From 084830c09e807ea08ea924dfa1ad41bb9dcfe710 Mon Sep 17 00:00:00 2001 From: Arie Date: Tue, 17 Feb 2015 09:26:49 -0800 Subject: [PATCH 0001/3441] Create LICENSE --- LICENSE | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 000000000000..4eedc0116add --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. From ec0dc4908311f6753da1807ac698c08fd5a28fbc Mon Sep 17 00:00:00 2001 From: Vadym Matsishevskyi <25311427+vam-google@users.noreply.github.com> Date: Thu, 10 May 2018 10:54:50 -0700 Subject: [PATCH 0002/3441] Move grpc and proto artifacts to google-cloud-java from api-client-staging (second part) (#3251) 1) Radically change the structure of the repo. Now the root `pom.xml` file is not deployed to maven and is not a parent pom for any of the other modules, but is simply an aggregator pom, which aggregates other mostly independent of each other modules. 2) Update proto and grpc artifact to the latest generated versions as of time of this PR. 3) Add `cloudiot-v1` and `websecurityscanner-v1alpha` proto and grp artifacts (not released yet even in api-client-staging). Note, gapic clients for this apis are not added yet. 4) Rename `google-cloud-pom` parent artifact (for manual and gapic clients) to `google-cloud-clients`. 5) Move all manual and gapic clients from root directory to `google-cloud-clients` sub directory. 6) Make `google-cloud-bom` not a child of `google-cloud-clients` (former `google-cloud-pom`) anymore, keep it on root level so it becomes a sibling of `google-cloud-clients` (module which used to be its parent). 7) Similarly make `google-cloud-examples`, `google-cloud-testing` and `google-cloud-util` not children of `google-cloud-clients` and keep them on root level. Make these three modules also excluded from maven deployment (they will not be published to maven anymore). After this PR is done, additional work is required to fix circleci individual IT tests runs (should be trivial). Also deployment and documentation scripts must be modified accordingly (will be done right after pushing this PR). --- google-cloud-bigquery/README.md | 248 +++ google-cloud-bigquery/pom.xml | 109 ++ .../cloud/bigquery/benchmark/Benchmark.java | 84 + .../google/cloud/bigquery/benchmark/README.md | 9 + .../cloud/bigquery/benchmark/queries.json | 10 + .../java/com/google/cloud/bigquery/Acl.java | 497 ++++++ .../com/google/cloud/bigquery/BigQuery.java | 1226 ++++++++++++++ .../google/cloud/bigquery/BigQueryError.java | 146 ++ .../cloud/bigquery/BigQueryException.java | 110 ++ .../cloud/bigquery/BigQueryFactory.java | 25 + .../google/cloud/bigquery/BigQueryImpl.java | 741 +++++++++ .../cloud/bigquery/BigQueryOptions.java | 148 ++ .../cloud/bigquery/CopyJobConfiguration.java | 295 ++++ .../com/google/cloud/bigquery/CsvOptions.java | 288 ++++ .../com/google/cloud/bigquery/Dataset.java | 339 ++++ .../com/google/cloud/bigquery/DatasetId.java | 101 ++ .../google/cloud/bigquery/DatasetInfo.java | 570 +++++++ .../bigquery/DatastoreBackupOptions.java | 105 ++ .../bigquery/EncryptionConfiguration.java | 101 ++ .../bigquery/ExternalTableDefinition.java | 387 +++++ .../bigquery/ExtractJobConfiguration.java | 309 ++++ .../java/com/google/cloud/bigquery/Field.java | 310 ++++ .../com/google/cloud/bigquery/FieldList.java | 118 ++ .../com/google/cloud/bigquery/FieldValue.java | 304 ++++ .../google/cloud/bigquery/FieldValueList.java | 135 ++ .../google/cloud/bigquery/FormatOptions.java | 119 ++ .../cloud/bigquery/GoogleSheetsOptions.java | 123 ++ .../cloud/bigquery/InsertAllRequest.java | 498 ++++++ .../cloud/bigquery/InsertAllResponse.java | 125 ++ .../java/com/google/cloud/bigquery/Job.java | 465 ++++++ .../cloud/bigquery/JobConfiguration.java | 146 ++ .../google/cloud/bigquery/JobException.java | 45 + .../java/com/google/cloud/bigquery/JobId.java | 124 ++ .../com/google/cloud/bigquery/JobInfo.java | 419 +++++ .../google/cloud/bigquery/JobStatistics.java | 651 ++++++++ .../com/google/cloud/bigquery/JobStatus.java | 195 +++ .../com/google/cloud/bigquery/Labels.java | 95 ++ .../cloud/bigquery/LegacySQLTypeName.java | 110 ++ .../cloud/bigquery/LoadConfiguration.java | 218 +++ .../cloud/bigquery/LoadJobConfiguration.java | 518 ++++++ .../com/google/cloud/bigquery/Option.java | 71 + .../cloud/bigquery/QueryJobConfiguration.java | 873 ++++++++++ .../cloud/bigquery/QueryParameterValue.java | 375 +++++ .../google/cloud/bigquery/QueryResponse.java | 58 + .../com/google/cloud/bigquery/QueryStage.java | 764 +++++++++ .../com/google/cloud/bigquery/Schema.java | 109 ++ .../cloud/bigquery/StandardSQLTypeName.java | 51 + .../bigquery/StandardTableDefinition.java | 232 +++ .../java/com/google/cloud/bigquery/Table.java | 593 +++++++ .../cloud/bigquery/TableDataWriteChannel.java | 168 ++ .../cloud/bigquery/TableDefinition.java | 165 ++ .../com/google/cloud/bigquery/TableId.java | 127 ++ .../com/google/cloud/bigquery/TableInfo.java | 475 ++++++ .../google/cloud/bigquery/TableResult.java | 134 ++ .../cloud/bigquery/TimePartitioning.java | 154 ++ .../google/cloud/bigquery/TimelineSample.java | 124 ++ .../cloud/bigquery/UserDefinedFunction.java | 173 ++ .../google/cloud/bigquery/ViewDefinition.java | 216 +++ .../bigquery/WriteChannelConfiguration.java | 444 +++++ .../google/cloud/bigquery/package-info.java | 46 + .../bigquery/spi/BigQueryRpcFactory.java | 27 + .../cloud/bigquery/spi/v2/BigQueryRpc.java | 231 +++ .../bigquery/spi/v2/HttpBigQueryRpc.java | 468 ++++++ .../testing/RemoteBigQueryHelper.java | 156 ++ .../cloud/bigquery/testing/package-info.java | 38 + .../com/google/cloud/bigquery/AclTest.java | 101 ++ .../cloud/bigquery/BigQueryErrorTest.java | 62 + .../cloud/bigquery/BigQueryExceptionTest.java | 161 ++ .../cloud/bigquery/BigQueryImplTest.java | 1436 +++++++++++++++++ .../cloud/bigquery/BigQueryOptionsTest.java | 35 + .../bigquery/CopyJobConfigurationTest.java | 141 ++ .../google/cloud/bigquery/CsvOptionsTest.java | 88 + .../google/cloud/bigquery/DatasetIdTest.java | 60 + .../cloud/bigquery/DatasetInfoTest.java | 176 ++ .../google/cloud/bigquery/DatasetTest.java | 387 +++++ .../bigquery/DatastoreBackupOptionsTest.java | 63 + .../bigquery/ExternalTableDefinitionTest.java | 114 ++ .../bigquery/ExtractJobConfigurationTest.java | 146 ++ .../google/cloud/bigquery/FieldListTest.java | 109 ++ .../com/google/cloud/bigquery/FieldTest.java | 104 ++ .../cloud/bigquery/FieldValueListTest.java | 189 +++ .../google/cloud/bigquery/FieldValueTest.java | 124 ++ .../cloud/bigquery/FormatOptionsTest.java | 58 + .../bigquery/GoogleSheetsOptionsTest.java | 65 + .../cloud/bigquery/InsertAllRequestTest.java | 238 +++ .../cloud/bigquery/InsertAllResponseTest.java | 79 + .../com/google/cloud/bigquery/JobIdTest.java | 62 + .../google/cloud/bigquery/JobInfoTest.java | 380 +++++ .../cloud/bigquery/JobStatisticsTest.java | 252 +++ .../google/cloud/bigquery/JobStatusTest.java | 67 + .../com/google/cloud/bigquery/JobTest.java | 470 ++++++ .../com/google/cloud/bigquery/LabelsTest.java | 76 + .../bigquery/LoadJobConfigurationTest.java | 167 ++ .../com/google/cloud/bigquery/OptionTest.java | 65 + .../bigquery/QueryJobConfigurationTest.java | 170 ++ .../bigquery/QueryParameterValueTest.java | 266 +++ .../google/cloud/bigquery/QueryStageTest.java | 193 +++ .../com/google/cloud/bigquery/SchemaTest.java | 62 + .../cloud/bigquery/SerializationTest.java | 278 ++++ .../bigquery/StandardTableDefinitionTest.java | 127 ++ .../bigquery/TableDataWriteChannelTest.java | 368 +++++ .../google/cloud/bigquery/TableIdTest.java | 62 + .../google/cloud/bigquery/TableInfoTest.java | 248 +++ .../cloud/bigquery/TableResultTest.java | 103 ++ .../com/google/cloud/bigquery/TableTest.java | 417 +++++ .../cloud/bigquery/TimePartitioningTest.java | 97 ++ .../cloud/bigquery/TimelineSampleTest.java | 54 + .../bigquery/UserDefinedFunctionTest.java | 57 + .../cloud/bigquery/ViewDefinitionTest.java | 109 ++ .../WriteChannelConfigurationTest.java | 177 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 1318 +++++++++++++++ .../bigquery/spi/v2/HttpBigQueryRpcTest.java | 47 + .../testing/RemoteBigQueryHelperTest.java | 94 ++ 113 files changed, 26560 insertions(+) create mode 100644 google-cloud-bigquery/README.md create mode 100644 google-cloud-bigquery/pom.xml create mode 100644 google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java create mode 100644 google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/README.md create mode 100644 google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md new file mode 100644 index 000000000000..075ea091617a --- /dev/null +++ b/google-cloud-bigquery/README.md @@ -0,0 +1,248 @@ +Google Cloud Java Client for BigQuery +==================================== + +Java idiomatic client for [Google Cloud BigQuery][cloud-bigquery]. + +[![CircleCI](https://circleci.com/gh/GoogleCloudPlatform/google-cloud-java/tree/master.svg?style=shield)](https://circleci.com/gh/GoogleCloudPlatform/google-cloud-java/tree/master) +[![Coverage Status](https://coveralls.io/repos/GoogleCloudPlatform/google-cloud-java/badge.svg?branch=master)](https://coveralls.io/r/GoogleCloudPlatform/google-cloud-java?branch=master) +[![Maven](https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg)]( https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg) +[![Codacy Badge](https://api.codacy.com/project/badge/grade/9da006ad7c3a4fe1abd142e77c003917)](https://www.codacy.com/app/mziccard/google-cloud-java) +[![Dependency Status](https://www.versioneye.com/user/projects/58fe4c8d6ac171426c414772/badge.svg?style=flat)](https://www.versioneye.com/user/projects/58fe4c8d6ac171426c414772) + +- [Product Documentation][bigquery-product-docs] +- [Client Library Documentation][bigquery-client-lib-docs] + +Quickstart +---------- +[//]: # ({x-version-update-start:google-cloud-bigquery:released}) +If you are using Maven, add this to your pom.xml file +```xml + + com.google.cloud + google-cloud-bigquery + 1.29.0 + +``` +If you are using Gradle, add this to your dependencies +```Groovy +compile 'com.google.cloud:google-cloud-bigquery:1.29.0' +``` +If you are using SBT, add this to your dependencies +```Scala +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.29.0" +``` +[//]: # ({x-version-update-end}) + +Example Application +------------------- +- [`BigQueryExample`](../google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/BigQueryExample.java) - A simple command line interface providing some of Cloud BigQuery's functionality. +Read more about using this application on the [`BigQueryExample` docs page](https://googlecloudplatform.github.io/google-cloud-java/apidocs/?com/google/cloud/examples/bigquery/BigQueryExample.html). + +Authentication +-------------- + +See the [Authentication](https://github.com/GoogleCloudPlatform/google-cloud-java#authentication) section in the base directory's README. + +About Google Cloud BigQuery +-------------------------- + +[Google Cloud BigQuery][cloud-bigquery] is a fully managed, NoOps, low cost data analytics service. +Data can be streamed into BigQuery at millions of rows per second to enable real-time analysis. +With BigQuery you can easily deploy Petabyte-scale Databases. + +Be sure to activate the Google Cloud BigQuery API on the Developer's Console to use BigQuery from +your project. + +See the [BigQuery client library docs][bigquery-client-lib-docs] to learn how to interact +with Google Cloud BigQuery using this Client Library. + +Getting Started +--------------- +#### Prerequisites +For this tutorial, you will need a +[Google Developers Console](https://console.developers.google.com/) project with the BigQuery API +enabled. You will need to [enable billing](https://support.google.com/cloud/answer/6158867?hl=en) to +use Google Cloud BigQuery. +[Follow these instructions](https://cloud.google.com/docs/authentication#preparation) to get your +project set up. You will also need to set up the local development environment by [installing the +Google Cloud SDK](https://cloud.google.com/sdk/) and running the following commands in command line: +`gcloud auth login` and `gcloud config set project [YOUR PROJECT ID]`. + +#### Installation and setup +You'll need to obtain the `google-cloud-bigquery` library. See the [Quickstart](#quickstart) section +to add `google-cloud-bigquery` as a dependency in your code. + +#### Creating an authorized service object +To make authenticated requests to Google Cloud BigQuery, you must create a service object with +credentials. You can then make API calls by calling methods on the BigQuery service object. The +simplest way to authenticate is to use +[Application Default Credentials](https://developers.google.com/identity/protocols/application-default-credentials). +These credentials are automatically inferred from your environment, so you only need the following +code to create your service object: + +```java +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; + +BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); +``` + +For other authentication options, see the +[Authentication](https://github.com/GoogleCloudPlatform/google-cloud-java#authentication) page. + +#### Creating a dataset +With BigQuery you can create datasets. A dataset is a grouping mechanism that holds zero or more +tables. Add the following import at the top of your file: + +```java +import com.google.cloud.bigquery.DatasetInfo; +``` +Then, to create the dataset, use the following code: + +```java +// Create a dataset +String datasetId = "my_dataset_id"; +bigquery.create(DatasetInfo.newBuilder(datasetId).build()); +``` + +#### Creating a table +With BigQuery you can create different types of tables: normal tables with an associated schema, +external tables backed by data stored on [Google Cloud Storage][cloud-storage] and view tables that +are created from a BigQuery SQL query. In this code snippet we show how to create a normal table +with only one string field. Add the following imports at the top of your file: + +```java +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +``` +Then add the following code to create the table: + +```java +TableId tableId = TableId.of(datasetId, "my_table_id"); +// Table field definition +Field stringField = Field.of("StringField", LegacySQLTypeName.STRING); +// Table schema definition +Schema schema = Schema.of(stringField); +// Create a table +StandardTableDefinition tableDefinition = StandardTableDefinition.of(schema); +Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); +``` + +#### Loading data into a table +BigQuery provides several ways to load data into a table: streaming rows or loading data from a +Google Cloud Storage file. In this code snippet we show how to stream rows into a table. +Add the following imports at the top of your file: + +```java +import com.google.cloud.bigquery.InsertAllRequest; +import com.google.cloud.bigquery.InsertAllResponse; + +import java.util.HashMap; +import java.util.Map; +``` +Then add the following code to insert data: + +```java +Map firstRow = new HashMap<>(); +Map secondRow = new HashMap<>(); +firstRow.put("StringField", "value1"); +secondRow.put("StringField", "value2"); +// Create an insert request +InsertAllRequest insertRequest = InsertAllRequest.newBuilder(tableId) + .addRow(firstRow) + .addRow(secondRow) + .build(); +// Insert rows +InsertAllResponse insertResponse = bigquery.insertAll(insertRequest); +// Check if errors occurred +if (insertResponse.hasErrors()) { + System.out.println("Errors occurred while inserting rows"); +} +``` + +#### Querying data +BigQuery enables querying data by running queries and waiting for the result. Queries can be run +directly or through a Query Job. In this code snippet we show how to run a query directly and wait +for the result. Add the following imports at the top of your file: + +```java +import com.google.cloud.bigquery.FieldValueList; +import com.google.cloud.bigquery.QueryJobConfiguration; +``` +Then add the following code to run the query and wait for the result: + +```java +// Create a query request +QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder("SELECT my_column FROM my_dataset_id.my_table_id").build(); +// Read rows +System.out.println("Table rows:"); +for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) { + System.out.println(row); +} +``` +#### Complete source code + +In +[InsertDataAndQueryTable.java](../google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/InsertDataAndQueryTable.java) +we put together all the code shown above into one program. The program assumes that you are +running on Compute Engine or from your own desktop. To run the example on App Engine, simply move +the code from the main method to your application's servlet class and change the print statements to +display on your webpage. + +Troubleshooting +--------------- + +To get help, follow the instructions in the [shared Troubleshooting document](https://github.com/GoogleCloudPlatform/gcloud-common/blob/master/troubleshooting/readme.md#troubleshooting). + +Transport +--------- +BigQuery uses HTTP for the transport layer. + +Java Versions +------------- + +Java 7 or above is required for using this client. + +Testing +------- + +This library has tools to help make tests for code using Cloud BigQuery. + +See [TESTING] to read more about testing. + +Versioning +---------- + +This library follows [Semantic Versioning](http://semver.org/). + +It is currently in major version zero (``0.y.z``), which means that anything +may change at any time and the public API should not be considered +stable. + +Contributing +------------ + +Contributions to this library are always welcome and highly encouraged. + +See [CONTRIBUTING] for more information on how to get started. + +License +------- + +Apache 2.0 - See [LICENSE] for more information. + + +[CONTRIBUTING]:https://github.com/GoogleCloudPlatform/google-cloud-java/blob/master/CONTRIBUTING.md +[LICENSE]: https://github.com/GoogleCloudPlatform/google-cloud-java/blob/master/LICENSE +[TESTING]: https://github.com/GoogleCloudPlatform/google-cloud-java/blob/master/TESTING.md#testing-code-that-uses-bigquery +[cloud-platform]: https://cloud.google.com/ + +[cloud-bigquery]: https://cloud.google.com/bigquery/ +[cloud-storage]: https://cloud.google.com/storage/ +[bigquery-product-docs]: https://cloud.google.com/bigquery/docs/ +[bigquery-client-lib-docs]: https://googlecloudplatform.github.io/google-cloud-java/latest/apidocs/index.html?com/google/cloud/bigquery/package-summary.html diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml new file mode 100644 index 000000000000..1e5dfc09434b --- /dev/null +++ b/google-cloud-bigquery/pom.xml @@ -0,0 +1,109 @@ + + + 4.0.0 + google-cloud-bigquery + 1.29.1-SNAPSHOT + jar + Google Cloud BigQuery + https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery + + Java idiomatic client for Google Cloud BigQuery. + + + com.google.cloud + google-cloud-clients + 0.47.1-alpha-SNAPSHOT + + + google-cloud-bigquery + + + + ${project.groupId} + google-cloud-core + + + ${project.groupId} + google-cloud-core-http + + + com.google.auto.value + auto-value + compile + + + ${project.groupId} + google-cloud-storage + test + + + com.google.apis + google-api-services-bigquery + compile + + + com.google.guava + guava-jdk5 + + + + + ${project.groupId} + google-cloud-core + test-jar + test + + + junit + junit + test + + + com.google.truth + truth + test + + + org.easymock + easymock + test + + + org.objenesis + objenesis + test + + + + + + + org.codehaus.mojo + exec-maven-plugin + + false + false + + + + org.codehaus.mojo + build-helper-maven-plugin + 1.7 + + + add-source + generate-sources + + add-source + + + + src/benchmark/java + + + + + + + + diff --git a/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java b/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java new file mode 100644 index 000000000000..ae3e586303c9 --- /dev/null +++ b/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java @@ -0,0 +1,84 @@ +/* + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.benchmark; + +import com.google.api.client.json.jackson.JacksonFactory; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; +import java.io.FileInputStream; +import java.util.List; +import org.threeten.bp.Clock; +import org.threeten.bp.Duration; +import org.threeten.bp.Instant; + +public class Benchmark { + + private static final double NS_PER_SECOND = 1000 * 1000 * 1000; + + private Benchmark() {} + + public static void main(String[] args) throws Exception { + if (args.length < 1) { + System.out.println("need path to queries.json"); + return; + } + String[] requests = + new JacksonFactory() + .createJsonParser(new FileInputStream(args[0])) + .parseAndClose(String[].class); + + Clock clock = Clock.systemUTC(); + BigQuery bq = BigQueryOptions.getDefaultInstance().getService(); + + for (String request : requests) { + if (request.isEmpty()) { + continue; + } + + Instant start = clock.instant(); + TableResult result = + bq.query(QueryJobConfiguration.newBuilder(request).setUseLegacySql(false).build()); + + int rows = 0; + int cols = 0; + Duration firstByte = null; + for (List row : result.iterateAll()) { + rows++; + if (cols == 0) { + cols = row.size(); + firstByte = Duration.between(start, clock.instant()); + } else if (cols != row.size()) { + throw new IllegalStateException( + String.format("expected %d cols, found %d", cols, row.size())); + } + } + Duration total = Duration.between(start, clock.instant()); + + assert firstByte != null; + double firstByteSec = (double) (firstByte.getNano()) / NS_PER_SECOND + firstByte.getSeconds(); + double totalSec = (double) (total.getNano()) / NS_PER_SECOND + total.getSeconds(); + + System.out.println( + String.format( + "query \"%s\": read %d rows, %d cols, first byte %f sec, total %f sec", + request, rows, cols, firstByteSec, totalSec)); + } + } +} diff --git a/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/README.md b/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/README.md new file mode 100644 index 000000000000..a041db38a072 --- /dev/null +++ b/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/README.md @@ -0,0 +1,9 @@ +# BigQuery Benchmark +This directory contains benchmarks for BigQuery client. + +## Usage +From the `google-cloud-bigquery` directory, run +`mvn compile exec:java -Dexec.mainClass=com.google.cloud.bigquery.benchmark.Benchmark -Dexec.args="src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json"` + +BigQuery service caches requests so the benchmark should be run +at least twice, disregarding the first result. diff --git a/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json b/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json new file mode 100644 index 000000000000..13fed38b52b3 --- /dev/null +++ b/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json @@ -0,0 +1,10 @@ +[ + "SELECT * FROM `nyc-tlc.yellow.trips` LIMIT 10000", + "SELECT * FROM `nyc-tlc.yellow.trips` LIMIT 100000", + "SELECT * FROM `nyc-tlc.yellow.trips` LIMIT 1000000", + "SELECT title FROM `bigquery-public-data.samples.wikipedia` ORDER BY title LIMIT 1000", + "SELECT title, id, timestamp, contributor_ip FROM `bigquery-public-data.samples.wikipedia` WHERE title like 'Blo%' ORDER BY id", + "SELECT * FROM `bigquery-public-data.baseball.games_post_wide` ORDER BY gameId", + "SELECT * FROM `bigquery-public-data.samples.github_nested` WHERE repository.has_downloads ORDER BY repository.created_at LIMIT 10000", + "SELECT repo_name, path FROM `bigquery-public-data.github_repos.files` WHERE path LIKE '%.java' ORDER BY id LIMIT 1000000" +] diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java new file mode 100644 index 000000000000..df0ae0a532db --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java @@ -0,0 +1,497 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.core.ApiFunction; +import com.google.api.services.bigquery.model.Dataset.Access; +import com.google.cloud.StringEnumType; +import com.google.cloud.StringEnumValue; + +import java.io.Serializable; +import java.util.Objects; + +/** + * Access Control for a BigQuery Dataset. BigQuery uses ACLs to manage permissions on datasets. ACLs + * are not directly supported on tables. A table inherits its ACL from the dataset that contains it. + * Project roles affect your ability to run jobs or manage the project, while dataset roles affect + * how you can access or modify the data inside of a project. + * + * @see Access Control + */ +public final class Acl implements Serializable { + + private static final long serialVersionUID = 8357269726277191556L; + + private final Entity entity; + private final Role role; + + /** + * Dataset roles supported by BigQuery. + * + * @see Dataset Roles + */ + public static final class Role extends StringEnumValue { + private static final long serialVersionUID = -1992679397135956912L; + + private static final ApiFunction CONSTRUCTOR = + new ApiFunction() { + @Override + public Role apply(String constant) { + return new Role(constant); + } + }; + + private static final StringEnumType type = new StringEnumType( + Role.class, + CONSTRUCTOR); + + /** + * Can read, query, copy or export tables in the dataset. + */ + public static final Role READER = type.createAndRegister("READER"); + + /** + * Same as {@link #READER} plus can edit or append data in the dataset. + */ + public static final Role WRITER = type.createAndRegister("WRITER"); + + /** + * Same as {@link #WRITER} plus can update and delete the dataset. + */ + public static final Role OWNER = type.createAndRegister("OWNER"); + + private Role(String constant) { + super(constant); + } + + /** + * Get the Role for the given String constant, and throw an exception if the constant is + * not recognized. + */ + public static Role valueOfStrict(String constant) { + return type.valueOfStrict(constant); + } + + /** + * Get the Role for the given String constant, and allow unrecognized values. + */ + public static Role valueOf(String constant) { + return type.valueOf(constant); + } + + /** + * Return the known values for Role. + */ + public static Role[] values() { + return type.values(); + } + } + + /** + * Base class for BigQuery entities that can be grant access to the dataset. + */ + public abstract static class Entity implements Serializable { + + private static final long serialVersionUID = 8111776788607959944L; + + private final Type type; + + /** + * Types of BigQuery entities. + */ + public enum Type { + DOMAIN, GROUP, USER, VIEW + } + + Entity(Type type) { + this.type = type; + } + + + public Type getType() { + return type; + } + + abstract Access toPb(); + + static Entity fromPb(Access access) { + if (access.getDomain() != null) { + return new Domain(access.getDomain()); + } + if (access.getGroupByEmail() != null) { + return new Group(access.getGroupByEmail()); + } + if (access.getSpecialGroup() != null) { + return new Group(access.getSpecialGroup()); + } + if (access.getUserByEmail() != null) { + return new User(access.getUserByEmail()); + } + if (access.getView() != null) { + return new View(TableId.fromPb(access.getView())); + } + // Unreachable + throw new BigQueryException(BigQueryException.UNKNOWN_CODE, + "Unrecognized access configuration"); + } + } + + /** + * Class for a BigQuery Domain entity. Objects of this class represent a domain to grant access + * to. Any users signed in with the domain specified will be granted the specified access. + */ + public static final class Domain extends Entity { + + private static final long serialVersionUID = -3033025857280447253L; + + private final String domain; + + /** + * Creates a Domain entity given the domain name. + */ + public Domain(String domain) { + super(Type.DOMAIN); + this.domain = domain; + } + + + /** + * Returns the domain name. + */ + public String getDomain() { + return domain; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + Domain domainEntity = (Domain) obj; + return Objects.equals(getType(), domainEntity.getType()) + && Objects.equals(domain, domainEntity.getDomain()); + } + + @Override + public int hashCode() { + return Objects.hash(getType(), domain); + } + + @Override + public String toString() { + return toPb().toString(); + } + + @Override + Access toPb() { + return new Access().setDomain(domain); + } + } + + /** + * Class for a BigQuery Group entity. Objects of this class represent a group to granted access + * to. A Group entity can be created given the group's email or can be a special group: + * {@link #ofProjectOwners()}, {@link #ofProjectReaders()}, {@link #ofProjectWriters()} or + * {@link #ofAllAuthenticatedUsers()}. + */ + public static final class Group extends Entity { + + private static final String PROJECT_OWNERS = "projectOwners"; + private static final String PROJECT_READERS = "projectReaders"; + private static final String PROJECT_WRITERS = "projectWriters"; + private static final String ALL_AUTHENTICATED_USERS = "allAuthenticatedUsers"; + private static final long serialVersionUID = 5146829352398103029L; + + private final String identifier; + + /** + * Creates a Group entity given its identifier. Identifier can be either a + * + * special group identifier or a group email. + */ + public Group(String identifier) { + super(Type.GROUP); + this.identifier = identifier; + } + + + /** + * Returns group's identifier, can be either a + * + * special group identifier or a group email. + */ + public String getIdentifier() { + return identifier; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + Group group = (Group) obj; + return Objects.equals(getType(), group.getType()) + && Objects.equals(identifier, group.identifier); + } + + @Override + public int hashCode() { + return Objects.hash(getType(), identifier); + } + + @Override + public String toString() { + return toPb().toString(); + } + + @Override + Access toPb() { + switch (identifier) { + case PROJECT_OWNERS: + return new Access().setSpecialGroup(PROJECT_OWNERS); + case PROJECT_READERS: + return new Access().setSpecialGroup(PROJECT_READERS); + case PROJECT_WRITERS: + return new Access().setSpecialGroup(PROJECT_WRITERS); + case ALL_AUTHENTICATED_USERS: + return new Access().setSpecialGroup(ALL_AUTHENTICATED_USERS); + default: + return new Access().setGroupByEmail(identifier); + } + } + + /** + * Returns a Group entity representing all project's owners. + */ + public static Group ofProjectOwners() { + return new Group(PROJECT_OWNERS); + } + + /** + * Returns a Group entity representing all project's readers. + */ + public static Group ofProjectReaders() { + return new Group(PROJECT_READERS); + } + + /** + * Returns a Group entity representing all project's writers. + */ + public static Group ofProjectWriters() { + return new Group(PROJECT_WRITERS); + } + + /** + * Returns a Group entity representing all BigQuery authenticated users. + */ + public static Group ofAllAuthenticatedUsers() { + return new Group(ALL_AUTHENTICATED_USERS); + } + } + + /** + * Class for a BigQuery User entity. Objects of this class represent a user to grant access to + * given the email address. + */ + public static final class User extends Entity { + + private static final long serialVersionUID = -4942821351073996141L; + + private final String email; + + /** + * Creates a User entity given the user's email. + */ + public User(String email) { + super(Type.USER); + this.email = email; + } + + + /** + * Returns user's email. + */ + public String getEmail() { + return email; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + User user = (User) obj; + return Objects.equals(getType(), user.getType()) && Objects.equals(email, user.email); + } + + @Override + public int hashCode() { + return Objects.hash(getType(), email); + } + + @Override + public String toString() { + return toPb().toString(); + } + + @Override + Access toPb() { + return new Access().setUserByEmail(email); + } + } + + /** + * Class for a BigQuery View entity. Objects of this class represent a view from a different + * dataset to grant access to. Queries executed against that view will have read access to tables + * in this dataset. The role field is not required when this field is set. If that view is updated + * by any user, access to the view needs to be granted again via an update operation. + */ + public static final class View extends Entity { + + private static final long serialVersionUID = -6851072781269419383L; + + private final TableId id; + + /** + * Creates a View entity given the view's id. + */ + public View(TableId id) { + super(Type.VIEW); + this.id = id; + } + + + /** + * Returns table's identity. + */ + public TableId getId() { + return id; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + View view = (View) obj; + return Objects.equals(getType(), view.getType()) && Objects.equals(id, view.id); + } + + @Override + public int hashCode() { + return Objects.hash(getType(), id); + } + + @Override + public String toString() { + return toPb().toString(); + } + + @Override + Access toPb() { + return new Access().setView(id.toPb()); + } + } + + private Acl(Entity entity, Role role) { + this.entity = checkNotNull(entity); + this.role = role; + } + + + /** + * Returns the entity for this ACL. + */ + public Entity getEntity() { + return entity; + } + + + /** + * Returns the role specified by this ACL. + */ + public Role getRole() { + return role; + } + + /** + * Returns an Acl object. + * + * @param entity the entity for this ACL object + * @param role the role to associate to the {@code entity} object + */ + public static Acl of(Entity entity, Role role) { + return new Acl(entity, role); + } + + /** + * Returns an Acl object for a view entity. + */ + public static Acl of(View view) { + return new Acl(view, null); + } + + @Override + public int hashCode() { + return Objects.hash(entity, role); + } + + @Override + public String toString() { + return toPb().toString(); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + final Acl other = (Acl) obj; + return Objects.equals(this.entity, other.entity) + && Objects.equals(this.role, other.role); + } + + Access toPb() { + Access accessPb = entity.toPb(); + if (role != null) { + accessPb.setRole(role.name()); + } + return accessPb; + } + + static Acl fromPb(Access access) { + return Acl.of(Entity.fromPb(access), + access.getRole() != null ? Role.valueOf(access.getRole()) : null); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java new file mode 100644 index 000000000000..bab3d3370518 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -0,0 +1,1226 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkArgument; + +import com.google.api.core.InternalApi; +import com.google.api.gax.paging.Page; +import com.google.cloud.FieldSelector; +import com.google.cloud.FieldSelector.Helper; +import com.google.cloud.RetryOption; +import com.google.cloud.Service; +import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.common.base.Function; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +/** + * An interface for Google Cloud BigQuery. + * + * @see Google Cloud BigQuery + */ +public interface BigQuery extends Service { + + /** + * Fields of a BigQuery Dataset resource. + * + * @see Dataset + * Resource + */ + enum DatasetField implements FieldSelector { + ACCESS("access"), + CREATION_TIME("creationTime"), + DATASET_REFERENCE("datasetReference"), + DEFAULT_TABLE_EXPIRATION_MS("defaultTableExpirationMsS"), + DESCRIPTION("description"), + ETAG("etag"), + FRIENDLY_NAME("friendlyName"), + ID("id"), + LABELS("labels"), + LAST_MODIFIED_TIME("lastModifiedTime"), + LOCATION("location"), + SELF_LINK("selfLink"); + + static final List REQUIRED_FIELDS = + ImmutableList.of(DATASET_REFERENCE); + + private final String selector; + + DatasetField(String selector) { + this.selector = selector; + } + + + @Override + public String getSelector() { + return selector; + } + } + + /** + * Fields of a BigQuery Table resource. + * + * @see Table + * Resource + */ + enum TableField implements FieldSelector { + CREATION_TIME("creationTime"), + DESCRIPTION("description"), + ETAG("etag"), + EXPIRATION_TIME("expirationTime"), + EXTERNAL_DATA_CONFIGURATION("externalDataConfiguration"), + FRIENDLY_NAME("friendlyName"), + ID("id"), + LAST_MODIFIED_TIME("lastModifiedTime"), + LOCATION("location"), + NUM_BYTES("numBytes"), + NUM_ROWS("numRows"), + SCHEMA("schema"), + SELF_LINK("selfLink"), + STREAMING_BUFFER("streamingBuffer"), + TABLE_REFERENCE("tableReference"), + TIME_PARTITIONING("timePartitioning"), + TYPE("type"), + VIEW("view"); + + static final List REQUIRED_FIELDS = + ImmutableList.of(TABLE_REFERENCE, TYPE); + + private final String selector; + + TableField(String selector) { + this.selector = selector; + } + + + @Override + public String getSelector() { + return selector; + } + } + + /** + * Fields of a BigQuery Job resource. + * + * @see Job Resource + * + */ + enum JobField implements FieldSelector { + CONFIGURATION("configuration"), + ETAG("etag"), + ID("id"), + JOB_REFERENCE("jobReference"), + SELF_LINK("selfLink"), + STATISTICS("statistics"), + STATUS("status"), + USER_EMAIL("user_email"); + + static final List REQUIRED_FIELDS = + ImmutableList.of(JOB_REFERENCE, CONFIGURATION); + + private final String selector; + + JobField(String selector) { + this.selector = selector; + } + + + @Override + public String getSelector() { + return selector; + } + } + + /** + * Class for specifying dataset list options. + */ + class DatasetListOption extends Option { + + private static final long serialVersionUID = 8660294969063340498L; + + private DatasetListOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** + * Returns an option to specify the maximum number of datasets returned per page. + */ + public static DatasetListOption pageSize(long pageSize) { + return new DatasetListOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); + } + + /** + * Returns an option to specify the page token from which to start listing datasets. + */ + public static DatasetListOption pageToken(String pageToken) { + return new DatasetListOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); + } + + /** + * Returns an options to list all datasets, even hidden ones. + */ + public static DatasetListOption all() { + return new DatasetListOption(BigQueryRpc.Option.ALL_DATASETS, true); + } + } + + /** + * Class for specifying dataset get, create and update options. + */ + class DatasetOption extends Option { + + private static final long serialVersionUID = 1674133909259913250L; + + private DatasetOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** + * Returns an option to specify the dataset's fields to be returned by the RPC call. If this + * option is not provided all dataset's fields are returned. {@code DatasetOption.fields} can + * be used to specify only the fields of interest. {@link Dataset#getDatasetId()} is always + * returned, even if not specified. + */ + public static DatasetOption fields(DatasetField... fields) { + return new DatasetOption(BigQueryRpc.Option.FIELDS, + Helper.selector(DatasetField.REQUIRED_FIELDS, fields)); + } + } + + /** + * Class for specifying dataset delete options. + */ + class DatasetDeleteOption extends Option { + + private static final long serialVersionUID = -7166083569900951337L; + + private DatasetDeleteOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** + * Returns an option to delete a dataset even if non-empty. If not provided, attempting to + * delete a non-empty dataset will result in a {@link BigQueryException} being thrown. + */ + public static DatasetDeleteOption deleteContents() { + return new DatasetDeleteOption(BigQueryRpc.Option.DELETE_CONTENTS, true); + } + } + + /** + * Class for specifying table list options. + */ + class TableListOption extends Option { + + private static final long serialVersionUID = 8660294969063340498L; + + private TableListOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** + * Returns an option to specify the maximum number of tables returned per page. + */ + public static TableListOption pageSize(long pageSize) { + checkArgument(pageSize >= 0); + return new TableListOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); + } + + /** + * Returns an option to specify the page token from which to start listing tables. + */ + public static TableListOption pageToken(String pageToken) { + return new TableListOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); + } + } + + /** + * Class for specifying table get, create and update options. + */ + class TableOption extends Option { + + private static final long serialVersionUID = -1723870134095936772L; + + private TableOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** + * Returns an option to specify the table's fields to be returned by the RPC call. If this + * option is not provided all table's fields are returned. {@code TableOption.fields} can be + * used to specify only the fields of interest. {@link Table#getTableId()} and type (which is part + * of {@link Table#getDefinition()}) are always returned, even if not specified. + */ + public static TableOption fields(TableField... fields) { + return new TableOption(BigQueryRpc.Option.FIELDS, + Helper.selector(TableField.REQUIRED_FIELDS, fields)); + } + } + + /** + * Class for specifying table data list options. + */ + class TableDataListOption extends Option { + + private static final long serialVersionUID = 8488823381738864434L; + + private TableDataListOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** + * Returns an option to specify the maximum number of rows returned per page. + */ + public static TableDataListOption pageSize(long pageSize) { + checkArgument(pageSize >= 0); + return new TableDataListOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); + } + + /** + * Returns an option to specify the page token from which to start listing table data. + */ + public static TableDataListOption pageToken(String pageToken) { + return new TableDataListOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); + } + + /** + * Returns an option that sets the zero-based index of the row from which to start listing table + * data. + */ + public static TableDataListOption startIndex(long index) { + checkArgument(index >= 0); + return new TableDataListOption(BigQueryRpc.Option.START_INDEX, index); + } + } + + /** + * Class for specifying job list options. + */ + class JobListOption extends Option { + + private static final long serialVersionUID = -8207122131226481423L; + + private JobListOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** + * Returns an option to list all jobs, even the ones issued by other users. + */ + public static JobListOption allUsers() { + return new JobListOption(BigQueryRpc.Option.ALL_USERS, true); + } + + /** + * Returns an option to list only jobs that match the provided state filters. + */ + public static JobListOption stateFilter(JobStatus.State... stateFilters) { + List stringFilters = Lists.transform(ImmutableList.copyOf(stateFilters), + new Function() { + @Override + public String apply(JobStatus.State state) { + return state.name().toLowerCase(); + } + }); + return new JobListOption(BigQueryRpc.Option.STATE_FILTER, stringFilters); + } + + /** + * Returns an option to specify the maximum number of jobs returned per page. + */ + public static JobListOption pageSize(long pageSize) { + checkArgument(pageSize >= 0); + return new JobListOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); + } + + /** + * Returns an option to specify the page token from which to start listing jobs. + */ + public static JobListOption pageToken(String pageToken) { + return new JobListOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); + } + + /** + * Returns an option to specify the job's fields to be returned by the RPC call. If this option + * is not provided all job's fields are returned. {@code JobOption.fields()} can be used to + * specify only the fields of interest. {@link Job#getJobId()}, {@link JobStatus#getState()}, + * {@link JobStatus#getError()} as well as type-specific configuration (e.g. + * {@link QueryJobConfiguration#getQuery()} for Query Jobs) are always returned, even if not + * specified. {@link JobField#SELF_LINK} and {@link JobField#ETAG} can not be selected when + * listing jobs. + */ + public static JobListOption fields(JobField... fields) { + return new JobListOption(BigQueryRpc.Option.FIELDS, + Helper.listSelector("jobs", JobField.REQUIRED_FIELDS, fields, "state", "errorResult")); + } + } + + /** + * Class for specifying table get and create options. + */ + class JobOption extends Option { + + private static final long serialVersionUID = -3111736712316353665L; + + private JobOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** + * Returns an option to specify the job's fields to be returned by the RPC call. If this option + * is not provided all job's fields are returned. {@code JobOption.fields()} can be used to + * specify only the fields of interest. {@link Job#getJobId()} as well as type-specific + * configuration (e.g. {@link QueryJobConfiguration#getQuery()} for Query Jobs) are always + * returned, even if not specified. + */ + public static JobOption fields(JobField... fields) { + return new JobOption(BigQueryRpc.Option.FIELDS, + Helper.selector(JobField.REQUIRED_FIELDS, fields)); + } + } + + /** + * Class for specifying query results options. + */ + class QueryResultsOption extends Option { + + private static final long serialVersionUID = 3788898503226985525L; + + private QueryResultsOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** + * Returns an option to specify the maximum number of rows returned per page. + */ + public static QueryResultsOption pageSize(long pageSize) { + checkArgument(pageSize >= 0); + return new QueryResultsOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); + } + + /** + * Returns an option to specify the page token from which to start getting query results. + */ + public static QueryResultsOption pageToken(String pageToken) { + return new QueryResultsOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); + } + + /** + * Returns an option that sets the zero-based index of the row from which to start getting query + * results. + */ + public static QueryResultsOption startIndex(long startIndex) { + checkArgument(startIndex >= 0); + return new QueryResultsOption(BigQueryRpc.Option.START_INDEX, startIndex); + } + + /** + * Returns an option that sets how long to wait for the query to complete, in milliseconds, + * before returning. Default is 10 seconds. + */ + public static QueryResultsOption maxWaitTime(long maxWaitTime) { + checkArgument(maxWaitTime >= 0); + return new QueryResultsOption(BigQueryRpc.Option.TIMEOUT, maxWaitTime); + } + } + + class QueryOption implements Serializable { + private static final long serialVersionUID = 6206193419355824689L; + + private final Object option; + + private QueryOption(Object option) { + this.option = option; + } + + public QueryResultsOption getQueryResultsOption() { + return option instanceof QueryResultsOption ? (QueryResultsOption) option : null; + } + + public RetryOption getRetryOption() { + return option instanceof RetryOption ? (RetryOption) option : null; + } + + static QueryResultsOption[] filterQueryResultsOptions(QueryOption... options) { + List queryResultOptions = new ArrayList<>(options.length); + for (QueryOption opt : options) { + if (opt.getQueryResultsOption() != null) { + queryResultOptions.add(opt.getQueryResultsOption()); + } + } + return queryResultOptions.toArray(new QueryResultsOption[queryResultOptions.size()]); + } + + static RetryOption[] filterRetryOptions(QueryOption... options) { + List retryOptions = new ArrayList<>(options.length); + for (QueryOption opt : options) { + if (opt.getRetryOption() != null) { + retryOptions.add(opt.getRetryOption()); + } + } + return retryOptions.toArray(new RetryOption[retryOptions.size()]); + } + + public static QueryOption of(QueryResultsOption resultsOption) { + return new QueryOption(resultsOption); + } + + public static QueryOption of(RetryOption waitOption) { + return new QueryOption(waitOption); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + QueryOption that = (QueryOption) o; + + return option != null ? option.equals(that.option) : that.option == null; + } + + @Override + public int hashCode() { + return option != null ? option.hashCode() : 0; + } + } + + + /** + * Creates a new dataset. + * + *

Example of creating a dataset. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * Dataset dataset = null;
+   * DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build();
+   * try {
+   *   // the dataset was created
+   *   dataset = bigquery.create(datasetInfo);
+   * } catch (BigQueryException e) {
+   *   // the dataset was not created
+   * }
+   * }
+ * + * @throws BigQueryException upon failure + */ + Dataset create(DatasetInfo datasetInfo, DatasetOption... options); + + /** + * Creates a new table. + * + *

Example of creating a table. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * String fieldName = "string_field";
+   * TableId tableId = TableId.of(datasetName, tableName);
+   * // Table field definition
+   * Field field = Field.of(fieldName, LegacySQLTypeName.STRING);
+   * // Table schema definition
+   * Schema schema = Schema.of(field);
+   * TableDefinition tableDefinition = StandardTableDefinition.of(schema);
+   * TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build();
+   * Table table = bigquery.create(tableInfo);
+   * }
+ * + * @throws BigQueryException upon failure + */ + Table create(TableInfo tableInfo, TableOption... options); + + /** + * Creates a new job. + * + *

Example of loading a newline-delimited-json file with textual fields from GCS to a table. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json";
+   * TableId tableId = TableId.of(datasetName, tableName);
+   * // Table field definition
+   * Field[] fields = new Field[] {
+   *     Field.of("name", LegacySQLTypeName.STRING),
+   *     Field.of("post_abbr", LegacySQLTypeName.STRING)
+   * };
+   * // Table schema definition
+   * Schema schema = Schema.of(fields);
+   * LoadJobConfiguration configuration = LoadJobConfiguration.builder(tableId, sourceUri)
+   *     .setFormatOptions(FormatOptions.json())
+   *     .setCreateDisposition(CreateDisposition.CREATE_IF_NEEDED)
+   *     .setSchema(schema)
+   *     .build();
+   * // Load the table
+   * Job remoteLoadJob = bigquery.create(JobInfo.of(configuration));
+   * remoteLoadJob = remoteLoadJob.waitFor();
+   * // Check the table
+   * System.out.println("State: " + remoteLoadJob.getStatus().getState());
+   * return ((StandardTableDefinition) bigquery.getTable(tableId).getDefinition()).getNumRows();
+   * }
+ * + *

Example of creating a query job. + *

 {@code
+   * String query = "SELECT field FROM my_dataset_name.my_table_name";
+   * Job job = null;
+   * JobConfiguration jobConfiguration = QueryJobConfiguration.of(query);
+   * JobInfo jobInfo = JobInfo.of(jobConfiguration);
+   * try {
+   *   job = bigquery.create(jobInfo);
+   * } catch (BigQueryException e) {
+   *   // the job was not created
+   * }
+   * }
+ * + * @throws BigQueryException upon failure + */ + Job create(JobInfo jobInfo, JobOption... options); + + /** + * Returns the requested dataset or {@code null} if not found. + * + *

Example of getting a dataset. + *

 {@code
+   * String datasetName = "my_dataset";
+   * Dataset dataset = bigquery.getDataset(datasetName);
+   * }
+ * + * @throws BigQueryException upon failure + */ + Dataset getDataset(String datasetId, DatasetOption... options); + + /** + * Returns the requested dataset or {@code null} if not found. + * + *

Example of getting a dataset. + *

 {@code
+   * String projectId = "my_project_id";
+   * String datasetName = "my_dataset_name";
+   * DatasetId datasetId = DatasetId.of(projectId, datasetName);
+   * Dataset dataset = bigquery.getDataset(datasetId);
+   * }
+ * + * @throws BigQueryException upon failure + */ + Dataset getDataset(DatasetId datasetId, DatasetOption... options); + + /** + * Lists the project's datasets. This method returns partial information on each dataset: + * ({@link Dataset#getDatasetId()}, {@link Dataset#getFriendlyName()} and + * {@link Dataset#getGeneratedId()}). To get complete information use either + * {@link #getDataset(String, DatasetOption...)} or + * {@link #getDataset(DatasetId, DatasetOption...)}. + * + *

Example of listing datasets, specifying the page size. + *

 {@code
+   * // List datasets in the default project
+   * Page datasets = bigquery.listDatasets(DatasetListOption.pageSize(100));
+   * for (Dataset dataset : datasets.iterateAll()) {
+   *   // do something with the dataset
+   * }
+   * }
+ * + * @throws BigQueryException upon failure + */ + Page listDatasets(DatasetListOption... options); + + /** + * Lists the datasets in the provided project. This method returns partial information on each + * dataset: ({@link Dataset#getDatasetId()}, {@link Dataset#getFriendlyName()} and + * {@link Dataset#getGeneratedId()}). To get complete information use either + * {@link #getDataset(String, DatasetOption...)} or + * {@link #getDataset(DatasetId, DatasetOption...)}. + * + *

Example of listing datasets in a project, specifying the page size. + *

 {@code
+   * String projectId = "my_project_id";
+   * // List datasets in a specified project
+   * Page datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100));
+   * for (Dataset dataset : datasets.iterateAll()) {
+   *   // do something with the dataset
+   * }
+   * }
+ * + * @throws BigQueryException upon failure + */ + Page listDatasets(String projectId, DatasetListOption... options); + + /** + * Deletes the requested dataset. + * + *

Example of deleting a dataset from its id, even if non-empty. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * boolean deleted = bigquery.delete(datasetName, DatasetDeleteOption.deleteContents());
+   * if (deleted) {
+   *   // the dataset was deleted
+   * } else {
+   *   // the dataset was not found
+   * }
+   * }
+ * + * @return {@code true} if dataset was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + boolean delete(String datasetId, DatasetDeleteOption... options); + + /** + * Deletes the requested dataset. + * + *

Example of deleting a dataset, even if non-empty. + *

 {@code
+   * String projectId = "my_project_id";
+   * String datasetName = "my_dataset_name";
+   * DatasetId datasetId = DatasetId.of(projectId, datasetName);
+   * boolean deleted = bigquery.delete(datasetId, DatasetDeleteOption.deleteContents());
+   * if (deleted) {
+   *   // the dataset was deleted
+   * } else {
+   *   // the dataset was not found
+   * }
+   * }
+ * + * @return {@code true} if dataset was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + boolean delete(DatasetId datasetId, DatasetDeleteOption... options); + + /** + * Deletes the requested table. + * + *

Example of deleting a table. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * boolean deleted = bigquery.delete(datasetName, tableName);
+   * if (deleted) {
+   *   // the table was deleted
+   * } else {
+   *   // the table was not found
+   * }
+   * }
+ * + * @return {@code true} if table was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + boolean delete(String datasetId, String tableId); + + /** + * Deletes the requested table. + * + *

Example of deleting a table. + *

 {@code
+   * String projectId = "my_project_id";
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * TableId tableId = TableId.of(projectId, datasetName, tableName);
+   * boolean deleted = bigquery.delete(tableId);
+   * if (deleted) {
+   *   // the table was deleted
+   * } else {
+   *   // the table was not found
+   * }
+   * }
+ * + * @return {@code true} if table was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + boolean delete(TableId tableId); + + /** + * Updates dataset information. + * + *

Example of updating a dataset by changing its description. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String newDescription = "some_new_description";
+   * Dataset oldDataset = bigquery.getDataset(datasetName);
+   * DatasetInfo datasetInfo = oldDataset.toBuilder().setDescription(newDescription).build();
+   * Dataset newDataset = bigquery.update(datasetInfo);
+   * }
+ * + * @throws BigQueryException upon failure + */ + Dataset update(DatasetInfo datasetInfo, DatasetOption... options); + + /** + * Updates table information. + * + *

Example of updating a table by changing its description. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * String newDescription = "new_description";
+   * Table oldTable = bigquery.getTable(datasetName, tableName);
+   * TableInfo tableInfo = oldTable.toBuilder().setDescription(newDescription).build();
+   * Table newTable = bigquery.update(tableInfo);
+   * }
+ * + * @throws BigQueryException upon failure + */ + Table update(TableInfo tableInfo, TableOption... options); + + /** + * Returns the requested table or {@code null} if not found. + * + *

Example of getting a table. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * Table table = bigquery.getTable(datasetName, tableName);
+   * }
+ * + * @throws BigQueryException upon failure + */ + Table getTable(String datasetId, String tableId, TableOption... options); + + /** + * Returns the requested table or {@code null} if not found. + * + *

Example of getting a table. + *

 {@code
+   * String projectId = "my_project_id";
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * TableId tableId = TableId.of(projectId, datasetName, tableName);
+   * Table table = bigquery.getTable(tableId);
+   * }
+ * + * @throws BigQueryException upon failure + */ + Table getTable(TableId tableId, TableOption... options); + + /** + * Lists the tables in the dataset. This method returns partial information on each table: + * ({@link Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} and type, + * which is part of {@link Table#getDefinition()}). To get complete information use either + * {@link #getTable(TableId, TableOption...)} or + * {@link #getTable(String, String, TableOption...)}. + * + *

Example of listing the tables in a dataset, specifying the page size. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * Page tables = bigquery.listTables(datasetName, TableListOption.pageSize(100));
+   * for (Table table : tables.iterateAll()) {
+   *   // do something with the table
+   * }
+   * }
+   *
+   * @throws BigQueryException upon failure
+   */
+  Page
listTables(String datasetId, TableListOption... options); + + /** + * Lists the tables in the dataset. This method returns partial information on each table: + * ({@link Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} + * and type, which is part of {@link Table#getDefinition()}). To get complete information use either + * {@link #getTable(TableId, TableOption...)} or + * {@link #getTable(String, String, TableOption...)}. + * + *

Example of listing the tables in a dataset. + *

 {@code
+   * String projectId = "my_project_id";
+   * String datasetName = "my_dataset_name";
+   * DatasetId datasetId = DatasetId.of(projectId, datasetName);
+   * Page
tables = bigquery.listTables(datasetId, TableListOption.pageSize(100)); + * for (Table table : tables.iterateAll()) { + * // do something with the table + * } + * } + * + * @throws BigQueryException upon failure + */ + Page
listTables(DatasetId datasetId, TableListOption... options); + + /** + * Sends an insert all request. + * + *

Example of inserting rows into a table without running a load job. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * TableId tableId = TableId.of(datasetName, tableName);
+   * // Values of the row to insert
+   * Map rowContent = new HashMap<>();
+   * rowContent.put("booleanField", true);
+   * // Bytes are passed in base64
+   * rowContent.put("bytesField", "Cg0NDg0="); // 0xA, 0xD, 0xD, 0xE, 0xD in base64
+   * // Records are passed as a map
+   * Map recordsContent = new HashMap<>();
+   * recordsContent.put("stringField", "Hello, World!");
+   * rowContent.put("recordField", recordsContent);
+   * InsertAllResponse response = bigquery.insertAll(InsertAllRequest.newBuilder(tableId)
+   *     .addRow("rowId", rowContent)
+   *     // More rows can be added in the same RPC by invoking .addRow() on the builder
+   *     .build());
+   * if (response.hasErrors()) {
+   *   // If any of the insertions failed, this lets you inspect the errors
+   *   for (Entry> entry : response.getInsertErrors().entrySet()) {
+   *     // inspect row error
+   *   }
+   * }
+   * }
+ * + * @throws BigQueryException upon failure + */ + InsertAllResponse insertAll(InsertAllRequest request); + + /** + * Lists the table's rows. + * + *

Example of listing table rows, specifying the page size. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * // This example reads the result 100 rows per RPC call. If there's no need to limit the number,
+   * // simply omit the option.
+   * TableResult tableData =
+   *     bigquery.listTableData(datasetName, tableName, TableDataListOption.pageSize(100));
+   * for (FieldValueList row : tableData.iterateAll()) {
+   *   // do something with the row
+   * }
+   * }
+ * + * @throws BigQueryException upon failure + */ + TableResult listTableData(String datasetId, String tableId, TableDataListOption... options); + + /** + * Lists the table's rows. + * + *

Example of listing table rows, specifying the page size. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * TableId tableIdObject = TableId.of(datasetName, tableName);
+   * // This example reads the result 100 rows per RPC call. If there's no need to limit the number,
+   * // simply omit the option.
+   * TableResult tableData =
+   *     bigquery.listTableData(tableIdObject, TableDataListOption.pageSize(100));
+   * for (FieldValueList row : tableData.iterateAll()) {
+   *   // do something with the row
+   * }
+   * }
+ * + * @throws BigQueryException upon failure + */ + TableResult listTableData(TableId tableId, TableDataListOption... options); + + /** + * Lists the table's rows. If the {@code schema} is not {@code null}, it is available to the + * {@link FieldValueList} iterated over. + * + *

Example of listing table rows with schema. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * Schema schema = ...;
+   * String field = "field";
+   * TableResult tableData =
+   *     bigquery.listTableData(datasetName, tableName, schema);
+   * for (FieldValueList row : tableData.iterateAll()) {
+   *   row.get(field);
+   * }
+   * }
+ * + * @throws BigQueryException upon failure + */ + TableResult listTableData( + String datasetId, String tableId, Schema schema, TableDataListOption... options); + + /** + * Lists the table's rows. If the {@code schema} is not {@code null}, it is available to the + * {@link FieldValueList} iterated over. + * + *

Example of listing table rows with schema. + *

 {@code
+   * Schema schema =
+   *     Schema.of(
+   *         Field.of("word", LegacySQLTypeName.STRING),
+   *         Field.of("word_count", LegacySQLTypeName.STRING),
+   *         Field.of("corpus", LegacySQLTypeName.STRING),
+   *         Field.of("corpus_date", LegacySQLTypeName.STRING));
+   * TableResult tableData =
+   *     bigquery.listTableData(
+   *         TableId.of("bigquery-public-data", "samples", "shakespeare"), schema);
+   * FieldValueList row = tableData.getValues().iterator().next();
+   * System.out.println(row.get("word").getStringValue());
+   * }
+ * + * @throws BigQueryException upon failure + */ + TableResult listTableData(TableId tableId, Schema schema, TableDataListOption... options); + + /** + * Returns the requested job or {@code null} if not found. If the location of the job is not "US" + * or "EU", {@link #getJob(JobId, JobOption...)} must be used instead. + * + *

Example of getting a job. + *

 {@code
+   * String jobName = "my_job_name";
+   * Job job = bigquery.getJob(jobName);
+   * if (job == null) {
+   *   // job was not found
+   * }
+   * }
+ * + * @throws BigQueryException upon failure + */ + Job getJob(String jobId, JobOption... options); + + /** + * Returns the requested job or {@code null} if not found. If the location of the job is not "US" + * or "EU", the {@code jobId} must specify the job location. + * + *

Example of getting a job. + *

 {@code
+   * String jobName = "my_job_name";
+   * JobId jobIdObject = JobId.of(jobName);
+   * Job job = bigquery.getJob(jobIdObject);
+   * if (job == null) {
+   *   // job was not found
+   * }
+   * }
+ * + * @throws BigQueryException upon failure + */ + Job getJob(JobId jobId, JobOption... options); + + /** + * Lists the jobs. + * + *

Example of listing jobs, specifying the page size. + *

 {@code
+   * Page jobs = bigquery.listJobs(JobListOption.pageSize(100));
+   * for (Job job : jobs.iterateAll()) {
+   *   // do something with the job
+   * }
+   * }
+ * + * @throws BigQueryException upon failure + */ + Page listJobs(JobListOption... options); + + /** + * Sends a job cancel request. This call will return immediately. The job status can then be + * checked using either {@link #getJob(JobId, JobOption...)} or {@link #getJob(String, + * JobOption...)}). + * + *

If the location of the job is not "US" or "EU", {@link #cancel(JobId)} must be used instead. + * + *

Example of cancelling a job. + *

 {@code
+   * String jobName = "my_job_name";
+   * boolean success = bigquery.cancel(jobName);
+   * if (success) {
+   *   // job was cancelled
+   * } else {
+   *   // job was not found
+   * }
+   * }
+ * + * @return {@code true} if cancel was requested successfully, {@code false} if the job was not + * found + * @throws BigQueryException upon failure + */ + boolean cancel(String jobId); + + /** + * Sends a job cancel request. This call will return immediately. The job status can then be + * checked using either {@link #getJob(JobId, JobOption...)} or {@link #getJob(String, + * JobOption...)}). + * + *

If the location of the job is not "US" or "EU", the {@code jobId} must specify the job + * location. + * + *

Example of cancelling a job. + *

 {@code
+   * String jobName = "my_job_name";
+   * JobId jobId = JobId.of(jobName);
+   * boolean success = bigquery.cancel(jobId);
+   * if (success) {
+   *   // job was cancelled
+   * } else {
+   *   // job was not found
+   * }
+   * }
+ * + * @return {@code true} if cancel was requested successfully, {@code false} if the job was not + * found + * @throws BigQueryException upon failure + */ + boolean cancel(JobId jobId); + + /** + * Runs the query associated with the request, using an internally-generated random JobId. + * + *

If the location of the job is not "US" or "EU", {@link #query(QueryJobConfiguration, JobId, + * JobOption...)} must be used instead. + * + *

This method cannot be used in conjuction with {@link QueryJobConfiguration#dryRun()} + * queries. Since dry-run queries are not actually executed, there's no way to retrieve results. + * + *

Example of running a query. + *

 {@code
+   * // BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
+   * String query =
+   *     "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
+   * QueryJobConfiguration queryConfig =
+   *     QueryJobConfiguration.newBuilder(query).build();
+   * 
+   * // Print the results.
+   * for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) {
+   *   for (FieldValue val : row) {
+   *     System.out.printf("%s,", val.toString());
+   *   }
+   *   System.out.printf("\n");
+   * }
+   * }
+ * + * @throws BigQueryException upon failure + * @throws InterruptedException if the current thread gets interrupted while waiting for the query + * to complete + * @throws JobException if the job completes unsuccessfully + */ + TableResult query(QueryJobConfiguration configuration, JobOption... options) + throws InterruptedException, JobException; + + /** + * Runs the query associated with the request, using the given JobId. + * + *

If the location of the job is not "US" or "EU", the {@code jobId} must specify the job + * location. + * + *

This method cannot be used in conjuction with {@link QueryJobConfiguration#dryRun()} + * queries. Since dry-run queries are not actually executed, there's no way to retrieve results. + * + *

See {@link #query(QueryJobConfiguration, JobOption...)} for examples on populating a {@link + * QueryJobConfiguration}. + * + * @throws BigQueryException upon failure + * @throws InterruptedException if the current thread gets interrupted while waiting for the query + * to complete + * @throws JobException if the job completes unsuccessfully + */ + TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption... options) + throws InterruptedException, JobException; + + /** + * Returns results of the query associated with the provided job. + * + *

Users are encouraged to use {@link Job#getQueryResults(QueryResultsOption...)} instead. + */ + @InternalApi + QueryResponse getQueryResults(JobId jobId, QueryResultsOption... options); + + /** + * Returns a channel to write data to be inserted into a BigQuery table. Data format and other + * options can be configured using the {@link WriteChannelConfiguration} parameter. If the job is + * not in "US" or "EU", {@link #writer(JobId, WriteChannelConfiguration)} must be used instead. + * + *

Example of creating a channel with which to write to a table. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * String csvData = "StringValue1\nStringValue2\n";
+   * TableId tableId = TableId.of(datasetName, tableName);
+   * WriteChannelConfiguration writeChannelConfiguration =
+   *     WriteChannelConfiguration.newBuilder(tableId)
+   *         .setFormatOptions(FormatOptions.csv())
+   *         .build();
+   * TableDataWriteChannel writer = bigquery.writer(writeChannelConfiguration);
+   * // Write data to writer
+   * try {
+   *   writer.write(ByteBuffer.wrap(csvData.getBytes(Charsets.UTF_8)));
+   * } finally {
+   *   writer.close();
+   * }
+   * // Get load job
+   * Job job = writer.getJob();
+   * job = job.waitFor();
+   * LoadStatistics stats = job.getStatistics();
+   * return stats.getOutputRows();
+   * }
+ * + *

Example of writing a local file to a table. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * Path csvPath = FileSystems.getDefault().getPath(".", "my-data.csv");
+   * String location = "us";
+   * TableId tableId = TableId.of(datasetName, tableName);
+   * WriteChannelConfiguration writeChannelConfiguration =
+   *     WriteChannelConfiguration.newBuilder(tableId)
+   *         .setFormatOptions(FormatOptions.csv())
+   *         .build();
+   * // The location must be specified; other fields can be auto-detected.
+   * JobId jobId = JobId.newBuilder().setLocation(location).build();
+   * TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration);
+   * // Write data to writer
+   * try (OutputStream stream = Channels.newOutputStream(writer)) {
+   *   Files.copy(csvPath, stream);
+   * }
+   * // Get load job
+   * Job job = writer.getJob();
+   * job = job.waitFor();
+   * LoadStatistics stats = job.getStatistics();
+   * return stats.getOutputRows();
+   * }
+ * + * @throws BigQueryException upon failure + */ + TableDataWriteChannel writer(WriteChannelConfiguration writeChannelConfiguration); + + /** + * Returns a channel to write data to be inserted into a BigQuery table. Data format and other + * options can be configured using the {@link WriteChannelConfiguration} parameter. If the job is + * not in "US" or "EU", the {@code jobId} must contain the location of the job. + * + *

Example of creating a channel with which to write to a table. + *

 {@code
+   * String datasetName = "my_dataset_name";
+   * String tableName = "my_table_name";
+   * String csvData = "StringValue1\nStringValue2\n";
+   * String location = "us";
+   * TableId tableId = TableId.of(datasetName, tableName);
+   * WriteChannelConfiguration writeChannelConfiguration =
+   *     WriteChannelConfiguration.newBuilder(tableId).setFormatOptions(FormatOptions.csv()).build();
+   * // The location must be specified; other fields can be auto-detected.
+   * JobId jobId = JobId.newBuilder().setLocation(location).build();
+   * TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration);
+   * // Write data to writer
+   * try {
+   *   writer.write(ByteBuffer.wrap(csvData.getBytes(Charsets.UTF_8)));
+   * } finally {
+   *   writer.close();
+   * }
+   * // Get load job
+   * Job job = writer.getJob();
+   * job = job.waitFor();
+   * LoadStatistics stats = job.getStatistics();
+   * return stats.getOutputRows();
+   * }
+ * + */ + TableDataWriteChannel writer(JobId jobId, WriteChannelConfiguration writeChannelConfiguration); +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java new file mode 100644 index 000000000000..7540f6d01e9d --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java @@ -0,0 +1,146 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.ErrorProto; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; + +import java.io.Serializable; +import java.util.Objects; + +/** + * Google Cloud BigQuery Error. Objects of this class represent errors encountered by the BigQuery + * service while executing a request. A BigQuery Job that terminated with an error has a non-null + * {@link JobStatus#getError()}. A job can also encounter errors during its execution that do not + * cause the whole job to fail (see {@link JobStatus#getExecutionErrors()}). Similarly, queries and + * insert all requests can cause BigQuery errors that do not mean the whole operation failed (see + * {@link JobStatus#getExecutionErrors()} and {@link InsertAllResponse#getInsertErrors()}). + * When a {@link BigQueryException} is thrown the BigQuery Error that caused it, if any, can be + * accessed with {@link BigQueryException#getError()}. + */ +public final class BigQueryError implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public BigQueryError apply(ErrorProto pb) { + return BigQueryError.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public ErrorProto apply(BigQueryError error) { + return error.toPb(); + } + }; + private static final long serialVersionUID = -6566785320629096688L; + + private final String reason; + private final String location; + private final String debugInfo; + private final String message; + + public BigQueryError(String reason, String location, String message, String debugInfo) { + this.reason = reason; + this.location = location; + this.debugInfo = debugInfo; + this.message = message; + } + + public BigQueryError(String reason, String location, String message) { + this.reason = reason; + this.location = location; + this.message = message; + this.debugInfo = null; + } + + + /** + * Returns short error code that summarizes the error. + * + * @see Troubleshooting + * Errors + */ + public String getReason() { + return reason; + } + + + /** + * Returns where the error occurred, if present. + */ + public String getLocation() { + return location; + } + + String getDebugInfo() { + return debugInfo; + } + + + /** + * Returns a human-readable description of the error. + */ + public String getMessage() { + return message; + } + + @Override + public int hashCode() { + return Objects.hash(reason, location, message); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("reason", reason) + .add("location", location) + .add("message", message) + .toString(); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof BigQueryError + && Objects.equals(toPb(), ((BigQueryError) obj).toPb()); + } + + ErrorProto toPb() { + ErrorProto errorPb = new ErrorProto(); + if (reason != null) { + errorPb.setReason(reason); + } + if (location != null) { + errorPb.setLocation(location); + } + if (message != null) { + errorPb.setMessage(message); + } + if (debugInfo != null) { + errorPb.setDebugInfo(debugInfo); + } + return errorPb; + } + + static BigQueryError fromPb(ErrorProto errorPb) { + return new BigQueryError(errorPb.getReason(), errorPb.getLocation(), errorPb.getMessage(), + errorPb.getDebugInfo()); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java new file mode 100644 index 000000000000..ad709a3f7807 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java @@ -0,0 +1,110 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.cloud.BaseServiceException; +import com.google.cloud.RetryHelper.RetryHelperException; +import com.google.cloud.http.BaseHttpServiceException; +import com.google.common.collect.ImmutableSet; +import java.io.IOException; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.ExecutionException; + +/** + * BigQuery service exception. + * + * @see Google Cloud + * BigQuery error codes + */ +public final class BigQueryException extends BaseHttpServiceException { + + // see: https://cloud.google.com/bigquery/troubleshooting-errors + private static final Set RETRYABLE_ERRORS = ImmutableSet.of( + new Error(500, null), + new Error(502, null), + new Error(503, null), + new Error(504, null)); + private static final long serialVersionUID = -5006625989225438209L; + + private final BigQueryError error; + + public BigQueryException(int code, String message) { + this(code, message, (Throwable) null); + } + + public BigQueryException(int code, String message, Throwable cause) { + super(code, message, null, true, RETRYABLE_ERRORS, cause); + this.error = null; + } + + public BigQueryException(int code, String message, BigQueryError error) { + super(code, message, error != null ? error.getReason() : null, true, RETRYABLE_ERRORS); + this.error = error; + } + + public BigQueryException(IOException exception) { + super(exception, true, RETRYABLE_ERRORS); + BigQueryError error = null; + if (getReason() != null) { + error = new BigQueryError(getReason(), getLocation(), getMessage(), getDebugInfo()); + } + this.error = error; + } + + + /** + * Returns the {@link BigQueryError} that caused this exception. Returns {@code null} if none + * exists. + */ + public BigQueryError getError() { + return error; + } + + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof BigQueryException)) { + return false; + } + BigQueryException other = (BigQueryException) obj; + return super.equals(other) && Objects.equals(error, other.error); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), error); + } + + /** + * Translate RetryHelperException to the BigQueryException that caused the error. This method will + * always throw an exception. + * + * @throws BigQueryException when {@code ex} was caused by a {@code BigQueryException} + */ + static BaseServiceException translateAndThrow(RetryHelperException ex) { + BaseServiceException.translate(ex); + throw new BigQueryException(UNKNOWN_CODE, ex.getMessage(), ex.getCause()); + } + + static BaseServiceException translateAndThrow(ExecutionException ex) { + BaseServiceException.translate(ex); + throw new BigQueryException(UNKNOWN_CODE, ex.getMessage(), ex.getCause()); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java new file mode 100644 index 000000000000..e02103f04a53 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java @@ -0,0 +1,25 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.cloud.ServiceFactory; + +/** + * An interface for BigQuery factories. + */ +public interface BigQueryFactory extends ServiceFactory { +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java new file mode 100644 index 000000000000..c4d6f0f7ae88 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -0,0 +1,741 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.cloud.RetryHelper.runWithRetries; +import static com.google.common.base.Preconditions.checkArgument; + +import com.google.api.core.InternalApi; +import com.google.api.gax.paging.Page; +import com.google.api.services.bigquery.model.ErrorProto; +import com.google.api.services.bigquery.model.GetQueryResultsResponse; +import com.google.api.services.bigquery.model.TableDataInsertAllRequest; +import com.google.api.services.bigquery.model.TableDataInsertAllRequest.Rows; +import com.google.api.services.bigquery.model.TableDataInsertAllResponse; +import com.google.api.services.bigquery.model.TableDataList; +import com.google.api.services.bigquery.model.TableRow; +import com.google.api.services.bigquery.model.TableSchema; +import com.google.cloud.BaseService; +import com.google.cloud.PageImpl; +import com.google.cloud.PageImpl.NextPageFetcher; +import com.google.cloud.RetryHelper; +import com.google.cloud.RetryHelper.RetryHelperException; +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; +import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Function; +import com.google.common.base.Supplier; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import java.util.List; +import java.util.Map; +import java.util.concurrent.Callable; + +final class BigQueryImpl extends BaseService implements BigQuery { + + private static class DatasetPageFetcher implements NextPageFetcher { + + private static final long serialVersionUID = -3057564042439021278L; + private final Map requestOptions; + private final BigQueryOptions serviceOptions; + private final String projectId; + + DatasetPageFetcher(String projectId, BigQueryOptions serviceOptions, String cursor, + Map optionMap) { + this.projectId = projectId; + this.requestOptions = + PageImpl.nextRequestOptions(BigQueryRpc.Option.PAGE_TOKEN, cursor, optionMap); + this.serviceOptions = serviceOptions; + } + + @Override + public Page getNextPage() { + return listDatasets(projectId, serviceOptions, requestOptions); + } + } + + private static class TablePageFetcher implements NextPageFetcher
{ + + private static final long serialVersionUID = 8611248840504201187L; + private final Map requestOptions; + private final BigQueryOptions serviceOptions; + private final DatasetId datasetId; + + TablePageFetcher(DatasetId datasetId, BigQueryOptions serviceOptions, String cursor, + Map optionMap) { + this.requestOptions = + PageImpl.nextRequestOptions(BigQueryRpc.Option.PAGE_TOKEN, cursor, optionMap); + this.serviceOptions = serviceOptions; + this.datasetId = datasetId; + } + + @Override + public Page
getNextPage() { + return listTables(datasetId, serviceOptions, requestOptions); + } + } + + private static class JobPageFetcher implements NextPageFetcher { + + private static final long serialVersionUID = 8536533282558245472L; + private final Map requestOptions; + private final BigQueryOptions serviceOptions; + + JobPageFetcher(BigQueryOptions serviceOptions, String cursor, + Map optionMap) { + this.requestOptions = + PageImpl.nextRequestOptions(BigQueryRpc.Option.PAGE_TOKEN, cursor, optionMap); + this.serviceOptions = serviceOptions; + } + + @Override + public Page getNextPage() { + return listJobs(serviceOptions, requestOptions); + } + } + + private static class TableDataPageFetcher implements NextPageFetcher { + + private static final long serialVersionUID = -8501991114794410114L; + private final Map requestOptions; + private final BigQueryOptions serviceOptions; + private final TableId table; + + TableDataPageFetcher(TableId table, BigQueryOptions serviceOptions, String cursor, + Map optionMap) { + this.requestOptions = + PageImpl.nextRequestOptions(BigQueryRpc.Option.PAGE_TOKEN, cursor, optionMap); + this.serviceOptions = serviceOptions; + this.table = table; + } + + @Override + public Page getNextPage() { + return listTableData(table, serviceOptions, requestOptions).x(); + } + } + + private final BigQueryRpc bigQueryRpc; + + BigQueryImpl(BigQueryOptions options) { + super(options); + bigQueryRpc = options.getBigQueryRpcV2(); + } + + @Override + public Dataset create(DatasetInfo datasetInfo, DatasetOption... options) { + final com.google.api.services.bigquery.model.Dataset datasetPb = + datasetInfo.setProjectId(getOptions().getProjectId()).toPb(); + final Map optionsMap = optionMap(options); + try { + return Dataset.fromPb(this, + runWithRetries(new Callable() { + @Override + public com.google.api.services.bigquery.model.Dataset call() { + return bigQueryRpc.create(datasetPb, optionsMap); + } + }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock())); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public Table create(TableInfo tableInfo, TableOption... options) { + final com.google.api.services.bigquery.model.Table tablePb = + tableInfo.setProjectId(getOptions().getProjectId()).toPb(); + final Map optionsMap = optionMap(options); + try { + return Table.fromPb(this, + runWithRetries(new Callable() { + @Override + public com.google.api.services.bigquery.model.Table call() { + return bigQueryRpc.create(tablePb, optionsMap); + } + }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock())); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public Job create(JobInfo jobInfo, JobOption... options) { + Supplier idProvider = + new Supplier() { + @Override + public JobId get() { + return JobId.of(); + } + }; + return create(jobInfo, idProvider, options); + } + + @InternalApi("visible for testing") + Job create(JobInfo jobInfo, Supplier idProvider, JobOption... options) { + boolean idRandom = false; + if (jobInfo.getJobId() == null) { + jobInfo = jobInfo.toBuilder().setJobId(idProvider.get()).build(); + idRandom = true; + } + final com.google.api.services.bigquery.model.Job jobPb = + jobInfo.setProjectId(getOptions().getProjectId()).toPb(); + final Map optionsMap = optionMap(options); + + BigQueryException createException; + // NOTE(pongad): This double-try structure is admittedly odd. + // translateAndThrow itself throws, and pretends to return an exception only + // so users can pretend to throw. + // This makes it difficult to translate without throwing. + // Fixing this entails some work on BaseServiceException.translate. + // Since that affects a bunch of APIs, we should fix this as a separate change. + try { + try { + return Job.fromPb( + this, + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Job call() { + return bigQueryRpc.create(jobPb, optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock())); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } catch (BigQueryException e) { + createException = e; + } + + if (!idRandom) { + throw createException; + } + + // If create RPC fails, it's still possible that the job has been successfully created, + // and get might work. + // We can only do this if we randomly generated the ID. Otherwise we might mistakenly + // fetch a job created by someone else. + Job job; + try { + job = getJob(jobInfo.getJobId()); + } catch (BigQueryException e) { + throw createException; + } + if (job == null) { + throw createException; + } + return job; + } + + @Override + public Dataset getDataset(String datasetId, DatasetOption... options) { + return getDataset(DatasetId.of(datasetId), options); + } + + @Override + public Dataset getDataset(final DatasetId datasetId, DatasetOption... options) { + final DatasetId completeDatasetId = datasetId.setProjectId(getOptions().getProjectId()); + final Map optionsMap = optionMap(options); + try { + com.google.api.services.bigquery.model.Dataset answer = + runWithRetries(new Callable() { + @Override + public com.google.api.services.bigquery.model.Dataset call() { + return bigQueryRpc.getDataset( + completeDatasetId.getProject(), completeDatasetId.getDataset(), optionsMap); + } + }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + return answer == null ? null : Dataset.fromPb(this, answer); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public Page listDatasets(DatasetListOption... options) { + return listDatasets(getOptions().getProjectId(), options); + } + + @Override + public Page listDatasets(String projectId, DatasetListOption... options) { + return listDatasets(projectId, getOptions(), optionMap(options)); + } + + private static Page listDatasets( + final String projectId, + final BigQueryOptions serviceOptions, + final Map optionsMap) { + try { + Tuple> result = + runWithRetries( + new Callable< + Tuple>>() { + @Override + public Tuple> + call() { + return serviceOptions.getBigQueryRpcV2().listDatasets(projectId, optionsMap); + } + }, + serviceOptions.getRetrySettings(), + EXCEPTION_HANDLER, + serviceOptions.getClock()); + String cursor = result.x(); + return new PageImpl<>( + new DatasetPageFetcher(projectId, serviceOptions, cursor, optionsMap), + cursor, + Iterables.transform( + result.y(), + new Function() { + @Override + public Dataset apply(com.google.api.services.bigquery.model.Dataset dataset) { + return Dataset.fromPb(serviceOptions.getService(), dataset); + } + })); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public boolean delete(String datasetId, DatasetDeleteOption... options) { + return delete(DatasetId.of(datasetId), options); + } + + @Override + public boolean delete(DatasetId datasetId, DatasetDeleteOption... options) { + final DatasetId completeDatasetId = datasetId.setProjectId(getOptions().getProjectId()); + final Map optionsMap = optionMap(options); + try { + return runWithRetries(new Callable() { + @Override + public Boolean call() { + return bigQueryRpc.deleteDataset( + completeDatasetId.getProject(), completeDatasetId.getDataset(), optionsMap); + } + }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public boolean delete(String datasetId, String tableId) { + return delete(TableId.of(datasetId, tableId)); + } + + @Override + public boolean delete(TableId tableId) { + final TableId completeTableId = tableId.setProjectId(getOptions().getProjectId()); + try { + return runWithRetries(new Callable() { + @Override + public Boolean call() { + return bigQueryRpc.deleteTable(completeTableId.getProject(), completeTableId.getDataset(), + completeTableId.getTable()); + } + }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public Dataset update(DatasetInfo datasetInfo, DatasetOption... options) { + final com.google.api.services.bigquery.model.Dataset datasetPb = + datasetInfo.setProjectId(getOptions().getProjectId()).toPb(); + final Map optionsMap = optionMap(options); + try { + return Dataset.fromPb(this, + runWithRetries(new Callable() { + @Override + public com.google.api.services.bigquery.model.Dataset call() { + return bigQueryRpc.patch(datasetPb, optionsMap); + } + }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock())); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public Table update(TableInfo tableInfo, TableOption... options) { + final com.google.api.services.bigquery.model.Table tablePb = + tableInfo.setProjectId(getOptions().getProjectId()).toPb(); + final Map optionsMap = optionMap(options); + try { + return Table.fromPb(this, + runWithRetries(new Callable() { + @Override + public com.google.api.services.bigquery.model.Table call() { + return bigQueryRpc.patch(tablePb, optionsMap); + } + }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock())); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public Table getTable(final String datasetId, final String tableId, TableOption... options) { + return getTable(TableId.of(datasetId, tableId), options); + } + + @Override + public Table getTable(TableId tableId, TableOption... options) { + final TableId completeTableId = tableId.setProjectId(getOptions().getProjectId()); + final Map optionsMap = optionMap(options); + try { + com.google.api.services.bigquery.model.Table answer = + runWithRetries(new Callable() { + @Override + public com.google.api.services.bigquery.model.Table call() { + return bigQueryRpc.getTable(completeTableId.getProject(), + completeTableId.getDataset(), completeTableId.getTable(), optionsMap); + } + }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + return answer == null ? null : Table.fromPb(this, answer); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public Page
listTables(String datasetId, TableListOption... options) { + return listTables( + DatasetId.of(getOptions().getProjectId(), datasetId), getOptions(), optionMap(options)); + } + + @Override + public Page
listTables(DatasetId datasetId, TableListOption... options) { + DatasetId completeDatasetId = datasetId.setProjectId(getOptions().getProjectId()); + return listTables(completeDatasetId, getOptions(), optionMap(options)); + } + + private static Page
listTables(final DatasetId datasetId, + final BigQueryOptions serviceOptions, final Map optionsMap) { + try { + Tuple> result = + runWithRetries(new Callable>>() { + @Override + public Tuple> + call() { + return serviceOptions.getBigQueryRpcV2().listTables( + datasetId.getProject(), datasetId.getDataset(), optionsMap); + } + }, serviceOptions.getRetrySettings(), EXCEPTION_HANDLER, serviceOptions.getClock()); + String cursor = result.x(); + Iterable
tables = Iterables.transform(result.y(), + new Function() { + @Override + public Table apply(com.google.api.services.bigquery.model.Table table) { + return Table.fromPb(serviceOptions.getService(), table); + } + }); + return new PageImpl<>(new TablePageFetcher(datasetId, serviceOptions, cursor, optionsMap), + cursor, tables); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public InsertAllResponse insertAll(InsertAllRequest request) { + final TableId tableId = request.getTable().setProjectId(getOptions().getProjectId()); + final TableDataInsertAllRequest requestPb = new TableDataInsertAllRequest(); + requestPb.setIgnoreUnknownValues(request.ignoreUnknownValues()); + requestPb.setSkipInvalidRows(request.skipInvalidRows()); + requestPb.setTemplateSuffix(request.getTemplateSuffix()); + // Using an array of size 1 here to have a mutable boolean variable, which can be modified in + // an anonymous inner class. + final boolean[] allInsertIdsSet = {true}; + List rowsPb = Lists.transform(request.getRows(), new Function() { + @Override + public Rows apply(RowToInsert rowToInsert) { + allInsertIdsSet[0] &= rowToInsert.getId() != null; + return new Rows().setInsertId(rowToInsert.getId()).setJson(rowToInsert.getContent()); + } + }); + requestPb.setRows(rowsPb); + + TableDataInsertAllResponse responsePb; + if (allInsertIdsSet[0]) { + // allowing retries only if all row insertIds are set (used for deduplication) + try { + responsePb = runWithRetries( + new Callable() { + @Override + public TableDataInsertAllResponse call() throws Exception { + return bigQueryRpc.insertAll(tableId.getProject(), tableId.getDataset(), + tableId.getTable(), requestPb); + } + }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + } catch (RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } else { + responsePb = bigQueryRpc.insertAll(tableId.getProject(), tableId.getDataset(), + tableId.getTable(), requestPb); + } + + return InsertAllResponse.fromPb(responsePb); + } + + @Override + public TableResult listTableData( + String datasetId, String tableId, TableDataListOption... options) { + return listTableData(TableId.of(datasetId, tableId), options); + } + + @Override + public TableResult listTableData(TableId tableId, TableDataListOption... options) { + return listTableData(tableId, null, options); + } + + @Override + public TableResult listTableData( + String datasetId, String tableId, Schema schema, TableDataListOption... options) { + return listTableData(TableId.of(datasetId, tableId), schema, options); + } + + @Override + public TableResult listTableData(TableId tableId, Schema schema, TableDataListOption... options) { + Tuple, Long> data = + listTableData(tableId, getOptions(), optionMap(options)); + return new TableResult(schema, data.y(), data.x()); + } + + private static Tuple, Long> listTableData( + final TableId tableId, + final BigQueryOptions serviceOptions, + final Map optionsMap) { + try { + final TableId completeTableId = tableId.setProjectId(serviceOptions.getProjectId()); + TableDataList result = + runWithRetries( + new Callable() { + @Override + public TableDataList call() { + return serviceOptions + .getBigQueryRpcV2() + .listTableData( + completeTableId.getProject(), + completeTableId.getDataset(), + completeTableId.getTable(), + optionsMap); + } + }, + serviceOptions.getRetrySettings(), + EXCEPTION_HANDLER, + serviceOptions.getClock()); + String cursor = result.getPageToken(); + return Tuple.of( + new PageImpl<>( + new TableDataPageFetcher(tableId, serviceOptions, cursor, optionsMap), + cursor, + transformTableData(result.getRows())), + result.getTotalRows()); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + private static Iterable transformTableData(Iterable tableDataPb) { + return ImmutableList.copyOf( + Iterables.transform( + tableDataPb != null ? tableDataPb : ImmutableList.of(), + new Function() { + @Override + public FieldValueList apply(TableRow rowPb) { + return FieldValueList.fromPb(rowPb.getF(), null); + } + })); + } + + @Override + public Job getJob(String jobId, JobOption... options) { + return getJob(JobId.of(jobId), options); + } + + @Override + public Job getJob(JobId jobId, JobOption... options) { + final Map optionsMap = optionMap(options); + final JobId completeJobId = jobId.setProjectId(getOptions().getProjectId()); + try { + com.google.api.services.bigquery.model.Job answer = + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Job call() { + return bigQueryRpc.getJob( + completeJobId.getProject(), + completeJobId.getJob(), + completeJobId.getLocation(), + optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); + return answer == null ? null : Job.fromPb(this, answer); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public Page listJobs(JobListOption... options) { + return listJobs(getOptions(), optionMap(options)); + } + + private static Page listJobs(final BigQueryOptions serviceOptions, + final Map optionsMap) { + Tuple> result = + runWithRetries(new Callable>>() { + @Override + public Tuple> + call() { + return serviceOptions.getBigQueryRpcV2().listJobs(serviceOptions.getProjectId(), optionsMap); + } + }, serviceOptions.getRetrySettings(), EXCEPTION_HANDLER, serviceOptions.getClock()); + String cursor = result.x(); + Iterable jobs = Iterables.transform(result.y(), + new Function() { + @Override + public Job apply(com.google.api.services.bigquery.model.Job job) { + return Job.fromPb(serviceOptions.getService(), job); + } + }); + return new PageImpl<>(new JobPageFetcher(serviceOptions, cursor, optionsMap), cursor, jobs); + } + + @Override + public boolean cancel(String jobId) { + return cancel(JobId.of(jobId)); + } + + @Override + public boolean cancel(JobId jobId) { + final JobId completeJobId = jobId.setProjectId(getOptions().getProjectId()); + try { + return runWithRetries( + new Callable() { + @Override + public Boolean call() { + return bigQueryRpc.cancel( + completeJobId.getProject(), completeJobId.getJob(), completeJobId.getLocation()); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public TableResult query(QueryJobConfiguration configuration, JobOption... options) + throws InterruptedException, JobException { + Job.checkNotDryRun(configuration, "query"); + return create(JobInfo.of(configuration), options).getQueryResults(); + } + + @Override + public TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption... options) + throws InterruptedException, JobException { + Job.checkNotDryRun(configuration, "query"); + return create(JobInfo.of(jobId, configuration), options).getQueryResults(); + } + + @Override + public QueryResponse getQueryResults(JobId jobId, QueryResultsOption... options) { + Map optionsMap = optionMap(options); + return getQueryResults(jobId, getOptions(), optionsMap); + } + + private static QueryResponse getQueryResults(JobId jobId, + final BigQueryOptions serviceOptions, final Map optionsMap) { + final JobId completeJobId = jobId.setProjectId(serviceOptions.getProjectId()); + try { + GetQueryResultsResponse results = + runWithRetries( + new Callable() { + @Override + public GetQueryResultsResponse call() { + return serviceOptions + .getBigQueryRpcV2() + .getQueryResults( + completeJobId.getProject(), + completeJobId.getJob(), + completeJobId.getLocation(), + optionsMap); + } + }, + serviceOptions.getRetrySettings(), + EXCEPTION_HANDLER, + serviceOptions.getClock()); + TableSchema schemaPb = results.getSchema(); + + ImmutableList.Builder errors = ImmutableList.builder(); + if (results.getErrors() != null) { + for (ErrorProto error : results.getErrors()) { + errors.add(BigQueryError.fromPb(error)); + } + } + + return QueryResponse.newBuilder() + .setCompleted(results.getJobComplete()) + .setSchema(schemaPb == null ? null : Schema.fromPb(schemaPb)) + .setTotalRows(results.getTotalRows() == null ? 0 : results.getTotalRows().longValue()) + .setErrors(errors.build()) + .build(); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public TableDataWriteChannel writer(WriteChannelConfiguration writeChannelConfiguration) { + return writer(JobId.of(), writeChannelConfiguration); + } + + @Override + public TableDataWriteChannel writer( + JobId jobId, WriteChannelConfiguration writeChannelConfiguration) { + return new TableDataWriteChannel( + getOptions(), + jobId.setProjectId(getOptions().getProjectId()), + writeChannelConfiguration.setProjectId(getOptions().getProjectId())); + } + + @VisibleForTesting + static Map optionMap(Option... options) { + Map optionMap = Maps.newEnumMap(BigQueryRpc.Option.class); + for (Option option : options) { + Object prev = optionMap.put(option.getRpcOption(), option.getValue()); + checkArgument(prev == null, "Duplicate option %s", option); + } + return optionMap; + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java new file mode 100644 index 000000000000..28dd0a4b6477 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -0,0 +1,148 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.cloud.http.HttpTransportOptions; +import com.google.cloud.ServiceDefaults; +import com.google.cloud.ServiceOptions; +import com.google.cloud.ServiceRpc; +import com.google.cloud.TransportOptions; +import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.cloud.bigquery.spi.BigQueryRpcFactory; +import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; +import com.google.common.collect.ImmutableSet; + +import java.util.Set; + +public class BigQueryOptions extends ServiceOptions { + + private static final String API_SHORT_NAME = "BigQuery"; + private static final String BIGQUERY_SCOPE = "https://www.googleapis.com/auth/bigquery"; + private static final Set SCOPES = ImmutableSet.of(BIGQUERY_SCOPE); + private static final long serialVersionUID = -2437598817433266049L; + + public static class DefaultBigQueryFactory implements BigQueryFactory { + + private static final BigQueryFactory INSTANCE = new DefaultBigQueryFactory(); + + @Override + public BigQuery create(BigQueryOptions options) { + return new BigQueryImpl(options); + } + } + + public static class DefaultBigQueryRpcFactory implements BigQueryRpcFactory { + + private static final BigQueryRpcFactory INSTANCE = new DefaultBigQueryRpcFactory(); + + @Override + public ServiceRpc create(BigQueryOptions options) { + return new HttpBigQueryRpc(options); + } + } + + public static class Builder extends + ServiceOptions.Builder { + + private Builder() { + } + + private Builder(BigQueryOptions options) { + super(options); + } + + @Override + public Builder setTransportOptions(TransportOptions transportOptions) { + if (!(transportOptions instanceof HttpTransportOptions)) { + throw new IllegalArgumentException( + "Only http transport is allowed for " + API_SHORT_NAME + "."); + } + return super.setTransportOptions(transportOptions); + } + + @Override + public BigQueryOptions build() { + return new BigQueryOptions(this); + } + } + + private BigQueryOptions(Builder builder) { + super(BigQueryFactory.class, BigQueryRpcFactory.class, builder, new BigQueryDefaults()); + } + + private static class BigQueryDefaults implements + ServiceDefaults { + + @Override + public BigQueryFactory getDefaultServiceFactory() { + return DefaultBigQueryFactory.INSTANCE; + } + + @Override + public BigQueryRpcFactory getDefaultRpcFactory() { + return DefaultBigQueryRpcFactory.INSTANCE; + } + + @Override + public TransportOptions getDefaultTransportOptions() { + return getDefaultHttpTransportOptions(); + } + } + + public static HttpTransportOptions getDefaultHttpTransportOptions() { + return HttpTransportOptions.newBuilder().build(); + } + + @Override + protected Set getScopes() { + return SCOPES; + } + + protected BigQueryRpc getBigQueryRpcV2() { + return (BigQueryRpc) getRpc(); + } + + @SuppressWarnings("unchecked") + @Override + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public int hashCode() { + return baseHashCode(); + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof BigQueryOptions)) { + return false; + } + BigQueryOptions other = (BigQueryOptions) obj; + return baseEquals(other); + } + + + public static BigQueryOptions getDefaultInstance() { + return newBuilder().build(); + } + + + public static Builder newBuilder() { + return new Builder(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java new file mode 100644 index 000000000000..7558094a2b5c --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java @@ -0,0 +1,295 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.JobConfigurationTableCopy; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; + +import java.util.List; +import java.util.Objects; + +/** + * Google BigQuery copy job configuration. A copy job copies an existing table to another new or + * existing table. Copy job configurations have {@link JobConfiguration.Type#COPY} type. + */ +public final class CopyJobConfiguration extends JobConfiguration { + + private static final long serialVersionUID = 1140509641399762967L; + + private final List sourceTables; + private final TableId destinationTable; + private final JobInfo.CreateDisposition createDisposition; + private final JobInfo.WriteDisposition writeDisposition; + private final EncryptionConfiguration destinationEncryptionConfiguration; + + public static final class Builder + extends JobConfiguration.Builder { + + private List sourceTables; + private TableId destinationTable; + private JobInfo.CreateDisposition createDisposition; + private JobInfo.WriteDisposition writeDisposition; + private EncryptionConfiguration destinationEncryptionConfiguration; + + private Builder() { + super(Type.COPY); + } + + private Builder(CopyJobConfiguration jobConfiguration) { + this(); + this.sourceTables = jobConfiguration.sourceTables; + this.destinationTable = jobConfiguration.destinationTable; + this.createDisposition = jobConfiguration.createDisposition; + this.writeDisposition = jobConfiguration.writeDisposition; + this.destinationEncryptionConfiguration = jobConfiguration.destinationEncryptionConfiguration; + } + + private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { + this(); + JobConfigurationTableCopy copyConfigurationPb = configurationPb.getCopy(); + this.destinationTable = TableId.fromPb(copyConfigurationPb.getDestinationTable()); + if (copyConfigurationPb.getSourceTables() != null) { + this.sourceTables = + Lists.transform(copyConfigurationPb.getSourceTables(), TableId.FROM_PB_FUNCTION); + } else { + this.sourceTables = ImmutableList.of(TableId.fromPb(copyConfigurationPb.getSourceTable())); + } + if (copyConfigurationPb.getCreateDisposition() != null) { + this.createDisposition = + JobInfo.CreateDisposition.valueOf(copyConfigurationPb.getCreateDisposition()); + } + if (copyConfigurationPb.getWriteDisposition() != null) { + this.writeDisposition = JobInfo.WriteDisposition.valueOf( + copyConfigurationPb.getWriteDisposition()); + } + if (copyConfigurationPb.getDestinationEncryptionConfiguration() != null) { + this.destinationEncryptionConfiguration = new EncryptionConfiguration.Builder( + copyConfigurationPb.getDestinationEncryptionConfiguration()).build(); + } + } + + + /** + * Sets the source tables to copy. + */ + public Builder setSourceTables(List sourceTables) { + this.sourceTables = sourceTables != null ? ImmutableList.copyOf(sourceTables) : null; + return this; + } + + + /** + * Sets the destination table of the copy job. + */ + public Builder setDestinationTable(TableId destinationTable) { + this.destinationTable = destinationTable; + return this; + } + + + public Builder setDestinationEncryptionConfiguration( + EncryptionConfiguration encryptionConfiguration) { + this.destinationEncryptionConfiguration = encryptionConfiguration; + return this; + } + + + /** + * Sets whether the job is allowed to create new tables. + * + * @see + * Create Disposition + */ + public Builder setCreateDisposition(JobInfo.CreateDisposition createDisposition) { + this.createDisposition = createDisposition; + return this; + } + + + /** + * Sets the action that should occur if the destination table already exists. + * + * @see + * Write Disposition + */ + public Builder setWriteDisposition(JobInfo.WriteDisposition writeDisposition) { + this.writeDisposition = writeDisposition; + return this; + } + + public CopyJobConfiguration build() { + return new CopyJobConfiguration(this); + } + } + + private CopyJobConfiguration(Builder builder) { + super(builder); + this.sourceTables = checkNotNull(builder.sourceTables); + this.destinationTable = checkNotNull(builder.destinationTable); + this.createDisposition = builder.createDisposition; + this.writeDisposition = builder.writeDisposition; + this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; + } + + + /** + * Returns the source tables to copy. + */ + public List getSourceTables() { + return sourceTables; + } + + + /** + * Returns the destination table to load the data into. + */ + public TableId getDestinationTable() { + return destinationTable; + } + + + public EncryptionConfiguration getDestinationEncryptionConfiguration() { + return destinationEncryptionConfiguration; + } + + + /** + * Returns whether the job is allowed to create new tables. + * + * @see + * Create Disposition + */ + public JobInfo.CreateDisposition getCreateDisposition() { + return this.createDisposition; + } + + + /** + * Returns the action that should occur if the destination table already exists. + * + * @see + * Write Disposition + */ + public JobInfo.WriteDisposition getWriteDisposition() { + return writeDisposition; + } + + @Override + public Builder toBuilder() { + return new Builder(this); + } + + @Override + ToStringHelper toStringHelper() { + return super.toStringHelper() + .add("sourceTables", sourceTables) + .add("destinationTable", destinationTable) + .add("destinationEncryptionConfiguration", destinationEncryptionConfiguration) + .add("createDisposition", createDisposition) + .add("writeDisposition", writeDisposition); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof CopyJobConfiguration + && baseEquals((CopyJobConfiguration) obj); + } + + @Override + public int hashCode() { + return Objects.hash(baseHashCode(), sourceTables, destinationTable, createDisposition, + writeDisposition); + } + + @Override + CopyJobConfiguration setProjectId(final String projectId) { + Builder builder = toBuilder(); + builder.setSourceTables( + Lists.transform(getSourceTables(), new Function() { + @Override + public TableId apply(TableId tableId) { + return tableId.setProjectId(projectId); + } + })); + builder.setDestinationTable(getDestinationTable().setProjectId(projectId)); + return builder.build(); + } + + @Override + com.google.api.services.bigquery.model.JobConfiguration toPb() { + JobConfigurationTableCopy configurationPb = new JobConfigurationTableCopy(); + configurationPb.setDestinationTable(destinationTable.toPb()); + if (sourceTables.size() == 1) { + configurationPb.setSourceTable(sourceTables.get(0).toPb()); + } else { + configurationPb.setSourceTables(Lists.transform(sourceTables, TableId.TO_PB_FUNCTION)); + } + if (createDisposition != null) { + configurationPb.setCreateDisposition(createDisposition.toString()); + } + if (writeDisposition != null) { + configurationPb.setWriteDisposition(writeDisposition.toString()); + } + if (destinationEncryptionConfiguration != null) { + configurationPb.setDestinationEncryptionConfiguration( + destinationEncryptionConfiguration.toPb()); + } + return new com.google.api.services.bigquery.model.JobConfiguration().setCopy(configurationPb); + } + + + /** + * Creates a builder for a BigQuery Copy Job configuration given destination and source table. + */ + public static Builder newBuilder(TableId destinationTable, TableId sourceTable) { + return newBuilder(destinationTable, ImmutableList.of(checkNotNull(sourceTable))); + } + + + /** + * Creates a builder for a BigQuery Copy Job configuration given destination and source tables. + */ + public static Builder newBuilder(TableId destinationTable, List sourceTables) { + return new Builder().setDestinationTable(destinationTable).setSourceTables(sourceTables); + } + + /** + * Returns a BigQuery Copy Job configuration for the given destination and source table. + */ + public static CopyJobConfiguration of(TableId destinationTable, TableId sourceTable) { + return newBuilder(destinationTable, sourceTable).build(); + } + + /** + * Returns a BigQuery Copy Job configuration for the given destination and source tables. + */ + public static CopyJobConfiguration of(TableId destinationTable, List sourceTables) { + return newBuilder(destinationTable, sourceTables).build(); + } + + @SuppressWarnings("unchecked") + static CopyJobConfiguration fromPb( + com.google.api.services.bigquery.model.JobConfiguration jobPb) { + return new Builder(jobPb).build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java new file mode 100644 index 000000000000..d800ff1c7a0f --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java @@ -0,0 +1,288 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.common.base.MoreObjects; + +import java.nio.charset.Charset; +import java.util.Objects; + +/** + * Google BigQuery options for CSV format. This class wraps some properties of CSV files used by + * BigQuery to parse external data. + */ +public final class CsvOptions extends FormatOptions { + + private static final long serialVersionUID = 2193570529308612708L; + + private final Boolean allowJaggedRows; + private final Boolean allowQuotedNewLines; + private final String encoding; + private final String fieldDelimiter; + private final String quote; + private final Long skipLeadingRows; + + public static final class Builder { + + private Boolean allowJaggedRows; + private Boolean allowQuotedNewLines; + private String encoding; + private String fieldDelimiter; + private String quote; + private Long skipLeadingRows; + + private Builder() {} + + private Builder(CsvOptions csvOptions) { + this.allowJaggedRows = csvOptions.allowJaggedRows; + this.allowQuotedNewLines = csvOptions.allowQuotedNewLines; + this.encoding = csvOptions.encoding; + this.fieldDelimiter = csvOptions.fieldDelimiter; + this.quote = csvOptions.quote; + this.skipLeadingRows = csvOptions.skipLeadingRows; + } + + + /** + * Set whether BigQuery should accept rows that are missing trailing optional columns. If + * {@code true}, BigQuery treats missing trailing columns as null values. If {@code false}, + * records with missing trailing columns are treated as bad records, and if there are too many + * bad records, an invalid error is returned in the job result. By default, rows with missing + * trailing columns are considered bad records. + */ + public Builder setAllowJaggedRows(boolean allowJaggedRows) { + this.allowJaggedRows = allowJaggedRows; + return this; + } + + + /** + * Sets whether BigQuery should allow quoted data sections that contain newline characters in a + * CSV file. By default quoted newline are not allowed. + */ + public Builder setAllowQuotedNewLines(boolean allowQuotedNewLines) { + this.allowQuotedNewLines = allowQuotedNewLines; + return this; + } + + + /** + * Sets the character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The + * default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split + * using the values set in {@link #setQuote(String)} and {@link #setFieldDelimiter(String)}. + */ + public Builder setEncoding(String encoding) { + this.encoding = encoding; + return this; + } + + + /** + * Sets the character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The + * default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split + * using the values set in {@link #setQuote(String)} and {@link #setFieldDelimiter(String)}. + */ + public Builder setEncoding(Charset encoding) { + this.encoding = encoding.name(); + return this; + } + + + /** + * Sets the separator for fields in a CSV file. BigQuery converts the string to ISO-8859-1 + * encoding, and then uses the first byte of the encoded string to split the data in its raw, + * binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. + * The default value is a comma (','). + */ + public Builder setFieldDelimiter(String fieldDelimiter) { + this.fieldDelimiter = fieldDelimiter; + return this; + } + + + /** + * Sets the value that is used to quote data sections in a CSV file. BigQuery converts the + * string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split + * the data in its raw, binary state. The default value is a double-quote ('"'). If your data + * does not contain quoted sections, set the property value to an empty string. If your data + * contains quoted newline characters, you must also set + * {@link #setAllowQuotedNewLines(boolean)} property to {@code true}. + */ + public Builder setQuote(String quote) { + this.quote = quote; + return this; + } + + + /** + * Sets the number of rows at the top of a CSV file that BigQuery will skip when reading the + * data. The default value is 0. This property is useful if you have header rows in the file + * that should be skipped. + */ + public Builder setSkipLeadingRows(long skipLeadingRows) { + this.skipLeadingRows = skipLeadingRows; + return this; + } + + /** + * Creates a {@code CsvOptions} object. + */ + public CsvOptions build() { + return new CsvOptions(this); + } + } + + private CsvOptions(Builder builder) { + super(FormatOptions.CSV); + this.allowJaggedRows = builder.allowJaggedRows; + this.allowQuotedNewLines = builder.allowQuotedNewLines; + this.encoding = builder.encoding; + this.fieldDelimiter = builder.fieldDelimiter; + this.quote = builder.quote; + this.skipLeadingRows = builder.skipLeadingRows; + } + + /** + * Returns whether BigQuery should accept rows that are missing trailing optional columns. If + * {@code true}, BigQuery treats missing trailing columns as null values. If {@code false}, + * records with missing trailing columns are treated as bad records, and if the number of bad + * records exceeds {@link ExternalTableDefinition#getMaxBadRecords()}, an invalid error is + * returned in the job result. + */ + public Boolean allowJaggedRows() { + return allowJaggedRows; + } + + /** + * Returns whether BigQuery should allow quoted data sections that contain newline characters in a + * CSV file. + */ + public Boolean allowQuotedNewLines() { + return allowQuotedNewLines; + } + + + /** + * Returns the character encoding of the data. The supported values are UTF-8 or ISO-8859-1. If + * not set, UTF-8 is used. BigQuery decodes the data after the raw, binary data has been split + * using the values set in {@link #getQuote()} and {@link #getFieldDelimiter()}. + */ + public String getEncoding() { + return encoding; + } + + + /** + * Returns the separator for fields in a CSV file. + */ + public String getFieldDelimiter() { + return fieldDelimiter; + } + + + /** + * Returns the value that is used to quote data sections in a CSV file. + */ + public String getQuote() { + return quote; + } + + + /** + * Returns the number of rows at the top of a CSV file that BigQuery will skip when reading the + * data. + */ + public Long getSkipLeadingRows() { + return skipLeadingRows; + } + + /** + * Returns a builder for the {@code CsvOptions} object. + */ + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("type", getType()) + .add("allowJaggedRows", allowJaggedRows) + .add("allowQuotedNewLines", allowQuotedNewLines) + .add("encoding", encoding) + .add("fieldDelimiter", fieldDelimiter) + .add("quote", quote) + .add("skipLeadingRows", skipLeadingRows) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(getType(), allowJaggedRows, allowQuotedNewLines, encoding, fieldDelimiter, + quote, skipLeadingRows); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof CsvOptions + && Objects.equals(toPb(), ((CsvOptions) obj).toPb()); + } + + com.google.api.services.bigquery.model.CsvOptions toPb() { + com.google.api.services.bigquery.model.CsvOptions csvOptions = + new com.google.api.services.bigquery.model.CsvOptions(); + csvOptions.setAllowJaggedRows(allowJaggedRows); + csvOptions.setAllowQuotedNewlines(allowQuotedNewLines); + csvOptions.setEncoding(encoding); + csvOptions.setFieldDelimiter(fieldDelimiter); + csvOptions.setQuote(quote); + csvOptions.setSkipLeadingRows(skipLeadingRows); + return csvOptions; + } + + + /** + * Returns a builder for a CsvOptions object. + */ + public static Builder newBuilder() { + return new Builder(); + } + + static CsvOptions fromPb(com.google.api.services.bigquery.model.CsvOptions csvOptions) { + Builder builder = newBuilder(); + if (csvOptions.getAllowJaggedRows() != null) { + builder.setAllowJaggedRows(csvOptions.getAllowJaggedRows()); + } + if (csvOptions.getAllowQuotedNewlines() != null) { + builder.setAllowQuotedNewLines(csvOptions.getAllowQuotedNewlines()); + } + if (csvOptions.getEncoding() != null) { + builder.setEncoding(csvOptions.getEncoding()); + } + if (csvOptions.getFieldDelimiter() != null) { + builder.setFieldDelimiter(csvOptions.getFieldDelimiter()); + } + if (csvOptions.getQuote() != null) { + builder.setQuote(csvOptions.getQuote()); + } + if (csvOptions.getSkipLeadingRows() != null) { + builder.setSkipLeadingRows(csvOptions.getSkipLeadingRows()); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java new file mode 100644 index 000000000000..12208a645faf --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java @@ -0,0 +1,339 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.gax.paging.Page; +import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; +import com.google.cloud.bigquery.BigQuery.DatasetOption; +import com.google.cloud.bigquery.BigQuery.TableListOption; +import com.google.cloud.bigquery.BigQuery.TableOption; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * A Google BigQuery Dataset. + * + *

Objects of this class are immutable. Operations that modify the dataset like {@link #update} + * return a new object. To get a {@code Dataset} object with the most recent information use + * {@link #reload}. {@code Dataset} adds a layer of service-related functionality over + * {@link DatasetInfo}. + *

+ */ +public class Dataset extends DatasetInfo { + + private static final long serialVersionUID = -4272921483363065593L; + + private final BigQueryOptions options; + private transient BigQuery bigquery; + + /** + * A builder for {@code Dataset} objects. + */ + public static final class Builder extends DatasetInfo.Builder { + + private final BigQuery bigquery; + private final DatasetInfo.BuilderImpl infoBuilder; + + Builder(BigQuery bigquery, DatasetId datasetId) { + this.bigquery = bigquery; + this.infoBuilder = new DatasetInfo.BuilderImpl(); + this.infoBuilder.setDatasetId(datasetId); + } + + Builder(Dataset dataset) { + this.bigquery = dataset.bigquery; + this.infoBuilder = new DatasetInfo.BuilderImpl(dataset); + } + + + @Override + public Builder setDatasetId(DatasetId datasetId) { + infoBuilder.setDatasetId(datasetId); + return this; + } + + + @Override + public Builder setAcl(List acl) { + infoBuilder.setAcl(acl); + return this; + } + + @Override + Builder setCreationTime(Long creationTime) { + infoBuilder.setCreationTime(creationTime); + return this; + } + + + @Override + public Builder setDefaultTableLifetime(Long defaultTableLifetime) { + infoBuilder.setDefaultTableLifetime(defaultTableLifetime); + return this; + } + + + @Override + public Builder setDescription(String description) { + infoBuilder.setDescription(description); + return this; + } + + @Override + Builder setEtag(String etag) { + infoBuilder.setEtag(etag); + return this; + } + + + @Override + public Builder setFriendlyName(String friendlyName) { + infoBuilder.setFriendlyName(friendlyName); + return this; + } + + @Override + Builder setGeneratedId(String generatedId) { + infoBuilder.setGeneratedId(generatedId); + return this; + } + + @Override + Builder setLastModified(Long lastModified) { + infoBuilder.setLastModified(lastModified); + return this; + } + + + @Override + public Builder setLocation(String location) { + infoBuilder.setLocation(location); + return this; + } + + @Override + Builder setSelfLink(String selfLink) { + infoBuilder.setSelfLink(selfLink); + return this; + } + + @Override + public Builder setLabels(Map labels) { + infoBuilder.setLabels(labels); + return this; + } + + @Override + public Dataset build() { + return new Dataset(bigquery, infoBuilder); + } + } + + Dataset(BigQuery bigquery, DatasetInfo.BuilderImpl infoBuilder) { + super(infoBuilder); + this.bigquery = checkNotNull(bigquery); + this.options = bigquery.getOptions(); + } + + /** + * Checks if this dataset exists. + * + *

Example of checking whether a dataset exists. + *

 {@code
+   * boolean exists = dataset.exists();
+   * if (exists) {
+   *   // the dataset exists
+   * } else {
+   *   // the dataset was not found
+   * }
+   * }
+ * + * @return {@code true} if this dataset exists, {@code false} otherwise + * @throws BigQueryException upon failure + */ + public boolean exists() { + return bigquery.getDataset(getDatasetId(), DatasetOption.fields()) != null; + } + + /** + * Fetches current dataset's latest information. Returns {@code null} if the dataset does not + * exist. + * + *

Example of reloading a dataset. + *

 {@code
+   * Dataset latestDataset = dataset.reload();
+   * if (latestDataset == null) {
+   *   // The dataset was not found
+   * }
+   * }
+ * + * @param options dataset options + * @return a {@code Dataset} object with latest information or {@code null} if not found + * @throws BigQueryException upon failure + */ + public Dataset reload(DatasetOption... options) { + return bigquery.getDataset(getDatasetId().getDataset(), options); + } + + /** + * Updates the dataset's information with this dataset's information. Dataset's user-defined id + * cannot be changed. A new {@code Dataset} object is returned. + * + *

Example of updating a dataset. + *

 {@code
+   * String friendlyName = "my_friendly_name";
+   * Builder builder = dataset.toBuilder();
+   * builder.setFriendlyName(friendlyName);
+   * Dataset updatedDataset = builder.build().update();
+   * }
+ * + * @param options dataset options + * @return a {@code Dataset} object with updated information + * @throws BigQueryException upon failure + */ + public Dataset update(DatasetOption... options) { + return bigquery.update(this, options); + } + + /** + * Deletes this dataset. + * + *

Example of deleting a dataset. + *

 {@code
+   * boolean deleted = dataset.delete();
+   * if (deleted) {
+   *   // The dataset was deleted
+   * } else {
+   *   // The dataset was not found
+   * }
+   * }
+ * + * @return {@code true} if dataset was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + public boolean delete(DatasetDeleteOption... options) { + return bigquery.delete(getDatasetId(), options); + } + + /** + * Returns the paginated list of tables in this dataset. + * + *

Example of listing tables in the dataset. + *

 {@code
+   * Page
tables = dataset.list(); + * for (Table table : tables.iterateAll()) { + * // do something with the table + * } + * } + * + * @param options options for listing tables + * @throws BigQueryException upon failure + */ + public Page
list(TableListOption... options) { + return bigquery.listTables(getDatasetId(), options); + } + + /** + * Returns the requested table in this dataset or {@code null} if not found. + * + *

Example of getting a table in the dataset. + *

 {@code
+   * String tableName = “my_table”;
+   * Table table = dataset.get(tableName);
+   * }
+ * + * @param tableId user-defined id of the requested table + * @param options table options + * @throws BigQueryException upon failure + */ + public Table get(String tableId, TableOption... options) { + return bigquery.getTable(TableId.of(getDatasetId().getDataset(), tableId), options); + } + + /** + * Creates a new table in this dataset. + * + *

Example of creating a table in the dataset with schema and time partitioning. + *

 {@code
+   * String tableName = “my_table”;
+   * String fieldName = “my_field”;
+   * Schema schema = Schema.of(Field.of(fieldName, LegacySQLTypeName.STRING));
+   * StandardTableDefinition definition = StandardTableDefinition.newBuilder()
+   *     .setSchema(schema)
+   *     .setTimePartitioning(TimePartitioning.of(TimePartitioning.Type.DAY))
+   *     .build();
+   * Table table = dataset.create(tableName, definition);
+   * }
+ * + * @param tableId the table's user-defined id + * @param definition the table's definition + * @param options options for table creation + * @return a {@code Table} object for the created table + * @throws BigQueryException upon failure + */ + public Table create(String tableId, TableDefinition definition, TableOption... options) { + TableInfo tableInfo = + TableInfo.of(TableId.of(getDatasetId().getDataset(), tableId), definition); + return bigquery.create(tableInfo, options); + } + + + /** + * Returns the dataset's {@code BigQuery} object used to issue requests. + */ + public BigQuery getBigQuery() { + return bigquery; + } + + @Override + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public final boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj == null || !obj.getClass().equals(Dataset.class)) { + return false; + } + Dataset other = (Dataset) obj; + return Objects.equals(toPb(), other.toPb()) + && Objects.equals(options, other.options); + } + + @Override + public final int hashCode() { + return Objects.hash(super.hashCode(), options); + } + + private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { + in.defaultReadObject(); + this.bigquery = options.getService(); + } + + static Dataset fromPb(BigQuery bigquery, + com.google.api.services.bigquery.model.Dataset datasetPb) { + return new Dataset(bigquery, new DatasetInfo.BuilderImpl(datasetPb)); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java new file mode 100644 index 000000000000..0b99a4048652 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java @@ -0,0 +1,101 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.DatasetReference; + +import java.io.Serializable; +import java.util.Objects; + +/** + * Google BigQuery Dataset identity. + */ +public final class DatasetId implements Serializable { + + private static final long serialVersionUID = -6186254820908152300L; + + private final String project; + private final String dataset; + + + /** + * Returns project's user-defined id. + */ + public String getProject() { + return project; + } + + + /** + * Returns dataset's user-defined id. + */ + public String getDataset() { + return dataset; + } + + private DatasetId(String project, String dataset) { + this.project = project; + this.dataset = dataset; + } + + /** + * Creates a dataset identity given project's and dataset's user-defined ids. + */ + public static DatasetId of(String project, String dataset) { + return new DatasetId(checkNotNull(project), checkNotNull(dataset)); + } + + /** + * Creates a dataset identity given only its user-defined id. + */ + public static DatasetId of(String dataset) { + return new DatasetId(null, checkNotNull(dataset)); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof DatasetId + && Objects.equals(toPb(), ((DatasetId) obj).toPb()); + } + + @Override + public int hashCode() { + return Objects.hash(project, dataset); + } + + @Override + public String toString() { + return toPb().toString(); + } + + DatasetId setProjectId(String projectId) { + return getProject() != null ? this : DatasetId.of(projectId, getDataset()); + } + + DatasetReference toPb() { + return new DatasetReference().setProjectId(project).setDatasetId(dataset); + } + + static DatasetId fromPb(DatasetReference datasetRef) { + return new DatasetId( + datasetRef.getProjectId(), + datasetRef.getDatasetId()); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java new file mode 100644 index 000000000000..702b8360b251 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java @@ -0,0 +1,570 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.MoreObjects.firstNonNull; +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.client.util.Data; +import com.google.api.services.bigquery.model.Dataset; +import com.google.api.services.bigquery.model.TableReference; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import java.io.Serializable; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * Google BigQuery Dataset information. A dataset is a grouping mechanism that holds zero or more + * tables. Datasets are the lowest level unit of access control; you cannot control access at the + * table level. + * + * @see + * Managing Jobs, Datasets, and Projects + */ +public class DatasetInfo implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public DatasetInfo apply(Dataset pb) { + return DatasetInfo.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public Dataset apply(DatasetInfo datasetInfo) { + return datasetInfo.toPb(); + } + }; + private static final long serialVersionUID = 8469473744160758489L; + + private final DatasetId datasetId; + private final List acl; + private final Long creationTime; + private final Long defaultTableLifetime; + private final String description; + private final String etag; + private final String friendlyName; + private final String generatedId; + private final Long lastModified; + private final String location; + private final String selfLink; + private final Labels labels; + + /** + * A builder for {@code DatasetInfo} objects. + */ + public abstract static class Builder { + + + /** + * Sets the dataset identity. + */ + public abstract Builder setDatasetId(DatasetId datasetId); + + + /** + * Sets the dataset's access control configuration. + * + * @see Access Control + */ + public abstract Builder setAcl(List acl); + + abstract Builder setCreationTime(Long creationTime); + + + /** + * Sets the default lifetime of all tables in the dataset, in milliseconds. The minimum value is + * 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the + * dataset will have an expirationTime property set to the creation time plus the value in this + * property, and changing the value will only affect new tables, not existing ones. When the + * expirationTime for a given table is reached, that table will be deleted automatically. If a + * table's expirationTime is modified or removed before the table expires, or if you provide an + * explicit expirationTime when creating a table, that value takes precedence over the default + * expiration time indicated by this property. This property is experimental and might be + * subject to change or removed. + */ + public abstract Builder setDefaultTableLifetime(Long defaultTableLifetime); + + + /** + * Sets a user-friendly description for the dataset. + */ + public abstract Builder setDescription(String description); + + abstract Builder setEtag(String etag); + + + /** + * Sets a user-friendly name for the dataset. + */ + public abstract Builder setFriendlyName(String friendlyName); + + abstract Builder setGeneratedId(String generatedId); + + abstract Builder setLastModified(Long lastModified); + + + /** + * Sets the geographic location where the dataset should reside. This property is experimental + * and might be subject to change or removed. + * + * @see Dataset + * Location + */ + public abstract Builder setLocation(String location); + + abstract Builder setSelfLink(String selfLink); + + public abstract Builder setLabels(Map labels); + + /** + * Creates a {@code DatasetInfo} object. + */ + public abstract DatasetInfo build(); + } + + static final class BuilderImpl extends Builder { + + private DatasetId datasetId; + private List acl; + private Long creationTime; + private Long defaultTableLifetime; + private String description; + private String etag; + private String friendlyName; + private String generatedId; + private Long lastModified; + private String location; + private String selfLink; + private Labels labels = Labels.ZERO; + + BuilderImpl() {} + + BuilderImpl(DatasetInfo datasetInfo) { + this.datasetId = datasetInfo.datasetId; + this.acl = datasetInfo.acl; + this.creationTime = datasetInfo.creationTime; + this.defaultTableLifetime = datasetInfo.defaultTableLifetime; + this.description = datasetInfo.description; + this.etag = datasetInfo.etag; + this.friendlyName = datasetInfo.friendlyName; + this.generatedId = datasetInfo.generatedId; + this.lastModified = datasetInfo.lastModified; + this.location = datasetInfo.location; + this.selfLink = datasetInfo.selfLink; + this.labels = datasetInfo.labels; + } + + BuilderImpl(com.google.api.services.bigquery.model.Dataset datasetPb) { + if (datasetPb.getDatasetReference() != null) { + this.datasetId = DatasetId.fromPb(datasetPb.getDatasetReference()); + } + if (datasetPb.getAccess() != null) { + this.acl = Lists.transform(datasetPb.getAccess(), new Function() { + @Override + public Acl apply(Dataset.Access accessPb) { + return Acl.fromPb(accessPb); + } + }); + } + this.creationTime = datasetPb.getCreationTime(); + this.defaultTableLifetime = datasetPb.getDefaultTableExpirationMs(); + this.description = datasetPb.getDescription(); + this.etag = datasetPb.getEtag(); + this.friendlyName = datasetPb.getFriendlyName(); + this.generatedId = datasetPb.getId(); + this.lastModified = datasetPb.getLastModifiedTime(); + this.location = datasetPb.getLocation(); + this.selfLink = datasetPb.getSelfLink(); + this.labels = Labels.fromPb(datasetPb.getLabels()); + } + + + @Override + public Builder setDatasetId(DatasetId datasetId) { + this.datasetId = checkNotNull(datasetId); + return this; + } + + + @Override + public Builder setAcl(List acl) { + this.acl = acl != null ? ImmutableList.copyOf(acl) : null; + return this; + } + + @Override + Builder setCreationTime(Long creationTime) { + this.creationTime = creationTime; + return this; + } + + + @Override + public Builder setDefaultTableLifetime(Long defaultTableLifetime) { + this.defaultTableLifetime = + firstNonNull(defaultTableLifetime, Data.nullOf(Long.class)); + return this; + } + + + @Override + public Builder setDescription(String description) { + this.description = firstNonNull(description, Data.nullOf(String.class)); + return this; + } + + @Override + Builder setEtag(String etag) { + this.etag = etag; + return this; + } + + + @Override + public Builder setFriendlyName(String friendlyName) { + this.friendlyName = firstNonNull(friendlyName, Data.nullOf(String.class)); + return this; + } + + @Override + Builder setGeneratedId(String generatedId) { + this.generatedId = generatedId; + return this; + } + + @Override + Builder setLastModified(Long lastModified) { + this.lastModified = lastModified; + return this; + } + + + @Override + public Builder setLocation(String location) { + this.location = firstNonNull(location, Data.nullOf(String.class)); + return this; + } + + @Override + Builder setSelfLink(String selfLink) { + this.selfLink = selfLink; + return this; + } + + /** + * Sets the labels applied to this dataset. + * + *

When used with {@link BigQuery#update(DatasetInfo, DatasetOption...)}, setting {@code + * labels} to {@code null} removes all labels; otherwise all keys that are mapped to {@code + * null} values are removed and other keys are updated to their respective values. + */ + @Override + public Builder setLabels(Map labels) { + this.labels = Labels.fromUser(labels); + return this; + } + + @Override + public DatasetInfo build() { + return new DatasetInfo(this); + } + } + + DatasetInfo(BuilderImpl builder) { + datasetId = checkNotNull(builder.datasetId); + acl = builder.acl; + creationTime = builder.creationTime; + defaultTableLifetime = builder.defaultTableLifetime; + description = builder.description; + etag = builder.etag; + friendlyName = builder.friendlyName; + generatedId = builder.generatedId; + lastModified = builder.lastModified; + location = builder.location; + selfLink = builder.selfLink; + labels = builder.labels; + } + + + /** + * Returns the dataset identity. + */ + public DatasetId getDatasetId() { + return datasetId; + } + + + /** + * Returns the dataset's access control configuration. + * + *

Update the ACLs for a dataset. + *

 {@code
+   * Dataset dataset = bigquery.getDataset(DatasetId.of("my_dataset"));
+   * List beforeAcls = dataset.getAcl();
+   * 
+   * // Make a copy of the ACLs so that they can be modified.
+   * ArrayList acls = new ArrayList<>(beforeAcls);
+   * acls.add(Acl.of(new Acl.User("sample.bigquery.dev@gmail.com"), Acl.Role.READER));
+   * Dataset.Builder builder = dataset.toBuilder();
+   * builder.setAcl(acls);
+   * 
+   * bigquery.update(builder.build());  // API request.
+   * }
+ * + * @see Access Control + */ + public List getAcl() { + return acl; + } + + + /** + * Returns the time when this dataset was created, in milliseconds since the epoch. + */ + public Long getCreationTime() { + return creationTime; + } + + + /** + * Returns the default lifetime of all tables in the dataset, in milliseconds. Once this property + * is set, all newly-created tables in the dataset will have an expirationTime property set to the + * creation time plus the value in this property, and changing the value will only affect new + * tables, not existing ones. When the expirationTime for a given table is reached, that table + * will be deleted automatically. If a table's expirationTime is modified or removed before the + * table expires, or if you provide an explicit expirationTime when creating a table, that value + * takes precedence over the default expiration time indicated by this property. + * + *

Update the default table expiration time for a dataset. + *

 {@code
+   * Dataset dataset = bigquery.getDataset(DatasetId.of("my_dataset"));
+   * Long beforeExpiration = dataset.getDefaultTableLifetime();
+   * 
+   * Long oneDayMilliseconds = 24 * 60 * 60 * 1000L;
+   * Dataset.Builder builder = dataset.toBuilder();
+   * builder.setDefaultTableLifetime(oneDayMilliseconds);
+   * bigquery.update(builder.build());  // API request.
+   * }
+ * + */ + public Long getDefaultTableLifetime() { + return defaultTableLifetime; + } + + + /** + * Returns a user-friendly description for the dataset. + */ + public String getDescription() { + return description; + } + + + /** + * Returns the hash of the dataset resource. + */ + public String getEtag() { + return etag; + } + + + /** + * Returns a user-friendly name for the dataset. + */ + public String getFriendlyName() { + return friendlyName; + } + + + /** + * Returns the service-generated id for the dataset. + */ + public String getGeneratedId() { + return generatedId; + } + + + /** + * Returns the time when this dataset or any of its tables was last modified, in milliseconds + * since the epoch. + */ + public Long getLastModified() { + return lastModified; + } + + + /** + * Returns the geographic location where the dataset should reside. + * + * @see + * Dataset Location + */ + public String getLocation() { + return location; + } + + + /** + * Returns an URL that can be used to access the resource again. The returned URL can be used for + * get or update requests. + */ + public String getSelfLink() { + return selfLink; + } + + /** + * Return a map for labels applied to the dataset. + * + * @see Labeling Datasets + */ + public Map getLabels() { + return labels.userMap(); + } + + /** + * Returns a builder for the dataset object. + */ + public Builder toBuilder() { + return new BuilderImpl(this); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("datasetId", datasetId) + .add("creationTime", creationTime) + .add("defaultTableLifetime", defaultTableLifetime) + .add("description", description) + .add("etag", etag) + .add("friendlyName", friendlyName) + .add("generatedId", generatedId) + .add("lastModified", lastModified) + .add("location", location) + .add("selfLink", selfLink) + .add("acl", acl) + .add("labels", labels) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(datasetId); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(DatasetInfo.class) + && Objects.equals(toPb(), ((DatasetInfo) obj).toPb()); + } + + DatasetInfo setProjectId(String projectId) { + Builder builder = toBuilder(); + builder.setDatasetId(getDatasetId().setProjectId(projectId)); + if (getAcl() != null) { + List acls = Lists.newArrayListWithCapacity(getAcl().size()); + for (Acl acl : getAcl()) { + if (acl.getEntity().getType() == Acl.Entity.Type.VIEW) { + Dataset.Access accessPb = acl.toPb(); + TableReference viewReferencePb = accessPb.getView(); + if (viewReferencePb.getProjectId() == null) { + viewReferencePb.setProjectId(projectId); + } + acls.add(Acl.of(new Acl.View(TableId.fromPb(viewReferencePb)))); + } else { + acls.add(acl); + } + } + builder.setAcl(acls); + } + return builder.build(); + } + + Dataset toPb() { + Dataset datasetPb = new Dataset(); + datasetPb.setDatasetReference(datasetId.toPb()); + datasetPb.setCreationTime(creationTime); + datasetPb.setDefaultTableExpirationMs(defaultTableLifetime); + datasetPb.setDescription(description); + datasetPb.setEtag(etag); + datasetPb.setFriendlyName(friendlyName); + datasetPb.setId(generatedId); + datasetPb.setLastModifiedTime(lastModified); + datasetPb.setLocation(location); + datasetPb.setSelfLink(selfLink); + if (acl != null) { + datasetPb.setAccess(Lists.transform(acl, new Function() { + @Override + public Dataset.Access apply(Acl acl) { + return acl.toPb(); + } + })); + } + datasetPb.setLabels(labels.toPb()); + return datasetPb; + } + + + /** + * Returns a builder for a {@code DatasetInfo} object given it's identity. + */ + public static Builder newBuilder(DatasetId datasetId) { + return new BuilderImpl().setDatasetId(datasetId); + } + + + /** + * Returns a builder for a {@code DatasetInfo} object given it's user-defined id. + */ + public static Builder newBuilder(String datasetId) { + return newBuilder(DatasetId.of(datasetId)); + } + + + /** + * Returns a builder for the DatasetInfo object given it's user-defined project and dataset ids. + */ + public static Builder newBuilder(String projectId, String datasetId) { + return newBuilder(DatasetId.of(projectId, datasetId)); + } + + /** + * Returns a {@code DatasetInfo} object given it's identity. + */ + public static DatasetInfo of(DatasetId datasetId) { + return newBuilder(datasetId).build(); + } + + /** + * Returns a {@code DatasetInfo} object given it's user-defined id. + */ + public static DatasetInfo of(String datasetId) { + return newBuilder(datasetId).build(); + } + + static DatasetInfo fromPb(Dataset datasetPb) { + return new BuilderImpl(datasetPb).build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java new file mode 100644 index 000000000000..0f2e37cd1077 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java @@ -0,0 +1,105 @@ +/* + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.common.base.MoreObjects; +import java.util.List; +import java.util.Objects; + +/** + * Google BigQuery options for Cloud Datastore backup. + */ +public final class DatastoreBackupOptions extends FormatOptions { + + private final List projectionFields; + + private static final long serialVersionUID = -5302774763661451947L; + + public static final class Builder { + private List projectionFields; + + private Builder() {} + + private Builder(DatastoreBackupOptions options) { + projectionFields = options.projectionFields; + } + + /** + * Sets which entity properties to load into BigQuery from a Cloud Datastore backup. Property + * names are case sensitive and must be top-level properties. + * If no properties are specified, BigQuery loads all properties. If any named property isn't + * found in the Cloud Datastore backup, an invalid error is returned in the job result. + */ + public Builder setProjectionFields(List projectionFields) { + this.projectionFields = projectionFields; + return this; + } + + /** + * Creates a {@code DatastoreBackupOptions} object. + */ + public DatastoreBackupOptions build() { + return new DatastoreBackupOptions(this); + } + } + + private DatastoreBackupOptions(Builder builder) { + super(FormatOptions.DATASTORE_BACKUP); + this.projectionFields = builder.projectionFields; + } + + /** + * Returns the value of which entity properties to load into BigQuery from a Cloud Datastore + * backup. + */ + public List getProjectionFields() { + return projectionFields; + } + + /** + * Returns a builder for the {@code DatastoreBackupOptions} object. + */ + public Builder toBuilder() { + return new Builder(this); + } + + /** + * Returns a builder for a {@code DatastoreBackupOptions} object. + */ + public static Builder newBuilder() { + return new Builder(); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("projectionFields", projectionFields) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(getType(), projectionFields); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof DatastoreBackupOptions + && Objects.equals(projectionFields, ((DatastoreBackupOptions) obj).getProjectionFields()); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java new file mode 100644 index 000000000000..7b6e39113434 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java @@ -0,0 +1,101 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.common.base.MoreObjects; +import java.io.Serializable; +import java.util.Objects; + +public final class EncryptionConfiguration implements Serializable { + private static final long serialVersionUID = -100849671239964L; + + private final String kmsKeyName; + + public String getKmsKeyName() { + return this.kmsKeyName; + } + + public com.google.api.services.bigquery.model.EncryptionConfiguration toPb() { + com.google.api.services.bigquery.model.EncryptionConfiguration encryptionConfigurationPb + = new com.google.api.services.bigquery.model.EncryptionConfiguration(); + encryptionConfigurationPb.setKmsKeyName(kmsKeyName); + return encryptionConfigurationPb; + } + + public static final class Builder { + private String kmsKeyName; + + private Builder() {} + + private Builder(EncryptionConfiguration options) { + kmsKeyName = options.kmsKeyName; + } + + public Builder(com.google.api.services.bigquery.model.EncryptionConfiguration encryptionConfigurationPb) { + setKmsKeyName(encryptionConfigurationPb.getKmsKeyName()); + } + + public EncryptionConfiguration.Builder setKmsKeyName(String kmsKeyName) { + this.kmsKeyName = kmsKeyName; + return this; + } + + /** + * Creates a {@code EncryptionConfiguration} object. + */ + public EncryptionConfiguration build() { + return new EncryptionConfiguration(this); + } + } + + private EncryptionConfiguration(EncryptionConfiguration.Builder builder) { + this.kmsKeyName = builder.kmsKeyName; + } + + /** + * Returns a builder for the {@code EncryptionConfiguration} object. + */ + public EncryptionConfiguration.Builder toBuilder() { + return new EncryptionConfiguration.Builder(this); + } + + /** + * Returns a builder for a {@code EncryptionConfiguration} object. + */ + public static EncryptionConfiguration.Builder newBuilder() { + return new EncryptionConfiguration.Builder(); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("kmsKeyName", kmsKeyName) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(kmsKeyName); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof EncryptionConfiguration + && Objects.equals(kmsKeyName, ((EncryptionConfiguration) obj).getKmsKeyName()); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java new file mode 100644 index 000000000000..d63918b9bb45 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -0,0 +1,387 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.ExternalDataConfiguration; +import com.google.api.services.bigquery.model.Table; +import com.google.auto.value.AutoValue; +import com.google.common.base.Function; +import com.google.common.collect.ImmutableList; +import java.util.List; +import javax.annotation.Nullable; + +/** + * Google BigQuery external table definition. BigQuery's external tables are tables whose data + * reside outside of BigQuery but can be queried as normal BigQuery tables. External tables are + * experimental and might be subject to change or removed. + * + * @see Federated Data Sources + * + */ +@AutoValue +public abstract class ExternalTableDefinition extends TableDefinition { + + static final Function + FROM_EXTERNAL_DATA_FUNCTION = + new Function() { + @Override + public ExternalTableDefinition apply(ExternalDataConfiguration pb) { + return ExternalTableDefinition.fromExternalDataConfiguration(pb); + } + }; + static final Function + TO_EXTERNAL_DATA_FUNCTION = + new Function() { + @Override + public ExternalDataConfiguration apply(ExternalTableDefinition tableInfo) { + return tableInfo.toExternalDataConfigurationPb(); + } + }; + + private static final long serialVersionUID = -5951580238459622025L; + + @AutoValue.Builder + public abstract static class Builder + extends TableDefinition.Builder { + + /** + * Sets the fully-qualified URIs that point to your data in Google Cloud Storage (e.g. + * gs://bucket/path). Each URI can contain one '*' wildcard character that must come after the + * bucket's name. Size limits related to load jobs apply to external data sources, plus an + * additional limit of 10 GB maximum size across all URIs. + * + * @see Quota + */ + public Builder setSourceUris(List sourceUris) { + return setSourceUrisImmut(ImmutableList.copyOf(sourceUris)); + } + + abstract Builder setSourceUrisImmut(ImmutableList sourceUris); + + /** + * Sets the source format, and possibly some parsing options, of the external data. Supported + * formats are {@code CSV} and {@code NEWLINE_DELIMITED_JSON}. + * + * + * Source Format + */ + public Builder setFormatOptions(FormatOptions formatOptions) { + return setFormatOptionsInner(formatOptions); + } + + abstract Builder setFormatOptionsInner(FormatOptions formatOptions); + + /** + * Sets the maximum number of bad records that BigQuery can ignore when reading data. If the + * number of bad records exceeds this value, an invalid error is returned in the job result. The + * default value is 0, which requires that all records are valid. + */ + public abstract Builder setMaxBadRecords(Integer maxBadRecords); + + /** + * Sets whether BigQuery should allow extra values that are not represented in the table schema. + * If true, the extra values are ignored. If false, records with extra columns are treated as + * bad records, and if there are too many bad records, an invalid error is returned in the job + * result. The default value is false. The value set with {@link + * #setFormatOptions(FormatOptions)} property determines what BigQuery treats as an extra value. + * + * @see + * Ignore Unknown Values + */ + public abstract Builder setIgnoreUnknownValues(Boolean ignoreUnknownValues); + + /** + * Sets compression type of the data source. By default no compression is assumed. + * + * @see + * Compression + */ + public abstract Builder setCompression(String compression); + + /** + * [Experimental] Sets detection of schema and format options automatically. Any option + * specified explicitly will be honored. + */ + public abstract Builder setAutodetect(Boolean autodetect); + + public abstract Builder setType(Type type); + + /** Sets the table schema. */ + public abstract Builder setSchema(Schema schema); + + /** Creates an {@code ExternalTableDefinition} object. */ + @Override + public abstract ExternalTableDefinition build(); + } + + /** + * Returns the compression type of the data source. + * + * @see + * Compression + */ + @Nullable + public abstract String getCompression(); + + /** + * Returns whether BigQuery should allow extra values that are not represented in the table + * schema. If true, the extra values are ignored. If false, records with extra columns are treated + * as bad records, and if there are too many bad records, an invalid error is returned in the job + * result. The default value is false. The value of {@link #getFormatOptions()} determines what + * BigQuery treats as an extra value. + * + * @see + * Ignore Unknown Values + */ + @Nullable + public Boolean ignoreUnknownValues() { + return getIgnoreUnknownValues(); + }; + + @Nullable + public abstract Boolean getIgnoreUnknownValues(); + + /** + * Returns the maximum number of bad records that BigQuery can ignore when reading data. If the + * number of bad records exceeds this value, an invalid error is returned in the job result. + */ + @Nullable + public abstract Integer getMaxBadRecords(); + + /** + * Returns the fully-qualified URIs that point to your data in Google Cloud Storage. Each URI can + * contain one '*' wildcard character that must come after the bucket's name. Size limits related + * to load jobs apply to external data sources, plus an additional limit of 10 GB maximum size + * across all URIs. + * + * @see Quota + */ + @Nullable + public List getSourceUris() { + return getSourceUrisImmut(); + } + + @Nullable + public abstract ImmutableList getSourceUrisImmut(); + + /** + * Returns the source format, and possibly some parsing options, of the external data. Supported + * formats are {@code CSV} and {@code NEWLINE_DELIMITED_JSON}. + */ + @SuppressWarnings("unchecked") + @Nullable + public F getFormatOptions() { + return (F) getFormatOptionsInner(); + } + + @Nullable + abstract FormatOptions getFormatOptionsInner(); + + /** + * [Experimental] Returns whether automatic detection of schema and format options should be + * performed. + */ + @Nullable + public abstract Boolean getAutodetect(); + + /** Returns a builder for the {@code ExternalTableDefinition} object. */ + public abstract Builder toBuilder(); + + @Override + com.google.api.services.bigquery.model.Table toPb() { + Table tablePb = super.toPb(); + tablePb.setExternalDataConfiguration(toExternalDataConfigurationPb()); + return tablePb; + } + + com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataConfigurationPb() { + com.google.api.services.bigquery.model.ExternalDataConfiguration externalConfigurationPb = + new com.google.api.services.bigquery.model.ExternalDataConfiguration(); + if (getCompression() != null) { + externalConfigurationPb.setCompression(getCompression()); + } + if (ignoreUnknownValues() != null) { + externalConfigurationPb.setIgnoreUnknownValues(ignoreUnknownValues()); + } + if (getMaxBadRecords() != null) { + externalConfigurationPb.setMaxBadRecords(getMaxBadRecords()); + } + if (getSchema() != null) { + externalConfigurationPb.setSchema(getSchema().toPb()); + } + if (getFormatOptions() != null) { + externalConfigurationPb.setSourceFormat(getFormatOptions().getType()); + } + if (getSourceUris() != null) { + externalConfigurationPb.setSourceUris(getSourceUris()); + } + if (getFormatOptions() != null && FormatOptions.CSV.equals(getFormatOptions().getType())) { + externalConfigurationPb.setCsvOptions(((CsvOptions) getFormatOptions()).toPb()); + } + if (getFormatOptions() != null && FormatOptions.GOOGLE_SHEETS.equals(getFormatOptions().getType())) { + externalConfigurationPb.setGoogleSheetsOptions(((GoogleSheetsOptions) getFormatOptions()).toPb()); + } + if (getAutodetect() != null) { + externalConfigurationPb.setAutodetect(getAutodetect()); + } + return externalConfigurationPb; + } + + static Builder newBuilder() { + return new AutoValue_ExternalTableDefinition.Builder().setType(Type.EXTERNAL); + } + + /** + * Creates a builder for an ExternalTableDefinition object. + * + * @param sourceUris the fully-qualified URIs that point to your data in Google Cloud Storage. + * Each URI can contain one '*' wildcard character that must come after the bucket's name. + * Size limits related to load jobs apply to external data sources, plus an additional limit + * of 10 GB maximum size across all URIs. + * @param schema the schema for the external data + * @param format the source format of the external data + * @return a builder for an ExternalTableDefinition object given source URIs, schema and format + * + * @see Quota + * @see + * Source Format + */ + public static Builder newBuilder(List sourceUris, Schema schema, FormatOptions format) { + return newBuilder().setSourceUris(sourceUris).setSchema(schema).setFormatOptions(format); + } + + + /** + * Creates a builder for an ExternalTableDefinition object. + * + * @param sourceUri a fully-qualified URI that points to your data in Google Cloud Storage. The + * URI can contain one '*' wildcard character that must come after the bucket's name. Size + * limits related to load jobs apply to external data sources. + * @param schema the schema for the external data + * @param format the source format of the external data + * @return a builder for an ExternalTableDefinition object given source URI, schema and format + * + * @see Quota + * @see + * Source Format + */ + public static Builder newBuilder(String sourceUri, Schema schema, FormatOptions format) { + return newBuilder(ImmutableList.of(sourceUri), schema, format); + } + + /** + * Creates an ExternalTableDefinition object. + * + * @param sourceUris the fully-qualified URIs that point to your data in Google Cloud Storage. + * Each URI can contain one '*' wildcard character that must come after the bucket's name. + * Size limits related to load jobs apply to external data sources, plus an additional limit + * of 10 GB maximum size across all URIs. + * @param schema the schema for the external data + * @param format the source format of the external data + * @return an ExternalTableDefinition object given source URIs, schema and format + * + * @see Quota + * @see + * Source Format + */ + public static ExternalTableDefinition of(List sourceUris, Schema schema, + FormatOptions format) { + return newBuilder(sourceUris, schema, format).build(); + } + + /** + * Creates an ExternalTableDefinition object. + * + * @param sourceUri a fully-qualified URI that points to your data in Google Cloud Storage. The + * URI can contain one '*' wildcard character that must come after the bucket's name. Size + * limits related to load jobs apply to external data sources. + * @param schema the schema for the external data + * @param format the source format of the external data + * @return an ExternalTableDefinition object given source URIs, schema and format + * + * @see Quota + * @see + * Source Format + */ + public static ExternalTableDefinition of(String sourceUri, Schema schema, FormatOptions format) { + return newBuilder(sourceUri, schema, format).build(); + } + + @SuppressWarnings("unchecked") + static ExternalTableDefinition fromPb(Table tablePb) { + Builder builder = newBuilder().table(tablePb); + + com.google.api.services.bigquery.model.ExternalDataConfiguration externalDataConfiguration = + tablePb.getExternalDataConfiguration(); + if (externalDataConfiguration != null) { + if (externalDataConfiguration.getSourceUris() != null) { + builder.setSourceUris(ImmutableList.copyOf(externalDataConfiguration.getSourceUris())); + } + if (externalDataConfiguration.getSourceFormat() != null) { + builder.setFormatOptions(FormatOptions.of(externalDataConfiguration.getSourceFormat())); + } + builder.setCompression(externalDataConfiguration.getCompression()); + builder.setIgnoreUnknownValues(externalDataConfiguration.getIgnoreUnknownValues()); + if (externalDataConfiguration.getCsvOptions() != null) { + builder.setFormatOptions(CsvOptions.fromPb(externalDataConfiguration.getCsvOptions())); + } + if (externalDataConfiguration.getGoogleSheetsOptions() != null) { + builder.setFormatOptions(GoogleSheetsOptions.fromPb(externalDataConfiguration.getGoogleSheetsOptions())); + } + builder.setMaxBadRecords(externalDataConfiguration.getMaxBadRecords()); + builder.setAutodetect(externalDataConfiguration.getAutodetect()); + } + return builder.build(); + } + + static ExternalTableDefinition fromExternalDataConfiguration( + ExternalDataConfiguration externalDataConfiguration) { + Builder builder = newBuilder(); + if (externalDataConfiguration.getSourceUris() != null) { + builder.setSourceUris(externalDataConfiguration.getSourceUris()); + } + if (externalDataConfiguration.getSchema() != null) { + builder.setSchema(Schema.fromPb(externalDataConfiguration.getSchema())); + } + if (externalDataConfiguration.getSourceFormat() != null) { + builder.setFormatOptions(FormatOptions.of(externalDataConfiguration.getSourceFormat())); + } + if (externalDataConfiguration.getCompression() != null) { + builder.setCompression(externalDataConfiguration.getCompression()); + } + if (externalDataConfiguration.getIgnoreUnknownValues() != null) { + builder.setIgnoreUnknownValues(externalDataConfiguration.getIgnoreUnknownValues()); + } + if (externalDataConfiguration.getCsvOptions() != null) { + builder.setFormatOptions(CsvOptions.fromPb(externalDataConfiguration.getCsvOptions())); + } + if (externalDataConfiguration.getGoogleSheetsOptions() != null) { + builder.setFormatOptions(GoogleSheetsOptions.fromPb(externalDataConfiguration.getGoogleSheetsOptions())); + } + if (externalDataConfiguration.getMaxBadRecords() != null) { + builder.setMaxBadRecords(externalDataConfiguration.getMaxBadRecords()); + } + if (externalDataConfiguration.getAutodetect() != null) { + builder.setAutodetect(externalDataConfiguration.getAutodetect()); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java new file mode 100644 index 000000000000..76d5688ce2d1 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java @@ -0,0 +1,309 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.JobConfigurationExtract; +import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.collect.ImmutableList; + +import java.util.List; +import java.util.Objects; + +/** + * Google BigQuery extract job configuration. An extract job exports a BigQuery table to Google + * Cloud Storage. The extract destination provided as URIs that point to objects in Google Cloud + * Storage. Extract job configurations have {@link JobConfiguration.Type#EXTRACT} type. + */ +public final class ExtractJobConfiguration extends JobConfiguration { + + private static final long serialVersionUID = 4147749733166593761L; + + private final TableId sourceTable; + private final List destinationUris; + private final Boolean printHeader; + private final String fieldDelimiter; + private final String format; + private final String compression; + + public static final class Builder + extends JobConfiguration.Builder { + + private TableId sourceTable; + private List destinationUris; + private Boolean printHeader; + private String fieldDelimiter; + private String format; + private String compression; + + private Builder() { + super(Type.EXTRACT); + } + + private Builder(ExtractJobConfiguration jobInfo) { + this(); + this.sourceTable = jobInfo.sourceTable; + this.destinationUris = jobInfo.destinationUris; + this.printHeader = jobInfo.printHeader; + this.fieldDelimiter = jobInfo.fieldDelimiter; + this.format = jobInfo.format; + this.compression = jobInfo.compression; + } + + private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { + this(); + JobConfigurationExtract extractConfigurationPb = configurationPb.getExtract(); + this.sourceTable = TableId.fromPb(extractConfigurationPb.getSourceTable()); + this.destinationUris = extractConfigurationPb.getDestinationUris(); + this.printHeader = extractConfigurationPb.getPrintHeader(); + this.fieldDelimiter = extractConfigurationPb.getFieldDelimiter(); + this.format = extractConfigurationPb.getDestinationFormat(); + this.compression = extractConfigurationPb.getCompression(); + } + + + /** + * Sets the table to export. + */ + public Builder setSourceTable(TableId sourceTable) { + this.sourceTable = sourceTable; + return this; + } + + + /** + * Sets the list of fully-qualified Google Cloud Storage URIs (e.g. gs://bucket/path) where the + * extracted table should be written. + */ + public Builder setDestinationUris(List destinationUris) { + this.destinationUris = destinationUris != null ? ImmutableList.copyOf(destinationUris) : null; + return this; + } + + + /** + * Sets whether to print out a header row in the results. By default an header is printed. + */ + public Builder setPrintHeader(Boolean printHeader) { + this.printHeader = printHeader; + return this; + } + + + /** + * Sets the delimiter to use between fields in the exported data. By default "," is used. + */ + public Builder setFieldDelimiter(String fieldDelimiter) { + this.fieldDelimiter = fieldDelimiter; + return this; + } + + + /** + * Sets the exported file format. If not set table is exported in CSV format. + * + * + * Destination Format + */ + public Builder setFormat(String format) { + this.format = format; + return this; + } + + + /** + * Sets the compression value to use for exported files. If not set exported files are not + * compressed. + * + * + * Compression + */ + public Builder setCompression(String compression) { + this.compression = compression; + return this; + } + + public ExtractJobConfiguration build() { + return new ExtractJobConfiguration(this); + } + } + + private ExtractJobConfiguration(Builder builder) { + super(builder); + this.sourceTable = checkNotNull(builder.sourceTable); + this.destinationUris = checkNotNull(builder.destinationUris); + this.printHeader = builder.printHeader; + this.fieldDelimiter = builder.fieldDelimiter; + this.format = builder.format; + this.compression = builder.compression; + } + + + /** + * Returns the table to export. + */ + public TableId getSourceTable() { + return sourceTable; + } + + + /** + * Returns the list of fully-qualified Google Cloud Storage URIs where the extracted table should + * be written. + * + * @see + * Exporting Data Into One or More Files + */ + public List getDestinationUris() { + return destinationUris; + } + + /** + * Returns whether an header row is printed with the result. + */ + public Boolean printHeader() { + return printHeader; + } + + + /** + * Returns the delimiter used between fields in the exported data. + */ + public String getFieldDelimiter() { + return fieldDelimiter; + } + + + /** + * Returns the exported files format. + */ + public String getFormat() { + return format; + } + + + /** + * Returns the compression value of exported files. + */ + public String getCompression() { + return compression; + } + + @Override + public Builder toBuilder() { + return new Builder(this); + } + + @Override + ToStringHelper toStringHelper() { + return super.toStringHelper() + .add("sourceTable", sourceTable) + .add("destinationUris", destinationUris) + .add("format", format) + .add("printHeader", printHeader) + .add("fieldDelimiter", fieldDelimiter) + .add("compression", compression); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof ExtractJobConfiguration + && baseEquals((ExtractJobConfiguration) obj); + } + + @Override + public int hashCode() { + return Objects.hash(baseHashCode(), sourceTable, destinationUris, printHeader, fieldDelimiter, + format, compression); + } + + @Override + ExtractJobConfiguration setProjectId(String projectId) { + return toBuilder().setSourceTable(getSourceTable().setProjectId(projectId)).build(); + } + + @Override + com.google.api.services.bigquery.model.JobConfiguration toPb() { + JobConfigurationExtract extractConfigurationPb = new JobConfigurationExtract(); + extractConfigurationPb.setDestinationUris(destinationUris); + extractConfigurationPb.setSourceTable(sourceTable.toPb()); + extractConfigurationPb.setPrintHeader(printHeader); + extractConfigurationPb.setFieldDelimiter(fieldDelimiter); + extractConfigurationPb.setDestinationFormat(format); + extractConfigurationPb.setCompression(compression); + return new com.google.api.services.bigquery.model.JobConfiguration() + .setExtract(extractConfigurationPb); + } + + + /** + * Creates a builder for a BigQuery Extract Job configuration given source table and destination + * URI. + */ + public static Builder newBuilder(TableId sourceTable, String destinationUri) { + return newBuilder(sourceTable, ImmutableList.of(checkNotNull(destinationUri))); + } + + + /** + * Creates a builder for a BigQuery Extract Job configuration given source table and destination + * URIs. + */ + public static Builder newBuilder(TableId sourceTable, List destinationUris) { + return new Builder().setSourceTable(sourceTable).setDestinationUris(destinationUris); + } + + /** + * Returns a BigQuery Extract Job configuration for the given source table and destination URI. + */ + public static ExtractJobConfiguration of(TableId sourceTable, String destinationUri) { + return newBuilder(sourceTable, destinationUri).build(); + } + + /** + * Returns a BigQuery Extract Job configuration for the given source table and destination URIs. + */ + public static ExtractJobConfiguration of(TableId sourceTable, List destinationUris) { + return newBuilder(sourceTable, destinationUris).build(); + } + + /** + * Returns a BigQuery Extract Job configuration for the given source table, format and destination + * URI. + */ + public static ExtractJobConfiguration of(TableId sourceTable, String destinationUri, + String format) { + return newBuilder(sourceTable, destinationUri).setFormat(format).build(); + } + + /** + * Returns a BigQuery Extract Job configuration for the given source table, format and destination + * URIs. + */ + public static ExtractJobConfiguration of(TableId sourceTable, List destinationUris, + String format) { + return newBuilder(sourceTable, destinationUris).setFormat(format).build(); + } + + @SuppressWarnings("unchecked") + static ExtractJobConfiguration fromPb( + com.google.api.services.bigquery.model.JobConfiguration confPb) { + return new Builder(confPb).build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java new file mode 100644 index 000000000000..3fbad523e859 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -0,0 +1,310 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.MoreObjects.firstNonNull; +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.client.util.Data; +import com.google.api.services.bigquery.model.TableFieldSchema; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; +import com.google.common.collect.Lists; + +import java.io.Serializable; +import java.util.List; +import java.util.Objects; + +/** + * Google BigQuery Table schema field. A table field has a name, a type, a mode and possibly a + * description. + */ +public final class Field implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public Field apply(TableFieldSchema pb) { + return Field.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public TableFieldSchema apply(Field field) { + return field.toPb(); + } + }; + + private static final long serialVersionUID = 8827990270251118556L; + + private final String name; + private final LegacySQLTypeName type; + private final FieldList subFields; + private final String mode; + private final String description; + + /** + * Mode for a BigQuery Table field. {@link Mode#NULLABLE} fields can be set to {@code null}, + * {@link Mode#REQUIRED} fields must be provided. {@link Mode#REPEATED} fields can contain more + * than one value. + */ + public enum Mode { + NULLABLE, REQUIRED, REPEATED + } + + public static final class Builder { + + private String name; + private LegacySQLTypeName type; + private FieldList subFields; + private String mode; + private String description; + + private Builder() {} + + private Builder(Field field) { + this.name = field.name; + this.type = field.type; + this.subFields = field.subFields; + this.mode = field.mode; + this.description = field.description; + } + + + /** + * Sets the field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or + * underscores (_), and must start with a letter or underscore. The maximum length is 128 + * characters. + */ + public Builder setName(String name) { + this.name = checkNotNull(name); + return this; + } + + + /** + * Sets the type of the field. + * + * @param type BigQuery data type + * @param subFields nested schema fields in case if {@code type} is + * {@link LegacySQLTypeName#RECORD}, empty otherwise + * @throws IllegalArgumentException + * if {@code type == LegacySQLTypeName.RECORD && subFields.length == 0} + * or if {@code type != LegacySQLTypeName.RECORD && subFields.length != 0} + * @see + * Data Types + */ + public Builder setType(LegacySQLTypeName type, Field... subFields) { + return setType(type, subFields.length > 0 ? FieldList.of(subFields) : null); + } + + /** + * Sets the type of the field. + * + * @param type BigQuery data type + * @param subFields nested schema fields, in case if {@code type} is + * {@link LegacySQLTypeName#RECORD}, {@code null} otherwise. + * @throws IllegalArgumentException + * if {@code type == LegacySQLTypeName.RECORD && (subFields == null || subFields.isEmpty())} + * or if {@code type != LegacySQLTypeName.RECORD && subFields != null} + * @see + * Data Types + */ + + public Builder setType(LegacySQLTypeName type, FieldList subFields) { + if (type == LegacySQLTypeName.RECORD) { + if (subFields == null || subFields.isEmpty()) { + throw new IllegalArgumentException( + "The " + type + " field must have at least one sub-field"); + } + } else { + if (subFields != null) { + throw new IllegalArgumentException( + "Only " + LegacySQLTypeName.RECORD + " fields can have sub-fields"); + } + } + this.type = type; + this.subFields = subFields; + return this; + } + + /** + * Sets the mode of the field. When not specified {@link Mode#NULLABLE} is used. + */ + public Builder setMode(Mode mode) { + this.mode = mode != null ? mode.name() : Data.nullOf(String.class); + return this; + } + + + /** + * Sets the field description. The maximum length is 16K characters. + */ + public Builder setDescription(String description) { + this.description = firstNonNull(description, Data.nullOf(String.class)); + return this; + } + + /** + * Creates a {@code Field} object. + */ + public Field build() { + return new Field(this); + } + } + + private Field(Builder builder) { + this.name = checkNotNull(builder.name); + this.type = checkNotNull(builder.type); + this.subFields = builder.subFields; + this.mode = builder.mode; + this.description = builder.description; + } + + /** + * Returns the field name. + */ + public String getName() { + return name; + } + + + /** + * Returns the field type. + * + * @see + * Data Types + */ + public LegacySQLTypeName getType() { + return type; + } + + + /** + * Returns the field mode. By default {@link Mode#NULLABLE} is used. + */ + public Mode getMode() { + return mode != null ? Mode.valueOf(mode) : null; + } + + + /** + * Returns the field description. + */ + public String getDescription() { + return Data.isNull(description) ? null : description; + } + + + /** + * Returns the list of sub-fields if {@link #getType()} is a {@link LegacySQLTypeName#RECORD}. + * Returns {@code null} otherwise. + */ + public FieldList getSubFields() { + return subFields; + } + + /** + * Returns a builder for the {@code Field} object. + */ + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("name", name) + .add("type", type) + .add("mode", mode) + .add("description", description) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(name, type, mode, description); + } + + @Override + public boolean equals(Object obj) { + return obj instanceof Field && Objects.equals(toPb(), ((Field) obj).toPb()); + } + + + /** + * Returns a Field object with given name and type. + */ + public static Field of(String name, LegacySQLTypeName type, Field... subFields) { + return newBuilder(name, type, subFields).build(); + } + + /** + * Returns a Field object with given name and type. + */ + public static Field of(String name, LegacySQLTypeName type, FieldList subFields) { + return newBuilder(name, type, subFields).build(); + } + + /** + * Returns a builder for a Field object with given name and type. + */ + public static Builder newBuilder(String name, LegacySQLTypeName type, Field... subFields) { + return new Builder().setName(name).setType(type, subFields); + } + + /** + * Returns a builder for a Field object with given name and type. + */ + public static Builder newBuilder(String name, LegacySQLTypeName type, FieldList subFields) { + return new Builder().setName(name).setType(type, subFields); + } + + TableFieldSchema toPb() { + TableFieldSchema fieldSchemaPb = new TableFieldSchema(); + fieldSchemaPb.setName(name); + fieldSchemaPb.setType(type.name()); + if (mode != null) { + fieldSchemaPb.setMode(mode); + } + if (description != null) { + fieldSchemaPb.setDescription(description); + } + if (getSubFields() != null) { + List fieldsPb = Lists.transform(getSubFields(), TO_PB_FUNCTION); + fieldSchemaPb.setFields(fieldsPb); + } + return fieldSchemaPb; + } + + static Field fromPb(TableFieldSchema fieldSchemaPb) { + Builder fieldBuilder = new Builder(); + fieldBuilder.setName(fieldSchemaPb.getName()); + if (fieldSchemaPb.getMode() != null) { + fieldBuilder.setMode(Mode.valueOf(fieldSchemaPb.getMode())); + } + if (fieldSchemaPb.getDescription() != null) { + fieldBuilder.setDescription(fieldSchemaPb.getDescription()); + } + FieldList subFields = fieldSchemaPb.getFields() != null + ? FieldList.of(Lists.transform(fieldSchemaPb.getFields(), FROM_PB_FUNCTION)) + : null; + fieldBuilder.setType(LegacySQLTypeName.valueOf(fieldSchemaPb.getType()), subFields); + return fieldBuilder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java new file mode 100644 index 000000000000..19793ab74b69 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java @@ -0,0 +1,118 @@ +/* + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.TableFieldSchema; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Lists; +import java.io.Serializable; +import java.util.AbstractList; +import java.util.List; +import java.util.Map; + +/** + * Google BigQuery Table schema fields (columns). Each field has a unique name and index. Fields + * with duplicate names are not allowed in BigQuery schema. + */ +public final class FieldList extends AbstractList implements Serializable { + + private static final long serialVersionUID = 8736258375638733316L; + + private final List fields; + private final Map nameIndex; + + private FieldList(Iterable fields) { + this.fields = ImmutableList.copyOf(fields); + ImmutableMap.Builder nameIndexBuilder = ImmutableMap.builder(); + int index = 0; + for (Field field : fields) { + nameIndexBuilder.put(field.getName(), index); + index++; + } + + this.nameIndex = nameIndexBuilder.build(); + } + + /** + * Get schema field by index. + * + * @param index field (column) index + */ + @Override + public Field get(int index) { + return fields.get(index); + } + + /** + * Get schema field by name. + * + * @param name field (column) name + */ + public Field get(String name) { + return get(getIndex(name)); + } + + /** + * Get schema field's index by name. + * + * @param name field (column) name + */ + public int getIndex(String name) { + Integer index = nameIndex.get(name); + if (index == null) { + throw new IllegalArgumentException("Field with name '" + name + "' was not found"); + } + return index; + } + + /** + * Total number of fields (columns) in the schema. + */ + @Override + public int size() { + return fields.size(); + } + + /** + * Returns a new {@code FieldList} object, which contains a collection of {@code Field} objects in + * preserved order and represent schema columns. + * + * @param fields the schema fields + */ + public static FieldList of(Field... fields) { + return new FieldList(ImmutableList.copyOf(fields)); + } + + /** + * Returns a new {@code FieldList} object, which contains a collection of {@code Field} objects in + * preserved order and represent schema columns. + * + * @param fields the schema fields + */ + public static FieldList of(Iterable fields) { + return new FieldList(fields); + } + + List toPb() { + return Lists.transform(fields, Field.TO_PB_FUNCTION); + } + + static FieldList fromPb(List fields) { + return FieldList.of(Lists.transform(fields, Field.FROM_PB_FUNCTION)); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java new file mode 100644 index 000000000000..42d1993900a5 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java @@ -0,0 +1,304 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Preconditions.checkState; + +import com.google.api.client.util.Data; +import com.google.api.core.BetaApi; +import com.google.common.base.MoreObjects; +import com.google.common.io.BaseEncoding; +import java.io.Serializable; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * Google BigQuery Table Field Value class. Objects of this class represent values of a BigQuery + * Table Field. A list of values forms a table row. Tables rows can be gotten as the result of a + * query or when listing table data. + */ +public class FieldValue implements Serializable { + private static final int MICROSECONDS = 1000000; + private static final long serialVersionUID = 469098630191710061L; + + private final Attribute attribute; + private final Object value; + + /** + * The field value's attribute, giving information on the field's content type. + */ + public enum Attribute { + /** + * A primitive field value. A {@code FieldValue} is primitive when the corresponding field has + * type {@link LegacySQLTypeName#BYTES}, {@link LegacySQLTypeName#BOOLEAN}, + * {@link LegacySQLTypeName#STRING}, {@link LegacySQLTypeName#FLOAT}, + * {@link LegacySQLTypeName#INTEGER}, {@link LegacySQLTypeName#TIMESTAMP} or the value is set to + * {@code null}. + */ + PRIMITIVE, + + /** + * A {@code FieldValue} for a field with {@link Field.Mode#REPEATED} mode. + */ + REPEATED, + + /** + * A {@code FieldValue} for a field of type {@link LegacySQLTypeName#RECORD}. + */ + RECORD + } + + private FieldValue(Attribute attribute, Object value) { + this.attribute = checkNotNull(attribute); + this.value = value; + } + + + /** + * Returns the attribute of this Field Value. + * + * @return {@link Attribute#PRIMITIVE} if the field is a primitive type + * ({@link LegacySQLTypeName#BYTES}, {@link LegacySQLTypeName#BOOLEAN}, {@link LegacySQLTypeName#STRING}, + * {@link LegacySQLTypeName#FLOAT}, {@link LegacySQLTypeName#INTEGER}, + * {@link LegacySQLTypeName#TIMESTAMP}) or is {@code null}. Returns {@link Attribute#REPEATED} if + * the corresponding field has ({@link Field.Mode#REPEATED}) mode. Returns + * {@link Attribute#RECORD} if the corresponding field is a + * {@link LegacySQLTypeName#RECORD} type. + */ + public Attribute getAttribute() { + return attribute; + } + + /** + * Returns {@code true} if this field's value is {@code null}, {@code false} otherwise. + */ + public boolean isNull() { + return value == null; + } + + + /** + * Returns this field's value as an {@link Object}. If {@link #isNull()} is {@code true} this + * method returns {@code null}. + */ + public Object getValue() { + return value; + } + + + /** + * Returns this field's value as a {@link String}. This method should only be used if the + * corresponding field has primitive type ({@link LegacySQLTypeName#BYTES}, + * {@link LegacySQLTypeName#BOOLEAN}, {@link LegacySQLTypeName#STRING}, + * {@link LegacySQLTypeName#FLOAT}, {@link LegacySQLTypeName#INTEGER}, + * {@link LegacySQLTypeName#TIMESTAMP}). + * + * @throws ClassCastException if the field is not a primitive type + * @throws NullPointerException if {@link #isNull()} returns {@code true} + */ + @SuppressWarnings("unchecked") + public String getStringValue() { + checkNotNull(value); + return (String) value; + } + + + /** + * Returns this field's value as a byte array. This method should only be used if the + * corresponding field has primitive type ({@link LegacySQLTypeName#BYTES}. + * + * @throws ClassCastException if the field is not a primitive type + * @throws NullPointerException if {@link #isNull()} returns {@code true} + * @throws IllegalStateException if the field value is not encoded in base64 + */ + public byte[] getBytesValue() { + try { + return BaseEncoding.base64().decode(getStringValue()); + } catch (IllegalArgumentException ex) { + throw new IllegalStateException(ex); + } + } + + + /** + * Returns this field's value as a {@code long}. This method should only be used if the + * corresponding field has {@link LegacySQLTypeName#INTEGER} type. + * + * @throws ClassCastException if the field is not a primitive type + * @throws NumberFormatException if the field's value could not be converted to {@link Integer} + * @throws NullPointerException if {@link #isNull()} returns {@code true} + */ + @SuppressWarnings("unchecked") + public long getLongValue() { + return Long.parseLong(getStringValue()); + } + + + /** + * Returns this field's value as a {@link Double}. This method should only be used if the + * corresponding field has {@link LegacySQLTypeName#FLOAT} type. + * + * @throws ClassCastException if the field is not a primitive type + * @throws NumberFormatException if the field's value could not be converted to {@link Double} + * @throws NullPointerException if {@link #isNull()} returns {@code true} + */ + @SuppressWarnings("unchecked") + public double getDoubleValue() { + return Double.parseDouble(getStringValue()); + } + + + /** + * Returns this field's value as a {@link Boolean}. This method should only be used if the + * corresponding field has {@link LegacySQLTypeName#BOOLEAN} type. + * + * @throws ClassCastException if the field is not a primitive type + * @throws IllegalStateException if the field's value could not be converted to {@link Boolean} + * @throws NullPointerException if {@link #isNull()} returns {@code true} + */ + @SuppressWarnings("unchecked") + public boolean getBooleanValue() { + String stringValue = getStringValue(); + checkState(stringValue.equalsIgnoreCase("true") || stringValue.equalsIgnoreCase("false"), + "Field value is not of boolean type"); + return Boolean.parseBoolean(stringValue); + } + + + /** + * Returns this field's value as a {@code long}, representing a timestamp in microseconds since + * epoch (UNIX time). This method should only be used if the corresponding field has + * {@link LegacySQLTypeName#TIMESTAMP} type. + * + * @throws ClassCastException if the field is not a primitive type + * @throws NumberFormatException if the field's value could not be converted to {@link Long} + * @throws NullPointerException if {@link #isNull()} returns {@code true} + */ + @SuppressWarnings("unchecked") + public long getTimestampValue() { + // timestamps are encoded in the format 1408452095.22 where the integer part is seconds since + // epoch (e.g. 1408452095.22 == 2014-08-19 07:41:35.220 -05:00) + return new Double(Double.valueOf(getStringValue()) * MICROSECONDS).longValue(); + } + + + /** + * Returns this field's value as a list of {@link FieldValue}. This method should only be used if + * the corresponding field has {@link Field.Mode#REPEATED} mode (i.e. {@link #getAttribute()} is + * {@link Attribute#REPEATED}). + * + * @throws ClassCastException if the field has not {@link Field.Mode#REPEATED} mode + * @throws NullPointerException if {@link #isNull()} returns {@code true} + */ + @SuppressWarnings("unchecked") + public List getRepeatedValue() { + checkNotNull(value); + return (List) value; + } + + + /** + * Returns this field's value as a {@link FieldValueList} instance. This method should only be used if + * the corresponding field has {@link LegacySQLTypeName#RECORD} type (i.e. + * {@link #getAttribute()} is {@link Attribute#RECORD}). + * + * @throws ClassCastException if the field is not a {@link LegacySQLTypeName#RECORD} type + * @throws NullPointerException if {@link #isNull()} returns {@code true} + */ + public FieldValueList getRecordValue() { + checkNotNull(value); + return (FieldValueList) value; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("attribute", attribute) + .add("value", value) + .toString(); + } + + @Override + public final int hashCode() { + return Objects.hash(attribute, value); + } + + @Override + public final boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj == null || !obj.getClass().equals(FieldValue.class)) { + return false; + } + FieldValue other = (FieldValue) obj; + return attribute == other.attribute && Objects.equals(value, other.value); + } + + /** + * Creates an instance of {@code FieldValue}, useful for testing. + * + *

If the {@code attribute} is {@link Attribute#PRIMITIVE}, the {@code value} should be the + * string representation of the underlying value, eg {@code "123"} for number {@code 123}. + * + *

If the {@code attribute} is {@link Attribute#REPEATED} or {@link Attribute#RECORD}, the + * {@code value} should be {@code List} of {@link FieldValue}s or {@link FieldValueList}, + * respectively. + * + *

This method is unstable. See this discussion + * for more context. + */ + @BetaApi + public static FieldValue of(Attribute attribute, Object value) { + return new FieldValue(attribute, value); + } + + static FieldValue fromPb(Object cellPb) { + return fromPb(cellPb, null); + } + + @SuppressWarnings("unchecked") + static FieldValue fromPb(Object cellPb, Field recordSchema) { + if (Data.isNull(cellPb)) { + return FieldValue.of(Attribute.PRIMITIVE, null); + } + if (cellPb instanceof String) { + return FieldValue.of(Attribute.PRIMITIVE, cellPb); + } + if (cellPb instanceof List) { + return FieldValue.of(Attribute.REPEATED, FieldValueList.fromPb((List) cellPb, null)); + } + if (cellPb instanceof Map) { + Map cellMapPb = (Map) cellPb; + if (cellMapPb.containsKey("f")) { + FieldList subFieldsSchema = recordSchema != null ? recordSchema.getSubFields() : null; + return FieldValue.of( + Attribute.RECORD, + FieldValueList.fromPb((List) cellMapPb.get("f"), subFieldsSchema)); + } + // This should never be the case when we are processing a first level table field (i.e. a + // row's field, not a record sub-field) + if (cellMapPb.containsKey("v")) { + return FieldValue.fromPb(cellMapPb.get("v"), recordSchema); + } + } + throw new IllegalArgumentException("Unexpected table cell format"); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java new file mode 100644 index 000000000000..6af0b8a14118 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java @@ -0,0 +1,135 @@ +/* + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.core.BetaApi; +import com.google.common.collect.ImmutableList; +import java.io.Serializable; +import java.util.AbstractList; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +/** + * Google BigQuery Table Field Values class, which represents a row in returned query result + * (table row). Tables rows can be retrieved as a result of a query or when listing table data. + * + * Depending on how a corresponding query was executed, each row (an instance of {@code FieldValueList}) + * may or may not contain related schema. If schema is not provided, the individual cells of the row + * will still be accessible by index but not by name. + */ +public class FieldValueList extends AbstractList implements Serializable { + + private static final long serialVersionUID = 2103346761764976902L; + + private final FieldList schema; + private final List row; + + private FieldValueList(List row, FieldList schema) { + if (schema != null && row.size() != schema.size()) { + throw new IllegalArgumentException("Row size and fields schema sizes should match"); + } + this.row = ImmutableList.copyOf(row); + this.schema = schema; + } + + /** + * Gets field value by index. + * @param index field value index + */ + @Override + public FieldValue get(int index) { + return row.get(index); + } + + /** + * Gets field value by index. + * @param name field name (defined in schema) + * @throws IllegalArgumentException if schema is not provided or if {@code name} was not found + * in the schema + */ + public FieldValue get(String name) { + if (schema == null) { + throw new UnsupportedOperationException( + "Retrieving field value by name is not supported when there is no fields schema provided"); + } + return get(schema.getIndex(name)); + } + + /** + * Returns {@code true} if schema is provided, {@code false} otherwise. + */ + public boolean hasSchema() { + return schema != null; + } + + /** + * Returns the total number of field values in the row. + */ + @Override + public int size() { + return row.size(); + } + + /** + * Creates an instance of {@code FieldValueList}, useful for testing. + * + *

This method is unstable. See this discussion + * for more context. + */ + @BetaApi + public static FieldValueList of(List row, FieldList schema) { + return new FieldValueList(row, schema); + } + + /** + * Creates an instance of {@code FieldValueList}, useful for testing. + * + *

This method is unstable. See this discussion + * for more context. + */ + @BetaApi + public static FieldValueList of(List row, Field... schema) { + return of(row, schema.length > 0 ? FieldList.of(schema) : null); + } + + FieldValueList withSchema(FieldList schema) { + return new FieldValueList(this.row, schema); + } + + static FieldValueList fromPb(List rowPb, FieldList schema) { + List row = new ArrayList<>(rowPb.size()); + if (schema != null) { + if (schema.size() != rowPb.size()) { + throw new IllegalArgumentException("Row size and fields schema sizes should match"); + } + Iterator schemaIter = schema.iterator(); + Iterator rowPbIter = rowPb.iterator(); + while (rowPbIter.hasNext() && schemaIter.hasNext()) { + row.add(FieldValue.fromPb(rowPbIter.next(), schemaIter.next())); + } + } else { + for (Object cellPb : rowPb) { + row.add(FieldValue.fromPb(cellPb, null)); + } + } + + return FieldValueList.of(row, schema); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java new file mode 100644 index 000000000000..439039f0f071 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java @@ -0,0 +1,119 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.common.base.MoreObjects; + +import java.io.Serializable; +import java.util.Objects; + +/** + * Base class for Google BigQuery format options. These class define the format of external data + * used by BigQuery, for either federated tables or load jobs. + */ +public class FormatOptions implements Serializable { + + static final String CSV = "CSV"; + static final String JSON = "NEWLINE_DELIMITED_JSON"; + static final String DATASTORE_BACKUP = "DATASTORE_BACKUP"; + static final String AVRO = "AVRO"; + static final String GOOGLE_SHEETS = "GOOGLE_SHEETS"; + private static final long serialVersionUID = -443376052020423691L; + + private final String type; + + FormatOptions(String type) { + this.type = type; + } + + + /** + * Returns the external data format, as a string. + */ + public String getType() { + return type; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("format", type).toString(); + } + + @Override + public int hashCode() { + return Objects.hash(type); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(FormatOptions.class) + && Objects.equals(type, ((FormatOptions) obj).getType()); + } + + /** + * Default options for CSV format. + */ + public static CsvOptions csv() { + return CsvOptions.newBuilder().build(); + } + + /** + * Default options for NEWLINE_DELIMITED_JSON format. + */ + public static FormatOptions json() { + return new FormatOptions(JSON); + } + + /** + * Default options for DATASTORE_BACKUP format. + */ + public static FormatOptions datastoreBackup() { + return DatastoreBackupOptions.newBuilder().build(); + } + + /** + * Default options for AVRO format. + */ + public static FormatOptions avro() { + return new FormatOptions(AVRO); + } + + /** + * Default options for GOOGLE_SHEETS format. + */ + public static FormatOptions googleSheets() { + return GoogleSheetsOptions.newBuilder().build(); + } + + /** + * Default options for the provided format. + */ + public static FormatOptions of(String format) { + if (checkNotNull(format).equals(CSV)) { + return csv(); + } else if (format.equals(DATASTORE_BACKUP)) { + return datastoreBackup(); + } else if (format.equals(GOOGLE_SHEETS)) { + return googleSheets(); + } + return new FormatOptions(format); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java new file mode 100644 index 000000000000..b882f81bfbaf --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java @@ -0,0 +1,123 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.common.base.MoreObjects; + +import java.util.Objects; + +/** + * Google BigQuery options for the Google Sheets format. + */ +public final class GoogleSheetsOptions extends FormatOptions { + + private static final long serialVersionUID = 1837436979033106123L; + + private final Long skipLeadingRows; + + public static final class Builder { + + private Long skipLeadingRows; + + private Builder() {} + + private Builder(GoogleSheetsOptions options) { + this.skipLeadingRows = options.skipLeadingRows; + } + + /** + * Sets the number of rows at the top of a sheet that BigQuery will skip when reading the + * data. The default value is 0. This property is useful if you have header rows + * that should be skipped. + */ + public Builder setSkipLeadingRows(long skipLeadingRows) { + this.skipLeadingRows = skipLeadingRows; + return this; + } + + /** + * Creates a {@link GoogleSheetsOptions} object. + */ + public GoogleSheetsOptions build() { + return new GoogleSheetsOptions(this); + } + } + + private GoogleSheetsOptions(Builder builder) { + super(FormatOptions.GOOGLE_SHEETS); + this.skipLeadingRows = builder.skipLeadingRows; + } + + + /** + * Returns the number of rows at the top of a sheet that BigQuery will skip when reading the + * data. + */ + public Long getSkipLeadingRows() { + return skipLeadingRows; + } + + /** + * Returns a builder for the {@link GoogleSheetsOptions} object. + */ + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("type", getType()) + .add("skipLeadingRows", skipLeadingRows) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(getType(), skipLeadingRows); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof GoogleSheetsOptions + && Objects.equals(toPb(), ((GoogleSheetsOptions) obj).toPb()); + } + + com.google.api.services.bigquery.model.GoogleSheetsOptions toPb() { + com.google.api.services.bigquery.model.GoogleSheetsOptions options = + new com.google.api.services.bigquery.model.GoogleSheetsOptions(); + options.setSkipLeadingRows(skipLeadingRows); + return options; + } + + + /** + * Returns a builder for a {@link GoogleSheetsOptions} object. + */ + public static Builder newBuilder() { + return new Builder(); + } + + static GoogleSheetsOptions fromPb(com.google.api.services.bigquery.model.GoogleSheetsOptions options) { + Builder builder = newBuilder(); + if (options.getSkipLeadingRows() != null) { + builder.setSkipLeadingRows(options.getSkipLeadingRows()); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java new file mode 100644 index 000000000000..e1228b2a8375 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java @@ -0,0 +1,498 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Lists; +import java.io.Serializable; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * Google Cloud BigQuery insert all request. This class can be used to stream data into BigQuery one + * record at a time without needing to run a load job. This approach enables querying data without + * the delay of running a load job. There are several important trade-offs to consider before + * choosing an approach. + * + * @see Streaming Data into + * BigQuery + */ +public final class InsertAllRequest implements Serializable { + + private static final long serialVersionUID = 211200307773853078L; + + private final TableId table; + private final List rows; + private final Boolean skipInvalidRows; + private final Boolean ignoreUnknownValues; + private final String templateSuffix; + + /** + * A Google Big Query row to be inserted into a table. Each {@code RowToInsert} has an associated + * id used by BigQuery to detect duplicate insertion requests on a best-effort basis. Please + * notice that data for fields of type {@link LegacySQLTypeName#BYTES} must be provided as a base64 + * encoded string. + * + *

Example usage of creating a row to insert: + *

 {@code
+   * List repeatedFieldValue = Arrays.asList(1L, 2L);
+   * Map recordContent = new HashMap();
+   * recordContent.put("subfieldName1", "value");
+   * recordContent.put("subfieldName2", repeatedFieldValue);
+   * Map rowContent = new HashMap();
+   * rowContent.put("booleanFieldName", true);
+   * rowContent.put("bytesFieldName", "DQ4KDQ==");
+   * rowContent.put("recordFieldName", recordContent);
+   * RowToInsert row = new RowToInsert("rowId", rowContent);
+   * }
+ * + * @see + * Data Consistency + */ + public static class RowToInsert implements Serializable { + + private static final long serialVersionUID = 8563060538219179157L; + + private final String id; + + // Always immutable, but might not be ImmutableMap, since they don't support nulls. + private final Map content; + + RowToInsert(String id, Map content) { + this.id = id; + + if (content instanceof ImmutableMap) { + this.content = ImmutableMap.copyOf(content); + } else { + this.content = Collections.unmodifiableMap(new HashMap<>(content)); + } + } + + + /** + * Returns the id associated with the row. Returns {@code null} if not set. + */ + public String getId() { + return id; + } + + /** + * Returns the actual content of the row, as a map. + * + *

The returned map is always immutable. Its iteration order is unspecified. + */ + public Map getContent() { + return content; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("id", id) + .add("content", content) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(id, content); + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof RowToInsert)) { + return false; + } + RowToInsert other = (RowToInsert) obj; + return Objects.equals(id, other.id) + && Objects.equals(content, other.content); + } + + /** + * Creates a row to be inserted with associated id. Please notice that data for fields of type + * {@link LegacySQLTypeName#BYTES} must be provided as a base64 encoded string. + * + * @param id id of the row, used to identify duplicates + * @param content the actual content of the row + */ + public static RowToInsert of(String id, Map content) { + return new RowToInsert(checkNotNull(id), checkNotNull(content)); + } + + /** + * Creates a row to be inserted without associated id. Please notice that data for fields of + * type {@link LegacySQLTypeName#BYTES} must be provided as a base64 encoded string. + * + * @param content the actual content of the row + */ + public static RowToInsert of(Map content) { + return new RowToInsert(null, checkNotNull(content)); + } + } + + public static final class Builder { + + private TableId table; + private List rows; + private Boolean skipInvalidRows; + private Boolean ignoreUnknownValues; + private String templateSuffix; + + private Builder() {} + + + /** + * Sets the destination table for rows insert request. + */ + public Builder setTable(TableId table) { + this.table = checkNotNull(table); + return this; + } + + + /** + * Sets the rows to insert as a list of {@link RowToInsert} objects. + */ + public Builder setRows(Iterable rows) { + this.rows = Lists.newLinkedList(checkNotNull(rows)); + return this; + } + + /** + * Adds a row to be inserted. + */ + public Builder addRow(RowToInsert rowToInsert) { + checkNotNull(rowToInsert); + if (rows == null) { + rows = Lists.newArrayList(); + } + rows.add(rowToInsert); + return this; + } + + /** + * Adds a row to be inserted with associated id. Please notice that data for fields of type + * {@link LegacySQLTypeName#BYTES} must be provided as a base64 encoded string. + * + *

Example usage of adding a row with associated id: + *

 {@code
+     * InsertAllRequest.Builder builder = InsertAllRequest.builder(tableId);
+     * List repeatedFieldValue = Arrays.asList(1L, 2L);
+     * Map recordContent = new HashMap();
+     * recordContent.put("subfieldName1", "value");
+     * recordContent.put("subfieldName2", repeatedFieldValue);
+     * Map rowContent = new HashMap();
+     * rowContent.put("booleanFieldName", true);
+     * rowContent.put("bytesFieldName", "DQ4KDQ==");
+     * rowContent.put("recordFieldName", recordContent);
+     * builder.addRow("rowId", rowContent);
+     * }
+ */ + public Builder addRow(String id, Map content) { + addRow(new RowToInsert(id, content)); + return this; + } + + /** + * Adds a row to be inserted without an associated id. Please notice that data for fields of + * type {@link LegacySQLTypeName#BYTES} must be provided as a base64 encoded string. + * + *

Example usage of adding a row without an associated id: + *

 {@code
+     * InsertAllRequest.Builder builder = InsertAllRequest.builder(tableId);
+     * List repeatedFieldValue = Arrays.asList(1L, 2L);
+     * Map recordContent = new HashMap();
+     * recordContent.put("subfieldName1", "value");
+     * recordContent.put("subfieldName2", repeatedFieldValue);
+     * Map rowContent = new HashMap();
+     * rowContent.put("booleanFieldName", true);
+     * rowContent.put("bytesFieldName", "DQ4KDQ==");
+     * rowContent.put("recordFieldName", recordContent);
+     * builder.addRow(rowContent);
+     * }
+ */ + public Builder addRow(Map content) { + addRow(new RowToInsert(null, content)); + return this; + } + + + /** + * Sets whether to insert all valid rows of a request, even if invalid rows exist. If not set + * the entire insert request will fail if it contains an invalid row. + */ + public Builder setSkipInvalidRows(boolean skipInvalidRows) { + this.skipInvalidRows = skipInvalidRows; + return this; + } + + + /** + * Sets whether to accept rows that contain values that do not match the schema. The unknown + * values are ignored. If not set, rows with unknown values are considered to be invalid. + */ + public Builder setIgnoreUnknownValues(boolean ignoreUnknownValues) { + this.ignoreUnknownValues = ignoreUnknownValues; + return this; + } + + + /** + * If specified, the destination table is treated as a base template. Rows are inserted into an + * instance table named "{destination}{templateSuffix}". BigQuery will manage the creation of + * the instance table, using the schema of the base template table. Table creation might take + * some time. To obtain table's information after {@link BigQuery#insertAll(InsertAllRequest)} + * is called use: + *
 {@code
+     * String suffixTableId = ...;
+     * TableInfo suffixTable = bigquery.getTable(DATASET, suffixTableId);
+     * while (suffixTable == null) {
+     *   Thread.sleep(1000L);
+     *   suffixTable = bigquery.getTable(DATASET, suffixTableId);
+     * }}
+ * + * @see + * Template Tables + */ + public Builder setTemplateSuffix(String templateSuffix) { + this.templateSuffix = templateSuffix; + return this; + } + + /** + * Creates an {@code InsertAllRequest} object. + */ + public InsertAllRequest build() { + return new InsertAllRequest(this); + } + } + + private InsertAllRequest(Builder builder) { + this.table = checkNotNull(builder.table); + this.rows = ImmutableList.copyOf(checkNotNull(builder.rows)); + this.ignoreUnknownValues = builder.ignoreUnknownValues; + this.skipInvalidRows = builder.skipInvalidRows; + this.templateSuffix = builder.templateSuffix; + } + + + /** + * Returns the destination table for rows insert request. + */ + public TableId getTable() { + return table; + } + + + /** + * Returns the rows to be inserted. + */ + public List getRows() { + return rows; + } + + /** + * Returns whether to accept rows that contain values that do not match the schema. The unknown + * values are ignored. If not set, rows with unknown values are considered to be invalid. + */ + public Boolean ignoreUnknownValues() { + return ignoreUnknownValues; + } + + /** + * Returns whether to insert all valid rows of a request, even if invalid rows exist. If not set + * the entire insert request will fail if it contains an invalid row. + */ + public Boolean skipInvalidRows() { + return skipInvalidRows; + } + + + /** + * If specified, the destination table is treated as a base template. Rows are inserted into an + * instance table named "{destination}{templateSuffix}". BigQuery will manage the creation of the + * instance table, using the schema of the base template table. Table creation might take some + * time. To obtain table's information after {@link BigQuery#insertAll(InsertAllRequest)} is + * called use: + *
 {@code
+   * String suffixTableId = ...;
+   * TableInfo suffixTable = bigquery.getTable(DATASET, suffixTableId);
+   * while (suffixTable == null) {
+   *   Thread.sleep(1000L);
+   *   suffixTable = bigquery.getTable(DATASET, suffixTableId);
+   * }}
+ * + * @see + * Template Tables + */ + public String getTemplateSuffix() { + return templateSuffix; + } + + + /** + * Returns a builder for an {@code InsertAllRequest} object given the destination table. + */ + public static Builder newBuilder(TableId table) { + return new Builder().setTable(table); + } + + + /** + * Returns a builder for an {@code InsertAllRequest} object given the destination table and the + * rows to insert. + */ + public static Builder newBuilder(TableId table, Iterable rows) { + return newBuilder(table).setRows(rows); + } + + + /** + * Returns a builder for an {@code InsertAllRequest} object given the destination table and the + * rows to insert. + */ + public static Builder newBuilder(TableId table, RowToInsert... rows) { + return newBuilder(table, ImmutableList.copyOf(rows)); + } + + + /** + * Returns a builder for an {@code InsertAllRequest} object given the destination table. + */ + public static Builder newBuilder(String datasetId, String tableId) { + return new Builder().setTable(TableId.of(datasetId, tableId)); + } + + + /** + * Returns a builder for an {@code InsertAllRequest} object given the destination table and the + * rows to insert. + */ + public static Builder newBuilder(String datasetId, String tableId, Iterable rows) { + return newBuilder(TableId.of(datasetId, tableId), rows); + } + + + /** + * Returns a builder for an {@code InsertAllRequest} object given the destination table and the + * rows to insert. + */ + public static Builder newBuilder(String datasetId, String tableId, RowToInsert... rows) { + return newBuilder(TableId.of(datasetId, tableId), rows); + } + + + /** + * Returns a builder for an {@code InsertAllRequest} object given the destination table and the + * rows to insert. + */ + public static Builder newBuilder(TableInfo tableInfo, Iterable rows) { + return newBuilder(tableInfo.getTableId(), rows); + } + + + /** + * Returns a builder for an {@code InsertAllRequest} object given the destination table and the + * rows to insert. + */ + public static Builder newBuilder(TableInfo tableInfo, RowToInsert... rows) { + return newBuilder(tableInfo.getTableId(), rows); + } + + /** + * Returns a {@code InsertAllRequest} object given the destination table and the rows to insert. + */ + public static InsertAllRequest of(TableId tableId, Iterable rows) { + return newBuilder(tableId, rows).build(); + } + + /** + * Returns a {@code InsertAllRequest} object given the destination table and the rows to insert. + */ + public static InsertAllRequest of(TableId tableId, RowToInsert... rows) { + return newBuilder(tableId, rows).build(); + } + + /** + * Returns a {@code InsertAllRequest} object given the destination table and the rows to insert. + */ + public static InsertAllRequest of(String datasetId, String tableId, Iterable rows) { + return newBuilder(datasetId, tableId, rows).build(); + } + + /** + * Returns a {@code InsertAllRequest} object given the destination table and the rows to insert. + */ + public static InsertAllRequest of(String datasetId, String tableId, RowToInsert... rows) { + return newBuilder(datasetId, tableId, rows).build(); + } + + /** + * Returns a {@code InsertAllRequest} object given the destination table and the rows to insert. + */ + public static InsertAllRequest of(TableInfo tableInfo, Iterable rows) { + return newBuilder(tableInfo.getTableId(), rows).build(); + } + + /** + * Returns a {@code InsertAllRequest} object given the destination table and the rows to insert. + */ + public static InsertAllRequest of(TableInfo tableInfo, RowToInsert... rows) { + return newBuilder(tableInfo.getTableId(), rows).build(); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("table", table) + .add("rows", rows) + .add("ignoreUnknownValues", ignoreUnknownValues) + .add("skipInvalidRows", skipInvalidRows) + .add("templateSuffix", templateSuffix) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(table, rows, ignoreUnknownValues, skipInvalidRows, templateSuffix); + } + + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof InsertAllRequest)) { + return false; + } + InsertAllRequest other = (InsertAllRequest) obj; + return Objects.equals(table, other.table) + && Objects.equals(rows, other.rows) + && Objects.equals(ignoreUnknownValues, other.ignoreUnknownValues) + && Objects.equals(skipInvalidRows, other.skipInvalidRows) + && Objects.equals(templateSuffix, other.templateSuffix); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java new file mode 100644 index 000000000000..3312133842a4 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java @@ -0,0 +1,125 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.ErrorProto; +import com.google.api.services.bigquery.model.TableDataInsertAllResponse; +import com.google.api.services.bigquery.model.TableDataInsertAllResponse.InsertErrors; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * Google Cloud BigQuery insert all response. Objects of this class possibly contain errors for an + * {@link InsertAllRequest}. If a row failed to be inserted, the non-empty list of errors associated + * to that row's index can be obtained with {@link InsertAllResponse#getErrorsFor(long)}. + * {@link InsertAllResponse#getInsertErrors()} can be used to return all errors caused by a + * {@link InsertAllRequest} as a map. + */ +public class InsertAllResponse implements Serializable { + + private static final long serialVersionUID = -6934152676514098452L; + + private final Map> insertErrors; + + InsertAllResponse(Map> insertErrors) { + this.insertErrors = insertErrors != null ? ImmutableMap.copyOf(insertErrors) + : ImmutableMap.>of(); + } + + + /** + * Returns all insertion errors as a map whose keys are indexes of rows that failed to insert. + * Each failed row index is associated with a non-empty list of {@link BigQueryError}. + */ + public Map> getInsertErrors() { + return insertErrors; + } + + + /** + * Returns errors for the provided row index. If no error exists returns {@code null}. + */ + public List getErrorsFor(long index) { + return insertErrors.get(index); + } + + /** + * Returns {@code true} if no row insertion failed, {@code false} otherwise. If {@code false} + * {@link #getInsertErrors()} returns an empty map. + */ + public boolean hasErrors() { + return !insertErrors.isEmpty(); + } + + @Override + public final int hashCode() { + return Objects.hash(insertErrors); + } + + @Override + public final boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(InsertAllResponse.class) + && Objects.equals(insertErrors, ((InsertAllResponse) obj).insertErrors); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("insertErrors", insertErrors).toString(); + } + + TableDataInsertAllResponse toPb() { + TableDataInsertAllResponse responsePb = new TableDataInsertAllResponse(); + if (!insertErrors.isEmpty()) { + responsePb.setInsertErrors(ImmutableList.copyOf(Iterables.transform(insertErrors.entrySet(), + new Function>, InsertErrors>() { + @Override + public InsertErrors apply(Map.Entry> entry) { + return new InsertErrors() + .setIndex(entry.getKey()) + .setErrors(Lists.transform(entry.getValue(), BigQueryError.TO_PB_FUNCTION)); + } + }))); + } + return responsePb; + } + + static InsertAllResponse fromPb(TableDataInsertAllResponse responsePb) { + Map> insertErrors = null; + if (responsePb.getInsertErrors() != null) { + List errorsPb = responsePb.getInsertErrors(); + insertErrors = Maps.newHashMapWithExpectedSize(errorsPb.size()); + for (InsertErrors errorPb : errorsPb) { + insertErrors.put(errorPb.getIndex(), Lists.transform( + errorPb.getErrors() != null ? errorPb.getErrors() : ImmutableList.of(), + BigQueryError.FROM_PB_FUNCTION)); + } + } + return new InsertAllResponse(insertErrors); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java new file mode 100644 index 000000000000..9f85ffc73449 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -0,0 +1,465 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.gax.retrying.BasicResultRetryAlgorithm; +import com.google.api.gax.retrying.RetrySettings; +import com.google.api.gax.retrying.TimedAttemptSettings; +import com.google.cloud.RetryHelper; +import com.google.cloud.RetryOption; +import com.google.cloud.bigquery.BigQuery.JobOption; +import com.google.cloud.bigquery.BigQuery.QueryResultsOption; +import com.google.cloud.bigquery.BigQuery.TableDataListOption; +import com.google.cloud.bigquery.JobConfiguration.Type; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; +import org.threeten.bp.Duration; + +/** + * A Google BigQuery Job. + * + *

Objects of this class are immutable. To get a {@code Job} object with the most recent + * information use {@link #reload}. {@code Job} adds a layer of service-related functionality over + * {@link JobInfo}. + */ +public class Job extends JobInfo { + + private static final long serialVersionUID = -4324100991693024704L; + + private static final RetrySettings DEFAULT_JOB_WAIT_SETTINGS = + RetrySettings.newBuilder() + .setTotalTimeout(Duration.ofHours(12L)) + .setInitialRetryDelay(Duration.ofSeconds(1L)) + .setRetryDelayMultiplier(2.0) + .setJittered(true) + .setMaxRetryDelay(Duration.ofMinutes(1L)) + .build(); + + static final RetrySettings DEFAULT_QUERY_JOB_WAIT_SETTINGS = + RetrySettings.newBuilder() + .setTotalTimeout(Duration.ofHours(12L)) + .setInitialRetryDelay(Duration.ofSeconds(3L)) + .setRetryDelayMultiplier(1.0) + .setJittered(true) + .setMaxRetryDelay(Duration.ofSeconds(3L)) + .build(); + + static final QueryResultsOption[] DEFAULT_QUERY_WAIT_OPTIONS = { + QueryResultsOption.pageSize(0L), + }; + + private final BigQueryOptions options; + private transient BigQuery bigquery; + + /** A builder for {@code Job} objects. */ + public static final class Builder extends JobInfo.Builder { + + private final BigQuery bigquery; + private final JobInfo.BuilderImpl infoBuilder; + + Builder(BigQuery bigquery, JobConfiguration configuration) { + this.bigquery = bigquery; + this.infoBuilder = new JobInfo.BuilderImpl(); + this.infoBuilder.setConfiguration(configuration); + } + + Builder(Job job) { + this.bigquery = job.bigquery; + this.infoBuilder = new JobInfo.BuilderImpl(job); + } + + @Override + Builder setEtag(String etag) { + infoBuilder.setEtag(etag); + return this; + } + + @Override + Builder setGeneratedId(String generatedId) { + infoBuilder.setGeneratedId(generatedId); + return this; + } + + @Override + public Builder setJobId(JobId jobId) { + infoBuilder.setJobId(jobId); + return this; + } + + @Override + Builder setSelfLink(String selfLink) { + infoBuilder.setSelfLink(selfLink); + return this; + } + + @Override + Builder setStatus(JobStatus status) { + infoBuilder.setStatus(status); + return this; + } + + @Override + Builder setStatistics(JobStatistics statistics) { + infoBuilder.setStatistics(statistics); + return this; + } + + @Override + Builder setUserEmail(String userEmail) { + infoBuilder.setUserEmail(userEmail); + return this; + } + + @Override + public Builder setConfiguration(JobConfiguration configuration) { + infoBuilder.setConfiguration(configuration); + return this; + } + + @Override + public Job build() { + return new Job(bigquery, infoBuilder); + } + } + + Job(BigQuery bigquery, JobInfo.BuilderImpl infoBuilder) { + super(infoBuilder); + this.bigquery = checkNotNull(bigquery); + this.options = bigquery.getOptions(); + } + + /** + * Checks if this job exists. + * + *

Example of checking that a job exists. + *

 {@code
+   * if (!job.exists()) {
+   *   // job doesn't exist
+   * }
+   * }
+ * + * @return {@code true} if this job exists, {@code false} otherwise + * @throws BigQueryException upon failure + */ + public boolean exists() { + checkNotDryRun("exists"); + return bigquery.getJob(getJobId(), JobOption.fields()) != null; + } + + /** + * Checks if this job has completed its execution, either failing or succeeding. If the job does + * not exist this method returns {@code true}. + * + *

Example of waiting for a job until it reports that it is done. + *

 {@code
+   * while (!job.isDone()) {
+   *   Thread.sleep(1000L);
+   * }
+   * }
+ * + * @return {@code true} if this job is in {@link JobStatus.State#DONE} state or if it does not + * exist, {@code false} if the state is not {@link JobStatus.State#DONE} + * @throws BigQueryException upon failure + */ + public boolean isDone() { + checkNotDryRun("isDone"); + Job job = bigquery.getJob(getJobId(), JobOption.fields(BigQuery.JobField.STATUS)); + return job == null || job.getStatus().getState() == JobStatus.State.DONE; + } + /** + * Blocks until this job completes its execution, either failing or succeeding. This method + * returns current job's latest information. If the job no longer exists, this method returns + * {@code null}. By default, the job status is checked using jittered exponential backoff with 1 + * second as an initial delay, 2.0 as a backoff factor, 1 minute as maximum delay between polls, + * 12 hours as a total timeout and unlimited number of attempts. + * + *

Example usage of {@code waitFor()}. + *

 {@code
+   * Job completedJob = job.waitFor();
+   * if (completedJob == null) {
+   *   // job no longer exists
+   * } else if (completedJob.getStatus().getError() != null) {
+   *   // job failed, handle error
+   * } else {
+   *   // job completed successfully
+   * }
+   * }
+ * + *

Example usage of {@code waitFor()} with checking period and timeout. + *

 {@code
+   * Job completedJob =
+   *     job.waitFor(
+   *         RetryOption.initialRetryDelay(Duration.ofSeconds(1)),
+   *         RetryOption.totalTimeout(Duration.ofMinutes(1)));
+   * if (completedJob == null) {
+   *   // job no longer exists
+   * } else if (completedJob.getStatus().getError() != null) {
+   *   // job failed, handle error
+   * } else {
+   *   // job completed successfully
+   * }
+   * }
+ * + * @param waitOptions options to configure checking period and timeout + * @throws BigQueryException upon failure, check {@link BigQueryException#getCause()} for details + * @throws InterruptedException if the current thread gets interrupted while waiting for the job + * to complete + */ + public Job waitFor(RetryOption... waitOptions) throws InterruptedException { + checkNotDryRun("waitFor"); + Object completedJobResponse; + if (getConfiguration().getType() == Type.QUERY) { + completedJobResponse = + waitForQueryResults( + RetryOption.mergeToSettings(DEFAULT_JOB_WAIT_SETTINGS, waitOptions), + DEFAULT_QUERY_WAIT_OPTIONS); + } else { + completedJobResponse = + waitForJob(RetryOption.mergeToSettings(DEFAULT_QUERY_JOB_WAIT_SETTINGS, waitOptions)); + } + + return completedJobResponse == null ? null : reload(); + } + + /** + * Gets the query results of this job. This job must be of type {@code + * JobConfiguration.Type.QUERY}, otherwise this method will throw {@link + * UnsupportedOperationException}. + * + *

If the job hasn't finished, this method waits for the job to complete. However, the state of + * the current {@code Job} instance is not updated. To get the new state, call {@link + * #waitFor(RetryOption...)} or {@link #reload(JobOption...)}. + * + * @throws BigQueryException upon failure + */ + public TableResult getQueryResults(QueryResultsOption... options) + throws InterruptedException, JobException { + checkNotDryRun("getQueryResults"); + if (getConfiguration().getType() != Type.QUERY) { + throw new UnsupportedOperationException( + "Getting query results is supported only for " + Type.QUERY + " jobs"); + } + + List waitOptions = + new ArrayList<>(Arrays.asList(DEFAULT_QUERY_WAIT_OPTIONS)); + List listOptions = new ArrayList<>(); + for (QueryResultsOption option : options) { + switch (option.getRpcOption()) { + case MAX_RESULTS: + listOptions.add(TableDataListOption.pageSize((Long) option.getValue())); + break; + case PAGE_TOKEN: + listOptions.add(TableDataListOption.pageToken((String) option.getValue())); + break; + case START_INDEX: + listOptions.add(TableDataListOption.startIndex((Long) option.getValue())); + break; + case TIMEOUT: + waitOptions.add(QueryResultsOption.maxWaitTime((Long) option.getValue())); + break; + } + } + + QueryResponse response = + waitForQueryResults( + DEFAULT_JOB_WAIT_SETTINGS, waitOptions.toArray(new QueryResultsOption[0])); + if (response.getSchema() == null) { + throw new JobException(getJobId(), response.getErrors()); + } + + TableId table = ((QueryJobConfiguration) getConfiguration()).getDestinationTable(); + return bigquery.listTableData( + table, response.getSchema(), listOptions.toArray(new TableDataListOption[0])); + } + + private QueryResponse waitForQueryResults( + RetrySettings waitSettings, final QueryResultsOption... resultsOptions) + throws InterruptedException { + if (getConfiguration().getType() != Type.QUERY) { + throw new UnsupportedOperationException( + "Waiting for query results is supported only for " + Type.QUERY + " jobs"); + } + + try { + return RetryHelper.poll( + new Callable() { + @Override + public QueryResponse call() { + return bigquery.getQueryResults(getJobId(), resultsOptions); + } + }, + waitSettings, + new BasicResultRetryAlgorithm() { + @Override + public boolean shouldRetry(Throwable prevThrowable, QueryResponse prevResponse) { + return prevResponse != null && !prevResponse.getCompleted(); + } + }, + options.getClock()); + } catch (ExecutionException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + private Job waitForJob(RetrySettings waitSettings) throws InterruptedException { + try { + return RetryHelper.poll( + new Callable() { + @Override + public Job call() throws Exception { + return bigquery.getJob(getJobId(), JobOption.fields(BigQuery.JobField.STATUS)); + } + }, + waitSettings, + new BasicResultRetryAlgorithm() { + @Override + public TimedAttemptSettings createNextAttempt( + Throwable prevThrowable, Job prevResponse, TimedAttemptSettings prevSettings) { + return null; + } + + @Override + public boolean shouldRetry(Throwable prevThrowable, Job prevResponse) { + return prevResponse != null + && prevResponse.getStatus().getState() != JobStatus.State.DONE; + } + }, + options.getClock()); + } catch (ExecutionException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + /** + * Fetches current job's latest information. Returns {@code null} if the job does not exist. + * + *

Example of reloading all fields until job status is DONE. + *

 {@code
+   * while (job.getStatus().getState() != JobStatus.State.DONE) {
+   *   Thread.sleep(1000L);
+   *   job = job.reload();
+   * }
+   * }
+ * + *

Example of reloading status field until job status is DONE. + *

 {@code
+   * while (job.getStatus().getState() != JobStatus.State.DONE) {
+   *   Thread.sleep(1000L);
+   *   job = job.reload(BigQuery.JobOption.fields(BigQuery.JobField.STATUS));
+   * }
+   * }
+ * + * @param options job options + * @return a {@code Job} object with latest information or {@code null} if not found + * @throws BigQueryException upon failure + */ + public Job reload(JobOption... options) { + checkNotDryRun("reload"); + return bigquery.getJob(getJobId(), options); + } + + /** + * Sends a job cancel request. + * + *

Example of cancelling a job. + *

 {@code
+   * if (job.cancel()) {
+   *   return true; // job successfully cancelled
+   * } else {
+   *   // job not found
+   * }
+   * }
+ * + * @return {@code true} if cancel request was sent successfully, {@code false} if job was not + * found + * @throws BigQueryException upon failure + */ + public boolean cancel() { + checkNotDryRun("cancel"); + return bigquery.cancel(getJobId()); + } + + private void checkNotDryRun(String op) { + checkNotDryRun(getConfiguration(), op); + } + + static void checkNotDryRun(JobConfiguration jobConfig, String op) { + QueryJobConfiguration config; + if (jobConfig instanceof QueryJobConfiguration) { + config = (QueryJobConfiguration) jobConfig; + } else { + return; + } + + Boolean dryRun = config.dryRun(); + if (dryRun == null) { + dryRun = false; + } + if (dryRun) { + String msg = + "Operation \"%s\" does not work for dryrun queries, " + + "since a dry run does not actually create a job. " + + "To validate a query and obtain some processing statistics, consider calling " + + "BigQuery.create(JobInfo)."; + throw new UnsupportedOperationException(String.format(msg, op)); + } + } + + /** Returns the job's {@code BigQuery} object used to issue requests. */ + public BigQuery getBigQuery() { + return bigquery; + } + + @Override + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public final boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj == null || !obj.getClass().equals(Job.class)) { + return false; + } + Job other = (Job) obj; + return Objects.equals(toPb(), other.toPb()) && Objects.equals(options, other.options); + } + + @Override + public final int hashCode() { + return Objects.hash(super.hashCode(), options); + } + + private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { + in.defaultReadObject(); + this.bigquery = options.getService(); + } + + static Job fromPb(BigQuery bigquery, com.google.api.services.bigquery.model.Job jobPb) { + return new Job(bigquery, new JobInfo.BuilderImpl(jobPb)); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java new file mode 100644 index 000000000000..e6434e602fac --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java @@ -0,0 +1,146 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; + +import java.io.Serializable; +import java.util.Objects; + +/** + * Base class for a BigQuery job configuration. + */ +public abstract class JobConfiguration implements Serializable { + + private static final long serialVersionUID = -548132177415406526L; + + private final Type type; + + /** + * Type of a BigQuery Job. + */ + public enum Type { + /** + * A Copy Job copies an existing table to another new or existing table. Instances of + * {@code JobConfiguration} for this type are implemented by {@link CopyJobConfiguration}. + */ + COPY, + /** + * An Extract Job exports a BigQuery table to Google Cloud Storage. Instances of + * {@code JobConfiguration} for this type are implemented by {@link ExtractJobConfiguration}. + */ + EXTRACT, + /** + * A Load Job loads data from one of several formats into a table. Instances of + * {@code JobConfiguration} for this type are implemented by {@link LoadJobConfiguration}. + */ + LOAD, + /** + * A Query Job runs a query against BigQuery data. Instances of + * {@code JobConfiguration} for this type are implemented by {@link QueryJobConfiguration}. + */ + QUERY + } + + /** + * Base builder for job configurations. + * + * @param the job configuration type + * @param the job configuration builder + */ + public abstract static class Builder> { + + private Type type; + + Builder(Type type) { + this.type = checkNotNull(type); + } + + @SuppressWarnings("unchecked") + B self() { + return (B) this; + } + + B setType(Type type) { + this.type = checkNotNull(type); + return self(); + } + + /** + * Creates an object. + */ + public abstract T build(); + } + + JobConfiguration(Builder builder) { + this.type = builder.type; + } + + + /** + * Returns the type of the job configuration. + */ + public Type getType() { + return type; + } + + /** + * Returns a builder for the object. + */ + public abstract Builder toBuilder(); + + ToStringHelper toStringHelper() { + return MoreObjects.toStringHelper(this).add("type", type); + } + + @Override + public String toString() { + return toStringHelper().toString(); + } + + final int baseHashCode() { + return Objects.hash(type); + } + + final boolean baseEquals(JobConfiguration jobConfiguration) { + return Objects.equals(toPb(), jobConfiguration.toPb()); + } + + abstract JobConfiguration setProjectId(String projectId); + + abstract com.google.api.services.bigquery.model.JobConfiguration toPb(); + + @SuppressWarnings("unchecked") + static T fromPb( + com.google.api.services.bigquery.model.JobConfiguration configurationPb) { + if (configurationPb.getCopy() != null) { + return (T) CopyJobConfiguration.fromPb(configurationPb); + } else if (configurationPb.getExtract() != null) { + return (T) ExtractJobConfiguration.fromPb(configurationPb); + } else if (configurationPb.getLoad() != null) { + return (T) LoadJobConfiguration.fromPb(configurationPb); + } else if (configurationPb.getQuery() != null) { + return (T) QueryJobConfiguration.fromPb(configurationPb); + } else { + // never reached + throw new IllegalArgumentException("Job configuration is not supported"); + } + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java new file mode 100644 index 000000000000..612affd315f3 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java @@ -0,0 +1,45 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.common.collect.ImmutableList; +import java.util.List; + +/** Exception describing a failure of a job. */ +public class JobException extends RuntimeException { + private final JobId id; + private final ImmutableList errors; + + JobException(JobId id, ImmutableList errors) { + super(String.format("job %s failed with error: %s", id, errors)); + this.id = id; + this.errors = errors; + } + + /** The ID for the failed job. */ + public JobId getId() { + return id; + } + /** + * The errors reported by the job. + * + *

The list is immutable. + */ + public List getErrors() { + return errors; + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java new file mode 100644 index 000000000000..6d2336ede86b --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java @@ -0,0 +1,124 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.JobReference; +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import java.util.UUID; +import javax.annotation.Nullable; + +/** Google BigQuery Job identity. */ +@AutoValue +public abstract class JobId implements Serializable { + + private static final long serialVersionUID = 1225914835379688977L; + + JobId() { + // Users cannot extend this, but AutoValue can. + } + + /** + * Returns job's project id. + * + *

When sending requests with null project, the client will attempt to infer the project name + * from the environment. + */ + @Nullable + public abstract String getProject(); + + /** + * Returns the job's id. + * + *

The server returns null job id for dry-run queries. + */ + @Nullable + public abstract String getJob(); + + /** + * Returns the job's location. + * + *

When sending requests, the location must be specified for jobs whose location not "US" or + * "EU". + */ + @Nullable + public abstract String getLocation(); + + public abstract Builder toBuilder(); + + public static Builder newBuilder() { + return new AutoValue_JobId.Builder(); + } + + @AutoValue.Builder + public abstract static class Builder { + public abstract Builder setProject(String project); + + public abstract Builder setJob(String job); + + /** {@code setJob} to a pseudo-random string. */ + public Builder setRandomJob() { + return setJob(UUID.randomUUID().toString()); + } + + public abstract Builder setLocation(String location); + + public abstract JobId build(); + } + + /** + * Creates a job identity given project's and job's user-defined id. + */ + public static JobId of(String project, String job) { + return newBuilder().setProject(checkNotNull(project)).setJob(checkNotNull(job)).build(); + } + + /** + * Creates a job identity given only its user-defined id. + */ + public static JobId of(String job) { + return newBuilder().setJob(checkNotNull(job)).build(); + } + + /** + * Creates a job identity with autogenerated id and no project specified. + */ + public static JobId of() { + return newBuilder().setRandomJob().build(); + } + + JobId setProjectId(String projectId) { + return getProject() != null ? this : toBuilder().setProject(projectId).build(); + } + + JobReference toPb() { + return new JobReference() + .setProjectId(getProject()) + .setJobId(getJob()) + .setLocation(getLocation()); + } + + static JobId fromPb(JobReference jobRef) { + return newBuilder() + .setProject(jobRef.getProjectId()) + .setJob(jobRef.getJobId()) + .setLocation(jobRef.getLocation()) + .build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java new file mode 100644 index 000000000000..aa820496e10d --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java @@ -0,0 +1,419 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.Job; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; +import java.io.Serializable; +import java.util.Objects; + +/** + * Google BigQuery Job information. Jobs are objects that manage asynchronous tasks such as running + * queries, loading data, and exporting data. Use {@link CopyJobConfiguration} for a job that + * copies an existing table. Use {@link ExtractJobConfiguration} for a job that exports a table to + * Google Cloud Storage. Use {@link LoadJobConfiguration} for a job that loads data from Google + * Cloud Storage into a table. Use {@link QueryJobConfiguration} for a job that runs a query. + * + * @see Jobs + */ +public class JobInfo implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public JobInfo apply(Job pb) { + return JobInfo.fromPb(pb); + } + }; + + private static final long serialVersionUID = 2740548743267670124L; + + private final String etag; + private final String generatedId; + private final JobId jobId; + private final String selfLink; + private final JobStatus status; + private final JobStatistics statistics; + private final String userEmail; + private final JobConfiguration configuration; + + /** + * Specifies whether the job is allowed to create new tables. + */ + public enum CreateDisposition { + /** + * Configures the job to create the table if it does not exist. + */ + CREATE_IF_NEEDED, + + /** + * Configures the job to fail with a not-found error if the table does not exist. + */ + CREATE_NEVER + } + + /** + * Specifies the action that occurs if the destination table already exists. + */ + public enum WriteDisposition { + /** + * Configures the job to overwrite the table data if table already exists. + */ + WRITE_TRUNCATE, + + /** + * Configures the job to append data to the table if it already exists. + */ + WRITE_APPEND, + + /** + * Configures the job to fail with a duplicate error if the table already exists. + */ + WRITE_EMPTY + } + + /** + * Specifies options relating to allowing the schema of the destination table to be updated as a side effect of the + * load or query job. + */ + public enum SchemaUpdateOption { + /** + * Allow adding a nullable field to the schema. + */ + ALLOW_FIELD_ADDITION, + + /** + * Allow relaxing a required field in the original schema to nullable. + */ + ALLOW_FIELD_RELAXATION + } + + /** + * A builder for {@code JobInfo} objects. + */ + public abstract static class Builder { + + abstract Builder setEtag(String etag); + + abstract Builder setGeneratedId(String generatedId); + + + /** + * Sets the job identity. + */ + public abstract Builder setJobId(JobId jobId); + + abstract Builder setSelfLink(String selfLink); + + abstract Builder setStatus(JobStatus status); + + abstract Builder setStatistics(JobStatistics statistics); + + abstract Builder setUserEmail(String userEmail); + + + /** + * Sets a configuration for the {@code JobInfo} object. Use {@link CopyJobConfiguration} for a + * job that copies an existing table. Use {@link ExtractJobConfiguration} for a job that exports + * a table to Google Cloud Storage. Use {@link LoadJobConfiguration} for a job that loads data + * from Google Cloud Storage into a table. Use {@link QueryJobConfiguration} for a job that runs + * a query. + */ + public abstract Builder setConfiguration(JobConfiguration configuration); + + /** + * Creates a {@code JobInfo} object. + */ + public abstract JobInfo build(); + } + + static final class BuilderImpl extends Builder { + + private String etag; + private String generatedId; + private JobId jobId; + private String selfLink; + private JobStatus status; + private JobStatistics statistics; + private String userEmail; + private JobConfiguration configuration; + + BuilderImpl() {} + + BuilderImpl(JobInfo jobInfo) { + this.etag = jobInfo.etag; + this.generatedId = jobInfo.generatedId; + this.jobId = jobInfo.jobId; + this.selfLink = jobInfo.selfLink; + this.status = jobInfo.status; + this.statistics = jobInfo.statistics; + this.userEmail = jobInfo.userEmail; + this.configuration = jobInfo.configuration; + } + + BuilderImpl(Job jobPb) { + this.etag = jobPb.getEtag(); + this.generatedId = jobPb.getId(); + if (jobPb.getJobReference() != null) { + this.jobId = JobId.fromPb(jobPb.getJobReference()); + } + this.selfLink = jobPb.getSelfLink(); + if (jobPb.getStatus() != null) { + this.status = JobStatus.fromPb(jobPb.getStatus()); + } + if (jobPb.getStatistics() != null) { + this.statistics = JobStatistics.fromPb(jobPb); + } + this.userEmail = jobPb.getUserEmail(); + this.configuration = JobConfiguration.fromPb(jobPb.getConfiguration()); + } + + @Override + Builder setEtag(String etag) { + this.etag = etag; + return this; + } + + @Override + Builder setGeneratedId(String generatedId) { + this.generatedId = generatedId; + return this; + } + + + @Override + public Builder setJobId(JobId jobId) { + this.jobId = jobId; + return this; + } + + @Override + Builder setSelfLink(String selfLink) { + this.selfLink = selfLink; + return this; + } + + @Override + Builder setStatus(JobStatus status) { + this.status = status; + return this; + } + + @Override + Builder setStatistics(JobStatistics statistics) { + this.statistics = statistics; + return this; + } + + @Override + Builder setUserEmail(String userEmail) { + this.userEmail = userEmail; + return this; + } + + + @Override + public Builder setConfiguration(JobConfiguration configuration) { + this.configuration = configuration; + return this; + } + + @Override + public JobInfo build() { + return new JobInfo(this); + } + } + + JobInfo(BuilderImpl builder) { + this.jobId = builder.jobId; + this.etag = builder.etag; + this.generatedId = builder.generatedId; + this.selfLink = builder.selfLink; + this.status = builder.status; + this.statistics = builder.statistics; + this.userEmail = builder.userEmail; + this.configuration = builder.configuration; + } + + + /** + * Returns the hash of the job resource. + */ + public String getEtag() { + return etag; + } + + + /** + * Returns the service-generated id for the job. + */ + public String getGeneratedId() { + return generatedId; + } + + + /** + * Returns the job identity. + */ + public JobId getJobId() { + return jobId; + } + + + /** + * Returns an URL that can be used to access the resource again. The returned URL can be used for + * GET requests. + */ + public String getSelfLink() { + return selfLink; + } + + + /** + * Returns the status of this job. Examine this value when polling an asynchronous job to see if + * the job is complete. + */ + public JobStatus getStatus() { + return status; + } + + + /** + * Returns information about the job, including starting time and ending time of the job. + */ + @SuppressWarnings("unchecked") + public S getStatistics() { + return (S) statistics; + } + + + /** + * Returns the email address of the user who ran the job. + */ + public String getUserEmail() { + return userEmail; + } + + + /** + * Returns the job's configuration. + */ + @SuppressWarnings("unchecked") + public C getConfiguration() { + return (C) configuration; + } + + /** + * Returns a builder for the job object. + */ + public Builder toBuilder() { + return new BuilderImpl(this); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("job", jobId) + .add("status", status) + .add("statistics", statistics) + .add("userEmail", userEmail) + .add("etag", etag) + .add("generatedId", generatedId) + .add("selfLink", selfLink) + .add("configuration", configuration) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(jobId); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(JobInfo.class) + && Objects.equals(toPb(), ((JobInfo) obj).toPb()); + } + + JobInfo setProjectId(String projectId) { + Builder builder = toBuilder(); + if (jobId != null) { + builder.setJobId(jobId.setProjectId(projectId)); + } + return builder.setConfiguration(configuration.setProjectId(projectId)).build(); + } + + Job toPb() { + Job jobPb = new Job(); + jobPb.setEtag(etag); + jobPb.setId(generatedId); + jobPb.setSelfLink(selfLink); + jobPb.setUserEmail(userEmail); + if (jobId != null) { + jobPb.setJobReference(jobId.toPb()); + } + if (status != null) { + jobPb.setStatus(status.toPb()); + } + if (statistics != null) { + jobPb.setStatistics(statistics.toPb()); + } + jobPb.setConfiguration(configuration.toPb()); + return jobPb; + } + + + /** + * Returns a builder for a {@code JobInfo} object given the job configuration. Use + * {@link CopyJobConfiguration} for a job that copies an existing table. Use + * {@link ExtractJobConfiguration} for a job that exports a table to Google Cloud Storage. Use + * {@link LoadJobConfiguration} for a job that loads data from Google Cloud Storage into a table. + * Use {@link QueryJobConfiguration} for a job that runs a query. + */ + public static Builder newBuilder(JobConfiguration configuration) { + return new BuilderImpl().setConfiguration(configuration); + } + + /** + * Returns a {@code JobInfo} object given the job configuration. Use {@link CopyJobConfiguration} + * for a job that copies an existing table. Use {@link ExtractJobConfiguration} for a job that + * exports a table to Google Cloud Storage. Use {@link LoadJobConfiguration} for a job that loads + * data from Google Cloud Storage into a table. Use {@link QueryJobConfiguration} for a job that + * runs a query. + */ + public static JobInfo of(JobConfiguration configuration) { + return newBuilder(configuration).build(); + } + + /** + * Returns a builder for a {@code JobInfo} object given the job identity and configuration. Use + * {@link CopyJobConfiguration} for a job that copies an existing table. Use + * {@link ExtractJobConfiguration} for a job that exports a table to Google Cloud Storage. Use + * {@link LoadJobConfiguration} for a job that loads data from Google Cloud Storage into a table. + * Use {@link QueryJobConfiguration} for a job that runs a query. + */ + public static JobInfo of(JobId jobId, JobConfiguration configuration) { + return newBuilder(configuration).setJobId(jobId).build(); + } + + static JobInfo fromPb(Job jobPb) { + return new BuilderImpl(jobPb).build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java new file mode 100644 index 000000000000..175e5f47f1fb --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -0,0 +1,651 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.JobConfiguration; +import com.google.api.services.bigquery.model.JobStatistics2; +import com.google.api.services.bigquery.model.JobStatistics3; +import com.google.api.services.bigquery.model.JobStatistics4; +import com.google.common.base.MoreObjects; +import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.collect.Lists; +import java.io.Serializable; +import java.util.List; +import java.util.Objects; + +/** + * A Google BigQuery Job statistics. + */ +public abstract class JobStatistics implements Serializable { + + private static final long serialVersionUID = 1433024714741660399L; + + private final Long creationTime; + private final Long endTime; + private final Long startTime; + + /** + * A Google BigQuery Copy Job statistics. + */ + public static class CopyStatistics extends JobStatistics { + + private static final long serialVersionUID = 8218325588441660938L; + + static final class Builder extends JobStatistics.Builder { + + private Builder() {} + + private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsPb) { + super(statisticsPb); + } + + @Override + CopyStatistics build() { + return new CopyStatistics(this); + } + } + + private CopyStatistics(Builder builder) { + super(builder); + } + + @Override + public final boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(CopyStatistics.class) + && baseEquals((CopyStatistics) obj); + } + + @Override + public final int hashCode() { + return baseHashCode(); + } + + static Builder newBuilder() { + return new Builder(); + } + + @SuppressWarnings("unchecked") + static CopyStatistics fromPb( + com.google.api.services.bigquery.model.JobStatistics statisticPb) { + return new Builder(statisticPb).build(); + } + } + + /** + * A Google BigQuery Extract Job statistics. + */ + public static class ExtractStatistics extends JobStatistics { + + private static final long serialVersionUID = -1566598819212767373L; + + private final List destinationUriFileCounts; + + static final class Builder extends JobStatistics.Builder { + + private List destinationUriFileCounts; + + private Builder() {} + + private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsPb) { + super(statisticsPb); + if (statisticsPb.getExtract() != null) { + this.destinationUriFileCounts = statisticsPb.getExtract().getDestinationUriFileCounts(); + } + } + + Builder setDestinationUriFileCounts(List destinationUriFileCounts) { + this.destinationUriFileCounts = destinationUriFileCounts; + return self(); + } + + @Override + ExtractStatistics build() { + return new ExtractStatistics(this); + } + } + + private ExtractStatistics(Builder builder) { + super(builder); + this.destinationUriFileCounts = builder.destinationUriFileCounts; + } + + + /** + * Returns the number of files per destination URI or URI pattern specified in the extract job. + * These values will be in the same order as the URIs specified by + * {@link ExtractJobConfiguration#getDestinationUris()}. + */ + public List getDestinationUriFileCounts() { + return destinationUriFileCounts; + } + + @Override + ToStringHelper toStringHelper() { + return super.toStringHelper().add("destinationUriFileCounts", destinationUriFileCounts); + } + + @Override + public final boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(ExtractStatistics.class) + && baseEquals((ExtractStatistics) obj); + } + + @Override + public final int hashCode() { + return Objects.hash(baseHashCode(), destinationUriFileCounts); + } + + @Override + com.google.api.services.bigquery.model.JobStatistics toPb() { + com.google.api.services.bigquery.model.JobStatistics statisticsPb = super.toPb(); + return statisticsPb.setExtract( + new JobStatistics4().setDestinationUriFileCounts(destinationUriFileCounts)); + } + + static Builder newBuilder() { + return new Builder(); + } + + @SuppressWarnings("unchecked") + static ExtractStatistics fromPb( + com.google.api.services.bigquery.model.JobStatistics statisticPb) { + return new Builder(statisticPb).build(); + } + } + + /** + * A Google BigQuery Load Job statistics. + */ + public static class LoadStatistics extends JobStatistics { + + private static final long serialVersionUID = -707369246536309215L; + + private final Long inputBytes; + private final Long inputFiles; + private final Long outputBytes; + private final Long outputRows; + + static final class Builder extends JobStatistics.Builder { + + private Long inputBytes; + private Long inputFiles; + private Long outputBytes; + private Long outputRows; + + private Builder() {} + + private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsPb) { + super(statisticsPb); + if (statisticsPb.getLoad() != null) { + this.inputBytes = statisticsPb.getLoad().getInputFileBytes(); + this.inputFiles = statisticsPb.getLoad().getInputFiles(); + this.outputBytes = statisticsPb.getLoad().getOutputBytes(); + this.outputRows = statisticsPb.getLoad().getOutputRows(); + } + } + + Builder setInputBytes(Long inputBytes) { + this.inputBytes = inputBytes; + return self(); + } + + Builder setInputFiles(Long inputFiles) { + this.inputFiles = inputFiles; + return self(); + } + + Builder setOutputBytes(Long outputBytes) { + this.outputBytes = outputBytes; + return self(); + } + + Builder setOutputRows(Long outputRows) { + this.outputRows = outputRows; + return self(); + } + + @Override + LoadStatistics build() { + return new LoadStatistics(this); + } + } + + private LoadStatistics(Builder builder) { + super(builder); + this.inputBytes = builder.inputBytes; + this.inputFiles = builder.inputFiles; + this.outputBytes = builder.outputBytes; + this.outputRows = builder.outputRows; + + } + + + /** + * Returns the number of bytes of source data in a load job. + */ + public Long getInputBytes() { + return inputBytes; + } + + + /** + * Returns the number of source files in a load job. + */ + public Long getInputFiles() { + return inputFiles; + } + + + /** + * Returns the size of the data loaded by a load job so far, in bytes. + */ + public Long getOutputBytes() { + return outputBytes; + } + + + /** + * Returns the number of rows loaded by a load job so far. + */ + public Long getOutputRows() { + return outputRows; + } + + @Override + ToStringHelper toStringHelper() { + return super.toStringHelper() + .add("inputBytes", inputBytes) + .add("inputFiles", inputFiles) + .add("outputBytes", outputBytes) + .add("outputRows", outputRows); + } + + @Override + public final boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(LoadStatistics.class) + && baseEquals((LoadStatistics) obj); + } + + @Override + public final int hashCode() { + return Objects.hash(baseHashCode(), inputBytes, inputFiles, outputBytes, outputRows); + } + + @Override + com.google.api.services.bigquery.model.JobStatistics toPb() { + JobStatistics3 loadStatisticsPb = new JobStatistics3(); + loadStatisticsPb.setInputFileBytes(inputBytes); + loadStatisticsPb.setInputFiles(inputFiles); + loadStatisticsPb.setOutputBytes(outputBytes); + loadStatisticsPb.setOutputRows(outputRows); + return super.toPb().setLoad(loadStatisticsPb); + } + + static Builder newBuilder() { + return new Builder(); + } + + @SuppressWarnings("unchecked") + static LoadStatistics fromPb(com.google.api.services.bigquery.model.JobStatistics statisticPb) { + return new Builder(statisticPb).build(); + } + } + + /** + * A Google BigQuery Query Job statistics. + */ + public static class QueryStatistics extends JobStatistics { + + private static final long serialVersionUID = 7539354109226732353L; + + private final Integer billingTier; + private final Boolean cacheHit; + private final Long totalBytesBilled; + private final Long totalBytesProcessed; + private final List queryPlan; + private final List timeline; + private final Schema schema; + + static final class Builder extends JobStatistics.Builder { + + private Integer billingTier; + private Boolean cacheHit; + private Long totalBytesBilled; + private Long totalBytesProcessed; + private List queryPlan; + private List timeline; + private Schema schema; + + private Builder() {} + + private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsPb) { + super(statisticsPb); + if (statisticsPb.getQuery() != null) { + this.billingTier = statisticsPb.getQuery().getBillingTier(); + this.cacheHit = statisticsPb.getQuery().getCacheHit(); + this.totalBytesBilled = statisticsPb.getQuery().getTotalBytesBilled(); + this.totalBytesProcessed = statisticsPb.getQuery().getTotalBytesProcessed(); + if (statisticsPb.getQuery().getQueryPlan() != null) { + this.queryPlan = + Lists.transform( + statisticsPb.getQuery().getQueryPlan(), QueryStage.FROM_PB_FUNCTION); + } + if (statisticsPb.getQuery().getTimeline() != null) { + this.timeline = + Lists.transform( + statisticsPb.getQuery().getTimeline(), TimelineSample.FROM_PB_FUNCTION); + } + if (statisticsPb.getQuery().getSchema() != null) { + this.schema = Schema.fromPb(statisticsPb.getQuery().getSchema()); + } + } + } + + Builder setBillingTier(Integer billingTier) { + this.billingTier = billingTier; + return self(); + } + + Builder setCacheHit(Boolean cacheHit) { + this.cacheHit = cacheHit; + return self(); + } + + Builder setTotalBytesBilled(Long totalBytesBilled) { + this.totalBytesBilled = totalBytesBilled; + return self(); + } + + Builder setTotalBytesProcessed(Long totalBytesProcessed) { + this.totalBytesProcessed = totalBytesProcessed; + return self(); + } + + Builder setQueryPlan(List queryPlan) { + this.queryPlan = queryPlan; + return self(); + } + + Builder setTimeline(List timeline) { + this.timeline = timeline; + return self(); + } + + Builder setSchema(Schema schema) { + this.schema = schema; + return self(); + } + + @Override + QueryStatistics build() { + return new QueryStatistics(this); + } + } + + private QueryStatistics(Builder builder) { + super(builder); + this.billingTier = builder.billingTier; + this.cacheHit = builder.cacheHit; + this.totalBytesBilled = builder.totalBytesBilled; + this.totalBytesProcessed = builder.totalBytesProcessed; + this.queryPlan = builder.queryPlan; + this.timeline = builder.timeline; + this.schema = builder.schema; + } + + + /** + * Returns the billing tier for the job. + */ + public Integer getBillingTier() { + return billingTier; + } + + + /** + * Returns whether the query result was fetched from the query cache. + * + * @see + * Query Caching + */ + public Boolean getCacheHit() { + return cacheHit; + } + + + /** + * Returns the total number of bytes billed for the job. + */ + public Long getTotalBytesBilled() { + return totalBytesBilled; + } + + + /** + * Returns the total number of bytes processed by the job. + */ + public Long getTotalBytesProcessed() { + return totalBytesProcessed; + } + + + /** + * Returns the query plan as a list of stages or {@code null} if a query plan is not available. + * Each stage involves a number of steps that read from data sources, perform a series of + * transformations on the input, and emit an output to a future stage (or the final result). The + * query plan is available for a completed query job and is retained for 7 days. + * + * @see Query Plan + */ + public List getQueryPlan() { + return queryPlan; + } + + /** + * Return the timeline for the query, as a list of timeline samples. Each sample provides + * information about the overall progress of the query. Information includes time of the + * sample, progress reporting on active, completed, and + * pending units of work, as well as the cumulative estimation of slot-milliseconds consumed + * by the query. + */ + public List getTimeline() { return timeline; } + + /** + * Returns the schema for the query result. Present only for successful dry run of + * non-legacy SQL queries. + */ + public Schema getSchema() { + return schema; + } + + @Override + ToStringHelper toStringHelper() { + return super.toStringHelper() + .add("billingTier", billingTier) + .add("cacheHit", cacheHit) + .add("totalBytesBilled", totalBytesBilled) + .add("totalBytesProcessed", totalBytesProcessed) + .add("queryPlan", queryPlan) + .add("timeline", timeline) + .add("schema", schema); + } + + @Override + public final boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(QueryStatistics.class) + && baseEquals((QueryStatistics) obj); + } + + @Override + public final int hashCode() { + return Objects.hash(baseHashCode(), billingTier, cacheHit, totalBytesBilled, + totalBytesProcessed, queryPlan, schema); + } + + @Override + com.google.api.services.bigquery.model.JobStatistics toPb() { + JobStatistics2 queryStatisticsPb = new JobStatistics2(); + queryStatisticsPb.setBillingTier(billingTier); + queryStatisticsPb.setCacheHit(cacheHit); + queryStatisticsPb.setTotalBytesBilled(totalBytesBilled); + queryStatisticsPb.setTotalBytesProcessed(totalBytesProcessed); + if (queryPlan != null) { + queryStatisticsPb.setQueryPlan(Lists.transform(queryPlan, QueryStage.TO_PB_FUNCTION)); + } + if (timeline != null) { + queryStatisticsPb.setTimeline(Lists.transform(timeline, TimelineSample.TO_PB_FUNCTION)); + } + if (schema != null) { + queryStatisticsPb.setSchema(schema.toPb()); + } + return super.toPb().setQuery(queryStatisticsPb); + } + + static Builder newBuilder() { + return new Builder(); + } + + @SuppressWarnings("unchecked") + static QueryStatistics fromPb( + com.google.api.services.bigquery.model.JobStatistics statisticPb) { + return new Builder(statisticPb).build(); + } + } + + abstract static class Builder> { + + private Long creationTime; + private Long endTime; + private Long startTime; + + protected Builder() {} + + protected Builder(com.google.api.services.bigquery.model.JobStatistics statisticsPb) { + this.creationTime = statisticsPb.getCreationTime(); + this.endTime = statisticsPb.getEndTime(); + this.startTime = statisticsPb.getStartTime(); + } + + @SuppressWarnings("unchecked") + protected B self() { + return (B) this; + } + + B setCreationTimestamp(Long creationTime) { + this.creationTime = creationTime; + return self(); + } + + B setEndTime(Long endTime) { + this.endTime = endTime; + return self(); + } + + B setStartTime(Long startTime) { + this.startTime = startTime; + return self(); + } + + abstract T build(); + } + + protected JobStatistics(Builder builder) { + this.creationTime = builder.creationTime; + this.endTime = builder.endTime; + this.startTime = builder.startTime; + } + + + /** + * Returns the creation time of the job in milliseconds since epoch. + */ + public Long getCreationTime() { + return creationTime; + } + + + /** + * Returns the end time of the job in milliseconds since epoch. Returns {@code null} if the + * job has not finished yet. + */ + public Long getEndTime() { + return endTime; + } + + + /** + * Returns the start time of the job in milliseconds since epoch. Returns {@code null} if the + * job has not started yet. + */ + public Long getStartTime() { + return startTime; + } + + ToStringHelper toStringHelper() { + return MoreObjects.toStringHelper(this) + .add("creationTime", creationTime) + .add("endTime", endTime) + .add("startTime", startTime); + } + + @Override + public String toString() { + return toStringHelper().toString(); + } + + final int baseHashCode() { + return Objects.hash(creationTime, endTime, startTime); + } + + final boolean baseEquals(JobStatistics jobStatistics) { + return Objects.equals(toPb(), jobStatistics.toPb()); + } + + com.google.api.services.bigquery.model.JobStatistics toPb() { + com.google.api.services.bigquery.model.JobStatistics statistics = + new com.google.api.services.bigquery.model.JobStatistics(); + statistics.setCreationTime(creationTime); + statistics.setEndTime(endTime); + statistics.setStartTime(startTime); + return statistics; + } + + @SuppressWarnings("unchecked") + static T fromPb(com.google.api.services.bigquery.model.Job jobPb) { + JobConfiguration jobConfigPb = jobPb.getConfiguration(); + com.google.api.services.bigquery.model.JobStatistics statisticPb = jobPb.getStatistics(); + if (jobConfigPb.getLoad() != null) { + return (T) LoadStatistics.fromPb(statisticPb); + } else if (jobConfigPb.getExtract() != null) { + return (T) ExtractStatistics.fromPb(statisticPb); + } else if (jobConfigPb.getQuery() != null) { + return (T) QueryStatistics.fromPb(statisticPb); + } else if (jobConfigPb.getCopy() != null) { + return (T) CopyStatistics.fromPb(statisticPb); + } else { + throw new IllegalArgumentException("unknown job configuration: " + jobConfigPb); + } + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java new file mode 100644 index 000000000000..24017499f190 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java @@ -0,0 +1,195 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.core.ApiFunction; +import com.google.cloud.StringEnumType; +import com.google.cloud.StringEnumValue; +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; + +import java.io.Serializable; +import java.util.List; +import java.util.Objects; + +/** + * A Google BigQuery Job status. Objects of this class can be examined when polling an asynchronous + * job to see if the job completed. + */ +public class JobStatus implements Serializable { + + private static final long serialVersionUID = -714976456815445365L; + + /** + * Possible states that a BigQuery Job can assume. + */ + public static final class State extends StringEnumValue { + private static final long serialVersionUID = 818920627219751204L; + + private static final ApiFunction CONSTRUCTOR = + new ApiFunction() { + @Override + public State apply(String constant) { + return new State(constant); + } + }; + + private static final StringEnumType type = new StringEnumType( + State.class, + CONSTRUCTOR); + + /** + * The BigQuery Job is waiting to be executed. + */ + public static final State PENDING = type.createAndRegister("PENDING"); + + /** + * The BigQuery Job is being executed. + */ + public static final State RUNNING = type.createAndRegister("RUNNING"); + + /** + * The BigQuery Job has completed either succeeding or failing. If failed {@link #getError()} + * will be non-null. + */ + public static final State DONE = type.createAndRegister("DONE"); + + private State(String constant) { + super(constant); + } + + /** + * Get the State for the given String constant, and throw an exception if the constant is + * not recognized. + */ + public static State valueOfStrict(String constant) { + return type.valueOfStrict(constant); + } + + /** + * Get the State for the given String constant, and allow unrecognized values. + */ + public static State valueOf(String constant) { + return type.valueOf(constant); + } + + /** + * Return the known values for State. + */ + public static State[] values() { + return type.values(); + } + } + + private final State state; + private final BigQueryError error; + private final List executionErrors; + + JobStatus(State state) { + this.state = state; + this.error = null; + this.executionErrors = null; + } + + JobStatus(State state, BigQueryError error, List executionErrors) { + this.state = state; + this.error = error; + this.executionErrors = executionErrors != null ? ImmutableList.copyOf(executionErrors) : null; + } + + + /** + * Returns the state of the job. A {@link State#PENDING} job is waiting to be executed. A + * {@link State#RUNNING} is being executed. A {@link State#DONE} job has completed either + * succeeding or failing. If failed {@link #getError()} will be non-null. + */ + public State getState() { + return state; + } + + + /** + * Returns the final error result of the job. If present, indicates that the job has completed + * and was unsuccessful. + * + * @see + * Troubleshooting Errors + */ + public BigQueryError getError() { + return error; + } + + + /** + * Returns all errors encountered during the running of the job. Errors here do not necessarily + * mean that the job has completed or was unsuccessful. + * + * @see + * Troubleshooting Errors + */ + public List getExecutionErrors() { + return executionErrors; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("state", state) + .add("error", error) + .add("executionErrors", executionErrors) + .toString(); + } + + @Override + public final int hashCode() { + return Objects.hash(state, error, executionErrors); + } + + @Override + public final boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(JobStatus.class) + && Objects.equals(toPb(), ((JobStatus) obj).toPb()); + } + + com.google.api.services.bigquery.model.JobStatus toPb() { + com.google.api.services.bigquery.model.JobStatus statusPb = + new com.google.api.services.bigquery.model.JobStatus(); + if (state != null) { + statusPb.setState(state.toString()); + } + if (error != null) { + statusPb.setErrorResult(error.toPb()); + } + if (executionErrors != null) { + statusPb.setErrors(Lists.transform(executionErrors, BigQueryError.TO_PB_FUNCTION)); + } + return statusPb; + } + + static JobStatus fromPb(com.google.api.services.bigquery.model.JobStatus statusPb) { + List allErrors = null; + if (statusPb.getErrors() != null) { + allErrors = Lists.transform(statusPb.getErrors(), BigQueryError.FROM_PB_FUNCTION); + } + BigQueryError error = + statusPb.getErrorResult() != null ? BigQueryError.fromPb(statusPb.getErrorResult()) : null; + return new JobStatus(State.valueOf(statusPb.getState()), error, allErrors); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java new file mode 100644 index 000000000000..8f91aa37aeef --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java @@ -0,0 +1,95 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.client.util.Data; +import com.google.auto.value.AutoValue; +import com.google.auto.value.extension.memoized.Memoized; +import com.google.common.base.Preconditions; +import com.google.common.collect.ImmutableMap; +import java.io.Serializable; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import javax.annotation.Nullable; + +@AutoValue +abstract class Labels implements Serializable { + private static final long serialVersionUID = 1L; + static final Labels ZERO = of(Collections.emptyMap()); + + @Nullable + abstract Map userMap(); + + @Memoized + @Nullable + Map toPb() { + Map userMap = userMap(); + if (userMap == null) { + // converted to JSON null + return Data.nullOf(HashMap.class); + } + if (userMap.isEmpty()) { + // dropped from JSON + return null; + } + HashMap pbMap = new HashMap<>(); + for (Map.Entry entry : userMap.entrySet()) { + String key = entry.getKey(); + String val = entry.getValue(); + if (val == null) { + val = Data.NULL_STRING; + } + pbMap.put(key, val); + } + return Collections.unmodifiableMap(pbMap); + } + + private static Labels of(Map userMap) { + Preconditions.checkArgument( + userMap == null || !userMap.containsKey(null), "null keys are not supported"); + return new AutoValue_Labels(userMap); + } + + static Labels fromUser(Map map) { + if (map == null || map instanceof ImmutableMap) { + return of(map); + } + // Not ImmutableMap; we support null values! + return of(Collections.unmodifiableMap(new HashMap<>(map))); + } + + static Labels fromPb(Map pb) { + if (Data.isNull(pb)) { + return of(null); + } + if (pb == null || pb.isEmpty()) { + return of(Collections.emptyMap()); + } + + HashMap map = new HashMap<>(); + for (Map.Entry entry : pb.entrySet()) { + String key = entry.getKey(); + String val = entry.getValue(); + if (Data.isNull(val)) { + val = null; + } + map.put(key, val); + } + return of(Collections.unmodifiableMap(map)); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java new file mode 100644 index 000000000000..e99fbe21438b --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java @@ -0,0 +1,110 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.core.ApiFunction; +import com.google.cloud.StringEnumType; +import com.google.cloud.StringEnumValue; + +/** + * A type used in legacy SQL contexts. NOTE: some contexts use a mix of types; for example, + * for queries that use standard SQL, the return types are the legacy SQL types. + * + * @see https://cloud.google.com/bigquery/data-types + */ +public final class LegacySQLTypeName extends StringEnumValue { + private static final long serialVersionUID = 1421040468991161123L; + + private static final ApiFunction CONSTRUCTOR = + new ApiFunction() { + @Override + public LegacySQLTypeName apply(String constant) { + return new LegacySQLTypeName(constant); + } + }; + + private static final StringEnumType type = new StringEnumType( + LegacySQLTypeName.class, + CONSTRUCTOR); + + /** Variable-length binary data. */ + public static final LegacySQLTypeName BYTES = type.createAndRegister("BYTES").setStandardType(StandardSQLTypeName.BYTES); + /** Variable-length character (Unicode) data. */ + public static final LegacySQLTypeName STRING = type.createAndRegister("STRING").setStandardType(StandardSQLTypeName.STRING); + /** A 64-bit signed integer value. */ + public static final LegacySQLTypeName INTEGER = type.createAndRegister("INTEGER").setStandardType(StandardSQLTypeName.INT64); + /** A 64-bit IEEE binary floating-point value. */ + public static final LegacySQLTypeName FLOAT = type.createAndRegister("FLOAT").setStandardType(StandardSQLTypeName.FLOAT64); + /** A Boolean value (true or false). */ + public static final LegacySQLTypeName BOOLEAN = type.createAndRegister("BOOLEAN").setStandardType(StandardSQLTypeName.BOOL); + /** Represents an absolute point in time, with microsecond precision. */ + public static final LegacySQLTypeName TIMESTAMP = type.createAndRegister("TIMESTAMP").setStandardType(StandardSQLTypeName.TIMESTAMP); + /** Represents a logical calendar date. Note, support for this type is limited in legacy SQL. */ + public static final LegacySQLTypeName DATE = type.createAndRegister("DATE").setStandardType(StandardSQLTypeName.DATE); + /** + * Represents a time, independent of a specific date, to microsecond precision. Note, support for + * this type is limited in legacy SQL. + */ + public static final LegacySQLTypeName TIME = type.createAndRegister("TIME").setStandardType(StandardSQLTypeName.TIME); + /** + * Represents a year, month, day, hour, minute, second, and subsecond (microsecond precision). + * Note, support for this type is limited in legacy SQL. + */ + public static final LegacySQLTypeName DATETIME = type.createAndRegister("DATETIME").setStandardType(StandardSQLTypeName.DATETIME); + /** A record type with a nested schema. */ + public static final LegacySQLTypeName RECORD = type.createAndRegister("RECORD").setStandardType(StandardSQLTypeName.STRUCT); + + private StandardSQLTypeName equivalent; + + private LegacySQLTypeName setStandardType(StandardSQLTypeName equivalent) { + this.equivalent = equivalent; + return this; + } + + /** + * Provides the standard SQL type name equivalent to this type name. + */ + public StandardSQLTypeName getStandardType() { + return equivalent; + } + + private LegacySQLTypeName(String constant) { + super(constant); + } + + /** + * Get the LegacySQLTypeName for the given String constant, and throw an exception if the constant is + * not recognized. + */ + public static LegacySQLTypeName valueOfStrict(String constant) { + return type.valueOfStrict(constant); + } + + /** + * Get the LegacySQLTypeName for the given String constant, and allow unrecognized values. + */ + public static LegacySQLTypeName valueOf(String constant) { + return type.valueOf(constant); + } + + /** + * Return the known values for LegacySQLTypeName. + */ + public static LegacySQLTypeName[] values() { + return type.values(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java new file mode 100644 index 000000000000..8d7204d61a29 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java @@ -0,0 +1,218 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.cloud.bigquery.JobInfo.CreateDisposition; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; + +import java.util.List; + +/** + * Common interface for a load configuration. A load configuration + * ({@link WriteChannelConfiguration}) can be used to load data into a table with a + * {@link com.google.cloud.WriteChannel} ({@link BigQuery#writer(WriteChannelConfiguration)}). + * A load configuration ({@link LoadJobConfiguration}) can also be used to create a load job + * ({@link JobInfo#of(JobConfiguration)}). + */ +public interface LoadConfiguration { + + interface Builder { + + + /** + * Sets the destination table to load the data into. + */ + Builder setDestinationTable(TableId destinationTable); + + + Builder setDestinationEncryptionConfiguration(EncryptionConfiguration encryptionConfiguration); + + /** + * Sets whether the job is allowed to create new tables. + * + * @see + * Create Disposition + */ + Builder setCreateDisposition(CreateDisposition createDisposition); + + + /** + * Sets the action that should occur if the destination table already exists. + * + * @see + * Write Disposition + */ + Builder setWriteDisposition(WriteDisposition writeDisposition); + + + /** + * Sets the source format, and possibly some parsing options, of the external data. Supported + * formats are {@code CSV}, {@code NEWLINE_DELIMITED_JSON} and {@code DATASTORE_BACKUP}. If not + * specified, {@code CSV} format is assumed. + * + * + * Source Format + */ + Builder setFormatOptions(FormatOptions formatOptions); + + + /** + * Sets the string that represents a null value in a CSV file. For example, if you specify "\N", + * BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the + * empty string. If you set this property to a custom value, BigQuery throws an error if an + * empty string is present for all data types except for {@code STRING} and {@code BYTE}. For + * {@code STRING} and {@code BYTE} columns, BigQuery interprets the empty string as an empty + * value. + */ + Builder setNullMarker(String nullMarker); + + + /** + * Sets the maximum number of bad records that BigQuery can ignore when running the job. If the + * number of bad records exceeds this value, an invalid error is returned in the job result. + * By default no bad record is ignored. + */ + Builder setMaxBadRecords(Integer maxBadRecords); + + + /** + * Sets the schema for the destination table. The schema can be omitted if the destination table + * already exists, or if you're loading data from a Google Cloud Datastore backup (i.e. + * {@code DATASTORE_BACKUP} format option). + */ + Builder setSchema(Schema schema); + + + /** + * Sets whether BigQuery should allow extra values that are not represented in the table schema. + * If {@code true}, the extra values are ignored. If {@code false}, records with extra columns + * are treated as bad records, and if there are too many bad records, an invalid error is + * returned in the job result. By default unknown values are not allowed. + */ + Builder setIgnoreUnknownValues(Boolean ignoreUnknownValues); + + /** + * [Experimental] Sets options allowing the schema of the destination table to be updated as a side effect of the + * load job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when + * writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition + * decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. + */ + Builder setSchemaUpdateOptions(List schemaUpdateOptions); + + /** + * [Experimental] Sets automatic inference of the options and schema for CSV and JSON sources. + */ + Builder setAutodetect(Boolean autodetect); + + LoadConfiguration build(); + } + + + /** + * Returns the destination table to load the data into. + */ + TableId getDestinationTable(); + + EncryptionConfiguration getDestinationEncryptionConfiguration(); + + + /** + * Returns whether the job is allowed to create new tables. + * + * @see + * Create Disposition + */ + CreateDisposition getCreateDisposition(); + + + /** + * Returns the action that should occur if the destination table already exists. + * + * @see + * Write Disposition + */ + WriteDisposition getWriteDisposition(); + + + /** + * Returns the string that represents a null value in a CSV file. + * + * @see + * Null Marker + */ + String getNullMarker(); + + + /** + * Returns additional properties used to parse CSV data (used when {@link #getFormat()} is set + * to CSV). Returns {@code null} if not set. + */ + CsvOptions getCsvOptions(); + + + /** + * Returns the maximum number of bad records that BigQuery can ignore when running the job. If the + * number of bad records exceeds this value, an invalid error is returned in the job result. + * By default no bad record is ignored. + */ + Integer getMaxBadRecords(); + + + /** + * Returns the schema for the destination table, if set. Returns {@code null} otherwise. + */ + Schema getSchema(); + + + /** + * Returns the format of the data files. + */ + String getFormat(); + + /** + * Returns whether BigQuery should allow extra values that are not represented in the table + * schema. If {@code true}, the extra values are ignored. If {@code true}, records with extra + * columns are treated as bad records, and if there are too many bad records, an invalid error is + * returned in the job result. By default unknown values are not allowed. + */ + Boolean ignoreUnknownValues(); + + + /** + * Returns additional options used to load from a Cloud datastore backup. + */ + DatastoreBackupOptions getDatastoreBackupOptions(); + + /** + * [Experimental] Returns options allowing the schema of the destination table to be updated as a side effect of the + * load job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when + * writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition + * decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. + */ + List getSchemaUpdateOptions(); + + /** + * [Experimental] Returns whether automatic inference of the options and schema for CSV and JSON sources is set. + */ + Boolean getAutodetect(); + + /** + * Returns a builder for the load configuration object. + */ + Builder toBuilder(); +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java new file mode 100644 index 000000000000..3d0f41135c6f --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -0,0 +1,518 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.JobConfigurationLoad; +import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.collect.ImmutableList; +import com.google.common.primitives.Ints; +import java.util.List; +import java.util.Objects; + +/** + * Google BigQuery load job configuration. A load job loads data from one of several formats into a + * table. Data is provided as URIs that point to objects in Google Cloud Storage. Load job + * configurations have {@link JobConfiguration.Type#LOAD} type. + */ +public final class LoadJobConfiguration extends JobConfiguration implements LoadConfiguration { + + private static final long serialVersionUID = -2673554846792429829L; + + private final List sourceUris; + private final TableId destinationTable; + private final EncryptionConfiguration destinationEncryptionConfiguration; + private final JobInfo.CreateDisposition createDisposition; + private final JobInfo.WriteDisposition writeDisposition; + private final FormatOptions formatOptions; + private final String nullMarker; + private final Integer maxBadRecords; + private final Schema schema; + private final Boolean ignoreUnknownValues; + private final List schemaUpdateOptions; + private final Boolean autodetect; + + public static final class Builder + extends JobConfiguration.Builder + implements LoadConfiguration.Builder { + + private List sourceUris; + private TableId destinationTable; + private EncryptionConfiguration destinationEncryptionConfiguration; + private JobInfo.CreateDisposition createDisposition; + private JobInfo.WriteDisposition writeDisposition; + private FormatOptions formatOptions; + private String nullMarker; + private Integer maxBadRecords; + private Schema schema; + private Boolean ignoreUnknownValues; + private List projectionFields; + private List schemaUpdateOptions; + private Boolean autodetect; + + private Builder() { + super(Type.LOAD); + } + + private Builder(LoadJobConfiguration loadConfiguration) { + this(); + this.destinationTable = loadConfiguration.destinationTable; + this.createDisposition = loadConfiguration.createDisposition; + this.writeDisposition = loadConfiguration.writeDisposition; + this.formatOptions = loadConfiguration.formatOptions; + this.nullMarker = loadConfiguration.nullMarker; + this.maxBadRecords = loadConfiguration.maxBadRecords; + this.schema = loadConfiguration.schema; + this.ignoreUnknownValues = loadConfiguration.ignoreUnknownValues; + this.sourceUris = loadConfiguration.sourceUris; + this.schemaUpdateOptions = loadConfiguration.schemaUpdateOptions; + this.autodetect = loadConfiguration.autodetect; + this.destinationEncryptionConfiguration = + loadConfiguration.destinationEncryptionConfiguration; + } + + private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { + this(); + JobConfigurationLoad loadConfigurationPb = configurationPb.getLoad(); + this.destinationTable = TableId.fromPb(loadConfigurationPb.getDestinationTable()); + if (loadConfigurationPb.getCreateDisposition() != null) { + this.createDisposition = + JobInfo.CreateDisposition.valueOf(loadConfigurationPb.getCreateDisposition()); + } + if (loadConfigurationPb.getWriteDisposition() != null) { + this.writeDisposition = + JobInfo.WriteDisposition.valueOf(loadConfigurationPb.getWriteDisposition()); + } + if (loadConfigurationPb.getSourceFormat() != null) { + this.formatOptions = FormatOptions.of(loadConfigurationPb.getSourceFormat()); + } + if (loadConfigurationPb.getNullMarker() != null) { + this.nullMarker = loadConfigurationPb.getNullMarker(); + } + if (loadConfigurationPb.getAllowJaggedRows() != null + || loadConfigurationPb.getAllowQuotedNewlines() != null + || loadConfigurationPb.getEncoding() != null + || loadConfigurationPb.getFieldDelimiter() != null + || loadConfigurationPb.getQuote() != null + || loadConfigurationPb.getSkipLeadingRows() != null) { + CsvOptions.Builder builder = CsvOptions.newBuilder() + .setEncoding(loadConfigurationPb.getEncoding()) + .setFieldDelimiter(loadConfigurationPb.getFieldDelimiter()) + .setQuote(loadConfigurationPb.getQuote()); + if (loadConfigurationPb.getAllowJaggedRows() != null) { + builder.setAllowJaggedRows(loadConfigurationPb.getAllowJaggedRows()); + } + if (loadConfigurationPb.getAllowQuotedNewlines() != null) { + builder.setAllowQuotedNewLines(loadConfigurationPb.getAllowQuotedNewlines()); + } + if (loadConfigurationPb.getSkipLeadingRows() != null) { + builder.setSkipLeadingRows(loadConfigurationPb.getSkipLeadingRows()); + } + this.formatOptions = builder.build(); + } + this.maxBadRecords = loadConfigurationPb.getMaxBadRecords(); + if (loadConfigurationPb.getSchema() != null) { + this.schema = Schema.fromPb(loadConfigurationPb.getSchema()); + } + this.ignoreUnknownValues = loadConfigurationPb.getIgnoreUnknownValues(); + this.projectionFields = loadConfigurationPb.getProjectionFields(); + if (loadConfigurationPb.getSourceUris() != null) { + this.sourceUris = ImmutableList.copyOf(configurationPb.getLoad().getSourceUris()); + } + if (loadConfigurationPb.getSchemaUpdateOptions() != null) { + ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); + for (String rawSchemaUpdateOption : loadConfigurationPb.getSchemaUpdateOptions()) { + schemaUpdateOptionsBuilder.add(JobInfo.SchemaUpdateOption.valueOf(rawSchemaUpdateOption)); + } + this.schemaUpdateOptions = schemaUpdateOptionsBuilder.build(); + } + this.autodetect = loadConfigurationPb.getAutodetect(); + if (loadConfigurationPb.getDestinationEncryptionConfiguration() != null) { + this.destinationEncryptionConfiguration = new EncryptionConfiguration.Builder( + loadConfigurationPb.getDestinationEncryptionConfiguration()).build(); + } + } + + + @Override + public Builder setDestinationTable(TableId destinationTable) { + this.destinationTable = destinationTable; + return this; + } + + @Override + public Builder setDestinationEncryptionConfiguration( + EncryptionConfiguration encryptionConfiguration) { + this.destinationEncryptionConfiguration = encryptionConfiguration; + return this; + } + + + @Override + public Builder setCreateDisposition(JobInfo.CreateDisposition createDisposition) { + this.createDisposition = createDisposition; + return this; + } + + + @Override + public Builder setWriteDisposition(JobInfo.WriteDisposition writeDisposition) { + this.writeDisposition = writeDisposition; + return this; + } + + + @Override + public Builder setFormatOptions(FormatOptions formatOptions) { + this.formatOptions = formatOptions; + return this; + } + + + @Override + public Builder setNullMarker(String nullMarker) { + this.nullMarker = nullMarker; + return this; + } + + + @Override + public Builder setMaxBadRecords(Integer maxBadRecords) { + this.maxBadRecords = maxBadRecords; + return this; + } + + + @Override + public Builder setSchema(Schema schema) { + this.schema = schema; + return this; + } + + + @Override + public Builder setIgnoreUnknownValues(Boolean ignoreUnknownValues) { + this.ignoreUnknownValues = ignoreUnknownValues; + return this; + } + + /** + * Sets the fully-qualified URIs that point to source data in Google Cloud Storage (e.g. + * gs://bucket/path). Each URI can contain one '*' wildcard character and it must come after the + * 'bucket' name. + */ + public Builder setSourceUris(List sourceUris) { + this.sourceUris = ImmutableList.copyOf(checkNotNull(sourceUris)); + return this; + } + + public Builder setAutodetect(Boolean autodetect) { + this.autodetect = autodetect; + return this; + } + + @Override + public Builder setSchemaUpdateOptions(List schemaUpdateOptions) { + this.schemaUpdateOptions = + schemaUpdateOptions != null ? ImmutableList.copyOf(schemaUpdateOptions) : null; + return this; + } + + @Override + public LoadJobConfiguration build() { + return new LoadJobConfiguration(this); + } + } + + private LoadJobConfiguration(Builder builder) { + super(builder); + this.sourceUris = builder.sourceUris; + this.destinationTable = builder.destinationTable; + this.createDisposition = builder.createDisposition; + this.writeDisposition = builder.writeDisposition; + this.formatOptions = builder.formatOptions; + this.nullMarker = builder.nullMarker; + this.maxBadRecords = builder.maxBadRecords; + this.schema = builder.schema; + this.ignoreUnknownValues = builder.ignoreUnknownValues; + this.schemaUpdateOptions = builder.schemaUpdateOptions; + this.autodetect = builder.autodetect; + this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; + } + + + @Override + public TableId getDestinationTable() { + return destinationTable; + } + + + @Override + public EncryptionConfiguration getDestinationEncryptionConfiguration() { + return destinationEncryptionConfiguration; + } + + + @Override + public JobInfo.CreateDisposition getCreateDisposition() { + return this.createDisposition; + } + + + @Override + public JobInfo.WriteDisposition getWriteDisposition() { + return writeDisposition; + } + + + @Override + public String getNullMarker() { + return nullMarker; + } + + + @Override + public CsvOptions getCsvOptions() { + return formatOptions instanceof CsvOptions ? (CsvOptions) formatOptions : null; + } + + @Override + public DatastoreBackupOptions getDatastoreBackupOptions() { + return formatOptions instanceof DatastoreBackupOptions ? + (DatastoreBackupOptions) formatOptions : null; + } + + + @Override + public String getFormat() { + return formatOptions != null ? formatOptions.getType() : null; + } + + + @Override + public Integer getMaxBadRecords() { + return maxBadRecords; + } + + + @Override + public Schema getSchema() { + return schema; + } + + @Override + public Boolean ignoreUnknownValues() { + return ignoreUnknownValues; + } + + /** + * Returns the fully-qualified URIs that point to source data in Google Cloud Storage (e.g. + * gs://bucket/path). Each URI can contain one '*' wildcard character and it must come after the + * 'bucket' name. + */ + public List getSourceUris() { + return sourceUris; + } + + public Boolean getAutodetect() { + return autodetect; + } + + @Override + public List getSchemaUpdateOptions() { + return schemaUpdateOptions; + } + + @Override + public Builder toBuilder() { + return new Builder(this); + } + + @Override + ToStringHelper toStringHelper() { + return super.toStringHelper() + .add("destinationTable", destinationTable) + .add("destinationEncryptionConfiguration", destinationEncryptionConfiguration) + .add("createDisposition", createDisposition) + .add("writeDisposition", writeDisposition) + .add("formatOptions", formatOptions) + .add("nullMarker", nullMarker) + .add("maxBadRecords", maxBadRecords) + .add("schema", schema) + .add("ignoreUnknownValue", ignoreUnknownValues) + .add("sourceUris", sourceUris) + .add("schemaUpdateOptions", schemaUpdateOptions) + .add("autodetect", autodetect); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof LoadJobConfiguration + && baseEquals((LoadJobConfiguration) obj); + } + + @Override + public int hashCode() { + return Objects.hash(baseHashCode(), sourceUris); + } + + @Override + LoadJobConfiguration setProjectId(String projectId) { + return toBuilder().setDestinationTable(getDestinationTable().setProjectId(projectId)).build(); + } + + @Override + com.google.api.services.bigquery.model.JobConfiguration toPb() { + JobConfigurationLoad loadConfigurationPb = new JobConfigurationLoad(); + loadConfigurationPb.setDestinationTable(destinationTable.toPb()); + if (createDisposition != null) { + loadConfigurationPb.setCreateDisposition(createDisposition.toString()); + } + if (writeDisposition != null) { + loadConfigurationPb.setWriteDisposition(writeDisposition.toString()); + } + if (nullMarker != null) { + loadConfigurationPb.setNullMarker(nullMarker); + } + if (getCsvOptions() != null) { + CsvOptions csvOptions = getCsvOptions(); + loadConfigurationPb.setFieldDelimiter(csvOptions.getFieldDelimiter()) + .setAllowJaggedRows(csvOptions.allowJaggedRows()) + .setAllowQuotedNewlines(csvOptions.allowQuotedNewLines()) + .setEncoding(csvOptions.getEncoding()) + .setQuote(csvOptions.getQuote()); + if (csvOptions.getSkipLeadingRows() != null) { + // todo(mziccard) remove checked cast or comment when #1044 is closed + loadConfigurationPb.setSkipLeadingRows(Ints.checkedCast(csvOptions.getSkipLeadingRows())); + } + } + if (schema != null) { + loadConfigurationPb.setSchema(schema.toPb()); + } + if (formatOptions != null) { + loadConfigurationPb.setSourceFormat(formatOptions.getType()); + } + loadConfigurationPb.setMaxBadRecords(maxBadRecords); + loadConfigurationPb.setIgnoreUnknownValues(ignoreUnknownValues); + if (getDatastoreBackupOptions() != null) { + DatastoreBackupOptions backOptions = getDatastoreBackupOptions(); + loadConfigurationPb.setProjectionFields(backOptions.getProjectionFields()); + } + if (sourceUris != null) { + loadConfigurationPb.setSourceUris(ImmutableList.copyOf(sourceUris)); + } + if (schemaUpdateOptions != null) { + ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); + for (JobInfo.SchemaUpdateOption schemaUpdateOption : schemaUpdateOptions) { + schemaUpdateOptionsBuilder.add(schemaUpdateOption.name()); + } + loadConfigurationPb.setSchemaUpdateOptions(schemaUpdateOptionsBuilder.build()); + } + loadConfigurationPb.setAutodetect(autodetect); + if (destinationEncryptionConfiguration != null) { + loadConfigurationPb.setDestinationEncryptionConfiguration( + destinationEncryptionConfiguration.toPb()); + } + return new com.google.api.services.bigquery.model.JobConfiguration() + .setLoad(loadConfigurationPb); + } + + + /** + * Creates a builder for a BigQuery Load Job configuration given the destination table and source + * URIs. + */ + public static Builder newBuilder(TableId destinationTable, List sourceUris) { + return new Builder().setDestinationTable(destinationTable).setSourceUris(sourceUris); + } + + /** + * Creates a builder for a BigQuery Load Job configuration given the destination table and source + * URI. + */ + public static Builder builder(TableId destinationTable, String sourceUri) { + return newBuilder(destinationTable, ImmutableList.of(sourceUri)); + } + + /** + * Creates a builder for a BigQuery Load Job configuration given the destination table and source + * URI. + */ + public static Builder newBuilder(TableId destinationTable, String sourceUri) { + return newBuilder(destinationTable, ImmutableList.of(sourceUri)); + } + + + /** + * Creates a builder for a BigQuery Load Job configuration given the destination table, format and + * source URIs. + */ + public static Builder newBuilder(TableId destinationTable, List sourceUris, + FormatOptions format) { + return newBuilder(destinationTable, sourceUris).setFormatOptions(format); + } + + + /** + * Creates a builder for a BigQuery Load Job configuration given the destination table, format and + * source URI. + */ + public static Builder newBuilder(TableId destinationTable, String sourceUri, + FormatOptions format) { + return newBuilder(destinationTable, ImmutableList.of(sourceUri), format); + } + + /** + * Returns a BigQuery Load Job Configuration for the given destination table and source URIs. + */ + public static LoadJobConfiguration of(TableId destinationTable, List sourceUris) { + return newBuilder(destinationTable, sourceUris).build(); + } + + /** + * Returns a BigQuery Load Job Configuration for the given destination table and source URI. + */ + public static LoadJobConfiguration of(TableId destinationTable, String sourceUri) { + return of(destinationTable, ImmutableList.of(sourceUri)); + } + + /** + * Returns a BigQuery Load Job Configuration for the given destination table, format and source + * URI. + */ + public static LoadJobConfiguration of(TableId destinationTable, List sourceUris, + FormatOptions format) { + return newBuilder(destinationTable, sourceUris, format).build(); + } + + /** + * Returns a BigQuery Load Job Configuration for the given destination table, format and source + * URI. + */ + public static LoadJobConfiguration of(TableId destinationTable, String sourceUri, + FormatOptions format) { + return of(destinationTable, ImmutableList.of(sourceUri), format); + } + + @SuppressWarnings("unchecked") + static LoadJobConfiguration fromPb( + com.google.api.services.bigquery.model.JobConfiguration confPb) { + return new Builder(confPb).build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java new file mode 100644 index 000000000000..524c5cc618b0 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java @@ -0,0 +1,71 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.common.base.MoreObjects; + +import java.io.Serializable; +import java.util.Objects; + +/** + * Base class for BigQuery operation option. + */ +abstract class Option implements Serializable { + + private static final long serialVersionUID = -6647817677804099207L; + + private final BigQueryRpc.Option rpcOption; + private final Object value; + + Option(BigQueryRpc.Option rpcOption, Object value) { + this.rpcOption = checkNotNull(rpcOption); + this.value = value; + } + + BigQueryRpc.Option getRpcOption() { + return rpcOption; + } + + Object getValue() { + return value; + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof Option)) { + return false; + } + Option other = (Option) obj; + return Objects.equals(rpcOption, other.rpcOption) && Objects.equals(value, other.value); + } + + @Override + public int hashCode() { + return Objects.hash(rpcOption, value); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("name", rpcOption.value()) + .add("value", value) + .toString(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java new file mode 100644 index 000000000000..724cc2b7403d --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -0,0 +1,873 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.JobConfigurationQuery; +import com.google.api.services.bigquery.model.QueryParameter; +import com.google.cloud.bigquery.JobInfo.CreateDisposition; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; + +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * Google BigQuery Query Job configuration. A Query Job runs a query against BigQuery data. Query + * job configurations have {@link JobConfiguration.Type#QUERY} type. + */ +public final class QueryJobConfiguration extends JobConfiguration { + + private static final long serialVersionUID = -1108948249081804890L; + + private final String query; + private final ImmutableList positionalParameters; + private final ImmutableMap namedParameters; + private final TableId destinationTable; + private final Map tableDefinitions; + private final List userDefinedFunctions; + private final CreateDisposition createDisposition; + private final WriteDisposition writeDisposition; + private final DatasetId defaultDataset; + private final Priority priority; + private final Boolean allowLargeResults; + private final Boolean useQueryCache; + private final Boolean flattenResults; + private final Boolean dryRun; + private final Boolean useLegacySql; + private final Integer maximumBillingTier; + private final List schemaUpdateOptions; + private final EncryptionConfiguration destinationEncryptionConfiguration; + + /** + * Priority levels for a query. If not specified the priority is assumed to be + * {@link Priority#INTERACTIVE}. + */ + public enum Priority { + /** + * Query is executed as soon as possible and count towards the + * concurrent rate limit and the daily + * rate limit. + */ + INTERACTIVE, + + /** + * Query is queued and started as soon as idle resources are available, usually within a few + * minutes. If the query hasn't started within 3 hours, its priority is changed to + * {@link Priority#INTERACTIVE}. + */ + BATCH + } + + public static final class Builder + extends JobConfiguration.Builder { + + private String query; + private List positionalParameters = Lists.newArrayList(); + private Map namedParameters = Maps.newHashMap(); + private TableId destinationTable; + private Map tableDefinitions; + private List userDefinedFunctions; + private CreateDisposition createDisposition; + private WriteDisposition writeDisposition; + private DatasetId defaultDataset; + private Priority priority; + private Boolean allowLargeResults; + private Boolean useQueryCache; + private Boolean flattenResults; + private Boolean dryRun; + private Boolean useLegacySql = false; + private Integer maximumBillingTier; + private List schemaUpdateOptions; + private EncryptionConfiguration destinationEncryptionConfiguration; + + private Builder() { + super(Type.QUERY); + } + + private Builder(QueryJobConfiguration jobConfiguration) { + this(); + this.query = jobConfiguration.query; + this.namedParameters = jobConfiguration.namedParameters; + this.positionalParameters = jobConfiguration.positionalParameters; + this.destinationTable = jobConfiguration.destinationTable; + this.tableDefinitions = jobConfiguration.tableDefinitions; + this.userDefinedFunctions = jobConfiguration.userDefinedFunctions; + this.createDisposition = jobConfiguration.createDisposition; + this.writeDisposition = jobConfiguration.writeDisposition; + this.defaultDataset = jobConfiguration.defaultDataset; + this.priority = jobConfiguration.priority; + this.allowLargeResults = jobConfiguration.allowLargeResults; + this.useQueryCache = jobConfiguration.useQueryCache; + this.flattenResults = jobConfiguration.flattenResults; + this.dryRun = jobConfiguration.dryRun; + this.useLegacySql = jobConfiguration.useLegacySql; + this.maximumBillingTier = jobConfiguration.maximumBillingTier; + this.schemaUpdateOptions = jobConfiguration.schemaUpdateOptions; + this.destinationEncryptionConfiguration = jobConfiguration.destinationEncryptionConfiguration; + } + + private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { + this(); + JobConfigurationQuery queryConfigurationPb = configurationPb.getQuery(); + this.query = queryConfigurationPb.getQuery(); + if (queryConfigurationPb.getQueryParameters() != null && !queryConfigurationPb.getQueryParameters().isEmpty()) { + if (queryConfigurationPb.getQueryParameters().get(0).getName() == null) { + setPositionalParameters( + Lists.transform(queryConfigurationPb.getQueryParameters(), POSITIONAL_PARAMETER_FROM_PB_FUNCTION)); + } else { + Map values = Maps.newHashMap(); + for (QueryParameter queryParameterPb : queryConfigurationPb.getQueryParameters()) { + checkNotNull(queryParameterPb.getName()); + QueryParameterValue value = QueryParameterValue.fromPb( + queryParameterPb.getParameterValue(), queryParameterPb.getParameterType()); + values.put(queryParameterPb.getName(), value); + } + setNamedParameters(values); + } + } + allowLargeResults = queryConfigurationPb.getAllowLargeResults(); + useQueryCache = queryConfigurationPb.getUseQueryCache(); + flattenResults = queryConfigurationPb.getFlattenResults(); + useLegacySql = queryConfigurationPb.getUseLegacySql(); + if (queryConfigurationPb.getMaximumBillingTier() != null) { + maximumBillingTier = queryConfigurationPb.getMaximumBillingTier(); + } + dryRun = configurationPb.getDryRun(); + if (queryConfigurationPb.getDestinationTable() != null) { + destinationTable = TableId.fromPb(queryConfigurationPb.getDestinationTable()); + } + if (queryConfigurationPb.getDefaultDataset() != null) { + defaultDataset = DatasetId.fromPb(queryConfigurationPb.getDefaultDataset()); + } + if (queryConfigurationPb.getPriority() != null) { + priority = Priority.valueOf(queryConfigurationPb.getPriority()); + } + if (queryConfigurationPb.getTableDefinitions() != null) { + tableDefinitions = Maps.transformValues(queryConfigurationPb.getTableDefinitions(), + ExternalTableDefinition.FROM_EXTERNAL_DATA_FUNCTION); + } + if (queryConfigurationPb.getUserDefinedFunctionResources() != null) { + userDefinedFunctions = Lists.transform( + queryConfigurationPb.getUserDefinedFunctionResources(), + UserDefinedFunction.FROM_PB_FUNCTION); + } + if (queryConfigurationPb.getCreateDisposition() != null) { + createDisposition = + CreateDisposition.valueOf(queryConfigurationPb.getCreateDisposition()); + } + if (queryConfigurationPb.getWriteDisposition() != null) { + writeDisposition = + WriteDisposition.valueOf(queryConfigurationPb.getWriteDisposition()); + } + if (queryConfigurationPb.getSchemaUpdateOptions() != null) { + ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); + for (String rawSchemaUpdateOption : queryConfigurationPb.getSchemaUpdateOptions()) { + schemaUpdateOptionsBuilder.add(JobInfo.SchemaUpdateOption.valueOf(rawSchemaUpdateOption)); + } + this.schemaUpdateOptions = schemaUpdateOptionsBuilder.build(); + } + if (queryConfigurationPb.getDestinationEncryptionConfiguration() != null) { + this.destinationEncryptionConfiguration = new EncryptionConfiguration.Builder( + queryConfigurationPb.getDestinationEncryptionConfiguration()).build(); + } + } + + + /** + * Sets the BigQuery SQL query to execute. + */ + public Builder setQuery(String query) { + this.query = query; + return this; + } + + + /** + * Adds a positional query parameter to the list of query parameters. See + * {@link #setPositionalParameters(Iterable)} for more details on the input requirements. + * + *

A positional parameter cannot be added after named parameters have been added. + */ + public Builder addPositionalParameter(QueryParameterValue value) { + checkNotNull(value); + if (!namedParameters.isEmpty()) { + throw new IllegalStateException( + "Positional parameters can't be combined with named parameters"); + } + positionalParameters.add(value); + return this; + } + + /** + * Sets the query parameters to a list of positional query parameters to use in the query. + * + *

The set of query parameters must either be all positional or all named parameters. + * Positional parameters are denoted in the query with a question mark (?). + * + *

Additionally, useLegacySql must be set to false; query parameters cannot be used with + * legacy SQL. + * + *

The values parameter can be set to null to clear out the positional + * parameters so that named parameters can be used instead. + */ + public Builder setPositionalParameters(Iterable values) { + if (values == null || Iterables.isEmpty(values)) { + positionalParameters = Lists.newArrayList(); + } else { + if (!this.namedParameters.isEmpty()) { + throw new IllegalStateException( + "Positional parameters can't be combined with named parameters"); + } + this.positionalParameters = Lists.newArrayList(values); + } + return this; + } + + /** + * Adds a named query parameter to the set of query parameters. See + * {@link #setNamedParameters(Map)} for more details on the input requirements. + * + *

A named parameter cannot be added after positional parameters have been added. + */ + public Builder addNamedParameter(String name, QueryParameterValue value) { + checkNotNull(value); + if (!this.positionalParameters.isEmpty()) { + throw new IllegalStateException( + "Named parameters can't be combined with positional parameters"); + } + namedParameters.put(name, value); + return this; + } + + /** + * Sets the query parameters to a set of named query parameters to use in the query. + * + *

The set of query parameters must either be all positional or all named parameters. Named + * parameters are denoted using an @ prefix, e.g. @myParam for a parameter named "myParam". + * + *

Additionally, useLegacySql must be set to false; query parameters cannot be used with + * legacy SQL. + * + *

The values parameter can be set to null to clear out the named parameters so that + * positional parameters can be used instead. + */ + public Builder setNamedParameters(Map values) { + if (values == null || values.isEmpty()) { + namedParameters = Maps.newHashMap(); + } else { + if (!this.positionalParameters.isEmpty()) { + throw new IllegalStateException( + "Named parameters can't be combined with positional parameters"); + } + this.namedParameters = Maps.newHashMap(values); + } + return this; + } + + /** + * Sets the table where to put query results. If not provided a new table is created. This value + * is required if {@link Builder#setAllowLargeResults(Boolean)} is set to {@code true}. + */ + public Builder setDestinationTable(TableId destinationTable) { + this.destinationTable = destinationTable; + return this; + } + + + public Builder setDestinationEncryptionConfiguration( + EncryptionConfiguration encryptionConfiguration) { + this.destinationEncryptionConfiguration = encryptionConfiguration; + return this; + } + + /** + * Sets the external tables definitions. If querying external data sources outside of BigQuery, + * this value describes the data format, location and other properties of the data + * sources. By defining these properties, the data sources can be queried as if they were + * standard BigQuery tables. + */ + public Builder setTableDefinitions(Map tableDefinitions) { + this.tableDefinitions = tableDefinitions != null ? Maps.newHashMap(tableDefinitions) : null; + return this; + } + + /** + * Adds a new external table definition. If a definition already exists for {@code tableName} + * it is updated. + * + * @param tableName name of the table + * @param tableDefinition external data configuration for the table used by this query + */ + public Builder addTableDefinition(String tableName, ExternalTableDefinition tableDefinition) { + if (this.tableDefinitions == null) { + this.tableDefinitions = Maps.newHashMap(); + } + this.tableDefinitions.put(checkNotNull(tableName), checkNotNull(tableDefinition)); + return this; + } + + + /** + * Sets user defined function resources that can be used by this query. Function resources + * can either be defined inline ({@link UserDefinedFunction#inline(String)}) or loaded from + * a Google Cloud Storage URI ({@link UserDefinedFunction#fromUri(String)}. + */ + public Builder setUserDefinedFunctions(List userDefinedFunctions) { + this.userDefinedFunctions = + userDefinedFunctions != null ? ImmutableList.copyOf(userDefinedFunctions) : null; + return this; + } + + + /** + * Sets whether the job is allowed to create tables. + * + * @see + * Create Disposition + */ + public Builder setCreateDisposition(CreateDisposition createDisposition) { + this.createDisposition = createDisposition; + return this; + } + + + /** + * Sets the action that should occur if the destination table already exists. + * + * @see + * Write Disposition + */ + public Builder setWriteDisposition(WriteDisposition writeDisposition) { + this.writeDisposition = writeDisposition; + return this; + } + + + /** + * Sets the default dataset. This dataset is used for all unqualified table names used in the + * query. + */ + public Builder setDefaultDataset(DatasetId defaultDataset) { + this.defaultDataset = defaultDataset; + return this; + } + + + /** + * Sets the default dataset. This dataset is used for all unqualified table names used in the + * query. + */ + public Builder setDefaultDataset(String defaultDataset) { + return setDefaultDataset(DatasetId.of(defaultDataset)); + } + + + /** + * Sets a priority for the query. If not specified the priority is assumed to be + * {@link Priority#INTERACTIVE}. + */ + public Builder setPriority(Priority priority) { + this.priority = priority; + return this; + } + + + /** + * Sets whether the job is enabled to create arbitrarily large results. If {@code true} + * the query is allowed to create large results at a slight cost in performance. If {@code true} + * {@link Builder#setDestinationTable(TableId)} must be provided. + * + * @see + * Returning Large Query Results + */ + public Builder setAllowLargeResults(Boolean allowLargeResults) { + this.allowLargeResults = allowLargeResults; + return this; + } + + + /** + * Sets whether to look for the result in the query cache. The query cache is a best-effort + * cache that will be flushed whenever tables in the query are modified. Moreover, the query + * cache is only available when {@link Builder#setDestinationTable(TableId)} is not set. + * + * @see Query Caching + */ + public Builder setUseQueryCache(Boolean useQueryCache) { + this.useQueryCache = useQueryCache; + return this; + } + + + /** + * Sets whether nested and repeated fields should be flattened. If set to {@code false} + * {@link Builder#setAllowLargeResults(Boolean)} must be {@code true}. By default results are + * flattened. + * + * @see Flatten + */ + public Builder setFlattenResults(Boolean flattenResults) { + this.flattenResults = flattenResults; + return this; + } + + + /** + * Sets whether the job has to be dry run or not. If set, the job is not executed. A valid query + * will return a mostly empty response with some processing statistics, while an invalid query + * will return the same error it would if it wasn't a dry run. + */ + public Builder setDryRun(Boolean dryRun) { + this.dryRun = dryRun; + return this; + } + + + /** + * Sets whether to use BigQuery's legacy SQL dialect for this query. By default this property is + * set to {@code false}. If set to {@code false}, the query will use BigQuery's + * Standard SQL. When set to + * {@code false}, the values of {@link #setAllowLargeResults(Boolean)} and + * {@link #setFlattenResults(Boolean)} are ignored; query will be run as if + * {@link #setAllowLargeResults(Boolean)} is {@code true} and {@link #setFlattenResults(Boolean)} + * is {@code false}. + * + * If set to {@code null} or {@code true}, legacy SQL dialect is used. This property is + * experimental and might be subject to change. + */ + public Builder setUseLegacySql(Boolean useLegacySql) { + this.useLegacySql = useLegacySql; + return this; + } + + /** + * Limits the billing tier for this job. Queries that have resource usage beyond this tier will fail + * (without incurring a charge). If unspecified, this will be set to your project default. + + * @param maximumBillingTier maximum billing tier for this job + */ + public Builder setMaximumBillingTier(Integer maximumBillingTier) { + this.maximumBillingTier = maximumBillingTier; + return this; + } + + + /** + * [Experimental] Sets options allowing the schema of the destination table to be updated as a side effect of the + * query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when + * writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition + * decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. + */ + public Builder setSchemaUpdateOptions(List schemaUpdateOptions) { + this.schemaUpdateOptions = schemaUpdateOptions; + return this; + } + + public QueryJobConfiguration build() { + return new QueryJobConfiguration(this); + } + } + + private QueryJobConfiguration(Builder builder) { + super(builder); + this.query = checkNotNull(builder.query); + checkNotNull(builder.positionalParameters); + checkNotNull(builder.namedParameters); + if (!builder.positionalParameters.isEmpty()) { + checkArgument(builder.namedParameters.isEmpty()); + } + if (!builder.namedParameters.isEmpty()) { + checkArgument(builder.positionalParameters.isEmpty()); + } + positionalParameters = ImmutableList.copyOf(builder.positionalParameters); + namedParameters = ImmutableMap.copyOf(builder.namedParameters); + this.allowLargeResults = builder.allowLargeResults; + this.createDisposition = builder.createDisposition; + this.defaultDataset = builder.defaultDataset; + this.destinationTable = builder.destinationTable; + this.flattenResults = builder.flattenResults; + this.priority = builder.priority; + this.useQueryCache = builder.useQueryCache; + this.userDefinedFunctions = builder.userDefinedFunctions; + this.writeDisposition = builder.writeDisposition; + this.tableDefinitions = + builder.tableDefinitions != null ? ImmutableMap.copyOf(builder.tableDefinitions) : null; + this.dryRun = builder.dryRun; + this.useLegacySql = builder.useLegacySql; + this.maximumBillingTier = builder.maximumBillingTier; + this.schemaUpdateOptions = builder.schemaUpdateOptions; + this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; + } + + /** + * Returns whether the job is enabled to create arbitrarily large results. If {@code true} + * the query is allowed to create large results at a slight cost in performance. + * the query is allowed to create large results at a slight cost in performance. + * + * @see + * Returning Large Query Results + */ + public Boolean allowLargeResults() { + return allowLargeResults; + } + + + /** + * Returns whether the job is allowed to create new tables. + * + * @see + * Create Disposition + */ + public CreateDisposition getCreateDisposition() { + return createDisposition; + } + + + /** + * Returns the default dataset. This dataset is used for all unqualified table names used in the + * query. + */ + public DatasetId getDefaultDataset() { + return defaultDataset; + } + + + /** + * Returns the table where to put query results. If not provided a new table is created. This + * value is required if {@link #allowLargeResults()} is {@code true}. + */ + public TableId getDestinationTable() { + return destinationTable; + } + + public EncryptionConfiguration getDestinationEncryptionConfiguration() { + return destinationEncryptionConfiguration; + } + + /** + * Returns whether nested and repeated fields should be flattened. If set to {@code false} + * {@link Builder#setAllowLargeResults(Boolean)} must be {@code true}. + * + * @see Flatten + */ + public Boolean flattenResults() { + return flattenResults; + } + + + /** + * Returns the query priority. + */ + public Priority getPriority() { + return priority; + } + + + /** + * Returns the Google BigQuery SQL query. + */ + public String getQuery() { + return query; + } + + + /** + * Returns the positional query parameters to use for the query. + */ + public List getPositionalParameters() { + return positionalParameters; + } + + /** + * Returns the named query parameters to use for the query. + */ + public Map getNamedParameters() { + return namedParameters; + } + + + /** + * Returns the external tables definitions. If querying external data sources outside of BigQuery, + * this value describes the data format, location and other properties of the data + * sources. By defining these properties, the data sources can be queried as if they were + * standard BigQuery tables. + */ + public Map getTableDefinitions() { + return tableDefinitions; + } + + /** + * Returns whether to look for the result in the query cache. The query cache is a best-effort + * cache that will be flushed whenever tables in the query are modified. Moreover, the query + * cache is only available when {@link Builder#setDestinationTable(TableId)} is not set. + * + * @see Query Caching + */ + public Boolean useQueryCache() { + return useQueryCache; + } + + + /** + * Returns user defined function resources that can be used by this query. Function resources + * can either be defined inline ({@link UserDefinedFunction.Type#INLINE}) or loaded from + * a Google Cloud Storage URI ({@link UserDefinedFunction.Type#FROM_URI}. + */ + public List getUserDefinedFunctions() { + return userDefinedFunctions; + } + + + /** + * Returns the action that should occur if the destination table already exists. + * + * @see + * Write Disposition + */ + public WriteDisposition getWriteDisposition() { + return writeDisposition; + } + + /** + * Returns whether the job has to be dry run or not. If set, the job is not executed. A valid + * query will return a mostly empty response with some processing statistics, while an invalid + * query will return the same error it would if it wasn't a dry run. + */ + public Boolean dryRun() { + return dryRun; + } + + /** + * Returns whether to use BigQuery's legacy SQL dialect for this query. By default this property is + * set to {@code false}. If set to {@code false}, the query will use BigQuery's + * Standard SQL. + * When set to {@code false}, the values of {@link #allowLargeResults()} and + * {@link #flattenResults()} are ignored; query will be run as if {@link #allowLargeResults()} is + * {@code true} and {@link #flattenResults()} is {@code false}. If set to {@code null} or + * {@code true}, legacy SQL dialect is used. This property is experimental and might be subject + * to change. + */ + public Boolean useLegacySql() { + return useLegacySql; + } + + /** + * Returns the optional billing tier limit for this job. + */ + public Integer getMaximumBillingTier() { + return maximumBillingTier; + } + + /** + * [Experimental] Returns options allowing the schema of the destination table to be updated as a side effect of the + * query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when + * writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition + * decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. + */ + public List getSchemaUpdateOptions() { + return schemaUpdateOptions; + } + + @Override + public Builder toBuilder() { + return new Builder(this); + } + + @Override + ToStringHelper toStringHelper() { + return super.toStringHelper() + .add("query", query) + .add("positionalParameters", positionalParameters) + .add("namedParameters", namedParameters) + .add("destinationTable", destinationTable) + .add("destinationEncryptionConfiguration", destinationEncryptionConfiguration) + .add("defaultDataset", defaultDataset) + .add("allowLargeResults", allowLargeResults) + .add("flattenResults", flattenResults) + .add("priority", priority) + .add("tableDefinitions", tableDefinitions) + .add("userQueryCache", useQueryCache) + .add("userDefinedFunctions", userDefinedFunctions) + .add("createDisposition", createDisposition) + .add("writeDisposition", writeDisposition) + .add("dryRun", dryRun) + .add("useLegacySql", useLegacySql) + .add("maximumBillingTier", maximumBillingTier) + .add("schemaUpdateOptions", schemaUpdateOptions); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof QueryJobConfiguration + && baseEquals((QueryJobConfiguration) obj); + } + + @Override + public int hashCode() { + return Objects.hash(baseHashCode(), allowLargeResults, createDisposition, destinationTable, + defaultDataset, flattenResults, priority, query, positionalParameters, + namedParameters, tableDefinitions, useQueryCache, + userDefinedFunctions, writeDisposition, dryRun, useLegacySql, maximumBillingTier, + schemaUpdateOptions); + } + + @Override + QueryJobConfiguration setProjectId(String projectId) { + Builder builder = toBuilder(); + if (getDestinationTable() != null) { + builder.setDestinationTable(getDestinationTable().setProjectId(projectId)); + } + if (getDefaultDataset() != null) { + builder.setDefaultDataset(getDefaultDataset().setProjectId(projectId)); + } + return builder.build(); + } + + @Override + com.google.api.services.bigquery.model.JobConfiguration toPb() { + com.google.api.services.bigquery.model.JobConfiguration configurationPb = + new com.google.api.services.bigquery.model.JobConfiguration(); + JobConfigurationQuery queryConfigurationPb = new JobConfigurationQuery(); + queryConfigurationPb.setQuery(query); + if (!positionalParameters.isEmpty()) { + List queryParametersPb + = Lists.transform(positionalParameters, POSITIONAL_PARAMETER_TO_PB_FUNCTION); + queryConfigurationPb.setQueryParameters(queryParametersPb); + } else if (!namedParameters.isEmpty()) { + List queryParametersPb + = Lists.transform(namedParameters.entrySet().asList(), NAMED_PARAMETER_TO_PB_FUNCTION); + queryConfigurationPb.setQueryParameters(queryParametersPb); + } + configurationPb.setDryRun(dryRun()); + if (allowLargeResults != null) { + queryConfigurationPb.setAllowLargeResults(allowLargeResults); + } + if (createDisposition != null) { + queryConfigurationPb.setCreateDisposition(createDisposition.toString()); + } + if (destinationTable != null) { + queryConfigurationPb.setDestinationTable(destinationTable.toPb()); + } + if (defaultDataset != null) { + queryConfigurationPb.setDefaultDataset(defaultDataset.toPb()); + } + if (flattenResults != null) { + queryConfigurationPb.setFlattenResults(flattenResults); + } + if (priority != null) { + queryConfigurationPb.setPriority(priority.toString()); + } + if (tableDefinitions != null) { + queryConfigurationPb.setTableDefinitions(Maps.transformValues(tableDefinitions, + ExternalTableDefinition.TO_EXTERNAL_DATA_FUNCTION)); + } + if (useQueryCache != null) { + queryConfigurationPb.setUseQueryCache(useQueryCache); + } + if (userDefinedFunctions != null) { + queryConfigurationPb.setUserDefinedFunctionResources( + Lists.transform(userDefinedFunctions, UserDefinedFunction.TO_PB_FUNCTION)); + } + if (writeDisposition != null) { + queryConfigurationPb.setWriteDisposition(writeDisposition.toString()); + } + if (useLegacySql != null) { + queryConfigurationPb.setUseLegacySql(useLegacySql); + } + if (maximumBillingTier != null) { + queryConfigurationPb.setMaximumBillingTier(maximumBillingTier); + } + if (schemaUpdateOptions != null) { + ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); + for (JobInfo.SchemaUpdateOption schemaUpdateOption : schemaUpdateOptions) { + schemaUpdateOptionsBuilder.add(schemaUpdateOption.name()); + } + queryConfigurationPb.setSchemaUpdateOptions(schemaUpdateOptionsBuilder.build()); + } + if (destinationEncryptionConfiguration != null) { + queryConfigurationPb.setDestinationEncryptionConfiguration(destinationEncryptionConfiguration.toPb()); + } + return configurationPb.setQuery(queryConfigurationPb); + } + + + /** + * Creates a builder for a BigQuery Query Job given the query to be run. + */ + public static Builder newBuilder(String query) { + return new Builder().setQuery(query); + } + + /** + * Returns a BigQuery Copy Job for the given the query to be run. Job's id is chosen by the + * service. + */ + public static QueryJobConfiguration of(String query) { + return newBuilder(query).build(); + } + + @SuppressWarnings("unchecked") + static QueryJobConfiguration fromPb( + com.google.api.services.bigquery.model.JobConfiguration jobPb) { + return new Builder(jobPb).build(); + } + + private static final Function POSITIONAL_PARAMETER_FROM_PB_FUNCTION = + new Function() { + @Override + public QueryParameterValue apply(QueryParameter pb) { + checkArgument(pb.getName() == null); + return QueryParameterValue.fromPb(pb.getParameterValue(), pb.getParameterType()); + } + }; + + private static final Function POSITIONAL_PARAMETER_TO_PB_FUNCTION = + new Function() { + @Override + public QueryParameter apply(QueryParameterValue value) { + QueryParameter queryParameterPb = new QueryParameter(); + queryParameterPb.setParameterValue(value.toValuePb()); + queryParameterPb.setParameterType(value.toTypePb()); + return queryParameterPb; + } + }; + + private static final Function, QueryParameter> + NAMED_PARAMETER_TO_PB_FUNCTION = + new Function, QueryParameter>() { + @Override + public QueryParameter apply(Map.Entry entry) { + QueryParameter queryParameterPb = new QueryParameter(); + queryParameterPb.setName(entry.getKey()); + queryParameterPb.setParameterValue(entry.getValue().toValuePb()); + queryParameterPb.setParameterType(entry.getValue().toTypePb()); + return queryParameterPb; + } + }; +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java new file mode 100644 index 000000000000..3038db96e724 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -0,0 +1,375 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + + +import com.google.api.services.bigquery.model.QueryParameterType; +import com.google.auto.value.AutoValue; +import com.google.common.base.Function; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import com.google.common.io.BaseEncoding; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import javax.annotation.Nullable; +import org.joda.time.DateTimeZone; +import org.joda.time.format.DateTimeFormat; +import org.joda.time.format.DateTimeFormatter; + +/** + * A value for a QueryParameter along with its type. + * + *

A static factory method is provided for each of the possible types (e.g. {@link #int64(Long)} + * for StandardSQLTypeName.INT64). Alternatively, an instance can be constructed by calling {@link + * #of(Object, Class)} with the value and a Class object, which will use these mappings: + * + *

+ * + *

    + *
  • Boolean: StandardSQLTypeName.BOOL + *
  • String: StandardSQLTypeName.STRING + *
  • Integer: StandardSQLTypeName.INT64 + *
  • Long: StandardSQLTypeName.INT64 + *
  • Double: StandardSQLTypeName.FLOAT64 + *
  • Float: StandardSQLTypeName.FLOAT64 + *
+ * + *

No other types are supported through that entry point. The other types can be created by + * calling {@link #of(Object, StandardSQLTypeName)} with the value and a particular + * StandardSQLTypeName enum value. + * + *

Struct parameters are currently not supported. + */ +@AutoValue +public abstract class QueryParameterValue implements Serializable { + + private static final DateTimeFormatter timestampFormatter = + DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSSSSSZZ").withZone(DateTimeZone.UTC); + private static final DateTimeFormatter dateFormatter = DateTimeFormat.forPattern("yyyy-MM-dd"); + private static final DateTimeFormatter timeFormatter = + DateTimeFormat.forPattern("HH:mm:ss.SSSSSS"); + private static final DateTimeFormatter datetimeFormatter = + DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSSSSS"); + + static final Function< + QueryParameterValue, com.google.api.services.bigquery.model.QueryParameterValue> + TO_VALUE_PB_FUNCTION = + new Function< + QueryParameterValue, com.google.api.services.bigquery.model.QueryParameterValue>() { + @Override + public com.google.api.services.bigquery.model.QueryParameterValue apply( + QueryParameterValue value) { + return value.toValuePb(); + } + }; + private static final long serialVersionUID = -5620695863123562896L; + + @AutoValue.Builder + public abstract static class Builder { + + /** Sets the value to the given scalar value. */ + public abstract Builder setValue(String value); + + /** Sets array values. The type must set to ARRAY. */ + public Builder setArrayValues(List arrayValues) { + return setArrayValuesInner(ImmutableList.copyOf(arrayValues)); + } + + abstract Builder setArrayValuesInner(ImmutableList arrayValues); + + /** Sets the parameter data type. */ + public abstract Builder setType(StandardSQLTypeName type); + + /** Sets the data type of the array elements. The type must set to ARRAY. */ + public abstract Builder setArrayType(StandardSQLTypeName arrayType); + + /** Creates a {@code QueryParameterValue} object. */ + public abstract QueryParameterValue build(); + } + + QueryParameterValue() { + // Package-private so it's extensible by AutoValue but not users. + } + + /** Returns the value of this parameter. */ + @Nullable + public abstract String getValue(); + + /** Returns the array values of this parameter. The returned list, if not null, is immutable. */ + @Nullable + public List getArrayValues() { + return getArrayValuesInner(); + } + + @Nullable + abstract ImmutableList getArrayValuesInner(); + + /** Returns the data type of this parameter. */ + public abstract StandardSQLTypeName getType(); + + /** Returns the data type of the array elements. */ + @Nullable + public abstract StandardSQLTypeName getArrayType(); + + /** Creates a {@code QueryParameterValue} object with the given value and type. */ + public static QueryParameterValue of(T value, Class type) { + return of(value, classToType(type)); + } + + /** Creates a {@code QueryParameterValue} object with the given value and type. */ + public static QueryParameterValue of(T value, StandardSQLTypeName type) { + return QueryParameterValue.newBuilder() + .setValue(valueToStringOrNull(value, type)) + .setType(type) + .build(); + } + + /** Creates a {@code QueryParameterValue} object with a type of BOOL. */ + public static QueryParameterValue bool(Boolean value) { + return of(value, StandardSQLTypeName.BOOL); + } + + /** Creates a {@code QueryParameterValue} object with a type of INT64. */ + public static QueryParameterValue int64(Long value) { + return of(value, StandardSQLTypeName.INT64); + } + + /** Creates a {@code QueryParameterValue} object with a type of INT64. */ + public static QueryParameterValue int64(Integer value) { + return of(value, StandardSQLTypeName.INT64); + } + + /** Creates a {@code QueryParameterValue} object with a type of FLOAT64. */ + public static QueryParameterValue float64(Double value) { + return of(value, StandardSQLTypeName.FLOAT64); + } + + /** Creates a {@code QueryParameterValue} object with a type of FLOAT64. */ + public static QueryParameterValue float64(Float value) { + return of(value, StandardSQLTypeName.FLOAT64); + } + + /** Creates a {@code QueryParameterValue} object with a type of STRING. */ + public static QueryParameterValue string(String value) { + return of(value, StandardSQLTypeName.STRING); + } + + /** Creates a {@code QueryParameterValue} object with a type of BYTES. */ + public static QueryParameterValue bytes(byte[] value) { + return of(value, StandardSQLTypeName.BYTES); + } + + /** Creates a {@code QueryParameterValue} object with a type of TIMESTAMP. */ + public static QueryParameterValue timestamp(Long value) { + return of(value, StandardSQLTypeName.TIMESTAMP); + } + + /** + * Creates a {@code QueryParameterValue} object with a type of TIMESTAMP. Must be in the format + * "yyyy-MM-dd HH:mm:ss.SSSSSSZZ", e.g. "2014-08-19 12:41:35.220000+00:00". + */ + public static QueryParameterValue timestamp(String value) { + return of(value, StandardSQLTypeName.TIMESTAMP); + } + + /** + * Creates a {@code QueryParameterValue} object with a type of DATE. Must be in the format + * "yyyy-MM-dd", e.g. "2014-08-19". + */ + public static QueryParameterValue date(String value) { + return of(value, StandardSQLTypeName.DATE); + } + + /** + * Creates a {@code QueryParameterValue} object with a type of TIME. Must be in the format + * "HH:mm:ss.SSSSSS", e.g. "12:41:35.220000". + */ + public static QueryParameterValue time(String value) { + return of(value, StandardSQLTypeName.TIME); + } + + /** Creates a {@code QueryParameterValue} object with a type of DATETIME. + * Must be in the format "yyyy-MM-dd HH:mm:ss.SSSSSS", e.g. ""2014-08-19 12:41:35.220000". */ + public static QueryParameterValue dateTime(String value) { + return of(value, StandardSQLTypeName.DATETIME); + } + + /** + * Creates a {@code QueryParameterValue} object with a type of ARRAY, and an array element type + * based on the given class. + */ + public static QueryParameterValue array(T[] array, Class clazz) { + return array(array, classToType(clazz)); + } + + /** + * Creates a {@code QueryParameterValue} object with a type of ARRAY the given array element type. + */ + public static QueryParameterValue array(T[] array, StandardSQLTypeName type) { + List listValues = new ArrayList<>(); + for (T obj : array) { + listValues.add(QueryParameterValue.of(obj, type)); + } + return QueryParameterValue.newBuilder() + .setArrayValues(listValues) + .setType(StandardSQLTypeName.ARRAY) + .setArrayType(type) + .build(); + } + + private static StandardSQLTypeName classToType(Class type) { + if (Boolean.class.isAssignableFrom(type)) { + return StandardSQLTypeName.BOOL; + } else if (String.class.isAssignableFrom(type)) { + return StandardSQLTypeName.STRING; + } else if (Integer.class.isAssignableFrom(type)) { + return StandardSQLTypeName.INT64; + } else if (Long.class.isAssignableFrom(type)) { + return StandardSQLTypeName.INT64; + } else if (Double.class.isAssignableFrom(type)) { + return StandardSQLTypeName.FLOAT64; + } else if (Float.class.isAssignableFrom(type)) { + return StandardSQLTypeName.FLOAT64; + } + throw new IllegalArgumentException("Unsupported object type for QueryParameter: " + type); + } + + private static String valueToStringOrNull(T value, StandardSQLTypeName type) { + if (value == null) { + return null; + } + switch (type) { + case BOOL: + if (value instanceof Boolean) { + return value.toString(); + } + break; + case INT64: + if (value instanceof Integer || value instanceof Long) { + return value.toString(); + } + break; + case FLOAT64: + if (value instanceof Double || value instanceof Float) { + return value.toString(); + } + break; + case BYTES: + if (value instanceof byte[]) { + return BaseEncoding.base64().encode((byte[]) value); + } + break; + case STRING: + return value.toString(); + case STRUCT: + throw new IllegalArgumentException("Cannot convert STRUCT to String value"); + case ARRAY: + throw new IllegalArgumentException("Cannot convert ARRAY to String value"); + case TIMESTAMP: + if (value instanceof Long) { + return timestampFormatter.print(((Long) value) / 1000); + } else if (value instanceof String) { + // verify that the String is in the right format + timestampFormatter.parseMillis((String) value); + return (String) value; + } + break; + case DATE: + if (value instanceof String) { + // verify that the String is in the right format + dateFormatter.parseMillis((String) value); + return (String) value; + } + break; + case TIME: + if (value instanceof String) { + // verify that the String is in the right format + timeFormatter.parseMillis((String) value); + return (String) value; + } + break; + case DATETIME: + if (value instanceof String) { + // verify that the String is in the right format + datetimeFormatter.parseMillis((String) value); + return (String) value; + } + break; + default: + throw new UnsupportedOperationException("Implementation error - Unsupported type: " + type); + } + throw new IllegalArgumentException( + "Type " + type + " incompatible with " + value.getClass().getCanonicalName()); + } + + /** Returns a builder for a QueryParameterValue object with given value. */ + public abstract Builder toBuilder(); + + /** Returns a builder for the {@code QueryParameterValue} object. */ + public static Builder newBuilder() { + return new AutoValue_QueryParameterValue.Builder(); + } + + com.google.api.services.bigquery.model.QueryParameterValue toValuePb() { + com.google.api.services.bigquery.model.QueryParameterValue valuePb = + new com.google.api.services.bigquery.model.QueryParameterValue(); + valuePb.setValue(getValue()); + if (getArrayValues() != null) { + valuePb.setArrayValues( + Lists.transform(getArrayValues(), QueryParameterValue.TO_VALUE_PB_FUNCTION)); + } + return valuePb; + } + + QueryParameterType toTypePb() { + QueryParameterType typePb = new QueryParameterType(); + typePb.setType(getType().toString()); + if (getArrayType() != null) { + QueryParameterType arrayTypePb = new QueryParameterType(); + arrayTypePb.setType(getArrayType().toString()); + typePb.setArrayType(arrayTypePb); + } + return typePb; + } + + static QueryParameterValue fromPb( + com.google.api.services.bigquery.model.QueryParameterValue valuePb, + QueryParameterType typePb) { + Builder valueBuilder = newBuilder(); + + StandardSQLTypeName type = StandardSQLTypeName.valueOf(typePb.getType()); + valueBuilder.setType(type); + if (type == StandardSQLTypeName.ARRAY) { + valueBuilder.setArrayType(StandardSQLTypeName.valueOf(typePb.getArrayType().getType())); + if (valuePb == null || valuePb.getArrayValues() == null) { + valueBuilder.setArrayValues(ImmutableList.of()); + } else { + ImmutableList.Builder arrayValues = ImmutableList.builder(); + for (com.google.api.services.bigquery.model.QueryParameterValue elementValuePb : + valuePb.getArrayValues()) { + arrayValues.add(fromPb(elementValuePb, typePb.getArrayType())); + } + valueBuilder.setArrayValues(arrayValues.build()); + } + } else { + valueBuilder.setValue(valuePb == null ? "" : valuePb.getValue()); + } + + return valueBuilder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java new file mode 100644 index 000000000000..99dc04cda01e --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java @@ -0,0 +1,58 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.core.InternalApi; +import com.google.auto.value.AutoValue; +import com.google.common.collect.ImmutableList; +import javax.annotation.Nullable; + +@InternalApi +@AutoValue +public abstract class QueryResponse { + QueryResponse() { + // Package private so users can't subclass it but AutoValue can. + } + + // Only null if the job fails. + @Nullable + abstract Schema getSchema(); + + abstract boolean getCompleted(); + + abstract long getTotalRows(); + + abstract ImmutableList getErrors(); + + static Builder newBuilder() { + return new AutoValue_QueryResponse.Builder(); + } + + @AutoValue.Builder + abstract static class Builder { + abstract Builder setSchema(Schema val); + + abstract Builder setCompleted(boolean val); + + abstract Builder setTotalRows(long val); + + abstract Builder setErrors(ImmutableList val); + + abstract QueryResponse build(); + } + +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java new file mode 100644 index 000000000000..7b989c1c8aa6 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java @@ -0,0 +1,764 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.ExplainQueryStage; +import com.google.api.services.bigquery.model.ExplainQueryStep; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; + +import java.io.Serializable; +import java.util.List; +import java.util.Objects; + +/** + * BigQuery provides diagnostic information about a completed query's execution plan (or query plan + * for short). The query plan describes a query as a series of stages, with each stage comprising a + * number of steps that read from data sources, perform a series of transformations on the input, + * and emit an output to a future stage (or the final result). This class contains information on a + * query stage. + * + * @see Query Plan + */ +public class QueryStage implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public QueryStage apply(ExplainQueryStage pb) { + return QueryStage.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public ExplainQueryStage apply(QueryStage stage) { + return stage.toPb(); + } + }; + private static final long serialVersionUID = -472281297327952320L; + + /** + * Each query stage is made of a number of steps. This class contains information on a query step. + * + * @see Steps + * Metadata + */ + public static class QueryStep implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public QueryStep apply(ExplainQueryStep pb) { + return QueryStep.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public ExplainQueryStep apply(QueryStep stage) { + return stage.toPb(); + } + }; + private static final long serialVersionUID = 8663444604771794411L; + + private final String name; + private final List substeps; + + QueryStep(String name, List substeps) { + this.name = name; + this.substeps = substeps; + } + + + /** + * Returns a machine-readable name for the operation. + * + * @see Steps + * Metadata + */ + public String getName() { + return name; + } + + + /** + * Returns a list of human-readable stage descriptions. + */ + public List getSubsteps() { + return substeps; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("name", name) + .add("substeps", substeps) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(name, substeps); + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof QueryStep)) { + return false; + } + QueryStep other = (QueryStep) obj; + return Objects.equals(name, other.name) && Objects.equals(substeps, other.substeps); + } + + ExplainQueryStep toPb() { + return new ExplainQueryStep().setKind(name).setSubsteps(substeps); + } + + static QueryStep fromPb(com.google.api.services.bigquery.model.ExplainQueryStep stepPb) { + return new QueryStep(stepPb.getKind(), ImmutableList.copyOf(stepPb.getSubsteps() != null + ? stepPb.getSubsteps() : ImmutableList.of())); + } + } + + private final long completedParallelInputs; + private final long computeMsAvg; + private final long computeMsMax; + private final double computeRatioAvg; + private final double computeRatioMax; + private final long endMs; + private final long generatedId; + private final List inputStages; + private final String name; + private final long parallelInputs; + private final long readMsAvg; + private final long readMsMax; + private final double readRatioAvg; + private final double readRatioMax; + private final long recordsRead; + private final long recordsWritten; + private final long shuffleOutputBytes; + private final long shuffleOutputBytesSpilled; + private final List steps; + private final long startMs; + private String status; + private final long waitMsAvg; + private final long waitMsMax; + private final double waitRatioAvg; + private final double waitRatioMax; + private final long writeMsAvg; + private final long writeMsMax; + private final double writeRatioAvg; + private final double writeRatioMax; + + static final class Builder { + + private long completedParallelInputs; + private long computeMsAvg; + private long computeMsMax; + private double computeRatioAvg; + private double computeRatioMax; + private long endMs; + private long generatedId; + private List inputStages; + private String name; + private long parallelInputs; + private long readMsAvg; + private long readMsMax; + private double readRatioAvg; + private double readRatioMax; + private long recordsRead; + private long recordsWritten; + private long shuffleOutputBytes; + private long shuffleOutputBytesSpilled; + private long startMs; + private String status; + private List steps; + private long waitMsAvg; + private long waitMsMax; + private double waitRatioAvg; + private double waitRatioMax; + private long writeMsAvg; + private long writeMsMax; + private double writeRatioAvg; + private double writeRatioMax; + + private Builder() {} + + Builder setCompletedParallelInputs(long completedParallelInputs) { + this.completedParallelInputs = completedParallelInputs; + return this; + } + + Builder setComputeMsAvg(long computeMsAvg) { + this.computeMsAvg = computeMsAvg; + return this; + } + + Builder setComputeMsMax(long computeMsMax) { + this.computeMsMax = computeMsMax; + return this; + } + + Builder setComputeRatioAvg(double computeRatioAvg) { + this.computeRatioAvg = computeRatioAvg; + return this; + } + + Builder setComputeRatioMax(double computeRatioMax) { + this.computeRatioMax = computeRatioMax; + return this; + } + + Builder setEndMs(long endMs) { + this.endMs = endMs; + return this; + } + + Builder setGeneratedId(long generatedId) { + this.generatedId = generatedId; + return this; + } + + Builder setInputStages(List inputStages) { + this.inputStages = inputStages; + return this; + } + + Builder setName(String name) { + this.name = name; + return this; + } + + Builder setParallelInputs(long parallelInputs) { + this.parallelInputs = parallelInputs; + return this; + } + + Builder setReadMsAvg(long readMsAvg) { + this.readMsAvg = readMsAvg; + return this; + } + + Builder setReadMsMax(long readMsMax) { + this.readMsMax = readMsMax; + return this; + } + + Builder setReadRatioAvg(double readRatioAvg) { + this.readRatioAvg = readRatioAvg; + return this; + } + + Builder setReadRatioMax(double readRatioMax) { + this.readRatioMax = readRatioMax; + return this; + } + + Builder setRecordsRead(long recordsRead) { + this.recordsRead = recordsRead; + return this; + } + + Builder setRecordsWritten(long recordsWritten) { + this.recordsWritten = recordsWritten; + return this; + } + + Builder setShuffleOutputBytes(long shuffleOutputBytes) { + this.shuffleOutputBytes = shuffleOutputBytes; + return this; + } + + Builder setShuffleOutputBytesSpilled(long shuffleOutputBytesSpilled) { + this.shuffleOutputBytesSpilled = shuffleOutputBytesSpilled; + return this; + } + + Builder setStartMs(long startMs) { + this.startMs = startMs; + return this; + } + + Builder setStatus(String status) { + this.status = status; + return this; + } + + Builder setSteps(List steps) { + this.steps = steps; + return this; + } + + Builder setWaitMsAvg(long waitMsAvg) { + this.waitMsAvg = waitMsAvg; + return this; + } + + Builder setWaitMsMax(long waitMsMax) { + this.waitMsMax = waitMsMax; + return this; + } + + Builder setWaitRatioAvg(double waitRatioAvg) { + this.waitRatioAvg = waitRatioAvg; + return this; + } + + Builder setWaitRatioMax(double waitRatioMax) { + this.waitRatioMax = waitRatioMax; + return this; + } + + Builder setWriteMsAvg(long writeMsAvg) { + this.writeMsAvg = writeMsAvg; + return this; + } + + Builder setWriteMsMax(long writeMsMax) { + this.writeMsMax = writeMsMax; + return this; + } + + Builder setWriteRatioAvg(double writeRatioAvg) { + this.writeRatioAvg = writeRatioAvg; + return this; + } + + Builder setWriteRatioMax(double writeRatioMax) { + this.writeRatioMax = writeRatioMax; + return this; + } + + QueryStage build() { + return new QueryStage(this); + } + } + + QueryStage(Builder builder) { + completedParallelInputs = builder.completedParallelInputs; + computeMsAvg = builder.computeMsAvg; + computeMsMax = builder.computeMsMax; + computeRatioAvg = builder.computeRatioAvg; + computeRatioMax = builder.computeRatioMax; + endMs = builder.endMs; + generatedId = builder.generatedId; + inputStages = builder.inputStages; + name = builder.name; + parallelInputs = builder.parallelInputs; + readMsAvg = builder.readMsAvg; + readMsMax = builder.readMsMax; + readRatioAvg = builder.readRatioAvg; + readRatioMax = builder.readRatioMax; + recordsRead = builder.recordsRead; + recordsWritten = builder.recordsWritten; + shuffleOutputBytes = builder.shuffleOutputBytes; + shuffleOutputBytesSpilled = builder.shuffleOutputBytesSpilled; + startMs = builder.startMs; + status = builder.status; + steps = builder.steps; + waitMsAvg = builder.waitMsAvg; + waitMsMax = builder.waitMsMax; + waitRatioAvg = builder.waitRatioAvg; + waitRatioMax = builder.waitRatioMax; + writeMsAvg = builder.writeMsAvg; + writeMsMax = builder.writeMsMax; + writeRatioAvg = builder.writeRatioAvg; + writeRatioMax = builder.writeRatioMax; + } + + /** + * Returns the number of parallel input segments completed. + */ + public long getCompletedParallelInputs() { + return completedParallelInputs; + } + + /** + * Returns the time in milliseconds the average worker spent on CPU-bound tasks. + */ + public long getComputeMsAvg() { + return computeMsAvg; + } + + /** + * Returns the time in milliseconds the slowest worker spent on CPU-bound tasks. + */ + public long getComputeMsMax() { + return computeMsMax; + } + + /** + * Returns the time the average worker spent CPU-bound, divided by the longest time spent by any + * worker in any segment. + */ + public double getComputeRatioAvg() { + return computeRatioAvg; + } + + + /** + * Returns the time the slowest worker spent CPU-bound, divided by the longest time spent by any + * worker in any segment. + */ + public double getComputeRatioMax() { + return computeRatioMax; + } + + /** + * Returns the stage end time represented as milliseconds since epoch. + */ + public long getEndMs() { + return endMs; + } + + /** + * Returns a unique, server-generated ID for the stage within its plan. + */ + public long getGeneratedId() { + return generatedId; + } + + /** + * Returns a list of the stage IDs that are inputs to this stage. + */ + public List getInputStages() { + return inputStages; + } + + /** + * Returns a human-readable name for the stage. + */ + public String getName() { + return name; + } + + /** + * Returns the number of parallel input segments to be processed. + */ + public long getParallelInputs() { + return parallelInputs; + } + + /** + * Returns the time in milliseconds the average worker spent reading input. + */ + public long getReadMsAvg() { + return readMsAvg; + } + + /** + * Returns the time in milliseconds the slowest worker spent reading input. + */ + public long getReadMsMax() { + return readMsMax; + } + + /** + * Returns the time the average worker spent reading input data, divided by the longest time spent + * by any worker in any segment. + */ + public double getReadRatioAvg() { + return readRatioAvg; + } + + + /** + * Returns the time the slowest worker spent reading input data, divided by the longest time spent + * by any worker in any segment. + */ + public double getReadRatioMax() { + return readRatioMax; + } + + + /** + * Returns the number of rows (top-level records) read by the stage. + */ + public long getRecordsRead() { + return recordsRead; + } + + + /** + * Returns the number of rows (top-level records) written by the stage. + */ + public long getRecordsWritten() { + return recordsWritten; + } + + /** + * Returns the total number of bytes written to shuffle. + */ + public long getShuffleOutputBytes() { + return shuffleOutputBytes; + } + + /** + * Returns the total number of bytes writtedn to shuffle and spilled to disk. + */ + public long getShuffleOutputBytesSpilled() { + return shuffleOutputBytesSpilled; + } + + /** + * Returns the stage start time represented as milliseconds since epoch. + */ + public long getStartMs() { + return startMs; + } + + /** + * Returns the current status for the stage. + */ + public String getStatus() { + return status; + } + + /** + * Returns the list of steps within the stage in dependency order (approximately chronological). + */ + public List getSteps() { + return steps; + } + + /** + * Returns the time in milliseconds the average worker spent waiting to be scheduled. + */ + public long getWaitMsAvg() { + return waitMsAvg; + } + + /** + * Returns the time in milliseconds the slowest worker spent waiting to be scheduled. + */ + public long getWaitMsMax() { + return waitMsMax; + } + + /** + * Returns the time the average worker spent waiting to be scheduled, divided by the longest time + * spent by any worker in any segment. + */ + public double getWaitRatioAvg() { + return waitRatioAvg; + } + + + /** + * Returns the time the slowest worker spent waiting to be scheduled, divided by the longest time + * spent by any worker in any segment. + */ + public double getWaitRatioMax() { + return waitRatioMax; + } + + /** + * Returns the time in milliseconds the average worker spent writing output. + */ + public long getWriteMsAvg() { + return writeMsAvg; + } + + /** + * Returns the time in milliseconds the slowest worker spent writing output. + */ + public long getWriteMsMax() { + return writeMsMax; + } + + /** + * Returns the time the average worker spent writing output data, divided by the longest time + * spent by any worker in any segment. + */ + public double getWriteRatioAvg() { + return writeRatioAvg; + } + + + /** + * Returns the time the slowest worker spent writing output data, divided by the longest time + * spent by any worker in any segment. + */ + public double getWriteRatioMax() { + return writeRatioMax; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("completedParallelInputs", completedParallelInputs) + .add("computeMsAvg", computeMsAvg) + .add("computeMsMax", computeMsMax) + .add("computeRatioAvg", computeRatioAvg) + .add("computeRatioMax", computeRatioMax) + .add("endMs", endMs) + .add("generatedId", generatedId) + .add("inputStages", inputStages) + .add("name", name) + .add("parallelInputs", parallelInputs) + .add("readMsAvg", readMsAvg) + .add("readMsMax", readMsMax) + .add("readRatioAvg", readRatioAvg) + .add("readRatioMax", readRatioMax) + .add("recordsRead", recordsRead) + .add("recordsWritten", recordsWritten) + .add("shuffleOutputBytes", shuffleOutputBytes) + .add("shuffleOutputBytesSpilled", shuffleOutputBytesSpilled) + .add("startMs", startMs) + .add("status", status) + .add("steps", steps) + .add("waitMsAvg", waitMsAvg) + .add("waitMsMax", waitMsMax) + .add("waitRatioAvg", waitRatioAvg) + .add("waitRatioMax", waitRatioMax) + .add("writeMsAvg", writeMsAvg) + .add("writeMsMax", writeMsMax) + .add("writeRatioAvg", writeRatioAvg) + .add("writeRatioMax", writeRatioMax) + .toString(); + } + + + @Override + public final int hashCode() { + return Objects.hash(completedParallelInputs, computeMsAvg, computeMsMax, + computeRatioAvg, computeRatioMax, endMs, generatedId, inputStages, name, + parallelInputs, readMsAvg, readMsMax, readRatioAvg, readRatioMax, + recordsRead, recordsWritten, shuffleOutputBytes, shuffleOutputBytesSpilled, + startMs, status, steps, waitMsAvg, waitMsMax, waitRatioAvg, waitRatioMax, + writeMsAvg, writeMsMax, writeRatioAvg, writeRatioMax); + } + + @Override + public final boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj == null || !obj.getClass().equals(QueryStage.class)) { + return false; + } + QueryStage other = (QueryStage) obj; + return generatedId == other.generatedId + && completedParallelInputs == other.completedParallelInputs + && computeMsAvg == other.computeMsAvg + && computeMsMax == other.computeMsMax + && computeRatioAvg == other.computeRatioAvg + && computeRatioMax == other.computeRatioMax + && endMs == other.endMs + && parallelInputs == other.parallelInputs + && readMsAvg == other.readMsAvg + && readMsMax == other.readMsMax + && readRatioAvg == other.readRatioAvg + && readRatioMax == other.readRatioMax + && recordsRead == other.recordsRead + && recordsWritten == other.recordsWritten + && shuffleOutputBytes == other.shuffleOutputBytes + && shuffleOutputBytesSpilled == other.shuffleOutputBytesSpilled + && startMs == other.startMs + && waitMsAvg == other.waitMsAvg + && waitMsMax == other.waitMsMax + && waitRatioAvg == other.waitRatioAvg + && waitRatioMax == other.waitRatioMax + && writeMsAvg == other.writeMsAvg + && writeMsMax == other.writeMsMax + && writeRatioAvg == other.writeRatioAvg + && writeRatioMax == other.writeRatioMax + && Objects.equals(steps, other.steps) + && Objects.equals(name, other.name) + && Objects.equals(status, other.status) + && Objects.equals(inputStages, other.inputStages); + } + + static Builder newBuilder() { + return new Builder(); + } + + ExplainQueryStage toPb() { + ExplainQueryStage stagePb = new ExplainQueryStage() + .setCompletedParallelInputs(completedParallelInputs) + .setComputeMsAvg(computeMsAvg) + .setComputeMsMax(computeMsMax) + .setComputeRatioAvg(computeRatioAvg) + .setComputeRatioMax(computeRatioMax) + .setEndMs(endMs) + .setId(generatedId) + .setInputStages(inputStages) + .setName(name) + .setParallelInputs(parallelInputs) + .setReadMsAvg(readMsAvg) + .setReadMsMax(readMsMax) + .setReadRatioAvg(readRatioAvg) + .setReadRatioMax(readRatioMax) + .setRecordsRead(recordsRead) + .setRecordsWritten(recordsWritten) + .setShuffleOutputBytes(shuffleOutputBytes) + .setShuffleOutputBytesSpilled(shuffleOutputBytesSpilled) + .setStartMs(startMs) + .setStatus(status) + .setWaitMsAvg(waitMsAvg) + .setWaitMsMax(waitMsMax) + .setWaitRatioAvg(waitRatioAvg) + .setWaitRatioMax(waitRatioMax) + .setWriteMsAvg(writeMsAvg) + .setWriteMsMax(writeMsMax) + .setWriteRatioAvg(writeRatioAvg) + .setWriteRatioMax(writeRatioMax); + if (steps != null) { + stagePb.setSteps(Lists.transform(steps, QueryStep.TO_PB_FUNCTION)); + } + return stagePb; + } + + static QueryStage fromPb(com.google.api.services.bigquery.model.ExplainQueryStage stagePb) { + Builder builder = new QueryStage.Builder(); + builder.setCompletedParallelInputs(stagePb.getCompletedParallelInputs()); + builder.setComputeMsAvg(stagePb.getComputeMsAvg()); + builder.setComputeMsMax(stagePb.getComputeMsMax()); + builder.setComputeRatioAvg(stagePb.getComputeRatioAvg()); + builder.setComputeRatioMax(stagePb.getComputeRatioMax()); + builder.setEndMs(stagePb.getEndMs()); + builder.setGeneratedId(stagePb.getId()); + builder.setInputStages(stagePb.getInputStages()); + builder.setName(stagePb.getName()); + builder.setParallelInputs(stagePb.getParallelInputs()); + builder.setReadMsAvg(stagePb.getReadMsAvg()); + builder.setReadMsMax(stagePb.getReadMsMax()); + builder.setReadRatioAvg(stagePb.getReadRatioAvg()); + builder.setReadRatioMax(stagePb.getReadRatioMax()); + builder.setRecordsRead(stagePb.getRecordsRead()); + builder.setRecordsWritten(stagePb.getRecordsWritten()); + builder.setShuffleOutputBytes(stagePb.getShuffleOutputBytes()); + builder.setShuffleOutputBytesSpilled(stagePb.getShuffleOutputBytesSpilled()); + builder.setStartMs(stagePb.getStartMs()); + builder.setStatus(stagePb.getStatus()); + if (stagePb.getSteps() != null) { + builder.setSteps(Lists.transform(stagePb.getSteps(), QueryStep.FROM_PB_FUNCTION)); + } + builder.setWaitMsAvg(stagePb.getWaitMsAvg()); + builder.setWaitMsMax(stagePb.getWaitMsMax()); + builder.setWaitRatioAvg(stagePb.getWaitRatioAvg()); + builder.setWaitRatioMax(stagePb.getWaitRatioMax()); + builder.setWriteMsAvg(stagePb.getWriteMsAvg()); + builder.setWriteMsMax(stagePb.getWriteMsMax()); + builder.setWriteRatioAvg(stagePb.getWriteRatioAvg()); + builder.setWriteRatioMax(stagePb.getWriteRatioMax()); + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java new file mode 100644 index 000000000000..8527d7c4d96f --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java @@ -0,0 +1,109 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.TableSchema; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; + +import java.io.Serializable; +import java.util.Objects; + +/** + * This class represents the schema for a Google BigQuery Table or data source. + */ +public final class Schema implements Serializable { + + static final Function + FROM_PB_FUNCTION = new Function() { + @Override + public Schema apply(com.google.api.services.bigquery.model.TableSchema pb) { + return Schema.fromPb(pb); + } + }; + static final Function + TO_PB_FUNCTION = new Function() { + @Override + public com.google.api.services.bigquery.model.TableSchema apply(Schema schema) { + return schema.toPb(); + } + }; + + private static final long serialVersionUID = 5522743613515073017L; + + private final FieldList fields; + + private Schema(FieldList fields) { + this.fields = checkNotNull(fields); + } + + /** + * Returns the fields in the current table schema. + */ + public FieldList getFields() { + return fields; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("fields", fields) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(fields); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof Schema + && Objects.equals(toPb(), ((Schema) obj).toPb()); + } + + /** + * Creates a {@code Schema} object given a list of fields. + */ + public static Schema of(Iterable fields) { + return new Schema(FieldList.of(fields)); + } + + /** + * Creates a {@code Schema} object given some fields. + */ + public static Schema of(Field... fields) { + return new Schema(FieldList.of(fields)); + } + + TableSchema toPb() { + TableSchema tableSchemaPb = new TableSchema(); + if (fields != null) { + tableSchemaPb.setFields(fields.toPb()); + } + return tableSchemaPb; + } + + static Schema fromPb(com.google.api.services.bigquery.model.TableSchema tableSchemaPb) { + return Schema.of(FieldList.fromPb(tableSchemaPb.getFields())); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java new file mode 100644 index 000000000000..a250c1fc1509 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java @@ -0,0 +1,51 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +/** + * A type used in standard SQL contexts. For example, these types are used in queries + * with query parameters, which requires usage of standard SQL. + * + * @see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types + */ +public enum StandardSQLTypeName { + /** A Boolean value (true or false). */ + BOOL, + /** A 64-bit signed integer value. */ + INT64, + /** A 64-bit IEEE binary floating-point value. */ + FLOAT64, + /** Variable-length character (Unicode) data. */ + STRING, + /** Variable-length binary data. */ + BYTES, + /** Container of ordered fields each with a type (required) and field name (optional). */ + STRUCT, + /** Ordered list of zero or more elements of any non-array type. */ + ARRAY, + /** + * Represents an absolute point in time, with microsecond precision. Values range between the + * years 1 and 9999, inclusive. + */ + TIMESTAMP, + /** Represents a logical calendar date. Values range between the years 1 and 9999, inclusive. */ + DATE, + /** Represents a time, independent of a specific date, to microsecond precision. */ + TIME, + /** Represents a year, month, day, hour, minute, second, and subsecond (microsecond precision). */ + DATETIME +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java new file mode 100644 index 000000000000..40889fc036fd --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -0,0 +1,232 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.Streamingbuffer; +import com.google.api.services.bigquery.model.Table; +import com.google.auto.value.AutoValue; +import com.google.common.base.MoreObjects; +import java.io.Serializable; +import java.math.BigInteger; +import java.util.Objects; +import javax.annotation.Nullable; + +/** + * A Google BigQuery default table definition. This definition is used for standard, two-dimensional + * tables with individual records organized in rows, and a data type assigned to each column (also + * called a field). Individual fields within a record may contain nested and repeated children + * fields. Every table is described by a schema that describes field names, types, and other + * information. + * + * @see Managing Tables + */ +@AutoValue +public abstract class StandardTableDefinition extends TableDefinition { + + private static final long serialVersionUID = 2113445776046717900L; + + /** + * Google BigQuery Table's Streaming Buffer information. This class contains information on a + * table's streaming buffer as the estimated size in number of rows/bytes. + */ + public static class StreamingBuffer implements Serializable { + + private static final long serialVersionUID = 822027055549277843L; + private final long estimatedRows; + private final long estimatedBytes; + private final Long oldestEntryTime; + + StreamingBuffer(long estimatedRows, long estimatedBytes, Long oldestEntryTime) { + this.estimatedRows = estimatedRows; + this.estimatedBytes = estimatedBytes; + this.oldestEntryTime = oldestEntryTime; + } + + + /** + * Returns a lower-bound estimate of the number of rows currently in the streaming buffer. + */ + public long getEstimatedRows() { + return estimatedRows; + } + + + /** + * Returns a lower-bound estimate of the number of bytes currently in the streaming buffer. + */ + public long getEstimatedBytes() { + return estimatedBytes; + } + + + /** + * Returns the timestamp of the oldest entry in the streaming buffer, in milliseconds since + * epoch. Returns {@code null} if the streaming buffer is empty. + */ + public Long getOldestEntryTime() { + return oldestEntryTime; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("estimatedRows", estimatedRows) + .add("estimatedBytes", estimatedBytes) + .add("oldestEntryTime", oldestEntryTime) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(estimatedRows, estimatedBytes, oldestEntryTime); + } + + @Override + public boolean equals(Object obj) { + return obj instanceof StreamingBuffer + && Objects.equals(toPb(), ((StreamingBuffer) obj).toPb()); + } + + Streamingbuffer toPb() { + return new Streamingbuffer() + .setEstimatedBytes(BigInteger.valueOf(estimatedBytes)) + .setEstimatedRows(BigInteger.valueOf(estimatedRows)) + .setOldestEntryTime(BigInteger.valueOf(oldestEntryTime)); + } + + static StreamingBuffer fromPb(Streamingbuffer streamingBufferPb) { + Long oldestEntryTime = null; + if (streamingBufferPb.getOldestEntryTime() != null) { + oldestEntryTime = streamingBufferPb.getOldestEntryTime().longValue(); + } + return new StreamingBuffer(streamingBufferPb.getEstimatedRows().longValue(), + streamingBufferPb.getEstimatedBytes().longValue(), + oldestEntryTime); + } + } + + @AutoValue.Builder + public abstract static class Builder + extends TableDefinition.Builder { + + public abstract Builder setNumBytes(Long numBytes); + + public abstract Builder setNumRows(Long numRows); + + public abstract Builder setLocation(String location); + + public abstract Builder setStreamingBuffer(StreamingBuffer streamingBuffer); + + public abstract Builder setType(Type type); + + /** Sets the table schema. */ + public abstract Builder setSchema(Schema schema); + + /** + * Sets the time partitioning configuration for the table. If not set, the table is not + * time-partitioned. + */ + public abstract Builder setTimePartitioning(TimePartitioning timePartitioning); + + /** Creates a {@code StandardTableDefinition} object. */ + public abstract StandardTableDefinition build(); + } + + /** Returns the size of this table in bytes, excluding any data in the streaming buffer. */ + @Nullable + public abstract Long getNumBytes(); + + /** Returns the number of rows in this table, excluding any data in the streaming buffer. */ + @Nullable + public abstract Long getNumRows(); + + /** + * Returns the geographic location where the table should reside. This value is inherited from the + * dataset. + * + * @see + * Dataset Location + */ + @Nullable + public abstract String getLocation(); + + /** + * Returns information on the table's streaming buffer if any exists. Returns {@code null} if no + * streaming buffer exists. + */ + @Nullable + public abstract StreamingBuffer getStreamingBuffer(); + + /** + * Returns the time partitioning configuration for this table. If {@code null}, the table is not + * time-partitioned. + */ + @Nullable + public abstract TimePartitioning getTimePartitioning(); + + /** + * Returns a builder for a BigQuery standard table definition. + */ + public static Builder newBuilder() { + return new AutoValue_StandardTableDefinition.Builder().setType(Type.TABLE); + } + + /** + * Creates a BigQuery standard table definition given its schema. + * + * @param schema the schema of the table + */ + public static StandardTableDefinition of(Schema schema) { + return newBuilder().setSchema(schema).build(); + } + + /** Returns a builder for the {@code StandardTableDefinition} object. */ + public abstract Builder toBuilder(); + + @Override + Table toPb() { + Table tablePb = super.toPb(); + if (getNumRows() != null) { + tablePb.setNumRows(BigInteger.valueOf(getNumRows())); + } + tablePb.setNumBytes(getNumBytes()); + tablePb.setLocation(getLocation()); + if (getStreamingBuffer() != null) { + tablePb.setStreamingBuffer(getStreamingBuffer().toPb()); + } + if (getTimePartitioning() != null) { + tablePb.setTimePartitioning(getTimePartitioning().toPb()); + } + return tablePb; + } + + @SuppressWarnings("unchecked") + static StandardTableDefinition fromPb(Table tablePb) { + Builder builder = newBuilder().table(tablePb); + if (tablePb.getNumRows() != null) { + builder.setNumRows(tablePb.getNumRows().longValue()); + } + if (tablePb.getStreamingBuffer() != null) { + builder.setStreamingBuffer(StreamingBuffer.fromPb(tablePb.getStreamingBuffer())); + } + if (tablePb.getTimePartitioning() != null) { + builder.setTimePartitioning(TimePartitioning.fromPb(tablePb.getTimePartitioning())); + } + return builder.setNumBytes(tablePb.getNumBytes()).setLocation(tablePb.getLocation()).build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java new file mode 100644 index 000000000000..ba45b7da56ab --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java @@ -0,0 +1,593 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.cloud.bigquery.BigQuery.JobOption; +import com.google.cloud.bigquery.BigQuery.TableDataListOption; +import com.google.cloud.bigquery.BigQuery.TableOption; +import com.google.cloud.bigquery.TableInfo.Builder; +import com.google.common.collect.ImmutableList; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * A Google BigQuery Table. + * + *

Objects of this class are immutable. Operations that modify the table like {@link #update} + * return a new object. To get a {@code Table} object with the most recent information use + * {@link #reload}. {@code Table} adds a layer of service-related functionality over + * {@link TableInfo}. + *

+ */ +public class Table extends TableInfo { + + private static final long serialVersionUID = 5744556727066570096L; + + private final BigQueryOptions options; + private transient BigQuery bigquery; + + /** + * A builder for {@code Table} objects. + */ + public static class Builder extends TableInfo.Builder { + + private final BigQuery bigquery; + private final TableInfo.BuilderImpl infoBuilder; + + Builder(BigQuery bigquery, TableId tableId, TableDefinition defintion) { + this.bigquery = bigquery; + this.infoBuilder = new TableInfo.BuilderImpl(); + this.infoBuilder.setTableId(tableId).setDefinition(defintion); + } + + Builder(Table table) { + this.bigquery = table.bigquery; + this.infoBuilder = new TableInfo.BuilderImpl(table); + } + + @Override + Builder setCreationTime(Long creationTime) { + infoBuilder.setCreationTime(creationTime); + return this; + } + + + @Override + public Builder setDescription(String description) { + infoBuilder.setDescription(description); + return this; + } + + @Override + Builder setEtag(String etag) { + infoBuilder.setEtag(etag); + return this; + } + + + @Override + public Builder setExpirationTime(Long expirationTime) { + infoBuilder.setExpirationTime(expirationTime); + return this; + } + + + @Override + public Builder setFriendlyName(String friendlyName) { + infoBuilder.setFriendlyName(friendlyName); + return this; + } + + @Override + Builder setGeneratedId(String generatedId) { + infoBuilder.setGeneratedId(generatedId); + return this; + } + + @Override + Builder setLastModifiedTime(Long lastModifiedTime) { + infoBuilder.setLastModifiedTime(lastModifiedTime); + return this; + } + + @Override + Builder setSelfLink(String selfLink) { + infoBuilder.setSelfLink(selfLink); + return this; + } + + + @Override + public Builder setTableId(TableId tableId) { + infoBuilder.setTableId(tableId); + return this; + } + + + @Override + public Builder setDefinition(TableDefinition definition) { + infoBuilder.setDefinition(definition); + return this; + } + + @Override + public TableInfo.Builder setEncryptionConfiguration(EncryptionConfiguration configuration) { + infoBuilder.setEncryptionConfiguration(configuration); + return this; + } + + @Override + public Builder setLabels(Map labels) { + infoBuilder.setLabels(labels); + return this; + } + + @Override + public Table build() { + return new Table(bigquery, infoBuilder); + } + } + + Table(BigQuery bigquery, TableInfo.BuilderImpl infoBuilder) { + super(infoBuilder); + this.bigquery = checkNotNull(bigquery); + this.options = bigquery.getOptions(); + } + + /** + * Checks if this table exists. + * + *

Example of checking if the table exists. + *

 {@code
+   * boolean exists = table.exists();
+   * if (exists) {
+   *   // the table exists
+   * } else {
+   *   // the table was not found
+   * }
+   * }
+ * + * @return {@code true} if this table exists, {@code false} otherwise + * @throws BigQueryException upon failure + */ + public boolean exists() { + return bigquery.getTable(getTableId(), TableOption.fields()) != null; + } + + /** + * Fetches current table's latest information. Returns {@code null} if the table does not exist. + * + *

Example of fetching the table's latest information, specifying particular table fields to + * get. + *

 {@code
+   * TableField field1 = TableField.LAST_MODIFIED_TIME;
+   * TableField field2 = TableField.NUM_ROWS;
+   * Table latestTable = table.reload(TableOption.fields(field1, field2));
+   * if (latestTable == null) {
+   *   // the table was not found
+   * }
+   * }
+ * + * @param options table options + * @return a {@code Table} object with latest information or {@code null} if not found + * @throws BigQueryException upon failure + */ + public Table reload(TableOption... options) { + return bigquery.getTable(getTableId(), options); + } + + /** + * Updates the table's information with this table's information. Dataset's and table's + * user-defined ids cannot be changed. A new {@code Table} object is returned. + * + *

Example of updating the table's information. + *

 {@code
+   * Table updatedTable = table.toBuilder().setDescription("new description").build().update();
+   * }
+ * + * @param options dataset options + * @return a {@code Table} object with updated information + * @throws BigQueryException upon failure + */ + public Table update(TableOption... options) { + return bigquery.update(this, options); + } + + /** + * Deletes this table. + * + *

Example of deleting the table. + *

 {@code
+   * boolean deleted = table.delete();
+   * if (deleted) {
+   *   // the table was deleted
+   * } else {
+   *   // the table was not found
+   * }
+   * }
+ * + * @return {@code true} if table was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + public boolean delete() { + return bigquery.delete(getTableId()); + } + + /** + * Insert rows into the table. + * + *

Example of inserting rows into the table. + *

 {@code
+   * String rowId1 = "rowId1";
+   * String rowId2 = "rowId2";
+   * List rows = new ArrayList<>();
+   * Map row1 = new HashMap<>();
+   * row1.put("stringField", "value1");
+   * row1.put("booleanField", true);
+   * Map row2 = new HashMap<>();
+   * row2.put("stringField", "value2");
+   * row2.put("booleanField", false);
+   * rows.add(RowToInsert.of(rowId1, row1));
+   * rows.add(RowToInsert.of(rowId2, row2));
+   * InsertAllResponse response = table.insert(rows);
+   * // do something with response
+   * }
+ * + * @param rows rows to be inserted + * @throws BigQueryException upon failure + */ + public InsertAllResponse insert(Iterable rows) + throws BigQueryException { + return bigquery.insertAll(InsertAllRequest.of(getTableId(), rows)); + } + + /** + * Insert rows into the table. + * + *

Example of inserting rows into the table, ignoring invalid rows. + *

 {@code
+   * String rowId1 = "rowId1";
+   * String rowId2 = "rowId2";
+   * List rows = new ArrayList<>();
+   * Map row1 = new HashMap<>();
+   * row1.put("stringField", 1);
+   * row1.put("booleanField", true);
+   * Map row2 = new HashMap<>();
+   * row2.put("stringField", "value2");
+   * row2.put("booleanField", false);
+   * rows.add(RowToInsert.of(rowId1, row1));
+   * rows.add(RowToInsert.of(rowId2, row2));
+   * InsertAllResponse response = table.insert(rows, true, true);
+   * // do something with response
+   * }
+ * + * @param rows rows to be inserted + * @param skipInvalidRows whether to insert all valid rows, even if invalid rows exist. If not set + * the entire insert operation will fail if rows to be inserted contain an invalid row + * @param ignoreUnknownValues whether to accept rows that contain values that do not match the + * schema. The unknown values are ignored. If not set, rows with unknown values are considered + * to be invalid + * @throws BigQueryException upon failure + */ + public InsertAllResponse insert(Iterable rows, + boolean skipInvalidRows, boolean ignoreUnknownValues) throws BigQueryException { + InsertAllRequest request = InsertAllRequest.newBuilder(getTableId(), rows) + .setSkipInvalidRows(skipInvalidRows) + .setIgnoreUnknownValues(ignoreUnknownValues) + .build(); + return bigquery.insertAll(request); + } + + /** + * Returns the paginated list rows in this table. + * + *

Example of listing rows in the table. + *

 {@code
+   * // This example reads the result 100 rows per RPC call. If there's no need to limit the number,
+   * // simply omit the option.
+   * Page page = table.list(TableDataListOption.pageSize(100));
+   * for (FieldValueList row : page.iterateAll()) {
+   *   // do something with the row
+   * }
+   * }
+ * + * @param options table data list options + * @throws BigQueryException upon failure + */ + public TableResult list(TableDataListOption... options) throws BigQueryException { + return bigquery.listTableData(getTableId(), options); + } + + /** + * Returns the paginated list rows in this table. + * + *

Example of listing rows in the table given a schema. + *

 {@code
+   * Schema schema = ...;
+   * String field = "my_field";
+   * Page page = table.list(schema);
+   * for (FieldValueList row : page.iterateAll()) {
+   *   row.get(field);
+   * }
+   * }
+ * + * @param options table data list options + * @throws BigQueryException upon failure + */ + public TableResult list(Schema schema, TableDataListOption... options) + throws BigQueryException { + return bigquery.listTableData(getTableId(), schema, options); + } + + /** + * Starts a BigQuery Job to copy the current table to the provided destination table. Returns the + * started {@link Job} object. + * + *

Example of copying the table to a destination table. + *

 {@code
+   * String datasetName = "my_dataset";
+   * String tableName = "my_destination_table";
+   * Job job = table.copy(datasetName, tableName);
+   * // Wait for the job to complete.
+   * try {
+   *   Job completedJob = job.waitFor(RetryOption.initialRetryDelay(Duration.ofSeconds(1)),
+   *       RetryOption.totalTimeout(Duration.ofMinutes(3)));
+   *   if (completedJob != null && completedJob.getStatus().getError() == null) {
+   *     // Job completed successfully
+   *   } else {
+   *     // Handle error case
+   *   }
+   * } catch (InterruptedException e) {
+   *   // Handle interrupted wait
+   * }
+   * }
+ * + * @param destinationDataset the user-defined id of the destination dataset + * @param destinationTable the user-defined id of the destination table + * @param options job options + * @throws BigQueryException upon failure + */ + public Job copy(String destinationDataset, String destinationTable, JobOption... options) + throws BigQueryException { + return copy(TableId.of(destinationDataset, destinationTable), options); + } + + /** + * Starts a BigQuery Job to copy the current table to the provided destination table. Returns the + * started {@link Job} object. + * + *

Example copying the table to a destination table. + *

 {@code
+   * String dataset = "my_dataset";
+   * String tableName = "my_destination_table";
+   * TableId destinationId = TableId.of(dataset, tableName);
+   * JobOption options = JobOption.fields(JobField.STATUS, JobField.USER_EMAIL);
+   * Job job = table.copy(destinationId, options);
+   * // Wait for the job to complete.
+   * try {
+   *   Job completedJob = job.waitFor(RetryOption.initialRetryDelay(Duration.ofSeconds(1)),
+   *       RetryOption.totalTimeout(Duration.ofMinutes(3)));
+   *   if (completedJob != null && completedJob.getStatus().getError() == null) {
+   *     // Job completed successfully.
+   *   } else {
+   *     // Handle error case.
+   *   }
+   * } catch (InterruptedException e) {
+   *   // Handle interrupted wait
+   * }
+   * }
+ * + * @param destinationTable the destination table of the copy job + * @param options job options + * @throws BigQueryException upon failure + */ + public Job copy(TableId destinationTable, JobOption... options) + throws BigQueryException { + CopyJobConfiguration configuration = CopyJobConfiguration.of(destinationTable, getTableId()); + return bigquery.create(JobInfo.of(configuration), options); + } + + /** + * Starts a BigQuery Job to extract the current table to the provided destination URI. Returns the + * started {@link Job} object. + * + *

Example extracting data to single Google Cloud Storage file. + *

 {@code
+   * String format = "CSV";
+   * String gcsUrl = "gs://my_bucket/filename.csv";
+   * Job job = table.extract(format, gcsUrl);
+   * // Wait for the job to complete
+   * try {
+   *   Job completedJob = job.waitFor(RetryOption.initialRetryDelay(Duration.ofSeconds(1)),
+   *       RetryOption.totalTimeout(Duration.ofMinutes(3)));
+   *   if (completedJob != null && completedJob.getStatus().getError() == null) {
+   *     // Job completed successfully
+   *   } else {
+   *     // Handle error case
+   *   }
+   * } catch (InterruptedException e) {
+   *   // Handle interrupted wait
+   * }
+   * }
+ * + * @param format the format of the extracted data + * @param destinationUri the fully-qualified Google Cloud Storage URI (e.g. gs://bucket/path) + * where the extracted table should be written + * @param options job options + * @throws BigQueryException upon failure + */ + public Job extract(String format, String destinationUri, JobOption... options) + throws BigQueryException { + return extract(format, ImmutableList.of(destinationUri), options); + } + + /** + * Starts a BigQuery Job to extract the current table to the provided destination URIs. Returns + * the started {@link Job} object. + * + *

Example of partitioning data to a list of Google Cloud Storage files. + *

 {@code
+   * String format = "CSV";
+   * String gcsUrl1 = "gs://my_bucket/PartitionA_*.csv";
+   * String gcsUrl2 = "gs://my_bucket/PartitionB_*.csv";
+   * List destinationUris = new ArrayList<>();
+   * destinationUris.add(gcsUrl1);
+   * destinationUris.add(gcsUrl2);
+   * Job job = table.extract(format, destinationUris);
+   * // Wait for the job to complete
+   * try {
+   *   Job completedJob = job.waitFor(RetryOption.initialRetryDelay(Duration.ofSeconds(1)),
+   *       RetryOption.totalTimeout(Duration.ofMinutes(3)));
+   *   if (completedJob != null && completedJob.getStatus().getError() == null) {
+   *     // Job completed successfully
+   *   } else {
+   *     // Handle error case
+   *   }
+   * } catch (InterruptedException e) {
+   *   // Handle interrupted wait
+   * }
+   * }
+ * + * @param format the format of the exported data + * @param destinationUris the fully-qualified Google Cloud Storage URIs (e.g. gs://bucket/path) + * where the extracted table should be written + * @param options job options + * @throws BigQueryException upon failure + */ + public Job extract(String format, List destinationUris, JobOption... options) + throws BigQueryException { + ExtractJobConfiguration extractConfiguration = + ExtractJobConfiguration.of(getTableId(), destinationUris, format); + return bigquery.create(JobInfo.of(extractConfiguration), options); + } + + /** + * Starts a BigQuery Job to load data into the current table from the provided source URI. Returns + * the started {@link Job} object. + * + *

Example loading data from a single Google Cloud Storage file. + *

 {@code
+   * String sourceUri = "gs://my_bucket/filename.csv";
+   * Job job = table.load(FormatOptions.csv(), sourceUri);
+   * // Wait for the job to complete
+   * try {
+   *   Job completedJob = job.waitFor(RetryOption.initialRetryDelay(Duration.ofSeconds(1)),
+   *             RetryOption.totalTimeout(Duration.ofMinutes(3)));
+   *   if (completedJob != null && completedJob.getStatus().getError() == null) {
+   *     // Job completed successfully
+   *   } else {
+   *     // Handle error case
+   *   }
+   * } catch (InterruptedException e) {
+   *   // Handle interrupted wait
+   * }
+   * }
+ * + * @param format the format of the data to load + * @param sourceUri the fully-qualified Google Cloud Storage URI (e.g. gs://bucket/path) from + * which to load the data + * @param options job options + * @throws BigQueryException upon failure + */ + public Job load(FormatOptions format, String sourceUri, JobOption... options) + throws BigQueryException { + return load(format, ImmutableList.of(sourceUri), options); + } + + /** + * Starts a BigQuery Job to load data into the current table from the provided source URIs. + * Returns the started {@link Job} object. + * + *

Example loading data from a list of Google Cloud Storage files. + *

 {@code
+   * String gcsUrl1 = "gs://my_bucket/filename1.csv";
+   * String gcsUrl2 = "gs://my_bucket/filename2.csv";
+   * List sourceUris = new ArrayList<>();
+   * sourceUris.add(gcsUrl1);
+   * sourceUris.add(gcsUrl2);
+   * Job job = table.load(FormatOptions.csv(), sourceUris);
+   * // Wait for the job to complete
+   * try {
+   *   Job completedJob = job.waitFor(RetryOption.initialRetryDelay(Duration.ofSeconds(1)),
+   *       RetryOption.totalTimeout(Duration.ofMinutes(3)));
+   *   if (completedJob != null && completedJob.getStatus().getError() == null) {
+   *     // Job completed successfully
+   *   } else {
+   *     // Handle error case
+   *   }
+   * } catch (InterruptedException e) {
+   *   // Handle interrupted wait
+   * }
+   * }
+ * + * @param format the format of the exported data + * @param sourceUris the fully-qualified Google Cloud Storage URIs (e.g. gs://bucket/path) from + * which to load the data + * @param options job options + * @throws BigQueryException upon failure + */ + public Job load(FormatOptions format, List sourceUris, JobOption... options) + throws BigQueryException { + LoadJobConfiguration loadConfig = LoadJobConfiguration.of(getTableId(), sourceUris, format); + return bigquery.create(JobInfo.of(loadConfig), options); + } + + + /** + * Returns the table's {@code BigQuery} object used to issue requests. + */ + public BigQuery getBigQuery() { + return bigquery; + } + + @Override + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public final boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj == null || !obj.getClass().equals(Table.class)) { + return false; + } + Table other = (Table) obj; + return Objects.equals(toPb(), other.toPb()) + && Objects.equals(options, other.options); + } + + @Override + public final int hashCode() { + return Objects.hash(super.hashCode(), options); + } + + private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { + in.defaultReadObject(); + this.bigquery = options.getService(); + } + + static Table fromPb(BigQuery bigquery, com.google.api.services.bigquery.model.Table tablePb) { + return new Table(bigquery, new TableInfo.BuilderImpl(tablePb)); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java new file mode 100644 index 000000000000..b89ee6c0e423 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java @@ -0,0 +1,168 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.cloud.RetryHelper.runWithRetries; + +import com.google.cloud.BaseWriteChannel; +import com.google.cloud.RestorableState; +import com.google.cloud.RetryHelper; +import com.google.cloud.WriteChannel; +import java.util.List; +import java.util.Objects; +import java.util.concurrent.Callable; + +/** + * {@link WriteChannel} implementation to stream data into a BigQuery table. Use {@link #getJob()} + * to get the job used to insert streamed data. Please notice that {@link #getJob()} returns + * {@code null} until the channel is closed. + */ +public class TableDataWriteChannel extends + BaseWriteChannel { + + private Job job; + + TableDataWriteChannel( + BigQueryOptions options, JobId jobId, WriteChannelConfiguration writeChannelConfiguration) { + this(options, writeChannelConfiguration, open(options, jobId, writeChannelConfiguration)); + } + + TableDataWriteChannel(BigQueryOptions options, WriteChannelConfiguration config, + String uploadId) { + super(options, config, uploadId); + } + + @Override + protected void flushBuffer(final int length, final boolean last) { + try { + com.google.api.services.bigquery.model.Job jobPb = runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Job call() { + return getOptions().getBigQueryRpcV2().write( + getUploadId(), getBuffer(), 0, getPosition(), length, last); + } + }, getOptions().getRetrySettings(), BigQueryImpl.EXCEPTION_HANDLER, getOptions().getClock()); + job = jobPb != null ? Job.fromPb(getOptions().getService(), jobPb) : null; + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + protected StateImpl.Builder stateBuilder() { + return StateImpl.builder(getOptions(), getEntity(), getUploadId(), job); + } + + private static String open( + final BigQueryOptions options, + final JobId jobId, + final WriteChannelConfiguration writeChannelConfiguration) { + try { + return runWithRetries( + new Callable() { + @Override + public String call() { + return options + .getBigQueryRpcV2() + .open( + new com.google.api.services.bigquery.model.Job() + .setConfiguration(writeChannelConfiguration.toPb()) + .setJobReference(jobId.toPb())); + } + }, + options.getRetrySettings(), + BigQueryImpl.EXCEPTION_HANDLER, + options.getClock()); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + private void setJob(Job job) { + this.job = job; + } + + /** + * Returns the {@code Job} created to insert the rows. The job is available only once the upload + * finished and the channel was closed, returns {@code null} otherwise. + */ + public Job getJob() { + return job; + } + + static class StateImpl + extends BaseWriteChannel.BaseState { + + private static final long serialVersionUID = -2692851818766876346L; + + private final Job job; + + StateImpl(Builder builder) { + super(builder); + this.job = builder.job; + } + + static class Builder + extends BaseWriteChannel.BaseState.Builder { + + private final Job job; + + private Builder(BigQueryOptions options, WriteChannelConfiguration configuration, + String uploadId, Job job) { + super(options, configuration, uploadId); + this.job = job; + } + + public RestorableState build() { + return new StateImpl(this); + } + } + + static Builder builder(BigQueryOptions options, WriteChannelConfiguration config, + String uploadId, Job job) { + return new Builder(options, config, uploadId, job); + } + + @Override + public WriteChannel restore() { + TableDataWriteChannel channel = new TableDataWriteChannel(serviceOptions, entity, uploadId); + channel.restore(this); + channel.setJob(job); + return channel; + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), job); + } + + @Override + public boolean equals(Object obj) { + return super.equals(obj) + && obj instanceof StateImpl + && Objects.equals(job, ((StateImpl) obj).job); + } + + @Override + protected List toStringHelper() { + List valueList = super.toStringHelper(); + valueList.add(ValueHolder.create("job", job)); + return valueList; + } + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java new file mode 100644 index 000000000000..6138987909fa --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java @@ -0,0 +1,165 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.core.ApiFunction; +import com.google.api.services.bigquery.model.Table; +import com.google.cloud.StringEnumType; +import com.google.cloud.StringEnumValue; +import java.io.Serializable; +import javax.annotation.Nullable; + +/** + * Base class for a Google BigQuery table definition. + */ +public abstract class TableDefinition implements Serializable { + + private static final long serialVersionUID = -374760330662959529L; + + /** + * The table type. + */ + public static final class Type extends StringEnumValue { + private static final long serialVersionUID = -551560816480511474L; + + private static final ApiFunction CONSTRUCTOR = + new ApiFunction() { + @Override + public Type apply(String constant) { + return new Type(constant); + } + }; + + private static final StringEnumType type = new StringEnumType( + Type.class, + CONSTRUCTOR); + + /** + * A normal BigQuery table. Instances of {@code TableDefinition} for this type are implemented + * by {@link StandardTableDefinition}. + */ + public static final Type TABLE = type.createAndRegister("TABLE"); + + /** + * A virtual table defined by a SQL query. Instances of {@code TableDefinition} for this type + * are implemented by {@link ViewDefinition}. + * + * @see Views + */ + public static final Type VIEW = type.createAndRegister("VIEW"); + + /** + * A BigQuery table backed by external data. Instances of {@code TableDefinition} for this type + * are implemented by {@link ExternalTableDefinition}. + * + * @see Federated Data + * Sources + */ + public static final Type EXTERNAL = type.createAndRegister("EXTERNAL"); + + private Type(String constant) { + super(constant); + } + + /** + * Get the Type for the given String constant, and throw an exception if the constant is + * not recognized. + */ + public static Type valueOfStrict(String constant) { + return type.valueOfStrict(constant); + } + + /** + * Get the Type for the given String constant, and allow unrecognized values. + */ + public static Type valueOf(String constant) { + return type.valueOf(constant); + } + + /** + * Return the known values for Type. + */ + public static Type[] values() { + return type.values(); + } + } + + /** + * Base builder for table definitions. + * + * @param the table definition class + * @param the table definition builder + */ + public abstract static class Builder> { + public abstract B setType(Type type); + + /** Sets the table schema. */ + public abstract B setSchema(Schema schema); + + /** + * Creates an object. + */ + public abstract T build(); + + B table(Table tablePb) { + if (tablePb.getSchema() != null) { + setSchema(Schema.fromPb(tablePb.getSchema())); + } + return setType(Type.valueOf(tablePb.getType())); + } + } + + /** + * Returns the table's type. If this table is simple table the method returns {@link Type#TABLE}. + * If this table is an external table this method returns {@link Type#EXTERNAL}. If this table is + * a view table this method returns {@link Type#VIEW}. + */ + public abstract Type getType(); + + /** Returns the table's schema. */ + @Nullable + public abstract Schema getSchema(); + + /** + * Returns a builder for the object. + */ + public abstract Builder toBuilder(); + + Table toPb() { + Table tablePb = new Table(); + if (getSchema() != null) { + tablePb.setSchema(getSchema().toPb()); + } + tablePb.setType(getType().name()); + return tablePb; + } + + @SuppressWarnings("unchecked") + static T fromPb(Table tablePb) { + switch (Type.valueOf(tablePb.getType()).toString()) { + case "TABLE": + return (T) StandardTableDefinition.fromPb(tablePb); + case "VIEW": + return (T) ViewDefinition.fromPb(tablePb); + case "EXTERNAL": + return (T) ExternalTableDefinition.fromPb(tablePb); + default: + // never reached + throw new IllegalArgumentException("Format " + tablePb.getType() + " is not supported"); + } + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java new file mode 100644 index 000000000000..18047c625a38 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java @@ -0,0 +1,127 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.TableReference; +import com.google.common.base.Function; + +import java.io.Serializable; +import java.util.Objects; + +/** + * Google BigQuery Table identity. + */ +public final class TableId implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public TableId apply(TableReference pb) { + return TableId.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public TableReference apply(TableId tableId) { + return tableId.toPb(); + } + }; + private static final long serialVersionUID = -6186254820908152300L; + + private final String project; + private final String dataset; + private final String table; + + + /** + * Returns project's user-defined id. + */ + public String getProject() { + return project; + } + + + /** + * Returns dataset's user-defined id. + */ + public String getDataset() { + return dataset; + } + + + /** + * Returns table's user-defined id. + */ + public String getTable() { + return table; + } + + private TableId(String project, String dataset, String table) { + this.project = project; + this.dataset = dataset; + this.table = table; + } + + /** + * Creates a table identity given project's, dataset's and table's user-defined ids. + */ + public static TableId of(String project, String dataset, String table) { + return new TableId(checkNotNull(project), checkNotNull(dataset), checkNotNull(table)); + } + + /** + * Creates a table identity given dataset's and table's user-defined ids. + */ + public static TableId of(String dataset, String table) { + return new TableId(null, checkNotNull(dataset), checkNotNull(table)); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof TableId + && Objects.equals(toPb(), ((TableId) obj).toPb()); + } + + @Override + public int hashCode() { + return Objects.hash(project, dataset, table); + } + + @Override + public String toString() { + return toPb().toString(); + } + + TableId setProjectId(String projectId) { + return getProject() != null ? this : TableId.of(projectId, getDataset(), getTable()); + } + + TableReference toPb() { + return new TableReference().setProjectId(project).setDatasetId(dataset).setTableId(table); + } + + static TableId fromPb(TableReference tableRef) { + return new TableId( + tableRef.getProjectId(), + tableRef.getDatasetId(), + tableRef.getTableId()); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java new file mode 100644 index 000000000000..ac741967c117 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -0,0 +1,475 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.MoreObjects.firstNonNull; +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.client.util.Data; +import com.google.api.core.BetaApi; +import com.google.api.services.bigquery.model.Table; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; +import java.io.Serializable; +import java.math.BigInteger; +import java.util.Map; +import java.util.Objects; + +/** + * Google BigQuery table information. Use {@link StandardTableDefinition} to create simple BigQuery + * table. Use {@link ViewDefinition} to create a BigQuery view. Use {@link ExternalTableDefinition} + * to create a BigQuery a table backed by external data. + * + * @see Managing Tables + */ +public class TableInfo implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public TableInfo apply(Table pb) { + return TableInfo.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public Table apply(TableInfo tableInfo) { + return tableInfo.toPb(); + } + }; + + private static final long serialVersionUID = 609769795097719407L; + + private final String etag; + private final String generatedId; + private final String selfLink; + private final TableId tableId; + private final String friendlyName; + private final String description; + private final Long creationTime; + private final Long expirationTime; + private final Long lastModifiedTime; + private final TableDefinition definition; + private final EncryptionConfiguration encryptionConfiguration; + private final Labels labels; + + /** + * A builder for {@code TableInfo} objects. + */ + public abstract static class Builder { + + abstract Builder setCreationTime(Long creationTime); + + + /** + * Sets a user-friendly description for the table. + */ + public abstract Builder setDescription(String description); + + abstract Builder setEtag(String etag); + + + /** + * Sets the time when this table expires, in milliseconds since the epoch. If not present, the + * table will persist indefinitely. Expired tables will be deleted and their storage reclaimed. + */ + public abstract Builder setExpirationTime(Long expirationTime); + + + /** + * Sets a user-friendly name for the table. + */ + public abstract Builder setFriendlyName(String friendlyName); + + abstract Builder setGeneratedId(String generatedId); + + abstract Builder setLastModifiedTime(Long lastModifiedTime); + + abstract Builder setSelfLink(String selfLink); + + /** + * Sets the table identity. + */ + public abstract Builder setTableId(TableId tableId); + + + /** + * Sets the table definition. Use {@link StandardTableDefinition} to create simple BigQuery + * table. Use {@link ViewDefinition} to create a BigQuery view. Use + * {@link ExternalTableDefinition} to create a BigQuery a table backed by external data. + */ + public abstract Builder setDefinition(TableDefinition definition); + + /** + * Sets the labels applied to this table. + * + *

Unstable, because labels are experimental. + * + *

When used with {@link BigQuery#update(TableInfo, TableOption...)}, setting {@code labels} + * to {@code null} removes all labels; otherwise all keys that are mapped to {@code null} values + * are removed and other keys are updated to their respective values. + */ + @BetaApi + public abstract Builder setLabels(Map labels); + + /** + * Creates a {@code TableInfo} object. + */ + public abstract TableInfo build(); + + public abstract Builder setEncryptionConfiguration(EncryptionConfiguration configuration); + } + + static class BuilderImpl extends Builder { + + private String etag; + private String generatedId; + private String selfLink; + private TableId tableId; + private String friendlyName; + private String description; + private Long creationTime; + private Long expirationTime; + private Long lastModifiedTime; + private TableDefinition definition; + private EncryptionConfiguration encryptionConfiguration; + private Labels labels = Labels.ZERO; + + BuilderImpl() {} + + BuilderImpl(TableInfo tableInfo) { + this.etag = tableInfo.etag; + this.generatedId = tableInfo.generatedId; + this.selfLink = tableInfo.selfLink; + this.tableId = tableInfo.tableId; + this.friendlyName = tableInfo.friendlyName; + this.description = tableInfo.description; + this.creationTime = tableInfo.creationTime; + this.expirationTime = tableInfo.expirationTime; + this.lastModifiedTime = tableInfo.lastModifiedTime; + this.definition = tableInfo.definition; + this.encryptionConfiguration = tableInfo.encryptionConfiguration; + this.labels = tableInfo.labels; + } + + BuilderImpl(Table tablePb) { + this.tableId = TableId.fromPb(tablePb.getTableReference()); + if (tablePb.getLastModifiedTime() != null) { + this.setLastModifiedTime(tablePb.getLastModifiedTime().longValue()); + } + this.description = tablePb.getDescription(); + this.expirationTime = tablePb.getExpirationTime(); + this.friendlyName = tablePb.getFriendlyName(); + this.creationTime = tablePb.getCreationTime(); + this.etag = tablePb.getEtag(); + this.generatedId = tablePb.getId(); + this.selfLink = tablePb.getSelfLink(); + this.definition = TableDefinition.fromPb(tablePb); + if (tablePb.getEncryptionConfiguration() != null) { + this.encryptionConfiguration = + new EncryptionConfiguration.Builder(tablePb.getEncryptionConfiguration()).build(); + } + this.labels = Labels.fromPb(tablePb.getLabels()); + } + + @Override + Builder setCreationTime(Long creationTime) { + this.creationTime = creationTime; + return this; + } + + + @Override + public Builder setDescription(String description) { + this.description = firstNonNull(description, Data.nullOf(String.class)); + return this; + } + + @Override + Builder setEtag(String etag) { + this.etag = etag; + return this; + } + + + @Override + public Builder setExpirationTime(Long expirationTime) { + this.expirationTime = firstNonNull(expirationTime, Data.nullOf(Long.class)); + return this; + } + + + @Override + public Builder setFriendlyName(String friendlyName) { + this.friendlyName = firstNonNull(friendlyName, Data.nullOf(String.class)); + return this; + } + + @Override + Builder setGeneratedId(String generatedId) { + this.generatedId = generatedId; + return this; + } + + @Override + Builder setLastModifiedTime(Long lastModifiedTime) { + this.lastModifiedTime = lastModifiedTime; + return this; + } + + @Override + Builder setSelfLink(String selfLink) { + this.selfLink = selfLink; + return this; + } + + + @Override + public Builder setTableId(TableId tableId) { + this.tableId = checkNotNull(tableId); + return this; + } + + + @Override + public Builder setDefinition(TableDefinition definition) { + this.definition = checkNotNull(definition); + return this; + } + + + @Override + public Builder setEncryptionConfiguration(EncryptionConfiguration configuration) { + this.encryptionConfiguration = configuration; + return this; + } + + + @Override + public Builder setLabels(Map labels) { + this.labels = Labels.fromUser(labels); + return this; + } + + @Override + public TableInfo build() { + return new TableInfo(this); + } + } + + TableInfo(BuilderImpl builder) { + this.tableId = checkNotNull(builder.tableId); + this.etag = builder.etag; + this.generatedId = builder.generatedId; + this.selfLink = builder.selfLink; + this.friendlyName = builder.friendlyName; + this.description = builder.description; + this.creationTime = builder.creationTime; + this.expirationTime = builder.expirationTime; + this.lastModifiedTime = builder.lastModifiedTime; + this.definition = builder.definition; + this.encryptionConfiguration = builder.encryptionConfiguration; + labels = builder.labels; + } + + + /** + * Returns the hash of the table resource. + */ + public String getEtag() { + return etag; + } + + + /** + * Returns the service-generated id for the table. + */ + public String getGeneratedId() { + return generatedId; + } + + + /** + * Returns an URL that can be used to access the resource again. The returned URL can be used for + * get or update requests. + */ + public String getSelfLink() { + return selfLink; + } + + + /** + * Returns the table identity. + */ + public TableId getTableId() { + return tableId; + } + + + /** + * Returns a user-friendly name for the table. + */ + public String getFriendlyName() { + return Data.isNull(friendlyName) ? null : friendlyName; + } + + + /** + * Returns a user-friendly description for the table. + */ + public String getDescription() { + return Data.isNull(description) ? null : description; + } + + + /** + * Returns the time when this table was created, in milliseconds since the epoch. + */ + public Long getCreationTime() { + return creationTime; + } + + + /** + * Returns the time when this table expires, in milliseconds since the epoch. If not present, the + * table will persist indefinitely. Expired tables will be deleted and their storage reclaimed. + */ + public Long getExpirationTime() { + return Data.isNull(expirationTime) ? null : expirationTime; + } + + + /** + * Returns the time when this table was last modified, in milliseconds since the epoch. + */ + public Long getLastModifiedTime() { + return lastModifiedTime; + } + + + public EncryptionConfiguration getEncryptionConfiguration() { + return encryptionConfiguration; + } + + /** + * Returns the table definition. + */ + @SuppressWarnings("unchecked") + public T getDefinition() { + return (T) definition; + } + + /** + * Return a map for labels applied to the table. + * + *

Unstable, because labels are experimental. + */ + @BetaApi + public Map getLabels() { + return labels.userMap(); + } + + /** + * Returns a builder for the table object. + */ + public Builder toBuilder() { + return new BuilderImpl(this); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("tableId", tableId) + .add("etag", etag) + .add("generatedId", generatedId) + .add("selfLink", selfLink) + .add("friendlyName", friendlyName) + .add("description", description) + .add("expirationTime", expirationTime) + .add("creationTime", creationTime) + .add("lastModifiedTime", lastModifiedTime) + .add("definition", definition) + .add("encryptionConfiguration", encryptionConfiguration) + .add("labels", labels) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(tableId); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(TableInfo.class) + && Objects.equals(toPb(), ((TableInfo) obj).toPb()); + } + + + /** + * Returns a builder for a {@code TableInfo} object given table identity and definition. Use + * {@link StandardTableDefinition} to create simple BigQuery table. Use {@link ViewDefinition} to + * create a BigQuery view. Use {@link ExternalTableDefinition} to create a BigQuery a table backed + * by external data. + */ + public static Builder newBuilder(TableId tableId, TableDefinition definition) { + return new BuilderImpl().setTableId(tableId).setDefinition(definition); + } + + /** + * Returns a {@code TableInfo} object given table identity and definition. Use + * {@link StandardTableDefinition} to create simple BigQuery table. Use {@link ViewDefinition} to + * create a BigQuery view. Use {@link ExternalTableDefinition} to create a BigQuery a table backed + * by external data. + */ + public static TableInfo of(TableId tableId, TableDefinition definition) { + return newBuilder(tableId, definition).build(); + } + + TableInfo setProjectId(String projectId) { + return toBuilder().setTableId(getTableId().setProjectId(projectId)).build(); + } + + Table toPb() { + Table tablePb = definition.toPb(); + tablePb.setTableReference(tableId.toPb()); + if (lastModifiedTime != null) { + tablePb.setLastModifiedTime(BigInteger.valueOf(lastModifiedTime)); + } + tablePb.setCreationTime(creationTime); + tablePb.setDescription(description); + tablePb.setEtag(etag); + tablePb.setExpirationTime(expirationTime); + tablePb.setFriendlyName(friendlyName); + tablePb.setId(generatedId); + tablePb.setSelfLink(selfLink); + if (encryptionConfiguration != null) { + tablePb.setEncryptionConfiguration(encryptionConfiguration.toPb()); + } + tablePb.setLabels(labels.toPb()); + return tablePb; + } + + static TableInfo fromPb(Table tablePb) { + return new BuilderImpl(tablePb).build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java new file mode 100644 index 000000000000..a7be10d7d2ad --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java @@ -0,0 +1,134 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.core.InternalApi; +import com.google.api.gax.paging.Page; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; +import com.google.common.collect.Iterables; +import com.google.common.collect.Iterators; +import java.io.Serializable; +import java.util.Objects; +import javax.annotation.Nullable; + +public class TableResult implements Page, Serializable { + + private static final long serialVersionUID = -4831062717210349819L; + + @Nullable private final Schema schema; + private final long totalRows; + private final Page pageNoSchema; + + /** + * If {@code schema} is non-null, {@code TableResult} adds the schema to {@code FieldValueList}s + * when iterating through them. {@code pageNoSchema} must not be null. + */ + @InternalApi("Exposed for testing") + public TableResult(Schema schema, long totalRows, Page pageNoSchema) { + this.schema = schema; + this.totalRows = totalRows; + this.pageNoSchema = checkNotNull(pageNoSchema); + } + + /** Returns the schema of the results. Null if the schema is not supplied. */ + public Schema getSchema() { + return schema; + } + + /** + * Returns the total number of rows in the complete result set, which can be more than the number + * of rows in the first page of results returned by {@link #getValues()}. + */ + public long getTotalRows() { + return totalRows; + } + + @Override + public boolean hasNextPage() { + return pageNoSchema.hasNextPage(); + } + + @Override + public String getNextPageToken() { + return pageNoSchema.getNextPageToken(); + } + + @Override + public TableResult getNextPage() { + if (pageNoSchema.hasNextPage()) { + return new TableResult(schema, totalRows, pageNoSchema.getNextPage()); + } + return null; + } + + @Override + public Iterable iterateAll() { + return addSchema(pageNoSchema.iterateAll()); + } + + @Override + public Iterable getValues() { + return addSchema(pageNoSchema.getValues()); + } + + private Iterable addSchema(Iterable iter) { + if (schema == null) { + return iter; + } + return Iterables.transform( + iter, + new Function() { + @Override + public FieldValueList apply(FieldValueList list) { + return list.withSchema(schema.getFields()); + } + }); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("rows", getValues()) + .add("schema", schema) + .add("totalRows", totalRows) + .add("cursor", getNextPageToken()) + .toString(); + } + + @Override + public final int hashCode() { + return Objects.hash(pageNoSchema, schema, totalRows); + } + + @Override + public final boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj == null || !obj.getClass().equals(TableResult.class)) { + return false; + } + TableResult response = (TableResult) obj; + return Objects.equals(getNextPageToken(), response.getNextPageToken()) + && Iterators.elementsEqual(getValues().iterator(), response.getValues().iterator()) + && Objects.equals(schema, response.schema) + && totalRows == response.totalRows; + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java new file mode 100644 index 000000000000..659c902b56b8 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java @@ -0,0 +1,154 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.core.BetaApi; +import com.google.auto.value.AutoValue; +import com.google.common.base.MoreObjects; + +import javax.annotation.Nullable; +import java.io.Serializable; +import java.util.Objects; + +/** + * Objects of this class allow to configure table partitioning based on time. By dividing a large + * table into smaller partitions, you can improve query performance and reduce the number of bytes + * billed by restricting the amount of data scanned. + * + * @see Partitioned Tables + */ +@AutoValue +public abstract class TimePartitioning implements Serializable { + + private static final long serialVersionUID = -8565064035346940951L; + + /** + * The type of time partitioning. Currently, the only type supported is {@code DAY}, which will + * generate one partition per day based on data loading time. + */ + public enum Type { + + /** + * Table is partitioned per day, based on data loading time. + */ + DAY + } + + TimePartitioning() { + // Users cannot extend this, but AutoValue can. + } + + /** + * Returns the time partitioning type. Currently, the only type supported is {@link Type#DAY}, + * which will generate one partition per day based on data loading time. + */ + public abstract Type getType(); + + + /** + * Returns the number of milliseconds for which to keep the storage for a partition. When expired, + * the storage for the partition is reclaimed. + */ + @Nullable + public abstract Long getExpirationMs(); + + + /** + * If not set, the table is partitioned by pseudo column '_PARTITIONTIME'; if set, the table is + * partitioned by this field. + */ + @BetaApi + @Nullable + public abstract String getField(); + + + /** + * If set to true, queries over this table require a partition filter (that can be used for + * partition elimination) to be specified. + */ + @BetaApi + @Nullable + public abstract Boolean getRequirePartitionFilter(); + + public abstract Builder toBuilder(); + + @AutoValue.Builder + public abstract static class Builder { + abstract Builder setType(Type type); + + public abstract Builder setExpirationMs(Long expirationMs); + + @BetaApi + public abstract Builder setRequirePartitionFilter(Boolean requirePartitionFilter); + + @BetaApi + public abstract Builder setField(String field); + + public abstract TimePartitioning build(); + } + + /** + * Returns a {@code TimePartitioning} object given the time partitioning type. Currently, the only + * type supported is {@link Type#DAY}, which will generate one partition per day based on data + * loading time. + */ + public static Builder newBuilder(Type type) { + return new AutoValue_TimePartitioning.Builder().setType(type); + } + + /** + * Returns a {@code TimePartitioning} object given the time partitioning type. Currently, the only + * type supported is {@link Type#DAY}, which will generate one partition per day based on data + * loading time. + */ + public static TimePartitioning of(Type type) { + return newBuilder(type).build(); + } + + /** + * Returns a {@code TimePartitioning} object given the time partitioning type and the partition's + * expiration in milliseconds. + * + * @param type the time partitioning type. Currently, the only type supported is {@link Type#DAY}, + * which will generate one partition per day based on data loading time. + * @param expirationMs the number of milliseconds for which to keep the storage for a partition + */ + public static TimePartitioning of(Type type, long expirationMs) { + return newBuilder(type).setExpirationMs(expirationMs).build(); + } + + com.google.api.services.bigquery.model.TimePartitioning toPb() { + com.google.api.services.bigquery.model.TimePartitioning partitioningPb = + new com.google.api.services.bigquery.model.TimePartitioning(); + partitioningPb.setType(getType().name()); + partitioningPb.setExpirationMs(getExpirationMs()); + partitioningPb.setRequirePartitionFilter(getRequirePartitionFilter()); + partitioningPb.setField(getField()); + return partitioningPb; + } + + static TimePartitioning fromPb( + com.google.api.services.bigquery.model.TimePartitioning partitioningPb) { + return newBuilder(Type.valueOf(partitioningPb.getType())) + .setExpirationMs(partitioningPb.getExpirationMs()) + .setField(partitioningPb.getField()) + .setRequirePartitionFilter(partitioningPb.getRequirePartitionFilter()) + .build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java new file mode 100644 index 000000000000..84c2145d4b54 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java @@ -0,0 +1,124 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.QueryTimelineSample; +import com.google.common.base.Function; +import com.google.auto.value.AutoValue; +import javax.annotation.Nullable; + +/** + * A specific timeline sample. This instruments work progress at a given point in time, providing + * information about work units active/pending/completed as well as cumulative slot-milliseconds. + */ +@AutoValue +public abstract class TimelineSample { + + private static final long serialVersionUID = 1L; + + @AutoValue.Builder + public abstract static class Builder { + + public abstract Builder setElapsedMs(Long elapsedMs); + + public abstract Builder setActiveUnits(Long activeUnits); + + public abstract Builder setCompletedUnits(Long completedUnits); + + public abstract Builder setPendingUnits(Long pendingUnits); + + public abstract Builder setSlotMillis(Long slotMillis); + + public abstract TimelineSample build(); + + } + + /** + * Returns the sample time as milliseconds elapsed since the start of query execution. + */ + @Nullable + public abstract Long getElapsedMs(); + + /** + * Returns the total number of work units currently being processed. + */ + @Nullable + public abstract Long getActiveUnits(); + + /** + * Returns the total number of work units completed by this query. + */ + @Nullable + public abstract Long getCompletedUnits(); + + /** + * Returns the number of work units remaining for the currently active stages. + */ + @Nullable + public abstract Long getPendingUnits(); + + /** + * Returns the cumulative slot-milliseconds consumed by the query. + */ + @Nullable + public abstract Long getSlotMillis(); + + /** + * return a builder for the {@code TimelineSample} object. + */ + public abstract Builder toBuilder(); + + static Builder newBuilder() { + return new AutoValue_TimelineSample.Builder(); + } + + static TimelineSample fromPb(QueryTimelineSample sample) { + Builder builder = newBuilder(); + builder.setElapsedMs(sample.getElapsedMs()); + builder.setActiveUnits(sample.getActiveUnits()); + builder.setCompletedUnits(sample.getCompletedUnits()); + builder.setPendingUnits(sample.getPendingUnits()); + builder.setSlotMillis(sample.getTotalSlotMs()); + return builder.build(); + } + + QueryTimelineSample toPb() { + QueryTimelineSample sample = new QueryTimelineSample() + .setElapsedMs(getElapsedMs()) + .setActiveUnits(getActiveUnits()) + .setCompletedUnits(getCompletedUnits()) + .setPendingUnits(getPendingUnits()) + .setTotalSlotMs(getSlotMillis()); + return sample; + } + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public TimelineSample apply(QueryTimelineSample pb) { + return TimelineSample.fromPb(pb); + } + }; + + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public QueryTimelineSample apply(TimelineSample sample) { + return sample.toPb(); + } + }; + +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java new file mode 100644 index 000000000000..0f99b3c94170 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java @@ -0,0 +1,173 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.UserDefinedFunctionResource; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; + +import java.io.Serializable; +import java.util.Objects; + +/** + * Google BigQuery User Defined Function. BigQuery supports user-defined functions (UDFs) written in + * JavaScript. A UDF is similar to the "Map" function in a MapReduce: it takes a single row as input + * and produces zero or more rows as output. The output can potentially have a different schema than + * the input. + * + * @see User-Defined Functions + * + */ +public abstract class UserDefinedFunction implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public UserDefinedFunction apply(UserDefinedFunctionResource userDefinedFunctionPb) { + return UserDefinedFunction.fromPb(userDefinedFunctionPb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public UserDefinedFunctionResource apply(UserDefinedFunction userDefinedFunction) { + return userDefinedFunction.toPb(); + } + }; + + private static final long serialVersionUID = 8704260561787440287L; + + /** + * Type of user-defined function. User defined functions can be provided inline as code blobs + * ({@link #INLINE}) or as a Google Cloud Storage URI ({@link #FROM_URI}). + */ + public enum Type { + INLINE, + FROM_URI + } + + private final Type type; + private final String content; + + UserDefinedFunction(Type type, String content) { + this.type = type; + this.content = content; + } + + + /** + * Returns the type of user defined function. + */ + public Type getType() { + return type; + } + + + /** + * If {@link #getType()} is {@link Type#INLINE} this method returns a code blob. If + * {@link #getType()} is {@link Type#FROM_URI} the method returns a Google Cloud Storage + * URI (e.g. gs://bucket/path). + */ + public String getContent() { + return content; + } + + /** + * A Google Cloud BigQuery user-defined function, as a code blob. + */ + static final class InlineFunction extends UserDefinedFunction { + + private static final long serialVersionUID = 1083672109192091686L; + + InlineFunction(String inlineCode) { + super(Type.INLINE, inlineCode); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("inlineCode", getContent()).toString(); + } + + @Override + public com.google.api.services.bigquery.model.UserDefinedFunctionResource toPb() { + return new com.google.api.services.bigquery.model.UserDefinedFunctionResource() + .setInlineCode(getContent()); + } + } + + /** + * A Google Cloud BigQuery user-defined function, as an URI to Google Cloud Storage. + */ + static final class UriFunction extends UserDefinedFunction { + + private static final long serialVersionUID = 4660331691852223839L; + + UriFunction(String functionUri) { + super(Type.FROM_URI, functionUri); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("functionUri", getContent()).toString(); + } + + @Override + public com.google.api.services.bigquery.model.UserDefinedFunctionResource toPb() { + return new com.google.api.services.bigquery.model.UserDefinedFunctionResource() + .setResourceUri(getContent()); + } + } + + @Override + public int hashCode() { + return Objects.hash(type, content); + } + + @Override + public boolean equals(Object obj) { + return obj instanceof UserDefinedFunction + && Objects.equals(toPb(), ((UserDefinedFunction) obj).toPb()); + } + + public abstract com.google.api.services.bigquery.model.UserDefinedFunctionResource toPb(); + + /** + * Creates a Google Cloud BigQuery user-defined function given a code blob. + */ + public static UserDefinedFunction inline(String functionDefinition) { + return new InlineFunction(functionDefinition); + } + + /** + * Creates a Google Cloud BigQuery user-defined function given a Google Cloud Storage URI (e.g. + * gs://bucket/path). + */ + public static UserDefinedFunction fromUri(String functionDefinition) { + return new UriFunction(functionDefinition); + } + + static UserDefinedFunction fromPb( + com.google.api.services.bigquery.model.UserDefinedFunctionResource pb) { + if (pb.getInlineCode() != null) { + return new InlineFunction(pb.getInlineCode()); + } + if (pb.getResourceUri() != null) { + return new UriFunction(pb.getResourceUri()); + } + throw new IllegalArgumentException("Invalid user-defined function"); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java new file mode 100644 index 000000000000..2bdb059df405 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java @@ -0,0 +1,216 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.Table; +import com.google.auto.value.AutoValue; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; +import java.util.List; +import javax.annotation.Nullable; + +/** + * Google BigQuery view table definition. BigQuery's views are logical views, not materialized + * views, which means that the query that defines the view is re-executed every time the view is + * queried. + * + * @see Views + */ +@AutoValue +public abstract class ViewDefinition extends TableDefinition { + + private static final long serialVersionUID = -8789311196910794545L; + + @AutoValue.Builder + public abstract static class Builder extends TableDefinition.Builder { + /** Sets the query used to create the view. */ + public abstract Builder setQuery(String query); + + /** + * Sets user defined functions that can be used by {@link #getQuery()}. + * + * @see User-Defined + * Functions + */ + public Builder setUserDefinedFunctions(List userDefinedFunctions) { + return setUserDefinedFunctionsImmut(ImmutableList.copyOf(userDefinedFunctions)); + } + + + + /** + * Sets user defined functions that can be used by {@link #getQuery()}. + * + * @see User-Defined + * Functions + */ + public Builder setUserDefinedFunctions(UserDefinedFunction... userDefinedFunctions) { + return setUserDefinedFunctionsImmut(ImmutableList.copyOf(userDefinedFunctions)); + } + + abstract Builder setUserDefinedFunctionsImmut( + ImmutableList userDefinedFunctions); + + /** + * Sets whether to use BigQuery's legacy SQL dialect for this query. By default this property is + * set to {@code false}. If set to {@code false}, the query will use BigQuery's Standard SQL. + * + *

If set to {@code null} or {@code true}, legacy SQL dialect is used. This property is + * experimental and might be subject to change. + */ + public abstract Builder setUseLegacySql(Boolean useLegacySql); + + public abstract Builder setType(Type type); + + /** Sets the table schema. */ + public abstract Builder setSchema(Schema schema); + + /** Creates a {@code ViewDefinition} object. */ + @Override + public abstract ViewDefinition build(); + } + + /** Returns the query used to create the view. */ + @Nullable + public abstract String getQuery(); + + /** + * Returns user defined functions that can be used by {@link #getQuery()}. Returns {@code null} if + * not set. + * + * @see User-Defined Functions + * + */ + public List getUserDefinedFunctions() { + return getUserDefinedFunctionsImmut(); + } + + @Nullable + abstract ImmutableList getUserDefinedFunctionsImmut(); + + /** + * Returns whether to use BigQuery's legacy SQL dialect for this query. By default this property + * is set to {@code false}. If set to {@code false}, the query will use BigQuery's Standard SQL. If set to {@code + * null} or {@code true}, legacy SQL dialect is used. This property is experimental and might be + * subject to change. + */ + @Nullable + public Boolean useLegacySql() { + return getUseLegacySql(); + } + + @Nullable + abstract Boolean getUseLegacySql(); + + /** Returns a builder for the {@code ViewInfo} object. */ + public abstract Builder toBuilder(); + + @Override + Table toPb() { + Table tablePb = super.toPb(); + com.google.api.services.bigquery.model.ViewDefinition viewDefinition = + new com.google.api.services.bigquery.model.ViewDefinition().setQuery(getQuery()); + if (getUserDefinedFunctions() != null) { + viewDefinition.setUserDefinedFunctionResources( + Lists.transform(getUserDefinedFunctions(), UserDefinedFunction.TO_PB_FUNCTION)); + } + viewDefinition.setUseLegacySql(useLegacySql()); + tablePb.setView(viewDefinition); + return tablePb; + } + + static Builder newBuilder() { + return new AutoValue_ViewDefinition.Builder().setType(Type.VIEW).setUseLegacySql(false); + } + + /** + * Returns a builder for a BigQuery view definition. + * + * @param query the query used to generate the view + */ + public static Builder newBuilder(String query) { + return newBuilder().setQuery(query); + } + + + /** + * Returns a builder for a BigQuery view definition. + * + * @param query the query used to generate the table + * @param functions user-defined functions that can be used by the query + */ + public static Builder newBuilder(String query, List functions) { + return newBuilder(query).setUserDefinedFunctions(functions); + } + + + /** + * Returns a builder for a BigQuery view definition. + * + * @param query the query used to generate the table + * @param functions user-defined functions that can be used by the query + */ + public static Builder newBuilder(String query, UserDefinedFunction... functions) { + return newBuilder(query).setUserDefinedFunctions(functions); + } + + /** + * Creates a BigQuery view definition given the query used to generate the table. + * + * @param query the query used to generate the table + */ + public static ViewDefinition of(String query) { + return newBuilder(query).build(); + } + + /** + * Creates a BigQuery view definition given a query and some user-defined functions. + * + * @param query the query used to generate the table + * @param functions user-defined functions that can be used by the query + */ + public static ViewDefinition of(String query, List functions) { + return newBuilder(query, functions).build(); + } + + /** + * Creates a BigQuery view definition given a query and some user-defined functions. + * + * @param query the query used to generate the table + * @param functions user-defined functions that can be used by the query + */ + public static ViewDefinition of(String query, UserDefinedFunction... functions) { + return newBuilder(query, functions).build(); + } + + @SuppressWarnings("unchecked") + static ViewDefinition fromPb(Table tablePb) { + Builder builder = newBuilder().table(tablePb); + com.google.api.services.bigquery.model.ViewDefinition viewPb = tablePb.getView(); + if (viewPb != null) { + builder.setQuery(viewPb.getQuery()).setUseLegacySql(viewPb.getUseLegacySql()); + if (viewPb.getUserDefinedFunctionResources() != null) { + builder.setUserDefinedFunctions( + Lists.transform( + viewPb.getUserDefinedFunctionResources(), UserDefinedFunction.FROM_PB_FUNCTION)); + } + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java new file mode 100644 index 000000000000..01f38c77acd0 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java @@ -0,0 +1,444 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.JobConfigurationLoad; +import com.google.cloud.bigquery.JobInfo.CreateDisposition; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.common.base.MoreObjects; +import com.google.common.collect.ImmutableList; +import com.google.common.primitives.Ints; + +import java.io.Serializable; +import java.util.List; +import java.util.Objects; + +/** + * Google BigQuery Configuration for a load operation. A load configuration can be used to load data + * into a table with a {@link com.google.cloud.WriteChannel} + * ({@link BigQuery#writer(WriteChannelConfiguration)}). + */ +public final class WriteChannelConfiguration implements LoadConfiguration, Serializable { + + private static final long serialVersionUID = 470267591917413578L; + + private final TableId destinationTable; + private final CreateDisposition createDisposition; + private final WriteDisposition writeDisposition; + private final FormatOptions formatOptions; + private final String nullMarker; + private final Integer maxBadRecords; + private final Schema schema; + private final Boolean ignoreUnknownValues; + private final List schemaUpdateOptions; + private final Boolean autodetect; + private final EncryptionConfiguration destinationEncryptionConfiguration; + + public static final class Builder implements LoadConfiguration.Builder { + + private TableId destinationTable; + private CreateDisposition createDisposition; + private WriteDisposition writeDisposition; + private FormatOptions formatOptions; + private String nullMarker; + private Integer maxBadRecords; + private Schema schema; + private Boolean ignoreUnknownValues; + private List schemaUpdateOptions; + private Boolean autodetect; + private EncryptionConfiguration destinationEncryptionConfiguration; + + private Builder() {} + + private Builder(WriteChannelConfiguration writeChannelConfiguration) { + this.destinationTable = writeChannelConfiguration.destinationTable; + this.createDisposition = writeChannelConfiguration.createDisposition; + this.writeDisposition = writeChannelConfiguration.writeDisposition; + this.formatOptions = writeChannelConfiguration.formatOptions; + this.nullMarker = writeChannelConfiguration.nullMarker; + this.maxBadRecords = writeChannelConfiguration.maxBadRecords; + this.schema = writeChannelConfiguration.schema; + this.ignoreUnknownValues = writeChannelConfiguration.ignoreUnknownValues; + this.schemaUpdateOptions = writeChannelConfiguration.schemaUpdateOptions; + this.autodetect = writeChannelConfiguration.autodetect; + this.destinationEncryptionConfiguration = writeChannelConfiguration.destinationEncryptionConfiguration; + } + + private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { + JobConfigurationLoad loadConfigurationPb = configurationPb.getLoad(); + this.destinationTable = TableId.fromPb(loadConfigurationPb.getDestinationTable()); + if (loadConfigurationPb.getCreateDisposition() != null) { + this.createDisposition = + CreateDisposition.valueOf(loadConfigurationPb.getCreateDisposition()); + } + if (loadConfigurationPb.getWriteDisposition() != null) { + this.writeDisposition = WriteDisposition.valueOf(loadConfigurationPb.getWriteDisposition()); + } + if (loadConfigurationPb.getSourceFormat() != null) { + this.formatOptions = FormatOptions.of(loadConfigurationPb.getSourceFormat()); + } + if (loadConfigurationPb.getNullMarker() != null) { + this.nullMarker = loadConfigurationPb.getNullMarker(); + } + if (loadConfigurationPb.getAllowJaggedRows() != null + || loadConfigurationPb.getAllowQuotedNewlines() != null + || loadConfigurationPb.getEncoding() != null + || loadConfigurationPb.getFieldDelimiter() != null + || loadConfigurationPb.getQuote() != null + || loadConfigurationPb.getSkipLeadingRows() != null) { + CsvOptions.Builder builder = CsvOptions.newBuilder() + .setEncoding(loadConfigurationPb.getEncoding()) + .setFieldDelimiter(loadConfigurationPb.getFieldDelimiter()) + .setQuote(loadConfigurationPb.getQuote()); + if (loadConfigurationPb.getAllowJaggedRows() != null) { + builder.setAllowJaggedRows(loadConfigurationPb.getAllowJaggedRows()); + } + if (loadConfigurationPb.getAllowQuotedNewlines() != null) { + builder.setAllowQuotedNewLines(loadConfigurationPb.getAllowQuotedNewlines()); + } + if (loadConfigurationPb.getSkipLeadingRows() != null) { + builder.setSkipLeadingRows(loadConfigurationPb.getSkipLeadingRows()); + } + this.formatOptions = builder.build(); + } + this.maxBadRecords = loadConfigurationPb.getMaxBadRecords(); + if (loadConfigurationPb.getSchema() != null) { + this.schema = Schema.fromPb(loadConfigurationPb.getSchema()); + } + this.ignoreUnknownValues = loadConfigurationPb.getIgnoreUnknownValues(); + if (loadConfigurationPb.getProjectionFields() != null) { + this.formatOptions = DatastoreBackupOptions.newBuilder() + .setProjectionFields(loadConfigurationPb.getProjectionFields()) + .build(); + } + if (loadConfigurationPb.getSchemaUpdateOptions() != null) { + ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); + for (String rawSchemaUpdateOption : loadConfigurationPb.getSchemaUpdateOptions()) { + schemaUpdateOptionsBuilder.add(JobInfo.SchemaUpdateOption.valueOf(rawSchemaUpdateOption)); + } + this.schemaUpdateOptions = schemaUpdateOptionsBuilder.build(); + } + this.autodetect = loadConfigurationPb.getAutodetect(); + if (loadConfigurationPb.getDestinationEncryptionConfiguration() != null) { + this.destinationEncryptionConfiguration = new EncryptionConfiguration.Builder( + configurationPb.getLoad().getDestinationEncryptionConfiguration()).build(); + } + } + + + @Override + public Builder setDestinationTable(TableId destinationTable) { + this.destinationTable = destinationTable; + return this; + } + + @Override + public LoadConfiguration.Builder setDestinationEncryptionConfiguration( + EncryptionConfiguration encryptionConfiguration) { + this.destinationEncryptionConfiguration = encryptionConfiguration; + return this; + } + + + @Override + public Builder setCreateDisposition(CreateDisposition createDisposition) { + this.createDisposition = createDisposition; + return this; + } + + + @Override + public Builder setWriteDisposition(WriteDisposition writeDisposition) { + this.writeDisposition = writeDisposition; + return this; + } + + + @Override + public Builder setFormatOptions(FormatOptions formatOptions) { + this.formatOptions = formatOptions; + return this; + } + + + @Override + public Builder setNullMarker(String nullMarker) { + this.nullMarker = nullMarker; + return this; + } + + + @Override + public Builder setMaxBadRecords(Integer maxBadRecords) { + this.maxBadRecords = maxBadRecords; + return this; + } + + + @Override + public Builder setSchema(Schema schema) { + this.schema = schema; + return this; + } + + + @Override + public Builder setIgnoreUnknownValues(Boolean ignoreUnknownValues) { + this.ignoreUnknownValues = ignoreUnknownValues; + return this; + } + + @Override + public Builder setSchemaUpdateOptions(List schemaUpdateOptions) { + this.schemaUpdateOptions = + schemaUpdateOptions != null ? ImmutableList.copyOf(schemaUpdateOptions) : null; + return this; + } + + @Override + public Builder setAutodetect(Boolean autodetect) { + this.autodetect = autodetect; + return this; + } + + @Override + public WriteChannelConfiguration build() { + return new WriteChannelConfiguration(this); + } + } + + protected WriteChannelConfiguration(Builder builder) { + this.destinationTable = checkNotNull(builder.destinationTable); + this.createDisposition = builder.createDisposition; + this.writeDisposition = builder.writeDisposition; + this.formatOptions = builder.formatOptions; + this.nullMarker = builder.nullMarker; + this.maxBadRecords = builder.maxBadRecords; + this.schema = builder.schema; + this.ignoreUnknownValues = builder.ignoreUnknownValues; + this.schemaUpdateOptions = builder.schemaUpdateOptions; + this.autodetect = builder.autodetect; + this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; + } + + + @Override + public TableId getDestinationTable() { + return destinationTable; + } + + @Override + public EncryptionConfiguration getDestinationEncryptionConfiguration() { + return destinationEncryptionConfiguration; + } + + + @Override + public CreateDisposition getCreateDisposition() { + return this.createDisposition; + } + + + @Override + public WriteDisposition getWriteDisposition() { + return writeDisposition; + } + + + @Override + public String getNullMarker() { + return nullMarker; + } + + + @Override + public CsvOptions getCsvOptions() { + return formatOptions instanceof CsvOptions ? (CsvOptions) formatOptions : null; + } + + + @Override + public Integer getMaxBadRecords() { + return maxBadRecords; + } + + + @Override + public Schema getSchema() { + return schema; + } + + + @Override + public String getFormat() { + return formatOptions != null ? formatOptions.getType() : null; + } + + @Override + public Boolean ignoreUnknownValues() { + return ignoreUnknownValues; + } + + + @Override + public DatastoreBackupOptions getDatastoreBackupOptions() { + return formatOptions instanceof DatastoreBackupOptions ? + (DatastoreBackupOptions) formatOptions : null; + } + + @Override + public List getSchemaUpdateOptions() { + return schemaUpdateOptions; + } + + @Override + public Boolean getAutodetect() { + return autodetect; + } + + @Override + public Builder toBuilder() { + return new Builder(this); + } + + MoreObjects.ToStringHelper toStringHelper() { + return MoreObjects.toStringHelper(this) + .add("destinationTable", destinationTable) + .add("destinationEncryptionConfiguration", destinationEncryptionConfiguration) + .add("createDisposition", createDisposition) + .add("writeDisposition", writeDisposition) + .add("formatOptions", formatOptions) + .add("nullMarker", nullMarker) + .add("maxBadRecords", maxBadRecords) + .add("schema", schema) + .add("ignoreUnknownValue", ignoreUnknownValues) + .add("schemaUpdateOptions", schemaUpdateOptions) + .add("autodetect", autodetect); + } + + @Override + public String toString() { + return toStringHelper().toString(); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof WriteChannelConfiguration + && Objects.equals(toPb(), ((WriteChannelConfiguration) obj).toPb()); + } + + @Override + public int hashCode() { + return Objects.hash(destinationTable, createDisposition, writeDisposition, formatOptions, + nullMarker, maxBadRecords, schema, ignoreUnknownValues, schemaUpdateOptions, autodetect); + } + + WriteChannelConfiguration setProjectId(String projectId) { + return toBuilder().setDestinationTable(getDestinationTable().setProjectId(projectId)).build(); + } + + com.google.api.services.bigquery.model.JobConfiguration toPb() { + JobConfigurationLoad loadConfigurationPb = new JobConfigurationLoad(); + loadConfigurationPb.setDestinationTable(destinationTable.toPb()); + if (createDisposition != null) { + loadConfigurationPb.setCreateDisposition(createDisposition.toString()); + } + if (writeDisposition != null) { + loadConfigurationPb.setWriteDisposition(writeDisposition.toString()); + } + if (nullMarker != null) { + loadConfigurationPb.setNullMarker(nullMarker); + } + if (getCsvOptions() != null) { + CsvOptions csvOptions = getCsvOptions(); + loadConfigurationPb.setFieldDelimiter(csvOptions.getFieldDelimiter()) + .setAllowJaggedRows(csvOptions.allowJaggedRows()) + .setAllowQuotedNewlines(csvOptions.allowQuotedNewLines()) + .setEncoding(csvOptions.getEncoding()) + .setQuote(csvOptions.getQuote()); + if (csvOptions.getSkipLeadingRows() != null) { + // todo(mziccard) remove checked cast or comment when #1044 is closed + loadConfigurationPb.setSkipLeadingRows(Ints.checkedCast(csvOptions.getSkipLeadingRows())); + } + } + if (schema != null) { + loadConfigurationPb.setSchema(schema.toPb()); + } + if (formatOptions != null) { + loadConfigurationPb.setSourceFormat(formatOptions.getType()); + } + loadConfigurationPb.setMaxBadRecords(maxBadRecords); + loadConfigurationPb.setIgnoreUnknownValues(ignoreUnknownValues); + if (getDatastoreBackupOptions() != null) { + DatastoreBackupOptions backupOptions = getDatastoreBackupOptions(); + loadConfigurationPb.setProjectionFields(backupOptions.getProjectionFields()); + } + if (schemaUpdateOptions != null) { + ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); + for (JobInfo.SchemaUpdateOption schemaUpdateOption : schemaUpdateOptions) { + schemaUpdateOptionsBuilder.add(schemaUpdateOption.name()); + } + loadConfigurationPb.setSchemaUpdateOptions(schemaUpdateOptionsBuilder.build()); + } + loadConfigurationPb.setAutodetect(autodetect); + if (destinationEncryptionConfiguration != null) { + loadConfigurationPb.setDestinationEncryptionConfiguration( + destinationEncryptionConfiguration.toPb()); + } + return new com.google.api.services.bigquery.model.JobConfiguration() + .setLoad(loadConfigurationPb); + } + + static WriteChannelConfiguration fromPb( + com.google.api.services.bigquery.model.JobConfiguration configurationPb) { + return new Builder(configurationPb).build(); + } + + + /** + * Creates a builder for a BigQuery Load Configuration given the destination table. + */ + public static Builder newBuilder(TableId destinationTable) { + return new Builder().setDestinationTable(destinationTable); + } + + + /** + * Creates a builder for a BigQuery Load Configuration given the destination table and format. + */ + public static Builder newBuilder(TableId destinationTable, FormatOptions format) { + return newBuilder(destinationTable).setFormatOptions(format); + } + + /** + * Returns a BigQuery Load Configuration for the given destination table. + */ + public static WriteChannelConfiguration of(TableId destinationTable) { + return newBuilder(destinationTable).build(); + } + + /** + * Returns a BigQuery Load Configuration for the given destination table and format. + */ + public static WriteChannelConfiguration of(TableId destinationTable, FormatOptions format) { + return newBuilder(destinationTable).setFormatOptions(format).build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java new file mode 100644 index 000000000000..721902b7bfe9 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java @@ -0,0 +1,46 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * A client for BigQuery – A fully managed, petabyte scale, low cost enterprise data + * warehouse for analytics. + * + *

A simple usage example showing how to create a table if it does not exist and load data into + * it. For the complete source code see + * + * CreateTableAndLoadData.java. + *

 {@code
+ * BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
+ * TableId tableId = TableId.of("dataset", "table");
+ * Table table = bigquery.getTable(tableId);
+ * if (table == null) {
+ *   System.out.println("Creating table " + tableId);
+ *   Field integerField = Field.of("fieldName", Field.Type.integer());
+ *   Schema schema = Schema.of(integerField);
+ *   table = bigquery.create(TableInfo.of(tableId, StandardTableDefinition.of(schema)));
+ * }
+ * System.out.println("Loading data into table " + tableId);
+ * Job loadJob = table.load(FormatOptions.csv(), "gs://bucket/path");
+ * loadJob = loadJob.waitFor();
+ * if (loadJob.getStatus().getError() != null) {
+ *   System.out.println("Job completed with errors");
+ * } else {
+ *   System.out.println("Job succeeded");
+ * }}
+ * + * @see Google Cloud BigQuery + */ +package com.google.cloud.bigquery; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java new file mode 100644 index 000000000000..e0dd264a01be --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java @@ -0,0 +1,27 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.spi; + +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.spi.ServiceRpcFactory; + +/** + * An interface for BigQuery RPC factory. + * Implementation will be loaded via {@link java.util.ServiceLoader}. + */ +public interface BigQueryRpcFactory extends ServiceRpcFactory { +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java new file mode 100644 index 000000000000..c2b61a6e5346 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -0,0 +1,231 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.spi.v2; + +import com.google.api.core.InternalExtensionOnly; +import com.google.api.services.bigquery.model.Dataset; +import com.google.api.services.bigquery.model.GetQueryResultsResponse; +import com.google.api.services.bigquery.model.Job; +import com.google.api.services.bigquery.model.Table; +import com.google.api.services.bigquery.model.TableDataInsertAllRequest; +import com.google.api.services.bigquery.model.TableDataInsertAllResponse; +import com.google.api.services.bigquery.model.TableDataList; +import com.google.cloud.ServiceRpc; +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.BigQueryException; +import java.util.Map; + +@InternalExtensionOnly +public interface BigQueryRpc extends ServiceRpc { + + // These options are part of the Google Cloud BigQuery query parameters + enum Option { + FIELDS("fields"), + DELETE_CONTENTS("deleteContents"), + ALL_DATASETS("all"), + ALL_USERS("allUsers"), + MAX_RESULTS("maxResults"), + PAGE_TOKEN("pageToken"), + START_INDEX("startIndex"), + STATE_FILTER("stateFilter"), + TIMEOUT("timeoutMs"); + + private final String value; + + Option(String value) { + this.value = value; + } + + public String value() { + return value; + } + + @SuppressWarnings("unchecked") + T get(Map options) { + return (T) options.get(this); + } + + String getString(Map options) { + return get(options); + } + + Long getLong(Map options) { + return get(options); + } + + Boolean getBoolean(Map options) { + return get(options); + } + } + + /** + * Returns the requested dataset or {@code null} if not found. + * + * @throws BigQueryException upon failure + */ + Dataset getDataset(String projectId, String datasetId, Map options); + + /** + * Lists the provided project's datasets. Partial information is returned on a dataset + * (datasetReference, friendlyName and id). To get full information use + * {@link #getDataset(String, String, Map)}. + * + * @throws BigQueryException upon failure + */ + Tuple> listDatasets(String projectId, Map options); + + /** + * Creates a new dataset. + * + * @throws BigQueryException upon failure + */ + Dataset create(Dataset dataset, Map options); + + /** + * Creates a new table. + * + * @throws BigQueryException upon failure + */ + Table create(Table table, Map options); + + /** + * Creates a new job. + * + * @throws BigQueryException upon failure + */ + Job create(Job job, Map options); + + /** + * Delete the requested dataset. + * + * @return {@code true} if dataset was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + boolean deleteDataset(String projectId, String datasetId, Map options); + + /** + * Updates dataset information. + * + * @throws BigQueryException upon failure + */ + Dataset patch(Dataset dataset, Map options); + + /** + * Updates table information. + * + * @throws BigQueryException upon failure + */ + Table patch(Table table, Map options); + + /** + * Returns the requested table or {@code null} if not found. + * + * @throws BigQueryException upon failure + */ + Table getTable(String projectId, String datasetId, String tableId, Map options); + + /** + * Lists the dataset's tables. Partial information is returned on a table (tableReference, + * friendlyName, id and type). To get full information use + * {@link #getTable(String, String, String, Map)}. + * + * @throws BigQueryException upon failure + */ + Tuple> listTables(String projectId, String dataset, + Map options); + + /** + * Delete the requested table. + * + * @return {@code true} if table was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + boolean deleteTable(String projectId, String datasetId, String tableId); + + /** + * Sends an insert all request. + * + * @throws BigQueryException upon failure + */ + TableDataInsertAllResponse insertAll(String projectId, String datasetId, String tableId, + TableDataInsertAllRequest request); + + /** + * Lists the table's rows. + * + * @throws BigQueryException upon failure + */ + TableDataList listTableData( + String projectId, String datasetId, String tableId, Map options); + + /** + * Returns the requested job or {@code null} if not found. + * + * @throws BigQueryException upon failure + */ + Job getJob(String projectId, String jobId, String location, Map options); + + /** + * Lists the project's jobs. + * + * @throws BigQueryException upon failure + */ + Tuple> listJobs(String projectId, Map options); + + /** + * Sends a job cancel request. This call will return immediately, and the client will need to poll + * for the job status to see if the cancel completed successfully. + * + * @return {@code true} if cancel was requested successfully, {@code false} if the job was not + * found + * @throws BigQueryException upon failure + */ + boolean cancel(String projectId, String jobId, String location); + + /** + * Returns results of the query associated with the provided job. + * + * @throws BigQueryException upon failure + */ + GetQueryResultsResponse getQueryResults( + String projectId, String jobId, String location, Map options); + + /** + * Opens a resumable upload session to load data into a BigQuery table and returns an upload URI. + * + * @param job load job + * @throws BigQueryException upon failure + */ + String open(Job job); + + /** + * Uploads the provided data to the resumable upload session at the specified position. This + * method returns the job created to insert the rows, only when {@code last} is {@code true}. + * + * @param uploadId the resumable upload session URI + * @param toWrite a byte array of data to upload + * @param toWriteOffset offset in the {@code toWrite} param to start writing from + * @param destOffset offset in the destination where to upload data to + * @param length the number of bytes to upload + * @param last {@code true} indicates that the last chunk is being uploaded + * @return returns the job created to insert the rows, only when {@code last} is {@code true}. + * Returns {@code null} otherwise + * @throws BigQueryException upon failure + */ + Job write(String uploadId, byte[] toWrite, int toWriteOffset, long destOffset, int length, + boolean last); +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java new file mode 100644 index 000000000000..2f56d5386164 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -0,0 +1,468 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.spi.v2; + +import static java.net.HttpURLConnection.HTTP_CREATED; +import static java.net.HttpURLConnection.HTTP_NOT_FOUND; +import static java.net.HttpURLConnection.HTTP_OK; + +import com.google.api.client.http.ByteArrayContent; +import com.google.api.client.http.GenericUrl; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.http.HttpRequestFactory; +import com.google.api.client.http.HttpRequestInitializer; +import com.google.api.client.http.HttpResponse; +import com.google.api.client.http.HttpResponseException; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.http.json.JsonHttpContent; +import com.google.api.client.json.JsonFactory; +import com.google.api.client.json.jackson.JacksonFactory; +import com.google.api.core.InternalApi; +import com.google.api.core.InternalExtensionOnly; +import com.google.api.services.bigquery.Bigquery; +import com.google.api.services.bigquery.model.Dataset; +import com.google.api.services.bigquery.model.DatasetList; +import com.google.api.services.bigquery.model.DatasetReference; +import com.google.api.services.bigquery.model.GetQueryResultsResponse; +import com.google.api.services.bigquery.model.Job; +import com.google.api.services.bigquery.model.JobList; +import com.google.api.services.bigquery.model.JobStatus; +import com.google.api.services.bigquery.model.Table; +import com.google.api.services.bigquery.model.TableDataInsertAllRequest; +import com.google.api.services.bigquery.model.TableDataInsertAllResponse; +import com.google.api.services.bigquery.model.TableDataList; +import com.google.api.services.bigquery.model.TableList; +import com.google.api.services.bigquery.model.TableReference; +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.http.HttpTransportOptions; +import com.google.common.base.Function; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; +import java.io.IOException; +import java.math.BigInteger; +import java.util.List; +import java.util.Map; + +@InternalExtensionOnly +public class HttpBigQueryRpc implements BigQueryRpc { + + public static final String DEFAULT_PROJECTION = "full"; + private static final String BASE_RESUMABLE_URI = + "https://www.googleapis.com/upload/bigquery/v2/projects/"; + // see: https://cloud.google.com/bigquery/loading-data-post-request#resume-upload + private static final int HTTP_RESUME_INCOMPLETE = 308; + private final BigQueryOptions options; + private final Bigquery bigquery; + + @InternalApi("Visible for testing") + static final Function LIST_TO_DATASET = + new Function() { + @Override + public Dataset apply(DatasetList.Datasets datasetPb) { + return new Dataset() + .setDatasetReference(datasetPb.getDatasetReference()) + .setFriendlyName(datasetPb.getFriendlyName()) + .setId(datasetPb.getId()) + .setKind(datasetPb.getKind()) + .setLabels(datasetPb.getLabels()); + } + }; + + public HttpBigQueryRpc(BigQueryOptions options) { + HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); + HttpTransport transport = transportOptions.getHttpTransportFactory().create(); + HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); + this.options = options; + bigquery = new Bigquery.Builder(transport, new JacksonFactory(), initializer) + .setRootUrl(options.getHost()) + .setApplicationName(options.getApplicationName()) + .build(); + } + + private static BigQueryException translate(IOException exception) { + return new BigQueryException(exception); + } + + @Override + public Dataset getDataset(String projectId, String datasetId, Map options) { + try { + return bigquery.datasets() + .get(projectId, datasetId) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + BigQueryException serviceException = translate(ex); + if (serviceException.getCode() == HTTP_NOT_FOUND) { + return null; + } + throw serviceException; + } + } + + @Override + public Tuple> listDatasets(String projectId, Map options) { + try { + DatasetList datasetsList = bigquery.datasets() + .list(projectId) + .setAll(Option.ALL_DATASETS.getBoolean(options)) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .execute(); + Iterable datasets = datasetsList.getDatasets(); + return Tuple.of( + datasetsList.getNextPageToken(), + Iterables.transform( + datasets != null ? datasets : ImmutableList.of(), + LIST_TO_DATASET)); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public Dataset create(Dataset dataset, Map options) { + try { + return bigquery.datasets().insert(dataset.getDatasetReference().getProjectId(), dataset) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public Table create(Table table, Map options) { + try { + // unset the type, as it is output only + table.setType(null); + TableReference reference = table.getTableReference(); + return bigquery.tables() + .insert(reference.getProjectId(), reference.getDatasetId(), table) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public Job create(Job job, Map options) { + try { + String projectId = job.getJobReference() != null + ? job.getJobReference().getProjectId() : this.options.getProjectId(); + return bigquery.jobs() + .insert(projectId, job) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public boolean deleteDataset(String projectId, String datasetId, Map options) { + try { + bigquery.datasets().delete(projectId, datasetId) + .setDeleteContents(Option.DELETE_CONTENTS.getBoolean(options)) + .execute(); + return true; + } catch (IOException ex) { + BigQueryException serviceException = translate(ex); + if (serviceException.getCode() == HTTP_NOT_FOUND) { + return false; + } + throw serviceException; + } + } + + @Override + public Dataset patch(Dataset dataset, Map options) { + try { + DatasetReference reference = dataset.getDatasetReference(); + return bigquery.datasets() + .patch(reference.getProjectId(), reference.getDatasetId(), dataset) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public Table patch(Table table, Map options) { + try { + // unset the type, as it is output only + table.setType(null); + TableReference reference = table.getTableReference(); + return bigquery.tables() + .patch(reference.getProjectId(), reference.getDatasetId(), reference.getTableId(), table) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public Table getTable(String projectId, String datasetId, String tableId, + Map options) { + try { + return bigquery.tables() + .get(projectId, datasetId, tableId) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + BigQueryException serviceException = translate(ex); + if (serviceException.getCode() == HTTP_NOT_FOUND) { + return null; + } + throw serviceException; + } + } + + @Override + public Tuple> listTables(String projectId, String datasetId, + Map options) { + try { + TableList tableList = bigquery.tables() + .list(projectId, datasetId) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .execute(); + Iterable tables = tableList.getTables(); + return Tuple.of(tableList.getNextPageToken(), + Iterables.transform(tables != null ? tables : ImmutableList.of(), + new Function() { + @Override + public Table apply(TableList.Tables tablePb) { + return new Table() + .setFriendlyName(tablePb.getFriendlyName()) + .setId(tablePb.getId()) + .setKind(tablePb.getKind()) + .setTableReference(tablePb.getTableReference()) + .setType(tablePb.getType()); + } + })); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public boolean deleteTable(String projectId, String datasetId, String tableId) { + try { + bigquery.tables().delete(projectId, datasetId, tableId).execute(); + return true; + } catch (IOException ex) { + BigQueryException serviceException = translate(ex); + if (serviceException.getCode() == HTTP_NOT_FOUND) { + return false; + } + throw serviceException; + } + } + + @Override + public TableDataInsertAllResponse insertAll(String projectId, String datasetId, String tableId, + TableDataInsertAllRequest request) { + try { + return bigquery.tabledata().insertAll(projectId, datasetId, tableId, request).execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public TableDataList listTableData( + String projectId, String datasetId, String tableId, Map options) { + try { + return bigquery + .tabledata() + .list(projectId, datasetId, tableId) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .setStartIndex( + Option.START_INDEX.getLong(options) != null + ? BigInteger.valueOf(Option.START_INDEX.getLong(options)) + : null) + .execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public Job getJob(String projectId, String jobId, String location, Map options) { + try { + return bigquery + .jobs() + .get(projectId, jobId) + .setLocation(location) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + BigQueryException serviceException = translate(ex); + if (serviceException.getCode() == HTTP_NOT_FOUND) { + return null; + } + throw serviceException; + } + } + + @Override + public Tuple> listJobs(String projectId, Map options) { + try { + JobList jobsList = bigquery.jobs() + .list(projectId) + .setAllUsers(Option.ALL_USERS.getBoolean(options)) + .setFields(Option.FIELDS.getString(options)) + .setStateFilter(Option.STATE_FILTER.>get(options)) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .setProjection(DEFAULT_PROJECTION) + .execute(); + Iterable jobs = jobsList.getJobs(); + return Tuple.of(jobsList.getNextPageToken(), + Iterables.transform(jobs != null ? jobs : ImmutableList.of(), + new Function() { + @Override + public Job apply(JobList.Jobs jobPb) { + JobStatus statusPb = jobPb.getStatus() != null + ? jobPb.getStatus() : new JobStatus(); + if (statusPb.getState() == null) { + statusPb.setState(jobPb.getState()); + } + if (statusPb.getErrorResult() == null) { + statusPb.setErrorResult(jobPb.getErrorResult()); + } + return new Job() + .setConfiguration(jobPb.getConfiguration()) + .setId(jobPb.getId()) + .setJobReference(jobPb.getJobReference()) + .setKind(jobPb.getKind()) + .setStatistics(jobPb.getStatistics()) + .setStatus(statusPb) + .setUserEmail(jobPb.getUserEmail()); + } + })); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public boolean cancel(String projectId, String jobId, String location) { + try { + bigquery.jobs().cancel(projectId, jobId).setLocation(location).execute(); + return true; + } catch (IOException ex) { + BigQueryException serviceException = translate(ex); + if (serviceException.getCode() == HTTP_NOT_FOUND) { + return false; + } + throw serviceException; + } + } + + @Override + public GetQueryResultsResponse getQueryResults( + String projectId, String jobId, String location, Map options) { + try { + return bigquery + .jobs() + .getQueryResults(projectId, jobId) + .setLocation(location) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .setStartIndex( + Option.START_INDEX.getLong(options) != null + ? BigInteger.valueOf(Option.START_INDEX.getLong(options)) + : null) + .setTimeoutMs(Option.TIMEOUT.getLong(options)) + .execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public String open(Job loadJob) { + try { + String builder = BASE_RESUMABLE_URI + options.getProjectId() + "/jobs"; + GenericUrl url = new GenericUrl(builder); + url.set("uploadType", "resumable"); + JsonFactory jsonFactory = bigquery.getJsonFactory(); + HttpRequestFactory requestFactory = bigquery.getRequestFactory(); + HttpRequest httpRequest = + requestFactory.buildPostRequest(url, new JsonHttpContent(jsonFactory, loadJob)); + httpRequest.getHeaders().set("X-Upload-Content-Value", "application/octet-stream"); + HttpResponse response = httpRequest.execute(); + return response.getHeaders().getLocation(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public Job write(String uploadId, byte[] toWrite, int toWriteOffset, long destOffset, int length, + boolean last) { + try { + if (length == 0) { + return null; + } + GenericUrl url = new GenericUrl(uploadId); + HttpRequest httpRequest = bigquery.getRequestFactory() + .buildPutRequest(url, new ByteArrayContent(null, toWrite, toWriteOffset, length)); + httpRequest.setParser(bigquery.getObjectParser()); + long limit = destOffset + length; + StringBuilder range = new StringBuilder("bytes "); + range.append(destOffset).append('-').append(limit - 1).append('/'); + if (last) { + range.append(limit); + } else { + range.append('*'); + } + httpRequest.getHeaders().setContentRange(range.toString()); + int code; + String message; + IOException exception = null; + HttpResponse response = null; + try { + response = httpRequest.execute(); + code = response.getStatusCode(); + message = response.getStatusMessage(); + } catch (HttpResponseException ex) { + exception = ex; + code = ex.getStatusCode(); + message = ex.getStatusMessage(); + } + if (!last && code != HTTP_RESUME_INCOMPLETE + || last && !(code == HTTP_OK || code == HTTP_CREATED)) { + if (exception != null) { + throw exception; + } + throw new BigQueryException(code, message); + } + return last && response != null ? response.parseAs(Job.class) : null; + } catch (IOException ex) { + throw translate(ex); + } + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java new file mode 100644 index 000000000000..1ea822216f9a --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java @@ -0,0 +1,156 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.testing; + +import com.google.api.gax.retrying.RetrySettings; +import com.google.auth.oauth2.ServiceAccountCredentials; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.http.HttpTransportOptions; +import java.io.IOException; +import java.io.InputStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.threeten.bp.Duration; + +/** + * Utility to create a remote BigQuery configuration for testing. BigQuery options can be obtained + * via the {@link #getOptions()} method. Returned options have custom + * {@link BigQueryOptions#getRetrySettings()}: {@link RetrySettings#getMaxAttempts()} is + * {@code 10}, + * {@link RetrySettings#getMaxRetryDelay()} is {@code 30000}, + * {@link RetrySettings#getTotalTimeout()} is {@code 120000} and + * {@link RetrySettings#getInitialRetryDelay()} is {@code 250}. + * {@link HttpTransportOptions#getConnectTimeout()} and + * {@link HttpTransportOptions#getReadTimeout()} are both + * set to {@code 60000}. + */ +public class RemoteBigQueryHelper { + + private static final Logger log = Logger.getLogger(RemoteBigQueryHelper.class.getName()); + private static final String DATASET_NAME_PREFIX = "gcloud_test_dataset_temp_"; + private final BigQueryOptions options; + private static final int connectTimeout = 60000; + + private RemoteBigQueryHelper(BigQueryOptions options) { + this.options = options; + } + + + /** + * Returns a {@link BigQueryOptions} object to be used for testing. + */ + public BigQueryOptions getOptions() { + return options; + } + + /** + * Deletes a dataset, even if non-empty. + * + * @param bigquery the BigQuery service to be used to issue the delete request + * @param dataset the dataset to be deleted + * @return {@code true} if deletion succeeded, {@code false} if the dataset was not found + * @throws BigQueryException upon failure + */ + public static boolean forceDelete(BigQuery bigquery, String dataset) { + return bigquery.delete(dataset, BigQuery.DatasetDeleteOption.deleteContents()); + } + + /** + * Returns a dataset name generated using a random UUID. + */ + public static String generateDatasetName() { + return DATASET_NAME_PREFIX + UUID.randomUUID().toString().replace('-', '_'); + } + + /** + * Creates a {@code RemoteBigQueryHelper} object for the given project id and JSON key input + * stream. + * + * @param projectId id of the project to be used for running the tests + * @param keyStream input stream for a JSON key + * @return A {@code RemoteBigQueryHelper} object for the provided options + * @throws BigQueryHelperException if {@code keyStream} is not a valid JSON key stream + */ + public static RemoteBigQueryHelper create(String projectId, InputStream keyStream) + throws BigQueryHelperException { + try { + HttpTransportOptions transportOptions = BigQueryOptions.getDefaultHttpTransportOptions(); + transportOptions = transportOptions.toBuilder().setConnectTimeout(connectTimeout).setReadTimeout(connectTimeout) + .build(); + BigQueryOptions bigqueryOptions = BigQueryOptions.newBuilder() + .setCredentials(ServiceAccountCredentials.fromStream(keyStream)) + .setProjectId(projectId) + .setRetrySettings(retrySettings()) + .setTransportOptions(transportOptions) + .build(); + return new RemoteBigQueryHelper(bigqueryOptions); + } catch (IOException ex) { + if (log.isLoggable(Level.WARNING)) { + log.log(Level.WARNING, ex.getMessage()); + } + throw BigQueryHelperException.translate(ex); + } + } + + /** + * Creates a {@code RemoteBigQueryHelper} object using default project id and authentication + * credentials. + */ + public static RemoteBigQueryHelper create() { + HttpTransportOptions transportOptions = BigQueryOptions.getDefaultHttpTransportOptions(); + transportOptions = transportOptions.toBuilder().setConnectTimeout(connectTimeout).setReadTimeout(connectTimeout) + .build(); + BigQueryOptions bigqueryOptions = BigQueryOptions.newBuilder() + .setRetrySettings(retrySettings()) + .setTransportOptions(transportOptions) + .build(); + return new RemoteBigQueryHelper(bigqueryOptions); + } + + private static RetrySettings retrySettings() { + double retryDelayMultiplier = 1.0; + int maxAttempts = 10; + long initialRetryDelay = 250L; + long maxRetryDelay = 30000L; + long totalTimeOut = 120000L; + return RetrySettings.newBuilder().setMaxAttempts(maxAttempts) + .setMaxRetryDelay(Duration.ofMillis(maxRetryDelay)) + .setTotalTimeout(Duration.ofMillis(totalTimeOut)) + .setInitialRetryDelay(Duration.ofMillis(initialRetryDelay)) + .setRetryDelayMultiplier(retryDelayMultiplier) + .setInitialRpcTimeout(Duration.ofMillis(totalTimeOut)) + .setRpcTimeoutMultiplier(retryDelayMultiplier) + .setMaxRpcTimeout(Duration.ofMillis(totalTimeOut)) + .build(); + } + + public static class BigQueryHelperException extends RuntimeException { + + private static final long serialVersionUID = 3984993496060055562L; + + public BigQueryHelperException(String message, Throwable cause) { + super(message, cause); + } + + public static BigQueryHelperException translate(Exception ex) { + return new BigQueryHelperException(ex.getMessage(), ex); + } + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java new file mode 100644 index 000000000000..291a32b185d7 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java @@ -0,0 +1,38 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * A testing helper for Google BigQuery. + * + *

A simple usage example: + * + *

Before the test: + *

 {@code
+ * RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create();
+ * BigQuery bigquery = bigqueryHelper.getOptions().getService();
+ * String dataset = RemoteBigQueryHelper.generateDatasetName();
+ * bigquery.create(DatasetInfo.newBuilder(dataset).build());
+ * } 
+ * + *

After the test: + *

 {@code
+ * RemoteBigQueryHelper.forceDelete(bigquery, DATASET);
+ * }
+ * + * @see + * Google Cloud Java tools for testing + */ +package com.google.cloud.bigquery.testing; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java new file mode 100644 index 000000000000..c9a3d82bdd53 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java @@ -0,0 +1,101 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.api.services.bigquery.model.Dataset; +import com.google.cloud.bigquery.Acl.Domain; +import com.google.cloud.bigquery.Acl.Entity; +import com.google.cloud.bigquery.Acl.Entity.Type; +import com.google.cloud.bigquery.Acl.Group; +import com.google.cloud.bigquery.Acl.Role; +import com.google.cloud.bigquery.Acl.User; +import com.google.cloud.bigquery.Acl.View; + +import org.junit.Test; + +public class AclTest { + + @Test + public void testDomainEntity() { + Domain entity = new Domain("d1"); + assertEquals("d1", entity.getDomain()); + assertEquals(Type.DOMAIN, entity.getType()); + Dataset.Access pb = entity.toPb(); + assertEquals(entity, Entity.fromPb(pb)); + } + + + @Test + public void testGroupEntity() { + Group entity = new Group("g1"); + assertEquals("g1", entity.getIdentifier()); + assertEquals(Type.GROUP, entity.getType()); + Dataset.Access pb = entity.toPb(); + assertEquals(entity, Entity.fromPb(pb)); + } + + + @Test + public void testSpecialGroupEntity() { + Group entity = Group.ofAllAuthenticatedUsers(); + assertEquals("allAuthenticatedUsers", entity.getIdentifier()); + entity = Group.ofProjectWriters(); + assertEquals("projectWriters", entity.getIdentifier()); + entity = Group.ofProjectReaders(); + assertEquals("projectReaders", entity.getIdentifier()); + entity = Group.ofProjectOwners(); + assertEquals("projectOwners", entity.getIdentifier()); + } + + + @Test + public void testUserEntity() { + User entity = new User("u1"); + assertEquals("u1", entity.getEmail()); + assertEquals(Type.USER, entity.getType()); + Dataset.Access pb = entity.toPb(); + assertEquals(entity, Entity.fromPb(pb)); + } + + + @Test + public void testViewEntity() { + TableId viewId = TableId.of("project", "dataset", "view"); + View entity = new View(viewId); + assertEquals(viewId, entity.getId()); + assertEquals(Type.VIEW, entity.getType()); + Dataset.Access pb = entity.toPb(); + assertEquals(entity, Entity.fromPb(pb)); + } + + + @Test + public void testOf() { + Acl acl = Acl.of(Group.ofAllAuthenticatedUsers(), Role.READER); + assertEquals(Group.ofAllAuthenticatedUsers(), acl.getEntity()); + assertEquals(Role.READER, acl.getRole()); + Dataset.Access pb = acl.toPb(); + assertEquals(acl, Acl.fromPb(pb)); + View view = new View(TableId.of("project", "dataset", "view")); + acl = Acl.of(view); + assertEquals(view, acl.getEntity()); + assertEquals(null, acl.getRole()); + } +} + diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java new file mode 100644 index 000000000000..295fe310885d --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java @@ -0,0 +1,62 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class BigQueryErrorTest { + + private static final String REASON = "reason"; + private static final String LOCATION = "location"; + private static final String DEBUG_INFO = "debugInfo"; + private static final String MESSAGE = "message"; + private static final BigQueryError ERROR = + new BigQueryError(REASON, LOCATION, MESSAGE, DEBUG_INFO); + private static final BigQueryError ERROR_INCOMPLETE = + new BigQueryError(REASON, LOCATION, MESSAGE); + + @Test + public void testConstructor() { + assertEquals(REASON, ERROR.getReason()); + assertEquals(LOCATION, ERROR.getLocation()); + assertEquals(DEBUG_INFO, ERROR.getDebugInfo()); + assertEquals(MESSAGE, ERROR.getMessage()); + assertEquals(REASON, ERROR_INCOMPLETE.getReason()); + assertEquals(LOCATION, ERROR_INCOMPLETE.getLocation()); + assertEquals(null, ERROR_INCOMPLETE.getDebugInfo()); + assertEquals(MESSAGE, ERROR_INCOMPLETE.getMessage()); + } + + + @Test + public void testToAndFromPb() { + compareBigQueryError(ERROR, BigQueryError.fromPb(ERROR.toPb())); + compareBigQueryError(ERROR_INCOMPLETE, BigQueryError.fromPb(ERROR_INCOMPLETE.toPb())); + } + + private void compareBigQueryError(BigQueryError expected, BigQueryError value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getReason(), value.getReason()); + assertEquals(expected.getLocation(), value.getLocation()); + assertEquals(expected.getDebugInfo(), value.getDebugInfo()); + assertEquals(expected.getMessage(), value.getMessage()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java new file mode 100644 index 000000000000..6554c27578ec --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java @@ -0,0 +1,161 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + +import com.google.api.client.http.HttpHeaders; +import com.google.api.client.http.HttpResponseException; +import com.google.cloud.BaseServiceException; +import com.google.cloud.RetryHelper.RetryHelperException; +import java.io.IOException; +import java.net.SocketTimeoutException; +import org.junit.Test; + +public class BigQueryExceptionTest { + + @Test + public void testBigQueryException() { + BigQueryException exception = new BigQueryException(500, "message"); + assertEquals(500, exception.getCode()); + assertEquals("message", exception.getMessage()); + assertNull(exception.getReason()); + assertNull(exception.getError()); + assertTrue(exception.isRetryable()); + + exception = new BigQueryException(502, "message"); + assertEquals(502, exception.getCode()); + assertEquals("message", exception.getMessage()); + assertNull(exception.getReason()); + assertNull(exception.getError()); + assertTrue(exception.isRetryable()); + + exception = new BigQueryException(503, "message"); + assertEquals(503, exception.getCode()); + assertEquals("message", exception.getMessage()); + assertNull(exception.getReason()); + assertNull(exception.getError()); + assertTrue(exception.isRetryable()); + + exception = new BigQueryException(504, "message"); + assertEquals(504, exception.getCode()); + assertEquals("message", exception.getMessage()); + assertNull(exception.getReason()); + assertNull(exception.getError()); + assertTrue(exception.isRetryable()); + + exception = new BigQueryException(400, "message"); + assertEquals(400, exception.getCode()); + assertEquals("message", exception.getMessage()); + assertNull(exception.getReason()); + assertNull(exception.getError()); + assertFalse(exception.isRetryable()); + + BigQueryError error = new BigQueryError("reason", null, null); + exception = new BigQueryException(504, "message", error); + assertEquals(504, exception.getCode()); + assertEquals("message", exception.getMessage()); + assertEquals("reason", exception.getReason()); + assertEquals(error, exception.getError()); + assertTrue(exception.isRetryable()); + + IOException cause = new SocketTimeoutException("socketTimeoutMessage"); + exception = new BigQueryException(cause); + assertEquals(BigQueryException.UNKNOWN_CODE, exception.getCode()); + assertNull(exception.getReason()); + assertEquals("socketTimeoutMessage", exception.getMessage()); + assertEquals(cause, exception.getCause()); + assertTrue(exception.isRetryable()); + assertSame(cause, exception.getCause()); + + exception = new BigQueryException(504, "message", cause); + assertEquals(504, exception.getCode()); + assertEquals("message", exception.getMessage()); + assertNull(exception.getReason()); + assertNull(exception.getError()); + assertTrue(exception.isRetryable()); + assertSame(cause, exception.getCause()); + + + HttpResponseException httpResponseException = + new HttpResponseException.Builder(404, "Service Unavailable", new HttpHeaders()).build(); + exception = new BigQueryException(httpResponseException); + assertEquals(404, exception.getCode()); + assertFalse(exception.isRetryable()); + + httpResponseException = new HttpResponseException.Builder(504, null, new HttpHeaders()).build(); + exception = new BigQueryException(httpResponseException); + assertEquals(504, exception.getCode()); + assertTrue(exception.isRetryable()); + + httpResponseException = new HttpResponseException.Builder(503, null, new HttpHeaders()).build(); + exception = new BigQueryException(httpResponseException); + assertEquals(503, exception.getCode()); + assertTrue(exception.isRetryable()); + + httpResponseException = new HttpResponseException.Builder(502, null, new HttpHeaders()).build(); + exception = new BigQueryException(httpResponseException); + assertEquals(502, exception.getCode()); + assertTrue(exception.isRetryable()); + + httpResponseException = new HttpResponseException.Builder(500, null, new HttpHeaders()).build(); + exception = new BigQueryException(httpResponseException); + assertEquals(500, exception.getCode()); + assertTrue(exception.isRetryable()); + + } + + @Test + public void testTranslateAndThrow() throws Exception { + Exception cause = new BigQueryException(503, "message"); + RetryHelperException exceptionMock = createMock(RetryHelperException.class); + expect(exceptionMock.getCause()).andReturn(cause).times(2); + replay(exceptionMock); + try { + BigQueryException.translateAndThrow(exceptionMock); + } catch (BaseServiceException ex) { + assertEquals(503, ex.getCode()); + assertEquals("message", ex.getMessage()); + assertTrue(ex.isRetryable()); + } finally { + verify(exceptionMock); + } + cause = new IllegalArgumentException("message"); + exceptionMock = createMock(RetryHelperException.class); + expect(exceptionMock.getMessage()).andReturn("message").times(1); + expect(exceptionMock.getCause()).andReturn(cause).times(2); + replay(exceptionMock); + try { + BigQueryException.translateAndThrow(exceptionMock); + } catch (BaseServiceException ex) { + assertEquals(BigQueryException.UNKNOWN_CODE, ex.getCode()); + assertEquals("message", ex.getMessage()); + assertFalse(ex.isRetryable()); + assertSame(cause, ex.getCause()); + } finally { + verify(exceptionMock); + } + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java new file mode 100644 index 000000000000..58f0eb67e674 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -0,0 +1,1436 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static org.easymock.EasyMock.capture; +import static org.easymock.EasyMock.eq; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import com.google.api.gax.paging.Page; +import com.google.api.services.bigquery.model.ErrorProto; +import com.google.api.services.bigquery.model.GetQueryResultsResponse; +import com.google.api.services.bigquery.model.JobConfigurationQuery; +import com.google.api.services.bigquery.model.TableCell; +import com.google.api.services.bigquery.model.TableDataInsertAllRequest; +import com.google.api.services.bigquery.model.TableDataInsertAllResponse; +import com.google.api.services.bigquery.model.TableDataList; +import com.google.api.services.bigquery.model.TableRow; +import com.google.cloud.ServiceOptions; +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.BigQuery.QueryResultsOption; +import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; +import com.google.cloud.bigquery.spi.BigQueryRpcFactory; +import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.common.base.Function; +import com.google.common.base.Supplier; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import java.math.BigInteger; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import org.easymock.Capture; +import org.easymock.EasyMock; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +public class BigQueryImplTest { + + private static final String PROJECT = "project"; + private static final String OTHER_PROJECT = "otherProject"; + private static final String DATASET = "dataset"; + private static final String TABLE = "table"; + private static final String JOB = "job"; + private static final String OTHER_TABLE = "otherTable"; + private static final String OTHER_DATASET = "otherDataset"; + private static final List ACCESS_RULES = + ImmutableList.of( + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), + Acl.of(new Acl.View(TableId.of("dataset", "table")), Acl.Role.WRITER)); + private static final List ACCESS_RULES_WITH_PROJECT = + ImmutableList.of( + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), + Acl.of(new Acl.View(TableId.of(PROJECT, "dataset", "table")))); + private static final DatasetInfo DATASET_INFO = + DatasetInfo.newBuilder(DATASET).setAcl(ACCESS_RULES).setDescription("description").build(); + private static final DatasetInfo DATASET_INFO_WITH_PROJECT = + DatasetInfo.newBuilder(PROJECT, DATASET) + .setAcl(ACCESS_RULES_WITH_PROJECT) + .setDescription("description") + .build(); + private static final DatasetInfo OTHER_DATASET_INFO = + DatasetInfo.newBuilder(PROJECT, OTHER_DATASET) + .setAcl(ACCESS_RULES) + .setDescription("other description") + .build(); + private static final TableId TABLE_ID = TableId.of(DATASET, TABLE); + private static final TableId OTHER_TABLE_ID = TableId.of(PROJECT, DATASET, OTHER_TABLE); + private static final TableId TABLE_ID_WITH_PROJECT = TableId.of(PROJECT, DATASET, TABLE); + private static final Field FIELD_SCHEMA1 = + Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) + .setMode(Field.Mode.NULLABLE) + .setDescription("FieldDescription1") + .build(); + private static final Field FIELD_SCHEMA2 = + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.NULLABLE) + .setDescription("FieldDescription2") + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2); + private static final StandardTableDefinition TABLE_DEFINITION = + StandardTableDefinition.of(TABLE_SCHEMA); + private static final TableInfo TABLE_INFO = TableInfo.of(TABLE_ID, TABLE_DEFINITION); + private static final TableInfo OTHER_TABLE_INFO = TableInfo.of(OTHER_TABLE_ID, TABLE_DEFINITION); + private static final TableInfo TABLE_INFO_WITH_PROJECT = + TableInfo.of(TABLE_ID_WITH_PROJECT, TABLE_DEFINITION); + private static final LoadJobConfiguration LOAD_JOB_CONFIGURATION = + LoadJobConfiguration.of(TABLE_ID, "URI"); + private static final LoadJobConfiguration LOAD_JOB_CONFIGURATION_WITH_PROJECT = + LoadJobConfiguration.of(TABLE_ID_WITH_PROJECT, "URI"); + private static final JobInfo LOAD_JOB = JobInfo.of(LOAD_JOB_CONFIGURATION); + private static final JobInfo COMPLETE_LOAD_JOB = + JobInfo.of(JobId.of(PROJECT, JOB), LOAD_JOB_CONFIGURATION_WITH_PROJECT); + private static final CopyJobConfiguration COPY_JOB_CONFIGURATION = + CopyJobConfiguration.of(TABLE_ID, ImmutableList.of(TABLE_ID, TABLE_ID)); + private static final CopyJobConfiguration COPY_JOB_CONFIGURATION_WITH_PROJECT = + CopyJobConfiguration.of( + TABLE_ID_WITH_PROJECT, ImmutableList.of(TABLE_ID_WITH_PROJECT, TABLE_ID_WITH_PROJECT)); + private static final JobInfo COPY_JOB = JobInfo.of(COPY_JOB_CONFIGURATION); + private static final JobInfo COMPLETE_COPY_JOB = + JobInfo.of(JobId.of(PROJECT, JOB), COPY_JOB_CONFIGURATION_WITH_PROJECT); + private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = + QueryJobConfiguration.newBuilder("SQL") + .setDefaultDataset(DatasetId.of(DATASET)) + .setDestinationTable(TABLE_ID) + .build(); + private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_WITH_PROJECT = + QueryJobConfiguration.newBuilder("SQL") + .setDefaultDataset(DatasetId.of(PROJECT, DATASET)) + .setDestinationTable(TABLE_ID_WITH_PROJECT) + .build(); + private static final JobInfo QUERY_JOB = JobInfo.of(QUERY_JOB_CONFIGURATION); + private static final JobInfo COMPLETE_QUERY_JOB = + JobInfo.of(JobId.of(PROJECT, JOB), QUERY_JOB_CONFIGURATION_WITH_PROJECT); + private static final ExtractJobConfiguration EXTRACT_JOB_CONFIGURATION = + ExtractJobConfiguration.of(TABLE_ID, "URI"); + private static final ExtractJobConfiguration EXTRACT_JOB_CONFIGURATION_WITH_PROJECT = + ExtractJobConfiguration.of(TABLE_ID_WITH_PROJECT, "URI"); + private static final JobInfo EXTRACT_JOB = JobInfo.of(EXTRACT_JOB_CONFIGURATION); + private static final JobInfo COMPLETE_EXTRACT_JOB = + JobInfo.of(JobId.of(PROJECT, JOB), EXTRACT_JOB_CONFIGURATION_WITH_PROJECT); + private static final TableCell BOOLEAN_FIELD = new TableCell().setV("false"); + private static final TableCell INTEGER_FIELD = new TableCell().setV("1"); + private static final TableRow TABLE_ROW = + new TableRow().setF(ImmutableList.of(BOOLEAN_FIELD, INTEGER_FIELD)); + + private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_FOR_QUERY = + QueryJobConfiguration.newBuilder("SQL") + .setDefaultDataset(DatasetId.of(PROJECT, DATASET)) + .setUseQueryCache(false) + .build(); + private static final JobInfo JOB_INFO = + JobInfo.newBuilder(QUERY_JOB_CONFIGURATION_FOR_QUERY) + .setJobId(JobId.of(PROJECT, JOB)) + .build(); + private static final String CURSOR = "cursor"; + private static final TableCell CELL_PB1 = new TableCell().setV("Value1"); + private static final TableCell CELL_PB2 = new TableCell().setV("Value2"); + private static final ImmutableList TABLE_DATA = + ImmutableList.of( + FieldValueList.of(ImmutableList.of(FieldValue.fromPb(CELL_PB1))), + FieldValueList.of(ImmutableList.of(FieldValue.fromPb(CELL_PB2)))); + private static final TableDataList TABLE_DATA_PB = + new TableDataList() + .setPageToken(CURSOR) + .setTotalRows(3L) + .setRows( + ImmutableList.of( + new TableRow().setF(ImmutableList.of(new TableCell().setV("Value1"))), + new TableRow().setF(ImmutableList.of(new TableCell().setV("Value2"))))); + + // Empty BigQueryRpc options + private static final Map EMPTY_RPC_OPTIONS = ImmutableMap.of(); + + // Dataset options + private static final BigQuery.DatasetOption DATASET_OPTION_FIELDS = + BigQuery.DatasetOption.fields(BigQuery.DatasetField.ACCESS, BigQuery.DatasetField.ETAG); + + // Dataset list options + private static final BigQuery.DatasetListOption DATASET_LIST_ALL = + BigQuery.DatasetListOption.all(); + private static final BigQuery.DatasetListOption DATASET_LIST_PAGE_TOKEN = + BigQuery.DatasetListOption.pageToken(CURSOR); + private static final BigQuery.DatasetListOption DATASET_LIST_PAGE_SIZE = + BigQuery.DatasetListOption.pageSize(42L); + private static final Map DATASET_LIST_OPTIONS = + ImmutableMap.of( + BigQueryRpc.Option.ALL_DATASETS, + true, + BigQueryRpc.Option.PAGE_TOKEN, + CURSOR, + BigQueryRpc.Option.MAX_RESULTS, + 42L); + + // Dataset delete options + private static final BigQuery.DatasetDeleteOption DATASET_DELETE_CONTENTS = + BigQuery.DatasetDeleteOption.deleteContents(); + private static final Map DATASET_DELETE_OPTIONS = + ImmutableMap.of(BigQueryRpc.Option.DELETE_CONTENTS, true); + + // Table options + private static final BigQuery.TableOption TABLE_OPTION_FIELDS = + BigQuery.TableOption.fields(BigQuery.TableField.SCHEMA, BigQuery.TableField.ETAG); + + // Table list options + private static final BigQuery.TableListOption TABLE_LIST_PAGE_SIZE = + BigQuery.TableListOption.pageSize(42L); + private static final BigQuery.TableListOption TABLE_LIST_PAGE_TOKEN = + BigQuery.TableListOption.pageToken(CURSOR); + private static final Map TABLE_LIST_OPTIONS = + ImmutableMap.of(BigQueryRpc.Option.MAX_RESULTS, 42L, BigQueryRpc.Option.PAGE_TOKEN, CURSOR); + + // TableData list options + private static final BigQuery.TableDataListOption TABLE_DATA_LIST_PAGE_SIZE = + BigQuery.TableDataListOption.pageSize(42L); + private static final BigQuery.TableDataListOption TABLE_DATA_LIST_PAGE_TOKEN = + BigQuery.TableDataListOption.pageToken(CURSOR); + private static final BigQuery.TableDataListOption TABLE_DATA_LIST_START_INDEX = + BigQuery.TableDataListOption.startIndex(0L); + private static final Map TABLE_DATA_LIST_OPTIONS = + ImmutableMap.of( + BigQueryRpc.Option.MAX_RESULTS, 42L, + BigQueryRpc.Option.PAGE_TOKEN, CURSOR, + BigQueryRpc.Option.START_INDEX, 0L); + + // Job options + private static final BigQuery.JobOption JOB_OPTION_FIELDS = + BigQuery.JobOption.fields(BigQuery.JobField.USER_EMAIL); + + // Job list options + private static final BigQuery.JobListOption JOB_LIST_OPTION_FIELD = + BigQuery.JobListOption.fields(BigQuery.JobField.STATISTICS); + private static final BigQuery.JobListOption JOB_LIST_ALL_USERS = + BigQuery.JobListOption.allUsers(); + private static final BigQuery.JobListOption JOB_LIST_STATE_FILTER = + BigQuery.JobListOption.stateFilter(JobStatus.State.DONE, JobStatus.State.PENDING); + private static final BigQuery.JobListOption JOB_LIST_PAGE_TOKEN = + BigQuery.JobListOption.pageToken(CURSOR); + private static final BigQuery.JobListOption JOB_LIST_PAGE_SIZE = + BigQuery.JobListOption.pageSize(42L); + private static final Map JOB_LIST_OPTIONS = + ImmutableMap.of( + BigQueryRpc.Option.ALL_USERS, + true, + BigQueryRpc.Option.STATE_FILTER, + ImmutableList.of("done", "pending"), + BigQueryRpc.Option.PAGE_TOKEN, + CURSOR, + BigQueryRpc.Option.MAX_RESULTS, + 42L); + + // Query Results options + private static final BigQuery.QueryResultsOption QUERY_RESULTS_OPTION_TIME = + BigQuery.QueryResultsOption.maxWaitTime(42L); + private static final BigQuery.QueryResultsOption QUERY_RESULTS_OPTION_INDEX = + BigQuery.QueryResultsOption.startIndex(1024L); + private static final BigQuery.QueryResultsOption QUERY_RESULTS_OPTION_PAGE_TOKEN = + BigQuery.QueryResultsOption.pageToken(CURSOR); + private static final BigQuery.QueryResultsOption QUERY_RESULTS_OPTION_PAGE_SIZE = + BigQuery.QueryResultsOption.pageSize(0L); + private static final Map QUERY_RESULTS_OPTIONS = + ImmutableMap.of( + BigQueryRpc.Option.TIMEOUT, 42L, + BigQueryRpc.Option.START_INDEX, 1024L, + BigQueryRpc.Option.PAGE_TOKEN, CURSOR, + BigQueryRpc.Option.MAX_RESULTS, 0L); + + private BigQueryOptions options; + private BigQueryRpcFactory rpcFactoryMock; + private BigQueryRpc bigqueryRpcMock; + private BigQuery bigquery; + + @Rule public ExpectedException thrown = ExpectedException.none(); + + @Before + public void setUp() { + rpcFactoryMock = EasyMock.createMock(BigQueryRpcFactory.class); + bigqueryRpcMock = EasyMock.createMock(BigQueryRpc.class); + EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(BigQueryOptions.class))) + .andReturn(bigqueryRpcMock); + EasyMock.replay(rpcFactoryMock); + options = + BigQueryOptions.newBuilder() + .setProjectId(PROJECT) + .setServiceRpcFactory(rpcFactoryMock) + .setRetrySettings(ServiceOptions.getNoRetrySettings()) + .build(); + } + + @After + public void tearDown() { + EasyMock.verify(rpcFactoryMock, bigqueryRpcMock); + } + + @Test + public void testGetOptions() { + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + assertSame(options, bigquery.getOptions()); + } + + @Test + public void testCreateDataset() { + DatasetInfo datasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT); + EasyMock.expect(bigqueryRpcMock.create(datasetInfo.toPb(), EMPTY_RPC_OPTIONS)) + .andReturn(datasetInfo.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Dataset dataset = bigquery.create(datasetInfo); + assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(datasetInfo)), dataset); + } + + @Test + public void testCreateDatasetWithSelectedFields() { + Capture> capturedOptions = Capture.newInstance(); + EasyMock.expect( + bigqueryRpcMock.create(eq(DATASET_INFO_WITH_PROJECT.toPb()), capture(capturedOptions))) + .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Dataset dataset = bigquery.create(DATASET_INFO, DATASET_OPTION_FIELDS); + String selector = (String) capturedOptions.getValue().get(DATASET_OPTION_FIELDS.getRpcOption()); + assertTrue(selector.contains("datasetReference")); + assertTrue(selector.contains("access")); + assertTrue(selector.contains("etag")); + assertEquals(28, selector.length()); + assertEquals( + new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); + } + + @Test + public void testGetDataset() { + EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Dataset dataset = bigquery.getDataset(DATASET); + assertEquals( + new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); + } + + @Test + public void testGetDatasetFromDatasetId() { + EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Dataset dataset = bigquery.getDataset(DatasetId.of(DATASET)); + assertEquals( + new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); + } + + @Test + public void testGetDatasetFromDatasetIdWithProject() { + DatasetInfo datasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT); + DatasetId datasetId = DatasetId.of(OTHER_PROJECT, DATASET); + EasyMock.expect(bigqueryRpcMock.getDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andReturn(datasetInfo.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Dataset dataset = bigquery.getDataset(datasetId); + assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(datasetInfo)), dataset); + } + + @Test + public void testGetDatasetWithSelectedFields() { + Capture> capturedOptions = Capture.newInstance(); + EasyMock.expect(bigqueryRpcMock.getDataset(eq(PROJECT), eq(DATASET), capture(capturedOptions))) + .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Dataset dataset = bigquery.getDataset(DATASET, DATASET_OPTION_FIELDS); + String selector = (String) capturedOptions.getValue().get(DATASET_OPTION_FIELDS.getRpcOption()); + assertTrue(selector.contains("datasetReference")); + assertTrue(selector.contains("access")); + assertTrue(selector.contains("etag")); + assertEquals(28, selector.length()); + assertEquals( + new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); + } + + @Test + public void testListDatasets() { + bigquery = options.getService(); + ImmutableList datasetList = + ImmutableList.of( + new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), + new Dataset(bigquery, new DatasetInfo.BuilderImpl(OTHER_DATASET_INFO))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(datasetList, DatasetInfo.TO_PB_FUNCTION)); + EasyMock.expect(bigqueryRpcMock.listDatasets(PROJECT, EMPTY_RPC_OPTIONS)).andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page page = bigquery.listDatasets(); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals( + datasetList.toArray(), Iterables.toArray(page.getValues(), DatasetInfo.class)); + } + + @Test + public void testListDatasetsWithProjects() { + bigquery = options.getService(); + ImmutableList datasetList = + ImmutableList.of( + new Dataset( + bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO.setProjectId(OTHER_PROJECT)))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(datasetList, DatasetInfo.TO_PB_FUNCTION)); + EasyMock.expect(bigqueryRpcMock.listDatasets(OTHER_PROJECT, EMPTY_RPC_OPTIONS)) + .andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page page = bigquery.listDatasets(OTHER_PROJECT); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals( + datasetList.toArray(), Iterables.toArray(page.getValues(), DatasetInfo.class)); + } + + @Test + public void testListEmptyDatasets() { + ImmutableList datasets = ImmutableList.of(); + Tuple> result = + Tuple.>of(null, datasets); + EasyMock.expect(bigqueryRpcMock.listDatasets(PROJECT, EMPTY_RPC_OPTIONS)).andReturn(result); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Page page = bigquery.listDatasets(); + assertNull(page.getNextPageToken()); + assertArrayEquals( + ImmutableList.of().toArray(), Iterables.toArray(page.getValues(), Dataset.class)); + } + + @Test + public void testListDatasetsWithOptions() { + bigquery = options.getService(); + ImmutableList datasetList = + ImmutableList.of( + new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), + new Dataset(bigquery, new DatasetInfo.BuilderImpl(OTHER_DATASET_INFO))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(datasetList, DatasetInfo.TO_PB_FUNCTION)); + EasyMock.expect(bigqueryRpcMock.listDatasets(PROJECT, DATASET_LIST_OPTIONS)).andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page page = + bigquery.listDatasets(DATASET_LIST_ALL, DATASET_LIST_PAGE_TOKEN, DATASET_LIST_PAGE_SIZE); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals( + datasetList.toArray(), Iterables.toArray(page.getValues(), DatasetInfo.class)); + } + + @Test + public void testDeleteDataset() { + EasyMock.expect(bigqueryRpcMock.deleteDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andReturn(true); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + assertTrue(bigquery.delete(DATASET)); + } + + @Test + public void testDeleteDatasetFromDatasetId() { + EasyMock.expect(bigqueryRpcMock.deleteDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andReturn(true); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + assertTrue(bigquery.delete(DatasetId.of(DATASET))); + } + + @Test + public void testDeleteDatasetFromDatasetIdWithProject() { + DatasetId datasetId = DatasetId.of(OTHER_PROJECT, DATASET); + EasyMock.expect(bigqueryRpcMock.deleteDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andReturn(true); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + assertTrue(bigquery.delete(datasetId)); + } + + @Test + public void testDeleteDatasetWithOptions() { + EasyMock.expect(bigqueryRpcMock.deleteDataset(PROJECT, DATASET, DATASET_DELETE_OPTIONS)) + .andReturn(true); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + assertTrue(bigquery.delete(DATASET, DATASET_DELETE_CONTENTS)); + } + + @Test + public void testUpdateDataset() { + DatasetInfo updatedDatasetInfo = + DATASET_INFO + .setProjectId(OTHER_PROJECT) + .toBuilder() + .setDescription("newDescription") + .build(); + EasyMock.expect(bigqueryRpcMock.patch(updatedDatasetInfo.toPb(), EMPTY_RPC_OPTIONS)) + .andReturn(updatedDatasetInfo.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Dataset dataset = bigquery.update(updatedDatasetInfo); + assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(updatedDatasetInfo)), dataset); + } + + @Test + public void testUpdateDatasetWithSelectedFields() { + Capture> capturedOptions = Capture.newInstance(); + DatasetInfo updatedDatasetInfo = + DATASET_INFO.toBuilder().setDescription("newDescription").build(); + DatasetInfo updatedDatasetInfoWithProject = + DATASET_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); + EasyMock.expect( + bigqueryRpcMock.patch( + eq(updatedDatasetInfoWithProject.toPb()), capture(capturedOptions))) + .andReturn(updatedDatasetInfoWithProject.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Dataset dataset = bigquery.update(updatedDatasetInfo, DATASET_OPTION_FIELDS); + String selector = (String) capturedOptions.getValue().get(DATASET_OPTION_FIELDS.getRpcOption()); + assertTrue(selector.contains("datasetReference")); + assertTrue(selector.contains("access")); + assertTrue(selector.contains("etag")); + assertEquals(28, selector.length()); + assertEquals( + new Dataset(bigquery, new DatasetInfo.BuilderImpl(updatedDatasetInfoWithProject)), dataset); + } + + @Test + public void testCreateTable() { + TableInfo tableInfo = TABLE_INFO.setProjectId(OTHER_PROJECT); + EasyMock.expect(bigqueryRpcMock.create(tableInfo.toPb(), EMPTY_RPC_OPTIONS)) + .andReturn(tableInfo.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Table table = bigquery.create(tableInfo); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); + } + + @Test + public void testCreateTableWithSelectedFields() { + Capture> capturedOptions = Capture.newInstance(); + EasyMock.expect( + bigqueryRpcMock.create(eq(TABLE_INFO_WITH_PROJECT.toPb()), capture(capturedOptions))) + .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Table table = bigquery.create(TABLE_INFO, TABLE_OPTION_FIELDS); + String selector = (String) capturedOptions.getValue().get(TABLE_OPTION_FIELDS.getRpcOption()); + assertTrue(selector.contains("tableReference")); + assertTrue(selector.contains("schema")); + assertTrue(selector.contains("etag")); + assertEquals(31, selector.length()); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); + } + + @Test + public void testGetTable() { + EasyMock.expect(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Table table = bigquery.getTable(DATASET, TABLE); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); + } + + @Test + public void testGetTableFromTableId() { + EasyMock.expect(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Table table = bigquery.getTable(TABLE_ID); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); + } + + @Test + public void testGetTableFromTableIdWithProject() { + TableInfo tableInfo = TABLE_INFO.setProjectId(OTHER_PROJECT); + TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); + EasyMock.expect(bigqueryRpcMock.getTable(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .andReturn(tableInfo.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Table table = bigquery.getTable(tableId); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); + } + + @Test + public void testGetTableWithSelectedFields() { + Capture> capturedOptions = Capture.newInstance(); + EasyMock.expect( + bigqueryRpcMock.getTable(eq(PROJECT), eq(DATASET), eq(TABLE), capture(capturedOptions))) + .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Table table = bigquery.getTable(TABLE_ID, TABLE_OPTION_FIELDS); + String selector = (String) capturedOptions.getValue().get(TABLE_OPTION_FIELDS.getRpcOption()); + assertTrue(selector.contains("tableReference")); + assertTrue(selector.contains("schema")); + assertTrue(selector.contains("etag")); + assertEquals(31, selector.length()); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); + } + + @Test + public void testListTables() { + bigquery = options.getService(); + ImmutableList

tableList = + ImmutableList.of( + new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), + new Table(bigquery, new TableInfo.BuilderImpl(OTHER_TABLE_INFO))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); + EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page
page = bigquery.listTables(DATASET); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + } + + @Test + public void testListTablesFromDatasetId() { + bigquery = options.getService(); + ImmutableList
tableList = + ImmutableList.of( + new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), + new Table(bigquery, new TableInfo.BuilderImpl(OTHER_TABLE_INFO))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); + EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page
page = bigquery.listTables(DatasetId.of(DATASET)); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + } + + @Test + public void testListTablesFromDatasetIdWithProject() { + bigquery = options.getService(); + ImmutableList
tableList = + ImmutableList.of( + new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO.setProjectId(OTHER_PROJECT)))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); + EasyMock.expect(bigqueryRpcMock.listTables(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page
page = bigquery.listTables(DatasetId.of(OTHER_PROJECT, DATASET)); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + } + + @Test + public void testListTablesWithOptions() { + bigquery = options.getService(); + ImmutableList
tableList = + ImmutableList.of( + new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), + new Table(bigquery, new TableInfo.BuilderImpl(OTHER_TABLE_INFO))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); + EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)) + .andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page
page = bigquery.listTables(DATASET, TABLE_LIST_PAGE_SIZE, TABLE_LIST_PAGE_TOKEN); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + } + + @Test + public void testDeleteTable() { + EasyMock.expect(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).andReturn(true); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + assertTrue(bigquery.delete(DATASET, TABLE)); + } + + @Test + public void testDeleteTableFromTableId() { + EasyMock.expect(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).andReturn(true); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + assertTrue(bigquery.delete(TABLE_ID)); + } + + @Test + public void testDeleteTableFromTableIdWithProject() { + TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); + EasyMock.expect(bigqueryRpcMock.deleteTable(OTHER_PROJECT, DATASET, TABLE)).andReturn(true); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + assertTrue(bigquery.delete(tableId)); + } + + @Test + public void testUpdateTable() { + TableInfo updatedTableInfo = + TABLE_INFO.setProjectId(OTHER_PROJECT).toBuilder().setDescription("newDescription").build(); + EasyMock.expect(bigqueryRpcMock.patch(updatedTableInfo.toPb(), EMPTY_RPC_OPTIONS)) + .andReturn(updatedTableInfo.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Table table = bigquery.update(updatedTableInfo); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfo)), table); + } + + @Test + public void testUpdateTableWithSelectedFields() { + Capture> capturedOptions = Capture.newInstance(); + TableInfo updatedTableInfo = TABLE_INFO.toBuilder().setDescription("newDescription").build(); + TableInfo updatedTableInfoWithProject = + TABLE_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); + EasyMock.expect( + bigqueryRpcMock.patch(eq(updatedTableInfoWithProject.toPb()), capture(capturedOptions))) + .andReturn(updatedTableInfoWithProject.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Table table = bigquery.update(updatedTableInfo, TABLE_OPTION_FIELDS); + String selector = (String) capturedOptions.getValue().get(TABLE_OPTION_FIELDS.getRpcOption()); + assertTrue(selector.contains("tableReference")); + assertTrue(selector.contains("schema")); + assertTrue(selector.contains("etag")); + assertEquals(31, selector.length()); + assertEquals( + new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfoWithProject)), table); + } + + @Test + public void testInsertAll() { + Map row1 = ImmutableMap.of("field", "value1"); + Map row2 = ImmutableMap.of("field", "value2"); + List rows = + ImmutableList.of(new RowToInsert("row1", row1), new RowToInsert("row2", row2)); + InsertAllRequest request = + InsertAllRequest.newBuilder(TABLE_ID) + .setRows(rows) + .setSkipInvalidRows(false) + .setIgnoreUnknownValues(true) + .setTemplateSuffix("suffix") + .build(); + TableDataInsertAllRequest requestPb = + new TableDataInsertAllRequest() + .setRows( + Lists.transform( + rows, + new Function() { + @Override + public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { + return new TableDataInsertAllRequest.Rows() + .setInsertId(rowToInsert.getId()) + .setJson(rowToInsert.getContent()); + } + })) + .setSkipInvalidRows(false) + .setIgnoreUnknownValues(true) + .setTemplateSuffix("suffix"); + TableDataInsertAllResponse responsePb = + new TableDataInsertAllResponse() + .setInsertErrors( + ImmutableList.of( + new TableDataInsertAllResponse.InsertErrors() + .setIndex(0L) + .setErrors(ImmutableList.of(new ErrorProto().setMessage("ErrorMessage"))))); + EasyMock.expect(bigqueryRpcMock.insertAll(PROJECT, DATASET, TABLE, requestPb)) + .andReturn(responsePb); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + InsertAllResponse response = bigquery.insertAll(request); + assertNotNull(response.getErrorsFor(0L)); + assertNull(response.getErrorsFor(1L)); + assertEquals(1, response.getErrorsFor(0L).size()); + assertEquals("ErrorMessage", response.getErrorsFor(0L).get(0).getMessage()); + } + + @Test + public void testInsertAllWithProject() { + Map row1 = ImmutableMap.of("field", "value1"); + Map row2 = ImmutableMap.of("field", "value2"); + List rows = + ImmutableList.of(new RowToInsert("row1", row1), new RowToInsert("row2", row2)); + TableId tableId = TableId.of(OTHER_PROJECT, DATASET, TABLE); + InsertAllRequest request = + InsertAllRequest.newBuilder(tableId) + .setRows(rows) + .setSkipInvalidRows(false) + .setIgnoreUnknownValues(true) + .setTemplateSuffix("suffix") + .build(); + TableDataInsertAllRequest requestPb = + new TableDataInsertAllRequest() + .setRows( + Lists.transform( + rows, + new Function() { + @Override + public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { + return new TableDataInsertAllRequest.Rows() + .setInsertId(rowToInsert.getId()) + .setJson(rowToInsert.getContent()); + } + })) + .setSkipInvalidRows(false) + .setIgnoreUnknownValues(true) + .setTemplateSuffix("suffix"); + TableDataInsertAllResponse responsePb = + new TableDataInsertAllResponse() + .setInsertErrors( + ImmutableList.of( + new TableDataInsertAllResponse.InsertErrors() + .setIndex(0L) + .setErrors(ImmutableList.of(new ErrorProto().setMessage("ErrorMessage"))))); + EasyMock.expect(bigqueryRpcMock.insertAll(OTHER_PROJECT, DATASET, TABLE, requestPb)) + .andReturn(responsePb); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + InsertAllResponse response = bigquery.insertAll(request); + assertNotNull(response.getErrorsFor(0L)); + assertNull(response.getErrorsFor(1L)); + assertEquals(1, response.getErrorsFor(0L).size()); + assertEquals("ErrorMessage", response.getErrorsFor(0L).get(0).getMessage()); + } + + @Test + public void testListTableData() { + EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .andReturn(TABLE_DATA_PB); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Page page = bigquery.listTableData(DATASET, TABLE); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); + } + + @Test + public void testListTableDataFromTableId() { + EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .andReturn(TABLE_DATA_PB); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Page page = bigquery.listTableData(TableId.of(DATASET, TABLE)); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); + } + + @Test + public void testListTableDataFromTableIdWithProject() { + TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); + EasyMock.expect(bigqueryRpcMock.listTableData(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .andReturn(TABLE_DATA_PB); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Page page = bigquery.listTableData(tableId); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); + } + + @Test + public void testListTableDataWithOptions() { + EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS)) + .andReturn(TABLE_DATA_PB); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Page page = + bigquery.listTableData( + DATASET, + TABLE, + TABLE_DATA_LIST_PAGE_SIZE, + TABLE_DATA_LIST_PAGE_TOKEN, + TABLE_DATA_LIST_START_INDEX); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); + } + + // The "minimally initialized" Job that lets Job.fromPb run without throwing. + private static com.google.api.services.bigquery.model.Job newJobPb() { + return new com.google.api.services.bigquery.model.Job() + .setConfiguration( + new com.google.api.services.bigquery.model.JobConfiguration() + .setQuery(new JobConfigurationQuery().setQuery("FOO"))); + } + + @Test + public void testCreateJobSuccess() { + String id = "testCreateJobSuccess-id"; + JobId jobId = JobId.of(id); + String query = "SELECT * in FOO"; + + Capture jobCapture = EasyMock.newCapture(); + EasyMock.expect( + bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) + .andReturn(newJobPb()); + EasyMock.replay(bigqueryRpcMock); + + bigquery = options.getService(); + assertThat(bigquery.create(JobInfo.of(jobId, QueryJobConfiguration.of(query)))).isNotNull(); + assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); + } + + @Test + public void testCreateJobWithSelectedFields() { + Capture> capturedOptions = Capture.newInstance(); + EasyMock.expect( + bigqueryRpcMock.create( + EasyMock.anyObject(com.google.api.services.bigquery.model.Job.class), + EasyMock.capture(capturedOptions))) + .andReturn(newJobPb()); + EasyMock.replay(bigqueryRpcMock); + + BigQuery.JobOption jobOptions = BigQuery.JobOption.fields(BigQuery.JobField.USER_EMAIL); + + bigquery = options.getService(); + bigquery.create(JobInfo.of(QueryJobConfiguration.of("SOME QUERY")), jobOptions); + String selector = (String) capturedOptions.getValue().get(jobOptions.getRpcOption()); + + // jobReference and configuration are always sent; the RPC call won't succeed otherwise. + assertThat(selector.split(",")) + .asList() + .containsExactly("jobReference", "configuration", "user_email"); + } + + @Test + public void testCreateJobNoGet() { + String id = "testCreateJobNoGet-id"; + JobId jobId = JobId.of(id); + String query = "SELECT * in FOO"; + + Capture jobCapture = EasyMock.newCapture(); + EasyMock.expect( + bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) + .andThrow(new BigQueryException(409, "already exists, for some reason")); + EasyMock.replay(bigqueryRpcMock); + + bigquery = options.getService(); + try { + bigquery.create(JobInfo.of(jobId, QueryJobConfiguration.of(query))); + fail("should throw"); + } catch (BigQueryException e) { + assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); + } + } + + @Test + public void testCreateJobTryGet() { + final String id = "testCreateJobTryGet-id"; + String query = "SELECT * in FOO"; + Supplier idProvider = + new Supplier() { + @Override + public JobId get() { + return JobId.of(id); + } + }; + + Capture jobCapture = EasyMock.newCapture(); + EasyMock.expect( + bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) + .andThrow(new BigQueryException(409, "already exists, for some reason")); + EasyMock.expect( + bigqueryRpcMock.getJob( + EasyMock.anyString(), + EasyMock.eq(id), + EasyMock.eq((String) null), + EasyMock.eq(EMPTY_RPC_OPTIONS))) + .andReturn(newJobPb()); + EasyMock.replay(bigqueryRpcMock); + + bigquery = options.getService(); + ((BigQueryImpl) bigquery).create(JobInfo.of(QueryJobConfiguration.of(query)), idProvider); + assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); + } + + @Test + public void testCreateJobWithProjectId() { + JobInfo jobInfo = + JobInfo.newBuilder(QUERY_JOB_CONFIGURATION.setProjectId(OTHER_PROJECT)) + .setJobId(JobId.of(OTHER_PROJECT, JOB)) + .build(); + Capture> capturedOptions = Capture.newInstance(); + EasyMock.expect(bigqueryRpcMock.create(eq(jobInfo.toPb()), capture(capturedOptions))) + .andReturn(jobInfo.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Job job = bigquery.create(jobInfo, JOB_OPTION_FIELDS); + assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(jobInfo)), job); + String selector = (String) capturedOptions.getValue().get(JOB_OPTION_FIELDS.getRpcOption()); + assertTrue(selector.contains("jobReference")); + assertTrue(selector.contains("configuration")); + assertTrue(selector.contains("user_email")); + assertEquals(37, selector.length()); + } + + @Test + public void testGetJob() { + EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .andReturn(COMPLETE_COPY_JOB.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Job job = bigquery.getJob(JOB); + assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); + } + + @Test + public void testGetJobFromJobId() { + EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .andReturn(COMPLETE_COPY_JOB.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Job job = bigquery.getJob(JobId.of(JOB)); + assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); + } + + @Test + public void testGetJobFromJobIdWithProject() { + JobId jobId = JobId.of(OTHER_PROJECT, JOB); + JobInfo jobInfo = COPY_JOB.setProjectId(OTHER_PROJECT); + EasyMock.expect(bigqueryRpcMock.getJob(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .andReturn(jobInfo.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Job job = bigquery.getJob(jobId); + assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(jobInfo)), job); + } + + @Test + public void testListJobs() { + bigquery = options.getService(); + ImmutableList jobList = + ImmutableList.of( + new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_QUERY_JOB)), + new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_LOAD_JOB))); + Tuple> result = + Tuple.of( + CURSOR, + Iterables.transform( + jobList, + new Function() { + @Override + public com.google.api.services.bigquery.model.Job apply(Job job) { + return job.toPb(); + } + })); + EasyMock.expect(bigqueryRpcMock.listJobs(PROJECT, EMPTY_RPC_OPTIONS)).andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page page = bigquery.listJobs(); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(jobList.toArray(), Iterables.toArray(page.getValues(), Job.class)); + } + + @Test + public void testListJobsWithOptions() { + bigquery = options.getService(); + ImmutableList jobList = + ImmutableList.of( + new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_QUERY_JOB)), + new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_LOAD_JOB))); + Tuple> result = + Tuple.of( + CURSOR, + Iterables.transform( + jobList, + new Function() { + @Override + public com.google.api.services.bigquery.model.Job apply(Job job) { + return job.toPb(); + } + })); + EasyMock.expect(bigqueryRpcMock.listJobs(PROJECT, JOB_LIST_OPTIONS)).andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page page = + bigquery.listJobs( + JOB_LIST_ALL_USERS, JOB_LIST_STATE_FILTER, JOB_LIST_PAGE_TOKEN, JOB_LIST_PAGE_SIZE); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(jobList.toArray(), Iterables.toArray(page.getValues(), Job.class)); + } + + @Test + public void testListJobsWithSelectedFields() { + Capture> capturedOptions = Capture.newInstance(); + bigquery = options.getService(); + ImmutableList jobList = + ImmutableList.of( + new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_QUERY_JOB)), + new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_LOAD_JOB))); + Tuple> result = + Tuple.of( + CURSOR, + Iterables.transform( + jobList, + new Function() { + @Override + public com.google.api.services.bigquery.model.Job apply(Job job) { + return job.toPb(); + } + })); + EasyMock.expect(bigqueryRpcMock.listJobs(eq(PROJECT), capture(capturedOptions))) + .andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page page = bigquery.listJobs(JOB_LIST_OPTION_FIELD); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(jobList.toArray(), Iterables.toArray(page.getValues(), Job.class)); + String selector = (String) capturedOptions.getValue().get(JOB_OPTION_FIELDS.getRpcOption()); + assertTrue(selector.contains("nextPageToken,jobs(")); + assertTrue(selector.contains("configuration")); + assertTrue(selector.contains("jobReference")); + assertTrue(selector.contains("statistics")); + assertTrue(selector.contains("state")); + assertTrue(selector.contains("errorResult")); + assertTrue(selector.contains(")")); + assertEquals(75, selector.length()); + } + + @Test + public void testCancelJob() { + EasyMock.expect(bigqueryRpcMock.cancel(PROJECT, JOB, null)).andReturn(true); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + assertTrue(bigquery.cancel(JOB)); + } + + @Test + public void testCancelJobFromJobId() { + EasyMock.expect(bigqueryRpcMock.cancel(PROJECT, JOB, null)).andReturn(true); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + assertTrue(bigquery.cancel(JobId.of(PROJECT, JOB))); + } + + @Test + public void testCancelJobFromJobIdWithProject() { + JobId jobId = JobId.of(OTHER_PROJECT, JOB); + EasyMock.expect(bigqueryRpcMock.cancel(OTHER_PROJECT, JOB, null)).andReturn(true); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + assertTrue(bigquery.cancel(jobId)); + } + + @Test + public void testQueryRequestCompleted() throws InterruptedException { + JobId queryJob = JobId.of(PROJECT, JOB); + com.google.api.services.bigquery.model.Job jobResponsePb = + new com.google.api.services.bigquery.model.Job() + .setConfiguration(QUERY_JOB_CONFIGURATION_FOR_QUERY.toPb()) + .setJobReference(queryJob.toPb()) + .setId(JOB) + .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")); + jobResponsePb.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); + GetQueryResultsResponse responsePb = + new GetQueryResultsResponse() + .setJobReference(queryJob.toPb()) + .setRows(ImmutableList.of(TABLE_ROW)) + .setJobComplete(true) + .setCacheHit(false) + .setPageToken(CURSOR) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)) + .setSchema(TABLE_SCHEMA.toPb()); + + EasyMock.expect( + bigqueryRpcMock.create( + JOB_INFO.toPb(), Collections.emptyMap())) + .andReturn(jobResponsePb); + EasyMock.expect( + bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + .andReturn(responsePb); + EasyMock.expect( + bigqueryRpcMock.listTableData( + PROJECT, DATASET, TABLE, Collections.emptyMap())) + .andReturn( + new TableDataList() + .setPageToken("") + .setRows(ImmutableList.of(TABLE_ROW)) + .setTotalRows(1L)); + + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + TableResult result = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY, queryJob); + assertThat(result.getSchema()).isEqualTo(TABLE_SCHEMA); + assertThat(result.getTotalRows()).isEqualTo(1); + for (FieldValueList row : result.getValues()) { + assertThat(row.get(0).getBooleanValue()).isFalse(); + assertThat(row.get(1).getLongValue()).isEqualTo(1); + } + } + + @Test + public void testQueryRequestCompletedOptions() throws InterruptedException { + JobId queryJob = JobId.of(PROJECT, JOB); + com.google.api.services.bigquery.model.Job jobResponsePb = + new com.google.api.services.bigquery.model.Job() + .setConfiguration(QUERY_JOB_CONFIGURATION_FOR_QUERY.toPb()) + .setJobReference(queryJob.toPb()) + .setId(JOB) + .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")); + jobResponsePb.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); + GetQueryResultsResponse responsePb = + new GetQueryResultsResponse() + .setJobReference(queryJob.toPb()) + .setRows(ImmutableList.of(TABLE_ROW)) + .setJobComplete(true) + .setCacheHit(false) + .setPageToken(CURSOR) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)) + .setSchema(TABLE_SCHEMA.toPb()); + + EasyMock.expect( + bigqueryRpcMock.create(JOB_INFO.toPb(), Collections.emptyMap())) + .andReturn(jobResponsePb); + + Map optionMap = Maps.newEnumMap(BigQueryRpc.Option.class); + QueryResultsOption pageSizeOption = QueryResultsOption.pageSize(42L); + optionMap.put(pageSizeOption.getRpcOption(), pageSizeOption.getValue()); + + EasyMock.expect( + bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + .andReturn(responsePb); + EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, optionMap)) + .andReturn( + new TableDataList() + .setPageToken("") + .setRows(ImmutableList.of(TABLE_ROW)) + .setTotalRows(1L)); + + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Job job = bigquery.create(JobInfo.of(queryJob, QUERY_JOB_CONFIGURATION_FOR_QUERY)); + TableResult result = job.getQueryResults(pageSizeOption); + assertThat(result.getSchema()).isEqualTo(TABLE_SCHEMA); + assertThat(result.getTotalRows()).isEqualTo(1); + for (FieldValueList row : result.getValues()) { + assertThat(row.get(0).getBooleanValue()).isFalse(); + assertThat(row.get(1).getLongValue()).isEqualTo(1); + } + } + + @Test + public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedException { + JobId queryJob = JobId.of(PROJECT, JOB); + com.google.api.services.bigquery.model.Job jobResponsePb1 = + new com.google.api.services.bigquery.model.Job() + .setConfiguration(QUERY_JOB_CONFIGURATION_FOR_QUERY.toPb()) + .setJobReference(queryJob.toPb()) + .setId(JOB); + jobResponsePb1.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); + + GetQueryResultsResponse responsePb1 = + new GetQueryResultsResponse() + .setJobReference(queryJob.toPb()) + .setJobComplete(false); + + GetQueryResultsResponse responsePb2 = + new GetQueryResultsResponse() + .setJobReference(queryJob.toPb()) + .setRows(ImmutableList.of(TABLE_ROW)) + .setJobComplete(true) + .setCacheHit(false) + .setPageToken(CURSOR) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)) + .setSchema(TABLE_SCHEMA.toPb()); + + EasyMock.expect( + bigqueryRpcMock.create( + JOB_INFO.toPb(), Collections.emptyMap())) + .andReturn(jobResponsePb1); + + EasyMock.expect( + bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + .andReturn(responsePb1); + EasyMock.expect( + bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + .andReturn(responsePb2); + EasyMock.expect( + bigqueryRpcMock.listTableData( + PROJECT, DATASET, TABLE, Collections.emptyMap())) + .andReturn( + new TableDataList() + .setPageToken("") + .setRows(ImmutableList.of(TABLE_ROW)) + .setTotalRows(1L)); + + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + TableResult result = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY, queryJob); + assertThat(result.getSchema()).isEqualTo(TABLE_SCHEMA); + assertThat(result.getTotalRows()).isEqualTo(1); + for (FieldValueList row : result.getValues()) { + assertThat(row.get(0).getBooleanValue()).isFalse(); + assertThat(row.get(1).getLongValue()).isEqualTo(1); + } + } + + @Test + public void testGetQueryResults() { + JobId queryJob = JobId.of(JOB); + GetQueryResultsResponse responsePb = + new GetQueryResultsResponse() + .setEtag("etag") + .setJobReference(queryJob.toPb()) + .setRows(ImmutableList.of(TABLE_ROW)) + .setJobComplete(true) + .setCacheHit(false) + .setPageToken(CURSOR) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)); + EasyMock.expect(bigqueryRpcMock.getQueryResults(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .andReturn(responsePb); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + QueryResponse response = bigquery.getQueryResults(queryJob); + assertEquals(true, response.getCompleted()); + assertEquals(null, response.getSchema()); + } + + @Test + public void testGetQueryResultsWithProject() { + JobId queryJob = JobId.of(OTHER_PROJECT, JOB); + GetQueryResultsResponse responsePb = + new GetQueryResultsResponse() + .setEtag("etag") + .setJobReference(queryJob.toPb()) + .setRows(ImmutableList.of(TABLE_ROW)) + .setJobComplete(true) + .setCacheHit(false) + .setPageToken(CURSOR) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)); + EasyMock.expect(bigqueryRpcMock.getQueryResults(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .andReturn(responsePb); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + QueryResponse response = bigquery.getQueryResults(queryJob); + assertTrue(response.getCompleted()); + assertEquals(null, response.getSchema()); + } + + @Test + public void testGetQueryResultsWithOptions() { + JobId queryJob = JobId.of(PROJECT, JOB); + GetQueryResultsResponse responsePb = + new GetQueryResultsResponse() + .setJobReference(queryJob.toPb()) + .setRows(ImmutableList.of(TABLE_ROW)) + .setJobComplete(true) + .setCacheHit(false) + .setPageToken(CURSOR) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)); + EasyMock.expect(bigqueryRpcMock.getQueryResults(PROJECT, JOB, null, QUERY_RESULTS_OPTIONS)) + .andReturn(responsePb); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + QueryResponse response = + bigquery.getQueryResults( + queryJob, + QUERY_RESULTS_OPTION_TIME, + QUERY_RESULTS_OPTION_INDEX, + QUERY_RESULTS_OPTION_PAGE_SIZE, + QUERY_RESULTS_OPTION_PAGE_TOKEN); + assertEquals(true, response.getCompleted()); + assertEquals(null, response.getSchema()); + } + + @Test + public void testRetryableException() { + EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andThrow(new BigQueryException(500, "InternalError")) + .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + Dataset dataset = bigquery.getDataset(DATASET); + assertEquals( + new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); + } + + @Test + public void testNonRetryableException() { + String exceptionMessage = "Not Implemented"; + EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andThrow(new BigQueryException(501, exceptionMessage)); + EasyMock.replay(bigqueryRpcMock); + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + thrown.expect(BigQueryException.class); + thrown.expectMessage(exceptionMessage); + bigquery.getDataset(DatasetId.of(DATASET)); + } + + @Test + public void testRuntimeException() { + String exceptionMessage = "Artificial runtime exception"; + EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andThrow(new RuntimeException(exceptionMessage)); + EasyMock.replay(bigqueryRpcMock); + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + thrown.expect(BigQueryException.class); + thrown.expectMessage(exceptionMessage); + bigquery.getDataset(DATASET); + } + + @Test + public void testQueryDryRun() throws Exception { + // https://github.com/GoogleCloudPlatform/google-cloud-java/issues/2479 + EasyMock.replay(bigqueryRpcMock); + thrown.expect(UnsupportedOperationException.class); + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService() + .query(QueryJobConfiguration.newBuilder("foo").setDryRun(true).build()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java new file mode 100644 index 000000000000..871cd4219cdb --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java @@ -0,0 +1,35 @@ +/* + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.cloud.TransportOptions; +import org.easymock.EasyMock; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +public class BigQueryOptionsTest { + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void testInvalidTransport() { + thrown.expect(IllegalArgumentException.class); + BigQueryOptions.newBuilder().setTransportOptions(EasyMock.createMock(TransportOptions.class)); + } + +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java new file mode 100644 index 000000000000..f7d111f987b0 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java @@ -0,0 +1,141 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +import com.google.cloud.bigquery.JobInfo.CreateDisposition; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.common.collect.ImmutableList; + +import org.junit.Test; + +import java.util.List; + +public class CopyJobConfigurationTest { + + private static final TableId SOURCE_TABLE = TableId.of("dataset", "sourceTable"); + private static final List SOURCE_TABLES = ImmutableList.of( + TableId.of("dataset", "sourceTable1"), + TableId.of("dataset", "sourceTable2")); + private static final TableId DESTINATION_TABLE = TableId.of("dataset", "destinationTable"); + private static final CreateDisposition CREATE_DISPOSITION = CreateDisposition.CREATE_IF_NEEDED; + private static final WriteDisposition WRITE_DISPOSITION = WriteDisposition.WRITE_APPEND; + private static final EncryptionConfiguration COPY_JOB_ENCRYPTION_CONFIGURATION = + EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); + private static final CopyJobConfiguration COPY_JOB_CONFIGURATION = + CopyJobConfiguration.newBuilder(DESTINATION_TABLE, SOURCE_TABLE) + .setCreateDisposition(CREATE_DISPOSITION) + .setWriteDisposition(WRITE_DISPOSITION) + .setDestinationEncryptionConfiguration(COPY_JOB_ENCRYPTION_CONFIGURATION) + .build(); + private static final CopyJobConfiguration COPY_JOB_CONFIGURATION_MULTIPLE_TABLES = + CopyJobConfiguration.newBuilder(DESTINATION_TABLE, SOURCE_TABLES) + .setCreateDisposition(CREATE_DISPOSITION) + .setWriteDisposition(WRITE_DISPOSITION) + .build(); + + @Test + public void testToBuilder() { + compareCopyJobConfiguration(COPY_JOB_CONFIGURATION, COPY_JOB_CONFIGURATION.toBuilder().build()); + compareCopyJobConfiguration(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES, + COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.toBuilder().build()); + CopyJobConfiguration jobConfiguration = COPY_JOB_CONFIGURATION.toBuilder() + .setDestinationTable(TableId.of("dataset", "newTable")) + .build(); + assertEquals("newTable", jobConfiguration.getDestinationTable().getTable()); + jobConfiguration = jobConfiguration.toBuilder().setDestinationTable(DESTINATION_TABLE).build(); + compareCopyJobConfiguration(COPY_JOB_CONFIGURATION, jobConfiguration); + } + + @Test + public void testOf() { + CopyJobConfiguration job = CopyJobConfiguration.of(DESTINATION_TABLE, SOURCE_TABLES); + assertEquals(DESTINATION_TABLE, job.getDestinationTable()); + assertEquals(SOURCE_TABLES, job.getSourceTables()); + job = CopyJobConfiguration.of(DESTINATION_TABLE, SOURCE_TABLE); + assertEquals(DESTINATION_TABLE, job.getDestinationTable()); + assertEquals(ImmutableList.of(SOURCE_TABLE), job.getSourceTables()); + } + + @Test + public void testToBuilderIncomplete() { + CopyJobConfiguration jobConfiguration = + CopyJobConfiguration.of(DESTINATION_TABLE, SOURCE_TABLES); + compareCopyJobConfiguration(jobConfiguration, jobConfiguration.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(DESTINATION_TABLE, COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getDestinationTable()); + assertEquals(SOURCE_TABLES, COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getSourceTables()); + assertEquals(CREATE_DISPOSITION, COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getCreateDisposition()); + assertEquals(WRITE_DISPOSITION, COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getWriteDisposition()); + assertEquals(DESTINATION_TABLE, COPY_JOB_CONFIGURATION.getDestinationTable()); + assertEquals(ImmutableList.of(SOURCE_TABLE), COPY_JOB_CONFIGURATION.getSourceTables()); + assertEquals(CREATE_DISPOSITION, COPY_JOB_CONFIGURATION.getCreateDisposition()); + assertEquals(WRITE_DISPOSITION, COPY_JOB_CONFIGURATION.getWriteDisposition()); + } + + + @Test + public void testToPbAndFromPb() { + assertNotNull(COPY_JOB_CONFIGURATION.toPb().getCopy()); + assertNull(COPY_JOB_CONFIGURATION.toPb().getExtract()); + assertNull(COPY_JOB_CONFIGURATION.toPb().getLoad()); + assertNull(COPY_JOB_CONFIGURATION.toPb().getQuery()); + assertNull(COPY_JOB_CONFIGURATION.toPb().getCopy().getSourceTables()); + assertNull(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.toPb().getCopy().getSourceTable()); + compareCopyJobConfiguration(COPY_JOB_CONFIGURATION, + CopyJobConfiguration.fromPb(COPY_JOB_CONFIGURATION.toPb())); + compareCopyJobConfiguration(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES, + CopyJobConfiguration.fromPb(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.toPb())); + CopyJobConfiguration jobConfiguration = + CopyJobConfiguration.of(DESTINATION_TABLE, SOURCE_TABLES); + compareCopyJobConfiguration( + jobConfiguration, CopyJobConfiguration.fromPb(jobConfiguration.toPb())); + } + + @Test + public void testSetProjectId() { + CopyJobConfiguration configuration = COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.setProjectId("p"); + assertEquals("p", configuration.getDestinationTable().getProject()); + for (TableId sourceTable : configuration.getSourceTables()) { + assertEquals("p", sourceTable.getProject()); + } + } + + @Test + public void testGetType() { + assertEquals(JobConfiguration.Type.COPY, COPY_JOB_CONFIGURATION.getType()); + assertEquals(JobConfiguration.Type.COPY, COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getType()); + } + + private void compareCopyJobConfiguration(CopyJobConfiguration expected, + CopyJobConfiguration value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getDestinationTable(), value.getDestinationTable()); + assertEquals(expected.getSourceTables(), value.getSourceTables()); + assertEquals(expected.getCreateDisposition(), value.getCreateDisposition()); + assertEquals(expected.getWriteDisposition(), value.getWriteDisposition()); + assertEquals(expected.getDestinationEncryptionConfiguration(), value.getDestinationEncryptionConfiguration()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java new file mode 100644 index 000000000000..90be92171eef --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java @@ -0,0 +1,88 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + +public class CsvOptionsTest { + + private static final Boolean ALLOW_JAGGED_ROWS = true; + private static final Boolean ALLOW_QUOTED_NEWLINE = true; + private static final Charset ENCODING = StandardCharsets.UTF_8; + private static final String FIELD_DELIMITER = ","; + private static final String QUOTE = "\""; + private static final long SKIP_LEADING_ROWS = 42L; + private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder() + .setAllowJaggedRows(ALLOW_JAGGED_ROWS) + .setAllowQuotedNewLines(ALLOW_QUOTED_NEWLINE) + .setEncoding(ENCODING) + .setFieldDelimiter(FIELD_DELIMITER) + .setQuote(QUOTE) + .setSkipLeadingRows(SKIP_LEADING_ROWS) + .build(); + + @Test + public void testToBuilder() { + compareCsvOptions(CSV_OPTIONS, CSV_OPTIONS.toBuilder().build()); + CsvOptions csvOptions = CSV_OPTIONS.toBuilder() + .setFieldDelimiter(";") + .build(); + assertEquals(";", csvOptions.getFieldDelimiter()); + csvOptions = csvOptions.toBuilder().setFieldDelimiter(",").build(); + compareCsvOptions(CSV_OPTIONS, csvOptions); + } + + @Test + public void testToBuilderIncomplete() { + CsvOptions csvOptions = CsvOptions.newBuilder().setFieldDelimiter("|").build(); + assertEquals(csvOptions, csvOptions.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(FormatOptions.CSV, CSV_OPTIONS.getType()); + assertEquals(ALLOW_JAGGED_ROWS, CSV_OPTIONS.allowJaggedRows()); + assertEquals(ALLOW_QUOTED_NEWLINE, CSV_OPTIONS.allowQuotedNewLines()); + assertEquals(ENCODING.name(), CSV_OPTIONS.getEncoding()); + assertEquals(FIELD_DELIMITER, CSV_OPTIONS.getFieldDelimiter()); + assertEquals(QUOTE, CSV_OPTIONS.getQuote()); + assertEquals(SKIP_LEADING_ROWS, (long) CSV_OPTIONS.getSkipLeadingRows()); + } + + + @Test + public void testToAndFromPb() { + compareCsvOptions(CSV_OPTIONS, CsvOptions.fromPb(CSV_OPTIONS.toPb())); + CsvOptions csvOptions = CsvOptions.newBuilder().setAllowJaggedRows(ALLOW_JAGGED_ROWS).build(); + compareCsvOptions(csvOptions, CsvOptions.fromPb(csvOptions.toPb())); + } + + private void compareCsvOptions(CsvOptions expected, CsvOptions value) { + assertEquals(expected, value); + assertEquals(expected.allowJaggedRows(), value.allowJaggedRows()); + assertEquals(expected.allowQuotedNewLines(), value.allowQuotedNewLines()); + assertEquals(expected.getEncoding(), value.getEncoding()); + assertEquals(expected.getFieldDelimiter(), value.getFieldDelimiter()); + assertEquals(expected.getQuote(), value.getQuote()); + assertEquals(expected.getSkipLeadingRows(), value.getSkipLeadingRows()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java new file mode 100644 index 000000000000..d90c3acdf103 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java @@ -0,0 +1,60 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class DatasetIdTest { + + private static final DatasetId DATASET = DatasetId.of("dataset"); + private static final DatasetId DATASET_COMPLETE = DatasetId.of("project", "dataset"); + + @Test + public void testOf() { + assertEquals(null, DATASET.getProject()); + assertEquals("dataset", DATASET.getDataset()); + assertEquals("project", DATASET_COMPLETE.getProject()); + assertEquals("dataset", DATASET_COMPLETE.getDataset()); + } + + + @Test + public void testEquals() { + compareDatasetIds(DATASET, DatasetId.of("dataset")); + compareDatasetIds(DATASET_COMPLETE, DatasetId.of("project", "dataset")); + } + + @Test + public void testToPbAndFromPb() { + compareDatasetIds(DATASET, DatasetId.fromPb(DATASET.toPb())); + compareDatasetIds(DATASET_COMPLETE, DatasetId.fromPb(DATASET_COMPLETE.toPb())); + } + + @Test + public void testSetProjectId() { + assertEquals(DATASET_COMPLETE, DATASET.setProjectId("project")); + } + + private void compareDatasetIds(DatasetId expected, DatasetId value) { + assertEquals(expected, value); + assertEquals(expected.getProject(), value.getProject()); + assertEquals(expected.getDataset(), value.getDataset()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java new file mode 100644 index 000000000000..856bca62ccd1 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -0,0 +1,176 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import java.util.List; +import java.util.Map; +import org.junit.Test; + +public class DatasetInfoTest { + + private static final List ACCESS_RULES = ImmutableList.of( + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), + Acl.of(new Acl.View(TableId.of("dataset", "table")))); + private static final List ACCESS_RULES_COMPLETE = ImmutableList.of( + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), + Acl.of(new Acl.View(TableId.of("project", "dataset", "table")))); + private static final Map LABELS = ImmutableMap.of( + "example-label1", "example-value1", + "example-label2", "example-value2"); + private static final Long CREATION_TIME = System.currentTimeMillis(); + private static final Long DEFAULT_TABLE_EXPIRATION = CREATION_TIME + 100; + private static final String DESCRIPTION = "description"; + private static final String ETAG = "0xFF00"; + private static final String FRIENDLY_NAME = "friendlyDataset"; + private static final String GENERATED_ID = "P/D:1"; + private static final Long LAST_MODIFIED = CREATION_TIME + 50; + private static final String LOCATION = ""; + private static final String SELF_LINK = "http://bigquery/p/d"; + private static final DatasetId DATASET_ID = DatasetId.of("dataset"); + private static final DatasetId DATASET_ID_COMPLETE = DatasetId.of("project", "dataset"); + private static final DatasetInfo DATASET_INFO = DatasetInfo.newBuilder(DATASET_ID) + .setAcl(ACCESS_RULES) + .setCreationTime(CREATION_TIME) + .setDefaultTableLifetime(DEFAULT_TABLE_EXPIRATION) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModified(LAST_MODIFIED) + .setLocation(LOCATION) + .setSelfLink(SELF_LINK) + .setLabels(LABELS) + .build(); + private static final DatasetInfo DATASET_INFO_COMPLETE = DATASET_INFO.toBuilder() + .setDatasetId(DATASET_ID_COMPLETE) + .setAcl(ACCESS_RULES_COMPLETE) + .build(); + + @Test + public void testToBuilder() { + compareDatasets(DATASET_INFO, DATASET_INFO.toBuilder().build()); + DatasetInfo datasetInfo = DATASET_INFO.toBuilder() + .setDatasetId(DatasetId.of("dataset2")) + .setDescription("description2") + .build(); + assertEquals(DatasetId.of("dataset2"), datasetInfo.getDatasetId()); + assertEquals("description2", datasetInfo.getDescription()); + datasetInfo = + datasetInfo.toBuilder().setDatasetId(DATASET_ID).setDescription("description").build(); + compareDatasets(DATASET_INFO, datasetInfo); + } + + @Test + public void testToBuilderIncomplete() { + DatasetInfo datasetInfo = DatasetInfo.newBuilder(DATASET_ID).build(); + assertEquals(datasetInfo, datasetInfo.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertNull(DATASET_INFO.getDatasetId().getProject()); + assertEquals(DATASET_ID, DATASET_INFO.getDatasetId()); + assertEquals(ACCESS_RULES, DATASET_INFO.getAcl()); + assertEquals(CREATION_TIME, DATASET_INFO.getCreationTime()); + assertEquals(DEFAULT_TABLE_EXPIRATION, DATASET_INFO.getDefaultTableLifetime()); + assertEquals(DESCRIPTION, DATASET_INFO.getDescription()); + assertEquals(ETAG, DATASET_INFO.getEtag()); + assertEquals(FRIENDLY_NAME, DATASET_INFO.getFriendlyName()); + assertEquals(GENERATED_ID, DATASET_INFO.getGeneratedId()); + assertEquals(LAST_MODIFIED, DATASET_INFO.getLastModified()); + assertEquals(LOCATION, DATASET_INFO.getLocation()); + assertEquals(SELF_LINK, DATASET_INFO.getSelfLink()); + assertEquals(DATASET_ID_COMPLETE, DATASET_INFO_COMPLETE.getDatasetId()); + assertEquals(ACCESS_RULES_COMPLETE, DATASET_INFO_COMPLETE.getAcl()); + assertEquals(CREATION_TIME, DATASET_INFO_COMPLETE.getCreationTime()); + assertEquals(DEFAULT_TABLE_EXPIRATION, DATASET_INFO_COMPLETE.getDefaultTableLifetime()); + assertEquals(DESCRIPTION, DATASET_INFO_COMPLETE.getDescription()); + assertEquals(ETAG, DATASET_INFO_COMPLETE.getEtag()); + assertEquals(FRIENDLY_NAME, DATASET_INFO_COMPLETE.getFriendlyName()); + assertEquals(GENERATED_ID, DATASET_INFO_COMPLETE.getGeneratedId()); + assertEquals(LAST_MODIFIED, DATASET_INFO_COMPLETE.getLastModified()); + assertEquals(LOCATION, DATASET_INFO_COMPLETE.getLocation()); + assertEquals(SELF_LINK, DATASET_INFO_COMPLETE.getSelfLink()); + assertEquals(LABELS, DATASET_INFO_COMPLETE.getLabels()); + } + + + @Test + public void testOf() { + DatasetInfo datasetInfo = DatasetInfo.of(DATASET_ID.getDataset()); + assertEquals(DATASET_ID, datasetInfo.getDatasetId()); + assertNull(datasetInfo.getAcl()); + assertNull(datasetInfo.getCreationTime()); + assertNull(datasetInfo.getDefaultTableLifetime()); + assertNull(datasetInfo.getDescription()); + assertNull(datasetInfo.getEtag()); + assertNull(datasetInfo.getFriendlyName()); + assertNull(datasetInfo.getGeneratedId()); + assertNull(datasetInfo.getLastModified()); + assertNull(datasetInfo.getLocation()); + assertNull(datasetInfo.getSelfLink()); + assertTrue(datasetInfo.getLabels().isEmpty()); + + datasetInfo = DatasetInfo.of(DATASET_ID); + assertEquals(DATASET_ID, datasetInfo.getDatasetId()); + assertNull(datasetInfo.getAcl()); + assertNull(datasetInfo.getCreationTime()); + assertNull(datasetInfo.getDefaultTableLifetime()); + assertNull(datasetInfo.getDescription()); + assertNull(datasetInfo.getEtag()); + assertNull(datasetInfo.getFriendlyName()); + assertNull(datasetInfo.getGeneratedId()); + assertNull(datasetInfo.getLastModified()); + assertNull(datasetInfo.getLocation()); + assertNull(datasetInfo.getSelfLink()); + assertTrue(datasetInfo.getLabels().isEmpty()); + } + + @Test + public void testToPbAndFromPb() { + compareDatasets(DATASET_INFO_COMPLETE, DatasetInfo.fromPb(DATASET_INFO_COMPLETE.toPb())); + DatasetInfo datasetInfo = DatasetInfo.newBuilder("project", "dataset").build(); + compareDatasets(datasetInfo, DatasetInfo.fromPb(datasetInfo.toPb())); + } + + @Test + public void testSetProjectId() { + assertEquals(DATASET_INFO_COMPLETE, DATASET_INFO.setProjectId("project")); + } + + private void compareDatasets(DatasetInfo expected, DatasetInfo value) { + assertEquals(expected, value); + assertEquals(expected.getDatasetId(), value.getDatasetId()); + assertEquals(expected.getDescription(), value.getDescription()); + assertEquals(expected.getEtag(), value.getEtag()); + assertEquals(expected.getFriendlyName(), value.getFriendlyName()); + assertEquals(expected.getGeneratedId(), value.getGeneratedId()); + assertEquals(expected.getLocation(), value.getLocation()); + assertEquals(expected.getSelfLink(), value.getSelfLink()); + assertEquals(expected.getAcl(), value.getAcl()); + assertEquals(expected.getCreationTime(), value.getCreationTime()); + assertEquals(expected.getDefaultTableLifetime(), value.getDefaultTableLifetime()); + assertEquals(expected.getLastModified(), value.getLastModified()); + assertEquals(expected.getLabels(), value.getLabels()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java new file mode 100644 index 000000000000..2d516926390b --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java @@ -0,0 +1,387 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.createStrictMock; +import static org.easymock.EasyMock.eq; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + +import com.google.api.gax.paging.Page; +import com.google.cloud.PageImpl; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; + +import java.util.Map; +import org.junit.After; +import org.junit.Test; + +import java.util.List; + +public class DatasetTest { + + private static final DatasetId DATASET_ID = DatasetId.of("dataset"); + private static final List ACCESS_RULES = ImmutableList.of( + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), + Acl.of(new Acl.View(TableId.of("dataset", "table")))); + private static final Map LABELS = ImmutableMap.of( + "example-label1", "example-value1", + "example-label2", "example-value2"); + private static final Long CREATION_TIME = System.currentTimeMillis(); + private static final Long DEFAULT_TABLE_EXPIRATION = CREATION_TIME + 100; + private static final String DESCRIPTION = "description"; + private static final String ETAG = "0xFF00"; + private static final String FRIENDLY_NAME = "friendlyDataset"; + private static final String GENERATED_ID = "P/D:1"; + private static final Long LAST_MODIFIED = CREATION_TIME + 50; + private static final String LOCATION = ""; + private static final String SELF_LINK = "http://bigquery/p/d"; + private static final DatasetInfo DATASET_INFO = DatasetInfo.newBuilder(DATASET_ID).build(); + private static final Field FIELD = Field.of("FieldName", LegacySQLTypeName.INTEGER); + private static final StandardTableDefinition TABLE_DEFINITION = + StandardTableDefinition.of(Schema.of(FIELD)); + private static final ViewDefinition VIEW_DEFINITION = ViewDefinition.of("QUERY"); + private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION = + ExternalTableDefinition.of(ImmutableList.of("URI"), Schema.of(), FormatOptions.csv()); + private static final TableInfo TABLE_INFO1 = + TableInfo.newBuilder(TableId.of("dataset", "table1"), TABLE_DEFINITION).build(); + private static final TableInfo TABLE_INFO2 = + TableInfo.newBuilder(TableId.of("dataset", "table2"), VIEW_DEFINITION).build(); + private static final TableInfo TABLE_INFO3 = + TableInfo.newBuilder(TableId.of("dataset", "table3"), EXTERNAL_TABLE_DEFINITION).build(); + + private BigQuery serviceMockReturnsOptions = createStrictMock(BigQuery.class); + private BigQueryOptions mockOptions = createMock(BigQueryOptions.class); + private BigQuery bigquery; + private Dataset expectedDataset; + private Dataset dataset; + + private void initializeExpectedDataset(int optionsCalls) { + expect(serviceMockReturnsOptions.getOptions()).andReturn(mockOptions).times(optionsCalls); + replay(serviceMockReturnsOptions); + bigquery = createStrictMock(BigQuery.class); + expectedDataset = new Dataset(serviceMockReturnsOptions, new Dataset.BuilderImpl(DATASET_INFO)); + } + + private void initializeDataset() { + dataset = new Dataset(bigquery, new Dataset.BuilderImpl(DATASET_INFO)); + } + + @After + public void tearDown() throws Exception { + verify(bigquery, serviceMockReturnsOptions); + } + + @Test + public void testBuilder() { + initializeExpectedDataset(2); + replay(bigquery); + Dataset builtDataset = new Dataset.Builder(serviceMockReturnsOptions, DATASET_ID) + .setAcl(ACCESS_RULES) + .setCreationTime(CREATION_TIME) + .setDefaultTableLifetime(DEFAULT_TABLE_EXPIRATION) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModified(LAST_MODIFIED) + .setLocation(LOCATION) + .setSelfLink(SELF_LINK) + .setLabels(LABELS) + .build(); + assertEquals(DATASET_ID, builtDataset.getDatasetId()); + assertEquals(ACCESS_RULES, builtDataset.getAcl()); + assertEquals(CREATION_TIME, builtDataset.getCreationTime()); + assertEquals(DEFAULT_TABLE_EXPIRATION, builtDataset.getDefaultTableLifetime()); + assertEquals(DESCRIPTION, builtDataset.getDescription()); + assertEquals(ETAG, builtDataset.getEtag()); + assertEquals(FRIENDLY_NAME, builtDataset.getFriendlyName()); + assertEquals(GENERATED_ID, builtDataset.getGeneratedId()); + assertEquals(LAST_MODIFIED, builtDataset.getLastModified()); + assertEquals(LOCATION, builtDataset.getLocation()); + assertEquals(SELF_LINK, builtDataset.getSelfLink()); + assertEquals(LABELS, builtDataset.getLabels()); + } + + + @Test + public void testToBuilder() { + initializeExpectedDataset(4); + replay(bigquery); + compareDataset(expectedDataset, expectedDataset.toBuilder().build()); + } + + @Test + public void testExists_True() throws Exception { + initializeExpectedDataset(1); + BigQuery.DatasetOption[] expectedOptions = {BigQuery.DatasetOption.fields()}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getDataset(DATASET_INFO.getDatasetId(), expectedOptions)) + .andReturn(expectedDataset); + replay(bigquery); + initializeDataset(); + assertTrue(dataset.exists()); + } + + @Test + public void testExists_False() throws Exception { + initializeExpectedDataset(1); + BigQuery.DatasetOption[] expectedOptions = {BigQuery.DatasetOption.fields()}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getDataset(DATASET_INFO.getDatasetId(), expectedOptions)).andReturn(null); + replay(bigquery); + initializeDataset(); + assertFalse(dataset.exists()); + } + + @Test + public void testReload() throws Exception { + initializeExpectedDataset(4); + DatasetInfo updatedInfo = DATASET_INFO.toBuilder().setDescription("Description").build(); + Dataset expectedDataset = + new Dataset(serviceMockReturnsOptions, new DatasetInfo.BuilderImpl(updatedInfo)); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect( + bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset())).andReturn(expectedDataset); + replay(bigquery); + initializeDataset(); + Dataset updatedDataset = dataset.reload(); + compareDataset(expectedDataset, updatedDataset); + } + + @Test + public void testReloadNull() throws Exception { + initializeExpectedDataset(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset())).andReturn(null); + replay(bigquery); + initializeDataset(); + assertNull(dataset.reload()); + } + + @Test + public void testReloadWithOptions() throws Exception { + initializeExpectedDataset(4); + DatasetInfo updatedInfo = DATASET_INFO.toBuilder().setDescription("Description").build(); + Dataset expectedDataset = + new Dataset(serviceMockReturnsOptions, new DatasetInfo.BuilderImpl(updatedInfo)); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset(), + BigQuery.DatasetOption.fields())).andReturn(expectedDataset); + replay(bigquery); + initializeDataset(); + Dataset updatedDataset = dataset.reload(BigQuery.DatasetOption.fields()); + compareDataset(expectedDataset, updatedDataset); + } + + @Test + public void testUpdate() { + initializeExpectedDataset(4); + Dataset expectedUpdatedDataset = + expectedDataset.toBuilder().setDescription("Description").build(); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.update(eq(expectedDataset))).andReturn(expectedUpdatedDataset); + replay(bigquery); + initializeDataset(); + Dataset actualUpdatedDataset = dataset.update(); + compareDataset(expectedUpdatedDataset, actualUpdatedDataset); + } + + @Test + public void testUpdateWithOptions() { + initializeExpectedDataset(4); + Dataset expectedUpdatedDataset = + expectedDataset.toBuilder().setDescription("Description").build(); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.update(eq(expectedDataset), eq(BigQuery.DatasetOption.fields()))) + .andReturn(expectedUpdatedDataset); + replay(bigquery); + initializeDataset(); + Dataset actualUpdatedDataset = dataset.update(BigQuery.DatasetOption.fields()); + compareDataset(expectedUpdatedDataset, actualUpdatedDataset); + } + + @Test + public void testDeleteTrue() { + initializeExpectedDataset(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.delete(DATASET_INFO.getDatasetId())).andReturn(true); + replay(bigquery); + initializeDataset(); + assertTrue(dataset.delete()); + } + + @Test + public void testDeleteFalse() { + initializeExpectedDataset(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.delete(DATASET_INFO.getDatasetId())).andReturn(false); + replay(bigquery); + initializeDataset(); + assertFalse(dataset.delete()); + } + + @Test + public void testList() throws Exception { + initializeExpectedDataset(4); + List
tableResults = ImmutableList.of( + new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO1)), + new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO2)), + new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO3))); + PageImpl
expectedPage = new PageImpl<>(null, "c", tableResults); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.listTables(DATASET_INFO.getDatasetId())).andReturn(expectedPage); + replay(bigquery); + initializeDataset(); + Page
tablePage = dataset.list(); + assertArrayEquals(tableResults.toArray(), + Iterables.toArray(tablePage.getValues(), Table.class)); + assertEquals(expectedPage.getNextPageToken(), tablePage.getNextPageToken()); + } + + @Test + public void testListWithOptions() throws Exception { + initializeExpectedDataset(4); + List
tableResults = ImmutableList.of( + new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO1)), + new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO2)), + new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO3))); + PageImpl
expectedPage = new PageImpl<>(null, "c", tableResults); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.listTables(DATASET_INFO.getDatasetId(), BigQuery.TableListOption.pageSize(10L))) + .andReturn(expectedPage); + replay(bigquery); + initializeDataset(); + Page
tablePage = dataset.list(BigQuery.TableListOption.pageSize(10L)); + assertArrayEquals(tableResults.toArray(), + Iterables.toArray(tablePage.getValues(), Table.class)); + assertEquals(expectedPage.getNextPageToken(), tablePage.getNextPageToken()); + } + + @Test + public void testGet() throws Exception { + initializeExpectedDataset(2); + Table expectedTable = + new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(TABLE_INFO1)); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getTable(TABLE_INFO1.getTableId())).andReturn(expectedTable); + replay(bigquery); + initializeDataset(); + Table table = dataset.get(TABLE_INFO1.getTableId().getTable()); + assertNotNull(table); + assertEquals(expectedTable, table); + } + + @Test + public void testGetNull() throws Exception { + initializeExpectedDataset(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getTable(TABLE_INFO1.getTableId())).andReturn(null); + replay(bigquery); + initializeDataset(); + assertNull(dataset.get(TABLE_INFO1.getTableId().getTable())); + } + + @Test + public void testGetWithOptions() throws Exception { + initializeExpectedDataset(2); + Table expectedTable = + new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(TABLE_INFO1)); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getTable(TABLE_INFO1.getTableId(), BigQuery.TableOption.fields())) + .andReturn(expectedTable); + replay(bigquery); + initializeDataset(); + Table table = dataset.get(TABLE_INFO1.getTableId().getTable(), BigQuery.TableOption.fields()); + assertNotNull(table); + assertEquals(expectedTable, table); + } + + @Test + public void testCreateTable() throws Exception { + initializeExpectedDataset(2); + Table expectedTable = + new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(TABLE_INFO1)); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.create(TABLE_INFO1)).andReturn(expectedTable); + replay(bigquery); + initializeDataset(); + Table table = dataset.create(TABLE_INFO1.getTableId().getTable(), TABLE_DEFINITION); + assertEquals(expectedTable, table); + } + + @Test + public void testCreateTableWithOptions() throws Exception { + initializeExpectedDataset(2); + Table expectedTable = + new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(TABLE_INFO1)); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.create(TABLE_INFO1, BigQuery.TableOption.fields())).andReturn(expectedTable); + replay(bigquery); + initializeDataset(); + Table table = dataset.create(TABLE_INFO1.getTableId().getTable(), TABLE_DEFINITION, + BigQuery.TableOption.fields()); + assertEquals(expectedTable, table); + } + + @Test + public void testBigQuery() { + initializeExpectedDataset(1); + replay(bigquery); + assertSame(serviceMockReturnsOptions, expectedDataset.getBigQuery()); + } + + + @Test + public void testToAndFromPb() { + initializeExpectedDataset(4); + replay(bigquery); + compareDataset(expectedDataset, + Dataset.fromPb(serviceMockReturnsOptions, expectedDataset.toPb())); + } + + private void compareDataset(Dataset expected, Dataset value) { + assertEquals(expected, value); + compareDatasetInfo(expected, value); + assertEquals(expected.getBigQuery().getOptions(), value.getBigQuery().getOptions()); + } + + private void compareDatasetInfo(DatasetInfo expected, DatasetInfo value) { + assertEquals(expected, value); + assertEquals(expected.getDatasetId(), value.getDatasetId()); + assertEquals(expected.getDescription(), value.getDescription()); + assertEquals(expected.getEtag(), value.getEtag()); + assertEquals(expected.getFriendlyName(), value.getFriendlyName()); + assertEquals(expected.getGeneratedId(), value.getGeneratedId()); + assertEquals(expected.getLocation(), value.getLocation()); + assertEquals(expected.getSelfLink(), value.getSelfLink()); + assertEquals(expected.getAcl(), value.getAcl()); + assertEquals(expected.getCreationTime(), value.getCreationTime()); + assertEquals(expected.getDefaultTableLifetime(), value.getDefaultTableLifetime()); + assertEquals(expected.getLastModified(), value.getLastModified()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java new file mode 100644 index 000000000000..222dcd119361 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java @@ -0,0 +1,63 @@ +/* + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.common.collect.ImmutableList; +import org.junit.Test; + +import java.util.List; + +public class DatastoreBackupOptionsTest { + + private static final List PROJECTION_FIELDS = ImmutableList.of("field1", "field2"); + private static final DatastoreBackupOptions BACKUP_OPTIONS = DatastoreBackupOptions.newBuilder() + .setProjectionFields(PROJECTION_FIELDS) + .build(); + + @Test + public void testToBuilder() { + compareDatastoreBackupOptions(BACKUP_OPTIONS, BACKUP_OPTIONS.toBuilder().build()); + List fields = ImmutableList.of("field1", "field2"); + DatastoreBackupOptions backupOptions = BACKUP_OPTIONS.toBuilder() + .setProjectionFields(fields) + .build(); + assertEquals(fields, backupOptions.getProjectionFields()); + backupOptions = backupOptions.toBuilder().setProjectionFields(PROJECTION_FIELDS).build(); + compareDatastoreBackupOptions(BACKUP_OPTIONS, backupOptions); + } + + @Test + public void testToBuilderIncomplete() { + DatastoreBackupOptions backupOptions = + DatastoreBackupOptions.newBuilder().setProjectionFields(PROJECTION_FIELDS).build(); + assertEquals(backupOptions, backupOptions.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(FormatOptions.DATASTORE_BACKUP, BACKUP_OPTIONS.getType()); + assertEquals(PROJECTION_FIELDS, BACKUP_OPTIONS.getProjectionFields()); + } + + private void compareDatastoreBackupOptions( + DatastoreBackupOptions expected, DatastoreBackupOptions value) { + assertEquals(expected, value); + assertEquals(expected.getProjectionFields(), value.getProjectionFields()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java new file mode 100644 index 000000000000..d620c6e4db5d --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -0,0 +1,114 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.common.collect.ImmutableList; + +import org.junit.Test; + +import java.util.List; + +public class ExternalTableDefinitionTest { + + private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); + private static final Field FIELD_SCHEMA1 = + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("FieldDescription1") + .build(); + private static final Field FIELD_SCHEMA2 = + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.REPEATED) + .setDescription("FieldDescription2") + .build(); + private static final Field FIELD_SCHEMA3 = + Field.newBuilder("RecordField", LegacySQLTypeName.RECORD, FIELD_SCHEMA1, FIELD_SCHEMA2) + .setMode(Field.Mode.REQUIRED) + .setDescription("FieldDescription3") + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); + private static final Integer MAX_BAD_RECORDS = 42; + private static final Boolean IGNORE_UNKNOWN_VALUES = true; + private static final String COMPRESSION = "GZIP"; + private static final Boolean AUTODETECT = true; + private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder().build(); + private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION = + ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) + .setCompression(COMPRESSION) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .setAutodetect(AUTODETECT) + .build(); + + @Test + public void testToBuilder() { + compareExternalTableDefinition(EXTERNAL_TABLE_DEFINITION, + EXTERNAL_TABLE_DEFINITION.toBuilder().build()); + ExternalTableDefinition externalTableDefinition = + EXTERNAL_TABLE_DEFINITION.toBuilder().setCompression("NONE").build(); + assertEquals("NONE", externalTableDefinition.getCompression()); + externalTableDefinition = externalTableDefinition.toBuilder() + .setCompression(COMPRESSION) + .build(); + compareExternalTableDefinition(EXTERNAL_TABLE_DEFINITION, externalTableDefinition); + } + + @Test + public void testToBuilderIncomplete() { + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.of(SOURCE_URIS, TABLE_SCHEMA, FormatOptions.json()); + assertEquals(externalTableDefinition, externalTableDefinition.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(TableDefinition.Type.EXTERNAL, EXTERNAL_TABLE_DEFINITION.getType()); + assertEquals(COMPRESSION, EXTERNAL_TABLE_DEFINITION.getCompression()); + assertEquals(CSV_OPTIONS, EXTERNAL_TABLE_DEFINITION.getFormatOptions()); + assertEquals(IGNORE_UNKNOWN_VALUES, EXTERNAL_TABLE_DEFINITION.ignoreUnknownValues()); + assertEquals(MAX_BAD_RECORDS, EXTERNAL_TABLE_DEFINITION.getMaxBadRecords()); + assertEquals(TABLE_SCHEMA, EXTERNAL_TABLE_DEFINITION.getSchema()); + assertEquals(SOURCE_URIS, EXTERNAL_TABLE_DEFINITION.getSourceUris()); + assertEquals(AUTODETECT, EXTERNAL_TABLE_DEFINITION.getAutodetect()); + } + + + @Test + public void testToAndFromPb() { + compareExternalTableDefinition(EXTERNAL_TABLE_DEFINITION, + ExternalTableDefinition.fromPb(EXTERNAL_TABLE_DEFINITION.toPb())); + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS).build(); + compareExternalTableDefinition(externalTableDefinition, + ExternalTableDefinition.fromPb(externalTableDefinition.toPb())); + } + + private void compareExternalTableDefinition(ExternalTableDefinition expected, + ExternalTableDefinition value) { + assertEquals(expected, value); + assertEquals(expected.getCompression(), value.getCompression()); + assertEquals(expected.getFormatOptions(), value.getFormatOptions()); + assertEquals(expected.ignoreUnknownValues(), value.ignoreUnknownValues()); + assertEquals(expected.getMaxBadRecords(), value.getMaxBadRecords()); + assertEquals(expected.getSchema(), value.getSchema()); + assertEquals(expected.getSourceUris(), value.getSourceUris()); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.getAutodetect(), value.getAutodetect()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java new file mode 100644 index 000000000000..7bc0949eed1b --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java @@ -0,0 +1,146 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +import com.google.common.collect.ImmutableList; + +import org.junit.Test; + +import java.util.List; + +public class ExtractJobConfigurationTest { + + private static final List DESTINATION_URIS = ImmutableList.of("uri1", "uri2"); + private static final String DESTINATION_URI = "uri1"; + private static final TableId TABLE_ID = TableId.of("dataset", "table"); + private static final String FIELD_DELIMITER = ","; + private static final String FORMAT = "CSV"; + private static final String JSON_FORMAT = "NEWLINE_DELIMITED_JSON"; + private static final Boolean PRINT_HEADER = true; + private static final String COMPRESSION = "GZIP"; + private static final ExtractJobConfiguration EXTRACT_CONFIGURATION = + ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URIS) + .setPrintHeader(PRINT_HEADER) + .setFieldDelimiter(FIELD_DELIMITER) + .setCompression(COMPRESSION) + .setFormat(FORMAT) + .build(); + private static final ExtractJobConfiguration EXTRACT_CONFIGURATION_ONE_URI = + ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URI) + .setPrintHeader(PRINT_HEADER) + .setFieldDelimiter(FIELD_DELIMITER) + .setCompression(COMPRESSION) + .setFormat(FORMAT) + .build(); + + @Test + public void testToBuilder() { + compareExtractJobConfiguration( + EXTRACT_CONFIGURATION, EXTRACT_CONFIGURATION.toBuilder().build()); + ExtractJobConfiguration job = EXTRACT_CONFIGURATION.toBuilder() + .setSourceTable(TableId.of("dataset", "newTable")) + .build(); + assertEquals("newTable", job.getSourceTable().getTable()); + job = job.toBuilder().setSourceTable(TABLE_ID).build(); + compareExtractJobConfiguration(EXTRACT_CONFIGURATION, job); + } + + @Test + public void testOf() { + ExtractJobConfiguration job = ExtractJobConfiguration.of(TABLE_ID, DESTINATION_URIS); + assertEquals(TABLE_ID, job.getSourceTable()); + assertEquals(DESTINATION_URIS, job.getDestinationUris()); + job = ExtractJobConfiguration.of(TABLE_ID, DESTINATION_URI); + assertEquals(TABLE_ID, job.getSourceTable()); + assertEquals(ImmutableList.of(DESTINATION_URI), job.getDestinationUris()); + job = ExtractJobConfiguration.of(TABLE_ID, DESTINATION_URIS, JSON_FORMAT); + assertEquals(TABLE_ID, job.getSourceTable()); + assertEquals(DESTINATION_URIS, job.getDestinationUris()); + assertEquals(JSON_FORMAT, job.getFormat()); + job = ExtractJobConfiguration.of(TABLE_ID, DESTINATION_URI, JSON_FORMAT); + assertEquals(TABLE_ID, job.getSourceTable()); + assertEquals(ImmutableList.of(DESTINATION_URI), job.getDestinationUris()); + assertEquals(JSON_FORMAT, job.getFormat()); + } + + @Test + public void testToBuilderIncomplete() { + ExtractJobConfiguration job = ExtractJobConfiguration.of(TABLE_ID, DESTINATION_URIS); + compareExtractJobConfiguration(job, job.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(TABLE_ID, EXTRACT_CONFIGURATION.getSourceTable()); + assertEquals(DESTINATION_URIS, EXTRACT_CONFIGURATION.getDestinationUris()); + assertEquals(FIELD_DELIMITER, EXTRACT_CONFIGURATION.getFieldDelimiter()); + assertEquals(COMPRESSION, EXTRACT_CONFIGURATION.getCompression()); + assertEquals(PRINT_HEADER, EXTRACT_CONFIGURATION.printHeader()); + assertEquals(FORMAT, EXTRACT_CONFIGURATION.getFormat()); + assertEquals(TABLE_ID, EXTRACT_CONFIGURATION_ONE_URI.getSourceTable()); + assertEquals(ImmutableList.of(DESTINATION_URI), + EXTRACT_CONFIGURATION_ONE_URI.getDestinationUris()); + assertEquals(FIELD_DELIMITER, EXTRACT_CONFIGURATION_ONE_URI.getFieldDelimiter()); + assertEquals(COMPRESSION, EXTRACT_CONFIGURATION_ONE_URI.getCompression()); + assertEquals(PRINT_HEADER, EXTRACT_CONFIGURATION_ONE_URI.printHeader()); + assertEquals(FORMAT, EXTRACT_CONFIGURATION_ONE_URI.getFormat()); + } + + + @Test + public void testToPbAndFromPb() { + assertNotNull(EXTRACT_CONFIGURATION.toPb().getExtract()); + assertNull(EXTRACT_CONFIGURATION.toPb().getCopy()); + assertNull(EXTRACT_CONFIGURATION.toPb().getLoad()); + assertNull(EXTRACT_CONFIGURATION.toPb().getQuery()); + compareExtractJobConfiguration(EXTRACT_CONFIGURATION, + ExtractJobConfiguration.fromPb(EXTRACT_CONFIGURATION.toPb())); + compareExtractJobConfiguration(EXTRACT_CONFIGURATION_ONE_URI, + ExtractJobConfiguration.fromPb(EXTRACT_CONFIGURATION_ONE_URI.toPb())); + ExtractJobConfiguration job = ExtractJobConfiguration.of(TABLE_ID, DESTINATION_URIS); + compareExtractJobConfiguration(job, ExtractJobConfiguration.fromPb(job.toPb())); + } + + @Test + public void testSetProjectId() { + ExtractJobConfiguration configuration = EXTRACT_CONFIGURATION.setProjectId("p"); + assertEquals("p", configuration.getSourceTable().getProject()); + } + + @Test + public void testGetType() { + assertEquals(JobConfiguration.Type.EXTRACT, EXTRACT_CONFIGURATION.getType()); + assertEquals(JobConfiguration.Type.EXTRACT, EXTRACT_CONFIGURATION_ONE_URI.getType()); + } + + private void compareExtractJobConfiguration(ExtractJobConfiguration expected, + ExtractJobConfiguration value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getSourceTable(), value.getSourceTable()); + assertEquals(expected.getDestinationUris(), value.getDestinationUris()); + assertEquals(expected.getCompression(), value.getCompression()); + assertEquals(expected.printHeader(), value.printHeader()); + assertEquals(expected.getFieldDelimiter(), value.getFieldDelimiter()); + assertEquals(expected.getFormat(), value.getFormat()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java new file mode 100644 index 000000000000..e36c72e91e6a --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java @@ -0,0 +1,109 @@ +/* + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; + +import org.junit.Test; + +public class FieldListTest { + private static final String FIELD_NAME1 = "StringField"; + private static final String FIELD_NAME2 = "IntegerField"; + private static final String FIELD_NAME3 = "RecordField"; + private static final String FIELD_NAME4 = "NonExistentField"; + private static final LegacySQLTypeName FIELD_TYPE1 = LegacySQLTypeName.STRING; + private static final LegacySQLTypeName FIELD_TYPE2 = LegacySQLTypeName.INTEGER; + private static final LegacySQLTypeName FIELD_TYPE3 = LegacySQLTypeName.RECORD; + private static final Field.Mode FIELD_MODE1 = Field.Mode.NULLABLE; + private static final Field.Mode FIELD_MODE2 = Field.Mode.REPEATED; + private static final Field.Mode FIELD_MODE3 = Field.Mode.REQUIRED; + private static final String FIELD_DESCRIPTION1 = "FieldDescription1"; + private static final String FIELD_DESCRIPTION2 = "FieldDescription2"; + private static final String FIELD_DESCRIPTION3 = "FieldDescription3"; + + private final Field fieldSchema1 = Field.newBuilder(FIELD_NAME1, FIELD_TYPE1) + .setMode(FIELD_MODE1) + .setDescription(FIELD_DESCRIPTION1) + .build(); + private final Field fieldSchema2 = Field.newBuilder(FIELD_NAME2, FIELD_TYPE2) + .setMode(FIELD_MODE2) + .setDescription(FIELD_DESCRIPTION2) + .build(); + + private final Field fieldSchema3 = Field + .newBuilder(FIELD_NAME3, FIELD_TYPE3, fieldSchema1, fieldSchema2) + .setMode(FIELD_MODE3) + .setDescription(FIELD_DESCRIPTION3) + .build(); + + private final FieldList fieldsSchema = FieldList.of(fieldSchema1, fieldSchema2, fieldSchema3); + + @Test + public void testGetByName() { + assertEquals(fieldSchema1, fieldsSchema.get(FIELD_NAME1)); + assertEquals(fieldSchema2, fieldsSchema.get(FIELD_NAME2)); + assertEquals(fieldSchema3, fieldsSchema.get(FIELD_NAME3)); + + assertEquals(3, fieldsSchema.size()); + + IllegalArgumentException exception = null; + try { + fieldsSchema.get(FIELD_NAME4); + } catch (IllegalArgumentException e) { + exception = e; + } + assertNotNull(exception); + } + + @Test + public void testGetByIndex() { + assertEquals(fieldSchema1, fieldsSchema.get(0)); + assertEquals(fieldSchema2, fieldsSchema.get(1)); + assertEquals(fieldSchema3, fieldsSchema.get(2)); + + assertEquals(3, fieldsSchema.size()); + + IndexOutOfBoundsException exception = null; + try { + fieldsSchema.get(4); + } catch (IndexOutOfBoundsException e) { + exception = e; + } + assertNotNull(exception); + } + + @Test + public void testGetRecordSchema() { + assertEquals(2, fieldSchema3.getSubFields().size()); + assertEquals(fieldSchema1, fieldSchema3.getSubFields().get(FIELD_NAME1)); + assertEquals(fieldSchema2, fieldSchema3.getSubFields().get(FIELD_NAME2)); + assertEquals(0, fieldSchema3.getSubFields().getIndex(FIELD_NAME1)); + assertEquals(1, fieldSchema3.getSubFields().getIndex(FIELD_NAME2)); + assertEquals(fieldSchema1, fieldSchema3.getSubFields().get(0)); + assertEquals(fieldSchema2, fieldSchema3.getSubFields().get(1)); + } + + @Test + public void testToAndFromPb() { + assertEquals(fieldsSchema, FieldList.of(fieldSchema1, fieldSchema2, fieldSchema3)); + assertNotEquals(fieldsSchema, FieldList.of(fieldSchema1, fieldSchema3)); + + assertEquals(fieldsSchema, FieldList.fromPb(fieldsSchema.toPb())); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java new file mode 100644 index 000000000000..d0015d81c0d4 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java @@ -0,0 +1,104 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class FieldTest { + + private static final String FIELD_NAME1 = "StringField"; + private static final String FIELD_NAME2 = "IntegerField"; + private static final String FIELD_NAME3 = "RecordField"; + private static final LegacySQLTypeName FIELD_TYPE1 = LegacySQLTypeName.STRING; + private static final LegacySQLTypeName FIELD_TYPE2 = LegacySQLTypeName.INTEGER; + private static final Field.Mode FIELD_MODE1 = Field.Mode.NULLABLE; + private static final Field.Mode FIELD_MODE2 = Field.Mode.REPEATED; + private static final Field.Mode FIELD_MODE3 = Field.Mode.REQUIRED; + private static final String FIELD_DESCRIPTION1 = "FieldDescription1"; + private static final String FIELD_DESCRIPTION2 = "FieldDescription2"; + private static final String FIELD_DESCRIPTION3 = "FieldDescription3"; + private static final Field FIELD_SCHEMA1 = Field.newBuilder(FIELD_NAME1, FIELD_TYPE1) + .setMode(FIELD_MODE1) + .setDescription(FIELD_DESCRIPTION1) + .build(); + private static final Field FIELD_SCHEMA2 = Field.newBuilder(FIELD_NAME2, FIELD_TYPE2) + .setMode(FIELD_MODE2) + .setDescription(FIELD_DESCRIPTION2) + .build(); + private static final LegacySQLTypeName FIELD_TYPE3 = LegacySQLTypeName.RECORD; + private static final Field FIELD_SCHEMA3 = Field + .newBuilder(FIELD_NAME3, FIELD_TYPE3, FIELD_SCHEMA1, FIELD_SCHEMA2) + .setMode(FIELD_MODE3) + .setDescription(FIELD_DESCRIPTION3) + .build(); + + @Test + public void testToBuilder() { + compareFieldSchemas(FIELD_SCHEMA1, FIELD_SCHEMA1.toBuilder().build()); + compareFieldSchemas(FIELD_SCHEMA2, FIELD_SCHEMA2.toBuilder().build()); + compareFieldSchemas(FIELD_SCHEMA3, FIELD_SCHEMA3.toBuilder().build()); + Field field = FIELD_SCHEMA1.toBuilder() + .setDescription("New Description") + .build(); + assertEquals("New Description", field.getDescription()); + field = field.toBuilder().setDescription(FIELD_DESCRIPTION1).build(); + compareFieldSchemas(FIELD_SCHEMA1, field); + } + + @Test + public void testToBuilderIncomplete() { + Field field = Field.of(FIELD_NAME1, FIELD_TYPE1); + compareFieldSchemas(field, field.toBuilder().build()); + field = Field.of(FIELD_NAME2, FIELD_TYPE3, FIELD_SCHEMA1, FIELD_SCHEMA2); + compareFieldSchemas(field, field.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(FIELD_NAME1, FIELD_SCHEMA1.getName()); + assertEquals(FIELD_TYPE1, FIELD_SCHEMA1.getType()); + assertEquals(FIELD_MODE1, FIELD_SCHEMA1.getMode()); + assertEquals(FIELD_DESCRIPTION1, FIELD_SCHEMA1.getDescription()); + assertEquals(null, FIELD_SCHEMA1.getSubFields()); + assertEquals(FIELD_NAME3, FIELD_SCHEMA3.getName()); + assertEquals(FIELD_TYPE3, FIELD_SCHEMA3.getType()); + assertEquals(FIELD_MODE3, FIELD_SCHEMA3.getMode()); + assertEquals(FIELD_DESCRIPTION3, FIELD_SCHEMA3.getDescription()); + assertEquals(FieldList.of(FIELD_SCHEMA1, FIELD_SCHEMA2), FIELD_SCHEMA3.getSubFields()); + } + + + @Test + public void testToAndFromPb() { + compareFieldSchemas(FIELD_SCHEMA1, Field.fromPb(FIELD_SCHEMA1.toPb())); + compareFieldSchemas(FIELD_SCHEMA2, Field.fromPb(FIELD_SCHEMA2.toPb())); + compareFieldSchemas(FIELD_SCHEMA3, Field.fromPb(FIELD_SCHEMA3.toPb())); + Field field = Field.newBuilder(FIELD_NAME1, FIELD_TYPE1).build(); + compareFieldSchemas(field, Field.fromPb(field.toPb())); + } + + private void compareFieldSchemas(Field expected, Field value) { + assertEquals(expected, value); + assertEquals(expected.getName(), value.getName()); + assertEquals(expected.getType(), value.getType()); + assertEquals(expected.getMode(), value.getMode()); + assertEquals(expected.getDescription(), value.getDescription()); + assertEquals(expected.getSubFields(), value.getSubFields()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java new file mode 100644 index 000000000000..c59f5c94a5c4 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java @@ -0,0 +1,189 @@ +/* + * Copyright 2017 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import com.google.api.client.util.Data; +import com.google.api.services.bigquery.model.TableCell; +import com.google.cloud.bigquery.FieldValue.Attribute; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.io.BaseEncoding; +import java.util.List; +import java.util.Map; +import org.junit.Test; + +public class FieldValueListTest { + private static final byte[] BYTES = {0xD, 0xE, 0xA, 0xD}; + private static final String BYTES_BASE64 = BaseEncoding.base64().encode(BYTES); + private static final TableCell booleanPb = new TableCell().setV("false"); + + private final FieldList schema = + FieldList.of( + Field.of("first", LegacySQLTypeName.BOOLEAN), + Field.of("second", LegacySQLTypeName.INTEGER), + Field.of("third", LegacySQLTypeName.FLOAT), + Field.of("fourth", LegacySQLTypeName.STRING), + Field.of("fifth", LegacySQLTypeName.TIMESTAMP), + Field.of("sixth", LegacySQLTypeName.BYTES), + Field.of("seventh", LegacySQLTypeName.STRING), + Field.of("eight", LegacySQLTypeName.INTEGER), + Field.of( + "ninth", + LegacySQLTypeName.RECORD, + Field.of("first", LegacySQLTypeName.FLOAT), + Field.of("second", LegacySQLTypeName.TIMESTAMP))); + + private final Map integerPb = ImmutableMap.of("v", "1"); + private final Map floatPb = ImmutableMap.of("v", "1.5"); + private final Map stringPb = ImmutableMap.of("v", "string"); + private final Map timestampPb = ImmutableMap.of("v", "42"); + private final Map bytesPb = ImmutableMap.of("v", BYTES_BASE64); + private final Map nullPb = ImmutableMap.of("v", Data.nullOf(String.class)); + private final Map repeatedPb = + ImmutableMap.of("v", ImmutableList.of(integerPb, integerPb)); + private final Map recordPb = + ImmutableMap.of("f", ImmutableList.of(floatPb, timestampPb)); + + private final FieldValue booleanFv = FieldValue.of(Attribute.PRIMITIVE, "false"); + private final FieldValue integerFv = FieldValue.of(Attribute.PRIMITIVE, "1"); + private final FieldValue floatFv = FieldValue.of(Attribute.PRIMITIVE, "1.5"); + private final FieldValue stringFv = FieldValue.of(Attribute.PRIMITIVE, "string"); + private final FieldValue timestampFv = FieldValue.of(Attribute.PRIMITIVE, "42"); + private final FieldValue bytesFv = FieldValue.of(Attribute.PRIMITIVE, BYTES_BASE64); + private final FieldValue nullFv = FieldValue.of(Attribute.PRIMITIVE, null); + private final FieldValue repeatedFv = + FieldValue.of(Attribute.REPEATED, FieldValueList.of(ImmutableList.of(integerFv, integerFv))); + private final FieldValue recordFv = + FieldValue.of( + Attribute.RECORD, + FieldValueList.of( + ImmutableList.of(floatFv, timestampFv), schema.get("ninth").getSubFields())); + + private final List fieldValuesPb = + ImmutableList.of( + booleanPb, + integerPb, + floatPb, + stringPb, + timestampPb, + bytesPb, + nullPb, + repeatedPb, + recordPb); + + private final FieldValueList fieldValues = + FieldValueList.of( + ImmutableList.of( + booleanFv, + integerFv, + floatFv, + stringFv, + timestampFv, + bytesFv, + nullFv, + repeatedFv, + recordFv), + schema); + + @Test + public void testFromPb() { + assertEquals(fieldValues, FieldValueList.fromPb(fieldValuesPb, schema)); + // Schema does not influence values equality + assertEquals(fieldValues, FieldValueList.fromPb(fieldValuesPb, null)); + } + + @Test + public void testGetByIndex() { + assertEquals(9, fieldValues.size()); + assertEquals(booleanFv, fieldValues.get(0)); + assertEquals(integerFv, fieldValues.get(1)); + assertEquals(floatFv, fieldValues.get(2)); + assertEquals(stringFv, fieldValues.get(3)); + assertEquals(timestampFv, fieldValues.get(4)); + assertEquals(bytesFv, fieldValues.get(5)); + assertEquals(nullFv, fieldValues.get(6)); + assertEquals(repeatedFv, fieldValues.get(7)); + assertEquals(2, fieldValues.get(7).getRepeatedValue().size()); + assertEquals(integerFv, fieldValues.get(7).getRepeatedValue().get(0)); + assertEquals(integerFv, fieldValues.get(7).getRepeatedValue().get(1)); + assertEquals(recordFv, fieldValues.get(8)); + assertEquals(2, fieldValues.get(8).getRecordValue().size()); + assertEquals(floatFv, fieldValues.get(8).getRecordValue().get(0)); + assertEquals(timestampFv, fieldValues.get(8).getRecordValue().get(1)); + } + + @Test + public void testGetByName() { + assertEquals(9, fieldValues.size()); + assertEquals(booleanFv, fieldValues.get("first")); + assertEquals(integerFv, fieldValues.get("second")); + assertEquals(floatFv, fieldValues.get("third")); + assertEquals(stringFv, fieldValues.get("fourth")); + assertEquals(timestampFv, fieldValues.get("fifth")); + assertEquals(bytesFv, fieldValues.get("sixth")); + assertEquals(nullFv, fieldValues.get("seventh")); + assertEquals(repeatedFv, fieldValues.get("eight")); + assertEquals(2, fieldValues.get("eight").getRepeatedValue().size()); + assertEquals(integerFv, fieldValues.get("eight").getRepeatedValue().get(0)); + assertEquals(integerFv, fieldValues.get("eight").getRepeatedValue().get(1)); + assertEquals(recordFv, fieldValues.get("ninth")); + assertEquals(2, fieldValues.get("ninth").getRecordValue().size()); + assertEquals(floatFv, fieldValues.get("ninth").getRecordValue().get("first")); + assertEquals(timestampFv, fieldValues.get("ninth").getRecordValue().get("second")); + } + + @Test + public void testNullSchema() { + FieldValueList fieldValuesNoSchema = FieldValueList.of( + ImmutableList.of( + booleanFv, + integerFv, + floatFv, + stringFv, + timestampFv, + bytesFv, + nullFv, + repeatedFv, + recordFv)); + + assertEquals(fieldValues, fieldValuesNoSchema); + + UnsupportedOperationException exception = null; + try { + fieldValuesNoSchema.get("first"); + } catch (UnsupportedOperationException e) { + exception = e; + } + + assertNotNull(exception); + } + + @Test + public void testGetNonExistentField() { + IllegalArgumentException exception = null; + try { + fieldValues.get("nonexistent"); + } catch (IllegalArgumentException e) { + exception = e; + } + + assertNotNull(exception); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java new file mode 100644 index 000000000000..f01a23d80a6f --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java @@ -0,0 +1,124 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; + +import com.google.api.client.util.Data; +import com.google.api.services.bigquery.model.TableCell; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.io.BaseEncoding; + +import org.junit.Test; + +import java.util.Map; + +public class FieldValueTest { + + private static final byte[] BYTES = {0xD, 0xE, 0xA, 0xD}; + private static final String BYTES_BASE64 = BaseEncoding.base64().encode(BYTES); + private static final TableCell BOOLEAN_FIELD = new TableCell().setV("false"); + private static final Map INTEGER_FIELD = ImmutableMap.of("v", "1"); + private static final Map FLOAT_FIELD = ImmutableMap.of("v", "1.5"); + private static final Map STRING_FIELD = ImmutableMap.of("v", "string"); + private static final Map TIMESTAMP_FIELD = ImmutableMap.of("v", "42"); + private static final Map BYTES_FIELD = ImmutableMap.of("v", BYTES_BASE64); + private static final Map NULL_FIELD = + ImmutableMap.of("v", Data.nullOf(String.class)); + private static final Map REPEATED_FIELD = + ImmutableMap.of("v", ImmutableList.of(INTEGER_FIELD, INTEGER_FIELD)); + private static final Map RECORD_FIELD = + ImmutableMap.of("f", ImmutableList.of(FLOAT_FIELD, TIMESTAMP_FIELD)); + + @Test + public void testFromPb() { + FieldValue value = FieldValue.fromPb(BOOLEAN_FIELD); + assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); + assertFalse(value.getBooleanValue()); + value = FieldValue.fromPb(INTEGER_FIELD); + assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); + assertEquals(1, value.getLongValue()); + value = FieldValue.fromPb(FLOAT_FIELD); + assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); + assertEquals(1.5, value.getDoubleValue(), 0); + value = FieldValue.fromPb(STRING_FIELD); + assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); + assertEquals("string", value.getStringValue()); + value = FieldValue.fromPb(TIMESTAMP_FIELD); + assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); + assertEquals(42000000, value.getTimestampValue()); + value = FieldValue.fromPb(BYTES_FIELD); + assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); + assertArrayEquals(BYTES, value.getBytesValue()); + value = FieldValue.fromPb(NULL_FIELD); + assertNull(value.getValue()); + value = FieldValue.fromPb(REPEATED_FIELD); + assertEquals(FieldValue.Attribute.REPEATED, value.getAttribute()); + assertEquals(FieldValue.fromPb(INTEGER_FIELD), value.getRepeatedValue().get(0)); + assertEquals(FieldValue.fromPb(INTEGER_FIELD), value.getRepeatedValue().get(1)); + value = FieldValue.fromPb(RECORD_FIELD); + assertEquals(FieldValue.Attribute.RECORD, value.getAttribute()); + assertEquals(FieldValue.fromPb(FLOAT_FIELD), value.getRepeatedValue().get(0)); + assertEquals(FieldValue.fromPb(TIMESTAMP_FIELD), value.getRepeatedValue().get(1)); + } + + + @Test + public void testEquals() { + FieldValue booleanValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "false"); + assertEquals(booleanValue, FieldValue.fromPb(BOOLEAN_FIELD)); + assertEquals(booleanValue.hashCode(), FieldValue.fromPb(BOOLEAN_FIELD).hashCode()); + + FieldValue integerValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "1"); + assertEquals(integerValue, FieldValue.fromPb(INTEGER_FIELD)); + assertEquals(integerValue.hashCode(), FieldValue.fromPb(INTEGER_FIELD).hashCode()); + + FieldValue floatValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "1.5"); + assertEquals(floatValue, FieldValue.fromPb(FLOAT_FIELD)); + assertEquals(floatValue.hashCode(), FieldValue.fromPb(FLOAT_FIELD).hashCode()); + + FieldValue stringValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "string"); + assertEquals(stringValue, FieldValue.fromPb(STRING_FIELD)); + assertEquals(stringValue.hashCode(), FieldValue.fromPb(STRING_FIELD).hashCode()); + + FieldValue timestampValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "42"); + assertEquals(timestampValue, FieldValue.fromPb(TIMESTAMP_FIELD)); + assertEquals(timestampValue.hashCode(), FieldValue.fromPb(TIMESTAMP_FIELD).hashCode()); + + FieldValue bytesValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, BYTES_BASE64); + assertEquals(bytesValue, FieldValue.fromPb(BYTES_FIELD)); + assertEquals(bytesValue.hashCode(), FieldValue.fromPb(BYTES_FIELD).hashCode()); + + FieldValue nullValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, null); + assertEquals(nullValue, FieldValue.fromPb(NULL_FIELD)); + assertEquals(nullValue.hashCode(), FieldValue.fromPb(NULL_FIELD).hashCode()); + + FieldValue repeatedValue = FieldValue.of(FieldValue.Attribute.REPEATED, + ImmutableList.of(integerValue, integerValue)); + assertEquals(repeatedValue, FieldValue.fromPb(REPEATED_FIELD)); + assertEquals(repeatedValue.hashCode(), FieldValue.fromPb(REPEATED_FIELD).hashCode()); + + FieldValue recordValue = FieldValue.of(FieldValue.Attribute.RECORD, + ImmutableList.of(floatValue, timestampValue)); + assertEquals(recordValue, FieldValue.fromPb(RECORD_FIELD)); + assertEquals(recordValue.hashCode(), FieldValue.fromPb(RECORD_FIELD).hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java new file mode 100644 index 000000000000..651c25d0dc5c --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java @@ -0,0 +1,58 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class FormatOptionsTest { + + @Test + public void testConstructor() { + FormatOptions options = new FormatOptions(FormatOptions.CSV); + assertEquals(FormatOptions.CSV, options.getType()); + options = new FormatOptions(FormatOptions.JSON); + assertEquals(FormatOptions.JSON, options.getType()); + options = new FormatOptions(FormatOptions.DATASTORE_BACKUP); + assertEquals(FormatOptions.DATASTORE_BACKUP, options.getType()); + options = new FormatOptions(FormatOptions.AVRO); + assertEquals(FormatOptions.AVRO, options.getType()); + } + + + @Test + public void testFactoryMethods() { + assertEquals(FormatOptions.CSV, FormatOptions.csv().getType()); + assertEquals(FormatOptions.JSON, FormatOptions.json().getType()); + assertEquals(FormatOptions.DATASTORE_BACKUP, FormatOptions.datastoreBackup().getType()); + assertEquals(FormatOptions.AVRO, FormatOptions.avro().getType()); + assertEquals(FormatOptions.GOOGLE_SHEETS, FormatOptions.googleSheets().getType()); + } + + @Test + public void testEquals() { + assertEquals(FormatOptions.csv(), FormatOptions.csv()); + assertEquals(FormatOptions.csv().hashCode(), FormatOptions.csv().hashCode()); + assertEquals(FormatOptions.json(), FormatOptions.json()); + assertEquals(FormatOptions.json().hashCode(), FormatOptions.json().hashCode()); + assertEquals(FormatOptions.datastoreBackup(), FormatOptions.datastoreBackup()); + assertEquals(FormatOptions.datastoreBackup().hashCode(), + FormatOptions.datastoreBackup().hashCode()); + assertEquals(FormatOptions.googleSheets(), FormatOptions.googleSheets()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java new file mode 100644 index 000000000000..bf9488ad91db --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java @@ -0,0 +1,65 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import org.junit.Test; + +import static com.google.common.truth.Truth.assertThat; + +public class GoogleSheetsOptionsTest { + + private static final long SKIP_LEADING_ROWS = 42L; + private static final GoogleSheetsOptions GOOGLE_SHEETS_OPTIONS = GoogleSheetsOptions.newBuilder() + .setSkipLeadingRows(SKIP_LEADING_ROWS) + .build(); + + @Test + public void testToBuilder() { + compareGoogleSheetsOptions(GOOGLE_SHEETS_OPTIONS, GOOGLE_SHEETS_OPTIONS.toBuilder().build()); + GoogleSheetsOptions googleSheetsOptions = GOOGLE_SHEETS_OPTIONS.toBuilder() + .setSkipLeadingRows(123) + .build(); + assertThat(googleSheetsOptions.getSkipLeadingRows()).isEqualTo(123); + googleSheetsOptions = googleSheetsOptions.toBuilder().setSkipLeadingRows(SKIP_LEADING_ROWS).build(); + compareGoogleSheetsOptions(GOOGLE_SHEETS_OPTIONS, googleSheetsOptions); + } + + @Test + public void testToBuilderIncomplete() { + GoogleSheetsOptions googleSheetsOptions = GoogleSheetsOptions.newBuilder().build(); + assertThat(googleSheetsOptions.toBuilder().build()).isEqualTo(googleSheetsOptions); + } + + @Test + public void testBuilder() { + assertThat(GOOGLE_SHEETS_OPTIONS.getType()).isEqualTo(FormatOptions.GOOGLE_SHEETS); + assertThat(GOOGLE_SHEETS_OPTIONS.getSkipLeadingRows()).isEqualTo(SKIP_LEADING_ROWS); + } + + + @Test + public void testToAndFromPb() { + compareGoogleSheetsOptions(GOOGLE_SHEETS_OPTIONS, GoogleSheetsOptions.fromPb(GOOGLE_SHEETS_OPTIONS.toPb())); + GoogleSheetsOptions googleSheetsOptions = GoogleSheetsOptions.newBuilder().build(); + compareGoogleSheetsOptions(googleSheetsOptions, GoogleSheetsOptions.fromPb(googleSheetsOptions.toPb())); + } + + private void compareGoogleSheetsOptions(GoogleSheetsOptions expected, GoogleSheetsOptions value) { + assertThat(value).isEqualTo(expected); + assertThat(value.getSkipLeadingRows()).isEqualTo(expected.getSkipLeadingRows()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java new file mode 100644 index 000000000000..aae06ddcafb0 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java @@ -0,0 +1,238 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.junit.Test; + +public class InsertAllRequestTest { + + private static final Map CONTENT1 = + ImmutableMap.of("key", "val1"); + private static final Map CONTENT2 = + ImmutableMap.of("key", "val2"); + private static final List ROWS = + ImmutableList.of(InsertAllRequest.RowToInsert.of(CONTENT1), + InsertAllRequest.RowToInsert.of(CONTENT2)); + private static final List ROWS_WITH_ID = + ImmutableList.of(InsertAllRequest.RowToInsert.of("id1", CONTENT1), + InsertAllRequest.RowToInsert.of("id2", CONTENT2)); + private static final TableId TABLE_ID = TableId.of("dataset", "table"); + private static final Schema TABLE_SCHEMA = Schema.of(); + private static final TableDefinition TABLE_DEFINITION = StandardTableDefinition.of(TABLE_SCHEMA); + private static final TableInfo TABLE_INFO = TableInfo.of(TABLE_ID, TABLE_DEFINITION); + private static final boolean SKIP_INVALID_ROWS = true; + private static final boolean IGNORE_UNKNOWN_VALUES = false; + private static final String TEMPLATE_SUFFIX = "templateSuffix"; + private static final InsertAllRequest INSERT_ALL_REQUEST1 = InsertAllRequest.newBuilder(TABLE_ID) + .addRow(CONTENT1) + .addRow(CONTENT2) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setSkipInvalidRows(SKIP_INVALID_ROWS) + .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST2 = InsertAllRequest.newBuilder(TABLE_ID) + .setRows(ROWS) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setSkipInvalidRows(SKIP_INVALID_ROWS) + .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST3 = + InsertAllRequest.newBuilder(TABLE_ID.getDataset(), TABLE_ID.getTable()) + .setRows(ROWS_WITH_ID) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setSkipInvalidRows(SKIP_INVALID_ROWS) + .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST4 = + InsertAllRequest.newBuilder(TABLE_ID, ROWS) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setSkipInvalidRows(SKIP_INVALID_ROWS) + .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST5 = + InsertAllRequest.newBuilder(TABLE_ID.getDataset(), TABLE_ID.getTable(), ROWS_WITH_ID) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setSkipInvalidRows(SKIP_INVALID_ROWS) + .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST6 = + InsertAllRequest.newBuilder(TABLE_ID, ROWS.get(0), ROWS.get(1)) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setSkipInvalidRows(SKIP_INVALID_ROWS) + .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST7 = + InsertAllRequest.newBuilder(TABLE_ID.getDataset(), TABLE_ID.getTable(), ROWS_WITH_ID.get(0), + ROWS_WITH_ID.get(1)) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setSkipInvalidRows(SKIP_INVALID_ROWS) + .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST8 = + InsertAllRequest.newBuilder(TABLE_ID.getDataset(), TABLE_ID.getTable()) + .addRow("id1", CONTENT1) + .addRow("id2", CONTENT2) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setSkipInvalidRows(SKIP_INVALID_ROWS) + .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST9 = + InsertAllRequest.newBuilder(TABLE_INFO) + .addRow("id1", CONTENT1) + .addRow("id2", CONTENT2) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setSkipInvalidRows(SKIP_INVALID_ROWS) + .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST10 = + InsertAllRequest.newBuilder(TABLE_INFO) + .addRow("id1", CONTENT1) + .addRow("id2", CONTENT2) + .setIgnoreUnknownValues(true) + .setSkipInvalidRows(false) + .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST11 = + InsertAllRequest.newBuilder(TABLE_INFO) + .addRow("id1", CONTENT1) + .addRow("id2", CONTENT2) + .setIgnoreUnknownValues(true) + .setSkipInvalidRows(false) + .setTemplateSuffix(TEMPLATE_SUFFIX) + .build(); + + @Test + public void testBuilder() { + assertThat(TABLE_ID).isEqualTo(INSERT_ALL_REQUEST1.getTable()); + assertThat(TABLE_ID).isEqualTo(INSERT_ALL_REQUEST2.getTable()); + assertThat(TABLE_ID).isEqualTo(INSERT_ALL_REQUEST3.getTable()); + assertThat(TABLE_ID).isEqualTo(INSERT_ALL_REQUEST4.getTable()); + assertThat(TABLE_ID).isEqualTo(INSERT_ALL_REQUEST5.getTable()); + assertThat(TABLE_ID).isEqualTo(INSERT_ALL_REQUEST6.getTable()); + assertThat(TABLE_ID).isEqualTo(INSERT_ALL_REQUEST7.getTable()); + assertThat(TABLE_ID).isEqualTo(INSERT_ALL_REQUEST8.getTable()); + assertThat(TABLE_ID).isEqualTo(INSERT_ALL_REQUEST9.getTable()); + assertThat(TABLE_ID).isEqualTo(INSERT_ALL_REQUEST10.getTable()); + assertThat(TABLE_ID).isEqualTo(INSERT_ALL_REQUEST11.getTable()); + assertThat(ROWS).isEqualTo(INSERT_ALL_REQUEST1.getRows()); + assertThat(ROWS).isEqualTo(INSERT_ALL_REQUEST2.getRows()); + assertThat(ROWS).isEqualTo(INSERT_ALL_REQUEST4.getRows()); + assertThat(ROWS).isEqualTo(INSERT_ALL_REQUEST6.getRows()); + assertThat(ROWS_WITH_ID).isEqualTo(INSERT_ALL_REQUEST3.getRows()); + assertThat(ROWS_WITH_ID).isEqualTo(INSERT_ALL_REQUEST5.getRows()); + assertThat(ROWS_WITH_ID).isEqualTo(INSERT_ALL_REQUEST7.getRows()); + assertThat(ROWS_WITH_ID).isEqualTo(INSERT_ALL_REQUEST8.getRows()); + assertThat(ROWS_WITH_ID).isEqualTo(INSERT_ALL_REQUEST9.getRows()); + assertThat(ROWS_WITH_ID).isEqualTo(INSERT_ALL_REQUEST10.getRows()); + assertThat(ROWS_WITH_ID).isEqualTo(INSERT_ALL_REQUEST11.getRows()); + assertThat(SKIP_INVALID_ROWS).isEqualTo(INSERT_ALL_REQUEST1.skipInvalidRows()); + assertThat(SKIP_INVALID_ROWS).isEqualTo(INSERT_ALL_REQUEST2.skipInvalidRows()); + assertThat(SKIP_INVALID_ROWS).isEqualTo(INSERT_ALL_REQUEST3.skipInvalidRows()); + assertThat(SKIP_INVALID_ROWS).isEqualTo(INSERT_ALL_REQUEST4.skipInvalidRows()); + assertThat(SKIP_INVALID_ROWS).isEqualTo(INSERT_ALL_REQUEST5.skipInvalidRows()); + assertThat(SKIP_INVALID_ROWS).isEqualTo(INSERT_ALL_REQUEST6.skipInvalidRows()); + assertThat(SKIP_INVALID_ROWS).isEqualTo(INSERT_ALL_REQUEST7.skipInvalidRows()); + assertThat(SKIP_INVALID_ROWS).isEqualTo(INSERT_ALL_REQUEST8.skipInvalidRows()); + assertThat(SKIP_INVALID_ROWS).isEqualTo(INSERT_ALL_REQUEST9.skipInvalidRows()); + assertThat(INSERT_ALL_REQUEST10.skipInvalidRows()).isFalse(); + assertThat(INSERT_ALL_REQUEST11.skipInvalidRows()).isFalse(); + assertThat(IGNORE_UNKNOWN_VALUES).isEqualTo(INSERT_ALL_REQUEST1.ignoreUnknownValues()); + assertThat(IGNORE_UNKNOWN_VALUES).isEqualTo(INSERT_ALL_REQUEST2.ignoreUnknownValues()); + assertThat(IGNORE_UNKNOWN_VALUES).isEqualTo(INSERT_ALL_REQUEST3.ignoreUnknownValues()); + assertThat(IGNORE_UNKNOWN_VALUES).isEqualTo(INSERT_ALL_REQUEST4.ignoreUnknownValues()); + assertThat(IGNORE_UNKNOWN_VALUES).isEqualTo(INSERT_ALL_REQUEST5.ignoreUnknownValues()); + assertThat(IGNORE_UNKNOWN_VALUES).isEqualTo(INSERT_ALL_REQUEST6.ignoreUnknownValues()); + assertThat(IGNORE_UNKNOWN_VALUES).isEqualTo(INSERT_ALL_REQUEST7.ignoreUnknownValues()); + assertThat(IGNORE_UNKNOWN_VALUES).isEqualTo(INSERT_ALL_REQUEST8.ignoreUnknownValues()); + assertThat(IGNORE_UNKNOWN_VALUES).isEqualTo(INSERT_ALL_REQUEST9.ignoreUnknownValues()); + assertThat(INSERT_ALL_REQUEST10.ignoreUnknownValues()).isTrue(); + assertThat(INSERT_ALL_REQUEST11.ignoreUnknownValues()).isTrue(); + assertThat(INSERT_ALL_REQUEST1.getTemplateSuffix()).isNull(); + assertThat(INSERT_ALL_REQUEST2.getTemplateSuffix()).isNull(); + assertThat(INSERT_ALL_REQUEST3.getTemplateSuffix()).isNull(); + assertThat(INSERT_ALL_REQUEST4.getTemplateSuffix()).isNull(); + assertThat(INSERT_ALL_REQUEST5.getTemplateSuffix()).isNull(); + assertThat(INSERT_ALL_REQUEST6.getTemplateSuffix()).isNull(); + assertThat(INSERT_ALL_REQUEST7.getTemplateSuffix()).isNull(); + assertThat(INSERT_ALL_REQUEST8.getTemplateSuffix()).isNull(); + assertThat(INSERT_ALL_REQUEST9.getTemplateSuffix()).isNull(); + assertThat(INSERT_ALL_REQUEST10.getTemplateSuffix()).isNull(); + assertThat(TEMPLATE_SUFFIX).isEqualTo(INSERT_ALL_REQUEST11.getTemplateSuffix()); + } + + + @Test + public void testOf() { + InsertAllRequest request = InsertAllRequest.of(TABLE_ID, ROWS); + assertThat(TABLE_ID).isEqualTo(request.getTable()); + assertThat(ROWS).isEqualTo(request.getRows()); + request = InsertAllRequest.of(TABLE_INFO, ROWS); + assertThat(TABLE_ID).isEqualTo(request.getTable()); + assertThat(ROWS).isEqualTo(request.getRows()); + request = InsertAllRequest.of(TABLE_ID.getDataset(), TABLE_ID.getTable(), ROWS); + assertThat(TABLE_ID).isEqualTo(request.getTable()); + assertThat(ROWS).isEqualTo(request.getRows()); + request = InsertAllRequest.of(TABLE_ID.getDataset(), TABLE_ID.getTable(), ROWS); + assertThat(TABLE_ID).isEqualTo(request.getTable()); + assertThat(ROWS).isEqualTo(request.getRows()); + request = InsertAllRequest.of(TABLE_ID, ROWS.get(0), ROWS.get(1)); + assertThat(TABLE_ID).isEqualTo(request.getTable()); + assertThat(ROWS).isEqualTo(request.getRows()); + request = InsertAllRequest.of(TABLE_INFO, ROWS.get(0), ROWS.get(1)); + assertThat(TABLE_ID).isEqualTo(request.getTable()); + assertThat(ROWS).isEqualTo(request.getRows()); + request = + InsertAllRequest.of(TABLE_ID.getDataset(), TABLE_ID.getTable(), ROWS.get(0), ROWS.get(1)); + assertThat(TABLE_ID).isEqualTo(request.getTable()); + assertThat(ROWS).isEqualTo(request.getRows()); + } + + @Test + public void testEquals() { + compareInsertAllRequest(INSERT_ALL_REQUEST1, INSERT_ALL_REQUEST2); + compareInsertAllRequest(INSERT_ALL_REQUEST2, INSERT_ALL_REQUEST4); + compareInsertAllRequest(INSERT_ALL_REQUEST3, INSERT_ALL_REQUEST5); + compareInsertAllRequest(INSERT_ALL_REQUEST4, INSERT_ALL_REQUEST6); + compareInsertAllRequest(INSERT_ALL_REQUEST5, INSERT_ALL_REQUEST7); + compareInsertAllRequest(INSERT_ALL_REQUEST7, INSERT_ALL_REQUEST8); + compareInsertAllRequest(INSERT_ALL_REQUEST8, INSERT_ALL_REQUEST9); + compareInsertAllRequest(INSERT_ALL_REQUEST10, INSERT_ALL_REQUEST10); + compareInsertAllRequest(INSERT_ALL_REQUEST11, INSERT_ALL_REQUEST11); + } + + @Test(expected=UnsupportedOperationException.class) + public void testImmutable() { + InsertAllRequest.RowToInsert row = InsertAllRequest.RowToInsert.of(new HashMap()); + row.getContent().put("zip", "zap"); + } + + @Test + public void testNullOK() { + InsertAllRequest.RowToInsert row = + InsertAllRequest.RowToInsert.of(Collections.singletonMap("foo", null)); + assertThat(row.getContent()).containsExactly("foo", null); + } + + private void compareInsertAllRequest(InsertAllRequest expected, InsertAllRequest value) { + assertThat(expected).isEqualTo(value); + assertThat(expected.toString()).isEqualTo(value.toString()); + assertThat(expected.hashCode()).isEqualTo(value.hashCode()); + assertThat(expected.getTable()).isEqualTo(value.getTable()); + assertThat(expected.getRows()).isEqualTo(value.getRows()); + assertThat(expected.ignoreUnknownValues()).isEqualTo(value.ignoreUnknownValues()); + assertThat(expected.skipInvalidRows()).isEqualTo(value.skipInvalidRows()); + assertThat(expected.getTemplateSuffix()).isEqualTo(value.getTemplateSuffix()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java new file mode 100644 index 000000000000..95671c217746 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java @@ -0,0 +1,79 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; + +import org.junit.Test; + +import java.util.List; +import java.util.Map; + +public class InsertAllResponseTest { + + private static final List ERRORS1 = ImmutableList.of( + new BigQueryError("reason1", "location1", "message1"), + new BigQueryError("reason2", "location2", "message2")); + private static final List ERRORS2 = ImmutableList.of( + new BigQueryError("reason3", "location3", "message3"), + new BigQueryError("reason4", "location4", "message4")); + private static final Map> ERRORS_MAP = ImmutableMap.of( + 0L, ERRORS1, 1L, ERRORS2); + private static final InsertAllResponse INSERT_ALL_RESPONSE = new InsertAllResponse(ERRORS_MAP); + private static final InsertAllResponse EMPTY_INSERT_ALL_RESPONSE = new InsertAllResponse(null); + + @Test + public void testConstructor() { + assertEquals(INSERT_ALL_RESPONSE, INSERT_ALL_RESPONSE); + } + + @Test + public void testErrorsFor() { + assertEquals(ERRORS_MAP, INSERT_ALL_RESPONSE.getInsertErrors()); + assertEquals(ERRORS1, INSERT_ALL_RESPONSE.getErrorsFor(0L)); + assertEquals(ERRORS2, INSERT_ALL_RESPONSE.getErrorsFor(1L)); + assertNull(INSERT_ALL_RESPONSE.getErrorsFor(2L)); + } + + + @Test + public void testHasErrors() { + assertTrue(INSERT_ALL_RESPONSE.hasErrors()); + assertFalse(EMPTY_INSERT_ALL_RESPONSE.hasErrors()); + } + + @Test + public void testToPbAndFromPb() { + compareInsertAllResponse(INSERT_ALL_RESPONSE, + InsertAllResponse.fromPb(INSERT_ALL_RESPONSE.toPb())); + compareInsertAllResponse(EMPTY_INSERT_ALL_RESPONSE, + InsertAllResponse.fromPb(EMPTY_INSERT_ALL_RESPONSE.toPb())); + } + + private void compareInsertAllResponse(InsertAllResponse expected, InsertAllResponse value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getInsertErrors(), value.getInsertErrors()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java new file mode 100644 index 000000000000..995a3c834a49 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java @@ -0,0 +1,62 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class JobIdTest { + + private static final JobId JOB = JobId.of("job"); + private static final JobId JOB_COMPLETE = JobId.of("project", "job"); + + @Test + public void testOf() { + assertEquals(null, JOB.getProject()); + assertEquals("job", JOB.getJob()); + assertEquals("project", JOB_COMPLETE.getProject()); + assertEquals("job", JOB_COMPLETE.getJob()); + } + + + @Test + public void testEquals() { + compareJobs(JOB, JobId.of("job")); + compareJobs(JOB_COMPLETE, JobId.of("project", "job")); + } + + @Test + public void testToPbAndFromPb() { + compareJobs(JOB, JobId.fromPb(JOB.toPb())); + compareJobs(JOB_COMPLETE, JobId.fromPb(JOB_COMPLETE.toPb())); + } + + @Test + public void testSetProjectId() { + assertEquals(JOB_COMPLETE, JOB.setProjectId("project")); + } + + private void compareJobs(JobId expected, JobId value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getProject(), value.getProject()); + assertEquals(expected.getJob(), value.getJob()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java new file mode 100644 index 000000000000..413015ab5595 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java @@ -0,0 +1,380 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import com.google.cloud.bigquery.JobInfo.CreateDisposition; +import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.JobStatistics.CopyStatistics; +import com.google.cloud.bigquery.JobStatistics.ExtractStatistics; +import com.google.cloud.bigquery.JobStatistics.LoadStatistics; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import java.util.List; +import java.util.Map; +import org.junit.Test; + +public class JobInfoTest { + + private static final String ETAG = "etag"; + private static final String GENERATED_ID = "id"; + private static final String SELF_LINK = "selfLink"; + private static final String EMAIL = "email"; + private static final JobId JOB_ID = JobId.of("job"); + private static final JobStatus JOB_STATUS = new JobStatus(JobStatus.State.DONE); + private static final CopyStatistics COPY_JOB_STATISTICS = CopyStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .build(); + private static final ExtractStatistics EXTRACT_JOB_STATISTICS = + ExtractStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .setDestinationUriFileCounts(ImmutableList.of(42L)) + .build(); + private static final LoadStatistics LOAD_JOB_STATISTICS = + LoadStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .setInputFiles(42L) + .setOutputBytes(1024L) + .setInputBytes(2048L) + .setOutputRows(24L) + .build(); + private static final QueryStatistics QUERY_JOB_STATISTICS = + QueryStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .setTotalBytesProcessed(2048L) + .setTotalBytesBilled(1024L) + .setCacheHit(false) + .setBillingTier(42) + .build(); + private static final TableId SOURCE_TABLE = TableId.of("dataset", "sourceTable"); + private static final TableId DESTINATION_TABLE = TableId.of("dataset", "destinationTable"); + private static final CreateDisposition CREATE_DISPOSITION = CreateDisposition.CREATE_IF_NEEDED; + private static final WriteDisposition WRITE_DISPOSITION = WriteDisposition.WRITE_APPEND; + private static final CopyJobConfiguration COPY_CONFIGURATION = + CopyJobConfiguration.newBuilder(DESTINATION_TABLE, SOURCE_TABLE) + .setCreateDisposition(CREATE_DISPOSITION) + .setWriteDisposition(WRITE_DISPOSITION) + .build(); + private static final List DESTINATION_URIS = ImmutableList.of("uri1", "uri2"); + private static final TableId TABLE_ID = TableId.of("dataset", "table"); + private static final DatasetId DATASET_ID = DatasetId.of("dataset"); + private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); + private static final Field FIELD_SCHEMA1 = + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("FieldDescription1") + .build(); + private static final Field FIELD_SCHEMA2 = + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.REPEATED) + .setDescription("FieldDescription2") + .build(); + private static final Field FIELD_SCHEMA3 = + Field.newBuilder("RecordField", LegacySQLTypeName.RECORD, FIELD_SCHEMA1, FIELD_SCHEMA2) + .setMode(Field.Mode.REQUIRED) + .setDescription("FieldDescription3") + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); + private static final String FIELD_DELIMITER = ","; + private static final String FORMAT = "CSV"; + private static final Boolean PRINT_HEADER = true; + private static final String COMPRESSION = "GZIP"; + private static final ExtractJobConfiguration EXTRACT_CONFIGURATION = + ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URIS) + .setPrintHeader(PRINT_HEADER) + .setFieldDelimiter(FIELD_DELIMITER) + .setCompression(COMPRESSION) + .setFormat(FORMAT) + .build(); + private static final List PROJECTION_FIELDS = ImmutableList.of("field1", "field2"); + private static final Integer MAX_BAD_RECORDS = 42; + private static final Boolean IGNORE_UNKNOWN_VALUES = true; + private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder().build(); + private static final List SCHEMA_UPDATE_OPTIONS = + ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_ADDITION); + private static final ExternalTableDefinition TABLE_CONFIGURATION = + ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) + .setCompression(COMPRESSION) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .build(); + private static final LoadJobConfiguration LOAD_CONFIGURATION = + LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) + .setCreateDisposition(CREATE_DISPOSITION) + .setWriteDisposition(WRITE_DISPOSITION) + .setFormatOptions(CSV_OPTIONS) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .setSchema(TABLE_SCHEMA) + .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) + .build(); + private static final String QUERY = "BigQuery SQL"; + private static final Map TABLE_DEFINITIONS = + ImmutableMap.of("tableName", TABLE_CONFIGURATION); + private static final QueryJobConfiguration.Priority PRIORITY = + QueryJobConfiguration.Priority.BATCH; + private static final boolean ALLOW_LARGE_RESULTS = true; + private static final boolean USE_QUERY_CACHE = false; + private static final boolean FLATTEN_RESULTS = true; + private static final List USER_DEFINED_FUNCTIONS = ImmutableList.of( + UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")); + private static final QueryJobConfiguration QUERY_CONFIGURATION = + QueryJobConfiguration.newBuilder(QUERY) + .setUseQueryCache(USE_QUERY_CACHE) + .setTableDefinitions(TABLE_DEFINITIONS) + .setAllowLargeResults(ALLOW_LARGE_RESULTS) + .setCreateDisposition(CREATE_DISPOSITION) + .setDefaultDataset(DATASET_ID) + .setDestinationTable(TABLE_ID) + .setWriteDisposition(WRITE_DISPOSITION) + .setPriority(PRIORITY) + .setFlattenResults(FLATTEN_RESULTS) + .setUserDefinedFunctions(USER_DEFINED_FUNCTIONS) + .setDryRun(true) + .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) + .build(); + private static final JobInfo COPY_JOB = JobInfo.newBuilder(COPY_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(COPY_JOB_STATISTICS) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + private static final JobInfo EXTRACT_JOB = JobInfo.newBuilder(EXTRACT_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(EXTRACT_JOB_STATISTICS) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + private static final JobInfo LOAD_JOB = JobInfo.newBuilder(LOAD_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(LOAD_JOB_STATISTICS) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + private static final JobInfo QUERY_JOB = JobInfo.newBuilder(QUERY_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(QUERY_JOB_STATISTICS) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + + @Test + public void testToBuilder() { + compareJobInfo(COPY_JOB, COPY_JOB.toBuilder().build()); + compareJobInfo(EXTRACT_JOB, EXTRACT_JOB.toBuilder().build()); + compareJobInfo(LOAD_JOB, LOAD_JOB.toBuilder().build()); + compareJobInfo(QUERY_JOB, QUERY_JOB.toBuilder().build()); + JobInfo job = COPY_JOB.toBuilder() + .setUserEmail("newEmail") + .build(); + assertEquals("newEmail", job.getUserEmail()); + job = job.toBuilder().setUserEmail(EMAIL).build(); + compareJobInfo(COPY_JOB, job); + job = EXTRACT_JOB.toBuilder() + .setUserEmail("newEmail") + .build(); + assertEquals("newEmail", job.getUserEmail()); + job = job.toBuilder().setUserEmail(EMAIL).build(); + compareJobInfo(EXTRACT_JOB, job); + job = LOAD_JOB.toBuilder() + .setUserEmail("newEmail") + .build(); + assertEquals("newEmail", job.getUserEmail()); + job = job.toBuilder().setUserEmail(EMAIL).build(); + compareJobInfo(LOAD_JOB, job); + job = QUERY_JOB.toBuilder() + .setUserEmail("newEmail") + .build(); + assertEquals("newEmail", job.getUserEmail()); + job = job.toBuilder().setUserEmail(EMAIL).build(); + compareJobInfo(QUERY_JOB, job); + } + + @Test + public void testOf() { + JobInfo job = JobInfo.of(COPY_CONFIGURATION); + assertEquals(COPY_CONFIGURATION, job.getConfiguration()); + job = JobInfo.of(EXTRACT_CONFIGURATION); + assertEquals(EXTRACT_CONFIGURATION, job.getConfiguration()); + job = JobInfo.of(LOAD_CONFIGURATION); + assertEquals(LOAD_CONFIGURATION, job.getConfiguration()); + job = JobInfo.of(QUERY_CONFIGURATION); + assertEquals(QUERY_CONFIGURATION, job.getConfiguration()); + job = JobInfo.of(JOB_ID, COPY_CONFIGURATION); + assertEquals(JOB_ID, job.getJobId()); + assertEquals(COPY_CONFIGURATION, job.getConfiguration()); + job = JobInfo.of(JOB_ID, EXTRACT_CONFIGURATION); + assertEquals(JOB_ID, job.getJobId()); + assertEquals(EXTRACT_CONFIGURATION, job.getConfiguration()); + job = JobInfo.of(JOB_ID, LOAD_CONFIGURATION); + assertEquals(JOB_ID, job.getJobId()); + assertEquals(LOAD_CONFIGURATION, job.getConfiguration()); + job = JobInfo.of(JOB_ID, QUERY_CONFIGURATION); + assertEquals(JOB_ID, job.getJobId()); + assertEquals(QUERY_CONFIGURATION, job.getConfiguration()); + } + + @Test + public void testToBuilderIncomplete() { + JobInfo job = JobInfo.of(COPY_CONFIGURATION); + compareJobInfo(job, job.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(ETAG, COPY_JOB.getEtag()); + assertEquals(GENERATED_ID, COPY_JOB.getGeneratedId()); + assertEquals(SELF_LINK, COPY_JOB.getSelfLink()); + assertEquals(EMAIL, COPY_JOB.getUserEmail()); + assertEquals(JOB_ID, COPY_JOB.getJobId()); + assertEquals(JOB_STATUS, COPY_JOB.getStatus()); + assertEquals(COPY_CONFIGURATION, COPY_JOB.getConfiguration()); + assertEquals(COPY_JOB_STATISTICS, COPY_JOB.getStatistics()); + + assertEquals(ETAG, EXTRACT_JOB.getEtag()); + assertEquals(GENERATED_ID, EXTRACT_JOB.getGeneratedId()); + assertEquals(SELF_LINK, EXTRACT_JOB.getSelfLink()); + assertEquals(EMAIL, EXTRACT_JOB.getUserEmail()); + assertEquals(JOB_ID, EXTRACT_JOB.getJobId()); + assertEquals(JOB_STATUS, EXTRACT_JOB.getStatus()); + assertEquals(EXTRACT_CONFIGURATION, EXTRACT_JOB.getConfiguration()); + assertEquals(EXTRACT_JOB_STATISTICS, EXTRACT_JOB.getStatistics()); + + assertEquals(ETAG, LOAD_JOB.getEtag()); + assertEquals(GENERATED_ID, LOAD_JOB.getGeneratedId()); + assertEquals(SELF_LINK, LOAD_JOB.getSelfLink()); + assertEquals(EMAIL, LOAD_JOB.getUserEmail()); + assertEquals(JOB_ID, LOAD_JOB.getJobId()); + assertEquals(JOB_STATUS, LOAD_JOB.getStatus()); + assertEquals(LOAD_CONFIGURATION, LOAD_JOB.getConfiguration()); + assertEquals(LOAD_JOB_STATISTICS, LOAD_JOB.getStatistics()); + + assertEquals(ETAG, QUERY_JOB.getEtag()); + assertEquals(GENERATED_ID, QUERY_JOB.getGeneratedId()); + assertEquals(SELF_LINK, QUERY_JOB.getSelfLink()); + assertEquals(EMAIL, QUERY_JOB.getUserEmail()); + assertEquals(JOB_ID, QUERY_JOB.getJobId()); + assertEquals(JOB_STATUS, QUERY_JOB.getStatus()); + assertEquals(QUERY_CONFIGURATION, QUERY_JOB.getConfiguration()); + assertEquals(QUERY_JOB_STATISTICS, QUERY_JOB.getStatistics()); + } + + @Test + public void testToPbAndFromPb() { + assertNotNull(COPY_JOB.toPb().getConfiguration().getCopy()); + assertNull(COPY_JOB.toPb().getConfiguration().getExtract()); + assertNull(COPY_JOB.toPb().getConfiguration().getLoad()); + assertNull(COPY_JOB.toPb().getConfiguration().getQuery()); + assertEquals(COPY_JOB_STATISTICS, JobStatistics.fromPb(COPY_JOB.toPb())); + compareJobInfo(COPY_JOB, JobInfo.fromPb(COPY_JOB.toPb())); + assertTrue(JobInfo.fromPb(COPY_JOB.toPb()).getConfiguration() instanceof CopyJobConfiguration); + assertNull(EXTRACT_JOB.toPb().getConfiguration().getCopy()); + assertNotNull(EXTRACT_JOB.toPb().getConfiguration().getExtract()); + assertNull(EXTRACT_JOB.toPb().getConfiguration().getLoad()); + assertNull(EXTRACT_JOB.toPb().getConfiguration().getQuery()); + assertEquals(EXTRACT_JOB_STATISTICS, JobStatistics.fromPb(EXTRACT_JOB.toPb())); + compareJobInfo(EXTRACT_JOB, JobInfo.fromPb(EXTRACT_JOB.toPb())); + assertTrue( + JobInfo.fromPb(EXTRACT_JOB.toPb()).getConfiguration() instanceof ExtractJobConfiguration); + assertTrue(JobInfo.fromPb(EXTRACT_JOB.toPb()).getStatistics() instanceof ExtractStatistics); + assertNull(LOAD_JOB.toPb().getConfiguration().getCopy()); + assertNull(LOAD_JOB.toPb().getConfiguration().getExtract()); + assertNotNull(LOAD_JOB.toPb().getConfiguration().getLoad()); + assertNull(LOAD_JOB.toPb().getConfiguration().getQuery()); + assertEquals(LOAD_JOB_STATISTICS, JobStatistics.fromPb(LOAD_JOB.toPb())); + compareJobInfo(LOAD_JOB, JobInfo.fromPb(LOAD_JOB.toPb())); + assertTrue(JobInfo.fromPb(LOAD_JOB.toPb()).getConfiguration() instanceof LoadJobConfiguration); + assertTrue(JobInfo.fromPb(LOAD_JOB.toPb()).getStatistics() instanceof LoadStatistics); + assertNull(QUERY_JOB.toPb().getConfiguration().getCopy()); + assertNull(QUERY_JOB.toPb().getConfiguration().getExtract()); + assertNull(QUERY_JOB.toPb().getConfiguration().getLoad()); + assertNotNull(QUERY_JOB.toPb().getConfiguration().getQuery()); + assertEquals(QUERY_JOB_STATISTICS, JobStatistics.fromPb(QUERY_JOB.toPb())); + compareJobInfo(QUERY_JOB, JobInfo.fromPb(QUERY_JOB.toPb())); + assertTrue( + JobInfo.fromPb(QUERY_JOB.toPb()).getConfiguration() instanceof QueryJobConfiguration); + assertTrue(JobInfo.fromPb(QUERY_JOB.toPb()).getStatistics() instanceof QueryStatistics); + } + + @Test + public void testSetProjectId() { + JobInfo jobInfo = COPY_JOB.setProjectId("p"); + assertEquals("p", jobInfo.getJobId().getProject()); + CopyJobConfiguration copyConfiguration = jobInfo.getConfiguration(); + assertEquals("p", copyConfiguration.getDestinationTable().getProject()); + for (TableId sourceTable : copyConfiguration.getSourceTables()) { + assertEquals("p", sourceTable.getProject()); + } + jobInfo = EXTRACT_JOB.setProjectId("p"); + assertEquals("p", jobInfo.getJobId().getProject()); + ExtractJobConfiguration extractConfiguration = jobInfo.getConfiguration(); + assertEquals("p", extractConfiguration.getSourceTable().getProject()); + jobInfo = LOAD_JOB.setProjectId("p"); + assertEquals("p", jobInfo.getJobId().getProject()); + LoadJobConfiguration loadConfiguration = jobInfo.getConfiguration(); + assertEquals("p", loadConfiguration.getDestinationTable().getProject()); + jobInfo = QUERY_JOB.setProjectId("p"); + assertEquals("p", jobInfo.getJobId().getProject()); + QueryJobConfiguration queryConfiguration = jobInfo.getConfiguration(); + assertEquals("p", queryConfiguration.getDefaultDataset().getProject()); + assertEquals("p", queryConfiguration.getDestinationTable().getProject()); + } + + private void compareJobInfo(JobInfo expected, JobInfo value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getEtag(), value.getEtag()); + assertEquals(expected.getGeneratedId(), value.getGeneratedId()); + assertEquals(expected.getJobId(), value.getJobId()); + assertEquals(expected.getSelfLink(), value.getSelfLink()); + assertEquals(expected.getStatus(), value.getStatus()); + assertEquals(expected.getStatistics(), value.getStatistics()); + assertEquals(expected.getUserEmail(), value.getUserEmail()); + assertEquals(expected.getConfiguration(), value.getConfiguration()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java new file mode 100644 index 000000000000..be738c89b355 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -0,0 +1,252 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertEquals; + +import com.google.cloud.bigquery.JobStatistics.CopyStatistics; +import com.google.cloud.bigquery.JobStatistics.ExtractStatistics; +import com.google.cloud.bigquery.JobStatistics.LoadStatistics; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.QueryStage.QueryStep; +import com.google.common.collect.ImmutableList; +import java.util.List; +import org.junit.Test; + +public class JobStatisticsTest { + + private static final Integer BILLING_TIER = 42; + private static final Boolean CACHE_HIT = true; + private static final Long TOTAL_BYTES_BILLED = 24L; + private static final Long TOTAL_BYTES_PROCESSED = 42L; + private static final Long INPUT_BYTES = 1L; + private static final Long INPUT_FILES = 2L; + private static final Long OUTPUT_BYTES = 3L; + private static final Long OUTPUT_ROWS = 4L; + private static final List FILE_COUNT = ImmutableList.of(1L, 2L, 3L); + private static final Long CREATION_TIME = 10L; + private static final Long END_TIME = 20L; + private static final Long START_TIME = 15L; + private static final CopyStatistics COPY_STATISTICS = CopyStatistics.newBuilder() + .setCreationTimestamp(CREATION_TIME) + .setEndTime(END_TIME) + .setStartTime(START_TIME) + .build(); + private static final ExtractStatistics EXTRACT_STATISTICS = ExtractStatistics.newBuilder() + .setCreationTimestamp(CREATION_TIME) + .setEndTime(END_TIME) + .setStartTime(START_TIME) + .setDestinationUriFileCounts(FILE_COUNT) + .build(); + private static final LoadStatistics LOAD_STATISTICS = LoadStatistics.newBuilder() + .setCreationTimestamp(CREATION_TIME) + .setEndTime(END_TIME) + .setStartTime(START_TIME) + .setInputBytes(INPUT_BYTES) + .setInputFiles(INPUT_FILES) + .setOutputBytes(OUTPUT_BYTES) + .setOutputRows(OUTPUT_ROWS) + .build(); + private static final LoadStatistics LOAD_STATISTICS_INCOMPLETE = LoadStatistics.newBuilder() + .setCreationTimestamp(CREATION_TIME) + .setEndTime(END_TIME) + .setStartTime(START_TIME) + .setInputBytes(INPUT_BYTES) + .setInputFiles(INPUT_FILES) + .build(); + private static final List SUBSTEPS1 = ImmutableList.of("substep1", "substep2"); + private static final List SUBSTEPS2 = ImmutableList.of("substep3", "substep4"); + private static final QueryStep QUERY_STEP1 = new QueryStep("KIND", SUBSTEPS1); + private static final QueryStep QUERY_STEP2 = new QueryStep("KIND", SUBSTEPS2); + private static final QueryStage QUERY_STAGE = QueryStage.newBuilder() + .setComputeRatioAvg(1.1) + .setComputeRatioMax(2.2) + .setGeneratedId(42L) + .setName("stage") + .setReadRatioAvg(3.3) + .setReadRatioMax(4.4) + .setRecordsRead(5L) + .setRecordsWritten(6L) + .setSteps(ImmutableList.of(QUERY_STEP1, QUERY_STEP2)) + .setWaitRatioAvg(7.7) + .setWaitRatioMax(8.8) + .setWriteRatioAvg(9.9) + .setWriteRatioMax(10.10) + .build(); + + private static final TimelineSample TIMELINE_SAMPLE1 = TimelineSample.newBuilder() + .setElapsedMs(1001L) + .setActiveUnits(100L) + .setCompletedUnits(200L) + .setPendingUnits(50L) + .setSlotMillis(12345L) + .build(); + private static final TimelineSample TIMELINE_SAMPLE2 = TimelineSample.newBuilder() + .setElapsedMs(2002L) + .setActiveUnits(48L) + .setCompletedUnits(302L) + .setPendingUnits(0L) + .setSlotMillis(23456L) + .build(); + private static final List TIMELINE = ImmutableList.of(TIMELINE_SAMPLE1, TIMELINE_SAMPLE2); + private static final List QUERY_PLAN = ImmutableList.of(QUERY_STAGE); + private static final Schema SCHEMA = Schema.of(Field.of("column", LegacySQLTypeName.DATETIME)); + private static final QueryStatistics QUERY_STATISTICS = QueryStatistics.newBuilder() + .setCreationTimestamp(CREATION_TIME) + .setEndTime(END_TIME) + .setStartTime(START_TIME) + .setBillingTier(BILLING_TIER) + .setCacheHit(CACHE_HIT) + .setTotalBytesBilled(TOTAL_BYTES_BILLED) + .setTotalBytesProcessed(TOTAL_BYTES_PROCESSED) + .setQueryPlan(QUERY_PLAN) + .setTimeline(TIMELINE) + .setSchema(SCHEMA) + .build(); + private static final QueryStatistics QUERY_STATISTICS_INCOMPLETE = QueryStatistics.newBuilder() + .setCreationTimestamp(CREATION_TIME) + .setEndTime(END_TIME) + .setStartTime(START_TIME) + .setBillingTier(BILLING_TIER) + .setCacheHit(CACHE_HIT) + .build(); + + @Test + public void testBuilder() { + assertEquals(CREATION_TIME, EXTRACT_STATISTICS.getCreationTime()); + assertEquals(START_TIME, EXTRACT_STATISTICS.getStartTime()); + assertEquals(END_TIME, EXTRACT_STATISTICS.getEndTime()); + assertEquals(FILE_COUNT, EXTRACT_STATISTICS.getDestinationUriFileCounts()); + + assertEquals(CREATION_TIME, LOAD_STATISTICS.getCreationTime()); + assertEquals(START_TIME, LOAD_STATISTICS.getStartTime()); + assertEquals(END_TIME, LOAD_STATISTICS.getEndTime()); + assertEquals(INPUT_BYTES, LOAD_STATISTICS.getInputBytes()); + assertEquals(INPUT_FILES, LOAD_STATISTICS.getInputFiles()); + assertEquals(OUTPUT_BYTES, LOAD_STATISTICS.getOutputBytes()); + assertEquals(OUTPUT_ROWS, LOAD_STATISTICS.getOutputRows()); + + assertEquals(CREATION_TIME, QUERY_STATISTICS.getCreationTime()); + assertEquals(START_TIME, QUERY_STATISTICS.getStartTime()); + assertEquals(END_TIME, QUERY_STATISTICS.getEndTime()); + assertEquals(BILLING_TIER, QUERY_STATISTICS.getBillingTier()); + assertEquals(CACHE_HIT, QUERY_STATISTICS.getCacheHit()); + assertEquals(TOTAL_BYTES_BILLED, QUERY_STATISTICS.getTotalBytesBilled()); + assertEquals(TOTAL_BYTES_PROCESSED, QUERY_STATISTICS.getTotalBytesProcessed()); + assertEquals(TOTAL_BYTES_PROCESSED, QUERY_STATISTICS.getTotalBytesProcessed()); + assertEquals(QUERY_PLAN, QUERY_STATISTICS.getQueryPlan()); + assertEquals(TIMELINE, QUERY_STATISTICS.getTimeline()); + + assertEquals(CREATION_TIME, LOAD_STATISTICS_INCOMPLETE.getCreationTime()); + assertEquals(START_TIME, LOAD_STATISTICS_INCOMPLETE.getStartTime()); + assertEquals(END_TIME, LOAD_STATISTICS_INCOMPLETE.getEndTime()); + assertEquals(INPUT_BYTES, LOAD_STATISTICS_INCOMPLETE.getInputBytes()); + assertEquals(INPUT_FILES, LOAD_STATISTICS_INCOMPLETE.getInputFiles()); + assertEquals(null, LOAD_STATISTICS_INCOMPLETE.getOutputBytes()); + assertEquals(null, LOAD_STATISTICS_INCOMPLETE.getOutputRows()); + + assertEquals(CREATION_TIME, QUERY_STATISTICS_INCOMPLETE.getCreationTime()); + assertEquals(START_TIME, QUERY_STATISTICS_INCOMPLETE.getStartTime()); + assertEquals(END_TIME, QUERY_STATISTICS_INCOMPLETE.getEndTime()); + assertEquals(BILLING_TIER, QUERY_STATISTICS_INCOMPLETE.getBillingTier()); + assertEquals(CACHE_HIT, QUERY_STATISTICS_INCOMPLETE.getCacheHit()); + assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getTotalBytesBilled()); + assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getTotalBytesProcessed()); + assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getQueryPlan()); + } + + @Test + public void testToPbAndFromPb() { + compareExtractStatistics(EXTRACT_STATISTICS, + ExtractStatistics.fromPb(EXTRACT_STATISTICS.toPb())); + compareLoadStatistics(LOAD_STATISTICS, LoadStatistics.fromPb(LOAD_STATISTICS.toPb())); + compareQueryStatistics(QUERY_STATISTICS, QueryStatistics.fromPb(QUERY_STATISTICS.toPb())); + compareStatistics(COPY_STATISTICS, CopyStatistics.fromPb(COPY_STATISTICS.toPb())); + + compareLoadStatistics( + LOAD_STATISTICS_INCOMPLETE, LoadStatistics.fromPb(LOAD_STATISTICS_INCOMPLETE.toPb())); + compareQueryStatistics( + QUERY_STATISTICS_INCOMPLETE, QueryStatistics.fromPb(QUERY_STATISTICS_INCOMPLETE.toPb())); + } + + @Test + public void testIncomplete() { + // https://github.com/GoogleCloudPlatform/google-cloud-java/issues/2357 + com.google.api.services.bigquery.model.Job job = + new com.google.api.services.bigquery.model.Job() + .setStatistics( + new com.google.api.services.bigquery.model.JobStatistics() + .setCreationTime(1234L) + .setStartTime(5678L)); + + job.setConfiguration( + new com.google.api.services.bigquery.model.JobConfiguration() + .setCopy(new com.google.api.services.bigquery.model.JobConfigurationTableCopy())); + assertThat(JobStatistics.fromPb(job)).isInstanceOf(CopyStatistics.class); + + job.setConfiguration( + new com.google.api.services.bigquery.model.JobConfiguration() + .setLoad(new com.google.api.services.bigquery.model.JobConfigurationLoad())); + assertThat(JobStatistics.fromPb(job)).isInstanceOf(LoadStatistics.class); + + job.setConfiguration( + new com.google.api.services.bigquery.model.JobConfiguration() + .setExtract(new com.google.api.services.bigquery.model.JobConfigurationExtract())); + assertThat(JobStatistics.fromPb(job)).isInstanceOf(ExtractStatistics.class); + + job.setConfiguration( + new com.google.api.services.bigquery.model.JobConfiguration() + .setQuery(new com.google.api.services.bigquery.model.JobConfigurationQuery())); + assertThat(JobStatistics.fromPb(job)).isInstanceOf(QueryStatistics.class); + } + + private void compareExtractStatistics(ExtractStatistics expected, ExtractStatistics value) { + assertEquals(expected, value); + compareStatistics(expected, value); + assertEquals(expected.getDestinationUriFileCounts(), value.getDestinationUriFileCounts()); + } + + private void compareLoadStatistics(LoadStatistics expected, LoadStatistics value) { + assertEquals(expected, value); + compareStatistics(expected, value); + assertEquals(expected.getInputBytes(), value.getInputBytes()); + assertEquals(expected.getInputFiles(), value.getInputFiles()); + assertEquals(expected.getOutputBytes(), value.getOutputBytes()); + assertEquals(expected.getOutputRows(), value.getOutputRows()); + } + + private void compareQueryStatistics(QueryStatistics expected, QueryStatistics value) { + assertEquals(expected, value); + compareStatistics(expected, value); + assertEquals(expected.getBillingTier(), value.getBillingTier()); + assertEquals(expected.getCacheHit(), value.getCacheHit()); + assertEquals(expected.getTotalBytesBilled(), value.getTotalBytesBilled()); + assertEquals(expected.getTotalBytesProcessed(), value.getTotalBytesProcessed()); + assertEquals(expected.getQueryPlan(), value.getQueryPlan()); + assertEquals(expected.getSchema(), value.getSchema()); + } + + private void compareStatistics(JobStatistics expected, JobStatistics value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getCreationTime(), value.getCreationTime()); + assertEquals(expected.getEndTime(), value.getEndTime()); + assertEquals(expected.getStartTime(), value.getStartTime()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java new file mode 100644 index 000000000000..997200d2f602 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java @@ -0,0 +1,67 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.common.collect.ImmutableList; + +import org.junit.Test; + +import java.util.List; + +public class JobStatusTest { + + private static final JobStatus.State STATE = JobStatus.State.DONE; + private static final BigQueryError ERROR = + new BigQueryError("reason", "location", "message", "debugInfo"); + private static final List ALL_ERRORS = ImmutableList.of( + new BigQueryError("reason1", "location1", "message1", "debugInfo1"), + new BigQueryError("reason2", "location2", "message2", "debugInfo2")); + private static final JobStatus JOB_STATUS = new JobStatus(STATE, ERROR, ALL_ERRORS); + private static final JobStatus JOB_STATUS_INCOMPLETE1 = new JobStatus(STATE, ERROR, null); + private static final JobStatus JOB_STATUS_INCOMPLETE2 = new JobStatus(STATE, null, null); + + @Test + public void testConstructor() { + assertEquals(STATE, JOB_STATUS.getState()); + assertEquals(ERROR, JOB_STATUS.getError()); + assertEquals(ALL_ERRORS, JOB_STATUS.getExecutionErrors()); + + assertEquals(STATE, JOB_STATUS_INCOMPLETE1.getState()); + assertEquals(ERROR, JOB_STATUS_INCOMPLETE1.getError()); + assertEquals(null, JOB_STATUS_INCOMPLETE1.getExecutionErrors()); + + assertEquals(STATE, JOB_STATUS_INCOMPLETE2.getState()); + assertEquals(null, JOB_STATUS_INCOMPLETE2.getError()); + assertEquals(null, JOB_STATUS_INCOMPLETE2.getExecutionErrors()); + } + + @Test + public void testToPbAndFromPb() { + compareStatus(JOB_STATUS, JobStatus.fromPb(JOB_STATUS.toPb())); + compareStatus(JOB_STATUS_INCOMPLETE1, JobStatus.fromPb(JOB_STATUS_INCOMPLETE1.toPb())); + compareStatus(JOB_STATUS_INCOMPLETE2, JobStatus.fromPb(JOB_STATUS_INCOMPLETE2.toPb())); + } + + private void compareStatus(JobStatus expected, JobStatus value) { + assertEquals(expected, value); + assertEquals(expected.getState(), value.getState()); + assertEquals(expected.getError(), value.getError()); + assertEquals(expected.getExecutionErrors(), value.getExecutionErrors()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java new file mode 100644 index 000000000000..5d8b2b13c34f --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -0,0 +1,470 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.collect.ObjectArrays.concat; +import static com.google.common.truth.Truth.assertThat; +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.createStrictMock; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + +import com.google.api.core.ApiClock; +import com.google.api.core.CurrentMillisClock; +import com.google.api.gax.paging.Page; +import com.google.cloud.RetryOption; +import com.google.cloud.bigquery.JobStatistics.CopyStatistics; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.common.collect.ImmutableList; +import java.util.Collections; +import org.junit.After; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.threeten.bp.Duration; + +public class JobTest { + + private static final JobId JOB_ID = JobId.of("project", "job"); + private static final TableId TABLE_ID1 = TableId.of("dataset", "table1"); + private static final TableId TABLE_ID2 = TableId.of("dataset", "table2"); + private static final String ETAG = "etag"; + private static final String GENERATED_ID = "id"; + private static final String SELF_LINK = "selfLink"; + private static final String EMAIL = "email"; + private static final JobStatus JOB_STATUS = new JobStatus(JobStatus.State.DONE); + private static final JobStatistics COPY_JOB_STATISTICS = + CopyStatistics.newBuilder().setCreationTimestamp(1L).setEndTime(3L).setStartTime(2L).build(); + private static final CopyJobConfiguration COPY_CONFIGURATION = + CopyJobConfiguration.of(TABLE_ID1, TABLE_ID2); + private static final JobInfo JOB_INFO = + JobInfo.newBuilder(COPY_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(COPY_JOB_STATISTICS) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + + private static final RetryOption[] TEST_RETRY_OPTIONS = + new RetryOption[] { + RetryOption.totalTimeout(Duration.ofSeconds(3)), + RetryOption.initialRetryDelay(Duration.ofMillis(1L)), + RetryOption.jittered(false), + RetryOption.retryDelayMultiplier(1.0) + }; + + private BigQuery serviceMockReturnsOptions = createStrictMock(BigQuery.class); + private BigQueryOptions mockOptions = createMock(BigQueryOptions.class); + private BigQuery bigquery; + private Job expectedJob; + private Job job; + + @Rule public final ExpectedException thrown = ExpectedException.none(); + + private void initializeExpectedJob(int optionsCalls, JobInfo jobInfo) { + expect(serviceMockReturnsOptions.getOptions()).andReturn(mockOptions).times(optionsCalls); + replay(serviceMockReturnsOptions); + bigquery = createStrictMock(BigQuery.class); + expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(jobInfo)); + } + + private void initializeExpectedJob(int optionsCalls) { + initializeExpectedJob(optionsCalls, JOB_INFO); + } + + private void initializeJob() { + initializeJob(JOB_INFO); + } + + private void initializeJob(JobInfo jobInfo) { + job = new Job(bigquery, new JobInfo.BuilderImpl(jobInfo)); + } + + @After + public void tearDown() throws Exception { + verify(bigquery, serviceMockReturnsOptions); + } + + @Test + public void testBuilder() { + initializeExpectedJob(2); + replay(bigquery); + Job builtJob = + new Job.Builder(serviceMockReturnsOptions, COPY_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(COPY_JOB_STATISTICS) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + assertEquals(ETAG, builtJob.getEtag()); + assertEquals(GENERATED_ID, builtJob.getGeneratedId()); + assertEquals(SELF_LINK, builtJob.getSelfLink()); + assertEquals(EMAIL, builtJob.getUserEmail()); + assertEquals(JOB_ID, builtJob.getJobId()); + assertEquals(JOB_STATUS, builtJob.getStatus()); + assertEquals(COPY_CONFIGURATION, builtJob.getConfiguration()); + assertEquals(COPY_JOB_STATISTICS, builtJob.getStatistics()); + assertSame(serviceMockReturnsOptions, builtJob.getBigQuery()); + } + + @Test + public void testToBuilder() { + initializeExpectedJob(4); + replay(bigquery); + compareJob(expectedJob, expectedJob.toBuilder().build()); + } + + @Test + public void testExists_True() throws Exception { + initializeExpectedJob(1); + BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields()}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(expectedJob); + replay(bigquery); + initializeJob(); + assertTrue(job.exists()); + } + + @Test + public void testExists_False() throws Exception { + initializeExpectedJob(1); + BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields()}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(null); + replay(bigquery); + initializeJob(); + assertFalse(job.exists()); + } + + @Test + public void testIsDone_True() throws Exception { + initializeExpectedJob(2); + BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; + JobStatus status = createStrictMock(JobStatus.class); + expect(status.getState()).andReturn(JobStatus.State.DONE); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)) + .andReturn(expectedJob.toBuilder().setStatus(status).build()); + replay(status, bigquery); + initializeJob(); + assertTrue(job.isDone()); + verify(status); + } + + @Test + public void testIsDone_False() throws Exception { + initializeExpectedJob(2); + BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; + JobStatus status = createStrictMock(JobStatus.class); + expect(status.getState()).andReturn(JobStatus.State.RUNNING); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)) + .andReturn(expectedJob.toBuilder().setStatus(status).build()); + replay(status, bigquery); + initializeJob(); + assertFalse(job.isDone()); + verify(status); + } + + @Test + public void testIsDone_NotExists() throws Exception { + initializeExpectedJob(1); + BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(null); + replay(bigquery); + initializeJob(); + assertTrue(job.isDone()); + } + + @Test + public void testWaitFor() throws InterruptedException { + initializeExpectedJob(2); + BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; + JobStatus status = createStrictMock(JobStatus.class); + expect(status.getState()).andReturn(JobStatus.State.DONE); + // caused by optimizing extra call to ResultRetryAlgorithm#shouldRetry() + expect(status.getState()).andReturn(JobStatus.State.DONE); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()); + Job completedJob = expectedJob.toBuilder().setStatus(status).build(); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(completedJob); + expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob); + replay(status, bigquery, mockOptions); + initializeJob(); + assertSame(completedJob, job.waitFor(TEST_RETRY_OPTIONS)); + verify(status, mockOptions); + } + + @Test + public void testWaitForAndGetQueryResults() throws InterruptedException { + QueryJobConfiguration jobConfig = + QueryJobConfiguration.newBuilder("SELECT 1").setDestinationTable(TABLE_ID1).build(); + QueryStatistics jobStatistics = + QueryStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .build(); + JobInfo jobInfo = + JobInfo.newBuilder(jobConfig) + .setJobId(JOB_ID) + .setStatistics(jobStatistics) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + + initializeExpectedJob(2, jobInfo); + JobStatus status = createStrictMock(JobStatus.class); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()).times(2); + Job completedJob = expectedJob.toBuilder().setStatus(status).build(); + // TODO(pongad): remove when we bump gax to 1.15. + Page emptyPage = + new Page() { + @Override + public boolean hasNextPage() { + return false; + } + + @Override + public String getNextPageToken() { + return ""; + } + + @Override + public Page getNextPage() { + return null; + } + + @Override + public Iterable iterateAll() { + return Collections.emptyList(); + } + + @Override + public Iterable getValues() { + return Collections.emptyList(); + } + }; + TableResult result = new TableResult(Schema.of(), 0, emptyPage); + QueryResponse completedQuery = + QueryResponse.newBuilder() + .setCompleted(true) + .setTotalRows(0) + .setSchema(Schema.of()) + .setErrors(ImmutableList.of()) + .build(); + + expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)).andReturn(completedQuery); + expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob); + expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) + .andReturn(completedQuery); + expect(bigquery.listTableData(TABLE_ID1, Schema.of())).andReturn(result); + + replay(status, bigquery, mockOptions); + initializeJob(jobInfo); + assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameAs(completedJob); + assertThat(job.getQueryResults().iterateAll()).isEmpty(); + verify(status, mockOptions); + } + + @Test + public void testWaitForAndGetQueryResults_Unsupported() throws InterruptedException { + initializeExpectedJob(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + replay(bigquery, mockOptions); + initializeJob(); + thrown.expect(UnsupportedOperationException.class); + job.getQueryResults(); + } + + @Test + public void testWaitFor_Null() throws InterruptedException { + initializeExpectedJob(1); + BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(null); + replay(bigquery, mockOptions); + initializeJob(); + assertNull(job.waitFor(TEST_RETRY_OPTIONS)); + verify(mockOptions); + } + + @Test + public void testWaitForWithCheckingPeriod() throws InterruptedException { + initializeExpectedJob(3); + BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; + JobStatus status = createStrictMock(JobStatus.class); + expect(status.getState()).andReturn(JobStatus.State.RUNNING); + // caused by optimizing extra call to ResultRetryAlgorithm#shouldRetry() + expect(status.getState()).andReturn(JobStatus.State.RUNNING); + expect(status.getState()).andReturn(JobStatus.State.DONE); + // caused by optimizing extra call to ResultRetryAlgorithm#shouldRetry() + expect(status.getState()).andReturn(JobStatus.State.DONE); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()); + Job runningJob = expectedJob.toBuilder().setStatus(status).build(); + Job completedJob = expectedJob.toBuilder().setStatus(status).build(); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(runningJob); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(completedJob); + expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob); + replay(status, bigquery, mockOptions); + initializeJob(); + assertSame(completedJob, job.waitFor(TEST_RETRY_OPTIONS)); + verify(status, mockOptions); + } + + @Test + public void testWaitForWithCheckingPeriod_Null() throws InterruptedException { + initializeExpectedJob(2); + BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()); + Job runningJob = + expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(runningJob); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(null); + replay(bigquery, mockOptions); + initializeJob(); + assertNull(job.waitFor(TEST_RETRY_OPTIONS)); + verify(bigquery, mockOptions); + } + + @Test + public void testWaitForWithTimeout() throws InterruptedException { + initializeExpectedJob(2); + BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; + ApiClock clock = createStrictMock(ApiClock.class); + expect(clock.nanoTime()).andReturn(0L); + expect(clock.nanoTime()).andReturn(1_000_000L); + expect(clock.nanoTime()).andReturn(3_000_000L); + JobStatus status = createStrictMock(JobStatus.class); + expect(status.getState()).andReturn(JobStatus.State.RUNNING); + expect(status.getState()).andReturn(JobStatus.State.RUNNING); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(mockOptions.getClock()).andReturn(clock); + Job runningJob = expectedJob.toBuilder().setStatus(status).build(); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(runningJob); + expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(runningJob); + replay(status, bigquery, clock, mockOptions); + initializeJob(); + thrown.expect(BigQueryException.class); + job.waitFor(concat(TEST_RETRY_OPTIONS, RetryOption.totalTimeout(Duration.ofMillis(3)))); + verify(status, clock, mockOptions); + } + + @Test + public void testReload() throws Exception { + initializeExpectedJob(4); + JobInfo updatedInfo = JOB_INFO.toBuilder().setEtag("etag").build(); + Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(updatedInfo)); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(expectedJob); + replay(bigquery); + initializeJob(); + Job updatedJob = job.reload(); + compareJob(expectedJob, updatedJob); + } + + @Test + public void testReloadNull() throws Exception { + initializeExpectedJob(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(null); + replay(bigquery); + initializeJob(); + assertNull(job.reload()); + } + + @Test + public void testReloadWithOptions() throws Exception { + initializeExpectedJob(4); + JobInfo updatedInfo = JOB_INFO.toBuilder().setEtag("etag").build(); + Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(updatedInfo)); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getJob(JOB_INFO.getJobId(), BigQuery.JobOption.fields())) + .andReturn(expectedJob); + replay(bigquery); + initializeJob(); + Job updatedJob = job.reload(BigQuery.JobOption.fields()); + compareJob(expectedJob, updatedJob); + } + + @Test + public void testCancel() throws Exception { + initializeExpectedJob(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.cancel(JOB_INFO.getJobId())).andReturn(true); + replay(bigquery); + initializeJob(); + assertTrue(job.cancel()); + } + + @Test + public void testBigQuery() { + initializeExpectedJob(1); + replay(bigquery); + assertSame(serviceMockReturnsOptions, expectedJob.getBigQuery()); + } + + @Test + public void testToAndFromPb() { + initializeExpectedJob(4); + replay(bigquery); + compareJob(expectedJob, Job.fromPb(serviceMockReturnsOptions, expectedJob.toPb())); + } + + private void compareJob(Job expected, Job value) { + assertEquals(expected, value); + compareJobInfo(expected, value); + assertEquals(expected.getBigQuery().getOptions(), value.getBigQuery().getOptions()); + } + + private void compareJobInfo(JobInfo expected, JobInfo value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getEtag(), value.getEtag()); + assertEquals(expected.getGeneratedId(), value.getGeneratedId()); + assertEquals(expected.getJobId(), value.getJobId()); + assertEquals(expected.getSelfLink(), value.getSelfLink()); + assertEquals(expected.getStatus(), value.getStatus()); + assertEquals(expected.getStatistics(), value.getStatistics()); + assertEquals(expected.getUserEmail(), value.getUserEmail()); + assertEquals(expected.getConfiguration(), value.getConfiguration()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java new file mode 100644 index 000000000000..787dd77df786 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java @@ -0,0 +1,76 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.fail; + +import com.google.api.client.util.Data; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import org.junit.Test; + +public class LabelsTest { + @Test + public void testFromUser() { + assertThat(Labels.fromUser(null).userMap()).isNull(); + + HashMap user = new HashMap<>(); + assertThat(Labels.fromUser(user).userMap()).isEmpty(); + + user.put("a", "b"); + Labels labels = Labels.fromUser(user); + assertThat(labels.userMap()).containsExactly("a", "b"); + + // Changing map afterwards does not change the labels. + user.put("c", "d"); + assertThat(labels.userMap()).containsExactly("a", "b"); + } + + @Test + public void testFromToPb() { + assertThat(Labels.fromPb(null).toPb()).isNull(); + + HashMap pb = new HashMap<>(); + assertThat(Labels.fromPb(pb).toPb()).isNull(); + + pb.put("a", "b"); + assertThat(Labels.fromPb(pb).toPb()).isEqualTo(pb); + + pb.put("c", Data.NULL_STRING); + assertThat(Labels.fromPb(pb).toPb()).isEqualTo(pb); + + Map jsonNullMap = Data.nullOf(HashMap.class); + assertThat(Data.isNull(Labels.fromPb(jsonNullMap).toPb())).isTrue(); + } + + @Test + public void testNullKey() { + try { + Labels.fromUser(Collections.singletonMap((String) null, "foo")); + fail("null key shouldn't work"); + } catch (IllegalArgumentException e) { + } + + try { + Labels.fromPb(Collections.singletonMap((String) null, "foo")); + fail("null key shouldn't work"); + } catch (IllegalArgumentException e) { + } + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java new file mode 100644 index 000000000000..0552cc881150 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -0,0 +1,167 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.cloud.bigquery.JobInfo.CreateDisposition; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.common.collect.ImmutableList; + +import org.junit.Test; + +import java.nio.charset.StandardCharsets; +import java.util.List; + +public class LoadJobConfigurationTest { + + private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder() + .setAllowJaggedRows(true) + .setAllowQuotedNewLines(false) + .setEncoding(StandardCharsets.UTF_8) + .build(); + private static final TableId TABLE_ID = TableId.of("dataset", "table"); + private static final CreateDisposition CREATE_DISPOSITION = CreateDisposition.CREATE_IF_NEEDED; + private static final WriteDisposition WRITE_DISPOSITION = WriteDisposition.WRITE_APPEND; + private static final Integer MAX_BAD_RECORDS = 42; + private static final String FORMAT = "CSV"; + private static final Boolean IGNORE_UNKNOWN_VALUES = true; + private static final Field FIELD_SCHEMA = + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.REQUIRED) + .setDescription("FieldDescription") + .build(); + private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); + private static final List SCHEMA_UPDATE_OPTIONS = + ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_ADDITION); + private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA); + private static final Boolean AUTODETECT = true; + private static final EncryptionConfiguration JOB_ENCRYPTION_CONFIGURATION = + EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); + private static final LoadJobConfiguration LOAD_CONFIGURATION_CSV = + LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) + .setCreateDisposition(CREATE_DISPOSITION) + .setWriteDisposition(WRITE_DISPOSITION) + .setFormatOptions(CSV_OPTIONS) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .setSchema(TABLE_SCHEMA) + .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) + .setAutodetect(AUTODETECT) + .setDestinationEncryptionConfiguration(JOB_ENCRYPTION_CONFIGURATION) + .build(); + private static final DatastoreBackupOptions BACKUP_OPTIONS = DatastoreBackupOptions.newBuilder() + .setProjectionFields(ImmutableList.of("field_1", "field_2")) + .build(); + private static final LoadJobConfiguration LOAD_CONFIGURATION_BACKUP = + LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) + .setCreateDisposition(CREATE_DISPOSITION) + .setWriteDisposition(WRITE_DISPOSITION) + .setFormatOptions(BACKUP_OPTIONS) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .setSchema(TABLE_SCHEMA) + .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) + .setAutodetect(AUTODETECT) + .build(); + + @Test + public void testToBuilder() { + compareLoadJobConfiguration( + LOAD_CONFIGURATION_CSV, LOAD_CONFIGURATION_CSV.toBuilder().build()); + LoadJobConfiguration configurationCSV = LOAD_CONFIGURATION_CSV.toBuilder() + .setDestinationTable(TableId.of("dataset", "newTable")) + .build(); + assertEquals("newTable", configurationCSV.getDestinationTable().getTable()); + configurationCSV = configurationCSV.toBuilder().setDestinationTable(TABLE_ID).build(); + compareLoadJobConfiguration(LOAD_CONFIGURATION_CSV, configurationCSV); + + compareLoadJobConfiguration( + LOAD_CONFIGURATION_BACKUP, LOAD_CONFIGURATION_BACKUP.toBuilder().build()); + LoadJobConfiguration configurationBackup = LOAD_CONFIGURATION_BACKUP.toBuilder() + .setDestinationTable(TableId.of("dataset", "newTable")) + .build(); + assertEquals("newTable", configurationBackup.getDestinationTable().getTable()); + configurationBackup = configurationBackup.toBuilder().setDestinationTable(TABLE_ID).build(); + compareLoadJobConfiguration(LOAD_CONFIGURATION_BACKUP, configurationBackup); + } + + @Test + public void testOf() { + LoadJobConfiguration configuration = LoadJobConfiguration.of(TABLE_ID, SOURCE_URIS); + assertEquals(TABLE_ID, configuration.getDestinationTable()); + assertEquals(SOURCE_URIS, configuration.getSourceUris()); + configuration = LoadJobConfiguration.of(TABLE_ID, SOURCE_URIS, CSV_OPTIONS); + assertEquals(TABLE_ID, configuration.getDestinationTable()); + assertEquals(FORMAT, configuration.getFormat()); + assertEquals(CSV_OPTIONS, configuration.getCsvOptions()); + assertEquals(SOURCE_URIS, configuration.getSourceUris()); + configuration = LoadJobConfiguration.of(TABLE_ID, "uri1"); + assertEquals(TABLE_ID, configuration.getDestinationTable()); + assertEquals(ImmutableList.of("uri1"), configuration.getSourceUris()); + configuration = LoadJobConfiguration.of(TABLE_ID, "uri1", CSV_OPTIONS); + assertEquals(TABLE_ID, configuration.getDestinationTable()); + assertEquals(FORMAT, configuration.getFormat()); + assertEquals(CSV_OPTIONS, configuration.getCsvOptions()); + assertEquals(ImmutableList.of("uri1"), configuration.getSourceUris()); + } + + @Test + public void testToBuilderIncomplete() { + LoadJobConfiguration configuration = LoadJobConfiguration.of(TABLE_ID, SOURCE_URIS); + compareLoadJobConfiguration(configuration, configuration.toBuilder().build()); + } + + @Test + public void testToPbAndFromPb() { + compareLoadJobConfiguration(LOAD_CONFIGURATION_CSV, + LoadJobConfiguration.fromPb(LOAD_CONFIGURATION_CSV.toPb())); + LoadJobConfiguration configuration = LoadJobConfiguration.of(TABLE_ID, SOURCE_URIS); + compareLoadJobConfiguration(configuration, LoadJobConfiguration.fromPb(configuration.toPb())); + } + + @Test + public void testSetProjectId() { + LoadConfiguration configuration = LOAD_CONFIGURATION_CSV.setProjectId("p"); + assertEquals("p", configuration.getDestinationTable().getProject()); + } + + @Test + public void testGetType() { + assertEquals(JobConfiguration.Type.LOAD, LOAD_CONFIGURATION_CSV.getType()); + } + + private void compareLoadJobConfiguration(LoadJobConfiguration expected, + LoadJobConfiguration value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getDestinationTable(), value.getDestinationTable()); + assertEquals(expected.getCreateDisposition(), value.getCreateDisposition()); + assertEquals(expected.getWriteDisposition(), value.getWriteDisposition()); + assertEquals(expected.getCsvOptions(), value.getCsvOptions()); + assertEquals(expected.getFormat(), value.getFormat()); + assertEquals(expected.ignoreUnknownValues(), value.ignoreUnknownValues()); + assertEquals(expected.getMaxBadRecords(), value.getMaxBadRecords()); + assertEquals(expected.getSchema(), value.getSchema()); + assertEquals(expected.getDatastoreBackupOptions(), value.getDatastoreBackupOptions()); + assertEquals(expected.getAutodetect(), value.getAutodetect()); + assertEquals(expected.getSchemaUpdateOptions(), value.getSchemaUpdateOptions()); + assertEquals(expected.getDestinationEncryptionConfiguration(), value.getDestinationEncryptionConfiguration()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java new file mode 100644 index 000000000000..56652e8d3e03 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java @@ -0,0 +1,65 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNull; + +import com.google.cloud.bigquery.spi.v2.BigQueryRpc; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +public class OptionTest { + + private static final BigQueryRpc.Option RPC_OPTION = BigQueryRpc.Option.PAGE_TOKEN; + private static final BigQueryRpc.Option ANOTHER_RPC_OPTION = BigQueryRpc.Option.FIELDS; + private static final String VALUE = "some value"; + private static final String OTHER_VALUE = "another value"; + private static final Option OPTION = new Option(RPC_OPTION, VALUE) {}; + private static final Option OPTION_EQUALS = new Option(RPC_OPTION, VALUE) {}; + private static final Option OPTION_NOT_EQUALS1 = new Option(RPC_OPTION, OTHER_VALUE) {}; + private static final Option OPTION_NOT_EQUALS2 = new Option(ANOTHER_RPC_OPTION, VALUE) {}; + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void testEquals() { + assertEquals(OPTION, OPTION_EQUALS); + assertNotEquals(OPTION, OPTION_NOT_EQUALS1); + assertNotEquals(OPTION, OPTION_NOT_EQUALS2); + } + + @Test + public void testHashCode() { + assertEquals(OPTION.hashCode(), OPTION_EQUALS.hashCode()); + } + + @Test + public void testConstructor() { + assertEquals(RPC_OPTION, OPTION.getRpcOption()); + assertEquals(VALUE, OPTION.getValue()); + Option option = new Option(RPC_OPTION, null) {}; + assertEquals(RPC_OPTION, option.getRpcOption()); + assertNull(option.getValue()); + thrown.expect(NullPointerException.class); + new Option(null, VALUE) {}; + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java new file mode 100644 index 000000000000..7fff324aafb8 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -0,0 +1,170 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +import com.google.cloud.bigquery.JobInfo.CreateDisposition; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.cloud.bigquery.QueryJobConfiguration.Priority; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import java.util.List; +import java.util.Map; +import org.junit.Test; + +public class QueryJobConfigurationTest { + + private static final String QUERY = "BigQuery SQL"; + private static final DatasetId DATASET_ID = DatasetId.of("dataset"); + private static final TableId TABLE_ID = TableId.of("dataset", "table"); + private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); + private static final Field FIELD_SCHEMA1 = + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("FieldDescription1") + .build(); + private static final Field FIELD_SCHEMA2 = + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.REPEATED) + .setDescription("FieldDescription2") + .build(); + private static final Field FIELD_SCHEMA3 = + Field.newBuilder("RecordField", LegacySQLTypeName.RECORD, FIELD_SCHEMA1, FIELD_SCHEMA2) + .setMode(Field.Mode.REQUIRED) + .setDescription("FieldDescription3") + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); + private static final Integer MAX_BAD_RECORDS = 42; + private static final Boolean IGNORE_UNKNOWN_VALUES = true; + private static final String COMPRESSION = "GZIP"; + private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder().build(); + private static final ExternalTableDefinition TABLE_CONFIGURATION = + ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) + .setCompression(COMPRESSION) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .build(); + private static final Map TABLE_DEFINITIONS = + ImmutableMap.of("tableName", TABLE_CONFIGURATION); + private static final CreateDisposition CREATE_DISPOSITION = CreateDisposition.CREATE_IF_NEEDED; + private static final WriteDisposition WRITE_DISPOSITION = WriteDisposition.WRITE_APPEND; + private static final Priority PRIORITY = Priority.BATCH; + private static final boolean ALLOW_LARGE_RESULTS = true; + private static final boolean USE_QUERY_CACHE = false; + private static final boolean FLATTEN_RESULTS = true; + private static final boolean USE_LEGACY_SQL = true; + private static final Integer MAX_BILLING_TIER = 123; + private static final List SCHEMA_UPDATE_OPTIONS = + ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_RELAXATION); + private static final List USER_DEFINED_FUNCTIONS = ImmutableList.of( + UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")); + private static final EncryptionConfiguration JOB_ENCRYPTION_CONFIGURATION = + EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); + private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = + QueryJobConfiguration.newBuilder(QUERY) + .setUseQueryCache(USE_QUERY_CACHE) + .setTableDefinitions(TABLE_DEFINITIONS) + .setAllowLargeResults(ALLOW_LARGE_RESULTS) + .setCreateDisposition(CREATE_DISPOSITION) + .setDefaultDataset(DATASET_ID) + .setDestinationTable(TABLE_ID) + .setWriteDisposition(WRITE_DISPOSITION) + .setPriority(PRIORITY) + .setFlattenResults(FLATTEN_RESULTS) + .setUserDefinedFunctions(USER_DEFINED_FUNCTIONS) + .setDryRun(true) + .setUseLegacySql(USE_LEGACY_SQL) + .setMaximumBillingTier(MAX_BILLING_TIER) + .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) + .setDestinationEncryptionConfiguration(JOB_ENCRYPTION_CONFIGURATION) + .build(); + + @Test + public void testToBuilder() { + compareQueryJobConfiguration(QUERY_JOB_CONFIGURATION, + QUERY_JOB_CONFIGURATION.toBuilder().build()); + QueryJobConfiguration job = QUERY_JOB_CONFIGURATION.toBuilder() + .setQuery("New BigQuery SQL") + .build(); + assertEquals("New BigQuery SQL", job.getQuery()); + job = job.toBuilder().setQuery(QUERY).build(); + compareQueryJobConfiguration(QUERY_JOB_CONFIGURATION, job); + } + + @Test + public void testOf() { + QueryJobConfiguration job = QueryJobConfiguration.of(QUERY); + assertEquals(QUERY, job.getQuery()); + } + + @Test + public void testToBuilderIncomplete() { + QueryJobConfiguration job = QueryJobConfiguration.of(QUERY); + compareQueryJobConfiguration(job, job.toBuilder().build()); + } + + @Test + public void testToPbAndFromPb() { + assertNotNull(QUERY_JOB_CONFIGURATION.toPb().getQuery()); + assertNull(QUERY_JOB_CONFIGURATION.toPb().getExtract()); + assertNull(QUERY_JOB_CONFIGURATION.toPb().getCopy()); + assertNull(QUERY_JOB_CONFIGURATION.toPb().getLoad()); + compareQueryJobConfiguration(QUERY_JOB_CONFIGURATION, + QueryJobConfiguration.fromPb(QUERY_JOB_CONFIGURATION.toPb())); + QueryJobConfiguration job = QueryJobConfiguration.of(QUERY); + compareQueryJobConfiguration(job, QueryJobConfiguration.fromPb(job.toPb())); + } + + @Test + public void testSetProjectId() { + QueryJobConfiguration configuration = QUERY_JOB_CONFIGURATION.setProjectId("p"); + assertEquals("p", configuration.getDefaultDataset().getProject()); + assertEquals("p", configuration.getDestinationTable().getProject()); + } + + @Test + public void testGetType() { + assertEquals(JobConfiguration.Type.QUERY, QUERY_JOB_CONFIGURATION.getType()); + } + + private void compareQueryJobConfiguration(QueryJobConfiguration expected, + QueryJobConfiguration value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.dryRun(), value.dryRun()); + assertEquals(expected.allowLargeResults(), value.allowLargeResults()); + assertEquals(expected.getCreateDisposition(), value.getCreateDisposition()); + assertEquals(expected.getDefaultDataset(), value.getDefaultDataset()); + assertEquals(expected.getDestinationTable(), value.getDestinationTable()); + assertEquals(expected.flattenResults(), value.flattenResults()); + assertEquals(expected.getPriority(), value.getPriority()); + assertEquals(expected.getQuery(), value.getQuery()); + assertEquals(expected.getTableDefinitions(), value.getTableDefinitions()); + assertEquals(expected.useQueryCache(), value.useQueryCache()); + assertEquals(expected.getUserDefinedFunctions(), value.getUserDefinedFunctions()); + assertEquals(expected.getWriteDisposition(), value.getWriteDisposition()); + assertEquals(expected.useLegacySql(), value.useLegacySql()); + assertEquals(expected.getMaximumBillingTier(), value.getMaximumBillingTier()); + assertEquals(expected.getSchemaUpdateOptions(), value.getSchemaUpdateOptions()); + assertEquals(expected.getDestinationEncryptionConfiguration(), value.getDestinationEncryptionConfiguration()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java new file mode 100644 index 000000000000..f804923bf7c1 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -0,0 +1,266 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.api.services.bigquery.model.QueryParameterType; +import java.util.List; +import org.junit.Test; + +public class QueryParameterValueTest { + + @Test + public void testBool() { + QueryParameterValue value = QueryParameterValue.bool(true); + assertThat(value.getValue()).isEqualTo("true"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.BOOL); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + + @Test + public void testInt64() { + QueryParameterValue value = QueryParameterValue.int64(8L); + assertThat(value.getValue()).isEqualTo("8"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.INT64); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + + @Test + public void testInt64FromInteger() { + QueryParameterValue value = QueryParameterValue.int64(7); + assertThat(value.getValue()).isEqualTo("7"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.INT64); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + + @Test + public void testFloat64() { + QueryParameterValue value = QueryParameterValue.float64(1.2); + assertThat(value.getValue()).isEqualTo("1.2"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.FLOAT64); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + + @Test + public void testFloat64FromFloat() { + QueryParameterValue value = QueryParameterValue.float64(1.2f); + assertThat(value.getValue()).isEqualTo("1.2"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.FLOAT64); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + + @Test + public void testString() { + QueryParameterValue value = QueryParameterValue.string("foo"); + assertThat(value.getValue()).isEqualTo("foo"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.STRING); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + + @Test + public void testBytes() { + QueryParameterValue value = QueryParameterValue.bytes(new byte[] {1, 3}); + assertThat(value.getValue()).isEqualTo("AQM="); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.BYTES); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + + @Test + public void testBoolArray() { + QueryParameterValue value = QueryParameterValue.array(new Boolean[] {true, false}, Boolean.class); + assertThat(value.getValue()).isNull(); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); + assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.BOOL); + assertArrayDataEquals(new String[]{"true", "false"}, StandardSQLTypeName.BOOL, value.getArrayValues()); + } + + @Test + public void testInt64Array() { + QueryParameterValue value = QueryParameterValue.array(new Long[] {2L, 5L}, Long.class); + assertThat(value.getValue()).isNull(); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); + assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.INT64); + assertArrayDataEquals(new String[]{"2", "5"}, StandardSQLTypeName.INT64, value.getArrayValues()); + } + + @Test + public void testInt64ArrayFromIntegers() { + QueryParameterValue value = QueryParameterValue.array(new Integer[] {2, 5}, Integer.class); + assertThat(value.getValue()).isNull(); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); + assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.INT64); + assertArrayDataEquals(new String[]{"2", "5"}, StandardSQLTypeName.INT64, value.getArrayValues()); + } + + @Test + public void testFloat64Array() { + QueryParameterValue value = QueryParameterValue.array(new Double[] {2.6, 5.4}, Double.class); + assertThat(value.getValue()).isNull(); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); + assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.FLOAT64); + assertArrayDataEquals(new String[]{"2.6", "5.4"}, StandardSQLTypeName.FLOAT64, value.getArrayValues()); + } + + @Test + public void testFloat64ArrayFromFloats() { + QueryParameterValue value = QueryParameterValue.array(new Float[] {2.6f, 5.4f}, Float.class); + assertThat(value.getValue()).isNull(); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); + assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.FLOAT64); + assertArrayDataEquals(new String[]{"2.6", "5.4"}, StandardSQLTypeName.FLOAT64, value.getArrayValues()); + } + + @Test + public void testStringArray() { + QueryParameterValue value = QueryParameterValue.array(new String[] {"Ana", "Marv"}, String.class); + assertThat(value.getValue()).isNull(); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); + assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.STRING); + assertArrayDataEquals(new String[]{"Ana", "Marv"}, StandardSQLTypeName.STRING, value.getArrayValues()); + } + + @Test + public void testTimestampFromLong() { + QueryParameterValue value = QueryParameterValue.timestamp(1408452095220000L); + assertThat(value.getValue()).isEqualTo("2014-08-19 12:41:35.220000+00:00"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.TIMESTAMP); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + + @Test + public void testTimestamp() { + QueryParameterValue value = QueryParameterValue.timestamp("2014-08-19 12:41:35.220000+00:00"); + assertThat(value.getValue()).isEqualTo("2014-08-19 12:41:35.220000+00:00"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.TIMESTAMP); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + + @Test(expected = IllegalArgumentException.class) + public void testInvalidTimestamp() { + // missing the time + QueryParameterValue.timestamp("2014-08-19"); + } + + @Test + public void testDate() { + QueryParameterValue value = QueryParameterValue.date("2014-08-19"); + assertThat(value.getValue()).isEqualTo("2014-08-19"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.DATE); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + + @Test(expected = IllegalArgumentException.class) + public void testInvalidDate() { + // not supposed to have the time + QueryParameterValue.date("2014-08-19 12:41:35.220000"); + } + + @Test + public void testTime() { + QueryParameterValue value = QueryParameterValue.time("05:41:35.220000"); + assertThat(value.getValue()).isEqualTo("05:41:35.220000"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.TIME); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + + @Test(expected = IllegalArgumentException.class) + public void testInvalidTime() { + // not supposed to have the date + QueryParameterValue.time("2014-08-19 12:41:35.220000"); + } + + @Test + public void testDateTime() { + QueryParameterValue value = QueryParameterValue.dateTime("2014-08-19 05:41:35.220000"); + assertThat(value.getValue()).isEqualTo("2014-08-19 05:41:35.220000"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.DATETIME); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + + @Test(expected = IllegalArgumentException.class) + public void testInvalidDateTime() { + // missing the time + QueryParameterValue.dateTime("2014-08-19"); + } + + @Test + public void testTimestampArrayFromLongs() { + QueryParameterValue value = + QueryParameterValue.array(new Long[] {1408452095220000L, 1481041545110000L}, StandardSQLTypeName.TIMESTAMP); + assertThat(value.getValue()).isNull(); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); + assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.TIMESTAMP); + assertArrayDataEquals( + new String[]{"2014-08-19 12:41:35.220000+00:00", "2016-12-06 16:25:45.110000+00:00"}, + StandardSQLTypeName.TIMESTAMP, + value.getArrayValues()); + } + + @Test + public void testTimestampArray() { + QueryParameterValue value = + QueryParameterValue.array( + new String[] {"2014-08-19 12:41:35.220000+00:00", "2016-12-06 16:25:45.110000+00:00"}, + StandardSQLTypeName.TIMESTAMP); + assertThat(value.getValue()).isNull(); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); + assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.TIMESTAMP); + assertArrayDataEquals( + new String[]{"2014-08-19 12:41:35.220000+00:00", "2016-12-06 16:25:45.110000+00:00"}, + StandardSQLTypeName.TIMESTAMP, + value.getArrayValues()); + } + + @Test + public void testFromEmptyArray() { + QueryParameterType typePb = + new QueryParameterType() + .setType("ARRAY") + .setArrayType(new QueryParameterType().setType("INT64")); + // If the array is empty, the server sends us a null value, not a value with empty array. + QueryParameterValue value = QueryParameterValue.fromPb(null, typePb); + assertThat(value.getValue()).isNull(); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); + assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.INT64); + assertThat(value.getArrayValues()).isEmpty(); + } + + private static void assertArrayDataEquals(String[] expectedValues, + StandardSQLTypeName expectedType, List actualValues) { + assertThat(actualValues.size()).isEqualTo(expectedValues.length); + for (int i = 0; i < expectedValues.length; i++) { + QueryParameterValue value = actualValues.get(i); + assertThat(value.getType()).isEqualTo(expectedType); + assertThat(value.getValue()).isEqualTo(expectedValues[i]); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java new file mode 100644 index 000000000000..d38f276d9ed9 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java @@ -0,0 +1,193 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.api.services.bigquery.model.ExplainQueryStep; +import com.google.cloud.bigquery.QueryStage.QueryStep; +import com.google.common.collect.ImmutableList; + +import org.junit.Test; + +import java.util.List; + +public class QueryStageTest { + + private static final List SUBSTEPS1 = ImmutableList.of("substep1", "substep2"); + private static final List SUBSTEPS2 = ImmutableList.of("substep3", "substep4"); + private static final QueryStep QUERY_STEP1 = new QueryStep("KIND", SUBSTEPS1); + private static final QueryStep QUERY_STEP2 = new QueryStep("KIND", SUBSTEPS2); + private static final long COMPLETED_PARALLEL_INPUTS = 3; + private static final long COMPUTE_MS_AVG = 1234; + private static final long COMPUTE_MS_MAX = 2345; + private static final double COMPUTE_RATIO_AVG = 1.1; + private static final double COMPUTE_RATIO_MAX = 2.2; + private static final long END_MS = 1522540860000L; + private static final long ID = 42L; + private static final List INPUT_STAGES = ImmutableList.of(Long.valueOf(7),Long.valueOf(9)); + private static final String NAME = "StageName"; + private static final long PARALLEL_INPUTS = 4; + private static final long READ_MS_AVG = 3456; + private static final long READ_MS_MAX = 4567; + private static final double READ_RATIO_AVG = 3.3; + private static final double READ_RATIO_MAX = 4.4; + private static final long RECORDS_READ = 5L; + private static final long RECORDS_WRITTEN = 6L; + private static final long SHUFFLE_OUTPUT_BYTES = 4096; + private static final long SHUFFLE_OUTPUT_BYTES_SPILLED = 0; + private static final long START_MS = 1522540800000L; + private static final String STATUS = "COMPLETE"; + private static final List STEPS = ImmutableList.of(QUERY_STEP1, QUERY_STEP2); + private static final long WAIT_MS_AVG = 3333; + private static final long WAIT_MS_MAX = 3344; + private static final double WAIT_RATIO_AVG = 7.7; + private static final double WAIT_RATIO_MAX = 8.8; + private static final long WRITE_MS_AVG = 44; + private static final long WRITE_MS_MAX = 50; + private static final double WRITE_RATIO_AVG = 9.9; + private static final double WRITE_RATIO_MAX = 10.10; + private static final QueryStage QUERY_STAGE = QueryStage.newBuilder() + .setCompletedParallelInputs(COMPLETED_PARALLEL_INPUTS) + .setComputeMsAvg(COMPUTE_MS_AVG) + .setComputeMsMax(COMPUTE_MS_MAX) + .setComputeRatioAvg(COMPUTE_RATIO_AVG) + .setComputeRatioMax(COMPUTE_RATIO_MAX) + .setEndMs(END_MS) + .setGeneratedId(ID) + .setInputStages(INPUT_STAGES) + .setName(NAME) + .setParallelInputs(PARALLEL_INPUTS) + .setReadMsAvg(READ_MS_AVG) + .setReadMsMax(READ_MS_MAX) + .setReadRatioAvg(READ_RATIO_AVG) + .setReadRatioMax(READ_RATIO_MAX) + .setRecordsRead(RECORDS_READ) + .setRecordsWritten(RECORDS_WRITTEN) + .setShuffleOutputBytes(SHUFFLE_OUTPUT_BYTES) + .setShuffleOutputBytesSpilled(SHUFFLE_OUTPUT_BYTES_SPILLED) + .setStartMs(START_MS) + .setStatus(STATUS) + .setSteps(STEPS) + .setWaitMsAvg(WAIT_MS_AVG) + .setWaitMsMax(WAIT_MS_MAX) + .setWaitRatioAvg(WAIT_RATIO_AVG) + .setWaitRatioMax(WAIT_RATIO_MAX) + .setWriteMsAvg(WRITE_MS_AVG) + .setWriteMsMax(WRITE_MS_MAX) + .setWriteRatioAvg(WRITE_RATIO_AVG) + .setWriteRatioMax(WRITE_RATIO_MAX) + .build(); + + @Test + public void testQueryStepConstructor() { + assertEquals("KIND", QUERY_STEP1.getName()); + assertEquals("KIND", QUERY_STEP2.getName()); + assertEquals(SUBSTEPS1, QUERY_STEP1.getSubsteps()); + assertEquals(SUBSTEPS2, QUERY_STEP2.getSubsteps()); + } + + + @Test + public void testBuilder() { + assertEquals(COMPLETED_PARALLEL_INPUTS, QUERY_STAGE.getCompletedParallelInputs()); + assertEquals(COMPUTE_MS_AVG, QUERY_STAGE.getComputeMsAvg()); + assertEquals(COMPUTE_MS_MAX, QUERY_STAGE.getComputeMsMax()); + assertEquals(COMPUTE_RATIO_AVG, QUERY_STAGE.getComputeRatioAvg(), 0); + assertEquals(COMPUTE_RATIO_MAX, QUERY_STAGE.getComputeRatioMax(), 0); + assertEquals(END_MS, QUERY_STAGE.getEndMs()); + assertEquals(ID, QUERY_STAGE.getGeneratedId()); + assertEquals(INPUT_STAGES, QUERY_STAGE.getInputStages()); + assertEquals(PARALLEL_INPUTS, QUERY_STAGE.getParallelInputs()); + assertEquals(NAME, QUERY_STAGE.getName()); + assertEquals(READ_RATIO_AVG, QUERY_STAGE.getReadRatioAvg(), 0); + assertEquals(READ_RATIO_MAX, QUERY_STAGE.getReadRatioMax(), 0); + assertEquals(RECORDS_READ, QUERY_STAGE.getRecordsRead()); + assertEquals(RECORDS_WRITTEN, QUERY_STAGE.getRecordsWritten()); + assertEquals(SHUFFLE_OUTPUT_BYTES, QUERY_STAGE.getShuffleOutputBytes()); + assertEquals(SHUFFLE_OUTPUT_BYTES_SPILLED, QUERY_STAGE.getShuffleOutputBytesSpilled()); + assertEquals(START_MS, QUERY_STAGE.getStartMs()); + assertEquals(STATUS, QUERY_STAGE.getStatus()); + assertEquals(STEPS, QUERY_STAGE.getSteps()); + assertEquals(WAIT_MS_AVG, QUERY_STAGE.getWaitMsAvg()); + assertEquals(WAIT_MS_MAX, QUERY_STAGE.getWaitMsMax()); + assertEquals(WAIT_RATIO_AVG, QUERY_STAGE.getWaitRatioAvg(), 0); + assertEquals(WAIT_RATIO_MAX, QUERY_STAGE.getWaitRatioMax(), 0); + assertEquals(WRITE_MS_AVG, QUERY_STAGE.getWriteMsAvg()); + assertEquals(WRITE_MS_MAX, QUERY_STAGE.getWriteMsMax()); + assertEquals(WRITE_RATIO_AVG, QUERY_STAGE.getWriteRatioAvg(), 0); + assertEquals(WRITE_RATIO_MAX, QUERY_STAGE.getWriteRatioMax(), 0); + } + + + @Test + public void testToAndFromPb() { + compareQueryStep(QUERY_STEP1, QueryStep.fromPb(QUERY_STEP1.toPb())); + compareQueryStep(QUERY_STEP2, QueryStep.fromPb(QUERY_STEP2.toPb())); + compareQueryStage(QUERY_STAGE, QueryStage.fromPb(QUERY_STAGE.toPb())); + ExplainQueryStep stepPb = new ExplainQueryStep(); + stepPb.setKind("KIND"); + stepPb.setSubsteps(null); + compareQueryStep(new QueryStep("KIND", ImmutableList.of()), QueryStep.fromPb(stepPb)); + } + + @Test + public void testEquals() { + compareQueryStep(QUERY_STEP1, QUERY_STEP1); + compareQueryStep(QUERY_STEP2, QUERY_STEP2); + compareQueryStage(QUERY_STAGE, QUERY_STAGE); + } + + private void compareQueryStage(QueryStage expected, QueryStage value) { + assertEquals(expected, value); + assertEquals(expected.getCompletedParallelInputs(), value.getCompletedParallelInputs()); + assertEquals(expected.getComputeMsAvg(), value.getComputeMsAvg()); + assertEquals(expected.getComputeMsMax(), value.getComputeMsMax()); + assertEquals(expected.getComputeRatioAvg(), value.getComputeRatioAvg(), 0); + assertEquals(expected.getComputeRatioMax(), value.getComputeRatioMax(), 0); + assertEquals(expected.getEndMs(), value.getEndMs()); + assertEquals(expected.getGeneratedId(), value.getGeneratedId()); + assertEquals(expected.getInputStages(), value.getInputStages()); + assertEquals(expected.getName(), value.getName()); + assertEquals(expected.getParallelInputs(), value.getParallelInputs()); + assertEquals(expected.getReadRatioAvg(), value.getReadRatioAvg(), 0); + assertEquals(expected.getReadRatioMax(), value.getReadRatioMax(), 0); + assertEquals(expected.getRecordsRead(), value.getRecordsRead()); + assertEquals(expected.getRecordsWritten(), value.getRecordsWritten()); + assertEquals(expected.getShuffleOutputBytes(), value.getShuffleOutputBytes()); + assertEquals(expected.getShuffleOutputBytesSpilled(), value.getShuffleOutputBytesSpilled()); + assertEquals(expected.getStartMs(), value.getStartMs()); + assertEquals(expected.getStatus(), value.getStatus()); + assertEquals(expected.getSteps(), value.getSteps()); + assertEquals(expected.getWaitMsAvg(), value.getWaitMsAvg()); + assertEquals(expected.getWaitMsMax(), value.getWaitMsMax()); + assertEquals(expected.getWaitRatioAvg(), value.getWaitRatioAvg(), 0); + assertEquals(expected.getWaitRatioMax(), value.getWaitRatioMax(), 0); + assertEquals(expected.getWriteMsAvg(), expected.getWriteMsAvg()); + assertEquals(expected.getWriteMsMax(), expected.getWriteMsMax()); + assertEquals(expected.getWriteRatioAvg(), value.getWriteRatioAvg(), 0); + assertEquals(expected.getWriteRatioMax(), value.getWriteRatioMax(), 0); + assertEquals(expected.hashCode(), value.hashCode()); + } + + private void compareQueryStep(QueryStep expected, QueryStep value) { + assertEquals(expected, value); + assertEquals(expected.getName(), value.getName()); + assertEquals(expected.getSubsteps(), value.getSubsteps()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java new file mode 100644 index 000000000000..6b78abbb61a6 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java @@ -0,0 +1,62 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.common.collect.ImmutableList; + +import org.junit.Test; + +import java.util.List; + +public class SchemaTest { + + private static final Field FIELD_SCHEMA1 = + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("FieldDescription1") + .build(); + private static final Field FIELD_SCHEMA2 = + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.REPEATED) + .setDescription("FieldDescription2") + .build(); + private static final Field FIELD_SCHEMA3 = + Field.newBuilder("RecordField", LegacySQLTypeName.RECORD, FIELD_SCHEMA1, FIELD_SCHEMA2) + .setMode(Field.Mode.REQUIRED) + .setDescription("FieldDescription3") + .build(); + private static final List FIELDS = ImmutableList.of(FIELD_SCHEMA1, FIELD_SCHEMA2, + FIELD_SCHEMA3); + private static final Schema TABLE_SCHEMA = Schema.of(FIELDS); + + @Test + public void testOf() { + compareTableSchema(TABLE_SCHEMA, Schema.of(FIELDS)); + } + + @Test + public void testToAndFromPb() { + compareTableSchema(TABLE_SCHEMA, Schema.fromPb(TABLE_SCHEMA.toPb())); + } + + private void compareTableSchema(Schema expected, Schema value) { + assertEquals(expected, value); + assertEquals(expected.getFields(), value.getFields()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java new file mode 100644 index 000000000000..f49dd23d52cf --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java @@ -0,0 +1,278 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.cloud.BaseSerializationTest; +import com.google.cloud.NoCredentials; +import com.google.cloud.Restorable; +import com.google.cloud.PageImpl; +import com.google.cloud.bigquery.StandardTableDefinition.StreamingBuffer; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import java.io.Serializable; +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.Map; + +public class SerializationTest extends BaseSerializationTest { + + private static final Acl DOMAIN_ACCESS = + Acl.of(new Acl.Domain("domain"), Acl.Role.WRITER); + private static final Acl GROUP_ACCESS = + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER); + private static final Acl USER_ACCESS = Acl.of(new Acl.User("user"), Acl.Role.OWNER); + private static final Acl VIEW_ACCESS = + Acl.of(new Acl.View(TableId.of("project", "dataset", "table")), Acl.Role.WRITER); + private static final List ACCESS_RULES = ImmutableList.of(DOMAIN_ACCESS, GROUP_ACCESS, + VIEW_ACCESS, USER_ACCESS); + private static final Long CREATION_TIME = System.currentTimeMillis() - 10; + private static final Long DEFAULT_TABLE_EXPIRATION = 100L; + private static final String DESCRIPTION = "Description"; + private static final String ETAG = "0xFF00"; + private static final String FRIENDLY_NAME = "friendlyDataset"; + private static final String GENERATED_ID = "P/D:1"; + private static final Long LAST_MODIFIED = CREATION_TIME + 50; + private static final String LOCATION = ""; + private static final String SELF_LINK = "http://bigquery/p/d"; + private static final DatasetId DATASET_ID = DatasetId.of("project", "dataset"); + private static final DatasetInfo DATASET_INFO = DatasetInfo.newBuilder(DATASET_ID) + .setAcl(ACCESS_RULES) + .setCreationTime(CREATION_TIME) + .setDefaultTableLifetime(DEFAULT_TABLE_EXPIRATION) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModified(LAST_MODIFIED) + .setLocation(LOCATION) + .setSelfLink(SELF_LINK) + .build(); + private static final TableId TABLE_ID = TableId.of("project", "dataset", "table"); + private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder() + .setAllowJaggedRows(true) + .setAllowQuotedNewLines(false) + .setEncoding(StandardCharsets.ISO_8859_1) + .setFieldDelimiter(",") + .setQuote("\"") + .setSkipLeadingRows(42L) + .build(); + private static final Field FIELD_SCHEMA1 = + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("FieldDescription1") + .build(); + private static final Field FIELD_SCHEMA2 = + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.REPEATED) + .setDescription("FieldDescription2") + .build(); + private static final Field FIELD_SCHEMA3 = + Field.newBuilder("RecordField", LegacySQLTypeName.RECORD, FIELD_SCHEMA1, FIELD_SCHEMA2) + .setMode(Field.Mode.REQUIRED) + .setDescription("FieldDescription3") + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); + private static final StreamingBuffer STREAMING_BUFFER = new StreamingBuffer(1L, 2L, 3L); + private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); + private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION = + ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) + .setIgnoreUnknownValues(true) + .setMaxBadRecords(42) + .build(); + private static final UserDefinedFunction INLINE_FUNCTION = + new UserDefinedFunction.InlineFunction("inline"); + private static final UserDefinedFunction URI_FUNCTION = + new UserDefinedFunction.UriFunction("URI"); + private static final TableDefinition TABLE_DEFINITION = StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setLocation(LOCATION) + .setStreamingBuffer(STREAMING_BUFFER) + .build(); + private static final TableInfo TABLE_INFO = TableInfo.newBuilder(TABLE_ID, TABLE_DEFINITION) + .setCreationTime(CREATION_TIME) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .build(); + private static final TableDefinition VIEW_DEFINITION = ViewDefinition.of("QUERY"); + private static final TableInfo VIEW_INFO = TableInfo.newBuilder(TABLE_ID, VIEW_DEFINITION) + .setCreationTime(CREATION_TIME) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .build(); + private static final TableInfo EXTERNAL_TABLE_INFO = + TableInfo.newBuilder(TABLE_ID, EXTERNAL_TABLE_DEFINITION) + .setCreationTime(CREATION_TIME) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .build(); + private static final JobStatistics.CopyStatistics COPY_STATISTICS = + JobStatistics.CopyStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .build(); + private static final JobStatistics.ExtractStatistics EXTRACT_STATISTICS = + JobStatistics.ExtractStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .setDestinationUriFileCounts(ImmutableList.of(42L)) + .build(); + private static final JobStatistics.LoadStatistics LOAD_STATISTICS = + JobStatistics.LoadStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .setInputFiles(42L) + .setOutputBytes(1024L) + .setInputBytes(2048L) + .setOutputRows(24L) + .build(); + private static final JobStatistics.QueryStatistics QUERY_STATISTICS = + JobStatistics.QueryStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .setTotalBytesProcessed(2048L) + .setTotalBytesBilled(1024L) + .setCacheHit(false) + .setBillingTier(42) + .build(); + private static final BigQueryError BIGQUERY_ERROR = + new BigQueryError("reason", "location", "message", "debugInfo"); + private static final JobStatus JOB_STATUS = new JobStatus(JobStatus.State.DONE, BIGQUERY_ERROR, + ImmutableList.of(BIGQUERY_ERROR)); + private static final JobId JOB_ID = JobId.of("project", "job"); + private static final Long NUM_DL_AFFECTED_ROWS = 24L; + private static final CopyJobConfiguration COPY_JOB_CONFIGURATION = + CopyJobConfiguration.of(TABLE_ID, TABLE_ID); + private static final ExtractJobConfiguration EXTRACT_JOB_CONFIGURATION = + ExtractJobConfiguration.of(TABLE_ID, SOURCE_URIS); + private static final WriteChannelConfiguration LOAD_CONFIGURATION = + WriteChannelConfiguration.newBuilder(TABLE_ID) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setWriteDisposition(JobInfo.WriteDisposition.WRITE_APPEND) + .setFormatOptions(CSV_OPTIONS) + .setIgnoreUnknownValues(true) + .setMaxBadRecords(10) + .setSchema(TABLE_SCHEMA) + .build(); + private static final LoadJobConfiguration LOAD_JOB_CONFIGURATION = + LoadJobConfiguration.of(TABLE_ID, SOURCE_URIS); + private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = + QueryJobConfiguration.of("query"); + private static final JobInfo JOB_INFO = JobInfo.of(COPY_JOB_CONFIGURATION); + private static final Map CONTENT1 = + ImmutableMap.of("key", "val1"); + private static final Map CONTENT2 = + ImmutableMap.of("key", "val2"); + private static final InsertAllRequest INSERT_ALL_REQUEST = InsertAllRequest.newBuilder(TABLE_ID) + .addRow(CONTENT1) + .addRow(CONTENT2) + .setIgnoreUnknownValues(true) + .setSkipInvalidRows(false) + .build(); + private static final Map> ERRORS_MAP = + ImmutableMap.>of(0L, ImmutableList.of(BIGQUERY_ERROR)); + private static final InsertAllResponse INSERT_ALL_RESPONSE = new InsertAllResponse(ERRORS_MAP); + private static final FieldValue FIELD_VALUE = + FieldValue.of(FieldValue.Attribute.PRIMITIVE, "value"); + private static final TableResult TABLE_RESULT = new TableResult(Schema.of(), 0L, new PageImpl(null, "", ImmutableList.of())); + private static final BigQuery BIGQUERY = + BigQueryOptions.newBuilder().setProjectId("p1").build().getService(); + private static final Dataset DATASET = + new Dataset(BIGQUERY, new DatasetInfo.BuilderImpl(DATASET_INFO)); + private static final Table TABLE = new Table(BIGQUERY, new TableInfo.BuilderImpl(TABLE_INFO)); + private static final Job JOB = new Job(BIGQUERY, new JobInfo.BuilderImpl(JOB_INFO)); + private static final BigQueryException BIG_QUERY_EXCEPTION = + new BigQueryException(42, "message", BIGQUERY_ERROR); + private static final TimePartitioning TIME_PARTITIONING = + TimePartitioning.of(TimePartitioning.Type.DAY, 42); + + @Override + protected Serializable[] serializableObjects() { + BigQueryOptions options = BigQueryOptions.newBuilder() + .setProjectId("p1") + .setCredentials(NoCredentials.getInstance()) + .build(); + BigQueryOptions otherOptions = options.toBuilder().setProjectId("p2").build(); + return new Serializable[] { + DOMAIN_ACCESS, + GROUP_ACCESS, + USER_ACCESS, + VIEW_ACCESS, + DATASET_ID, + DATASET_INFO, + TABLE_ID, + CSV_OPTIONS, + STREAMING_BUFFER, + TABLE_DEFINITION, + EXTERNAL_TABLE_DEFINITION, + VIEW_DEFINITION, + TABLE_SCHEMA, + TABLE_INFO, + VIEW_INFO, + EXTERNAL_TABLE_INFO, + INLINE_FUNCTION, + URI_FUNCTION, + COPY_STATISTICS, + EXTRACT_STATISTICS, + LOAD_STATISTICS, + QUERY_STATISTICS, + BIGQUERY_ERROR, + JOB_STATUS, + JOB_ID, + COPY_JOB_CONFIGURATION, + EXTRACT_JOB_CONFIGURATION, + LOAD_CONFIGURATION, + LOAD_JOB_CONFIGURATION, + QUERY_JOB_CONFIGURATION, + JOB_INFO, + INSERT_ALL_REQUEST, + INSERT_ALL_RESPONSE, + FIELD_VALUE, + BIG_QUERY_EXCEPTION, + TIME_PARTITIONING, + TABLE_RESULT, + BigQuery.DatasetOption.fields(), + BigQuery.DatasetDeleteOption.deleteContents(), + BigQuery.DatasetListOption.all(), + BigQuery.TableOption.fields(), + BigQuery.TableListOption.pageSize(42L), + BigQuery.JobOption.fields(), + BigQuery.JobListOption.allUsers(), + DATASET, + TABLE, + JOB, + options, + otherOptions + }; + } + + @Override + protected Restorable[] restorableObjects() { + BigQueryOptions options = BigQueryOptions.newBuilder().setProjectId("p2").build(); + // avoid closing when you don't want partial writes upon failure + @SuppressWarnings("resource") + TableDataWriteChannel writer = + new TableDataWriteChannel(options, LOAD_CONFIGURATION, "upload-id"); + return new Restorable[]{writer}; + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java new file mode 100644 index 000000000000..038fcfd1da5c --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -0,0 +1,127 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import com.google.cloud.bigquery.StandardTableDefinition.StreamingBuffer; + +import org.junit.Test; + +public class StandardTableDefinitionTest { + + private static final Field FIELD_SCHEMA1 = + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("FieldDescription1") + .build(); + private static final Field FIELD_SCHEMA2 = + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.REPEATED) + .setDescription("FieldDescription2") + .build(); + private static final Field FIELD_SCHEMA3 = + Field.newBuilder("RecordField", LegacySQLTypeName.RECORD, FIELD_SCHEMA1, FIELD_SCHEMA2) + .setMode(Field.Mode.REQUIRED) + .setDescription("FieldDescription3") + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); + private static final Long NUM_BYTES = 42L; + private static final Long NUM_ROWS = 43L; + private static final String LOCATION = "US"; + private static final StreamingBuffer STREAMING_BUFFER = new StreamingBuffer(1L, 2L, 3L); + private static final TimePartitioning TIME_PARTITIONING = + TimePartitioning.of(TimePartitioning.Type.DAY, 42); + private static final StandardTableDefinition TABLE_DEFINITION = + StandardTableDefinition.newBuilder() + .setLocation(LOCATION) + .setNumBytes(NUM_BYTES) + .setNumRows(NUM_ROWS) + .setStreamingBuffer(STREAMING_BUFFER) + .setSchema(TABLE_SCHEMA) + .setTimePartitioning(TIME_PARTITIONING) + .build(); + + @Test + public void testToBuilder() { + compareStandardTableDefinition(TABLE_DEFINITION, TABLE_DEFINITION.toBuilder().build()); + StandardTableDefinition tableDefinition = + TABLE_DEFINITION.toBuilder().setLocation("EU").build(); + assertEquals("EU", tableDefinition.getLocation()); + tableDefinition = tableDefinition.toBuilder() + .setLocation(LOCATION) + .build(); + compareStandardTableDefinition(TABLE_DEFINITION, tableDefinition); + } + + @Test + public void testToBuilderIncomplete() { + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + assertEquals(tableDefinition, tableDefinition.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(TableDefinition.Type.TABLE, TABLE_DEFINITION.getType()); + assertEquals(TABLE_SCHEMA, TABLE_DEFINITION.getSchema()); + assertEquals(LOCATION, TABLE_DEFINITION.getLocation()); + assertEquals(NUM_BYTES, TABLE_DEFINITION.getNumBytes()); + assertEquals(NUM_ROWS, TABLE_DEFINITION.getNumRows()); + assertEquals(STREAMING_BUFFER, TABLE_DEFINITION.getStreamingBuffer()); + assertEquals(TIME_PARTITIONING, TABLE_DEFINITION.getTimePartitioning()); + } + + + @Test + public void testOf() { + StandardTableDefinition definition = StandardTableDefinition.of(TABLE_SCHEMA); + assertEquals(TableDefinition.Type.TABLE, TABLE_DEFINITION.getType()); + assertEquals(TABLE_SCHEMA, TABLE_DEFINITION.getSchema()); + assertNull(definition.getLocation()); + assertNull(definition.getNumBytes()); + assertNull(definition.getNumRows()); + assertNull(definition.getStreamingBuffer()); + assertNull(definition.getTimePartitioning()); + } + + @Test + public void testToAndFromPb() { + assertTrue(TableDefinition.fromPb(TABLE_DEFINITION.toPb()) instanceof StandardTableDefinition); + compareStandardTableDefinition(TABLE_DEFINITION, + TableDefinition.fromPb(TABLE_DEFINITION.toPb())); + StandardTableDefinition definition = StandardTableDefinition.of(TABLE_SCHEMA); + assertTrue(TableDefinition.fromPb(definition.toPb()) instanceof StandardTableDefinition); + compareStandardTableDefinition(definition, + TableDefinition.fromPb(definition.toPb())); + } + + private void compareStandardTableDefinition(StandardTableDefinition expected, + StandardTableDefinition value) { + assertEquals(expected, value); + assertEquals(expected.getSchema(), value.getSchema()); + assertEquals(expected.getType(), value.getType()); + assertEquals(expected.getNumBytes(), value.getNumBytes()); + assertEquals(expected.getNumRows(), value.getNumRows()); + assertEquals(expected.getLocation(), value.getLocation()); + assertEquals(expected.getStreamingBuffer(), value.getStreamingBuffer()); + assertEquals(expected.getType(), value.getType()); + assertEquals(expected.getTimePartitioning(), value.getTimePartitioning()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java new file mode 100644 index 000000000000..341380471672 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java @@ -0,0 +1,368 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.easymock.EasyMock.anyObject; +import static org.easymock.EasyMock.capture; +import static org.easymock.EasyMock.captureLong; +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.eq; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import com.google.cloud.RestorableState; +import com.google.cloud.WriteChannel; +import com.google.cloud.bigquery.spi.BigQueryRpcFactory; +import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import java.io.IOException; +import java.net.SocketException; +import java.nio.ByteBuffer; +import java.util.Arrays; +import java.util.Random; +import org.easymock.Capture; +import org.easymock.CaptureType; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +public class TableDataWriteChannelTest { + + private static final String UPLOAD_ID = "uploadid"; + private static final TableId TABLE_ID = TableId.of("dataset", "table"); + private static final WriteChannelConfiguration LOAD_CONFIGURATION = + WriteChannelConfiguration.newBuilder(TABLE_ID) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setWriteDisposition(JobInfo.WriteDisposition.WRITE_APPEND) + .setFormatOptions(FormatOptions.json()) + .setIgnoreUnknownValues(true) + .setMaxBadRecords(10) + .build(); + private static final int MIN_CHUNK_SIZE = 256 * 1024; + private static final int DEFAULT_CHUNK_SIZE = 8 * MIN_CHUNK_SIZE; + private static final int CUSTOM_CHUNK_SIZE = 4 * MIN_CHUNK_SIZE; + private static final Random RANDOM = new Random(); + private static final LoadJobConfiguration JOB_CONFIGURATION = + LoadJobConfiguration.of(TABLE_ID, "URI"); + private static final JobInfo JOB_INFO = JobInfo.of(JobId.of(), JOB_CONFIGURATION); + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + private BigQueryOptions options; + private BigQueryRpcFactory rpcFactoryMock; + private BigQueryRpc bigqueryRpcMock; + private BigQueryFactory bigqueryFactoryMock; + private BigQuery bigqueryMock; + private Job job; + + private TableDataWriteChannel writer; + + @Before + public void setUp() { + rpcFactoryMock = createMock(BigQueryRpcFactory.class); + bigqueryRpcMock = createMock(BigQueryRpc.class); + bigqueryFactoryMock = createMock(BigQueryFactory.class); + bigqueryMock = createMock(BigQuery.class); + expect(bigqueryMock.getOptions()).andReturn(options).anyTimes(); + replay(bigqueryMock); + job = new Job(bigqueryMock, new JobInfo.BuilderImpl(JOB_INFO)); + expect(rpcFactoryMock.create(anyObject(BigQueryOptions.class))).andReturn(bigqueryRpcMock); + expect(bigqueryFactoryMock.create(anyObject(BigQueryOptions.class))).andReturn(bigqueryMock) + .anyTimes(); + replay(rpcFactoryMock, bigqueryFactoryMock); + options = BigQueryOptions.newBuilder() + .setProjectId("projectid") + .setServiceRpcFactory(rpcFactoryMock) + .setServiceFactory(bigqueryFactoryMock) + .build(); + } + + @After + public void tearDown() throws Exception { + verify(rpcFactoryMock, bigqueryRpcMock, bigqueryFactoryMock, bigqueryMock); + } + + @Test + public void testCreate() { + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andReturn(UPLOAD_ID); + replay(bigqueryRpcMock); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + assertTrue(writer.isOpen()); + assertNull(writer.getJob()); + } + + @Test + public void testCreateRetryableError() { + BigQueryException exception = new BigQueryException(new SocketException("Socket closed")); + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andThrow(exception); + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andReturn(UPLOAD_ID); + replay(bigqueryRpcMock); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + assertTrue(writer.isOpen()); + assertNull(writer.getJob()); + } + + @Test + public void testCreateNonRetryableError() { + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andThrow(new RuntimeException()); + replay(bigqueryRpcMock); + thrown.expect(RuntimeException.class); + new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + } + + @Test + public void testWriteWithoutFlush() throws IOException { + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andReturn(UPLOAD_ID); + replay(bigqueryRpcMock); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + assertEquals(MIN_CHUNK_SIZE, writer.write(ByteBuffer.allocate(MIN_CHUNK_SIZE))); + assertNull(writer.getJob()); + } + + @Test + public void testWriteWithFlush() throws IOException { + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andReturn(UPLOAD_ID); + Capture capturedBuffer = Capture.newInstance(); + expect(bigqueryRpcMock.write(eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), + eq(CUSTOM_CHUNK_SIZE), eq(false))).andReturn(null); + replay(bigqueryRpcMock); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + writer.setChunkSize(CUSTOM_CHUNK_SIZE); + ByteBuffer buffer = randomBuffer(CUSTOM_CHUNK_SIZE); + assertEquals(CUSTOM_CHUNK_SIZE, writer.write(buffer)); + assertArrayEquals(buffer.array(), capturedBuffer.getValue()); + assertNull(writer.getJob()); + } + + @Test + public void testWritesAndFlush() throws IOException { + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andReturn(UPLOAD_ID); + Capture capturedBuffer = Capture.newInstance(); + expect(bigqueryRpcMock.write(eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), + eq(DEFAULT_CHUNK_SIZE), eq(false))).andReturn(null); + replay(bigqueryRpcMock); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + ByteBuffer[] buffers = new ByteBuffer[DEFAULT_CHUNK_SIZE / MIN_CHUNK_SIZE]; + for (int i = 0; i < buffers.length; i++) { + buffers[i] = randomBuffer(MIN_CHUNK_SIZE); + assertEquals(MIN_CHUNK_SIZE, writer.write(buffers[i])); + } + for (int i = 0; i < buffers.length; i++) { + assertArrayEquals( + buffers[i].array(), + Arrays.copyOfRange( + capturedBuffer.getValue(), MIN_CHUNK_SIZE * i, MIN_CHUNK_SIZE * (i + 1))); + } + assertNull(writer.getJob()); + } + + @Test + public void testCloseWithoutFlush() throws IOException { + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andReturn(UPLOAD_ID); + Capture capturedBuffer = Capture.newInstance(); + expect(bigqueryRpcMock.write( + eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true))) + .andReturn(job.toPb()); + replay(bigqueryRpcMock); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + assertTrue(writer.isOpen()); + writer.close(); + assertArrayEquals(new byte[0], capturedBuffer.getValue()); + assertTrue(!writer.isOpen()); + assertEquals(job, writer.getJob()); + } + + @Test + public void testCloseWithFlush() throws IOException { + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andReturn(UPLOAD_ID); + Capture capturedBuffer = Capture.newInstance(); + ByteBuffer buffer = randomBuffer(MIN_CHUNK_SIZE); + expect(bigqueryRpcMock.write( + eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(MIN_CHUNK_SIZE), eq(true))) + .andReturn(job.toPb()); + replay(bigqueryRpcMock); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + assertTrue(writer.isOpen()); + writer.write(buffer); + writer.close(); + assertEquals(DEFAULT_CHUNK_SIZE, capturedBuffer.getValue().length); + assertArrayEquals(buffer.array(), Arrays.copyOf(capturedBuffer.getValue(), MIN_CHUNK_SIZE)); + assertTrue(!writer.isOpen()); + assertEquals(job, writer.getJob()); + } + + @Test + public void testWriteClosed() throws IOException { + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andReturn(UPLOAD_ID); + Capture capturedBuffer = Capture.newInstance(); + expect(bigqueryRpcMock.write( + eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true))) + .andReturn(job.toPb()); + replay(bigqueryRpcMock); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + writer.close(); + assertEquals(job, writer.getJob()); + try { + writer.write(ByteBuffer.allocate(MIN_CHUNK_SIZE)); + fail("Expected TableDataWriteChannel write to throw IOException"); + } catch (IOException ex) { + // expected + } + } + + @Test + public void testSaveAndRestore() throws IOException { + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andReturn(UPLOAD_ID); + Capture capturedBuffer = Capture.newInstance(CaptureType.ALL); + Capture capturedPosition = Capture.newInstance(CaptureType.ALL); + expect(bigqueryRpcMock.write(eq(UPLOAD_ID), capture(capturedBuffer), eq(0), + captureLong(capturedPosition), eq(DEFAULT_CHUNK_SIZE), eq(false))).andReturn(null).times(2); + replay(bigqueryRpcMock); + ByteBuffer buffer1 = randomBuffer(DEFAULT_CHUNK_SIZE); + ByteBuffer buffer2 = randomBuffer(DEFAULT_CHUNK_SIZE); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + assertEquals(DEFAULT_CHUNK_SIZE, writer.write(buffer1)); + assertArrayEquals(buffer1.array(), capturedBuffer.getValues().get(0)); + assertEquals(new Long(0L), capturedPosition.getValues().get(0)); + assertNull(writer.getJob()); + RestorableState writerState = writer.capture(); + WriteChannel restoredWriter = writerState.restore(); + assertEquals(DEFAULT_CHUNK_SIZE, restoredWriter.write(buffer2)); + assertArrayEquals(buffer2.array(), capturedBuffer.getValues().get(1)); + assertEquals(new Long(DEFAULT_CHUNK_SIZE), capturedPosition.getValues().get(1)); + } + + @Test + public void testSaveAndRestoreClosed() throws IOException { + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andReturn(UPLOAD_ID); + Capture capturedBuffer = Capture.newInstance(); + expect(bigqueryRpcMock.write( + eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true))) + .andReturn(job.toPb()); + replay(bigqueryRpcMock); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + writer.close(); + assertEquals(job, writer.getJob()); + RestorableState writerState = writer.capture(); + RestorableState expectedWriterState = + TableDataWriteChannel.StateImpl.builder(options, LOAD_CONFIGURATION, UPLOAD_ID, job) + .setBuffer(null) + .setChunkSize(DEFAULT_CHUNK_SIZE) + .setIsOpen(false) + .setPosition(0) + .build(); + WriteChannel restoredWriter = writerState.restore(); + assertArrayEquals(new byte[0], capturedBuffer.getValue()); + assertEquals(expectedWriterState, restoredWriter.capture()); + } + + @Test + public void testStateEquals() { + expect( + bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .andReturn(UPLOAD_ID) + .times(2); + replay(bigqueryRpcMock); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + // avoid closing when you don't want partial writes upon failure + @SuppressWarnings("resource") + WriteChannel writer2 = + new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + RestorableState state = writer.capture(); + RestorableState state2 = writer2.capture(); + assertEquals(state, state2); + assertEquals(state.hashCode(), state2.hashCode()); + assertEquals(state.toString(), state2.toString()); + } + + private static ByteBuffer randomBuffer(int size) { + byte[] byteArray = new byte[size]; + RANDOM.nextBytes(byteArray); + return ByteBuffer.wrap(byteArray); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java new file mode 100644 index 000000000000..cc1be2545ba0 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java @@ -0,0 +1,62 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class TableIdTest { + + private static final TableId TABLE = TableId.of("dataset", "table"); + private static final TableId TABLE_COMPLETE = TableId.of("project", "dataset", "table"); + + @Test + public void testOf() { + assertEquals(null, TABLE.getProject()); + assertEquals("dataset", TABLE.getDataset()); + assertEquals("table", TABLE.getTable()); + assertEquals("project", TABLE_COMPLETE.getProject()); + assertEquals("dataset", TABLE_COMPLETE.getDataset()); + assertEquals("table", TABLE_COMPLETE.getTable()); + } + + + @Test + public void testEquals() { + compareTableIds(TABLE, TableId.of("dataset", "table")); + compareTableIds(TABLE_COMPLETE, TableId.of("project", "dataset", "table")); + } + + @Test + public void testToPbAndFromPb() { + compareTableIds(TABLE, TableId.fromPb(TABLE.toPb())); + compareTableIds(TABLE_COMPLETE, TableId.fromPb(TABLE_COMPLETE.toPb())); + } + + @Test + public void testSetProjectId() { + assertEquals(TABLE_COMPLETE, TABLE.setProjectId("project")); + } + + private void compareTableIds(TableId expected, TableId value) { + assertEquals(expected, value); + assertEquals(expected.getProject(), value.getProject()); + assertEquals(expected.getDataset(), value.getDataset()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java new file mode 100644 index 000000000000..b8125dcf3d3a --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java @@ -0,0 +1,248 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import com.google.common.collect.ImmutableList; +import java.util.Collections; +import java.util.List; +import org.junit.Test; + +public class TableInfoTest { + + private static final String ETAG = "etag"; + private static final String GENERATED_ID = "project:dataset:table"; + private static final String SELF_LINK = "selfLink"; + private static final TableId TABLE_ID = TableId.of("dataset", "table"); + private static final String FRIENDLY_NAME = "friendlyName"; + private static final String DESCRIPTION = "description"; + private static final Long CREATION_TIME = 10L; + private static final Long EXPIRATION_TIME = 100L; + private static final Long LAST_MODIFIED_TIME = 20L; + + private static final Field FIELD_SCHEMA1 = + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("FieldDescription1") + .build(); + private static final Field FIELD_SCHEMA2 = + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.REPEATED) + .setDescription("FieldDescription2") + .build(); + private static final Field FIELD_SCHEMA3 = + Field.newBuilder("RecordField", LegacySQLTypeName.RECORD, FIELD_SCHEMA1, FIELD_SCHEMA2) + .setMode(Field.Mode.REQUIRED) + .setDescription("FieldDescription3") + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); + private static final Long NUM_BYTES = 42L; + private static final Long NUM_ROWS = 43L; + private static final String LOCATION = "US"; + private static final StandardTableDefinition.StreamingBuffer STREAMING_BUFFER = + new StandardTableDefinition.StreamingBuffer(1L, 2L, 3L); + private static final StandardTableDefinition TABLE_DEFINITION = + StandardTableDefinition.newBuilder() + .setLocation(LOCATION) + .setNumBytes(NUM_BYTES) + .setNumRows(NUM_ROWS) + .setStreamingBuffer(STREAMING_BUFFER) + .setSchema(TABLE_SCHEMA) + .build(); + + private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); + private static final Integer MAX_BAD_RECORDS = 42; + private static final Boolean IGNORE_UNKNOWN_VALUES = true; + private static final String COMPRESSION = "GZIP"; + private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder().build(); + private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION = + ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) + .setCompression(COMPRESSION) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .build(); + + private static final String VIEW_QUERY = "VIEW QUERY"; + private static final List USER_DEFINED_FUNCTIONS = + ImmutableList.of(UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")); + private static final ViewDefinition VIEW_DEFINITION = + ViewDefinition.newBuilder(VIEW_QUERY, USER_DEFINED_FUNCTIONS).build(); + + private static final TableInfo TABLE_INFO = + TableInfo.newBuilder(TABLE_ID, TABLE_DEFINITION) + .setCreationTime(CREATION_TIME) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setExpirationTime(EXPIRATION_TIME) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setSelfLink(SELF_LINK) + .setLabels(Collections.singletonMap("a", "b")) + .build(); + private static final TableInfo VIEW_INFO = TableInfo.newBuilder(TABLE_ID, VIEW_DEFINITION) + .setCreationTime(CREATION_TIME) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setExpirationTime(EXPIRATION_TIME) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setSelfLink(SELF_LINK) + .build(); + private static final TableInfo EXTERNAL_TABLE_INFO = + TableInfo.newBuilder(TABLE_ID, EXTERNAL_TABLE_DEFINITION) + .setCreationTime(CREATION_TIME) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setExpirationTime(EXPIRATION_TIME) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setSelfLink(SELF_LINK) + .build(); + + @Test + public void testToBuilder() { + compareTableInfo(TABLE_INFO, TABLE_INFO.toBuilder().build()); + compareTableInfo(VIEW_INFO, VIEW_INFO.toBuilder().build()); + compareTableInfo(EXTERNAL_TABLE_INFO, EXTERNAL_TABLE_INFO.toBuilder().build()); + TableInfo tableInfo = TABLE_INFO.toBuilder() + .setDescription("newDescription") + .build(); + assertEquals("newDescription", tableInfo.getDescription()); + tableInfo = tableInfo.toBuilder() + .setDescription("description") + .build(); + compareTableInfo(TABLE_INFO, tableInfo); + } + + @Test + public void testToBuilderIncomplete() { + TableInfo tableInfo = TableInfo.of(TABLE_ID, TABLE_DEFINITION); + assertEquals(tableInfo, tableInfo.toBuilder().build()); + tableInfo = TableInfo.of(TABLE_ID, VIEW_DEFINITION); + assertEquals(tableInfo, tableInfo.toBuilder().build()); + tableInfo = TableInfo.of(TABLE_ID, EXTERNAL_TABLE_DEFINITION); + assertEquals(tableInfo, tableInfo.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(TABLE_ID, TABLE_INFO.getTableId()); + assertEquals(CREATION_TIME, TABLE_INFO.getCreationTime()); + assertEquals(DESCRIPTION, TABLE_INFO.getDescription()); + assertEquals(ETAG, TABLE_INFO.getEtag()); + assertEquals(EXPIRATION_TIME, TABLE_INFO.getExpirationTime()); + assertEquals(FRIENDLY_NAME, TABLE_INFO.getFriendlyName()); + assertEquals(GENERATED_ID, TABLE_INFO.getGeneratedId()); + assertEquals(LAST_MODIFIED_TIME, TABLE_INFO.getLastModifiedTime()); + assertEquals(TABLE_DEFINITION, TABLE_INFO.getDefinition()); + assertEquals(SELF_LINK, TABLE_INFO.getSelfLink()); + assertEquals(TABLE_ID, VIEW_INFO.getTableId()); + assertEquals(VIEW_DEFINITION, VIEW_INFO.getDefinition()); + assertEquals(CREATION_TIME, VIEW_INFO.getCreationTime()); + assertEquals(DESCRIPTION, VIEW_INFO.getDescription()); + assertEquals(ETAG, VIEW_INFO.getEtag()); + assertEquals(EXPIRATION_TIME, VIEW_INFO.getExpirationTime()); + assertEquals(FRIENDLY_NAME, VIEW_INFO.getFriendlyName()); + assertEquals(GENERATED_ID, VIEW_INFO.getGeneratedId()); + assertEquals(LAST_MODIFIED_TIME, VIEW_INFO.getLastModifiedTime()); + assertEquals(VIEW_DEFINITION, VIEW_INFO.getDefinition()); + assertEquals(SELF_LINK, VIEW_INFO.getSelfLink()); + assertEquals(TABLE_ID, EXTERNAL_TABLE_INFO.getTableId()); + assertEquals(CREATION_TIME, EXTERNAL_TABLE_INFO.getCreationTime()); + assertEquals(DESCRIPTION, EXTERNAL_TABLE_INFO.getDescription()); + assertEquals(ETAG, EXTERNAL_TABLE_INFO.getEtag()); + assertEquals(EXPIRATION_TIME, EXTERNAL_TABLE_INFO.getExpirationTime()); + assertEquals(FRIENDLY_NAME, EXTERNAL_TABLE_INFO.getFriendlyName()); + assertEquals(GENERATED_ID, EXTERNAL_TABLE_INFO.getGeneratedId()); + assertEquals(LAST_MODIFIED_TIME, EXTERNAL_TABLE_INFO.getLastModifiedTime()); + assertEquals(EXTERNAL_TABLE_DEFINITION, EXTERNAL_TABLE_INFO.getDefinition()); + assertEquals(SELF_LINK, EXTERNAL_TABLE_INFO.getSelfLink()); + } + + + @Test + public void testOf() { + TableInfo tableInfo = TableInfo.of(TABLE_ID, TABLE_DEFINITION); + assertEquals(TABLE_ID, tableInfo.getTableId()); + assertNull(tableInfo.getCreationTime()); + assertNull(tableInfo.getDescription()); + assertNull(tableInfo.getEtag()); + assertNull(tableInfo.getExpirationTime()); + assertNull(tableInfo.getFriendlyName()); + assertNull(tableInfo.getGeneratedId()); + assertNull(tableInfo.getLastModifiedTime()); + assertEquals(TABLE_DEFINITION, tableInfo.getDefinition()); + assertNull(tableInfo.getSelfLink()); + tableInfo = TableInfo.of(TABLE_ID, VIEW_DEFINITION); + assertEquals(TABLE_ID, tableInfo.getTableId()); + assertNull(tableInfo.getCreationTime()); + assertNull(tableInfo.getDescription()); + assertNull(tableInfo.getEtag()); + assertNull(tableInfo.getExpirationTime()); + assertNull(tableInfo.getFriendlyName()); + assertNull(tableInfo.getGeneratedId()); + assertNull(tableInfo.getLastModifiedTime()); + assertEquals(VIEW_DEFINITION, tableInfo.getDefinition()); + assertNull(tableInfo.getSelfLink()); + tableInfo = TableInfo.of(TABLE_ID, EXTERNAL_TABLE_DEFINITION); + assertEquals(TABLE_ID, tableInfo.getTableId()); + assertNull(tableInfo.getCreationTime()); + assertNull(tableInfo.getDescription()); + assertNull(tableInfo.getEtag()); + assertNull(tableInfo.getExpirationTime()); + assertNull(tableInfo.getFriendlyName()); + assertNull(tableInfo.getGeneratedId()); + assertNull(tableInfo.getLastModifiedTime()); + assertEquals(EXTERNAL_TABLE_DEFINITION, tableInfo.getDefinition()); + assertNull(tableInfo.getSelfLink()); + } + + @Test + public void testToAndFromPb() { + compareTableInfo(TABLE_INFO, TableInfo.fromPb(TABLE_INFO.toPb())); + compareTableInfo(VIEW_INFO, TableInfo.fromPb(VIEW_INFO.toPb())); + compareTableInfo(EXTERNAL_TABLE_INFO, TableInfo.fromPb(EXTERNAL_TABLE_INFO.toPb())); + } + + @Test + public void testSetProjectId() { + assertEquals("project", TABLE_INFO.setProjectId("project").getTableId().getProject()); + assertEquals("project", EXTERNAL_TABLE_INFO.setProjectId("project").getTableId().getProject()); + assertEquals("project", VIEW_INFO.setProjectId("project").getTableId().getProject()); + } + + private void compareTableInfo(TableInfo expected, TableInfo value) { + assertEquals(expected, value); + assertEquals(expected.getTableId(), value.getTableId()); + assertEquals(expected.getDefinition(), value.getDefinition()); + assertEquals(expected.getCreationTime(), value.getCreationTime()); + assertEquals(expected.getDescription(), value.getDescription()); + assertEquals(expected.getEtag(), value.getEtag()); + assertEquals(expected.getExpirationTime(), value.getExpirationTime()); + assertEquals(expected.getFriendlyName(), value.getFriendlyName()); + assertEquals(expected.getGeneratedId(), value.getGeneratedId()); + assertEquals(expected.getLastModifiedTime(), value.getLastModifiedTime()); + assertEquals(expected.getSelfLink(), value.getSelfLink()); + assertEquals(expected.getLabels(), value.getLabels()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java new file mode 100644 index 000000000000..35a167af12e1 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java @@ -0,0 +1,103 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.cloud.bigquery.FieldValue.Attribute.PRIMITIVE; +import static com.google.common.truth.Truth.assertThat; + +import com.google.api.gax.paging.Page; +import com.google.cloud.PageImpl; +import com.google.common.collect.ImmutableList; +import org.junit.Test; + +public class TableResultTest { + private static final Page INNER_PAGE_0 = + new PageImpl<>( + new PageImpl.NextPageFetcher() { + @Override + public Page getNextPage() { + return INNER_PAGE_1; + } + }, + "abc", + ImmutableList.of(newFieldValueList("0"), newFieldValueList("1"))); + private static final Page INNER_PAGE_1 = + new PageImpl<>( + new PageImpl.NextPageFetcher() { + @Override + public Page getNextPage() { + return null; + } + }, + null, + ImmutableList.of(newFieldValueList("2"))); + private static final Schema SCHEMA = Schema.of(Field.of("field", LegacySQLTypeName.INTEGER)); + + private static FieldValueList newFieldValueList(String s) { + return FieldValueList.of(ImmutableList.of(FieldValue.of(PRIMITIVE, s))); + } + + @Test + public void testNullSchema() { + TableResult result = new TableResult(null, 3, INNER_PAGE_0); + assertThat(result.getSchema()).isNull(); + assertThat(result.hasNextPage()).isTrue(); + assertThat(result.getNextPageToken()).isNotNull(); + assertThat(result.getValues()) + .containsExactly(newFieldValueList("0"), newFieldValueList("1")) + .inOrder(); + + TableResult next = result.getNextPage(); + assertThat(next.getSchema()).isNull(); + assertThat(next.hasNextPage()).isFalse(); + assertThat(next.getNextPageToken()).isNull(); + assertThat(next.getValues()).containsExactly(newFieldValueList("2")); + assertThat(next.getNextPage()).isNull(); + + assertThat(result.iterateAll()) + .containsExactly(newFieldValueList("0"), newFieldValueList("1"), newFieldValueList("2")) + .inOrder(); + } + + @Test + public void testSchema() { + TableResult result = new TableResult(SCHEMA, 3, INNER_PAGE_0); + assertThat(result.getSchema()).isEqualTo(SCHEMA); + assertThat(result.hasNextPage()).isTrue(); + assertThat(result.getNextPageToken()).isNotNull(); + assertThat(result.getValues()) + .containsExactly( + newFieldValueList("0").withSchema(SCHEMA.getFields()), + newFieldValueList("1").withSchema(SCHEMA.getFields())) + .inOrder(); + + TableResult next = result.getNextPage(); + assertThat(next.getSchema()).isEqualTo(SCHEMA); + assertThat(next.hasNextPage()).isFalse(); + assertThat(next.getNextPageToken()).isNull(); + assertThat(next.getValues()) + .containsExactly(newFieldValueList("2").withSchema(SCHEMA.getFields())); + assertThat(next.getNextPage()).isNull(); + + assertThat(result.iterateAll()) + .containsExactly( + newFieldValueList("0").withSchema(SCHEMA.getFields()), + newFieldValueList("1").withSchema(SCHEMA.getFields()), + newFieldValueList("2").withSchema(SCHEMA.getFields())) + .inOrder(); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java new file mode 100644 index 000000000000..0a4baa6d53bd --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java @@ -0,0 +1,417 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.createStrictMock; +import static org.easymock.EasyMock.eq; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + +import com.google.api.gax.paging.Page; +import com.google.cloud.PageImpl; +import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import java.util.List; +import org.junit.After; +import org.junit.Test; + +public class TableTest { + + private static final String ETAG = "etag"; + private static final String GENERATED_ID = "project:dataset:table1"; + private static final String SELF_LINK = "selfLink"; + private static final String FRIENDLY_NAME = "friendlyName"; + private static final String DESCRIPTION = "description"; + private static final Long CREATION_TIME = 10L; + private static final Long EXPIRATION_TIME = 100L; + private static final Long LAST_MODIFIED_TIME = 20L; + private static final TableId TABLE_ID1 = TableId.of("dataset", "table1"); + private static final TableId TABLE_ID2 = TableId.of("dataset", "table2"); + private static final CopyJobConfiguration COPY_JOB_CONFIGURATION = + CopyJobConfiguration.of(TABLE_ID2, TABLE_ID1); + private static final JobInfo COPY_JOB_INFO = JobInfo.of(COPY_JOB_CONFIGURATION); + private static final JobInfo LOAD_JOB_INFO = + JobInfo.of(LoadJobConfiguration.of(TABLE_ID1, ImmutableList.of("URI"), FormatOptions.json())); + private static final JobInfo EXTRACT_JOB_INFO = + JobInfo.of(ExtractJobConfiguration.of(TABLE_ID1, ImmutableList.of("URI"), "CSV")); + private static final Field FIELD = Field.of("FieldName", LegacySQLTypeName.STRING); + private static final Schema SCHEMA = Schema.of(FIELD); + private static final TableDefinition TABLE_DEFINITION = StandardTableDefinition.of(SCHEMA); + private static final TableInfo TABLE_INFO = TableInfo.of(TABLE_ID1, TABLE_DEFINITION); + private static final List ROWS_TO_INSERT = ImmutableList.of( + RowToInsert.of("id1", ImmutableMap.of("key", "val1")), + RowToInsert.of("id2", ImmutableMap.of("key", "val2"))); + private static final InsertAllRequest INSERT_ALL_REQUEST = + InsertAllRequest.of(TABLE_ID1, ROWS_TO_INSERT); + private static final InsertAllRequest INSERT_ALL_REQUEST_COMPLETE = + InsertAllRequest.newBuilder(TABLE_ID1, ROWS_TO_INSERT) + .setSkipInvalidRows(true) + .setIgnoreUnknownValues(true) + .build(); + private static final InsertAllResponse EMPTY_INSERT_ALL_RESPONSE = + new InsertAllResponse(ImmutableMap.>of()); + private static final FieldValue FIELD_VALUE1 = + FieldValue.of(FieldValue.Attribute.PRIMITIVE, "val1"); + private static final FieldValue FIELD_VALUE2 = + FieldValue.of(FieldValue.Attribute.PRIMITIVE, "val1"); + private static final List ROWS = + ImmutableList.of( + FieldValueList.of(ImmutableList.of(FIELD_VALUE1)), + FieldValueList.of(ImmutableList.of(FIELD_VALUE2))); + private static final List ROWS_WITH_SCHEMA = + ImmutableList.of( + FieldValueList.of(ImmutableList.of(FIELD_VALUE1)).withSchema(SCHEMA.getFields()), + FieldValueList.of(ImmutableList.of(FIELD_VALUE2)).withSchema(SCHEMA.getFields())); + private BigQuery serviceMockReturnsOptions = createStrictMock(BigQuery.class); + private BigQueryOptions mockOptions = createMock(BigQueryOptions.class); + private BigQuery bigquery; + private Table expectedTable; + private Table table; + + private void initializeExpectedTable(int optionsCalls) { + expect(serviceMockReturnsOptions.getOptions()).andReturn(mockOptions).times(optionsCalls); + replay(serviceMockReturnsOptions); + bigquery = createStrictMock(BigQuery.class); + expectedTable = new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(TABLE_INFO)); + } + + private void initializeTable() { + table = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO)); + } + + @After + public void tearDown() throws Exception { + verify(bigquery, serviceMockReturnsOptions); + } + + @Test + public void testBuilder() { + initializeExpectedTable(2); + replay(bigquery); + Table builtTable = new Table.Builder(serviceMockReturnsOptions, TABLE_ID1, TABLE_DEFINITION) + .setCreationTime(CREATION_TIME) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setExpirationTime(EXPIRATION_TIME) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setSelfLink(SELF_LINK) + .build(); + assertEquals(TABLE_ID1, builtTable.getTableId()); + assertEquals(CREATION_TIME, builtTable.getCreationTime()); + assertEquals(DESCRIPTION, builtTable.getDescription()); + assertEquals(ETAG, builtTable.getEtag()); + assertEquals(EXPIRATION_TIME, builtTable.getExpirationTime()); + assertEquals(FRIENDLY_NAME, builtTable.getFriendlyName()); + assertEquals(GENERATED_ID, builtTable.getGeneratedId()); + assertEquals(LAST_MODIFIED_TIME, builtTable.getLastModifiedTime()); + assertEquals(TABLE_DEFINITION, builtTable.getDefinition()); + assertEquals(SELF_LINK, builtTable.getSelfLink()); + assertSame(serviceMockReturnsOptions, builtTable.getBigQuery()); + } + + + @Test + public void testToBuilder() { + initializeExpectedTable(4); + replay(bigquery); + compareTable(expectedTable, expectedTable.toBuilder().build()); + } + + @Test + public void testExists_True() throws Exception { + initializeExpectedTable(1); + BigQuery.TableOption[] expectedOptions = {BigQuery.TableOption.fields()}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getTable(TABLE_INFO.getTableId(), expectedOptions)).andReturn(expectedTable); + replay(bigquery); + initializeTable(); + assertTrue(table.exists()); + } + + @Test + public void testExists_False() throws Exception { + initializeExpectedTable(1); + BigQuery.TableOption[] expectedOptions = {BigQuery.TableOption.fields()}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getTable(TABLE_INFO.getTableId(), expectedOptions)).andReturn(null); + replay(bigquery); + initializeTable(); + assertFalse(table.exists()); + } + + @Test + public void testReload() throws Exception { + initializeExpectedTable(4); + TableInfo updatedInfo = TABLE_INFO.toBuilder().setDescription("Description").build(); + Table expectedTable = + new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(updatedInfo)); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getTable(TABLE_INFO.getTableId())).andReturn(expectedTable); + replay(bigquery); + initializeTable(); + Table updatedTable = table.reload(); + compareTable(expectedTable, updatedTable); + } + + @Test + public void testReloadNull() throws Exception { + initializeExpectedTable(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getTable(TABLE_INFO.getTableId())).andReturn(null); + replay(bigquery); + initializeTable(); + assertNull(table.reload()); + } + + @Test + public void testReloadWithOptions() throws Exception { + initializeExpectedTable(4); + TableInfo updatedInfo = TABLE_INFO.toBuilder().setDescription("Description").build(); + Table expectedTable = + new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(updatedInfo)); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getTable(TABLE_INFO.getTableId(), BigQuery.TableOption.fields())) + .andReturn(expectedTable); + replay(bigquery); + initializeTable(); + Table updatedTable = table.reload(BigQuery.TableOption.fields()); + compareTable(expectedTable, updatedTable); + } + + @Test + public void testUpdate() { + initializeExpectedTable(4); + Table expectedUpdatedTable = expectedTable.toBuilder().setDescription("Description").build(); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.update(eq(expectedTable))).andReturn(expectedUpdatedTable); + replay(bigquery); + initializeTable(); + Table actualUpdatedTable = table.update(); + compareTable(expectedUpdatedTable, actualUpdatedTable); + } + + @Test + public void testUpdateWithOptions() { + initializeExpectedTable(4); + Table expectedUpdatedTable = expectedTable.toBuilder().setDescription("Description").build(); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.update(eq(expectedTable), eq(BigQuery.TableOption.fields()))) + .andReturn(expectedUpdatedTable); + replay(bigquery); + initializeTable(); + Table actualUpdatedTable = table.update(BigQuery.TableOption.fields()); + compareTable(expectedUpdatedTable, actualUpdatedTable); + } + + @Test + public void testDeleteTrue() { + initializeExpectedTable(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.delete(TABLE_INFO.getTableId())).andReturn(true); + replay(bigquery); + initializeTable(); + assertTrue(table.delete()); + } + + @Test + public void testDeleteFalse() { + initializeExpectedTable(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.delete(TABLE_INFO.getTableId())).andReturn(false); + replay(bigquery); + initializeTable(); + assertFalse(table.delete()); + } + + @Test + public void testInsert() throws Exception { + initializeExpectedTable(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.insertAll(INSERT_ALL_REQUEST)).andReturn(EMPTY_INSERT_ALL_RESPONSE); + replay(bigquery); + initializeTable(); + InsertAllResponse response = table.insert(ROWS_TO_INSERT); + assertSame(EMPTY_INSERT_ALL_RESPONSE, response); + } + + @Test + public void testInsertComplete() throws Exception { + initializeExpectedTable(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.insertAll(INSERT_ALL_REQUEST_COMPLETE)).andReturn(EMPTY_INSERT_ALL_RESPONSE); + replay(bigquery); + initializeTable(); + InsertAllResponse response = table.insert(ROWS_TO_INSERT, true, true); + assertSame(EMPTY_INSERT_ALL_RESPONSE, response); + } + + @Test + public void testList() throws Exception { + Page page = new PageImpl<>(null, "c", ROWS); + + initializeExpectedTable(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.listTableData(TABLE_ID1)).andReturn(new TableResult(null, ROWS.size(), page)); + expect(bigquery.listTableData(TABLE_ID1, SCHEMA)) + .andReturn(new TableResult(SCHEMA, ROWS.size(), page)); + replay(bigquery); + initializeTable(); + Page dataPage = table.list(); + assertThat(dataPage.getValues()).containsExactlyElementsIn(ROWS).inOrder(); + + dataPage = table.list(SCHEMA); + assertThat(dataPage.getValues()).containsExactlyElementsIn(ROWS_WITH_SCHEMA).inOrder(); + } + + @Test + public void testListWithOptions() throws Exception { + Page page = new PageImpl<>(null, "c", ROWS); + initializeExpectedTable(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.listTableData(TABLE_ID1, BigQuery.TableDataListOption.pageSize(10L))) + .andReturn(new TableResult(null, ROWS.size(), page)); + expect(bigquery.listTableData(TABLE_ID1, SCHEMA, BigQuery.TableDataListOption.pageSize(10L))) + .andReturn(new TableResult(SCHEMA, ROWS.size(), page)); + replay(bigquery); + initializeTable(); + Page dataPage = table.list(BigQuery.TableDataListOption.pageSize(10L)); + assertThat(dataPage.getValues()).containsExactlyElementsIn(ROWS).inOrder(); + + dataPage = table.list(SCHEMA, BigQuery.TableDataListOption.pageSize(10L)); + assertThat(dataPage.getValues()).containsExactlyElementsIn(ROWS_WITH_SCHEMA).inOrder(); + } + + @Test + public void testCopyFromString() throws Exception { + initializeExpectedTable(2); + expect(bigquery.getOptions()).andReturn(mockOptions); + Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(COPY_JOB_INFO)); + expect(bigquery.create(COPY_JOB_INFO)) + .andReturn(expectedJob); + replay(bigquery); + initializeTable(); + Job job = table.copy(TABLE_ID2.getDataset(), TABLE_ID2.getTable()); + assertSame(expectedJob, job); + } + + @Test + public void testCopyFromId() throws Exception { + initializeExpectedTable(2); + expect(bigquery.getOptions()).andReturn(mockOptions); + Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(COPY_JOB_INFO)); + expect(bigquery.create(COPY_JOB_INFO)).andReturn(expectedJob); + replay(bigquery); + initializeTable(); + Job job = table.copy(TABLE_ID2.getDataset(), TABLE_ID2.getTable()); + assertSame(expectedJob, job); + } + + @Test + public void testLoadDataUri() throws Exception { + initializeExpectedTable(2); + expect(bigquery.getOptions()).andReturn(mockOptions); + Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(LOAD_JOB_INFO)); + expect(bigquery.create(LOAD_JOB_INFO)).andReturn(expectedJob); + replay(bigquery); + initializeTable(); + Job job = table.load(FormatOptions.json(), "URI"); + assertSame(expectedJob, job); + } + + @Test + public void testLoadDataUris() throws Exception { + initializeExpectedTable(2); + expect(bigquery.getOptions()).andReturn(mockOptions); + Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(LOAD_JOB_INFO)); + expect(bigquery.create(LOAD_JOB_INFO)).andReturn(expectedJob); + replay(bigquery); + initializeTable(); + Job job = table.load(FormatOptions.json(), ImmutableList.of("URI")); + assertSame(expectedJob, job); + } + + @Test + public void testExtractDataUri() throws Exception { + initializeExpectedTable(2); + expect(bigquery.getOptions()).andReturn(mockOptions); + Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(EXTRACT_JOB_INFO)); + expect(bigquery.create(EXTRACT_JOB_INFO)).andReturn(expectedJob); + replay(bigquery); + initializeTable(); + Job job = table.extract("CSV", "URI"); + assertSame(expectedJob, job); + } + + @Test + public void testExtractDataUris() throws Exception { + initializeExpectedTable(2); + expect(bigquery.getOptions()).andReturn(mockOptions); + Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(EXTRACT_JOB_INFO)); + expect(bigquery.create(EXTRACT_JOB_INFO)).andReturn(expectedJob); + replay(bigquery); + initializeTable(); + Job job = table.extract("CSV", ImmutableList.of("URI")); + assertSame(expectedJob, job); + } + + @Test + public void testBigQuery() { + initializeExpectedTable(1); + replay(bigquery); + assertSame(serviceMockReturnsOptions, expectedTable.getBigQuery()); + } + + @Test + public void testToAndFromPb() { + initializeExpectedTable(4); + replay(bigquery); + compareTable(expectedTable, Table.fromPb(serviceMockReturnsOptions, expectedTable.toPb())); + } + + private void compareTable(Table expected, Table value) { + assertEquals(expected, value); + compareTableInfo(expected, value); + assertEquals(expected.getBigQuery().getOptions(), value.getBigQuery().getOptions()); + } + + private void compareTableInfo(TableInfo expected, TableInfo value) { + assertEquals(expected, value); + assertEquals(expected.getTableId(), value.getTableId()); + assertEquals(expected.getDefinition(), value.getDefinition()); + assertEquals(expected.getCreationTime(), value.getCreationTime()); + assertEquals(expected.getDescription(), value.getDescription()); + assertEquals(expected.getEtag(), value.getEtag()); + assertEquals(expected.getExpirationTime(), value.getExpirationTime()); + assertEquals(expected.getFriendlyName(), value.getFriendlyName()); + assertEquals(expected.getGeneratedId(), value.getGeneratedId()); + assertEquals(expected.getLastModifiedTime(), value.getLastModifiedTime()); + assertEquals(expected.getSelfLink(), value.getSelfLink()); + assertEquals(expected.getDefinition(), value.getDefinition()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java new file mode 100644 index 000000000000..75488afceb27 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java @@ -0,0 +1,97 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import com.google.cloud.bigquery.TimePartitioning.Type; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; + +public class TimePartitioningTest { + + private static final Type TYPE = Type.DAY; + private static final long EXPIRATION_MS = 42; + private static final boolean REQUIRE_PARTITION_FILTER = false; + private static final String FIELD = "field"; + private static final TimePartitioning TIME_PARTITIONING = + TimePartitioning.newBuilder(TYPE) + .setExpirationMs(EXPIRATION_MS) + .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) + .setField(FIELD) + .build(); + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void testOf() { + assertEquals(TYPE, TIME_PARTITIONING.getType()); + assertEquals(EXPIRATION_MS, TIME_PARTITIONING.getExpirationMs().longValue()); + assertEquals(REQUIRE_PARTITION_FILTER, TIME_PARTITIONING.getRequirePartitionFilter()); + assertEquals(FIELD, TIME_PARTITIONING.getField()); + TimePartitioning partitioning = TimePartitioning.of(TYPE); + assertEquals(TYPE, partitioning.getType()); + assertNull(partitioning.getExpirationMs()); + } + + @Test + public void testBuilder() { + TimePartitioning partitioning = TimePartitioning.newBuilder(TYPE).build(); + assertEquals(TYPE, partitioning.getType()); + assertNull(partitioning.getExpirationMs()); + assertNull(partitioning.getRequirePartitionFilter()); + assertNull(partitioning.getField()); + partitioning = TimePartitioning.newBuilder(TYPE).setExpirationMs(100L).build(); + assertEquals(TYPE, partitioning.getType()); + assertEquals(100, (long) partitioning.getExpirationMs()); + assertNull(partitioning.getRequirePartitionFilter()); + assertNull(partitioning.getField()); + } + + @Test + public void testTypeOf_Npe() { + thrown.expect(NullPointerException.class); + TimePartitioning.of(null); + } + + @Test + public void testTypeAndExpirationOf_Npe() { + thrown.expect(NullPointerException.class); + TimePartitioning.of(null, EXPIRATION_MS); + } + + @Test + public void testToAndFromPb() { + compareTimePartitioning(TIME_PARTITIONING, TimePartitioning.fromPb(TIME_PARTITIONING.toPb())); + TimePartitioning partitioning = TimePartitioning.of(TYPE); + compareTimePartitioning(partitioning, TimePartitioning.fromPb(partitioning.toPb())); + } + + private void compareTimePartitioning(TimePartitioning expected, TimePartitioning value) { + assertEquals(expected, value); + assertEquals(expected.getType(), value.getType()); + assertEquals(expected.getExpirationMs(), value.getExpirationMs()); + assertEquals(expected.getRequirePartitionFilter(), value.getRequirePartitionFilter()); + assertEquals(expected.getField(), value.getField()); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java new file mode 100644 index 000000000000..8cf610ef45cd --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java @@ -0,0 +1,54 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class TimelineSampleTest { + + private static final Long ELAPSED_MS = 1001L; + private static final Long ACTIVE_UNITS = 500L; + private static final Long COMPLETED_UNITS = 843L; + private static final Long PENDING_UNITS = 14L; + private static final Long SLOT_MILLIS = 1220012L; + + private static final TimelineSample TIMELINE_SAMPLE = TimelineSample.newBuilder() + .setElapsedMs(ELAPSED_MS) + .setActiveUnits(ACTIVE_UNITS) + .setCompletedUnits(COMPLETED_UNITS) + .setPendingUnits(PENDING_UNITS) + .setSlotMillis(SLOT_MILLIS) + .build(); + + + + @Test + public void testTimelineSampleBuilder() { + assertEquals(ELAPSED_MS, TIMELINE_SAMPLE.getElapsedMs()); + assertEquals(ACTIVE_UNITS, TIMELINE_SAMPLE.getActiveUnits()); + assertEquals(COMPLETED_UNITS, TIMELINE_SAMPLE.getCompletedUnits()); + assertEquals(PENDING_UNITS, TIMELINE_SAMPLE.getPendingUnits()); + assertEquals(SLOT_MILLIS, TIMELINE_SAMPLE.getSlotMillis()); + } + + @Test + public void TestEquals() { + assertEquals(TIMELINE_SAMPLE, TIMELINE_SAMPLE); + } + +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java new file mode 100644 index 000000000000..e0175ff380cd --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java @@ -0,0 +1,57 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class UserDefinedFunctionTest { + + private static final String INLINE = "inline"; + private static final String URI = "uri"; + private static final UserDefinedFunction INLINE_FUNCTION = + new UserDefinedFunction.InlineFunction(INLINE); + private static final UserDefinedFunction URI_FUNCTION = new UserDefinedFunction.UriFunction(URI); + + @Test + public void testConstructor() { + assertEquals(INLINE, INLINE_FUNCTION.getContent()); + assertEquals(UserDefinedFunction.Type.INLINE, INLINE_FUNCTION.getType()); + assertEquals(URI, URI_FUNCTION.getContent()); + assertEquals(UserDefinedFunction.Type.FROM_URI, URI_FUNCTION.getType()); + } + + + @Test + public void testFactoryMethod() { + compareUserDefinedFunction(INLINE_FUNCTION, UserDefinedFunction.inline(INLINE)); + compareUserDefinedFunction(URI_FUNCTION, UserDefinedFunction.fromUri(URI)); + } + + @Test + public void testToAndFromPb() { + compareUserDefinedFunction(INLINE_FUNCTION, UserDefinedFunction.fromPb(INLINE_FUNCTION.toPb())); + compareUserDefinedFunction(URI_FUNCTION, UserDefinedFunction.fromPb(URI_FUNCTION.toPb())); + } + + private void compareUserDefinedFunction(UserDefinedFunction expected, UserDefinedFunction value) { + assertEquals(expected, value); + assertEquals(expected.getType(), value.getType()); + assertEquals(expected.getContent(), value.getContent()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java new file mode 100644 index 000000000000..87c385bb631b --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java @@ -0,0 +1,109 @@ +/* + * Copyright 2016 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import com.google.common.collect.ImmutableList; +import java.util.List; +import org.junit.Test; + +public class ViewDefinitionTest { + + private static final String VIEW_QUERY = "VIEW QUERY"; + private static final List USER_DEFINED_FUNCTIONS = + ImmutableList.of(UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")); + private static final ViewDefinition VIEW_DEFINITION = + ViewDefinition.newBuilder(VIEW_QUERY, USER_DEFINED_FUNCTIONS).build(); + + @Test + public void testToBuilder() { + compareViewDefinition(VIEW_DEFINITION, VIEW_DEFINITION.toBuilder().build()); + ViewDefinition viewDefinition = VIEW_DEFINITION.toBuilder() + .setQuery("NEW QUERY") + .build(); + assertEquals("NEW QUERY", viewDefinition.getQuery()); + viewDefinition = viewDefinition.toBuilder() + .setQuery(VIEW_QUERY) + .build(); + compareViewDefinition(VIEW_DEFINITION, viewDefinition); + + viewDefinition = viewDefinition.toBuilder().setUseLegacySql(true).build(); + assertTrue(viewDefinition.useLegacySql()); + } + + @Test + public void testToBuilderIncomplete() { + TableDefinition viewDefinition = ViewDefinition.of(VIEW_QUERY); + assertEquals(viewDefinition, viewDefinition.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(VIEW_QUERY, VIEW_DEFINITION.getQuery()); + assertEquals(TableDefinition.Type.VIEW, VIEW_DEFINITION.getType()); + assertEquals(USER_DEFINED_FUNCTIONS, VIEW_DEFINITION.getUserDefinedFunctions()); + + ViewDefinition viewDefinition = ViewDefinition.newBuilder(VIEW_QUERY) + .setUserDefinedFunctions(UserDefinedFunction.inline("Function"), + UserDefinedFunction.fromUri("URI")) + .build(); + assertEquals(VIEW_QUERY, viewDefinition.getQuery()); + assertEquals(TableDefinition.Type.VIEW, viewDefinition.getType()); + assertEquals(USER_DEFINED_FUNCTIONS, viewDefinition.getUserDefinedFunctions()); + assertFalse(viewDefinition.useLegacySql()); + + viewDefinition = ViewDefinition.newBuilder(VIEW_QUERY, + UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")).build(); + assertEquals(VIEW_QUERY, viewDefinition.getQuery()); + assertEquals(TableDefinition.Type.VIEW, viewDefinition.getType()); + assertEquals(USER_DEFINED_FUNCTIONS, viewDefinition.getUserDefinedFunctions()); + assertFalse(viewDefinition.useLegacySql()); + + viewDefinition = ViewDefinition.newBuilder(VIEW_QUERY).build(); + assertEquals(VIEW_QUERY, viewDefinition.getQuery()); + assertEquals(TableDefinition.Type.VIEW, viewDefinition.getType()); + assertNull(viewDefinition.getUserDefinedFunctions()); + assertFalse(viewDefinition.useLegacySql()); + + viewDefinition = ViewDefinition.newBuilder(VIEW_QUERY).setUseLegacySql(true).build(); + assertEquals(VIEW_QUERY, viewDefinition.getQuery()); + assertEquals(TableDefinition.Type.VIEW, viewDefinition.getType()); + assertNull(viewDefinition.getUserDefinedFunctions()); + assertTrue(viewDefinition.useLegacySql()); + } + + + @Test + public void testToAndFromPb() { + ViewDefinition viewDefinition = VIEW_DEFINITION.toBuilder().setUseLegacySql(false).build(); + assertTrue(TableDefinition.fromPb(viewDefinition.toPb()) instanceof ViewDefinition); + compareViewDefinition( + viewDefinition, TableDefinition.fromPb(viewDefinition.toPb())); + } + + private void compareViewDefinition(ViewDefinition expected, ViewDefinition value) { + assertEquals(expected, value); + assertEquals(expected.getQuery(), value.getQuery()); + assertEquals(expected.useLegacySql(), value.useLegacySql()); + assertEquals(expected.getUserDefinedFunctions(), value.getUserDefinedFunctions()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java new file mode 100644 index 000000000000..fb0048850ccd --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java @@ -0,0 +1,177 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import com.google.cloud.bigquery.JobInfo.CreateDisposition; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.common.collect.ImmutableList; + +import org.junit.Test; + +import java.nio.charset.StandardCharsets; +import java.util.List; + +public class WriteChannelConfigurationTest { + + private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder() + .setAllowJaggedRows(true) + .setAllowQuotedNewLines(false) + .setEncoding(StandardCharsets.UTF_8) + .build(); + private static final TableId TABLE_ID = TableId.of("dataset", "table"); + private static final CreateDisposition CREATE_DISPOSITION = CreateDisposition.CREATE_IF_NEEDED; + private static final WriteDisposition WRITE_DISPOSITION = WriteDisposition.WRITE_APPEND; + private static final String NULL_MARKER = "\\N"; + private static final Integer MAX_BAD_RECORDS = 42; + private static final String FORMAT = "CSV"; + private static final Boolean IGNORE_UNKNOWN_VALUES = true; + private static final Field FIELD_SCHEMA = + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.REQUIRED) + .setDescription("FieldDescription") + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA); + private static final Boolean AUTODETECT = true; + private static final List SCHEMA_UPDATE_OPTIONS = + ImmutableList.of(JobInfo.SchemaUpdateOption.ALLOW_FIELD_ADDITION); + private static final WriteChannelConfiguration LOAD_CONFIGURATION_CSV = + WriteChannelConfiguration.newBuilder(TABLE_ID) + .setCreateDisposition(CREATE_DISPOSITION) + .setWriteDisposition(WRITE_DISPOSITION) + .setNullMarker(NULL_MARKER) + .setFormatOptions(CSV_OPTIONS) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .setSchema(TABLE_SCHEMA) + .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) + .setAutodetect(AUTODETECT) + .build(); + + private static final DatastoreBackupOptions BACKUP_OPTIONS = DatastoreBackupOptions.newBuilder() + .setProjectionFields(ImmutableList.of("field_1", "field_2")) + .build(); + private static final WriteChannelConfiguration LOAD_CONFIGURATION_BACKUP = + WriteChannelConfiguration.newBuilder(TABLE_ID) + .setCreateDisposition(CREATE_DISPOSITION) + .setWriteDisposition(WRITE_DISPOSITION) + .setFormatOptions(BACKUP_OPTIONS) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .setSchema(TABLE_SCHEMA) + .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) + .setAutodetect(AUTODETECT) + .build(); + + @Test + public void testToBuilder() { + compareLoadConfiguration(LOAD_CONFIGURATION_CSV, LOAD_CONFIGURATION_CSV.toBuilder().build()); + WriteChannelConfiguration configuration = LOAD_CONFIGURATION_CSV.toBuilder() + .setDestinationTable(TableId.of("dataset", "newTable")) + .build(); + assertEquals("newTable", configuration.getDestinationTable().getTable()); + configuration = configuration.toBuilder().setDestinationTable(TABLE_ID).build(); + compareLoadConfiguration(LOAD_CONFIGURATION_CSV, configuration); + } + + @Test + public void testOf() { + WriteChannelConfiguration configuration = WriteChannelConfiguration.of(TABLE_ID); + assertEquals(TABLE_ID, configuration.getDestinationTable()); + configuration = WriteChannelConfiguration.of(TABLE_ID, CSV_OPTIONS); + assertEquals(TABLE_ID, configuration.getDestinationTable()); + assertEquals(FORMAT, configuration.getFormat()); + assertEquals(CSV_OPTIONS, configuration.getCsvOptions()); + } + + @Test + public void testToBuilderIncomplete() { + WriteChannelConfiguration configuration = WriteChannelConfiguration.of(TABLE_ID); + compareLoadConfiguration(configuration, configuration.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(TABLE_ID, LOAD_CONFIGURATION_CSV.getDestinationTable()); + assertEquals(CREATE_DISPOSITION, LOAD_CONFIGURATION_CSV.getCreateDisposition()); + assertEquals(WRITE_DISPOSITION, LOAD_CONFIGURATION_CSV.getWriteDisposition()); + assertEquals(NULL_MARKER, LOAD_CONFIGURATION_CSV.getNullMarker()); + assertEquals(CSV_OPTIONS, LOAD_CONFIGURATION_CSV.getCsvOptions()); + assertEquals(FORMAT, LOAD_CONFIGURATION_CSV.getFormat()); + assertEquals(IGNORE_UNKNOWN_VALUES, LOAD_CONFIGURATION_CSV.ignoreUnknownValues()); + assertEquals(MAX_BAD_RECORDS, LOAD_CONFIGURATION_CSV.getMaxBadRecords()); + assertEquals(TABLE_SCHEMA, LOAD_CONFIGURATION_CSV.getSchema()); + assertEquals(BACKUP_OPTIONS, LOAD_CONFIGURATION_BACKUP.getDatastoreBackupOptions()); + assertEquals(SCHEMA_UPDATE_OPTIONS, LOAD_CONFIGURATION_CSV.getSchemaUpdateOptions()); + assertEquals(SCHEMA_UPDATE_OPTIONS, LOAD_CONFIGURATION_BACKUP.getSchemaUpdateOptions()); + WriteChannelConfiguration.Builder builder = + WriteChannelConfiguration.newBuilder(TABLE_ID, CSV_OPTIONS) + .setCreateDisposition(CREATE_DISPOSITION) + .setWriteDisposition(WRITE_DISPOSITION) + .setNullMarker(NULL_MARKER) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) + .setSchema(TABLE_SCHEMA) + .setAutodetect(AUTODETECT); + WriteChannelConfiguration loadConfigurationCSV = builder.build(); + assertEquals(TABLE_ID, loadConfigurationCSV.getDestinationTable()); + assertEquals(CREATE_DISPOSITION, loadConfigurationCSV.getCreateDisposition()); + assertEquals(WRITE_DISPOSITION, loadConfigurationCSV.getWriteDisposition()); + assertEquals(NULL_MARKER, loadConfigurationCSV.getNullMarker()); + assertEquals(CSV_OPTIONS, loadConfigurationCSV.getCsvOptions()); + assertEquals(FORMAT, loadConfigurationCSV.getFormat()); + assertEquals(IGNORE_UNKNOWN_VALUES, loadConfigurationCSV.ignoreUnknownValues()); + assertEquals(MAX_BAD_RECORDS, loadConfigurationCSV.getMaxBadRecords()); + assertEquals(TABLE_SCHEMA, loadConfigurationCSV.getSchema()); + assertEquals(SCHEMA_UPDATE_OPTIONS, loadConfigurationCSV.getSchemaUpdateOptions()); + assertEquals(AUTODETECT, loadConfigurationCSV.getAutodetect()); + builder.setFormatOptions(BACKUP_OPTIONS); + WriteChannelConfiguration loadConfigurationBackup = builder.build(); + assertEquals(BACKUP_OPTIONS, loadConfigurationBackup.getDatastoreBackupOptions()); + } + + @Test + public void testToPbAndFromPb() { + assertNull(LOAD_CONFIGURATION_CSV.toPb().getLoad().getSourceUris()); + compareLoadConfiguration(LOAD_CONFIGURATION_CSV, + WriteChannelConfiguration.fromPb(LOAD_CONFIGURATION_CSV.toPb())); + WriteChannelConfiguration configuration = WriteChannelConfiguration.of(TABLE_ID); + compareLoadConfiguration(configuration, WriteChannelConfiguration.fromPb(configuration.toPb())); + } + + private void compareLoadConfiguration(WriteChannelConfiguration expected, + WriteChannelConfiguration value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getDestinationTable(), value.getDestinationTable()); + assertEquals(expected.getCreateDisposition(), value.getCreateDisposition()); + assertEquals(expected.getWriteDisposition(), value.getWriteDisposition()); + assertEquals(expected.getNullMarker(), value.getNullMarker()); + assertEquals(expected.getCsvOptions(), value.getCsvOptions()); + assertEquals(expected.getFormat(), value.getFormat()); + assertEquals(expected.ignoreUnknownValues(), value.ignoreUnknownValues()); + assertEquals(expected.getMaxBadRecords(), value.getMaxBadRecords()); + assertEquals(expected.getDatastoreBackupOptions(), value.getDatastoreBackupOptions()); + assertEquals(expected.getSchema(), value.getSchema()); + assertEquals(expected.getSchemaUpdateOptions(), value.getSchemaUpdateOptions()); + assertEquals(expected.getAutodetect(), value.getAutodetect()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java new file mode 100644 index 000000000000..29d4c19ed74e --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -0,0 +1,1318 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.it; + +import static com.google.cloud.bigquery.JobStatus.State.DONE; +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import com.google.api.gax.paging.Page; +import com.google.cloud.RetryOption; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; +import com.google.cloud.bigquery.BigQuery.DatasetField; +import com.google.cloud.bigquery.BigQuery.DatasetOption; +import com.google.cloud.bigquery.BigQuery.JobField; +import com.google.cloud.bigquery.BigQuery.JobListOption; +import com.google.cloud.bigquery.BigQuery.JobOption; +import com.google.cloud.bigquery.BigQuery.TableField; +import com.google.cloud.bigquery.BigQuery.TableOption; +import com.google.cloud.bigquery.BigQueryError; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.CopyJobConfiguration; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.DatasetInfo; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.ExtractJobConfiguration; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.FieldValueList; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.InsertAllRequest; +import com.google.cloud.bigquery.InsertAllResponse; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.JobStatistics; +import com.google.cloud.bigquery.JobStatistics.LoadStatistics; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableDataWriteChannel; +import com.google.cloud.bigquery.TableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.TableResult; +import com.google.cloud.bigquery.TimePartitioning; +import com.google.cloud.bigquery.TimePartitioning.Type; +import com.google.cloud.bigquery.ViewDefinition; +import com.google.cloud.bigquery.WriteChannelConfiguration; +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import com.google.cloud.storage.BlobInfo; +import com.google.cloud.storage.BucketInfo; +import com.google.cloud.storage.Storage; +import com.google.cloud.storage.testing.RemoteStorageHelper; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; +import com.google.common.collect.Sets; +import com.google.common.io.BaseEncoding; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.charset.StandardCharsets; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.Timeout; +import org.threeten.bp.Duration; + +public class ITBigQueryTest { + + private static final byte[] BYTES = {0xD, 0xE, 0xA, 0xD}; + private static final String BYTES_BASE64 = BaseEncoding.base64().encode(BYTES); + private static final Logger LOG = Logger.getLogger(ITBigQueryTest.class.getName()); + private static final String DATASET = RemoteBigQueryHelper.generateDatasetName(); + private static final String DESCRIPTION = "Test dataset"; + private static final String OTHER_DATASET = RemoteBigQueryHelper.generateDatasetName(); + private static final Map LABELS = ImmutableMap.of( + "example-label1", "example-value1", + "example-label2", "example-value2"); + private static final Field TIMESTAMP_FIELD_SCHEMA = + Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .setDescription("TimestampDescription") + .build(); + private static final Field STRING_FIELD_SCHEMA = + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("StringDescription") + .build(); + private static final Field INTEGER_ARRAY_FIELD_SCHEMA = + Field.newBuilder("IntegerArrayField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.REPEATED) + .setDescription("IntegerArrayDescription") + .build(); + private static final Field BOOLEAN_FIELD_SCHEMA = + Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) + .setMode(Field.Mode.NULLABLE) + .setDescription("BooleanDescription") + .build(); + private static final Field BYTES_FIELD_SCHEMA = + Field.newBuilder("BytesField", LegacySQLTypeName.BYTES) + .setMode(Field.Mode.NULLABLE) + .setDescription("BytesDescription") + .build(); + private static final Field RECORD_FIELD_SCHEMA = + Field.newBuilder( + "RecordField", + LegacySQLTypeName.RECORD, + TIMESTAMP_FIELD_SCHEMA, + STRING_FIELD_SCHEMA, + INTEGER_ARRAY_FIELD_SCHEMA, + BOOLEAN_FIELD_SCHEMA, + BYTES_FIELD_SCHEMA) + .setMode(Field.Mode.REQUIRED) + .setDescription("RecordDescription") + .build(); + private static final Field INTEGER_FIELD_SCHEMA = + Field.newBuilder("IntegerField", + LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.NULLABLE) + .setDescription("IntegerDescription") + .build(); + private static final Field FLOAT_FIELD_SCHEMA = + Field.newBuilder("FloatField", LegacySQLTypeName.FLOAT) + .setMode(Field.Mode.NULLABLE) + .setDescription("FloatDescription") + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(TIMESTAMP_FIELD_SCHEMA, STRING_FIELD_SCHEMA, + INTEGER_ARRAY_FIELD_SCHEMA, BOOLEAN_FIELD_SCHEMA, BYTES_FIELD_SCHEMA, RECORD_FIELD_SCHEMA, + INTEGER_FIELD_SCHEMA, FLOAT_FIELD_SCHEMA); + private static final Schema SIMPLE_SCHEMA = Schema.of(STRING_FIELD_SCHEMA); + private static final Schema QUERY_RESULT_SCHEMA = Schema.of( + Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) + .setMode(Field.Mode.NULLABLE) + .build()); + private static final String LOAD_FILE = "load.csv"; + private static final String JSON_LOAD_FILE = "load.json"; + private static final String EXTRACT_FILE = "extract.csv"; + private static final String BUCKET = RemoteStorageHelper.generateBucketName(); + private static final TableId TABLE_ID = TableId.of(DATASET, "testing_table"); + private static final String CSV_CONTENT = "StringValue1\nStringValue2\n"; + private static final String JSON_CONTENT = "{" + + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," + + " \"StringField\": \"stringValue\"," + + " \"IntegerArrayField\": [\"0\", \"1\"]," + + " \"BooleanField\": \"false\"," + + " \"BytesField\": \"" + BYTES_BASE64 + "\"," + + " \"RecordField\": {" + + " \"TimestampField\": \"1969-07-20 20:18:04 UTC\"," + + " \"StringField\": null," + + " \"IntegerArrayField\": [\"1\",\"0\"]," + + " \"BooleanField\": \"true\"," + + " \"BytesField\": \"" + BYTES_BASE64 + "\"" + + " }," + + " \"IntegerField\": \"3\"," + + " \"FloatField\": \"1.2\"" + + "}\n" + + "{" + + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," + + " \"StringField\": \"stringValue\"," + + " \"IntegerArrayField\": [\"0\", \"1\"]," + + " \"BooleanField\": \"false\"," + + " \"BytesField\": \"" + BYTES_BASE64 + "\"," + + " \"RecordField\": {" + + " \"TimestampField\": \"1969-07-20 20:18:04 UTC\"," + + " \"StringField\": null," + + " \"IntegerArrayField\": [\"1\",\"0\"]," + + " \"BooleanField\": \"true\"," + + " \"BytesField\": \"" + BYTES_BASE64 + "\"" + + " }," + + " \"IntegerField\": \"3\"," + + " \"FloatField\": \"1.2\"" + + "}"; + + private static final Set PUBLIC_DATASETS = ImmutableSet.of("github_repos", "hacker_news", + "noaa_gsod", "samples", "usa_names"); + + private static BigQuery bigquery; + private static Storage storage; + + @Rule + public Timeout globalTimeout = Timeout.seconds(300); + + @BeforeClass + public static void beforeClass() throws InterruptedException, TimeoutException { + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); + RemoteStorageHelper storageHelper = RemoteStorageHelper.create(); + bigquery = bigqueryHelper.getOptions().getService(); + storage = storageHelper.getOptions().getService(); + storage.create(BucketInfo.of(BUCKET)); + storage.create(BlobInfo.newBuilder(BUCKET, LOAD_FILE).setContentType("text/plain").build(), + CSV_CONTENT.getBytes(StandardCharsets.UTF_8)); + storage.create(BlobInfo.newBuilder(BUCKET, JSON_LOAD_FILE) + .setContentType("application/json") + .build(), + JSON_CONTENT.getBytes(StandardCharsets.UTF_8)); + DatasetInfo info = DatasetInfo.newBuilder(DATASET) + .setDescription(DESCRIPTION) + .setLabels(LABELS) + .build(); + bigquery.create(info); + LoadJobConfiguration configuration = LoadJobConfiguration.newBuilder( + TABLE_ID, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(TABLE_SCHEMA) + .build(); + Job job = bigquery.create(JobInfo.of(configuration)); + job = job.waitFor(); + assertNull(job.getStatus().getError()); + } + + @AfterClass + public static void afterClass() throws ExecutionException, InterruptedException { + if (bigquery != null) { + RemoteBigQueryHelper.forceDelete(bigquery, DATASET); + } + if (storage != null) { + boolean wasDeleted = RemoteStorageHelper.forceDelete(storage, BUCKET, 10, TimeUnit.SECONDS); + if (!wasDeleted && LOG.isLoggable(Level.WARNING)) { + LOG.log(Level.WARNING, "Deletion of bucket {0} timed out, bucket is not empty", BUCKET); + } + } + } + + @Test + public void testListDatasets() { + Page datasets = bigquery.listDatasets("bigquery-public-data"); + Iterator iterator = datasets.iterateAll().iterator(); + Set datasetNames = new HashSet<>(); + while (iterator.hasNext()) { + datasetNames.add(iterator.next().getDatasetId().getDataset()); + } + for (String type : PUBLIC_DATASETS) { + assertTrue(datasetNames.contains(type)); + } + } + + @Test + public void testGetDataset() { + Dataset dataset = bigquery.getDataset(DATASET); + assertEquals(bigquery.getOptions().getProjectId(), dataset.getDatasetId().getProject()); + assertEquals(DATASET, dataset.getDatasetId().getDataset()); + assertEquals(DESCRIPTION, dataset.getDescription()); + assertEquals(LABELS, dataset.getLabels()); + assertNotNull(dataset.getAcl()); + assertNotNull(dataset.getEtag()); + assertNotNull(dataset.getGeneratedId()); + assertNotNull(dataset.getLastModified()); + assertNotNull(dataset.getSelfLink()); + } + + @Test + public void testGetDatasetWithSelectedFields() { + Dataset dataset = bigquery.getDataset(DATASET, + DatasetOption.fields(DatasetField.CREATION_TIME, DatasetField.LABELS)); + assertEquals(bigquery.getOptions().getProjectId(), dataset.getDatasetId().getProject()); + assertEquals(DATASET, dataset.getDatasetId().getDataset()); + assertEquals(LABELS, dataset.getLabels()); + assertNotNull(dataset.getCreationTime()); + assertNull(dataset.getDescription()); + assertNull(dataset.getDefaultTableLifetime()); + assertNull(dataset.getAcl()); + assertNull(dataset.getEtag()); + assertNull(dataset.getFriendlyName()); + assertNull(dataset.getGeneratedId()); + assertNull(dataset.getLastModified()); + assertNull(dataset.getLocation()); + assertNull(dataset.getSelfLink()); + } + + @Test + public void testUpdateDataset() { + Dataset dataset = + bigquery.create( + DatasetInfo.newBuilder(OTHER_DATASET) + .setDescription("Some Description") + .setLabels(Collections.singletonMap("a", "b")) + .build()); + assertThat(dataset).isNotNull(); + assertThat(dataset.getDatasetId().getProject()).isEqualTo(bigquery.getOptions().getProjectId()); + assertThat(dataset.getDatasetId().getDataset()).isEqualTo(OTHER_DATASET); + assertThat(dataset.getDescription()).isEqualTo("Some Description"); + assertThat(dataset.getLabels()).containsExactly("a", "b"); + + Map updateLabels = new HashMap<>(); + updateLabels.put("x", "y"); + updateLabels.put("a", null); + Dataset updatedDataset = + bigquery.update( + dataset + .toBuilder() + .setDescription("Updated Description") + .setLabels(updateLabels) + .build()); + assertThat(updatedDataset.getDescription()).isEqualTo("Updated Description"); + assertThat(updatedDataset.getLabels()).containsExactly("x", "y"); + + updatedDataset = bigquery.update(updatedDataset.toBuilder().setLabels(null).build()); + assertThat(updatedDataset.getLabels()).isEmpty(); + assertThat(dataset.delete()).isTrue(); + } + + @Test + public void testUpdateDatasetWithSelectedFields() { + Dataset dataset = bigquery.create(DatasetInfo.newBuilder(OTHER_DATASET) + .setDescription("Some Description") + .build()); + assertNotNull(dataset); + assertEquals(bigquery.getOptions().getProjectId(), dataset.getDatasetId().getProject()); + assertEquals(OTHER_DATASET, dataset.getDatasetId().getDataset()); + assertEquals("Some Description", dataset.getDescription()); + Dataset updatedDataset = + bigquery.update(dataset.toBuilder().setDescription("Updated Description").build(), + DatasetOption.fields(DatasetField.DESCRIPTION)); + assertEquals("Updated Description", updatedDataset.getDescription()); + assertNull(updatedDataset.getCreationTime()); + assertNull(updatedDataset.getDefaultTableLifetime()); + assertNull(updatedDataset.getAcl()); + assertNull(updatedDataset.getEtag()); + assertNull(updatedDataset.getFriendlyName()); + assertNull(updatedDataset.getGeneratedId()); + assertNull(updatedDataset.getLastModified()); + assertNull(updatedDataset.getLocation()); + assertNull(updatedDataset.getSelfLink()); + assertTrue(dataset.delete()); + } + + @Test + public void testGetNonExistingTable() { + assertNull(bigquery.getTable(DATASET, "test_get_non_existing_table")); + } + + @Test + public void testCreateAndGetTable() { + String tableName = "test_create_and_get_table"; + TableId tableId = TableId.of(DATASET, tableName); + TimePartitioning partitioning = TimePartitioning.of(Type.DAY); + StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setTimePartitioning(partitioning) + .build(); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertNotNull(remoteTable); + assertTrue(remoteTable.getDefinition() instanceof StandardTableDefinition); + assertEquals(createdTable.getTableId(), remoteTable.getTableId()); + assertEquals(TableDefinition.Type.TABLE, remoteTable.getDefinition().getType()); + assertEquals(TABLE_SCHEMA, remoteTable.getDefinition().getSchema()); + assertNotNull(remoteTable.getCreationTime()); + assertNotNull(remoteTable.getLastModifiedTime()); + assertNotNull(remoteTable.getDefinition().getNumBytes()); + assertNotNull(remoteTable.getDefinition().getNumRows()); + assertEquals(partitioning, + remoteTable.getDefinition().getTimePartitioning()); + assertTrue(remoteTable.delete()); + } + + @Test + public void testCreateAndGetTableWithSelectedField() { + String tableName = "test_create_and_get_selected_fields_table"; + TableId tableId = TableId.of(DATASET, tableName); + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + Table remoteTable = bigquery.getTable(DATASET, tableName, + TableOption.fields(TableField.CREATION_TIME)); + assertNotNull(remoteTable); + assertTrue(remoteTable.getDefinition() instanceof StandardTableDefinition); + assertEquals(createdTable.getTableId(), remoteTable.getTableId()); + assertEquals(TableDefinition.Type.TABLE, remoteTable.getDefinition().getType()); + assertNotNull(remoteTable.getCreationTime()); + assertNull(remoteTable.getDefinition().getSchema()); + assertNull(remoteTable.getLastModifiedTime()); + assertNull(remoteTable.getDefinition().getNumBytes()); + assertNull(remoteTable.getDefinition().getNumRows()); + assertNull(remoteTable.getDefinition().getTimePartitioning()); + assertTrue(remoteTable.delete()); + } + + @Test + public void testCreateExternalTable() throws InterruptedException { + String tableName = "test_create_external_table"; + TableId tableId = TableId.of(DATASET, tableName); + ExternalTableDefinition externalTableDefinition = ExternalTableDefinition.of( + "gs://" + BUCKET + "/" + JSON_LOAD_FILE, TABLE_SCHEMA, FormatOptions.json()); + TableInfo tableInfo = TableInfo.of(tableId, externalTableDefinition); + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertNotNull(remoteTable); + assertTrue(remoteTable.getDefinition() instanceof ExternalTableDefinition); + assertEquals(createdTable.getTableId(), remoteTable.getTableId()); + assertEquals(TABLE_SCHEMA, remoteTable.getDefinition().getSchema()); + QueryJobConfiguration config = QueryJobConfiguration.newBuilder( + "SELECT TimestampField, StringField, IntegerArrayField, BooleanField FROM " + DATASET + "." + + tableName) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(true) + .build(); + TableResult result = bigquery.query(config); + long integerValue = 0; + int rowCount = 0; + for (FieldValueList row : result.getValues()) { + FieldValue timestampCell = row.get(0); + assertEquals(timestampCell, row.get("TimestampField")); + FieldValue stringCell = row.get(1); + assertEquals(stringCell, row.get("StringField")); + FieldValue integerCell = row.get(2); + assertEquals(integerCell, row.get("IntegerArrayField")); + FieldValue booleanCell = row.get(3); + assertEquals(booleanCell, row.get("BooleanField")); + + assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, integerCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); + assertEquals(1408452095220000L, timestampCell.getTimestampValue()); + assertEquals("stringValue", stringCell.getStringValue()); + assertEquals(integerValue, integerCell.getLongValue()); + assertEquals(false, booleanCell.getBooleanValue()); + integerValue = ~integerValue & 0x1; + rowCount++; + } + assertEquals(4, rowCount); + assertTrue(remoteTable.delete()); + } + + @Test + public void testCreateViewTable() throws InterruptedException { + String tableName = "test_create_view_table"; + TableId tableId = TableId.of(DATASET, tableName); + ViewDefinition viewDefinition = + ViewDefinition.newBuilder( + String.format( + "SELECT TimestampField, StringField, BooleanField FROM %s.%s", + DATASET, TABLE_ID.getTable())) + .setUseLegacySql(true) + .build(); + TableInfo tableInfo = TableInfo.of(tableId, viewDefinition); + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertNotNull(remoteTable); + assertEquals(createdTable.getTableId(), remoteTable.getTableId()); + assertTrue(remoteTable.getDefinition() instanceof ViewDefinition); + Schema expectedSchema = Schema.of( + Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) + .setMode(Field.Mode.NULLABLE) + .build()); + assertEquals(expectedSchema, remoteTable.getDefinition().getSchema()); + QueryJobConfiguration config = QueryJobConfiguration.newBuilder("SELECT * FROM " + tableName) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(true) + .build(); + TableResult result = bigquery.query(config); + int rowCount = 0; + for (FieldValueList row : result.getValues()) { + FieldValue timestampCell = row.get(0); + assertEquals(timestampCell, row.get("TimestampField")); + FieldValue stringCell = row.get(1); + assertEquals(stringCell, row.get("StringField")); + FieldValue booleanCell = row.get(2); + assertEquals(booleanCell, row.get("BooleanField")); + assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); + assertEquals(1408452095220000L, timestampCell.getTimestampValue()); + assertEquals("stringValue", stringCell.getStringValue()); + assertEquals(false, booleanCell.getBooleanValue()); + rowCount++; + } + assertEquals(2, rowCount); + assertTrue(remoteTable.delete()); + } + + @Test + public void testListTables() { + String tableName = "test_list_tables"; + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + Page
tables = bigquery.listTables(DATASET); + boolean found = false; + Iterator
tableIterator = tables.getValues().iterator(); + while (tableIterator.hasNext() && !found) { + if (tableIterator.next().getTableId().equals(createdTable.getTableId())) { + found = true; + } + } + assertTrue(found); + assertTrue(createdTable.delete()); + } + + @Test + public void testUpdateTable() { + String tableName = "test_update_table"; + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + TableInfo tableInfo = + TableInfo.newBuilder(TableId.of(DATASET, tableName), tableDefinition) + .setDescription("Some Description") + .setLabels(Collections.singletonMap("a", "b")) + .build(); + Table createdTable = bigquery.create(tableInfo); + assertThat(createdTable.getDescription()).isEqualTo("Some Description"); + assertThat(createdTable.getLabels()).containsExactly("a", "b"); + + Map updateLabels = new HashMap<>(); + updateLabels.put("x", "y"); + updateLabels.put("a", null); + Table updatedTable = + bigquery.update( + createdTable + .toBuilder() + .setDescription("Updated Description") + .setLabels(updateLabels) + .build()); + assertThat(updatedTable.getDescription()).isEqualTo("Updated Description"); + assertThat(updatedTable.getLabels()).containsExactly("x", "y"); + + updatedTable = bigquery.update(updatedTable.toBuilder().setLabels(null).build()); + assertThat(updatedTable.getLabels()).isEmpty(); + assertThat(createdTable.delete()).isTrue(); + } + + @Test + public void testUpdateTableWithSelectedFields() { + String tableName = "test_update_with_selected_fields_table"; + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + Table updatedTable = bigquery.update(tableInfo.toBuilder().setDescription("newDescr").build(), + TableOption.fields(TableField.DESCRIPTION)); + assertTrue(updatedTable.getDefinition() instanceof StandardTableDefinition); + assertEquals(DATASET, updatedTable.getTableId().getDataset()); + assertEquals(tableName, updatedTable.getTableId().getTable()); + assertEquals("newDescr", updatedTable.getDescription()); + assertNull(updatedTable.getDefinition().getSchema()); + assertNull(updatedTable.getLastModifiedTime()); + assertNull(updatedTable.getDefinition().getNumBytes()); + assertNull(updatedTable.getDefinition().getNumRows()); + assertTrue(createdTable.delete()); + } + + @Test + public void testUpdateNonExistingTable() { + TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, "test_update_non_existing_table"), + StandardTableDefinition.of(SIMPLE_SCHEMA)); + try { + bigquery.update(tableInfo); + fail("BigQueryException was expected"); + } catch (BigQueryException e) { + BigQueryError error = e.getError(); + assertNotNull(error); + assertEquals("notFound", error.getReason()); + assertNotNull(error.getMessage()); + } + } + + @Test + public void testDeleteNonExistingTable() { + assertFalse(bigquery.delete(DATASET, "test_delete_non_existing_table")); + } + + @Test + public void testInsertAll() throws IOException { + String tableName = "test_insert_all_table"; + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); + assertNotNull(bigquery.create(tableInfo)); + ImmutableMap.Builder builder1 = ImmutableMap.builder(); + builder1.put("TimestampField", "2014-08-19 07:41:35.220 -05:00"); + builder1.put("StringField", "stringValue"); + builder1.put("IntegerArrayField", ImmutableList.of(0, 1)); + builder1.put("BooleanField", false); + builder1.put("BytesField", BYTES_BASE64); + builder1.put("RecordField", ImmutableMap.of( + "TimestampField", "1969-07-20 20:18:04 UTC", + "IntegerArrayField", ImmutableList.of(1, 0), + "BooleanField", true, + "BytesField", BYTES_BASE64)); + builder1.put("IntegerField", 5); + builder1.put("FloatField", 1.2); + ImmutableMap.Builder builder2 = ImmutableMap.builder(); + builder2.put("TimestampField", "2014-08-19 07:41:35.220 -05:00"); + builder2.put("StringField", "stringValue"); + builder2.put("IntegerArrayField", ImmutableList.of(0, 1)); + builder2.put("BooleanField", false); + builder2.put("BytesField", BYTES_BASE64); + builder2.put("RecordField", ImmutableMap.of( + "TimestampField", "1969-07-20 20:18:04 UTC", + "IntegerArrayField", ImmutableList.of(1, 0), + "BooleanField", true, + "BytesField", BYTES_BASE64)); + builder2.put("IntegerField", 5); + builder2.put("FloatField", 1.2); + InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()) + .addRow(builder1.build()) + .addRow(builder2.build()) + .build(); + InsertAllResponse response = bigquery.insertAll(request); + assertFalse(response.hasErrors()); + assertEquals(0, response.getInsertErrors().size()); + assertTrue(bigquery.delete(TableId.of(DATASET, tableName))); + } + + @Test + public void testInsertAllWithSuffix() throws InterruptedException { + String tableName = "test_insert_all_with_suffix_table"; + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); + assertNotNull(bigquery.create(tableInfo)); + ImmutableMap.Builder builder1 = ImmutableMap.builder(); + builder1.put("TimestampField", "2014-08-19 07:41:35.220 -05:00"); + builder1.put("StringField", "stringValue"); + builder1.put("IntegerArrayField", ImmutableList.of(0, 1)); + builder1.put("BooleanField", false); + builder1.put("BytesField", BYTES_BASE64); + builder1.put("RecordField", ImmutableMap.of( + "TimestampField", "1969-07-20 20:18:04 UTC", + "IntegerArrayField", ImmutableList.of(1, 0), + "BooleanField", true, + "BytesField", BYTES_BASE64)); + builder1.put("IntegerField", 5); + builder1.put("FloatField", 1.2); + ImmutableMap.Builder builder2 = ImmutableMap.builder(); + builder2.put("TimestampField", "2014-08-19 07:41:35.220 -05:00"); + builder2.put("StringField", "stringValue"); + builder2.put("IntegerArrayField", ImmutableList.of(0, 1)); + builder2.put("BooleanField", false); + builder2.put("BytesField", BYTES_BASE64); + builder2.put("RecordField", ImmutableMap.of( + "TimestampField", "1969-07-20 20:18:04 UTC", + "IntegerArrayField", ImmutableList.of(1, 0), + "BooleanField", true, + "BytesField", BYTES_BASE64)); + builder2.put("IntegerField", 5); + builder2.put("FloatField", 1.2); + InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()) + .addRow(builder1.build()) + .addRow(builder2.build()) + .setTemplateSuffix("_suffix") + .build(); + InsertAllResponse response = bigquery.insertAll(request); + assertFalse(response.hasErrors()); + assertEquals(0, response.getInsertErrors().size()); + String newTableName = tableName + "_suffix"; + Table suffixTable = bigquery.getTable(DATASET, newTableName, TableOption.fields()); + // wait until the new table is created. If the table is never created the test will time-out + while (suffixTable == null) { + Thread.sleep(1000L); + suffixTable = bigquery.getTable(DATASET, newTableName, TableOption.fields()); + } + assertTrue(bigquery.delete(TableId.of(DATASET, tableName))); + assertTrue(suffixTable.delete()); + } + + @Test + public void testInsertAllWithErrors() { + String tableName = "test_insert_all_with_errors_table"; + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); + assertNotNull(bigquery.create(tableInfo)); + ImmutableMap.Builder builder1 = ImmutableMap.builder(); + builder1.put("TimestampField", "2014-08-19 07:41:35.220 -05:00"); + builder1.put("StringField", "stringValue"); + builder1.put("IntegerArrayField", ImmutableList.of(0, 1)); + builder1.put("BooleanField", false); + builder1.put("BytesField", BYTES_BASE64); + builder1.put("RecordField", ImmutableMap.of( + "TimestampField", "1969-07-20 20:18:04 UTC", + "IntegerArrayField", ImmutableList.of(1, 0), + "BooleanField", true, + "BytesField", BYTES_BASE64)); + builder1.put("IntegerField", 5); + builder1.put("FloatField", 1.2); + ImmutableMap.Builder builder2 = ImmutableMap.builder(); + builder2.put("TimestampField", "invalidDate"); + builder2.put("StringField", "stringValue"); + builder2.put("IntegerArrayField", ImmutableList.of(0, 1)); + builder2.put("BooleanField", false); + builder2.put("BytesField", BYTES_BASE64); + builder2.put("RecordField", ImmutableMap.of( + "TimestampField", "1969-07-20 20:18:04 UTC", + "IntegerArrayField", ImmutableList.of(1, 0), + "BooleanField", true, + "BytesField", BYTES_BASE64)); + builder2.put("IntegerField", 5); + builder2.put("FloatField", 1.2); + ImmutableMap.Builder builder3 = ImmutableMap.builder(); + builder3.put("TimestampField", "2014-08-19 07:41:35.220 -05:00"); + builder3.put("StringField", "stringValue"); + builder3.put("IntegerArrayField", ImmutableList.of(0, 1)); + builder3.put("BooleanField", false); + builder3.put("BytesField", BYTES_BASE64); + InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()) + .addRow(builder1.build()) + .addRow(builder2.build()) + .addRow(builder3.build()) + .setSkipInvalidRows(true) + .build(); + InsertAllResponse response = bigquery.insertAll(request); + assertTrue(response.hasErrors()); + assertEquals(2, response.getInsertErrors().size()); + assertNotNull(response.getErrorsFor(1L)); + assertNotNull(response.getErrorsFor(2L)); + assertTrue(bigquery.delete(TableId.of(DATASET, tableName))); + } + + @Test + public void testListAllTableData() { + Page rows = bigquery.listTableData(TABLE_ID); + int rowCount = 0; + for (FieldValueList row : rows.getValues()) { + FieldValue timestampCell = row.get(0); + FieldValue stringCell = row.get(1); + FieldValue integerArrayCell = row.get(2); + FieldValue booleanCell = row.get(3); + FieldValue bytesCell = row.get(4); + FieldValue recordCell = row.get(5); + FieldValue integerCell = row.get(6); + FieldValue floatCell = row.get(7); + assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); + assertEquals(FieldValue.Attribute.REPEATED, integerArrayCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, bytesCell.getAttribute()); + assertEquals(FieldValue.Attribute.RECORD, recordCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, integerCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, floatCell.getAttribute()); + assertEquals(1408452095220000L, timestampCell.getTimestampValue()); + assertEquals("stringValue", stringCell.getStringValue()); + assertEquals(0, integerArrayCell.getRepeatedValue().get(0).getLongValue()); + assertEquals(1, integerArrayCell.getRepeatedValue().get(1).getLongValue()); + assertEquals(false, booleanCell.getBooleanValue()); + assertArrayEquals(BYTES, bytesCell.getBytesValue()); + assertEquals(-14182916000000L, recordCell.getRecordValue().get(0).getTimestampValue()); + assertTrue(recordCell.getRecordValue().get(1).isNull()); + assertEquals(1, recordCell.getRecordValue().get(2).getRepeatedValue().get(0).getLongValue()); + assertEquals(0, recordCell.getRecordValue().get(2).getRepeatedValue().get(1).getLongValue()); + assertEquals(true, recordCell.getRecordValue().get(3).getBooleanValue()); + assertEquals(3, integerCell.getLongValue()); + assertEquals(1.2, floatCell.getDoubleValue(), 0.0001); + rowCount++; + } + assertEquals(2, rowCount); + } + + @Test + public void testQuery() throws InterruptedException { + String query = "SELECT TimestampField, StringField, BooleanField FROM " + + TABLE_ID.getTable(); + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .build(); + Job job = bigquery.create(JobInfo.of(JobId.of(), config)); + + TableResult result = job.getQueryResults(); + assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); + int rowCount = 0; + for (FieldValueList row : result.getValues()) { + FieldValue timestampCell = row.get(0); + assertEquals(timestampCell, row.get("TimestampField")); + FieldValue stringCell = row.get(1); + assertEquals(stringCell, row.get("StringField")); + FieldValue booleanCell = row.get(2); + assertEquals(booleanCell, row.get("BooleanField")); + assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); + assertEquals(1408452095220000L, timestampCell.getTimestampValue()); + assertEquals("stringValue", stringCell.getStringValue()); + assertEquals(false, booleanCell.getBooleanValue()); + rowCount++; + } + assertEquals(2, rowCount); + + Job job2 = bigquery.getJob(job.getJobId()); + JobStatistics.QueryStatistics statistics = job2.getStatistics(); + assertNotNull(statistics.getQueryPlan()); + } + + @Test + public void testPositionalQueryParameters() throws InterruptedException { + String query = "SELECT TimestampField, StringField, BooleanField FROM " + + TABLE_ID.getTable() + + " WHERE StringField = ?" + + " AND TimestampField > ?" + + " AND IntegerField IN UNNEST(?)" + + " AND IntegerField < ?" + + " AND FloatField > ?"; + QueryParameterValue stringParameter = QueryParameterValue.string("stringValue"); + QueryParameterValue timestampParameter = + QueryParameterValue.timestamp("2014-01-01 07:00:00.000000+00:00"); + QueryParameterValue intArrayParameter = + QueryParameterValue.array(new Integer[] {3, 4}, Integer.class); + QueryParameterValue int64Parameter = QueryParameterValue.int64(5); + QueryParameterValue float64Parameter = QueryParameterValue.float64(0.5); + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addPositionalParameter(stringParameter) + .addPositionalParameter(timestampParameter) + .addPositionalParameter(intArrayParameter) + .addPositionalParameter(int64Parameter) + .addPositionalParameter(float64Parameter) + .build(); + TableResult result = bigquery.query(config); + assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); + assertEquals(2, Iterables.size(result.getValues())); + } + + @Test + public void testNamedQueryParameters() throws InterruptedException { + String query = "SELECT TimestampField, StringField, BooleanField FROM " + + TABLE_ID.getTable() + + " WHERE StringField = @stringParam" + + " AND IntegerField IN UNNEST(@integerList)"; + QueryParameterValue stringParameter = QueryParameterValue.string("stringValue"); + QueryParameterValue intArrayParameter = + QueryParameterValue.array(new Integer[]{3, 4}, Integer.class); + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addNamedParameter("stringParam", stringParameter) + .addNamedParameter("integerList", intArrayParameter) + .build(); + TableResult result = bigquery.query(config); + assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); + assertEquals(2, Iterables.size(result.getValues())); + } + + @Test + public void testBytesParameter() throws Exception { + String query = "SELECT BYTE_LENGTH(@p) AS length"; + QueryParameterValue bytesParameter = QueryParameterValue.bytes(new byte[] { 1, 3 }); + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addNamedParameter("p", bytesParameter) + .build(); + TableResult result = bigquery.query(config); + int rowCount = 0; + for (FieldValueList row : result.getValues()) { + rowCount++; + assertEquals(2, row.get(0).getLongValue()); + assertEquals(2, row.get("length").getLongValue()); + } + assertEquals(1, rowCount); + } + + @Test + public void testListJobs() { + Page jobs = bigquery.listJobs(); + for (Job job : jobs.getValues()) { + assertNotNull(job.getJobId()); + assertNotNull(job.getStatistics()); + assertNotNull(job.getStatus()); + assertNotNull(job.getUserEmail()); + assertNotNull(job.getGeneratedId()); + } + } + + @Test + public void testListJobsWithSelectedFields() { + Page jobs = bigquery.listJobs(JobListOption.fields(JobField.USER_EMAIL)); + for (Job job : jobs.getValues()) { + assertNotNull(job.getJobId()); + assertNotNull(job.getStatus()); + assertNotNull(job.getUserEmail()); + assertNull(job.getStatistics()); + assertNull(job.getGeneratedId()); + } + } + + @Test + public void testCreateAndGetJob() throws InterruptedException, TimeoutException { + String sourceTableName = "test_create_and_get_job_source_table"; + String destinationTableName = "test_create_and_get_job_destination_table"; + TableId sourceTable = TableId.of(DATASET, sourceTableName); + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + TableInfo tableInfo = TableInfo.of(sourceTable, tableDefinition); + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(sourceTableName, createdTable.getTableId().getTable()); + TableId destinationTable = TableId.of(DATASET, destinationTableName); + CopyJobConfiguration copyJobConfiguration = + CopyJobConfiguration.of(destinationTable, sourceTable); + Job createdJob = bigquery.create(JobInfo.of(copyJobConfiguration)); + Job remoteJob = bigquery.getJob(createdJob.getJobId()); + assertEquals(createdJob.getJobId(), remoteJob.getJobId()); + CopyJobConfiguration createdConfiguration = createdJob.getConfiguration(); + CopyJobConfiguration remoteConfiguration = remoteJob.getConfiguration(); + assertEquals(createdConfiguration.getSourceTables(), remoteConfiguration.getSourceTables()); + assertEquals(createdConfiguration.getDestinationTable(), + remoteConfiguration.getDestinationTable()); + assertEquals(createdConfiguration.getCreateDisposition(), + remoteConfiguration.getCreateDisposition()); + assertEquals(createdConfiguration.getWriteDisposition(), + remoteConfiguration.getWriteDisposition()); + assertNotNull(remoteJob.getEtag()); + assertNotNull(remoteJob.getStatistics()); + assertNotNull(remoteJob.getStatus()); + assertEquals(createdJob.getSelfLink(), remoteJob.getSelfLink()); + assertEquals(createdJob.getUserEmail(), remoteJob.getUserEmail()); + assertTrue(createdTable.delete()); + + Job completedJob = + remoteJob.waitFor(RetryOption.totalTimeout(Duration.ofMinutes(1))); + + assertNotNull(completedJob); + assertNull(completedJob.getStatus().getError()); + assertTrue(bigquery.delete(DATASET, destinationTableName)); + } + + @Test + public void testCreateAndGetJobWithSelectedFields() throws InterruptedException, TimeoutException { + String sourceTableName = "test_create_and_get_job_with_selected_fields_source_table"; + String destinationTableName = "test_create_and_get_job_with_selected_fields_destination_table"; + TableId sourceTable = TableId.of(DATASET, sourceTableName); + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + TableInfo tableInfo = TableInfo.of(sourceTable, tableDefinition); + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(sourceTableName, createdTable.getTableId().getTable()); + TableId destinationTable = TableId.of(DATASET, destinationTableName); + CopyJobConfiguration configuration = CopyJobConfiguration.of(destinationTable, sourceTable); + Job createdJob = bigquery.create(JobInfo.of(configuration), JobOption.fields(JobField.ETAG)); + CopyJobConfiguration createdConfiguration = createdJob.getConfiguration(); + assertNotNull(createdJob.getJobId()); + assertNotNull(createdConfiguration.getSourceTables()); + assertNotNull(createdConfiguration.getDestinationTable()); + assertNotNull(createdJob.getEtag()); + assertNull(createdJob.getStatistics()); + assertNull(createdJob.getStatus()); + assertNull(createdJob.getSelfLink()); + assertNull(createdJob.getUserEmail()); + Job remoteJob = bigquery.getJob(createdJob.getJobId(), JobOption.fields(JobField.ETAG)); + CopyJobConfiguration remoteConfiguration = remoteJob.getConfiguration(); + assertEquals(createdJob.getJobId(), remoteJob.getJobId()); + assertEquals(createdConfiguration.getSourceTables(), remoteConfiguration.getSourceTables()); + assertEquals(createdConfiguration.getDestinationTable(), + remoteConfiguration.getDestinationTable()); + assertEquals(createdConfiguration.getCreateDisposition(), + remoteConfiguration.getCreateDisposition()); + assertEquals(createdConfiguration.getWriteDisposition(), + remoteConfiguration.getWriteDisposition()); + assertNotNull(remoteJob.getEtag()); + assertNull(remoteJob.getStatistics()); + assertNull(remoteJob.getStatus()); + assertNull(remoteJob.getSelfLink()); + assertNull(remoteJob.getUserEmail()); + assertTrue(createdTable.delete()); + + Job completedJob = + remoteJob.waitFor( + RetryOption.initialRetryDelay(Duration.ofSeconds(1)), + RetryOption.totalTimeout(Duration.ofMinutes(1))); + assertNotNull(completedJob); + assertNull(completedJob.getStatus().getError()); + assertTrue(bigquery.delete(DATASET, destinationTableName)); + } + + @Test + public void testCopyJob() throws InterruptedException, TimeoutException { + String sourceTableName = "test_copy_job_source_table"; + String destinationTableName = "test_copy_job_destination_table"; + TableId sourceTable = TableId.of(DATASET, sourceTableName); + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + TableInfo tableInfo = TableInfo.of(sourceTable, tableDefinition); + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(sourceTableName, createdTable.getTableId().getTable()); + TableId destinationTable = TableId.of(DATASET, destinationTableName); + CopyJobConfiguration configuration = CopyJobConfiguration.of(destinationTable, sourceTable); + Job remoteJob = bigquery.create(JobInfo.of(configuration)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + Table remoteTable = bigquery.getTable(DATASET, destinationTableName); + assertNotNull(remoteTable); + assertEquals(destinationTable.getDataset(), remoteTable.getTableId().getDataset()); + assertEquals(destinationTableName, remoteTable.getTableId().getTable()); + assertEquals(TABLE_SCHEMA, remoteTable.getDefinition().getSchema()); + assertTrue(createdTable.delete()); + assertTrue(remoteTable.delete()); + } + + @Test + public void testQueryJob() throws InterruptedException, TimeoutException { + String tableName = "test_query_job_table"; + String query = "SELECT TimestampField, StringField, BooleanField FROM " + + TABLE_ID.getTable(); + TableId destinationTable = TableId.of(DATASET, tableName); + QueryJobConfiguration configuration = QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setDestinationTable(destinationTable) + .build(); + Job remoteJob = bigquery.create(JobInfo.of(configuration)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + + TableResult result = remoteJob.getQueryResults(); + assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); + int rowCount = 0; + for (FieldValueList row : result.getValues()) { + FieldValue timestampCell = row.get(0); + FieldValue stringCell = row.get(1); + FieldValue booleanCell = row.get(2); + assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); + assertEquals(1408452095220000L, timestampCell.getTimestampValue()); + assertEquals("stringValue", stringCell.getStringValue()); + assertEquals(false, booleanCell.getBooleanValue()); + rowCount++; + } + assertEquals(2, rowCount); + assertTrue(bigquery.delete(DATASET, tableName)); + Job queryJob = bigquery.getJob(remoteJob.getJobId()); + JobStatistics.QueryStatistics statistics = queryJob.getStatistics(); + assertNotNull(statistics.getQueryPlan()); + } + + @Test + public void testQueryJobWithDryRun() throws InterruptedException, TimeoutException { + String tableName = "test_query_job_table"; + String query = "SELECT TimestampField, StringField, BooleanField FROM " + + TABLE_ID.getTable(); + TableId destinationTable = TableId.of(DATASET, tableName); + QueryJobConfiguration configuration = QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setDestinationTable(destinationTable) + .setDryRun(true) + .build(); + Job remoteJob = bigquery.create(JobInfo.of(configuration)); + assertNull(remoteJob.getJobId().getJob()); + assertEquals(DONE, remoteJob.getStatus().getState()); + assertNotNull(remoteJob.getConfiguration()); + } + + @Test + public void testExtractJob() throws InterruptedException, TimeoutException { + String tableName = "test_export_job_table"; + TableId destinationTable = TableId.of(DATASET, tableName); + LoadJobConfiguration configuration = + LoadJobConfiguration.newBuilder(destinationTable, "gs://" + BUCKET + "/" + LOAD_FILE) + .setSchema(SIMPLE_SCHEMA) + .build(); + Job remoteLoadJob = bigquery.create(JobInfo.of(configuration)); + remoteLoadJob = remoteLoadJob.waitFor(); + assertNull(remoteLoadJob.getStatus().getError()); + + ExtractJobConfiguration extractConfiguration = + ExtractJobConfiguration.newBuilder(destinationTable, "gs://" + BUCKET + "/" + EXTRACT_FILE) + .setPrintHeader(false) + .build(); + Job remoteExtractJob = bigquery.create(JobInfo.of(extractConfiguration)); + remoteExtractJob = remoteExtractJob.waitFor(); + assertNull(remoteExtractJob.getStatus().getError()); + + String extractedCsv = + new String(storage.readAllBytes(BUCKET, EXTRACT_FILE), StandardCharsets.UTF_8); + assertEquals( + Sets.newHashSet(CSV_CONTENT.split("\n")), Sets.newHashSet(extractedCsv.split("\n"))); + assertTrue(bigquery.delete(DATASET, tableName)); + } + + @Test + public void testCancelJob() throws InterruptedException, TimeoutException { + String destinationTableName = "test_cancel_query_job_table"; + String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); + TableId destinationTable = TableId.of(DATASET, destinationTableName); + QueryJobConfiguration configuration = QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setDestinationTable(destinationTable) + .build(); + Job remoteJob = bigquery.create(JobInfo.of(configuration)); + assertTrue(remoteJob.cancel()); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + } + + @Test + public void testCancelNonExistingJob() { + assertFalse(bigquery.cancel("test_cancel_non_existing_job")); + } + + @Test + public void testInsertFromFile() throws InterruptedException, IOException, TimeoutException { + String destinationTableName = "test_insert_from_file_table"; + TableId tableId = TableId.of(DATASET, destinationTableName); + WriteChannelConfiguration configuration = WriteChannelConfiguration.newBuilder(tableId) + .setFormatOptions(FormatOptions.json()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(TABLE_SCHEMA) + .build(); + TableDataWriteChannel channel = bigquery.writer(configuration); + try { + // A zero byte write should not throw an exception. + assertEquals(0, channel.write(ByteBuffer.wrap("".getBytes(StandardCharsets.UTF_8)))); + } finally { + // Force the channel to flush by calling `close`. + channel.close(); + } + channel = bigquery.writer(configuration); + try { + channel.write(ByteBuffer.wrap(JSON_CONTENT.getBytes(StandardCharsets.UTF_8))); + } finally { + channel.close(); + } + Job job = channel.getJob().waitFor(); + LoadStatistics statistics = job.getStatistics(); + assertEquals(1L, statistics.getInputFiles().longValue()); + assertEquals(2L, statistics.getOutputRows().longValue()); + LoadJobConfiguration jobConfiguration = job.getConfiguration(); + assertEquals(TABLE_SCHEMA, jobConfiguration.getSchema()); + assertNull(jobConfiguration.getSourceUris()); + assertNull(job.getStatus().getError()); + Page rows = bigquery.listTableData(tableId); + int rowCount = 0; + for (FieldValueList row : rows.getValues()) { + FieldValue timestampCell = row.get(0); + FieldValue stringCell = row.get(1); + FieldValue integerArrayCell = row.get(2); + FieldValue booleanCell = row.get(3); + FieldValue bytesCell = row.get(4); + FieldValue recordCell = row.get(5); + FieldValue integerCell = row.get(6); + FieldValue floatCell = row.get(7); + assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); + assertEquals(FieldValue.Attribute.REPEATED, integerArrayCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, bytesCell.getAttribute()); + assertEquals(FieldValue.Attribute.RECORD, recordCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, integerCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, floatCell.getAttribute()); + assertEquals(1408452095220000L, timestampCell.getTimestampValue()); + assertEquals("stringValue", stringCell.getStringValue()); + assertEquals(0, integerArrayCell.getRepeatedValue().get(0).getLongValue()); + assertEquals(1, integerArrayCell.getRepeatedValue().get(1).getLongValue()); + assertEquals(false, booleanCell.getBooleanValue()); + assertArrayEquals(BYTES, bytesCell.getBytesValue()); + assertEquals(-14182916000000L, recordCell.getRecordValue().get(0).getTimestampValue()); + assertTrue(recordCell.getRecordValue().get(1).isNull()); + assertEquals(1, recordCell.getRecordValue().get(2).getRepeatedValue().get(0).getLongValue()); + assertEquals(0, recordCell.getRecordValue().get(2).getRepeatedValue().get(1).getLongValue()); + assertEquals(true, recordCell.getRecordValue().get(3).getBooleanValue()); + assertEquals(3, integerCell.getLongValue()); + assertEquals(1.2, floatCell.getDoubleValue(), 0.0001); + rowCount++; + } + assertEquals(2, rowCount); + assertTrue(bigquery.delete(DATASET, destinationTableName)); + } + + @Test + public void testLocation() throws Exception { + String location = "EU"; + String wrongLocation = "US"; + + assertThat(location).isNotEqualTo(wrongLocation); + + Dataset dataset = + bigquery.create( + DatasetInfo.newBuilder("locationset_" + UUID.randomUUID().toString().replace("-", "_")) + .setLocation(location) + .build()); + try { + TableId tableId = TableId.of(dataset.getDatasetId().getDataset(), "sometable"); + Schema schema = Schema.of(Field.of("name", LegacySQLTypeName.STRING)); + TableDefinition tableDef = StandardTableDefinition.of(schema); + Table table = bigquery.create(TableInfo.newBuilder(tableId, tableDef).build()); + + String query = + String.format( + "SELECT * FROM `%s.%s.%s`", + table.getTableId().getProject(), + table.getTableId().getDataset(), + table.getTableId().getTable()); + + // Test create/get + { + Job job = + bigquery.create( + JobInfo.of( + JobId.newBuilder().setLocation(location).build(), + QueryJobConfiguration.of(query))); + job = job.waitFor(); + assertThat(job.getStatus().getError()).isNull(); + + assertThat(job.getJobId().getLocation()).isEqualTo(location); + + JobId jobId = job.getJobId(); + JobId wrongId = jobId.toBuilder().setLocation(wrongLocation).build(); + + // Getting with location should work. + assertThat(bigquery.getJob(jobId)).isNotNull(); + // Getting with wrong location shouldn't work. + assertThat(bigquery.getJob(wrongId)).isNull(); + + // Cancelling with location should work. (Cancelling already finished job is fine.) + assertThat(bigquery.cancel(jobId)).isTrue(); + // Cancelling with wrong location shouldn't work. + assertThat(bigquery.cancel(wrongId)).isFalse(); + } + + // Test query + { + assertThat( + bigquery + .query( + QueryJobConfiguration.of(query), + JobId.newBuilder().setLocation(location).build()) + .iterateAll()) + .isEmpty(); + + try { + bigquery + .query( + QueryJobConfiguration.of(query), + JobId.newBuilder().setLocation(wrongLocation).build()) + .iterateAll(); + fail("querying a table with wrong location shouldn't work"); + } catch (BigQueryException e) { + // Nothing to do + } + } + + // Test write + { + WriteChannelConfiguration writeChannelConfiguration = + WriteChannelConfiguration.newBuilder(tableId) + .setFormatOptions(FormatOptions.csv()) + .build(); + try (TableDataWriteChannel writer = + bigquery.writer( + JobId.newBuilder().setLocation(location).build(), writeChannelConfiguration)) { + writer.write(ByteBuffer.wrap("foo".getBytes())); + } + + try { + bigquery.writer( + JobId.newBuilder().setLocation(wrongLocation).build(), writeChannelConfiguration); + fail("writing to a table with wrong location shouldn't work"); + } catch (BigQueryException e) { + // Nothing to do + } + } + } finally { + bigquery.delete(dataset.getDatasetId(), DatasetDeleteOption.deleteContents()); + } + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java new file mode 100644 index 000000000000..576e5c4e37cb --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java @@ -0,0 +1,47 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery.spi.v2; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.api.services.bigquery.model.Dataset; +import com.google.api.services.bigquery.model.DatasetList; +import com.google.api.services.bigquery.model.DatasetReference; +import java.util.Collections; +import org.junit.Test; + +public class HttpBigQueryRpcTest { + @Test + public void testListToDataset() { + DatasetReference datasetRef = + new DatasetReference().setDatasetId("dataset-id").setProjectId("project-id"); + + DatasetList.Datasets listDataSet = + new DatasetList.Datasets() + .setDatasetReference(datasetRef) + .setId("project-id:dataset-id") + .setFriendlyName("friendly") + .setKind("bigquery#dataset") + .setLabels(Collections.singletonMap("foo", "bar")); + Dataset dataset = HttpBigQueryRpc.LIST_TO_DATASET.apply(listDataSet); + + assertThat(dataset.getKind()).isEqualTo("bigquery#dataset"); + assertThat(dataset.getId()).isEqualTo("project-id:dataset-id"); + assertThat(dataset.getFriendlyName()).isEqualTo("friendly"); + assertThat(dataset.getDatasetReference()).isEqualTo(datasetRef); + assertThat(dataset.getLabels()).containsExactly("foo", "bar"); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java new file mode 100644 index 000000000000..32137217aebf --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java @@ -0,0 +1,94 @@ +/* + * Copyright 2015 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.testing; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import com.google.cloud.http.HttpTransportOptions; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; +import com.google.cloud.bigquery.BigQueryOptions; +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.util.concurrent.ExecutionException; +import org.easymock.EasyMock; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.threeten.bp.Duration; + +public class RemoteBigQueryHelperTest { + + private static final String DATASET_NAME = "dataset-name"; + private static final String PROJECT_ID = "project-id"; + private static final String JSON_KEY = "{\n" + + " \"private_key_id\": \"somekeyid\",\n" + + " \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggS" + + "kAgEAAoIBAQC+K2hSuFpAdrJI\\nnCgcDz2M7t7bjdlsadsasad+fvRSW6TjNQZ3p5LLQY1kSZRqBqylRkzteMOyHg" + + "aR\\n0Pmxh3ILCND5men43j3h4eDbrhQBuxfEMalkG92sL+PNQSETY2tnvXryOvmBRwa/\\nQP/9dJfIkIDJ9Fw9N4" + + "Bhhhp6mCcRpdQjV38H7JsyJ7lih/oNjECgYAt\\nknddadwkwewcVxHFhcZJO+XWf6ofLUXpRwiTZakGMn8EE1uVa2" + + "LgczOjwWHGi99MFjxSer5m9\\n1tCa3/KEGKiS/YL71JvjwX3mb+cewlkcmweBKZHM2JPTk0ZednFSpVZMtycjkbLa" + + "\\ndYOS8V85AgMBewECggEBAKksaldajfDZDV6nGqbFjMiizAKJolr/M3OQw16K6o3/\\n0S31xIe3sSlgW0+UbYlF" + + "4U8KifhManD1apVSC3csafaspP4RZUHFhtBywLO9pR5c\\nr6S5aLp+gPWFyIp1pfXbWGvc5VY/v9x7ya1VEa6rXvL" + + "sKupSeWAW4tMj3eo/64ge\\nsdaceaLYw52KeBYiT6+vpsnYrEkAHO1fF/LavbLLOFJmFTMxmsNaG0tuiJHgjshB\\" + + "n82DpMCbXG9YcCgI/DbzuIjsdj2JC1cascSP//3PmefWysucBQe7Jryb6NQtASmnv\\nCdDw/0jmZTEjpe4S1lxfHp" + + "lAhHFtdgYTvyYtaLZiVVkCgYEA8eVpof2rceecw/I6\\n5ng1q3Hl2usdWV/4mZMvR0fOemacLLfocX6IYxT1zA1FF" + + "JlbXSRsJMf/Qq39mOR2\\nSpW+hr4jCoHeRVYLgsbggtrevGmILAlNoqCMpGZ6vDmJpq6ECV9olliDvpPgWOP+\\nm" + + "YPDreFBGxWvQrADNbRt2dmGsrsCgYEAyUHqB2wvJHFqdmeBsaacewzV8x9WgmeX\\ngUIi9REwXlGDW0Mz50dxpxcK" + + "CAYn65+7TCnY5O/jmL0VRxU1J2mSWyWTo1C+17L0\\n3fUqjxL1pkefwecxwecvC+gFFYdJ4CQ/MHHXU81Lwl1iWdF" + + "Cd2UoGddYaOF+KNeM\\nHC7cmqra+JsCgYEAlUNywzq8nUg7282E+uICfCB0LfwejuymR93CtsFgb7cRd6ak\\nECR" + + "8FGfCpH8ruWJINllbQfcHVCX47ndLZwqv3oVFKh6pAS/vVI4dpOepP8++7y1u\\ncoOvtreXCX6XqfrWDtKIvv0vjl" + + "HBhhhp6mCcRpdQjV38H7JsyJ7lih/oNjECgYAt\\nkndj5uNl5SiuVxHFhcZJO+XWf6ofLUregtevZakGMn8EE1uVa" + + "2AY7eafmoU/nZPT\\n00YB0TBATdCbn/nBSuKDESkhSg9s2GEKQZG5hBmL5uCMfo09z3SfxZIhJdlerreP\\nJ7gSi" + + "dI12N+EZxYd4xIJh/HFDgp7RRO87f+WJkofMQKBgGTnClK1VMaCRbJZPriw\\nEfeFCoOX75MxKwXs6xgrw4W//AYG" + + "GUjDt83lD6AZP6tws7gJ2IwY/qP7+lyhjEqN\\nHtfPZRGFkGZsdaksdlaksd323423d+15/UvrlRSFPNj1tWQmNKk" + + "XyRDW4IG1Oa2p\\nrALStNBx5Y9t0/LQnFI4w3aG\\n-----END PRIVATE KEY-----\\n\",\n" + + " \"client_email\": \"someclientid@developer.gserviceaccount.com\",\n" + + " \"client_id\": \"someclientid.apps.googleusercontent.com\",\n" + + " \"type\": \"service_account\"\n" + + "}"; + private static final InputStream JSON_KEY_STREAM = new ByteArrayInputStream(JSON_KEY.getBytes()); + + @Rule + public ExpectedException thrown = ExpectedException.none(); + + @Test + public void testForceDelete() throws InterruptedException, ExecutionException { + BigQuery bigqueryMock = EasyMock.createMock(BigQuery.class); + EasyMock.expect(bigqueryMock.delete(DATASET_NAME, DatasetDeleteOption.deleteContents())) + .andReturn(true); + EasyMock.replay(bigqueryMock); + assertTrue(RemoteBigQueryHelper.forceDelete(bigqueryMock, DATASET_NAME)); + EasyMock.verify(bigqueryMock); + } + + @Test + public void testCreateFromStream() { + RemoteBigQueryHelper helper = RemoteBigQueryHelper.create(PROJECT_ID, JSON_KEY_STREAM); + BigQueryOptions options = helper.getOptions(); + assertEquals(PROJECT_ID, options.getProjectId()); + assertEquals(60000, + ((HttpTransportOptions) options.getTransportOptions()).getConnectTimeout()); + assertEquals(60000, + ((HttpTransportOptions) options.getTransportOptions()).getReadTimeout()); + assertEquals(10, options.getRetrySettings().getMaxAttempts()); + assertEquals(Duration.ofMillis(30000), options.getRetrySettings().getMaxRetryDelay()); + assertEquals(Duration.ofMillis(120000), options.getRetrySettings().getTotalTimeout()); + assertEquals(Duration.ofMillis(250), options.getRetrySettings().getInitialRetryDelay()); + } +} From 8bc760b36d1bceb5d350f418e0351ed31a83b089 Mon Sep 17 00:00:00 2001 From: Seth Hollyman Date: Thu, 10 May 2018 15:42:46 -0700 Subject: [PATCH 0003/3441] BigQuery: add missing query statistics. --- .../google/cloud/bigquery/JobStatistics.java | 128 ++++++++++++++++++ .../cloud/bigquery/JobStatisticsTest.java | 35 ++++- 2 files changed, 162 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 175e5f47f1fb..7e85b9d3b5fa 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -320,8 +320,16 @@ public static class QueryStatistics extends JobStatistics { private final Integer billingTier; private final Boolean cacheHit; + private final String ddlOperationPerformed; + private final TableId ddlTargetTable; + private final Long estimatedBytesProcessed; + private final Long numDmlAffectedRows; + private final List referencedTables; + private final String statementType; private final Long totalBytesBilled; private final Long totalBytesProcessed; + private final Long totalPartitionsProcessed; + private final Long totalSlotMs; private final List queryPlan; private final List timeline; private final Schema schema; @@ -330,8 +338,16 @@ static final class Builder extends JobStatistics.Builder referencedTables; + private String statementType; private Long totalBytesBilled; private Long totalBytesProcessed; + private Long totalPartitionsProcessed; + private Long totalSlotMs; private List queryPlan; private List timeline; private Schema schema; @@ -343,8 +359,22 @@ private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsP if (statisticsPb.getQuery() != null) { this.billingTier = statisticsPb.getQuery().getBillingTier(); this.cacheHit = statisticsPb.getQuery().getCacheHit(); + this.ddlOperationPerformed = statisticsPb.getQuery().getDdlOperationPerformed(); + if (statisticsPb.getQuery().getDdlTargetTable() != null) { + this.ddlTargetTable = TableId.fromPb(statisticsPb.getQuery().getDdlTargetTable()); + } + this.estimatedBytesProcessed = statisticsPb.getQuery().getEstimatedBytesProcessed(); + this.numDmlAffectedRows = statisticsPb.getQuery().getNumDmlAffectedRows(); + this.statementType = statisticsPb.getQuery().getStatementType(); this.totalBytesBilled = statisticsPb.getQuery().getTotalBytesBilled(); this.totalBytesProcessed = statisticsPb.getQuery().getTotalBytesProcessed(); + this.totalPartitionsProcessed = statisticsPb.getQuery().getTotalPartitionsProcessed(); + this.totalSlotMs = statisticsPb.getQuery().getTotalSlotMs(); + if (statisticsPb.getQuery().getReferencedTables() != null) { + this.referencedTables = + Lists.transform( + statisticsPb.getQuery().getReferencedTables(), TableId.FROM_PB_FUNCTION); + } if (statisticsPb.getQuery().getQueryPlan() != null) { this.queryPlan = Lists.transform( @@ -371,6 +401,36 @@ Builder setCacheHit(Boolean cacheHit) { return self(); } + Builder setDDLOperationPerformed(String ddlOperationPerformed) { + this.ddlOperationPerformed = ddlOperationPerformed; + return self(); + } + + Builder setDDLTargetTable(TableId ddlTargetTable) { + this.ddlTargetTable = ddlTargetTable; + return self(); + } + + Builder setEstimatedBytesProcessed(Long estimatedBytesProcessed) { + this.estimatedBytesProcessed = estimatedBytesProcessed; + return self(); + } + + Builder setNumDmlAffectedRows(Long numDmlAffectedRows) { + this.numDmlAffectedRows = numDmlAffectedRows; + return self(); + } + + Builder setReferenceTables(List referencedTables) { + this.referencedTables = referencedTables; + return self(); + } + + Builder setStatementType(String statementType) { + this.statementType = statementType; + return self(); + } + Builder setTotalBytesBilled(Long totalBytesBilled) { this.totalBytesBilled = totalBytesBilled; return self(); @@ -381,6 +441,16 @@ Builder setTotalBytesProcessed(Long totalBytesProcessed) { return self(); } + Builder setTotalPartitionsProcessed(Long totalPartitionsProcessed) { + this.totalPartitionsProcessed = totalPartitionsProcessed; + return self(); + } + + Builder setTotalSlotMs(Long totalSlotMs) { + this.totalSlotMs = totalSlotMs; + return self(); + } + Builder setQueryPlan(List queryPlan) { this.queryPlan = queryPlan; return self(); @@ -406,8 +476,16 @@ private QueryStatistics(Builder builder) { super(builder); this.billingTier = builder.billingTier; this.cacheHit = builder.cacheHit; + this.ddlOperationPerformed = builder.ddlOperationPerformed; + this.ddlTargetTable = builder.ddlTargetTable; + this.estimatedBytesProcessed = builder.estimatedBytesProcessed; + this.numDmlAffectedRows = builder.numDmlAffectedRows; + this.referencedTables = builder.referencedTables; + this.statementType = builder.statementType; this.totalBytesBilled = builder.totalBytesBilled; this.totalBytesProcessed = builder.totalBytesProcessed; + this.totalPartitionsProcessed = builder.totalPartitionsProcessed; + this.totalSlotMs = builder.totalSlotMs; this.queryPlan = builder.queryPlan; this.timeline = builder.timeline; this.schema = builder.schema; @@ -432,6 +510,47 @@ public Boolean getCacheHit() { return cacheHit; } + /** + * [BETA] For DDL queries, returns the operation applied to the DDL target table. + */ + public String getDdlOperationPerformed() { return ddlOperationPerformed; } + + /** + * [BETA] For DDL queries, returns the TableID of the targeted table. + */ + public TableId getDdlTargetTable() { return ddlTargetTable; } + + /** + * The original estimate of bytes processed for the job. + */ + public Long getEstimatedBytesProcessed() { return estimatedBytesProcessed; } + + /** + * The number of rows affected by a DML statement. + * Present only for DML statements INSERT, UPDATE or DELETE. + */ + public Long getNumDmlAffectedRows() { return numDmlAffectedRows; } + + /** + * Referenced tables for the job. + * Queries that reference more than 50 tables will not have a complete list. + */ + public List getReferencedTables() { return referencedTables; } + + /** + * [BETA] The type of query statement, if valid. + * Possible values include: + * SELECT + * INSERT + * UPDATE + * DELETE + * CREATE_TABLE + * CREATE_TABLE_AS_SELECT + * DROP_TABLE + * CREATE_VIEW + * DROP_VIEW + */ + public String getStatementType() { return statementType; } /** * Returns the total number of bytes billed for the job. @@ -448,6 +567,15 @@ public Long getTotalBytesProcessed() { return totalBytesProcessed; } + /** + * Total number of partitions processed from all partitioned tables referenced in the job. + */ + public Long getTotalPartitionsProcessed() { return totalPartitionsProcessed; } + + /** + * Returns the slot-milliseconds consumed by the query. + */ + public Long getTotalSlotMs() { return totalSlotMs; } /** * Returns the query plan as a list of stages or {@code null} if a query plan is not available. diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index be738c89b355..c4eaa4ab3a23 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -32,12 +32,22 @@ public class JobStatisticsTest { private static final Integer BILLING_TIER = 42; private static final Boolean CACHE_HIT = true; + private static final String DDL_OPERATION_PERFORMED = "SKIP"; + private static final TableId DDL_TARGET_TABLE = TableId.of("foo", "bar", "baz"); + private static final Long ESTIMATE_BYTES_PROCESSED = 101L; + private static final Long NUM_DML_AFFECTED_ROWS = 88L; + private static final String STATEMENT_TYPE = "SELECT"; private static final Long TOTAL_BYTES_BILLED = 24L; private static final Long TOTAL_BYTES_PROCESSED = 42L; + private static final Long TOTAL_PARTITION_PROCESSED = 63L; + private static final Long TOTAL_SLOT_MS = 10202L; private static final Long INPUT_BYTES = 1L; private static final Long INPUT_FILES = 2L; private static final Long OUTPUT_BYTES = 3L; private static final Long OUTPUT_ROWS = 4L; + private static final List REFERENCED_TABLES = ImmutableList.of( + TableId.of("foo", "bar", "table1"), + TableId.of("foo","bar","table2")); private static final List FILE_COUNT = ImmutableList.of(1L, 2L, 3L); private static final Long CREATION_TIME = 10L; private static final Long END_TIME = 20L; @@ -112,8 +122,16 @@ public class JobStatisticsTest { .setStartTime(START_TIME) .setBillingTier(BILLING_TIER) .setCacheHit(CACHE_HIT) + .setDDLOperationPerformed(DDL_OPERATION_PERFORMED) + .setDDLTargetTable(DDL_TARGET_TABLE) + .setEstimatedBytesProcessed(ESTIMATE_BYTES_PROCESSED) + .setNumDmlAffectedRows(NUM_DML_AFFECTED_ROWS) + .setReferenceTables(REFERENCED_TABLES) + .setStatementType(STATEMENT_TYPE) .setTotalBytesBilled(TOTAL_BYTES_BILLED) .setTotalBytesProcessed(TOTAL_BYTES_PROCESSED) + .setTotalPartitionsProcessed(TOTAL_PARTITION_PROCESSED) + .setTotalSlotMs(TOTAL_SLOT_MS) .setQueryPlan(QUERY_PLAN) .setTimeline(TIMELINE) .setSchema(SCHEMA) @@ -146,9 +164,16 @@ public void testBuilder() { assertEquals(END_TIME, QUERY_STATISTICS.getEndTime()); assertEquals(BILLING_TIER, QUERY_STATISTICS.getBillingTier()); assertEquals(CACHE_HIT, QUERY_STATISTICS.getCacheHit()); + assertEquals(DDL_OPERATION_PERFORMED, QUERY_STATISTICS.getDdlOperationPerformed()); + assertEquals(DDL_TARGET_TABLE, QUERY_STATISTICS.getDdlTargetTable()); + assertEquals(ESTIMATE_BYTES_PROCESSED, QUERY_STATISTICS.getEstimatedBytesProcessed()); + assertEquals(NUM_DML_AFFECTED_ROWS, QUERY_STATISTICS.getNumDmlAffectedRows()); + assertEquals(REFERENCED_TABLES, QUERY_STATISTICS.getReferencedTables()); + assertEquals(STATEMENT_TYPE, QUERY_STATISTICS.getStatementType()); assertEquals(TOTAL_BYTES_BILLED, QUERY_STATISTICS.getTotalBytesBilled()); assertEquals(TOTAL_BYTES_PROCESSED, QUERY_STATISTICS.getTotalBytesProcessed()); - assertEquals(TOTAL_BYTES_PROCESSED, QUERY_STATISTICS.getTotalBytesProcessed()); + assertEquals(TOTAL_PARTITION_PROCESSED, QUERY_STATISTICS.getTotalPartitionsProcessed()); + assertEquals(TOTAL_SLOT_MS, QUERY_STATISTICS.getTotalSlotMs()); assertEquals(QUERY_PLAN, QUERY_STATISTICS.getQueryPlan()); assertEquals(TIMELINE, QUERY_STATISTICS.getTimeline()); @@ -165,8 +190,16 @@ public void testBuilder() { assertEquals(END_TIME, QUERY_STATISTICS_INCOMPLETE.getEndTime()); assertEquals(BILLING_TIER, QUERY_STATISTICS_INCOMPLETE.getBillingTier()); assertEquals(CACHE_HIT, QUERY_STATISTICS_INCOMPLETE.getCacheHit()); + assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getDdlOperationPerformed()); + assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getDdlTargetTable()); + assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getEstimatedBytesProcessed()); + assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getNumDmlAffectedRows()); + assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getStatementType()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getTotalBytesBilled()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getTotalBytesProcessed()); + assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getTotalPartitionsProcessed()); + assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getTotalSlotMs()); + assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getReferencedTables()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getQueryPlan()); } From 417c81163a6ef8ac937f3907aeea8ddb92a880af Mon Sep 17 00:00:00 2001 From: Seth Hollyman Date: Wed, 16 May 2018 15:31:01 -0700 Subject: [PATCH 0004/3441] Switch StatementType to a StringEnumType, more complete testing. --- .../google/cloud/bigquery/JobStatistics.java | 94 ++++++++++++++++++- .../cloud/bigquery/JobStatisticsTest.java | 11 ++- 2 files changed, 98 insertions(+), 7 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 7e85b9d3b5fa..c137abcfd261 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -16,10 +16,14 @@ package com.google.cloud.bigquery; +import com.google.api.core.ApiFunction; import com.google.api.services.bigquery.model.JobConfiguration; import com.google.api.services.bigquery.model.JobStatistics2; import com.google.api.services.bigquery.model.JobStatistics3; import com.google.api.services.bigquery.model.JobStatistics4; +import com.google.api.services.bigquery.model.TableReference; +import com.google.cloud.StringEnumType; +import com.google.cloud.StringEnumValue; import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.collect.Lists; @@ -311,6 +315,7 @@ static LoadStatistics fromPb(com.google.api.services.bigquery.model.JobStatistic } } + /** * A Google BigQuery Query Job statistics. */ @@ -325,7 +330,7 @@ public static class QueryStatistics extends JobStatistics { private final Long estimatedBytesProcessed; private final Long numDmlAffectedRows; private final List referencedTables; - private final String statementType; + private final StatementType statementType; private final Long totalBytesBilled; private final Long totalBytesProcessed; private final Long totalPartitionsProcessed; @@ -334,6 +339,64 @@ public static class QueryStatistics extends JobStatistics { private final List timeline; private final Schema schema; + + /** + * StatementType represents possible types of SQL statements reported as part of the + * QueryStatistics of a BigQuery job. + */ + public static final class StatementType extends StringEnumValue { + private static final long serialVersionUID = 818920627219751204L; + + private static final ApiFunction CONSTRUCTOR = + new ApiFunction() { + @Override + public StatementType apply(String constant) { + return new StatementType(constant); + } + }; + + private static final StringEnumType type = new StringEnumType( + StatementType.class, + CONSTRUCTOR); + + public static final StatementType SELECT = type.createAndRegister("SELECT"); + public static final StatementType UPDATE = type.createAndRegister("UPDATE"); + public static final StatementType INSERT = type.createAndRegister("INSERT"); + public static final StatementType DELETE = type.createAndRegister("DELETE"); + public static final StatementType CREATE_TABLE = type.createAndRegister("CREATE_TABLE"); + public static final StatementType CREATE_TABLE_AS_SELECT = type.createAndRegister("CREATE_TABLE_AS_SELECT"); + public static final StatementType CREATE_VIEW = type.createAndRegister("CREATE_VIEW"); + public static final StatementType DROP_TABLE = type.createAndRegister("DROP_TABLE"); + public static final StatementType DROP_VIEW = type.createAndRegister("DROP_VIEW"); + public static final StatementType MERGE = type.createAndRegister("MERGE"); + + private StatementType(String constant) { + super(constant); + } + + /** + * Get the StatementType for the given String constant, and throw an exception if the constant is + * not recognized. + */ + public static StatementType valueOfStrict(String constant) { + return type.valueOfStrict(constant); + } + + /** + * Get the State for the given String constant, and allow unrecognized values. + */ + public static StatementType valueOf(String constant) { + return type.valueOf(constant); + } + + /** + * Return the known values for State. + */ + public static StatementType[] values() { + return type.values(); + } + } + static final class Builder extends JobStatistics.Builder { private Integer billingTier; @@ -343,7 +406,7 @@ static final class Builder extends JobStatistics.Builder referencedTables; - private String statementType; + private StatementType statementType; private Long totalBytesBilled; private Long totalBytesProcessed; private Long totalPartitionsProcessed; @@ -365,11 +428,14 @@ private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsP } this.estimatedBytesProcessed = statisticsPb.getQuery().getEstimatedBytesProcessed(); this.numDmlAffectedRows = statisticsPb.getQuery().getNumDmlAffectedRows(); - this.statementType = statisticsPb.getQuery().getStatementType(); this.totalBytesBilled = statisticsPb.getQuery().getTotalBytesBilled(); this.totalBytesProcessed = statisticsPb.getQuery().getTotalBytesProcessed(); this.totalPartitionsProcessed = statisticsPb.getQuery().getTotalPartitionsProcessed(); this.totalSlotMs = statisticsPb.getQuery().getTotalSlotMs(); + if (statisticsPb.getQuery().getStatementType() != null) { + this.statementType = StatementType.valueOf(statisticsPb.getQuery().getStatementType()); + } + if (statisticsPb.getQuery().getReferencedTables() != null) { this.referencedTables = Lists.transform( @@ -426,11 +492,16 @@ Builder setReferenceTables(List referencedTables) { return self(); } - Builder setStatementType(String statementType) { + Builder setStatementType(StatementType statementType) { this.statementType = statementType; return self(); } + Builder setStatementType(String strStatementType) { + this.statementType = StatementType.valueOf(strStatementType); + return self(); + } + Builder setTotalBytesBilled(Long totalBytesBilled) { this.totalBytesBilled = totalBytesBilled; return self(); @@ -550,7 +621,7 @@ public Boolean getCacheHit() { * CREATE_VIEW * DROP_VIEW */ - public String getStatementType() { return statementType; } + public StatementType getStatementType() { return statementType; } /** * Returns the total number of bytes billed for the job. @@ -637,8 +708,21 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { JobStatistics2 queryStatisticsPb = new JobStatistics2(); queryStatisticsPb.setBillingTier(billingTier); queryStatisticsPb.setCacheHit(cacheHit); + queryStatisticsPb.setDdlOperationPerformed(ddlOperationPerformed); queryStatisticsPb.setTotalBytesBilled(totalBytesBilled); queryStatisticsPb.setTotalBytesProcessed(totalBytesProcessed); + queryStatisticsPb.setTotalPartitionsProcessed(totalPartitionsProcessed); + queryStatisticsPb.setTotalSlotMs(totalSlotMs); + if (ddlTargetTable != null) { + queryStatisticsPb.setDdlTargetTable(ddlTargetTable.toPb()); + } + + if (referencedTables != null) { + queryStatisticsPb.setReferencedTables(Lists.transform(referencedTables, TableId.TO_PB_FUNCTION)); + } + if (statementType != null) { + queryStatisticsPb.setStatementType(statementType.toString()); + } if (queryPlan != null) { queryStatisticsPb.setQueryPlan(Lists.transform(queryPlan, QueryStage.TO_PB_FUNCTION)); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index c4eaa4ab3a23..7e5963d622e8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -23,6 +23,7 @@ import com.google.cloud.bigquery.JobStatistics.ExtractStatistics; import com.google.cloud.bigquery.JobStatistics.LoadStatistics; import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics.StatementType; import com.google.cloud.bigquery.QueryStage.QueryStep; import com.google.common.collect.ImmutableList; import java.util.List; @@ -36,7 +37,7 @@ public class JobStatisticsTest { private static final TableId DDL_TARGET_TABLE = TableId.of("foo", "bar", "baz"); private static final Long ESTIMATE_BYTES_PROCESSED = 101L; private static final Long NUM_DML_AFFECTED_ROWS = 88L; - private static final String STATEMENT_TYPE = "SELECT"; + private static final QueryStatistics.StatementType STATEMENT_TYPE = QueryStatistics.StatementType.SELECT; private static final Long TOTAL_BYTES_BILLED = 24L; private static final Long TOTAL_BYTES_PROCESSED = 42L; private static final Long TOTAL_PARTITION_PROCESSED = 63L; @@ -194,7 +195,6 @@ public void testBuilder() { assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getDdlTargetTable()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getEstimatedBytesProcessed()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getNumDmlAffectedRows()); - assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getStatementType()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getTotalBytesBilled()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getTotalBytesProcessed()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getTotalPartitionsProcessed()); @@ -268,10 +268,17 @@ private void compareQueryStatistics(QueryStatistics expected, QueryStatistics va compareStatistics(expected, value); assertEquals(expected.getBillingTier(), value.getBillingTier()); assertEquals(expected.getCacheHit(), value.getCacheHit()); + assertEquals(expected.getDdlOperationPerformed(), value.getDdlOperationPerformed()); + assertEquals(expected.getDdlTargetTable(), value.getDdlTargetTable()); assertEquals(expected.getTotalBytesBilled(), value.getTotalBytesBilled()); assertEquals(expected.getTotalBytesProcessed(), value.getTotalBytesProcessed()); + assertEquals(expected.getTotalPartitionsProcessed(), value.getTotalPartitionsProcessed()); + assertEquals(expected.getTotalSlotMs(), value.getTotalSlotMs()); assertEquals(expected.getQueryPlan(), value.getQueryPlan()); + assertEquals(expected.getReferencedTables(), value.getReferencedTables()); assertEquals(expected.getSchema(), value.getSchema()); + assertEquals(expected.getStatementType(), value.getStatementType()); + assertEquals(expected.getTimeline(), value.getTimeline()); } private void compareStatistics(JobStatistics expected, JobStatistics value) { From a67ac688de4266d9d4997f51afcd3715e29a5f37 Mon Sep 17 00:00:00 2001 From: Seth Hollyman Date: Wed, 16 May 2018 15:45:21 -0700 Subject: [PATCH 0005/3441] remove unused imports --- .../src/main/java/com/google/cloud/bigquery/JobStatistics.java | 1 - .../test/java/com/google/cloud/bigquery/JobStatisticsTest.java | 1 - 2 files changed, 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index c137abcfd261..a27b94636b80 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -21,7 +21,6 @@ import com.google.api.services.bigquery.model.JobStatistics2; import com.google.api.services.bigquery.model.JobStatistics3; import com.google.api.services.bigquery.model.JobStatistics4; -import com.google.api.services.bigquery.model.TableReference; import com.google.cloud.StringEnumType; import com.google.cloud.StringEnumValue; import com.google.common.base.MoreObjects; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index 7e5963d622e8..c33b3ef251ca 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -23,7 +23,6 @@ import com.google.cloud.bigquery.JobStatistics.ExtractStatistics; import com.google.cloud.bigquery.JobStatistics.LoadStatistics; import com.google.cloud.bigquery.JobStatistics.QueryStatistics; -import com.google.cloud.bigquery.JobStatistics.QueryStatistics.StatementType; import com.google.cloud.bigquery.QueryStage.QueryStep; import com.google.common.collect.ImmutableList; import java.util.List; From cb594a52bd6911b9dcacdeb47282f3097cb339e0 Mon Sep 17 00:00:00 2001 From: Seth Hollyman Date: Wed, 16 May 2018 15:54:36 -0700 Subject: [PATCH 0006/3441] push setEstimatedBytesProcessed in toPb() --- .../src/main/java/com/google/cloud/bigquery/JobStatistics.java | 1 + .../test/java/com/google/cloud/bigquery/JobStatisticsTest.java | 1 + 2 files changed, 2 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index a27b94636b80..5ec974e19ef5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -708,6 +708,7 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { queryStatisticsPb.setBillingTier(billingTier); queryStatisticsPb.setCacheHit(cacheHit); queryStatisticsPb.setDdlOperationPerformed(ddlOperationPerformed); + queryStatisticsPb.setEstimatedBytesProcessed(estimatedBytesProcessed); queryStatisticsPb.setTotalBytesBilled(totalBytesBilled); queryStatisticsPb.setTotalBytesProcessed(totalBytesProcessed); queryStatisticsPb.setTotalPartitionsProcessed(totalPartitionsProcessed); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index c33b3ef251ca..cae861be6d85 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -269,6 +269,7 @@ private void compareQueryStatistics(QueryStatistics expected, QueryStatistics va assertEquals(expected.getCacheHit(), value.getCacheHit()); assertEquals(expected.getDdlOperationPerformed(), value.getDdlOperationPerformed()); assertEquals(expected.getDdlTargetTable(), value.getDdlTargetTable()); + assertEquals(expected.getEstimatedBytesProcessed(), value.getEstimatedBytesProcessed()); assertEquals(expected.getTotalBytesBilled(), value.getTotalBytesBilled()); assertEquals(expected.getTotalBytesProcessed(), value.getTotalBytesProcessed()); assertEquals(expected.getTotalPartitionsProcessed(), value.getTotalPartitionsProcessed()); From d34f1302a85a4211b13b5465a8f6e6793ffed30a Mon Sep 17 00:00:00 2001 From: Vadym Matsishevskyi <25311427+vam-google@users.noreply.github.com> Date: Fri, 18 May 2018 10:01:00 -0700 Subject: [PATCH 0007/3441] Bump version to 0.48.0 release (#3288) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 075ea091617a..a7cdb356daa9 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.29.0 + 1.30.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.29.0' +compile 'com.google.cloud:google-cloud-bigquery:1.30.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.29.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.30.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1e5dfc09434b..f909752c476f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.29.1-SNAPSHOT + 1.30.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.47.1-alpha-SNAPSHOT + 0.48.0-alpha google-cloud-bigquery From 7e01881a6fec866c3eca6f08f21a5729abe1ee36 Mon Sep 17 00:00:00 2001 From: Vadym Matsishevskyi <25311427+vam-google@users.noreply.github.com> Date: Mon, 21 May 2018 14:01:41 -0700 Subject: [PATCH 0008/3441] Post-release cleanup and fixes (specific to recent repository restructure) (#3290) 1) Fix poms deployment config. 2) Fix documentaiton links in readmes. 3) Update main README (remove `goolge-cloud` metapackage reference). 4) Update `RELEASING.md` to reflect changes. The instructions try to avoid having mysterious scripts running in the release process and also ensures that all disruptive operations (actual release/push) are done explicitly and not somewhere in the middle of a mysterious script. 5) Remove `deploy.sh` and `finalize_release.sh` scripts. 6) Fix few previously broken links (bigquerydatatransfer and compute apidocs links) --- google-cloud-bigquery/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index a7cdb356daa9..cd07059f3449 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -245,4 +245,4 @@ Apache 2.0 - See [LICENSE] for more information. [cloud-bigquery]: https://cloud.google.com/bigquery/ [cloud-storage]: https://cloud.google.com/storage/ [bigquery-product-docs]: https://cloud.google.com/bigquery/docs/ -[bigquery-client-lib-docs]: https://googlecloudplatform.github.io/google-cloud-java/latest/apidocs/index.html?com/google/cloud/bigquery/package-summary.html +[bigquery-client-lib-docs]: https://googlecloudplatform.github.io/google-cloud-java/google-cloud-clients/apidocs/index.html?com/google/cloud/bigquery/package-summary.html From 0779f37f6a278847e8c552c37c35b55bb781a2a5 Mon Sep 17 00:00:00 2001 From: Vadym Matsishevskyi <25311427+vam-google@users.noreply.github.com> Date: Mon, 21 May 2018 14:56:28 -0700 Subject: [PATCH 0009/3441] Bump version to 0.48.1-SNASPHOT for development (#3294) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f909752c476f..41e8abd466dc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.30.0 + 1.30.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.48.0-alpha + 0.48.1-alpha-SNAPSHOT google-cloud-bigquery From bb5f0b1ddc0c440927d68375dc0c3b8fc314017c Mon Sep 17 00:00:00 2001 From: Elliott Brossard Date: Tue, 22 May 2018 10:08:29 -0700 Subject: [PATCH 0010/3441] Add support for BigQuery's NUMERIC type (#3110) --- .../com/google/cloud/bigquery/FieldValue.java | 24 ++++++++++++-- .../cloud/bigquery/LegacySQLTypeName.java | 5 +++ .../cloud/bigquery/QueryParameterValue.java | 14 ++++++++ .../cloud/bigquery/StandardSQLTypeName.java | 2 ++ .../cloud/bigquery/FieldValueListTest.java | 20 ++++++++---- .../google/cloud/bigquery/FieldValueTest.java | 11 +++++++ .../bigquery/QueryParameterValueTest.java | 20 ++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 32 ++++++++++++++++--- 8 files changed, 115 insertions(+), 13 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java index 42d1993900a5..4d6d303aae2c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java @@ -24,6 +24,7 @@ import com.google.common.base.MoreObjects; import com.google.common.io.BaseEncoding; import java.io.Serializable; +import java.math.BigDecimal; import java.util.List; import java.util.Map; import java.util.Objects; @@ -48,7 +49,8 @@ public enum Attribute { * A primitive field value. A {@code FieldValue} is primitive when the corresponding field has * type {@link LegacySQLTypeName#BYTES}, {@link LegacySQLTypeName#BOOLEAN}, * {@link LegacySQLTypeName#STRING}, {@link LegacySQLTypeName#FLOAT}, - * {@link LegacySQLTypeName#INTEGER}, {@link LegacySQLTypeName#TIMESTAMP} or the value is set to + * {@link LegacySQLTypeName#INTEGER}, {@link LegacySQLTypeName#NUMERIC}, + * {@link LegacySQLTypeName#TIMESTAMP}, or the value is set to * {@code null}. */ PRIMITIVE, @@ -76,7 +78,8 @@ private FieldValue(Attribute attribute, Object value) { * @return {@link Attribute#PRIMITIVE} if the field is a primitive type * ({@link LegacySQLTypeName#BYTES}, {@link LegacySQLTypeName#BOOLEAN}, {@link LegacySQLTypeName#STRING}, * {@link LegacySQLTypeName#FLOAT}, {@link LegacySQLTypeName#INTEGER}, - * {@link LegacySQLTypeName#TIMESTAMP}) or is {@code null}. Returns {@link Attribute#REPEATED} if + * {@link LegacySQLTypeName#NUMERIC}, {@link LegacySQLTypeName#TIMESTAMP}) + * or is {@code null}. Returns {@link Attribute#REPEATED} if * the corresponding field has ({@link Field.Mode#REPEATED}) mode. Returns * {@link Attribute#RECORD} if the corresponding field is a * {@link LegacySQLTypeName#RECORD} type. @@ -107,7 +110,7 @@ public Object getValue() { * corresponding field has primitive type ({@link LegacySQLTypeName#BYTES}, * {@link LegacySQLTypeName#BOOLEAN}, {@link LegacySQLTypeName#STRING}, * {@link LegacySQLTypeName#FLOAT}, {@link LegacySQLTypeName#INTEGER}, - * {@link LegacySQLTypeName#TIMESTAMP}). + * {@link LegacySQLTypeName#NUMERIC} {@link LegacySQLTypeName#TIMESTAMP}). * * @throws ClassCastException if the field is not a primitive type * @throws NullPointerException if {@link #isNull()} returns {@code true} @@ -198,6 +201,21 @@ public long getTimestampValue() { } + /** + * Returns this field's value as a {@link java.math.BigDecimal}. This method should only be used if the + * corresponding field has {@link LegacySQLTypeName#NUMERIC} type. + * + * @throws ClassCastException if the field is not a primitive type + * @throws NumberFormatException if the field's value could not be converted to + * {@link java.math.BigDecimal} + * @throws NullPointerException if {@link #isNull()} returns {@code true} + */ + @SuppressWarnings("unchecked") + public BigDecimal getNumericValue() { + return new BigDecimal(getStringValue()); + } + + /** * Returns this field's value as a list of {@link FieldValue}. This method should only be used if * the corresponding field has {@link Field.Mode#REPEATED} mode (i.e. {@link #getAttribute()} is diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java index e99fbe21438b..a0f6da6c992e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java @@ -49,6 +49,11 @@ public LegacySQLTypeName apply(String constant) { public static final LegacySQLTypeName INTEGER = type.createAndRegister("INTEGER").setStandardType(StandardSQLTypeName.INT64); /** A 64-bit IEEE binary floating-point value. */ public static final LegacySQLTypeName FLOAT = type.createAndRegister("FLOAT").setStandardType(StandardSQLTypeName.FLOAT64); + /** + * A decimal value with 38 digits of precision and 9 digits of scale. + * Note, support for this type is limited in legacy SQL. + */ + public static final LegacySQLTypeName NUMERIC = type.createAndRegister("NUMERIC").setStandardType(StandardSQLTypeName.NUMERIC); /** A Boolean value (true or false). */ public static final LegacySQLTypeName BOOLEAN = type.createAndRegister("BOOLEAN").setStandardType(StandardSQLTypeName.BOOL); /** Represents an absolute point in time, with microsecond precision. */ diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index 3038db96e724..56b62cd45b6e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -24,6 +24,7 @@ import com.google.common.collect.Lists; import com.google.common.io.BaseEncoding; import java.io.Serializable; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import javax.annotation.Nullable; @@ -47,6 +48,7 @@ *
  • Long: StandardSQLTypeName.INT64 *
  • Double: StandardSQLTypeName.FLOAT64 *
  • Float: StandardSQLTypeName.FLOAT64 + *
  • BigDecimal: StandardSQLTypeName.NUMERIC * * *

    No other types are supported through that entry point. The other types can be created by @@ -164,6 +166,11 @@ public static QueryParameterValue float64(Float value) { return of(value, StandardSQLTypeName.FLOAT64); } + /** Creates a {@code QueryParameterValue} object with a type of NUMERIC. */ + public static QueryParameterValue numeric(BigDecimal value) { + return of(value, StandardSQLTypeName.NUMERIC); + } + /** Creates a {@code QueryParameterValue} object with a type of STRING. */ public static QueryParameterValue string(String value) { return of(value, StandardSQLTypeName.STRING); @@ -245,6 +252,8 @@ private static StandardSQLTypeName classToType(Class type) { return StandardSQLTypeName.FLOAT64; } else if (Float.class.isAssignableFrom(type)) { return StandardSQLTypeName.FLOAT64; + } else if (BigDecimal.class.isAssignableFrom(type)) { + return StandardSQLTypeName.NUMERIC; } throw new IllegalArgumentException("Unsupported object type for QueryParameter: " + type); } @@ -269,6 +278,11 @@ private static String valueToStringOrNull(T value, StandardSQLTypeName type) return value.toString(); } break; + case NUMERIC: + if (value instanceof BigDecimal) { + return value.toString(); + } + break; case BYTES: if (value instanceof byte[]) { return BaseEncoding.base64().encode((byte[]) value); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java index a250c1fc1509..e6f43b0b776f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java @@ -29,6 +29,8 @@ public enum StandardSQLTypeName { INT64, /** A 64-bit IEEE binary floating-point value. */ FLOAT64, + /** A decimal value with 38 digits of precision and 9 digits of scale. */ + NUMERIC, /** Variable-length character (Unicode) data. */ STRING, /** Variable-length binary data. */ diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java index c59f5c94a5c4..e0f8e0ef65a3 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java @@ -48,7 +48,8 @@ public class FieldValueListTest { "ninth", LegacySQLTypeName.RECORD, Field.of("first", LegacySQLTypeName.FLOAT), - Field.of("second", LegacySQLTypeName.TIMESTAMP))); + Field.of("second", LegacySQLTypeName.TIMESTAMP)), + Field.of("tenth", LegacySQLTypeName.NUMERIC)); private final Map integerPb = ImmutableMap.of("v", "1"); private final Map floatPb = ImmutableMap.of("v", "1.5"); @@ -60,6 +61,7 @@ public class FieldValueListTest { ImmutableMap.of("v", ImmutableList.of(integerPb, integerPb)); private final Map recordPb = ImmutableMap.of("f", ImmutableList.of(floatPb, timestampPb)); + private final Map numericPb = ImmutableMap.of("v", "123456789.123456789"); private final FieldValue booleanFv = FieldValue.of(Attribute.PRIMITIVE, "false"); private final FieldValue integerFv = FieldValue.of(Attribute.PRIMITIVE, "1"); @@ -75,6 +77,7 @@ public class FieldValueListTest { Attribute.RECORD, FieldValueList.of( ImmutableList.of(floatFv, timestampFv), schema.get("ninth").getSubFields())); + private final FieldValue numericFv = FieldValue.of(Attribute.PRIMITIVE, "123456789.123456789"); private final List fieldValuesPb = ImmutableList.of( @@ -86,7 +89,8 @@ public class FieldValueListTest { bytesPb, nullPb, repeatedPb, - recordPb); + recordPb, + numericPb); private final FieldValueList fieldValues = FieldValueList.of( @@ -99,7 +103,8 @@ public class FieldValueListTest { bytesFv, nullFv, repeatedFv, - recordFv), + recordFv, + numericFv), schema); @Test @@ -111,7 +116,7 @@ public void testFromPb() { @Test public void testGetByIndex() { - assertEquals(9, fieldValues.size()); + assertEquals(10, fieldValues.size()); assertEquals(booleanFv, fieldValues.get(0)); assertEquals(integerFv, fieldValues.get(1)); assertEquals(floatFv, fieldValues.get(2)); @@ -127,11 +132,12 @@ public void testGetByIndex() { assertEquals(2, fieldValues.get(8).getRecordValue().size()); assertEquals(floatFv, fieldValues.get(8).getRecordValue().get(0)); assertEquals(timestampFv, fieldValues.get(8).getRecordValue().get(1)); + assertEquals(numericFv, fieldValues.get(9)); } @Test public void testGetByName() { - assertEquals(9, fieldValues.size()); + assertEquals(10, fieldValues.size()); assertEquals(booleanFv, fieldValues.get("first")); assertEquals(integerFv, fieldValues.get("second")); assertEquals(floatFv, fieldValues.get("third")); @@ -147,6 +153,7 @@ public void testGetByName() { assertEquals(2, fieldValues.get("ninth").getRecordValue().size()); assertEquals(floatFv, fieldValues.get("ninth").getRecordValue().get("first")); assertEquals(timestampFv, fieldValues.get("ninth").getRecordValue().get("second")); + assertEquals(numericFv, fieldValues.get("tenth")); } @Test @@ -161,7 +168,8 @@ public void testNullSchema() { bytesFv, nullFv, repeatedFv, - recordFv)); + recordFv, + numericFv)); assertEquals(fieldValues, fieldValuesNoSchema); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java index f01a23d80a6f..e5afcedcbfad 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java @@ -29,6 +29,7 @@ import org.junit.Test; +import java.math.BigDecimal; import java.util.Map; public class FieldValueTest { @@ -38,6 +39,8 @@ public class FieldValueTest { private static final TableCell BOOLEAN_FIELD = new TableCell().setV("false"); private static final Map INTEGER_FIELD = ImmutableMap.of("v", "1"); private static final Map FLOAT_FIELD = ImmutableMap.of("v", "1.5"); + private static final Map NUMERIC_FIELD = + ImmutableMap.of("v", "123456789.123456789"); private static final Map STRING_FIELD = ImmutableMap.of("v", "string"); private static final Map TIMESTAMP_FIELD = ImmutableMap.of("v", "42"); private static final Map BYTES_FIELD = ImmutableMap.of("v", BYTES_BASE64); @@ -59,6 +62,9 @@ public void testFromPb() { value = FieldValue.fromPb(FLOAT_FIELD); assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); assertEquals(1.5, value.getDoubleValue(), 0); + value = FieldValue.fromPb(NUMERIC_FIELD); + assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); + assertEquals(new BigDecimal("123456789.123456789"), value.getNumericValue()); value = FieldValue.fromPb(STRING_FIELD); assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); assertEquals("string", value.getStringValue()); @@ -95,6 +101,11 @@ public void testEquals() { assertEquals(floatValue, FieldValue.fromPb(FLOAT_FIELD)); assertEquals(floatValue.hashCode(), FieldValue.fromPb(FLOAT_FIELD).hashCode()); + FieldValue numericValue = + FieldValue.of(FieldValue.Attribute.PRIMITIVE, "123456789.123456789"); + assertEquals(numericValue, FieldValue.fromPb(NUMERIC_FIELD)); + assertEquals(numericValue.hashCode(), FieldValue.fromPb(NUMERIC_FIELD).hashCode()); + FieldValue stringValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "string"); assertEquals(stringValue, FieldValue.fromPb(STRING_FIELD)); assertEquals(stringValue.hashCode(), FieldValue.fromPb(STRING_FIELD).hashCode()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index f804923bf7c1..5b024e3f8948 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -19,6 +19,7 @@ import static com.google.common.truth.Truth.assertThat; import com.google.api.services.bigquery.model.QueryParameterType; +import java.math.BigDecimal; import java.util.List; import org.junit.Test; @@ -69,6 +70,15 @@ public void testFloat64FromFloat() { assertThat(value.getArrayValues()).isNull(); } + @Test + public void testNumeric() { + QueryParameterValue value = QueryParameterValue.numeric(new BigDecimal("123.456")); + assertThat(value.getValue()).isEqualTo("123.456"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.NUMERIC); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + @Test public void testString() { QueryParameterValue value = QueryParameterValue.string("foo"); @@ -132,6 +142,16 @@ public void testFloat64ArrayFromFloats() { assertArrayDataEquals(new String[]{"2.6", "5.4"}, StandardSQLTypeName.FLOAT64, value.getArrayValues()); } + @Test + public void testNumericArray() { + QueryParameterValue value = QueryParameterValue.array( + new BigDecimal[] {new BigDecimal("3.14"), new BigDecimal("1.59")}, BigDecimal.class); + assertThat(value.getValue()).isNull(); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); + assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.NUMERIC); + assertArrayDataEquals(new String[]{"3.14", "1.59"}, StandardSQLTypeName.NUMERIC, value.getArrayValues()); + } + @Test public void testStringArray() { QueryParameterValue value = QueryParameterValue.array(new String[] {"Ana", "Marv"}, String.class); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 29d4c19ed74e..bd88f9e5f8bd 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -84,6 +84,7 @@ import com.google.common.collect.Sets; import com.google.common.io.BaseEncoding; import java.io.IOException; +import java.math.BigDecimal; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.util.Collections; @@ -164,9 +165,14 @@ public class ITBigQueryTest { .setMode(Field.Mode.NULLABLE) .setDescription("FloatDescription") .build(); + private static final Field NUMERIC_FIELD_SCHEMA = + Field.newBuilder("NumericField", LegacySQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("NumericDescription") + .build(); private static final Schema TABLE_SCHEMA = Schema.of(TIMESTAMP_FIELD_SCHEMA, STRING_FIELD_SCHEMA, INTEGER_ARRAY_FIELD_SCHEMA, BOOLEAN_FIELD_SCHEMA, BYTES_FIELD_SCHEMA, RECORD_FIELD_SCHEMA, - INTEGER_FIELD_SCHEMA, FLOAT_FIELD_SCHEMA); + INTEGER_FIELD_SCHEMA, FLOAT_FIELD_SCHEMA, NUMERIC_FIELD_SCHEMA); private static final Schema SIMPLE_SCHEMA = Schema.of(STRING_FIELD_SCHEMA); private static final Schema QUERY_RESULT_SCHEMA = Schema.of( Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) @@ -198,7 +204,8 @@ public class ITBigQueryTest { + " \"BytesField\": \"" + BYTES_BASE64 + "\"" + " }," + " \"IntegerField\": \"3\"," - + " \"FloatField\": \"1.2\"" + + " \"FloatField\": \"1.2\"," + + " \"NumericField\": \"3.14\"" + "}\n" + "{" + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," @@ -214,7 +221,8 @@ public class ITBigQueryTest { + " \"BytesField\": \"" + BYTES_BASE64 + "\"" + " }," + " \"IntegerField\": \"3\"," - + " \"FloatField\": \"1.2\"" + + " \"FloatField\": \"1.2\"," + + " \"NumericField\": \"123456.789012345\"" + "}"; private static final Set PUBLIC_DATASETS = ImmutableSet.of("github_repos", "hacker_news", @@ -642,6 +650,7 @@ public void testInsertAll() throws IOException { "BytesField", BYTES_BASE64)); builder1.put("IntegerField", 5); builder1.put("FloatField", 1.2); + builder1.put("NumericField", new BigDecimal("123456789.123456789")); ImmutableMap.Builder builder2 = ImmutableMap.builder(); builder2.put("TimestampField", "2014-08-19 07:41:35.220 -05:00"); builder2.put("StringField", "stringValue"); @@ -655,6 +664,7 @@ public void testInsertAll() throws IOException { "BytesField", BYTES_BASE64)); builder2.put("IntegerField", 5); builder2.put("FloatField", 1.2); + builder2.put("NumericField", new BigDecimal("123456789.123456789")); InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()) .addRow(builder1.build()) .addRow(builder2.build()) @@ -684,6 +694,7 @@ public void testInsertAllWithSuffix() throws InterruptedException { "BytesField", BYTES_BASE64)); builder1.put("IntegerField", 5); builder1.put("FloatField", 1.2); + builder1.put("NumericField", new BigDecimal("123456789.123456789")); ImmutableMap.Builder builder2 = ImmutableMap.builder(); builder2.put("TimestampField", "2014-08-19 07:41:35.220 -05:00"); builder2.put("StringField", "stringValue"); @@ -697,6 +708,7 @@ public void testInsertAllWithSuffix() throws InterruptedException { "BytesField", BYTES_BASE64)); builder2.put("IntegerField", 5); builder2.put("FloatField", 1.2); + builder2.put("NumericField", new BigDecimal("123456789.123456789")); InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()) .addRow(builder1.build()) .addRow(builder2.build()) @@ -735,6 +747,7 @@ public void testInsertAllWithErrors() { "BytesField", BYTES_BASE64)); builder1.put("IntegerField", 5); builder1.put("FloatField", 1.2); + builder1.put("NumericField", new BigDecimal("123456789.123456789")); ImmutableMap.Builder builder2 = ImmutableMap.builder(); builder2.put("TimestampField", "invalidDate"); builder2.put("StringField", "stringValue"); @@ -748,6 +761,7 @@ public void testInsertAllWithErrors() { "BytesField", BYTES_BASE64)); builder2.put("IntegerField", 5); builder2.put("FloatField", 1.2); + builder2.put("NumericField", new BigDecimal("123456789.123456789")); ImmutableMap.Builder builder3 = ImmutableMap.builder(); builder3.put("TimestampField", "2014-08-19 07:41:35.220 -05:00"); builder3.put("StringField", "stringValue"); @@ -781,6 +795,7 @@ public void testListAllTableData() { FieldValue recordCell = row.get(5); FieldValue integerCell = row.get(6); FieldValue floatCell = row.get(7); + FieldValue numericCell = row.get(8); assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); assertEquals(FieldValue.Attribute.REPEATED, integerArrayCell.getAttribute()); @@ -789,6 +804,7 @@ public void testListAllTableData() { assertEquals(FieldValue.Attribute.RECORD, recordCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, integerCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, floatCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, numericCell.getAttribute()); assertEquals(1408452095220000L, timestampCell.getTimestampValue()); assertEquals("stringValue", stringCell.getStringValue()); assertEquals(0, integerArrayCell.getRepeatedValue().get(0).getLongValue()); @@ -802,6 +818,7 @@ public void testListAllTableData() { assertEquals(true, recordCell.getRecordValue().get(3).getBooleanValue()); assertEquals(3, integerCell.getLongValue()); assertEquals(1.2, floatCell.getDoubleValue(), 0.0001); + assertEquals(new BigDecimal("123456789.123456789"), numericCell.getNumericValue()); rowCount++; } assertEquals(2, rowCount); @@ -849,7 +866,8 @@ public void testPositionalQueryParameters() throws InterruptedException { " AND TimestampField > ?" + " AND IntegerField IN UNNEST(?)" + " AND IntegerField < ?" + - " AND FloatField > ?"; + " AND FloatField > ?" + + " AND NumericField < ?"; QueryParameterValue stringParameter = QueryParameterValue.string("stringValue"); QueryParameterValue timestampParameter = QueryParameterValue.timestamp("2014-01-01 07:00:00.000000+00:00"); @@ -857,6 +875,8 @@ public void testPositionalQueryParameters() throws InterruptedException { QueryParameterValue.array(new Integer[] {3, 4}, Integer.class); QueryParameterValue int64Parameter = QueryParameterValue.int64(5); QueryParameterValue float64Parameter = QueryParameterValue.float64(0.5); + QueryParameterValue numericParameter = + QueryParameterValue.numeric(new BigDecimal("234567890.123456")); QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query) .setDefaultDataset(DatasetId.of(DATASET)) .setUseLegacySql(false) @@ -865,6 +885,7 @@ public void testPositionalQueryParameters() throws InterruptedException { .addPositionalParameter(intArrayParameter) .addPositionalParameter(int64Parameter) .addPositionalParameter(float64Parameter) + .addPositionalParameter(numericParameter) .build(); TableResult result = bigquery.query(config); assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); @@ -1191,6 +1212,7 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo FieldValue recordCell = row.get(5); FieldValue integerCell = row.get(6); FieldValue floatCell = row.get(7); + FieldValue numericCell = row.get(8); assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); assertEquals(FieldValue.Attribute.REPEATED, integerArrayCell.getAttribute()); @@ -1199,6 +1221,7 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo assertEquals(FieldValue.Attribute.RECORD, recordCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, integerCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, floatCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, numericCell.getAttribute()); assertEquals(1408452095220000L, timestampCell.getTimestampValue()); assertEquals("stringValue", stringCell.getStringValue()); assertEquals(0, integerArrayCell.getRepeatedValue().get(0).getLongValue()); @@ -1212,6 +1235,7 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo assertEquals(true, recordCell.getRecordValue().get(3).getBooleanValue()); assertEquals(3, integerCell.getLongValue()); assertEquals(1.2, floatCell.getDoubleValue(), 0.0001); + assertEquals(new BigDecimal("123456789.123456789"), floatCell.getNumericValue()); rowCount++; } assertEquals(2, rowCount); From 750a025ba3d0de52782c5dde76153d9b1a75a080 Mon Sep 17 00:00:00 2001 From: shollyman Date: Tue, 22 May 2018 15:37:09 -0700 Subject: [PATCH 0011/3441] BigQuery: correct ITBigQueryTest (#3303) Test asserts consistent values for all rows within a table, but the sample data used for generating tables was inconsistent between rows. --- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index bd88f9e5f8bd..3d69753279f6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -205,7 +205,7 @@ public class ITBigQueryTest { + " }," + " \"IntegerField\": \"3\"," + " \"FloatField\": \"1.2\"," - + " \"NumericField\": \"3.14\"" + + " \"NumericField\": \"123456.789012345\"" + "}\n" + "{" + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," @@ -818,7 +818,7 @@ public void testListAllTableData() { assertEquals(true, recordCell.getRecordValue().get(3).getBooleanValue()); assertEquals(3, integerCell.getLongValue()); assertEquals(1.2, floatCell.getDoubleValue(), 0.0001); - assertEquals(new BigDecimal("123456789.123456789"), numericCell.getNumericValue()); + assertEquals(new BigDecimal("123456.789012345"), numericCell.getNumericValue()); rowCount++; } assertEquals(2, rowCount); @@ -1235,7 +1235,7 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo assertEquals(true, recordCell.getRecordValue().get(3).getBooleanValue()); assertEquals(3, integerCell.getLongValue()); assertEquals(1.2, floatCell.getDoubleValue(), 0.0001); - assertEquals(new BigDecimal("123456789.123456789"), floatCell.getNumericValue()); + assertEquals(new BigDecimal("123456.789012345"), numericCell.getNumericValue()); rowCount++; } assertEquals(2, rowCount); From d95fccf203960d9088c37b86ba50abb3a3abf683 Mon Sep 17 00:00:00 2001 From: neozwu Date: Thu, 24 May 2018 10:13:56 -0700 Subject: [PATCH 0012/3441] release 0.49.0 (#3310) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index cd07059f3449..d2b3373937f7 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.30.0 + 1.31.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.30.0' +compile 'com.google.cloud:google-cloud-bigquery:1.31.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.30.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.31.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 41e8abd466dc..04530f68adc0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.30.1-SNAPSHOT + 1.31.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.48.1-alpha-SNAPSHOT + 0.49.0-alpha google-cloud-bigquery From df6ad33b2634e4cae4ae906aa4fd2f764f22fa7a Mon Sep 17 00:00:00 2001 From: neozwu Date: Thu, 24 May 2018 11:10:53 -0700 Subject: [PATCH 0013/3441] bump version for development (#3311) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 04530f68adc0..5d8430b9a57b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.31.0 + 1.31.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.49.0-alpha + 0.49.1-alpha-SNAPSHOT google-cloud-bigquery From 9cecd1ca52e41928cb9b5a770df5a18f4e6d77ef Mon Sep 17 00:00:00 2001 From: neozwu Date: Fri, 1 Jun 2018 10:55:00 -0700 Subject: [PATCH 0014/3441] fix example links (#3328) --- google-cloud-bigquery/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index d2b3373937f7..f43d7d0f01b1 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -35,7 +35,7 @@ libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.31.0" Example Application ------------------- -- [`BigQueryExample`](../google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/BigQueryExample.java) - A simple command line interface providing some of Cloud BigQuery's functionality. +- [`BigQueryExample`](../../google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/BigQueryExample.java) - A simple command line interface providing some of Cloud BigQuery's functionality. Read more about using this application on the [`BigQueryExample` docs page](https://googlecloudplatform.github.io/google-cloud-java/apidocs/?com/google/cloud/examples/bigquery/BigQueryExample.html). Authentication @@ -188,7 +188,7 @@ for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) { #### Complete source code In -[InsertDataAndQueryTable.java](../google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/InsertDataAndQueryTable.java) +[InsertDataAndQueryTable.java](../../google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/InsertDataAndQueryTable.java) we put together all the code shown above into one program. The program assumes that you are running on Compute Engine or from your own desktop. To run the example on App Engine, simply move the code from the main method to your application's servlet class and change the print statements to From cfccf7716ce4e024d5e62e50bbbd59bf21d1f076 Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Fri, 1 Jun 2018 15:04:04 -0700 Subject: [PATCH 0015/3441] Release 0.50.0 (#3337) * Also add texttospeech v1 to versions.txt --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index f43d7d0f01b1..8e36636e197c 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.31.0 + 1.32.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.31.0' +compile 'com.google.cloud:google-cloud-bigquery:1.32.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.31.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.32.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5d8430b9a57b..afcbb4267c12 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.31.1-SNAPSHOT + 1.32.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.49.1-alpha-SNAPSHOT + 0.50.0-alpha google-cloud-bigquery From 164e14e7ebbb79a255b3bca68438a04002661584 Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Fri, 1 Jun 2018 15:14:47 -0700 Subject: [PATCH 0016/3441] Bump version for development (#3338) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index afcbb4267c12..2329c2cdb488 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.32.0 + 1.32.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.50.0-alpha + 0.50.1-alpha-SNAPSHOT google-cloud-bigquery From 8544e43ffbbeba378314d9106931c469a1b6c515 Mon Sep 17 00:00:00 2001 From: Michael Darakananda Date: Wed, 6 Jun 2018 13:26:09 -0700 Subject: [PATCH 0017/3441] bigquery: allow user to null partition expiration (#3353) --- .../cloud/bigquery/TimePartitioning.java | 26 ++++----- .../cloud/bigquery/it/ITBigQueryTest.java | 53 +++++++++++++++++++ 2 files changed, 67 insertions(+), 12 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java index 659c902b56b8..f8ea493eeda8 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java @@ -16,15 +16,13 @@ package com.google.cloud.bigquery; -import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.MoreObjects.firstNonNull; +import com.google.api.client.util.Data; import com.google.api.core.BetaApi; import com.google.auto.value.AutoValue; -import com.google.common.base.MoreObjects; - -import javax.annotation.Nullable; import java.io.Serializable; -import java.util.Objects; +import javax.annotation.Nullable; /** * Objects of this class allow to configure table partitioning based on time. By dividing a large @@ -63,7 +61,7 @@ public enum Type { /** * Returns the number of milliseconds for which to keep the storage for a partition. When expired, - * the storage for the partition is reclaimed. + * the storage for the partition is reclaimed. If null, the partion does not expire. */ @Nullable public abstract Long getExpirationMs(); @@ -115,7 +113,7 @@ public static Builder newBuilder(Type type) { /** * Returns a {@code TimePartitioning} object given the time partitioning type. Currently, the only * type supported is {@link Type#DAY}, which will generate one partition per day based on data - * loading time. + * loading time. The partitions will not expire. */ public static TimePartitioning of(Type type) { return newBuilder(type).build(); @@ -137,7 +135,7 @@ com.google.api.services.bigquery.model.TimePartitioning toPb() { com.google.api.services.bigquery.model.TimePartitioning partitioningPb = new com.google.api.services.bigquery.model.TimePartitioning(); partitioningPb.setType(getType().name()); - partitioningPb.setExpirationMs(getExpirationMs()); + partitioningPb.setExpirationMs(firstNonNull(getExpirationMs(), Data.NULL_LONG)); partitioningPb.setRequirePartitionFilter(getRequirePartitionFilter()); partitioningPb.setField(getField()); return partitioningPb; @@ -145,10 +143,14 @@ com.google.api.services.bigquery.model.TimePartitioning toPb() { static TimePartitioning fromPb( com.google.api.services.bigquery.model.TimePartitioning partitioningPb) { + Long expirationMs = partitioningPb.getExpirationMs(); + if (Data.isNull(expirationMs)) { + expirationMs = null; + } return newBuilder(Type.valueOf(partitioningPb.getType())) - .setExpirationMs(partitioningPb.getExpirationMs()) - .setField(partitioningPb.getField()) - .setRequirePartitionFilter(partitioningPb.getRequirePartitionFilter()) - .build(); + .setExpirationMs(expirationMs) + .setField(partitioningPb.getField()) + .setRequirePartitionFilter(partitioningPb.getRequirePartitionFilter()) + .build(); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 3d69753279f6..572c9506c67b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -591,6 +591,59 @@ public void testUpdateTable() { assertThat(createdTable.delete()).isTrue(); } + @Test + public void testUpdateTimePartitioning() { + String tableName = "testUpdateTimePartitioning"; + TableId tableId = TableId.of(DATASET, tableName); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setTimePartitioning(TimePartitioning.of(Type.DAY)) + .build(); + + Table table = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertThat(table.getDefinition()).isInstanceOf(StandardTableDefinition.class); + assertThat( + ((StandardTableDefinition) table.getDefinition()) + .getTimePartitioning() + .getExpirationMs()) + .isNull(); + + table = + table + .toBuilder() + .setDefinition( + tableDefinition + .toBuilder() + .setTimePartitioning(TimePartitioning.of(Type.DAY, 42L)) + .build()) + .build() + .update(BigQuery.TableOption.fields(BigQuery.TableField.TIME_PARTITIONING)); + assertThat( + ((StandardTableDefinition) table.getDefinition()) + .getTimePartitioning() + .getExpirationMs()) + .isEqualTo(42L); + + table = + table + .toBuilder() + .setDefinition( + tableDefinition + .toBuilder() + .setTimePartitioning(TimePartitioning.of(Type.DAY)) + .build()) + .build() + .update(BigQuery.TableOption.fields(BigQuery.TableField.TIME_PARTITIONING)); + assertThat( + ((StandardTableDefinition) table.getDefinition()) + .getTimePartitioning() + .getExpirationMs()) + .isNull(); + + table.delete(); + } + @Test public void testUpdateTableWithSelectedFields() { String tableName = "test_update_with_selected_fields_table"; From a4180e7fb07c1e688d435a2b71ab07497d93685d Mon Sep 17 00:00:00 2001 From: Tim Swast Date: Thu, 7 Jun 2018 17:28:23 -0400 Subject: [PATCH 0018/3441] Add support for PARQUET format in BigQuery load jobs. (#3357) * Add support for PARQUET format in BigQuery load jobs. Also adds a code sample demonstrating / testing parquet loads. Modelled after the Python sample at https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-parquet * s/remoteLoadJob/loadJob/g All jobs are remote jobs. --- .../java/com/google/cloud/bigquery/FormatOptions.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java index 439039f0f071..2b64f446add8 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java @@ -34,6 +34,7 @@ public class FormatOptions implements Serializable { static final String DATASTORE_BACKUP = "DATASTORE_BACKUP"; static final String AVRO = "AVRO"; static final String GOOGLE_SHEETS = "GOOGLE_SHEETS"; + static final String PARQUET = "PARQUET"; private static final long serialVersionUID = -443376052020423691L; private final String type; @@ -104,8 +105,15 @@ public static FormatOptions googleSheets() { } /** - * Default options for the provided format. + * Default options for PARQUET format. */ + public static FormatOptions parquet() { + return new FormatOptions(PARQUET); + } + + /** + * Default options for the provided format. + */ public static FormatOptions of(String format) { if (checkNotNull(format).equals(CSV)) { return csv(); From 5e501d71155c912720168e995bc0df916b9bd227 Mon Sep 17 00:00:00 2001 From: Michael Darakananda Date: Thu, 7 Jun 2018 16:17:57 -0700 Subject: [PATCH 0019/3441] Release 0.51.0 (#3358) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 8e36636e197c..ec4f3b06328f 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.32.0 + 1.33.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.32.0' +compile 'com.google.cloud:google-cloud-bigquery:1.33.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.32.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.33.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2329c2cdb488..e10c892c6c3d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.32.1-SNAPSHOT + 1.33.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.50.1-alpha-SNAPSHOT + 0.51.0-alpha google-cloud-bigquery From 1d85d014bb60de29a3fe7f66a4600e7c611964eb Mon Sep 17 00:00:00 2001 From: Michael Darakananda Date: Fri, 8 Jun 2018 10:55:53 -0700 Subject: [PATCH 0020/3441] bump version for development (#3360) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e10c892c6c3d..018622a95b70 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.33.0 + 1.33.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.51.0-alpha + 0.51.1-alpha-SNAPSHOT google-cloud-bigquery From 8f5d9f738d934f1bdedc7bf003d144e5403564a4 Mon Sep 17 00:00:00 2001 From: Tim Swast Date: Fri, 8 Jun 2018 13:57:05 -0400 Subject: [PATCH 0021/3441] Add samples for managing tables. (#3361) Add missing Java samples for managing BigQuery tables documentation at https://cloud.google.com/bigquery/docs/managing-tables --- .../com/google/cloud/bigquery/BigQuery.java | 75 +++++++++++-------- 1 file changed, 44 insertions(+), 31 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index bab3d3370518..ee370bea5a58 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -560,22 +560,24 @@ public int hashCode() { * String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; * TableId tableId = TableId.of(datasetName, tableName); * // Table field definition - * Field[] fields = new Field[] { - * Field.of("name", LegacySQLTypeName.STRING), - * Field.of("post_abbr", LegacySQLTypeName.STRING) - * }; + * Field[] fields = + * new Field[] { + * Field.of("name", LegacySQLTypeName.STRING), + * Field.of("post_abbr", LegacySQLTypeName.STRING) + * }; * // Table schema definition * Schema schema = Schema.of(fields); - * LoadJobConfiguration configuration = LoadJobConfiguration.builder(tableId, sourceUri) - * .setFormatOptions(FormatOptions.json()) - * .setCreateDisposition(CreateDisposition.CREATE_IF_NEEDED) - * .setSchema(schema) - * .build(); + * LoadJobConfiguration configuration = + * LoadJobConfiguration.builder(tableId, sourceUri) + * .setFormatOptions(FormatOptions.json()) + * .setCreateDisposition(CreateDisposition.CREATE_IF_NEEDED) + * .setSchema(schema) + * .build(); * // Load the table - * Job remoteLoadJob = bigquery.create(JobInfo.of(configuration)); - * remoteLoadJob = remoteLoadJob.waitFor(); + * Job loadJob = bigquery.create(JobInfo.of(configuration)); + * loadJob = loadJob.waitFor(); * // Check the table - * System.out.println("State: " + remoteLoadJob.getStatus().getState()); + * System.out.println("State: " + loadJob.getStatus().getState()); * return ((StandardTableDefinition) bigquery.getTable(tableId).getDefinition()).getNumRows(); * } * @@ -771,9 +773,25 @@ public int hashCode() { * String datasetName = "my_dataset_name"; * String tableName = "my_table_name"; * String newDescription = "new_description"; - * Table oldTable = bigquery.getTable(datasetName, tableName); - * TableInfo tableInfo = oldTable.toBuilder().setDescription(newDescription).build(); - * Table newTable = bigquery.update(tableInfo); + * Table beforeTable = bigquery.getTable(datasetName, tableName); + * TableInfo tableInfo = beforeTable.toBuilder() + * .setDescription(newDescription) + * .build(); + * Table afterTable = bigquery.update(tableInfo); + * } + * + *

    Example of updating a table by changing its expiration. + *

     {@code
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * Table beforeTable = bigquery.getTable(datasetName, tableName);
    +   * 
    +   * // Set table to expire 5 days from now.
    +   * long expirationMillis = DateTime.now().plusDays(5).getMillis();
    +   * TableInfo tableInfo = beforeTable.toBuilder()
    +   *         .setExpirationTime(expirationMillis)
    +   *         .build();
    +   * Table afterTable = bigquery.update(tableInfo);
        * }
    * * @throws BigQueryException upon failure @@ -869,10 +887,12 @@ public int hashCode() { * Map recordsContent = new HashMap<>(); * recordsContent.put("stringField", "Hello, World!"); * rowContent.put("recordField", recordsContent); - * InsertAllResponse response = bigquery.insertAll(InsertAllRequest.newBuilder(tableId) - * .addRow("rowId", rowContent) - * // More rows can be added in the same RPC by invoking .addRow() on the builder - * .build()); + * InsertAllResponse response = + * bigquery.insertAll( + * InsertAllRequest.newBuilder(tableId) + * .addRow("rowId", rowContent) + * // More rows can be added in the same RPC by invoking .addRow() on the builder + * .build()); * if (response.hasErrors()) { * // If any of the insertions failed, this lets you inspect the errors * for (Entry> entry : response.getInsertErrors().entrySet()) { @@ -936,8 +956,7 @@ public int hashCode() { * String tableName = "my_table_name"; * Schema schema = ...; * String field = "field"; - * TableResult tableData = - * bigquery.listTableData(datasetName, tableName, schema); + * TableResult tableData = bigquery.listTableData(datasetName, tableName, schema); * for (FieldValueList row : tableData.iterateAll()) { * row.get(field); * } @@ -1083,10 +1102,8 @@ TableResult listTableData( *

    Example of running a query. *

     {@code
        * // BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
    -   * String query =
    -   *     "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
    -   * QueryJobConfiguration queryConfig =
    -   *     QueryJobConfiguration.newBuilder(query).build();
    +   * String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
    +   * QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build();
        * 
        * // Print the results.
        * for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) {
    @@ -1145,9 +1162,7 @@ TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption...
        * String csvData = "StringValue1\nStringValue2\n";
        * TableId tableId = TableId.of(datasetName, tableName);
        * WriteChannelConfiguration writeChannelConfiguration =
    -   *     WriteChannelConfiguration.newBuilder(tableId)
    -   *         .setFormatOptions(FormatOptions.csv())
    -   *         .build();
    +   *     WriteChannelConfiguration.newBuilder(tableId).setFormatOptions(FormatOptions.csv()).build();
        * TableDataWriteChannel writer = bigquery.writer(writeChannelConfiguration);
        * // Write data to writer
        * try {
    @@ -1170,9 +1185,7 @@ TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption...
        * String location = "us";
        * TableId tableId = TableId.of(datasetName, tableName);
        * WriteChannelConfiguration writeChannelConfiguration =
    -   *     WriteChannelConfiguration.newBuilder(tableId)
    -   *         .setFormatOptions(FormatOptions.csv())
    -   *         .build();
    +   *     WriteChannelConfiguration.newBuilder(tableId).setFormatOptions(FormatOptions.csv()).build();
        * // The location must be specified; other fields can be auto-detected.
        * JobId jobId = JobId.newBuilder().setLocation(location).build();
        * TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration);
    
    From f00bbddf00b5f58b54f63a75f8463808e5332fad Mon Sep 17 00:00:00 2001
    From: Garrett Jones 
    Date: Thu, 14 Jun 2018 10:56:35 -0700
    Subject: [PATCH 0022/3441] Release 0.52.0 (#3376)
    
    ---
     google-cloud-bigquery/README.md | 6 +++---
     google-cloud-bigquery/pom.xml   | 4 ++--
     2 files changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md
    index ec4f3b06328f..84841f4c6de8 100644
    --- a/google-cloud-bigquery/README.md
    +++ b/google-cloud-bigquery/README.md
    @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file
     
       com.google.cloud
       google-cloud-bigquery
    -  1.33.0
    +  1.34.0
     
     ```
     If you are using Gradle, add this to your dependencies
     ```Groovy
    -compile 'com.google.cloud:google-cloud-bigquery:1.33.0'
    +compile 'com.google.cloud:google-cloud-bigquery:1.34.0'
     ```
     If you are using SBT, add this to your dependencies
     ```Scala
    -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.33.0"
    +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.34.0"
     ```
     [//]: # ({x-version-update-end})
     
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 018622a95b70..acc70e72fea5 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.33.1-SNAPSHOT
    +  1.34.0
       jar
       Google Cloud BigQuery
       https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.51.1-alpha-SNAPSHOT
    +    0.52.0-alpha
       
       
         google-cloud-bigquery
    
    From 8b3a826cb30065a4586e1e8b824002908cd61fcf Mon Sep 17 00:00:00 2001
    From: Garrett Jones 
    Date: Thu, 14 Jun 2018 14:53:09 -0700
    Subject: [PATCH 0023/3441] Bumping to snapshot versions (#3380)
    
    ---
     google-cloud-bigquery/pom.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index acc70e72fea5..8c71b3143402 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.34.0
    +  1.34.1-SNAPSHOT
       jar
       Google Cloud BigQuery
       https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.52.0-alpha
    +    0.52.1-alpha-SNAPSHOT
       
       
         google-cloud-bigquery
    
    From 63d8a1a31688a1010c84289c29e51babe4fffb1a Mon Sep 17 00:00:00 2001
    From: shollyman 
    Date: Tue, 19 Jun 2018 14:24:16 -0700
    Subject: [PATCH 0024/3441] BigQuery: Add ORC format support for load jobs,
     missing bigtable support. (#3391)
    
    * BigQuery: Add ORC format support for load jobs.
    
    Additionally, plumb in the (missing) Bigtable format support for
    federated tables.
    
    * add overrides, unit testing
    
    * Wire bigtable up into formatoptions
    
    * add copyright headers.
    
    * Convert BigtableColumn and BigtableColumnFamily to autovalue generation.
    
    * excise unused imports, address codacy kvetching about declaration order.
    
    * Address reviewer comments: formatting/whitespace, serializable, asserts
    
    * unused imports (asserts)
    ---
     .../google/cloud/bigquery/BigtableColumn.java | 137 +++++++++++++++
     .../cloud/bigquery/BigtableColumnFamily.java  | 144 ++++++++++++++++
     .../cloud/bigquery/BigtableOptions.java       | 156 ++++++++++++++++++
     .../bigquery/ExternalTableDefinition.java     |  17 ++
     .../google/cloud/bigquery/FormatOptions.java  |  32 +++-
     .../cloud/bigquery/BigtableOptionsTest.java   | 115 +++++++++++++
     6 files changed, 597 insertions(+), 4 deletions(-)
     create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java
     create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java
     create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java
     create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java
    new file mode 100644
    index 000000000000..8f18b548cda3
    --- /dev/null
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java
    @@ -0,0 +1,137 @@
    +/*
    + * Copyright 2018 Google LLC
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package com.google.cloud.bigquery;
    +
    +import com.google.common.base.Function;
    +import com.google.auto.value.AutoValue;
    +import java.io.Serializable;
    +import javax.annotation.Nullable;
    +
    +@AutoValue
    +public abstract class BigtableColumn implements Serializable {
    +
    +  private static final long serialVersionUID = 1L;
    +
    +  @Nullable
    +  public abstract String getQualifierEncoded();
    +
    +  @Nullable
    +  public abstract String getFieldName();
    +
    +  @Nullable
    +  public abstract Boolean getOnlyReadLatest();
    +
    +  @Nullable
    +  public abstract String getEncoding();
    +
    +  @Nullable
    +  public abstract String getType();
    +
    +  @AutoValue.Builder
    +  public abstract static class Builder {
    +
    +    /**
    +     * Qualifier of the column.
    +     *
    +     * Columns in the parent column family that has this exact qualifier are exposed as . field. If
    +     * the qualifier is valid UTF-8 string, it can be specified in the qualifier_string field.
    +     * Otherwise, a base-64 encoded value must be set to qualifier_encoded. The column field name is
    +     * the same as the column qualifier. However, if the qualifier is not a valid BigQuery field
    +     * identifier, a valid identifier must be provided as field_name.
    +     */
    +    public abstract Builder setQualifierEncoded(String qualifierEncoded);
    +
    +    /**
    +     * If the qualifier is not a valid BigQuery field identifier, a valid identifier must be
    +     * provided as the column field name and is used as field name in queries.
    +     */
    +    public abstract Builder setFieldName(String fieldName);
    +
    +    /**
    +     * If this is set, only the latest version of value in this column are exposed.
    +     *
    +     * 'onlyReadLatest' can also be set at the column family level. However, the setting at the
    +     * column level takes precedence if 'onlyReadLatest' is set at both levels.
    +     */
    +    public abstract Builder setOnlyReadLatest(Boolean onlyReadLatest);
    +
    +    /**
    +     * The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT
    +     * - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using
    +     * HBase Bytes.toBytes family of functions.
    +     *
    +     * Encoding can also be set at the column family level. However, the setting at the column level
    +     * takes precedence if 'encoding' is set at both levels.
    +     */
    +    public abstract Builder setEncoding(String encoding);
    +
    +    /**
    +     * The type to convert the value in cells of this column.
    +     *
    +     * The values are expected to be encoded using HBase Bytes.toBytes function when using the
    +     * BINARY encoding value. Following BigQuery types are allowed (case-sensitive): BYTES STRING
    +     * INTEGER FLOAT BOOLEAN Default type is BYTES.
    +     *
    +     * 'type' can also be set at the column family level. However, the setting at the column level
    +     * takes precedence if 'type' is set at both levels.
    +     */
    +    public abstract Builder setType(String type);
    +
    +    public abstract BigtableColumn build();
    +  }
    +
    +  static Builder newBuilder() {
    +    return new AutoValue_BigtableColumn.Builder();
    +  }
    +
    +  static BigtableColumn fromPb(com.google.api.services.bigquery.model.BigtableColumn column) {
    +    Builder builder = newBuilder();
    +    builder.setQualifierEncoded(column.getQualifierEncoded());
    +    builder.setFieldName(column.getFieldName());
    +    builder.setOnlyReadLatest(column.getOnlyReadLatest());
    +    builder.setEncoding(column.getEncoding());
    +    builder.setType(column.getType());
    +    return builder.build();
    +  }
    +
    +  com.google.api.services.bigquery.model.BigtableColumn toPb() {
    +    com.google.api.services.bigquery.model.BigtableColumn column = new com.google.api.services.bigquery.model.BigtableColumn()
    +        .setQualifierEncoded(getQualifierEncoded())
    +        .setFieldName(getFieldName())
    +        .setOnlyReadLatest(getOnlyReadLatest())
    +        .setEncoding(getEncoding())
    +        .setType(getType());
    +    return column;
    +  }
    +
    +  static final Function FROM_PB_FUNCTION =
    +      new Function() {
    +        @Override
    +        public BigtableColumn apply(
    +            com.google.api.services.bigquery.model.BigtableColumn pb) {
    +          return BigtableColumn.fromPb(pb);
    +        }
    +      };
    +
    +  static final Function TO_PB_FUNCTION =
    +      new Function() {
    +        @Override
    +        public com.google.api.services.bigquery.model.BigtableColumn apply(
    +            BigtableColumn column) {
    +          return column.toPb();
    +        }
    +      };
    +}
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java
    new file mode 100644
    index 000000000000..2d9993919d33
    --- /dev/null
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java
    @@ -0,0 +1,144 @@
    +/*
    + * Copyright 2018 Google LLC
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package com.google.cloud.bigquery;
    +
    +import com.google.common.base.Function;
    +import com.google.common.collect.Lists;
    +import com.google.auto.value.AutoValue;
    +import java.io.Serializable;
    +import java.util.List;
    +
    +/**
    + * List of column families to expose in the table schema along with their types. This list restricts
    + * the column families that can be referenced in queries and specifies their value types.
    + *
    + * You can use this list to do type conversions - see the 'type' field for more details. If you
    + * leave this list empty, all column families are present in the table schema and their values are
    + * read as BYTES. During a query only the column families referenced in that query are read from
    + * Bigtable.
    + */
    +
    +@AutoValue
    +public abstract class BigtableColumnFamily implements Serializable {
    +
    +  private static final long serialVersionUID = 1L;
    +
    +  public abstract String getFamilyID();
    +
    +  public abstract List getColumns();
    +
    +  public abstract String getEncoding();
    +
    +  public abstract Boolean getOnlyReadLatest();
    +
    +  public abstract String getType();
    +
    +  @AutoValue.Builder
    +  public abstract static class Builder {
    +
    +    /**
    +     * Identifier of the column family.
    +     */
    +    public abstract Builder setFamilyID(String familyID);
    +
    +    /**
    +     * Lists of columns that should be exposed as individual fields as opposed to a list of (column
    +     * name, value) pairs. All columns whose qualifier matches a qualifier in this list can be
    +     * accessed as .. Other columns can be accessed as a list through .Column field.
    +     */
    +    public abstract Builder setColumns(List columns);
    +
    +    /**
    +     * The encoding of the values when the type is not STRING.
    +     *
    +     * Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY
    +     * - indicates values are encoded using HBase Bytes.toBytes family of functions.
    +     *
    +     * This can be overridden for a specific column by listing that column in 'columns' and
    +     * specifying an encoding for it.
    +     */
    +    public abstract Builder setEncoding(String encoding);
    +
    +    /**
    +     * If true, only the latest version of values are exposed for all columns in this column family.
    +     * This can be overridden for a specific column by listing that column in 'columns' and
    +     * specifying a different setting for that column.
    +     */
    +    public abstract Builder setOnlyReadLatest(Boolean onlyReadLatest);
    +
    +    /**
    +     * The type to convert the value in cells of this column family. The values are expected to be
    +     * encoded using HBase Bytes.toBytes function when using the BINARY encoding value.
    +     *
    +     * Following BigQuery types are allowed (case-sensitive): BYTES STRING INTEGER FLOAT BOOLEAN.
    +     *
    +     * The default type is BYTES. This can be overridden for a specific column by listing that
    +     * column in 'columns' and specifying a type for it.
    +     */
    +    public abstract Builder setType(String type);
    +
    +    public abstract BigtableColumnFamily build();
    +  }
    +
    +  static Builder newBuilder() {
    +    return new AutoValue_BigtableColumnFamily.Builder();
    +  }
    +
    +  static BigtableColumnFamily fromPb(
    +      com.google.api.services.bigquery.model.BigtableColumnFamily columnFamily) {
    +    Builder builder = newBuilder();
    +    builder.setFamilyID(columnFamily.getFamilyId());
    +    builder.setColumns(Lists.transform(columnFamily.getColumns(), BigtableColumn.FROM_PB_FUNCTION));
    +    builder.setEncoding(columnFamily.getEncoding());
    +    builder.setOnlyReadLatest(columnFamily.getOnlyReadLatest());
    +    builder.setType(columnFamily.getType());
    +    return builder.build();
    +
    +  }
    +
    +  com.google.api.services.bigquery.model.BigtableColumnFamily toPb() {
    +    com.google.api.services.bigquery.model.BigtableColumnFamily colFamilyPb = new com.google.api.services.bigquery.model.BigtableColumnFamily()
    +        .setFamilyId(getFamilyID())
    +        .setEncoding(getEncoding())
    +        .setOnlyReadLatest(getOnlyReadLatest())
    +        .setType(getType());
    +    if (getColumns() != null) {
    +      colFamilyPb.setColumns(Lists.transform(getColumns(), BigtableColumn.TO_PB_FUNCTION));
    +    }
    +    return colFamilyPb;
    +  }
    +
    +  static final Function FROM_PB_FUNCTION =
    +      new Function() {
    +        @Override
    +        public BigtableColumnFamily apply(
    +            com.google.api.services.bigquery.model.BigtableColumnFamily pb) {
    +          return BigtableColumnFamily.fromPb(pb);
    +        }
    +      };
    +
    +  static final Function TO_PB_FUNCTION =
    +      new Function() {
    +        @Override
    +        public com.google.api.services.bigquery.model.BigtableColumnFamily apply(
    +            BigtableColumnFamily columnFamily) {
    +          return columnFamily.toPb();
    +        }
    +      };
    +}
    +
    +
    +
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java
    new file mode 100644
    index 000000000000..2d0e4692749a
    --- /dev/null
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java
    @@ -0,0 +1,156 @@
    +/*
    + * Copyright 2018 Google LLC
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package com.google.cloud.bigquery;
    +
    +import com.google.common.base.MoreObjects;
    +import com.google.common.collect.Lists;
    +import java.util.List;
    +import java.util.Objects;
    +
    +public class BigtableOptions extends FormatOptions {
    +
    +  private static final long serialVersionUID = 1L;
    +
    +  private final Boolean ignoreUnspecifiedColumnFamilies;
    +  private final Boolean readRowkeyAsString;
    +  private final List columnFamilies;
    +
    +  public Boolean getIgnoreUnspecifiedColumnFamilies() {
    +    return ignoreUnspecifiedColumnFamilies;
    +  }
    +
    +  public Boolean getReadRowkeyAsString() {
    +    return readRowkeyAsString;
    +  }
    +
    +  public List getColumnFamilies() {
    +    return columnFamilies;
    +  }
    +
    +  static final class Builder {
    +
    +    private Boolean ignoreUnspecifiedColumnFamilies;
    +    private Boolean readRowkeyAsString;
    +    private List columnFamilies;
    +
    +    private Builder() {
    +    }
    +
    +    private Builder(BigtableOptions bigtableOptions) {
    +      this.ignoreUnspecifiedColumnFamilies = bigtableOptions.ignoreUnspecifiedColumnFamilies;
    +      this.readRowkeyAsString = bigtableOptions.readRowkeyAsString;
    +      this.columnFamilies = bigtableOptions.columnFamilies;
    +    }
    +
    +    /**
    +     * If field is true, then the column families that are not specified in columnFamilies list are
    +     * not exposed in the table schema. Otherwise, they are read with BYTES type values. The default
    +     * value is false.
    +     */
    +    Builder setIgnoreUnspecifiedColumnFamilies(Boolean ignoreUnspecifiedColumnFamilies) {
    +      this.ignoreUnspecifiedColumnFamilies = ignoreUnspecifiedColumnFamilies;
    +      return this;
    +    }
    +
    +    /**
    +     * If readRowkeyAsString is true, then the rowkey column families will be read and converted to
    +     * string. Otherwise they are read with BYTES type values and users need to manually cast them
    +     * with CAST if necessary. The default value is false.
    +     */
    +    Builder setReadRowkeyAsString(Boolean readRowkeyAsString) {
    +      this.readRowkeyAsString = readRowkeyAsString;
    +      return this;
    +    }
    +
    +    /**
    +     * List of column families to expose in the table schema along with their types.
    +     *
    +     * This list restricts the column families that can be referenced in queries and specifies their
    +     * value types. You can use this list to do type conversions - see the 'type' field for more
    +     * details. If you leave this list empty, all column families are present in the table schema
    +     * and their values are read as BYTES. During a query only the column families referenced in
    +     * that query are read from Bigtable.
    +     */
    +    Builder setColumnFamilies(List columnFamilies) {
    +      this.columnFamilies = columnFamilies;
    +      return this;
    +    }
    +
    +    BigtableOptions build() {
    +      return new BigtableOptions(this);
    +    }
    +
    +  }
    +
    +  BigtableOptions(Builder builder) {
    +    super(FormatOptions.BIGTABLE);
    +    ignoreUnspecifiedColumnFamilies = builder.ignoreUnspecifiedColumnFamilies;
    +    readRowkeyAsString = builder.readRowkeyAsString;
    +    columnFamilies = builder.columnFamilies;
    +  }
    +
    +  @Override
    +  public String toString() {
    +    return MoreObjects.toStringHelper(this)
    +        .add("ignoreUnspecifiedColumnFamilies", ignoreUnspecifiedColumnFamilies)
    +        .add("readRowkeyAsString", readRowkeyAsString)
    +        .add("columnFamilies", columnFamilies)
    +        .toString();
    +  }
    +
    +  @Override
    +  public final int hashCode() {
    +    return Objects.hash(ignoreUnspecifiedColumnFamilies, readRowkeyAsString, columnFamilies);
    +  }
    +
    +  @Override
    +  public final boolean equals(Object obj) {
    +    if (obj == this) {
    +      return true;
    +    }
    +    if (obj == null || !obj.getClass().equals(BigtableOptions.class)) {
    +      return false;
    +    }
    +    BigtableOptions other = (BigtableOptions) obj;
    +    return ignoreUnspecifiedColumnFamilies == other.ignoreUnspecifiedColumnFamilies
    +        && readRowkeyAsString == other.readRowkeyAsString
    +        && Objects.equals(columnFamilies, other.columnFamilies);
    +  }
    +
    +  public static Builder newBuilder() {
    +    return new Builder();
    +  }
    +
    +  static BigtableOptions fromPb(com.google.api.services.bigquery.model.BigtableOptions options) {
    +    Builder builder = newBuilder();
    +    builder.setIgnoreUnspecifiedColumnFamilies(options.getIgnoreUnspecifiedColumnFamilies());
    +    builder.setReadRowkeyAsString(options.getReadRowkeyAsString());
    +    builder.setColumnFamilies(
    +        Lists.transform(options.getColumnFamilies(), BigtableColumnFamily.FROM_PB_FUNCTION));
    +    return builder.build();
    +  }
    +
    +  com.google.api.services.bigquery.model.BigtableOptions toPb() {
    +    com.google.api.services.bigquery.model.BigtableOptions options = new com.google.api.services.bigquery.model.BigtableOptions()
    +        .setIgnoreUnspecifiedColumnFamilies(ignoreUnspecifiedColumnFamilies)
    +        .setReadRowkeyAsString(readRowkeyAsString);
    +    if (columnFamilies != null) {
    +      options
    +          .setColumnFamilies(Lists.transform(columnFamilies, BigtableColumnFamily.TO_PB_FUNCTION));
    +    }
    +    return options;
    +  }
    +}
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java
    index d63918b9bb45..626e7ec41503 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java
    @@ -64,7 +64,15 @@ public abstract static class Builder
          * bucket's name. Size limits related to load jobs apply to external data sources, plus an
          * additional limit of 10 GB maximum size across all URIs.
          *
    +     * For Google Cloud Bigtable URIs:
    +     *   Exactly one URI can be specified and it has be a fully specified and valid
    +     *   HTTPS URL for a Google Cloud Bigtable table.
    +     *
    +     * For Google Cloud Datastore backup URIs:
    +     *   Exactly one URI can be specified. Also, the '*' wildcard character is not allowed.
    +     *
          * @see Quota
    +     *
          */
         public Builder setSourceUris(List sourceUris) {
           return setSourceUrisImmut(ImmutableList.copyOf(sourceUris));
    @@ -239,6 +247,9 @@ com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataC
         if (getFormatOptions() != null && FormatOptions.GOOGLE_SHEETS.equals(getFormatOptions().getType())) {
           externalConfigurationPb.setGoogleSheetsOptions(((GoogleSheetsOptions) getFormatOptions()).toPb());
         }
    +    if (getFormatOptions() != null && FormatOptions.BIGTABLE.equals(getFormatOptions().getType())) {
    +      externalConfigurationPb.setBigtableOptions(((BigtableOptions) getFormatOptions()).toPb());
    +    }
         if (getAutodetect() != null) {
           externalConfigurationPb.setAutodetect(getAutodetect());
         }
    @@ -346,6 +357,9 @@ static ExternalTableDefinition fromPb(Table tablePb) {
           if (externalDataConfiguration.getGoogleSheetsOptions() != null) {
             builder.setFormatOptions(GoogleSheetsOptions.fromPb(externalDataConfiguration.getGoogleSheetsOptions()));
           }
    +      if (externalDataConfiguration.getBigtableOptions() != null) {
    +        builder.setFormatOptions(BigtableOptions.fromPb(externalDataConfiguration.getBigtableOptions()));
    +      }
           builder.setMaxBadRecords(externalDataConfiguration.getMaxBadRecords());
           builder.setAutodetect(externalDataConfiguration.getAutodetect());
         }
    @@ -376,6 +390,9 @@ static ExternalTableDefinition fromExternalDataConfiguration(
         if (externalDataConfiguration.getGoogleSheetsOptions() != null) {
           builder.setFormatOptions(GoogleSheetsOptions.fromPb(externalDataConfiguration.getGoogleSheetsOptions()));
         }
    +    if (externalDataConfiguration.getBigtableOptions() != null) {
    +      builder.setFormatOptions(BigtableOptions.fromPb(externalDataConfiguration.getBigtableOptions()));
    +    }
         if (externalDataConfiguration.getMaxBadRecords() != null) {
           builder.setMaxBadRecords(externalDataConfiguration.getMaxBadRecords());
         }
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java
    index 2b64f446add8..71414fd8fc2b 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java
    @@ -26,15 +26,24 @@
     /**
      * Base class for Google BigQuery format options. These class define the format of external data
      * used by BigQuery, for either federated tables or load jobs.
    + *
    + * Load jobs support the following formats: AVRO, CSV, DATASTORE_BACKUP, GOOGLE_SHEETS, JSON, ORC,
    + * PARQUET
    + *
    + * Federated tables can be defined against following formats: AVRO, BIGTABLE, CSV, DATASTORE_BACKUP,
    + * GOOGLE_SHEETS, JSON
      */
     public class FormatOptions implements Serializable {
     
       static final String CSV = "CSV";
       static final String JSON = "NEWLINE_DELIMITED_JSON";
    +  static final String BIGTABLE = "BIGTABLE";
       static final String DATASTORE_BACKUP = "DATASTORE_BACKUP";
       static final String AVRO = "AVRO";
       static final String GOOGLE_SHEETS = "GOOGLE_SHEETS";
       static final String PARQUET = "PARQUET";
    +  static final String ORC = "ORC";
    +
       private static final long serialVersionUID = -443376052020423691L;
     
       private final String type;
    @@ -43,7 +52,6 @@ public class FormatOptions implements Serializable {
         this.type = type;
       }
     
    -
       /**
        * Returns the external data format, as a string.
        */
    @@ -97,6 +105,13 @@ public static FormatOptions avro() {
         return new FormatOptions(AVRO);
       }
     
    +  /**
    +   * Default options for BIGTABLE format.
    +   */
    +  public static FormatOptions bigtable() {
    +    return BigtableOptions.newBuilder().build();
    +  }
    +
       /**
        * Default options for GOOGLE_SHEETS format.
        */
    @@ -111,9 +126,16 @@ public static FormatOptions parquet() {
         return new FormatOptions(PARQUET);
       }
     
    -    /**
    -     * Default options for the provided format.
    -     */
    +  /**
    +   * Default options for the ORC format.
    +   */
    +  public static FormatOptions orc() {
    +    return new FormatOptions(ORC);
    +  }
    +
    +  /**
    +   * Default options for the provided format.
    +   */
       public static FormatOptions of(String format) {
         if (checkNotNull(format).equals(CSV)) {
           return csv();
    @@ -121,6 +143,8 @@ public static FormatOptions of(String format) {
           return datastoreBackup();
         } else if (format.equals(GOOGLE_SHEETS)) {
           return googleSheets();
    +    } else if (format.equals(BIGTABLE)) {
    +      return bigtable();
         }
         return new FormatOptions(format);
       }
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java
    new file mode 100644
    index 000000000000..bcf886ecaed9
    --- /dev/null
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java
    @@ -0,0 +1,115 @@
    +/*
    + * Copyright 2018 Google LLC
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package com.google.cloud.bigquery;
    +
    +import static com.google.common.truth.Truth.assertThat;
    +
    +import com.google.common.collect.ImmutableList;
    +import org.junit.Test;
    +
    +public class BigtableOptionsTest {
    +
    +  private static final BigtableColumn COL1 = BigtableColumn.newBuilder()
    +      .setQualifierEncoded("aaa")
    +      .setFieldName("field1")
    +      .setOnlyReadLatest(true)
    +      .setEncoding("BINARY")
    +      .setType("BYTES")
    +      .build();
    +  private static final BigtableColumn COL2 = BigtableColumn.newBuilder()
    +      .setQualifierEncoded("bbb")
    +      .setFieldName("field2")
    +      .setOnlyReadLatest(true)
    +      .setEncoding("TEXT")
    +      .setType("STRING")
    +      .build();
    +  private static final BigtableColumnFamily TESTFAMILY = BigtableColumnFamily.newBuilder()
    +      .setFamilyID("fooFamily")
    +      .setEncoding("TEXT")
    +      .setOnlyReadLatest(true)
    +      .setType("INTEGER")
    +      .setColumns(ImmutableList.of(COL1, COL2))
    +      .build();
    +  private static final BigtableOptions OPTIONS = BigtableOptions.newBuilder()
    +      .setIgnoreUnspecifiedColumnFamilies(true)
    +      .setReadRowkeyAsString(true)
    +      .setColumnFamilies(ImmutableList.of(TESTFAMILY))
    +      .build();
    +
    +  @Test
    +  public void testConstructors() {
    +    // column
    +    assertThat(COL1.getQualifierEncoded()).isEqualTo("aaa");
    +    assertThat(COL1.getFieldName()).isEqualTo("field1");
    +    assertThat(COL1.getOnlyReadLatest()).isEqualTo(true);
    +    assertThat(COL1.getEncoding()).isEqualTo("BINARY");
    +    assertThat(COL1.getType()).isEqualTo("BYTES");
    +
    +    // family
    +    assertThat(TESTFAMILY.getFamilyID()).isEqualTo("fooFamily");
    +    assertThat(TESTFAMILY.getEncoding()).isEqualTo("TEXT");
    +    assertThat(TESTFAMILY.getOnlyReadLatest()).isEqualTo(true);
    +    assertThat(TESTFAMILY.getType()).isEqualTo("INTEGER");
    +    assertThat(TESTFAMILY.getColumns()).isEqualTo(ImmutableList.of(COL1, COL2));
    +
    +    // options
    +    assertThat(OPTIONS.getIgnoreUnspecifiedColumnFamilies()).isEqualTo(true);
    +    assertThat(OPTIONS.getReadRowkeyAsString()).isEqualTo(true);
    +    assertThat(OPTIONS.getColumnFamilies()).isEqualTo(ImmutableList.of(TESTFAMILY));
    +  }
    +
    +  @Test
    +  public void testToAndFromPb() {
    +    compareBigtableColumn(COL1, BigtableColumn.fromPb(COL1.toPb()));
    +    compareBigtableColumnFamily(TESTFAMILY, BigtableColumnFamily.fromPb(TESTFAMILY.toPb()));
    +    compareBigtableOptions(OPTIONS, BigtableOptions.fromPb(OPTIONS.toPb()));
    +  }
    +
    +  @Test
    +  public void testEquals() {
    +    compareBigtableColumn(COL1, COL1);
    +    compareBigtableColumnFamily(TESTFAMILY, TESTFAMILY);
    +    compareBigtableOptions(OPTIONS, OPTIONS);
    +  }
    +
    +  private void compareBigtableColumn(BigtableColumn expected, BigtableColumn value) {
    +    assertThat(expected).isEqualTo(value);
    +    assertThat(expected.getEncoding()).isEqualTo(value.getEncoding());
    +    assertThat(expected.getFieldName()).isEqualTo(value.getFieldName());
    +    assertThat(expected.getQualifierEncoded()).isEqualTo(value.getQualifierEncoded());
    +    assertThat(expected.getOnlyReadLatest()).isEqualTo(value.getOnlyReadLatest());
    +    assertThat(expected.getType()).isEqualTo(value.getType());
    +  }
    +
    +  private void compareBigtableColumnFamily(BigtableColumnFamily expected,
    +      BigtableColumnFamily value) {
    +    assertThat(expected).isEqualTo(value);
    +    assertThat(expected.getFamilyID()).isEqualTo(value.getFamilyID());
    +    assertThat(expected.getOnlyReadLatest()).isEqualTo(value.getOnlyReadLatest());
    +    assertThat(expected.getColumns()).isEqualTo(value.getColumns());
    +    assertThat(expected.getEncoding()).isEqualTo(value.getEncoding());
    +    assertThat(expected.getType()).isEqualTo(value.getType());
    +
    +  }
    +
    +  private void compareBigtableOptions(BigtableOptions expected, BigtableOptions value) {
    +    assertThat(expected).isEqualTo(value);
    +    assertThat(expected.getIgnoreUnspecifiedColumnFamilies())
    +        .isEqualTo(value.getIgnoreUnspecifiedColumnFamilies());
    +    assertThat(expected.getReadRowkeyAsString()).isEqualTo(value.getReadRowkeyAsString());
    +    assertThat(expected.getColumnFamilies()).isEqualTo(value.getColumnFamilies());
    +  }
    +}
    \ No newline at end of file
    
    From 5afd1bc7d1e0d89c5f0558e94b3d40c9d722518c Mon Sep 17 00:00:00 2001
    From: Hanzhen Yi <33737743+hzyi-google@users.noreply.github.com>
    Date: Thu, 21 Jun 2018 14:51:15 -0700
    Subject: [PATCH 0025/3441] Release 0.53.0 (#3399)
    
    ---
     google-cloud-bigquery/README.md | 6 +++---
     google-cloud-bigquery/pom.xml   | 4 ++--
     2 files changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md
    index 84841f4c6de8..740691d44a36 100644
    --- a/google-cloud-bigquery/README.md
    +++ b/google-cloud-bigquery/README.md
    @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file
     
       com.google.cloud
       google-cloud-bigquery
    -  1.34.0
    +  1.35.0
     
     ```
     If you are using Gradle, add this to your dependencies
     ```Groovy
    -compile 'com.google.cloud:google-cloud-bigquery:1.34.0'
    +compile 'com.google.cloud:google-cloud-bigquery:1.35.0'
     ```
     If you are using SBT, add this to your dependencies
     ```Scala
    -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.34.0"
    +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.35.0"
     ```
     [//]: # ({x-version-update-end})
     
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 8c71b3143402..c1e0e4617631 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.34.1-SNAPSHOT
    +  1.35.0
       jar
       Google Cloud BigQuery
       https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.52.1-alpha-SNAPSHOT
    +    0.53.0-alpha
       
       
         google-cloud-bigquery
    
    From 1d5a58f28bc405d3cc2c2c6c2c7de502acd324c4 Mon Sep 17 00:00:00 2001
    From: Hanzhen Yi <33737743+hzyi-google@users.noreply.github.com>
    Date: Fri, 22 Jun 2018 10:36:30 -0700
    Subject: [PATCH 0026/3441] Bump to next snapshot version (#3401)
    
    ---
     google-cloud-bigquery/pom.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index c1e0e4617631..91201a2b3eed 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.35.0
    +  1.35.1-SNAPSHOT
       jar
       Google Cloud BigQuery
       https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.53.0-alpha
    +    0.53.1-alpha-SNAPSHOT
       
       
         google-cloud-bigquery
    
    From 3c88d5b82f7b31b44dffef40b70072a03a144e6a Mon Sep 17 00:00:00 2001
    From: Hanzhen Yi <33737743+hzyi-google@users.noreply.github.com>
    Date: Wed, 27 Jun 2018 11:29:07 -0700
    Subject: [PATCH 0027/3441] BigQuery: Document the behavior that streaming
     inserts are not present in destination output (#3407)
    
    ---
     .../main/java/com/google/cloud/bigquery/Table.java   | 12 ++++++++++++
     1 file changed, 12 insertions(+)
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java
    index ba45b7da56ab..6b193994e7cf 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java
    @@ -235,6 +235,12 @@ public boolean delete() {
       /**
        * Insert rows into the table.
        *
    +   * 

    Streaming inserts reside temporarily in the streaming buffer, which has different + * availability characteristics than managed storage. Certain operations do not interact with the + * streaming buffer, such as {@link #list(TableDataListOption...)} and {@link #copy(TableId, + * JobOption...)}. As such, recent streaming data will not be present in the destination table or + * output. + * *

    Example of inserting rows into the table. *

     {@code
        * String rowId1 = "rowId1";
    @@ -263,6 +269,12 @@ public InsertAllResponse insert(Iterable rows)
       /**
        * Insert rows into the table.
        *
    +   * 

    Streaming inserts reside temporarily in the streaming buffer, which has different + * availability characteristics than managed storage. Certain operations do not interact with the + * streaming buffer, such as {@link #list(TableDataListOption...)} and {@link #copy(TableId, + * JobOption...)}. As such, recent streaming data will not be present in the destination table or + * output. + * *

    Example of inserting rows into the table, ignoring invalid rows. *

     {@code
        * String rowId1 = "rowId1";
    
    From b51c26aaffa9d23dbca9c6d57e87183219d1df7d Mon Sep 17 00:00:00 2001
    From: Garrett Jones 
    Date: Thu, 28 Jun 2018 10:43:27 -0700
    Subject: [PATCH 0028/3441] Fixing versioning comments for GA clients (#3411)
    
    ---
     google-cloud-bigquery/README.md | 4 +---
     1 file changed, 1 insertion(+), 3 deletions(-)
    
    diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md
    index 740691d44a36..7b21b3b05a67 100644
    --- a/google-cloud-bigquery/README.md
    +++ b/google-cloud-bigquery/README.md
    @@ -220,9 +220,7 @@ Versioning
     
     This library follows [Semantic Versioning](http://semver.org/).
     
    -It is currently in major version zero (``0.y.z``), which means that anything
    -may change at any time and the public API should not be considered
    -stable.
    +It is currently in major version one (``1.y.z``), which means that the public API should be considered stable.
     
     Contributing
     ------------
    
    From d9d283640dd4b89d8f5fee6b6242a13624d040fd Mon Sep 17 00:00:00 2001
    From: Michael Darakananda 
    Date: Mon, 9 Jul 2018 14:06:12 -0700
    Subject: [PATCH 0029/3441] new approach for snippet injection (#2838)
    
    The current snippet injector does not work properly
    with google-java-format, because GJF formats short javadoc comments
    on one line, eg "/** comment */".
    However, the injector script looks for "/**" on a line by itself.
    The script will also not work if/when we move to Java 8, due to lack
    of parser support.
    
    This PR takes a different approach of not caring about Java syntax and
    copy-paste everything in the SNIPPET block. While less powerful, it is
    more robust.
    
    As written, the script is also easier to use. There's no need to tell it
    what file contains snippets and where to copy the snippets to. The
    script recursively scan given directories.
    
    Updates #2413.
    
    * license
    
    * Add test case for getSnip
    
    * Add support for cloud region tags to snippet.go
    ---
     .../com/google/cloud/bigquery/BigQuery.java   | 24 ++++++++++++-------
     1 file changed, 15 insertions(+), 9 deletions(-)
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java
    index ee370bea5a58..5c5dcd496d61 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java
    @@ -753,13 +753,19 @@ public int hashCode() {
        * Updates dataset information.
        *
        * 

    Example of updating a dataset by changing its description. - *

     {@code
    -   * String datasetName = "my_dataset_name";
    -   * String newDescription = "some_new_description";
    -   * Dataset oldDataset = bigquery.getDataset(datasetName);
    -   * DatasetInfo datasetInfo = oldDataset.toBuilder().setDescription(newDescription).build();
    -   * Dataset newDataset = bigquery.update(datasetInfo);
    -   * }
    + * + *
    {@code
    +   *    // String datasetName = "my_dataset_name";
    +   *    // String tableName = "my_table_name";
    +   *    // String newDescription = "new_description";
    +   *
    +   *    Table beforeTable = bigquery.getTable(datasetName, tableName);
    +   *    TableInfo tableInfo = beforeTable.toBuilder()
    +   *        .setDescription(newDescription)
    +   *        .build();
    +   *    Table afterTable = bigquery.update(tableInfo);
    +   *     }
    + * * * @throws BigQueryException upon failure */ @@ -785,7 +791,7 @@ public int hashCode() { * String datasetName = "my_dataset_name"; * String tableName = "my_table_name"; * Table beforeTable = bigquery.getTable(datasetName, tableName); - * + * * // Set table to expire 5 days from now. * long expirationMillis = DateTime.now().plusDays(5).getMillis(); * TableInfo tableInfo = beforeTable.toBuilder() @@ -1104,7 +1110,7 @@ TableResult listTableData( * // BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); * String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; * QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build(); - * + * * // Print the results. * for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) { * for (FieldValue val : row) { From 974eef194d19736cd548ebff4e06f62e9637155a Mon Sep 17 00:00:00 2001 From: Garrett Jones Date: Thu, 12 Jul 2018 11:57:22 -0700 Subject: [PATCH 0030/3441] Release 0.54.0 (#3457) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 7b21b3b05a67..a42831f0e689 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.35.0 + 1.36.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.35.0' +compile 'com.google.cloud:google-cloud-bigquery:1.36.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.35.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.36.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 91201a2b3eed..ab67d88d8faf 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.35.1-SNAPSHOT + 1.36.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.53.1-alpha-SNAPSHOT + 0.54.0-alpha google-cloud-bigquery From b425c9df973370f624bfb13f962c4ecc91ccc3fc Mon Sep 17 00:00:00 2001 From: Garrett Jones Date: Thu, 12 Jul 2018 12:47:20 -0700 Subject: [PATCH 0031/3441] Bumping to snapshot versions (#3463) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ab67d88d8faf..24e24b4bfafc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.36.0 + 1.36.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.54.0-alpha + 0.54.1-alpha-SNAPSHOT google-cloud-bigquery From d6850c7c9922e380e3dcaa5813d34714f762127d Mon Sep 17 00:00:00 2001 From: Tim Swast Date: Mon, 16 Jul 2018 14:40:12 -0700 Subject: [PATCH 0032/3441] Avoid listing table data for destination of CREATE VIEW DDL queries. (#3469) * Avoid listing table data for destination of CREATE VIEW DDL queries. CREATE VIEW DDL queries set a "destination table" field, but that table is actually a view. If you attempt to list rows on the view table, it results in an error. The fix is to avoid listing rows altogether if getQueryResults() says that a query has completed but the number of rows in the result set is undefined. * Applied google-java-format * Correct EmptyTableResult javadoc * Fix BigQueryImpl unit tests. * Fix JobTest unit tests. * Remove unused TableResult. --- .../cloud/bigquery/EmptyTableResult.java | 33 +++++++ .../java/com/google/cloud/bigquery/Job.java | 42 +++++++-- .../com/google/cloud/bigquery/JobStatus.java | 56 +++++------ .../cloud/bigquery/BigQueryImplTest.java | 7 +- .../com/google/cloud/bigquery/JobTest.java | 93 +++++++++++++++++-- 5 files changed, 176 insertions(+), 55 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java new file mode 100644 index 000000000000..1bda79caca04 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java @@ -0,0 +1,33 @@ +/* + * Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.core.InternalApi; +import com.google.cloud.PageImpl; + +public class EmptyTableResult extends TableResult { + + private static final long serialVersionUID = -4831062717210349819L; + + /** + * An empty {@code TableResult} to avoid making API requests to unlistable tables. + */ + @InternalApi("Exposed for testing") + public EmptyTableResult() { + super(null, 0, new PageImpl(null, "", null)); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index 9f85ffc73449..0643c268b7e0 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -27,6 +27,7 @@ import com.google.cloud.bigquery.BigQuery.QueryResultsOption; import com.google.cloud.bigquery.BigQuery.TableDataListOption; import com.google.cloud.bigquery.JobConfiguration.Type; +import com.google.common.collect.ImmutableList; import java.io.IOException; import java.io.ObjectInputStream; import java.util.ArrayList; @@ -154,7 +155,8 @@ public Job build() { * Checks if this job exists. * *

    Example of checking that a job exists. - *

     {@code
    +   *
    +   * 
    {@code
        * if (!job.exists()) {
        *   // job doesn't exist
        * }
    @@ -173,7 +175,8 @@ public boolean exists() {
        * not exist this method returns {@code true}.
        *
        * 

    Example of waiting for a job until it reports that it is done. - *

     {@code
    +   *
    +   * 
    {@code
        * while (!job.isDone()) {
        *   Thread.sleep(1000L);
        * }
    @@ -196,7 +199,8 @@ public boolean isDone() {
        * 12 hours as a total timeout and unlimited number of attempts.
        *
        * 

    Example usage of {@code waitFor()}. - *

     {@code
    +   *
    +   * 
    {@code
        * Job completedJob = job.waitFor();
        * if (completedJob == null) {
        *   // job no longer exists
    @@ -208,7 +212,8 @@ public boolean isDone() {
        * }
    * *

    Example usage of {@code waitFor()} with checking period and timeout. - *

     {@code
    +   *
    +   * 
    {@code
        * Job completedJob =
        *     job.waitFor(
        *         RetryOption.initialRetryDelay(Duration.ofSeconds(1)),
    @@ -285,10 +290,24 @@ public TableResult getQueryResults(QueryResultsOption... options)
         QueryResponse response =
             waitForQueryResults(
                 DEFAULT_JOB_WAIT_SETTINGS, waitOptions.toArray(new QueryResultsOption[0]));
    -    if (response.getSchema() == null) {
    -      throw new JobException(getJobId(), response.getErrors());
    +
    +    // Get the job resource to determine if it has errored.
    +    Job job = this;
    +    if (job.getStatus() == null || job.getStatus().getState() != JobStatus.State.DONE) {
    +      job = reload();
    +    }
    +    if (job.getStatus() != null && job.getStatus().getError() != null) {
    +      throw new JobException(
    +          getJobId(), ImmutableList.copyOf(job.getStatus().getExecutionErrors()));
         }
    -    
    +
    +    // If there are no rows in the result, this may have been a DDL query.
    +    // Listing table data might fail, such as with CREATE VIEW queries.
    +    // Avoid a tabledata.list API request by returning an empty TableResult.
    +    if (response.getTotalRows() == 0) {
    +      return new EmptyTableResult();
    +    }
    +
         TableId table = ((QueryJobConfiguration) getConfiguration()).getDestinationTable();
         return bigquery.listTableData(
             table, response.getSchema(), listOptions.toArray(new TableDataListOption[0]));
    @@ -356,7 +375,8 @@ public boolean shouldRetry(Throwable prevThrowable, Job prevResponse) {
        * Fetches current job's latest information. Returns {@code null} if the job does not exist.
        *
        * 

    Example of reloading all fields until job status is DONE. - *

     {@code
    +   *
    +   * 
    {@code
        * while (job.getStatus().getState() != JobStatus.State.DONE) {
        *   Thread.sleep(1000L);
        *   job = job.reload();
    @@ -364,7 +384,8 @@ public boolean shouldRetry(Throwable prevThrowable, Job prevResponse) {
        * }
    * *

    Example of reloading status field until job status is DONE. - *

     {@code
    +   *
    +   * 
    {@code
        * while (job.getStatus().getState() != JobStatus.State.DONE) {
        *   Thread.sleep(1000L);
        *   job = job.reload(BigQuery.JobOption.fields(BigQuery.JobField.STATUS));
    @@ -384,7 +405,8 @@ public Job reload(JobOption... options) {
        * Sends a job cancel request.
        *
        * 

    Example of cancelling a job. - *

     {@code
    +   *
    +   * 
    {@code
        * if (job.cancel()) {
        *   return true; // job successfully cancelled
        * } else {
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java
    index 24017499f190..b09d00e852eb 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java
    @@ -22,10 +22,10 @@
     import com.google.common.base.MoreObjects;
     import com.google.common.collect.ImmutableList;
     import com.google.common.collect.Lists;
    -
     import java.io.Serializable;
     import java.util.List;
     import java.util.Objects;
    +import javax.annotation.Nullable;
     
     /**
      * A Google BigQuery Job status. Objects of this class can be examined when polling an asynchronous
    @@ -35,9 +35,7 @@ public class JobStatus implements Serializable {
     
       private static final long serialVersionUID = -714976456815445365L;
     
    -  /**
    -   * Possible states that a BigQuery Job can assume.
    -   */
    +  /** Possible states that a BigQuery Job can assume. */
       public static final class State extends StringEnumValue {
         private static final long serialVersionUID = 818920627219751204L;
     
    @@ -49,18 +47,12 @@ public State apply(String constant) {
               }
             };
     
    -    private static final StringEnumType type = new StringEnumType(
    -        State.class,
    -        CONSTRUCTOR);
    +    private static final StringEnumType type = new StringEnumType(State.class, CONSTRUCTOR);
     
    -    /**
    -     * The BigQuery Job is waiting to be executed.
    -     */
    +    /** The BigQuery Job is waiting to be executed. */
         public static final State PENDING = type.createAndRegister("PENDING");
     
    -    /**
    -     * The BigQuery Job is being executed.
    -     */
    +    /** The BigQuery Job is being executed. */
         public static final State RUNNING = type.createAndRegister("RUNNING");
     
         /**
    @@ -74,23 +66,19 @@ private State(String constant) {
         }
     
         /**
    -     * Get the State for the given String constant, and throw an exception if the constant is
    -     * not recognized.
    +     * Get the State for the given String constant, and throw an exception if the constant is not
    +     * recognized.
          */
         public static State valueOfStrict(String constant) {
           return type.valueOfStrict(constant);
         }
     
    -    /**
    -     * Get the State for the given String constant, and allow unrecognized values.
    -     */
    +    /** Get the State for the given String constant, and allow unrecognized values. */
         public static State valueOf(String constant) {
           return type.valueOf(constant);
         }
     
    -    /**
    -     * Return the known values for State.
    -     */
    +    /** Return the known values for State. */
         public static State[] values() {
           return type.values();
         }
    @@ -112,35 +100,33 @@ public static State[] values() {
         this.executionErrors = executionErrors != null ? ImmutableList.copyOf(executionErrors) : null;
       }
     
    -
       /**
    -   * Returns the state of the job. A {@link State#PENDING} job is waiting to be executed. A
    -   * {@link State#RUNNING} is being executed. A {@link State#DONE} job has completed either
    -   * succeeding or failing. If failed {@link #getError()} will be non-null.
    +   * Returns the state of the job. A {@link State#PENDING} job is waiting to be executed. A {@link
    +   * State#RUNNING} is being executed. A {@link State#DONE} job has completed either succeeding or
    +   * failing. If failed {@link #getError()} will be non-null.
        */
       public State getState() {
         return state;
       }
     
    -
       /**
    -   * Returns the final error result of the job. If present, indicates that the job has completed
    -   * and was unsuccessful.
    +   * Returns the final error result of the job. If present, indicates that the job has completed and
    +   * was unsuccessful.
        *
    -   * @see 
    -   *     Troubleshooting Errors
    +   * @see Troubleshooting
    +   *     Errors
        */
    +  @Nullable
       public BigQueryError getError() {
         return error;
       }
     
    -
       /**
        * Returns all errors encountered during the running of the job. Errors here do not necessarily
        * mean that the job has completed or was unsuccessful.
        *
    -   * @see 
    -   *     Troubleshooting Errors
    +   * @see Troubleshooting
    +   *     Errors
        */
       public List getExecutionErrors() {
         return executionErrors;
    @@ -164,8 +150,8 @@ public final int hashCode() {
       public final boolean equals(Object obj) {
         return obj == this
             || obj != null
    -        && obj.getClass().equals(JobStatus.class)
    -        && Objects.equals(toPb(), ((JobStatus) obj).toPb());
    +            && obj.getClass().equals(JobStatus.class)
    +            && Objects.equals(toPb(), ((JobStatus) obj).toPb());
       }
     
       com.google.api.services.bigquery.model.JobStatus toPb() {
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java
    index 58f0eb67e674..7fd91024c8eb 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java
    @@ -17,6 +17,8 @@
     package com.google.cloud.bigquery;
     
     import static com.google.common.truth.Truth.assertThat;
    +import static org.easymock.EasyMock.anyObject;
    +import static org.easymock.EasyMock.anyString;
     import static org.easymock.EasyMock.capture;
     import static org.easymock.EasyMock.eq;
     import static org.junit.Assert.assertArrayEquals;
    @@ -962,7 +964,7 @@ public JobId get() {
             .andThrow(new BigQueryException(409, "already exists, for some reason"));
         EasyMock.expect(
                 bigqueryRpcMock.getJob(
    -                EasyMock.anyString(),
    +                anyString(),
                     EasyMock.eq(id),
                     EasyMock.eq((String) null),
                     EasyMock.eq(EMPTY_RPC_OPTIONS)))
    @@ -1270,6 +1272,9 @@ public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedExcepti
                 bigqueryRpcMock.create(
                     JOB_INFO.toPb(), Collections.emptyMap()))
             .andReturn(jobResponsePb1);
    +    EasyMock.expect(
    +            bigqueryRpcMock.getJob(eq(PROJECT), eq(JOB), anyString(), anyObject(Map.class)))
    +            .andReturn(jobResponsePb1);
     
         EasyMock.expect(
                 bigqueryRpcMock.getQueryResults(
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java
    index 5d8b2b13c34f..5a3d465e9db3 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java
    @@ -18,8 +18,10 @@
     
     import static com.google.common.collect.ObjectArrays.concat;
     import static com.google.common.truth.Truth.assertThat;
    +import static org.easymock.EasyMock.anyObject;
     import static org.easymock.EasyMock.createMock;
     import static org.easymock.EasyMock.createStrictMock;
    +import static org.easymock.EasyMock.eq;
     import static org.easymock.EasyMock.expect;
     import static org.easymock.EasyMock.replay;
     import static org.easymock.EasyMock.verify;
    @@ -224,6 +226,81 @@ public void testWaitFor() throws InterruptedException {
         verify(status, mockOptions);
       }
     
    +  @Test
    +  public void testWaitForAndGetQueryResultsEmpty() throws InterruptedException {
    +    QueryJobConfiguration jobConfig =
    +            QueryJobConfiguration.newBuilder("CREATE VIEW").setDestinationTable(TABLE_ID1).build();
    +    QueryStatistics jobStatistics =
    +            QueryStatistics.newBuilder()
    +                    .setCreationTimestamp(1L)
    +                    .setEndTime(3L)
    +                    .setStartTime(2L)
    +                    .build();
    +    JobInfo jobInfo =
    +            JobInfo.newBuilder(jobConfig)
    +                    .setJobId(JOB_ID)
    +                    .setStatistics(jobStatistics)
    +                    .setJobId(JOB_ID)
    +                    .setEtag(ETAG)
    +                    .setGeneratedId(GENERATED_ID)
    +                    .setSelfLink(SELF_LINK)
    +                    .setUserEmail(EMAIL)
    +                    .setStatus(JOB_STATUS)
    +                    .build();
    +
    +    initializeExpectedJob(2, jobInfo);
    +    JobStatus status = createStrictMock(JobStatus.class);
    +    expect(bigquery.getOptions()).andReturn(mockOptions);
    +    expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()).times(2);
    +    Job completedJob = expectedJob.toBuilder().setStatus(status).build();
    +    // TODO(pongad): remove when we bump gax to 1.15.
    +    Page emptyPage =
    +            new Page() {
    +              @Override
    +              public boolean hasNextPage() {
    +                return false;
    +              }
    +
    +              @Override
    +              public String getNextPageToken() {
    +                return "";
    +              }
    +
    +              @Override
    +              public Page getNextPage() {
    +                return null;
    +              }
    +
    +              @Override
    +              public Iterable iterateAll() {
    +                return Collections.emptyList();
    +              }
    +
    +              @Override
    +              public Iterable getValues() {
    +                return Collections.emptyList();
    +              }
    +            };
    +    QueryResponse completedQuery =
    +            QueryResponse.newBuilder()
    +                    .setCompleted(true)
    +                    .setTotalRows(0)
    +                    .setSchema(Schema.of())
    +                    .setErrors(ImmutableList.of())
    +                    .build();
    +
    +    expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)).andReturn(completedQuery);
    +    expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob);
    +    expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS))
    +            .andReturn(completedQuery);
    +
    +    replay(status, bigquery, mockOptions);
    +    initializeJob(jobInfo);
    +    assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameAs(completedJob);
    +    assertThat(job.getQueryResults().iterateAll()).isEmpty();
    +    verify(status, mockOptions);
    +  }
    +
       @Test
       public void testWaitForAndGetQueryResults() throws InterruptedException {
         QueryJobConfiguration jobConfig =
    @@ -252,7 +329,7 @@ public void testWaitForAndGetQueryResults() throws InterruptedException {
         expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()).times(2);
         Job completedJob = expectedJob.toBuilder().setStatus(status).build();
         // TODO(pongad): remove when we bump gax to 1.15.
    -    Page emptyPage =
    +    Page singlePage =
             new Page() {
               @Override
               public boolean hasNextPage() {
    @@ -270,21 +347,19 @@ public Page getNextPage() {
               }
     
               @Override
    -          public Iterable iterateAll() {
    -            return Collections.emptyList();
    -          }
    +          public Iterable iterateAll() { return Collections.emptyList(); }
     
               @Override
               public Iterable getValues() {
                 return Collections.emptyList();
               }
             };
    -    TableResult result = new TableResult(Schema.of(), 0, emptyPage);
    +    TableResult result = new TableResult(Schema.of(), 1, singlePage);
         QueryResponse completedQuery =
             QueryResponse.newBuilder()
                 .setCompleted(true)
    -            .setTotalRows(0)
    -            .setSchema(Schema.of())
    +            .setTotalRows(1)  // Lies to force call of listTableData().
    +            .setSchema(Schema.of(Field.of("_f0", LegacySQLTypeName.INTEGER)))
                 .setErrors(ImmutableList.of())
                 .build();
     
    @@ -292,12 +367,12 @@ public Iterable getValues() {
         expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob);
         expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS))
             .andReturn(completedQuery);
    -    expect(bigquery.listTableData(TABLE_ID1, Schema.of())).andReturn(result);
    +    expect(bigquery.listTableData(eq(TABLE_ID1), anyObject(Schema.class))).andReturn(result);
     
         replay(status, bigquery, mockOptions);
         initializeJob(jobInfo);
         assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameAs(completedJob);
    -    assertThat(job.getQueryResults().iterateAll()).isEmpty();
    +    assertThat(job.getQueryResults().iterateAll()).hasSize(0);
         verify(status, mockOptions);
       }
     
    
    From bbdeff6337d037b24dd6e2216b933c9829a2ff24 Mon Sep 17 00:00:00 2001
    From: Michael Darakananda 
    Date: Thu, 19 Jul 2018 18:22:07 -0700
    Subject: [PATCH 0033/3441] Release 0.55.0 (#3485)
    
    ---
     google-cloud-bigquery/README.md | 6 +++---
     google-cloud-bigquery/pom.xml   | 4 ++--
     2 files changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md
    index a42831f0e689..4b0aa33e257f 100644
    --- a/google-cloud-bigquery/README.md
    +++ b/google-cloud-bigquery/README.md
    @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file
     
       com.google.cloud
       google-cloud-bigquery
    -  1.36.0
    +  1.37.0
     
     ```
     If you are using Gradle, add this to your dependencies
     ```Groovy
    -compile 'com.google.cloud:google-cloud-bigquery:1.36.0'
    +compile 'com.google.cloud:google-cloud-bigquery:1.37.0'
     ```
     If you are using SBT, add this to your dependencies
     ```Scala
    -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.36.0"
    +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.37.0"
     ```
     [//]: # ({x-version-update-end})
     
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 24e24b4bfafc..9b87cf806921 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.36.1-SNAPSHOT
    +  1.37.0
       jar
       Google Cloud BigQuery
       https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.54.1-alpha-SNAPSHOT
    +    0.55.0-alpha
       
       
         google-cloud-bigquery
    
    From ff6bde15cef7dce9d1d4a760ab8719ec5341184a Mon Sep 17 00:00:00 2001
    From: Michael Darakananda 
    Date: Fri, 20 Jul 2018 11:26:20 -0700
    Subject: [PATCH 0034/3441] bump version for development (#3486)
    
    ---
     google-cloud-bigquery/pom.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 9b87cf806921..b59b361e84a9 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.37.0
    +  1.37.1-SNAPSHOT
       jar
       Google Cloud BigQuery
       https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.55.0-alpha
    +    0.55.1-alpha-SNAPSHOT
       
       
         google-cloud-bigquery
    
    From 33abfcb02ef30622060c7b0082d08d89f9dcc3f5 Mon Sep 17 00:00:00 2001
    From: Michael Darakananda 
    Date: Fri, 20 Jul 2018 12:23:34 -0700
    Subject: [PATCH 0035/3441] Release 0.55.1 (#3489)
    
    ---
     google-cloud-bigquery/README.md | 6 +++---
     google-cloud-bigquery/pom.xml   | 4 ++--
     2 files changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md
    index 4b0aa33e257f..930ad3fb7106 100644
    --- a/google-cloud-bigquery/README.md
    +++ b/google-cloud-bigquery/README.md
    @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file
     
       com.google.cloud
       google-cloud-bigquery
    -  1.37.0
    +  1.37.1
     
     ```
     If you are using Gradle, add this to your dependencies
     ```Groovy
    -compile 'com.google.cloud:google-cloud-bigquery:1.37.0'
    +compile 'com.google.cloud:google-cloud-bigquery:1.37.1'
     ```
     If you are using SBT, add this to your dependencies
     ```Scala
    -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.37.0"
    +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.37.1"
     ```
     [//]: # ({x-version-update-end})
     
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index b59b361e84a9..baa5681799f4 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.37.1-SNAPSHOT
    +  1.37.1
       jar
       Google Cloud BigQuery
       https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.55.1-alpha-SNAPSHOT
    +    0.55.1-alpha
       
       
         google-cloud-bigquery
    
    From 9c98e502f4cfd66cdd41a4cd755a1deceeab7f18 Mon Sep 17 00:00:00 2001
    From: Michael Darakananda 
    Date: Fri, 20 Jul 2018 13:32:48 -0700
    Subject: [PATCH 0036/3441] bump version for development (#3490)
    
    ---
     google-cloud-bigquery/pom.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index baa5681799f4..933e08bd1c6b 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.37.1
    +  1.37.2-SNAPSHOT
       jar
       Google Cloud BigQuery
       https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.55.1-alpha
    +    0.55.2-alpha-SNAPSHOT
       
       
         google-cloud-bigquery
    
    From bf8485874618211320a3981a7adbc62218c66517 Mon Sep 17 00:00:00 2001
    From: Hanzhen Yi <33737743+hzyi-google@users.noreply.github.com>
    Date: Tue, 24 Jul 2018 11:21:16 -0700
    Subject: [PATCH 0037/3441] Fix pom urls (#3499)
    
    ---
     google-cloud-bigquery/pom.xml | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 933e08bd1c6b..f9a1be68bb43 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -5,7 +5,7 @@
       1.37.2-SNAPSHOT
       jar
       Google Cloud BigQuery
    -  https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-bigquery
    +  https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery
       
         Java idiomatic client for Google Cloud BigQuery.
       
    
    From 83a7aaf11ecf5617a3ce04cf57642c141301086a Mon Sep 17 00:00:00 2001
    From: shollyman 
    Date: Mon, 30 Jul 2018 13:47:11 -0700
    Subject: [PATCH 0038/3441] BigQuery: Add Clustering support (#3415)
    
    * BigQuery: Add Clustering support to library.
    
    Initial changes for table.  Next: plumb in configurations for
    load/query destination.
    
    * Plumb configuration options in.
    
    * add missing license header, remove unused import
    
    * Address reviewer comments: list immutability
    ---
     .../com/google/cloud/bigquery/Clustering.java | 66 +++++++++++++++++++
     .../cloud/bigquery/LoadConfiguration.java     | 20 ++++++
     .../cloud/bigquery/LoadJobConfiguration.java  | 42 +++++++++++-
     .../cloud/bigquery/QueryJobConfiguration.java | 52 ++++++++++++++-
     .../bigquery/StandardTableDefinition.java     | 21 ++++++
     .../bigquery/WriteChannelConfiguration.java   | 44 ++++++++++++-
     .../bigquery/LoadJobConfigurationTest.java    |  7 ++
     .../bigquery/QueryJobConfigurationTest.java   |  7 ++
     .../bigquery/StandardTableDefinitionTest.java |  7 ++
     .../WriteChannelConfigurationTest.java        |  7 ++
     .../cloud/bigquery/it/ITBigQueryTest.java     |  5 ++
     11 files changed, 273 insertions(+), 5 deletions(-)
     create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java
    new file mode 100644
    index 000000000000..0d7a3faa6642
    --- /dev/null
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java
    @@ -0,0 +1,66 @@
    +/*
    + * Copyright 2018 Google LLC
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +package com.google.cloud.bigquery;
    +
    +
    +import com.google.auto.value.AutoValue;
    +import com.google.common.collect.ImmutableList;
    +import java.io.Serializable;
    +import java.util.List;
    +import javax.annotation.Nullable;
    +
    +@AutoValue
    +public abstract class Clustering implements Serializable {
    +
    +  private static final long serialVersionUID = 1L;
    +
    +
    +  @Nullable
    +  abstract ImmutableList getFieldsImmut();
    +
    +  public List getFields() {return getFieldsImmut();}
    +
    +
    +  public abstract Builder toBuilder();
    +
    +  @AutoValue.Builder
    +  public abstract static class Builder {
    +
    +    abstract Builder setFieldsImmut(ImmutableList fieldsImmut);
    +
    +    public Builder setFields(List fields) {
    +      return setFieldsImmut(ImmutableList.copyOf(fields));
    +    }
    +
    +    public abstract Clustering build();
    +  }
    +
    +  public static Builder newBuilder() {
    +    return new AutoValue_Clustering.Builder();
    +  }
    +
    +  com.google.api.services.bigquery.model.Clustering toPb() {
    +    com.google.api.services.bigquery.model.Clustering clusterPb =
    +        new com.google.api.services.bigquery.model.Clustering();
    +    clusterPb.setFields(getFields());
    +    return clusterPb;
    +  }
    +
    +  static Clustering fromPb(com.google.api.services.bigquery.model.Clustering clusterPb) {
    +    return newBuilder().setFields(clusterPb.getFields()).build();
    +  }
    +
    +}
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java
    index 8d7204d61a29..9128e7afd662 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java
    @@ -119,6 +119,16 @@ interface Builder {
          */
         Builder setAutodetect(Boolean autodetect);
     
    +    /**
    +     * Sets the time partitioning specification for the destination table.
    +     */
    +    Builder setTimePartitioning(TimePartitioning timePartitioning);
    +
    +    /**
    +     * Sets the clustering specification for the destination table.
    +     */
    +    Builder setClustering(Clustering clustering);
    +
         LoadConfiguration build();
       }
     
    @@ -211,6 +221,16 @@ interface Builder {
        */
       Boolean getAutodetect();
     
    +  /**
    +   * Returns the time partitioning specification defined for the destination table.
    +   */
    +  TimePartitioning getTimePartitioning();
    +
    +  /**
    +   * Returns the clustering specification for the definition table.
    +   */
    +  Clustering getClustering();
    +
       /**
        * Returns a builder for the load configuration object.
        */
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java
    index 3d0f41135c6f..90d1b137b94b 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java
    @@ -46,6 +46,8 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load
       private final Boolean ignoreUnknownValues;
       private final List schemaUpdateOptions;
       private final Boolean autodetect;
    +  private final TimePartitioning timePartitioning;
    +  private final Clustering clustering;
     
       public static final class Builder
           extends JobConfiguration.Builder
    @@ -64,6 +66,8 @@ public static final class Builder
         private List projectionFields;
         private List schemaUpdateOptions;
         private Boolean autodetect;
    +    private TimePartitioning timePartitioning;
    +    private Clustering clustering;
     
         private Builder() {
           super(Type.LOAD);
    @@ -84,6 +88,8 @@ private Builder(LoadJobConfiguration loadConfiguration) {
           this.autodetect = loadConfiguration.autodetect;
           this.destinationEncryptionConfiguration =
               loadConfiguration.destinationEncryptionConfiguration;
    +      this.timePartitioning = loadConfiguration.timePartitioning;
    +      this.clustering = loadConfiguration.clustering;
         }
     
         private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) {
    @@ -141,6 +147,12 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur
             }
             this.schemaUpdateOptions = schemaUpdateOptionsBuilder.build();
           }
    +      if (loadConfigurationPb.getTimePartitioning() != null) {
    +        this.timePartitioning = TimePartitioning.fromPb(loadConfigurationPb.getTimePartitioning());
    +      }
    +      if (loadConfigurationPb.getClustering() != null) {
    +        this.clustering = Clustering.fromPb(loadConfigurationPb.getClustering());
    +      }
           this.autodetect = loadConfigurationPb.getAutodetect();
           if (loadConfigurationPb.getDestinationEncryptionConfiguration() != null) {
             this.destinationEncryptionConfiguration = new EncryptionConfiguration.Builder(
    @@ -211,6 +223,18 @@ public Builder setIgnoreUnknownValues(Boolean ignoreUnknownValues) {
           return this;
         }
     
    +    @Override
    +    public Builder setTimePartitioning(TimePartitioning timePartitioning) {
    +      this.timePartitioning = timePartitioning;
    +      return this;
    +    }
    +
    +    @Override
    +    public Builder setClustering(Clustering clustering) {
    +      this.clustering = clustering;
    +      return this;
    +    }
    +
         /**
          * Sets the fully-qualified URIs that point to source data in Google Cloud Storage (e.g.
          * gs://bucket/path). Each URI can contain one '*' wildcard character and it must come after the
    @@ -253,6 +277,8 @@ private LoadJobConfiguration(Builder builder) {
         this.schemaUpdateOptions = builder.schemaUpdateOptions;
         this.autodetect = builder.autodetect;
         this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration;
    +    this.timePartitioning = builder.timePartitioning;
    +    this.clustering = builder.clustering;
       }
     
     
    @@ -333,6 +359,12 @@ public Boolean getAutodetect() {
         return autodetect;
       }
     
    +  @Override
    +  public TimePartitioning getTimePartitioning() { return timePartitioning; }
    +
    +  @Override
    +  public Clustering getClustering() { return clustering; }
    +
       @Override
       public List getSchemaUpdateOptions() {
         return schemaUpdateOptions;
    @@ -357,7 +389,9 @@ ToStringHelper toStringHelper() {
             .add("ignoreUnknownValue", ignoreUnknownValues)
             .add("sourceUris", sourceUris)
             .add("schemaUpdateOptions", schemaUpdateOptions)
    -        .add("autodetect", autodetect);
    +        .add("autodetect", autodetect)
    +        .add("timePartitioning", timePartitioning)
    +        .add("clustering", clustering);
       }
     
       @Override
    @@ -429,6 +463,12 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() {
           loadConfigurationPb.setDestinationEncryptionConfiguration(
               destinationEncryptionConfiguration.toPb());
         }
    +    if (timePartitioning != null) {
    +      loadConfigurationPb.setTimePartitioning(timePartitioning.toPb());
    +    }
    +    if (clustering != null) {
    +      loadConfigurationPb.setClustering(clustering.toPb());
    +    }
         return new com.google.api.services.bigquery.model.JobConfiguration()
             .setLoad(loadConfigurationPb);
       }
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java
    index 724cc2b7403d..a955a4dd6c7c 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java
    @@ -62,6 +62,8 @@ public final class QueryJobConfiguration extends JobConfiguration {
       private final Integer maximumBillingTier;
       private final List schemaUpdateOptions;
       private final EncryptionConfiguration destinationEncryptionConfiguration;
    +  private final TimePartitioning timePartitioning;
    +  private final Clustering clustering;
     
       /**
        * Priority levels for a query. If not specified the priority is assumed to be
    @@ -104,6 +106,8 @@ public static final class Builder
         private Integer maximumBillingTier;
         private List schemaUpdateOptions;
         private EncryptionConfiguration destinationEncryptionConfiguration;
    +    private TimePartitioning timePartitioning;
    +    private Clustering clustering;
     
         private Builder() {
           super(Type.QUERY);
    @@ -129,6 +133,8 @@ private Builder(QueryJobConfiguration jobConfiguration) {
           this.maximumBillingTier = jobConfiguration.maximumBillingTier;
           this.schemaUpdateOptions = jobConfiguration.schemaUpdateOptions;
           this.destinationEncryptionConfiguration = jobConfiguration.destinationEncryptionConfiguration;
    +      this.timePartitioning = jobConfiguration.timePartitioning;
    +      this.clustering = jobConfiguration.clustering;
         }
     
         private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) {
    @@ -195,6 +201,12 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur
             this.destinationEncryptionConfiguration = new EncryptionConfiguration.Builder(
                 queryConfigurationPb.getDestinationEncryptionConfiguration()).build();
           }
    +      if (queryConfigurationPb.getTimePartitioning() != null) {
    +        this.timePartitioning = TimePartitioning.fromPb(queryConfigurationPb.getTimePartitioning());
    +      }
    +      if (queryConfigurationPb.getClustering() != null) {
    +        this.clustering = Clustering.fromPb(queryConfigurationPb.getClustering());
    +      }
         }
     
     
    @@ -488,6 +500,22 @@ public Builder setSchemaUpdateOptions(List schemaUpdateOptio
           return this;
         }
     
    +    /**
    +     * Sets the time partitioning specification for the destination table.
    +     */
    +    public Builder setTimePartitioning(TimePartitioning timePartitioning) {
    +      this.timePartitioning = timePartitioning;
    +      return this;
    +    }
    +
    +    /**
    +     * Sets the clustering specification for the destination table.
    +     */
    +    public Builder setClustering(Clustering clustering) {
    +      this.clustering = clustering;
    +      return this;
    +    }
    +
         public QueryJobConfiguration build() {
           return new QueryJobConfiguration(this);
         }
    @@ -522,6 +550,8 @@ private QueryJobConfiguration(Builder builder) {
         this.maximumBillingTier = builder.maximumBillingTier;
         this.schemaUpdateOptions = builder.schemaUpdateOptions;
         this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration;
    +    this.timePartitioning = builder.timePartitioning;
    +    this.clustering = builder.clustering;
       }
     
       /**
    @@ -693,6 +723,16 @@ public List getSchemaUpdateOptions() {
         return schemaUpdateOptions;
       }
     
    +  /**
    +   * Returns the time partitioning specification for the destination table.
    +   */
    +  public TimePartitioning getTimePartitioning() { return timePartitioning; }
    +
    +  /**
    +   * Returns the clustering specification for the destination table.
    +   */
    +  public Clustering getClustering() { return clustering; }
    +
       @Override
       public Builder toBuilder() {
         return new Builder(this);
    @@ -718,7 +758,9 @@ ToStringHelper toStringHelper() {
             .add("dryRun", dryRun)
             .add("useLegacySql", useLegacySql)
             .add("maximumBillingTier", maximumBillingTier)
    -        .add("schemaUpdateOptions", schemaUpdateOptions);
    +        .add("schemaUpdateOptions", schemaUpdateOptions)
    +        .add("timePartitioning", timePartitioning)
    +        .add("clustering", clustering);
       }
     
       @Override
    @@ -734,7 +776,7 @@ public int hashCode() {
             defaultDataset, flattenResults, priority, query, positionalParameters,
             namedParameters, tableDefinitions, useQueryCache,
             userDefinedFunctions, writeDisposition, dryRun, useLegacySql, maximumBillingTier,
    -        schemaUpdateOptions);
    +        schemaUpdateOptions, timePartitioning, clustering);
       }
     
       @Override
    @@ -813,6 +855,12 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() {
         if (destinationEncryptionConfiguration != null) {
           queryConfigurationPb.setDestinationEncryptionConfiguration(destinationEncryptionConfiguration.toPb());
         }
    +    if (timePartitioning != null) {
    +      queryConfigurationPb.setTimePartitioning(timePartitioning.toPb());
    +    }
    +    if (clustering != null) {
    +      queryConfigurationPb.setClustering(clustering.toPb());
    +    }
         return configurationPb.setQuery(queryConfigurationPb);
       }
     
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java
    index 40889fc036fd..b4329b19065b 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java
    @@ -142,6 +142,13 @@ public abstract static class Builder
          */
         public abstract Builder setTimePartitioning(TimePartitioning timePartitioning);
     
    +    /**
    +     * Set the clustering configuration for the table.  If not set, the table is not
    +     * clustered.  Clustering is only available for partitioned tables.
    +     */
    +    public abstract Builder setClustering(Clustering clustering);
    +
    +
         /** Creates a {@code StandardTableDefinition} object. */
         public abstract StandardTableDefinition build();
       }
    @@ -179,6 +186,14 @@ public abstract static class Builder
       @Nullable
       public abstract TimePartitioning getTimePartitioning();
     
    +
    +  /**
    +   * Returns the clustering configuration for this table.  If {@code null}, the table is not
    +   * clustered.
    +   */
    +  @Nullable
    +  public abstract Clustering getClustering();
    +
       /**
        * Returns a builder for a BigQuery standard table definition.
        */
    @@ -212,6 +227,9 @@ Table toPb() {
         if (getTimePartitioning() != null) {
           tablePb.setTimePartitioning(getTimePartitioning().toPb());
         }
    +    if (getClustering() != null) {
    +      tablePb.setClustering(getClustering().toPb());
    +    }
         return tablePb;
       }
     
    @@ -227,6 +245,9 @@ static StandardTableDefinition fromPb(Table tablePb) {
         if (tablePb.getTimePartitioning() != null) {
           builder.setTimePartitioning(TimePartitioning.fromPb(tablePb.getTimePartitioning()));
         }
    +    if (tablePb.getClustering() != null) {
    +      builder.setClustering(Clustering.fromPb(tablePb.getClustering()));
    +    }
         return builder.setNumBytes(tablePb.getNumBytes()).setLocation(tablePb.getLocation()).build();
       }
     }
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java
    index 01f38c77acd0..00301997ea98 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java
    @@ -50,6 +50,8 @@ public final class WriteChannelConfiguration implements LoadConfiguration, Seria
       private final List schemaUpdateOptions;
       private final Boolean autodetect;
       private final EncryptionConfiguration destinationEncryptionConfiguration;
    +  private final TimePartitioning timePartitioning;
    +  private final Clustering clustering;
     
       public static final class Builder implements LoadConfiguration.Builder {
     
    @@ -64,6 +66,8 @@ public static final class Builder implements LoadConfiguration.Builder {
         private List schemaUpdateOptions;
         private Boolean autodetect;
         private EncryptionConfiguration destinationEncryptionConfiguration;
    +    private TimePartitioning timePartitioning;
    +    private Clustering clustering;
     
         private Builder() {}
     
    @@ -79,6 +83,8 @@ private Builder(WriteChannelConfiguration writeChannelConfiguration) {
           this.schemaUpdateOptions = writeChannelConfiguration.schemaUpdateOptions;
           this.autodetect = writeChannelConfiguration.autodetect;
           this.destinationEncryptionConfiguration = writeChannelConfiguration.destinationEncryptionConfiguration;
    +      this.timePartitioning = writeChannelConfiguration.timePartitioning;
    +      this.clustering = writeChannelConfiguration.clustering;
         }
     
         private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) {
    @@ -140,6 +146,12 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur
             this.destinationEncryptionConfiguration = new EncryptionConfiguration.Builder(
                 configurationPb.getLoad().getDestinationEncryptionConfiguration()).build();
           }
    +      if (loadConfigurationPb.getTimePartitioning() != null) {
    +        this.timePartitioning = TimePartitioning.fromPb(loadConfigurationPb.getTimePartitioning());
    +      }
    +      if (loadConfigurationPb.getClustering() != null) {
    +        this.clustering = Clustering.fromPb(loadConfigurationPb.getClustering());
    +      }
         }
     
     
    @@ -218,6 +230,18 @@ public Builder setAutodetect(Boolean autodetect) {
           return this;
         }
     
    +    @Override
    +    public Builder setTimePartitioning(TimePartitioning timePartitioning) {
    +      this.timePartitioning = timePartitioning;
    +      return this;
    +    }
    +
    +    @Override
    +    public Builder setClustering(Clustering clustering) {
    +      this.clustering = clustering;
    +      return this;
    +    }
    +
         @Override
         public WriteChannelConfiguration build() {
           return new WriteChannelConfiguration(this);
    @@ -236,6 +260,8 @@ protected WriteChannelConfiguration(Builder builder) {
         this.schemaUpdateOptions = builder.schemaUpdateOptions;
         this.autodetect = builder.autodetect;
         this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration;
    +    this.timePartitioning = builder.timePartitioning;
    +    this.clustering = builder.clustering;
       }
     
     
    @@ -313,6 +339,12 @@ public Boolean getAutodetect() {
         return autodetect;
       }
     
    +  @Override
    +  public TimePartitioning getTimePartitioning() { return timePartitioning; }
    +
    +  @Override
    +  public Clustering getClustering() { return clustering; }
    +
       @Override
       public Builder toBuilder() {
         return new Builder(this);
    @@ -330,7 +362,9 @@ MoreObjects.ToStringHelper toStringHelper() {
             .add("schema", schema)
             .add("ignoreUnknownValue", ignoreUnknownValues)
             .add("schemaUpdateOptions", schemaUpdateOptions)
    -        .add("autodetect", autodetect);
    +        .add("autodetect", autodetect)
    +        .add("timePartitioning", timePartitioning)
    +        .add("clustering", clustering);
       }
     
       @Override
    @@ -348,7 +382,7 @@ public boolean equals(Object obj) {
       @Override
       public int hashCode() {
         return Objects.hash(destinationTable, createDisposition, writeDisposition, formatOptions,
    -        nullMarker, maxBadRecords, schema, ignoreUnknownValues, schemaUpdateOptions, autodetect);
    +        nullMarker, maxBadRecords, schema, ignoreUnknownValues, schemaUpdateOptions, autodetect, timePartitioning, clustering);
       }
     
       WriteChannelConfiguration setProjectId(String projectId) {
    @@ -403,6 +437,12 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() {
           loadConfigurationPb.setDestinationEncryptionConfiguration(
               destinationEncryptionConfiguration.toPb());
         }
    +    if (timePartitioning != null) {
    +      loadConfigurationPb.setTimePartitioning(timePartitioning.toPb());
    +    }
    +    if (clustering != null) {
    +      loadConfigurationPb.setClustering(clustering.toPb());
    +    }
         return new com.google.api.services.bigquery.model.JobConfiguration()
             .setLoad(loadConfigurationPb);
       }
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java
    index 0552cc881150..754e5e648803 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java
    @@ -21,6 +21,7 @@
     import com.google.cloud.bigquery.JobInfo.CreateDisposition;
     import com.google.cloud.bigquery.JobInfo.WriteDisposition;
     import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption;
    +import com.google.cloud.bigquery.TimePartitioning.Type;
     import com.google.common.collect.ImmutableList;
     
     import org.junit.Test;
    @@ -53,6 +54,8 @@ public class LoadJobConfigurationTest {
       private static final Boolean AUTODETECT = true;
       private static final EncryptionConfiguration JOB_ENCRYPTION_CONFIGURATION =
           EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build();
    +  private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY);
    +  private static final Clustering CLUSTERING = Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build();
       private static final LoadJobConfiguration LOAD_CONFIGURATION_CSV =
           LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS)
               .setCreateDisposition(CREATE_DISPOSITION)
    @@ -64,6 +67,8 @@ public class LoadJobConfigurationTest {
               .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS)
               .setAutodetect(AUTODETECT)
               .setDestinationEncryptionConfiguration(JOB_ENCRYPTION_CONFIGURATION)
    +          .setTimePartitioning(TIME_PARTITIONING)
    +          .setClustering(CLUSTERING)
               .build();
       private static final DatastoreBackupOptions BACKUP_OPTIONS = DatastoreBackupOptions.newBuilder()
           .setProjectionFields(ImmutableList.of("field_1", "field_2"))
    @@ -163,5 +168,7 @@ private void compareLoadJobConfiguration(LoadJobConfiguration expected,
         assertEquals(expected.getAutodetect(), value.getAutodetect());
         assertEquals(expected.getSchemaUpdateOptions(), value.getSchemaUpdateOptions());
         assertEquals(expected.getDestinationEncryptionConfiguration(), value.getDestinationEncryptionConfiguration());
    +    assertEquals(expected.getTimePartitioning(), value.getTimePartitioning());
    +    assertEquals(expected.getClustering(), value.getClustering());
       }
     }
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java
    index 7fff324aafb8..787622408075 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java
    @@ -24,6 +24,7 @@
     import com.google.cloud.bigquery.JobInfo.WriteDisposition;
     import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption;
     import com.google.cloud.bigquery.QueryJobConfiguration.Priority;
    +import com.google.cloud.bigquery.TimePartitioning.Type;
     import com.google.common.collect.ImmutableList;
     import com.google.common.collect.ImmutableMap;
     import java.util.List;
    @@ -78,6 +79,8 @@ public class QueryJobConfigurationTest {
           UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI"));
       private static final EncryptionConfiguration JOB_ENCRYPTION_CONFIGURATION =
           EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build();
    +  private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY);
    +  private static final Clustering CLUSTERING = Clustering.newBuilder().setFields(ImmutableList.of("Foo","Bar")).build();
       private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION =
           QueryJobConfiguration.newBuilder(QUERY)
               .setUseQueryCache(USE_QUERY_CACHE)
    @@ -95,6 +98,8 @@ public class QueryJobConfigurationTest {
               .setMaximumBillingTier(MAX_BILLING_TIER)
               .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS)
               .setDestinationEncryptionConfiguration(JOB_ENCRYPTION_CONFIGURATION)
    +          .setTimePartitioning(TIME_PARTITIONING)
    +          .setClustering(CLUSTERING)
               .build();
     
       @Test
    @@ -166,5 +171,7 @@ private void compareQueryJobConfiguration(QueryJobConfiguration expected,
         assertEquals(expected.getMaximumBillingTier(), value.getMaximumBillingTier());
         assertEquals(expected.getSchemaUpdateOptions(), value.getSchemaUpdateOptions());
         assertEquals(expected.getDestinationEncryptionConfiguration(), value.getDestinationEncryptionConfiguration());
    +    assertEquals(expected.getTimePartitioning(), value.getTimePartitioning());
    +    assertEquals(expected.getClustering(), value.getClustering());
       }
     }
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java
    index 038fcfd1da5c..85649eebc7c9 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java
    @@ -22,6 +22,7 @@
     
     import com.google.cloud.bigquery.StandardTableDefinition.StreamingBuffer;
     
    +import com.google.common.collect.ImmutableList;
     import org.junit.Test;
     
     public class StandardTableDefinitionTest {
    @@ -48,6 +49,8 @@ public class StandardTableDefinitionTest {
       private static final StreamingBuffer STREAMING_BUFFER = new StreamingBuffer(1L, 2L, 3L);
       private static final TimePartitioning TIME_PARTITIONING =
           TimePartitioning.of(TimePartitioning.Type.DAY, 42);
    +  private static final Clustering CLUSTERING =
    +      Clustering.newBuilder().setFields(ImmutableList.of("Foo","Bar")).build();
       private static final StandardTableDefinition TABLE_DEFINITION =
           StandardTableDefinition.newBuilder()
               .setLocation(LOCATION)
    @@ -56,6 +59,7 @@ public class StandardTableDefinitionTest {
               .setStreamingBuffer(STREAMING_BUFFER)
               .setSchema(TABLE_SCHEMA)
               .setTimePartitioning(TIME_PARTITIONING)
    +          .setClustering(CLUSTERING)
               .build();
     
       @Test
    @@ -85,6 +89,7 @@ public void testBuilder() {
         assertEquals(NUM_ROWS, TABLE_DEFINITION.getNumRows());
         assertEquals(STREAMING_BUFFER, TABLE_DEFINITION.getStreamingBuffer());
         assertEquals(TIME_PARTITIONING, TABLE_DEFINITION.getTimePartitioning());
    +    assertEquals(CLUSTERING, TABLE_DEFINITION.getClustering());
       }
     
     
    @@ -98,6 +103,7 @@ public void testOf() {
         assertNull(definition.getNumRows());
         assertNull(definition.getStreamingBuffer());
         assertNull(definition.getTimePartitioning());
    +    assertNull(definition.getClustering());
       }
     
       @Test
    @@ -122,6 +128,7 @@ private void compareStandardTableDefinition(StandardTableDefinition expected,
         assertEquals(expected.getStreamingBuffer(), value.getStreamingBuffer());
         assertEquals(expected.getType(), value.getType());
         assertEquals(expected.getTimePartitioning(), value.getTimePartitioning());
    +    assertEquals(expected.getClustering(), value.getClustering());
         assertEquals(expected.hashCode(), value.hashCode());
       }
     }
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java
    index fb0048850ccd..8128f099c0c4 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java
    @@ -21,6 +21,7 @@
     
     import com.google.cloud.bigquery.JobInfo.CreateDisposition;
     import com.google.cloud.bigquery.JobInfo.WriteDisposition;
    +import com.google.cloud.bigquery.TimePartitioning.Type;
     import com.google.common.collect.ImmutableList;
     
     import org.junit.Test;
    @@ -51,6 +52,8 @@ public class WriteChannelConfigurationTest {
       private static final Boolean AUTODETECT = true;
       private static final List SCHEMA_UPDATE_OPTIONS =
           ImmutableList.of(JobInfo.SchemaUpdateOption.ALLOW_FIELD_ADDITION);
    +  private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY);
    +  private static final Clustering CLUSTERING = Clustering.newBuilder().setFields(ImmutableList.of("Foo","Bar")).build();
       private static final WriteChannelConfiguration LOAD_CONFIGURATION_CSV =
           WriteChannelConfiguration.newBuilder(TABLE_ID)
               .setCreateDisposition(CREATE_DISPOSITION)
    @@ -62,6 +65,8 @@ public class WriteChannelConfigurationTest {
               .setSchema(TABLE_SCHEMA)
               .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS)
               .setAutodetect(AUTODETECT)
    +          .setTimePartitioning(TIME_PARTITIONING)
    +          .setClustering(CLUSTERING)
               .build();
     
       private static final DatastoreBackupOptions BACKUP_OPTIONS = DatastoreBackupOptions.newBuilder()
    @@ -173,5 +178,7 @@ private void compareLoadConfiguration(WriteChannelConfiguration expected,
         assertEquals(expected.getSchema(), value.getSchema());
         assertEquals(expected.getSchemaUpdateOptions(), value.getSchemaUpdateOptions());
         assertEquals(expected.getAutodetect(), value.getAutodetect());
    +    assertEquals(expected.getTimePartitioning(), value.getTimePartitioning());
    +    assertEquals(expected.getClustering(), value.getClustering());
       }
     }
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java
    index 572c9506c67b..3a07a4166ef7 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java
    @@ -39,6 +39,7 @@
     import com.google.cloud.bigquery.BigQuery.TableOption;
     import com.google.cloud.bigquery.BigQueryError;
     import com.google.cloud.bigquery.BigQueryException;
    +import com.google.cloud.bigquery.Clustering;
     import com.google.cloud.bigquery.CopyJobConfiguration;
     import com.google.cloud.bigquery.Dataset;
     import com.google.cloud.bigquery.DatasetId;
    @@ -388,9 +389,11 @@ public void testCreateAndGetTable() {
         String tableName = "test_create_and_get_table";
         TableId tableId = TableId.of(DATASET, tableName);
         TimePartitioning partitioning = TimePartitioning.of(Type.DAY);
    +    Clustering clustering = Clustering.newBuilder().setFields(ImmutableList.of(STRING_FIELD_SCHEMA.getName())).build();
         StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder()
             .setSchema(TABLE_SCHEMA)
             .setTimePartitioning(partitioning)
    +        .setClustering(clustering)
             .build();
         Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition));
         assertNotNull(createdTable);
    @@ -408,6 +411,7 @@ public void testCreateAndGetTable() {
         assertNotNull(remoteTable.getDefinition().getNumRows());
         assertEquals(partitioning,
             remoteTable.getDefinition().getTimePartitioning());
    +    assertEquals(clustering, remoteTable.getDefinition().getClustering());
         assertTrue(remoteTable.delete());
       }
     
    @@ -432,6 +436,7 @@ public void testCreateAndGetTableWithSelectedField() {
         assertNull(remoteTable.getDefinition().getNumBytes());
         assertNull(remoteTable.getDefinition().getNumRows());
         assertNull(remoteTable.getDefinition().getTimePartitioning());
    +    assertNull(remoteTable.getDefinition().getClustering());
         assertTrue(remoteTable.delete());
       }
     
    
    From e65873028b9679be4c521c297619ccb32fe1eb5f Mon Sep 17 00:00:00 2001
    From: Garrett Jones 
    Date: Wed, 1 Aug 2018 15:23:45 -0700
    Subject: [PATCH 0039/3441] Release 0.56.0 (#3521)
    
    ---
     google-cloud-bigquery/README.md | 6 +++---
     google-cloud-bigquery/pom.xml   | 4 ++--
     2 files changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md
    index 930ad3fb7106..b82270257dc0 100644
    --- a/google-cloud-bigquery/README.md
    +++ b/google-cloud-bigquery/README.md
    @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file
     
       com.google.cloud
       google-cloud-bigquery
    -  1.37.1
    +  1.38.0
     
     ```
     If you are using Gradle, add this to your dependencies
     ```Groovy
    -compile 'com.google.cloud:google-cloud-bigquery:1.37.1'
    +compile 'com.google.cloud:google-cloud-bigquery:1.38.0'
     ```
     If you are using SBT, add this to your dependencies
     ```Scala
    -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.37.1"
    +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.38.0"
     ```
     [//]: # ({x-version-update-end})
     
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index f9a1be68bb43..141966a657b1 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.37.2-SNAPSHOT
    +  1.38.0
       jar
       Google Cloud BigQuery
       https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.55.2-alpha-SNAPSHOT
    +    0.56.0-alpha
       
       
         google-cloud-bigquery
    
    From 084aaf6b454423ae856ebdf5ab7793452eeb0a70 Mon Sep 17 00:00:00 2001
    From: Garrett Jones 
    Date: Wed, 1 Aug 2018 16:26:30 -0700
    Subject: [PATCH 0040/3441] Bumping to snapshot versions (#3523)
    
    ---
     google-cloud-bigquery/pom.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 141966a657b1..de5413a87f33 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.38.0
    +  1.38.1-SNAPSHOT
       jar
       Google Cloud BigQuery
       https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.56.0-alpha
    +    0.56.1-alpha-SNAPSHOT
       
       
         google-cloud-bigquery
    
    From 0943101a316f20dfdd22e35a462dbd73dc08bfe1 Mon Sep 17 00:00:00 2001
    From: gsabhnani <42009274+gsabhnani@users.noreply.github.com>
    Date: Fri, 3 Aug 2018 12:53:03 -0700
    Subject: [PATCH 0041/3441] Add model table type for the new BigQuery ML models
     (#3529)
    
    Fixes listTables on datasets containing models.
    ---
     .../cloud/bigquery/ModelTableDefinition.java  | 88 +++++++++++++++++++
     .../cloud/bigquery/TableDefinition.java       | 10 +++
     .../com/google/cloud/bigquery/TableInfo.java  |  3 +-
     .../cloud/bigquery/BigQueryImplTest.java      |  7 +-
     4 files changed, 106 insertions(+), 2 deletions(-)
     create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java
    new file mode 100644
    index 000000000000..3f7bfccab356
    --- /dev/null
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java
    @@ -0,0 +1,88 @@
    +/*
    + * Copyright 2018 Google LLC
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *       http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +package com.google.cloud.bigquery;
    +
    +import com.google.api.core.BetaApi;
    +import com.google.api.services.bigquery.model.Table;
    +import com.google.auto.value.AutoValue;
    +import javax.annotation.Nullable;
    +
    +/**
    + * A Google BigQuery Model table definition. This definition is used to represent a BigQuery
    + * ML model.
    + *
    + * @see BigQuery ML Model
    + */
    +@AutoValue
    +@BetaApi
    +public abstract class ModelTableDefinition extends TableDefinition {
    +
    +  private static final long serialVersionUID = 2113445776046717900L;
    +
    +  @AutoValue.Builder
    +  public abstract static class Builder
    +      extends TableDefinition.Builder {
    +
    +    public abstract Builder setNumBytes(Long numBytes);
    +
    +    public abstract Builder setLocation(String location);
    +
    +    public abstract Builder setType(Type type);
    +
    +    /** Creates a {@code ModelTableDefinition} object. */
    +    public abstract ModelTableDefinition build();
    +  }
    +
    +  /** Returns the size of this table in bytes, excluding any data in the streaming buffer. */
    +  @Nullable
    +  public abstract Long getNumBytes();
    +
    +  /**
    +   * Returns the geographic location where the table should reside. This value is inherited from the
    +   * dataset.
    +   *
    +   * @see 
    +   *     Dataset Location
    +   */
    +  @Nullable
    +  public abstract String getLocation();
    +
    +  /**
    +   * Returns a builder for a BigQuery ML model table definition.
    +   */
    +  public static Builder newBuilder() {
    +    return new AutoValue_ModelTableDefinition.Builder().setType(Type.MODEL);
    +  }
    +
    +  /** Returns a builder for the {@code 
    +     *     BigQuery ML Model
    +     */
    +    public static final Type MODEL = type.createAndRegister("MODEL");
    +
         private Type(String constant) {
           super(constant);
         }
    @@ -157,6 +165,8 @@ static  T fromPb(Table tablePb) {
             return (T) ViewDefinition.fromPb(tablePb);
           case "EXTERNAL":
             return (T) ExternalTableDefinition.fromPb(tablePb);
    +      case "MODEL":
    +        return (T) ModelTableDefinition.fromPb(tablePb);
           default:
             // never reached
             throw new IllegalArgumentException("Format " + tablePb.getType() + " is not supported");
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java
    index ac741967c117..55c950cd8122 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java
    @@ -32,7 +32,8 @@
     /**
      * Google BigQuery table information. Use {@link StandardTableDefinition} to create simple BigQuery
      * table. Use {@link ViewDefinition} to create a BigQuery view. Use {@link ExternalTableDefinition}
    - * to create a BigQuery a table backed by external data.
    + * to create a BigQuery a table backed by external data. Use {@link ModelDefinition} to create a 
    + * BigQuery ML model.
      *
      * @see Managing Tables
      */
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java
    index 7fd91024c8eb..4c695b22995a 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java
    @@ -108,10 +108,14 @@ public class BigQueryImplTest {
       private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2);
       private static final StandardTableDefinition TABLE_DEFINITION =
           StandardTableDefinition.of(TABLE_SCHEMA);
    +  private static final ModelTableDefinition MODEL_TABLE_DEFINITION =
    +      ModelTableDefinition.newBuilder().build();
       private static final TableInfo TABLE_INFO = TableInfo.of(TABLE_ID, TABLE_DEFINITION);
       private static final TableInfo OTHER_TABLE_INFO = TableInfo.of(OTHER_TABLE_ID, TABLE_DEFINITION);
       private static final TableInfo TABLE_INFO_WITH_PROJECT =
           TableInfo.of(TABLE_ID_WITH_PROJECT, TABLE_DEFINITION);
    +  private static final TableInfo MODEL_TABLE_INFO_WITH_PROJECT =
    +      TableInfo.of(TABLE_ID_WITH_PROJECT, MODEL_TABLE_DEFINITION);
       private static final LoadJobConfiguration LOAD_JOB_CONFIGURATION =
           LoadJobConfiguration.of(TABLE_ID, "URI");
       private static final LoadJobConfiguration LOAD_JOB_CONFIGURATION_WITH_PROJECT =
    @@ -613,7 +617,8 @@ public void testListTables() {
         ImmutableList

  • tableList = ImmutableList.of( new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), - new Table(bigquery, new TableInfo.BuilderImpl(OTHER_TABLE_INFO))); + new Table(bigquery, new TableInfo.BuilderImpl(OTHER_TABLE_INFO)), + new Table(bigquery, new TableInfo.BuilderImpl(MODEL_TABLE_INFO_WITH_PROJECT))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) From ec2357e7f11c67a8cd5f11b904d58ddc92fea1c2 Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Thu, 9 Aug 2018 16:25:03 -0700 Subject: [PATCH 0042/3441] Bump versions to 1.39.0/0.57.0 (#3548) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index b82270257dc0..25ff0edcc0d2 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.38.0 + 1.39.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.38.0' +compile 'com.google.cloud:google-cloud-bigquery:1.39.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.38.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.39.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index de5413a87f33..cc3cc430bc38 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.38.1-SNAPSHOT + 1.39.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.56.1-alpha-SNAPSHOT + 0.57.0-alpha google-cloud-bigquery From 663511a7de1d0c0e4ceb8229faf06f7fa6db7bac Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Thu, 9 Aug 2018 22:16:48 -0700 Subject: [PATCH 0043/3441] Fix TableInfo javadoc (#3550) --- .../src/main/java/com/google/cloud/bigquery/TableInfo.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java index 55c950cd8122..ac741967c117 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -32,8 +32,7 @@ /** * Google BigQuery table information. Use {@link StandardTableDefinition} to create simple BigQuery * table. Use {@link ViewDefinition} to create a BigQuery view. Use {@link ExternalTableDefinition} - * to create a BigQuery a table backed by external data. Use {@link ModelDefinition} to create a - * BigQuery ML model. + * to create a BigQuery a table backed by external data. * * @see Managing Tables */ From 13a28a579b304c8c7a37f6fbb6651e1253b24bfc Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Fri, 10 Aug 2018 10:13:44 -0700 Subject: [PATCH 0044/3441] Bump to snapshot (#3553) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index cc3cc430bc38..4b066ee1c238 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.39.0 + 1.39.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.57.0-alpha + 0.57.1-alpha-SNAPSHOT google-cloud-bigquery From f81ffdfc4924a5f2c91cd814daa69c74e17aaf37 Mon Sep 17 00:00:00 2001 From: Vadym Matsishevskyi <25311427+vam-google@users.noreply.github.com> Date: Wed, 15 Aug 2018 15:54:35 -0700 Subject: [PATCH 0045/3441] Release 0.58.0 and 1.40.0 (#3565) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 25ff0edcc0d2..2bf48bdb4919 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.39.0 + 1.40.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.39.0' +compile 'com.google.cloud:google-cloud-bigquery:1.40.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.39.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.40.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4b066ee1c238..4d4ec848ebe4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.39.1-SNAPSHOT + 1.40.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.57.1-alpha-SNAPSHOT + 0.58.0-alpha google-cloud-bigquery From 4a8da92b7f2f6e7d07f88c320236e51597b3bf57 Mon Sep 17 00:00:00 2001 From: Vadym Matsishevskyi <25311427+vam-google@users.noreply.github.com> Date: Wed, 15 Aug 2018 17:23:45 -0700 Subject: [PATCH 0046/3441] Bump version to 0.58.1-SNAPSHOT and 1.40.1-SNAPSHOT for development (#3566) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4d4ec848ebe4..2468515e80a3 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.40.0 + 1.40.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.58.0-alpha + 0.58.1-alpha-SNAPSHOT google-cloud-bigquery From 94f885f60f6ad14ea9a56e128c25a2d4f20b93a7 Mon Sep 17 00:00:00 2001 From: Michael Darakananda Date: Wed, 22 Aug 2018 16:39:03 -0700 Subject: [PATCH 0047/3441] release 0.59.0 (#3598) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 2bf48bdb4919..952afced4a77 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.40.0 + 1.41.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.40.0' +compile 'com.google.cloud:google-cloud-bigquery:1.41.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.40.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.41.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2468515e80a3..1c5bf72025e1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.40.1-SNAPSHOT + 1.41.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.58.1-alpha-SNAPSHOT + 0.59.0-alpha google-cloud-bigquery From 1cb7abe7f9d84cd2b6212047e8d4af9e16cc0aaf Mon Sep 17 00:00:00 2001 From: Michael Darakananda Date: Thu, 23 Aug 2018 19:32:16 -0700 Subject: [PATCH 0048/3441] bump version for development (#3599) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1c5bf72025e1..136a35232463 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.41.0 + 1.41.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.59.0-alpha + 0.59.1-alpha-SNAPSHOT google-cloud-bigquery From a62fbc977ff1616266c647e638b0474d7845d7fa Mon Sep 17 00:00:00 2001 From: Hanzhen Yi <33737743+hzyi-google@users.noreply.github.com> Date: Thu, 30 Aug 2018 15:43:20 -0700 Subject: [PATCH 0049/3441] Release 0.60.0 (#3623) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 952afced4a77..8fbf1309f9c0 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.41.0 + 1.42.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.41.0' +compile 'com.google.cloud:google-cloud-bigquery:1.42.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.41.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.42.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 136a35232463..55924a5460ab 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.41.1-SNAPSHOT + 1.42.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.59.1-alpha-SNAPSHOT + 0.60.0-alpha google-cloud-bigquery From 1f0a093c5fdf9453c216b4143f5dd2a029b3cc12 Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Thu, 6 Sep 2018 16:26:48 -0700 Subject: [PATCH 0050/3441] Release 0.61.0/1.43.0 (#3653) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 8fbf1309f9c0..3fab4a7d6557 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.42.0 + 1.43.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.42.0' +compile 'com.google.cloud:google-cloud-bigquery:1.43.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.42.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.43.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 55924a5460ab..3bc1283ee386 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.42.0 + 1.43.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.60.0-alpha + 0.61.0-alpha google-cloud-bigquery From 06a2b42d04f0e616724333b2a251c93fe1c83d18 Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Fri, 7 Sep 2018 10:14:04 -0700 Subject: [PATCH 0051/3441] Bump to snapshot version for development (#3656) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3bc1283ee386..2c547fb6b7fa 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.43.0 + 1.43.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.61.0-alpha + 0.61.1-alpha-SNAPSHOT google-cloud-bigquery From 0d1513c48667b570b5835bf46dea54899586da2c Mon Sep 17 00:00:00 2001 From: Garrett Jones Date: Thu, 13 Sep 2018 09:47:56 -0700 Subject: [PATCH 0052/3441] Release 1.44.0/0.62.0 (#3677) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 3fab4a7d6557..cecd2d56d8a5 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.43.0 + 1.44.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.43.0' +compile 'com.google.cloud:google-cloud-bigquery:1.44.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.43.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.44.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2c547fb6b7fa..93fa9d09008c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.43.1-SNAPSHOT + 1.44.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.61.1-alpha-SNAPSHOT + 0.62.0-alpha google-cloud-bigquery From d881fb5a9e2858187ab677531538ef04bcdb5dde Mon Sep 17 00:00:00 2001 From: Garrett Jones Date: Thu, 13 Sep 2018 10:59:16 -0700 Subject: [PATCH 0053/3441] Bump to next snapshot versions (#3679) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 93fa9d09008c..e31e559655cc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.44.0 + 1.44.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.62.0-alpha + 0.62.1-alpha-SNAPSHOT google-cloud-bigquery From 31615eca65811ecad627e4b9ce06d080a1acbb16 Mon Sep 17 00:00:00 2001 From: Marcello Steiner Date: Tue, 18 Sep 2018 21:28:28 +0200 Subject: [PATCH 0054/3441] bigquery: properly fail when setting TableId's project twice (#3694) Fixes #3283 --- .../com/google/cloud/bigquery/TableId.java | 7 +- .../cloud/bigquery/BigQueryImplTest.java | 113 ++++++++++-------- .../google/cloud/bigquery/TableIdTest.java | 3 +- 3 files changed, 71 insertions(+), 52 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java index 18047c625a38..fc65d3f3743e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java @@ -20,7 +20,8 @@ import com.google.api.services.bigquery.model.TableReference; import com.google.common.base.Function; - +import com.google.common.base.Preconditions; +import com.google.common.base.Strings; import java.io.Serializable; import java.util.Objects; @@ -111,7 +112,9 @@ public String toString() { } TableId setProjectId(String projectId) { - return getProject() != null ? this : TableId.of(projectId, getDataset(), getTable()); + Preconditions + .checkArgument(!Strings.isNullOrEmpty(projectId), "Provided projectId is null or empty"); + return TableId.of(projectId, getDataset(), getTable()); } TableReference toPb() { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 4c695b22995a..4bbfe4805131 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -282,7 +282,17 @@ public class BigQueryImplTest { private BigQueryRpc bigqueryRpcMock; private BigQuery bigquery; - @Rule public ExpectedException thrown = ExpectedException.none(); + @Rule + public ExpectedException thrown = ExpectedException.none(); + + private BigQueryOptions createBigQueryOptionsForProject(String project, + BigQueryRpcFactory rpcFactory) { + return BigQueryOptions.newBuilder() + .setProjectId(project) + .setServiceRpcFactory(rpcFactory) + .setRetrySettings(ServiceOptions.getNoRetrySettings()) + .build(); + } @Before public void setUp() { @@ -291,12 +301,7 @@ public void setUp() { EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(BigQueryOptions.class))) .andReturn(bigqueryRpcMock); EasyMock.replay(rpcFactoryMock); - options = - BigQueryOptions.newBuilder() - .setProjectId(PROJECT) - .setServiceRpcFactory(rpcFactoryMock) - .setRetrySettings(ServiceOptions.getNoRetrySettings()) - .build(); + options = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); } @After @@ -326,7 +331,7 @@ public void testCreateDataset() { public void testCreateDatasetWithSelectedFields() { Capture> capturedOptions = Capture.newInstance(); EasyMock.expect( - bigqueryRpcMock.create(eq(DATASET_INFO_WITH_PROJECT.toPb()), capture(capturedOptions))) + bigqueryRpcMock.create(eq(DATASET_INFO_WITH_PROJECT.toPb()), capture(capturedOptions))) .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); @@ -519,8 +524,8 @@ public void testUpdateDatasetWithSelectedFields() { DatasetInfo updatedDatasetInfoWithProject = DATASET_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); EasyMock.expect( - bigqueryRpcMock.patch( - eq(updatedDatasetInfoWithProject.toPb()), capture(capturedOptions))) + bigqueryRpcMock.patch( + eq(updatedDatasetInfoWithProject.toPb()), capture(capturedOptions))) .andReturn(updatedDatasetInfoWithProject.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); @@ -540,7 +545,9 @@ public void testCreateTable() { EasyMock.expect(bigqueryRpcMock.create(tableInfo.toPb(), EMPTY_RPC_OPTIONS)) .andReturn(tableInfo.toPb()); EasyMock.replay(bigqueryRpcMock); - bigquery = options.getService(); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); Table table = bigquery.create(tableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); } @@ -549,7 +556,7 @@ public void testCreateTable() { public void testCreateTableWithSelectedFields() { Capture> capturedOptions = Capture.newInstance(); EasyMock.expect( - bigqueryRpcMock.create(eq(TABLE_INFO_WITH_PROJECT.toPb()), capture(capturedOptions))) + bigqueryRpcMock.create(eq(TABLE_INFO_WITH_PROJECT.toPb()), capture(capturedOptions))) .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); @@ -589,7 +596,9 @@ public void testGetTableFromTableIdWithProject() { EasyMock.expect(bigqueryRpcMock.getTable(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .andReturn(tableInfo.toPb()); EasyMock.replay(bigqueryRpcMock); - bigquery = options.getService(); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); Table table = bigquery.getTable(tableId); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); } @@ -598,7 +607,7 @@ public void testGetTableFromTableIdWithProject() { public void testGetTableWithSelectedFields() { Capture> capturedOptions = Capture.newInstance(); EasyMock.expect( - bigqueryRpcMock.getTable(eq(PROJECT), eq(DATASET), eq(TABLE), capture(capturedOptions))) + bigqueryRpcMock.getTable(eq(PROJECT), eq(DATASET), eq(TABLE), capture(capturedOptions))) .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); @@ -700,7 +709,8 @@ public void testDeleteTableFromTableIdWithProject() { TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); EasyMock.expect(bigqueryRpcMock.deleteTable(OTHER_PROJECT, DATASET, TABLE)).andReturn(true); EasyMock.replay(bigqueryRpcMock); - bigquery = options.getService(); + BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); assertTrue(bigquery.delete(tableId)); } @@ -711,7 +721,8 @@ public void testUpdateTable() { EasyMock.expect(bigqueryRpcMock.patch(updatedTableInfo.toPb(), EMPTY_RPC_OPTIONS)) .andReturn(updatedTableInfo.toPb()); EasyMock.replay(bigqueryRpcMock); - bigquery = options.getService(); + BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); Table table = bigquery.update(updatedTableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfo)), table); } @@ -723,7 +734,7 @@ public void testUpdateTableWithSelectedFields() { TableInfo updatedTableInfoWithProject = TABLE_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); EasyMock.expect( - bigqueryRpcMock.patch(eq(updatedTableInfoWithProject.toPb()), capture(capturedOptions))) + bigqueryRpcMock.patch(eq(updatedTableInfoWithProject.toPb()), capture(capturedOptions))) .andReturn(updatedTableInfoWithProject.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); @@ -824,7 +835,8 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { EasyMock.expect(bigqueryRpcMock.insertAll(OTHER_PROJECT, DATASET, TABLE, requestPb)) .andReturn(responsePb); EasyMock.replay(bigqueryRpcMock); - bigquery = options.getService(); + BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); InsertAllResponse response = bigquery.insertAll(request); assertNotNull(response.getErrorsFor(0L)); assertNull(response.getErrorsFor(1L)); @@ -860,7 +872,8 @@ public void testListTableDataFromTableIdWithProject() { EasyMock.expect(bigqueryRpcMock.listTableData(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .andReturn(TABLE_DATA_PB); EasyMock.replay(bigqueryRpcMock); - bigquery = options.getService(); + BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); Page page = bigquery.listTableData(tableId); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); @@ -899,7 +912,7 @@ public void testCreateJobSuccess() { Capture jobCapture = EasyMock.newCapture(); EasyMock.expect( - bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) + bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) .andReturn(newJobPb()); EasyMock.replay(bigqueryRpcMock); @@ -912,9 +925,9 @@ public void testCreateJobSuccess() { public void testCreateJobWithSelectedFields() { Capture> capturedOptions = Capture.newInstance(); EasyMock.expect( - bigqueryRpcMock.create( - EasyMock.anyObject(com.google.api.services.bigquery.model.Job.class), - EasyMock.capture(capturedOptions))) + bigqueryRpcMock.create( + EasyMock.anyObject(com.google.api.services.bigquery.model.Job.class), + EasyMock.capture(capturedOptions))) .andReturn(newJobPb()); EasyMock.replay(bigqueryRpcMock); @@ -938,7 +951,7 @@ public void testCreateJobNoGet() { Capture jobCapture = EasyMock.newCapture(); EasyMock.expect( - bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) + bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) .andThrow(new BigQueryException(409, "already exists, for some reason")); EasyMock.replay(bigqueryRpcMock); @@ -965,14 +978,14 @@ public JobId get() { Capture jobCapture = EasyMock.newCapture(); EasyMock.expect( - bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) + bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) .andThrow(new BigQueryException(409, "already exists, for some reason")); EasyMock.expect( - bigqueryRpcMock.getJob( - anyString(), - EasyMock.eq(id), - EasyMock.eq((String) null), - EasyMock.eq(EMPTY_RPC_OPTIONS))) + bigqueryRpcMock.getJob( + anyString(), + EasyMock.eq(id), + EasyMock.eq((String) null), + EasyMock.eq(EMPTY_RPC_OPTIONS))) .andReturn(newJobPb()); EasyMock.replay(bigqueryRpcMock); @@ -991,7 +1004,9 @@ public void testCreateJobWithProjectId() { EasyMock.expect(bigqueryRpcMock.create(eq(jobInfo.toPb()), capture(capturedOptions))) .andReturn(jobInfo.toPb()); EasyMock.replay(bigqueryRpcMock); - bigquery = options.getService(); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); Job job = bigquery.create(jobInfo, JOB_OPTION_FIELDS); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(jobInfo)), job); String selector = (String) capturedOptions.getValue().get(JOB_OPTION_FIELDS.getRpcOption()); @@ -1168,16 +1183,16 @@ public void testQueryRequestCompleted() throws InterruptedException { .setSchema(TABLE_SCHEMA.toPb()); EasyMock.expect( - bigqueryRpcMock.create( - JOB_INFO.toPb(), Collections.emptyMap())) + bigqueryRpcMock.create( + JOB_INFO.toPb(), Collections.emptyMap())) .andReturn(jobResponsePb); EasyMock.expect( - bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .andReturn(responsePb); EasyMock.expect( - bigqueryRpcMock.listTableData( - PROJECT, DATASET, TABLE, Collections.emptyMap())) + bigqueryRpcMock.listTableData( + PROJECT, DATASET, TABLE, Collections.emptyMap())) .andReturn( new TableDataList() .setPageToken("") @@ -1225,8 +1240,8 @@ public void testQueryRequestCompletedOptions() throws InterruptedException { optionMap.put(pageSizeOption.getRpcOption(), pageSizeOption.getValue()); EasyMock.expect( - bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .andReturn(responsePb); EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, optionMap)) .andReturn( @@ -1274,24 +1289,24 @@ public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedExcepti .setSchema(TABLE_SCHEMA.toPb()); EasyMock.expect( - bigqueryRpcMock.create( - JOB_INFO.toPb(), Collections.emptyMap())) + bigqueryRpcMock.create( + JOB_INFO.toPb(), Collections.emptyMap())) .andReturn(jobResponsePb1); EasyMock.expect( - bigqueryRpcMock.getJob(eq(PROJECT), eq(JOB), anyString(), anyObject(Map.class))) - .andReturn(jobResponsePb1); + bigqueryRpcMock.getJob(eq(PROJECT), eq(JOB), anyString(), anyObject(Map.class))) + .andReturn(jobResponsePb1); EasyMock.expect( - bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .andReturn(responsePb1); EasyMock.expect( - bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .andReturn(responsePb2); EasyMock.expect( - bigqueryRpcMock.listTableData( - PROJECT, DATASET, TABLE, Collections.emptyMap())) + bigqueryRpcMock.listTableData( + PROJECT, DATASET, TABLE, Collections.emptyMap())) .andReturn( new TableDataList() .setPageToken("") diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java index cc1be2545ba0..c0114cda51e1 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java @@ -50,7 +50,8 @@ public void testToPbAndFromPb() { @Test public void testSetProjectId() { - assertEquals(TABLE_COMPLETE, TABLE.setProjectId("project")); + TableId differentProjectTable = TableId.of("differentProject", "dataset", "table"); + assertEquals(differentProjectTable, TABLE.setProjectId("differentProject")); } private void compareTableIds(TableId expected, TableId value) { From 12cc368228af27054d6add12af10024c39fc0b84 Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Thu, 20 Sep 2018 13:37:58 -0700 Subject: [PATCH 0055/3441] Release 1.45.0/0.63.0 (#3710) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index cecd2d56d8a5..5067b8c1fb3f 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.44.0 + 1.45.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.44.0' +compile 'com.google.cloud:google-cloud-bigquery:1.45.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.44.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.45.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e31e559655cc..3289c5d1542c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.44.1-SNAPSHOT + 1.45.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.62.1-alpha-SNAPSHOT + 0.63.0-alpha google-cloud-bigquery From 2fb8b9f7d31a880106ee3df12c853ed5b71c1422 Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Thu, 20 Sep 2018 17:22:25 -0700 Subject: [PATCH 0056/3441] Bump version to 0.63.1-beta-SNAPSHOT (#3714) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3289c5d1542c..a41952b0f862 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.45.0 + 1.45.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.63.0-alpha + 0.63.1-alpha-SNAPSHOT google-cloud-bigquery From b59f8603c98d8c4cbd4b3f019240a9997c388649 Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Tue, 25 Sep 2018 10:49:00 -0700 Subject: [PATCH 0057/3441] Remove dependency on vulnerable version of jackson, upgrade to jackson2 (#3724) --- .../java/com/google/cloud/bigquery/benchmark/Benchmark.java | 2 +- .../java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java b/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java index ae3e586303c9..e6fc16e176ee 100644 --- a/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java +++ b/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java @@ -16,7 +16,7 @@ package com.google.cloud.bigquery.benchmark; -import com.google.api.client.json.jackson.JacksonFactory; +import com.google.api.client.json.jackson2.JacksonFactory; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.FieldValue; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 2f56d5386164..df7cc5bce1ea 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -30,7 +30,7 @@ import com.google.api.client.http.HttpTransport; import com.google.api.client.http.json.JsonHttpContent; import com.google.api.client.json.JsonFactory; -import com.google.api.client.json.jackson.JacksonFactory; +import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.core.InternalApi; import com.google.api.core.InternalExtensionOnly; import com.google.api.services.bigquery.Bigquery; From 011ce4ab8772a6c414dd1abc0594b9508e7c139f Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Thu, 27 Sep 2018 12:20:32 -0700 Subject: [PATCH 0058/3441] Release 1.46.0/0.64.0 (#3742) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 5067b8c1fb3f..ac23736494bb 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.45.0 + 1.46.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.45.0' +compile 'com.google.cloud:google-cloud-bigquery:1.46.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.45.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.46.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a41952b0f862..ca4538a21a6c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.45.1-SNAPSHOT + 1.46.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.63.1-alpha-SNAPSHOT + 0.64.0-alpha google-cloud-bigquery From 84669aeff768067e227b502c0305cd5c5e64a753 Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Thu, 27 Sep 2018 13:54:34 -0700 Subject: [PATCH 0059/3441] Bump to next snapshot version (#3744) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ca4538a21a6c..40e35d6a842d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.46.0 + 1.46.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.64.0-alpha + 0.64.1-alpha-SNAPSHOT google-cloud-bigquery From 129d2dfdafe2a156b6537c0164ef7ba66c62ba4b Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 4 Oct 2018 10:46:45 -0700 Subject: [PATCH 0060/3441] Release 1.47.0/0.65.0 (#3767) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index ac23736494bb..237c284b7ba1 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -20,16 +20,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.46.0 + 1.47.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.46.0' +compile 'com.google.cloud:google-cloud-bigquery:1.47.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.46.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.47.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 40e35d6a842d..894aaa5f7734 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.46.1-SNAPSHOT + 1.47.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.64.1-alpha-SNAPSHOT + 0.65.0-alpha google-cloud-bigquery From 31700d835c7ab2e117017016bd7b373a57f0a680 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 4 Oct 2018 11:25:08 -0700 Subject: [PATCH 0061/3441] Bump to next snapshot version (#3768) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 894aaa5f7734..85af18d16f6f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.47.0 + 1.47.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.65.0-alpha + 0.65.1-alpha-SNAPSHOT google-cloud-bigquery From feb6170e80bcce229733b58bed8affa2bb65cbcd Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 4 Oct 2018 13:18:15 -0700 Subject: [PATCH 0062/3441] Remove CircleCI status, coveralls, and version eye badges (#3771) --- google-cloud-bigquery/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 237c284b7ba1..6f74cb1b5b93 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -3,11 +3,9 @@ Google Cloud Java Client for BigQuery Java idiomatic client for [Google Cloud BigQuery][cloud-bigquery]. -[![CircleCI](https://circleci.com/gh/GoogleCloudPlatform/google-cloud-java/tree/master.svg?style=shield)](https://circleci.com/gh/GoogleCloudPlatform/google-cloud-java/tree/master) -[![Coverage Status](https://coveralls.io/repos/GoogleCloudPlatform/google-cloud-java/badge.svg?branch=master)](https://coveralls.io/r/GoogleCloudPlatform/google-cloud-java?branch=master) +[![Kokoro CI](http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/master.svg)](http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/master.html) [![Maven](https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg)]( https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg) [![Codacy Badge](https://api.codacy.com/project/badge/grade/9da006ad7c3a4fe1abd142e77c003917)](https://www.codacy.com/app/mziccard/google-cloud-java) -[![Dependency Status](https://www.versioneye.com/user/projects/58fe4c8d6ac171426c414772/badge.svg?style=flat)](https://www.versioneye.com/user/projects/58fe4c8d6ac171426c414772) - [Product Documentation][bigquery-product-docs] - [Client Library Documentation][bigquery-client-lib-docs] From 6f7cc920c4305c57ca95418fcb079007c08c2a97 Mon Sep 17 00:00:00 2001 From: sombra-mykola-bakay <30506381+sombra-mykola-bakay@users.noreply.github.com> Date: Sat, 6 Oct 2018 00:11:05 +0300 Subject: [PATCH 0063/3441] add null check to JobInfo.fromPb(Job) and .toPb() (#3770) Fixes #3739. --- .../main/java/com/google/cloud/bigquery/JobInfo.java | 8 ++++++-- .../test/java/com/google/cloud/bigquery/JobTest.java | 10 ++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java index aa820496e10d..7dd8a0bddf89 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java @@ -180,7 +180,9 @@ static final class BuilderImpl extends Builder { this.statistics = JobStatistics.fromPb(jobPb); } this.userEmail = jobPb.getUserEmail(); - this.configuration = JobConfiguration.fromPb(jobPb.getConfiguration()); + if (jobPb.getConfiguration() != null) { + this.configuration = JobConfiguration.fromPb(jobPb.getConfiguration()); + } } @Override @@ -375,7 +377,9 @@ Job toPb() { if (statistics != null) { jobPb.setStatistics(statistics.toPb()); } - jobPb.setConfiguration(configuration.toPb()); + if(configuration != null){ + jobPb.setConfiguration(configuration.toPb()); + } return jobPb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index 5a3d465e9db3..5ef6e610f41b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -523,6 +523,16 @@ public void testToAndFromPb() { compareJob(expectedJob, Job.fromPb(serviceMockReturnsOptions, expectedJob.toPb())); } + @Test + public void testToAndFromPbWithoutConfiguration() { + JobInfo jobInfo = + JobInfo.newBuilder(null) + .build(); + initializeExpectedJob(4, jobInfo); + replay(bigquery); + compareJob(expectedJob, Job.fromPb(serviceMockReturnsOptions, expectedJob.toPb())); + } + private void compareJob(Job expected, Job value) { assertEquals(expected, value); compareJobInfo(expected, value); From cf6f5d899a0012a5f8fb0b62b0498c5ceb303524 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Fri, 5 Oct 2018 18:19:23 -0700 Subject: [PATCH 0064/3441] Release google-cloud-java v0.66.0 (#3782) * Release v0.66.0 * Fix javadoc in firestore CollectionReference --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 6f74cb1b5b93..7078fb5f309d 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.47.0 + 1.48.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.47.0' +compile 'com.google.cloud:google-cloud-bigquery:1.48.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.47.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.48.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 85af18d16f6f..e310d381e881 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.47.1-SNAPSHOT + 1.48.0 jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.65.1-alpha-SNAPSHOT + 0.66.0-alpha google-cloud-bigquery From 795aaf71a7707a4aec63b3bc7187c15e0236ad0b Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Sat, 6 Oct 2018 11:45:23 -0700 Subject: [PATCH 0065/3441] Release v0.66.1-SNAPSHOT (#3784) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e310d381e881..2e87beb7f819 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.48.0 + 1.48.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.66.0-alpha + 0.66.1-alpha-SNAPSHOT google-cloud-bigquery From 6b0ec9636002ae8a70edc30fedbee6d24114d2ec Mon Sep 17 00:00:00 2001 From: elisheva-qlogic <43041115+elisheva-qlogic@users.noreply.github.com> Date: Tue, 9 Oct 2018 16:32:34 -0400 Subject: [PATCH 0066/3441] Follow these instructions link corrected (#3790) --- google-cloud-bigquery/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 7078fb5f309d..75451856c2ba 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -61,7 +61,7 @@ For this tutorial, you will need a [Google Developers Console](https://console.developers.google.com/) project with the BigQuery API enabled. You will need to [enable billing](https://support.google.com/cloud/answer/6158867?hl=en) to use Google Cloud BigQuery. -[Follow these instructions](https://cloud.google.com/docs/authentication#preparation) to get your +[Follow these instructions](https://cloud.google.com/resource-manager/docs/creating-managing-projects) to get your project set up. You will also need to set up the local development environment by [installing the Google Cloud SDK](https://cloud.google.com/sdk/) and running the following commands in command line: `gcloud auth login` and `gcloud config set project [YOUR PROJECT ID]`. From 8c553b220d1c0855cc732d992c479a7d541c01e3 Mon Sep 17 00:00:00 2001 From: Andrea Lin Date: Tue, 9 Oct 2018 15:44:37 -0700 Subject: [PATCH 0067/3441] Move to (#3524) * move to * update some maven plugins to latest * remove anchor_build from javadoc_test * add versions * comment out javadoc task in bigtable pom * add build step back to javadoc in circleci * entirely remove doclint disable in bigtable --- google-cloud-bigquery/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2e87beb7f819..a84c4807e137 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -80,6 +80,7 @@ org.codehaus.mojo exec-maven-plugin + 1.6.0 false false From 1c569ce8ff71d06e45ee62fa526fd02c8c0a5a95 Mon Sep 17 00:00:00 2001 From: Igor Dvorzhak Date: Tue, 9 Oct 2018 15:58:25 -0700 Subject: [PATCH 0068/3441] Fix repo link in pom.xml (#3418) From 06f2ca687ccc24edbef56c45e490bbb8f62ad6bc Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 10 Oct 2018 12:06:24 -0700 Subject: [PATCH 0069/3441] Fix urls from GoogleCloudPlatform org to googleapis org (#3793) * Fix urls from GoogleCloudPlatform org to googleapis org * Fix typo --- google-cloud-bigquery/README.md | 16 ++++++++-------- google-cloud-bigquery/pom.xml | 2 +- .../com/google/cloud/bigquery/FieldValue.java | 2 +- .../google/cloud/bigquery/FieldValueList.java | 4 ++-- .../com/google/cloud/bigquery/package-info.java | 2 +- .../cloud/bigquery/testing/package-info.java | 2 +- .../google/cloud/bigquery/BigQueryImplTest.java | 2 +- .../google/cloud/bigquery/JobStatisticsTest.java | 2 +- 8 files changed, 16 insertions(+), 16 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 75451856c2ba..5c0a5389f54e 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -34,12 +34,12 @@ libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.48.0" Example Application ------------------- - [`BigQueryExample`](../../google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/BigQueryExample.java) - A simple command line interface providing some of Cloud BigQuery's functionality. -Read more about using this application on the [`BigQueryExample` docs page](https://googlecloudplatform.github.io/google-cloud-java/apidocs/?com/google/cloud/examples/bigquery/BigQueryExample.html). +Read more about using this application on the [`BigQueryExample` docs page](https://googleapis.github.io/google-cloud-java/apidocs/?com/google/cloud/examples/bigquery/BigQueryExample.html). Authentication -------------- -See the [Authentication](https://github.com/GoogleCloudPlatform/google-cloud-java#authentication) section in the base directory's README. +See the [Authentication](https://github.com/googleapis/google-cloud-java#authentication) section in the base directory's README. About Google Cloud BigQuery -------------------------- @@ -86,7 +86,7 @@ BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); ``` For other authentication options, see the -[Authentication](https://github.com/GoogleCloudPlatform/google-cloud-java#authentication) page. +[Authentication](https://github.com/googleapis/google-cloud-java#authentication) page. #### Creating a dataset With BigQuery you can create datasets. A dataset is a grouping mechanism that holds zero or more @@ -195,7 +195,7 @@ display on your webpage. Troubleshooting --------------- -To get help, follow the instructions in the [shared Troubleshooting document](https://github.com/GoogleCloudPlatform/gcloud-common/blob/master/troubleshooting/readme.md#troubleshooting). +To get help, follow the instructions in the [shared Troubleshooting document](https://github.com/googleapis/google-cloud-common/blob/master/troubleshooting/readme.md#troubleshooting). Transport --------- @@ -233,12 +233,12 @@ License Apache 2.0 - See [LICENSE] for more information. -[CONTRIBUTING]:https://github.com/GoogleCloudPlatform/google-cloud-java/blob/master/CONTRIBUTING.md -[LICENSE]: https://github.com/GoogleCloudPlatform/google-cloud-java/blob/master/LICENSE -[TESTING]: https://github.com/GoogleCloudPlatform/google-cloud-java/blob/master/TESTING.md#testing-code-that-uses-bigquery +[CONTRIBUTING]:https://github.com/googleapis/google-cloud-java/blob/master/CONTRIBUTING.md +[LICENSE]: https://github.com/googleapis/google-cloud-java/blob/master/LICENSE +[TESTING]: https://github.com/googleapis/google-cloud-java/blob/master/TESTING.md#testing-code-that-uses-bigquery [cloud-platform]: https://cloud.google.com/ [cloud-bigquery]: https://cloud.google.com/bigquery/ [cloud-storage]: https://cloud.google.com/storage/ [bigquery-product-docs]: https://cloud.google.com/bigquery/docs/ -[bigquery-client-lib-docs]: https://googlecloudplatform.github.io/google-cloud-java/google-cloud-clients/apidocs/index.html?com/google/cloud/bigquery/package-summary.html +[bigquery-client-lib-docs]: https://googleapis.github.io/google-cloud-java/google-cloud-clients/apidocs/index.html?com/google/cloud/bigquery/package-summary.html diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a84c4807e137..5b3b80a2411b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -5,7 +5,7 @@ 1.48.1-SNAPSHOT jar Google Cloud BigQuery - https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery + https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery Java idiomatic client for Google Cloud BigQuery. diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java index 4d6d303aae2c..a4f877015106 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java @@ -280,7 +280,7 @@ public final boolean equals(Object obj) { * respectively. * *

    This method is unstable. See this discussion + * href="https://github.com/googleapis/google-cloud-java/pull/2891">this discussion * for more context. */ @BetaApi diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java index 6af0b8a14118..0b27b046ad9d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java @@ -89,7 +89,7 @@ public int size() { * Creates an instance of {@code FieldValueList}, useful for testing. * *

    This method is unstable. See this discussion + * href="https://github.com/googleapis/google-cloud-java/pull/2891">this discussion * for more context. */ @BetaApi @@ -101,7 +101,7 @@ public static FieldValueList of(List row, FieldList schema) { * Creates an instance of {@code FieldValueList}, useful for testing. * *

    This method is unstable. See this discussion + * href="https://github.com/googleapis/google-cloud-java/pull/2891">this discussion * for more context. */ @BetaApi diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java index 721902b7bfe9..2b0c10a6a982 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java @@ -20,7 +20,7 @@ * *

    A simple usage example showing how to create a table if it does not exist and load data into * it. For the complete source code see - * + * * CreateTableAndLoadData.java. *

     {@code
      * BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java
    index 291a32b185d7..00eeed9dad04 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java
    @@ -32,7 +32,7 @@
      * RemoteBigQueryHelper.forceDelete(bigquery, DATASET);
      * }
    * - * @see + * @see * Google Cloud Java tools for testing */ package com.google.cloud.bigquery.testing; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 4bbfe4805131..fe0d8572d46f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -1448,7 +1448,7 @@ public void testRuntimeException() { @Test public void testQueryDryRun() throws Exception { - // https://github.com/GoogleCloudPlatform/google-cloud-java/issues/2479 + // https://github.com/googleapis/google-cloud-java/issues/2479 EasyMock.replay(bigqueryRpcMock); thrown.expect(UnsupportedOperationException.class); options diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index cae861be6d85..15481a823cb0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -218,7 +218,7 @@ public void testToPbAndFromPb() { @Test public void testIncomplete() { - // https://github.com/GoogleCloudPlatform/google-cloud-java/issues/2357 + // https://github.com/googleapis/google-cloud-java/issues/2357 com.google.api.services.bigquery.model.Job job = new com.google.api.services.bigquery.model.Job() .setStatistics( From 92611b880c7dfcbee13bca56cd80cfa46337d8c3 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 10 Oct 2018 16:48:48 -0700 Subject: [PATCH 0070/3441] Revert "Move to (#3524)" (#3806) This reverts commit 8c553b220d1c0855cc732d992c479a7d541c01e3. --- google-cloud-bigquery/pom.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5b3b80a2411b..7785315f4fe7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -80,7 +80,6 @@ org.codehaus.mojo exec-maven-plugin - 1.6.0 false false From 98efcfb95328d032761ae04073497677b4b9b388 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 11 Oct 2018 09:50:15 -0700 Subject: [PATCH 0071/3441] Release v0.67.0 (#3807) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 5c0a5389f54e..319db748c26a 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.48.0 + 1.49.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.48.0' +compile 'com.google.cloud:google-cloud-bigquery:1.49.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.48.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.49.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7785315f4fe7..7db93f5b185f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.48.1-SNAPSHOT + 1.49.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.66.1-alpha-SNAPSHOT + 0.67.0-alpha google-cloud-bigquery From 5380ae3060cb974e2cc29f3b6928446cc6361884 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 11 Oct 2018 13:31:41 -0700 Subject: [PATCH 0072/3441] Bump next snapshot (#3810) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7db93f5b185f..41a739a87e56 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.49.0 + 1.49.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.67.0-alpha + 0.67.1-alpha-SNAPSHOT google-cloud-bigquery From 0f8f1e7b6fc788e59cec54980f023d4be3236eef Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Thu, 25 Oct 2018 12:18:15 -0700 Subject: [PATCH 0073/3441] Release v0.68.0 (#3857) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 319db748c26a..71b909167d4e 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.49.0 + 1.50.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.49.0' +compile 'com.google.cloud:google-cloud-bigquery:1.50.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.49.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.50.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 41a739a87e56..0c352962b54e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.49.1-SNAPSHOT + 1.50.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.67.1-alpha-SNAPSHOT + 0.68.0-alpha google-cloud-bigquery From 692af62f9331a0a4427a35190f542631eca54de0 Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Thu, 25 Oct 2018 15:46:37 -0700 Subject: [PATCH 0074/3441] Bump next snapshot (#3862) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0c352962b54e..95575bc205f2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.50.0 + 1.50.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.68.0-alpha + 0.68.1-alpha-SNAPSHOT google-cloud-bigquery From 97a3e1432f577ddd52e847dff55029b4b74d0b74 Mon Sep 17 00:00:00 2001 From: Marcello Steiner Date: Tue, 30 Oct 2018 18:20:57 +0100 Subject: [PATCH 0075/3441] Fixes googleapis/google-cloud-java#3808. (#3873) Now getTable of BigQueryImpl checks if the provided TableId has the project set. If yes, the set projectId is used, otherwise the projectId used when creating the BigQuery client will be used. The additional test checks this behavior by calling getTableId with an empty projectId. --- .../com/google/cloud/bigquery/BigQueryImpl.java | 8 +++++++- .../google/cloud/bigquery/BigQueryImplTest.java | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index c4d6f0f7ae88..3cfaa9629609 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -39,6 +39,7 @@ import com.google.cloud.bigquery.spi.v2.BigQueryRpc; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; +import com.google.common.base.Strings; import com.google.common.base.Supplier; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; @@ -401,7 +402,12 @@ public Table getTable(final String datasetId, final String tableId, TableOption. @Override public Table getTable(TableId tableId, TableOption... options) { - final TableId completeTableId = tableId.setProjectId(getOptions().getProjectId()); + // More context about why this: https://github.com/googleapis/google-cloud-java/issues/3808 + final TableId completeTableId = tableId.setProjectId( + Strings.isNullOrEmpty(tableId.getProject()) + ? getOptions().getProjectId() + : tableId.getProject() + ); final Map optionsMap = optionMap(options); try { com.google.api.services.bigquery.model.Table answer = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index fe0d8572d46f..8291045b34d1 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -603,6 +603,20 @@ public void testGetTableFromTableIdWithProject() { assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); } + @Test + public void testGetTableFromTableIdWithoutProject() { + TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); + TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); + EasyMock.expect(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .andReturn(tableInfo.toPb()); + EasyMock.replay(bigqueryRpcMock); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); + Table table = bigquery.getTable(tableId); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); + } + @Test public void testGetTableWithSelectedFields() { Capture> capturedOptions = Capture.newInstance(); From 23d589c52c22033de7d018832145a4924e468f00 Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Tue, 30 Oct 2018 10:47:52 -0700 Subject: [PATCH 0076/3441] BigQuery: Add support for retreiving labels (#3879) --- .../src/main/java/com/google/cloud/bigquery/BigQuery.java | 1 + .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 5c5dcd496d61..090d6c87ca45 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -89,6 +89,7 @@ enum TableField implements FieldSelector { EXTERNAL_DATA_CONFIGURATION("externalDataConfiguration"), FRIENDLY_NAME("friendlyName"), ID("id"), + LABELS("labels"), LAST_MODIFIED_TIME("lastModifiedTime"), LOCATION("location"), NUM_BYTES("numBytes"), diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 3a07a4166ef7..f1b1c8c67f19 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -420,16 +420,19 @@ public void testCreateAndGetTableWithSelectedField() { String tableName = "test_create_and_get_selected_fields_table"; TableId tableId = TableId.of(DATASET, tableName); StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); - Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + Table createdTable = bigquery.create(TableInfo.newBuilder(tableId, tableDefinition) + .setLabels(Collections.singletonMap("a", "b")) + .build()); assertNotNull(createdTable); assertEquals(DATASET, createdTable.getTableId().getDataset()); assertEquals(tableName, createdTable.getTableId().getTable()); Table remoteTable = bigquery.getTable(DATASET, tableName, - TableOption.fields(TableField.CREATION_TIME)); + TableOption.fields(TableField.CREATION_TIME, TableField.LABELS)); assertNotNull(remoteTable); assertTrue(remoteTable.getDefinition() instanceof StandardTableDefinition); assertEquals(createdTable.getTableId(), remoteTable.getTableId()); assertEquals(TableDefinition.Type.TABLE, remoteTable.getDefinition().getType()); + assertThat(remoteTable.getLabels()).containsExactly("a", "b"); assertNotNull(remoteTable.getCreationTime()); assertNull(remoteTable.getDefinition().getSchema()); assertNull(remoteTable.getLastModifiedTime()); From bb097bea3c44cfaba106ae2310ae5429d429ac6b Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 1 Nov 2018 13:47:10 -0700 Subject: [PATCH 0077/3441] Release v0.69.0 (#3890) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 71b909167d4e..aacb4257a239 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.50.0 + 1.51.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.50.0' +compile 'com.google.cloud:google-cloud-bigquery:1.51.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.50.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.51.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 95575bc205f2..52baba5254b8 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.50.1-SNAPSHOT + 1.51.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.68.1-alpha-SNAPSHOT + 0.69.0-alpha google-cloud-bigquery From 27a913a4bdfc69824f0c5b00ff5d3085d986b394 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 1 Nov 2018 14:19:43 -0700 Subject: [PATCH 0078/3441] Bump next snapshot (#3892) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 52baba5254b8..f9b21a7d253e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.51.0 + 1.51.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.69.0-alpha + 0.69.1-alpha-SNAPSHOT google-cloud-bigquery From 87345978d244cef25edb0651e0e3a3c9c7bb1af0 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 7 Nov 2018 15:33:45 -0800 Subject: [PATCH 0079/3441] Release google-cloud-java v0.70.0 (#3921) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index aacb4257a239..4678fc475193 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.51.0 + 1.52.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.51.0' +compile 'com.google.cloud:google-cloud-bigquery:1.52.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.51.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.52.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f9b21a7d253e..272d2c1496ae 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.51.1-SNAPSHOT + 1.52.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.69.1-alpha-SNAPSHOT + 0.70.0-alpha google-cloud-bigquery From 26c5d5e6eeff73df4f37c843db150acf40282924 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 7 Nov 2018 15:36:43 -0800 Subject: [PATCH 0080/3441] Bump next snapshot (#3922) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 272d2c1496ae..342baec98c50 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.52.0 + 1.52.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.70.0-alpha + 0.70.1-alpha-SNAPSHOT google-cloud-bigquery From d4daa061a016a1c94077b771b3d94345491cf4d1 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 15 Nov 2018 16:52:33 -0800 Subject: [PATCH 0081/3441] Release v0.71.0 (#3978) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 4678fc475193..49616611dbe8 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.52.0 + 1.53.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.52.0' +compile 'com.google.cloud:google-cloud-bigquery:1.53.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.52.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.53.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 342baec98c50..a9d92b6854c5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.52.1-SNAPSHOT + 1.53.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.70.1-alpha-SNAPSHOT + 0.71.0-alpha google-cloud-bigquery From 1e00b5188f61a7439ee83abe13ff848eaaf4c510 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Fri, 16 Nov 2018 09:43:35 -0800 Subject: [PATCH 0082/3441] Bump next snapshot (#3981) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a9d92b6854c5..fb8e6ba4bf41 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.53.0 + 1.53.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.71.0-alpha + 0.71.1-alpha-SNAPSHOT google-cloud-bigquery From c5d2b7de1bab10a3e7f5035810b75b72dd890567 Mon Sep 17 00:00:00 2001 From: ajaaym <34161822+ajaaym@users.noreply.github.com> Date: Mon, 19 Nov 2018 17:11:04 -0500 Subject: [PATCH 0083/3441] Fix BigQuery NullPointerException when estimatedFields is empty (#3984) * BigQuery client throws NullPointerException when estimatedFields is empty * fix formatting --- .../cloud/bigquery/StandardTableDefinition.java | 15 ++++++++++----- .../bigquery/StandardTableDefinitionTest.java | 7 +++++++ 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index b4329b19065b..7a90397f8b80 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -46,11 +46,11 @@ public abstract class StandardTableDefinition extends TableDefinition { public static class StreamingBuffer implements Serializable { private static final long serialVersionUID = 822027055549277843L; - private final long estimatedRows; - private final long estimatedBytes; + private final Long estimatedRows; + private final Long estimatedBytes; private final Long oldestEntryTime; - StreamingBuffer(long estimatedRows, long estimatedBytes, Long oldestEntryTime) { + StreamingBuffer(Long estimatedRows, Long estimatedBytes, Long oldestEntryTime) { this.estimatedRows = estimatedRows; this.estimatedBytes = estimatedBytes; this.oldestEntryTime = oldestEntryTime; @@ -113,8 +113,13 @@ static StreamingBuffer fromPb(Streamingbuffer streamingBufferPb) { if (streamingBufferPb.getOldestEntryTime() != null) { oldestEntryTime = streamingBufferPb.getOldestEntryTime().longValue(); } - return new StreamingBuffer(streamingBufferPb.getEstimatedRows().longValue(), - streamingBufferPb.getEstimatedBytes().longValue(), + return new StreamingBuffer( + streamingBufferPb.getEstimatedRows() != null + ? streamingBufferPb.getEstimatedRows().longValue() + : null, + streamingBufferPb.getEstimatedBytes() != null + ? streamingBufferPb.getEstimatedBytes().longValue() + : null, oldestEntryTime); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java index 85649eebc7c9..fb6d810ab028 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -20,6 +20,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import com.google.api.services.bigquery.model.Streamingbuffer; import com.google.cloud.bigquery.StandardTableDefinition.StreamingBuffer; import com.google.common.collect.ImmutableList; @@ -117,6 +118,12 @@ public void testToAndFromPb() { TableDefinition.fromPb(definition.toPb())); } + @Test + public void testFromPbWithNullEstimatedRowsAndBytes() { + StandardTableDefinition.fromPb( + TABLE_DEFINITION.toPb().setStreamingBuffer(new Streamingbuffer())); + } + private void compareStandardTableDefinition(StandardTableDefinition expected, StandardTableDefinition value) { assertEquals(expected, value); From a9270d6803d796c9bbda9facc72db4bbae16bab0 Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Wed, 28 Nov 2018 15:25:45 -0800 Subject: [PATCH 0084/3441] Release v0.72.0 (#4113) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 49616611dbe8..242a001c616b 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.53.0 + 1.54.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.53.0' +compile 'com.google.cloud:google-cloud-bigquery:1.54.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.53.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.54.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index fb8e6ba4bf41..958c21ca60f7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.53.1-SNAPSHOT + 1.54.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.71.1-alpha-SNAPSHOT + 0.72.0-alpha google-cloud-bigquery From 9c9a72a42f1978ef240eb2dbd4f68df817b51894 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 29 Nov 2018 14:28:50 -0800 Subject: [PATCH 0085/3441] Bump next snapshot (#4118) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 958c21ca60f7..852536e8ab8e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.54.0 + 1.54.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.72.0-alpha + 0.72.1-alpha-SNAPSHOT google-cloud-bigquery From bd26a54c62f2dfbea532311003591e62dcdc0ad9 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 30 Nov 2018 06:25:10 +0530 Subject: [PATCH 0086/3441] BigQuery: Fix TableId behaviour for non default BigQueryClient project (#4115) * Fixes create, update and delete methods * remove comments * Fix formatting --- .../google/cloud/bigquery/BigQueryImpl.java | 20 ++++++++-- .../cloud/bigquery/BigQueryImplTest.java | 38 +++++++++++++++++++ 2 files changed, 55 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 3cfaa9629609..7800effb8e4d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -161,7 +161,12 @@ public com.google.api.services.bigquery.model.Dataset call() { @Override public Table create(TableInfo tableInfo, TableOption... options) { final com.google.api.services.bigquery.model.Table tablePb = - tableInfo.setProjectId(getOptions().getProjectId()).toPb(); + tableInfo + .setProjectId( + Strings.isNullOrEmpty(tableInfo.getTableId().getProject()) + ? getOptions().getProjectId() + : tableInfo.getTableId().getProject()) + .toPb(); final Map optionsMap = optionMap(options); try { return Table.fromPb(this, @@ -345,7 +350,11 @@ public boolean delete(String datasetId, String tableId) { @Override public boolean delete(TableId tableId) { - final TableId completeTableId = tableId.setProjectId(getOptions().getProjectId()); + final TableId completeTableId = tableId.setProjectId( + Strings.isNullOrEmpty(tableId.getProject()) + ? getOptions().getProjectId() + : tableId.getProject() + ); try { return runWithRetries(new Callable() { @Override @@ -380,7 +389,12 @@ public com.google.api.services.bigquery.model.Dataset call() { @Override public Table update(TableInfo tableInfo, TableOption... options) { final com.google.api.services.bigquery.model.Table tablePb = - tableInfo.setProjectId(getOptions().getProjectId()).toPb(); + tableInfo + .setProjectId( + Strings.isNullOrEmpty(tableInfo.getTableId().getProject()) + ? getOptions().getProjectId() + : tableInfo.getTableId().getProject()) + .toPb(); final Map optionsMap = optionMap(options); try { return Table.fromPb(this, diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 8291045b34d1..a12a92860d45 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -552,6 +552,20 @@ public void testCreateTable() { assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); } + @Test + public void testCreateTableWithoutProject() { + TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); + TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); + tableInfo.toBuilder().setTableId(tableId); + EasyMock.expect(bigqueryRpcMock.create(tableInfo.toPb(), EMPTY_RPC_OPTIONS)) + .andReturn(tableInfo.toPb()); + EasyMock.replay(bigqueryRpcMock); + BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); + Table table = bigquery.create(tableInfo); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); + } + @Test public void testCreateTableWithSelectedFields() { Capture> capturedOptions = Capture.newInstance(); @@ -728,6 +742,16 @@ public void testDeleteTableFromTableIdWithProject() { assertTrue(bigquery.delete(tableId)); } + @Test + public void testDeleteTableFromTableIdWithoutProject() { + TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); + EasyMock.expect(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).andReturn(true); + EasyMock.replay(bigqueryRpcMock); + BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); + assertTrue(bigquery.delete(tableId)); + } + @Test public void testUpdateTable() { TableInfo updatedTableInfo = @@ -741,6 +765,20 @@ public void testUpdateTable() { assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfo)), table); } + @Test + public void testUpdateTableWithoutProject() { + TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); + TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); + tableInfo.toBuilder().setTableId(tableId); + EasyMock.expect(bigqueryRpcMock.patch(tableInfo.toPb(), EMPTY_RPC_OPTIONS)) + .andReturn(tableInfo.toPb()); + EasyMock.replay(bigqueryRpcMock); + BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); + Table table = bigquery.update(tableInfo); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); + } + @Test public void testUpdateTableWithSelectedFields() { Capture> capturedOptions = Capture.newInstance(); From d5f4517cb220241abc5387d8f33ced2be6052601 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Fri, 30 Nov 2018 11:29:29 -0800 Subject: [PATCH 0087/3441] Run google-java-format on all artifacts (#4121) * Run google-java-format on all artifats * Format some missed files * Add more missed files * Fix formatting issues from the merge --- .../java/com/google/cloud/bigquery/Acl.java | 138 ++--- .../com/google/cloud/bigquery/BigQuery.java | 292 +++++----- .../google/cloud/bigquery/BigQueryError.java | 25 +- .../cloud/bigquery/BigQueryException.java | 13 +- .../cloud/bigquery/BigQueryFactory.java | 7 +- .../google/cloud/bigquery/BigQueryImpl.java | 329 +++++++---- .../cloud/bigquery/BigQueryOptions.java | 16 +- .../google/cloud/bigquery/BigtableColumn.java | 66 ++- .../cloud/bigquery/BigtableColumnFamily.java | 74 +-- .../cloud/bigquery/BigtableOptions.java | 25 +- .../com/google/cloud/bigquery/Clustering.java | 8 +- .../cloud/bigquery/CopyJobConfiguration.java | 84 +-- .../com/google/cloud/bigquery/CsvOptions.java | 62 +- .../com/google/cloud/bigquery/Dataset.java | 49 +- .../com/google/cloud/bigquery/DatasetId.java | 30 +- .../google/cloud/bigquery/DatasetInfo.java | 145 ++--- .../bigquery/DatastoreBackupOptions.java | 29 +- .../cloud/bigquery/EmptyTableResult.java | 4 +- .../bigquery/EncryptionConfiguration.java | 25 +- .../bigquery/ExternalTableDefinition.java | 78 +-- .../bigquery/ExtractJobConfiguration.java | 80 +-- .../java/com/google/cloud/bigquery/Field.java | 99 ++-- .../com/google/cloud/bigquery/FieldList.java | 4 +- .../com/google/cloud/bigquery/FieldValue.java | 84 +-- .../google/cloud/bigquery/FieldValueList.java | 32 +- .../google/cloud/bigquery/FormatOptions.java | 53 +- .../cloud/bigquery/GoogleSheetsOptions.java | 33 +- .../cloud/bigquery/InsertAllRequest.java | 89 +-- .../cloud/bigquery/InsertAllResponse.java | 53 +- .../cloud/bigquery/JobConfiguration.java | 38 +- .../java/com/google/cloud/bigquery/JobId.java | 12 +- .../com/google/cloud/bigquery/JobInfo.java | 125 ++-- .../google/cloud/bigquery/JobStatistics.java | 223 +++---- .../cloud/bigquery/LegacySQLTypeName.java | 65 ++- .../cloud/bigquery/LoadConfiguration.java | 127 ++-- .../cloud/bigquery/LoadJobConfiguration.java | 86 ++- .../cloud/bigquery/ModelTableDefinition.java | 12 +- .../com/google/cloud/bigquery/Option.java | 5 +- .../cloud/bigquery/QueryJobConfiguration.java | 356 ++++++----- .../cloud/bigquery/QueryParameterValue.java | 7 +- .../google/cloud/bigquery/QueryResponse.java | 1 - .../com/google/cloud/bigquery/QueryStage.java | 211 +++---- .../com/google/cloud/bigquery/Schema.java | 46 +- .../cloud/bigquery/StandardSQLTypeName.java | 7 +- .../bigquery/StandardTableDefinition.java | 23 +- .../java/com/google/cloud/bigquery/Table.java | 87 +-- .../cloud/bigquery/TableDataWriteChannel.java | 44 +- .../cloud/bigquery/TableDefinition.java | 35 +- .../com/google/cloud/bigquery/TableId.java | 40 +- .../com/google/cloud/bigquery/TableInfo.java | 94 +-- .../cloud/bigquery/TimePartitioning.java | 7 +- .../google/cloud/bigquery/TimelineSample.java | 43 +- .../cloud/bigquery/UserDefinedFunction.java | 25 +- .../google/cloud/bigquery/ViewDefinition.java | 4 - .../bigquery/WriteChannelConfiguration.java | 105 ++-- .../google/cloud/bigquery/package-info.java | 14 +- .../bigquery/spi/BigQueryRpcFactory.java | 7 +- .../cloud/bigquery/spi/v2/BigQueryRpc.java | 23 +- .../bigquery/spi/v2/HttpBigQueryRpc.java | 130 +++-- .../testing/RemoteBigQueryHelper.java | 65 ++- .../cloud/bigquery/testing/package-info.java | 11 +- .../com/google/cloud/bigquery/AclTest.java | 7 - .../cloud/bigquery/BigQueryErrorTest.java | 1 - .../cloud/bigquery/BigQueryExceptionTest.java | 4 +- .../cloud/bigquery/BigQueryImplTest.java | 100 ++-- .../cloud/bigquery/BigQueryOptionsTest.java | 4 +- .../cloud/bigquery/BigtableOptionsTest.java | 63 +- .../bigquery/CopyJobConfigurationTest.java | 37 +- .../google/cloud/bigquery/CsvOptionsTest.java | 25 +- .../google/cloud/bigquery/DatasetIdTest.java | 1 - .../cloud/bigquery/DatasetInfoTest.java | 69 ++- .../google/cloud/bigquery/DatasetTest.java | 92 +-- .../bigquery/DatastoreBackupOptionsTest.java | 13 +- .../bigquery/ExternalTableDefinitionTest.java | 25 +- .../bigquery/ExtractJobConfigurationTest.java | 25 +- .../google/cloud/bigquery/FieldListTest.java | 30 +- .../com/google/cloud/bigquery/FieldTest.java | 33 +- .../cloud/bigquery/FieldValueListTest.java | 25 +- .../google/cloud/bigquery/FieldValueTest.java | 16 +- .../cloud/bigquery/FormatOptionsTest.java | 5 +- .../bigquery/GoogleSheetsOptionsTest.java | 24 +- .../cloud/bigquery/InsertAllRequestTest.java | 41 +- .../cloud/bigquery/InsertAllResponseTest.java | 31 +- .../com/google/cloud/bigquery/JobIdTest.java | 1 - .../google/cloud/bigquery/JobInfoTest.java | 111 ++-- .../cloud/bigquery/JobStatisticsTest.java | 190 +++--- .../google/cloud/bigquery/JobStatusTest.java | 11 +- .../com/google/cloud/bigquery/JobTest.java | 116 ++-- .../bigquery/LoadJobConfigurationTest.java | 60 +- .../com/google/cloud/bigquery/OptionTest.java | 4 +- .../bigquery/QueryJobConfigurationTest.java | 30 +- .../bigquery/QueryParameterValueTest.java | 45 +- .../google/cloud/bigquery/QueryStageTest.java | 71 ++- .../com/google/cloud/bigquery/SchemaTest.java | 8 +- .../cloud/bigquery/SerializationTest.java | 119 ++-- .../bigquery/StandardTableDefinitionTest.java | 20 +- .../bigquery/TableDataWriteChannelTest.java | 76 ++- .../google/cloud/bigquery/TableIdTest.java | 1 - .../google/cloud/bigquery/TableInfoTest.java | 30 +- .../com/google/cloud/bigquery/TableTest.java | 32 +- .../cloud/bigquery/TimePartitioningTest.java | 12 +- .../cloud/bigquery/TimelineSampleTest.java | 18 +- .../bigquery/UserDefinedFunctionTest.java | 1 - .../cloud/bigquery/ViewDefinitionTest.java | 26 +- .../WriteChannelConfigurationTest.java | 41 +- .../cloud/bigquery/it/ITBigQueryTest.java | 551 ++++++++++-------- .../testing/RemoteBigQueryHelperTest.java | 64 +- 107 files changed, 2985 insertions(+), 3428 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java index df0ae0a532db..2e618f3d0bd3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java @@ -22,7 +22,6 @@ import com.google.api.services.bigquery.model.Dataset.Access; import com.google.cloud.StringEnumType; import com.google.cloud.StringEnumValue; - import java.io.Serializable; import java.util.Objects; @@ -57,23 +56,15 @@ public Role apply(String constant) { } }; - private static final StringEnumType type = new StringEnumType( - Role.class, - CONSTRUCTOR); + private static final StringEnumType type = new StringEnumType(Role.class, CONSTRUCTOR); - /** - * Can read, query, copy or export tables in the dataset. - */ + /** Can read, query, copy or export tables in the dataset. */ public static final Role READER = type.createAndRegister("READER"); - /** - * Same as {@link #READER} plus can edit or append data in the dataset. - */ + /** Same as {@link #READER} plus can edit or append data in the dataset. */ public static final Role WRITER = type.createAndRegister("WRITER"); - /** - * Same as {@link #WRITER} plus can update and delete the dataset. - */ + /** Same as {@link #WRITER} plus can update and delete the dataset. */ public static final Role OWNER = type.createAndRegister("OWNER"); private Role(String constant) { @@ -81,49 +72,43 @@ private Role(String constant) { } /** - * Get the Role for the given String constant, and throw an exception if the constant is - * not recognized. + * Get the Role for the given String constant, and throw an exception if the constant is not + * recognized. */ public static Role valueOfStrict(String constant) { return type.valueOfStrict(constant); } - /** - * Get the Role for the given String constant, and allow unrecognized values. - */ + /** Get the Role for the given String constant, and allow unrecognized values. */ public static Role valueOf(String constant) { return type.valueOf(constant); } - /** - * Return the known values for Role. - */ + /** Return the known values for Role. */ public static Role[] values() { return type.values(); } } - /** - * Base class for BigQuery entities that can be grant access to the dataset. - */ + /** Base class for BigQuery entities that can be grant access to the dataset. */ public abstract static class Entity implements Serializable { private static final long serialVersionUID = 8111776788607959944L; private final Type type; - /** - * Types of BigQuery entities. - */ + /** Types of BigQuery entities. */ public enum Type { - DOMAIN, GROUP, USER, VIEW + DOMAIN, + GROUP, + USER, + VIEW } Entity(Type type) { this.type = type; } - public Type getType() { return type; } @@ -147,8 +132,8 @@ static Entity fromPb(Access access) { return new View(TableId.fromPb(access.getView())); } // Unreachable - throw new BigQueryException(BigQueryException.UNKNOWN_CODE, - "Unrecognized access configuration"); + throw new BigQueryException( + BigQueryException.UNKNOWN_CODE, "Unrecognized access configuration"); } } @@ -159,21 +144,16 @@ static Entity fromPb(Access access) { public static final class Domain extends Entity { private static final long serialVersionUID = -3033025857280447253L; - + private final String domain; - /** - * Creates a Domain entity given the domain name. - */ + /** Creates a Domain entity given the domain name. */ public Domain(String domain) { super(Type.DOMAIN); this.domain = domain; } - - /** - * Returns the domain name. - */ + /** Returns the domain name. */ public String getDomain() { return domain; } @@ -209,9 +189,9 @@ Access toPb() { /** * Class for a BigQuery Group entity. Objects of this class represent a group to granted access - * to. A Group entity can be created given the group's email or can be a special group: - * {@link #ofProjectOwners()}, {@link #ofProjectReaders()}, {@link #ofProjectWriters()} or - * {@link #ofAllAuthenticatedUsers()}. + * to. A Group entity can be created given the group's email or can be a special group: {@link + * #ofProjectOwners()}, {@link #ofProjectReaders()}, {@link #ofProjectWriters()} or {@link + * #ofAllAuthenticatedUsers()}. */ public static final class Group extends Entity { @@ -220,24 +200,23 @@ public static final class Group extends Entity { private static final String PROJECT_WRITERS = "projectWriters"; private static final String ALL_AUTHENTICATED_USERS = "allAuthenticatedUsers"; private static final long serialVersionUID = 5146829352398103029L; - + private final String identifier; /** - * Creates a Group entity given its identifier. Identifier can be either a - * - * special group identifier or a group email. + * Creates a Group entity given its identifier. Identifier can be either a + * special group identifier or a group email. */ public Group(String identifier) { super(Type.GROUP); this.identifier = identifier; } - /** - * Returns group's identifier, can be either a - * - * special group identifier or a group email. + * Returns group's identifier, can be either a + * special group identifier or a group email. */ public String getIdentifier() { return identifier; @@ -282,30 +261,22 @@ Access toPb() { } } - /** - * Returns a Group entity representing all project's owners. - */ + /** Returns a Group entity representing all project's owners. */ public static Group ofProjectOwners() { return new Group(PROJECT_OWNERS); } - /** - * Returns a Group entity representing all project's readers. - */ + /** Returns a Group entity representing all project's readers. */ public static Group ofProjectReaders() { return new Group(PROJECT_READERS); } - /** - * Returns a Group entity representing all project's writers. - */ + /** Returns a Group entity representing all project's writers. */ public static Group ofProjectWriters() { return new Group(PROJECT_WRITERS); } - /** - * Returns a Group entity representing all BigQuery authenticated users. - */ + /** Returns a Group entity representing all BigQuery authenticated users. */ public static Group ofAllAuthenticatedUsers() { return new Group(ALL_AUTHENTICATED_USERS); } @@ -316,23 +287,18 @@ public static Group ofAllAuthenticatedUsers() { * given the email address. */ public static final class User extends Entity { - + private static final long serialVersionUID = -4942821351073996141L; - + private final String email; - /** - * Creates a User entity given the user's email. - */ + /** Creates a User entity given the user's email. */ public User(String email) { super(Type.USER); this.email = email; } - - /** - * Returns user's email. - */ + /** Returns user's email. */ public String getEmail() { return email; } @@ -377,18 +343,13 @@ public static final class View extends Entity { private final TableId id; - /** - * Creates a View entity given the view's id. - */ + /** Creates a View entity given the view's id. */ public View(TableId id) { super(Type.VIEW); this.id = id; } - - /** - * Returns table's identity. - */ + /** Returns table's identity. */ public TableId getId() { return id; } @@ -426,18 +387,12 @@ private Acl(Entity entity, Role role) { this.role = role; } - - /** - * Returns the entity for this ACL. - */ + /** Returns the entity for this ACL. */ public Entity getEntity() { return entity; } - - /** - * Returns the role specified by this ACL. - */ + /** Returns the role specified by this ACL. */ public Role getRole() { return role; } @@ -452,9 +407,7 @@ public static Acl of(Entity entity, Role role) { return new Acl(entity, role); } - /** - * Returns an Acl object for a view entity. - */ + /** Returns an Acl object for a view entity. */ public static Acl of(View view) { return new Acl(view, null); } @@ -478,8 +431,7 @@ public boolean equals(Object obj) { return false; } final Acl other = (Acl) obj; - return Objects.equals(this.entity, other.entity) - && Objects.equals(this.role, other.role); + return Objects.equals(this.entity, other.entity) && Objects.equals(this.role, other.role); } Access toPb() { @@ -491,7 +443,7 @@ Access toPb() { } static Acl fromPb(Access access) { - return Acl.of(Entity.fromPb(access), - access.getRole() != null ? Role.valueOf(access.getRole()) : null); + return Acl.of( + Entity.fromPb(access), access.getRole() != null ? Role.valueOf(access.getRole()) : null); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 090d6c87ca45..3ff486c6c1cf 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -68,7 +68,6 @@ enum DatasetField implements FieldSelector { this.selector = selector; } - @Override public String getSelector() { return selector; @@ -111,7 +110,6 @@ enum TableField implements FieldSelector { this.selector = selector; } - @Override public String getSelector() { return selector; @@ -143,16 +141,13 @@ enum JobField implements FieldSelector { this.selector = selector; } - @Override public String getSelector() { return selector; } } - /** - * Class for specifying dataset list options. - */ + /** Class for specifying dataset list options. */ class DatasetListOption extends Option { private static final long serialVersionUID = 8660294969063340498L; @@ -161,31 +156,23 @@ private DatasetListOption(BigQueryRpc.Option option, Object value) { super(option, value); } - /** - * Returns an option to specify the maximum number of datasets returned per page. - */ + /** Returns an option to specify the maximum number of datasets returned per page. */ public static DatasetListOption pageSize(long pageSize) { return new DatasetListOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); } - /** - * Returns an option to specify the page token from which to start listing datasets. - */ + /** Returns an option to specify the page token from which to start listing datasets. */ public static DatasetListOption pageToken(String pageToken) { return new DatasetListOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); } - /** - * Returns an options to list all datasets, even hidden ones. - */ + /** Returns an options to list all datasets, even hidden ones. */ public static DatasetListOption all() { return new DatasetListOption(BigQueryRpc.Option.ALL_DATASETS, true); } } - /** - * Class for specifying dataset get, create and update options. - */ + /** Class for specifying dataset get, create and update options. */ class DatasetOption extends Option { private static final long serialVersionUID = 1674133909259913250L; @@ -196,19 +183,17 @@ private DatasetOption(BigQueryRpc.Option option, Object value) { /** * Returns an option to specify the dataset's fields to be returned by the RPC call. If this - * option is not provided all dataset's fields are returned. {@code DatasetOption.fields} can - * be used to specify only the fields of interest. {@link Dataset#getDatasetId()} is always + * option is not provided all dataset's fields are returned. {@code DatasetOption.fields} can be + * used to specify only the fields of interest. {@link Dataset#getDatasetId()} is always * returned, even if not specified. */ public static DatasetOption fields(DatasetField... fields) { - return new DatasetOption(BigQueryRpc.Option.FIELDS, - Helper.selector(DatasetField.REQUIRED_FIELDS, fields)); + return new DatasetOption( + BigQueryRpc.Option.FIELDS, Helper.selector(DatasetField.REQUIRED_FIELDS, fields)); } } - /** - * Class for specifying dataset delete options. - */ + /** Class for specifying dataset delete options. */ class DatasetDeleteOption extends Option { private static final long serialVersionUID = -7166083569900951337L; @@ -226,9 +211,7 @@ public static DatasetDeleteOption deleteContents() { } } - /** - * Class for specifying table list options. - */ + /** Class for specifying table list options. */ class TableListOption extends Option { private static final long serialVersionUID = 8660294969063340498L; @@ -237,25 +220,19 @@ private TableListOption(BigQueryRpc.Option option, Object value) { super(option, value); } - /** - * Returns an option to specify the maximum number of tables returned per page. - */ + /** Returns an option to specify the maximum number of tables returned per page. */ public static TableListOption pageSize(long pageSize) { checkArgument(pageSize >= 0); return new TableListOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); } - /** - * Returns an option to specify the page token from which to start listing tables. - */ + /** Returns an option to specify the page token from which to start listing tables. */ public static TableListOption pageToken(String pageToken) { return new TableListOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); } } - /** - * Class for specifying table get, create and update options. - */ + /** Class for specifying table get, create and update options. */ class TableOption extends Option { private static final long serialVersionUID = -1723870134095936772L; @@ -267,18 +244,16 @@ private TableOption(BigQueryRpc.Option option, Object value) { /** * Returns an option to specify the table's fields to be returned by the RPC call. If this * option is not provided all table's fields are returned. {@code TableOption.fields} can be - * used to specify only the fields of interest. {@link Table#getTableId()} and type (which is part - * of {@link Table#getDefinition()}) are always returned, even if not specified. + * used to specify only the fields of interest. {@link Table#getTableId()} and type (which is + * part of {@link Table#getDefinition()}) are always returned, even if not specified. */ public static TableOption fields(TableField... fields) { - return new TableOption(BigQueryRpc.Option.FIELDS, - Helper.selector(TableField.REQUIRED_FIELDS, fields)); + return new TableOption( + BigQueryRpc.Option.FIELDS, Helper.selector(TableField.REQUIRED_FIELDS, fields)); } } - /** - * Class for specifying table data list options. - */ + /** Class for specifying table data list options. */ class TableDataListOption extends Option { private static final long serialVersionUID = 8488823381738864434L; @@ -287,17 +262,13 @@ private TableDataListOption(BigQueryRpc.Option option, Object value) { super(option, value); } - /** - * Returns an option to specify the maximum number of rows returned per page. - */ + /** Returns an option to specify the maximum number of rows returned per page. */ public static TableDataListOption pageSize(long pageSize) { checkArgument(pageSize >= 0); return new TableDataListOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); } - /** - * Returns an option to specify the page token from which to start listing table data. - */ + /** Returns an option to specify the page token from which to start listing table data. */ public static TableDataListOption pageToken(String pageToken) { return new TableDataListOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); } @@ -312,9 +283,7 @@ public static TableDataListOption startIndex(long index) { } } - /** - * Class for specifying job list options. - */ + /** Class for specifying job list options. */ class JobListOption extends Option { private static final long serialVersionUID = -8207122131226481423L; @@ -323,38 +292,32 @@ private JobListOption(BigQueryRpc.Option option, Object value) { super(option, value); } - /** - * Returns an option to list all jobs, even the ones issued by other users. - */ + /** Returns an option to list all jobs, even the ones issued by other users. */ public static JobListOption allUsers() { return new JobListOption(BigQueryRpc.Option.ALL_USERS, true); } - /** - * Returns an option to list only jobs that match the provided state filters. - */ + /** Returns an option to list only jobs that match the provided state filters. */ public static JobListOption stateFilter(JobStatus.State... stateFilters) { - List stringFilters = Lists.transform(ImmutableList.copyOf(stateFilters), - new Function() { - @Override - public String apply(JobStatus.State state) { - return state.name().toLowerCase(); - } - }); + List stringFilters = + Lists.transform( + ImmutableList.copyOf(stateFilters), + new Function() { + @Override + public String apply(JobStatus.State state) { + return state.name().toLowerCase(); + } + }); return new JobListOption(BigQueryRpc.Option.STATE_FILTER, stringFilters); } - /** - * Returns an option to specify the maximum number of jobs returned per page. - */ + /** Returns an option to specify the maximum number of jobs returned per page. */ public static JobListOption pageSize(long pageSize) { checkArgument(pageSize >= 0); return new JobListOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); } - /** - * Returns an option to specify the page token from which to start listing jobs. - */ + /** Returns an option to specify the page token from which to start listing jobs. */ public static JobListOption pageToken(String pageToken) { return new JobListOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); } @@ -363,20 +326,18 @@ public static JobListOption pageToken(String pageToken) { * Returns an option to specify the job's fields to be returned by the RPC call. If this option * is not provided all job's fields are returned. {@code JobOption.fields()} can be used to * specify only the fields of interest. {@link Job#getJobId()}, {@link JobStatus#getState()}, - * {@link JobStatus#getError()} as well as type-specific configuration (e.g. - * {@link QueryJobConfiguration#getQuery()} for Query Jobs) are always returned, even if not - * specified. {@link JobField#SELF_LINK} and {@link JobField#ETAG} can not be selected when - * listing jobs. + * {@link JobStatus#getError()} as well as type-specific configuration (e.g. {@link + * QueryJobConfiguration#getQuery()} for Query Jobs) are always returned, even if not specified. + * {@link JobField#SELF_LINK} and {@link JobField#ETAG} can not be selected when listing jobs. */ public static JobListOption fields(JobField... fields) { - return new JobListOption(BigQueryRpc.Option.FIELDS, + return new JobListOption( + BigQueryRpc.Option.FIELDS, Helper.listSelector("jobs", JobField.REQUIRED_FIELDS, fields, "state", "errorResult")); } } - /** - * Class for specifying table get and create options. - */ + /** Class for specifying table get and create options. */ class JobOption extends Option { private static final long serialVersionUID = -3111736712316353665L; @@ -393,14 +354,12 @@ private JobOption(BigQueryRpc.Option option, Object value) { * returned, even if not specified. */ public static JobOption fields(JobField... fields) { - return new JobOption(BigQueryRpc.Option.FIELDS, - Helper.selector(JobField.REQUIRED_FIELDS, fields)); + return new JobOption( + BigQueryRpc.Option.FIELDS, Helper.selector(JobField.REQUIRED_FIELDS, fields)); } } - /** - * Class for specifying query results options. - */ + /** Class for specifying query results options. */ class QueryResultsOption extends Option { private static final long serialVersionUID = 3788898503226985525L; @@ -409,17 +368,13 @@ private QueryResultsOption(BigQueryRpc.Option option, Object value) { super(option, value); } - /** - * Returns an option to specify the maximum number of rows returned per page. - */ + /** Returns an option to specify the maximum number of rows returned per page. */ public static QueryResultsOption pageSize(long pageSize) { checkArgument(pageSize >= 0); return new QueryResultsOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); } - /** - * Returns an option to specify the page token from which to start getting query results. - */ + /** Returns an option to specify the page token from which to start getting query results. */ public static QueryResultsOption pageToken(String pageToken) { return new QueryResultsOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); } @@ -508,12 +463,12 @@ public int hashCode() { } } - /** * Creates a new dataset. * *

    Example of creating a dataset. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * Dataset dataset = null;
        * DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build();
    @@ -533,7 +488,8 @@ public int hashCode() {
        * Creates a new table.
        *
        * 

    Example of creating a table. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * String fieldName = "string_field";
    @@ -555,7 +511,8 @@ public int hashCode() {
        * Creates a new job.
        *
        * 

    Example of loading a newline-delimited-json file with textual fields from GCS to a table. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json";
    @@ -583,7 +540,8 @@ public int hashCode() {
        * }
    * *

    Example of creating a query job. - *

     {@code
    +   *
    +   * 
    {@code
        * String query = "SELECT field FROM my_dataset_name.my_table_name";
        * Job job = null;
        * JobConfiguration jobConfiguration = QueryJobConfiguration.of(query);
    @@ -603,7 +561,8 @@ public int hashCode() {
        * Returns the requested dataset or {@code null} if not found.
        *
        * 

    Example of getting a dataset. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset";
        * Dataset dataset = bigquery.getDataset(datasetName);
        * }
    @@ -616,7 +575,8 @@ public int hashCode() { * Returns the requested dataset or {@code null} if not found. * *

    Example of getting a dataset. - *

     {@code
    +   *
    +   * 
    {@code
        * String projectId = "my_project_id";
        * String datasetName = "my_dataset_name";
        * DatasetId datasetId = DatasetId.of(projectId, datasetName);
    @@ -628,14 +588,14 @@ public int hashCode() {
       Dataset getDataset(DatasetId datasetId, DatasetOption... options);
     
       /**
    -   * Lists the project's datasets. This method returns partial information on each dataset:
    -   * ({@link Dataset#getDatasetId()}, {@link Dataset#getFriendlyName()} and
    -   * {@link Dataset#getGeneratedId()}). To get complete information use either
    -   * {@link #getDataset(String, DatasetOption...)} or
    -   * {@link #getDataset(DatasetId, DatasetOption...)}.
    +   * Lists the project's datasets. This method returns partial information on each dataset: ({@link
    +   * Dataset#getDatasetId()}, {@link Dataset#getFriendlyName()} and {@link
    +   * Dataset#getGeneratedId()}). To get complete information use either {@link #getDataset(String,
    +   * DatasetOption...)} or {@link #getDataset(DatasetId, DatasetOption...)}.
        *
        * 

    Example of listing datasets, specifying the page size. - *

     {@code
    +   *
    +   * 
    {@code
        * // List datasets in the default project
        * Page datasets = bigquery.listDatasets(DatasetListOption.pageSize(100));
        * for (Dataset dataset : datasets.iterateAll()) {
    @@ -649,13 +609,13 @@ public int hashCode() {
     
       /**
        * Lists the datasets in the provided project. This method returns partial information on each
    -   * dataset: ({@link Dataset#getDatasetId()}, {@link Dataset#getFriendlyName()} and
    -   * {@link Dataset#getGeneratedId()}). To get complete information use either
    -   * {@link #getDataset(String, DatasetOption...)} or
    -   * {@link #getDataset(DatasetId, DatasetOption...)}.
    +   * dataset: ({@link Dataset#getDatasetId()}, {@link Dataset#getFriendlyName()} and {@link
    +   * Dataset#getGeneratedId()}). To get complete information use either {@link #getDataset(String,
    +   * DatasetOption...)} or {@link #getDataset(DatasetId, DatasetOption...)}.
        *
        * 

    Example of listing datasets in a project, specifying the page size. - *

     {@code
    +   *
    +   * 
    {@code
        * String projectId = "my_project_id";
        * // List datasets in a specified project
        * Page datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100));
    @@ -672,7 +632,8 @@ public int hashCode() {
        * Deletes the requested dataset.
        *
        * 

    Example of deleting a dataset from its id, even if non-empty. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * boolean deleted = bigquery.delete(datasetName, DatasetDeleteOption.deleteContents());
        * if (deleted) {
    @@ -691,7 +652,8 @@ public int hashCode() {
        * Deletes the requested dataset.
        *
        * 

    Example of deleting a dataset, even if non-empty. - *

     {@code
    +   *
    +   * 
    {@code
        * String projectId = "my_project_id";
        * String datasetName = "my_dataset_name";
        * DatasetId datasetId = DatasetId.of(projectId, datasetName);
    @@ -712,7 +674,8 @@ public int hashCode() {
        * Deletes the requested table.
        *
        * 

    Example of deleting a table. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * boolean deleted = bigquery.delete(datasetName, tableName);
    @@ -732,7 +695,8 @@ public int hashCode() {
        * Deletes the requested table.
        *
        * 

    Example of deleting a table. - *

     {@code
    +   *
    +   * 
    {@code
        * String projectId = "my_project_id";
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
    @@ -755,17 +719,20 @@ public int hashCode() {
        *
        * 

    Example of updating a dataset by changing its description. * + * *

    {@code
    -   *    // String datasetName = "my_dataset_name";
    -   *    // String tableName = "my_table_name";
    -   *    // String newDescription = "new_description";
    -   *
    -   *    Table beforeTable = bigquery.getTable(datasetName, tableName);
    -   *    TableInfo tableInfo = beforeTable.toBuilder()
    -   *        .setDescription(newDescription)
    -   *        .build();
    -   *    Table afterTable = bigquery.update(tableInfo);
    -   *     }
    + * // String datasetName = "my_dataset_name"; + * // String tableName = "my_table_name"; + * // String newDescription = "new_description"; + * + * Table beforeTable = bigquery.getTable(datasetName, tableName); + * TableInfo tableInfo = beforeTable.toBuilder() + * .setDescription(newDescription) + * .build(); + * Table afterTable = bigquery.update(tableInfo); + * + * }
    + * * * * @throws BigQueryException upon failure @@ -776,7 +743,8 @@ public int hashCode() { * Updates table information. * *

    Example of updating a table by changing its description. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * String newDescription = "new_description";
    @@ -788,7 +756,8 @@ public int hashCode() {
        * }
    * *

    Example of updating a table by changing its expiration. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * Table beforeTable = bigquery.getTable(datasetName, tableName);
    @@ -809,7 +778,8 @@ public int hashCode() {
        * Returns the requested table or {@code null} if not found.
        *
        * 

    Example of getting a table. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * Table table = bigquery.getTable(datasetName, tableName);
    @@ -823,7 +793,8 @@ public int hashCode() {
        * Returns the requested table or {@code null} if not found.
        *
        * 

    Example of getting a table. - *

     {@code
    +   *
    +   * 
    {@code
        * String projectId = "my_project_id";
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
    @@ -836,14 +807,14 @@ public int hashCode() {
       Table getTable(TableId tableId, TableOption... options);
     
       /**
    -   * Lists the tables in the dataset. This method returns partial information on each table:
    -   * ({@link Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} and type,
    -   * which is part of {@link Table#getDefinition()}). To get complete information use either
    -   * {@link #getTable(TableId, TableOption...)} or
    -   * {@link #getTable(String, String, TableOption...)}.
    +   * Lists the tables in the dataset. This method returns partial information on each table: ({@link
    +   * Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} and type,
    +   * which is part of {@link Table#getDefinition()}). To get complete information use either {@link
    +   * #getTable(TableId, TableOption...)} or {@link #getTable(String, String, TableOption...)}.
        *
        * 

    Example of listing the tables in a dataset, specifying the page size. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * Page
    tables = bigquery.listTables(datasetName, TableListOption.pageSize(100)); * for (Table table : tables.iterateAll()) { @@ -856,14 +827,14 @@ public int hashCode() { Page
    listTables(String datasetId, TableListOption... options); /** - * Lists the tables in the dataset. This method returns partial information on each table: - * ({@link Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} - * and type, which is part of {@link Table#getDefinition()}). To get complete information use either - * {@link #getTable(TableId, TableOption...)} or - * {@link #getTable(String, String, TableOption...)}. + * Lists the tables in the dataset. This method returns partial information on each table: ({@link + * Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} and type, + * which is part of {@link Table#getDefinition()}). To get complete information use either {@link + * #getTable(TableId, TableOption...)} or {@link #getTable(String, String, TableOption...)}. * *

    Example of listing the tables in a dataset. - *

     {@code
    +   *
    +   * 
    {@code
        * String projectId = "my_project_id";
        * String datasetName = "my_dataset_name";
        * DatasetId datasetId = DatasetId.of(projectId, datasetName);
    @@ -881,7 +852,8 @@ public int hashCode() {
        * Sends an insert all request.
        *
        * 

    Example of inserting rows into a table without running a load job. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * TableId tableId = TableId.of(datasetName, tableName);
    @@ -916,7 +888,8 @@ public int hashCode() {
        * Lists the table's rows.
        *
        * 

    Example of listing table rows, specifying the page size. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * // This example reads the result 100 rows per RPC call. If there's no need to limit the number,
    @@ -936,7 +909,8 @@ public int hashCode() {
        * Lists the table's rows.
        *
        * 

    Example of listing table rows, specifying the page size. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * TableId tableIdObject = TableId.of(datasetName, tableName);
    @@ -958,7 +932,8 @@ public int hashCode() {
        * {@link FieldValueList} iterated over.
        *
        * 

    Example of listing table rows with schema. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * Schema schema = ...;
    @@ -979,7 +954,8 @@ TableResult listTableData(
        * {@link FieldValueList} iterated over.
        *
        * 

    Example of listing table rows with schema. - *

     {@code
    +   *
    +   * 
    {@code
        * Schema schema =
        *     Schema.of(
        *         Field.of("word", LegacySQLTypeName.STRING),
    @@ -1002,7 +978,8 @@ TableResult listTableData(
        * or "EU", {@link #getJob(JobId, JobOption...)} must be used instead.
        *
        * 

    Example of getting a job. - *

     {@code
    +   *
    +   * 
    {@code
        * String jobName = "my_job_name";
        * Job job = bigquery.getJob(jobName);
        * if (job == null) {
    @@ -1019,7 +996,8 @@ TableResult listTableData(
        * or "EU", the {@code jobId} must specify the job location.
        *
        * 

    Example of getting a job. - *

     {@code
    +   *
    +   * 
    {@code
        * String jobName = "my_job_name";
        * JobId jobIdObject = JobId.of(jobName);
        * Job job = bigquery.getJob(jobIdObject);
    @@ -1036,7 +1014,8 @@ TableResult listTableData(
        * Lists the jobs.
        *
        * 

    Example of listing jobs, specifying the page size. - *

     {@code
    +   *
    +   * 
    {@code
        * Page jobs = bigquery.listJobs(JobListOption.pageSize(100));
        * for (Job job : jobs.iterateAll()) {
        *   // do something with the job
    @@ -1055,7 +1034,8 @@ TableResult listTableData(
        * 

    If the location of the job is not "US" or "EU", {@link #cancel(JobId)} must be used instead. * *

    Example of cancelling a job. - *

     {@code
    +   *
    +   * 
    {@code
        * String jobName = "my_job_name";
        * boolean success = bigquery.cancel(jobName);
        * if (success) {
    @@ -1080,7 +1060,8 @@ TableResult listTableData(
        * location.
        *
        * 

    Example of cancelling a job. - *

     {@code
    +   *
    +   * 
    {@code
        * String jobName = "my_job_name";
        * JobId jobId = JobId.of(jobName);
        * boolean success = bigquery.cancel(jobId);
    @@ -1107,7 +1088,8 @@ TableResult listTableData(
        * queries. Since dry-run queries are not actually executed, there's no way to retrieve results.
        *
        * 

    Example of running a query. - *

     {@code
    +   *
    +   * 
    {@code
        * // BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
        * String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
        * QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build();
    @@ -1163,7 +1145,8 @@ TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption...
        * not in "US" or "EU", {@link #writer(JobId, WriteChannelConfiguration)} must be used instead.
        *
        * 

    Example of creating a channel with which to write to a table. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * String csvData = "StringValue1\nStringValue2\n";
    @@ -1185,7 +1168,8 @@ TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption...
        * }
    * *

    Example of writing a local file to a table. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * Path csvPath = FileSystems.getDefault().getPath(".", "my-data.csv");
    @@ -1217,7 +1201,8 @@ TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption...
        * not in "US" or "EU", the {@code jobId} must contain the location of the job.
        *
        * 

    Example of creating a channel with which to write to a table. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset_name";
        * String tableName = "my_table_name";
        * String csvData = "StringValue1\nStringValue2\n";
    @@ -1240,7 +1225,6 @@ TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption...
        * LoadStatistics stats = job.getStatistics();
        * return stats.getOutputRows();
        * }
    - * */ TableDataWriteChannel writer(JobId jobId, WriteChannelConfiguration writeChannelConfiguration); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java index 7540f6d01e9d..c64d55ea08a5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java @@ -19,7 +19,6 @@ import com.google.api.services.bigquery.model.ErrorProto; import com.google.common.base.Function; import com.google.common.base.MoreObjects; - import java.io.Serializable; import java.util.Objects; @@ -29,9 +28,9 @@ * {@link JobStatus#getError()}. A job can also encounter errors during its execution that do not * cause the whole job to fail (see {@link JobStatus#getExecutionErrors()}). Similarly, queries and * insert all requests can cause BigQuery errors that do not mean the whole operation failed (see - * {@link JobStatus#getExecutionErrors()} and {@link InsertAllResponse#getInsertErrors()}). - * When a {@link BigQueryException} is thrown the BigQuery Error that caused it, if any, can be - * accessed with {@link BigQueryException#getError()}. + * {@link JobStatus#getExecutionErrors()} and {@link InsertAllResponse#getInsertErrors()}). When a + * {@link BigQueryException} is thrown the BigQuery Error that caused it, if any, can be accessed + * with {@link BigQueryException#getError()}. */ public final class BigQueryError implements Serializable { @@ -70,7 +69,6 @@ public BigQueryError(String reason, String location, String message) { this.debugInfo = null; } - /** * Returns short error code that summarizes the error. * @@ -81,10 +79,7 @@ public String getReason() { return reason; } - - /** - * Returns where the error occurred, if present. - */ + /** Returns where the error occurred, if present. */ public String getLocation() { return location; } @@ -93,10 +88,7 @@ String getDebugInfo() { return debugInfo; } - - /** - * Returns a human-readable description of the error. - */ + /** Returns a human-readable description of the error. */ public String getMessage() { return message; } @@ -118,8 +110,7 @@ public String toString() { @Override public boolean equals(Object obj) { return obj == this - || obj instanceof BigQueryError - && Objects.equals(toPb(), ((BigQueryError) obj).toPb()); + || obj instanceof BigQueryError && Objects.equals(toPb(), ((BigQueryError) obj).toPb()); } ErrorProto toPb() { @@ -140,7 +131,7 @@ ErrorProto toPb() { } static BigQueryError fromPb(ErrorProto errorPb) { - return new BigQueryError(errorPb.getReason(), errorPb.getLocation(), errorPb.getMessage(), - errorPb.getDebugInfo()); + return new BigQueryError( + errorPb.getReason(), errorPb.getLocation(), errorPb.getMessage(), errorPb.getDebugInfo()); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java index ad709a3f7807..4b8e2ab47c76 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java @@ -28,17 +28,15 @@ /** * BigQuery service exception. * - * @see Google Cloud - * BigQuery error codes + * @see Google Cloud BigQuery + * error codes */ public final class BigQueryException extends BaseHttpServiceException { // see: https://cloud.google.com/bigquery/troubleshooting-errors - private static final Set RETRYABLE_ERRORS = ImmutableSet.of( - new Error(500, null), - new Error(502, null), - new Error(503, null), - new Error(504, null)); + private static final Set RETRYABLE_ERRORS = + ImmutableSet.of( + new Error(500, null), new Error(502, null), new Error(503, null), new Error(504, null)); private static final long serialVersionUID = -5006625989225438209L; private final BigQueryError error; @@ -66,7 +64,6 @@ public BigQueryException(IOException exception) { this.error = error; } - /** * Returns the {@link BigQueryError} that caused this exception. Returns {@code null} if none * exists. diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java index e02103f04a53..e90de01ceccc 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java @@ -18,8 +18,5 @@ import com.google.cloud.ServiceFactory; -/** - * An interface for BigQuery factories. - */ -public interface BigQueryFactory extends ServiceFactory { -} +/** An interface for BigQuery factories. */ +public interface BigQueryFactory extends ServiceFactory {} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 7800effb8e4d..239354ce1c92 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -58,7 +58,10 @@ private static class DatasetPageFetcher implements NextPageFetcher { private final BigQueryOptions serviceOptions; private final String projectId; - DatasetPageFetcher(String projectId, BigQueryOptions serviceOptions, String cursor, + DatasetPageFetcher( + String projectId, + BigQueryOptions serviceOptions, + String cursor, Map optionMap) { this.projectId = projectId; this.requestOptions = @@ -79,7 +82,10 @@ private static class TablePageFetcher implements NextPageFetcher
    { private final BigQueryOptions serviceOptions; private final DatasetId datasetId; - TablePageFetcher(DatasetId datasetId, BigQueryOptions serviceOptions, String cursor, + TablePageFetcher( + DatasetId datasetId, + BigQueryOptions serviceOptions, + String cursor, Map optionMap) { this.requestOptions = PageImpl.nextRequestOptions(BigQueryRpc.Option.PAGE_TOKEN, cursor, optionMap); @@ -99,8 +105,8 @@ private static class JobPageFetcher implements NextPageFetcher { private final Map requestOptions; private final BigQueryOptions serviceOptions; - JobPageFetcher(BigQueryOptions serviceOptions, String cursor, - Map optionMap) { + JobPageFetcher( + BigQueryOptions serviceOptions, String cursor, Map optionMap) { this.requestOptions = PageImpl.nextRequestOptions(BigQueryRpc.Option.PAGE_TOKEN, cursor, optionMap); this.serviceOptions = serviceOptions; @@ -119,7 +125,10 @@ private static class TableDataPageFetcher implements NextPageFetcher optionMap) { this.requestOptions = PageImpl.nextRequestOptions(BigQueryRpc.Option.PAGE_TOKEN, cursor, optionMap); @@ -146,13 +155,18 @@ public Dataset create(DatasetInfo datasetInfo, DatasetOption... options) { datasetInfo.setProjectId(getOptions().getProjectId()).toPb(); final Map optionsMap = optionMap(options); try { - return Dataset.fromPb(this, - runWithRetries(new Callable() { - @Override - public com.google.api.services.bigquery.model.Dataset call() { - return bigQueryRpc.create(datasetPb, optionsMap); - } - }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock())); + return Dataset.fromPb( + this, + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Dataset call() { + return bigQueryRpc.create(datasetPb, optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -169,13 +183,18 @@ public Table create(TableInfo tableInfo, TableOption... options) { .toPb(); final Map optionsMap = optionMap(options); try { - return Table.fromPb(this, - runWithRetries(new Callable() { - @Override - public com.google.api.services.bigquery.model.Table call() { - return bigQueryRpc.create(tablePb, optionsMap); - } - }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock())); + return Table.fromPb( + this, + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Table call() { + return bigQueryRpc.create(tablePb, optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -263,13 +282,17 @@ public Dataset getDataset(final DatasetId datasetId, DatasetOption... options) { final Map optionsMap = optionMap(options); try { com.google.api.services.bigquery.model.Dataset answer = - runWithRetries(new Callable() { - @Override - public com.google.api.services.bigquery.model.Dataset call() { - return bigQueryRpc.getDataset( - completeDatasetId.getProject(), completeDatasetId.getDataset(), optionsMap); - } - }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Dataset call() { + return bigQueryRpc.getDataset( + completeDatasetId.getProject(), completeDatasetId.getDataset(), optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); return answer == null ? null : Dataset.fromPb(this, answer); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -331,13 +354,17 @@ public boolean delete(DatasetId datasetId, DatasetDeleteOption... options) { final DatasetId completeDatasetId = datasetId.setProjectId(getOptions().getProjectId()); final Map optionsMap = optionMap(options); try { - return runWithRetries(new Callable() { - @Override - public Boolean call() { - return bigQueryRpc.deleteDataset( - completeDatasetId.getProject(), completeDatasetId.getDataset(), optionsMap); - } - }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + return runWithRetries( + new Callable() { + @Override + public Boolean call() { + return bigQueryRpc.deleteDataset( + completeDatasetId.getProject(), completeDatasetId.getDataset(), optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -350,19 +377,25 @@ public boolean delete(String datasetId, String tableId) { @Override public boolean delete(TableId tableId) { - final TableId completeTableId = tableId.setProjectId( - Strings.isNullOrEmpty(tableId.getProject()) - ? getOptions().getProjectId() - : tableId.getProject() - ); + final TableId completeTableId = + tableId.setProjectId( + Strings.isNullOrEmpty(tableId.getProject()) + ? getOptions().getProjectId() + : tableId.getProject()); try { - return runWithRetries(new Callable() { - @Override - public Boolean call() { - return bigQueryRpc.deleteTable(completeTableId.getProject(), completeTableId.getDataset(), - completeTableId.getTable()); - } - }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + return runWithRetries( + new Callable() { + @Override + public Boolean call() { + return bigQueryRpc.deleteTable( + completeTableId.getProject(), + completeTableId.getDataset(), + completeTableId.getTable()); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -374,13 +407,18 @@ public Dataset update(DatasetInfo datasetInfo, DatasetOption... options) { datasetInfo.setProjectId(getOptions().getProjectId()).toPb(); final Map optionsMap = optionMap(options); try { - return Dataset.fromPb(this, - runWithRetries(new Callable() { - @Override - public com.google.api.services.bigquery.model.Dataset call() { - return bigQueryRpc.patch(datasetPb, optionsMap); - } - }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock())); + return Dataset.fromPb( + this, + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Dataset call() { + return bigQueryRpc.patch(datasetPb, optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -397,13 +435,18 @@ public Table update(TableInfo tableInfo, TableOption... options) { .toPb(); final Map optionsMap = optionMap(options); try { - return Table.fromPb(this, - runWithRetries(new Callable() { - @Override - public com.google.api.services.bigquery.model.Table call() { - return bigQueryRpc.patch(tablePb, optionsMap); - } - }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock())); + return Table.fromPb( + this, + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Table call() { + return bigQueryRpc.patch(tablePb, optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -417,21 +460,28 @@ public Table getTable(final String datasetId, final String tableId, TableOption. @Override public Table getTable(TableId tableId, TableOption... options) { // More context about why this: https://github.com/googleapis/google-cloud-java/issues/3808 - final TableId completeTableId = tableId.setProjectId( - Strings.isNullOrEmpty(tableId.getProject()) - ? getOptions().getProjectId() - : tableId.getProject() - ); + final TableId completeTableId = + tableId.setProjectId( + Strings.isNullOrEmpty(tableId.getProject()) + ? getOptions().getProjectId() + : tableId.getProject()); final Map optionsMap = optionMap(options); try { com.google.api.services.bigquery.model.Table answer = - runWithRetries(new Callable() { - @Override - public com.google.api.services.bigquery.model.Table call() { - return bigQueryRpc.getTable(completeTableId.getProject(), - completeTableId.getDataset(), completeTableId.getTable(), optionsMap); - } - }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Table call() { + return bigQueryRpc.getTable( + completeTableId.getProject(), + completeTableId.getDataset(), + completeTableId.getTable(), + optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); return answer == null ? null : Table.fromPb(this, answer); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -450,29 +500,38 @@ public Page
    listTables(DatasetId datasetId, TableListOption... options) { return listTables(completeDatasetId, getOptions(), optionMap(options)); } - private static Page
    listTables(final DatasetId datasetId, - final BigQueryOptions serviceOptions, final Map optionsMap) { + private static Page
    listTables( + final DatasetId datasetId, + final BigQueryOptions serviceOptions, + final Map optionsMap) { try { Tuple> result = - runWithRetries(new Callable>>() { - @Override - public Tuple> - call() { - return serviceOptions.getBigQueryRpcV2().listTables( - datasetId.getProject(), datasetId.getDataset(), optionsMap); + runWithRetries( + new Callable< + Tuple>>() { + @Override + public Tuple> + call() { + return serviceOptions + .getBigQueryRpcV2() + .listTables(datasetId.getProject(), datasetId.getDataset(), optionsMap); } - }, serviceOptions.getRetrySettings(), EXCEPTION_HANDLER, serviceOptions.getClock()); + }, + serviceOptions.getRetrySettings(), + EXCEPTION_HANDLER, + serviceOptions.getClock()); String cursor = result.x(); - Iterable
    tables = Iterables.transform(result.y(), - new Function() { - @Override - public Table apply(com.google.api.services.bigquery.model.Table table) { - return Table.fromPb(serviceOptions.getService(), table); - } - }); - return new PageImpl<>(new TablePageFetcher(datasetId, serviceOptions, cursor, optionsMap), - cursor, tables); + Iterable
    tables = + Iterables.transform( + result.y(), + new Function() { + @Override + public Table apply(com.google.api.services.bigquery.model.Table table) { + return Table.fromPb(serviceOptions.getService(), table); + } + }); + return new PageImpl<>( + new TablePageFetcher(datasetId, serviceOptions, cursor, optionsMap), cursor, tables); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -488,33 +547,43 @@ public InsertAllResponse insertAll(InsertAllRequest request) { // Using an array of size 1 here to have a mutable boolean variable, which can be modified in // an anonymous inner class. final boolean[] allInsertIdsSet = {true}; - List rowsPb = Lists.transform(request.getRows(), new Function() { - @Override - public Rows apply(RowToInsert rowToInsert) { - allInsertIdsSet[0] &= rowToInsert.getId() != null; - return new Rows().setInsertId(rowToInsert.getId()).setJson(rowToInsert.getContent()); - } - }); + List rowsPb = + Lists.transform( + request.getRows(), + new Function() { + @Override + public Rows apply(RowToInsert rowToInsert) { + allInsertIdsSet[0] &= rowToInsert.getId() != null; + return new Rows() + .setInsertId(rowToInsert.getId()) + .setJson(rowToInsert.getContent()); + } + }); requestPb.setRows(rowsPb); TableDataInsertAllResponse responsePb; if (allInsertIdsSet[0]) { // allowing retries only if all row insertIds are set (used for deduplication) try { - responsePb = runWithRetries( - new Callable() { - @Override - public TableDataInsertAllResponse call() throws Exception { - return bigQueryRpc.insertAll(tableId.getProject(), tableId.getDataset(), - tableId.getTable(), requestPb); - } - }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + responsePb = + runWithRetries( + new Callable() { + @Override + public TableDataInsertAllResponse call() throws Exception { + return bigQueryRpc.insertAll( + tableId.getProject(), tableId.getDataset(), tableId.getTable(), requestPb); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); } catch (RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } else { - responsePb = bigQueryRpc.insertAll(tableId.getProject(), tableId.getDataset(), - tableId.getTable(), requestPb); + responsePb = + bigQueryRpc.insertAll( + tableId.getProject(), tableId.getDataset(), tableId.getTable(), requestPb); } return InsertAllResponse.fromPb(responsePb); @@ -627,25 +696,31 @@ public Page listJobs(JobListOption... options) { return listJobs(getOptions(), optionMap(options)); } - private static Page listJobs(final BigQueryOptions serviceOptions, - final Map optionsMap) { + private static Page listJobs( + final BigQueryOptions serviceOptions, final Map optionsMap) { Tuple> result = - runWithRetries(new Callable>>() { - @Override - public Tuple> - call() { - return serviceOptions.getBigQueryRpcV2().listJobs(serviceOptions.getProjectId(), optionsMap); - } - }, serviceOptions.getRetrySettings(), EXCEPTION_HANDLER, serviceOptions.getClock()); + runWithRetries( + new Callable>>() { + @Override + public Tuple> call() { + return serviceOptions + .getBigQueryRpcV2() + .listJobs(serviceOptions.getProjectId(), optionsMap); + } + }, + serviceOptions.getRetrySettings(), + EXCEPTION_HANDLER, + serviceOptions.getClock()); String cursor = result.x(); - Iterable jobs = Iterables.transform(result.y(), - new Function() { - @Override - public Job apply(com.google.api.services.bigquery.model.Job job) { - return Job.fromPb(serviceOptions.getService(), job); - } - }); + Iterable jobs = + Iterables.transform( + result.y(), + new Function() { + @Override + public Job apply(com.google.api.services.bigquery.model.Job job) { + return Job.fromPb(serviceOptions.getService(), job); + } + }); return new PageImpl<>(new JobPageFetcher(serviceOptions, cursor, optionsMap), cursor, jobs); } @@ -694,8 +769,10 @@ public QueryResponse getQueryResults(JobId jobId, QueryResultsOption... options) return getQueryResults(jobId, getOptions(), optionsMap); } - private static QueryResponse getQueryResults(JobId jobId, - final BigQueryOptions serviceOptions, final Map optionsMap) { + private static QueryResponse getQueryResults( + JobId jobId, + final BigQueryOptions serviceOptions, + final Map optionsMap) { final JobId completeJobId = jobId.setProjectId(serviceOptions.getProjectId()); try { GetQueryResultsResponse results = diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index 28dd0a4b6477..080bb57521f3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -16,16 +16,15 @@ package com.google.cloud.bigquery; -import com.google.cloud.http.HttpTransportOptions; import com.google.cloud.ServiceDefaults; import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; -import com.google.cloud.bigquery.spi.v2.BigQueryRpc; import com.google.cloud.bigquery.spi.BigQueryRpcFactory; +import com.google.cloud.bigquery.spi.v2.BigQueryRpc; import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; +import com.google.cloud.http.HttpTransportOptions; import com.google.common.collect.ImmutableSet; - import java.util.Set; public class BigQueryOptions extends ServiceOptions { @@ -55,11 +54,9 @@ public ServiceRpc create(BigQueryOptions options) { } } - public static class Builder extends - ServiceOptions.Builder { + public static class Builder extends ServiceOptions.Builder { - private Builder() { - } + private Builder() {} private Builder(BigQueryOptions options) { super(options); @@ -84,8 +81,7 @@ private BigQueryOptions(Builder builder) { super(BigQueryFactory.class, BigQueryRpcFactory.class, builder, new BigQueryDefaults()); } - private static class BigQueryDefaults implements - ServiceDefaults { + private static class BigQueryDefaults implements ServiceDefaults { @Override public BigQueryFactory getDefaultServiceFactory() { @@ -136,12 +132,10 @@ public boolean equals(Object obj) { return baseEquals(other); } - public static BigQueryOptions getDefaultInstance() { return newBuilder().build(); } - public static Builder newBuilder() { return new Builder(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java index 8f18b548cda3..5f910c433874 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java @@ -15,8 +15,8 @@ */ package com.google.cloud.bigquery; -import com.google.common.base.Function; import com.google.auto.value.AutoValue; +import com.google.common.base.Function; import java.io.Serializable; import javax.annotation.Nullable; @@ -46,8 +46,8 @@ public abstract static class Builder { /** * Qualifier of the column. * - * Columns in the parent column family that has this exact qualifier are exposed as . field. If - * the qualifier is valid UTF-8 string, it can be specified in the qualifier_string field. + *

    Columns in the parent column family that has this exact qualifier are exposed as . field. + * If the qualifier is valid UTF-8 string, it can be specified in the qualifier_string field. * Otherwise, a base-64 encoded value must be set to qualifier_encoded. The column field name is * the same as the column qualifier. However, if the qualifier is not a valid BigQuery field * identifier, a valid identifier must be provided as field_name. @@ -63,7 +63,7 @@ public abstract static class Builder { /** * If this is set, only the latest version of value in this column are exposed. * - * 'onlyReadLatest' can also be set at the column family level. However, the setting at the + *

    'onlyReadLatest' can also be set at the column family level. However, the setting at the * column level takes precedence if 'onlyReadLatest' is set at both levels. */ public abstract Builder setOnlyReadLatest(Boolean onlyReadLatest); @@ -73,20 +73,20 @@ public abstract static class Builder { * - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using * HBase Bytes.toBytes family of functions. * - * Encoding can also be set at the column family level. However, the setting at the column level - * takes precedence if 'encoding' is set at both levels. + *

    Encoding can also be set at the column family level. However, the setting at the column + * level takes precedence if 'encoding' is set at both levels. */ public abstract Builder setEncoding(String encoding); /** * The type to convert the value in cells of this column. * - * The values are expected to be encoded using HBase Bytes.toBytes function when using the + *

    The values are expected to be encoded using HBase Bytes.toBytes function when using the * BINARY encoding value. Following BigQuery types are allowed (case-sensitive): BYTES STRING * INTEGER FLOAT BOOLEAN Default type is BYTES. * - * 'type' can also be set at the column family level. However, the setting at the column level - * takes precedence if 'type' is set at both levels. + *

    'type' can also be set at the column family level. However, the setting at the column + * level takes precedence if 'type' is set at both levels. */ public abstract Builder setType(String type); @@ -108,30 +108,32 @@ static BigtableColumn fromPb(com.google.api.services.bigquery.model.BigtableColu } com.google.api.services.bigquery.model.BigtableColumn toPb() { - com.google.api.services.bigquery.model.BigtableColumn column = new com.google.api.services.bigquery.model.BigtableColumn() - .setQualifierEncoded(getQualifierEncoded()) - .setFieldName(getFieldName()) - .setOnlyReadLatest(getOnlyReadLatest()) - .setEncoding(getEncoding()) - .setType(getType()); + com.google.api.services.bigquery.model.BigtableColumn column = + new com.google.api.services.bigquery.model.BigtableColumn() + .setQualifierEncoded(getQualifierEncoded()) + .setFieldName(getFieldName()) + .setOnlyReadLatest(getOnlyReadLatest()) + .setEncoding(getEncoding()) + .setType(getType()); return column; } - static final Function FROM_PB_FUNCTION = - new Function() { - @Override - public BigtableColumn apply( - com.google.api.services.bigquery.model.BigtableColumn pb) { - return BigtableColumn.fromPb(pb); - } - }; - - static final Function TO_PB_FUNCTION = - new Function() { - @Override - public com.google.api.services.bigquery.model.BigtableColumn apply( - BigtableColumn column) { - return column.toPb(); - } - }; + static final Function + FROM_PB_FUNCTION = + new Function() { + @Override + public BigtableColumn apply(com.google.api.services.bigquery.model.BigtableColumn pb) { + return BigtableColumn.fromPb(pb); + } + }; + + static final Function + TO_PB_FUNCTION = + new Function() { + @Override + public com.google.api.services.bigquery.model.BigtableColumn apply( + BigtableColumn column) { + return column.toPb(); + } + }; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java index 2d9993919d33..c0e3241355f6 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java @@ -15,9 +15,9 @@ */ package com.google.cloud.bigquery; +import com.google.auto.value.AutoValue; import com.google.common.base.Function; import com.google.common.collect.Lists; -import com.google.auto.value.AutoValue; import java.io.Serializable; import java.util.List; @@ -25,12 +25,11 @@ * List of column families to expose in the table schema along with their types. This list restricts * the column families that can be referenced in queries and specifies their value types. * - * You can use this list to do type conversions - see the 'type' field for more details. If you + *

    You can use this list to do type conversions - see the 'type' field for more details. If you * leave this list empty, all column families are present in the table schema and their values are * read as BYTES. During a query only the column families referenced in that query are read from * Bigtable. */ - @AutoValue public abstract class BigtableColumnFamily implements Serializable { @@ -49,9 +48,7 @@ public abstract class BigtableColumnFamily implements Serializable { @AutoValue.Builder public abstract static class Builder { - /** - * Identifier of the column family. - */ + /** Identifier of the column family. */ public abstract Builder setFamilyID(String familyID); /** @@ -64,10 +61,10 @@ public abstract static class Builder { /** * The encoding of the values when the type is not STRING. * - * Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - * - indicates values are encoded using HBase Bytes.toBytes family of functions. + *

    Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. + * BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. * - * This can be overridden for a specific column by listing that column in 'columns' and + *

    This can be overridden for a specific column by listing that column in 'columns' and * specifying an encoding for it. */ public abstract Builder setEncoding(String encoding); @@ -83,9 +80,9 @@ public abstract static class Builder { * The type to convert the value in cells of this column family. The values are expected to be * encoded using HBase Bytes.toBytes function when using the BINARY encoding value. * - * Following BigQuery types are allowed (case-sensitive): BYTES STRING INTEGER FLOAT BOOLEAN. + *

    Following BigQuery types are allowed (case-sensitive): BYTES STRING INTEGER FLOAT BOOLEAN. * - * The default type is BYTES. This can be overridden for a specific column by listing that + *

    The default type is BYTES. This can be overridden for a specific column by listing that * column in 'columns' and specifying a type for it. */ public abstract Builder setType(String type); @@ -106,39 +103,42 @@ static BigtableColumnFamily fromPb( builder.setOnlyReadLatest(columnFamily.getOnlyReadLatest()); builder.setType(columnFamily.getType()); return builder.build(); - } com.google.api.services.bigquery.model.BigtableColumnFamily toPb() { - com.google.api.services.bigquery.model.BigtableColumnFamily colFamilyPb = new com.google.api.services.bigquery.model.BigtableColumnFamily() - .setFamilyId(getFamilyID()) - .setEncoding(getEncoding()) - .setOnlyReadLatest(getOnlyReadLatest()) - .setType(getType()); + com.google.api.services.bigquery.model.BigtableColumnFamily colFamilyPb = + new com.google.api.services.bigquery.model.BigtableColumnFamily() + .setFamilyId(getFamilyID()) + .setEncoding(getEncoding()) + .setOnlyReadLatest(getOnlyReadLatest()) + .setType(getType()); if (getColumns() != null) { colFamilyPb.setColumns(Lists.transform(getColumns(), BigtableColumn.TO_PB_FUNCTION)); } return colFamilyPb; } - static final Function FROM_PB_FUNCTION = - new Function() { - @Override - public BigtableColumnFamily apply( - com.google.api.services.bigquery.model.BigtableColumnFamily pb) { - return BigtableColumnFamily.fromPb(pb); - } - }; - - static final Function TO_PB_FUNCTION = - new Function() { - @Override - public com.google.api.services.bigquery.model.BigtableColumnFamily apply( - BigtableColumnFamily columnFamily) { - return columnFamily.toPb(); - } - }; + static final Function< + com.google.api.services.bigquery.model.BigtableColumnFamily, BigtableColumnFamily> + FROM_PB_FUNCTION = + new Function< + com.google.api.services.bigquery.model.BigtableColumnFamily, BigtableColumnFamily>() { + @Override + public BigtableColumnFamily apply( + com.google.api.services.bigquery.model.BigtableColumnFamily pb) { + return BigtableColumnFamily.fromPb(pb); + } + }; + + static final Function< + BigtableColumnFamily, com.google.api.services.bigquery.model.BigtableColumnFamily> + TO_PB_FUNCTION = + new Function< + BigtableColumnFamily, com.google.api.services.bigquery.model.BigtableColumnFamily>() { + @Override + public com.google.api.services.bigquery.model.BigtableColumnFamily apply( + BigtableColumnFamily columnFamily) { + return columnFamily.toPb(); + } + }; } - - - diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java index 2d0e4692749a..aafca84bc034 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java @@ -46,8 +46,7 @@ static final class Builder { private Boolean readRowkeyAsString; private List columnFamilies; - private Builder() { - } + private Builder() {} private Builder(BigtableOptions bigtableOptions) { this.ignoreUnspecifiedColumnFamilies = bigtableOptions.ignoreUnspecifiedColumnFamilies; @@ -78,11 +77,11 @@ Builder setReadRowkeyAsString(Boolean readRowkeyAsString) { /** * List of column families to expose in the table schema along with their types. * - * This list restricts the column families that can be referenced in queries and specifies their - * value types. You can use this list to do type conversions - see the 'type' field for more - * details. If you leave this list empty, all column families are present in the table schema - * and their values are read as BYTES. During a query only the column families referenced in - * that query are read from Bigtable. + *

    This list restricts the column families that can be referenced in queries and specifies + * their value types. You can use this list to do type conversions - see the 'type' field for + * more details. If you leave this list empty, all column families are present in the table + * schema and their values are read as BYTES. During a query only the column families referenced + * in that query are read from Bigtable. */ Builder setColumnFamilies(List columnFamilies) { this.columnFamilies = columnFamilies; @@ -92,7 +91,6 @@ Builder setColumnFamilies(List columnFamilies) { BigtableOptions build() { return new BigtableOptions(this); } - } BigtableOptions(Builder builder) { @@ -144,12 +142,13 @@ static BigtableOptions fromPb(com.google.api.services.bigquery.model.BigtableOpt } com.google.api.services.bigquery.model.BigtableOptions toPb() { - com.google.api.services.bigquery.model.BigtableOptions options = new com.google.api.services.bigquery.model.BigtableOptions() - .setIgnoreUnspecifiedColumnFamilies(ignoreUnspecifiedColumnFamilies) - .setReadRowkeyAsString(readRowkeyAsString); + com.google.api.services.bigquery.model.BigtableOptions options = + new com.google.api.services.bigquery.model.BigtableOptions() + .setIgnoreUnspecifiedColumnFamilies(ignoreUnspecifiedColumnFamilies) + .setReadRowkeyAsString(readRowkeyAsString); if (columnFamilies != null) { - options - .setColumnFamilies(Lists.transform(columnFamilies, BigtableColumnFamily.TO_PB_FUNCTION)); + options.setColumnFamilies( + Lists.transform(columnFamilies, BigtableColumnFamily.TO_PB_FUNCTION)); } return options; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java index 0d7a3faa6642..683452fae2d8 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java @@ -15,7 +15,6 @@ */ package com.google.cloud.bigquery; - import com.google.auto.value.AutoValue; import com.google.common.collect.ImmutableList; import java.io.Serializable; @@ -27,12 +26,12 @@ public abstract class Clustering implements Serializable { private static final long serialVersionUID = 1L; - @Nullable abstract ImmutableList getFieldsImmut(); - public List getFields() {return getFieldsImmut();} - + public List getFields() { + return getFieldsImmut(); + } public abstract Builder toBuilder(); @@ -62,5 +61,4 @@ com.google.api.services.bigquery.model.Clustering toPb() { static Clustering fromPb(com.google.api.services.bigquery.model.Clustering clusterPb) { return newBuilder().setFields(clusterPb.getFields()).build(); } - } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java index 7558094a2b5c..3199a29918e5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java @@ -23,7 +23,6 @@ import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; - import java.util.List; import java.util.Objects; @@ -78,45 +77,40 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur JobInfo.CreateDisposition.valueOf(copyConfigurationPb.getCreateDisposition()); } if (copyConfigurationPb.getWriteDisposition() != null) { - this.writeDisposition = JobInfo.WriteDisposition.valueOf( - copyConfigurationPb.getWriteDisposition()); + this.writeDisposition = + JobInfo.WriteDisposition.valueOf(copyConfigurationPb.getWriteDisposition()); } if (copyConfigurationPb.getDestinationEncryptionConfiguration() != null) { - this.destinationEncryptionConfiguration = new EncryptionConfiguration.Builder( - copyConfigurationPb.getDestinationEncryptionConfiguration()).build(); + this.destinationEncryptionConfiguration = + new EncryptionConfiguration.Builder( + copyConfigurationPb.getDestinationEncryptionConfiguration()) + .build(); } } - - /** - * Sets the source tables to copy. - */ + /** Sets the source tables to copy. */ public Builder setSourceTables(List sourceTables) { this.sourceTables = sourceTables != null ? ImmutableList.copyOf(sourceTables) : null; return this; } - - /** - * Sets the destination table of the copy job. - */ + /** Sets the destination table of the copy job. */ public Builder setDestinationTable(TableId destinationTable) { this.destinationTable = destinationTable; return this; } - public Builder setDestinationEncryptionConfiguration( EncryptionConfiguration encryptionConfiguration) { this.destinationEncryptionConfiguration = encryptionConfiguration; return this; } - /** * Sets whether the job is allowed to create new tables. * - * @see + * @see * Create Disposition */ public Builder setCreateDisposition(JobInfo.CreateDisposition createDisposition) { @@ -124,11 +118,11 @@ public Builder setCreateDisposition(JobInfo.CreateDisposition createDisposition) return this; } - /** * Sets the action that should occur if the destination table already exists. * - * @see + * @see * Write Disposition */ public Builder setWriteDisposition(JobInfo.WriteDisposition writeDisposition) { @@ -150,43 +144,36 @@ private CopyJobConfiguration(Builder builder) { this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; } - - /** - * Returns the source tables to copy. - */ + /** Returns the source tables to copy. */ public List getSourceTables() { return sourceTables; } - - /** - * Returns the destination table to load the data into. - */ + /** Returns the destination table to load the data into. */ public TableId getDestinationTable() { return destinationTable; } - public EncryptionConfiguration getDestinationEncryptionConfiguration() { return destinationEncryptionConfiguration; } - /** * Returns whether the job is allowed to create new tables. * - * @see + * @see * Create Disposition */ public JobInfo.CreateDisposition getCreateDisposition() { return this.createDisposition; } - /** * Returns the action that should occur if the destination table already exists. * - * @see + * @see * Write Disposition */ public JobInfo.WriteDisposition getWriteDisposition() { @@ -211,26 +198,27 @@ ToStringHelper toStringHelper() { @Override public boolean equals(Object obj) { return obj == this - || obj instanceof CopyJobConfiguration - && baseEquals((CopyJobConfiguration) obj); + || obj instanceof CopyJobConfiguration && baseEquals((CopyJobConfiguration) obj); } @Override public int hashCode() { - return Objects.hash(baseHashCode(), sourceTables, destinationTable, createDisposition, - writeDisposition); + return Objects.hash( + baseHashCode(), sourceTables, destinationTable, createDisposition, writeDisposition); } @Override CopyJobConfiguration setProjectId(final String projectId) { Builder builder = toBuilder(); builder.setSourceTables( - Lists.transform(getSourceTables(), new Function() { - @Override - public TableId apply(TableId tableId) { - return tableId.setProjectId(projectId); - } - })); + Lists.transform( + getSourceTables(), + new Function() { + @Override + public TableId apply(TableId tableId) { + return tableId.setProjectId(projectId); + } + })); builder.setDestinationTable(getDestinationTable().setProjectId(projectId)); return builder.build(); } @@ -257,15 +245,11 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { return new com.google.api.services.bigquery.model.JobConfiguration().setCopy(configurationPb); } - - /** - * Creates a builder for a BigQuery Copy Job configuration given destination and source table. - */ + /** Creates a builder for a BigQuery Copy Job configuration given destination and source table. */ public static Builder newBuilder(TableId destinationTable, TableId sourceTable) { return newBuilder(destinationTable, ImmutableList.of(checkNotNull(sourceTable))); } - /** * Creates a builder for a BigQuery Copy Job configuration given destination and source tables. */ @@ -273,16 +257,12 @@ public static Builder newBuilder(TableId destinationTable, List sourceT return new Builder().setDestinationTable(destinationTable).setSourceTables(sourceTables); } - /** - * Returns a BigQuery Copy Job configuration for the given destination and source table. - */ + /** Returns a BigQuery Copy Job configuration for the given destination and source table. */ public static CopyJobConfiguration of(TableId destinationTable, TableId sourceTable) { return newBuilder(destinationTable, sourceTable).build(); } - /** - * Returns a BigQuery Copy Job configuration for the given destination and source tables. - */ + /** Returns a BigQuery Copy Job configuration for the given destination and source tables. */ public static CopyJobConfiguration of(TableId destinationTable, List sourceTables) { return newBuilder(destinationTable, sourceTables).build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java index d800ff1c7a0f..6ef9e77fc11e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java @@ -17,7 +17,6 @@ package com.google.cloud.bigquery; import com.google.common.base.MoreObjects; - import java.nio.charset.Charset; import java.util.Objects; @@ -56,12 +55,11 @@ private Builder(CsvOptions csvOptions) { this.skipLeadingRows = csvOptions.skipLeadingRows; } - /** - * Set whether BigQuery should accept rows that are missing trailing optional columns. If - * {@code true}, BigQuery treats missing trailing columns as null values. If {@code false}, - * records with missing trailing columns are treated as bad records, and if there are too many - * bad records, an invalid error is returned in the job result. By default, rows with missing + * Set whether BigQuery should accept rows that are missing trailing optional columns. If {@code + * true}, BigQuery treats missing trailing columns as null values. If {@code false}, records + * with missing trailing columns are treated as bad records, and if there are too many bad + * records, an invalid error is returned in the job result. By default, rows with missing * trailing columns are considered bad records. */ public Builder setAllowJaggedRows(boolean allowJaggedRows) { @@ -69,7 +67,6 @@ public Builder setAllowJaggedRows(boolean allowJaggedRows) { return this; } - /** * Sets whether BigQuery should allow quoted data sections that contain newline characters in a * CSV file. By default quoted newline are not allowed. @@ -79,7 +76,6 @@ public Builder setAllowQuotedNewLines(boolean allowQuotedNewLines) { return this; } - /** * Sets the character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The * default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split @@ -90,7 +86,6 @@ public Builder setEncoding(String encoding) { return this; } - /** * Sets the character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The * default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split @@ -101,33 +96,30 @@ public Builder setEncoding(Charset encoding) { return this; } - /** * Sets the separator for fields in a CSV file. BigQuery converts the string to ISO-8859-1 * encoding, and then uses the first byte of the encoded string to split the data in its raw, - * binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. - * The default value is a comma (','). + * binary state. BigQuery also supports the escape sequence "\t" to specify a tab separator. The + * default value is a comma (','). */ public Builder setFieldDelimiter(String fieldDelimiter) { this.fieldDelimiter = fieldDelimiter; return this; } - /** * Sets the value that is used to quote data sections in a CSV file. BigQuery converts the * string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split * the data in its raw, binary state. The default value is a double-quote ('"'). If your data * does not contain quoted sections, set the property value to an empty string. If your data - * contains quoted newline characters, you must also set - * {@link #setAllowQuotedNewLines(boolean)} property to {@code true}. + * contains quoted newline characters, you must also set {@link + * #setAllowQuotedNewLines(boolean)} property to {@code true}. */ public Builder setQuote(String quote) { this.quote = quote; return this; } - /** * Sets the number of rows at the top of a CSV file that BigQuery will skip when reading the * data. The default value is 0. This property is useful if you have header rows in the file @@ -138,9 +130,7 @@ public Builder setSkipLeadingRows(long skipLeadingRows) { return this; } - /** - * Creates a {@code CsvOptions} object. - */ + /** Creates a {@code CsvOptions} object. */ public CsvOptions build() { return new CsvOptions(this); } @@ -175,7 +165,6 @@ public Boolean allowQuotedNewLines() { return allowQuotedNewLines; } - /** * Returns the character encoding of the data. The supported values are UTF-8 or ISO-8859-1. If * not set, UTF-8 is used. BigQuery decodes the data after the raw, binary data has been split @@ -185,23 +174,16 @@ public String getEncoding() { return encoding; } - - /** - * Returns the separator for fields in a CSV file. - */ + /** Returns the separator for fields in a CSV file. */ public String getFieldDelimiter() { return fieldDelimiter; } - - /** - * Returns the value that is used to quote data sections in a CSV file. - */ + /** Returns the value that is used to quote data sections in a CSV file. */ public String getQuote() { return quote; } - /** * Returns the number of rows at the top of a CSV file that BigQuery will skip when reading the * data. @@ -210,9 +192,7 @@ public Long getSkipLeadingRows() { return skipLeadingRows; } - /** - * Returns a builder for the {@code CsvOptions} object. - */ + /** Returns a builder for the {@code CsvOptions} object. */ public Builder toBuilder() { return new Builder(this); } @@ -232,15 +212,20 @@ public String toString() { @Override public int hashCode() { - return Objects.hash(getType(), allowJaggedRows, allowQuotedNewLines, encoding, fieldDelimiter, - quote, skipLeadingRows); + return Objects.hash( + getType(), + allowJaggedRows, + allowQuotedNewLines, + encoding, + fieldDelimiter, + quote, + skipLeadingRows); } @Override public boolean equals(Object obj) { return obj == this - || obj instanceof CsvOptions - && Objects.equals(toPb(), ((CsvOptions) obj).toPb()); + || obj instanceof CsvOptions && Objects.equals(toPb(), ((CsvOptions) obj).toPb()); } com.google.api.services.bigquery.model.CsvOptions toPb() { @@ -255,10 +240,7 @@ com.google.api.services.bigquery.model.CsvOptions toPb() { return csvOptions; } - - /** - * Returns a builder for a CsvOptions object. - */ + /** Returns a builder for a CsvOptions object. */ public static Builder newBuilder() { return new Builder(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java index 12208a645faf..489289726873 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java @@ -33,10 +33,8 @@ * A Google BigQuery Dataset. * *

    Objects of this class are immutable. Operations that modify the dataset like {@link #update} - * return a new object. To get a {@code Dataset} object with the most recent information use - * {@link #reload}. {@code Dataset} adds a layer of service-related functionality over - * {@link DatasetInfo}. - *

    + * return a new object. To get a {@code Dataset} object with the most recent information use {@link + * #reload}. {@code Dataset} adds a layer of service-related functionality over {@link DatasetInfo}. */ public class Dataset extends DatasetInfo { @@ -45,9 +43,7 @@ public class Dataset extends DatasetInfo { private final BigQueryOptions options; private transient BigQuery bigquery; - /** - * A builder for {@code Dataset} objects. - */ + /** A builder for {@code Dataset} objects. */ public static final class Builder extends DatasetInfo.Builder { private final BigQuery bigquery; @@ -64,14 +60,12 @@ public static final class Builder extends DatasetInfo.Builder { this.infoBuilder = new DatasetInfo.BuilderImpl(dataset); } - @Override public Builder setDatasetId(DatasetId datasetId) { infoBuilder.setDatasetId(datasetId); return this; } - @Override public Builder setAcl(List acl) { infoBuilder.setAcl(acl); @@ -84,14 +78,12 @@ Builder setCreationTime(Long creationTime) { return this; } - @Override public Builder setDefaultTableLifetime(Long defaultTableLifetime) { infoBuilder.setDefaultTableLifetime(defaultTableLifetime); return this; } - @Override public Builder setDescription(String description) { infoBuilder.setDescription(description); @@ -104,7 +96,6 @@ Builder setEtag(String etag) { return this; } - @Override public Builder setFriendlyName(String friendlyName) { infoBuilder.setFriendlyName(friendlyName); @@ -123,7 +114,6 @@ Builder setLastModified(Long lastModified) { return this; } - @Override public Builder setLocation(String location) { infoBuilder.setLocation(location); @@ -158,7 +148,8 @@ public Dataset build() { * Checks if this dataset exists. * *

    Example of checking whether a dataset exists. - *

     {@code
    +   *
    +   * 
    {@code
        * boolean exists = dataset.exists();
        * if (exists) {
        *   // the dataset exists
    @@ -179,7 +170,8 @@ public boolean exists() {
        * exist.
        *
        * 

    Example of reloading a dataset. - *

     {@code
    +   *
    +   * 
    {@code
        * Dataset latestDataset = dataset.reload();
        * if (latestDataset == null) {
        *   // The dataset was not found
    @@ -199,7 +191,8 @@ public Dataset reload(DatasetOption... options) {
        * cannot be changed. A new {@code Dataset} object is returned.
        *
        * 

    Example of updating a dataset. - *

     {@code
    +   *
    +   * 
    {@code
        * String friendlyName = "my_friendly_name";
        * Builder builder = dataset.toBuilder();
        * builder.setFriendlyName(friendlyName);
    @@ -218,7 +211,8 @@ public Dataset update(DatasetOption... options) {
        * Deletes this dataset.
        *
        * 

    Example of deleting a dataset. - *

     {@code
    +   *
    +   * 
    {@code
        * boolean deleted = dataset.delete();
        * if (deleted) {
        *   // The dataset was deleted
    @@ -238,7 +232,8 @@ public boolean delete(DatasetDeleteOption... options) {
        * Returns the paginated list of tables in this dataset.
        *
        * 

    Example of listing tables in the dataset. - *

     {@code
    +   *
    +   * 
    {@code
        * Page
    tables = dataset.list(); * for (Table table : tables.iterateAll()) { * // do something with the table @@ -256,7 +251,8 @@ public Page
    list(TableListOption... options) { * Returns the requested table in this dataset or {@code null} if not found. * *

    Example of getting a table in the dataset. - *

     {@code
    +   *
    +   * 
    {@code
        * String tableName = “my_table”;
        * Table table = dataset.get(tableName);
        * }
    @@ -273,7 +269,8 @@ public Table get(String tableId, TableOption... options) { * Creates a new table in this dataset. * *

    Example of creating a table in the dataset with schema and time partitioning. - *

     {@code
    +   *
    +   * 
    {@code
        * String tableName = “my_table”;
        * String fieldName = “my_field”;
        * Schema schema = Schema.of(Field.of(fieldName, LegacySQLTypeName.STRING));
    @@ -296,10 +293,7 @@ public Table create(String tableId, TableDefinition definition, TableOption... o
         return bigquery.create(tableInfo, options);
       }
     
    -
    -  /**
    -   * Returns the dataset's {@code BigQuery} object used to issue requests.
    -   */
    +  /** Returns the dataset's {@code BigQuery} object used to issue requests. */
       public BigQuery getBigQuery() {
         return bigquery;
       }
    @@ -318,8 +312,7 @@ public final boolean equals(Object obj) {
           return false;
         }
         Dataset other = (Dataset) obj;
    -    return Objects.equals(toPb(), other.toPb())
    -        && Objects.equals(options, other.options);
    +    return Objects.equals(toPb(), other.toPb()) && Objects.equals(options, other.options);
       }
     
       @Override
    @@ -332,8 +325,8 @@ private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundE
         this.bigquery = options.getService();
       }
     
    -  static Dataset fromPb(BigQuery bigquery,
    -      com.google.api.services.bigquery.model.Dataset datasetPb) {
    +  static Dataset fromPb(
    +      BigQuery bigquery, com.google.api.services.bigquery.model.Dataset datasetPb) {
         return new Dataset(bigquery, new DatasetInfo.BuilderImpl(datasetPb));
       }
     }
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java
    index 0b99a4048652..4018670d8573 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java
    @@ -19,13 +19,10 @@
     import static com.google.common.base.Preconditions.checkNotNull;
     
     import com.google.api.services.bigquery.model.DatasetReference;
    -
     import java.io.Serializable;
     import java.util.Objects;
     
    -/**
    - * Google BigQuery Dataset identity.
    - */
    +/** Google BigQuery Dataset identity. */
     public final class DatasetId implements Serializable {
     
       private static final long serialVersionUID = -6186254820908152300L;
    @@ -33,18 +30,12 @@ public final class DatasetId implements Serializable {
       private final String project;
       private final String dataset;
     
    -
    -  /**
    -   * Returns project's user-defined id.
    -   */
    +  /** Returns project's user-defined id. */
       public String getProject() {
         return project;
       }
     
    -
    -  /**
    -   * Returns dataset's user-defined id.
    -   */
    +  /** Returns dataset's user-defined id. */
       public String getDataset() {
         return dataset;
       }
    @@ -54,16 +45,12 @@ private DatasetId(String project, String dataset) {
         this.dataset = dataset;
       }
     
    -  /**
    -   * Creates a dataset identity given project's and dataset's user-defined ids.
    -   */
    +  /** Creates a dataset identity given project's and dataset's user-defined ids. */
       public static DatasetId of(String project, String dataset) {
         return new DatasetId(checkNotNull(project), checkNotNull(dataset));
       }
     
    -  /**
    -   * Creates a dataset identity given only its user-defined id.
    -   */
    +  /** Creates a dataset identity given only its user-defined id. */
       public static DatasetId of(String dataset) {
         return new DatasetId(null, checkNotNull(dataset));
       }
    @@ -71,8 +58,7 @@ public static DatasetId of(String dataset) {
       @Override
       public boolean equals(Object obj) {
         return obj == this
    -        || obj instanceof DatasetId
    -        && Objects.equals(toPb(), ((DatasetId) obj).toPb());
    +        || obj instanceof DatasetId && Objects.equals(toPb(), ((DatasetId) obj).toPb());
       }
     
       @Override
    @@ -94,8 +80,6 @@ DatasetReference toPb() {
       }
     
       static DatasetId fromPb(DatasetReference datasetRef) {
    -    return new DatasetId(
    -        datasetRef.getProjectId(),
    -        datasetRef.getDatasetId());
    +    return new DatasetId(datasetRef.getProjectId(), datasetRef.getDatasetId());
       }
     }
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java
    index 702b8360b251..f86dfa4e52b9 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java
    @@ -37,7 +37,7 @@
      * table level.
      *
      * @see 
    - * Managing Jobs, Datasets, and Projects
    + *     Managing Jobs, Datasets, and Projects
      */
     public class DatasetInfo implements Serializable {
     
    @@ -70,18 +70,12 @@ public Dataset apply(DatasetInfo datasetInfo) {
       private final String selfLink;
       private final Labels labels;
     
    -  /**
    -   * A builder for {@code DatasetInfo} objects.
    -   */
    +  /** A builder for {@code DatasetInfo} objects. */
       public abstract static class Builder {
     
    -
    -    /**
    -     * Sets the dataset identity.
    -     */
    +    /** Sets the dataset identity. */
         public abstract Builder setDatasetId(DatasetId datasetId);
     
    -
         /**
          * Sets the dataset's access control configuration.
          *
    @@ -91,7 +85,6 @@ public abstract static class Builder {
     
         abstract Builder setCreationTime(Long creationTime);
     
    -
         /**
          * Sets the default lifetime of all tables in the dataset, in milliseconds. The minimum value is
          * 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the
    @@ -105,25 +98,18 @@ public abstract static class Builder {
          */
         public abstract Builder setDefaultTableLifetime(Long defaultTableLifetime);
     
    -
    -    /**
    -     * Sets a user-friendly description for the dataset.
    -     */
    +    /** Sets a user-friendly description for the dataset. */
         public abstract Builder setDescription(String description);
     
         abstract Builder setEtag(String etag);
     
    -
    -    /**
    -     * Sets a user-friendly name for the dataset.
    -     */
    +    /** Sets a user-friendly name for the dataset. */
         public abstract Builder setFriendlyName(String friendlyName);
     
         abstract Builder setGeneratedId(String generatedId);
     
         abstract Builder setLastModified(Long lastModified);
     
    -
         /**
          * Sets the geographic location where the dataset should reside. This property is experimental
          * and might be subject to change or removed.
    @@ -137,9 +123,7 @@ public abstract static class Builder {
     
         public abstract Builder setLabels(Map labels);
     
    -    /**
    -     * Creates a {@code DatasetInfo} object.
    -     */
    +    /** Creates a {@code DatasetInfo} object. */
         public abstract DatasetInfo build();
       }
     
    @@ -180,12 +164,15 @@ static final class BuilderImpl extends Builder {
             this.datasetId = DatasetId.fromPb(datasetPb.getDatasetReference());
           }
           if (datasetPb.getAccess() != null) {
    -        this.acl = Lists.transform(datasetPb.getAccess(), new Function() {
    -          @Override
    -          public Acl apply(Dataset.Access accessPb) {
    -            return Acl.fromPb(accessPb);
    -          }
    -        });
    +        this.acl =
    +            Lists.transform(
    +                datasetPb.getAccess(),
    +                new Function() {
    +                  @Override
    +                  public Acl apply(Dataset.Access accessPb) {
    +                    return Acl.fromPb(accessPb);
    +                  }
    +                });
           }
           this.creationTime = datasetPb.getCreationTime();
           this.defaultTableLifetime = datasetPb.getDefaultTableExpirationMs();
    @@ -199,14 +186,12 @@ public Acl apply(Dataset.Access accessPb) {
           this.labels = Labels.fromPb(datasetPb.getLabels());
         }
     
    -
         @Override
         public Builder setDatasetId(DatasetId datasetId) {
           this.datasetId = checkNotNull(datasetId);
           return this;
         }
     
    -
         @Override
         public Builder setAcl(List acl) {
           this.acl = acl != null ? ImmutableList.copyOf(acl) : null;
    @@ -219,15 +204,12 @@ Builder setCreationTime(Long creationTime) {
           return this;
         }
     
    -
         @Override
         public Builder setDefaultTableLifetime(Long defaultTableLifetime) {
    -      this.defaultTableLifetime =
    -          firstNonNull(defaultTableLifetime, Data.nullOf(Long.class));
    +      this.defaultTableLifetime = firstNonNull(defaultTableLifetime, Data.nullOf(Long.class));
           return this;
         }
     
    -
         @Override
         public Builder setDescription(String description) {
           this.description = firstNonNull(description, Data.nullOf(String.class));
    @@ -240,7 +222,6 @@ Builder setEtag(String etag) {
           return this;
         }
     
    -
         @Override
         public Builder setFriendlyName(String friendlyName) {
           this.friendlyName = firstNonNull(friendlyName, Data.nullOf(String.class));
    @@ -259,7 +240,6 @@ Builder setLastModified(Long lastModified) {
           return this;
         }
     
    -
         @Override
         public Builder setLocation(String location) {
           this.location = firstNonNull(location, Data.nullOf(String.class));
    @@ -306,29 +286,26 @@ public DatasetInfo build() {
         labels = builder.labels;
       }
     
    -
    -  /**
    -   * Returns the dataset identity.
    -   */
    +  /** Returns the dataset identity. */
       public DatasetId getDatasetId() {
         return datasetId;
       }
     
    -
       /**
        * Returns the dataset's access control configuration.
        *
        * 

    Update the ACLs for a dataset. - *

     {@code
    +   *
    +   * 
    {@code
        * Dataset dataset = bigquery.getDataset(DatasetId.of("my_dataset"));
        * List beforeAcls = dataset.getAcl();
    -   * 
    +   *
        * // Make a copy of the ACLs so that they can be modified.
        * ArrayList acls = new ArrayList<>(beforeAcls);
        * acls.add(Acl.of(new Acl.User("sample.bigquery.dev@gmail.com"), Acl.Role.READER));
        * Dataset.Builder builder = dataset.toBuilder();
        * builder.setAcl(acls);
    -   * 
    +   *
        * bigquery.update(builder.build());  // API request.
        * }
    * @@ -338,15 +315,11 @@ public List getAcl() { return acl; } - - /** - * Returns the time when this dataset was created, in milliseconds since the epoch. - */ + /** Returns the time when this dataset was created, in milliseconds since the epoch. */ public Long getCreationTime() { return creationTime; } - /** * Returns the default lifetime of all tables in the dataset, in milliseconds. Once this property * is set, all newly-created tables in the dataset will have an expirationTime property set to the @@ -357,54 +330,41 @@ public Long getCreationTime() { * takes precedence over the default expiration time indicated by this property. * *

    Update the default table expiration time for a dataset. - *

     {@code
    +   *
    +   * 
    {@code
        * Dataset dataset = bigquery.getDataset(DatasetId.of("my_dataset"));
        * Long beforeExpiration = dataset.getDefaultTableLifetime();
    -   * 
    +   *
        * Long oneDayMilliseconds = 24 * 60 * 60 * 1000L;
        * Dataset.Builder builder = dataset.toBuilder();
        * builder.setDefaultTableLifetime(oneDayMilliseconds);
        * bigquery.update(builder.build());  // API request.
        * }
    - * */ public Long getDefaultTableLifetime() { return defaultTableLifetime; } - - /** - * Returns a user-friendly description for the dataset. - */ + /** Returns a user-friendly description for the dataset. */ public String getDescription() { return description; } - - /** - * Returns the hash of the dataset resource. - */ + /** Returns the hash of the dataset resource. */ public String getEtag() { return etag; } - - /** - * Returns a user-friendly name for the dataset. - */ + /** Returns a user-friendly name for the dataset. */ public String getFriendlyName() { return friendlyName; } - - /** - * Returns the service-generated id for the dataset. - */ + /** Returns the service-generated id for the dataset. */ public String getGeneratedId() { return generatedId; } - /** * Returns the time when this dataset or any of its tables was last modified, in milliseconds * since the epoch. @@ -413,18 +373,17 @@ public Long getLastModified() { return lastModified; } - /** * Returns the geographic location where the dataset should reside. * - * @see + * @see * Dataset Location */ public String getLocation() { return location; } - /** * Returns an URL that can be used to access the resource again. The returned URL can be used for * get or update requests. @@ -442,9 +401,7 @@ public Map getLabels() { return labels.userMap(); } - /** - * Returns a builder for the dataset object. - */ + /** Returns a builder for the dataset object. */ public Builder toBuilder() { return new BuilderImpl(this); } @@ -476,8 +433,8 @@ public int hashCode() { public boolean equals(Object obj) { return obj == this || obj != null - && obj.getClass().equals(DatasetInfo.class) - && Objects.equals(toPb(), ((DatasetInfo) obj).toPb()); + && obj.getClass().equals(DatasetInfo.class) + && Objects.equals(toPb(), ((DatasetInfo) obj).toPb()); } DatasetInfo setProjectId(String projectId) { @@ -515,34 +472,30 @@ Dataset toPb() { datasetPb.setLocation(location); datasetPb.setSelfLink(selfLink); if (acl != null) { - datasetPb.setAccess(Lists.transform(acl, new Function() { - @Override - public Dataset.Access apply(Acl acl) { - return acl.toPb(); - } - })); + datasetPb.setAccess( + Lists.transform( + acl, + new Function() { + @Override + public Dataset.Access apply(Acl acl) { + return acl.toPb(); + } + })); } datasetPb.setLabels(labels.toPb()); return datasetPb; } - - /** - * Returns a builder for a {@code DatasetInfo} object given it's identity. - */ + /** Returns a builder for a {@code DatasetInfo} object given it's identity. */ public static Builder newBuilder(DatasetId datasetId) { return new BuilderImpl().setDatasetId(datasetId); } - - /** - * Returns a builder for a {@code DatasetInfo} object given it's user-defined id. - */ + /** Returns a builder for a {@code DatasetInfo} object given it's user-defined id. */ public static Builder newBuilder(String datasetId) { return newBuilder(DatasetId.of(datasetId)); } - /** * Returns a builder for the DatasetInfo object given it's user-defined project and dataset ids. */ @@ -550,16 +503,12 @@ public static Builder newBuilder(String projectId, String datasetId) { return newBuilder(DatasetId.of(projectId, datasetId)); } - /** - * Returns a {@code DatasetInfo} object given it's identity. - */ + /** Returns a {@code DatasetInfo} object given it's identity. */ public static DatasetInfo of(DatasetId datasetId) { return newBuilder(datasetId).build(); } - /** - * Returns a {@code DatasetInfo} object given it's user-defined id. - */ + /** Returns a {@code DatasetInfo} object given it's user-defined id. */ public static DatasetInfo of(String datasetId) { return newBuilder(datasetId).build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java index 0f2e37cd1077..23ff460fe1a9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java @@ -20,9 +20,7 @@ import java.util.List; import java.util.Objects; -/** - * Google BigQuery options for Cloud Datastore backup. - */ +/** Google BigQuery options for Cloud Datastore backup. */ public final class DatastoreBackupOptions extends FormatOptions { private final List projectionFields; @@ -40,18 +38,16 @@ private Builder(DatastoreBackupOptions options) { /** * Sets which entity properties to load into BigQuery from a Cloud Datastore backup. Property - * names are case sensitive and must be top-level properties. - * If no properties are specified, BigQuery loads all properties. If any named property isn't - * found in the Cloud Datastore backup, an invalid error is returned in the job result. + * names are case sensitive and must be top-level properties. If no properties are specified, + * BigQuery loads all properties. If any named property isn't found in the Cloud Datastore + * backup, an invalid error is returned in the job result. */ public Builder setProjectionFields(List projectionFields) { this.projectionFields = projectionFields; return this; } - /** - * Creates a {@code DatastoreBackupOptions} object. - */ + /** Creates a {@code DatastoreBackupOptions} object. */ public DatastoreBackupOptions build() { return new DatastoreBackupOptions(this); } @@ -70,25 +66,19 @@ public List getProjectionFields() { return projectionFields; } - /** - * Returns a builder for the {@code DatastoreBackupOptions} object. - */ + /** Returns a builder for the {@code DatastoreBackupOptions} object. */ public Builder toBuilder() { return new Builder(this); } - /** - * Returns a builder for a {@code DatastoreBackupOptions} object. - */ + /** Returns a builder for a {@code DatastoreBackupOptions} object. */ public static Builder newBuilder() { return new Builder(); } @Override public String toString() { - return MoreObjects.toStringHelper(this) - .add("projectionFields", projectionFields) - .toString(); + return MoreObjects.toStringHelper(this).add("projectionFields", projectionFields).toString(); } @Override @@ -100,6 +90,7 @@ public int hashCode() { public boolean equals(Object obj) { return obj == this || obj instanceof DatastoreBackupOptions - && Objects.equals(projectionFields, ((DatastoreBackupOptions) obj).getProjectionFields()); + && Objects.equals( + projectionFields, ((DatastoreBackupOptions) obj).getProjectionFields()); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java index 1bda79caca04..68112ef0b5ee 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java @@ -23,9 +23,7 @@ public class EmptyTableResult extends TableResult { private static final long serialVersionUID = -4831062717210349819L; - /** - * An empty {@code TableResult} to avoid making API requests to unlistable tables. - */ + /** An empty {@code TableResult} to avoid making API requests to unlistable tables. */ @InternalApi("Exposed for testing") public EmptyTableResult() { super(null, 0, new PageImpl(null, "", null)); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java index 7b6e39113434..36faeb99b62f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java @@ -30,8 +30,8 @@ public String getKmsKeyName() { } public com.google.api.services.bigquery.model.EncryptionConfiguration toPb() { - com.google.api.services.bigquery.model.EncryptionConfiguration encryptionConfigurationPb - = new com.google.api.services.bigquery.model.EncryptionConfiguration(); + com.google.api.services.bigquery.model.EncryptionConfiguration encryptionConfigurationPb = + new com.google.api.services.bigquery.model.EncryptionConfiguration(); encryptionConfigurationPb.setKmsKeyName(kmsKeyName); return encryptionConfigurationPb; } @@ -45,7 +45,8 @@ private Builder(EncryptionConfiguration options) { kmsKeyName = options.kmsKeyName; } - public Builder(com.google.api.services.bigquery.model.EncryptionConfiguration encryptionConfigurationPb) { + public Builder( + com.google.api.services.bigquery.model.EncryptionConfiguration encryptionConfigurationPb) { setKmsKeyName(encryptionConfigurationPb.getKmsKeyName()); } @@ -54,9 +55,7 @@ public EncryptionConfiguration.Builder setKmsKeyName(String kmsKeyName) { return this; } - /** - * Creates a {@code EncryptionConfiguration} object. - */ + /** Creates a {@code EncryptionConfiguration} object. */ public EncryptionConfiguration build() { return new EncryptionConfiguration(this); } @@ -66,25 +65,19 @@ private EncryptionConfiguration(EncryptionConfiguration.Builder builder) { this.kmsKeyName = builder.kmsKeyName; } - /** - * Returns a builder for the {@code EncryptionConfiguration} object. - */ + /** Returns a builder for the {@code EncryptionConfiguration} object. */ public EncryptionConfiguration.Builder toBuilder() { return new EncryptionConfiguration.Builder(this); } - /** - * Returns a builder for a {@code EncryptionConfiguration} object. - */ + /** Returns a builder for a {@code EncryptionConfiguration} object. */ public static EncryptionConfiguration.Builder newBuilder() { return new EncryptionConfiguration.Builder(); } @Override public String toString() { - return MoreObjects.toStringHelper(this) - .add("kmsKeyName", kmsKeyName) - .toString(); + return MoreObjects.toStringHelper(this).add("kmsKeyName", kmsKeyName).toString(); } @Override @@ -96,6 +89,6 @@ public int hashCode() { public boolean equals(Object obj) { return obj == this || obj instanceof EncryptionConfiguration - && Objects.equals(kmsKeyName, ((EncryptionConfiguration) obj).getKmsKeyName()); + && Objects.equals(kmsKeyName, ((EncryptionConfiguration) obj).getKmsKeyName()); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index 626e7ec41503..cbc26a3d8fa1 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -37,20 +37,20 @@ public abstract class ExternalTableDefinition extends TableDefinition { static final Function FROM_EXTERNAL_DATA_FUNCTION = - new Function() { - @Override - public ExternalTableDefinition apply(ExternalDataConfiguration pb) { - return ExternalTableDefinition.fromExternalDataConfiguration(pb); - } - }; + new Function() { + @Override + public ExternalTableDefinition apply(ExternalDataConfiguration pb) { + return ExternalTableDefinition.fromExternalDataConfiguration(pb); + } + }; static final Function TO_EXTERNAL_DATA_FUNCTION = - new Function() { - @Override - public ExternalDataConfiguration apply(ExternalTableDefinition tableInfo) { - return tableInfo.toExternalDataConfigurationPb(); - } - }; + new Function() { + @Override + public ExternalDataConfiguration apply(ExternalTableDefinition tableInfo) { + return tableInfo.toExternalDataConfigurationPb(); + } + }; private static final long serialVersionUID = -5951580238459622025L; @@ -64,15 +64,13 @@ public abstract static class Builder * bucket's name. Size limits related to load jobs apply to external data sources, plus an * additional limit of 10 GB maximum size across all URIs. * - * For Google Cloud Bigtable URIs: - * Exactly one URI can be specified and it has be a fully specified and valid - * HTTPS URL for a Google Cloud Bigtable table. + *

    For Google Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully + * specified and valid HTTPS URL for a Google Cloud Bigtable table. * - * For Google Cloud Datastore backup URIs: - * Exactly one URI can be specified. Also, the '*' wildcard character is not allowed. + *

    For Google Cloud Datastore backup URIs: Exactly one URI can be specified. Also, the '*' + * wildcard character is not allowed. * * @see Quota - * */ public Builder setSourceUris(List sourceUris) { return setSourceUrisImmut(ImmutableList.copyOf(sourceUris)); @@ -84,8 +82,9 @@ public Builder setSourceUris(List sourceUris) { * Sets the source format, and possibly some parsing options, of the external data. Supported * formats are {@code CSV} and {@code NEWLINE_DELIMITED_JSON}. * - * - * Source Format + *

    + * Source Format */ public Builder setFormatOptions(FormatOptions formatOptions) { return setFormatOptionsInner(formatOptions); @@ -244,8 +243,10 @@ com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataC if (getFormatOptions() != null && FormatOptions.CSV.equals(getFormatOptions().getType())) { externalConfigurationPb.setCsvOptions(((CsvOptions) getFormatOptions()).toPb()); } - if (getFormatOptions() != null && FormatOptions.GOOGLE_SHEETS.equals(getFormatOptions().getType())) { - externalConfigurationPb.setGoogleSheetsOptions(((GoogleSheetsOptions) getFormatOptions()).toPb()); + if (getFormatOptions() != null + && FormatOptions.GOOGLE_SHEETS.equals(getFormatOptions().getType())) { + externalConfigurationPb.setGoogleSheetsOptions( + ((GoogleSheetsOptions) getFormatOptions()).toPb()); } if (getFormatOptions() != null && FormatOptions.BIGTABLE.equals(getFormatOptions().getType())) { externalConfigurationPb.setBigtableOptions(((BigtableOptions) getFormatOptions()).toPb()); @@ -270,16 +271,15 @@ static Builder newBuilder() { * @param schema the schema for the external data * @param format the source format of the external data * @return a builder for an ExternalTableDefinition object given source URIs, schema and format - * * @see Quota - * @see + * @see * Source Format */ public static Builder newBuilder(List sourceUris, Schema schema, FormatOptions format) { return newBuilder().setSourceUris(sourceUris).setSchema(schema).setFormatOptions(format); } - /** * Creates a builder for an ExternalTableDefinition object. * @@ -289,9 +289,9 @@ public static Builder newBuilder(List sourceUris, Schema schema, FormatO * @param schema the schema for the external data * @param format the source format of the external data * @return a builder for an ExternalTableDefinition object given source URI, schema and format - * * @see Quota - * @see + * @see * Source Format */ public static Builder newBuilder(String sourceUri, Schema schema, FormatOptions format) { @@ -308,13 +308,13 @@ public static Builder newBuilder(String sourceUri, Schema schema, FormatOptions * @param schema the schema for the external data * @param format the source format of the external data * @return an ExternalTableDefinition object given source URIs, schema and format - * * @see Quota - * @see + * @see * Source Format */ - public static ExternalTableDefinition of(List sourceUris, Schema schema, - FormatOptions format) { + public static ExternalTableDefinition of( + List sourceUris, Schema schema, FormatOptions format) { return newBuilder(sourceUris, schema, format).build(); } @@ -327,9 +327,9 @@ public static ExternalTableDefinition of(List sourceUris, Schema schema, * @param schema the schema for the external data * @param format the source format of the external data * @return an ExternalTableDefinition object given source URIs, schema and format - * * @see Quota - * @see + * @see * Source Format */ public static ExternalTableDefinition of(String sourceUri, Schema schema, FormatOptions format) { @@ -355,10 +355,12 @@ static ExternalTableDefinition fromPb(Table tablePb) { builder.setFormatOptions(CsvOptions.fromPb(externalDataConfiguration.getCsvOptions())); } if (externalDataConfiguration.getGoogleSheetsOptions() != null) { - builder.setFormatOptions(GoogleSheetsOptions.fromPb(externalDataConfiguration.getGoogleSheetsOptions())); + builder.setFormatOptions( + GoogleSheetsOptions.fromPb(externalDataConfiguration.getGoogleSheetsOptions())); } if (externalDataConfiguration.getBigtableOptions() != null) { - builder.setFormatOptions(BigtableOptions.fromPb(externalDataConfiguration.getBigtableOptions())); + builder.setFormatOptions( + BigtableOptions.fromPb(externalDataConfiguration.getBigtableOptions())); } builder.setMaxBadRecords(externalDataConfiguration.getMaxBadRecords()); builder.setAutodetect(externalDataConfiguration.getAutodetect()); @@ -388,10 +390,12 @@ static ExternalTableDefinition fromExternalDataConfiguration( builder.setFormatOptions(CsvOptions.fromPb(externalDataConfiguration.getCsvOptions())); } if (externalDataConfiguration.getGoogleSheetsOptions() != null) { - builder.setFormatOptions(GoogleSheetsOptions.fromPb(externalDataConfiguration.getGoogleSheetsOptions())); + builder.setFormatOptions( + GoogleSheetsOptions.fromPb(externalDataConfiguration.getGoogleSheetsOptions())); } if (externalDataConfiguration.getBigtableOptions() != null) { - builder.setFormatOptions(BigtableOptions.fromPb(externalDataConfiguration.getBigtableOptions())); + builder.setFormatOptions( + BigtableOptions.fromPb(externalDataConfiguration.getBigtableOptions())); } if (externalDataConfiguration.getMaxBadRecords() != null) { builder.setMaxBadRecords(externalDataConfiguration.getMaxBadRecords()); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java index 76d5688ce2d1..d1ed9b994eaf 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java @@ -21,7 +21,6 @@ import com.google.api.services.bigquery.model.JobConfigurationExtract; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.collect.ImmutableList; - import java.util.List; import java.util.Objects; @@ -76,16 +75,12 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this.compression = extractConfigurationPb.getCompression(); } - - /** - * Sets the table to export. - */ + /** Sets the table to export. */ public Builder setSourceTable(TableId sourceTable) { this.sourceTable = sourceTable; return this; } - /** * Sets the list of fully-qualified Google Cloud Storage URIs (e.g. gs://bucket/path) where the * extracted table should be written. @@ -95,43 +90,37 @@ public Builder setDestinationUris(List destinationUris) { return this; } - - /** - * Sets whether to print out a header row in the results. By default an header is printed. - */ + /** Sets whether to print out a header row in the results. By default an header is printed. */ public Builder setPrintHeader(Boolean printHeader) { this.printHeader = printHeader; return this; } - - /** - * Sets the delimiter to use between fields in the exported data. By default "," is used. - */ + /** Sets the delimiter to use between fields in the exported data. By default "," is used. */ public Builder setFieldDelimiter(String fieldDelimiter) { this.fieldDelimiter = fieldDelimiter; return this; } - /** * Sets the exported file format. If not set table is exported in CSV format. * - * - * Destination Format + *

    + * Destination Format */ public Builder setFormat(String format) { this.format = format; return this; } - /** * Sets the compression value to use for exported files. If not set exported files are not * compressed. * - * - * Compression + *

    + * Compression */ public Builder setCompression(String compression) { this.compression = compression; @@ -153,53 +142,39 @@ private ExtractJobConfiguration(Builder builder) { this.compression = builder.compression; } - - /** - * Returns the table to export. - */ + /** Returns the table to export. */ public TableId getSourceTable() { return sourceTable; } - /** * Returns the list of fully-qualified Google Cloud Storage URIs where the extracted table should * be written. * - * @see + * @see * Exporting Data Into One or More Files */ public List getDestinationUris() { return destinationUris; } - /** - * Returns whether an header row is printed with the result. - */ + /** Returns whether an header row is printed with the result. */ public Boolean printHeader() { return printHeader; } - - /** - * Returns the delimiter used between fields in the exported data. - */ + /** Returns the delimiter used between fields in the exported data. */ public String getFieldDelimiter() { return fieldDelimiter; } - - /** - * Returns the exported files format. - */ + /** Returns the exported files format. */ public String getFormat() { return format; } - - /** - * Returns the compression value of exported files. - */ + /** Returns the compression value of exported files. */ public String getCompression() { return compression; } @@ -223,14 +198,19 @@ ToStringHelper toStringHelper() { @Override public boolean equals(Object obj) { return obj == this - || obj instanceof ExtractJobConfiguration - && baseEquals((ExtractJobConfiguration) obj); + || obj instanceof ExtractJobConfiguration && baseEquals((ExtractJobConfiguration) obj); } @Override public int hashCode() { - return Objects.hash(baseHashCode(), sourceTable, destinationUris, printHeader, fieldDelimiter, - format, compression); + return Objects.hash( + baseHashCode(), + sourceTable, + destinationUris, + printHeader, + fieldDelimiter, + format, + compression); } @Override @@ -251,7 +231,6 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { .setExtract(extractConfigurationPb); } - /** * Creates a builder for a BigQuery Extract Job configuration given source table and destination * URI. @@ -260,7 +239,6 @@ public static Builder newBuilder(TableId sourceTable, String destinationUri) { return newBuilder(sourceTable, ImmutableList.of(checkNotNull(destinationUri))); } - /** * Creates a builder for a BigQuery Extract Job configuration given source table and destination * URIs. @@ -287,8 +265,8 @@ public static ExtractJobConfiguration of(TableId sourceTable, List desti * Returns a BigQuery Extract Job configuration for the given source table, format and destination * URI. */ - public static ExtractJobConfiguration of(TableId sourceTable, String destinationUri, - String format) { + public static ExtractJobConfiguration of( + TableId sourceTable, String destinationUri, String format) { return newBuilder(sourceTable, destinationUri).setFormat(format).build(); } @@ -296,8 +274,8 @@ public static ExtractJobConfiguration of(TableId sourceTable, String destination * Returns a BigQuery Extract Job configuration for the given source table, format and destination * URIs. */ - public static ExtractJobConfiguration of(TableId sourceTable, List destinationUris, - String format) { + public static ExtractJobConfiguration of( + TableId sourceTable, List destinationUris, String format) { return newBuilder(sourceTable, destinationUris).setFormat(format).build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index 3fbad523e859..41f357e661b5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -24,7 +24,6 @@ import com.google.common.base.Function; import com.google.common.base.MoreObjects; import com.google.common.collect.Lists; - import java.io.Serializable; import java.util.List; import java.util.Objects; @@ -64,7 +63,9 @@ public TableFieldSchema apply(Field field) { * than one value. */ public enum Mode { - NULLABLE, REQUIRED, REPEATED + NULLABLE, + REQUIRED, + REPEATED } public static final class Builder { @@ -85,7 +86,6 @@ private Builder(Field field) { this.description = field.description; } - /** * Sets the field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or * underscores (_), and must start with a letter or underscore. The maximum length is 128 @@ -96,18 +96,17 @@ public Builder setName(String name) { return this; } - /** * Sets the type of the field. * * @param type BigQuery data type - * @param subFields nested schema fields in case if {@code type} is - * {@link LegacySQLTypeName#RECORD}, empty otherwise - * @throws IllegalArgumentException - * if {@code type == LegacySQLTypeName.RECORD && subFields.length == 0} - * or if {@code type != LegacySQLTypeName.RECORD && subFields.length != 0} - * @see - * Data Types + * @param subFields nested schema fields in case if {@code type} is {@link + * LegacySQLTypeName#RECORD}, empty otherwise + * @throws IllegalArgumentException if {@code type == LegacySQLTypeName.RECORD && + * subFields.length == 0} or if {@code type != LegacySQLTypeName.RECORD && subFields.length + * != 0} + * @see Data + * Types */ public Builder setType(LegacySQLTypeName type, Field... subFields) { return setType(type, subFields.length > 0 ? FieldList.of(subFields) : null); @@ -117,20 +116,19 @@ public Builder setType(LegacySQLTypeName type, Field... subFields) { * Sets the type of the field. * * @param type BigQuery data type - * @param subFields nested schema fields, in case if {@code type} is - * {@link LegacySQLTypeName#RECORD}, {@code null} otherwise. - * @throws IllegalArgumentException - * if {@code type == LegacySQLTypeName.RECORD && (subFields == null || subFields.isEmpty())} - * or if {@code type != LegacySQLTypeName.RECORD && subFields != null} - * @see - * Data Types + * @param subFields nested schema fields, in case if {@code type} is {@link + * LegacySQLTypeName#RECORD}, {@code null} otherwise. + * @throws IllegalArgumentException if {@code type == LegacySQLTypeName.RECORD && (subFields == + * null || subFields.isEmpty())} or if {@code type != LegacySQLTypeName.RECORD && subFields + * != null} + * @see Data + * Types */ - public Builder setType(LegacySQLTypeName type, FieldList subFields) { if (type == LegacySQLTypeName.RECORD) { if (subFields == null || subFields.isEmpty()) { throw new IllegalArgumentException( - "The " + type + " field must have at least one sub-field"); + "The " + type + " field must have at least one sub-field"); } } else { if (subFields != null) { @@ -143,26 +141,19 @@ public Builder setType(LegacySQLTypeName type, FieldList subFields) { return this; } - /** - * Sets the mode of the field. When not specified {@link Mode#NULLABLE} is used. - */ + /** Sets the mode of the field. When not specified {@link Mode#NULLABLE} is used. */ public Builder setMode(Mode mode) { this.mode = mode != null ? mode.name() : Data.nullOf(String.class); return this; } - - /** - * Sets the field description. The maximum length is 16K characters. - */ + /** Sets the field description. The maximum length is 16K characters. */ public Builder setDescription(String description) { this.description = firstNonNull(description, Data.nullOf(String.class)); return this; } - /** - * Creates a {@code Field} object. - */ + /** Creates a {@code Field} object. */ public Field build() { return new Field(this); } @@ -176,41 +167,31 @@ private Field(Builder builder) { this.description = builder.description; } - /** - * Returns the field name. - */ + /** Returns the field name. */ public String getName() { return name; } - /** * Returns the field type. * - * @see - * Data Types + * @see Data + * Types */ public LegacySQLTypeName getType() { return type; } - - /** - * Returns the field mode. By default {@link Mode#NULLABLE} is used. - */ + /** Returns the field mode. By default {@link Mode#NULLABLE} is used. */ public Mode getMode() { return mode != null ? Mode.valueOf(mode) : null; } - - /** - * Returns the field description. - */ + /** Returns the field description. */ public String getDescription() { return Data.isNull(description) ? null : description; } - /** * Returns the list of sub-fields if {@link #getType()} is a {@link LegacySQLTypeName#RECORD}. * Returns {@code null} otherwise. @@ -219,9 +200,7 @@ public FieldList getSubFields() { return subFields; } - /** - * Returns a builder for the {@code Field} object. - */ + /** Returns a builder for the {@code Field} object. */ public Builder toBuilder() { return new Builder(this); } @@ -246,31 +225,22 @@ public boolean equals(Object obj) { return obj instanceof Field && Objects.equals(toPb(), ((Field) obj).toPb()); } - - /** - * Returns a Field object with given name and type. - */ + /** Returns a Field object with given name and type. */ public static Field of(String name, LegacySQLTypeName type, Field... subFields) { return newBuilder(name, type, subFields).build(); } - /** - * Returns a Field object with given name and type. - */ + /** Returns a Field object with given name and type. */ public static Field of(String name, LegacySQLTypeName type, FieldList subFields) { return newBuilder(name, type, subFields).build(); } - /** - * Returns a builder for a Field object with given name and type. - */ + /** Returns a builder for a Field object with given name and type. */ public static Builder newBuilder(String name, LegacySQLTypeName type, Field... subFields) { return new Builder().setName(name).setType(type, subFields); } - /** - * Returns a builder for a Field object with given name and type. - */ + /** Returns a builder for a Field object with given name and type. */ public static Builder newBuilder(String name, LegacySQLTypeName type, FieldList subFields) { return new Builder().setName(name).setType(type, subFields); } @@ -301,9 +271,10 @@ static Field fromPb(TableFieldSchema fieldSchemaPb) { if (fieldSchemaPb.getDescription() != null) { fieldBuilder.setDescription(fieldSchemaPb.getDescription()); } - FieldList subFields = fieldSchemaPb.getFields() != null - ? FieldList.of(Lists.transform(fieldSchemaPb.getFields(), FROM_PB_FUNCTION)) - : null; + FieldList subFields = + fieldSchemaPb.getFields() != null + ? FieldList.of(Lists.transform(fieldSchemaPb.getFields(), FROM_PB_FUNCTION)) + : null; fieldBuilder.setType(LegacySQLTypeName.valueOf(fieldSchemaPb.getType()), subFields); return fieldBuilder.build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java index 19793ab74b69..d3472562afe6 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java @@ -80,9 +80,7 @@ public int getIndex(String name) { return index; } - /** - * Total number of fields (columns) in the schema. - */ + /** Total number of fields (columns) in the schema. */ @Override public int size() { return fields.size(); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java index a4f877015106..34de08bbf825 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java @@ -41,28 +41,21 @@ public class FieldValue implements Serializable { private final Attribute attribute; private final Object value; - /** - * The field value's attribute, giving information on the field's content type. - */ + /** The field value's attribute, giving information on the field's content type. */ public enum Attribute { /** * A primitive field value. A {@code FieldValue} is primitive when the corresponding field has - * type {@link LegacySQLTypeName#BYTES}, {@link LegacySQLTypeName#BOOLEAN}, - * {@link LegacySQLTypeName#STRING}, {@link LegacySQLTypeName#FLOAT}, - * {@link LegacySQLTypeName#INTEGER}, {@link LegacySQLTypeName#NUMERIC}, - * {@link LegacySQLTypeName#TIMESTAMP}, or the value is set to - * {@code null}. + * type {@link LegacySQLTypeName#BYTES}, {@link LegacySQLTypeName#BOOLEAN}, {@link + * LegacySQLTypeName#STRING}, {@link LegacySQLTypeName#FLOAT}, {@link + * LegacySQLTypeName#INTEGER}, {@link LegacySQLTypeName#NUMERIC}, {@link + * LegacySQLTypeName#TIMESTAMP}, or the value is set to {@code null}. */ PRIMITIVE, - /** - * A {@code FieldValue} for a field with {@link Field.Mode#REPEATED} mode. - */ + /** A {@code FieldValue} for a field with {@link Field.Mode#REPEATED} mode. */ REPEATED, - /** - * A {@code FieldValue} for a field of type {@link LegacySQLTypeName#RECORD}. - */ + /** A {@code FieldValue} for a field of type {@link LegacySQLTypeName#RECORD}. */ RECORD } @@ -71,31 +64,26 @@ private FieldValue(Attribute attribute, Object value) { this.value = value; } - /** * Returns the attribute of this Field Value. * - * @return {@link Attribute#PRIMITIVE} if the field is a primitive type - * ({@link LegacySQLTypeName#BYTES}, {@link LegacySQLTypeName#BOOLEAN}, {@link LegacySQLTypeName#STRING}, - * {@link LegacySQLTypeName#FLOAT}, {@link LegacySQLTypeName#INTEGER}, - * {@link LegacySQLTypeName#NUMERIC}, {@link LegacySQLTypeName#TIMESTAMP}) - * or is {@code null}. Returns {@link Attribute#REPEATED} if - * the corresponding field has ({@link Field.Mode#REPEATED}) mode. Returns - * {@link Attribute#RECORD} if the corresponding field is a - * {@link LegacySQLTypeName#RECORD} type. + * @return {@link Attribute#PRIMITIVE} if the field is a primitive type ({@link + * LegacySQLTypeName#BYTES}, {@link LegacySQLTypeName#BOOLEAN}, {@link + * LegacySQLTypeName#STRING}, {@link LegacySQLTypeName#FLOAT}, {@link + * LegacySQLTypeName#INTEGER}, {@link LegacySQLTypeName#NUMERIC}, {@link + * LegacySQLTypeName#TIMESTAMP}) or is {@code null}. Returns {@link Attribute#REPEATED} if the + * corresponding field has ({@link Field.Mode#REPEATED}) mode. Returns {@link + * Attribute#RECORD} if the corresponding field is a {@link LegacySQLTypeName#RECORD} type. */ public Attribute getAttribute() { return attribute; } - /** - * Returns {@code true} if this field's value is {@code null}, {@code false} otherwise. - */ + /** Returns {@code true} if this field's value is {@code null}, {@code false} otherwise. */ public boolean isNull() { return value == null; } - /** * Returns this field's value as an {@link Object}. If {@link #isNull()} is {@code true} this * method returns {@code null}. @@ -104,13 +92,12 @@ public Object getValue() { return value; } - /** * Returns this field's value as a {@link String}. This method should only be used if the - * corresponding field has primitive type ({@link LegacySQLTypeName#BYTES}, - * {@link LegacySQLTypeName#BOOLEAN}, {@link LegacySQLTypeName#STRING}, - * {@link LegacySQLTypeName#FLOAT}, {@link LegacySQLTypeName#INTEGER}, - * {@link LegacySQLTypeName#NUMERIC} {@link LegacySQLTypeName#TIMESTAMP}). + * corresponding field has primitive type ({@link LegacySQLTypeName#BYTES}, {@link + * LegacySQLTypeName#BOOLEAN}, {@link LegacySQLTypeName#STRING}, {@link LegacySQLTypeName#FLOAT}, + * {@link LegacySQLTypeName#INTEGER}, {@link LegacySQLTypeName#NUMERIC} {@link + * LegacySQLTypeName#TIMESTAMP}). * * @throws ClassCastException if the field is not a primitive type * @throws NullPointerException if {@link #isNull()} returns {@code true} @@ -121,7 +108,6 @@ public String getStringValue() { return (String) value; } - /** * Returns this field's value as a byte array. This method should only be used if the * corresponding field has primitive type ({@link LegacySQLTypeName#BYTES}. @@ -138,7 +124,6 @@ public byte[] getBytesValue() { } } - /** * Returns this field's value as a {@code long}. This method should only be used if the * corresponding field has {@link LegacySQLTypeName#INTEGER} type. @@ -152,7 +137,6 @@ public long getLongValue() { return Long.parseLong(getStringValue()); } - /** * Returns this field's value as a {@link Double}. This method should only be used if the * corresponding field has {@link LegacySQLTypeName#FLOAT} type. @@ -166,7 +150,6 @@ public double getDoubleValue() { return Double.parseDouble(getStringValue()); } - /** * Returns this field's value as a {@link Boolean}. This method should only be used if the * corresponding field has {@link LegacySQLTypeName#BOOLEAN} type. @@ -178,16 +161,16 @@ public double getDoubleValue() { @SuppressWarnings("unchecked") public boolean getBooleanValue() { String stringValue = getStringValue(); - checkState(stringValue.equalsIgnoreCase("true") || stringValue.equalsIgnoreCase("false"), + checkState( + stringValue.equalsIgnoreCase("true") || stringValue.equalsIgnoreCase("false"), "Field value is not of boolean type"); return Boolean.parseBoolean(stringValue); } - /** * Returns this field's value as a {@code long}, representing a timestamp in microseconds since - * epoch (UNIX time). This method should only be used if the corresponding field has - * {@link LegacySQLTypeName#TIMESTAMP} type. + * epoch (UNIX time). This method should only be used if the corresponding field has {@link + * LegacySQLTypeName#TIMESTAMP} type. * * @throws ClassCastException if the field is not a primitive type * @throws NumberFormatException if the field's value could not be converted to {@link Long} @@ -200,14 +183,13 @@ public long getTimestampValue() { return new Double(Double.valueOf(getStringValue()) * MICROSECONDS).longValue(); } - /** - * Returns this field's value as a {@link java.math.BigDecimal}. This method should only be used if the - * corresponding field has {@link LegacySQLTypeName#NUMERIC} type. + * Returns this field's value as a {@link java.math.BigDecimal}. This method should only be used + * if the corresponding field has {@link LegacySQLTypeName#NUMERIC} type. * * @throws ClassCastException if the field is not a primitive type - * @throws NumberFormatException if the field's value could not be converted to - * {@link java.math.BigDecimal} + * @throws NumberFormatException if the field's value could not be converted to {@link + * java.math.BigDecimal} * @throws NullPointerException if {@link #isNull()} returns {@code true} */ @SuppressWarnings("unchecked") @@ -215,7 +197,6 @@ public BigDecimal getNumericValue() { return new BigDecimal(getStringValue()); } - /** * Returns this field's value as a list of {@link FieldValue}. This method should only be used if * the corresponding field has {@link Field.Mode#REPEATED} mode (i.e. {@link #getAttribute()} is @@ -230,11 +211,10 @@ public List getRepeatedValue() { return (List) value; } - /** - * Returns this field's value as a {@link FieldValueList} instance. This method should only be used if - * the corresponding field has {@link LegacySQLTypeName#RECORD} type (i.e. - * {@link #getAttribute()} is {@link Attribute#RECORD}). + * Returns this field's value as a {@link FieldValueList} instance. This method should only be + * used if the corresponding field has {@link LegacySQLTypeName#RECORD} type (i.e. {@link + * #getAttribute()} is {@link Attribute#RECORD}). * * @throws ClassCastException if the field is not a {@link LegacySQLTypeName#RECORD} type * @throws NullPointerException if {@link #isNull()} returns {@code true} @@ -280,8 +260,8 @@ public final boolean equals(Object obj) { * respectively. * *

    This method is unstable. See this discussion - * for more context. + * href="https://github.com/googleapis/google-cloud-java/pull/2891">this discussion for more + * context. */ @BetaApi public static FieldValue of(Attribute attribute, Object value) { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java index 0b27b046ad9d..5035bb164a0a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java @@ -25,12 +25,12 @@ import java.util.List; /** - * Google BigQuery Table Field Values class, which represents a row in returned query result - * (table row). Tables rows can be retrieved as a result of a query or when listing table data. + * Google BigQuery Table Field Values class, which represents a row in returned query result (table + * row). Tables rows can be retrieved as a result of a query or when listing table data. * - * Depending on how a corresponding query was executed, each row (an instance of {@code FieldValueList}) - * may or may not contain related schema. If schema is not provided, the individual cells of the row - * will still be accessible by index but not by name. + *

    Depending on how a corresponding query was executed, each row (an instance of {@code + * FieldValueList}) may or may not contain related schema. If schema is not provided, the individual + * cells of the row will still be accessible by index but not by name. */ public class FieldValueList extends AbstractList implements Serializable { @@ -49,6 +49,7 @@ private FieldValueList(List row, FieldList schema) { /** * Gets field value by index. + * * @param index field value index */ @Override @@ -58,9 +59,10 @@ public FieldValue get(int index) { /** * Gets field value by index. + * * @param name field name (defined in schema) - * @throws IllegalArgumentException if schema is not provided or if {@code name} was not found - * in the schema + * @throws IllegalArgumentException if schema is not provided or if {@code name} was not found in + * the schema */ public FieldValue get(String name) { if (schema == null) { @@ -70,16 +72,12 @@ public FieldValue get(String name) { return get(schema.getIndex(name)); } - /** - * Returns {@code true} if schema is provided, {@code false} otherwise. - */ + /** Returns {@code true} if schema is provided, {@code false} otherwise. */ public boolean hasSchema() { return schema != null; } - /** - * Returns the total number of field values in the row. - */ + /** Returns the total number of field values in the row. */ @Override public int size() { return row.size(); @@ -89,8 +87,8 @@ public int size() { * Creates an instance of {@code FieldValueList}, useful for testing. * *

    This method is unstable. See this discussion - * for more context. + * href="https://github.com/googleapis/google-cloud-java/pull/2891">this discussion for more + * context. */ @BetaApi public static FieldValueList of(List row, FieldList schema) { @@ -101,8 +99,8 @@ public static FieldValueList of(List row, FieldList schema) { * Creates an instance of {@code FieldValueList}, useful for testing. * *

    This method is unstable. See this discussion - * for more context. + * href="https://github.com/googleapis/google-cloud-java/pull/2891">this discussion for more + * context. */ @BetaApi public static FieldValueList of(List row, Field... schema) { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java index 71414fd8fc2b..611df08a84e3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java @@ -19,7 +19,6 @@ import static com.google.common.base.Preconditions.checkNotNull; import com.google.common.base.MoreObjects; - import java.io.Serializable; import java.util.Objects; @@ -27,11 +26,11 @@ * Base class for Google BigQuery format options. These class define the format of external data * used by BigQuery, for either federated tables or load jobs. * - * Load jobs support the following formats: AVRO, CSV, DATASTORE_BACKUP, GOOGLE_SHEETS, JSON, ORC, - * PARQUET + *

    Load jobs support the following formats: AVRO, CSV, DATASTORE_BACKUP, GOOGLE_SHEETS, JSON, + * ORC, PARQUET * - * Federated tables can be defined against following formats: AVRO, BIGTABLE, CSV, DATASTORE_BACKUP, - * GOOGLE_SHEETS, JSON + *

    Federated tables can be defined against following formats: AVRO, BIGTABLE, CSV, + * DATASTORE_BACKUP, GOOGLE_SHEETS, JSON */ public class FormatOptions implements Serializable { @@ -52,9 +51,7 @@ public class FormatOptions implements Serializable { this.type = type; } - /** - * Returns the external data format, as a string. - */ + /** Returns the external data format, as a string. */ public String getType() { return type; } @@ -73,69 +70,51 @@ public int hashCode() { public boolean equals(Object obj) { return obj == this || obj != null - && obj.getClass().equals(FormatOptions.class) - && Objects.equals(type, ((FormatOptions) obj).getType()); + && obj.getClass().equals(FormatOptions.class) + && Objects.equals(type, ((FormatOptions) obj).getType()); } - /** - * Default options for CSV format. - */ + /** Default options for CSV format. */ public static CsvOptions csv() { return CsvOptions.newBuilder().build(); } - /** - * Default options for NEWLINE_DELIMITED_JSON format. - */ + /** Default options for NEWLINE_DELIMITED_JSON format. */ public static FormatOptions json() { return new FormatOptions(JSON); } - /** - * Default options for DATASTORE_BACKUP format. - */ + /** Default options for DATASTORE_BACKUP format. */ public static FormatOptions datastoreBackup() { return DatastoreBackupOptions.newBuilder().build(); } - /** - * Default options for AVRO format. - */ + /** Default options for AVRO format. */ public static FormatOptions avro() { return new FormatOptions(AVRO); } - /** - * Default options for BIGTABLE format. - */ + /** Default options for BIGTABLE format. */ public static FormatOptions bigtable() { return BigtableOptions.newBuilder().build(); } - /** - * Default options for GOOGLE_SHEETS format. - */ + /** Default options for GOOGLE_SHEETS format. */ public static FormatOptions googleSheets() { return GoogleSheetsOptions.newBuilder().build(); } - /** - * Default options for PARQUET format. - */ + /** Default options for PARQUET format. */ public static FormatOptions parquet() { return new FormatOptions(PARQUET); } - /** - * Default options for the ORC format. - */ + /** Default options for the ORC format. */ public static FormatOptions orc() { return new FormatOptions(ORC); } - /** - * Default options for the provided format. - */ + /** Default options for the provided format. */ public static FormatOptions of(String format) { if (checkNotNull(format).equals(CSV)) { return csv(); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java index b882f81bfbaf..3fcf265b13c3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java @@ -17,12 +17,9 @@ package com.google.cloud.bigquery; import com.google.common.base.MoreObjects; - import java.util.Objects; -/** - * Google BigQuery options for the Google Sheets format. - */ +/** Google BigQuery options for the Google Sheets format. */ public final class GoogleSheetsOptions extends FormatOptions { private static final long serialVersionUID = 1837436979033106123L; @@ -40,18 +37,16 @@ private Builder(GoogleSheetsOptions options) { } /** - * Sets the number of rows at the top of a sheet that BigQuery will skip when reading the - * data. The default value is 0. This property is useful if you have header rows - * that should be skipped. + * Sets the number of rows at the top of a sheet that BigQuery will skip when reading the data. + * The default value is 0. This property is useful if you have header rows that should be + * skipped. */ public Builder setSkipLeadingRows(long skipLeadingRows) { this.skipLeadingRows = skipLeadingRows; return this; } - /** - * Creates a {@link GoogleSheetsOptions} object. - */ + /** Creates a {@link GoogleSheetsOptions} object. */ public GoogleSheetsOptions build() { return new GoogleSheetsOptions(this); } @@ -62,18 +57,14 @@ private GoogleSheetsOptions(Builder builder) { this.skipLeadingRows = builder.skipLeadingRows; } - /** - * Returns the number of rows at the top of a sheet that BigQuery will skip when reading the - * data. + * Returns the number of rows at the top of a sheet that BigQuery will skip when reading the data. */ public Long getSkipLeadingRows() { return skipLeadingRows; } - /** - * Returns a builder for the {@link GoogleSheetsOptions} object. - */ + /** Returns a builder for the {@link GoogleSheetsOptions} object. */ public Builder toBuilder() { return new Builder(this); } @@ -95,7 +86,7 @@ public int hashCode() { public boolean equals(Object obj) { return obj == this || obj instanceof GoogleSheetsOptions - && Objects.equals(toPb(), ((GoogleSheetsOptions) obj).toPb()); + && Objects.equals(toPb(), ((GoogleSheetsOptions) obj).toPb()); } com.google.api.services.bigquery.model.GoogleSheetsOptions toPb() { @@ -105,15 +96,13 @@ com.google.api.services.bigquery.model.GoogleSheetsOptions toPb() { return options; } - - /** - * Returns a builder for a {@link GoogleSheetsOptions} object. - */ + /** Returns a builder for a {@link GoogleSheetsOptions} object. */ public static Builder newBuilder() { return new Builder(); } - static GoogleSheetsOptions fromPb(com.google.api.services.bigquery.model.GoogleSheetsOptions options) { + static GoogleSheetsOptions fromPb( + com.google.api.services.bigquery.model.GoogleSheetsOptions options) { Builder builder = newBuilder(); if (options.getSkipLeadingRows() != null) { builder.setSkipLeadingRows(options.getSkipLeadingRows()); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java index e1228b2a8375..818c456b2e24 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java @@ -51,11 +51,12 @@ public final class InsertAllRequest implements Serializable { /** * A Google Big Query row to be inserted into a table. Each {@code RowToInsert} has an associated * id used by BigQuery to detect duplicate insertion requests on a best-effort basis. Please - * notice that data for fields of type {@link LegacySQLTypeName#BYTES} must be provided as a base64 - * encoded string. + * notice that data for fields of type {@link LegacySQLTypeName#BYTES} must be provided as a + * base64 encoded string. * *

    Example usage of creating a row to insert: - *

     {@code
    +   *
    +   * 
    {@code
        * List repeatedFieldValue = Arrays.asList(1L, 2L);
        * Map recordContent = new HashMap();
        * recordContent.put("subfieldName1", "value");
    @@ -89,10 +90,7 @@ public static class RowToInsert implements Serializable {
           }
         }
     
    -
    -    /**
    -     * Returns the id associated with the row. Returns {@code null} if not set.
    -     */
    +    /** Returns the id associated with the row. Returns {@code null} if not set. */
         public String getId() {
           return id;
         }
    @@ -108,10 +106,7 @@ public Map getContent() {
     
         @Override
         public String toString() {
    -      return MoreObjects.toStringHelper(this)
    -          .add("id", id)
    -          .add("content", content)
    -          .toString();
    +      return MoreObjects.toStringHelper(this).add("id", id).add("content", content).toString();
         }
     
         @Override
    @@ -125,8 +120,7 @@ public boolean equals(Object obj) {
             return false;
           }
           RowToInsert other = (RowToInsert) obj;
    -      return Objects.equals(id, other.id)
    -          && Objects.equals(content, other.content);
    +      return Objects.equals(id, other.id) && Objects.equals(content, other.content);
         }
     
         /**
    @@ -161,27 +155,19 @@ public static final class Builder {
     
         private Builder() {}
     
    -
    -    /**
    -     * Sets the destination table for rows insert request.
    -     */
    +    /** Sets the destination table for rows insert request. */
         public Builder setTable(TableId table) {
           this.table = checkNotNull(table);
           return this;
         }
     
    -
    -    /**
    -     * Sets the rows to insert as a list of {@link RowToInsert} objects.
    -     */
    +    /** Sets the rows to insert as a list of {@link RowToInsert} objects. */
         public Builder setRows(Iterable rows) {
           this.rows = Lists.newLinkedList(checkNotNull(rows));
           return this;
         }
     
    -    /**
    -     * Adds a row to be inserted.
    -     */
    +    /** Adds a row to be inserted. */
         public Builder addRow(RowToInsert rowToInsert) {
           checkNotNull(rowToInsert);
           if (rows == null) {
    @@ -196,7 +182,8 @@ public Builder addRow(RowToInsert rowToInsert) {
          * {@link LegacySQLTypeName#BYTES} must be provided as a base64 encoded string.
          *
          * 

    Example usage of adding a row with associated id: - *

     {@code
    +     *
    +     * 
    {@code
          * InsertAllRequest.Builder builder = InsertAllRequest.builder(tableId);
          * List repeatedFieldValue = Arrays.asList(1L, 2L);
          * Map recordContent = new HashMap();
    @@ -219,7 +206,8 @@ public Builder addRow(String id, Map content) {
          * type {@link LegacySQLTypeName#BYTES} must be provided as a base64 encoded string.
          *
          * 

    Example usage of adding a row without an associated id: - *

     {@code
    +     *
    +     * 
    {@code
          * InsertAllRequest.Builder builder = InsertAllRequest.builder(tableId);
          * List repeatedFieldValue = Arrays.asList(1L, 2L);
          * Map recordContent = new HashMap();
    @@ -237,7 +225,6 @@ public Builder addRow(Map content) {
           return this;
         }
     
    -
         /**
          * Sets whether to insert all valid rows of a request, even if invalid rows exist. If not set
          * the entire insert request will fail if it contains an invalid row.
    @@ -247,7 +234,6 @@ public Builder setSkipInvalidRows(boolean skipInvalidRows) {
           return this;
         }
     
    -
         /**
          * Sets whether to accept rows that contain values that do not match the schema. The unknown
          * values are ignored. If not set, rows with unknown values are considered to be invalid.
    @@ -257,20 +243,21 @@ public Builder setIgnoreUnknownValues(boolean ignoreUnknownValues) {
           return this;
         }
     
    -
         /**
          * If specified, the destination table is treated as a base template. Rows are inserted into an
          * instance table named "{destination}{templateSuffix}". BigQuery will manage the creation of
          * the instance table, using the schema of the base template table. Table creation might take
          * some time. To obtain table's information after {@link BigQuery#insertAll(InsertAllRequest)}
          * is called use:
    -     * 
     {@code
    +     *
    +     * 
    {@code
          * String suffixTableId = ...;
          * TableInfo suffixTable = bigquery.getTable(DATASET, suffixTableId);
          * while (suffixTable == null) {
          *   Thread.sleep(1000L);
          *   suffixTable = bigquery.getTable(DATASET, suffixTableId);
    -     * }}
    + * } + * }
    * * @see @@ -281,9 +268,7 @@ public Builder setTemplateSuffix(String templateSuffix) { return this; } - /** - * Creates an {@code InsertAllRequest} object. - */ + /** Creates an {@code InsertAllRequest} object. */ public InsertAllRequest build() { return new InsertAllRequest(this); } @@ -297,18 +282,12 @@ private InsertAllRequest(Builder builder) { this.templateSuffix = builder.templateSuffix; } - - /** - * Returns the destination table for rows insert request. - */ + /** Returns the destination table for rows insert request. */ public TableId getTable() { return table; } - - /** - * Returns the rows to be inserted. - */ + /** Returns the rows to be inserted. */ public List getRows() { return rows; } @@ -329,38 +308,34 @@ public Boolean skipInvalidRows() { return skipInvalidRows; } - /** * If specified, the destination table is treated as a base template. Rows are inserted into an * instance table named "{destination}{templateSuffix}". BigQuery will manage the creation of the * instance table, using the schema of the base template table. Table creation might take some * time. To obtain table's information after {@link BigQuery#insertAll(InsertAllRequest)} is * called use: - *
     {@code
    +   *
    +   * 
    {@code
        * String suffixTableId = ...;
        * TableInfo suffixTable = bigquery.getTable(DATASET, suffixTableId);
        * while (suffixTable == null) {
        *   Thread.sleep(1000L);
        *   suffixTable = bigquery.getTable(DATASET, suffixTableId);
    -   * }}
    + * } + * }
    * - * @see
    + * @see * Template Tables */ public String getTemplateSuffix() { return templateSuffix; } - - /** - * Returns a builder for an {@code InsertAllRequest} object given the destination table. - */ + /** Returns a builder for an {@code InsertAllRequest} object given the destination table. */ public static Builder newBuilder(TableId table) { return new Builder().setTable(table); } - /** * Returns a builder for an {@code InsertAllRequest} object given the destination table and the * rows to insert. @@ -369,7 +344,6 @@ public static Builder newBuilder(TableId table, Iterable rows) { return newBuilder(table).setRows(rows); } - /** * Returns a builder for an {@code InsertAllRequest} object given the destination table and the * rows to insert. @@ -378,15 +352,11 @@ public static Builder newBuilder(TableId table, RowToInsert... rows) { return newBuilder(table, ImmutableList.copyOf(rows)); } - - /** - * Returns a builder for an {@code InsertAllRequest} object given the destination table. - */ + /** Returns a builder for an {@code InsertAllRequest} object given the destination table. */ public static Builder newBuilder(String datasetId, String tableId) { return new Builder().setTable(TableId.of(datasetId, tableId)); } - /** * Returns a builder for an {@code InsertAllRequest} object given the destination table and the * rows to insert. @@ -395,7 +365,6 @@ public static Builder newBuilder(String datasetId, String tableId, Iterable rows return newBuilder(tableInfo.getTableId(), rows); } - /** * Returns a builder for an {@code InsertAllRequest} object given the destination table and the * rows to insert. diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java index 3312133842a4..9a75f5cbd6ae 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java @@ -26,7 +26,6 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; - import java.io.Serializable; import java.util.List; import java.util.Map; @@ -35,9 +34,9 @@ /** * Google Cloud BigQuery insert all response. Objects of this class possibly contain errors for an * {@link InsertAllRequest}. If a row failed to be inserted, the non-empty list of errors associated - * to that row's index can be obtained with {@link InsertAllResponse#getErrorsFor(long)}. - * {@link InsertAllResponse#getInsertErrors()} can be used to return all errors caused by a - * {@link InsertAllRequest} as a map. + * to that row's index can be obtained with {@link InsertAllResponse#getErrorsFor(long)}. {@link + * InsertAllResponse#getInsertErrors()} can be used to return all errors caused by a {@link + * InsertAllRequest} as a map. */ public class InsertAllResponse implements Serializable { @@ -46,11 +45,12 @@ public class InsertAllResponse implements Serializable { private final Map> insertErrors; InsertAllResponse(Map> insertErrors) { - this.insertErrors = insertErrors != null ? ImmutableMap.copyOf(insertErrors) - : ImmutableMap.>of(); + this.insertErrors = + insertErrors != null + ? ImmutableMap.copyOf(insertErrors) + : ImmutableMap.>of(); } - /** * Returns all insertion errors as a map whose keys are indexes of rows that failed to insert. * Each failed row index is associated with a non-empty list of {@link BigQueryError}. @@ -59,10 +59,7 @@ public Map> getInsertErrors() { return insertErrors; } - - /** - * Returns errors for the provided row index. If no error exists returns {@code null}. - */ + /** Returns errors for the provided row index. If no error exists returns {@code null}. */ public List getErrorsFor(long index) { return insertErrors.get(index); } @@ -84,8 +81,8 @@ public final int hashCode() { public final boolean equals(Object obj) { return obj == this || obj != null - && obj.getClass().equals(InsertAllResponse.class) - && Objects.equals(insertErrors, ((InsertAllResponse) obj).insertErrors); + && obj.getClass().equals(InsertAllResponse.class) + && Objects.equals(insertErrors, ((InsertAllResponse) obj).insertErrors); } @Override @@ -96,15 +93,19 @@ public String toString() { TableDataInsertAllResponse toPb() { TableDataInsertAllResponse responsePb = new TableDataInsertAllResponse(); if (!insertErrors.isEmpty()) { - responsePb.setInsertErrors(ImmutableList.copyOf(Iterables.transform(insertErrors.entrySet(), - new Function>, InsertErrors>() { - @Override - public InsertErrors apply(Map.Entry> entry) { - return new InsertErrors() - .setIndex(entry.getKey()) - .setErrors(Lists.transform(entry.getValue(), BigQueryError.TO_PB_FUNCTION)); - } - }))); + responsePb.setInsertErrors( + ImmutableList.copyOf( + Iterables.transform( + insertErrors.entrySet(), + new Function>, InsertErrors>() { + @Override + public InsertErrors apply(Map.Entry> entry) { + return new InsertErrors() + .setIndex(entry.getKey()) + .setErrors( + Lists.transform(entry.getValue(), BigQueryError.TO_PB_FUNCTION)); + } + }))); } return responsePb; } @@ -115,9 +116,11 @@ static InsertAllResponse fromPb(TableDataInsertAllResponse responsePb) { List errorsPb = responsePb.getInsertErrors(); insertErrors = Maps.newHashMapWithExpectedSize(errorsPb.size()); for (InsertErrors errorPb : errorsPb) { - insertErrors.put(errorPb.getIndex(), Lists.transform( - errorPb.getErrors() != null ? errorPb.getErrors() : ImmutableList.of(), - BigQueryError.FROM_PB_FUNCTION)); + insertErrors.put( + errorPb.getIndex(), + Lists.transform( + errorPb.getErrors() != null ? errorPb.getErrors() : ImmutableList.of(), + BigQueryError.FROM_PB_FUNCTION)); } } return new InsertAllResponse(insertErrors); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java index e6434e602fac..b13198b8a135 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java @@ -20,41 +20,36 @@ import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects.ToStringHelper; - import java.io.Serializable; import java.util.Objects; -/** - * Base class for a BigQuery job configuration. - */ +/** Base class for a BigQuery job configuration. */ public abstract class JobConfiguration implements Serializable { private static final long serialVersionUID = -548132177415406526L; private final Type type; - /** - * Type of a BigQuery Job. - */ + /** Type of a BigQuery Job. */ public enum Type { /** - * A Copy Job copies an existing table to another new or existing table. Instances of - * {@code JobConfiguration} for this type are implemented by {@link CopyJobConfiguration}. + * A Copy Job copies an existing table to another new or existing table. Instances of {@code + * JobConfiguration} for this type are implemented by {@link CopyJobConfiguration}. */ COPY, /** - * An Extract Job exports a BigQuery table to Google Cloud Storage. Instances of - * {@code JobConfiguration} for this type are implemented by {@link ExtractJobConfiguration}. + * An Extract Job exports a BigQuery table to Google Cloud Storage. Instances of {@code + * JobConfiguration} for this type are implemented by {@link ExtractJobConfiguration}. */ EXTRACT, /** - * A Load Job loads data from one of several formats into a table. Instances of - * {@code JobConfiguration} for this type are implemented by {@link LoadJobConfiguration}. + * A Load Job loads data from one of several formats into a table. Instances of {@code + * JobConfiguration} for this type are implemented by {@link LoadJobConfiguration}. */ LOAD, /** - * A Query Job runs a query against BigQuery data. Instances of - * {@code JobConfiguration} for this type are implemented by {@link QueryJobConfiguration}. + * A Query Job runs a query against BigQuery data. Instances of {@code JobConfiguration} for + * this type are implemented by {@link QueryJobConfiguration}. */ QUERY } @@ -83,9 +78,7 @@ B setType(Type type) { return self(); } - /** - * Creates an object. - */ + /** Creates an object. */ public abstract T build(); } @@ -93,17 +86,12 @@ B setType(Type type) { this.type = builder.type; } - - /** - * Returns the type of the job configuration. - */ + /** Returns the type of the job configuration. */ public Type getType() { return type; } - /** - * Returns a builder for the object. - */ + /** Returns a builder for the object. */ public abstract Builder toBuilder(); ToStringHelper toStringHelper() { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java index 6d2336ede86b..254e69647e1a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java @@ -82,23 +82,17 @@ public Builder setRandomJob() { public abstract JobId build(); } - /** - * Creates a job identity given project's and job's user-defined id. - */ + /** Creates a job identity given project's and job's user-defined id. */ public static JobId of(String project, String job) { return newBuilder().setProject(checkNotNull(project)).setJob(checkNotNull(job)).build(); } - /** - * Creates a job identity given only its user-defined id. - */ + /** Creates a job identity given only its user-defined id. */ public static JobId of(String job) { return newBuilder().setJob(checkNotNull(job)).build(); } - /** - * Creates a job identity with autogenerated id and no project specified. - */ + /** Creates a job identity with autogenerated id and no project specified. */ public static JobId of() { return newBuilder().setRandomJob().build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java index 7dd8a0bddf89..8f571ff55178 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java @@ -24,10 +24,10 @@ /** * Google BigQuery Job information. Jobs are objects that manage asynchronous tasks such as running - * queries, loading data, and exporting data. Use {@link CopyJobConfiguration} for a job that - * copies an existing table. Use {@link ExtractJobConfiguration} for a job that exports a table to - * Google Cloud Storage. Use {@link LoadJobConfiguration} for a job that loads data from Google - * Cloud Storage into a table. Use {@link QueryJobConfiguration} for a job that runs a query. + * queries, loading data, and exporting data. Use {@link CopyJobConfiguration} for a job that copies + * an existing table. Use {@link ExtractJobConfiguration} for a job that exports a table to Google + * Cloud Storage. Use {@link LoadJobConfiguration} for a job that loads data from Google Cloud + * Storage into a table. Use {@link QueryJobConfiguration} for a job that runs a query. * * @see Jobs */ @@ -52,70 +52,47 @@ public JobInfo apply(Job pb) { private final String userEmail; private final JobConfiguration configuration; - /** - * Specifies whether the job is allowed to create new tables. - */ + /** Specifies whether the job is allowed to create new tables. */ public enum CreateDisposition { - /** - * Configures the job to create the table if it does not exist. - */ + /** Configures the job to create the table if it does not exist. */ CREATE_IF_NEEDED, - /** - * Configures the job to fail with a not-found error if the table does not exist. - */ + /** Configures the job to fail with a not-found error if the table does not exist. */ CREATE_NEVER } - /** - * Specifies the action that occurs if the destination table already exists. - */ + /** Specifies the action that occurs if the destination table already exists. */ public enum WriteDisposition { - /** - * Configures the job to overwrite the table data if table already exists. - */ + /** Configures the job to overwrite the table data if table already exists. */ WRITE_TRUNCATE, - /** - * Configures the job to append data to the table if it already exists. - */ + /** Configures the job to append data to the table if it already exists. */ WRITE_APPEND, - /** - * Configures the job to fail with a duplicate error if the table already exists. - */ + /** Configures the job to fail with a duplicate error if the table already exists. */ WRITE_EMPTY } /** - * Specifies options relating to allowing the schema of the destination table to be updated as a side effect of the - * load or query job. + * Specifies options relating to allowing the schema of the destination table to be updated as a + * side effect of the load or query job. */ public enum SchemaUpdateOption { - /** - * Allow adding a nullable field to the schema. - */ + /** Allow adding a nullable field to the schema. */ ALLOW_FIELD_ADDITION, - /** - * Allow relaxing a required field in the original schema to nullable. - */ + /** Allow relaxing a required field in the original schema to nullable. */ ALLOW_FIELD_RELAXATION } - /** - * A builder for {@code JobInfo} objects. - */ + /** A builder for {@code JobInfo} objects. */ public abstract static class Builder { abstract Builder setEtag(String etag); abstract Builder setGeneratedId(String generatedId); - - /** - * Sets the job identity. - */ + /** Sets the job identity. */ public abstract Builder setJobId(JobId jobId); abstract Builder setSelfLink(String selfLink); @@ -126,7 +103,6 @@ public abstract static class Builder { abstract Builder setUserEmail(String userEmail); - /** * Sets a configuration for the {@code JobInfo} object. Use {@link CopyJobConfiguration} for a * job that copies an existing table. Use {@link ExtractJobConfiguration} for a job that exports @@ -136,9 +112,7 @@ public abstract static class Builder { */ public abstract Builder setConfiguration(JobConfiguration configuration); - /** - * Creates a {@code JobInfo} object. - */ + /** Creates a {@code JobInfo} object. */ public abstract JobInfo build(); } @@ -197,7 +171,6 @@ Builder setGeneratedId(String generatedId) { return this; } - @Override public Builder setJobId(JobId jobId) { this.jobId = jobId; @@ -228,7 +201,6 @@ Builder setUserEmail(String userEmail) { return this; } - @Override public Builder setConfiguration(JobConfiguration configuration) { this.configuration = configuration; @@ -252,31 +224,21 @@ public JobInfo build() { this.configuration = builder.configuration; } - - /** - * Returns the hash of the job resource. - */ + /** Returns the hash of the job resource. */ public String getEtag() { return etag; } - - /** - * Returns the service-generated id for the job. - */ + /** Returns the service-generated id for the job. */ public String getGeneratedId() { return generatedId; } - - /** - * Returns the job identity. - */ + /** Returns the job identity. */ public JobId getJobId() { return jobId; } - /** * Returns an URL that can be used to access the resource again. The returned URL can be used for * GET requests. @@ -285,7 +247,6 @@ public String getSelfLink() { return selfLink; } - /** * Returns the status of this job. Examine this value when polling an asynchronous job to see if * the job is complete. @@ -294,35 +255,24 @@ public JobStatus getStatus() { return status; } - - /** - * Returns information about the job, including starting time and ending time of the job. - */ + /** Returns information about the job, including starting time and ending time of the job. */ @SuppressWarnings("unchecked") public S getStatistics() { return (S) statistics; } - - /** - * Returns the email address of the user who ran the job. - */ + /** Returns the email address of the user who ran the job. */ public String getUserEmail() { return userEmail; } - - /** - * Returns the job's configuration. - */ + /** Returns the job's configuration. */ @SuppressWarnings("unchecked") public C getConfiguration() { return (C) configuration; } - /** - * Returns a builder for the job object. - */ + /** Returns a builder for the job object. */ public Builder toBuilder() { return new BuilderImpl(this); } @@ -350,8 +300,8 @@ public int hashCode() { public boolean equals(Object obj) { return obj == this || obj != null - && obj.getClass().equals(JobInfo.class) - && Objects.equals(toPb(), ((JobInfo) obj).toPb()); + && obj.getClass().equals(JobInfo.class) + && Objects.equals(toPb(), ((JobInfo) obj).toPb()); } JobInfo setProjectId(String projectId) { @@ -377,19 +327,18 @@ Job toPb() { if (statistics != null) { jobPb.setStatistics(statistics.toPb()); } - if(configuration != null){ + if (configuration != null) { jobPb.setConfiguration(configuration.toPb()); } return jobPb; } - /** - * Returns a builder for a {@code JobInfo} object given the job configuration. Use - * {@link CopyJobConfiguration} for a job that copies an existing table. Use - * {@link ExtractJobConfiguration} for a job that exports a table to Google Cloud Storage. Use - * {@link LoadJobConfiguration} for a job that loads data from Google Cloud Storage into a table. - * Use {@link QueryJobConfiguration} for a job that runs a query. + * Returns a builder for a {@code JobInfo} object given the job configuration. Use {@link + * CopyJobConfiguration} for a job that copies an existing table. Use {@link + * ExtractJobConfiguration} for a job that exports a table to Google Cloud Storage. Use {@link + * LoadJobConfiguration} for a job that loads data from Google Cloud Storage into a table. Use + * {@link QueryJobConfiguration} for a job that runs a query. */ public static Builder newBuilder(JobConfiguration configuration) { return new BuilderImpl().setConfiguration(configuration); @@ -408,10 +357,10 @@ public static JobInfo of(JobConfiguration configuration) { /** * Returns a builder for a {@code JobInfo} object given the job identity and configuration. Use - * {@link CopyJobConfiguration} for a job that copies an existing table. Use - * {@link ExtractJobConfiguration} for a job that exports a table to Google Cloud Storage. Use - * {@link LoadJobConfiguration} for a job that loads data from Google Cloud Storage into a table. - * Use {@link QueryJobConfiguration} for a job that runs a query. + * {@link CopyJobConfiguration} for a job that copies an existing table. Use {@link + * ExtractJobConfiguration} for a job that exports a table to Google Cloud Storage. Use {@link + * LoadJobConfiguration} for a job that loads data from Google Cloud Storage into a table. Use + * {@link QueryJobConfiguration} for a job that runs a query. */ public static JobInfo of(JobId jobId, JobConfiguration configuration) { return newBuilder(configuration).setJobId(jobId).build(); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 5ec974e19ef5..633a0bdbfdd3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -30,9 +30,7 @@ import java.util.List; import java.util.Objects; -/** - * A Google BigQuery Job statistics. - */ +/** A Google BigQuery Job statistics. */ public abstract class JobStatistics implements Serializable { private static final long serialVersionUID = 1433024714741660399L; @@ -41,9 +39,7 @@ public abstract class JobStatistics implements Serializable { private final Long endTime; private final Long startTime; - /** - * A Google BigQuery Copy Job statistics. - */ + /** A Google BigQuery Copy Job statistics. */ public static class CopyStatistics extends JobStatistics { private static final long serialVersionUID = 8218325588441660938L; @@ -70,8 +66,8 @@ private CopyStatistics(Builder builder) { public final boolean equals(Object obj) { return obj == this || obj != null - && obj.getClass().equals(CopyStatistics.class) - && baseEquals((CopyStatistics) obj); + && obj.getClass().equals(CopyStatistics.class) + && baseEquals((CopyStatistics) obj); } @Override @@ -84,15 +80,12 @@ static Builder newBuilder() { } @SuppressWarnings("unchecked") - static CopyStatistics fromPb( - com.google.api.services.bigquery.model.JobStatistics statisticPb) { + static CopyStatistics fromPb(com.google.api.services.bigquery.model.JobStatistics statisticPb) { return new Builder(statisticPb).build(); } } - /** - * A Google BigQuery Extract Job statistics. - */ + /** A Google BigQuery Extract Job statistics. */ public static class ExtractStatistics extends JobStatistics { private static final long serialVersionUID = -1566598819212767373L; @@ -128,11 +121,10 @@ private ExtractStatistics(Builder builder) { this.destinationUriFileCounts = builder.destinationUriFileCounts; } - /** * Returns the number of files per destination URI or URI pattern specified in the extract job. - * These values will be in the same order as the URIs specified by - * {@link ExtractJobConfiguration#getDestinationUris()}. + * These values will be in the same order as the URIs specified by {@link + * ExtractJobConfiguration#getDestinationUris()}. */ public List getDestinationUriFileCounts() { return destinationUriFileCounts; @@ -147,8 +139,8 @@ ToStringHelper toStringHelper() { public final boolean equals(Object obj) { return obj == this || obj != null - && obj.getClass().equals(ExtractStatistics.class) - && baseEquals((ExtractStatistics) obj); + && obj.getClass().equals(ExtractStatistics.class) + && baseEquals((ExtractStatistics) obj); } @Override @@ -174,9 +166,7 @@ static ExtractStatistics fromPb( } } - /** - * A Google BigQuery Load Job statistics. - */ + /** A Google BigQuery Load Job statistics. */ public static class LoadStatistics extends JobStatistics { private static final long serialVersionUID = -707369246536309215L; @@ -237,37 +227,24 @@ private LoadStatistics(Builder builder) { this.inputFiles = builder.inputFiles; this.outputBytes = builder.outputBytes; this.outputRows = builder.outputRows; - } - - /** - * Returns the number of bytes of source data in a load job. - */ + /** Returns the number of bytes of source data in a load job. */ public Long getInputBytes() { return inputBytes; } - - /** - * Returns the number of source files in a load job. - */ + /** Returns the number of source files in a load job. */ public Long getInputFiles() { return inputFiles; } - - /** - * Returns the size of the data loaded by a load job so far, in bytes. - */ + /** Returns the size of the data loaded by a load job so far, in bytes. */ public Long getOutputBytes() { return outputBytes; } - - /** - * Returns the number of rows loaded by a load job so far. - */ + /** Returns the number of rows loaded by a load job so far. */ public Long getOutputRows() { return outputRows; } @@ -285,8 +262,8 @@ ToStringHelper toStringHelper() { public final boolean equals(Object obj) { return obj == this || obj != null - && obj.getClass().equals(LoadStatistics.class) - && baseEquals((LoadStatistics) obj); + && obj.getClass().equals(LoadStatistics.class) + && baseEquals((LoadStatistics) obj); } @Override @@ -314,10 +291,7 @@ static LoadStatistics fromPb(com.google.api.services.bigquery.model.JobStatistic } } - - /** - * A Google BigQuery Query Job statistics. - */ + /** A Google BigQuery Query Job statistics. */ public static class QueryStatistics extends JobStatistics { private static final long serialVersionUID = 7539354109226732353L; @@ -338,7 +312,6 @@ public static class QueryStatistics extends JobStatistics { private final List timeline; private final Schema schema; - /** * StatementType represents possible types of SQL statements reported as part of the * QueryStatistics of a BigQuery job. @@ -354,16 +327,16 @@ public StatementType apply(String constant) { } }; - private static final StringEnumType type = new StringEnumType( - StatementType.class, - CONSTRUCTOR); + private static final StringEnumType type = + new StringEnumType(StatementType.class, CONSTRUCTOR); public static final StatementType SELECT = type.createAndRegister("SELECT"); public static final StatementType UPDATE = type.createAndRegister("UPDATE"); public static final StatementType INSERT = type.createAndRegister("INSERT"); public static final StatementType DELETE = type.createAndRegister("DELETE"); public static final StatementType CREATE_TABLE = type.createAndRegister("CREATE_TABLE"); - public static final StatementType CREATE_TABLE_AS_SELECT = type.createAndRegister("CREATE_TABLE_AS_SELECT"); + public static final StatementType CREATE_TABLE_AS_SELECT = + type.createAndRegister("CREATE_TABLE_AS_SELECT"); public static final StatementType CREATE_VIEW = type.createAndRegister("CREATE_VIEW"); public static final StatementType DROP_TABLE = type.createAndRegister("DROP_TABLE"); public static final StatementType DROP_VIEW = type.createAndRegister("DROP_VIEW"); @@ -374,23 +347,19 @@ private StatementType(String constant) { } /** - * Get the StatementType for the given String constant, and throw an exception if the constant is - * not recognized. + * Get the StatementType for the given String constant, and throw an exception if the constant + * is not recognized. */ public static StatementType valueOfStrict(String constant) { return type.valueOfStrict(constant); } - /** - * Get the State for the given String constant, and allow unrecognized values. - */ + /** Get the State for the given String constant, and allow unrecognized values. */ public static StatementType valueOf(String constant) { return type.valueOf(constant); } - /** - * Return the known values for State. - */ + /** Return the known values for State. */ public static StatementType[] values() { return type.values(); } @@ -561,91 +530,78 @@ private QueryStatistics(Builder builder) { this.schema = builder.schema; } - - /** - * Returns the billing tier for the job. - */ + /** Returns the billing tier for the job. */ public Integer getBillingTier() { return billingTier; } - /** * Returns whether the query result was fetched from the query cache. * - * @see - * Query Caching + * @see Query Caching */ public Boolean getCacheHit() { return cacheHit; } - /** - * [BETA] For DDL queries, returns the operation applied to the DDL target table. - */ - public String getDdlOperationPerformed() { return ddlOperationPerformed; } + /** [BETA] For DDL queries, returns the operation applied to the DDL target table. */ + public String getDdlOperationPerformed() { + return ddlOperationPerformed; + } - /** - * [BETA] For DDL queries, returns the TableID of the targeted table. - */ - public TableId getDdlTargetTable() { return ddlTargetTable; } + /** [BETA] For DDL queries, returns the TableID of the targeted table. */ + public TableId getDdlTargetTable() { + return ddlTargetTable; + } - /** - * The original estimate of bytes processed for the job. - */ - public Long getEstimatedBytesProcessed() { return estimatedBytesProcessed; } + /** The original estimate of bytes processed for the job. */ + public Long getEstimatedBytesProcessed() { + return estimatedBytesProcessed; + } /** - * The number of rows affected by a DML statement. - * Present only for DML statements INSERT, UPDATE or DELETE. + * The number of rows affected by a DML statement. Present only for DML statements INSERT, + * UPDATE or DELETE. */ - public Long getNumDmlAffectedRows() { return numDmlAffectedRows; } + public Long getNumDmlAffectedRows() { + return numDmlAffectedRows; + } /** - * Referenced tables for the job. - * Queries that reference more than 50 tables will not have a complete list. + * Referenced tables for the job. Queries that reference more than 50 tables will not have a + * complete list. */ - public List getReferencedTables() { return referencedTables; } + public List getReferencedTables() { + return referencedTables; + } /** - * [BETA] The type of query statement, if valid. - * Possible values include: - * SELECT - * INSERT - * UPDATE - * DELETE - * CREATE_TABLE - * CREATE_TABLE_AS_SELECT - * DROP_TABLE - * CREATE_VIEW - * DROP_VIEW + * [BETA] The type of query statement, if valid. Possible values include: SELECT INSERT UPDATE + * DELETE CREATE_TABLE CREATE_TABLE_AS_SELECT DROP_TABLE CREATE_VIEW DROP_VIEW */ - public StatementType getStatementType() { return statementType; } + public StatementType getStatementType() { + return statementType; + } - /** - * Returns the total number of bytes billed for the job. - */ + /** Returns the total number of bytes billed for the job. */ public Long getTotalBytesBilled() { return totalBytesBilled; } - - /** - * Returns the total number of bytes processed by the job. - */ + /** Returns the total number of bytes processed by the job. */ public Long getTotalBytesProcessed() { return totalBytesProcessed; } - /** - * Total number of partitions processed from all partitioned tables referenced in the job. - */ - public Long getTotalPartitionsProcessed() { return totalPartitionsProcessed; } + /** Total number of partitions processed from all partitioned tables referenced in the job. */ + public Long getTotalPartitionsProcessed() { + return totalPartitionsProcessed; + } - /** - * Returns the slot-milliseconds consumed by the query. - */ - public Long getTotalSlotMs() { return totalSlotMs; } + /** Returns the slot-milliseconds consumed by the query. */ + public Long getTotalSlotMs() { + return totalSlotMs; + } /** * Returns the query plan as a list of stages or {@code null} if a query plan is not available. @@ -660,17 +616,18 @@ public List getQueryPlan() { } /** - * Return the timeline for the query, as a list of timeline samples. Each sample provides - * information about the overall progress of the query. Information includes time of the - * sample, progress reporting on active, completed, and - * pending units of work, as well as the cumulative estimation of slot-milliseconds consumed - * by the query. + * Return the timeline for the query, as a list of timeline samples. Each sample provides + * information about the overall progress of the query. Information includes time of the sample, + * progress reporting on active, completed, and pending units of work, as well as the cumulative + * estimation of slot-milliseconds consumed by the query. */ - public List getTimeline() { return timeline; } + public List getTimeline() { + return timeline; + } /** - * Returns the schema for the query result. Present only for successful dry run of - * non-legacy SQL queries. + * Returns the schema for the query result. Present only for successful dry run of non-legacy + * SQL queries. */ public Schema getSchema() { return schema; @@ -692,14 +649,20 @@ ToStringHelper toStringHelper() { public final boolean equals(Object obj) { return obj == this || obj != null - && obj.getClass().equals(QueryStatistics.class) - && baseEquals((QueryStatistics) obj); + && obj.getClass().equals(QueryStatistics.class) + && baseEquals((QueryStatistics) obj); } @Override public final int hashCode() { - return Objects.hash(baseHashCode(), billingTier, cacheHit, totalBytesBilled, - totalBytesProcessed, queryPlan, schema); + return Objects.hash( + baseHashCode(), + billingTier, + cacheHit, + totalBytesBilled, + totalBytesProcessed, + queryPlan, + schema); } @Override @@ -718,7 +681,8 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { } if (referencedTables != null) { - queryStatisticsPb.setReferencedTables(Lists.transform(referencedTables, TableId.TO_PB_FUNCTION)); + queryStatisticsPb.setReferencedTables( + Lists.transform(referencedTables, TableId.TO_PB_FUNCTION)); } if (statementType != null) { queryStatisticsPb.setStatementType(statementType.toString()); @@ -789,27 +753,22 @@ protected JobStatistics(Builder builder) { this.startTime = builder.startTime; } - - /** - * Returns the creation time of the job in milliseconds since epoch. - */ + /** Returns the creation time of the job in milliseconds since epoch. */ public Long getCreationTime() { return creationTime; } - /** - * Returns the end time of the job in milliseconds since epoch. Returns {@code null} if the - * job has not finished yet. + * Returns the end time of the job in milliseconds since epoch. Returns {@code null} if the job + * has not finished yet. */ public Long getEndTime() { return endTime; } - /** - * Returns the start time of the job in milliseconds since epoch. Returns {@code null} if the - * job has not started yet. + * Returns the start time of the job in milliseconds since epoch. Returns {@code null} if the job + * has not started yet. */ public Long getStartTime() { return startTime; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java index a0f6da6c992e..9c9b12ac8529 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java @@ -21,10 +21,11 @@ import com.google.cloud.StringEnumValue; /** - * A type used in legacy SQL contexts. NOTE: some contexts use a mix of types; for example, - * for queries that use standard SQL, the return types are the legacy SQL types. + * A type used in legacy SQL contexts. NOTE: some contexts use a mix of types; for example, for + * queries that use standard SQL, the return types are the legacy SQL types. * - * @see https://cloud.google.com/bigquery/data-types + * @see https://cloud.google.com/bigquery/data-types */ public final class LegacySQLTypeName extends StringEnumValue { private static final long serialVersionUID = 1421040468991161123L; @@ -37,41 +38,51 @@ public LegacySQLTypeName apply(String constant) { } }; - private static final StringEnumType type = new StringEnumType( - LegacySQLTypeName.class, - CONSTRUCTOR); + private static final StringEnumType type = + new StringEnumType(LegacySQLTypeName.class, CONSTRUCTOR); /** Variable-length binary data. */ - public static final LegacySQLTypeName BYTES = type.createAndRegister("BYTES").setStandardType(StandardSQLTypeName.BYTES); + public static final LegacySQLTypeName BYTES = + type.createAndRegister("BYTES").setStandardType(StandardSQLTypeName.BYTES); /** Variable-length character (Unicode) data. */ - public static final LegacySQLTypeName STRING = type.createAndRegister("STRING").setStandardType(StandardSQLTypeName.STRING); + public static final LegacySQLTypeName STRING = + type.createAndRegister("STRING").setStandardType(StandardSQLTypeName.STRING); /** A 64-bit signed integer value. */ - public static final LegacySQLTypeName INTEGER = type.createAndRegister("INTEGER").setStandardType(StandardSQLTypeName.INT64); + public static final LegacySQLTypeName INTEGER = + type.createAndRegister("INTEGER").setStandardType(StandardSQLTypeName.INT64); /** A 64-bit IEEE binary floating-point value. */ - public static final LegacySQLTypeName FLOAT = type.createAndRegister("FLOAT").setStandardType(StandardSQLTypeName.FLOAT64); + public static final LegacySQLTypeName FLOAT = + type.createAndRegister("FLOAT").setStandardType(StandardSQLTypeName.FLOAT64); /** - * A decimal value with 38 digits of precision and 9 digits of scale. - * Note, support for this type is limited in legacy SQL. + * A decimal value with 38 digits of precision and 9 digits of scale. Note, support for this type + * is limited in legacy SQL. */ - public static final LegacySQLTypeName NUMERIC = type.createAndRegister("NUMERIC").setStandardType(StandardSQLTypeName.NUMERIC); + public static final LegacySQLTypeName NUMERIC = + type.createAndRegister("NUMERIC").setStandardType(StandardSQLTypeName.NUMERIC); /** A Boolean value (true or false). */ - public static final LegacySQLTypeName BOOLEAN = type.createAndRegister("BOOLEAN").setStandardType(StandardSQLTypeName.BOOL); + public static final LegacySQLTypeName BOOLEAN = + type.createAndRegister("BOOLEAN").setStandardType(StandardSQLTypeName.BOOL); /** Represents an absolute point in time, with microsecond precision. */ - public static final LegacySQLTypeName TIMESTAMP = type.createAndRegister("TIMESTAMP").setStandardType(StandardSQLTypeName.TIMESTAMP); + public static final LegacySQLTypeName TIMESTAMP = + type.createAndRegister("TIMESTAMP").setStandardType(StandardSQLTypeName.TIMESTAMP); /** Represents a logical calendar date. Note, support for this type is limited in legacy SQL. */ - public static final LegacySQLTypeName DATE = type.createAndRegister("DATE").setStandardType(StandardSQLTypeName.DATE); + public static final LegacySQLTypeName DATE = + type.createAndRegister("DATE").setStandardType(StandardSQLTypeName.DATE); /** * Represents a time, independent of a specific date, to microsecond precision. Note, support for * this type is limited in legacy SQL. */ - public static final LegacySQLTypeName TIME = type.createAndRegister("TIME").setStandardType(StandardSQLTypeName.TIME); + public static final LegacySQLTypeName TIME = + type.createAndRegister("TIME").setStandardType(StandardSQLTypeName.TIME); /** * Represents a year, month, day, hour, minute, second, and subsecond (microsecond precision). * Note, support for this type is limited in legacy SQL. */ - public static final LegacySQLTypeName DATETIME = type.createAndRegister("DATETIME").setStandardType(StandardSQLTypeName.DATETIME); + public static final LegacySQLTypeName DATETIME = + type.createAndRegister("DATETIME").setStandardType(StandardSQLTypeName.DATETIME); /** A record type with a nested schema. */ - public static final LegacySQLTypeName RECORD = type.createAndRegister("RECORD").setStandardType(StandardSQLTypeName.STRUCT); + public static final LegacySQLTypeName RECORD = + type.createAndRegister("RECORD").setStandardType(StandardSQLTypeName.STRUCT); private StandardSQLTypeName equivalent; @@ -80,9 +91,7 @@ private LegacySQLTypeName setStandardType(StandardSQLTypeName equivalent) { return this; } - /** - * Provides the standard SQL type name equivalent to this type name. - */ + /** Provides the standard SQL type name equivalent to this type name. */ public StandardSQLTypeName getStandardType() { return equivalent; } @@ -92,23 +101,19 @@ private LegacySQLTypeName(String constant) { } /** - * Get the LegacySQLTypeName for the given String constant, and throw an exception if the constant is - * not recognized. + * Get the LegacySQLTypeName for the given String constant, and throw an exception if the constant + * is not recognized. */ public static LegacySQLTypeName valueOfStrict(String constant) { return type.valueOfStrict(constant); } - /** - * Get the LegacySQLTypeName for the given String constant, and allow unrecognized values. - */ + /** Get the LegacySQLTypeName for the given String constant, and allow unrecognized values. */ public static LegacySQLTypeName valueOf(String constant) { return type.valueOf(constant); } - /** - * Return the known values for LegacySQLTypeName. - */ + /** Return the known values for LegacySQLTypeName. */ public static LegacySQLTypeName[] values() { return type.values(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java index 9128e7afd662..3f3382420569 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java @@ -17,60 +17,55 @@ package com.google.cloud.bigquery; import com.google.cloud.bigquery.JobInfo.CreateDisposition; -import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; - +import com.google.cloud.bigquery.JobInfo.WriteDisposition; import java.util.List; /** - * Common interface for a load configuration. A load configuration - * ({@link WriteChannelConfiguration}) can be used to load data into a table with a - * {@link com.google.cloud.WriteChannel} ({@link BigQuery#writer(WriteChannelConfiguration)}). - * A load configuration ({@link LoadJobConfiguration}) can also be used to create a load job - * ({@link JobInfo#of(JobConfiguration)}). + * Common interface for a load configuration. A load configuration ({@link + * WriteChannelConfiguration}) can be used to load data into a table with a {@link + * com.google.cloud.WriteChannel} ({@link BigQuery#writer(WriteChannelConfiguration)}). A load + * configuration ({@link LoadJobConfiguration}) can also be used to create a load job ({@link + * JobInfo#of(JobConfiguration)}). */ public interface LoadConfiguration { interface Builder { - - /** - * Sets the destination table to load the data into. - */ + /** Sets the destination table to load the data into. */ Builder setDestinationTable(TableId destinationTable); - Builder setDestinationEncryptionConfiguration(EncryptionConfiguration encryptionConfiguration); /** * Sets whether the job is allowed to create new tables. * - * @see + * @see * Create Disposition */ Builder setCreateDisposition(CreateDisposition createDisposition); - /** * Sets the action that should occur if the destination table already exists. * - * @see + * @see * Write Disposition */ Builder setWriteDisposition(WriteDisposition writeDisposition); - /** * Sets the source format, and possibly some parsing options, of the external data. Supported * formats are {@code CSV}, {@code NEWLINE_DELIMITED_JSON} and {@code DATASTORE_BACKUP}. If not * specified, {@code CSV} format is assumed. * - * - * Source Format + *

    + * Source Format */ Builder setFormatOptions(FormatOptions formatOptions); - /** * Sets the string that represents a null value in a CSV file. For example, if you specify "\N", * BigQuery interprets "\N" as a null value when loading a CSV file. The default value is the @@ -81,23 +76,20 @@ interface Builder { */ Builder setNullMarker(String nullMarker); - /** * Sets the maximum number of bad records that BigQuery can ignore when running the job. If the - * number of bad records exceeds this value, an invalid error is returned in the job result. - * By default no bad record is ignored. + * number of bad records exceeds this value, an invalid error is returned in the job result. By + * default no bad record is ignored. */ Builder setMaxBadRecords(Integer maxBadRecords); - /** * Sets the schema for the destination table. The schema can be omitted if the destination table - * already exists, or if you're loading data from a Google Cloud Datastore backup (i.e. - * {@code DATASTORE_BACKUP} format option). + * already exists, or if you're loading data from a Google Cloud Datastore backup (i.e. {@code + * DATASTORE_BACKUP} format option). */ Builder setSchema(Schema schema); - /** * Sets whether BigQuery should allow extra values that are not represented in the table schema. * If {@code true}, the extra values are ignored. If {@code false}, records with extra columns @@ -107,10 +99,11 @@ interface Builder { Builder setIgnoreUnknownValues(Boolean ignoreUnknownValues); /** - * [Experimental] Sets options allowing the schema of the destination table to be updated as a side effect of the - * load job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when - * writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition - * decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. + * [Experimental] Sets options allowing the schema of the destination table to be updated as a + * side effect of the load job. Schema update options are supported in two cases: when + * writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination + * table is a partition of a table, specified by partition decorators. For normal tables, + * WRITE_TRUNCATE will always overwrite the schema. */ Builder setSchemaUpdateOptions(List schemaUpdateOptions); @@ -119,79 +112,64 @@ interface Builder { */ Builder setAutodetect(Boolean autodetect); - /** - * Sets the time partitioning specification for the destination table. - */ + /** Sets the time partitioning specification for the destination table. */ Builder setTimePartitioning(TimePartitioning timePartitioning); - /** - * Sets the clustering specification for the destination table. - */ + /** Sets the clustering specification for the destination table. */ Builder setClustering(Clustering clustering); LoadConfiguration build(); } - - /** - * Returns the destination table to load the data into. - */ + /** Returns the destination table to load the data into. */ TableId getDestinationTable(); EncryptionConfiguration getDestinationEncryptionConfiguration(); - /** * Returns whether the job is allowed to create new tables. * - * @see + * @see * Create Disposition */ CreateDisposition getCreateDisposition(); - /** * Returns the action that should occur if the destination table already exists. * - * @see + * @see * Write Disposition */ WriteDisposition getWriteDisposition(); - /** * Returns the string that represents a null value in a CSV file. * - * @see + * @see * Null Marker */ String getNullMarker(); - /** - * Returns additional properties used to parse CSV data (used when {@link #getFormat()} is set - * to CSV). Returns {@code null} if not set. + * Returns additional properties used to parse CSV data (used when {@link #getFormat()} is set to + * CSV). Returns {@code null} if not set. */ CsvOptions getCsvOptions(); - /** * Returns the maximum number of bad records that BigQuery can ignore when running the job. If the - * number of bad records exceeds this value, an invalid error is returned in the job result. - * By default no bad record is ignored. + * number of bad records exceeds this value, an invalid error is returned in the job result. By + * default no bad record is ignored. */ Integer getMaxBadRecords(); - - /** - * Returns the schema for the destination table, if set. Returns {@code null} otherwise. - */ + /** Returns the schema for the destination table, if set. Returns {@code null} otherwise. */ Schema getSchema(); - - /** - * Returns the format of the data files. - */ + /** Returns the format of the data files. */ String getFormat(); /** @@ -202,37 +180,30 @@ interface Builder { */ Boolean ignoreUnknownValues(); - - /** - * Returns additional options used to load from a Cloud datastore backup. - */ + /** Returns additional options used to load from a Cloud datastore backup. */ DatastoreBackupOptions getDatastoreBackupOptions(); /** - * [Experimental] Returns options allowing the schema of the destination table to be updated as a side effect of the - * load job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when - * writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition - * decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. + * [Experimental] Returns options allowing the schema of the destination table to be updated as a + * side effect of the load job. Schema update options are supported in two cases: when + * writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination + * table is a partition of a table, specified by partition decorators. For normal tables, + * WRITE_TRUNCATE will always overwrite the schema. */ List getSchemaUpdateOptions(); /** - * [Experimental] Returns whether automatic inference of the options and schema for CSV and JSON sources is set. + * [Experimental] Returns whether automatic inference of the options and schema for CSV and JSON + * sources is set. */ Boolean getAutodetect(); - /** - * Returns the time partitioning specification defined for the destination table. - */ + /** Returns the time partitioning specification defined for the destination table. */ TimePartitioning getTimePartitioning(); - /** - * Returns the clustering specification for the definition table. - */ + /** Returns the clustering specification for the definition table. */ Clustering getClustering(); - /** - * Returns a builder for the load configuration object. - */ + /** Returns a builder for the load configuration object. */ Builder toBuilder(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index 90d1b137b94b..5cfad8dad38e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -49,8 +49,7 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private final TimePartitioning timePartitioning; private final Clustering clustering; - public static final class Builder - extends JobConfiguration.Builder + public static final class Builder extends JobConfiguration.Builder implements LoadConfiguration.Builder { private List sourceUris; @@ -116,10 +115,11 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur || loadConfigurationPb.getFieldDelimiter() != null || loadConfigurationPb.getQuote() != null || loadConfigurationPb.getSkipLeadingRows() != null) { - CsvOptions.Builder builder = CsvOptions.newBuilder() - .setEncoding(loadConfigurationPb.getEncoding()) - .setFieldDelimiter(loadConfigurationPb.getFieldDelimiter()) - .setQuote(loadConfigurationPb.getQuote()); + CsvOptions.Builder builder = + CsvOptions.newBuilder() + .setEncoding(loadConfigurationPb.getEncoding()) + .setFieldDelimiter(loadConfigurationPb.getFieldDelimiter()) + .setQuote(loadConfigurationPb.getQuote()); if (loadConfigurationPb.getAllowJaggedRows() != null) { builder.setAllowJaggedRows(loadConfigurationPb.getAllowJaggedRows()); } @@ -141,7 +141,8 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this.sourceUris = ImmutableList.copyOf(configurationPb.getLoad().getSourceUris()); } if (loadConfigurationPb.getSchemaUpdateOptions() != null) { - ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); + ImmutableList.Builder schemaUpdateOptionsBuilder = + new ImmutableList.Builder<>(); for (String rawSchemaUpdateOption : loadConfigurationPb.getSchemaUpdateOptions()) { schemaUpdateOptionsBuilder.add(JobInfo.SchemaUpdateOption.valueOf(rawSchemaUpdateOption)); } @@ -155,12 +156,13 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur } this.autodetect = loadConfigurationPb.getAutodetect(); if (loadConfigurationPb.getDestinationEncryptionConfiguration() != null) { - this.destinationEncryptionConfiguration = new EncryptionConfiguration.Builder( - loadConfigurationPb.getDestinationEncryptionConfiguration()).build(); + this.destinationEncryptionConfiguration = + new EncryptionConfiguration.Builder( + loadConfigurationPb.getDestinationEncryptionConfiguration()) + .build(); } } - @Override public Builder setDestinationTable(TableId destinationTable) { this.destinationTable = destinationTable; @@ -174,49 +176,42 @@ public Builder setDestinationEncryptionConfiguration( return this; } - @Override public Builder setCreateDisposition(JobInfo.CreateDisposition createDisposition) { this.createDisposition = createDisposition; return this; } - @Override public Builder setWriteDisposition(JobInfo.WriteDisposition writeDisposition) { this.writeDisposition = writeDisposition; return this; } - @Override public Builder setFormatOptions(FormatOptions formatOptions) { this.formatOptions = formatOptions; return this; } - @Override public Builder setNullMarker(String nullMarker) { this.nullMarker = nullMarker; return this; } - @Override public Builder setMaxBadRecords(Integer maxBadRecords) { this.maxBadRecords = maxBadRecords; return this; } - @Override public Builder setSchema(Schema schema) { this.schema = schema; return this; } - @Override public Builder setIgnoreUnknownValues(Boolean ignoreUnknownValues) { this.ignoreUnknownValues = ignoreUnknownValues; @@ -253,7 +248,7 @@ public Builder setAutodetect(Boolean autodetect) { @Override public Builder setSchemaUpdateOptions(List schemaUpdateOptions) { this.schemaUpdateOptions = - schemaUpdateOptions != null ? ImmutableList.copyOf(schemaUpdateOptions) : null; + schemaUpdateOptions != null ? ImmutableList.copyOf(schemaUpdateOptions) : null; return this; } @@ -281,37 +276,31 @@ private LoadJobConfiguration(Builder builder) { this.clustering = builder.clustering; } - @Override public TableId getDestinationTable() { return destinationTable; } - @Override public EncryptionConfiguration getDestinationEncryptionConfiguration() { return destinationEncryptionConfiguration; } - @Override public JobInfo.CreateDisposition getCreateDisposition() { return this.createDisposition; } - @Override public JobInfo.WriteDisposition getWriteDisposition() { return writeDisposition; } - @Override public String getNullMarker() { return nullMarker; } - @Override public CsvOptions getCsvOptions() { return formatOptions instanceof CsvOptions ? (CsvOptions) formatOptions : null; @@ -319,23 +308,21 @@ public CsvOptions getCsvOptions() { @Override public DatastoreBackupOptions getDatastoreBackupOptions() { - return formatOptions instanceof DatastoreBackupOptions ? - (DatastoreBackupOptions) formatOptions : null; + return formatOptions instanceof DatastoreBackupOptions + ? (DatastoreBackupOptions) formatOptions + : null; } - @Override public String getFormat() { return formatOptions != null ? formatOptions.getType() : null; } - @Override public Integer getMaxBadRecords() { return maxBadRecords; } - @Override public Schema getSchema() { return schema; @@ -360,10 +347,14 @@ public Boolean getAutodetect() { } @Override - public TimePartitioning getTimePartitioning() { return timePartitioning; } + public TimePartitioning getTimePartitioning() { + return timePartitioning; + } @Override - public Clustering getClustering() { return clustering; } + public Clustering getClustering() { + return clustering; + } @Override public List getSchemaUpdateOptions() { @@ -397,8 +388,7 @@ ToStringHelper toStringHelper() { @Override public boolean equals(Object obj) { return obj == this - || obj instanceof LoadJobConfiguration - && baseEquals((LoadJobConfiguration) obj); + || obj instanceof LoadJobConfiguration && baseEquals((LoadJobConfiguration) obj); } @Override @@ -426,7 +416,8 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { } if (getCsvOptions() != null) { CsvOptions csvOptions = getCsvOptions(); - loadConfigurationPb.setFieldDelimiter(csvOptions.getFieldDelimiter()) + loadConfigurationPb + .setFieldDelimiter(csvOptions.getFieldDelimiter()) .setAllowJaggedRows(csvOptions.allowJaggedRows()) .setAllowQuotedNewlines(csvOptions.allowQuotedNewLines()) .setEncoding(csvOptions.getEncoding()) @@ -473,7 +464,6 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { .setLoad(loadConfigurationPb); } - /** * Creates a builder for a BigQuery Load Job configuration given the destination table and source * URIs. @@ -498,36 +488,30 @@ public static Builder newBuilder(TableId destinationTable, String sourceUri) { return newBuilder(destinationTable, ImmutableList.of(sourceUri)); } - /** * Creates a builder for a BigQuery Load Job configuration given the destination table, format and * source URIs. */ - public static Builder newBuilder(TableId destinationTable, List sourceUris, - FormatOptions format) { + public static Builder newBuilder( + TableId destinationTable, List sourceUris, FormatOptions format) { return newBuilder(destinationTable, sourceUris).setFormatOptions(format); } - /** * Creates a builder for a BigQuery Load Job configuration given the destination table, format and * source URI. */ - public static Builder newBuilder(TableId destinationTable, String sourceUri, - FormatOptions format) { + public static Builder newBuilder( + TableId destinationTable, String sourceUri, FormatOptions format) { return newBuilder(destinationTable, ImmutableList.of(sourceUri), format); } - /** - * Returns a BigQuery Load Job Configuration for the given destination table and source URIs. - */ + /** Returns a BigQuery Load Job Configuration for the given destination table and source URIs. */ public static LoadJobConfiguration of(TableId destinationTable, List sourceUris) { return newBuilder(destinationTable, sourceUris).build(); } - /** - * Returns a BigQuery Load Job Configuration for the given destination table and source URI. - */ + /** Returns a BigQuery Load Job Configuration for the given destination table and source URI. */ public static LoadJobConfiguration of(TableId destinationTable, String sourceUri) { return of(destinationTable, ImmutableList.of(sourceUri)); } @@ -536,8 +520,8 @@ public static LoadJobConfiguration of(TableId destinationTable, String sourceUri * Returns a BigQuery Load Job Configuration for the given destination table, format and source * URI. */ - public static LoadJobConfiguration of(TableId destinationTable, List sourceUris, - FormatOptions format) { + public static LoadJobConfiguration of( + TableId destinationTable, List sourceUris, FormatOptions format) { return newBuilder(destinationTable, sourceUris, format).build(); } @@ -545,8 +529,8 @@ public static LoadJobConfiguration of(TableId destinationTable, List sou * Returns a BigQuery Load Job Configuration for the given destination table, format and source * URI. */ - public static LoadJobConfiguration of(TableId destinationTable, String sourceUri, - FormatOptions format) { + public static LoadJobConfiguration of( + TableId destinationTable, String sourceUri, FormatOptions format) { return of(destinationTable, ImmutableList.of(sourceUri), format); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java index 3f7bfccab356..23bf66ef7b16 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java @@ -22,10 +22,12 @@ import javax.annotation.Nullable; /** - * A Google BigQuery Model table definition. This definition is used to represent a BigQuery - * ML model. + * A Google BigQuery Model table definition. This definition is used to represent a BigQuery ML + * model. * - * @see BigQuery ML Model + * @see BigQuery + * ML Model */ @AutoValue @BetaApi @@ -62,9 +64,7 @@ public abstract static class Builder @Nullable public abstract String getLocation(); - /** - * Returns a builder for a BigQuery ML model table definition. - */ + /** Returns a builder for a BigQuery ML model table definition. */ public static Builder newBuilder() { return new AutoValue_ModelTableDefinition.Builder().setType(Type.MODEL); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java index 524c5cc618b0..15e7ce931b42 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java @@ -20,13 +20,10 @@ import com.google.cloud.bigquery.spi.v2.BigQueryRpc; import com.google.common.base.MoreObjects; - import java.io.Serializable; import java.util.Objects; -/** - * Base class for BigQuery operation option. - */ +/** Base class for BigQuery operation option. */ abstract class Option implements Serializable { private static final long serialVersionUID = -6647817677804099207L; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index a955a4dd6c7c..af91ba064339 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -22,8 +22,8 @@ import com.google.api.services.bigquery.model.JobConfigurationQuery; import com.google.api.services.bigquery.model.QueryParameter; import com.google.cloud.bigquery.JobInfo.CreateDisposition; -import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.common.base.Function; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.collect.ImmutableList; @@ -31,7 +31,6 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; - import java.util.List; import java.util.Map; import java.util.Objects; @@ -66,21 +65,21 @@ public final class QueryJobConfiguration extends JobConfiguration { private final Clustering clustering; /** - * Priority levels for a query. If not specified the priority is assumed to be - * {@link Priority#INTERACTIVE}. + * Priority levels for a query. If not specified the priority is assumed to be {@link + * Priority#INTERACTIVE}. */ public enum Priority { /** - * Query is executed as soon as possible and count towards the - * concurrent rate limit and the daily + * Query is executed as soon as possible and count towards the concurrent rate limit and the daily * rate limit. */ INTERACTIVE, /** * Query is queued and started as soon as idle resources are available, usually within a few - * minutes. If the query hasn't started within 3 hours, its priority is changed to - * {@link Priority#INTERACTIVE}. + * minutes. If the query hasn't started within 3 hours, its priority is changed to {@link + * Priority#INTERACTIVE}. */ BATCH } @@ -141,16 +140,20 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this(); JobConfigurationQuery queryConfigurationPb = configurationPb.getQuery(); this.query = queryConfigurationPb.getQuery(); - if (queryConfigurationPb.getQueryParameters() != null && !queryConfigurationPb.getQueryParameters().isEmpty()) { + if (queryConfigurationPb.getQueryParameters() != null + && !queryConfigurationPb.getQueryParameters().isEmpty()) { if (queryConfigurationPb.getQueryParameters().get(0).getName() == null) { setPositionalParameters( - Lists.transform(queryConfigurationPb.getQueryParameters(), POSITIONAL_PARAMETER_FROM_PB_FUNCTION)); + Lists.transform( + queryConfigurationPb.getQueryParameters(), + POSITIONAL_PARAMETER_FROM_PB_FUNCTION)); } else { Map values = Maps.newHashMap(); for (QueryParameter queryParameterPb : queryConfigurationPb.getQueryParameters()) { checkNotNull(queryParameterPb.getName()); - QueryParameterValue value = QueryParameterValue.fromPb( - queryParameterPb.getParameterValue(), queryParameterPb.getParameterType()); + QueryParameterValue value = + QueryParameterValue.fromPb( + queryParameterPb.getParameterValue(), queryParameterPb.getParameterType()); values.put(queryParameterPb.getName(), value); } setNamedParameters(values); @@ -174,32 +177,36 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur priority = Priority.valueOf(queryConfigurationPb.getPriority()); } if (queryConfigurationPb.getTableDefinitions() != null) { - tableDefinitions = Maps.transformValues(queryConfigurationPb.getTableDefinitions(), - ExternalTableDefinition.FROM_EXTERNAL_DATA_FUNCTION); + tableDefinitions = + Maps.transformValues( + queryConfigurationPb.getTableDefinitions(), + ExternalTableDefinition.FROM_EXTERNAL_DATA_FUNCTION); } if (queryConfigurationPb.getUserDefinedFunctionResources() != null) { - userDefinedFunctions = Lists.transform( - queryConfigurationPb.getUserDefinedFunctionResources(), - UserDefinedFunction.FROM_PB_FUNCTION); + userDefinedFunctions = + Lists.transform( + queryConfigurationPb.getUserDefinedFunctionResources(), + UserDefinedFunction.FROM_PB_FUNCTION); } if (queryConfigurationPb.getCreateDisposition() != null) { - createDisposition = - CreateDisposition.valueOf(queryConfigurationPb.getCreateDisposition()); + createDisposition = CreateDisposition.valueOf(queryConfigurationPb.getCreateDisposition()); } if (queryConfigurationPb.getWriteDisposition() != null) { - writeDisposition = - WriteDisposition.valueOf(queryConfigurationPb.getWriteDisposition()); + writeDisposition = WriteDisposition.valueOf(queryConfigurationPb.getWriteDisposition()); } if (queryConfigurationPb.getSchemaUpdateOptions() != null) { - ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); + ImmutableList.Builder schemaUpdateOptionsBuilder = + new ImmutableList.Builder<>(); for (String rawSchemaUpdateOption : queryConfigurationPb.getSchemaUpdateOptions()) { schemaUpdateOptionsBuilder.add(JobInfo.SchemaUpdateOption.valueOf(rawSchemaUpdateOption)); } this.schemaUpdateOptions = schemaUpdateOptionsBuilder.build(); } if (queryConfigurationPb.getDestinationEncryptionConfiguration() != null) { - this.destinationEncryptionConfiguration = new EncryptionConfiguration.Builder( - queryConfigurationPb.getDestinationEncryptionConfiguration()).build(); + this.destinationEncryptionConfiguration = + new EncryptionConfiguration.Builder( + queryConfigurationPb.getDestinationEncryptionConfiguration()) + .build(); } if (queryConfigurationPb.getTimePartitioning() != null) { this.timePartitioning = TimePartitioning.fromPb(queryConfigurationPb.getTimePartitioning()); @@ -209,19 +216,15 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur } } - - /** - * Sets the BigQuery SQL query to execute. - */ + /** Sets the BigQuery SQL query to execute. */ public Builder setQuery(String query) { this.query = query; return this; } - /** - * Adds a positional query parameter to the list of query parameters. See - * {@link #setPositionalParameters(Iterable)} for more details on the input requirements. + * Adds a positional query parameter to the list of query parameters. See {@link + * #setPositionalParameters(Iterable)} for more details on the input requirements. * *

    A positional parameter cannot be added after named parameters have been added. */ @@ -244,8 +247,8 @@ public Builder addPositionalParameter(QueryParameterValue value) { *

    Additionally, useLegacySql must be set to false; query parameters cannot be used with * legacy SQL. * - *

    The values parameter can be set to null to clear out the positional - * parameters so that named parameters can be used instead. + *

    The values parameter can be set to null to clear out the positional parameters so that + * named parameters can be used instead. */ public Builder setPositionalParameters(Iterable values) { if (values == null || Iterables.isEmpty(values)) { @@ -261,8 +264,8 @@ public Builder setPositionalParameters(Iterable values) { } /** - * Adds a named query parameter to the set of query parameters. See - * {@link #setNamedParameters(Map)} for more details on the input requirements. + * Adds a named query parameter to the set of query parameters. See {@link + * #setNamedParameters(Map)} for more details on the input requirements. * *

    A named parameter cannot be added after positional parameters have been added. */ @@ -310,7 +313,6 @@ public Builder setDestinationTable(TableId destinationTable) { return this; } - public Builder setDestinationEncryptionConfiguration( EncryptionConfiguration encryptionConfiguration) { this.destinationEncryptionConfiguration = encryptionConfiguration; @@ -319,9 +321,9 @@ public Builder setDestinationEncryptionConfiguration( /** * Sets the external tables definitions. If querying external data sources outside of BigQuery, - * this value describes the data format, location and other properties of the data - * sources. By defining these properties, the data sources can be queried as if they were - * standard BigQuery tables. + * this value describes the data format, location and other properties of the data sources. By + * defining these properties, the data sources can be queried as if they were standard BigQuery + * tables. */ public Builder setTableDefinitions(Map tableDefinitions) { this.tableDefinitions = tableDefinitions != null ? Maps.newHashMap(tableDefinitions) : null; @@ -329,8 +331,8 @@ public Builder setTableDefinitions(Map tableDef } /** - * Adds a new external table definition. If a definition already exists for {@code tableName} - * it is updated. + * Adds a new external table definition. If a definition already exists for {@code tableName} it + * is updated. * * @param tableName name of the table * @param tableDefinition external data configuration for the table used by this query @@ -343,11 +345,10 @@ public Builder addTableDefinition(String tableName, ExternalTableDefinition tabl return this; } - /** - * Sets user defined function resources that can be used by this query. Function resources - * can either be defined inline ({@link UserDefinedFunction#inline(String)}) or loaded from - * a Google Cloud Storage URI ({@link UserDefinedFunction#fromUri(String)}. + * Sets user defined function resources that can be used by this query. Function resources can + * either be defined inline ({@link UserDefinedFunction#inline(String)}) or loaded from a Google + * Cloud Storage URI ({@link UserDefinedFunction#fromUri(String)}. */ public Builder setUserDefinedFunctions(List userDefinedFunctions) { this.userDefinedFunctions = @@ -355,11 +356,11 @@ public Builder setUserDefinedFunctions(List userDefinedFunc return this; } - /** * Sets whether the job is allowed to create tables. * - * @see + * @see * Create Disposition */ public Builder setCreateDisposition(CreateDisposition createDisposition) { @@ -367,11 +368,11 @@ public Builder setCreateDisposition(CreateDisposition createDisposition) { return this; } - /** * Sets the action that should occur if the destination table already exists. * - * @see + * @see * Write Disposition */ public Builder setWriteDisposition(WriteDisposition writeDisposition) { @@ -379,7 +380,6 @@ public Builder setWriteDisposition(WriteDisposition writeDisposition) { return this; } - /** * Sets the default dataset. This dataset is used for all unqualified table names used in the * query. @@ -389,7 +389,6 @@ public Builder setDefaultDataset(DatasetId defaultDataset) { return this; } - /** * Sets the default dataset. This dataset is used for all unqualified table names used in the * query. @@ -398,31 +397,28 @@ public Builder setDefaultDataset(String defaultDataset) { return setDefaultDataset(DatasetId.of(defaultDataset)); } - /** - * Sets a priority for the query. If not specified the priority is assumed to be - * {@link Priority#INTERACTIVE}. + * Sets a priority for the query. If not specified the priority is assumed to be {@link + * Priority#INTERACTIVE}. */ public Builder setPriority(Priority priority) { this.priority = priority; return this; } - /** - * Sets whether the job is enabled to create arbitrarily large results. If {@code true} - * the query is allowed to create large results at a slight cost in performance. If {@code true} + * Sets whether the job is enabled to create arbitrarily large results. If {@code true} the + * query is allowed to create large results at a slight cost in performance. If {@code true} * {@link Builder#setDestinationTable(TableId)} must be provided. * - * @see - * Returning Large Query Results + * @see Returning + * Large Query Results */ public Builder setAllowLargeResults(Boolean allowLargeResults) { this.allowLargeResults = allowLargeResults; return this; } - /** * Sets whether to look for the result in the query cache. The query cache is a best-effort * cache that will be flushed whenever tables in the query are modified. Moreover, the query @@ -435,10 +431,9 @@ public Builder setUseQueryCache(Boolean useQueryCache) { return this; } - /** - * Sets whether nested and repeated fields should be flattened. If set to {@code false} - * {@link Builder#setAllowLargeResults(Boolean)} must be {@code true}. By default results are + * Sets whether nested and repeated fields should be flattened. If set to {@code false} {@link + * Builder#setAllowLargeResults(Boolean)} must be {@code true}. By default results are * flattened. * * @see Flatten @@ -448,7 +443,6 @@ public Builder setFlattenResults(Boolean flattenResults) { return this; } - /** * Sets whether the job has to be dry run or not. If set, the job is not executed. A valid query * will return a mostly empty response with some processing statistics, while an invalid query @@ -459,17 +453,16 @@ public Builder setDryRun(Boolean dryRun) { return this; } - /** * Sets whether to use BigQuery's legacy SQL dialect for this query. By default this property is - * set to {@code false}. If set to {@code false}, the query will use BigQuery's - * Standard SQL. When set to - * {@code false}, the values of {@link #setAllowLargeResults(Boolean)} and - * {@link #setFlattenResults(Boolean)} are ignored; query will be run as if - * {@link #setAllowLargeResults(Boolean)} is {@code true} and {@link #setFlattenResults(Boolean)} - * is {@code false}. + * set to {@code false}. If set to {@code false}, the query will use BigQuery's Standard SQL. When set to {@code + * false}, the values of {@link #setAllowLargeResults(Boolean)} and {@link + * #setFlattenResults(Boolean)} are ignored; query will be run as if {@link + * #setAllowLargeResults(Boolean)} is {@code true} and {@link #setFlattenResults(Boolean)} is + * {@code false}. * - * If set to {@code null} or {@code true}, legacy SQL dialect is used. This property is + *

    If set to {@code null} or {@code true}, legacy SQL dialect is used. This property is * experimental and might be subject to change. */ public Builder setUseLegacySql(Boolean useLegacySql) { @@ -478,9 +471,9 @@ public Builder setUseLegacySql(Boolean useLegacySql) { } /** - * Limits the billing tier for this job. Queries that have resource usage beyond this tier will fail - * (without incurring a charge). If unspecified, this will be set to your project default. - + * Limits the billing tier for this job. Queries that have resource usage beyond this tier will + * fail (without incurring a charge). If unspecified, this will be set to your project default. + * * @param maximumBillingTier maximum billing tier for this job */ public Builder setMaximumBillingTier(Integer maximumBillingTier) { @@ -488,29 +481,25 @@ public Builder setMaximumBillingTier(Integer maximumBillingTier) { return this; } - /** - * [Experimental] Sets options allowing the schema of the destination table to be updated as a side effect of the - * query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when - * writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition - * decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. + * [Experimental] Sets options allowing the schema of the destination table to be updated as a + * side effect of the query job. Schema update options are supported in two cases: when + * writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination + * table is a partition of a table, specified by partition decorators. For normal tables, + * WRITE_TRUNCATE will always overwrite the schema. */ public Builder setSchemaUpdateOptions(List schemaUpdateOptions) { this.schemaUpdateOptions = schemaUpdateOptions; return this; } - /** - * Sets the time partitioning specification for the destination table. - */ + /** Sets the time partitioning specification for the destination table. */ public Builder setTimePartitioning(TimePartitioning timePartitioning) { this.timePartitioning = timePartitioning; return this; } - /** - * Sets the clustering specification for the destination table. - */ + /** Sets the clustering specification for the destination table. */ public Builder setClustering(Clustering clustering) { this.clustering = clustering; return this; @@ -555,29 +544,28 @@ private QueryJobConfiguration(Builder builder) { } /** - * Returns whether the job is enabled to create arbitrarily large results. If {@code true} - * the query is allowed to create large results at a slight cost in performance. - * the query is allowed to create large results at a slight cost in performance. + * Returns whether the job is enabled to create arbitrarily large results. If {@code true} the + * query is allowed to create large results at a slight cost in performance. the query is allowed + * to create large results at a slight cost in performance. * - * @see - * Returning Large Query Results + * @see Returning + * Large Query Results */ public Boolean allowLargeResults() { return allowLargeResults; } - /** * Returns whether the job is allowed to create new tables. * - * @see + * @see * Create Disposition */ public CreateDisposition getCreateDisposition() { return createDisposition; } - /** * Returns the default dataset. This dataset is used for all unqualified table names used in the * query. @@ -586,7 +574,6 @@ public DatasetId getDefaultDataset() { return defaultDataset; } - /** * Returns the table where to put query results. If not provided a new table is created. This * value is required if {@link #allowLargeResults()} is {@code true}. @@ -600,8 +587,8 @@ public EncryptionConfiguration getDestinationEncryptionConfiguration() { } /** - * Returns whether nested and repeated fields should be flattened. If set to {@code false} - * {@link Builder#setAllowLargeResults(Boolean)} must be {@code true}. + * Returns whether nested and repeated fields should be flattened. If set to {@code false} {@link + * Builder#setAllowLargeResults(Boolean)} must be {@code true}. * * @see Flatten */ @@ -609,43 +596,31 @@ public Boolean flattenResults() { return flattenResults; } - - /** - * Returns the query priority. - */ + /** Returns the query priority. */ public Priority getPriority() { return priority; } - - /** - * Returns the Google BigQuery SQL query. - */ + /** Returns the Google BigQuery SQL query. */ public String getQuery() { return query; } - - /** - * Returns the positional query parameters to use for the query. - */ + /** Returns the positional query parameters to use for the query. */ public List getPositionalParameters() { return positionalParameters; } - /** - * Returns the named query parameters to use for the query. - */ + /** Returns the named query parameters to use for the query. */ public Map getNamedParameters() { return namedParameters; } - /** * Returns the external tables definitions. If querying external data sources outside of BigQuery, - * this value describes the data format, location and other properties of the data - * sources. By defining these properties, the data sources can be queried as if they were - * standard BigQuery tables. + * this value describes the data format, location and other properties of the data sources. By + * defining these properties, the data sources can be queried as if they were standard BigQuery + * tables. */ public Map getTableDefinitions() { return tableDefinitions; @@ -653,8 +628,8 @@ public Map getTableDefinitions() { /** * Returns whether to look for the result in the query cache. The query cache is a best-effort - * cache that will be flushed whenever tables in the query are modified. Moreover, the query - * cache is only available when {@link Builder#setDestinationTable(TableId)} is not set. + * cache that will be flushed whenever tables in the query are modified. Moreover, the query cache + * is only available when {@link Builder#setDestinationTable(TableId)} is not set. * * @see Query Caching */ @@ -662,21 +637,20 @@ public Boolean useQueryCache() { return useQueryCache; } - /** - * Returns user defined function resources that can be used by this query. Function resources - * can either be defined inline ({@link UserDefinedFunction.Type#INLINE}) or loaded from - * a Google Cloud Storage URI ({@link UserDefinedFunction.Type#FROM_URI}. + * Returns user defined function resources that can be used by this query. Function resources can + * either be defined inline ({@link UserDefinedFunction.Type#INLINE}) or loaded from a Google + * Cloud Storage URI ({@link UserDefinedFunction.Type#FROM_URI}. */ public List getUserDefinedFunctions() { return userDefinedFunctions; } - /** * Returns the action that should occur if the destination table already exists. * - * @see + * @see * Write Disposition */ public WriteDisposition getWriteDisposition() { @@ -693,45 +667,43 @@ public Boolean dryRun() { } /** - * Returns whether to use BigQuery's legacy SQL dialect for this query. By default this property is - * set to {@code false}. If set to {@code false}, the query will use BigQuery's - * Standard SQL. - * When set to {@code false}, the values of {@link #allowLargeResults()} and - * {@link #flattenResults()} are ignored; query will be run as if {@link #allowLargeResults()} is - * {@code true} and {@link #flattenResults()} is {@code false}. If set to {@code null} or - * {@code true}, legacy SQL dialect is used. This property is experimental and might be subject - * to change. + * Returns whether to use BigQuery's legacy SQL dialect for this query. By default this property + * is set to {@code false}. If set to {@code false}, the query will use BigQuery's Standard SQL. When set to {@code + * false}, the values of {@link #allowLargeResults()} and {@link #flattenResults()} are ignored; + * query will be run as if {@link #allowLargeResults()} is {@code true} and {@link + * #flattenResults()} is {@code false}. If set to {@code null} or {@code true}, legacy SQL dialect + * is used. This property is experimental and might be subject to change. */ public Boolean useLegacySql() { return useLegacySql; } - /** - * Returns the optional billing tier limit for this job. - */ + /** Returns the optional billing tier limit for this job. */ public Integer getMaximumBillingTier() { return maximumBillingTier; } /** - * [Experimental] Returns options allowing the schema of the destination table to be updated as a side effect of the - * query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when - * writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition - * decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. + * [Experimental] Returns options allowing the schema of the destination table to be updated as a + * side effect of the query job. Schema update options are supported in two cases: when + * writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination + * table is a partition of a table, specified by partition decorators. For normal tables, + * WRITE_TRUNCATE will always overwrite the schema. */ public List getSchemaUpdateOptions() { return schemaUpdateOptions; } - /** - * Returns the time partitioning specification for the destination table. - */ - public TimePartitioning getTimePartitioning() { return timePartitioning; } + /** Returns the time partitioning specification for the destination table. */ + public TimePartitioning getTimePartitioning() { + return timePartitioning; + } - /** - * Returns the clustering specification for the destination table. - */ - public Clustering getClustering() { return clustering; } + /** Returns the clustering specification for the destination table. */ + public Clustering getClustering() { + return clustering; + } @Override public Builder toBuilder() { @@ -766,17 +738,32 @@ ToStringHelper toStringHelper() { @Override public boolean equals(Object obj) { return obj == this - || obj instanceof QueryJobConfiguration - && baseEquals((QueryJobConfiguration) obj); + || obj instanceof QueryJobConfiguration && baseEquals((QueryJobConfiguration) obj); } @Override public int hashCode() { - return Objects.hash(baseHashCode(), allowLargeResults, createDisposition, destinationTable, - defaultDataset, flattenResults, priority, query, positionalParameters, - namedParameters, tableDefinitions, useQueryCache, - userDefinedFunctions, writeDisposition, dryRun, useLegacySql, maximumBillingTier, - schemaUpdateOptions, timePartitioning, clustering); + return Objects.hash( + baseHashCode(), + allowLargeResults, + createDisposition, + destinationTable, + defaultDataset, + flattenResults, + priority, + query, + positionalParameters, + namedParameters, + tableDefinitions, + useQueryCache, + userDefinedFunctions, + writeDisposition, + dryRun, + useLegacySql, + maximumBillingTier, + schemaUpdateOptions, + timePartitioning, + clustering); } @Override @@ -798,12 +785,12 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { JobConfigurationQuery queryConfigurationPb = new JobConfigurationQuery(); queryConfigurationPb.setQuery(query); if (!positionalParameters.isEmpty()) { - List queryParametersPb - = Lists.transform(positionalParameters, POSITIONAL_PARAMETER_TO_PB_FUNCTION); + List queryParametersPb = + Lists.transform(positionalParameters, POSITIONAL_PARAMETER_TO_PB_FUNCTION); queryConfigurationPb.setQueryParameters(queryParametersPb); } else if (!namedParameters.isEmpty()) { - List queryParametersPb - = Lists.transform(namedParameters.entrySet().asList(), NAMED_PARAMETER_TO_PB_FUNCTION); + List queryParametersPb = + Lists.transform(namedParameters.entrySet().asList(), NAMED_PARAMETER_TO_PB_FUNCTION); queryConfigurationPb.setQueryParameters(queryParametersPb); } configurationPb.setDryRun(dryRun()); @@ -826,8 +813,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { queryConfigurationPb.setPriority(priority.toString()); } if (tableDefinitions != null) { - queryConfigurationPb.setTableDefinitions(Maps.transformValues(tableDefinitions, - ExternalTableDefinition.TO_EXTERNAL_DATA_FUNCTION)); + queryConfigurationPb.setTableDefinitions( + Maps.transformValues( + tableDefinitions, ExternalTableDefinition.TO_EXTERNAL_DATA_FUNCTION)); } if (useQueryCache != null) { queryConfigurationPb.setUseQueryCache(useQueryCache); @@ -853,7 +841,8 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { queryConfigurationPb.setSchemaUpdateOptions(schemaUpdateOptionsBuilder.build()); } if (destinationEncryptionConfiguration != null) { - queryConfigurationPb.setDestinationEncryptionConfiguration(destinationEncryptionConfiguration.toPb()); + queryConfigurationPb.setDestinationEncryptionConfiguration( + destinationEncryptionConfiguration.toPb()); } if (timePartitioning != null) { queryConfigurationPb.setTimePartitioning(timePartitioning.toPb()); @@ -864,10 +853,7 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { return configurationPb.setQuery(queryConfigurationPb); } - - /** - * Creates a builder for a BigQuery Query Job given the query to be run. - */ + /** Creates a builder for a BigQuery Query Job given the query to be run. */ public static Builder newBuilder(String query) { return new Builder().setQuery(query); } @@ -886,25 +872,27 @@ static QueryJobConfiguration fromPb( return new Builder(jobPb).build(); } - private static final Function POSITIONAL_PARAMETER_FROM_PB_FUNCTION = - new Function() { - @Override - public QueryParameterValue apply(QueryParameter pb) { - checkArgument(pb.getName() == null); - return QueryParameterValue.fromPb(pb.getParameterValue(), pb.getParameterType()); - } - }; - - private static final Function POSITIONAL_PARAMETER_TO_PB_FUNCTION = - new Function() { - @Override - public QueryParameter apply(QueryParameterValue value) { - QueryParameter queryParameterPb = new QueryParameter(); - queryParameterPb.setParameterValue(value.toValuePb()); - queryParameterPb.setParameterType(value.toTypePb()); - return queryParameterPb; - } - }; + private static final Function + POSITIONAL_PARAMETER_FROM_PB_FUNCTION = + new Function() { + @Override + public QueryParameterValue apply(QueryParameter pb) { + checkArgument(pb.getName() == null); + return QueryParameterValue.fromPb(pb.getParameterValue(), pb.getParameterType()); + } + }; + + private static final Function + POSITIONAL_PARAMETER_TO_PB_FUNCTION = + new Function() { + @Override + public QueryParameter apply(QueryParameterValue value) { + QueryParameter queryParameterPb = new QueryParameter(); + queryParameterPb.setParameterValue(value.toValuePb()); + queryParameterPb.setParameterType(value.toTypePb()); + return queryParameterPb; + } + }; private static final Function, QueryParameter> NAMED_PARAMETER_TO_PB_FUNCTION = diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index 56b62cd45b6e..d74fc005f35c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -16,7 +16,6 @@ package com.google.cloud.bigquery; - import com.google.api.services.bigquery.model.QueryParameterType; import com.google.auto.value.AutoValue; import com.google.common.base.Function; @@ -210,8 +209,10 @@ public static QueryParameterValue time(String value) { return of(value, StandardSQLTypeName.TIME); } - /** Creates a {@code QueryParameterValue} object with a type of DATETIME. - * Must be in the format "yyyy-MM-dd HH:mm:ss.SSSSSS", e.g. ""2014-08-19 12:41:35.220000". */ + /** + * Creates a {@code QueryParameterValue} object with a type of DATETIME. Must be in the format + * "yyyy-MM-dd HH:mm:ss.SSSSSS", e.g. ""2014-08-19 12:41:35.220000". + */ public static QueryParameterValue dateTime(String value) { return of(value, StandardSQLTypeName.DATETIME); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java index 99dc04cda01e..a895bf839fe4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java @@ -54,5 +54,4 @@ abstract static class Builder { abstract QueryResponse build(); } - } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java index 7b989c1c8aa6..825d653dc753 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java @@ -22,7 +22,6 @@ import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; - import java.io.Serializable; import java.util.List; import java.util.Objects; @@ -86,7 +85,6 @@ public ExplainQueryStep apply(QueryStep stage) { this.substeps = substeps; } - /** * Returns a machine-readable name for the operation. * @@ -97,10 +95,7 @@ public String getName() { return name; } - - /** - * Returns a list of human-readable stage descriptions. - */ + /** Returns a list of human-readable stage descriptions. */ public List getSubsteps() { return substeps; } @@ -132,8 +127,10 @@ ExplainQueryStep toPb() { } static QueryStep fromPb(com.google.api.services.bigquery.model.ExplainQueryStep stepPb) { - return new QueryStep(stepPb.getKind(), ImmutableList.copyOf(stepPb.getSubsteps() != null - ? stepPb.getSubsteps() : ImmutableList.of())); + return new QueryStep( + stepPb.getKind(), + ImmutableList.copyOf( + stepPb.getSubsteps() != null ? stepPb.getSubsteps() : ImmutableList.of())); } } @@ -185,17 +182,17 @@ static final class Builder { private double readRatioMax; private long recordsRead; private long recordsWritten; - private long shuffleOutputBytes; - private long shuffleOutputBytesSpilled; - private long startMs; + private long shuffleOutputBytes; + private long shuffleOutputBytesSpilled; + private long startMs; private String status; private List steps; - private long waitMsAvg; - private long waitMsMax; + private long waitMsAvg; + private long waitMsMax; private double waitRatioAvg; private double waitRatioMax; - private long writeMsAvg; - private long writeMsMax; + private long writeMsAvg; + private long writeMsMax; private double writeRatioAvg; private double writeRatioMax; @@ -298,7 +295,7 @@ Builder setStartMs(long startMs) { Builder setStatus(String status) { this.status = status; - return this; + return this; } Builder setSteps(List steps) { @@ -383,23 +380,17 @@ QueryStage build() { writeRatioMax = builder.writeRatioMax; } - /** - * Returns the number of parallel input segments completed. - */ + /** Returns the number of parallel input segments completed. */ public long getCompletedParallelInputs() { return completedParallelInputs; } - /** - * Returns the time in milliseconds the average worker spent on CPU-bound tasks. - */ + /** Returns the time in milliseconds the average worker spent on CPU-bound tasks. */ public long getComputeMsAvg() { return computeMsAvg; } - /** - * Returns the time in milliseconds the slowest worker spent on CPU-bound tasks. - */ + /** Returns the time in milliseconds the slowest worker spent on CPU-bound tasks. */ public long getComputeMsMax() { return computeMsMax; } @@ -412,7 +403,6 @@ public double getComputeRatioAvg() { return computeRatioAvg; } - /** * Returns the time the slowest worker spent CPU-bound, divided by the longest time spent by any * worker in any segment. @@ -421,51 +411,37 @@ public double getComputeRatioMax() { return computeRatioMax; } - /** - * Returns the stage end time represented as milliseconds since epoch. - */ + /** Returns the stage end time represented as milliseconds since epoch. */ public long getEndMs() { return endMs; } - /** - * Returns a unique, server-generated ID for the stage within its plan. - */ + /** Returns a unique, server-generated ID for the stage within its plan. */ public long getGeneratedId() { return generatedId; } - /** - * Returns a list of the stage IDs that are inputs to this stage. - */ + /** Returns a list of the stage IDs that are inputs to this stage. */ public List getInputStages() { return inputStages; } - /** - * Returns a human-readable name for the stage. - */ + /** Returns a human-readable name for the stage. */ public String getName() { return name; } - /** - * Returns the number of parallel input segments to be processed. - */ + /** Returns the number of parallel input segments to be processed. */ public long getParallelInputs() { return parallelInputs; } - /** - * Returns the time in milliseconds the average worker spent reading input. - */ + /** Returns the time in milliseconds the average worker spent reading input. */ public long getReadMsAvg() { return readMsAvg; } - /** - * Returns the time in milliseconds the slowest worker spent reading input. - */ + /** Returns the time in milliseconds the slowest worker spent reading input. */ public long getReadMsMax() { return readMsMax; } @@ -478,7 +454,6 @@ public double getReadRatioAvg() { return readRatioAvg; } - /** * Returns the time the slowest worker spent reading input data, divided by the longest time spent * by any worker in any segment. @@ -487,46 +462,32 @@ public double getReadRatioMax() { return readRatioMax; } - - /** - * Returns the number of rows (top-level records) read by the stage. - */ + /** Returns the number of rows (top-level records) read by the stage. */ public long getRecordsRead() { return recordsRead; } - - /** - * Returns the number of rows (top-level records) written by the stage. - */ + /** Returns the number of rows (top-level records) written by the stage. */ public long getRecordsWritten() { return recordsWritten; } - /** - * Returns the total number of bytes written to shuffle. - */ + /** Returns the total number of bytes written to shuffle. */ public long getShuffleOutputBytes() { return shuffleOutputBytes; } - /** - * Returns the total number of bytes writtedn to shuffle and spilled to disk. - */ + /** Returns the total number of bytes writtedn to shuffle and spilled to disk. */ public long getShuffleOutputBytesSpilled() { return shuffleOutputBytesSpilled; } - /** - * Returns the stage start time represented as milliseconds since epoch. - */ + /** Returns the stage start time represented as milliseconds since epoch. */ public long getStartMs() { return startMs; } - /** - * Returns the current status for the stage. - */ + /** Returns the current status for the stage. */ public String getStatus() { return status; } @@ -538,16 +499,12 @@ public List getSteps() { return steps; } - /** - * Returns the time in milliseconds the average worker spent waiting to be scheduled. - */ + /** Returns the time in milliseconds the average worker spent waiting to be scheduled. */ public long getWaitMsAvg() { return waitMsAvg; } - /** - * Returns the time in milliseconds the slowest worker spent waiting to be scheduled. - */ + /** Returns the time in milliseconds the slowest worker spent waiting to be scheduled. */ public long getWaitMsMax() { return waitMsMax; } @@ -560,7 +517,6 @@ public double getWaitRatioAvg() { return waitRatioAvg; } - /** * Returns the time the slowest worker spent waiting to be scheduled, divided by the longest time * spent by any worker in any segment. @@ -569,16 +525,12 @@ public double getWaitRatioMax() { return waitRatioMax; } - /** - * Returns the time in milliseconds the average worker spent writing output. - */ + /** Returns the time in milliseconds the average worker spent writing output. */ public long getWriteMsAvg() { return writeMsAvg; } - /** - * Returns the time in milliseconds the slowest worker spent writing output. - */ + /** Returns the time in milliseconds the slowest worker spent writing output. */ public long getWriteMsMax() { return writeMsMax; } @@ -591,7 +543,6 @@ public double getWriteRatioAvg() { return writeRatioAvg; } - /** * Returns the time the slowest worker spent writing output data, divided by the longest time * spent by any worker in any segment. @@ -635,15 +586,38 @@ public String toString() { .toString(); } - @Override public final int hashCode() { - return Objects.hash(completedParallelInputs, computeMsAvg, computeMsMax, - computeRatioAvg, computeRatioMax, endMs, generatedId, inputStages, name, - parallelInputs, readMsAvg, readMsMax, readRatioAvg, readRatioMax, - recordsRead, recordsWritten, shuffleOutputBytes, shuffleOutputBytesSpilled, - startMs, status, steps, waitMsAvg, waitMsMax, waitRatioAvg, waitRatioMax, - writeMsAvg, writeMsMax, writeRatioAvg, writeRatioMax); + return Objects.hash( + completedParallelInputs, + computeMsAvg, + computeMsMax, + computeRatioAvg, + computeRatioMax, + endMs, + generatedId, + inputStages, + name, + parallelInputs, + readMsAvg, + readMsMax, + readRatioAvg, + readRatioMax, + recordsRead, + recordsWritten, + shuffleOutputBytes, + shuffleOutputBytesSpilled, + startMs, + status, + steps, + waitMsAvg, + waitMsMax, + waitRatioAvg, + waitRatioMax, + writeMsAvg, + writeMsMax, + writeRatioAvg, + writeRatioMax); } @Override @@ -691,35 +665,36 @@ static Builder newBuilder() { } ExplainQueryStage toPb() { - ExplainQueryStage stagePb = new ExplainQueryStage() - .setCompletedParallelInputs(completedParallelInputs) - .setComputeMsAvg(computeMsAvg) - .setComputeMsMax(computeMsMax) - .setComputeRatioAvg(computeRatioAvg) - .setComputeRatioMax(computeRatioMax) - .setEndMs(endMs) - .setId(generatedId) - .setInputStages(inputStages) - .setName(name) - .setParallelInputs(parallelInputs) - .setReadMsAvg(readMsAvg) - .setReadMsMax(readMsMax) - .setReadRatioAvg(readRatioAvg) - .setReadRatioMax(readRatioMax) - .setRecordsRead(recordsRead) - .setRecordsWritten(recordsWritten) - .setShuffleOutputBytes(shuffleOutputBytes) - .setShuffleOutputBytesSpilled(shuffleOutputBytesSpilled) - .setStartMs(startMs) - .setStatus(status) - .setWaitMsAvg(waitMsAvg) - .setWaitMsMax(waitMsMax) - .setWaitRatioAvg(waitRatioAvg) - .setWaitRatioMax(waitRatioMax) - .setWriteMsAvg(writeMsAvg) - .setWriteMsMax(writeMsMax) - .setWriteRatioAvg(writeRatioAvg) - .setWriteRatioMax(writeRatioMax); + ExplainQueryStage stagePb = + new ExplainQueryStage() + .setCompletedParallelInputs(completedParallelInputs) + .setComputeMsAvg(computeMsAvg) + .setComputeMsMax(computeMsMax) + .setComputeRatioAvg(computeRatioAvg) + .setComputeRatioMax(computeRatioMax) + .setEndMs(endMs) + .setId(generatedId) + .setInputStages(inputStages) + .setName(name) + .setParallelInputs(parallelInputs) + .setReadMsAvg(readMsAvg) + .setReadMsMax(readMsMax) + .setReadRatioAvg(readRatioAvg) + .setReadRatioMax(readRatioMax) + .setRecordsRead(recordsRead) + .setRecordsWritten(recordsWritten) + .setShuffleOutputBytes(shuffleOutputBytes) + .setShuffleOutputBytesSpilled(shuffleOutputBytesSpilled) + .setStartMs(startMs) + .setStatus(status) + .setWaitMsAvg(waitMsAvg) + .setWaitMsMax(waitMsMax) + .setWaitRatioAvg(waitRatioAvg) + .setWaitRatioMax(waitRatioMax) + .setWriteMsAvg(writeMsAvg) + .setWriteMsMax(writeMsMax) + .setWriteRatioAvg(writeRatioAvg) + .setWriteRatioMax(writeRatioMax); if (steps != null) { stagePb.setSteps(Lists.transform(steps, QueryStep.TO_PB_FUNCTION)); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java index 8527d7c4d96f..81c8cd279694 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java @@ -21,31 +21,27 @@ import com.google.api.services.bigquery.model.TableSchema; import com.google.common.base.Function; import com.google.common.base.MoreObjects; - import java.io.Serializable; import java.util.Objects; -/** - * This class represents the schema for a Google BigQuery Table or data source. - */ +/** This class represents the schema for a Google BigQuery Table or data source. */ public final class Schema implements Serializable { static final Function - FROM_PB_FUNCTION = new Function() { + FROM_PB_FUNCTION = + new Function() { @Override public Schema apply(com.google.api.services.bigquery.model.TableSchema pb) { return Schema.fromPb(pb); } }; - static final Function - TO_PB_FUNCTION = new Function() { - @Override - public com.google.api.services.bigquery.model.TableSchema apply(Schema schema) { - return schema.toPb(); - } - }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public com.google.api.services.bigquery.model.TableSchema apply(Schema schema) { + return schema.toPb(); + } + }; private static final long serialVersionUID = 5522743613515073017L; @@ -55,18 +51,14 @@ private Schema(FieldList fields) { this.fields = checkNotNull(fields); } - /** - * Returns the fields in the current table schema. - */ + /** Returns the fields in the current table schema. */ public FieldList getFields() { return fields; } @Override public String toString() { - return MoreObjects.toStringHelper(this) - .add("fields", fields) - .toString(); + return MoreObjects.toStringHelper(this).add("fields", fields).toString(); } @Override @@ -76,27 +68,21 @@ public int hashCode() { @Override public boolean equals(Object obj) { - return obj == this - || obj instanceof Schema - && Objects.equals(toPb(), ((Schema) obj).toPb()); + return obj == this || obj instanceof Schema && Objects.equals(toPb(), ((Schema) obj).toPb()); } - /** - * Creates a {@code Schema} object given a list of fields. - */ + /** Creates a {@code Schema} object given a list of fields. */ public static Schema of(Iterable fields) { return new Schema(FieldList.of(fields)); } - /** - * Creates a {@code Schema} object given some fields. - */ + /** Creates a {@code Schema} object given some fields. */ public static Schema of(Field... fields) { return new Schema(FieldList.of(fields)); } TableSchema toPb() { - TableSchema tableSchemaPb = new TableSchema(); + TableSchema tableSchemaPb = new TableSchema(); if (fields != null) { tableSchemaPb.setFields(fields.toPb()); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java index e6f43b0b776f..eea1754a6054 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java @@ -17,10 +17,11 @@ package com.google.cloud.bigquery; /** - * A type used in standard SQL contexts. For example, these types are used in queries - * with query parameters, which requires usage of standard SQL. + * A type used in standard SQL contexts. For example, these types are used in queries with query + * parameters, which requires usage of standard SQL. * - * @see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types + * @see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types */ public enum StandardSQLTypeName { /** A Boolean value (true or false). */ diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index 7a90397f8b80..880372b2b733 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -56,23 +56,16 @@ public static class StreamingBuffer implements Serializable { this.oldestEntryTime = oldestEntryTime; } - - /** - * Returns a lower-bound estimate of the number of rows currently in the streaming buffer. - */ + /** Returns a lower-bound estimate of the number of rows currently in the streaming buffer. */ public long getEstimatedRows() { return estimatedRows; } - - /** - * Returns a lower-bound estimate of the number of bytes currently in the streaming buffer. - */ + /** Returns a lower-bound estimate of the number of bytes currently in the streaming buffer. */ public long getEstimatedBytes() { return estimatedBytes; } - /** * Returns the timestamp of the oldest entry in the streaming buffer, in milliseconds since * epoch. Returns {@code null} if the streaming buffer is empty. @@ -148,12 +141,11 @@ public abstract static class Builder public abstract Builder setTimePartitioning(TimePartitioning timePartitioning); /** - * Set the clustering configuration for the table. If not set, the table is not - * clustered. Clustering is only available for partitioned tables. + * Set the clustering configuration for the table. If not set, the table is not clustered. + * Clustering is only available for partitioned tables. */ public abstract Builder setClustering(Clustering clustering); - /** Creates a {@code StandardTableDefinition} object. */ public abstract StandardTableDefinition build(); } @@ -191,17 +183,14 @@ public abstract static class Builder @Nullable public abstract TimePartitioning getTimePartitioning(); - /** - * Returns the clustering configuration for this table. If {@code null}, the table is not + * Returns the clustering configuration for this table. If {@code null}, the table is not * clustered. */ @Nullable public abstract Clustering getClustering(); - /** - * Returns a builder for a BigQuery standard table definition. - */ + /** Returns a builder for a BigQuery standard table definition. */ public static Builder newBuilder() { return new AutoValue_StandardTableDefinition.Builder().setType(Type.TABLE); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java index 6b193994e7cf..7fee00952bae 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java @@ -33,10 +33,8 @@ * A Google BigQuery Table. * *

    Objects of this class are immutable. Operations that modify the table like {@link #update} - * return a new object. To get a {@code Table} object with the most recent information use - * {@link #reload}. {@code Table} adds a layer of service-related functionality over - * {@link TableInfo}. - *

    + * return a new object. To get a {@code Table} object with the most recent information use {@link + * #reload}. {@code Table} adds a layer of service-related functionality over {@link TableInfo}. */ public class Table extends TableInfo { @@ -45,9 +43,7 @@ public class Table extends TableInfo { private final BigQueryOptions options; private transient BigQuery bigquery; - /** - * A builder for {@code Table} objects. - */ + /** A builder for {@code Table} objects. */ public static class Builder extends TableInfo.Builder { private final BigQuery bigquery; @@ -70,7 +66,6 @@ Builder setCreationTime(Long creationTime) { return this; } - @Override public Builder setDescription(String description) { infoBuilder.setDescription(description); @@ -83,14 +78,12 @@ Builder setEtag(String etag) { return this; } - @Override public Builder setExpirationTime(Long expirationTime) { infoBuilder.setExpirationTime(expirationTime); return this; } - @Override public Builder setFriendlyName(String friendlyName) { infoBuilder.setFriendlyName(friendlyName); @@ -115,14 +108,12 @@ Builder setSelfLink(String selfLink) { return this; } - @Override public Builder setTableId(TableId tableId) { infoBuilder.setTableId(tableId); return this; } - @Override public Builder setDefinition(TableDefinition definition) { infoBuilder.setDefinition(definition); @@ -157,7 +148,8 @@ public Table build() { * Checks if this table exists. * *

    Example of checking if the table exists. - *

     {@code
    +   *
    +   * 
    {@code
        * boolean exists = table.exists();
        * if (exists) {
        *   // the table exists
    @@ -178,7 +170,8 @@ public boolean exists() {
        *
        * 

    Example of fetching the table's latest information, specifying particular table fields to * get. - *

     {@code
    +   *
    +   * 
    {@code
        * TableField field1 = TableField.LAST_MODIFIED_TIME;
        * TableField field2 = TableField.NUM_ROWS;
        * Table latestTable = table.reload(TableOption.fields(field1, field2));
    @@ -200,7 +193,8 @@ public Table reload(TableOption... options) {
        * user-defined ids cannot be changed. A new {@code Table} object is returned.
        *
        * 

    Example of updating the table's information. - *

     {@code
    +   *
    +   * 
    {@code
        * Table updatedTable = table.toBuilder().setDescription("new description").build().update();
        * }
    * @@ -216,7 +210,8 @@ public Table update(TableOption... options) { * Deletes this table. * *

    Example of deleting the table. - *

     {@code
    +   *
    +   * 
    {@code
        * boolean deleted = table.delete();
        * if (deleted) {
        *   // the table was deleted
    @@ -242,7 +237,8 @@ public boolean delete() {
        * output.
        *
        * 

    Example of inserting rows into the table. - *

     {@code
    +   *
    +   * 
    {@code
        * String rowId1 = "rowId1";
        * String rowId2 = "rowId2";
        * List rows = new ArrayList<>();
    @@ -276,7 +272,8 @@ public InsertAllResponse insert(Iterable rows)
        * output.
        *
        * 

    Example of inserting rows into the table, ignoring invalid rows. - *

     {@code
    +   *
    +   * 
    {@code
        * String rowId1 = "rowId1";
        * String rowId2 = "rowId2";
        * List rows = new ArrayList<>();
    @@ -300,12 +297,16 @@ public InsertAllResponse insert(Iterable rows)
        *     to be invalid
        * @throws BigQueryException upon failure
        */
    -  public InsertAllResponse insert(Iterable rows,
    -      boolean skipInvalidRows, boolean ignoreUnknownValues) throws BigQueryException {
    -    InsertAllRequest request = InsertAllRequest.newBuilder(getTableId(), rows)
    -        .setSkipInvalidRows(skipInvalidRows)
    -        .setIgnoreUnknownValues(ignoreUnknownValues)
    -        .build();
    +  public InsertAllResponse insert(
    +      Iterable rows,
    +      boolean skipInvalidRows,
    +      boolean ignoreUnknownValues)
    +      throws BigQueryException {
    +    InsertAllRequest request =
    +        InsertAllRequest.newBuilder(getTableId(), rows)
    +            .setSkipInvalidRows(skipInvalidRows)
    +            .setIgnoreUnknownValues(ignoreUnknownValues)
    +            .build();
         return bigquery.insertAll(request);
       }
     
    @@ -313,7 +314,8 @@ public InsertAllResponse insert(Iterable rows,
        * Returns the paginated list rows in this table.
        *
        * 

    Example of listing rows in the table. - *

     {@code
    +   *
    +   * 
    {@code
        * // This example reads the result 100 rows per RPC call. If there's no need to limit the number,
        * // simply omit the option.
        * Page page = table.list(TableDataListOption.pageSize(100));
    @@ -333,7 +335,8 @@ public TableResult list(TableDataListOption... options) throws BigQueryException
        * Returns the paginated list rows in this table.
        *
        * 

    Example of listing rows in the table given a schema. - *

     {@code
    +   *
    +   * 
    {@code
        * Schema schema = ...;
        * String field = "my_field";
        * Page page = table.list(schema);
    @@ -345,8 +348,7 @@ public TableResult list(TableDataListOption... options) throws BigQueryException
        * @param options table data list options
        * @throws BigQueryException upon failure
        */
    -  public TableResult list(Schema schema, TableDataListOption... options)
    -      throws BigQueryException {
    +  public TableResult list(Schema schema, TableDataListOption... options) throws BigQueryException {
         return bigquery.listTableData(getTableId(), schema, options);
       }
     
    @@ -355,7 +357,8 @@ public TableResult list(Schema schema, TableDataListOption... options)
        * started {@link Job} object.
        *
        * 

    Example of copying the table to a destination table. - *

     {@code
    +   *
    +   * 
    {@code
        * String datasetName = "my_dataset";
        * String tableName = "my_destination_table";
        * Job job = table.copy(datasetName, tableName);
    @@ -388,7 +391,8 @@ public Job copy(String destinationDataset, String destinationTable, JobOption...
        * started {@link Job} object.
        *
        * 

    Example copying the table to a destination table. - *

     {@code
    +   *
    +   * 
    {@code
        * String dataset = "my_dataset";
        * String tableName = "my_destination_table";
        * TableId destinationId = TableId.of(dataset, tableName);
    @@ -412,8 +416,7 @@ public Job copy(String destinationDataset, String destinationTable, JobOption...
        * @param options job options
        * @throws BigQueryException upon failure
        */
    -  public Job copy(TableId destinationTable, JobOption... options)
    -      throws BigQueryException {
    +  public Job copy(TableId destinationTable, JobOption... options) throws BigQueryException {
         CopyJobConfiguration configuration = CopyJobConfiguration.of(destinationTable, getTableId());
         return bigquery.create(JobInfo.of(configuration), options);
       }
    @@ -423,7 +426,8 @@ public Job copy(TableId destinationTable, JobOption... options)
        * started {@link Job} object.
        *
        * 

    Example extracting data to single Google Cloud Storage file. - *

     {@code
    +   *
    +   * 
    {@code
        * String format = "CSV";
        * String gcsUrl = "gs://my_bucket/filename.csv";
        * Job job = table.extract(format, gcsUrl);
    @@ -457,7 +461,8 @@ public Job extract(String format, String destinationUri, JobOption... options)
        * the started {@link Job} object.
        *
        * 

    Example of partitioning data to a list of Google Cloud Storage files. - *

     {@code
    +   *
    +   * 
    {@code
        * String format = "CSV";
        * String gcsUrl1 = "gs://my_bucket/PartitionA_*.csv";
        * String gcsUrl2 = "gs://my_bucket/PartitionB_*.csv";
    @@ -497,7 +502,8 @@ public Job extract(String format, List destinationUris, JobOption... opt
        * the started {@link Job} object.
        *
        * 

    Example loading data from a single Google Cloud Storage file. - *

     {@code
    +   *
    +   * 
    {@code
        * String sourceUri = "gs://my_bucket/filename.csv";
        * Job job = table.load(FormatOptions.csv(), sourceUri);
        * // Wait for the job to complete
    @@ -530,7 +536,8 @@ public Job load(FormatOptions format, String sourceUri, JobOption... options)
        * Returns the started {@link Job} object.
        *
        * 

    Example loading data from a list of Google Cloud Storage files. - *

     {@code
    +   *
    +   * 
    {@code
        * String gcsUrl1 = "gs://my_bucket/filename1.csv";
        * String gcsUrl2 = "gs://my_bucket/filename2.csv";
        * List sourceUris = new ArrayList<>();
    @@ -563,10 +570,7 @@ public Job load(FormatOptions format, List sourceUris, JobOption... opti
         return bigquery.create(JobInfo.of(loadConfig), options);
       }
     
    -
    -  /**
    -   * Returns the table's {@code BigQuery} object used to issue requests.
    -   */
    +  /** Returns the table's {@code BigQuery} object used to issue requests. */
       public BigQuery getBigQuery() {
         return bigquery;
       }
    @@ -585,8 +589,7 @@ public final boolean equals(Object obj) {
           return false;
         }
         Table other = (Table) obj;
    -    return Objects.equals(toPb(), other.toPb())
    -        && Objects.equals(options, other.options);
    +    return Objects.equals(toPb(), other.toPb()) && Objects.equals(options, other.options);
       }
     
       @Override
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java
    index b89ee6c0e423..f96f7892c914 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java
    @@ -28,11 +28,11 @@
     
     /**
      * {@link WriteChannel} implementation to stream data into a BigQuery table. Use {@link #getJob()}
    - * to get the job used to insert streamed data. Please notice that {@link #getJob()} returns
    - * {@code null} until the channel is closed.
    + * to get the job used to insert streamed data. Please notice that {@link #getJob()} returns {@code
    + * null} until the channel is closed.
      */
    -public class TableDataWriteChannel extends
    -    BaseWriteChannel {
    +public class TableDataWriteChannel
    +    extends BaseWriteChannel {
     
       private Job job;
     
    @@ -41,22 +41,27 @@ public class TableDataWriteChannel extends
         this(options, writeChannelConfiguration, open(options, jobId, writeChannelConfiguration));
       }
     
    -  TableDataWriteChannel(BigQueryOptions options, WriteChannelConfiguration config,
    -      String uploadId) {
    +  TableDataWriteChannel(
    +      BigQueryOptions options, WriteChannelConfiguration config, String uploadId) {
         super(options, config, uploadId);
       }
     
       @Override
       protected void flushBuffer(final int length, final boolean last) {
         try {
    -      com.google.api.services.bigquery.model.Job jobPb = runWithRetries(
    -          new Callable() {
    -            @Override
    -            public com.google.api.services.bigquery.model.Job call() {
    -              return getOptions().getBigQueryRpcV2().write(
    -                  getUploadId(), getBuffer(), 0, getPosition(), length, last);
    -            }
    -      }, getOptions().getRetrySettings(), BigQueryImpl.EXCEPTION_HANDLER, getOptions().getClock());
    +      com.google.api.services.bigquery.model.Job jobPb =
    +          runWithRetries(
    +              new Callable() {
    +                @Override
    +                public com.google.api.services.bigquery.model.Job call() {
    +                  return getOptions()
    +                      .getBigQueryRpcV2()
    +                      .write(getUploadId(), getBuffer(), 0, getPosition(), length, last);
    +                }
    +              },
    +              getOptions().getRetrySettings(),
    +              BigQueryImpl.EXCEPTION_HANDLER,
    +              getOptions().getClock());
           job = jobPb != null ? Job.fromPb(getOptions().getService(), jobPb) : null;
         } catch (RetryHelper.RetryHelperException e) {
           throw BigQueryException.translateAndThrow(e);
    @@ -122,8 +127,11 @@ static class Builder
     
           private final Job job;
     
    -      private Builder(BigQueryOptions options, WriteChannelConfiguration configuration,
    -          String uploadId, Job job) {
    +      private Builder(
    +          BigQueryOptions options,
    +          WriteChannelConfiguration configuration,
    +          String uploadId,
    +          Job job) {
             super(options, configuration, uploadId);
             this.job = job;
           }
    @@ -133,8 +141,8 @@ public RestorableState build() {
           }
         }
     
    -    static Builder builder(BigQueryOptions options, WriteChannelConfiguration config,
    -        String uploadId, Job job) {
    +    static Builder builder(
    +        BigQueryOptions options, WriteChannelConfiguration config, String uploadId, Job job) {
           return new Builder(options, config, uploadId, job);
         }
     
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java
    index 716831a1be59..ff3ea901dcd8 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java
    @@ -23,16 +23,12 @@
     import java.io.Serializable;
     import javax.annotation.Nullable;
     
    -/**
    - * Base class for a Google BigQuery table definition.
    - */
    +/** Base class for a Google BigQuery table definition. */
     public abstract class TableDefinition implements Serializable {
     
       private static final long serialVersionUID = -374760330662959529L;
     
    -  /**
    -   * The table type.
    -   */
    +  /** The table type. */
       public static final class Type extends StringEnumValue {
         private static final long serialVersionUID = -551560816480511474L;
     
    @@ -44,9 +40,7 @@ public Type apply(String constant) {
               }
             };
     
    -    private static final StringEnumType type = new StringEnumType(
    -        Type.class,
    -        CONSTRUCTOR);
    +    private static final StringEnumType type = new StringEnumType(Type.class, CONSTRUCTOR);
     
         /**
          * A normal BigQuery table. Instances of {@code TableDefinition} for this type are implemented
    @@ -74,7 +68,8 @@ public Type apply(String constant) {
         /**
          * A BigQuery table representing BigQuery ML Model.
          *
    -     * @see 
    +     * @see 
          *     BigQuery ML Model
          */
         public static final Type MODEL = type.createAndRegister("MODEL");
    @@ -84,23 +79,19 @@ private Type(String constant) {
         }
     
         /**
    -     * Get the Type for the given String constant, and throw an exception if the constant is
    -     * not recognized.
    +     * Get the Type for the given String constant, and throw an exception if the constant is not
    +     * recognized.
          */
         public static Type valueOfStrict(String constant) {
           return type.valueOfStrict(constant);
         }
     
    -    /**
    -     * Get the Type for the given String constant, and allow unrecognized values.
    -     */
    +    /** Get the Type for the given String constant, and allow unrecognized values. */
         public static Type valueOf(String constant) {
           return type.valueOf(constant);
         }
     
    -    /**
    -     * Return the known values for Type.
    -     */
    +    /** Return the known values for Type. */
         public static Type[] values() {
           return type.values();
         }
    @@ -118,9 +109,7 @@ public abstract static class Builder FROM_PB_FUNCTION =
    @@ -50,26 +48,17 @@ public TableReference apply(TableId tableId) {
       private final String dataset;
       private final String table;
     
    -
    -  /**
    -   * Returns project's user-defined id.
    -   */
    +  /** Returns project's user-defined id. */
       public String getProject() {
         return project;
       }
     
    -
    -  /**
    -   * Returns dataset's user-defined id.
    -   */
    +  /** Returns dataset's user-defined id. */
       public String getDataset() {
         return dataset;
       }
     
    -
    -  /**
    -   * Returns table's user-defined id.
    -   */
    +  /** Returns table's user-defined id. */
       public String getTable() {
         return table;
       }
    @@ -80,25 +69,19 @@ private TableId(String project, String dataset, String table) {
         this.table = table;
       }
     
    -  /**
    -   * Creates a table identity given project's, dataset's and table's user-defined ids.
    -   */
    +  /** Creates a table identity given project's, dataset's and table's user-defined ids. */
       public static TableId of(String project, String dataset, String table) {
         return new TableId(checkNotNull(project), checkNotNull(dataset), checkNotNull(table));
       }
     
    -  /**
    -   * Creates a table identity given dataset's and table's user-defined ids.
    -   */
    +  /** Creates a table identity given dataset's and table's user-defined ids. */
       public static TableId of(String dataset, String table) {
         return new TableId(null, checkNotNull(dataset), checkNotNull(table));
       }
     
       @Override
       public boolean equals(Object obj) {
    -    return obj == this
    -        || obj instanceof TableId
    -        && Objects.equals(toPb(), ((TableId) obj).toPb());
    +    return obj == this || obj instanceof TableId && Objects.equals(toPb(), ((TableId) obj).toPb());
       }
     
       @Override
    @@ -112,8 +95,8 @@ public String toString() {
       }
     
       TableId setProjectId(String projectId) {
    -    Preconditions
    -        .checkArgument(!Strings.isNullOrEmpty(projectId), "Provided projectId is null or empty");
    +    Preconditions.checkArgument(
    +        !Strings.isNullOrEmpty(projectId), "Provided projectId is null or empty");
         return TableId.of(projectId, getDataset(), getTable());
       }
     
    @@ -122,9 +105,6 @@ TableReference toPb() {
       }
     
       static TableId fromPb(TableReference tableRef) {
    -    return new TableId(
    -        tableRef.getProjectId(),
    -        tableRef.getDatasetId(),
    -        tableRef.getTableId());
    +    return new TableId(tableRef.getProjectId(), tableRef.getDatasetId(), tableRef.getTableId());
       }
     }
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java
    index ac741967c117..2ed0891a83fd 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java
    @@ -68,32 +68,23 @@ public Table apply(TableInfo tableInfo) {
       private final EncryptionConfiguration encryptionConfiguration;
       private final Labels labels;
     
    -  /**
    -   * A builder for {@code TableInfo} objects.
    -   */
    +  /** A builder for {@code TableInfo} objects. */
       public abstract static class Builder {
     
         abstract Builder setCreationTime(Long creationTime);
     
    -
    -    /**
    -     * Sets a user-friendly description for the table.
    -     */
    +    /** Sets a user-friendly description for the table. */
         public abstract Builder setDescription(String description);
     
         abstract Builder setEtag(String etag);
     
    -
         /**
          * Sets the time when this table expires, in milliseconds since the epoch. If not present, the
          * table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.
          */
         public abstract Builder setExpirationTime(Long expirationTime);
     
    -
    -    /**
    -     * Sets a user-friendly name for the table.
    -     */
    +    /** Sets a user-friendly name for the table. */
         public abstract Builder setFriendlyName(String friendlyName);
     
         abstract Builder setGeneratedId(String generatedId);
    @@ -102,16 +93,13 @@ public abstract static class Builder {
     
         abstract Builder setSelfLink(String selfLink);
     
    -    /**
    -     * Sets the table identity.
    -     */
    +    /** Sets the table identity. */
         public abstract Builder setTableId(TableId tableId);
     
    -
         /**
          * Sets the table definition. Use {@link StandardTableDefinition} to create simple BigQuery
    -     * table. Use {@link ViewDefinition} to create a BigQuery view. Use
    -     * {@link ExternalTableDefinition} to create a BigQuery a table backed by external data.
    +     * table. Use {@link ViewDefinition} to create a BigQuery view. Use {@link
    +     * ExternalTableDefinition} to create a BigQuery a table backed by external data.
          */
         public abstract Builder setDefinition(TableDefinition definition);
     
    @@ -128,9 +116,7 @@ public abstract static class Builder {
         @BetaApi
         public abstract Builder setLabels(Map labels);
     
    -    /**
    -     * Creates a {@code TableInfo} object.
    -     */
    +    /** Creates a {@code TableInfo} object. */
         public abstract TableInfo build();
     
         public abstract Builder setEncryptionConfiguration(EncryptionConfiguration configuration);
    @@ -194,7 +180,6 @@ Builder setCreationTime(Long creationTime) {
           return this;
         }
     
    -
         @Override
         public Builder setDescription(String description) {
           this.description = firstNonNull(description, Data.nullOf(String.class));
    @@ -207,14 +192,12 @@ Builder setEtag(String etag) {
           return this;
         }
     
    -
         @Override
         public Builder setExpirationTime(Long expirationTime) {
           this.expirationTime = firstNonNull(expirationTime, Data.nullOf(Long.class));
           return this;
         }
     
    -
         @Override
         public Builder setFriendlyName(String friendlyName) {
           this.friendlyName = firstNonNull(friendlyName, Data.nullOf(String.class));
    @@ -239,28 +222,24 @@ Builder setSelfLink(String selfLink) {
           return this;
         }
     
    -
         @Override
         public Builder setTableId(TableId tableId) {
           this.tableId = checkNotNull(tableId);
           return this;
         }
     
    -
         @Override
         public Builder setDefinition(TableDefinition definition) {
           this.definition = checkNotNull(definition);
           return this;
         }
     
    -
         @Override
         public Builder setEncryptionConfiguration(EncryptionConfiguration configuration) {
           this.encryptionConfiguration = configuration;
           return this;
         }
     
    -
         @Override
         public Builder setLabels(Map labels) {
           this.labels = Labels.fromUser(labels);
    @@ -288,23 +267,16 @@ public TableInfo build() {
         labels = builder.labels;
       }
     
    -
    -  /**
    -   * Returns the hash of the table resource.
    -   */
    +  /** Returns the hash of the table resource. */
       public String getEtag() {
         return etag;
       }
     
    -
    -  /**
    -   * Returns the service-generated id for the table.
    -   */
    +  /** Returns the service-generated id for the table. */
       public String getGeneratedId() {
         return generatedId;
       }
     
    -
       /**
        * Returns an URL that can be used to access the resource again. The returned URL can be used for
        * get or update requests.
    @@ -313,39 +285,26 @@ public String getSelfLink() {
         return selfLink;
       }
     
    -
    -  /**
    -   * Returns the table identity.
    -   */
    +  /** Returns the table identity. */
       public TableId getTableId() {
         return tableId;
       }
     
    -
    -  /**
    -   * Returns a user-friendly name for the table.
    -   */
    +  /** Returns a user-friendly name for the table. */
       public String getFriendlyName() {
         return Data.isNull(friendlyName) ? null : friendlyName;
       }
     
    -
    -  /**
    -   * Returns a user-friendly description for the table.
    -   */
    +  /** Returns a user-friendly description for the table. */
       public String getDescription() {
         return Data.isNull(description) ? null : description;
       }
     
    -
    -  /**
    -   * Returns the time when this table was created, in milliseconds since the epoch.
    -   */
    +  /** Returns the time when this table was created, in milliseconds since the epoch. */
       public Long getCreationTime() {
         return creationTime;
       }
     
    -
       /**
        * Returns the time when this table expires, in milliseconds since the epoch. If not present, the
        * table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.
    @@ -354,22 +313,16 @@ public Long getExpirationTime() {
         return Data.isNull(expirationTime) ? null : expirationTime;
       }
     
    -
    -  /**
    -   * Returns the time when this table was last modified, in milliseconds since the epoch.
    -   */
    +  /** Returns the time when this table was last modified, in milliseconds since the epoch. */
       public Long getLastModifiedTime() {
         return lastModifiedTime;
       }
     
    -
       public EncryptionConfiguration getEncryptionConfiguration() {
         return encryptionConfiguration;
       }
     
    -  /**
    -   * Returns the table definition.
    -   */
    +  /** Returns the table definition. */
       @SuppressWarnings("unchecked")
       public  T getDefinition() {
         return (T) definition;
    @@ -386,9 +339,7 @@ public Map getLabels() {
         return labels.userMap();
       }
     
    -  /**
    -   * Returns a builder for the table object.
    -   */
    +  /** Returns a builder for the table object. */
       public Builder toBuilder() {
         return new BuilderImpl(this);
       }
    @@ -420,11 +371,10 @@ public int hashCode() {
       public boolean equals(Object obj) {
         return obj == this
             || obj != null
    -        && obj.getClass().equals(TableInfo.class)
    -        && Objects.equals(toPb(), ((TableInfo) obj).toPb());
    +            && obj.getClass().equals(TableInfo.class)
    +            && Objects.equals(toPb(), ((TableInfo) obj).toPb());
       }
     
    -
       /**
        * Returns a builder for a {@code TableInfo} object given table identity and definition. Use
        * {@link StandardTableDefinition} to create simple BigQuery table. Use {@link ViewDefinition} to
    @@ -436,10 +386,10 @@ public static Builder newBuilder(TableId tableId, TableDefinition definition) {
       }
     
       /**
    -   * Returns a {@code TableInfo} object given table identity and definition. Use
    -   * {@link StandardTableDefinition} to create simple BigQuery table. Use {@link ViewDefinition} to
    -   * create a BigQuery view. Use {@link ExternalTableDefinition} to create a BigQuery a table backed
    -   * by external data.
    +   * Returns a {@code TableInfo} object given table identity and definition. Use {@link
    +   * StandardTableDefinition} to create simple BigQuery table. Use {@link ViewDefinition} to create
    +   * a BigQuery view. Use {@link ExternalTableDefinition} to create a BigQuery a table backed by
    +   * external data.
        */
       public static TableInfo of(TableId tableId, TableDefinition definition) {
         return newBuilder(tableId, definition).build();
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java
    index f8ea493eeda8..dd9d4a73cbd6 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java
    @@ -42,9 +42,7 @@ public abstract class TimePartitioning implements Serializable {
        */
       public enum Type {
     
    -    /**
    -     * Table is partitioned per day, based on data loading time.
    -     */
    +    /** Table is partitioned per day, based on data loading time. */
         DAY
       }
     
    @@ -58,7 +56,6 @@ public enum Type {
        */
       public abstract Type getType();
     
    -
       /**
        * Returns the number of milliseconds for which to keep the storage for a partition. When expired,
        * the storage for the partition is reclaimed. If null, the partion does not expire.
    @@ -66,7 +63,6 @@ public enum Type {
       @Nullable
       public abstract Long getExpirationMs();
     
    -
       /**
        * If not set, the table is partitioned by pseudo column '_PARTITIONTIME'; if set, the table is
        * partitioned by this field.
    @@ -75,7 +71,6 @@ public enum Type {
       @Nullable
       public abstract String getField();
     
    -
       /**
        * If set to true, queries over this table require a partition filter (that can be used for
        * partition elimination) to be specified.
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java
    index 84c2145d4b54..fbfad85d3ac1 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java
    @@ -16,12 +16,12 @@
     package com.google.cloud.bigquery;
     
     import com.google.api.services.bigquery.model.QueryTimelineSample;
    -import com.google.common.base.Function;
     import com.google.auto.value.AutoValue;
    +import com.google.common.base.Function;
     import javax.annotation.Nullable;
     
     /**
    - * A specific timeline sample.  This instruments work progress at a given point in time, providing
    + * A specific timeline sample. This instruments work progress at a given point in time, providing
      * information about work units active/pending/completed as well as cumulative slot-milliseconds.
      */
     @AutoValue
    @@ -43,42 +43,29 @@ public abstract static class Builder {
         public abstract Builder setSlotMillis(Long slotMillis);
     
         public abstract TimelineSample build();
    -
       }
     
    -  /**
    -   * Returns the sample time as milliseconds elapsed since the start of query execution.
    -   */
    +  /** Returns the sample time as milliseconds elapsed since the start of query execution. */
       @Nullable
       public abstract Long getElapsedMs();
     
    -  /**
    -   * Returns the total number of work units currently being processed.
    -   */
    +  /** Returns the total number of work units currently being processed. */
       @Nullable
       public abstract Long getActiveUnits();
     
    -  /**
    -   * Returns the total number of work units completed by this query.
    -   */
    +  /** Returns the total number of work units completed by this query. */
       @Nullable
       public abstract Long getCompletedUnits();
     
    -  /**
    -   * Returns the number of work units remaining for the currently active stages.
    -   */
    +  /** Returns the number of work units remaining for the currently active stages. */
       @Nullable
       public abstract Long getPendingUnits();
     
    -  /**
    -   * Returns the cumulative slot-milliseconds consumed by the query.
    -   */
    +  /** Returns the cumulative slot-milliseconds consumed by the query. */
       @Nullable
       public abstract Long getSlotMillis();
     
    -  /**
    -   * return a builder for the {@code TimelineSample} object.
    -   */
    +  /** return a builder for the {@code TimelineSample} object. */
       public abstract Builder toBuilder();
     
       static Builder newBuilder() {
    @@ -96,12 +83,13 @@ static TimelineSample fromPb(QueryTimelineSample sample) {
       }
     
       QueryTimelineSample toPb() {
    -    QueryTimelineSample sample = new QueryTimelineSample()
    -        .setElapsedMs(getElapsedMs())
    -        .setActiveUnits(getActiveUnits())
    -        .setCompletedUnits(getCompletedUnits())
    -        .setPendingUnits(getPendingUnits())
    -        .setTotalSlotMs(getSlotMillis());
    +    QueryTimelineSample sample =
    +        new QueryTimelineSample()
    +            .setElapsedMs(getElapsedMs())
    +            .setActiveUnits(getActiveUnits())
    +            .setCompletedUnits(getCompletedUnits())
    +            .setPendingUnits(getPendingUnits())
    +            .setTotalSlotMs(getSlotMillis());
         return sample;
       }
     
    @@ -120,5 +108,4 @@ public QueryTimelineSample apply(TimelineSample sample) {
               return sample.toPb();
             }
           };
    -
     }
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java
    index 0f99b3c94170..fb633d3bfb75 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java
    @@ -19,7 +19,6 @@
     import com.google.api.services.bigquery.model.UserDefinedFunctionResource;
     import com.google.common.base.Function;
     import com.google.common.base.MoreObjects;
    -
     import java.io.Serializable;
     import java.util.Objects;
     
    @@ -68,27 +67,21 @@ public enum Type {
         this.content = content;
       }
     
    -
    -  /**
    -   * Returns the type of user defined function.
    -   */
    +  /** Returns the type of user defined function. */
       public Type getType() {
         return type;
       }
     
    -
       /**
    -   * If {@link #getType()} is {@link Type#INLINE} this method returns a code blob. If
    -   * {@link #getType()} is {@link Type#FROM_URI} the method returns a Google Cloud Storage
    -   * URI (e.g. gs://bucket/path).
    +   * If {@link #getType()} is {@link Type#INLINE} this method returns a code blob. If {@link
    +   * #getType()} is {@link Type#FROM_URI} the method returns a Google Cloud Storage URI (e.g.
    +   * gs://bucket/path).
        */
       public String getContent() {
         return content;
       }
     
    -  /**
    -   * A Google Cloud BigQuery user-defined function, as a code blob.
    -   */
    +  /** A Google Cloud BigQuery user-defined function, as a code blob. */
       static final class InlineFunction extends UserDefinedFunction {
     
         private static final long serialVersionUID = 1083672109192091686L;
    @@ -109,9 +102,7 @@ public com.google.api.services.bigquery.model.UserDefinedFunctionResource toPb()
         }
       }
     
    -  /**
    -   * A Google Cloud BigQuery user-defined function, as an URI to Google Cloud Storage.
    -   */
    +  /** A Google Cloud BigQuery user-defined function, as an URI to Google Cloud Storage. */
       static final class UriFunction extends UserDefinedFunction {
     
         private static final long serialVersionUID = 4660331691852223839L;
    @@ -145,9 +136,7 @@ public boolean equals(Object obj) {
     
       public abstract com.google.api.services.bigquery.model.UserDefinedFunctionResource toPb();
     
    -  /**
    -   * Creates a Google Cloud BigQuery user-defined function given a code blob.
    -   */
    +  /** Creates a Google Cloud BigQuery user-defined function given a code blob. */
       public static UserDefinedFunction inline(String functionDefinition) {
         return new InlineFunction(functionDefinition);
       }
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java
    index 2bdb059df405..eee06fdaff4e 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java
    @@ -50,8 +50,6 @@ public Builder setUserDefinedFunctions(List userDefinedFunc
           return setUserDefinedFunctionsImmut(ImmutableList.copyOf(userDefinedFunctions));
         }
     
    -
    -
         /**
          * Sets user defined functions that can be used by {@link #getQuery()}.
          *
    @@ -148,7 +146,6 @@ public static Builder newBuilder(String query) {
         return newBuilder().setQuery(query);
       }
     
    -
       /**
        * Returns a builder for a BigQuery view definition.
        *
    @@ -159,7 +156,6 @@ public static Builder newBuilder(String query, List functio
         return newBuilder(query).setUserDefinedFunctions(functions);
       }
     
    -
       /**
        * Returns a builder for a BigQuery view definition.
        *
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java
    index 00301997ea98..308042fbf7e5 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java
    @@ -20,20 +20,19 @@
     
     import com.google.api.services.bigquery.model.JobConfigurationLoad;
     import com.google.cloud.bigquery.JobInfo.CreateDisposition;
    -import com.google.cloud.bigquery.JobInfo.WriteDisposition;
     import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption;
    +import com.google.cloud.bigquery.JobInfo.WriteDisposition;
     import com.google.common.base.MoreObjects;
     import com.google.common.collect.ImmutableList;
     import com.google.common.primitives.Ints;
    -
     import java.io.Serializable;
     import java.util.List;
     import java.util.Objects;
     
     /**
      * Google BigQuery Configuration for a load operation. A load configuration can be used to load data
    - * into a table with a {@link com.google.cloud.WriteChannel}
    - * ({@link BigQuery#writer(WriteChannelConfiguration)}).
    + * into a table with a {@link com.google.cloud.WriteChannel} ({@link
    + * BigQuery#writer(WriteChannelConfiguration)}).
      */
     public final class WriteChannelConfiguration implements LoadConfiguration, Serializable {
     
    @@ -82,7 +81,8 @@ private Builder(WriteChannelConfiguration writeChannelConfiguration) {
           this.ignoreUnknownValues = writeChannelConfiguration.ignoreUnknownValues;
           this.schemaUpdateOptions = writeChannelConfiguration.schemaUpdateOptions;
           this.autodetect = writeChannelConfiguration.autodetect;
    -      this.destinationEncryptionConfiguration = writeChannelConfiguration.destinationEncryptionConfiguration;
    +      this.destinationEncryptionConfiguration =
    +          writeChannelConfiguration.destinationEncryptionConfiguration;
           this.timePartitioning = writeChannelConfiguration.timePartitioning;
           this.clustering = writeChannelConfiguration.clustering;
         }
    @@ -109,10 +109,11 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur
               || loadConfigurationPb.getFieldDelimiter() != null
               || loadConfigurationPb.getQuote() != null
               || loadConfigurationPb.getSkipLeadingRows() != null) {
    -        CsvOptions.Builder builder = CsvOptions.newBuilder()
    -            .setEncoding(loadConfigurationPb.getEncoding())
    -            .setFieldDelimiter(loadConfigurationPb.getFieldDelimiter())
    -            .setQuote(loadConfigurationPb.getQuote());
    +        CsvOptions.Builder builder =
    +            CsvOptions.newBuilder()
    +                .setEncoding(loadConfigurationPb.getEncoding())
    +                .setFieldDelimiter(loadConfigurationPb.getFieldDelimiter())
    +                .setQuote(loadConfigurationPb.getQuote());
             if (loadConfigurationPb.getAllowJaggedRows() != null) {
               builder.setAllowJaggedRows(loadConfigurationPb.getAllowJaggedRows());
             }
    @@ -130,12 +131,14 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur
           }
           this.ignoreUnknownValues = loadConfigurationPb.getIgnoreUnknownValues();
           if (loadConfigurationPb.getProjectionFields() != null) {
    -        this.formatOptions = DatastoreBackupOptions.newBuilder()
    -            .setProjectionFields(loadConfigurationPb.getProjectionFields())
    -            .build();
    +        this.formatOptions =
    +            DatastoreBackupOptions.newBuilder()
    +                .setProjectionFields(loadConfigurationPb.getProjectionFields())
    +                .build();
           }
           if (loadConfigurationPb.getSchemaUpdateOptions() != null) {
    -        ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>();
    +        ImmutableList.Builder schemaUpdateOptionsBuilder =
    +            new ImmutableList.Builder<>();
             for (String rawSchemaUpdateOption : loadConfigurationPb.getSchemaUpdateOptions()) {
               schemaUpdateOptionsBuilder.add(JobInfo.SchemaUpdateOption.valueOf(rawSchemaUpdateOption));
             }
    @@ -143,8 +146,10 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur
           }
           this.autodetect = loadConfigurationPb.getAutodetect();
           if (loadConfigurationPb.getDestinationEncryptionConfiguration() != null) {
    -        this.destinationEncryptionConfiguration = new EncryptionConfiguration.Builder(
    -            configurationPb.getLoad().getDestinationEncryptionConfiguration()).build();
    +        this.destinationEncryptionConfiguration =
    +            new EncryptionConfiguration.Builder(
    +                    configurationPb.getLoad().getDestinationEncryptionConfiguration())
    +                .build();
           }
           if (loadConfigurationPb.getTimePartitioning() != null) {
             this.timePartitioning = TimePartitioning.fromPb(loadConfigurationPb.getTimePartitioning());
    @@ -154,7 +159,6 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur
           }
         }
     
    -
         @Override
         public Builder setDestinationTable(TableId destinationTable) {
           this.destinationTable = destinationTable;
    @@ -168,49 +172,42 @@ public LoadConfiguration.Builder setDestinationEncryptionConfiguration(
           return this;
         }
     
    -
         @Override
         public Builder setCreateDisposition(CreateDisposition createDisposition) {
           this.createDisposition = createDisposition;
           return this;
         }
     
    -
         @Override
         public Builder setWriteDisposition(WriteDisposition writeDisposition) {
           this.writeDisposition = writeDisposition;
           return this;
         }
     
    -
         @Override
         public Builder setFormatOptions(FormatOptions formatOptions) {
           this.formatOptions = formatOptions;
           return this;
         }
     
    -
         @Override
         public Builder setNullMarker(String nullMarker) {
           this.nullMarker = nullMarker;
           return this;
         }
     
    -
         @Override
         public Builder setMaxBadRecords(Integer maxBadRecords) {
           this.maxBadRecords = maxBadRecords;
           return this;
         }
     
    -
         @Override
         public Builder setSchema(Schema schema) {
           this.schema = schema;
           return this;
         }
     
    -
         @Override
         public Builder setIgnoreUnknownValues(Boolean ignoreUnknownValues) {
           this.ignoreUnknownValues = ignoreUnknownValues;
    @@ -220,7 +217,7 @@ public Builder setIgnoreUnknownValues(Boolean ignoreUnknownValues) {
         @Override
         public Builder setSchemaUpdateOptions(List schemaUpdateOptions) {
           this.schemaUpdateOptions =
    -              schemaUpdateOptions != null ? ImmutableList.copyOf(schemaUpdateOptions) : null;
    +          schemaUpdateOptions != null ? ImmutableList.copyOf(schemaUpdateOptions) : null;
           return this;
         }
     
    @@ -264,7 +261,6 @@ protected WriteChannelConfiguration(Builder builder) {
         this.clustering = builder.clustering;
       }
     
    -
       @Override
       public TableId getDestinationTable() {
         return destinationTable;
    @@ -275,43 +271,36 @@ public EncryptionConfiguration getDestinationEncryptionConfiguration() {
         return destinationEncryptionConfiguration;
       }
     
    -
       @Override
       public CreateDisposition getCreateDisposition() {
         return this.createDisposition;
       }
     
    -
       @Override
       public WriteDisposition getWriteDisposition() {
         return writeDisposition;
       }
     
    -
       @Override
       public String getNullMarker() {
         return nullMarker;
       }
     
    -
       @Override
       public CsvOptions getCsvOptions() {
         return formatOptions instanceof CsvOptions ? (CsvOptions) formatOptions : null;
       }
     
    -
       @Override
       public Integer getMaxBadRecords() {
         return maxBadRecords;
       }
     
    -
       @Override
       public Schema getSchema() {
         return schema;
       }
     
    -
       @Override
       public String getFormat() {
         return formatOptions != null ? formatOptions.getType() : null;
    @@ -322,11 +311,11 @@ public Boolean ignoreUnknownValues() {
         return ignoreUnknownValues;
       }
     
    -
       @Override
       public DatastoreBackupOptions getDatastoreBackupOptions() {
    -    return formatOptions instanceof DatastoreBackupOptions ?
    -        (DatastoreBackupOptions) formatOptions : null;
    +    return formatOptions instanceof DatastoreBackupOptions
    +        ? (DatastoreBackupOptions) formatOptions
    +        : null;
       }
     
       @Override
    @@ -340,10 +329,14 @@ public Boolean getAutodetect() {
       }
     
       @Override
    -  public TimePartitioning getTimePartitioning() { return timePartitioning; }
    +  public TimePartitioning getTimePartitioning() {
    +    return timePartitioning;
    +  }
     
       @Override
    -  public Clustering getClustering() { return clustering; }
    +  public Clustering getClustering() {
    +    return clustering;
    +  }
     
       @Override
       public Builder toBuilder() {
    @@ -376,13 +369,24 @@ public String toString() {
       public boolean equals(Object obj) {
         return obj == this
             || obj instanceof WriteChannelConfiguration
    -        && Objects.equals(toPb(), ((WriteChannelConfiguration) obj).toPb());
    +            && Objects.equals(toPb(), ((WriteChannelConfiguration) obj).toPb());
       }
     
       @Override
       public int hashCode() {
    -    return Objects.hash(destinationTable, createDisposition, writeDisposition, formatOptions,
    -        nullMarker, maxBadRecords, schema, ignoreUnknownValues, schemaUpdateOptions, autodetect, timePartitioning, clustering);
    +    return Objects.hash(
    +        destinationTable,
    +        createDisposition,
    +        writeDisposition,
    +        formatOptions,
    +        nullMarker,
    +        maxBadRecords,
    +        schema,
    +        ignoreUnknownValues,
    +        schemaUpdateOptions,
    +        autodetect,
    +        timePartitioning,
    +        clustering);
       }
     
       WriteChannelConfiguration setProjectId(String projectId) {
    @@ -403,7 +407,8 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() {
         }
         if (getCsvOptions() != null) {
           CsvOptions csvOptions = getCsvOptions();
    -      loadConfigurationPb.setFieldDelimiter(csvOptions.getFieldDelimiter())
    +      loadConfigurationPb
    +          .setFieldDelimiter(csvOptions.getFieldDelimiter())
               .setAllowJaggedRows(csvOptions.allowJaggedRows())
               .setAllowQuotedNewlines(csvOptions.allowQuotedNewLines())
               .setEncoding(csvOptions.getEncoding())
    @@ -452,32 +457,22 @@ static WriteChannelConfiguration fromPb(
         return new Builder(configurationPb).build();
       }
     
    -
    -  /**
    -   * Creates a builder for a BigQuery Load Configuration given the destination table.
    -   */
    +  /** Creates a builder for a BigQuery Load Configuration given the destination table. */
       public static Builder newBuilder(TableId destinationTable) {
         return new Builder().setDestinationTable(destinationTable);
       }
     
    -
    -  /**
    -   * Creates a builder for a BigQuery Load Configuration given the destination table and format.
    -   */
    +  /** Creates a builder for a BigQuery Load Configuration given the destination table and format. */
       public static Builder newBuilder(TableId destinationTable, FormatOptions format) {
         return newBuilder(destinationTable).setFormatOptions(format);
       }
     
    -  /**
    -   * Returns a BigQuery Load Configuration for the given destination table.
    -   */
    +  /** Returns a BigQuery Load Configuration for the given destination table. */
       public static WriteChannelConfiguration of(TableId destinationTable) {
         return newBuilder(destinationTable).build();
       }
     
    -  /**
    -   * Returns a BigQuery Load Configuration for the given destination table and format.
    -   */
    +  /** Returns a BigQuery Load Configuration for the given destination table and format. */
       public static WriteChannelConfiguration of(TableId destinationTable, FormatOptions format) {
         return newBuilder(destinationTable).setFormatOptions(format).build();
       }
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java
    index 2b0c10a6a982..65f801357f58 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java
    @@ -15,14 +15,15 @@
      */
     
     /**
    - * A client for BigQuery – A fully managed, petabyte scale, low cost enterprise data
    - * warehouse for analytics.
    + * A client for BigQuery – A fully managed, petabyte scale, low cost enterprise data warehouse for
    + * analytics.
      *
      * 

    A simple usage example showing how to create a table if it does not exist and load data into - * it. For the complete source code see - * + * it. For the complete source code see * CreateTableAndLoadData.java. - *

     {@code
    + *
    + * 
    {@code
      * BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
      * TableId tableId = TableId.of("dataset", "table");
      * Table table = bigquery.getTable(tableId);
    @@ -39,7 +40,8 @@
      *   System.out.println("Job completed with errors");
      * } else {
      *   System.out.println("Job succeeded");
    - * }}
    + * } + * }
    * * @see Google Cloud BigQuery */ diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java index e0dd264a01be..7e7a1212d70f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java @@ -20,8 +20,7 @@ import com.google.cloud.spi.ServiceRpcFactory; /** - * An interface for BigQuery RPC factory. - * Implementation will be loaded via {@link java.util.ServiceLoader}. + * An interface for BigQuery RPC factory. Implementation will be loaded via {@link + * java.util.ServiceLoader}. */ -public interface BigQueryRpcFactory extends ServiceRpcFactory { -} +public interface BigQueryRpcFactory extends ServiceRpcFactory {} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index c2b61a6e5346..27a1fe12351d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -81,8 +81,8 @@ Boolean getBoolean(Map options) { /** * Lists the provided project's datasets. Partial information is returned on a dataset - * (datasetReference, friendlyName and id). To get full information use - * {@link #getDataset(String, String, Map)}. + * (datasetReference, friendlyName and id). To get full information use {@link #getDataset(String, + * String, Map)}. * * @throws BigQueryException upon failure */ @@ -140,13 +140,13 @@ Boolean getBoolean(Map options) { /** * Lists the dataset's tables. Partial information is returned on a table (tableReference, - * friendlyName, id and type). To get full information use - * {@link #getTable(String, String, String, Map)}. + * friendlyName, id and type). To get full information use {@link #getTable(String, String, + * String, Map)}. * * @throws BigQueryException upon failure */ - Tuple> listTables(String projectId, String dataset, - Map options); + Tuple> listTables( + String projectId, String dataset, Map options); /** * Delete the requested table. @@ -161,8 +161,8 @@ Tuple> listTables(String projectId, String dataset, * * @throws BigQueryException upon failure */ - TableDataInsertAllResponse insertAll(String projectId, String datasetId, String tableId, - TableDataInsertAllRequest request); + TableDataInsertAllResponse insertAll( + String projectId, String datasetId, String tableId, TableDataInsertAllRequest request); /** * Lists the table's rows. @@ -226,6 +226,11 @@ GetQueryResultsResponse getQueryResults( * Returns {@code null} otherwise * @throws BigQueryException upon failure */ - Job write(String uploadId, byte[] toWrite, int toWriteOffset, long destOffset, int length, + Job write( + String uploadId, + byte[] toWrite, + int toWriteOffset, + long destOffset, + int length, boolean last); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index df7cc5bce1ea..21df417ecc41 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -89,10 +89,11 @@ public HttpBigQueryRpc(BigQueryOptions options) { HttpTransport transport = transportOptions.getHttpTransportFactory().create(); HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); this.options = options; - bigquery = new Bigquery.Builder(transport, new JacksonFactory(), initializer) - .setRootUrl(options.getHost()) - .setApplicationName(options.getApplicationName()) - .build(); + bigquery = + new Bigquery.Builder(transport, new JacksonFactory(), initializer) + .setRootUrl(options.getHost()) + .setApplicationName(options.getApplicationName()) + .build(); } private static BigQueryException translate(IOException exception) { @@ -102,7 +103,8 @@ private static BigQueryException translate(IOException exception) { @Override public Dataset getDataset(String projectId, String datasetId, Map options) { try { - return bigquery.datasets() + return bigquery + .datasets() .get(projectId, datasetId) .setFields(Option.FIELDS.getString(options)) .execute(); @@ -118,13 +120,15 @@ public Dataset getDataset(String projectId, String datasetId, Map opt @Override public Tuple> listDatasets(String projectId, Map options) { try { - DatasetList datasetsList = bigquery.datasets() - .list(projectId) - .setAll(Option.ALL_DATASETS.getBoolean(options)) - .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .execute(); + DatasetList datasetsList = + bigquery + .datasets() + .list(projectId) + .setAll(Option.ALL_DATASETS.getBoolean(options)) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .execute(); Iterable datasets = datasetsList.getDatasets(); return Tuple.of( datasetsList.getNextPageToken(), @@ -139,7 +143,9 @@ public Tuple> listDatasets(String projectId, Map options) { try { - return bigquery.datasets().insert(dataset.getDatasetReference().getProjectId(), dataset) + return bigquery + .datasets() + .insert(dataset.getDatasetReference().getProjectId(), dataset) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { @@ -153,7 +159,8 @@ public Table create(Table table, Map options) { // unset the type, as it is output only table.setType(null); TableReference reference = table.getTableReference(); - return bigquery.tables() + return bigquery + .tables() .insert(reference.getProjectId(), reference.getDatasetId(), table) .setFields(Option.FIELDS.getString(options)) .execute(); @@ -165,9 +172,12 @@ public Table create(Table table, Map options) { @Override public Job create(Job job, Map options) { try { - String projectId = job.getJobReference() != null - ? job.getJobReference().getProjectId() : this.options.getProjectId(); - return bigquery.jobs() + String projectId = + job.getJobReference() != null + ? job.getJobReference().getProjectId() + : this.options.getProjectId(); + return bigquery + .jobs() .insert(projectId, job) .setFields(Option.FIELDS.getString(options)) .execute(); @@ -179,7 +189,9 @@ public Job create(Job job, Map options) { @Override public boolean deleteDataset(String projectId, String datasetId, Map options) { try { - bigquery.datasets().delete(projectId, datasetId) + bigquery + .datasets() + .delete(projectId, datasetId) .setDeleteContents(Option.DELETE_CONTENTS.getBoolean(options)) .execute(); return true; @@ -196,7 +208,8 @@ public boolean deleteDataset(String projectId, String datasetId, Map public Dataset patch(Dataset dataset, Map options) { try { DatasetReference reference = dataset.getDatasetReference(); - return bigquery.datasets() + return bigquery + .datasets() .patch(reference.getProjectId(), reference.getDatasetId(), dataset) .setFields(Option.FIELDS.getString(options)) .execute(); @@ -211,7 +224,8 @@ public Table patch(Table table, Map options) { // unset the type, as it is output only table.setType(null); TableReference reference = table.getTableReference(); - return bigquery.tables() + return bigquery + .tables() .patch(reference.getProjectId(), reference.getDatasetId(), reference.getTableId(), table) .setFields(Option.FIELDS.getString(options)) .execute(); @@ -221,10 +235,11 @@ public Table patch(Table table, Map options) { } @Override - public Table getTable(String projectId, String datasetId, String tableId, - Map options) { + public Table getTable( + String projectId, String datasetId, String tableId, Map options) { try { - return bigquery.tables() + return bigquery + .tables() .get(projectId, datasetId, tableId) .setFields(Option.FIELDS.getString(options)) .execute(); @@ -238,17 +253,21 @@ public Table getTable(String projectId, String datasetId, String tableId, } @Override - public Tuple> listTables(String projectId, String datasetId, - Map options) { + public Tuple> listTables( + String projectId, String datasetId, Map options) { try { - TableList tableList = bigquery.tables() - .list(projectId, datasetId) - .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .execute(); + TableList tableList = + bigquery + .tables() + .list(projectId, datasetId) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .execute(); Iterable tables = tableList.getTables(); - return Tuple.of(tableList.getNextPageToken(), - Iterables.transform(tables != null ? tables : ImmutableList.of(), + return Tuple.of( + tableList.getNextPageToken(), + Iterables.transform( + tables != null ? tables : ImmutableList.of(), new Function() { @Override public Table apply(TableList.Tables tablePb) { @@ -280,8 +299,8 @@ public boolean deleteTable(String projectId, String datasetId, String tableId) { } @Override - public TableDataInsertAllResponse insertAll(String projectId, String datasetId, String tableId, - TableDataInsertAllRequest request) { + public TableDataInsertAllResponse insertAll( + String projectId, String datasetId, String tableId, TableDataInsertAllRequest request) { try { return bigquery.tabledata().insertAll(projectId, datasetId, tableId, request).execute(); } catch (IOException ex) { @@ -329,23 +348,27 @@ public Job getJob(String projectId, String jobId, String location, Map> listJobs(String projectId, Map options) { try { - JobList jobsList = bigquery.jobs() - .list(projectId) - .setAllUsers(Option.ALL_USERS.getBoolean(options)) - .setFields(Option.FIELDS.getString(options)) - .setStateFilter(Option.STATE_FILTER.>get(options)) - .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .setProjection(DEFAULT_PROJECTION) - .execute(); + JobList jobsList = + bigquery + .jobs() + .list(projectId) + .setAllUsers(Option.ALL_USERS.getBoolean(options)) + .setFields(Option.FIELDS.getString(options)) + .setStateFilter(Option.STATE_FILTER.>get(options)) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .setProjection(DEFAULT_PROJECTION) + .execute(); Iterable jobs = jobsList.getJobs(); - return Tuple.of(jobsList.getNextPageToken(), - Iterables.transform(jobs != null ? jobs : ImmutableList.of(), + return Tuple.of( + jobsList.getNextPageToken(), + Iterables.transform( + jobs != null ? jobs : ImmutableList.of(), new Function() { @Override public Job apply(JobList.Jobs jobPb) { - JobStatus statusPb = jobPb.getStatus() != null - ? jobPb.getStatus() : new JobStatus(); + JobStatus statusPb = + jobPb.getStatus() != null ? jobPb.getStatus() : new JobStatus(); if (statusPb.getState() == null) { statusPb.setState(jobPb.getState()); } @@ -421,15 +444,22 @@ public String open(Job loadJob) { } @Override - public Job write(String uploadId, byte[] toWrite, int toWriteOffset, long destOffset, int length, + public Job write( + String uploadId, + byte[] toWrite, + int toWriteOffset, + long destOffset, + int length, boolean last) { try { if (length == 0) { return null; } GenericUrl url = new GenericUrl(uploadId); - HttpRequest httpRequest = bigquery.getRequestFactory() - .buildPutRequest(url, new ByteArrayContent(null, toWrite, toWriteOffset, length)); + HttpRequest httpRequest = + bigquery + .getRequestFactory() + .buildPutRequest(url, new ByteArrayContent(null, toWrite, toWriteOffset, length)); httpRequest.setParser(bigquery.getObjectParser()); long limit = destOffset + length; StringBuilder range = new StringBuilder("bytes "); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java index 1ea822216f9a..f28c835d61f3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java @@ -31,15 +31,12 @@ /** * Utility to create a remote BigQuery configuration for testing. BigQuery options can be obtained - * via the {@link #getOptions()} method. Returned options have custom - * {@link BigQueryOptions#getRetrySettings()}: {@link RetrySettings#getMaxAttempts()} is - * {@code 10}, - * {@link RetrySettings#getMaxRetryDelay()} is {@code 30000}, - * {@link RetrySettings#getTotalTimeout()} is {@code 120000} and - * {@link RetrySettings#getInitialRetryDelay()} is {@code 250}. - * {@link HttpTransportOptions#getConnectTimeout()} and - * {@link HttpTransportOptions#getReadTimeout()} are both - * set to {@code 60000}. + * via the {@link #getOptions()} method. Returned options have custom {@link + * BigQueryOptions#getRetrySettings()}: {@link RetrySettings#getMaxAttempts()} is {@code 10}, {@link + * RetrySettings#getMaxRetryDelay()} is {@code 30000}, {@link RetrySettings#getTotalTimeout()} is + * {@code 120000} and {@link RetrySettings#getInitialRetryDelay()} is {@code 250}. {@link + * HttpTransportOptions#getConnectTimeout()} and {@link HttpTransportOptions#getReadTimeout()} are + * both set to {@code 60000}. */ public class RemoteBigQueryHelper { @@ -52,10 +49,7 @@ private RemoteBigQueryHelper(BigQueryOptions options) { this.options = options; } - - /** - * Returns a {@link BigQueryOptions} object to be used for testing. - */ + /** Returns a {@link BigQueryOptions} object to be used for testing. */ public BigQueryOptions getOptions() { return options; } @@ -72,9 +66,7 @@ public static boolean forceDelete(BigQuery bigquery, String dataset) { return bigquery.delete(dataset, BigQuery.DatasetDeleteOption.deleteContents()); } - /** - * Returns a dataset name generated using a random UUID. - */ + /** Returns a dataset name generated using a random UUID. */ public static String generateDatasetName() { return DATASET_NAME_PREFIX + UUID.randomUUID().toString().replace('-', '_'); } @@ -92,14 +84,19 @@ public static RemoteBigQueryHelper create(String projectId, InputStream keyStrea throws BigQueryHelperException { try { HttpTransportOptions transportOptions = BigQueryOptions.getDefaultHttpTransportOptions(); - transportOptions = transportOptions.toBuilder().setConnectTimeout(connectTimeout).setReadTimeout(connectTimeout) - .build(); - BigQueryOptions bigqueryOptions = BigQueryOptions.newBuilder() - .setCredentials(ServiceAccountCredentials.fromStream(keyStream)) - .setProjectId(projectId) - .setRetrySettings(retrySettings()) - .setTransportOptions(transportOptions) - .build(); + transportOptions = + transportOptions + .toBuilder() + .setConnectTimeout(connectTimeout) + .setReadTimeout(connectTimeout) + .build(); + BigQueryOptions bigqueryOptions = + BigQueryOptions.newBuilder() + .setCredentials(ServiceAccountCredentials.fromStream(keyStream)) + .setProjectId(projectId) + .setRetrySettings(retrySettings()) + .setTransportOptions(transportOptions) + .build(); return new RemoteBigQueryHelper(bigqueryOptions); } catch (IOException ex) { if (log.isLoggable(Level.WARNING)) { @@ -115,12 +112,17 @@ public static RemoteBigQueryHelper create(String projectId, InputStream keyStrea */ public static RemoteBigQueryHelper create() { HttpTransportOptions transportOptions = BigQueryOptions.getDefaultHttpTransportOptions(); - transportOptions = transportOptions.toBuilder().setConnectTimeout(connectTimeout).setReadTimeout(connectTimeout) - .build(); - BigQueryOptions bigqueryOptions = BigQueryOptions.newBuilder() - .setRetrySettings(retrySettings()) - .setTransportOptions(transportOptions) - .build(); + transportOptions = + transportOptions + .toBuilder() + .setConnectTimeout(connectTimeout) + .setReadTimeout(connectTimeout) + .build(); + BigQueryOptions bigqueryOptions = + BigQueryOptions.newBuilder() + .setRetrySettings(retrySettings()) + .setTransportOptions(transportOptions) + .build(); return new RemoteBigQueryHelper(bigqueryOptions); } @@ -130,7 +132,8 @@ private static RetrySettings retrySettings() { long initialRetryDelay = 250L; long maxRetryDelay = 30000L; long totalTimeOut = 120000L; - return RetrySettings.newBuilder().setMaxAttempts(maxAttempts) + return RetrySettings.newBuilder() + .setMaxAttempts(maxAttempts) .setMaxRetryDelay(Duration.ofMillis(maxRetryDelay)) .setTotalTimeout(Duration.ofMillis(totalTimeOut)) .setInitialRetryDelay(Duration.ofMillis(initialRetryDelay)) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java index 00eeed9dad04..6e5b32419d99 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java @@ -20,19 +20,22 @@ *

    A simple usage example: * *

    Before the test: - *

     {@code
    + *
    + * 
    {@code
      * RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create();
      * BigQuery bigquery = bigqueryHelper.getOptions().getService();
      * String dataset = RemoteBigQueryHelper.generateDatasetName();
      * bigquery.create(DatasetInfo.newBuilder(dataset).build());
    - * } 
    + * }
    * *

    After the test: - *

     {@code
    + *
    + * 
    {@code
      * RemoteBigQueryHelper.forceDelete(bigquery, DATASET);
      * }
    * - * @see + * @see * Google Cloud Java tools for testing */ package com.google.cloud.bigquery.testing; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java index c9a3d82bdd53..52a8cfc8c9e4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java @@ -26,7 +26,6 @@ import com.google.cloud.bigquery.Acl.Role; import com.google.cloud.bigquery.Acl.User; import com.google.cloud.bigquery.Acl.View; - import org.junit.Test; public class AclTest { @@ -40,7 +39,6 @@ public void testDomainEntity() { assertEquals(entity, Entity.fromPb(pb)); } - @Test public void testGroupEntity() { Group entity = new Group("g1"); @@ -50,7 +48,6 @@ public void testGroupEntity() { assertEquals(entity, Entity.fromPb(pb)); } - @Test public void testSpecialGroupEntity() { Group entity = Group.ofAllAuthenticatedUsers(); @@ -63,7 +60,6 @@ public void testSpecialGroupEntity() { assertEquals("projectOwners", entity.getIdentifier()); } - @Test public void testUserEntity() { User entity = new User("u1"); @@ -73,7 +69,6 @@ public void testUserEntity() { assertEquals(entity, Entity.fromPb(pb)); } - @Test public void testViewEntity() { TableId viewId = TableId.of("project", "dataset", "view"); @@ -84,7 +79,6 @@ public void testViewEntity() { assertEquals(entity, Entity.fromPb(pb)); } - @Test public void testOf() { Acl acl = Acl.of(Group.ofAllAuthenticatedUsers(), Role.READER); @@ -98,4 +92,3 @@ public void testOf() { assertEquals(null, acl.getRole()); } } - diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java index 295fe310885d..7cd737cf4b88 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java @@ -43,7 +43,6 @@ public void testConstructor() { assertEquals(MESSAGE, ERROR_INCOMPLETE.getMessage()); } - @Test public void testToAndFromPb() { compareBigQueryError(ERROR, BigQueryError.fromPb(ERROR.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java index 6554c27578ec..7fb68ef4dd14 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java @@ -98,9 +98,8 @@ public void testBigQueryException() { assertTrue(exception.isRetryable()); assertSame(cause, exception.getCause()); - HttpResponseException httpResponseException = - new HttpResponseException.Builder(404, "Service Unavailable", new HttpHeaders()).build(); + new HttpResponseException.Builder(404, "Service Unavailable", new HttpHeaders()).build(); exception = new BigQueryException(httpResponseException); assertEquals(404, exception.getCode()); assertFalse(exception.isRetryable()); @@ -124,7 +123,6 @@ public void testBigQueryException() { exception = new BigQueryException(httpResponseException); assertEquals(500, exception.getCode()); assertTrue(exception.isRetryable()); - } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index a12a92860d45..34498fa21a58 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -282,11 +282,10 @@ public class BigQueryImplTest { private BigQueryRpc bigqueryRpcMock; private BigQuery bigquery; - @Rule - public ExpectedException thrown = ExpectedException.none(); + @Rule public ExpectedException thrown = ExpectedException.none(); - private BigQueryOptions createBigQueryOptionsForProject(String project, - BigQueryRpcFactory rpcFactory) { + private BigQueryOptions createBigQueryOptionsForProject( + String project, BigQueryRpcFactory rpcFactory) { return BigQueryOptions.newBuilder() .setProjectId(project) .setServiceRpcFactory(rpcFactory) @@ -331,7 +330,7 @@ public void testCreateDataset() { public void testCreateDatasetWithSelectedFields() { Capture> capturedOptions = Capture.newInstance(); EasyMock.expect( - bigqueryRpcMock.create(eq(DATASET_INFO_WITH_PROJECT.toPb()), capture(capturedOptions))) + bigqueryRpcMock.create(eq(DATASET_INFO_WITH_PROJECT.toPb()), capture(capturedOptions))) .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); @@ -524,8 +523,8 @@ public void testUpdateDatasetWithSelectedFields() { DatasetInfo updatedDatasetInfoWithProject = DATASET_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); EasyMock.expect( - bigqueryRpcMock.patch( - eq(updatedDatasetInfoWithProject.toPb()), capture(capturedOptions))) + bigqueryRpcMock.patch( + eq(updatedDatasetInfoWithProject.toPb()), capture(capturedOptions))) .andReturn(updatedDatasetInfoWithProject.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); @@ -570,7 +569,7 @@ public void testCreateTableWithoutProject() { public void testCreateTableWithSelectedFields() { Capture> capturedOptions = Capture.newInstance(); EasyMock.expect( - bigqueryRpcMock.create(eq(TABLE_INFO_WITH_PROJECT.toPb()), capture(capturedOptions))) + bigqueryRpcMock.create(eq(TABLE_INFO_WITH_PROJECT.toPb()), capture(capturedOptions))) .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); @@ -624,8 +623,7 @@ public void testGetTableFromTableIdWithoutProject() { EasyMock.expect(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .andReturn(tableInfo.toPb()); EasyMock.replay(bigqueryRpcMock); - BigQueryOptions bigQueryOptions = - createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); + BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.getTable(tableId); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); @@ -635,7 +633,7 @@ public void testGetTableFromTableIdWithoutProject() { public void testGetTableWithSelectedFields() { Capture> capturedOptions = Capture.newInstance(); EasyMock.expect( - bigqueryRpcMock.getTable(eq(PROJECT), eq(DATASET), eq(TABLE), capture(capturedOptions))) + bigqueryRpcMock.getTable(eq(PROJECT), eq(DATASET), eq(TABLE), capture(capturedOptions))) .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); @@ -737,7 +735,8 @@ public void testDeleteTableFromTableIdWithProject() { TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); EasyMock.expect(bigqueryRpcMock.deleteTable(OTHER_PROJECT, DATASET, TABLE)).andReturn(true); EasyMock.replay(bigqueryRpcMock); - BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); assertTrue(bigquery.delete(tableId)); } @@ -749,7 +748,7 @@ public void testDeleteTableFromTableIdWithoutProject() { EasyMock.replay(bigqueryRpcMock); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); - assertTrue(bigquery.delete(tableId)); + assertTrue(bigquery.delete(tableId)); } @Test @@ -759,7 +758,8 @@ public void testUpdateTable() { EasyMock.expect(bigqueryRpcMock.patch(updatedTableInfo.toPb(), EMPTY_RPC_OPTIONS)) .andReturn(updatedTableInfo.toPb()); EasyMock.replay(bigqueryRpcMock); - BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.update(updatedTableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfo)), table); @@ -786,7 +786,7 @@ public void testUpdateTableWithSelectedFields() { TableInfo updatedTableInfoWithProject = TABLE_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); EasyMock.expect( - bigqueryRpcMock.patch(eq(updatedTableInfoWithProject.toPb()), capture(capturedOptions))) + bigqueryRpcMock.patch(eq(updatedTableInfoWithProject.toPb()), capture(capturedOptions))) .andReturn(updatedTableInfoWithProject.toPb()); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); @@ -887,7 +887,8 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { EasyMock.expect(bigqueryRpcMock.insertAll(OTHER_PROJECT, DATASET, TABLE, requestPb)) .andReturn(responsePb); EasyMock.replay(bigqueryRpcMock); - BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); InsertAllResponse response = bigquery.insertAll(request); assertNotNull(response.getErrorsFor(0L)); @@ -924,7 +925,8 @@ public void testListTableDataFromTableIdWithProject() { EasyMock.expect(bigqueryRpcMock.listTableData(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .andReturn(TABLE_DATA_PB); EasyMock.replay(bigqueryRpcMock); - BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Page page = bigquery.listTableData(tableId); assertEquals(CURSOR, page.getNextPageToken()); @@ -964,7 +966,7 @@ public void testCreateJobSuccess() { Capture jobCapture = EasyMock.newCapture(); EasyMock.expect( - bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) + bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) .andReturn(newJobPb()); EasyMock.replay(bigqueryRpcMock); @@ -977,9 +979,9 @@ public void testCreateJobSuccess() { public void testCreateJobWithSelectedFields() { Capture> capturedOptions = Capture.newInstance(); EasyMock.expect( - bigqueryRpcMock.create( - EasyMock.anyObject(com.google.api.services.bigquery.model.Job.class), - EasyMock.capture(capturedOptions))) + bigqueryRpcMock.create( + EasyMock.anyObject(com.google.api.services.bigquery.model.Job.class), + EasyMock.capture(capturedOptions))) .andReturn(newJobPb()); EasyMock.replay(bigqueryRpcMock); @@ -1003,7 +1005,7 @@ public void testCreateJobNoGet() { Capture jobCapture = EasyMock.newCapture(); EasyMock.expect( - bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) + bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) .andThrow(new BigQueryException(409, "already exists, for some reason")); EasyMock.replay(bigqueryRpcMock); @@ -1030,14 +1032,14 @@ public JobId get() { Capture jobCapture = EasyMock.newCapture(); EasyMock.expect( - bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) + bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) .andThrow(new BigQueryException(409, "already exists, for some reason")); EasyMock.expect( - bigqueryRpcMock.getJob( - anyString(), - EasyMock.eq(id), - EasyMock.eq((String) null), - EasyMock.eq(EMPTY_RPC_OPTIONS))) + bigqueryRpcMock.getJob( + anyString(), + EasyMock.eq(id), + EasyMock.eq((String) null), + EasyMock.eq(EMPTY_RPC_OPTIONS))) .andReturn(newJobPb()); EasyMock.replay(bigqueryRpcMock); @@ -1235,16 +1237,16 @@ public void testQueryRequestCompleted() throws InterruptedException { .setSchema(TABLE_SCHEMA.toPb()); EasyMock.expect( - bigqueryRpcMock.create( - JOB_INFO.toPb(), Collections.emptyMap())) + bigqueryRpcMock.create( + JOB_INFO.toPb(), Collections.emptyMap())) .andReturn(jobResponsePb); EasyMock.expect( - bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .andReturn(responsePb); EasyMock.expect( - bigqueryRpcMock.listTableData( - PROJECT, DATASET, TABLE, Collections.emptyMap())) + bigqueryRpcMock.listTableData( + PROJECT, DATASET, TABLE, Collections.emptyMap())) .andReturn( new TableDataList() .setPageToken("") @@ -1284,7 +1286,8 @@ public void testQueryRequestCompletedOptions() throws InterruptedException { .setSchema(TABLE_SCHEMA.toPb()); EasyMock.expect( - bigqueryRpcMock.create(JOB_INFO.toPb(), Collections.emptyMap())) + bigqueryRpcMock.create( + JOB_INFO.toPb(), Collections.emptyMap())) .andReturn(jobResponsePb); Map optionMap = Maps.newEnumMap(BigQueryRpc.Option.class); @@ -1292,8 +1295,8 @@ public void testQueryRequestCompletedOptions() throws InterruptedException { optionMap.put(pageSizeOption.getRpcOption(), pageSizeOption.getValue()); EasyMock.expect( - bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .andReturn(responsePb); EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, optionMap)) .andReturn( @@ -1325,9 +1328,7 @@ public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedExcepti jobResponsePb1.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); GetQueryResultsResponse responsePb1 = - new GetQueryResultsResponse() - .setJobReference(queryJob.toPb()) - .setJobComplete(false); + new GetQueryResultsResponse().setJobReference(queryJob.toPb()).setJobComplete(false); GetQueryResultsResponse responsePb2 = new GetQueryResultsResponse() @@ -1341,24 +1342,23 @@ public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedExcepti .setSchema(TABLE_SCHEMA.toPb()); EasyMock.expect( - bigqueryRpcMock.create( - JOB_INFO.toPb(), Collections.emptyMap())) + bigqueryRpcMock.create( + JOB_INFO.toPb(), Collections.emptyMap())) .andReturn(jobResponsePb1); - EasyMock.expect( - bigqueryRpcMock.getJob(eq(PROJECT), eq(JOB), anyString(), anyObject(Map.class))) + EasyMock.expect(bigqueryRpcMock.getJob(eq(PROJECT), eq(JOB), anyString(), anyObject(Map.class))) .andReturn(jobResponsePb1); EasyMock.expect( - bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .andReturn(responsePb1); EasyMock.expect( - bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .andReturn(responsePb2); EasyMock.expect( - bigqueryRpcMock.listTableData( - PROJECT, DATASET, TABLE, Collections.emptyMap())) + bigqueryRpcMock.listTableData( + PROJECT, DATASET, TABLE, Collections.emptyMap())) .andReturn( new TableDataList() .setPageToken("") diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java index 871cd4219cdb..e0831187eef5 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java @@ -23,13 +23,11 @@ import org.junit.rules.ExpectedException; public class BigQueryOptionsTest { - @Rule - public ExpectedException thrown = ExpectedException.none(); + @Rule public ExpectedException thrown = ExpectedException.none(); @Test public void testInvalidTransport() { thrown.expect(IllegalArgumentException.class); BigQueryOptions.newBuilder().setTransportOptions(EasyMock.createMock(TransportOptions.class)); } - } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java index bcf886ecaed9..51d27b7935fc 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java @@ -22,32 +22,36 @@ public class BigtableOptionsTest { - private static final BigtableColumn COL1 = BigtableColumn.newBuilder() - .setQualifierEncoded("aaa") - .setFieldName("field1") - .setOnlyReadLatest(true) - .setEncoding("BINARY") - .setType("BYTES") - .build(); - private static final BigtableColumn COL2 = BigtableColumn.newBuilder() - .setQualifierEncoded("bbb") - .setFieldName("field2") - .setOnlyReadLatest(true) - .setEncoding("TEXT") - .setType("STRING") - .build(); - private static final BigtableColumnFamily TESTFAMILY = BigtableColumnFamily.newBuilder() - .setFamilyID("fooFamily") - .setEncoding("TEXT") - .setOnlyReadLatest(true) - .setType("INTEGER") - .setColumns(ImmutableList.of(COL1, COL2)) - .build(); - private static final BigtableOptions OPTIONS = BigtableOptions.newBuilder() - .setIgnoreUnspecifiedColumnFamilies(true) - .setReadRowkeyAsString(true) - .setColumnFamilies(ImmutableList.of(TESTFAMILY)) - .build(); + private static final BigtableColumn COL1 = + BigtableColumn.newBuilder() + .setQualifierEncoded("aaa") + .setFieldName("field1") + .setOnlyReadLatest(true) + .setEncoding("BINARY") + .setType("BYTES") + .build(); + private static final BigtableColumn COL2 = + BigtableColumn.newBuilder() + .setQualifierEncoded("bbb") + .setFieldName("field2") + .setOnlyReadLatest(true) + .setEncoding("TEXT") + .setType("STRING") + .build(); + private static final BigtableColumnFamily TESTFAMILY = + BigtableColumnFamily.newBuilder() + .setFamilyID("fooFamily") + .setEncoding("TEXT") + .setOnlyReadLatest(true) + .setType("INTEGER") + .setColumns(ImmutableList.of(COL1, COL2)) + .build(); + private static final BigtableOptions OPTIONS = + BigtableOptions.newBuilder() + .setIgnoreUnspecifiedColumnFamilies(true) + .setReadRowkeyAsString(true) + .setColumnFamilies(ImmutableList.of(TESTFAMILY)) + .build(); @Test public void testConstructors() { @@ -94,15 +98,14 @@ private void compareBigtableColumn(BigtableColumn expected, BigtableColumn value assertThat(expected.getType()).isEqualTo(value.getType()); } - private void compareBigtableColumnFamily(BigtableColumnFamily expected, - BigtableColumnFamily value) { + private void compareBigtableColumnFamily( + BigtableColumnFamily expected, BigtableColumnFamily value) { assertThat(expected).isEqualTo(value); assertThat(expected.getFamilyID()).isEqualTo(value.getFamilyID()); assertThat(expected.getOnlyReadLatest()).isEqualTo(value.getOnlyReadLatest()); assertThat(expected.getColumns()).isEqualTo(value.getColumns()); assertThat(expected.getEncoding()).isEqualTo(value.getEncoding()); assertThat(expected.getType()).isEqualTo(value.getType()); - } private void compareBigtableOptions(BigtableOptions expected, BigtableOptions value) { @@ -112,4 +115,4 @@ private void compareBigtableOptions(BigtableOptions expected, BigtableOptions va assertThat(expected.getReadRowkeyAsString()).isEqualTo(value.getReadRowkeyAsString()); assertThat(expected.getColumnFamilies()).isEqualTo(value.getColumnFamilies()); } -} \ No newline at end of file +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java index f7d111f987b0..6e155b0f33d0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java @@ -23,17 +23,15 @@ import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.common.collect.ImmutableList; - -import org.junit.Test; - import java.util.List; +import org.junit.Test; public class CopyJobConfigurationTest { private static final TableId SOURCE_TABLE = TableId.of("dataset", "sourceTable"); - private static final List SOURCE_TABLES = ImmutableList.of( - TableId.of("dataset", "sourceTable1"), - TableId.of("dataset", "sourceTable2")); + private static final List SOURCE_TABLES = + ImmutableList.of( + TableId.of("dataset", "sourceTable1"), TableId.of("dataset", "sourceTable2")); private static final TableId DESTINATION_TABLE = TableId.of("dataset", "destinationTable"); private static final CreateDisposition CREATE_DISPOSITION = CreateDisposition.CREATE_IF_NEEDED; private static final WriteDisposition WRITE_DISPOSITION = WriteDisposition.WRITE_APPEND; @@ -54,11 +52,14 @@ public class CopyJobConfigurationTest { @Test public void testToBuilder() { compareCopyJobConfiguration(COPY_JOB_CONFIGURATION, COPY_JOB_CONFIGURATION.toBuilder().build()); - compareCopyJobConfiguration(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES, + compareCopyJobConfiguration( + COPY_JOB_CONFIGURATION_MULTIPLE_TABLES, COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.toBuilder().build()); - CopyJobConfiguration jobConfiguration = COPY_JOB_CONFIGURATION.toBuilder() - .setDestinationTable(TableId.of("dataset", "newTable")) - .build(); + CopyJobConfiguration jobConfiguration = + COPY_JOB_CONFIGURATION + .toBuilder() + .setDestinationTable(TableId.of("dataset", "newTable")) + .build(); assertEquals("newTable", jobConfiguration.getDestinationTable().getTable()); jobConfiguration = jobConfiguration.toBuilder().setDestinationTable(DESTINATION_TABLE).build(); compareCopyJobConfiguration(COPY_JOB_CONFIGURATION, jobConfiguration); @@ -93,7 +94,6 @@ public void testBuilder() { assertEquals(WRITE_DISPOSITION, COPY_JOB_CONFIGURATION.getWriteDisposition()); } - @Test public void testToPbAndFromPb() { assertNotNull(COPY_JOB_CONFIGURATION.toPb().getCopy()); @@ -102,9 +102,10 @@ public void testToPbAndFromPb() { assertNull(COPY_JOB_CONFIGURATION.toPb().getQuery()); assertNull(COPY_JOB_CONFIGURATION.toPb().getCopy().getSourceTables()); assertNull(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.toPb().getCopy().getSourceTable()); - compareCopyJobConfiguration(COPY_JOB_CONFIGURATION, - CopyJobConfiguration.fromPb(COPY_JOB_CONFIGURATION.toPb())); - compareCopyJobConfiguration(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES, + compareCopyJobConfiguration( + COPY_JOB_CONFIGURATION, CopyJobConfiguration.fromPb(COPY_JOB_CONFIGURATION.toPb())); + compareCopyJobConfiguration( + COPY_JOB_CONFIGURATION_MULTIPLE_TABLES, CopyJobConfiguration.fromPb(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.toPb())); CopyJobConfiguration jobConfiguration = CopyJobConfiguration.of(DESTINATION_TABLE, SOURCE_TABLES); @@ -127,8 +128,8 @@ public void testGetType() { assertEquals(JobConfiguration.Type.COPY, COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getType()); } - private void compareCopyJobConfiguration(CopyJobConfiguration expected, - CopyJobConfiguration value) { + private void compareCopyJobConfiguration( + CopyJobConfiguration expected, CopyJobConfiguration value) { assertEquals(expected, value); assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.toString(), value.toString()); @@ -136,6 +137,8 @@ private void compareCopyJobConfiguration(CopyJobConfiguration expected, assertEquals(expected.getSourceTables(), value.getSourceTables()); assertEquals(expected.getCreateDisposition(), value.getCreateDisposition()); assertEquals(expected.getWriteDisposition(), value.getWriteDisposition()); - assertEquals(expected.getDestinationEncryptionConfiguration(), value.getDestinationEncryptionConfiguration()); + assertEquals( + expected.getDestinationEncryptionConfiguration(), + value.getDestinationEncryptionConfiguration()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java index 90be92171eef..21ca11fdfce6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java @@ -18,10 +18,9 @@ import static org.junit.Assert.assertEquals; -import org.junit.Test; - import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; +import org.junit.Test; public class CsvOptionsTest { @@ -31,21 +30,20 @@ public class CsvOptionsTest { private static final String FIELD_DELIMITER = ","; private static final String QUOTE = "\""; private static final long SKIP_LEADING_ROWS = 42L; - private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder() - .setAllowJaggedRows(ALLOW_JAGGED_ROWS) - .setAllowQuotedNewLines(ALLOW_QUOTED_NEWLINE) - .setEncoding(ENCODING) - .setFieldDelimiter(FIELD_DELIMITER) - .setQuote(QUOTE) - .setSkipLeadingRows(SKIP_LEADING_ROWS) - .build(); + private static final CsvOptions CSV_OPTIONS = + CsvOptions.newBuilder() + .setAllowJaggedRows(ALLOW_JAGGED_ROWS) + .setAllowQuotedNewLines(ALLOW_QUOTED_NEWLINE) + .setEncoding(ENCODING) + .setFieldDelimiter(FIELD_DELIMITER) + .setQuote(QUOTE) + .setSkipLeadingRows(SKIP_LEADING_ROWS) + .build(); @Test public void testToBuilder() { compareCsvOptions(CSV_OPTIONS, CSV_OPTIONS.toBuilder().build()); - CsvOptions csvOptions = CSV_OPTIONS.toBuilder() - .setFieldDelimiter(";") - .build(); + CsvOptions csvOptions = CSV_OPTIONS.toBuilder().setFieldDelimiter(";").build(); assertEquals(";", csvOptions.getFieldDelimiter()); csvOptions = csvOptions.toBuilder().setFieldDelimiter(",").build(); compareCsvOptions(CSV_OPTIONS, csvOptions); @@ -68,7 +66,6 @@ public void testBuilder() { assertEquals(SKIP_LEADING_ROWS, (long) CSV_OPTIONS.getSkipLeadingRows()); } - @Test public void testToAndFromPb() { compareCsvOptions(CSV_OPTIONS, CsvOptions.fromPb(CSV_OPTIONS.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java index d90c3acdf103..bacf7b2b0e42 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java @@ -33,7 +33,6 @@ public void testOf() { assertEquals("dataset", DATASET_COMPLETE.getDataset()); } - @Test public void testEquals() { compareDatasetIds(DATASET, DatasetId.of("dataset")); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java index 856bca62ccd1..b9f9ade0065a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -28,15 +28,18 @@ public class DatasetInfoTest { - private static final List ACCESS_RULES = ImmutableList.of( - Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), - Acl.of(new Acl.View(TableId.of("dataset", "table")))); - private static final List ACCESS_RULES_COMPLETE = ImmutableList.of( - Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), - Acl.of(new Acl.View(TableId.of("project", "dataset", "table")))); - private static final Map LABELS = ImmutableMap.of( - "example-label1", "example-value1", - "example-label2", "example-value2"); + private static final List ACCESS_RULES = + ImmutableList.of( + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), + Acl.of(new Acl.View(TableId.of("dataset", "table")))); + private static final List ACCESS_RULES_COMPLETE = + ImmutableList.of( + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), + Acl.of(new Acl.View(TableId.of("project", "dataset", "table")))); + private static final Map LABELS = + ImmutableMap.of( + "example-label1", "example-value1", + "example-label2", "example-value2"); private static final Long CREATION_TIME = System.currentTimeMillis(); private static final Long DEFAULT_TABLE_EXPIRATION = CREATION_TIME + 100; private static final String DESCRIPTION = "description"; @@ -48,31 +51,36 @@ public class DatasetInfoTest { private static final String SELF_LINK = "http://bigquery/p/d"; private static final DatasetId DATASET_ID = DatasetId.of("dataset"); private static final DatasetId DATASET_ID_COMPLETE = DatasetId.of("project", "dataset"); - private static final DatasetInfo DATASET_INFO = DatasetInfo.newBuilder(DATASET_ID) - .setAcl(ACCESS_RULES) - .setCreationTime(CREATION_TIME) - .setDefaultTableLifetime(DEFAULT_TABLE_EXPIRATION) - .setDescription(DESCRIPTION) - .setEtag(ETAG) - .setFriendlyName(FRIENDLY_NAME) - .setGeneratedId(GENERATED_ID) - .setLastModified(LAST_MODIFIED) - .setLocation(LOCATION) - .setSelfLink(SELF_LINK) - .setLabels(LABELS) - .build(); - private static final DatasetInfo DATASET_INFO_COMPLETE = DATASET_INFO.toBuilder() - .setDatasetId(DATASET_ID_COMPLETE) - .setAcl(ACCESS_RULES_COMPLETE) - .build(); + private static final DatasetInfo DATASET_INFO = + DatasetInfo.newBuilder(DATASET_ID) + .setAcl(ACCESS_RULES) + .setCreationTime(CREATION_TIME) + .setDefaultTableLifetime(DEFAULT_TABLE_EXPIRATION) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModified(LAST_MODIFIED) + .setLocation(LOCATION) + .setSelfLink(SELF_LINK) + .setLabels(LABELS) + .build(); + private static final DatasetInfo DATASET_INFO_COMPLETE = + DATASET_INFO + .toBuilder() + .setDatasetId(DATASET_ID_COMPLETE) + .setAcl(ACCESS_RULES_COMPLETE) + .build(); @Test public void testToBuilder() { compareDatasets(DATASET_INFO, DATASET_INFO.toBuilder().build()); - DatasetInfo datasetInfo = DATASET_INFO.toBuilder() - .setDatasetId(DatasetId.of("dataset2")) - .setDescription("description2") - .build(); + DatasetInfo datasetInfo = + DATASET_INFO + .toBuilder() + .setDatasetId(DatasetId.of("dataset2")) + .setDescription("description2") + .build(); assertEquals(DatasetId.of("dataset2"), datasetInfo.getDatasetId()); assertEquals("description2", datasetInfo.getDescription()); datasetInfo = @@ -114,7 +122,6 @@ public void testBuilder() { assertEquals(LABELS, DATASET_INFO_COMPLETE.getLabels()); } - @Test public void testOf() { DatasetInfo datasetInfo = DatasetInfo.of(DATASET_ID.getDataset()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java index 2d516926390b..3d82221fa48c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java @@ -35,22 +35,22 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; - +import java.util.List; import java.util.Map; import org.junit.After; import org.junit.Test; -import java.util.List; - public class DatasetTest { private static final DatasetId DATASET_ID = DatasetId.of("dataset"); - private static final List ACCESS_RULES = ImmutableList.of( - Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), - Acl.of(new Acl.View(TableId.of("dataset", "table")))); - private static final Map LABELS = ImmutableMap.of( - "example-label1", "example-value1", - "example-label2", "example-value2"); + private static final List ACCESS_RULES = + ImmutableList.of( + Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), + Acl.of(new Acl.View(TableId.of("dataset", "table")))); + private static final Map LABELS = + ImmutableMap.of( + "example-label1", "example-value1", + "example-label2", "example-value2"); private static final Long CREATION_TIME = System.currentTimeMillis(); private static final Long DEFAULT_TABLE_EXPIRATION = CREATION_TIME + 100; private static final String DESCRIPTION = "description"; @@ -100,19 +100,20 @@ public void tearDown() throws Exception { public void testBuilder() { initializeExpectedDataset(2); replay(bigquery); - Dataset builtDataset = new Dataset.Builder(serviceMockReturnsOptions, DATASET_ID) - .setAcl(ACCESS_RULES) - .setCreationTime(CREATION_TIME) - .setDefaultTableLifetime(DEFAULT_TABLE_EXPIRATION) - .setDescription(DESCRIPTION) - .setEtag(ETAG) - .setFriendlyName(FRIENDLY_NAME) - .setGeneratedId(GENERATED_ID) - .setLastModified(LAST_MODIFIED) - .setLocation(LOCATION) - .setSelfLink(SELF_LINK) - .setLabels(LABELS) - .build(); + Dataset builtDataset = + new Dataset.Builder(serviceMockReturnsOptions, DATASET_ID) + .setAcl(ACCESS_RULES) + .setCreationTime(CREATION_TIME) + .setDefaultTableLifetime(DEFAULT_TABLE_EXPIRATION) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModified(LAST_MODIFIED) + .setLocation(LOCATION) + .setSelfLink(SELF_LINK) + .setLabels(LABELS) + .build(); assertEquals(DATASET_ID, builtDataset.getDatasetId()); assertEquals(ACCESS_RULES, builtDataset.getAcl()); assertEquals(CREATION_TIME, builtDataset.getCreationTime()); @@ -127,7 +128,6 @@ public void testBuilder() { assertEquals(LABELS, builtDataset.getLabels()); } - @Test public void testToBuilder() { initializeExpectedDataset(4); @@ -165,8 +165,8 @@ public void testReload() throws Exception { Dataset expectedDataset = new Dataset(serviceMockReturnsOptions, new DatasetInfo.BuilderImpl(updatedInfo)); expect(bigquery.getOptions()).andReturn(mockOptions); - expect( - bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset())).andReturn(expectedDataset); + expect(bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset())) + .andReturn(expectedDataset); replay(bigquery); initializeDataset(); Dataset updatedDataset = dataset.reload(); @@ -190,8 +190,10 @@ public void testReloadWithOptions() throws Exception { Dataset expectedDataset = new Dataset(serviceMockReturnsOptions, new DatasetInfo.BuilderImpl(updatedInfo)); expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset(), - BigQuery.DatasetOption.fields())).andReturn(expectedDataset); + expect( + bigquery.getDataset( + DATASET_INFO.getDatasetId().getDataset(), BigQuery.DatasetOption.fields())) + .andReturn(expectedDataset); replay(bigquery); initializeDataset(); Dataset updatedDataset = dataset.reload(BigQuery.DatasetOption.fields()); @@ -248,28 +250,30 @@ public void testDeleteFalse() { @Test public void testList() throws Exception { initializeExpectedDataset(4); - List
    tableResults = ImmutableList.of( - new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO1)), - new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO2)), - new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO3))); + List
    tableResults = + ImmutableList.of( + new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO1)), + new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO2)), + new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO3))); PageImpl
    expectedPage = new PageImpl<>(null, "c", tableResults); expect(bigquery.getOptions()).andReturn(mockOptions); expect(bigquery.listTables(DATASET_INFO.getDatasetId())).andReturn(expectedPage); replay(bigquery); initializeDataset(); Page
    tablePage = dataset.list(); - assertArrayEquals(tableResults.toArray(), - Iterables.toArray(tablePage.getValues(), Table.class)); + assertArrayEquals( + tableResults.toArray(), Iterables.toArray(tablePage.getValues(), Table.class)); assertEquals(expectedPage.getNextPageToken(), tablePage.getNextPageToken()); } @Test public void testListWithOptions() throws Exception { initializeExpectedDataset(4); - List
    tableResults = ImmutableList.of( - new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO1)), - new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO2)), - new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO3))); + List
    tableResults = + ImmutableList.of( + new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO1)), + new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO2)), + new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO3))); PageImpl
    expectedPage = new PageImpl<>(null, "c", tableResults); expect(bigquery.getOptions()).andReturn(mockOptions); expect(bigquery.listTables(DATASET_INFO.getDatasetId(), BigQuery.TableListOption.pageSize(10L))) @@ -277,8 +281,8 @@ public void testListWithOptions() throws Exception { replay(bigquery); initializeDataset(); Page
    tablePage = dataset.list(BigQuery.TableListOption.pageSize(10L)); - assertArrayEquals(tableResults.toArray(), - Iterables.toArray(tablePage.getValues(), Table.class)); + assertArrayEquals( + tableResults.toArray(), Iterables.toArray(tablePage.getValues(), Table.class)); assertEquals(expectedPage.getNextPageToken(), tablePage.getNextPageToken()); } @@ -343,8 +347,9 @@ public void testCreateTableWithOptions() throws Exception { expect(bigquery.create(TABLE_INFO1, BigQuery.TableOption.fields())).andReturn(expectedTable); replay(bigquery); initializeDataset(); - Table table = dataset.create(TABLE_INFO1.getTableId().getTable(), TABLE_DEFINITION, - BigQuery.TableOption.fields()); + Table table = + dataset.create( + TABLE_INFO1.getTableId().getTable(), TABLE_DEFINITION, BigQuery.TableOption.fields()); assertEquals(expectedTable, table); } @@ -355,13 +360,12 @@ public void testBigQuery() { assertSame(serviceMockReturnsOptions, expectedDataset.getBigQuery()); } - @Test public void testToAndFromPb() { initializeExpectedDataset(4); replay(bigquery); - compareDataset(expectedDataset, - Dataset.fromPb(serviceMockReturnsOptions, expectedDataset.toPb())); + compareDataset( + expectedDataset, Dataset.fromPb(serviceMockReturnsOptions, expectedDataset.toPb())); } private void compareDataset(Dataset expected, Dataset value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java index 222dcd119361..af14108032e3 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java @@ -19,24 +19,21 @@ import static org.junit.Assert.assertEquals; import com.google.common.collect.ImmutableList; -import org.junit.Test; - import java.util.List; +import org.junit.Test; public class DatastoreBackupOptionsTest { private static final List PROJECTION_FIELDS = ImmutableList.of("field1", "field2"); - private static final DatastoreBackupOptions BACKUP_OPTIONS = DatastoreBackupOptions.newBuilder() - .setProjectionFields(PROJECTION_FIELDS) - .build(); + private static final DatastoreBackupOptions BACKUP_OPTIONS = + DatastoreBackupOptions.newBuilder().setProjectionFields(PROJECTION_FIELDS).build(); @Test public void testToBuilder() { compareDatastoreBackupOptions(BACKUP_OPTIONS, BACKUP_OPTIONS.toBuilder().build()); List fields = ImmutableList.of("field1", "field2"); - DatastoreBackupOptions backupOptions = BACKUP_OPTIONS.toBuilder() - .setProjectionFields(fields) - .build(); + DatastoreBackupOptions backupOptions = + BACKUP_OPTIONS.toBuilder().setProjectionFields(fields).build(); assertEquals(fields, backupOptions.getProjectionFields()); backupOptions = backupOptions.toBuilder().setProjectionFields(PROJECTION_FIELDS).build(); compareDatastoreBackupOptions(BACKUP_OPTIONS, backupOptions); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index d620c6e4db5d..b15ddbfd5f39 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -19,10 +19,8 @@ import static org.junit.Assert.assertEquals; import com.google.common.collect.ImmutableList; - -import org.junit.Test; - import java.util.List; +import org.junit.Test; public class ExternalTableDefinitionTest { @@ -58,14 +56,13 @@ public class ExternalTableDefinitionTest { @Test public void testToBuilder() { - compareExternalTableDefinition(EXTERNAL_TABLE_DEFINITION, - EXTERNAL_TABLE_DEFINITION.toBuilder().build()); + compareExternalTableDefinition( + EXTERNAL_TABLE_DEFINITION, EXTERNAL_TABLE_DEFINITION.toBuilder().build()); ExternalTableDefinition externalTableDefinition = EXTERNAL_TABLE_DEFINITION.toBuilder().setCompression("NONE").build(); assertEquals("NONE", externalTableDefinition.getCompression()); - externalTableDefinition = externalTableDefinition.toBuilder() - .setCompression(COMPRESSION) - .build(); + externalTableDefinition = + externalTableDefinition.toBuilder().setCompression(COMPRESSION).build(); compareExternalTableDefinition(EXTERNAL_TABLE_DEFINITION, externalTableDefinition); } @@ -88,19 +85,19 @@ public void testBuilder() { assertEquals(AUTODETECT, EXTERNAL_TABLE_DEFINITION.getAutodetect()); } - @Test public void testToAndFromPb() { - compareExternalTableDefinition(EXTERNAL_TABLE_DEFINITION, + compareExternalTableDefinition( + EXTERNAL_TABLE_DEFINITION, ExternalTableDefinition.fromPb(EXTERNAL_TABLE_DEFINITION.toPb())); ExternalTableDefinition externalTableDefinition = ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS).build(); - compareExternalTableDefinition(externalTableDefinition, - ExternalTableDefinition.fromPb(externalTableDefinition.toPb())); + compareExternalTableDefinition( + externalTableDefinition, ExternalTableDefinition.fromPb(externalTableDefinition.toPb())); } - private void compareExternalTableDefinition(ExternalTableDefinition expected, - ExternalTableDefinition value) { + private void compareExternalTableDefinition( + ExternalTableDefinition expected, ExternalTableDefinition value) { assertEquals(expected, value); assertEquals(expected.getCompression(), value.getCompression()); assertEquals(expected.getFormatOptions(), value.getFormatOptions()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java index 7bc0949eed1b..3ac686ac14b8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java @@ -21,10 +21,8 @@ import static org.junit.Assert.assertNull; import com.google.common.collect.ImmutableList; - -import org.junit.Test; - import java.util.List; +import org.junit.Test; public class ExtractJobConfigurationTest { @@ -55,9 +53,8 @@ public class ExtractJobConfigurationTest { public void testToBuilder() { compareExtractJobConfiguration( EXTRACT_CONFIGURATION, EXTRACT_CONFIGURATION.toBuilder().build()); - ExtractJobConfiguration job = EXTRACT_CONFIGURATION.toBuilder() - .setSourceTable(TableId.of("dataset", "newTable")) - .build(); + ExtractJobConfiguration job = + EXTRACT_CONFIGURATION.toBuilder().setSourceTable(TableId.of("dataset", "newTable")).build(); assertEquals("newTable", job.getSourceTable().getTable()); job = job.toBuilder().setSourceTable(TABLE_ID).build(); compareExtractJobConfiguration(EXTRACT_CONFIGURATION, job); @@ -96,24 +93,24 @@ public void testBuilder() { assertEquals(PRINT_HEADER, EXTRACT_CONFIGURATION.printHeader()); assertEquals(FORMAT, EXTRACT_CONFIGURATION.getFormat()); assertEquals(TABLE_ID, EXTRACT_CONFIGURATION_ONE_URI.getSourceTable()); - assertEquals(ImmutableList.of(DESTINATION_URI), - EXTRACT_CONFIGURATION_ONE_URI.getDestinationUris()); + assertEquals( + ImmutableList.of(DESTINATION_URI), EXTRACT_CONFIGURATION_ONE_URI.getDestinationUris()); assertEquals(FIELD_DELIMITER, EXTRACT_CONFIGURATION_ONE_URI.getFieldDelimiter()); assertEquals(COMPRESSION, EXTRACT_CONFIGURATION_ONE_URI.getCompression()); assertEquals(PRINT_HEADER, EXTRACT_CONFIGURATION_ONE_URI.printHeader()); assertEquals(FORMAT, EXTRACT_CONFIGURATION_ONE_URI.getFormat()); } - @Test public void testToPbAndFromPb() { assertNotNull(EXTRACT_CONFIGURATION.toPb().getExtract()); assertNull(EXTRACT_CONFIGURATION.toPb().getCopy()); assertNull(EXTRACT_CONFIGURATION.toPb().getLoad()); assertNull(EXTRACT_CONFIGURATION.toPb().getQuery()); - compareExtractJobConfiguration(EXTRACT_CONFIGURATION, - ExtractJobConfiguration.fromPb(EXTRACT_CONFIGURATION.toPb())); - compareExtractJobConfiguration(EXTRACT_CONFIGURATION_ONE_URI, + compareExtractJobConfiguration( + EXTRACT_CONFIGURATION, ExtractJobConfiguration.fromPb(EXTRACT_CONFIGURATION.toPb())); + compareExtractJobConfiguration( + EXTRACT_CONFIGURATION_ONE_URI, ExtractJobConfiguration.fromPb(EXTRACT_CONFIGURATION_ONE_URI.toPb())); ExtractJobConfiguration job = ExtractJobConfiguration.of(TABLE_ID, DESTINATION_URIS); compareExtractJobConfiguration(job, ExtractJobConfiguration.fromPb(job.toPb())); @@ -131,8 +128,8 @@ public void testGetType() { assertEquals(JobConfiguration.Type.EXTRACT, EXTRACT_CONFIGURATION_ONE_URI.getType()); } - private void compareExtractJobConfiguration(ExtractJobConfiguration expected, - ExtractJobConfiguration value) { + private void compareExtractJobConfiguration( + ExtractJobConfiguration expected, ExtractJobConfiguration value) { assertEquals(expected, value); assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.toString(), value.toString()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java index e36c72e91e6a..f7995ae2a7ed 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java @@ -37,20 +37,22 @@ public class FieldListTest { private static final String FIELD_DESCRIPTION2 = "FieldDescription2"; private static final String FIELD_DESCRIPTION3 = "FieldDescription3"; - private final Field fieldSchema1 = Field.newBuilder(FIELD_NAME1, FIELD_TYPE1) - .setMode(FIELD_MODE1) - .setDescription(FIELD_DESCRIPTION1) - .build(); - private final Field fieldSchema2 = Field.newBuilder(FIELD_NAME2, FIELD_TYPE2) - .setMode(FIELD_MODE2) - .setDescription(FIELD_DESCRIPTION2) - .build(); - - private final Field fieldSchema3 = Field - .newBuilder(FIELD_NAME3, FIELD_TYPE3, fieldSchema1, fieldSchema2) - .setMode(FIELD_MODE3) - .setDescription(FIELD_DESCRIPTION3) - .build(); + private final Field fieldSchema1 = + Field.newBuilder(FIELD_NAME1, FIELD_TYPE1) + .setMode(FIELD_MODE1) + .setDescription(FIELD_DESCRIPTION1) + .build(); + private final Field fieldSchema2 = + Field.newBuilder(FIELD_NAME2, FIELD_TYPE2) + .setMode(FIELD_MODE2) + .setDescription(FIELD_DESCRIPTION2) + .build(); + + private final Field fieldSchema3 = + Field.newBuilder(FIELD_NAME3, FIELD_TYPE3, fieldSchema1, fieldSchema2) + .setMode(FIELD_MODE3) + .setDescription(FIELD_DESCRIPTION3) + .build(); private final FieldList fieldsSchema = FieldList.of(fieldSchema1, fieldSchema2, fieldSchema3); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java index d0015d81c0d4..ffa545cf91f6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java @@ -33,29 +33,29 @@ public class FieldTest { private static final String FIELD_DESCRIPTION1 = "FieldDescription1"; private static final String FIELD_DESCRIPTION2 = "FieldDescription2"; private static final String FIELD_DESCRIPTION3 = "FieldDescription3"; - private static final Field FIELD_SCHEMA1 = Field.newBuilder(FIELD_NAME1, FIELD_TYPE1) - .setMode(FIELD_MODE1) - .setDescription(FIELD_DESCRIPTION1) - .build(); - private static final Field FIELD_SCHEMA2 = Field.newBuilder(FIELD_NAME2, FIELD_TYPE2) - .setMode(FIELD_MODE2) - .setDescription(FIELD_DESCRIPTION2) - .build(); + private static final Field FIELD_SCHEMA1 = + Field.newBuilder(FIELD_NAME1, FIELD_TYPE1) + .setMode(FIELD_MODE1) + .setDescription(FIELD_DESCRIPTION1) + .build(); + private static final Field FIELD_SCHEMA2 = + Field.newBuilder(FIELD_NAME2, FIELD_TYPE2) + .setMode(FIELD_MODE2) + .setDescription(FIELD_DESCRIPTION2) + .build(); private static final LegacySQLTypeName FIELD_TYPE3 = LegacySQLTypeName.RECORD; - private static final Field FIELD_SCHEMA3 = Field - .newBuilder(FIELD_NAME3, FIELD_TYPE3, FIELD_SCHEMA1, FIELD_SCHEMA2) - .setMode(FIELD_MODE3) - .setDescription(FIELD_DESCRIPTION3) - .build(); + private static final Field FIELD_SCHEMA3 = + Field.newBuilder(FIELD_NAME3, FIELD_TYPE3, FIELD_SCHEMA1, FIELD_SCHEMA2) + .setMode(FIELD_MODE3) + .setDescription(FIELD_DESCRIPTION3) + .build(); @Test public void testToBuilder() { compareFieldSchemas(FIELD_SCHEMA1, FIELD_SCHEMA1.toBuilder().build()); compareFieldSchemas(FIELD_SCHEMA2, FIELD_SCHEMA2.toBuilder().build()); compareFieldSchemas(FIELD_SCHEMA3, FIELD_SCHEMA3.toBuilder().build()); - Field field = FIELD_SCHEMA1.toBuilder() - .setDescription("New Description") - .build(); + Field field = FIELD_SCHEMA1.toBuilder().setDescription("New Description").build(); assertEquals("New Description", field.getDescription()); field = field.toBuilder().setDescription(FIELD_DESCRIPTION1).build(); compareFieldSchemas(FIELD_SCHEMA1, field); @@ -83,7 +83,6 @@ public void testBuilder() { assertEquals(FieldList.of(FIELD_SCHEMA1, FIELD_SCHEMA2), FIELD_SCHEMA3.getSubFields()); } - @Test public void testToAndFromPb() { compareFieldSchemas(FIELD_SCHEMA1, Field.fromPb(FIELD_SCHEMA1.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java index e0f8e0ef65a3..15b72ec67f3d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java @@ -158,18 +158,19 @@ public void testGetByName() { @Test public void testNullSchema() { - FieldValueList fieldValuesNoSchema = FieldValueList.of( - ImmutableList.of( - booleanFv, - integerFv, - floatFv, - stringFv, - timestampFv, - bytesFv, - nullFv, - repeatedFv, - recordFv, - numericFv)); + FieldValueList fieldValuesNoSchema = + FieldValueList.of( + ImmutableList.of( + booleanFv, + integerFv, + floatFv, + stringFv, + timestampFv, + bytesFv, + nullFv, + repeatedFv, + recordFv, + numericFv)); assertEquals(fieldValues, fieldValuesNoSchema); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java index e5afcedcbfad..d8071746f1df 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java @@ -26,11 +26,9 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.io.BaseEncoding; - -import org.junit.Test; - import java.math.BigDecimal; import java.util.Map; +import org.junit.Test; public class FieldValueTest { @@ -86,7 +84,6 @@ public void testFromPb() { assertEquals(FieldValue.fromPb(TIMESTAMP_FIELD), value.getRepeatedValue().get(1)); } - @Test public void testEquals() { FieldValue booleanValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "false"); @@ -101,8 +98,7 @@ public void testEquals() { assertEquals(floatValue, FieldValue.fromPb(FLOAT_FIELD)); assertEquals(floatValue.hashCode(), FieldValue.fromPb(FLOAT_FIELD).hashCode()); - FieldValue numericValue = - FieldValue.of(FieldValue.Attribute.PRIMITIVE, "123456789.123456789"); + FieldValue numericValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "123456789.123456789"); assertEquals(numericValue, FieldValue.fromPb(NUMERIC_FIELD)); assertEquals(numericValue.hashCode(), FieldValue.fromPb(NUMERIC_FIELD).hashCode()); @@ -122,13 +118,13 @@ public void testEquals() { assertEquals(nullValue, FieldValue.fromPb(NULL_FIELD)); assertEquals(nullValue.hashCode(), FieldValue.fromPb(NULL_FIELD).hashCode()); - FieldValue repeatedValue = FieldValue.of(FieldValue.Attribute.REPEATED, - ImmutableList.of(integerValue, integerValue)); + FieldValue repeatedValue = + FieldValue.of(FieldValue.Attribute.REPEATED, ImmutableList.of(integerValue, integerValue)); assertEquals(repeatedValue, FieldValue.fromPb(REPEATED_FIELD)); assertEquals(repeatedValue.hashCode(), FieldValue.fromPb(REPEATED_FIELD).hashCode()); - FieldValue recordValue = FieldValue.of(FieldValue.Attribute.RECORD, - ImmutableList.of(floatValue, timestampValue)); + FieldValue recordValue = + FieldValue.of(FieldValue.Attribute.RECORD, ImmutableList.of(floatValue, timestampValue)); assertEquals(recordValue, FieldValue.fromPb(RECORD_FIELD)); assertEquals(recordValue.hashCode(), FieldValue.fromPb(RECORD_FIELD).hashCode()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java index 651c25d0dc5c..2427b90abd3a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java @@ -34,7 +34,6 @@ public void testConstructor() { assertEquals(FormatOptions.AVRO, options.getType()); } - @Test public void testFactoryMethods() { assertEquals(FormatOptions.CSV, FormatOptions.csv().getType()); @@ -51,8 +50,8 @@ public void testEquals() { assertEquals(FormatOptions.json(), FormatOptions.json()); assertEquals(FormatOptions.json().hashCode(), FormatOptions.json().hashCode()); assertEquals(FormatOptions.datastoreBackup(), FormatOptions.datastoreBackup()); - assertEquals(FormatOptions.datastoreBackup().hashCode(), - FormatOptions.datastoreBackup().hashCode()); + assertEquals( + FormatOptions.datastoreBackup().hashCode(), FormatOptions.datastoreBackup().hashCode()); assertEquals(FormatOptions.googleSheets(), FormatOptions.googleSheets()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java index bf9488ad91db..2399a1d50a80 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java @@ -16,25 +16,24 @@ package com.google.cloud.bigquery; -import org.junit.Test; - import static com.google.common.truth.Truth.assertThat; +import org.junit.Test; + public class GoogleSheetsOptionsTest { private static final long SKIP_LEADING_ROWS = 42L; - private static final GoogleSheetsOptions GOOGLE_SHEETS_OPTIONS = GoogleSheetsOptions.newBuilder() - .setSkipLeadingRows(SKIP_LEADING_ROWS) - .build(); + private static final GoogleSheetsOptions GOOGLE_SHEETS_OPTIONS = + GoogleSheetsOptions.newBuilder().setSkipLeadingRows(SKIP_LEADING_ROWS).build(); @Test public void testToBuilder() { compareGoogleSheetsOptions(GOOGLE_SHEETS_OPTIONS, GOOGLE_SHEETS_OPTIONS.toBuilder().build()); - GoogleSheetsOptions googleSheetsOptions = GOOGLE_SHEETS_OPTIONS.toBuilder() - .setSkipLeadingRows(123) - .build(); + GoogleSheetsOptions googleSheetsOptions = + GOOGLE_SHEETS_OPTIONS.toBuilder().setSkipLeadingRows(123).build(); assertThat(googleSheetsOptions.getSkipLeadingRows()).isEqualTo(123); - googleSheetsOptions = googleSheetsOptions.toBuilder().setSkipLeadingRows(SKIP_LEADING_ROWS).build(); + googleSheetsOptions = + googleSheetsOptions.toBuilder().setSkipLeadingRows(SKIP_LEADING_ROWS).build(); compareGoogleSheetsOptions(GOOGLE_SHEETS_OPTIONS, googleSheetsOptions); } @@ -50,12 +49,13 @@ public void testBuilder() { assertThat(GOOGLE_SHEETS_OPTIONS.getSkipLeadingRows()).isEqualTo(SKIP_LEADING_ROWS); } - @Test public void testToAndFromPb() { - compareGoogleSheetsOptions(GOOGLE_SHEETS_OPTIONS, GoogleSheetsOptions.fromPb(GOOGLE_SHEETS_OPTIONS.toPb())); + compareGoogleSheetsOptions( + GOOGLE_SHEETS_OPTIONS, GoogleSheetsOptions.fromPb(GOOGLE_SHEETS_OPTIONS.toPb())); GoogleSheetsOptions googleSheetsOptions = GoogleSheetsOptions.newBuilder().build(); - compareGoogleSheetsOptions(googleSheetsOptions, GoogleSheetsOptions.fromPb(googleSheetsOptions.toPb())); + compareGoogleSheetsOptions( + googleSheetsOptions, GoogleSheetsOptions.fromPb(googleSheetsOptions.toPb())); } private void compareGoogleSheetsOptions(GoogleSheetsOptions expected, GoogleSheetsOptions value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java index aae06ddcafb0..4ee1ca13f336 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java @@ -33,10 +33,11 @@ public class InsertAllRequestTest { private static final Map CONTENT2 = ImmutableMap.of("key", "val2"); private static final List ROWS = - ImmutableList.of(InsertAllRequest.RowToInsert.of(CONTENT1), - InsertAllRequest.RowToInsert.of(CONTENT2)); + ImmutableList.of( + InsertAllRequest.RowToInsert.of(CONTENT1), InsertAllRequest.RowToInsert.of(CONTENT2)); private static final List ROWS_WITH_ID = - ImmutableList.of(InsertAllRequest.RowToInsert.of("id1", CONTENT1), + ImmutableList.of( + InsertAllRequest.RowToInsert.of("id1", CONTENT1), InsertAllRequest.RowToInsert.of("id2", CONTENT2)); private static final TableId TABLE_ID = TableId.of("dataset", "table"); private static final Schema TABLE_SCHEMA = Schema.of(); @@ -45,17 +46,19 @@ public class InsertAllRequestTest { private static final boolean SKIP_INVALID_ROWS = true; private static final boolean IGNORE_UNKNOWN_VALUES = false; private static final String TEMPLATE_SUFFIX = "templateSuffix"; - private static final InsertAllRequest INSERT_ALL_REQUEST1 = InsertAllRequest.newBuilder(TABLE_ID) - .addRow(CONTENT1) - .addRow(CONTENT2) - .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) - .setSkipInvalidRows(SKIP_INVALID_ROWS) - .build(); - private static final InsertAllRequest INSERT_ALL_REQUEST2 = InsertAllRequest.newBuilder(TABLE_ID) - .setRows(ROWS) - .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) - .setSkipInvalidRows(SKIP_INVALID_ROWS) - .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST1 = + InsertAllRequest.newBuilder(TABLE_ID) + .addRow(CONTENT1) + .addRow(CONTENT2) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setSkipInvalidRows(SKIP_INVALID_ROWS) + .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST2 = + InsertAllRequest.newBuilder(TABLE_ID) + .setRows(ROWS) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setSkipInvalidRows(SKIP_INVALID_ROWS) + .build(); private static final InsertAllRequest INSERT_ALL_REQUEST3 = InsertAllRequest.newBuilder(TABLE_ID.getDataset(), TABLE_ID.getTable()) .setRows(ROWS_WITH_ID) @@ -78,8 +81,8 @@ public class InsertAllRequestTest { .setSkipInvalidRows(SKIP_INVALID_ROWS) .build(); private static final InsertAllRequest INSERT_ALL_REQUEST7 = - InsertAllRequest.newBuilder(TABLE_ID.getDataset(), TABLE_ID.getTable(), ROWS_WITH_ID.get(0), - ROWS_WITH_ID.get(1)) + InsertAllRequest.newBuilder( + TABLE_ID.getDataset(), TABLE_ID.getTable(), ROWS_WITH_ID.get(0), ROWS_WITH_ID.get(1)) .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) .setSkipInvalidRows(SKIP_INVALID_ROWS) .build(); @@ -172,7 +175,6 @@ public void testBuilder() { assertThat(TEMPLATE_SUFFIX).isEqualTo(INSERT_ALL_REQUEST11.getTemplateSuffix()); } - @Test public void testOf() { InsertAllRequest request = InsertAllRequest.of(TABLE_ID, ROWS); @@ -212,9 +214,10 @@ public void testEquals() { compareInsertAllRequest(INSERT_ALL_REQUEST11, INSERT_ALL_REQUEST11); } - @Test(expected=UnsupportedOperationException.class) + @Test(expected = UnsupportedOperationException.class) public void testImmutable() { - InsertAllRequest.RowToInsert row = InsertAllRequest.RowToInsert.of(new HashMap()); + InsertAllRequest.RowToInsert row = + InsertAllRequest.RowToInsert.of(new HashMap()); row.getContent().put("zip", "zap"); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java index 95671c217746..b39066a6a2be 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java @@ -23,22 +23,22 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; - -import org.junit.Test; - import java.util.List; import java.util.Map; +import org.junit.Test; public class InsertAllResponseTest { - private static final List ERRORS1 = ImmutableList.of( - new BigQueryError("reason1", "location1", "message1"), - new BigQueryError("reason2", "location2", "message2")); - private static final List ERRORS2 = ImmutableList.of( - new BigQueryError("reason3", "location3", "message3"), - new BigQueryError("reason4", "location4", "message4")); - private static final Map> ERRORS_MAP = ImmutableMap.of( - 0L, ERRORS1, 1L, ERRORS2); + private static final List ERRORS1 = + ImmutableList.of( + new BigQueryError("reason1", "location1", "message1"), + new BigQueryError("reason2", "location2", "message2")); + private static final List ERRORS2 = + ImmutableList.of( + new BigQueryError("reason3", "location3", "message3"), + new BigQueryError("reason4", "location4", "message4")); + private static final Map> ERRORS_MAP = + ImmutableMap.of(0L, ERRORS1, 1L, ERRORS2); private static final InsertAllResponse INSERT_ALL_RESPONSE = new InsertAllResponse(ERRORS_MAP); private static final InsertAllResponse EMPTY_INSERT_ALL_RESPONSE = new InsertAllResponse(null); @@ -55,7 +55,6 @@ public void testErrorsFor() { assertNull(INSERT_ALL_RESPONSE.getErrorsFor(2L)); } - @Test public void testHasErrors() { assertTrue(INSERT_ALL_RESPONSE.hasErrors()); @@ -64,10 +63,10 @@ public void testHasErrors() { @Test public void testToPbAndFromPb() { - compareInsertAllResponse(INSERT_ALL_RESPONSE, - InsertAllResponse.fromPb(INSERT_ALL_RESPONSE.toPb())); - compareInsertAllResponse(EMPTY_INSERT_ALL_RESPONSE, - InsertAllResponse.fromPb(EMPTY_INSERT_ALL_RESPONSE.toPb())); + compareInsertAllResponse( + INSERT_ALL_RESPONSE, InsertAllResponse.fromPb(INSERT_ALL_RESPONSE.toPb())); + compareInsertAllResponse( + EMPTY_INSERT_ALL_RESPONSE, InsertAllResponse.fromPb(EMPTY_INSERT_ALL_RESPONSE.toPb())); } private void compareInsertAllResponse(InsertAllResponse expected, InsertAllResponse value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java index 995a3c834a49..05ae7cefe4d2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java @@ -33,7 +33,6 @@ public void testOf() { assertEquals("job", JOB_COMPLETE.getJob()); } - @Test public void testEquals() { compareJobs(JOB, JobId.of("job")); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java index 413015ab5595..71825f0a5451 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java @@ -42,11 +42,8 @@ public class JobInfoTest { private static final String EMAIL = "email"; private static final JobId JOB_ID = JobId.of("job"); private static final JobStatus JOB_STATUS = new JobStatus(JobStatus.State.DONE); - private static final CopyStatistics COPY_JOB_STATISTICS = CopyStatistics.newBuilder() - .setCreationTimestamp(1L) - .setEndTime(3L) - .setStartTime(2L) - .build(); + private static final CopyStatistics COPY_JOB_STATISTICS = + CopyStatistics.newBuilder().setCreationTimestamp(1L).setEndTime(3L).setStartTime(2L).build(); private static final ExtractStatistics EXTRACT_JOB_STATISTICS = ExtractStatistics.newBuilder() .setCreationTimestamp(1L) @@ -144,8 +141,8 @@ public class JobInfoTest { private static final boolean ALLOW_LARGE_RESULTS = true; private static final boolean USE_QUERY_CACHE = false; private static final boolean FLATTEN_RESULTS = true; - private static final List USER_DEFINED_FUNCTIONS = ImmutableList.of( - UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")); + private static final List USER_DEFINED_FUNCTIONS = + ImmutableList.of(UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")); private static final QueryJobConfiguration QUERY_CONFIGURATION = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -161,46 +158,50 @@ public class JobInfoTest { .setDryRun(true) .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) .build(); - private static final JobInfo COPY_JOB = JobInfo.newBuilder(COPY_CONFIGURATION) - .setJobId(JOB_ID) - .setStatistics(COPY_JOB_STATISTICS) - .setJobId(JOB_ID) - .setEtag(ETAG) - .setGeneratedId(GENERATED_ID) - .setSelfLink(SELF_LINK) - .setUserEmail(EMAIL) - .setStatus(JOB_STATUS) - .build(); - private static final JobInfo EXTRACT_JOB = JobInfo.newBuilder(EXTRACT_CONFIGURATION) - .setJobId(JOB_ID) - .setStatistics(EXTRACT_JOB_STATISTICS) - .setJobId(JOB_ID) - .setEtag(ETAG) - .setGeneratedId(GENERATED_ID) - .setSelfLink(SELF_LINK) - .setUserEmail(EMAIL) - .setStatus(JOB_STATUS) - .build(); - private static final JobInfo LOAD_JOB = JobInfo.newBuilder(LOAD_CONFIGURATION) - .setJobId(JOB_ID) - .setStatistics(LOAD_JOB_STATISTICS) - .setJobId(JOB_ID) - .setEtag(ETAG) - .setGeneratedId(GENERATED_ID) - .setSelfLink(SELF_LINK) - .setUserEmail(EMAIL) - .setStatus(JOB_STATUS) - .build(); - private static final JobInfo QUERY_JOB = JobInfo.newBuilder(QUERY_CONFIGURATION) - .setJobId(JOB_ID) - .setStatistics(QUERY_JOB_STATISTICS) - .setJobId(JOB_ID) - .setEtag(ETAG) - .setGeneratedId(GENERATED_ID) - .setSelfLink(SELF_LINK) - .setUserEmail(EMAIL) - .setStatus(JOB_STATUS) - .build(); + private static final JobInfo COPY_JOB = + JobInfo.newBuilder(COPY_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(COPY_JOB_STATISTICS) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + private static final JobInfo EXTRACT_JOB = + JobInfo.newBuilder(EXTRACT_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(EXTRACT_JOB_STATISTICS) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + private static final JobInfo LOAD_JOB = + JobInfo.newBuilder(LOAD_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(LOAD_JOB_STATISTICS) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + private static final JobInfo QUERY_JOB = + JobInfo.newBuilder(QUERY_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(QUERY_JOB_STATISTICS) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); @Test public void testToBuilder() { @@ -208,27 +209,19 @@ public void testToBuilder() { compareJobInfo(EXTRACT_JOB, EXTRACT_JOB.toBuilder().build()); compareJobInfo(LOAD_JOB, LOAD_JOB.toBuilder().build()); compareJobInfo(QUERY_JOB, QUERY_JOB.toBuilder().build()); - JobInfo job = COPY_JOB.toBuilder() - .setUserEmail("newEmail") - .build(); + JobInfo job = COPY_JOB.toBuilder().setUserEmail("newEmail").build(); assertEquals("newEmail", job.getUserEmail()); job = job.toBuilder().setUserEmail(EMAIL).build(); compareJobInfo(COPY_JOB, job); - job = EXTRACT_JOB.toBuilder() - .setUserEmail("newEmail") - .build(); + job = EXTRACT_JOB.toBuilder().setUserEmail("newEmail").build(); assertEquals("newEmail", job.getUserEmail()); job = job.toBuilder().setUserEmail(EMAIL).build(); compareJobInfo(EXTRACT_JOB, job); - job = LOAD_JOB.toBuilder() - .setUserEmail("newEmail") - .build(); + job = LOAD_JOB.toBuilder().setUserEmail("newEmail").build(); assertEquals("newEmail", job.getUserEmail()); job = job.toBuilder().setUserEmail(EMAIL).build(); compareJobInfo(LOAD_JOB, job); - job = QUERY_JOB.toBuilder() - .setUserEmail("newEmail") - .build(); + job = QUERY_JOB.toBuilder().setUserEmail("newEmail").build(); assertEquals("newEmail", job.getUserEmail()); job = job.toBuilder().setUserEmail(EMAIL).build(); compareJobInfo(QUERY_JOB, job); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index 15481a823cb0..73b8f1965c26 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -36,7 +36,8 @@ public class JobStatisticsTest { private static final TableId DDL_TARGET_TABLE = TableId.of("foo", "bar", "baz"); private static final Long ESTIMATE_BYTES_PROCESSED = 101L; private static final Long NUM_DML_AFFECTED_ROWS = 88L; - private static final QueryStatistics.StatementType STATEMENT_TYPE = QueryStatistics.StatementType.SELECT; + private static final QueryStatistics.StatementType STATEMENT_TYPE = + QueryStatistics.StatementType.SELECT; private static final Long TOTAL_BYTES_BILLED = 24L; private static final Long TOTAL_BYTES_PROCESSED = 42L; private static final Long TOTAL_PARTITION_PROCESSED = 63L; @@ -45,104 +46,113 @@ public class JobStatisticsTest { private static final Long INPUT_FILES = 2L; private static final Long OUTPUT_BYTES = 3L; private static final Long OUTPUT_ROWS = 4L; - private static final List REFERENCED_TABLES = ImmutableList.of( - TableId.of("foo", "bar", "table1"), - TableId.of("foo","bar","table2")); + private static final List REFERENCED_TABLES = + ImmutableList.of(TableId.of("foo", "bar", "table1"), TableId.of("foo", "bar", "table2")); private static final List FILE_COUNT = ImmutableList.of(1L, 2L, 3L); private static final Long CREATION_TIME = 10L; private static final Long END_TIME = 20L; private static final Long START_TIME = 15L; - private static final CopyStatistics COPY_STATISTICS = CopyStatistics.newBuilder() - .setCreationTimestamp(CREATION_TIME) - .setEndTime(END_TIME) - .setStartTime(START_TIME) - .build(); - private static final ExtractStatistics EXTRACT_STATISTICS = ExtractStatistics.newBuilder() - .setCreationTimestamp(CREATION_TIME) - .setEndTime(END_TIME) - .setStartTime(START_TIME) - .setDestinationUriFileCounts(FILE_COUNT) - .build(); - private static final LoadStatistics LOAD_STATISTICS = LoadStatistics.newBuilder() - .setCreationTimestamp(CREATION_TIME) - .setEndTime(END_TIME) - .setStartTime(START_TIME) - .setInputBytes(INPUT_BYTES) - .setInputFiles(INPUT_FILES) - .setOutputBytes(OUTPUT_BYTES) - .setOutputRows(OUTPUT_ROWS) - .build(); - private static final LoadStatistics LOAD_STATISTICS_INCOMPLETE = LoadStatistics.newBuilder() - .setCreationTimestamp(CREATION_TIME) - .setEndTime(END_TIME) - .setStartTime(START_TIME) - .setInputBytes(INPUT_BYTES) - .setInputFiles(INPUT_FILES) - .build(); + private static final CopyStatistics COPY_STATISTICS = + CopyStatistics.newBuilder() + .setCreationTimestamp(CREATION_TIME) + .setEndTime(END_TIME) + .setStartTime(START_TIME) + .build(); + private static final ExtractStatistics EXTRACT_STATISTICS = + ExtractStatistics.newBuilder() + .setCreationTimestamp(CREATION_TIME) + .setEndTime(END_TIME) + .setStartTime(START_TIME) + .setDestinationUriFileCounts(FILE_COUNT) + .build(); + private static final LoadStatistics LOAD_STATISTICS = + LoadStatistics.newBuilder() + .setCreationTimestamp(CREATION_TIME) + .setEndTime(END_TIME) + .setStartTime(START_TIME) + .setInputBytes(INPUT_BYTES) + .setInputFiles(INPUT_FILES) + .setOutputBytes(OUTPUT_BYTES) + .setOutputRows(OUTPUT_ROWS) + .build(); + private static final LoadStatistics LOAD_STATISTICS_INCOMPLETE = + LoadStatistics.newBuilder() + .setCreationTimestamp(CREATION_TIME) + .setEndTime(END_TIME) + .setStartTime(START_TIME) + .setInputBytes(INPUT_BYTES) + .setInputFiles(INPUT_FILES) + .build(); private static final List SUBSTEPS1 = ImmutableList.of("substep1", "substep2"); private static final List SUBSTEPS2 = ImmutableList.of("substep3", "substep4"); private static final QueryStep QUERY_STEP1 = new QueryStep("KIND", SUBSTEPS1); private static final QueryStep QUERY_STEP2 = new QueryStep("KIND", SUBSTEPS2); - private static final QueryStage QUERY_STAGE = QueryStage.newBuilder() - .setComputeRatioAvg(1.1) - .setComputeRatioMax(2.2) - .setGeneratedId(42L) - .setName("stage") - .setReadRatioAvg(3.3) - .setReadRatioMax(4.4) - .setRecordsRead(5L) - .setRecordsWritten(6L) - .setSteps(ImmutableList.of(QUERY_STEP1, QUERY_STEP2)) - .setWaitRatioAvg(7.7) - .setWaitRatioMax(8.8) - .setWriteRatioAvg(9.9) - .setWriteRatioMax(10.10) - .build(); + private static final QueryStage QUERY_STAGE = + QueryStage.newBuilder() + .setComputeRatioAvg(1.1) + .setComputeRatioMax(2.2) + .setGeneratedId(42L) + .setName("stage") + .setReadRatioAvg(3.3) + .setReadRatioMax(4.4) + .setRecordsRead(5L) + .setRecordsWritten(6L) + .setSteps(ImmutableList.of(QUERY_STEP1, QUERY_STEP2)) + .setWaitRatioAvg(7.7) + .setWaitRatioMax(8.8) + .setWriteRatioAvg(9.9) + .setWriteRatioMax(10.10) + .build(); - private static final TimelineSample TIMELINE_SAMPLE1 = TimelineSample.newBuilder() - .setElapsedMs(1001L) - .setActiveUnits(100L) - .setCompletedUnits(200L) - .setPendingUnits(50L) - .setSlotMillis(12345L) - .build(); - private static final TimelineSample TIMELINE_SAMPLE2 = TimelineSample.newBuilder() - .setElapsedMs(2002L) - .setActiveUnits(48L) - .setCompletedUnits(302L) - .setPendingUnits(0L) - .setSlotMillis(23456L) - .build(); - private static final List TIMELINE = ImmutableList.of(TIMELINE_SAMPLE1, TIMELINE_SAMPLE2); + private static final TimelineSample TIMELINE_SAMPLE1 = + TimelineSample.newBuilder() + .setElapsedMs(1001L) + .setActiveUnits(100L) + .setCompletedUnits(200L) + .setPendingUnits(50L) + .setSlotMillis(12345L) + .build(); + private static final TimelineSample TIMELINE_SAMPLE2 = + TimelineSample.newBuilder() + .setElapsedMs(2002L) + .setActiveUnits(48L) + .setCompletedUnits(302L) + .setPendingUnits(0L) + .setSlotMillis(23456L) + .build(); + private static final List TIMELINE = + ImmutableList.of(TIMELINE_SAMPLE1, TIMELINE_SAMPLE2); private static final List QUERY_PLAN = ImmutableList.of(QUERY_STAGE); private static final Schema SCHEMA = Schema.of(Field.of("column", LegacySQLTypeName.DATETIME)); - private static final QueryStatistics QUERY_STATISTICS = QueryStatistics.newBuilder() - .setCreationTimestamp(CREATION_TIME) - .setEndTime(END_TIME) - .setStartTime(START_TIME) - .setBillingTier(BILLING_TIER) - .setCacheHit(CACHE_HIT) - .setDDLOperationPerformed(DDL_OPERATION_PERFORMED) - .setDDLTargetTable(DDL_TARGET_TABLE) - .setEstimatedBytesProcessed(ESTIMATE_BYTES_PROCESSED) - .setNumDmlAffectedRows(NUM_DML_AFFECTED_ROWS) - .setReferenceTables(REFERENCED_TABLES) - .setStatementType(STATEMENT_TYPE) - .setTotalBytesBilled(TOTAL_BYTES_BILLED) - .setTotalBytesProcessed(TOTAL_BYTES_PROCESSED) - .setTotalPartitionsProcessed(TOTAL_PARTITION_PROCESSED) - .setTotalSlotMs(TOTAL_SLOT_MS) - .setQueryPlan(QUERY_PLAN) - .setTimeline(TIMELINE) - .setSchema(SCHEMA) - .build(); - private static final QueryStatistics QUERY_STATISTICS_INCOMPLETE = QueryStatistics.newBuilder() - .setCreationTimestamp(CREATION_TIME) - .setEndTime(END_TIME) - .setStartTime(START_TIME) - .setBillingTier(BILLING_TIER) - .setCacheHit(CACHE_HIT) - .build(); + private static final QueryStatistics QUERY_STATISTICS = + QueryStatistics.newBuilder() + .setCreationTimestamp(CREATION_TIME) + .setEndTime(END_TIME) + .setStartTime(START_TIME) + .setBillingTier(BILLING_TIER) + .setCacheHit(CACHE_HIT) + .setDDLOperationPerformed(DDL_OPERATION_PERFORMED) + .setDDLTargetTable(DDL_TARGET_TABLE) + .setEstimatedBytesProcessed(ESTIMATE_BYTES_PROCESSED) + .setNumDmlAffectedRows(NUM_DML_AFFECTED_ROWS) + .setReferenceTables(REFERENCED_TABLES) + .setStatementType(STATEMENT_TYPE) + .setTotalBytesBilled(TOTAL_BYTES_BILLED) + .setTotalBytesProcessed(TOTAL_BYTES_PROCESSED) + .setTotalPartitionsProcessed(TOTAL_PARTITION_PROCESSED) + .setTotalSlotMs(TOTAL_SLOT_MS) + .setQueryPlan(QUERY_PLAN) + .setTimeline(TIMELINE) + .setSchema(SCHEMA) + .build(); + private static final QueryStatistics QUERY_STATISTICS_INCOMPLETE = + QueryStatistics.newBuilder() + .setCreationTimestamp(CREATION_TIME) + .setEndTime(END_TIME) + .setStartTime(START_TIME) + .setBillingTier(BILLING_TIER) + .setCacheHit(CACHE_HIT) + .build(); @Test public void testBuilder() { @@ -204,8 +214,8 @@ public void testBuilder() { @Test public void testToPbAndFromPb() { - compareExtractStatistics(EXTRACT_STATISTICS, - ExtractStatistics.fromPb(EXTRACT_STATISTICS.toPb())); + compareExtractStatistics( + EXTRACT_STATISTICS, ExtractStatistics.fromPb(EXTRACT_STATISTICS.toPb())); compareLoadStatistics(LOAD_STATISTICS, LoadStatistics.fromPb(LOAD_STATISTICS.toPb())); compareQueryStatistics(QUERY_STATISTICS, QueryStatistics.fromPb(QUERY_STATISTICS.toPb())); compareStatistics(COPY_STATISTICS, CopyStatistics.fromPb(COPY_STATISTICS.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java index 997200d2f602..bb463d1cec33 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java @@ -19,19 +19,18 @@ import static org.junit.Assert.assertEquals; import com.google.common.collect.ImmutableList; - -import org.junit.Test; - import java.util.List; +import org.junit.Test; public class JobStatusTest { private static final JobStatus.State STATE = JobStatus.State.DONE; private static final BigQueryError ERROR = new BigQueryError("reason", "location", "message", "debugInfo"); - private static final List ALL_ERRORS = ImmutableList.of( - new BigQueryError("reason1", "location1", "message1", "debugInfo1"), - new BigQueryError("reason2", "location2", "message2", "debugInfo2")); + private static final List ALL_ERRORS = + ImmutableList.of( + new BigQueryError("reason1", "location1", "message1", "debugInfo1"), + new BigQueryError("reason2", "location2", "message2", "debugInfo2")); private static final JobStatus JOB_STATUS = new JobStatus(STATE, ERROR, ALL_ERRORS); private static final JobStatus JOB_STATUS_INCOMPLETE1 = new JobStatus(STATE, ERROR, null); private static final JobStatus JOB_STATUS_INCOMPLETE2 = new JobStatus(STATE, null, null); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index 5ef6e610f41b..57c6a1104eab 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -229,24 +229,24 @@ public void testWaitFor() throws InterruptedException { @Test public void testWaitForAndGetQueryResultsEmpty() throws InterruptedException { QueryJobConfiguration jobConfig = - QueryJobConfiguration.newBuilder("CREATE VIEW").setDestinationTable(TABLE_ID1).build(); + QueryJobConfiguration.newBuilder("CREATE VIEW").setDestinationTable(TABLE_ID1).build(); QueryStatistics jobStatistics = - QueryStatistics.newBuilder() - .setCreationTimestamp(1L) - .setEndTime(3L) - .setStartTime(2L) - .build(); + QueryStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .build(); JobInfo jobInfo = - JobInfo.newBuilder(jobConfig) - .setJobId(JOB_ID) - .setStatistics(jobStatistics) - .setJobId(JOB_ID) - .setEtag(ETAG) - .setGeneratedId(GENERATED_ID) - .setSelfLink(SELF_LINK) - .setUserEmail(EMAIL) - .setStatus(JOB_STATUS) - .build(); + JobInfo.newBuilder(jobConfig) + .setJobId(JOB_ID) + .setStatistics(jobStatistics) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); initializeExpectedJob(2, jobInfo); JobStatus status = createStrictMock(JobStatus.class); @@ -255,44 +255,45 @@ public void testWaitForAndGetQueryResultsEmpty() throws InterruptedException { Job completedJob = expectedJob.toBuilder().setStatus(status).build(); // TODO(pongad): remove when we bump gax to 1.15. Page emptyPage = - new Page() { - @Override - public boolean hasNextPage() { - return false; - } - - @Override - public String getNextPageToken() { - return ""; - } - - @Override - public Page getNextPage() { - return null; - } - - @Override - public Iterable iterateAll() { - return Collections.emptyList(); - } - - @Override - public Iterable getValues() { - return Collections.emptyList(); - } - }; + new Page() { + @Override + public boolean hasNextPage() { + return false; + } + + @Override + public String getNextPageToken() { + return ""; + } + + @Override + public Page getNextPage() { + return null; + } + + @Override + public Iterable iterateAll() { + return Collections.emptyList(); + } + + @Override + public Iterable getValues() { + return Collections.emptyList(); + } + }; QueryResponse completedQuery = - QueryResponse.newBuilder() - .setCompleted(true) - .setTotalRows(0) - .setSchema(Schema.of()) - .setErrors(ImmutableList.of()) - .build(); - - expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)).andReturn(completedQuery); + QueryResponse.newBuilder() + .setCompleted(true) + .setTotalRows(0) + .setSchema(Schema.of()) + .setErrors(ImmutableList.of()) + .build(); + + expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) + .andReturn(completedQuery); expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob); expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) - .andReturn(completedQuery); + .andReturn(completedQuery); replay(status, bigquery, mockOptions); initializeJob(jobInfo); @@ -347,7 +348,9 @@ public Page getNextPage() { } @Override - public Iterable iterateAll() { return Collections.emptyList(); } + public Iterable iterateAll() { + return Collections.emptyList(); + } @Override public Iterable getValues() { @@ -358,12 +361,13 @@ public Iterable getValues() { QueryResponse completedQuery = QueryResponse.newBuilder() .setCompleted(true) - .setTotalRows(1) // Lies to force call of listTableData(). + .setTotalRows(1) // Lies to force call of listTableData(). .setSchema(Schema.of(Field.of("_f0", LegacySQLTypeName.INTEGER))) .setErrors(ImmutableList.of()) .build(); - expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)).andReturn(completedQuery); + expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) + .andReturn(completedQuery); expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob); expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) .andReturn(completedQuery); @@ -525,9 +529,7 @@ public void testToAndFromPb() { @Test public void testToAndFromPbWithoutConfiguration() { - JobInfo jobInfo = - JobInfo.newBuilder(null) - .build(); + JobInfo jobInfo = JobInfo.newBuilder(null).build(); initializeExpectedJob(4, jobInfo); replay(bigquery); compareJob(expectedJob, Job.fromPb(serviceMockReturnsOptions, expectedJob.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index 754e5e648803..d143ce85d794 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -19,23 +19,22 @@ import static org.junit.Assert.assertEquals; import com.google.cloud.bigquery.JobInfo.CreateDisposition; -import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.cloud.bigquery.TimePartitioning.Type; import com.google.common.collect.ImmutableList; - -import org.junit.Test; - import java.nio.charset.StandardCharsets; import java.util.List; +import org.junit.Test; public class LoadJobConfigurationTest { - private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder() - .setAllowJaggedRows(true) - .setAllowQuotedNewLines(false) - .setEncoding(StandardCharsets.UTF_8) - .build(); + private static final CsvOptions CSV_OPTIONS = + CsvOptions.newBuilder() + .setAllowJaggedRows(true) + .setAllowQuotedNewLines(false) + .setEncoding(StandardCharsets.UTF_8) + .build(); private static final TableId TABLE_ID = TableId.of("dataset", "table"); private static final CreateDisposition CREATE_DISPOSITION = CreateDisposition.CREATE_IF_NEEDED; private static final WriteDisposition WRITE_DISPOSITION = WriteDisposition.WRITE_APPEND; @@ -49,13 +48,14 @@ public class LoadJobConfigurationTest { .build(); private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); private static final List SCHEMA_UPDATE_OPTIONS = - ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_ADDITION); + ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_ADDITION); private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA); private static final Boolean AUTODETECT = true; private static final EncryptionConfiguration JOB_ENCRYPTION_CONFIGURATION = EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY); - private static final Clustering CLUSTERING = Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); + private static final Clustering CLUSTERING = + Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); private static final LoadJobConfiguration LOAD_CONFIGURATION_CSV = LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) .setCreateDisposition(CREATE_DISPOSITION) @@ -70,9 +70,10 @@ public class LoadJobConfigurationTest { .setTimePartitioning(TIME_PARTITIONING) .setClustering(CLUSTERING) .build(); - private static final DatastoreBackupOptions BACKUP_OPTIONS = DatastoreBackupOptions.newBuilder() - .setProjectionFields(ImmutableList.of("field_1", "field_2")) - .build(); + private static final DatastoreBackupOptions BACKUP_OPTIONS = + DatastoreBackupOptions.newBuilder() + .setProjectionFields(ImmutableList.of("field_1", "field_2")) + .build(); private static final LoadJobConfiguration LOAD_CONFIGURATION_BACKUP = LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) .setCreateDisposition(CREATE_DISPOSITION) @@ -87,20 +88,23 @@ public class LoadJobConfigurationTest { @Test public void testToBuilder() { - compareLoadJobConfiguration( - LOAD_CONFIGURATION_CSV, LOAD_CONFIGURATION_CSV.toBuilder().build()); - LoadJobConfiguration configurationCSV = LOAD_CONFIGURATION_CSV.toBuilder() - .setDestinationTable(TableId.of("dataset", "newTable")) - .build(); + compareLoadJobConfiguration(LOAD_CONFIGURATION_CSV, LOAD_CONFIGURATION_CSV.toBuilder().build()); + LoadJobConfiguration configurationCSV = + LOAD_CONFIGURATION_CSV + .toBuilder() + .setDestinationTable(TableId.of("dataset", "newTable")) + .build(); assertEquals("newTable", configurationCSV.getDestinationTable().getTable()); configurationCSV = configurationCSV.toBuilder().setDestinationTable(TABLE_ID).build(); compareLoadJobConfiguration(LOAD_CONFIGURATION_CSV, configurationCSV); compareLoadJobConfiguration( LOAD_CONFIGURATION_BACKUP, LOAD_CONFIGURATION_BACKUP.toBuilder().build()); - LoadJobConfiguration configurationBackup = LOAD_CONFIGURATION_BACKUP.toBuilder() - .setDestinationTable(TableId.of("dataset", "newTable")) - .build(); + LoadJobConfiguration configurationBackup = + LOAD_CONFIGURATION_BACKUP + .toBuilder() + .setDestinationTable(TableId.of("dataset", "newTable")) + .build(); assertEquals("newTable", configurationBackup.getDestinationTable().getTable()); configurationBackup = configurationBackup.toBuilder().setDestinationTable(TABLE_ID).build(); compareLoadJobConfiguration(LOAD_CONFIGURATION_BACKUP, configurationBackup); @@ -134,8 +138,8 @@ public void testToBuilderIncomplete() { @Test public void testToPbAndFromPb() { - compareLoadJobConfiguration(LOAD_CONFIGURATION_CSV, - LoadJobConfiguration.fromPb(LOAD_CONFIGURATION_CSV.toPb())); + compareLoadJobConfiguration( + LOAD_CONFIGURATION_CSV, LoadJobConfiguration.fromPb(LOAD_CONFIGURATION_CSV.toPb())); LoadJobConfiguration configuration = LoadJobConfiguration.of(TABLE_ID, SOURCE_URIS); compareLoadJobConfiguration(configuration, LoadJobConfiguration.fromPb(configuration.toPb())); } @@ -151,8 +155,8 @@ public void testGetType() { assertEquals(JobConfiguration.Type.LOAD, LOAD_CONFIGURATION_CSV.getType()); } - private void compareLoadJobConfiguration(LoadJobConfiguration expected, - LoadJobConfiguration value) { + private void compareLoadJobConfiguration( + LoadJobConfiguration expected, LoadJobConfiguration value) { assertEquals(expected, value); assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.toString(), value.toString()); @@ -167,7 +171,9 @@ private void compareLoadJobConfiguration(LoadJobConfiguration expected, assertEquals(expected.getDatastoreBackupOptions(), value.getDatastoreBackupOptions()); assertEquals(expected.getAutodetect(), value.getAutodetect()); assertEquals(expected.getSchemaUpdateOptions(), value.getSchemaUpdateOptions()); - assertEquals(expected.getDestinationEncryptionConfiguration(), value.getDestinationEncryptionConfiguration()); + assertEquals( + expected.getDestinationEncryptionConfiguration(), + value.getDestinationEncryptionConfiguration()); assertEquals(expected.getTimePartitioning(), value.getTimePartitioning()); assertEquals(expected.getClustering(), value.getClustering()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java index 56652e8d3e03..77e54cbba9da 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java @@ -21,7 +21,6 @@ import static org.junit.Assert.assertNull; import com.google.cloud.bigquery.spi.v2.BigQueryRpc; - import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -37,8 +36,7 @@ public class OptionTest { private static final Option OPTION_NOT_EQUALS1 = new Option(RPC_OPTION, OTHER_VALUE) {}; private static final Option OPTION_NOT_EQUALS2 = new Option(ANOTHER_RPC_OPTION, VALUE) {}; - @Rule - public ExpectedException thrown = ExpectedException.none(); + @Rule public ExpectedException thrown = ExpectedException.none(); @Test public void testEquals() { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index 787622408075..2ecc0c800e94 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -21,8 +21,8 @@ import static org.junit.Assert.assertNull; import com.google.cloud.bigquery.JobInfo.CreateDisposition; -import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.cloud.bigquery.QueryJobConfiguration.Priority; import com.google.cloud.bigquery.TimePartitioning.Type; import com.google.common.collect.ImmutableList; @@ -75,12 +75,13 @@ public class QueryJobConfigurationTest { private static final Integer MAX_BILLING_TIER = 123; private static final List SCHEMA_UPDATE_OPTIONS = ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_RELAXATION); - private static final List USER_DEFINED_FUNCTIONS = ImmutableList.of( - UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")); + private static final List USER_DEFINED_FUNCTIONS = + ImmutableList.of(UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")); private static final EncryptionConfiguration JOB_ENCRYPTION_CONFIGURATION = EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY); - private static final Clustering CLUSTERING = Clustering.newBuilder().setFields(ImmutableList.of("Foo","Bar")).build(); + private static final Clustering CLUSTERING = + Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -104,11 +105,10 @@ public class QueryJobConfigurationTest { @Test public void testToBuilder() { - compareQueryJobConfiguration(QUERY_JOB_CONFIGURATION, - QUERY_JOB_CONFIGURATION.toBuilder().build()); - QueryJobConfiguration job = QUERY_JOB_CONFIGURATION.toBuilder() - .setQuery("New BigQuery SQL") - .build(); + compareQueryJobConfiguration( + QUERY_JOB_CONFIGURATION, QUERY_JOB_CONFIGURATION.toBuilder().build()); + QueryJobConfiguration job = + QUERY_JOB_CONFIGURATION.toBuilder().setQuery("New BigQuery SQL").build(); assertEquals("New BigQuery SQL", job.getQuery()); job = job.toBuilder().setQuery(QUERY).build(); compareQueryJobConfiguration(QUERY_JOB_CONFIGURATION, job); @@ -132,8 +132,8 @@ public void testToPbAndFromPb() { assertNull(QUERY_JOB_CONFIGURATION.toPb().getExtract()); assertNull(QUERY_JOB_CONFIGURATION.toPb().getCopy()); assertNull(QUERY_JOB_CONFIGURATION.toPb().getLoad()); - compareQueryJobConfiguration(QUERY_JOB_CONFIGURATION, - QueryJobConfiguration.fromPb(QUERY_JOB_CONFIGURATION.toPb())); + compareQueryJobConfiguration( + QUERY_JOB_CONFIGURATION, QueryJobConfiguration.fromPb(QUERY_JOB_CONFIGURATION.toPb())); QueryJobConfiguration job = QueryJobConfiguration.of(QUERY); compareQueryJobConfiguration(job, QueryJobConfiguration.fromPb(job.toPb())); } @@ -150,8 +150,8 @@ public void testGetType() { assertEquals(JobConfiguration.Type.QUERY, QUERY_JOB_CONFIGURATION.getType()); } - private void compareQueryJobConfiguration(QueryJobConfiguration expected, - QueryJobConfiguration value) { + private void compareQueryJobConfiguration( + QueryJobConfiguration expected, QueryJobConfiguration value) { assertEquals(expected, value); assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.toString(), value.toString()); @@ -170,7 +170,9 @@ private void compareQueryJobConfiguration(QueryJobConfiguration expected, assertEquals(expected.useLegacySql(), value.useLegacySql()); assertEquals(expected.getMaximumBillingTier(), value.getMaximumBillingTier()); assertEquals(expected.getSchemaUpdateOptions(), value.getSchemaUpdateOptions()); - assertEquals(expected.getDestinationEncryptionConfiguration(), value.getDestinationEncryptionConfiguration()); + assertEquals( + expected.getDestinationEncryptionConfiguration(), + value.getDestinationEncryptionConfiguration()); assertEquals(expected.getTimePartitioning(), value.getTimePartitioning()); assertEquals(expected.getClustering(), value.getClustering()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index 5b024e3f8948..485b81e5e497 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -99,11 +99,13 @@ public void testBytes() { @Test public void testBoolArray() { - QueryParameterValue value = QueryParameterValue.array(new Boolean[] {true, false}, Boolean.class); + QueryParameterValue value = + QueryParameterValue.array(new Boolean[] {true, false}, Boolean.class); assertThat(value.getValue()).isNull(); assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.BOOL); - assertArrayDataEquals(new String[]{"true", "false"}, StandardSQLTypeName.BOOL, value.getArrayValues()); + assertArrayDataEquals( + new String[] {"true", "false"}, StandardSQLTypeName.BOOL, value.getArrayValues()); } @Test @@ -112,7 +114,8 @@ public void testInt64Array() { assertThat(value.getValue()).isNull(); assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.INT64); - assertArrayDataEquals(new String[]{"2", "5"}, StandardSQLTypeName.INT64, value.getArrayValues()); + assertArrayDataEquals( + new String[] {"2", "5"}, StandardSQLTypeName.INT64, value.getArrayValues()); } @Test @@ -121,7 +124,8 @@ public void testInt64ArrayFromIntegers() { assertThat(value.getValue()).isNull(); assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.INT64); - assertArrayDataEquals(new String[]{"2", "5"}, StandardSQLTypeName.INT64, value.getArrayValues()); + assertArrayDataEquals( + new String[] {"2", "5"}, StandardSQLTypeName.INT64, value.getArrayValues()); } @Test @@ -130,7 +134,8 @@ public void testFloat64Array() { assertThat(value.getValue()).isNull(); assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.FLOAT64); - assertArrayDataEquals(new String[]{"2.6", "5.4"}, StandardSQLTypeName.FLOAT64, value.getArrayValues()); + assertArrayDataEquals( + new String[] {"2.6", "5.4"}, StandardSQLTypeName.FLOAT64, value.getArrayValues()); } @Test @@ -139,26 +144,31 @@ public void testFloat64ArrayFromFloats() { assertThat(value.getValue()).isNull(); assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.FLOAT64); - assertArrayDataEquals(new String[]{"2.6", "5.4"}, StandardSQLTypeName.FLOAT64, value.getArrayValues()); + assertArrayDataEquals( + new String[] {"2.6", "5.4"}, StandardSQLTypeName.FLOAT64, value.getArrayValues()); } @Test public void testNumericArray() { - QueryParameterValue value = QueryParameterValue.array( - new BigDecimal[] {new BigDecimal("3.14"), new BigDecimal("1.59")}, BigDecimal.class); + QueryParameterValue value = + QueryParameterValue.array( + new BigDecimal[] {new BigDecimal("3.14"), new BigDecimal("1.59")}, BigDecimal.class); assertThat(value.getValue()).isNull(); assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.NUMERIC); - assertArrayDataEquals(new String[]{"3.14", "1.59"}, StandardSQLTypeName.NUMERIC, value.getArrayValues()); + assertArrayDataEquals( + new String[] {"3.14", "1.59"}, StandardSQLTypeName.NUMERIC, value.getArrayValues()); } @Test public void testStringArray() { - QueryParameterValue value = QueryParameterValue.array(new String[] {"Ana", "Marv"}, String.class); + QueryParameterValue value = + QueryParameterValue.array(new String[] {"Ana", "Marv"}, String.class); assertThat(value.getValue()).isNull(); assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.STRING); - assertArrayDataEquals(new String[]{"Ana", "Marv"}, StandardSQLTypeName.STRING, value.getArrayValues()); + assertArrayDataEquals( + new String[] {"Ana", "Marv"}, StandardSQLTypeName.STRING, value.getArrayValues()); } @Test @@ -233,12 +243,13 @@ public void testInvalidDateTime() { @Test public void testTimestampArrayFromLongs() { QueryParameterValue value = - QueryParameterValue.array(new Long[] {1408452095220000L, 1481041545110000L}, StandardSQLTypeName.TIMESTAMP); + QueryParameterValue.array( + new Long[] {1408452095220000L, 1481041545110000L}, StandardSQLTypeName.TIMESTAMP); assertThat(value.getValue()).isNull(); assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.TIMESTAMP); assertArrayDataEquals( - new String[]{"2014-08-19 12:41:35.220000+00:00", "2016-12-06 16:25:45.110000+00:00"}, + new String[] {"2014-08-19 12:41:35.220000+00:00", "2016-12-06 16:25:45.110000+00:00"}, StandardSQLTypeName.TIMESTAMP, value.getArrayValues()); } @@ -253,7 +264,7 @@ public void testTimestampArray() { assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY); assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.TIMESTAMP); assertArrayDataEquals( - new String[]{"2014-08-19 12:41:35.220000+00:00", "2016-12-06 16:25:45.110000+00:00"}, + new String[] {"2014-08-19 12:41:35.220000+00:00", "2016-12-06 16:25:45.110000+00:00"}, StandardSQLTypeName.TIMESTAMP, value.getArrayValues()); } @@ -272,8 +283,10 @@ public void testFromEmptyArray() { assertThat(value.getArrayValues()).isEmpty(); } - private static void assertArrayDataEquals(String[] expectedValues, - StandardSQLTypeName expectedType, List actualValues) { + private static void assertArrayDataEquals( + String[] expectedValues, + StandardSQLTypeName expectedType, + List actualValues) { assertThat(actualValues.size()).isEqualTo(expectedValues.length); for (int i = 0; i < expectedValues.length; i++) { QueryParameterValue value = actualValues.get(i); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java index d38f276d9ed9..0c448516dbef 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java @@ -21,10 +21,8 @@ import com.google.api.services.bigquery.model.ExplainQueryStep; import com.google.cloud.bigquery.QueryStage.QueryStep; import com.google.common.collect.ImmutableList; - -import org.junit.Test; - import java.util.List; +import org.junit.Test; public class QueryStageTest { @@ -39,7 +37,7 @@ public class QueryStageTest { private static final double COMPUTE_RATIO_MAX = 2.2; private static final long END_MS = 1522540860000L; private static final long ID = 42L; - private static final List INPUT_STAGES = ImmutableList.of(Long.valueOf(7),Long.valueOf(9)); + private static final List INPUT_STAGES = ImmutableList.of(Long.valueOf(7), Long.valueOf(9)); private static final String NAME = "StageName"; private static final long PARALLEL_INPUTS = 4; private static final long READ_MS_AVG = 3456; @@ -61,37 +59,38 @@ public class QueryStageTest { private static final long WRITE_MS_MAX = 50; private static final double WRITE_RATIO_AVG = 9.9; private static final double WRITE_RATIO_MAX = 10.10; - private static final QueryStage QUERY_STAGE = QueryStage.newBuilder() - .setCompletedParallelInputs(COMPLETED_PARALLEL_INPUTS) - .setComputeMsAvg(COMPUTE_MS_AVG) - .setComputeMsMax(COMPUTE_MS_MAX) - .setComputeRatioAvg(COMPUTE_RATIO_AVG) - .setComputeRatioMax(COMPUTE_RATIO_MAX) - .setEndMs(END_MS) - .setGeneratedId(ID) - .setInputStages(INPUT_STAGES) - .setName(NAME) - .setParallelInputs(PARALLEL_INPUTS) - .setReadMsAvg(READ_MS_AVG) - .setReadMsMax(READ_MS_MAX) - .setReadRatioAvg(READ_RATIO_AVG) - .setReadRatioMax(READ_RATIO_MAX) - .setRecordsRead(RECORDS_READ) - .setRecordsWritten(RECORDS_WRITTEN) - .setShuffleOutputBytes(SHUFFLE_OUTPUT_BYTES) - .setShuffleOutputBytesSpilled(SHUFFLE_OUTPUT_BYTES_SPILLED) - .setStartMs(START_MS) - .setStatus(STATUS) - .setSteps(STEPS) - .setWaitMsAvg(WAIT_MS_AVG) - .setWaitMsMax(WAIT_MS_MAX) - .setWaitRatioAvg(WAIT_RATIO_AVG) - .setWaitRatioMax(WAIT_RATIO_MAX) - .setWriteMsAvg(WRITE_MS_AVG) - .setWriteMsMax(WRITE_MS_MAX) - .setWriteRatioAvg(WRITE_RATIO_AVG) - .setWriteRatioMax(WRITE_RATIO_MAX) - .build(); + private static final QueryStage QUERY_STAGE = + QueryStage.newBuilder() + .setCompletedParallelInputs(COMPLETED_PARALLEL_INPUTS) + .setComputeMsAvg(COMPUTE_MS_AVG) + .setComputeMsMax(COMPUTE_MS_MAX) + .setComputeRatioAvg(COMPUTE_RATIO_AVG) + .setComputeRatioMax(COMPUTE_RATIO_MAX) + .setEndMs(END_MS) + .setGeneratedId(ID) + .setInputStages(INPUT_STAGES) + .setName(NAME) + .setParallelInputs(PARALLEL_INPUTS) + .setReadMsAvg(READ_MS_AVG) + .setReadMsMax(READ_MS_MAX) + .setReadRatioAvg(READ_RATIO_AVG) + .setReadRatioMax(READ_RATIO_MAX) + .setRecordsRead(RECORDS_READ) + .setRecordsWritten(RECORDS_WRITTEN) + .setShuffleOutputBytes(SHUFFLE_OUTPUT_BYTES) + .setShuffleOutputBytesSpilled(SHUFFLE_OUTPUT_BYTES_SPILLED) + .setStartMs(START_MS) + .setStatus(STATUS) + .setSteps(STEPS) + .setWaitMsAvg(WAIT_MS_AVG) + .setWaitMsMax(WAIT_MS_MAX) + .setWaitRatioAvg(WAIT_RATIO_AVG) + .setWaitRatioMax(WAIT_RATIO_MAX) + .setWriteMsAvg(WRITE_MS_AVG) + .setWriteMsMax(WRITE_MS_MAX) + .setWriteRatioAvg(WRITE_RATIO_AVG) + .setWriteRatioMax(WRITE_RATIO_MAX) + .build(); @Test public void testQueryStepConstructor() { @@ -101,7 +100,6 @@ public void testQueryStepConstructor() { assertEquals(SUBSTEPS2, QUERY_STEP2.getSubsteps()); } - @Test public void testBuilder() { assertEquals(COMPLETED_PARALLEL_INPUTS, QUERY_STAGE.getCompletedParallelInputs()); @@ -133,7 +131,6 @@ public void testBuilder() { assertEquals(WRITE_RATIO_MAX, QUERY_STAGE.getWriteRatioMax(), 0); } - @Test public void testToAndFromPb() { compareQueryStep(QUERY_STEP1, QueryStep.fromPb(QUERY_STEP1.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java index 6b78abbb61a6..4e8fedc5d4a4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java @@ -19,10 +19,8 @@ import static org.junit.Assert.assertEquals; import com.google.common.collect.ImmutableList; - -import org.junit.Test; - import java.util.List; +import org.junit.Test; public class SchemaTest { @@ -41,8 +39,8 @@ public class SchemaTest { .setMode(Field.Mode.REQUIRED) .setDescription("FieldDescription3") .build(); - private static final List FIELDS = ImmutableList.of(FIELD_SCHEMA1, FIELD_SCHEMA2, - FIELD_SCHEMA3); + private static final List FIELDS = + ImmutableList.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); private static final Schema TABLE_SCHEMA = Schema.of(FIELDS); @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java index f49dd23d52cf..2afdefc67bd2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java @@ -18,8 +18,8 @@ import com.google.cloud.BaseSerializationTest; import com.google.cloud.NoCredentials; -import com.google.cloud.Restorable; import com.google.cloud.PageImpl; +import com.google.cloud.Restorable; import com.google.cloud.bigquery.StandardTableDefinition.StreamingBuffer; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -30,15 +30,14 @@ public class SerializationTest extends BaseSerializationTest { - private static final Acl DOMAIN_ACCESS = - Acl.of(new Acl.Domain("domain"), Acl.Role.WRITER); + private static final Acl DOMAIN_ACCESS = Acl.of(new Acl.Domain("domain"), Acl.Role.WRITER); private static final Acl GROUP_ACCESS = Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER); private static final Acl USER_ACCESS = Acl.of(new Acl.User("user"), Acl.Role.OWNER); private static final Acl VIEW_ACCESS = Acl.of(new Acl.View(TableId.of("project", "dataset", "table")), Acl.Role.WRITER); - private static final List ACCESS_RULES = ImmutableList.of(DOMAIN_ACCESS, GROUP_ACCESS, - VIEW_ACCESS, USER_ACCESS); + private static final List ACCESS_RULES = + ImmutableList.of(DOMAIN_ACCESS, GROUP_ACCESS, VIEW_ACCESS, USER_ACCESS); private static final Long CREATION_TIME = System.currentTimeMillis() - 10; private static final Long DEFAULT_TABLE_EXPIRATION = 100L; private static final String DESCRIPTION = "Description"; @@ -49,27 +48,29 @@ public class SerializationTest extends BaseSerializationTest { private static final String LOCATION = ""; private static final String SELF_LINK = "http://bigquery/p/d"; private static final DatasetId DATASET_ID = DatasetId.of("project", "dataset"); - private static final DatasetInfo DATASET_INFO = DatasetInfo.newBuilder(DATASET_ID) - .setAcl(ACCESS_RULES) - .setCreationTime(CREATION_TIME) - .setDefaultTableLifetime(DEFAULT_TABLE_EXPIRATION) - .setDescription(DESCRIPTION) - .setEtag(ETAG) - .setFriendlyName(FRIENDLY_NAME) - .setGeneratedId(GENERATED_ID) - .setLastModified(LAST_MODIFIED) - .setLocation(LOCATION) - .setSelfLink(SELF_LINK) - .build(); + private static final DatasetInfo DATASET_INFO = + DatasetInfo.newBuilder(DATASET_ID) + .setAcl(ACCESS_RULES) + .setCreationTime(CREATION_TIME) + .setDefaultTableLifetime(DEFAULT_TABLE_EXPIRATION) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModified(LAST_MODIFIED) + .setLocation(LOCATION) + .setSelfLink(SELF_LINK) + .build(); private static final TableId TABLE_ID = TableId.of("project", "dataset", "table"); - private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder() - .setAllowJaggedRows(true) - .setAllowQuotedNewLines(false) - .setEncoding(StandardCharsets.ISO_8859_1) - .setFieldDelimiter(",") - .setQuote("\"") - .setSkipLeadingRows(42L) - .build(); + private static final CsvOptions CSV_OPTIONS = + CsvOptions.newBuilder() + .setAllowJaggedRows(true) + .setAllowQuotedNewLines(false) + .setEncoding(StandardCharsets.ISO_8859_1) + .setFieldDelimiter(",") + .setQuote("\"") + .setSkipLeadingRows(42L) + .build(); private static final Field FIELD_SCHEMA1 = Field.newBuilder("StringField", LegacySQLTypeName.STRING) .setMode(Field.Mode.NULLABLE) @@ -97,24 +98,27 @@ public class SerializationTest extends BaseSerializationTest { new UserDefinedFunction.InlineFunction("inline"); private static final UserDefinedFunction URI_FUNCTION = new UserDefinedFunction.UriFunction("URI"); - private static final TableDefinition TABLE_DEFINITION = StandardTableDefinition.newBuilder() - .setSchema(TABLE_SCHEMA) - .setLocation(LOCATION) - .setStreamingBuffer(STREAMING_BUFFER) - .build(); - private static final TableInfo TABLE_INFO = TableInfo.newBuilder(TABLE_ID, TABLE_DEFINITION) - .setCreationTime(CREATION_TIME) - .setDescription(DESCRIPTION) - .setEtag(ETAG) - .setGeneratedId(GENERATED_ID) - .build(); + private static final TableDefinition TABLE_DEFINITION = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setLocation(LOCATION) + .setStreamingBuffer(STREAMING_BUFFER) + .build(); + private static final TableInfo TABLE_INFO = + TableInfo.newBuilder(TABLE_ID, TABLE_DEFINITION) + .setCreationTime(CREATION_TIME) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .build(); private static final TableDefinition VIEW_DEFINITION = ViewDefinition.of("QUERY"); - private static final TableInfo VIEW_INFO = TableInfo.newBuilder(TABLE_ID, VIEW_DEFINITION) - .setCreationTime(CREATION_TIME) - .setDescription(DESCRIPTION) - .setEtag(ETAG) - .setGeneratedId(GENERATED_ID) - .build(); + private static final TableInfo VIEW_INFO = + TableInfo.newBuilder(TABLE_ID, VIEW_DEFINITION) + .setCreationTime(CREATION_TIME) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .build(); private static final TableInfo EXTERNAL_TABLE_INFO = TableInfo.newBuilder(TABLE_ID, EXTERNAL_TABLE_DEFINITION) .setCreationTime(CREATION_TIME) @@ -157,8 +161,8 @@ public class SerializationTest extends BaseSerializationTest { .build(); private static final BigQueryError BIGQUERY_ERROR = new BigQueryError("reason", "location", "message", "debugInfo"); - private static final JobStatus JOB_STATUS = new JobStatus(JobStatus.State.DONE, BIGQUERY_ERROR, - ImmutableList.of(BIGQUERY_ERROR)); + private static final JobStatus JOB_STATUS = + new JobStatus(JobStatus.State.DONE, BIGQUERY_ERROR, ImmutableList.of(BIGQUERY_ERROR)); private static final JobId JOB_ID = JobId.of("project", "job"); private static final Long NUM_DL_AFFECTED_ROWS = 24L; private static final CopyJobConfiguration COPY_JOB_CONFIGURATION = @@ -183,18 +187,20 @@ public class SerializationTest extends BaseSerializationTest { ImmutableMap.of("key", "val1"); private static final Map CONTENT2 = ImmutableMap.of("key", "val2"); - private static final InsertAllRequest INSERT_ALL_REQUEST = InsertAllRequest.newBuilder(TABLE_ID) - .addRow(CONTENT1) - .addRow(CONTENT2) - .setIgnoreUnknownValues(true) - .setSkipInvalidRows(false) - .build(); + private static final InsertAllRequest INSERT_ALL_REQUEST = + InsertAllRequest.newBuilder(TABLE_ID) + .addRow(CONTENT1) + .addRow(CONTENT2) + .setIgnoreUnknownValues(true) + .setSkipInvalidRows(false) + .build(); private static final Map> ERRORS_MAP = ImmutableMap.>of(0L, ImmutableList.of(BIGQUERY_ERROR)); private static final InsertAllResponse INSERT_ALL_RESPONSE = new InsertAllResponse(ERRORS_MAP); private static final FieldValue FIELD_VALUE = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "value"); - private static final TableResult TABLE_RESULT = new TableResult(Schema.of(), 0L, new PageImpl(null, "", ImmutableList.of())); + private static final TableResult TABLE_RESULT = + new TableResult(Schema.of(), 0L, new PageImpl(null, "", ImmutableList.of())); private static final BigQuery BIGQUERY = BigQueryOptions.newBuilder().setProjectId("p1").build().getService(); private static final Dataset DATASET = @@ -208,10 +214,11 @@ public class SerializationTest extends BaseSerializationTest { @Override protected Serializable[] serializableObjects() { - BigQueryOptions options = BigQueryOptions.newBuilder() - .setProjectId("p1") - .setCredentials(NoCredentials.getInstance()) - .build(); + BigQueryOptions options = + BigQueryOptions.newBuilder() + .setProjectId("p1") + .setCredentials(NoCredentials.getInstance()) + .build(); BigQueryOptions otherOptions = options.toBuilder().setProjectId("p2").build(); return new Serializable[] { DOMAIN_ACCESS, @@ -273,6 +280,6 @@ protected Restorable[] restorableObjects() { @SuppressWarnings("resource") TableDataWriteChannel writer = new TableDataWriteChannel(options, LOAD_CONFIGURATION, "upload-id"); - return new Restorable[]{writer}; + return new Restorable[] {writer}; } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java index fb6d810ab028..79414fa5e6c2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -22,7 +22,6 @@ import com.google.api.services.bigquery.model.Streamingbuffer; import com.google.cloud.bigquery.StandardTableDefinition.StreamingBuffer; - import com.google.common.collect.ImmutableList; import org.junit.Test; @@ -51,7 +50,7 @@ public class StandardTableDefinitionTest { private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(TimePartitioning.Type.DAY, 42); private static final Clustering CLUSTERING = - Clustering.newBuilder().setFields(ImmutableList.of("Foo","Bar")).build(); + Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); private static final StandardTableDefinition TABLE_DEFINITION = StandardTableDefinition.newBuilder() .setLocation(LOCATION) @@ -69,9 +68,7 @@ public void testToBuilder() { StandardTableDefinition tableDefinition = TABLE_DEFINITION.toBuilder().setLocation("EU").build(); assertEquals("EU", tableDefinition.getLocation()); - tableDefinition = tableDefinition.toBuilder() - .setLocation(LOCATION) - .build(); + tableDefinition = tableDefinition.toBuilder().setLocation(LOCATION).build(); compareStandardTableDefinition(TABLE_DEFINITION, tableDefinition); } @@ -93,7 +90,6 @@ public void testBuilder() { assertEquals(CLUSTERING, TABLE_DEFINITION.getClustering()); } - @Test public void testOf() { StandardTableDefinition definition = StandardTableDefinition.of(TABLE_SCHEMA); @@ -110,12 +106,12 @@ public void testOf() { @Test public void testToAndFromPb() { assertTrue(TableDefinition.fromPb(TABLE_DEFINITION.toPb()) instanceof StandardTableDefinition); - compareStandardTableDefinition(TABLE_DEFINITION, - TableDefinition.fromPb(TABLE_DEFINITION.toPb())); + compareStandardTableDefinition( + TABLE_DEFINITION, TableDefinition.fromPb(TABLE_DEFINITION.toPb())); StandardTableDefinition definition = StandardTableDefinition.of(TABLE_SCHEMA); assertTrue(TableDefinition.fromPb(definition.toPb()) instanceof StandardTableDefinition); - compareStandardTableDefinition(definition, - TableDefinition.fromPb(definition.toPb())); + compareStandardTableDefinition( + definition, TableDefinition.fromPb(definition.toPb())); } @Test @@ -124,8 +120,8 @@ public void testFromPbWithNullEstimatedRowsAndBytes() { TABLE_DEFINITION.toPb().setStreamingBuffer(new Streamingbuffer())); } - private void compareStandardTableDefinition(StandardTableDefinition expected, - StandardTableDefinition value) { + private void compareStandardTableDefinition( + StandardTableDefinition expected, StandardTableDefinition value) { assertEquals(expected, value); assertEquals(expected.getSchema(), value.getSchema()); assertEquals(expected.getType(), value.getType()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java index 341380471672..ef2329b071b4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java @@ -67,8 +67,7 @@ public class TableDataWriteChannelTest { LoadJobConfiguration.of(TABLE_ID, "URI"); private static final JobInfo JOB_INFO = JobInfo.of(JobId.of(), JOB_CONFIGURATION); - @Rule - public ExpectedException thrown = ExpectedException.none(); + @Rule public ExpectedException thrown = ExpectedException.none(); private BigQueryOptions options; private BigQueryRpcFactory rpcFactoryMock; @@ -89,14 +88,16 @@ public void setUp() { replay(bigqueryMock); job = new Job(bigqueryMock, new JobInfo.BuilderImpl(JOB_INFO)); expect(rpcFactoryMock.create(anyObject(BigQueryOptions.class))).andReturn(bigqueryRpcMock); - expect(bigqueryFactoryMock.create(anyObject(BigQueryOptions.class))).andReturn(bigqueryMock) + expect(bigqueryFactoryMock.create(anyObject(BigQueryOptions.class))) + .andReturn(bigqueryMock) .anyTimes(); replay(rpcFactoryMock, bigqueryFactoryMock); - options = BigQueryOptions.newBuilder() - .setProjectId("projectid") - .setServiceRpcFactory(rpcFactoryMock) - .setServiceFactory(bigqueryFactoryMock) - .build(); + options = + BigQueryOptions.newBuilder() + .setProjectId("projectid") + .setServiceRpcFactory(rpcFactoryMock) + .setServiceFactory(bigqueryFactoryMock) + .build(); } @After @@ -175,8 +176,15 @@ public void testWriteWithFlush() throws IOException { .setConfiguration(LOAD_CONFIGURATION.toPb()))) .andReturn(UPLOAD_ID); Capture capturedBuffer = Capture.newInstance(); - expect(bigqueryRpcMock.write(eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), - eq(CUSTOM_CHUNK_SIZE), eq(false))).andReturn(null); + expect( + bigqueryRpcMock.write( + eq(UPLOAD_ID), + capture(capturedBuffer), + eq(0), + eq(0L), + eq(CUSTOM_CHUNK_SIZE), + eq(false))) + .andReturn(null); replay(bigqueryRpcMock); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); writer.setChunkSize(CUSTOM_CHUNK_SIZE); @@ -195,8 +203,15 @@ public void testWritesAndFlush() throws IOException { .setConfiguration(LOAD_CONFIGURATION.toPb()))) .andReturn(UPLOAD_ID); Capture capturedBuffer = Capture.newInstance(); - expect(bigqueryRpcMock.write(eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), - eq(DEFAULT_CHUNK_SIZE), eq(false))).andReturn(null); + expect( + bigqueryRpcMock.write( + eq(UPLOAD_ID), + capture(capturedBuffer), + eq(0), + eq(0L), + eq(DEFAULT_CHUNK_SIZE), + eq(false))) + .andReturn(null); replay(bigqueryRpcMock); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); ByteBuffer[] buffers = new ByteBuffer[DEFAULT_CHUNK_SIZE / MIN_CHUNK_SIZE]; @@ -222,8 +237,9 @@ public void testCloseWithoutFlush() throws IOException { .setConfiguration(LOAD_CONFIGURATION.toPb()))) .andReturn(UPLOAD_ID); Capture capturedBuffer = Capture.newInstance(); - expect(bigqueryRpcMock.write( - eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true))) + expect( + bigqueryRpcMock.write( + eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true))) .andReturn(job.toPb()); replay(bigqueryRpcMock); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); @@ -244,8 +260,14 @@ public void testCloseWithFlush() throws IOException { .andReturn(UPLOAD_ID); Capture capturedBuffer = Capture.newInstance(); ByteBuffer buffer = randomBuffer(MIN_CHUNK_SIZE); - expect(bigqueryRpcMock.write( - eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(MIN_CHUNK_SIZE), eq(true))) + expect( + bigqueryRpcMock.write( + eq(UPLOAD_ID), + capture(capturedBuffer), + eq(0), + eq(0L), + eq(MIN_CHUNK_SIZE), + eq(true))) .andReturn(job.toPb()); replay(bigqueryRpcMock); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); @@ -267,8 +289,9 @@ public void testWriteClosed() throws IOException { .setConfiguration(LOAD_CONFIGURATION.toPb()))) .andReturn(UPLOAD_ID); Capture capturedBuffer = Capture.newInstance(); - expect(bigqueryRpcMock.write( - eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true))) + expect( + bigqueryRpcMock.write( + eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true))) .andReturn(job.toPb()); replay(bigqueryRpcMock); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); @@ -292,8 +315,16 @@ public void testSaveAndRestore() throws IOException { .andReturn(UPLOAD_ID); Capture capturedBuffer = Capture.newInstance(CaptureType.ALL); Capture capturedPosition = Capture.newInstance(CaptureType.ALL); - expect(bigqueryRpcMock.write(eq(UPLOAD_ID), capture(capturedBuffer), eq(0), - captureLong(capturedPosition), eq(DEFAULT_CHUNK_SIZE), eq(false))).andReturn(null).times(2); + expect( + bigqueryRpcMock.write( + eq(UPLOAD_ID), + capture(capturedBuffer), + eq(0), + captureLong(capturedPosition), + eq(DEFAULT_CHUNK_SIZE), + eq(false))) + .andReturn(null) + .times(2); replay(bigqueryRpcMock); ByteBuffer buffer1 = randomBuffer(DEFAULT_CHUNK_SIZE); ByteBuffer buffer2 = randomBuffer(DEFAULT_CHUNK_SIZE); @@ -318,8 +349,9 @@ public void testSaveAndRestoreClosed() throws IOException { .setConfiguration(LOAD_CONFIGURATION.toPb()))) .andReturn(UPLOAD_ID); Capture capturedBuffer = Capture.newInstance(); - expect(bigqueryRpcMock.write( - eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true))) + expect( + bigqueryRpcMock.write( + eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true))) .andReturn(job.toPb()); replay(bigqueryRpcMock); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java index c0114cda51e1..1166c3229772 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java @@ -35,7 +35,6 @@ public void testOf() { assertEquals("table", TABLE_COMPLETE.getTable()); } - @Test public void testEquals() { compareTableIds(TABLE, TableId.of("dataset", "table")); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java index b8125dcf3d3a..cfc0d646fc00 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java @@ -96,16 +96,17 @@ public class TableInfoTest { .setSelfLink(SELF_LINK) .setLabels(Collections.singletonMap("a", "b")) .build(); - private static final TableInfo VIEW_INFO = TableInfo.newBuilder(TABLE_ID, VIEW_DEFINITION) - .setCreationTime(CREATION_TIME) - .setDescription(DESCRIPTION) - .setEtag(ETAG) - .setExpirationTime(EXPIRATION_TIME) - .setFriendlyName(FRIENDLY_NAME) - .setGeneratedId(GENERATED_ID) - .setLastModifiedTime(LAST_MODIFIED_TIME) - .setSelfLink(SELF_LINK) - .build(); + private static final TableInfo VIEW_INFO = + TableInfo.newBuilder(TABLE_ID, VIEW_DEFINITION) + .setCreationTime(CREATION_TIME) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setExpirationTime(EXPIRATION_TIME) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setSelfLink(SELF_LINK) + .build(); private static final TableInfo EXTERNAL_TABLE_INFO = TableInfo.newBuilder(TABLE_ID, EXTERNAL_TABLE_DEFINITION) .setCreationTime(CREATION_TIME) @@ -123,13 +124,9 @@ public void testToBuilder() { compareTableInfo(TABLE_INFO, TABLE_INFO.toBuilder().build()); compareTableInfo(VIEW_INFO, VIEW_INFO.toBuilder().build()); compareTableInfo(EXTERNAL_TABLE_INFO, EXTERNAL_TABLE_INFO.toBuilder().build()); - TableInfo tableInfo = TABLE_INFO.toBuilder() - .setDescription("newDescription") - .build(); + TableInfo tableInfo = TABLE_INFO.toBuilder().setDescription("newDescription").build(); assertEquals("newDescription", tableInfo.getDescription()); - tableInfo = tableInfo.toBuilder() - .setDescription("description") - .build(); + tableInfo = tableInfo.toBuilder().setDescription("description").build(); compareTableInfo(TABLE_INFO, tableInfo); } @@ -178,7 +175,6 @@ public void testBuilder() { assertEquals(SELF_LINK, EXTERNAL_TABLE_INFO.getSelfLink()); } - @Test public void testOf() { TableInfo tableInfo = TableInfo.of(TABLE_ID, TABLE_DEFINITION); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java index 0a4baa6d53bd..26eb0e962154 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java @@ -61,9 +61,10 @@ public class TableTest { private static final Schema SCHEMA = Schema.of(FIELD); private static final TableDefinition TABLE_DEFINITION = StandardTableDefinition.of(SCHEMA); private static final TableInfo TABLE_INFO = TableInfo.of(TABLE_ID1, TABLE_DEFINITION); - private static final List ROWS_TO_INSERT = ImmutableList.of( - RowToInsert.of("id1", ImmutableMap.of("key", "val1")), - RowToInsert.of("id2", ImmutableMap.of("key", "val2"))); + private static final List ROWS_TO_INSERT = + ImmutableList.of( + RowToInsert.of("id1", ImmutableMap.of("key", "val1")), + RowToInsert.of("id2", ImmutableMap.of("key", "val2"))); private static final InsertAllRequest INSERT_ALL_REQUEST = InsertAllRequest.of(TABLE_ID1, ROWS_TO_INSERT); private static final InsertAllRequest INSERT_ALL_REQUEST_COMPLETE = @@ -111,16 +112,17 @@ public void tearDown() throws Exception { public void testBuilder() { initializeExpectedTable(2); replay(bigquery); - Table builtTable = new Table.Builder(serviceMockReturnsOptions, TABLE_ID1, TABLE_DEFINITION) - .setCreationTime(CREATION_TIME) - .setDescription(DESCRIPTION) - .setEtag(ETAG) - .setExpirationTime(EXPIRATION_TIME) - .setFriendlyName(FRIENDLY_NAME) - .setGeneratedId(GENERATED_ID) - .setLastModifiedTime(LAST_MODIFIED_TIME) - .setSelfLink(SELF_LINK) - .build(); + Table builtTable = + new Table.Builder(serviceMockReturnsOptions, TABLE_ID1, TABLE_DEFINITION) + .setCreationTime(CREATION_TIME) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setExpirationTime(EXPIRATION_TIME) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setSelfLink(SELF_LINK) + .build(); assertEquals(TABLE_ID1, builtTable.getTableId()); assertEquals(CREATION_TIME, builtTable.getCreationTime()); assertEquals(DESCRIPTION, builtTable.getDescription()); @@ -134,7 +136,6 @@ public void testBuilder() { assertSame(serviceMockReturnsOptions, builtTable.getBigQuery()); } - @Test public void testToBuilder() { initializeExpectedTable(4); @@ -311,8 +312,7 @@ public void testCopyFromString() throws Exception { initializeExpectedTable(2); expect(bigquery.getOptions()).andReturn(mockOptions); Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(COPY_JOB_INFO)); - expect(bigquery.create(COPY_JOB_INFO)) - .andReturn(expectedJob); + expect(bigquery.create(COPY_JOB_INFO)).andReturn(expectedJob); replay(bigquery); initializeTable(); Job job = table.copy(TABLE_ID2.getDataset(), TABLE_ID2.getTable()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java index 75488afceb27..3ca239eaddc5 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java @@ -20,7 +20,6 @@ import static org.junit.Assert.assertNull; import com.google.cloud.bigquery.TimePartitioning.Type; - import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -33,13 +32,12 @@ public class TimePartitioningTest { private static final String FIELD = "field"; private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.newBuilder(TYPE) - .setExpirationMs(EXPIRATION_MS) - .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) - .setField(FIELD) - .build(); + .setExpirationMs(EXPIRATION_MS) + .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) + .setField(FIELD) + .build(); - @Rule - public ExpectedException thrown = ExpectedException.none(); + @Rule public ExpectedException thrown = ExpectedException.none(); @Test public void testOf() { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java index 8cf610ef45cd..0d39fa25b4fe 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java @@ -27,15 +27,14 @@ public class TimelineSampleTest { private static final Long PENDING_UNITS = 14L; private static final Long SLOT_MILLIS = 1220012L; - private static final TimelineSample TIMELINE_SAMPLE = TimelineSample.newBuilder() - .setElapsedMs(ELAPSED_MS) - .setActiveUnits(ACTIVE_UNITS) - .setCompletedUnits(COMPLETED_UNITS) - .setPendingUnits(PENDING_UNITS) - .setSlotMillis(SLOT_MILLIS) - .build(); - - + private static final TimelineSample TIMELINE_SAMPLE = + TimelineSample.newBuilder() + .setElapsedMs(ELAPSED_MS) + .setActiveUnits(ACTIVE_UNITS) + .setCompletedUnits(COMPLETED_UNITS) + .setPendingUnits(PENDING_UNITS) + .setSlotMillis(SLOT_MILLIS) + .build(); @Test public void testTimelineSampleBuilder() { @@ -50,5 +49,4 @@ public void testTimelineSampleBuilder() { public void TestEquals() { assertEquals(TIMELINE_SAMPLE, TIMELINE_SAMPLE); } - } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java index e0175ff380cd..93657b44c14f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java @@ -36,7 +36,6 @@ public void testConstructor() { assertEquals(UserDefinedFunction.Type.FROM_URI, URI_FUNCTION.getType()); } - @Test public void testFactoryMethod() { compareUserDefinedFunction(INLINE_FUNCTION, UserDefinedFunction.inline(INLINE)); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java index 87c385bb631b..fa4f82cd0e5f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java @@ -36,13 +36,9 @@ public class ViewDefinitionTest { @Test public void testToBuilder() { compareViewDefinition(VIEW_DEFINITION, VIEW_DEFINITION.toBuilder().build()); - ViewDefinition viewDefinition = VIEW_DEFINITION.toBuilder() - .setQuery("NEW QUERY") - .build(); + ViewDefinition viewDefinition = VIEW_DEFINITION.toBuilder().setQuery("NEW QUERY").build(); assertEquals("NEW QUERY", viewDefinition.getQuery()); - viewDefinition = viewDefinition.toBuilder() - .setQuery(VIEW_QUERY) - .build(); + viewDefinition = viewDefinition.toBuilder().setQuery(VIEW_QUERY).build(); compareViewDefinition(VIEW_DEFINITION, viewDefinition); viewDefinition = viewDefinition.toBuilder().setUseLegacySql(true).build(); @@ -61,17 +57,22 @@ public void testBuilder() { assertEquals(TableDefinition.Type.VIEW, VIEW_DEFINITION.getType()); assertEquals(USER_DEFINED_FUNCTIONS, VIEW_DEFINITION.getUserDefinedFunctions()); - ViewDefinition viewDefinition = ViewDefinition.newBuilder(VIEW_QUERY) - .setUserDefinedFunctions(UserDefinedFunction.inline("Function"), - UserDefinedFunction.fromUri("URI")) - .build(); + ViewDefinition viewDefinition = + ViewDefinition.newBuilder(VIEW_QUERY) + .setUserDefinedFunctions( + UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")) + .build(); assertEquals(VIEW_QUERY, viewDefinition.getQuery()); assertEquals(TableDefinition.Type.VIEW, viewDefinition.getType()); assertEquals(USER_DEFINED_FUNCTIONS, viewDefinition.getUserDefinedFunctions()); assertFalse(viewDefinition.useLegacySql()); - viewDefinition = ViewDefinition.newBuilder(VIEW_QUERY, - UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")).build(); + viewDefinition = + ViewDefinition.newBuilder( + VIEW_QUERY, + UserDefinedFunction.inline("Function"), + UserDefinedFunction.fromUri("URI")) + .build(); assertEquals(VIEW_QUERY, viewDefinition.getQuery()); assertEquals(TableDefinition.Type.VIEW, viewDefinition.getType()); assertEquals(USER_DEFINED_FUNCTIONS, viewDefinition.getUserDefinedFunctions()); @@ -90,7 +91,6 @@ public void testBuilder() { assertTrue(viewDefinition.useLegacySql()); } - @Test public void testToAndFromPb() { ViewDefinition viewDefinition = VIEW_DEFINITION.toBuilder().setUseLegacySql(false).build(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java index 8128f099c0c4..b3a0b7a9e90c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java @@ -23,19 +23,18 @@ import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.cloud.bigquery.TimePartitioning.Type; import com.google.common.collect.ImmutableList; - -import org.junit.Test; - import java.nio.charset.StandardCharsets; import java.util.List; +import org.junit.Test; public class WriteChannelConfigurationTest { - private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder() - .setAllowJaggedRows(true) - .setAllowQuotedNewLines(false) - .setEncoding(StandardCharsets.UTF_8) - .build(); + private static final CsvOptions CSV_OPTIONS = + CsvOptions.newBuilder() + .setAllowJaggedRows(true) + .setAllowQuotedNewLines(false) + .setEncoding(StandardCharsets.UTF_8) + .build(); private static final TableId TABLE_ID = TableId.of("dataset", "table"); private static final CreateDisposition CREATE_DISPOSITION = CreateDisposition.CREATE_IF_NEEDED; private static final WriteDisposition WRITE_DISPOSITION = WriteDisposition.WRITE_APPEND; @@ -53,7 +52,8 @@ public class WriteChannelConfigurationTest { private static final List SCHEMA_UPDATE_OPTIONS = ImmutableList.of(JobInfo.SchemaUpdateOption.ALLOW_FIELD_ADDITION); private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY); - private static final Clustering CLUSTERING = Clustering.newBuilder().setFields(ImmutableList.of("Foo","Bar")).build(); + private static final Clustering CLUSTERING = + Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); private static final WriteChannelConfiguration LOAD_CONFIGURATION_CSV = WriteChannelConfiguration.newBuilder(TABLE_ID) .setCreateDisposition(CREATE_DISPOSITION) @@ -69,9 +69,10 @@ public class WriteChannelConfigurationTest { .setClustering(CLUSTERING) .build(); - private static final DatastoreBackupOptions BACKUP_OPTIONS = DatastoreBackupOptions.newBuilder() - .setProjectionFields(ImmutableList.of("field_1", "field_2")) - .build(); + private static final DatastoreBackupOptions BACKUP_OPTIONS = + DatastoreBackupOptions.newBuilder() + .setProjectionFields(ImmutableList.of("field_1", "field_2")) + .build(); private static final WriteChannelConfiguration LOAD_CONFIGURATION_BACKUP = WriteChannelConfiguration.newBuilder(TABLE_ID) .setCreateDisposition(CREATE_DISPOSITION) @@ -87,9 +88,11 @@ public class WriteChannelConfigurationTest { @Test public void testToBuilder() { compareLoadConfiguration(LOAD_CONFIGURATION_CSV, LOAD_CONFIGURATION_CSV.toBuilder().build()); - WriteChannelConfiguration configuration = LOAD_CONFIGURATION_CSV.toBuilder() - .setDestinationTable(TableId.of("dataset", "newTable")) - .build(); + WriteChannelConfiguration configuration = + LOAD_CONFIGURATION_CSV + .toBuilder() + .setDestinationTable(TableId.of("dataset", "newTable")) + .build(); assertEquals("newTable", configuration.getDestinationTable().getTable()); configuration = configuration.toBuilder().setDestinationTable(TABLE_ID).build(); compareLoadConfiguration(LOAD_CONFIGURATION_CSV, configuration); @@ -155,14 +158,14 @@ public void testBuilder() { @Test public void testToPbAndFromPb() { assertNull(LOAD_CONFIGURATION_CSV.toPb().getLoad().getSourceUris()); - compareLoadConfiguration(LOAD_CONFIGURATION_CSV, - WriteChannelConfiguration.fromPb(LOAD_CONFIGURATION_CSV.toPb())); + compareLoadConfiguration( + LOAD_CONFIGURATION_CSV, WriteChannelConfiguration.fromPb(LOAD_CONFIGURATION_CSV.toPb())); WriteChannelConfiguration configuration = WriteChannelConfiguration.of(TABLE_ID); compareLoadConfiguration(configuration, WriteChannelConfiguration.fromPb(configuration.toPb())); } - private void compareLoadConfiguration(WriteChannelConfiguration expected, - WriteChannelConfiguration value) { + private void compareLoadConfiguration( + WriteChannelConfiguration expected, WriteChannelConfiguration value) { assertEquals(expected, value); assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.toString(), value.toString()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index f1b1c8c67f19..a814158016e5 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -115,9 +115,10 @@ public class ITBigQueryTest { private static final String DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String DESCRIPTION = "Test dataset"; private static final String OTHER_DATASET = RemoteBigQueryHelper.generateDatasetName(); - private static final Map LABELS = ImmutableMap.of( - "example-label1", "example-value1", - "example-label2", "example-value2"); + private static final Map LABELS = + ImmutableMap.of( + "example-label1", "example-value1", + "example-label2", "example-value2"); private static final Field TIMESTAMP_FIELD_SCHEMA = Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) .setMode(Field.Mode.NULLABLE) @@ -156,8 +157,7 @@ public class ITBigQueryTest { .setDescription("RecordDescription") .build(); private static final Field INTEGER_FIELD_SCHEMA = - Field.newBuilder("IntegerField", - LegacySQLTypeName.INTEGER) + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) .setMode(Field.Mode.NULLABLE) .setDescription("IntegerDescription") .build(); @@ -171,69 +171,86 @@ public class ITBigQueryTest { .setMode(Field.Mode.NULLABLE) .setDescription("NumericDescription") .build(); - private static final Schema TABLE_SCHEMA = Schema.of(TIMESTAMP_FIELD_SCHEMA, STRING_FIELD_SCHEMA, - INTEGER_ARRAY_FIELD_SCHEMA, BOOLEAN_FIELD_SCHEMA, BYTES_FIELD_SCHEMA, RECORD_FIELD_SCHEMA, - INTEGER_FIELD_SCHEMA, FLOAT_FIELD_SCHEMA, NUMERIC_FIELD_SCHEMA); + private static final Schema TABLE_SCHEMA = + Schema.of( + TIMESTAMP_FIELD_SCHEMA, + STRING_FIELD_SCHEMA, + INTEGER_ARRAY_FIELD_SCHEMA, + BOOLEAN_FIELD_SCHEMA, + BYTES_FIELD_SCHEMA, + RECORD_FIELD_SCHEMA, + INTEGER_FIELD_SCHEMA, + FLOAT_FIELD_SCHEMA, + NUMERIC_FIELD_SCHEMA); private static final Schema SIMPLE_SCHEMA = Schema.of(STRING_FIELD_SCHEMA); - private static final Schema QUERY_RESULT_SCHEMA = Schema.of( - Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) - .setMode(Field.Mode.NULLABLE) - .build(), - Field.newBuilder("StringField", LegacySQLTypeName.STRING) - .setMode(Field.Mode.NULLABLE) - .build(), - Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) - .setMode(Field.Mode.NULLABLE) - .build()); + private static final Schema QUERY_RESULT_SCHEMA = + Schema.of( + Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) + .setMode(Field.Mode.NULLABLE) + .build()); private static final String LOAD_FILE = "load.csv"; private static final String JSON_LOAD_FILE = "load.json"; private static final String EXTRACT_FILE = "extract.csv"; private static final String BUCKET = RemoteStorageHelper.generateBucketName(); private static final TableId TABLE_ID = TableId.of(DATASET, "testing_table"); private static final String CSV_CONTENT = "StringValue1\nStringValue2\n"; - private static final String JSON_CONTENT = "{" - + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," - + " \"StringField\": \"stringValue\"," - + " \"IntegerArrayField\": [\"0\", \"1\"]," - + " \"BooleanField\": \"false\"," - + " \"BytesField\": \"" + BYTES_BASE64 + "\"," - + " \"RecordField\": {" - + " \"TimestampField\": \"1969-07-20 20:18:04 UTC\"," - + " \"StringField\": null," - + " \"IntegerArrayField\": [\"1\",\"0\"]," - + " \"BooleanField\": \"true\"," - + " \"BytesField\": \"" + BYTES_BASE64 + "\"" - + " }," - + " \"IntegerField\": \"3\"," - + " \"FloatField\": \"1.2\"," - + " \"NumericField\": \"123456.789012345\"" - + "}\n" - + "{" - + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," - + " \"StringField\": \"stringValue\"," - + " \"IntegerArrayField\": [\"0\", \"1\"]," - + " \"BooleanField\": \"false\"," - + " \"BytesField\": \"" + BYTES_BASE64 + "\"," - + " \"RecordField\": {" - + " \"TimestampField\": \"1969-07-20 20:18:04 UTC\"," - + " \"StringField\": null," - + " \"IntegerArrayField\": [\"1\",\"0\"]," - + " \"BooleanField\": \"true\"," - + " \"BytesField\": \"" + BYTES_BASE64 + "\"" - + " }," - + " \"IntegerField\": \"3\"," - + " \"FloatField\": \"1.2\"," - + " \"NumericField\": \"123456.789012345\"" - + "}"; - - private static final Set PUBLIC_DATASETS = ImmutableSet.of("github_repos", "hacker_news", - "noaa_gsod", "samples", "usa_names"); + private static final String JSON_CONTENT = + "{" + + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," + + " \"StringField\": \"stringValue\"," + + " \"IntegerArrayField\": [\"0\", \"1\"]," + + " \"BooleanField\": \"false\"," + + " \"BytesField\": \"" + + BYTES_BASE64 + + "\"," + + " \"RecordField\": {" + + " \"TimestampField\": \"1969-07-20 20:18:04 UTC\"," + + " \"StringField\": null," + + " \"IntegerArrayField\": [\"1\",\"0\"]," + + " \"BooleanField\": \"true\"," + + " \"BytesField\": \"" + + BYTES_BASE64 + + "\"" + + " }," + + " \"IntegerField\": \"3\"," + + " \"FloatField\": \"1.2\"," + + " \"NumericField\": \"123456.789012345\"" + + "}\n" + + "{" + + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," + + " \"StringField\": \"stringValue\"," + + " \"IntegerArrayField\": [\"0\", \"1\"]," + + " \"BooleanField\": \"false\"," + + " \"BytesField\": \"" + + BYTES_BASE64 + + "\"," + + " \"RecordField\": {" + + " \"TimestampField\": \"1969-07-20 20:18:04 UTC\"," + + " \"StringField\": null," + + " \"IntegerArrayField\": [\"1\",\"0\"]," + + " \"BooleanField\": \"true\"," + + " \"BytesField\": \"" + + BYTES_BASE64 + + "\"" + + " }," + + " \"IntegerField\": \"3\"," + + " \"FloatField\": \"1.2\"," + + " \"NumericField\": \"123456.789012345\"" + + "}"; + + private static final Set PUBLIC_DATASETS = + ImmutableSet.of("github_repos", "hacker_news", "noaa_gsod", "samples", "usa_names"); private static BigQuery bigquery; private static Storage storage; - @Rule - public Timeout globalTimeout = Timeout.seconds(300); + @Rule public Timeout globalTimeout = Timeout.seconds(300); @BeforeClass public static void beforeClass() throws InterruptedException, TimeoutException { @@ -242,22 +259,21 @@ public static void beforeClass() throws InterruptedException, TimeoutException { bigquery = bigqueryHelper.getOptions().getService(); storage = storageHelper.getOptions().getService(); storage.create(BucketInfo.of(BUCKET)); - storage.create(BlobInfo.newBuilder(BUCKET, LOAD_FILE).setContentType("text/plain").build(), + storage.create( + BlobInfo.newBuilder(BUCKET, LOAD_FILE).setContentType("text/plain").build(), CSV_CONTENT.getBytes(StandardCharsets.UTF_8)); - storage.create(BlobInfo.newBuilder(BUCKET, JSON_LOAD_FILE) - .setContentType("application/json") - .build(), + storage.create( + BlobInfo.newBuilder(BUCKET, JSON_LOAD_FILE).setContentType("application/json").build(), JSON_CONTENT.getBytes(StandardCharsets.UTF_8)); - DatasetInfo info = DatasetInfo.newBuilder(DATASET) - .setDescription(DESCRIPTION) - .setLabels(LABELS) - .build(); + DatasetInfo info = + DatasetInfo.newBuilder(DATASET).setDescription(DESCRIPTION).setLabels(LABELS).build(); bigquery.create(info); - LoadJobConfiguration configuration = LoadJobConfiguration.newBuilder( - TABLE_ID, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) - .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) - .setSchema(TABLE_SCHEMA) - .build(); + LoadJobConfiguration configuration = + LoadJobConfiguration.newBuilder( + TABLE_ID, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(TABLE_SCHEMA) + .build(); Job job = bigquery.create(JobInfo.of(configuration)); job = job.waitFor(); assertNull(job.getStatus().getError()); @@ -305,8 +321,9 @@ public void testGetDataset() { @Test public void testGetDatasetWithSelectedFields() { - Dataset dataset = bigquery.getDataset(DATASET, - DatasetOption.fields(DatasetField.CREATION_TIME, DatasetField.LABELS)); + Dataset dataset = + bigquery.getDataset( + DATASET, DatasetOption.fields(DatasetField.CREATION_TIME, DatasetField.LABELS)); assertEquals(bigquery.getOptions().getProjectId(), dataset.getDatasetId().getProject()); assertEquals(DATASET, dataset.getDatasetId().getDataset()); assertEquals(LABELS, dataset.getLabels()); @@ -356,15 +373,16 @@ public void testUpdateDataset() { @Test public void testUpdateDatasetWithSelectedFields() { - Dataset dataset = bigquery.create(DatasetInfo.newBuilder(OTHER_DATASET) - .setDescription("Some Description") - .build()); + Dataset dataset = + bigquery.create( + DatasetInfo.newBuilder(OTHER_DATASET).setDescription("Some Description").build()); assertNotNull(dataset); assertEquals(bigquery.getOptions().getProjectId(), dataset.getDatasetId().getProject()); assertEquals(OTHER_DATASET, dataset.getDatasetId().getDataset()); assertEquals("Some Description", dataset.getDescription()); Dataset updatedDataset = - bigquery.update(dataset.toBuilder().setDescription("Updated Description").build(), + bigquery.update( + dataset.toBuilder().setDescription("Updated Description").build(), DatasetOption.fields(DatasetField.DESCRIPTION)); assertEquals("Updated Description", updatedDataset.getDescription()); assertNull(updatedDataset.getCreationTime()); @@ -389,12 +407,14 @@ public void testCreateAndGetTable() { String tableName = "test_create_and_get_table"; TableId tableId = TableId.of(DATASET, tableName); TimePartitioning partitioning = TimePartitioning.of(Type.DAY); - Clustering clustering = Clustering.newBuilder().setFields(ImmutableList.of(STRING_FIELD_SCHEMA.getName())).build(); - StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder() - .setSchema(TABLE_SCHEMA) - .setTimePartitioning(partitioning) - .setClustering(clustering) - .build(); + Clustering clustering = + Clustering.newBuilder().setFields(ImmutableList.of(STRING_FIELD_SCHEMA.getName())).build(); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setTimePartitioning(partitioning) + .setClustering(clustering) + .build(); Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); assertNotNull(createdTable); assertEquals(DATASET, createdTable.getTableId().getDataset()); @@ -409,8 +429,8 @@ public void testCreateAndGetTable() { assertNotNull(remoteTable.getLastModifiedTime()); assertNotNull(remoteTable.getDefinition().getNumBytes()); assertNotNull(remoteTable.getDefinition().getNumRows()); - assertEquals(partitioning, - remoteTable.getDefinition().getTimePartitioning()); + assertEquals( + partitioning, remoteTable.getDefinition().getTimePartitioning()); assertEquals(clustering, remoteTable.getDefinition().getClustering()); assertTrue(remoteTable.delete()); } @@ -420,14 +440,17 @@ public void testCreateAndGetTableWithSelectedField() { String tableName = "test_create_and_get_selected_fields_table"; TableId tableId = TableId.of(DATASET, tableName); StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); - Table createdTable = bigquery.create(TableInfo.newBuilder(tableId, tableDefinition) - .setLabels(Collections.singletonMap("a", "b")) - .build()); + Table createdTable = + bigquery.create( + TableInfo.newBuilder(tableId, tableDefinition) + .setLabels(Collections.singletonMap("a", "b")) + .build()); assertNotNull(createdTable); assertEquals(DATASET, createdTable.getTableId().getDataset()); assertEquals(tableName, createdTable.getTableId().getTable()); - Table remoteTable = bigquery.getTable(DATASET, tableName, - TableOption.fields(TableField.CREATION_TIME, TableField.LABELS)); + Table remoteTable = + bigquery.getTable( + DATASET, tableName, TableOption.fields(TableField.CREATION_TIME, TableField.LABELS)); assertNotNull(remoteTable); assertTrue(remoteTable.getDefinition() instanceof StandardTableDefinition); assertEquals(createdTable.getTableId(), remoteTable.getTableId()); @@ -447,8 +470,9 @@ public void testCreateAndGetTableWithSelectedField() { public void testCreateExternalTable() throws InterruptedException { String tableName = "test_create_external_table"; TableId tableId = TableId.of(DATASET, tableName); - ExternalTableDefinition externalTableDefinition = ExternalTableDefinition.of( - "gs://" + BUCKET + "/" + JSON_LOAD_FILE, TABLE_SCHEMA, FormatOptions.json()); + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.of( + "gs://" + BUCKET + "/" + JSON_LOAD_FILE, TABLE_SCHEMA, FormatOptions.json()); TableInfo tableInfo = TableInfo.of(tableId, externalTableDefinition); Table createdTable = bigquery.create(tableInfo); assertNotNull(createdTable); @@ -459,12 +483,15 @@ public void testCreateExternalTable() throws InterruptedException { assertTrue(remoteTable.getDefinition() instanceof ExternalTableDefinition); assertEquals(createdTable.getTableId(), remoteTable.getTableId()); assertEquals(TABLE_SCHEMA, remoteTable.getDefinition().getSchema()); - QueryJobConfiguration config = QueryJobConfiguration.newBuilder( - "SELECT TimestampField, StringField, IntegerArrayField, BooleanField FROM " + DATASET + "." - + tableName) - .setDefaultDataset(DatasetId.of(DATASET)) - .setUseLegacySql(true) - .build(); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder( + "SELECT TimestampField, StringField, IntegerArrayField, BooleanField FROM " + + DATASET + + "." + + tableName) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(true) + .build(); TableResult result = bigquery.query(config); long integerValue = 0; int rowCount = 0; @@ -513,21 +540,23 @@ public void testCreateViewTable() throws InterruptedException { assertNotNull(remoteTable); assertEquals(createdTable.getTableId(), remoteTable.getTableId()); assertTrue(remoteTable.getDefinition() instanceof ViewDefinition); - Schema expectedSchema = Schema.of( - Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) - .setMode(Field.Mode.NULLABLE) - .build(), - Field.newBuilder("StringField", LegacySQLTypeName.STRING) - .setMode(Field.Mode.NULLABLE) - .build(), - Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) - .setMode(Field.Mode.NULLABLE) - .build()); + Schema expectedSchema = + Schema.of( + Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) + .setMode(Field.Mode.NULLABLE) + .build()); assertEquals(expectedSchema, remoteTable.getDefinition().getSchema()); - QueryJobConfiguration config = QueryJobConfiguration.newBuilder("SELECT * FROM " + tableName) - .setDefaultDataset(DatasetId.of(DATASET)) - .setUseLegacySql(true) - .build(); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder("SELECT * FROM " + tableName) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(true) + .build(); TableResult result = bigquery.query(config); int rowCount = 0; for (FieldValueList row : result.getValues()) { @@ -659,8 +688,10 @@ public void testUpdateTableWithSelectedFields() { TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); Table createdTable = bigquery.create(tableInfo); assertNotNull(createdTable); - Table updatedTable = bigquery.update(tableInfo.toBuilder().setDescription("newDescr").build(), - TableOption.fields(TableField.DESCRIPTION)); + Table updatedTable = + bigquery.update( + tableInfo.toBuilder().setDescription("newDescr").build(), + TableOption.fields(TableField.DESCRIPTION)); assertTrue(updatedTable.getDefinition() instanceof StandardTableDefinition); assertEquals(DATASET, updatedTable.getTableId().getDataset()); assertEquals(tableName, updatedTable.getTableId().getTable()); @@ -674,8 +705,10 @@ public void testUpdateTableWithSelectedFields() { @Test public void testUpdateNonExistingTable() { - TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, "test_update_non_existing_table"), - StandardTableDefinition.of(SIMPLE_SCHEMA)); + TableInfo tableInfo = + TableInfo.of( + TableId.of(DATASET, "test_update_non_existing_table"), + StandardTableDefinition.of(SIMPLE_SCHEMA)); try { bigquery.update(tableInfo); fail("BigQueryException was expected"); @@ -704,11 +737,17 @@ public void testInsertAll() throws IOException { builder1.put("IntegerArrayField", ImmutableList.of(0, 1)); builder1.put("BooleanField", false); builder1.put("BytesField", BYTES_BASE64); - builder1.put("RecordField", ImmutableMap.of( - "TimestampField", "1969-07-20 20:18:04 UTC", - "IntegerArrayField", ImmutableList.of(1, 0), - "BooleanField", true, - "BytesField", BYTES_BASE64)); + builder1.put( + "RecordField", + ImmutableMap.of( + "TimestampField", + "1969-07-20 20:18:04 UTC", + "IntegerArrayField", + ImmutableList.of(1, 0), + "BooleanField", + true, + "BytesField", + BYTES_BASE64)); builder1.put("IntegerField", 5); builder1.put("FloatField", 1.2); builder1.put("NumericField", new BigDecimal("123456789.123456789")); @@ -718,18 +757,25 @@ public void testInsertAll() throws IOException { builder2.put("IntegerArrayField", ImmutableList.of(0, 1)); builder2.put("BooleanField", false); builder2.put("BytesField", BYTES_BASE64); - builder2.put("RecordField", ImmutableMap.of( - "TimestampField", "1969-07-20 20:18:04 UTC", - "IntegerArrayField", ImmutableList.of(1, 0), - "BooleanField", true, - "BytesField", BYTES_BASE64)); + builder2.put( + "RecordField", + ImmutableMap.of( + "TimestampField", + "1969-07-20 20:18:04 UTC", + "IntegerArrayField", + ImmutableList.of(1, 0), + "BooleanField", + true, + "BytesField", + BYTES_BASE64)); builder2.put("IntegerField", 5); builder2.put("FloatField", 1.2); builder2.put("NumericField", new BigDecimal("123456789.123456789")); - InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()) - .addRow(builder1.build()) - .addRow(builder2.build()) - .build(); + InsertAllRequest request = + InsertAllRequest.newBuilder(tableInfo.getTableId()) + .addRow(builder1.build()) + .addRow(builder2.build()) + .build(); InsertAllResponse response = bigquery.insertAll(request); assertFalse(response.hasErrors()); assertEquals(0, response.getInsertErrors().size()); @@ -748,11 +794,17 @@ public void testInsertAllWithSuffix() throws InterruptedException { builder1.put("IntegerArrayField", ImmutableList.of(0, 1)); builder1.put("BooleanField", false); builder1.put("BytesField", BYTES_BASE64); - builder1.put("RecordField", ImmutableMap.of( - "TimestampField", "1969-07-20 20:18:04 UTC", - "IntegerArrayField", ImmutableList.of(1, 0), - "BooleanField", true, - "BytesField", BYTES_BASE64)); + builder1.put( + "RecordField", + ImmutableMap.of( + "TimestampField", + "1969-07-20 20:18:04 UTC", + "IntegerArrayField", + ImmutableList.of(1, 0), + "BooleanField", + true, + "BytesField", + BYTES_BASE64)); builder1.put("IntegerField", 5); builder1.put("FloatField", 1.2); builder1.put("NumericField", new BigDecimal("123456789.123456789")); @@ -762,19 +814,26 @@ public void testInsertAllWithSuffix() throws InterruptedException { builder2.put("IntegerArrayField", ImmutableList.of(0, 1)); builder2.put("BooleanField", false); builder2.put("BytesField", BYTES_BASE64); - builder2.put("RecordField", ImmutableMap.of( - "TimestampField", "1969-07-20 20:18:04 UTC", - "IntegerArrayField", ImmutableList.of(1, 0), - "BooleanField", true, - "BytesField", BYTES_BASE64)); + builder2.put( + "RecordField", + ImmutableMap.of( + "TimestampField", + "1969-07-20 20:18:04 UTC", + "IntegerArrayField", + ImmutableList.of(1, 0), + "BooleanField", + true, + "BytesField", + BYTES_BASE64)); builder2.put("IntegerField", 5); builder2.put("FloatField", 1.2); builder2.put("NumericField", new BigDecimal("123456789.123456789")); - InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()) - .addRow(builder1.build()) - .addRow(builder2.build()) - .setTemplateSuffix("_suffix") - .build(); + InsertAllRequest request = + InsertAllRequest.newBuilder(tableInfo.getTableId()) + .addRow(builder1.build()) + .addRow(builder2.build()) + .setTemplateSuffix("_suffix") + .build(); InsertAllResponse response = bigquery.insertAll(request); assertFalse(response.hasErrors()); assertEquals(0, response.getInsertErrors().size()); @@ -801,11 +860,17 @@ public void testInsertAllWithErrors() { builder1.put("IntegerArrayField", ImmutableList.of(0, 1)); builder1.put("BooleanField", false); builder1.put("BytesField", BYTES_BASE64); - builder1.put("RecordField", ImmutableMap.of( - "TimestampField", "1969-07-20 20:18:04 UTC", - "IntegerArrayField", ImmutableList.of(1, 0), - "BooleanField", true, - "BytesField", BYTES_BASE64)); + builder1.put( + "RecordField", + ImmutableMap.of( + "TimestampField", + "1969-07-20 20:18:04 UTC", + "IntegerArrayField", + ImmutableList.of(1, 0), + "BooleanField", + true, + "BytesField", + BYTES_BASE64)); builder1.put("IntegerField", 5); builder1.put("FloatField", 1.2); builder1.put("NumericField", new BigDecimal("123456789.123456789")); @@ -815,11 +880,17 @@ public void testInsertAllWithErrors() { builder2.put("IntegerArrayField", ImmutableList.of(0, 1)); builder2.put("BooleanField", false); builder2.put("BytesField", BYTES_BASE64); - builder2.put("RecordField", ImmutableMap.of( - "TimestampField", "1969-07-20 20:18:04 UTC", - "IntegerArrayField", ImmutableList.of(1, 0), - "BooleanField", true, - "BytesField", BYTES_BASE64)); + builder2.put( + "RecordField", + ImmutableMap.of( + "TimestampField", + "1969-07-20 20:18:04 UTC", + "IntegerArrayField", + ImmutableList.of(1, 0), + "BooleanField", + true, + "BytesField", + BYTES_BASE64)); builder2.put("IntegerField", 5); builder2.put("FloatField", 1.2); builder2.put("NumericField", new BigDecimal("123456789.123456789")); @@ -829,12 +900,13 @@ public void testInsertAllWithErrors() { builder3.put("IntegerArrayField", ImmutableList.of(0, 1)); builder3.put("BooleanField", false); builder3.put("BytesField", BYTES_BASE64); - InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()) - .addRow(builder1.build()) - .addRow(builder2.build()) - .addRow(builder3.build()) - .setSkipInvalidRows(true) - .build(); + InsertAllRequest request = + InsertAllRequest.newBuilder(tableInfo.getTableId()) + .addRow(builder1.build()) + .addRow(builder2.build()) + .addRow(builder3.build()) + .setSkipInvalidRows(true) + .build(); InsertAllResponse response = bigquery.insertAll(request); assertTrue(response.hasErrors()); assertEquals(2, response.getInsertErrors().size()); @@ -887,11 +959,9 @@ public void testListAllTableData() { @Test public void testQuery() throws InterruptedException { - String query = "SELECT TimestampField, StringField, BooleanField FROM " + - TABLE_ID.getTable(); - QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query) - .setDefaultDataset(DatasetId.of(DATASET)) - .build(); + String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); Job job = bigquery.create(JobInfo.of(JobId.of(), config)); TableResult result = job.getQueryResults(); @@ -921,14 +991,15 @@ public void testQuery() throws InterruptedException { @Test public void testPositionalQueryParameters() throws InterruptedException { - String query = "SELECT TimestampField, StringField, BooleanField FROM " + - TABLE_ID.getTable() + - " WHERE StringField = ?" + - " AND TimestampField > ?" + - " AND IntegerField IN UNNEST(?)" + - " AND IntegerField < ?" + - " AND FloatField > ?" + - " AND NumericField < ?"; + String query = + "SELECT TimestampField, StringField, BooleanField FROM " + + TABLE_ID.getTable() + + " WHERE StringField = ?" + + " AND TimestampField > ?" + + " AND IntegerField IN UNNEST(?)" + + " AND IntegerField < ?" + + " AND FloatField > ?" + + " AND NumericField < ?"; QueryParameterValue stringParameter = QueryParameterValue.string("stringValue"); QueryParameterValue timestampParameter = QueryParameterValue.timestamp("2014-01-01 07:00:00.000000+00:00"); @@ -938,16 +1009,17 @@ public void testPositionalQueryParameters() throws InterruptedException { QueryParameterValue float64Parameter = QueryParameterValue.float64(0.5); QueryParameterValue numericParameter = QueryParameterValue.numeric(new BigDecimal("234567890.123456")); - QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query) - .setDefaultDataset(DatasetId.of(DATASET)) - .setUseLegacySql(false) - .addPositionalParameter(stringParameter) - .addPositionalParameter(timestampParameter) - .addPositionalParameter(intArrayParameter) - .addPositionalParameter(int64Parameter) - .addPositionalParameter(float64Parameter) - .addPositionalParameter(numericParameter) - .build(); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addPositionalParameter(stringParameter) + .addPositionalParameter(timestampParameter) + .addPositionalParameter(intArrayParameter) + .addPositionalParameter(int64Parameter) + .addPositionalParameter(float64Parameter) + .addPositionalParameter(numericParameter) + .build(); TableResult result = bigquery.query(config); assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); assertEquals(2, Iterables.size(result.getValues())); @@ -955,19 +1027,21 @@ public void testPositionalQueryParameters() throws InterruptedException { @Test public void testNamedQueryParameters() throws InterruptedException { - String query = "SELECT TimestampField, StringField, BooleanField FROM " + - TABLE_ID.getTable() + - " WHERE StringField = @stringParam" + - " AND IntegerField IN UNNEST(@integerList)"; + String query = + "SELECT TimestampField, StringField, BooleanField FROM " + + TABLE_ID.getTable() + + " WHERE StringField = @stringParam" + + " AND IntegerField IN UNNEST(@integerList)"; QueryParameterValue stringParameter = QueryParameterValue.string("stringValue"); QueryParameterValue intArrayParameter = - QueryParameterValue.array(new Integer[]{3, 4}, Integer.class); - QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query) - .setDefaultDataset(DatasetId.of(DATASET)) - .setUseLegacySql(false) - .addNamedParameter("stringParam", stringParameter) - .addNamedParameter("integerList", intArrayParameter) - .build(); + QueryParameterValue.array(new Integer[] {3, 4}, Integer.class); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addNamedParameter("stringParam", stringParameter) + .addNamedParameter("integerList", intArrayParameter) + .build(); TableResult result = bigquery.query(config); assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); assertEquals(2, Iterables.size(result.getValues())); @@ -976,12 +1050,13 @@ public void testNamedQueryParameters() throws InterruptedException { @Test public void testBytesParameter() throws Exception { String query = "SELECT BYTE_LENGTH(@p) AS length"; - QueryParameterValue bytesParameter = QueryParameterValue.bytes(new byte[] { 1, 3 }); - QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query) - .setDefaultDataset(DatasetId.of(DATASET)) - .setUseLegacySql(false) - .addNamedParameter("p", bytesParameter) - .build(); + QueryParameterValue bytesParameter = QueryParameterValue.bytes(new byte[] {1, 3}); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addNamedParameter("p", bytesParameter) + .build(); TableResult result = bigquery.query(config); int rowCount = 0; for (FieldValueList row : result.getValues()) { @@ -1036,12 +1111,12 @@ public void testCreateAndGetJob() throws InterruptedException, TimeoutException CopyJobConfiguration createdConfiguration = createdJob.getConfiguration(); CopyJobConfiguration remoteConfiguration = remoteJob.getConfiguration(); assertEquals(createdConfiguration.getSourceTables(), remoteConfiguration.getSourceTables()); - assertEquals(createdConfiguration.getDestinationTable(), - remoteConfiguration.getDestinationTable()); - assertEquals(createdConfiguration.getCreateDisposition(), - remoteConfiguration.getCreateDisposition()); - assertEquals(createdConfiguration.getWriteDisposition(), - remoteConfiguration.getWriteDisposition()); + assertEquals( + createdConfiguration.getDestinationTable(), remoteConfiguration.getDestinationTable()); + assertEquals( + createdConfiguration.getCreateDisposition(), remoteConfiguration.getCreateDisposition()); + assertEquals( + createdConfiguration.getWriteDisposition(), remoteConfiguration.getWriteDisposition()); assertNotNull(remoteJob.getEtag()); assertNotNull(remoteJob.getStatistics()); assertNotNull(remoteJob.getStatus()); @@ -1049,8 +1124,7 @@ public void testCreateAndGetJob() throws InterruptedException, TimeoutException assertEquals(createdJob.getUserEmail(), remoteJob.getUserEmail()); assertTrue(createdTable.delete()); - Job completedJob = - remoteJob.waitFor(RetryOption.totalTimeout(Duration.ofMinutes(1))); + Job completedJob = remoteJob.waitFor(RetryOption.totalTimeout(Duration.ofMinutes(1))); assertNotNull(completedJob); assertNull(completedJob.getStatus().getError()); @@ -1058,7 +1132,8 @@ public void testCreateAndGetJob() throws InterruptedException, TimeoutException } @Test - public void testCreateAndGetJobWithSelectedFields() throws InterruptedException, TimeoutException { + public void testCreateAndGetJobWithSelectedFields() + throws InterruptedException, TimeoutException { String sourceTableName = "test_create_and_get_job_with_selected_fields_source_table"; String destinationTableName = "test_create_and_get_job_with_selected_fields_destination_table"; TableId sourceTable = TableId.of(DATASET, sourceTableName); @@ -1084,12 +1159,12 @@ public void testCreateAndGetJobWithSelectedFields() throws InterruptedException, CopyJobConfiguration remoteConfiguration = remoteJob.getConfiguration(); assertEquals(createdJob.getJobId(), remoteJob.getJobId()); assertEquals(createdConfiguration.getSourceTables(), remoteConfiguration.getSourceTables()); - assertEquals(createdConfiguration.getDestinationTable(), - remoteConfiguration.getDestinationTable()); - assertEquals(createdConfiguration.getCreateDisposition(), - remoteConfiguration.getCreateDisposition()); - assertEquals(createdConfiguration.getWriteDisposition(), - remoteConfiguration.getWriteDisposition()); + assertEquals( + createdConfiguration.getDestinationTable(), remoteConfiguration.getDestinationTable()); + assertEquals( + createdConfiguration.getCreateDisposition(), remoteConfiguration.getCreateDisposition()); + assertEquals( + createdConfiguration.getWriteDisposition(), remoteConfiguration.getWriteDisposition()); assertNotNull(remoteJob.getEtag()); assertNull(remoteJob.getStatistics()); assertNull(remoteJob.getStatus()); @@ -1134,13 +1209,13 @@ public void testCopyJob() throws InterruptedException, TimeoutException { @Test public void testQueryJob() throws InterruptedException, TimeoutException { String tableName = "test_query_job_table"; - String query = "SELECT TimestampField, StringField, BooleanField FROM " + - TABLE_ID.getTable(); + String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); TableId destinationTable = TableId.of(DATASET, tableName); - QueryJobConfiguration configuration = QueryJobConfiguration.newBuilder(query) - .setDefaultDataset(DatasetId.of(DATASET)) - .setDestinationTable(destinationTable) - .build(); + QueryJobConfiguration configuration = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setDestinationTable(destinationTable) + .build(); Job remoteJob = bigquery.create(JobInfo.of(configuration)); remoteJob = remoteJob.waitFor(); assertNull(remoteJob.getStatus().getError()); @@ -1170,14 +1245,14 @@ public void testQueryJob() throws InterruptedException, TimeoutException { @Test public void testQueryJobWithDryRun() throws InterruptedException, TimeoutException { String tableName = "test_query_job_table"; - String query = "SELECT TimestampField, StringField, BooleanField FROM " + - TABLE_ID.getTable(); + String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); TableId destinationTable = TableId.of(DATASET, tableName); - QueryJobConfiguration configuration = QueryJobConfiguration.newBuilder(query) - .setDefaultDataset(DatasetId.of(DATASET)) - .setDestinationTable(destinationTable) - .setDryRun(true) - .build(); + QueryJobConfiguration configuration = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setDestinationTable(destinationTable) + .setDryRun(true) + .build(); Job remoteJob = bigquery.create(JobInfo.of(configuration)); assertNull(remoteJob.getJobId().getJob()); assertEquals(DONE, remoteJob.getStatus().getState()); @@ -1216,10 +1291,11 @@ public void testCancelJob() throws InterruptedException, TimeoutException { String destinationTableName = "test_cancel_query_job_table"; String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); TableId destinationTable = TableId.of(DATASET, destinationTableName); - QueryJobConfiguration configuration = QueryJobConfiguration.newBuilder(query) - .setDefaultDataset(DatasetId.of(DATASET)) - .setDestinationTable(destinationTable) - .build(); + QueryJobConfiguration configuration = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setDestinationTable(destinationTable) + .build(); Job remoteJob = bigquery.create(JobInfo.of(configuration)); assertTrue(remoteJob.cancel()); remoteJob = remoteJob.waitFor(); @@ -1235,11 +1311,12 @@ public void testCancelNonExistingJob() { public void testInsertFromFile() throws InterruptedException, IOException, TimeoutException { String destinationTableName = "test_insert_from_file_table"; TableId tableId = TableId.of(DATASET, destinationTableName); - WriteChannelConfiguration configuration = WriteChannelConfiguration.newBuilder(tableId) - .setFormatOptions(FormatOptions.json()) - .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) - .setSchema(TABLE_SCHEMA) - .build(); + WriteChannelConfiguration configuration = + WriteChannelConfiguration.newBuilder(tableId) + .setFormatOptions(FormatOptions.json()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(TABLE_SCHEMA) + .build(); TableDataWriteChannel channel = bigquery.writer(configuration); try { // A zero byte write should not throw an exception. diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java index 32137217aebf..65cd0571f268 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java @@ -19,10 +19,10 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import com.google.cloud.http.HttpTransportOptions; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.http.HttpTransportOptions; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.concurrent.ExecutionException; @@ -36,36 +36,36 @@ public class RemoteBigQueryHelperTest { private static final String DATASET_NAME = "dataset-name"; private static final String PROJECT_ID = "project-id"; - private static final String JSON_KEY = "{\n" - + " \"private_key_id\": \"somekeyid\",\n" - + " \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggS" - + "kAgEAAoIBAQC+K2hSuFpAdrJI\\nnCgcDz2M7t7bjdlsadsasad+fvRSW6TjNQZ3p5LLQY1kSZRqBqylRkzteMOyHg" - + "aR\\n0Pmxh3ILCND5men43j3h4eDbrhQBuxfEMalkG92sL+PNQSETY2tnvXryOvmBRwa/\\nQP/9dJfIkIDJ9Fw9N4" - + "Bhhhp6mCcRpdQjV38H7JsyJ7lih/oNjECgYAt\\nknddadwkwewcVxHFhcZJO+XWf6ofLUXpRwiTZakGMn8EE1uVa2" - + "LgczOjwWHGi99MFjxSer5m9\\n1tCa3/KEGKiS/YL71JvjwX3mb+cewlkcmweBKZHM2JPTk0ZednFSpVZMtycjkbLa" - + "\\ndYOS8V85AgMBewECggEBAKksaldajfDZDV6nGqbFjMiizAKJolr/M3OQw16K6o3/\\n0S31xIe3sSlgW0+UbYlF" - + "4U8KifhManD1apVSC3csafaspP4RZUHFhtBywLO9pR5c\\nr6S5aLp+gPWFyIp1pfXbWGvc5VY/v9x7ya1VEa6rXvL" - + "sKupSeWAW4tMj3eo/64ge\\nsdaceaLYw52KeBYiT6+vpsnYrEkAHO1fF/LavbLLOFJmFTMxmsNaG0tuiJHgjshB\\" - + "n82DpMCbXG9YcCgI/DbzuIjsdj2JC1cascSP//3PmefWysucBQe7Jryb6NQtASmnv\\nCdDw/0jmZTEjpe4S1lxfHp" - + "lAhHFtdgYTvyYtaLZiVVkCgYEA8eVpof2rceecw/I6\\n5ng1q3Hl2usdWV/4mZMvR0fOemacLLfocX6IYxT1zA1FF" - + "JlbXSRsJMf/Qq39mOR2\\nSpW+hr4jCoHeRVYLgsbggtrevGmILAlNoqCMpGZ6vDmJpq6ECV9olliDvpPgWOP+\\nm" - + "YPDreFBGxWvQrADNbRt2dmGsrsCgYEAyUHqB2wvJHFqdmeBsaacewzV8x9WgmeX\\ngUIi9REwXlGDW0Mz50dxpxcK" - + "CAYn65+7TCnY5O/jmL0VRxU1J2mSWyWTo1C+17L0\\n3fUqjxL1pkefwecxwecvC+gFFYdJ4CQ/MHHXU81Lwl1iWdF" - + "Cd2UoGddYaOF+KNeM\\nHC7cmqra+JsCgYEAlUNywzq8nUg7282E+uICfCB0LfwejuymR93CtsFgb7cRd6ak\\nECR" - + "8FGfCpH8ruWJINllbQfcHVCX47ndLZwqv3oVFKh6pAS/vVI4dpOepP8++7y1u\\ncoOvtreXCX6XqfrWDtKIvv0vjl" - + "HBhhhp6mCcRpdQjV38H7JsyJ7lih/oNjECgYAt\\nkndj5uNl5SiuVxHFhcZJO+XWf6ofLUregtevZakGMn8EE1uVa" - + "2AY7eafmoU/nZPT\\n00YB0TBATdCbn/nBSuKDESkhSg9s2GEKQZG5hBmL5uCMfo09z3SfxZIhJdlerreP\\nJ7gSi" - + "dI12N+EZxYd4xIJh/HFDgp7RRO87f+WJkofMQKBgGTnClK1VMaCRbJZPriw\\nEfeFCoOX75MxKwXs6xgrw4W//AYG" - + "GUjDt83lD6AZP6tws7gJ2IwY/qP7+lyhjEqN\\nHtfPZRGFkGZsdaksdlaksd323423d+15/UvrlRSFPNj1tWQmNKk" - + "XyRDW4IG1Oa2p\\nrALStNBx5Y9t0/LQnFI4w3aG\\n-----END PRIVATE KEY-----\\n\",\n" - + " \"client_email\": \"someclientid@developer.gserviceaccount.com\",\n" - + " \"client_id\": \"someclientid.apps.googleusercontent.com\",\n" - + " \"type\": \"service_account\"\n" - + "}"; + private static final String JSON_KEY = + "{\n" + + " \"private_key_id\": \"somekeyid\",\n" + + " \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggS" + + "kAgEAAoIBAQC+K2hSuFpAdrJI\\nnCgcDz2M7t7bjdlsadsasad+fvRSW6TjNQZ3p5LLQY1kSZRqBqylRkzteMOyHg" + + "aR\\n0Pmxh3ILCND5men43j3h4eDbrhQBuxfEMalkG92sL+PNQSETY2tnvXryOvmBRwa/\\nQP/9dJfIkIDJ9Fw9N4" + + "Bhhhp6mCcRpdQjV38H7JsyJ7lih/oNjECgYAt\\nknddadwkwewcVxHFhcZJO+XWf6ofLUXpRwiTZakGMn8EE1uVa2" + + "LgczOjwWHGi99MFjxSer5m9\\n1tCa3/KEGKiS/YL71JvjwX3mb+cewlkcmweBKZHM2JPTk0ZednFSpVZMtycjkbLa" + + "\\ndYOS8V85AgMBewECggEBAKksaldajfDZDV6nGqbFjMiizAKJolr/M3OQw16K6o3/\\n0S31xIe3sSlgW0+UbYlF" + + "4U8KifhManD1apVSC3csafaspP4RZUHFhtBywLO9pR5c\\nr6S5aLp+gPWFyIp1pfXbWGvc5VY/v9x7ya1VEa6rXvL" + + "sKupSeWAW4tMj3eo/64ge\\nsdaceaLYw52KeBYiT6+vpsnYrEkAHO1fF/LavbLLOFJmFTMxmsNaG0tuiJHgjshB\\" + + "n82DpMCbXG9YcCgI/DbzuIjsdj2JC1cascSP//3PmefWysucBQe7Jryb6NQtASmnv\\nCdDw/0jmZTEjpe4S1lxfHp" + + "lAhHFtdgYTvyYtaLZiVVkCgYEA8eVpof2rceecw/I6\\n5ng1q3Hl2usdWV/4mZMvR0fOemacLLfocX6IYxT1zA1FF" + + "JlbXSRsJMf/Qq39mOR2\\nSpW+hr4jCoHeRVYLgsbggtrevGmILAlNoqCMpGZ6vDmJpq6ECV9olliDvpPgWOP+\\nm" + + "YPDreFBGxWvQrADNbRt2dmGsrsCgYEAyUHqB2wvJHFqdmeBsaacewzV8x9WgmeX\\ngUIi9REwXlGDW0Mz50dxpxcK" + + "CAYn65+7TCnY5O/jmL0VRxU1J2mSWyWTo1C+17L0\\n3fUqjxL1pkefwecxwecvC+gFFYdJ4CQ/MHHXU81Lwl1iWdF" + + "Cd2UoGddYaOF+KNeM\\nHC7cmqra+JsCgYEAlUNywzq8nUg7282E+uICfCB0LfwejuymR93CtsFgb7cRd6ak\\nECR" + + "8FGfCpH8ruWJINllbQfcHVCX47ndLZwqv3oVFKh6pAS/vVI4dpOepP8++7y1u\\ncoOvtreXCX6XqfrWDtKIvv0vjl" + + "HBhhhp6mCcRpdQjV38H7JsyJ7lih/oNjECgYAt\\nkndj5uNl5SiuVxHFhcZJO+XWf6ofLUregtevZakGMn8EE1uVa" + + "2AY7eafmoU/nZPT\\n00YB0TBATdCbn/nBSuKDESkhSg9s2GEKQZG5hBmL5uCMfo09z3SfxZIhJdlerreP\\nJ7gSi" + + "dI12N+EZxYd4xIJh/HFDgp7RRO87f+WJkofMQKBgGTnClK1VMaCRbJZPriw\\nEfeFCoOX75MxKwXs6xgrw4W//AYG" + + "GUjDt83lD6AZP6tws7gJ2IwY/qP7+lyhjEqN\\nHtfPZRGFkGZsdaksdlaksd323423d+15/UvrlRSFPNj1tWQmNKk" + + "XyRDW4IG1Oa2p\\nrALStNBx5Y9t0/LQnFI4w3aG\\n-----END PRIVATE KEY-----\\n\",\n" + + " \"client_email\": \"someclientid@developer.gserviceaccount.com\",\n" + + " \"client_id\": \"someclientid.apps.googleusercontent.com\",\n" + + " \"type\": \"service_account\"\n" + + "}"; private static final InputStream JSON_KEY_STREAM = new ByteArrayInputStream(JSON_KEY.getBytes()); - @Rule - public ExpectedException thrown = ExpectedException.none(); + @Rule public ExpectedException thrown = ExpectedException.none(); @Test public void testForceDelete() throws InterruptedException, ExecutionException { @@ -82,10 +82,8 @@ public void testCreateFromStream() { RemoteBigQueryHelper helper = RemoteBigQueryHelper.create(PROJECT_ID, JSON_KEY_STREAM); BigQueryOptions options = helper.getOptions(); assertEquals(PROJECT_ID, options.getProjectId()); - assertEquals(60000, - ((HttpTransportOptions) options.getTransportOptions()).getConnectTimeout()); - assertEquals(60000, - ((HttpTransportOptions) options.getTransportOptions()).getReadTimeout()); + assertEquals(60000, ((HttpTransportOptions) options.getTransportOptions()).getConnectTimeout()); + assertEquals(60000, ((HttpTransportOptions) options.getTransportOptions()).getReadTimeout()); assertEquals(10, options.getRetrySettings().getMaxAttempts()); assertEquals(Duration.ofMillis(30000), options.getRetrySettings().getMaxRetryDelay()); assertEquals(Duration.ofMillis(120000), options.getRetrySettings().getTotalTimeout()); From 692ffbd542c07186da33d7a95f10b2372519baf1 Mon Sep 17 00:00:00 2001 From: ajaaym <34161822+ajaaym@users.noreply.github.com> Date: Tue, 4 Dec 2018 12:11:16 -0500 Subject: [PATCH 0088/3441] BigQuery: insertAll always retries operation (#4165) * fix #3321 BigQuery insertAll always retries operation --- .../google/cloud/bigquery/BigQueryImpl.java | 25 ++++----- .../cloud/bigquery/BigQueryImplTest.java | 52 ++++++++++++++++++- 2 files changed, 63 insertions(+), 14 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 239354ce1c92..2c151a74e14e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -41,9 +41,9 @@ import com.google.common.base.Function; import com.google.common.base.Strings; import com.google.common.base.Supplier; +import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; import com.google.common.collect.Maps; import java.util.List; import java.util.Map; @@ -548,17 +548,18 @@ public InsertAllResponse insertAll(InsertAllRequest request) { // an anonymous inner class. final boolean[] allInsertIdsSet = {true}; List rowsPb = - Lists.transform( - request.getRows(), - new Function() { - @Override - public Rows apply(RowToInsert rowToInsert) { - allInsertIdsSet[0] &= rowToInsert.getId() != null; - return new Rows() - .setInsertId(rowToInsert.getId()) - .setJson(rowToInsert.getContent()); - } - }); + FluentIterable.from(request.getRows()) + .transform( + new Function() { + @Override + public Rows apply(RowToInsert rowToInsert) { + allInsertIdsSet[0] &= rowToInsert.getId() != null; + return new Rows() + .setInsertId(rowToInsert.getId()) + .setJson(rowToInsert.getContent()); + } + }) + .toList(); requestPb.setRows(rowsPb); TableDataInsertAllResponse responsePb; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 34498fa21a58..5d274bead3ec 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -801,7 +801,7 @@ public void testUpdateTableWithSelectedFields() { } @Test - public void testInsertAll() { + public void testInsertAllWithRowIdShouldRetry() { Map row1 = ImmutableMap.of("field", "value1"); Map row2 = ImmutableMap.of("field", "value2"); List rows = @@ -836,10 +836,17 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { new TableDataInsertAllResponse.InsertErrors() .setIndex(0L) .setErrors(ImmutableList.of(new ErrorProto().setMessage("ErrorMessage"))))); + EasyMock.expect(bigqueryRpcMock.insertAll(PROJECT, DATASET, TABLE, requestPb)) + .andThrow(new BigQueryException(500, "InternalError")); EasyMock.expect(bigqueryRpcMock.insertAll(PROJECT, DATASET, TABLE, requestPb)) .andReturn(responsePb); EasyMock.replay(bigqueryRpcMock); - bigquery = options.getService(); + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); InsertAllResponse response = bigquery.insertAll(request); assertNotNull(response.getErrorsFor(0L)); assertNull(response.getErrorsFor(1L)); @@ -847,6 +854,47 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { assertEquals("ErrorMessage", response.getErrorsFor(0L).get(0).getMessage()); } + @Test + public void testInsertAllWithoutRowIdShouldNotRetry() { + Map row1 = ImmutableMap.of("field", "value1"); + Map row2 = ImmutableMap.of("field", "value2"); + List rows = ImmutableList.of(RowToInsert.of(row1), RowToInsert.of(row2)); + InsertAllRequest request = + InsertAllRequest.newBuilder(TABLE_ID) + .setRows(rows) + .setSkipInvalidRows(false) + .setIgnoreUnknownValues(true) + .setTemplateSuffix("suffix") + .build(); + TableDataInsertAllRequest requestPb = + new TableDataInsertAllRequest() + .setRows( + Lists.transform( + rows, + new Function() { + @Override + public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { + return new TableDataInsertAllRequest.Rows() + .setInsertId(rowToInsert.getId()) + .setJson(rowToInsert.getContent()); + } + })) + .setSkipInvalidRows(false) + .setIgnoreUnknownValues(true) + .setTemplateSuffix("suffix"); + EasyMock.expect(bigqueryRpcMock.insertAll(PROJECT, DATASET, TABLE, requestPb)) + .andThrow(new BigQueryException(500, "InternalError")); + EasyMock.replay(bigqueryRpcMock); + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + thrown.expect(BigQueryException.class); + bigquery.insertAll(request); + } + @Test public void testInsertAllWithProject() { Map row1 = ImmutableMap.of("field", "value1"); From fd315ad016423f109599c678de2b5228ec14a752 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Tue, 4 Dec 2018 14:58:41 -0800 Subject: [PATCH 0089/3441] Remove exclusions for guava-jdk5 and google-api-client (#4177) We've updated the apiary clients to versions that no longer need these exclusions. --- google-cloud-bigquery/pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 852536e8ab8e..fe0b3bb15eca 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -40,12 +40,6 @@ com.google.apis google-api-services-bigquery compile - - - com.google.guava - guava-jdk5 - - ${project.groupId} From 680836c1c3cba43bfb80e0d513871846fe666f82 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 5 Dec 2018 14:09:06 -0800 Subject: [PATCH 0090/3441] Document purpose of test-jar and testlib dependencies (#4164) --- google-cloud-bigquery/pom.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index fe0b3bb15eca..515c99a99eac 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -41,6 +41,8 @@ google-api-services-bigquery compile + + ${project.groupId} google-cloud-core From 0fc7c61441a55c6925272baeb30596f920d00d03 Mon Sep 17 00:00:00 2001 From: ajaaym <34161822+ajaaym@users.noreply.github.com> Date: Wed, 5 Dec 2018 22:12:11 -0500 Subject: [PATCH 0091/3441] BigQuery: Allow job to extract or load table across projects (#4183) * Fix #3924 ExtractJobConfiguration's setProjectId makes cross-project BQ extracts impossible --- .../cloud/bigquery/CopyJobConfiguration.java | 10 ++++-- .../bigquery/ExtractJobConfiguration.java | 6 +++- .../cloud/bigquery/LoadJobConfiguration.java | 6 +++- .../cloud/bigquery/QueryJobConfiguration.java | 4 ++- .../bigquery/CopyJobConfigurationTest.java | 33 +++++++++++++++++-- .../bigquery/ExtractJobConfigurationTest.java | 16 +++++++-- .../bigquery/LoadJobConfigurationTest.java | 16 +++++++-- .../bigquery/QueryJobConfigurationTest.java | 19 +++++++++-- 8 files changed, 95 insertions(+), 15 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java index 3199a29918e5..7403a66131e9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java @@ -21,6 +21,7 @@ import com.google.api.services.bigquery.model.JobConfigurationTableCopy; import com.google.common.base.Function; import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import java.util.List; @@ -216,10 +217,15 @@ CopyJobConfiguration setProjectId(final String projectId) { new Function() { @Override public TableId apply(TableId tableId) { - return tableId.setProjectId(projectId); + if (Strings.isNullOrEmpty(tableId.getProject())) { + return tableId.setProjectId(projectId); + } + return tableId; } })); - builder.setDestinationTable(getDestinationTable().setProjectId(projectId)); + if (Strings.isNullOrEmpty(getDestinationTable().getProject())) { + builder.setDestinationTable(getDestinationTable().setProjectId(projectId)); + } return builder.build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java index d1ed9b994eaf..bcacbc211fb7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java @@ -20,6 +20,7 @@ import com.google.api.services.bigquery.model.JobConfigurationExtract; import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import java.util.List; import java.util.Objects; @@ -215,7 +216,10 @@ public int hashCode() { @Override ExtractJobConfiguration setProjectId(String projectId) { - return toBuilder().setSourceTable(getSourceTable().setProjectId(projectId)).build(); + if (Strings.isNullOrEmpty(getSourceTable().getProject())) { + return toBuilder().setSourceTable(getSourceTable().setProjectId(projectId)).build(); + } + return this; } @Override diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index 5cfad8dad38e..d11f17081e2e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -20,6 +20,7 @@ import com.google.api.services.bigquery.model.JobConfigurationLoad; import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; import java.util.List; @@ -398,7 +399,10 @@ public int hashCode() { @Override LoadJobConfiguration setProjectId(String projectId) { - return toBuilder().setDestinationTable(getDestinationTable().setProjectId(projectId)).build(); + if (Strings.isNullOrEmpty(getDestinationTable().getProject())) { + return toBuilder().setDestinationTable(getDestinationTable().setProjectId(projectId)).build(); + } + return this; } @Override diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index af91ba064339..a5e741d7f8f3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -26,6 +26,7 @@ import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.common.base.Function; import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; @@ -769,7 +770,8 @@ public int hashCode() { @Override QueryJobConfiguration setProjectId(String projectId) { Builder builder = toBuilder(); - if (getDestinationTable() != null) { + if (getDestinationTable() != null + && Strings.isNullOrEmpty(getDestinationTable().getProject())) { builder.setDestinationTable(getDestinationTable().setProjectId(projectId)); } if (getDefaultDataset() != null) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java index 6e155b0f33d0..73a29936de77 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java @@ -22,12 +22,15 @@ import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.common.base.Function; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; import java.util.List; import org.junit.Test; public class CopyJobConfigurationTest { + private static final String TEST_PROJECT_ID = "test-project-id"; private static final TableId SOURCE_TABLE = TableId.of("dataset", "sourceTable"); private static final List SOURCE_TABLES = ImmutableList.of( @@ -115,10 +118,34 @@ public void testToPbAndFromPb() { @Test public void testSetProjectId() { - CopyJobConfiguration configuration = COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.setProjectId("p"); - assertEquals("p", configuration.getDestinationTable().getProject()); + CopyJobConfiguration configuration = + COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.setProjectId(TEST_PROJECT_ID); + assertEquals(TEST_PROJECT_ID, configuration.getDestinationTable().getProject()); for (TableId sourceTable : configuration.getSourceTables()) { - assertEquals("p", sourceTable.getProject()); + assertEquals(TEST_PROJECT_ID, sourceTable.getProject()); + } + } + + @Test + public void testSetProjectIdDoNotOverride() { + CopyJobConfiguration configuration = + COPY_JOB_CONFIGURATION_MULTIPLE_TABLES + .toBuilder() + .setSourceTables( + Lists.transform( + SOURCE_TABLES, + new Function() { + @Override + public TableId apply(TableId tableId) { + return tableId.setProjectId(TEST_PROJECT_ID); + } + })) + .setDestinationTable(DESTINATION_TABLE.setProjectId(TEST_PROJECT_ID)) + .build() + .setProjectId("do-not-update"); + assertEquals(TEST_PROJECT_ID, configuration.getDestinationTable().getProject()); + for (TableId sourceTable : configuration.getSourceTables()) { + assertEquals(TEST_PROJECT_ID, sourceTable.getProject()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java index 3ac686ac14b8..d621a82985fb 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java @@ -26,6 +26,7 @@ public class ExtractJobConfigurationTest { + private static final String TEST_PROJECT_ID = "test-project-id"; private static final List DESTINATION_URIS = ImmutableList.of("uri1", "uri2"); private static final String DESTINATION_URI = "uri1"; private static final TableId TABLE_ID = TableId.of("dataset", "table"); @@ -118,8 +119,19 @@ public void testToPbAndFromPb() { @Test public void testSetProjectId() { - ExtractJobConfiguration configuration = EXTRACT_CONFIGURATION.setProjectId("p"); - assertEquals("p", configuration.getSourceTable().getProject()); + ExtractJobConfiguration configuration = EXTRACT_CONFIGURATION.setProjectId(TEST_PROJECT_ID); + assertEquals(TEST_PROJECT_ID, configuration.getSourceTable().getProject()); + } + + @Test + public void testSetProjectIdDoNotOverride() { + ExtractJobConfiguration configuration = + EXTRACT_CONFIGURATION + .toBuilder() + .setSourceTable(TABLE_ID.setProjectId(TEST_PROJECT_ID)) + .build() + .setProjectId("do-not-update"); + assertEquals(TEST_PROJECT_ID, configuration.getSourceTable().getProject()); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index d143ce85d794..85184d88e069 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -29,6 +29,7 @@ public class LoadJobConfigurationTest { + private static final String TEST_PROJECT_ID = "test-project-id"; private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder() .setAllowJaggedRows(true) @@ -146,8 +147,19 @@ public void testToPbAndFromPb() { @Test public void testSetProjectId() { - LoadConfiguration configuration = LOAD_CONFIGURATION_CSV.setProjectId("p"); - assertEquals("p", configuration.getDestinationTable().getProject()); + LoadConfiguration configuration = LOAD_CONFIGURATION_CSV.setProjectId(TEST_PROJECT_ID); + assertEquals(TEST_PROJECT_ID, configuration.getDestinationTable().getProject()); + } + + @Test + public void testSetProjectIdDoNotOverride() { + LoadConfiguration configuration = + LOAD_CONFIGURATION_CSV + .toBuilder() + .setDestinationTable(TABLE_ID.setProjectId(TEST_PROJECT_ID)) + .build() + .setProjectId("do-not-update"); + assertEquals(TEST_PROJECT_ID, configuration.getDestinationTable().getProject()); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index 2ecc0c800e94..dee9c7ebcf65 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -33,6 +33,7 @@ public class QueryJobConfigurationTest { + private static final String TEST_PROJECT_ID = "test-project-id"; private static final String QUERY = "BigQuery SQL"; private static final DatasetId DATASET_ID = DatasetId.of("dataset"); private static final TableId TABLE_ID = TableId.of("dataset", "table"); @@ -140,9 +141,21 @@ public void testToPbAndFromPb() { @Test public void testSetProjectId() { - QueryJobConfiguration configuration = QUERY_JOB_CONFIGURATION.setProjectId("p"); - assertEquals("p", configuration.getDefaultDataset().getProject()); - assertEquals("p", configuration.getDestinationTable().getProject()); + QueryJobConfiguration configuration = QUERY_JOB_CONFIGURATION.setProjectId(TEST_PROJECT_ID); + assertEquals(TEST_PROJECT_ID, configuration.getDefaultDataset().getProject()); + assertEquals(TEST_PROJECT_ID, configuration.getDestinationTable().getProject()); + } + + @Test + public void testSetProjectIdDoNotOverride() { + QueryJobConfiguration configuration = + QUERY_JOB_CONFIGURATION + .toBuilder() + .setDestinationTable(TABLE_ID.setProjectId(TEST_PROJECT_ID)) + .build() + .setProjectId("update-only-on-dataset"); + assertEquals("update-only-on-dataset", configuration.getDefaultDataset().getProject()); + assertEquals(TEST_PROJECT_ID, configuration.getDestinationTable().getProject()); } @Test From 16e985abebfff45986b7f9fdb6fe3a78b1aba56e Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 6 Dec 2018 16:31:48 -0800 Subject: [PATCH 0092/3441] Release google-cloud-java v0.73.0 (#4191) * Release v0.73.0 * Fix version replacements * Move Spanner to GA section * Fix doclint option * Fix pom issues for Bigtable emulator --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 242a001c616b..461957bb8090 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.54.0 + 1.55.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.54.0' +compile 'com.google.cloud:google-cloud-bigquery:1.55.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.54.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.55.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 515c99a99eac..e40081a88b3f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.54.1-SNAPSHOT + 1.55.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.72.1-alpha-SNAPSHOT + 0.73.0-alpha google-cloud-bigquery From e520d434d592499d1f8b716cdedb41dda1aab6e2 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 6 Dec 2018 16:38:05 -0800 Subject: [PATCH 0093/3441] Bump next snapshot (#4192) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e40081a88b3f..964f58505f41 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.55.0 + 1.55.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.73.0-alpha + 0.73.1-alpha-SNAPSHOT google-cloud-bigquery From 1552696063033d22c86534d9d8703ff7fe4e3c67 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 13 Dec 2018 02:24:16 +0530 Subject: [PATCH 0094/3441] Fix setProjectId for insertAll (#4196) --- .../google/cloud/bigquery/BigQueryImpl.java | 8 ++- .../cloud/bigquery/BigQueryImplTest.java | 51 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 2c151a74e14e..9f2d46dbf46f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -539,7 +539,13 @@ public Table apply(com.google.api.services.bigquery.model.Table table) { @Override public InsertAllResponse insertAll(InsertAllRequest request) { - final TableId tableId = request.getTable().setProjectId(getOptions().getProjectId()); + final TableId tableId = + request + .getTable() + .setProjectId( + Strings.isNullOrEmpty(request.getTable().getProject()) + ? getOptions().getProjectId() + : request.getTable().getProject()); final TableDataInsertAllRequest requestPb = new TableDataInsertAllRequest(); requestPb.setIgnoreUnknownValues(request.ignoreUnknownValues()); requestPb.setSkipInvalidRows(request.skipInvalidRows()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 5d274bead3ec..9b67445acd13 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -945,6 +945,57 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { assertEquals("ErrorMessage", response.getErrorsFor(0L).get(0).getMessage()); } + @Test + public void testInsertAllWithProjectInTable() { + Map row1 = ImmutableMap.of("field", "value1"); + Map row2 = ImmutableMap.of("field", "value2"); + List rows = + ImmutableList.of(new RowToInsert("row1", row1), new RowToInsert("row2", row2)); + TableId tableId = TableId.of("project-different-from-option", DATASET, TABLE); + InsertAllRequest request = + InsertAllRequest.newBuilder(tableId) + .setRows(rows) + .setSkipInvalidRows(false) + .setIgnoreUnknownValues(true) + .setTemplateSuffix("suffix") + .build(); + TableDataInsertAllRequest requestPb = + new TableDataInsertAllRequest() + .setRows( + Lists.transform( + rows, + new Function() { + @Override + public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { + return new TableDataInsertAllRequest.Rows() + .setInsertId(rowToInsert.getId()) + .setJson(rowToInsert.getContent()); + } + })) + .setSkipInvalidRows(false) + .setIgnoreUnknownValues(true) + .setTemplateSuffix("suffix"); + TableDataInsertAllResponse responsePb = + new TableDataInsertAllResponse() + .setInsertErrors( + ImmutableList.of( + new TableDataInsertAllResponse.InsertErrors() + .setIndex(0L) + .setErrors(ImmutableList.of(new ErrorProto().setMessage("ErrorMessage"))))); + EasyMock.expect( + bigqueryRpcMock.insertAll("project-different-from-option", DATASET, TABLE, requestPb)) + .andReturn(responsePb); + EasyMock.replay(bigqueryRpcMock); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); + InsertAllResponse response = bigquery.insertAll(request); + assertNotNull(response.getErrorsFor(0L)); + assertNull(response.getErrorsFor(1L)); + assertEquals(1, response.getErrorsFor(0L).size()); + assertEquals("ErrorMessage", response.getErrorsFor(0L).get(0).getMessage()); + } + @Test public void testListTableData() { EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) From bc65943c73440954ec1589b0006ec94cca1a60b5 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 13 Dec 2018 15:10:31 -0800 Subject: [PATCH 0095/3441] Release v0.74.0 (#4222) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 461957bb8090..1bff07db0c84 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.55.0 + 1.56.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.55.0' +compile 'com.google.cloud:google-cloud-bigquery:1.56.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.55.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.56.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 964f58505f41..f13ef1a545e7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.55.1-SNAPSHOT + 1.56.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.73.1-alpha-SNAPSHOT + 0.74.0-alpha google-cloud-bigquery From 6015c7fe2351ce6a27eeffc9914fba8d7c9ce97b Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 13 Dec 2018 16:26:54 -0800 Subject: [PATCH 0096/3441] Bump next snapshot (#4224) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f13ef1a545e7..7ba225c6ab06 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.56.0 + 1.56.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.74.0-alpha + 0.74.1-alpha-SNAPSHOT google-cloud-bigquery From 3c86785fc2d4bcd29f6767cc9f49ad2f9a074859 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Sat, 15 Dec 2018 02:21:06 +0530 Subject: [PATCH 0097/3441] BigQuery : Fix setProjectId (#4227) * Fix Change in TableId behaviour for non default BigQueryClient project * Fix setProjectId for TableInfo * add test cases and fix writechannel * fix format code --- .../main/java/com/google/cloud/bigquery/BigQueryImpl.java | 6 +++++- .../main/java/com/google/cloud/bigquery/TableInfo.java | 6 +++++- .../google/cloud/bigquery/WriteChannelConfiguration.java | 6 +++++- .../java/com/google/cloud/bigquery/TableInfoTest.java | 7 +++++++ .../cloud/bigquery/WriteChannelConfigurationTest.java | 8 ++++++++ 5 files changed, 30 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 9f2d46dbf46f..e30b0ffd2156 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -625,7 +625,11 @@ private static Tuple, Long> listTableData( final BigQueryOptions serviceOptions, final Map optionsMap) { try { - final TableId completeTableId = tableId.setProjectId(serviceOptions.getProjectId()); + final TableId completeTableId = + tableId.setProjectId( + Strings.isNullOrEmpty(serviceOptions.getProjectId()) + ? tableId.getProject() + : serviceOptions.getProjectId()); TableDataList result = runWithRetries( new Callable() { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java index 2ed0891a83fd..37831cf943e4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -20,6 +20,7 @@ import static com.google.common.base.Preconditions.checkNotNull; import com.google.api.client.util.Data; +import com.google.api.client.util.Strings; import com.google.api.core.BetaApi; import com.google.api.services.bigquery.model.Table; import com.google.common.base.Function; @@ -396,7 +397,10 @@ public static TableInfo of(TableId tableId, TableDefinition definition) { } TableInfo setProjectId(String projectId) { - return toBuilder().setTableId(getTableId().setProjectId(projectId)).build(); + if (Strings.isNullOrEmpty(getTableId().getProject())) { + return toBuilder().setTableId(getTableId().setProjectId(projectId)).build(); + } + return this; } Table toPb() { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java index 308042fbf7e5..d84d8b60a392 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java @@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkNotNull; +import com.google.api.client.util.Strings; import com.google.api.services.bigquery.model.JobConfigurationLoad; import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; @@ -390,7 +391,10 @@ public int hashCode() { } WriteChannelConfiguration setProjectId(String projectId) { - return toBuilder().setDestinationTable(getDestinationTable().setProjectId(projectId)).build(); + if (Strings.isNullOrEmpty(getDestinationTable().getProject())) { + return toBuilder().setDestinationTable(getDestinationTable().setProjectId(projectId)).build(); + } + return this; } com.google.api.services.bigquery.model.JobConfiguration toPb() { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java index cfc0d646fc00..98434713478d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java @@ -226,6 +226,13 @@ public void testSetProjectId() { assertEquals("project", VIEW_INFO.setProjectId("project").getTableId().getProject()); } + @Test + public void testSetProjectIdDoNotOverride() { + TableInfo tableInfo = TableInfo.of(TABLE_ID, TABLE_DEFINITION).setProjectId("project"); + tableInfo.setProjectId("not-override-project").toBuilder(); + assertEquals("project", tableInfo.getTableId().getProject()); + } + private void compareTableInfo(TableInfo expected, TableInfo value) { assertEquals(expected, value); assertEquals(expected.getTableId(), value.getTableId()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java index b3a0b7a9e90c..9fe80612a059 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java @@ -164,6 +164,14 @@ public void testToPbAndFromPb() { compareLoadConfiguration(configuration, WriteChannelConfiguration.fromPb(configuration.toPb())); } + @Test + public void testSetProjectIdDoNotOverride() { + WriteChannelConfiguration configuration = + WriteChannelConfiguration.of(TABLE_ID).setProjectId("project"); + configuration.setProjectId("different-project").toBuilder(); + assertEquals("project", configuration.getDestinationTable().getProject()); + } + private void compareLoadConfiguration( WriteChannelConfiguration expected, WriteChannelConfiguration value) { assertEquals(expected, value); From ef672937f80f050a3e5bd66c793ec2846bb7912c Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Fri, 14 Dec 2018 14:08:18 -0800 Subject: [PATCH 0098/3441] Add BadRecords to LoadStatistics (#4230) --- .../google/cloud/bigquery/JobStatistics.java | 21 +++++++++++++++++-- .../cloud/bigquery/JobStatisticsTest.java | 5 +++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 633a0bdbfdd3..ac6e4a85750a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -175,6 +175,7 @@ public static class LoadStatistics extends JobStatistics { private final Long inputFiles; private final Long outputBytes; private final Long outputRows; + private final Long badRecords; static final class Builder extends JobStatistics.Builder { @@ -182,6 +183,7 @@ static final class Builder extends JobStatistics.Builder REFERENCED_TABLES = ImmutableList.of(TableId.of("foo", "bar", "table1"), TableId.of("foo", "bar", "table2")); private static final List FILE_COUNT = ImmutableList.of(1L, 2L, 3L); @@ -74,6 +75,7 @@ public class JobStatisticsTest { .setInputFiles(INPUT_FILES) .setOutputBytes(OUTPUT_BYTES) .setOutputRows(OUTPUT_ROWS) + .setBadRecords(BAD_RECORDS) .build(); private static final LoadStatistics LOAD_STATISTICS_INCOMPLETE = LoadStatistics.newBuilder() @@ -82,6 +84,7 @@ public class JobStatisticsTest { .setStartTime(START_TIME) .setInputBytes(INPUT_BYTES) .setInputFiles(INPUT_FILES) + .setBadRecords(BAD_RECORDS) .build(); private static final List SUBSTEPS1 = ImmutableList.of("substep1", "substep2"); private static final List SUBSTEPS2 = ImmutableList.of("substep3", "substep4"); @@ -168,6 +171,7 @@ public void testBuilder() { assertEquals(INPUT_FILES, LOAD_STATISTICS.getInputFiles()); assertEquals(OUTPUT_BYTES, LOAD_STATISTICS.getOutputBytes()); assertEquals(OUTPUT_ROWS, LOAD_STATISTICS.getOutputRows()); + assertEquals(BAD_RECORDS, LOAD_STATISTICS.getBadRecords()); assertEquals(CREATION_TIME, QUERY_STATISTICS.getCreationTime()); assertEquals(START_TIME, QUERY_STATISTICS.getStartTime()); @@ -192,6 +196,7 @@ public void testBuilder() { assertEquals(END_TIME, LOAD_STATISTICS_INCOMPLETE.getEndTime()); assertEquals(INPUT_BYTES, LOAD_STATISTICS_INCOMPLETE.getInputBytes()); assertEquals(INPUT_FILES, LOAD_STATISTICS_INCOMPLETE.getInputFiles()); + assertEquals(BAD_RECORDS, LOAD_STATISTICS_INCOMPLETE.getBadRecords()); assertEquals(null, LOAD_STATISTICS_INCOMPLETE.getOutputBytes()); assertEquals(null, LOAD_STATISTICS_INCOMPLETE.getOutputRows()); From 9361c311ac64b9ba97e561301fc9ca3629553733 Mon Sep 17 00:00:00 2001 From: Nikola Taushanov Date: Fri, 28 Dec 2018 20:26:44 +0200 Subject: [PATCH 0099/3441] Fix NPE in BQ's StandardTableDefinition (#4247) --- .../bigquery/StandardTableDefinition.java | 19 +++++++++++++------ .../bigquery/StandardTableDefinitionTest.java | 5 +++++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index 880372b2b733..f12e6b608a91 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -57,12 +57,12 @@ public static class StreamingBuffer implements Serializable { } /** Returns a lower-bound estimate of the number of rows currently in the streaming buffer. */ - public long getEstimatedRows() { + public Long getEstimatedRows() { return estimatedRows; } /** Returns a lower-bound estimate of the number of bytes currently in the streaming buffer. */ - public long getEstimatedBytes() { + public Long getEstimatedBytes() { return estimatedBytes; } @@ -95,10 +95,17 @@ public boolean equals(Object obj) { } Streamingbuffer toPb() { - return new Streamingbuffer() - .setEstimatedBytes(BigInteger.valueOf(estimatedBytes)) - .setEstimatedRows(BigInteger.valueOf(estimatedRows)) - .setOldestEntryTime(BigInteger.valueOf(oldestEntryTime)); + Streamingbuffer buffer = new Streamingbuffer(); + if (estimatedBytes != null) { + buffer.setEstimatedBytes(BigInteger.valueOf(estimatedBytes)); + } + if (estimatedRows != null) { + buffer.setEstimatedRows(BigInteger.valueOf(estimatedRows)); + } + if (oldestEntryTime != null) { + buffer.setOldestEntryTime(BigInteger.valueOf(oldestEntryTime)); + } + return buffer; } static StreamingBuffer fromPb(Streamingbuffer streamingBufferPb) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java index 79414fa5e6c2..d70d33fb119b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -120,6 +120,11 @@ public void testFromPbWithNullEstimatedRowsAndBytes() { TABLE_DEFINITION.toPb().setStreamingBuffer(new Streamingbuffer())); } + @Test + public void testStreamingBufferWithNullFieldsToPb() { + new StreamingBuffer(null, null, null).toPb(); + } + private void compareStandardTableDefinition( StandardTableDefinition expected, StandardTableDefinition value) { assertEquals(expected, value); From a037fc88276b287782e25d98b5c76d58e8defe80 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 2 Jan 2019 23:21:58 +0530 Subject: [PATCH 0100/3441] BigQuery: Fix Maximum Bytes Billed property. (#4262) * Fix Maximum Bytes Billed * remove whitespace --- .../cloud/bigquery/QueryJobConfiguration.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index a5e741d7f8f3..9bc906a1fa17 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -60,6 +60,7 @@ public final class QueryJobConfiguration extends JobConfiguration { private final Boolean dryRun; private final Boolean useLegacySql; private final Integer maximumBillingTier; + private final Long maximumBytesBilled; private final List schemaUpdateOptions; private final EncryptionConfiguration destinationEncryptionConfiguration; private final TimePartitioning timePartitioning; @@ -104,6 +105,7 @@ public static final class Builder private Boolean dryRun; private Boolean useLegacySql = false; private Integer maximumBillingTier; + private Long maximumBytesBilled; private List schemaUpdateOptions; private EncryptionConfiguration destinationEncryptionConfiguration; private TimePartitioning timePartitioning; @@ -131,6 +133,7 @@ private Builder(QueryJobConfiguration jobConfiguration) { this.dryRun = jobConfiguration.dryRun; this.useLegacySql = jobConfiguration.useLegacySql; this.maximumBillingTier = jobConfiguration.maximumBillingTier; + this.maximumBytesBilled = jobConfiguration.maximumBytesBilled; this.schemaUpdateOptions = jobConfiguration.schemaUpdateOptions; this.destinationEncryptionConfiguration = jobConfiguration.destinationEncryptionConfiguration; this.timePartitioning = jobConfiguration.timePartitioning; @@ -167,6 +170,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (queryConfigurationPb.getMaximumBillingTier() != null) { maximumBillingTier = queryConfigurationPb.getMaximumBillingTier(); } + if (queryConfigurationPb.getMaximumBytesBilled() != null) { + maximumBytesBilled = queryConfigurationPb.getMaximumBytesBilled(); + } dryRun = configurationPb.getDryRun(); if (queryConfigurationPb.getDestinationTable() != null) { destinationTable = TableId.fromPb(queryConfigurationPb.getDestinationTable()); @@ -482,6 +488,18 @@ public Builder setMaximumBillingTier(Integer maximumBillingTier) { return this; } + /** + * Limits the bytes billed for this job. Queries that will have bytes billed beyond this limit + * will fail (without incurring a charge). If unspecified, this will be set to your project + * default. + * + * @param maximumBytesBilled maximum bytes billed for this job + */ + public Builder setMaximumBytesBilled(Long maximumBytesBilled) { + this.maximumBytesBilled = maximumBytesBilled; + return this; + } + /** * [Experimental] Sets options allowing the schema of the destination table to be updated as a * side effect of the query job. Schema update options are supported in two cases: when @@ -538,6 +556,7 @@ private QueryJobConfiguration(Builder builder) { this.dryRun = builder.dryRun; this.useLegacySql = builder.useLegacySql; this.maximumBillingTier = builder.maximumBillingTier; + this.maximumBytesBilled = builder.maximumBytesBilled; this.schemaUpdateOptions = builder.schemaUpdateOptions; this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; this.timePartitioning = builder.timePartitioning; @@ -685,6 +704,11 @@ public Integer getMaximumBillingTier() { return maximumBillingTier; } + /** Returns the optional bytes billed limit for this job. */ + public Long getMaximumBytesBilled() { + return maximumBytesBilled; + } + /** * [Experimental] Returns options allowing the schema of the destination table to be updated as a * side effect of the query job. Schema update options are supported in two cases: when @@ -731,6 +755,7 @@ ToStringHelper toStringHelper() { .add("dryRun", dryRun) .add("useLegacySql", useLegacySql) .add("maximumBillingTier", maximumBillingTier) + .add("maximumBytesBilled", maximumBytesBilled) .add("schemaUpdateOptions", schemaUpdateOptions) .add("timePartitioning", timePartitioning) .add("clustering", clustering); @@ -762,6 +787,7 @@ public int hashCode() { dryRun, useLegacySql, maximumBillingTier, + maximumBytesBilled, schemaUpdateOptions, timePartitioning, clustering); @@ -835,6 +861,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (maximumBillingTier != null) { queryConfigurationPb.setMaximumBillingTier(maximumBillingTier); } + if (maximumBytesBilled != null) { + queryConfigurationPb.setMaximumBytesBilled(maximumBytesBilled); + } if (schemaUpdateOptions != null) { ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); for (JobInfo.SchemaUpdateOption schemaUpdateOption : schemaUpdateOptions) { From a3116cf13178a059d2d4008f4131b6235be9d59a Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 4 Jan 2019 01:31:11 +0530 Subject: [PATCH 0101/3441] BigQuery : Fix numBytes, numRows in TableInfo/Table (#4271) * Fix NumBytes and NumRows * update NumBytes and NumRows * remove setter * update methods and resolved test case --- .../java/com/google/cloud/bigquery/Table.java | 14 ++++++- .../com/google/cloud/bigquery/TableInfo.java | 38 +++++++++++++++++++ .../google/cloud/bigquery/TableInfoTest.java | 5 +++ 3 files changed, 56 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java index 7fee00952bae..d38957bd6186 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java @@ -21,10 +21,10 @@ import com.google.cloud.bigquery.BigQuery.JobOption; import com.google.cloud.bigquery.BigQuery.TableDataListOption; import com.google.cloud.bigquery.BigQuery.TableOption; -import com.google.cloud.bigquery.TableInfo.Builder; import com.google.common.collect.ImmutableList; import java.io.IOException; import java.io.ObjectInputStream; +import java.math.BigInteger; import java.util.List; import java.util.Map; import java.util.Objects; @@ -102,6 +102,18 @@ Builder setLastModifiedTime(Long lastModifiedTime) { return this; } + @Override + Builder setNumBytes(Long numBytes) { + infoBuilder.setNumBytes(numBytes); + return this; + } + + @Override + Builder setNumRows(BigInteger numRows) { + infoBuilder.setNumRows(numRows); + return this; + } + @Override Builder setSelfLink(String selfLink) { infoBuilder.setSelfLink(selfLink); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java index 37831cf943e4..8fad66d20a7e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -65,6 +65,8 @@ public Table apply(TableInfo tableInfo) { private final Long creationTime; private final Long expirationTime; private final Long lastModifiedTime; + private final Long numBytes; + private final BigInteger numRows; private final TableDefinition definition; private final EncryptionConfiguration encryptionConfiguration; private final Labels labels; @@ -92,6 +94,10 @@ public abstract static class Builder { abstract Builder setLastModifiedTime(Long lastModifiedTime); + abstract Builder setNumBytes(Long numBytes); + + abstract Builder setNumRows(BigInteger numRows); + abstract Builder setSelfLink(String selfLink); /** Sets the table identity. */ @@ -134,6 +140,8 @@ static class BuilderImpl extends Builder { private Long creationTime; private Long expirationTime; private Long lastModifiedTime; + private Long numBytes; + private BigInteger numRows; private TableDefinition definition; private EncryptionConfiguration encryptionConfiguration; private Labels labels = Labels.ZERO; @@ -150,6 +158,8 @@ static class BuilderImpl extends Builder { this.creationTime = tableInfo.creationTime; this.expirationTime = tableInfo.expirationTime; this.lastModifiedTime = tableInfo.lastModifiedTime; + this.numBytes = tableInfo.numBytes; + this.numRows = tableInfo.numRows; this.definition = tableInfo.definition; this.encryptionConfiguration = tableInfo.encryptionConfiguration; this.labels = tableInfo.labels; @@ -167,6 +177,8 @@ static class BuilderImpl extends Builder { this.etag = tablePb.getEtag(); this.generatedId = tablePb.getId(); this.selfLink = tablePb.getSelfLink(); + this.numBytes = tablePb.getNumBytes(); + this.numRows = tablePb.getNumRows(); this.definition = TableDefinition.fromPb(tablePb); if (tablePb.getEncryptionConfiguration() != null) { this.encryptionConfiguration = @@ -217,6 +229,18 @@ Builder setLastModifiedTime(Long lastModifiedTime) { return this; } + @Override + Builder setNumBytes(Long numBytes) { + this.numBytes = numBytes; + return this; + } + + @Override + Builder setNumRows(BigInteger numRows) { + this.numRows = numRows; + return this; + } + @Override Builder setSelfLink(String selfLink) { this.selfLink = selfLink; @@ -263,6 +287,8 @@ public TableInfo build() { this.creationTime = builder.creationTime; this.expirationTime = builder.expirationTime; this.lastModifiedTime = builder.lastModifiedTime; + this.numBytes = builder.numBytes; + this.numRows = builder.numRows; this.definition = builder.definition; this.encryptionConfiguration = builder.encryptionConfiguration; labels = builder.labels; @@ -329,6 +355,16 @@ public T getDefinition() { return (T) definition; } + /** Returns the size of this table in bytes */ + public Long getNumBytes() { + return numBytes; + } + + /** Returns the number of rows of data in this table */ + public BigInteger getNumRows() { + return numRows; + } + /** * Return a map for labels applied to the table. * @@ -357,6 +393,8 @@ public String toString() { .add("expirationTime", expirationTime) .add("creationTime", creationTime) .add("lastModifiedTime", lastModifiedTime) + .add("numBytes", numBytes) + .add("numRows", numRows) .add("definition", definition) .add("encryptionConfiguration", encryptionConfiguration) .add("labels", labels) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java index 98434713478d..6e35ce6cb620 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java @@ -20,6 +20,7 @@ import static org.junit.Assert.assertNull; import com.google.common.collect.ImmutableList; +import java.math.BigInteger; import java.util.Collections; import java.util.List; import org.junit.Test; @@ -93,6 +94,8 @@ public class TableInfoTest { .setFriendlyName(FRIENDLY_NAME) .setGeneratedId(GENERATED_ID) .setLastModifiedTime(LAST_MODIFIED_TIME) + .setNumBytes(NUM_BYTES) + .setNumRows(BigInteger.valueOf(NUM_ROWS)) .setSelfLink(SELF_LINK) .setLabels(Collections.singletonMap("a", "b")) .build(); @@ -244,6 +247,8 @@ private void compareTableInfo(TableInfo expected, TableInfo value) { assertEquals(expected.getFriendlyName(), value.getFriendlyName()); assertEquals(expected.getGeneratedId(), value.getGeneratedId()); assertEquals(expected.getLastModifiedTime(), value.getLastModifiedTime()); + assertEquals(expected.getNumBytes(), value.getNumBytes()); + assertEquals(expected.getNumRows(), value.getNumRows()); assertEquals(expected.getSelfLink(), value.getSelfLink()); assertEquals(expected.getLabels(), value.getLabels()); assertEquals(expected.hashCode(), value.hashCode()); From fe17e27ca0300697fbec2b84237e6093f02dd6db Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Thu, 3 Jan 2019 17:15:46 -0500 Subject: [PATCH 0102/3441] Release v0.75.0 (#4282) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 1bff07db0c84..18a0267af110 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.56.0 + 1.57.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.56.0' +compile 'com.google.cloud:google-cloud-bigquery:1.57.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.56.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.57.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7ba225c6ab06..473f468b3b41 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.56.1-SNAPSHOT + 1.57.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.74.1-alpha-SNAPSHOT + 0.75.0-alpha google-cloud-bigquery From fce28cc22910957c839ef8abc6e2e02b371285af Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Thu, 3 Jan 2019 17:46:17 -0500 Subject: [PATCH 0103/3441] Bump next snapshot (#4286) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 473f468b3b41..f7088e2db0c3 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.57.0 + 1.57.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.75.0-alpha + 0.75.1-alpha-SNAPSHOT google-cloud-bigquery From b30eed648bf7dfbb2d8c33b0efc141665e175a90 Mon Sep 17 00:00:00 2001 From: romlogic <45241349+romlogic@users.noreply.github.com> Date: Mon, 7 Jan 2019 17:00:05 -0600 Subject: [PATCH 0104/3441] updated links (#4287) * updated links * updated link * added new line --- .../src/main/java/com/google/cloud/bigquery/Field.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index 41f357e661b5..72b84a93ae31 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -105,7 +105,7 @@ public Builder setName(String name) { * @throws IllegalArgumentException if {@code type == LegacySQLTypeName.RECORD && * subFields.length == 0} or if {@code type != LegacySQLTypeName.RECORD && subFields.length * != 0} - * @see Data + * @see Data * Types */ public Builder setType(LegacySQLTypeName type, Field... subFields) { @@ -121,7 +121,7 @@ public Builder setType(LegacySQLTypeName type, Field... subFields) { * @throws IllegalArgumentException if {@code type == LegacySQLTypeName.RECORD && (subFields == * null || subFields.isEmpty())} or if {@code type != LegacySQLTypeName.RECORD && subFields * != null} - * @see Data + * @see Data * Types */ public Builder setType(LegacySQLTypeName type, FieldList subFields) { @@ -175,7 +175,7 @@ public String getName() { /** * Returns the field type. * - * @see Data + * @see Data * Types */ public LegacySQLTypeName getType() { From 4477c443dc8886353c48e1907be33dbe22f4eff8 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Mon, 7 Jan 2019 16:22:41 -0800 Subject: [PATCH 0105/3441] Release v0.76.0 (#4298) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 18a0267af110..8532db06d8e8 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.57.0 + 1.58.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.57.0' +compile 'com.google.cloud:google-cloud-bigquery:1.58.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.57.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.58.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f7088e2db0c3..3d497bd76e12 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.57.1-SNAPSHOT + 1.58.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.75.1-alpha-SNAPSHOT + 0.76.0-alpha google-cloud-bigquery From df4cf32512505f86066ef9cb934e475a837e8b44 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Tue, 8 Jan 2019 08:50:39 -0800 Subject: [PATCH 0106/3441] Bump next snapshot (#4300) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3d497bd76e12..5bbda202daeb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.58.0 + 1.58.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.76.0-alpha + 0.76.1-alpha-SNAPSHOT google-cloud-bigquery From 38aad2853062f673c2747d477209226da3575c0a Mon Sep 17 00:00:00 2001 From: charlesliqlogic <45208557+charlesliqlogic@users.noreply.github.com> Date: Wed, 9 Jan 2019 17:24:21 -0500 Subject: [PATCH 0107/3441] Bigquery: corrected equality check on subclasses of StringEnumValue (#4283) * Bigquery: corrected equality check on subclasses of StringEnumValue * update format for FieldTest.java --- .../java/com/google/cloud/bigquery/Field.java | 3 ++- .../java/com/google/cloud/bigquery/Job.java | 10 ++++----- .../com/google/cloud/bigquery/FieldTest.java | 21 +++++++++++++++++++ 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index 72b84a93ae31..ba0e45e5f358 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -125,7 +125,8 @@ public Builder setType(LegacySQLTypeName type, Field... subFields) { * Types */ public Builder setType(LegacySQLTypeName type, FieldList subFields) { - if (type == LegacySQLTypeName.RECORD) { + // LegacySQLTypeName is not an enum, cannot use reference equal. + if (LegacySQLTypeName.RECORD.equals(type)) { if (subFields == null || subFields.isEmpty()) { throw new IllegalArgumentException( "The " + type + " field must have at least one sub-field"); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index 0643c268b7e0..9a61192c4045 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -189,7 +189,7 @@ public boolean exists() { public boolean isDone() { checkNotDryRun("isDone"); Job job = bigquery.getJob(getJobId(), JobOption.fields(BigQuery.JobField.STATUS)); - return job == null || job.getStatus().getState() == JobStatus.State.DONE; + return job == null || JobStatus.State.DONE.equals(job.getStatus().getState()); } /** * Blocks until this job completes its execution, either failing or succeeding. This method @@ -293,7 +293,7 @@ public TableResult getQueryResults(QueryResultsOption... options) // Get the job resource to determine if it has errored. Job job = this; - if (job.getStatus() == null || job.getStatus().getState() != JobStatus.State.DONE) { + if (job.getStatus() == null || !JobStatus.State.DONE.equals(job.getStatus().getState())) { job = reload(); } if (job.getStatus() != null && job.getStatus().getError() != null) { @@ -362,7 +362,7 @@ public TimedAttemptSettings createNextAttempt( @Override public boolean shouldRetry(Throwable prevThrowable, Job prevResponse) { return prevResponse != null - && prevResponse.getStatus().getState() != JobStatus.State.DONE; + && !JobStatus.State.DONE.equals(prevResponse.getStatus().getState()); } }, options.getClock()); @@ -377,7 +377,7 @@ public boolean shouldRetry(Throwable prevThrowable, Job prevResponse) { *

    Example of reloading all fields until job status is DONE. * *

    {@code
    -   * while (job.getStatus().getState() != JobStatus.State.DONE) {
    +   * while (!JobStatus.State.DONE.equals(job.getStatus().getState())) {
        *   Thread.sleep(1000L);
        *   job = job.reload();
        * }
    @@ -386,7 +386,7 @@ public boolean shouldRetry(Throwable prevThrowable, Job prevResponse) {
        * 

    Example of reloading status field until job status is DONE. * *

    {@code
    -   * while (job.getStatus().getState() != JobStatus.State.DONE) {
    +   * while (!JobStatus.State.DONE.equals(job.getStatus().getState())) {
        *   Thread.sleep(1000L);
        *   job = job.reload(BigQuery.JobOption.fields(BigQuery.JobField.STATUS));
        * }
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java
    index ffa545cf91f6..4ba5ad0929a0 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java
    @@ -18,6 +18,11 @@
     
     import static org.junit.Assert.assertEquals;
     
    +import java.io.ByteArrayInputStream;
    +import java.io.ByteArrayOutputStream;
    +import java.io.InputStream;
    +import java.io.ObjectInputStream;
    +import java.io.ObjectOutputStream;
     import org.junit.Test;
     
     public class FieldTest {
    @@ -92,6 +97,22 @@ public void testToAndFromPb() {
         compareFieldSchemas(field, Field.fromPb(field.toPb()));
       }
     
    +  @Test
    +  public void testSubFieldWithClonedType() throws Exception {
    +    LegacySQLTypeName record = LegacySQLTypeName.RECORD;
    +    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    +    ObjectOutputStream oos = new ObjectOutputStream(baos);
    +    oos.writeObject(record);
    +    oos.flush();
    +    oos.close();
    +    InputStream is = new ByteArrayInputStream(baos.toByteArray());
    +    ObjectInputStream ois = new ObjectInputStream(is);
    +    LegacySQLTypeName clonedRecord = (LegacySQLTypeName) ois.readObject();
    +    ois.close();
    +
    +    Field.of("field", clonedRecord, Field.of("subfield", LegacySQLTypeName.BOOLEAN));
    +  }
    +
       private void compareFieldSchemas(Field expected, Field value) {
         assertEquals(expected, value);
         assertEquals(expected.getName(), value.getName());
    
    From cb75cf4fa1a564458a70fd3bf463f777a7e07ad2 Mon Sep 17 00:00:00 2001
    From: kolea2 <45548808+kolea2@users.noreply.github.com>
    Date: Thu, 10 Jan 2019 16:03:52 -0500
    Subject: [PATCH 0108/3441] Release v0.77.0 (#4324)
    
    ---
     google-cloud-bigquery/README.md | 6 +++---
     google-cloud-bigquery/pom.xml   | 4 ++--
     2 files changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md
    index 8532db06d8e8..74c49aae4e62 100644
    --- a/google-cloud-bigquery/README.md
    +++ b/google-cloud-bigquery/README.md
    @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file
     
       com.google.cloud
       google-cloud-bigquery
    -  1.58.0
    +  1.59.0
     
     ```
     If you are using Gradle, add this to your dependencies
     ```Groovy
    -compile 'com.google.cloud:google-cloud-bigquery:1.58.0'
    +compile 'com.google.cloud:google-cloud-bigquery:1.59.0'
     ```
     If you are using SBT, add this to your dependencies
     ```Scala
    -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.58.0"
    +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.59.0"
     ```
     [//]: # ({x-version-update-end})
     
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 5bbda202daeb..07d7ea3b6aab 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.58.1-SNAPSHOT
    +  1.59.0
       jar
       Google Cloud BigQuery
       https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.76.1-alpha-SNAPSHOT
    +    0.77.0-alpha
       
       
         google-cloud-bigquery
    
    From d03a1c5a5379c1c3a068eebcbd5f6ae2ce8d4a68 Mon Sep 17 00:00:00 2001
    From: kolea2 <45548808+kolea2@users.noreply.github.com>
    Date: Thu, 10 Jan 2019 20:31:39 -0500
    Subject: [PATCH 0109/3441] Bump next snapshot (#4325)
    
    ---
     google-cloud-bigquery/pom.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 07d7ea3b6aab..9ea24b93a95b 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.59.0
    +  1.59.1-SNAPSHOT
       jar
       Google Cloud BigQuery
       https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.77.0-alpha
    +    0.77.1-alpha-SNAPSHOT
       
       
         google-cloud-bigquery
    
    From d8c034f259f4953e69f712f07e38133587bfed8d Mon Sep 17 00:00:00 2001
    From: Jeff Ching 
    Date: Tue, 15 Jan 2019 11:23:49 -0800
    Subject: [PATCH 0110/3441] BigQuery: Fix NPE for null table schema fields
     (#4338)
    
    * Add failing test for empty table schema
    
    * Fix NPE if table schema returns null for fields
    ---
     .../src/main/java/com/google/cloud/bigquery/Schema.java  | 9 ++++++++-
     .../test/java/com/google/cloud/bigquery/SchemaTest.java  | 8 ++++++++
     2 files changed, 16 insertions(+), 1 deletion(-)
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java
    index 81c8cd279694..c2061c6777d9 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java
    @@ -18,10 +18,13 @@
     
     import static com.google.common.base.Preconditions.checkNotNull;
     
    +import com.google.api.services.bigquery.model.TableFieldSchema;
     import com.google.api.services.bigquery.model.TableSchema;
     import com.google.common.base.Function;
     import com.google.common.base.MoreObjects;
     import java.io.Serializable;
    +import java.util.Collections;
    +import java.util.List;
     import java.util.Objects;
     
     /** This class represents the schema for a Google BigQuery Table or data source. */
    @@ -90,6 +93,10 @@ TableSchema toPb() {
       }
     
       static Schema fromPb(com.google.api.services.bigquery.model.TableSchema tableSchemaPb) {
    -    return Schema.of(FieldList.fromPb(tableSchemaPb.getFields()));
    +    List fields = tableSchemaPb.getFields();
    +    if (fields == null) {
    +      fields = Collections.emptyList();
    +    }
    +    return Schema.of(FieldList.fromPb(fields));
       }
     }
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java
    index 4e8fedc5d4a4..090bb8a27a03 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java
    @@ -18,6 +18,7 @@
     
     import static org.junit.Assert.assertEquals;
     
    +import com.google.api.services.bigquery.model.TableSchema;
     import com.google.common.collect.ImmutableList;
     import java.util.List;
     import org.junit.Test;
    @@ -57,4 +58,11 @@ private void compareTableSchema(Schema expected, Schema value) {
         assertEquals(expected, value);
         assertEquals(expected.getFields(), value.getFields());
       }
    +
    +  @Test
    +  public void testEmptySchema() {
    +    TableSchema tableSchema = new TableSchema();
    +    Schema schema = Schema.fromPb(tableSchema);
    +    assertEquals(0, schema.getFields().size());
    +  }
     }
    
    From 3d56e3e0f775d68836919c9e833436feb6eafac9 Mon Sep 17 00:00:00 2001
    From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com>
    Date: Thu, 17 Jan 2019 13:26:07 -0800
    Subject: [PATCH 0111/3441] Release google-cloud-java v0.78.0 (#4386)
    
    ---
     google-cloud-bigquery/README.md | 6 +++---
     google-cloud-bigquery/pom.xml   | 4 ++--
     2 files changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md
    index 74c49aae4e62..e48d46b30c7e 100644
    --- a/google-cloud-bigquery/README.md
    +++ b/google-cloud-bigquery/README.md
    @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file
     
       com.google.cloud
       google-cloud-bigquery
    -  1.59.0
    +  1.60.0
     
     ```
     If you are using Gradle, add this to your dependencies
     ```Groovy
    -compile 'com.google.cloud:google-cloud-bigquery:1.59.0'
    +compile 'com.google.cloud:google-cloud-bigquery:1.60.0'
     ```
     If you are using SBT, add this to your dependencies
     ```Scala
    -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.59.0"
    +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.60.0"
     ```
     [//]: # ({x-version-update-end})
     
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 9ea24b93a95b..7cc11724d2af 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.59.1-SNAPSHOT
    +  1.60.0
       jar
       Google Cloud BigQuery
       https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.77.1-alpha-SNAPSHOT
    +    0.78.0-alpha
       
       
         google-cloud-bigquery
    
    From 353331d434bdc0fc2ae65d81222771c9f2db0d97 Mon Sep 17 00:00:00 2001
    From: Jeff Ching 
    Date: Fri, 18 Jan 2019 10:02:52 -0800
    Subject: [PATCH 0112/3441] Bump next snapshot (#4391)
    
    ---
     google-cloud-bigquery/pom.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 7cc11724d2af..2b463a218aa3 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.60.0
    +  1.60.1-SNAPSHOT
       jar
       Google Cloud BigQuery
       https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.78.0-alpha
    +    0.78.1-alpha-SNAPSHOT
       
       
         google-cloud-bigquery
    
    From 122508dc27ab018cc19f85e23cd4b015d5517eb0 Mon Sep 17 00:00:00 2001
    From: kolea2 <45548808+kolea2@users.noreply.github.com>
    Date: Wed, 23 Jan 2019 15:28:46 -0500
    Subject: [PATCH 0113/3441] Release v0.79.0 (#4402)
    
    ---
     google-cloud-bigquery/README.md | 6 +++---
     google-cloud-bigquery/pom.xml   | 4 ++--
     2 files changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md
    index e48d46b30c7e..c037a9e8ffb9 100644
    --- a/google-cloud-bigquery/README.md
    +++ b/google-cloud-bigquery/README.md
    @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file
     
       com.google.cloud
       google-cloud-bigquery
    -  1.60.0
    +  1.61.0
     
     ```
     If you are using Gradle, add this to your dependencies
     ```Groovy
    -compile 'com.google.cloud:google-cloud-bigquery:1.60.0'
    +compile 'com.google.cloud:google-cloud-bigquery:1.61.0'
     ```
     If you are using SBT, add this to your dependencies
     ```Scala
    -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.60.0"
    +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.61.0"
     ```
     [//]: # ({x-version-update-end})
     
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 2b463a218aa3..f63d77ba7c34 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.60.1-SNAPSHOT
    +  1.61.0
       jar
       Google Cloud BigQuery
       https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.78.1-alpha-SNAPSHOT
    +    0.79.0-alpha
       
       
         google-cloud-bigquery
    
    From eda5b6ade9b0ffeb8e190bfbc41ef067df088bb8 Mon Sep 17 00:00:00 2001
    From: Solomon Duskis 
    Date: Wed, 23 Jan 2019 19:18:53 -0500
    Subject: [PATCH 0114/3441] Removing some unused dependencies (#4385)
    
    * Removing some unused dependencies
    Also, reducing scope of auto-value to provided.
    
    * Restoring Firestore auto-value
    
    * Removing more instances of easymock.
    ---
     google-cloud-bigquery/pom.xml | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index f63d77ba7c34..147f759ad2ca 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -29,7 +29,7 @@
         
           com.google.auto.value
           auto-value
    -      compile
    +      provided
         
         
           ${project.groupId}
    
    From a252143ee731e5c4313a005c78110b9392559107 Mon Sep 17 00:00:00 2001
    From: Solomon Duskis 
    Date: Wed, 23 Jan 2019 19:19:21 -0500
    Subject: [PATCH 0115/3441] Removing non-deprecated uses of joda time. (#4351)
    
    * Removing non-deprecated uses of joda time.
    This works towards #3482
    
    * Update pom.xml
    
    * Ran `mvn com.coveo:fmt-maven-plugin:format`
    
    * Fixing a bad merge
    ---
     .../cloud/bigquery/QueryParameterValue.java   | 33 ++++++++++++-------
     1 file changed, 21 insertions(+), 12 deletions(-)
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java
    index d74fc005f35c..5bf6b4e9f93a 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java
    @@ -27,9 +27,10 @@
     import java.util.ArrayList;
     import java.util.List;
     import javax.annotation.Nullable;
    -import org.joda.time.DateTimeZone;
    -import org.joda.time.format.DateTimeFormat;
    -import org.joda.time.format.DateTimeFormatter;
    +import org.threeten.bp.Instant;
    +import org.threeten.bp.ZoneOffset;
    +import org.threeten.bp.format.DateTimeFormatter;
    +import org.threeten.bp.format.DateTimeParseException;
     
     /**
      * A value for a QueryParameter along with its type.
    @@ -60,12 +61,12 @@
     public abstract class QueryParameterValue implements Serializable {
     
       private static final DateTimeFormatter timestampFormatter =
    -      DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSSSSSZZ").withZone(DateTimeZone.UTC);
    -  private static final DateTimeFormatter dateFormatter = DateTimeFormat.forPattern("yyyy-MM-dd");
    +      DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSSxxx").withZone(ZoneOffset.UTC);
    +  private static final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
       private static final DateTimeFormatter timeFormatter =
    -      DateTimeFormat.forPattern("HH:mm:ss.SSSSSS");
    +      DateTimeFormatter.ofPattern("HH:mm:ss.SSSSSS");
       private static final DateTimeFormatter datetimeFormatter =
    -      DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
    +      DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
     
       static final Function<
               QueryParameterValue, com.google.api.services.bigquery.model.QueryParameterValue>
    @@ -297,31 +298,31 @@ private static  String valueToStringOrNull(T value, StandardSQLTypeName type)
             throw new IllegalArgumentException("Cannot convert ARRAY to String value");
           case TIMESTAMP:
             if (value instanceof Long) {
    -          return timestampFormatter.print(((Long) value) / 1000);
    +          return timestampFormatter.format(Instant.ofEpochMilli(((Long) value) / 1000));
             } else if (value instanceof String) {
               // verify that the String is in the right format
    -          timestampFormatter.parseMillis((String) value);
    +          checkFormat(value, timestampFormatter);
               return (String) value;
             }
             break;
           case DATE:
             if (value instanceof String) {
               // verify that the String is in the right format
    -          dateFormatter.parseMillis((String) value);
    +          checkFormat(value, dateFormatter);
               return (String) value;
             }
             break;
           case TIME:
             if (value instanceof String) {
               // verify that the String is in the right format
    -          timeFormatter.parseMillis((String) value);
    +          checkFormat(value, timeFormatter);
               return (String) value;
             }
             break;
           case DATETIME:
             if (value instanceof String) {
               // verify that the String is in the right format
    -          datetimeFormatter.parseMillis((String) value);
    +          checkFormat(value, datetimeFormatter);
               return (String) value;
             }
             break;
    @@ -332,6 +333,14 @@ private static  String valueToStringOrNull(T value, StandardSQLTypeName type)
             "Type " + type + " incompatible with " + value.getClass().getCanonicalName());
       }
     
    +  private static void checkFormat(Object value, DateTimeFormatter formatter) {
    +    try {
    +      formatter.parse((String) value);
    +    } catch (DateTimeParseException e) {
    +      throw new IllegalArgumentException(e.getMessage(), e);
    +    }
    +  }
    +
       /** Returns a builder for a QueryParameterValue object with given value. */
       public abstract Builder toBuilder();
     
    
    From 998816acbcbe5b4ac82b4b3fe91bb1732e2ea730 Mon Sep 17 00:00:00 2001
    From: kolea2 <45548808+kolea2@users.noreply.github.com>
    Date: Thu, 24 Jan 2019 13:40:36 -0500
    Subject: [PATCH 0116/3441] Bump next snapshot (#4405)
    
    ---
     google-cloud-bigquery/pom.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 147f759ad2ca..067f9b2bb647 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.61.0
    +  1.61.1-SNAPSHOT
       jar
       Google Cloud BigQuery
       https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.79.0-alpha
    +    0.79.1-alpha-SNAPSHOT
       
       
         google-cloud-bigquery
    
    From 1f3470eca1110dd19b802ceb53b8205b494245b9 Mon Sep 17 00:00:00 2001
    From: Praful Makani 
    Date: Fri, 25 Jan 2019 23:56:47 +0530
    Subject: [PATCH 0117/3441] BigQuery : Fix Location configurable at
     BigQueryOptions (#4329)
    
    * Fix Location configurable from BigQueryOptions
    
    * modified code
    
    * modified code and add test case
    
    * removed unused location
    ---
     .../google/cloud/bigquery/BigQueryImpl.java   | 24 ++++++++--
     .../cloud/bigquery/BigQueryOptions.java       | 13 ++++++
     .../java/com/google/cloud/bigquery/JobId.java |  4 ++
     .../cloud/bigquery/BigQueryImplTest.java      | 46 +++++++++++++++++++
     4 files changed, 84 insertions(+), 3 deletions(-)
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java
    index e30b0ffd2156..09376fe13154 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java
    @@ -679,7 +679,13 @@ public Job getJob(String jobId, JobOption... options) {
       @Override
       public Job getJob(JobId jobId, JobOption... options) {
         final Map optionsMap = optionMap(options);
    -    final JobId completeJobId = jobId.setProjectId(getOptions().getProjectId());
    +    final JobId completeJobId =
    +        jobId
    +            .setProjectId(getOptions().getProjectId())
    +            .setLocation(
    +                jobId.getLocation() == null && getOptions().getLocation() != null
    +                    ? getOptions().getLocation()
    +                    : jobId.getLocation());
         try {
           com.google.api.services.bigquery.model.Job answer =
               runWithRetries(
    @@ -742,7 +748,13 @@ public boolean cancel(String jobId) {
     
       @Override
       public boolean cancel(JobId jobId) {
    -    final JobId completeJobId = jobId.setProjectId(getOptions().getProjectId());
    +    final JobId completeJobId =
    +        jobId
    +            .setProjectId(getOptions().getProjectId())
    +            .setLocation(
    +                jobId.getLocation() == null && getOptions().getLocation() != null
    +                    ? getOptions().getLocation()
    +                    : jobId.getLocation());
         try {
           return runWithRetries(
               new Callable() {
    @@ -784,7 +796,13 @@ private static QueryResponse getQueryResults(
           JobId jobId,
           final BigQueryOptions serviceOptions,
           final Map optionsMap) {
    -    final JobId completeJobId = jobId.setProjectId(serviceOptions.getProjectId());
    +    final JobId completeJobId =
    +        jobId
    +            .setProjectId(serviceOptions.getProjectId())
    +            .setLocation(
    +                jobId.getLocation() == null && serviceOptions.getLocation() != null
    +                    ? serviceOptions.getLocation()
    +                    : jobId.getLocation());
         try {
           GetQueryResultsResponse results =
               runWithRetries(
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java
    index 080bb57521f3..fecf5005f157 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java
    @@ -33,6 +33,7 @@ public class BigQueryOptions extends ServiceOptions {
       private static final String BIGQUERY_SCOPE = "https://www.googleapis.com/auth/bigquery";
       private static final Set SCOPES = ImmutableSet.of(BIGQUERY_SCOPE);
       private static final long serialVersionUID = -2437598817433266049L;
    +  private final String location;
     
       public static class DefaultBigQueryFactory implements BigQueryFactory {
     
    @@ -56,6 +57,8 @@ public ServiceRpc create(BigQueryOptions options) {
     
       public static class Builder extends ServiceOptions.Builder {
     
    +    private String location;
    +
         private Builder() {}
     
         private Builder(BigQueryOptions options) {
    @@ -71,6 +74,11 @@ public Builder setTransportOptions(TransportOptions transportOptions) {
           return super.setTransportOptions(transportOptions);
         }
     
    +    public Builder setLocation(String location) {
    +      this.location = location;
    +      return this;
    +    }
    +
         @Override
         public BigQueryOptions build() {
           return new BigQueryOptions(this);
    @@ -79,6 +87,7 @@ public BigQueryOptions build() {
     
       private BigQueryOptions(Builder builder) {
         super(BigQueryFactory.class, BigQueryRpcFactory.class, builder, new BigQueryDefaults());
    +    this.location = builder.location;
       }
     
       private static class BigQueryDefaults implements ServiceDefaults {
    @@ -112,6 +121,10 @@ protected BigQueryRpc getBigQueryRpcV2() {
         return (BigQueryRpc) getRpc();
       }
     
    +  public String getLocation() {
    +    return location;
    +  }
    +
       @SuppressWarnings("unchecked")
       @Override
       public Builder toBuilder() {
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java
    index 254e69647e1a..05f80bbf376f 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java
    @@ -101,6 +101,10 @@ JobId setProjectId(String projectId) {
         return getProject() != null ? this : toBuilder().setProject(projectId).build();
       }
     
    +  JobId setLocation(String location) {
    +    return getLocation() != null ? this : toBuilder().setLocation(location).build();
    +  }
    +
       JobReference toPb() {
         return new JobReference()
             .setProjectId(getProject())
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java
    index 9b67445acd13..6d3348cae0a6 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java
    @@ -66,6 +66,7 @@
     public class BigQueryImplTest {
     
       private static final String PROJECT = "project";
    +  private static final String LOCATION = "US";
       private static final String OTHER_PROJECT = "otherProject";
       private static final String DATASET = "dataset";
       private static final String TABLE = "table";
    @@ -293,6 +294,16 @@ private BigQueryOptions createBigQueryOptionsForProject(
             .build();
       }
     
    +  private BigQueryOptions createBigQueryOptionsForProjectWithLocation(
    +      String project, BigQueryRpcFactory rpcFactory) {
    +    return BigQueryOptions.newBuilder()
    +        .setProjectId(project)
    +        .setLocation(LOCATION)
    +        .setServiceRpcFactory(rpcFactory)
    +        .setRetrySettings(ServiceOptions.getNoRetrySettings())
    +        .build();
    +  }
    +
       @Before
       public void setUp() {
         rpcFactoryMock = EasyMock.createMock(BigQueryRpcFactory.class);
    @@ -1179,6 +1190,17 @@ public void testGetJob() {
         assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job);
       }
     
    +  @Test
    +  public void testGetJobWithLocation() {
    +    EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS))
    +        .andReturn(COMPLETE_COPY_JOB.toPb());
    +    EasyMock.replay(bigqueryRpcMock);
    +    BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock);
    +    bigquery = options.getService();
    +    Job job = bigquery.getJob(JOB);
    +    assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job);
    +  }
    +
       @Test
       public void testGetJobFromJobId() {
         EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS))
    @@ -1189,6 +1211,17 @@ public void testGetJobFromJobId() {
         assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job);
       }
     
    +  @Test
    +  public void testGetJobFromJobIdWithLocation() {
    +    EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS))
    +        .andReturn(COMPLETE_COPY_JOB.toPb());
    +    EasyMock.replay(bigqueryRpcMock);
    +    BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock);
    +    bigquery = options.getService();
    +    Job job = bigquery.getJob(JobId.of(JOB));
    +    assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job);
    +  }
    +
       @Test
       public void testGetJobFromJobIdWithProject() {
         JobId jobId = JobId.of(OTHER_PROJECT, JOB);
    @@ -1201,6 +1234,19 @@ public void testGetJobFromJobIdWithProject() {
         assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(jobInfo)), job);
       }
     
    +  @Test
    +  public void testGetJobFromJobIdWithProjectWithLocation() {
    +    JobId jobId = JobId.of(OTHER_PROJECT, JOB);
    +    JobInfo jobInfo = COPY_JOB.setProjectId(OTHER_PROJECT);
    +    EasyMock.expect(bigqueryRpcMock.getJob(OTHER_PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS))
    +        .andReturn(jobInfo.toPb());
    +    EasyMock.replay(bigqueryRpcMock);
    +    BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock);
    +    bigquery = options.getService();
    +    Job job = bigquery.getJob(jobId);
    +    assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(jobInfo)), job);
    +  }
    +
       @Test
       public void testListJobs() {
         bigquery = options.getService();
    
    From 8b4019dd587307e5ec56cf2209294279d2774ac9 Mon Sep 17 00:00:00 2001
    From: Mike Kaplinskiy 
    Date: Thu, 7 Feb 2019 08:00:29 -0800
    Subject: [PATCH 0118/3441] Empty table results can have a schema (#4185)
    
    * Update EmptyTableResult.java
    
    * Update Job.java
    
    * add test case
    ---
     .../cloud/bigquery/EmptyTableResult.java      |  5 +-
     .../java/com/google/cloud/bigquery/Job.java   |  2 +-
     .../com/google/cloud/bigquery/JobTest.java    | 49 +++++++++++++++++++
     3 files changed, 53 insertions(+), 3 deletions(-)
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java
    index 68112ef0b5ee..7cb5e1932fa3 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java
    @@ -18,6 +18,7 @@
     
     import com.google.api.core.InternalApi;
     import com.google.cloud.PageImpl;
    +import javax.annotation.Nullable;
     
     public class EmptyTableResult extends TableResult {
     
    @@ -25,7 +26,7 @@ public class EmptyTableResult extends TableResult {
     
       /** An empty {@code TableResult} to avoid making API requests to unlistable tables. */
       @InternalApi("Exposed for testing")
    -  public EmptyTableResult() {
    -    super(null, 0, new PageImpl(null, "", null));
    +  public EmptyTableResult(@Nullable Schema schema) {
    +    super(schema, 0, new PageImpl(null, "", null));
       }
     }
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java
    index 9a61192c4045..de018291d9d2 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java
    @@ -305,7 +305,7 @@ public TableResult getQueryResults(QueryResultsOption... options)
         // Listing table data might fail, such as with CREATE VIEW queries.
         // Avoid a tabledata.list API request by returning an empty TableResult.
         if (response.getTotalRows() == 0) {
    -      return new EmptyTableResult();
    +      return new EmptyTableResult(response.getSchema());
         }
     
         TableId table = ((QueryJobConfiguration) getConfiguration()).getDestinationTable();
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java
    index 57c6a1104eab..b259b237ea78 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java
    @@ -302,6 +302,55 @@ public Iterable getValues() {
         verify(status, mockOptions);
       }
     
    +  @Test
    +  public void testWaitForAndGetQueryResultsEmptyWithSchema() throws InterruptedException {
    +    QueryJobConfiguration jobConfig =
    +        QueryJobConfiguration.newBuilder("CREATE VIEW").setDestinationTable(TABLE_ID1).build();
    +    QueryStatistics jobStatistics =
    +        QueryStatistics.newBuilder()
    +            .setCreationTimestamp(1L)
    +            .setEndTime(3L)
    +            .setStartTime(2L)
    +            .build();
    +    JobInfo jobInfo =
    +        JobInfo.newBuilder(jobConfig)
    +            .setJobId(JOB_ID)
    +            .setStatistics(jobStatistics)
    +            .setJobId(JOB_ID)
    +            .setEtag(ETAG)
    +            .setGeneratedId(GENERATED_ID)
    +            .setSelfLink(SELF_LINK)
    +            .setUserEmail(EMAIL)
    +            .setStatus(JOB_STATUS)
    +            .build();
    +
    +    initializeExpectedJob(2, jobInfo);
    +    JobStatus status = createStrictMock(JobStatus.class);
    +    expect(bigquery.getOptions()).andReturn(mockOptions);
    +    expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()).times(2);
    +    Job completedJob = expectedJob.toBuilder().setStatus(status).build();
    +    QueryResponse completedQuery =
    +        QueryResponse.newBuilder()
    +            .setCompleted(true)
    +            .setTotalRows(0)
    +            .setSchema(Schema.of(Field.of("field1", LegacySQLTypeName.BOOLEAN)))
    +            .setErrors(ImmutableList.of())
    +            .build();
    +
    +    expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS))
    +        .andReturn(completedQuery);
    +    expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob);
    +    expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS))
    +        .andReturn(completedQuery);
    +
    +    replay(status, bigquery, mockOptions);
    +    initializeJob(jobInfo);
    +    assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameAs(completedJob);
    +    assertThat(job.getQueryResults().getSchema())
    +        .isEqualTo(Schema.of(Field.of("field1", LegacySQLTypeName.BOOLEAN)));
    +    verify(status, mockOptions);
    +  }
    +
       @Test
       public void testWaitForAndGetQueryResults() throws InterruptedException {
         QueryJobConfiguration jobConfig =
    
    From f48dc9327645ba27e530845fa7046355088d0d76 Mon Sep 17 00:00:00 2001
    From: kolea2 <45548808+kolea2@users.noreply.github.com>
    Date: Thu, 7 Feb 2019 15:05:30 -0500
    Subject: [PATCH 0119/3441] Release v0.80.0 (#4465)
    
    ---
     google-cloud-bigquery/README.md | 6 +++---
     google-cloud-bigquery/pom.xml   | 4 ++--
     2 files changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md
    index c037a9e8ffb9..e54e796fd8b3 100644
    --- a/google-cloud-bigquery/README.md
    +++ b/google-cloud-bigquery/README.md
    @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file
     
       com.google.cloud
       google-cloud-bigquery
    -  1.61.0
    +  1.62.0
     
     ```
     If you are using Gradle, add this to your dependencies
     ```Groovy
    -compile 'com.google.cloud:google-cloud-bigquery:1.61.0'
    +compile 'com.google.cloud:google-cloud-bigquery:1.62.0'
     ```
     If you are using SBT, add this to your dependencies
     ```Scala
    -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.61.0"
    +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.62.0"
     ```
     [//]: # ({x-version-update-end})
     
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 067f9b2bb647..5c141541ef3e 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.61.1-SNAPSHOT
    +  1.62.0
       jar
       Google Cloud BigQuery
       https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.79.1-alpha-SNAPSHOT
    +    0.80.0-alpha
       
       
         google-cloud-bigquery
    
    From 5f495d3d1ccc88ad789e6b2b92785f5efec39185 Mon Sep 17 00:00:00 2001
    From: kolea2 <45548808+kolea2@users.noreply.github.com>
    Date: Thu, 7 Feb 2019 18:53:34 -0500
    Subject: [PATCH 0120/3441] Bump next snapshot (#4467)
    
    ---
     google-cloud-bigquery/pom.xml | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index 5c141541ef3e..a8f7fa952248 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.62.0
    +  1.62.1-SNAPSHOT
       jar
       Google Cloud BigQuery
       https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.80.0-alpha
    +    0.80.1-alpha-SNAPSHOT
       
       
         google-cloud-bigquery
    
    From ff89f57c587fdc87fa208dd40c659694ba1b215d Mon Sep 17 00:00:00 2001
    From: Praful Makani 
    Date: Wed, 20 Feb 2019 02:11:18 +0530
    Subject: [PATCH 0121/3441] BigQuery: Fix support standard java date in
     QueryParameterValue classToType (#4489)
    
    * Fix Standard Date in QueryParameterValue classToType
    
    * remove Standard DateFormat and use Google Date
    
    * remove Standard DateFormat from Test case
    ---
     .../google/cloud/bigquery/QueryParameterValue.java  |  6 ++++++
     .../cloud/bigquery/QueryParameterValueTest.java     | 13 +++++++++++++
     2 files changed, 19 insertions(+)
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java
    index 5bf6b4e9f93a..64abfebfa328 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java
    @@ -25,6 +25,7 @@
     import java.io.Serializable;
     import java.math.BigDecimal;
     import java.util.ArrayList;
    +import java.util.Date;
     import java.util.List;
     import javax.annotation.Nullable;
     import org.threeten.bp.Instant;
    @@ -256,6 +257,8 @@ private static  StandardSQLTypeName classToType(Class type) {
           return StandardSQLTypeName.FLOAT64;
         } else if (BigDecimal.class.isAssignableFrom(type)) {
           return StandardSQLTypeName.NUMERIC;
    +    } else if (Date.class.isAssignableFrom(type)) {
    +      return StandardSQLTypeName.DATE;
         }
         throw new IllegalArgumentException("Unsupported object type for QueryParameter: " + type);
       }
    @@ -310,6 +313,9 @@ private static  String valueToStringOrNull(T value, StandardSQLTypeName type)
               // verify that the String is in the right format
               checkFormat(value, dateFormatter);
               return (String) value;
    +        } else if (value instanceof Date) {
    +          com.google.cloud.Date date = com.google.cloud.Date.fromJavaUtilDate((Date) value);
    +          return date.toString();
             }
             break;
           case TIME:
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java
    index 485b81e5e497..8047bf33d0f4 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java
    @@ -20,6 +20,8 @@
     
     import com.google.api.services.bigquery.model.QueryParameterType;
     import java.math.BigDecimal;
    +import java.text.ParseException;
    +import java.util.Date;
     import java.util.List;
     import org.junit.Test;
     
    @@ -204,6 +206,17 @@ public void testDate() {
         assertThat(value.getArrayValues()).isNull();
       }
     
    +  @Test
    +  public void testStandardDate() throws ParseException {
    +    com.google.cloud.Date gcDate = com.google.cloud.Date.parseDate("2016-09-18");
    +    Date date = com.google.cloud.Date.toJavaUtilDate(gcDate);
    +    QueryParameterValue value = QueryParameterValue.of(date, Date.class);
    +    assertThat(value.getValue()).isEqualTo("2016-09-18");
    +    assertThat(value.getType()).isEqualTo(StandardSQLTypeName.DATE);
    +    assertThat(value.getArrayType()).isNull();
    +    assertThat(value.getArrayValues()).isNull();
    +  }
    +
       @Test(expected = IllegalArgumentException.class)
       public void testInvalidDate() {
         // not supposed to have the time
    
    From 8abc87a3754a555bc39a38879649f0e574752a2f Mon Sep 17 00:00:00 2001
    From: Praful Makani 
    Date: Wed, 20 Feb 2019 20:27:06 +0530
    Subject: [PATCH 0122/3441] BigQuery: Fix timestamp parsing regression (#4510)
    
    * Fixes Bigquery Timestamp
    
    * modified code
    ---
     .../cloud/bigquery/QueryParameterValue.java   | 36 +++++++++++++++-
     .../bigquery/QueryParameterValueTest.java     | 42 +++++++++++++++++++
     2 files changed, 76 insertions(+), 2 deletions(-)
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java
    index 64abfebfa328..f137f7ab53c1 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java
    @@ -16,6 +16,11 @@
     
     package com.google.cloud.bigquery;
     
    +import static org.threeten.bp.temporal.ChronoField.HOUR_OF_DAY;
    +import static org.threeten.bp.temporal.ChronoField.MINUTE_OF_HOUR;
    +import static org.threeten.bp.temporal.ChronoField.NANO_OF_SECOND;
    +import static org.threeten.bp.temporal.ChronoField.SECOND_OF_MINUTE;
    +
     import com.google.api.services.bigquery.model.QueryParameterType;
     import com.google.auto.value.AutoValue;
     import com.google.common.base.Function;
    @@ -31,6 +36,7 @@
     import org.threeten.bp.Instant;
     import org.threeten.bp.ZoneOffset;
     import org.threeten.bp.format.DateTimeFormatter;
    +import org.threeten.bp.format.DateTimeFormatterBuilder;
     import org.threeten.bp.format.DateTimeParseException;
     
     /**
    @@ -62,7 +68,32 @@
     public abstract class QueryParameterValue implements Serializable {
     
       private static final DateTimeFormatter timestampFormatter =
    -      DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSSxxx").withZone(ZoneOffset.UTC);
    +      new DateTimeFormatterBuilder()
    +          .parseLenient()
    +          .append(DateTimeFormatter.ISO_LOCAL_DATE)
    +          .appendLiteral(' ')
    +          .appendValue(HOUR_OF_DAY, 2)
    +          .appendLiteral(':')
    +          .appendValue(MINUTE_OF_HOUR, 2)
    +          .optionalStart()
    +          .appendLiteral(':')
    +          .appendValue(SECOND_OF_MINUTE, 2)
    +          .optionalStart()
    +          .appendFraction(NANO_OF_SECOND, 6, 9, true)
    +          .optionalStart()
    +          .appendOffset("+HHMM", "+00:00")
    +          .optionalEnd()
    +          .toFormatter()
    +          .withZone(ZoneOffset.UTC);
    +  private static final DateTimeFormatter timestampValidator =
    +      new DateTimeFormatterBuilder()
    +          .parseLenient()
    +          .append(timestampFormatter)
    +          .optionalStart()
    +          .appendOffsetId()
    +          .optionalEnd()
    +          .toFormatter()
    +          .withZone(ZoneOffset.UTC);
       private static final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
       private static final DateTimeFormatter timeFormatter =
           DateTimeFormatter.ofPattern("HH:mm:ss.SSSSSS");
    @@ -304,7 +335,7 @@ private static  String valueToStringOrNull(T value, StandardSQLTypeName type)
               return timestampFormatter.format(Instant.ofEpochMilli(((Long) value) / 1000));
             } else if (value instanceof String) {
               // verify that the String is in the right format
    -          checkFormat(value, timestampFormatter);
    +          checkFormat(value, timestampValidator);
               return (String) value;
             }
             break;
    @@ -341,6 +372,7 @@ private static  String valueToStringOrNull(T value, StandardSQLTypeName type)
     
       private static void checkFormat(Object value, DateTimeFormatter formatter) {
         try {
    +
           formatter.parse((String) value);
         } catch (DateTimeParseException e) {
           throw new IllegalArgumentException(e.getMessage(), e);
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java
    index 8047bf33d0f4..44b7d8138a52 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java
    @@ -191,6 +191,25 @@ public void testTimestamp() {
         assertThat(value.getArrayValues()).isNull();
       }
     
    +  @Test
    +  public void testTimestampWithDateTimeFormatterBuilder() {
    +    QueryParameterValue value = QueryParameterValue.timestamp("2019-02-14 12:34:45.938993Z");
    +    assertThat(value.getValue()).isEqualTo("2019-02-14 12:34:45.938993Z");
    +    assertThat(value.getType()).isEqualTo(StandardSQLTypeName.TIMESTAMP);
    +    assertThat(value.getArrayType()).isNull();
    +    assertThat(value.getArrayValues()).isNull();
    +    QueryParameterValue value1 = QueryParameterValue.timestamp("2019-02-14 12:34:45.938993+0000");
    +    assertThat(value1.getValue()).isEqualTo("2019-02-14 12:34:45.938993+0000");
    +    assertThat(value1.getType()).isEqualTo(StandardSQLTypeName.TIMESTAMP);
    +    assertThat(value1.getArrayType()).isNull();
    +    assertThat(value1.getArrayValues()).isNull();
    +    QueryParameterValue value2 = QueryParameterValue.timestamp("2019-02-14 12:34:45.102+00:00");
    +    assertThat(value2.getValue()).isEqualTo("2019-02-14 12:34:45.102+00:00");
    +    assertThat(value2.getType()).isEqualTo(StandardSQLTypeName.TIMESTAMP);
    +    assertThat(value2.getArrayType()).isNull();
    +    assertThat(value2.getArrayValues()).isNull();
    +  }
    +
       @Test(expected = IllegalArgumentException.class)
       public void testInvalidTimestamp() {
         // missing the time
    @@ -282,6 +301,29 @@ public void testTimestampArray() {
             value.getArrayValues());
       }
     
    +  @Test
    +  public void testTimestampArrayWithDateTimeFormatterBuilder() {
    +    QueryParameterValue value =
    +        QueryParameterValue.array(
    +            new String[] {
    +              "2019-02-14 12:34:45.938993Z",
    +              "2019-02-14 12:34:45.938993+0000",
    +              "2019-02-14 12:34:45.102+00:00"
    +            },
    +            StandardSQLTypeName.TIMESTAMP);
    +    assertThat(value.getValue()).isNull();
    +    assertThat(value.getType()).isEqualTo(StandardSQLTypeName.ARRAY);
    +    assertThat(value.getArrayType()).isEqualTo(StandardSQLTypeName.TIMESTAMP);
    +    assertArrayDataEquals(
    +        new String[] {
    +          "2019-02-14 12:34:45.938993Z",
    +          "2019-02-14 12:34:45.938993+0000",
    +          "2019-02-14 12:34:45.102+00:00"
    +        },
    +        StandardSQLTypeName.TIMESTAMP,
    +        value.getArrayValues());
    +  }
    +
       @Test
       public void testFromEmptyArray() {
         QueryParameterType typePb =
    
    From c81959eab77502c1e3e3ea43acc691610f48daac Mon Sep 17 00:00:00 2001
    From: Praful Makani 
    Date: Thu, 21 Feb 2019 23:48:14 +0530
    Subject: [PATCH 0123/3441] BigQuery: Fixes Support for StandardSQLTypeName in
     Field.newBuilder(name, type). (#4483)
    
    * added Feature StandardSQLTypeName in Field.newBuilder()
    
    * modified methods
    
    * updated method
    
    * fix format
    
    * update comment
    ---
     .../java/com/google/cloud/bigquery/Field.java | 44 +++++++++++++
     .../cloud/bigquery/LegacySQLTypeName.java     | 15 +++++
     .../com/google/cloud/bigquery/FieldTest.java  | 63 +++++++++++++++++++
     3 files changed, 122 insertions(+)
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java
    index ba0e45e5f358..ffc8b3779aa6 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java
    @@ -112,6 +112,24 @@ public Builder setType(LegacySQLTypeName type, Field... subFields) {
           return setType(type, subFields.length > 0 ? FieldList.of(subFields) : null);
         }
     
    +    /**
    +     * Sets the type of the field.
    +     *
    +     * @param type BigQuery data type
    +     * @param subFields nested schema fields in case if {@code type} is {@link
    +     *     StandardSQLTypeName#STRUCT}, empty otherwise
    +     * @throws IllegalArgumentException if {@code type == StandardSQLTypeName.STRUCT &&
    +     *     subFields.length == 0} or if {@code type != StandardSQLTypeName.STRUCT &&
    +     *     subFields.length != 0}
    +     * @see Data
    +     *     Types
    +     */
    +    public Builder setType(StandardSQLTypeName type, Field... subFields) {
    +      return setType(
    +          LegacySQLTypeName.legacySQLTypeName(type),
    +          subFields.length > 0 ? FieldList.of(subFields) : null);
    +    }
    +
         /**
          * Sets the type of the field.
          *
    @@ -142,6 +160,22 @@ public Builder setType(LegacySQLTypeName type, FieldList subFields) {
           return this;
         }
     
    +    /**
    +     * Sets the type of the field.
    +     *
    +     * @param type BigQuery data type
    +     * @param subFields nested schema fields in case if {@code type} is {@link
    +     *     StandardSQLTypeName#STRUCT}, empty otherwise
    +     * @throws IllegalArgumentException if {@code type == StandardSQLTypeName.STRUCT &&
    +     *     subFields.length == 0} or if {@code type != StandardSQLTypeName.STRUCT &&
    +     *     subFields.length != 0}
    +     * @see Data
    +     *     Types
    +     */
    +    public Builder setType(StandardSQLTypeName type, FieldList subFields) {
    +      return setType(LegacySQLTypeName.legacySQLTypeName(type), subFields);
    +    }
    +
         /** Sets the mode of the field. When not specified {@link Mode#NULLABLE} is used. */
         public Builder setMode(Mode mode) {
           this.mode = mode != null ? mode.name() : Data.nullOf(String.class);
    @@ -241,11 +275,21 @@ public static Builder newBuilder(String name, LegacySQLTypeName type, Field... s
         return new Builder().setName(name).setType(type, subFields);
       }
     
    +  /** Returns a builder for a Field object with given name and type. */
    +  public static Builder newBuilder(String name, StandardSQLTypeName type, Field... subFields) {
    +    return new Builder().setName(name).setType(type, subFields);
    +  }
    +
       /** Returns a builder for a Field object with given name and type. */
       public static Builder newBuilder(String name, LegacySQLTypeName type, FieldList subFields) {
         return new Builder().setName(name).setType(type, subFields);
       }
     
    +  /** Returns a builder for a Field object with given name and type. */
    +  public static Builder newBuilder(String name, StandardSQLTypeName type, FieldList subFields) {
    +    return new Builder().setName(name).setType(type, subFields);
    +  }
    +
       TableFieldSchema toPb() {
         TableFieldSchema fieldSchemaPb = new TableFieldSchema();
         fieldSchemaPb.setName(name);
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java
    index 9c9b12ac8529..035ae8ed9cb0 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java
    @@ -19,6 +19,8 @@
     import com.google.api.core.ApiFunction;
     import com.google.cloud.StringEnumType;
     import com.google.cloud.StringEnumValue;
    +import java.util.HashMap;
    +import java.util.Map;
     
     /**
      * A type used in legacy SQL contexts. NOTE: some contexts use a mix of types; for example, for
    @@ -84,6 +86,14 @@ public LegacySQLTypeName apply(String constant) {
       public static final LegacySQLTypeName RECORD =
           type.createAndRegister("RECORD").setStandardType(StandardSQLTypeName.STRUCT);
     
    +  private static Map standardToLegacyMap = new HashMap<>();
    +
    +  static {
    +    for (LegacySQLTypeName legacySqlTypeName : LegacySQLTypeName.values()) {
    +      standardToLegacyMap.put(legacySqlTypeName.equivalent, legacySqlTypeName);
    +    }
    +  }
    +
       private StandardSQLTypeName equivalent;
     
       private LegacySQLTypeName setStandardType(StandardSQLTypeName equivalent) {
    @@ -96,6 +106,11 @@ public StandardSQLTypeName getStandardType() {
         return equivalent;
       }
     
    +  /** Converts StandardSQLTypeName to LegacySQLTypeName */
    +  public static LegacySQLTypeName legacySQLTypeName(StandardSQLTypeName type) {
    +    return standardToLegacyMap.get(type);
    +  }
    +
       private LegacySQLTypeName(String constant) {
         super(constant);
       }
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java
    index 4ba5ad0929a0..14900cc5d423 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java
    @@ -54,6 +54,25 @@ public class FieldTest {
               .setMode(FIELD_MODE3)
               .setDescription(FIELD_DESCRIPTION3)
               .build();
    +  private static final Field STANDARD_FIELD_SCHEMA1 =
    +      Field.newBuilder(FIELD_NAME1, StandardSQLTypeName.STRING)
    +          .setMode(FIELD_MODE1)
    +          .setDescription(FIELD_DESCRIPTION1)
    +          .build();
    +  private static final Field STANDARD_FIELD_SCHEMA2 =
    +      Field.newBuilder(FIELD_NAME2, StandardSQLTypeName.INT64)
    +          .setMode(FIELD_MODE2)
    +          .setDescription(FIELD_DESCRIPTION2)
    +          .build();
    +  private static final Field STANDARD_FIELD_SCHEMA3 =
    +      Field.newBuilder(
    +              FIELD_NAME3,
    +              StandardSQLTypeName.STRUCT,
    +              STANDARD_FIELD_SCHEMA1,
    +              STANDARD_FIELD_SCHEMA2)
    +          .setMode(FIELD_MODE3)
    +          .setDescription(FIELD_DESCRIPTION3)
    +          .build();
     
       @Test
       public void testToBuilder() {
    @@ -66,6 +85,17 @@ public void testToBuilder() {
         compareFieldSchemas(FIELD_SCHEMA1, field);
       }
     
    +  @Test
    +  public void testToBuilderWithStandardSQLTypeName() {
    +    compareFieldSchemas(STANDARD_FIELD_SCHEMA1, STANDARD_FIELD_SCHEMA1.toBuilder().build());
    +    compareFieldSchemas(STANDARD_FIELD_SCHEMA2, STANDARD_FIELD_SCHEMA2.toBuilder().build());
    +    compareFieldSchemas(STANDARD_FIELD_SCHEMA3, STANDARD_FIELD_SCHEMA3.toBuilder().build());
    +    Field field = STANDARD_FIELD_SCHEMA1.toBuilder().setDescription("New Description").build();
    +    assertEquals("New Description", field.getDescription());
    +    field = field.toBuilder().setDescription(FIELD_DESCRIPTION1).build();
    +    compareFieldSchemas(STANDARD_FIELD_SCHEMA1, field);
    +  }
    +
       @Test
       public void testToBuilderIncomplete() {
         Field field = Field.of(FIELD_NAME1, FIELD_TYPE1);
    @@ -74,6 +104,14 @@ public void testToBuilderIncomplete() {
         compareFieldSchemas(field, field.toBuilder().build());
       }
     
    +  @Test
    +  public void testToBuilderIncompleteWithStandardSQLTypeName() {
    +    Field field = Field.of(FIELD_NAME1, FIELD_TYPE1);
    +    compareFieldSchemas(field, field.toBuilder().build());
    +    field = Field.of(FIELD_NAME2, FIELD_TYPE3, STANDARD_FIELD_SCHEMA1, STANDARD_FIELD_SCHEMA2);
    +    compareFieldSchemas(field, field.toBuilder().build());
    +  }
    +
       @Test
       public void testBuilder() {
         assertEquals(FIELD_NAME1, FIELD_SCHEMA1.getName());
    @@ -88,6 +126,22 @@ public void testBuilder() {
         assertEquals(FieldList.of(FIELD_SCHEMA1, FIELD_SCHEMA2), FIELD_SCHEMA3.getSubFields());
       }
     
    +  @Test
    +  public void testBuilderWithStandardSQLTypeName() {
    +    assertEquals(FIELD_NAME1, STANDARD_FIELD_SCHEMA1.getName());
    +    assertEquals(FIELD_TYPE1, STANDARD_FIELD_SCHEMA1.getType());
    +    assertEquals(FIELD_MODE1, STANDARD_FIELD_SCHEMA1.getMode());
    +    assertEquals(FIELD_DESCRIPTION1, STANDARD_FIELD_SCHEMA1.getDescription());
    +    assertEquals(null, STANDARD_FIELD_SCHEMA1.getSubFields());
    +    assertEquals(FIELD_NAME3, STANDARD_FIELD_SCHEMA3.getName());
    +    assertEquals(FIELD_TYPE3, STANDARD_FIELD_SCHEMA3.getType());
    +    assertEquals(FIELD_MODE3, STANDARD_FIELD_SCHEMA3.getMode());
    +    assertEquals(FIELD_DESCRIPTION3, STANDARD_FIELD_SCHEMA3.getDescription());
    +    assertEquals(
    +        FieldList.of(STANDARD_FIELD_SCHEMA1, STANDARD_FIELD_SCHEMA2),
    +        STANDARD_FIELD_SCHEMA3.getSubFields());
    +  }
    +
       @Test
       public void testToAndFromPb() {
         compareFieldSchemas(FIELD_SCHEMA1, Field.fromPb(FIELD_SCHEMA1.toPb()));
    @@ -97,6 +151,15 @@ public void testToAndFromPb() {
         compareFieldSchemas(field, Field.fromPb(field.toPb()));
       }
     
    +  @Test
    +  public void testToAndFromPbWithStandardSQLTypeName() {
    +    compareFieldSchemas(STANDARD_FIELD_SCHEMA1, Field.fromPb(STANDARD_FIELD_SCHEMA1.toPb()));
    +    compareFieldSchemas(STANDARD_FIELD_SCHEMA2, Field.fromPb(STANDARD_FIELD_SCHEMA2.toPb()));
    +    compareFieldSchemas(STANDARD_FIELD_SCHEMA3, Field.fromPb(STANDARD_FIELD_SCHEMA3.toPb()));
    +    Field field = Field.newBuilder(FIELD_NAME1, FIELD_TYPE1).build();
    +    compareFieldSchemas(field, Field.fromPb(field.toPb()));
    +  }
    +
       @Test
       public void testSubFieldWithClonedType() throws Exception {
         LegacySQLTypeName record = LegacySQLTypeName.RECORD;
    
    From 6e27f37b445c9c5a2efdb74bd90ee1d59bbbc2ee Mon Sep 17 00:00:00 2001
    From: kolea2 <45548808+kolea2@users.noreply.github.com>
    Date: Thu, 21 Feb 2019 14:22:33 -0500
    Subject: [PATCH 0124/3441] Upgrade gax dependency to 1.40.0. (#4534)
    
    * Gax dependency upgrade
    
    * Gax dependency upgrade
    
    * code formatting fix
    
    * Moving google-http-client-apache dependency to storage.
    ---
     .../test/java/com/google/cloud/bigquery/FieldValueListTest.java | 2 +-
     .../src/test/java/com/google/cloud/bigquery/FieldValueTest.java | 2 +-
     2 files changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java
    index 15b72ec67f3d..779fd85a1091 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java
    @@ -56,7 +56,7 @@ public class FieldValueListTest {
       private final Map stringPb = ImmutableMap.of("v", "string");
       private final Map timestampPb = ImmutableMap.of("v", "42");
       private final Map bytesPb = ImmutableMap.of("v", BYTES_BASE64);
    -  private final Map nullPb = ImmutableMap.of("v", Data.nullOf(String.class));
    +  private final Map nullPb = ImmutableMap.of("v", Data.nullOf(String.class));
       private final Map repeatedPb =
           ImmutableMap.of("v", ImmutableList.of(integerPb, integerPb));
       private final Map recordPb =
    diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java
    index d8071746f1df..9ba408f218c1 100644
    --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java
    +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java
    @@ -42,7 +42,7 @@ public class FieldValueTest {
       private static final Map STRING_FIELD = ImmutableMap.of("v", "string");
       private static final Map TIMESTAMP_FIELD = ImmutableMap.of("v", "42");
       private static final Map BYTES_FIELD = ImmutableMap.of("v", BYTES_BASE64);
    -  private static final Map NULL_FIELD =
    +  private static final Map NULL_FIELD =
           ImmutableMap.of("v", Data.nullOf(String.class));
       private static final Map REPEATED_FIELD =
           ImmutableMap.of("v", ImmutableList.of(INTEGER_FIELD, INTEGER_FIELD));
    
    From edda6d3331cd850d997d5c65bcdabb8b96a4a438 Mon Sep 17 00:00:00 2001
    From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com>
    Date: Thu, 21 Feb 2019 13:49:42 -0800
    Subject: [PATCH 0125/3441] Release google-cloud-java v0.81.0 (#4536)
    
    ---
     google-cloud-bigquery/README.md | 6 +++---
     google-cloud-bigquery/pom.xml   | 4 ++--
     2 files changed, 5 insertions(+), 5 deletions(-)
    
    diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md
    index e54e796fd8b3..80e0cf7b51ca 100644
    --- a/google-cloud-bigquery/README.md
    +++ b/google-cloud-bigquery/README.md
    @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file
     
       com.google.cloud
       google-cloud-bigquery
    -  1.62.0
    +  1.63.0
     
     ```
     If you are using Gradle, add this to your dependencies
     ```Groovy
    -compile 'com.google.cloud:google-cloud-bigquery:1.62.0'
    +compile 'com.google.cloud:google-cloud-bigquery:1.63.0'
     ```
     If you are using SBT, add this to your dependencies
     ```Scala
    -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.62.0"
    +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.63.0"
     ```
     [//]: # ({x-version-update-end})
     
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml
    index a8f7fa952248..cfa564dab90e 100644
    --- a/google-cloud-bigquery/pom.xml
    +++ b/google-cloud-bigquery/pom.xml
    @@ -2,7 +2,7 @@
     
       4.0.0
       google-cloud-bigquery
    -  1.62.1-SNAPSHOT
    +  1.63.0
       jar
       Google Cloud BigQuery
       https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery
    @@ -12,7 +12,7 @@
       
         com.google.cloud
         google-cloud-clients
    -    0.80.1-alpha-SNAPSHOT
    +    0.81.0-alpha
       
       
         google-cloud-bigquery
    
    From 87a5118efbf7d61adee117991286215978aa3951 Mon Sep 17 00:00:00 2001
    From: shollyman 
    Date: Thu, 21 Feb 2019 19:02:15 -0800
    Subject: [PATCH 0126/3441] BigQuery: support for GEOGRAPHY type. (#4538)
    
    * BigQuery: support for GEOGRAPHY type.
    
    * formatter changes: mvn com.coveo:fmt-maven-plugin:format
    ---
     .../com/google/cloud/bigquery/FieldValue.java | 10 ++++----
     .../cloud/bigquery/LegacySQLTypeName.java     |  3 +++
     .../cloud/bigquery/StandardSQLTypeName.java   |  4 +++-
     .../google/cloud/bigquery/FieldValueTest.java | 10 ++++++++
     .../cloud/bigquery/it/ITBigQueryTest.java     | 24 +++++++++++++++++--
     5 files changed, 44 insertions(+), 7 deletions(-)
    
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java
    index 34de08bbf825..44235b7042f0 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java
    @@ -48,7 +48,8 @@ public enum Attribute {
          * type {@link LegacySQLTypeName#BYTES}, {@link LegacySQLTypeName#BOOLEAN}, {@link
          * LegacySQLTypeName#STRING}, {@link LegacySQLTypeName#FLOAT}, {@link
          * LegacySQLTypeName#INTEGER}, {@link LegacySQLTypeName#NUMERIC}, {@link
    -     * LegacySQLTypeName#TIMESTAMP}, or the value is set to {@code null}.
    +     * LegacySQLTypeName#TIMESTAMP}, {@link LegacySQLTypeName#GEOGRAPHY} or the value is set to
    +     * {@code null}.
          */
         PRIMITIVE,
     
    @@ -71,9 +72,10 @@ private FieldValue(Attribute attribute, Object value) {
        *     LegacySQLTypeName#BYTES}, {@link LegacySQLTypeName#BOOLEAN}, {@link
        *     LegacySQLTypeName#STRING}, {@link LegacySQLTypeName#FLOAT}, {@link
        *     LegacySQLTypeName#INTEGER}, {@link LegacySQLTypeName#NUMERIC}, {@link
    -   *     LegacySQLTypeName#TIMESTAMP}) or is {@code null}. Returns {@link Attribute#REPEATED} if the
    -   *     corresponding field has ({@link Field.Mode#REPEATED}) mode. Returns {@link
    -   *     Attribute#RECORD} if the corresponding field is a {@link LegacySQLTypeName#RECORD} type.
    +   *     LegacySQLTypeName#TIMESTAMP}, {@link LegacySQLTypeName#GEOGRAPHY}) or is {@code null}.
    +   *     

    Returns {@link Attribute#REPEATED} if the corresponding field has ({@link + * Field.Mode#REPEATED}) mode. Returns {@link Attribute#RECORD} if the corresponding field is + * a {@link LegacySQLTypeName#RECORD} type. */ public Attribute getAttribute() { return attribute; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java index 035ae8ed9cb0..b48ea4fa06ef 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java @@ -70,6 +70,9 @@ public LegacySQLTypeName apply(String constant) { /** Represents a logical calendar date. Note, support for this type is limited in legacy SQL. */ public static final LegacySQLTypeName DATE = type.createAndRegister("DATE").setStandardType(StandardSQLTypeName.DATE); + /** Represents a set of geographic points, represented as a Well Known Text (WKT) string. */ + public static final LegacySQLTypeName GEOGRAPHY = + type.createAndRegister("GEOGRAPHY").setStandardType(StandardSQLTypeName.GEOGRAPHY); /** * Represents a time, independent of a specific date, to microsecond precision. Note, support for * this type is limited in legacy SQL. diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java index eea1754a6054..aa156df760da 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java @@ -50,5 +50,7 @@ public enum StandardSQLTypeName { /** Represents a time, independent of a specific date, to microsecond precision. */ TIME, /** Represents a year, month, day, hour, minute, second, and subsecond (microsecond precision). */ - DATETIME + DATETIME, + /** Represents a set of geographic points, represented as a Well Known Text (WKT) string. */ + GEOGRAPHY } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java index 9ba408f218c1..ecaac0cb985e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java @@ -37,6 +37,8 @@ public class FieldValueTest { private static final TableCell BOOLEAN_FIELD = new TableCell().setV("false"); private static final Map INTEGER_FIELD = ImmutableMap.of("v", "1"); private static final Map FLOAT_FIELD = ImmutableMap.of("v", "1.5"); + private static final Map GEOGRAPHY_FIELD = + ImmutableMap.of("v", "POINT(-122.350220 47.649154)"); private static final Map NUMERIC_FIELD = ImmutableMap.of("v", "123456789.123456789"); private static final Map STRING_FIELD = ImmutableMap.of("v", "string"); @@ -60,6 +62,9 @@ public void testFromPb() { value = FieldValue.fromPb(FLOAT_FIELD); assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); assertEquals(1.5, value.getDoubleValue(), 0); + value = FieldValue.fromPb(GEOGRAPHY_FIELD); + assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); + assertEquals("POINT(-122.350220 47.649154)", value.getStringValue()); value = FieldValue.fromPb(NUMERIC_FIELD); assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); assertEquals(new BigDecimal("123456789.123456789"), value.getNumericValue()); @@ -98,6 +103,11 @@ public void testEquals() { assertEquals(floatValue, FieldValue.fromPb(FLOAT_FIELD)); assertEquals(floatValue.hashCode(), FieldValue.fromPb(FLOAT_FIELD).hashCode()); + FieldValue geographyValue = + FieldValue.of(FieldValue.Attribute.PRIMITIVE, "POINT(-122.350220 47.649154)"); + assertEquals(geographyValue, FieldValue.fromPb(GEOGRAPHY_FIELD)); + assertEquals(geographyValue.hashCode(), FieldValue.fromPb(GEOGRAPHY_FIELD).hashCode()); + FieldValue numericValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "123456789.123456789"); assertEquals(numericValue, FieldValue.fromPb(NUMERIC_FIELD)); assertEquals(numericValue.hashCode(), FieldValue.fromPb(NUMERIC_FIELD).hashCode()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index a814158016e5..2fa28612ffd4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -166,6 +166,11 @@ public class ITBigQueryTest { .setMode(Field.Mode.NULLABLE) .setDescription("FloatDescription") .build(); + private static final Field GEOGRAPHY_FIELD_SCHEMA = + Field.newBuilder("GeographyField", LegacySQLTypeName.GEOGRAPHY) + .setMode(Field.Mode.NULLABLE) + .setDescription("GeographyDescription") + .build(); private static final Field NUMERIC_FIELD_SCHEMA = Field.newBuilder("NumericField", LegacySQLTypeName.NUMERIC) .setMode(Field.Mode.NULLABLE) @@ -181,6 +186,7 @@ public class ITBigQueryTest { RECORD_FIELD_SCHEMA, INTEGER_FIELD_SCHEMA, FLOAT_FIELD_SCHEMA, + GEOGRAPHY_FIELD_SCHEMA, NUMERIC_FIELD_SCHEMA); private static final Schema SIMPLE_SCHEMA = Schema.of(STRING_FIELD_SCHEMA); private static final Schema QUERY_RESULT_SCHEMA = @@ -220,6 +226,7 @@ public class ITBigQueryTest { + " }," + " \"IntegerField\": \"3\"," + " \"FloatField\": \"1.2\"," + + " \"GeographyField\": \"POINT(-122.35022 47.649154)\"," + " \"NumericField\": \"123456.789012345\"" + "}\n" + "{" @@ -241,6 +248,7 @@ public class ITBigQueryTest { + " }," + " \"IntegerField\": \"3\"," + " \"FloatField\": \"1.2\"," + + " \"GeographyField\": \"POINT(-122.35022 47.649154)\"," + " \"NumericField\": \"123456.789012345\"" + "}"; @@ -750,6 +758,7 @@ public void testInsertAll() throws IOException { BYTES_BASE64)); builder1.put("IntegerField", 5); builder1.put("FloatField", 1.2); + builder1.put("GeographyField", "POINT(-122.350220 47.649154)"); builder1.put("NumericField", new BigDecimal("123456789.123456789")); ImmutableMap.Builder builder2 = ImmutableMap.builder(); builder2.put("TimestampField", "2014-08-19 07:41:35.220 -05:00"); @@ -770,6 +779,7 @@ public void testInsertAll() throws IOException { BYTES_BASE64)); builder2.put("IntegerField", 5); builder2.put("FloatField", 1.2); + builder2.put("GeographyField", "POINT(-122.350220 47.649154)"); builder2.put("NumericField", new BigDecimal("123456789.123456789")); InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()) @@ -807,6 +817,7 @@ public void testInsertAllWithSuffix() throws InterruptedException { BYTES_BASE64)); builder1.put("IntegerField", 5); builder1.put("FloatField", 1.2); + builder1.put("GeographyField", "POINT(-122.350220 47.649154)"); builder1.put("NumericField", new BigDecimal("123456789.123456789")); ImmutableMap.Builder builder2 = ImmutableMap.builder(); builder2.put("TimestampField", "2014-08-19 07:41:35.220 -05:00"); @@ -827,6 +838,7 @@ public void testInsertAllWithSuffix() throws InterruptedException { BYTES_BASE64)); builder2.put("IntegerField", 5); builder2.put("FloatField", 1.2); + builder2.put("GeographyField", "POINT(-122.350220 47.649154)"); builder2.put("NumericField", new BigDecimal("123456789.123456789")); InsertAllRequest request = InsertAllRequest.newBuilder(tableInfo.getTableId()) @@ -873,6 +885,7 @@ public void testInsertAllWithErrors() { BYTES_BASE64)); builder1.put("IntegerField", 5); builder1.put("FloatField", 1.2); + builder1.put("GeographyField", "POINT(-122.350220 47.649154)"); builder1.put("NumericField", new BigDecimal("123456789.123456789")); ImmutableMap.Builder builder2 = ImmutableMap.builder(); builder2.put("TimestampField", "invalidDate"); @@ -893,6 +906,7 @@ public void testInsertAllWithErrors() { BYTES_BASE64)); builder2.put("IntegerField", 5); builder2.put("FloatField", 1.2); + builder2.put("GeographyField", "POINT(-122.350220 47.649154)"); builder2.put("NumericField", new BigDecimal("123456789.123456789")); ImmutableMap.Builder builder3 = ImmutableMap.builder(); builder3.put("TimestampField", "2014-08-19 07:41:35.220 -05:00"); @@ -928,7 +942,8 @@ public void testListAllTableData() { FieldValue recordCell = row.get(5); FieldValue integerCell = row.get(6); FieldValue floatCell = row.get(7); - FieldValue numericCell = row.get(8); + FieldValue geographyCell = row.get(8); + FieldValue numericCell = row.get(9); assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); assertEquals(FieldValue.Attribute.REPEATED, integerArrayCell.getAttribute()); @@ -937,6 +952,7 @@ public void testListAllTableData() { assertEquals(FieldValue.Attribute.RECORD, recordCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, integerCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, floatCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, geographyCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, numericCell.getAttribute()); assertEquals(1408452095220000L, timestampCell.getTimestampValue()); assertEquals("stringValue", stringCell.getStringValue()); @@ -951,6 +967,7 @@ public void testListAllTableData() { assertEquals(true, recordCell.getRecordValue().get(3).getBooleanValue()); assertEquals(3, integerCell.getLongValue()); assertEquals(1.2, floatCell.getDoubleValue(), 0.0001); + assertEquals("POINT(-122.35022 47.649154)", geographyCell.getStringValue()); assertEquals(new BigDecimal("123456.789012345"), numericCell.getNumericValue()); rowCount++; } @@ -1350,7 +1367,8 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo FieldValue recordCell = row.get(5); FieldValue integerCell = row.get(6); FieldValue floatCell = row.get(7); - FieldValue numericCell = row.get(8); + FieldValue geographyCell = row.get(8); + FieldValue numericCell = row.get(9); assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); assertEquals(FieldValue.Attribute.REPEATED, integerArrayCell.getAttribute()); @@ -1359,6 +1377,7 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo assertEquals(FieldValue.Attribute.RECORD, recordCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, integerCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, floatCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, geographyCell.getAttribute()); assertEquals(FieldValue.Attribute.PRIMITIVE, numericCell.getAttribute()); assertEquals(1408452095220000L, timestampCell.getTimestampValue()); assertEquals("stringValue", stringCell.getStringValue()); @@ -1373,6 +1392,7 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo assertEquals(true, recordCell.getRecordValue().get(3).getBooleanValue()); assertEquals(3, integerCell.getLongValue()); assertEquals(1.2, floatCell.getDoubleValue(), 0.0001); + assertEquals("POINT(-122.35022 47.649154)", geographyCell.getStringValue()); assertEquals(new BigDecimal("123456.789012345"), numericCell.getNumericValue()); rowCount++; } From 68a85073835ef0094e6d50f8cbe3fa935f6f5f6c Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Fri, 22 Feb 2019 11:43:45 -0800 Subject: [PATCH 0127/3441] bump next snapshot (#4547) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index cfa564dab90e..734c751076dd 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.63.0 + 1.63.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.81.0-alpha + 0.81.1-alpha-SNAPSHOT google-cloud-bigquery From f46cc6fda8112ab73403b129513746c72c2a7abb Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 25 Feb 2019 20:31:56 +0530 Subject: [PATCH 0128/3441] BigQuery: Fixes When Table,Dataset and Job is not found (#4389) * Fixes when found return null value * added comment and modified methods name * format * added more test cases to cover code coverage --- .../google/cloud/bigquery/BigQueryImpl.java | 10 +++ .../cloud/bigquery/BigQueryOptions.java | 10 +++ .../cloud/bigquery/BigQueryImplTest.java | 68 +++++++++++++++++++ 3 files changed, 88 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 09376fe13154..173e0ca2ca7b 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -18,6 +18,7 @@ import static com.google.cloud.RetryHelper.runWithRetries; import static com.google.common.base.Preconditions.checkArgument; +import static java.net.HttpURLConnection.HTTP_NOT_FOUND; import com.google.api.core.InternalApi; import com.google.api.gax.paging.Page; @@ -293,6 +294,9 @@ public com.google.api.services.bigquery.model.Dataset call() { getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + if (getOptions().getThrowNotFound() && answer == null) { + throw new BigQueryException(HTTP_NOT_FOUND, "Dataset not found"); + } return answer == null ? null : Dataset.fromPb(this, answer); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -482,6 +486,9 @@ public com.google.api.services.bigquery.model.Table call() { getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + if (getOptions().getThrowNotFound() && answer == null) { + throw new BigQueryException(HTTP_NOT_FOUND, "Table not found"); + } return answer == null ? null : Table.fromPb(this, answer); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -702,6 +709,9 @@ public com.google.api.services.bigquery.model.Job call() { getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); + if (getOptions().getThrowNotFound() && answer == null) { + throw new BigQueryException(HTTP_NOT_FOUND, "Job not found"); + } return answer == null ? null : Job.fromPb(this, answer); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index fecf5005f157..ae4db388f80d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -34,6 +34,8 @@ public class BigQueryOptions extends ServiceOptions { private static final Set SCOPES = ImmutableSet.of(BIGQUERY_SCOPE); private static final long serialVersionUID = -2437598817433266049L; private final String location; + // set the option ThrowNotFound when you want to throw the exception when the value not found + private boolean setThrowNotFound; public static class DefaultBigQueryFactory implements BigQueryFactory { @@ -125,6 +127,14 @@ public String getLocation() { return location; } + public void setThrowNotFound(boolean setThrowNotFound) { + this.setThrowNotFound = setThrowNotFound; + } + + public boolean getThrowNotFound() { + return setThrowNotFound; + } + @SuppressWarnings("unchecked") @Override public Builder toBuilder() { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 6d3348cae0a6..8ee3bac25e55 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -366,6 +366,29 @@ public void testGetDataset() { new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); } + @Test + public void testGetDatasetNotFoundWhenThrowIsDisabled() { + EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); + EasyMock.replay(bigqueryRpcMock); + options.setThrowNotFound(false); + bigquery = options.getService(); + Dataset dataset = bigquery.getDataset(DATASET); + assertEquals( + new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); + } + + @Test + public void testGetDatasetNotFoundWhenThrowIsEnabled() { + EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, "dataset-not-found", EMPTY_RPC_OPTIONS)) + .andThrow(new BigQueryException(404, "Dataset not found")); + EasyMock.replay(bigqueryRpcMock); + options.setThrowNotFound(true); + bigquery = options.getService(); + thrown.expect(BigQueryException.class); + bigquery.getDataset("dataset-not-found"); + } + @Test public void testGetDatasetFromDatasetId() { EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) @@ -603,6 +626,29 @@ public void testGetTable() { assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); } + @Test + public void testGetTableNotFoundWhenThrowIsDisabled() { + EasyMock.expect(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); + EasyMock.replay(bigqueryRpcMock); + options.setThrowNotFound(false); + bigquery = options.getService(); + Table table = bigquery.getTable(DATASET, TABLE); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); + } + + @Test + public void testGetTableNotFoundWhenThrowIsEnabled() { + EasyMock.expect( + bigqueryRpcMock.getTable(PROJECT, DATASET, "table-not-found", EMPTY_RPC_OPTIONS)) + .andThrow(new BigQueryException(404, "Table not found")); + EasyMock.replay(bigqueryRpcMock); + options.setThrowNotFound(true); + bigquery = options.getService(); + thrown.expect(BigQueryException.class); + bigquery.getTable(DATASET, "table-not-found"); + } + @Test public void testGetTableFromTableId() { EasyMock.expect(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) @@ -1201,6 +1247,28 @@ public void testGetJobWithLocation() { assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); } + @Test + public void testGetJobNotFoundWhenThrowIsDisabled() { + EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .andReturn(COMPLETE_COPY_JOB.toPb()); + EasyMock.replay(bigqueryRpcMock); + options.setThrowNotFound(false); + bigquery = options.getService(); + Job job = bigquery.getJob(JOB); + assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); + } + + @Test + public void testGetJobNotFoundWhenThrowIsEnabled() { + EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, "job-not-found", null, EMPTY_RPC_OPTIONS)) + .andThrow(new BigQueryException(404, "Job not found")); + EasyMock.replay(bigqueryRpcMock); + options.setThrowNotFound(true); + bigquery = options.getService(); + thrown.expect(BigQueryException.class); + bigquery.getJob("job-not-found"); + } + @Test public void testGetJobFromJobId() { EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) From 8e90ef61b8ff44a9b5860d40d6f6505d83d0dcb3 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 1 Mar 2019 23:56:36 +0530 Subject: [PATCH 0129/3441] BigQuery: Fix useAvroLogicalTypes option in LoadJobConfiguration And WriteChannelConfiguration. (#4615) * Fix useAvroLogicalTypes in LoadJobConfiguration * Fix comment and added useAvroLogicalTypes in WriteChannelConfiguration * Fix comment * Fix code format --- .../cloud/bigquery/LoadConfiguration.java | 10 +++++++ .../cloud/bigquery/LoadJobConfiguration.java | 20 ++++++++++++- .../bigquery/WriteChannelConfiguration.java | 23 +++++++++++++-- .../bigquery/LoadJobConfigurationTest.java | 28 +++++++++++++++++++ .../WriteChannelConfigurationTest.java | 27 ++++++++++++++++++ 5 files changed, 105 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java index 3f3382420569..15e82fc914c6 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java @@ -118,6 +118,13 @@ interface Builder { /** Sets the clustering specification for the destination table. */ Builder setClustering(Clustering clustering); + /** + * If FormatOptions is set to AVRO, you can interpret logical types into their corresponding + * types (such as TIMESTAMP) instead of only using their raw types (such as INTEGER). The value + * may be {@code null}. + */ + Builder setUseAvroLogicalTypes(Boolean useAvroLogicalTypes); + LoadConfiguration build(); } @@ -204,6 +211,9 @@ interface Builder { /** Returns the clustering specification for the definition table. */ Clustering getClustering(); + /** Returns True/False. Indicates whether the logical type is interpreted. */ + Boolean getUseAvroLogicalTypes(); + /** Returns a builder for the load configuration object. */ Builder toBuilder(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index d11f17081e2e..0f7e81a2bb13 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -49,6 +49,7 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private final Boolean autodetect; private final TimePartitioning timePartitioning; private final Clustering clustering; + private final Boolean useAvroLogicalTypes; public static final class Builder extends JobConfiguration.Builder implements LoadConfiguration.Builder { @@ -68,6 +69,7 @@ public static final class Builder extends JobConfiguration.Builder getSchemaUpdateOptions() { return schemaUpdateOptions; @@ -383,7 +399,8 @@ ToStringHelper toStringHelper() { .add("schemaUpdateOptions", schemaUpdateOptions) .add("autodetect", autodetect) .add("timePartitioning", timePartitioning) - .add("clustering", clustering); + .add("clustering", clustering) + .add("useAvroLogicalTypes", useAvroLogicalTypes); } @Override @@ -464,6 +481,7 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (clustering != null) { loadConfigurationPb.setClustering(clustering.toPb()); } + loadConfigurationPb.setUseAvroLogicalTypes(useAvroLogicalTypes); return new com.google.api.services.bigquery.model.JobConfiguration() .setLoad(loadConfigurationPb); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java index d84d8b60a392..b99f718794ce 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java @@ -52,6 +52,7 @@ public final class WriteChannelConfiguration implements LoadConfiguration, Seria private final EncryptionConfiguration destinationEncryptionConfiguration; private final TimePartitioning timePartitioning; private final Clustering clustering; + private final Boolean useAvroLogicalTypes; public static final class Builder implements LoadConfiguration.Builder { @@ -68,6 +69,7 @@ public static final class Builder implements LoadConfiguration.Builder { private EncryptionConfiguration destinationEncryptionConfiguration; private TimePartitioning timePartitioning; private Clustering clustering; + private Boolean useAvroLogicalTypes; private Builder() {} @@ -86,6 +88,7 @@ private Builder(WriteChannelConfiguration writeChannelConfiguration) { writeChannelConfiguration.destinationEncryptionConfiguration; this.timePartitioning = writeChannelConfiguration.timePartitioning; this.clustering = writeChannelConfiguration.clustering; + this.useAvroLogicalTypes = writeChannelConfiguration.useAvroLogicalTypes; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -158,6 +161,7 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (loadConfigurationPb.getClustering() != null) { this.clustering = Clustering.fromPb(loadConfigurationPb.getClustering()); } + this.useAvroLogicalTypes = loadConfigurationPb.getUseAvroLogicalTypes(); } @Override @@ -240,6 +244,12 @@ public Builder setClustering(Clustering clustering) { return this; } + @Override + public Builder setUseAvroLogicalTypes(Boolean useAvroLogicalTypes) { + this.useAvroLogicalTypes = useAvroLogicalTypes; + return this; + } + @Override public WriteChannelConfiguration build() { return new WriteChannelConfiguration(this); @@ -260,6 +270,7 @@ protected WriteChannelConfiguration(Builder builder) { this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; this.timePartitioning = builder.timePartitioning; this.clustering = builder.clustering; + this.useAvroLogicalTypes = builder.useAvroLogicalTypes; } @Override @@ -339,6 +350,11 @@ public Clustering getClustering() { return clustering; } + @Override + public Boolean getUseAvroLogicalTypes() { + return useAvroLogicalTypes; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -358,7 +374,8 @@ MoreObjects.ToStringHelper toStringHelper() { .add("schemaUpdateOptions", schemaUpdateOptions) .add("autodetect", autodetect) .add("timePartitioning", timePartitioning) - .add("clustering", clustering); + .add("clustering", clustering) + .add("useAvroLogicalTypes", useAvroLogicalTypes); } @Override @@ -387,7 +404,8 @@ public int hashCode() { schemaUpdateOptions, autodetect, timePartitioning, - clustering); + clustering, + useAvroLogicalTypes); } WriteChannelConfiguration setProjectId(String projectId) { @@ -452,6 +470,7 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (clustering != null) { loadConfigurationPb.setClustering(clustering.toPb()); } + loadConfigurationPb.setUseAvroLogicalTypes(useAvroLogicalTypes); return new com.google.api.services.bigquery.model.JobConfiguration() .setLoad(loadConfigurationPb); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index 85184d88e069..48f41beb59c7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -52,6 +52,7 @@ public class LoadJobConfigurationTest { ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_ADDITION); private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA); private static final Boolean AUTODETECT = true; + private static final Boolean USERAVROLOGICALTYPES = true; private static final EncryptionConfiguration JOB_ENCRYPTION_CONFIGURATION = EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY); @@ -86,6 +87,21 @@ public class LoadJobConfigurationTest { .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) .setAutodetect(AUTODETECT) .build(); + private static final LoadJobConfiguration LOAD_CONFIGURATION_AVRO = + LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) + .setCreateDisposition(CREATE_DISPOSITION) + .setWriteDisposition(WRITE_DISPOSITION) + .setFormatOptions(FormatOptions.avro()) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .setSchema(TABLE_SCHEMA) + .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) + .setAutodetect(AUTODETECT) + .setDestinationEncryptionConfiguration(JOB_ENCRYPTION_CONFIGURATION) + .setTimePartitioning(TIME_PARTITIONING) + .setClustering(CLUSTERING) + .setUseAvroLogicalTypes(USERAVROLOGICALTYPES) + .build(); @Test public void testToBuilder() { @@ -109,6 +125,17 @@ public void testToBuilder() { assertEquals("newTable", configurationBackup.getDestinationTable().getTable()); configurationBackup = configurationBackup.toBuilder().setDestinationTable(TABLE_ID).build(); compareLoadJobConfiguration(LOAD_CONFIGURATION_BACKUP, configurationBackup); + + compareLoadJobConfiguration( + LOAD_CONFIGURATION_AVRO, LOAD_CONFIGURATION_AVRO.toBuilder().build()); + LoadJobConfiguration configurationAvro = + LOAD_CONFIGURATION_AVRO + .toBuilder() + .setDestinationTable(TableId.of("dataset", "newTable")) + .build(); + assertEquals("newTable", configurationAvro.getDestinationTable().getTable()); + configurationAvro = configurationAvro.toBuilder().setDestinationTable(TABLE_ID).build(); + compareLoadJobConfiguration(LOAD_CONFIGURATION_AVRO, configurationAvro); } @Test @@ -188,5 +215,6 @@ private void compareLoadJobConfiguration( value.getDestinationEncryptionConfiguration()); assertEquals(expected.getTimePartitioning(), value.getTimePartitioning()); assertEquals(expected.getClustering(), value.getClustering()); + assertEquals(expected.getUseAvroLogicalTypes(), value.getUseAvroLogicalTypes()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java index 9fe80612a059..d78d3995a97f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java @@ -49,6 +49,7 @@ public class WriteChannelConfigurationTest { .build(); private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA); private static final Boolean AUTODETECT = true; + private static final Boolean USERAVROLOGICALTYPES = true; private static final List SCHEMA_UPDATE_OPTIONS = ImmutableList.of(JobInfo.SchemaUpdateOption.ALLOW_FIELD_ADDITION); private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY); @@ -84,6 +85,21 @@ public class WriteChannelConfigurationTest { .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) .setAutodetect(AUTODETECT) .build(); + private static final WriteChannelConfiguration LOAD_CONFIGURATION_AVRO = + WriteChannelConfiguration.newBuilder(TABLE_ID) + .setCreateDisposition(CREATE_DISPOSITION) + .setWriteDisposition(WRITE_DISPOSITION) + .setNullMarker(NULL_MARKER) + .setFormatOptions(FormatOptions.avro()) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .setSchema(TABLE_SCHEMA) + .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) + .setAutodetect(AUTODETECT) + .setTimePartitioning(TIME_PARTITIONING) + .setClustering(CLUSTERING) + .setUseAvroLogicalTypes(USERAVROLOGICALTYPES) + .build(); @Test public void testToBuilder() { @@ -96,6 +112,16 @@ public void testToBuilder() { assertEquals("newTable", configuration.getDestinationTable().getTable()); configuration = configuration.toBuilder().setDestinationTable(TABLE_ID).build(); compareLoadConfiguration(LOAD_CONFIGURATION_CSV, configuration); + + compareLoadConfiguration(LOAD_CONFIGURATION_AVRO, LOAD_CONFIGURATION_AVRO.toBuilder().build()); + WriteChannelConfiguration configurationAvro = + LOAD_CONFIGURATION_AVRO + .toBuilder() + .setDestinationTable(TableId.of("dataset", "newTable")) + .build(); + assertEquals("newTable", configurationAvro.getDestinationTable().getTable()); + configurationAvro = configurationAvro.toBuilder().setDestinationTable(TABLE_ID).build(); + compareLoadConfiguration(LOAD_CONFIGURATION_AVRO, configurationAvro); } @Test @@ -191,5 +217,6 @@ private void compareLoadConfiguration( assertEquals(expected.getAutodetect(), value.getAutodetect()); assertEquals(expected.getTimePartitioning(), value.getTimePartitioning()); assertEquals(expected.getClustering(), value.getClustering()); + assertEquals(expected.getUseAvroLogicalTypes(), value.getUseAvroLogicalTypes()); } } From f67e345d7d9495225b2557892ce5489fb08f247c Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Mon, 4 Mar 2019 12:45:50 -0700 Subject: [PATCH 0130/3441] Release google-cloud-java v0.82.0 (#4621) * Release v0.82.0 * Change KMS versions to 1.0.0. --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 80e0cf7b51ca..cdc4b130ea2b 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.63.0 + 1.64.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.63.0' +compile 'com.google.cloud:google-cloud-bigquery:1.64.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.63.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.64.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 734c751076dd..de5bfeb52fb0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.63.1-SNAPSHOT + 1.64.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.81.1-alpha-SNAPSHOT + 0.82.0-alpha google-cloud-bigquery From f8cd0526d5b18e3384400f9facbf5b30200ed415 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Mon, 4 Mar 2019 15:54:54 -0700 Subject: [PATCH 0131/3441] Bump next snapshot (#4623) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index de5bfeb52fb0..49846bca43d7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.64.0 + 1.64.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.82.0-alpha + 0.82.1-alpha-SNAPSHOT google-cloud-bigquery From 76a732819e63a1a5ca0abe2f4acc6c121b5c1b69 Mon Sep 17 00:00:00 2001 From: shollyman Date: Thu, 7 Mar 2019 10:49:23 -0800 Subject: [PATCH 0132/3441] BigQuery: add long term storage bytes to standard table definition. (#4387) * BigQuery: Add long term storage bytes for managed tables. * formatting * let maven format the things * plumb this upwards into Table/TableInfo * return * assertion mismatch * Update TableInfoTest.java --- .../bigquery/StandardTableDefinition.java | 15 ++++++++++++ .../java/com/google/cloud/bigquery/Table.java | 6 +++++ .../com/google/cloud/bigquery/TableInfo.java | 24 +++++++++++++++++++ .../bigquery/StandardTableDefinitionTest.java | 5 ++++ .../google/cloud/bigquery/TableInfoTest.java | 9 +++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 3 +++ 6 files changed, 62 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index f12e6b608a91..9b2ae343875f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -130,6 +130,8 @@ public abstract static class Builder public abstract Builder setNumBytes(Long numBytes); + public abstract Builder setNumLongTermBytes(Long numLongTermBytes); + public abstract Builder setNumRows(Long numRows); public abstract Builder setLocation(String location); @@ -161,6 +163,15 @@ public abstract static class Builder @Nullable public abstract Long getNumBytes(); + /** + * Returns the number of bytes considered "long-term storage" for reduced billing purposes. + * + * @see Long Term Storage + * Pricing + */ + @Nullable + public abstract Long getNumLongTermBytes(); + /** Returns the number of rows in this table, excluding any data in the streaming buffer. */ @Nullable public abstract Long getNumRows(); @@ -221,6 +232,7 @@ Table toPb() { tablePb.setNumRows(BigInteger.valueOf(getNumRows())); } tablePb.setNumBytes(getNumBytes()); + tablePb.setNumLongTermBytes(getNumLongTermBytes()); tablePb.setLocation(getLocation()); if (getStreamingBuffer() != null) { tablePb.setStreamingBuffer(getStreamingBuffer().toPb()); @@ -249,6 +261,9 @@ static StandardTableDefinition fromPb(Table tablePb) { if (tablePb.getClustering() != null) { builder.setClustering(Clustering.fromPb(tablePb.getClustering())); } + if (tablePb.getNumLongTermBytes() != null) { + builder.setNumLongTermBytes(tablePb.getNumLongTermBytes()); + } return builder.setNumBytes(tablePb.getNumBytes()).setLocation(tablePb.getLocation()).build(); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java index d38957bd6186..ab341c62c4ff 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java @@ -108,6 +108,12 @@ Builder setNumBytes(Long numBytes) { return this; } + @Override + Builder setNumLongTermBytes(Long numLongTermBytes) { + infoBuilder.setNumLongTermBytes(numLongTermBytes); + return this; + } + @Override Builder setNumRows(BigInteger numRows) { infoBuilder.setNumRows(numRows); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java index 8fad66d20a7e..e64e85ebae22 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -66,6 +66,7 @@ public Table apply(TableInfo tableInfo) { private final Long expirationTime; private final Long lastModifiedTime; private final Long numBytes; + private final Long numLongTermBytes; private final BigInteger numRows; private final TableDefinition definition; private final EncryptionConfiguration encryptionConfiguration; @@ -96,6 +97,8 @@ public abstract static class Builder { abstract Builder setNumBytes(Long numBytes); + abstract Builder setNumLongTermBytes(Long numLongTermBytes); + abstract Builder setNumRows(BigInteger numRows); abstract Builder setSelfLink(String selfLink); @@ -141,6 +144,7 @@ static class BuilderImpl extends Builder { private Long expirationTime; private Long lastModifiedTime; private Long numBytes; + private Long numLongTermBytes; private BigInteger numRows; private TableDefinition definition; private EncryptionConfiguration encryptionConfiguration; @@ -159,6 +163,7 @@ static class BuilderImpl extends Builder { this.expirationTime = tableInfo.expirationTime; this.lastModifiedTime = tableInfo.lastModifiedTime; this.numBytes = tableInfo.numBytes; + this.numLongTermBytes = tableInfo.numLongTermBytes; this.numRows = tableInfo.numRows; this.definition = tableInfo.definition; this.encryptionConfiguration = tableInfo.encryptionConfiguration; @@ -178,6 +183,7 @@ static class BuilderImpl extends Builder { this.generatedId = tablePb.getId(); this.selfLink = tablePb.getSelfLink(); this.numBytes = tablePb.getNumBytes(); + this.numLongTermBytes = tablePb.getNumLongTermBytes(); this.numRows = tablePb.getNumRows(); this.definition = TableDefinition.fromPb(tablePb); if (tablePb.getEncryptionConfiguration() != null) { @@ -235,6 +241,12 @@ Builder setNumBytes(Long numBytes) { return this; } + @Override + Builder setNumLongTermBytes(Long numLongTermBytes) { + this.numLongTermBytes = numLongTermBytes; + return this; + } + @Override Builder setNumRows(BigInteger numRows) { this.numRows = numRows; @@ -288,6 +300,7 @@ public TableInfo build() { this.expirationTime = builder.expirationTime; this.lastModifiedTime = builder.lastModifiedTime; this.numBytes = builder.numBytes; + this.numLongTermBytes = builder.numLongTermBytes; this.numRows = builder.numRows; this.definition = builder.definition; this.encryptionConfiguration = builder.encryptionConfiguration; @@ -360,6 +373,16 @@ public Long getNumBytes() { return numBytes; } + /** + * Returns the number of bytes considered "long-term storage" for reduced billing purposes. + * + * @see Long Term Storage + * Pricing + */ + public Long getNumLongTermBytes() { + return numLongTermBytes; + } + /** Returns the number of rows of data in this table */ public BigInteger getNumRows() { return numRows; @@ -394,6 +417,7 @@ public String toString() { .add("creationTime", creationTime) .add("lastModifiedTime", lastModifiedTime) .add("numBytes", numBytes) + .add("numLongTermBytes", numLongTermBytes) .add("numRows", numRows) .add("definition", definition) .add("encryptionConfiguration", encryptionConfiguration) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java index d70d33fb119b..7bfbf62754b8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -44,6 +44,7 @@ public class StandardTableDefinitionTest { .build(); private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); private static final Long NUM_BYTES = 42L; + private static final Long NUM_LONG_TERM_BYTES = 18L; private static final Long NUM_ROWS = 43L; private static final String LOCATION = "US"; private static final StreamingBuffer STREAMING_BUFFER = new StreamingBuffer(1L, 2L, 3L); @@ -56,6 +57,7 @@ public class StandardTableDefinitionTest { .setLocation(LOCATION) .setNumBytes(NUM_BYTES) .setNumRows(NUM_ROWS) + .setNumLongTermBytes(NUM_LONG_TERM_BYTES) .setStreamingBuffer(STREAMING_BUFFER) .setSchema(TABLE_SCHEMA) .setTimePartitioning(TIME_PARTITIONING) @@ -84,6 +86,7 @@ public void testBuilder() { assertEquals(TABLE_SCHEMA, TABLE_DEFINITION.getSchema()); assertEquals(LOCATION, TABLE_DEFINITION.getLocation()); assertEquals(NUM_BYTES, TABLE_DEFINITION.getNumBytes()); + assertEquals(NUM_LONG_TERM_BYTES, TABLE_DEFINITION.getNumLongTermBytes()); assertEquals(NUM_ROWS, TABLE_DEFINITION.getNumRows()); assertEquals(STREAMING_BUFFER, TABLE_DEFINITION.getStreamingBuffer()); assertEquals(TIME_PARTITIONING, TABLE_DEFINITION.getTimePartitioning()); @@ -97,6 +100,7 @@ public void testOf() { assertEquals(TABLE_SCHEMA, TABLE_DEFINITION.getSchema()); assertNull(definition.getLocation()); assertNull(definition.getNumBytes()); + assertNull(definition.getNumLongTermBytes()); assertNull(definition.getNumRows()); assertNull(definition.getStreamingBuffer()); assertNull(definition.getTimePartitioning()); @@ -131,6 +135,7 @@ private void compareStandardTableDefinition( assertEquals(expected.getSchema(), value.getSchema()); assertEquals(expected.getType(), value.getType()); assertEquals(expected.getNumBytes(), value.getNumBytes()); + assertEquals(expected.getNumLongTermBytes(), value.getNumLongTermBytes()); assertEquals(expected.getNumRows(), value.getNumRows()); assertEquals(expected.getLocation(), value.getLocation()); assertEquals(expected.getStreamingBuffer(), value.getStreamingBuffer()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java index 6e35ce6cb620..324f562cdfdf 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java @@ -54,6 +54,7 @@ public class TableInfoTest { .build(); private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); private static final Long NUM_BYTES = 42L; + private static final Long NUM_LONG_TERM_BYTES = 21L; private static final Long NUM_ROWS = 43L; private static final String LOCATION = "US"; private static final StandardTableDefinition.StreamingBuffer STREAMING_BUFFER = @@ -62,6 +63,7 @@ public class TableInfoTest { StandardTableDefinition.newBuilder() .setLocation(LOCATION) .setNumBytes(NUM_BYTES) + .setNumLongTermBytes(NUM_LONG_TERM_BYTES) .setNumRows(NUM_ROWS) .setStreamingBuffer(STREAMING_BUFFER) .setSchema(TABLE_SCHEMA) @@ -95,6 +97,7 @@ public class TableInfoTest { .setGeneratedId(GENERATED_ID) .setLastModifiedTime(LAST_MODIFIED_TIME) .setNumBytes(NUM_BYTES) + .setNumLongTermBytes(NUM_LONG_TERM_BYTES) .setNumRows(BigInteger.valueOf(NUM_ROWS)) .setSelfLink(SELF_LINK) .setLabels(Collections.singletonMap("a", "b")) @@ -155,6 +158,10 @@ public void testBuilder() { assertEquals(LAST_MODIFIED_TIME, TABLE_INFO.getLastModifiedTime()); assertEquals(TABLE_DEFINITION, TABLE_INFO.getDefinition()); assertEquals(SELF_LINK, TABLE_INFO.getSelfLink()); + assertEquals(NUM_BYTES, TABLE_INFO.getNumBytes()); + assertEquals(NUM_LONG_TERM_BYTES, TABLE_INFO.getNumLongTermBytes()); + assertEquals(BigInteger.valueOf(NUM_ROWS), TABLE_INFO.getNumRows()); + assertEquals(TABLE_ID, VIEW_INFO.getTableId()); assertEquals(VIEW_DEFINITION, VIEW_INFO.getDefinition()); assertEquals(CREATION_TIME, VIEW_INFO.getCreationTime()); @@ -166,6 +173,7 @@ public void testBuilder() { assertEquals(LAST_MODIFIED_TIME, VIEW_INFO.getLastModifiedTime()); assertEquals(VIEW_DEFINITION, VIEW_INFO.getDefinition()); assertEquals(SELF_LINK, VIEW_INFO.getSelfLink()); + assertEquals(TABLE_ID, EXTERNAL_TABLE_INFO.getTableId()); assertEquals(CREATION_TIME, EXTERNAL_TABLE_INFO.getCreationTime()); assertEquals(DESCRIPTION, EXTERNAL_TABLE_INFO.getDescription()); @@ -248,6 +256,7 @@ private void compareTableInfo(TableInfo expected, TableInfo value) { assertEquals(expected.getGeneratedId(), value.getGeneratedId()); assertEquals(expected.getLastModifiedTime(), value.getLastModifiedTime()); assertEquals(expected.getNumBytes(), value.getNumBytes()); + assertEquals(expected.getNumLongTermBytes(), value.getNumLongTermBytes()); assertEquals(expected.getNumRows(), value.getNumRows()); assertEquals(expected.getSelfLink(), value.getSelfLink()); assertEquals(expected.getLabels(), value.getLabels()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 2fa28612ffd4..c7fe1ee35c75 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -436,6 +436,7 @@ public void testCreateAndGetTable() { assertNotNull(remoteTable.getCreationTime()); assertNotNull(remoteTable.getLastModifiedTime()); assertNotNull(remoteTable.getDefinition().getNumBytes()); + assertNotNull(remoteTable.getDefinition().getNumLongTermBytes()); assertNotNull(remoteTable.getDefinition().getNumRows()); assertEquals( partitioning, remoteTable.getDefinition().getTimePartitioning()); @@ -468,6 +469,7 @@ public void testCreateAndGetTableWithSelectedField() { assertNull(remoteTable.getDefinition().getSchema()); assertNull(remoteTable.getLastModifiedTime()); assertNull(remoteTable.getDefinition().getNumBytes()); + assertNull(remoteTable.getDefinition().getNumLongTermBytes()); assertNull(remoteTable.getDefinition().getNumRows()); assertNull(remoteTable.getDefinition().getTimePartitioning()); assertNull(remoteTable.getDefinition().getClustering()); @@ -707,6 +709,7 @@ public void testUpdateTableWithSelectedFields() { assertNull(updatedTable.getDefinition().getSchema()); assertNull(updatedTable.getLastModifiedTime()); assertNull(updatedTable.getDefinition().getNumBytes()); + assertNull(updatedTable.getDefinition().getNumLongTermBytes()); assertNull(updatedTable.getDefinition().getNumRows()); assertTrue(createdTable.delete()); } From d2579baa22f75c88bc4e405f280246a1985adf60 Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Mon, 11 Mar 2019 12:15:31 -0700 Subject: [PATCH 0133/3441] Release google-cloud-java v0.83.0 (#4665) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index cdc4b130ea2b..7e735ba98bcc 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.64.0 + 1.65.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.64.0' +compile 'com.google.cloud:google-cloud-bigquery:1.65.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.64.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.65.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 49846bca43d7..9bca281aba38 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.64.1-SNAPSHOT + 1.65.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.82.1-alpha-SNAPSHOT + 0.83.0-alpha google-cloud-bigquery From 81c84472cc44b13d75a23a1e50d39e1c6aa918ae Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Tue, 12 Mar 2019 07:09:18 -0700 Subject: [PATCH 0134/3441] Bump next snapshot (#4666) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9bca281aba38..bec297d8ef58 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.65.0 + 1.65.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.83.0-alpha + 0.83.1-alpha-SNAPSHOT google-cloud-bigquery From be3cf8a24256ddaa8f90a285f4590c5ced42a36c Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 20 Mar 2019 19:56:43 +0530 Subject: [PATCH 0135/3441] BigQuery: Added missing partitioned fields to listTables. (#4701) * Add missing partitioned fields to listTables * Fix table delete in finally block * Fix test failing --- .../bigquery/spi/v2/HttpBigQueryRpc.java | 4 ++- .../cloud/bigquery/BigQueryImplTest.java | 29 ++++++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 34 +++++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 21df417ecc41..70ade809b8ee 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -276,7 +276,9 @@ public Table apply(TableList.Tables tablePb) { .setId(tablePb.getId()) .setKind(tablePb.getKind()) .setTableReference(tablePb.getTableReference()) - .setType(tablePb.getType()); + .setType(tablePb.getType()) + .setCreationTime(tablePb.getCreationTime()) + .setTimePartitioning(tablePb.getTimePartitioning()); } })); } catch (IOException ex) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 8ee3bac25e55..c69eb2532506 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -111,12 +111,25 @@ public class BigQueryImplTest { StandardTableDefinition.of(TABLE_SCHEMA); private static final ModelTableDefinition MODEL_TABLE_DEFINITION = ModelTableDefinition.newBuilder().build(); + private static final Long EXPIRATION_MS = 86400000L; + private static final Long TABLE_CREATION_TIME = 1546275600000L; + private static final TimePartitioning TIME_PARTITIONING = + TimePartitioning.of(TimePartitioning.Type.DAY, EXPIRATION_MS); + private static final StandardTableDefinition TABLE_DEFINITION_WITH_PARTITIONING = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setTimePartitioning(TIME_PARTITIONING) + .build(); private static final TableInfo TABLE_INFO = TableInfo.of(TABLE_ID, TABLE_DEFINITION); private static final TableInfo OTHER_TABLE_INFO = TableInfo.of(OTHER_TABLE_ID, TABLE_DEFINITION); private static final TableInfo TABLE_INFO_WITH_PROJECT = TableInfo.of(TABLE_ID_WITH_PROJECT, TABLE_DEFINITION); private static final TableInfo MODEL_TABLE_INFO_WITH_PROJECT = TableInfo.of(TABLE_ID_WITH_PROJECT, MODEL_TABLE_DEFINITION); + private static final TableInfo TABLE_INFO_WITH_PARTITIONS = + TableInfo.newBuilder(TABLE_ID, TABLE_DEFINITION_WITH_PARTITIONING) + .setCreationTime(TABLE_CREATION_TIME) + .build(); private static final LoadJobConfiguration LOAD_JOB_CONFIGURATION = LoadJobConfiguration.of(TABLE_ID, "URI"); private static final LoadJobConfiguration LOAD_JOB_CONFIGURATION_WITH_PROJECT = @@ -721,6 +734,22 @@ public void testListTables() { assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); } + @Test + public void testListTablesReturnedParameters() { + bigquery = options.getService(); + ImmutableList

    tableList = + ImmutableList.of( + new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PARTITIONS))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); + EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)) + .andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page
    page = bigquery.listTables(DATASET, TABLE_LIST_PAGE_SIZE, TABLE_LIST_PAGE_TOKEN); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + } + @Test public void testListTablesFromDatasetId() { bigquery = options.getService(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index c7fe1ee35c75..e852cfc8a276 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -111,6 +111,7 @@ public class ITBigQueryTest { private static final byte[] BYTES = {0xD, 0xE, 0xA, 0xD}; private static final String BYTES_BASE64 = BaseEncoding.base64().encode(BYTES); + private static final Long EXPIRATION_MS = 86400000L; private static final Logger LOG = Logger.getLogger(ITBigQueryTest.class.getName()); private static final String DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String DESCRIPTION = "Test dataset"; @@ -607,6 +608,39 @@ public void testListTables() { assertTrue(createdTable.delete()); } + @Test + public void testListTablesWithPartitioning() { + String tableName = "test_list_tables_partitioning"; + TimePartitioning timePartitioning = TimePartitioning.of(Type.DAY, EXPIRATION_MS); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setTimePartitioning(timePartitioning) + .build(); + TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); + Table createdPartitioningTable = bigquery.create(tableInfo); + assertNotNull(createdPartitioningTable); + try { + Page
    tables = bigquery.listTables(DATASET); + boolean found = false; + Iterator
    tableIterator = tables.getValues().iterator(); + while (tableIterator.hasNext() && !found) { + StandardTableDefinition standardTableDefinition = tableIterator.next().getDefinition(); + if (standardTableDefinition.getTimePartitioning() != null + && standardTableDefinition.getTimePartitioning().getType().equals(Type.DAY) + && standardTableDefinition + .getTimePartitioning() + .getExpirationMs() + .equals(EXPIRATION_MS)) { + found = true; + } + } + assertTrue(found); + } finally { + createdPartitioningTable.delete(); + } + } + @Test public void testUpdateTable() { String tableName = "test_update_table"; From b94abaf06f32df36fe5cdea2dd04c9babae34d83 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Thu, 21 Mar 2019 12:59:23 -0400 Subject: [PATCH 0136/3441] Release v0.84.0 (#4713) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 7e735ba98bcc..92264301809d 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.65.0 + 1.66.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.65.0' +compile 'com.google.cloud:google-cloud-bigquery:1.66.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.65.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.66.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bec297d8ef58..e28ab06a0253 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.65.1-SNAPSHOT + 1.66.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.83.1-alpha-SNAPSHOT + 0.84.0-alpha google-cloud-bigquery From 3aa6527417eb75558bc6b3ce3dd3e75b1b6c9006 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Thu, 21 Mar 2019 22:00:42 -0400 Subject: [PATCH 0137/3441] Bump next snapshot (#4715) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e28ab06a0253..728b30aff4be 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.66.0 + 1.66.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.84.0-alpha + 0.84.1-alpha-SNAPSHOT google-cloud-bigquery From dcbf58f795e04cc656d6f6bcb5b79370be42baed Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Fri, 29 Mar 2019 12:22:45 -0700 Subject: [PATCH 0138/3441] Release google-cloud-java v0.85.0 (#4820) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 92264301809d..f1c848770f91 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.66.0 + 1.67.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.66.0' +compile 'com.google.cloud:google-cloud-bigquery:1.67.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.66.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.67.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 728b30aff4be..b143fc001da4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.66.1-SNAPSHOT + 1.67.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.84.1-alpha-SNAPSHOT + 0.85.0-alpha google-cloud-bigquery From ecbabf57f42f0fa8ed980a1a99a72a4b7d35ddd5 Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Fri, 29 Mar 2019 15:59:26 -0700 Subject: [PATCH 0139/3441] Bump snapshot (#4821) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b143fc001da4..4f4deecb4e1b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.67.0 + 1.67.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.85.0-alpha + 0.85.1-alpha-SNAPSHOT google-cloud-bigquery From 3fe53174f694aa4616ea2b5486934c20ee461b15 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 3 Apr 2019 14:23:54 -0400 Subject: [PATCH 0140/3441] Release v0.86.0 (#4899) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index f1c848770f91..b2991adf89b8 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.67.0 + 1.68.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.67.0' +compile 'com.google.cloud:google-cloud-bigquery:1.68.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.67.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.68.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4f4deecb4e1b..ff0543021712 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.67.1-SNAPSHOT + 1.68.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.85.1-alpha-SNAPSHOT + 0.86.0-alpha google-cloud-bigquery From 51ec0ba87dbf8bc62440df71a8683303d031a40b Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 3 Apr 2019 17:25:41 -0400 Subject: [PATCH 0141/3441] Bump next snapshot (#4900) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ff0543021712..bc750b514e01 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.68.0 + 1.68.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.86.0-alpha + 0.86.1-alpha-SNAPSHOT google-cloud-bigquery From a6ed442cae16a1f0e43862e76addb564d303f08d Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Thu, 4 Apr 2019 13:37:59 -0700 Subject: [PATCH 0142/3441] Release v0.87.0 (#4907) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index b2991adf89b8..cc4f3c4188ad 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.68.0 + 1.69.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.68.0' +compile 'com.google.cloud:google-cloud-bigquery:1.69.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.68.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.69.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bc750b514e01..16867fc1cbc4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.68.1-SNAPSHOT + 1.69.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.86.1-alpha-SNAPSHOT + 0.87.0-alpha google-cloud-bigquery From bcb8034096db679954e124786091d300a06fe33d Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Thu, 4 Apr 2019 16:07:17 -0700 Subject: [PATCH 0143/3441] Bump next snapshot (#4908) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 16867fc1cbc4..3fc72c3ca40e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.69.0 + 1.69.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.87.0-alpha + 0.87.1-alpha-SNAPSHOT google-cloud-bigquery From 0648b5171c55077daf586401ff36a84ac3152e4e Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 10 Apr 2019 05:16:57 +0530 Subject: [PATCH 0144/3441] BigQuery: Added listPartitions. (#4923) * added listPartitions * added unit test * modified code * modified unit test for listPartitions * added integration test * Fix table name * Fix integration test --- .../com/google/cloud/bigquery/BigQuery.java | 6 + .../google/cloud/bigquery/BigQueryImpl.java | 21 +++ .../cloud/bigquery/BigQueryImplTest.java | 136 ++++++++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 31 ++++ 4 files changed, 194 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 3ff486c6c1cf..1af420294429 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -848,6 +848,12 @@ public int hashCode() { */ Page
    listTables(DatasetId datasetId, TableListOption... options); + /** + * @param tableId + * @return A list of the partition ids present in the partitioned table + */ + List listPartitions(TableId tableId); + /** * Sends an insert all request. * diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 173e0ca2ca7b..09a16fa629ef 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -46,6 +46,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; import com.google.common.collect.Maps; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.Callable; @@ -507,6 +508,26 @@ public Page
    listTables(DatasetId datasetId, TableListOption... options) { return listTables(completeDatasetId, getOptions(), optionMap(options)); } + @Override + public List listPartitions(TableId tableId) { + List partitions = new ArrayList(); + Table metaTable = + getTable(TableId.of(tableId.getDataset(), tableId.getTable() + "$__PARTITIONS_SUMMARY__")); + Schema metaSchema = metaTable.getDefinition().getSchema(); + String partition_id = null; + for (Field field : metaSchema.getFields()) { + if (field.getName().equals("partition_id")) { + partition_id = field.getName(); + break; + } + } + TableResult result = metaTable.list(metaSchema); + for (FieldValueList list : result.iterateAll()) { + partitions.add(list.get(partition_id).getStringValue()); + } + return partitions; + } + private static Page
    listTables( final DatasetId datasetId, final BigQueryOptions serviceOptions, diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index c69eb2532506..8d589bcb59ab 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -228,6 +228,128 @@ public class BigQueryImplTest { private static final BigQuery.TableOption TABLE_OPTION_FIELDS = BigQuery.TableOption.fields(BigQuery.TableField.SCHEMA, BigQuery.TableField.ETAG); + // Table list partitions + private static final Field PROJECT_ID_FIELD = + Field.newBuilder("project_id", LegacySQLTypeName.STRING).setMode(Field.Mode.NULLABLE).build(); + private static final Field DATASET_ID_FIELD = + Field.newBuilder("dataset_id", LegacySQLTypeName.STRING).setMode(Field.Mode.NULLABLE).build(); + private static final Field TABLE_ID_FIELD = + Field.newBuilder("table_id", LegacySQLTypeName.STRING).setMode(Field.Mode.NULLABLE).build(); + private static final Field PARTITION_ID_FIELD = + Field.newBuilder("partition_id", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(); + private static final Field CREATION_TIME_FIELD = + Field.newBuilder("creation_time", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.NULLABLE) + .build(); + private static final Field CREATION_TIMESTAMP_FIELD = + Field.newBuilder("creation_timestamp", LegacySQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .build(); + private static final Field LAST_MODIFIED_FIELD = + Field.newBuilder("last_modified_time", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.NULLABLE) + .build(); + private static final Field LAST_MODIFIED_TIMESTAMP_FIELD = + Field.newBuilder("last_modified_timestamp", LegacySQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .build(); + private static final Schema SCHEMA_PARTITIONS = + Schema.of( + PROJECT_ID_FIELD, + DATASET_ID_FIELD, + TABLE_ID_FIELD, + PARTITION_ID_FIELD, + CREATION_TIME_FIELD, + CREATION_TIMESTAMP_FIELD, + LAST_MODIFIED_FIELD, + LAST_MODIFIED_TIMESTAMP_FIELD); + private static final TableDefinition TABLE_DEFINITION_PARTITIONS = + StandardTableDefinition.newBuilder() + .setSchema(SCHEMA_PARTITIONS) + .setNumBytes(0L) + .setNumLongTermBytes(0L) + .setNumRows(3L) + .setLocation("unknown") + .build(); + private static final TableInfo TABLE_INFO_PARTITIONS = + TableInfo.newBuilder(TABLE_ID, TABLE_DEFINITION_PARTITIONS) + .setEtag("ETAG") + .setCreationTime(1553689573240L) + .setLastModifiedTime(1553841163438L) + .setNumBytes(0L) + .setNumLongTermBytes(0L) + .setNumRows(BigInteger.valueOf(3L)) + .build(); + private static final TableCell TABLE_CELL1_PROJECT_ID = new TableCell().setV(PROJECT); + private static final TableCell TABLE_CELL1_DATASET_ID = new TableCell().setV(DATASET); + private static final TableCell TABLE_CELL1_TABLE_ID = new TableCell().setV(TABLE); + private static final TableCell TABLE_CELL1_PARTITION_ID = new TableCell().setV("20190327"); + private static final TableCell TABLE_CELL1_CREATION_TIME = new TableCell().setV("1553694932498"); + private static final TableCell TABLE_CELL1_CREATION_TIMESTAMP = + new TableCell().setV("1553694932.498"); + private static final TableCell TABLE_CELL1_LAST_MODIFIED_TIME = + new TableCell().setV("1553694932989"); + private static final TableCell TABLE_CELL1_LAST_MODIFIED_TIMESTAMP = + new TableCell().setV("1553694932.989"); + + private static final TableCell TABLE_CELL2_PARTITION_ID = new TableCell().setV("20190328"); + private static final TableCell TABLE_CELL2_CREATION_TIME = new TableCell().setV("1553754224760"); + private static final TableCell TABLE_CELL2_CREATION_TIMESTAMP = + new TableCell().setV("1553754224.76"); + private static final TableCell TABLE_CELL2_LAST_MODIFIED_TIME = + new TableCell().setV("1553754225587"); + private static final TableCell TABLE_CELL2_LAST_MODIFIED_TIMESTAMP = + new TableCell().setV("1553754225.587"); + + private static final TableCell TABLE_CELL3_PARTITION_ID = new TableCell().setV("20190329"); + private static final TableCell TABLE_CELL3_CREATION_TIME = new TableCell().setV("1553841162879"); + private static final TableCell TABLE_CELL3_CREATION_TIMESTAMP = + new TableCell().setV("1553841162.879"); + private static final TableCell TABLE_CELL3_LAST_MODIFIED_TIME = + new TableCell().setV("1553841163438"); + private static final TableCell TABLE_CELL3_LAST_MODIFIED_TIMESTAMP = + new TableCell().setV("1553841163.438"); + + private static final TableDataList TABLE_DATA_WITH_PARTITIONS = + new TableDataList() + .setTotalRows(3L) + .setRows( + ImmutableList.of( + new TableRow() + .setF( + ImmutableList.of( + TABLE_CELL1_PROJECT_ID, + TABLE_CELL1_DATASET_ID, + TABLE_CELL1_TABLE_ID, + TABLE_CELL1_PARTITION_ID, + TABLE_CELL1_CREATION_TIME, + TABLE_CELL1_CREATION_TIMESTAMP, + TABLE_CELL1_LAST_MODIFIED_TIME, + TABLE_CELL1_LAST_MODIFIED_TIMESTAMP)), + new TableRow() + .setF( + ImmutableList.of( + TABLE_CELL1_PROJECT_ID, + TABLE_CELL1_DATASET_ID, + TABLE_CELL1_TABLE_ID, + TABLE_CELL2_PARTITION_ID, + TABLE_CELL2_CREATION_TIME, + TABLE_CELL2_CREATION_TIMESTAMP, + TABLE_CELL2_LAST_MODIFIED_TIME, + TABLE_CELL2_LAST_MODIFIED_TIMESTAMP)), + new TableRow() + .setF( + ImmutableList.of( + TABLE_CELL1_PROJECT_ID, + TABLE_CELL1_DATASET_ID, + TABLE_CELL1_TABLE_ID, + TABLE_CELL3_PARTITION_ID, + TABLE_CELL3_CREATION_TIME, + TABLE_CELL3_CREATION_TIMESTAMP, + TABLE_CELL3_LAST_MODIFIED_TIME, + TABLE_CELL3_LAST_MODIFIED_TIMESTAMP)))); // Table list options private static final BigQuery.TableListOption TABLE_LIST_PAGE_SIZE = BigQuery.TableListOption.pageSize(42L); @@ -639,6 +761,20 @@ public void testGetTable() { assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); } + @Test + public void testListPartition() { + EasyMock.expect( + bigqueryRpcMock.getTable( + PROJECT, DATASET, "table$__PARTITIONS_SUMMARY__", EMPTY_RPC_OPTIONS)) + .andReturn(TABLE_INFO_PARTITIONS.toPb()); + EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .andReturn(TABLE_DATA_WITH_PARTITIONS); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + List partition = bigquery.listPartitions(TABLE_ID_WITH_PROJECT); + assertEquals(3, partition.size()); + } + @Test public void testGetTableNotFoundWhenThrowIsDisabled() { EasyMock.expect(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index e852cfc8a276..0ed59061442d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -27,6 +27,7 @@ import static org.junit.Assert.fail; import com.google.api.gax.paging.Page; +import com.google.cloud.Date; import com.google.cloud.RetryOption; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; @@ -92,6 +93,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.UUID; @@ -641,6 +643,35 @@ public void testListTablesWithPartitioning() { } } + @Test + public void testListPartitions() throws InterruptedException { + String tableName = "test_table_partitions"; + Date date = Date.fromJavaUtilDate(new java.util.Date()); + String partitionDate = date.toString().replaceAll("-", ""); + TableId tableId = TableId.of(DATASET, tableName + "$" + partitionDate); + String query = + String.format( + "CREATE OR REPLACE TABLE %s.%s ( StringField STRING )" + + " PARTITION BY DATE(_PARTITIONTIME) " + + "OPTIONS( partition_expiration_days=1)", + DATASET, tableName); + Job job = bigquery.create(JobInfo.of(QueryJobConfiguration.newBuilder(query).build())); + job.waitFor(); + assertTrue(job.isDone()); + try { + Map row = new HashMap(); + row.put("StringField", "StringValue"); + InsertAllRequest request = InsertAllRequest.newBuilder(tableId).addRow(row).build(); + InsertAllResponse response = bigquery.insertAll(request); + assertFalse(response.hasErrors()); + assertEquals(0, response.getInsertErrors().size()); + List partitions = bigquery.listPartitions(TableId.of(DATASET, tableName)); + assertEquals(1, partitions.size()); + } finally { + bigquery.delete(DATASET, tableName); + } + } + @Test public void testUpdateTable() { String tableName = "test_update_table"; From 9e2be5b3a962d491c1f02b4f4b14d851e6eb146a Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 17 Apr 2019 15:06:34 -0400 Subject: [PATCH 0145/3441] Release google-cloud-java v0.88.0 (#4971) * Release v0.88.0 * Change version numbers to 1.0.0 for Speech and Firestore. --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index cc4f3c4188ad..5c23269f1e1a 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.69.0 + 1.70.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.69.0' +compile 'com.google.cloud:google-cloud-bigquery:1.70.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.69.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.70.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3fc72c3ca40e..5a55077255ae 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.69.1-SNAPSHOT + 1.70.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.87.1-alpha-SNAPSHOT + 0.88.0-alpha google-cloud-bigquery From 6dfb4f7e1a4ab9eaba5d783ae9f038f55266096b Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 17 Apr 2019 20:57:30 -0400 Subject: [PATCH 0146/3441] Bump next snapshot (#4973) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5a55077255ae..453af256ac51 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.70.0 + 1.70.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.88.0-alpha + 0.88.1-alpha-SNAPSHOT google-cloud-bigquery From 11f9c3fae2a21581c728a394182ba633fab38948 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 24 Apr 2019 13:34:10 -0700 Subject: [PATCH 0147/3441] Release v0.89.0 (#5009) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 5c23269f1e1a..98be31902984 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.70.0 + 1.71.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.70.0' +compile 'com.google.cloud:google-cloud-bigquery:1.71.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.70.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.71.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 453af256ac51..a4cceefdd08f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.70.1-SNAPSHOT + 1.71.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.88.1-alpha-SNAPSHOT + 0.89.0-alpha google-cloud-bigquery From ea90ed740322d6946473c9c9d67168144a2772da Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 24 Apr 2019 15:46:47 -0700 Subject: [PATCH 0148/3441] Bump next snapshot (#5011) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a4cceefdd08f..794e4ef0a2a1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.71.0 + 1.71.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.89.0-alpha + 0.89.1-alpha-SNAPSHOT google-cloud-bigquery From 451f2785e0a3399f098d7bd74b3424f2259c25fb Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 26 Apr 2019 00:48:21 +0530 Subject: [PATCH 0149/3441] Fix bug for ProjectId in listTableData (#4965) --- .../main/java/com/google/cloud/bigquery/BigQueryImpl.java | 6 +++--- .../java/com/google/cloud/bigquery/BigQueryImplTest.java | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 09a16fa629ef..4402f732eb72 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -655,9 +655,9 @@ private static Tuple, Long> listTableData( try { final TableId completeTableId = tableId.setProjectId( - Strings.isNullOrEmpty(serviceOptions.getProjectId()) - ? tableId.getProject() - : serviceOptions.getProjectId()); + Strings.isNullOrEmpty(tableId.getProject()) + ? serviceOptions.getProjectId() + : tableId.getProject()); TableDataList result = runWithRetries( new Callable() { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 8d589bcb59ab..d300661eeb3b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -1246,8 +1246,7 @@ public void testListTableDataFromTableIdWithProject() { EasyMock.expect(bigqueryRpcMock.listTableData(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .andReturn(TABLE_DATA_PB); EasyMock.replay(bigqueryRpcMock); - BigQueryOptions bigQueryOptions = - createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Page page = bigquery.listTableData(tableId); assertEquals(CURSOR, page.getNextPageToken()); From 998712fcadd3555224cf719efddab6501ce0b195 Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Wed, 1 May 2019 15:44:24 -0700 Subject: [PATCH 0150/3441] Release v0.90.0 (#5047) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 98be31902984..e4fb5d5e86de 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.71.0 + 1.72.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.71.0' +compile 'com.google.cloud:google-cloud-bigquery:1.72.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.71.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.72.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 794e4ef0a2a1..189c0235fa51 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.71.1-SNAPSHOT + 1.72.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.89.1-alpha-SNAPSHOT + 0.90.0-alpha google-cloud-bigquery From c031f2e630f3eff1cb58524167accd5c8ad62615 Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Thu, 2 May 2019 08:02:53 -0700 Subject: [PATCH 0151/3441] Bump next snapshot (#5048) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 189c0235fa51..12515f8a6447 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.72.0 + 1.72.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.90.0-alpha + 0.90.1-alpha-SNAPSHOT google-cloud-bigquery From f944ac3cc262f417bb7e4ce730c0e195dc28f07e Mon Sep 17 00:00:00 2001 From: shollyman Date: Thu, 2 May 2019 15:14:07 -0700 Subject: [PATCH 0152/3441] bigquery: deprecate ambiguous usage of delete in BigQuery client. (#5052) Now that datasets may contain resources other than just tables, deleting a resource using only the string identifiers without type information is ambiguous. --- .../com/google/cloud/bigquery/BigQuery.java | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 1af420294429..5c171c0296a3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -673,22 +673,13 @@ public int hashCode() { /** * Deletes the requested table. * - *

    Example of deleting a table. - * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * boolean deleted = bigquery.delete(datasetName, tableName);
    -   * if (deleted) {
    -   *   // the table was deleted
    -   * } else {
    -   *   // the table was not found
    -   * }
    -   * }
    - * + * @deprecated Now that BigQuery datasets contain multiple resource types, this invocation is + * ambiguous. Please use more strongly typed version of {@code #delete} that leverages an + * non-ambiguous resource type identifier such as {@code TableId}. * @return {@code true} if table was deleted, {@code false} if it was not found * @throws BigQueryException upon failure */ + @Deprecated boolean delete(String datasetId, String tableId); /** From 0d55a37200b75b213ef33cb3f6961758dc4f8c1f Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Tue, 7 May 2019 14:16:26 -0400 Subject: [PATCH 0153/3441] Release google-cloud-java v0.91.0 (#5080) * Release v0.91.0 * Tasks GA --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index e4fb5d5e86de..083054f21688 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.72.0 + 1.73.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.72.0' +compile 'com.google.cloud:google-cloud-bigquery:1.73.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.72.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.73.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 12515f8a6447..b89602a1f945 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.72.1-SNAPSHOT + 1.73.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.90.1-alpha-SNAPSHOT + 0.91.0-alpha google-cloud-bigquery From 8ccb4d40061bddd0eb4dd76a3746032e0b1554ef Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Tue, 7 May 2019 16:53:13 -0400 Subject: [PATCH 0154/3441] Bump next snapshot (#5081) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b89602a1f945..98c827dea13d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.73.0 + 1.73.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.91.0-alpha + 0.91.1-alpha-SNAPSHOT google-cloud-bigquery From caa52c330131c489fae4dfe5508f90031e241693 Mon Sep 17 00:00:00 2001 From: shollyman Date: Thu, 9 May 2019 10:37:18 -0700 Subject: [PATCH 0155/3441] BigQuery: adds models API implementation. (#5021) Provides CRUD API support for BigQuery ML models. See https://cloud.google.com/bigquery/docs/reference/rest/v2/models for reference info. --- .../com/google/cloud/bigquery/BigQuery.java | 162 +++++++++ .../google/cloud/bigquery/BigQueryImpl.java | 165 +++++++++ .../java/com/google/cloud/bigquery/Model.java | 199 +++++++++++ .../com/google/cloud/bigquery/ModelId.java | 108 ++++++ .../com/google/cloud/bigquery/ModelInfo.java | 330 ++++++++++++++++++ .../cloud/bigquery/spi/v2/BigQueryRpc.java | 43 ++- .../bigquery/spi/v2/HttpBigQueryRpc.java | 68 ++++ .../testing/RemoteBigQueryHelper.java | 5 + .../cloud/bigquery/BigQueryImplTest.java | 46 +++ .../google/cloud/bigquery/ModelIdTest.java | 63 ++++ .../google/cloud/bigquery/ModelInfoTest.java | 98 ++++++ .../com/google/cloud/bigquery/ModelTest.java | 210 +++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 62 ++++ 13 files changed, 1553 insertions(+), 6 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 5c171c0296a3..c9c2e8226673 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -116,6 +116,39 @@ public String getSelector() { } } + /** + * Fields of a BigQuery Model resource. + * + * @see Model + * Resource + */ + enum ModelField implements FieldSelector { + CREATION_TIME("creationTime"), + DESCRIPTION("description"), + ETAG("etag"), + EXPIRATION_TIME("expirationTime"), + FRIENDLY_NAME("friendlyName"), + LABELS("labels"), + LAST_MODIFIED_TIME("lastModifiedTime"), + LOCATION("location"), + MODEL_REFERENCE("modelReference"), + TIME_PARTITIONING("timePartitioning"), + TYPE("modelType"); + + static final List REQUIRED_FIELDS = ImmutableList.of(MODEL_REFERENCE); + + private final String selector; + + ModelField(String selector) { + this.selector = selector; + } + + @Override + public String getSelector() { + return selector; + } + } + /** * Fields of a BigQuery Job resource. * @@ -211,6 +244,27 @@ public static DatasetDeleteOption deleteContents() { } } + /** Class for specifying table list options. */ + class ModelListOption extends Option { + + private static final long serialVersionUID = 8660294969063322498L; + + private ModelListOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** Returns an option to specify the maximum number of models returned per page. */ + public static ModelListOption pageSize(long pageSize) { + checkArgument(pageSize >= 0); + return new ModelListOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); + } + + /** Returns an option to specify the page token from which to start listing models. */ + public static ModelListOption pageToken(String pageToken) { + return new ModelListOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); + } + } + /** Class for specifying table list options. */ class TableListOption extends Option { @@ -253,6 +307,26 @@ public static TableOption fields(TableField... fields) { } } + /** Class for specifying table get, create and update options. */ + class ModelOption extends Option { + + private static final long serialVersionUID = -1723870134095226772L; + + private ModelOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** + * Returns an option to specify the model's fields to be returned by the RPC call. If this + * option is not provided all model's fields are returned. {@code ModelOption.fields} can be + * used to specify only the fields of interest. + */ + public static ModelOption fields(ModelField... fields) { + return new ModelOption( + BigQueryRpc.Option.FIELDS, Helper.selector(ModelField.REQUIRED_FIELDS, fields)); + } + } + /** Class for specifying table data list options. */ class TableDataListOption extends Option { @@ -705,6 +779,29 @@ public int hashCode() { */ boolean delete(TableId tableId); + /** + * Deletes the requested model. + * + *

    Example of deleting a model. + * + *

    {@code
    +   * String projectId = "my_project_id";
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_model_name";
    +   * ModelId modelId = ModelId.of(projectId, datasetName, modelName);
    +   * boolean deleted = bigquery.delete(modelId);
    +   * if (deleted) {
    +   *   // the model was deleted
    +   * } else {
    +   *   // the model was not found
    +   * }
    +   * }
    + * + * @return {@code true} if model was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + boolean delete(ModelId modelId); + /** * Updates dataset information. * @@ -765,6 +862,41 @@ public int hashCode() { */ Table update(TableInfo tableInfo, TableOption... options); + /** + * Updates model information. + * + *

    Example of updating a model by changing its description. + * + *

    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String modelName = "my_model_name";
    +   * String newDescription = "new_description";
    +   * Model beforeModel = bigquery.getModel(datasetName, modelName);
    +   * ModelInfo modelInfo = beforeModel.toBuilder()
    +   *     .setDescription(newDescription)
    +   *     .build();
    +   * Model afterModel = bigquery.update(modelInfo);
    +   * }
    + * + *

    Example of updating a model by changing its expiration. + * + *

    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String modelName = "my_model_name";
    +   * Model beforeModel = bigquery.getModel(datasetName, modelName);
    +   *
    +   * // Set model to expire 5 days from now.
    +   * long expirationMillis = DateTime.now().plusDays(5).getMillis();
    +   * ModelInfo modelInfo = beforeModel.toBuilder()
    +   *         .setExpirationTime(expirationMillis)
    +   *         .build();
    +   * Model afterModel = bigquery.update(modelInfo);
    +   * }
    + * + * @throws BigQueryException upon failure + */ + Model update(ModelInfo modelInfo, ModelOption... options); + /** * Returns the requested table or {@code null} if not found. * @@ -797,6 +929,30 @@ public int hashCode() { */ Table getTable(TableId tableId, TableOption... options); + /** + * Returns the requested model or {@code null} if not found. + * + * @throws BigQueryException upon failure + */ + Model getModel(String datasetId, String modelId, ModelOption... options); + + /** + * Returns the requested model or {@code null} if not found. + * + *

    Example of getting a model. + * + *

    {@code
    +   * String projectId = "my_project_id";
    +   * String datasetName = "my_dataset_name";
    +   * String modelName = "my_model_name";
    +   * ModelId modelId = ModelId.of(projectId, datasetName, tableName);
    +   * Model model = bigquery.getModel(modelId);
    +   * }
    + * + * @throws BigQueryException upon failure + */ + Model getModel(ModelId tableId, ModelOption... options); + /** * Lists the tables in the dataset. This method returns partial information on each table: ({@link * Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} and type, @@ -839,6 +995,12 @@ public int hashCode() { */ Page
    listTables(DatasetId datasetId, TableListOption... options); + /** Lists the models in the dataset. */ + Page listModels(String datasetId, ModelListOption... options); + + /** Lists the models in the dataset. */ + Page listModels(DatasetId datasetId, ModelListOption... options); + /** * @param tableId * @return A list of the partition ids present in the partitioned table diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 4402f732eb72..06b3f150b580 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -101,6 +101,30 @@ public Page
    getNextPage() { } } + private static class ModelPageFetcher implements NextPageFetcher { + + private static final long serialVersionUID = 8611248811504201187L; + private final Map requestOptions; + private final BigQueryOptions serviceOptions; + private final DatasetId datasetId; + + ModelPageFetcher( + DatasetId datasetId, + BigQueryOptions serviceOptions, + String cursor, + Map optionMap) { + this.requestOptions = + PageImpl.nextRequestOptions(BigQueryRpc.Option.PAGE_TOKEN, cursor, optionMap); + this.serviceOptions = serviceOptions; + this.datasetId = datasetId; + } + + @Override + public Page getNextPage() { + return listModels(datasetId, serviceOptions, requestOptions); + } + } + private static class JobPageFetcher implements NextPageFetcher { private static final long serialVersionUID = 8536533282558245472L; @@ -406,6 +430,32 @@ public Boolean call() { } } + @Override + public boolean delete(ModelId modelId) { + final ModelId completeModelId = + modelId.setProjectId( + Strings.isNullOrEmpty(modelId.getProject()) + ? getOptions().getProjectId() + : modelId.getProject()); + try { + return runWithRetries( + new Callable() { + @Override + public Boolean call() { + return bigQueryRpc.deleteModel( + completeModelId.getProject(), + completeModelId.getDataset(), + completeModelId.getModel()); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + @Override public Dataset update(DatasetInfo datasetInfo, DatasetOption... options) { final com.google.api.services.bigquery.model.Dataset datasetPb = @@ -457,6 +507,34 @@ public com.google.api.services.bigquery.model.Table call() { } } + @Override + public Model update(ModelInfo modelInfo, ModelOption... options) { + final com.google.api.services.bigquery.model.Model modelPb = + modelInfo + .setProjectId( + Strings.isNullOrEmpty(modelInfo.getModelId().getProject()) + ? getOptions().getProjectId() + : modelInfo.getModelId().getProject()) + .toPb(); + final Map optionsMap = optionMap(options); + try { + return Model.fromPb( + this, + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Model call() { + return bigQueryRpc.patch(modelPb, optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock())); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + @Override public Table getTable(final String datasetId, final String tableId, TableOption... options) { return getTable(TableId.of(datasetId, tableId), options); @@ -496,6 +574,44 @@ public com.google.api.services.bigquery.model.Table call() { } } + @Override + public Model getModel(String datasetId, String modelId, ModelOption... options) { + return getModel(ModelId.of(datasetId, modelId), options); + } + + @Override + public Model getModel(ModelId modelId, ModelOption... options) { + final ModelId completeModelId = + modelId.setProjectId( + Strings.isNullOrEmpty(modelId.getProject()) + ? getOptions().getProjectId() + : modelId.getProject()); + final Map optionsMap = optionMap(options); + try { + com.google.api.services.bigquery.model.Model answer = + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Model call() { + return bigQueryRpc.getModel( + completeModelId.getProject(), + completeModelId.getDataset(), + completeModelId.getModel(), + optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); + if (getOptions().getThrowNotFound() && answer == null) { + throw new BigQueryException(HTTP_NOT_FOUND, "Model not found"); + } + return answer == null ? null : Model.fromPb(this, answer); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + @Override public Page
    listTables(String datasetId, TableListOption... options) { return listTables( @@ -508,6 +624,18 @@ public Page
    listTables(DatasetId datasetId, TableListOption... options) { return listTables(completeDatasetId, getOptions(), optionMap(options)); } + @Override + public Page listModels(String datasetId, ModelListOption... options) { + return listModels( + DatasetId.of(getOptions().getProjectId(), datasetId), getOptions(), optionMap(options)); + } + + @Override + public Page listModels(DatasetId datasetId, ModelListOption... options) { + DatasetId completeDatasetId = datasetId.setProjectId(getOptions().getProjectId()); + return listModels(completeDatasetId, getOptions(), optionMap(options)); + } + @Override public List listPartitions(TableId tableId) { List partitions = new ArrayList(); @@ -565,6 +693,43 @@ public Table apply(com.google.api.services.bigquery.model.Table table) { } } + private static Page listModels( + final DatasetId datasetId, + final BigQueryOptions serviceOptions, + final Map optionsMap) { + try { + Tuple> result = + runWithRetries( + new Callable< + Tuple>>() { + @Override + public Tuple> + call() { + return serviceOptions + .getBigQueryRpcV2() + .listModels(datasetId.getProject(), datasetId.getDataset(), optionsMap); + } + }, + serviceOptions.getRetrySettings(), + EXCEPTION_HANDLER, + serviceOptions.getClock()); + String cursor = result.x(); + Iterable models = + Iterables.transform( + result.y(), + new Function() { + @Override + public Model apply(com.google.api.services.bigquery.model.Model model) { + return Model.fromPb(serviceOptions.getService(), model); + } + }); + return new PageImpl<>( + new ModelPageFetcher(datasetId, serviceOptions, cursor, optionsMap), cursor, models); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + @Override public InsertAllResponse insertAll(InsertAllRequest request) { final TableId tableId = diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java new file mode 100644 index 000000000000..7606a5b25e78 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java @@ -0,0 +1,199 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.cloud.bigquery.BigQuery.ModelOption; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.util.Map; +import java.util.Objects; + +/** + * A Google BigQuery ML Model. + * + *

    Objects of this class are immutable. Operations that modify the table like {@link #update} + * return a new object. To get a {@code Model} object with the most recent information use {@link + * #reload}. + */ +public class Model extends ModelInfo { + + private final BigQueryOptions options; + private transient BigQuery bigquery; + + public static class Builder extends ModelInfo.Builder { + + private final BigQuery bigquery; + private final ModelInfo.BuilderImpl infoBuilder; + + Builder(BigQuery bigquery, ModelId modelId) { + this.bigquery = bigquery; + this.infoBuilder = new ModelInfo.BuilderImpl(); + this.infoBuilder.setModelId(modelId); + } + + Builder(Model model) { + this.bigquery = model.bigquery; + this.infoBuilder = new ModelInfo.BuilderImpl(model); + } + + @Override + Builder setCreationTime(Long creationTime) { + infoBuilder.setCreationTime(creationTime); + return this; + } + + @Override + public Builder setDescription(String description) { + infoBuilder.setDescription(description); + return this; + } + + @Override + Builder setEtag(String etag) { + infoBuilder.setEtag(etag); + return this; + } + + @Override + public Builder setExpirationTime(Long expirationTime) { + infoBuilder.setExpirationTime(expirationTime); + return this; + } + + @Override + public Builder setFriendlyName(String friendlyName) { + infoBuilder.setFriendlyName(friendlyName); + return this; + } + + @Override + Builder setLastModifiedTime(Long lastModifiedTime) { + infoBuilder.setLastModifiedTime(lastModifiedTime); + return this; + } + + @Override + public Builder setModelId(ModelId modelId) { + infoBuilder.setModelId(modelId); + return this; + } + + @Override + Builder setModelType(String modelType) { + infoBuilder.setModelType(modelType); + return this; + } + + @Override + public Builder setLabels(Map labels) { + infoBuilder.setLabels(labels); + return this; + } + + public Model build() { + return new Model(bigquery, infoBuilder); + } + } + + Model(BigQuery bigquery, ModelInfo.BuilderImpl infoBuilder) { + super(infoBuilder); + this.bigquery = checkNotNull(bigquery); + this.options = bigquery.getOptions(); + } + + /** + * Check if this model exists. + * + * @return {@code true} if this table exists, {@code false} otherwise + * @throws BigQueryException upon failure + */ + public boolean exists() { + return bigquery.getModel(getModelId(), ModelOption.fields()) != null; + } + + /** + * Fetches current model's state from the service. Returns {@code null} if the model does not + * exist. A new {@code Model} is returned. + * + * @param options model options + * @return a {@code Model} object with latest information or {@code null} if not found + * @throws BigQueryException upon failure + */ + public Model reload(ModelOption... options) { + return bigquery.getModel(getModelId(), options); + } + + /** + * Updates the model's information with this model's information. Dataset and model identifiers + * cannot be updated. A new {@code Model} object is returned. + * + * @param options dataset options + * @return a {@code Model} object with updated information + * @throws BigQueryException upon failure + */ + public Model update(ModelOption... options) { + return bigquery.update(this, options); + } + + /** + * Deletes this model. + * + * @return {@code true} if model was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + public boolean delete() { + return bigquery.delete(getModelId()); + } + + /** Return's the model's {@code BigQuery} object used to issue requests. * */ + public BigQuery getBigQuery() { + return bigquery; + } + + @Override + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public final boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj == null || !obj.getClass().equals(Model.class)) { + return false; + } + Model other = (Model) obj; + return Objects.equals(toPb(), other.toPb()) && Objects.equals(options, other.options); + } + + @Override + public final int hashCode() { + return Objects.hash(super.hashCode(), options); + } + + private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { + in.defaultReadObject(); + this.bigquery = options.getService(); + } + + static Model fromPb(BigQuery bigquery, com.google.api.services.bigquery.model.Model modelPb) { + return new Model(bigquery, new ModelInfo.BuilderImpl(modelPb)); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java new file mode 100644 index 000000000000..32d74fd36b7f --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java @@ -0,0 +1,108 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.ModelReference; +import com.google.common.base.Function; +import com.google.common.base.Preconditions; +import com.google.common.base.Strings; +import java.io.Serializable; +import java.util.Objects; + +public final class ModelId implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public ModelId apply(ModelReference pb) { + return ModelId.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public ModelReference apply(ModelId modelId) { + return modelId.toPb(); + } + }; + + private final String project; + private final String dataset; + private final String model; + + /** Return corresponding project ID for this model. * */ + public String getProject() { + return project; + } + + /** Return corresponding dataset ID for this model. * */ + public String getDataset() { + return dataset; + } + + /** Return corresponding model ID for this model. * */ + public String getModel() { + return model; + } + + private ModelId(String project, String dataset, String model) { + this.project = project; + this.dataset = dataset; + this.model = model; + } + + /** Creates a model identity given project, dataset, and model identifiers. * */ + public static ModelId of(String project, String dataset, String model) { + return new ModelId(checkNotNull(project), checkNotNull(dataset), checkNotNull(model)); + } + + /** Creates a model identity given dataset and model identifiers. * */ + public static ModelId of(String dataset, String model) { + return new ModelId(null, checkNotNull(dataset), checkNotNull(model)); + } + + @Override + public boolean equals(Object obj) { + return obj == this || obj instanceof ModelId && Objects.equals(toPb(), ((ModelId) obj).toPb()); + } + + @Override + public int hashCode() { + return Objects.hash(project, dataset, model); + } + + @Override + public String toString() { + return toPb().toString(); + } + + ModelId setProjectId(String projectId) { + Preconditions.checkArgument( + !Strings.isNullOrEmpty(projectId), "Provided projectId is null or empty"); + return ModelId.of(projectId, getDataset(), getModel()); + } + + ModelReference toPb() { + return new ModelReference().setProjectId(project).setDatasetId(dataset).setModelId(model); + } + + static ModelId fromPb(ModelReference modelRef) { + return new ModelId(modelRef.getProjectId(), modelRef.getDatasetId(), modelRef.getModelId()); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java new file mode 100644 index 000000000000..15df4f492444 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java @@ -0,0 +1,330 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.Model; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; +import com.google.common.base.Strings; +import java.io.Serializable; +import java.util.Map; +import java.util.Objects; + +/** + * Google BigQuery ML model information. Models are not created directly via the API, but by issuing + * a CREATE MODEL query. + * + * @see CREATE + * MODEL statement + */ +public class ModelInfo implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public ModelInfo apply(Model pb) { + return ModelInfo.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public Model apply(ModelInfo ModelInfo) { + return ModelInfo.toPb(); + } + }; + + private static final long serialVersionUID = 609769793337719407L; + + private final String etag; + private final ModelId modelId; + private final String description; + private final String modelType; + private final String friendlyName; + private final Long creationTime; + private final Long lastModifiedTime; + private final Long expirationTime; + private final Labels labels; + + /** A builder for {@code ModelInfo} objects. */ + public abstract static class Builder { + + /** Sets the user description for this model. */ + public abstract Builder setDescription(String description); + + /** Sets the user-friendly name for this model. */ + public abstract Builder setFriendlyName(String friendlyName); + + /** + * Set the time when this model expires, in milliseconds since the epoch. If not present, the + * model persists indefinitely. Expired models will be deleted. + */ + public abstract Builder setExpirationTime(Long expirationTime); + + /** + * Set the labels applied to this model. + * + *

    When used with {@link BigQuery#update(ModelInfo, ModelOption...)}, setting {@code labels} + * to {@code null} removes all labels; otherwise all keys that are mapped to {@code null} values + * are removed and other keys are updated to their respective values. + */ + public abstract Builder setLabels(Map labels); + + public abstract Builder setModelId(ModelId modelId); + + abstract Builder setEtag(String etag); + + abstract Builder setModelType(String modelType); + + abstract Builder setCreationTime(Long creation); + + abstract Builder setLastModifiedTime(Long lastModifiedTime); + + /** Creates a {@code ModelInfo} object. */ + public abstract ModelInfo build(); + } + + static class BuilderImpl extends Builder { + + private String etag; + private ModelId modelId; + private String description; + private String modelType; + private String friendlyName; + private Long creationTime; + private Long lastModifiedTime; + private Long expirationTime; + private Labels labels = Labels.ZERO; + + BuilderImpl() {} + + BuilderImpl(ModelInfo modelInfo) { + this.etag = modelInfo.etag; + this.modelId = modelInfo.modelId; + this.description = modelInfo.description; + this.friendlyName = modelInfo.friendlyName; + this.modelType = modelInfo.modelType; + this.creationTime = modelInfo.creationTime; + this.lastModifiedTime = modelInfo.lastModifiedTime; + this.expirationTime = modelInfo.expirationTime; + } + + BuilderImpl(Model modelPb) { + this.modelId = ModelId.fromPb(modelPb.getModelReference()); + if (modelPb.getLastModifiedTime() != null) { + this.setLastModifiedTime(modelPb.getLastModifiedTime().longValue()); + } + this.etag = modelPb.getEtag(); + this.description = modelPb.getDescription(); + this.friendlyName = modelPb.getFriendlyName(); + this.modelType = modelPb.getModelType(); + this.creationTime = modelPb.getCreationTime(); + this.lastModifiedTime = modelPb.getLastModifiedTime(); + this.expirationTime = modelPb.getExpirationTime(); + this.labels = Labels.fromPb(modelPb.getLabels()); + } + + @Override + Builder setEtag(String etag) { + this.etag = etag; + return this; + } + + @Override + public Builder setDescription(String description) { + this.description = description; + return this; + } + + @Override + public Builder setFriendlyName(String friendlyName) { + this.friendlyName = friendlyName; + return this; + } + + @Override + Builder setModelType(String modelType) { + this.modelType = modelType; + return this; + } + + @Override + Builder setCreationTime(Long creationTime) { + this.creationTime = creationTime; + return this; + } + + @Override + Builder setLastModifiedTime(Long lastModifiedTime) { + this.lastModifiedTime = lastModifiedTime; + return this; + } + + @Override + public Builder setExpirationTime(Long expirationTime) { + this.expirationTime = expirationTime; + return this; + } + + @Override + public Builder setModelId(ModelId modelId) { + this.modelId = modelId; + return this; + } + + @Override + public Builder setLabels(Map labels) { + this.labels = Labels.fromUser(labels); + return this; + } + + @Override + public ModelInfo build() { + return new ModelInfo(this); + } + } + + ModelInfo(BuilderImpl builder) { + this.modelId = checkNotNull(builder.modelId); + this.etag = builder.etag; + this.modelType = builder.modelType; + this.description = builder.description; + this.friendlyName = builder.friendlyName; + this.creationTime = builder.creationTime; + this.lastModifiedTime = builder.lastModifiedTime; + this.expirationTime = builder.expirationTime; + this.labels = builder.labels; + } + + /** Returns the hash of the model resource. */ + public String getEtag() { + return etag; + } + + /** Returns the model identity. */ + public ModelId getModelId() { + return modelId; + } + + /** Returns the type of the ML model. */ + public String getModelType() { + return modelType; + } + + /** Returns the user description of the model. */ + public String getDescription() { + return description; + } + + /** Returns the user-friendly name for the model. */ + public String getFriendlyName() { + return friendlyName; + } + + /** Returns the time when this model was created, in milliseconds since the epoch. */ + public Long getCreationTime() { + return creationTime; + } + + /** Returns the time when this table was last modified, in milliseconds since the epoch. */ + public Long getLastModifiedTime() { + return lastModifiedTime; + } + + /** + * Returns this this model expires, in milliseconds since the epoch. If not present, the model + * will persist indefinitely. Expired models will be deleted. + */ + public Long getExpirationTime() { + return expirationTime; + } + + /** Returns a map for labels applied to the model. */ + public Map getLabels() { + return labels.userMap(); + } + + public Builder toBuilder() { + return new BuilderImpl(this); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("modelId", modelId) + .add("etag", etag) + .add("modelType", modelType) + .add("description", description) + .add("friendlyName", friendlyName) + .add("creationTime", creationTime) + .add("lastModifiedTime", lastModifiedTime) + .add("expirationTime", expirationTime) + .add("labels", labels) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(modelId); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(ModelInfo.class) + && Objects.equals(toPb(), ((ModelInfo) obj).toPb()); + } + + /** Returns a builder for a {@code ModelInfo} object given table identity. */ + public static Builder newBuilder(ModelId modelId) { + return new BuilderImpl().setModelId(modelId); + } + + /** Returns a {@code ModelInfo} object given table identity. */ + public static ModelInfo of(ModelId modelId) { + return newBuilder(modelId).build(); + } + + ModelInfo setProjectId(String projectId) { + if (Strings.isNullOrEmpty(getModelId().getProject())) { + return toBuilder().setModelId(getModelId().setProjectId(projectId)).build(); + } + return this; + } + + Model toPb() { + Model modelPb = new Model(); + modelPb.setModelReference(modelId.toPb()); + modelPb.setEtag(etag); + modelPb.setModelType(modelType); + modelPb.setDescription(description); + modelPb.setFriendlyName(friendlyName); + modelPb.setCreationTime(creationTime); + modelPb.setLastModifiedTime(lastModifiedTime); + modelPb.setExpirationTime(expirationTime); + modelPb.setLabels(labels.toPb()); + return modelPb; + } + + static ModelInfo fromPb(Model modelPb) { + return new BuilderImpl(modelPb).build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index 27a1fe12351d..8255bcfd5a56 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -20,6 +20,7 @@ import com.google.api.services.bigquery.model.Dataset; import com.google.api.services.bigquery.model.GetQueryResultsResponse; import com.google.api.services.bigquery.model.Job; +import com.google.api.services.bigquery.model.Model; import com.google.api.services.bigquery.model.Table; import com.google.api.services.bigquery.model.TableDataInsertAllRequest; import com.google.api.services.bigquery.model.TableDataInsertAllResponse; @@ -80,9 +81,9 @@ Boolean getBoolean(Map options) { Dataset getDataset(String projectId, String datasetId, Map options); /** - * Lists the provided project's datasets. Partial information is returned on a dataset - * (datasetReference, friendlyName and id). To get full information use {@link #getDataset(String, - * String, Map)}. + * Lists the provided project's datasets, keyed by page token. Partial information is returned on + * a dataset (datasetReference, friendlyName and id). To get full information use {@link + * #getDataset(String, String, Map)}. * * @throws BigQueryException upon failure */ @@ -139,9 +140,9 @@ Boolean getBoolean(Map options) { Table getTable(String projectId, String datasetId, String tableId, Map options); /** - * Lists the dataset's tables. Partial information is returned on a table (tableReference, - * friendlyName, id and type). To get full information use {@link #getTable(String, String, - * String, Map)}. + * Lists the dataset's tables, keyed by page token. Partial information is returned on a table + * (tableReference, friendlyName, id and type). To get full information use {@link + * #getTable(String, String, String, Map)}. * * @throws BigQueryException upon failure */ @@ -156,6 +157,36 @@ Tuple> listTables( */ boolean deleteTable(String projectId, String datasetId, String tableId); + /** + * Updates table information. + * + * @throws BigQueryException upon failure + */ + Model patch(Model model, Map options); + + /** + * Returns the requested model or {@code null} if not found. + * + * @throws BigQueryException upon failure + */ + Model getModel(String projectId, String datasetId, String modelId, Map options); + + /** + * Lists the dataset's models, keyed by page token. + * + * @throws BigQueryException upon failure + */ + Tuple> listModels( + String projectId, String dataset, Map options); + + /** + * Delete the requested model. + * + * @return {@code true} if model was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + boolean deleteModel(String projectId, String datasetId, String modelId); + /** * Sends an insert all request. * diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 70ade809b8ee..4a83eb32fdbc 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -41,6 +41,9 @@ import com.google.api.services.bigquery.model.Job; import com.google.api.services.bigquery.model.JobList; import com.google.api.services.bigquery.model.JobStatus; +import com.google.api.services.bigquery.model.ListModelsResponse; +import com.google.api.services.bigquery.model.Model; +import com.google.api.services.bigquery.model.ModelReference; import com.google.api.services.bigquery.model.Table; import com.google.api.services.bigquery.model.TableDataInsertAllRequest; import com.google.api.services.bigquery.model.TableDataInsertAllResponse; @@ -300,6 +303,71 @@ public boolean deleteTable(String projectId, String datasetId, String tableId) { } } + @Override + public Model patch(Model model, Map options) { + try { + // unset the type, as it is output only + ModelReference reference = model.getModelReference(); + return bigquery + .models() + .patch(reference.getProjectId(), reference.getDatasetId(), reference.getModelId(), model) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public Model getModel( + String projectId, String datasetId, String modelId, Map options) { + try { + return bigquery + .models() + .get(projectId, datasetId, modelId) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + BigQueryException serviceException = translate(ex); + if (serviceException.getCode() == HTTP_NOT_FOUND) { + return null; + } + throw serviceException; + } + } + + @Override + public Tuple> listModels( + String projectId, String datasetId, Map options) { + try { + ListModelsResponse modelList = + bigquery + .models() + .list(projectId, datasetId) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .execute(); + Iterable models = modelList.getModels(); + return Tuple.of(modelList.getNextPageToken(), models); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public boolean deleteModel(String projectId, String datasetId, String modelId) { + try { + bigquery.models().delete(projectId, datasetId, modelId).execute(); + return true; + } catch (IOException ex) { + BigQueryException serviceException = translate(ex); + if (serviceException.getCode() == HTTP_NOT_FOUND) { + return false; + } + throw serviceException; + } + } + @Override public TableDataInsertAllResponse insertAll( String projectId, String datasetId, String tableId, TableDataInsertAllRequest request) { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java index f28c835d61f3..672b7e7c74a1 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java @@ -42,6 +42,7 @@ public class RemoteBigQueryHelper { private static final Logger log = Logger.getLogger(RemoteBigQueryHelper.class.getName()); private static final String DATASET_NAME_PREFIX = "gcloud_test_dataset_temp_"; + private static final String MODEL_NAME_PREFIX = "model_"; private final BigQueryOptions options; private static final int connectTimeout = 60000; @@ -71,6 +72,10 @@ public static String generateDatasetName() { return DATASET_NAME_PREFIX + UUID.randomUUID().toString().replace('-', '_'); } + public static String generateModelName() { + return MODEL_NAME_PREFIX + UUID.randomUUID().toString().replace('-', '_'); + } + /** * Creates a {@code RemoteBigQueryHelper} object for the given project id and JSON key input * stream. diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index d300661eeb3b..327ecf6fc892 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -70,6 +70,8 @@ public class BigQueryImplTest { private static final String OTHER_PROJECT = "otherProject"; private static final String DATASET = "dataset"; private static final String TABLE = "table"; + private static final String MODEL = "model"; + private static final String OTHER_MODEL = "otherModel"; private static final String JOB = "job"; private static final String OTHER_TABLE = "otherTable"; private static final String OTHER_DATASET = "otherDataset"; @@ -130,6 +132,15 @@ public class BigQueryImplTest { TableInfo.newBuilder(TABLE_ID, TABLE_DEFINITION_WITH_PARTITIONING) .setCreationTime(TABLE_CREATION_TIME) .build(); + + private static final ModelId MODEL_ID = ModelId.of(DATASET, MODEL); + private static final ModelId OTHER_MODEL_ID = ModelId.of(DATASET, OTHER_MODEL); + private static final ModelId MODEL_ID_WITH_PROJECT = ModelId.of(PROJECT, DATASET, MODEL); + + private static final ModelInfo MODEL_INFO = ModelInfo.of(MODEL_ID); + private static final ModelInfo OTHER_MODEL_INFO = ModelInfo.of(OTHER_MODEL_ID); + private static final ModelInfo MODEL_INFO_WITH_PROJECT = ModelInfo.of(MODEL_ID_WITH_PROJECT); + private static final LoadJobConfiguration LOAD_JOB_CONFIGURATION = LoadJobConfiguration.of(TABLE_ID, "URI"); private static final LoadJobConfiguration LOAD_JOB_CONFIGURATION_WITH_PROJECT = @@ -761,6 +772,16 @@ public void testGetTable() { assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); } + @Test + public void testGetModel() { + EasyMock.expect(bigqueryRpcMock.getModel(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS)) + .andReturn(MODEL_INFO_WITH_PROJECT.toPb()); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + Model model = bigquery.getModel(DATASET, MODEL); + assertEquals(new Model(bigquery, new ModelInfo.BuilderImpl(MODEL_INFO_WITH_PROJECT)), model); + } + @Test public void testListPartition() { EasyMock.expect( @@ -936,6 +957,23 @@ public void testListTablesWithOptions() { assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); } + @Test + public void testListModels() { + bigquery = options.getService(); + ImmutableList modelList = + ImmutableList.of( + new Model(bigquery, new ModelInfo.BuilderImpl(MODEL_INFO_WITH_PROJECT)), + new Model(bigquery, new ModelInfo.BuilderImpl(OTHER_MODEL_INFO))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(modelList, ModelInfo.TO_PB_FUNCTION)); + EasyMock.expect(bigqueryRpcMock.listModels(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page page = bigquery.listModels(DATASET); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(modelList.toArray(), Iterables.toArray(page.getValues(), Model.class)); + } + @Test public void testDeleteTable() { EasyMock.expect(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).andReturn(true); @@ -973,6 +1011,14 @@ public void testDeleteTableFromTableIdWithoutProject() { assertTrue(bigquery.delete(tableId)); } + @Test + public void testDeleteModel() { + EasyMock.expect(bigqueryRpcMock.deleteModel(PROJECT, DATASET, MODEL)).andReturn(true); + EasyMock.replay(bigqueryRpcMock); + bigquery = options.getService(); + assertTrue(bigquery.delete(ModelId.of(DATASET, MODEL))); + } + @Test public void testUpdateTable() { TableInfo updatedTableInfo = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java new file mode 100644 index 000000000000..266a754c4455 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java @@ -0,0 +1,63 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class ModelIdTest { + + public static final ModelId MODEL = ModelId.of("dataset", "model"); + public static final ModelId MODEL_COMPLETE = ModelId.of("project", "dataset", "model"); + + @Test + public void testOf() { + assertEquals(null, MODEL.getProject()); + assertEquals("dataset", MODEL.getDataset()); + assertEquals("model", MODEL.getModel()); + + assertEquals("project", MODEL_COMPLETE.getProject()); + assertEquals("dataset", MODEL_COMPLETE.getDataset()); + assertEquals("model", MODEL_COMPLETE.getModel()); + } + + @Test + public void testEquals() { + compareModelIds(MODEL, ModelId.of("dataset", "model")); + compareModelIds(MODEL_COMPLETE, ModelId.of("project", "dataset", "model")); + } + + @Test + public void testToPbAndFromPb() { + compareModelIds(MODEL, ModelId.fromPb(MODEL.toPb())); + compareModelIds(MODEL_COMPLETE, ModelId.fromPb(MODEL_COMPLETE.toPb())); + } + + @Test + public void testSetProjectId() { + ModelId differentProjectTable = ModelId.of("differentProject", "dataset", "model"); + assertEquals(differentProjectTable, MODEL.setProjectId("differentProject")); + } + + private void compareModelIds(ModelId expected, ModelId value) { + assertEquals(expected, value); + assertEquals(expected.getProject(), value.getProject()); + assertEquals(expected.getDataset(), value.getDataset()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java new file mode 100644 index 000000000000..c5590b1afb57 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java @@ -0,0 +1,98 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import org.junit.Test; + +public class ModelInfoTest { + + private static final ModelId MODEL_ID = ModelId.of("dataset", "model"); + private static final String ETAG = "etag"; + private static final Long CREATION_TIME = 10L; + private static final Long LAST_MODIFIED_TIME = 20L; + private static final Long EXPIRATION_TIME = 30L; + private static final String DESCRIPTION = "description"; + private static final String FRIENDLY_NAME = "friendlyname"; + + private static final ModelInfo MODEL_INFO = + ModelInfo.newBuilder(MODEL_ID) + .setEtag(ETAG) + .setCreationTime(CREATION_TIME) + .setExpirationTime(EXPIRATION_TIME) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setDescription(DESCRIPTION) + .setFriendlyName(FRIENDLY_NAME) + .build(); + + @Test + public void testToBuilder() { + compareModelInfo(MODEL_INFO, MODEL_INFO.toBuilder().build()); + } + + @Test + public void testToBuilderIncomplete() { + ModelInfo modelInfo = ModelInfo.of(MODEL_ID); + assertEquals(modelInfo, modelInfo.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(ETAG, MODEL_INFO.getEtag()); + assertEquals(CREATION_TIME, MODEL_INFO.getCreationTime()); + assertEquals(LAST_MODIFIED_TIME, MODEL_INFO.getLastModifiedTime()); + assertEquals(EXPIRATION_TIME, MODEL_INFO.getExpirationTime()); + assertEquals(DESCRIPTION, MODEL_INFO.getDescription()); + assertEquals(FRIENDLY_NAME, MODEL_INFO.getFriendlyName()); + } + + @Test + public void testOf() { + ModelInfo modelInfo = ModelInfo.of(MODEL_ID); + assertEquals(MODEL_ID, modelInfo.getModelId()); + assertNull(modelInfo.getEtag()); + assertNull(modelInfo.getCreationTime()); + assertNull(modelInfo.getLastModifiedTime()); + assertNull(modelInfo.getExpirationTime()); + assertNull(modelInfo.getDescription()); + assertNull(modelInfo.getFriendlyName()); + } + + @Test + public void testToAndFromPb() { + compareModelInfo(MODEL_INFO, ModelInfo.fromPb(MODEL_INFO.toPb())); + } + + @Test + public void testSetProjectId() { + assertEquals("project", MODEL_INFO.setProjectId("project").getModelId().getProject()); + } + + private void compareModelInfo(ModelInfo expected, ModelInfo value) { + assertEquals(expected, value); + assertEquals(expected.getModelId(), value.getModelId()); + assertEquals(expected.getEtag(), value.getEtag()); + assertEquals(expected.getCreationTime(), value.getCreationTime()); + assertEquals(expected.getLastModifiedTime(), value.getLastModifiedTime()); + assertEquals(expected.getExpirationTime(), value.getExpirationTime()); + assertEquals(expected.getDescription(), value.getDescription()); + assertEquals(expected.getFriendlyName(), value.getFriendlyName()); + assertEquals(expected.getLabels(), value.getLabels()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java new file mode 100644 index 000000000000..5ff0f8c89ee7 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java @@ -0,0 +1,210 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.createStrictMock; +import static org.easymock.EasyMock.eq; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.verify; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; + +import org.junit.After; +import org.junit.Test; + +public class ModelTest { + + private BigQuery serviceMockReturnsOptions = createStrictMock(BigQuery.class); + private BigQueryOptions mockOptions = createMock(BigQueryOptions.class); + + private static final ModelId MODEL_ID = ModelId.of("dataset", "model"); + private static final String ETAG = "etag"; + private static final Long CREATION_TIME = 10L; + private static final Long LAST_MODIFIED_TIME = 20L; + private static final Long EXPIRATION_TIME = 30L; + private static final String DESCRIPTION = "description"; + private static final String FRIENDLY_NAME = "friendlyname"; + + private static final ModelInfo MODEL_INFO = + ModelInfo.newBuilder(MODEL_ID) + .setEtag(ETAG) + .setCreationTime(CREATION_TIME) + .setExpirationTime(EXPIRATION_TIME) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setDescription(DESCRIPTION) + .setFriendlyName(FRIENDLY_NAME) + .build(); + + private BigQuery bigquery; + private Model expectedModel; + private Model model; + + private void initializeExpectedModel(int optionsCalls) { + expect(serviceMockReturnsOptions.getOptions()).andReturn(mockOptions).times(optionsCalls); + replay(serviceMockReturnsOptions); + bigquery = createStrictMock(BigQuery.class); + expectedModel = new Model(serviceMockReturnsOptions, new ModelInfo.BuilderImpl(MODEL_INFO)); + } + + private void initializeModel() { + model = new Model(bigquery, new ModelInfo.BuilderImpl(MODEL_INFO)); + } + + @After + public void tearDown() throws Exception { + verify(bigquery, serviceMockReturnsOptions); + } + + @Test + public void testBuilder() { + initializeExpectedModel(2); + replay(bigquery); + Model builtModel = + new Model.Builder(serviceMockReturnsOptions, MODEL_ID) + .setEtag(ETAG) + .setCreationTime(CREATION_TIME) + .setExpirationTime(EXPIRATION_TIME) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setDescription(DESCRIPTION) + .setFriendlyName(FRIENDLY_NAME) + .build(); + assertEquals(ETAG, builtModel.getEtag()); + assertSame(serviceMockReturnsOptions, builtModel.getBigQuery()); + } + + @Test + public void testToBuilder() { + initializeExpectedModel(2); + replay(bigquery); + compareModelInfo(expectedModel, expectedModel.toBuilder().build()); + } + + @Test + public void testExists_True() throws Exception { + initializeExpectedModel(1); + BigQuery.ModelOption[] expectedOptions = {BigQuery.ModelOption.fields()}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getModel(MODEL_INFO.getModelId(), expectedOptions)).andReturn(expectedModel); + replay(bigquery); + initializeModel(); + assertTrue(model.exists()); + } + + @Test + public void testExists_False() throws Exception { + initializeExpectedModel(1); + BigQuery.ModelOption[] expectedOptions = {BigQuery.ModelOption.fields()}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getModel(MODEL_INFO.getModelId(), expectedOptions)).andReturn(null); + replay(bigquery); + initializeModel(); + assertFalse(model.exists()); + } + + @Test + public void testReload() throws Exception { + initializeExpectedModel(4); + ModelInfo updatedInfo = MODEL_INFO.toBuilder().setDescription("Description").build(); + Model expectedModel = + new Model(serviceMockReturnsOptions, new ModelInfo.BuilderImpl(updatedInfo)); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getModel(MODEL_INFO.getModelId())).andReturn(expectedModel); + replay(bigquery); + initializeModel(); + Model updatedModel = model.reload(); + compareModel(expectedModel, updatedModel); + } + + @Test + public void testReloadNull() throws Exception { + initializeExpectedModel(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getModel(MODEL_INFO.getModelId())).andReturn(null); + replay(bigquery); + initializeModel(); + assertNull(model.reload()); + } + + @Test + public void testUpdate() { + initializeExpectedModel(4); + Model expectedUpdatedModel = expectedModel.toBuilder().setDescription("Description").build(); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.update(eq(expectedModel))).andReturn(expectedUpdatedModel); + replay(bigquery); + initializeModel(); + Model actualUpdatedModel = model.update(); + compareModel(expectedUpdatedModel, actualUpdatedModel); + } + + @Test + public void testUpdateWithOptions() { + initializeExpectedModel(4); + Model expectedUpdatedModel = expectedModel.toBuilder().setDescription("Description").build(); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.update(eq(expectedModel), eq(BigQuery.ModelOption.fields()))) + .andReturn(expectedUpdatedModel); + replay(bigquery); + initializeModel(); + Model actualUpdatedModel = model.update(BigQuery.ModelOption.fields()); + compareModel(expectedUpdatedModel, actualUpdatedModel); + } + + @Test + public void testDeleteTrue() { + initializeExpectedModel(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.delete(MODEL_INFO.getModelId())).andReturn(true); + replay(bigquery); + initializeModel(); + assertTrue(model.delete()); + } + + @Test + public void testDeleteFalse() { + initializeExpectedModel(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.delete(MODEL_INFO.getModelId())).andReturn(false); + replay(bigquery); + initializeModel(); + assertFalse(model.delete()); + } + + private void compareModel(Model expected, Model value) { + assertEquals(expected, value); + compareModelInfo(expected, value); + assertEquals(expected.getBigQuery().getOptions(), value.getBigQuery().getOptions()); + } + + private void compareModelInfo(ModelInfo expected, ModelInfo value) { + assertEquals(expected, value); + assertEquals(expected.getModelId(), value.getModelId()); + assertEquals(expected.getEtag(), value.getEtag()); + assertEquals(expected.getCreationTime(), value.getCreationTime()); + assertEquals(expected.getLastModifiedTime(), value.getLastModifiedTime()); + assertEquals(expected.getExpirationTime(), value.getExpirationTime()); + assertEquals(expected.getDescription(), value.getDescription()); + assertEquals(expected.getFriendlyName(), value.getFriendlyName()); + assertEquals(expected.getLabels(), value.getLabels()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 0ed59061442d..7dc394add0f7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -60,6 +60,9 @@ import com.google.cloud.bigquery.JobStatistics.LoadStatistics; import com.google.cloud.bigquery.LegacySQLTypeName; import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.Model; +import com.google.cloud.bigquery.ModelId; +import com.google.cloud.bigquery.ModelInfo; import com.google.cloud.bigquery.QueryJobConfiguration; import com.google.cloud.bigquery.QueryParameterValue; import com.google.cloud.bigquery.Schema; @@ -118,6 +121,7 @@ public class ITBigQueryTest { private static final String DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String DESCRIPTION = "Test dataset"; private static final String OTHER_DATASET = RemoteBigQueryHelper.generateDatasetName(); + private static final String MODEL_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final Map LABELS = ImmutableMap.of( "example-label1", "example-value1", @@ -279,6 +283,9 @@ public static void beforeClass() throws InterruptedException, TimeoutException { DatasetInfo info = DatasetInfo.newBuilder(DATASET).setDescription(DESCRIPTION).setLabels(LABELS).build(); bigquery.create(info); + DatasetInfo info2 = + DatasetInfo.newBuilder(MODEL_DATASET).setDescription("java model lifecycle").build(); + bigquery.create(info2); LoadJobConfiguration configuration = LoadJobConfiguration.newBuilder( TABLE_ID, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) @@ -294,6 +301,7 @@ public static void beforeClass() throws InterruptedException, TimeoutException { public static void afterClass() throws ExecutionException, InterruptedException { if (bigquery != null) { RemoteBigQueryHelper.forceDelete(bigquery, DATASET); + RemoteBigQueryHelper.forceDelete(bigquery, MODEL_DATASET); } if (storage != null) { boolean wasDeleted = RemoteStorageHelper.forceDelete(storage, BUCKET, 10, TimeUnit.SECONDS); @@ -1042,6 +1050,60 @@ public void testListAllTableData() { assertEquals(2, rowCount); } + @Test + public void testModelLifecycle() throws InterruptedException { + + String modelName = RemoteBigQueryHelper.generateModelName(); + + // Create a model using SQL. + String sql = + "CREATE MODEL `" + + MODEL_DATASET + + "." + + modelName + + "`" + + "OPTIONS ( " + + "model_type='linear_reg', " + + "max_iteration=1, " + + "learn_rate=0.4, " + + "learn_rate_strategy='constant' " + + ") AS ( " + + " SELECT 'a' AS f1, 2.0 AS label " + + "UNION ALL " + + "SELECT 'b' AS f1, 3.8 AS label " + + ")"; + + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(sql).build(); + Job job = bigquery.create(JobInfo.of(JobId.of(), config)); + job.waitFor(); + assertNull(job.getStatus().getError()); + + // Model is created. Fetch. + ModelId modelId = ModelId.of(MODEL_DATASET, modelName); + Model model = bigquery.getModel(modelId); + assertNotNull(model); + assertEquals(model.getModelType(), "LINEAR_REGRESSION"); + + // Mutate metadata. + ModelInfo info = model.toBuilder().setDescription("TEST").build(); + Model afterUpdate = bigquery.update(info); + assertEquals(afterUpdate.getDescription(), "TEST"); + + // Ensure model is present in listModels. + Page models = bigquery.listModels(MODEL_DATASET); + Boolean found = false; + for (Model m : models.getValues()) { + if (m.getModelId().getModel().equals(modelName)) { + found = true; + break; + } + } + assertTrue(found); + + // Delete the model. + assertTrue(bigquery.delete(modelId)); + } + @Test public void testQuery() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); From 2a10107eeec21d142bcd695fd559fe6f573ceb76 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 15 May 2019 13:49:40 -0700 Subject: [PATCH 0156/3441] Release v0.92.0 (#5189) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 083054f21688..4336ddb0a16e 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.73.0 + 1.74.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.73.0' +compile 'com.google.cloud:google-cloud-bigquery:1.74.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.73.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.74.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 98c827dea13d..88eb4fee7a8d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.73.1-SNAPSHOT + 1.74.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.91.1-alpha-SNAPSHOT + 0.92.0-alpha google-cloud-bigquery From 0fe2155ec5fcfba355aa0fa9f8881951fdb462da Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 15 May 2019 19:41:53 -0700 Subject: [PATCH 0157/3441] Bump next snapshot (#5192) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 88eb4fee7a8d..b8600cbcc5ce 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.74.0 + 1.74.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.92.0-alpha + 0.92.1-alpha-SNAPSHOT google-cloud-bigquery From c8c9d315a625cb9b0752ecad03b40fffab98e707 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 22 May 2019 16:10:33 -0700 Subject: [PATCH 0158/3441] Release v0.93.0 (#5211) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 4336ddb0a16e..fe468c3f85be 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.74.0 + 1.75.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.74.0' +compile 'com.google.cloud:google-cloud-bigquery:1.75.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.74.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.75.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b8600cbcc5ce..3d9842fa6dd2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.74.1-SNAPSHOT + 1.75.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.92.1-alpha-SNAPSHOT + 0.93.0-alpha google-cloud-bigquery From 2727ec5c1fcd5260790e9805cba102781db4021d Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 23 May 2019 09:54:41 -0700 Subject: [PATCH 0159/3441] Bump next snapshot (#5212) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3d9842fa6dd2..b8ed8929e14f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.75.0 + 1.75.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.93.0-alpha + 0.93.1-alpha-SNAPSHOT google-cloud-bigquery From 4441d35b53fa85428f5b11b6b2def289c9af887f Mon Sep 17 00:00:00 2001 From: shollyman Date: Fri, 24 May 2019 08:32:00 +0100 Subject: [PATCH 0160/3441] BigQuery: Augment BQ Model metadata. (#5214) * BigQuery: Augment BQ ML model metadata. This change introduces extended ML model metadata into the existing CRUD implementation for BigQuery ML models. This implementation exposes the underlying discovery types directly without an abstraction for the ML metadata. Methods that provide this metadata are all marked @BetaApi to indicate the getters may change. --- .../com/google/cloud/bigquery/BigQuery.java | 4 +- .../java/com/google/cloud/bigquery/Model.java | 21 ++++++ .../com/google/cloud/bigquery/ModelInfo.java | 75 +++++++++++++++++++ .../google/cloud/bigquery/ModelInfoTest.java | 18 +++++ .../cloud/bigquery/it/ITBigQueryTest.java | 5 ++ 5 files changed, 122 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index c9c2e8226673..a566fbeb8421 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -132,7 +132,9 @@ enum ModelField implements FieldSelector { LAST_MODIFIED_TIME("lastModifiedTime"), LOCATION("location"), MODEL_REFERENCE("modelReference"), - TIME_PARTITIONING("timePartitioning"), + TRAINING_RUNS("trainingRuns"), + LABEL_COLUMNS("labelColumns"), + FEATURE_COLUMNS("featureColumns"), TYPE("modelType"); static final List REQUIRED_FIELDS = ImmutableList.of(MODEL_REFERENCE); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java index 7606a5b25e78..fd06985e9882 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java @@ -18,9 +18,12 @@ import static com.google.common.base.Preconditions.checkNotNull; +import com.google.api.services.bigquery.model.StandardSqlField; +import com.google.api.services.bigquery.model.TrainingRun; import com.google.cloud.bigquery.BigQuery.ModelOption; import java.io.IOException; import java.io.ObjectInputStream; +import java.util.List; import java.util.Map; import java.util.Objects; @@ -106,6 +109,24 @@ public Builder setLabels(Map labels) { return this; } + @Override + Builder setTrainingRuns(List trainingRunList) { + infoBuilder.setTrainingRuns(trainingRunList); + return this; + } + + @Override + Builder setLabelColumns(List labelColumnList) { + infoBuilder.setLabelColumns(labelColumnList); + return this; + } + + @Override + Builder setFeatureColumns(List featureColumnList) { + infoBuilder.setFeatureColumns(featureColumnList); + return this; + } + public Model build() { return new Model(bigquery, infoBuilder); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java index 15df4f492444..23f263708bda 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java @@ -18,11 +18,17 @@ import static com.google.common.base.Preconditions.checkNotNull; +import com.google.api.core.BetaApi; import com.google.api.services.bigquery.model.Model; +import com.google.api.services.bigquery.model.StandardSqlField; +import com.google.api.services.bigquery.model.TrainingRun; import com.google.common.base.Function; import com.google.common.base.MoreObjects; import com.google.common.base.Strings; +import com.google.common.collect.ImmutableList; import java.io.Serializable; +import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.Objects; @@ -62,6 +68,9 @@ public Model apply(ModelInfo ModelInfo) { private final Long lastModifiedTime; private final Long expirationTime; private final Labels labels; + private final ImmutableList trainingRunList; + private final ImmutableList featureColumnList; + private final ImmutableList labelColumnList; /** A builder for {@code ModelInfo} objects. */ public abstract static class Builder { @@ -97,6 +106,12 @@ public abstract static class Builder { abstract Builder setLastModifiedTime(Long lastModifiedTime); + abstract Builder setTrainingRuns(List trainingRunList); + + abstract Builder setLabelColumns(List labelColumnList); + + abstract Builder setFeatureColumns(List featureColumnList); + /** Creates a {@code ModelInfo} object. */ public abstract ModelInfo build(); } @@ -112,6 +127,9 @@ static class BuilderImpl extends Builder { private Long lastModifiedTime; private Long expirationTime; private Labels labels = Labels.ZERO; + private List trainingRunList = Collections.emptyList(); + private List labelColumnList = Collections.emptyList(); + private List featureColumnList = Collections.emptyList(); BuilderImpl() {} @@ -124,6 +142,9 @@ static class BuilderImpl extends Builder { this.creationTime = modelInfo.creationTime; this.lastModifiedTime = modelInfo.lastModifiedTime; this.expirationTime = modelInfo.expirationTime; + this.trainingRunList = modelInfo.trainingRunList; + this.labelColumnList = modelInfo.labelColumnList; + this.featureColumnList = modelInfo.featureColumnList; } BuilderImpl(Model modelPb) { @@ -139,6 +160,15 @@ static class BuilderImpl extends Builder { this.lastModifiedTime = modelPb.getLastModifiedTime(); this.expirationTime = modelPb.getExpirationTime(); this.labels = Labels.fromPb(modelPb.getLabels()); + if (modelPb.getTrainingRuns() != null) { + this.trainingRunList = modelPb.getTrainingRuns(); + } + if (modelPb.getLabelColumns() != null) { + this.labelColumnList = modelPb.getLabelColumns(); + } + if (modelPb.getFeatureColumns() != null) { + this.featureColumnList = modelPb.getFeatureColumns(); + } } @Override @@ -195,6 +225,24 @@ public Builder setLabels(Map labels) { return this; } + @Override + Builder setTrainingRuns(List trainingRunList) { + this.trainingRunList = checkNotNull(trainingRunList); + return this; + } + + @Override + Builder setLabelColumns(List labelColumnList) { + this.labelColumnList = checkNotNull(labelColumnList); + return this; + } + + @Override + Builder setFeatureColumns(List featureColumnList) { + this.featureColumnList = checkNotNull(featureColumnList); + return this; + } + @Override public ModelInfo build() { return new ModelInfo(this); @@ -211,6 +259,9 @@ public ModelInfo build() { this.lastModifiedTime = builder.lastModifiedTime; this.expirationTime = builder.expirationTime; this.labels = builder.labels; + this.trainingRunList = ImmutableList.copyOf(builder.trainingRunList); + this.labelColumnList = ImmutableList.copyOf(builder.labelColumnList); + this.featureColumnList = ImmutableList.copyOf(builder.featureColumnList); } /** Returns the hash of the model resource. */ @@ -261,6 +312,24 @@ public Map getLabels() { return labels.userMap(); } + /** Returns metadata about each training run iteration. */ + @BetaApi + public ImmutableList getTrainingRuns() { + return trainingRunList; + } + + /** Returns information about the label columns for this model. */ + @BetaApi + public ImmutableList getLabelColumns() { + return labelColumnList; + } + + /** Returns information about the feature columns for this model. */ + @BetaApi + public ImmutableList getFeatureColumns() { + return featureColumnList; + } + public Builder toBuilder() { return new BuilderImpl(this); } @@ -277,6 +346,9 @@ public String toString() { .add("lastModifiedTime", lastModifiedTime) .add("expirationTime", expirationTime) .add("labels", labels) + .add("trainingRuns", trainingRunList) + .add("labelColumns", labelColumnList) + .add("featureColumns", featureColumnList) .toString(); } @@ -321,6 +393,9 @@ Model toPb() { modelPb.setLastModifiedTime(lastModifiedTime); modelPb.setExpirationTime(expirationTime); modelPb.setLabels(labels.toPb()); + modelPb.setTrainingRuns(trainingRunList); + modelPb.setLabelColumns(labelColumnList); + modelPb.setFeatureColumns(featureColumnList); return modelPb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java index c5590b1afb57..891ba07ff084 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java @@ -18,6 +18,10 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; +import com.google.api.services.bigquery.model.TrainingOptions; +import com.google.api.services.bigquery.model.TrainingRun; +import java.util.Arrays; +import java.util.List; import org.junit.Test; public class ModelInfoTest { @@ -30,6 +34,12 @@ public class ModelInfoTest { private static final String DESCRIPTION = "description"; private static final String FRIENDLY_NAME = "friendlyname"; + private static final TrainingOptions TRAINING_OPTIONS = + new TrainingOptions().setDataSplitColumn("foo").setEarlyStop(true).setLossType("bar"); + private static final TrainingRun TRAINING_RUN = + new TrainingRun().setTrainingOptions(TRAINING_OPTIONS); + private static final List TRAINING_RUN_LIST = Arrays.asList(TRAINING_RUN); + private static final ModelInfo MODEL_INFO = ModelInfo.newBuilder(MODEL_ID) .setEtag(ETAG) @@ -38,6 +48,7 @@ public class ModelInfoTest { .setLastModifiedTime(LAST_MODIFIED_TIME) .setDescription(DESCRIPTION) .setFriendlyName(FRIENDLY_NAME) + .setTrainingRuns(TRAINING_RUN_LIST) .build(); @Test @@ -59,6 +70,7 @@ public void testBuilder() { assertEquals(EXPIRATION_TIME, MODEL_INFO.getExpirationTime()); assertEquals(DESCRIPTION, MODEL_INFO.getDescription()); assertEquals(FRIENDLY_NAME, MODEL_INFO.getFriendlyName()); + assertEquals(TRAINING_OPTIONS, MODEL_INFO.getTrainingRuns().get(0).getTrainingOptions()); } @Test @@ -71,6 +83,9 @@ public void testOf() { assertNull(modelInfo.getExpirationTime()); assertNull(modelInfo.getDescription()); assertNull(modelInfo.getFriendlyName()); + assertEquals(modelInfo.getTrainingRuns().isEmpty(), true); + assertEquals(modelInfo.getLabelColumns().isEmpty(), true); + assertEquals(modelInfo.getFeatureColumns().isEmpty(), true); } @Test @@ -94,5 +109,8 @@ private void compareModelInfo(ModelInfo expected, ModelInfo value) { assertEquals(expected.getFriendlyName(), value.getFriendlyName()); assertEquals(expected.getLabels(), value.getLabels()); assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.getTrainingRuns(), value.getTrainingRuns()); + assertEquals(expected.getLabelColumns(), value.getLabelColumns()); + assertEquals(expected.getFeatureColumns(), value.getFeatureColumns()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 7dc394add0f7..9305f75478eb 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1083,6 +1083,11 @@ public void testModelLifecycle() throws InterruptedException { Model model = bigquery.getModel(modelId); assertNotNull(model); assertEquals(model.getModelType(), "LINEAR_REGRESSION"); + // Compare the extended model metadata. + assertEquals(model.getFeatureColumns().get(0).getName(), "f1"); + assertEquals(model.getLabelColumns().get(0).getName(), "predicted_label"); + assertEquals( + model.getTrainingRuns().get(0).getTrainingOptions().getLearnRateStrategy(), "CONSTANT"); // Mutate metadata. ModelInfo info = model.toBuilder().setDescription("TEST").build(); From a662401c5b3e108e75c21dcd4c1ffd272650a590 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 29 May 2019 15:05:40 -0400 Subject: [PATCH 0161/3441] Release v0.94.0 (#5238) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index fe468c3f85be..79aa91342b37 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.75.0 + 1.76.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.75.0' +compile 'com.google.cloud:google-cloud-bigquery:1.76.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.75.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.76.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b8ed8929e14f..48cab6e248bf 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.75.1-SNAPSHOT + 1.76.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.93.1-alpha-SNAPSHOT + 0.94.0-alpha google-cloud-bigquery From b6aa2b2a251826290df1f9f26ae6e95f7fef5d1a Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 29 May 2019 17:43:39 -0400 Subject: [PATCH 0162/3441] Bump next snapshot (#5239) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 48cab6e248bf..9186cef0a6e4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.76.0 + 1.76.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.94.0-alpha + 0.94.1-alpha-SNAPSHOT google-cloud-bigquery From 7fbb901d1ad0fcb03b249a3247bf042bd251f7dc Mon Sep 17 00:00:00 2001 From: abhinav-qlogic <48669998+abhinav-qlogic@users.noreply.github.com> Date: Thu, 30 May 2019 22:23:41 +0530 Subject: [PATCH 0163/3441] BigQuery:Fix deprecated warnings removed (#5240) * deprecated warnings removed * it test case change --- .../google/cloud/bigquery/BigQueryImplTest.java | 2 +- .../java/com/google/cloud/bigquery/JobTest.java | 6 +++--- .../google/cloud/bigquery/it/ITBigQueryTest.java | 14 +++++++------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 327ecf6fc892..24cc6a09f0c9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -979,7 +979,7 @@ public void testDeleteTable() { EasyMock.expect(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).andReturn(true); EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); - assertTrue(bigquery.delete(DATASET, TABLE)); + assertTrue(bigquery.delete(TABLE_ID)); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index b259b237ea78..c36fda6b4c41 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -297,7 +297,7 @@ public Iterable getValues() { replay(status, bigquery, mockOptions); initializeJob(jobInfo); - assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameAs(completedJob); + assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameInstanceAs(completedJob); assertThat(job.getQueryResults().iterateAll()).isEmpty(); verify(status, mockOptions); } @@ -345,7 +345,7 @@ public void testWaitForAndGetQueryResultsEmptyWithSchema() throws InterruptedExc replay(status, bigquery, mockOptions); initializeJob(jobInfo); - assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameAs(completedJob); + assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameInstanceAs(completedJob); assertThat(job.getQueryResults().getSchema()) .isEqualTo(Schema.of(Field.of("field1", LegacySQLTypeName.BOOLEAN))); verify(status, mockOptions); @@ -424,7 +424,7 @@ public Iterable getValues() { replay(status, bigquery, mockOptions); initializeJob(jobInfo); - assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameAs(completedJob); + assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameInstanceAs(completedJob); assertThat(job.getQueryResults().iterateAll()).hasSize(0); verify(status, mockOptions); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 9305f75478eb..f2feffbaad73 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -676,7 +676,7 @@ public void testListPartitions() throws InterruptedException { List partitions = bigquery.listPartitions(TableId.of(DATASET, tableName)); assertEquals(1, partitions.size()); } finally { - bigquery.delete(DATASET, tableName); + bigquery.delete(tableId); } } @@ -806,7 +806,7 @@ public void testUpdateNonExistingTable() { @Test public void testDeleteNonExistingTable() { - assertFalse(bigquery.delete(DATASET, "test_delete_non_existing_table")); + assertFalse(bigquery.delete("test_delete_non_existing_table")); } @Test @@ -1280,7 +1280,7 @@ public void testCreateAndGetJob() throws InterruptedException, TimeoutException assertNotNull(completedJob); assertNull(completedJob.getStatus().getError()); - assertTrue(bigquery.delete(DATASET, destinationTableName)); + assertTrue(bigquery.delete(destinationTable)); } @Test @@ -1330,7 +1330,7 @@ public void testCreateAndGetJobWithSelectedFields() RetryOption.totalTimeout(Duration.ofMinutes(1))); assertNotNull(completedJob); assertNull(completedJob.getStatus().getError()); - assertTrue(bigquery.delete(DATASET, destinationTableName)); + assertTrue(bigquery.delete(destinationTable)); } @Test @@ -1388,7 +1388,7 @@ public void testQueryJob() throws InterruptedException, TimeoutException { rowCount++; } assertEquals(2, rowCount); - assertTrue(bigquery.delete(DATASET, tableName)); + assertTrue(bigquery.delete(destinationTable)); Job queryJob = bigquery.getJob(remoteJob.getJobId()); JobStatistics.QueryStatistics statistics = queryJob.getStatistics(); assertNotNull(statistics.getQueryPlan()); @@ -1435,7 +1435,7 @@ public void testExtractJob() throws InterruptedException, TimeoutException { new String(storage.readAllBytes(BUCKET, EXTRACT_FILE), StandardCharsets.UTF_8); assertEquals( Sets.newHashSet(CSV_CONTENT.split("\n")), Sets.newHashSet(extractedCsv.split("\n"))); - assertTrue(bigquery.delete(DATASET, tableName)); + assertTrue(bigquery.delete(destinationTable)); } @Test @@ -1532,7 +1532,7 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo rowCount++; } assertEquals(2, rowCount); - assertTrue(bigquery.delete(DATASET, destinationTableName)); + assertTrue(bigquery.delete(tableId)); } @Test From ceecdd39f22bb0a82f08c211dd684cab9395997d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 6 Jun 2019 01:58:37 +0200 Subject: [PATCH 0164/3441] Update dependency org.codehaus.mojo:build-helper-maven-plugin to v1.12 (#5315) --- google-cloud-bigquery/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9186cef0a6e4..81f9b66bb9a2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -84,7 +84,7 @@ org.codehaus.mojo build-helper-maven-plugin - 1.7 + 1.12 add-source From 53df88398b895d7354f0454719941c9e67a8876b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 6 Jun 2019 17:51:12 +0200 Subject: [PATCH 0165/3441] Update dependency org.codehaus.mojo:build-helper-maven-plugin to v3 (#5429) --- google-cloud-bigquery/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 81f9b66bb9a2..68df036b8ed5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -84,7 +84,7 @@ org.codehaus.mojo build-helper-maven-plugin - 1.12 + 3.0.0 add-source From 2d2a8f24da0f1b6d33dc18b2e19ce52456719833 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 6 Jun 2019 14:00:07 -0700 Subject: [PATCH 0166/3441] Release google-cloud-java v0.95.0 (#5438) * Release v0.95.0 * Add missing files * Fix region replace tag for securitycenter in bom * Notification tests need to run from contrib folder now --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 79aa91342b37..21f82f81cf46 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.76.0 + 1.77.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.76.0' +compile 'com.google.cloud:google-cloud-bigquery:1.77.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.76.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.77.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 68df036b8ed5..75c370b5503c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.76.1-SNAPSHOT + 1.77.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.94.1-alpha-SNAPSHOT + 0.95.0-alpha google-cloud-bigquery From bb77692738ab71a5c3feafb132fdb5f6509876dd Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 6 Jun 2019 15:03:53 -0700 Subject: [PATCH 0167/3441] Bump snapshot (#5441) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 75c370b5503c..b640ba96cc69 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.77.0 + 1.77.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.95.0-alpha + 0.95.1-alpha-SNAPSHOT google-cloud-bigquery From 47e43559b385a5e6c8c120c8db0fc1c4854dc7f1 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 13 Jun 2019 14:06:30 -0700 Subject: [PATCH 0168/3441] Release v0.96.0 (#5474) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 21f82f81cf46..bf363f9a9500 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.77.0 + 1.78.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.77.0' +compile 'com.google.cloud:google-cloud-bigquery:1.78.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.77.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.78.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b640ba96cc69..20cb215aa96f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.77.1-SNAPSHOT + 1.78.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.95.1-alpha-SNAPSHOT + 0.96.0-alpha google-cloud-bigquery From b4c8a227cec4a2ac5df5431348091d2cbd6b22dc Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Fri, 14 Jun 2019 12:08:55 -0700 Subject: [PATCH 0169/3441] Bump next snapshot (#5496) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 20cb215aa96f..e189ddf19005 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.78.0 + 1.78.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.96.0-alpha + 0.96.1-alpha-SNAPSHOT google-cloud-bigquery From 9ac48bee72f7aa355551f60006ad89f3e13ddb5a Mon Sep 17 00:00:00 2001 From: Solomon Duskis Date: Tue, 18 Jun 2019 13:03:04 -0400 Subject: [PATCH 0170/3441] Preparing Easymock for a future upgrade. (#5510) * Upgrading Easymock. * Reverting the upgrade of easymock, but keeping code changes. --- .../java/com/google/cloud/bigquery/BigQueryOptionsTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java index e0831187eef5..04962dffb0ea 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java @@ -28,6 +28,7 @@ public class BigQueryOptionsTest { @Test public void testInvalidTransport() { thrown.expect(IllegalArgumentException.class); - BigQueryOptions.newBuilder().setTransportOptions(EasyMock.createMock(TransportOptions.class)); + BigQueryOptions.newBuilder() + .setTransportOptions(EasyMock.createMock(TransportOptions.class)); } } From 5d89fbd3a388ad5b3691a1d8a6216b3fcfac9c40 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Thu, 20 Jun 2019 17:41:03 -0400 Subject: [PATCH 0171/3441] Release v0.97.0 (#5528) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index bf363f9a9500..d683639dc03e 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.78.0 + 1.79.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.78.0' +compile 'com.google.cloud:google-cloud-bigquery:1.79.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.78.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.79.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e189ddf19005..694ac2a74c00 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.78.1-SNAPSHOT + 1.79.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.96.1-alpha-SNAPSHOT + 0.97.0-alpha google-cloud-bigquery From a329518ea4ef8f6f014c8b8cc67c92a4d3c7c9c5 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Fri, 21 Jun 2019 09:08:35 -0700 Subject: [PATCH 0172/3441] Bump next snapshot (#5530) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 694ac2a74c00..8ba1725869b1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.79.0 + 1.79.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.97.0-alpha + 0.97.1-alpha-SNAPSHOT google-cloud-bigquery From 75062f1890122fd491da1c0062dff1fc4471d49e Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Wed, 26 Jun 2019 15:13:35 -0700 Subject: [PATCH 0173/3441] Release v0.98.0 (#5572) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index d683639dc03e..38dddf9d4b49 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.79.0 + 1.80.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.79.0' +compile 'com.google.cloud:google-cloud-bigquery:1.80.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.79.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.80.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8ba1725869b1..06a586be065b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.79.1-SNAPSHOT + 1.80.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.97.1-alpha-SNAPSHOT + 0.98.0-alpha google-cloud-bigquery From 1e4e6bb0e9ce2633e738a65857c6e6bec20742ef Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Thu, 27 Jun 2019 12:10:33 -0700 Subject: [PATCH 0174/3441] Bump next snapshot (#5579) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 06a586be065b..5bacb1fb450d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.80.0 + 1.80.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.98.0-alpha + 0.98.1-alpha-SNAPSHOT google-cloud-bigquery From 3110535a464bd7800f937795e731fca7312e7cdb Mon Sep 17 00:00:00 2001 From: shollyman Date: Fri, 28 Jun 2019 15:28:40 -0700 Subject: [PATCH 0175/3441] bigquery: reduce test flakiness when testing job cancellation. (#5592) BigQuery's cancellation mechanism is best-effort notification to the job server running cancellation. Depending on a timing factors, the cancellation can be ignored, arrive after job completion, or arrive in time to trigger state transition (which will yield an error). This change removes the expectation that cancelling a job won't yield an error, which is incorrect for the last case. --- .../test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index f2feffbaad73..7ce38134d5a5 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1451,7 +1451,6 @@ public void testCancelJob() throws InterruptedException, TimeoutException { Job remoteJob = bigquery.create(JobInfo.of(configuration)); assertTrue(remoteJob.cancel()); remoteJob = remoteJob.waitFor(); - assertNull(remoteJob.getStatus().getError()); } @Test From 213207f0f4845c2abde859ea5cb1fe8b5006de08 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 3 Jul 2019 09:12:34 -0700 Subject: [PATCH 0176/3441] Release v0.99.0 (#5657) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 38dddf9d4b49..3ebab1163b85 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.80.0 + 1.81.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.80.0' +compile 'com.google.cloud:google-cloud-bigquery:1.81.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.80.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.81.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5bacb1fb450d..afa1b0efbb26 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.80.1-SNAPSHOT + 1.81.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.98.1-alpha-SNAPSHOT + 0.99.0-alpha google-cloud-bigquery From e2f5a237bb865ae7779c0bbdf7b387457ab6874d Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Mon, 8 Jul 2019 11:16:23 -0700 Subject: [PATCH 0177/3441] Bump next snapshot (#5702) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index afa1b0efbb26..b759cbfff710 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.81.0 + 1.81.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.99.0-alpha + 0.99.1-alpha-SNAPSHOT google-cloud-bigquery From 1385dc8576cea058b47aa4cca48b7f6b5af66e0a Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 10 Jul 2019 14:28:03 -0400 Subject: [PATCH 0178/3441] Release v0.100.0 (#5716) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 3ebab1163b85..1ab7a5d5d9f7 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.81.0 + 1.82.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.81.0' +compile 'com.google.cloud:google-cloud-bigquery:1.82.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.81.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.82.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b759cbfff710..ff9287202ce0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.81.1-SNAPSHOT + 1.82.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.99.1-alpha-SNAPSHOT + 0.100.0-alpha google-cloud-bigquery From 06177acae7ab6584aa930127f42d8a65ab43198e Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 10 Jul 2019 17:01:45 -0400 Subject: [PATCH 0179/3441] Bump next snapshot (#5720) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ff9287202ce0..b136b08c3aeb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.82.0 + 1.82.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.100.0-alpha + 0.100.1-alpha-SNAPSHOT google-cloud-bigquery From c7fd1a8791e1cd36f42e2d51cfa642e4c042c6fa Mon Sep 17 00:00:00 2001 From: shollyman Date: Fri, 12 Jul 2019 09:01:03 -0700 Subject: [PATCH 0180/3441] BigQuery: Add routines support (#5591) This adds java support for bigquery routines, which enables API access to a persistent functions and (soon) stored procedures. Routines exist inside of BigQuery datasets, just like tables and BQML models. UDF documentation: https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions Routines REST documentation: https://cloud.google.com/bigquery/docs/reference/rest/v2/routines This PR adds: CRUD operations for manipulating Routine resources. It models the same structure used for Tables and Models. There's a RoutineId class for the qualified reference, a RoutineInfo for metadata and a Routine class for binding to the service operations like create/update/delete. Submessages like arguments (RoutineArgument) are also implemented as classes. StandardSQLDataType,StandardSQLField,StandardSQLStructType veneers for communicating type information using standard sql typing. These are used for communicating datatype information for inputs/outputs in routines. Augments query stats: In addition to using the API directly, you can also manipulate routines using the query language (e.g. CREATE FUNCTION ... AS ...). Statistics provided as part of the query job include the statement type, and when using appropriate DDL queries the DDL target routine. There's some other cleanup around typos/docs, as well as filling in missing things like statements in the StatementType enum. --- .../com/google/cloud/bigquery/BigQuery.java | 133 +++++- .../google/cloud/bigquery/BigQueryImpl.java | 193 +++++++++ .../google/cloud/bigquery/JobStatistics.java | 27 ++ .../com/google/cloud/bigquery/Routine.java | 191 +++++++++ .../cloud/bigquery/RoutineArgument.java | 117 +++++ .../com/google/cloud/bigquery/RoutineId.java | 111 +++++ .../google/cloud/bigquery/RoutineInfo.java | 405 ++++++++++++++++++ .../cloud/bigquery/StandardSQLDataType.java | 100 +++++ .../cloud/bigquery/StandardSQLField.java | 101 +++++ .../cloud/bigquery/StandardSQLStructType.java | 72 ++++ .../cloud/bigquery/spi/v2/BigQueryRpc.java | 34 +- .../bigquery/spi/v2/HttpBigQueryRpc.java | 82 ++++ .../testing/RemoteBigQueryHelper.java | 5 + .../cloud/bigquery/JobStatisticsTest.java | 5 + .../cloud/bigquery/RoutineArgumentTest.java | 63 +++ .../google/cloud/bigquery/RoutineIdTest.java | 62 +++ .../cloud/bigquery/RoutineInfoTest.java | 127 ++++++ .../google/cloud/bigquery/RoutineTest.java | 226 ++++++++++ .../bigquery/StandardSQLDataTypeTest.java | 73 ++++ .../cloud/bigquery/StandardSQLFieldTest.java | 59 +++ .../bigquery/StandardSQLStructTypeTest.java | 59 +++ .../cloud/bigquery/it/ITBigQueryTest.java | 77 ++++ 22 files changed, 2320 insertions(+), 2 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index a566fbeb8421..9eb6b92d2325 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -151,6 +151,39 @@ public String getSelector() { } } + /** + * Fields of a BigQuery Routine resource. + * + * @see Routine + * Resource + */ + enum RoutineField implements FieldSelector { + ARGUMENTS("arguments"), + CREATION_TIME("creationTime"), + DEFINITION_BODY("definitionBody"), + ETAG("etag"), + IMPORTED_LIBRARIES("importedLibraries"), + LANGUAGE("language"), + LAST_MODIFIED_TIME("lastModifiedTime"), + RETURN_TYPE("returnType"), + ROUTINE_REFERENCE("routineReference"), + ROUTINE_TYPE("routineType"); + + static final List REQUIRED_FIELDS = + ImmutableList.of(ROUTINE_REFERENCE); + + private final String selector; + + RoutineField(String selector) { + this.selector = selector; + } + + @Override + public String getSelector() { + return selector; + } + } + /** * Fields of a BigQuery Job resource. * @@ -267,6 +300,27 @@ public static ModelListOption pageToken(String pageToken) { } } + /** Class for specifying routine list options. */ + class RoutineListOption extends Option { + + private static final long serialVersionUID = 8660294969063312498L; + + private RoutineListOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** Returns an option to specify the maximum number of routines returned per page. */ + public static RoutineListOption pageSize(long pageSize) { + checkArgument(pageSize >= 0); + return new RoutineListOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); + } + + /** Returns an option to specify the page token from which to start listing routines. */ + public static RoutineListOption pageToken(String pageToken) { + return new RoutineListOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); + } + } + /** Class for specifying table list options. */ class TableListOption extends Option { @@ -309,7 +363,7 @@ public static TableOption fields(TableField... fields) { } } - /** Class for specifying table get, create and update options. */ + /** Class for specifying model get, create and update options. */ class ModelOption extends Option { private static final long serialVersionUID = -1723870134095226772L; @@ -329,6 +383,26 @@ public static ModelOption fields(ModelField... fields) { } } + /** Class for specifying table get, create and update options. */ + class RoutineOption extends Option { + + private static final long serialVersionUID = -1723870122095226772L; + + private RoutineOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + /** + * Returns an option to specify the routines's fields to be returned by the RPC call. If this + * option is not provided all model's fields are returned. {@code RoutineOption.fields} can be + * used to specify only the fields of interest. + */ + public static RoutineOption fields(RoutineField... fields) { + return new RoutineOption( + BigQueryRpc.Option.FIELDS, Helper.selector(RoutineField.REQUIRED_FIELDS, fields)); + } + } + /** Class for specifying table data list options. */ class TableDataListOption extends Option { @@ -583,6 +657,13 @@ public int hashCode() { */ Table create(TableInfo tableInfo, TableOption... options); + /** + * Creates a new routine. + * + * @throws BigQueryException upon failure + */ + Routine create(RoutineInfo routineInfo, RoutineOption... options); + /** * Creates a new job. * @@ -804,6 +885,29 @@ public int hashCode() { */ boolean delete(ModelId modelId); + /** + * Deletes the requested routine. + * + *

    Example of deleting a routine. + * + *

    {@code
    +   * String projectId = "my_project_id";
    +   * String datasetId = "my_dataset_id";
    +   * String routineId = "my_routine_id";
    +   * RoutineId routineId = RoutineId.of(projectId, datasetId, routineId);
    +   * boolean deleted = bigquery.delete(routineId);
    +   * if (deleted) {
    +   *   // the routine was deleted
    +   * } else {
    +   *   // the routine was not found
    +   * }
    +   * 
    + * + * @return {@code true} if routine was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + boolean delete(RoutineId routineId); + /** * Updates dataset information. * @@ -899,6 +1003,13 @@ public int hashCode() { */ Model update(ModelInfo modelInfo, ModelOption... options); + /** + * Updates routine information. + * + * @throws BigQueryException upon failure + */ + Routine update(RoutineInfo routineInfo, RoutineOption... options); + /** * Returns the requested table or {@code null} if not found. * @@ -955,6 +1066,26 @@ public int hashCode() { */ Model getModel(ModelId tableId, ModelOption... options); + /** + * Returns the requested routine or {@code null} if not found. + * + * @throws BigQueryException upon failure + */ + Routine getRoutine(String datasetId, String routineId, RoutineOption... options); + + /** + * Returns the requested routine or {@code null} if not found. + * + * @throws BigQueryException upon failure + */ + Routine getRoutine(RoutineId routineId, RoutineOption... options); + + /** Lists the routines in the specified dataset. */ + Page listRoutines(String datasetId, RoutineListOption... options); + + /** Lists the routines in the specified dataset. */ + Page listRoutines(DatasetId datasetId, RoutineListOption... options); + /** * Lists the tables in the dataset. This method returns partial information on each table: ({@link * Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} and type, diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 06b3f150b580..85fcadfdec14 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -125,6 +125,30 @@ public Page getNextPage() { } } + private static class RoutinePageFetcher implements NextPageFetcher { + + private static final long serialVersionUID = 8611242311504201187L; + private final Map requestOptions; + private final BigQueryOptions serviceOptions; + private final DatasetId datasetId; + + RoutinePageFetcher( + DatasetId datasetId, + BigQueryOptions serviceOptions, + String cursor, + Map optionMap) { + this.requestOptions = + PageImpl.nextRequestOptions(BigQueryRpc.Option.PAGE_TOKEN, cursor, optionMap); + this.serviceOptions = serviceOptions; + this.datasetId = datasetId; + } + + @Override + public Page getNextPage() { + return listRoutines(datasetId, serviceOptions, requestOptions); + } + } + private static class JobPageFetcher implements NextPageFetcher { private static final long serialVersionUID = 8536533282558245472L; @@ -226,6 +250,34 @@ public com.google.api.services.bigquery.model.Table call() { } } + @Override + public Routine create(RoutineInfo routineInfo, RoutineOption... options) { + final com.google.api.services.bigquery.model.Routine routinePb = + routineInfo + .setProjectId( + Strings.isNullOrEmpty(routineInfo.getRoutineId().getProject()) + ? getOptions().getProjectId() + : routineInfo.getRoutineId().getProject()) + .toPb(); + final Map optionsMap = optionMap(options); + try { + return Routine.fromPb( + this, + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Routine call() { + return bigQueryRpc.create(routinePb, optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock())); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + @Override public Job create(JobInfo jobInfo, JobOption... options) { Supplier idProvider = @@ -456,6 +508,32 @@ public Boolean call() { } } + @Override + public boolean delete(RoutineId routineId) { + final RoutineId completeRoutineId = + routineId.setProjectId( + Strings.isNullOrEmpty(routineId.getProject()) + ? getOptions().getProjectId() + : routineId.getProject()); + try { + return runWithRetries( + new Callable() { + @Override + public Boolean call() { + return bigQueryRpc.deleteRoutine( + completeRoutineId.getProject(), + completeRoutineId.getDataset(), + completeRoutineId.getRoutine()); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + @Override public Dataset update(DatasetInfo datasetInfo, DatasetOption... options) { final com.google.api.services.bigquery.model.Dataset datasetPb = @@ -535,6 +613,34 @@ public com.google.api.services.bigquery.model.Model call() { } } + @Override + public Routine update(RoutineInfo routineInfo, RoutineOption... options) { + final com.google.api.services.bigquery.model.Routine routinePb = + routineInfo + .setProjectId( + Strings.isNullOrEmpty(routineInfo.getRoutineId().getProject()) + ? getOptions().getProjectId() + : routineInfo.getRoutineId().getProject()) + .toPb(); + final Map optionsMap = optionMap(options); + try { + return Routine.fromPb( + this, + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Routine call() { + return bigQueryRpc.update(routinePb, optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock())); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + @Override public Table getTable(final String datasetId, final String tableId, TableOption... options) { return getTable(TableId.of(datasetId, tableId), options); @@ -612,6 +718,44 @@ public com.google.api.services.bigquery.model.Model call() { } } + @Override + public Routine getRoutine(String datasetId, String routineId, RoutineOption... options) { + return getRoutine(RoutineId.of(datasetId, routineId), options); + } + + @Override + public Routine getRoutine(RoutineId routineId, RoutineOption... options) { + final RoutineId completeRoutineId = + routineId.setProjectId( + Strings.isNullOrEmpty(routineId.getProject()) + ? getOptions().getProjectId() + : routineId.getProject()); + final Map optionsMap = optionMap(options); + try { + com.google.api.services.bigquery.model.Routine answer = + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Routine call() { + return bigQueryRpc.getRoutine( + completeRoutineId.getProject(), + completeRoutineId.getDataset(), + completeRoutineId.getRoutine(), + optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); + if (getOptions().getThrowNotFound() && answer == null) { + throw new BigQueryException(HTTP_NOT_FOUND, "Model not found"); + } + return answer == null ? null : Routine.fromPb(this, answer); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + @Override public Page
    listTables(String datasetId, TableListOption... options) { return listTables( @@ -636,6 +780,18 @@ public Page listModels(DatasetId datasetId, ModelListOption... options) { return listModels(completeDatasetId, getOptions(), optionMap(options)); } + @Override + public Page listRoutines(String datasetId, RoutineListOption... options) { + return listRoutines( + DatasetId.of(getOptions().getProjectId(), datasetId), getOptions(), optionMap(options)); + } + + @Override + public Page listRoutines(DatasetId datasetId, RoutineListOption... options) { + DatasetId completeDatasetId = datasetId.setProjectId(getOptions().getProjectId()); + return listRoutines(completeDatasetId, getOptions(), optionMap(options)); + } + @Override public List listPartitions(TableId tableId) { List partitions = new ArrayList(); @@ -730,6 +886,43 @@ public Model apply(com.google.api.services.bigquery.model.Model model) { } } + private static Page listRoutines( + final DatasetId datasetId, + final BigQueryOptions serviceOptions, + final Map optionsMap) { + try { + Tuple> result = + runWithRetries( + new Callable< + Tuple>>() { + @Override + public Tuple> + call() { + return serviceOptions + .getBigQueryRpcV2() + .listRoutines(datasetId.getProject(), datasetId.getDataset(), optionsMap); + } + }, + serviceOptions.getRetrySettings(), + EXCEPTION_HANDLER, + serviceOptions.getClock()); + String cursor = result.x(); + Iterable routines = + Iterables.transform( + result.y(), + new Function() { + @Override + public Routine apply(com.google.api.services.bigquery.model.Routine routinePb) { + return Routine.fromPb(serviceOptions.getService(), routinePb); + } + }); + return new PageImpl<>( + new RoutinePageFetcher(datasetId, serviceOptions, cursor, optionsMap), cursor, routines); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + @Override public InsertAllResponse insertAll(InsertAllRequest request) { final TableId tableId = diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index ac6e4a85750a..388284c04aa3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -317,6 +317,7 @@ public static class QueryStatistics extends JobStatistics { private final Boolean cacheHit; private final String ddlOperationPerformed; private final TableId ddlTargetTable; + private final RoutineId ddlTargetRoutine; private final Long estimatedBytesProcessed; private final Long numDmlAffectedRows; private final List referencedTables; @@ -355,8 +356,16 @@ public StatementType apply(String constant) { public static final StatementType CREATE_TABLE_AS_SELECT = type.createAndRegister("CREATE_TABLE_AS_SELECT"); public static final StatementType CREATE_VIEW = type.createAndRegister("CREATE_VIEW"); + public static final StatementType CREATE_MODEL = type.createAndRegister("CREATE_MODEL"); + public static final StatementType CREATE_FUNCTION = type.createAndRegister("CREATE_FUNCTION"); + public static final StatementType CREATE_PROCEDURE = + type.createAndRegister("CREATE_PROCEDURE"); + public static final StatementType ALTER_TABLE = type.createAndRegister("ALTER_TABLE"); + public static final StatementType ALTER_VIEW = type.createAndRegister("ALTER_VIEW"); public static final StatementType DROP_TABLE = type.createAndRegister("DROP_TABLE"); public static final StatementType DROP_VIEW = type.createAndRegister("DROP_VIEW"); + public static final StatementType DROP_FUNCTION = type.createAndRegister("DROP_FUNCTION"); + public static final StatementType DROP_PROCEDURE = type.createAndRegister("DROP_PROCEDURE"); public static final StatementType MERGE = type.createAndRegister("MERGE"); private StatementType(String constant) { @@ -388,6 +397,7 @@ static final class Builder extends JobStatistics.Builder referencedTables; @@ -411,6 +421,9 @@ private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsP if (statisticsPb.getQuery().getDdlTargetTable() != null) { this.ddlTargetTable = TableId.fromPb(statisticsPb.getQuery().getDdlTargetTable()); } + if (statisticsPb.getQuery().getDdlTargetRoutine() != null) { + this.ddlTargetRoutine = RoutineId.fromPb(statisticsPb.getQuery().getDdlTargetRoutine()); + } this.estimatedBytesProcessed = statisticsPb.getQuery().getEstimatedBytesProcessed(); this.numDmlAffectedRows = statisticsPb.getQuery().getNumDmlAffectedRows(); this.totalBytesBilled = statisticsPb.getQuery().getTotalBytesBilled(); @@ -462,6 +475,11 @@ Builder setDDLTargetTable(TableId ddlTargetTable) { return self(); } + Builder setDDLTargetRoutine(RoutineId ddlTargetRoutine) { + this.ddlTargetRoutine = ddlTargetRoutine; + return self(); + } + Builder setEstimatedBytesProcessed(Long estimatedBytesProcessed) { this.estimatedBytesProcessed = estimatedBytesProcessed; return self(); @@ -534,6 +552,7 @@ private QueryStatistics(Builder builder) { this.cacheHit = builder.cacheHit; this.ddlOperationPerformed = builder.ddlOperationPerformed; this.ddlTargetTable = builder.ddlTargetTable; + this.ddlTargetRoutine = builder.ddlTargetRoutine; this.estimatedBytesProcessed = builder.estimatedBytesProcessed; this.numDmlAffectedRows = builder.numDmlAffectedRows; this.referencedTables = builder.referencedTables; @@ -571,6 +590,11 @@ public TableId getDdlTargetTable() { return ddlTargetTable; } + /** [BETA] For DDL queries, returns the RoutineId of the targeted routine. */ + public RoutineId getDdlTargetRoutine() { + return ddlTargetRoutine; + } + /** The original estimate of bytes processed for the job. */ public Long getEstimatedBytesProcessed() { return estimatedBytesProcessed; @@ -696,6 +720,9 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { if (ddlTargetTable != null) { queryStatisticsPb.setDdlTargetTable(ddlTargetTable.toPb()); } + if (ddlTargetRoutine != null) { + queryStatisticsPb.setDdlTargetRoutine(ddlTargetRoutine.toPb()); + } if (referencedTables != null) { queryStatisticsPb.setReferencedTables( diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java new file mode 100644 index 000000000000..61c8848fb188 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java @@ -0,0 +1,191 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.cloud.bigquery.BigQuery.RoutineOption; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.util.List; +import java.util.Objects; + +/** + * A Google BigQuery Routine. + * + *

    Objects of this class are immutable. Operations that modify the routine like {@link #update} + * return a new object. To get a {@code routine} object with the most recent information use {@link + * #reload}. + */ +public class Routine extends RoutineInfo { + + private final BigQueryOptions options; + private transient BigQuery bigquery; + + public static class Builder extends RoutineInfo.Builder { + + private final BigQuery bigquery; + private final RoutineInfo.BuilderImpl infoBuilder; + + Builder(BigQuery bigquery, RoutineId routineId) { + this.bigquery = bigquery; + this.infoBuilder = new RoutineInfo.BuilderImpl(); + this.infoBuilder.setRoutineId(routineId); + } + + Builder(Routine routine) { + this.bigquery = routine.bigquery; + this.infoBuilder = new RoutineInfo.BuilderImpl(routine); + } + + @Override + Builder setRoutineId(RoutineId id) { + infoBuilder.setRoutineId(id); + return this; + } + + @Override + Builder setEtag(String etag) { + infoBuilder.setEtag(etag); + return this; + } + + @Override + public Builder setRoutineType(String routineType) { + infoBuilder.setRoutineType(routineType); + return this; + } + + @Override + Builder setCreationTime(Long creationMillis) { + infoBuilder.setCreationTime(creationMillis); + return this; + } + + @Override + Builder setLastModifiedTime(Long lastModifiedMillis) { + infoBuilder.setLastModifiedTime(lastModifiedMillis); + return this; + } + + @Override + public Builder setLanguage(String language) { + infoBuilder.setLanguage(language); + return this; + } + + @Override + public Builder setArguments(List arguments) { + infoBuilder.setArguments(arguments); + return this; + } + + @Override + public Builder setReturnType(StandardSQLDataType returnType) { + infoBuilder.setReturnType(returnType); + return this; + } + + @Override + public Builder setImportedLibraries(List libraries) { + infoBuilder.setImportedLibraries(libraries); + return this; + } + + @Override + public Builder setBody(String body) { + infoBuilder.setBody(body); + return this; + } + + @Override + public Routine build() { + return new Routine(bigquery, infoBuilder); + } + } + + Routine(BigQuery bigquery, RoutineInfo.BuilderImpl infoBuilder) { + super(infoBuilder); + this.bigquery = checkNotNull(bigquery); + this.options = bigquery.getOptions(); + } + + /** Checks if this routine exists. */ + public boolean exists() { + return bigquery.getRoutine(getRoutineId(), RoutineOption.fields()) != null; + } + + /** + * Fetches this routine's latest information. Returns {@code null} if the routine does not exist. + */ + public Routine reload(RoutineOption... options) { + return bigquery.getRoutine(getRoutineId(), options); + } + + /** + * Update's the routine's information with this Routine's information. This method does not allow + * changing the RoutineId identifier of the routine. A new {@code Routine} is returned. + */ + public Routine update(RoutineOption... options) { + return bigquery.update(this, options); + } + + /** + * Deletes this routine. + * + * @return {@code true} if routine was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + public boolean delete() { + return bigquery.delete(getRoutineId()); + } + + /** Returns the routine's {@code BigQuery} object used to issue requests. */ + public BigQuery getBigQuery() { + return bigquery; + } + + @Override + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public final boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj == null || !obj.getClass().equals(Routine.class)) { + return false; + } + Routine other = (Routine) obj; + return Objects.equals(toPb(), other.toPb()) && Objects.equals(options, other.options); + } + + public final int hashCode() { + return Objects.hash(super.hashCode(), options); + } + + public void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { + in.defaultReadObject(); + this.bigquery = options.getService(); + } + + static Routine fromPb( + BigQuery bigquery, com.google.api.services.bigquery.model.Routine routinePb) { + return new Routine(bigquery, new RoutineInfo.BuilderImpl(routinePb)); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java new file mode 100644 index 000000000000..d36d1f229517 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java @@ -0,0 +1,117 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.Argument; +import com.google.auto.value.AutoValue; +import com.google.common.base.Function; +import javax.annotation.Nullable; + +/** An argument for a BigQuery Routine. */ +@AutoValue +public abstract class RoutineArgument { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public RoutineArgument apply(Argument pb) { + return RoutineArgument.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public Argument apply(RoutineArgument argument) { + return argument.toPb(); + } + }; + + @AutoValue.Builder + public abstract static class Builder { + /** Sets the argument name. */ + public abstract Builder setName(String name); + + /** + * Sets the kind of argument. + * + *

    A FIXED_TYPE argument is a fully specified type. It can be a struct or an array, but not a + * table. + * + *

    An ANY_TYPE argument is any type. It can be a struct or an array, but not a table. + */ + public abstract Builder setKind(String kind); + + /** + * Optionally specifies the input/output mode of the argument. + * + *

    An IN mode argument is input-only. An OUT mode argument is output-only. An INOUT mode + * argument is both an input and output. + */ + public abstract Builder setMode(String mode); + + /** + * Sets the data type specification for the argument. It is required except for ANY_TYPE + * argument kinds. + */ + public abstract Builder setDataType(StandardSQLDataType dataType); + + /** Creates a {@code RoutineArgument} object. */ + public abstract RoutineArgument build(); + } + + /** Returns the name of the argument. */ + @Nullable + public abstract String getName(); + + /** Returns the kind of the argument. */ + @Nullable + public abstract String getKind(); + + /** Returns the mode of the argument. */ + @Nullable + public abstract String getMode(); + + @Nullable + public abstract StandardSQLDataType getDataType(); + + /** Returns a builder pre-populated using the current values of this {@code RoutineArgument}. */ + public abstract Builder toBuilder(); + + /** Returns a builder for a {@Code RoutineArgument} object. */ + public static Builder newBuilder() { + return new AutoValue_RoutineArgument.Builder(); + } + + Argument toPb() { + Argument argumentPb = + new Argument().setName(getName()).setArgumentKind(getKind()).setMode(getMode()); + if (getDataType() != null) { + argumentPb.setDataType(getDataType().toPb()); + } + return argumentPb; + } + + static RoutineArgument fromPb(Argument argumentPb) { + Builder builder = newBuilder(); + builder.setName(argumentPb.getName()); + builder.setKind(argumentPb.getArgumentKind()); + builder.setMode(argumentPb.getMode()); + if (argumentPb.getDataType() != null) { + builder.setDataType(StandardSQLDataType.fromPb(argumentPb.getDataType())); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java new file mode 100644 index 000000000000..d5d3c5bfe982 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java @@ -0,0 +1,111 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.RoutineReference; +import com.google.common.base.Function; +import com.google.common.base.Preconditions; +import com.google.common.base.Strings; +import java.io.Serializable; +import java.util.Objects; + +/** RoutineId represents the identifier for a given Routine. */ +public final class RoutineId implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public RoutineId apply(RoutineReference pb) { + return RoutineId.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public RoutineReference apply(RoutineId routineId) { + return routineId.toPb(); + } + }; + + private final String project; + private final String dataset; + private final String routine; + + /** Return corresponding project ID for this routine. * */ + public String getProject() { + return project; + } + + /** Return corresponding dataset ID for this routine. * */ + public String getDataset() { + return dataset; + } + + /** Return corresponding routine ID for this routine. * */ + public String getRoutine() { + return routine; + } + + private RoutineId(String project, String dataset, String routine) { + this.project = project; + this.dataset = dataset; + this.routine = routine; + } + + /** Creates a routine identity given project, dataset, and routine identifiers. * */ + public static RoutineId of(String project, String dataset, String routine) { + return new RoutineId(checkNotNull(project), checkNotNull(dataset), checkNotNull(routine)); + } + + /** Creates a routine identity given dataset and routine identifiers. * */ + public static RoutineId of(String dataset, String routine) { + return new RoutineId(null, checkNotNull(dataset), checkNotNull(routine)); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof RoutineId && Objects.equals(toPb(), ((RoutineId) obj).toPb()); + } + + @Override + public int hashCode() { + return Objects.hash(project, dataset, routine); + } + + @Override + public String toString() { + return toPb().toString(); + } + + RoutineId setProjectId(String projectId) { + Preconditions.checkArgument( + !Strings.isNullOrEmpty(projectId), "Provided projectId is null or empty"); + return RoutineId.of(projectId, getDataset(), getRoutine()); + } + + RoutineReference toPb() { + return new RoutineReference().setProjectId(project).setDatasetId(dataset).setRoutineId(routine); + } + + static RoutineId fromPb(RoutineReference routineRef) { + return new RoutineId( + routineRef.getProjectId(), routineRef.getDatasetId(), routineRef.getRoutineId()); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java new file mode 100644 index 000000000000..1474b1994c9e --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java @@ -0,0 +1,405 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.services.bigquery.model.Routine; +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; +import com.google.common.base.Strings; +import com.google.common.collect.Lists; +import java.io.Serializable; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +/** + * Google BigQuery routine information. A Routine is an API abstraction that encapsulates several + * related concepts inside the BigQuery service, including scalar user defined functions (UDFS) and + * stored procedures. + * + *

    For more information about the REST representation of routines, see: + * https://cloud.google.com/bigquery/docs/reference/rest/v2/routines + * + *

    For more information about working with scalar functions, see: + * https://cloud.google.com/bigquery/docs/reference/standard-sql/user-defined-functions + */ +public class RoutineInfo implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public RoutineInfo apply(Routine pb) { + return RoutineInfo.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public Routine apply(RoutineInfo routineInfo) { + return routineInfo.toPb(); + } + }; + + private final RoutineId routineId; + private final String etag; + private final String routineType; + private final Long creationTime; + private final Long lastModifiedTime; + private final String language; + private final List argumentList; + private final StandardSQLDataType returnType; + private final List importedLibrariesList; + private final String body; + + public abstract static class Builder { + + abstract Builder setRoutineId(RoutineId id); + + abstract Builder setEtag(String etag); + + /** + * Sets the routine type for the Builder (e.g. SCALAR_FUNCTION). + * + *

    See https://cloud.google.com/bigquery/docs/reference/rest/v2/routines + */ + public abstract Builder setRoutineType(String routineType); + + abstract Builder setCreationTime(Long creationMillis); + + abstract Builder setLastModifiedTime(Long lastModifiedMillis); + + /** Sets the language for the routine (e.g. SQL or JAVASCRIPT) */ + public abstract Builder setLanguage(String language); + + /** Specifies the list of input/output arguments for the routine. */ + public abstract Builder setArguments(List argumentList); + + /** + * Sets the return type of the routine. + * + *

    Optional if language = "SQL"; required otherwise. + * + *

    If absent, the return type is inferred from definitionBody at query time in each query + * that references this routine. If present, then the evaluated result will be cast to the + * specified returned type at query time. + */ + public abstract Builder setReturnType(StandardSQLDataType returnType); + + /** + * Optional. If language = "JAVASCRIPT", this field stores the path of the imported JAVASCRIPT + * libraries as a list of gs:// URLs. + */ + public abstract Builder setImportedLibraries(List importedLibrariesList); + + /** + * Required. The body of the routine. + * + *

    For functions, this is the expression in the AS clause. + * + *

    If language=SQL, it is the substring inside (but excluding) the parentheses. For example, + * for the function created with the following statement: + * + *

    CREATE FUNCTION JoinLines(x string, y string) as (concat(x, "\n", y)) + * + *

    The definitionBody is concat(x, "\n", y) (\n is not replaced with linebreak). + * + *

    If language=JAVASCRIPT, it is the evaluated string in the AS clause. For example, for the + * function created with the following statement: + * + *

    CREATE FUNCTION f() RETURNS STRING LANGUAGE js AS 'return "\n";\n' + * + *

    The definitionBody is + * + *

    return "\n";\n + * + *

    Note that both \n are replaced with linebreaks. + */ + public abstract Builder setBody(String body); + + /** Creates a {@code RoutineInfo} object. */ + public abstract RoutineInfo build(); + } + + static class BuilderImpl extends Builder { + private RoutineId routineId; + private String etag; + private String routineType; + private Long creationTime; + private Long lastModifiedTime; + private String language; + private List argumentList; + private StandardSQLDataType returnType; + private List importedLibrariesList; + private String body; + + BuilderImpl() {} + + BuilderImpl(RoutineInfo routineInfo) { + this.routineId = routineInfo.routineId; + this.etag = routineInfo.etag; + this.routineType = routineInfo.routineType; + this.creationTime = routineInfo.creationTime; + this.lastModifiedTime = routineInfo.lastModifiedTime; + this.language = routineInfo.language; + this.argumentList = routineInfo.argumentList; + this.returnType = routineInfo.returnType; + this.importedLibrariesList = routineInfo.importedLibrariesList; + this.body = routineInfo.body; + } + + BuilderImpl(Routine routinePb) { + this.routineId = RoutineId.fromPb(routinePb.getRoutineReference()); + this.etag = routinePb.getEtag(); + this.routineType = routinePb.getRoutineType(); + this.creationTime = routinePb.getCreationTime(); + this.lastModifiedTime = routinePb.getLastModifiedTime(); + this.language = routinePb.getLanguage(); + if (routinePb.getArguments() != null) { + this.argumentList = + Lists.transform(routinePb.getArguments(), RoutineArgument.FROM_PB_FUNCTION); + } + if (routinePb.getReturnType() != null) { + this.returnType = StandardSQLDataType.fromPb(routinePb.getReturnType()); + } + if (routinePb.getImportedLibraries() == null) { + this.importedLibrariesList = Collections.emptyList(); + } else { + this.importedLibrariesList = routinePb.getImportedLibraries(); + } + this.body = routinePb.getDefinitionBody(); + } + + @Override + Builder setRoutineId(RoutineId id) { + this.routineId = id; + return this; + } + + @Override + Builder setEtag(String etag) { + this.etag = etag; + return this; + } + + @Override + public Builder setRoutineType(String routineType) { + this.routineType = routineType; + return this; + } + + @Override + Builder setCreationTime(Long creationMillis) { + this.creationTime = creationMillis; + return this; + } + + @Override + Builder setLastModifiedTime(Long lastModifiedMillis) { + this.lastModifiedTime = lastModifiedMillis; + return this; + } + + @Override + public Builder setLanguage(String language) { + this.language = language; + return this; + } + + @Override + public Builder setArguments(List argumentList) { + this.argumentList = argumentList; + return this; + } + + @Override + public Builder setReturnType(StandardSQLDataType returnType) { + this.returnType = returnType; + return this; + } + + @Override + public Builder setImportedLibraries(List importedLibrariesList) { + this.importedLibrariesList = importedLibrariesList; + return this; + } + + @Override + public Builder setBody(String body) { + this.body = body; + return this; + } + + @Override + public RoutineInfo build() { + return new RoutineInfo(this); + } + } + + RoutineInfo(BuilderImpl builder) { + this.routineId = checkNotNull(builder.routineId); + this.etag = builder.etag; + this.routineType = builder.routineType; + this.creationTime = builder.creationTime; + this.lastModifiedTime = builder.lastModifiedTime; + this.language = builder.language; + this.argumentList = builder.argumentList; + this.returnType = builder.returnType; + this.importedLibrariesList = builder.importedLibrariesList; + this.body = builder.body; + } + + /** Returns the RoutineId identified for the routine resource. * */ + public RoutineId getRoutineId() { + return routineId; + } + + /** Returns the hash of the routine resource. */ + public String getEtag() { + return etag; + } + + /** Returns the type of the routine, e.g. SCALAR_FUNCTION. */ + public String getRoutineType() { + return routineType; + } + + /** Returns the creation time of the routine, represented as milliseconds since the epoch. */ + public Long getCreationTime() { + return creationTime; + } + + /** + * Returns the last modification time of the routine, represented as milliseconds since the epoch. + */ + public Long getLastModifiedTime() { + return lastModifiedTime; + } + + /** + * Returns the language of the routine. Currently supported languages include SQL and JAVASCRIPT. + */ + public String getLanguage() { + return language; + } + + /** Returns the list of arguments for the routine. */ + public List getArguments() { + return argumentList; + } + + /** If specified, returns the data type returned from the routine. */ + public StandardSQLDataType getReturnType() { + return returnType; + } + + /** + * Returns the list of imported libraries for the routine. Only relevant for routines implemented + * using the JAVASCRIPT language. + */ + public List getImportedLibraries() { + return importedLibrariesList; + } + + /** Returns the definition body of the routine. */ + public String getBody() { + return body; + } + + /** Returns a builder pre-populated using the current values of this routine. */ + public Builder toBuilder() { + return new BuilderImpl(this); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("routineId", routineId) + .add("etag", etag) + .add("routineType", routineType) + .add("creationTime", creationTime) + .add("lastModifiedTime", lastModifiedTime) + .add("language", language) + .add("arguments", argumentList) + .add("returnType", returnType) + .add("importedLibrariesList", importedLibrariesList) + .add("body", body) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash( + routineId, + etag, + routineType, + creationTime, + lastModifiedTime, + language, + argumentList, + returnType, + importedLibrariesList, + body); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(RoutineInfo.class) + && Objects.equals(toPb(), ((RoutineInfo) obj).toPb()); + } + + /** Returns a builder for a {@code RoutineInfo} object given routine identity. */ + public static Builder newBuilder(RoutineId routineId) { + return new BuilderImpl().setRoutineId(routineId); + } + + /** Returns a {@code RoutineInfo} object given routine identity. */ + public static RoutineInfo of(RoutineId routineId) { + return newBuilder(routineId).build(); + } + + RoutineInfo setProjectId(String projectId) { + if (Strings.isNullOrEmpty(getRoutineId().getProject())) { + return toBuilder().setRoutineId(getRoutineId().setProjectId(projectId)).build(); + } + return this; + } + + Routine toPb() { + Routine routinePb = + new Routine() + .setEtag(getEtag()) + .setRoutineType(getRoutineType()) + .setDefinitionBody(getBody()) + .setCreationTime(getCreationTime()) + .setLastModifiedTime(getLastModifiedTime()) + .setLanguage(getLanguage()); + if (getRoutineId() != null) { + routinePb.setRoutineReference(getRoutineId().toPb()); + } + if (getArguments() != null) { + routinePb.setArguments(Lists.transform(getArguments(), RoutineArgument.TO_PB_FUNCTION)); + } + return routinePb; + } + + static RoutineInfo fromPb(Routine routinePb) { + return new BuilderImpl(routinePb).build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java new file mode 100644 index 000000000000..99ed10af1461 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java @@ -0,0 +1,100 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.StandardSqlDataType; +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import javax.annotation.Nullable; + +/** Represents Standard SQL data type information. */ +@AutoValue +public abstract class StandardSQLDataType implements Serializable { + + @AutoValue.Builder + public abstract static class Builder { + /** Sets the type of an array's elements, when the TypeKind is ARRAY. */ + public abstract Builder setArrayElementType(StandardSQLDataType arrayElementType); + + /** Sets the struct type definition (list of fields) when the TypeKind is STRUCT. */ + public abstract Builder setStructType(StandardSQLStructType structType); + + /** + * Sets the top-level type of this data type. Can be any standard SQL data type. For more + * information, see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types + */ + public abstract Builder setTypeKind(String typeKind); + + /** Creates a {@code StandardSQLDataType} object. */ + public abstract StandardSQLDataType build(); + } + + /** + * Returns the type kind of the data type. + * + *

    Can be any standard SQL data type. For more information, see + * https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types + */ + public abstract String getTypeKind(); + + /** Returns the type of an ARRAY's elements. */ + @Nullable + public abstract StandardSQLDataType getArrayElementType(); + + /** Returns the struct definition's list of fields for a STRUCT type. */ + @Nullable + public abstract StandardSQLStructType getStructType(); + + public abstract Builder toBuilder(); + + public static Builder newBuilder() { + return new AutoValue_StandardSQLDataType.Builder(); + } + + /** Returns a new builder initialized with the type kind. */ + public static Builder newBuilder(String typeKind) { + return newBuilder().setTypeKind(typeKind); + } + + /** Returns a new builder initialized with a StandardSQLTypeName as the type kind. */ + public static Builder newBuilder(StandardSQLTypeName typeName) { + return newBuilder().setTypeKind(typeName.toString()); + } + + StandardSqlDataType toPb() { + StandardSqlDataType dataTypePb = new StandardSqlDataType(); + dataTypePb.setTypeKind(getTypeKind()); + if (getArrayElementType() != null) { + dataTypePb.setArrayElementType(getArrayElementType().toPb()); + } + if (getStructType() != null) { + dataTypePb.setStructType(getStructType().toPb()); + } + return dataTypePb; + } + + static StandardSQLDataType fromPb(StandardSqlDataType dataTypePb) { + Builder builder = newBuilder(); + builder.setTypeKind(dataTypePb.getTypeKind()); + if (dataTypePb.getArrayElementType() != null) { + builder.setArrayElementType(StandardSQLDataType.fromPb(dataTypePb.getArrayElementType())); + } + if (dataTypePb.getStructType() != null) { + builder.setStructType(StandardSQLStructType.fromPb(dataTypePb.getStructType())); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java new file mode 100644 index 000000000000..013742548720 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java @@ -0,0 +1,101 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.StandardSqlField; +import com.google.auto.value.AutoValue; +import com.google.common.base.Function; +import java.io.Serializable; +import javax.annotation.Nullable; + +/** A Google BigQuery SQL Field. */ +@AutoValue +public abstract class StandardSQLField implements Serializable { + + static final Function FROM_PB_FUNCTION = + new Function() { + @Override + public StandardSQLField apply(StandardSqlField pb) { + return StandardSQLField.fromPb(pb); + } + }; + static final Function TO_PB_FUNCTION = + new Function() { + @Override + public StandardSqlField apply(StandardSQLField field) { + return field.toPb(); + } + }; + + @AutoValue.Builder + public abstract static class Builder { + + /** Sets the name of the field. */ + public abstract Builder setName(String name); + + /** Sets the data type of the field. */ + public abstract Builder setDataType(StandardSQLDataType dataType); + + /** Creates a {@code StandardSQLField} object. */ + public abstract StandardSQLField build(); + } + + /** Returns the field name. */ + @Nullable + public abstract String getName(); + + /** Returns the field's data type. */ + public abstract StandardSQLDataType getDataType(); + + /** Returns a builder pre-populated using the current values of this field. */ + public abstract Builder toBuilder(); + + /** Returns a builder for a {@code StandardSQLField} object. */ + public static Builder newBuilder() { + return new AutoValue_StandardSQLField.Builder(); + } + + /** Returns a builder for a {@code StandardSQLField} object with the specified data type. */ + public static Builder newBuilder(StandardSQLDataType dataType) { + return newBuilder().setDataType(dataType); + } + + /** + * Returns a builder for a {@code StandardSQLField} object with the specified field name and data + * type. + */ + public static Builder newBuilder(String name, StandardSQLDataType dataType) { + return newBuilder().setName(name).setDataType(dataType); + } + + StandardSqlField toPb() { + StandardSqlField fieldPb = new StandardSqlField(); + fieldPb.setName(getName()); + if (getDataType() != null) { + fieldPb.setType(getDataType().toPb()); + } + return fieldPb; + } + + static StandardSQLField fromPb(StandardSqlField fieldPb) { + Builder builder = newBuilder(); + builder.setName(fieldPb.getName()); + if (fieldPb.getType() != null) { + builder.setDataType(StandardSQLDataType.fromPb(fieldPb.getType())); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java new file mode 100644 index 000000000000..43844916ec12 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java @@ -0,0 +1,72 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.StandardSqlStructType; +import com.google.auto.value.AutoValue; +import com.google.common.collect.Lists; +import java.io.Serializable; +import java.util.List; + +/** A set of fields contained within a SQL STRUCT in Google BigQuery. */ +@AutoValue +public abstract class StandardSQLStructType implements Serializable { + + @AutoValue.Builder + public abstract static class Builder { + + /** Sets the fields of the struct type. */ + public abstract Builder setFields(List fields); + + /** Creates a {@code StandardSQLStructType} object. */ + public abstract StandardSQLStructType build(); + } + + /** Returns the list of fields within a struct type. */ + public abstract List getFields(); + + /** Returns a builder pre-populated using the current values of this field. */ + public abstract Builder toBuilder(); + + /** Returns a builder for a {@code StandardSQLStructType} object. */ + public static Builder newBuilder() { + return new AutoValue_StandardSQLStructType.Builder(); + } + + /** Returns a builder for a {@code StandardSQLStructType} object with the specified fields. */ + public static Builder newBuilder(List fieldList) { + return newBuilder().setFields(fieldList); + } + + static StandardSQLStructType fromPb( + com.google.api.services.bigquery.model.StandardSqlStructType structTypePb) { + Builder builder = newBuilder(); + if (structTypePb.getFields() != null) { + builder.setFields( + Lists.transform(structTypePb.getFields(), StandardSQLField.FROM_PB_FUNCTION)); + } + return builder.build(); + } + + StandardSqlStructType toPb() { + StandardSqlStructType structTypePb = new StandardSqlStructType(); + if (getFields() != null) { + structTypePb.setFields(Lists.transform(getFields(), StandardSQLField.TO_PB_FUNCTION)); + } + return structTypePb; + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index 8255bcfd5a56..a0dde557d259 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -21,6 +21,7 @@ import com.google.api.services.bigquery.model.GetQueryResultsResponse; import com.google.api.services.bigquery.model.Job; import com.google.api.services.bigquery.model.Model; +import com.google.api.services.bigquery.model.Routine; import com.google.api.services.bigquery.model.Table; import com.google.api.services.bigquery.model.TableDataInsertAllRequest; import com.google.api.services.bigquery.model.TableDataInsertAllResponse; @@ -158,7 +159,7 @@ Tuple> listTables( boolean deleteTable(String projectId, String datasetId, String tableId); /** - * Updates table information. + * Updates model information. * * @throws BigQueryException upon failure */ @@ -187,6 +188,37 @@ Tuple> listModels( */ boolean deleteModel(String projectId, String datasetId, String modelId); + /** + * Creates the requested routine. + * + * @throws BigQueryException upon failure + */ + Routine create(Routine routine, Map options); + + /** + * Updates the requested routine. + * + * @throws BigQueryException upon failure + */ + Routine update(Routine routine, Map options); + + /** + * Returns the requested routine or {@code null} if not found. + * + * @throws BigQueryException upon failure + */ + Routine getRoutine(String projectId, String datasetId, String routineId, Map options); + + Tuple> listRoutines( + String projectId, String datasetId, Map options); + /** + * Deletes the requested routine. + * + * @return {@code true} if routine was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + boolean deleteRoutine(String projectId, String datasetId, String routineId); + /** * Sends an insert all request. * diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 4a83eb32fdbc..0584ee1d2041 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -42,8 +42,11 @@ import com.google.api.services.bigquery.model.JobList; import com.google.api.services.bigquery.model.JobStatus; import com.google.api.services.bigquery.model.ListModelsResponse; +import com.google.api.services.bigquery.model.ListRoutinesResponse; import com.google.api.services.bigquery.model.Model; import com.google.api.services.bigquery.model.ModelReference; +import com.google.api.services.bigquery.model.Routine; +import com.google.api.services.bigquery.model.RoutineReference; import com.google.api.services.bigquery.model.Table; import com.google.api.services.bigquery.model.TableDataInsertAllRequest; import com.google.api.services.bigquery.model.TableDataInsertAllResponse; @@ -172,6 +175,20 @@ public Table create(Table table, Map options) { } } + @Override + public Routine create(Routine routine, Map options) { + try { + RoutineReference reference = routine.getRoutineReference(); + return bigquery + .routines() + .insert(reference.getProjectId(), reference.getDatasetId(), routine) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + @Override public Job create(Job job, Map options) { try { @@ -368,6 +385,71 @@ public boolean deleteModel(String projectId, String datasetId, String modelId) { } } + @Override + public Routine update(Routine routine, Map options) { + try { + RoutineReference reference = routine.getRoutineReference(); + return bigquery + .routines() + .update( + reference.getProjectId(), reference.getDatasetId(), reference.getRoutineId(), routine) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public Routine getRoutine( + String projectId, String datasetId, String routineId, Map options) { + try { + return bigquery + .routines() + .get(projectId, datasetId, routineId) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } catch (IOException ex) { + BigQueryException serviceException = translate(ex); + if (serviceException.getCode() == HTTP_NOT_FOUND) { + return null; + } + throw serviceException; + } + } + + @Override + public Tuple> listRoutines( + String projectId, String datasetId, Map options) { + try { + ListRoutinesResponse routineList = + bigquery + .routines() + .list(projectId, datasetId) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .execute(); + Iterable routines = routineList.getRoutines(); + return Tuple.of(routineList.getNextPageToken(), routines); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public boolean deleteRoutine(String projectId, String datasetId, String routineId) { + try { + bigquery.routines().delete(projectId, datasetId, routineId).execute(); + return true; + } catch (IOException ex) { + BigQueryException serviceException = translate(ex); + if (serviceException.getCode() == HTTP_NOT_FOUND) { + return false; + } + throw serviceException; + } + } + @Override public TableDataInsertAllResponse insertAll( String projectId, String datasetId, String tableId, TableDataInsertAllRequest request) { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java index 672b7e7c74a1..784ca984fa09 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java @@ -43,6 +43,7 @@ public class RemoteBigQueryHelper { private static final Logger log = Logger.getLogger(RemoteBigQueryHelper.class.getName()); private static final String DATASET_NAME_PREFIX = "gcloud_test_dataset_temp_"; private static final String MODEL_NAME_PREFIX = "model_"; + private static final String ROUTINE_NAME_PREFIX = "routine_"; private final BigQueryOptions options; private static final int connectTimeout = 60000; @@ -76,6 +77,10 @@ public static String generateModelName() { return MODEL_NAME_PREFIX + UUID.randomUUID().toString().replace('-', '_'); } + public static String generateRoutineName() { + return ROUTINE_NAME_PREFIX + UUID.randomUUID().toString().replace('-', '_'); + } + /** * Creates a {@code RemoteBigQueryHelper} object for the given project id and JSON key input * stream. diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index 891deb0049b9..2113eb8f5410 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -34,6 +34,7 @@ public class JobStatisticsTest { private static final Boolean CACHE_HIT = true; private static final String DDL_OPERATION_PERFORMED = "SKIP"; private static final TableId DDL_TARGET_TABLE = TableId.of("foo", "bar", "baz"); + private static final RoutineId DDL_TARGET_ROUTINE = RoutineId.of("alpha", "beta", "gamma"); private static final Long ESTIMATE_BYTES_PROCESSED = 101L; private static final Long NUM_DML_AFFECTED_ROWS = 88L; private static final QueryStatistics.StatementType STATEMENT_TYPE = @@ -136,6 +137,7 @@ public class JobStatisticsTest { .setCacheHit(CACHE_HIT) .setDDLOperationPerformed(DDL_OPERATION_PERFORMED) .setDDLTargetTable(DDL_TARGET_TABLE) + .setDDLTargetRoutine(DDL_TARGET_ROUTINE) .setEstimatedBytesProcessed(ESTIMATE_BYTES_PROCESSED) .setNumDmlAffectedRows(NUM_DML_AFFECTED_ROWS) .setReferenceTables(REFERENCED_TABLES) @@ -180,6 +182,7 @@ public void testBuilder() { assertEquals(CACHE_HIT, QUERY_STATISTICS.getCacheHit()); assertEquals(DDL_OPERATION_PERFORMED, QUERY_STATISTICS.getDdlOperationPerformed()); assertEquals(DDL_TARGET_TABLE, QUERY_STATISTICS.getDdlTargetTable()); + assertEquals(DDL_TARGET_ROUTINE, QUERY_STATISTICS.getDdlTargetRoutine()); assertEquals(ESTIMATE_BYTES_PROCESSED, QUERY_STATISTICS.getEstimatedBytesProcessed()); assertEquals(NUM_DML_AFFECTED_ROWS, QUERY_STATISTICS.getNumDmlAffectedRows()); assertEquals(REFERENCED_TABLES, QUERY_STATISTICS.getReferencedTables()); @@ -207,6 +210,7 @@ public void testBuilder() { assertEquals(CACHE_HIT, QUERY_STATISTICS_INCOMPLETE.getCacheHit()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getDdlOperationPerformed()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getDdlTargetTable()); + assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getDdlTargetRoutine()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getEstimatedBytesProcessed()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getNumDmlAffectedRows()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getTotalBytesBilled()); @@ -284,6 +288,7 @@ private void compareQueryStatistics(QueryStatistics expected, QueryStatistics va assertEquals(expected.getCacheHit(), value.getCacheHit()); assertEquals(expected.getDdlOperationPerformed(), value.getDdlOperationPerformed()); assertEquals(expected.getDdlTargetTable(), value.getDdlTargetTable()); + assertEquals(expected.getDdlTargetRoutine(), value.getDdlTargetRoutine()); assertEquals(expected.getEstimatedBytesProcessed(), value.getEstimatedBytesProcessed()); assertEquals(expected.getTotalBytesBilled(), value.getTotalBytesBilled()); assertEquals(expected.getTotalBytesProcessed(), value.getTotalBytesProcessed()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java new file mode 100644 index 000000000000..909d5981d7f9 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java @@ -0,0 +1,63 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class RoutineArgumentTest { + + private static final String NAME = "foo"; + private static final String KIND = "SCALAR_FUNCTION"; + private static final String MODE = "IN"; + private static final StandardSQLDataType DATA_TYPE = + StandardSQLDataType.newBuilder("STRING").build(); + private static final RoutineArgument ARGUMENT = + RoutineArgument.newBuilder() + .setName(NAME) + .setKind(KIND) + .setMode(MODE) + .setDataType(DATA_TYPE) + .build(); + + @Test + public void testToBuilder() { + compareRoutineArguments(ARGUMENT, ARGUMENT.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(NAME, ARGUMENT.getName()); + assertEquals(KIND, ARGUMENT.getKind()); + assertEquals(MODE, ARGUMENT.getMode()); + assertEquals(DATA_TYPE, ARGUMENT.getDataType()); + } + + @Test + public void testToPbAndFromPb() { + compareRoutineArguments(ARGUMENT, RoutineArgument.fromPb(ARGUMENT.toPb())); + } + + public void compareRoutineArguments(RoutineArgument expected, RoutineArgument value) { + assertEquals(expected, value); + assertEquals(expected.getName(), value.getName()); + assertEquals(expected.getKind(), value.getKind()); + assertEquals(expected.getMode(), value.getMode()); + assertEquals(expected.getDataType(), value.getDataType()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java new file mode 100644 index 000000000000..94a19fbfd573 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java @@ -0,0 +1,62 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class RoutineIdTest { + + public static final RoutineId ROUTINE = RoutineId.of("dataset", "routine"); + public static final RoutineId ROUTINE_COMPLETE = RoutineId.of("project", "dataset", "routine"); + + @Test + public void testOf() { + assertEquals(null, ROUTINE.getProject()); + assertEquals("dataset", ROUTINE.getDataset()); + assertEquals("routine", ROUTINE.getRoutine()); + + assertEquals("project", ROUTINE_COMPLETE.getProject()); + assertEquals("dataset", ROUTINE_COMPLETE.getDataset()); + assertEquals("routine", ROUTINE_COMPLETE.getRoutine()); + } + + @Test + public void testEquals() { + compareRoutineIds(ROUTINE, RoutineId.of("dataset", "routine")); + compareRoutineIds(ROUTINE_COMPLETE, RoutineId.of("project", "dataset", "routine")); + } + + @Test + public void testToPbAndFromPb() { + compareRoutineIds(ROUTINE, RoutineId.fromPb(ROUTINE.toPb())); + compareRoutineIds(ROUTINE_COMPLETE, RoutineId.fromPb(ROUTINE_COMPLETE.toPb())); + } + + @Test + public void testSetProjectId() { + RoutineId differentProjectTable = RoutineId.of("differentProject", "dataset", "routine"); + assertEquals(differentProjectTable, ROUTINE.setProjectId("differentProject")); + } + + private void compareRoutineIds(RoutineId expected, RoutineId value) { + assertEquals(expected, value); + assertEquals(expected.getProject(), value.getProject()); + assertEquals(expected.getDataset(), value.getDataset()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java new file mode 100644 index 000000000000..866daf82d0fa --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java @@ -0,0 +1,127 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import com.google.common.collect.ImmutableList; +import java.util.List; +import org.junit.Test; + +public class RoutineInfoTest { + + private static final RoutineId ROUTINE_ID = RoutineId.of("dataset", "routine"); + private static final String ETAG = "etag"; + private static final String ROUTINE_TYPE = "SCALAR_FUNCTION"; + private static final Long CREATION_TIME = 10L; + private static final Long LAST_MODIFIED_TIME = 20L; + private static final String LANGUAGE = "SQL"; + + private static final RoutineArgument ARG_1 = + RoutineArgument.newBuilder() + .setDataType(StandardSQLDataType.newBuilder("STRING").build()) + .setName("arg1") + .build(); + + private static final List ARGUMENT_LIST = ImmutableList.of(ARG_1); + + private static final StandardSQLDataType RETURN_TYPE = + StandardSQLDataType.newBuilder("FLOAT64").build(); + + private static final List IMPORTED_LIBRARIES = + ImmutableList.of("gs://foo", "gs://bar", "gs://baz"); + + private static final String BODY = "body"; + + private static final RoutineInfo ROUTINE_INFO = + RoutineInfo.of(ROUTINE_ID) + .toBuilder() + .setEtag(ETAG) + .setRoutineType(ROUTINE_TYPE) + .setCreationTime(CREATION_TIME) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setLanguage(LANGUAGE) + .setArguments(ARGUMENT_LIST) + .setReturnType(RETURN_TYPE) + .setImportedLibraries(IMPORTED_LIBRARIES) + .setBody(BODY) + .build(); + + @Test + public void testToBuilder() { + compareRoutineInfo(ROUTINE_INFO, ROUTINE_INFO.toBuilder().build()); + } + + @Test + public void testBuilderIncomplete() { + RoutineInfo routineInfo = RoutineInfo.of(ROUTINE_ID); + assertEquals(routineInfo, routineInfo.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(ROUTINE_ID, ROUTINE_INFO.getRoutineId()); + assertEquals(ETAG, ROUTINE_INFO.getEtag()); + assertEquals(ROUTINE_TYPE, ROUTINE_INFO.getRoutineType()); + assertEquals(CREATION_TIME, ROUTINE_INFO.getCreationTime()); + assertEquals(LAST_MODIFIED_TIME, ROUTINE_INFO.getLastModifiedTime()); + assertEquals(LANGUAGE, ROUTINE_INFO.getLanguage()); + assertEquals(ARGUMENT_LIST, ROUTINE_INFO.getArguments()); + assertEquals(RETURN_TYPE, ROUTINE_INFO.getReturnType()); + assertEquals(IMPORTED_LIBRARIES, ROUTINE_INFO.getImportedLibraries()); + assertEquals(BODY, ROUTINE_INFO.getBody()); + } + + @Test + public void testOf() { + RoutineInfo routineInfo = RoutineInfo.of(ROUTINE_ID); + assertEquals(ROUTINE_ID, ROUTINE_INFO.getRoutineId()); + assertNull(routineInfo.getEtag()); + assertNull(routineInfo.getRoutineType()); + assertNull(routineInfo.getCreationTime()); + assertNull(routineInfo.getLastModifiedTime()); + assertNull(routineInfo.getLanguage()); + assertNull(routineInfo.getArguments()); + assertNull(routineInfo.getReturnType()); + assertNull(routineInfo.getImportedLibraries()); + assertNull(routineInfo.getBody()); + } + + public void testToAndFromPb() { + compareRoutineInfo(ROUTINE_INFO, RoutineInfo.fromPb(ROUTINE_INFO.toPb())); + } + + @Test + public void testSetProjectId() { + assertEquals("project", ROUTINE_INFO.setProjectId("project").getRoutineId().getProject()); + } + + public void compareRoutineInfo(RoutineInfo expected, RoutineInfo value) { + assertEquals(expected, value); + assertEquals(expected.getRoutineId(), value.getRoutineId()); + assertEquals(expected.getEtag(), value.getEtag()); + assertEquals(expected.getRoutineType(), value.getRoutineType()); + assertEquals(expected.getCreationTime(), value.getCreationTime()); + assertEquals(expected.getLastModifiedTime(), value.getLastModifiedTime()); + assertEquals(expected.getLanguage(), value.getLanguage()); + assertEquals(expected.getArguments(), value.getArguments()); + assertEquals(expected.getReturnType(), value.getReturnType()); + assertEquals(expected.getImportedLibraries(), value.getImportedLibraries()); + assertEquals(expected.getBody(), value.getBody()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java new file mode 100644 index 000000000000..36301aae58fd --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java @@ -0,0 +1,226 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.easymock.EasyMock.*; +import static org.easymock.EasyMock.replay; +import static org.junit.Assert.*; + +import com.google.common.collect.ImmutableList; +import java.util.List; +import org.junit.Test; + +public class RoutineTest { + + private BigQuery serviceMockReturnsOptions = createStrictMock(BigQuery.class); + private BigQueryOptions mockOptions = createMock(BigQueryOptions.class); + + private static final RoutineId ROUTINE_ID = RoutineId.of("dataset", "routine"); + private static final String ETAG = "etag"; + private static final String ROUTINE_TYPE = "SCALAR_FUNCTION"; + private static final Long CREATION_TIME = 10L; + private static final Long LAST_MODIFIED_TIME = 20L; + private static final String LANGUAGE = "SQL"; + + private static final RoutineArgument ARG_1 = + RoutineArgument.newBuilder() + .setDataType(StandardSQLDataType.newBuilder("STRING").build()) + .setName("arg1") + .build(); + + private static final List ARGUMENT_LIST = ImmutableList.of(ARG_1); + + private static final StandardSQLDataType RETURN_TYPE = + StandardSQLDataType.newBuilder("FLOAT64").build(); + + private static final List IMPORTED_LIBRARIES = + ImmutableList.of("gs://foo", "gs://bar", "gs://baz"); + + private static final String BODY = "body"; + + private static final RoutineInfo ROUTINE_INFO = + RoutineInfo.newBuilder(ROUTINE_ID) + .setEtag(ETAG) + .setRoutineType(ROUTINE_TYPE) + .setCreationTime(CREATION_TIME) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setLanguage(LANGUAGE) + .setArguments(ARGUMENT_LIST) + .setReturnType(RETURN_TYPE) + .setImportedLibraries(IMPORTED_LIBRARIES) + .setBody(BODY) + .build(); + + private BigQuery bigquery; + private Routine expectedRoutine; + private Routine routine; + + private void initializeExpectedRoutine(int optionsCalls) { + expect(serviceMockReturnsOptions.getOptions()).andReturn(mockOptions).times(optionsCalls); + replay(serviceMockReturnsOptions); + bigquery = createStrictMock(BigQuery.class); + expectedRoutine = + new Routine(serviceMockReturnsOptions, new RoutineInfo.BuilderImpl(ROUTINE_INFO)); + } + + private void initializeRoutine() { + routine = new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO)); + } + + private void tearDown() throws Exception { + verify(bigquery, serviceMockReturnsOptions); + } + + @Test + public void testBuilder() { + initializeExpectedRoutine(2); + replay(bigquery); + Routine builtRoutine = + new Routine.Builder(serviceMockReturnsOptions, ROUTINE_ID) + .setEtag(ETAG) + .setRoutineType(ROUTINE_TYPE) + .setCreationTime(CREATION_TIME) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setLanguage(LANGUAGE) + .setArguments(ARGUMENT_LIST) + .setReturnType(RETURN_TYPE) + .setImportedLibraries(IMPORTED_LIBRARIES) + .setBody(BODY) + .build(); + assertEquals(ETAG, builtRoutine.getEtag()); + assertSame(serviceMockReturnsOptions, builtRoutine.getBigQuery()); + } + + @Test + public void testToBuilder() { + initializeExpectedRoutine(2); + replay(bigquery); + compareRoutineInfo(expectedRoutine, expectedRoutine.toBuilder().build()); + } + + @Test + public void testExists_True() throws Exception { + initializeExpectedRoutine(1); + BigQuery.RoutineOption[] expectedOptions = {BigQuery.RoutineOption.fields()}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getRoutine(ROUTINE_INFO.getRoutineId(), expectedOptions)).andReturn(null); + replay(bigquery); + initializeRoutine(); + assertFalse(routine.exists()); + } + + @Test + public void testExists_False() throws Exception { + initializeExpectedRoutine(1); + BigQuery.RoutineOption[] expectedOptions = {BigQuery.RoutineOption.fields()}; + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getRoutine(ROUTINE_INFO.getRoutineId(), expectedOptions)) + .andReturn(expectedRoutine); + replay(bigquery); + initializeRoutine(); + assertTrue(routine.exists()); + } + + @Test + public void testReload() throws Exception { + initializeExpectedRoutine(4); + RoutineInfo updatedInfo = ROUTINE_INFO.toBuilder().setBody("body2").build(); + Routine expectedRoutine = + new Routine(serviceMockReturnsOptions, new RoutineInfo.BuilderImpl(updatedInfo)); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getRoutine(ROUTINE_INFO.getRoutineId())).andReturn(expectedRoutine); + replay(bigquery); + initializeRoutine(); + Routine updatedRoutine = routine.reload(); + compareRoutine(expectedRoutine, updatedRoutine); + } + + @Test + public void testReload_Null() throws Exception { + initializeExpectedRoutine(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.getRoutine(ROUTINE_INFO.getRoutineId())).andReturn(null); + replay(bigquery); + initializeRoutine(); + assertNull(routine.reload()); + } + + @Test + public void testUpdate() { + initializeExpectedRoutine(4); + Routine expectedUpdatedRoutine = expectedRoutine.toBuilder().setBody("body2").build(); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.update(eq(expectedRoutine))).andReturn(expectedUpdatedRoutine); + replay(bigquery); + initializeRoutine(); + Routine actualUpdatedRoutine = routine.update(); + compareRoutine(expectedUpdatedRoutine, actualUpdatedRoutine); + } + + @Test + public void testUpdateWithOptions() { + initializeExpectedRoutine(4); + Routine expectedUpdatedRoutine = expectedRoutine.toBuilder().setBody("body2").build(); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.update(eq(expectedRoutine), eq(BigQuery.RoutineOption.fields()))) + .andReturn(expectedUpdatedRoutine); + replay(bigquery); + initializeRoutine(); + Routine actualUpdatedRoutine = routine.update(BigQuery.RoutineOption.fields()); + compareRoutine(expectedUpdatedRoutine, actualUpdatedRoutine); + } + + @Test + public void testDeleteTrue() { + initializeExpectedRoutine(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.delete(ROUTINE_INFO.getRoutineId())).andReturn(true); + replay(bigquery); + initializeRoutine(); + assertTrue(routine.delete()); + } + + @Test + public void testDeleteFalse() { + initializeExpectedRoutine(1); + expect(bigquery.getOptions()).andReturn(mockOptions); + expect(bigquery.delete(ROUTINE_INFO.getRoutineId())).andReturn(false); + replay(bigquery); + initializeRoutine(); + assertFalse(routine.delete()); + } + + private void compareRoutine(Routine expected, Routine value) { + assertEquals(expected, value); + compareRoutineInfo(expected, value); + assertEquals(expected.getBigQuery().getOptions(), value.getBigQuery().getOptions()); + } + + public void compareRoutineInfo(RoutineInfo expected, RoutineInfo value) { + assertEquals(expected, value); + assertEquals(expected.getRoutineId(), value.getRoutineId()); + assertEquals(expected.getEtag(), value.getEtag()); + assertEquals(expected.getRoutineType(), value.getRoutineType()); + assertEquals(expected.getCreationTime(), value.getCreationTime()); + assertEquals(expected.getLastModifiedTime(), value.getLastModifiedTime()); + assertEquals(expected.getLanguage(), value.getLanguage()); + assertEquals(expected.getArguments(), value.getArguments()); + assertEquals(expected.getReturnType(), value.getReturnType()); + assertEquals(expected.getImportedLibraries(), value.getImportedLibraries()); + assertEquals(expected.getBody(), value.getBody()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java new file mode 100644 index 000000000000..635a75612b94 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java @@ -0,0 +1,73 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.common.collect.ImmutableList; +import java.util.List; +import org.junit.Test; + +public class StandardSQLDataTypeTest { + private static final String STRING_TYPEKIND = "STRING"; + private static final String ARRAY_TYPEKIND = "ARRAY"; + private static final String STRUCT_TYPEKIND = "STRUCT"; + + private static final StandardSQLDataType STRING_DATA_TYPE = + StandardSQLDataType.newBuilder(STRING_TYPEKIND).build(); + private static final StandardSQLDataType ARRAY_OF_STRING_DATA_TYPE = + StandardSQLDataType.newBuilder(ARRAY_TYPEKIND).setArrayElementType(STRING_DATA_TYPE).build(); + + private static final List FIELD_LIST = + ImmutableList.of( + StandardSQLField.newBuilder(STRING_DATA_TYPE).build(), + StandardSQLField.newBuilder(ARRAY_OF_STRING_DATA_TYPE).build()); + private static final StandardSQLStructType STRUCT_TYPE = + StandardSQLStructType.newBuilder(FIELD_LIST).build(); + + private static final StandardSQLDataType STRUCT_DATA_TYPE = + StandardSQLDataType.newBuilder(STRUCT_TYPEKIND).setStructType(STRUCT_TYPE).build(); + + @Test + public void testToBuilder() { + compareStandardSQLDataType(STRING_DATA_TYPE, STRING_DATA_TYPE.toBuilder().build()); + compareStandardSQLDataType( + ARRAY_OF_STRING_DATA_TYPE, ARRAY_OF_STRING_DATA_TYPE.toBuilder().build()); + compareStandardSQLDataType(STRUCT_DATA_TYPE, STRUCT_DATA_TYPE.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(STRING_TYPEKIND, STRING_DATA_TYPE.getTypeKind()); + assertEquals(ARRAY_TYPEKIND, ARRAY_OF_STRING_DATA_TYPE.getTypeKind()); + assertEquals(STRING_DATA_TYPE, ARRAY_OF_STRING_DATA_TYPE.getArrayElementType()); + assertEquals(STRUCT_TYPE, STRUCT_DATA_TYPE.getStructType()); + } + + @Test + public void testToAndFromPb() { + compareStandardSQLDataType( + ARRAY_OF_STRING_DATA_TYPE, StandardSQLDataType.fromPb(ARRAY_OF_STRING_DATA_TYPE.toPb())); + } + + private void compareStandardSQLDataType(StandardSQLDataType expected, StandardSQLDataType value) { + assertEquals(expected, value); + assertEquals(expected.getTypeKind(), value.getTypeKind()); + assertEquals(expected.getArrayElementType(), value.getArrayElementType()); + assertEquals(expected.getStructType(), value.getStructType()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java new file mode 100644 index 000000000000..904ed80280f6 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java @@ -0,0 +1,59 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class StandardSQLFieldTest { + + private static final String NAME = "field_name"; + private static final StandardSQLDataType STRING_DATA_TYPE = + StandardSQLDataType.newBuilder("STRING").build(); + private static final StandardSQLDataType ARRAY_OF_STRING_DATA_TYPE = + StandardSQLDataType.newBuilder("ARRAY").setArrayElementType(STRING_DATA_TYPE).build(); + private static final StandardSQLField STANDARD_SQL_FIELD_1 = + StandardSQLField.newBuilder(STRING_DATA_TYPE).build(); + private static final StandardSQLField STANDARD_SQL_FIELD_2 = + StandardSQLField.newBuilder(NAME, ARRAY_OF_STRING_DATA_TYPE).build(); + + @Test + public void testToBuilder() { + compareStandardSQLField(STANDARD_SQL_FIELD_1, STANDARD_SQL_FIELD_1.toBuilder().build()); + compareStandardSQLField(STANDARD_SQL_FIELD_2, STANDARD_SQL_FIELD_2.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(null, STANDARD_SQL_FIELD_1.getName()); + assertEquals(STRING_DATA_TYPE, STANDARD_SQL_FIELD_1.getDataType()); + assertEquals(ARRAY_OF_STRING_DATA_TYPE, STANDARD_SQL_FIELD_2.getDataType()); + } + + @Test + public void testToAndFromPb() { + compareStandardSQLField( + STANDARD_SQL_FIELD_1, StandardSQLField.fromPb(STANDARD_SQL_FIELD_1.toPb())); + } + + private void compareStandardSQLField(StandardSQLField expected, StandardSQLField value) { + assertEquals(expected, value); + assertEquals(expected.getName(), value.getName()); + assertEquals(expected.getDataType(), value.getDataType()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java new file mode 100644 index 000000000000..d4fa86950f02 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java @@ -0,0 +1,59 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.common.collect.ImmutableList; +import java.util.List; +import org.junit.Test; + +public class StandardSQLStructTypeTest { + + private static final StandardSQLField FIELD_1 = + StandardSQLField.newBuilder("FIELD_1", StandardSQLDataType.newBuilder("STRING").build()) + .build(); + private static final StandardSQLField FIELD_2 = + StandardSQLField.newBuilder("FIELD_2", StandardSQLDataType.newBuilder("FLOAT64").build()) + .build(); + + private static final List FIELD_LIST = ImmutableList.of(FIELD_1, FIELD_2); + private static final StandardSQLStructType STRUCT_TYPE = + StandardSQLStructType.newBuilder(FIELD_LIST).build(); + + @Test + public void testToBuilder() { + compareStandardSQLStructType(STRUCT_TYPE, STRUCT_TYPE.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(FIELD_1, STRUCT_TYPE.getFields().get(0)); + assertEquals(FIELD_2, STRUCT_TYPE.getFields().get(1)); + } + + @Test + public void testToAndFromPb() { + compareStandardSQLStructType(STRUCT_TYPE, StandardSQLStructType.fromPb(STRUCT_TYPE.toPb())); + } + + private void compareStandardSQLStructType( + StandardSQLStructType expected, StandardSQLStructType value) { + assertEquals(expected, value); + assertEquals(expected.getFields(), value.getFields()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 7ce38134d5a5..bb744d63ec59 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -65,7 +65,12 @@ import com.google.cloud.bigquery.ModelInfo; import com.google.cloud.bigquery.QueryJobConfiguration; import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.Routine; +import com.google.cloud.bigquery.RoutineArgument; +import com.google.cloud.bigquery.RoutineId; +import com.google.cloud.bigquery.RoutineInfo; import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLDataType; import com.google.cloud.bigquery.StandardTableDefinition; import com.google.cloud.bigquery.Table; import com.google.cloud.bigquery.TableDataWriteChannel; @@ -122,6 +127,7 @@ public class ITBigQueryTest { private static final String DESCRIPTION = "Test dataset"; private static final String OTHER_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String MODEL_DATASET = RemoteBigQueryHelper.generateDatasetName(); + private static final String ROUTINE_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final Map LABELS = ImmutableMap.of( "example-label1", "example-value1", @@ -286,6 +292,9 @@ public static void beforeClass() throws InterruptedException, TimeoutException { DatasetInfo info2 = DatasetInfo.newBuilder(MODEL_DATASET).setDescription("java model lifecycle").build(); bigquery.create(info2); + DatasetInfo info3 = + DatasetInfo.newBuilder(ROUTINE_DATASET).setDescription("java routine lifecycle").build(); + bigquery.create(info3); LoadJobConfiguration configuration = LoadJobConfiguration.newBuilder( TABLE_ID, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) @@ -302,6 +311,7 @@ public static void afterClass() throws ExecutionException, InterruptedException if (bigquery != null) { RemoteBigQueryHelper.forceDelete(bigquery, DATASET); RemoteBigQueryHelper.forceDelete(bigquery, MODEL_DATASET); + RemoteBigQueryHelper.forceDelete(bigquery, ROUTINE_DATASET); } if (storage != null) { boolean wasDeleted = RemoteStorageHelper.forceDelete(storage, BUCKET, 10, TimeUnit.SECONDS); @@ -1109,6 +1119,73 @@ public void testModelLifecycle() throws InterruptedException { assertTrue(bigquery.delete(modelId)); } + @Test + public void testRoutineLifecycle() throws InterruptedException { + + String routineName = RemoteBigQueryHelper.generateRoutineName(); + // Create a routine using SQL. + String sql = + "CREATE FUNCTION `" + ROUTINE_DATASET + "." + routineName + "`" + "(x INT64) AS (x * 3)"; + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(sql).build(); + Job job = bigquery.create(JobInfo.of(JobId.of(), config)); + job.waitFor(); + assertNull(job.getStatus().getError()); + + // Routine is created. Fetch. + RoutineId routineId = RoutineId.of(ROUTINE_DATASET, routineName); + Routine routine = bigquery.getRoutine(routineId); + assertNotNull(routine); + assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); + + // Mutate metadata. + RoutineInfo newInfo = + routine + .toBuilder() + .setBody("x * 4") + .setReturnType(routine.getReturnType()) + .setArguments(routine.getArguments()) + .setRoutineType(routine.getRoutineType()) + .build(); + Routine afterUpdate = bigquery.update(newInfo); + assertEquals(afterUpdate.getBody(), "x * 4"); + + // Ensure routine is present in listRoutines. + Page routines = bigquery.listRoutines(ROUTINE_DATASET); + Boolean found = false; + for (Routine r : routines.getValues()) { + if (r.getRoutineId().getRoutine().equals(routineName)) { + found = true; + break; + } + } + assertTrue(found); + + // Delete the routine. + assertTrue(bigquery.delete(routineId)); + } + + @Test + public void testRoutineAPICreation() { + String routineName = RemoteBigQueryHelper.generateRoutineName(); + RoutineId routineId = RoutineId.of(ROUTINE_DATASET, routineName); + RoutineInfo routineInfo = + RoutineInfo.newBuilder(routineId) + .setRoutineType("SCALAR_FUNCTION") + .setBody("x * 3") + .setLanguage("SQL") + .setArguments( + ImmutableList.of( + RoutineArgument.newBuilder() + .setName("x") + .setDataType(StandardSQLDataType.newBuilder("INT64").build()) + .build())) + .build(); + + Routine routine = bigquery.create(routineInfo); + assertNotNull(routine); + assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); + } + @Test public void testQuery() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); From 5b298322bb820a103133bdbb22896e851ca48e2f Mon Sep 17 00:00:00 2001 From: shollyman Date: Fri, 12 Jul 2019 09:20:42 -0700 Subject: [PATCH 0181/3441] BigQuery: Implement missing list options (#5717) * bigquery: implement missing DatasetListOption, JobListOption filters. * update assertion, cleanup message. * deal with null conversions for min/max creation time. * address reviewer comments --- .../com/google/cloud/bigquery/BigQuery.java | 18 ++++++++ .../cloud/bigquery/spi/v2/BigQueryRpc.java | 3 ++ .../bigquery/spi/v2/HttpBigQueryRpc.java | 14 +++++-- .../cloud/bigquery/it/ITBigQueryTest.java | 41 +++++++++++++++++++ 4 files changed, 73 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 9eb6b92d2325..bdf1de25d804 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -224,6 +224,14 @@ private DatasetListOption(BigQueryRpc.Option option, Object value) { super(option, value); } + /** + * Returns an option to specify a label filter. See + * https://cloud.google.com/bigquery/docs/adding-using-labels#filtering_datasets_using_labels + */ + public static DatasetListOption labelFilter(String labelFilter) { + return new DatasetListOption(BigQueryRpc.Option.LABEL_FILTER, labelFilter); + } + /** Returns an option to specify the maximum number of datasets returned per page. */ public static DatasetListOption pageSize(long pageSize) { return new DatasetListOption(BigQueryRpc.Option.MAX_RESULTS, pageSize); @@ -461,6 +469,16 @@ public String apply(JobStatus.State state) { return new JobListOption(BigQueryRpc.Option.STATE_FILTER, stringFilters); } + /** Returns an option to filter out jobs before the given minimum creation time. */ + public static JobListOption minCreationTime(long minCreationTime) { + return new JobListOption(BigQueryRpc.Option.MIN_CREATION_TIME, minCreationTime); + } + + /** Returns an option to filter out jobs after the given maximum creation time. */ + public static JobListOption maxCreationTime(long maxCreationTime) { + return new JobListOption(BigQueryRpc.Option.MAX_CREATION_TIME, maxCreationTime); + } + /** Returns an option to specify the maximum number of jobs returned per page. */ public static JobListOption pageSize(long pageSize) { checkArgument(pageSize >= 0); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index a0dde557d259..048870b742ce 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -40,6 +40,9 @@ enum Option { DELETE_CONTENTS("deleteContents"), ALL_DATASETS("all"), ALL_USERS("allUsers"), + LABEL_FILTER("filter"), + MIN_CREATION_TIME("minCreationTime"), + MAX_CREATION_TIME("maxCreationTime"), MAX_RESULTS("maxResults"), PAGE_TOKEN("pageToken"), START_INDEX("startIndex"), diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 0584ee1d2041..445a589b85b9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -131,6 +131,7 @@ public Tuple> listDatasets(String projectId, Map> listJobs(String projectId, Map options) { try { - JobList jobsList = + Bigquery.Jobs.List request = bigquery .jobs() .list(projectId) @@ -509,8 +510,15 @@ public Tuple> listJobs(String projectId, Map op .setStateFilter(Option.STATE_FILTER.>get(options)) .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)) - .setProjection(DEFAULT_PROJECTION) - .execute(); + .setProjection(DEFAULT_PROJECTION); + if (Option.MIN_CREATION_TIME.getLong(options) != null) { + request.setMinCreationTime(BigInteger.valueOf(Option.MIN_CREATION_TIME.getLong(options))); + } + if (Option.MAX_CREATION_TIME.getLong(options) != null) { + request.setMaxCreationTime(BigInteger.valueOf(Option.MAX_CREATION_TIME.getLong(options))); + } + JobList jobsList = request.execute(); + Iterable jobs = jobsList.getJobs(); return Tuple.of( jobsList.getNextPageToken(), diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index bb744d63ec59..58869a3848d4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -18,6 +18,7 @@ import static com.google.cloud.bigquery.JobStatus.State.DONE; import static com.google.common.truth.Truth.assertThat; +import static java.lang.System.currentTimeMillis; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -32,6 +33,7 @@ import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; import com.google.cloud.bigquery.BigQuery.DatasetField; +import com.google.cloud.bigquery.BigQuery.DatasetListOption; import com.google.cloud.bigquery.BigQuery.DatasetOption; import com.google.cloud.bigquery.BigQuery.JobField; import com.google.cloud.bigquery.BigQuery.JobListOption; @@ -334,6 +336,22 @@ public void testListDatasets() { } } + @Test + public void testListDatasetsWithFilter() { + String labelFilter = "labels.example-label1:example-value1"; + Page datasets = bigquery.listDatasets(DatasetListOption.labelFilter(labelFilter)); + int count = 0; + for (Dataset dataset : datasets.getValues()) { + assertTrue( + "failed to find label key in dataset", dataset.getLabels().containsKey("example-label1")); + assertTrue( + "failed to find label value in dataset", + dataset.getLabels().get("example-label1").equals("example-value1")); + count++; + } + assertTrue(count > 0); + } + @Test public void testGetDataset() { Dataset dataset = bigquery.getDataset(DATASET); @@ -1320,6 +1338,29 @@ public void testListJobsWithSelectedFields() { } } + @Test + public void testListJobsWithCreationBounding() { + long currentMillis = currentTimeMillis(); + long lowerBound = currentMillis - 3600 * 1000; + long upperBound = currentMillis; + Page jobs = + bigquery.listJobs( + JobListOption.minCreationTime(lowerBound), JobListOption.maxCreationTime(upperBound)); + long foundMin = upperBound; + long foundMax = lowerBound; + long jobCount = 0; + for (Job job : jobs.getValues()) { + jobCount++; + foundMin = Math.min(job.getStatistics().getCreationTime(), foundMin); + foundMax = Math.max(job.getStatistics().getCreationTime(), foundMax); + } + assertTrue( + "Found min job time " + foundMin + " earlier than " + lowerBound, foundMin >= lowerBound); + assertTrue( + "Found max job time " + foundMax + " later than " + upperBound, foundMax <= upperBound); + assertTrue("no jobs listed", jobCount > 0); + } + @Test public void testCreateAndGetJob() throws InterruptedException, TimeoutException { String sourceTableName = "test_create_and_get_job_source_table"; From 68e90915e2d3fa41b73c6cac2476eac2d71dc1e6 Mon Sep 17 00:00:00 2001 From: JesseLovelace <43148100+JesseLovelace@users.noreply.github.com> Date: Thu, 18 Jul 2019 09:33:51 -0700 Subject: [PATCH 0182/3441] Release v0.101.0 (#5761) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 1ab7a5d5d9f7..5b248e6e4c31 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.82.0 + 1.83.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.82.0' +compile 'com.google.cloud:google-cloud-bigquery:1.83.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.82.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.83.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b136b08c3aeb..e57d507750fc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.82.1-SNAPSHOT + 1.83.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.100.1-alpha-SNAPSHOT + 0.101.0-alpha google-cloud-bigquery From 6102795c4f438782a8314ef4fa7c2e97851acc6a Mon Sep 17 00:00:00 2001 From: shollyman Date: Thu, 18 Jul 2019 11:24:09 -0700 Subject: [PATCH 0183/3441] BigQuery: update signature for ML model access to label/feature columns. (#5732) This is a breaking change to a @BetaApi within BigQuery. It swaps in a new veneer StandardSQLField type in place of the underlying discovery type for getting information about the feature and label columns from ML models, which was functionality introduced in: https://github.com/googleapis/google-cloud-java/pull/5214 --- .../java/com/google/cloud/bigquery/Model.java | 5 +-- .../com/google/cloud/bigquery/ModelInfo.java | 37 +++++++++++-------- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java index fd06985e9882..22dcfa0db527 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java @@ -18,7 +18,6 @@ import static com.google.common.base.Preconditions.checkNotNull; -import com.google.api.services.bigquery.model.StandardSqlField; import com.google.api.services.bigquery.model.TrainingRun; import com.google.cloud.bigquery.BigQuery.ModelOption; import java.io.IOException; @@ -116,13 +115,13 @@ Builder setTrainingRuns(List trainingRunList) { } @Override - Builder setLabelColumns(List labelColumnList) { + Builder setLabelColumns(List labelColumnList) { infoBuilder.setLabelColumns(labelColumnList); return this; } @Override - Builder setFeatureColumns(List featureColumnList) { + Builder setFeatureColumns(List featureColumnList) { infoBuilder.setFeatureColumns(featureColumnList); return this; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java index 23f263708bda..d78bdbfbafab 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java @@ -20,12 +20,12 @@ import com.google.api.core.BetaApi; import com.google.api.services.bigquery.model.Model; -import com.google.api.services.bigquery.model.StandardSqlField; import com.google.api.services.bigquery.model.TrainingRun; import com.google.common.base.Function; import com.google.common.base.MoreObjects; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; import java.io.Serializable; import java.util.Collections; import java.util.List; @@ -69,8 +69,8 @@ public Model apply(ModelInfo ModelInfo) { private final Long expirationTime; private final Labels labels; private final ImmutableList trainingRunList; - private final ImmutableList featureColumnList; - private final ImmutableList labelColumnList; + private final ImmutableList featureColumnList; + private final ImmutableList labelColumnList; /** A builder for {@code ModelInfo} objects. */ public abstract static class Builder { @@ -108,9 +108,9 @@ public abstract static class Builder { abstract Builder setTrainingRuns(List trainingRunList); - abstract Builder setLabelColumns(List labelColumnList); + abstract Builder setLabelColumns(List labelColumnList); - abstract Builder setFeatureColumns(List featureColumnList); + abstract Builder setFeatureColumns(List featureColumnList); /** Creates a {@code ModelInfo} object. */ public abstract ModelInfo build(); @@ -128,8 +128,8 @@ static class BuilderImpl extends Builder { private Long expirationTime; private Labels labels = Labels.ZERO; private List trainingRunList = Collections.emptyList(); - private List labelColumnList = Collections.emptyList(); - private List featureColumnList = Collections.emptyList(); + private List labelColumnList = Collections.emptyList(); + private List featureColumnList = Collections.emptyList(); BuilderImpl() {} @@ -164,10 +164,12 @@ static class BuilderImpl extends Builder { this.trainingRunList = modelPb.getTrainingRuns(); } if (modelPb.getLabelColumns() != null) { - this.labelColumnList = modelPb.getLabelColumns(); + this.labelColumnList = + Lists.transform(modelPb.getLabelColumns(), StandardSQLField.FROM_PB_FUNCTION); } if (modelPb.getFeatureColumns() != null) { - this.featureColumnList = modelPb.getFeatureColumns(); + this.featureColumnList = + Lists.transform(modelPb.getFeatureColumns(), StandardSQLField.FROM_PB_FUNCTION); } } @@ -232,13 +234,13 @@ Builder setTrainingRuns(List trainingRunList) { } @Override - Builder setLabelColumns(List labelColumnList) { + Builder setLabelColumns(List labelColumnList) { this.labelColumnList = checkNotNull(labelColumnList); return this; } @Override - Builder setFeatureColumns(List featureColumnList) { + Builder setFeatureColumns(List featureColumnList) { this.featureColumnList = checkNotNull(featureColumnList); return this; } @@ -320,13 +322,13 @@ public ImmutableList getTrainingRuns() { /** Returns information about the label columns for this model. */ @BetaApi - public ImmutableList getLabelColumns() { + public ImmutableList getLabelColumns() { return labelColumnList; } /** Returns information about the feature columns for this model. */ @BetaApi - public ImmutableList getFeatureColumns() { + public ImmutableList getFeatureColumns() { return featureColumnList; } @@ -394,8 +396,13 @@ Model toPb() { modelPb.setExpirationTime(expirationTime); modelPb.setLabels(labels.toPb()); modelPb.setTrainingRuns(trainingRunList); - modelPb.setLabelColumns(labelColumnList); - modelPb.setFeatureColumns(featureColumnList); + if (labelColumnList != null) { + modelPb.setLabelColumns(Lists.transform(labelColumnList, StandardSQLField.TO_PB_FUNCTION)); + } + if (featureColumnList != null) { + modelPb.setFeatureColumns( + Lists.transform(featureColumnList, StandardSQLField.TO_PB_FUNCTION)); + } return modelPb; } From 8cd0836fd661e09e837c9def84d4c47be535a1b7 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Tue, 23 Jul 2019 16:28:01 -0400 Subject: [PATCH 0184/3441] Bump next snapshot (#5812) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e57d507750fc..df31f58933f5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.83.0 + 1.83.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.101.0-alpha + 0.101.1-alpha-SNAPSHOT google-cloud-bigquery From 85e42c294af86cf443b0e21ac7846a9343cc9766 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 24 Jul 2019 14:46:17 -0700 Subject: [PATCH 0185/3441] Release v0.102.0 (#5852) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 5b248e6e4c31..62e4e230a713 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.83.0 + 1.84.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.83.0' +compile 'com.google.cloud:google-cloud-bigquery:1.84.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.83.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.84.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index df31f58933f5..7813fa938825 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.83.1-SNAPSHOT + 1.84.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.101.1-alpha-SNAPSHOT + 0.102.0-alpha google-cloud-bigquery From bacce06a5ead8d91e449a03cc4aebf6a3d0ebfd4 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 25 Jul 2019 07:11:16 -0700 Subject: [PATCH 0186/3441] Bump next snapshot (#5858) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7813fa938825..157479164e64 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.84.0 + 1.84.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.102.0-alpha + 0.102.1-alpha-SNAPSHOT google-cloud-bigquery From 77998699cc364433d491aac8817fc0b5866f2cc4 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 31 Jul 2019 15:09:09 -0400 Subject: [PATCH 0187/3441] Release v0.103.0 (#5950) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 62e4e230a713..561c35a2b229 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.84.0 + 1.85.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.84.0' +compile 'com.google.cloud:google-cloud-bigquery:1.85.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.84.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.85.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 157479164e64..f8cf55cfaa73 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.84.1-SNAPSHOT + 1.85.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.102.1-alpha-SNAPSHOT + 0.103.0-alpha google-cloud-bigquery From ff613bfb347b98689947bfe754ae2de412fecbf8 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Thu, 1 Aug 2019 13:21:29 -0400 Subject: [PATCH 0188/3441] Bump next snapshot (#5958) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f8cf55cfaa73..eee4bee04e60 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.85.0 + 1.85.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.103.0-alpha + 0.103.1-alpha-SNAPSHOT google-cloud-bigquery From 6840871f70e6c3f2ee7c4b713c3fcb818f816438 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 7 Aug 2019 10:00:27 -0700 Subject: [PATCH 0189/3441] Release v0.104.0 (#6048) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 561c35a2b229..683dc74316a6 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.85.0 + 1.86.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.85.0' +compile 'com.google.cloud:google-cloud-bigquery:1.86.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.85.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.86.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index eee4bee04e60..18f3a2529a0f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.85.1-SNAPSHOT + 1.86.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.103.1-alpha-SNAPSHOT + 0.104.0-alpha google-cloud-bigquery From aef401947c5a9b905754948f930e27da73406678 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 8 Aug 2019 12:07:43 -0700 Subject: [PATCH 0190/3441] Bump next snapshot (#6055) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 18f3a2529a0f..cbc1df1d62c2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.86.0 + 1.86.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.104.0-alpha + 0.104.1-alpha-SNAPSHOT google-cloud-bigquery From d596d9b02ee7c72a010e929b3a61a47a30d62145 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 14 Aug 2019 10:05:25 -0700 Subject: [PATCH 0191/3441] Fix links to googleapis.dev from GitHub pages (#6070) --- google-cloud-bigquery/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 683dc74316a6..a5a3d2a59fdc 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -34,7 +34,7 @@ libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.86.0" Example Application ------------------- - [`BigQueryExample`](../../google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/BigQueryExample.java) - A simple command line interface providing some of Cloud BigQuery's functionality. -Read more about using this application on the [`BigQueryExample` docs page](https://googleapis.github.io/google-cloud-java/apidocs/?com/google/cloud/examples/bigquery/BigQueryExample.html). +Read more about using this application on the [`BigQueryExample` docs page](https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/examples/bigquery/BigQueryExample.html). Authentication -------------- @@ -241,4 +241,4 @@ Apache 2.0 - See [LICENSE] for more information. [cloud-bigquery]: https://cloud.google.com/bigquery/ [cloud-storage]: https://cloud.google.com/storage/ [bigquery-product-docs]: https://cloud.google.com/bigquery/docs/ -[bigquery-client-lib-docs]: https://googleapis.github.io/google-cloud-java/google-cloud-clients/apidocs/index.html?com/google/cloud/bigquery/package-summary.html +[bigquery-client-lib-docs]: https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html From 6b5d816184becb775f77a7dff31cc45acaa1dec5 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 14 Aug 2019 15:10:32 -0400 Subject: [PATCH 0192/3441] Release v0.105.0 (#6077) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index a5a3d2a59fdc..76bc59d2510a 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.86.0 + 1.87.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.86.0' +compile 'com.google.cloud:google-cloud-bigquery:1.87.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.86.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.87.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index cbc1df1d62c2..447d877f8fb3 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.86.1-SNAPSHOT + 1.87.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.104.1-alpha-SNAPSHOT + 0.105.0-alpha google-cloud-bigquery From f76a1ff82029c3a6addf102220df0c0bb3043ba6 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 14 Aug 2019 20:03:16 -0400 Subject: [PATCH 0193/3441] Bump next snapshot (#6079) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 447d877f8fb3..99ffce573d4a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.87.0 + 1.87.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.105.0-alpha + 0.105.1-alpha-SNAPSHOT google-cloud-bigquery From 83e339f47a9bca537518bc21eed6d34bf1f8bf0b Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 22 Aug 2019 13:14:03 -0700 Subject: [PATCH 0194/3441] Release v0.106.0 (#6140) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 76bc59d2510a..bd66af78e8cb 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.87.0 + 1.88.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.87.0' +compile 'com.google.cloud:google-cloud-bigquery:1.88.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.87.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.88.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 99ffce573d4a..174695ea1bc4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.87.1-SNAPSHOT + 1.88.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.105.1-alpha-SNAPSHOT + 0.106.0-alpha google-cloud-bigquery From 2695130bd9342d6a3a13674445afa2a232a4b0dc Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Mon, 26 Aug 2019 12:50:31 -0400 Subject: [PATCH 0195/3441] Bump next snapshot (#6162) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 174695ea1bc4..6ff7c755eb39 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.88.0 + 1.88.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.106.0-alpha + 0.106.1-alpha-SNAPSHOT google-cloud-bigquery From 7cc8746e59110697f375086f32712bff56f61a50 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 28 Aug 2019 19:39:57 -0400 Subject: [PATCH 0196/3441] Release v0.107.0 (#6188) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index bd66af78e8cb..1991e5878f6b 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.88.0 + 1.89.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.88.0' +compile 'com.google.cloud:google-cloud-bigquery:1.89.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.88.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.89.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6ff7c755eb39..30fc28fc1271 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.88.1-SNAPSHOT + 1.89.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.106.1-alpha-SNAPSHOT + 0.107.0-alpha google-cloud-bigquery From 782f6db90afe57008e83cfd9c80ea17391ee2dce Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Thu, 29 Aug 2019 13:46:14 -0400 Subject: [PATCH 0197/3441] Bump next snapshot (#6194) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 30fc28fc1271..2e4136c4a287 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.89.0 + 1.89.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.107.0-alpha + 0.107.1-alpha-SNAPSHOT google-cloud-bigquery From 1a245e0e6551135fd0f22b5cdcded2c7d1e48ed6 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 5 Sep 2019 11:11:12 -0700 Subject: [PATCH 0198/3441] Release google-cloud-java v0.108.0 (#6223) * Release v0.108.0 * Spanner JDBC to 1.0.0 --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 1991e5878f6b..2aad73e6b425 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.89.0 + 1.90.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.89.0' +compile 'com.google.cloud:google-cloud-bigquery:1.90.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.89.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.90.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2e4136c4a287..de5ef3d31fd4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.89.1-SNAPSHOT + 1.90.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.107.1-alpha-SNAPSHOT + 0.108.0-alpha google-cloud-bigquery From 26abb4c8a3895e12c654952c9d01fd9e31e56cab Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Fri, 6 Sep 2019 08:52:12 -0700 Subject: [PATCH 0199/3441] Bump next snapshot (#6231) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index de5ef3d31fd4..27a4249cf552 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.90.0 + 1.90.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.108.0-alpha + 0.108.1-alpha-SNAPSHOT google-cloud-bigquery From e53477c0818223b303167b9cb8f6b09c2e6f4013 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 11 Sep 2019 15:02:51 -0400 Subject: [PATCH 0200/3441] Release v0.109.0 (#6252) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 2aad73e6b425..3275326955fd 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.90.0 + 1.91.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.90.0' +compile 'com.google.cloud:google-cloud-bigquery:1.91.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.90.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.91.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 27a4249cf552..e9757cb25d37 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.90.1-SNAPSHOT + 1.91.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.108.1-alpha-SNAPSHOT + 0.109.0-alpha google-cloud-bigquery From 4026128ec1a290d6e33972b13598c931e1dbc1ba Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 11 Sep 2019 18:44:09 -0400 Subject: [PATCH 0201/3441] Bump next snapshot (#6256) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e9757cb25d37..1931a09b927f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.91.0 + 1.91.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.109.0-alpha + 0.109.1-alpha-SNAPSHOT google-cloud-bigquery From 9b24bc734eb448032ba18ea5460c308e352b766e Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 11 Sep 2019 15:44:25 -0700 Subject: [PATCH 0202/3441] Add repo metadata files for all the existing clients (#6255) * Add repo metadata files for all the existing clients * remove extra repo-metadata file --- google-cloud-bigquery/.repo-metadata.json | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 google-cloud-bigquery/.repo-metadata.json diff --git a/google-cloud-bigquery/.repo-metadata.json b/google-cloud-bigquery/.repo-metadata.json new file mode 100644 index 000000000000..eeadbfc8d641 --- /dev/null +++ b/google-cloud-bigquery/.repo-metadata.json @@ -0,0 +1,13 @@ +{ + "name": "bigquery", + "name_pretty": "Google Cloud Bigquery", + "product_documentation": "https://cloud.google.com/bigquery", + "client_documentation": "https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html", + "issue_tracker": "https://issuetracker.google.com/savedsearches/559654", + "release_level": "ga", + "language": "java", + "repo": "googleapis/google-cloud-java", + "repo_short": "google-cloud-java", + "distribution_name": "com.google.cloud:google-cloud-bigquery", + "api_id": "bigquery.googleapis.com" +} \ No newline at end of file From e63c65fc6f084cbfd8dcc10af2fe70017d90f854 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 13 Sep 2019 12:30:13 +0530 Subject: [PATCH 0203/3441] Bigquery: Fix support range property. (#6259) * added range * fix comment --- .../cloud/bigquery/GoogleSheetsOptions.java | 25 ++++++++++++++ .../bigquery/GoogleSheetsOptionsTest.java | 33 +++++++++++++++++++ 2 files changed, 58 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java index 3fcf265b13c3..2f2b71f79e12 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java @@ -24,16 +24,30 @@ public final class GoogleSheetsOptions extends FormatOptions { private static final long serialVersionUID = 1837436979033106123L; + private final String range; private final Long skipLeadingRows; public static final class Builder { + private String range; private Long skipLeadingRows; private Builder() {} private Builder(GoogleSheetsOptions options) { this.skipLeadingRows = options.skipLeadingRows; + this.range = options.range; + } + + /** + * [Optional] Range of a sheet to query from. Only used when non-empty. Typical format: + * sheet_name!top_left_cell_id:bottom_right_cell_id For example: sheet1!A1:B20 + * + * @param range or {@code null} for none + */ + public Builder setRange(String range) { + this.range = range; + return this; } /** @@ -55,6 +69,12 @@ public GoogleSheetsOptions build() { private GoogleSheetsOptions(Builder builder) { super(FormatOptions.GOOGLE_SHEETS); this.skipLeadingRows = builder.skipLeadingRows; + this.range = builder.range; + } + + /** Returns the number of range of a sheet when reading the data. */ + public String getRange() { + return range; } /** @@ -74,6 +94,7 @@ public String toString() { return MoreObjects.toStringHelper(this) .add("type", getType()) .add("skipLeadingRows", skipLeadingRows) + .add("range", range) .toString(); } @@ -93,6 +114,7 @@ com.google.api.services.bigquery.model.GoogleSheetsOptions toPb() { com.google.api.services.bigquery.model.GoogleSheetsOptions options = new com.google.api.services.bigquery.model.GoogleSheetsOptions(); options.setSkipLeadingRows(skipLeadingRows); + options.setRange(range); return options; } @@ -107,6 +129,9 @@ static GoogleSheetsOptions fromPb( if (options.getSkipLeadingRows() != null) { builder.setSkipLeadingRows(options.getSkipLeadingRows()); } + if (options.getRange() != null) { + builder.setRange(options.getRange()); + } return builder.build(); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java index 2399a1d50a80..d286358ca167 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java @@ -23,8 +23,14 @@ public class GoogleSheetsOptionsTest { private static final long SKIP_LEADING_ROWS = 42L; + private static final String RANGE = "sheet1!A1:B20"; private static final GoogleSheetsOptions GOOGLE_SHEETS_OPTIONS = GoogleSheetsOptions.newBuilder().setSkipLeadingRows(SKIP_LEADING_ROWS).build(); + private static final GoogleSheetsOptions GOOGLE_SHEETS_OPTIONS_RANGE = + GoogleSheetsOptions.newBuilder() + .setSkipLeadingRows(SKIP_LEADING_ROWS) + .setRange(RANGE) + .build(); @Test public void testToBuilder() { @@ -35,6 +41,23 @@ public void testToBuilder() { googleSheetsOptions = googleSheetsOptions.toBuilder().setSkipLeadingRows(SKIP_LEADING_ROWS).build(); compareGoogleSheetsOptions(GOOGLE_SHEETS_OPTIONS, googleSheetsOptions); + compareGoogleSheetsOptions( + GOOGLE_SHEETS_OPTIONS_RANGE, GOOGLE_SHEETS_OPTIONS_RANGE.toBuilder().build()); + GoogleSheetsOptions googleSheetsOptionsRange = + GOOGLE_SHEETS_OPTIONS_RANGE + .toBuilder() + .setSkipLeadingRows(123) + .setRange("sheet1!A1:A100") + .build(); + assertThat(googleSheetsOptionsRange.getSkipLeadingRows()).isEqualTo(123); + assertThat(googleSheetsOptionsRange.getRange()).isEqualTo("sheet1!A1:A100"); + googleSheetsOptionsRange = + googleSheetsOptionsRange + .toBuilder() + .setSkipLeadingRows(SKIP_LEADING_ROWS) + .setRange(RANGE) + .build(); + compareGoogleSheetsOptions(GOOGLE_SHEETS_OPTIONS_RANGE, googleSheetsOptionsRange); } @Test @@ -47,6 +70,9 @@ public void testToBuilderIncomplete() { public void testBuilder() { assertThat(GOOGLE_SHEETS_OPTIONS.getType()).isEqualTo(FormatOptions.GOOGLE_SHEETS); assertThat(GOOGLE_SHEETS_OPTIONS.getSkipLeadingRows()).isEqualTo(SKIP_LEADING_ROWS); + assertThat(GOOGLE_SHEETS_OPTIONS_RANGE.getType()).isEqualTo(FormatOptions.GOOGLE_SHEETS); + assertThat(GOOGLE_SHEETS_OPTIONS_RANGE.getSkipLeadingRows()).isEqualTo(SKIP_LEADING_ROWS); + assertThat(GOOGLE_SHEETS_OPTIONS_RANGE.getRange()).isEqualTo(RANGE); } @Test @@ -56,10 +82,17 @@ public void testToAndFromPb() { GoogleSheetsOptions googleSheetsOptions = GoogleSheetsOptions.newBuilder().build(); compareGoogleSheetsOptions( googleSheetsOptions, GoogleSheetsOptions.fromPb(googleSheetsOptions.toPb())); + compareGoogleSheetsOptions( + GOOGLE_SHEETS_OPTIONS_RANGE, + GoogleSheetsOptions.fromPb(GOOGLE_SHEETS_OPTIONS_RANGE.toPb())); + GoogleSheetsOptions googleSheetsOptionsRange = GoogleSheetsOptions.newBuilder().build(); + compareGoogleSheetsOptions( + googleSheetsOptionsRange, GoogleSheetsOptions.fromPb(googleSheetsOptionsRange.toPb())); } private void compareGoogleSheetsOptions(GoogleSheetsOptions expected, GoogleSheetsOptions value) { assertThat(value).isEqualTo(expected); assertThat(value.getSkipLeadingRows()).isEqualTo(expected.getSkipLeadingRows()); + assertThat(value.getRange()).isEqualTo(expected.getRange()); } } From 3b4276b2ac99ffbf82e0edd0a4e8e362ada74c0f Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 13 Sep 2019 12:32:00 +0530 Subject: [PATCH 0204/3441] Bigquery: Fix use_avro_logical_types for export jobs. (#6260) * added useAvroLogicalTypes * fix comment * fix comment as per feedback --- .../bigquery/ExtractJobConfiguration.java | 29 +++++++++++++++-- .../bigquery/ExtractJobConfigurationTest.java | 31 +++++++++++++++++++ 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java index bcacbc211fb7..a3386e8afecb 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java @@ -40,6 +40,7 @@ public final class ExtractJobConfiguration extends JobConfiguration { private final String fieldDelimiter; private final String format; private final String compression; + private final Boolean useAvroLogicalTypes; public static final class Builder extends JobConfiguration.Builder { @@ -50,6 +51,7 @@ public static final class Builder private String fieldDelimiter; private String format; private String compression; + private Boolean useAvroLogicalTypes; private Builder() { super(Type.EXTRACT); @@ -63,6 +65,7 @@ private Builder(ExtractJobConfiguration jobInfo) { this.fieldDelimiter = jobInfo.fieldDelimiter; this.format = jobInfo.format; this.compression = jobInfo.compression; + this.useAvroLogicalTypes = jobInfo.useAvroLogicalTypes; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -74,6 +77,7 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this.fieldDelimiter = extractConfigurationPb.getFieldDelimiter(); this.format = extractConfigurationPb.getDestinationFormat(); this.compression = extractConfigurationPb.getCompression(); + this.useAvroLogicalTypes = extractConfigurationPb.getUseAvroLogicalTypes(); } /** Sets the table to export. */ @@ -128,6 +132,18 @@ public Builder setCompression(String compression) { return this; } + /** + * [Optional] If destinationFormat is set to "AVRO", this flag indicates whether to enable + * extracting applicable column types (such as TIMESTAMP) to their corresponding AVRO logical + * types (timestamp-micros), instead of only using their raw types (avro-long). + * + * @param useAvroLogicalTypes useAvroLogicalTypes or {@code null} for none + */ + public Builder setUseAvroLogicalTypes(Boolean useAvroLogicalTypes) { + this.useAvroLogicalTypes = useAvroLogicalTypes; + return this; + } + public ExtractJobConfiguration build() { return new ExtractJobConfiguration(this); } @@ -141,6 +157,7 @@ private ExtractJobConfiguration(Builder builder) { this.fieldDelimiter = builder.fieldDelimiter; this.format = builder.format; this.compression = builder.compression; + this.useAvroLogicalTypes = builder.useAvroLogicalTypes; } /** Returns the table to export. */ @@ -180,6 +197,11 @@ public String getCompression() { return compression; } + /** Returns True/False. Indicates whether exported avro files include logical type annotations. */ + public Boolean getUseAvroLogicalTypes() { + return useAvroLogicalTypes; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -193,7 +215,8 @@ ToStringHelper toStringHelper() { .add("format", format) .add("printHeader", printHeader) .add("fieldDelimiter", fieldDelimiter) - .add("compression", compression); + .add("compression", compression) + .add("useAvroLogicalTypes", useAvroLogicalTypes); } @Override @@ -211,7 +234,8 @@ public int hashCode() { printHeader, fieldDelimiter, format, - compression); + compression, + useAvroLogicalTypes); } @Override @@ -231,6 +255,7 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { extractConfigurationPb.setFieldDelimiter(fieldDelimiter); extractConfigurationPb.setDestinationFormat(format); extractConfigurationPb.setCompression(compression); + extractConfigurationPb.setUseAvroLogicalTypes(useAvroLogicalTypes); return new com.google.api.services.bigquery.model.JobConfiguration() .setExtract(extractConfigurationPb); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java index d621a82985fb..1611145777c1 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java @@ -32,9 +32,11 @@ public class ExtractJobConfigurationTest { private static final TableId TABLE_ID = TableId.of("dataset", "table"); private static final String FIELD_DELIMITER = ","; private static final String FORMAT = "CSV"; + private static final String AVRO_FORMAT = "AVRO"; private static final String JSON_FORMAT = "NEWLINE_DELIMITED_JSON"; private static final Boolean PRINT_HEADER = true; private static final String COMPRESSION = "GZIP"; + private static final Boolean USEAVROLOGICALTYPES = true; private static final ExtractJobConfiguration EXTRACT_CONFIGURATION = ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URIS) .setPrintHeader(PRINT_HEADER) @@ -49,6 +51,14 @@ public class ExtractJobConfigurationTest { .setCompression(COMPRESSION) .setFormat(FORMAT) .build(); + private static final ExtractJobConfiguration EXTRACT_CONFIGURATION_AVRO = + ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URI) + .setPrintHeader(PRINT_HEADER) + .setFieldDelimiter(FIELD_DELIMITER) + .setCompression(COMPRESSION) + .setFormat(AVRO_FORMAT) + .setUseAvroLogicalTypes(USEAVROLOGICALTYPES) + .build(); @Test public void testToBuilder() { @@ -59,6 +69,16 @@ public void testToBuilder() { assertEquals("newTable", job.getSourceTable().getTable()); job = job.toBuilder().setSourceTable(TABLE_ID).build(); compareExtractJobConfiguration(EXTRACT_CONFIGURATION, job); + compareExtractJobConfiguration( + EXTRACT_CONFIGURATION_AVRO, EXTRACT_CONFIGURATION_AVRO.toBuilder().build()); + ExtractJobConfiguration avroJob = + EXTRACT_CONFIGURATION_AVRO + .toBuilder() + .setSourceTable(TableId.of("dataset", "avroTable")) + .build(); + assertEquals("avroTable", avroJob.getSourceTable().getTable()); + avroJob = avroJob.toBuilder().setSourceTable(TABLE_ID).build(); + compareExtractJobConfiguration(EXTRACT_CONFIGURATION_AVRO, avroJob); } @Test @@ -100,6 +120,13 @@ public void testBuilder() { assertEquals(COMPRESSION, EXTRACT_CONFIGURATION_ONE_URI.getCompression()); assertEquals(PRINT_HEADER, EXTRACT_CONFIGURATION_ONE_URI.printHeader()); assertEquals(FORMAT, EXTRACT_CONFIGURATION_ONE_URI.getFormat()); + assertEquals( + ImmutableList.of(DESTINATION_URI), EXTRACT_CONFIGURATION_AVRO.getDestinationUris()); + assertEquals(FIELD_DELIMITER, EXTRACT_CONFIGURATION_AVRO.getFieldDelimiter()); + assertEquals(COMPRESSION, EXTRACT_CONFIGURATION_AVRO.getCompression()); + assertEquals(PRINT_HEADER, EXTRACT_CONFIGURATION_AVRO.printHeader()); + assertEquals(AVRO_FORMAT, EXTRACT_CONFIGURATION_AVRO.getFormat()); + assertEquals(USEAVROLOGICALTYPES, EXTRACT_CONFIGURATION_AVRO.getUseAvroLogicalTypes()); } @Test @@ -113,6 +140,9 @@ public void testToPbAndFromPb() { compareExtractJobConfiguration( EXTRACT_CONFIGURATION_ONE_URI, ExtractJobConfiguration.fromPb(EXTRACT_CONFIGURATION_ONE_URI.toPb())); + compareExtractJobConfiguration( + EXTRACT_CONFIGURATION_AVRO, + ExtractJobConfiguration.fromPb(EXTRACT_CONFIGURATION_AVRO.toPb())); ExtractJobConfiguration job = ExtractJobConfiguration.of(TABLE_ID, DESTINATION_URIS); compareExtractJobConfiguration(job, ExtractJobConfiguration.fromPb(job.toPb())); } @@ -138,6 +168,7 @@ public void testSetProjectIdDoNotOverride() { public void testGetType() { assertEquals(JobConfiguration.Type.EXTRACT, EXTRACT_CONFIGURATION.getType()); assertEquals(JobConfiguration.Type.EXTRACT, EXTRACT_CONFIGURATION_ONE_URI.getType()); + assertEquals(JobConfiguration.Type.EXTRACT, EXTRACT_CONFIGURATION_AVRO.getType()); } private void compareExtractJobConfiguration( From 7f89f177431599ec5a7d63b961d9f457e1657d89 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 18 Sep 2019 15:28:29 -0700 Subject: [PATCH 0205/3441] Release google-cloud-java v0.110.0 (#6294) * Release v0.110.0 * fix TranlateIT. use numbers for translation * fix TranlateIT. use numbers for translation --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 3275326955fd..a3588f303036 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.91.0 + 1.92.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.91.0' +compile 'com.google.cloud:google-cloud-bigquery:1.92.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.91.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.92.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1931a09b927f..d3b282865e0e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.91.1-SNAPSHOT + 1.92.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.109.1-alpha-SNAPSHOT + 0.110.0-alpha google-cloud-bigquery From 2b51bfcd5a00deccb8d9e8140283e20be903bd9f Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 19 Sep 2019 08:16:44 -0700 Subject: [PATCH 0206/3441] Bump next snapshot (#6305) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d3b282865e0e..0b9f5a83add1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.92.0 + 1.92.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.110.0-alpha + 0.110.1-alpha-SNAPSHOT google-cloud-bigquery From 08b988e4841382ea38ec3be4c82cec9f82296a8f Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 20 Sep 2019 10:10:42 +0530 Subject: [PATCH 0207/3441] Bigquery: Fix bug when empty or null String for TableId, DatasetId, ModelId and more. (#6284) * added checkargument and isNullOrEmpty * modified code --- .../java/com/google/cloud/bigquery/DatasetId.java | 8 +++++--- .../cloud/bigquery/ExternalTableDefinition.java | 4 ++++ .../cloud/bigquery/ExtractJobConfiguration.java | 7 ++++++- .../main/java/com/google/cloud/bigquery/Field.java | 4 ++++ .../com/google/cloud/bigquery/FormatOptions.java | 6 ++++-- .../main/java/com/google/cloud/bigquery/JobId.java | 10 +++++++--- .../java/com/google/cloud/bigquery/ModelId.java | 14 +++++++------- .../cloud/bigquery/QueryJobConfiguration.java | 6 +++--- .../java/com/google/cloud/bigquery/RoutineId.java | 14 +++++++------- .../java/com/google/cloud/bigquery/TableId.java | 13 +++++++------ 10 files changed, 54 insertions(+), 32 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java index 4018670d8573..0e2ad02b2147 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java @@ -16,7 +16,8 @@ package com.google.cloud.bigquery; -import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Strings.isNullOrEmpty; import com.google.api.services.bigquery.model.DatasetReference; import java.io.Serializable; @@ -41,18 +42,19 @@ public String getDataset() { } private DatasetId(String project, String dataset) { + checkArgument(!isNullOrEmpty(dataset), "Provided dataset is null or empty"); this.project = project; this.dataset = dataset; } /** Creates a dataset identity given project's and dataset's user-defined ids. */ public static DatasetId of(String project, String dataset) { - return new DatasetId(checkNotNull(project), checkNotNull(dataset)); + return new DatasetId(project, dataset); } /** Creates a dataset identity given only its user-defined id. */ public static DatasetId of(String dataset) { - return new DatasetId(null, checkNotNull(dataset)); + return new DatasetId(null, dataset); } @Override diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index cbc26a3d8fa1..d61e6a330140 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -16,6 +16,9 @@ package com.google.cloud.bigquery; +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Strings.isNullOrEmpty; + import com.google.api.services.bigquery.model.ExternalDataConfiguration; import com.google.api.services.bigquery.model.Table; import com.google.auto.value.AutoValue; @@ -295,6 +298,7 @@ public static Builder newBuilder(List sourceUris, Schema schema, FormatO * Source Format */ public static Builder newBuilder(String sourceUri, Schema schema, FormatOptions format) { + checkArgument(!isNullOrEmpty(sourceUri), "Provided sourceUri is null or empty"); return newBuilder(ImmutableList.of(sourceUri), schema, format); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java index a3386e8afecb..777e23c6ac17 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java @@ -16,7 +16,9 @@ package com.google.cloud.bigquery; +import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Strings.isNullOrEmpty; import com.google.api.services.bigquery.model.JobConfigurationExtract; import com.google.common.base.MoreObjects.ToStringHelper; @@ -265,7 +267,8 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { * URI. */ public static Builder newBuilder(TableId sourceTable, String destinationUri) { - return newBuilder(sourceTable, ImmutableList.of(checkNotNull(destinationUri))); + checkArgument(!isNullOrEmpty(destinationUri), "Provided destinationUri is null or empty"); + return newBuilder(sourceTable, ImmutableList.of(destinationUri)); } /** @@ -296,6 +299,7 @@ public static ExtractJobConfiguration of(TableId sourceTable, List desti */ public static ExtractJobConfiguration of( TableId sourceTable, String destinationUri, String format) { + checkArgument(!isNullOrEmpty(format), "Provided format is null or empty"); return newBuilder(sourceTable, destinationUri).setFormat(format).build(); } @@ -305,6 +309,7 @@ public static ExtractJobConfiguration of( */ public static ExtractJobConfiguration of( TableId sourceTable, List destinationUris, String format) { + checkArgument(!isNullOrEmpty(format), "Provided format is null or empty"); return newBuilder(sourceTable, destinationUris).setFormat(format).build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index ffc8b3779aa6..9fb0b2a2942f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -17,7 +17,9 @@ package com.google.cloud.bigquery; import static com.google.common.base.MoreObjects.firstNonNull; +import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Strings.isNullOrEmpty; import com.google.api.client.util.Data; import com.google.api.services.bigquery.model.TableFieldSchema; @@ -262,11 +264,13 @@ public boolean equals(Object obj) { /** Returns a Field object with given name and type. */ public static Field of(String name, LegacySQLTypeName type, Field... subFields) { + checkArgument(!isNullOrEmpty(name), "Provided name is null or empty"); return newBuilder(name, type, subFields).build(); } /** Returns a Field object with given name and type. */ public static Field of(String name, LegacySQLTypeName type, FieldList subFields) { + checkArgument(!isNullOrEmpty(name), "Provided name is null or empty"); return newBuilder(name, type, subFields).build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java index 611df08a84e3..af1878455cfa 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java @@ -16,7 +16,8 @@ package com.google.cloud.bigquery; -import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Strings.isNullOrEmpty; import com.google.common.base.MoreObjects; import java.io.Serializable; @@ -116,7 +117,8 @@ public static FormatOptions orc() { /** Default options for the provided format. */ public static FormatOptions of(String format) { - if (checkNotNull(format).equals(CSV)) { + checkArgument(!isNullOrEmpty(format), "Provided format is null or empty"); + if (format.equals(CSV)) { return csv(); } else if (format.equals(DATASTORE_BACKUP)) { return datastoreBackup(); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java index 05f80bbf376f..b966cebe1d43 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java @@ -16,7 +16,8 @@ package com.google.cloud.bigquery; -import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Strings.isNullOrEmpty; import com.google.api.services.bigquery.model.JobReference; import com.google.auto.value.AutoValue; @@ -84,12 +85,15 @@ public Builder setRandomJob() { /** Creates a job identity given project's and job's user-defined id. */ public static JobId of(String project, String job) { - return newBuilder().setProject(checkNotNull(project)).setJob(checkNotNull(job)).build(); + checkArgument(!isNullOrEmpty(project), "Provided project is null or empty"); + checkArgument(!isNullOrEmpty(job), "Provided job is null or empty"); + return newBuilder().setProject(project).setJob(job).build(); } /** Creates a job identity given only its user-defined id. */ public static JobId of(String job) { - return newBuilder().setJob(checkNotNull(job)).build(); + checkArgument(!isNullOrEmpty(job), "Provided job is null or empty"); + return newBuilder().setJob(job).build(); } /** Creates a job identity with autogenerated id and no project specified. */ diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java index 32d74fd36b7f..9356c6935533 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java @@ -16,12 +16,11 @@ package com.google.cloud.bigquery; -import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Strings.isNullOrEmpty; import com.google.api.services.bigquery.model.ModelReference; import com.google.common.base.Function; -import com.google.common.base.Preconditions; -import com.google.common.base.Strings; import java.io.Serializable; import java.util.Objects; @@ -62,6 +61,8 @@ public String getModel() { } private ModelId(String project, String dataset, String model) { + checkArgument(!isNullOrEmpty(dataset), "Provided dataset is null or empty"); + checkArgument(!isNullOrEmpty(model), "Provided model is null or empty"); this.project = project; this.dataset = dataset; this.model = model; @@ -69,12 +70,12 @@ private ModelId(String project, String dataset, String model) { /** Creates a model identity given project, dataset, and model identifiers. * */ public static ModelId of(String project, String dataset, String model) { - return new ModelId(checkNotNull(project), checkNotNull(dataset), checkNotNull(model)); + return new ModelId(project, dataset, model); } /** Creates a model identity given dataset and model identifiers. * */ public static ModelId of(String dataset, String model) { - return new ModelId(null, checkNotNull(dataset), checkNotNull(model)); + return new ModelId(null, dataset, model); } @Override @@ -93,8 +94,7 @@ public String toString() { } ModelId setProjectId(String projectId) { - Preconditions.checkArgument( - !Strings.isNullOrEmpty(projectId), "Provided projectId is null or empty"); + checkArgument(!isNullOrEmpty(projectId), "Provided projectId is null or empty"); return ModelId.of(projectId, getDataset(), getModel()); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index 9bc906a1fa17..d8aff869f39c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Strings.isNullOrEmpty; import com.google.api.services.bigquery.model.JobConfigurationQuery; import com.google.api.services.bigquery.model.QueryParameter; @@ -26,7 +27,6 @@ import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.common.base.Function; import com.google.common.base.MoreObjects.ToStringHelper; -import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; @@ -796,8 +796,7 @@ public int hashCode() { @Override QueryJobConfiguration setProjectId(String projectId) { Builder builder = toBuilder(); - if (getDestinationTable() != null - && Strings.isNullOrEmpty(getDestinationTable().getProject())) { + if (getDestinationTable() != null && isNullOrEmpty(getDestinationTable().getProject())) { builder.setDestinationTable(getDestinationTable().setProjectId(projectId)); } if (getDefaultDataset() != null) { @@ -886,6 +885,7 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { /** Creates a builder for a BigQuery Query Job given the query to be run. */ public static Builder newBuilder(String query) { + checkArgument(!isNullOrEmpty(query), "Provided query is null or empty"); return new Builder().setQuery(query); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java index d5d3c5bfe982..c5c3dadb3c8c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java @@ -16,12 +16,11 @@ package com.google.cloud.bigquery; -import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Strings.isNullOrEmpty; import com.google.api.services.bigquery.model.RoutineReference; import com.google.common.base.Function; -import com.google.common.base.Preconditions; -import com.google.common.base.Strings; import java.io.Serializable; import java.util.Objects; @@ -63,6 +62,8 @@ public String getRoutine() { } private RoutineId(String project, String dataset, String routine) { + checkArgument(!isNullOrEmpty(dataset), "Provided dataset is null or empty"); + checkArgument(!isNullOrEmpty(routine), "Provided routine is null or empty"); this.project = project; this.dataset = dataset; this.routine = routine; @@ -70,12 +71,12 @@ private RoutineId(String project, String dataset, String routine) { /** Creates a routine identity given project, dataset, and routine identifiers. * */ public static RoutineId of(String project, String dataset, String routine) { - return new RoutineId(checkNotNull(project), checkNotNull(dataset), checkNotNull(routine)); + return new RoutineId(project, dataset, routine); } /** Creates a routine identity given dataset and routine identifiers. * */ public static RoutineId of(String dataset, String routine) { - return new RoutineId(null, checkNotNull(dataset), checkNotNull(routine)); + return new RoutineId(null, dataset, routine); } @Override @@ -95,8 +96,7 @@ public String toString() { } RoutineId setProjectId(String projectId) { - Preconditions.checkArgument( - !Strings.isNullOrEmpty(projectId), "Provided projectId is null or empty"); + checkArgument(!isNullOrEmpty(projectId), "Provided projectId is null or empty"); return RoutineId.of(projectId, getDataset(), getRoutine()); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java index 581ed37384ce..f475e5070085 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java @@ -16,12 +16,12 @@ package com.google.cloud.bigquery; +import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.base.Strings.isNullOrEmpty; import com.google.api.services.bigquery.model.TableReference; import com.google.common.base.Function; -import com.google.common.base.Preconditions; -import com.google.common.base.Strings; import java.io.Serializable; import java.util.Objects; @@ -64,6 +64,8 @@ public String getTable() { } private TableId(String project, String dataset, String table) { + checkArgument(!isNullOrEmpty(dataset), "Provided dataset is null or empty"); + checkArgument(!isNullOrEmpty(table), "Provided table is null or empty"); this.project = project; this.dataset = dataset; this.table = table; @@ -71,12 +73,12 @@ private TableId(String project, String dataset, String table) { /** Creates a table identity given project's, dataset's and table's user-defined ids. */ public static TableId of(String project, String dataset, String table) { - return new TableId(checkNotNull(project), checkNotNull(dataset), checkNotNull(table)); + return new TableId(checkNotNull(project), dataset, table); } /** Creates a table identity given dataset's and table's user-defined ids. */ public static TableId of(String dataset, String table) { - return new TableId(null, checkNotNull(dataset), checkNotNull(table)); + return new TableId(null, dataset, table); } @Override @@ -95,8 +97,7 @@ public String toString() { } TableId setProjectId(String projectId) { - Preconditions.checkArgument( - !Strings.isNullOrEmpty(projectId), "Provided projectId is null or empty"); + checkArgument(!isNullOrEmpty(projectId), "Provided projectId is null or empty"); return TableId.of(projectId, getDataset(), getTable()); } From aa096a195c3beaaae422e5aeb77e9712d09b32ff Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 24 Sep 2019 10:09:30 +0530 Subject: [PATCH 0208/3441] Bigquery: Expose CMEK functionality for ML models. (#6303) * added EncryptionConfiguration * added test case to builder level --- .../java/com/google/cloud/bigquery/Model.java | 6 +++++ .../com/google/cloud/bigquery/ModelInfo.java | 24 +++++++++++++++++++ .../google/cloud/bigquery/ModelInfoTest.java | 6 +++++ 3 files changed, 36 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java index 22dcfa0db527..abe1f0f2ba77 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java @@ -126,6 +126,12 @@ Builder setFeatureColumns(List featureColumnList) { return this; } + @Override + public Builder setEncryptionConfiguration(EncryptionConfiguration configuration) { + infoBuilder.setEncryptionConfiguration(configuration); + return this; + } + public Model build() { return new Model(bigquery, infoBuilder); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java index d78bdbfbafab..5796c820f306 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java @@ -71,6 +71,7 @@ public Model apply(ModelInfo ModelInfo) { private final ImmutableList trainingRunList; private final ImmutableList featureColumnList; private final ImmutableList labelColumnList; + private final EncryptionConfiguration encryptionConfiguration; /** A builder for {@code ModelInfo} objects. */ public abstract static class Builder { @@ -112,6 +113,8 @@ public abstract static class Builder { abstract Builder setFeatureColumns(List featureColumnList); + public abstract Builder setEncryptionConfiguration(EncryptionConfiguration configuration); + /** Creates a {@code ModelInfo} object. */ public abstract ModelInfo build(); } @@ -130,6 +133,7 @@ static class BuilderImpl extends Builder { private List trainingRunList = Collections.emptyList(); private List labelColumnList = Collections.emptyList(); private List featureColumnList = Collections.emptyList(); + private EncryptionConfiguration encryptionConfiguration; BuilderImpl() {} @@ -145,6 +149,7 @@ static class BuilderImpl extends Builder { this.trainingRunList = modelInfo.trainingRunList; this.labelColumnList = modelInfo.labelColumnList; this.featureColumnList = modelInfo.featureColumnList; + this.encryptionConfiguration = modelInfo.encryptionConfiguration; } BuilderImpl(Model modelPb) { @@ -171,6 +176,10 @@ static class BuilderImpl extends Builder { this.featureColumnList = Lists.transform(modelPb.getFeatureColumns(), StandardSQLField.FROM_PB_FUNCTION); } + if (modelPb.getEncryptionConfiguration() != null) { + this.encryptionConfiguration = + new EncryptionConfiguration.Builder(modelPb.getEncryptionConfiguration()).build(); + } } @Override @@ -245,6 +254,12 @@ Builder setFeatureColumns(List featureColumnList) { return this; } + @Override + public Builder setEncryptionConfiguration(EncryptionConfiguration configuration) { + this.encryptionConfiguration = configuration; + return this; + } + @Override public ModelInfo build() { return new ModelInfo(this); @@ -264,6 +279,7 @@ public ModelInfo build() { this.trainingRunList = ImmutableList.copyOf(builder.trainingRunList); this.labelColumnList = ImmutableList.copyOf(builder.labelColumnList); this.featureColumnList = ImmutableList.copyOf(builder.featureColumnList); + this.encryptionConfiguration = builder.encryptionConfiguration; } /** Returns the hash of the model resource. */ @@ -332,6 +348,10 @@ public ImmutableList getFeatureColumns() { return featureColumnList; } + public EncryptionConfiguration getEncryptionConfiguration() { + return encryptionConfiguration; + } + public Builder toBuilder() { return new BuilderImpl(this); } @@ -351,6 +371,7 @@ public String toString() { .add("trainingRuns", trainingRunList) .add("labelColumns", labelColumnList) .add("featureColumns", featureColumnList) + .add("encryptionConfiguration", encryptionConfiguration) .toString(); } @@ -403,6 +424,9 @@ Model toPb() { modelPb.setFeatureColumns( Lists.transform(featureColumnList, StandardSQLField.TO_PB_FUNCTION)); } + if (encryptionConfiguration != null) { + modelPb.setEncryptionConfiguration(encryptionConfiguration.toPb()); + } return modelPb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java index 891ba07ff084..2657ccc4497e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java @@ -33,6 +33,8 @@ public class ModelInfoTest { private static final Long EXPIRATION_TIME = 30L; private static final String DESCRIPTION = "description"; private static final String FRIENDLY_NAME = "friendlyname"; + private static final EncryptionConfiguration MODEL_ENCRYPTION_CONFIGURATION = + EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); private static final TrainingOptions TRAINING_OPTIONS = new TrainingOptions().setDataSplitColumn("foo").setEarlyStop(true).setLossType("bar"); @@ -49,6 +51,7 @@ public class ModelInfoTest { .setDescription(DESCRIPTION) .setFriendlyName(FRIENDLY_NAME) .setTrainingRuns(TRAINING_RUN_LIST) + .setEncryptionConfiguration(MODEL_ENCRYPTION_CONFIGURATION) .build(); @Test @@ -71,6 +74,7 @@ public void testBuilder() { assertEquals(DESCRIPTION, MODEL_INFO.getDescription()); assertEquals(FRIENDLY_NAME, MODEL_INFO.getFriendlyName()); assertEquals(TRAINING_OPTIONS, MODEL_INFO.getTrainingRuns().get(0).getTrainingOptions()); + assertEquals(MODEL_ENCRYPTION_CONFIGURATION, MODEL_INFO.getEncryptionConfiguration()); } @Test @@ -83,6 +87,7 @@ public void testOf() { assertNull(modelInfo.getExpirationTime()); assertNull(modelInfo.getDescription()); assertNull(modelInfo.getFriendlyName()); + assertNull(modelInfo.getEncryptionConfiguration()); assertEquals(modelInfo.getTrainingRuns().isEmpty(), true); assertEquals(modelInfo.getLabelColumns().isEmpty(), true); assertEquals(modelInfo.getFeatureColumns().isEmpty(), true); @@ -112,5 +117,6 @@ private void compareModelInfo(ModelInfo expected, ModelInfo value) { assertEquals(expected.getTrainingRuns(), value.getTrainingRuns()); assertEquals(expected.getLabelColumns(), value.getLabelColumns()); assertEquals(expected.getFeatureColumns(), value.getFeatureColumns()); + assertEquals(expected.getEncryptionConfiguration(), value.getEncryptionConfiguration()); } } From fe8160b286bbdebd604b5c2721fef1091d16356e Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 25 Sep 2019 10:03:07 +0530 Subject: [PATCH 0209/3441] expose EncryptionConfiguration and added test case (#6321) --- .../com/google/cloud/bigquery/Dataset.java | 7 ++++ .../google/cloud/bigquery/DatasetInfo.java | 32 +++++++++++++++++++ .../cloud/bigquery/DatasetInfoTest.java | 9 ++++++ 3 files changed, 48 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java index 489289726873..49d12a6e6798 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java @@ -132,6 +132,13 @@ public Builder setLabels(Map labels) { return this; } + @Override + public Builder setDefaultEncryptionConfiguration( + EncryptionConfiguration defaultEncryptionConfiguration) { + infoBuilder.setDefaultEncryptionConfiguration(defaultEncryptionConfiguration); + return this; + } + @Override public Dataset build() { return new Dataset(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java index f86dfa4e52b9..845406006d16 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java @@ -69,6 +69,7 @@ public Dataset apply(DatasetInfo datasetInfo) { private final String location; private final String selfLink; private final Labels labels; + private final EncryptionConfiguration defaultEncryptionConfiguration; /** A builder for {@code DatasetInfo} objects. */ public abstract static class Builder { @@ -123,6 +124,14 @@ public abstract static class Builder { public abstract Builder setLabels(Map labels); + /** + * The default encryption key for all tables in the dataset. Once this property is set, all + * newly-created partitioned tables in the dataset will have encryption key set to this value, + * unless table creation request (or query) overrides the key. + */ + public abstract Builder setDefaultEncryptionConfiguration( + EncryptionConfiguration defaultEncryptionConfiguration); + /** Creates a {@code DatasetInfo} object. */ public abstract DatasetInfo build(); } @@ -141,6 +150,7 @@ static final class BuilderImpl extends Builder { private String location; private String selfLink; private Labels labels = Labels.ZERO; + private EncryptionConfiguration defaultEncryptionConfiguration; BuilderImpl() {} @@ -157,6 +167,7 @@ static final class BuilderImpl extends Builder { this.location = datasetInfo.location; this.selfLink = datasetInfo.selfLink; this.labels = datasetInfo.labels; + this.defaultEncryptionConfiguration = datasetInfo.defaultEncryptionConfiguration; } BuilderImpl(com.google.api.services.bigquery.model.Dataset datasetPb) { @@ -184,6 +195,11 @@ public Acl apply(Dataset.Access accessPb) { this.location = datasetPb.getLocation(); this.selfLink = datasetPb.getSelfLink(); this.labels = Labels.fromPb(datasetPb.getLabels()); + if (datasetPb.getDefaultEncryptionConfiguration() != null) { + this.defaultEncryptionConfiguration = + new EncryptionConfiguration.Builder(datasetPb.getDefaultEncryptionConfiguration()) + .build(); + } } @Override @@ -265,6 +281,13 @@ public Builder setLabels(Map labels) { return this; } + @Override + public Builder setDefaultEncryptionConfiguration( + EncryptionConfiguration defaultEncryptionConfiguration) { + this.defaultEncryptionConfiguration = defaultEncryptionConfiguration; + return this; + } + @Override public DatasetInfo build() { return new DatasetInfo(this); @@ -284,6 +307,7 @@ public DatasetInfo build() { location = builder.location; selfLink = builder.selfLink; labels = builder.labels; + defaultEncryptionConfiguration = builder.defaultEncryptionConfiguration; } /** Returns the dataset identity. */ @@ -401,6 +425,10 @@ public Map getLabels() { return labels.userMap(); } + public EncryptionConfiguration getDefaultEncryptionConfiguration() { + return defaultEncryptionConfiguration; + } + /** Returns a builder for the dataset object. */ public Builder toBuilder() { return new BuilderImpl(this); @@ -421,6 +449,7 @@ public String toString() { .add("selfLink", selfLink) .add("acl", acl) .add("labels", labels) + .add("defaultEncryptionConfiguration", defaultEncryptionConfiguration) .toString(); } @@ -483,6 +512,9 @@ public Dataset.Access apply(Acl acl) { })); } datasetPb.setLabels(labels.toPb()); + if (defaultEncryptionConfiguration != null) { + datasetPb.setDefaultEncryptionConfiguration(defaultEncryptionConfiguration.toPb()); + } return datasetPb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java index b9f9ade0065a..246deee9f418 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -51,6 +51,8 @@ public class DatasetInfoTest { private static final String SELF_LINK = "http://bigquery/p/d"; private static final DatasetId DATASET_ID = DatasetId.of("dataset"); private static final DatasetId DATASET_ID_COMPLETE = DatasetId.of("project", "dataset"); + private static final EncryptionConfiguration DATASET_ENCRYPTION_CONFIGURATION = + EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); private static final DatasetInfo DATASET_INFO = DatasetInfo.newBuilder(DATASET_ID) .setAcl(ACCESS_RULES) @@ -64,6 +66,7 @@ public class DatasetInfoTest { .setLocation(LOCATION) .setSelfLink(SELF_LINK) .setLabels(LABELS) + .setDefaultEncryptionConfiguration(DATASET_ENCRYPTION_CONFIGURATION) .build(); private static final DatasetInfo DATASET_INFO_COMPLETE = DATASET_INFO @@ -108,6 +111,8 @@ public void testBuilder() { assertEquals(LAST_MODIFIED, DATASET_INFO.getLastModified()); assertEquals(LOCATION, DATASET_INFO.getLocation()); assertEquals(SELF_LINK, DATASET_INFO.getSelfLink()); + assertEquals( + DATASET_ENCRYPTION_CONFIGURATION, DATASET_INFO.getDefaultEncryptionConfiguration()); assertEquals(DATASET_ID_COMPLETE, DATASET_INFO_COMPLETE.getDatasetId()); assertEquals(ACCESS_RULES_COMPLETE, DATASET_INFO_COMPLETE.getAcl()); assertEquals(CREATION_TIME, DATASET_INFO_COMPLETE.getCreationTime()); @@ -136,6 +141,7 @@ public void testOf() { assertNull(datasetInfo.getLastModified()); assertNull(datasetInfo.getLocation()); assertNull(datasetInfo.getSelfLink()); + assertNull(datasetInfo.getDefaultEncryptionConfiguration()); assertTrue(datasetInfo.getLabels().isEmpty()); datasetInfo = DatasetInfo.of(DATASET_ID); @@ -150,6 +156,7 @@ public void testOf() { assertNull(datasetInfo.getLastModified()); assertNull(datasetInfo.getLocation()); assertNull(datasetInfo.getSelfLink()); + assertNull(datasetInfo.getDefaultEncryptionConfiguration()); assertTrue(datasetInfo.getLabels().isEmpty()); } @@ -179,5 +186,7 @@ private void compareDatasets(DatasetInfo expected, DatasetInfo value) { assertEquals(expected.getDefaultTableLifetime(), value.getDefaultTableLifetime()); assertEquals(expected.getLastModified(), value.getLastModified()); assertEquals(expected.getLabels(), value.getLabels()); + assertEquals( + expected.getDefaultEncryptionConfiguration(), value.getDefaultEncryptionConfiguration()); } } From 2be740e98e5cbfe809a72d6e0134384b8b82e140 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Wed, 25 Sep 2019 13:14:57 -0400 Subject: [PATCH 0210/3441] Release google-cloud-java v0.111.0 (#6347) * Release v0.111.0 * Change Bigtable version to 1.0.0. --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index a3588f303036..2ba897c99349 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.92.0 + 1.93.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.92.0' +compile 'com.google.cloud:google-cloud-bigquery:1.93.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.92.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.93.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0b9f5a83add1..61edcd6735df 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.92.1-SNAPSHOT + 1.93.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.110.1-alpha-SNAPSHOT + 0.111.0-alpha google-cloud-bigquery From 3ff184421e12d22dde5ec59a882c74fafb42293b Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Thu, 26 Sep 2019 13:29:08 -0400 Subject: [PATCH 0211/3441] Bump next snapshot (#6353) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 61edcd6735df..251f36643c29 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.93.0 + 1.93.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.111.0-alpha + 0.111.1-alpha-SNAPSHOT google-cloud-bigquery From 7e33db16d75a1e72127d130fbd8b812a385dbdc6 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 2 Oct 2019 10:14:00 +0530 Subject: [PATCH 0212/3441] Bigquery: Expose labels for CopyJobConfiguration. (#6367) * fix labels * modified code --- .../cloud/bigquery/CopyJobConfiguration.java | 45 +++++++++++++++++-- .../bigquery/CopyJobConfigurationTest.java | 9 ++++ .../cloud/bigquery/it/ITBigQueryTest.java | 24 ++++++++++ 3 files changed, 75 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java index 7403a66131e9..c8cc0b02a166 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java @@ -25,6 +25,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import java.util.List; +import java.util.Map; import java.util.Objects; /** @@ -40,6 +41,7 @@ public final class CopyJobConfiguration extends JobConfiguration { private final JobInfo.CreateDisposition createDisposition; private final JobInfo.WriteDisposition writeDisposition; private final EncryptionConfiguration destinationEncryptionConfiguration; + private final Map labels; public static final class Builder extends JobConfiguration.Builder { @@ -49,6 +51,7 @@ public static final class Builder private JobInfo.CreateDisposition createDisposition; private JobInfo.WriteDisposition writeDisposition; private EncryptionConfiguration destinationEncryptionConfiguration; + private Map labels; private Builder() { super(Type.COPY); @@ -61,6 +64,7 @@ private Builder(CopyJobConfiguration jobConfiguration) { this.createDisposition = jobConfiguration.createDisposition; this.writeDisposition = jobConfiguration.writeDisposition; this.destinationEncryptionConfiguration = jobConfiguration.destinationEncryptionConfiguration; + this.labels = jobConfiguration.labels; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -87,6 +91,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur copyConfigurationPb.getDestinationEncryptionConfiguration()) .build(); } + if (configurationPb.getLabels() != null) { + this.labels = configurationPb.getLabels(); + } } /** Sets the source tables to copy. */ @@ -131,6 +138,20 @@ public Builder setWriteDisposition(JobInfo.WriteDisposition writeDisposition) { return this; } + /** + * The labels associated with this job. You can use these to organize and group your jobs. Label + * keys and values can be no longer than 63 characters, can only contain lowercase letters, + * numeric characters, underscores and dashes. International characters are allowed. Label + * values are optional. Label keys must start with a letter and each label in the list must have + * a different key. + * + * @param labels labels or {@code null} for none + */ + public Builder setLabels(Map labels) { + this.labels = labels; + return this; + } + public CopyJobConfiguration build() { return new CopyJobConfiguration(this); } @@ -143,6 +164,7 @@ private CopyJobConfiguration(Builder builder) { this.createDisposition = builder.createDisposition; this.writeDisposition = builder.writeDisposition; this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; + this.labels = builder.labels; } /** Returns the source tables to copy. */ @@ -181,6 +203,11 @@ public JobInfo.WriteDisposition getWriteDisposition() { return writeDisposition; } + /** Returns the labels associated with this job */ + public Map getLabels() { + return labels; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -193,7 +220,8 @@ ToStringHelper toStringHelper() { .add("destinationTable", destinationTable) .add("destinationEncryptionConfiguration", destinationEncryptionConfiguration) .add("createDisposition", createDisposition) - .add("writeDisposition", writeDisposition); + .add("writeDisposition", writeDisposition) + .add("labels", labels); } @Override @@ -205,7 +233,12 @@ public boolean equals(Object obj) { @Override public int hashCode() { return Objects.hash( - baseHashCode(), sourceTables, destinationTable, createDisposition, writeDisposition); + baseHashCode(), + sourceTables, + destinationTable, + createDisposition, + writeDisposition, + labels); } @Override @@ -232,6 +265,8 @@ public TableId apply(TableId tableId) { @Override com.google.api.services.bigquery.model.JobConfiguration toPb() { JobConfigurationTableCopy configurationPb = new JobConfigurationTableCopy(); + com.google.api.services.bigquery.model.JobConfiguration jobConfiguration = + new com.google.api.services.bigquery.model.JobConfiguration(); configurationPb.setDestinationTable(destinationTable.toPb()); if (sourceTables.size() == 1) { configurationPb.setSourceTable(sourceTables.get(0).toPb()); @@ -248,7 +283,11 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { configurationPb.setDestinationEncryptionConfiguration( destinationEncryptionConfiguration.toPb()); } - return new com.google.api.services.bigquery.model.JobConfiguration().setCopy(configurationPb); + if (labels != null) { + jobConfiguration.setLabels(labels); + } + jobConfiguration.setCopy(configurationPb); + return jobConfiguration; } /** Creates a builder for a BigQuery Copy Job configuration given destination and source table. */ diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java index 73a29936de77..0ee2488ee6cb 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java @@ -24,8 +24,10 @@ import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.common.base.Function; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import java.util.List; +import java.util.Map; import org.junit.Test; public class CopyJobConfigurationTest { @@ -40,16 +42,19 @@ public class CopyJobConfigurationTest { private static final WriteDisposition WRITE_DISPOSITION = WriteDisposition.WRITE_APPEND; private static final EncryptionConfiguration COPY_JOB_ENCRYPTION_CONFIGURATION = EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); + private static final Map LABELS = ImmutableMap.of("job-name", "copy"); private static final CopyJobConfiguration COPY_JOB_CONFIGURATION = CopyJobConfiguration.newBuilder(DESTINATION_TABLE, SOURCE_TABLE) .setCreateDisposition(CREATE_DISPOSITION) .setWriteDisposition(WRITE_DISPOSITION) .setDestinationEncryptionConfiguration(COPY_JOB_ENCRYPTION_CONFIGURATION) + .setLabels(LABELS) .build(); private static final CopyJobConfiguration COPY_JOB_CONFIGURATION_MULTIPLE_TABLES = CopyJobConfiguration.newBuilder(DESTINATION_TABLE, SOURCE_TABLES) .setCreateDisposition(CREATE_DISPOSITION) .setWriteDisposition(WRITE_DISPOSITION) + .setLabels(LABELS) .build(); @Test @@ -95,6 +100,7 @@ public void testBuilder() { assertEquals(ImmutableList.of(SOURCE_TABLE), COPY_JOB_CONFIGURATION.getSourceTables()); assertEquals(CREATE_DISPOSITION, COPY_JOB_CONFIGURATION.getCreateDisposition()); assertEquals(WRITE_DISPOSITION, COPY_JOB_CONFIGURATION.getWriteDisposition()); + assertEquals(LABELS, COPY_JOB_CONFIGURATION.getLabels()); } @Test @@ -105,6 +111,8 @@ public void testToPbAndFromPb() { assertNull(COPY_JOB_CONFIGURATION.toPb().getQuery()); assertNull(COPY_JOB_CONFIGURATION.toPb().getCopy().getSourceTables()); assertNull(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.toPb().getCopy().getSourceTable()); + assertNotNull(COPY_JOB_CONFIGURATION.getLabels()); + assertNotNull(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getLabels()); compareCopyJobConfiguration( COPY_JOB_CONFIGURATION, CopyJobConfiguration.fromPb(COPY_JOB_CONFIGURATION.toPb())); compareCopyJobConfiguration( @@ -167,5 +175,6 @@ private void compareCopyJobConfiguration( assertEquals( expected.getDestinationEncryptionConfiguration(), value.getDestinationEncryptionConfiguration()); + assertEquals(expected.getLabels(), value.getLabels()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 58869a3848d4..a71787d77b70 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1476,6 +1476,30 @@ public void testCopyJob() throws InterruptedException, TimeoutException { assertTrue(remoteTable.delete()); } + @Test + public void testCopyJobWithLabels() throws InterruptedException { + String sourceTableName = "test_copy_job_source_table_label"; + String destinationTableName = "test_copy_job_destination_table_label"; + Map labels = ImmutableMap.of("test_job_name", "test_copy_job"); + TableId sourceTable = TableId.of(DATASET, sourceTableName); + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + TableInfo tableInfo = TableInfo.of(sourceTable, tableDefinition); + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + TableId destinationTable = TableId.of(DATASET, destinationTableName); + CopyJobConfiguration configuration = + CopyJobConfiguration.newBuilder(destinationTable, sourceTable).setLabels(labels).build(); + Job remoteJob = bigquery.create(JobInfo.of(configuration)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + CopyJobConfiguration copyJobConfiguration = remoteJob.getConfiguration(); + assertEquals(labels, copyJobConfiguration.getLabels()); + Table remoteTable = bigquery.getTable(DATASET, destinationTableName); + assertNotNull(remoteTable); + assertTrue(createdTable.delete()); + assertTrue(remoteTable.delete()); + } + @Test public void testQueryJob() throws InterruptedException, TimeoutException { String tableName = "test_query_job_table"; From 37e111efd7414b52b4df2b81214bc77e6e6031c3 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 2 Oct 2019 10:14:41 +0530 Subject: [PATCH 0213/3441] fix labels with test case (#6376) --- .../bigquery/ExtractJobConfiguration.java | 42 +++++++++++++++++-- .../bigquery/ExtractJobConfigurationTest.java | 12 ++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 26 ++++++++++++ 3 files changed, 76 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java index 777e23c6ac17..6aed6ecf0766 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java @@ -25,6 +25,7 @@ import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import java.util.List; +import java.util.Map; import java.util.Objects; /** @@ -43,6 +44,7 @@ public final class ExtractJobConfiguration extends JobConfiguration { private final String format; private final String compression; private final Boolean useAvroLogicalTypes; + private final Map labels; public static final class Builder extends JobConfiguration.Builder { @@ -54,6 +56,7 @@ public static final class Builder private String format; private String compression; private Boolean useAvroLogicalTypes; + private Map labels; private Builder() { super(Type.EXTRACT); @@ -68,6 +71,7 @@ private Builder(ExtractJobConfiguration jobInfo) { this.format = jobInfo.format; this.compression = jobInfo.compression; this.useAvroLogicalTypes = jobInfo.useAvroLogicalTypes; + this.labels = jobInfo.labels; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -80,6 +84,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this.format = extractConfigurationPb.getDestinationFormat(); this.compression = extractConfigurationPb.getCompression(); this.useAvroLogicalTypes = extractConfigurationPb.getUseAvroLogicalTypes(); + if (configurationPb.getLabels() != null) { + this.labels = configurationPb.getLabels(); + } } /** Sets the table to export. */ @@ -146,6 +153,20 @@ public Builder setUseAvroLogicalTypes(Boolean useAvroLogicalTypes) { return this; } + /** + * The labels associated with this job. You can use these to organize and group your jobs. Label + * keys and values can be no longer than 63 characters, can only contain lowercase letters, + * numeric characters, underscores and dashes. International characters are allowed. Label + * values are optional. Label keys must start with a letter and each label in the list must have + * a different key. + * + * @param labels labels or {@code null} for none + */ + public Builder setLabels(Map labels) { + this.labels = labels; + return this; + } + public ExtractJobConfiguration build() { return new ExtractJobConfiguration(this); } @@ -160,6 +181,7 @@ private ExtractJobConfiguration(Builder builder) { this.format = builder.format; this.compression = builder.compression; this.useAvroLogicalTypes = builder.useAvroLogicalTypes; + this.labels = builder.labels; } /** Returns the table to export. */ @@ -204,6 +226,11 @@ public Boolean getUseAvroLogicalTypes() { return useAvroLogicalTypes; } + /** Returns the labels associated with this job */ + public Map getLabels() { + return labels; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -218,7 +245,8 @@ ToStringHelper toStringHelper() { .add("printHeader", printHeader) .add("fieldDelimiter", fieldDelimiter) .add("compression", compression) - .add("useAvroLogicalTypes", useAvroLogicalTypes); + .add("useAvroLogicalTypes", useAvroLogicalTypes) + .add("labels", labels); } @Override @@ -237,7 +265,8 @@ public int hashCode() { fieldDelimiter, format, compression, - useAvroLogicalTypes); + useAvroLogicalTypes, + labels); } @Override @@ -251,6 +280,8 @@ ExtractJobConfiguration setProjectId(String projectId) { @Override com.google.api.services.bigquery.model.JobConfiguration toPb() { JobConfigurationExtract extractConfigurationPb = new JobConfigurationExtract(); + com.google.api.services.bigquery.model.JobConfiguration jobConfiguration = + new com.google.api.services.bigquery.model.JobConfiguration(); extractConfigurationPb.setDestinationUris(destinationUris); extractConfigurationPb.setSourceTable(sourceTable.toPb()); extractConfigurationPb.setPrintHeader(printHeader); @@ -258,8 +289,11 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { extractConfigurationPb.setDestinationFormat(format); extractConfigurationPb.setCompression(compression); extractConfigurationPb.setUseAvroLogicalTypes(useAvroLogicalTypes); - return new com.google.api.services.bigquery.model.JobConfiguration() - .setExtract(extractConfigurationPb); + if (labels != null) { + jobConfiguration.setLabels(labels); + } + jobConfiguration.setExtract(extractConfigurationPb); + return jobConfiguration; } /** diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java index 1611145777c1..8a1a650372e0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java @@ -21,7 +21,9 @@ import static org.junit.Assert.assertNull; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import java.util.List; +import java.util.Map; import org.junit.Test; public class ExtractJobConfigurationTest { @@ -37,12 +39,15 @@ public class ExtractJobConfigurationTest { private static final Boolean PRINT_HEADER = true; private static final String COMPRESSION = "GZIP"; private static final Boolean USEAVROLOGICALTYPES = true; + private static final Map LABELS = + ImmutableMap.of("test-job-name", "test-extract-job"); private static final ExtractJobConfiguration EXTRACT_CONFIGURATION = ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URIS) .setPrintHeader(PRINT_HEADER) .setFieldDelimiter(FIELD_DELIMITER) .setCompression(COMPRESSION) .setFormat(FORMAT) + .setLabels(LABELS) .build(); private static final ExtractJobConfiguration EXTRACT_CONFIGURATION_ONE_URI = ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URI) @@ -50,6 +55,7 @@ public class ExtractJobConfigurationTest { .setFieldDelimiter(FIELD_DELIMITER) .setCompression(COMPRESSION) .setFormat(FORMAT) + .setLabels(LABELS) .build(); private static final ExtractJobConfiguration EXTRACT_CONFIGURATION_AVRO = ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URI) @@ -58,6 +64,7 @@ public class ExtractJobConfigurationTest { .setCompression(COMPRESSION) .setFormat(AVRO_FORMAT) .setUseAvroLogicalTypes(USEAVROLOGICALTYPES) + .setLabels(LABELS) .build(); @Test @@ -113,6 +120,7 @@ public void testBuilder() { assertEquals(COMPRESSION, EXTRACT_CONFIGURATION.getCompression()); assertEquals(PRINT_HEADER, EXTRACT_CONFIGURATION.printHeader()); assertEquals(FORMAT, EXTRACT_CONFIGURATION.getFormat()); + assertEquals(LABELS, EXTRACT_CONFIGURATION.getLabels()); assertEquals(TABLE_ID, EXTRACT_CONFIGURATION_ONE_URI.getSourceTable()); assertEquals( ImmutableList.of(DESTINATION_URI), EXTRACT_CONFIGURATION_ONE_URI.getDestinationUris()); @@ -120,6 +128,7 @@ public void testBuilder() { assertEquals(COMPRESSION, EXTRACT_CONFIGURATION_ONE_URI.getCompression()); assertEquals(PRINT_HEADER, EXTRACT_CONFIGURATION_ONE_URI.printHeader()); assertEquals(FORMAT, EXTRACT_CONFIGURATION_ONE_URI.getFormat()); + assertEquals(LABELS, EXTRACT_CONFIGURATION_ONE_URI.getLabels()); assertEquals( ImmutableList.of(DESTINATION_URI), EXTRACT_CONFIGURATION_AVRO.getDestinationUris()); assertEquals(FIELD_DELIMITER, EXTRACT_CONFIGURATION_AVRO.getFieldDelimiter()); @@ -127,6 +136,7 @@ public void testBuilder() { assertEquals(PRINT_HEADER, EXTRACT_CONFIGURATION_AVRO.printHeader()); assertEquals(AVRO_FORMAT, EXTRACT_CONFIGURATION_AVRO.getFormat()); assertEquals(USEAVROLOGICALTYPES, EXTRACT_CONFIGURATION_AVRO.getUseAvroLogicalTypes()); + assertEquals(LABELS, EXTRACT_CONFIGURATION_AVRO.getLabels()); } @Test @@ -135,6 +145,7 @@ public void testToPbAndFromPb() { assertNull(EXTRACT_CONFIGURATION.toPb().getCopy()); assertNull(EXTRACT_CONFIGURATION.toPb().getLoad()); assertNull(EXTRACT_CONFIGURATION.toPb().getQuery()); + assertNotNull(EXTRACT_CONFIGURATION.toPb().getLabels()); compareExtractJobConfiguration( EXTRACT_CONFIGURATION, ExtractJobConfiguration.fromPb(EXTRACT_CONFIGURATION.toPb())); compareExtractJobConfiguration( @@ -182,5 +193,6 @@ private void compareExtractJobConfiguration( assertEquals(expected.printHeader(), value.printHeader()); assertEquals(expected.getFieldDelimiter(), value.getFieldDelimiter()); assertEquals(expected.getFormat(), value.getFormat()); + assertEquals(expected.getLabels(), value.getLabels()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index a71787d77b70..b0b51b2c2d7e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1580,6 +1580,32 @@ public void testExtractJob() throws InterruptedException, TimeoutException { assertTrue(bigquery.delete(destinationTable)); } + @Test + public void testExtractJobWithLabels() throws InterruptedException, TimeoutException { + String tableName = "test_export_job_table_label"; + Map labels = ImmutableMap.of("test_job_name", "test_export_job"); + TableId destinationTable = TableId.of(DATASET, tableName); + LoadJobConfiguration configuration = + LoadJobConfiguration.newBuilder(destinationTable, "gs://" + BUCKET + "/" + LOAD_FILE) + .setSchema(SIMPLE_SCHEMA) + .build(); + Job remoteLoadJob = bigquery.create(JobInfo.of(configuration)); + remoteLoadJob = remoteLoadJob.waitFor(); + assertNull(remoteLoadJob.getStatus().getError()); + + ExtractJobConfiguration extractConfiguration = + ExtractJobConfiguration.newBuilder(destinationTable, "gs://" + BUCKET + "/" + EXTRACT_FILE) + .setLabels(labels) + .setPrintHeader(false) + .build(); + Job remoteExtractJob = bigquery.create(JobInfo.of(extractConfiguration)); + remoteExtractJob = remoteExtractJob.waitFor(); + assertNull(remoteExtractJob.getStatus().getError()); + ExtractJobConfiguration extractJobConfiguration = remoteExtractJob.getConfiguration(); + assertEquals(labels, extractJobConfiguration.getLabels()); + assertTrue(bigquery.delete(destinationTable)); + } + @Test public void testCancelJob() throws InterruptedException, TimeoutException { String destinationTableName = "test_cancel_query_job_table"; From 5f048fdf1886bd534e5ce423c786acfe923818a5 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 2 Oct 2019 10:15:19 +0530 Subject: [PATCH 0214/3441] Bigquery: Expose labels for LoadJobConfiguration. (#6387) * expose labels * modified test case --- .../cloud/bigquery/LoadJobConfiguration.java | 39 +++++++++++++++++-- .../bigquery/LoadJobConfigurationTest.java | 8 ++++ .../cloud/bigquery/it/ITBigQueryTest.java | 8 ++++ 3 files changed, 52 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index 0f7e81a2bb13..25541a5ebdd9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -24,6 +24,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.primitives.Ints; import java.util.List; +import java.util.Map; import java.util.Objects; /** @@ -50,6 +51,7 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private final TimePartitioning timePartitioning; private final Clustering clustering; private final Boolean useAvroLogicalTypes; + private final Map labels; public static final class Builder extends JobConfiguration.Builder implements LoadConfiguration.Builder { @@ -70,6 +72,7 @@ public static final class Builder extends JobConfiguration.Builder labels; private Builder() { super(Type.LOAD); @@ -93,6 +96,7 @@ private Builder(LoadJobConfiguration loadConfiguration) { this.timePartitioning = loadConfiguration.timePartitioning; this.clustering = loadConfiguration.clustering; this.useAvroLogicalTypes = loadConfiguration.useAvroLogicalTypes; + this.labels = loadConfiguration.labels; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -166,6 +170,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur loadConfigurationPb.getDestinationEncryptionConfiguration()) .build(); } + if (configurationPb.getLabels() != null) { + this.labels = configurationPb.getLabels(); + } } @Override @@ -263,6 +270,20 @@ public Builder setSchemaUpdateOptions(List schemaUpd return this; } + /** + * The labels associated with this job. You can use these to organize and group your jobs. Label + * keys and values can be no longer than 63 characters, can only contain lowercase letters, + * numeric characters, underscores and dashes. International characters are allowed. Label + * values are optional. Label keys must start with a letter and each label in the list must have + * a different key. + * + * @param labels labels or {@code null} for none + */ + public Builder setLabels(Map labels) { + this.labels = labels; + return this; + } + @Override public LoadJobConfiguration build() { return new LoadJobConfiguration(this); @@ -286,6 +307,7 @@ private LoadJobConfiguration(Builder builder) { this.timePartitioning = builder.timePartitioning; this.clustering = builder.clustering; this.useAvroLogicalTypes = builder.useAvroLogicalTypes; + this.labels = builder.labels; } @Override @@ -378,6 +400,11 @@ public List getSchemaUpdateOptions() { return schemaUpdateOptions; } + /** Returns the labels associated with this job */ + public Map getLabels() { + return labels; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -400,7 +427,8 @@ ToStringHelper toStringHelper() { .add("autodetect", autodetect) .add("timePartitioning", timePartitioning) .add("clustering", clustering) - .add("useAvroLogicalTypes", useAvroLogicalTypes); + .add("useAvroLogicalTypes", useAvroLogicalTypes) + .add("labels", labels); } @Override @@ -425,6 +453,8 @@ LoadJobConfiguration setProjectId(String projectId) { @Override com.google.api.services.bigquery.model.JobConfiguration toPb() { JobConfigurationLoad loadConfigurationPb = new JobConfigurationLoad(); + com.google.api.services.bigquery.model.JobConfiguration jobConfiguration = + new com.google.api.services.bigquery.model.JobConfiguration(); loadConfigurationPb.setDestinationTable(destinationTable.toPb()); if (createDisposition != null) { loadConfigurationPb.setCreateDisposition(createDisposition.toString()); @@ -482,8 +512,11 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { loadConfigurationPb.setClustering(clustering.toPb()); } loadConfigurationPb.setUseAvroLogicalTypes(useAvroLogicalTypes); - return new com.google.api.services.bigquery.model.JobConfiguration() - .setLoad(loadConfigurationPb); + if (labels != null) { + jobConfiguration.setLabels(labels); + } + jobConfiguration.setLoad(loadConfigurationPb); + return jobConfiguration; } /** diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index 48f41beb59c7..ab0c59ab4c61 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -23,8 +23,10 @@ import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.cloud.bigquery.TimePartitioning.Type; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import java.nio.charset.StandardCharsets; import java.util.List; +import java.util.Map; import org.junit.Test; public class LoadJobConfigurationTest { @@ -58,6 +60,8 @@ public class LoadJobConfigurationTest { private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY); private static final Clustering CLUSTERING = Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); + private static final Map LABELS = + ImmutableMap.of("test-job-name", "test-load-job"); private static final LoadJobConfiguration LOAD_CONFIGURATION_CSV = LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) .setCreateDisposition(CREATE_DISPOSITION) @@ -71,6 +75,7 @@ public class LoadJobConfigurationTest { .setDestinationEncryptionConfiguration(JOB_ENCRYPTION_CONFIGURATION) .setTimePartitioning(TIME_PARTITIONING) .setClustering(CLUSTERING) + .setLabels(LABELS) .build(); private static final DatastoreBackupOptions BACKUP_OPTIONS = DatastoreBackupOptions.newBuilder() @@ -86,6 +91,7 @@ public class LoadJobConfigurationTest { .setSchema(TABLE_SCHEMA) .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) .setAutodetect(AUTODETECT) + .setLabels(LABELS) .build(); private static final LoadJobConfiguration LOAD_CONFIGURATION_AVRO = LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) @@ -101,6 +107,7 @@ public class LoadJobConfigurationTest { .setTimePartitioning(TIME_PARTITIONING) .setClustering(CLUSTERING) .setUseAvroLogicalTypes(USERAVROLOGICALTYPES) + .setLabels(LABELS) .build(); @Test @@ -216,5 +223,6 @@ private void compareLoadJobConfiguration( assertEquals(expected.getTimePartitioning(), value.getTimePartitioning()); assertEquals(expected.getClustering(), value.getClustering()); assertEquals(expected.getUseAvroLogicalTypes(), value.getUseAvroLogicalTypes()); + assertEquals(expected.getLabels(), value.getLabels()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b0b51b2c2d7e..f6c40ed008e9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -279,6 +279,7 @@ public class ITBigQueryTest { public static void beforeClass() throws InterruptedException, TimeoutException { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); RemoteStorageHelper storageHelper = RemoteStorageHelper.create(); + Map labels = ImmutableMap.of("test-job-name", "test-load-job"); bigquery = bigqueryHelper.getOptions().getService(); storage = storageHelper.getOptions().getService(); storage.create(BucketInfo.of(BUCKET)); @@ -302,10 +303,13 @@ public static void beforeClass() throws InterruptedException, TimeoutException { TABLE_ID, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) .setSchema(TABLE_SCHEMA) + .setLabels(labels) .build(); Job job = bigquery.create(JobInfo.of(configuration)); job = job.waitFor(); assertNull(job.getStatus().getError()); + LoadJobConfiguration loadJobConfiguration = job.getConfiguration(); + assertEquals(labels, loadJobConfiguration.getLabels()); } @AfterClass @@ -1557,13 +1561,17 @@ public void testQueryJobWithDryRun() throws InterruptedException, TimeoutExcepti public void testExtractJob() throws InterruptedException, TimeoutException { String tableName = "test_export_job_table"; TableId destinationTable = TableId.of(DATASET, tableName); + Map labels = ImmutableMap.of("test-job-name", "test-load-extract-job"); LoadJobConfiguration configuration = LoadJobConfiguration.newBuilder(destinationTable, "gs://" + BUCKET + "/" + LOAD_FILE) .setSchema(SIMPLE_SCHEMA) + .setLabels(labels) .build(); Job remoteLoadJob = bigquery.create(JobInfo.of(configuration)); remoteLoadJob = remoteLoadJob.waitFor(); assertNull(remoteLoadJob.getStatus().getError()); + LoadJobConfiguration loadJobConfiguration = remoteLoadJob.getConfiguration(); + assertEquals(labels, loadJobConfiguration.getLabels()); ExtractJobConfiguration extractConfiguration = ExtractJobConfiguration.newBuilder(destinationTable, "gs://" + BUCKET + "/" + EXTRACT_FILE) From 1c5006b28818cd5390d70eed0c6482aff66dc171 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 2 Oct 2019 15:32:18 -0700 Subject: [PATCH 0215/3441] Release google-cloud-java v0.112.0 (#6420) * Release v0.112.0 * Fix translate pom --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 2ba897c99349..d0f40a696efa 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.93.0 + 1.96.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.93.0' +compile 'com.google.cloud:google-cloud-bigquery:1.96.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.93.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.96.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 251f36643c29..4e4231f6f1b7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.93.1-SNAPSHOT + 1.96.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.111.1-alpha-SNAPSHOT + 0.114.0-alpha google-cloud-bigquery From 1eba787456c478fd157c79ef378b7b8ea77255d9 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 3 Oct 2019 12:05:30 -0700 Subject: [PATCH 0216/3441] Bump next snapshot (#6434) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4e4231f6f1b7..9ad66861c9fd 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.96.0 + 1.96.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.114.0-alpha + 0.114.1-alpha-SNAPSHOT google-cloud-bigquery From 1e6b0b4de5b1d2006d0df6d1df430f5d8b16144b Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 10 Oct 2019 12:37:13 -0700 Subject: [PATCH 0217/3441] Release google-cloud-java v0.115.0 (#6476) * Release v0.115.0 * fix bigtable-it config --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index d0f40a696efa..d36bf7cd9358 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.96.0 + 1.97.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.96.0' +compile 'com.google.cloud:google-cloud-bigquery:1.97.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.96.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.97.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9ad66861c9fd..899a72cf6392 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.96.1-SNAPSHOT + 1.97.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.114.1-alpha-SNAPSHOT + 0.115.0-alpha google-cloud-bigquery From 530de856a146bf81bb23fdd54eb25535991df92c Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 10 Oct 2019 13:48:03 -0700 Subject: [PATCH 0218/3441] Bump next snapshot (#6485) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 899a72cf6392..579af42c31a2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.97.0 + 1.97.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.115.0-alpha + 0.115.1-alpha-SNAPSHOT google-cloud-bigquery From 63c32a60db5e55f5e4b5777d07926482c92d5de0 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 14 Oct 2019 11:07:56 +0530 Subject: [PATCH 0219/3441] added jobTimeoutMs field for Job (#6482) --- .../cloud/bigquery/CopyJobConfiguration.java | 32 +++++++++++++++-- .../bigquery/ExtractJobConfiguration.java | 32 +++++++++++++++-- .../cloud/bigquery/LoadJobConfiguration.java | 29 ++++++++++++++- .../cloud/bigquery/QueryJobConfiguration.java | 35 +++++++++++++++++-- .../bigquery/CopyJobConfigurationTest.java | 6 ++++ .../bigquery/ExtractJobConfigurationTest.java | 9 +++++ .../bigquery/LoadJobConfigurationTest.java | 5 +++ .../bigquery/QueryJobConfigurationTest.java | 4 +++ 8 files changed, 144 insertions(+), 8 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java index c8cc0b02a166..d0e15e49eed2 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java @@ -42,6 +42,7 @@ public final class CopyJobConfiguration extends JobConfiguration { private final JobInfo.WriteDisposition writeDisposition; private final EncryptionConfiguration destinationEncryptionConfiguration; private final Map labels; + private final Long jobTimeoutMs; public static final class Builder extends JobConfiguration.Builder { @@ -52,6 +53,7 @@ public static final class Builder private JobInfo.WriteDisposition writeDisposition; private EncryptionConfiguration destinationEncryptionConfiguration; private Map labels; + private Long jobTimeoutMs; private Builder() { super(Type.COPY); @@ -65,6 +67,7 @@ private Builder(CopyJobConfiguration jobConfiguration) { this.writeDisposition = jobConfiguration.writeDisposition; this.destinationEncryptionConfiguration = jobConfiguration.destinationEncryptionConfiguration; this.labels = jobConfiguration.labels; + this.jobTimeoutMs = jobConfiguration.jobTimeoutMs; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -94,6 +97,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (configurationPb.getLabels() != null) { this.labels = configurationPb.getLabels(); } + if (configurationPb.getJobTimeoutMs() != null) { + this.jobTimeoutMs = configurationPb.getJobTimeoutMs(); + } } /** Sets the source tables to copy. */ @@ -152,6 +158,17 @@ public Builder setLabels(Map labels) { return this; } + /** + * [Optional] Job timeout in milliseconds. If this time limit is exceeded, BigQuery may attempt + * to terminate the job. + * + * @param jobTimeoutMs jobTimeoutMs or {@code null} for none + */ + public Builder setJobTimeoutMs(Long jobTimeoutMs) { + this.jobTimeoutMs = jobTimeoutMs; + return this; + } + public CopyJobConfiguration build() { return new CopyJobConfiguration(this); } @@ -165,6 +182,7 @@ private CopyJobConfiguration(Builder builder) { this.writeDisposition = builder.writeDisposition; this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; this.labels = builder.labels; + this.jobTimeoutMs = builder.jobTimeoutMs; } /** Returns the source tables to copy. */ @@ -208,6 +226,11 @@ public Map getLabels() { return labels; } + /** Returns the timeout associated with this job */ + public Long getJobTimeoutMs() { + return jobTimeoutMs; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -221,7 +244,8 @@ ToStringHelper toStringHelper() { .add("destinationEncryptionConfiguration", destinationEncryptionConfiguration) .add("createDisposition", createDisposition) .add("writeDisposition", writeDisposition) - .add("labels", labels); + .add("labels", labels) + .add("jobTimeoutMs", jobTimeoutMs); } @Override @@ -238,7 +262,8 @@ public int hashCode() { destinationTable, createDisposition, writeDisposition, - labels); + labels, + jobTimeoutMs); } @Override @@ -286,6 +311,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (labels != null) { jobConfiguration.setLabels(labels); } + if (jobTimeoutMs != null) { + jobConfiguration.setJobTimeoutMs(jobTimeoutMs); + } jobConfiguration.setCopy(configurationPb); return jobConfiguration; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java index 6aed6ecf0766..4dcfdaeaf7d5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java @@ -45,6 +45,7 @@ public final class ExtractJobConfiguration extends JobConfiguration { private final String compression; private final Boolean useAvroLogicalTypes; private final Map labels; + private final Long jobTimeoutMs; public static final class Builder extends JobConfiguration.Builder { @@ -57,6 +58,7 @@ public static final class Builder private String compression; private Boolean useAvroLogicalTypes; private Map labels; + private Long jobTimeoutMs; private Builder() { super(Type.EXTRACT); @@ -72,6 +74,7 @@ private Builder(ExtractJobConfiguration jobInfo) { this.compression = jobInfo.compression; this.useAvroLogicalTypes = jobInfo.useAvroLogicalTypes; this.labels = jobInfo.labels; + this.jobTimeoutMs = jobInfo.jobTimeoutMs; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -87,6 +90,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (configurationPb.getLabels() != null) { this.labels = configurationPb.getLabels(); } + if (configurationPb.getJobTimeoutMs() != null) { + this.jobTimeoutMs = configurationPb.getJobTimeoutMs(); + } } /** Sets the table to export. */ @@ -167,6 +173,17 @@ public Builder setLabels(Map labels) { return this; } + /** + * [Optional] Job timeout in milliseconds. If this time limit is exceeded, BigQuery may attempt + * to terminate the job. + * + * @param jobTimeoutMs jobTimeoutMs or {@code null} for none + */ + public Builder setJobTimeoutMs(Long jobTimeoutMs) { + this.jobTimeoutMs = jobTimeoutMs; + return this; + } + public ExtractJobConfiguration build() { return new ExtractJobConfiguration(this); } @@ -182,6 +199,7 @@ private ExtractJobConfiguration(Builder builder) { this.compression = builder.compression; this.useAvroLogicalTypes = builder.useAvroLogicalTypes; this.labels = builder.labels; + this.jobTimeoutMs = builder.jobTimeoutMs; } /** Returns the table to export. */ @@ -231,6 +249,11 @@ public Map getLabels() { return labels; } + /** Returns the timeout associated with this job */ + public Long getJobTimeoutMs() { + return jobTimeoutMs; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -246,7 +269,8 @@ ToStringHelper toStringHelper() { .add("fieldDelimiter", fieldDelimiter) .add("compression", compression) .add("useAvroLogicalTypes", useAvroLogicalTypes) - .add("labels", labels); + .add("labels", labels) + .add("jobTimeoutMs", jobTimeoutMs); } @Override @@ -266,7 +290,8 @@ public int hashCode() { format, compression, useAvroLogicalTypes, - labels); + labels, + jobTimeoutMs); } @Override @@ -292,6 +317,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (labels != null) { jobConfiguration.setLabels(labels); } + if (jobTimeoutMs != null) { + jobConfiguration.setJobTimeoutMs(jobTimeoutMs); + } jobConfiguration.setExtract(extractConfigurationPb); return jobConfiguration; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index 25541a5ebdd9..01593accbace 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -52,6 +52,7 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private final Clustering clustering; private final Boolean useAvroLogicalTypes; private final Map labels; + private final Long jobTimeoutMs; public static final class Builder extends JobConfiguration.Builder implements LoadConfiguration.Builder { @@ -73,6 +74,7 @@ public static final class Builder extends JobConfiguration.Builder labels; + private Long jobTimeoutMs; private Builder() { super(Type.LOAD); @@ -97,6 +99,7 @@ private Builder(LoadJobConfiguration loadConfiguration) { this.clustering = loadConfiguration.clustering; this.useAvroLogicalTypes = loadConfiguration.useAvroLogicalTypes; this.labels = loadConfiguration.labels; + this.jobTimeoutMs = loadConfiguration.jobTimeoutMs; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -173,6 +176,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (configurationPb.getLabels() != null) { this.labels = configurationPb.getLabels(); } + if (configurationPb.getJobTimeoutMs() != null) { + this.jobTimeoutMs = configurationPb.getJobTimeoutMs(); + } } @Override @@ -284,6 +290,17 @@ public Builder setLabels(Map labels) { return this; } + /** + * [Optional] Job timeout in milliseconds. If this time limit is exceeded, BigQuery may attempt + * to terminate the job. + * + * @param jobTimeoutMs jobTimeoutMs or {@code null} for none + */ + public Builder setJobTimeoutMs(Long jobTimeoutMs) { + this.jobTimeoutMs = jobTimeoutMs; + return this; + } + @Override public LoadJobConfiguration build() { return new LoadJobConfiguration(this); @@ -308,6 +325,7 @@ private LoadJobConfiguration(Builder builder) { this.clustering = builder.clustering; this.useAvroLogicalTypes = builder.useAvroLogicalTypes; this.labels = builder.labels; + this.jobTimeoutMs = builder.jobTimeoutMs; } @Override @@ -405,6 +423,11 @@ public Map getLabels() { return labels; } + /** Returns the timeout associated with this job */ + public Long getJobTimeoutMs() { + return jobTimeoutMs; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -428,7 +451,8 @@ ToStringHelper toStringHelper() { .add("timePartitioning", timePartitioning) .add("clustering", clustering) .add("useAvroLogicalTypes", useAvroLogicalTypes) - .add("labels", labels); + .add("labels", labels) + .add("jobTimeoutMs", jobTimeoutMs); } @Override @@ -515,6 +539,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (labels != null) { jobConfiguration.setLabels(labels); } + if (jobTimeoutMs != null) { + jobConfiguration.setJobTimeoutMs(jobTimeoutMs); + } jobConfiguration.setLoad(loadConfigurationPb); return jobConfiguration; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index d8aff869f39c..d4a33d336a1b 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -65,6 +65,7 @@ public final class QueryJobConfiguration extends JobConfiguration { private final EncryptionConfiguration destinationEncryptionConfiguration; private final TimePartitioning timePartitioning; private final Clustering clustering; + private final Long jobTimeoutMs; /** * Priority levels for a query. If not specified the priority is assumed to be {@link @@ -110,6 +111,7 @@ public static final class Builder private EncryptionConfiguration destinationEncryptionConfiguration; private TimePartitioning timePartitioning; private Clustering clustering; + private Long jobTimeoutMs; private Builder() { super(Type.QUERY); @@ -138,6 +140,7 @@ private Builder(QueryJobConfiguration jobConfiguration) { this.destinationEncryptionConfiguration = jobConfiguration.destinationEncryptionConfiguration; this.timePartitioning = jobConfiguration.timePartitioning; this.clustering = jobConfiguration.clustering; + this.jobTimeoutMs = jobConfiguration.jobTimeoutMs; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -221,6 +224,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (queryConfigurationPb.getClustering() != null) { this.clustering = Clustering.fromPb(queryConfigurationPb.getClustering()); } + if (configurationPb.getJobTimeoutMs() != null) { + this.jobTimeoutMs = configurationPb.getJobTimeoutMs(); + } } /** Sets the BigQuery SQL query to execute. */ @@ -524,6 +530,17 @@ public Builder setClustering(Clustering clustering) { return this; } + /** + * [Optional] Job timeout in milliseconds. If this time limit is exceeded, BigQuery may attempt + * to terminate the job. + * + * @param jobTimeoutMs jobTimeoutMs or {@code null} for none + */ + public Builder setJobTimeoutMs(Long jobTimeoutMs) { + this.jobTimeoutMs = jobTimeoutMs; + return this; + } + public QueryJobConfiguration build() { return new QueryJobConfiguration(this); } @@ -561,6 +578,7 @@ private QueryJobConfiguration(Builder builder) { this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; this.timePartitioning = builder.timePartitioning; this.clustering = builder.clustering; + this.jobTimeoutMs = builder.jobTimeoutMs; } /** @@ -730,6 +748,11 @@ public Clustering getClustering() { return clustering; } + /** Returns the timeout associated with this job */ + public Long getJobTimeoutMs() { + return jobTimeoutMs; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -758,7 +781,8 @@ ToStringHelper toStringHelper() { .add("maximumBytesBilled", maximumBytesBilled) .add("schemaUpdateOptions", schemaUpdateOptions) .add("timePartitioning", timePartitioning) - .add("clustering", clustering); + .add("clustering", clustering) + .add("jobTimeoutMs", jobTimeoutMs); } @Override @@ -790,7 +814,8 @@ public int hashCode() { maximumBytesBilled, schemaUpdateOptions, timePartitioning, - clustering); + clustering, + jobTimeoutMs); } @Override @@ -880,7 +905,11 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (clustering != null) { queryConfigurationPb.setClustering(clustering.toPb()); } - return configurationPb.setQuery(queryConfigurationPb); + if (jobTimeoutMs != null) { + configurationPb.setJobTimeoutMs(jobTimeoutMs); + } + configurationPb.setQuery(queryConfigurationPb); + return configurationPb; } /** Creates a builder for a BigQuery Query Job given the query to be run. */ diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java index 0ee2488ee6cb..be62bc1d687d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java @@ -43,18 +43,21 @@ public class CopyJobConfigurationTest { private static final EncryptionConfiguration COPY_JOB_ENCRYPTION_CONFIGURATION = EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); private static final Map LABELS = ImmutableMap.of("job-name", "copy"); + private static final Long TIMEOUT = 10L; private static final CopyJobConfiguration COPY_JOB_CONFIGURATION = CopyJobConfiguration.newBuilder(DESTINATION_TABLE, SOURCE_TABLE) .setCreateDisposition(CREATE_DISPOSITION) .setWriteDisposition(WRITE_DISPOSITION) .setDestinationEncryptionConfiguration(COPY_JOB_ENCRYPTION_CONFIGURATION) .setLabels(LABELS) + .setJobTimeoutMs(TIMEOUT) .build(); private static final CopyJobConfiguration COPY_JOB_CONFIGURATION_MULTIPLE_TABLES = CopyJobConfiguration.newBuilder(DESTINATION_TABLE, SOURCE_TABLES) .setCreateDisposition(CREATE_DISPOSITION) .setWriteDisposition(WRITE_DISPOSITION) .setLabels(LABELS) + .setJobTimeoutMs(TIMEOUT) .build(); @Test @@ -101,6 +104,7 @@ public void testBuilder() { assertEquals(CREATE_DISPOSITION, COPY_JOB_CONFIGURATION.getCreateDisposition()); assertEquals(WRITE_DISPOSITION, COPY_JOB_CONFIGURATION.getWriteDisposition()); assertEquals(LABELS, COPY_JOB_CONFIGURATION.getLabels()); + assertEquals(TIMEOUT, COPY_JOB_CONFIGURATION.getJobTimeoutMs()); } @Test @@ -113,6 +117,7 @@ public void testToPbAndFromPb() { assertNull(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.toPb().getCopy().getSourceTable()); assertNotNull(COPY_JOB_CONFIGURATION.getLabels()); assertNotNull(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getLabels()); + assertNotNull(COPY_JOB_CONFIGURATION.getJobTimeoutMs()); compareCopyJobConfiguration( COPY_JOB_CONFIGURATION, CopyJobConfiguration.fromPb(COPY_JOB_CONFIGURATION.toPb())); compareCopyJobConfiguration( @@ -176,5 +181,6 @@ private void compareCopyJobConfiguration( expected.getDestinationEncryptionConfiguration(), value.getDestinationEncryptionConfiguration()); assertEquals(expected.getLabels(), value.getLabels()); + assertEquals(expected.getJobTimeoutMs(), value.getJobTimeoutMs()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java index 8a1a650372e0..648fa58a4d82 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java @@ -41,6 +41,7 @@ public class ExtractJobConfigurationTest { private static final Boolean USEAVROLOGICALTYPES = true; private static final Map LABELS = ImmutableMap.of("test-job-name", "test-extract-job"); + private static final Long TIMEOUT = 10L; private static final ExtractJobConfiguration EXTRACT_CONFIGURATION = ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URIS) .setPrintHeader(PRINT_HEADER) @@ -48,6 +49,7 @@ public class ExtractJobConfigurationTest { .setCompression(COMPRESSION) .setFormat(FORMAT) .setLabels(LABELS) + .setJobTimeoutMs(TIMEOUT) .build(); private static final ExtractJobConfiguration EXTRACT_CONFIGURATION_ONE_URI = ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URI) @@ -56,6 +58,7 @@ public class ExtractJobConfigurationTest { .setCompression(COMPRESSION) .setFormat(FORMAT) .setLabels(LABELS) + .setJobTimeoutMs(TIMEOUT) .build(); private static final ExtractJobConfiguration EXTRACT_CONFIGURATION_AVRO = ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URI) @@ -65,6 +68,7 @@ public class ExtractJobConfigurationTest { .setFormat(AVRO_FORMAT) .setUseAvroLogicalTypes(USEAVROLOGICALTYPES) .setLabels(LABELS) + .setJobTimeoutMs(TIMEOUT) .build(); @Test @@ -121,6 +125,7 @@ public void testBuilder() { assertEquals(PRINT_HEADER, EXTRACT_CONFIGURATION.printHeader()); assertEquals(FORMAT, EXTRACT_CONFIGURATION.getFormat()); assertEquals(LABELS, EXTRACT_CONFIGURATION.getLabels()); + assertEquals(TIMEOUT, EXTRACT_CONFIGURATION.getJobTimeoutMs()); assertEquals(TABLE_ID, EXTRACT_CONFIGURATION_ONE_URI.getSourceTable()); assertEquals( ImmutableList.of(DESTINATION_URI), EXTRACT_CONFIGURATION_ONE_URI.getDestinationUris()); @@ -129,6 +134,7 @@ public void testBuilder() { assertEquals(PRINT_HEADER, EXTRACT_CONFIGURATION_ONE_URI.printHeader()); assertEquals(FORMAT, EXTRACT_CONFIGURATION_ONE_URI.getFormat()); assertEquals(LABELS, EXTRACT_CONFIGURATION_ONE_URI.getLabels()); + assertEquals(TIMEOUT, EXTRACT_CONFIGURATION_ONE_URI.getJobTimeoutMs()); assertEquals( ImmutableList.of(DESTINATION_URI), EXTRACT_CONFIGURATION_AVRO.getDestinationUris()); assertEquals(FIELD_DELIMITER, EXTRACT_CONFIGURATION_AVRO.getFieldDelimiter()); @@ -137,6 +143,7 @@ public void testBuilder() { assertEquals(AVRO_FORMAT, EXTRACT_CONFIGURATION_AVRO.getFormat()); assertEquals(USEAVROLOGICALTYPES, EXTRACT_CONFIGURATION_AVRO.getUseAvroLogicalTypes()); assertEquals(LABELS, EXTRACT_CONFIGURATION_AVRO.getLabels()); + assertEquals(TIMEOUT, EXTRACT_CONFIGURATION_AVRO.getJobTimeoutMs()); } @Test @@ -146,6 +153,7 @@ public void testToPbAndFromPb() { assertNull(EXTRACT_CONFIGURATION.toPb().getLoad()); assertNull(EXTRACT_CONFIGURATION.toPb().getQuery()); assertNotNull(EXTRACT_CONFIGURATION.toPb().getLabels()); + assertNotNull(EXTRACT_CONFIGURATION.toPb().getJobTimeoutMs()); compareExtractJobConfiguration( EXTRACT_CONFIGURATION, ExtractJobConfiguration.fromPb(EXTRACT_CONFIGURATION.toPb())); compareExtractJobConfiguration( @@ -194,5 +202,6 @@ private void compareExtractJobConfiguration( assertEquals(expected.getFieldDelimiter(), value.getFieldDelimiter()); assertEquals(expected.getFormat(), value.getFormat()); assertEquals(expected.getLabels(), value.getLabels()); + assertEquals(expected.getJobTimeoutMs(), value.getJobTimeoutMs()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index ab0c59ab4c61..3ef06a4027d6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -62,6 +62,7 @@ public class LoadJobConfigurationTest { Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); private static final Map LABELS = ImmutableMap.of("test-job-name", "test-load-job"); + private static final Long TIMEOUT = 10L; private static final LoadJobConfiguration LOAD_CONFIGURATION_CSV = LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) .setCreateDisposition(CREATE_DISPOSITION) @@ -76,6 +77,7 @@ public class LoadJobConfigurationTest { .setTimePartitioning(TIME_PARTITIONING) .setClustering(CLUSTERING) .setLabels(LABELS) + .setJobTimeoutMs(TIMEOUT) .build(); private static final DatastoreBackupOptions BACKUP_OPTIONS = DatastoreBackupOptions.newBuilder() @@ -92,6 +94,7 @@ public class LoadJobConfigurationTest { .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) .setAutodetect(AUTODETECT) .setLabels(LABELS) + .setJobTimeoutMs(TIMEOUT) .build(); private static final LoadJobConfiguration LOAD_CONFIGURATION_AVRO = LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) @@ -108,6 +111,7 @@ public class LoadJobConfigurationTest { .setClustering(CLUSTERING) .setUseAvroLogicalTypes(USERAVROLOGICALTYPES) .setLabels(LABELS) + .setJobTimeoutMs(TIMEOUT) .build(); @Test @@ -224,5 +228,6 @@ private void compareLoadJobConfiguration( assertEquals(expected.getClustering(), value.getClustering()); assertEquals(expected.getUseAvroLogicalTypes(), value.getUseAvroLogicalTypes()); assertEquals(expected.getLabels(), value.getLabels()); + assertEquals(expected.getJobTimeoutMs(), value.getJobTimeoutMs()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index dee9c7ebcf65..165243cf86f2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -83,6 +83,7 @@ public class QueryJobConfigurationTest { private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY); private static final Clustering CLUSTERING = Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); + private static final Long TIMEOUT = 10L; private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -102,6 +103,7 @@ public class QueryJobConfigurationTest { .setDestinationEncryptionConfiguration(JOB_ENCRYPTION_CONFIGURATION) .setTimePartitioning(TIME_PARTITIONING) .setClustering(CLUSTERING) + .setJobTimeoutMs(TIMEOUT) .build(); @Test @@ -133,6 +135,7 @@ public void testToPbAndFromPb() { assertNull(QUERY_JOB_CONFIGURATION.toPb().getExtract()); assertNull(QUERY_JOB_CONFIGURATION.toPb().getCopy()); assertNull(QUERY_JOB_CONFIGURATION.toPb().getLoad()); + assertNotNull(QUERY_JOB_CONFIGURATION.getJobTimeoutMs()); compareQueryJobConfiguration( QUERY_JOB_CONFIGURATION, QueryJobConfiguration.fromPb(QUERY_JOB_CONFIGURATION.toPb())); QueryJobConfiguration job = QueryJobConfiguration.of(QUERY); @@ -188,5 +191,6 @@ private void compareQueryJobConfiguration( value.getDestinationEncryptionConfiguration()); assertEquals(expected.getTimePartitioning(), value.getTimePartitioning()); assertEquals(expected.getClustering(), value.getClustering()); + assertEquals(expected.getJobTimeoutMs(), value.getJobTimeoutMs()); } } From 6a1c5fac3a48255f69c4ef4d0826a40bab8ec138 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 15 Oct 2019 10:52:16 +0530 Subject: [PATCH 0220/3441] expose labels (#6407) --- .../cloud/bigquery/QueryJobConfiguration.java | 35 +++++++++++++++++-- .../bigquery/QueryJobConfigurationTest.java | 5 +++ .../cloud/bigquery/it/ITBigQueryTest.java | 19 ++++++++++ 3 files changed, 57 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index d4a33d336a1b..a49702e8c30a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -66,6 +66,7 @@ public final class QueryJobConfiguration extends JobConfiguration { private final TimePartitioning timePartitioning; private final Clustering clustering; private final Long jobTimeoutMs; + private final Map labels; /** * Priority levels for a query. If not specified the priority is assumed to be {@link @@ -112,6 +113,7 @@ public static final class Builder private TimePartitioning timePartitioning; private Clustering clustering; private Long jobTimeoutMs; + private Map labels; private Builder() { super(Type.QUERY); @@ -141,6 +143,7 @@ private Builder(QueryJobConfiguration jobConfiguration) { this.timePartitioning = jobConfiguration.timePartitioning; this.clustering = jobConfiguration.clustering; this.jobTimeoutMs = jobConfiguration.jobTimeoutMs; + this.labels = jobConfiguration.labels; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -227,6 +230,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (configurationPb.getJobTimeoutMs() != null) { this.jobTimeoutMs = configurationPb.getJobTimeoutMs(); } + if (configurationPb.getLabels() != null) { + this.labels = configurationPb.getLabels(); + } } /** Sets the BigQuery SQL query to execute. */ @@ -541,6 +547,20 @@ public Builder setJobTimeoutMs(Long jobTimeoutMs) { return this; } + /** + * The labels associated with this job. You can use these to organize and group your jobs. Label + * keys and values can be no longer than 63 characters, can only contain lowercase letters, + * numeric characters, underscores and dashes. International characters are allowed. Label + * values are optional. Label keys must start with a letter and each label in the list must have + * a different key. + * + * @param labels labels or {@code null} for none + */ + public Builder setLabels(Map labels) { + this.labels = labels; + return this; + } + public QueryJobConfiguration build() { return new QueryJobConfiguration(this); } @@ -579,6 +599,7 @@ private QueryJobConfiguration(Builder builder) { this.timePartitioning = builder.timePartitioning; this.clustering = builder.clustering; this.jobTimeoutMs = builder.jobTimeoutMs; + this.labels = builder.labels; } /** @@ -753,6 +774,11 @@ public Long getJobTimeoutMs() { return jobTimeoutMs; } + /** Returns the labels associated with this job */ + public Map getLabels() { + return labels; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -782,7 +808,8 @@ ToStringHelper toStringHelper() { .add("schemaUpdateOptions", schemaUpdateOptions) .add("timePartitioning", timePartitioning) .add("clustering", clustering) - .add("jobTimeoutMs", jobTimeoutMs); + .add("jobTimeoutMs", jobTimeoutMs) + .add("labels", labels); } @Override @@ -815,7 +842,8 @@ public int hashCode() { schemaUpdateOptions, timePartitioning, clustering, - jobTimeoutMs); + jobTimeoutMs, + labels); } @Override @@ -908,6 +936,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (jobTimeoutMs != null) { configurationPb.setJobTimeoutMs(jobTimeoutMs); } + if (labels != null) { + configurationPb.setLabels(labels); + } configurationPb.setQuery(queryConfigurationPb); return configurationPb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index 165243cf86f2..5fdd9ab14891 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -84,6 +84,8 @@ public class QueryJobConfigurationTest { private static final Clustering CLUSTERING = Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); private static final Long TIMEOUT = 10L; + private static final Map LABELS = + ImmutableMap.of("test-job-name", "test-query-job"); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -104,6 +106,7 @@ public class QueryJobConfigurationTest { .setTimePartitioning(TIME_PARTITIONING) .setClustering(CLUSTERING) .setJobTimeoutMs(TIMEOUT) + .setLabels(LABELS) .build(); @Test @@ -136,6 +139,7 @@ public void testToPbAndFromPb() { assertNull(QUERY_JOB_CONFIGURATION.toPb().getCopy()); assertNull(QUERY_JOB_CONFIGURATION.toPb().getLoad()); assertNotNull(QUERY_JOB_CONFIGURATION.getJobTimeoutMs()); + assertNotNull(QUERY_JOB_CONFIGURATION.getLabels()); compareQueryJobConfiguration( QUERY_JOB_CONFIGURATION, QueryJobConfiguration.fromPb(QUERY_JOB_CONFIGURATION.toPb())); QueryJobConfiguration job = QueryJobConfiguration.of(QUERY); @@ -192,5 +196,6 @@ private void compareQueryJobConfiguration( assertEquals(expected.getTimePartitioning(), value.getTimePartitioning()); assertEquals(expected.getClustering(), value.getClustering()); assertEquals(expected.getJobTimeoutMs(), value.getJobTimeoutMs()); + assertEquals(expected.getLabels(), value.getLabels()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index f6c40ed008e9..e84d9b5ec3b4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1540,6 +1540,25 @@ public void testQueryJob() throws InterruptedException, TimeoutException { assertNotNull(statistics.getQueryPlan()); } + @Test + public void testQueryJobWithLabels() throws InterruptedException, TimeoutException { + String tableName = "test_query_job_table"; + String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); + Map labels = ImmutableMap.of("test-job-name", "test-query-job"); + TableId destinationTable = TableId.of(DATASET, tableName); + QueryJobConfiguration configuration = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setDestinationTable(destinationTable) + .setLabels(labels) + .build(); + Job remoteJob = bigquery.create(JobInfo.of(configuration)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + QueryJobConfiguration queryJobConfiguration = remoteJob.getConfiguration(); + assertEquals(labels, queryJobConfiguration.getLabels()); + } + @Test public void testQueryJobWithDryRun() throws InterruptedException, TimeoutException { String tableName = "test_query_job_table"; From ed29f0ba2cbb8997998b955d054e30d97ec5a717 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 17 Oct 2019 07:37:39 -0700 Subject: [PATCH 0221/3441] Release v0.116.0 (#6518) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index d36bf7cd9358..da01d12d0f9a 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.97.0 + 1.98.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.97.0' +compile 'com.google.cloud:google-cloud-bigquery:1.98.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.97.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.98.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 579af42c31a2..39ab084309d6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.97.1-SNAPSHOT + 1.98.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.115.1-alpha-SNAPSHOT + 0.116.0-alpha google-cloud-bigquery From fbb6c9975f0ef34766e5096daa75077dd1572dad Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Thu, 17 Oct 2019 16:36:54 -0400 Subject: [PATCH 0222/3441] Bump next snapshot (#6525) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 39ab084309d6..79bada2df0fe 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.98.0 + 1.98.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.116.0-alpha + 0.116.1-alpha-SNAPSHOT google-cloud-bigquery From 71867141cf8cb93a4e0033184bdf8a63dba7a35c Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 21 Oct 2019 10:46:38 +0530 Subject: [PATCH 0223/3441] Bigquery: Fix defaultPartitionExpirationMs for Dataset. (#6445) * added partitionexpiration * fix javadocs --- .../com/google/cloud/bigquery/Dataset.java | 6 ++++ .../google/cloud/bigquery/DatasetInfo.java | 33 +++++++++++++++++++ .../cloud/bigquery/DatasetInfoTest.java | 7 ++++ 3 files changed, 46 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java index 49d12a6e6798..05a7e85662ce 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java @@ -139,6 +139,12 @@ public Builder setDefaultEncryptionConfiguration( return this; } + @Override + public Builder setDefaultPartitionExpirationMs(Long defaultPartitionExpirationMs) { + infoBuilder.setDefaultPartitionExpirationMs(defaultPartitionExpirationMs); + return this; + } + @Override public Dataset build() { return new Dataset(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java index 845406006d16..dbd71d828987 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java @@ -70,6 +70,7 @@ public Dataset apply(DatasetInfo datasetInfo) { private final String selfLink; private final Labels labels; private final EncryptionConfiguration defaultEncryptionConfiguration; + private final Long defaultPartitionExpirationMs; /** A builder for {@code DatasetInfo} objects. */ public abstract static class Builder { @@ -132,6 +133,20 @@ public abstract static class Builder { public abstract Builder setDefaultEncryptionConfiguration( EncryptionConfiguration defaultEncryptionConfiguration); + /** + * [Optional] The default partition expiration time for all partitioned tables in the dataset, + * in milliseconds. Once this property is set, all newly-created partitioned tables in the + * dataset will has an expirationMs property in the timePartitioning settings set to this value. + * Changing the value only affect new tables, not existing ones. The storage in a partition will + * have an expiration time of its partition time plus this value. Setting this property + * overrides the use of defaultTableExpirationMs for partitioned tables: only one of + * defaultTableExpirationMs and defaultPartitionExpirationMs will be used for any new + * partitioned table. If you provide an explicit timePartitioning.expirationMs when creating or + * updating a partitioned table, that value takes precedence over the default partition + * expiration time indicated by this property. The value may be {@code null}. + */ + public abstract Builder setDefaultPartitionExpirationMs(Long defaultPartitionExpirationMs); + /** Creates a {@code DatasetInfo} object. */ public abstract DatasetInfo build(); } @@ -151,6 +166,7 @@ static final class BuilderImpl extends Builder { private String selfLink; private Labels labels = Labels.ZERO; private EncryptionConfiguration defaultEncryptionConfiguration; + private Long defaultPartitionExpirationMs; BuilderImpl() {} @@ -168,6 +184,7 @@ static final class BuilderImpl extends Builder { this.selfLink = datasetInfo.selfLink; this.labels = datasetInfo.labels; this.defaultEncryptionConfiguration = datasetInfo.defaultEncryptionConfiguration; + this.defaultPartitionExpirationMs = datasetInfo.defaultPartitionExpirationMs; } BuilderImpl(com.google.api.services.bigquery.model.Dataset datasetPb) { @@ -200,6 +217,7 @@ public Acl apply(Dataset.Access accessPb) { new EncryptionConfiguration.Builder(datasetPb.getDefaultEncryptionConfiguration()) .build(); } + this.defaultPartitionExpirationMs = datasetPb.getDefaultPartitionExpirationMs(); } @Override @@ -288,6 +306,12 @@ public Builder setDefaultEncryptionConfiguration( return this; } + @Override + public Builder setDefaultPartitionExpirationMs(Long defaultPartitionExpirationMs) { + this.defaultPartitionExpirationMs = defaultPartitionExpirationMs; + return this; + } + @Override public DatasetInfo build() { return new DatasetInfo(this); @@ -308,6 +332,7 @@ public DatasetInfo build() { selfLink = builder.selfLink; labels = builder.labels; defaultEncryptionConfiguration = builder.defaultEncryptionConfiguration; + defaultPartitionExpirationMs = builder.defaultPartitionExpirationMs; } /** Returns the dataset identity. */ @@ -429,6 +454,10 @@ public EncryptionConfiguration getDefaultEncryptionConfiguration() { return defaultEncryptionConfiguration; } + public Long getDefaultPartitionExpirationMs() { + return defaultPartitionExpirationMs; + } + /** Returns a builder for the dataset object. */ public Builder toBuilder() { return new BuilderImpl(this); @@ -450,6 +479,7 @@ public String toString() { .add("acl", acl) .add("labels", labels) .add("defaultEncryptionConfiguration", defaultEncryptionConfiguration) + .add("defaultPartitionExpirationMs", defaultPartitionExpirationMs) .toString(); } @@ -515,6 +545,9 @@ public Dataset.Access apply(Acl acl) { if (defaultEncryptionConfiguration != null) { datasetPb.setDefaultEncryptionConfiguration(defaultEncryptionConfiguration.toPb()); } + if (defaultPartitionExpirationMs != null) { + datasetPb.setDefaultPartitionExpirationMs(defaultPartitionExpirationMs); + } return datasetPb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java index 246deee9f418..42134d252d8c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -42,6 +42,7 @@ public class DatasetInfoTest { "example-label2", "example-value2"); private static final Long CREATION_TIME = System.currentTimeMillis(); private static final Long DEFAULT_TABLE_EXPIRATION = CREATION_TIME + 100; + private static final Long DEFAULT_PARTITION__EXPIRATION = CREATION_TIME + 86400; private static final String DESCRIPTION = "description"; private static final String ETAG = "0xFF00"; private static final String FRIENDLY_NAME = "friendlyDataset"; @@ -67,6 +68,7 @@ public class DatasetInfoTest { .setSelfLink(SELF_LINK) .setLabels(LABELS) .setDefaultEncryptionConfiguration(DATASET_ENCRYPTION_CONFIGURATION) + .setDefaultPartitionExpirationMs(DEFAULT_PARTITION__EXPIRATION) .build(); private static final DatasetInfo DATASET_INFO_COMPLETE = DATASET_INFO @@ -113,6 +115,7 @@ public void testBuilder() { assertEquals(SELF_LINK, DATASET_INFO.getSelfLink()); assertEquals( DATASET_ENCRYPTION_CONFIGURATION, DATASET_INFO.getDefaultEncryptionConfiguration()); + assertEquals(DEFAULT_PARTITION__EXPIRATION, DATASET_INFO.getDefaultPartitionExpirationMs()); assertEquals(DATASET_ID_COMPLETE, DATASET_INFO_COMPLETE.getDatasetId()); assertEquals(ACCESS_RULES_COMPLETE, DATASET_INFO_COMPLETE.getAcl()); assertEquals(CREATION_TIME, DATASET_INFO_COMPLETE.getCreationTime()); @@ -142,6 +145,7 @@ public void testOf() { assertNull(datasetInfo.getLocation()); assertNull(datasetInfo.getSelfLink()); assertNull(datasetInfo.getDefaultEncryptionConfiguration()); + assertNull(datasetInfo.getDefaultPartitionExpirationMs()); assertTrue(datasetInfo.getLabels().isEmpty()); datasetInfo = DatasetInfo.of(DATASET_ID); @@ -157,6 +161,7 @@ public void testOf() { assertNull(datasetInfo.getLocation()); assertNull(datasetInfo.getSelfLink()); assertNull(datasetInfo.getDefaultEncryptionConfiguration()); + assertNull(datasetInfo.getDefaultPartitionExpirationMs()); assertTrue(datasetInfo.getLabels().isEmpty()); } @@ -188,5 +193,7 @@ private void compareDatasets(DatasetInfo expected, DatasetInfo value) { assertEquals(expected.getLabels(), value.getLabels()); assertEquals( expected.getDefaultEncryptionConfiguration(), value.getDefaultEncryptionConfiguration()); + assertEquals( + expected.getDefaultPartitionExpirationMs(), value.getDefaultPartitionExpirationMs()); } } From d00a3c9d0a07bfec6b5cda53791064e7baf59ca0 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 21 Oct 2019 10:48:10 +0530 Subject: [PATCH 0224/3441] Bigquery: Fix bug for sourceFormat Bigtable ExternalTableDefinition. (#6427) * expose public properties of builder * added public build method * expose private to public newBuilder method * fix fromPb() method when option is null * added of() and newBuilder() method for Bigtable * fix javadocs and condition --- .../google/cloud/bigquery/BigtableColumn.java | 3 +- .../cloud/bigquery/BigtableColumnFamily.java | 3 +- .../cloud/bigquery/BigtableOptions.java | 23 ++++++++---- .../bigquery/ExternalTableDefinition.java | 37 +++++++++++++++++++ 4 files changed, 57 insertions(+), 9 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java index 5f910c433874..eadebfb94630 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java @@ -93,7 +93,8 @@ public abstract static class Builder { public abstract BigtableColumn build(); } - static Builder newBuilder() { + /** Returns a builder for a {@link BigtableColumn} object. */ + public static Builder newBuilder() { return new AutoValue_BigtableColumn.Builder(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java index c0e3241355f6..677ea971d1f0 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java @@ -90,7 +90,8 @@ public abstract static class Builder { public abstract BigtableColumnFamily build(); } - static Builder newBuilder() { + /** Returns a builder for a {@link BigtableColumnFamily} object. */ + public static Builder newBuilder() { return new AutoValue_BigtableColumnFamily.Builder(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java index aafca84bc034..30f258e121e9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java @@ -40,7 +40,8 @@ public List getColumnFamilies() { return columnFamilies; } - static final class Builder { + /** A builder for {@code BigtableOptions} objects. */ + public static final class Builder { private Boolean ignoreUnspecifiedColumnFamilies; private Boolean readRowkeyAsString; @@ -59,7 +60,7 @@ private Builder(BigtableOptions bigtableOptions) { * not exposed in the table schema. Otherwise, they are read with BYTES type values. The default * value is false. */ - Builder setIgnoreUnspecifiedColumnFamilies(Boolean ignoreUnspecifiedColumnFamilies) { + public Builder setIgnoreUnspecifiedColumnFamilies(Boolean ignoreUnspecifiedColumnFamilies) { this.ignoreUnspecifiedColumnFamilies = ignoreUnspecifiedColumnFamilies; return this; } @@ -69,7 +70,7 @@ Builder setIgnoreUnspecifiedColumnFamilies(Boolean ignoreUnspecifiedColumnFamili * string. Otherwise they are read with BYTES type values and users need to manually cast them * with CAST if necessary. The default value is false. */ - Builder setReadRowkeyAsString(Boolean readRowkeyAsString) { + public Builder setReadRowkeyAsString(Boolean readRowkeyAsString) { this.readRowkeyAsString = readRowkeyAsString; return this; } @@ -83,16 +84,21 @@ Builder setReadRowkeyAsString(Boolean readRowkeyAsString) { * schema and their values are read as BYTES. During a query only the column families referenced * in that query are read from Bigtable. */ - Builder setColumnFamilies(List columnFamilies) { + public Builder setColumnFamilies(List columnFamilies) { this.columnFamilies = columnFamilies; return this; } - BigtableOptions build() { + public BigtableOptions build() { return new BigtableOptions(this); } } + /** Returns a builder for the {@link BigtableOptions} object. */ + public Builder toBuilder() { + return new Builder(this); + } + BigtableOptions(Builder builder) { super(FormatOptions.BIGTABLE); ignoreUnspecifiedColumnFamilies = builder.ignoreUnspecifiedColumnFamilies; @@ -128,6 +134,7 @@ public final boolean equals(Object obj) { && Objects.equals(columnFamilies, other.columnFamilies); } + /** Returns a builder for a {@link BigtableOptions} object. */ public static Builder newBuilder() { return new Builder(); } @@ -136,8 +143,10 @@ static BigtableOptions fromPb(com.google.api.services.bigquery.model.BigtableOpt Builder builder = newBuilder(); builder.setIgnoreUnspecifiedColumnFamilies(options.getIgnoreUnspecifiedColumnFamilies()); builder.setReadRowkeyAsString(options.getReadRowkeyAsString()); - builder.setColumnFamilies( - Lists.transform(options.getColumnFamilies(), BigtableColumnFamily.FROM_PB_FUNCTION)); + if (options.getColumnFamilies() != null) { + builder.setColumnFamilies( + Lists.transform(options.getColumnFamilies(), BigtableColumnFamily.FROM_PB_FUNCTION)); + } return builder.build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index d61e6a330140..ecfb49b09b30 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -302,6 +302,25 @@ public static Builder newBuilder(String sourceUri, Schema schema, FormatOptions return newBuilder(ImmutableList.of(sourceUri), schema, format); } + /** + * Creates a builder for an ExternalTableDefinition object. + * + * @param sourceUri the fully-qualified URIs that point to your data in Google Cloud. For Google + * Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and + * valid HTTPS URL for a Google Cloud Bigtable table. Size limits related to load jobs apply + * to external data sources, plus an additional limit of 10 GB maximum size across all URIs. + * @param format the source format of the external data + * @return a builder for an ExternalTableDefinition object given source URIs and format + * @see Quota + * @see + * Source Format + */ + public static Builder newBuilder(String sourceUri, FormatOptions format) { + checkArgument(!isNullOrEmpty(sourceUri), "Provided sourceUri is null or empty"); + return newBuilder().setSourceUris(ImmutableList.of(sourceUri)).setFormatOptions(format); + } + /** * Creates an ExternalTableDefinition object. * @@ -340,6 +359,24 @@ public static ExternalTableDefinition of(String sourceUri, Schema schema, Format return newBuilder(sourceUri, schema, format).build(); } + /** + * Creates a builder for an ExternalTableDefinition object. + * + * @param sourceUri the fully-qualified URIs that point to your data in Google Cloud. For Google + * Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and + * valid HTTPS URL for a Google Cloud Bigtable table. Size limits related to load jobs apply + * to external data sources, plus an additional limit of 10 GB maximum size across all URIs. + * @param format the source format of the external data + * @return a builder for an ExternalTableDefinition object given source URIs and format + * @see Quota + * @see + * Source Format + */ + public static ExternalTableDefinition of(String sourceUri, FormatOptions format) { + return newBuilder(sourceUri, format).build(); + } + @SuppressWarnings("unchecked") static ExternalTableDefinition fromPb(Table tablePb) { Builder builder = newBuilder().table(tablePb); From ca6c957b1c23e6f930feb3a41815a770740596b4 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 31 Oct 2019 08:34:14 -0700 Subject: [PATCH 0225/3441] Release v0.117.0 (#6664) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index da01d12d0f9a..e44436311b0a 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.98.0 + 1.99.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.98.0' +compile 'com.google.cloud:google-cloud-bigquery:1.99.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.98.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.99.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 79bada2df0fe..9098c0f35e2e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.98.1-SNAPSHOT + 1.99.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.116.1-alpha-SNAPSHOT + 0.117.0-alpha google-cloud-bigquery From ef76789339d7b1f1d0652ec2062f8cb05345c66c Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Mon, 4 Nov 2019 11:39:14 -0800 Subject: [PATCH 0226/3441] Bump next snapshot (#6674) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9098c0f35e2e..a687546c37fa 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.99.0 + 1.99.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.117.0-alpha + 0.117.1-alpha-SNAPSHOT google-cloud-bigquery From 368d310cdd97aebbb8668403fb85c3dbf3769939 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 6 Nov 2019 09:47:55 +0530 Subject: [PATCH 0227/3441] fix bug timestamp microsecond loses (#6521) --- .../cloud/bigquery/QueryParameterValue.java | 5 ++- .../bigquery/QueryParameterValueTest.java | 40 +++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index f137f7ab53c1..732f189eb5dd 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -23,6 +23,7 @@ import com.google.api.services.bigquery.model.QueryParameterType; import com.google.auto.value.AutoValue; +import com.google.cloud.Timestamp; import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; @@ -332,7 +333,9 @@ private static String valueToStringOrNull(T value, StandardSQLTypeName type) throw new IllegalArgumentException("Cannot convert ARRAY to String value"); case TIMESTAMP: if (value instanceof Long) { - return timestampFormatter.format(Instant.ofEpochMilli(((Long) value) / 1000)); + Timestamp timestamp = Timestamp.ofTimeMicroseconds((Long) value); + return timestampFormatter.format( + Instant.ofEpochSecond(timestamp.getSeconds(), timestamp.getNanos())); } else if (value instanceof String) { // verify that the String is in the right format checkFormat(value, timestampValidator); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index 44b7d8138a52..0e6b9cc9d2de 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -17,6 +17,10 @@ package com.google.cloud.bigquery; import static com.google.common.truth.Truth.assertThat; +import static org.threeten.bp.temporal.ChronoField.HOUR_OF_DAY; +import static org.threeten.bp.temporal.ChronoField.MINUTE_OF_HOUR; +import static org.threeten.bp.temporal.ChronoField.NANO_OF_SECOND; +import static org.threeten.bp.temporal.ChronoField.SECOND_OF_MINUTE; import com.google.api.services.bigquery.model.QueryParameterType; import java.math.BigDecimal; @@ -24,9 +28,33 @@ import java.util.Date; import java.util.List; import org.junit.Test; +import org.threeten.bp.Instant; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.format.DateTimeFormatter; +import org.threeten.bp.format.DateTimeFormatterBuilder; +import org.threeten.bp.jdk8.Jdk8Methods; public class QueryParameterValueTest { + private static final DateTimeFormatter TIMESTAMPFORMATTER = + new DateTimeFormatterBuilder() + .parseLenient() + .append(DateTimeFormatter.ISO_LOCAL_DATE) + .appendLiteral(' ') + .appendValue(HOUR_OF_DAY, 2) + .appendLiteral(':') + .appendValue(MINUTE_OF_HOUR, 2) + .optionalStart() + .appendLiteral(':') + .appendValue(SECOND_OF_MINUTE, 2) + .optionalStart() + .appendFraction(NANO_OF_SECOND, 6, 9, true) + .optionalStart() + .appendOffset("+HHMM", "+00:00") + .optionalEnd() + .toFormatter() + .withZone(ZoneOffset.UTC); + @Test public void testBool() { QueryParameterValue value = QueryParameterValue.bool(true); @@ -182,6 +210,18 @@ public void testTimestampFromLong() { assertThat(value.getArrayValues()).isNull(); } + @Test + public void testTimestampWithFormatter() { + long timestampInMicroseconds = 1571068536842L * 1000 + 123; + long microseconds = 1_000_000; + long secs = Jdk8Methods.floorDiv(timestampInMicroseconds, microseconds); + int nano = (int) Jdk8Methods.floorMod(timestampInMicroseconds, microseconds) * 1000; + Instant instant = Instant.ofEpochSecond(secs, nano); + String expected = TIMESTAMPFORMATTER.format(instant); + assertThat(expected) + .isEqualTo(QueryParameterValue.timestamp(timestampInMicroseconds).getValue()); + } + @Test public void testTimestamp() { QueryParameterValue value = QueryParameterValue.timestamp("2014-08-19 12:41:35.220000+00:00"); From 37b41e56e4ac7ea90c39dd78fe38ab7f8f86266d Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 6 Nov 2019 10:36:22 +0530 Subject: [PATCH 0228/3441] Bigquery: add range partitioning to tables, load jobs, and query jobs. (#6552) * added RangePartitioning feature to LoadJobConfiguration * add range partitioning to tables, load job and query job * fix javadoc --- .../cloud/bigquery/LoadJobConfiguration.java | 30 ++- .../cloud/bigquery/QueryJobConfiguration.java | 33 ++- .../cloud/bigquery/RangePartitioning.java | 241 ++++++++++++++++++ .../bigquery/StandardTableDefinition.java | 19 ++ .../bigquery/LoadJobConfigurationTest.java | 9 + .../bigquery/QueryJobConfigurationTest.java | 7 + .../cloud/bigquery/it/ITBigQueryTest.java | 104 +++++++- 7 files changed, 429 insertions(+), 14 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index 01593accbace..c68e3f3b9f56 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -53,6 +53,7 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private final Boolean useAvroLogicalTypes; private final Map labels; private final Long jobTimeoutMs; + private final RangePartitioning rangePartitioning; public static final class Builder extends JobConfiguration.Builder implements LoadConfiguration.Builder { @@ -75,6 +76,7 @@ public static final class Builder extends JobConfiguration.Builder labels; private Long jobTimeoutMs; + private RangePartitioning rangePartitioning; private Builder() { super(Type.LOAD); @@ -100,6 +102,7 @@ private Builder(LoadJobConfiguration loadConfiguration) { this.useAvroLogicalTypes = loadConfiguration.useAvroLogicalTypes; this.labels = loadConfiguration.labels; this.jobTimeoutMs = loadConfiguration.jobTimeoutMs; + this.rangePartitioning = loadConfiguration.rangePartitioning; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -179,6 +182,10 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (configurationPb.getJobTimeoutMs() != null) { this.jobTimeoutMs = configurationPb.getJobTimeoutMs(); } + if (loadConfigurationPb.getRangePartitioning() != null) { + this.rangePartitioning = + RangePartitioning.fromPb(loadConfigurationPb.getRangePartitioning()); + } } @Override @@ -301,6 +308,17 @@ public Builder setJobTimeoutMs(Long jobTimeoutMs) { return this; } + /** + * Range partitioning specification for this table. Only one of timePartitioning and + * rangePartitioning should be specified. + * + * @param rangePartitioning rangePartitioning or {@code null} for none + */ + public Builder setRangePartitioning(RangePartitioning rangePartitioning) { + this.rangePartitioning = rangePartitioning; + return this; + } + @Override public LoadJobConfiguration build() { return new LoadJobConfiguration(this); @@ -326,6 +344,7 @@ private LoadJobConfiguration(Builder builder) { this.useAvroLogicalTypes = builder.useAvroLogicalTypes; this.labels = builder.labels; this.jobTimeoutMs = builder.jobTimeoutMs; + this.rangePartitioning = builder.rangePartitioning; } @Override @@ -428,6 +447,11 @@ public Long getJobTimeoutMs() { return jobTimeoutMs; } + /** Returns the range partitioning specification for the table */ + public RangePartitioning getRangePartitioning() { + return rangePartitioning; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -452,7 +476,8 @@ ToStringHelper toStringHelper() { .add("clustering", clustering) .add("useAvroLogicalTypes", useAvroLogicalTypes) .add("labels", labels) - .add("jobTimeoutMs", jobTimeoutMs); + .add("jobTimeoutMs", jobTimeoutMs) + .add("rangePartitioning", rangePartitioning); } @Override @@ -542,6 +567,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (jobTimeoutMs != null) { jobConfiguration.setJobTimeoutMs(jobTimeoutMs); } + if (rangePartitioning != null) { + loadConfigurationPb.setRangePartitioning(rangePartitioning.toPb()); + } jobConfiguration.setLoad(loadConfigurationPb); return jobConfiguration; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index a49702e8c30a..2c1a9a43bae1 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -67,6 +67,7 @@ public final class QueryJobConfiguration extends JobConfiguration { private final Clustering clustering; private final Long jobTimeoutMs; private final Map labels; + private final RangePartitioning rangePartitioning; /** * Priority levels for a query. If not specified the priority is assumed to be {@link @@ -114,6 +115,7 @@ public static final class Builder private Clustering clustering; private Long jobTimeoutMs; private Map labels; + private RangePartitioning rangePartitioning; private Builder() { super(Type.QUERY); @@ -144,6 +146,7 @@ private Builder(QueryJobConfiguration jobConfiguration) { this.clustering = jobConfiguration.clustering; this.jobTimeoutMs = jobConfiguration.jobTimeoutMs; this.labels = jobConfiguration.labels; + this.rangePartitioning = jobConfiguration.rangePartitioning; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -233,6 +236,10 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (configurationPb.getLabels() != null) { this.labels = configurationPb.getLabels(); } + if (queryConfigurationPb.getRangePartitioning() != null) { + this.rangePartitioning = + RangePartitioning.fromPb(queryConfigurationPb.getRangePartitioning()); + } } /** Sets the BigQuery SQL query to execute. */ @@ -561,6 +568,17 @@ public Builder setLabels(Map labels) { return this; } + /** + * Range partitioning specification for this table. Only one of timePartitioning and + * rangePartitioning should be specified. + * + * @param rangePartitioning rangePartitioning or {@code null} for none + */ + public Builder setRangePartitioning(RangePartitioning rangePartitioning) { + this.rangePartitioning = rangePartitioning; + return this; + } + public QueryJobConfiguration build() { return new QueryJobConfiguration(this); } @@ -600,6 +618,7 @@ private QueryJobConfiguration(Builder builder) { this.clustering = builder.clustering; this.jobTimeoutMs = builder.jobTimeoutMs; this.labels = builder.labels; + this.rangePartitioning = builder.rangePartitioning; } /** @@ -779,6 +798,11 @@ public Map getLabels() { return labels; } + /** Returns the range partitioning specification for the table */ + public RangePartitioning getRangePartitioning() { + return rangePartitioning; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -809,7 +833,8 @@ ToStringHelper toStringHelper() { .add("timePartitioning", timePartitioning) .add("clustering", clustering) .add("jobTimeoutMs", jobTimeoutMs) - .add("labels", labels); + .add("labels", labels) + .add("rangePartitioning", rangePartitioning); } @Override @@ -843,7 +868,8 @@ public int hashCode() { timePartitioning, clustering, jobTimeoutMs, - labels); + labels, + rangePartitioning); } @Override @@ -939,6 +965,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (labels != null) { configurationPb.setLabels(labels); } + if (rangePartitioning != null) { + queryConfigurationPb.setRangePartitioning(rangePartitioning.toPb()); + } configurationPb.setQuery(queryConfigurationPb); return configurationPb; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java new file mode 100644 index 000000000000..a8b1850766ce --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java @@ -0,0 +1,241 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Strings.isNullOrEmpty; + +import com.google.common.base.MoreObjects; +import com.google.common.base.Objects; +import java.io.Serializable; + +public final class RangePartitioning implements Serializable { + + private static final long serialVersionUID = 2011646901758026886L; + private final String field; + private final Range range; + + public static final class Range implements Serializable { + + private static final long serialVersionUID = -7603436109151103007L; + private final Long end; + private final Long interval; + private final Long start; + + private Range(Builder builder) { + this.end = builder.end; + this.interval = builder.interval; + this.start = builder.start; + } + + private Range(com.google.api.services.bigquery.model.RangePartitioning.Range range) { + this.end = range.getEnd(); + this.interval = range.getInterval(); + this.start = range.getStart(); + } + + /** A builder for {@code Range} objects. */ + public static final class Builder { + + private Long end; + private Long interval; + private Long start; + + private Builder() {} + + /** [Required] The end of range partitioning, exclusive. The value may be {@code null}. */ + public Builder setEnd(Long end) { + this.end = end; + return this; + } + + /** [Required] The width of each interval. The value may be {@code null}. */ + public Builder setInterval(Long interval) { + this.interval = interval; + return this; + } + + /** [Required] The start of range partitioning, inclusive. The value may be {@code null}. */ + public Builder setStart(Long start) { + this.start = start; + return this; + } + + /** Creates a {@code Range} object. */ + public Range build() { + return new Range(this); + } + } + + /** Returns the end of range partitioning. */ + public Long getEnd() { + return end; + } + + /** Returns the width of each interval. */ + public Long getInterval() { + return interval; + } + + /** Returns the start of range partitioning. */ + public Long getStart() { + return start; + } + + /** Returns a builder for a Range object. */ + public static Builder newBuilder() { + return new Builder(); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("end", end) + .add("interval", interval) + .add("start", start) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hashCode(end, interval, start); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(Range.class) + && java.util.Objects.equals(toPb(), ((Range) obj).toPb()); + } + + com.google.api.services.bigquery.model.RangePartitioning.Range toPb() { + com.google.api.services.bigquery.model.RangePartitioning.Range range = + new com.google.api.services.bigquery.model.RangePartitioning.Range(); + range.setEnd(end); + range.setInterval(interval); + range.setStart(start); + return range; + } + + static Range fromPb(com.google.api.services.bigquery.model.RangePartitioning.Range range) { + return new Range(range); + } + } + + /** A builder for {@code RangePartitioning} objects. */ + public static final class Builder { + + private String field; + private Range range; + + private Builder() {} + + private Builder(RangePartitioning rangePartitioning) { + this.field = rangePartitioning.field; + this.range = rangePartitioning.range; + } + + /** + * [Required] The table is partitioned by this field. The field must be a top- level + * NULLABLE/REQUIRED field. The only supported type is INTEGER/INT64. + * + * @param field field or {@code null} for none + */ + public Builder setField(String field) { + checkArgument(!isNullOrEmpty(field), "Provided field is null or empty"); + this.field = field; + return this; + } + + /** + * [Required] Defines the ranges for range partitioning. + * + * @param range range or {@code null} for none + */ + public Builder setRange(Range range) { + this.range = range; + return this; + } + + /** Creates a {@code RangePartitioning} object. */ + public RangePartitioning build() { + return new RangePartitioning(this); + } + } + + private RangePartitioning(Builder builder) { + this.field = builder.field; + this.range = builder.range; + } + + private RangePartitioning( + com.google.api.services.bigquery.model.RangePartitioning rangePartitioning) { + this.field = rangePartitioning.getField(); + this.range = Range.fromPb(rangePartitioning.getRange()); + } + + /** Returns the range partitioning field. */ + public String getField() { + return field; + } + + /** Returns the range of range partitioning. */ + public Range getRange() { + return range; + } + + /** Returns a builder for a RangePartitioning object */ + public static Builder newBuilder() { + return new Builder(); + } + + /** Returns a builder for the {@code RangePartitioning} object. */ + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("field", field).add("range", range).toString(); + } + + @Override + public int hashCode() { + return Objects.hashCode(field, range); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(RangePartitioning.class) + && java.util.Objects.equals(toPb(), ((RangePartitioning) obj).toPb()); + } + + com.google.api.services.bigquery.model.RangePartitioning toPb() { + com.google.api.services.bigquery.model.RangePartitioning rangePartitioning = + new com.google.api.services.bigquery.model.RangePartitioning(); + rangePartitioning.setField(field); + rangePartitioning.setRange(range.toPb()); + return rangePartitioning; + } + + static RangePartitioning fromPb( + com.google.api.services.bigquery.model.RangePartitioning rangePartitioning) { + return new RangePartitioning(rangePartitioning); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index 9b2ae343875f..64f911d90c13 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -149,6 +149,12 @@ public abstract static class Builder */ public abstract Builder setTimePartitioning(TimePartitioning timePartitioning); + /** + * Sets the range partitioning configuration for the table. Only one of timePartitioning and + * rangePartitioning should be specified. + */ + public abstract Builder setRangePartitioning(RangePartitioning rangePartitioning); + /** * Set the clustering configuration for the table. If not set, the table is not clustered. * Clustering is only available for partitioned tables. @@ -201,6 +207,13 @@ public abstract static class Builder @Nullable public abstract TimePartitioning getTimePartitioning(); + /** + * Returns the range partitioning configuration for this table. If {@code null}, the table is not + * range-partitioned. + */ + @Nullable + public abstract RangePartitioning getRangePartitioning(); + /** * Returns the clustering configuration for this table. If {@code null}, the table is not * clustered. @@ -240,6 +253,9 @@ Table toPb() { if (getTimePartitioning() != null) { tablePb.setTimePartitioning(getTimePartitioning().toPb()); } + if (getRangePartitioning() != null) { + tablePb.setRangePartitioning(getRangePartitioning().toPb()); + } if (getClustering() != null) { tablePb.setClustering(getClustering().toPb()); } @@ -258,6 +274,9 @@ static StandardTableDefinition fromPb(Table tablePb) { if (tablePb.getTimePartitioning() != null) { builder.setTimePartitioning(TimePartitioning.fromPb(tablePb.getTimePartitioning())); } + if (tablePb.getRangePartitioning() != null) { + builder.setRangePartitioning(RangePartitioning.fromPb(tablePb.getRangePartitioning())); + } if (tablePb.getClustering() != null) { builder.setClustering(Clustering.fromPb(tablePb.getClustering())); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index 3ef06a4027d6..b64e3c451419 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -63,6 +63,10 @@ public class LoadJobConfigurationTest { private static final Map LABELS = ImmutableMap.of("test-job-name", "test-load-job"); private static final Long TIMEOUT = 10L; + private static final RangePartitioning.Range RANGE = + RangePartitioning.Range.newBuilder().setStart(1L).setInterval(2L).setEnd(10L).build(); + private static final RangePartitioning RANGE_PARTITIONING = + RangePartitioning.newBuilder().setField("IntegerField").setRange(RANGE).build(); private static final LoadJobConfiguration LOAD_CONFIGURATION_CSV = LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) .setCreateDisposition(CREATE_DISPOSITION) @@ -78,7 +82,9 @@ public class LoadJobConfigurationTest { .setClustering(CLUSTERING) .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) + .setRangePartitioning(RANGE_PARTITIONING) .build(); + private static final DatastoreBackupOptions BACKUP_OPTIONS = DatastoreBackupOptions.newBuilder() .setProjectionFields(ImmutableList.of("field_1", "field_2")) @@ -95,6 +101,7 @@ public class LoadJobConfigurationTest { .setAutodetect(AUTODETECT) .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) + .setRangePartitioning(RANGE_PARTITIONING) .build(); private static final LoadJobConfiguration LOAD_CONFIGURATION_AVRO = LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) @@ -112,6 +119,7 @@ public class LoadJobConfigurationTest { .setUseAvroLogicalTypes(USERAVROLOGICALTYPES) .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) + .setRangePartitioning(RANGE_PARTITIONING) .build(); @Test @@ -229,5 +237,6 @@ private void compareLoadJobConfiguration( assertEquals(expected.getUseAvroLogicalTypes(), value.getUseAvroLogicalTypes()); assertEquals(expected.getLabels(), value.getLabels()); assertEquals(expected.getJobTimeoutMs(), value.getJobTimeoutMs()); + assertEquals(expected.getRangePartitioning(), value.getRangePartitioning()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index 5fdd9ab14891..b31312a345eb 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -86,6 +86,10 @@ public class QueryJobConfigurationTest { private static final Long TIMEOUT = 10L; private static final Map LABELS = ImmutableMap.of("test-job-name", "test-query-job"); + private static final RangePartitioning.Range RANGE = + RangePartitioning.Range.newBuilder().setStart(1L).setInterval(2L).setEnd(10L).build(); + private static final RangePartitioning RANGE_PARTITIONING = + RangePartitioning.newBuilder().setField("IntegerField").setRange(RANGE).build(); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -107,6 +111,7 @@ public class QueryJobConfigurationTest { .setClustering(CLUSTERING) .setJobTimeoutMs(TIMEOUT) .setLabels(LABELS) + .setRangePartitioning(RANGE_PARTITIONING) .build(); @Test @@ -140,6 +145,7 @@ public void testToPbAndFromPb() { assertNull(QUERY_JOB_CONFIGURATION.toPb().getLoad()); assertNotNull(QUERY_JOB_CONFIGURATION.getJobTimeoutMs()); assertNotNull(QUERY_JOB_CONFIGURATION.getLabels()); + assertNotNull(QUERY_JOB_CONFIGURATION.getRangePartitioning()); compareQueryJobConfiguration( QUERY_JOB_CONFIGURATION, QueryJobConfiguration.fromPb(QUERY_JOB_CONFIGURATION.toPb())); QueryJobConfiguration job = QueryJobConfiguration.of(QUERY); @@ -197,5 +203,6 @@ private void compareQueryJobConfiguration( assertEquals(expected.getClustering(), value.getClustering()); assertEquals(expected.getJobTimeoutMs(), value.getJobTimeoutMs()); assertEquals(expected.getLabels(), value.getLabels()); + assertEquals(expected.getRangePartitioning(), value.getRangePartitioning()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index e84d9b5ec3b4..7eb61773ff7e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -67,6 +67,7 @@ import com.google.cloud.bigquery.ModelInfo; import com.google.cloud.bigquery.QueryJobConfiguration; import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.RangePartitioning; import com.google.cloud.bigquery.Routine; import com.google.cloud.bigquery.RoutineArgument; import com.google.cloud.bigquery.RoutineId; @@ -215,6 +216,10 @@ public class ITBigQueryTest { Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) .setMode(Field.Mode.NULLABLE) .build()); + private static final RangePartitioning.Range RANGE = + RangePartitioning.Range.newBuilder().setStart(1L).setInterval(2L).setEnd(20L).build(); + private static final RangePartitioning RANGE_PARTITIONING = + RangePartitioning.newBuilder().setField("IntegerField").setRange(RANGE).build(); private static final String LOAD_FILE = "load.csv"; private static final String JSON_LOAD_FILE = "load.json"; private static final String EXTRACT_FILE = "extract.csv"; @@ -453,6 +458,30 @@ public void testGetNonExistingTable() { assertNull(bigquery.getTable(DATASET, "test_get_non_existing_table")); } + @Test + public void testCreateTableWithRangePartitioning() { + String tableName = "test_create_table_rangepartitioning"; + TableId tableId = TableId.of(DATASET, tableName); + try { + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setRangePartitioning(RANGE_PARTITIONING) + .build(); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertEquals( + RANGE, + remoteTable.getDefinition().getRangePartitioning().getRange()); + assertEquals( + RANGE_PARTITIONING, + remoteTable.getDefinition().getRangePartitioning()); + } finally { + bigquery.delete(tableId); + } + } + @Test public void testCreateAndGetTable() { String tableName = "test_create_and_get_table"; @@ -1546,17 +1575,70 @@ public void testQueryJobWithLabels() throws InterruptedException, TimeoutExcepti String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); Map labels = ImmutableMap.of("test-job-name", "test-query-job"); TableId destinationTable = TableId.of(DATASET, tableName); - QueryJobConfiguration configuration = - QueryJobConfiguration.newBuilder(query) - .setDefaultDataset(DatasetId.of(DATASET)) - .setDestinationTable(destinationTable) - .setLabels(labels) - .build(); - Job remoteJob = bigquery.create(JobInfo.of(configuration)); - remoteJob = remoteJob.waitFor(); - assertNull(remoteJob.getStatus().getError()); - QueryJobConfiguration queryJobConfiguration = remoteJob.getConfiguration(); - assertEquals(labels, queryJobConfiguration.getLabels()); + try { + QueryJobConfiguration configuration = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setDestinationTable(destinationTable) + .setLabels(labels) + .build(); + Job remoteJob = bigquery.create(JobInfo.of(configuration)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + QueryJobConfiguration queryJobConfiguration = remoteJob.getConfiguration(); + assertEquals(labels, queryJobConfiguration.getLabels()); + } finally { + bigquery.delete(destinationTable); + } + } + + @Test + public void testQueryJobWithRangePartitioning() throws InterruptedException { + String tableName = "test_query_job_table_rangepartitioning"; + String query = + "SELECT IntegerField, TimestampField, StringField, BooleanField FROM " + + TABLE_ID.getTable(); + TableId destinationTable = TableId.of(DATASET, tableName); + try { + QueryJobConfiguration configuration = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setDestinationTable(destinationTable) + .setRangePartitioning(RANGE_PARTITIONING) + .build(); + Job remoteJob = bigquery.create(JobInfo.of(configuration)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + QueryJobConfiguration queryJobConfiguration = remoteJob.getConfiguration(); + assertEquals(RANGE, queryJobConfiguration.getRangePartitioning().getRange()); + assertEquals(RANGE_PARTITIONING, queryJobConfiguration.getRangePartitioning()); + } finally { + bigquery.delete(destinationTable); + } + } + + @Test + public void testLoadJobWithRangePartitioning() throws InterruptedException { + String tableName = "test_load_job_table_rangepartitioning"; + TableId destinationTable = TableId.of(DATASET, tableName); + try { + LoadJobConfiguration configuration = + LoadJobConfiguration.newBuilder( + TABLE_ID, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(TABLE_SCHEMA) + .setRangePartitioning(RANGE_PARTITIONING) + .setDestinationTable(destinationTable) + .build(); + Job job = bigquery.create(JobInfo.of(configuration)); + job = job.waitFor(); + assertNull(job.getStatus().getError()); + LoadJobConfiguration loadJobConfiguration = job.getConfiguration(); + assertEquals(RANGE, loadJobConfiguration.getRangePartitioning().getRange()); + assertEquals(RANGE_PARTITIONING, loadJobConfiguration.getRangePartitioning()); + } finally { + bigquery.delete(destinationTable); + } } @Test From 59adc3d9f35cee4be8aa8e43708ba6f25d8e4920 Mon Sep 17 00:00:00 2001 From: Cody Oss <6331106+codyoss@users.noreply.github.com> Date: Wed, 6 Nov 2019 14:11:27 -0700 Subject: [PATCH 0229/3441] Release v0.118.0 (#6704) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index e44436311b0a..1621721402eb 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -18,16 +18,16 @@ If you are using Maven, add this to your pom.xml file com.google.cloud google-cloud-bigquery - 1.99.0 + 1.100.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.99.0' +compile 'com.google.cloud:google-cloud-bigquery:1.100.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.99.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.100.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a687546c37fa..0b957dbff09d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.99.1-SNAPSHOT + 1.100.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.117.1-alpha-SNAPSHOT + 0.118.0-alpha google-cloud-bigquery From 10157840059ba2a5024e47f458428fa22e142cc0 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 7 Nov 2019 19:00:29 +0530 Subject: [PATCH 0230/3441] BigQuery: implement scripting support. (#6706) * implemented script * added java docs, unit and integration test case * added asserts for stackframes --- .../com/google/cloud/bigquery/BigQuery.java | 5 + .../google/cloud/bigquery/JobStatistics.java | 333 +++++++++++++++++- .../cloud/bigquery/spi/v2/BigQueryRpc.java | 1 + .../cloud/bigquery/JobStatisticsTest.java | 83 +++++ .../cloud/bigquery/it/ITBigQueryTest.java | 56 +++ 5 files changed, 476 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index bdf1de25d804..4779c7161b0e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -490,6 +490,11 @@ public static JobListOption pageToken(String pageToken) { return new JobListOption(BigQueryRpc.Option.PAGE_TOKEN, pageToken); } + /** Returns an option to list only child job from specify parent job id. */ + public static JobListOption parentJobId(String parentJobId) { + return new JobListOption(BigQueryRpc.Option.PARENT_JOB_ID, parentJobId); + } + /** * Returns an option to specify the job's fields to be returned by the RPC call. If this option * is not provided all job's fields are returned. {@code JobOption.fields()} can be used to diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 388284c04aa3..1f7a51508ea0 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -21,14 +21,17 @@ import com.google.api.services.bigquery.model.JobStatistics2; import com.google.api.services.bigquery.model.JobStatistics3; import com.google.api.services.bigquery.model.JobStatistics4; +import com.google.api.services.bigquery.model.ScriptStackFrame; import com.google.cloud.StringEnumType; import com.google.cloud.StringEnumValue; +import com.google.common.base.Function; import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.collect.Lists; import java.io.Serializable; import java.util.List; import java.util.Objects; +import org.checkerframework.checker.nullness.compatqual.NullableDecl; /** A Google BigQuery Job statistics. */ public abstract class JobStatistics implements Serializable { @@ -38,6 +41,9 @@ public abstract class JobStatistics implements Serializable { private final Long creationTime; private final Long endTime; private final Long startTime; + private final Long numChildJobs; + private final String parentJobId; + private final ScriptStatistics scriptStatistics; /** A Google BigQuery Copy Job statistics. */ public static class CopyStatistics extends JobStatistics { @@ -754,11 +760,302 @@ static QueryStatistics fromPb( } } + /** A Google BigQuery Script statistics. */ + public static class ScriptStatistics { + + private static final long serialVersionUID = 1328768324537448161L; + + private final String evaluationKind; + private final List stackFrames; + + public static class ScriptStackFrame { + + static final Function< + com.google.api.services.bigquery.model.ScriptStackFrame, ScriptStackFrame> + FROM_PB_FUNCTION = + new Function< + com.google.api.services.bigquery.model.ScriptStackFrame, ScriptStackFrame>() { + @NullableDecl + @Override + public ScriptStackFrame apply( + @NullableDecl + com.google.api.services.bigquery.model.ScriptStackFrame stackFrame) { + return ScriptStackFrame.fromPb(stackFrame); + } + }; + + static final Function< + ScriptStackFrame, com.google.api.services.bigquery.model.ScriptStackFrame> + TO_PB_FUNCTION = + new Function< + ScriptStackFrame, com.google.api.services.bigquery.model.ScriptStackFrame>() { + @NullableDecl + @Override + public com.google.api.services.bigquery.model.ScriptStackFrame apply( + @NullableDecl ScriptStackFrame scriptStackFrame) { + return scriptStackFrame.toPb(); + } + }; + + private final Integer endColumn; + private final Integer endLine; + private final String procedureId; + private final Integer startColumn; + private final Integer startLine; + private final String text; + + private ScriptStackFrame(Builder builder) { + this.endColumn = builder.endColumn; + this.endLine = builder.endLine; + this.procedureId = builder.procedureId; + this.startColumn = builder.startColumn; + this.startLine = builder.startLine; + this.text = builder.text; + } + + static class Builder { + + private Integer endColumn; + private Integer endLine; + private String procedureId; + private Integer startColumn; + private Integer startLine; + private String text; + + Builder setEndColumn(Integer endColumn) { + this.endColumn = endColumn; + return this; + } + + Builder setEndLine(Integer endLine) { + this.endLine = endLine; + return this; + } + + Builder setProcedureId(String procedureId) { + this.procedureId = procedureId; + return this; + } + + Builder setStartColumn(Integer startColumn) { + this.startColumn = startColumn; + return this; + } + + Builder setStartLine(Integer startLine) { + this.startLine = startLine; + return this; + } + + Builder setText(String text) { + this.text = text; + return this; + } + + ScriptStackFrame build() { + return new ScriptStackFrame(this); + } + } + + /** Returns the end column. */ + public Integer getEndColumn() { + return endColumn; + } + + /** Returns the end line. */ + public Integer getEndLine() { + return endLine; + } + + /** Returns Name of the active procedure, empty if in a top-level script. */ + public String getProcedureId() { + return procedureId; + } + + /** Returns the start column */ + public Integer getStartColumn() { + return startColumn; + } + + /** Returns the start line. */ + public Integer getStartLine() { + return startLine; + } + + /** Returns Text of the current statement/expression. */ + public String getText() { + return text; + } + + ToStringHelper toStringHelper() { + return MoreObjects.toStringHelper(this) + .add("endColumn", endColumn) + .add("endLine", endLine) + .add("procedureId", procedureId) + .add("startColumn", startColumn) + .add("startLine", startLine) + .add("text", text); + } + + @Override + public String toString() { + return toStringHelper().toString(); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(ScriptStackFrame.class) + && Objects.equals(toPb(), ((ScriptStackFrame) obj).toPb()); + } + + @Override + public int hashCode() { + return Objects.hash(endColumn, endLine, procedureId, startColumn, startLine, text); + } + + com.google.api.services.bigquery.model.ScriptStackFrame toPb() { + com.google.api.services.bigquery.model.ScriptStackFrame stackFrame = + new com.google.api.services.bigquery.model.ScriptStackFrame(); + stackFrame.setEndColumn(endColumn); + stackFrame.setEndLine(endLine); + stackFrame.setProcedureId(procedureId); + stackFrame.setStartColumn(startColumn); + stackFrame.setStartLine(startLine); + stackFrame.setText(text); + return stackFrame; + } + + static Builder newBuilder() { + return new Builder(); + } + + static ScriptStackFrame fromPb( + com.google.api.services.bigquery.model.ScriptStackFrame stackFrame) { + Builder builder = newBuilder(); + if (stackFrame.getEndColumn() != null) { + builder.setEndColumn(stackFrame.getEndColumn()); + } + if (stackFrame.getEndLine() != null) { + builder.setEndLine(stackFrame.getEndLine()); + } + if (stackFrame.getProcedureId() != null) { + builder.setProcedureId(stackFrame.getProcedureId()); + } + if (stackFrame.getStartColumn() != null) { + builder.setStartColumn(stackFrame.getStartColumn()); + } + if (stackFrame.getStartLine() != null) { + builder.setStartLine(stackFrame.getStartLine()); + } + if (stackFrame.getText() != null) { + builder.setText(stackFrame.getText()); + } + return builder.build(); + } + } + + private ScriptStatistics(Builder builder) { + this.evaluationKind = builder.evaluationKind; + this.stackFrames = builder.stackFrames; + } + + static class Builder { + + private String evaluationKind; + private List stackFrames; + + private Builder() {} + + Builder setEvaluationKind(String evaluationKind) { + this.evaluationKind = evaluationKind; + return this; + } + + Builder setStackFrames(List stackFrames) { + this.stackFrames = stackFrames; + return this; + } + + ScriptStatistics build() { + return new ScriptStatistics(this); + } + } + + static Builder newBuilder() { + return new Builder(); + } + + /** Returns child job was a statement or expression */ + public String getEvaluationKind() { + return evaluationKind; + } + + /** + * Stack trace showing the line/column/procedure name of each frame on the stack at the point + * where the current evaluation happened. The leaf frame is first, the primary script is last. + * Never empty. + */ + public List getStackFrames() { + return stackFrames; + } + + ToStringHelper toStringHelper() { + return MoreObjects.toStringHelper(this) + .add("evaluationKind", evaluationKind) + .add("stackFrames", stackFrames); + } + + @Override + public String toString() { + return toStringHelper().toString(); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(ScriptStatistics.class) + && Objects.equals(toPb(), ((ScriptStatistics) obj).toPb()); + } + + @Override + public int hashCode() { + return Objects.hash(evaluationKind, stackFrames); + } + + com.google.api.services.bigquery.model.ScriptStatistics toPb() { + com.google.api.services.bigquery.model.ScriptStatistics scriptStatistics = + new com.google.api.services.bigquery.model.ScriptStatistics(); + scriptStatistics.setEvaluationKind(evaluationKind); + scriptStatistics.setStackFrames( + Lists.transform(stackFrames, ScriptStackFrame.TO_PB_FUNCTION)); + return scriptStatistics; + } + + static ScriptStatistics fromPb( + com.google.api.services.bigquery.model.ScriptStatistics scriptStatistics) { + Builder builder = newBuilder(); + if (scriptStatistics.getEvaluationKind() != null) { + builder.setEvaluationKind(scriptStatistics.getEvaluationKind()); + } + if (scriptStatistics.getStackFrames() != null) { + builder.setStackFrames( + Lists.transform(scriptStatistics.getStackFrames(), ScriptStackFrame.FROM_PB_FUNCTION)); + } + return builder.build(); + } + } + abstract static class Builder> { private Long creationTime; private Long endTime; private Long startTime; + private Long numChildJobs; + private String parentJobId; + private ScriptStatistics scriptStatistics; protected Builder() {} @@ -766,6 +1063,11 @@ protected Builder(com.google.api.services.bigquery.model.JobStatistics statistic this.creationTime = statisticsPb.getCreationTime(); this.endTime = statisticsPb.getEndTime(); this.startTime = statisticsPb.getStartTime(); + this.numChildJobs = statisticsPb.getNumChildJobs(); + this.parentJobId = statisticsPb.getParentJobId(); + if (statisticsPb.getScriptStatistics() != null) { + this.scriptStatistics = ScriptStatistics.fromPb(statisticsPb.getScriptStatistics()); + } } @SuppressWarnings("unchecked") @@ -795,6 +1097,9 @@ protected JobStatistics(Builder builder) { this.creationTime = builder.creationTime; this.endTime = builder.endTime; this.startTime = builder.startTime; + this.numChildJobs = builder.numChildJobs; + this.parentJobId = builder.parentJobId; + this.scriptStatistics = builder.scriptStatistics; } /** Returns the creation time of the job in milliseconds since epoch. */ @@ -818,11 +1123,29 @@ public Long getStartTime() { return startTime; } + /** Returns the number of child job executed. */ + public Long getNumChildJobs() { + return numChildJobs; + } + + /** Returns the parent job id of child job. */ + public String getParentJobId() { + return parentJobId; + } + + /** Returns the statistics for a child job of a script. */ + public ScriptStatistics getScriptStatistics() { + return scriptStatistics; + } + ToStringHelper toStringHelper() { return MoreObjects.toStringHelper(this) .add("creationTime", creationTime) .add("endTime", endTime) - .add("startTime", startTime); + .add("startTime", startTime) + .add("numChildJobs", numChildJobs) + .add("parentJobId", parentJobId) + .add("scriptStatistics", scriptStatistics); } @Override @@ -831,7 +1154,8 @@ public String toString() { } final int baseHashCode() { - return Objects.hash(creationTime, endTime, startTime); + return Objects.hash( + creationTime, endTime, startTime, numChildJobs, parentJobId, scriptStatistics); } final boolean baseEquals(JobStatistics jobStatistics) { @@ -844,6 +1168,11 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { statistics.setCreationTime(creationTime); statistics.setEndTime(endTime); statistics.setStartTime(startTime); + statistics.setNumChildJobs(numChildJobs); + statistics.setParentJobId(parentJobId); + if (scriptStatistics != null) { + statistics.setScriptStatistics(scriptStatistics.toPb()); + } return statistics; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index 048870b742ce..7ba0cd764f87 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -45,6 +45,7 @@ enum Option { MAX_CREATION_TIME("maxCreationTime"), MAX_RESULTS("maxResults"), PAGE_TOKEN("pageToken"), + PARENT_JOB_ID("parentJobId"), START_INDEX("startIndex"), STATE_FILTER("stateFilter"), TIMEOUT("timeoutMs"); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index 2113eb8f5410..052df43254b1 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -23,6 +23,8 @@ import com.google.cloud.bigquery.JobStatistics.ExtractStatistics; import com.google.cloud.bigquery.JobStatistics.LoadStatistics; import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.JobStatistics.ScriptStatistics; +import com.google.cloud.bigquery.JobStatistics.ScriptStatistics.ScriptStackFrame; import com.google.cloud.bigquery.QueryStage.QueryStep; import com.google.common.collect.ImmutableList; import java.util.List; @@ -33,6 +35,8 @@ public class JobStatisticsTest { private static final Integer BILLING_TIER = 42; private static final Boolean CACHE_HIT = true; private static final String DDL_OPERATION_PERFORMED = "SKIP"; + private static final String EVALUATIONKIND_TYPE_STATEMENT = "STATEMENT"; + private static final String EVALUATIONKIND_TYPE_EXPRESSION = "EXPRESSION"; private static final TableId DDL_TARGET_TABLE = TableId.of("foo", "bar", "baz"); private static final RoutineId DDL_TARGET_ROUTINE = RoutineId.of("alpha", "beta", "gamma"); private static final Long ESTIMATE_BYTES_PROCESSED = 101L; @@ -158,6 +162,44 @@ public class JobStatisticsTest { .setBillingTier(BILLING_TIER) .setCacheHit(CACHE_HIT) .build(); + private static final ScriptStackFrame STATEMENT_STACK_FRAME = + ScriptStackFrame.newBuilder() + .setEndColumn(2) + .setEndLine(16) + .setProcedureId("test-procedureId") + .setStartColumn(1) + .setStartLine(16) + .setText( + "SELECT\n" + + " name AS shakespeare_name\n" + + "FROM UNNEST(top_names) AS name\n" + + "WHERE name IN (\n" + + " SELECT word\n" + + " FROM `bigquery-public-data`.samples.shakespeare\n" + + ")") + .build(); + private static final ScriptStackFrame EXPRESSION_STACK_FRAME = + ScriptStackFrame.newBuilder() + .setEndColumn(2) + .setEndLine(8) + .setProcedureId("test-procedureId") + .setStartColumn(17) + .setStartLine(4) + .setText( + "SELECT ARRAY_AGG(name ORDER BY number DESC LIMIT 100)\n" + + " FROM `bigquery-public-data`.usa_names.usa_1910_current\n" + + " WHERE year = 2017") + .build(); + private static final ScriptStatistics STATEMENT_SCRIPT_STATISTICS = + ScriptStatistics.newBuilder() + .setEvaluationKind(EVALUATIONKIND_TYPE_STATEMENT) + .setStackFrames(ImmutableList.of(STATEMENT_STACK_FRAME)) + .build(); + private static final ScriptStatistics EXPRESSION_SCRIPT_STATISTICS = + ScriptStatistics.newBuilder() + .setEvaluationKind(EVALUATIONKIND_TYPE_EXPRESSION) + .setStackFrames(ImmutableList.of(EXPRESSION_STACK_FRAME)) + .build(); @Test public void testBuilder() { @@ -219,6 +261,13 @@ public void testBuilder() { assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getTotalSlotMs()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getReferencedTables()); assertEquals(null, QUERY_STATISTICS_INCOMPLETE.getQueryPlan()); + + assertEquals(EVALUATIONKIND_TYPE_STATEMENT, STATEMENT_SCRIPT_STATISTICS.getEvaluationKind()); + assertEquals( + ImmutableList.of(STATEMENT_STACK_FRAME), STATEMENT_SCRIPT_STATISTICS.getStackFrames()); + assertEquals(EVALUATIONKIND_TYPE_EXPRESSION, EXPRESSION_SCRIPT_STATISTICS.getEvaluationKind()); + assertEquals( + ImmutableList.of(EXPRESSION_STACK_FRAME), EXPRESSION_SCRIPT_STATISTICS.getStackFrames()); } @Test @@ -233,6 +282,16 @@ public void testToPbAndFromPb() { LOAD_STATISTICS_INCOMPLETE, LoadStatistics.fromPb(LOAD_STATISTICS_INCOMPLETE.toPb())); compareQueryStatistics( QUERY_STATISTICS_INCOMPLETE, QueryStatistics.fromPb(QUERY_STATISTICS_INCOMPLETE.toPb())); + compareScriptStatistics( + STATEMENT_SCRIPT_STATISTICS, ScriptStatistics.fromPb(STATEMENT_SCRIPT_STATISTICS.toPb())); + compareScriptStatistics( + EXPRESSION_SCRIPT_STATISTICS, ScriptStatistics.fromPb(EXPRESSION_SCRIPT_STATISTICS.toPb())); + for (ScriptStackFrame stackFrame : STATEMENT_SCRIPT_STATISTICS.getStackFrames()) { + compareStackFrames(stackFrame, ScriptStackFrame.fromPb(stackFrame.toPb())); + } + for (ScriptStackFrame stackFrame : EXPRESSION_SCRIPT_STATISTICS.getStackFrames()) { + compareStackFrames(stackFrame, ScriptStackFrame.fromPb(stackFrame.toPb())); + } } @Test @@ -308,5 +367,29 @@ private void compareStatistics(JobStatistics expected, JobStatistics value) { assertEquals(expected.getCreationTime(), value.getCreationTime()); assertEquals(expected.getEndTime(), value.getEndTime()); assertEquals(expected.getStartTime(), value.getStartTime()); + assertEquals(expected.getNumChildJobs(), value.getNumChildJobs()); + assertEquals(expected.getParentJobId(), value.getParentJobId()); + assertEquals(expected.getScriptStatistics(), value.getScriptStatistics()); + } + + private void compareScriptStatistics(ScriptStatistics expected, ScriptStatistics value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), expected.toString()); + assertEquals(expected.getEvaluationKind(), value.getEvaluationKind()); + assertEquals(expected.getStackFrames(), value.getStackFrames()); + } + + private void compareStackFrames( + ScriptStatistics.ScriptStackFrame expected, ScriptStatistics.ScriptStackFrame value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getEndColumn(), value.getEndColumn()); + assertEquals(expected.getEndLine(), value.getEndLine()); + assertEquals(expected.getProcedureId(), value.getProcedureId()); + assertEquals(expected.getStartColumn(), value.getStartColumn()); + assertEquals(expected.getStartLine(), value.getStartLine()); + assertEquals(expected.getText(), value.getText()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 7eb61773ff7e..fd1b38f4f91a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1269,6 +1269,62 @@ public void testQuery() throws InterruptedException { assertNotNull(statistics.getQueryPlan()); } + @Test + public void testScriptStatistics() throws InterruptedException { + long currentTime = System.currentTimeMillis(); + String script = + "-- Declare a variable to hold names as an array.\n" + + "DECLARE top_names ARRAY;\n" + + "-- Build an array of the top 100 names from the year 2017.\n" + + "SET top_names = (\n" + + " SELECT ARRAY_AGG(name ORDER BY number DESC LIMIT 100)\n" + + " FROM `bigquery-public-data`.usa_names.usa_1910_current\n" + + " WHERE year = 2017\n" + + ");\n" + + "-- Which names appear as words in Shakespeare's plays?\n" + + "SELECT\n" + + " name AS shakespeare_name\n" + + "FROM UNNEST(top_names) AS name\n" + + "WHERE name IN (\n" + + " SELECT word\n" + + " FROM `bigquery-public-data`.samples.shakespeare\n" + + ");"; + QueryJobConfiguration config = QueryJobConfiguration.of(script); + Job remoteJob = bigquery.create(JobInfo.of(config)); + JobInfo info = remoteJob.waitFor(); + JobStatistics jobStatistics = info.getStatistics(); + String parentJobId = info.getJobId().getJob(); + assertEquals(2, jobStatistics.getNumChildJobs().longValue()); + Page page = + bigquery.listJobs( + JobListOption.parentJobId(parentJobId), JobListOption.minCreationTime(currentTime)); + for (Job job : page.iterateAll()) { + JobStatistics.ScriptStatistics scriptStatistics = job.getStatistics().getScriptStatistics(); + if (scriptStatistics != null) { + if (scriptStatistics.getEvaluationKind().equals("STATEMENT")) { + assertEquals("STATEMENT", scriptStatistics.getEvaluationKind()); + for (JobStatistics.ScriptStatistics.ScriptStackFrame stackFrame : + scriptStatistics.getStackFrames()) { + assertEquals(2, stackFrame.getEndColumn().intValue()); + assertEquals(16, stackFrame.getEndLine().intValue()); + assertEquals(1, stackFrame.getStartColumn().intValue()); + assertEquals(10, stackFrame.getStartLine().intValue()); + } + + } else { + assertEquals("EXPRESSION", scriptStatistics.getEvaluationKind()); + for (JobStatistics.ScriptStatistics.ScriptStackFrame stackFrame : + scriptStatistics.getStackFrames()) { + assertEquals(2, stackFrame.getEndColumn().intValue()); + assertEquals(8, stackFrame.getEndLine().intValue()); + assertEquals(17, stackFrame.getStartColumn().intValue()); + assertEquals(4, stackFrame.getStartLine().intValue()); + } + } + } + } + } + @Test public void testPositionalQueryParameters() throws InterruptedException { String query = From 14ebdba5a99e3d4272eb47648ba8f60b1cb41f0b Mon Sep 17 00:00:00 2001 From: Cody Oss <6331106+codyoss@users.noreply.github.com> Date: Fri, 8 Nov 2019 13:21:26 -0700 Subject: [PATCH 0231/3441] Bump next snapshot (#6712) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0b957dbff09d..ab3592a2925d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.100.0 + 1.100.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.118.0-alpha + 0.118.1-alpha-SNAPSHOT google-cloud-bigquery From b203fd2dd79a4b2baddbf3573943ff35a62baa7c Mon Sep 17 00:00:00 2001 From: Ajit Thakor <49403056+athakor@users.noreply.github.com> Date: Wed, 13 Nov 2019 13:09:55 -0500 Subject: [PATCH 0232/3441] Bigquery : Reference libraries-bom in docs (#6698) * Reference libraries-bom in bigquery * Fix review changes * Fix minor changes --- google-cloud-bigquery/README.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 1621721402eb..e3c012574874 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -12,8 +12,27 @@ Java idiomatic client for [Google Cloud BigQuery][cloud-bigquery]. Quickstart ---------- +If you are using Maven with a BOM, add this to your pom.xml file. +```xml + + + + com.google.cloud + libraries-bom + 2.8.0 + pom + import + + + + + + com.google.cloud + google-cloud-bigquery + +``` [//]: # ({x-version-update-start:google-cloud-bigquery:released}) -If you are using Maven, add this to your pom.xml file +If you are using Maven without a BOM, add this to your dependencies. ```xml com.google.cloud From 16f34daeb9988c9539895aa30c66620324e51d98 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 13 Nov 2019 17:48:04 -0600 Subject: [PATCH 0233/3441] Release v0.119.0 (#6772) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index e3c012574874..f0aa3adb8d49 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.100.0 + 1.101.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.100.0' +compile 'com.google.cloud:google-cloud-bigquery:1.101.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.100.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.101.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ab3592a2925d..8c17785c1f19 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.100.1-SNAPSHOT + 1.101.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.118.1-alpha-SNAPSHOT + 0.119.0-alpha google-cloud-bigquery From 7c987b5694eb04d0ce5c9475b3376abf1b26f9bb Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 14 Nov 2019 10:16:19 +0530 Subject: [PATCH 0234/3441] add description (#6761) --- .../com/google/cloud/bigquery/Routine.java | 6 +++++ .../google/cloud/bigquery/RoutineInfo.java | 24 +++++++++++++++++++ .../cloud/bigquery/RoutineInfoTest.java | 5 ++++ 3 files changed, 35 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java index 61c8848fb188..f324f9d508f6 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java @@ -75,6 +75,12 @@ Builder setCreationTime(Long creationMillis) { return this; } + @Override + public Builder setDescription(String description) { + infoBuilder.setDescription(description); + return this; + } + @Override Builder setLastModifiedTime(Long lastModifiedMillis) { infoBuilder.setLastModifiedTime(lastModifiedMillis); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java index 1474b1994c9e..ba93b3d83694 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java @@ -15,8 +15,10 @@ */ package com.google.cloud.bigquery; +import static com.google.common.base.MoreObjects.firstNonNull; import static com.google.common.base.Preconditions.checkNotNull; +import com.google.api.client.util.Data; import com.google.api.services.bigquery.model.Routine; import com.google.common.base.Function; import com.google.common.base.MoreObjects; @@ -59,6 +61,7 @@ public Routine apply(RoutineInfo routineInfo) { private final String etag; private final String routineType; private final Long creationTime; + private final String description; private final Long lastModifiedTime; private final String language; private final List argumentList; @@ -81,6 +84,9 @@ public abstract static class Builder { abstract Builder setCreationTime(Long creationMillis); + /** Sets the description for the routine. */ + abstract Builder setDescription(String description); + abstract Builder setLastModifiedTime(Long lastModifiedMillis); /** Sets the language for the routine (e.g. SQL or JAVASCRIPT) */ @@ -140,6 +146,7 @@ static class BuilderImpl extends Builder { private String etag; private String routineType; private Long creationTime; + private String description; private Long lastModifiedTime; private String language; private List argumentList; @@ -154,6 +161,7 @@ static class BuilderImpl extends Builder { this.etag = routineInfo.etag; this.routineType = routineInfo.routineType; this.creationTime = routineInfo.creationTime; + this.description = routineInfo.description; this.lastModifiedTime = routineInfo.lastModifiedTime; this.language = routineInfo.language; this.argumentList = routineInfo.argumentList; @@ -167,6 +175,7 @@ static class BuilderImpl extends Builder { this.etag = routinePb.getEtag(); this.routineType = routinePb.getRoutineType(); this.creationTime = routinePb.getCreationTime(); + this.description = routinePb.getDescription(); this.lastModifiedTime = routinePb.getLastModifiedTime(); this.language = routinePb.getLanguage(); if (routinePb.getArguments() != null) { @@ -208,6 +217,12 @@ Builder setCreationTime(Long creationMillis) { return this; } + @Override + public Builder setDescription(String description) { + this.description = firstNonNull(description, Data.nullOf(String.class)); + return this; + } + @Override Builder setLastModifiedTime(Long lastModifiedMillis) { this.lastModifiedTime = lastModifiedMillis; @@ -255,6 +270,7 @@ public RoutineInfo build() { this.etag = builder.etag; this.routineType = builder.routineType; this.creationTime = builder.creationTime; + this.description = builder.description; this.lastModifiedTime = builder.lastModifiedTime; this.language = builder.language; this.argumentList = builder.argumentList; @@ -283,6 +299,11 @@ public Long getCreationTime() { return creationTime; } + /** Returns the description of the routine. */ + public String getDescription() { + return description; + } + /** * Returns the last modification time of the routine, represented as milliseconds since the epoch. */ @@ -332,6 +353,7 @@ public String toString() { .add("etag", etag) .add("routineType", routineType) .add("creationTime", creationTime) + .add("description", description) .add("lastModifiedTime", lastModifiedTime) .add("language", language) .add("arguments", argumentList) @@ -348,6 +370,7 @@ public int hashCode() { etag, routineType, creationTime, + description, lastModifiedTime, language, argumentList, @@ -388,6 +411,7 @@ Routine toPb() { .setRoutineType(getRoutineType()) .setDefinitionBody(getBody()) .setCreationTime(getCreationTime()) + .setDescription(getDescription()) .setLastModifiedTime(getLastModifiedTime()) .setLanguage(getLanguage()); if (getRoutineId() != null) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java index 866daf82d0fa..d167858fc402 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java @@ -28,6 +28,7 @@ public class RoutineInfoTest { private static final String ETAG = "etag"; private static final String ROUTINE_TYPE = "SCALAR_FUNCTION"; private static final Long CREATION_TIME = 10L; + private static final String DESCRIPTION = "description"; private static final Long LAST_MODIFIED_TIME = 20L; private static final String LANGUAGE = "SQL"; @@ -53,6 +54,7 @@ public class RoutineInfoTest { .setEtag(ETAG) .setRoutineType(ROUTINE_TYPE) .setCreationTime(CREATION_TIME) + .setDescription(DESCRIPTION) .setLastModifiedTime(LAST_MODIFIED_TIME) .setLanguage(LANGUAGE) .setArguments(ARGUMENT_LIST) @@ -78,6 +80,7 @@ public void testBuilder() { assertEquals(ETAG, ROUTINE_INFO.getEtag()); assertEquals(ROUTINE_TYPE, ROUTINE_INFO.getRoutineType()); assertEquals(CREATION_TIME, ROUTINE_INFO.getCreationTime()); + assertEquals(DESCRIPTION, ROUTINE_INFO.getDescription()); assertEquals(LAST_MODIFIED_TIME, ROUTINE_INFO.getLastModifiedTime()); assertEquals(LANGUAGE, ROUTINE_INFO.getLanguage()); assertEquals(ARGUMENT_LIST, ROUTINE_INFO.getArguments()); @@ -93,6 +96,7 @@ public void testOf() { assertNull(routineInfo.getEtag()); assertNull(routineInfo.getRoutineType()); assertNull(routineInfo.getCreationTime()); + assertNull(routineInfo.getDescription()); assertNull(routineInfo.getLastModifiedTime()); assertNull(routineInfo.getLanguage()); assertNull(routineInfo.getArguments()); @@ -116,6 +120,7 @@ public void compareRoutineInfo(RoutineInfo expected, RoutineInfo value) { assertEquals(expected.getEtag(), value.getEtag()); assertEquals(expected.getRoutineType(), value.getRoutineType()); assertEquals(expected.getCreationTime(), value.getCreationTime()); + assertEquals(expected.getDescription(), value.getDescription()); assertEquals(expected.getLastModifiedTime(), value.getLastModifiedTime()); assertEquals(expected.getLanguage(), value.getLanguage()); assertEquals(expected.getArguments(), value.getArguments()); From 89a5478f7a1bb840d4f66ebacbbae2d3b9833477 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Fri, 15 Nov 2019 09:36:23 -0600 Subject: [PATCH 0235/3441] Bump next snapshot (#6790) --- google-cloud-bigquery/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8c17785c1f19..dc4b6abb5f25 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.101.0 + 1.101.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.119.0-alpha + 0.119.1-alpha-SNAPSHOT google-cloud-bigquery From 7b5f0cc531a8a07512eb0a844a69b72b512dfd00 Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Thu, 21 Nov 2019 08:48:11 -0500 Subject: [PATCH 0236/3441] update libraries-bom (#6799) --- google-cloud-bigquery/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index f0aa3adb8d49..7db984511d9b 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -19,7 +19,7 @@ If you are using Maven with a BOM, add this to your pom.xml file. com.google.cloud libraries-bom - 2.8.0 + 2.9.0 pom import From 8fb49daca84970503a91e75d3118dc92235798aa Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Tue, 26 Nov 2019 12:18:18 -0600 Subject: [PATCH 0237/3441] deps: google-cloud-clients should not import google-cloud-bom (#6903) * deps: google-cloud-clients should not import google-cloud-bom * manage storage http client in google-cloud-storage * google-cloud-examples should let the google-cloud-bom handle versions update the securitycenter versions in the bom --- google-cloud-bigquery/pom.xml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index dc4b6abb5f25..86f212850bbe 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -19,11 +19,11 @@ - ${project.groupId} + com.google.cloud google-cloud-core - ${project.groupId} + com.google.cloud google-cloud-core-http @@ -32,19 +32,20 @@ provided - ${project.groupId} + com.google.cloud google-cloud-storage + 1.101.1-SNAPSHOT test com.google.apis google-api-services-bigquery - compile + v2-rev20190917-1.30.3 - ${project.groupId} + com.google.cloud google-cloud-core test-jar test From b95ecf224e50a324d75b078edf741e4921976aa4 Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Mon, 2 Dec 2019 15:31:57 -0500 Subject: [PATCH 0238/3441] BOM 3.0.0 (#6964) --- google-cloud-bigquery/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 7db984511d9b..7ac83d2a66d5 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -19,7 +19,7 @@ If you are using Maven with a BOM, add this to your pom.xml file. com.google.cloud libraries-bom - 2.9.0 + 3.0.0 pom import From 25940f46f3b08d0393a9e77a3d58d770a65da0f1 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Thu, 5 Dec 2019 11:05:16 -0500 Subject: [PATCH 0239/3441] Release v0.120.0 (#6988) --- google-cloud-bigquery/README.md | 6 +++--- google-cloud-bigquery/pom.xml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/README.md b/google-cloud-bigquery/README.md index 7ac83d2a66d5..b51c5f528952 100644 --- a/google-cloud-bigquery/README.md +++ b/google-cloud-bigquery/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.101.0 + 1.102.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.101.0' +compile 'com.google.cloud:google-cloud-bigquery:1.102.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.101.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.102.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 86f212850bbe..80d1a38c6f93 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.101.1-SNAPSHOT + 1.102.0 jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.119.1-alpha-SNAPSHOT + 0.120.0-alpha google-cloud-bigquery @@ -34,7 +34,7 @@ com.google.cloud google-cloud-storage - 1.101.1-SNAPSHOT + 1.102.0 test From 084fd8a9e68c4b22cfcede17a3fcb17a568c2ff7 Mon Sep 17 00:00:00 2001 From: kolea2 <45548808+kolea2@users.noreply.github.com> Date: Thu, 5 Dec 2019 13:36:03 -0500 Subject: [PATCH 0240/3441] Bump next snapshot (#6989) --- google-cloud-bigquery/pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 80d1a38c6f93..4653be53baaf 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -2,7 +2,7 @@ 4.0.0 google-cloud-bigquery - 1.102.0 + 1.102.1-SNAPSHOT jar Google Cloud BigQuery https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery @@ -12,7 +12,7 @@ com.google.cloud google-cloud-clients - 0.120.0-alpha + 0.120.1-alpha-SNAPSHOT google-cloud-bigquery @@ -34,7 +34,7 @@ com.google.cloud google-cloud-storage - 1.102.0 + 1.102.1-SNAPSHOT test From 91b79f608ad4743f895c3f9324153cb70065a28c Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 6 Dec 2019 17:26:16 -0500 Subject: [PATCH 0241/3441] feat: migrate bigquery from google-cloud-java, add bom (#3) 1. add synth.py 2. update pom.xml files to have correct names and descriptions 3. update .repo-metadata.json for new urls 4. add .gitignore 5. generate common templates --- .github/ISSUE_TEMPLATE/bug_report.md | 51 +++ .github/ISSUE_TEMPLATE/feature_request.md | 21 ++ .github/ISSUE_TEMPLATE/support_request.md | 7 + .github/PULL_REQUEST_TEMPLATE.md | 1 + .github/release-please.yml | 2 + .gitignore | 5 + .kokoro/build.bat | 3 + .kokoro/build.sh | 66 ++++ .kokoro/coerce_logs.sh | 38 ++ .kokoro/common.cfg | 13 + .kokoro/continuous/common.cfg | 25 ++ .kokoro/continuous/dependencies.cfg | 12 + .kokoro/continuous/integration.cfg | 7 + .kokoro/continuous/java11.cfg | 7 + .kokoro/continuous/java7.cfg | 7 + .kokoro/continuous/java8-osx.cfg | 3 + .kokoro/continuous/java8-win.cfg | 3 + .kokoro/continuous/java8.cfg | 7 + .kokoro/continuous/lint.cfg | 13 + .kokoro/continuous/propose_release.cfg | 53 +++ .kokoro/continuous/propose_release.sh | 29 ++ .kokoro/dependencies.sh | 31 ++ .kokoro/linkage-monitor.sh | 33 ++ .kokoro/nightly/common.cfg | 25 ++ .kokoro/nightly/dependencies.cfg | 12 + .kokoro/nightly/integration.cfg | 7 + .kokoro/nightly/java11.cfg | 7 + .kokoro/nightly/java7.cfg | 7 + .kokoro/nightly/java8-osx.cfg | 3 + .kokoro/nightly/java8-win.cfg | 3 + .kokoro/nightly/java8.cfg | 7 + .kokoro/nightly/lint.cfg | 13 + .kokoro/presubmit/clirr.cfg | 13 + .kokoro/presubmit/common.cfg | 34 ++ .kokoro/presubmit/dependencies.cfg | 12 + .kokoro/presubmit/integration.cfg | 31 ++ .kokoro/presubmit/java11.cfg | 7 + .kokoro/presubmit/java7.cfg | 7 + .kokoro/presubmit/java8-osx.cfg | 3 + .kokoro/presubmit/java8-win.cfg | 3 + .kokoro/presubmit/java8.cfg | 7 + .kokoro/presubmit/linkage-monitor.cfg | 12 + .kokoro/presubmit/lint.cfg | 13 + .kokoro/release/bump_snapshot.cfg | 53 +++ .kokoro/release/bump_snapshot.sh | 30 ++ .kokoro/release/common.cfg | 49 +++ .kokoro/release/common.sh | 50 +++ .kokoro/release/drop.cfg | 6 + .kokoro/release/drop.sh | 32 ++ .kokoro/release/promote.cfg | 6 + .kokoro/release/promote.sh | 34 ++ .kokoro/release/publish_javadoc.cfg | 19 + .kokoro/release/publish_javadoc.sh | 55 +++ .kokoro/release/snapshot.cfg | 6 + .kokoro/release/snapshot.sh | 33 ++ .kokoro/release/stage.cfg | 44 +++ .kokoro/release/stage.sh | 42 +++ .kokoro/trampoline.sh | 24 ++ ....repo-metadata.json => .repo-metadata.json | 6 +- CODE_OF_CONDUCT.md | 93 +++++ CONTRIBUTING.md | 28 ++ LICENSE | 5 +- google-cloud-bigquery/README.md => README.md | 0 codecov.yaml | 4 + google-cloud-bigquery-bom/pom.xml | 83 +++++ google-cloud-bigquery/pom.xml | 90 +++-- java.header | 15 + license-checks.xml | 10 + pom.xml | 346 ++++++++++++++++++ renovate.json | 27 ++ synth.metadata | 19 + synth.py | 26 ++ versions.txt | 4 + 73 files changed, 1876 insertions(+), 26 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/support_request.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/release-please.yml create mode 100644 .gitignore create mode 100644 .kokoro/build.bat create mode 100755 .kokoro/build.sh create mode 100755 .kokoro/coerce_logs.sh create mode 100644 .kokoro/common.cfg create mode 100644 .kokoro/continuous/common.cfg create mode 100644 .kokoro/continuous/dependencies.cfg create mode 100644 .kokoro/continuous/integration.cfg create mode 100644 .kokoro/continuous/java11.cfg create mode 100644 .kokoro/continuous/java7.cfg create mode 100644 .kokoro/continuous/java8-osx.cfg create mode 100644 .kokoro/continuous/java8-win.cfg create mode 100644 .kokoro/continuous/java8.cfg create mode 100644 .kokoro/continuous/lint.cfg create mode 100644 .kokoro/continuous/propose_release.cfg create mode 100755 .kokoro/continuous/propose_release.sh create mode 100755 .kokoro/dependencies.sh create mode 100755 .kokoro/linkage-monitor.sh create mode 100644 .kokoro/nightly/common.cfg create mode 100644 .kokoro/nightly/dependencies.cfg create mode 100644 .kokoro/nightly/integration.cfg create mode 100644 .kokoro/nightly/java11.cfg create mode 100644 .kokoro/nightly/java7.cfg create mode 100644 .kokoro/nightly/java8-osx.cfg create mode 100644 .kokoro/nightly/java8-win.cfg create mode 100644 .kokoro/nightly/java8.cfg create mode 100644 .kokoro/nightly/lint.cfg create mode 100644 .kokoro/presubmit/clirr.cfg create mode 100644 .kokoro/presubmit/common.cfg create mode 100644 .kokoro/presubmit/dependencies.cfg create mode 100644 .kokoro/presubmit/integration.cfg create mode 100644 .kokoro/presubmit/java11.cfg create mode 100644 .kokoro/presubmit/java7.cfg create mode 100644 .kokoro/presubmit/java8-osx.cfg create mode 100644 .kokoro/presubmit/java8-win.cfg create mode 100644 .kokoro/presubmit/java8.cfg create mode 100644 .kokoro/presubmit/linkage-monitor.cfg create mode 100644 .kokoro/presubmit/lint.cfg create mode 100644 .kokoro/release/bump_snapshot.cfg create mode 100755 .kokoro/release/bump_snapshot.sh create mode 100644 .kokoro/release/common.cfg create mode 100755 .kokoro/release/common.sh create mode 100644 .kokoro/release/drop.cfg create mode 100755 .kokoro/release/drop.sh create mode 100644 .kokoro/release/promote.cfg create mode 100755 .kokoro/release/promote.sh create mode 100644 .kokoro/release/publish_javadoc.cfg create mode 100755 .kokoro/release/publish_javadoc.sh create mode 100644 .kokoro/release/snapshot.cfg create mode 100755 .kokoro/release/snapshot.sh create mode 100644 .kokoro/release/stage.cfg create mode 100755 .kokoro/release/stage.sh create mode 100644 .kokoro/trampoline.sh rename google-cloud-bigquery/.repo-metadata.json => .repo-metadata.json (72%) create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md rename google-cloud-bigquery/README.md => README.md (100%) create mode 100644 codecov.yaml create mode 100644 google-cloud-bigquery-bom/pom.xml create mode 100644 java.header create mode 100644 license-checks.xml create mode 100644 pom.xml create mode 100644 renovate.json create mode 100644 synth.metadata create mode 100644 synth.py create mode 100644 versions.txt diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000000..93f1b513304c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,51 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + +Thanks for stopping by to let us know something could be better! + +**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. + +Please run down the following list and make sure you've tried the usual "quick fixes": + + - Search the issues already opened: https://github.com/googleapis/java-bigquery/issues + - Check for answers on StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform + +If you are still having issues, please include as much information as possible: + +#### Environment details + +1. Specify the API at the beginning of the title. For example, "BigQuery: ..."). + General, Core, and Other are also allowed as types +2. OS type and version: +3. Java version: +4. bigquery version(s): + +#### Steps to reproduce + + 1. ? + 2. ? + +#### Code example + +```java +// example +``` + +#### Stack trace +``` +Any relevant stacktrace here. +``` + +#### External references such as API reference guides + +- ? + +#### Any additional information below + + +Following these steps guarantees the quickest resolution possible. + +Thanks! diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000000..754e30c68a00 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,21 @@ +--- +name: Feature request +about: Suggest an idea for this library + +--- + +Thanks for stopping by to let us know something could be better! + +**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. + +**Is your feature request related to a problem? Please describe.** +What the problem is. Example: I'm always frustrated when [...] + +**Describe the solution you'd like** +What you want to happen. + +**Describe alternatives you've considered** +Any alternative solutions or features you've considered. + +**Additional context** +Any other context or screenshots about the feature request. diff --git a/.github/ISSUE_TEMPLATE/support_request.md b/.github/ISSUE_TEMPLATE/support_request.md new file mode 100644 index 000000000000..995869032125 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/support_request.md @@ -0,0 +1,7 @@ +--- +name: Support request +about: If you have a support contract with Google, please create an issue in the Google Cloud Support console. + +--- + +**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 000000000000..0bd0ee0620f9 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1 @@ +Fixes # (it's a good idea to open an issue first for context and/or discussion) \ No newline at end of file diff --git a/.github/release-please.yml b/.github/release-please.yml new file mode 100644 index 000000000000..dce2c8450921 --- /dev/null +++ b/.github/release-please.yml @@ -0,0 +1,2 @@ +releaseType: java-yoshi +bumpMinorPreMajor: true \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..53f53a3c8ca3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.idea +*.iml +target/ +__pycache__ + diff --git a/.kokoro/build.bat b/.kokoro/build.bat new file mode 100644 index 000000000000..98f47d5ad50f --- /dev/null +++ b/.kokoro/build.bat @@ -0,0 +1,3 @@ +:: See documentation in type-shell-output.bat + +"C:\Program Files\Git\bin\bash.exe" github/java-bigquery/.kokoro/build.sh diff --git a/.kokoro/build.sh b/.kokoro/build.sh new file mode 100755 index 000000000000..dc2936ef76a8 --- /dev/null +++ b/.kokoro/build.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +## Get the directory of the build script +scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) +## cd to the parent directory, i.e. the root of the git repo +cd ${scriptDir}/.. + +# Print out Java version +java -version +echo ${JOB_TYPE} + +mvn install -B -V \ + -DskipTests=true \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -Dmaven.javadoc.skip=true \ + -Dgcloud.download.skip=true \ + -T 1C + +# if GOOGLE_APPLICATION_CREDIENTIALS is specified as a relative path prepend Kokoro root directory onto it +if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTIALS}" != /* ]]; then + export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_ROOT}/src/${GOOGLE_APPLICATION_CREDENTIALS}) +fi + +case ${JOB_TYPE} in +test) + mvn test -B -Dclirr.skip=true -Denforcer.skip=true + bash ${KOKORO_GFILE_DIR}/codecov.sh + bash .kokoro/coerce_logs.sh + ;; +lint) + mvn com.coveo:fmt-maven-plugin:check + ;; +javadoc) + mvn javadoc:javadoc javadoc:test-javadoc + ;; +integration) + mvn -B ${INTEGRATION_TEST_ARGS} \ + -DtrimStackTrace=false \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -fae \ + verify + bash .kokoro/coerce_logs.sh + ;; +clirr) + mvn -B -Denforcer.skip=true clirr:check + ;; +*) + ;; +esac diff --git a/.kokoro/coerce_logs.sh b/.kokoro/coerce_logs.sh new file mode 100755 index 000000000000..5cf7ba49e6bb --- /dev/null +++ b/.kokoro/coerce_logs.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This script finds and moves sponge logs so that they can be found by placer +# and are not flagged as flaky by sponge. + +set -eo pipefail + +## Get the directory of the build script +scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) +## cd to the parent directory, i.e. the root of the git repo +cd ${scriptDir}/.. + +job=$(basename ${KOKORO_JOB_NAME}) + +echo "coercing sponge logs..." +for xml in `find . -name *-sponge_log.xml` +do + echo "processing ${xml}" + class=$(basename ${xml} | cut -d- -f2) + dir=$(dirname ${xml})/${job}/${class} + text=$(dirname ${xml})/${class}-sponge_log.txt + mkdir -p ${dir} + mv ${xml} ${dir}/sponge_log.xml + mv ${text} ${dir}/sponge_log.txt +done diff --git a/.kokoro/common.cfg b/.kokoro/common.cfg new file mode 100644 index 000000000000..24a5c6b191b4 --- /dev/null +++ b/.kokoro/common.cfg @@ -0,0 +1,13 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Download trampoline resources. These will be in ${KOKORO_GFILE_DIR} +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# All builds use the trampoline script to run in docker. +build_file: "java-bigquery/.kokoro/trampoline.sh" + +# Tell the trampoline which build file to use. +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/build.sh" +} diff --git a/.kokoro/continuous/common.cfg b/.kokoro/continuous/common.cfg new file mode 100644 index 000000000000..92edc0678041 --- /dev/null +++ b/.kokoro/continuous/common.cfg @@ -0,0 +1,25 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + regex: "**/*sponge_log.txt" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "java-bigquery/.kokoro/trampoline.sh" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/build.sh" +} + +env_vars: { + key: "JOB_TYPE" + value: "test" +} diff --git a/.kokoro/continuous/dependencies.cfg b/.kokoro/continuous/dependencies.cfg new file mode 100644 index 000000000000..75e48af255c8 --- /dev/null +++ b/.kokoro/continuous/dependencies.cfg @@ -0,0 +1,12 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/dependencies.sh" +} diff --git a/.kokoro/continuous/integration.cfg b/.kokoro/continuous/integration.cfg new file mode 100644 index 000000000000..3b017fc80f04 --- /dev/null +++ b/.kokoro/continuous/integration.cfg @@ -0,0 +1,7 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} diff --git a/.kokoro/continuous/java11.cfg b/.kokoro/continuous/java11.cfg new file mode 100644 index 000000000000..709f2b4c73db --- /dev/null +++ b/.kokoro/continuous/java11.cfg @@ -0,0 +1,7 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java11" +} diff --git a/.kokoro/continuous/java7.cfg b/.kokoro/continuous/java7.cfg new file mode 100644 index 000000000000..cb24f44eea3b --- /dev/null +++ b/.kokoro/continuous/java7.cfg @@ -0,0 +1,7 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java7" +} diff --git a/.kokoro/continuous/java8-osx.cfg b/.kokoro/continuous/java8-osx.cfg new file mode 100644 index 000000000000..d0594f62733b --- /dev/null +++ b/.kokoro/continuous/java8-osx.cfg @@ -0,0 +1,3 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +build_file: "java-bigquery/.kokoro/build.sh" diff --git a/.kokoro/continuous/java8-win.cfg b/.kokoro/continuous/java8-win.cfg new file mode 100644 index 000000000000..7a273e2faefc --- /dev/null +++ b/.kokoro/continuous/java8-win.cfg @@ -0,0 +1,3 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +build_file: "java-bigquery/.kokoro/build.bat" diff --git a/.kokoro/continuous/java8.cfg b/.kokoro/continuous/java8.cfg new file mode 100644 index 000000000000..3b017fc80f04 --- /dev/null +++ b/.kokoro/continuous/java8.cfg @@ -0,0 +1,7 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} diff --git a/.kokoro/continuous/lint.cfg b/.kokoro/continuous/lint.cfg new file mode 100644 index 000000000000..6d323c8ae768 --- /dev/null +++ b/.kokoro/continuous/lint.cfg @@ -0,0 +1,13 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. + +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "JOB_TYPE" + value: "lint" +} \ No newline at end of file diff --git a/.kokoro/continuous/propose_release.cfg b/.kokoro/continuous/propose_release.cfg new file mode 100644 index 000000000000..78652aa13fed --- /dev/null +++ b/.kokoro/continuous/propose_release.cfg @@ -0,0 +1,53 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "java-bigquery/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/continuous/propose_release.sh" +} + +# tokens used by release-please to keep an up-to-date release PR. +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "github-magic-proxy-key-release-please" + } + } +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "github-magic-proxy-token-release-please" + } + } +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "github-magic-proxy-url-release-please" + } + } +} diff --git a/.kokoro/continuous/propose_release.sh b/.kokoro/continuous/propose_release.sh new file mode 100755 index 000000000000..9732e43b0d4f --- /dev/null +++ b/.kokoro/continuous/propose_release.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +if [ -f ${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please ]; then + # Groom the release PR as new commits are merged. + npx release-please release-pr --token=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-token-release-please \ + --repo-url=googleapis/java-bigquery \ + --package-name="bigquery" \ + --api-url=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please \ + --proxy-key=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-key-release-please \ + --release-type=java-yoshi +fi diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh new file mode 100755 index 000000000000..80de1b35de4a --- /dev/null +++ b/.kokoro/dependencies.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +cd github/java-bigquery/ + +# Print out Java +java -version +echo $JOB_TYPE + +export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m" + +# this should run maven enforcer +mvn install -B -V \ + -DskipTests=true \ + -Dclirr.skip=true + +mvn -B dependency:analyze -DfailOnWarning=true diff --git a/.kokoro/linkage-monitor.sh b/.kokoro/linkage-monitor.sh new file mode 100755 index 000000000000..57513514cccb --- /dev/null +++ b/.kokoro/linkage-monitor.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail +# Display commands being run. +set -x + +cd github/java-bigquery/ + +# Print out Java version +java -version +echo ${JOB_TYPE} + +mvn install -DskipTests=true -Dmaven.javadoc.skip=true -Dgcloud.download.skip=true -B -V + +# Kokoro job cloud-opensource-java/ubuntu/linkage-monitor-gcs creates this JAR +JAR=linkage-monitor-latest-all-deps.jar +curl -v -O "https://storage.googleapis.com/cloud-opensource-java-linkage-monitor/${JAR}" + +# Fails if there's new linkage errors compared with baseline +java -jar ${JAR} com.google.cloud:libraries-bom diff --git a/.kokoro/nightly/common.cfg b/.kokoro/nightly/common.cfg new file mode 100644 index 000000000000..92edc0678041 --- /dev/null +++ b/.kokoro/nightly/common.cfg @@ -0,0 +1,25 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + regex: "**/*sponge_log.txt" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "java-bigquery/.kokoro/trampoline.sh" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/build.sh" +} + +env_vars: { + key: "JOB_TYPE" + value: "test" +} diff --git a/.kokoro/nightly/dependencies.cfg b/.kokoro/nightly/dependencies.cfg new file mode 100644 index 000000000000..75e48af255c8 --- /dev/null +++ b/.kokoro/nightly/dependencies.cfg @@ -0,0 +1,12 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/dependencies.sh" +} diff --git a/.kokoro/nightly/integration.cfg b/.kokoro/nightly/integration.cfg new file mode 100644 index 000000000000..3b017fc80f04 --- /dev/null +++ b/.kokoro/nightly/integration.cfg @@ -0,0 +1,7 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} diff --git a/.kokoro/nightly/java11.cfg b/.kokoro/nightly/java11.cfg new file mode 100644 index 000000000000..709f2b4c73db --- /dev/null +++ b/.kokoro/nightly/java11.cfg @@ -0,0 +1,7 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java11" +} diff --git a/.kokoro/nightly/java7.cfg b/.kokoro/nightly/java7.cfg new file mode 100644 index 000000000000..cb24f44eea3b --- /dev/null +++ b/.kokoro/nightly/java7.cfg @@ -0,0 +1,7 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java7" +} diff --git a/.kokoro/nightly/java8-osx.cfg b/.kokoro/nightly/java8-osx.cfg new file mode 100644 index 000000000000..d0594f62733b --- /dev/null +++ b/.kokoro/nightly/java8-osx.cfg @@ -0,0 +1,3 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +build_file: "java-bigquery/.kokoro/build.sh" diff --git a/.kokoro/nightly/java8-win.cfg b/.kokoro/nightly/java8-win.cfg new file mode 100644 index 000000000000..7a273e2faefc --- /dev/null +++ b/.kokoro/nightly/java8-win.cfg @@ -0,0 +1,3 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +build_file: "java-bigquery/.kokoro/build.bat" diff --git a/.kokoro/nightly/java8.cfg b/.kokoro/nightly/java8.cfg new file mode 100644 index 000000000000..3b017fc80f04 --- /dev/null +++ b/.kokoro/nightly/java8.cfg @@ -0,0 +1,7 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} diff --git a/.kokoro/nightly/lint.cfg b/.kokoro/nightly/lint.cfg new file mode 100644 index 000000000000..6d323c8ae768 --- /dev/null +++ b/.kokoro/nightly/lint.cfg @@ -0,0 +1,13 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. + +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "JOB_TYPE" + value: "lint" +} \ No newline at end of file diff --git a/.kokoro/presubmit/clirr.cfg b/.kokoro/presubmit/clirr.cfg new file mode 100644 index 000000000000..ec572442e2e7 --- /dev/null +++ b/.kokoro/presubmit/clirr.cfg @@ -0,0 +1,13 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. + +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "JOB_TYPE" + value: "clirr" +} \ No newline at end of file diff --git a/.kokoro/presubmit/common.cfg b/.kokoro/presubmit/common.cfg new file mode 100644 index 000000000000..ac89b8afc4c3 --- /dev/null +++ b/.kokoro/presubmit/common.cfg @@ -0,0 +1,34 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + regex: "**/*sponge_log.txt" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "java-bigquery/.kokoro/trampoline.sh" + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/build.sh" +} + +env_vars: { + key: "JOB_TYPE" + value: "test" +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "dpebot_codecov_token" + } + } +} diff --git a/.kokoro/presubmit/dependencies.cfg b/.kokoro/presubmit/dependencies.cfg new file mode 100644 index 000000000000..75e48af255c8 --- /dev/null +++ b/.kokoro/presubmit/dependencies.cfg @@ -0,0 +1,12 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/dependencies.sh" +} diff --git a/.kokoro/presubmit/integration.cfg b/.kokoro/presubmit/integration.cfg new file mode 100644 index 000000000000..141f90c13c56 --- /dev/null +++ b/.kokoro/presubmit/integration.cfg @@ -0,0 +1,31 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "JOB_TYPE" + value: "integration" +} + +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "keystore/73713_java_it_service_account" +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "java_it_service_account" + } + } +} diff --git a/.kokoro/presubmit/java11.cfg b/.kokoro/presubmit/java11.cfg new file mode 100644 index 000000000000..709f2b4c73db --- /dev/null +++ b/.kokoro/presubmit/java11.cfg @@ -0,0 +1,7 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java11" +} diff --git a/.kokoro/presubmit/java7.cfg b/.kokoro/presubmit/java7.cfg new file mode 100644 index 000000000000..cb24f44eea3b --- /dev/null +++ b/.kokoro/presubmit/java7.cfg @@ -0,0 +1,7 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java7" +} diff --git a/.kokoro/presubmit/java8-osx.cfg b/.kokoro/presubmit/java8-osx.cfg new file mode 100644 index 000000000000..d0594f62733b --- /dev/null +++ b/.kokoro/presubmit/java8-osx.cfg @@ -0,0 +1,3 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +build_file: "java-bigquery/.kokoro/build.sh" diff --git a/.kokoro/presubmit/java8-win.cfg b/.kokoro/presubmit/java8-win.cfg new file mode 100644 index 000000000000..7a273e2faefc --- /dev/null +++ b/.kokoro/presubmit/java8-win.cfg @@ -0,0 +1,3 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +build_file: "java-bigquery/.kokoro/build.bat" diff --git a/.kokoro/presubmit/java8.cfg b/.kokoro/presubmit/java8.cfg new file mode 100644 index 000000000000..3b017fc80f04 --- /dev/null +++ b/.kokoro/presubmit/java8.cfg @@ -0,0 +1,7 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} diff --git a/.kokoro/presubmit/linkage-monitor.cfg b/.kokoro/presubmit/linkage-monitor.cfg new file mode 100644 index 000000000000..0876c4c8a2b5 --- /dev/null +++ b/.kokoro/presubmit/linkage-monitor.cfg @@ -0,0 +1,12 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/linkage-monitor.sh" +} \ No newline at end of file diff --git a/.kokoro/presubmit/lint.cfg b/.kokoro/presubmit/lint.cfg new file mode 100644 index 000000000000..6d323c8ae768 --- /dev/null +++ b/.kokoro/presubmit/lint.cfg @@ -0,0 +1,13 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. + +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "JOB_TYPE" + value: "lint" +} \ No newline at end of file diff --git a/.kokoro/release/bump_snapshot.cfg b/.kokoro/release/bump_snapshot.cfg new file mode 100644 index 000000000000..a9df23a26cde --- /dev/null +++ b/.kokoro/release/bump_snapshot.cfg @@ -0,0 +1,53 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + } +} + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "java-bigquery/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" +} + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/release/bump_snapshot.sh" +} + +# tokens used by release-please to keep an up-to-date release PR. +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "github-magic-proxy-key-release-please" + } + } +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "github-magic-proxy-token-release-please" + } + } +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "github-magic-proxy-url-release-please" + } + } +} diff --git a/.kokoro/release/bump_snapshot.sh b/.kokoro/release/bump_snapshot.sh new file mode 100755 index 000000000000..cda46bf27a01 --- /dev/null +++ b/.kokoro/release/bump_snapshot.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +export NPM_CONFIG_PREFIX=/home/node/.npm-global + +if [ -f ${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please ]; then + # Groom the snapshot release PR immediately after publishing a release + npx release-please release-pr --token=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-token-release-please \ + --repo-url=googleapis/java-bigquery \ + --package-name="bigquery" \ + --api-url=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please \ + --proxy-key=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-key-release-please \ + --snapshot \ + --release-type=java-auth-yoshi +fi diff --git a/.kokoro/release/common.cfg b/.kokoro/release/common.cfg new file mode 100644 index 000000000000..6d3d52351b22 --- /dev/null +++ b/.kokoro/release/common.cfg @@ -0,0 +1,49 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Download trampoline resources. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" + +# Use the trampoline script to run in docker. +build_file: "java-bigquery/.kokoro/trampoline.sh" + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 70247 + keyname: "maven-gpg-keyring" + } + } +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 70247 + keyname: "maven-gpg-passphrase" + } + } +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 70247 + keyname: "maven-gpg-pubkeyring" + } + } +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 70247 + keyname: "sonatype-credentials" + } + } +} diff --git a/.kokoro/release/common.sh b/.kokoro/release/common.sh new file mode 100755 index 000000000000..6e3f65999b3d --- /dev/null +++ b/.kokoro/release/common.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# Copyright 2018 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +# Get secrets from keystore and set and environment variables +setup_environment_secrets() { + export GPG_PASSPHRASE=$(cat ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-passphrase) + export GPG_TTY=$(tty) + export GPG_HOMEDIR=/gpg + mkdir $GPG_HOMEDIR + mv ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-pubkeyring $GPG_HOMEDIR/pubring.gpg + mv ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-keyring $GPG_HOMEDIR/secring.gpg + export SONATYPE_USERNAME=$(cat ${KOKORO_KEYSTORE_DIR}/70247_sonatype-credentials | cut -f1 -d'|') + export SONATYPE_PASSWORD=$(cat ${KOKORO_KEYSTORE_DIR}/70247_sonatype-credentials | cut -f2 -d'|') +} + +create_settings_xml_file() { + echo " + + + ossrh + ${SONATYPE_USERNAME} + ${SONATYPE_PASSWORD} + + + sonatype-nexus-staging + ${SONATYPE_USERNAME} + ${SONATYPE_PASSWORD} + + + sonatype-nexus-snapshots + ${SONATYPE_USERNAME} + ${SONATYPE_PASSWORD} + + +" > $1 +} \ No newline at end of file diff --git a/.kokoro/release/drop.cfg b/.kokoro/release/drop.cfg new file mode 100644 index 000000000000..0040a6262e7b --- /dev/null +++ b/.kokoro/release/drop.cfg @@ -0,0 +1,6 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/release/drop.sh" +} diff --git a/.kokoro/release/drop.sh b/.kokoro/release/drop.sh new file mode 100755 index 000000000000..5c4551efa2c0 --- /dev/null +++ b/.kokoro/release/drop.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Copyright 2018 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +# STAGING_REPOSITORY_ID must be set +if [ -z "${STAGING_REPOSITORY_ID}" ]; then + echo "Missing STAGING_REPOSITORY_ID environment variable" + exit 1 +fi + +source $(dirname "$0")/common.sh +pushd $(dirname "$0")/../../ + +setup_environment_secrets +create_settings_xml_file "settings.xml" + +mvn nexus-staging:drop -B \ + --settings=settings.xml \ + -DstagingRepositoryId=${STAGING_REPOSITORY_ID} diff --git a/.kokoro/release/promote.cfg b/.kokoro/release/promote.cfg new file mode 100644 index 000000000000..5bc020921841 --- /dev/null +++ b/.kokoro/release/promote.cfg @@ -0,0 +1,6 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/release/promote.sh" +} diff --git a/.kokoro/release/promote.sh b/.kokoro/release/promote.sh new file mode 100755 index 000000000000..1fa95fa537a3 --- /dev/null +++ b/.kokoro/release/promote.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# Copyright 2018 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +# STAGING_REPOSITORY_ID must be set +if [ -z "${STAGING_REPOSITORY_ID}" ]; then + echo "Missing STAGING_REPOSITORY_ID environment variable" + exit 1 +fi + +source $(dirname "$0")/common.sh + +pushd $(dirname "$0")/../../ + +setup_environment_secrets +create_settings_xml_file "settings.xml" + +mvn nexus-staging:release -B \ + -DperformRelease=true \ + --settings=settings.xml \ + -DstagingRepositoryId=${STAGING_REPOSITORY_ID} diff --git a/.kokoro/release/publish_javadoc.cfg b/.kokoro/release/publish_javadoc.cfg new file mode 100644 index 000000000000..e2fbf8c1114b --- /dev/null +++ b/.kokoro/release/publish_javadoc.cfg @@ -0,0 +1,19 @@ +# Format: //devtools/kokoro/config/proto/build.proto +env_vars: { + key: "STAGING_BUCKET" + value: "docs-staging" +} + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/release/publish_javadoc.sh" +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "docuploader_service_account" + } + } +} diff --git a/.kokoro/release/publish_javadoc.sh b/.kokoro/release/publish_javadoc.sh new file mode 100755 index 000000000000..a5a508ba4694 --- /dev/null +++ b/.kokoro/release/publish_javadoc.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# Copyright 2019 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +if [[ -z "${CREDENTIALS}" ]]; then + CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account +fi + +if [[ -z "${STAGING_BUCKET}" ]]; then + echo "Need to set STAGING_BUCKET environment variable" + exit 1 +fi + +# work from the git root directory +pushd $(dirname "$0")/../../ + +# install docuploader package +python3 -m pip install gcp-docuploader + +# compile all packages +mvn clean install -B -DskipTests=true + +NAME=google-cloud-bigquery +VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) + +# build the docs +mvn site -B + +pushd target/site/apidocs + +# create metadata +python3 -m docuploader create-metadata \ + --name ${NAME} \ + --version ${VERSION} \ + --language java + +# upload docs +python3 -m docuploader upload . \ + --credentials ${CREDENTIALS} \ + --staging-bucket ${STAGING_BUCKET} + +popd diff --git a/.kokoro/release/snapshot.cfg b/.kokoro/release/snapshot.cfg new file mode 100644 index 000000000000..effcaa3127f0 --- /dev/null +++ b/.kokoro/release/snapshot.cfg @@ -0,0 +1,6 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/release/snapshot.sh" +} \ No newline at end of file diff --git a/.kokoro/release/snapshot.sh b/.kokoro/release/snapshot.sh new file mode 100755 index 000000000000..098168a7373c --- /dev/null +++ b/.kokoro/release/snapshot.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +source $(dirname "$0")/common.sh +MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml +pushd $(dirname "$0")/../../ + +# ensure we're trying to push a snapshot (no-result returns non-zero exit code) +grep SNAPSHOT versions.txt + +setup_environment_secrets +create_settings_xml_file "settings.xml" + +mvn clean install deploy -B \ + --settings ${MAVEN_SETTINGS_FILE} \ + -DperformRelease=true \ + -Dgpg.executable=gpg \ + -Dgpg.passphrase=${GPG_PASSPHRASE} \ + -Dgpg.homedir=${GPG_HOMEDIR} diff --git a/.kokoro/release/stage.cfg b/.kokoro/release/stage.cfg new file mode 100644 index 000000000000..20c09f1c53cf --- /dev/null +++ b/.kokoro/release/stage.cfg @@ -0,0 +1,44 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/release/stage.sh" +} + +# Need to save the properties file +action { + define_artifacts { + regex: "github/java-bigquery/target/nexus-staging/staging/*.properties" + strip_prefix: "github/java-bigquery" + } +} + +# Fetch the token needed for reporting release status to GitHub +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "yoshi-automation-github-key" + } + } +} + +# Fetch magictoken to use with Magic Github Proxy +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "releasetool-magictoken" + } + } +} + +# Fetch api key to use with Magic Github Proxy +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "magic-github-proxy-api-key" + } + } +} diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh new file mode 100755 index 000000000000..3c482cbc55f1 --- /dev/null +++ b/.kokoro/release/stage.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# Copyright 2018 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +# Start the releasetool reporter +python3 -m pip install gcp-releasetool +python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script + +source $(dirname "$0")/common.sh +MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml +pushd $(dirname "$0")/../../ + +setup_environment_secrets +create_settings_xml_file "settings.xml" + +mvn clean install deploy -B \ + --settings ${MAVEN_SETTINGS_FILE} \ + -DskipTests=true \ + -DperformRelease=true \ + -Dgpg.executable=gpg \ + -Dgpg.passphrase=${GPG_PASSPHRASE} \ + -Dgpg.homedir=${GPG_HOMEDIR} + +if [[ -n "${AUTORELEASE_PR}" ]] +then + mvn nexus-staging:release -B \ + -DperformRelease=true \ + --settings=settings.xml +fi \ No newline at end of file diff --git a/.kokoro/trampoline.sh b/.kokoro/trampoline.sh new file mode 100644 index 000000000000..ba17ce01466b --- /dev/null +++ b/.kokoro/trampoline.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# Copyright 2018 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +set -eo pipefail +# Always run the cleanup script, regardless of the success of bouncing into +# the container. +function cleanup() { + chmod +x ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh + ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh + echo "cleanup"; +} +trap cleanup EXIT +python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py" diff --git a/google-cloud-bigquery/.repo-metadata.json b/.repo-metadata.json similarity index 72% rename from google-cloud-bigquery/.repo-metadata.json rename to .repo-metadata.json index eeadbfc8d641..1e243b87bab6 100644 --- a/google-cloud-bigquery/.repo-metadata.json +++ b/.repo-metadata.json @@ -2,12 +2,12 @@ "name": "bigquery", "name_pretty": "Google Cloud Bigquery", "product_documentation": "https://cloud.google.com/bigquery", - "client_documentation": "https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html", + "client_documentation": "https://googleapis.dev/java/google-cloud-bigquery/latest", "issue_tracker": "https://issuetracker.google.com/savedsearches/559654", "release_level": "ga", "language": "java", - "repo": "googleapis/google-cloud-java", - "repo_short": "google-cloud-java", + "repo": "googleapis/java-bigquery", + "repo_short": "java-bigquery", "distribution_name": "com.google.cloud:google-cloud-bigquery", "api_id": "bigquery.googleapis.com" } \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000000..6b2238bb75e0 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,93 @@ +# Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of +experience, education, socio-economic status, nationality, personal appearance, +race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, or to ban temporarily or permanently any +contributor for other behaviors that they deem inappropriate, threatening, +offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +This Code of Conduct also applies outside the project spaces when the Project +Steward has a reasonable belief that an individual's behavior may have a +negative impact on the project or its community. + +## Conflict Resolution + +We do not believe that all conflict is bad; healthy debate and disagreement +often yield positive results. However, it is never okay to be disrespectful or +to engage in behavior that violates the project’s code of conduct. + +If you see someone violating the code of conduct, you are encouraged to address +the behavior directly with those involved. Many issues can be resolved quickly +and easily, and this gives people more control over the outcome of their +dispute. If you are unable to resolve the matter for any reason, or if the +behavior is threatening or harassing, report it. We are dedicated to providing +an environment where participants feel welcome and safe. + +Reports should be directed to *[PROJECT STEWARD NAME(s) AND EMAIL(s)]*, the +Project Steward(s) for *[PROJECT NAME]*. It is the Project Steward’s duty to +receive and address reported violations of the code of conduct. They will then +work with a committee consisting of representatives from the Open Source +Programs Office and the Google Open Source Strategy team. If for any reason you +are uncomfortable reaching out the Project Steward, please email +opensource@google.com. + +We will investigate every complaint, but you may not receive a direct response. +We will use our discretion in determining when and how to follow up on reported +incidents, which may range from not taking action to permanent expulsion from +the project and project-sponsored spaces. We will notify the accused of the +report and provide them an opportunity to discuss it before any action is taken. +The identity of the reporter will be omitted from the details of the report +supplied to the accused. In potentially harmful situations, such as ongoing +harassment or threats to anyone's safety, we may take action without notice. + +## Attribution + +This Code of Conduct is adapted from the Contributor Covenant, version 1.4, +available at +https://www.contributor-covenant.org/version/1/4/code-of-conduct.html \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000000..ebbb59e5310f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,28 @@ +# How to Contribute + +We'd love to accept your patches and contributions to this project. There are +just a few small guidelines you need to follow. + +## Contributor License Agreement + +Contributions to this project must be accompanied by a Contributor License +Agreement. You (or your employer) retain the copyright to your contribution; +this simply gives us permission to use and redistribute your contributions as +part of the project. Head over to to see +your current agreements on file or to sign a new one. + +You generally only need to submit a CLA once, so if you've already submitted one +(even if it was for a different project), you probably don't need to do it +again. + +## Code reviews + +All submissions, including submissions by project members, require review. We +use GitHub pull requests for this purpose. Consult +[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more +information on using pull requests. + +## Community Guidelines + +This project follows +[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/). \ No newline at end of file diff --git a/LICENSE b/LICENSE index 4eedc0116add..d64569567334 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,5 @@ -Apache License + + Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ @@ -178,7 +179,7 @@ Apache License APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" + boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a diff --git a/google-cloud-bigquery/README.md b/README.md similarity index 100% rename from google-cloud-bigquery/README.md rename to README.md diff --git a/codecov.yaml b/codecov.yaml new file mode 100644 index 000000000000..5724ea9478d7 --- /dev/null +++ b/codecov.yaml @@ -0,0 +1,4 @@ +--- +codecov: + ci: + - source.cloud.google.com diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml new file mode 100644 index 000000000000..15bf91958161 --- /dev/null +++ b/google-cloud-bigquery-bom/pom.xml @@ -0,0 +1,83 @@ + + + 4.0.0 + com.google.cloud + google-cloud-bigquery-bom + 1.102.1-SNAPSHOT + pom + + com.google.cloud + google-cloud-shared-config + 0.2.1 + + + Google Cloud bigquery BOM + https://github.com/googleapis/java-bigquery + + BOM for BigQuery + + + + Google LLC + + + + + chingor13 + Jeff Ching + chingor@google.com + Google LLC + + Developer + + + + + + scm:git:https://github.com/googleapis/java-bigquery.git + scm:git:git@github.com:googleapis/java-bigquery.git + https://github.com/googleapis/java-bigquery + + + + + sonatype-nexus-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + + sonatype-nexus-staging + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + + + + com.google.cloud + google-cloud-bigquery + 1.102.1-SNAPSHOT + + + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + + true + + + + + \ No newline at end of file diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4653be53baaf..3295dd506fd6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -1,18 +1,17 @@ 4.0.0 + com.google.cloud google-cloud-bigquery 1.102.1-SNAPSHOT jar - Google Cloud BigQuery - https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigquery - - Java idiomatic client for Google Cloud BigQuery. - + BigQuery + https://github.com/googleapis/java-bigquery + BigQuery com.google.cloud - google-cloud-clients - 0.120.1-alpha-SNAPSHOT + google-cloud-bigquery-parent + 1.102.1-SNAPSHOT google-cloud-bigquery @@ -21,35 +20,71 @@ com.google.cloud google-cloud-core + ${google.core.version} com.google.cloud google-cloud-core-http + ${google.core.version} + + + com.google.cloud + google-cloud-storage + + + com.google.http-client + google-http-client-jackson2 com.google.auto.value - auto-value - provided + auto-value-annotations - com.google.cloud - google-cloud-storage - 1.102.1-SNAPSHOT - test + com.google.http-client + google-http-client + + + org.checkerframework + checker-compat-qual + + + com.google.auth + google-auth-library-oauth2-http + + + com.google.code.findbugs + jsr305 com.google.apis google-api-services-bigquery - v2-rev20190917-1.30.3 - - com.google.cloud google-cloud-core - test-jar + ${google.core.version} + tests test + + com.google.api + api-common + + + + com.google.guava + guava + + + com.google.api + gax + + + org.threeten + threetenbp + + + junit junit @@ -58,19 +93,17 @@ com.google.truth truth - test org.easymock easymock - test org.objenesis objenesis - test + @@ -103,4 +136,19 @@ - + + + + java9 + + [9,) + + + + javax.annotation + javax.annotation-api + + + + + \ No newline at end of file diff --git a/java.header b/java.header new file mode 100644 index 000000000000..3a9b503aa24f --- /dev/null +++ b/java.header @@ -0,0 +1,15 @@ +^/\*$ +^ \* Copyright \d\d\d\d,? Google (Inc\.|LLC)( All [rR]ights [rR]eserved\.)?$ +^ \*$ +^ \* Licensed under the Apache License, Version 2\.0 \(the "License"\);$ +^ \* you may not use this file except in compliance with the License\.$ +^ \* You may obtain a copy of the License at$ +^ \*$ +^ \*[ ]+https?://www.apache.org/licenses/LICENSE-2\.0$ +^ \*$ +^ \* Unless required by applicable law or agreed to in writing, software$ +^ \* distributed under the License is distributed on an "AS IS" BASIS,$ +^ \* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied\.$ +^ \* See the License for the specific language governing permissions and$ +^ \* limitations under the License\.$ +^ \*/$ diff --git a/license-checks.xml b/license-checks.xml new file mode 100644 index 000000000000..6597fced808e --- /dev/null +++ b/license-checks.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 000000000000..d832a56245fe --- /dev/null +++ b/pom.xml @@ -0,0 +1,346 @@ + + + 4.0.0 + com.google.cloud + google-cloud-bigquery-parent + pom + 1.102.1-SNAPSHOT + BigQuery Parent + https://github.com/googleapis/java-bigquery + + Java idiomatic client for Google Cloud Platform services. + + + + com.google.cloud + google-cloud-shared-config + 0.3.0 + + + + + chingor + Jeff Ching + chingor@google.com + Google + + Developer + + + + + Google LLC + + + scm:git:git@github.com:googleapis/java-bigquery.git + scm:git:git@github.com:googleapis/java-bigquery.git + https://github.com/googleapis/java-bigquery + HEAD + + + https://github.com/googleapis/java-bigquery/issues + GitHub Issues + + + + sonatype-nexus-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + + sonatype-nexus-staging + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + + + + Apache-2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + + + + + UTF-8 + UTF-8 + github + google-cloud-bigquery-parent + 1.91.3 + 1.8.1 + 1.17.0 + 1.49.1 + 1.25.0 + 3.11.1 + 4.12 + 28.1-android + 1.4.0 + 1.3.2 + 1.18 + v2-rev20190917-1.30.3 + + + + + + + com.google.code.findbugs + jsr305 + 3.0.2 + + + com.google.http-client + google-http-client-jackson2 + 1.32.1 + + + com.google.http-client + google-http-client + 1.32.1 + + + com.google.auth + google-auth-library-oauth2-http + 0.18.0 + + + org.checkerframework + checker-compat-qual + 2.5.5 + + + com.google.auto.value + auto-value-annotations + ${auto-value-annotations.version} + + + com.google.cloud + google-cloud-bigquery + 1.102.1-SNAPSHOT + + + + io.grpc + grpc-bom + ${grpc.version} + pom + import + + + com.google.api + gax-bom + ${gax.version} + pom + import + + + com.google.guava + guava-bom + ${guava.version} + pom + import + + + + com.google.protobuf + protobuf-java + ${protobuf.version} + + + com.google.api + api-common + ${google.api-common.version} + + + com.google.api.grpc + proto-google-common-protos + ${google.common-protos.version} + + + org.threeten + threetenbp + ${threeten.version} + + + javax.annotation + javax.annotation-api + ${javax.annotations.version} + + + org.codehaus.mojo + animal-sniffer-annotations + ${animal-sniffer.version} + + + + junit + junit + ${junit.version} + test + + + com.google.truth + truth + 1.0 + test + + + org.easymock + easymock + 3.6 + test + + + org.objenesis + objenesis + 2.6 + test + + + + com.google.cloud + google-cloud-storage + 1.99.0 + test + + + com.google.apis + google-api-services-bigquery + ${google-api-services-bigquery.version} + + + + com.google.api + gax-grpc + ${gax.version} + testlib + test + + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + + org.objenesis:objenesis + + + + + + + maven-compiler-plugin + + + + com.google.auto.value + auto-value + ${auto-value.version} + + + + + + + + + google-cloud-bigquery + google-cloud-bigquery-bom + + + + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.0.0 + + + + index + dependency-info + team + ci-management + issue-management + licenses + scm + dependency-management + distribution-management + summary + modules + + + + + true + ${site.installationModule} + jar + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.1.1 + + + html + + aggregate + javadoc + + + + + none + protected + true + ${project.build.directory}/javadoc + + + Test helpers packages + com.google.cloud.testing + + + SPI packages + com.google.cloud.spi* + + + + + https://grpc.io/grpc-java/javadoc/ + https://developers.google.com/protocol-buffers/docs/reference/java/ + https://googleapis.dev/java/google-auth-library/latest/ + https://googleapis.dev/java/gax/latest/ + https://googleapis.github.io/api-common-java/${google.api-common.version}/apidocs/ + + + + + + + + + autovalue-java7 + + 1.7 + + + 1.6.6 + 1.4 + + + + + autovalue-java8 + + [1.8,) + + + 1.6.6 + ${auto-value.version} + + + + + \ No newline at end of file diff --git a/renovate.json b/renovate.json new file mode 100644 index 000000000000..99810470034c --- /dev/null +++ b/renovate.json @@ -0,0 +1,27 @@ +{ + "extends": [ + "config:base" + ], + "ignoreDeps": [], + "packageRules": [ + { + "managers": ["maven"], + "packageNames": ["com.google.guava:guava*"], + "versionScheme": "docker" + }, + { + "packagePatterns": ["^io.grpc:grpc-"], + "groupName": "gRPC packages" + }, + { + "packagePatterns": ["^com.google.protobuf:protobuf-"], + "groupName": "Protobuf packages" + }, + { + "packagePatterns": ["^io.opencensus:opencensus-"], + "groupName": "OpenCensus packages" + } + ], + "semanticCommits": true, + "semanticCommitType": "deps" +} diff --git a/synth.metadata b/synth.metadata new file mode 100644 index 000000000000..2ceefd9b9371 --- /dev/null +++ b/synth.metadata @@ -0,0 +1,19 @@ +{ + "updateTime": "2019-12-06T21:43:14.782329Z", + "sources": [ + { + "generator": { + "name": "artman", + "version": "0.42.1", + "dockerImage": "googleapis/artman@sha256:c773192618c608a7a0415dd95282f841f8e6bcdef7dd760a988c93b77a64bd57" + } + }, + { + "template": { + "name": "java_library", + "origin": "synthtool.gcp", + "version": "2019.10.17" + } + } + ] +} \ No newline at end of file diff --git a/synth.py b/synth.py new file mode 100644 index 000000000000..939b712f301b --- /dev/null +++ b/synth.py @@ -0,0 +1,26 @@ +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""This script is used to synthesize generated parts of this library.""" + +import synthtool as s +import synthtool.gcp as gcp + +gapic = gcp.GAPICGenerator() + +common_templates = gcp.CommonTemplates() +templates = common_templates.java_library() +s.copy(templates, excludes=[ + 'README.md', +]) \ No newline at end of file diff --git a/versions.txt b/versions.txt new file mode 100644 index 000000000000..26e0c3658b03 --- /dev/null +++ b/versions.txt @@ -0,0 +1,4 @@ +# Format: +# module:released-version:current-version + +google-cloud-bigquery:1.102.1-SNAPSHOT:1.102.1-SNAPSHOT \ No newline at end of file From d36a94cec502bb7473e0830ef680e0d27f3a625d Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 7 Dec 2019 01:35:43 +0100 Subject: [PATCH 0242/3441] chore(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.3.0 (#4) --- google-cloud-bigquery-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 15bf91958161..920155619a47 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud google-cloud-shared-config - 0.2.1 + 0.3.0 Google Cloud bigquery BOM From 5e47e12c9dbc0f58f427bc9d482fb699985d2152 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 7 Dec 2019 01:36:48 +0100 Subject: [PATCH 0243/3441] chore(deps): update dependency com.google.cloud:google-cloud-storage to v1.102.0 (#5) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d832a56245fe..a1ce6c1ec0ba 100644 --- a/pom.xml +++ b/pom.xml @@ -197,7 +197,7 @@ com.google.cloud google-cloud-storage - 1.99.0 + 1.102.0 test From 93fe3141848b9c806e3a3d7ccf47b3f4029e2467 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Sat, 7 Dec 2019 01:40:37 +0100 Subject: [PATCH 0244/3441] chore(deps): update gax.version to v1.51.0 (#10) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a1ce6c1ec0ba..ed17f76f9695 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ 1.91.3 1.8.1 1.17.0 - 1.49.1 + 1.51.0 1.25.0 3.11.1 4.12 From d4e28cfcbf71e0ca6037e420b84f7b9dfdcf3be2 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 9 Dec 2019 21:56:31 +0200 Subject: [PATCH 0245/3441] deps: update dependency com.google.http-client:google-http-client to v1.33.0 (#8) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ed17f76f9695..285314f1ddcf 100644 --- a/pom.xml +++ b/pom.xml @@ -93,7 +93,7 @@ com.google.http-client google-http-client - 1.32.1 + 1.33.0 com.google.auth From ec4a6ebbf03f1c6ac51027e63f0e198222a830b6 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Mon, 9 Dec 2019 22:34:12 +0200 Subject: [PATCH 0246/3441] deps: update dependency com.google.http-client:google-http-client-jackson2 to v1.33.0 (#9) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 285314f1ddcf..ef36bbb3ae9f 100644 --- a/pom.xml +++ b/pom.xml @@ -88,7 +88,7 @@ com.google.http-client google-http-client-jackson2 - 1.32.1 + 1.33.0 com.google.http-client From 1b0b21b7dae97507bfcb449ed78fabff636747f5 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 10 Dec 2019 21:18:38 +0530 Subject: [PATCH 0247/3441] fix: parentjobid in listjobs (#20) --- .../com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java | 3 ++- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 5 +---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 445a589b85b9..efebd53a4659 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -510,7 +510,8 @@ public Tuple> listJobs(String projectId, Map op .setStateFilter(Option.STATE_FILTER.>get(options)) .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)) - .setProjection(DEFAULT_PROJECTION); + .setProjection(DEFAULT_PROJECTION) + .setParentJobId(Option.PARENT_JOB_ID.getString(options)); if (Option.MIN_CREATION_TIME.getLong(options) != null) { request.setMinCreationTime(BigInteger.valueOf(Option.MIN_CREATION_TIME.getLong(options))); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index fd1b38f4f91a..ade2e65cf261 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1271,7 +1271,6 @@ public void testQuery() throws InterruptedException { @Test public void testScriptStatistics() throws InterruptedException { - long currentTime = System.currentTimeMillis(); String script = "-- Declare a variable to hold names as an array.\n" + "DECLARE top_names ARRAY;\n" @@ -1295,9 +1294,7 @@ public void testScriptStatistics() throws InterruptedException { JobStatistics jobStatistics = info.getStatistics(); String parentJobId = info.getJobId().getJob(); assertEquals(2, jobStatistics.getNumChildJobs().longValue()); - Page page = - bigquery.listJobs( - JobListOption.parentJobId(parentJobId), JobListOption.minCreationTime(currentTime)); + Page page = bigquery.listJobs(JobListOption.parentJobId(parentJobId)); for (Job job : page.iterateAll()) { JobStatistics.ScriptStatistics scriptStatistics = job.getStatistics().getScriptStatistics(); if (scriptStatistics != null) { From 841d07528b7ac8cd08cbc1f7d843b4e73779965a Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 11 Dec 2019 10:50:36 -0500 Subject: [PATCH 0248/3441] bug: adding getProjectId() when datasetInfo projectId is null (#21) * bug: adding getProjectId() when datasetInfo projectId is null * bug: adding getProjectId() when datasetInfo projectId is null * update based on comment --- .../main/java/com/google/cloud/bigquery/BigQueryImpl.java | 7 ++++++- .../java/com/google/cloud/bigquery/BigQueryImplTest.java | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 85fcadfdec14..4bdc29247def 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -202,7 +202,12 @@ public Page getNextPage() { @Override public Dataset create(DatasetInfo datasetInfo, DatasetOption... options) { final com.google.api.services.bigquery.model.Dataset datasetPb = - datasetInfo.setProjectId(getOptions().getProjectId()).toPb(); + datasetInfo + .setProjectId( + Strings.isNullOrEmpty(datasetInfo.getDatasetId().getProject()) + ? getOptions().getProjectId() + : datasetInfo.getDatasetId().getProject()) + .toPb(); final Map optionsMap = optionMap(options); try { return Dataset.fromPb( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 24cc6a09f0c9..b83c4ca0812e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -478,7 +478,9 @@ public void testCreateDataset() { EasyMock.expect(bigqueryRpcMock.create(datasetInfo.toPb(), EMPTY_RPC_OPTIONS)) .andReturn(datasetInfo.toPb()); EasyMock.replay(bigqueryRpcMock); - bigquery = options.getService(); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); Dataset dataset = bigquery.create(datasetInfo); assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(datasetInfo)), dataset); } From f0bdc4dda5d2078dbf2ef84d7f7bbe09561504a8 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 11 Dec 2019 20:08:56 -0500 Subject: [PATCH 0249/3441] feat: migrate BQ Java samples from java-docs-samples to client lib (#22) * feat: migrate BQ Java samples from java-docs-samples to client lib * Move sample module include into profile * Fix dependency issues --- pom.xml | 13 ++- samples/README.md | 48 ++++++++++ samples/pom.xml | 76 +++++++++++++++ .../com/example/bigquery/AuthSnippets.java | 94 +++++++++++++++++++ .../com/example/bigquery/CreateDataset.java | 49 ++++++++++ .../com/example/bigquery/DeleteDataset.java | 48 ++++++++++ .../com/example/bigquery/ListDatasets.java | 51 ++++++++++ .../example/bigquery/QuickstartSample.java | 46 +++++++++ .../java/com/example/bigquery/SimpleApp.java | 83 ++++++++++++++++ .../example/bigquery/UpdateDatasetAccess.java | 62 ++++++++++++ .../bigquery/UpdateDatasetDescription.java | 50 ++++++++++ .../bigquery/UpdateDatasetExpiration.java | 51 ++++++++++ .../com/example/bigquery/AuthSnippetsIT.java | 54 +++++++++++ .../com/example/bigquery/CreateDatasetIT.java | 50 ++++++++++ .../com/example/bigquery/DeleteDatasetIT.java | 63 +++++++++++++ .../com/example/bigquery/ListDatasetsIT.java | 49 ++++++++++ .../example/bigquery/QuickstartSampleIT.java | 69 ++++++++++++++ .../com/example/bigquery/SimpleAppIT.java | 54 +++++++++++ .../bigquery/UpdateDatasetAccessIT.java | 54 +++++++++++ .../bigquery/UpdateDatasetDescriptionIT.java | 56 +++++++++++ .../bigquery/UpdateDatasetExpirationIT.java | 54 +++++++++++ 21 files changed, 1173 insertions(+), 1 deletion(-) create mode 100644 samples/README.md create mode 100644 samples/pom.xml create mode 100644 samples/src/main/java/com/example/bigquery/AuthSnippets.java create mode 100644 samples/src/main/java/com/example/bigquery/CreateDataset.java create mode 100644 samples/src/main/java/com/example/bigquery/DeleteDataset.java create mode 100644 samples/src/main/java/com/example/bigquery/ListDatasets.java create mode 100644 samples/src/main/java/com/example/bigquery/QuickstartSample.java create mode 100644 samples/src/main/java/com/example/bigquery/SimpleApp.java create mode 100644 samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java create mode 100644 samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java create mode 100644 samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java create mode 100644 samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java create mode 100644 samples/src/test/java/com/example/bigquery/CreateDatasetIT.java create mode 100644 samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java create mode 100644 samples/src/test/java/com/example/bigquery/ListDatasetsIT.java create mode 100644 samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java create mode 100644 samples/src/test/java/com/example/bigquery/SimpleAppIT.java create mode 100644 samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java create mode 100644 samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java create mode 100644 samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java diff --git a/pom.xml b/pom.xml index ef36bbb3ae9f..a346977b4e41 100644 --- a/pom.xml +++ b/pom.xml @@ -246,7 +246,7 @@ google-cloud-bigquery - google-cloud-bigquery-bom + google-cloud-bigquery-bom @@ -341,6 +341,17 @@ ${auto-value.version} + + + samples-java8AndNewer + + [1.8,) + + + samples + + + \ No newline at end of file diff --git a/samples/README.md b/samples/README.md new file mode 100644 index 000000000000..b1988a7f834c --- /dev/null +++ b/samples/README.md @@ -0,0 +1,48 @@ +# Getting Started with BigQuery and the Google Java API Client library + + +Open in Cloud Shell + +[Google's BigQuery Service][BigQuery] features a REST-based API that allows +developers to create applications to run ad-hoc queries on massive datasets. +These sample Java applications demonstrate how to access the BigQuery API using +the [Google Cloud Client Library for Java][google-cloud-java]. + +[BigQuery]: https://cloud.google.com/bigquery/ +[google-cloud-java]: https://github.com/GoogleCloudPlatform/google-cloud-java + +## Quickstart + +Install [Maven](http://maven.apache.org/). + +[Authenticate using a service account](https://cloud.google.com/docs/authentication/getting-started). +Create a service account, download a JSON key file, and set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable. + +Build your project with: + + mvn clean package -DskipTests + +You can then run a given `ClassName` via: + + mvn exec:java -Dexec.mainClass=com.example.bigquery.ClassName \ + -DpropertyName=propertyValue \ + -Dexec.args="any arguments to the app" + +### Creating a new dataset (using the quickstart sample) + + mvn exec:java -Dexec.mainClass=com.example.bigquery.QuickstartSample + +### Running a query using standard SQL syntax + + mvn exec:java -Dexec.mainClass=com.example.bigquery.QuerySample \ + -Dexec.args=' \ + --query="SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;" \ + --runStandardSqlQuery' + +### Running the simple app example + +To run the example from the [simple app example +documentation](https://cloud.google.com/bigquery/create-simple-app-api): + + mvn exec:java -Dexec.mainClass=com.example.bigquery.SimpleApp + diff --git a/samples/pom.xml b/samples/pom.xml new file mode 100644 index 000000000000..de6e9e98444f --- /dev/null +++ b/samples/pom.xml @@ -0,0 +1,76 @@ + + + 4.0.0 + com.example.bigquery + bigquery-google-cloud-samples + jar + + + + com.google.cloud.samples + shared-configuration + 1.0.11 + + + + 1.8 + 1.8 + UTF-8 + + + + + + com.google.cloud + google-cloud-bigquery + 1.100.0 + + + + com.google.api + gax + 1.49.1 + + + com.google.cloud + google-cloud-core + 1.91.3 + + + com.google.auth + google-auth-library-oauth2-http + 0.18.0 + + + + + junit + junit + 4.13-beta-3 + test + + + com.google.truth + truth + 1.0 + test + + + diff --git a/samples/src/main/java/com/example/bigquery/AuthSnippets.java b/samples/src/main/java/com/example/bigquery/AuthSnippets.java new file mode 100644 index 000000000000..a1f3bfb3e938 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/AuthSnippets.java @@ -0,0 +1,94 @@ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import com.google.auth.oauth2.GoogleCredentials; +import com.google.auth.oauth2.ServiceAccountCredentials; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +/** + * Examples for authenticating to Google BigQuery. + * + *

    See: https://cloud.google.com/bigquery/authentication + */ +public class AuthSnippets { + + // [START bigquery_client_default_credentials] + public static void implicit() { + // Instantiate a client. If you don't specify credentials when constructing a client, the + // client library will look for credentials in the environment, such as the + // GOOGLE_APPLICATION_CREDENTIALS environment variable. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Use the client. + System.out.println("Datasets:"); + for (Dataset dataset : bigquery.listDatasets().iterateAll()) { + System.out.printf("%s%n", dataset.getDatasetId().getDataset()); + } + } + // [END bigquery_client_default_credentials] + + // [START bigquery_client_json_credentials] + public static void explicit() throws IOException { + // Load credentials from JSON key file. If you can't set the GOOGLE_APPLICATION_CREDENTIALS + // environment variable, you can explicitly load the credentials file to construct the + // credentials. + GoogleCredentials credentials; + File credentialsPath = new File("service_account.json"); // TODO: update to your key path. + try (FileInputStream serviceAccountStream = new FileInputStream(credentialsPath)) { + credentials = ServiceAccountCredentials.fromStream(serviceAccountStream); + } + + // Instantiate a client. + BigQuery bigquery = + BigQueryOptions.newBuilder().setCredentials(credentials).build().getService(); + + // Use the client. + System.out.println("Datasets:"); + for (Dataset dataset : bigquery.listDatasets().iterateAll()) { + System.out.printf("%s%n", dataset.getDatasetId().getDataset()); + } + } + // [END bigquery_client_json_credentials] + + public static void main(String... args) throws IOException { + boolean validArgs = args.length == 1; + String sample = "explicit"; + if (validArgs) { + sample = args[0]; + if (!sample.equals("explicit") && !sample.equals("implicit")) { + validArgs = false; + } + } + + if (!validArgs) { + System.err.println("Expected auth type argument: implict|explict"); + System.exit(1); + } + + if (sample.equals("implicit")) { + implicit(); + } else { + explicit(); + } + } +} diff --git a/samples/src/main/java/com/example/bigquery/CreateDataset.java b/samples/src/main/java/com/example/bigquery/CreateDataset.java new file mode 100644 index 000000000000..f61fce6577a1 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/CreateDataset.java @@ -0,0 +1,49 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_dataset] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetInfo; + +public class CreateDataset { + + public static void runCreateDataset() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "my-dataset-name"; + createDataset(datasetName); + } + + public static void createDataset(String datasetName) { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build(); + try { + Dataset newDataset = bigquery.create(datasetInfo); + String newDatasetName = newDataset.getDatasetId().getDataset(); + System.out.println(newDatasetName + " created successfully"); + } catch (BigQueryException e) { + System.out.println("Dataset was not created. \n" + e.toString()); + } + } +} +// [END bigquery create_dataset] diff --git a/samples/src/main/java/com/example/bigquery/DeleteDataset.java b/samples/src/main/java/com/example/bigquery/DeleteDataset.java new file mode 100644 index 000000000000..f0f8ac96a69b --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/DeleteDataset.java @@ -0,0 +1,48 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_delete_dataset] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.DatasetId; + +public class DeleteDataset { + + public static void runDeleteDataset() { + // TODO(developer): Replace these variables before running the sample.\ + String projectId = "my-project-id"; + String datasetName = "my-dataset-name"; + deleteDataset(projectId, datasetName); + } + + public static void deleteDataset(String projectId, String datasetName) { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + DatasetId datasetId = DatasetId.of(projectId, datasetName); + boolean success = bigquery.delete(datasetId, DatasetDeleteOption.deleteContents()); + if (success) { + System.out.println("Dataset deleted successfully"); + } else { + System.out.println("Dataset was not found"); + } + } +} +// [END bigquery_delete_dataset] diff --git a/samples/src/main/java/com/example/bigquery/ListDatasets.java b/samples/src/main/java/com/example/bigquery/ListDatasets.java new file mode 100644 index 000000000000..69f8b91afc7c --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/ListDatasets.java @@ -0,0 +1,51 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_list_datasets] +import com.google.api.gax.paging.Page; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.DatasetListOption; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; + +public class ListDatasets { + + public static void runListDatasets() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "my-project-id"; + listDatasets(projectId); + } + + public static void listDatasets(String projectId) { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // List datasets in a specified project + try { + Page datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100)); + for (Dataset dataset : datasets.iterateAll()) { + System.out.println(dataset.getDatasetId() + " dataset in project listed successfully"); + } + } catch (BigQueryException e) { + System.out.println("Project does not contain any datasets \n" + e.toString()); + } + } +} +// [END bigquery_list_datasets] diff --git a/samples/src/main/java/com/example/bigquery/QuickstartSample.java b/samples/src/main/java/com/example/bigquery/QuickstartSample.java new file mode 100644 index 000000000000..edcf0df965dc --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/QuickstartSample.java @@ -0,0 +1,46 @@ +/* + * Copyright 2016 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_quickstart] +// Imports the Google Cloud client library +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetInfo; + +public class QuickstartSample { + public static void main(String... args) throws Exception { + // Instantiate a client. If you don't specify credentials when constructing a client, the + // client library will look for credentials in the environment, such as the + // GOOGLE_APPLICATION_CREDENTIALS environment variable. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // The name for the new dataset + String datasetName = "my_new_dataset"; + + // Prepares a new dataset + Dataset dataset = null; + DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build(); + + // Creates the dataset + dataset = bigquery.create(datasetInfo); + + System.out.printf("Dataset %s created.%n", dataset.getDatasetId().getDataset()); + } +} +// [END bigquery_quickstart] diff --git a/samples/src/main/java/com/example/bigquery/SimpleApp.java b/samples/src/main/java/com/example/bigquery/SimpleApp.java new file mode 100644 index 000000000000..867e6397993f --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/SimpleApp.java @@ -0,0 +1,83 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_simple_app_all] +// [START bigquery_simple_app_deps] + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FieldValueList; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; +import java.util.UUID; + +// [END bigquery_simple_app_deps] + +public class SimpleApp { + public static void main(String... args) throws Exception { + // [START bigquery_simple_app_client] + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + // [END bigquery_simple_app_client] + // [START bigquery_simple_app_query] + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder( + "SELECT " + + "CONCAT('https://stackoverflow.com/questions/', CAST(id as STRING)) as url, " + + "view_count " + + "FROM `bigquery-public-data.stackoverflow.posts_questions` " + + "WHERE tags like '%google-bigquery%' " + + "ORDER BY favorite_count DESC LIMIT 10") + // Use standard SQL syntax for queries. + // See: https://cloud.google.com/bigquery/sql-reference/ + .setUseLegacySql(false) + .build(); + + // Create a job ID so that we can safely retry. + JobId jobId = JobId.of(UUID.randomUUID().toString()); + Job queryJob = bigquery.create(JobInfo.newBuilder(queryConfig).setJobId(jobId).build()); + + // Wait for the query to complete. + queryJob = queryJob.waitFor(); + + // Check for errors + if (queryJob == null) { + throw new RuntimeException("Job no longer exists"); + } else if (queryJob.getStatus().getError() != null) { + // You can also look at queryJob.getStatus().getExecutionErrors() for all + // errors, not just the latest one. + throw new RuntimeException(queryJob.getStatus().getError().toString()); + } + // [END bigquery_simple_app_query] + + // [START bigquery_simple_app_print] + // Get the results. + TableResult result = queryJob.getQueryResults(); + + // Print all pages of the results. + for (FieldValueList row : result.iterateAll()) { + String url = row.get("url").getStringValue(); + long viewCount = row.get("view_count").getLongValue(); + System.out.printf("url: %s views: %d%n", url, viewCount); + } + // [END bigquery_simple_app_print] + } +} +// [END bigquery_simple_app_all] diff --git a/samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java b/samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java new file mode 100644 index 000000000000..1166a2baa2a6 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java @@ -0,0 +1,62 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_dataset_access] +import com.google.cloud.bigquery.Acl; +import com.google.cloud.bigquery.Acl.Role; +import com.google.cloud.bigquery.Acl.User; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import java.util.ArrayList; + +public class UpdateDatasetAccess { + + public static void runUpdateDatasetAccess() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "my-dataset-name"; + updateDatasetAccess(datasetName); + } + + public static void updateDatasetAccess(String datasetName) { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Dataset dataset = bigquery.getDataset(datasetName); + + // Create a new ACL granting the READER role to "sample.bigquery.dev@gmail.com" + // For more information on the types of ACLs available see: + // https://cloud.google.com/storage/docs/access-control/lists + Acl newEntry = Acl.of(new User("sample.bigquery.dev@gmail.com"), Role.READER); + + // Get a copy of the ACLs list from the dataset and append the new entry + ArrayList acls = new ArrayList<>(dataset.getAcl()); + acls.add(newEntry); + + // Update the dataset to use the new ACLs + try { + bigquery.update(dataset.toBuilder().setAcl(acls).build()); + System.out.println("Dataset Access Control updated successfully"); + } catch (BigQueryException e) { + System.out.println("Dataset Access control was not updated \n" + e.toString()); + } + } +} +// [END bigquery_update_dataset_access] diff --git a/samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java b/samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java new file mode 100644 index 000000000000..8f6ab8a5c702 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java @@ -0,0 +1,50 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_dataset_description] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; + +public class UpdateDatasetDescription { + + public static void runUpdateDatasetDescription() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "my-dataset-name"; + String newDescription = "this is the new dataset description"; + updateDatasetDescription(datasetName, newDescription); + } + + public static void updateDatasetDescription(String datasetName, String newDescription) { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Dataset dataset = bigquery.getDataset(datasetName); + + // Update dataset description + try { + bigquery.update(dataset.toBuilder().setDescription(newDescription).build()); + System.out.println("Dataset description updated successfully to " + newDescription); + } catch (BigQueryException e) { + System.out.println("Dataset description was not updated \n" + e.toString()); + } + } +} +// [END bigquery_update_dataset_description] diff --git a/samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java b/samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java new file mode 100644 index 000000000000..4cb16b4f4231 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java @@ -0,0 +1,51 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_dataset_expiration] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import java.util.concurrent.TimeUnit; + +public class UpdateDatasetExpiration { + + public static void runUpdateDatasetExpiration() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "my-dataset-name"; + updateDatasetExpiration(datasetName); + } + + public static void updateDatasetExpiration(String datasetName) { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Dataset dataset = bigquery.getDataset(datasetName); + + // Update dataset expiration to one day + Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); + try { + bigquery.update(dataset.toBuilder().setDefaultTableLifetime(newExpiration).build()); + System.out.println("Dataset description updated successfully to " + newExpiration); + } catch (BigQueryException e) { + System.out.println("Dataset expiration was not updated \n" + e.toString()); + } + } +} +// [END bigquery_update_dataset_expiration] diff --git a/samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java b/samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java new file mode 100644 index 000000000000..ec770558074e --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java @@ -0,0 +1,54 @@ +/* + * Copyright 2017 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Tests for auth samples. */ +@RunWith(JUnit4.class) +@SuppressWarnings("checkstyle:abbreviationaswordinname") +public class AuthSnippetsIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testAuthSnippetsImplicit() throws Exception { + AuthSnippets.main(new String[] {"implicit"}); + String got = bout.toString(); + assertThat(got).contains("Datasets:"); + } +} diff --git a/samples/src/test/java/com/example/bigquery/CreateDatasetIT.java b/samples/src/test/java/com/example/bigquery/CreateDatasetIT.java new file mode 100644 index 000000000000..32222c603ffd --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/CreateDatasetIT.java @@ -0,0 +1,50 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class CreateDatasetIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testCreateDataset() { + String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); + CreateDataset.createDataset(generatedDatasetName); + assertThat(bout.toString()).contains(generatedDatasetName + " created successfully"); + } +} diff --git a/samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java b/samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java new file mode 100644 index 000000000000..ebd8103b90c6 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java @@ -0,0 +1,63 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.DatasetInfo; +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class DeleteDatasetIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void deleteDataset() { + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // create the dataset to be deleted + String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); + DatasetInfo datasetInfo = DatasetInfo.newBuilder(generatedDatasetName).build(); + bigquery.create(datasetInfo); + + // delete the dataset that was just created + DatasetId datasetId = DatasetId.of(bigquery.getOptions().getProjectId(), generatedDatasetName); + DeleteDataset.deleteDataset(datasetId.getProject(), generatedDatasetName); + + assertThat(bout.toString()).contains("Dataset deleted successfully"); + } +} diff --git a/samples/src/test/java/com/example/bigquery/ListDatasetsIT.java b/samples/src/test/java/com/example/bigquery/ListDatasetsIT.java new file mode 100644 index 000000000000..6150390af850 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/ListDatasetsIT.java @@ -0,0 +1,49 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ListDatasetsIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void listDatasets() { + // List datasets in bigquery-public-data project + ListDatasets.listDatasets("bigquery-public-data"); + assertThat(bout.toString()).contains("dataset in project listed successfully"); + } +} diff --git a/samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java b/samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java new file mode 100644 index 000000000000..669ab07893c1 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java @@ -0,0 +1,69 @@ +/* + * Copyright 2016 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.DatasetId; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Tests for quickstart sample. */ +@RunWith(JUnit4.class) +@SuppressWarnings("checkstyle:abbreviationaswordinname") +public class QuickstartSampleIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final void deleteMyNewDataset() { + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + String datasetName = "my_new_dataset"; + DatasetId datasetId = DatasetId.of(datasetName); + DatasetDeleteOption deleteContents = DatasetDeleteOption.deleteContents(); + bigquery.delete(datasetId, deleteContents); + } + + @Before + public void setUp() { + deleteMyNewDataset(); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + deleteMyNewDataset(); + } + + @Test + public void testQuickstart() throws Exception { + QuickstartSample.main(); + String got = bout.toString(); + assertThat(got).contains("Dataset my_new_dataset created."); + } +} diff --git a/samples/src/test/java/com/example/bigquery/SimpleAppIT.java b/samples/src/test/java/com/example/bigquery/SimpleAppIT.java new file mode 100644 index 000000000000..ea7873bbc06e --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/SimpleAppIT.java @@ -0,0 +1,54 @@ +/* + * Copyright 2016 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Tests for simple app sample. */ +@RunWith(JUnit4.class) +@SuppressWarnings("checkstyle:abbreviationaswordinname") +public class SimpleAppIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQuickstart() throws Exception { + SimpleApp.main(); + String got = bout.toString(); + assertThat(got).contains("views:"); + } +} diff --git a/samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java b/samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java new file mode 100644 index 000000000000..ed45f2946e78 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java @@ -0,0 +1,54 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class UpdateDatasetAccessIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void updateDatasetAccess() { + String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); + // Create a dataset in order to modify its ACL + CreateDataset.createDataset(generatedDatasetName); + + // Modify dataset's ACL + UpdateDatasetAccess.updateDatasetAccess(generatedDatasetName); + assertThat(bout.toString()).contains("Dataset Access Control updated successfully"); + } +} diff --git a/samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java b/samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java new file mode 100644 index 000000000000..75bb06e8c6f0 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java @@ -0,0 +1,56 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class UpdateDatasetDescriptionIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void updateDatasetDescription() { + String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); + String newDescription = "new description!"; + // Create a dataset in order to modify its description + CreateDataset.createDataset(generatedDatasetName); + + // Modify dataset's description + UpdateDatasetDescription.updateDatasetDescription(generatedDatasetName, newDescription); + assertThat(bout.toString()) + .contains("Dataset description updated successfully to " + newDescription); + } +} diff --git a/samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java b/samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java new file mode 100644 index 000000000000..bd06863dd9c8 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java @@ -0,0 +1,54 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class UpdateDatasetExpirationIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void updateDatasetExpiration() { + String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); + // Create a dataset in order to modify its expiration + CreateDataset.createDataset(generatedDatasetName); + + // Modify dataset's expiration + UpdateDatasetExpiration.updateDatasetExpiration(generatedDatasetName); + assertThat(bout.toString()).contains("Dataset description updated successfully"); + } +} From 1925f6c2b57d2d2da2022f6e0b2f556d2215de78 Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Thu, 12 Dec 2019 10:43:31 -0500 Subject: [PATCH 0250/3441] Update BOM (#26) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b51c5f528952..1028f82fed78 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ If you are using Maven with a BOM, add this to your pom.xml file. com.google.cloud libraries-bom - 3.0.0 + 3.1.0 pom import From 43dc12cec516678c1c8ad6b7230f1c82e1d8a8b2 Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Thu, 12 Dec 2019 18:48:53 -0500 Subject: [PATCH 0251/3441] update dependencies and fix parent path (#29) * update dependencies and fix parent path --- samples/pom.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/samples/pom.xml b/samples/pom.xml index de6e9e98444f..0f5bd65eaa4b 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -27,6 +27,7 @@ com.google.cloud.samples shared-configuration 1.0.11 + @@ -40,13 +41,13 @@ com.google.cloud google-cloud-bigquery - 1.100.0 + 1.102.0 com.google.api gax - 1.49.1 + 1.51.0 com.google.cloud @@ -63,7 +64,7 @@ junit junit - 4.13-beta-3 + 4.12 test From fc75d2b3596c15ef96813bf16e676e2138bb9bb2 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 13 Dec 2019 16:40:08 -0500 Subject: [PATCH 0252/3441] chore: skip release/staging for sample artifacts (#32) --- samples/pom.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/samples/pom.xml b/samples/pom.xml index 0f5bd65eaa4b..d4d8ec8681e5 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -74,4 +74,25 @@ test + + + + + org.apache.maven.plugins + maven-deploy-plugin + 2.8.2 + + true + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.8 + + true + + + + From 37022b01d37d93524394cad30089ce2fd38aa421 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Fri, 13 Dec 2019 15:54:05 -0600 Subject: [PATCH 0253/3441] chore: only run samples module during integration tests (#34) --- .kokoro/build.sh | 1 + pom.xml | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index dc2936ef76a8..33b6339c95b0 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -51,6 +51,7 @@ javadoc) ;; integration) mvn -B ${INTEGRATION_TEST_ARGS} \ + -P include-samples \ -DtrimStackTrace=false \ -Dclirr.skip=true \ -Denforcer.skip=true \ diff --git a/pom.xml b/pom.xml index a346977b4e41..b24790928000 100644 --- a/pom.xml +++ b/pom.xml @@ -343,10 +343,7 @@ - samples-java8AndNewer - - [1.8,) - + include-samples samples From c534e7588dcce120d413fce58794f8b31efce6ba Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 16 Dec 2019 13:06:43 -0500 Subject: [PATCH 0254/3441] feat: remove unused bom from project (#37) --- google-cloud-bigquery-bom/pom.xml | 83 ------------------------------- pom.xml | 5 -- 2 files changed, 88 deletions(-) delete mode 100644 google-cloud-bigquery-bom/pom.xml diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml deleted file mode 100644 index 920155619a47..000000000000 --- a/google-cloud-bigquery-bom/pom.xml +++ /dev/null @@ -1,83 +0,0 @@ - - - 4.0.0 - com.google.cloud - google-cloud-bigquery-bom - 1.102.1-SNAPSHOT - pom - - com.google.cloud - google-cloud-shared-config - 0.3.0 - - - Google Cloud bigquery BOM - https://github.com/googleapis/java-bigquery - - BOM for BigQuery - - - - Google LLC - - - - - chingor13 - Jeff Ching - chingor@google.com - Google LLC - - Developer - - - - - - scm:git:https://github.com/googleapis/java-bigquery.git - scm:git:git@github.com:googleapis/java-bigquery.git - https://github.com/googleapis/java-bigquery - - - - - sonatype-nexus-snapshots - https://oss.sonatype.org/content/repositories/snapshots - - - sonatype-nexus-staging - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - - - - com.google.cloud - google-cloud-bigquery - 1.102.1-SNAPSHOT - - - - - - - - org.apache.maven.plugins - maven-checkstyle-plugin - - true - - - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index b24790928000..851ca81d89bc 100644 --- a/pom.xml +++ b/pom.xml @@ -244,11 +244,6 @@ - - google-cloud-bigquery - google-cloud-bigquery-bom - - From 0a5b137462900fddc186199f86f1a9b88996ab80 Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Mon, 16 Dec 2019 13:07:35 -0500 Subject: [PATCH 0255/3441] chore: update BOM (#39) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1028f82fed78..da39d9ddde1c 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ If you are using Maven with a BOM, add this to your pom.xml file. com.google.cloud libraries-bom - 3.1.0 + 3.1.1 pom import From f519da2034586f28de87dbb01ee920d0eb737fa3 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 17 Dec 2019 13:56:53 -0500 Subject: [PATCH 0256/3441] feat: use libraries-bom for samples (#38) --- samples/pom.xml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/samples/pom.xml b/samples/pom.xml index d4d8ec8681e5..f5b000e9fd27 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -36,12 +36,25 @@ UTF-8 + + + + + + com.google.cloud + libraries-bom + 3.0.0 + pom + import + + + + - com.google.cloud google-cloud-bigquery - 1.102.0 From 8b5ff29920cbebbc0006f8245209d408afb59db0 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 17 Dec 2019 21:09:29 +0200 Subject: [PATCH 0257/3441] chore(deps): update dependency com.google.http-client:google-http-client-jackson2 to v1.34.0 (#41) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 851ca81d89bc..803b0b20643a 100644 --- a/pom.xml +++ b/pom.xml @@ -88,7 +88,7 @@ com.google.http-client google-http-client-jackson2 - 1.33.0 + 1.34.0 com.google.http-client From 39d730c68922c8c6830a07c02edfb8dfd6f8d127 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 17 Dec 2019 21:10:20 +0200 Subject: [PATCH 0258/3441] chore(deps): update dependency com.google.http-client:google-http-client to v1.34.0 (#40) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 803b0b20643a..5fccdc0c7563 100644 --- a/pom.xml +++ b/pom.xml @@ -93,7 +93,7 @@ com.google.http-client google-http-client - 1.33.0 + 1.34.0 com.google.auth From 1712195900c65be051a94e3ab143e4289a287f34 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 17 Dec 2019 11:11:32 -0800 Subject: [PATCH 0259/3441] deps: re-generated to pick up changes in the API or client library generator. (#36) --- .kokoro/build.sh | 1 - synth.metadata | 6 +++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 33b6339c95b0..dc2936ef76a8 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -51,7 +51,6 @@ javadoc) ;; integration) mvn -B ${INTEGRATION_TEST_ARGS} \ - -P include-samples \ -DtrimStackTrace=false \ -Dclirr.skip=true \ -Denforcer.skip=true \ diff --git a/synth.metadata b/synth.metadata index 2ceefd9b9371..c601b68bb5c7 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-12-06T21:43:14.782329Z", + "updateTime": "2019-12-14T08:33:47.375617Z", "sources": [ { "generator": { "name": "artman", - "version": "0.42.1", - "dockerImage": "googleapis/artman@sha256:c773192618c608a7a0415dd95282f841f8e6bcdef7dd760a988c93b77a64bd57" + "version": "0.42.3", + "dockerImage": "googleapis/artman@sha256:feed210b5723c6f524b52ef6d7740a030f2d1a8f7c29a71c5e5b4481ceaad7f5" } }, { From 61f9465e84b2b679e3eca8bcc93b4a3d090abf81 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 17 Dec 2019 17:46:47 -0500 Subject: [PATCH 0260/3441] bug: add bigquery module back to pom (#42) --- pom.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pom.xml b/pom.xml index 5fccdc0c7563..ce1212a09595 100644 --- a/pom.xml +++ b/pom.xml @@ -244,6 +244,10 @@ + + google-cloud-bigquery + + From 9b379413e9e5850060d0fbd02ab9797c574f9a44 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 18 Dec 2019 10:27:49 -0500 Subject: [PATCH 0261/3441] feat: add StandardSQLTypeName factory methods to Field (#43) --- .../java/com/google/cloud/bigquery/Field.java | 12 ++++++++++++ .../com/google/cloud/bigquery/FieldTest.java | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index 9fb0b2a2942f..8259cc7e7ed7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -268,12 +268,24 @@ public static Field of(String name, LegacySQLTypeName type, Field... subFields) return newBuilder(name, type, subFields).build(); } + /** Returns a Field object with given name and type. */ + public static Field of(String name, StandardSQLTypeName type, Field... subFields) { + checkArgument(!isNullOrEmpty(name), "Provided name is null or empty"); + return newBuilder(name, type, subFields).build(); + } + /** Returns a Field object with given name and type. */ public static Field of(String name, LegacySQLTypeName type, FieldList subFields) { checkArgument(!isNullOrEmpty(name), "Provided name is null or empty"); return newBuilder(name, type, subFields).build(); } + /** Returns a Field object with given name and type. */ + public static Field of(String name, StandardSQLTypeName type, FieldList subFields) { + checkArgument(!isNullOrEmpty(name), "Provided name is null or empty"); + return newBuilder(name, type, subFields).build(); + } + /** Returns a builder for a Field object with given name and type. */ public static Builder newBuilder(String name, LegacySQLTypeName type, Field... subFields) { return new Builder().setName(name).setType(type, subFields); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java index 14900cc5d423..64d07980d401 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java @@ -32,6 +32,7 @@ public class FieldTest { private static final String FIELD_NAME3 = "RecordField"; private static final LegacySQLTypeName FIELD_TYPE1 = LegacySQLTypeName.STRING; private static final LegacySQLTypeName FIELD_TYPE2 = LegacySQLTypeName.INTEGER; + private static final StandardSQLTypeName FIELD_TYPE1_STANDARD = StandardSQLTypeName.STRING; private static final Field.Mode FIELD_MODE1 = Field.Mode.NULLABLE; private static final Field.Mode FIELD_MODE2 = Field.Mode.REPEATED; private static final Field.Mode FIELD_MODE3 = Field.Mode.REQUIRED; @@ -49,6 +50,7 @@ public class FieldTest { .setDescription(FIELD_DESCRIPTION2) .build(); private static final LegacySQLTypeName FIELD_TYPE3 = LegacySQLTypeName.RECORD; + private static final StandardSQLTypeName FIELD_TYPE3_STANDARD = StandardSQLTypeName.STRUCT; private static final Field FIELD_SCHEMA3 = Field.newBuilder(FIELD_NAME3, FIELD_TYPE3, FIELD_SCHEMA1, FIELD_SCHEMA2) .setMode(FIELD_MODE3) @@ -112,6 +114,22 @@ public void testToBuilderIncompleteWithStandardSQLTypeName() { compareFieldSchemas(field, field.toBuilder().build()); } + @Test + public void testToBuilderIncompleteStandard() { + Field field = Field.of(FIELD_NAME1, FIELD_TYPE1_STANDARD); + compareFieldSchemas(field, field.toBuilder().build()); + field = Field.of(FIELD_NAME2, FIELD_TYPE3_STANDARD, FIELD_SCHEMA1, FIELD_SCHEMA2); + compareFieldSchemas(field, field.toBuilder().build()); + } + + @Test + public void testToBuilderIncompleteStandardWithStandardSQLTypeName() { + Field field = Field.of(FIELD_NAME1, FIELD_TYPE1_STANDARD); + compareFieldSchemas(field, field.toBuilder().build()); + field = Field.of(FIELD_NAME2, FIELD_TYPE3_STANDARD, STANDARD_FIELD_SCHEMA1, STANDARD_FIELD_SCHEMA2); + compareFieldSchemas(field, field.toBuilder().build()); + } + @Test public void testBuilder() { assertEquals(FIELD_NAME1, FIELD_SCHEMA1.getName()); From 662164b8d8bb6bb58eeaa7cf8b3cc3b2b1c97a3a Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 18 Dec 2019 11:41:35 -0500 Subject: [PATCH 0262/3441] chore: fix formatting issue (#47) --- .../src/test/java/com/google/cloud/bigquery/FieldTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java index 64d07980d401..cac8ab1b8fc6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java @@ -126,7 +126,8 @@ public void testToBuilderIncompleteStandard() { public void testToBuilderIncompleteStandardWithStandardSQLTypeName() { Field field = Field.of(FIELD_NAME1, FIELD_TYPE1_STANDARD); compareFieldSchemas(field, field.toBuilder().build()); - field = Field.of(FIELD_NAME2, FIELD_TYPE3_STANDARD, STANDARD_FIELD_SCHEMA1, STANDARD_FIELD_SCHEMA2); + field = + Field.of(FIELD_NAME2, FIELD_TYPE3_STANDARD, STANDARD_FIELD_SCHEMA1, STANDARD_FIELD_SCHEMA2); compareFieldSchemas(field, field.toBuilder().build()); } From d3e5e12f2dfa6524ed2311df1449a5ea7a1fc2e1 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 18 Dec 2019 11:47:14 -0500 Subject: [PATCH 0263/3441] feat: add samples (#44) * feat: add extract table to json sample * feat: add create table sample * feat: add extract table to json sample * chore: clean up formatting * chore: update formatting according to comment * chore: update formatting according to comment --- .../com/example/bigquery/CreateTable.java | 46 +++++++++++ .../example/bigquery/ExtractTableToJSON.java | 29 +++++++ .../com/example/bigquery/CreateTableIT.java | 48 ++++++++++++ .../bigquery/ExtractTableToJSONIT.java | 76 +++++++++++++++++++ 4 files changed, 199 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/CreateTable.java create mode 100644 samples/src/main/java/com/example/bigquery/ExtractTableToJSON.java create mode 100644 samples/src/test/java/com/example/bigquery/CreateTableIT.java create mode 100644 samples/src/test/java/com/example/bigquery/ExtractTableToJSONIT.java diff --git a/samples/src/main/java/com/example/bigquery/CreateTable.java b/samples/src/main/java/com/example/bigquery/CreateTable.java new file mode 100644 index 000000000000..0f56495b40cc --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/CreateTable.java @@ -0,0 +1,46 @@ +package com.example.bigquery; + +// [START bigquery_create_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.TableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; + +public class CreateTable { + + public static void runCreateTable() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "my-dataset-name"; + String tableName = "my_table_name"; + Schema schema = + Schema.of( + // LegacySQLTypeName will be updated to StandardSQLTypeName once release rolls out + Field.of("stringField", LegacySQLTypeName.STRING), + Field.of("booleanField", LegacySQLTypeName.BOOLEAN)); + createTable(datasetName, tableName, schema); + } + + public static void createTable(String datasetName, String tableName, Schema schema) { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + TableDefinition tableDefinition = StandardTableDefinition.of(schema); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + + try { + bigquery.create(tableInfo); + System.out.println("Table created successfully"); + } catch (BigQueryException e) { + System.out.println("Table was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_table] diff --git a/samples/src/main/java/com/example/bigquery/ExtractTableToJSON.java b/samples/src/main/java/com/example/bigquery/ExtractTableToJSON.java new file mode 100644 index 000000000000..a9b4a9abec4c --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/ExtractTableToJSON.java @@ -0,0 +1,29 @@ +package com.example.bigquery; + +// [START bigquery_extract_table] +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.Table; + +public class ExtractTableToJSON { + + public static void runExtractTableToJSON() { + // TODO(developer): Replace these variables before running the sample. + Table table = null; + String format = "CSV"; + String bucketName = "my-bucket"; + String gcsFileName = "gs://" + bucketName + "/extractTest.csv"; + extractTableToJSON(table, format, gcsFileName); + } + + // Exports my-dataset-name:my_table to gcs://my-bucket/my-file as raw CSV + public static void extractTableToJSON(Table table, String format, String gcsFileName) { + + try { + table.extract(format, gcsFileName); + System.out.println("Table extraction job completed successfully"); + } catch (BigQueryException e) { + System.out.println("Table extraction job was interrupted. \n" + e.toString()); + } + } +} +// [END bigquery_extract_table] diff --git a/samples/src/test/java/com/example/bigquery/CreateTableIT.java b/samples/src/test/java/com/example/bigquery/CreateTableIT.java new file mode 100644 index 000000000000..09c490e2d6de --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/CreateTableIT.java @@ -0,0 +1,48 @@ +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class CreateTableIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testCreateTable() { + String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); + + // Create a new dataset to create a table in + CreateDataset.createDataset(generatedDatasetName); + + // Create an empty table with specific schema in the dataset just created + String tableName = "my_table_name"; + Schema schema = + Schema.of( + Field.of("stringField", LegacySQLTypeName.STRING), + Field.of("booleanField", LegacySQLTypeName.BOOLEAN)); + CreateTable.createTable(generatedDatasetName, tableName, schema); + + assertThat(bout.toString()).contains("Table created successfully"); + } +} diff --git a/samples/src/test/java/com/example/bigquery/ExtractTableToJSONIT.java b/samples/src/test/java/com/example/bigquery/ExtractTableToJSONIT.java new file mode 100644 index 000000000000..d515d5098e4c --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/ExtractTableToJSONIT.java @@ -0,0 +1,76 @@ +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ExtractTableToJSONIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testExtractTableToJSON() { + String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); + + // Create a new dataset to create a new table in + CreateDataset.createDataset(generatedDatasetName); + + // Create a new table to extract to GCS for + String tableName = "my_table_name"; + Schema schema = + Schema.of( + Field.of("stringField", LegacySQLTypeName.STRING), + Field.of("booleanField", LegacySQLTypeName.BOOLEAN)); + Table table = createTableHelper(generatedDatasetName, tableName, schema); + + // Extract table content to GCS in CSV format + ExtractTableToJSON.extractTableToJSON(table, "CSV", "gs://my-bucket/extractTest.csv"); + assertThat(bout.toString()).contains("Table extraction job completed successfully"); + } + + private static Table createTableHelper(String datasetName, String tableName, Schema schema) { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + TableDefinition tableDefinition = StandardTableDefinition.of(schema); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + + try { + Table table = bigquery.create(tableInfo); + return table; + } catch (BigQueryException e) { + System.out.println("Table was not created. \n" + e.toString()); + return null; + } + } +} From fd8ce1ad6fc8e485b568d65ff6f2cd404a0aec91 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 18 Dec 2019 14:49:20 -0500 Subject: [PATCH 0264/3441] deps: update dependencies (#46) * deps: update dependencies All updates: | Package | Update | Change | |---|---|---| | `com.google.auth:google-auth-library-oauth2-http` | minor | `0.18.0` -> `0.19.0` | | `com.google.auto.value:auto-value` (jdk 1.8+) | minor | `1.6.6` -> `1.7` | | `com.google.auto.value:auto-value-annotations` | minor | `1.6.6` -> `1.7` | | [com.google.api:gax-bom](https://togithub.com/googleapis/gax-java) ([source](https://togithub.com/googleapis/gax-java)) | minor | `1.51.0` -> `1.52.0` | | [com.google.api:gax-grpc](https://togithub.com/googleapis/gax-java) ([source](https://togithub.com/googleapis/gax-java)) | minor | `1.51.0` -> `1.52.0` | | [com.google.cloud:google-cloud-core-grpc](https://togithub.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core-grpc) | minor | `1.91.3` -> `1.92.0` | | [com.google.cloud:google-cloud-core](https://togithub.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core) | minor | `1.91.3` -> `1.92.0` | **manually copied and merged from the following PRs** * deps: update gax.version to v1.52.0 #31 * deps: update google.core.version to v1.92.0 #35 * deps: update dependency com.google.auth:google-auth-library-oauth2-http to v0.19.0 #30 * deps: fix DEFAULT_CHUNK_SIZE in response to the same change in java-core 1.92.0 --- .../cloud/bigquery/TableDataWriteChannelTest.java | 2 +- pom.xml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java index ef2329b071b4..43012a8efab1 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java @@ -60,7 +60,7 @@ public class TableDataWriteChannelTest { .setMaxBadRecords(10) .build(); private static final int MIN_CHUNK_SIZE = 256 * 1024; - private static final int DEFAULT_CHUNK_SIZE = 8 * MIN_CHUNK_SIZE; + private static final int DEFAULT_CHUNK_SIZE = 60 * MIN_CHUNK_SIZE; private static final int CUSTOM_CHUNK_SIZE = 4 * MIN_CHUNK_SIZE; private static final Random RANDOM = new Random(); private static final LoadJobConfiguration JOB_CONFIGURATION = diff --git a/pom.xml b/pom.xml index ce1212a09595..c63313da2648 100644 --- a/pom.xml +++ b/pom.xml @@ -63,10 +63,10 @@ UTF-8 github google-cloud-bigquery-parent - 1.91.3 + 1.92.0 1.8.1 1.17.0 - 1.51.0 + 1.52.0 1.25.0 3.11.1 4.12 @@ -98,7 +98,7 @@ com.google.auth google-auth-library-oauth2-http - 0.18.0 + 0.19.0 org.checkerframework @@ -325,7 +325,7 @@ 1.7 - 1.6.6 + 1.7 1.4 @@ -336,7 +336,7 @@ [1.8,) - 1.6.6 + 1.7 ${auto-value.version} From dc19256f4c9736f7f5b6b28aa1f7dfff13301b9d Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 19 Dec 2019 07:42:11 -0800 Subject: [PATCH 0265/3441] chore: re-generated to pick up changes in the API or client library generator. (#48) --- renovate.json | 42 ++- synth.metadata | 754 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 781 insertions(+), 15 deletions(-) diff --git a/renovate.json b/renovate.json index 99810470034c..c5eafc049691 100644 --- a/renovate.json +++ b/renovate.json @@ -1,27 +1,41 @@ { "extends": [ - "config:base" + ":separateMajorReleases", + ":combinePatchMinorReleases", + ":ignoreUnstable", + ":prImmediately", + ":updateNotScheduled", + ":automergeDisabled", + ":ignoreModulesAndTests", + ":maintainLockFilesDisabled", + ":autodetectPinVersions" ], - "ignoreDeps": [], "packageRules": [ { - "managers": ["maven"], - "packageNames": ["com.google.guava:guava*"], + "packagePatterns": [ + "^com.google.guava:" + ], "versionScheme": "docker" }, { - "packagePatterns": ["^io.grpc:grpc-"], - "groupName": "gRPC packages" + "packagePatterns": [ + "*" + ], + "semanticCommitType": "deps", + "semanticCommitScope": null }, { - "packagePatterns": ["^com.google.protobuf:protobuf-"], - "groupName": "Protobuf packages" - }, - { - "packagePatterns": ["^io.opencensus:opencensus-"], - "groupName": "OpenCensus packages" + "packagePatterns": [ + "^org.apache.maven", + "^org.jacoco:", + "^org.codehaus.mojo:", + "^org.sonatype.plugins:", + "^com.coveo:", + "^com.google.cloud:google-cloud-shared-config" + ], + "semanticCommitType": "build", + "semanticCommitScope": "deps" } ], - "semanticCommits": true, - "semanticCommitType": "deps" + "semanticCommits": true } diff --git a/synth.metadata b/synth.metadata index c601b68bb5c7..eee2e550d585 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-12-14T08:33:47.375617Z", + "updateTime": "2019-12-19T08:35:39.668185Z", "sources": [ { "generator": { @@ -15,5 +15,757 @@ "version": "2019.10.17" } } + ], + "newFiles": [ + { + "path": ".gitignore" + }, + { + "path": "README.md" + }, + { + "path": "renovate.json" + }, + { + "path": "license-checks.xml" + }, + { + "path": "CONTRIBUTING.md" + }, + { + "path": "synth.py" + }, + { + "path": "synth.metadata" + }, + { + "path": "java.header" + }, + { + "path": "pom.xml" + }, + { + "path": "CODE_OF_CONDUCT.md" + }, + { + "path": "versions.txt" + }, + { + "path": "LICENSE" + }, + { + "path": ".repo-metadata.json" + }, + { + "path": "codecov.yaml" + }, + { + "path": "google-cloud-bigquery/pom.xml" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java" + }, + { + "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java" + }, + { + "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/README.md" + }, + { + "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json" + }, + { + "path": ".github/release-please.yml" + }, + { + "path": ".github/PULL_REQUEST_TEMPLATE.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/support_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/feature_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/bug_report.md" + }, + { + "path": ".kokoro/trampoline.sh" + }, + { + "path": ".kokoro/build.sh" + }, + { + "path": ".kokoro/build.bat" + }, + { + "path": ".kokoro/linkage-monitor.sh" + }, + { + "path": ".kokoro/dependencies.sh" + }, + { + "path": ".kokoro/common.cfg" + }, + { + "path": ".kokoro/coerce_logs.sh" + }, + { + "path": ".kokoro/release/common.sh" + }, + { + "path": ".kokoro/release/publish_javadoc.cfg" + }, + { + "path": ".kokoro/release/stage.cfg" + }, + { + "path": ".kokoro/release/publish_javadoc.sh" + }, + { + "path": ".kokoro/release/bump_snapshot.cfg" + }, + { + "path": ".kokoro/release/drop.cfg" + }, + { + "path": ".kokoro/release/snapshot.cfg" + }, + { + "path": ".kokoro/release/promote.sh" + }, + { + "path": ".kokoro/release/stage.sh" + }, + { + "path": ".kokoro/release/bump_snapshot.sh" + }, + { + "path": ".kokoro/release/promote.cfg" + }, + { + "path": ".kokoro/release/drop.sh" + }, + { + "path": ".kokoro/release/common.cfg" + }, + { + "path": ".kokoro/release/snapshot.sh" + }, + { + "path": ".kokoro/nightly/java11.cfg" + }, + { + "path": ".kokoro/nightly/java8-win.cfg" + }, + { + "path": ".kokoro/nightly/lint.cfg" + }, + { + "path": ".kokoro/nightly/java8-osx.cfg" + }, + { + "path": ".kokoro/nightly/integration.cfg" + }, + { + "path": ".kokoro/nightly/java7.cfg" + }, + { + "path": ".kokoro/nightly/java8.cfg" + }, + { + "path": ".kokoro/nightly/dependencies.cfg" + }, + { + "path": ".kokoro/nightly/common.cfg" + }, + { + "path": ".kokoro/presubmit/java11.cfg" + }, + { + "path": ".kokoro/presubmit/java8-win.cfg" + }, + { + "path": ".kokoro/presubmit/lint.cfg" + }, + { + "path": ".kokoro/presubmit/clirr.cfg" + }, + { + "path": ".kokoro/presubmit/java8-osx.cfg" + }, + { + "path": ".kokoro/presubmit/integration.cfg" + }, + { + "path": ".kokoro/presubmit/java7.cfg" + }, + { + "path": ".kokoro/presubmit/java8.cfg" + }, + { + "path": ".kokoro/presubmit/dependencies.cfg" + }, + { + "path": ".kokoro/presubmit/linkage-monitor.cfg" + }, + { + "path": ".kokoro/presubmit/common.cfg" + }, + { + "path": ".kokoro/continuous/propose_release.cfg" + }, + { + "path": ".kokoro/continuous/java11.cfg" + }, + { + "path": ".kokoro/continuous/java8-win.cfg" + }, + { + "path": ".kokoro/continuous/lint.cfg" + }, + { + "path": ".kokoro/continuous/java8-osx.cfg" + }, + { + "path": ".kokoro/continuous/propose_release.sh" + }, + { + "path": ".kokoro/continuous/integration.cfg" + }, + { + "path": ".kokoro/continuous/java7.cfg" + }, + { + "path": ".kokoro/continuous/java8.cfg" + }, + { + "path": ".kokoro/continuous/dependencies.cfg" + }, + { + "path": ".kokoro/continuous/common.cfg" + }, + { + "path": "samples/README.md" + }, + { + "path": "samples/pom.xml" + }, + { + "path": "samples/src/test/java/com/example/bigquery/ExtractTableToJSONIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/CreateTableIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/ListDatasetsIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/SimpleAppIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/CreateDatasetIT.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/CreateTable.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/CreateDataset.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/ListDatasets.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/AuthSnippets.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/DeleteDataset.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/SimpleApp.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/ExtractTableToJSON.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/QuickstartSample.java" + }, + { + "path": "__pycache__/synth.cpython-36.pyc" + }, + { + "path": ".git/shallow" + }, + { + "path": ".git/index" + }, + { + "path": ".git/packed-refs" + }, + { + "path": ".git/HEAD" + }, + { + "path": ".git/config" + }, + { + "path": ".git/logs/HEAD" + }, + { + "path": ".git/logs/refs/heads/autosynth" + }, + { + "path": ".git/logs/refs/heads/master" + }, + { + "path": ".git/logs/refs/remotes/origin/HEAD" + }, + { + "path": ".git/objects/pack/pack-5caa4c4df341e7b357ff4e3eff9fb434fe0f804b.pack" + }, + { + "path": ".git/objects/pack/pack-5caa4c4df341e7b357ff4e3eff9fb434fe0f804b.idx" + }, + { + "path": ".git/refs/heads/autosynth" + }, + { + "path": ".git/refs/heads/master" + }, + { + "path": ".git/refs/remotes/origin/HEAD" + } ] } \ No newline at end of file From 3f213c29ebc437ec79c04553db8b2675efb3aa54 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 19 Dec 2019 18:37:25 +0200 Subject: [PATCH 0266/3441] deps: update dependency io.grpc:grpc-bom to v1.26.0 (#49) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c63313da2648..1a50f823da7e 100644 --- a/pom.xml +++ b/pom.xml @@ -67,7 +67,7 @@ 1.8.1 1.17.0 1.52.0 - 1.25.0 + 1.26.0 3.11.1 4.12 28.1-android From ac9f5899ae44e81887e8b4b0d3f6229e942f8d54 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 24 Dec 2019 10:29:14 -0500 Subject: [PATCH 0267/3441] feat: update samples (#52) * feat: add extract table to json sample * feat: add create table sample * feat: add extract table to json sample * chore: clean up formatting * chore: update formatting according to comment * chore: update formatting according to comment * update based on kurtis' comments * updates based on comments * updates based on comments * updates based on comments * updates based on comments * remove unused storage deps * move function calls into try/catch block where appropriate * move BQ client construction into try/catch block --- .../com/example/bigquery/CreateDataset.java | 13 ++-- .../com/example/bigquery/CreateTable.java | 36 ++++++--- .../com/example/bigquery/DeleteDataset.java | 27 ++++--- .../example/bigquery/ExtractTableToJSON.java | 29 ------- .../example/bigquery/ExtractTableToJson.java | 72 ++++++++++++++++++ .../com/example/bigquery/ListDatasets.java | 11 ++- .../example/bigquery/UpdateDatasetAccess.java | 27 ++++--- .../bigquery/UpdateDatasetDescription.java | 14 ++-- .../bigquery/UpdateDatasetExpiration.java | 16 ++-- .../com/example/bigquery/CreateTableIT.java | 18 ++++- .../bigquery/ExtractTableToJSONIT.java | 76 ------------------- .../bigquery/ExtractTableToJsonIT.java | 71 +++++++++++++++++ 12 files changed, 241 insertions(+), 169 deletions(-) delete mode 100644 samples/src/main/java/com/example/bigquery/ExtractTableToJSON.java create mode 100644 samples/src/main/java/com/example/bigquery/ExtractTableToJson.java delete mode 100644 samples/src/test/java/com/example/bigquery/ExtractTableToJSONIT.java create mode 100644 samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java diff --git a/samples/src/main/java/com/example/bigquery/CreateDataset.java b/samples/src/main/java/com/example/bigquery/CreateDataset.java index f61fce6577a1..3e2fe0f42bbd 100644 --- a/samples/src/main/java/com/example/bigquery/CreateDataset.java +++ b/samples/src/main/java/com/example/bigquery/CreateDataset.java @@ -27,17 +27,18 @@ public class CreateDataset { public static void runCreateDataset() { // TODO(developer): Replace these variables before running the sample. - String datasetName = "my-dataset-name"; + String datasetName = "MY_DATASET_NAME"; createDataset(datasetName); } public static void createDataset(String datasetName) { - // Initialize client that will be used to send requests. This client only needs to be created - // once, and can be reused for multiple requests. - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - - DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build(); try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build(); + Dataset newDataset = bigquery.create(datasetInfo); String newDatasetName = newDataset.getDatasetId().getDataset(); System.out.println(newDatasetName + " created successfully"); diff --git a/samples/src/main/java/com/example/bigquery/CreateTable.java b/samples/src/main/java/com/example/bigquery/CreateTable.java index 0f56495b40cc..d00000e55be1 100644 --- a/samples/src/main/java/com/example/bigquery/CreateTable.java +++ b/samples/src/main/java/com/example/bigquery/CreateTable.java @@ -1,3 +1,19 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.example.bigquery; // [START bigquery_create_table] @@ -16,26 +32,26 @@ public class CreateTable { public static void runCreateTable() { // TODO(developer): Replace these variables before running the sample. - String datasetName = "my-dataset-name"; - String tableName = "my_table_name"; + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; Schema schema = Schema.of( - // LegacySQLTypeName will be updated to StandardSQLTypeName once release rolls out + // INFO: LegacySQLTypeName will be updated to StandardSQLTypeName in release 1.103.0 Field.of("stringField", LegacySQLTypeName.STRING), Field.of("booleanField", LegacySQLTypeName.BOOLEAN)); createTable(datasetName, tableName, schema); } public static void createTable(String datasetName, String tableName, Schema schema) { - // Initialize client that will be used to send requests. This client only needs to be created - // once, and can be reused for multiple requests. - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - TableId tableId = TableId.of(datasetName, tableName); - TableDefinition tableDefinition = StandardTableDefinition.of(schema); - TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + TableId tableId = TableId.of(datasetName, tableName); + TableDefinition tableDefinition = StandardTableDefinition.of(schema); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); - try { bigquery.create(tableInfo); System.out.println("Table created successfully"); } catch (BigQueryException e) { diff --git a/samples/src/main/java/com/example/bigquery/DeleteDataset.java b/samples/src/main/java/com/example/bigquery/DeleteDataset.java index f0f8ac96a69b..7018d039795f 100644 --- a/samples/src/main/java/com/example/bigquery/DeleteDataset.java +++ b/samples/src/main/java/com/example/bigquery/DeleteDataset.java @@ -19,6 +19,7 @@ // [START bigquery_delete_dataset] import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; +import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.DatasetId; @@ -26,22 +27,26 @@ public class DeleteDataset { public static void runDeleteDataset() { // TODO(developer): Replace these variables before running the sample.\ - String projectId = "my-project-id"; - String datasetName = "my-dataset-name"; + String projectId = "MY_PROJECT_ID"; + String datasetName = "MY_DATASET_NAME"; deleteDataset(projectId, datasetName); } public static void deleteDataset(String projectId, String datasetName) { - // Initialize client that will be used to send requests. This client only needs to be created - // once, and can be reused for multiple requests. - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - DatasetId datasetId = DatasetId.of(projectId, datasetName); - boolean success = bigquery.delete(datasetId, DatasetDeleteOption.deleteContents()); - if (success) { - System.out.println("Dataset deleted successfully"); - } else { - System.out.println("Dataset was not found"); + DatasetId datasetId = DatasetId.of(projectId, datasetName); + boolean success = bigquery.delete(datasetId, DatasetDeleteOption.deleteContents()); + if (success) { + System.out.println("Dataset deleted successfully"); + } else { + System.out.println("Dataset was not found"); + } + } catch (BigQueryException e) { + System.out.println("Dataset was not deleted. \n" + e.toString()); } } } diff --git a/samples/src/main/java/com/example/bigquery/ExtractTableToJSON.java b/samples/src/main/java/com/example/bigquery/ExtractTableToJSON.java deleted file mode 100644 index a9b4a9abec4c..000000000000 --- a/samples/src/main/java/com/example/bigquery/ExtractTableToJSON.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.example.bigquery; - -// [START bigquery_extract_table] -import com.google.cloud.bigquery.BigQueryException; -import com.google.cloud.bigquery.Table; - -public class ExtractTableToJSON { - - public static void runExtractTableToJSON() { - // TODO(developer): Replace these variables before running the sample. - Table table = null; - String format = "CSV"; - String bucketName = "my-bucket"; - String gcsFileName = "gs://" + bucketName + "/extractTest.csv"; - extractTableToJSON(table, format, gcsFileName); - } - - // Exports my-dataset-name:my_table to gcs://my-bucket/my-file as raw CSV - public static void extractTableToJSON(Table table, String format, String gcsFileName) { - - try { - table.extract(format, gcsFileName); - System.out.println("Table extraction job completed successfully"); - } catch (BigQueryException e) { - System.out.println("Table extraction job was interrupted. \n" + e.toString()); - } - } -} -// [END bigquery_extract_table] diff --git a/samples/src/main/java/com/example/bigquery/ExtractTableToJson.java b/samples/src/main/java/com/example/bigquery/ExtractTableToJson.java new file mode 100644 index 000000000000..20e29135e5df --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/ExtractTableToJson.java @@ -0,0 +1,72 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_extract_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; + +public class ExtractTableToJson { + + public static void runExtractTableToJson() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "bigquery-public-data"; + String datasetName = "samples"; + String tableName = "shakespeare"; + String bucketName = "my-bucket"; + String destinationUri = "gs://" + bucketName + "/path/to/file"; + extractTableToJson(projectId, datasetName, tableName, destinationUri); + } + + // Exports datasetName:tableName to destinationUri as raw CSV + public static void extractTableToJson( + String projectId, String datasetName, String tableName, String destinationUri) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(projectId, datasetName, tableName); + Table table = bigquery.getTable(tableId); + + // For more information on export formats available see: + // https://cloud.google.com/bigquery/docs/exporting-data#export_formats_and_compression_types + // For more information on Job see: + // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html + Job job = table.extract("CSV", destinationUri); + + // Blocks until this job completes its execution, either failing or succeeding. + Job completedJob = job.waitFor(); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to extract due to an error: \n" + job.getStatus().getError()); + return; + } + System.out.println("Table export successful. Check in GCS bucket for the CSV file."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Table extraction job was interrupted. \n" + e.toString()); + } + } +} +// [END bigquery_extract_table] diff --git a/samples/src/main/java/com/example/bigquery/ListDatasets.java b/samples/src/main/java/com/example/bigquery/ListDatasets.java index 69f8b91afc7c..2c86c71aae07 100644 --- a/samples/src/main/java/com/example/bigquery/ListDatasets.java +++ b/samples/src/main/java/com/example/bigquery/ListDatasets.java @@ -28,17 +28,16 @@ public class ListDatasets { public static void runListDatasets() { // TODO(developer): Replace these variables before running the sample. - String projectId = "my-project-id"; + String projectId = "MY_PROJECT_ID"; listDatasets(projectId); } public static void listDatasets(String projectId) { - // Initialize client that will be used to send requests. This client only needs to be created - // once, and can be reused for multiple requests. - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - - // List datasets in a specified project try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + Page datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100)); for (Dataset dataset : datasets.iterateAll()) { System.out.println(dataset.getDatasetId() + " dataset in project listed successfully"); diff --git a/samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java b/samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java index 1166a2baa2a6..5719dcffa98c 100644 --- a/samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java +++ b/samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java @@ -30,28 +30,27 @@ public class UpdateDatasetAccess { public static void runUpdateDatasetAccess() { // TODO(developer): Replace these variables before running the sample. - String datasetName = "my-dataset-name"; + String datasetName = "MY_DATASET_NAME"; updateDatasetAccess(datasetName); } public static void updateDatasetAccess(String datasetName) { - // Initialize client that will be used to send requests. This client only needs to be created - // once, and can be reused for multiple requests. - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - Dataset dataset = bigquery.getDataset(datasetName); + Dataset dataset = bigquery.getDataset(datasetName); - // Create a new ACL granting the READER role to "sample.bigquery.dev@gmail.com" - // For more information on the types of ACLs available see: - // https://cloud.google.com/storage/docs/access-control/lists - Acl newEntry = Acl.of(new User("sample.bigquery.dev@gmail.com"), Role.READER); + // Create a new ACL granting the READER role to "sample.bigquery.dev@gmail.com" + // For more information on the types of ACLs available see: + // https://cloud.google.com/storage/docs/access-control/lists + Acl newEntry = Acl.of(new User("sample.bigquery.dev@gmail.com"), Role.READER); - // Get a copy of the ACLs list from the dataset and append the new entry - ArrayList acls = new ArrayList<>(dataset.getAcl()); - acls.add(newEntry); + // Get a copy of the ACLs list from the dataset and append the new entry + ArrayList acls = new ArrayList<>(dataset.getAcl()); + acls.add(newEntry); - // Update the dataset to use the new ACLs - try { bigquery.update(dataset.toBuilder().setAcl(acls).build()); System.out.println("Dataset Access Control updated successfully"); } catch (BigQueryException e) { diff --git a/samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java b/samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java index 8f6ab8a5c702..5738ec0e5d19 100644 --- a/samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java +++ b/samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java @@ -26,20 +26,18 @@ public class UpdateDatasetDescription { public static void runUpdateDatasetDescription() { // TODO(developer): Replace these variables before running the sample. - String datasetName = "my-dataset-name"; + String datasetName = "MY_DATASET_NAME"; String newDescription = "this is the new dataset description"; updateDatasetDescription(datasetName, newDescription); } public static void updateDatasetDescription(String datasetName, String newDescription) { - // Initialize client that will be used to send requests. This client only needs to be created - // once, and can be reused for multiple requests. - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - - Dataset dataset = bigquery.getDataset(datasetName); - - // Update dataset description try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Dataset dataset = bigquery.getDataset(datasetName); bigquery.update(dataset.toBuilder().setDescription(newDescription).build()); System.out.println("Dataset description updated successfully to " + newDescription); } catch (BigQueryException e) { diff --git a/samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java b/samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java index 4cb16b4f4231..bea27624ffa3 100644 --- a/samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java +++ b/samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java @@ -27,20 +27,20 @@ public class UpdateDatasetExpiration { public static void runUpdateDatasetExpiration() { // TODO(developer): Replace these variables before running the sample. - String datasetName = "my-dataset-name"; + String datasetName = "MY_DATASET_NAME"; updateDatasetExpiration(datasetName); } public static void updateDatasetExpiration(String datasetName) { - // Initialize client that will be used to send requests. This client only needs to be created - // once, and can be reused for multiple requests. - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - Dataset dataset = bigquery.getDataset(datasetName); + // Update dataset expiration to one day + Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); - // Update dataset expiration to one day - Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); - try { + Dataset dataset = bigquery.getDataset(datasetName); bigquery.update(dataset.toBuilder().setDefaultTableLifetime(newExpiration).build()); System.out.println("Dataset description updated successfully to " + newExpiration); } catch (BigQueryException e) { diff --git a/samples/src/test/java/com/example/bigquery/CreateTableIT.java b/samples/src/test/java/com/example/bigquery/CreateTableIT.java index 09c490e2d6de..2572f6069341 100644 --- a/samples/src/test/java/com/example/bigquery/CreateTableIT.java +++ b/samples/src/test/java/com/example/bigquery/CreateTableIT.java @@ -1,3 +1,19 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.example.bigquery; import static com.google.common.truth.Truth.assertThat; @@ -36,7 +52,7 @@ public void testCreateTable() { CreateDataset.createDataset(generatedDatasetName); // Create an empty table with specific schema in the dataset just created - String tableName = "my_table_name"; + String tableName = "MY_TABLE_NAME"; Schema schema = Schema.of( Field.of("stringField", LegacySQLTypeName.STRING), diff --git a/samples/src/test/java/com/example/bigquery/ExtractTableToJSONIT.java b/samples/src/test/java/com/example/bigquery/ExtractTableToJSONIT.java deleted file mode 100644 index d515d5098e4c..000000000000 --- a/samples/src/test/java/com/example/bigquery/ExtractTableToJSONIT.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.example.bigquery; - -import static com.google.common.truth.Truth.assertThat; - -import com.google.cloud.bigquery.BigQuery; -import com.google.cloud.bigquery.BigQueryException; -import com.google.cloud.bigquery.BigQueryOptions; -import com.google.cloud.bigquery.Field; -import com.google.cloud.bigquery.LegacySQLTypeName; -import com.google.cloud.bigquery.Schema; -import com.google.cloud.bigquery.StandardTableDefinition; -import com.google.cloud.bigquery.Table; -import com.google.cloud.bigquery.TableDefinition; -import com.google.cloud.bigquery.TableId; -import com.google.cloud.bigquery.TableInfo; -import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class ExtractTableToJSONIT { - private ByteArrayOutputStream bout; - private PrintStream out; - - @Before - public void setUp() throws Exception { - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); - } - - @After - public void tearDown() { - System.setOut(null); - } - - @Test - public void testExtractTableToJSON() { - String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); - - // Create a new dataset to create a new table in - CreateDataset.createDataset(generatedDatasetName); - - // Create a new table to extract to GCS for - String tableName = "my_table_name"; - Schema schema = - Schema.of( - Field.of("stringField", LegacySQLTypeName.STRING), - Field.of("booleanField", LegacySQLTypeName.BOOLEAN)); - Table table = createTableHelper(generatedDatasetName, tableName, schema); - - // Extract table content to GCS in CSV format - ExtractTableToJSON.extractTableToJSON(table, "CSV", "gs://my-bucket/extractTest.csv"); - assertThat(bout.toString()).contains("Table extraction job completed successfully"); - } - - private static Table createTableHelper(String datasetName, String tableName, Schema schema) { - // Initialize client that will be used to send requests. This client only needs to be created - // once, and can be reused for multiple requests. - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - - TableId tableId = TableId.of(datasetName, tableName); - TableDefinition tableDefinition = StandardTableDefinition.of(schema); - TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); - - try { - Table table = bigquery.create(tableInfo); - return table; - } catch (BigQueryException e) { - System.out.println("Table was not created. \n" + e.toString()); - return null; - } - } -} diff --git a/samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java b/samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java new file mode 100644 index 000000000000..5d2a2a0a083c --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java @@ -0,0 +1,71 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ExtractTableToJsonIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String GCS_BUCKET = System.getenv("GCS_BUCKET"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable '%s' is required to perform these tests.".format(varName), + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GCS_BUCKET"); + } + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testExtractTableToJson() { + String projectId = "bigquery-public-data"; + String datasetName = "samples"; + String tableName = "shakespeare"; + String destinationUri = "gs://" + GCS_BUCKET + "/extractTest.csv"; + System.out.println(destinationUri); + + // Extract table content to GCS in CSV format + ExtractTableToJson.extractTableToJson(projectId, datasetName, tableName, destinationUri); + assertThat(bout.toString()) + .contains("Table export successful. Check in GCS bucket for the CSV file."); + } +} From 2edff567e85033ba273dd3884aed752f4dd85d23 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 26 Dec 2019 12:57:31 -0600 Subject: [PATCH 0268/3441] chore(deps): group core dependencies --- renovate.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/renovate.json b/renovate.json index c5eafc049691..02757c63ad2c 100644 --- a/renovate.json +++ b/renovate.json @@ -17,6 +17,15 @@ ], "versionScheme": "docker" }, + { + "packagePatterns": [ + "^com.google.api:gax", + "^com.google.auth:", + "^com.google.cloud:google-cloud-core", + "^io.grpc:" + ], + "groupName": "core dependencies" + }, { "packagePatterns": [ "*" From b965a0fb83f13d9783a8a405facf10c9c5c4654e Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 26 Dec 2019 18:34:42 -0600 Subject: [PATCH 0269/3441] chore: group core transport dependencies (#58) --- renovate.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/renovate.json b/renovate.json index 02757c63ad2c..d014232c57bf 100644 --- a/renovate.json +++ b/renovate.json @@ -26,6 +26,14 @@ ], "groupName": "core dependencies" }, + { + "packagePatterns": [ + "^com.google.http-client:", + "^com.google.oauth-client:", + "^com.google.api-client:" + ], + "groupName": "core transport dependencies" + }, { "packagePatterns": [ "*" From fa5687e5b67933fb0eee2b29f950a2c05ac8fab0 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 26 Dec 2019 19:35:26 -0500 Subject: [PATCH 0270/3441] chore: add CODEOWNERS (#56) * feat: add CODEOWNERS * update based on comments --- .github/CODEOWNERS | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000000..f953c5f0f483 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,8 @@ +# Code owners file. +# This file controls who is tagged for review for any given pull request. + +# For syntax help see: +# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax + +# The java-samples-reviewers team is the default owner for samples changes +samples/ @stephaniewang526 @GoogleCloudPlatform/java-samples-reviewers \ No newline at end of file From 866659a6e6fd5ee87135552a5798b04b0ad4e87b Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 27 Dec 2019 17:44:17 +0200 Subject: [PATCH 0271/3441] deps: update dependency com.google.guava:guava-bom to v28.2-android --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1a50f823da7e..7f8cff7af51b 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ 1.26.0 3.11.1 4.12 - 28.1-android + 28.2-android 1.4.0 1.3.2 1.18 From f59dbf439788137ae4fe5215687c47b287b64ab9 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 30 Dec 2019 18:37:23 -0500 Subject: [PATCH 0272/3441] feat: add kokoro jobs for samples module (#61) * update based on comments * feat: add kokoro builds for samples module * simplify build script for samples * add samples builds to nightly and presubmit runs --- .kokoro/common.cfg | 3 ++ .kokoro/continuous/java11-samples.cfg | 27 +++++++++++++ .kokoro/continuous/java8-samples.cfg | 30 ++++++++++++++ .kokoro/nightly/java11-samples.cfg | 27 +++++++++++++ .kokoro/nightly/java8-samples.cfg | 30 ++++++++++++++ .kokoro/presubmit/java11-samples.cfg | 27 +++++++++++++ .kokoro/presubmit/java8-samples.cfg | 30 ++++++++++++++ .kokoro/run_samples_tests.sh | 58 +++++++++++++++++++++++++++ 8 files changed, 232 insertions(+) create mode 100644 .kokoro/continuous/java11-samples.cfg create mode 100644 .kokoro/continuous/java8-samples.cfg create mode 100644 .kokoro/nightly/java11-samples.cfg create mode 100644 .kokoro/nightly/java8-samples.cfg create mode 100644 .kokoro/presubmit/java11-samples.cfg create mode 100644 .kokoro/presubmit/java8-samples.cfg create mode 100644 .kokoro/run_samples_tests.sh diff --git a/.kokoro/common.cfg b/.kokoro/common.cfg index 24a5c6b191b4..274ab26d0328 100644 --- a/.kokoro/common.cfg +++ b/.kokoro/common.cfg @@ -1,5 +1,8 @@ # Format: //devtools/kokoro/config/proto/build.proto +# Download secrets from Cloud Storage. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" + # Download trampoline resources. These will be in ${KOKORO_GFILE_DIR} gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" diff --git a/.kokoro/continuous/java11-samples.cfg b/.kokoro/continuous/java11-samples.cfg new file mode 100644 index 000000000000..673ef81d8ce4 --- /dev/null +++ b/.kokoro/continuous/java11-samples.cfg @@ -0,0 +1,27 @@ +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java11" +} + +# Tell the trampoline which tests to run. +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-docs-samples/.kokoro/run_samples_tests.sh" +} \ No newline at end of file diff --git a/.kokoro/continuous/java8-samples.cfg b/.kokoro/continuous/java8-samples.cfg new file mode 100644 index 000000000000..b75d587fbe14 --- /dev/null +++ b/.kokoro/continuous/java8-samples.cfg @@ -0,0 +1,30 @@ +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +# Tell trampoline which tests to run. +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/run_samples_tests.sh" +} + + + diff --git a/.kokoro/nightly/java11-samples.cfg b/.kokoro/nightly/java11-samples.cfg new file mode 100644 index 000000000000..673ef81d8ce4 --- /dev/null +++ b/.kokoro/nightly/java11-samples.cfg @@ -0,0 +1,27 @@ +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java11" +} + +# Tell the trampoline which tests to run. +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-docs-samples/.kokoro/run_samples_tests.sh" +} \ No newline at end of file diff --git a/.kokoro/nightly/java8-samples.cfg b/.kokoro/nightly/java8-samples.cfg new file mode 100644 index 000000000000..b75d587fbe14 --- /dev/null +++ b/.kokoro/nightly/java8-samples.cfg @@ -0,0 +1,30 @@ +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +# Tell trampoline which tests to run. +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/run_samples_tests.sh" +} + + + diff --git a/.kokoro/presubmit/java11-samples.cfg b/.kokoro/presubmit/java11-samples.cfg new file mode 100644 index 000000000000..673ef81d8ce4 --- /dev/null +++ b/.kokoro/presubmit/java11-samples.cfg @@ -0,0 +1,27 @@ +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java11" +} + +# Tell the trampoline which tests to run. +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-docs-samples/.kokoro/run_samples_tests.sh" +} \ No newline at end of file diff --git a/.kokoro/presubmit/java8-samples.cfg b/.kokoro/presubmit/java8-samples.cfg new file mode 100644 index 000000000000..b75d587fbe14 --- /dev/null +++ b/.kokoro/presubmit/java8-samples.cfg @@ -0,0 +1,30 @@ +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +# Tell trampoline which tests to run. +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/run_samples_tests.sh" +} + + + diff --git a/.kokoro/run_samples_tests.sh b/.kokoro/run_samples_tests.sh new file mode 100644 index 000000000000..dc6929f00e79 --- /dev/null +++ b/.kokoro/run_samples_tests.sh @@ -0,0 +1,58 @@ +#!/bin/bash +# Copyright 2019 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# `-e` enables the script to automatically fail when a command fails +# `-o pipefail` sets the exit code to the rightmost comment to exit with a non-zero +set -eo pipefail +# Enables `**` to include files nested inside sub-folders +shopt -s globstar + +# Update `gcloud` and log versioning for debugging. +gcloud components install beta --quiet +gcloud components update --quiet +echo "********** GCLOUD INFO ***********" +gcloud -v +echo "********** MAVEN INFO ***********" +mvn -v + +# Setup required env variables +export GOOGLE_CLOUD_PROJECT=java-docs-samples-testing +export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-acct.json +export GCS_BUCKET=java-docs-samples-testing + +# Activate service account +gcloud auth activate-service-account \ + --key-file="$GOOGLE_APPLICATION_CREDENTIALS" \ + --project="$GOOGLE_CLOUD_PROJECT" + +# Get the directory of the build script +scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) +# Move into the samples directory +cd ${scriptDir}/../samples/ + +echo -e "\n******************** RUNNING SAMPLE TESTS ********************" +RTN=0 + +mvn --fail-at-end clean verify + +EXIT=$? +if [[ $EXIT -ne 0 ]]; then + RTN=1 + echo -e "\n Testing failed: Maven returned a non-zero exit code. \n" +else + echo -e "\n Testing completed.\n" +fi + +exit "$RTN" \ No newline at end of file From f52e42ec5cc55eaaa6b257fcea8eef99f15628cf Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 2 Jan 2020 02:37:48 +0200 Subject: [PATCH 0273/3441] deps: update dependency junit:junit to v4.13 (#63) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7f8cff7af51b..33b2e2f7b9d9 100644 --- a/pom.xml +++ b/pom.xml @@ -69,7 +69,7 @@ 1.52.0 1.26.0 3.11.1 - 4.12 + 4.13 28.2-android 1.4.0 1.3.2 From 4c5be42c13e3cdcf043cc3b1ed23558995f63a99 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 2 Jan 2020 12:03:43 -0500 Subject: [PATCH 0274/3441] chore: update samples script permission and file path (#64) * chore: update folder path to java-bigquery * update run_samples_tests.sh permission to 755 --- .kokoro/continuous/java11-samples.cfg | 2 +- .kokoro/nightly/java11-samples.cfg | 2 +- .kokoro/presubmit/java11-samples.cfg | 2 +- .kokoro/run_samples_tests.sh | 0 4 files changed, 3 insertions(+), 3 deletions(-) mode change 100644 => 100755 .kokoro/run_samples_tests.sh diff --git a/.kokoro/continuous/java11-samples.cfg b/.kokoro/continuous/java11-samples.cfg index 673ef81d8ce4..5a41d029755a 100644 --- a/.kokoro/continuous/java11-samples.cfg +++ b/.kokoro/continuous/java11-samples.cfg @@ -23,5 +23,5 @@ env_vars: { # Tell the trampoline which tests to run. env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-docs-samples/.kokoro/run_samples_tests.sh" + value: "github/java-bigquery/.kokoro/run_samples_tests.sh" } \ No newline at end of file diff --git a/.kokoro/nightly/java11-samples.cfg b/.kokoro/nightly/java11-samples.cfg index 673ef81d8ce4..5a41d029755a 100644 --- a/.kokoro/nightly/java11-samples.cfg +++ b/.kokoro/nightly/java11-samples.cfg @@ -23,5 +23,5 @@ env_vars: { # Tell the trampoline which tests to run. env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-docs-samples/.kokoro/run_samples_tests.sh" + value: "github/java-bigquery/.kokoro/run_samples_tests.sh" } \ No newline at end of file diff --git a/.kokoro/presubmit/java11-samples.cfg b/.kokoro/presubmit/java11-samples.cfg index 673ef81d8ce4..5a41d029755a 100644 --- a/.kokoro/presubmit/java11-samples.cfg +++ b/.kokoro/presubmit/java11-samples.cfg @@ -23,5 +23,5 @@ env_vars: { # Tell the trampoline which tests to run. env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-docs-samples/.kokoro/run_samples_tests.sh" + value: "github/java-bigquery/.kokoro/run_samples_tests.sh" } \ No newline at end of file diff --git a/.kokoro/run_samples_tests.sh b/.kokoro/run_samples_tests.sh old mode 100644 new mode 100755 From a65d6c51836096e81c958f532d49d4cb47bf9497 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 2 Jan 2020 15:06:40 -0500 Subject: [PATCH 0275/3441] chore: exclude .kokoro/common from synth.py (#65) * chore: exclude .kokoro/common from synth.py --- synth.py | 1 + 1 file changed, 1 insertion(+) diff --git a/synth.py b/synth.py index 939b712f301b..e4784a8d427c 100644 --- a/synth.py +++ b/synth.py @@ -23,4 +23,5 @@ templates = common_templates.java_library() s.copy(templates, excludes=[ 'README.md', + '.kokoro/common.cfg' ]) \ No newline at end of file From f8f0cd668cf209247d1fd2fda732ad9c68bad7ec Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 2 Jan 2020 16:24:18 -0500 Subject: [PATCH 0276/3441] chore: move "Download secrets from Cloud Storage" into each build run's folder and remove exclusion from synth.py (#67) --- .kokoro/continuous/java11-samples.cfg | 3 +++ .kokoro/continuous/java8-samples.cfg | 3 +++ .kokoro/nightly/java11-samples.cfg | 3 +++ .kokoro/nightly/java8-samples.cfg | 3 +++ .kokoro/presubmit/java11-samples.cfg | 3 +++ .kokoro/presubmit/java8-samples.cfg | 3 +++ synth.py | 7 ++++++- 7 files changed, 24 insertions(+), 1 deletion(-) diff --git a/.kokoro/continuous/java11-samples.cfg b/.kokoro/continuous/java11-samples.cfg index 5a41d029755a..0d0a7a3297c6 100644 --- a/.kokoro/continuous/java11-samples.cfg +++ b/.kokoro/continuous/java11-samples.cfg @@ -14,6 +14,9 @@ # Format: //devtools/kokoro/config/proto/build.proto +# Download secrets from Cloud Storage. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" + # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" diff --git a/.kokoro/continuous/java8-samples.cfg b/.kokoro/continuous/java8-samples.cfg index b75d587fbe14..f3c1f7aaab37 100644 --- a/.kokoro/continuous/java8-samples.cfg +++ b/.kokoro/continuous/java8-samples.cfg @@ -14,6 +14,9 @@ # Format: //devtools/kokoro/config/proto/build.proto +# Download secrets from Cloud Storage. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" + # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" diff --git a/.kokoro/nightly/java11-samples.cfg b/.kokoro/nightly/java11-samples.cfg index 5a41d029755a..0d0a7a3297c6 100644 --- a/.kokoro/nightly/java11-samples.cfg +++ b/.kokoro/nightly/java11-samples.cfg @@ -14,6 +14,9 @@ # Format: //devtools/kokoro/config/proto/build.proto +# Download secrets from Cloud Storage. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" + # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" diff --git a/.kokoro/nightly/java8-samples.cfg b/.kokoro/nightly/java8-samples.cfg index b75d587fbe14..f3c1f7aaab37 100644 --- a/.kokoro/nightly/java8-samples.cfg +++ b/.kokoro/nightly/java8-samples.cfg @@ -14,6 +14,9 @@ # Format: //devtools/kokoro/config/proto/build.proto +# Download secrets from Cloud Storage. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" + # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" diff --git a/.kokoro/presubmit/java11-samples.cfg b/.kokoro/presubmit/java11-samples.cfg index 5a41d029755a..0d0a7a3297c6 100644 --- a/.kokoro/presubmit/java11-samples.cfg +++ b/.kokoro/presubmit/java11-samples.cfg @@ -14,6 +14,9 @@ # Format: //devtools/kokoro/config/proto/build.proto +# Download secrets from Cloud Storage. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" + # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" diff --git a/.kokoro/presubmit/java8-samples.cfg b/.kokoro/presubmit/java8-samples.cfg index b75d587fbe14..f3c1f7aaab37 100644 --- a/.kokoro/presubmit/java8-samples.cfg +++ b/.kokoro/presubmit/java8-samples.cfg @@ -14,6 +14,9 @@ # Format: //devtools/kokoro/config/proto/build.proto +# Download secrets from Cloud Storage. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" + # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" diff --git a/synth.py b/synth.py index e4784a8d427c..a3738da35a7a 100644 --- a/synth.py +++ b/synth.py @@ -23,5 +23,10 @@ templates = common_templates.java_library() s.copy(templates, excludes=[ 'README.md', - '.kokoro/common.cfg' + '.kokoro/continuous/java8-samples.cfg', + '.kokoro/continuous/java11-samples.cfg', + '.kokoro/nightly/java8-samples.cfg', + '.kokoro/nightly/java11-samples.cfg', + '.kokoro/presubmit/java8-samples.cfg', + '.kokoro/presubmit/java11-samples.cfg', ]) \ No newline at end of file From 60c1198790bd4e29ef215cf057dcc4e4c190e7bf Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 2 Jan 2020 13:25:27 -0800 Subject: [PATCH 0277/3441] chore: re-generated to pick up changes in the API or client library generator. (#62) --- .kokoro/common.cfg | 3 - synth.metadata | 486 ++++++++++++++++++++++++--------------------- 2 files changed, 255 insertions(+), 234 deletions(-) diff --git a/.kokoro/common.cfg b/.kokoro/common.cfg index 274ab26d0328..24a5c6b191b4 100644 --- a/.kokoro/common.cfg +++ b/.kokoro/common.cfg @@ -1,8 +1,5 @@ # Format: //devtools/kokoro/config/proto/build.proto -# Download secrets from Cloud Storage. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" - # Download trampoline resources. These will be in ${KOKORO_GFILE_DIR} gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" diff --git a/synth.metadata b/synth.metadata index eee2e550d585..a5c2e4f5dfcf 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2019-12-19T08:35:39.668185Z", + "updateTime": "2019-12-31T08:35:33.621648Z", "sources": [ { "generator": { @@ -18,220 +18,220 @@ ], "newFiles": [ { - "path": ".gitignore" + "path": "synth.py" }, { - "path": "README.md" + "path": "license-checks.xml" }, { - "path": "renovate.json" + "path": "CONTRIBUTING.md" }, { - "path": "license-checks.xml" + "path": ".repo-metadata.json" }, { - "path": "CONTRIBUTING.md" + "path": "versions.txt" }, { - "path": "synth.py" + "path": "java.header" }, { - "path": "synth.metadata" + "path": "renovate.json" }, { - "path": "java.header" + "path": "codecov.yaml" }, { - "path": "pom.xml" + "path": "README.md" }, { "path": "CODE_OF_CONDUCT.md" }, { - "path": "versions.txt" + "path": "LICENSE" }, { - "path": "LICENSE" + "path": "synth.metadata" }, { - "path": ".repo-metadata.json" + "path": "pom.xml" }, { - "path": "codecov.yaml" + "path": ".gitignore" + }, + { + "path": "__pycache__/synth.cpython-36.pyc" }, { "path": "google-cloud-bigquery/pom.xml" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java" }, { "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java" }, { "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java" }, { "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java" }, { "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java" }, { "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java" }, { "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java" }, { "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java" @@ -240,235 +240,241 @@ "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java" }, { "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java" }, { "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java" }, { "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java" + "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json" }, { "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java" @@ -477,85 +483,94 @@ "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/README.md" }, { - "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json" + "path": ".kokoro/build.sh" }, { - "path": ".github/release-please.yml" + "path": ".kokoro/run_samples_tests.sh" }, { - "path": ".github/PULL_REQUEST_TEMPLATE.md" + "path": ".kokoro/linkage-monitor.sh" }, { - "path": ".github/ISSUE_TEMPLATE/support_request.md" + "path": ".kokoro/common.cfg" }, { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" + "path": ".kokoro/dependencies.sh" }, { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" + "path": ".kokoro/coerce_logs.sh" }, { "path": ".kokoro/trampoline.sh" }, - { - "path": ".kokoro/build.sh" - }, { "path": ".kokoro/build.bat" }, { - "path": ".kokoro/linkage-monitor.sh" + "path": ".kokoro/release/publish_javadoc.sh" }, { - "path": ".kokoro/dependencies.sh" + "path": ".kokoro/release/common.sh" }, { - "path": ".kokoro/common.cfg" + "path": ".kokoro/release/drop.cfg" }, { - "path": ".kokoro/coerce_logs.sh" + "path": ".kokoro/release/stage.cfg" }, { - "path": ".kokoro/release/common.sh" + "path": ".kokoro/release/snapshot.sh" }, { "path": ".kokoro/release/publish_javadoc.cfg" }, { - "path": ".kokoro/release/stage.cfg" + "path": ".kokoro/release/common.cfg" }, { - "path": ".kokoro/release/publish_javadoc.sh" + "path": ".kokoro/release/bump_snapshot.sh" + }, + { + "path": ".kokoro/release/drop.sh" + }, + { + "path": ".kokoro/release/promote.cfg" + }, + { + "path": ".kokoro/release/stage.sh" }, { "path": ".kokoro/release/bump_snapshot.cfg" }, { - "path": ".kokoro/release/drop.cfg" + "path": ".kokoro/release/promote.sh" }, { "path": ".kokoro/release/snapshot.cfg" }, { - "path": ".kokoro/release/promote.sh" + "path": ".kokoro/nightly/lint.cfg" }, { - "path": ".kokoro/release/stage.sh" + "path": ".kokoro/nightly/dependencies.cfg" }, { - "path": ".kokoro/release/bump_snapshot.sh" + "path": ".kokoro/nightly/java8-osx.cfg" }, { - "path": ".kokoro/release/promote.cfg" + "path": ".kokoro/nightly/integration.cfg" }, { - "path": ".kokoro/release/drop.sh" + "path": ".kokoro/nightly/java7.cfg" }, { - "path": ".kokoro/release/common.cfg" + "path": ".kokoro/nightly/java11-samples.cfg" }, { - "path": ".kokoro/release/snapshot.sh" + "path": ".kokoro/nightly/java8-samples.cfg" + }, + { + "path": ".kokoro/nightly/common.cfg" }, { "path": ".kokoro/nightly/java11.cfg" @@ -564,25 +579,34 @@ "path": ".kokoro/nightly/java8-win.cfg" }, { - "path": ".kokoro/nightly/lint.cfg" + "path": ".kokoro/nightly/java8.cfg" }, { - "path": ".kokoro/nightly/java8-osx.cfg" + "path": ".kokoro/presubmit/linkage-monitor.cfg" }, { - "path": ".kokoro/nightly/integration.cfg" + "path": ".kokoro/presubmit/lint.cfg" }, { - "path": ".kokoro/nightly/java7.cfg" + "path": ".kokoro/presubmit/dependencies.cfg" }, { - "path": ".kokoro/nightly/java8.cfg" + "path": ".kokoro/presubmit/java8-osx.cfg" }, { - "path": ".kokoro/nightly/dependencies.cfg" + "path": ".kokoro/presubmit/integration.cfg" }, { - "path": ".kokoro/nightly/common.cfg" + "path": ".kokoro/presubmit/java7.cfg" + }, + { + "path": ".kokoro/presubmit/java11-samples.cfg" + }, + { + "path": ".kokoro/presubmit/java8-samples.cfg" + }, + { + "path": ".kokoro/presubmit/common.cfg" }, { "path": ".kokoro/presubmit/java11.cfg" @@ -591,181 +615,181 @@ "path": ".kokoro/presubmit/java8-win.cfg" }, { - "path": ".kokoro/presubmit/lint.cfg" + "path": ".kokoro/presubmit/clirr.cfg" }, { - "path": ".kokoro/presubmit/clirr.cfg" + "path": ".kokoro/presubmit/java8.cfg" }, { - "path": ".kokoro/presubmit/java8-osx.cfg" + "path": ".kokoro/continuous/propose_release.sh" }, { - "path": ".kokoro/presubmit/integration.cfg" + "path": ".kokoro/continuous/lint.cfg" }, { - "path": ".kokoro/presubmit/java7.cfg" + "path": ".kokoro/continuous/dependencies.cfg" }, { - "path": ".kokoro/presubmit/java8.cfg" + "path": ".kokoro/continuous/java8-osx.cfg" }, { - "path": ".kokoro/presubmit/dependencies.cfg" + "path": ".kokoro/continuous/integration.cfg" }, { - "path": ".kokoro/presubmit/linkage-monitor.cfg" + "path": ".kokoro/continuous/java7.cfg" }, { - "path": ".kokoro/presubmit/common.cfg" + "path": ".kokoro/continuous/java11-samples.cfg" }, { - "path": ".kokoro/continuous/propose_release.cfg" + "path": ".kokoro/continuous/java8-samples.cfg" }, { - "path": ".kokoro/continuous/java11.cfg" + "path": ".kokoro/continuous/common.cfg" }, { - "path": ".kokoro/continuous/java8-win.cfg" + "path": ".kokoro/continuous/propose_release.cfg" }, { - "path": ".kokoro/continuous/lint.cfg" + "path": ".kokoro/continuous/java11.cfg" }, { - "path": ".kokoro/continuous/java8-osx.cfg" + "path": ".kokoro/continuous/java8-win.cfg" }, { - "path": ".kokoro/continuous/propose_release.sh" + "path": ".kokoro/continuous/java8.cfg" }, { - "path": ".kokoro/continuous/integration.cfg" + "path": ".git/packed-refs" }, { - "path": ".kokoro/continuous/java7.cfg" + "path": ".git/shallow" }, { - "path": ".kokoro/continuous/java8.cfg" + "path": ".git/index" }, { - "path": ".kokoro/continuous/dependencies.cfg" + "path": ".git/config" }, { - "path": ".kokoro/continuous/common.cfg" + "path": ".git/HEAD" }, { - "path": "samples/README.md" + "path": ".git/objects/pack/pack-68bd084ceee7b41b53a2c0a8e8a04078f7d7faae.pack" }, { - "path": "samples/pom.xml" + "path": ".git/objects/pack/pack-68bd084ceee7b41b53a2c0a8e8a04078f7d7faae.idx" }, { - "path": "samples/src/test/java/com/example/bigquery/ExtractTableToJSONIT.java" + "path": ".git/refs/remotes/origin/HEAD" }, { - "path": "samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java" + "path": ".git/refs/heads/master" }, { - "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java" + "path": ".git/refs/heads/autosynth" }, { - "path": "samples/src/test/java/com/example/bigquery/CreateTableIT.java" + "path": ".git/logs/HEAD" }, { - "path": "samples/src/test/java/com/example/bigquery/ListDatasetsIT.java" + "path": ".git/logs/refs/remotes/origin/HEAD" }, { - "path": "samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java" + "path": ".git/logs/refs/heads/master" }, { - "path": "samples/src/test/java/com/example/bigquery/SimpleAppIT.java" + "path": ".git/logs/refs/heads/autosynth" }, { - "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java" + "path": ".github/release-please.yml" }, { - "path": "samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java" + "path": ".github/PULL_REQUEST_TEMPLATE.md" }, { - "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java" + "path": ".github/CODEOWNERS" }, { - "path": "samples/src/test/java/com/example/bigquery/CreateDatasetIT.java" + "path": ".github/ISSUE_TEMPLATE/support_request.md" }, { - "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java" + "path": ".github/ISSUE_TEMPLATE/feature_request.md" }, { - "path": "samples/src/main/java/com/example/bigquery/CreateTable.java" + "path": ".github/ISSUE_TEMPLATE/bug_report.md" }, { - "path": "samples/src/main/java/com/example/bigquery/CreateDataset.java" + "path": "samples/README.md" }, { - "path": "samples/src/main/java/com/example/bigquery/ListDatasets.java" + "path": "samples/pom.xml" }, { - "path": "samples/src/main/java/com/example/bigquery/AuthSnippets.java" + "path": "samples/src/test/java/com/example/bigquery/ListDatasetsIT.java" }, { - "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java" + "path": "samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java" }, { - "path": "samples/src/main/java/com/example/bigquery/DeleteDataset.java" + "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java" }, { - "path": "samples/src/main/java/com/example/bigquery/SimpleApp.java" + "path": "samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java" }, { - "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java" + "path": "samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java" }, { - "path": "samples/src/main/java/com/example/bigquery/ExtractTableToJSON.java" + "path": "samples/src/test/java/com/example/bigquery/SimpleAppIT.java" }, { - "path": "samples/src/main/java/com/example/bigquery/QuickstartSample.java" + "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java" }, { - "path": "__pycache__/synth.cpython-36.pyc" + "path": "samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java" }, { - "path": ".git/shallow" + "path": "samples/src/test/java/com/example/bigquery/CreateDatasetIT.java" }, { - "path": ".git/index" + "path": "samples/src/test/java/com/example/bigquery/CreateTableIT.java" }, { - "path": ".git/packed-refs" + "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java" }, { - "path": ".git/HEAD" + "path": "samples/src/main/java/com/example/bigquery/CreateDataset.java" }, { - "path": ".git/config" + "path": "samples/src/main/java/com/example/bigquery/AuthSnippets.java" }, { - "path": ".git/logs/HEAD" + "path": "samples/src/main/java/com/example/bigquery/SimpleApp.java" }, { - "path": ".git/logs/refs/heads/autosynth" + "path": "samples/src/main/java/com/example/bigquery/QuickstartSample.java" }, { - "path": ".git/logs/refs/heads/master" + "path": "samples/src/main/java/com/example/bigquery/DeleteDataset.java" }, { - "path": ".git/logs/refs/remotes/origin/HEAD" + "path": "samples/src/main/java/com/example/bigquery/ListDatasets.java" }, { - "path": ".git/objects/pack/pack-5caa4c4df341e7b357ff4e3eff9fb434fe0f804b.pack" + "path": "samples/src/main/java/com/example/bigquery/ExtractTableToJson.java" }, { - "path": ".git/objects/pack/pack-5caa4c4df341e7b357ff4e3eff9fb434fe0f804b.idx" + "path": "samples/src/main/java/com/example/bigquery/CreateTable.java" }, { - "path": ".git/refs/heads/autosynth" + "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java" }, { - "path": ".git/refs/heads/master" + "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java" }, { - "path": ".git/refs/remotes/origin/HEAD" + "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java" } ] } \ No newline at end of file From 9c48bb6bc6ae78338e1b14e0508ab524c24978f3 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Thu, 2 Jan 2020 23:29:32 +0200 Subject: [PATCH 0278/3441] deps: update core dependencies to v1.92.1 (#66) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 33b2e2f7b9d9..1555dfa3ce86 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - 1.92.0 + 1.92.1 1.8.1 1.17.0 1.52.0 From dd49df9d65dbe2026cf714de2cd18c399f0da890 Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Fri, 3 Jan 2020 11:11:55 -0500 Subject: [PATCH 0279/3441] chore: ignore Eclipse and Mac metafiles (#71) --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 53f53a3c8ca3..8782d86f6ecd 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,8 @@ *.iml target/ __pycache__ +.project +.settings +.classpath +.DS_Store From e967e10267514dfbac7013cac61f22b74d52b2b8 Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Fri, 3 Jan 2020 11:15:10 -0500 Subject: [PATCH 0280/3441] docs: Update libraries-bom version (#73) @stephaniewang526 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index da39d9ddde1c..0c7b457af221 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ If you are using Maven with a BOM, add this to your pom.xml file. com.google.cloud libraries-bom - 3.1.1 + 3.3.0 pom import From e8016c1a30b3280ecf2bf0a4ff474a803a863007 Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Fri, 3 Jan 2020 11:29:22 -0500 Subject: [PATCH 0281/3441] chore: fix assorted warnings (#74) * fix assorted warnings * chore: fix assorted warnings * chore: reformat code Co-authored-by: Stephanie Wang --- .../src/main/java/com/google/cloud/bigquery/Acl.java | 3 ++- .../src/main/java/com/google/cloud/bigquery/JobStatistics.java | 3 +-- .../src/main/java/com/google/cloud/bigquery/JobStatus.java | 3 ++- .../main/java/com/google/cloud/bigquery/LegacySQLTypeName.java | 2 +- .../main/java/com/google/cloud/bigquery/TableDefinition.java | 3 ++- .../test/java/com/example/bigquery/ExtractTableToJsonIT.java | 2 +- 6 files changed, 9 insertions(+), 7 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java index 2e618f3d0bd3..746f1542c306 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java @@ -56,7 +56,8 @@ public Role apply(String constant) { } }; - private static final StringEnumType type = new StringEnumType(Role.class, CONSTRUCTOR); + private static final StringEnumType type = + new StringEnumType(Role.class, CONSTRUCTOR); /** Can read, query, copy or export tables in the dataset. */ public static final Role READER = type.createAndRegister("READER"); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 1f7a51508ea0..45cdc74498e8 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -21,7 +21,6 @@ import com.google.api.services.bigquery.model.JobStatistics2; import com.google.api.services.bigquery.model.JobStatistics3; import com.google.api.services.bigquery.model.JobStatistics4; -import com.google.api.services.bigquery.model.ScriptStackFrame; import com.google.cloud.StringEnumType; import com.google.cloud.StringEnumValue; import com.google.common.base.Function; @@ -352,7 +351,7 @@ public StatementType apply(String constant) { }; private static final StringEnumType type = - new StringEnumType(StatementType.class, CONSTRUCTOR); + new StringEnumType(StatementType.class, CONSTRUCTOR); public static final StatementType SELECT = type.createAndRegister("SELECT"); public static final StatementType UPDATE = type.createAndRegister("UPDATE"); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java index b09d00e852eb..3ac24293c653 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java @@ -47,7 +47,8 @@ public State apply(String constant) { } }; - private static final StringEnumType type = new StringEnumType(State.class, CONSTRUCTOR); + private static final StringEnumType type = + new StringEnumType(State.class, CONSTRUCTOR); /** The BigQuery Job is waiting to be executed. */ public static final State PENDING = type.createAndRegister("PENDING"); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java index b48ea4fa06ef..e5a46f5e72b7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java @@ -41,7 +41,7 @@ public LegacySQLTypeName apply(String constant) { }; private static final StringEnumType type = - new StringEnumType(LegacySQLTypeName.class, CONSTRUCTOR); + new StringEnumType(LegacySQLTypeName.class, CONSTRUCTOR); /** Variable-length binary data. */ public static final LegacySQLTypeName BYTES = diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java index ff3ea901dcd8..75d4bf4031f0 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java @@ -40,7 +40,8 @@ public Type apply(String constant) { } }; - private static final StringEnumType type = new StringEnumType(Type.class, CONSTRUCTOR); + private static final StringEnumType type = + new StringEnumType(Type.class, CONSTRUCTOR); /** * A normal BigQuery table. Instances of {@code TableDefinition} for this type are implemented diff --git a/samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java b/samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java index 5d2a2a0a083c..6d776c64eac4 100644 --- a/samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java +++ b/samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java @@ -34,7 +34,7 @@ public class ExtractTableToJsonIT { private static void requireEnvVar(String varName) { assertNotNull( - "Environment variable '%s' is required to perform these tests.".format(varName), + "Environment variable " + varName + " is required to perform these tests.", System.getenv(varName)); } From aabf02ac76ac050154422eee79569a81b7d00038 Mon Sep 17 00:00:00 2001 From: Elliotte Rusty Harold Date: Fri, 3 Jan 2020 11:35:34 -0500 Subject: [PATCH 0282/3441] chore: remove deprecated method (#70) * remove deprecated method * remove deprecated method * remove unused rule * remove deprecated rule * remove unused fields * remove deprecated rule * remove deprecated rule * chore: reformat code Co-authored-by: Stephanie Wang --- .../cloud/bigquery/BigQueryImplTest.java | 87 +++++++++++-------- .../cloud/bigquery/BigQueryOptionsTest.java | 14 +-- .../com/google/cloud/bigquery/JobTest.java | 52 ++++------- .../bigquery/TableDataWriteChannelTest.java | 18 ++-- .../testing/RemoteBigQueryHelperTest.java | 4 - 5 files changed, 82 insertions(+), 93 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index b83c4ca0812e..b1e1a5d368bb 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -58,10 +58,9 @@ import org.easymock.Capture; import org.easymock.EasyMock; import org.junit.After; +import org.junit.Assert; import org.junit.Before; -import org.junit.Rule; import org.junit.Test; -import org.junit.rules.ExpectedException; public class BigQueryImplTest { @@ -133,19 +132,14 @@ public class BigQueryImplTest { .setCreationTime(TABLE_CREATION_TIME) .build(); - private static final ModelId MODEL_ID = ModelId.of(DATASET, MODEL); private static final ModelId OTHER_MODEL_ID = ModelId.of(DATASET, OTHER_MODEL); private static final ModelId MODEL_ID_WITH_PROJECT = ModelId.of(PROJECT, DATASET, MODEL); - private static final ModelInfo MODEL_INFO = ModelInfo.of(MODEL_ID); private static final ModelInfo OTHER_MODEL_INFO = ModelInfo.of(OTHER_MODEL_ID); private static final ModelInfo MODEL_INFO_WITH_PROJECT = ModelInfo.of(MODEL_ID_WITH_PROJECT); - private static final LoadJobConfiguration LOAD_JOB_CONFIGURATION = - LoadJobConfiguration.of(TABLE_ID, "URI"); private static final LoadJobConfiguration LOAD_JOB_CONFIGURATION_WITH_PROJECT = LoadJobConfiguration.of(TABLE_ID_WITH_PROJECT, "URI"); - private static final JobInfo LOAD_JOB = JobInfo.of(LOAD_JOB_CONFIGURATION); private static final JobInfo COMPLETE_LOAD_JOB = JobInfo.of(JobId.of(PROJECT, JOB), LOAD_JOB_CONFIGURATION_WITH_PROJECT); private static final CopyJobConfiguration COPY_JOB_CONFIGURATION = @@ -166,16 +160,8 @@ public class BigQueryImplTest { .setDefaultDataset(DatasetId.of(PROJECT, DATASET)) .setDestinationTable(TABLE_ID_WITH_PROJECT) .build(); - private static final JobInfo QUERY_JOB = JobInfo.of(QUERY_JOB_CONFIGURATION); private static final JobInfo COMPLETE_QUERY_JOB = JobInfo.of(JobId.of(PROJECT, JOB), QUERY_JOB_CONFIGURATION_WITH_PROJECT); - private static final ExtractJobConfiguration EXTRACT_JOB_CONFIGURATION = - ExtractJobConfiguration.of(TABLE_ID, "URI"); - private static final ExtractJobConfiguration EXTRACT_JOB_CONFIGURATION_WITH_PROJECT = - ExtractJobConfiguration.of(TABLE_ID_WITH_PROJECT, "URI"); - private static final JobInfo EXTRACT_JOB = JobInfo.of(EXTRACT_JOB_CONFIGURATION); - private static final JobInfo COMPLETE_EXTRACT_JOB = - JobInfo.of(JobId.of(PROJECT, JOB), EXTRACT_JOB_CONFIGURATION_WITH_PROJECT); private static final TableCell BOOLEAN_FIELD = new TableCell().setV("false"); private static final TableCell INTEGER_FIELD = new TableCell().setV("1"); private static final TableRow TABLE_ROW = @@ -429,8 +415,6 @@ public class BigQueryImplTest { private BigQueryRpc bigqueryRpcMock; private BigQuery bigquery; - @Rule public ExpectedException thrown = ExpectedException.none(); - private BigQueryOptions createBigQueryOptionsForProject( String project, BigQueryRpcFactory rpcFactory) { return BigQueryOptions.newBuilder() @@ -533,8 +517,12 @@ public void testGetDatasetNotFoundWhenThrowIsEnabled() { EasyMock.replay(bigqueryRpcMock); options.setThrowNotFound(true); bigquery = options.getService(); - thrown.expect(BigQueryException.class); - bigquery.getDataset("dataset-not-found"); + try { + bigquery.getDataset("dataset-not-found"); + Assert.fail(); + } catch (BigQueryException ex) { + Assert.assertNotNull(ex.getMessage()); + } } @Test @@ -817,8 +805,12 @@ public void testGetTableNotFoundWhenThrowIsEnabled() { EasyMock.replay(bigqueryRpcMock); options.setThrowNotFound(true); bigquery = options.getService(); - thrown.expect(BigQueryException.class); - bigquery.getTable(DATASET, "table-not-found"); + try { + bigquery.getTable(DATASET, "table-not-found"); + Assert.fail(); + } catch (BigQueryException ex) { + Assert.assertNotNull(ex.getMessage()); + } } @Test @@ -1161,8 +1153,12 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); - thrown.expect(BigQueryException.class); - bigquery.insertAll(request); + try { + bigquery.insertAll(request); + Assert.fail(); + } catch (BigQueryException ex) { + Assert.assertNotNull(ex.getMessage()); + } } @Test @@ -1477,8 +1473,12 @@ public void testGetJobNotFoundWhenThrowIsEnabled() { EasyMock.replay(bigqueryRpcMock); options.setThrowNotFound(true); bigquery = options.getService(); - thrown.expect(BigQueryException.class); - bigquery.getJob("job-not-found"); + try { + bigquery.getJob("job-not-found"); + Assert.fail(); + } catch (BigQueryException ex) { + Assert.assertNotNull(ex.getMessage()); + } } @Test @@ -1901,9 +1901,13 @@ public void testNonRetryableException() { .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); - thrown.expect(BigQueryException.class); - thrown.expectMessage(exceptionMessage); - bigquery.getDataset(DatasetId.of(DATASET)); + + try { + bigquery.getDataset(DatasetId.of(DATASET)); + Assert.fail(); + } catch (BigQueryException ex) { + Assert.assertEquals(exceptionMessage, ex.getMessage()); + } } @Test @@ -1918,21 +1922,28 @@ public void testRuntimeException() { .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); - thrown.expect(BigQueryException.class); - thrown.expectMessage(exceptionMessage); - bigquery.getDataset(DATASET); + try { + bigquery.getDataset(DATASET); + Assert.fail(); + } catch (BigQueryException ex) { + Assert.assertTrue(ex.getMessage().endsWith(exceptionMessage)); + } } @Test public void testQueryDryRun() throws Exception { // https://github.com/googleapis/google-cloud-java/issues/2479 EasyMock.replay(bigqueryRpcMock); - thrown.expect(UnsupportedOperationException.class); - options - .toBuilder() - .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) - .build() - .getService() - .query(QueryJobConfiguration.newBuilder("foo").setDryRun(true).build()); + try { + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService() + .query(QueryJobConfiguration.newBuilder("foo").setDryRun(true).build()); + Assert.fail(); + } catch (UnsupportedOperationException ex) { + Assert.assertNotNull(ex.getMessage()); + } } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java index 04962dffb0ea..dc57c1f9a638 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java @@ -18,17 +18,19 @@ import com.google.cloud.TransportOptions; import org.easymock.EasyMock; -import org.junit.Rule; +import org.junit.Assert; import org.junit.Test; -import org.junit.rules.ExpectedException; public class BigQueryOptionsTest { - @Rule public ExpectedException thrown = ExpectedException.none(); @Test public void testInvalidTransport() { - thrown.expect(IllegalArgumentException.class); - BigQueryOptions.newBuilder() - .setTransportOptions(EasyMock.createMock(TransportOptions.class)); + try { + BigQueryOptions.newBuilder() + .setTransportOptions(EasyMock.createMock(TransportOptions.class)); + Assert.fail(); + } catch (IllegalArgumentException expected) { + Assert.assertNotNull(expected.getMessage()); + } } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index c36fda6b4c41..978405d09c51 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -40,9 +40,8 @@ import com.google.common.collect.ImmutableList; import java.util.Collections; import org.junit.After; -import org.junit.Rule; +import org.junit.Assert; import org.junit.Test; -import org.junit.rules.ExpectedException; import org.threeten.bp.Duration; public class JobTest { @@ -85,8 +84,6 @@ public class JobTest { private Job expectedJob; private Job job; - @Rule public final ExpectedException thrown = ExpectedException.none(); - private void initializeExpectedJob(int optionsCalls, JobInfo jobInfo) { expect(serviceMockReturnsOptions.getOptions()).andReturn(mockOptions).times(optionsCalls); replay(serviceMockReturnsOptions); @@ -253,34 +250,6 @@ public void testWaitForAndGetQueryResultsEmpty() throws InterruptedException { expect(bigquery.getOptions()).andReturn(mockOptions); expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()).times(2); Job completedJob = expectedJob.toBuilder().setStatus(status).build(); - // TODO(pongad): remove when we bump gax to 1.15. - Page emptyPage = - new Page() { - @Override - public boolean hasNextPage() { - return false; - } - - @Override - public String getNextPageToken() { - return ""; - } - - @Override - public Page getNextPage() { - return null; - } - - @Override - public Iterable iterateAll() { - return Collections.emptyList(); - } - - @Override - public Iterable getValues() { - return Collections.emptyList(); - } - }; QueryResponse completedQuery = QueryResponse.newBuilder() .setCompleted(true) @@ -435,8 +404,13 @@ public void testWaitForAndGetQueryResults_Unsupported() throws InterruptedExcept expect(bigquery.getOptions()).andReturn(mockOptions); replay(bigquery, mockOptions); initializeJob(); - thrown.expect(UnsupportedOperationException.class); - job.getQueryResults(); + + try { + job.getQueryResults(); + Assert.fail(); + } catch (UnsupportedOperationException expected) { + Assert.assertNotNull(expected.getMessage()); + } } @Test @@ -510,9 +484,13 @@ public void testWaitForWithTimeout() throws InterruptedException { expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(runningJob); replay(status, bigquery, clock, mockOptions); initializeJob(); - thrown.expect(BigQueryException.class); - job.waitFor(concat(TEST_RETRY_OPTIONS, RetryOption.totalTimeout(Duration.ofMillis(3)))); - verify(status, clock, mockOptions); + + try { + job.waitFor(concat(TEST_RETRY_OPTIONS, RetryOption.totalTimeout(Duration.ofMillis(3)))); + Assert.fail(); + } catch (BigQueryException expected) { + Assert.assertNotNull(expected.getMessage()); + } } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java index 43012a8efab1..0b4707db1437 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java @@ -42,10 +42,9 @@ import org.easymock.Capture; import org.easymock.CaptureType; import org.junit.After; +import org.junit.Assert; import org.junit.Before; -import org.junit.Rule; import org.junit.Test; -import org.junit.rules.ExpectedException; public class TableDataWriteChannelTest { @@ -67,8 +66,6 @@ public class TableDataWriteChannelTest { LoadJobConfiguration.of(TABLE_ID, "URI"); private static final JobInfo JOB_INFO = JobInfo.of(JobId.of(), JOB_CONFIGURATION); - @Rule public ExpectedException thrown = ExpectedException.none(); - private BigQueryOptions options; private BigQueryRpcFactory rpcFactoryMock; private BigQueryRpc bigqueryRpcMock; @@ -141,16 +138,21 @@ public void testCreateRetryableError() { } @Test - public void testCreateNonRetryableError() { + public void testCreateNonRetryableError() throws IOException { + RuntimeException ex = new RuntimeException("expected"); expect( bigqueryRpcMock.open( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andThrow(new RuntimeException()); + .andThrow(ex); replay(bigqueryRpcMock); - thrown.expect(RuntimeException.class); - new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + try (TableDataWriteChannel channel = + new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION)) { + Assert.fail(); + } catch (RuntimeException expected) { + Assert.assertEquals("java.lang.RuntimeException: expected", expected.getMessage()); + } } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java index 65cd0571f268..e994df433c52 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java @@ -27,9 +27,7 @@ import java.io.InputStream; import java.util.concurrent.ExecutionException; import org.easymock.EasyMock; -import org.junit.Rule; import org.junit.Test; -import org.junit.rules.ExpectedException; import org.threeten.bp.Duration; public class RemoteBigQueryHelperTest { @@ -65,8 +63,6 @@ public class RemoteBigQueryHelperTest { + "}"; private static final InputStream JSON_KEY_STREAM = new ByteArrayInputStream(JSON_KEY.getBytes()); - @Rule public ExpectedException thrown = ExpectedException.none(); - @Test public void testForceDelete() throws InterruptedException, ExecutionException { BigQuery bigqueryMock = EasyMock.createMock(BigQuery.class); From fd2dcf8c707333c438e925354c0da9c2925293b9 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Fri, 3 Jan 2020 21:53:41 +0200 Subject: [PATCH 0283/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.3.1 (#75) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1555dfa3ce86..295026d64d10 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.3.0 + 0.3.1 From 2476419df9be7b2f52cdd098383c0622c669d046 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 3 Jan 2020 17:55:57 -0500 Subject: [PATCH 0284/3441] feat: new sample - Tables: Copy multiple tables (#76) * feat: new sample - Tables: Copy multiple tables b/147141782 * update test to create new destination table for each test since existing table cannot be overwritten and would throw bigquery error * add env vars for sample test builds * update testing var names * format code --- .kokoro/run_samples_tests.sh | 3 + .../example/bigquery/CopyMultipleTables.java | 76 +++++++++++++++++++ .../bigquery/CopyMultipleTablesIT.java | 73 ++++++++++++++++++ .../bigquery/ExtractTableToJsonIT.java | 1 - 4 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 samples/src/main/java/com/example/bigquery/CopyMultipleTables.java create mode 100644 samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java diff --git a/.kokoro/run_samples_tests.sh b/.kokoro/run_samples_tests.sh index dc6929f00e79..ff25061b12ba 100755 --- a/.kokoro/run_samples_tests.sh +++ b/.kokoro/run_samples_tests.sh @@ -30,7 +30,10 @@ mvn -v # Setup required env variables export GOOGLE_CLOUD_PROJECT=java-docs-samples-testing export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-acct.json +export BIGQUERY_DATASET_NAME=bigquery_test_dataset export GCS_BUCKET=java-docs-samples-testing +export BIGQUERY_TABLE1=table1 +export BIGQUERY_TABLE2=table2 # Activate service account gcloud auth activate-service-account \ diff --git a/samples/src/main/java/com/example/bigquery/CopyMultipleTables.java b/samples/src/main/java/com/example/bigquery/CopyMultipleTables.java new file mode 100644 index 000000000000..ff139a2a5e0b --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/CopyMultipleTables.java @@ -0,0 +1,76 @@ +/* + * Copyright 2019 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_copy_table_multiple_source] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.CopyJobConfiguration; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.TableId; +import java.util.Arrays; + +public class CopyMultipleTables { + + public static void runCopyMultipleTables() { + // TODO(developer): Replace these variables before running the sample. + String destinationDatasetName = "MY_DATASET_NAME"; + String destinationTableId = "MY_TABLE_NAME"; + copyMultipleTables(destinationDatasetName, destinationTableId); + } + + public static void copyMultipleTables(String destinationDatasetName, String destinationTableId) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId destinationTable = TableId.of(destinationDatasetName, destinationTableId); + + // For more information on CopyJobConfiguration see: + // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigquery/JobConfiguration.html + CopyJobConfiguration configuration = + CopyJobConfiguration.newBuilder( + destinationTable, + Arrays.asList( + TableId.of(destinationDatasetName, "table1"), + TableId.of(destinationDatasetName, "table2"))) + .build(); + + // For more information on Job see: + // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html + Job job = bigquery.create(JobInfo.of(configuration)); + + // Blocks until this job completes its execution, either failing or succeeding. + Job completedJob = job.waitFor(); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to copy tables due to an error: \n" + job.getStatus().getError()); + return; + } + System.out.println("Table copied successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Table copying job was interrupted. \n" + e.toString()); + } + } +} +// [END bigquery_copy_table_multiple_source] diff --git a/samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java b/samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java new file mode 100644 index 000000000000..b4d6e4be1117 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java @@ -0,0 +1,73 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CopyMultipleTablesIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + private static final String BIGQUERY_TABLE1 = System.getenv("BIGQUERY_TABLE1"); + private static final String BIGQUERY_TABLE2 = System.getenv("BIGQUERY_TABLE2"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + requireEnvVar("BIGQUERY_TABLE1"); + requireEnvVar("BIGQUERY_TABLE2"); + } + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testCopyMultipleTables() { + // Create a new destination table for each test since existing table cannot be overwritten + String generatedTableName = + "gcloud_test_table_temp_" + UUID.randomUUID().toString().replace('-', '_'); + CreateTable.createTable(BIGQUERY_DATASET_NAME, generatedTableName, null); + + CopyMultipleTables.copyMultipleTables(BIGQUERY_DATASET_NAME, generatedTableName); + assertThat(bout.toString()).contains("Table copied successfully."); + } +} diff --git a/samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java b/samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java index 6d776c64eac4..e018384ed5d0 100644 --- a/samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java +++ b/samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java @@ -61,7 +61,6 @@ public void testExtractTableToJson() { String datasetName = "samples"; String tableName = "shakespeare"; String destinationUri = "gs://" + GCS_BUCKET + "/extractTest.csv"; - System.out.println(destinationUri); // Extract table content to GCS in CSV format ExtractTableToJson.extractTableToJson(projectId, datasetName, tableName, destinationUri); From 53e66ce140357985f90a59066c28602751c86f2a Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 6 Jan 2020 21:13:43 +0530 Subject: [PATCH 0285/3441] chore: remove deprecated method (#78) * chore: remove deprecated method * chore: modified code --- .../cloud/bigquery/TimePartitioningTest.java | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java index 3ca239eaddc5..5f061956db9b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java @@ -17,12 +17,12 @@ package com.google.cloud.bigquery; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import com.google.cloud.bigquery.TimePartitioning.Type; -import org.junit.Rule; +import org.junit.Assert; import org.junit.Test; -import org.junit.rules.ExpectedException; public class TimePartitioningTest { @@ -37,8 +37,6 @@ public class TimePartitioningTest { .setField(FIELD) .build(); - @Rule public ExpectedException thrown = ExpectedException.none(); - @Test public void testOf() { assertEquals(TYPE, TIME_PARTITIONING.getType()); @@ -66,14 +64,22 @@ public void testBuilder() { @Test public void testTypeOf_Npe() { - thrown.expect(NullPointerException.class); - TimePartitioning.of(null); + try { + TimePartitioning.of(null); + Assert.fail(); + } catch (NullPointerException ex) { + assertNotNull(ex.getMessage()); + } } @Test public void testTypeAndExpirationOf_Npe() { - thrown.expect(NullPointerException.class); - TimePartitioning.of(null, EXPIRATION_MS); + try { + TimePartitioning.of(null, EXPIRATION_MS); + Assert.fail(); + } catch (NullPointerException ex) { + assertNotNull(ex.getMessage()); + } } @Test From a331eaa724b353f92feee8707facdb4841f36daf Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 6 Jan 2020 20:23:38 -0500 Subject: [PATCH 0286/3441] chore: update method and credentials (#79) * feat: new sample - Tables: Copy multiple tables b/147141782 * update test to create new destination table for each test since existing table cannot be overwritten and would throw bigquery error * add env vars for sample test builds * update testing var names * format code * chore: update method and credentials 1. update extract table to json job to allow wait time 2. update testing credentials --- .kokoro/run_samples_tests.sh | 8 ++------ .../java/com/example/bigquery/ExtractTableToJson.java | 7 ++++++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.kokoro/run_samples_tests.sh b/.kokoro/run_samples_tests.sh index ff25061b12ba..0e8bc62241bc 100755 --- a/.kokoro/run_samples_tests.sh +++ b/.kokoro/run_samples_tests.sh @@ -28,12 +28,8 @@ echo "********** MAVEN INFO ***********" mvn -v # Setup required env variables -export GOOGLE_CLOUD_PROJECT=java-docs-samples-testing -export GOOGLE_APPLICATION_CREDENTIALS=${KOKORO_GFILE_DIR}/service-acct.json -export BIGQUERY_DATASET_NAME=bigquery_test_dataset -export GCS_BUCKET=java-docs-samples-testing -export BIGQUERY_TABLE1=table1 -export BIGQUERY_TABLE2=table2 +source ${KOKORO_GFILE_DIR}/bigquery_secrets.txt +echo "********** Successfully Set All Environment Variables **********" # Activate service account gcloud auth activate-service-account \ diff --git a/samples/src/main/java/com/example/bigquery/ExtractTableToJson.java b/samples/src/main/java/com/example/bigquery/ExtractTableToJson.java index 20e29135e5df..4d657c69005d 100644 --- a/samples/src/main/java/com/example/bigquery/ExtractTableToJson.java +++ b/samples/src/main/java/com/example/bigquery/ExtractTableToJson.java @@ -17,12 +17,14 @@ package com.example.bigquery; // [START bigquery_extract_table] +import com.google.cloud.RetryOption; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Job; import com.google.cloud.bigquery.Table; import com.google.cloud.bigquery.TableId; +import org.threeten.bp.Duration; public class ExtractTableToJson { @@ -54,7 +56,10 @@ public static void extractTableToJson( Job job = table.extract("CSV", destinationUri); // Blocks until this job completes its execution, either failing or succeeding. - Job completedJob = job.waitFor(); + Job completedJob = + job.waitFor( + RetryOption.initialRetryDelay(Duration.ofSeconds(1)), + RetryOption.totalTimeout(Duration.ofMinutes(3))); if (completedJob == null) { System.out.println("Job not executed since it no longer exists."); return; From 70c2bbb9eba99e60b958c231e36e09436f9ec624 Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Tue, 7 Jan 2020 17:50:15 +0200 Subject: [PATCH 0287/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.103.0 (#80) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 295026d64d10..e0fb5b94809e 100644 --- a/pom.xml +++ b/pom.xml @@ -197,7 +197,7 @@ com.google.cloud google-cloud-storage - 1.102.0 + 1.103.0 test From 4ad5d266c3ecf80dd83ec156b1a971f45681dddd Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 7 Jan 2020 13:56:53 -0500 Subject: [PATCH 0288/3441] chore: clean up samples integration test script (#83) * chore: clean up samples integration test script * update based on comments --- .kokoro/run_samples_tests.sh | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/.kokoro/run_samples_tests.sh b/.kokoro/run_samples_tests.sh index 0e8bc62241bc..dc8b82215b88 100755 --- a/.kokoro/run_samples_tests.sh +++ b/.kokoro/run_samples_tests.sh @@ -16,14 +16,7 @@ # `-e` enables the script to automatically fail when a command fails # `-o pipefail` sets the exit code to the rightmost comment to exit with a non-zero set -eo pipefail -# Enables `**` to include files nested inside sub-folders -shopt -s globstar -# Update `gcloud` and log versioning for debugging. -gcloud components install beta --quiet -gcloud components update --quiet -echo "********** GCLOUD INFO ***********" -gcloud -v echo "********** MAVEN INFO ***********" mvn -v @@ -42,16 +35,5 @@ scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) cd ${scriptDir}/../samples/ echo -e "\n******************** RUNNING SAMPLE TESTS ********************" -RTN=0 -mvn --fail-at-end clean verify - -EXIT=$? -if [[ $EXIT -ne 0 ]]; then - RTN=1 - echo -e "\n Testing failed: Maven returned a non-zero exit code. \n" -else - echo -e "\n Testing completed.\n" -fi - -exit "$RTN" \ No newline at end of file +mvn --fail-at-end clean verify \ No newline at end of file From 29ede0ff107f9e39da38953ad2e785b67722b769 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 7 Jan 2020 10:57:39 -0800 Subject: [PATCH 0289/3441] chore: update common templates --- .kokoro/build.sh | 15 +- .kokoro/continuous/samples.cfg | 31 ++ .kokoro/nightly/samples.cfg | 31 ++ .kokoro/presubmit/samples.cfg | 31 ++ CONTRIBUTING.md | 104 ++++++- synth.metadata | 539 +++++++++++++++++---------------- 6 files changed, 487 insertions(+), 264 deletions(-) create mode 100644 .kokoro/continuous/samples.cfg create mode 100644 .kokoro/nightly/samples.cfg create mode 100644 .kokoro/presubmit/samples.cfg diff --git a/.kokoro/build.sh b/.kokoro/build.sh index dc2936ef76a8..f1ae58408da5 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -44,13 +44,26 @@ test) bash .kokoro/coerce_logs.sh ;; lint) - mvn com.coveo:fmt-maven-plugin:check + mvn \ + -Penable-samples \ + com.coveo:fmt-maven-plugin:check ;; javadoc) mvn javadoc:javadoc javadoc:test-javadoc ;; integration) mvn -B ${INTEGRATION_TEST_ARGS} \ + -Penable-integration-tests \ + -DtrimStackTrace=false \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -fae \ + verify + bash .kokoro/coerce_logs.sh + ;; +samples) + mvn -B \ + -Penable-samples \ -DtrimStackTrace=false \ -Dclirr.skip=true \ -Denforcer.skip=true \ diff --git a/.kokoro/continuous/samples.cfg b/.kokoro/continuous/samples.cfg new file mode 100644 index 000000000000..fa7b493d0b5c --- /dev/null +++ b/.kokoro/continuous/samples.cfg @@ -0,0 +1,31 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "JOB_TYPE" + value: "samples" +} + +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "keystore/73713_java_it_service_account" +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "java_it_service_account" + } + } +} diff --git a/.kokoro/nightly/samples.cfg b/.kokoro/nightly/samples.cfg new file mode 100644 index 000000000000..9a9102490d54 --- /dev/null +++ b/.kokoro/nightly/samples.cfg @@ -0,0 +1,31 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "JOB_TYPE" + value: "samples" +} + +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "keystore/73713_java_it_service_account" +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "java_it_service_account" + } + } +} diff --git a/.kokoro/presubmit/samples.cfg b/.kokoro/presubmit/samples.cfg new file mode 100644 index 000000000000..fa7b493d0b5c --- /dev/null +++ b/.kokoro/presubmit/samples.cfg @@ -0,0 +1,31 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "JOB_TYPE" + value: "samples" +} + +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "keystore/73713_java_it_service_account" +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "java_it_service_account" + } + } +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ebbb59e5310f..085021ddec26 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,4 +25,106 @@ information on using pull requests. ## Community Guidelines This project follows -[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/). \ No newline at end of file +[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/). + +## Building the project + +To build, package, and run all unit tests run the command + +``` +mvn clean verify +``` + +### Running Integration tests + +To include integration tests when building the project, you need access to +a GCP Project with a valid service account. + +For instructions on how to generate a service account and corresponding +credentials JSON see: [Creating a Service Account][1]. + +Then run the following to build, package, run all unit tests and run all +integration tests. + +```bash +export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account.json +mvn -Penable-integration-tests clean verify +``` + +## Code Samples + +Code Samples must be bundled in separate Maven modules, and guarded by a +Maven profile with the name `enable-samples`. + +The samples must be separate from the primary project for a few reasons: +1. Primary projects have a minimum Java version of Java 7 whereas samples have + a minimum Java version of Java 8. Due to this we need the ability to + selectively exclude samples from a build run. +2. Many code samples depend on external GCP services and need + credentials to access the service. +3. Code samples are not released as Maven artifacts and must be excluded from + release builds. + +### Building + +```bash +mvn -Penable-samples clean verify +``` + +Some samples require access to GCP services and require a service account: + +```bash +export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account.json +mvn -Penable-samples clean verify +``` + +### Profile Config + +1. To add samples in a profile to your Maven project, add the following to your +`pom.xml` + + ```xml + + [...] + + + enable-samples + + sample + + + + [...] + + ``` + +2. [Activate](#profile-activation) the profile. +3. Define your samples in a normal Maven project in the `samples/` directory + +### Profile Activation + +To include code samples when building and testing the project, enable the +`enable-samples` Maven profile. + +#### Command line + +To activate the Maven profile on the command line add `-Penable-samples` to your +Maven command. + +#### Maven `settings.xml` + +To activate the Maven profile in your `~/.m2/settings.xml` add an entry of +`enable-samples` following the instructions in [Active Profiles][2]. + +This method has the benefit of applying to all projects you build (and is +respected by IntelliJ IDEA) and is recommended if you are going to be +contributing samples to several projects. + +#### IntelliJ IDEA + +To activate the Maven Profile inside IntelliJ IDEA, follow the instructions in +[Activate Maven profiles][3] to activate `enable-samples`. + +[1]: https://cloud.google.com/docs/authentication/getting-started#creating_a_service_account +[2]: https://maven.apache.org/settings.html#Active_Profiles +[3]: https://www.jetbrains.com/help/idea/work-with-maven-profiles.html#activate_maven_profiles diff --git a/synth.metadata b/synth.metadata index a5c2e4f5dfcf..ffcb986141ea 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2019-12-31T08:35:33.621648Z", + "updateTime": "2020-01-07T08:36:01.847443Z", "sources": [ { "generator": { "name": "artman", - "version": "0.42.3", - "dockerImage": "googleapis/artman@sha256:feed210b5723c6f524b52ef6d7740a030f2d1a8f7c29a71c5e5b4481ceaad7f5" + "version": "0.43.0", + "dockerImage": "googleapis/artman@sha256:264654a37596a44b0668b8ce6ac41082d713f6ee150b3fc6425fa78cc64e4f20" } }, { @@ -18,778 +18,793 @@ ], "newFiles": [ { - "path": "synth.py" - }, - { - "path": "license-checks.xml" + "path": ".repo-metadata.json" }, { - "path": "CONTRIBUTING.md" + "path": "renovate.json" }, { - "path": ".repo-metadata.json" + "path": "license-checks.xml" }, { - "path": "versions.txt" + "path": "synth.py" }, { - "path": "java.header" + "path": "codecov.yaml" }, { - "path": "renovate.json" + "path": "LICENSE" }, { - "path": "codecov.yaml" + "path": ".gitignore" }, { - "path": "README.md" + "path": "pom.xml" }, { "path": "CODE_OF_CONDUCT.md" }, { - "path": "LICENSE" + "path": "synth.metadata" }, { - "path": "synth.metadata" + "path": "README.md" }, { - "path": "pom.xml" + "path": "versions.txt" }, { - "path": ".gitignore" + "path": "CONTRIBUTING.md" }, { - "path": "__pycache__/synth.cpython-36.pyc" + "path": "java.header" }, { - "path": "google-cloud-bigquery/pom.xml" + "path": "samples/pom.xml" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java" + "path": "samples/README.md" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java" + "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java" + "path": "samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java" + "path": "samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java" + "path": "samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java" + "path": "samples/src/test/java/com/example/bigquery/CreateDatasetIT.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java" + "path": "samples/src/test/java/com/example/bigquery/CreateTableIT.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java" + "path": "samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java" + "path": "samples/src/test/java/com/example/bigquery/ListDatasetsIT.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java" + "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java" + "path": "samples/src/test/java/com/example/bigquery/SimpleAppIT.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java" + "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java" + "path": "samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java" + "path": "samples/src/main/java/com/example/bigquery/ExtractTableToJson.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java" + "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java" + "path": "samples/src/main/java/com/example/bigquery/SimpleApp.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java" + "path": "samples/src/main/java/com/example/bigquery/CreateTable.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java" + "path": "samples/src/main/java/com/example/bigquery/CreateDataset.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java" + "path": "samples/src/main/java/com/example/bigquery/QuickstartSample.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java" + "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java" + "path": "samples/src/main/java/com/example/bigquery/AuthSnippets.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java" + "path": "samples/src/main/java/com/example/bigquery/ListDatasets.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java" + "path": "samples/src/main/java/com/example/bigquery/DeleteDataset.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java" + "path": "samples/src/main/java/com/example/bigquery/CopyMultipleTables.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java" + "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java" + "path": ".kokoro/build.bat" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java" + "path": ".kokoro/run_samples_tests.sh" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java" + "path": ".kokoro/build.sh" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java" + "path": ".kokoro/dependencies.sh" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java" + "path": ".kokoro/common.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java" + "path": ".kokoro/trampoline.sh" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java" + "path": ".kokoro/coerce_logs.sh" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java" + "path": ".kokoro/linkage-monitor.sh" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java" + "path": ".kokoro/continuous/dependencies.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java" + "path": ".kokoro/continuous/samples.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java" + "path": ".kokoro/continuous/java7.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java" + "path": ".kokoro/continuous/java8-osx.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java" + "path": ".kokoro/continuous/java11-samples.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java" + "path": ".kokoro/continuous/java8-win.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java" + "path": ".kokoro/continuous/propose_release.sh" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java" + "path": ".kokoro/continuous/lint.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java" + "path": ".kokoro/continuous/java8-samples.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java" + "path": ".kokoro/continuous/java11.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java" + "path": ".kokoro/continuous/common.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java" + "path": ".kokoro/continuous/propose_release.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java" + "path": ".kokoro/continuous/java8.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java" + "path": ".kokoro/continuous/integration.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java" + "path": ".kokoro/release/drop.sh" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java" + "path": ".kokoro/release/stage.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java" + "path": ".kokoro/release/promote.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java" + "path": ".kokoro/release/publish_javadoc.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java" + "path": ".kokoro/release/bump_snapshot.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java" + "path": ".kokoro/release/promote.sh" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java" + "path": ".kokoro/release/stage.sh" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java" + "path": ".kokoro/release/snapshot.sh" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java" + "path": ".kokoro/release/snapshot.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java" + "path": ".kokoro/release/common.cfg" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java" + "path": ".kokoro/release/bump_snapshot.sh" }, { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java" + "path": ".kokoro/release/common.sh" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java" + "path": ".kokoro/release/drop.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java" + "path": ".kokoro/release/publish_javadoc.sh" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java" + "path": ".kokoro/presubmit/dependencies.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java" + "path": ".kokoro/presubmit/samples.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java" + "path": ".kokoro/presubmit/java7.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java" + "path": ".kokoro/presubmit/java8-osx.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java" + "path": ".kokoro/presubmit/linkage-monitor.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java" + "path": ".kokoro/presubmit/java11-samples.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java" + "path": ".kokoro/presubmit/java8-win.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java" + "path": ".kokoro/presubmit/lint.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java" + "path": ".kokoro/presubmit/java8-samples.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java" + "path": ".kokoro/presubmit/java11.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java" + "path": ".kokoro/presubmit/common.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java" + "path": ".kokoro/presubmit/clirr.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java" + "path": ".kokoro/presubmit/java8.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java" + "path": ".kokoro/presubmit/integration.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java" + "path": ".kokoro/nightly/dependencies.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java" + "path": ".kokoro/nightly/samples.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java" + "path": ".kokoro/nightly/java7.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java" + "path": ".kokoro/nightly/java8-osx.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java" + "path": ".kokoro/nightly/java11-samples.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java" + "path": ".kokoro/nightly/java8-win.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java" + "path": ".kokoro/nightly/lint.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java" + "path": ".kokoro/nightly/java8-samples.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java" + "path": ".kokoro/nightly/java11.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java" + "path": ".kokoro/nightly/common.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java" + "path": ".kokoro/nightly/java8.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java" + "path": ".kokoro/nightly/integration.cfg" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java" + "path": ".github/CODEOWNERS" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java" + "path": ".github/release-please.yml" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java" + "path": ".github/PULL_REQUEST_TEMPLATE.md" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java" + "path": ".github/ISSUE_TEMPLATE/bug_report.md" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java" + "path": ".github/ISSUE_TEMPLATE/support_request.md" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java" + "path": ".github/ISSUE_TEMPLATE/feature_request.md" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java" + "path": "__pycache__/synth.cpython-36.pyc" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java" + "path": ".git/index" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java" + "path": ".git/packed-refs" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java" + "path": ".git/HEAD" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java" + "path": ".git/config" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java" + "path": ".git/shallow" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java" + "path": ".git/objects/pack/pack-dc31f243b5e78d241f297f1725dd67867939699a.pack" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java" + "path": ".git/objects/pack/pack-dc31f243b5e78d241f297f1725dd67867939699a.idx" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java" + "path": ".git/refs/remotes/origin/HEAD" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java" + "path": ".git/refs/heads/autosynth" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java" + "path": ".git/refs/heads/master" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java" + "path": ".git/logs/HEAD" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java" + "path": ".git/logs/refs/remotes/origin/HEAD" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java" + "path": ".git/logs/refs/heads/autosynth" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java" + "path": ".git/logs/refs/heads/master" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java" + "path": "google-cloud-bigquery/pom.xml" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java" }, { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java" }, { - "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java" }, { - "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java" }, { - "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/README.md" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java" }, { - "path": ".kokoro/build.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java" }, { - "path": ".kokoro/run_samples_tests.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java" }, { - "path": ".kokoro/linkage-monitor.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java" }, { - "path": ".kokoro/common.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java" }, { - "path": ".kokoro/dependencies.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java" }, { - "path": ".kokoro/coerce_logs.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java" }, { - "path": ".kokoro/trampoline.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java" }, { - "path": ".kokoro/build.bat" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java" }, { - "path": ".kokoro/release/publish_javadoc.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java" }, { - "path": ".kokoro/release/common.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java" }, { - "path": ".kokoro/release/drop.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java" }, { - "path": ".kokoro/release/stage.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java" }, { - "path": ".kokoro/release/snapshot.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java" }, { - "path": ".kokoro/release/publish_javadoc.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java" }, { - "path": ".kokoro/release/common.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java" }, { - "path": ".kokoro/release/bump_snapshot.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java" }, { - "path": ".kokoro/release/drop.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java" }, { - "path": ".kokoro/release/promote.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java" }, { - "path": ".kokoro/release/stage.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java" }, { - "path": ".kokoro/release/bump_snapshot.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java" }, { - "path": ".kokoro/release/promote.sh" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java" }, { - "path": ".kokoro/release/snapshot.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java" }, { - "path": ".kokoro/nightly/lint.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java" }, { - "path": ".kokoro/nightly/dependencies.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java" }, { - "path": ".kokoro/nightly/java8-osx.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java" }, { - "path": ".kokoro/nightly/integration.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java" }, { - "path": ".kokoro/nightly/java7.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java" }, { - "path": ".kokoro/nightly/java11-samples.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java" }, { - "path": ".kokoro/nightly/java8-samples.cfg" + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java" }, { - "path": ".kokoro/nightly/common.cfg" + "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java" }, { - "path": ".kokoro/nightly/java11.cfg" + "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/README.md" }, { - "path": ".kokoro/nightly/java8-win.cfg" + "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json" }, { - "path": ".kokoro/nightly/java8.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java" }, { - "path": ".kokoro/presubmit/linkage-monitor.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java" }, { - "path": ".kokoro/presubmit/lint.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java" }, { - "path": ".kokoro/presubmit/dependencies.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java" }, { - "path": ".kokoro/presubmit/java8-osx.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java" }, { - "path": ".kokoro/presubmit/integration.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java" }, { - "path": ".kokoro/presubmit/java7.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java" }, { - "path": ".kokoro/presubmit/java11-samples.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java" }, { - "path": ".kokoro/presubmit/java8-samples.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java" }, { - "path": ".kokoro/presubmit/common.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java" }, { - "path": ".kokoro/presubmit/java11.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java" }, { - "path": ".kokoro/presubmit/java8-win.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java" }, { - "path": ".kokoro/presubmit/clirr.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java" }, { - "path": ".kokoro/presubmit/java8.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java" }, { - "path": ".kokoro/continuous/propose_release.sh" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java" }, { - "path": ".kokoro/continuous/lint.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java" }, { - "path": ".kokoro/continuous/dependencies.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java" }, { - "path": ".kokoro/continuous/java8-osx.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java" }, { - "path": ".kokoro/continuous/integration.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java" }, { - "path": ".kokoro/continuous/java7.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java" }, { - "path": ".kokoro/continuous/java11-samples.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java" }, { - "path": ".kokoro/continuous/java8-samples.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java" }, { - "path": ".kokoro/continuous/common.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java" }, { - "path": ".kokoro/continuous/propose_release.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java" }, { - "path": ".kokoro/continuous/java11.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java" }, { - "path": ".kokoro/continuous/java8-win.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java" }, { - "path": ".kokoro/continuous/java8.cfg" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java" }, { - "path": ".git/packed-refs" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java" }, { - "path": ".git/shallow" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java" }, { - "path": ".git/index" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java" }, { - "path": ".git/config" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java" }, { - "path": ".git/HEAD" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java" }, { - "path": ".git/objects/pack/pack-68bd084ceee7b41b53a2c0a8e8a04078f7d7faae.pack" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java" }, { - "path": ".git/objects/pack/pack-68bd084ceee7b41b53a2c0a8e8a04078f7d7faae.idx" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java" }, { - "path": ".git/refs/remotes/origin/HEAD" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java" }, { - "path": ".git/refs/heads/master" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java" }, { - "path": ".git/refs/heads/autosynth" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java" }, { - "path": ".git/logs/HEAD" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java" }, { - "path": ".git/logs/refs/remotes/origin/HEAD" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java" }, { - "path": ".git/logs/refs/heads/master" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java" }, { - "path": ".git/logs/refs/heads/autosynth" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java" }, { - "path": ".github/release-please.yml" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java" }, { - "path": ".github/PULL_REQUEST_TEMPLATE.md" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java" }, { - "path": ".github/CODEOWNERS" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java" }, { - "path": ".github/ISSUE_TEMPLATE/support_request.md" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java" }, { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java" }, { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java" }, { - "path": "samples/README.md" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java" }, { - "path": "samples/pom.xml" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java" }, { - "path": "samples/src/test/java/com/example/bigquery/ListDatasetsIT.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java" }, { - "path": "samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java" }, { - "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java" }, { - "path": "samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java" }, { - "path": "samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java" }, { - "path": "samples/src/test/java/com/example/bigquery/SimpleAppIT.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java" }, { - "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java" }, { - "path": "samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java" }, { - "path": "samples/src/test/java/com/example/bigquery/CreateDatasetIT.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java" }, { - "path": "samples/src/test/java/com/example/bigquery/CreateTableIT.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java" }, { - "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java" }, { - "path": "samples/src/main/java/com/example/bigquery/CreateDataset.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java" }, { - "path": "samples/src/main/java/com/example/bigquery/AuthSnippets.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java" }, { - "path": "samples/src/main/java/com/example/bigquery/SimpleApp.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java" }, { - "path": "samples/src/main/java/com/example/bigquery/QuickstartSample.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java" }, { - "path": "samples/src/main/java/com/example/bigquery/DeleteDataset.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java" }, { - "path": "samples/src/main/java/com/example/bigquery/ListDatasets.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java" }, { - "path": "samples/src/main/java/com/example/bigquery/ExtractTableToJson.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java" }, { - "path": "samples/src/main/java/com/example/bigquery/CreateTable.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java" }, { - "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java" }, { - "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java" }, { - "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java" + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java" } ] } \ No newline at end of file From 723c604941ab25e68441039bf2904455bcd332c2 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Tue, 7 Jan 2020 11:36:28 -0800 Subject: [PATCH 0290/3441] chore: allow unstable renovate updates --- renovate.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/renovate.json b/renovate.json index d014232c57bf..f3a70c9703f1 100644 --- a/renovate.json +++ b/renovate.json @@ -52,6 +52,12 @@ ], "semanticCommitType": "build", "semanticCommitScope": "deps" + }, + { + "packagePatterns": [ + "^com.google.cloud:google-cloud-" + ], + "ignoreUnstable": false } ], "semanticCommits": true From 7a83dab3f8b8c659ff74f694f441eb430037a5f5 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 8 Jan 2020 07:49:20 -0800 Subject: [PATCH 0291/3441] chore: re-generated to pick up changes in the API or client library generator. (#86) --- renovate.json | 6 - synth.metadata | 793 +------------------------------------------------ 2 files changed, 1 insertion(+), 798 deletions(-) diff --git a/renovate.json b/renovate.json index f3a70c9703f1..d014232c57bf 100644 --- a/renovate.json +++ b/renovate.json @@ -52,12 +52,6 @@ ], "semanticCommitType": "build", "semanticCommitScope": "deps" - }, - { - "packagePatterns": [ - "^com.google.cloud:google-cloud-" - ], - "ignoreUnstable": false } ], "semanticCommits": true diff --git a/synth.metadata b/synth.metadata index ffcb986141ea..92e0eef5329a 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2020-01-07T08:36:01.847443Z", + "updateTime": "2020-01-08T08:37:58.295341Z", "sources": [ { "generator": { @@ -15,796 +15,5 @@ "version": "2019.10.17" } } - ], - "newFiles": [ - { - "path": ".repo-metadata.json" - }, - { - "path": "renovate.json" - }, - { - "path": "license-checks.xml" - }, - { - "path": "synth.py" - }, - { - "path": "codecov.yaml" - }, - { - "path": "LICENSE" - }, - { - "path": ".gitignore" - }, - { - "path": "pom.xml" - }, - { - "path": "CODE_OF_CONDUCT.md" - }, - { - "path": "synth.metadata" - }, - { - "path": "README.md" - }, - { - "path": "versions.txt" - }, - { - "path": "CONTRIBUTING.md" - }, - { - "path": "java.header" - }, - { - "path": "samples/pom.xml" - }, - { - "path": "samples/README.md" - }, - { - "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/CreateDatasetIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/CreateTableIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/ListDatasetsIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/SimpleAppIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/ExtractTableToJson.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/SimpleApp.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/CreateTable.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/CreateDataset.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/QuickstartSample.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/AuthSnippets.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/ListDatasets.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/DeleteDataset.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/CopyMultipleTables.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java" - }, - { - "path": ".kokoro/build.bat" - }, - { - "path": ".kokoro/run_samples_tests.sh" - }, - { - "path": ".kokoro/build.sh" - }, - { - "path": ".kokoro/dependencies.sh" - }, - { - "path": ".kokoro/common.cfg" - }, - { - "path": ".kokoro/trampoline.sh" - }, - { - "path": ".kokoro/coerce_logs.sh" - }, - { - "path": ".kokoro/linkage-monitor.sh" - }, - { - "path": ".kokoro/continuous/dependencies.cfg" - }, - { - "path": ".kokoro/continuous/samples.cfg" - }, - { - "path": ".kokoro/continuous/java7.cfg" - }, - { - "path": ".kokoro/continuous/java8-osx.cfg" - }, - { - "path": ".kokoro/continuous/java11-samples.cfg" - }, - { - "path": ".kokoro/continuous/java8-win.cfg" - }, - { - "path": ".kokoro/continuous/propose_release.sh" - }, - { - "path": ".kokoro/continuous/lint.cfg" - }, - { - "path": ".kokoro/continuous/java8-samples.cfg" - }, - { - "path": ".kokoro/continuous/java11.cfg" - }, - { - "path": ".kokoro/continuous/common.cfg" - }, - { - "path": ".kokoro/continuous/propose_release.cfg" - }, - { - "path": ".kokoro/continuous/java8.cfg" - }, - { - "path": ".kokoro/continuous/integration.cfg" - }, - { - "path": ".kokoro/release/drop.sh" - }, - { - "path": ".kokoro/release/stage.cfg" - }, - { - "path": ".kokoro/release/promote.cfg" - }, - { - "path": ".kokoro/release/publish_javadoc.cfg" - }, - { - "path": ".kokoro/release/bump_snapshot.cfg" - }, - { - "path": ".kokoro/release/promote.sh" - }, - { - "path": ".kokoro/release/stage.sh" - }, - { - "path": ".kokoro/release/snapshot.sh" - }, - { - "path": ".kokoro/release/snapshot.cfg" - }, - { - "path": ".kokoro/release/common.cfg" - }, - { - "path": ".kokoro/release/bump_snapshot.sh" - }, - { - "path": ".kokoro/release/common.sh" - }, - { - "path": ".kokoro/release/drop.cfg" - }, - { - "path": ".kokoro/release/publish_javadoc.sh" - }, - { - "path": ".kokoro/presubmit/dependencies.cfg" - }, - { - "path": ".kokoro/presubmit/samples.cfg" - }, - { - "path": ".kokoro/presubmit/java7.cfg" - }, - { - "path": ".kokoro/presubmit/java8-osx.cfg" - }, - { - "path": ".kokoro/presubmit/linkage-monitor.cfg" - }, - { - "path": ".kokoro/presubmit/java11-samples.cfg" - }, - { - "path": ".kokoro/presubmit/java8-win.cfg" - }, - { - "path": ".kokoro/presubmit/lint.cfg" - }, - { - "path": ".kokoro/presubmit/java8-samples.cfg" - }, - { - "path": ".kokoro/presubmit/java11.cfg" - }, - { - "path": ".kokoro/presubmit/common.cfg" - }, - { - "path": ".kokoro/presubmit/clirr.cfg" - }, - { - "path": ".kokoro/presubmit/java8.cfg" - }, - { - "path": ".kokoro/presubmit/integration.cfg" - }, - { - "path": ".kokoro/nightly/dependencies.cfg" - }, - { - "path": ".kokoro/nightly/samples.cfg" - }, - { - "path": ".kokoro/nightly/java7.cfg" - }, - { - "path": ".kokoro/nightly/java8-osx.cfg" - }, - { - "path": ".kokoro/nightly/java11-samples.cfg" - }, - { - "path": ".kokoro/nightly/java8-win.cfg" - }, - { - "path": ".kokoro/nightly/lint.cfg" - }, - { - "path": ".kokoro/nightly/java8-samples.cfg" - }, - { - "path": ".kokoro/nightly/java11.cfg" - }, - { - "path": ".kokoro/nightly/common.cfg" - }, - { - "path": ".kokoro/nightly/java8.cfg" - }, - { - "path": ".kokoro/nightly/integration.cfg" - }, - { - "path": ".github/CODEOWNERS" - }, - { - "path": ".github/release-please.yml" - }, - { - "path": ".github/PULL_REQUEST_TEMPLATE.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/support_request.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" - }, - { - "path": "__pycache__/synth.cpython-36.pyc" - }, - { - "path": ".git/index" - }, - { - "path": ".git/packed-refs" - }, - { - "path": ".git/HEAD" - }, - { - "path": ".git/config" - }, - { - "path": ".git/shallow" - }, - { - "path": ".git/objects/pack/pack-dc31f243b5e78d241f297f1725dd67867939699a.pack" - }, - { - "path": ".git/objects/pack/pack-dc31f243b5e78d241f297f1725dd67867939699a.idx" - }, - { - "path": ".git/refs/remotes/origin/HEAD" - }, - { - "path": ".git/refs/heads/autosynth" - }, - { - "path": ".git/refs/heads/master" - }, - { - "path": ".git/logs/HEAD" - }, - { - "path": ".git/logs/refs/remotes/origin/HEAD" - }, - { - "path": ".git/logs/refs/heads/autosynth" - }, - { - "path": ".git/logs/refs/heads/master" - }, - { - "path": "google-cloud-bigquery/pom.xml" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java" - }, - { - "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java" - }, - { - "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/README.md" - }, - { - "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java" - } ] } \ No newline at end of file From b8e4c1845c43b96b40cbebb0016c987919f781fe Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 8 Jan 2020 11:28:12 -0500 Subject: [PATCH 0292/3441] feat: new sample - Tables: Add empty column (#85) * feat: new sample - Tables: Add empty column * format code * update base on comments * update base on comments --- .../com/example/bigquery/AddEmptyColumn.java | 71 +++++++++++++++++++ .../example/bigquery/AddEmptyColumnIT.java | 67 +++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/AddEmptyColumn.java create mode 100644 samples/src/test/java/com/example/bigquery/AddEmptyColumnIT.java diff --git a/samples/src/main/java/com/example/bigquery/AddEmptyColumn.java b/samples/src/main/java/com/example/bigquery/AddEmptyColumn.java new file mode 100644 index 000000000000..6e0372ec6af3 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/AddEmptyColumn.java @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_add_empty_column] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.Table; +import java.util.ArrayList; +import java.util.List; + +public class AddEmptyColumn { + + public static void runAddEmptyColumn() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableId = "MY_TABLE_NAME"; + String newColumnName = "NEW_COLUMN_NAME"; + addEmptyColumn(newColumnName, datasetName, tableId); + } + + public static void addEmptyColumn(String newColumnName, String datasetName, String tableId) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Table table = bigquery.getTable(datasetName, tableId); + Schema schema = table.getDefinition().getSchema(); + FieldList fields = schema.getFields(); + + // Create the new field/column + Field newField = Field.of(newColumnName, LegacySQLTypeName.STRING); + + // Create a new schema adding the current fields, plus the new one + List fieldList = new ArrayList(); + fields.forEach(fieldList::add); + fieldList.add(newField); + Schema newSchema = Schema.of(fieldList); + + // Update the table with the new schema + Table updatedTable = + table.toBuilder().setDefinition(StandardTableDefinition.of(newSchema)).build(); + updatedTable.update(); + System.out.println("Empty column successfully added to table"); + } catch (BigQueryException e) { + System.out.println("Empty column was not added. \n" + e.toString()); + } + } +} +// [END bigquery_add_empty_column] diff --git a/samples/src/test/java/com/example/bigquery/AddEmptyColumnIT.java b/samples/src/test/java/com/example/bigquery/AddEmptyColumnIT.java new file mode 100644 index 000000000000..da60b6581090 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/AddEmptyColumnIT.java @@ -0,0 +1,67 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class AddEmptyColumnIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + private static final String BIGQUERY_TEST_TABLE = System.getenv("BIGQUERY_TEST_TABLE"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + requireEnvVar("BIGQUERY_TEST_TABLE"); + } + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void addEmptyColumn() { + String randomColumnName = "new_" + UUID.randomUUID().toString().replace('-', '_'); + AddEmptyColumn.addEmptyColumn(randomColumnName, BIGQUERY_DATASET_NAME, BIGQUERY_TEST_TABLE); + assertThat(bout.toString()).contains("Empty column successfully added to table"); + } +} From 9495afcc2fff702a8b69c3750513906ccad2b483 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 8 Jan 2020 11:37:56 -0500 Subject: [PATCH 0293/3441] chore: release 1.103.0 (#60) * created CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated samples/pom.xml [ci skip] * updated pom.xml [ci skip] --- CHANGELOG.md | 40 +++++++++++++++++++++++++++++++++++ README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 5 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000000..b6d8cbba00ef --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,40 @@ +# Changelog + +## [1.103.0](https://www.github.com/googleapis/java-bigquery/compare/1.102.0...v1.103.0) (2020-01-08) + + +### Features + +* add kokoro jobs for samples module ([#61](https://www.github.com/googleapis/java-bigquery/issues/61)) ([f59dbf4](https://www.github.com/googleapis/java-bigquery/commit/f59dbf439788137ae4fe5215687c47b287b64ab9)) +* add samples ([#44](https://www.github.com/googleapis/java-bigquery/issues/44)) ([d3e5e12](https://www.github.com/googleapis/java-bigquery/commit/d3e5e12f2dfa6524ed2311df1449a5ea7a1fc2e1)) +* add StandardSQLTypeName factory methods to Field ([#43](https://www.github.com/googleapis/java-bigquery/issues/43)) ([9b37941](https://www.github.com/googleapis/java-bigquery/commit/9b379413e9e5850060d0fbd02ab9797c574f9a44)) +* migrate bigquery from google-cloud-java, add bom ([#3](https://www.github.com/googleapis/java-bigquery/issues/3)) ([91b79f6](https://www.github.com/googleapis/java-bigquery/commit/91b79f608ad4743f895c3f9324153cb70065a28c)) +* migrate BQ Java samples from java-docs-samples to client lib ([#22](https://www.github.com/googleapis/java-bigquery/issues/22)) ([f0bdc4d](https://www.github.com/googleapis/java-bigquery/commit/f0bdc4dda5d2078dbf2ef84d7f7bbe09561504a8)) +* new sample - Tables: Add empty column ([#85](https://www.github.com/googleapis/java-bigquery/issues/85)) ([b8e4c18](https://www.github.com/googleapis/java-bigquery/commit/b8e4c1845c43b96b40cbebb0016c987919f781fe)) +* new sample - Tables: Copy multiple tables ([#76](https://www.github.com/googleapis/java-bigquery/issues/76)) ([2476419](https://www.github.com/googleapis/java-bigquery/commit/2476419df9be7b2f52cdd098383c0622c669d046)) +* remove unused bom from project ([#37](https://www.github.com/googleapis/java-bigquery/issues/37)) ([c534e75](https://www.github.com/googleapis/java-bigquery/commit/c534e7588dcce120d413fce58794f8b31efce6ba)) +* update samples ([#52](https://www.github.com/googleapis/java-bigquery/issues/52)) ([ac9f589](https://www.github.com/googleapis/java-bigquery/commit/ac9f5899ae44e81887e8b4b0d3f6229e942f8d54)) +* use libraries-bom for samples ([#38](https://www.github.com/googleapis/java-bigquery/issues/38)) ([f519da2](https://www.github.com/googleapis/java-bigquery/commit/f519da2034586f28de87dbb01ee920d0eb737fa3)) + + +### Bug Fixes + +* parentjobid in listjobs ([#20](https://www.github.com/googleapis/java-bigquery/issues/20)) ([1b0b21b](https://www.github.com/googleapis/java-bigquery/commit/1b0b21b7dae97507bfcb449ed78fabff636747f5)) + + +### Dependencies + +* re-generated to pick up changes in the API or client library generator. ([#36](https://www.github.com/googleapis/java-bigquery/issues/36)) ([1712195](https://www.github.com/googleapis/java-bigquery/commit/1712195900c65be051a94e3ab143e4289a287f34)) +* update core dependencies to v1.92.1 ([#66](https://www.github.com/googleapis/java-bigquery/issues/66)) ([9c48bb6](https://www.github.com/googleapis/java-bigquery/commit/9c48bb6bc6ae78338e1b14e0508ab524c24978f3)) +* update dependencies ([#46](https://www.github.com/googleapis/java-bigquery/issues/46)) ([fd8ce1a](https://www.github.com/googleapis/java-bigquery/commit/fd8ce1ad6fc8e485b568d65ff6f2cd404a0aec91)), closes [#31](https://www.github.com/googleapis/java-bigquery/issues/31) [#35](https://www.github.com/googleapis/java-bigquery/issues/35) [#30](https://www.github.com/googleapis/java-bigquery/issues/30) +* update dependency com.google.cloud:google-cloud-storage to v1.103.0 ([#80](https://www.github.com/googleapis/java-bigquery/issues/80)) ([70c2bbb](https://www.github.com/googleapis/java-bigquery/commit/70c2bbb9eba99e60b958c231e36e09436f9ec624)) +* update dependency com.google.guava:guava-bom to v28.2-android ([866659a](https://www.github.com/googleapis/java-bigquery/commit/866659a6e6fd5ee87135552a5798b04b0ad4e87b)) +* update dependency com.google.http-client:google-http-client to v1.33.0 ([#8](https://www.github.com/googleapis/java-bigquery/issues/8)) ([d4e28cf](https://www.github.com/googleapis/java-bigquery/commit/d4e28cfcbf71e0ca6037e420b84f7b9dfdcf3be2)) +* update dependency com.google.http-client:google-http-client-jackson2 to v1.33.0 ([#9](https://www.github.com/googleapis/java-bigquery/issues/9)) ([ec4a6eb](https://www.github.com/googleapis/java-bigquery/commit/ec4a6ebbf03f1c6ac51027e63f0e198222a830b6)) +* update dependency io.grpc:grpc-bom to v1.26.0 ([#49](https://www.github.com/googleapis/java-bigquery/issues/49)) ([3f213c2](https://www.github.com/googleapis/java-bigquery/commit/3f213c29ebc437ec79c04553db8b2675efb3aa54)) +* update dependency junit:junit to v4.13 ([#63](https://www.github.com/googleapis/java-bigquery/issues/63)) ([f52e42e](https://www.github.com/googleapis/java-bigquery/commit/f52e42ec5cc55eaaa6b257fcea8eef99f15628cf)) + + +### Documentation + +* Update libraries-bom version ([#73](https://www.github.com/googleapis/java-bigquery/issues/73)) ([e967e10](https://www.github.com/googleapis/java-bigquery/commit/e967e10267514dfbac7013cac61f22b74d52b2b8)) diff --git a/README.md b/README.md index 0c7b457af221..5b33d1a05ac3 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.102.0 + 1.103.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.102.0' +compile 'com.google.cloud:google-cloud-bigquery:1.103.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.102.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.103.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3295dd506fd6..65831e30945f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.102.1-SNAPSHOT + 1.103.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.102.1-SNAPSHOT + 1.103.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e0fb5b94809e..b6d1004748f7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.102.1-SNAPSHOT + 1.103.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -113,7 +113,7 @@ com.google.cloud google-cloud-bigquery - 1.102.1-SNAPSHOT + 1.103.0 diff --git a/versions.txt b/versions.txt index 26e0c3658b03..236d1b133e2b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.102.1-SNAPSHOT:1.102.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.103.0:1.103.0 \ No newline at end of file From 699ab13e0ebb8327aa2375d5d7973415e8ae0c63 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 8 Jan 2020 12:17:22 -0500 Subject: [PATCH 0294/3441] chore: release 1.103.1-SNAPSHOT (#87) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 65831e30945f..967609d7d3ef 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.103.0 + 1.103.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.103.0 + 1.103.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b6d1004748f7..600f6ab47ad7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.103.0 + 1.103.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -113,7 +113,7 @@ com.google.cloud google-cloud-bigquery - 1.103.0 + 1.103.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 236d1b133e2b..406762231dd5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.103.0:1.103.0 \ No newline at end of file +google-cloud-bigquery:1.103.0:1.103.1-SNAPSHOT \ No newline at end of file From e0c923aa3ccb134ffea8b2fba8f9fde1cc89426f Mon Sep 17 00:00:00 2001 From: Renovate Bot Date: Wed, 8 Jan 2020 22:35:50 +0100 Subject: [PATCH 0295/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.4.0 (#88) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 600f6ab47ad7..a85490edcd21 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.3.1 + 0.4.0 From 8a1caa64d139c937e3e2d2dfc10a64e87c240ddc Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 9 Jan 2020 14:06:44 -0500 Subject: [PATCH 0296/3441] feat: new sample - Tables: Delete table (#90) --- .../com/example/bigquery/DeleteTable.java | 50 +++++++++++++ .../bigquery/CopyMultipleTablesIT.java | 3 + .../com/example/bigquery/DeleteTableIT.java | 71 +++++++++++++++++++ 3 files changed, 124 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/DeleteTable.java create mode 100644 samples/src/test/java/com/example/bigquery/DeleteTableIT.java diff --git a/samples/src/main/java/com/example/bigquery/DeleteTable.java b/samples/src/main/java/com/example/bigquery/DeleteTable.java new file mode 100644 index 000000000000..39bbd971095d --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/DeleteTable.java @@ -0,0 +1,50 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_delete_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.TableId; + +public class DeleteTable { + + public static void runDeleteTable() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + deleteTable(datasetName, tableName); + } + + public static void deleteTable(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + boolean success = bigquery.delete(TableId.of(datasetName, tableName)); + if (success) { + System.out.println("Table deleted successfully"); + } else { + System.out.println("Table was not found"); + } + } catch (BigQueryException e) { + System.out.println("Table was not deleted. \n" + e.toString()); + } + } +} +// [END bigquery_delete_table] diff --git a/samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java b/samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java index b4d6e4be1117..f78e3ff81045 100644 --- a/samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java +++ b/samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java @@ -69,5 +69,8 @@ public void testCopyMultipleTables() { CopyMultipleTables.copyMultipleTables(BIGQUERY_DATASET_NAME, generatedTableName); assertThat(bout.toString()).contains("Table copied successfully."); + + //Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, generatedTableName); } } diff --git a/samples/src/test/java/com/example/bigquery/DeleteTableIT.java b/samples/src/test/java/com/example/bigquery/DeleteTableIT.java new file mode 100644 index 000000000000..56bfd40123b3 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/DeleteTableIT.java @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class DeleteTableIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testDeleteTable() { + // Create a new table to be deleted + String generatedTableName = + "gcloud_test_table_temp_" + UUID.randomUUID().toString().replace('-', '_'); + CreateTable.createTable(BIGQUERY_DATASET_NAME, generatedTableName, null); + + // Delete the table that was just created + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, generatedTableName); + + assertThat(bout.toString()).contains("Table deleted successfully"); + } +} From f95b1798f6a09ff03b195ae7540f9395386c0ea5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 9 Jan 2020 23:00:43 +0100 Subject: [PATCH 0297/3441] deps: update core dependencies (#93) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a85490edcd21..b7cc233e0ac8 100644 --- a/pom.xml +++ b/pom.xml @@ -63,10 +63,10 @@ UTF-8 github google-cloud-bigquery-parent - 1.92.1 + 1.92.2 1.8.1 1.17.0 - 1.52.0 + 1.53.0 1.26.0 3.11.1 4.13 From 66b225a368f206796082c61f0b198e8956cf6112 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 9 Jan 2020 14:01:32 -0800 Subject: [PATCH 0298/3441] chore: re-generated to pick up changes in the API or client library generator. (#91) --- renovate.json | 6 ++++++ synth.metadata | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index d014232c57bf..f3a70c9703f1 100644 --- a/renovate.json +++ b/renovate.json @@ -52,6 +52,12 @@ ], "semanticCommitType": "build", "semanticCommitScope": "deps" + }, + { + "packagePatterns": [ + "^com.google.cloud:google-cloud-" + ], + "ignoreUnstable": false } ], "semanticCommits": true diff --git a/synth.metadata b/synth.metadata index 92e0eef5329a..08697c528e5d 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2020-01-08T08:37:58.295341Z", + "updateTime": "2020-01-09T08:35:44.862557Z", "sources": [ { "generator": { From 6f9563160670a7cd2a75afe9774e91180c867206 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 9 Jan 2020 17:04:07 -0500 Subject: [PATCH 0299/3441] feat: new sample - Tables: Relax column (#89) --- samples/pom.xml | 1 - .../com/example/bigquery/RelaxColumnMode.java | 76 ++++++++++++++++ .../example/bigquery/RelaxColumnModeIT.java | 91 +++++++++++++++++++ 3 files changed, 167 insertions(+), 1 deletion(-) create mode 100644 samples/src/main/java/com/example/bigquery/RelaxColumnMode.java create mode 100644 samples/src/test/java/com/example/bigquery/RelaxColumnModeIT.java diff --git a/samples/pom.xml b/samples/pom.xml index f5b000e9fd27..3a74ebd8a33b 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -27,7 +27,6 @@ com.google.cloud.samples shared-configuration 1.0.11 - diff --git a/samples/src/main/java/com/example/bigquery/RelaxColumnMode.java b/samples/src/main/java/com/example/bigquery/RelaxColumnMode.java new file mode 100644 index 000000000000..02a263127496 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/RelaxColumnMode.java @@ -0,0 +1,76 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.Table; + +// [START bigquery_relax_column] +public class RelaxColumnMode { + + public static void runRelaxColumnMode() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableId = "MY_TABLE_NAME"; + relaxColumnMode(datasetName, tableId); + } + + public static void relaxColumnMode(String datasetName, String tableId) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Table table = bigquery.getTable(datasetName, tableId); + + // Create new relaxed schema based on the existing table schema + Schema relaxedSchema = + Schema.of( + // The only supported modification you can make to a column's mode is changing it from + // REQUIRED to NULLABLE + // Changing a column's mode from REQUIRED to NULLABLE is also called column relaxation + // INFO: LegacySQLTypeName will be updated to StandardSQLTypeName in release 1.103.0 + Field.newBuilder("word", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("word_count", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("corpus", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("corpus_date", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + + // Update the table with the new schema + Table updatedTable = + table.toBuilder().setDefinition(StandardTableDefinition.of(relaxedSchema)).build(); + updatedTable.update(); + System.out.println("Table schema successfully relaxed."); + } catch (BigQueryException e) { + System.out.println("Table schema not relaxed \n" + e.toString()); + } + } +} +// [END bigquery_relax_column] diff --git a/samples/src/test/java/com/example/bigquery/RelaxColumnModeIT.java b/samples/src/test/java/com/example/bigquery/RelaxColumnModeIT.java new file mode 100644 index 000000000000..1569e7b2312f --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/RelaxColumnModeIT.java @@ -0,0 +1,91 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Field.Mode; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class RelaxColumnModeIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testRelaxColumnMode() { + // Create a new table with REQUIRED columns for each test to relax its column mode since this is + // a one-way operation + String generatedTableName = + "gcloud_test_table_temp_" + UUID.randomUUID().toString().replace('-', '_'); + Schema originalSchema = + Schema.of( + // The only supported modification you can make to a column's mode is changing it from + // REQUIRED to NULLABLE + // Changing a column's mode from REQUIRED to NULLABLE is also called column relaxation + // INFO: LegacySQLTypeName will be updated to StandardSQLTypeName in release 1.103.0 + Field.newBuilder("word", LegacySQLTypeName.STRING).setMode(Mode.REQUIRED).build(), + Field.newBuilder("word_count", LegacySQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build(), + Field.newBuilder("corpus", LegacySQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build(), + Field.newBuilder("corpus_date", LegacySQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + CreateTable.createTable(BIGQUERY_DATASET_NAME, generatedTableName, originalSchema); + + // Relax table column mode + RelaxColumnMode.relaxColumnMode(BIGQUERY_DATASET_NAME, generatedTableName); + assertThat(bout.toString()).contains("Table schema successfully relaxed."); + } +} From dee4d1ede9dcbdf25e7d9ed4f5f8a5b68530bccb Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 9 Jan 2020 21:46:00 -0500 Subject: [PATCH 0300/3441] chore: clean up IT (#94) --- .../test/java/com/example/bigquery/RelaxColumnModeIT.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/samples/src/test/java/com/example/bigquery/RelaxColumnModeIT.java b/samples/src/test/java/com/example/bigquery/RelaxColumnModeIT.java index 1569e7b2312f..cbeb443f5361 100644 --- a/samples/src/test/java/com/example/bigquery/RelaxColumnModeIT.java +++ b/samples/src/test/java/com/example/bigquery/RelaxColumnModeIT.java @@ -68,10 +68,6 @@ public void testRelaxColumnMode() { "gcloud_test_table_temp_" + UUID.randomUUID().toString().replace('-', '_'); Schema originalSchema = Schema.of( - // The only supported modification you can make to a column's mode is changing it from - // REQUIRED to NULLABLE - // Changing a column's mode from REQUIRED to NULLABLE is also called column relaxation - // INFO: LegacySQLTypeName will be updated to StandardSQLTypeName in release 1.103.0 Field.newBuilder("word", LegacySQLTypeName.STRING).setMode(Mode.REQUIRED).build(), Field.newBuilder("word_count", LegacySQLTypeName.STRING) .setMode(Field.Mode.REQUIRED) @@ -87,5 +83,8 @@ public void testRelaxColumnMode() { // Relax table column mode RelaxColumnMode.relaxColumnMode(BIGQUERY_DATASET_NAME, generatedTableName); assertThat(bout.toString()).contains("Table schema successfully relaxed."); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, generatedTableName); } } From 88b420ea817807bdbe25f803f98352fa5a7d6ba4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 13 Jan 2020 23:32:34 +0100 Subject: [PATCH 0301/3441] deps: update dependency org.threeten:threetenbp to v1.4.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b7cc233e0ac8..c2396b8d7ca4 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ 3.11.1 4.13 28.2-android - 1.4.0 + 1.4.1 1.3.2 1.18 v2-rev20190917-1.30.3 From f41a53c33942cba59242f515906ec57503549122 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 14 Jan 2020 16:55:24 +0100 Subject: [PATCH 0302/3441] deps: update dependency com.google.truth:truth to v1.0.1 (#103) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c2396b8d7ca4..2d9c3f71414b 100644 --- a/pom.xml +++ b/pom.xml @@ -178,7 +178,7 @@ com.google.truth truth - 1.0 + 1.0.1 test From 743bc0a552875b773becbd517a063e29193a6b49 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 14 Jan 2020 10:56:46 -0500 Subject: [PATCH 0303/3441] feat: sample - Get dataset properties (#98) * feat: sample - Get dataset properties * nit: update * update base on comments --- .../com/example/bigquery/GetDatasetInfo.java | 63 ++++++++++++++++++ .../example/bigquery/GetDatasetInfoIT.java | 65 +++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/GetDatasetInfo.java create mode 100644 samples/src/test/java/com/example/bigquery/GetDatasetInfoIT.java diff --git a/samples/src/main/java/com/example/bigquery/GetDatasetInfo.java b/samples/src/main/java/com/example/bigquery/GetDatasetInfo.java new file mode 100644 index 000000000000..52f4d54d0e44 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/GetDatasetInfo.java @@ -0,0 +1,63 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import com.google.api.gax.paging.Page; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.TableListOption; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.Table; + +// [START bigquery_get_dataset] +public class GetDatasetInfo { + + public static void runGetDatasetInfo() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String datasetName = "MY_DATASET_NAME"; + getDatasetInfo(projectId, datasetName); + } + + public static void getDatasetInfo(String projectId, String datasetName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + DatasetId datasetId = DatasetId.of(projectId, datasetName); + Dataset dataset = bigquery.getDataset(datasetId); + + // View dataset properties + String description = dataset.getDescription(); + System.out.println(description); + + // View tables in the dataset + // For more information on listing tables see: + // https://javadoc.io/static/com.google.cloud/google-cloud-bigquery/0.22.0-beta/com/google/cloud/bigquery/BigQuery.html + Page

    tables = bigquery.listTables(datasetName, TableListOption.pageSize(100)); + + tables.iterateAll().forEach(table -> System.out.print(table.getTableId().getTable() + "\n")); + + System.out.println("Dataset info retrieved successfully."); + } catch (BigQueryException e) { + System.out.println("Dataset info not retrieved. \n" + e.toString()); + } + } +} +// [END bigquery_get_dataset] diff --git a/samples/src/test/java/com/example/bigquery/GetDatasetInfoIT.java b/samples/src/test/java/com/example/bigquery/GetDatasetInfoIT.java new file mode 100644 index 000000000000..ff92737a5090 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/GetDatasetInfoIT.java @@ -0,0 +1,65 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class GetDatasetInfoIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String GOOGLE_CLOUD_PROJECT = System.getenv("BIGQUERY_PROJECT_ID"); + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void getDatasetInfo() { + GetDatasetInfo.getDatasetInfo(GOOGLE_CLOUD_PROJECT, BIGQUERY_DATASET_NAME); + assertThat(bout.toString()).contains("Dataset info retrieved successfully."); + } +} From 7fedacdc5c924de8b25aac59d00018704e0d5af8 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 14 Jan 2020 11:53:20 -0500 Subject: [PATCH 0304/3441] feat: sample - run a legacy SQL query (#97) * feat: sample - run a legacy SQL query * nit: update * nit: update * update base on comments * update base on comments --- .../com/example/bigquery/RunLegacyQuery.java | 52 +++++++++++++++++++ .../bigquery/CopyMultipleTablesIT.java | 2 +- .../example/bigquery/RunLegacyQueryIT.java | 48 +++++++++++++++++ 3 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 samples/src/main/java/com/example/bigquery/RunLegacyQuery.java create mode 100644 samples/src/test/java/com/example/bigquery/RunLegacyQueryIT.java diff --git a/samples/src/main/java/com/example/bigquery/RunLegacyQuery.java b/samples/src/main/java/com/example/bigquery/RunLegacyQuery.java new file mode 100644 index 000000000000..747772220497 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/RunLegacyQuery.java @@ -0,0 +1,52 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_legacy] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; + +public class RunLegacyQuery { + + public static void runLegacyQuery() { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // To use legacy SQL syntax, set useLegacySql to true. + String query = + "SELECT corpus FROM [bigquery-public-data:samples.shakespeare] GROUP BY corpus;"; + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query).setUseLegacySql(true).build(); + + // Execute the query. + TableResult result = bigquery.query(queryConfig); + + // Print the results. + result.iterateAll().forEach(rows -> rows.forEach(row -> System.out.println(row.getValue()))); + + System.out.println("Legacy query ran successfully"); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Legacy query did not run \n" + e.toString()); + } + } +} +// [END bigquery_query_legacy] diff --git a/samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java b/samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java index f78e3ff81045..bcf7475c74bf 100644 --- a/samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java +++ b/samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java @@ -70,7 +70,7 @@ public void testCopyMultipleTables() { CopyMultipleTables.copyMultipleTables(BIGQUERY_DATASET_NAME, generatedTableName); assertThat(bout.toString()).contains("Table copied successfully."); - //Clean up + // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, generatedTableName); } } diff --git a/samples/src/test/java/com/example/bigquery/RunLegacyQueryIT.java b/samples/src/test/java/com/example/bigquery/RunLegacyQueryIT.java new file mode 100644 index 000000000000..e8a7d16eb4f0 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/RunLegacyQueryIT.java @@ -0,0 +1,48 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class RunLegacyQueryIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testRunLegacyQuery() { + RunLegacyQuery.runLegacyQuery(); + assertThat(bout.toString()).contains("Legacy query ran successfully"); + } +} From c423c91f7689bfc29a94b452842077e2622c621a Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 14 Jan 2020 13:08:14 -0500 Subject: [PATCH 0305/3441] feat: new sample - load: GCS parquet replace existing table (#101) --- .../bigquery/LoadParquetReplaceTable.java | 89 +++++++++++++++++++ .../bigquery/LoadParquetReplaceTableIT.java | 63 +++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java create mode 100644 samples/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java diff --git a/samples/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java b/samples/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java new file mode 100644 index 000000000000..80f815046175 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java @@ -0,0 +1,89 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_parquet_truncate] + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.TableId; +import java.math.BigInteger; + +public class LoadParquetReplaceTable { + + public static void runLoadParquetReplaceTable() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + loadParquetReplaceTable(datasetName); + } + + public static void loadParquetReplaceTable(String datasetName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Imports a GCS file into a table and overwrites table data if table already exists. + // This sample loads CSV file at: + // https://storage.googleapis.com/cloud-samples-data/bigquery/us-states/us-states.csv + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.parquet"; + TableId tableId = TableId.of(datasetName, "us_states"); + + // For more information on LoadJobConfiguration see: + // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigquery/LoadJobConfiguration.Builder.html + LoadJobConfiguration configuration = + LoadJobConfiguration.builder(tableId, sourceUri) + .setFormatOptions(FormatOptions.parquet()) + // Set the write disposition to overwrite existing table data. + .setWriteDisposition(WriteDisposition.WRITE_TRUNCATE) + .build(); + + // For more information on Job see: + // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html + // Load the table + Job job = bigquery.create(JobInfo.of(configuration)); + + // Load data from a GCS parquet file into the table + // Blocks until this load table job completes its execution, either failing or succeeding. + Job completedJob = job.waitFor(); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to load into the table due to an error: \n" + + job.getStatus().getError()); + return; + } + + // Check number of rows loaded into the table + BigInteger numRows = bigquery.getTable(tableId).getNumRows(); + System.out.printf("Loaded %d rows. \n", numRows); + + System.out.println("GCS parquet overwrote existing table successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Table extraction job was interrupted. \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_parquet_truncate] diff --git a/samples/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java b/samples/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java new file mode 100644 index 000000000000..1d2bd0550e1e --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java @@ -0,0 +1,63 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadParquetReplaceTableIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testLoadParquetReplaceTable() { + LoadParquetReplaceTable.loadParquetReplaceTable(BIGQUERY_DATASET_NAME); + assertThat(bout.toString()).contains("GCS parquet overwrote existing table successfully."); + } +} From 8eedb5490f78333c9af97279a68120850c057f2a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 14 Jan 2020 23:59:08 +0100 Subject: [PATCH 0306/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20191211-1.30.3 (#105) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2d9c3f71414b..e5bf58305922 100644 --- a/pom.xml +++ b/pom.xml @@ -74,7 +74,7 @@ 1.4.1 1.3.2 1.18 - v2-rev20190917-1.30.3 + v2-rev20191211-1.30.3 From 6a16955a688eda281f54feeb916a92d2cb037e1d Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 15 Jan 2020 12:41:23 -0500 Subject: [PATCH 0307/3441] update base on comments (#100) --- .../com/example/bigquery/LoadParquet.java | 79 +++++++++++++++++++ .../com/example/bigquery/LoadParquetIT.java | 63 +++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/LoadParquet.java create mode 100644 samples/src/test/java/com/example/bigquery/LoadParquetIT.java diff --git a/samples/src/main/java/com/example/bigquery/LoadParquet.java b/samples/src/main/java/com/example/bigquery/LoadParquet.java new file mode 100644 index 000000000000..ed04ba4dda13 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/LoadParquet.java @@ -0,0 +1,79 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_parquet] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.TableId; +import java.math.BigInteger; + +public class LoadParquet { + + public static void runLoadParquet() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + loadParquet(datasetName); + } + + public static void loadParquet(String datasetName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.parquet"; + TableId tableId = TableId.of(datasetName, "us_states"); + + LoadJobConfiguration configuration = + LoadJobConfiguration.builder(tableId, sourceUri) + .setFormatOptions(FormatOptions.parquet()) + .build(); + + // For more information on Job see: + // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html + // Load the table + Job job = bigquery.create(JobInfo.of(configuration)); + + // Blocks until this load table job completes its execution, either failing or succeeding. + Job completedJob = job.waitFor(); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to load the table due to an error: \n" + + job.getStatus().getError()); + return; + } + + // Check number of rows loaded into the table + BigInteger numRows = bigquery.getTable(tableId).getNumRows(); + System.out.printf("Loaded %d rows. \n", numRows); + + System.out.println("GCS parquet loaded successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("GCS Parquet was not loaded. \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_parquet] diff --git a/samples/src/test/java/com/example/bigquery/LoadParquetIT.java b/samples/src/test/java/com/example/bigquery/LoadParquetIT.java new file mode 100644 index 000000000000..a60fbea3b76f --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/LoadParquetIT.java @@ -0,0 +1,63 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadParquetIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void loadParquet() { + LoadParquet.loadParquet(BIGQUERY_DATASET_NAME); + assertThat(bout.toString()).contains("GCS parquet loaded successfully."); + } +} From bd3a862c37b6d8d899ba3443e90a6eed53a70dd4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 15 Jan 2020 22:24:43 +0100 Subject: [PATCH 0308/3441] deps: update core dependencies (#107) --- samples/pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/pom.xml b/samples/pom.xml index 3a74ebd8a33b..ab9dfdf84401 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -59,17 +59,17 @@ com.google.api gax - 1.51.0 + 1.53.0 com.google.cloud google-cloud-core - 1.91.3 + 1.92.2 com.google.auth google-auth-library-oauth2-http - 0.18.0 + 0.19.0 From c36a547bd2c75da48571fd3f6f91d33a590f9744 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 15 Jan 2020 22:25:04 +0100 Subject: [PATCH 0309/3441] deps: update dependency junit:junit to v4.13 (#109) --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index ab9dfdf84401..1cfbf7bb0847 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -76,7 +76,7 @@ junit junit - 4.12 + 4.13 test From bea1d480cb90e2229024dec08ba1ec93ac8f05aa Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 16 Jan 2020 07:53:55 -0800 Subject: [PATCH 0310/3441] chore: re-generated to pick up changes in the API or client library generator. (#111) --- renovate.json | 6 + synth.metadata | 797 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 800 insertions(+), 3 deletions(-) diff --git a/renovate.json b/renovate.json index f3a70c9703f1..a5cdff45c319 100644 --- a/renovate.json +++ b/renovate.json @@ -58,6 +58,12 @@ "^com.google.cloud:google-cloud-" ], "ignoreUnstable": false + }, + { + "packagePatterns": [ + "^com.fasterxml.jackson.core" + ], + "groupName": "jackson dependencies" } ], "semanticCommits": true diff --git a/synth.metadata b/synth.metadata index 08697c528e5d..aec8612a8187 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2020-01-09T08:35:44.862557Z", + "updateTime": "2020-01-16T08:36:12.782452Z", "sources": [ { "generator": { "name": "artman", - "version": "0.43.0", - "dockerImage": "googleapis/artman@sha256:264654a37596a44b0668b8ce6ac41082d713f6ee150b3fc6425fa78cc64e4f20" + "version": "0.44.0", + "dockerImage": "googleapis/artman@sha256:10a6d0342b8d62544810ac5ad86c3b21049ec0696608ac60175da8e513234344" } }, { @@ -15,5 +15,796 @@ "version": "2019.10.17" } } + ], + "newFiles": [ + { + "path": "pom.xml" + }, + { + "path": ".repo-metadata.json" + }, + { + "path": "java.header" + }, + { + "path": "CONTRIBUTING.md" + }, + { + "path": "synth.metadata" + }, + { + "path": "renovate.json" + }, + { + "path": "versions.txt" + }, + { + "path": "synth.py" + }, + { + "path": "license-checks.xml" + }, + { + "path": "CHANGELOG.md" + }, + { + "path": "CODE_OF_CONDUCT.md" + }, + { + "path": "LICENSE" + }, + { + "path": "codecov.yaml" + }, + { + "path": ".gitignore" + }, + { + "path": "README.md" + }, + { + "path": "google-cloud-bigquery/pom.xml" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java" + }, + { + "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java" + }, + { + "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java" + }, + { + "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json" + }, + { + "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/README.md" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java" + }, + { + "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java" + }, + { + "path": "samples/pom.xml" + }, + { + "path": "samples/README.md" + }, + { + "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/RunLegacyQueryIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/DeleteTableIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/AddEmptyColumnIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/SimpleAppIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/ListDatasetsIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/CreateDatasetIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/RelaxColumnModeIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/CreateTableIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/LoadParquetIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java" + }, + { + "path": "samples/src/test/java/com/example/bigquery/GetDatasetInfoIT.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/RunLegacyQuery.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/ListDatasets.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/DeleteTable.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/CreateTable.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/RelaxColumnMode.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/AuthSnippets.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/DeleteDataset.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/SimpleApp.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/LoadParquet.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/ExtractTableToJson.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/GetDatasetInfo.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/AddEmptyColumn.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/CreateDataset.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/CopyMultipleTables.java" + }, + { + "path": "samples/src/main/java/com/example/bigquery/QuickstartSample.java" + }, + { + "path": ".github/release-please.yml" + }, + { + "path": ".github/PULL_REQUEST_TEMPLATE.md" + }, + { + "path": ".github/CODEOWNERS" + }, + { + "path": ".github/ISSUE_TEMPLATE/feature_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/support_request.md" + }, + { + "path": ".github/ISSUE_TEMPLATE/bug_report.md" + }, + { + "path": ".kokoro/build.sh" + }, + { + "path": ".kokoro/common.cfg" + }, + { + "path": ".kokoro/build.bat" + }, + { + "path": ".kokoro/linkage-monitor.sh" + }, + { + "path": ".kokoro/coerce_logs.sh" + }, + { + "path": ".kokoro/dependencies.sh" + }, + { + "path": ".kokoro/trampoline.sh" + }, + { + "path": ".kokoro/run_samples_tests.sh" + }, + { + "path": ".kokoro/continuous/samples.cfg" + }, + { + "path": ".kokoro/continuous/java8.cfg" + }, + { + "path": ".kokoro/continuous/integration.cfg" + }, + { + "path": ".kokoro/continuous/java11.cfg" + }, + { + "path": ".kokoro/continuous/propose_release.cfg" + }, + { + "path": ".kokoro/continuous/common.cfg" + }, + { + "path": ".kokoro/continuous/java11-samples.cfg" + }, + { + "path": ".kokoro/continuous/propose_release.sh" + }, + { + "path": ".kokoro/continuous/java7.cfg" + }, + { + "path": ".kokoro/continuous/lint.cfg" + }, + { + "path": ".kokoro/continuous/java8-osx.cfg" + }, + { + "path": ".kokoro/continuous/dependencies.cfg" + }, + { + "path": ".kokoro/continuous/java8-win.cfg" + }, + { + "path": ".kokoro/continuous/java8-samples.cfg" + }, + { + "path": ".kokoro/nightly/samples.cfg" + }, + { + "path": ".kokoro/nightly/java8.cfg" + }, + { + "path": ".kokoro/nightly/integration.cfg" + }, + { + "path": ".kokoro/nightly/java11.cfg" + }, + { + "path": ".kokoro/nightly/common.cfg" + }, + { + "path": ".kokoro/nightly/java11-samples.cfg" + }, + { + "path": ".kokoro/nightly/java7.cfg" + }, + { + "path": ".kokoro/nightly/lint.cfg" + }, + { + "path": ".kokoro/nightly/java8-osx.cfg" + }, + { + "path": ".kokoro/nightly/dependencies.cfg" + }, + { + "path": ".kokoro/nightly/java8-win.cfg" + }, + { + "path": ".kokoro/nightly/java8-samples.cfg" + }, + { + "path": ".kokoro/release/publish_javadoc.cfg" + }, + { + "path": ".kokoro/release/common.sh" + }, + { + "path": ".kokoro/release/promote.sh" + }, + { + "path": ".kokoro/release/common.cfg" + }, + { + "path": ".kokoro/release/publish_javadoc.sh" + }, + { + "path": ".kokoro/release/drop.sh" + }, + { + "path": ".kokoro/release/stage.sh" + }, + { + "path": ".kokoro/release/promote.cfg" + }, + { + "path": ".kokoro/release/snapshot.cfg" + }, + { + "path": ".kokoro/release/bump_snapshot.cfg" + }, + { + "path": ".kokoro/release/drop.cfg" + }, + { + "path": ".kokoro/release/bump_snapshot.sh" + }, + { + "path": ".kokoro/release/stage.cfg" + }, + { + "path": ".kokoro/release/snapshot.sh" + }, + { + "path": ".kokoro/presubmit/samples.cfg" + }, + { + "path": ".kokoro/presubmit/java8.cfg" + }, + { + "path": ".kokoro/presubmit/integration.cfg" + }, + { + "path": ".kokoro/presubmit/java11.cfg" + }, + { + "path": ".kokoro/presubmit/linkage-monitor.cfg" + }, + { + "path": ".kokoro/presubmit/common.cfg" + }, + { + "path": ".kokoro/presubmit/java11-samples.cfg" + }, + { + "path": ".kokoro/presubmit/java7.cfg" + }, + { + "path": ".kokoro/presubmit/lint.cfg" + }, + { + "path": ".kokoro/presubmit/java8-osx.cfg" + }, + { + "path": ".kokoro/presubmit/dependencies.cfg" + }, + { + "path": ".kokoro/presubmit/clirr.cfg" + }, + { + "path": ".kokoro/presubmit/java8-win.cfg" + }, + { + "path": ".kokoro/presubmit/java8-samples.cfg" + } ] } \ No newline at end of file From c15afb9459896790d11d4f3c7e5473104eb6bea8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 16 Jan 2020 16:58:28 +0100 Subject: [PATCH 0311/3441] deps: update dependency com.google.cloud:libraries-bom to v3.3.0 (#108) --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index 1cfbf7bb0847..a37a0d2be885 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -43,7 +43,7 @@ com.google.cloud libraries-bom - 3.0.0 + 3.3.0 pom import From 772516ae174e75c93894a1283e446095bc1e398b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 16 Jan 2020 23:26:06 +0100 Subject: [PATCH 0312/3441] deps: update dependency com.google.cloud:libraries-bom to v3.4.0 (#113) --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index a37a0d2be885..33c2e783e2e8 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -43,7 +43,7 @@ com.google.cloud libraries-bom - 3.3.0 + 3.4.0 pom import From 069240fc4ebfc54d39d84fc3a9cc31d093cfa70a Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 17 Jan 2020 22:20:38 +0530 Subject: [PATCH 0313/3441] feat: add range partitioning field to tableslist (#114) --- .../bigquery/spi/v2/HttpBigQueryRpc.java | 3 +- .../cloud/bigquery/BigQueryImplTest.java | 27 +++++++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 30 +++++++++++++++++++ 3 files changed, 59 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index efebd53a4659..391209fcb80e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -299,7 +299,8 @@ public Table apply(TableList.Tables tablePb) { .setTableReference(tablePb.getTableReference()) .setType(tablePb.getType()) .setCreationTime(tablePb.getCreationTime()) - .setTimePartitioning(tablePb.getTimePartitioning()); + .setTimePartitioning(tablePb.getTimePartitioning()) + .setRangePartitioning(tablePb.getRangePartitioning()); } })); } catch (IOException ex) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index b1e1a5d368bb..7ab3e8ef284e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -121,6 +121,17 @@ public class BigQueryImplTest { .setSchema(TABLE_SCHEMA) .setTimePartitioning(TIME_PARTITIONING) .build(); + private static final RangePartitioning.Range RANGE = + RangePartitioning.Range.newBuilder().setStart(1L).setInterval(2L).setEnd(10L).build(); + private static final RangePartitioning RANGE_PARTITIONING = + RangePartitioning.newBuilder().setField("IntegerField").setRange(RANGE).build(); + private static final StandardTableDefinition TABLE_DEFINITION_WITH_RANGE_PARTITIONING = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setRangePartitioning(RANGE_PARTITIONING) + .build(); + private static final TableInfo TABLE_INFO_RANGE_PARTITIONING = + TableInfo.of(TABLE_ID, TABLE_DEFINITION_WITH_RANGE_PARTITIONING); private static final TableInfo TABLE_INFO = TableInfo.of(TABLE_ID, TABLE_DEFINITION); private static final TableInfo OTHER_TABLE_INFO = TableInfo.of(OTHER_TABLE_ID, TABLE_DEFINITION); private static final TableInfo TABLE_INFO_WITH_PROJECT = @@ -901,6 +912,22 @@ public void testListTablesReturnedParameters() { assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); } + @Test + public void testListTablesWithRangePartitioning() { + bigquery = options.getService(); + ImmutableList
    tableList = + ImmutableList.of( + new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_RANGE_PARTITIONING))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); + EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)) + .andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page
    page = bigquery.listTables(DATASET, TABLE_LIST_PAGE_SIZE, TABLE_LIST_PAGE_TOKEN); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + } + @Test public void testListTablesFromDatasetId() { bigquery = options.getService(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index ade2e65cf261..547c0892e47e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -712,6 +712,36 @@ public void testListTablesWithPartitioning() { } } + @Test + public void testListTablesWithRangePartitioning() { + String tableName = "test_list_tables_range_partitioning"; + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setRangePartitioning(RANGE_PARTITIONING) + .build(); + TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); + Table createdRangePartitioningTable = bigquery.create(tableInfo); + assertNotNull(createdRangePartitioningTable); + try { + Page
    tables = bigquery.listTables(DATASET); + boolean found = false; + Iterator
    tableIterator = tables.getValues().iterator(); + while (tableIterator.hasNext() && !found) { + StandardTableDefinition standardTableDefinition = tableIterator.next().getDefinition(); + if (standardTableDefinition.getRangePartitioning() != null) { + assertEquals(RANGE_PARTITIONING, standardTableDefinition.getRangePartitioning()); + assertEquals(RANGE, standardTableDefinition.getRangePartitioning().getRange()); + assertEquals("IntegerField", standardTableDefinition.getRangePartitioning().getField()); + found = true; + } + } + assertTrue(found); + } finally { + createdRangePartitioningTable.delete(); + } + } + @Test public void testListPartitions() throws InterruptedException { String tableName = "test_table_partitions"; From ecec2f73fb43311538e92944341fed51c199cde0 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 17 Jan 2020 20:41:09 -0500 Subject: [PATCH 0314/3441] feat: sample - query with named params (#116) --- .../com/example/bigquery/LoadParquet.java | 2 +- .../bigquery/QueryWithNamedParameters.java | 63 +++++++++++++++++++ .../bigquery/QueryWithNamedParametersIT.java | 48 ++++++++++++++ 3 files changed, 112 insertions(+), 1 deletion(-) create mode 100644 samples/src/main/java/com/example/bigquery/QueryWithNamedParameters.java create mode 100644 samples/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java diff --git a/samples/src/main/java/com/example/bigquery/LoadParquet.java b/samples/src/main/java/com/example/bigquery/LoadParquet.java index ed04ba4dda13..580b6183fe20 100644 --- a/samples/src/main/java/com/example/bigquery/LoadParquet.java +++ b/samples/src/main/java/com/example/bigquery/LoadParquet.java @@ -43,7 +43,7 @@ public static void loadParquet(String datasetName) { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.parquet"; TableId tableId = TableId.of(datasetName, "us_states"); - + LoadJobConfiguration configuration = LoadJobConfiguration.builder(tableId, sourceUri) .setFormatOptions(FormatOptions.parquet()) diff --git a/samples/src/main/java/com/example/bigquery/QueryWithNamedParameters.java b/samples/src/main/java/com/example/bigquery/QueryWithNamedParameters.java new file mode 100644 index 000000000000..4f99241bbc16 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/QueryWithNamedParameters.java @@ -0,0 +1,63 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_params_named] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.TableResult; + +public class QueryWithNamedParameters { + + public static void queryWithNamedParameters() { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + String corpus = "romeoandjuliet"; + long minWordCount = 250; + String query = + "SELECT word, word_count\n" + + "FROM `bigquery-public-data.samples.shakespeare`\n" + + "WHERE corpus = @corpus\n" + + "AND word_count >= @min_word_count\n" + + "ORDER BY word_count DESC"; + + // Note: Standard SQL is required to use query parameters. + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .addNamedParameter("corpus", QueryParameterValue.string(corpus)) + .addNamedParameter("min_word_count", QueryParameterValue.int64(minWordCount)) + .build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query with named parameters performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_params_named] diff --git a/samples/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java b/samples/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java new file mode 100644 index 000000000000..c461f6a696ce --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java @@ -0,0 +1,48 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryWithNamedParametersIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryWithNamedParameters() { + QueryWithNamedParameters.queryWithNamedParameters(); + assertThat(bout.toString()).contains("Query with named parameters performed successfully."); + } +} From a5df219186d80e86d61c13aef6b052fe726a5df6 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 17 Jan 2020 20:41:25 -0500 Subject: [PATCH 0315/3441] feat: sample - query with positional params (#117) --- .../QueryWithPositionalParameters.java | 62 +++++++++++++++++++ .../QueryWithPositionalParametersIT.java | 49 +++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java create mode 100644 samples/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java diff --git a/samples/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java b/samples/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java new file mode 100644 index 000000000000..d3e490341bcc --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java @@ -0,0 +1,62 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_params_positional] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.TableResult; + +public class QueryWithPositionalParameters { + public static void queryWithPositionalParameters() { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + String corpus = "romeoandjuliet"; + long minWordCount = 250; + String query = + "SELECT word, word_count\n" + + "FROM `bigquery-public-data.samples.shakespeare`\n" + + "WHERE corpus = ?\n" + + "AND word_count >= ?\n" + + "ORDER BY word_count DESC"; + + // Note: Standard SQL is required to use query parameters. + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .addPositionalParameter(QueryParameterValue.string(corpus)) + .addPositionalParameter(QueryParameterValue.int64(minWordCount)) + .build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query with positional parameters performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_params_positional] diff --git a/samples/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java b/samples/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java new file mode 100644 index 000000000000..7465d840ee4e --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java @@ -0,0 +1,49 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryWithPositionalParametersIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryWithPositionalParameters() { + QueryWithPositionalParameters.queryWithPositionalParameters(); + assertThat(bout.toString()) + .contains("Query with positional parameters performed successfully."); + } +} From eab8f27e23beb7f813bfcc464344c00072a4fd0d Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Sat, 18 Jan 2020 10:26:40 +0530 Subject: [PATCH 0316/3441] chore: remove deprecated method (#95) * chore: remove internal deprecated method * chore: fix indents * chore: use try catch * chore: reverts public method * chore: update review changes --- .../java/com/google/cloud/bigquery/OptionTest.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java index 77e54cbba9da..58f314866749 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java @@ -21,9 +21,8 @@ import static org.junit.Assert.assertNull; import com.google.cloud.bigquery.spi.v2.BigQueryRpc; -import org.junit.Rule; +import org.junit.Assert; import org.junit.Test; -import org.junit.rules.ExpectedException; public class OptionTest { @@ -36,8 +35,6 @@ public class OptionTest { private static final Option OPTION_NOT_EQUALS1 = new Option(RPC_OPTION, OTHER_VALUE) {}; private static final Option OPTION_NOT_EQUALS2 = new Option(ANOTHER_RPC_OPTION, VALUE) {}; - @Rule public ExpectedException thrown = ExpectedException.none(); - @Test public void testEquals() { assertEquals(OPTION, OPTION_EQUALS); @@ -57,7 +54,11 @@ public void testConstructor() { Option option = new Option(RPC_OPTION, null) {}; assertEquals(RPC_OPTION, option.getRpcOption()); assertNull(option.getValue()); - thrown.expect(NullPointerException.class); - new Option(null, VALUE) {}; + try { + new Option(null, VALUE) {}; + Assert.fail(); + } catch (NullPointerException expected) { + + } } } From eafa6ba8224aec093836e1a7d85ec32176ad7475 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 22 Jan 2020 11:55:25 -0500 Subject: [PATCH 0317/3441] feat: new sample - Table: Column Based Time Partitioning (#118) * feat: new sample - Table: Column Based Time Partitioning * update based on comments --- .../bigquery/CreatePartitionedTable.java | 70 +++++++++++++++++++ .../bigquery/CreatePartitionedTableIT.java | 69 ++++++++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/CreatePartitionedTable.java create mode 100644 samples/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java diff --git a/samples/src/main/java/com/example/bigquery/CreatePartitionedTable.java b/samples/src/main/java/com/example/bigquery/CreatePartitionedTable.java new file mode 100644 index 000000000000..21dcdbf13a2d --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/CreatePartitionedTable.java @@ -0,0 +1,70 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_table_partitioned] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.TimePartitioning; + +public class CreatePartitionedTable { + + public static void runCreatePartitionedTable() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + createPartitionedTable(datasetName, tableName); + } + + public static void createPartitionedTable(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + + TimePartitioning partitioning = TimePartitioning.of(TimePartitioning.Type.DAY); + + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + Field.of("dateField", StandardSQLTypeName.DATE); + + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(schema) + .setTimePartitioning(partitioning) + .build(); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + + bigquery.create(tableInfo); + System.out.println("Partitioned table created successfully"); + } catch (BigQueryException e) { + System.out.println("Partitioned table was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_table_partitioned] diff --git a/samples/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java b/samples/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java new file mode 100644 index 000000000000..cbe612b322cb --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java @@ -0,0 +1,69 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreatePartitionedTableIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testCreatePartitionedTable() { + String tableName = "MY_PARTITIONED_TABLE"; + + CreatePartitionedTable.createPartitionedTable(BIGQUERY_DATASET_NAME, tableName); + + assertThat(bout.toString()).contains("Partitioned table created successfully"); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + } +} From 833b953aad618e88089c7e3487416c5650cc2ccc Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 22 Jan 2020 12:18:40 -0500 Subject: [PATCH 0318/3441] feat: sample - add col load append (#112) * feat: new sample - Add Column Load Append * feat: add column load append work in progress * update comment * updates * updates * fix build issue * update based on comments * update based on comments * update exception handling * update exception handling --- .../example/bigquery/AddColumnLoadAppend.java | 104 ++++++++++++++++++ .../bigquery/AddColumnLoadAppendIT.java | 78 +++++++++++++ .../com/example/bigquery/CreateDatasetIT.java | 18 +++ .../com/example/bigquery/CreateTableIT.java | 3 + 4 files changed, 203 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java create mode 100644 samples/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java diff --git a/samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java b/samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java new file mode 100644 index 000000000000..9587ac945fbf --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java @@ -0,0 +1,104 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_relax_column_load_append] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; +import com.google.common.collect.ImmutableList; +import java.util.UUID; + +public class AddColumnLoadAppend { + + public static void runAddColumnLoadAppend() throws Exception { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "/path/to/file.csv"; + addColumnLoadAppend(datasetName, tableName, sourceUri); + } + + public static void addColumnLoadAppend(String datasetName, String tableName, String sourceUri) + throws Exception { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + Table table = bigquery.getTable(tableId); + + // Add a new column to a BigQuery table while appending rows via a load job. + // 'REQUIRED' fields cannot be added to an existing schema, so the additional column must be + // 'NULLABLE'. + Schema newSchema = + Schema.of( + Field.newBuilder("name", LegacySQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build(), + // Adding below additional column during the load job + Field.newBuilder("post_abbr", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + + LoadJobConfiguration loadJobConfig = + LoadJobConfiguration.builder(tableId, sourceUri) + .setFormatOptions(FormatOptions.csv()) + .setWriteDisposition(WriteDisposition.WRITE_APPEND) + .setSchema(newSchema) + .setSchemaUpdateOptions(ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_ADDITION)) + .build(); + + // Create a job ID so that we can safely retry. + JobId jobId = JobId.of(UUID.randomUUID().toString()); + Job loadJob = bigquery.create(JobInfo.newBuilder(loadJobConfig).setJobId(jobId).build()); + System.out.println(loadJob.getJobId()); + + // Load data from a GCS parquet file into the table + // Blocks until this load table job completes its execution, either failing or succeeding. + Job completedJob = loadJob.waitFor(); + + // Check for errors + if (completedJob == null) { + throw new Exception("Job not executed since it no longer exists."); + } else if (completedJob.getStatus().getError() != null) { + // You can also look at queryJob.getStatus().getExecutionErrors() for all + // errors, not just the latest one. + throw new Exception( + "BigQuery was unable to load into the table due to an error: \n" + + loadJob.getStatus().getError()); + } + System.out.println("Column successfully added during load append job"); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_relax_column_load_append] diff --git a/samples/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java b/samples/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java new file mode 100644 index 000000000000..34b67788851b --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java @@ -0,0 +1,78 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class AddColumnLoadAppendIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testAddColumnLoadAppend() throws Exception { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + + String tableName = "ADD_COLUMN_LOAD_APPEND_TEST"; + Schema originalSchema = + Schema.of( + Field.newBuilder("name", LegacySQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, originalSchema); + + AddColumnLoadAppend.addColumnLoadAppend(BIGQUERY_DATASET_NAME, tableName, sourceUri); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + } +} diff --git a/samples/src/test/java/com/example/bigquery/CreateDatasetIT.java b/samples/src/test/java/com/example/bigquery/CreateDatasetIT.java index 32222c603ffd..276eae0463d0 100644 --- a/samples/src/test/java/com/example/bigquery/CreateDatasetIT.java +++ b/samples/src/test/java/com/example/bigquery/CreateDatasetIT.java @@ -17,18 +17,33 @@ package com.example.bigquery; import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.After; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; public class CreateDatasetIT { private ByteArrayOutputStream bout; private PrintStream out; + private static final String GOOGLE_CLOUD_PROJECT = System.getenv("GOOGLE_CLOUD_PROJECT"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + @Before public void setUp() { bout = new ByteArrayOutputStream(); @@ -46,5 +61,8 @@ public void testCreateDataset() { String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); CreateDataset.createDataset(generatedDatasetName); assertThat(bout.toString()).contains(generatedDatasetName + " created successfully"); + + // Clean up + DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, generatedDatasetName); } } diff --git a/samples/src/test/java/com/example/bigquery/CreateTableIT.java b/samples/src/test/java/com/example/bigquery/CreateTableIT.java index 2572f6069341..497ae4babe00 100644 --- a/samples/src/test/java/com/example/bigquery/CreateTableIT.java +++ b/samples/src/test/java/com/example/bigquery/CreateTableIT.java @@ -60,5 +60,8 @@ public void testCreateTable() { CreateTable.createTable(generatedDatasetName, tableName, schema); assertThat(bout.toString()).contains("Table created successfully"); + + // Clean up + DeleteTable.deleteTable(generatedDatasetName, tableName); } } From 93f6cc24b77d3492361b4e026fbe6b639f373a12 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 23 Jan 2020 11:46:58 -0500 Subject: [PATCH 0319/3441] feat: add new sample - Table: Create clustered table (#120) * feat: add new sample - Table: Create clustered table * nit update --- .../bigquery/CreateClusteredTable.java | 75 +++++++++++++++++++ .../bigquery/CreateClusteredTableIT.java | 69 +++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/CreateClusteredTable.java create mode 100644 samples/src/test/java/com/example/bigquery/CreateClusteredTableIT.java diff --git a/samples/src/main/java/com/example/bigquery/CreateClusteredTable.java b/samples/src/main/java/com/example/bigquery/CreateClusteredTable.java new file mode 100644 index 000000000000..1fc265e17f83 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/CreateClusteredTable.java @@ -0,0 +1,75 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_table_clustered] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Clustering; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.TimePartitioning; +import com.google.common.collect.ImmutableList; + +public class CreateClusteredTable { + public static void runCreateClusteredTable() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + createClusteredTable(datasetName, tableName); + } + + public static void createClusteredTable(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + + TimePartitioning partitioning = TimePartitioning.of(TimePartitioning.Type.DAY); + + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); + + Clustering clustering = + Clustering.newBuilder().setFields(ImmutableList.of("name", "post_abbr")).build(); + + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(schema) + .setTimePartitioning(partitioning) + .setClustering(clustering) + .build(); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + + bigquery.create(tableInfo); + System.out.println("Clustered table created successfully"); + } catch (BigQueryException e) { + System.out.println("Clustered table was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_table_clustered] diff --git a/samples/src/test/java/com/example/bigquery/CreateClusteredTableIT.java b/samples/src/test/java/com/example/bigquery/CreateClusteredTableIT.java new file mode 100644 index 000000000000..4f8c29942c21 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/CreateClusteredTableIT.java @@ -0,0 +1,69 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateClusteredTableIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void createClusteredTable() { + String tableName = "MY_CLUSTERED_TABLE"; + + CreateClusteredTable.createClusteredTable(BIGQUERY_DATASET_NAME, tableName); + + assertThat(bout.toString()).contains("Clustered table created successfully"); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + } +} From df59cc70c9507bf65781118a1938e5fd4701bb83 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 23 Jan 2020 12:18:57 -0500 Subject: [PATCH 0320/3441] feat: new sample - Query: Clustered Table (#121) * feat: new sample - Query: Clustered Table * update base on comments, refactoring --- .../bigquery/CreatePartitionedTable.java | 4 +- .../example/bigquery/QueryClusteredTable.java | 66 +++++++++++++++++++ .../bigquery/QueryClusteredTableIT.java | 52 +++++++++++++++ 3 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 samples/src/main/java/com/example/bigquery/QueryClusteredTable.java create mode 100644 samples/src/test/java/com/example/bigquery/QueryClusteredTableIT.java diff --git a/samples/src/main/java/com/example/bigquery/CreatePartitionedTable.java b/samples/src/main/java/com/example/bigquery/CreatePartitionedTable.java index 21dcdbf13a2d..79a15a801c19 100644 --- a/samples/src/main/java/com/example/bigquery/CreatePartitionedTable.java +++ b/samples/src/main/java/com/example/bigquery/CreatePartitionedTable.java @@ -50,8 +50,8 @@ public static void createPartitionedTable(String datasetName, String tableName) Schema schema = Schema.of( Field.of("stringField", StandardSQLTypeName.STRING), - Field.of("booleanField", StandardSQLTypeName.BOOL)); - Field.of("dateField", StandardSQLTypeName.DATE); + Field.of("booleanField", StandardSQLTypeName.BOOL), + Field.of("dateField", StandardSQLTypeName.DATE)); StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder() diff --git a/samples/src/main/java/com/example/bigquery/QueryClusteredTable.java b/samples/src/main/java/com/example/bigquery/QueryClusteredTable.java new file mode 100644 index 000000000000..f02a5636025c --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/QueryClusteredTable.java @@ -0,0 +1,66 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_clustered_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; + +public class QueryClusteredTable { + + public static void runQueryClusteredTable() throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + queryClusteredTable(projectId, datasetName, tableName); + } + + public static void queryClusteredTable(String projectId, String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + String sourceTable = "`" + projectId + "." + datasetName + "." + tableName + "`"; + String query = + "SELECT word, word_count\n" + + "FROM " + + sourceTable + + "\n" + // Optimize query performance by filtering the clustered columns in sort order + + "WHERE corpus = 'romeoandjuliet'\n" + + "AND word_count >= 1"; + + QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query clustered table performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_clustered_table] diff --git a/samples/src/test/java/com/example/bigquery/QueryClusteredTableIT.java b/samples/src/test/java/com/example/bigquery/QueryClusteredTableIT.java new file mode 100644 index 000000000000..fc07c5db05a7 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/QueryClusteredTableIT.java @@ -0,0 +1,52 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryClusteredTableIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void queryClusteredTable() { + String projectId = "java-docs-samples-testing"; + String datasetName = "bigquery_test_dataset"; + String tableName = "clustered_shakespeare"; + + QueryClusteredTable.queryClusteredTable(projectId, datasetName, tableName); + assertThat(bout.toString()).contains("Query clustered table performed successfully."); + } +} From cd34e4497dbcc83145af6f316997e68e939a8542 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 23 Jan 2020 14:55:49 -0500 Subject: [PATCH 0321/3441] chore: release 1.104.0 (#110) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/pom.xml [ci skip] --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 5 files changed, 38 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6d8cbba00ef..81c6c1c9da33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,35 @@ # Changelog +## [1.104.0](https://www.github.com/googleapis/java-bigquery/compare/v1.103.0...v1.104.0) (2020-01-23) + + +### Features + +* add new sample - Table: Create clustered table ([#120](https://www.github.com/googleapis/java-bigquery/issues/120)) ([93f6cc2](https://www.github.com/googleapis/java-bigquery/commit/93f6cc24b77d3492361b4e026fbe6b639f373a12)) +* add range partitioning field to tableslist ([#114](https://www.github.com/googleapis/java-bigquery/issues/114)) ([069240f](https://www.github.com/googleapis/java-bigquery/commit/069240fc4ebfc54d39d84fc3a9cc31d093cfa70a)) +* new sample - load: GCS parquet replace existing table ([#101](https://www.github.com/googleapis/java-bigquery/issues/101)) ([c423c91](https://www.github.com/googleapis/java-bigquery/commit/c423c91f7689bfc29a94b452842077e2622c621a)) +* new sample - Query: Clustered Table ([#121](https://www.github.com/googleapis/java-bigquery/issues/121)) ([df59cc7](https://www.github.com/googleapis/java-bigquery/commit/df59cc70c9507bf65781118a1938e5fd4701bb83)) +* new sample - Table: Column Based Time Partitioning ([#118](https://www.github.com/googleapis/java-bigquery/issues/118)) ([eafa6ba](https://www.github.com/googleapis/java-bigquery/commit/eafa6ba8224aec093836e1a7d85ec32176ad7475)) +* new sample - Tables: Delete table ([#90](https://www.github.com/googleapis/java-bigquery/issues/90)) ([8a1caa6](https://www.github.com/googleapis/java-bigquery/commit/8a1caa64d139c937e3e2d2dfc10a64e87c240ddc)) +* new sample - Tables: Relax column ([#89](https://www.github.com/googleapis/java-bigquery/issues/89)) ([6f95631](https://www.github.com/googleapis/java-bigquery/commit/6f9563160670a7cd2a75afe9774e91180c867206)) +* sample - add col load append ([#112](https://www.github.com/googleapis/java-bigquery/issues/112)) ([833b953](https://www.github.com/googleapis/java-bigquery/commit/833b953aad618e88089c7e3487416c5650cc2ccc)) +* sample - Get dataset properties ([#98](https://www.github.com/googleapis/java-bigquery/issues/98)) ([743bc0a](https://www.github.com/googleapis/java-bigquery/commit/743bc0a552875b773becbd517a063e29193a6b49)) +* sample - query with named params ([#116](https://www.github.com/googleapis/java-bigquery/issues/116)) ([ecec2f7](https://www.github.com/googleapis/java-bigquery/commit/ecec2f73fb43311538e92944341fed51c199cde0)) +* sample - query with positional params ([#117](https://www.github.com/googleapis/java-bigquery/issues/117)) ([a5df219](https://www.github.com/googleapis/java-bigquery/commit/a5df219186d80e86d61c13aef6b052fe726a5df6)) +* sample - run a legacy SQL query ([#97](https://www.github.com/googleapis/java-bigquery/issues/97)) ([7fedacd](https://www.github.com/googleapis/java-bigquery/commit/7fedacdc5c924de8b25aac59d00018704e0d5af8)) + + +### Dependencies + +* update core dependencies ([#107](https://www.github.com/googleapis/java-bigquery/issues/107)) ([bd3a862](https://www.github.com/googleapis/java-bigquery/commit/bd3a862c37b6d8d899ba3443e90a6eed53a70dd4)) +* update core dependencies ([#93](https://www.github.com/googleapis/java-bigquery/issues/93)) ([f95b179](https://www.github.com/googleapis/java-bigquery/commit/f95b1798f6a09ff03b195ae7540f9395386c0ea5)) +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20191211-1.30.3 ([#105](https://www.github.com/googleapis/java-bigquery/issues/105)) ([8eedb54](https://www.github.com/googleapis/java-bigquery/commit/8eedb5490f78333c9af97279a68120850c057f2a)) +* update dependency com.google.cloud:libraries-bom to v3.3.0 ([#108](https://www.github.com/googleapis/java-bigquery/issues/108)) ([c15afb9](https://www.github.com/googleapis/java-bigquery/commit/c15afb9459896790d11d4f3c7e5473104eb6bea8)) +* update dependency com.google.cloud:libraries-bom to v3.4.0 ([#113](https://www.github.com/googleapis/java-bigquery/issues/113)) ([772516a](https://www.github.com/googleapis/java-bigquery/commit/772516ae174e75c93894a1283e446095bc1e398b)) +* update dependency com.google.truth:truth to v1.0.1 ([#103](https://www.github.com/googleapis/java-bigquery/issues/103)) ([f41a53c](https://www.github.com/googleapis/java-bigquery/commit/f41a53c33942cba59242f515906ec57503549122)) +* update dependency junit:junit to v4.13 ([#109](https://www.github.com/googleapis/java-bigquery/issues/109)) ([c36a547](https://www.github.com/googleapis/java-bigquery/commit/c36a547bd2c75da48571fd3f6f91d33a590f9744)) +* update dependency org.threeten:threetenbp to v1.4.1 ([88b420e](https://www.github.com/googleapis/java-bigquery/commit/88b420ea817807bdbe25f803f98352fa5a7d6ba4)) + ## [1.103.0](https://www.github.com/googleapis/java-bigquery/compare/1.102.0...v1.103.0) (2020-01-08) diff --git a/README.md b/README.md index 5b33d1a05ac3..23568e416ba1 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.103.0 + 1.104.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.103.0' +compile 'com.google.cloud:google-cloud-bigquery:1.104.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.103.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.104.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 967609d7d3ef..fea5b50ce21b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.103.1-SNAPSHOT + 1.104.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.103.1-SNAPSHOT + 1.104.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e5bf58305922..f62204719052 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.103.1-SNAPSHOT + 1.104.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -113,7 +113,7 @@ com.google.cloud google-cloud-bigquery - 1.103.1-SNAPSHOT + 1.104.0 diff --git a/versions.txt b/versions.txt index 406762231dd5..33e83a7a9bbd 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.103.0:1.103.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.104.0:1.104.0 \ No newline at end of file From 6e1eef6124108371b89137529f1c42a1a1d16578 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 23 Jan 2020 15:42:00 -0500 Subject: [PATCH 0322/3441] feat: add new sample - Load: Column Based Time Partitioning (#119) * feat: add new sample - Load: Column Based Time Partitioning * update code format * update base on comments --- .../example/bigquery/AddColumnLoadAppend.java | 3 - .../bigquery/LoadPartitionedTable.java | 102 ++++++++++++++++++ .../bigquery/AddColumnLoadAppendIT.java | 3 + .../bigquery/LoadPartitionedTableIT.java | 72 +++++++++++++ 4 files changed, 177 insertions(+), 3 deletions(-) create mode 100644 samples/src/main/java/com/example/bigquery/LoadPartitionedTable.java create mode 100644 samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java diff --git a/samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java b/samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java index 9587ac945fbf..935c1171f08c 100644 --- a/samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java +++ b/samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java @@ -30,7 +30,6 @@ import com.google.cloud.bigquery.LegacySQLTypeName; import com.google.cloud.bigquery.LoadJobConfiguration; import com.google.cloud.bigquery.Schema; -import com.google.cloud.bigquery.Table; import com.google.cloud.bigquery.TableId; import com.google.common.collect.ImmutableList; import java.util.UUID; @@ -53,7 +52,6 @@ public static void addColumnLoadAppend(String datasetName, String tableName, Str BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); TableId tableId = TableId.of(datasetName, tableName); - Table table = bigquery.getTable(tableId); // Add a new column to a BigQuery table while appending rows via a load job. // 'REQUIRED' fields cannot be added to an existing schema, so the additional column must be @@ -79,7 +77,6 @@ public static void addColumnLoadAppend(String datasetName, String tableName, Str // Create a job ID so that we can safely retry. JobId jobId = JobId.of(UUID.randomUUID().toString()); Job loadJob = bigquery.create(JobInfo.newBuilder(loadJobConfig).setJobId(jobId).build()); - System.out.println(loadJob.getJobId()); // Load data from a GCS parquet file into the table // Blocks until this load table job completes its execution, either failing or succeeding. diff --git a/samples/src/main/java/com/example/bigquery/LoadPartitionedTable.java b/samples/src/main/java/com/example/bigquery/LoadPartitionedTable.java new file mode 100644 index 000000000000..6adc4dfe65cc --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/LoadPartitionedTable.java @@ -0,0 +1,102 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_partitioned] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TimePartitioning; +import java.time.Duration; +import java.time.temporal.ChronoUnit; +import java.util.UUID; + +public class LoadPartitionedTable { + + public static void runLoadPartitionedTable() throws Exception { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "/path/to/file.csv"; + loadPartitionedTable(datasetName, tableName, sourceUri); + } + + public static void loadPartitionedTable(String datasetName, String tableName, String sourceUri) + throws Exception { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); + + // Configure time partitioning. For full list of options, see: + // https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#TimePartitioning + TimePartitioning partitioning = + TimePartitioning.newBuilder(TimePartitioning.Type.DAY) + .setField("date") + .setExpirationMs(Duration.of(90, ChronoUnit.DAYS).toMillis()) + .build(); + + LoadJobConfiguration loadJobConfig = + LoadJobConfiguration.builder(tableId, sourceUri) + .setFormatOptions(FormatOptions.csv()) + .setSchema(schema) + .setTimePartitioning(partitioning) + .build(); + + // Create a job ID so that we can safely retry. + JobId jobId = JobId.of(UUID.randomUUID().toString()); + Job loadJob = bigquery.create(JobInfo.newBuilder(loadJobConfig).setJobId(jobId).build()); + + // Load data from a GCS parquet file into the table + // Blocks until this load table job completes its execution, either failing or succeeding. + Job completedJob = loadJob.waitFor(); + + // Check for errors + if (completedJob == null) { + throw new Exception("Job not executed since it no longer exists."); + } else if (completedJob.getStatus().getError() != null) { + // You can also look at queryJob.getStatus().getExecutionErrors() for all + // errors, not just the latest one. + throw new Exception( + "BigQuery was unable to load into the table due to an error: \n" + + loadJob.getStatus().getError()); + } + System.out.println("Data successfully loaded into time partitioned table during load job"); + } catch (BigQueryException | InterruptedException e) { + System.out.println( + "Data not loaded into time partitioned table during load job \n" + e.toString()); + } + } +} +// [END bigquery_load_table_partitioned] diff --git a/samples/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java b/samples/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java index 34b67788851b..12a9acc380d3 100644 --- a/samples/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java +++ b/samples/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java @@ -16,6 +16,7 @@ package com.example.bigquery; +import static com.google.common.truth.Truth.assertThat; import static junit.framework.TestCase.assertNotNull; import com.google.cloud.bigquery.Field; @@ -72,6 +73,8 @@ public void testAddColumnLoadAppend() throws Exception { AddColumnLoadAppend.addColumnLoadAppend(BIGQUERY_DATASET_NAME, tableName, sourceUri); + assertThat(bout.toString()).contains("Column successfully added during load append job"); + // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } diff --git a/samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java b/samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java new file mode 100644 index 000000000000..27e46472f21c --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java @@ -0,0 +1,72 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadPartitionedTableIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void loadPartitionedTable() throws Exception { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states-by-date.csv"; + + String tableName = "PARTITIONED_TABLE_TEST"; + + LoadPartitionedTable.loadPartitionedTable(BIGQUERY_DATASET_NAME, tableName, sourceUri); + + assertThat(bout.toString()) + .contains("Data successfully loaded into time partitioned table during load job"); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + } +} From 132551a56d9f2e5238a309378f99b05642ee4eb2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sun, 26 Jan 2020 14:36:31 -0500 Subject: [PATCH 0323/3441] chore: release 1.104.1-SNAPSHOT (#123) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index fea5b50ce21b..102c405f2e62 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.104.0 + 1.104.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.104.0 + 1.104.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f62204719052..effb030decdd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.104.0 + 1.104.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -113,7 +113,7 @@ com.google.cloud google-cloud-bigquery - 1.104.0 + 1.104.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 33e83a7a9bbd..5cdc99e69c66 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.104.0:1.104.0 \ No newline at end of file +google-cloud-bigquery:1.104.0:1.104.1-SNAPSHOT \ No newline at end of file From e7c44b4ba496d026ab182fb2d090afa6d953f891 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 27 Jan 2020 11:58:58 -0500 Subject: [PATCH 0324/3441] fix build error (#127) --- .../java/com/example/bigquery/LoadPartitionedTableIT.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java b/samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java index 27e46472f21c..f8af4253014a 100644 --- a/samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java +++ b/samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java @@ -57,9 +57,9 @@ public void tearDown() { @Test public void loadPartitionedTable() throws Exception { - String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states-by-date.csv"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states-by-date-no-header.csv"; - String tableName = "PARTITIONED_TABLE_TEST"; + String tableName = "LOAD_PARTITIONED_TABLE_TEST"; LoadPartitionedTable.loadPartitionedTable(BIGQUERY_DATASET_NAME, tableName, sourceUri); From 1a1480f5079c964dd492126557742340e0b6ef6e Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 27 Jan 2020 14:34:23 -0500 Subject: [PATCH 0325/3441] feat: add new sample - Tables: Relax column query append (#115) * feat: add new sample - Tables: Relax column query append * nit * update based on comments * update exception handling * refactor * update base on comments * code refactoring * fix build errors * add debugging statements * remove unused exception * debug * debug * debug * debug * debug * debug * revert back to cleaning up in method due to unkown nullpointer exception if using setup() or teardown() * update base on comments --- .../com/example/bigquery/RelaxTableQuery.java | 95 +++++++++++++++++++ .../example/bigquery/RelaxTableQueryIT.java | 89 +++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/RelaxTableQuery.java create mode 100644 samples/src/test/java/com/example/bigquery/RelaxTableQueryIT.java diff --git a/samples/src/main/java/com/example/bigquery/RelaxTableQuery.java b/samples/src/main/java/com/example/bigquery/RelaxTableQuery.java new file mode 100644 index 000000000000..8ed3ea1d481b --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/RelaxTableQuery.java @@ -0,0 +1,95 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_relax_column_query_append] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableResult; +import com.google.common.collect.ImmutableList; + +public class RelaxTableQuery { + + public static void runRelaxTableQuery() throws Exception { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + relaxTableQuery(projectId, datasetName, tableName); + } + + // To relax all columns in a destination table when you append data to it during a query job + public static void relaxTableQuery(String projectId, String datasetName, String tableName) + throws Exception { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + + String sourceTable = "`" + projectId + "." + datasetName + "." + tableName + "`"; + String query = "SELECT word FROM " + sourceTable + " WHERE word like '%is%'"; + + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + // Use standard SQL syntax for queries. + // See: https://cloud.google.com/bigquery/sql-reference/ + .setUseLegacySql(false) + .setSchemaUpdateOptions(ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_RELAXATION)) + .setWriteDisposition(WriteDisposition.WRITE_APPEND) + .setDestinationTable(tableId) + .build(); + + Job queryJob = bigquery.create(JobInfo.newBuilder(queryConfig).build()); + + queryJob = queryJob.waitFor(); + + // Check for errors + if (queryJob == null) { + throw new Exception("Job no longer exists"); + } else if (queryJob.getStatus().getError() != null) { + // You can also look at queryJob.getStatus().getExecutionErrors() for all + // errors, not just the latest one. + throw new Exception(queryJob.getStatus().getError().toString()); + } + + // Get the results. + TableResult results = queryJob.getQueryResults(); + + // Print all pages of the results. + results + .iterateAll() + .forEach( + rows -> { + rows.forEach(row -> System.out.println("row: " + row.toString())); + }); + + System.out.println("Successfully relaxed all columns in destination table during query job"); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Columns not relaxed during query job \n" + e.toString()); + } + } +} +// [END bigquery_relax_column_query_append] diff --git a/samples/src/test/java/com/example/bigquery/RelaxTableQueryIT.java b/samples/src/test/java/com/example/bigquery/RelaxTableQueryIT.java new file mode 100644 index 000000000000..7ec9429b2ae9 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/RelaxTableQueryIT.java @@ -0,0 +1,89 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class RelaxTableQueryIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_PROJECT_ID = System.getenv("BIGQUERY_PROJECT_ID"); + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_PROJECT_ID"); + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testRelaxTableQuery() throws Exception { + String tableName = "RELAX_TABLE_QUERY_TEST" + UUID.randomUUID().toString().replace('-', '_'); + Schema originalSchema = + Schema.of( + Field.newBuilder("word", LegacySQLTypeName.STRING).setMode(Field.Mode.REQUIRED).build(), + Field.newBuilder("word_count", LegacySQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build(), + Field.newBuilder("corpus", LegacySQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build(), + Field.newBuilder("corpus_date", LegacySQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, originalSchema); + + RelaxTableQuery.relaxTableQuery(BIGQUERY_PROJECT_ID, BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()) + .contains("Successfully relaxed all columns in destination table during query job"); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + } +} From a03670b3ba19c7805712f09754435e422228abd6 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 27 Jan 2020 15:32:56 -0500 Subject: [PATCH 0326/3441] feat: new sample - Get Model (#124) * feat: add new sample - Tables: Relax column query append * nit * update based on comments * update exception handling * refactor * update base on comments * code refactoring * fix build errors * add debugging statements * remove unused exception * feat: new sample - Models: Get a model resource * feat: new sample - Models: Get a model resource * fix build error --- .../java/com/example/bigquery/GetModel.java | 51 +++++++++++++++ .../java/com/example/bigquery/GetModelIT.java | 65 +++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/GetModel.java create mode 100644 samples/src/test/java/com/example/bigquery/GetModelIT.java diff --git a/samples/src/main/java/com/example/bigquery/GetModel.java b/samples/src/main/java/com/example/bigquery/GetModel.java new file mode 100644 index 000000000000..e51b3fd83832 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/GetModel.java @@ -0,0 +1,51 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Model; +import com.google.cloud.bigquery.ModelId; + +// [START bigquery_get_model] +public class GetModel { + + public static void runGetModel() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String modelName = "MY_MODEL_ID"; + getModel(datasetName, modelName); + } + + public static void getModel(String datasetName, String modelName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + ModelId modelId = ModelId.of(datasetName, modelName); + Model model = bigquery.getModel(modelId); + System.out.println("Model: " + model.getDescription()); + + System.out.println("Successfully retrieved model"); + } catch (BigQueryException e) { + System.out.println("Cannot retrieve model \n" + e.toString()); + } + } +} +// [END bigquery_get_model] diff --git a/samples/src/test/java/com/example/bigquery/GetModelIT.java b/samples/src/test/java/com/example/bigquery/GetModelIT.java new file mode 100644 index 000000000000..78d53ad7c06d --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/GetModelIT.java @@ -0,0 +1,65 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class GetModelIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + private static final String BIGQUERY_MODEL_NAME = System.getenv("BIGQUERY_MODEL_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + requireEnvVar("BIGQUERY_MODEL_NAME"); + } + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void getModel() { + GetModel.getModel(BIGQUERY_DATASET_NAME, BIGQUERY_MODEL_NAME); + assertThat(bout.toString()).contains("Successfully retrieved model"); + } +} From 3a62206639f50e9d4ae18cc407303cad0c4a6ddb Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 27 Jan 2020 19:56:11 -0500 Subject: [PATCH 0327/3441] feat: new sample - Models: List model resources contained in a dataset (#125) * feat: new sample - Models: List Models * update to use hamcrest truth * update base on comments * update base on comment * nit * nit * nit update * nit update --- .../com/example/bigquery/ListDatasets.java | 9 ++- .../java/com/example/bigquery/ListModels.java | 54 ++++++++++++++++ .../com/example/bigquery/ListDatasetsIT.java | 2 +- .../com/example/bigquery/ListModelsIT.java | 63 +++++++++++++++++++ 4 files changed, 125 insertions(+), 3 deletions(-) create mode 100644 samples/src/main/java/com/example/bigquery/ListModels.java create mode 100644 samples/src/test/java/com/example/bigquery/ListModelsIT.java diff --git a/samples/src/main/java/com/example/bigquery/ListDatasets.java b/samples/src/main/java/com/example/bigquery/ListDatasets.java index 2c86c71aae07..cbeaea25ec7a 100644 --- a/samples/src/main/java/com/example/bigquery/ListDatasets.java +++ b/samples/src/main/java/com/example/bigquery/ListDatasets.java @@ -39,9 +39,14 @@ public static void listDatasets(String projectId) { BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); Page datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100)); - for (Dataset dataset : datasets.iterateAll()) { - System.out.println(dataset.getDatasetId() + " dataset in project listed successfully"); + if (datasets == null) { + System.out.println("Dataset does not contain any models"); + return; } + datasets + .iterateAll() + .forEach( + dataset -> System.out.printf("Success! Dataset ID: %s ", dataset.getDatasetId())); } catch (BigQueryException e) { System.out.println("Project does not contain any datasets \n" + e.toString()); } diff --git a/samples/src/main/java/com/example/bigquery/ListModels.java b/samples/src/main/java/com/example/bigquery/ListModels.java new file mode 100644 index 000000000000..3a0cbae4e465 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/ListModels.java @@ -0,0 +1,54 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import com.google.api.gax.paging.Page; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.ModelListOption; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Model; + +// [START bigquery_list_models] +public class ListModels { + + public static void runListModels() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + listModels(datasetName); + } + + public static void listModels(String datasetName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Page models = bigquery.listModels(datasetName, ModelListOption.pageSize(100)); + if (models == null) { + System.out.println("Dataset does not contain any models."); + return; + } + models + .iterateAll() + .forEach(model -> System.out.printf("Success! Model ID: %s", model.getModelId())); + } catch (BigQueryException e) { + System.out.println("Models not listed in dataset due to error: \n" + e.toString()); + } + } +} +// [END bigquery_list_models] diff --git a/samples/src/test/java/com/example/bigquery/ListDatasetsIT.java b/samples/src/test/java/com/example/bigquery/ListDatasetsIT.java index 6150390af850..6e44e599bb71 100644 --- a/samples/src/test/java/com/example/bigquery/ListDatasetsIT.java +++ b/samples/src/test/java/com/example/bigquery/ListDatasetsIT.java @@ -44,6 +44,6 @@ public void tearDown() { public void listDatasets() { // List datasets in bigquery-public-data project ListDatasets.listDatasets("bigquery-public-data"); - assertThat(bout.toString()).contains("dataset in project listed successfully"); + assertThat(bout.toString()).contains("Success! Dataset ID"); } } diff --git a/samples/src/test/java/com/example/bigquery/ListModelsIT.java b/samples/src/test/java/com/example/bigquery/ListModelsIT.java new file mode 100644 index 000000000000..a94f4ea8b584 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/ListModelsIT.java @@ -0,0 +1,63 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static junit.framework.TestCase.assertNotNull; + +import com.google.common.truth.Truth; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ListModelsIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testListModels() { + ListModels.listModels(BIGQUERY_DATASET_NAME); + Truth.assertThat(bout.toString()).contains("Success! Model ID"); + } +} From fbbba31d67b7670115333a123aabcba77dbd9ad3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 28 Jan 2020 01:57:31 +0100 Subject: [PATCH 0328/3441] deps: update core transport dependencies to v1.34.1 (#129) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index effb030decdd..e212b10b42a4 100644 --- a/pom.xml +++ b/pom.xml @@ -88,12 +88,12 @@ com.google.http-client google-http-client-jackson2 - 1.34.0 + 1.34.1 com.google.http-client google-http-client - 1.34.0 + 1.34.1 com.google.auth From 0d4092d6ee864d84705819305d045ce89aba8149 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 28 Jan 2020 17:45:57 -0500 Subject: [PATCH 0329/3441] fix(debug): add debug statement to StandardTableDefinition (#128) * chore: add debug statement to StandardTableDefinition * update to include cause * remove changes to method headers * update base on comment * adding testcase * adding testcases * fix test dep build error [WARNING] Used undeclared dependencies found: [WARNING] org.hamcrest:hamcrest-core:jar:1.3:test * update to add more info --- google-cloud-bigquery/pom.xml | 6 ++ .../bigquery/StandardTableDefinition.java | 26 +++++++- .../bigquery/StandardTableDefinitionTest.java | 62 +++++++++++++++++++ 3 files changed, 93 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 102c405f2e62..9d5631a5f0e2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -102,6 +102,12 @@ org.objenesis objenesis + + org.hamcrest + hamcrest-core + 1.3 + test + diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index 64f911d90c13..1c465343a514 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -272,7 +272,31 @@ static StandardTableDefinition fromPb(Table tablePb) { builder.setStreamingBuffer(StreamingBuffer.fromPb(tablePb.getStreamingBuffer())); } if (tablePb.getTimePartitioning() != null) { - builder.setTimePartitioning(TimePartitioning.fromPb(tablePb.getTimePartitioning())); + try { + builder.setTimePartitioning(TimePartitioning.fromPb(tablePb.getTimePartitioning())); + } catch (IllegalArgumentException e) { + throw new IllegalArgumentException( + "Illegal Argument - Got unexpected time partitioning " + + tablePb.getTimePartitioning().toString() + + " in project " + + tablePb.getTableReference().getProjectId() + + " in dataset " + + tablePb.getTableReference().getDatasetId() + + " in table " + + tablePb.getTableReference().getTableId(), + e); + } catch (NullPointerException e) { + throw new NullPointerException( + "Null pointer - Got unexpected time partitioning " + + tablePb.getTimePartitioning().toString() + + " in project " + + tablePb.getTableReference().getProjectId() + + " in dataset " + + tablePb.getTableReference().getDatasetId() + + " in table " + + tablePb.getTableReference().getTableId() + + e.toString()); + } } if (tablePb.getRangePartitioning() != null) { builder.setRangePartitioning(RangePartitioning.fromPb(tablePb.getRangePartitioning())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java index 7bfbf62754b8..d1dd0cc29a8d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -16,11 +16,17 @@ package com.google.cloud.bigquery; +import static org.hamcrest.CoreMatchers.allOf; +import static org.hamcrest.CoreMatchers.containsString; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import com.google.api.services.bigquery.model.Streamingbuffer; +import com.google.api.services.bigquery.model.Table; +import com.google.api.services.bigquery.model.TableReference; import com.google.cloud.bigquery.StandardTableDefinition.StreamingBuffer; import com.google.common.collect.ImmutableList; import org.junit.Test; @@ -118,6 +124,62 @@ public void testToAndFromPb() { definition, TableDefinition.fromPb(definition.toPb())); } + @Test + public void testFromPbWithUnexpectedTimePartitioningTypeRaisesInvalidArgumentException() { + Table invalidTable = + new Table() + .setType("TABLE") + .setTableReference( + new TableReference() + .setProjectId("ILLEGAL_ARG_TEST_PROJECT") + .setDatasetId("ILLEGAL_ARG_TEST_DATASET") + .setTableId("ILLEGAL_ARG_TEST_TABLE")) + .setTimePartitioning( + new com.google.api.services.bigquery.model.TimePartitioning().setType("GHURRY")); + try { + StandardTableDefinition.fromPb(invalidTable); + } catch (IllegalArgumentException ie) { + assertThat( + ie.getMessage(), + allOf( + containsString("Illegal Argument - Got unexpected time partitioning"), + containsString("GHURRY"), + containsString("ILLEGAL_ARG_TEST_PROJECT"), + containsString("ILLEGAL_ARG_TEST_DATASET"), + containsString("ILLEGAL_ARG_TEST_TABLE"))); + return; + } + fail("testFromPb illegal argument exception did not throw!"); + } + + @Test + public void testFromPbWithNullTimePartitioningTypeRaisesNullPointerException() { + Table invalidTable = + new Table() + .setType("TABLE") + .setTableReference( + new TableReference() + .setProjectId("NULL_PTR_TEST_PROJECT") + .setDatasetId("NULL_PTR_TEST_DATASET") + .setTableId("NULL_PTR_TEST_TABLE")) + .setTimePartitioning( + new com.google.api.services.bigquery.model.TimePartitioning().setType(null)); + try { + StandardTableDefinition.fromPb(invalidTable); + } catch (NullPointerException ne) { + assertThat( + ne.getMessage(), + allOf( + containsString("Null pointer - Got unexpected time partitioning"), + containsString("null"), + containsString("NULL_PTR_TEST_PROJECT"), + containsString("NULL_PTR_TEST_DATASET"), + containsString("NULL_PTR_TEST_TABLE"))); + return; + } + fail("testFromPb null pointer exception did not throw!"); + } + @Test public void testFromPbWithNullEstimatedRowsAndBytes() { StandardTableDefinition.fromPb( From 1a1b9d873d45d5fc792e6591a5fc5ed7ae857798 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2020 18:02:02 -0500 Subject: [PATCH 0330/3441] chore: release 1.105.0 (#133) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] --- CHANGELOG.md | 20 ++++++++++++++++++++ README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 5 files changed, 28 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81c6c1c9da33..41fc796ea617 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## [1.105.0](https://www.github.com/googleapis/java-bigquery/compare/v1.104.0...v1.105.0) (2020-01-28) + + +### Features + +* add new sample - Load: Column Based Time Partitioning ([#119](https://www.github.com/googleapis/java-bigquery/issues/119)) ([6e1eef6](https://www.github.com/googleapis/java-bigquery/commit/6e1eef6124108371b89137529f1c42a1a1d16578)) +* add new sample - Tables: Relax column query append ([#115](https://www.github.com/googleapis/java-bigquery/issues/115)) ([1a1480f](https://www.github.com/googleapis/java-bigquery/commit/1a1480f5079c964dd492126557742340e0b6ef6e)) +* new sample - Get Model ([#124](https://www.github.com/googleapis/java-bigquery/issues/124)) ([a03670b](https://www.github.com/googleapis/java-bigquery/commit/a03670b3ba19c7805712f09754435e422228abd6)) +* new sample - Models: List model resources contained in a dataset ([#125](https://www.github.com/googleapis/java-bigquery/issues/125)) ([3a62206](https://www.github.com/googleapis/java-bigquery/commit/3a62206639f50e9d4ae18cc407303cad0c4a6ddb)) + + +### Bug Fixes + +* **debug:** add debug statement to StandardTableDefinition ([#128](https://www.github.com/googleapis/java-bigquery/issues/128)) ([0d4092d](https://www.github.com/googleapis/java-bigquery/commit/0d4092d6ee864d84705819305d045ce89aba8149)) + + +### Dependencies + +* update core transport dependencies to v1.34.1 ([#129](https://www.github.com/googleapis/java-bigquery/issues/129)) ([fbbba31](https://www.github.com/googleapis/java-bigquery/commit/fbbba31d67b7670115333a123aabcba77dbd9ad3)) + ## [1.104.0](https://www.github.com/googleapis/java-bigquery/compare/v1.103.0...v1.104.0) (2020-01-23) diff --git a/README.md b/README.md index 23568e416ba1..1e039353bbde 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.104.0 + 1.105.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.104.0' +compile 'com.google.cloud:google-cloud-bigquery:1.105.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.104.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.105.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9d5631a5f0e2..244a23d2f1bf 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.104.1-SNAPSHOT + 1.105.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.104.1-SNAPSHOT + 1.105.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e212b10b42a4..30ba9335a322 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.104.1-SNAPSHOT + 1.105.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -113,7 +113,7 @@ com.google.cloud google-cloud-bigquery - 1.104.1-SNAPSHOT + 1.105.0 diff --git a/versions.txt b/versions.txt index 5cdc99e69c66..b8030d0c0456 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.104.0:1.104.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.105.0:1.105.0 \ No newline at end of file From 076cd2c5bdb98194b94b269e5beaa3dcc6507ca1 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 29 Jan 2020 20:44:53 +0530 Subject: [PATCH 0331/3441] build: update annotationprocessorpaths to include auto-service-annotations (#135) --- pom.xml | 77 ++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 62 insertions(+), 15 deletions(-) diff --git a/pom.xml b/pom.xml index 30ba9335a322..b5f1c1d6485c 100644 --- a/pom.xml +++ b/pom.xml @@ -228,20 +228,6 @@ - - - maven-compiler-plugin - - - - com.google.auto.value - auto-value - ${auto-value.version} - - - - - @@ -328,6 +314,29 @@ 1.7 1.4 + + + + maven-compiler-plugin + + + + com.google.auto.value + auto-value + ${auto-value.version} + + + + + + + @@ -338,7 +347,45 @@ 1.7 ${auto-value.version} + 1.0-rc6 + + + + maven-compiler-plugin + + + + com.google.auto.value + auto-value + ${auto-value.version} + + + + com.google.auto.service + auto-service-annotations + ${auto-service-annotations.version} + + + + + + @@ -350,4 +397,4 @@ - \ No newline at end of file + From fc255cd320735b24b1105d0512d6e1d20f95d031 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 29 Jan 2020 10:52:41 -0500 Subject: [PATCH 0332/3441] deps: bump hamcrest dep version and artifactId (#136) * deps: bump hamcrest dep version and artifactId address build error: https://source.cloud.google.com/results/invocations/146b9fcc-cf53-41f1-a52e-e6ff1f857b2e/targets/cloud-devrel%2Fclient-libraries%2Fjava%2Fjava-bigquery%2Fpresubmit%2Fdependencies/log [WARNING] Used undeclared dependencies found: [WARNING] org.hamcrest:hamcrest:jar:2.2:test [WARNING] Unused declared dependencies found: [WARNING] org.hamcrest:hamcrest-core:jar:2.2:test * declaring hamcrest-core too to fix build error build error: https://source.cloud.google.com/results/invocations/47658b43-45f4-436e-baa7-7f709f5f3863/targets/cloud-devrel%2Fclient-libraries%2Fjava%2Fjava-bigquery%2Fpresubmit%2Fdependencies/log [WARNING] Used undeclared dependencies found: [WARNING] org.hamcrest:hamcrest-core:jar:1.3:test [WARNING] Unused declared dependencies found: [WARNING] org.hamcrest:hamcrest:jar:2.2:test * removing hamcrest-core, again since build error re-occurred saying it's unused https://source.cloud.google.com/results/invocations/c11a77e3-59fc-49e2-ae8b-4e10f4d968d4/targets/cloud-devrel%2Fclient-libraries%2Fjava%2Fjava-bigquery%2Fpresubmit%2Fdependencies/log [WARNING] Unused declared dependencies found: [WARNING] org.hamcrest:hamcrest-core:jar:2.2:test * move hamcrest to be above junit to fix build error * remove hamcrest-core since it's claimed as unused in build --- google-cloud-bigquery/pom.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 244a23d2f1bf..2c36d32cd984 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -85,6 +85,12 @@ + + org.hamcrest + hamcrest + 2.2 + test + junit junit @@ -102,12 +108,6 @@ org.objenesis objenesis - - org.hamcrest - hamcrest-core - 1.3 - test - From c859fdb0197ae8ea20ff0ed4b673944c000eaee7 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 29 Jan 2020 13:56:33 -0500 Subject: [PATCH 0333/3441] sample: fix region tag (#138) --- samples/src/main/java/com/example/bigquery/CreateDataset.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/src/main/java/com/example/bigquery/CreateDataset.java b/samples/src/main/java/com/example/bigquery/CreateDataset.java index 3e2fe0f42bbd..5ac8f157b81b 100644 --- a/samples/src/main/java/com/example/bigquery/CreateDataset.java +++ b/samples/src/main/java/com/example/bigquery/CreateDataset.java @@ -47,4 +47,4 @@ public static void createDataset(String datasetName) { } } } -// [END bigquery create_dataset] +// [END bigquery_create_dataset] From 2503aa1fc233d919c3d58a8ae38e9401c03b4931 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 29 Jan 2020 14:01:59 -0500 Subject: [PATCH 0334/3441] chore: release 1.105.1-SNAPSHOT (#137) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2c36d32cd984..1a43ff37c715 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.105.0 + 1.105.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.105.0 + 1.105.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b5f1c1d6485c..32344efb1441 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.105.0 + 1.105.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -113,7 +113,7 @@ com.google.cloud google-cloud-bigquery - 1.105.0 + 1.105.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index b8030d0c0456..7cb776419216 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.105.0:1.105.0 \ No newline at end of file +google-cloud-bigquery:1.105.0:1.105.1-SNAPSHOT \ No newline at end of file From 509c112202321a250b678102a03abd3c12387e12 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 30 Jan 2020 16:14:41 -0500 Subject: [PATCH 0335/3441] sample: fix region tag (#140) --- samples/src/main/java/com/example/bigquery/RelaxColumnMode.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/src/main/java/com/example/bigquery/RelaxColumnMode.java b/samples/src/main/java/com/example/bigquery/RelaxColumnMode.java index 02a263127496..2c57f2db194b 100644 --- a/samples/src/main/java/com/example/bigquery/RelaxColumnMode.java +++ b/samples/src/main/java/com/example/bigquery/RelaxColumnMode.java @@ -16,6 +16,7 @@ package com.example.bigquery; +// [START bigquery_relax_column] import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; @@ -25,7 +26,6 @@ import com.google.cloud.bigquery.StandardTableDefinition; import com.google.cloud.bigquery.Table; -// [START bigquery_relax_column] public class RelaxColumnMode { public static void runRelaxColumnMode() { From f643414c7eaa007ccfb80e8dbca8e59aa738080a Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 30 Jan 2020 17:22:39 -0500 Subject: [PATCH 0336/3441] sample: fix region tag (#141) --- samples/src/main/java/com/example/bigquery/GetDatasetInfo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/src/main/java/com/example/bigquery/GetDatasetInfo.java b/samples/src/main/java/com/example/bigquery/GetDatasetInfo.java index 52f4d54d0e44..963bbfaf9112 100644 --- a/samples/src/main/java/com/example/bigquery/GetDatasetInfo.java +++ b/samples/src/main/java/com/example/bigquery/GetDatasetInfo.java @@ -16,6 +16,7 @@ package com.example.bigquery; +// [START bigquery_get_dataset] import com.google.api.gax.paging.Page; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQuery.TableListOption; @@ -25,7 +26,6 @@ import com.google.cloud.bigquery.DatasetId; import com.google.cloud.bigquery.Table; -// [START bigquery_get_dataset] public class GetDatasetInfo { public static void runGetDatasetInfo() { From 41ec3a7773b546b49b9983a6fee73d7581b9b9d6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 31 Jan 2020 01:30:25 +0100 Subject: [PATCH 0337/3441] deps: update core dependencies (#122) --- pom.xml | 6 +++--- samples/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 32344efb1441..80adf438b3f7 100644 --- a/pom.xml +++ b/pom.xml @@ -63,11 +63,11 @@ UTF-8 github google-cloud-bigquery-parent - 1.92.2 + 1.92.3 1.8.1 1.17.0 1.53.0 - 1.26.0 + 1.27.0 3.11.1 4.13 28.2-android @@ -98,7 +98,7 @@ com.google.auth google-auth-library-oauth2-http - 0.19.0 + 0.20.0 org.checkerframework diff --git a/samples/pom.xml b/samples/pom.xml index 33c2e783e2e8..10bbf466623d 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -64,12 +64,12 @@ com.google.cloud google-cloud-core - 1.92.2 + 1.92.3 com.google.auth google-auth-library-oauth2-http - 0.19.0 + 0.20.0 From 1f719fb5dda9bd0198004c9622614ab469d1b2ea Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 31 Jan 2020 21:48:00 +0530 Subject: [PATCH 0338/3441] fix: missing fields in tablefield (#143) --- .../src/main/java/com/google/cloud/bigquery/BigQuery.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 4779c7161b0e..5ece9cb0e28e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -92,12 +92,14 @@ enum TableField implements FieldSelector { LAST_MODIFIED_TIME("lastModifiedTime"), LOCATION("location"), NUM_BYTES("numBytes"), + NUM_LONG_TERM_BYTES("numLongTermBytes"), NUM_ROWS("numRows"), SCHEMA("schema"), SELF_LINK("selfLink"), STREAMING_BUFFER("streamingBuffer"), TABLE_REFERENCE("tableReference"), TIME_PARTITIONING("timePartitioning"), + RANGE_PARTITIONING("rangePartitioning"), TYPE("type"), VIEW("view"); From d8a10fa891121495ac06a62adac51ac534bb215d Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 31 Jan 2020 08:55:29 -0800 Subject: [PATCH 0339/3441] chore: group guava with other core dependencies --- renovate.json | 3 +- synth.metadata | 797 +------------------------------------------------ 2 files changed, 5 insertions(+), 795 deletions(-) diff --git a/renovate.json b/renovate.json index a5cdff45c319..268a4669abfd 100644 --- a/renovate.json +++ b/renovate.json @@ -22,7 +22,8 @@ "^com.google.api:gax", "^com.google.auth:", "^com.google.cloud:google-cloud-core", - "^io.grpc:" + "^io.grpc:", + "^com.google.guava:" ], "groupName": "core dependencies" }, diff --git a/synth.metadata b/synth.metadata index aec8612a8187..61d10e646ac5 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2020-01-16T08:36:12.782452Z", + "updateTime": "2020-01-31T08:35:50.704874Z", "sources": [ { "generator": { "name": "artman", - "version": "0.44.0", - "dockerImage": "googleapis/artman@sha256:10a6d0342b8d62544810ac5ad86c3b21049ec0696608ac60175da8e513234344" + "version": "0.44.4", + "dockerImage": "googleapis/artman@sha256:19e945954fc960a4bdfee6cb34695898ab21a8cf0bac063ee39b91f00a1faec8" } }, { @@ -15,796 +15,5 @@ "version": "2019.10.17" } } - ], - "newFiles": [ - { - "path": "pom.xml" - }, - { - "path": ".repo-metadata.json" - }, - { - "path": "java.header" - }, - { - "path": "CONTRIBUTING.md" - }, - { - "path": "synth.metadata" - }, - { - "path": "renovate.json" - }, - { - "path": "versions.txt" - }, - { - "path": "synth.py" - }, - { - "path": "license-checks.xml" - }, - { - "path": "CHANGELOG.md" - }, - { - "path": "CODE_OF_CONDUCT.md" - }, - { - "path": "LICENSE" - }, - { - "path": "codecov.yaml" - }, - { - "path": ".gitignore" - }, - { - "path": "README.md" - }, - { - "path": "google-cloud-bigquery/pom.xml" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java" - }, - { - "path": "google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java" - }, - { - "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java" - }, - { - "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/queries.json" - }, - { - "path": "google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/README.md" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java" - }, - { - "path": "google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java" - }, - { - "path": "samples/pom.xml" - }, - { - "path": "samples/README.md" - }, - { - "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/RunLegacyQueryIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/DeleteTableIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/AddEmptyColumnIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/SimpleAppIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/ListDatasetsIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/CreateDatasetIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/RelaxColumnModeIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/CreateTableIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/LoadParquetIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java" - }, - { - "path": "samples/src/test/java/com/example/bigquery/GetDatasetInfoIT.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/RunLegacyQuery.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/ListDatasets.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/DeleteTable.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/CreateTable.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/RelaxColumnMode.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/AuthSnippets.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/DeleteDataset.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/SimpleApp.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/LoadParquet.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/ExtractTableToJson.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/GetDatasetInfo.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/AddEmptyColumn.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/CreateDataset.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/CopyMultipleTables.java" - }, - { - "path": "samples/src/main/java/com/example/bigquery/QuickstartSample.java" - }, - { - "path": ".github/release-please.yml" - }, - { - "path": ".github/PULL_REQUEST_TEMPLATE.md" - }, - { - "path": ".github/CODEOWNERS" - }, - { - "path": ".github/ISSUE_TEMPLATE/feature_request.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/support_request.md" - }, - { - "path": ".github/ISSUE_TEMPLATE/bug_report.md" - }, - { - "path": ".kokoro/build.sh" - }, - { - "path": ".kokoro/common.cfg" - }, - { - "path": ".kokoro/build.bat" - }, - { - "path": ".kokoro/linkage-monitor.sh" - }, - { - "path": ".kokoro/coerce_logs.sh" - }, - { - "path": ".kokoro/dependencies.sh" - }, - { - "path": ".kokoro/trampoline.sh" - }, - { - "path": ".kokoro/run_samples_tests.sh" - }, - { - "path": ".kokoro/continuous/samples.cfg" - }, - { - "path": ".kokoro/continuous/java8.cfg" - }, - { - "path": ".kokoro/continuous/integration.cfg" - }, - { - "path": ".kokoro/continuous/java11.cfg" - }, - { - "path": ".kokoro/continuous/propose_release.cfg" - }, - { - "path": ".kokoro/continuous/common.cfg" - }, - { - "path": ".kokoro/continuous/java11-samples.cfg" - }, - { - "path": ".kokoro/continuous/propose_release.sh" - }, - { - "path": ".kokoro/continuous/java7.cfg" - }, - { - "path": ".kokoro/continuous/lint.cfg" - }, - { - "path": ".kokoro/continuous/java8-osx.cfg" - }, - { - "path": ".kokoro/continuous/dependencies.cfg" - }, - { - "path": ".kokoro/continuous/java8-win.cfg" - }, - { - "path": ".kokoro/continuous/java8-samples.cfg" - }, - { - "path": ".kokoro/nightly/samples.cfg" - }, - { - "path": ".kokoro/nightly/java8.cfg" - }, - { - "path": ".kokoro/nightly/integration.cfg" - }, - { - "path": ".kokoro/nightly/java11.cfg" - }, - { - "path": ".kokoro/nightly/common.cfg" - }, - { - "path": ".kokoro/nightly/java11-samples.cfg" - }, - { - "path": ".kokoro/nightly/java7.cfg" - }, - { - "path": ".kokoro/nightly/lint.cfg" - }, - { - "path": ".kokoro/nightly/java8-osx.cfg" - }, - { - "path": ".kokoro/nightly/dependencies.cfg" - }, - { - "path": ".kokoro/nightly/java8-win.cfg" - }, - { - "path": ".kokoro/nightly/java8-samples.cfg" - }, - { - "path": ".kokoro/release/publish_javadoc.cfg" - }, - { - "path": ".kokoro/release/common.sh" - }, - { - "path": ".kokoro/release/promote.sh" - }, - { - "path": ".kokoro/release/common.cfg" - }, - { - "path": ".kokoro/release/publish_javadoc.sh" - }, - { - "path": ".kokoro/release/drop.sh" - }, - { - "path": ".kokoro/release/stage.sh" - }, - { - "path": ".kokoro/release/promote.cfg" - }, - { - "path": ".kokoro/release/snapshot.cfg" - }, - { - "path": ".kokoro/release/bump_snapshot.cfg" - }, - { - "path": ".kokoro/release/drop.cfg" - }, - { - "path": ".kokoro/release/bump_snapshot.sh" - }, - { - "path": ".kokoro/release/stage.cfg" - }, - { - "path": ".kokoro/release/snapshot.sh" - }, - { - "path": ".kokoro/presubmit/samples.cfg" - }, - { - "path": ".kokoro/presubmit/java8.cfg" - }, - { - "path": ".kokoro/presubmit/integration.cfg" - }, - { - "path": ".kokoro/presubmit/java11.cfg" - }, - { - "path": ".kokoro/presubmit/linkage-monitor.cfg" - }, - { - "path": ".kokoro/presubmit/common.cfg" - }, - { - "path": ".kokoro/presubmit/java11-samples.cfg" - }, - { - "path": ".kokoro/presubmit/java7.cfg" - }, - { - "path": ".kokoro/presubmit/lint.cfg" - }, - { - "path": ".kokoro/presubmit/java8-osx.cfg" - }, - { - "path": ".kokoro/presubmit/dependencies.cfg" - }, - { - "path": ".kokoro/presubmit/clirr.cfg" - }, - { - "path": ".kokoro/presubmit/java8-win.cfg" - }, - { - "path": ".kokoro/presubmit/java8-samples.cfg" - } ] } \ No newline at end of file From e30b3d7701d3d255fe5e32d6b25a5b28f7fd94e0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 31 Jan 2020 19:43:44 +0100 Subject: [PATCH 0340/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.103.1 (#130) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 80adf438b3f7..17f3d9f1f668 100644 --- a/pom.xml +++ b/pom.xml @@ -197,7 +197,7 @@ com.google.cloud google-cloud-storage - 1.103.0 + 1.103.1 test From 0337462ce57093ae9990d36cc285e378bf939061 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 31 Jan 2020 16:21:36 -0500 Subject: [PATCH 0341/3441] sample: fix region tag (#145) * sample: fix region tag * sample: fix region tag --- samples/src/main/java/com/example/bigquery/GetModel.java | 2 +- samples/src/main/java/com/example/bigquery/ListModels.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/src/main/java/com/example/bigquery/GetModel.java b/samples/src/main/java/com/example/bigquery/GetModel.java index e51b3fd83832..8291447a3c32 100644 --- a/samples/src/main/java/com/example/bigquery/GetModel.java +++ b/samples/src/main/java/com/example/bigquery/GetModel.java @@ -16,13 +16,13 @@ package com.example.bigquery; +// [START bigquery_get_model] import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Model; import com.google.cloud.bigquery.ModelId; -// [START bigquery_get_model] public class GetModel { public static void runGetModel() { diff --git a/samples/src/main/java/com/example/bigquery/ListModels.java b/samples/src/main/java/com/example/bigquery/ListModels.java index 3a0cbae4e465..577439b82265 100644 --- a/samples/src/main/java/com/example/bigquery/ListModels.java +++ b/samples/src/main/java/com/example/bigquery/ListModels.java @@ -16,6 +16,7 @@ package com.example.bigquery; +// [START bigquery_list_models] import com.google.api.gax.paging.Page; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQuery.ModelListOption; @@ -23,7 +24,6 @@ import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Model; -// [START bigquery_list_models] public class ListModels { public static void runListModels() { From e619233c9309a4b2f16f117017df53ec997b898e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 3 Feb 2020 17:07:56 +0100 Subject: [PATCH 0342/3441] deps: update dependency com.google.protobuf:protobuf-java to v3.11.3 (#147) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 17f3d9f1f668..614df41cc207 100644 --- a/pom.xml +++ b/pom.xml @@ -68,7 +68,7 @@ 1.17.0 1.53.0 1.27.0 - 3.11.1 + 3.11.3 4.13 28.2-android 1.4.1 From c6622b814a84e8b05ad35e87e9bf55611fb8bb28 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 3 Feb 2020 17:08:16 +0100 Subject: [PATCH 0343/3441] deps: update core dependencies (#144) --- pom.xml | 4 ++-- samples/pom.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 614df41cc207..852d5243a201 100644 --- a/pom.xml +++ b/pom.xml @@ -63,10 +63,10 @@ UTF-8 github google-cloud-bigquery-parent - 1.92.3 + 1.92.4 1.8.1 1.17.0 - 1.53.0 + 1.53.1 1.27.0 3.11.3 4.13 diff --git a/samples/pom.xml b/samples/pom.xml index 10bbf466623d..7a02ce030f46 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -59,12 +59,12 @@ com.google.api gax - 1.53.0 + 1.53.1 com.google.cloud google-cloud-core - 1.92.3 + 1.92.4 com.google.auth From 8b5a2e23fbc043d323ce1e07f40ceb2886ec7697 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 3 Feb 2020 08:09:02 -0800 Subject: [PATCH 0344/3441] feat: re-generated to pick up changes in the API or client library generator. (#146) --- .kokoro/linkage-monitor.sh | 7 ++++++- synth.metadata | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.kokoro/linkage-monitor.sh b/.kokoro/linkage-monitor.sh index 57513514cccb..a271e647c312 100755 --- a/.kokoro/linkage-monitor.sh +++ b/.kokoro/linkage-monitor.sh @@ -23,7 +23,12 @@ cd github/java-bigquery/ java -version echo ${JOB_TYPE} -mvn install -DskipTests=true -Dmaven.javadoc.skip=true -Dgcloud.download.skip=true -B -V +mvn install -B -V \ + -DskipTests=true \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -Dmaven.javadoc.skip=true \ + -Dgcloud.download.skip=true # Kokoro job cloud-opensource-java/ubuntu/linkage-monitor-gcs creates this JAR JAR=linkage-monitor-latest-all-deps.jar diff --git a/synth.metadata b/synth.metadata index 61d10e646ac5..e98f19de389d 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2020-01-31T08:35:50.704874Z", + "updateTime": "2020-02-01T08:34:31.377166Z", "sources": [ { "generator": { From f2a45439089ca9382debd9e89edec5f829d4b357 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 3 Feb 2020 11:14:33 -0500 Subject: [PATCH 0345/3441] sample: update region tag (#148) * sample: update region tag * sample: update region tag --- .../main/java/com/example/bigquery/AddColumnLoadAppend.java | 4 ++-- .../src/main/java/com/example/bigquery/RelaxTableQuery.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java b/samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java index 935c1171f08c..c529272fc21b 100644 --- a/samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java +++ b/samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java @@ -16,7 +16,7 @@ package com.example.bigquery; -// [START bigquery_relax_column_load_append] +// [START bigquery_add_column_load_append] import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; @@ -98,4 +98,4 @@ public static void addColumnLoadAppend(String datasetName, String tableName, Str } } } -// [END bigquery_relax_column_load_append] +// [END bigquery_add_column_load_append] diff --git a/samples/src/main/java/com/example/bigquery/RelaxTableQuery.java b/samples/src/main/java/com/example/bigquery/RelaxTableQuery.java index 8ed3ea1d481b..ad3e24d6367e 100644 --- a/samples/src/main/java/com/example/bigquery/RelaxTableQuery.java +++ b/samples/src/main/java/com/example/bigquery/RelaxTableQuery.java @@ -16,7 +16,7 @@ package com.example.bigquery; -// [START bigquery_relax_column_query_append] +// [START bigquery_add_column_query_append] import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; @@ -92,4 +92,4 @@ public static void relaxTableQuery(String projectId, String datasetName, String } } } -// [END bigquery_relax_column_query_append] +// [END bigquery_add_column_query_append] From 99552037a0e20b0178e885370aa871d2824b7f1a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 3 Feb 2020 17:25:19 +0100 Subject: [PATCH 0346/3441] deps: update dependency com.google.cloud:libraries-bom to v3.5.0 (#149) --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index 7a02ce030f46..4e8991b1058e 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -43,7 +43,7 @@ com.google.cloud libraries-bom - 3.4.0 + 3.5.0 pom import From 9dde9a6c2c8f7c0ac5e76f49d8d226550150381b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 3 Feb 2020 11:25:57 -0500 Subject: [PATCH 0347/3441] chore: release 1.106.0 (#150) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/pom.xml [ci skip] --- CHANGELOG.md | 21 +++++++++++++++++++++ README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 5 files changed, 29 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41fc796ea617..61708ac203c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,26 @@ # Changelog +## [1.106.0](https://www.github.com/googleapis/java-bigquery/compare/v1.105.0...v1.106.0) (2020-02-03) + + +### Features + +* re-generated to pick up changes in the API or client library generator. ([#146](https://www.github.com/googleapis/java-bigquery/issues/146)) ([8b5a2e2](https://www.github.com/googleapis/java-bigquery/commit/8b5a2e23fbc043d323ce1e07f40ceb2886ec7697)) + + +### Bug Fixes + +* missing fields in tablefield ([#143](https://www.github.com/googleapis/java-bigquery/issues/143)) ([1f719fb](https://www.github.com/googleapis/java-bigquery/commit/1f719fb5dda9bd0198004c9622614ab469d1b2ea)) + + +### Dependencies + +* bump hamcrest dep version and artifactId ([#136](https://www.github.com/googleapis/java-bigquery/issues/136)) ([fc255cd](https://www.github.com/googleapis/java-bigquery/commit/fc255cd320735b24b1105d0512d6e1d20f95d031)) +* update core dependencies ([#122](https://www.github.com/googleapis/java-bigquery/issues/122)) ([41ec3a7](https://www.github.com/googleapis/java-bigquery/commit/41ec3a7773b546b49b9983a6fee73d7581b9b9d6)) +* update core dependencies ([#144](https://www.github.com/googleapis/java-bigquery/issues/144)) ([c6622b8](https://www.github.com/googleapis/java-bigquery/commit/c6622b814a84e8b05ad35e87e9bf55611fb8bb28)) +* update dependency com.google.cloud:google-cloud-storage to v1.103.1 ([#130](https://www.github.com/googleapis/java-bigquery/issues/130)) ([e30b3d7](https://www.github.com/googleapis/java-bigquery/commit/e30b3d7701d3d255fe5e32d6b25a5b28f7fd94e0)) +* update dependency com.google.protobuf:protobuf-java to v3.11.3 ([#147](https://www.github.com/googleapis/java-bigquery/issues/147)) ([e619233](https://www.github.com/googleapis/java-bigquery/commit/e619233c9309a4b2f16f117017df53ec997b898e)) + ## [1.105.0](https://www.github.com/googleapis/java-bigquery/compare/v1.104.0...v1.105.0) (2020-01-28) diff --git a/README.md b/README.md index 1e039353bbde..acb4556ed2ed 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.105.0 + 1.106.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.105.0' +compile 'com.google.cloud:google-cloud-bigquery:1.106.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.105.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.106.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1a43ff37c715..e6122cd19851 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.105.1-SNAPSHOT + 1.106.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.105.1-SNAPSHOT + 1.106.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 852d5243a201..be45ed4e4bc4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.105.1-SNAPSHOT + 1.106.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -113,7 +113,7 @@ com.google.cloud google-cloud-bigquery - 1.105.1-SNAPSHOT + 1.106.0 diff --git a/versions.txt b/versions.txt index 7cb776419216..88a349f2b31e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.105.0:1.105.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.106.0:1.106.0 \ No newline at end of file From e4aa7240a16b484fef6e1be3791afd5cc3a665a9 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 3 Feb 2020 13:14:06 -0500 Subject: [PATCH 0348/3441] chore: release 1.106.1-SNAPSHOT (#152) * updated versions.txt [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/pom.xml [ci skip] --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e6122cd19851..61fceb9c2e1c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.106.0 + 1.106.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.106.0 + 1.106.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index be45ed4e4bc4..0baf2b99e995 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.106.0 + 1.106.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -113,7 +113,7 @@ com.google.cloud google-cloud-bigquery - 1.106.0 + 1.106.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 88a349f2b31e..79421c9500c5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.106.0:1.106.0 \ No newline at end of file +google-cloud-bigquery:1.106.0:1.106.1-SNAPSHOT \ No newline at end of file From e060aba2ed030a13e50f5e0f5597b3e04ad9c292 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 4 Feb 2020 20:26:19 +0530 Subject: [PATCH 0349/3441] docs: broken links (#154) --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index acb4556ed2ed..05071bc48e37 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.106.0" Example Application ------------------- -- [`BigQueryExample`](../../google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/BigQueryExample.java) - A simple command line interface providing some of Cloud BigQuery's functionality. +- [`BigQueryExample`](https://github.com/googleapis/google-cloud-java/blob/master/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/BigQueryExample.java) - A simple command line interface providing some of Cloud BigQuery's functionality. Read more about using this application on the [`BigQueryExample` docs page](https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/examples/bigquery/BigQueryExample.html). Authentication @@ -205,7 +205,7 @@ for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) { #### Complete source code In -[InsertDataAndQueryTable.java](../../google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/InsertDataAndQueryTable.java) +[InsertDataAndQueryTable.java](https://github.com/googleapis/google-cloud-java/blob/master/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/InsertDataAndQueryTable.java) we put together all the code shown above into one program. The program assumes that you are running on Compute Engine or from your own desktop. To run the example on App Engine, simply move the code from the main method to your application's servlet class and change the print statements to From 95e4ff068dd8650ec0acebbe23e958c6e361ed36 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 6 Feb 2020 18:11:11 +0100 Subject: [PATCH 0350/3441] deps: update dependency com.google.cloud:libraries-bom to v4 (#159) --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index 4e8991b1058e..181f8a0c0e4e 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -43,7 +43,7 @@ com.google.cloud libraries-bom - 3.5.0 + 4.0.0 pom import From 27951726accda521a7dbe2c1ba240307475dd8e3 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 6 Feb 2020 14:30:18 -0500 Subject: [PATCH 0351/3441] samples: load table clustered (#157) * feat: sample - query with positional params * sample: add new - load clustered table * fix build error --- .../example/bigquery/LoadTableClustered.java | 95 +++++++++++++++++++ .../bigquery/LoadTableClusteredIT.java | 72 ++++++++++++++ 2 files changed, 167 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/LoadTableClustered.java create mode 100644 samples/src/test/java/com/example/bigquery/LoadTableClusteredIT.java diff --git a/samples/src/main/java/com/example/bigquery/LoadTableClustered.java b/samples/src/main/java/com/example/bigquery/LoadTableClustered.java new file mode 100644 index 000000000000..7d4987d118fc --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/LoadTableClustered.java @@ -0,0 +1,95 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_clustered] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Clustering; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TimePartitioning; +import com.google.common.collect.ImmutableList; + +public class LoadTableClustered { + + public static void runLoadTableClustered() throws Exception { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "/path/to/file.csv"; + loadTableClustered(datasetName, tableName, sourceUri); + } + + public static void loadTableClustered(String datasetName, String tableName, String sourceUri) + throws Exception { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); + + TimePartitioning partitioning = TimePartitioning.of(TimePartitioning.Type.DAY); + + Clustering clustering = + Clustering.newBuilder().setFields(ImmutableList.of("name", "post_abbr")).build(); + + LoadJobConfiguration loadJobConfig = + LoadJobConfiguration.builder(tableId, sourceUri) + .setFormatOptions(FormatOptions.csv()) + .setSchema(schema) + .setTimePartitioning(partitioning) + .setClustering(clustering) + .build(); + + Job loadJob = bigquery.create(JobInfo.newBuilder(loadJobConfig).build()); + + // Load data from a GCS parquet file into the table + // Blocks until this load table job completes its execution, either failing or succeeding. + Job completedJob = loadJob.waitFor(); + + // Check for errors + if (completedJob == null) { + throw new Exception("Job not executed since it no longer exists."); + } else if (completedJob.getStatus().getError() != null) { + // You can also look at queryJob.getStatus().getExecutionErrors() for all + // errors, not just the latest one. + throw new Exception( + "BigQuery was unable to load into the table due to an error: \n" + + loadJob.getStatus().getError()); + } + System.out.println("Data successfully loaded into clustered table during load job"); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Data not loaded into clustered table during load job \n" + e.toString()); + } + } +} +// [END bigquery_load_table_clustered] diff --git a/samples/src/test/java/com/example/bigquery/LoadTableClusteredIT.java b/samples/src/test/java/com/example/bigquery/LoadTableClusteredIT.java new file mode 100644 index 000000000000..968235e4bd02 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/LoadTableClusteredIT.java @@ -0,0 +1,72 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadTableClusteredIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void loadTableClustered() throws Exception { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states-by-date-no-header.csv"; + + String tableName = "LOAD_CLUSTERED_TABLE_TEST"; + + LoadTableClustered.loadTableClustered(BIGQUERY_DATASET_NAME, tableName, sourceUri); + + assertThat(bout.toString()) + .contains("Data successfully loaded into clustered table during load job"); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + } +} From 6ea41413aed3d6cc81b9c4995a21f1017e268c74 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 11 Feb 2020 16:49:17 +0100 Subject: [PATCH 0352/3441] deps: update core dependencies to v1.92.5 (#162) --- pom.xml | 2 +- samples/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 0baf2b99e995..2d519d1bf283 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - 1.92.4 + 1.92.5 1.8.1 1.17.0 1.53.1 diff --git a/samples/pom.xml b/samples/pom.xml index 181f8a0c0e4e..6ec0c946353c 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -64,7 +64,7 @@ com.google.cloud google-cloud-core - 1.92.4 + 1.92.5 com.google.auth From 7026010d5d4dd0b8b30b1e02c4d4f10411288aa7 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Tue, 11 Feb 2020 09:50:19 -0800 Subject: [PATCH 0353/3441] chore: only allow renovate-bot for trusted-contribution auto-labeling (#163) --- .github/trusted-contribution.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .github/trusted-contribution.yml diff --git a/.github/trusted-contribution.yml b/.github/trusted-contribution.yml new file mode 100644 index 000000000000..f247d5c78934 --- /dev/null +++ b/.github/trusted-contribution.yml @@ -0,0 +1,2 @@ +trustedContributors: +- renovate-bot \ No newline at end of file From 53802f527d36a69c7678d66277afa2b8cd900228 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 12 Feb 2020 13:48:45 -0500 Subject: [PATCH 0354/3441] samples: listTables (#164) * samples: ListTables * fix build error --- .../java/com/example/bigquery/ListTables.java | 53 +++++++++++++++++++ .../com/example/bigquery/ListTablesIT.java | 49 +++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/ListTables.java create mode 100644 samples/src/test/java/com/example/bigquery/ListTablesIT.java diff --git a/samples/src/main/java/com/example/bigquery/ListTables.java b/samples/src/main/java/com/example/bigquery/ListTables.java new file mode 100644 index 000000000000..af42c7fc0bc7 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/ListTables.java @@ -0,0 +1,53 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_list_tables] +import com.google.api.gax.paging.Page; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.TableListOption; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.Table; + +public class ListTables { + + public static void runListTables() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "bigquery-public-data"; + String datasetName = "samples"; + listTables(projectId, datasetName); + } + + public static void listTables(String projectId, String datasetName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + DatasetId datasetId = DatasetId.of(projectId, datasetName); + Page
    tables = bigquery.listTables(datasetId, TableListOption.pageSize(100)); + tables.iterateAll().forEach(table -> System.out.print(table.getTableId().getTable() + "\n")); + + System.out.println("Tables listed successfully."); + } catch (BigQueryException e) { + System.out.println("Tables were not listed. Error occurred: " + e.toString()); + } + } +} +// [END bigquery_list_tables] diff --git a/samples/src/test/java/com/example/bigquery/ListTablesIT.java b/samples/src/test/java/com/example/bigquery/ListTablesIT.java new file mode 100644 index 000000000000..1892276d948e --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/ListTablesIT.java @@ -0,0 +1,49 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ListTablesIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testListTables() { + // List tables in bigquery-public-data:samples dataset + ListTables.listTables("bigquery-public-data", "samples"); + assertThat(bout.toString()).contains("Tables listed successfully."); + } +} From 0d2be224ff88af3dc5279ae27c9b7f184042682d Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 12 Feb 2020 14:16:15 -0500 Subject: [PATCH 0355/3441] samples: getTable (#165) * samples: getTable * nit updates --- .../java/com/example/bigquery/GetTable.java | 50 +++++++++++++++++++ .../java/com/example/bigquery/GetTableIT.java | 49 ++++++++++++++++++ .../com/example/bigquery/ListDatasetsIT.java | 2 +- 3 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 samples/src/main/java/com/example/bigquery/GetTable.java create mode 100644 samples/src/test/java/com/example/bigquery/GetTableIT.java diff --git a/samples/src/main/java/com/example/bigquery/GetTable.java b/samples/src/main/java/com/example/bigquery/GetTable.java new file mode 100644 index 000000000000..d9b4716318d7 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/GetTable.java @@ -0,0 +1,50 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_get_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; + +public class GetTable { + + public static void runGetTable() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "bigquery_public_data"; + String datasetName = "samples"; + String tableName = "shakespeare"; + getTable(projectId, datasetName, tableName); + } + + public static void getTable(String projectId, String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(projectId, datasetName, tableName); + Table table = bigquery.getTable(tableId); + System.out.println("Table info: " + table.getDescription()); + } catch (BigQueryException e) { + System.out.println("Table not retrieved. \n" + e.toString()); + } + } +} +// [END bigquery_get_table] diff --git a/samples/src/test/java/com/example/bigquery/GetTableIT.java b/samples/src/test/java/com/example/bigquery/GetTableIT.java new file mode 100644 index 000000000000..fafbbadb18cc --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/GetTableIT.java @@ -0,0 +1,49 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class GetTableIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testGetTable() { + // Get shakespeare table from bigquery-public-data:samples dataset + GetTable.getTable("bigquery-public-data", "samples", "shakespeare"); + assertThat(bout.toString()).contains("Table info:"); + } +} diff --git a/samples/src/test/java/com/example/bigquery/ListDatasetsIT.java b/samples/src/test/java/com/example/bigquery/ListDatasetsIT.java index 6e44e599bb71..617246ff9270 100644 --- a/samples/src/test/java/com/example/bigquery/ListDatasetsIT.java +++ b/samples/src/test/java/com/example/bigquery/ListDatasetsIT.java @@ -41,7 +41,7 @@ public void tearDown() { } @Test - public void listDatasets() { + public void testListDatasets() { // List datasets in bigquery-public-data project ListDatasets.listDatasets("bigquery-public-data"); assertThat(bout.toString()).contains("Success! Dataset ID"); From 54872ba95ff0903817df217dfa6da883d43e6ace Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 12 Feb 2020 20:16:46 +0100 Subject: [PATCH 0356/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20191211-1.30.8 (#161) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2d519d1bf283..5dfe3683ac36 100644 --- a/pom.xml +++ b/pom.xml @@ -74,7 +74,7 @@ 1.4.1 1.3.2 1.18 - v2-rev20191211-1.30.3 + v2-rev20191211-1.30.8 From 384da35fc6ad47ede9f4a4896065e6ae9e06c49f Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 12 Feb 2020 21:39:49 -0500 Subject: [PATCH 0357/3441] samples: update table expiration (#166) --- .../bigquery/UpdateTableExpiration.java | 53 +++++++++++++++ .../bigquery/UpdateTableExpirationIT.java | 65 +++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/UpdateTableExpiration.java create mode 100644 samples/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java diff --git a/samples/src/main/java/com/example/bigquery/UpdateTableExpiration.java b/samples/src/main/java/com/example/bigquery/UpdateTableExpiration.java new file mode 100644 index 000000000000..a5d9abedb770 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/UpdateTableExpiration.java @@ -0,0 +1,53 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_table_expiration] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Table; +import java.util.concurrent.TimeUnit; + +public class UpdateTableExpiration { + + public static void runUpdateTableExpiration() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + updateTableExpiration(datasetName, tableName); + } + + public static void updateTableExpiration(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Update table expiration to one day + Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); + + Table table = bigquery.getTable(datasetName, tableName); + bigquery.update(table.toBuilder().setExpirationTime(newExpiration).build()); + + System.out.println("Table expiration updated successfully to " + newExpiration); + } catch (BigQueryException e) { + System.out.println("Table expiration was not updated \n" + e.toString()); + } + } +} +// [END bigquery_update_table_expiration] diff --git a/samples/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java b/samples/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java new file mode 100644 index 000000000000..833d3ce0d102 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java @@ -0,0 +1,65 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class UpdateTableExpirationIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void updateTableExpiration() { + String tableName = "update_expiration_table"; + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, null); + UpdateTableExpiration.updateTableExpiration(BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Table expiration updated successfully"); + } +} From 633ea52ddc3677e8091c1f69283a864929227a17 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 13 Feb 2020 17:11:57 +0100 Subject: [PATCH 0358/3441] deps: update dependency com.google.cloud:libraries-bom to v4.0.1 (#167) --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index 6ec0c946353c..b30ba1268433 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -43,7 +43,7 @@ com.google.cloud libraries-bom - 4.0.0 + 4.0.1 pom import From 4a82b3cd1aa821d72efc7046329db075c10ae344 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 18 Feb 2020 04:49:49 +0530 Subject: [PATCH 0359/3441] feat: expose slotms field in querystage (#172) --- .../com/google/cloud/bigquery/QueryStage.java | 24 ++++++++++++++++--- .../google/cloud/bigquery/QueryStageTest.java | 7 ++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java index 825d653dc753..5fc37b98e2b5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java @@ -163,6 +163,7 @@ static QueryStep fromPb(com.google.api.services.bigquery.model.ExplainQueryStep private final long writeMsMax; private final double writeRatioAvg; private final double writeRatioMax; + private final long slotMs; static final class Builder { @@ -195,6 +196,7 @@ static final class Builder { private long writeMsMax; private double writeRatioAvg; private double writeRatioMax; + private long slotMs; private Builder() {} @@ -343,6 +345,11 @@ Builder setWriteRatioMax(double writeRatioMax) { return this; } + Builder setSlotMs(long slotMs) { + this.slotMs = slotMs; + return this; + } + QueryStage build() { return new QueryStage(this); } @@ -378,6 +385,7 @@ QueryStage build() { writeMsMax = builder.writeMsMax; writeRatioAvg = builder.writeRatioAvg; writeRatioMax = builder.writeRatioMax; + slotMs = builder.slotMs; } /** Returns the number of parallel input segments completed. */ @@ -551,6 +559,11 @@ public double getWriteRatioMax() { return writeRatioMax; } + /** Returns the slot-milliseconds used by the stage. */ + public long getSlotMs() { + return slotMs; + } + @Override public String toString() { return MoreObjects.toStringHelper(this) @@ -583,6 +596,7 @@ public String toString() { .add("writeMsMax", writeMsMax) .add("writeRatioAvg", writeRatioAvg) .add("writeRatioMax", writeRatioMax) + .add("slotMs", slotMs) .toString(); } @@ -617,7 +631,8 @@ public final int hashCode() { writeMsAvg, writeMsMax, writeRatioAvg, - writeRatioMax); + writeRatioMax, + slotMs); } @Override @@ -657,7 +672,8 @@ public final boolean equals(Object obj) { && Objects.equals(steps, other.steps) && Objects.equals(name, other.name) && Objects.equals(status, other.status) - && Objects.equals(inputStages, other.inputStages); + && Objects.equals(inputStages, other.inputStages) + && Objects.equals(slotMs, other.slotMs); } static Builder newBuilder() { @@ -694,7 +710,8 @@ ExplainQueryStage toPb() { .setWriteMsAvg(writeMsAvg) .setWriteMsMax(writeMsMax) .setWriteRatioAvg(writeRatioAvg) - .setWriteRatioMax(writeRatioMax); + .setWriteRatioMax(writeRatioMax) + .setSlotMs(slotMs); if (steps != null) { stagePb.setSteps(Lists.transform(steps, QueryStep.TO_PB_FUNCTION)); } @@ -734,6 +751,7 @@ static QueryStage fromPb(com.google.api.services.bigquery.model.ExplainQueryStag builder.setWriteMsMax(stagePb.getWriteMsMax()); builder.setWriteRatioAvg(stagePb.getWriteRatioAvg()); builder.setWriteRatioMax(stagePb.getWriteRatioMax()); + builder.setSlotMs(stagePb.getSlotMs()); return builder.build(); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java index 0c448516dbef..69edb39886b9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java @@ -59,6 +59,7 @@ public class QueryStageTest { private static final long WRITE_MS_MAX = 50; private static final double WRITE_RATIO_AVG = 9.9; private static final double WRITE_RATIO_MAX = 10.10; + private static final long SLOTMS = 1522540800000L; private static final QueryStage QUERY_STAGE = QueryStage.newBuilder() .setCompletedParallelInputs(COMPLETED_PARALLEL_INPUTS) @@ -90,6 +91,7 @@ public class QueryStageTest { .setWriteMsMax(WRITE_MS_MAX) .setWriteRatioAvg(WRITE_RATIO_AVG) .setWriteRatioMax(WRITE_RATIO_MAX) + .setSlotMs(SLOTMS) .build(); @Test @@ -112,6 +114,8 @@ public void testBuilder() { assertEquals(INPUT_STAGES, QUERY_STAGE.getInputStages()); assertEquals(PARALLEL_INPUTS, QUERY_STAGE.getParallelInputs()); assertEquals(NAME, QUERY_STAGE.getName()); + assertEquals(READ_MS_AVG, QUERY_STAGE.getReadMsAvg()); + assertEquals(READ_MS_MAX, QUERY_STAGE.getReadMsMax()); assertEquals(READ_RATIO_AVG, QUERY_STAGE.getReadRatioAvg(), 0); assertEquals(READ_RATIO_MAX, QUERY_STAGE.getReadRatioMax(), 0); assertEquals(RECORDS_READ, QUERY_STAGE.getRecordsRead()); @@ -129,6 +133,7 @@ public void testBuilder() { assertEquals(WRITE_MS_MAX, QUERY_STAGE.getWriteMsMax()); assertEquals(WRITE_RATIO_AVG, QUERY_STAGE.getWriteRatioAvg(), 0); assertEquals(WRITE_RATIO_MAX, QUERY_STAGE.getWriteRatioMax(), 0); + assertEquals(SLOTMS, QUERY_STAGE.getSlotMs()); } @Test @@ -178,7 +183,9 @@ private void compareQueryStage(QueryStage expected, QueryStage value) { assertEquals(expected.getWriteMsMax(), expected.getWriteMsMax()); assertEquals(expected.getWriteRatioAvg(), value.getWriteRatioAvg(), 0); assertEquals(expected.getWriteRatioMax(), value.getWriteRatioMax(), 0); + assertEquals(expected.getSlotMs(), value.getSlotMs()); assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); } private void compareQueryStep(QueryStep expected, QueryStep value) { From 6f292f52728992bfeb511b97b1dd778e1ef8db2c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 18 Feb 2020 00:20:07 +0100 Subject: [PATCH 0360/3441] deps: update dependency com.google.protobuf:protobuf-java to v3.11.4 (#171) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5dfe3683ac36..cfd3c01e47f7 100644 --- a/pom.xml +++ b/pom.xml @@ -68,7 +68,7 @@ 1.17.0 1.53.1 1.27.0 - 3.11.3 + 3.11.4 4.13 28.2-android 1.4.1 From 6aceddad33da3055b24a8ae0420c25d85cfb09fb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 18 Feb 2020 00:20:24 +0100 Subject: [PATCH 0361/3441] deps: update dependency com.google.cloud:libraries-bom to v4.1.0 (#170) --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index b30ba1268433..c19ef01319ea 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -43,7 +43,7 @@ com.google.cloud libraries-bom - 4.0.1 + 4.1.0 pom import From c35069d4e91939e51f2101f2b8f93d2f67c089c5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 18 Feb 2020 00:21:38 +0100 Subject: [PATCH 0362/3441] deps: update core transport dependencies to v1.34.2 (#168) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index cfd3c01e47f7..9ddc00c4605d 100644 --- a/pom.xml +++ b/pom.xml @@ -88,12 +88,12 @@ com.google.http-client google-http-client-jackson2 - 1.34.1 + 1.34.2 com.google.http-client google-http-client - 1.34.1 + 1.34.2 com.google.auth From 5212b2f892074be36204fa9ef3e2dff7474828eb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 18 Feb 2020 00:39:23 +0100 Subject: [PATCH 0363/3441] deps: update dependency io.grpc:grpc-bom to v1.27.1 (#169) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9ddc00c4605d..e4d41d7ca28e 100644 --- a/pom.xml +++ b/pom.xml @@ -67,7 +67,7 @@ 1.8.1 1.17.0 1.53.1 - 1.27.0 + 1.27.1 3.11.4 4.13 28.2-android From 646c2b43b2ccbc609e0d5b85a7e4fbf502bb1243 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 18 Feb 2020 23:30:55 +0530 Subject: [PATCH 0364/3441] feat: expose location field of model (#175) --- .../java/com/google/cloud/bigquery/Model.java | 6 ++++++ .../com/google/cloud/bigquery/ModelInfo.java | 20 +++++++++++++++++++ .../google/cloud/bigquery/ModelInfoTest.java | 5 +++++ 3 files changed, 31 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java index abe1f0f2ba77..64ef0e4a7345 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java @@ -108,6 +108,12 @@ public Builder setLabels(Map labels) { return this; } + @Override + Builder setLocation(String location) { + infoBuilder.setLocation(location); + return this; + } + @Override Builder setTrainingRuns(List trainingRunList) { infoBuilder.setTrainingRuns(trainingRunList); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java index 5796c820f306..83603cbd2395 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java @@ -68,6 +68,7 @@ public Model apply(ModelInfo ModelInfo) { private final Long lastModifiedTime; private final Long expirationTime; private final Labels labels; + private final String location; private final ImmutableList trainingRunList; private final ImmutableList featureColumnList; private final ImmutableList labelColumnList; @@ -97,6 +98,8 @@ public abstract static class Builder { */ public abstract Builder setLabels(Map labels); + abstract Builder setLocation(String location); + public abstract Builder setModelId(ModelId modelId); abstract Builder setEtag(String etag); @@ -130,6 +133,7 @@ static class BuilderImpl extends Builder { private Long lastModifiedTime; private Long expirationTime; private Labels labels = Labels.ZERO; + private String location; private List trainingRunList = Collections.emptyList(); private List labelColumnList = Collections.emptyList(); private List featureColumnList = Collections.emptyList(); @@ -150,6 +154,7 @@ static class BuilderImpl extends Builder { this.labelColumnList = modelInfo.labelColumnList; this.featureColumnList = modelInfo.featureColumnList; this.encryptionConfiguration = modelInfo.encryptionConfiguration; + this.location = modelInfo.location; } BuilderImpl(Model modelPb) { @@ -165,6 +170,7 @@ static class BuilderImpl extends Builder { this.lastModifiedTime = modelPb.getLastModifiedTime(); this.expirationTime = modelPb.getExpirationTime(); this.labels = Labels.fromPb(modelPb.getLabels()); + this.location = modelPb.getLocation(); if (modelPb.getTrainingRuns() != null) { this.trainingRunList = modelPb.getTrainingRuns(); } @@ -236,6 +242,12 @@ public Builder setLabels(Map labels) { return this; } + @Override + Builder setLocation(String location) { + this.location = location; + return this; + } + @Override Builder setTrainingRuns(List trainingRunList) { this.trainingRunList = checkNotNull(trainingRunList); @@ -276,6 +288,7 @@ public ModelInfo build() { this.lastModifiedTime = builder.lastModifiedTime; this.expirationTime = builder.expirationTime; this.labels = builder.labels; + this.location = builder.location; this.trainingRunList = ImmutableList.copyOf(builder.trainingRunList); this.labelColumnList = ImmutableList.copyOf(builder.labelColumnList); this.featureColumnList = ImmutableList.copyOf(builder.featureColumnList); @@ -330,6 +343,11 @@ public Map getLabels() { return labels.userMap(); } + /** Returns a location of the model. */ + public String getLocation() { + return location; + } + /** Returns metadata about each training run iteration. */ @BetaApi public ImmutableList getTrainingRuns() { @@ -368,6 +386,7 @@ public String toString() { .add("lastModifiedTime", lastModifiedTime) .add("expirationTime", expirationTime) .add("labels", labels) + .add("location", location) .add("trainingRuns", trainingRunList) .add("labelColumns", labelColumnList) .add("featureColumns", featureColumnList) @@ -416,6 +435,7 @@ Model toPb() { modelPb.setLastModifiedTime(lastModifiedTime); modelPb.setExpirationTime(expirationTime); modelPb.setLabels(labels.toPb()); + modelPb.setLocation(location); modelPb.setTrainingRuns(trainingRunList); if (labelColumnList != null) { modelPb.setLabelColumns(Lists.transform(labelColumnList, StandardSQLField.TO_PB_FUNCTION)); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java index 2657ccc4497e..87fa8bbf566c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java @@ -33,6 +33,7 @@ public class ModelInfoTest { private static final Long EXPIRATION_TIME = 30L; private static final String DESCRIPTION = "description"; private static final String FRIENDLY_NAME = "friendlyname"; + private static final String LOCATION = "US"; private static final EncryptionConfiguration MODEL_ENCRYPTION_CONFIGURATION = EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); @@ -52,6 +53,7 @@ public class ModelInfoTest { .setFriendlyName(FRIENDLY_NAME) .setTrainingRuns(TRAINING_RUN_LIST) .setEncryptionConfiguration(MODEL_ENCRYPTION_CONFIGURATION) + .setLocation(LOCATION) .build(); @Test @@ -75,6 +77,7 @@ public void testBuilder() { assertEquals(FRIENDLY_NAME, MODEL_INFO.getFriendlyName()); assertEquals(TRAINING_OPTIONS, MODEL_INFO.getTrainingRuns().get(0).getTrainingOptions()); assertEquals(MODEL_ENCRYPTION_CONFIGURATION, MODEL_INFO.getEncryptionConfiguration()); + assertEquals(LOCATION, MODEL_INFO.getLocation()); } @Test @@ -88,6 +91,7 @@ public void testOf() { assertNull(modelInfo.getDescription()); assertNull(modelInfo.getFriendlyName()); assertNull(modelInfo.getEncryptionConfiguration()); + assertNull(modelInfo.getLocation()); assertEquals(modelInfo.getTrainingRuns().isEmpty(), true); assertEquals(modelInfo.getLabelColumns().isEmpty(), true); assertEquals(modelInfo.getFeatureColumns().isEmpty(), true); @@ -113,6 +117,7 @@ private void compareModelInfo(ModelInfo expected, ModelInfo value) { assertEquals(expected.getDescription(), value.getDescription()); assertEquals(expected.getFriendlyName(), value.getFriendlyName()); assertEquals(expected.getLabels(), value.getLabels()); + assertEquals(expected.getLocation(), value.getLocation()); assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.getTrainingRuns(), value.getTrainingRuns()); assertEquals(expected.getLabelColumns(), value.getLabelColumns()); From 7464e234c00da047a06744eef6c7f281d90217cd Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 19 Feb 2020 19:36:59 +0530 Subject: [PATCH 0365/3441] fix: allUsers access (#178) --- .../java/com/google/cloud/bigquery/Acl.java | 53 ++++++++++++++++++- .../cloud/bigquery/DatasetInfoTest.java | 7 +++ .../cloud/bigquery/it/ITBigQueryTest.java | 18 +++++++ 3 files changed, 77 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java index 746f1542c306..4da7fe5e63f3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java @@ -103,7 +103,8 @@ public enum Type { DOMAIN, GROUP, USER, - VIEW + VIEW, + IAM_MEMBER } Entity(Type type) { @@ -132,6 +133,9 @@ static Entity fromPb(Access access) { if (access.getView() != null) { return new View(TableId.fromPb(access.getView())); } + if (access.getIamMember() != null) { + return new IamMember(access.getIamMember()); + } // Unreachable throw new BigQueryException( BigQueryException.UNKNOWN_CODE, "Unrecognized access configuration"); @@ -383,6 +387,53 @@ Access toPb() { } } + /** + * Class for a BigQuery IamMember entity. Objects of this class represent a iamMember to grant + * access to given the IAM Policy. + */ + public static final class IamMember extends Entity { + + private final String iamMember; + + /** Creates a iamMember entity given the iamMember. */ + public IamMember(String iamMember) { + super(Type.IAM_MEMBER); + this.iamMember = iamMember; + } + + /** Returns iamMember. */ + public String getIamMember() { + return iamMember; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + IamMember iam = (IamMember) obj; + return Objects.equals(getType(), iam.getType()) && Objects.equals(iamMember, iam.iamMember); + } + + @Override + public int hashCode() { + return Objects.hash(getType(), iamMember); + } + + @Override + public String toString() { + return toPb().toString(); + } + + @Override + Access toPb() { + return new Access().setIamMember(iamMember); + } + } + private Acl(Entity entity, Role role) { this.entity = checkNotNull(entity); this.role = role; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java index 42134d252d8c..da190cf21599 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -36,6 +36,8 @@ public class DatasetInfoTest { ImmutableList.of( Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), Acl.of(new Acl.View(TableId.of("project", "dataset", "table")))); + private static final List ACCESS_RULES_IAM_MEMBER = + ImmutableList.of(Acl.of(new Acl.IamMember("allUsers"), Acl.Role.READER)); private static final Map LABELS = ImmutableMap.of( "example-label1", "example-value1", @@ -76,10 +78,15 @@ public class DatasetInfoTest { .setDatasetId(DATASET_ID_COMPLETE) .setAcl(ACCESS_RULES_COMPLETE) .build(); + private static final DatasetInfo DATASET_INFO_COMPLETE_WITH_IAM_MEMBER = + DATASET_INFO.toBuilder().setAcl(ACCESS_RULES_IAM_MEMBER).build(); @Test public void testToBuilder() { compareDatasets(DATASET_INFO, DATASET_INFO.toBuilder().build()); + compareDatasets( + DATASET_INFO_COMPLETE_WITH_IAM_MEMBER, + DATASET_INFO_COMPLETE_WITH_IAM_MEMBER.toBuilder().build()); DatasetInfo datasetInfo = DATASET_INFO .toBuilder() diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 547c0892e47e..f2e74731900b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -28,8 +28,11 @@ import static org.junit.Assert.fail; import com.google.api.gax.paging.Page; +import com.google.auth.oauth2.GoogleCredentials; +import com.google.auth.oauth2.ServiceAccountCredentials; import com.google.cloud.Date; import com.google.cloud.RetryOption; +import com.google.cloud.bigquery.Acl; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; import com.google.cloud.bigquery.BigQuery.DatasetField; @@ -375,6 +378,21 @@ public void testGetDataset() { assertNotNull(dataset.getSelfLink()); } + @Test + public void testDatasetUpdateAccess() throws IOException { + Dataset dataset = bigquery.getDataset(DATASET); + ServiceAccountCredentials credentials = + (ServiceAccountCredentials) GoogleCredentials.getApplicationDefault(); + List acl = + ImmutableList.of( + Acl.of(new Acl.Group("projectOwners"), Acl.Role.OWNER), + Acl.of(new Acl.User(credentials.getClientEmail()), Acl.Role.OWNER), + Acl.of(new Acl.IamMember("allUsers"), Acl.Role.READER)); + Dataset remoteDataset = dataset.toBuilder().setAcl(acl).build().update(); + assertNotNull(remoteDataset); + assertEquals(3, remoteDataset.getAcl().size()); + } + @Test public void testGetDatasetWithSelectedFields() { Dataset dataset = From b2cec7694d147a7290fe74031d8bf0ed7fea9fd6 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 19 Feb 2020 16:06:46 -0500 Subject: [PATCH 0366/3441] samples: clean up created datasets and tables (#181) --- .../bigquery/UpdateDatasetAccessIT.java | 18 ++++++++++++++++++ .../bigquery/UpdateDatasetDescriptionIT.java | 18 ++++++++++++++++++ .../bigquery/UpdateDatasetExpirationIT.java | 18 ++++++++++++++++++ .../bigquery/UpdateTableExpirationIT.java | 3 +++ 4 files changed, 57 insertions(+) diff --git a/samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java b/samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java index ed45f2946e78..60086567ae06 100644 --- a/samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java +++ b/samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java @@ -17,18 +17,33 @@ package com.example.bigquery; import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.After; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; public class UpdateDatasetAccessIT { private ByteArrayOutputStream bout; private PrintStream out; + private static final String GOOGLE_CLOUD_PROJECT = System.getenv("GOOGLE_CLOUD_PROJECT"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + @Before public void setUp() throws Exception { bout = new ByteArrayOutputStream(); @@ -50,5 +65,8 @@ public void updateDatasetAccess() { // Modify dataset's ACL UpdateDatasetAccess.updateDatasetAccess(generatedDatasetName); assertThat(bout.toString()).contains("Dataset Access Control updated successfully"); + + // Clean up + DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, generatedDatasetName); } } diff --git a/samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java b/samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java index 75bb06e8c6f0..9f9c15c2e8f9 100644 --- a/samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java +++ b/samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java @@ -17,18 +17,33 @@ package com.example.bigquery; import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.After; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; public class UpdateDatasetDescriptionIT { private ByteArrayOutputStream bout; private PrintStream out; + private static final String GOOGLE_CLOUD_PROJECT = System.getenv("GOOGLE_CLOUD_PROJECT"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + @Before public void setUp() throws Exception { bout = new ByteArrayOutputStream(); @@ -52,5 +67,8 @@ public void updateDatasetDescription() { UpdateDatasetDescription.updateDatasetDescription(generatedDatasetName, newDescription); assertThat(bout.toString()) .contains("Dataset description updated successfully to " + newDescription); + + // Clean up + DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, generatedDatasetName); } } diff --git a/samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java b/samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java index bd06863dd9c8..7dd4f7f4684b 100644 --- a/samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java +++ b/samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java @@ -17,18 +17,33 @@ package com.example.bigquery; import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.After; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; public class UpdateDatasetExpirationIT { private ByteArrayOutputStream bout; private PrintStream out; + private static final String GOOGLE_CLOUD_PROJECT = System.getenv("GOOGLE_CLOUD_PROJECT"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + @Before public void setUp() throws Exception { bout = new ByteArrayOutputStream(); @@ -50,5 +65,8 @@ public void updateDatasetExpiration() { // Modify dataset's expiration UpdateDatasetExpiration.updateDatasetExpiration(generatedDatasetName); assertThat(bout.toString()).contains("Dataset description updated successfully"); + + // Clean up + DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, generatedDatasetName); } } diff --git a/samples/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java b/samples/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java index 833d3ce0d102..5352762d8150 100644 --- a/samples/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java +++ b/samples/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java @@ -61,5 +61,8 @@ public void updateTableExpiration() { CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, null); UpdateTableExpiration.updateTableExpiration(BIGQUERY_DATASET_NAME, tableName); assertThat(bout.toString()).contains("Table expiration updated successfully"); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } From 3c8181915c918d057b56e3b184090f25b9ded007 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 19 Feb 2020 22:03:44 -0500 Subject: [PATCH 0367/3441] chore: release 1.107.0 (#173) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/pom.xml [ci skip] --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 5 files changed, 38 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61708ac203c9..b14a1bebe408 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,35 @@ # Changelog +## [1.107.0](https://www.github.com/googleapis/java-bigquery/compare/v1.106.0...v1.107.0) (2020-02-19) + + +### Features + +* expose location field of model ([#175](https://www.github.com/googleapis/java-bigquery/issues/175)) ([646c2b4](https://www.github.com/googleapis/java-bigquery/commit/646c2b43b2ccbc609e0d5b85a7e4fbf502bb1243)) +* expose slotms field in querystage ([#172](https://www.github.com/googleapis/java-bigquery/issues/172)) ([4a82b3c](https://www.github.com/googleapis/java-bigquery/commit/4a82b3cd1aa821d72efc7046329db075c10ae344)) + + +### Bug Fixes + +* allUsers access ([#178](https://www.github.com/googleapis/java-bigquery/issues/178)) ([7464e23](https://www.github.com/googleapis/java-bigquery/commit/7464e234c00da047a06744eef6c7f281d90217cd)) + + +### Dependencies + +* update core dependencies to v1.92.5 ([#162](https://www.github.com/googleapis/java-bigquery/issues/162)) ([6ea4141](https://www.github.com/googleapis/java-bigquery/commit/6ea41413aed3d6cc81b9c4995a21f1017e268c74)) +* update core transport dependencies to v1.34.2 ([#168](https://www.github.com/googleapis/java-bigquery/issues/168)) ([c35069d](https://www.github.com/googleapis/java-bigquery/commit/c35069d4e91939e51f2101f2b8f93d2f67c089c5)) +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20191211-1.30.8 ([#161](https://www.github.com/googleapis/java-bigquery/issues/161)) ([54872ba](https://www.github.com/googleapis/java-bigquery/commit/54872ba95ff0903817df217dfa6da883d43e6ace)) +* update dependency com.google.cloud:libraries-bom to v4 ([#159](https://www.github.com/googleapis/java-bigquery/issues/159)) ([95e4ff0](https://www.github.com/googleapis/java-bigquery/commit/95e4ff068dd8650ec0acebbe23e958c6e361ed36)) +* update dependency com.google.cloud:libraries-bom to v4.0.1 ([#167](https://www.github.com/googleapis/java-bigquery/issues/167)) ([633ea52](https://www.github.com/googleapis/java-bigquery/commit/633ea52ddc3677e8091c1f69283a864929227a17)) +* update dependency com.google.cloud:libraries-bom to v4.1.0 ([#170](https://www.github.com/googleapis/java-bigquery/issues/170)) ([6acedda](https://www.github.com/googleapis/java-bigquery/commit/6aceddad33da3055b24a8ae0420c25d85cfb09fb)) +* update dependency com.google.protobuf:protobuf-java to v3.11.4 ([#171](https://www.github.com/googleapis/java-bigquery/issues/171)) ([6f292f5](https://www.github.com/googleapis/java-bigquery/commit/6f292f52728992bfeb511b97b1dd778e1ef8db2c)) +* update dependency io.grpc:grpc-bom to v1.27.1 ([#169](https://www.github.com/googleapis/java-bigquery/issues/169)) ([5212b2f](https://www.github.com/googleapis/java-bigquery/commit/5212b2f892074be36204fa9ef3e2dff7474828eb)) + + +### Documentation + +* broken links ([#154](https://www.github.com/googleapis/java-bigquery/issues/154)) ([e060aba](https://www.github.com/googleapis/java-bigquery/commit/e060aba2ed030a13e50f5e0f5597b3e04ad9c292)) + ## [1.106.0](https://www.github.com/googleapis/java-bigquery/compare/v1.105.0...v1.106.0) (2020-02-03) diff --git a/README.md b/README.md index 05071bc48e37..5c312655f628 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.106.0 + 1.107.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.106.0' +compile 'com.google.cloud:google-cloud-bigquery:1.107.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.106.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.107.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 61fceb9c2e1c..c6696d73ce9c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.106.1-SNAPSHOT + 1.107.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.106.1-SNAPSHOT + 1.107.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e4d41d7ca28e..f69981aef6be 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.106.1-SNAPSHOT + 1.107.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -113,7 +113,7 @@ com.google.cloud google-cloud-bigquery - 1.106.1-SNAPSHOT + 1.107.0 diff --git a/versions.txt b/versions.txt index 79421c9500c5..2d1f4f57602f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.106.0:1.106.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.107.0:1.107.0 \ No newline at end of file From 93e61f801f73cded001a1482bc45d4b6e3fa1356 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 20 Feb 2020 13:46:05 -0500 Subject: [PATCH 0368/3441] chore: release 1.107.1-SNAPSHOT (#183) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c6696d73ce9c..0cb86895759d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.107.0 + 1.107.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.107.0 + 1.107.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f69981aef6be..75eaa7a9efe3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.107.0 + 1.107.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -113,7 +113,7 @@ com.google.cloud google-cloud-bigquery - 1.107.0 + 1.107.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 2d1f4f57602f..3e47c0dfdcae 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.107.0:1.107.0 \ No newline at end of file +google-cloud-bigquery:1.107.0:1.107.1-SNAPSHOT \ No newline at end of file From caa32e3caf2ac29c92ee49163dfb621438658cef Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 21 Feb 2020 15:39:52 -0800 Subject: [PATCH 0369/3441] chore: update common templates --- .kokoro/build.sh | 23 +++++++++++++++-------- renovate.json | 7 +++++++ synth.metadata | 22 ++++++++++++++++++---- 3 files changed, 40 insertions(+), 12 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index f1ae58408da5..d11958c5a67e 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -62,14 +62,21 @@ integration) bash .kokoro/coerce_logs.sh ;; samples) - mvn -B \ - -Penable-samples \ - -DtrimStackTrace=false \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -fae \ - verify - bash .kokoro/coerce_logs.sh + if [[ -f samples/pom.xml ]] + then + pushd samples + mvn -B \ + -Penable-samples \ + -DtrimStackTrace=false \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -fae \ + verify + bash .kokoro/coerce_logs.sh + popd + else + echo "no sample pom.xml found - skipping sample tests" + fi ;; clirr) mvn -B -Denforcer.skip=true clirr:check diff --git a/renovate.json b/renovate.json index 268a4669abfd..fc6412701ada 100644 --- a/renovate.json +++ b/renovate.json @@ -54,6 +54,13 @@ "semanticCommitType": "build", "semanticCommitScope": "deps" }, + { + "packagePatterns": [ + "^com.google.cloud:libraries-bom" + ], + "semanticCommitType": "chore", + "semanticCommitScope": "deps" + }, { "packagePatterns": [ "^com.google.cloud:google-cloud-" diff --git a/synth.metadata b/synth.metadata index e98f19de389d..1106c2f5a185 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,18 +1,32 @@ { - "updateTime": "2020-02-01T08:34:31.377166Z", + "updateTime": "2020-02-21T22:40:34.334445Z", "sources": [ { "generator": { "name": "artman", - "version": "0.44.4", - "dockerImage": "googleapis/artman@sha256:19e945954fc960a4bdfee6cb34695898ab21a8cf0bac063ee39b91f00a1faec8" + "version": "0.45.0", + "dockerImage": "googleapis/artman@sha256:6aec9c34db0e4be221cdaf6faba27bdc07cfea846808b3d3b964dfce3a9a0f9b" + } + }, + { + "git": { + "name": ".", + "remote": "https://github.com/googleapis/java-bigquery.git", + "sha": "93e61f801f73cded001a1482bc45d4b6e3fa1356" + } + }, + { + "git": { + "name": "synthtool", + "remote": "rpc://devrel/cloud/libraries/tools/autosynth", + "sha": "706a38c26db42299845396cdae55db635c38794a" } }, { "template": { "name": "java_library", "origin": "synthtool.gcp", - "version": "2019.10.17" + "version": "2020.2.4" } } ] From 1f2d878bb124fc40d40e3ea0e027b7cc13d0b799 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 24 Feb 2020 10:36:47 -0800 Subject: [PATCH 0370/3441] chore: update common templates --- .kokoro/build.sh | 24 +++++++++++++++++++++--- synth.metadata | 8 ++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index d11958c5a67e..0ade8859153c 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -37,19 +37,24 @@ if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTI export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_ROOT}/src/${GOOGLE_APPLICATION_CREDENTIALS}) fi +RETURN_CODE=0 +set +e + case ${JOB_TYPE} in test) mvn test -B -Dclirr.skip=true -Denforcer.skip=true + RETURN_CODE=$? bash ${KOKORO_GFILE_DIR}/codecov.sh - bash .kokoro/coerce_logs.sh ;; lint) mvn \ -Penable-samples \ com.coveo:fmt-maven-plugin:check + RETURN_CODE=$? ;; javadoc) mvn javadoc:javadoc javadoc:test-javadoc + RETURN_CODE=$? ;; integration) mvn -B ${INTEGRATION_TEST_ARGS} \ @@ -59,7 +64,7 @@ integration) -Denforcer.skip=true \ -fae \ verify - bash .kokoro/coerce_logs.sh + RETURN_CODE=$? ;; samples) if [[ -f samples/pom.xml ]] @@ -72,7 +77,7 @@ samples) -Denforcer.skip=true \ -fae \ verify - bash .kokoro/coerce_logs.sh + RETURN_CODE=$? popd else echo "no sample pom.xml found - skipping sample tests" @@ -80,7 +85,20 @@ samples) ;; clirr) mvn -B -Denforcer.skip=true clirr:check + RETURN_CODE=$? ;; *) ;; esac + +# fix output location of logs +bash .kokoro/coerce_logs.sh + +if [[ "${ENABLE_BUILD_COP}" == "true" ]] +then + chmod +x ${KOKORO_GFILE_DIR}/linux_amd64/buildcop + ${KOKORO_GFILE_DIR}/linux_amd64/buildcop -repo=googleapis/java-bigquery +fi + +echo "exiting with ${RETURN_CODE}" +exit ${RETURN_CODE} \ No newline at end of file diff --git a/synth.metadata b/synth.metadata index 1106c2f5a185..3acafcecdc72 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,18 +1,18 @@ { - "updateTime": "2020-02-21T22:40:34.334445Z", + "updateTime": "2020-02-22T09:41:35.370556Z", "sources": [ { "generator": { "name": "artman", - "version": "0.45.0", - "dockerImage": "googleapis/artman@sha256:6aec9c34db0e4be221cdaf6faba27bdc07cfea846808b3d3b964dfce3a9a0f9b" + "version": "0.45.1", + "dockerImage": "googleapis/artman@sha256:36956ca6a4dc70a59de5d5d0fd35061b050bb56884516f0898f46d8220f25738" } }, { "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "93e61f801f73cded001a1482bc45d4b6e3fa1356" + "sha": "caa32e3caf2ac29c92ee49163dfb621438658cef" } }, { From f879c2bdd08edeca608388ba0b75d0f2fa872e9a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 25 Feb 2020 17:06:28 +0100 Subject: [PATCH 0371/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v4.1.1 (#187) --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index c19ef01319ea..eb81f9659296 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -43,7 +43,7 @@ com.google.cloud libraries-bom - 4.1.0 + 4.1.1 pom import From 2720b12f536ad363d9884b5082b7e238183a95e9 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 25 Feb 2020 08:07:06 -0800 Subject: [PATCH 0372/3441] feat: re-generated to pick up changes in the API or client library generator. (#188) --- .kokoro/build.sh | 8 ++++++-- .kokoro/continuous/java8.cfg | 5 +++++ .kokoro/nightly/integration.cfg | 14 ++++++++++++++ .kokoro/nightly/java8.cfg | 5 +++++ .kokoro/nightly/samples.cfg | 21 +++++++++++++-------- .kokoro/presubmit/java8.cfg | 5 +++++ synth.metadata | 16 +--------------- 7 files changed, 49 insertions(+), 25 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 0ade8859153c..78e05c6669aa 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -44,7 +44,6 @@ case ${JOB_TYPE} in test) mvn test -B -Dclirr.skip=true -Denforcer.skip=true RETURN_CODE=$? - bash ${KOKORO_GFILE_DIR}/codecov.sh ;; lint) mvn \ @@ -91,6 +90,11 @@ clirr) ;; esac +if [ "${REPORT_COVERAGE}" == "true" ] +then + bash ${KOKORO_GFILE_DIR}/codecov.sh +fi + # fix output location of logs bash .kokoro/coerce_logs.sh @@ -101,4 +105,4 @@ then fi echo "exiting with ${RETURN_CODE}" -exit ${RETURN_CODE} \ No newline at end of file +exit ${RETURN_CODE} diff --git a/.kokoro/continuous/java8.cfg b/.kokoro/continuous/java8.cfg index 3b017fc80f04..495cc7bacd63 100644 --- a/.kokoro/continuous/java8.cfg +++ b/.kokoro/continuous/java8.cfg @@ -5,3 +5,8 @@ env_vars: { key: "TRAMPOLINE_IMAGE" value: "gcr.io/cloud-devrel-kokoro-resources/java8" } + +env_vars: { + key: "REPORT_COVERAGE" + value: "true" +} diff --git a/.kokoro/nightly/integration.cfg b/.kokoro/nightly/integration.cfg index 3b017fc80f04..8bf59c02edd6 100644 --- a/.kokoro/nightly/integration.cfg +++ b/.kokoro/nightly/integration.cfg @@ -5,3 +5,17 @@ env_vars: { key: "TRAMPOLINE_IMAGE" value: "gcr.io/cloud-devrel-kokoro-resources/java8" } + +env_vars: { + key: "ENABLE_BUILD_COP" + value: "true" +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "java_it_service_account" + } + } +} diff --git a/.kokoro/nightly/java8.cfg b/.kokoro/nightly/java8.cfg index 3b017fc80f04..495cc7bacd63 100644 --- a/.kokoro/nightly/java8.cfg +++ b/.kokoro/nightly/java8.cfg @@ -5,3 +5,8 @@ env_vars: { key: "TRAMPOLINE_IMAGE" value: "gcr.io/cloud-devrel-kokoro-resources/java8" } + +env_vars: { + key: "REPORT_COVERAGE" + value: "true" +} diff --git a/.kokoro/nightly/samples.cfg b/.kokoro/nightly/samples.cfg index 9a9102490d54..b4b051cd016f 100644 --- a/.kokoro/nightly/samples.cfg +++ b/.kokoro/nightly/samples.cfg @@ -2,23 +2,28 @@ # Configure the docker image for kokoro-trampoline. env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" } env_vars: { - key: "JOB_TYPE" - value: "samples" + key: "JOB_TYPE" + value: "samples" } env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" + key: "GCLOUD_PROJECT" + value: "gcloud-devel" } env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "keystore/73713_java_it_service_account" + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "keystore/73713_java_it_service_account" +} + +env_vars: { + key: "ENABLE_BUILD_COP" + value: "true" } before_action { diff --git a/.kokoro/presubmit/java8.cfg b/.kokoro/presubmit/java8.cfg index 3b017fc80f04..495cc7bacd63 100644 --- a/.kokoro/presubmit/java8.cfg +++ b/.kokoro/presubmit/java8.cfg @@ -5,3 +5,8 @@ env_vars: { key: "TRAMPOLINE_IMAGE" value: "gcr.io/cloud-devrel-kokoro-resources/java8" } + +env_vars: { + key: "REPORT_COVERAGE" + value: "true" +} diff --git a/synth.metadata b/synth.metadata index 3acafcecdc72..14f51305a40c 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,5 +1,5 @@ { - "updateTime": "2020-02-22T09:41:35.370556Z", + "updateTime": "2020-02-24T22:40:35.722548Z", "sources": [ { "generator": { @@ -8,20 +8,6 @@ "dockerImage": "googleapis/artman@sha256:36956ca6a4dc70a59de5d5d0fd35061b050bb56884516f0898f46d8220f25738" } }, - { - "git": { - "name": ".", - "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "caa32e3caf2ac29c92ee49163dfb621438658cef" - } - }, - { - "git": { - "name": "synthtool", - "remote": "rpc://devrel/cloud/libraries/tools/autosynth", - "sha": "706a38c26db42299845396cdae55db635c38794a" - } - }, { "template": { "name": "java_library", From acc5d6ca93d77087c5dbaf669e146ed442164d1a Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 26 Feb 2020 12:07:29 -0500 Subject: [PATCH 0373/3441] doc: clarify docs for sending data via streaming inserts. (#190) migrate PR #6216 from google-cloud-java --- .../cloud/bigquery/InsertAllRequest.java | 39 +++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java index 818c456b2e24..53952bc6cfb5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java @@ -50,9 +50,11 @@ public final class InsertAllRequest implements Serializable { /** * A Google Big Query row to be inserted into a table. Each {@code RowToInsert} has an associated - * id used by BigQuery to detect duplicate insertion requests on a best-effort basis. Please - * notice that data for fields of type {@link LegacySQLTypeName#BYTES} must be provided as a - * base64 encoded string. + * id used by BigQuery to detect duplicate insertion requests on a best-effort basis. + * + *

    To ensure proper serialization of numeric data, it is recommended to supply values using a + * string-typed representation. Additionally, data for fields of {@link LegacySQLTypeName#BYTES} + * must be provided as a base64 encoded string. * *

    Example usage of creating a row to insert: * @@ -65,6 +67,7 @@ public final class InsertAllRequest implements Serializable { * rowContent.put("booleanFieldName", true); * rowContent.put("bytesFieldName", "DQ4KDQ=="); * rowContent.put("recordFieldName", recordContent); + * rowContent.put("numericFieldName", "1298930929292.129593272"); * RowToInsert row = new RowToInsert("rowId", rowContent); * } * @@ -124,8 +127,11 @@ public boolean equals(Object obj) { } /** - * Creates a row to be inserted with associated id. Please notice that data for fields of type - * {@link LegacySQLTypeName#BYTES} must be provided as a base64 encoded string. + * Creates a row to be inserted with associated id. + * + *

    To ensure proper serialization of numeric data, supply values using a string-typed + * representation. Additionally, data for fields of {@link LegacySQLTypeName#BYTES} must be + * provided as a base64 encoded string. * * @param id id of the row, used to identify duplicates * @param content the actual content of the row @@ -135,8 +141,11 @@ public static RowToInsert of(String id, Map content) { } /** - * Creates a row to be inserted without associated id. Please notice that data for fields of - * type {@link LegacySQLTypeName#BYTES} must be provided as a base64 encoded string. + * Creates a row to be inserted without associated id. + * + *

    To ensure proper serialization of numeric data, supply values using a string-typed + * representation. Additionally, data for fields of type {@link LegacySQLTypeName#BYTES} must be + * provided as a base64 encoded string. * * @param content the actual content of the row */ @@ -178,8 +187,11 @@ public Builder addRow(RowToInsert rowToInsert) { } /** - * Adds a row to be inserted with associated id. Please notice that data for fields of type - * {@link LegacySQLTypeName#BYTES} must be provided as a base64 encoded string. + * Adds a row to be inserted with associated id. + * + *

    To ensure proper serialization of numeric data, supply values using a string-typed + * representation. Additionally, data for fields of {@link LegacySQLTypeName#BYTES} must be + * provided as a base64 encoded string. * *

    Example usage of adding a row with associated id: * @@ -193,6 +205,7 @@ public Builder addRow(RowToInsert rowToInsert) { * rowContent.put("booleanFieldName", true); * rowContent.put("bytesFieldName", "DQ4KDQ=="); * rowContent.put("recordFieldName", recordContent); + * rowContent.put("numericFieldName", "1298930929292.129593272"); * builder.addRow("rowId", rowContent); * } */ @@ -202,8 +215,11 @@ public Builder addRow(String id, Map content) { } /** - * Adds a row to be inserted without an associated id. Please notice that data for fields of - * type {@link LegacySQLTypeName#BYTES} must be provided as a base64 encoded string. + * Adds a row to be inserted without an associated id. + * + *

    To ensure proper serialization of numeric data, it is recommended to supply values using a + * string-typed representation. Additionally, data for fields of type {@link + * LegacySQLTypeName#BYTES} must be provided as a base64 encoded string. * *

    Example usage of adding a row without an associated id: * @@ -217,6 +233,7 @@ public Builder addRow(String id, Map content) { * rowContent.put("booleanFieldName", true); * rowContent.put("bytesFieldName", "DQ4KDQ=="); * rowContent.put("recordFieldName", recordContent); + * rowContent.put("numericFieldName", "1298930929292.129593272"); * builder.addRow(rowContent); * } */ From 3e51ea02bb9a40c4d20b31a5435954c4d087f26d Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 28 Feb 2020 00:10:34 +0530 Subject: [PATCH 0374/3441] feat: expose requirepartitionfilter field in table (#158) * feat: expose requirepartitionfilter field in table * feat: modified java doc * feat: ignore differences * remove clirr-ignored-differences file this will no longer be needed * add TableInfo outer-class back * remove abstract implementation of setRequirePartitionFilter add empty default implementation instead in the public class * remove extraneous words * remove whitespaces * feat: update javadoc * feat: lint Co-authored-by: Stephanie Wang --- .../java/com/google/cloud/bigquery/Table.java | 6 +++++ .../com/google/cloud/bigquery/TableInfo.java | 25 +++++++++++++++++++ .../google/cloud/bigquery/TableInfoTest.java | 16 ++++++++++++ 3 files changed, 47 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java index ab341c62c4ff..5e1f1a2c032f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java @@ -150,6 +150,12 @@ public Builder setLabels(Map labels) { return this; } + @Override + public Builder setRequirePartitionFilter(Boolean requirePartitionFilter) { + infoBuilder.setRequirePartitionFilter(requirePartitionFilter); + return this; + } + @Override public Table build() { return new Table(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java index e64e85ebae22..d3e58f980259 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -71,6 +71,7 @@ public Table apply(TableInfo tableInfo) { private final TableDefinition definition; private final EncryptionConfiguration encryptionConfiguration; private final Labels labels; + private final Boolean requirePartitionFilter; /** A builder for {@code TableInfo} objects. */ public abstract static class Builder { @@ -130,6 +131,10 @@ public abstract static class Builder { public abstract TableInfo build(); public abstract Builder setEncryptionConfiguration(EncryptionConfiguration configuration); + + public Builder setRequirePartitionFilter(Boolean requirePartitionFilter) { + return this; + } } static class BuilderImpl extends Builder { @@ -149,6 +154,7 @@ static class BuilderImpl extends Builder { private TableDefinition definition; private EncryptionConfiguration encryptionConfiguration; private Labels labels = Labels.ZERO; + private Boolean requirePartitionFilter; BuilderImpl() {} @@ -168,6 +174,7 @@ static class BuilderImpl extends Builder { this.definition = tableInfo.definition; this.encryptionConfiguration = tableInfo.encryptionConfiguration; this.labels = tableInfo.labels; + this.requirePartitionFilter = tableInfo.requirePartitionFilter; } BuilderImpl(Table tablePb) { @@ -191,6 +198,7 @@ static class BuilderImpl extends Builder { new EncryptionConfiguration.Builder(tablePb.getEncryptionConfiguration()).build(); } this.labels = Labels.fromPb(tablePb.getLabels()); + this.requirePartitionFilter = tablePb.getRequirePartitionFilter(); } @Override @@ -283,6 +291,12 @@ public Builder setLabels(Map labels) { return this; } + @Override + public Builder setRequirePartitionFilter(Boolean requirePartitionFilter) { + this.requirePartitionFilter = requirePartitionFilter; + return this; + } + @Override public TableInfo build() { return new TableInfo(this); @@ -305,6 +319,7 @@ public TableInfo build() { this.definition = builder.definition; this.encryptionConfiguration = builder.encryptionConfiguration; labels = builder.labels; + this.requirePartitionFilter = builder.requirePartitionFilter; } /** Returns the hash of the table resource. */ @@ -399,6 +414,14 @@ public Map getLabels() { return labels.userMap(); } + /** + * Returns true if a partition filter (that can be used for partition elimination) is required for + * queries over this table. + */ + public Boolean getRequirePartitionFilter() { + return requirePartitionFilter; + } + /** Returns a builder for the table object. */ public Builder toBuilder() { return new BuilderImpl(this); @@ -422,6 +445,7 @@ public String toString() { .add("definition", definition) .add("encryptionConfiguration", encryptionConfiguration) .add("labels", labels) + .add("requirePartitionFilter", requirePartitionFilter) .toString(); } @@ -482,6 +506,7 @@ Table toPb() { tablePb.setEncryptionConfiguration(encryptionConfiguration.toPb()); } tablePb.setLabels(labels.toPb()); + tablePb.setRequirePartitionFilter(requirePartitionFilter); return tablePb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java index 324f562cdfdf..a44f7003910a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java @@ -36,6 +36,9 @@ public class TableInfoTest { private static final Long CREATION_TIME = 10L; private static final Long EXPIRATION_TIME = 100L; private static final Long LAST_MODIFIED_TIME = 20L; + private static final Boolean REQUIRE_PARTITION_FILTER = true; + private static final EncryptionConfiguration ENCRYPTION_CONFIGURATION = + EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); private static final Field FIELD_SCHEMA1 = Field.newBuilder("StringField", LegacySQLTypeName.STRING) @@ -91,6 +94,7 @@ public class TableInfoTest { TableInfo.newBuilder(TABLE_ID, TABLE_DEFINITION) .setCreationTime(CREATION_TIME) .setDescription(DESCRIPTION) + .setEncryptionConfiguration(ENCRYPTION_CONFIGURATION) .setEtag(ETAG) .setExpirationTime(EXPIRATION_TIME) .setFriendlyName(FRIENDLY_NAME) @@ -101,6 +105,7 @@ public class TableInfoTest { .setNumRows(BigInteger.valueOf(NUM_ROWS)) .setSelfLink(SELF_LINK) .setLabels(Collections.singletonMap("a", "b")) + .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) .build(); private static final TableInfo VIEW_INFO = TableInfo.newBuilder(TABLE_ID, VIEW_DEFINITION) @@ -151,6 +156,7 @@ public void testBuilder() { assertEquals(TABLE_ID, TABLE_INFO.getTableId()); assertEquals(CREATION_TIME, TABLE_INFO.getCreationTime()); assertEquals(DESCRIPTION, TABLE_INFO.getDescription()); + assertEquals(ENCRYPTION_CONFIGURATION, TABLE_INFO.getEncryptionConfiguration()); assertEquals(ETAG, TABLE_INFO.getEtag()); assertEquals(EXPIRATION_TIME, TABLE_INFO.getExpirationTime()); assertEquals(FRIENDLY_NAME, TABLE_INFO.getFriendlyName()); @@ -161,6 +167,7 @@ public void testBuilder() { assertEquals(NUM_BYTES, TABLE_INFO.getNumBytes()); assertEquals(NUM_LONG_TERM_BYTES, TABLE_INFO.getNumLongTermBytes()); assertEquals(BigInteger.valueOf(NUM_ROWS), TABLE_INFO.getNumRows()); + assertEquals(REQUIRE_PARTITION_FILTER, TABLE_INFO.getRequirePartitionFilter()); assertEquals(TABLE_ID, VIEW_INFO.getTableId()); assertEquals(VIEW_DEFINITION, VIEW_INFO.getDefinition()); @@ -192,33 +199,39 @@ public void testOf() { assertEquals(TABLE_ID, tableInfo.getTableId()); assertNull(tableInfo.getCreationTime()); assertNull(tableInfo.getDescription()); + assertNull(tableInfo.getEncryptionConfiguration()); assertNull(tableInfo.getEtag()); assertNull(tableInfo.getExpirationTime()); assertNull(tableInfo.getFriendlyName()); assertNull(tableInfo.getGeneratedId()); assertNull(tableInfo.getLastModifiedTime()); + assertNull(tableInfo.getRequirePartitionFilter()); assertEquals(TABLE_DEFINITION, tableInfo.getDefinition()); assertNull(tableInfo.getSelfLink()); tableInfo = TableInfo.of(TABLE_ID, VIEW_DEFINITION); assertEquals(TABLE_ID, tableInfo.getTableId()); assertNull(tableInfo.getCreationTime()); assertNull(tableInfo.getDescription()); + assertNull(tableInfo.getEncryptionConfiguration()); assertNull(tableInfo.getEtag()); assertNull(tableInfo.getExpirationTime()); assertNull(tableInfo.getFriendlyName()); assertNull(tableInfo.getGeneratedId()); assertNull(tableInfo.getLastModifiedTime()); + assertNull(tableInfo.getRequirePartitionFilter()); assertEquals(VIEW_DEFINITION, tableInfo.getDefinition()); assertNull(tableInfo.getSelfLink()); tableInfo = TableInfo.of(TABLE_ID, EXTERNAL_TABLE_DEFINITION); assertEquals(TABLE_ID, tableInfo.getTableId()); assertNull(tableInfo.getCreationTime()); assertNull(tableInfo.getDescription()); + assertNull(tableInfo.getEncryptionConfiguration()); assertNull(tableInfo.getEtag()); assertNull(tableInfo.getExpirationTime()); assertNull(tableInfo.getFriendlyName()); assertNull(tableInfo.getGeneratedId()); assertNull(tableInfo.getLastModifiedTime()); + assertNull(tableInfo.getRequirePartitionFilter()); assertEquals(EXTERNAL_TABLE_DEFINITION, tableInfo.getDefinition()); assertNull(tableInfo.getSelfLink()); } @@ -250,6 +263,7 @@ private void compareTableInfo(TableInfo expected, TableInfo value) { assertEquals(expected.getDefinition(), value.getDefinition()); assertEquals(expected.getCreationTime(), value.getCreationTime()); assertEquals(expected.getDescription(), value.getDescription()); + assertEquals(expected.getEncryptionConfiguration(), value.getEncryptionConfiguration()); assertEquals(expected.getEtag(), value.getEtag()); assertEquals(expected.getExpirationTime(), value.getExpirationTime()); assertEquals(expected.getFriendlyName(), value.getFriendlyName()); @@ -260,6 +274,8 @@ private void compareTableInfo(TableInfo expected, TableInfo value) { assertEquals(expected.getNumRows(), value.getNumRows()); assertEquals(expected.getSelfLink(), value.getSelfLink()); assertEquals(expected.getLabels(), value.getLabels()); + assertEquals(expected.getRequirePartitionFilter(), value.getRequirePartitionFilter()); + assertEquals(expected.toString(), value.toString()); assertEquals(expected.hashCode(), value.hashCode()); } } From 0c5bb7feb6d24ffb2c87ab433c52aaf4b0aa1b91 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 28 Feb 2020 06:39:34 +0100 Subject: [PATCH 0375/3441] deps: update core dependencies (#196) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [io.grpc:grpc-bom](https://togithub.com/grpc/grpc-java) | patch | `1.27.1` -> `1.27.2` | | [com.google.api:gax-grpc](https://togithub.com/googleapis/gax-java) | minor | `1.53.1` -> `1.54.0` | | [com.google.api:gax-bom](https://togithub.com/googleapis/gax-java) | minor | `1.53.1` -> `1.54.0` | | [com.google.cloud:google-cloud-core](https://togithub.com/googleapis/java-core) | minor | `1.92.5` -> `1.93.0` | | [com.google.cloud:google-cloud-core-http](https://togithub.com/googleapis/java-core) | minor | `1.92.5` -> `1.93.0` | | [com.google.api:gax](https://togithub.com/googleapis/gax-java) | minor | `1.53.1` -> `1.54.0` | --- ### Release Notes

    grpc/grpc-java ### [`v1.27.2`](https://togithub.com/grpc/grpc-java/releases/v1.27.2) [Compare Source](https://togithub.com/grpc/grpc-java/compare/v1.27.1...v1.27.2) #### Bug Fixes - grpclb: grpclb can handle empty address from LoadBalancer instead of throwing exception
    googleapis/gax-java ### [`v1.54.0`](https://togithub.com/googleapis/gax-java/releases/v1.54.0) [Compare Source](https://togithub.com/googleapis/gax-java/compare/v1.53.1...v1.54.0) 02-27-2020 09:07 PST ##### New Features - Scale number of threads to scale with number of cpus ([#​878](https://togithub.com/googleapis/gax-java/pull/878)) - Do not shut down executor when WatchDog is shut down ([#​871](https://togithub.com/googleapis/gax-java/pull/871)) ##### Dependencies - Update google-http-client to 1.34.2 ([#​886](https://togithub.com/googleapis/gax-java/pull/886)) - Update gRPC to 1.27.2 ([#​885](https://togithub.com/googleapis/gax-java/pull/885)) - Update protobuf to 3.11.4 and gRPC to 1.27.1 ([#​882](https://togithub.com/googleapis/gax-java/pull/882)) ##### Documentation - Add javadoc about being called within single thread ([#​856](https://togithub.com/googleapis/gax-java/pull/856)) ##### Internal / Testing Changes - Update jacoco to 0.8.5 ([#​883](https://togithub.com/googleapis/gax-java/pull/883)) - Update google format plugin ([#​868](https://togithub.com/googleapis/gax-java/pull/868)) - Set up linkage monitor Kokoro build config for gax-java ([#​864](https://togithub.com/googleapis/gax-java/pull/864))
    googleapis/java-core ### [`v1.93.0`](https://togithub.com/googleapis/java-core/blob/master/CHANGELOG.md#​1930httpswwwgithubcomgoogleapisjava-corecomparev1926v1930-2020-02-27) [Compare Source](https://togithub.com/googleapis/java-core/compare/v1.92.5...v1.93.0) ##### Features - support conditional policies ([#​110](https://www.github.com/googleapis/java-core/issues/110)) ([61e2d19](https://www.github.com/googleapis/java-core/commit/61e2d19bb4400978681aa018a8dc200214203830)) ##### Bug Fixes - fix conversion for pre-epoch timestamps ([#​160](https://www.github.com/googleapis/java-core/issues/160)) ([1f8b6b4](https://www.github.com/googleapis/java-core/commit/1f8b6b4835aaa702ec94bbbde89ed90f519c935a)) ##### Dependencies - update dependency com.google.api:gax-bom to v1.54.0 ([#​168](https://www.github.com/googleapis/java-core/issues/168)) ([5b52f9e](https://www.github.com/googleapis/java-core/commit/5b52f9e8d8cdc82b56114d3d1e857d137ae7ca98)) - update dependency io.grpc:grpc-bom to v1.27.2 ([#​166](https://www.github.com/googleapis/java-core/issues/166)) ([28c9859](https://www.github.com/googleapis/java-core/commit/28c98595c9ee96760a063085bd85024177bd6dd2)) ##### [1.92.5](https://www.github.com/googleapis/java-core/compare/v1.92.4...v1.92.5) (2020-02-10) ##### Dependencies - update dependency com.google.api-client:google-api-client-bom to v1.30.8 ([#​146](https://www.github.com/googleapis/java-core/issues/146)) ([1d9c7db](https://www.github.com/googleapis/java-core/commit/1d9c7db40502eff9723f27c24be31ecc2fac9c5d)) - update dependency com.google.protobuf:protobuf-bom to v3.11.3 ([#​148](https://www.github.com/googleapis/java-core/issues/148)) ([092c69b](https://www.github.com/googleapis/java-core/commit/092c69bef5b10cf27ef6770e90ae8e50ea205dcd)) ##### [1.92.4](https://www.github.com/googleapis/java-core/compare/v1.92.3...v1.92.4) (2020-01-31) ##### Dependencies - update core dependencies ([#​143](https://www.github.com/googleapis/java-core/issues/143)) ([454ce1d](https://www.github.com/googleapis/java-core/commit/454ce1dc5a6a41f3333a2a5303315cd9eb66f442)) ##### [1.92.3](https://www.github.com/googleapis/java-core/compare/v1.92.2...v1.92.3) (2020-01-28) ##### Dependencies - update dependency com.google.api:gax-bom to v1.53.0 ([#​126](https://www.github.com/googleapis/java-core/issues/126)) ([bdb1bce](https://www.github.com/googleapis/java-core/commit/bdb1bceb63502c828a37dd50fdb3e0e2204fc0aa)) - update dependency com.google.auth:google-auth-library-bom to v0.20.0 ([#​135](https://www.github.com/googleapis/java-core/issues/135)) ([f40c636](https://www.github.com/googleapis/java-core/commit/f40c6365b1b19bc3360b0094599311bc3271f0e5)) - update dependency com.google.http-client:google-http-client-bom to v1.34.1 ([#​137](https://www.github.com/googleapis/java-core/issues/137)) ([9216702](https://www.github.com/googleapis/java-core/commit/92167026d8e4178ebb952490a3322bd685441a60)) - update dependency org.threeten:threetenbp to v1.4.1 ([82cac64](https://www.github.com/googleapis/java-core/commit/82cac64486352e46ddc6044a72fff6141d9b10ce)) ##### [1.92.2](https://www.github.com/googleapis/java-core/compare/v1.92.1...v1.92.2) (2020-01-09) ##### Bug Fixes - cast to proper interface ([#​124](https://www.github.com/googleapis/java-core/issues/124)) ([cd6eabf](https://www.github.com/googleapis/java-core/commit/cd6eabffcdeed485aba088336fa473a6b85c752d)), closes [#​123](https://www.github.com/googleapis/java-core/issues/123) ##### [1.92.1](https://www.github.com/googleapis/java-core/compare/v1.92.0...v1.92.1) (2020-01-02) ##### Dependencies - update dependency com.google.errorprone:error_prone_annotations to v2.3.4 ([#​105](https://www.github.com/googleapis/java-core/issues/105)) ([52f47c5](https://www.github.com/googleapis/java-core/commit/52f47c5ed84742b4b41417c486bfbb3c817b4a23)) - update dependency com.google.guava:guava-bom to v28.2-android ([#​113](https://www.github.com/googleapis/java-core/issues/113)) ([8b11b1a](https://www.github.com/googleapis/java-core/commit/8b11b1a8d452ab823f35509ae42263c4a69f2a5a)) - update dependency com.google.http-client:google-http-client-bom to v1.34.0 ([#​98](https://www.github.com/googleapis/java-core/issues/98)) ([d8e946d](https://www.github.com/googleapis/java-core/commit/d8e946dfd3866380406b02ad908925c4250cc34a)) - update dependency com.google.protobuf:protobuf-bom to v3.11.1 ([#​106](https://www.github.com/googleapis/java-core/issues/106)) ([6d36434](https://www.github.com/googleapis/java-core/commit/6d364341bc5552e98590f9344b0e2d8cf4e68f0c)) - update dependency io.grpc:grpc-bom to v1.26.0 ([#​107](https://www.github.com/googleapis/java-core/issues/107)) ([fca41a7](https://www.github.com/googleapis/java-core/commit/fca41a73fb6ca42eb4014d3cec6b32cc8e97ded9))
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :ghost: **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/config-help/issues) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 6 +++--- samples/pom.xml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 75eaa7a9efe3..7e19ea3d0df5 100644 --- a/pom.xml +++ b/pom.xml @@ -63,11 +63,11 @@ UTF-8 github google-cloud-bigquery-parent - 1.92.5 + 1.93.0 1.8.1 1.17.0 - 1.53.1 - 1.27.1 + 1.54.0 + 1.27.2 3.11.4 4.13 28.2-android diff --git a/samples/pom.xml b/samples/pom.xml index eb81f9659296..980f540fb67b 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -59,12 +59,12 @@ com.google.api gax - 1.53.1 + 1.54.0 com.google.cloud google-cloud-core - 1.92.5 + 1.93.0 com.google.auth From 4c0fb683566569d4c54830096fb0297a90aaa6bd Mon Sep 17 00:00:00 2001 From: "David P. Baker" Date: Fri, 28 Feb 2020 08:07:41 -0500 Subject: [PATCH 0376/3441] chore: move autovalue version properties from the JDK 1.8 profile into the base profile (#197) * Move AutoValue version properties from the JDK 1.8 profile into the base profile. * fix: Move AutoValue version properties from the JDK 1.8 profile into the base profile. * chore: remove duplicate properties * chore: revert properties Co-authored-by: Praful Makani --- pom.xml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 7e19ea3d0df5..1e9e7e85fad5 100644 --- a/pom.xml +++ b/pom.xml @@ -76,6 +76,9 @@ 1.18 v2-rev20191211-1.30.8 + 1.7 + ${auto-value.version} + 1.0-rc6
    @@ -344,11 +347,6 @@ [1.8,) - - 1.7 - ${auto-value.version} - 1.0-rc6 - From 746390417bc3a6fa8db3b988afce3a4e568990e4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 28 Feb 2020 13:26:20 -0500 Subject: [PATCH 0377/3441] chore: release 1.108.0 (#189) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/pom.xml [ci skip] --- CHANGELOG.md | 13 +++++++++++++ README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 5 files changed, 21 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b14a1bebe408..f9c7184e07a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [1.108.0](https://www.github.com/googleapis/java-bigquery/compare/v1.107.0...v1.108.0) (2020-02-28) + + +### Features + +* expose requirepartitionfilter field in table ([#158](https://www.github.com/googleapis/java-bigquery/issues/158)) ([3e51ea0](https://www.github.com/googleapis/java-bigquery/commit/3e51ea02bb9a40c4d20b31a5435954c4d087f26d)) +* re-generated to pick up changes in the API or client library generator. ([#188](https://www.github.com/googleapis/java-bigquery/issues/188)) ([2720b12](https://www.github.com/googleapis/java-bigquery/commit/2720b12f536ad363d9884b5082b7e238183a95e9)) + + +### Dependencies + +* update core dependencies ([#196](https://www.github.com/googleapis/java-bigquery/issues/196)) ([0c5bb7f](https://www.github.com/googleapis/java-bigquery/commit/0c5bb7feb6d24ffb2c87ab433c52aaf4b0aa1b91)) + ## [1.107.0](https://www.github.com/googleapis/java-bigquery/compare/v1.106.0...v1.107.0) (2020-02-19) diff --git a/README.md b/README.md index 5c312655f628..1ec52d92feb1 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.107.0 + 1.108.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.107.0' +compile 'com.google.cloud:google-cloud-bigquery:1.108.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.107.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.108.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0cb86895759d..9022f0cbfcfa 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.107.1-SNAPSHOT + 1.108.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.107.1-SNAPSHOT + 1.108.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1e9e7e85fad5..e4d19783fcde 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.107.1-SNAPSHOT + 1.108.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.107.1-SNAPSHOT + 1.108.0 diff --git a/versions.txt b/versions.txt index 3e47c0dfdcae..8d63f7b8db85 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.107.0:1.107.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.108.0:1.108.0 \ No newline at end of file From 3906da1811526841eb3c9594c492820082847904 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 28 Feb 2020 21:33:43 +0100 Subject: [PATCH 0378/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v4.2.0 (#199) --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index 980f540fb67b..f774ca685eea 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -43,7 +43,7 @@ com.google.cloud libraries-bom - 4.1.1 + 4.2.0 pom import From 222f39a7b563183cb24d6cebfd6e001c09ef81bb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 29 Feb 2020 15:03:04 -0500 Subject: [PATCH 0379/3441] chore: release 1.108.1-SNAPSHOT (#200) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9022f0cbfcfa..31762c0b28b2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.108.0 + 1.108.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.108.0 + 1.108.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e4d19783fcde..1b8b72022438 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.108.0 + 1.108.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.108.0 + 1.108.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 8d63f7b8db85..8fbc441d52fd 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.108.0:1.108.0 \ No newline at end of file +google-cloud-bigquery:1.108.0:1.108.1-SNAPSHOT \ No newline at end of file From 1c641935a89d9702c688b1ba71964607d7f4e353 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 2 Mar 2020 17:24:04 +0100 Subject: [PATCH 0380/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.105.0 (#201) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1b8b72022438..0a24a037c5a1 100644 --- a/pom.xml +++ b/pom.xml @@ -200,7 +200,7 @@ com.google.cloud google-cloud-storage - 1.103.1 + 1.105.0 test From 89cf97d798beb18066f630b90217fe9386d3b346 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 2 Mar 2020 16:31:29 -0500 Subject: [PATCH 0381/3441] samples: add new sample bigquery_table_insert_rows (#205) --- .../com/example/bigquery/TableInsertRows.java | 70 ++++++++++++++++ .../com/example/bigquery/CreateTableIT.java | 26 +++--- .../example/bigquery/TableInsertRowsIT.java | 80 +++++++++++++++++++ 3 files changed, 167 insertions(+), 9 deletions(-) create mode 100644 samples/src/main/java/com/example/bigquery/TableInsertRows.java create mode 100644 samples/src/test/java/com/example/bigquery/TableInsertRowsIT.java diff --git a/samples/src/main/java/com/example/bigquery/TableInsertRows.java b/samples/src/main/java/com/example/bigquery/TableInsertRows.java new file mode 100644 index 000000000000..4163a5979f32 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/TableInsertRows.java @@ -0,0 +1,70 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_table_insert_rows] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryError; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.InsertAllRequest; +import com.google.cloud.bigquery.InsertAllResponse; +import com.google.cloud.bigquery.TableId; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class TableInsertRows { + + public static void runTableInsertRows() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + tableInsertRows(datasetName, tableName); + } + + public static void tableInsertRows(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Get table + TableId tableId = TableId.of(datasetName, tableName); + + // Create a row to insert + Map rowContent = new HashMap<>(); + rowContent.put("booleanField", true); + rowContent.put("numericField", "3.14"); + + // Inserts rowContent into datasetName:tableId. + InsertAllResponse response = + bigquery.insertAll(InsertAllRequest.newBuilder(tableId).addRow(rowContent).build()); + + if (response.hasErrors()) { + // If any of the insertions failed, this lets you inspect the errors + for (Map.Entry> entry : response.getInsertErrors().entrySet()) { + System.out.println("Response error: \n" + entry.getValue()); + } + } + System.out.println("Rows successfully inserted into table"); + } catch (BigQueryException e) { + System.out.println("Insert operation not performed \n" + e.toString()); + } + } +} +// [END bigquery_table_insert_rows] diff --git a/samples/src/test/java/com/example/bigquery/CreateTableIT.java b/samples/src/test/java/com/example/bigquery/CreateTableIT.java index 497ae4babe00..abc7709c9ee7 100644 --- a/samples/src/test/java/com/example/bigquery/CreateTableIT.java +++ b/samples/src/test/java/com/example/bigquery/CreateTableIT.java @@ -17,21 +17,35 @@ package com.example.bigquery; import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; import com.google.cloud.bigquery.Field; import com.google.cloud.bigquery.LegacySQLTypeName; import com.google.cloud.bigquery.Schema; -import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.After; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; public class CreateTableIT { private ByteArrayOutputStream bout; private PrintStream out; + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + @Before public void setUp() { bout = new ByteArrayOutputStream(); @@ -46,22 +60,16 @@ public void tearDown() { @Test public void testCreateTable() { - String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); - - // Create a new dataset to create a table in - CreateDataset.createDataset(generatedDatasetName); - - // Create an empty table with specific schema in the dataset just created String tableName = "MY_TABLE_NAME"; Schema schema = Schema.of( Field.of("stringField", LegacySQLTypeName.STRING), Field.of("booleanField", LegacySQLTypeName.BOOLEAN)); - CreateTable.createTable(generatedDatasetName, tableName, schema); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); assertThat(bout.toString()).contains("Table created successfully"); // Clean up - DeleteTable.deleteTable(generatedDatasetName, tableName); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } diff --git a/samples/src/test/java/com/example/bigquery/TableInsertRowsIT.java b/samples/src/test/java/com/example/bigquery/TableInsertRowsIT.java new file mode 100644 index 000000000000..311cd9bd4527 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/TableInsertRowsIT.java @@ -0,0 +1,80 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class TableInsertRowsIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testTableInsertRows() { + String tableName = "InsertRowsTestTable_" + UUID.randomUUID().toString().replace('-', '_'); + Schema schema = + Schema.of( + Field.of("booleanField", LegacySQLTypeName.BOOLEAN), + Field.of("numericField", LegacySQLTypeName.NUMERIC)); + + // Create table in dataset for testing + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + + // Testing + TableInsertRows.tableInsertRows(BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Rows successfully inserted into table"); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + } +} From cea38bad185017fd27c4c1b43c17caa709519f8b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 3 Mar 2020 23:47:15 +0100 Subject: [PATCH 0382/3441] deps: update core dependencies to v1.93.1 (#208) --- pom.xml | 2 +- samples/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 0a24a037c5a1..e6fb0bb3db49 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - 1.93.0 + 1.93.1 1.8.1 1.17.0 1.54.0 diff --git a/samples/pom.xml b/samples/pom.xml index f774ca685eea..2d73dd1fcee3 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -64,7 +64,7 @@ com.google.cloud google-cloud-core - 1.93.0 + 1.93.1 com.google.auth From 6bb03ada52741183c4dc838bac4561cb6f7afdd3 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 5 Mar 2020 17:05:54 -0500 Subject: [PATCH 0383/3441] chore: release 1.108.1 (#206) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated samples/pom.xml [ci skip] * updated pom.xml [ci skip] --- CHANGELOG.md | 8 ++++++++ README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 5 files changed, 16 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9c7184e07a8..33f82ec7bd6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.108.1](https://www.github.com/googleapis/java-bigquery/compare/v1.108.0...v1.108.1) (2020-03-03) + + +### Dependencies + +* update core dependencies to v1.93.1 ([#208](https://www.github.com/googleapis/java-bigquery/issues/208)) ([cea38ba](https://www.github.com/googleapis/java-bigquery/commit/cea38bad185017fd27c4c1b43c17caa709519f8b)) +* update dependency com.google.cloud:google-cloud-storage to v1.105.0 ([#201](https://www.github.com/googleapis/java-bigquery/issues/201)) ([1c64193](https://www.github.com/googleapis/java-bigquery/commit/1c641935a89d9702c688b1ba71964607d7f4e353)) + ## [1.108.0](https://www.github.com/googleapis/java-bigquery/compare/v1.107.0...v1.108.0) (2020-02-28) diff --git a/README.md b/README.md index 1ec52d92feb1..fd92f3feb5b4 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.108.0 + 1.108.1 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.108.0' +compile 'com.google.cloud:google-cloud-bigquery:1.108.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.108.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.108.1" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 31762c0b28b2..20379d0d886a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.108.1-SNAPSHOT + 1.108.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.108.1-SNAPSHOT + 1.108.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e6fb0bb3db49..cf44b54fcf16 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.108.1-SNAPSHOT + 1.108.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.108.1-SNAPSHOT + 1.108.1 diff --git a/versions.txt b/versions.txt index 8fbc441d52fd..739b812567d6 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.108.0:1.108.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.108.1:1.108.1 \ No newline at end of file From 40a96a0dcea2ec56e50479d92d02b58c8972ac36 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 5 Mar 2020 17:56:42 -0500 Subject: [PATCH 0384/3441] deps: update dependency com.google.cloud.samples:shared-configuration to v1.0.12 (#210) --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index 2d73dd1fcee3..ea895496b8a7 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.11 + 1.0.12 From dc903365aecf38473885036cf1ab17f9b3dd02b1 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 6 Mar 2020 14:01:45 -0500 Subject: [PATCH 0385/3441] samples: add new sample bigquery_load_from_file (#209) * samples: add new sample bigquery_load_from_file * updates * update to try w multiple resources * update to try w multiple resources move unhelpful exceptions to method signature * add comment Co-Authored-By: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com> * nit - remove extra semicolon Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com> --- .../com/example/bigquery/LoadLocalFile.java | 91 ++ .../com/example/bigquery/LoadLocalFileIT.java | 86 ++ .../bigquery/LoadPartitionedTableIT.java | 4 +- .../src/test/resources/bigquery_noheader.csv | 1014 +++++++++++++++++ 4 files changed, 1194 insertions(+), 1 deletion(-) create mode 100644 samples/src/main/java/com/example/bigquery/LoadLocalFile.java create mode 100644 samples/src/test/java/com/example/bigquery/LoadLocalFileIT.java create mode 100644 samples/src/test/resources/bigquery_noheader.csv diff --git a/samples/src/main/java/com/example/bigquery/LoadLocalFile.java b/samples/src/main/java/com/example/bigquery/LoadLocalFile.java new file mode 100644 index 000000000000..e6e2e3915b18 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/LoadLocalFile.java @@ -0,0 +1,91 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_from_file] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobStatistics.LoadStatistics; +import com.google.cloud.bigquery.TableDataWriteChannel; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.WriteChannelConfiguration; +import java.io.IOException; +import java.io.OutputStream; +import java.nio.channels.Channels; +import java.nio.file.FileSystems; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.UUID; + +public class LoadLocalFile { + + public static void runLoadLocalFile() throws IOException, InterruptedException { + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + Path csvPath = FileSystems.getDefault().getPath(".", "my-data.csv"); + loadLocalFile(datasetName, tableName, csvPath); + } + + public static void loadLocalFile(String datasetName, String tableName, Path csvPath) + throws IOException, InterruptedException { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + TableId tableId = TableId.of(datasetName, tableName); + + WriteChannelConfiguration writeChannelConfiguration = + WriteChannelConfiguration.newBuilder(tableId) + .setFormatOptions(FormatOptions.csv()) + .build(); + + // The location and JobName must be specified; other fields can be auto-detected. + String jobName = "jobId_" + UUID.randomUUID().toString(); + JobId jobId = JobId.newBuilder().setLocation("us").setJob(jobName).build(); + + // Imports a local file into a table. + try (TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration); + OutputStream stream = Channels.newOutputStream(writer)) { + Files.copy(csvPath, stream); + } + + // Get the Job created by the TableDataWriteChannel and wait for it to complete. + Job job = bigquery.getJob(jobId); + Job completedJob = job.waitFor(); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to load local file to the table due to an error: \n" + + job.getStatus().getError()); + return; + } + + // Get output status + LoadStatistics stats = job.getStatistics(); + System.out.printf("Successfully loaded %d rows. \n", stats.getOutputRows()); + } catch (BigQueryException e) { + System.out.println("Local file not loaded. \n" + e.toString()); + } + } +} +// [END bigquery_load_from_file] diff --git a/samples/src/test/java/com/example/bigquery/LoadLocalFileIT.java b/samples/src/test/java/com/example/bigquery/LoadLocalFileIT.java new file mode 100644 index 000000000000..a1a8d5a6f7ab --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/LoadLocalFileIT.java @@ -0,0 +1,86 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.nio.file.FileSystems; +import java.nio.file.Path; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadLocalFileIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void loadLocalFile() throws IOException, InterruptedException { + String tableName = "LoadLocalFileTestTable_" + UUID.randomUUID().toString().replace('-', '_'); + Schema schema = + Schema.of( + Field.of("Name", LegacySQLTypeName.STRING), + Field.of("Age", LegacySQLTypeName.NUMERIC), + Field.of("Weight", LegacySQLTypeName.NUMERIC), + Field.of("IsMagic", LegacySQLTypeName.BOOLEAN)); + + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + + Path csvPath = FileSystems.getDefault().getPath("src/test/resources", "bigquery_noheader.csv"); + + LoadLocalFile.loadLocalFile(BIGQUERY_DATASET_NAME, tableName, csvPath); + + assertThat(bout.toString()).contains("Successfully loaded"); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + } +} diff --git a/samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java b/samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java index f8af4253014a..7f97d07d381e 100644 --- a/samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java +++ b/samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java @@ -21,6 +21,7 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.UUID; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -59,7 +60,8 @@ public void tearDown() { public void loadPartitionedTable() throws Exception { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states-by-date-no-header.csv"; - String tableName = "LOAD_PARTITIONED_TABLE_TEST"; + String tableName = + "LOAD_PARTITIONED_TABLE_TEST_" + UUID.randomUUID().toString().replace('-', '_'); LoadPartitionedTable.loadPartitionedTable(BIGQUERY_DATASET_NAME, tableName, sourceUri); diff --git a/samples/src/test/resources/bigquery_noheader.csv b/samples/src/test/resources/bigquery_noheader.csv new file mode 100644 index 000000000000..2e6059952fa7 --- /dev/null +++ b/samples/src/test/resources/bigquery_noheader.csv @@ -0,0 +1,1014 @@ +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +Gandalf,2000,140,true +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,2,199.9,false +test,4,199.9,false +test,2,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,2,199.9,false +test,1,199.9,false +test,0,199.9,false +test,2,199.9,false +test,2,199.9,false +test,0,199.9,false +test,2,199.9,false +test,0,199.9,false +test,4,199.9,false +test,2,199.9,false +test,0,199.9,false +test,3,199.9,false +test,3,199.9,false +test,4,199.9,false +test,4,199.9,false +test,4,199.9,false +test,0,199.9,false +test,3,199.9,false +test,1,199.9,false +test,3,199.9,false +test,3,199.9,false +test,1,199.9,false +test,2,199.9,false +test,3,199.9,false +test,4,199.9,false +test,4,199.9,false +test,1,199.9,false +test,4,199.9,false +test,0,199.9,false +test,2,199.9,false +test,0,199.9,false +test,3,199.9,false +test,4,199.9,false +test,1,199.9,false +test,3,199.9,false +test,1,199.9,false +test,0,199.9,false +test,3,199.9,false +test,3,199.9,false +test,0,199.9,false +test,4,199.9,false +test,1,199.9,false +test,2,199.9,false +test,1,199.9,false +test,1,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,199.9,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,2,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,3,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +Gandalf,2000,140,true From 8475bd9e39b5ec0ebbb43ab12beba43de3bff139 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 6 Mar 2020 20:02:05 +0100 Subject: [PATCH 0386/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20191211-1.30.9 (#212) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cf44b54fcf16..96095f5afc7c 100644 --- a/pom.xml +++ b/pom.xml @@ -74,7 +74,7 @@ 1.4.1 1.3.2 1.18 - v2-rev20191211-1.30.8 + v2-rev20191211-1.30.9 1.7 ${auto-value.version} From 198410a3a1176d628e76049e633d4c04f35f408c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 6 Mar 2020 14:10:29 -0500 Subject: [PATCH 0387/3441] chore: release 1.108.2-SNAPSHOT (#211) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 20379d0d886a..2704ab9c4966 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.108.1 + 1.108.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.108.1 + 1.108.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 96095f5afc7c..ea5f2c0f82eb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.108.1 + 1.108.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.108.1 + 1.108.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 739b812567d6..cbc4744ac9b3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.108.1:1.108.1 \ No newline at end of file +google-cloud-bigquery:1.108.1:1.108.2-SNAPSHOT \ No newline at end of file From c42eb41a2247ba64072e6e15c09b7ca6e5de173e Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 9 Mar 2020 10:57:22 -0400 Subject: [PATCH 0388/3441] samples: setProjectId explicitly in sample (#215) * samples: setProjectId explicitly in sample nit update * nit Co-Authored-By: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com> Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com> --- .../main/java/com/example/bigquery/AuthSnippets.java | 11 +++++++++-- .../main/java/com/example/bigquery/DeleteDataset.java | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/samples/src/main/java/com/example/bigquery/AuthSnippets.java b/samples/src/main/java/com/example/bigquery/AuthSnippets.java index a1f3bfb3e938..63909b0e5a3f 100644 --- a/samples/src/main/java/com/example/bigquery/AuthSnippets.java +++ b/samples/src/main/java/com/example/bigquery/AuthSnippets.java @@ -49,18 +49,25 @@ public static void implicit() { // [START bigquery_client_json_credentials] public static void explicit() throws IOException { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + File credentialsPath = new File("path/to/your/service_account.json"); + // Load credentials from JSON key file. If you can't set the GOOGLE_APPLICATION_CREDENTIALS // environment variable, you can explicitly load the credentials file to construct the // credentials. GoogleCredentials credentials; - File credentialsPath = new File("service_account.json"); // TODO: update to your key path. try (FileInputStream serviceAccountStream = new FileInputStream(credentialsPath)) { credentials = ServiceAccountCredentials.fromStream(serviceAccountStream); } // Instantiate a client. BigQuery bigquery = - BigQueryOptions.newBuilder().setCredentials(credentials).build().getService(); + BigQueryOptions.newBuilder() + .setCredentials(credentials) + .setProjectId(projectId) + .build() + .getService(); // Use the client. System.out.println("Datasets:"); diff --git a/samples/src/main/java/com/example/bigquery/DeleteDataset.java b/samples/src/main/java/com/example/bigquery/DeleteDataset.java index 7018d039795f..b7eac9dab794 100644 --- a/samples/src/main/java/com/example/bigquery/DeleteDataset.java +++ b/samples/src/main/java/com/example/bigquery/DeleteDataset.java @@ -26,7 +26,7 @@ public class DeleteDataset { public static void runDeleteDataset() { - // TODO(developer): Replace these variables before running the sample.\ + // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String datasetName = "MY_DATASET_NAME"; deleteDataset(projectId, datasetName); From b5215cb1c6a216b85ff334b62fdade4ae10943ac Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 9 Mar 2020 18:36:24 -0400 Subject: [PATCH 0389/3441] samples: new sample bigquery_auth_drive_scope (#214) * samples: new sample bigquery_auth_drive_scope * nit * nit Co-Authored-By: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com> * nit Co-Authored-By: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com> * update based on comments Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com> --- .../com/example/bigquery/AuthDriveScope.java | 57 +++++++++++++++++++ .../example/bigquery/AuthDriveScopeIT.java | 49 ++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 samples/src/main/java/com/example/bigquery/AuthDriveScope.java create mode 100644 samples/src/test/java/com/example/bigquery/AuthDriveScopeIT.java diff --git a/samples/src/main/java/com/example/bigquery/AuthDriveScope.java b/samples/src/main/java/com/example/bigquery/AuthDriveScope.java new file mode 100644 index 000000000000..23573d56b944 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/AuthDriveScope.java @@ -0,0 +1,57 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_auth_drive_scope] +import com.google.auth.oauth2.GoogleCredentials; +import com.google.auth.oauth2.ServiceAccountCredentials; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.common.collect.ImmutableSet; +import java.io.IOException; + +public class AuthDriveScope { + + public static void setAuthDriveScope() throws IOException { + // Create credentials with Drive & BigQuery API scopes. + // Both APIs must be enabled for your project before running this code. + GoogleCredentials credentials = + ServiceAccountCredentials.getApplicationDefault() + .createScoped( + ImmutableSet.of( + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/drive")); + + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = + BigQueryOptions.newBuilder().setCredentials(credentials).build().getService(); + + // Use the client. + System.out.println("Auth succeeded with multiple scopes. Datasets:"); + for (Dataset dataset : bigquery.listDatasets().iterateAll()) { + System.out.printf("Dataset: %s%n", dataset.getDatasetId().getDataset()); + } + } catch (BigQueryException e) { + System.out.println("Auth failed due to error: \n" + e.toString()); + } + } +} +// [END bigquery_auth_drive_scope] diff --git a/samples/src/test/java/com/example/bigquery/AuthDriveScopeIT.java b/samples/src/test/java/com/example/bigquery/AuthDriveScopeIT.java new file mode 100644 index 000000000000..15d05dec6ae8 --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/AuthDriveScopeIT.java @@ -0,0 +1,49 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class AuthDriveScopeIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void setAuthDriveScope() throws IOException { + AuthDriveScope.setAuthDriveScope(); + assertThat(bout.toString()).contains("Auth succeeded with multiple scopes."); + } +} From 62bea51c506cca5ffb48b13b1f7e1defbb14bae8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 10 Mar 2020 21:06:41 +0100 Subject: [PATCH 0390/3441] build(deps): update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.1.0 (#217) --- google-cloud-bigquery/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2704ab9c4966..de0ba80784ed 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -124,7 +124,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.0.0 + 3.1.0 add-source From f4a11991ae129ef1da2764b163d82838e59737ac Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 10 Mar 2020 21:07:00 +0100 Subject: [PATCH 0391/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.105.1 (#216) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ea5f2c0f82eb..b488f76836c8 100644 --- a/pom.xml +++ b/pom.xml @@ -200,7 +200,7 @@ com.google.cloud google-cloud-storage - 1.105.0 + 1.105.1 test From 3573899485431f57703c2dc1615df79a3a37d075 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 12 Mar 2020 16:39:57 +0100 Subject: [PATCH 0392/3441] deps: update core dependencies (#218) --- pom.xml | 4 ++-- samples/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index b488f76836c8..c58835ede3d7 100644 --- a/pom.xml +++ b/pom.xml @@ -63,11 +63,11 @@ UTF-8 github google-cloud-bigquery-parent - 1.93.1 + 1.93.2 1.8.1 1.17.0 1.54.0 - 1.27.2 + 1.28.0 3.11.4 4.13 28.2-android diff --git a/samples/pom.xml b/samples/pom.xml index ea895496b8a7..0c6bb93eb40d 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -64,7 +64,7 @@ com.google.cloud google-cloud-core - 1.93.1 + 1.93.2 com.google.auth From ee02cc1686fd2e989bb4e0069450b35e00a7ef00 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Thu, 12 Mar 2020 14:00:05 -0700 Subject: [PATCH 0393/3441] chore: update name_pretty (#219) --- .repo-metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.repo-metadata.json b/.repo-metadata.json index 1e243b87bab6..3db81c9ae2c5 100644 --- a/.repo-metadata.json +++ b/.repo-metadata.json @@ -1,6 +1,6 @@ { "name": "bigquery", - "name_pretty": "Google Cloud Bigquery", + "name_pretty": "BigQuery", "product_documentation": "https://cloud.google.com/bigquery", "client_documentation": "https://googleapis.dev/java/google-cloud-bigquery/latest", "issue_tracker": "https://issuetracker.google.com/savedsearches/559654", @@ -10,4 +10,4 @@ "repo_short": "java-bigquery", "distribution_name": "com.google.cloud:google-cloud-bigquery", "api_id": "bigquery.googleapis.com" -} \ No newline at end of file +} From 98d38c1e0924d3416fdb3344b563cbaa73633768 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 13 Mar 2020 15:56:05 -0700 Subject: [PATCH 0394/3441] chore: update PR template (#221) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-03-13 14:40:51,913 synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py. 2020-03-13 14:40:51,973 synthtool > Ensuring dependencies. 2020-03-13 14:40:51,980 synthtool > Pulling artman image. latest: Pulling from googleapis/artman Digest: sha256:f54b7644a1d2e7a37b23f5c0dfe9bba473e41c675002a507a244389e27487ca9 Status: Image is up to date for googleapis/artman:latest .github/ISSUE_TEMPLATE/bug_report.md .github/ISSUE_TEMPLATE/feature_request.md .github/ISSUE_TEMPLATE/support_request.md .github/PULL_REQUEST_TEMPLATE.md .github/release-please.yml .github/trusted-contribution.yml .kokoro/build.bat .kokoro/build.sh .kokoro/coerce_logs.sh .kokoro/common.cfg .kokoro/continuous/common.cfg .kokoro/continuous/dependencies.cfg .kokoro/continuous/integration.cfg .kokoro/continuous/java11.cfg .kokoro/continuous/java7.cfg .kokoro/continuous/java8-osx.cfg .kokoro/continuous/java8-win.cfg .kokoro/continuous/java8.cfg .kokoro/continuous/lint.cfg .kokoro/continuous/propose_release.cfg .kokoro/continuous/samples.cfg .kokoro/dependencies.sh .kokoro/linkage-monitor.sh .kokoro/nightly/common.cfg .kokoro/nightly/dependencies.cfg .kokoro/nightly/integration.cfg .kokoro/nightly/java11.cfg .kokoro/nightly/java7.cfg .kokoro/nightly/java8-osx.cfg .kokoro/nightly/java8-win.cfg .kokoro/nightly/java8.cfg .kokoro/nightly/lint.cfg .kokoro/nightly/samples.cfg .kokoro/presubmit/clirr.cfg .kokoro/presubmit/common.cfg .kokoro/presubmit/dependencies.cfg .kokoro/presubmit/integration.cfg .kokoro/presubmit/java11.cfg .kokoro/presubmit/java7.cfg .kokoro/presubmit/java8-osx.cfg .kokoro/presubmit/java8-win.cfg .kokoro/presubmit/java8.cfg .kokoro/presubmit/linkage-monitor.cfg .kokoro/presubmit/lint.cfg .kokoro/presubmit/samples.cfg .kokoro/release/bump_snapshot.cfg .kokoro/release/common.cfg .kokoro/release/common.sh .kokoro/release/drop.cfg .kokoro/release/drop.sh .kokoro/release/promote.cfg .kokoro/release/promote.sh .kokoro/release/publish_javadoc.cfg .kokoro/release/publish_javadoc.sh .kokoro/release/snapshot.cfg .kokoro/release/snapshot.sh .kokoro/release/stage.cfg .kokoro/release/stage.sh .kokoro/trampoline.sh CODE_OF_CONDUCT.md CONTRIBUTING.md LICENSE README.md codecov.yaml java.header license-checks.xml renovate.json 2020-03-13 14:40:53,101 synthtool > Wrote metadata to synth.metadata. ```
    --- .github/PULL_REQUEST_TEMPLATE.md | 8 +++++++- synth.metadata | 6 +++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 0bd0ee0620f9..0eddd3d4fc44 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1 +1,7 @@ -Fixes # (it's a good idea to open an issue first for context and/or discussion) \ No newline at end of file +Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: +- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea +- [ ] Ensure the tests and linter pass +- [ ] Code coverage does not decrease (if any source code was changed) +- [ ] Appropriate docs were updated (if necessary) + +Fixes # ☕️ diff --git a/synth.metadata b/synth.metadata index 14f51305a40c..1659a181971f 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,11 +1,11 @@ { - "updateTime": "2020-02-24T22:40:35.722548Z", + "updateTime": "2020-03-13T21:40:53.101392Z", "sources": [ { "generator": { "name": "artman", - "version": "0.45.1", - "dockerImage": "googleapis/artman@sha256:36956ca6a4dc70a59de5d5d0fd35061b050bb56884516f0898f46d8220f25738" + "version": "1.1.0", + "dockerImage": "googleapis/artman@sha256:f54b7644a1d2e7a37b23f5c0dfe9bba473e41c675002a507a244389e27487ca9" } }, { From 42f6529d54abdc91111187d026bd256905d7c83d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 15 Mar 2020 03:14:57 +0100 Subject: [PATCH 0395/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.105.2 (#220) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c58835ede3d7..0b1b414c81dd 100644 --- a/pom.xml +++ b/pom.xml @@ -200,7 +200,7 @@ com.google.cloud google-cloud-storage - 1.105.1 + 1.105.2 test From 706d7b1a02630aeb601c2f418852dee38fa1e595 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 16 Mar 2020 16:10:13 +0100 Subject: [PATCH 0396/3441] build(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.2.0 (#222) This PR contains the following updates: | Package | Update | Change | |---|---|---| | org.apache.maven.plugins:maven-javadoc-plugin | minor | `3.1.1` -> `3.2.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0b1b414c81dd..1012d6c258e1 100644 --- a/pom.xml +++ b/pom.xml @@ -269,7 +269,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.1.1 + 3.2.0 html From 1faca8400c8c689fb15cc8861385cccd89d1c948 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 18 Mar 2020 09:08:13 -0700 Subject: [PATCH 0397/3441] chore: use java helper for templates (#229) --- synth.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/synth.py b/synth.py index a3738da35a7a..93486c58397b 100644 --- a/synth.py +++ b/synth.py @@ -14,14 +14,9 @@ """This script is used to synthesize generated parts of this library.""" -import synthtool as s -import synthtool.gcp as gcp +import synthtool.languages.java as java -gapic = gcp.GAPICGenerator() - -common_templates = gcp.CommonTemplates() -templates = common_templates.java_library() -s.copy(templates, excludes=[ +java.common_templates(excludes=[ 'README.md', '.kokoro/continuous/java8-samples.cfg', '.kokoro/continuous/java11-samples.cfg', @@ -29,4 +24,4 @@ '.kokoro/nightly/java11-samples.cfg', '.kokoro/presubmit/java8-samples.cfg', '.kokoro/presubmit/java11-samples.cfg', -]) \ No newline at end of file +]) From 0338e397f61fc87d048f2869e5ee5bba2e584caa Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 18 Mar 2020 17:17:24 +0100 Subject: [PATCH 0398/3441] deps: update core dependencies to v1.93.3 (#224) --- pom.xml | 2 +- samples/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 1012d6c258e1..b720aad811ea 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - 1.93.2 + 1.93.3 1.8.1 1.17.0 1.54.0 diff --git a/samples/pom.xml b/samples/pom.xml index 0c6bb93eb40d..f1a42cac1b40 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -64,7 +64,7 @@ com.google.cloud google-cloud-core - 1.93.2 + 1.93.3 com.google.auth From b78aa00519c8af7777ef9015364d6b0259296170 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 18 Mar 2020 17:44:30 +0100 Subject: [PATCH 0399/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.106.0 (#226) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b720aad811ea..f58ffac586b0 100644 --- a/pom.xml +++ b/pom.xml @@ -200,7 +200,7 @@ com.google.cloud google-cloud-storage - 1.105.2 + 1.106.0 test From 7e568dc8f11373ac646193c0f7661c9c5c009b54 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 18 Mar 2020 19:55:13 -0400 Subject: [PATCH 0400/3441] chore: skip samples module in synth (#231) * chore: skip samples module in synth * update * Update synth.py Co-Authored-By: Jeff Ching Co-authored-by: Jeff Ching --- synth.py | 1 + 1 file changed, 1 insertion(+) diff --git a/synth.py b/synth.py index 93486c58397b..fdd1983fe7b5 100644 --- a/synth.py +++ b/synth.py @@ -18,6 +18,7 @@ java.common_templates(excludes=[ 'README.md', + 'samples/*', '.kokoro/continuous/java8-samples.cfg', '.kokoro/continuous/java11-samples.cfg', '.kokoro/nightly/java8-samples.cfg', From 6213ea98c7b58634c11ffd13e925482a3627c5dc Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 19 Mar 2020 20:55:18 +0530 Subject: [PATCH 0401/3441] feat: expose hivepartitioningoptions (#233) * feat: expose hivepartitioningoptions * feat: add javadocs --- .../bigquery/HivePartitioningOptions.java | 130 ++++++++++++++++++ .../cloud/bigquery/LoadJobConfiguration.java | 23 +++- .../bigquery/HivePartitioningOptionsTest.java | 69 ++++++++++ 3 files changed, 221 insertions(+), 1 deletion(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java new file mode 100644 index 000000000000..6c831db0dcd9 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java @@ -0,0 +1,130 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.common.base.MoreObjects; +import java.util.Objects; + +/** HivePartitioningOptions currently supported types include: AVRO, CSV, JSON, ORC and Parquet. */ +public final class HivePartitioningOptions { + + private final String mode; + private final String sourceUriPrefix; + + public static final class Builder { + + private String mode; + private String sourceUriPrefix; + + private Builder() {} + + private Builder(HivePartitioningOptions options) { + this.mode = options.mode; + this.sourceUriPrefix = options.sourceUriPrefix; + } + + /** + * [Optional] When set, what mode of hive partitioning to use when reading data. Two modes are + * supported. (1) AUTO: automatically infer partition key name(s) and type(s). (2) STRINGS: + * automatically infer partition key name(s). All types are interpreted as strings. Not all + * storage formats support hive partitioning. Requesting hive partitioning on an unsupported + * format will lead to an error. Currently supported types include: AVRO, CSV, JSON, ORC and + * Parquet. + */ + public Builder setMode(String mode) { + this.mode = mode; + return this; + } + + /** + * [Optional] When hive partition detection is requested, a common prefix for all source uris + * should be supplied. The prefix must end immediately before the partition key encoding begins. + * For example, consider files following this data layout. + * gs://bucket/path_to_table/dt=2019-01-01/country=BR/id=7/file.avro + * gs://bucket/path_to_table/dt=2018-12-31/country=CA/id=3/file.avro When hive partitioning is + * requested with either AUTO or STRINGS detection, the common prefix can be either of + * gs://bucket/path_to_table or gs://bucket/path_to_table/ (trailing slash does not matter). + */ + public Builder setSourceUriPrefix(String sourceUriPrefix) { + this.sourceUriPrefix = sourceUriPrefix; + return this; + } + + /** Creates a {@link HivePartitioningOptions} object. */ + public HivePartitioningOptions build() { + return new HivePartitioningOptions(this); + } + } + + private HivePartitioningOptions(Builder builder) { + this.mode = builder.mode; + this.sourceUriPrefix = builder.sourceUriPrefix; + } + + /* Returns the mode of hive partitioning */ + public String getMode() { + return mode; + } + + /* Returns the sourceUriPrefix of hive partitioning */ + public String getSourceUriPrefix() { + return sourceUriPrefix; + } + + /** Returns a builder for the {@link HivePartitioningOptions} object. */ + public Builder toBuilder() { + return new Builder(this); + } + + /** Returns a builder for the {@link HivePartitioningOptions} object. */ + public static Builder newBuilder() { + return new Builder(); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("mode", mode) + .add("sourceUriPrefix", sourceUriPrefix) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(mode, sourceUriPrefix); + } + + com.google.api.services.bigquery.model.HivePartitioningOptions toPb() { + com.google.api.services.bigquery.model.HivePartitioningOptions options = + new com.google.api.services.bigquery.model.HivePartitioningOptions(); + options.setMode(mode); + options.setSourceUriPrefix(sourceUriPrefix); + return options; + } + + static HivePartitioningOptions fromPb( + com.google.api.services.bigquery.model.HivePartitioningOptions options) { + Builder builder = newBuilder(); + if (options.getMode() != null) { + builder.setMode(options.getMode()); + } + if (options.getSourceUriPrefix() != null) { + builder.setSourceUriPrefix(options.getSourceUriPrefix()); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index c68e3f3b9f56..0eae67bd6620 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -54,6 +54,7 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private final Map labels; private final Long jobTimeoutMs; private final RangePartitioning rangePartitioning; + private final HivePartitioningOptions hivePartitioningOptions; public static final class Builder extends JobConfiguration.Builder implements LoadConfiguration.Builder { @@ -77,6 +78,7 @@ public static final class Builder extends JobConfiguration.Builder labels; private Long jobTimeoutMs; private RangePartitioning rangePartitioning; + private HivePartitioningOptions hivePartitioningOptions; private Builder() { super(Type.LOAD); @@ -103,6 +105,7 @@ private Builder(LoadJobConfiguration loadConfiguration) { this.labels = loadConfiguration.labels; this.jobTimeoutMs = loadConfiguration.jobTimeoutMs; this.rangePartitioning = loadConfiguration.rangePartitioning; + this.hivePartitioningOptions = loadConfiguration.hivePartitioningOptions; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -186,6 +189,10 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this.rangePartitioning = RangePartitioning.fromPb(loadConfigurationPb.getRangePartitioning()); } + if (loadConfigurationPb.getHivePartitioningOptions() != null) { + this.hivePartitioningOptions = + HivePartitioningOptions.fromPb(loadConfigurationPb.getHivePartitioningOptions()); + } } @Override @@ -319,6 +326,11 @@ public Builder setRangePartitioning(RangePartitioning rangePartitioning) { return this; } + public Builder setHivePartitioningOptions(HivePartitioningOptions hivePartitioningOptions) { + this.hivePartitioningOptions = hivePartitioningOptions; + return this; + } + @Override public LoadJobConfiguration build() { return new LoadJobConfiguration(this); @@ -345,6 +357,7 @@ private LoadJobConfiguration(Builder builder) { this.labels = builder.labels; this.jobTimeoutMs = builder.jobTimeoutMs; this.rangePartitioning = builder.rangePartitioning; + this.hivePartitioningOptions = builder.hivePartitioningOptions; } @Override @@ -452,6 +465,10 @@ public RangePartitioning getRangePartitioning() { return rangePartitioning; } + public HivePartitioningOptions getHivePartitioningOptions() { + return hivePartitioningOptions; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -477,7 +494,8 @@ ToStringHelper toStringHelper() { .add("useAvroLogicalTypes", useAvroLogicalTypes) .add("labels", labels) .add("jobTimeoutMs", jobTimeoutMs) - .add("rangePartitioning", rangePartitioning); + .add("rangePartitioning", rangePartitioning) + .add("hivePartitioningOptions", hivePartitioningOptions); } @Override @@ -570,6 +588,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (rangePartitioning != null) { loadConfigurationPb.setRangePartitioning(rangePartitioning.toPb()); } + if (hivePartitioningOptions != null) { + loadConfigurationPb.setHivePartitioningOptions(hivePartitioningOptions.toPb()); + } jobConfiguration.setLoad(loadConfigurationPb); return jobConfiguration; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java new file mode 100644 index 000000000000..6c2aa5427f68 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java @@ -0,0 +1,69 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import org.junit.Test; + +public class HivePartitioningOptionsTest { + + private static final String MODE = "STRING"; + private static final String SOURCE_URI_PREFIX = "gs://bucket/path_to_table"; + private static final HivePartitioningOptions HIVE_PARTITIONING_OPTIONS = + HivePartitioningOptions.newBuilder() + .setMode(MODE) + .setSourceUriPrefix(SOURCE_URI_PREFIX) + .build(); + + @Test + public void testToBuilder() { + compareHivePartitioningOptions( + HIVE_PARTITIONING_OPTIONS, HIVE_PARTITIONING_OPTIONS.toBuilder().build()); + HivePartitioningOptions options = HIVE_PARTITIONING_OPTIONS.toBuilder().setMode("AUTO").build(); + assertThat(options.getMode()).isEqualTo("AUTO"); + options = HIVE_PARTITIONING_OPTIONS.toBuilder().setMode(MODE).build(); + compareHivePartitioningOptions(HIVE_PARTITIONING_OPTIONS, options); + } + + @Test + public void testToBuilderIncomplete() { + HivePartitioningOptions options = HivePartitioningOptions.newBuilder().build(); + compareHivePartitioningOptions(options, options.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertThat(HIVE_PARTITIONING_OPTIONS.getMode()).isEqualTo(MODE); + assertThat(HIVE_PARTITIONING_OPTIONS.getSourceUriPrefix()).isEqualTo(SOURCE_URI_PREFIX); + } + + @Test + public void testToAndFromPb() { + compareHivePartitioningOptions( + HIVE_PARTITIONING_OPTIONS, + HivePartitioningOptions.fromPb(HIVE_PARTITIONING_OPTIONS.toPb())); + } + + private void compareHivePartitioningOptions( + HivePartitioningOptions expected, HivePartitioningOptions value) { + assertThat(value.getMode()).isEqualTo(expected.getMode()); + assertThat(value.getSourceUriPrefix()).isEqualTo(expected.getSourceUriPrefix()); + assertThat(value.toString()).isEqualTo(expected.toString()); + assertThat(value.hashCode()).isEqualTo(expected.hashCode()); + } +} From d33b64594f9b3217b0fc89d255618b558a9d45e8 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 20 Mar 2020 05:33:12 +0530 Subject: [PATCH 0402/3441] feat: add materialize view (#174) * feat: add materialize view * feat: add unit test case * feat: modified comment * feat: add additional fields and code coverage * feat: add integration test * feat: run formatter --- .../bigquery/MaterializedViewDefinition.java | 155 ++++++++++++++++++ .../cloud/bigquery/TableDefinition.java | 10 ++ .../MaterializedViewDefinitionTest.java | 99 +++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 51 ++++-- 4 files changed, 303 insertions(+), 12 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MaterializedViewDefinition.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MaterializedViewDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MaterializedViewDefinition.java new file mode 100644 index 000000000000..bf3a913a9c42 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MaterializedViewDefinition.java @@ -0,0 +1,155 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.Table; +import com.google.auto.value.AutoValue; +import javax.annotation.Nullable; + +@AutoValue +public abstract class MaterializedViewDefinition extends TableDefinition { + + private static final long serialVersionUID = 5898696389126164276L; + + @AutoValue.Builder + public abstract static class Builder + extends TableDefinition.Builder { + + /** + * [Output-only] The time when this materialized view was last modified, in milliseconds since + * the epoch. + */ + abstract Builder setLastRefreshTime(Long lastRefreshTime); + + /** Sets the query whose result is persisted. */ + public abstract Builder setQuery(String query); + + /** + * Set enable automatic refresh of the materialized view when the base table is updated. The + * default value is "true". + */ + public abstract Builder setEnableRefresh(Boolean enableRefresh); + + /** + * Set a maximum frequency at which this materialized view will be refreshed. The default value + * is "1800000" (30 minutes). + */ + public abstract Builder setRefreshIntervalMs(Long refreshIntervalMs); + + /** Sets the table schema. */ + @Override + public abstract Builder setSchema(Schema schema); + + @Override + public abstract Builder setType(Type type); + + /** Creates a {@code MaterializedViewDefinition} object. */ + @Override + public abstract MaterializedViewDefinition build(); + } + + /** + * Returns time when this materialized view was last modified, in milliseconds since the epoch. + */ + @Nullable + public abstract Long getLastRefreshTime(); + + /** Returns a query whose result is persisted. */ + @Nullable + public abstract String getQuery(); + + /** + * Returns enable automatic refresh of the materialized view when the base table is updated. The + * default value is "true". + */ + @Nullable + public abstract Boolean getEnableRefresh(); + + /** + * Returns a maximum frequency at which this materialized view will be refreshed. The default + * value is "1800000" (30 minutes). + */ + @Nullable + public abstract Long getRefreshIntervalMs(); + + /** Returns a builder for the {@code MaterializedViewDefinition} object. */ + public abstract Builder toBuilder(); + + @Override + Table toPb() { + Table tablePb = super.toPb(); + com.google.api.services.bigquery.model.MaterializedViewDefinition materializedViewDefinition = + new com.google.api.services.bigquery.model.MaterializedViewDefinition(); + if (getQuery() != null) { + materializedViewDefinition.setQuery(getQuery()); + } + if (getLastRefreshTime() != null) { + materializedViewDefinition.setLastRefreshTime(getLastRefreshTime()); + } + if (getEnableRefresh() != null) { + materializedViewDefinition.setEnableRefresh(getEnableRefresh()); + } + if (getRefreshIntervalMs() != null) { + materializedViewDefinition.setRefreshIntervalMs(getRefreshIntervalMs()); + } + tablePb.setMaterializedView(materializedViewDefinition); + return tablePb; + } + + static Builder newBuilder() { + return new AutoValue_MaterializedViewDefinition.Builder().setType(Type.MATERIALIZED_VIEW); + } + + /** + * Returns a builder for a BigQuery materialized view definition. + * + * @param query the query used to generate the materialized view + */ + public static Builder newBuilder(String query) { + return newBuilder().setQuery(query); + } + + /** + * Returns a builder for a BigQuery materialized view definition. + * + * @param query the query used to generate the materialized view + */ + public static MaterializedViewDefinition of(String query) { + return newBuilder(query).build(); + } + + static MaterializedViewDefinition fromPb(Table tablePb) { + Builder builder = newBuilder().table(tablePb); + if (tablePb.getMaterializedView() != null) { + com.google.api.services.bigquery.model.MaterializedViewDefinition materializedViewDefinition = + tablePb.getMaterializedView(); + if (materializedViewDefinition.getQuery() != null) { + builder.setQuery(materializedViewDefinition.getQuery()); + } + if (materializedViewDefinition.getLastRefreshTime() != null) { + builder.setLastRefreshTime(materializedViewDefinition.getLastRefreshTime()); + } + if (materializedViewDefinition.getEnableRefresh() != null) { + builder.setEnableRefresh(materializedViewDefinition.getEnableRefresh()); + } + if (materializedViewDefinition.getRefreshIntervalMs() != null) { + builder.setRefreshIntervalMs(materializedViewDefinition.getRefreshIntervalMs()); + } + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java index 75d4bf4031f0..6babd4e6f4e2 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java @@ -57,6 +57,14 @@ public Type apply(String constant) { */ public static final Type VIEW = type.createAndRegister("VIEW"); + /** + * SQL query whose result is persisted. Instances of {@code MaterializedViewDefinition} for this + * type are implemented by {@link MaterializedViewDefinition}. + * + * @see Views + */ + public static final Type MATERIALIZED_VIEW = type.createAndRegister("MATERIALIZED_VIEW"); + /** * A BigQuery table backed by external data. Instances of {@code TableDefinition} for this type * are implemented by {@link ExternalTableDefinition}. @@ -151,6 +159,8 @@ static T fromPb(Table tablePb) { return (T) StandardTableDefinition.fromPb(tablePb); case "VIEW": return (T) ViewDefinition.fromPb(tablePb); + case "MATERIALIZED_VIEW": + return (T) MaterializedViewDefinition.fromPb(tablePb); case "EXTERNAL": return (T) ExternalTableDefinition.fromPb(tablePb); case "MODEL": diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java new file mode 100644 index 000000000000..ab1caab07eac --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java @@ -0,0 +1,99 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class MaterializedViewDefinitionTest { + + private static final String MATERIALIZED_VIEW_QUERY = "MATERIALIZED_VIEW_QUERY"; + private static final Long LAST_REFRESH_TIME = 1580302008L; + private static final Boolean ENABLE_REFRESH = false; + private static final Long REFRESH_INTERVAL_MS = 60000L; + private static final Schema SCHEMA = Schema.of(); + private static final MaterializedViewDefinition MATERIALIZED_VIEW_DEFINITION = + MaterializedViewDefinition.newBuilder() + .setSchema(SCHEMA) + .setQuery(MATERIALIZED_VIEW_QUERY) + .setLastRefreshTime(LAST_REFRESH_TIME) + .setEnableRefresh(ENABLE_REFRESH) + .setRefreshIntervalMs(REFRESH_INTERVAL_MS) + .build(); + + @Test + public void testToBuilder() { + compareMaterializedView( + MATERIALIZED_VIEW_DEFINITION, MATERIALIZED_VIEW_DEFINITION.toBuilder().build()); + MaterializedViewDefinition materializedViewDefinition = + MATERIALIZED_VIEW_DEFINITION.toBuilder().setQuery("NEW QUERY").build(); + assertEquals("NEW QUERY", materializedViewDefinition.getQuery()); + materializedViewDefinition = + materializedViewDefinition.toBuilder().setQuery(MATERIALIZED_VIEW_QUERY).build(); + compareMaterializedView(MATERIALIZED_VIEW_DEFINITION, materializedViewDefinition); + } + + @Test + public void testToBuilderIncomplete() { + TableDefinition materializedViewDefinition = + MaterializedViewDefinition.of(MATERIALIZED_VIEW_QUERY); + assertEquals(materializedViewDefinition, materializedViewDefinition.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(MATERIALIZED_VIEW_QUERY, MATERIALIZED_VIEW_DEFINITION.getQuery()); + assertEquals(TableDefinition.Type.MATERIALIZED_VIEW, MATERIALIZED_VIEW_DEFINITION.getType()); + assertEquals(LAST_REFRESH_TIME, MATERIALIZED_VIEW_DEFINITION.getLastRefreshTime()); + MaterializedViewDefinition materializedViewDefinition = + MaterializedViewDefinition.newBuilder() + .setSchema(SCHEMA) + .setQuery(MATERIALIZED_VIEW_QUERY) + .setLastRefreshTime(LAST_REFRESH_TIME) + .setEnableRefresh(ENABLE_REFRESH) + .setRefreshIntervalMs(REFRESH_INTERVAL_MS) + .build(); + assertEquals(MATERIALIZED_VIEW_DEFINITION, materializedViewDefinition); + } + + @Test + public void testToAndFromPb() { + MaterializedViewDefinition materializedViewDefinition = + MATERIALIZED_VIEW_DEFINITION.toBuilder().build(); + assertTrue( + TableDefinition.fromPb(materializedViewDefinition.toPb()) + instanceof MaterializedViewDefinition); + compareMaterializedView( + materializedViewDefinition, + TableDefinition.fromPb(materializedViewDefinition.toPb())); + } + + private void compareMaterializedView( + MaterializedViewDefinition expected, MaterializedViewDefinition actual) { + assertEquals(expected.getType(), actual.getType()); + assertEquals(expected.getSchema(), actual.getSchema()); + assertEquals(expected.getQuery(), actual.getQuery()); + assertEquals(expected.getLastRefreshTime(), actual.getLastRefreshTime()); + assertEquals(expected.getEnableRefresh(), actual.getEnableRefresh()); + assertEquals(expected.getRefreshIntervalMs(), actual.getRefreshIntervalMs()); + assertEquals(expected.toString(), actual.toString()); + assertEquals(expected.hashCode(), actual.hashCode()); + assertEquals(expected, actual); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index f2e74731900b..6e2d89e1af09 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -32,6 +32,7 @@ import com.google.auth.oauth2.ServiceAccountCredentials; import com.google.cloud.Date; import com.google.cloud.RetryOption; +import com.google.cloud.ServiceOptions; import com.google.cloud.bigquery.Acl; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; @@ -65,6 +66,7 @@ import com.google.cloud.bigquery.JobStatistics.LoadStatistics; import com.google.cloud.bigquery.LegacySQLTypeName; import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.MaterializedViewDefinition; import com.google.cloud.bigquery.Model; import com.google.cloud.bigquery.ModelId; import com.google.cloud.bigquery.ModelInfo; @@ -134,6 +136,7 @@ public class ITBigQueryTest { private static final String OTHER_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String MODEL_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String ROUTINE_DATASET = RemoteBigQueryHelper.generateDatasetName(); + private static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); private static final Map LABELS = ImmutableMap.of( "example-label1", "example-value1", @@ -219,6 +222,17 @@ public class ITBigQueryTest { Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) .setMode(Field.Mode.NULLABLE) .build()); + private static final Schema VIEW_SCHEMA = + Schema.of( + Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) + .setMode(Field.Mode.NULLABLE) + .build()); private static final RangePartitioning.Range RANGE = RangePartitioning.Range.newBuilder().setStart(1L).setInterval(2L).setEnd(20L).build(); private static final RangePartitioning RANGE_PARTITIONING = @@ -640,18 +654,7 @@ public void testCreateViewTable() throws InterruptedException { assertNotNull(remoteTable); assertEquals(createdTable.getTableId(), remoteTable.getTableId()); assertTrue(remoteTable.getDefinition() instanceof ViewDefinition); - Schema expectedSchema = - Schema.of( - Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) - .setMode(Field.Mode.NULLABLE) - .build(), - Field.newBuilder("StringField", LegacySQLTypeName.STRING) - .setMode(Field.Mode.NULLABLE) - .build(), - Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) - .setMode(Field.Mode.NULLABLE) - .build()); - assertEquals(expectedSchema, remoteTable.getDefinition().getSchema()); + assertEquals(VIEW_SCHEMA, remoteTable.getDefinition().getSchema()); QueryJobConfiguration config = QueryJobConfiguration.newBuilder("SELECT * FROM " + tableName) .setDefaultDataset(DatasetId.of(DATASET)) @@ -678,6 +681,30 @@ public void testCreateViewTable() throws InterruptedException { assertTrue(remoteTable.delete()); } + @Test + public void testCreateMaterializedViewTable() { + String tableName = "test_materialized_view_table"; + TableId tableId = TableId.of(DATASET, tableName); + MaterializedViewDefinition viewDefinition = + MaterializedViewDefinition.newBuilder( + String.format( + "SELECT MAX(TimestampField) AS TimestampField,StringField, MAX(BooleanField) AS BooleanField FROM %s.%s.%s GROUP BY StringField", + PROJECT_ID, DATASET, TABLE_ID.getTable())) + .build(); + TableInfo tableInfo = TableInfo.of(tableId, viewDefinition); + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertNotNull(remoteTable); + assertEquals(createdTable.getTableId(), remoteTable.getTableId()); + assertEquals(createdTable.getTableId(), remoteTable.getTableId()); + assertTrue(remoteTable.getDefinition() instanceof MaterializedViewDefinition); + assertEquals(VIEW_SCHEMA, remoteTable.getDefinition().getSchema()); + assertTrue(remoteTable.delete()); + } + @Test public void testListTables() { String tableName = "test_list_tables"; From ec6328ec22e844a9db2a156a7c4e3e4f166cc2b6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 20 Mar 2020 15:37:46 +0100 Subject: [PATCH 0403/3441] deps: update dependency org.threeten:threetenbp to v1.4.2 (#237) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f58ffac586b0..aba0ede47eeb 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ 3.11.4 4.13 28.2-android - 1.4.1 + 1.4.2 1.3.2 1.18 v2-rev20191211-1.30.9 From c1997ddaca825acd94aafb15fef65c1c272d3284 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 20 Mar 2020 20:18:25 +0530 Subject: [PATCH 0404/3441] feat: add struct query parameters (#223) * feat: struct query parameters * feat: unit and integration test case * feat: adjust code * feat: remove clirr and refactor code * feat: additional test case * feat: add asserts for values --- .../cloud/bigquery/QueryParameterValue.java | 94 ++++++++++++++++++- .../bigquery/QueryParameterValueTest.java | 65 +++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 74 +++++++++++++++ 3 files changed, 231 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index 732f189eb5dd..e9c21674f615 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -26,13 +26,16 @@ import com.google.cloud.Timestamp; import com.google.common.base.Function; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.io.BaseEncoding; import java.io.Serializable; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.annotation.Nullable; import org.threeten.bp.Instant; import org.threeten.bp.ZoneOffset; @@ -127,12 +130,27 @@ public Builder setArrayValues(List arrayValues) { abstract Builder setArrayValuesInner(ImmutableList arrayValues); + /** Sets struct values. The type must set to STRUCT. */ + public Builder setStructValues(Map structValues) { + setStructTypes(ImmutableMap.copyOf(structValues)); + return setStructValuesInner(ImmutableMap.copyOf(structValues)); + } + + abstract Builder setStructValuesInner(Map structValues); + /** Sets the parameter data type. */ public abstract Builder setType(StandardSQLTypeName type); /** Sets the data type of the array elements. The type must set to ARRAY. */ public abstract Builder setArrayType(StandardSQLTypeName arrayType); + /** Sets the data type of the struct elements. The type must set to STRUCT. */ + public Builder setStructTypes(Map structTypes) { + return setStructTypesInner(structTypes); + } + + abstract Builder setStructTypesInner(Map structTypes); + /** Creates a {@code QueryParameterValue} object. */ public abstract QueryParameterValue build(); } @@ -154,6 +172,15 @@ public List getArrayValues() { @Nullable abstract ImmutableList getArrayValuesInner(); + /** Returns the struct values of this parameter. The returned map, if not null, is immutable. */ + @Nullable + public Map getStructValues() { + return getStructValuesInner(); + } + + @Nullable + abstract Map getStructValuesInner(); + /** Returns the data type of this parameter. */ public abstract StandardSQLTypeName getType(); @@ -161,6 +188,15 @@ public List getArrayValues() { @Nullable public abstract StandardSQLTypeName getArrayType(); + /** Returns the data type of the struct elements. */ + @Nullable + public Map getStructTypes() { + return getStructTypesInner(); + } + + @Nullable + abstract Map getStructTypesInner(); + /** Creates a {@code QueryParameterValue} object with the given value and type. */ public static QueryParameterValue of(T value, Class type) { return of(value, classToType(type)); @@ -274,6 +310,17 @@ public static QueryParameterValue array(T[] array, StandardSQLTypeName type) .build(); } + /** + * Creates a map with {@code QueryParameterValue} object and a type of STRUCT the given struct + * element type. + */ + public static QueryParameterValue struct(Map struct) { + return QueryParameterValue.newBuilder() + .setStructValues(struct) + .setType(StandardSQLTypeName.STRUCT) + .build(); + } + private static StandardSQLTypeName classToType(Class type) { if (Boolean.class.isAssignableFrom(type)) { return StandardSQLTypeName.BOOL; @@ -398,6 +445,14 @@ com.google.api.services.bigquery.model.QueryParameterValue toValuePb() { valuePb.setArrayValues( Lists.transform(getArrayValues(), QueryParameterValue.TO_VALUE_PB_FUNCTION)); } + if (getStructValues() != null) { + Map structValues = + new HashMap<>(); + for (Map.Entry structValue : getStructValues().entrySet()) { + structValues.put(structValue.getKey(), structValue.getValue().toValuePb()); + } + valuePb.setStructValues(structValues); + } return valuePb; } @@ -409,6 +464,16 @@ QueryParameterType toTypePb() { arrayTypePb.setType(getArrayType().toString()); typePb.setArrayType(arrayTypePb); } + if (getStructTypes() != null) { + List structTypes = new ArrayList<>(); + for (Map.Entry entry : getStructTypes().entrySet()) { + QueryParameterType.StructTypes structType = new QueryParameterType.StructTypes(); + structType.setName(entry.getKey()); + structType.setType(entry.getValue().toTypePb()); + structTypes.add(structType); + } + typePb.setStructTypes(structTypes); + } return typePb; } @@ -416,7 +481,7 @@ static QueryParameterValue fromPb( com.google.api.services.bigquery.model.QueryParameterValue valuePb, QueryParameterType typePb) { Builder valueBuilder = newBuilder(); - + Map parameterTypes = new HashMap<>(); StandardSQLTypeName type = StandardSQLTypeName.valueOf(typePb.getType()); valueBuilder.setType(type); if (type == StandardSQLTypeName.ARRAY) { @@ -431,10 +496,35 @@ static QueryParameterValue fromPb( } valueBuilder.setArrayValues(arrayValues.build()); } + } else if (type == StandardSQLTypeName.STRUCT) { + Map structTypes = new HashMap<>(); + for (QueryParameterType.StructTypes types : typePb.getStructTypes()) { + structTypes.put( + types.getName(), + QueryParameterValue.newBuilder() + .setType(StandardSQLTypeName.valueOf(types.getType().getType())) + .build()); + } + valueBuilder.setStructTypes(structTypes); + if (valuePb == null || valuePb.getStructValues() == null) { + valueBuilder.setStructValues(ImmutableMap.of()); + } else { + Map structValues = new HashMap<>(); + for (QueryParameterType.StructTypes structType : typePb.getStructTypes()) { + parameterTypes.put(structType.getName(), structType.getType()); + } + for (Map.Entry + structValue : valuePb.getStructValues().entrySet()) { + structValues.put( + structValue.getKey(), + QueryParameterValue.fromPb( + structValue.getValue(), parameterTypes.get(structValue.getKey()))); + } + valueBuilder.setStructValues(structValues); + } } else { valueBuilder.setValue(valuePb == null ? "" : valuePb.getValue()); } - return valueBuilder.build(); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index 0e6b9cc9d2de..930a29c40064 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -23,10 +23,13 @@ import static org.threeten.bp.temporal.ChronoField.SECOND_OF_MINUTE; import com.google.api.services.bigquery.model.QueryParameterType; +import com.google.common.collect.ImmutableMap; import java.math.BigDecimal; import java.text.ParseException; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.junit.Test; import org.threeten.bp.Instant; import org.threeten.bp.ZoneOffset; @@ -378,6 +381,68 @@ public void testFromEmptyArray() { assertThat(value.getArrayValues()).isEmpty(); } + @Test + public void testStruct() { + QueryParameterValue booleanField = QueryParameterValue.bool(true); + QueryParameterValue integerField = QueryParameterValue.int64(15); + QueryParameterValue stringField = QueryParameterValue.string("test-string"); + QueryParameterValue recordField = + QueryParameterValue.struct( + ImmutableMap.of( + "booleanField", + booleanField, + "integerField", + integerField, + "stringField", + stringField)); + com.google.api.services.bigquery.model.QueryParameterValue parameterValue = + recordField.toValuePb(); + QueryParameterType parameterType = recordField.toTypePb(); + QueryParameterValue queryParameterValue = + QueryParameterValue.fromPb(parameterValue, parameterType); + assertThat(queryParameterValue).isEqualTo(recordField); + assertThat(recordField.getValue()).isNull(); + assertThat(recordField.getType()).isEqualTo(StandardSQLTypeName.STRUCT); + assertThat(recordField.getStructTypes()).isNotNull(); + assertThat(recordField.getStructValues()).isNotNull(); + } + + @Test + public void testNestedStruct() { + QueryParameterValue booleanField = QueryParameterValue.bool(true); + QueryParameterValue integerField = QueryParameterValue.int64(15); + QueryParameterValue stringField = QueryParameterValue.string("test-string"); + QueryParameterValue recordField = + QueryParameterValue.struct( + ImmutableMap.of( + "booleanField", + booleanField, + "integerField", + integerField, + "stringField", + stringField)); + Map structValue = new HashMap<>(); + structValue.put("bool", booleanField); + structValue.put("int", integerField); + structValue.put("string", stringField); + structValue.put("struct", recordField); + QueryParameterValue nestedRecordField = QueryParameterValue.struct(structValue); + com.google.api.services.bigquery.model.QueryParameterValue parameterValue = + nestedRecordField.toValuePb(); + QueryParameterType parameterType = nestedRecordField.toTypePb(); + QueryParameterValue queryParameterValue = + QueryParameterValue.fromPb(parameterValue, parameterType); + assertThat(queryParameterValue).isEqualTo(nestedRecordField); + assertThat(nestedRecordField.getValue()).isNull(); + assertThat(nestedRecordField.getType()).isEqualTo(StandardSQLTypeName.STRUCT); + assertThat(nestedRecordField.getStructTypes().get("struct").getType()) + .isEqualTo(StandardSQLTypeName.STRUCT); + assertThat(nestedRecordField.getStructValues().get("struct").getStructValues()) + .containsAtLeastEntriesIn(recordField.getStructValues()); + assertThat(nestedRecordField.getStructTypes().size()).isEqualTo(structValue.size()); + assertThat(nestedRecordField.getStructValues().size()).isEqualTo(structValue.size()); + } + private static void assertArrayDataEquals( String[] expectedValues, StandardSQLTypeName expectedType, diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 6e2d89e1af09..03b55dd4a4db 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1455,6 +1455,80 @@ public void testNamedQueryParameters() throws InterruptedException { assertEquals(2, Iterables.size(result.getValues())); } + @Test + public void testStructNamedQueryParameters() throws InterruptedException { + QueryParameterValue booleanValue = QueryParameterValue.bool(true); + QueryParameterValue stringValue = QueryParameterValue.string("test-stringField"); + QueryParameterValue integerValue = QueryParameterValue.int64(10); + Map struct = new HashMap<>(); + struct.put("booleanField", booleanValue); + struct.put("integerField", integerValue); + struct.put("stringField", stringValue); + QueryParameterValue recordValue = QueryParameterValue.struct(struct); + String query = "SELECT STRUCT(@recordField) AS record"; + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .addNamedParameter("recordField", recordValue) + .build(); + TableResult result = bigquery.query(config); + assertEquals(1, Iterables.size(result.getValues())); + for (FieldValueList values : result.iterateAll()) { + for (FieldValue value : values) { + for (FieldValue record : value.getRecordValue()) { + assertEquals(FieldValue.Attribute.RECORD, record.getAttribute()); + assertEquals(true, record.getRecordValue().get(0).getBooleanValue()); + assertEquals(10, record.getRecordValue().get(1).getLongValue()); + assertEquals("test-stringField", record.getRecordValue().get(2).getStringValue()); + } + } + } + } + + @Test + public void testNestedStructNamedQueryParameters() throws InterruptedException { + QueryParameterValue booleanValue = QueryParameterValue.bool(true); + QueryParameterValue stringValue = QueryParameterValue.string("test-stringField"); + QueryParameterValue integerValue = QueryParameterValue.int64(10); + Map struct = new HashMap<>(); + struct.put("booleanField", booleanValue); + struct.put("integerField", integerValue); + struct.put("stringField", stringValue); + QueryParameterValue recordValue = QueryParameterValue.struct(struct); + Map structValue = new HashMap<>(); + structValue.put("bool", booleanValue); + structValue.put("int", integerValue); + structValue.put("string", stringValue); + structValue.put("struct", recordValue); + QueryParameterValue nestedRecordField = QueryParameterValue.struct(structValue); + String query = "SELECT STRUCT(@nestedRecordField) AS record"; + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .addNamedParameter("nestedRecordField", nestedRecordField) + .build(); + TableResult result = bigquery.query(config); + assertEquals(1, Iterables.size(result.getValues())); + for (FieldValueList values : result.iterateAll()) { + for (FieldValue value : values) { + assertEquals(FieldValue.Attribute.RECORD, value.getAttribute()); + for (FieldValue record : value.getRecordValue()) { + assertEquals( + true, record.getRecordValue().get(0).getRecordValue().get(0).getBooleanValue()); + assertEquals(10, record.getRecordValue().get(0).getRecordValue().get(1).getLongValue()); + assertEquals( + "test-stringField", + record.getRecordValue().get(0).getRecordValue().get(2).getStringValue()); + assertEquals(true, record.getRecordValue().get(1).getBooleanValue()); + assertEquals("test-stringField", record.getRecordValue().get(2).getStringValue()); + assertEquals(10, record.getRecordValue().get(3).getLongValue()); + } + } + } + } + @Test public void testBytesParameter() throws Exception { String query = "SELECT BYTE_LENGTH(@p) AS length"; From 5e2fa9d14294592270ca80229b3a9a65965e04c3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2020 11:27:36 -0400 Subject: [PATCH 0405/3441] chore: release 1.109.0 (#234) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated samples/pom.xml [ci skip] * updated pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 21 +++++++++++++++++++++ README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 5 files changed, 29 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 33f82ec7bd6a..cbc8e31085e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,26 @@ # Changelog +## [1.109.0](https://www.github.com/googleapis/java-bigquery/compare/v1.108.1...v1.109.0) (2020-03-20) + + +### Features + +* add materialize view ([#174](https://www.github.com/googleapis/java-bigquery/issues/174)) ([d33b645](https://www.github.com/googleapis/java-bigquery/commit/d33b64594f9b3217b0fc89d255618b558a9d45e8)) +* add struct query parameters ([#223](https://www.github.com/googleapis/java-bigquery/issues/223)) ([c1997dd](https://www.github.com/googleapis/java-bigquery/commit/c1997ddaca825acd94aafb15fef65c1c272d3284)) +* expose hivepartitioningoptions ([#233](https://www.github.com/googleapis/java-bigquery/issues/233)) ([6213ea9](https://www.github.com/googleapis/java-bigquery/commit/6213ea98c7b58634c11ffd13e925482a3627c5dc)) + + +### Dependencies + +* update core dependencies ([#218](https://www.github.com/googleapis/java-bigquery/issues/218)) ([3573899](https://www.github.com/googleapis/java-bigquery/commit/3573899485431f57703c2dc1615df79a3a37d075)) +* update core dependencies to v1.93.3 ([#224](https://www.github.com/googleapis/java-bigquery/issues/224)) ([0338e39](https://www.github.com/googleapis/java-bigquery/commit/0338e397f61fc87d048f2869e5ee5bba2e584caa)) +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20191211-1.30.9 ([#212](https://www.github.com/googleapis/java-bigquery/issues/212)) ([8475bd9](https://www.github.com/googleapis/java-bigquery/commit/8475bd9e39b5ec0ebbb43ab12beba43de3bff139)) +* update dependency com.google.cloud:google-cloud-storage to v1.105.1 ([#216](https://www.github.com/googleapis/java-bigquery/issues/216)) ([f4a1199](https://www.github.com/googleapis/java-bigquery/commit/f4a11991ae129ef1da2764b163d82838e59737ac)) +* update dependency com.google.cloud:google-cloud-storage to v1.105.2 ([#220](https://www.github.com/googleapis/java-bigquery/issues/220)) ([42f6529](https://www.github.com/googleapis/java-bigquery/commit/42f6529d54abdc91111187d026bd256905d7c83d)) +* update dependency com.google.cloud:google-cloud-storage to v1.106.0 ([#226](https://www.github.com/googleapis/java-bigquery/issues/226)) ([b78aa00](https://www.github.com/googleapis/java-bigquery/commit/b78aa00519c8af7777ef9015364d6b0259296170)) +* update dependency com.google.cloud.samples:shared-configuration to v1.0.12 ([#210](https://www.github.com/googleapis/java-bigquery/issues/210)) ([40a96a0](https://www.github.com/googleapis/java-bigquery/commit/40a96a0dcea2ec56e50479d92d02b58c8972ac36)) +* update dependency org.threeten:threetenbp to v1.4.2 ([#237](https://www.github.com/googleapis/java-bigquery/issues/237)) ([ec6328e](https://www.github.com/googleapis/java-bigquery/commit/ec6328ec22e844a9db2a156a7c4e3e4f166cc2b6)) + ### [1.108.1](https://www.github.com/googleapis/java-bigquery/compare/v1.108.0...v1.108.1) (2020-03-03) diff --git a/README.md b/README.md index fd92f3feb5b4..29d52a90d2d1 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.108.1 + 1.109.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.108.1' +compile 'com.google.cloud:google-cloud-bigquery:1.109.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.108.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.109.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index de0ba80784ed..30f15365ca51 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.108.2-SNAPSHOT + 1.109.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.108.2-SNAPSHOT + 1.109.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index aba0ede47eeb..93647776174b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.108.2-SNAPSHOT + 1.109.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.108.2-SNAPSHOT + 1.109.0 diff --git a/versions.txt b/versions.txt index cbc4744ac9b3..dfb5a61acbb8 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.108.1:1.108.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.109.0:1.109.0 \ No newline at end of file From a1e06569ba92f82cc22d04e939f71b00467e553b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2020 15:39:30 -0400 Subject: [PATCH 0406/3441] chore: release 1.109.1-SNAPSHOT (#238) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 30f15365ca51..09f5a85484e2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.109.0 + 1.109.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.109.0 + 1.109.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 93647776174b..85cb8018e9a6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.109.0 + 1.109.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.109.0 + 1.109.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index dfb5a61acbb8..3a0f623bae27 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.109.0:1.109.0 \ No newline at end of file +google-cloud-bigquery:1.109.0:1.109.1-SNAPSHOT \ No newline at end of file From ccc2bb3de28a36e3791d5441c8bdea2333877ee8 Mon Sep 17 00:00:00 2001 From: Ekanth Sethuramalingam Date: Fri, 20 Mar 2020 13:51:15 -0700 Subject: [PATCH 0407/3441] feat: add support for Hive partitioning options when creating external tables (#235) (#236) --- .../bigquery/ExternalTableDefinition.java | 32 +++++++++++++++++++ .../bigquery/HivePartitioningOptions.java | 10 ++++++ .../bigquery/ExternalTableDefinitionTest.java | 8 +++++ 3 files changed, 50 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index ecfb49b09b30..8165b96529f0 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -135,6 +135,14 @@ public Builder setFormatOptions(FormatOptions formatOptions) { /** Sets the table schema. */ public abstract Builder setSchema(Schema schema); + /** Sets the table Hive partitioning options. */ + public Builder setHivePartitioningOptions(HivePartitioningOptions hivePartitioningOptions) { + return setHivePartitioningOptionsInner(hivePartitioningOptions); + }; + + abstract Builder setHivePartitioningOptionsInner( + HivePartitioningOptions hivePartitioningOptions); + /** Creates an {@code ExternalTableDefinition} object. */ @Override public abstract ExternalTableDefinition build(); @@ -212,6 +220,19 @@ public F getFormatOptions() { @Nullable public abstract Boolean getAutodetect(); + /** + * [Experimental] Returns the HivePartitioningOptions when the data layout follows Hive + * partitioning convention + */ + @SuppressWarnings("unchecked") + @Nullable + public HivePartitioningOptions getHivePartitioningOptions() { + return getHivePartitioningOptionsInner(); + } + + @Nullable + abstract HivePartitioningOptions getHivePartitioningOptionsInner(); + /** Returns a builder for the {@code ExternalTableDefinition} object. */ public abstract Builder toBuilder(); @@ -257,6 +278,9 @@ com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataC if (getAutodetect() != null) { externalConfigurationPb.setAutodetect(getAutodetect()); } + if (getHivePartitioningOptions() != null) { + externalConfigurationPb.setHivePartitioningOptions(getHivePartitioningOptions().toPb()); + } return externalConfigurationPb; } @@ -405,6 +429,10 @@ static ExternalTableDefinition fromPb(Table tablePb) { } builder.setMaxBadRecords(externalDataConfiguration.getMaxBadRecords()); builder.setAutodetect(externalDataConfiguration.getAutodetect()); + if (externalDataConfiguration.getHivePartitioningOptions() != null) { + builder.setHivePartitioningOptions( + HivePartitioningOptions.fromPb(externalDataConfiguration.getHivePartitioningOptions())); + } } return builder.build(); } @@ -444,6 +472,10 @@ static ExternalTableDefinition fromExternalDataConfiguration( if (externalDataConfiguration.getAutodetect() != null) { builder.setAutodetect(externalDataConfiguration.getAutodetect()); } + if (externalDataConfiguration.getHivePartitioningOptions() != null) { + builder.setHivePartitioningOptions( + HivePartitioningOptions.fromPb(externalDataConfiguration.getHivePartitioningOptions())); + } return builder.build(); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java index 6c831db0dcd9..08694285a839 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java @@ -103,6 +103,16 @@ public String toString() { .toString(); } + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(HivePartitioningOptions.class) + && Objects.equals(mode, ((HivePartitioningOptions) obj).getMode()) + && Objects.equals( + sourceUriPrefix, ((HivePartitioningOptions) obj).getSourceUriPrefix()); + } + @Override public int hashCode() { return Objects.hash(mode, sourceUriPrefix); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index b15ddbfd5f39..bd5a6cdfb236 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -46,12 +46,18 @@ public class ExternalTableDefinitionTest { private static final String COMPRESSION = "GZIP"; private static final Boolean AUTODETECT = true; private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder().build(); + private static final HivePartitioningOptions HIVE_PARTITIONING_OPTIONS = + HivePartitioningOptions.newBuilder() + .setMode("AUTO") + .setSourceUriPrefix(SOURCE_URIS.get(0)) + .build(); private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION = ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) .setCompression(COMPRESSION) .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) .setMaxBadRecords(MAX_BAD_RECORDS) .setAutodetect(AUTODETECT) + .setHivePartitioningOptions(HIVE_PARTITIONING_OPTIONS) .build(); @Test @@ -83,6 +89,7 @@ public void testBuilder() { assertEquals(TABLE_SCHEMA, EXTERNAL_TABLE_DEFINITION.getSchema()); assertEquals(SOURCE_URIS, EXTERNAL_TABLE_DEFINITION.getSourceUris()); assertEquals(AUTODETECT, EXTERNAL_TABLE_DEFINITION.getAutodetect()); + assertEquals(HIVE_PARTITIONING_OPTIONS, EXTERNAL_TABLE_DEFINITION.getHivePartitioningOptions()); } @Test @@ -107,5 +114,6 @@ private void compareExternalTableDefinition( assertEquals(expected.getSourceUris(), value.getSourceUris()); assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.getAutodetect(), value.getAutodetect()); + assertEquals(expected.getHivePartitioningOptions(), value.getHivePartitioningOptions()); } } From dcd861a805b1ab2e360c85ce6537eb8a2a35c36d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2020 21:46:05 +0000 Subject: [PATCH 0408/3441] chore: release 1.110.0 (#239) :robot: I have created a release \*beep\* \*boop\* --- ## [1.110.0](https://www.github.com/googleapis/java-bigquery/compare/v1.109.0...v1.110.0) (2020-03-20) ### Features * add support for Hive partitioning options when creating external tables ([#235](https://www.github.com/googleapis/java-bigquery/issues/235)) ([#236](https://www.github.com/googleapis/java-bigquery/issues/236)) ([ccc2bb3](https://www.github.com/googleapis/java-bigquery/commit/ccc2bb3de28a36e3791d5441c8bdea2333877ee8)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 7 +++++++ README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cbc8e31085e1..3c78f9f90e43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.110.0](https://www.github.com/googleapis/java-bigquery/compare/v1.109.0...v1.110.0) (2020-03-20) + + +### Features + +* add support for Hive partitioning options when creating external tables ([#235](https://www.github.com/googleapis/java-bigquery/issues/235)) ([#236](https://www.github.com/googleapis/java-bigquery/issues/236)) ([ccc2bb3](https://www.github.com/googleapis/java-bigquery/commit/ccc2bb3de28a36e3791d5441c8bdea2333877ee8)) + ## [1.109.0](https://www.github.com/googleapis/java-bigquery/compare/v1.108.1...v1.109.0) (2020-03-20) diff --git a/README.md b/README.md index 29d52a90d2d1..9296ac0d4b5a 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.109.0 + 1.110.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.109.0' +compile 'com.google.cloud:google-cloud-bigquery:1.110.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.109.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.110.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 09f5a85484e2..1518354a6cf2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.109.1-SNAPSHOT + 1.110.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.109.1-SNAPSHOT + 1.110.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 85cb8018e9a6..2e8539065766 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.109.1-SNAPSHOT + 1.110.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.109.1-SNAPSHOT + 1.110.0 diff --git a/versions.txt b/versions.txt index 3a0f623bae27..bf4954dde6e6 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.109.0:1.109.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.110.0:1.110.0 \ No newline at end of file From 5be19192c1caf698e8b9983834bff0f76ebe8ab0 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 23 Mar 2020 11:53:48 -0400 Subject: [PATCH 0409/3441] samples: new sample bigquery_nested_repeated_schema (#230) --- .../com/example/bigquery/CreateTable.java | 7 +- .../bigquery/NestedRepeatedSchema.java | 78 +++++++++++++++++++ .../com/example/bigquery/CreateTableIT.java | 9 ++- .../bigquery/NestedRepeatedSchemaIT.java | 70 +++++++++++++++++ 4 files changed, 156 insertions(+), 8 deletions(-) create mode 100644 samples/src/main/java/com/example/bigquery/NestedRepeatedSchema.java create mode 100644 samples/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java diff --git a/samples/src/main/java/com/example/bigquery/CreateTable.java b/samples/src/main/java/com/example/bigquery/CreateTable.java index d00000e55be1..33163158759b 100644 --- a/samples/src/main/java/com/example/bigquery/CreateTable.java +++ b/samples/src/main/java/com/example/bigquery/CreateTable.java @@ -21,8 +21,8 @@ import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Field; -import com.google.cloud.bigquery.LegacySQLTypeName; import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; import com.google.cloud.bigquery.StandardTableDefinition; import com.google.cloud.bigquery.TableDefinition; import com.google.cloud.bigquery.TableId; @@ -36,9 +36,8 @@ public static void runCreateTable() { String tableName = "MY_TABLE_NAME"; Schema schema = Schema.of( - // INFO: LegacySQLTypeName will be updated to StandardSQLTypeName in release 1.103.0 - Field.of("stringField", LegacySQLTypeName.STRING), - Field.of("booleanField", LegacySQLTypeName.BOOLEAN)); + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); createTable(datasetName, tableName, schema); } diff --git a/samples/src/main/java/com/example/bigquery/NestedRepeatedSchema.java b/samples/src/main/java/com/example/bigquery/NestedRepeatedSchema.java new file mode 100644 index 000000000000..e20cdf4c8346 --- /dev/null +++ b/samples/src/main/java/com/example/bigquery/NestedRepeatedSchema.java @@ -0,0 +1,78 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_nested_repeated_schema] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Field.Mode; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.TableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; + +public class NestedRepeatedSchema { + + public static void runNestedRepeatedSchema() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + createTableWithNestedRepeatedSchema(datasetName, tableName); + } + + public static void createTableWithNestedRepeatedSchema(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + + Schema schema = + Schema.of( + Field.of("id", StandardSQLTypeName.STRING), + Field.of("first_name", StandardSQLTypeName.STRING), + Field.of("last_name", StandardSQLTypeName.STRING), + Field.of("dob", StandardSQLTypeName.DATE), + // create the nested and repeated field + Field.newBuilder( + "addresses", + StandardSQLTypeName.STRUCT, + Field.of("status", StandardSQLTypeName.STRING), + Field.of("address", StandardSQLTypeName.STRING), + Field.of("city", StandardSQLTypeName.STRING), + Field.of("state", StandardSQLTypeName.STRING), + Field.of("zip", StandardSQLTypeName.STRING), + Field.of("numberOfYears", StandardSQLTypeName.STRING)) + .setMode(Mode.REPEATED) + .build()); + + TableDefinition tableDefinition = StandardTableDefinition.of(schema); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + + bigquery.create(tableInfo); + System.out.println("Table with nested and repeated schema created successfully"); + } catch (BigQueryException e) { + System.out.println("Table was not created. \n" + e.toString()); + } + } +} +// [END bigquery_nested_repeated_schema] diff --git a/samples/src/test/java/com/example/bigquery/CreateTableIT.java b/samples/src/test/java/com/example/bigquery/CreateTableIT.java index abc7709c9ee7..d2f214515e6c 100644 --- a/samples/src/test/java/com/example/bigquery/CreateTableIT.java +++ b/samples/src/test/java/com/example/bigquery/CreateTableIT.java @@ -20,10 +20,11 @@ import static junit.framework.TestCase.assertNotNull; import com.google.cloud.bigquery.Field; -import com.google.cloud.bigquery.LegacySQLTypeName; import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.UUID; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -60,11 +61,11 @@ public void tearDown() { @Test public void testCreateTable() { - String tableName = "MY_TABLE_NAME"; + String tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); Schema schema = Schema.of( - Field.of("stringField", LegacySQLTypeName.STRING), - Field.of("booleanField", LegacySQLTypeName.BOOLEAN)); + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); assertThat(bout.toString()).contains("Table created successfully"); diff --git a/samples/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java b/samples/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java new file mode 100644 index 000000000000..2f1e234825bc --- /dev/null +++ b/samples/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java @@ -0,0 +1,70 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class NestedRepeatedSchemaIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void createTableWithNestedRepeatedSchema() { + String tableName = "NESTED_REPEATED_" + UUID.randomUUID().toString().replace("-", "_"); + NestedRepeatedSchema.createTableWithNestedRepeatedSchema(BIGQUERY_DATASET_NAME, tableName); + + assertThat(bout.toString()) + .contains("Table with nested and repeated schema created successfully"); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + } +} From 34079d815db6f7ff39fb12286bb344515a4da0ec Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 23 Mar 2020 18:14:05 +0100 Subject: [PATCH 0410/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v4.3.0 (#241) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `4.2.0` -> `4.3.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index f1a42cac1b40..e06489a11c92 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -43,7 +43,7 @@ com.google.cloud libraries-bom - 4.2.0 + 4.3.0 pom import From 46c9b18627e6541cfd9393304598b771e6d23ef5 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Mon, 23 Mar 2020 19:32:17 -0700 Subject: [PATCH 0411/3441] chore: enable context aware commits (#242) --- synth.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/synth.py b/synth.py index fdd1983fe7b5..d7679c03d028 100644 --- a/synth.py +++ b/synth.py @@ -16,6 +16,8 @@ import synthtool.languages.java as java +AUTOSYNTH_MULTIPLE_COMMITS = True + java.common_templates(excludes=[ 'README.md', 'samples/*', From 4c620018288b36d7e8743c0ace37ef25397d1060 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 24 Mar 2020 22:20:06 +0100 Subject: [PATCH 0412/3441] deps: update dependency com.google.cloud.samples:shared-configuration to v1.0.13 (#243) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud.samples:shared-configuration](https://togithub.com/GoogleCloudPlatform/java-repo-tools) | patch | `1.0.12` -> `1.0.13` | --- ### Release Notes
    GoogleCloudPlatform/java-repo-tools ### [`v1.0.13`](https://togithub.com/GoogleCloudPlatform/java-repo-tools/releases/v1.0.13) [Compare Source](https://togithub.com/GoogleCloudPlatform/java-repo-tools/compare/v1.0.12...v1.0.13) Fix some issues w/ Checkstyle configuration. We left the option to turn it off out.
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/pom.xml b/samples/pom.xml index e06489a11c92..74a3156dff49 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.12 + 1.0.13 From 5239112582286d40bc85f1b9d37def213636edfa Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 25 Mar 2020 08:56:11 -0700 Subject: [PATCH 0413/3441] chore: update common templates (#244) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/01397865-3755-4aac-90a2-8834d828363b/targets --- .kokoro/build.sh | 19 ++++++++++------ .kokoro/common.sh | 44 ++++++++++++++++++++++++++++++++++++++ .kokoro/dependencies.sh | 15 +++++++++---- .kokoro/linkage-monitor.sh | 22 +++++++++++++------ renovate.json | 3 ++- synth.metadata | 17 +++++---------- 6 files changed, 89 insertions(+), 31 deletions(-) create mode 100644 .kokoro/common.sh diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 78e05c6669aa..b1abad023056 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -20,17 +20,22 @@ scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) ## cd to the parent directory, i.e. the root of the git repo cd ${scriptDir}/.. +# include common functions +source ${scriptDir}/common.sh + # Print out Java version java -version echo ${JOB_TYPE} -mvn install -B -V \ - -DskipTests=true \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -Dmaven.javadoc.skip=true \ - -Dgcloud.download.skip=true \ - -T 1C +# attempt to install 3 times with exponential backoff (starting with 10 seconds) +retry_with_backoff 3 10 \ + mvn install -B -V \ + -DskipTests=true \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -Dmaven.javadoc.skip=true \ + -Dgcloud.download.skip=true \ + -T 1C # if GOOGLE_APPLICATION_CREDIENTIALS is specified as a relative path prepend Kokoro root directory onto it if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTIALS}" != /* ]]; then diff --git a/.kokoro/common.sh b/.kokoro/common.sh new file mode 100644 index 000000000000..a3bbc5f67963 --- /dev/null +++ b/.kokoro/common.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# set -eo pipefail + +function retry_with_backoff { + attempts_left=$1 + sleep_seconds=$2 + shift 2 + command=$@ + + echo "${command}" + ${command} + exit_code=$? + + if [[ $exit_code == 0 ]] + then + return 0 + fi + + # failure + if [[ ${attempts_left} > 0 ]] + then + echo "failure (${exit_code}), sleeping ${sleep_seconds}..." + sleep ${sleep_seconds} + new_attempts=$((${attempts_left} - 1)) + new_sleep=$((${sleep_seconds} * 2)) + retry_with_backoff ${new_attempts} ${new_sleep} ${command} + fi + + return $exit_code +} diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index 80de1b35de4a..0aade871ce10 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -15,7 +15,13 @@ set -eo pipefail -cd github/java-bigquery/ +## Get the directory of the build script +scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) +## cd to the parent directory, i.e. the root of the git repo +cd ${scriptDir}/.. + +# include common functions +source ${scriptDir}/common.sh # Print out Java java -version @@ -24,8 +30,9 @@ echo $JOB_TYPE export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m" # this should run maven enforcer -mvn install -B -V \ - -DskipTests=true \ - -Dclirr.skip=true +retry_with_backoff 3 10 \ + mvn install -B -V \ + -DskipTests=true \ + -Dclirr.skip=true mvn -B dependency:analyze -DfailOnWarning=true diff --git a/.kokoro/linkage-monitor.sh b/.kokoro/linkage-monitor.sh index a271e647c312..759ab4e2c220 100755 --- a/.kokoro/linkage-monitor.sh +++ b/.kokoro/linkage-monitor.sh @@ -17,18 +17,26 @@ set -eo pipefail # Display commands being run. set -x -cd github/java-bigquery/ +## Get the directory of the build script +scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) +## cd to the parent directory, i.e. the root of the git repo +cd ${scriptDir}/.. + +# include common functions +source ${scriptDir}/common.sh # Print out Java version java -version echo ${JOB_TYPE} -mvn install -B -V \ - -DskipTests=true \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -Dmaven.javadoc.skip=true \ - -Dgcloud.download.skip=true +# attempt to install 3 times with exponential backoff (starting with 10 seconds) +retry_with_backoff 3 10 \ + mvn install -B -V \ + -DskipTests=true \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -Dmaven.javadoc.skip=true \ + -Dgcloud.download.skip=true # Kokoro job cloud-opensource-java/ubuntu/linkage-monitor-gcs creates this JAR JAR=linkage-monitor-latest-all-deps.jar diff --git a/renovate.json b/renovate.json index fc6412701ada..a5989a8d0f08 100644 --- a/renovate.json +++ b/renovate.json @@ -56,6 +56,7 @@ }, { "packagePatterns": [ + "^com.google.cloud:google-cloud-bigquery", "^com.google.cloud:libraries-bom" ], "semanticCommitType": "chore", @@ -75,4 +76,4 @@ } ], "semanticCommits": true -} +} \ No newline at end of file diff --git a/synth.metadata b/synth.metadata index 1659a181971f..21097044bf11 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,18 +1,11 @@ { - "updateTime": "2020-03-13T21:40:53.101392Z", + "updateTime": "2020-03-25T08:46:53.243347Z", "sources": [ { - "generator": { - "name": "artman", - "version": "1.1.0", - "dockerImage": "googleapis/artman@sha256:f54b7644a1d2e7a37b23f5c0dfe9bba473e41c675002a507a244389e27487ca9" - } - }, - { - "template": { - "name": "java_library", - "origin": "synthtool.gcp", - "version": "2020.2.4" + "git": { + "name": "synthtool", + "remote": "https://github.com/googleapis/synthtool.git", + "sha": "ee4330a0e5f4b93978e8683fbda8e6d4148326b7" } } ] From a3a79e1a776214d64d8d16b290c9a88dac11ea4f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 25 Mar 2020 10:24:07 -0700 Subject: [PATCH 0414/3441] chore: update renovate config for shared samples parent (#245) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/8dc67c4c-b602-45d4-bcb1-8c58b15f5c34/targets --- renovate.json | 3 ++- synth.metadata | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/renovate.json b/renovate.json index a5989a8d0f08..a65d0adb2ad2 100644 --- a/renovate.json +++ b/renovate.json @@ -57,7 +57,8 @@ { "packagePatterns": [ "^com.google.cloud:google-cloud-bigquery", - "^com.google.cloud:libraries-bom" + "^com.google.cloud:libraries-bom", + "^com.google.cloud.samples:shared-configuration" ], "semanticCommitType": "chore", "semanticCommitScope": "deps" diff --git a/synth.metadata b/synth.metadata index 21097044bf11..a0dec4248e8d 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,11 +1,12 @@ { - "updateTime": "2020-03-25T08:46:53.243347Z", + "updateTime": "2020-03-25T16:37:15.579976Z", "sources": [ { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "ee4330a0e5f4b93978e8683fbda8e6d4148326b7" + "sha": "e36822bfa0acb355502dab391b8ef9c4f30208d8", + "log": "e36822bfa0acb355502dab391b8ef9c4f30208d8\nchore(java): treat samples shared configuration dependency update as chore (#457)\n\n\n1b4cc80a7aaf164f6241937dd87f3bd1f4149e0c\nfix: do not run node 8 CI (#456)\n\n\n" } } ] From 783f1ade581b3930f5585a30b4c1c278762e0d9d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 26 Mar 2020 00:20:14 +0100 Subject: [PATCH 0415/3441] deps: update dependency com.google.api:api-common to v1.9.0 (#246) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.api:api-common](https://togithub.com/googleapis/api-common-java) | minor | `1.8.1` -> `1.9.0` | --- ### Release Notes
    googleapis/api-common-java ### [`v1.9.0`](https://togithub.com/googleapis/api-common-java/releases/v1.9.0) [Compare Source](https://togithub.com/googleapis/api-common-java/compare/v1.8.1...v1.9.0) 03-25-2020 14:09 PST #### New Features - Add `@BetaApi` `ApiFutres.catchingAsync()` ([#​117](https://togithub.com/googleapis/api-common-java/pull/117)) ##### Dependencies - Update guava to v28.2-android ([#​110](https://togithub.com/googleapis/api-common-java/pull/110)) - Update error_prone_annotations to v2.2.3 ([#​111](https://togithub.com/googleapis/api-common-java/pull/111))
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2e8539065766..f78d2b7dc993 100644 --- a/pom.xml +++ b/pom.xml @@ -64,7 +64,7 @@ github google-cloud-bigquery-parent 1.93.3 - 1.8.1 + 1.9.0 1.17.0 1.54.0 1.28.0 From 5904a654c2e09a612b08facddc4427d19f924f95 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2020 15:56:18 +0000 Subject: [PATCH 0416/3441] chore: release 1.110.1-SNAPSHOT (#240) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1518354a6cf2..2385b5cc6026 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.110.0 + 1.110.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.110.0 + 1.110.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f78d2b7dc993..b7306e28a91d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.110.0 + 1.110.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.110.0 + 1.110.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index bf4954dde6e6..ca3a4b31cf21 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.110.0:1.110.0 \ No newline at end of file +google-cloud-bigquery:1.110.0:1.110.1-SNAPSHOT \ No newline at end of file From 5b38a8533eade5cabe0f7d83a6888e9ae9b4da4b Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 27 Mar 2020 12:35:40 -0400 Subject: [PATCH 0417/3441] samples: add multi-module samples module to bq client (#248) * samples: add multi-module samples module to bq client to enable testing against SNAPSHOT * update based on comments * update commit msg * fix build error and kokoro path * update test file path * fix build error * remove redundant deps * update samples build script to work for all 3 samples modules * revert copyright year --- .kokoro/run_samples_tests.sh | 22 +- samples/install-without-bom/pom.xml | 101 ++ .../src/test/resources/bigquery_noheader.csv | 0 samples/pom.xml | 78 +- samples/snapshot/pom.xml | 100 ++ .../src/test/resources/bigquery_noheader.csv | 1014 +++++++++++++++++ samples/{ => snippets}/README.md | 0 samples/snippets/pom.xml | 95 ++ .../example/bigquery/AddColumnLoadAppend.java | 0 .../com/example/bigquery/AddEmptyColumn.java | 0 .../com/example/bigquery/AuthDriveScope.java | 0 .../com/example/bigquery/AuthSnippets.java | 0 .../example/bigquery/CopyMultipleTables.java | 0 .../bigquery/CreateClusteredTable.java | 0 .../com/example/bigquery/CreateDataset.java | 0 .../bigquery/CreatePartitionedTable.java | 0 .../com/example/bigquery/CreateTable.java | 0 .../com/example/bigquery/DeleteDataset.java | 0 .../com/example/bigquery/DeleteTable.java | 0 .../example/bigquery/ExtractTableToJson.java | 0 .../com/example/bigquery/GetDatasetInfo.java | 0 .../java/com/example/bigquery/GetModel.java | 0 .../java/com/example/bigquery/GetTable.java | 0 .../com/example/bigquery/ListDatasets.java | 0 .../java/com/example/bigquery/ListModels.java | 0 .../java/com/example/bigquery/ListTables.java | 0 .../com/example/bigquery/LoadLocalFile.java | 0 .../com/example/bigquery/LoadParquet.java | 0 .../bigquery/LoadParquetReplaceTable.java | 0 .../bigquery/LoadPartitionedTable.java | 0 .../example/bigquery/LoadTableClustered.java | 0 .../bigquery/NestedRepeatedSchema.java | 0 .../example/bigquery/QueryClusteredTable.java | 0 .../bigquery/QueryWithNamedParameters.java | 0 .../QueryWithPositionalParameters.java | 0 .../example/bigquery/QuickstartSample.java | 0 .../com/example/bigquery/RelaxColumnMode.java | 0 .../com/example/bigquery/RelaxTableQuery.java | 0 .../com/example/bigquery/RunLegacyQuery.java | 0 .../java/com/example/bigquery/SimpleApp.java | 0 .../com/example/bigquery/TableInsertRows.java | 0 .../example/bigquery/UpdateDatasetAccess.java | 0 .../bigquery/UpdateDatasetDescription.java | 0 .../bigquery/UpdateDatasetExpiration.java | 0 .../bigquery/UpdateTableExpiration.java | 0 .../bigquery/AddColumnLoadAppendIT.java | 0 .../example/bigquery/AddEmptyColumnIT.java | 0 .../example/bigquery/AuthDriveScopeIT.java | 0 .../com/example/bigquery/AuthSnippetsIT.java | 0 .../bigquery/CopyMultipleTablesIT.java | 0 .../bigquery/CreateClusteredTableIT.java | 0 .../com/example/bigquery/CreateDatasetIT.java | 0 .../bigquery/CreatePartitionedTableIT.java | 0 .../com/example/bigquery/CreateTableIT.java | 0 .../com/example/bigquery/DeleteDatasetIT.java | 0 .../com/example/bigquery/DeleteTableIT.java | 0 .../bigquery/ExtractTableToJsonIT.java | 0 .../example/bigquery/GetDatasetInfoIT.java | 0 .../java/com/example/bigquery/GetModelIT.java | 0 .../java/com/example/bigquery/GetTableIT.java | 0 .../com/example/bigquery/ListDatasetsIT.java | 0 .../com/example/bigquery/ListModelsIT.java | 0 .../com/example/bigquery/ListTablesIT.java | 0 .../com/example/bigquery/LoadLocalFileIT.java | 0 .../com/example/bigquery/LoadParquetIT.java | 0 .../bigquery/LoadParquetReplaceTableIT.java | 0 .../bigquery/LoadPartitionedTableIT.java | 0 .../bigquery/LoadTableClusteredIT.java | 0 .../bigquery/NestedRepeatedSchemaIT.java | 0 .../bigquery/QueryClusteredTableIT.java | 0 .../bigquery/QueryWithNamedParametersIT.java | 0 .../QueryWithPositionalParametersIT.java | 0 .../example/bigquery/QuickstartSampleIT.java | 0 .../example/bigquery/RelaxColumnModeIT.java | 0 .../example/bigquery/RelaxTableQueryIT.java | 0 .../example/bigquery/RunLegacyQueryIT.java | 0 .../com/example/bigquery/SimpleAppIT.java | 0 .../example/bigquery/TableInsertRowsIT.java | 0 .../bigquery/UpdateDatasetAccessIT.java | 0 .../bigquery/UpdateDatasetDescriptionIT.java | 0 .../bigquery/UpdateDatasetExpirationIT.java | 0 .../bigquery/UpdateTableExpirationIT.java | 0 .../src/test/resources/bigquery_noheader.csv | 1014 +++++++++++++++++ synth.py | 1 - 84 files changed, 2363 insertions(+), 62 deletions(-) create mode 100644 samples/install-without-bom/pom.xml rename samples/{ => install-without-bom}/src/test/resources/bigquery_noheader.csv (100%) create mode 100644 samples/snapshot/pom.xml create mode 100644 samples/snapshot/src/test/resources/bigquery_noheader.csv rename samples/{ => snippets}/README.md (100%) create mode 100644 samples/snippets/pom.xml rename samples/{ => snippets}/src/main/java/com/example/bigquery/AddColumnLoadAppend.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/AddEmptyColumn.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/AuthDriveScope.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/AuthSnippets.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/CopyMultipleTables.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/CreateClusteredTable.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/CreateDataset.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/CreatePartitionedTable.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/CreateTable.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/DeleteDataset.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/DeleteTable.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/ExtractTableToJson.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/GetDatasetInfo.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/GetModel.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/GetTable.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/ListDatasets.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/ListModels.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/ListTables.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/LoadLocalFile.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/LoadParquet.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/LoadPartitionedTable.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/LoadTableClustered.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/NestedRepeatedSchema.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/QueryClusteredTable.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/QueryWithNamedParameters.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/QuickstartSample.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/RelaxColumnMode.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/RelaxTableQuery.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/RunLegacyQuery.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/SimpleApp.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/TableInsertRows.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/UpdateDatasetAccess.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/UpdateDatasetDescription.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java (100%) rename samples/{ => snippets}/src/main/java/com/example/bigquery/UpdateTableExpiration.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/AddEmptyColumnIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/AuthDriveScopeIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/AuthSnippetsIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/CreateClusteredTableIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/CreateDatasetIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/CreateTableIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/DeleteDatasetIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/DeleteTableIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/GetDatasetInfoIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/GetModelIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/GetTableIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/ListDatasetsIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/ListModelsIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/ListTablesIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/LoadLocalFileIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/LoadParquetIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/LoadTableClusteredIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/QueryClusteredTableIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/QuickstartSampleIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/RelaxColumnModeIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/RelaxTableQueryIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/RunLegacyQueryIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/SimpleAppIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/TableInsertRowsIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java (100%) rename samples/{ => snippets}/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java (100%) create mode 100644 samples/snippets/src/test/resources/bigquery_noheader.csv diff --git a/.kokoro/run_samples_tests.sh b/.kokoro/run_samples_tests.sh index dc8b82215b88..02038d8f3c6d 100755 --- a/.kokoro/run_samples_tests.sh +++ b/.kokoro/run_samples_tests.sh @@ -20,19 +20,35 @@ set -eo pipefail echo "********** MAVEN INFO ***********" mvn -v +# Get the directory of the build script +scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) +## cd to the parent directory, i.e. the root of the git repo +cd ${scriptDir}/.. + +# include common functions +source ${scriptDir}/common.sh + # Setup required env variables source ${KOKORO_GFILE_DIR}/bigquery_secrets.txt echo "********** Successfully Set All Environment Variables **********" +# Attempt to install 3 times with exponential backoff (starting with 10 seconds) +retry_with_backoff 3 10 \ + mvn install -B -V \ + -DskipTests=true \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -Dmaven.javadoc.skip=true \ + -Dgcloud.download.skip=true \ + -T 1C + # Activate service account gcloud auth activate-service-account \ --key-file="$GOOGLE_APPLICATION_CREDENTIALS" \ --project="$GOOGLE_CLOUD_PROJECT" -# Get the directory of the build script -scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) # Move into the samples directory -cd ${scriptDir}/../samples/ +cd samples/ echo -e "\n******************** RUNNING SAMPLE TESTS ********************" diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml new file mode 100644 index 000000000000..953a54eb86ff --- /dev/null +++ b/samples/install-without-bom/pom.xml @@ -0,0 +1,101 @@ + + + + + 4.0.0 + com.google.cloud + bigquery-install-without-bom + jar + Google BigQuery Install Without Bom + https://github.com/googleapis/java-bigquery + + + + com.google.cloud.samples + shared-configuration + 1.0.12 + + + + 1.8 + 1.8 + UTF-8 + + + + + + + com.google.cloud + google-cloud-bigquery + 1.110.0 + + + + + + junit + junit + 4.13 + test + + + com.google.truth + truth + 1.0.1 + test + + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.1.0 + + + add-snippets-source + + add-source + + + + ../snippets/src/main/java + + + + + add-snippets-tests + + add-test-source + + + + ../snippets/src/test/java + + + + + + + + diff --git a/samples/src/test/resources/bigquery_noheader.csv b/samples/install-without-bom/src/test/resources/bigquery_noheader.csv similarity index 100% rename from samples/src/test/resources/bigquery_noheader.csv rename to samples/install-without-bom/src/test/resources/bigquery_noheader.csv diff --git a/samples/pom.xml b/samples/pom.xml index 74a3156dff49..079fb4d7f303 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -1,3 +1,4 @@ + - + + 4.0.0 - com.example.bigquery - bigquery-google-cloud-samples - jar + com.google.cloud + google-cloud-bigquery-samples + 0.0.1-SNAPSHOT + pom + Google BigQuery Samples Parent + https://github.com/googleapis/java-bigquery + + Java idiomatic client for Google Cloud Platform services. + - - - - - com.google.cloud - libraries-bom - 4.3.0 - pom - import - - - - - - - com.google.cloud - google-cloud-bigquery - - - - com.google.api - gax - 1.54.0 - - - com.google.cloud - google-cloud-core - 1.93.3 - - - com.google.auth - google-auth-library-oauth2-http - 0.20.0 - - - - - junit - junit - 4.13 - test - - - com.google.truth - truth - 1.0 - test - - + + install-without-bom + snapshot + snippets + @@ -107,4 +69,4 @@
    - + diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml new file mode 100644 index 000000000000..6ef508f6bc76 --- /dev/null +++ b/samples/snapshot/pom.xml @@ -0,0 +1,100 @@ + + + + + 4.0.0 + com.google.cloud + bigquery-snapshot + jar + Google BigQuery Snapshot Samples + https://github.com/googleapis/java-bigquery + + + + com.google.cloud.samples + shared-configuration + 1.0.12 + + + + 1.8 + 1.8 + UTF-8 + + + + + + com.google.cloud + google-cloud-bigquery + 1.110.1-SNAPSHOT + + + + + junit + junit + 4.13 + test + + + com.google.truth + truth + 1.0.1 + test + + + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.1.0 + + + add-snippets-source + + add-source + + + + ../snippets/src/main/java + + + + + add-snippets-tests + + add-test-source + + + + ../snippets/src/test/java + + + + + + + + \ No newline at end of file diff --git a/samples/snapshot/src/test/resources/bigquery_noheader.csv b/samples/snapshot/src/test/resources/bigquery_noheader.csv new file mode 100644 index 000000000000..2e6059952fa7 --- /dev/null +++ b/samples/snapshot/src/test/resources/bigquery_noheader.csv @@ -0,0 +1,1014 @@ +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +Gandalf,2000,140,true +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,2,199.9,false +test,4,199.9,false +test,2,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,2,199.9,false +test,1,199.9,false +test,0,199.9,false +test,2,199.9,false +test,2,199.9,false +test,0,199.9,false +test,2,199.9,false +test,0,199.9,false +test,4,199.9,false +test,2,199.9,false +test,0,199.9,false +test,3,199.9,false +test,3,199.9,false +test,4,199.9,false +test,4,199.9,false +test,4,199.9,false +test,0,199.9,false +test,3,199.9,false +test,1,199.9,false +test,3,199.9,false +test,3,199.9,false +test,1,199.9,false +test,2,199.9,false +test,3,199.9,false +test,4,199.9,false +test,4,199.9,false +test,1,199.9,false +test,4,199.9,false +test,0,199.9,false +test,2,199.9,false +test,0,199.9,false +test,3,199.9,false +test,4,199.9,false +test,1,199.9,false +test,3,199.9,false +test,1,199.9,false +test,0,199.9,false +test,3,199.9,false +test,3,199.9,false +test,0,199.9,false +test,4,199.9,false +test,1,199.9,false +test,2,199.9,false +test,1,199.9,false +test,1,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,199.9,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,2,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,3,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +Gandalf,2000,140,true diff --git a/samples/README.md b/samples/snippets/README.md similarity index 100% rename from samples/README.md rename to samples/snippets/README.md diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml new file mode 100644 index 000000000000..5a56f531917e --- /dev/null +++ b/samples/snippets/pom.xml @@ -0,0 +1,95 @@ + + + 4.0.0 + com.example.bigquery + bigquery-google-cloud-samples + jar + + + + com.google.cloud.samples + shared-configuration + 1.0.13 + + + + 1.8 + 1.8 + UTF-8 + + + + + + + + com.google.cloud + libraries-bom + 4.3.0 + pom + import + + + + + + + com.google.cloud + google-cloud-bigquery + + + + + + junit + junit + 4.13 + test + + + com.google.truth + truth + 1.0.1 + test + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + 2.8.2 + + true + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.8 + + true + + + + + diff --git a/samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java b/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/AddColumnLoadAppend.java rename to samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java diff --git a/samples/src/main/java/com/example/bigquery/AddEmptyColumn.java b/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/AddEmptyColumn.java rename to samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java diff --git a/samples/src/main/java/com/example/bigquery/AuthDriveScope.java b/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/AuthDriveScope.java rename to samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java diff --git a/samples/src/main/java/com/example/bigquery/AuthSnippets.java b/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/AuthSnippets.java rename to samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java diff --git a/samples/src/main/java/com/example/bigquery/CopyMultipleTables.java b/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/CopyMultipleTables.java rename to samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java diff --git a/samples/src/main/java/com/example/bigquery/CreateClusteredTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/CreateClusteredTable.java rename to samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java diff --git a/samples/src/main/java/com/example/bigquery/CreateDataset.java b/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/CreateDataset.java rename to samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java diff --git a/samples/src/main/java/com/example/bigquery/CreatePartitionedTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/CreatePartitionedTable.java rename to samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java diff --git a/samples/src/main/java/com/example/bigquery/CreateTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/CreateTable.java rename to samples/snippets/src/main/java/com/example/bigquery/CreateTable.java diff --git a/samples/src/main/java/com/example/bigquery/DeleteDataset.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/DeleteDataset.java rename to samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java diff --git a/samples/src/main/java/com/example/bigquery/DeleteTable.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/DeleteTable.java rename to samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java diff --git a/samples/src/main/java/com/example/bigquery/ExtractTableToJson.java b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/ExtractTableToJson.java rename to samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java diff --git a/samples/src/main/java/com/example/bigquery/GetDatasetInfo.java b/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/GetDatasetInfo.java rename to samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java diff --git a/samples/src/main/java/com/example/bigquery/GetModel.java b/samples/snippets/src/main/java/com/example/bigquery/GetModel.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/GetModel.java rename to samples/snippets/src/main/java/com/example/bigquery/GetModel.java diff --git a/samples/src/main/java/com/example/bigquery/GetTable.java b/samples/snippets/src/main/java/com/example/bigquery/GetTable.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/GetTable.java rename to samples/snippets/src/main/java/com/example/bigquery/GetTable.java diff --git a/samples/src/main/java/com/example/bigquery/ListDatasets.java b/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/ListDatasets.java rename to samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java diff --git a/samples/src/main/java/com/example/bigquery/ListModels.java b/samples/snippets/src/main/java/com/example/bigquery/ListModels.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/ListModels.java rename to samples/snippets/src/main/java/com/example/bigquery/ListModels.java diff --git a/samples/src/main/java/com/example/bigquery/ListTables.java b/samples/snippets/src/main/java/com/example/bigquery/ListTables.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/ListTables.java rename to samples/snippets/src/main/java/com/example/bigquery/ListTables.java diff --git a/samples/src/main/java/com/example/bigquery/LoadLocalFile.java b/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/LoadLocalFile.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java diff --git a/samples/src/main/java/com/example/bigquery/LoadParquet.java b/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/LoadParquet.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java diff --git a/samples/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java b/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java diff --git a/samples/src/main/java/com/example/bigquery/LoadPartitionedTable.java b/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/LoadPartitionedTable.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java diff --git a/samples/src/main/java/com/example/bigquery/LoadTableClustered.java b/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/LoadTableClustered.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java diff --git a/samples/src/main/java/com/example/bigquery/NestedRepeatedSchema.java b/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/NestedRepeatedSchema.java rename to samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java diff --git a/samples/src/main/java/com/example/bigquery/QueryClusteredTable.java b/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/QueryClusteredTable.java rename to samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java diff --git a/samples/src/main/java/com/example/bigquery/QueryWithNamedParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/QueryWithNamedParameters.java rename to samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java diff --git a/samples/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java rename to samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java diff --git a/samples/src/main/java/com/example/bigquery/QuickstartSample.java b/samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/QuickstartSample.java rename to samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java diff --git a/samples/src/main/java/com/example/bigquery/RelaxColumnMode.java b/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/RelaxColumnMode.java rename to samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java diff --git a/samples/src/main/java/com/example/bigquery/RelaxTableQuery.java b/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/RelaxTableQuery.java rename to samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java diff --git a/samples/src/main/java/com/example/bigquery/RunLegacyQuery.java b/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/RunLegacyQuery.java rename to samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java diff --git a/samples/src/main/java/com/example/bigquery/SimpleApp.java b/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/SimpleApp.java rename to samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java diff --git a/samples/src/main/java/com/example/bigquery/TableInsertRows.java b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/TableInsertRows.java rename to samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java diff --git a/samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/UpdateDatasetAccess.java rename to samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java diff --git a/samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/UpdateDatasetDescription.java rename to samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java diff --git a/samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java rename to samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java diff --git a/samples/src/main/java/com/example/bigquery/UpdateTableExpiration.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java similarity index 100% rename from samples/src/main/java/com/example/bigquery/UpdateTableExpiration.java rename to samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java diff --git a/samples/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java b/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java rename to samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java diff --git a/samples/src/test/java/com/example/bigquery/AddEmptyColumnIT.java b/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/AddEmptyColumnIT.java rename to samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java diff --git a/samples/src/test/java/com/example/bigquery/AuthDriveScopeIT.java b/samples/snippets/src/test/java/com/example/bigquery/AuthDriveScopeIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/AuthDriveScopeIT.java rename to samples/snippets/src/test/java/com/example/bigquery/AuthDriveScopeIT.java diff --git a/samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java b/samples/snippets/src/test/java/com/example/bigquery/AuthSnippetsIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/AuthSnippetsIT.java rename to samples/snippets/src/test/java/com/example/bigquery/AuthSnippetsIT.java diff --git a/samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java b/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java rename to samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java diff --git a/samples/src/test/java/com/example/bigquery/CreateClusteredTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/CreateClusteredTableIT.java rename to samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java diff --git a/samples/src/test/java/com/example/bigquery/CreateDatasetIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/CreateDatasetIT.java rename to samples/snippets/src/test/java/com/example/bigquery/CreateDatasetIT.java diff --git a/samples/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java rename to samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java diff --git a/samples/src/test/java/com/example/bigquery/CreateTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/CreateTableIT.java rename to samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java diff --git a/samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/DeleteDatasetIT.java rename to samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetIT.java diff --git a/samples/src/test/java/com/example/bigquery/DeleteTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteTableIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/DeleteTableIT.java rename to samples/snippets/src/test/java/com/example/bigquery/DeleteTableIT.java diff --git a/samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java rename to samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java diff --git a/samples/src/test/java/com/example/bigquery/GetDatasetInfoIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetDatasetInfoIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/GetDatasetInfoIT.java rename to samples/snippets/src/test/java/com/example/bigquery/GetDatasetInfoIT.java diff --git a/samples/src/test/java/com/example/bigquery/GetModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/GetModelIT.java rename to samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java diff --git a/samples/src/test/java/com/example/bigquery/GetTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetTableIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/GetTableIT.java rename to samples/snippets/src/test/java/com/example/bigquery/GetTableIT.java diff --git a/samples/src/test/java/com/example/bigquery/ListDatasetsIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/ListDatasetsIT.java rename to samples/snippets/src/test/java/com/example/bigquery/ListDatasetsIT.java diff --git a/samples/src/test/java/com/example/bigquery/ListModelsIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/ListModelsIT.java rename to samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java diff --git a/samples/src/test/java/com/example/bigquery/ListTablesIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListTablesIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/ListTablesIT.java rename to samples/snippets/src/test/java/com/example/bigquery/ListTablesIT.java diff --git a/samples/src/test/java/com/example/bigquery/LoadLocalFileIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/LoadLocalFileIT.java rename to samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java diff --git a/samples/src/test/java/com/example/bigquery/LoadParquetIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/LoadParquetIT.java rename to samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java diff --git a/samples/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java rename to samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java diff --git a/samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java rename to samples/snippets/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java diff --git a/samples/src/test/java/com/example/bigquery/LoadTableClusteredIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/LoadTableClusteredIT.java rename to samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java diff --git a/samples/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java b/samples/snippets/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java rename to samples/snippets/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java diff --git a/samples/src/test/java/com/example/bigquery/QueryClusteredTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/QueryClusteredTableIT.java rename to samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java diff --git a/samples/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java rename to samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java diff --git a/samples/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java rename to samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java diff --git a/samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java b/samples/snippets/src/test/java/com/example/bigquery/QuickstartSampleIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/QuickstartSampleIT.java rename to samples/snippets/src/test/java/com/example/bigquery/QuickstartSampleIT.java diff --git a/samples/src/test/java/com/example/bigquery/RelaxColumnModeIT.java b/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnModeIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/RelaxColumnModeIT.java rename to samples/snippets/src/test/java/com/example/bigquery/RelaxColumnModeIT.java diff --git a/samples/src/test/java/com/example/bigquery/RelaxTableQueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/RelaxTableQueryIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/RelaxTableQueryIT.java rename to samples/snippets/src/test/java/com/example/bigquery/RelaxTableQueryIT.java diff --git a/samples/src/test/java/com/example/bigquery/RunLegacyQueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/RunLegacyQueryIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/RunLegacyQueryIT.java rename to samples/snippets/src/test/java/com/example/bigquery/RunLegacyQueryIT.java diff --git a/samples/src/test/java/com/example/bigquery/SimpleAppIT.java b/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/SimpleAppIT.java rename to samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java diff --git a/samples/src/test/java/com/example/bigquery/TableInsertRowsIT.java b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/TableInsertRowsIT.java rename to samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java diff --git a/samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java rename to samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java diff --git a/samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java rename to samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java diff --git a/samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java rename to samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java diff --git a/samples/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java similarity index 100% rename from samples/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java rename to samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java diff --git a/samples/snippets/src/test/resources/bigquery_noheader.csv b/samples/snippets/src/test/resources/bigquery_noheader.csv new file mode 100644 index 000000000000..2e6059952fa7 --- /dev/null +++ b/samples/snippets/src/test/resources/bigquery_noheader.csv @@ -0,0 +1,1014 @@ +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +Gandalf,2000,140,true +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +Gandalf,2000,140,true +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,1,199.9,false +test,0,199.9,false +test,0,199.9,false +test,2,199.9,false +test,4,199.9,false +test,2,199.9,false +test,1,199.9,false +test,1,199.9,false +test,1,199.9,false +test,2,199.9,false +test,1,199.9,false +test,0,199.9,false +test,2,199.9,false +test,2,199.9,false +test,0,199.9,false +test,2,199.9,false +test,0,199.9,false +test,4,199.9,false +test,2,199.9,false +test,0,199.9,false +test,3,199.9,false +test,3,199.9,false +test,4,199.9,false +test,4,199.9,false +test,4,199.9,false +test,0,199.9,false +test,3,199.9,false +test,1,199.9,false +test,3,199.9,false +test,3,199.9,false +test,1,199.9,false +test,2,199.9,false +test,3,199.9,false +test,4,199.9,false +test,4,199.9,false +test,1,199.9,false +test,4,199.9,false +test,0,199.9,false +test,2,199.9,false +test,0,199.9,false +test,3,199.9,false +test,4,199.9,false +test,1,199.9,false +test,3,199.9,false +test,1,199.9,false +test,0,199.9,false +test,3,199.9,false +test,3,199.9,false +test,0,199.9,false +test,4,199.9,false +test,1,199.9,false +test,2,199.9,false +test,1,199.9,false +test,1,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,199.9,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,2,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,1,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,3,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,1,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,1,100,false +test,1,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,3,100,false +test,1,100,false +test,3,100,false +test,3,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,0,100,false +test,2,100,false +test,0,100,false +test,0,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,2,100,false +test,2,100,false +test,3,100,false +test,1,100,false +test,0,100,false +test,3,100,false +test,0,100,false +test,1,100,false +test,2,100,false +test,0,100,false +test,0,100,false +Gandalf,2000,140,true diff --git a/synth.py b/synth.py index d7679c03d028..37ed336799b3 100644 --- a/synth.py +++ b/synth.py @@ -20,7 +20,6 @@ java.common_templates(excludes=[ 'README.md', - 'samples/*', '.kokoro/continuous/java8-samples.cfg', '.kokoro/continuous/java11-samples.cfg', '.kokoro/nightly/java8-samples.cfg', From caeaebfcaa804e70c9a13370339509d7a1b281c7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 30 Mar 2020 19:18:52 +0200 Subject: [PATCH 0418/3441] deps: update core dependencies to v1.55.0 (#250) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b7306e28a91d..dca3c46e476f 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ 1.93.3 1.9.0 1.17.0 - 1.54.0 + 1.55.0 1.28.0 3.11.4 4.13 From 13b9a89471e3ece2adb737c5f3f203b2095676d9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 30 Mar 2020 20:14:06 +0200 Subject: [PATCH 0419/3441] chore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.14 (#249) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud.samples:shared-configuration](https://togithub.com/GoogleCloudPlatform/java-repo-tools) | patch | `1.0.12` -> `1.0.14` | | [com.google.cloud.samples:shared-configuration](https://togithub.com/GoogleCloudPlatform/java-repo-tools) | patch | `1.0.13` -> `1.0.14` | --- ### Release Notes
    GoogleCloudPlatform/java-repo-tools ### [`v1.0.14`](https://togithub.com/GoogleCloudPlatform/java-repo-tools/releases/v1.0.14) [Compare Source](https://togithub.com/GoogleCloudPlatform/java-repo-tools/compare/v1.0.13...v1.0.14) - Update CheckStyle to 8.31 - Add SpotBugs ### [`v1.0.13`](https://togithub.com/GoogleCloudPlatform/java-repo-tools/releases/v1.0.13) [Compare Source](https://togithub.com/GoogleCloudPlatform/java-repo-tools/compare/v1.0.12...v1.0.13) Fix some issues w/ Checkstyle configuration. We left the option to turn it off out.
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 953a54eb86ff..2335abfbc2f6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.12 + 1.0.14 diff --git a/samples/pom.xml b/samples/pom.xml index 079fb4d7f303..722494980ca6 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -34,7 +34,7 @@ com.google.cloud.samples shared-configuration - 1.0.12 + 1.0.14 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6ef508f6bc76..1a16674b2e7c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.12 + 1.0.14 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 5a56f531917e..6a0d2304f07e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.13 + 1.0.14 From 124d8b69739a446047f4acd69ea8e041714ed43c Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 30 Mar 2020 18:41:01 -0400 Subject: [PATCH 0420/3441] samples: add new sample bigquery_query_params_structs (#204) * samples: add new sample bigquery_query_params_structs * update sample * inline boolean val Co-Authored-By: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com> * inline vars Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com> --- .../bigquery/QueryWithStructsParameters.java | 63 +++++++++++++++++++ .../QueryWithStructsParametersIT.java | 48 ++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryWithStructsParametersIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java new file mode 100644 index 000000000000..79db8534ed30 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java @@ -0,0 +1,63 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_params_structs] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.TableResult; +import java.util.HashMap; +import java.util.Map; + +public class QueryWithStructsParameters { + + public static void queryWithStructsParameters() { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Create struct + Map struct = new HashMap<>(); + struct.put("booleanField", QueryParameterValue.bool(true)); + struct.put("integerField", QueryParameterValue.string("test-stringField")); + struct.put("stringField", QueryParameterValue.int64(10)); + QueryParameterValue recordValue = QueryParameterValue.struct(struct); + + String query = "SELECT STRUCT(@recordField) AS record"; + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .setUseLegacySql(false) + .addNamedParameter("recordField", recordValue) + .build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s", val.toString()))); + + System.out.println("Query with struct parameter performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_params_structs] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithStructsParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithStructsParametersIT.java new file mode 100644 index 000000000000..799e9c1b33f3 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithStructsParametersIT.java @@ -0,0 +1,48 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryWithStructsParametersIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryWithNamedParameters() { + QueryWithStructsParameters.queryWithStructsParameters(); + assertThat(bout.toString()).contains("Query with struct parameter performed successfully."); + } +} From 0570d13c4c168842480b8f83c03d4b19ed88050d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 31 Mar 2020 00:41:58 +0200 Subject: [PATCH 0421/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200324-1.30.9 (#252) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dca3c46e476f..88fb8e39da1f 100644 --- a/pom.xml +++ b/pom.xml @@ -74,7 +74,7 @@ 1.4.2 1.3.2 1.18 - v2-rev20191211-1.30.9 + v2-rev20200324-1.30.9 1.7 ${auto-value.version} From 10b19b29bae903be16e957fa119f2255e4c01ec5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 1 Apr 2020 22:06:05 +0200 Subject: [PATCH 0422/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v4.4.0 (#253) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `4.3.0` -> `4.4.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6a0d2304f07e..d6dc5ab7a926 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -43,7 +43,7 @@ com.google.cloud libraries-bom - 4.3.0 + 4.4.0 pom import From 546861d5e73624efe18b6ca04286720ef74ceed5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 3 Apr 2020 18:07:49 +0200 Subject: [PATCH 0423/3441] deps: update dependency io.grpc:grpc-bom to v1.28.1 (#254) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 88fb8e39da1f..5d3f9871ecdb 100644 --- a/pom.xml +++ b/pom.xml @@ -67,7 +67,7 @@ 1.9.0 1.17.0 1.55.0 - 1.28.0 + 1.28.1 3.11.4 4.13 28.2-android From 21e91653c90aa98cf2689576ec3fc143ed6048ff Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 6 Apr 2020 17:48:08 +0200 Subject: [PATCH 0424/3441] chore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.15 (#255) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud.samples:shared-configuration](https://togithub.com/GoogleCloudPlatform/java-repo-tools) | patch | `1.0.14` -> `1.0.15` | --- ### Release Notes
    GoogleCloudPlatform/java-repo-tools ### [`v1.0.15`](https://togithub.com/GoogleCloudPlatform/java-repo-tools/releases/v1.0.15) [Compare Source](https://togithub.com/GoogleCloudPlatform/java-repo-tools/compare/v1.0.14...v1.0.15) - Move some stuff around (in prep for a change to release process) pom.xml's - Add an exclude filter for SpotBugs. (disable the Java 11 surprise) - Don't fail on SpotBugs issues for now - add PMD reporting - Don't fail on PMD issues for now.
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2335abfbc2f6..e2fd914c2dbc 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.14 + 1.0.15 diff --git a/samples/pom.xml b/samples/pom.xml index 722494980ca6..9635b9bd756a 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -34,7 +34,7 @@ com.google.cloud.samples shared-configuration - 1.0.14 + 1.0.15 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1a16674b2e7c..5a51da063358 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.14 + 1.0.15 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d6dc5ab7a926..37b73a57d310 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.14 + 1.0.15 From b0457f04bbf2a2528b2672d4ea5889d064a123b2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 6 Apr 2020 18:34:30 +0200 Subject: [PATCH 0425/3441] deps: update dependency org.threeten:threetenbp to v1.4.3 (#256) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [org.threeten:threetenbp](https://www.threeten.org/threetenbp) ([source](https://togithub.com/ThreeTen/threetenbp)) | patch | `1.4.2` -> `1.4.3` | --- ### Release Notes
    ThreeTen/threetenbp ### [`v1.4.3`](https://togithub.com/ThreeTen/threetenbp/releases/v1.4.3) [Compare Source](https://togithub.com/ThreeTen/threetenbp/compare/v1.4.2...v1.4.3) See the [change notes](https://www.threeten.org/threetenbp/changes-report.html) for more information.
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5d3f9871ecdb..3473672208fa 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ 3.11.4 4.13 28.2-android - 1.4.2 + 1.4.3 1.3.2 1.18 v2-rev20200324-1.30.9 From ca79be961df9fa900b8f99ee932329ea34845b27 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 6 Apr 2020 19:55:41 +0200 Subject: [PATCH 0426/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v4.4.1 (#257) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 37b73a57d310..db35c22ba372 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -43,7 +43,7 @@ com.google.cloud libraries-bom - 4.4.0 + 4.4.1 pom import From 1c85a6b3d7c64bd5d774b78a182baf728fc110b5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 7 Apr 2020 00:54:21 +0200 Subject: [PATCH 0427/3441] deps: update core dependencies to v1.56.0 (#258) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.api:gax-grpc](https://togithub.com/googleapis/gax-java) | minor | `1.55.0` -> `1.56.0` | | [com.google.api:gax-bom](https://togithub.com/googleapis/gax-java) | minor | `1.55.0` -> `1.56.0` | --- ### Release Notes
    googleapis/gax-java ### [`v1.56.0`](https://togithub.com/googleapis/gax-java/releases/v1.56.0) [Compare Source](https://togithub.com/googleapis/gax-java/compare/v1.55.0...v1.56.0) 04-06-2020 10:29 PDT ##### New Features - Add ability to partially update retry settings ([#​993](https://togithub.com/googleapis/gax-java/pull/993)) ##### Dependencies - Update grpc to 1.28.1 ([#​1013](https://togithub.com/googleapis/gax-java/pull/1013)) - Update com.google.api:api-common to 1.9.0 ([#​992](https://togithub.com/googleapis/gax-java/pull/992)) - Add javax.annotations dependency in bazel build to gax-grpc ([#​1000](https://togithub.com/googleapis/gax-java/pull/1000)) ##### Internal / Testing Changes - test: make it easier to debug failures in SettingsTest ([#​994](https://togithub.com/googleapis/gax-java/pull/994)) - build: update dependency gradle.plugin.com.dorongold.plugins:task-tree to v1.5 ([#​995](https://togithub.com/googleapis/gax-java/pull/995)) - test: update dependency com.google.api.grpc:grpc-google-cloud-pubsub-v1 to v1.86.0 ([#​1008](https://togithub.com/googleapis/gax-java/pull/1008))
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3473672208fa..655f8d153825 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,7 @@ 1.93.3 1.9.0 1.17.0 - 1.55.0 + 1.56.0 1.28.1 3.11.4 4.13 From 07b30916f8ab2b8680eedea14f73c94a4329343c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 7 Apr 2020 01:08:24 +0200 Subject: [PATCH 0428/3441] deps: update core dependencies to v1.93.4 (#259) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-core](https://togithub.com/googleapis/java-core) | patch | `1.93.3` -> `1.93.4` | | [com.google.cloud:google-cloud-core-http](https://togithub.com/googleapis/java-core) | patch | `1.93.3` -> `1.93.4` | --- ### Release Notes
    googleapis/java-core ### [`v1.93.4`](https://togithub.com/googleapis/java-core/blob/master/CHANGELOG.md#​1934-httpswwwgithubcomgoogleapisjava-corecomparev1933v1934-2020-04-06) [Compare Source](https://togithub.com/googleapis/java-core/compare/v1.93.3...v1.93.4)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 655f8d153825..0ab25e03980c 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - 1.93.3 + 1.93.4 1.9.0 1.17.0 1.56.0 From 649e0d57369d01325b52acb1de49a3bebd0aa1d8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2020 12:12:05 -0400 Subject: [PATCH 0429/3441] chore: release 1.110.1 (#247) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 14 ++++++++++++++ README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c78f9f90e43..7cf57b9fcf71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +### [1.110.1](https://www.github.com/googleapis/java-bigquery/compare/v1.110.0...v1.110.1) (2020-04-06) + + +### Dependencies + +* update core dependencies to v1.55.0 ([#250](https://www.github.com/googleapis/java-bigquery/issues/250)) ([caeaebf](https://www.github.com/googleapis/java-bigquery/commit/caeaebfcaa804e70c9a13370339509d7a1b281c7)) +* update core dependencies to v1.56.0 ([#258](https://www.github.com/googleapis/java-bigquery/issues/258)) ([1c85a6b](https://www.github.com/googleapis/java-bigquery/commit/1c85a6b3d7c64bd5d774b78a182baf728fc110b5)) +* update core dependencies to v1.93.4 ([#259](https://www.github.com/googleapis/java-bigquery/issues/259)) ([07b3091](https://www.github.com/googleapis/java-bigquery/commit/07b30916f8ab2b8680eedea14f73c94a4329343c)) +* update dependency com.google.api:api-common to v1.9.0 ([#246](https://www.github.com/googleapis/java-bigquery/issues/246)) ([783f1ad](https://www.github.com/googleapis/java-bigquery/commit/783f1ade581b3930f5585a30b4c1c278762e0d9d)) +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200324-1.30.9 ([#252](https://www.github.com/googleapis/java-bigquery/issues/252)) ([0570d13](https://www.github.com/googleapis/java-bigquery/commit/0570d13c4c168842480b8f83c03d4b19ed88050d)) +* update dependency com.google.cloud.samples:shared-configuration to v1.0.13 ([#243](https://www.github.com/googleapis/java-bigquery/issues/243)) ([4c62001](https://www.github.com/googleapis/java-bigquery/commit/4c620018288b36d7e8743c0ace37ef25397d1060)) +* update dependency io.grpc:grpc-bom to v1.28.1 ([#254](https://www.github.com/googleapis/java-bigquery/issues/254)) ([546861d](https://www.github.com/googleapis/java-bigquery/commit/546861d5e73624efe18b6ca04286720ef74ceed5)) +* update dependency org.threeten:threetenbp to v1.4.3 ([#256](https://www.github.com/googleapis/java-bigquery/issues/256)) ([b0457f0](https://www.github.com/googleapis/java-bigquery/commit/b0457f04bbf2a2528b2672d4ea5889d064a123b2)) + ## [1.110.0](https://www.github.com/googleapis/java-bigquery/compare/v1.109.0...v1.110.0) (2020-03-20) diff --git a/README.md b/README.md index 9296ac0d4b5a..230e27148e8c 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.110.0 + 1.110.1 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.110.0' +compile 'com.google.cloud:google-cloud-bigquery:1.110.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.110.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.110.1" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2385b5cc6026..5534c8517d14 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.110.1-SNAPSHOT + 1.110.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.110.1-SNAPSHOT + 1.110.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0ab25e03980c..8ab77624c7e2 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.110.1-SNAPSHOT + 1.110.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.110.1-SNAPSHOT + 1.110.1 diff --git a/versions.txt b/versions.txt index ca3a4b31cf21..843ace756a64 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.110.0:1.110.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.110.1:1.110.1 \ No newline at end of file From 6122bd4ed9a3d807fcf8ecad8e0f69612deeeb56 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 7 Apr 2020 16:38:16 +0000 Subject: [PATCH 0430/3441] chore: release 1.110.2-SNAPSHOT (#261) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- versions.txt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5534c8517d14..f8624c509270 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.110.1 + 1.110.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.110.1 + 1.110.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8ab77624c7e2..7db3c1a1f9de 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.110.1 + 1.110.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.110.1 + 1.110.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 843ace756a64..34d29ccbe381 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.110.1:1.110.1 \ No newline at end of file +google-cloud-bigquery:1.110.1:1.110.2-SNAPSHOT \ No newline at end of file From 0db31f91b4f5256255fd5dee3f55d8d54d3a2cb6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 7 Apr 2020 19:57:42 +0200 Subject: [PATCH 0431/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.110.1 (#262) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e2fd914c2dbc..44d878ea63d6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.110.0 + 1.110.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5a51da063358..2c72316ea027 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.110.1-SNAPSHOT + 1.110.1 From b129e5e9d210c57b2af38d5cac7c65195d9a5a11 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 7 Apr 2020 16:37:31 -0400 Subject: [PATCH 0432/3441] samples: add region tag back (#263) --- samples/snippets/pom.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index db35c22ba372..ff777c784269 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -36,6 +36,7 @@ + @@ -55,6 +56,7 @@ com.google.cloud google-cloud-bigquery + From 9ec561d13f66a3215f313b1848b144f4feec767b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 8 Apr 2020 06:46:07 +0200 Subject: [PATCH 0433/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.5.0 (#264) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | minor | `0.4.0` -> `0.5.0` | --- ### Release Notes
    googleapis/java-shared-config ### [`v0.5.0`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​050-httpswwwgithubcomgoogleapisjava-shared-configcomparev040v050-2020-04-07) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v0.4.0...v0.5.0) ##### Features - add ban duplicate classes rule ([#​126](https://www.github.com/googleapis/java-shared-config/issues/126)) ([e38a7cc](https://www.github.com/googleapis/java-shared-config/commit/e38a7cc949396f8f5696e62cd060e0c076047b8d)) - add devsite javadoc profile ([#​121](https://www.github.com/googleapis/java-shared-config/issues/121)) ([7f452fb](https://www.github.com/googleapis/java-shared-config/commit/7f452fb6c5704f6ce0f731085479a28fb99ebcb9)) - add maven flatten plugin ([#​127](https://www.github.com/googleapis/java-shared-config/issues/127)) ([fb00799](https://www.github.com/googleapis/java-shared-config/commit/fb00799c416d324d68da5b660a26f7ef595c26d9)) ##### Bug Fixes - declare com.coveo:fmt-maven-plugin version/configuration ([#​90](https://www.github.com/googleapis/java-shared-config/issues/90)) ([5cf71a6](https://www.github.com/googleapis/java-shared-config/commit/5cf71a6ed699907082756e70c2fdee6ad3632f38)) ##### Dependencies - update dependency com.google.cloud.samples:shared-configuration to v1.0.13 ([#​118](https://www.github.com/googleapis/java-shared-config/issues/118)) ([58ae69e](https://www.github.com/googleapis/java-shared-config/commit/58ae69eb5ba037963cdaed0c2b0e30663bc873eb)) - update dependency com.puppycrawl.tools:checkstyle to v8.29 ([f62292d](https://www.github.com/googleapis/java-shared-config/commit/f62292dab75699a75f8a7d499fe2ccfb7ee93783)) - update dependency org.apache.maven.plugins:maven-antrun-plugin to v1.8 ([#​124](https://www.github.com/googleapis/java-shared-config/issues/124)) ([a681536](https://www.github.com/googleapis/java-shared-config/commit/a68153643400c3f3b5c5959cda4dc3b552336427)) - update dependency org.apache.maven.plugins:maven-dependency-plugin to v3.1.2 ([#​107](https://www.github.com/googleapis/java-shared-config/issues/107)) ([c9b096b](https://www.github.com/googleapis/java-shared-config/commit/c9b096b81b1f4f8dc2d1302f259f0321722e1ca5)) - update dependency org.apache.maven.plugins:maven-site-plugin to v3.9.0 ([#​103](https://www.github.com/googleapis/java-shared-config/issues/103)) ([abe7140](https://www.github.com/googleapis/java-shared-config/commit/abe714060e858c70a83888fb34438c45d97b1168)) - update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.1.0 ([#​101](https://www.github.com/googleapis/java-shared-config/issues/101)) ([ac69572](https://www.github.com/googleapis/java-shared-config/commit/ac69572be76e4462fdf65fa6e7f0935c3d51d827))
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7db3c1a1f9de..eae726be1c53 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.4.0 + 0.5.0 From 3afaf8a0cabacfc0cb01ce6a033bd666e0dfce24 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 8 Apr 2020 15:32:33 -0700 Subject: [PATCH 0434/3441] chore: update common templates (#265) * build(java): fix retry_with_backoff when -e option set (#475) https://github.com/googleapis/synthtool/commit/bd69a2aa7b70875f3c988e269706b22fefbef40e commit bd69a2aa7b70875f3c988e269706b22fefbef40e Author: Jeff Ching Date: Wed Apr 8 14:01:08 2020 -0700 build(java): fix retry_with_backoff when -e option set (#475) * build(java): fix nightly integration test config to run integrations (#465) https://github.com/googleapis/synthtool/commit/c7e0e517d7f46f77bebd27da2e5afcaa6eee7e25 commit c7e0e517d7f46f77bebd27da2e5afcaa6eee7e25 Author: Jeff Ching Date: Wed Apr 8 14:06:04 2020 -0700 build(java): fix nightly integration test config to run integrations (#465) This was only running the units. --- .kokoro/common.sh | 14 ++++++++++++-- .kokoro/nightly/integration.cfg | 15 +++++++++++++++ synth.metadata | 13 ++++++++++--- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/.kokoro/common.sh b/.kokoro/common.sh index a3bbc5f67963..8f09de5d3d10 100644 --- a/.kokoro/common.sh +++ b/.kokoro/common.sh @@ -13,18 +13,28 @@ # See the License for the specific language governing permissions and # limitations under the License. -# set -eo pipefail - function retry_with_backoff { attempts_left=$1 sleep_seconds=$2 shift 2 command=$@ + + # store current flag state + flags=$- + + # allow a failures to continue + set +e echo "${command}" ${command} exit_code=$? + # restore "e" flag + if [[ ${flags} =~ e ]] + then set -e + else set +e + fi + if [[ $exit_code == 0 ]] then return 0 diff --git a/.kokoro/nightly/integration.cfg b/.kokoro/nightly/integration.cfg index 8bf59c02edd6..ca027480092f 100644 --- a/.kokoro/nightly/integration.cfg +++ b/.kokoro/nightly/integration.cfg @@ -6,11 +6,26 @@ env_vars: { value: "gcr.io/cloud-devrel-kokoro-resources/java8" } +env_vars: { + key: "JOB_TYPE" + value: "integration" +} + +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + env_vars: { key: "ENABLE_BUILD_COP" value: "true" } +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "keystore/73713_java_it_service_account" +} + before_action { fetch_keystore { keystore_resource { diff --git a/synth.metadata b/synth.metadata index a0dec4248e8d..ce2af2c4e123 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,12 +1,19 @@ { - "updateTime": "2020-03-25T16:37:15.579976Z", + "updateTime": "2020-04-08T22:19:29.769274Z", "sources": [ + { + "git": { + "name": ".", + "remote": "https://github.com/googleapis/java-bigquery.git", + "sha": "9ec561d13f66a3215f313b1848b144f4feec767b" + } + }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "e36822bfa0acb355502dab391b8ef9c4f30208d8", - "log": "e36822bfa0acb355502dab391b8ef9c4f30208d8\nchore(java): treat samples shared configuration dependency update as chore (#457)\n\n\n1b4cc80a7aaf164f6241937dd87f3bd1f4149e0c\nfix: do not run node 8 CI (#456)\n\n\n" + "sha": "c7e0e517d7f46f77bebd27da2e5afcaa6eee7e25", + "log": "c7e0e517d7f46f77bebd27da2e5afcaa6eee7e25\nbuild(java): fix nightly integration test config to run integrations (#465)\n\nThis was only running the units.\nbd69a2aa7b70875f3c988e269706b22fefbef40e\nbuild(java): fix retry_with_backoff when -e option set (#475)\n\n\nd9b173c427bfa0c6cca818233562e7e8841a357c\nfix: record version of working repo in synth.metadata (#473)\n\nPartial revert of b37cf74d12e9a42b9de9e61a4f26133d7cd9c168.\nf73a541770d95a609e5be6bf6b3b220d17cefcbe\nfeat(discogapic): allow local discovery-artifact-manager (#474)\n\n\n8cf0f5d93a70c3dcb0b4999d3152c46d4d9264bf\ndoc: describe the Autosynth & Synthtool protocol (#472)\n\n* doc: describe the Autosynth & Synthtool protocol\n\n* Accommodate review comments.\n980baaa738a1ad8fa02b4fdbd56be075ee77ece5\nfix: pin sphinx to <3.0.0 as new version causes new error (#471)\n\nThe error `toctree contains reference to document changlelog that doesn't have a title: no link will be generated` occurs as of 3.0.0. Pinning to 2.x until we address the docs build issue.\n\nTowards #470\n\nI did this manually for python-datastore https://github.com/googleapis/python-datastore/pull/22\n928b2998ac5023e7c7e254ab935f9ef022455aad\nchore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.15 (#466)\n\nCo-authored-by: Jeffrey Rennie \n188f1b1d53181f739b98f8aa5d40cfe99eb90c47\nfix: allow local and external deps to be specified (#469)\n\nModify noxfile.py to allow local and external dependencies for\nsystem tests to be specified.\n1df68ed6735ddce6797d0f83641a731c3c3f75b4\nfix: apache license URL (#468)\n\n\nf4a59efa54808c4b958263de87bc666ce41e415f\nfeat: Add discogapic support for GAPICBazel generation (#459)\n\n* feat: Add discogapic support for GAPICBazel generation\n\n* reformat with black\n\n* Rename source repository variable\n\nCo-authored-by: Jeffrey Rennie \n99820243d348191bc9c634f2b48ddf65096285ed\nfix: update template files for Node.js libraries (#463)\n\n\n3cbe6bcd5623139ac9834c43818424ddca5430cb\nfix(ruby): remove dead troubleshooting link from generated auth guide (#462)\n\n\na003d8655d3ebec2bbbd5fc3898e91e152265c67\ndocs: remove \"install stable\" instructions (#461)\n\nThe package hasn't been released to PyPI in some time\nf5e8c88d9870d8aa4eb43fa0b39f07e02bfbe4df\nchore(python): add license headers to config files; make small tweaks to templates (#458)\n\n\n" } } ] From 17c6f371a951cd390e52bfdaf68c57ca762ca12c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 14 Apr 2020 18:30:21 +0200 Subject: [PATCH 0435/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v5 (#269) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ff777c784269..075a74ce9dc3 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 4.4.1 + 5.0.0 pom import From 8c61a99253ec2a76570e2b8b40222a59f7ec66cd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 14 Apr 2020 19:54:11 +0200 Subject: [PATCH 0436/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v5.1.0 (#270) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `5.0.0` -> `5.1.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 075a74ce9dc3..d04ba40785f2 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 5.0.0 + 5.1.0 pom import From a115c6b5ed2c391f4837936f28467b67f323900a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 14 Apr 2020 20:38:26 +0200 Subject: [PATCH 0437/3441] deps: update dependency com.google.guava:guava-bom to v29 (#267) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.guava:guava-bom](https://togithub.com/google/guava) | major | `28.2-android` -> `29.0-android` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eae726be1c53..9afe5b15750a 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ 1.28.1 3.11.4 4.13 - 28.2-android + 29.0-android 1.4.3 1.3.2 1.18 From 740cd8f21e58704bd20d3af49571daad6bca9eff Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 15 Apr 2020 08:52:16 -0700 Subject: [PATCH 0438/3441] ci: changes triggered by synthtool (#274) * ci: add dependency list completeness check (#490) Source-Author: Stephanie Wang Source-Date: Mon Apr 13 18:30:27 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: 3df869dd6eb546ef13beeb7a9efa6ee0226afafd Source-Link: https://github.com/googleapis/synthtool/commit/3df869dd6eb546ef13beeb7a9efa6ee0226afafd * build(java): set GOOGLE_CLOUD_PROJECT env for samples/integration tests (#484) * build(java): set GOOGLE_CLOUD_PROJECT env variable for samples/integration tests * ci: use java-docs-samples-testing for sample tests Source-Author: Jeff Ching Source-Date: Mon Apr 13 16:24:21 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 52638600f387deb98efb5f9c85fec39e82aa9052 Source-Link: https://github.com/googleapis/synthtool/commit/52638600f387deb98efb5f9c85fec39e82aa9052 * chore: resolve merge conflicts --- .kokoro/common.sh | 5 ++++ .kokoro/dependencies.sh | 48 +++++++++++++++++++++++++++++++ .kokoro/nightly/integration.cfg | 11 +++++-- .kokoro/nightly/samples.cfg | 8 +++++- .kokoro/presubmit/integration.cfg | 14 ++++++--- .kokoro/presubmit/samples.cfg | 14 ++++++--- pom.xml | 2 +- samples/snippets/pom.xml | 2 +- synth.metadata | 5 ++-- 9 files changed, 92 insertions(+), 17 deletions(-) diff --git a/.kokoro/common.sh b/.kokoro/common.sh index 8f09de5d3d10..a8d0ea04d37d 100644 --- a/.kokoro/common.sh +++ b/.kokoro/common.sh @@ -52,3 +52,8 @@ function retry_with_backoff { return $exit_code } + +## Helper functionss +function now() { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n'; } +function msg() { println "$*" >&2; } +function println() { printf '%s\n' "$(now) $*"; } \ No newline at end of file diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index 0aade871ce10..cf3bb4347e01 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -36,3 +36,51 @@ retry_with_backoff 3 10 \ -Dclirr.skip=true mvn -B dependency:analyze -DfailOnWarning=true + +echo "****************** DEPENDENCY LIST COMPLETENESS CHECK *******************" +## Run dependency list completeness check +function completenessCheck() { + # Output dep list with compile scope generated using the original pom + msg "Generating dependency list using original pom..." + mvn dependency:list -f pom.xml -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' | grep -v ':test$' >.org-list.txt + + # Output dep list generated using the flattened pom (test scope deps are ommitted) + msg "Generating dependency list using flattened pom..." + mvn dependency:list -f .flattened-pom.xml -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' >.new-list.txt + + # Compare two dependency lists + msg "Comparing dependency lists..." + diff .org-list.txt .new-list.txt >.diff.txt + if [[ $? == 0 ]] + then + msg "Success. No diff!" + else + msg "Diff found. See below: " + msg "You can also check .diff.txt file located in $1." + cat .diff.txt + return 1 + fi +} + +# Allow failures to continue running the script +set +e + +error_count=0 +for path in $(find -name ".flattened-pom.xml") +do + # Check flattened pom in each dir that contains it for completeness + dir=$(dirname "$path") + pushd "$dir" + completenessCheck "$dir" + error_count=$(($error_count + $?)) + popd +done + +if [[ $error_count == 0 ]] +then + msg "All checks passed." + exit 0 +else + msg "Errors found. See log statements above." + exit 1 +fi diff --git a/.kokoro/nightly/integration.cfg b/.kokoro/nightly/integration.cfg index ca027480092f..40c4abb7bf08 100644 --- a/.kokoro/nightly/integration.cfg +++ b/.kokoro/nightly/integration.cfg @@ -10,20 +10,25 @@ env_vars: { key: "JOB_TYPE" value: "integration" } - +# TODO: remove this after we've migrated all tests and scripts env_vars: { key: "GCLOUD_PROJECT" value: "gcloud-devel" } +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + env_vars: { key: "ENABLE_BUILD_COP" value: "true" } env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "keystore/73713_java_it_service_account" + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "keystore/73713_java_it_service_account" } before_action { diff --git a/.kokoro/nightly/samples.cfg b/.kokoro/nightly/samples.cfg index b4b051cd016f..20aabd55de11 100644 --- a/.kokoro/nightly/samples.cfg +++ b/.kokoro/nightly/samples.cfg @@ -11,9 +11,15 @@ env_vars: { value: "samples" } +# TODO: remove this after we've migrated all tests and scripts env_vars: { key: "GCLOUD_PROJECT" - value: "gcloud-devel" + value: "java-docs-samples-testing" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "java-docs-samples-testing" } env_vars: { diff --git a/.kokoro/presubmit/integration.cfg b/.kokoro/presubmit/integration.cfg index 141f90c13c56..522e5b10101c 100644 --- a/.kokoro/presubmit/integration.cfg +++ b/.kokoro/presubmit/integration.cfg @@ -11,14 +11,20 @@ env_vars: { value: "integration" } +# TODO: remove this after we've migrated all tests and scripts env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" + key: "GCLOUD_PROJECT" + value: "gcloud-devel" } env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "keystore/73713_java_it_service_account" + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "keystore/73713_java_it_service_account" } before_action { diff --git a/.kokoro/presubmit/samples.cfg b/.kokoro/presubmit/samples.cfg index fa7b493d0b5c..1171aead01f0 100644 --- a/.kokoro/presubmit/samples.cfg +++ b/.kokoro/presubmit/samples.cfg @@ -11,14 +11,20 @@ env_vars: { value: "samples" } +# TODO: remove this after we've migrated all tests and scripts env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" + key: "GCLOUD_PROJECT" + value: "java-docs-samples-testing" } env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "keystore/73713_java_it_service_account" + key: "GOOGLE_CLOUD_PROJECT" + value: "java-docs-samples-testing" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "keystore/73713_java_it_service_account" } before_action { diff --git a/pom.xml b/pom.xml index 9afe5b15750a..eae726be1c53 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ 1.28.1 3.11.4 4.13 - 29.0-android + 28.2-android 1.4.3 1.3.2 1.18 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d04ba40785f2..ff777c784269 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 5.1.0 + 4.4.1 pom import diff --git a/synth.metadata b/synth.metadata index ce2af2c4e123..4a018664a5da 100644 --- a/synth.metadata +++ b/synth.metadata @@ -1,5 +1,4 @@ { - "updateTime": "2020-04-08T22:19:29.769274Z", "sources": [ { "git": { @@ -12,8 +11,8 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "c7e0e517d7f46f77bebd27da2e5afcaa6eee7e25", - "log": "c7e0e517d7f46f77bebd27da2e5afcaa6eee7e25\nbuild(java): fix nightly integration test config to run integrations (#465)\n\nThis was only running the units.\nbd69a2aa7b70875f3c988e269706b22fefbef40e\nbuild(java): fix retry_with_backoff when -e option set (#475)\n\n\nd9b173c427bfa0c6cca818233562e7e8841a357c\nfix: record version of working repo in synth.metadata (#473)\n\nPartial revert of b37cf74d12e9a42b9de9e61a4f26133d7cd9c168.\nf73a541770d95a609e5be6bf6b3b220d17cefcbe\nfeat(discogapic): allow local discovery-artifact-manager (#474)\n\n\n8cf0f5d93a70c3dcb0b4999d3152c46d4d9264bf\ndoc: describe the Autosynth & Synthtool protocol (#472)\n\n* doc: describe the Autosynth & Synthtool protocol\n\n* Accommodate review comments.\n980baaa738a1ad8fa02b4fdbd56be075ee77ece5\nfix: pin sphinx to <3.0.0 as new version causes new error (#471)\n\nThe error `toctree contains reference to document changlelog that doesn't have a title: no link will be generated` occurs as of 3.0.0. Pinning to 2.x until we address the docs build issue.\n\nTowards #470\n\nI did this manually for python-datastore https://github.com/googleapis/python-datastore/pull/22\n928b2998ac5023e7c7e254ab935f9ef022455aad\nchore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.15 (#466)\n\nCo-authored-by: Jeffrey Rennie \n188f1b1d53181f739b98f8aa5d40cfe99eb90c47\nfix: allow local and external deps to be specified (#469)\n\nModify noxfile.py to allow local and external dependencies for\nsystem tests to be specified.\n1df68ed6735ddce6797d0f83641a731c3c3f75b4\nfix: apache license URL (#468)\n\n\nf4a59efa54808c4b958263de87bc666ce41e415f\nfeat: Add discogapic support for GAPICBazel generation (#459)\n\n* feat: Add discogapic support for GAPICBazel generation\n\n* reformat with black\n\n* Rename source repository variable\n\nCo-authored-by: Jeffrey Rennie \n99820243d348191bc9c634f2b48ddf65096285ed\nfix: update template files for Node.js libraries (#463)\n\n\n3cbe6bcd5623139ac9834c43818424ddca5430cb\nfix(ruby): remove dead troubleshooting link from generated auth guide (#462)\n\n\na003d8655d3ebec2bbbd5fc3898e91e152265c67\ndocs: remove \"install stable\" instructions (#461)\n\nThe package hasn't been released to PyPI in some time\nf5e8c88d9870d8aa4eb43fa0b39f07e02bfbe4df\nchore(python): add license headers to config files; make small tweaks to templates (#458)\n\n\n" + "sha": "85cbc7f954f4c4c3534f0caafbaed22a8f80f602", + "log": "85cbc7f954f4c4c3534f0caafbaed22a8f80f602\nfix: use https vcs install for python-test-utils (#492)\n\n\n52638600f387deb98efb5f9c85fec39e82aa9052\nbuild(java): set GOOGLE_CLOUD_PROJECT env for samples/integration tests (#484)\n\n* build(java): set GOOGLE_CLOUD_PROJECT env variable for samples/integration tests\n\n* ci: use java-docs-samples-testing for sample tests\n3df869dd6eb546ef13beeb7a9efa6ee0226afafd\nci: add dependency list completeness check (#490)\n\n\n682c0c37d1054966ca662a44259e96cc7aea4413\nbuild(nodejs): update lint ignore rules (#488)\n\n\n97c7ccfdceb927db1cbe6f3bb09616aa02bafd89\ndoc: document context-aware commit flags (#481)\n\nAlso, delete obsolete blurb about cleaning up old, dead files.\n\nCo-authored-by: Jeff Ching \n8eff3790f88b50706a0c4b6a20b385f24e9ac4e7\nfeat: common postprocessing for node libraries (#485)\n\nCo-authored-by: Justin Beckwith \n21c3b57ae54ae9db6a3a6b48b31c970c6ab56f19\nbuild(nodejs): remove unused codecov config (#486)\n\n\n6f32150677c9784f3c3a7e1949472bd29c9d72c5\nfix: installs test_utils from its common repo (#480)\n\n\n74ce986d3b5431eb66985e9a00c4eb45295a4020\nfix: stop recording update_time in synth.metadata (#478)\n\n\n7f8e62aa3edd225f76347a16f92e400661fdfb52\nchore(java): release-please only updates non maven versions in README (#476)\n\nPrevent release-please and synthtool from fighting over the released library version. Synthtool updates the install snippets from the samples pom.xml files so the bots fight if they are temporarily out of sync after a release.\nc7e0e517d7f46f77bebd27da2e5afcaa6eee7e25\nbuild(java): fix nightly integration test config to run integrations (#465)\n\nThis was only running the units.\nbd69a2aa7b70875f3c988e269706b22fefbef40e\nbuild(java): fix retry_with_backoff when -e option set (#475)\n\n\nd9b173c427bfa0c6cca818233562e7e8841a357c\nfix: record version of working repo in synth.metadata (#473)\n\nPartial revert of b37cf74d12e9a42b9de9e61a4f26133d7cd9c168.\nf73a541770d95a609e5be6bf6b3b220d17cefcbe\nfeat(discogapic): allow local discovery-artifact-manager (#474)\n\n\n8cf0f5d93a70c3dcb0b4999d3152c46d4d9264bf\ndoc: describe the Autosynth & Synthtool protocol (#472)\n\n* doc: describe the Autosynth & Synthtool protocol\n\n* Accommodate review comments.\n980baaa738a1ad8fa02b4fdbd56be075ee77ece5\nfix: pin sphinx to <3.0.0 as new version causes new error (#471)\n\nThe error `toctree contains reference to document changlelog that doesn't have a title: no link will be generated` occurs as of 3.0.0. Pinning to 2.x until we address the docs build issue.\n\nTowards #470\n\nI did this manually for python-datastore https://github.com/googleapis/python-datastore/pull/22\n928b2998ac5023e7c7e254ab935f9ef022455aad\nchore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.15 (#466)\n\nCo-authored-by: Jeffrey Rennie \n188f1b1d53181f739b98f8aa5d40cfe99eb90c47\nfix: allow local and external deps to be specified (#469)\n\nModify noxfile.py to allow local and external dependencies for\nsystem tests to be specified.\n1df68ed6735ddce6797d0f83641a731c3c3f75b4\nfix: apache license URL (#468)\n\n\nf4a59efa54808c4b958263de87bc666ce41e415f\nfeat: Add discogapic support for GAPICBazel generation (#459)\n\n* feat: Add discogapic support for GAPICBazel generation\n\n* reformat with black\n\n* Rename source repository variable\n\nCo-authored-by: Jeffrey Rennie \n99820243d348191bc9c634f2b48ddf65096285ed\nfix: update template files for Node.js libraries (#463)\n\n\n3cbe6bcd5623139ac9834c43818424ddca5430cb\nfix(ruby): remove dead troubleshooting link from generated auth guide (#462)\n\n\na003d8655d3ebec2bbbd5fc3898e91e152265c67\ndocs: remove \"install stable\" instructions (#461)\n\nThe package hasn't been released to PyPI in some time\nf5e8c88d9870d8aa4eb43fa0b39f07e02bfbe4df\nchore(python): add license headers to config files; make small tweaks to templates (#458)\n\n\n" } } ] From 6ef0502ebb9ba56c896e028ca884efadbdce3303 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 15 Apr 2020 17:52:36 +0200 Subject: [PATCH 0439/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.107.0 (#273) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eae726be1c53..91d103c1faa3 100644 --- a/pom.xml +++ b/pom.xml @@ -200,7 +200,7 @@ com.google.cloud google-cloud-storage - 1.106.0 + 1.107.0 test From f7e89abe440b27bf05adea7ec0a89d8eec6ceac5 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 15 Apr 2020 17:29:55 -0400 Subject: [PATCH 0440/3441] feat: add flatten plugin (#276) * feat: add flatten plugin * fix version replace tag --- google-cloud-bigquery/pom.xml | 4 ++++ pom.xml | 2 +- samples/snapshot/pom.xml | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f8624c509270..3b50060ce364 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -140,6 +140,10 @@ + + org.codehaus.mojo + flatten-maven-plugin + diff --git a/pom.xml b/pom.xml index 91d103c1faa3..ca00cf03b8d1 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ 1.28.1 3.11.4 4.13 - 28.2-android + 29.0-android 1.4.3 1.3.2 1.18 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2c72316ea027..386ade29fe7f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -39,8 +39,8 @@ UTF-8
    - + com.google.cloud google-cloud-bigquery @@ -97,4 +97,4 @@ - \ No newline at end of file + From 4478a230a130cab45735e198a204fc9163b5a00e Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 16 Apr 2020 22:20:11 +0530 Subject: [PATCH 0441/3441] fix: fieldvalue gettimestamp (#279) Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [X] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [X] Ensure the tests and linter pass - [X] Code coverage does not decrease (if any source code was changed) - [X] Appropriate docs were updated (if necessary) Fixes #16 --- .../main/java/com/google/cloud/bigquery/FieldValue.java | 4 +++- .../java/com/google/cloud/bigquery/FieldValueTest.java | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java index 44235b7042f0..a2ce187678e3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java @@ -182,7 +182,9 @@ public boolean getBooleanValue() { public long getTimestampValue() { // timestamps are encoded in the format 1408452095.22 where the integer part is seconds since // epoch (e.g. 1408452095.22 == 2014-08-19 07:41:35.220 -05:00) - return new Double(Double.valueOf(getStringValue()) * MICROSECONDS).longValue(); + BigDecimal secondsWithMicro = new BigDecimal(getStringValue()); + BigDecimal scaled = secondsWithMicro.scaleByPowerOfTen(6); + return scaled.longValue(); } /** diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java index ecaac0cb985e..e4ec47b4723a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java @@ -89,6 +89,14 @@ public void testFromPb() { assertEquals(FieldValue.fromPb(TIMESTAMP_FIELD), value.getRepeatedValue().get(1)); } + @Test + public void testTimestamp() { + FieldValue fieldValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "-1.9954383398377106E10"); + long received = fieldValue.getTimestampValue(); + long expected = -19954383398377106L; + assertEquals(expected, received); + } + @Test public void testEquals() { FieldValue booleanValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "false"); From 3f42d37554d6280bea136810ff2ef75b08de41de Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 16 Apr 2020 19:10:05 +0200 Subject: [PATCH 0442/3441] chore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.16 (#278) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud.samples:shared-configuration](https://togithub.com/GoogleCloudPlatform/java-repo-tools) | patch | `1.0.15` -> `1.0.16` | --- ### Release Notes
    GoogleCloudPlatform/java-repo-tools ### [`v1.0.16`](https://togithub.com/GoogleCloudPlatform/java-repo-tools/releases/v1.0.16) [Compare Source](https://togithub.com/GoogleCloudPlatform/java-repo-tools/compare/v1.0.15...v1.0.16) Add a few SpotBugs exclusions: - `RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE` - existing - codegen bug - `UPM_UNCALLED_PRIVATE_METHOD` - probably SpotBug issue - `NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE` - likely SpotBug issue - `CLI_CONSTANT_LIST_INDEX` - style issue particular to our samples - `OBL_UNSATISFIED_OBLIGATION` - issue for SQL clients
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 44d878ea63d6..57a4309d6bc1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.15 + 1.0.16 diff --git a/samples/pom.xml b/samples/pom.xml index 9635b9bd756a..6cdab9e67ae7 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -34,7 +34,7 @@ com.google.cloud.samples shared-configuration - 1.0.15 + 1.0.16 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 386ade29fe7f..886b7d7604ff 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.15 + 1.0.16 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ff777c784269..ac7742b32e3f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.15 + 1.0.16 From 3692a3b8510eaa42eb98166b92076fe20b90dbc4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 16 Apr 2020 15:18:30 -0400 Subject: [PATCH 0443/3441] chore: release 1.111.0 (#277) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 18 ++++++++++++++++++ README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 4 ++-- versions.txt | 2 +- 6 files changed, 28 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7cf57b9fcf71..d233cbaaee4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [1.111.0](https://www.github.com/googleapis/java-bigquery/compare/v1.110.1...v1.111.0) (2020-04-16) + + +### Features + +* add flatten plugin ([#276](https://www.github.com/googleapis/java-bigquery/issues/276)) ([f7e89ab](https://www.github.com/googleapis/java-bigquery/commit/f7e89abe440b27bf05adea7ec0a89d8eec6ceac5)) + + +### Bug Fixes + +* fieldvalue gettimestamp ([#279](https://www.github.com/googleapis/java-bigquery/issues/279)) ([4478a23](https://www.github.com/googleapis/java-bigquery/commit/4478a230a130cab45735e198a204fc9163b5a00e)), closes [#16](https://www.github.com/googleapis/java-bigquery/issues/16) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v1.107.0 ([#273](https://www.github.com/googleapis/java-bigquery/issues/273)) ([6ef0502](https://www.github.com/googleapis/java-bigquery/commit/6ef0502ebb9ba56c896e028ca884efadbdce3303)) +* update dependency com.google.guava:guava-bom to v29 ([#267](https://www.github.com/googleapis/java-bigquery/issues/267)) ([a115c6b](https://www.github.com/googleapis/java-bigquery/commit/a115c6b5ed2c391f4837936f28467b67f323900a)) + ### [1.110.1](https://www.github.com/googleapis/java-bigquery/compare/v1.110.0...v1.110.1) (2020-04-06) diff --git a/README.md b/README.md index 230e27148e8c..4768c32bbf6a 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.110.1 + 1.111.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.110.1' +compile 'com.google.cloud:google-cloud-bigquery:1.111.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.110.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.111.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3b50060ce364..50aa43b7eff4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.110.2-SNAPSHOT + 1.111.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.110.2-SNAPSHOT + 1.111.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ca00cf03b8d1..5ed3afb6a1df 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.110.2-SNAPSHOT + 1.111.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.110.2-SNAPSHOT + 1.111.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 886b7d7604ff..e1aed8bdaf74 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.110.1 + 1.111.0 @@ -57,7 +57,7 @@ com.google.truth truth - 1.0.1 + 1.111.0 test diff --git a/versions.txt b/versions.txt index 34d29ccbe381..b38297a3753a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.110.1:1.110.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.111.0:1.111.0 \ No newline at end of file From 9024990be845d7df9de599281720e5882d9d281e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 16 Apr 2020 23:30:06 +0200 Subject: [PATCH 0444/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.111.0 (#280) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 57a4309d6bc1..9c4a2dfffa77 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.110.1 + 1.111.0 From 20fa234e3197441a63e1e55449e661556afb630b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 16 Apr 2020 23:42:09 +0200 Subject: [PATCH 0445/3441] chore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.17 (#281) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud.samples:shared-configuration](https://togithub.com/GoogleCloudPlatform/java-repo-tools) | patch | `1.0.16` -> `1.0.17` | --- ### Release Notes
    GoogleCloudPlatform/java-repo-tools ### [`v1.0.17`](https://togithub.com/GoogleCloudPlatform/java-repo-tools/releases/v1.0.17) [Compare Source](https://togithub.com/GoogleCloudPlatform/java-repo-tools/compare/v1.0.16...v1.0.17) - require -P lint Lets not burden customers with our development rules. - Move Checkstyle, ErrorProne, PMD, and SpotBugs to only run w/ -P lint - Update the Readme - spotbugs-annotations 4.0.2
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 9c4a2dfffa77..e7f5b58c26a4 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.16 + 1.0.17 diff --git a/samples/pom.xml b/samples/pom.xml index 6cdab9e67ae7..6c4687174368 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -34,7 +34,7 @@ com.google.cloud.samples shared-configuration - 1.0.16 + 1.0.17 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e1aed8bdaf74..ad30237167fb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.16 + 1.0.17 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ac7742b32e3f..761f0c2372d7 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.16 + 1.0.17 From 6e543bc0ee101fd29c3c6fcd157a6b032cdd4015 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2020 22:04:04 +0000 Subject: [PATCH 0446/3441] chore: release 1.111.1-SNAPSHOT (#282) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 4 ++-- versions.txt | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 50aa43b7eff4..fa654776b25c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.111.0 + 1.111.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.111.0 + 1.111.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5ed3afb6a1df..c980798d177d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.111.0 + 1.111.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.111.0 + 1.111.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ad30237167fb..3ae14c0d14ff 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.111.0 + 1.111.1-SNAPSHOT @@ -57,7 +57,7 @@ com.google.truth truth - 1.111.0 + 1.111.1-SNAPSHOT test diff --git a/versions.txt b/versions.txt index b38297a3753a..81a3fadd416b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.111.0:1.111.0 \ No newline at end of file +google-cloud-bigquery:1.111.0:1.111.1-SNAPSHOT \ No newline at end of file From e72a99f225176d18d308bef2c8cc69a18390a3ce Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 22 Apr 2020 17:41:00 +0200 Subject: [PATCH 0447/3441] deps: update dependency io.grpc:grpc-bom to v1.29.0 (#284) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c980798d177d..4524caeffb0e 100644 --- a/pom.xml +++ b/pom.xml @@ -67,7 +67,7 @@ 1.9.0 1.17.0 1.56.0 - 1.28.1 + 1.29.0 3.11.4 4.13 29.0-android From 820b4d582c1516a673fc14a6b49092e271dfed83 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 22 Apr 2020 12:14:31 -0400 Subject: [PATCH 0448/3441] doc: remove deprecated content (#283) * doc: remove deprecated content * deps: bump samples shared-dep and libraries-bom versions --- README.md | 5 ----- samples/snippets/pom.xml | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/README.md b/README.md index 4768c32bbf6a..2c1b1aa4608a 100644 --- a/README.md +++ b/README.md @@ -50,11 +50,6 @@ libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.111.0" ``` [//]: # ({x-version-update-end}) -Example Application -------------------- -- [`BigQueryExample`](https://github.com/googleapis/google-cloud-java/blob/master/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/BigQueryExample.java) - A simple command line interface providing some of Cloud BigQuery's functionality. -Read more about using this application on the [`BigQueryExample` docs page](https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/examples/bigquery/BigQueryExample.html). - Authentication -------------- diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 761f0c2372d7..b30107cc71f9 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 4.4.1 + 5.1.0 pom import From 4b478b0fc21d31472939dceece4ba059a8a0ea16 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 22 Apr 2020 15:49:58 -0400 Subject: [PATCH 0449/3441] deps: fix build errors (#286) * deps: fix build errors * temporarily remove flatten plugin * add flatten back, specify javax version * specify javax version in parent pom --- google-cloud-bigquery/pom.xml | 2 ++ pom.xml | 5 ----- samples/snapshot/pom.xml | 5 +++-- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index fa654776b25c..f3207f720009 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -157,6 +157,8 @@ javax.annotation javax.annotation-api + + ${javax.annotations.version}
    diff --git a/pom.xml b/pom.xml index 4524caeffb0e..f3fbd6eb38d5 100644 --- a/pom.xml +++ b/pom.xml @@ -161,11 +161,6 @@ threetenbp ${threeten.version}
    - - javax.annotation - javax.annotation-api - ${javax.annotations.version} - org.codehaus.mojo animal-sniffer-annotations diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3ae14c0d14ff..af4473c3c1d0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -46,6 +46,7 @@ google-cloud-bigquery 1.111.1-SNAPSHOT + @@ -57,10 +58,10 @@ com.google.truth truth - 1.111.1-SNAPSHOT + 1.0.1 test - + From 6de8dc06f667365985a68bc8a8c3e2994efe5c08 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2020 16:02:07 -0400 Subject: [PATCH 0450/3441] chore: release 1.111.1 (#285) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated samples/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 8 ++++++++ README.md | 6 +++--- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d233cbaaee4b..c59ec78ba538 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.111.1](https://www.github.com/googleapis/java-bigquery/compare/v1.111.0...v1.111.1) (2020-04-22) + + +### Dependencies + +* fix build errors ([#286](https://www.github.com/googleapis/java-bigquery/issues/286)) ([4b478b0](https://www.github.com/googleapis/java-bigquery/commit/4b478b0fc21d31472939dceece4ba059a8a0ea16)) +* update dependency io.grpc:grpc-bom to v1.29.0 ([#284](https://www.github.com/googleapis/java-bigquery/issues/284)) ([e72a99f](https://www.github.com/googleapis/java-bigquery/commit/e72a99f225176d18d308bef2c8cc69a18390a3ce)) + ## [1.111.0](https://www.github.com/googleapis/java-bigquery/compare/v1.110.1...v1.111.0) (2020-04-16) diff --git a/README.md b/README.md index 2c1b1aa4608a..ee3ddbd5fc63 100644 --- a/README.md +++ b/README.md @@ -37,16 +37,16 @@ If you are using Maven without a BOM, add this to your dependencies. com.google.cloud google-cloud-bigquery - 1.111.0 + 1.111.1 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.111.0' +compile 'com.google.cloud:google-cloud-bigquery:1.111.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.111.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.111.1" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f3207f720009..e091a36bae59 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.111.1-SNAPSHOT + 1.111.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.111.1-SNAPSHOT + 1.111.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f3fbd6eb38d5..5737664cac12 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.111.1-SNAPSHOT + 1.111.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.111.1-SNAPSHOT + 1.111.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index af4473c3c1d0..705ca03e5950 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.111.1-SNAPSHOT + 1.111.1 diff --git a/versions.txt b/versions.txt index 81a3fadd416b..5a76a3b547a8 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.111.0:1.111.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.111.1:1.111.1 \ No newline at end of file From f26e9cbe4948a2021c045bdd9a089e97d5a56350 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 23 Apr 2020 00:01:40 +0200 Subject: [PATCH 0451/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.111.1 (#287) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e7f5b58c26a4..7c4826a39d24 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.111.0 + 1.111.1 From 62f59213a17951352c8873503f0c9c54e60bbfa1 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2020 18:10:51 -0400 Subject: [PATCH 0452/3441] chore: release 1.111.2-SNAPSHOT (#288) * updated versions.txt [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e091a36bae59..89a0af68934c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.111.1 + 1.111.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.111.1 + 1.111.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5737664cac12..2c7758e03726 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.111.1 + 1.111.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.111.1 + 1.111.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 705ca03e5950..0fd14b538fa0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.111.1 + 1.111.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 5a76a3b547a8..90e08c27975e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.111.1:1.111.1 \ No newline at end of file +google-cloud-bigquery:1.111.1:1.111.2-SNAPSHOT \ No newline at end of file From 78149a5450052d3bf8b22e09af95f0607e4db5db Mon Sep 17 00:00:00 2001 From: shollyman Date: Thu, 23 Apr 2020 12:21:53 -0700 Subject: [PATCH 0453/3441] feature: add policy tags support (column ACLs) (#289) * feature: add policy tags support (column ACLs) * code formatter --- .../java/com/google/cloud/bigquery/Field.java | 24 ++++++- .../com/google/cloud/bigquery/PolicyTags.java | 65 +++++++++++++++++++ .../com/google/cloud/bigquery/SchemaTest.java | 5 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 28 ++++++++ 4 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyTags.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index 8259cc7e7ed7..1213bc4e8bc0 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -58,6 +58,7 @@ public TableFieldSchema apply(Field field) { private final FieldList subFields; private final String mode; private final String description; + private final PolicyTags policyTags; /** * Mode for a BigQuery Table field. {@link Mode#NULLABLE} fields can be set to {@code null}, @@ -77,6 +78,7 @@ public static final class Builder { private FieldList subFields; private String mode; private String description; + private PolicyTags policyTags; private Builder() {} @@ -86,6 +88,7 @@ private Builder(Field field) { this.subFields = field.subFields; this.mode = field.mode; this.description = field.description; + this.policyTags = field.policyTags; } /** @@ -190,6 +193,12 @@ public Builder setDescription(String description) { return this; } + /** Sets the policy tags for the field. */ + public Builder setPolicyTags(PolicyTags policyTags) { + this.policyTags = policyTags; + return this; + } + /** Creates a {@code Field} object. */ public Field build() { return new Field(this); @@ -202,6 +211,7 @@ private Field(Builder builder) { this.subFields = builder.subFields; this.mode = builder.mode; this.description = builder.description; + this.policyTags = builder.policyTags; } /** Returns the field name. */ @@ -229,6 +239,11 @@ public String getDescription() { return Data.isNull(description) ? null : description; } + /** Returns the policy tags for the field. */ + public PolicyTags getPolicyTags() { + return policyTags; + } + /** * Returns the list of sub-fields if {@link #getType()} is a {@link LegacySQLTypeName#RECORD}. * Returns {@code null} otherwise. @@ -249,12 +264,13 @@ public String toString() { .add("type", type) .add("mode", mode) .add("description", description) + .add("policyTags", policyTags) .toString(); } @Override public int hashCode() { - return Objects.hash(name, type, mode, description); + return Objects.hash(name, type, mode, description, policyTags); } @Override @@ -316,6 +332,9 @@ TableFieldSchema toPb() { if (description != null) { fieldSchemaPb.setDescription(description); } + if (policyTags != null) { + fieldSchemaPb.setPolicyTags(policyTags.toPb()); + } if (getSubFields() != null) { List fieldsPb = Lists.transform(getSubFields(), TO_PB_FUNCTION); fieldSchemaPb.setFields(fieldsPb); @@ -332,6 +351,9 @@ static Field fromPb(TableFieldSchema fieldSchemaPb) { if (fieldSchemaPb.getDescription() != null) { fieldBuilder.setDescription(fieldSchemaPb.getDescription()); } + if (fieldSchemaPb.getPolicyTags() != null) { + fieldBuilder.setPolicyTags(PolicyTags.fromPb(fieldSchemaPb.getPolicyTags())); + } FieldList subFields = fieldSchemaPb.getFields() != null ? FieldList.of(Lists.transform(fieldSchemaPb.getFields(), FROM_PB_FUNCTION)) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyTags.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyTags.java new file mode 100644 index 000000000000..a78fa92fbc3d --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyTags.java @@ -0,0 +1,65 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import com.google.common.collect.ImmutableList; +import java.io.Serializable; +import java.util.List; +import javax.annotation.Nullable; + +@AutoValue +public abstract class PolicyTags implements Serializable { + + private static final long serialVersionUID = 1L; + + @Nullable + abstract ImmutableList getNamesImmut(); + + public List getNames() { + return getNamesImmut(); + } + + public abstract Builder toBuilder(); + + @AutoValue.Builder + public abstract static class Builder { + + abstract Builder setNamesImmut(ImmutableList namesImmut); + + public Builder setNames(List names) { + return setNamesImmut(ImmutableList.copyOf(names)); + } + + public abstract PolicyTags build(); + } + + public static Builder newBuilder() { + return new AutoValue_PolicyTags.Builder(); + } + + com.google.api.services.bigquery.model.TableFieldSchema.PolicyTags toPb() { + com.google.api.services.bigquery.model.TableFieldSchema.PolicyTags tagPb = + new com.google.api.services.bigquery.model.TableFieldSchema.PolicyTags(); + tagPb.setNames(getNames()); + return tagPb; + } + + static PolicyTags fromPb( + com.google.api.services.bigquery.model.TableFieldSchema.PolicyTags tagPb) { + return newBuilder().setNames(tagPb.getNames()).build(); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java index 090bb8a27a03..63c6752d733c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java @@ -25,6 +25,9 @@ public class SchemaTest { + private static PolicyTags POLICY_TAGS = + PolicyTags.newBuilder().setNames(ImmutableList.of("someTag")).build(); + private static final Field FIELD_SCHEMA1 = Field.newBuilder("StringField", LegacySQLTypeName.STRING) .setMode(Field.Mode.NULLABLE) @@ -34,12 +37,14 @@ public class SchemaTest { Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) .setMode(Field.Mode.REPEATED) .setDescription("FieldDescription2") + .setPolicyTags(POLICY_TAGS) .build(); private static final Field FIELD_SCHEMA3 = Field.newBuilder("RecordField", LegacySQLTypeName.RECORD, FIELD_SCHEMA1, FIELD_SCHEMA2) .setMode(Field.Mode.REQUIRED) .setDescription("FieldDescription3") .build(); + private static final List FIELDS = ImmutableList.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); private static final Schema TABLE_SCHEMA = Schema.of(FIELDS); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 03b55dd4a4db..472d8ecf8d82 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -70,6 +70,7 @@ import com.google.cloud.bigquery.Model; import com.google.cloud.bigquery.ModelId; import com.google.cloud.bigquery.ModelInfo; +import com.google.cloud.bigquery.PolicyTags; import com.google.cloud.bigquery.QueryJobConfiguration; import com.google.cloud.bigquery.QueryParameterValue; import com.google.cloud.bigquery.RangePartitioning; @@ -141,6 +142,10 @@ public class ITBigQueryTest { ImmutableMap.of( "example-label1", "example-value1", "example-label2", "example-value2"); + private static final String sampleTag = + String.format("projects/%s/locations/us/taxonomies/1/policyTags/2", PROJECT_ID); + private static final PolicyTags POLICY_TAGS = + PolicyTags.newBuilder().setNames(ImmutableList.of(sampleTag)).build(); private static final Field TIMESTAMP_FIELD_SCHEMA = Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) .setMode(Field.Mode.NULLABLE) @@ -198,6 +203,12 @@ public class ITBigQueryTest { .setMode(Field.Mode.NULLABLE) .setDescription("NumericDescription") .build(); + private static final Field STRING_FIELD_SCHEMA_WITH_POLICY = + Field.newBuilder("StringFieldWithPolicy", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("field has a policy") + .setPolicyTags(POLICY_TAGS) + .build(); private static final Schema TABLE_SCHEMA = Schema.of( TIMESTAMP_FIELD_SCHEMA, @@ -211,6 +222,8 @@ public class ITBigQueryTest { GEOGRAPHY_FIELD_SCHEMA, NUMERIC_FIELD_SCHEMA); private static final Schema SIMPLE_SCHEMA = Schema.of(STRING_FIELD_SCHEMA); + private static final Schema POLICY_SCHEMA = + Schema.of(STRING_FIELD_SCHEMA, STRING_FIELD_SCHEMA_WITH_POLICY, INTEGER_FIELD_SCHEMA); private static final Schema QUERY_RESULT_SCHEMA = Schema.of( Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) @@ -514,6 +527,21 @@ public void testCreateTableWithRangePartitioning() { } } + public void testCreateTableWithPolicyTags() { + String tableName = "test_create_table_policytags"; + TableId tableId = TableId.of(DATASET, tableName); + try { + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder().setSchema(POLICY_SCHEMA).build(); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertEquals(POLICY_SCHEMA, remoteTable.getDefinition().getSchema()); + } finally { + bigquery.delete(tableId); + } + } + @Test public void testCreateAndGetTable() { String tableName = "test_create_and_get_table"; From b45ca43a6af62d1ff41fe2c899d5102c8393db35 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 23 Apr 2020 15:42:08 -0400 Subject: [PATCH 0454/3441] chore: update README to use autosynth (#290) --- .readme-partials.yaml | 104 +++++++++++++++ .repo-metadata.json | 6 +- README.md | 257 ++++++++++++++++++++++--------------- samples/snippets/README.md | 48 ------- synth.metadata | 7 +- synth.py | 1 - 6 files changed, 265 insertions(+), 158 deletions(-) create mode 100644 .readme-partials.yaml delete mode 100644 samples/snippets/README.md diff --git a/.readme-partials.yaml b/.readme-partials.yaml new file mode 100644 index 000000000000..47f096060a14 --- /dev/null +++ b/.readme-partials.yaml @@ -0,0 +1,104 @@ +custom_content: | + #### Creating a dataset + With BigQuery you can create datasets. A dataset is a grouping mechanism that holds zero or more + tables. Add the following import at the top of your file: + + ```java + import com.google.cloud.bigquery.DatasetInfo; + ``` + Then, to create the dataset, use the following code: + + ```java + // Create a dataset + String datasetId = "my_dataset_id"; + bigquery.create(DatasetInfo.newBuilder(datasetId).build()); + ``` + + #### Creating a table + With BigQuery you can create different types of tables: normal tables with an associated schema, + external tables backed by data stored on [Google Cloud Storage](https://cloud.google.com/storage/) and view tables that + are created from a BigQuery SQL query. In this code snippet we show how to create a normal table + with only one string field. Add the following imports at the top of your file: + + ```java + import com.google.cloud.bigquery.Field; + import com.google.cloud.bigquery.Schema; + import com.google.cloud.bigquery.StandardTableDefinition; + import com.google.cloud.bigquery.Table; + import com.google.cloud.bigquery.TableId; + import com.google.cloud.bigquery.TableInfo; + ``` + Then add the following code to create the table: + + ```java + TableId tableId = TableId.of(datasetId, "my_table_id"); + // Table field definition + Field stringField = Field.of("StringField", LegacySQLTypeName.STRING); + // Table schema definition + Schema schema = Schema.of(stringField); + // Create a table + StandardTableDefinition tableDefinition = StandardTableDefinition.of(schema); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + ``` + + #### Loading data into a table + BigQuery provides several ways to load data into a table: streaming rows or loading data from a + Google Cloud Storage file. In this code snippet we show how to stream rows into a table. + Add the following imports at the top of your file: + + ```java + import com.google.cloud.bigquery.InsertAllRequest; + import com.google.cloud.bigquery.InsertAllResponse; + + import java.util.HashMap; + import java.util.Map; + ``` + Then add the following code to insert data: + + ```java + Map firstRow = new HashMap<>(); + Map secondRow = new HashMap<>(); + firstRow.put("StringField", "value1"); + secondRow.put("StringField", "value2"); + // Create an insert request + InsertAllRequest insertRequest = InsertAllRequest.newBuilder(tableId) + .addRow(firstRow) + .addRow(secondRow) + .build(); + // Insert rows + InsertAllResponse insertResponse = bigquery.insertAll(insertRequest); + // Check if errors occurred + if (insertResponse.hasErrors()) { + System.out.println("Errors occurred while inserting rows"); + } + ``` + + #### Querying data + BigQuery enables querying data by running queries and waiting for the result. Queries can be run + directly or through a Query Job. In this code snippet we show how to run a query directly and wait + for the result. Add the following imports at the top of your file: + + ```java + import com.google.cloud.bigquery.FieldValueList; + import com.google.cloud.bigquery.QueryJobConfiguration; + ``` + Then add the following code to run the query and wait for the result: + + ```java + // Create a query request + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder("SELECT my_column FROM my_dataset_id.my_table_id").build(); + // Read rows + System.out.println("Table rows:"); + for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) { + System.out.println(row); + } + ``` + #### Complete source code + + In + [InsertDataAndQueryTable.java](https://github.com/googleapis/google-cloud-java/blob/master/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/InsertDataAndQueryTable.java) + we put together all the code shown above into one program. The program assumes that you are + running on Compute Engine or from your own desktop. To run the example on App Engine, simply move + the code from the main method to your application's servlet class and change the print statements to + display on your webpage. \ No newline at end of file diff --git a/.repo-metadata.json b/.repo-metadata.json index 3db81c9ae2c5..2db55ce3d05a 100644 --- a/.repo-metadata.json +++ b/.repo-metadata.json @@ -1,13 +1,15 @@ { "name": "bigquery", - "name_pretty": "BigQuery", + "name_pretty": "Cloud BigQuery", "product_documentation": "https://cloud.google.com/bigquery", "client_documentation": "https://googleapis.dev/java/google-cloud-bigquery/latest", + "api_description": "is a fully managed, NoOps, low cost data analytics service.\nData can be streamed into BigQuery at millions of rows per second to enable real-time analysis.\nWith BigQuery you can easily deploy Petabyte-scale Databases.", "issue_tracker": "https://issuetracker.google.com/savedsearches/559654", "release_level": "ga", "language": "java", "repo": "googleapis/java-bigquery", "repo_short": "java-bigquery", "distribution_name": "com.google.cloud:google-cloud-bigquery", - "api_id": "bigquery.googleapis.com" + "api_id": "bigquery.googleapis.com", + "requires_billing": true } diff --git a/README.md b/README.md index ee3ddbd5fc63..06e800ecf8b7 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,52 @@ -Google Cloud Java Client for BigQuery -==================================== +# Google Cloud BigQuery Client for Java -Java idiomatic client for [Google Cloud BigQuery][cloud-bigquery]. +Java idiomatic client for [Cloud BigQuery][product-docs]. -[![Kokoro CI](http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/master.svg)](http://storage.googleapis.com/cloud-devrel-public/java/badges/google-cloud-java/master.html) -[![Maven](https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg)]( https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg) -[![Codacy Badge](https://api.codacy.com/project/badge/grade/9da006ad7c3a4fe1abd142e77c003917)](https://www.codacy.com/app/mziccard/google-cloud-java) +[![Maven][maven-version-image]][maven-version-link] +![Stability][stability-image] -- [Product Documentation][bigquery-product-docs] -- [Client Library Documentation][bigquery-client-lib-docs] +- [Product Documentation][product-docs] +- [Client Library Documentation][javadocs] -Quickstart ----------- -If you are using Maven with a BOM, add this to your pom.xml file. +## Quickstart + +If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file ```xml + - - - com.google.cloud - libraries-bom - 3.3.0 - pom - import - - - - + + + com.google.cloud + libraries-bom + 5.1.0 + pom + import + + + + + - com.google.cloud - google-cloud-bigquery + com.google.cloud + google-cloud-bigquery + ``` -[//]: # ({x-version-update-start:google-cloud-bigquery:released}) -If you are using Maven without a BOM, add this to your dependencies. + +If you are using Maven without BOM, add this to your dependencies: + ```xml com.google.cloud google-cloud-bigquery 1.111.1 + ``` + +[//]: # ({x-version-update-start:google-cloud-bigquery:released}) + If you are using Gradle, add this to your dependencies ```Groovy compile 'com.google.cloud:google-cloud-bigquery:1.111.1' @@ -50,57 +57,35 @@ libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.111.1" ``` [//]: # ({x-version-update-end}) -Authentication --------------- +## Authentication -See the [Authentication](https://github.com/googleapis/google-cloud-java#authentication) section in the base directory's README. +See the [Authentication][authentication] section in the base directory's README. -About Google Cloud BigQuery --------------------------- +## Getting Started -[Google Cloud BigQuery][cloud-bigquery] is a fully managed, NoOps, low cost data analytics service. -Data can be streamed into BigQuery at millions of rows per second to enable real-time analysis. -With BigQuery you can easily deploy Petabyte-scale Databases. +### Prerequisites -Be sure to activate the Google Cloud BigQuery API on the Developer's Console to use BigQuery from -your project. - -See the [BigQuery client library docs][bigquery-client-lib-docs] to learn how to interact -with Google Cloud BigQuery using this Client Library. - -Getting Started ---------------- -#### Prerequisites -For this tutorial, you will need a -[Google Developers Console](https://console.developers.google.com/) project with the BigQuery API -enabled. You will need to [enable billing](https://support.google.com/cloud/answer/6158867?hl=en) to -use Google Cloud BigQuery. -[Follow these instructions](https://cloud.google.com/resource-manager/docs/creating-managing-projects) to get your -project set up. You will also need to set up the local development environment by [installing the -Google Cloud SDK](https://cloud.google.com/sdk/) and running the following commands in command line: +You will need a [Google Cloud Platform Console][developer-console] project with the Cloud BigQuery [API enabled][enable-api]. +You will need to [enable billing][enable-billing] to use Google Cloud BigQuery. +[Follow these instructions][create-project] to get your project set up. You will also need to set up the local development environment by +[installing the Google Cloud SDK][cloud-sdk] and running the following commands in command line: `gcloud auth login` and `gcloud config set project [YOUR PROJECT ID]`. -#### Installation and setup +### Installation and setup + You'll need to obtain the `google-cloud-bigquery` library. See the [Quickstart](#quickstart) section to add `google-cloud-bigquery` as a dependency in your code. -#### Creating an authorized service object -To make authenticated requests to Google Cloud BigQuery, you must create a service object with -credentials. You can then make API calls by calling methods on the BigQuery service object. The -simplest way to authenticate is to use -[Application Default Credentials](https://developers.google.com/identity/protocols/application-default-credentials). -These credentials are automatically inferred from your environment, so you only need the following -code to create your service object: +## About Cloud BigQuery -```java -import com.google.cloud.bigquery.BigQuery; -import com.google.cloud.bigquery.BigQueryOptions; -BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); -``` +[Cloud BigQuery][product-docs] is a fully managed, NoOps, low cost data analytics service. +Data can be streamed into BigQuery at millions of rows per second to enable real-time analysis. +With BigQuery you can easily deploy Petabyte-scale Databases. + +See the [Cloud BigQuery client library docs][javadocs] to learn how to +use this Cloud BigQuery Client Library. -For other authentication options, see the -[Authentication](https://github.com/googleapis/google-cloud-java#authentication) page. #### Creating a dataset With BigQuery you can create datasets. A dataset is a grouping mechanism that holds zero or more @@ -119,7 +104,7 @@ bigquery.create(DatasetInfo.newBuilder(datasetId).build()); #### Creating a table With BigQuery you can create different types of tables: normal tables with an associated schema, -external tables backed by data stored on [Google Cloud Storage][cloud-storage] and view tables that +external tables backed by data stored on [Google Cloud Storage](https://cloud.google.com/storage/) and view tables that are created from a BigQuery SQL query. In this code snippet we show how to create a normal table with only one string field. Add the following imports at the top of your file: @@ -206,53 +191,119 @@ running on Compute Engine or from your own desktop. To run the example on App En the code from the main method to your application's servlet class and change the print statements to display on your webpage. -Troubleshooting ---------------- -To get help, follow the instructions in the [shared Troubleshooting document](https://github.com/googleapis/google-cloud-common/blob/master/troubleshooting/readme.md#troubleshooting). -Transport ---------- -BigQuery uses HTTP for the transport layer. - -Java Versions -------------- +## Samples + +Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree/master/samples) directory. The samples' `README.md` +has instructions for running the samples. + +| Sample | Source Code | Try it | +| --------------------------- | --------------------------------- | ------ | +| Add Column Load Append | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | +| Add Empty Column | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | +| Auth Drive Scope | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | +| Auth Snippets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | +| Copy Multiple Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | +| Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | +| Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | +| Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | +| Create Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | +| Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | +| Delete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | +| Extract Table To Json | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | +| Get Dataset Info | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | +| Get Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | +| Get Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | +| List Datasets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | +| List Models | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | +| List Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | +| Load Local File | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | +| Load Parquet | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | +| Load Parquet Replace Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | +| Load Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java) | +| Load Table Clustered | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java) | +| Nested Repeated Schema | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java) | +| Query Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | +| Query With Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | +| Query With Positional Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | +| Query With Structs Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | +| Quickstart Sample | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java) | +| Relax Column Mode | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | +| Relax Table Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | +| Run Legacy Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | +| Simple App | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | +| Table Insert Rows | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | +| Update Dataset Access | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | +| Update Dataset Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | +| Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | +| Update Table Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | + + + +## Troubleshooting + +To get help, follow the instructions in the [shared Troubleshooting document][troubleshooting]. + +## Java Versions Java 7 or above is required for using this client. -Testing -------- - -This library has tools to help make tests for code using Cloud BigQuery. - -See [TESTING] to read more about testing. +## Versioning -Versioning ----------- This library follows [Semantic Versioning](http://semver.org/). -It is currently in major version one (``1.y.z``), which means that the public API should be considered stable. -Contributing ------------- +## Contributing -Contributions to this library are always welcome and highly encouraged. - -See [CONTRIBUTING] for more information on how to get started. - -License -------- -Apache 2.0 - See [LICENSE] for more information. - - -[CONTRIBUTING]:https://github.com/googleapis/google-cloud-java/blob/master/CONTRIBUTING.md -[LICENSE]: https://github.com/googleapis/google-cloud-java/blob/master/LICENSE -[TESTING]: https://github.com/googleapis/google-cloud-java/blob/master/TESTING.md#testing-code-that-uses-bigquery -[cloud-platform]: https://cloud.google.com/ +Contributions to this library are always welcome and highly encouraged. -[cloud-bigquery]: https://cloud.google.com/bigquery/ -[cloud-storage]: https://cloud.google.com/storage/ -[bigquery-product-docs]: https://cloud.google.com/bigquery/docs/ -[bigquery-client-lib-docs]: https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html +See [CONTRIBUTING][contributing] for more information how to get started. + +Please note that this project is released with a Contributor Code of Conduct. By participating in +this project you agree to abide by its terms. See [Code of Conduct][code-of-conduct] for more +information. + +## License + +Apache 2.0 - See [LICENSE][license] for more information. + +## CI Status + +Java Version | Status +------------ | ------ +Java 7 | [![Kokoro CI][kokoro-badge-image-1]][kokoro-badge-link-1] +Java 8 | [![Kokoro CI][kokoro-badge-image-2]][kokoro-badge-link-2] +Java 8 OSX | [![Kokoro CI][kokoro-badge-image-3]][kokoro-badge-link-3] +Java 8 Windows | [![Kokoro CI][kokoro-badge-image-4]][kokoro-badge-link-4] +Java 11 | [![Kokoro CI][kokoro-badge-image-5]][kokoro-badge-link-5] + +[product-docs]: https://cloud.google.com/bigquery +[javadocs]: https://googleapis.dev/java/google-cloud-bigquery/latest +[kokoro-badge-image-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java7.svg +[kokoro-badge-link-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java7.html +[kokoro-badge-image-2]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8.svg +[kokoro-badge-link-2]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8.html +[kokoro-badge-image-3]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8-osx.svg +[kokoro-badge-link-3]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8-osx.html +[kokoro-badge-image-4]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8-win.svg +[kokoro-badge-link-4]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8-win.html +[kokoro-badge-image-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.svg +[kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html +[stability-image]: https://img.shields.io/badge/stability-ga-green +[maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg +[maven-version-link]: https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigquery&core=gav +[authentication]: https://github.com/googleapis/google-cloud-java#authentication +[developer-console]: https://console.developers.google.com/ +[create-project]: https://cloud.google.com/resource-manager/docs/creating-managing-projects +[cloud-sdk]: https://cloud.google.com/sdk/ +[troubleshooting]: https://github.com/googleapis/google-cloud-common/blob/master/troubleshooting/readme.md#troubleshooting +[contributing]: https://github.com/googleapis/java-bigquery/blob/master/CONTRIBUTING.md +[code-of-conduct]: https://github.com/googleapis/java-bigquery/blob/master/CODE_OF_CONDUCT.md#contributor-code-of-conduct +[license]: https://github.com/googleapis/java-bigquery/blob/master/LICENSE +[enable-billing]: https://cloud.google.com/apis/docs/getting-started#enabling_billing +[enable-api]: https://console.cloud.google.com/flows/enableapi?apiid=bigquery.googleapis.com +[libraries-bom]: https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google-Cloud-Platform-Libraries-BOM +[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png diff --git a/samples/snippets/README.md b/samples/snippets/README.md deleted file mode 100644 index b1988a7f834c..000000000000 --- a/samples/snippets/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Getting Started with BigQuery and the Google Java API Client library - - -Open in Cloud Shell - -[Google's BigQuery Service][BigQuery] features a REST-based API that allows -developers to create applications to run ad-hoc queries on massive datasets. -These sample Java applications demonstrate how to access the BigQuery API using -the [Google Cloud Client Library for Java][google-cloud-java]. - -[BigQuery]: https://cloud.google.com/bigquery/ -[google-cloud-java]: https://github.com/GoogleCloudPlatform/google-cloud-java - -## Quickstart - -Install [Maven](http://maven.apache.org/). - -[Authenticate using a service account](https://cloud.google.com/docs/authentication/getting-started). -Create a service account, download a JSON key file, and set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable. - -Build your project with: - - mvn clean package -DskipTests - -You can then run a given `ClassName` via: - - mvn exec:java -Dexec.mainClass=com.example.bigquery.ClassName \ - -DpropertyName=propertyValue \ - -Dexec.args="any arguments to the app" - -### Creating a new dataset (using the quickstart sample) - - mvn exec:java -Dexec.mainClass=com.example.bigquery.QuickstartSample - -### Running a query using standard SQL syntax - - mvn exec:java -Dexec.mainClass=com.example.bigquery.QuerySample \ - -Dexec.args=' \ - --query="SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;" \ - --runStandardSqlQuery' - -### Running the simple app example - -To run the example from the [simple app example -documentation](https://cloud.google.com/bigquery/create-simple-app-api): - - mvn exec:java -Dexec.mainClass=com.example.bigquery.SimpleApp - diff --git a/synth.metadata b/synth.metadata index 4a018664a5da..c252ca41bfe5 100644 --- a/synth.metadata +++ b/synth.metadata @@ -3,16 +3,15 @@ { "git": { "name": ".", - "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "9ec561d13f66a3215f313b1848b144f4feec767b" + "remote": "git@github.com:stephaniewang526/java-bigquery.git", + "sha": "5992b8f263aefadb05a8e9f382374deea655f503" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "85cbc7f954f4c4c3534f0caafbaed22a8f80f602", - "log": "85cbc7f954f4c4c3534f0caafbaed22a8f80f602\nfix: use https vcs install for python-test-utils (#492)\n\n\n52638600f387deb98efb5f9c85fec39e82aa9052\nbuild(java): set GOOGLE_CLOUD_PROJECT env for samples/integration tests (#484)\n\n* build(java): set GOOGLE_CLOUD_PROJECT env variable for samples/integration tests\n\n* ci: use java-docs-samples-testing for sample tests\n3df869dd6eb546ef13beeb7a9efa6ee0226afafd\nci: add dependency list completeness check (#490)\n\n\n682c0c37d1054966ca662a44259e96cc7aea4413\nbuild(nodejs): update lint ignore rules (#488)\n\n\n97c7ccfdceb927db1cbe6f3bb09616aa02bafd89\ndoc: document context-aware commit flags (#481)\n\nAlso, delete obsolete blurb about cleaning up old, dead files.\n\nCo-authored-by: Jeff Ching \n8eff3790f88b50706a0c4b6a20b385f24e9ac4e7\nfeat: common postprocessing for node libraries (#485)\n\nCo-authored-by: Justin Beckwith \n21c3b57ae54ae9db6a3a6b48b31c970c6ab56f19\nbuild(nodejs): remove unused codecov config (#486)\n\n\n6f32150677c9784f3c3a7e1949472bd29c9d72c5\nfix: installs test_utils from its common repo (#480)\n\n\n74ce986d3b5431eb66985e9a00c4eb45295a4020\nfix: stop recording update_time in synth.metadata (#478)\n\n\n7f8e62aa3edd225f76347a16f92e400661fdfb52\nchore(java): release-please only updates non maven versions in README (#476)\n\nPrevent release-please and synthtool from fighting over the released library version. Synthtool updates the install snippets from the samples pom.xml files so the bots fight if they are temporarily out of sync after a release.\nc7e0e517d7f46f77bebd27da2e5afcaa6eee7e25\nbuild(java): fix nightly integration test config to run integrations (#465)\n\nThis was only running the units.\nbd69a2aa7b70875f3c988e269706b22fefbef40e\nbuild(java): fix retry_with_backoff when -e option set (#475)\n\n\nd9b173c427bfa0c6cca818233562e7e8841a357c\nfix: record version of working repo in synth.metadata (#473)\n\nPartial revert of b37cf74d12e9a42b9de9e61a4f26133d7cd9c168.\nf73a541770d95a609e5be6bf6b3b220d17cefcbe\nfeat(discogapic): allow local discovery-artifact-manager (#474)\n\n\n8cf0f5d93a70c3dcb0b4999d3152c46d4d9264bf\ndoc: describe the Autosynth & Synthtool protocol (#472)\n\n* doc: describe the Autosynth & Synthtool protocol\n\n* Accommodate review comments.\n980baaa738a1ad8fa02b4fdbd56be075ee77ece5\nfix: pin sphinx to <3.0.0 as new version causes new error (#471)\n\nThe error `toctree contains reference to document changlelog that doesn't have a title: no link will be generated` occurs as of 3.0.0. Pinning to 2.x until we address the docs build issue.\n\nTowards #470\n\nI did this manually for python-datastore https://github.com/googleapis/python-datastore/pull/22\n928b2998ac5023e7c7e254ab935f9ef022455aad\nchore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.15 (#466)\n\nCo-authored-by: Jeffrey Rennie \n188f1b1d53181f739b98f8aa5d40cfe99eb90c47\nfix: allow local and external deps to be specified (#469)\n\nModify noxfile.py to allow local and external dependencies for\nsystem tests to be specified.\n1df68ed6735ddce6797d0f83641a731c3c3f75b4\nfix: apache license URL (#468)\n\n\nf4a59efa54808c4b958263de87bc666ce41e415f\nfeat: Add discogapic support for GAPICBazel generation (#459)\n\n* feat: Add discogapic support for GAPICBazel generation\n\n* reformat with black\n\n* Rename source repository variable\n\nCo-authored-by: Jeffrey Rennie \n99820243d348191bc9c634f2b48ddf65096285ed\nfix: update template files for Node.js libraries (#463)\n\n\n3cbe6bcd5623139ac9834c43818424ddca5430cb\nfix(ruby): remove dead troubleshooting link from generated auth guide (#462)\n\n\na003d8655d3ebec2bbbd5fc3898e91e152265c67\ndocs: remove \"install stable\" instructions (#461)\n\nThe package hasn't been released to PyPI in some time\nf5e8c88d9870d8aa4eb43fa0b39f07e02bfbe4df\nchore(python): add license headers to config files; make small tweaks to templates (#458)\n\n\n" + "sha": "716f741f2d307b48cbe8a5bc3bc883571212344a" } } ] diff --git a/synth.py b/synth.py index 37ed336799b3..69d7bf56597c 100644 --- a/synth.py +++ b/synth.py @@ -19,7 +19,6 @@ AUTOSYNTH_MULTIPLE_COMMITS = True java.common_templates(excludes=[ - 'README.md', '.kokoro/continuous/java8-samples.cfg', '.kokoro/continuous/java11-samples.cfg', '.kokoro/nightly/java8-samples.cfg', From 21d0c588d61ded31cb45ff10bf7824f8203c9314 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 24 Apr 2020 17:41:51 +0200 Subject: [PATCH 0455/3441] deps: update dependency org.threeten:threetenbp to v1.4.4 (#293) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2c7758e03726..fee76f539d5f 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ 3.11.4 4.13 29.0-android - 1.4.3 + 1.4.4 1.3.2 1.18 v2-rev20200324-1.30.9 From 2e0b894b7890a9e42210e734ab86ff91791c4dc6 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 24 Apr 2020 11:46:07 -0400 Subject: [PATCH 0456/3441] samples: add samples README (#292) --- samples/README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 samples/README.md diff --git a/samples/README.md b/samples/README.md new file mode 100644 index 000000000000..0b7ed99dda90 --- /dev/null +++ b/samples/README.md @@ -0,0 +1,17 @@ +# Getting Started with BigQuery Samples + +## Running a sample using Cloud Shell + +The Google Cloud Shell has application default credentials from its compute instance which will allow you to run an integration test without having to obtain `GOOGLE_APPLICATION_CREDENTIANS`. + +However, certain samples require environment variables to be set. For instance, in `CreateDatasetIT.java`: + +`private static final String GOOGLE_CLOUD_PROJECT = System.getenv("GOOGLE_CLOUD_PROJECT");` - this sample integration test requires you to specific the [Google Cloud Project](https://cloud.google.com/resource-manager/docs/creating-managing-projects) you would like to run the test in. + +Make sure to set environment variables, if necessary, before running the sample, or else you will get an error asking you to set it. + +To run a samples integration tests in the cloud shell, simply run the following commands: + +`cd samples/snippets` - all samples are located in `java-bigquery/samples/snippets` directory. + +`mvn -Dtest=GetTableIT test` - this runs the integration test of `GetTable.java` sample. \ No newline at end of file From 217c9643b117a64f5981490159c9f7d30c12650a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 24 Apr 2020 17:48:10 +0200 Subject: [PATCH 0457/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v5.2.0 (#291) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `5.1.0` -> `5.2.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index b30107cc71f9..820ed6d92c4a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 5.1.0 + 5.2.0 pom import From b539f95965ddba6ce4fc5b6712ce1e38b8286bd7 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 24 Apr 2020 16:42:55 -0700 Subject: [PATCH 0458/3441] changes without context (#295) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 06e800ecf8b7..2eef47b11cae 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 5.1.0 + 5.2.0 pom import diff --git a/synth.metadata b/synth.metadata index c252ca41bfe5..efa3fe36403e 100644 --- a/synth.metadata +++ b/synth.metadata @@ -3,8 +3,8 @@ { "git": { "name": ".", - "remote": "git@github.com:stephaniewang526/java-bigquery.git", - "sha": "5992b8f263aefadb05a8e9f382374deea655f503" + "remote": "https://github.com/googleapis/java-bigquery.git", + "sha": "217c9643b117a64f5981490159c9f7d30c12650a" } }, { From 95f9443fad2f561df8f8108c3e323729d8195d46 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 28 Apr 2020 19:56:15 +0200 Subject: [PATCH 0459/3441] deps: update core transport dependencies to v1.35.0 (#298) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index fee76f539d5f..8a0c96ab0abd 100644 --- a/pom.xml +++ b/pom.xml @@ -91,12 +91,12 @@ com.google.http-client google-http-client-jackson2 - 1.34.2 + 1.35.0 com.google.http-client google-http-client - 1.34.2 + 1.35.0 com.google.auth From 9d37e45bc07de3d6b4fb2aac4c69df7b2ef80c9f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 29 Apr 2020 01:06:17 +0200 Subject: [PATCH 0460/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v5.3.0 (#299) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `5.2.0` -> `5.3.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 820ed6d92c4a..a022259b12ec 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 5.2.0 + 5.3.0 pom import From d2a7af226735aba2c08867cd6606b19d1c31c2b0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 29 Apr 2020 10:48:08 -0700 Subject: [PATCH 0461/3441] chore: regenerate README (#300) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/6f5d7f8b-8e06-474e-b3b8-e248dd7dd2e1/targets --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2eef47b11cae..d71201d05ae9 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 5.2.0 + 5.3.0 pom import diff --git a/synth.metadata b/synth.metadata index efa3fe36403e..3da64aa088a2 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "217c9643b117a64f5981490159c9f7d30c12650a" + "sha": "9d37e45bc07de3d6b4fb2aac4c69df7b2ef80c9f" } }, { From 2b319ce21e2f540b7de4dfcef02c68a6cf8a1564 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2020 14:06:44 -0400 Subject: [PATCH 0462/3441] chore: release 1.111.2 (#294) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 8 ++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c59ec78ba538..5a34faf5afff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.111.2](https://www.github.com/googleapis/java-bigquery/compare/v1.111.1...v1.111.2) (2020-04-29) + + +### Dependencies + +* update core transport dependencies to v1.35.0 ([#298](https://www.github.com/googleapis/java-bigquery/issues/298)) ([95f9443](https://www.github.com/googleapis/java-bigquery/commit/95f9443fad2f561df8f8108c3e323729d8195d46)) +* update dependency org.threeten:threetenbp to v1.4.4 ([#293](https://www.github.com/googleapis/java-bigquery/issues/293)) ([21d0c58](https://www.github.com/googleapis/java-bigquery/commit/21d0c588d61ded31cb45ff10bf7824f8203c9314)) + ### [1.111.1](https://www.github.com/googleapis/java-bigquery/compare/v1.111.0...v1.111.1) (2020-04-22) diff --git a/README.md b/README.md index d71201d05ae9..1b7b5f81b64d 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.111.1' +compile 'com.google.cloud:google-cloud-bigquery:1.111.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.111.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.111.2" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 89a0af68934c..1b7aefc60204 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.111.2-SNAPSHOT + 1.111.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.111.2-SNAPSHOT + 1.111.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8a0c96ab0abd..72dbf5e7c0bf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.111.2-SNAPSHOT + 1.111.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.111.2-SNAPSHOT + 1.111.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0fd14b538fa0..f2a1f96a9b1e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.111.2-SNAPSHOT + 1.111.2 diff --git a/versions.txt b/versions.txt index 90e08c27975e..323882b01ded 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.111.1:1.111.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.111.2:1.111.2 \ No newline at end of file From 050e708606e662adc5aa5705bbf8715f3d1e3686 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 30 Apr 2020 11:23:18 -0700 Subject: [PATCH 0463/3441] changes without context (#301) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 4 ++-- synth.metadata | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1b7b5f81b64d..d71201d05ae9 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.111.2' +compile 'com.google.cloud:google-cloud-bigquery:1.111.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.111.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.111.1" ``` [//]: # ({x-version-update-end}) diff --git a/synth.metadata b/synth.metadata index 3da64aa088a2..bcc7637a9b43 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "9d37e45bc07de3d6b4fb2aac4c69df7b2ef80c9f" + "sha": "2b319ce21e2f540b7de4dfcef02c68a6cf8a1564" } }, { From 6315842dfa62a433a1ba507b861cf96a3d7cb03d Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 1 May 2020 21:26:43 +0530 Subject: [PATCH 0464/3441] fix: null type in timepartitioning frompb (#305) --- .../bigquery/StandardTableDefinition.java | 11 ------- .../cloud/bigquery/TimePartitioning.java | 2 +- .../cloud/bigquery/BigQueryImplTest.java | 32 ++++++++++++++++++- .../bigquery/StandardTableDefinitionTest.java | 28 ---------------- 4 files changed, 32 insertions(+), 41 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index 1c465343a514..4e26f831f1fb 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -285,17 +285,6 @@ static StandardTableDefinition fromPb(Table tablePb) { + " in table " + tablePb.getTableReference().getTableId(), e); - } catch (NullPointerException e) { - throw new NullPointerException( - "Null pointer - Got unexpected time partitioning " - + tablePb.getTimePartitioning().toString() - + " in project " - + tablePb.getTableReference().getProjectId() - + " in dataset " - + tablePb.getTableReference().getDatasetId() - + " in table " - + tablePb.getTableReference().getTableId() - + e.toString()); } } if (tablePb.getRangePartitioning() != null) { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java index dd9d4a73cbd6..43f3421294aa 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java @@ -142,7 +142,7 @@ static TimePartitioning fromPb( if (Data.isNull(expirationMs)) { expirationMs = null; } - return newBuilder(Type.valueOf(partitioningPb.getType())) + return newBuilder(Type.valueOf(firstNonNull(partitioningPb.getType(), Type.DAY.name()))) .setExpirationMs(expirationMs) .setField(partitioningPb.getField()) .setRequirePartitionFilter(partitioningPb.getRequirePartitionFilter()) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 7ab3e8ef284e..999ea9a03b17 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -116,11 +116,22 @@ public class BigQueryImplTest { private static final Long TABLE_CREATION_TIME = 1546275600000L; private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(TimePartitioning.Type.DAY, EXPIRATION_MS); + private static final com.google.api.services.bigquery.model.TimePartitioning PB_TIMEPARTITIONING = + new com.google.api.services.bigquery.model.TimePartitioning() + .setType(null) + .setField("timestampField"); + private static final TimePartitioning TIME_PARTITIONING_NULL_TYPE = + TimePartitioning.fromPb(PB_TIMEPARTITIONING); private static final StandardTableDefinition TABLE_DEFINITION_WITH_PARTITIONING = StandardTableDefinition.newBuilder() .setSchema(TABLE_SCHEMA) .setTimePartitioning(TIME_PARTITIONING) .build(); + private static final StandardTableDefinition TABLE_DEFINITION_WITH_PARTITIONING_NULL_TYPE = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setTimePartitioning(TIME_PARTITIONING_NULL_TYPE) + .build(); private static final RangePartitioning.Range RANGE = RangePartitioning.Range.newBuilder().setStart(1L).setInterval(2L).setEnd(10L).build(); private static final RangePartitioning RANGE_PARTITIONING = @@ -142,7 +153,10 @@ public class BigQueryImplTest { TableInfo.newBuilder(TABLE_ID, TABLE_DEFINITION_WITH_PARTITIONING) .setCreationTime(TABLE_CREATION_TIME) .build(); - + private static final TableInfo TABLE_INFO_WITH_PARTITIONS_NULL_TYPE = + TableInfo.newBuilder(TABLE_ID, TABLE_DEFINITION_WITH_PARTITIONING_NULL_TYPE) + .setCreationTime(TABLE_CREATION_TIME) + .build(); private static final ModelId OTHER_MODEL_ID = ModelId.of(DATASET, OTHER_MODEL); private static final ModelId MODEL_ID_WITH_PROJECT = ModelId.of(PROJECT, DATASET, MODEL); @@ -912,6 +926,22 @@ public void testListTablesReturnedParameters() { assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); } + @Test + public void testListTablesReturnedParametersNullType() { + bigquery = options.getService(); + ImmutableList
    tableList = + ImmutableList.of( + new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PARTITIONS_NULL_TYPE))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); + EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)) + .andReturn(result); + EasyMock.replay(bigqueryRpcMock); + Page
    page = bigquery.listTables(DATASET, TABLE_LIST_PAGE_SIZE, TABLE_LIST_PAGE_TOKEN); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + } + @Test public void testListTablesWithRangePartitioning() { bigquery = options.getService(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java index d1dd0cc29a8d..397e69d1efdb 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -152,34 +152,6 @@ public void testFromPbWithUnexpectedTimePartitioningTypeRaisesInvalidArgumentExc fail("testFromPb illegal argument exception did not throw!"); } - @Test - public void testFromPbWithNullTimePartitioningTypeRaisesNullPointerException() { - Table invalidTable = - new Table() - .setType("TABLE") - .setTableReference( - new TableReference() - .setProjectId("NULL_PTR_TEST_PROJECT") - .setDatasetId("NULL_PTR_TEST_DATASET") - .setTableId("NULL_PTR_TEST_TABLE")) - .setTimePartitioning( - new com.google.api.services.bigquery.model.TimePartitioning().setType(null)); - try { - StandardTableDefinition.fromPb(invalidTable); - } catch (NullPointerException ne) { - assertThat( - ne.getMessage(), - allOf( - containsString("Null pointer - Got unexpected time partitioning"), - containsString("null"), - containsString("NULL_PTR_TEST_PROJECT"), - containsString("NULL_PTR_TEST_DATASET"), - containsString("NULL_PTR_TEST_TABLE"))); - return; - } - fail("testFromPb null pointer exception did not throw!"); - } - @Test public void testFromPbWithNullEstimatedRowsAndBytes() { StandardTableDefinition.fromPb( From fccb0b4d08b41e4836ac9490befca47306f14afd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 2 May 2020 09:59:05 +0200 Subject: [PATCH 0465/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200415-1.30.9 (#307) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 72dbf5e7c0bf..68b4445431b7 100644 --- a/pom.xml +++ b/pom.xml @@ -74,7 +74,7 @@ 1.4.4 1.3.2 1.18 - v2-rev20200324-1.30.9 + v2-rev20200415-1.30.9 1.7 ${auto-value.version} From 5a0ed060eb2c966092af66bfae2896ea8af70c7e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 4 May 2020 17:04:14 +0200 Subject: [PATCH 0466/3441] deps: update dependency com.google.auto.value:auto-value to v1.7.1 (#308) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 68b4445431b7..a3954ce81968 100644 --- a/pom.xml +++ b/pom.xml @@ -76,7 +76,7 @@ 1.18 v2-rev20200415-1.30.9 - 1.7 + 1.7.1 ${auto-value.version} 1.0-rc6 From 74d7fc5075858f5c5aee398123f9d1523d731440 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 4 May 2020 20:28:48 +0200 Subject: [PATCH 0467/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.111.2 (#311) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7c4826a39d24..7b20949f6eba 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.111.1 + 1.111.2 From fc2abc851d62db2f0391669491478f43908e4946 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 4 May 2020 14:52:39 -0400 Subject: [PATCH 0468/3441] chore: release 1.111.2-SNAPSHOT (#309) * updated versions.txt [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1b7aefc60204..2ea14406a0db 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.111.2 + 1.111.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.111.2 + 1.111.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a3954ce81968..f30489d2b224 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.111.2 + 1.111.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.111.2 + 1.111.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f2a1f96a9b1e..4c7ef45fcaba 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.111.2 + 1.111.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 323882b01ded..23122fd509d8 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.111.2:1.111.2 \ No newline at end of file +google-cloud-bigquery:1.111.2:1.111.3-SNAPSHOT \ No newline at end of file From 8e9ff2a847480ba7612229a20db348bdbd4092e2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 4 May 2020 20:08:04 +0000 Subject: [PATCH 0469/3441] chore: release 1.111.3 (#313) :robot: I have created a release \*beep\* \*boop\* --- ### [1.111.3](https://www.github.com/googleapis/java-bigquery/compare/v1.111.2...v1.111.3) (2020-05-04) ### Bug Fixes * null type in timepartitioning frompb ([#305](https://www.github.com/googleapis/java-bigquery/issues/305)) ([6315842](https://www.github.com/googleapis/java-bigquery/commit/6315842dfa62a433a1ba507b861cf96a3d7cb03d)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20200415-1.30.9 ([#307](https://www.github.com/googleapis/java-bigquery/issues/307)) ([fccb0b4](https://www.github.com/googleapis/java-bigquery/commit/fccb0b4d08b41e4836ac9490befca47306f14afd)) * update dependency com.google.auto.value:auto-value to v1.7.1 ([#308](https://www.github.com/googleapis/java-bigquery/issues/308)) ([5a0ed06](https://www.github.com/googleapis/java-bigquery/commit/5a0ed060eb2c966092af66bfae2896ea8af70c7e)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 13 +++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 21 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a34faf5afff..f4d277f8cf81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +### [1.111.3](https://www.github.com/googleapis/java-bigquery/compare/v1.111.2...v1.111.3) (2020-05-04) + + +### Bug Fixes + +* null type in timepartitioning frompb ([#305](https://www.github.com/googleapis/java-bigquery/issues/305)) ([6315842](https://www.github.com/googleapis/java-bigquery/commit/6315842dfa62a433a1ba507b861cf96a3d7cb03d)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200415-1.30.9 ([#307](https://www.github.com/googleapis/java-bigquery/issues/307)) ([fccb0b4](https://www.github.com/googleapis/java-bigquery/commit/fccb0b4d08b41e4836ac9490befca47306f14afd)) +* update dependency com.google.auto.value:auto-value to v1.7.1 ([#308](https://www.github.com/googleapis/java-bigquery/issues/308)) ([5a0ed06](https://www.github.com/googleapis/java-bigquery/commit/5a0ed060eb2c966092af66bfae2896ea8af70c7e)) + ### [1.111.2](https://www.github.com/googleapis/java-bigquery/compare/v1.111.1...v1.111.2) (2020-04-29) diff --git a/README.md b/README.md index d71201d05ae9..9bdb28ee0ef2 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.111.1' +compile 'com.google.cloud:google-cloud-bigquery:1.111.3' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.111.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.111.3" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2ea14406a0db..6d21659a5092 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.111.3-SNAPSHOT + 1.111.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.111.3-SNAPSHOT + 1.111.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f30489d2b224..e66a9560efbe 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.111.3-SNAPSHOT + 1.111.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.111.3-SNAPSHOT + 1.111.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4c7ef45fcaba..13224ffde2a3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.111.3-SNAPSHOT + 1.111.3 diff --git a/versions.txt b/versions.txt index 23122fd509d8..6a4068d7fef3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.111.2:1.111.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.111.3:1.111.3 \ No newline at end of file From 3b7ba34882e9cbc7cccfb4a3388ec9aec5881ec8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 5 May 2020 00:33:44 +0200 Subject: [PATCH 0470/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.111.3 (#314) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7b20949f6eba..fc6da59d9b65 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.111.2 + 1.111.3 From 09a67b6e76c2767754e5a159824b64c6cc5e966e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 4 May 2020 15:34:19 -0700 Subject: [PATCH 0471/3441] changes without context (#315) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9bdb28ee0ef2..afabd0c742bc 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.111.1 + 1.111.2 ``` diff --git a/synth.metadata b/synth.metadata index bcc7637a9b43..77c36ac1f632 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "2b319ce21e2f540b7de4dfcef02c68a6cf8a1564" + "sha": "8e9ff2a847480ba7612229a20db348bdbd4092e2" } }, { From 03fc6aaf66693acf9f5ece6959eb40581014d7e1 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 4 May 2020 18:49:04 -0400 Subject: [PATCH 0472/3441] chore: release 1.111.4-SNAPSHOT (#316) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6d21659a5092..2f8c82df79f7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.111.3 + 1.111.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.111.3 + 1.111.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e66a9560efbe..4b9a616e2466 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.111.3 + 1.111.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.111.3 + 1.111.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 13224ffde2a3..c75a21a3d6bd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.111.3 + 1.111.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 6a4068d7fef3..a474a9941eda 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.111.3:1.111.3 \ No newline at end of file +google-cloud-bigquery:1.111.3:1.111.4-SNAPSHOT \ No newline at end of file From 3dade31ce828322753dd40f90e2e019cad40f83a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 5 May 2020 05:15:01 +0200 Subject: [PATCH 0473/3441] deps: update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 (#318) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.api.grpc:proto-google-common-protos](https://togithub.com/googleapis/java-iam) | minor | `1.17.0` -> `1.18.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4b9a616e2466..07ad467d4261 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent 1.93.4 1.9.0 - 1.17.0 + 1.18.0 1.56.0 1.29.0 3.11.4 From dcd366373f5804da1e8226c110e89c3de5749926 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 5 May 2020 19:54:47 +0530 Subject: [PATCH 0474/3441] feat: add support connection properties for job and query (#320) --- .../cloud/bigquery/ConnectionProperty.java | 146 ++++++++++++++++++ .../cloud/bigquery/QueryJobConfiguration.java | 40 ++++- .../bigquery/ConnectionPropertyTest.java | 64 ++++++++ .../bigquery/QueryJobConfigurationTest.java | 9 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 26 ++++ 5 files changed, 283 insertions(+), 2 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionPropertyTest.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java new file mode 100644 index 000000000000..a6206712edb6 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java @@ -0,0 +1,146 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.common.base.Function; +import com.google.common.base.MoreObjects; +import com.google.common.base.Objects; + +public final class ConnectionProperty { + + static final Function< + com.google.api.services.bigquery.model.ConnectionProperty, ConnectionProperty> + FROM_PB_FUNCTION = + new Function< + com.google.api.services.bigquery.model.ConnectionProperty, ConnectionProperty>() { + @Override + public ConnectionProperty apply( + com.google.api.services.bigquery.model.ConnectionProperty connectionProperty) { + return ConnectionProperty.fromPb(connectionProperty); + } + }; + static final Function< + ConnectionProperty, com.google.api.services.bigquery.model.ConnectionProperty> + TO_PB_FUNCTION = + new Function< + ConnectionProperty, com.google.api.services.bigquery.model.ConnectionProperty>() { + @Override + public com.google.api.services.bigquery.model.ConnectionProperty apply( + ConnectionProperty connectionProperty) { + return connectionProperty.toPb(); + } + }; + + private final String key; + private final String value; + + /** A builder for {@code ConnectionProperty} objects. */ + public static final class Builder { + private String key; + private String value; + + private Builder() {}; + + private Builder(ConnectionProperty properties) { + this.key = properties.key; + this.value = properties.value; + } + + /** [Required] Name of the connection property to set. */ + public Builder setKey(String key) { + this.key = key; + return this; + } + + /** [Required] Value of the connection property. */ + public Builder setValue(String value) { + this.value = value; + return this; + } + + /** Creates a {@code ConnectionProperty} object. */ + public ConnectionProperty build() { + return new ConnectionProperty(this); + } + } + + private ConnectionProperty(Builder builder) { + this.key = checkNotNull(builder.key, "Required key is null or empty"); + this.value = checkNotNull(builder.value, "Required value is null or empty"); + } + + /** Return the key of property. */ + public String getKey() { + return key; + } + + /** Return the value of property. */ + public String getValue() { + return value; + } + + /** Return a connection property for the given key and value. */ + public static ConnectionProperty of(String key, String value) { + return newBuilder().setKey(key).setValue(value).build(); + } + + /** Returns a builder for the {@code ConnectionProperty} object. */ + public static Builder newBuilder() { + return new Builder(); + } + + /** Returns a builder for the {@code ConnectionProperty} object. */ + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("key", key).add("value", value).toString(); + } + + @Override + public int hashCode() { + return Objects.hashCode(key, value); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(ConnectionProperty.class) + && java.util.Objects.equals(toPb(), ((ConnectionProperty) obj).toPb()); + } + + com.google.api.services.bigquery.model.ConnectionProperty toPb() { + com.google.api.services.bigquery.model.ConnectionProperty properties = + new com.google.api.services.bigquery.model.ConnectionProperty(); + properties.setKey(key); + properties.setValue(value); + return properties; + } + + static ConnectionProperty fromPb( + com.google.api.services.bigquery.model.ConnectionProperty properties) { + Builder builder = newBuilder(); + builder.setKey(properties.getKey()); + builder.setValue(properties.getValue()); + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index 2c1a9a43bae1..c26d5cf0c894 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -68,6 +68,7 @@ public final class QueryJobConfiguration extends JobConfiguration { private final Long jobTimeoutMs; private final Map labels; private final RangePartitioning rangePartitioning; + private final List connectionProperties; /** * Priority levels for a query. If not specified the priority is assumed to be {@link @@ -116,6 +117,7 @@ public static final class Builder private Long jobTimeoutMs; private Map labels; private RangePartitioning rangePartitioning; + private List connectionProperties; private Builder() { super(Type.QUERY); @@ -147,6 +149,7 @@ private Builder(QueryJobConfiguration jobConfiguration) { this.jobTimeoutMs = jobConfiguration.jobTimeoutMs; this.labels = jobConfiguration.labels; this.rangePartitioning = jobConfiguration.rangePartitioning; + this.connectionProperties = jobConfiguration.connectionProperties; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -240,6 +243,12 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this.rangePartitioning = RangePartitioning.fromPb(queryConfigurationPb.getRangePartitioning()); } + if (queryConfigurationPb.getConnectionProperties() != null) { + this.connectionProperties = + Lists.transform( + queryConfigurationPb.getConnectionProperties(), + ConnectionProperty.FROM_PB_FUNCTION); + } } /** Sets the BigQuery SQL query to execute. */ @@ -579,6 +588,21 @@ public Builder setRangePartitioning(RangePartitioning rangePartitioning) { return this; } + /** + * A connection-level property to customize query behavior. Under JDBC, these correspond + * directly to connection properties passed to the DriverManager. Under ODBC, these correspond + * to properties in the connection string. Currently, the only supported connection property is + * "time_zone", whose value represents the default timezone used to run the query. Additional + * properties are allowed, but ignored. Specifying multiple connection properties with the same + * key is an error. + * + * @param connectionProperties connectionProperties or {@code null} for none + */ + public Builder setConnectionProperties(List connectionProperties) { + this.connectionProperties = ImmutableList.copyOf(connectionProperties); + return this; + } + public QueryJobConfiguration build() { return new QueryJobConfiguration(this); } @@ -619,6 +643,7 @@ private QueryJobConfiguration(Builder builder) { this.jobTimeoutMs = builder.jobTimeoutMs; this.labels = builder.labels; this.rangePartitioning = builder.rangePartitioning; + this.connectionProperties = builder.connectionProperties; } /** @@ -803,6 +828,11 @@ public RangePartitioning getRangePartitioning() { return rangePartitioning; } + /** Returns the connection properties for connection string with this job */ + public List getConnectionProperties() { + return connectionProperties; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -834,7 +864,8 @@ ToStringHelper toStringHelper() { .add("clustering", clustering) .add("jobTimeoutMs", jobTimeoutMs) .add("labels", labels) - .add("rangePartitioning", rangePartitioning); + .add("rangePartitioning", rangePartitioning) + .add("connectionProperties", connectionProperties); } @Override @@ -869,7 +900,8 @@ public int hashCode() { clustering, jobTimeoutMs, labels, - rangePartitioning); + rangePartitioning, + connectionProperties); } @Override @@ -968,6 +1000,10 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (rangePartitioning != null) { queryConfigurationPb.setRangePartitioning(rangePartitioning.toPb()); } + if (connectionProperties != null) { + queryConfigurationPb.setConnectionProperties( + Lists.transform(connectionProperties, ConnectionProperty.TO_PB_FUNCTION)); + } configurationPb.setQuery(queryConfigurationPb); return configurationPb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionPropertyTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionPropertyTest.java new file mode 100644 index 000000000000..9177720e8fc0 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionPropertyTest.java @@ -0,0 +1,64 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import org.junit.Test; + +public class ConnectionPropertyTest { + + private static final String KEY = "time_zone"; + private static final String VALUE = "US/Eastern"; + private static final ConnectionProperty CONNECTION_PROPERTY = + ConnectionProperty.newBuilder().setKey(KEY).setValue(VALUE).build(); + + @Test + public void testToBuilder() { + compareConnectionProperty(CONNECTION_PROPERTY, CONNECTION_PROPERTY.toBuilder().build()); + ConnectionProperty property = CONNECTION_PROPERTY.toBuilder().setKey("time-zone").build(); + assertThat(property.getKey()).isEqualTo("time-zone"); + property = CONNECTION_PROPERTY.toBuilder().setKey(KEY).build(); + compareConnectionProperty(CONNECTION_PROPERTY, property); + } + + @Test + public void testToBuilderIncomplete() { + ConnectionProperty connectionProperty = ConnectionProperty.of(KEY, VALUE); + compareConnectionProperty(connectionProperty, connectionProperty.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertThat(CONNECTION_PROPERTY.getKey()).isEqualTo(KEY); + assertThat(CONNECTION_PROPERTY.getValue()).isEqualTo(VALUE); + } + + @Test + public void testToAndFromPb() { + compareConnectionProperty( + CONNECTION_PROPERTY, ConnectionProperty.fromPb(CONNECTION_PROPERTY.toPb())); + } + + private void compareConnectionProperty(ConnectionProperty expected, ConnectionProperty value) { + assertThat(value).isEqualTo(expected); + assertThat(value.getKey()).isEqualTo(expected.getKey()); + assertThat(value.getValue()).isEqualTo(expected.getValue()); + assertThat(value.toString()).isEqualTo(expected.toString()); + assertThat(value.hashCode()).isEqualTo(expected.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index b31312a345eb..406d7edfa49a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -38,6 +38,12 @@ public class QueryJobConfigurationTest { private static final DatasetId DATASET_ID = DatasetId.of("dataset"); private static final TableId TABLE_ID = TableId.of("dataset", "table"); private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); + private static final String KEY = "time_zone"; + private static final String VALUE = "US/Eastern"; + private static final ConnectionProperty CONNECTION_PROPERTY = + ConnectionProperty.newBuilder().setKey(KEY).setValue(VALUE).build(); + private static final List CONNECTION_PROPERTIES = + ImmutableList.of(CONNECTION_PROPERTY); private static final Field FIELD_SCHEMA1 = Field.newBuilder("StringField", LegacySQLTypeName.STRING) .setMode(Field.Mode.NULLABLE) @@ -112,6 +118,7 @@ public class QueryJobConfigurationTest { .setJobTimeoutMs(TIMEOUT) .setLabels(LABELS) .setRangePartitioning(RANGE_PARTITIONING) + .setConnectionProperties(CONNECTION_PROPERTIES) .build(); @Test @@ -146,6 +153,7 @@ public void testToPbAndFromPb() { assertNotNull(QUERY_JOB_CONFIGURATION.getJobTimeoutMs()); assertNotNull(QUERY_JOB_CONFIGURATION.getLabels()); assertNotNull(QUERY_JOB_CONFIGURATION.getRangePartitioning()); + assertNotNull(QUERY_JOB_CONFIGURATION.getConnectionProperties()); compareQueryJobConfiguration( QUERY_JOB_CONFIGURATION, QueryJobConfiguration.fromPb(QUERY_JOB_CONFIGURATION.toPb())); QueryJobConfiguration job = QueryJobConfiguration.of(QUERY); @@ -204,5 +212,6 @@ private void compareQueryJobConfiguration( assertEquals(expected.getJobTimeoutMs(), value.getJobTimeoutMs()); assertEquals(expected.getLabels(), value.getLabels()); assertEquals(expected.getRangePartitioning(), value.getRangePartitioning()); + assertEquals(expected.getConnectionProperties(), value.getConnectionProperties()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 472d8ecf8d82..165122d99d35 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -47,6 +47,7 @@ import com.google.cloud.bigquery.BigQueryError; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.Clustering; +import com.google.cloud.bigquery.ConnectionProperty; import com.google.cloud.bigquery.CopyJobConfiguration; import com.google.cloud.bigquery.Dataset; import com.google.cloud.bigquery.DatasetId; @@ -301,6 +302,12 @@ public class ITBigQueryTest { + " \"GeographyField\": \"POINT(-122.35022 47.649154)\"," + " \"NumericField\": \"123456.789012345\"" + "}"; + private static final String KEY = "time_zone"; + private static final String VALUE = "US/Eastern"; + private static final ConnectionProperty CONNECTION_PROPERTY = + ConnectionProperty.newBuilder().setKey(KEY).setValue(VALUE).build(); + private static final List CONNECTION_PROPERTIES = + ImmutableList.of(CONNECTION_PROPERTY); private static final Set PUBLIC_DATASETS = ImmutableSet.of("github_repos", "hacker_news", "noaa_gsod", "samples", "usa_names"); @@ -1799,6 +1806,25 @@ public void testQueryJob() throws InterruptedException, TimeoutException { assertNotNull(statistics.getQueryPlan()); } + @Test + public void testQueryJobWithConnectionProperties() throws InterruptedException { + String tableName = "test_query_job_table_connection_properties"; + String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); + TableId destinationTable = TableId.of(DATASET, tableName); + QueryJobConfiguration configuration = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setDestinationTable(destinationTable) + .setConnectionProperties(CONNECTION_PROPERTIES) + .build(); + Job remoteJob = bigquery.create(JobInfo.of(configuration)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + QueryJobConfiguration jobConfiguration = remoteJob.getConfiguration(); + assertEquals(CONNECTION_PROPERTIES, jobConfiguration.getConnectionProperties()); + assertTrue(bigquery.delete(destinationTable)); + } + @Test public void testQueryJobWithLabels() throws InterruptedException, TimeoutException { String tableName = "test_query_job_table"; From 63563e646e85a6caa1eb28819be9fad0083100d7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 5 May 2020 16:25:25 +0200 Subject: [PATCH 0475/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.108.0 (#317) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 07ad467d4261..d2101be4339c 100644 --- a/pom.xml +++ b/pom.xml @@ -195,7 +195,7 @@ com.google.cloud google-cloud-storage - 1.107.0 + 1.108.0 test From f64e880f8539739038796537c3aa2398aef545c1 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 5 May 2020 07:25:42 -0700 Subject: [PATCH 0476/3441] changes without context (#321) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index afabd0c742bc..9e5fcdc42379 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.111.2 + 1.111.3 ``` diff --git a/synth.metadata b/synth.metadata index 77c36ac1f632..fee7cca24293 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "8e9ff2a847480ba7612229a20db348bdbd4092e2" + "sha": "3dade31ce828322753dd40f90e2e019cad40f83a" } }, { From b24d6354196724195aa810fe50c6a006f04b41c7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 5 May 2020 12:36:50 -0400 Subject: [PATCH 0477/3441] chore: release 1.112.0 (#322) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] * updated pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 13 +++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 21 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4d277f8cf81..3b41264c2ee3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [1.112.0](https://www.github.com/googleapis/java-bigquery/compare/v1.111.3...v1.112.0) (2020-05-05) + + +### Features + +* add support connection properties for job and query ([#320](https://www.github.com/googleapis/java-bigquery/issues/320)) ([dcd3663](https://www.github.com/googleapis/java-bigquery/commit/dcd366373f5804da1e8226c110e89c3de5749926)) + + +### Dependencies + +* update dependency com.google.api.grpc:proto-google-common-protos to v1.18.0 ([#318](https://www.github.com/googleapis/java-bigquery/issues/318)) ([3dade31](https://www.github.com/googleapis/java-bigquery/commit/3dade31ce828322753dd40f90e2e019cad40f83a)) +* update dependency com.google.cloud:google-cloud-storage to v1.108.0 ([#317](https://www.github.com/googleapis/java-bigquery/issues/317)) ([63563e6](https://www.github.com/googleapis/java-bigquery/commit/63563e646e85a6caa1eb28819be9fad0083100d7)) + ### [1.111.3](https://www.github.com/googleapis/java-bigquery/compare/v1.111.2...v1.111.3) (2020-05-04) diff --git a/README.md b/README.md index 9e5fcdc42379..fe54816c5dc0 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.111.3' +compile 'com.google.cloud:google-cloud-bigquery:1.112.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.111.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.112.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2f8c82df79f7..f2b891020858 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.111.4-SNAPSHOT + 1.112.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.111.4-SNAPSHOT + 1.112.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d2101be4339c..85ac54deb09b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.111.4-SNAPSHOT + 1.112.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigquery - 1.111.4-SNAPSHOT + 1.112.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c75a21a3d6bd..78caed9446f6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.111.4-SNAPSHOT + 1.112.0 diff --git a/versions.txt b/versions.txt index a474a9941eda..685c6a17dc44 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.111.3:1.111.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.112.0:1.112.0 \ No newline at end of file From 091a6a99a955ae116d61c9cc2663a63cee81e18c Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 5 May 2020 13:42:18 -0400 Subject: [PATCH 0478/3441] feat: switch to use java-shared-deps (#323) --- google-cloud-bigquery/pom.xml | 2 - pom.xml | 107 +++------------------------------- 2 files changed, 7 insertions(+), 102 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f2b891020858..67ebecde25c9 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -20,12 +20,10 @@ com.google.cloud google-cloud-core - ${google.core.version} com.google.cloud google-cloud-core-http - ${google.core.version} com.google.cloud diff --git a/pom.xml b/pom.xml index 85ac54deb09b..b2d6b093dcf5 100644 --- a/pom.xml +++ b/pom.xml @@ -64,16 +64,7 @@ github google-cloud-bigquery-parent 1.93.4 - 1.9.0 - 1.18.0 - 1.56.0 - 1.29.0 - 3.11.4 - 4.13 - 29.0-android - 1.4.4 1.3.2 - 1.18 v2-rev20200415-1.30.9 1.7.1 @@ -84,101 +75,25 @@ - com.google.code.findbugs - jsr305 - 3.0.2 - - - com.google.http-client - google-http-client-jackson2 - 1.35.0 - - - com.google.http-client - google-http-client - 1.35.0 - - - com.google.auth - google-auth-library-oauth2-http - 0.20.0 + com.google.cloud + google-cloud-shared-dependencies + 0.3.0 + pom + import + org.checkerframework checker-compat-qual 2.5.5 - - com.google.auto.value - auto-value-annotations - ${auto-value-annotations.version} - + com.google.cloud google-cloud-bigquery 1.112.0 - - io.grpc - grpc-bom - ${grpc.version} - pom - import - - - com.google.api - gax-bom - ${gax.version} - pom - import - - - com.google.guava - guava-bom - ${guava.version} - pom - import - - - - com.google.protobuf - protobuf-java - ${protobuf.version} - - - com.google.api - api-common - ${google.api-common.version} - - - com.google.api.grpc - proto-google-common-protos - ${google.common-protos.version} - - - org.threeten - threetenbp - ${threeten.version} - - - org.codehaus.mojo - animal-sniffer-annotations - ${animal-sniffer.version} - - - - junit - junit - ${junit.version} - test - - - com.google.truth - truth - 1.0.1 - test - org.easymock easymock @@ -203,14 +118,6 @@ google-api-services-bigquery ${google-api-services-bigquery.version} - - - com.google.api - gax-grpc - ${gax.version} - testlib - test - From b4d2708eea7f4c66a34d27b47cfb16b449e3136a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 5 May 2020 16:02:16 -0400 Subject: [PATCH 0479/3441] chore: release 1.112.1-SNAPSHOT (#324) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 67ebecde25c9..bb0d4ac2aaae 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.112.0 + 1.112.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.112.0 + 1.112.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b2d6b093dcf5..1beed89c8c6d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.112.0 + 1.112.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -91,7 +91,7 @@ com.google.cloud google-cloud-bigquery - 1.112.0 + 1.112.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 78caed9446f6..c7b63477edf4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.112.0 + 1.112.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 685c6a17dc44..3124965b9c5b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.112.0:1.112.0 \ No newline at end of file +google-cloud-bigquery:1.112.0:1.112.1-SNAPSHOT \ No newline at end of file From 1ca2bd31787bd5876f41c9358893196abe947874 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 5 May 2020 16:14:55 -0400 Subject: [PATCH 0480/3441] chore: release 1.113.0 (#325) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b41264c2ee3..f9ddba4d77c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.113.0](https://www.github.com/googleapis/java-bigquery/compare/v1.112.0...v1.113.0) (2020-05-05) + + +### Features + +* switch to use java-shared-deps ([#323](https://www.github.com/googleapis/java-bigquery/issues/323)) ([091a6a9](https://www.github.com/googleapis/java-bigquery/commit/091a6a99a955ae116d61c9cc2663a63cee81e18c)) + ## [1.112.0](https://www.github.com/googleapis/java-bigquery/compare/v1.111.3...v1.112.0) (2020-05-05) diff --git a/README.md b/README.md index fe54816c5dc0..ba235cf6100f 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.112.0' +compile 'com.google.cloud:google-cloud-bigquery:1.113.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.112.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.113.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bb0d4ac2aaae..56aace52612a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.112.1-SNAPSHOT + 1.113.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.112.1-SNAPSHOT + 1.113.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1beed89c8c6d..3658f3215228 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.112.1-SNAPSHOT + 1.113.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -91,7 +91,7 @@ com.google.cloud google-cloud-bigquery - 1.112.1-SNAPSHOT + 1.113.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c7b63477edf4..14564ccd061e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.112.1-SNAPSHOT + 1.113.0 diff --git a/versions.txt b/versions.txt index 3124965b9c5b..f884df4d9097 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.112.0:1.112.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.113.0:1.113.0 \ No newline at end of file From efded52380dfcc7d6bf9372e29f5ae6b343a5feb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 6 May 2020 00:14:08 +0200 Subject: [PATCH 0481/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.113.0 (#326) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fc6da59d9b65..8605822f4a72 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.111.3 + 1.113.0 From ce81454a9f300d256fa8ce0c9d322f6967a99edd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 6 May 2020 11:52:01 -0400 Subject: [PATCH 0482/3441] chore: release 1.113.1-SNAPSHOT (#327) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 56aace52612a..df5a03a1587e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.113.0 + 1.113.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.113.0 + 1.113.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3658f3215228..1987f266e88e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.113.0 + 1.113.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -91,7 +91,7 @@ com.google.cloud google-cloud-bigquery - 1.113.0 + 1.113.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 14564ccd061e..d298d82f7b47 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.113.0 + 1.113.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index f884df4d9097..2c6afc921a35 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.113.0:1.113.0 \ No newline at end of file +google-cloud-bigquery:1.113.0:1.113.1-SNAPSHOT \ No newline at end of file From 9cb5ba3cccfa4d4fd91fd14194313f5ac8fcb4e3 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 6 May 2020 08:52:29 -0700 Subject: [PATCH 0483/3441] changes without context (#328) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ba235cf6100f..21d24f525282 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.111.3 + 1.113.0 ``` diff --git a/synth.metadata b/synth.metadata index fee7cca24293..ce21ea69f9d0 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "3dade31ce828322753dd40f90e2e019cad40f83a" + "sha": "efded52380dfcc7d6bf9372e29f5ae6b343a5feb" } }, { From 90f998040bbca5882ac3dbcdb4b157f26f48eb01 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 11 May 2020 19:30:10 -0400 Subject: [PATCH 0484/3441] feat: add hourly partitioning support (#336) Fixes b/154849483 --- .../cloud/bigquery/TimePartitioning.java | 28 ++++++------- .../cloud/bigquery/TimePartitioningTest.java | 39 ++++++++++++------- 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java index 43f3421294aa..f37377552ebd 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java @@ -37,23 +37,23 @@ public abstract class TimePartitioning implements Serializable { private static final long serialVersionUID = -8565064035346940951L; /** - * The type of time partitioning. Currently, the only type supported is {@code DAY}, which will - * generate one partition per day based on data loading time. + * The supported types are DAY, which will generate one partition per day, and HOUR, which will + * generate one partition per hour. (Providing an empty string used to cause an error, but in + * OnePlatform the field will be treated as unset.) */ public enum Type { /** Table is partitioned per day, based on data loading time. */ - DAY + DAY, + /** Table is partitioned per hour, based on data loading time. */ + HOUR } TimePartitioning() { // Users cannot extend this, but AutoValue can. } - /** - * Returns the time partitioning type. Currently, the only type supported is {@link Type#DAY}, - * which will generate one partition per day based on data loading time. - */ + /** Returns the time partitioning type. */ public abstract Type getType(); /** @@ -96,19 +96,14 @@ public abstract static class Builder { public abstract TimePartitioning build(); } - /** - * Returns a {@code TimePartitioning} object given the time partitioning type. Currently, the only - * type supported is {@link Type#DAY}, which will generate one partition per day based on data - * loading time. - */ + /** Returns a {@code TimePartitioning} object given the time partitioning type. */ public static Builder newBuilder(Type type) { return new AutoValue_TimePartitioning.Builder().setType(type); } /** - * Returns a {@code TimePartitioning} object given the time partitioning type. Currently, the only - * type supported is {@link Type#DAY}, which will generate one partition per day based on data - * loading time. The partitions will not expire. + * Returns a {@code TimePartitioning} object given the time partitioning type. The partitions will + * not expire. */ public static TimePartitioning of(Type type) { return newBuilder(type).build(); @@ -118,8 +113,7 @@ public static TimePartitioning of(Type type) { * Returns a {@code TimePartitioning} object given the time partitioning type and the partition's * expiration in milliseconds. * - * @param type the time partitioning type. Currently, the only type supported is {@link Type#DAY}, - * which will generate one partition per day based on data loading time. + * @param type the time partitioning type. * @param expirationMs the number of milliseconds for which to keep the storage for a partition */ public static TimePartitioning of(Type type, long expirationMs) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java index 5f061956db9b..10b303f2109e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java @@ -26,12 +26,19 @@ public class TimePartitioningTest { - private static final Type TYPE = Type.DAY; + private static final Type TYPE_DAY = Type.DAY; + private static final Type TYPE_HOUR = Type.HOUR; private static final long EXPIRATION_MS = 42; private static final boolean REQUIRE_PARTITION_FILTER = false; private static final String FIELD = "field"; - private static final TimePartitioning TIME_PARTITIONING = - TimePartitioning.newBuilder(TYPE) + private static final TimePartitioning TIME_PARTITIONING_DAY = + TimePartitioning.newBuilder(TYPE_DAY) + .setExpirationMs(EXPIRATION_MS) + .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) + .setField(FIELD) + .build(); + private static final TimePartitioning TIME_PARTITIONING_HOUR = + TimePartitioning.newBuilder(TYPE_HOUR) .setExpirationMs(EXPIRATION_MS) .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) .setField(FIELD) @@ -39,24 +46,25 @@ public class TimePartitioningTest { @Test public void testOf() { - assertEquals(TYPE, TIME_PARTITIONING.getType()); - assertEquals(EXPIRATION_MS, TIME_PARTITIONING.getExpirationMs().longValue()); - assertEquals(REQUIRE_PARTITION_FILTER, TIME_PARTITIONING.getRequirePartitionFilter()); - assertEquals(FIELD, TIME_PARTITIONING.getField()); - TimePartitioning partitioning = TimePartitioning.of(TYPE); - assertEquals(TYPE, partitioning.getType()); + assertEquals(TYPE_DAY, TIME_PARTITIONING_DAY.getType()); + assertEquals(TYPE_HOUR, TIME_PARTITIONING_HOUR.getType()); + assertEquals(EXPIRATION_MS, TIME_PARTITIONING_DAY.getExpirationMs().longValue()); + assertEquals(REQUIRE_PARTITION_FILTER, TIME_PARTITIONING_DAY.getRequirePartitionFilter()); + assertEquals(FIELD, TIME_PARTITIONING_DAY.getField()); + TimePartitioning partitioning = TimePartitioning.of(TYPE_DAY); + assertEquals(TYPE_DAY, partitioning.getType()); assertNull(partitioning.getExpirationMs()); } @Test public void testBuilder() { - TimePartitioning partitioning = TimePartitioning.newBuilder(TYPE).build(); - assertEquals(TYPE, partitioning.getType()); + TimePartitioning partitioning = TimePartitioning.newBuilder(TYPE_DAY).build(); + assertEquals(TYPE_DAY, partitioning.getType()); assertNull(partitioning.getExpirationMs()); assertNull(partitioning.getRequirePartitionFilter()); assertNull(partitioning.getField()); - partitioning = TimePartitioning.newBuilder(TYPE).setExpirationMs(100L).build(); - assertEquals(TYPE, partitioning.getType()); + partitioning = TimePartitioning.newBuilder(TYPE_DAY).setExpirationMs(100L).build(); + assertEquals(TYPE_DAY, partitioning.getType()); assertEquals(100, (long) partitioning.getExpirationMs()); assertNull(partitioning.getRequirePartitionFilter()); assertNull(partitioning.getField()); @@ -84,8 +92,9 @@ public void testTypeAndExpirationOf_Npe() { @Test public void testToAndFromPb() { - compareTimePartitioning(TIME_PARTITIONING, TimePartitioning.fromPb(TIME_PARTITIONING.toPb())); - TimePartitioning partitioning = TimePartitioning.of(TYPE); + compareTimePartitioning( + TIME_PARTITIONING_DAY, TimePartitioning.fromPb(TIME_PARTITIONING_DAY.toPb())); + TimePartitioning partitioning = TimePartitioning.of(TYPE_DAY); compareTimePartitioning(partitioning, TimePartitioning.fromPb(partitioning.toPb())); } From 8c906deb2bd1814e2c47f3e997811bb7c5634751 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 11 May 2020 19:49:18 -0400 Subject: [PATCH 0485/3441] chore: release 1.114.0 (#337) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9ddba4d77c8..7a7194a95b6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.114.0](https://www.github.com/googleapis/java-bigquery/compare/v1.113.0...v1.114.0) (2020-05-11) + + +### Features + +* add hourly partitioning support ([#336](https://www.github.com/googleapis/java-bigquery/issues/336)) ([90f9980](https://www.github.com/googleapis/java-bigquery/commit/90f998040bbca5882ac3dbcdb4b157f26f48eb01)) + ## [1.113.0](https://www.github.com/googleapis/java-bigquery/compare/v1.112.0...v1.113.0) (2020-05-05) diff --git a/README.md b/README.md index 21d24f525282..0cdecb20bb98 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.113.0' +compile 'com.google.cloud:google-cloud-bigquery:1.114.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.113.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.114.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index df5a03a1587e..a8755210c268 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.113.1-SNAPSHOT + 1.114.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.113.1-SNAPSHOT + 1.114.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1987f266e88e..2b77085ab54d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.113.1-SNAPSHOT + 1.114.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -91,7 +91,7 @@ com.google.cloud google-cloud-bigquery - 1.113.1-SNAPSHOT + 1.114.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d298d82f7b47..509f3a8cbc6b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.113.1-SNAPSHOT + 1.114.0 diff --git a/versions.txt b/versions.txt index 2c6afc921a35..11789c90556d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.113.0:1.113.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.114.0:1.114.0 \ No newline at end of file From 510a80e309f66059dc083840447c553cf3d4749c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 12 May 2020 03:37:48 +0200 Subject: [PATCH 0486/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.114.0 (#339) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8605822f4a72..79bf483706d4 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.113.0 + 1.114.0 From 9e8cd76759e584d743a1d5c310d8cd7299b3a39d Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 12 May 2020 11:07:22 +0530 Subject: [PATCH 0487/3441] feat: add extract model for extractjobconfiguration (#227) * feat: add extract model * feat: modified code --- .../bigquery/ExtractJobConfiguration.java | 89 ++++++++++++++++++- .../bigquery/ExtractJobConfigurationTest.java | 57 ++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 38 ++++++++ 3 files changed, 180 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java index 4dcfdaeaf7d5..29a256e9eb1c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java @@ -38,6 +38,7 @@ public final class ExtractJobConfiguration extends JobConfiguration { private static final long serialVersionUID = 4147749733166593761L; private final TableId sourceTable; + private final ModelId sourceModel; private final List destinationUris; private final Boolean printHeader; private final String fieldDelimiter; @@ -51,6 +52,7 @@ public static final class Builder extends JobConfiguration.Builder { private TableId sourceTable; + private ModelId sourceModel; private List destinationUris; private Boolean printHeader; private String fieldDelimiter; @@ -67,6 +69,7 @@ private Builder() { private Builder(ExtractJobConfiguration jobInfo) { this(); this.sourceTable = jobInfo.sourceTable; + this.sourceModel = jobInfo.sourceModel; this.destinationUris = jobInfo.destinationUris; this.printHeader = jobInfo.printHeader; this.fieldDelimiter = jobInfo.fieldDelimiter; @@ -80,7 +83,12 @@ private Builder(ExtractJobConfiguration jobInfo) { private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { this(); JobConfigurationExtract extractConfigurationPb = configurationPb.getExtract(); - this.sourceTable = TableId.fromPb(extractConfigurationPb.getSourceTable()); + if (extractConfigurationPb.getSourceTable() != null) { + this.sourceTable = TableId.fromPb(extractConfigurationPb.getSourceTable()); + } + if (extractConfigurationPb.getSourceModel() != null) { + this.sourceModel = ModelId.fromPb(extractConfigurationPb.getSourceModel()); + } this.destinationUris = extractConfigurationPb.getDestinationUris(); this.printHeader = extractConfigurationPb.getPrintHeader(); this.fieldDelimiter = extractConfigurationPb.getFieldDelimiter(); @@ -101,6 +109,12 @@ public Builder setSourceTable(TableId sourceTable) { return this; } + /** Sets the model to export. */ + public Builder setSourceModel(ModelId sourceModel) { + this.sourceModel = sourceModel; + return this; + } + /** * Sets the list of fully-qualified Google Cloud Storage URIs (e.g. gs://bucket/path) where the * extracted table should be written. @@ -191,7 +205,8 @@ public ExtractJobConfiguration build() { private ExtractJobConfiguration(Builder builder) { super(builder); - this.sourceTable = checkNotNull(builder.sourceTable); + this.sourceTable = builder.sourceTable; + this.sourceModel = builder.sourceModel; this.destinationUris = checkNotNull(builder.destinationUris); this.printHeader = builder.printHeader; this.fieldDelimiter = builder.fieldDelimiter; @@ -207,6 +222,11 @@ public TableId getSourceTable() { return sourceTable; } + /** Returns the model to export. */ + public ModelId getSourceModel() { + return sourceModel; + } + /** * Returns the list of fully-qualified Google Cloud Storage URIs where the extracted table should * be written. @@ -263,6 +283,7 @@ public Builder toBuilder() { ToStringHelper toStringHelper() { return super.toStringHelper() .add("sourceTable", sourceTable) + .add("sourceModel", sourceModel) .add("destinationUris", destinationUris) .add("format", format) .add("printHeader", printHeader) @@ -284,6 +305,7 @@ public int hashCode() { return Objects.hash( baseHashCode(), sourceTable, + sourceModel, destinationUris, printHeader, fieldDelimiter, @@ -296,9 +318,12 @@ public int hashCode() { @Override ExtractJobConfiguration setProjectId(String projectId) { - if (Strings.isNullOrEmpty(getSourceTable().getProject())) { + if (getSourceTable() != null && Strings.isNullOrEmpty(getSourceTable().getProject())) { return toBuilder().setSourceTable(getSourceTable().setProjectId(projectId)).build(); } + if (getSourceModel() != null && Strings.isNullOrEmpty(getSourceModel().getProject())) { + return toBuilder().setSourceModel(getSourceModel().setProjectId(projectId)).build(); + } return this; } @@ -308,7 +333,12 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { com.google.api.services.bigquery.model.JobConfiguration jobConfiguration = new com.google.api.services.bigquery.model.JobConfiguration(); extractConfigurationPb.setDestinationUris(destinationUris); - extractConfigurationPb.setSourceTable(sourceTable.toPb()); + if (sourceTable != null) { + extractConfigurationPb.setSourceTable(sourceTable.toPb()); + } + if (sourceModel != null) { + extractConfigurationPb.setSourceModel(sourceModel.toPb()); + } extractConfigurationPb.setPrintHeader(printHeader); extractConfigurationPb.setFieldDelimiter(fieldDelimiter); extractConfigurationPb.setDestinationFormat(format); @@ -333,6 +363,15 @@ public static Builder newBuilder(TableId sourceTable, String destinationUri) { return newBuilder(sourceTable, ImmutableList.of(destinationUri)); } + /** + * Creates a builder for a BigQuery Extract Job configuration given source model and destination + * URI. + */ + public static Builder newBuilder(ModelId sourceModel, String destinationUri) { + checkArgument(!isNullOrEmpty(destinationUri), "Provided destinationUri is null or empty"); + return newBuilder(sourceModel, ImmutableList.of(destinationUri)); + } + /** * Creates a builder for a BigQuery Extract Job configuration given source table and destination * URIs. @@ -341,6 +380,14 @@ public static Builder newBuilder(TableId sourceTable, List destinationUr return new Builder().setSourceTable(sourceTable).setDestinationUris(destinationUris); } + /** + * Creates a builder for a BigQuery Extract Job configuration given source model and destination + * URIs. + */ + public static Builder newBuilder(ModelId sourceModel, List destinationUris) { + return new Builder().setSourceModel(sourceModel).setDestinationUris(destinationUris); + } + /** * Returns a BigQuery Extract Job configuration for the given source table and destination URI. */ @@ -348,6 +395,13 @@ public static ExtractJobConfiguration of(TableId sourceTable, String destination return newBuilder(sourceTable, destinationUri).build(); } + /** + * Returns a BigQuery Extract Job configuration for the given source model and destination URI. + */ + public static ExtractJobConfiguration of(ModelId sourceModel, String destinationUri) { + return newBuilder(sourceModel, destinationUri).build(); + } + /** * Returns a BigQuery Extract Job configuration for the given source table and destination URIs. */ @@ -355,6 +409,13 @@ public static ExtractJobConfiguration of(TableId sourceTable, List desti return newBuilder(sourceTable, destinationUris).build(); } + /** + * Returns a BigQuery Extract Job configuration for the given source model and destination URIs. + */ + public static ExtractJobConfiguration of(ModelId sourceModel, List destinationUris) { + return newBuilder(sourceModel, destinationUris).build(); + } + /** * Returns a BigQuery Extract Job configuration for the given source table, format and destination * URI. @@ -365,6 +426,16 @@ public static ExtractJobConfiguration of( return newBuilder(sourceTable, destinationUri).setFormat(format).build(); } + /** + * Returns a BigQuery Extract Job configuration for the given source model, format and destination + * URI. + */ + public static ExtractJobConfiguration of( + ModelId sourceTable, String destinationUri, String format) { + checkArgument(!isNullOrEmpty(format), "Provided format is null or empty"); + return newBuilder(sourceTable, destinationUri).setFormat(format).build(); + } + /** * Returns a BigQuery Extract Job configuration for the given source table, format and destination * URIs. @@ -375,6 +446,16 @@ public static ExtractJobConfiguration of( return newBuilder(sourceTable, destinationUris).setFormat(format).build(); } + /** + * Returns a BigQuery Extract Job configuration for the given source table, format and destination + * URIs. + */ + public static ExtractJobConfiguration of( + ModelId sourceModel, List destinationUris, String format) { + checkArgument(!isNullOrEmpty(format), "Provided format is null or empty"); + return newBuilder(sourceModel, destinationUris).setFormat(format).build(); + } + @SuppressWarnings("unchecked") static ExtractJobConfiguration fromPb( com.google.api.services.bigquery.model.JobConfiguration confPb) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java index 648fa58a4d82..95142a068081 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java @@ -32,6 +32,7 @@ public class ExtractJobConfigurationTest { private static final List DESTINATION_URIS = ImmutableList.of("uri1", "uri2"); private static final String DESTINATION_URI = "uri1"; private static final TableId TABLE_ID = TableId.of("dataset", "table"); + private static final ModelId MODEL_ID = ModelId.of("dataset", "model"); private static final String FIELD_DELIMITER = ","; private static final String FORMAT = "CSV"; private static final String AVRO_FORMAT = "AVRO"; @@ -70,6 +71,16 @@ public class ExtractJobConfigurationTest { .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) .build(); + private static final ExtractJobConfiguration EXTRACT_CONFIGURATION_MODEL = + ExtractJobConfiguration.newBuilder(MODEL_ID, DESTINATION_URIS) + .setPrintHeader(PRINT_HEADER) + .setFieldDelimiter(FIELD_DELIMITER) + .setCompression(COMPRESSION) + .setFormat(FORMAT) + .setUseAvroLogicalTypes(USEAVROLOGICALTYPES) + .setLabels(LABELS) + .setJobTimeoutMs(TIMEOUT) + .build(); @Test public void testToBuilder() { @@ -78,6 +89,14 @@ public void testToBuilder() { ExtractJobConfiguration job = EXTRACT_CONFIGURATION.toBuilder().setSourceTable(TableId.of("dataset", "newTable")).build(); assertEquals("newTable", job.getSourceTable().getTable()); + compareExtractJobConfiguration( + EXTRACT_CONFIGURATION_MODEL, EXTRACT_CONFIGURATION_MODEL.toBuilder().build()); + ExtractJobConfiguration modelJob = + EXTRACT_CONFIGURATION_MODEL + .toBuilder() + .setSourceModel(ModelId.of("dataset", "newModel")) + .build(); + assertEquals("newModel", modelJob.getSourceModel().getModel()); job = job.toBuilder().setSourceTable(TABLE_ID).build(); compareExtractJobConfiguration(EXTRACT_CONFIGURATION, job); compareExtractJobConfiguration( @@ -108,12 +127,28 @@ public void testOf() { assertEquals(TABLE_ID, job.getSourceTable()); assertEquals(ImmutableList.of(DESTINATION_URI), job.getDestinationUris()); assertEquals(JSON_FORMAT, job.getFormat()); + ExtractJobConfiguration modelJob = ExtractJobConfiguration.of(MODEL_ID, DESTINATION_URIS); + assertEquals(MODEL_ID, modelJob.getSourceModel()); + assertEquals(DESTINATION_URIS, modelJob.getDestinationUris()); + modelJob = ExtractJobConfiguration.of(MODEL_ID, DESTINATION_URI); + assertEquals(MODEL_ID, modelJob.getSourceModel()); + assertEquals(ImmutableList.of(DESTINATION_URI), modelJob.getDestinationUris()); + modelJob = ExtractJobConfiguration.of(MODEL_ID, DESTINATION_URIS, JSON_FORMAT); + assertEquals(MODEL_ID, modelJob.getSourceModel()); + assertEquals(DESTINATION_URIS, modelJob.getDestinationUris()); + assertEquals(JSON_FORMAT, modelJob.getFormat()); + modelJob = ExtractJobConfiguration.of(MODEL_ID, DESTINATION_URI, JSON_FORMAT); + assertEquals(MODEL_ID, modelJob.getSourceModel()); + assertEquals(ImmutableList.of(DESTINATION_URI), modelJob.getDestinationUris()); + assertEquals(JSON_FORMAT, modelJob.getFormat()); } @Test public void testToBuilderIncomplete() { ExtractJobConfiguration job = ExtractJobConfiguration.of(TABLE_ID, DESTINATION_URIS); compareExtractJobConfiguration(job, job.toBuilder().build()); + ExtractJobConfiguration modelJob = ExtractJobConfiguration.of(MODEL_ID, DESTINATION_URIS); + compareExtractJobConfiguration(modelJob, modelJob.toBuilder().build()); } @Test @@ -144,6 +179,14 @@ public void testBuilder() { assertEquals(USEAVROLOGICALTYPES, EXTRACT_CONFIGURATION_AVRO.getUseAvroLogicalTypes()); assertEquals(LABELS, EXTRACT_CONFIGURATION_AVRO.getLabels()); assertEquals(TIMEOUT, EXTRACT_CONFIGURATION_AVRO.getJobTimeoutMs()); + assertEquals(MODEL_ID, EXTRACT_CONFIGURATION_MODEL.getSourceModel()); + assertEquals(DESTINATION_URIS, EXTRACT_CONFIGURATION_MODEL.getDestinationUris()); + assertEquals(FIELD_DELIMITER, EXTRACT_CONFIGURATION_MODEL.getFieldDelimiter()); + assertEquals(COMPRESSION, EXTRACT_CONFIGURATION_MODEL.getCompression()); + assertEquals(PRINT_HEADER, EXTRACT_CONFIGURATION_MODEL.printHeader()); + assertEquals(FORMAT, EXTRACT_CONFIGURATION_MODEL.getFormat()); + assertEquals(LABELS, EXTRACT_CONFIGURATION_MODEL.getLabels()); + assertEquals(TIMEOUT, EXTRACT_CONFIGURATION_MODEL.getJobTimeoutMs()); } @Test @@ -164,12 +207,17 @@ public void testToPbAndFromPb() { ExtractJobConfiguration.fromPb(EXTRACT_CONFIGURATION_AVRO.toPb())); ExtractJobConfiguration job = ExtractJobConfiguration.of(TABLE_ID, DESTINATION_URIS); compareExtractJobConfiguration(job, ExtractJobConfiguration.fromPb(job.toPb())); + ExtractJobConfiguration modelJob = ExtractJobConfiguration.of(MODEL_ID, DESTINATION_URIS); + compareExtractJobConfiguration(modelJob, ExtractJobConfiguration.fromPb(modelJob.toPb())); } @Test public void testSetProjectId() { ExtractJobConfiguration configuration = EXTRACT_CONFIGURATION.setProjectId(TEST_PROJECT_ID); assertEquals(TEST_PROJECT_ID, configuration.getSourceTable().getProject()); + ExtractJobConfiguration modelConfiguration = + EXTRACT_CONFIGURATION_MODEL.setProjectId(TEST_PROJECT_ID); + assertEquals(TEST_PROJECT_ID, modelConfiguration.getSourceModel().getProject()); } @Test @@ -181,6 +229,13 @@ public void testSetProjectIdDoNotOverride() { .build() .setProjectId("do-not-update"); assertEquals(TEST_PROJECT_ID, configuration.getSourceTable().getProject()); + ExtractJobConfiguration modelConfiguration = + EXTRACT_CONFIGURATION_MODEL + .toBuilder() + .setSourceModel(MODEL_ID.setProjectId(TEST_PROJECT_ID)) + .build() + .setProjectId("do-not-update"); + assertEquals(TEST_PROJECT_ID, modelConfiguration.getSourceModel().getProject()); } @Test @@ -188,6 +243,7 @@ public void testGetType() { assertEquals(JobConfiguration.Type.EXTRACT, EXTRACT_CONFIGURATION.getType()); assertEquals(JobConfiguration.Type.EXTRACT, EXTRACT_CONFIGURATION_ONE_URI.getType()); assertEquals(JobConfiguration.Type.EXTRACT, EXTRACT_CONFIGURATION_AVRO.getType()); + assertEquals(JobConfiguration.Type.EXTRACT, EXTRACT_CONFIGURATION_MODEL.getType()); } private void compareExtractJobConfiguration( @@ -196,6 +252,7 @@ private void compareExtractJobConfiguration( assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.toString(), value.toString()); assertEquals(expected.getSourceTable(), value.getSourceTable()); + assertEquals(expected.getSourceModel(), value.getSourceModel()); assertEquals(expected.getDestinationUris(), value.getDestinationUris()); assertEquals(expected.getCompression(), value.getCompression()); assertEquals(expected.printHeader(), value.printHeader()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 165122d99d35..9e334c8a83ec 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -254,6 +254,7 @@ public class ITBigQueryTest { private static final String LOAD_FILE = "load.csv"; private static final String JSON_LOAD_FILE = "load.json"; private static final String EXTRACT_FILE = "extract.csv"; + private static final String EXTRACT_MODEL_FILE = "extract_model.csv"; private static final String BUCKET = RemoteStorageHelper.generateBucketName(); private static final TableId TABLE_ID = TableId.of(DATASET, "testing_table"); private static final String CSV_CONTENT = "StringValue1\nStringValue2\n"; @@ -1945,6 +1946,43 @@ public void testExtractJob() throws InterruptedException, TimeoutException { assertTrue(bigquery.delete(destinationTable)); } + @Test + public void testExtractJobWithModel() throws InterruptedException { + String modelName = RemoteBigQueryHelper.generateModelName(); + String sql = + "CREATE MODEL `" + + MODEL_DATASET + + "." + + modelName + + "`" + + "OPTIONS ( " + + "model_type='linear_reg', " + + "max_iteration=1, " + + "learn_rate=0.4, " + + "learn_rate_strategy='constant' " + + ") AS ( " + + " SELECT 'a' AS f1, 2.0 AS label " + + "UNION ALL " + + "SELECT 'b' AS f1, 3.8 AS label " + + ")"; + + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(sql).build(); + Job job = bigquery.create(JobInfo.of(JobId.of(), config)); + job.waitFor(); + assertNull(job.getStatus().getError()); + ModelId destinationModel = ModelId.of(MODEL_DATASET, modelName); + assertNotNull(destinationModel); + ExtractJobConfiguration extractConfiguration = + ExtractJobConfiguration.newBuilder( + destinationModel, "gs://" + BUCKET + "/" + EXTRACT_MODEL_FILE) + .setPrintHeader(false) + .build(); + Job remoteExtractJob = bigquery.create(JobInfo.of(extractConfiguration)); + remoteExtractJob = remoteExtractJob.waitFor(); + assertNull(remoteExtractJob.getStatus().getError()); + assertTrue(bigquery.delete(destinationModel)); + } + @Test public void testExtractJobWithLabels() throws InterruptedException, TimeoutException { String tableName = "test_export_job_table_label"; From 9d347bb4812f8189876de0d11dd094538cccd2a5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 12 May 2020 11:05:32 -0400 Subject: [PATCH 0488/3441] chore: release 1.114.1-SNAPSHOT (#340) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a8755210c268..74d4935789ce 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.114.0 + 1.114.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.114.0 + 1.114.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2b77085ab54d..8d8aec122c49 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.114.0 + 1.114.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -91,7 +91,7 @@ com.google.cloud google-cloud-bigquery - 1.114.0 + 1.114.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 509f3a8cbc6b..14382e831064 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.114.0 + 1.114.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 11789c90556d..619356806dae 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.114.0:1.114.0 \ No newline at end of file +google-cloud-bigquery:1.114.0:1.114.1-SNAPSHOT \ No newline at end of file From d41369fa2a4f55ba5407799bf1d19b5f96d9620a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 12 May 2020 08:12:59 -0700 Subject: [PATCH 0489/3441] [CHANGE ME] Re-generated to pick up changes from self. autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0cdecb20bb98..d371e879384b 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.113.0 + 1.114.0 ``` diff --git a/synth.metadata b/synth.metadata index ce21ea69f9d0..50fb70f79d0f 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "efded52380dfcc7d6bf9372e29f5ae6b343a5feb" + "sha": "9e8cd76759e584d743a1d5c310d8cd7299b3a39d" } }, { From ec2382dd5747f2582b0aec9ab4824bc7c6ada951 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 12 May 2020 13:38:03 -0400 Subject: [PATCH 0490/3441] ci: enable Github actions - no conflict (#344) * ci: enable Github actions - no conflict * revert bad sha change --- .github/workflows/ci.yaml | 76 +++++++++++++++++++++++++++++++++++++++ .kokoro/build.bat | 2 +- synth.metadata | 2 +- 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 000000000000..445b4bf82ffd --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,76 @@ +on: + push: + branches: + - master + pull_request: +name: ci +jobs: + units: + runs-on: ubuntu-latest + strategy: + matrix: + java: [7, 8, 11] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 + with: + java-version: ${{matrix.java}} + - run: java -version + - run: .kokoro/build.sh + env: + JOB_TYPE: test + - name: coverage + uses: codecov/codecov-action@v1 + with: + name: actions ${{matrix.java}} + windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 + with: + java-version: 8 + - run: java -version + - run: .kokoro/build.bat + env: + JOB_TYPE: test + dependencies: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 + with: + java-version: 8 + - run: java -version + - run: .kokoro/dependencies.sh + linkage-monitor: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 + with: + java-version: 8 + - run: java -version + - run: .kokoro/linkage-monitor.sh + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 + with: + java-version: 8 + - run: java -version + - run: .kokoro/build.sh + env: + JOB_TYPE: lint + clirr: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 + with: + java-version: 8 + - run: java -version + - run: .kokoro/build.sh + env: + JOB_TYPE: clirr \ No newline at end of file diff --git a/.kokoro/build.bat b/.kokoro/build.bat index 98f47d5ad50f..05826ad93fe8 100644 --- a/.kokoro/build.bat +++ b/.kokoro/build.bat @@ -1,3 +1,3 @@ :: See documentation in type-shell-output.bat -"C:\Program Files\Git\bin\bash.exe" github/java-bigquery/.kokoro/build.sh +"C:\Program Files\Git\bin\bash.exe" %~dp0build.sh diff --git a/synth.metadata b/synth.metadata index 50fb70f79d0f..8f1fda25fc01 100644 --- a/synth.metadata +++ b/synth.metadata @@ -11,7 +11,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "716f741f2d307b48cbe8a5bc3bc883571212344a" + "sha": "98c50772ec23295c64cf0d2ddf199ea52961fd4c" } } ] From cf276d02fe4006dc8b8e7fa3f6d062587bf626fa Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 13 May 2020 11:44:34 +0200 Subject: [PATCH 0491/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200429-1.30.9 (#349) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8d8aec122c49..85978a2ac3e3 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent 1.93.4 1.3.2 - v2-rev20200415-1.30.9 + v2-rev20200429-1.30.9 1.7.1 ${auto-value.version} From df0c3e6767890e1b1cc164a6d06ce4fabc8edd7a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 13 May 2020 08:20:10 -0700 Subject: [PATCH 0492/3441] docs: update CONTRIBUTING.md to include code formatting (#534) (#346) Co-authored-by: Jeff Ching Co-authored-by: Jeffrey Rennie Source-Author: Brian Chen Source-Date: Tue May 12 10:24:59 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 5b48b0716a36ca069db3038da7e205c87a22ed19 Source-Link: https://github.com/googleapis/synthtool/commit/5b48b0716a36ca069db3038da7e205c87a22ed19 --- CONTRIBUTING.md | 11 ++++++++++- synth.metadata | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 085021ddec26..f2dbdee06bc3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -99,7 +99,16 @@ mvn -Penable-samples clean verify ``` 2. [Activate](#profile-activation) the profile. -3. Define your samples in a normal Maven project in the `samples/` directory +3. Define your samples in a normal Maven project in the `samples/` directory. + +### Code Formatting + +Code in this repo is formatted with +[google-java-format](https://github.com/google/google-java-format). +To run formatting on your project, you can run: +``` +mvn com.coveo:fmt-maven-plugin:format +``` ### Profile Activation diff --git a/synth.metadata b/synth.metadata index 8f1fda25fc01..fc58861befb3 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "9e8cd76759e584d743a1d5c310d8cd7299b3a39d" + "sha": "ec2382dd5747f2582b0aec9ab4824bc7c6ada951" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "98c50772ec23295c64cf0d2ddf199ea52961fd4c" + "sha": "5b48b0716a36ca069db3038da7e205c87a22ed19" } } ] From 7dbd0df6e46a0760c28925ea65eed9c306c22f21 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 13 May 2020 20:51:32 +0530 Subject: [PATCH 0493/3441] feat: add labels for writechannelconfiguration (#347) --- .../bigquery/WriteChannelConfiguration.java | 32 ++++++++++++++--- .../WriteChannelConfigurationTest.java | 7 ++++ .../cloud/bigquery/it/ITBigQueryTest.java | 34 +++++++++++++++++++ 3 files changed, 69 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java index b99f718794ce..479a6809996c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java @@ -28,6 +28,7 @@ import com.google.common.primitives.Ints; import java.io.Serializable; import java.util.List; +import java.util.Map; import java.util.Objects; /** @@ -53,6 +54,7 @@ public final class WriteChannelConfiguration implements LoadConfiguration, Seria private final TimePartitioning timePartitioning; private final Clustering clustering; private final Boolean useAvroLogicalTypes; + private final Map labels; public static final class Builder implements LoadConfiguration.Builder { @@ -70,6 +72,7 @@ public static final class Builder implements LoadConfiguration.Builder { private TimePartitioning timePartitioning; private Clustering clustering; private Boolean useAvroLogicalTypes; + private Map labels; private Builder() {} @@ -89,6 +92,7 @@ private Builder(WriteChannelConfiguration writeChannelConfiguration) { this.timePartitioning = writeChannelConfiguration.timePartitioning; this.clustering = writeChannelConfiguration.clustering; this.useAvroLogicalTypes = writeChannelConfiguration.useAvroLogicalTypes; + this.labels = writeChannelConfiguration.labels; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -162,6 +166,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this.clustering = Clustering.fromPb(loadConfigurationPb.getClustering()); } this.useAvroLogicalTypes = loadConfigurationPb.getUseAvroLogicalTypes(); + if (configurationPb.getLabels() != null) { + this.labels = configurationPb.getLabels(); + } } @Override @@ -250,6 +257,11 @@ public Builder setUseAvroLogicalTypes(Boolean useAvroLogicalTypes) { return this; } + public Builder setLabels(Map labels) { + this.labels = labels; + return this; + } + @Override public WriteChannelConfiguration build() { return new WriteChannelConfiguration(this); @@ -271,6 +283,7 @@ protected WriteChannelConfiguration(Builder builder) { this.timePartitioning = builder.timePartitioning; this.clustering = builder.clustering; this.useAvroLogicalTypes = builder.useAvroLogicalTypes; + this.labels = builder.labels; } @Override @@ -355,6 +368,10 @@ public Boolean getUseAvroLogicalTypes() { return useAvroLogicalTypes; } + public Map getLabels() { + return labels; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -375,7 +392,8 @@ MoreObjects.ToStringHelper toStringHelper() { .add("autodetect", autodetect) .add("timePartitioning", timePartitioning) .add("clustering", clustering) - .add("useAvroLogicalTypes", useAvroLogicalTypes); + .add("useAvroLogicalTypes", useAvroLogicalTypes) + .add("labels", labels); } @Override @@ -405,7 +423,8 @@ public int hashCode() { autodetect, timePartitioning, clustering, - useAvroLogicalTypes); + useAvroLogicalTypes, + labels); } WriteChannelConfiguration setProjectId(String projectId) { @@ -416,6 +435,8 @@ WriteChannelConfiguration setProjectId(String projectId) { } com.google.api.services.bigquery.model.JobConfiguration toPb() { + com.google.api.services.bigquery.model.JobConfiguration jobConfiguration = + new com.google.api.services.bigquery.model.JobConfiguration(); JobConfigurationLoad loadConfigurationPb = new JobConfigurationLoad(); loadConfigurationPb.setDestinationTable(destinationTable.toPb()); if (createDisposition != null) { @@ -471,8 +492,11 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { loadConfigurationPb.setClustering(clustering.toPb()); } loadConfigurationPb.setUseAvroLogicalTypes(useAvroLogicalTypes); - return new com.google.api.services.bigquery.model.JobConfiguration() - .setLoad(loadConfigurationPb); + if (labels != null) { + jobConfiguration.setLabels(labels); + } + jobConfiguration.setLoad(loadConfigurationPb); + return jobConfiguration; } static WriteChannelConfiguration fromPb( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java index d78d3995a97f..dbee1094b64a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java @@ -23,8 +23,10 @@ import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.cloud.bigquery.TimePartitioning.Type; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import java.nio.charset.StandardCharsets; import java.util.List; +import java.util.Map; import org.junit.Test; public class WriteChannelConfigurationTest { @@ -55,6 +57,8 @@ public class WriteChannelConfigurationTest { private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY); private static final Clustering CLUSTERING = Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); + private static final Map LABELS = + ImmutableMap.of("test-job-name", "test-write-channel"); private static final WriteChannelConfiguration LOAD_CONFIGURATION_CSV = WriteChannelConfiguration.newBuilder(TABLE_ID) .setCreateDisposition(CREATE_DISPOSITION) @@ -68,6 +72,7 @@ public class WriteChannelConfigurationTest { .setAutodetect(AUTODETECT) .setTimePartitioning(TIME_PARTITIONING) .setClustering(CLUSTERING) + .setLabels(LABELS) .build(); private static final DatastoreBackupOptions BACKUP_OPTIONS = @@ -151,6 +156,7 @@ public void testBuilder() { assertEquals(IGNORE_UNKNOWN_VALUES, LOAD_CONFIGURATION_CSV.ignoreUnknownValues()); assertEquals(MAX_BAD_RECORDS, LOAD_CONFIGURATION_CSV.getMaxBadRecords()); assertEquals(TABLE_SCHEMA, LOAD_CONFIGURATION_CSV.getSchema()); + assertEquals(LABELS, LOAD_CONFIGURATION_CSV.getLabels()); assertEquals(BACKUP_OPTIONS, LOAD_CONFIGURATION_BACKUP.getDatastoreBackupOptions()); assertEquals(SCHEMA_UPDATE_OPTIONS, LOAD_CONFIGURATION_CSV.getSchemaUpdateOptions()); assertEquals(SCHEMA_UPDATE_OPTIONS, LOAD_CONFIGURATION_BACKUP.getSchemaUpdateOptions()); @@ -218,5 +224,6 @@ private void compareLoadConfiguration( assertEquals(expected.getTimePartitioning(), value.getTimePartitioning()); assertEquals(expected.getClustering(), value.getClustering()); assertEquals(expected.getUseAvroLogicalTypes(), value.getUseAvroLogicalTypes()); + assertEquals(expected.getLabels(), value.getLabels()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 9e334c8a83ec..cd69d8afd01b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2105,6 +2105,40 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo assertTrue(bigquery.delete(tableId)); } + @Test + public void testInsertFromFileWithLabels() + throws InterruptedException, IOException, TimeoutException { + String destinationTableName = "test_insert_from_file_table_with_labels"; + TableId tableId = TableId.of(DATASET, destinationTableName); + WriteChannelConfiguration configuration = + WriteChannelConfiguration.newBuilder(tableId) + .setFormatOptions(FormatOptions.json()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(TABLE_SCHEMA) + .setLabels(LABELS) + .build(); + TableDataWriteChannel channel = bigquery.writer(configuration); + try { + // A zero byte write should not throw an exception. + assertEquals(0, channel.write(ByteBuffer.wrap("".getBytes(StandardCharsets.UTF_8)))); + } finally { + // Force the channel to flush by calling `close`. + channel.close(); + } + channel = bigquery.writer(configuration); + try { + channel.write(ByteBuffer.wrap(JSON_CONTENT.getBytes(StandardCharsets.UTF_8))); + } finally { + channel.close(); + } + Job job = channel.getJob().waitFor(); + LoadJobConfiguration jobConfiguration = job.getConfiguration(); + assertEquals(TABLE_SCHEMA, jobConfiguration.getSchema()); + assertEquals(LABELS, jobConfiguration.getLabels()); + assertNull(job.getStatus().getError()); + assertTrue(bigquery.delete(tableId)); + } + @Test public void testLocation() throws Exception { String location = "EU"; From 002d863c88916f196685f06d16822f6824a7eb84 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 13 May 2020 21:30:33 +0200 Subject: [PATCH 0494/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.3.1 (#351) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 85978a2ac3e3..06c4c8119b30 100644 --- a/pom.xml +++ b/pom.xml @@ -77,7 +77,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.3.0 + 0.3.1 pom import From a6ae45f11a5fca33d066d08b0975e0b9c1c4fca9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 13 May 2020 21:30:59 +0200 Subject: [PATCH 0495/3441] deps: update dependency com.google.auto.value:auto-value to v1.7.2 (#350) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 06c4c8119b30..b289accba956 100644 --- a/pom.xml +++ b/pom.xml @@ -67,7 +67,7 @@ 1.3.2 v2-rev20200429-1.30.9 - 1.7.1 + 1.7.2 ${auto-value.version} 1.0-rc6 From f66c08200c1b7847bfe8b5036ae3c89f4ed9aefa Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 13 May 2020 21:31:30 +0200 Subject: [PATCH 0496/3441] deps: update dependency com.google.auto.service:auto-service-annotations to v1.0-rc7 (#352) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b289accba956..482aef0dddfc 100644 --- a/pom.xml +++ b/pom.xml @@ -69,7 +69,7 @@ 1.7.2 ${auto-value.version} - 1.0-rc6 + 1.0-rc7 From 5b901a7c95d0c8a13934d07e7dbc642b00339714 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 14 May 2020 13:18:11 -0400 Subject: [PATCH 0497/3441] chore: release 1.115.0 (#342) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 21 +++++++++++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 29 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a7194a95b6b..4343a671d23b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,26 @@ # Changelog +## [1.115.0](https://www.github.com/googleapis/java-bigquery/compare/v1.114.0...v1.115.0) (2020-05-13) + + +### Features + +* add extract model for extractjobconfiguration ([#227](https://www.github.com/googleapis/java-bigquery/issues/227)) ([9e8cd76](https://www.github.com/googleapis/java-bigquery/commit/9e8cd76759e584d743a1d5c310d8cd7299b3a39d)) +* add labels for writechannelconfiguration ([#347](https://www.github.com/googleapis/java-bigquery/issues/347)) ([7dbd0df](https://www.github.com/googleapis/java-bigquery/commit/7dbd0df6e46a0760c28925ea65eed9c306c22f21)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200429-1.30.9 ([#349](https://www.github.com/googleapis/java-bigquery/issues/349)) ([cf276d0](https://www.github.com/googleapis/java-bigquery/commit/cf276d02fe4006dc8b8e7fa3f6d062587bf626fa)) +* update dependency com.google.auto.service:auto-service-annotations to v1.0-rc7 ([#352](https://www.github.com/googleapis/java-bigquery/issues/352)) ([f66c082](https://www.github.com/googleapis/java-bigquery/commit/f66c08200c1b7847bfe8b5036ae3c89f4ed9aefa)) +* update dependency com.google.auto.value:auto-value to v1.7.2 ([#350](https://www.github.com/googleapis/java-bigquery/issues/350)) ([a6ae45f](https://www.github.com/googleapis/java-bigquery/commit/a6ae45f11a5fca33d066d08b0975e0b9c1c4fca9)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.3.1 ([#351](https://www.github.com/googleapis/java-bigquery/issues/351)) ([002d863](https://www.github.com/googleapis/java-bigquery/commit/002d863c88916f196685f06d16822f6824a7eb84)) + + +### Documentation + +* update CONTRIBUTING.md to include code formatting ([#534](https://www.github.com/googleapis/java-bigquery/issues/534)) ([#346](https://www.github.com/googleapis/java-bigquery/issues/346)) ([df0c3e6](https://www.github.com/googleapis/java-bigquery/commit/df0c3e6767890e1b1cc164a6d06ce4fabc8edd7a)) + ## [1.114.0](https://www.github.com/googleapis/java-bigquery/compare/v1.113.0...v1.114.0) (2020-05-11) diff --git a/README.md b/README.md index d371e879384b..3367b3ee109b 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.114.0' +compile 'com.google.cloud:google-cloud-bigquery:1.115.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.114.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.115.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 74d4935789ce..e143dc048dc7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.114.1-SNAPSHOT + 1.115.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.114.1-SNAPSHOT + 1.115.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 482aef0dddfc..2a966bfa80a8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.114.1-SNAPSHOT + 1.115.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -91,7 +91,7 @@ com.google.cloud google-cloud-bigquery - 1.114.1-SNAPSHOT + 1.115.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 14382e831064..748b9199f421 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.114.1-SNAPSHOT + 1.115.0 diff --git a/versions.txt b/versions.txt index 619356806dae..396fa318aee0 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.114.0:1.114.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.115.0:1.115.0 \ No newline at end of file From ca9741591142dda6a9782e678ae7416fba4cbab8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 14 May 2020 20:42:52 +0200 Subject: [PATCH 0498/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.115.0 (#353) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 79bf483706d4..97964abe579f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.114.0 + 1.115.0 From 91213204d784e1a60d0552511933c71083cdb61a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 14 May 2020 15:45:15 -0400 Subject: [PATCH 0499/3441] chore: release 1.115.1-SNAPSHOT (#354) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e143dc048dc7..ee4ac1ad46c3 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.115.0 + 1.115.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.115.0 + 1.115.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2a966bfa80a8..845f02065515 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.115.0 + 1.115.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -91,7 +91,7 @@ com.google.cloud google-cloud-bigquery - 1.115.0 + 1.115.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 748b9199f421..4c90b1576c97 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.115.0 + 1.115.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 396fa318aee0..2c900ad0e0ec 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.115.0:1.115.0 \ No newline at end of file +google-cloud-bigquery:1.115.0:1.115.1-SNAPSHOT \ No newline at end of file From ef6166e6235746c10151ac4e6ab54a04a8b4b92f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 15 May 2020 09:21:33 -0700 Subject: [PATCH 0500/3441] changes without context (#355) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3367b3ee109b..4d9e26597e1f 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.114.0 + 1.115.0 ``` diff --git a/synth.metadata b/synth.metadata index fc58861befb3..d2c71635f557 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "ec2382dd5747f2582b0aec9ab4824bc7c6ada951" + "sha": "91213204d784e1a60d0552511933c71083cdb61a" } }, { From f327bbd6efde90ea87b283ac0169ed87590f8433 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 18 May 2020 21:35:41 +0200 Subject: [PATCH 0501/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v5.4.0 (#359) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a022259b12ec..8c070dfb0f89 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 5.3.0 + 5.4.0 pom import From 96d2c87bf087f980106f57ffaac0933274c84b96 Mon Sep 17 00:00:00 2001 From: Emily Darrow <47046797+ejdarrow@users.noreply.github.com> Date: Mon, 18 May 2020 16:15:08 -0400 Subject: [PATCH 0502/3441] docs(samples): Added UpdateTableDescription example. (#360) --- .../bigquery/UpdateTableDescription.java | 50 ++++++++++++ .../bigquery/UpdateTableDescriptionIT.java | 77 +++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java new file mode 100644 index 000000000000..c52df00c61bb --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java @@ -0,0 +1,50 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_table_description] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Table; + +public class UpdateTableDescription { + + public static void runUpdateTableDescription() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String newDescription = "this is the new table description"; + updateTableDescription(datasetName, tableName, newDescription); + } + + public static void updateTableDescription(String datasetName, String tableName, + String newDescription) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Table table = bigquery.getTable(datasetName, tableName); + bigquery.update(table.toBuilder().setDescription(newDescription).build()); + System.out.println("Table description updated successfully to " + newDescription); + } catch (BigQueryException e) { + System.out.println("Table description was not updated \n" + e.toString()); + } + } +} +// [END bigquery_update_table_description] diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java new file mode 100644 index 000000000000..ad71373a38b4 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java @@ -0,0 +1,77 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class UpdateTableDescriptionIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void updateTableDescription() { + // Create a table in order to modify its description + String tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, null); + String newDescription = "new description!"; + + // Modify table's description + UpdateTableDescription.updateTableDescription(BIGQUERY_DATASET_NAME, tableName, newDescription); + + assertThat(bout.toString()) + .contains("Table description updated successfully to " + newDescription); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + + } +} From 7a256f734aab3a26a8290a66b11cbcb91fe05d7a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 19 May 2020 01:22:54 +0200 Subject: [PATCH 0503/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.4.0 (#362) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 845f02065515..cddbd6ab2290 100644 --- a/pom.xml +++ b/pom.xml @@ -77,7 +77,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.3.1 + 0.4.0 pom import From 773edeabee7c6515c60b9a11f9e08bc927a9abc5 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 18 May 2020 16:23:11 -0700 Subject: [PATCH 0504/3441] changes without context (#363) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 3 ++- synth.metadata | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4d9e26597e1f..3a9e42de4040 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 5.3.0 + 5.4.0 pom import @@ -237,6 +237,7 @@ has instructions for running the samples. | Update Dataset Access | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | | Update Dataset Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | | Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | +| Update Table Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | | Update Table Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | diff --git a/synth.metadata b/synth.metadata index d2c71635f557..ec52a416255d 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "91213204d784e1a60d0552511933c71083cdb61a" + "sha": "96d2c87bf087f980106f57ffaac0933274c84b96" } }, { From 84cd360e8beb317625504516139b10d8fb47cea5 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 19 May 2020 22:08:48 +0530 Subject: [PATCH 0505/3441] chore: remove hamcrest dependency and modify test case (#364) --- google-cloud-bigquery/pom.xml | 8 +------- .../cloud/bigquery/StandardTableDefinition.java | 2 +- .../bigquery/StandardTableDefinitionTest.java | 15 ++++----------- 3 files changed, 6 insertions(+), 19 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ee4ac1ad46c3..c3b3678de5a2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -83,12 +83,6 @@ - - org.hamcrest - hamcrest - 2.2 - test - junit junit @@ -161,4 +155,4 @@ - \ No newline at end of file + diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index 4e26f831f1fb..9a76b71009eb 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -277,7 +277,7 @@ static StandardTableDefinition fromPb(Table tablePb) { } catch (IllegalArgumentException e) { throw new IllegalArgumentException( "Illegal Argument - Got unexpected time partitioning " - + tablePb.getTimePartitioning().toString() + + tablePb.getTimePartitioning().getType() + " in project " + tablePb.getTableReference().getProjectId() + " in dataset " diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java index 397e69d1efdb..6742763cb223 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -16,9 +16,6 @@ package com.google.cloud.bigquery; -import static org.hamcrest.CoreMatchers.allOf; -import static org.hamcrest.CoreMatchers.containsString; -import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @@ -29,6 +26,7 @@ import com.google.api.services.bigquery.model.TableReference; import com.google.cloud.bigquery.StandardTableDefinition.StreamingBuffer; import com.google.common.collect.ImmutableList; +import com.google.common.truth.Truth; import org.junit.Test; public class StandardTableDefinitionTest { @@ -139,14 +137,9 @@ public void testFromPbWithUnexpectedTimePartitioningTypeRaisesInvalidArgumentExc try { StandardTableDefinition.fromPb(invalidTable); } catch (IllegalArgumentException ie) { - assertThat( - ie.getMessage(), - allOf( - containsString("Illegal Argument - Got unexpected time partitioning"), - containsString("GHURRY"), - containsString("ILLEGAL_ARG_TEST_PROJECT"), - containsString("ILLEGAL_ARG_TEST_DATASET"), - containsString("ILLEGAL_ARG_TEST_TABLE"))); + Truth.assertThat(ie.getMessage()) + .contains( + "Illegal Argument - Got unexpected time partitioning GHURRY in project ILLEGAL_ARG_TEST_PROJECT in dataset ILLEGAL_ARG_TEST_DATASET in table ILLEGAL_ARG_TEST_TABLE"); return; } fail("testFromPb illegal argument exception did not throw!"); From 4a716acc035421ce4ec316a81ad5152c747e48da Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 19 May 2020 22:13:14 +0530 Subject: [PATCH 0506/3441] chore: add mockitto dependency and convert test cases (#348) * chore: add mockitto dependency and convert test cases * chore: add remaining test cases * chore: remove easymock dependency and add remanining test cases * chore: change version of dependency and modify test cases * chore: change version of mockito dependency --- google-cloud-bigquery/pom.xml | 9 +- .../cloud/bigquery/BigQueryExceptionTest.java | 28 +- .../cloud/bigquery/BigQueryImplTest.java | 624 +++++++++--------- .../cloud/bigquery/BigQueryOptionsTest.java | 8 +- .../google/cloud/bigquery/DatasetTest.java | 238 +++---- .../com/google/cloud/bigquery/JobTest.java | 350 ++++------ .../com/google/cloud/bigquery/ModelTest.java | 119 ++-- .../google/cloud/bigquery/RoutineTest.java | 122 ++-- .../bigquery/TableDataWriteChannelTest.java | 394 ++++++----- .../com/google/cloud/bigquery/TableTest.java | 257 +++----- .../testing/RemoteBigQueryHelperTest.java | 14 +- pom.xml | 13 +- 12 files changed, 948 insertions(+), 1228 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c3b3678de5a2..198d38a5b409 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -93,12 +93,9 @@ truth - org.easymock - easymock - - - org.objenesis - objenesis + org.mockito + mockito-core + test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java index 7fb68ef4dd14..41915e2834f7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java @@ -16,15 +16,15 @@ package com.google.cloud.bigquery; -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import com.google.api.client.http.HttpHeaders; import com.google.api.client.http.HttpResponseException; @@ -33,7 +33,10 @@ import java.io.IOException; import java.net.SocketTimeoutException; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; +@RunWith(MockitoJUnitRunner.class) public class BigQueryExceptionTest { @Test @@ -128,9 +131,8 @@ public void testBigQueryException() { @Test public void testTranslateAndThrow() throws Exception { Exception cause = new BigQueryException(503, "message"); - RetryHelperException exceptionMock = createMock(RetryHelperException.class); - expect(exceptionMock.getCause()).andReturn(cause).times(2); - replay(exceptionMock); + RetryHelperException exceptionMock = mock(RetryHelperException.class); + when(exceptionMock.getCause()).thenReturn(cause); try { BigQueryException.translateAndThrow(exceptionMock); } catch (BaseServiceException ex) { @@ -138,13 +140,12 @@ public void testTranslateAndThrow() throws Exception { assertEquals("message", ex.getMessage()); assertTrue(ex.isRetryable()); } finally { - verify(exceptionMock); + verify(exceptionMock, times(2)).getCause(); } cause = new IllegalArgumentException("message"); - exceptionMock = createMock(RetryHelperException.class); - expect(exceptionMock.getMessage()).andReturn("message").times(1); - expect(exceptionMock.getCause()).andReturn(cause).times(2); - replay(exceptionMock); + exceptionMock = mock(RetryHelperException.class); + when(exceptionMock.getMessage()).thenReturn("message"); + when(exceptionMock.getCause()).thenReturn(cause); try { BigQueryException.translateAndThrow(exceptionMock); } catch (BaseServiceException ex) { @@ -153,7 +154,8 @@ public void testTranslateAndThrow() throws Exception { assertFalse(ex.isRetryable()); assertSame(cause, ex.getCause()); } finally { - verify(exceptionMock); + verify(exceptionMock).getMessage(); + verify(exceptionMock, times(2)).getCause(); } } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 999ea9a03b17..ac11f40d06e9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -17,10 +17,6 @@ package com.google.cloud.bigquery; import static com.google.common.truth.Truth.assertThat; -import static org.easymock.EasyMock.anyObject; -import static org.easymock.EasyMock.anyString; -import static org.easymock.EasyMock.capture; -import static org.easymock.EasyMock.eq; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -28,6 +24,12 @@ import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import com.google.api.gax.paging.Page; import com.google.api.services.bigquery.model.ErrorProto; @@ -55,13 +57,15 @@ import java.util.Collections; import java.util.List; import java.util.Map; -import org.easymock.Capture; -import org.easymock.EasyMock; -import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.junit.MockitoJUnitRunner; +@RunWith(MockitoJUnitRunner.class) public class BigQueryImplTest { private static final String PROJECT = "project"; @@ -440,6 +444,9 @@ public class BigQueryImplTest { private BigQueryRpc bigqueryRpcMock; private BigQuery bigquery; + @Captor private ArgumentCaptor> capturedOptions; + @Captor private ArgumentCaptor jobCapture; + private BigQueryOptions createBigQueryOptionsForProject( String project, BigQueryRpcFactory rpcFactory) { return BigQueryOptions.newBuilder() @@ -461,22 +468,14 @@ private BigQueryOptions createBigQueryOptionsForProjectWithLocation( @Before public void setUp() { - rpcFactoryMock = EasyMock.createMock(BigQueryRpcFactory.class); - bigqueryRpcMock = EasyMock.createMock(BigQueryRpc.class); - EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(BigQueryOptions.class))) - .andReturn(bigqueryRpcMock); - EasyMock.replay(rpcFactoryMock); + rpcFactoryMock = mock(BigQueryRpcFactory.class); + bigqueryRpcMock = mock(BigQueryRpc.class); + when(rpcFactoryMock.create(any(BigQueryOptions.class))).thenReturn(bigqueryRpcMock); options = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); } - @After - public void tearDown() { - EasyMock.verify(rpcFactoryMock, bigqueryRpcMock); - } - @Test public void testGetOptions() { - EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); assertSame(options, bigquery.getOptions()); } @@ -484,23 +483,20 @@ public void testGetOptions() { @Test public void testCreateDataset() { DatasetInfo datasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT); - EasyMock.expect(bigqueryRpcMock.create(datasetInfo.toPb(), EMPTY_RPC_OPTIONS)) - .andReturn(datasetInfo.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.create(datasetInfo.toPb(), EMPTY_RPC_OPTIONS)) + .thenReturn(datasetInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Dataset dataset = bigquery.create(datasetInfo); assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(datasetInfo)), dataset); + verify(bigqueryRpcMock).create(datasetInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test public void testCreateDatasetWithSelectedFields() { - Capture> capturedOptions = Capture.newInstance(); - EasyMock.expect( - bigqueryRpcMock.create(eq(DATASET_INFO_WITH_PROJECT.toPb()), capture(capturedOptions))) - .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.create(eq(DATASET_INFO_WITH_PROJECT.toPb()), capturedOptions.capture())) + .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.create(DATASET_INFO, DATASET_OPTION_FIELDS); String selector = (String) capturedOptions.getValue().get(DATASET_OPTION_FIELDS.getRpcOption()); @@ -510,36 +506,36 @@ public void testCreateDatasetWithSelectedFields() { assertEquals(28, selector.length()); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); + verify(bigqueryRpcMock).create(eq(DATASET_INFO_WITH_PROJECT.toPb()), capturedOptions.capture()); } @Test public void testGetDataset() { - EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(DATASET); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); + verify(bigqueryRpcMock).getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test public void testGetDatasetNotFoundWhenThrowIsDisabled() { - EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); options.setThrowNotFound(false); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(DATASET); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); + verify(bigqueryRpcMock).getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test public void testGetDatasetNotFoundWhenThrowIsEnabled() { - EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, "dataset-not-found", EMPTY_RPC_OPTIONS)) - .andThrow(new BigQueryException(404, "Dataset not found")); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getDataset(PROJECT, "dataset-not-found", EMPTY_RPC_OPTIONS)) + .thenThrow(new BigQueryException(404, "Dataset not found")); options.setThrowNotFound(true); bigquery = options.getService(); try { @@ -548,37 +544,36 @@ public void testGetDatasetNotFoundWhenThrowIsEnabled() { } catch (BigQueryException ex) { Assert.assertNotNull(ex.getMessage()); } + verify(bigqueryRpcMock).getDataset(PROJECT, "dataset-not-found", EMPTY_RPC_OPTIONS); } @Test public void testGetDatasetFromDatasetId() { - EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(DatasetId.of(DATASET)); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); + verify(bigqueryRpcMock).getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test public void testGetDatasetFromDatasetIdWithProject() { DatasetInfo datasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT); DatasetId datasetId = DatasetId.of(OTHER_PROJECT, DATASET); - EasyMock.expect(bigqueryRpcMock.getDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andReturn(datasetInfo.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(datasetInfo.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(datasetId); assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(datasetInfo)), dataset); + verify(bigqueryRpcMock).getDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test public void testGetDatasetWithSelectedFields() { - Capture> capturedOptions = Capture.newInstance(); - EasyMock.expect(bigqueryRpcMock.getDataset(eq(PROJECT), eq(DATASET), capture(capturedOptions))) - .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getDataset(eq(PROJECT), eq(DATASET), capturedOptions.capture())) + .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(DATASET, DATASET_OPTION_FIELDS); String selector = (String) capturedOptions.getValue().get(DATASET_OPTION_FIELDS.getRpcOption()); @@ -588,6 +583,7 @@ public void testGetDatasetWithSelectedFields() { assertEquals(28, selector.length()); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); + verify(bigqueryRpcMock).getDataset(eq(PROJECT), eq(DATASET), capturedOptions.capture()); } @Test @@ -599,12 +595,12 @@ public void testListDatasets() { new Dataset(bigquery, new DatasetInfo.BuilderImpl(OTHER_DATASET_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(datasetList, DatasetInfo.TO_PB_FUNCTION)); - EasyMock.expect(bigqueryRpcMock.listDatasets(PROJECT, EMPTY_RPC_OPTIONS)).andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listDatasets(PROJECT, EMPTY_RPC_OPTIONS)).thenReturn(result); Page page = bigquery.listDatasets(); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals( datasetList.toArray(), Iterables.toArray(page.getValues(), DatasetInfo.class)); + verify(bigqueryRpcMock).listDatasets(PROJECT, EMPTY_RPC_OPTIONS); } @Test @@ -616,13 +612,12 @@ public void testListDatasetsWithProjects() { bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO.setProjectId(OTHER_PROJECT)))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(datasetList, DatasetInfo.TO_PB_FUNCTION)); - EasyMock.expect(bigqueryRpcMock.listDatasets(OTHER_PROJECT, EMPTY_RPC_OPTIONS)) - .andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listDatasets(OTHER_PROJECT, EMPTY_RPC_OPTIONS)).thenReturn(result); Page page = bigquery.listDatasets(OTHER_PROJECT); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals( datasetList.toArray(), Iterables.toArray(page.getValues(), DatasetInfo.class)); + verify(bigqueryRpcMock).listDatasets(OTHER_PROJECT, EMPTY_RPC_OPTIONS); } @Test @@ -630,13 +625,13 @@ public void testListEmptyDatasets() { ImmutableList datasets = ImmutableList.of(); Tuple> result = Tuple.>of(null, datasets); - EasyMock.expect(bigqueryRpcMock.listDatasets(PROJECT, EMPTY_RPC_OPTIONS)).andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listDatasets(PROJECT, EMPTY_RPC_OPTIONS)).thenReturn(result); bigquery = options.getService(); Page page = bigquery.listDatasets(); assertNull(page.getNextPageToken()); assertArrayEquals( ImmutableList.of().toArray(), Iterables.toArray(page.getValues(), Dataset.class)); + verify(bigqueryRpcMock).listDatasets(PROJECT, EMPTY_RPC_OPTIONS); } @Test @@ -648,50 +643,46 @@ public void testListDatasetsWithOptions() { new Dataset(bigquery, new DatasetInfo.BuilderImpl(OTHER_DATASET_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(datasetList, DatasetInfo.TO_PB_FUNCTION)); - EasyMock.expect(bigqueryRpcMock.listDatasets(PROJECT, DATASET_LIST_OPTIONS)).andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listDatasets(PROJECT, DATASET_LIST_OPTIONS)).thenReturn(result); Page page = bigquery.listDatasets(DATASET_LIST_ALL, DATASET_LIST_PAGE_TOKEN, DATASET_LIST_PAGE_SIZE); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals( datasetList.toArray(), Iterables.toArray(page.getValues(), DatasetInfo.class)); + verify(bigqueryRpcMock).listDatasets(PROJECT, DATASET_LIST_OPTIONS); } @Test public void testDeleteDataset() { - EasyMock.expect(bigqueryRpcMock.deleteDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andReturn(true); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.deleteDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(DATASET)); + verify(bigqueryRpcMock).deleteDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test public void testDeleteDatasetFromDatasetId() { - EasyMock.expect(bigqueryRpcMock.deleteDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andReturn(true); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.deleteDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(DatasetId.of(DATASET))); + verify(bigqueryRpcMock).deleteDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test public void testDeleteDatasetFromDatasetIdWithProject() { DatasetId datasetId = DatasetId.of(OTHER_PROJECT, DATASET); - EasyMock.expect(bigqueryRpcMock.deleteDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andReturn(true); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.deleteDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(datasetId)); + verify(bigqueryRpcMock).deleteDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test public void testDeleteDatasetWithOptions() { - EasyMock.expect(bigqueryRpcMock.deleteDataset(PROJECT, DATASET, DATASET_DELETE_OPTIONS)) - .andReturn(true); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.deleteDataset(PROJECT, DATASET, DATASET_DELETE_OPTIONS)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(DATASET, DATASET_DELETE_CONTENTS)); + verify(bigqueryRpcMock).deleteDataset(PROJECT, DATASET, DATASET_DELETE_OPTIONS); } @Test @@ -702,26 +693,22 @@ public void testUpdateDataset() { .toBuilder() .setDescription("newDescription") .build(); - EasyMock.expect(bigqueryRpcMock.patch(updatedDatasetInfo.toPb(), EMPTY_RPC_OPTIONS)) - .andReturn(updatedDatasetInfo.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.patch(updatedDatasetInfo.toPb(), EMPTY_RPC_OPTIONS)) + .thenReturn(updatedDatasetInfo.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.update(updatedDatasetInfo); assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(updatedDatasetInfo)), dataset); + verify(bigqueryRpcMock).patch(updatedDatasetInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test public void testUpdateDatasetWithSelectedFields() { - Capture> capturedOptions = Capture.newInstance(); DatasetInfo updatedDatasetInfo = DATASET_INFO.toBuilder().setDescription("newDescription").build(); DatasetInfo updatedDatasetInfoWithProject = DATASET_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); - EasyMock.expect( - bigqueryRpcMock.patch( - eq(updatedDatasetInfoWithProject.toPb()), capture(capturedOptions))) - .andReturn(updatedDatasetInfoWithProject.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.patch(eq(updatedDatasetInfoWithProject.toPb()), capturedOptions.capture())) + .thenReturn(updatedDatasetInfoWithProject.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.update(updatedDatasetInfo, DATASET_OPTION_FIELDS); String selector = (String) capturedOptions.getValue().get(DATASET_OPTION_FIELDS.getRpcOption()); @@ -731,19 +718,20 @@ public void testUpdateDatasetWithSelectedFields() { assertEquals(28, selector.length()); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(updatedDatasetInfoWithProject)), dataset); + verify(bigqueryRpcMock) + .patch(eq(updatedDatasetInfoWithProject.toPb()), capturedOptions.capture()); } @Test public void testCreateTable() { TableInfo tableInfo = TABLE_INFO.setProjectId(OTHER_PROJECT); - EasyMock.expect(bigqueryRpcMock.create(tableInfo.toPb(), EMPTY_RPC_OPTIONS)) - .andReturn(tableInfo.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.create(tableInfo.toPb(), EMPTY_RPC_OPTIONS)).thenReturn(tableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.create(tableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); + verify(bigqueryRpcMock).create(tableInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test @@ -751,22 +739,18 @@ public void testCreateTableWithoutProject() { TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); tableInfo.toBuilder().setTableId(tableId); - EasyMock.expect(bigqueryRpcMock.create(tableInfo.toPb(), EMPTY_RPC_OPTIONS)) - .andReturn(tableInfo.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.create(tableInfo.toPb(), EMPTY_RPC_OPTIONS)).thenReturn(tableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.create(tableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); + verify(bigqueryRpcMock).create(tableInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test public void testCreateTableWithSelectedFields() { - Capture> capturedOptions = Capture.newInstance(); - EasyMock.expect( - bigqueryRpcMock.create(eq(TABLE_INFO_WITH_PROJECT.toPb()), capture(capturedOptions))) - .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.create(eq(TABLE_INFO_WITH_PROJECT.toPb()), capturedOptions.capture())) + .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Table table = bigquery.create(TABLE_INFO, TABLE_OPTION_FIELDS); String selector = (String) capturedOptions.getValue().get(TABLE_OPTION_FIELDS.getRpcOption()); @@ -775,59 +759,59 @@ public void testCreateTableWithSelectedFields() { assertTrue(selector.contains("etag")); assertEquals(31, selector.length()); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); + verify(bigqueryRpcMock).create(eq(TABLE_INFO_WITH_PROJECT.toPb()), capturedOptions.capture()); } @Test public void testGetTable() { - EasyMock.expect(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) - .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Table table = bigquery.getTable(DATASET, TABLE); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); + verify(bigqueryRpcMock).getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test public void testGetModel() { - EasyMock.expect(bigqueryRpcMock.getModel(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS)) - .andReturn(MODEL_INFO_WITH_PROJECT.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getModel(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS)) + .thenReturn(MODEL_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Model model = bigquery.getModel(DATASET, MODEL); assertEquals(new Model(bigquery, new ModelInfo.BuilderImpl(MODEL_INFO_WITH_PROJECT)), model); + verify(bigqueryRpcMock).getModel(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS); } @Test public void testListPartition() { - EasyMock.expect( - bigqueryRpcMock.getTable( - PROJECT, DATASET, "table$__PARTITIONS_SUMMARY__", EMPTY_RPC_OPTIONS)) - .andReturn(TABLE_INFO_PARTITIONS.toPb()); - EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) - .andReturn(TABLE_DATA_WITH_PARTITIONS); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getTable( + PROJECT, DATASET, "table$__PARTITIONS_SUMMARY__", EMPTY_RPC_OPTIONS)) + .thenReturn(TABLE_INFO_PARTITIONS.toPb()); + when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .thenReturn(TABLE_DATA_WITH_PARTITIONS); bigquery = options.getService(); List partition = bigquery.listPartitions(TABLE_ID_WITH_PROJECT); assertEquals(3, partition.size()); + verify(bigqueryRpcMock) + .getTable(PROJECT, DATASET, "table$__PARTITIONS_SUMMARY__", EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test public void testGetTableNotFoundWhenThrowIsDisabled() { - EasyMock.expect(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) - .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); options.setThrowNotFound(false); bigquery = options.getService(); Table table = bigquery.getTable(DATASET, TABLE); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); + verify(bigqueryRpcMock).getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test public void testGetTableNotFoundWhenThrowIsEnabled() { - EasyMock.expect( - bigqueryRpcMock.getTable(PROJECT, DATASET, "table-not-found", EMPTY_RPC_OPTIONS)) - .andThrow(new BigQueryException(404, "Table not found")); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getTable(PROJECT, DATASET, "table-not-found", EMPTY_RPC_OPTIONS)) + .thenThrow(new BigQueryException(404, "Table not found")); options.setThrowNotFound(true); bigquery = options.getService(); try { @@ -836,52 +820,50 @@ public void testGetTableNotFoundWhenThrowIsEnabled() { } catch (BigQueryException ex) { Assert.assertNotNull(ex.getMessage()); } + verify(bigqueryRpcMock).getTable(PROJECT, DATASET, "table-not-found", EMPTY_RPC_OPTIONS); } @Test public void testGetTableFromTableId() { - EasyMock.expect(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) - .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Table table = bigquery.getTable(TABLE_ID); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); + verify(bigqueryRpcMock).getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test public void testGetTableFromTableIdWithProject() { TableInfo tableInfo = TABLE_INFO.setProjectId(OTHER_PROJECT); TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); - EasyMock.expect(bigqueryRpcMock.getTable(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) - .andReturn(tableInfo.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getTable(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .thenReturn(tableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.getTable(tableId); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); + verify(bigqueryRpcMock).getTable(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test public void testGetTableFromTableIdWithoutProject() { TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); - EasyMock.expect(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) - .andReturn(tableInfo.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .thenReturn(tableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.getTable(tableId); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); + verify(bigqueryRpcMock).getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test public void testGetTableWithSelectedFields() { - Capture> capturedOptions = Capture.newInstance(); - EasyMock.expect( - bigqueryRpcMock.getTable(eq(PROJECT), eq(DATASET), eq(TABLE), capture(capturedOptions))) - .andReturn(TABLE_INFO_WITH_PROJECT.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getTable(eq(PROJECT), eq(DATASET), eq(TABLE), capturedOptions.capture())) + .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Table table = bigquery.getTable(TABLE_ID, TABLE_OPTION_FIELDS); String selector = (String) capturedOptions.getValue().get(TABLE_OPTION_FIELDS.getRpcOption()); @@ -890,6 +872,8 @@ public void testGetTableWithSelectedFields() { assertTrue(selector.contains("etag")); assertEquals(31, selector.length()); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); + verify(bigqueryRpcMock) + .getTable(eq(PROJECT), eq(DATASET), eq(TABLE), capturedOptions.capture()); } @Test @@ -902,12 +886,11 @@ public void testListTables() { new Table(bigquery, new TableInfo.BuilderImpl(MODEL_TABLE_INFO_WITH_PROJECT))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); Page
    page = bigquery.listTables(DATASET); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + verify(bigqueryRpcMock).listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test @@ -918,12 +901,11 @@ public void testListTablesReturnedParameters() { new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PARTITIONS))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)) - .andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)).thenReturn(result); Page
    page = bigquery.listTables(DATASET, TABLE_LIST_PAGE_SIZE, TABLE_LIST_PAGE_TOKEN); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + verify(bigqueryRpcMock).listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS); } @Test @@ -934,12 +916,11 @@ public void testListTablesReturnedParametersNullType() { new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PARTITIONS_NULL_TYPE))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)) - .andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)).thenReturn(result); Page
    page = bigquery.listTables(DATASET, TABLE_LIST_PAGE_SIZE, TABLE_LIST_PAGE_TOKEN); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + verify(bigqueryRpcMock).listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS); } @Test @@ -950,12 +931,11 @@ public void testListTablesWithRangePartitioning() { new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_RANGE_PARTITIONING))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)) - .andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)).thenReturn(result); Page
    page = bigquery.listTables(DATASET, TABLE_LIST_PAGE_SIZE, TABLE_LIST_PAGE_TOKEN); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + verify(bigqueryRpcMock).listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS); } @Test @@ -967,12 +947,11 @@ public void testListTablesFromDatasetId() { new Table(bigquery, new TableInfo.BuilderImpl(OTHER_TABLE_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); Page
    page = bigquery.listTables(DatasetId.of(DATASET)); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + verify(bigqueryRpcMock).listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test @@ -983,12 +962,11 @@ public void testListTablesFromDatasetIdWithProject() { new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO.setProjectId(OTHER_PROJECT)))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - EasyMock.expect(bigqueryRpcMock.listTables(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listTables(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); Page
    page = bigquery.listTables(DatasetId.of(OTHER_PROJECT, DATASET)); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + verify(bigqueryRpcMock).listTables(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test @@ -1000,12 +978,11 @@ public void testListTablesWithOptions() { new Table(bigquery, new TableInfo.BuilderImpl(OTHER_TABLE_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - EasyMock.expect(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)) - .andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)).thenReturn(result); Page
    page = bigquery.listTables(DATASET, TABLE_LIST_PAGE_SIZE, TABLE_LIST_PAGE_TOKEN); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + verify(bigqueryRpcMock).listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS); } @Test @@ -1017,71 +994,70 @@ public void testListModels() { new Model(bigquery, new ModelInfo.BuilderImpl(OTHER_MODEL_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(modelList, ModelInfo.TO_PB_FUNCTION)); - EasyMock.expect(bigqueryRpcMock.listModels(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listModels(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); Page page = bigquery.listModels(DATASET); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(modelList.toArray(), Iterables.toArray(page.getValues(), Model.class)); + verify(bigqueryRpcMock).listModels(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test public void testDeleteTable() { - EasyMock.expect(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).andReturn(true); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(TABLE_ID)); + verify(bigqueryRpcMock).deleteTable(PROJECT, DATASET, TABLE); } @Test public void testDeleteTableFromTableId() { - EasyMock.expect(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).andReturn(true); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(TABLE_ID)); + verify(bigqueryRpcMock).deleteTable(PROJECT, DATASET, TABLE); } @Test public void testDeleteTableFromTableIdWithProject() { TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); - EasyMock.expect(bigqueryRpcMock.deleteTable(OTHER_PROJECT, DATASET, TABLE)).andReturn(true); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.deleteTable(OTHER_PROJECT, DATASET, TABLE)).thenReturn(true); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); assertTrue(bigquery.delete(tableId)); + verify(bigqueryRpcMock).deleteTable(OTHER_PROJECT, DATASET, TABLE); } @Test public void testDeleteTableFromTableIdWithoutProject() { TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); - EasyMock.expect(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).andReturn(true); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).thenReturn(true); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); assertTrue(bigquery.delete(tableId)); + verify(bigqueryRpcMock).deleteTable(PROJECT, DATASET, TABLE); } @Test public void testDeleteModel() { - EasyMock.expect(bigqueryRpcMock.deleteModel(PROJECT, DATASET, MODEL)).andReturn(true); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.deleteModel(PROJECT, DATASET, MODEL)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(ModelId.of(DATASET, MODEL))); + verify(bigqueryRpcMock).deleteModel(PROJECT, DATASET, MODEL); } @Test public void testUpdateTable() { TableInfo updatedTableInfo = TABLE_INFO.setProjectId(OTHER_PROJECT).toBuilder().setDescription("newDescription").build(); - EasyMock.expect(bigqueryRpcMock.patch(updatedTableInfo.toPb(), EMPTY_RPC_OPTIONS)) - .andReturn(updatedTableInfo.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.patch(updatedTableInfo.toPb(), EMPTY_RPC_OPTIONS)) + .thenReturn(updatedTableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.update(updatedTableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfo)), table); + verify(bigqueryRpcMock).patch(updatedTableInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test @@ -1089,25 +1065,21 @@ public void testUpdateTableWithoutProject() { TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); tableInfo.toBuilder().setTableId(tableId); - EasyMock.expect(bigqueryRpcMock.patch(tableInfo.toPb(), EMPTY_RPC_OPTIONS)) - .andReturn(tableInfo.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.patch(tableInfo.toPb(), EMPTY_RPC_OPTIONS)).thenReturn(tableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.update(tableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); + verify(bigqueryRpcMock).patch(tableInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test public void testUpdateTableWithSelectedFields() { - Capture> capturedOptions = Capture.newInstance(); TableInfo updatedTableInfo = TABLE_INFO.toBuilder().setDescription("newDescription").build(); TableInfo updatedTableInfoWithProject = TABLE_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); - EasyMock.expect( - bigqueryRpcMock.patch(eq(updatedTableInfoWithProject.toPb()), capture(capturedOptions))) - .andReturn(updatedTableInfoWithProject.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.patch(eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture())) + .thenReturn(updatedTableInfoWithProject.toPb()); bigquery = options.getService(); Table table = bigquery.update(updatedTableInfo, TABLE_OPTION_FIELDS); String selector = (String) capturedOptions.getValue().get(TABLE_OPTION_FIELDS.getRpcOption()); @@ -1117,6 +1089,8 @@ public void testUpdateTableWithSelectedFields() { assertEquals(31, selector.length()); assertEquals( new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfoWithProject)), table); + verify(bigqueryRpcMock) + .patch(eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture()); } @Test @@ -1155,11 +1129,9 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { new TableDataInsertAllResponse.InsertErrors() .setIndex(0L) .setErrors(ImmutableList.of(new ErrorProto().setMessage("ErrorMessage"))))); - EasyMock.expect(bigqueryRpcMock.insertAll(PROJECT, DATASET, TABLE, requestPb)) - .andThrow(new BigQueryException(500, "InternalError")); - EasyMock.expect(bigqueryRpcMock.insertAll(PROJECT, DATASET, TABLE, requestPb)) - .andReturn(responsePb); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.insertAll(PROJECT, DATASET, TABLE, requestPb)) + .thenThrow(new BigQueryException(500, "InternalError")) + .thenReturn(responsePb); bigquery = options .toBuilder() @@ -1171,6 +1143,7 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { assertNull(response.getErrorsFor(1L)); assertEquals(1, response.getErrorsFor(0L).size()); assertEquals("ErrorMessage", response.getErrorsFor(0L).get(0).getMessage()); + verify(bigqueryRpcMock, times(2)).insertAll(PROJECT, DATASET, TABLE, requestPb); } @Test @@ -1201,9 +1174,8 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { .setSkipInvalidRows(false) .setIgnoreUnknownValues(true) .setTemplateSuffix("suffix"); - EasyMock.expect(bigqueryRpcMock.insertAll(PROJECT, DATASET, TABLE, requestPb)) - .andThrow(new BigQueryException(500, "InternalError")); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.insertAll(PROJECT, DATASET, TABLE, requestPb)) + .thenThrow(new BigQueryException(500, "InternalError")); bigquery = options .toBuilder() @@ -1216,6 +1188,7 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { } catch (BigQueryException ex) { Assert.assertNotNull(ex.getMessage()); } + verify(bigqueryRpcMock).insertAll(PROJECT, DATASET, TABLE, requestPb); } @Test @@ -1255,9 +1228,8 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { new TableDataInsertAllResponse.InsertErrors() .setIndex(0L) .setErrors(ImmutableList.of(new ErrorProto().setMessage("ErrorMessage"))))); - EasyMock.expect(bigqueryRpcMock.insertAll(OTHER_PROJECT, DATASET, TABLE, requestPb)) - .andReturn(responsePb); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.insertAll(OTHER_PROJECT, DATASET, TABLE, requestPb)) + .thenReturn(responsePb); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); @@ -1266,6 +1238,7 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { assertNull(response.getErrorsFor(1L)); assertEquals(1, response.getErrorsFor(0L).size()); assertEquals("ErrorMessage", response.getErrorsFor(0L).get(0).getMessage()); + verify(bigqueryRpcMock).insertAll(OTHER_PROJECT, DATASET, TABLE, requestPb); } @Test @@ -1305,10 +1278,8 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { new TableDataInsertAllResponse.InsertErrors() .setIndex(0L) .setErrors(ImmutableList.of(new ErrorProto().setMessage("ErrorMessage"))))); - EasyMock.expect( - bigqueryRpcMock.insertAll("project-different-from-option", DATASET, TABLE, requestPb)) - .andReturn(responsePb); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.insertAll("project-different-from-option", DATASET, TABLE, requestPb)) + .thenReturn(responsePb); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); @@ -1317,48 +1288,48 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { assertNull(response.getErrorsFor(1L)); assertEquals(1, response.getErrorsFor(0L).size()); assertEquals("ErrorMessage", response.getErrorsFor(0L).get(0).getMessage()); + verify(bigqueryRpcMock).insertAll("project-different-from-option", DATASET, TABLE, requestPb); } @Test public void testListTableData() { - EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) - .andReturn(TABLE_DATA_PB); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .thenReturn(TABLE_DATA_PB); bigquery = options.getService(); Page page = bigquery.listTableData(DATASET, TABLE); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); + verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test public void testListTableDataFromTableId() { - EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) - .andReturn(TABLE_DATA_PB); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .thenReturn(TABLE_DATA_PB); bigquery = options.getService(); Page page = bigquery.listTableData(TableId.of(DATASET, TABLE)); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); + verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test public void testListTableDataFromTableIdWithProject() { TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); - EasyMock.expect(bigqueryRpcMock.listTableData(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) - .andReturn(TABLE_DATA_PB); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listTableData(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .thenReturn(TABLE_DATA_PB); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Page page = bigquery.listTableData(tableId); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); + verify(bigqueryRpcMock).listTableData(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test public void testListTableDataWithOptions() { - EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS)) - .andReturn(TABLE_DATA_PB); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS)) + .thenReturn(TABLE_DATA_PB); bigquery = options.getService(); Page page = bigquery.listTableData( @@ -1369,6 +1340,7 @@ public void testListTableDataWithOptions() { TABLE_DATA_LIST_START_INDEX); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); + verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS); } // The "minimally initialized" Job that lets Job.fromPb run without throwing. @@ -1385,26 +1357,20 @@ public void testCreateJobSuccess() { JobId jobId = JobId.of(id); String query = "SELECT * in FOO"; - Capture jobCapture = EasyMock.newCapture(); - EasyMock.expect( - bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) - .andReturn(newJobPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) + .thenReturn(newJobPb()); bigquery = options.getService(); assertThat(bigquery.create(JobInfo.of(jobId, QueryJobConfiguration.of(query)))).isNotNull(); assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); + verify(bigqueryRpcMock).create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); } @Test public void testCreateJobWithSelectedFields() { - Capture> capturedOptions = Capture.newInstance(); - EasyMock.expect( - bigqueryRpcMock.create( - EasyMock.anyObject(com.google.api.services.bigquery.model.Job.class), - EasyMock.capture(capturedOptions))) - .andReturn(newJobPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.create( + any(com.google.api.services.bigquery.model.Job.class), capturedOptions.capture())) + .thenReturn(newJobPb()); BigQuery.JobOption jobOptions = BigQuery.JobOption.fields(BigQuery.JobField.USER_EMAIL); @@ -1416,6 +1382,8 @@ public void testCreateJobWithSelectedFields() { assertThat(selector.split(",")) .asList() .containsExactly("jobReference", "configuration", "user_email"); + verify(bigqueryRpcMock) + .create(any(com.google.api.services.bigquery.model.Job.class), capturedOptions.capture()); } @Test @@ -1424,11 +1392,8 @@ public void testCreateJobNoGet() { JobId jobId = JobId.of(id); String query = "SELECT * in FOO"; - Capture jobCapture = EasyMock.newCapture(); - EasyMock.expect( - bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) - .andThrow(new BigQueryException(409, "already exists, for some reason")); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) + .thenThrow(new BigQueryException(409, "already exists, for some reason")); bigquery = options.getService(); try { @@ -1437,6 +1402,7 @@ public void testCreateJobNoGet() { } catch (BigQueryException e) { assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); } + verify(bigqueryRpcMock).create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); } @Test @@ -1451,22 +1417,18 @@ public JobId get() { } }; - Capture jobCapture = EasyMock.newCapture(); - EasyMock.expect( - bigqueryRpcMock.create(EasyMock.capture(jobCapture), EasyMock.eq(EMPTY_RPC_OPTIONS))) - .andThrow(new BigQueryException(409, "already exists, for some reason")); - EasyMock.expect( - bigqueryRpcMock.getJob( - anyString(), - EasyMock.eq(id), - EasyMock.eq((String) null), - EasyMock.eq(EMPTY_RPC_OPTIONS))) - .andReturn(newJobPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) + .thenThrow(new BigQueryException(409, "already exists, for some reason")); + when(bigqueryRpcMock.getJob( + any(String.class), eq(id), eq((String) null), eq(EMPTY_RPC_OPTIONS))) + .thenReturn(newJobPb()); bigquery = options.getService(); ((BigQueryImpl) bigquery).create(JobInfo.of(QueryJobConfiguration.of(query)), idProvider); assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); + verify(bigqueryRpcMock).create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); + verify(bigqueryRpcMock) + .getJob(any(String.class), eq(id), eq((String) null), eq(EMPTY_RPC_OPTIONS)); } @Test @@ -1475,10 +1437,8 @@ public void testCreateJobWithProjectId() { JobInfo.newBuilder(QUERY_JOB_CONFIGURATION.setProjectId(OTHER_PROJECT)) .setJobId(JobId.of(OTHER_PROJECT, JOB)) .build(); - Capture> capturedOptions = Capture.newInstance(); - EasyMock.expect(bigqueryRpcMock.create(eq(jobInfo.toPb()), capture(capturedOptions))) - .andReturn(jobInfo.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.create(eq(jobInfo.toPb()), capturedOptions.capture())) + .thenReturn(jobInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); @@ -1489,45 +1449,45 @@ public void testCreateJobWithProjectId() { assertTrue(selector.contains("configuration")); assertTrue(selector.contains("user_email")); assertEquals(37, selector.length()); + verify(bigqueryRpcMock).create(eq(jobInfo.toPb()), capturedOptions.capture()); } @Test public void testGetJob() { - EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) - .andReturn(COMPLETE_COPY_JOB.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .thenReturn(COMPLETE_COPY_JOB.toPb()); bigquery = options.getService(); Job job = bigquery.getJob(JOB); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); + verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test public void testGetJobWithLocation() { - EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) - .andReturn(COMPLETE_COPY_JOB.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getJob(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) + .thenReturn(COMPLETE_COPY_JOB.toPb()); BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock); bigquery = options.getService(); Job job = bigquery.getJob(JOB); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); + verify(bigqueryRpcMock).getJob(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS); } @Test public void testGetJobNotFoundWhenThrowIsDisabled() { - EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) - .andReturn(COMPLETE_COPY_JOB.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .thenReturn(COMPLETE_COPY_JOB.toPb()); options.setThrowNotFound(false); bigquery = options.getService(); Job job = bigquery.getJob(JOB); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); + verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test public void testGetJobNotFoundWhenThrowIsEnabled() { - EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, "job-not-found", null, EMPTY_RPC_OPTIONS)) - .andThrow(new BigQueryException(404, "Job not found")); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getJob(PROJECT, "job-not-found", null, EMPTY_RPC_OPTIONS)) + .thenThrow(new BigQueryException(404, "Job not found")); options.setThrowNotFound(true); bigquery = options.getService(); try { @@ -1536,52 +1496,53 @@ public void testGetJobNotFoundWhenThrowIsEnabled() { } catch (BigQueryException ex) { Assert.assertNotNull(ex.getMessage()); } + verify(bigqueryRpcMock).getJob(PROJECT, "job-not-found", null, EMPTY_RPC_OPTIONS); } @Test public void testGetJobFromJobId() { - EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) - .andReturn(COMPLETE_COPY_JOB.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .thenReturn(COMPLETE_COPY_JOB.toPb()); bigquery = options.getService(); Job job = bigquery.getJob(JobId.of(JOB)); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); + verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test public void testGetJobFromJobIdWithLocation() { - EasyMock.expect(bigqueryRpcMock.getJob(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) - .andReturn(COMPLETE_COPY_JOB.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getJob(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) + .thenReturn(COMPLETE_COPY_JOB.toPb()); BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock); bigquery = options.getService(); Job job = bigquery.getJob(JobId.of(JOB)); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); + verify(bigqueryRpcMock).getJob(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS); } @Test public void testGetJobFromJobIdWithProject() { JobId jobId = JobId.of(OTHER_PROJECT, JOB); JobInfo jobInfo = COPY_JOB.setProjectId(OTHER_PROJECT); - EasyMock.expect(bigqueryRpcMock.getJob(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) - .andReturn(jobInfo.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getJob(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .thenReturn(jobInfo.toPb()); bigquery = options.getService(); Job job = bigquery.getJob(jobId); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(jobInfo)), job); + verify(bigqueryRpcMock).getJob(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test public void testGetJobFromJobIdWithProjectWithLocation() { JobId jobId = JobId.of(OTHER_PROJECT, JOB); JobInfo jobInfo = COPY_JOB.setProjectId(OTHER_PROJECT); - EasyMock.expect(bigqueryRpcMock.getJob(OTHER_PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) - .andReturn(jobInfo.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getJob(OTHER_PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) + .thenReturn(jobInfo.toPb()); BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock); bigquery = options.getService(); Job job = bigquery.getJob(jobId); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(jobInfo)), job); + verify(bigqueryRpcMock).getJob(OTHER_PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS); } @Test @@ -1602,11 +1563,11 @@ public com.google.api.services.bigquery.model.Job apply(Job job) { return job.toPb(); } })); - EasyMock.expect(bigqueryRpcMock.listJobs(PROJECT, EMPTY_RPC_OPTIONS)).andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listJobs(PROJECT, EMPTY_RPC_OPTIONS)).thenReturn(result); Page page = bigquery.listJobs(); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(jobList.toArray(), Iterables.toArray(page.getValues(), Job.class)); + verify(bigqueryRpcMock).listJobs(PROJECT, EMPTY_RPC_OPTIONS); } @Test @@ -1627,18 +1588,17 @@ public com.google.api.services.bigquery.model.Job apply(Job job) { return job.toPb(); } })); - EasyMock.expect(bigqueryRpcMock.listJobs(PROJECT, JOB_LIST_OPTIONS)).andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listJobs(PROJECT, JOB_LIST_OPTIONS)).thenReturn(result); Page page = bigquery.listJobs( JOB_LIST_ALL_USERS, JOB_LIST_STATE_FILTER, JOB_LIST_PAGE_TOKEN, JOB_LIST_PAGE_SIZE); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(jobList.toArray(), Iterables.toArray(page.getValues(), Job.class)); + verify(bigqueryRpcMock).listJobs(PROJECT, JOB_LIST_OPTIONS); } @Test public void testListJobsWithSelectedFields() { - Capture> capturedOptions = Capture.newInstance(); bigquery = options.getService(); ImmutableList jobList = ImmutableList.of( @@ -1655,9 +1615,7 @@ public com.google.api.services.bigquery.model.Job apply(Job job) { return job.toPb(); } })); - EasyMock.expect(bigqueryRpcMock.listJobs(eq(PROJECT), capture(capturedOptions))) - .andReturn(result); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.listJobs(eq(PROJECT), capturedOptions.capture())).thenReturn(result); Page page = bigquery.listJobs(JOB_LIST_OPTION_FIELD); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(jobList.toArray(), Iterables.toArray(page.getValues(), Job.class)); @@ -1670,31 +1628,32 @@ public com.google.api.services.bigquery.model.Job apply(Job job) { assertTrue(selector.contains("errorResult")); assertTrue(selector.contains(")")); assertEquals(75, selector.length()); + verify(bigqueryRpcMock).listJobs(eq(PROJECT), capturedOptions.capture()); } @Test public void testCancelJob() { - EasyMock.expect(bigqueryRpcMock.cancel(PROJECT, JOB, null)).andReturn(true); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.cancel(PROJECT, JOB, null)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.cancel(JOB)); + verify(bigqueryRpcMock).cancel(PROJECT, JOB, null); } @Test public void testCancelJobFromJobId() { - EasyMock.expect(bigqueryRpcMock.cancel(PROJECT, JOB, null)).andReturn(true); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.cancel(PROJECT, JOB, null)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.cancel(JobId.of(PROJECT, JOB))); + verify(bigqueryRpcMock).cancel(PROJECT, JOB, null); } @Test public void testCancelJobFromJobIdWithProject() { JobId jobId = JobId.of(OTHER_PROJECT, JOB); - EasyMock.expect(bigqueryRpcMock.cancel(OTHER_PROJECT, JOB, null)).andReturn(true); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.cancel(OTHER_PROJECT, JOB, null)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.cancel(jobId)); + verify(bigqueryRpcMock).cancel(OTHER_PROJECT, JOB, null); } @Test @@ -1718,24 +1677,20 @@ public void testQueryRequestCompleted() throws InterruptedException { .setTotalRows(BigInteger.valueOf(1L)) .setSchema(TABLE_SCHEMA.toPb()); - EasyMock.expect( - bigqueryRpcMock.create( - JOB_INFO.toPb(), Collections.emptyMap())) - .andReturn(jobResponsePb); - EasyMock.expect( - bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) - .andReturn(responsePb); - EasyMock.expect( - bigqueryRpcMock.listTableData( - PROJECT, DATASET, TABLE, Collections.emptyMap())) - .andReturn( + when(bigqueryRpcMock.create( + JOB_INFO.toPb(), Collections.emptyMap())) + .thenReturn(jobResponsePb); + when(bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + .thenReturn(responsePb); + when(bigqueryRpcMock.listTableData( + PROJECT, DATASET, TABLE, Collections.emptyMap())) + .thenReturn( new TableDataList() .setPageToken("") .setRows(ImmutableList.of(TABLE_ROW)) .setTotalRows(1L)); - EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); TableResult result = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY, queryJob); assertThat(result.getSchema()).isEqualTo(TABLE_SCHEMA); @@ -1744,6 +1699,14 @@ public void testQueryRequestCompleted() throws InterruptedException { assertThat(row.get(0).getBooleanValue()).isFalse(); assertThat(row.get(1).getLongValue()).isEqualTo(1); } + verify(bigqueryRpcMock) + .create(JOB_INFO.toPb(), Collections.emptyMap()); + verify(bigqueryRpcMock) + .getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + + verify(bigqueryRpcMock) + .listTableData(PROJECT, DATASET, TABLE, Collections.emptyMap()); } @Test @@ -1767,27 +1730,24 @@ public void testQueryRequestCompletedOptions() throws InterruptedException { .setTotalRows(BigInteger.valueOf(1L)) .setSchema(TABLE_SCHEMA.toPb()); - EasyMock.expect( - bigqueryRpcMock.create( - JOB_INFO.toPb(), Collections.emptyMap())) - .andReturn(jobResponsePb); + when(bigqueryRpcMock.create( + JOB_INFO.toPb(), Collections.emptyMap())) + .thenReturn(jobResponsePb); Map optionMap = Maps.newEnumMap(BigQueryRpc.Option.class); QueryResultsOption pageSizeOption = QueryResultsOption.pageSize(42L); optionMap.put(pageSizeOption.getRpcOption(), pageSizeOption.getValue()); - EasyMock.expect( - bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) - .andReturn(responsePb); - EasyMock.expect(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, optionMap)) - .andReturn( + when(bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + .thenReturn(responsePb); + when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, optionMap)) + .thenReturn( new TableDataList() .setPageToken("") .setRows(ImmutableList.of(TABLE_ROW)) .setTotalRows(1L)); - EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); Job job = bigquery.create(JobInfo.of(queryJob, QUERY_JOB_CONFIGURATION_FOR_QUERY)); TableResult result = job.getQueryResults(pageSizeOption); @@ -1797,6 +1757,12 @@ public void testQueryRequestCompletedOptions() throws InterruptedException { assertThat(row.get(0).getBooleanValue()).isFalse(); assertThat(row.get(1).getLongValue()).isEqualTo(1); } + verify(bigqueryRpcMock) + .create(JOB_INFO.toPb(), Collections.emptyMap()); + verify(bigqueryRpcMock) + .getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, optionMap); } @Test @@ -1807,6 +1773,8 @@ public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedExcepti .setConfiguration(QUERY_JOB_CONFIGURATION_FOR_QUERY.toPb()) .setJobReference(queryJob.toPb()) .setId(JOB); + jobResponsePb1.setStatus( + new com.google.api.services.bigquery.model.JobStatus().setState("DONE")); jobResponsePb1.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); GetQueryResultsResponse responsePb1 = @@ -1823,31 +1791,23 @@ public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedExcepti .setTotalRows(BigInteger.valueOf(1L)) .setSchema(TABLE_SCHEMA.toPb()); - EasyMock.expect( - bigqueryRpcMock.create( - JOB_INFO.toPb(), Collections.emptyMap())) - .andReturn(jobResponsePb1); - EasyMock.expect(bigqueryRpcMock.getJob(eq(PROJECT), eq(JOB), anyString(), anyObject(Map.class))) - .andReturn(jobResponsePb1); - - EasyMock.expect( - bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) - .andReturn(responsePb1); - EasyMock.expect( - bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) - .andReturn(responsePb2); - EasyMock.expect( - bigqueryRpcMock.listTableData( - PROJECT, DATASET, TABLE, Collections.emptyMap())) - .andReturn( + when(bigqueryRpcMock.create( + JOB_INFO.toPb(), Collections.emptyMap())) + .thenReturn(jobResponsePb1); + when(bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + .thenReturn(responsePb1); + when(bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + .thenReturn(responsePb2); + when(bigqueryRpcMock.listTableData( + PROJECT, DATASET, TABLE, Collections.emptyMap())) + .thenReturn( new TableDataList() .setPageToken("") .setRows(ImmutableList.of(TABLE_ROW)) .setTotalRows(1L)); - EasyMock.replay(bigqueryRpcMock); bigquery = options.getService(); TableResult result = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY, queryJob); assertThat(result.getSchema()).isEqualTo(TABLE_SCHEMA); @@ -1856,6 +1816,16 @@ public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedExcepti assertThat(row.get(0).getBooleanValue()).isFalse(); assertThat(row.get(1).getLongValue()).isEqualTo(1); } + verify(bigqueryRpcMock) + .create(JOB_INFO.toPb(), Collections.emptyMap()); + verify(bigqueryRpcMock) + .getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + verify(bigqueryRpcMock) + .getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + verify(bigqueryRpcMock) + .listTableData(PROJECT, DATASET, TABLE, Collections.emptyMap()); } @Test @@ -1871,13 +1841,13 @@ public void testGetQueryResults() { .setPageToken(CURSOR) .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)); - EasyMock.expect(bigqueryRpcMock.getQueryResults(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) - .andReturn(responsePb); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getQueryResults(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .thenReturn(responsePb); bigquery = options.getService(); QueryResponse response = bigquery.getQueryResults(queryJob); assertEquals(true, response.getCompleted()); assertEquals(null, response.getSchema()); + verify(bigqueryRpcMock).getQueryResults(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test @@ -1893,13 +1863,13 @@ public void testGetQueryResultsWithProject() { .setPageToken(CURSOR) .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)); - EasyMock.expect(bigqueryRpcMock.getQueryResults(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) - .andReturn(responsePb); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getQueryResults(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .thenReturn(responsePb); bigquery = options.getService(); QueryResponse response = bigquery.getQueryResults(queryJob); assertTrue(response.getCompleted()); assertEquals(null, response.getSchema()); + verify(bigqueryRpcMock).getQueryResults(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test @@ -1914,9 +1884,8 @@ public void testGetQueryResultsWithOptions() { .setPageToken(CURSOR) .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)); - EasyMock.expect(bigqueryRpcMock.getQueryResults(PROJECT, JOB, null, QUERY_RESULTS_OPTIONS)) - .andReturn(responsePb); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getQueryResults(PROJECT, JOB, null, QUERY_RESULTS_OPTIONS)) + .thenReturn(responsePb); bigquery = options.getService(); QueryResponse response = bigquery.getQueryResults( @@ -1927,14 +1896,14 @@ public void testGetQueryResultsWithOptions() { QUERY_RESULTS_OPTION_PAGE_TOKEN); assertEquals(true, response.getCompleted()); assertEquals(null, response.getSchema()); + verify(bigqueryRpcMock).getQueryResults(PROJECT, JOB, null, QUERY_RESULTS_OPTIONS); } @Test public void testRetryableException() { - EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andThrow(new BigQueryException(500, "InternalError")) - .andReturn(DATASET_INFO_WITH_PROJECT.toPb()); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenThrow(new BigQueryException(500, "InternalError")) + .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = options .toBuilder() @@ -1944,35 +1913,34 @@ public void testRetryableException() { Dataset dataset = bigquery.getDataset(DATASET); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); + verify(bigqueryRpcMock, times(2)).getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test public void testNonRetryableException() { String exceptionMessage = "Not Implemented"; - EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andThrow(new BigQueryException(501, exceptionMessage)); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenThrow(new BigQueryException(501, exceptionMessage)); bigquery = options .toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); - try { bigquery.getDataset(DatasetId.of(DATASET)); Assert.fail(); } catch (BigQueryException ex) { Assert.assertEquals(exceptionMessage, ex.getMessage()); } + verify(bigqueryRpcMock).getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test public void testRuntimeException() { String exceptionMessage = "Artificial runtime exception"; - EasyMock.expect(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) - .andThrow(new RuntimeException(exceptionMessage)); - EasyMock.replay(bigqueryRpcMock); + when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenThrow(new RuntimeException(exceptionMessage)); bigquery = options .toBuilder() @@ -1985,12 +1953,12 @@ public void testRuntimeException() { } catch (BigQueryException ex) { Assert.assertTrue(ex.getMessage().endsWith(exceptionMessage)); } + verify(bigqueryRpcMock).getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test public void testQueryDryRun() throws Exception { // https://github.com/googleapis/google-cloud-java/issues/2479 - EasyMock.replay(bigqueryRpcMock); try { options .toBuilder() diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java index dc57c1f9a638..4176ec24dcd1 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java @@ -17,17 +17,19 @@ package com.google.cloud.bigquery; import com.google.cloud.TransportOptions; -import org.easymock.EasyMock; import org.junit.Assert; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; +@RunWith(MockitoJUnitRunner.class) public class BigQueryOptionsTest { @Test public void testInvalidTransport() { try { - BigQueryOptions.newBuilder() - .setTransportOptions(EasyMock.createMock(TransportOptions.class)); + BigQueryOptions.newBuilder().setTransportOptions(Mockito.mock(TransportOptions.class)); Assert.fail(); } catch (IllegalArgumentException expected) { Assert.assertNotNull(expected.getMessage()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java index 3d82221fa48c..8e783d396eed 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java @@ -16,12 +16,6 @@ package com.google.cloud.bigquery; -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.createStrictMock; -import static org.easymock.EasyMock.eq; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -29,6 +23,10 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import com.google.api.gax.paging.Page; import com.google.cloud.PageImpl; @@ -37,9 +35,14 @@ import com.google.common.collect.Iterables; import java.util.List; import java.util.Map; -import org.junit.After; +import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.MockitoRule; +@RunWith(MockitoJUnitRunner.class) public class DatasetTest { private static final DatasetId DATASET_ID = DatasetId.of("dataset"); @@ -74,34 +77,26 @@ public class DatasetTest { private static final TableInfo TABLE_INFO3 = TableInfo.newBuilder(TableId.of("dataset", "table3"), EXTERNAL_TABLE_DEFINITION).build(); - private BigQuery serviceMockReturnsOptions = createStrictMock(BigQuery.class); - private BigQueryOptions mockOptions = createMock(BigQueryOptions.class); + @Rule public MockitoRule rule; + private BigQuery bigquery; + private BigQueryOptions mockOptions; private Dataset expectedDataset; private Dataset dataset; - private void initializeExpectedDataset(int optionsCalls) { - expect(serviceMockReturnsOptions.getOptions()).andReturn(mockOptions).times(optionsCalls); - replay(serviceMockReturnsOptions); - bigquery = createStrictMock(BigQuery.class); - expectedDataset = new Dataset(serviceMockReturnsOptions, new Dataset.BuilderImpl(DATASET_INFO)); - } - - private void initializeDataset() { + @Before + public void setUp() { + bigquery = mock(BigQuery.class); + mockOptions = mock(BigQueryOptions.class); + when(bigquery.getOptions()).thenReturn(mockOptions); + expectedDataset = new Dataset(bigquery, new Dataset.BuilderImpl(DATASET_INFO)); dataset = new Dataset(bigquery, new Dataset.BuilderImpl(DATASET_INFO)); } - @After - public void tearDown() throws Exception { - verify(bigquery, serviceMockReturnsOptions); - } - @Test public void testBuilder() { - initializeExpectedDataset(2); - replay(bigquery); Dataset builtDataset = - new Dataset.Builder(serviceMockReturnsOptions, DATASET_ID) + new Dataset.Builder(bigquery, DATASET_ID) .setAcl(ACCESS_RULES) .setCreationTime(CREATION_TIME) .setDefaultTableLifetime(DEFAULT_TABLE_EXPIRATION) @@ -130,242 +125,181 @@ public void testBuilder() { @Test public void testToBuilder() { - initializeExpectedDataset(4); - replay(bigquery); compareDataset(expectedDataset, expectedDataset.toBuilder().build()); } @Test - public void testExists_True() throws Exception { - initializeExpectedDataset(1); + public void testExists_True() { BigQuery.DatasetOption[] expectedOptions = {BigQuery.DatasetOption.fields()}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getDataset(DATASET_INFO.getDatasetId(), expectedOptions)) - .andReturn(expectedDataset); - replay(bigquery); - initializeDataset(); + when(bigquery.getDataset(DATASET_INFO.getDatasetId(), expectedOptions)) + .thenReturn(expectedDataset); assertTrue(dataset.exists()); + verify(bigquery).getDataset(DATASET_INFO.getDatasetId(), expectedOptions); } @Test - public void testExists_False() throws Exception { - initializeExpectedDataset(1); + public void testExists_False() { BigQuery.DatasetOption[] expectedOptions = {BigQuery.DatasetOption.fields()}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getDataset(DATASET_INFO.getDatasetId(), expectedOptions)).andReturn(null); - replay(bigquery); - initializeDataset(); + when(bigquery.getDataset(DATASET_INFO.getDatasetId(), expectedOptions)).thenReturn(null); assertFalse(dataset.exists()); + verify(bigquery).getDataset(DATASET_INFO.getDatasetId(), expectedOptions); } @Test - public void testReload() throws Exception { - initializeExpectedDataset(4); + public void testReload() { DatasetInfo updatedInfo = DATASET_INFO.toBuilder().setDescription("Description").build(); - Dataset expectedDataset = - new Dataset(serviceMockReturnsOptions, new DatasetInfo.BuilderImpl(updatedInfo)); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset())) - .andReturn(expectedDataset); - replay(bigquery); - initializeDataset(); + Dataset expectedDataset = new Dataset(bigquery, new DatasetInfo.BuilderImpl(updatedInfo)); + when(bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset())).thenReturn(expectedDataset); Dataset updatedDataset = dataset.reload(); compareDataset(expectedDataset, updatedDataset); + verify(bigquery).getDataset(DATASET_INFO.getDatasetId().getDataset()); } @Test - public void testReloadNull() throws Exception { - initializeExpectedDataset(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset())).andReturn(null); - replay(bigquery); - initializeDataset(); + public void testReloadNull() { + when(bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset())).thenReturn(null); assertNull(dataset.reload()); + verify(bigquery).getDataset(DATASET_INFO.getDatasetId().getDataset()); } @Test - public void testReloadWithOptions() throws Exception { - initializeExpectedDataset(4); + public void testReloadWithOptions() { DatasetInfo updatedInfo = DATASET_INFO.toBuilder().setDescription("Description").build(); - Dataset expectedDataset = - new Dataset(serviceMockReturnsOptions, new DatasetInfo.BuilderImpl(updatedInfo)); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect( - bigquery.getDataset( - DATASET_INFO.getDatasetId().getDataset(), BigQuery.DatasetOption.fields())) - .andReturn(expectedDataset); - replay(bigquery); - initializeDataset(); + Dataset expectedDataset = new Dataset(bigquery, new DatasetInfo.BuilderImpl(updatedInfo)); + when(bigquery.getDataset( + DATASET_INFO.getDatasetId().getDataset(), BigQuery.DatasetOption.fields())) + .thenReturn(expectedDataset); Dataset updatedDataset = dataset.reload(BigQuery.DatasetOption.fields()); compareDataset(expectedDataset, updatedDataset); + verify(bigquery) + .getDataset(DATASET_INFO.getDatasetId().getDataset(), BigQuery.DatasetOption.fields()); } @Test public void testUpdate() { - initializeExpectedDataset(4); Dataset expectedUpdatedDataset = expectedDataset.toBuilder().setDescription("Description").build(); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.update(eq(expectedDataset))).andReturn(expectedUpdatedDataset); - replay(bigquery); - initializeDataset(); + when(bigquery.update(eq(expectedDataset))).thenReturn(expectedUpdatedDataset); Dataset actualUpdatedDataset = dataset.update(); compareDataset(expectedUpdatedDataset, actualUpdatedDataset); + verify(bigquery).update(eq(expectedDataset)); } @Test public void testUpdateWithOptions() { - initializeExpectedDataset(4); Dataset expectedUpdatedDataset = expectedDataset.toBuilder().setDescription("Description").build(); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.update(eq(expectedDataset), eq(BigQuery.DatasetOption.fields()))) - .andReturn(expectedUpdatedDataset); - replay(bigquery); - initializeDataset(); + when(bigquery.update(eq(expectedDataset), eq(BigQuery.DatasetOption.fields()))) + .thenReturn(expectedUpdatedDataset); Dataset actualUpdatedDataset = dataset.update(BigQuery.DatasetOption.fields()); compareDataset(expectedUpdatedDataset, actualUpdatedDataset); + verify(bigquery).update(eq(expectedDataset), eq(BigQuery.DatasetOption.fields())); } @Test public void testDeleteTrue() { - initializeExpectedDataset(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.delete(DATASET_INFO.getDatasetId())).andReturn(true); - replay(bigquery); - initializeDataset(); + when(bigquery.delete(DATASET_INFO.getDatasetId())).thenReturn(true); assertTrue(dataset.delete()); + verify(bigquery).delete(DATASET_INFO.getDatasetId()); } @Test public void testDeleteFalse() { - initializeExpectedDataset(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.delete(DATASET_INFO.getDatasetId())).andReturn(false); - replay(bigquery); - initializeDataset(); + when(bigquery.delete(DATASET_INFO.getDatasetId())).thenReturn(false); assertFalse(dataset.delete()); + verify(bigquery).delete(DATASET_INFO.getDatasetId()); } @Test - public void testList() throws Exception { - initializeExpectedDataset(4); + public void testList() { List
    tableResults = ImmutableList.of( - new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO1)), - new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO2)), - new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO3))); + new Table(bigquery, new Table.BuilderImpl(TABLE_INFO1)), + new Table(bigquery, new Table.BuilderImpl(TABLE_INFO2)), + new Table(bigquery, new Table.BuilderImpl(TABLE_INFO3))); PageImpl
    expectedPage = new PageImpl<>(null, "c", tableResults); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.listTables(DATASET_INFO.getDatasetId())).andReturn(expectedPage); - replay(bigquery); - initializeDataset(); + when(bigquery.listTables(DATASET_INFO.getDatasetId())).thenReturn(expectedPage); Page
    tablePage = dataset.list(); assertArrayEquals( tableResults.toArray(), Iterables.toArray(tablePage.getValues(), Table.class)); assertEquals(expectedPage.getNextPageToken(), tablePage.getNextPageToken()); + verify(bigquery).listTables(DATASET_INFO.getDatasetId()); } @Test - public void testListWithOptions() throws Exception { - initializeExpectedDataset(4); + public void testListWithOptions() { List
    tableResults = ImmutableList.of( - new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO1)), - new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO2)), - new Table(serviceMockReturnsOptions, new Table.BuilderImpl(TABLE_INFO3))); + new Table(bigquery, new Table.BuilderImpl(TABLE_INFO1)), + new Table(bigquery, new Table.BuilderImpl(TABLE_INFO2)), + new Table(bigquery, new Table.BuilderImpl(TABLE_INFO3))); PageImpl
    expectedPage = new PageImpl<>(null, "c", tableResults); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.listTables(DATASET_INFO.getDatasetId(), BigQuery.TableListOption.pageSize(10L))) - .andReturn(expectedPage); - replay(bigquery); - initializeDataset(); + when(bigquery.listTables(DATASET_INFO.getDatasetId(), BigQuery.TableListOption.pageSize(10L))) + .thenReturn(expectedPage); Page
    tablePage = dataset.list(BigQuery.TableListOption.pageSize(10L)); assertArrayEquals( tableResults.toArray(), Iterables.toArray(tablePage.getValues(), Table.class)); assertEquals(expectedPage.getNextPageToken(), tablePage.getNextPageToken()); + verify(bigquery) + .listTables(DATASET_INFO.getDatasetId(), BigQuery.TableListOption.pageSize(10L)); } @Test - public void testGet() throws Exception { - initializeExpectedDataset(2); - Table expectedTable = - new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(TABLE_INFO1)); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getTable(TABLE_INFO1.getTableId())).andReturn(expectedTable); - replay(bigquery); - initializeDataset(); + public void testGet() { + Table expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO1)); + when(bigquery.getTable(TABLE_INFO1.getTableId())).thenReturn(expectedTable); Table table = dataset.get(TABLE_INFO1.getTableId().getTable()); assertNotNull(table); assertEquals(expectedTable, table); + verify(bigquery).getTable(TABLE_INFO1.getTableId()); } @Test - public void testGetNull() throws Exception { - initializeExpectedDataset(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getTable(TABLE_INFO1.getTableId())).andReturn(null); - replay(bigquery); - initializeDataset(); + public void testGetNull() { + when(bigquery.getTable(TABLE_INFO1.getTableId())).thenReturn(null); assertNull(dataset.get(TABLE_INFO1.getTableId().getTable())); + verify(bigquery).getTable(TABLE_INFO1.getTableId()); } @Test - public void testGetWithOptions() throws Exception { - initializeExpectedDataset(2); - Table expectedTable = - new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(TABLE_INFO1)); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getTable(TABLE_INFO1.getTableId(), BigQuery.TableOption.fields())) - .andReturn(expectedTable); - replay(bigquery); - initializeDataset(); + public void testGetWithOptions() { + Table expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO1)); + when(bigquery.getTable(TABLE_INFO1.getTableId(), BigQuery.TableOption.fields())) + .thenReturn(expectedTable); Table table = dataset.get(TABLE_INFO1.getTableId().getTable(), BigQuery.TableOption.fields()); assertNotNull(table); assertEquals(expectedTable, table); + verify(bigquery).getTable(TABLE_INFO1.getTableId(), BigQuery.TableOption.fields()); } @Test - public void testCreateTable() throws Exception { - initializeExpectedDataset(2); - Table expectedTable = - new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(TABLE_INFO1)); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.create(TABLE_INFO1)).andReturn(expectedTable); - replay(bigquery); - initializeDataset(); + public void testCreateTable() { + Table expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO1)); + when(bigquery.create(TABLE_INFO1)).thenReturn(expectedTable); Table table = dataset.create(TABLE_INFO1.getTableId().getTable(), TABLE_DEFINITION); assertEquals(expectedTable, table); + verify(bigquery).create(TABLE_INFO1); } @Test - public void testCreateTableWithOptions() throws Exception { - initializeExpectedDataset(2); - Table expectedTable = - new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(TABLE_INFO1)); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.create(TABLE_INFO1, BigQuery.TableOption.fields())).andReturn(expectedTable); - replay(bigquery); - initializeDataset(); + public void testCreateTableWithOptions() { + Table expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO1)); + when(bigquery.create(TABLE_INFO1, BigQuery.TableOption.fields())).thenReturn(expectedTable); Table table = dataset.create( TABLE_INFO1.getTableId().getTable(), TABLE_DEFINITION, BigQuery.TableOption.fields()); assertEquals(expectedTable, table); + verify(bigquery).create(TABLE_INFO1, BigQuery.TableOption.fields()); } @Test public void testBigQuery() { - initializeExpectedDataset(1); - replay(bigquery); - assertSame(serviceMockReturnsOptions, expectedDataset.getBigQuery()); + assertSame(bigquery, expectedDataset.getBigQuery()); } @Test public void testToAndFromPb() { - initializeExpectedDataset(4); - replay(bigquery); - compareDataset( - expectedDataset, Dataset.fromPb(serviceMockReturnsOptions, expectedDataset.toPb())); + compareDataset(expectedDataset, Dataset.fromPb(bigquery, expectedDataset.toPb())); } private void compareDataset(Dataset expected, Dataset value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index 978405d09c51..68ccfd627406 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -18,20 +18,18 @@ import static com.google.common.collect.ObjectArrays.concat; import static com.google.common.truth.Truth.assertThat; -import static org.easymock.EasyMock.anyObject; -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.createStrictMock; -import static org.easymock.EasyMock.eq; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; -import com.google.api.core.ApiClock; import com.google.api.core.CurrentMillisClock; import com.google.api.gax.paging.Page; import com.google.cloud.RetryOption; @@ -39,11 +37,16 @@ import com.google.cloud.bigquery.JobStatistics.QueryStatistics; import com.google.common.collect.ImmutableList; import java.util.Collections; -import org.junit.After; import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.MockitoRule; import org.threeten.bp.Duration; +@RunWith(MockitoJUnitRunner.class) public class JobTest { private static final JobId JOB_ID = JobId.of("project", "job"); @@ -78,42 +81,26 @@ public class JobTest { RetryOption.retryDelayMultiplier(1.0) }; - private BigQuery serviceMockReturnsOptions = createStrictMock(BigQuery.class); - private BigQueryOptions mockOptions = createMock(BigQueryOptions.class); + @Rule public MockitoRule rule; + private BigQuery bigquery; + private BigQueryOptions mockOptions; private Job expectedJob; private Job job; - private void initializeExpectedJob(int optionsCalls, JobInfo jobInfo) { - expect(serviceMockReturnsOptions.getOptions()).andReturn(mockOptions).times(optionsCalls); - replay(serviceMockReturnsOptions); - bigquery = createStrictMock(BigQuery.class); - expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(jobInfo)); - } - - private void initializeExpectedJob(int optionsCalls) { - initializeExpectedJob(optionsCalls, JOB_INFO); - } - - private void initializeJob() { - initializeJob(JOB_INFO); - } - - private void initializeJob(JobInfo jobInfo) { - job = new Job(bigquery, new JobInfo.BuilderImpl(jobInfo)); - } - - @After - public void tearDown() throws Exception { - verify(bigquery, serviceMockReturnsOptions); + @Before + public void setUp() { + bigquery = mock(BigQuery.class); + mockOptions = mock(BigQueryOptions.class); + when(bigquery.getOptions()).thenReturn(mockOptions); + expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(JOB_INFO)); + job = new Job(bigquery, new JobInfo.BuilderImpl(JOB_INFO)); } @Test public void testBuilder() { - initializeExpectedJob(2); - replay(bigquery); Job builtJob = - new Job.Builder(serviceMockReturnsOptions, COPY_CONFIGURATION) + new Job.Builder(bigquery, COPY_CONFIGURATION) .setJobId(JOB_ID) .setStatistics(COPY_JOB_STATISTICS) .setJobId(JOB_ID) @@ -131,96 +118,71 @@ public void testBuilder() { assertEquals(JOB_STATUS, builtJob.getStatus()); assertEquals(COPY_CONFIGURATION, builtJob.getConfiguration()); assertEquals(COPY_JOB_STATISTICS, builtJob.getStatistics()); - assertSame(serviceMockReturnsOptions, builtJob.getBigQuery()); + assertSame(bigquery, builtJob.getBigQuery()); } @Test public void testToBuilder() { - initializeExpectedJob(4); - replay(bigquery); compareJob(expectedJob, expectedJob.toBuilder().build()); } @Test - public void testExists_True() throws Exception { - initializeExpectedJob(1); + public void testExists_True() { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields()}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(expectedJob); - replay(bigquery); - initializeJob(); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(expectedJob); assertTrue(job.exists()); + verify(bigquery).getJob(JOB_INFO.getJobId(), expectedOptions); } @Test - public void testExists_False() throws Exception { - initializeExpectedJob(1); + public void testExists_False() { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields()}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(null); - replay(bigquery); - initializeJob(); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(null); assertFalse(job.exists()); + verify(bigquery).getJob(JOB_INFO.getJobId(), expectedOptions); } @Test - public void testIsDone_True() throws Exception { - initializeExpectedJob(2); + public void testIsDone_True() { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; - JobStatus status = createStrictMock(JobStatus.class); - expect(status.getState()).andReturn(JobStatus.State.DONE); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)) - .andReturn(expectedJob.toBuilder().setStatus(status).build()); - replay(status, bigquery); - initializeJob(); + Job job = expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.DONE)).build(); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(job); assertTrue(job.isDone()); - verify(status); + verify(bigquery).getJob(JOB_INFO.getJobId(), expectedOptions); } @Test - public void testIsDone_False() throws Exception { - initializeExpectedJob(2); + public void testIsDone_False() { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; - JobStatus status = createStrictMock(JobStatus.class); - expect(status.getState()).andReturn(JobStatus.State.RUNNING); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)) - .andReturn(expectedJob.toBuilder().setStatus(status).build()); - replay(status, bigquery); - initializeJob(); + Job job = expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(job); assertFalse(job.isDone()); - verify(status); + verify(bigquery).getJob(JOB_INFO.getJobId(), expectedOptions); } @Test - public void testIsDone_NotExists() throws Exception { - initializeExpectedJob(1); + public void testIsDone_NotExists() { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(null); - replay(bigquery); - initializeJob(); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(null); assertTrue(job.isDone()); + verify(bigquery).getJob(JOB_INFO.getJobId(), expectedOptions); } @Test public void testWaitFor() throws InterruptedException { - initializeExpectedJob(2); BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; - JobStatus status = createStrictMock(JobStatus.class); - expect(status.getState()).andReturn(JobStatus.State.DONE); + JobStatus status = mock(JobStatus.class); + when(status.getState()).thenReturn(JobStatus.State.DONE); // caused by optimizing extra call to ResultRetryAlgorithm#shouldRetry() - expect(status.getState()).andReturn(JobStatus.State.DONE); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()); + when(status.getState()).thenReturn(JobStatus.State.DONE); + when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); Job completedJob = expectedJob.toBuilder().setStatus(status).build(); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(completedJob); - expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob); - replay(status, bigquery, mockOptions); - initializeJob(); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(completedJob); + when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(completedJob); assertSame(completedJob, job.waitFor(TEST_RETRY_OPTIONS)); - verify(status, mockOptions); + verify(mockOptions).getClock(); + verify(bigquery).getJob(JOB_INFO.getJobId(), expectedOptions); + verify(bigquery).getJob(JOB_INFO.getJobId()); } @Test @@ -245,11 +207,9 @@ public void testWaitForAndGetQueryResultsEmpty() throws InterruptedException { .setStatus(JOB_STATUS) .build(); - initializeExpectedJob(2, jobInfo); - JobStatus status = createStrictMock(JobStatus.class); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()).times(2); - Job completedJob = expectedJob.toBuilder().setStatus(status).build(); + when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); + Job completedJob = + expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); QueryResponse completedQuery = QueryResponse.newBuilder() .setCompleted(true) @@ -258,17 +218,17 @@ public void testWaitForAndGetQueryResultsEmpty() throws InterruptedException { .setErrors(ImmutableList.of()) .build(); - expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) - .andReturn(completedQuery); - expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob); - expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) - .andReturn(completedQuery); - - replay(status, bigquery, mockOptions); - initializeJob(jobInfo); + when(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) + .thenReturn(completedQuery); + when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(completedJob); + when(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) + .thenReturn(completedQuery); + when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(completedJob); + job = this.job.toBuilder().setConfiguration(jobConfig).build(); assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameInstanceAs(completedJob); assertThat(job.getQueryResults().iterateAll()).isEmpty(); - verify(status, mockOptions); + verify(bigquery, times(2)).getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS); + verify(bigquery).getJob(JOB_INFO.getJobId()); } @Test @@ -293,11 +253,11 @@ public void testWaitForAndGetQueryResultsEmptyWithSchema() throws InterruptedExc .setStatus(JOB_STATUS) .build(); - initializeExpectedJob(2, jobInfo); - JobStatus status = createStrictMock(JobStatus.class); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()).times(2); - Job completedJob = expectedJob.toBuilder().setStatus(status).build(); + JobStatus status = mock(JobStatus.class); + when(bigquery.getOptions()).thenReturn(mockOptions); + when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); + Job completedJob = + expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); QueryResponse completedQuery = QueryResponse.newBuilder() .setCompleted(true) @@ -305,19 +265,17 @@ public void testWaitForAndGetQueryResultsEmptyWithSchema() throws InterruptedExc .setSchema(Schema.of(Field.of("field1", LegacySQLTypeName.BOOLEAN))) .setErrors(ImmutableList.of()) .build(); - - expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) - .andReturn(completedQuery); - expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob); - expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) - .andReturn(completedQuery); - - replay(status, bigquery, mockOptions); - initializeJob(jobInfo); + when(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) + .thenReturn(completedQuery); + when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(completedJob); + when(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) + .thenReturn(completedQuery); + job = this.job.toBuilder().setConfiguration(jobConfig).build(); assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameInstanceAs(completedJob); assertThat(job.getQueryResults().getSchema()) .isEqualTo(Schema.of(Field.of("field1", LegacySQLTypeName.BOOLEAN))); - verify(status, mockOptions); + verify(bigquery, times(2)).getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS); + verify(bigquery).getJob(JOB_INFO.getJobId()); } @Test @@ -342,11 +300,11 @@ public void testWaitForAndGetQueryResults() throws InterruptedException { .setStatus(JOB_STATUS) .build(); - initializeExpectedJob(2, jobInfo); - JobStatus status = createStrictMock(JobStatus.class); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()).times(2); - Job completedJob = expectedJob.toBuilder().setStatus(status).build(); + JobStatus status = mock(JobStatus.class); + when(bigquery.getOptions()).thenReturn(mockOptions); + when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); + Job completedJob = + expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); // TODO(pongad): remove when we bump gax to 1.15. Page singlePage = new Page() { @@ -384,27 +342,21 @@ public Iterable getValues() { .setErrors(ImmutableList.of()) .build(); - expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) - .andReturn(completedQuery); - expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob); - expect(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) - .andReturn(completedQuery); - expect(bigquery.listTableData(eq(TABLE_ID1), anyObject(Schema.class))).andReturn(result); - - replay(status, bigquery, mockOptions); - initializeJob(jobInfo); + when(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) + .thenReturn(completedQuery); + when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(completedJob); + when(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) + .thenReturn(completedQuery); + when(bigquery.listTableData(eq(TABLE_ID1), any(Schema.class))).thenReturn(result); + job = this.job.toBuilder().setConfiguration(jobConfig).build(); assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameInstanceAs(completedJob); assertThat(job.getQueryResults().iterateAll()).hasSize(0); - verify(status, mockOptions); + verify(bigquery, times(2)).getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS); + verify(bigquery).getJob(JOB_INFO.getJobId()); } @Test public void testWaitForAndGetQueryResults_Unsupported() throws InterruptedException { - initializeExpectedJob(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - replay(bigquery, mockOptions); - initializeJob(); - try { job.getQueryResults(); Assert.fail(); @@ -415,76 +367,56 @@ public void testWaitForAndGetQueryResults_Unsupported() throws InterruptedExcept @Test public void testWaitFor_Null() throws InterruptedException { - initializeExpectedJob(1); BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(null); - replay(bigquery, mockOptions); - initializeJob(); + when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(null); assertNull(job.waitFor(TEST_RETRY_OPTIONS)); - verify(mockOptions); + verify(bigquery).getJob(JOB_INFO.getJobId(), expectedOptions); } @Test public void testWaitForWithCheckingPeriod() throws InterruptedException { - initializeExpectedJob(3); BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; - JobStatus status = createStrictMock(JobStatus.class); - expect(status.getState()).andReturn(JobStatus.State.RUNNING); + JobStatus status = mock(JobStatus.class); + when(status.getState()).thenReturn(JobStatus.State.RUNNING); // caused by optimizing extra call to ResultRetryAlgorithm#shouldRetry() - expect(status.getState()).andReturn(JobStatus.State.RUNNING); - expect(status.getState()).andReturn(JobStatus.State.DONE); + when(status.getState()).thenReturn(JobStatus.State.RUNNING); + when(status.getState()).thenReturn(JobStatus.State.DONE); // caused by optimizing extra call to ResultRetryAlgorithm#shouldRetry() - expect(status.getState()).andReturn(JobStatus.State.DONE); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()); + when(status.getState()).thenReturn(JobStatus.State.DONE); + when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); Job runningJob = expectedJob.toBuilder().setStatus(status).build(); Job completedJob = expectedJob.toBuilder().setStatus(status).build(); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(runningJob); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(completedJob); - expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(completedJob); - replay(status, bigquery, mockOptions); - initializeJob(); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(runningJob); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(completedJob); + when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(completedJob); assertSame(completedJob, job.waitFor(TEST_RETRY_OPTIONS)); - verify(status, mockOptions); + verify(mockOptions).getClock(); + verify(bigquery).getJob(JOB_INFO.getJobId(), expectedOptions); + verify(bigquery).getJob(JOB_INFO.getJobId()); } @Test public void testWaitForWithCheckingPeriod_Null() throws InterruptedException { - initializeExpectedJob(2); BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(mockOptions.getClock()).andReturn(CurrentMillisClock.getDefaultClock()); + when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); Job runningJob = expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(runningJob); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(null); - replay(bigquery, mockOptions); - initializeJob(); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(runningJob); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(null); assertNull(job.waitFor(TEST_RETRY_OPTIONS)); - verify(bigquery, mockOptions); + verify(mockOptions).getClock(); + verify(bigquery).getJob(JOB_INFO.getJobId(), expectedOptions); } @Test public void testWaitForWithTimeout() throws InterruptedException { - initializeExpectedJob(2); BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; - ApiClock clock = createStrictMock(ApiClock.class); - expect(clock.nanoTime()).andReturn(0L); - expect(clock.nanoTime()).andReturn(1_000_000L); - expect(clock.nanoTime()).andReturn(3_000_000L); - JobStatus status = createStrictMock(JobStatus.class); - expect(status.getState()).andReturn(JobStatus.State.RUNNING); - expect(status.getState()).andReturn(JobStatus.State.RUNNING); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(mockOptions.getClock()).andReturn(clock); - Job runningJob = expectedJob.toBuilder().setStatus(status).build(); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(runningJob); - expect(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).andReturn(runningJob); - replay(status, bigquery, clock, mockOptions); - initializeJob(); - + when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); + Job runningJob = + expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(runningJob); + when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(runningJob); try { job.waitFor(concat(TEST_RETRY_OPTIONS, RetryOption.totalTimeout(Duration.ofMillis(3)))); Assert.fail(); @@ -494,72 +426,52 @@ public void testWaitForWithTimeout() throws InterruptedException { } @Test - public void testReload() throws Exception { - initializeExpectedJob(4); + public void testReload() { JobInfo updatedInfo = JOB_INFO.toBuilder().setEtag("etag").build(); - Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(updatedInfo)); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(expectedJob); - replay(bigquery); - initializeJob(); + Job expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(updatedInfo)); + when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(expectedJob); Job updatedJob = job.reload(); compareJob(expectedJob, updatedJob); + verify(bigquery).getJob(JOB_INFO.getJobId()); } @Test - public void testReloadNull() throws Exception { - initializeExpectedJob(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getJob(JOB_INFO.getJobId())).andReturn(null); - replay(bigquery); - initializeJob(); + public void testReloadNull() { + when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(null); assertNull(job.reload()); + verify(bigquery).getJob(JOB_INFO.getJobId()); } @Test - public void testReloadWithOptions() throws Exception { - initializeExpectedJob(4); + public void testReloadWithOptions() { JobInfo updatedInfo = JOB_INFO.toBuilder().setEtag("etag").build(); - Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(updatedInfo)); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getJob(JOB_INFO.getJobId(), BigQuery.JobOption.fields())) - .andReturn(expectedJob); - replay(bigquery); - initializeJob(); + Job expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(updatedInfo)); + when(bigquery.getJob(JOB_INFO.getJobId(), BigQuery.JobOption.fields())).thenReturn(expectedJob); Job updatedJob = job.reload(BigQuery.JobOption.fields()); compareJob(expectedJob, updatedJob); + verify(bigquery).getJob(JOB_INFO.getJobId(), BigQuery.JobOption.fields()); } @Test - public void testCancel() throws Exception { - initializeExpectedJob(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.cancel(JOB_INFO.getJobId())).andReturn(true); - replay(bigquery); - initializeJob(); + public void testCancel() { + when(bigquery.cancel(JOB_INFO.getJobId())).thenReturn(true); assertTrue(job.cancel()); + verify(bigquery).cancel(JOB_INFO.getJobId()); } @Test public void testBigQuery() { - initializeExpectedJob(1); - replay(bigquery); - assertSame(serviceMockReturnsOptions, expectedJob.getBigQuery()); + assertSame(bigquery, expectedJob.getBigQuery()); } @Test public void testToAndFromPb() { - initializeExpectedJob(4); - replay(bigquery); - compareJob(expectedJob, Job.fromPb(serviceMockReturnsOptions, expectedJob.toPb())); + compareJob(expectedJob, Job.fromPb(bigquery, expectedJob.toPb())); } @Test public void testToAndFromPbWithoutConfiguration() { - JobInfo jobInfo = JobInfo.newBuilder(null).build(); - initializeExpectedJob(4, jobInfo); - replay(bigquery); - compareJob(expectedJob, Job.fromPb(serviceMockReturnsOptions, expectedJob.toPb())); + compareJob(expectedJob, Job.fromPb(bigquery, expectedJob.toPb())); } private void compareJob(Job expected, Job value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java index 5ff0f8c89ee7..756277adc3f2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java @@ -16,26 +16,26 @@ package com.google.cloud.bigquery; -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.createStrictMock; -import static org.easymock.EasyMock.eq; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; -import org.junit.After; +import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.MockitoRule; +@RunWith(MockitoJUnitRunner.class) public class ModelTest { - private BigQuery serviceMockReturnsOptions = createStrictMock(BigQuery.class); - private BigQueryOptions mockOptions = createMock(BigQueryOptions.class); - private static final ModelId MODEL_ID = ModelId.of("dataset", "model"); private static final String ETAG = "etag"; private static final Long CREATION_TIME = 10L; @@ -54,32 +54,26 @@ public class ModelTest { .setFriendlyName(FRIENDLY_NAME) .build(); + @Rule public MockitoRule rule; + private BigQuery bigquery; + private BigQueryOptions mockOptions; private Model expectedModel; private Model model; - private void initializeExpectedModel(int optionsCalls) { - expect(serviceMockReturnsOptions.getOptions()).andReturn(mockOptions).times(optionsCalls); - replay(serviceMockReturnsOptions); - bigquery = createStrictMock(BigQuery.class); - expectedModel = new Model(serviceMockReturnsOptions, new ModelInfo.BuilderImpl(MODEL_INFO)); - } - - private void initializeModel() { + @Before + public void setUp() { + bigquery = mock(BigQuery.class); + mockOptions = mock(BigQueryOptions.class); + when(bigquery.getOptions()).thenReturn(mockOptions); + expectedModel = new Model(bigquery, new ModelInfo.BuilderImpl(MODEL_INFO)); model = new Model(bigquery, new ModelInfo.BuilderImpl(MODEL_INFO)); } - @After - public void tearDown() throws Exception { - verify(bigquery, serviceMockReturnsOptions); - } - @Test public void testBuilder() { - initializeExpectedModel(2); - replay(bigquery); Model builtModel = - new Model.Builder(serviceMockReturnsOptions, MODEL_ID) + new Model.Builder(bigquery, MODEL_ID) .setEtag(ETAG) .setCreationTime(CREATION_TIME) .setExpirationTime(EXPIRATION_TIME) @@ -88,105 +82,78 @@ public void testBuilder() { .setFriendlyName(FRIENDLY_NAME) .build(); assertEquals(ETAG, builtModel.getEtag()); - assertSame(serviceMockReturnsOptions, builtModel.getBigQuery()); + assertSame(bigquery, builtModel.getBigQuery()); } @Test public void testToBuilder() { - initializeExpectedModel(2); - replay(bigquery); compareModelInfo(expectedModel, expectedModel.toBuilder().build()); } @Test - public void testExists_True() throws Exception { - initializeExpectedModel(1); + public void testExists_True() { BigQuery.ModelOption[] expectedOptions = {BigQuery.ModelOption.fields()}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getModel(MODEL_INFO.getModelId(), expectedOptions)).andReturn(expectedModel); - replay(bigquery); - initializeModel(); + when(bigquery.getModel(MODEL_INFO.getModelId(), expectedOptions)).thenReturn(expectedModel); assertTrue(model.exists()); + verify(bigquery).getModel(MODEL_INFO.getModelId(), expectedOptions); } @Test - public void testExists_False() throws Exception { - initializeExpectedModel(1); + public void testExists_False() { BigQuery.ModelOption[] expectedOptions = {BigQuery.ModelOption.fields()}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getModel(MODEL_INFO.getModelId(), expectedOptions)).andReturn(null); - replay(bigquery); - initializeModel(); + when(bigquery.getModel(MODEL_INFO.getModelId(), expectedOptions)).thenReturn(null); assertFalse(model.exists()); + verify(bigquery).getModel(MODEL_INFO.getModelId(), expectedOptions); } @Test - public void testReload() throws Exception { - initializeExpectedModel(4); + public void testReload() { ModelInfo updatedInfo = MODEL_INFO.toBuilder().setDescription("Description").build(); - Model expectedModel = - new Model(serviceMockReturnsOptions, new ModelInfo.BuilderImpl(updatedInfo)); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getModel(MODEL_INFO.getModelId())).andReturn(expectedModel); - replay(bigquery); - initializeModel(); + Model expectedModel = new Model(bigquery, new ModelInfo.BuilderImpl(updatedInfo)); + when(bigquery.getModel(MODEL_INFO.getModelId())).thenReturn(expectedModel); Model updatedModel = model.reload(); compareModel(expectedModel, updatedModel); + verify(bigquery).getModel(MODEL_INFO.getModelId()); } @Test - public void testReloadNull() throws Exception { - initializeExpectedModel(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getModel(MODEL_INFO.getModelId())).andReturn(null); - replay(bigquery); - initializeModel(); + public void testReloadNull() { + when(bigquery.getModel(MODEL_INFO.getModelId())).thenReturn(null); assertNull(model.reload()); + verify(bigquery).getModel(MODEL_INFO.getModelId()); } @Test public void testUpdate() { - initializeExpectedModel(4); Model expectedUpdatedModel = expectedModel.toBuilder().setDescription("Description").build(); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.update(eq(expectedModel))).andReturn(expectedUpdatedModel); - replay(bigquery); - initializeModel(); + when(bigquery.update(eq(expectedModel))).thenReturn(expectedUpdatedModel); Model actualUpdatedModel = model.update(); compareModel(expectedUpdatedModel, actualUpdatedModel); + verify(bigquery).update(eq(expectedModel)); } @Test public void testUpdateWithOptions() { - initializeExpectedModel(4); Model expectedUpdatedModel = expectedModel.toBuilder().setDescription("Description").build(); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.update(eq(expectedModel), eq(BigQuery.ModelOption.fields()))) - .andReturn(expectedUpdatedModel); - replay(bigquery); - initializeModel(); + when(bigquery.update(eq(expectedModel), eq(BigQuery.ModelOption.fields()))) + .thenReturn(expectedUpdatedModel); Model actualUpdatedModel = model.update(BigQuery.ModelOption.fields()); compareModel(expectedUpdatedModel, actualUpdatedModel); + verify(bigquery).update(eq(expectedModel), eq(BigQuery.ModelOption.fields())); } @Test public void testDeleteTrue() { - initializeExpectedModel(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.delete(MODEL_INFO.getModelId())).andReturn(true); - replay(bigquery); - initializeModel(); + when(bigquery.delete(MODEL_INFO.getModelId())).thenReturn(true); assertTrue(model.delete()); + verify(bigquery).delete(MODEL_INFO.getModelId()); } @Test public void testDeleteFalse() { - initializeExpectedModel(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.delete(MODEL_INFO.getModelId())).andReturn(false); - replay(bigquery); - initializeModel(); + when(bigquery.delete(MODEL_INFO.getModelId())).thenReturn(false); assertFalse(model.delete()); + verify(bigquery).delete(MODEL_INFO.getModelId()); } private void compareModel(Model expected, Model value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java index 36301aae58fd..c51c77193e9d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java @@ -15,19 +15,28 @@ */ package com.google.cloud.bigquery; -import static org.easymock.EasyMock.*; -import static org.easymock.EasyMock.replay; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import com.google.common.collect.ImmutableList; import java.util.List; +import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.MockitoRule; +@RunWith(MockitoJUnitRunner.class) public class RoutineTest { - private BigQuery serviceMockReturnsOptions = createStrictMock(BigQuery.class); - private BigQueryOptions mockOptions = createMock(BigQueryOptions.class); - private static final RoutineId ROUTINE_ID = RoutineId.of("dataset", "routine"); private static final String ETAG = "etag"; private static final String ROUTINE_TYPE = "SCALAR_FUNCTION"; @@ -64,32 +73,26 @@ public class RoutineTest { .setBody(BODY) .build(); + @Rule public MockitoRule rule; + private BigQuery bigquery; + private BigQueryOptions mockOptions; private Routine expectedRoutine; private Routine routine; - private void initializeExpectedRoutine(int optionsCalls) { - expect(serviceMockReturnsOptions.getOptions()).andReturn(mockOptions).times(optionsCalls); - replay(serviceMockReturnsOptions); - bigquery = createStrictMock(BigQuery.class); - expectedRoutine = - new Routine(serviceMockReturnsOptions, new RoutineInfo.BuilderImpl(ROUTINE_INFO)); - } - - private void initializeRoutine() { + @Before + public void setUp() { + bigquery = mock(BigQuery.class); + mockOptions = mock(BigQueryOptions.class); + when(bigquery.getOptions()).thenReturn(mockOptions); + expectedRoutine = new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO)); routine = new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO)); } - private void tearDown() throws Exception { - verify(bigquery, serviceMockReturnsOptions); - } - @Test public void testBuilder() { - initializeExpectedRoutine(2); - replay(bigquery); Routine builtRoutine = - new Routine.Builder(serviceMockReturnsOptions, ROUTINE_ID) + new Routine.Builder(bigquery, ROUTINE_ID) .setEtag(ETAG) .setRoutineType(ROUTINE_TYPE) .setCreationTime(CREATION_TIME) @@ -101,106 +104,79 @@ public void testBuilder() { .setBody(BODY) .build(); assertEquals(ETAG, builtRoutine.getEtag()); - assertSame(serviceMockReturnsOptions, builtRoutine.getBigQuery()); + assertSame(bigquery, builtRoutine.getBigQuery()); } @Test public void testToBuilder() { - initializeExpectedRoutine(2); - replay(bigquery); compareRoutineInfo(expectedRoutine, expectedRoutine.toBuilder().build()); } @Test - public void testExists_True() throws Exception { - initializeExpectedRoutine(1); + public void testExists_True() { BigQuery.RoutineOption[] expectedOptions = {BigQuery.RoutineOption.fields()}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getRoutine(ROUTINE_INFO.getRoutineId(), expectedOptions)).andReturn(null); - replay(bigquery); - initializeRoutine(); + when(bigquery.getRoutine(ROUTINE_INFO.getRoutineId(), expectedOptions)).thenReturn(null); assertFalse(routine.exists()); + verify(bigquery).getRoutine(ROUTINE_INFO.getRoutineId(), expectedOptions); } @Test - public void testExists_False() throws Exception { - initializeExpectedRoutine(1); + public void testExists_False() { BigQuery.RoutineOption[] expectedOptions = {BigQuery.RoutineOption.fields()}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getRoutine(ROUTINE_INFO.getRoutineId(), expectedOptions)) - .andReturn(expectedRoutine); - replay(bigquery); - initializeRoutine(); + when(bigquery.getRoutine(ROUTINE_INFO.getRoutineId(), expectedOptions)) + .thenReturn(expectedRoutine); assertTrue(routine.exists()); + verify(bigquery).getRoutine(ROUTINE_INFO.getRoutineId(), expectedOptions); } @Test - public void testReload() throws Exception { - initializeExpectedRoutine(4); + public void testReload() { RoutineInfo updatedInfo = ROUTINE_INFO.toBuilder().setBody("body2").build(); - Routine expectedRoutine = - new Routine(serviceMockReturnsOptions, new RoutineInfo.BuilderImpl(updatedInfo)); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getRoutine(ROUTINE_INFO.getRoutineId())).andReturn(expectedRoutine); - replay(bigquery); - initializeRoutine(); + Routine expectedRoutine = new Routine(bigquery, new RoutineInfo.BuilderImpl(updatedInfo)); + when(bigquery.getRoutine(ROUTINE_INFO.getRoutineId())).thenReturn(expectedRoutine); Routine updatedRoutine = routine.reload(); compareRoutine(expectedRoutine, updatedRoutine); + verify(bigquery).getRoutine(ROUTINE_INFO.getRoutineId()); } @Test - public void testReload_Null() throws Exception { - initializeExpectedRoutine(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getRoutine(ROUTINE_INFO.getRoutineId())).andReturn(null); - replay(bigquery); - initializeRoutine(); + public void testReload_Null() { + when(bigquery.getRoutine(ROUTINE_INFO.getRoutineId())).thenReturn(null); assertNull(routine.reload()); + verify(bigquery).getRoutine(ROUTINE_INFO.getRoutineId()); } @Test public void testUpdate() { - initializeExpectedRoutine(4); Routine expectedUpdatedRoutine = expectedRoutine.toBuilder().setBody("body2").build(); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.update(eq(expectedRoutine))).andReturn(expectedUpdatedRoutine); - replay(bigquery); - initializeRoutine(); + when(bigquery.update(eq(expectedRoutine))).thenReturn(expectedUpdatedRoutine); Routine actualUpdatedRoutine = routine.update(); compareRoutine(expectedUpdatedRoutine, actualUpdatedRoutine); + verify(bigquery).update(eq(expectedRoutine)); } @Test public void testUpdateWithOptions() { - initializeExpectedRoutine(4); Routine expectedUpdatedRoutine = expectedRoutine.toBuilder().setBody("body2").build(); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.update(eq(expectedRoutine), eq(BigQuery.RoutineOption.fields()))) - .andReturn(expectedUpdatedRoutine); - replay(bigquery); - initializeRoutine(); + when(bigquery.update(eq(expectedRoutine), eq(BigQuery.RoutineOption.fields()))) + .thenReturn(expectedUpdatedRoutine); Routine actualUpdatedRoutine = routine.update(BigQuery.RoutineOption.fields()); compareRoutine(expectedUpdatedRoutine, actualUpdatedRoutine); + verify(bigquery).update(eq(expectedRoutine), eq(BigQuery.RoutineOption.fields())); } @Test public void testDeleteTrue() { - initializeExpectedRoutine(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.delete(ROUTINE_INFO.getRoutineId())).andReturn(true); - replay(bigquery); - initializeRoutine(); + when(bigquery.delete(ROUTINE_INFO.getRoutineId())).thenReturn(true); assertTrue(routine.delete()); + verify(bigquery).delete(ROUTINE_INFO.getRoutineId()); } @Test public void testDeleteFalse() { - initializeExpectedRoutine(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.delete(ROUTINE_INFO.getRoutineId())).andReturn(false); - replay(bigquery); - initializeRoutine(); + when(bigquery.delete(ROUTINE_INFO.getRoutineId())).thenReturn(false); assertFalse(routine.delete()); + verify(bigquery).delete(ROUTINE_INFO.getRoutineId()); } private void compareRoutine(Routine expected, Routine value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java index 0b4707db1437..a959a899164d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java @@ -16,19 +16,17 @@ package com.google.cloud.bigquery; -import static org.easymock.EasyMock.anyObject; -import static org.easymock.EasyMock.capture; -import static org.easymock.EasyMock.captureLong; -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.eq; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import com.google.cloud.RestorableState; import com.google.cloud.WriteChannel; @@ -39,13 +37,15 @@ import java.nio.ByteBuffer; import java.util.Arrays; import java.util.Random; -import org.easymock.Capture; -import org.easymock.CaptureType; -import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.junit.MockitoJUnitRunner; +@RunWith(MockitoJUnitRunner.class) public class TableDataWriteChannelTest { private static final String UPLOAD_ID = "uploadid"; @@ -73,22 +73,21 @@ public class TableDataWriteChannelTest { private BigQuery bigqueryMock; private Job job; + @Captor private ArgumentCaptor capturedBuffer; + @Captor private ArgumentCaptor capturedPosition; + private TableDataWriteChannel writer; @Before public void setUp() { - rpcFactoryMock = createMock(BigQueryRpcFactory.class); - bigqueryRpcMock = createMock(BigQueryRpc.class); - bigqueryFactoryMock = createMock(BigQueryFactory.class); - bigqueryMock = createMock(BigQuery.class); - expect(bigqueryMock.getOptions()).andReturn(options).anyTimes(); - replay(bigqueryMock); + rpcFactoryMock = mock(BigQueryRpcFactory.class); + bigqueryRpcMock = mock(BigQueryRpc.class); + bigqueryFactoryMock = mock(BigQueryFactory.class); + bigqueryMock = mock(BigQuery.class); + when(bigqueryMock.getOptions()).thenReturn(options); job = new Job(bigqueryMock, new JobInfo.BuilderImpl(JOB_INFO)); - expect(rpcFactoryMock.create(anyObject(BigQueryOptions.class))).andReturn(bigqueryRpcMock); - expect(bigqueryFactoryMock.create(anyObject(BigQueryOptions.class))) - .andReturn(bigqueryMock) - .anyTimes(); - replay(rpcFactoryMock, bigqueryFactoryMock); + when(rpcFactoryMock.create(any(BigQueryOptions.class))).thenReturn(bigqueryRpcMock); + when(bigqueryFactoryMock.create(any(BigQueryOptions.class))).thenReturn(bigqueryMock); options = BigQueryOptions.newBuilder() .setProjectId("projectid") @@ -97,124 +96,131 @@ public void setUp() { .build(); } - @After - public void tearDown() throws Exception { - verify(rpcFactoryMock, bigqueryRpcMock, bigqueryFactoryMock, bigqueryMock); - } - @Test public void testCreate() { - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andReturn(UPLOAD_ID); - replay(bigqueryRpcMock); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); assertTrue(writer.isOpen()); assertNull(writer.getJob()); + verify(bigqueryRpcMock) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); } @Test public void testCreateRetryableError() { BigQueryException exception = new BigQueryException(new SocketException("Socket closed")); - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andThrow(exception); - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andReturn(UPLOAD_ID); - replay(bigqueryRpcMock); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenThrow(exception) + .thenReturn(UPLOAD_ID); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); assertTrue(writer.isOpen()); assertNull(writer.getJob()); + verify(bigqueryRpcMock, times(2)) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); } @Test public void testCreateNonRetryableError() throws IOException { RuntimeException ex = new RuntimeException("expected"); - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andThrow(ex); - replay(bigqueryRpcMock); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenThrow(ex); try (TableDataWriteChannel channel = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION)) { Assert.fail(); } catch (RuntimeException expected) { Assert.assertEquals("java.lang.RuntimeException: expected", expected.getMessage()); } + verify(bigqueryRpcMock) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); } @Test public void testWriteWithoutFlush() throws IOException { - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andReturn(UPLOAD_ID); - replay(bigqueryRpcMock); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); assertEquals(MIN_CHUNK_SIZE, writer.write(ByteBuffer.allocate(MIN_CHUNK_SIZE))); assertNull(writer.getJob()); + verify(bigqueryRpcMock) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); } @Test public void testWriteWithFlush() throws IOException { - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andReturn(UPLOAD_ID); - Capture capturedBuffer = Capture.newInstance(); - expect( - bigqueryRpcMock.write( - eq(UPLOAD_ID), - capture(capturedBuffer), - eq(0), - eq(0L), - eq(CUSTOM_CHUNK_SIZE), - eq(false))) - .andReturn(null); - replay(bigqueryRpcMock); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); + when(bigqueryRpcMock.write( + eq(UPLOAD_ID), + capturedBuffer.capture(), + eq(0), + eq(0L), + eq(CUSTOM_CHUNK_SIZE), + eq(false))) + .thenReturn(null); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); writer.setChunkSize(CUSTOM_CHUNK_SIZE); ByteBuffer buffer = randomBuffer(CUSTOM_CHUNK_SIZE); assertEquals(CUSTOM_CHUNK_SIZE, writer.write(buffer)); assertArrayEquals(buffer.array(), capturedBuffer.getValue()); assertNull(writer.getJob()); + verify(bigqueryRpcMock) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); + verify(bigqueryRpcMock) + .write( + eq(UPLOAD_ID), + capturedBuffer.capture(), + eq(0), + eq(0L), + eq(CUSTOM_CHUNK_SIZE), + eq(false)); } @Test public void testWritesAndFlush() throws IOException { - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andReturn(UPLOAD_ID); - Capture capturedBuffer = Capture.newInstance(); - expect( - bigqueryRpcMock.write( - eq(UPLOAD_ID), - capture(capturedBuffer), - eq(0), - eq(0L), - eq(DEFAULT_CHUNK_SIZE), - eq(false))) - .andReturn(null); - replay(bigqueryRpcMock); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); + when(bigqueryRpcMock.write( + eq(UPLOAD_ID), + capturedBuffer.capture(), + eq(0), + eq(0L), + eq(DEFAULT_CHUNK_SIZE), + eq(false))) + .thenReturn(null); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); ByteBuffer[] buffers = new ByteBuffer[DEFAULT_CHUNK_SIZE / MIN_CHUNK_SIZE]; for (int i = 0; i < buffers.length; i++) { @@ -228,50 +234,57 @@ public void testWritesAndFlush() throws IOException { capturedBuffer.getValue(), MIN_CHUNK_SIZE * i, MIN_CHUNK_SIZE * (i + 1))); } assertNull(writer.getJob()); + verify(bigqueryRpcMock) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); + verify(bigqueryRpcMock) + .write( + eq(UPLOAD_ID), + capturedBuffer.capture(), + eq(0), + eq(0L), + eq(DEFAULT_CHUNK_SIZE), + eq(false)); } @Test public void testCloseWithoutFlush() throws IOException { - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andReturn(UPLOAD_ID); - Capture capturedBuffer = Capture.newInstance(); - expect( - bigqueryRpcMock.write( - eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true))) - .andReturn(job.toPb()); - replay(bigqueryRpcMock); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); + when(bigqueryRpcMock.write( + eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true))) + .thenReturn(job.toPb()); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); assertTrue(writer.isOpen()); writer.close(); assertArrayEquals(new byte[0], capturedBuffer.getValue()); assertTrue(!writer.isOpen()); assertEquals(job, writer.getJob()); + verify(bigqueryRpcMock) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); + verify(bigqueryRpcMock) + .write(eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); } @Test public void testCloseWithFlush() throws IOException { - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andReturn(UPLOAD_ID); - Capture capturedBuffer = Capture.newInstance(); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); ByteBuffer buffer = randomBuffer(MIN_CHUNK_SIZE); - expect( - bigqueryRpcMock.write( - eq(UPLOAD_ID), - capture(capturedBuffer), - eq(0), - eq(0L), - eq(MIN_CHUNK_SIZE), - eq(true))) - .andReturn(job.toPb()); - replay(bigqueryRpcMock); + when(bigqueryRpcMock.write( + eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(MIN_CHUNK_SIZE), eq(true))) + .thenReturn(job.toPb()); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); assertTrue(writer.isOpen()); writer.write(buffer); @@ -280,22 +293,26 @@ public void testCloseWithFlush() throws IOException { assertArrayEquals(buffer.array(), Arrays.copyOf(capturedBuffer.getValue(), MIN_CHUNK_SIZE)); assertTrue(!writer.isOpen()); assertEquals(job, writer.getJob()); + verify(bigqueryRpcMock) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); + verify(bigqueryRpcMock) + .write( + eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(MIN_CHUNK_SIZE), eq(true)); } @Test public void testWriteClosed() throws IOException { - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andReturn(UPLOAD_ID); - Capture capturedBuffer = Capture.newInstance(); - expect( - bigqueryRpcMock.write( - eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true))) - .andReturn(job.toPb()); - replay(bigqueryRpcMock); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); + when(bigqueryRpcMock.write( + eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true))) + .thenReturn(job.toPb()); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); writer.close(); assertEquals(job, writer.getJob()); @@ -305,57 +322,67 @@ public void testWriteClosed() throws IOException { } catch (IOException ex) { // expected } + verify(bigqueryRpcMock) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); + verify(bigqueryRpcMock) + .write(eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); } @Test public void testSaveAndRestore() throws IOException { - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andReturn(UPLOAD_ID); - Capture capturedBuffer = Capture.newInstance(CaptureType.ALL); - Capture capturedPosition = Capture.newInstance(CaptureType.ALL); - expect( - bigqueryRpcMock.write( - eq(UPLOAD_ID), - capture(capturedBuffer), - eq(0), - captureLong(capturedPosition), - eq(DEFAULT_CHUNK_SIZE), - eq(false))) - .andReturn(null) - .times(2); - replay(bigqueryRpcMock); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); + when(bigqueryRpcMock.write( + eq(UPLOAD_ID), + capturedBuffer.capture(), + eq(0), + capturedPosition.capture(), + eq(DEFAULT_CHUNK_SIZE), + eq(false))) + .thenReturn(null); ByteBuffer buffer1 = randomBuffer(DEFAULT_CHUNK_SIZE); ByteBuffer buffer2 = randomBuffer(DEFAULT_CHUNK_SIZE); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); assertEquals(DEFAULT_CHUNK_SIZE, writer.write(buffer1)); - assertArrayEquals(buffer1.array(), capturedBuffer.getValues().get(0)); - assertEquals(new Long(0L), capturedPosition.getValues().get(0)); + assertArrayEquals(buffer1.array(), capturedBuffer.getAllValues().get(0)); + assertEquals(new Long(0L), capturedPosition.getAllValues().get(0)); assertNull(writer.getJob()); RestorableState writerState = writer.capture(); WriteChannel restoredWriter = writerState.restore(); assertEquals(DEFAULT_CHUNK_SIZE, restoredWriter.write(buffer2)); - assertArrayEquals(buffer2.array(), capturedBuffer.getValues().get(1)); - assertEquals(new Long(DEFAULT_CHUNK_SIZE), capturedPosition.getValues().get(1)); + assertArrayEquals(buffer2.array(), capturedBuffer.getAllValues().get(1)); + assertEquals(new Long(DEFAULT_CHUNK_SIZE), capturedPosition.getAllValues().get(1)); + verify(bigqueryRpcMock) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); + verify(bigqueryRpcMock, times(2)) + .write( + eq(UPLOAD_ID), + capturedBuffer.capture(), + eq(0), + capturedPosition.capture(), + eq(DEFAULT_CHUNK_SIZE), + eq(false)); } @Test public void testSaveAndRestoreClosed() throws IOException { - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andReturn(UPLOAD_ID); - Capture capturedBuffer = Capture.newInstance(); - expect( - bigqueryRpcMock.write( - eq(UPLOAD_ID), capture(capturedBuffer), eq(0), eq(0L), eq(0), eq(true))) - .andReturn(job.toPb()); - replay(bigqueryRpcMock); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); + when(bigqueryRpcMock.write( + eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true))) + .thenReturn(job.toPb()); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); writer.close(); assertEquals(job, writer.getJob()); @@ -370,18 +397,22 @@ public void testSaveAndRestoreClosed() throws IOException { WriteChannel restoredWriter = writerState.restore(); assertArrayEquals(new byte[0], capturedBuffer.getValue()); assertEquals(expectedWriterState, restoredWriter.capture()); + verify(bigqueryRpcMock) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); + verify(bigqueryRpcMock) + .write(eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); } @Test public void testStateEquals() { - expect( - bigqueryRpcMock.open( - new com.google.api.services.bigquery.model.Job() - .setJobReference(JOB_INFO.getJobId().toPb()) - .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .andReturn(UPLOAD_ID) - .times(2); - replay(bigqueryRpcMock); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); // avoid closing when you don't want partial writes upon failure @SuppressWarnings("resource") @@ -392,6 +423,11 @@ public void testStateEquals() { assertEquals(state, state2); assertEquals(state.hashCode(), state2.hashCode()); assertEquals(state.toString(), state2.toString()); + verify(bigqueryRpcMock, times(2)) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); } private static ByteBuffer randomBuffer(int size) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java index 26eb0e962154..860230f30ffa 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java @@ -17,17 +17,15 @@ package com.google.cloud.bigquery; import static com.google.common.truth.Truth.assertThat; -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.createStrictMock; -import static org.easymock.EasyMock.eq; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import com.google.api.gax.paging.Page; import com.google.cloud.PageImpl; @@ -35,9 +33,14 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import java.util.List; -import org.junit.After; +import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.MockitoRule; +@RunWith(MockitoJUnitRunner.class) public class TableTest { private static final String ETAG = "etag"; @@ -86,34 +89,27 @@ public class TableTest { ImmutableList.of( FieldValueList.of(ImmutableList.of(FIELD_VALUE1)).withSchema(SCHEMA.getFields()), FieldValueList.of(ImmutableList.of(FIELD_VALUE2)).withSchema(SCHEMA.getFields())); - private BigQuery serviceMockReturnsOptions = createStrictMock(BigQuery.class); - private BigQueryOptions mockOptions = createMock(BigQueryOptions.class); + + @Rule public MockitoRule rule; + private BigQuery bigquery; + private BigQueryOptions mockOptions; private Table expectedTable; private Table table; - private void initializeExpectedTable(int optionsCalls) { - expect(serviceMockReturnsOptions.getOptions()).andReturn(mockOptions).times(optionsCalls); - replay(serviceMockReturnsOptions); - bigquery = createStrictMock(BigQuery.class); - expectedTable = new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(TABLE_INFO)); - } - - private void initializeTable() { + @Before + public void setUp() { + bigquery = mock(BigQuery.class); + mockOptions = mock(BigQueryOptions.class); + when(bigquery.getOptions()).thenReturn(mockOptions); + expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO)); table = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO)); } - @After - public void tearDown() throws Exception { - verify(bigquery, serviceMockReturnsOptions); - } - @Test public void testBuilder() { - initializeExpectedTable(2); - replay(bigquery); Table builtTable = - new Table.Builder(serviceMockReturnsOptions, TABLE_ID1, TABLE_DEFINITION) + new Table.Builder(bigquery, TABLE_ID1, TABLE_DEFINITION) .setCreationTime(CREATION_TIME) .setDescription(DESCRIPTION) .setEtag(ETAG) @@ -133,264 +129,199 @@ public void testBuilder() { assertEquals(LAST_MODIFIED_TIME, builtTable.getLastModifiedTime()); assertEquals(TABLE_DEFINITION, builtTable.getDefinition()); assertEquals(SELF_LINK, builtTable.getSelfLink()); - assertSame(serviceMockReturnsOptions, builtTable.getBigQuery()); + assertSame(bigquery, builtTable.getBigQuery()); } @Test public void testToBuilder() { - initializeExpectedTable(4); - replay(bigquery); compareTable(expectedTable, expectedTable.toBuilder().build()); } @Test - public void testExists_True() throws Exception { - initializeExpectedTable(1); + public void testExists_True() { BigQuery.TableOption[] expectedOptions = {BigQuery.TableOption.fields()}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getTable(TABLE_INFO.getTableId(), expectedOptions)).andReturn(expectedTable); - replay(bigquery); - initializeTable(); + when(bigquery.getTable(TABLE_INFO.getTableId(), expectedOptions)).thenReturn(expectedTable); assertTrue(table.exists()); + verify(bigquery).getTable(TABLE_INFO.getTableId(), expectedOptions); } @Test - public void testExists_False() throws Exception { - initializeExpectedTable(1); + public void testExists_False() { BigQuery.TableOption[] expectedOptions = {BigQuery.TableOption.fields()}; - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getTable(TABLE_INFO.getTableId(), expectedOptions)).andReturn(null); - replay(bigquery); - initializeTable(); + when(bigquery.getTable(TABLE_INFO.getTableId(), expectedOptions)).thenReturn(null); assertFalse(table.exists()); + verify(bigquery).getTable(TABLE_INFO.getTableId(), expectedOptions); } @Test - public void testReload() throws Exception { - initializeExpectedTable(4); + public void testReload() { TableInfo updatedInfo = TABLE_INFO.toBuilder().setDescription("Description").build(); - Table expectedTable = - new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(updatedInfo)); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getTable(TABLE_INFO.getTableId())).andReturn(expectedTable); - replay(bigquery); - initializeTable(); + Table expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(updatedInfo)); + when(bigquery.getTable(TABLE_INFO.getTableId())).thenReturn(expectedTable); Table updatedTable = table.reload(); compareTable(expectedTable, updatedTable); + verify(bigquery).getTable(TABLE_INFO.getTableId()); } @Test - public void testReloadNull() throws Exception { - initializeExpectedTable(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getTable(TABLE_INFO.getTableId())).andReturn(null); - replay(bigquery); - initializeTable(); + public void testReloadNull() { + when(bigquery.getTable(TABLE_INFO.getTableId())).thenReturn(null); assertNull(table.reload()); + verify(bigquery).getTable(TABLE_INFO.getTableId()); } @Test - public void testReloadWithOptions() throws Exception { - initializeExpectedTable(4); + public void testReloadWithOptions() { TableInfo updatedInfo = TABLE_INFO.toBuilder().setDescription("Description").build(); - Table expectedTable = - new Table(serviceMockReturnsOptions, new TableInfo.BuilderImpl(updatedInfo)); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.getTable(TABLE_INFO.getTableId(), BigQuery.TableOption.fields())) - .andReturn(expectedTable); - replay(bigquery); - initializeTable(); + Table expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(updatedInfo)); + when(bigquery.getTable(TABLE_INFO.getTableId(), BigQuery.TableOption.fields())) + .thenReturn(expectedTable); Table updatedTable = table.reload(BigQuery.TableOption.fields()); compareTable(expectedTable, updatedTable); + verify(bigquery).getTable(TABLE_INFO.getTableId(), BigQuery.TableOption.fields()); } @Test public void testUpdate() { - initializeExpectedTable(4); Table expectedUpdatedTable = expectedTable.toBuilder().setDescription("Description").build(); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.update(eq(expectedTable))).andReturn(expectedUpdatedTable); - replay(bigquery); - initializeTable(); + when(bigquery.update(eq(expectedTable))).thenReturn(expectedUpdatedTable); Table actualUpdatedTable = table.update(); compareTable(expectedUpdatedTable, actualUpdatedTable); + verify(bigquery).update(eq(expectedTable)); } @Test public void testUpdateWithOptions() { - initializeExpectedTable(4); Table expectedUpdatedTable = expectedTable.toBuilder().setDescription("Description").build(); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.update(eq(expectedTable), eq(BigQuery.TableOption.fields()))) - .andReturn(expectedUpdatedTable); - replay(bigquery); - initializeTable(); + when(bigquery.update(eq(expectedTable), eq(BigQuery.TableOption.fields()))) + .thenReturn(expectedUpdatedTable); Table actualUpdatedTable = table.update(BigQuery.TableOption.fields()); compareTable(expectedUpdatedTable, actualUpdatedTable); + verify(bigquery).update(eq(expectedTable), eq(BigQuery.TableOption.fields())); } @Test public void testDeleteTrue() { - initializeExpectedTable(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.delete(TABLE_INFO.getTableId())).andReturn(true); - replay(bigquery); - initializeTable(); + when(bigquery.delete(TABLE_INFO.getTableId())).thenReturn(true); assertTrue(table.delete()); + verify(bigquery).delete(TABLE_INFO.getTableId()); } @Test public void testDeleteFalse() { - initializeExpectedTable(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.delete(TABLE_INFO.getTableId())).andReturn(false); - replay(bigquery); - initializeTable(); + when(bigquery.delete(TABLE_INFO.getTableId())).thenReturn(false); assertFalse(table.delete()); + verify(bigquery).delete(TABLE_INFO.getTableId()); } @Test - public void testInsert() throws Exception { - initializeExpectedTable(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.insertAll(INSERT_ALL_REQUEST)).andReturn(EMPTY_INSERT_ALL_RESPONSE); - replay(bigquery); - initializeTable(); + public void testInsert() { + when(bigquery.insertAll(INSERT_ALL_REQUEST)).thenReturn(EMPTY_INSERT_ALL_RESPONSE); InsertAllResponse response = table.insert(ROWS_TO_INSERT); assertSame(EMPTY_INSERT_ALL_RESPONSE, response); + verify(bigquery).insertAll(INSERT_ALL_REQUEST); } @Test - public void testInsertComplete() throws Exception { - initializeExpectedTable(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.insertAll(INSERT_ALL_REQUEST_COMPLETE)).andReturn(EMPTY_INSERT_ALL_RESPONSE); - replay(bigquery); - initializeTable(); + public void testInsertComplete() { + when(bigquery.insertAll(INSERT_ALL_REQUEST_COMPLETE)).thenReturn(EMPTY_INSERT_ALL_RESPONSE); InsertAllResponse response = table.insert(ROWS_TO_INSERT, true, true); assertSame(EMPTY_INSERT_ALL_RESPONSE, response); + verify(bigquery).insertAll(INSERT_ALL_REQUEST_COMPLETE); } @Test - public void testList() throws Exception { + public void testList() { Page page = new PageImpl<>(null, "c", ROWS); - - initializeExpectedTable(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.listTableData(TABLE_ID1)).andReturn(new TableResult(null, ROWS.size(), page)); - expect(bigquery.listTableData(TABLE_ID1, SCHEMA)) - .andReturn(new TableResult(SCHEMA, ROWS.size(), page)); - replay(bigquery); - initializeTable(); + when(bigquery.listTableData(TABLE_ID1)).thenReturn(new TableResult(null, ROWS.size(), page)); + when(bigquery.listTableData(TABLE_ID1, SCHEMA)) + .thenReturn(new TableResult(SCHEMA, ROWS.size(), page)); Page dataPage = table.list(); assertThat(dataPage.getValues()).containsExactlyElementsIn(ROWS).inOrder(); - dataPage = table.list(SCHEMA); assertThat(dataPage.getValues()).containsExactlyElementsIn(ROWS_WITH_SCHEMA).inOrder(); + verify(bigquery).listTableData(TABLE_ID1); + verify(bigquery).listTableData(TABLE_ID1, SCHEMA); } @Test - public void testListWithOptions() throws Exception { + public void testListWithOptions() { Page page = new PageImpl<>(null, "c", ROWS); - initializeExpectedTable(1); - expect(bigquery.getOptions()).andReturn(mockOptions); - expect(bigquery.listTableData(TABLE_ID1, BigQuery.TableDataListOption.pageSize(10L))) - .andReturn(new TableResult(null, ROWS.size(), page)); - expect(bigquery.listTableData(TABLE_ID1, SCHEMA, BigQuery.TableDataListOption.pageSize(10L))) - .andReturn(new TableResult(SCHEMA, ROWS.size(), page)); - replay(bigquery); - initializeTable(); + when(bigquery.listTableData(TABLE_ID1, BigQuery.TableDataListOption.pageSize(10L))) + .thenReturn(new TableResult(null, ROWS.size(), page)); + when(bigquery.listTableData(TABLE_ID1, SCHEMA, BigQuery.TableDataListOption.pageSize(10L))) + .thenReturn(new TableResult(SCHEMA, ROWS.size(), page)); Page dataPage = table.list(BigQuery.TableDataListOption.pageSize(10L)); assertThat(dataPage.getValues()).containsExactlyElementsIn(ROWS).inOrder(); dataPage = table.list(SCHEMA, BigQuery.TableDataListOption.pageSize(10L)); assertThat(dataPage.getValues()).containsExactlyElementsIn(ROWS_WITH_SCHEMA).inOrder(); + verify(bigquery).listTableData(TABLE_ID1, BigQuery.TableDataListOption.pageSize(10L)); + verify(bigquery).listTableData(TABLE_ID1, SCHEMA, BigQuery.TableDataListOption.pageSize(10L)); } @Test - public void testCopyFromString() throws Exception { - initializeExpectedTable(2); - expect(bigquery.getOptions()).andReturn(mockOptions); - Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(COPY_JOB_INFO)); - expect(bigquery.create(COPY_JOB_INFO)).andReturn(expectedJob); - replay(bigquery); - initializeTable(); + public void testCopyFromString() { + Job expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(COPY_JOB_INFO)); + when(bigquery.create(COPY_JOB_INFO)).thenReturn(expectedJob); Job job = table.copy(TABLE_ID2.getDataset(), TABLE_ID2.getTable()); assertSame(expectedJob, job); + verify(bigquery).create(COPY_JOB_INFO); } @Test - public void testCopyFromId() throws Exception { - initializeExpectedTable(2); - expect(bigquery.getOptions()).andReturn(mockOptions); - Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(COPY_JOB_INFO)); - expect(bigquery.create(COPY_JOB_INFO)).andReturn(expectedJob); - replay(bigquery); - initializeTable(); + public void testCopyFromId() { + Job expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(COPY_JOB_INFO)); + when(bigquery.create(COPY_JOB_INFO)).thenReturn(expectedJob); Job job = table.copy(TABLE_ID2.getDataset(), TABLE_ID2.getTable()); assertSame(expectedJob, job); + verify(bigquery).create(COPY_JOB_INFO); } @Test - public void testLoadDataUri() throws Exception { - initializeExpectedTable(2); - expect(bigquery.getOptions()).andReturn(mockOptions); - Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(LOAD_JOB_INFO)); - expect(bigquery.create(LOAD_JOB_INFO)).andReturn(expectedJob); - replay(bigquery); - initializeTable(); + public void testLoadDataUri() { + Job expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(LOAD_JOB_INFO)); + when(bigquery.create(LOAD_JOB_INFO)).thenReturn(expectedJob); Job job = table.load(FormatOptions.json(), "URI"); assertSame(expectedJob, job); + verify(bigquery).create(LOAD_JOB_INFO); } @Test - public void testLoadDataUris() throws Exception { - initializeExpectedTable(2); - expect(bigquery.getOptions()).andReturn(mockOptions); - Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(LOAD_JOB_INFO)); - expect(bigquery.create(LOAD_JOB_INFO)).andReturn(expectedJob); - replay(bigquery); - initializeTable(); + public void testLoadDataUris() { + Job expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(LOAD_JOB_INFO)); + when(bigquery.create(LOAD_JOB_INFO)).thenReturn(expectedJob); Job job = table.load(FormatOptions.json(), ImmutableList.of("URI")); assertSame(expectedJob, job); + verify(bigquery).create(LOAD_JOB_INFO); } @Test - public void testExtractDataUri() throws Exception { - initializeExpectedTable(2); - expect(bigquery.getOptions()).andReturn(mockOptions); - Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(EXTRACT_JOB_INFO)); - expect(bigquery.create(EXTRACT_JOB_INFO)).andReturn(expectedJob); - replay(bigquery); - initializeTable(); + public void testExtractDataUri() { + Job expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(EXTRACT_JOB_INFO)); + when(bigquery.create(EXTRACT_JOB_INFO)).thenReturn(expectedJob); Job job = table.extract("CSV", "URI"); assertSame(expectedJob, job); + verify(bigquery).create(EXTRACT_JOB_INFO); } @Test - public void testExtractDataUris() throws Exception { - initializeExpectedTable(2); - expect(bigquery.getOptions()).andReturn(mockOptions); - Job expectedJob = new Job(serviceMockReturnsOptions, new JobInfo.BuilderImpl(EXTRACT_JOB_INFO)); - expect(bigquery.create(EXTRACT_JOB_INFO)).andReturn(expectedJob); - replay(bigquery); - initializeTable(); + public void testExtractDataUris() { + Job expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(EXTRACT_JOB_INFO)); + when(bigquery.create(EXTRACT_JOB_INFO)).thenReturn(expectedJob); Job job = table.extract("CSV", ImmutableList.of("URI")); assertSame(expectedJob, job); + verify(bigquery).create(EXTRACT_JOB_INFO); } @Test public void testBigQuery() { - initializeExpectedTable(1); - replay(bigquery); - assertSame(serviceMockReturnsOptions, expectedTable.getBigQuery()); + assertSame(bigquery, expectedTable.getBigQuery()); } @Test public void testToAndFromPb() { - initializeExpectedTable(4); - replay(bigquery); - compareTable(expectedTable, Table.fromPb(serviceMockReturnsOptions, expectedTable.toPb())); + compareTable(expectedTable, Table.fromPb(bigquery, expectedTable.toPb())); } private void compareTable(Table expected, Table value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java index e994df433c52..9b2ef4804f0f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java @@ -26,10 +26,13 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.concurrent.ExecutionException; -import org.easymock.EasyMock; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; import org.threeten.bp.Duration; +@RunWith(MockitoJUnitRunner.class) public class RemoteBigQueryHelperTest { private static final String DATASET_NAME = "dataset-name"; @@ -65,12 +68,11 @@ public class RemoteBigQueryHelperTest { @Test public void testForceDelete() throws InterruptedException, ExecutionException { - BigQuery bigqueryMock = EasyMock.createMock(BigQuery.class); - EasyMock.expect(bigqueryMock.delete(DATASET_NAME, DatasetDeleteOption.deleteContents())) - .andReturn(true); - EasyMock.replay(bigqueryMock); + BigQuery bigqueryMock = Mockito.mock(BigQuery.class); + Mockito.when(bigqueryMock.delete(DATASET_NAME, DatasetDeleteOption.deleteContents())) + .thenReturn(true); assertTrue(RemoteBigQueryHelper.forceDelete(bigqueryMock, DATASET_NAME)); - EasyMock.verify(bigqueryMock); + Mockito.verify(bigqueryMock).delete(DATASET_NAME, DatasetDeleteOption.deleteContents()); } @Test diff --git a/pom.xml b/pom.xml index cddbd6ab2290..e522f0140778 100644 --- a/pom.xml +++ b/pom.xml @@ -95,18 +95,11 @@ - org.easymock - easymock - 3.6 + org.mockito + mockito-core + 2.28.2 test - - org.objenesis - objenesis - 2.6 - test - - com.google.cloud google-cloud-storage From 2f9fca56b6b742014cde5a95dbee358a46b38c48 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 19 May 2020 13:01:35 -0400 Subject: [PATCH 0507/3441] chore: release 1.115.1 (#361) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated pom.xml [ci skip] Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 12 ++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 20 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4343a671d23b..48d1d5d048b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### [1.115.1](https://www.github.com/googleapis/java-bigquery/compare/v1.115.0...v1.115.1) (2020-05-19) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.4.0 ([#362](https://www.github.com/googleapis/java-bigquery/issues/362)) ([7a256f7](https://www.github.com/googleapis/java-bigquery/commit/7a256f734aab3a26a8290a66b11cbcb91fe05d7a)) + + +### Documentation + +* **samples:** Added UpdateTableDescription example. ([#360](https://www.github.com/googleapis/java-bigquery/issues/360)) ([96d2c87](https://www.github.com/googleapis/java-bigquery/commit/96d2c87bf087f980106f57ffaac0933274c84b96)) + ## [1.115.0](https://www.github.com/googleapis/java-bigquery/compare/v1.114.0...v1.115.0) (2020-05-13) diff --git a/README.md b/README.md index 3a9e42de4040..43625789a3e1 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.115.0' +compile 'com.google.cloud:google-cloud-bigquery:1.115.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.115.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.115.1" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 198d38a5b409..a49fcce0058c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.115.1-SNAPSHOT + 1.115.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.115.1-SNAPSHOT + 1.115.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e522f0140778..88b9f33c1b93 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.115.1-SNAPSHOT + 1.115.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -91,7 +91,7 @@ com.google.cloud google-cloud-bigquery - 1.115.1-SNAPSHOT + 1.115.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4c90b1576c97..bbc681a138f1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.115.1-SNAPSHOT + 1.115.1 diff --git a/versions.txt b/versions.txt index 2c900ad0e0ec..80b9b93a553a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.115.0:1.115.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.115.1:1.115.1 \ No newline at end of file From 2267a8f8facc56818ec7e8bd134554b5ec82a630 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 20 May 2020 00:02:39 +0200 Subject: [PATCH 0508/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.115.1 (#367) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 97964abe579f..75e9d54cb9b3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.115.0 + 1.115.1 From 3741da53e256bcc615d6a2150cbf84ad1d6af382 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 20 May 2020 00:12:39 +0200 Subject: [PATCH 0509/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.6.0 (#368) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 88b9f33c1b93..81d31c0ffe2f 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.5.0 + 0.6.0 From 69ede0ca217cfaf98b3364fb5301f1399db4e498 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 19 May 2020 22:24:48 +0000 Subject: [PATCH 0510/3441] chore: release 1.115.2-SNAPSHOT (#369) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a49fcce0058c..e1b6f71f1955 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.115.1 + 1.115.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.115.1 + 1.115.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 81d31c0ffe2f..7c2566215c7b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.115.1 + 1.115.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -91,7 +91,7 @@ com.google.cloud google-cloud-bigquery - 1.115.1 + 1.115.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bbc681a138f1..3aea09755e38 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.115.1 + 1.115.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 80b9b93a553a..cbbd90ef63be 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.115.1:1.115.1 \ No newline at end of file +google-cloud-bigquery:1.115.1:1.115.2-SNAPSHOT \ No newline at end of file From c24bc72c477d01759f70f10c0afa6ea92dd6338c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 20 May 2020 08:49:35 -0700 Subject: [PATCH 0511/3441] changes without context (#371) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 43625789a3e1..7c2e51f0b70d 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.115.0 + 1.115.1 ``` diff --git a/synth.metadata b/synth.metadata index ec52a416255d..9c415deb30ab 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "96d2c87bf087f980106f57ffaac0933274c84b96" + "sha": "69ede0ca217cfaf98b3364fb5301f1399db4e498" } }, { From 596673346f9b5540cece041e63019227522062be Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 20 May 2020 21:40:19 +0530 Subject: [PATCH 0512/3441] fix: error message for get routine (#372) --- .../src/main/java/com/google/cloud/bigquery/BigQueryImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 4bdc29247def..a3526077d00f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -753,7 +753,7 @@ public com.google.api.services.bigquery.model.Routine call() { EXCEPTION_HANDLER, getOptions().getClock()); if (getOptions().getThrowNotFound() && answer == null) { - throw new BigQueryException(HTTP_NOT_FOUND, "Model not found"); + throw new BigQueryException(HTTP_NOT_FOUND, "Routine not found"); } return answer == null ? null : Routine.fromPb(this, answer); } catch (RetryHelper.RetryHelperException e) { From 57982a052c7849becbadbed773f951f0e7870a56 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 20 May 2020 22:57:48 -0400 Subject: [PATCH 0513/3441] feat: remove autovalue profile as it has moved to shared-config (#370) * feat: remove autovalue profile as it has moved to shared-config * add enable file to enable profile based on module --- google-cloud-bigquery/EnableAutoValue.txt | 0 pom.xml | 84 +---------------------- 2 files changed, 1 insertion(+), 83 deletions(-) create mode 100644 google-cloud-bigquery/EnableAutoValue.txt diff --git a/google-cloud-bigquery/EnableAutoValue.txt b/google-cloud-bigquery/EnableAutoValue.txt new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/pom.xml b/pom.xml index 7c2566215c7b..4dd981d45bbf 100644 --- a/pom.xml +++ b/pom.xml @@ -67,9 +67,6 @@ 1.3.2 v2-rev20200429-1.30.9 - 1.7.2 - ${auto-value.version} - 1.0-rc7 @@ -195,7 +192,7 @@ https://developers.google.com/protocol-buffers/docs/reference/java/ https://googleapis.dev/java/google-auth-library/latest/ https://googleapis.dev/java/gax/latest/ - https://googleapis.github.io/api-common-java/${google.api-common.version}/apidocs/ + https://googleapis.github.io/api-common-java/ @@ -203,91 +200,12 @@ - - autovalue-java7 - - 1.7 - - - 1.7 - 1.4 - - - - - maven-compiler-plugin - - - - com.google.auto.value - auto-value - ${auto-value.version} - - - - - - - - - - - autovalue-java8 - - [1.8,) - - - - - maven-compiler-plugin - - - - com.google.auto.value - auto-value - ${auto-value.version} - - - - com.google.auto.service - auto-service-annotations - ${auto-service-annotations.version} - - - - - - - - include-samples samples - From 2d0f052f98d861dd082107ba623a6094b0673d01 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 21 May 2020 11:49:48 -0400 Subject: [PATCH 0514/3441] chore: release 1.116.0 (#374) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 12 ++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 20 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 48d1d5d048b7..28e65ffe11ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [1.116.0](https://www.github.com/googleapis/java-bigquery/compare/v1.115.1...v1.116.0) (2020-05-21) + + +### Features + +* remove autovalue profile as it has moved to shared-config ([#370](https://www.github.com/googleapis/java-bigquery/issues/370)) ([57982a0](https://www.github.com/googleapis/java-bigquery/commit/57982a052c7849becbadbed773f951f0e7870a56)) + + +### Bug Fixes + +* error message for get routine ([#372](https://www.github.com/googleapis/java-bigquery/issues/372)) ([5966733](https://www.github.com/googleapis/java-bigquery/commit/596673346f9b5540cece041e63019227522062be)) + ### [1.115.1](https://www.github.com/googleapis/java-bigquery/compare/v1.115.0...v1.115.1) (2020-05-19) diff --git a/README.md b/README.md index 7c2e51f0b70d..1f5d01b88870 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.115.1' +compile 'com.google.cloud:google-cloud-bigquery:1.116.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.115.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e1b6f71f1955..d1b59b1a7b01 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.115.2-SNAPSHOT + 1.116.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.115.2-SNAPSHOT + 1.116.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4dd981d45bbf..76bf1fef7a2c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.115.2-SNAPSHOT + 1.116.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -88,7 +88,7 @@ com.google.cloud google-cloud-bigquery - 1.115.2-SNAPSHOT + 1.116.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3aea09755e38..202d493ea596 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.115.2-SNAPSHOT + 1.116.0 diff --git a/versions.txt b/versions.txt index cbbd90ef63be..ee09eebaedf6 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.115.1:1.115.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.116.0:1.116.0 \ No newline at end of file From c293967c864a8cc2b58a4717da3cb2f3b183fbfd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 21 May 2020 18:24:11 +0200 Subject: [PATCH 0515/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.116.0 (#375) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 75e9d54cb9b3..0e2c300b8de5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.115.1 + 1.116.0 From 62b25e32b88ee4e851ac35db68519a9036560400 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 26 May 2020 08:05:35 -0700 Subject: [PATCH 0516/3441] changes without context (#377) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1f5d01b88870..bf6d0059a0a4 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.115.1 + 1.116.0 ``` diff --git a/synth.metadata b/synth.metadata index 9c415deb30ab..8fa9a2e91678 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "69ede0ca217cfaf98b3364fb5301f1399db4e498" + "sha": "c293967c864a8cc2b58a4717da3cb2f3b183fbfd" } }, { From 0c0c063f264fd3ec1c76921cb98c87d96a13c510 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 26 May 2020 08:08:58 -0700 Subject: [PATCH 0517/3441] chore(java): allow overriding minimum supported Java version in templates (#577) (#378) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * chore(java): allow overriding minimum supported Java version in templates (#577) Source-Author: Jeff Ching Source-Date: Thu May 21 17:51:49 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 65f8c647c0bc0c6b38211b969a2a003e271a5ef1 Source-Link: https://github.com/googleapis/synthtool/commit/65f8c647c0bc0c6b38211b969a2a003e271a5ef1 --- README.md | 3 +-- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bf6d0059a0a4..b05bc6fc1daa 100644 --- a/README.md +++ b/README.md @@ -275,8 +275,7 @@ Apache 2.0 - See [LICENSE][license] for more information. Java Version | Status ------------ | ------ -Java 7 | [![Kokoro CI][kokoro-badge-image-1]][kokoro-badge-link-1] -Java 8 | [![Kokoro CI][kokoro-badge-image-2]][kokoro-badge-link-2] +Java 7 | [![Kokoro CI][kokoro-badge-image-1]][kokoro-badge-link-1]Java 8 | [![Kokoro CI][kokoro-badge-image-2]][kokoro-badge-link-2] Java 8 OSX | [![Kokoro CI][kokoro-badge-image-3]][kokoro-badge-link-3] Java 8 Windows | [![Kokoro CI][kokoro-badge-image-4]][kokoro-badge-link-4] Java 11 | [![Kokoro CI][kokoro-badge-image-5]][kokoro-badge-link-5] diff --git a/synth.metadata b/synth.metadata index 8fa9a2e91678..39a2c5bf6b68 100644 --- a/synth.metadata +++ b/synth.metadata @@ -11,7 +11,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5b48b0716a36ca069db3038da7e205c87a22ed19" + "sha": "65f8c647c0bc0c6b38211b969a2a003e271a5ef1" } } ] From 14c24f598a5b8847f39961879b141318375e7688 Mon Sep 17 00:00:00 2001 From: Irvi Aini <7439590+irvifa@users.noreply.github.com> Date: Tue, 26 May 2020 22:11:05 +0700 Subject: [PATCH 0518/3441] chore: Include clustering fields and schema as part of the function arguments (#379) As of the current version we can see that the schema and clustering fields is already defined in the functions, however by passing it as the arguments engineer can easily change the schema and clustering fields in the IT test thus enable them to understand more about the concept. --- .../bigquery/CreateClusteredTable.java | 24 +++++++++++-------- .../bigquery/CreateClusteredTableIT.java | 12 +++++++++- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java index 1fc265e17f83..27a0e144f22d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java @@ -29,16 +29,25 @@ import com.google.cloud.bigquery.TableInfo; import com.google.cloud.bigquery.TimePartitioning; import com.google.common.collect.ImmutableList; +import java.util.List; public class CreateClusteredTable { public static void runCreateClusteredTable() { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; - createClusteredTable(datasetName, tableName); + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); + createClusteredTable(datasetName, tableName, + schema, ImmutableList.of("name", "post_abbr")); } - public static void createClusteredTable(String datasetName, String tableName) { + public static void createClusteredTable( + String datasetName, String tableName, + Schema schema, List clusteringFields) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -47,15 +56,10 @@ public static void createClusteredTable(String datasetName, String tableName) { TableId tableId = TableId.of(datasetName, tableName); TimePartitioning partitioning = TimePartitioning.of(TimePartitioning.Type.DAY); - - Schema schema = - Schema.of( - Field.of("name", StandardSQLTypeName.STRING), - Field.of("post_abbr", StandardSQLTypeName.STRING), - Field.of("date", StandardSQLTypeName.DATE)); - + // Clustering fields will be consisted of fields mentioned in the schema. + // As of now, another condition is that the table should be partitioned. Clustering clustering = - Clustering.newBuilder().setFields(ImmutableList.of("name", "post_abbr")).build(); + Clustering.newBuilder().setFields(clusteringFields).build(); StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder() diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java index 4f8c29942c21..37ddd226bf15 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java @@ -19,6 +19,10 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.TestCase.assertNotNull; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.common.collect.ImmutableList; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.After; @@ -58,8 +62,14 @@ public void tearDown() { @Test public void createClusteredTable() { String tableName = "MY_CLUSTERED_TABLE"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); - CreateClusteredTable.createClusteredTable(BIGQUERY_DATASET_NAME, tableName); + CreateClusteredTable.createClusteredTable(BIGQUERY_DATASET_NAME, tableName, + schema, ImmutableList.of("name", "post_abbr")); assertThat(bout.toString()).contains("Clustered table created successfully"); From 9581ccbb5c61ac89f33c5849b42c0afabd5cbeca Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 26 May 2020 11:15:11 -0400 Subject: [PATCH 0519/3441] chore: release 1.116.1-SNAPSHOT (#376) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d1b59b1a7b01..86ef49ea054e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.0 + 1.116.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.0 + 1.116.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 76bf1fef7a2c..8ea11da2fd96 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.0 + 1.116.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -88,7 +88,7 @@ com.google.cloud google-cloud-bigquery - 1.116.0 + 1.116.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 202d493ea596..974660723d5e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.0 + 1.116.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index ee09eebaedf6..8d27316d41ed 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.0:1.116.0 \ No newline at end of file +google-cloud-bigquery:1.116.0:1.116.1-SNAPSHOT \ No newline at end of file From 2b96f7877f75781416fb26407d4fee6d4958dc3d Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 26 May 2020 20:46:19 +0530 Subject: [PATCH 0520/3441] chore: remove objenesis ignor from maven dependency plugin (#383) --- pom.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/pom.xml b/pom.xml index 8ea11da2fd96..b24faf6ca206 100644 --- a/pom.xml +++ b/pom.xml @@ -117,9 +117,6 @@ org.apache.maven.plugins maven-dependency-plugin - - org.objenesis:objenesis - From 0e91af23f63eb2b9af578bd82952d3480e751f9b Mon Sep 17 00:00:00 2001 From: Irvi Aini <7439590+irvifa@users.noreply.github.com> Date: Tue, 26 May 2020 22:16:36 +0700 Subject: [PATCH 0521/3441] chore: Include clustering fields and schema in LoadTableClusteredIT as part of the function arguments (#382) As of the current version we can see that the schema and clustering fields is already defined in the functions, however by passing it as the arguments engineer can easily change the schema and clustering fields in the IT test thus enable them to understand more about the concept. --- .../example/bigquery/LoadTableClustered.java | 23 +++++++++++-------- .../bigquery/LoadTableClusteredIT.java | 13 ++++++++++- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java b/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java index 7d4987d118fc..20f4104f98b8 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java @@ -31,6 +31,7 @@ import com.google.cloud.bigquery.TableId; import com.google.cloud.bigquery.TimePartitioning; import com.google.common.collect.ImmutableList; +import java.util.List; public class LoadTableClustered { @@ -39,10 +40,17 @@ public static void runLoadTableClustered() throws Exception { String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; String sourceUri = "/path/to/file.csv"; - loadTableClustered(datasetName, tableName, sourceUri); + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); + loadTableClustered(datasetName, tableName, sourceUri, + schema, ImmutableList.of("name", "post_abbr")); } - public static void loadTableClustered(String datasetName, String tableName, String sourceUri) + public static void loadTableClustered(String datasetName, String tableName, String sourceUri, + Schema schema, List clusteringFields) throws Exception { try { // Initialize client that will be used to send requests. This client only needs to be created @@ -51,16 +59,11 @@ public static void loadTableClustered(String datasetName, String tableName, Stri TableId tableId = TableId.of(datasetName, tableName); - Schema schema = - Schema.of( - Field.of("name", StandardSQLTypeName.STRING), - Field.of("post_abbr", StandardSQLTypeName.STRING), - Field.of("date", StandardSQLTypeName.DATE)); - TimePartitioning partitioning = TimePartitioning.of(TimePartitioning.Type.DAY); - + // Clustering fields will be consisted of fields mentioned in the schema. + // As of now, another condition is that the table should be partitioned. Clustering clustering = - Clustering.newBuilder().setFields(ImmutableList.of("name", "post_abbr")).build(); + Clustering.newBuilder().setFields(clusteringFields).build(); LoadJobConfiguration loadJobConfig = LoadJobConfiguration.builder(tableId, sourceUri) diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java index 968235e4bd02..98ef57afd9de 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java @@ -19,6 +19,10 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.TestCase.assertNotNull; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.common.collect.ImmutableList; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.After; @@ -61,7 +65,14 @@ public void loadTableClustered() throws Exception { String tableName = "LOAD_CLUSTERED_TABLE_TEST"; - LoadTableClustered.loadTableClustered(BIGQUERY_DATASET_NAME, tableName, sourceUri); + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); + + LoadTableClustered.loadTableClustered(BIGQUERY_DATASET_NAME, tableName, sourceUri, + schema, ImmutableList.of("name", "post_abbr")); assertThat(bout.toString()) .contains("Data successfully loaded into clustered table during load job"); From 70f702d473a7c3bdbde2867cc552f25c91fbe873 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 26 May 2020 10:12:13 -0700 Subject: [PATCH 0522/3441] chore(java): fix inadvertent whitespace changes (#578) (#384) Source-Author: Jeff Ching Source-Date: Tue May 26 08:37:51 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 388f7aafee3d7a067c23db6c13b7e83fb361c64a Source-Link: https://github.com/googleapis/synthtool/commit/388f7aafee3d7a067c23db6c13b7e83fb361c64a --- README.md | 3 ++- synth.metadata | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b05bc6fc1daa..bf6d0059a0a4 100644 --- a/README.md +++ b/README.md @@ -275,7 +275,8 @@ Apache 2.0 - See [LICENSE][license] for more information. Java Version | Status ------------ | ------ -Java 7 | [![Kokoro CI][kokoro-badge-image-1]][kokoro-badge-link-1]Java 8 | [![Kokoro CI][kokoro-badge-image-2]][kokoro-badge-link-2] +Java 7 | [![Kokoro CI][kokoro-badge-image-1]][kokoro-badge-link-1] +Java 8 | [![Kokoro CI][kokoro-badge-image-2]][kokoro-badge-link-2] Java 8 OSX | [![Kokoro CI][kokoro-badge-image-3]][kokoro-badge-link-3] Java 8 Windows | [![Kokoro CI][kokoro-badge-image-4]][kokoro-badge-link-4] Java 11 | [![Kokoro CI][kokoro-badge-image-5]][kokoro-badge-link-5] diff --git a/synth.metadata b/synth.metadata index 39a2c5bf6b68..e6a7e94a20a9 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "c293967c864a8cc2b58a4717da3cb2f3b183fbfd" + "sha": "0e91af23f63eb2b9af578bd82952d3480e751f9b" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "65f8c647c0bc0c6b38211b969a2a003e271a5ef1" + "sha": "388f7aafee3d7a067c23db6c13b7e83fb361c64a" } } ] From 7c02cd3ca7238d24bb2914ae2262a3b2e2d4bda7 Mon Sep 17 00:00:00 2001 From: Irvi Aini <7439590+irvifa@users.noreply.github.com> Date: Wed, 27 May 2020 01:22:08 +0700 Subject: [PATCH 0523/3441] docs(samples): Convert tightly coupled local variable inside of method into method arguments (#386) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As the previous PR https://github.com/googleapis/java-bigquery/pull/382 and https://github.com/googleapis/java-bigquery/pull/379. I find several other samples that have the tendencies of including tightly coupled variable for each of specific method. Hence I think it will be better to pass it as an argument instead of simply using local variable inside of the method. Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [x] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [x] Ensure the tests and linter pass - [x] Code coverage does not decrease (if any source code was changed) - [x] Appropriate docs were updated (if necessary) Fixes #387 ☕️ --- .../example/bigquery/AddColumnLoadAppend.java | 38 +++++++++++-------- .../com/example/bigquery/LoadParquet.java | 9 +++-- .../bigquery/LoadParquetReplaceTable.java | 10 +++-- .../com/example/bigquery/TableInsertRows.java | 15 ++++---- .../example/bigquery/UpdateDatasetAccess.java | 14 +++---- .../bigquery/UpdateDatasetExpiration.java | 9 ++--- .../bigquery/UpdateTableExpiration.java | 10 ++--- .../bigquery/AddColumnLoadAppendIT.java | 13 ++++++- .../com/example/bigquery/LoadParquetIT.java | 4 +- .../bigquery/LoadParquetReplaceTableIT.java | 4 +- .../example/bigquery/TableInsertRowsIT.java | 9 ++++- .../bigquery/UpdateDatasetAccessIT.java | 6 ++- .../bigquery/UpdateDatasetExpirationIT.java | 4 +- .../bigquery/UpdateTableExpirationIT.java | 4 +- 14 files changed, 94 insertions(+), 55 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java b/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java index c529272fc21b..932c27d69a80 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java @@ -32,6 +32,8 @@ import com.google.cloud.bigquery.Schema; import com.google.cloud.bigquery.TableId; import com.google.common.collect.ImmutableList; +import java.util.ArrayList; +import java.util.List; import java.util.UUID; public class AddColumnLoadAppend { @@ -41,11 +43,28 @@ public static void runAddColumnLoadAppend() throws Exception { String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; String sourceUri = "/path/to/file.csv"; - addColumnLoadAppend(datasetName, tableName, sourceUri); + // Add a new column to a BigQuery table while appending rows via a load job. + // 'REQUIRED' fields cannot be added to an existing schema, so the additional column must be + // 'NULLABLE'. + Schema schema = + Schema.of( + Field.newBuilder("name", LegacySQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + + List fields = schema.getFields(); + // Adding below additional column during the load job + Field newField = Field.newBuilder("post_abbr", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(); + List newFields = new ArrayList<>(fields); + newFields.add(newField); + Schema newSchema = Schema.of(newFields); + addColumnLoadAppend(datasetName, tableName, sourceUri, newSchema); } - public static void addColumnLoadAppend(String datasetName, String tableName, String sourceUri) - throws Exception { + public static void addColumnLoadAppend(String datasetName, String tableName, + String sourceUri, Schema newSchema) throws Exception { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -53,19 +72,6 @@ public static void addColumnLoadAppend(String datasetName, String tableName, Str TableId tableId = TableId.of(datasetName, tableName); - // Add a new column to a BigQuery table while appending rows via a load job. - // 'REQUIRED' fields cannot be added to an existing schema, so the additional column must be - // 'NULLABLE'. - Schema newSchema = - Schema.of( - Field.newBuilder("name", LegacySQLTypeName.STRING) - .setMode(Field.Mode.REQUIRED) - .build(), - // Adding below additional column during the load job - Field.newBuilder("post_abbr", LegacySQLTypeName.STRING) - .setMode(Field.Mode.NULLABLE) - .build()); - LoadJobConfiguration loadJobConfig = LoadJobConfiguration.builder(tableId, sourceUri) .setFormatOptions(FormatOptions.csv()) diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java b/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java index 580b6183fe20..56a6b6b04681 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java @@ -32,17 +32,18 @@ public class LoadParquet { public static void runLoadParquet() { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; - loadParquet(datasetName); + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.parquet"; + String tableName = "us_states"; + loadParquet(datasetName, tableName, sourceUri); } - public static void loadParquet(String datasetName) { + public static void loadParquet(String datasetName, String tableName, String sourceUri) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.parquet"; - TableId tableId = TableId.of(datasetName, "us_states"); + TableId tableId = TableId.of(datasetName, tableName); LoadJobConfiguration configuration = LoadJobConfiguration.builder(tableId, sourceUri) diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java b/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java index 80f815046175..c8ee67c67596 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java @@ -34,10 +34,13 @@ public class LoadParquetReplaceTable { public static void runLoadParquetReplaceTable() { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; - loadParquetReplaceTable(datasetName); + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.parquet"; + String tableName = "us_states"; + loadParquetReplaceTable(datasetName, tableName, sourceUri); } - public static void loadParquetReplaceTable(String datasetName) { + public static void loadParquetReplaceTable(String datasetName, String tableName, + String sourceUri) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -46,8 +49,7 @@ public static void loadParquetReplaceTable(String datasetName) { // Imports a GCS file into a table and overwrites table data if table already exists. // This sample loads CSV file at: // https://storage.googleapis.com/cloud-samples-data/bigquery/us-states/us-states.csv - String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.parquet"; - TableId tableId = TableId.of(datasetName, "us_states"); + TableId tableId = TableId.of(datasetName, tableName); // For more information on LoadJobConfiguration see: // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigquery/LoadJobConfiguration.Builder.html diff --git a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java index 4163a5979f32..b601c859b75d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java +++ b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java @@ -34,10 +34,16 @@ public static void runTableInsertRows() { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; - tableInsertRows(datasetName, tableName); + // Create a row to insert + Map rowContent = new HashMap<>(); + rowContent.put("booleanField", true); + rowContent.put("numericField", "3.14"); + + tableInsertRows(datasetName, tableName, rowContent); } - public static void tableInsertRows(String datasetName, String tableName) { + public static void tableInsertRows(String datasetName, String tableName, + Map rowContent) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -46,11 +52,6 @@ public static void tableInsertRows(String datasetName, String tableName) { // Get table TableId tableId = TableId.of(datasetName, tableName); - // Create a row to insert - Map rowContent = new HashMap<>(); - rowContent.put("booleanField", true); - rowContent.put("numericField", "3.14"); - // Inserts rowContent into datasetName:tableId. InsertAllResponse response = bigquery.insertAll(InsertAllRequest.newBuilder(tableId).addRow(rowContent).build()); diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java index 5719dcffa98c..5f7cc27fa74c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java @@ -31,10 +31,15 @@ public class UpdateDatasetAccess { public static void runUpdateDatasetAccess() { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; - updateDatasetAccess(datasetName); + // Create a new ACL granting the READER role to "sample.bigquery.dev@gmail.com" + // For more information on the types of ACLs available see: + // https://cloud.google.com/storage/docs/access-control/lists + Acl newEntry = Acl.of(new User("sample.bigquery.dev@gmail.com"), Role.READER); + + updateDatasetAccess(datasetName, newEntry); } - public static void updateDatasetAccess(String datasetName) { + public static void updateDatasetAccess(String datasetName, Acl newEntry) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -42,11 +47,6 @@ public static void updateDatasetAccess(String datasetName) { Dataset dataset = bigquery.getDataset(datasetName); - // Create a new ACL granting the READER role to "sample.bigquery.dev@gmail.com" - // For more information on the types of ACLs available see: - // https://cloud.google.com/storage/docs/access-control/lists - Acl newEntry = Acl.of(new User("sample.bigquery.dev@gmail.com"), Role.READER); - // Get a copy of the ACLs list from the dataset and append the new entry ArrayList acls = new ArrayList<>(dataset.getAcl()); acls.add(newEntry); diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java index bea27624ffa3..9b746a90dfa7 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java @@ -28,18 +28,17 @@ public class UpdateDatasetExpiration { public static void runUpdateDatasetExpiration() { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; - updateDatasetExpiration(datasetName); + // Update dataset expiration to one day + Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); + updateDatasetExpiration(datasetName, newExpiration); } - public static void updateDatasetExpiration(String datasetName) { + public static void updateDatasetExpiration(String datasetName, Long newExpiration) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - // Update dataset expiration to one day - Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); - Dataset dataset = bigquery.getDataset(datasetName); bigquery.update(dataset.toBuilder().setDefaultTableLifetime(newExpiration).build()); System.out.println("Dataset description updated successfully to " + newExpiration); diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java index a5d9abedb770..cbc9a19403fa 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java @@ -29,18 +29,18 @@ public static void runUpdateTableExpiration() { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; - updateTableExpiration(datasetName, tableName); + // Update table expiration to one day. + Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); + updateTableExpiration(datasetName, tableName, newExpiration); } - public static void updateTableExpiration(String datasetName, String tableName) { + public static void updateTableExpiration(String datasetName, String tableName, + Long newExpiration) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - // Update table expiration to one day - Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); - Table table = bigquery.getTable(datasetName, tableName); bigquery.update(table.toBuilder().setExpirationTime(newExpiration).build()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java b/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java index 12a9acc380d3..afbe13c94d7f 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java @@ -24,6 +24,8 @@ import com.google.cloud.bigquery.Schema; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -71,7 +73,16 @@ public void testAddColumnLoadAppend() throws Exception { CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, originalSchema); - AddColumnLoadAppend.addColumnLoadAppend(BIGQUERY_DATASET_NAME, tableName, sourceUri); + List fields = originalSchema.getFields(); + // Adding below additional column during the load job + Field newField = Field.newBuilder("post_abbr", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(); + List newFields = new ArrayList<>(fields); + newFields.add(newField); + Schema newSchema = Schema.of(newFields); + + AddColumnLoadAppend.addColumnLoadAppend(BIGQUERY_DATASET_NAME, tableName, sourceUri, newSchema); assertThat(bout.toString()).contains("Column successfully added during load append job"); diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java index a60fbea3b76f..cc3ff5d7294c 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java @@ -57,7 +57,9 @@ public void tearDown() { @Test public void loadParquet() { - LoadParquet.loadParquet(BIGQUERY_DATASET_NAME); + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.parquet"; + String tableName = "us_states"; + LoadParquet.loadParquet(BIGQUERY_DATASET_NAME, tableName, sourceUri); assertThat(bout.toString()).contains("GCS parquet loaded successfully."); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java index 1d2bd0550e1e..03222cd6d8cc 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java @@ -57,7 +57,9 @@ public void tearDown() { @Test public void testLoadParquetReplaceTable() { - LoadParquetReplaceTable.loadParquetReplaceTable(BIGQUERY_DATASET_NAME); + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.parquet"; + String tableName = "us_states"; + LoadParquetReplaceTable.loadParquetReplaceTable(BIGQUERY_DATASET_NAME, tableName, sourceUri); assertThat(bout.toString()).contains("GCS parquet overwrote existing table successfully."); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java index 311cd9bd4527..527907dd943b 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java @@ -24,6 +24,8 @@ import com.google.cloud.bigquery.Schema; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.HashMap; +import java.util.Map; import java.util.UUID; import org.junit.After; import org.junit.Before; @@ -70,8 +72,13 @@ public void testTableInsertRows() { // Create table in dataset for testing CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + // Create a row to insert + Map rowContent = new HashMap<>(); + rowContent.put("booleanField", true); + rowContent.put("numericField", "3.14"); + // Testing - TableInsertRows.tableInsertRows(BIGQUERY_DATASET_NAME, tableName); + TableInsertRows.tableInsertRows(BIGQUERY_DATASET_NAME, tableName, rowContent); assertThat(bout.toString()).contains("Rows successfully inserted into table"); // Clean up diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java index 60086567ae06..10e7cfdddc8c 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java @@ -19,6 +19,9 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.TestCase.assertNotNull; +import com.google.cloud.bigquery.Acl; +import com.google.cloud.bigquery.Acl.Role; +import com.google.cloud.bigquery.Acl.User; import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; import java.io.ByteArrayOutputStream; import java.io.PrintStream; @@ -62,8 +65,9 @@ public void updateDatasetAccess() { // Create a dataset in order to modify its ACL CreateDataset.createDataset(generatedDatasetName); + Acl newEntry = Acl.of(new User("sample.bigquery.dev@gmail.com"), Role.READER); // Modify dataset's ACL - UpdateDatasetAccess.updateDatasetAccess(generatedDatasetName); + UpdateDatasetAccess.updateDatasetAccess(generatedDatasetName, newEntry); assertThat(bout.toString()).contains("Dataset Access Control updated successfully"); // Clean up diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java index 7dd4f7f4684b..3360223e32bd 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java @@ -22,6 +22,7 @@ import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -62,8 +63,9 @@ public void updateDatasetExpiration() { // Create a dataset in order to modify its expiration CreateDataset.createDataset(generatedDatasetName); + Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); // Modify dataset's expiration - UpdateDatasetExpiration.updateDatasetExpiration(generatedDatasetName); + UpdateDatasetExpiration.updateDatasetExpiration(generatedDatasetName, newExpiration); assertThat(bout.toString()).contains("Dataset description updated successfully"); // Clean up diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java index 5352762d8150..428317029106 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java @@ -21,6 +21,7 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -59,7 +60,8 @@ public void tearDown() { public void updateTableExpiration() { String tableName = "update_expiration_table"; CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, null); - UpdateTableExpiration.updateTableExpiration(BIGQUERY_DATASET_NAME, tableName); + Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); + UpdateTableExpiration.updateTableExpiration(BIGQUERY_DATASET_NAME, tableName, newExpiration); assertThat(bout.toString()).contains("Table expiration updated successfully"); // Clean up From 7e21be2506cdaf065cd32e3aed403890929b93e7 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 26 May 2020 16:37:06 -0400 Subject: [PATCH 0524/3441] deps: update shared-deps and add back certain test deps (#390) * deps: update shared-deps and add back certain test deps * add junit version --- pom.xml | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index b24faf6ca206..292f6fb7a8b5 100644 --- a/pom.xml +++ b/pom.xml @@ -74,7 +74,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.4.0 + 0.5.0 pom import @@ -91,6 +91,25 @@ 1.116.1-SNAPSHOT + + com.google.apis + google-api-services-bigquery + ${google-api-services-bigquery.version} + + + + + junit + junit + 4.13 + test + + + com.google.truth + truth + 1.0.1 + test + org.mockito mockito-core @@ -103,11 +122,6 @@ 1.108.0 test - - com.google.apis - google-api-services-bigquery - ${google-api-services-bigquery.version} - From 3f13ccbbf1ca8f179c48a69c8e456bdf45c43af5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 28 May 2020 17:13:14 +0200 Subject: [PATCH 0525/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.6.0 (#392) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 292f6fb7a8b5..4e5fbaa66725 100644 --- a/pom.xml +++ b/pom.xml @@ -74,7 +74,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.5.0 + 0.6.0 pom import From a11f3cb4733215a9c4a65936b05f9cc2ed75656f Mon Sep 17 00:00:00 2001 From: Irvi Aini <7439590+irvifa@users.noreply.github.com> Date: Thu, 28 May 2020 22:20:10 +0700 Subject: [PATCH 0526/3441] docs(samples): Convert tightly coupled local variable involved options inside of method into method arguments (#393) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As of the current version we can see that more options related to argument are written inside of the test instead of included as arguments, so I think as this is tightly coupled with argument, it will be better to pass it as well. Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [x] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [x] Ensure the tests and linter pass - [x] Code coverage does not decrease (if any source code was changed) - [x] Appropriate docs were updated (if necessary) Fixes #394 ☕️ --- .../bigquery/CreatePartitionedTable.java | 15 +++++++-------- .../example/bigquery/ExtractTableToJson.java | 19 +++++++++++-------- .../com/example/bigquery/LoadLocalFile.java | 7 ++++--- .../bigquery/CreatePartitionedTableIT.java | 10 +++++++++- .../bigquery/ExtractTableToJsonIT.java | 6 ++++-- .../com/example/bigquery/LoadLocalFileIT.java | 3 ++- 6 files changed, 37 insertions(+), 23 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java index 79a15a801c19..62a51c669145 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java @@ -34,10 +34,15 @@ public static void runCreatePartitionedTable() { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; - createPartitionedTable(datasetName, tableName); + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL), + Field.of("dateField", StandardSQLTypeName.DATE)); + createPartitionedTable(datasetName, tableName, schema); } - public static void createPartitionedTable(String datasetName, String tableName) { + public static void createPartitionedTable(String datasetName, String tableName, Schema schema) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -47,12 +52,6 @@ public static void createPartitionedTable(String datasetName, String tableName) TimePartitioning partitioning = TimePartitioning.of(TimePartitioning.Type.DAY); - Schema schema = - Schema.of( - Field.of("stringField", StandardSQLTypeName.STRING), - Field.of("booleanField", StandardSQLTypeName.BOOL), - Field.of("dateField", StandardSQLTypeName.DATE)); - StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder() .setSchema(schema) diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java index 4d657c69005d..0f05cb20d967 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java @@ -35,12 +35,19 @@ public static void runExtractTableToJson() { String tableName = "shakespeare"; String bucketName = "my-bucket"; String destinationUri = "gs://" + bucketName + "/path/to/file"; - extractTableToJson(projectId, datasetName, tableName, destinationUri); + // For more information on export formats available see: + // https://cloud.google.com/bigquery/docs/exporting-data#export_formats_and_compression_types + // For more information on Job see: + // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html + + String dataFormat = "CSV"; + extractTableToJson(projectId, datasetName, tableName, destinationUri, dataFormat); } // Exports datasetName:tableName to destinationUri as raw CSV public static void extractTableToJson( - String projectId, String datasetName, String tableName, String destinationUri) { + String projectId, String datasetName, String tableName, String destinationUri, + String dataFormat) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -49,11 +56,7 @@ public static void extractTableToJson( TableId tableId = TableId.of(projectId, datasetName, tableName); Table table = bigquery.getTable(tableId); - // For more information on export formats available see: - // https://cloud.google.com/bigquery/docs/exporting-data#export_formats_and_compression_types - // For more information on Job see: - // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html - Job job = table.extract("CSV", destinationUri); + Job job = table.extract(dataFormat, destinationUri); // Blocks until this job completes its execution, either failing or succeeding. Job completedJob = @@ -68,7 +71,7 @@ public static void extractTableToJson( "BigQuery was unable to extract due to an error: \n" + job.getStatus().getError()); return; } - System.out.println("Table export successful. Check in GCS bucket for the CSV file."); + System.out.println("Table export successful. Check in GCS bucket for the " + dataFormat + " file."); } catch (BigQueryException | InterruptedException e) { System.out.println("Table extraction job was interrupted. \n" + e.toString()); } diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java b/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java index e6e2e3915b18..3e580ec7d571 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java @@ -41,10 +41,11 @@ public static void runLoadLocalFile() throws IOException, InterruptedException { String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; Path csvPath = FileSystems.getDefault().getPath(".", "my-data.csv"); - loadLocalFile(datasetName, tableName, csvPath); + loadLocalFile(datasetName, tableName, csvPath, FormatOptions.csv()); } - public static void loadLocalFile(String datasetName, String tableName, Path csvPath) + public static void loadLocalFile(String datasetName, String tableName, Path csvPath, + FormatOptions formatOptions) throws IOException, InterruptedException { try { // Initialize client that will be used to send requests. This client only needs to be created @@ -54,7 +55,7 @@ public static void loadLocalFile(String datasetName, String tableName, Path csvP WriteChannelConfiguration writeChannelConfiguration = WriteChannelConfiguration.newBuilder(tableId) - .setFormatOptions(FormatOptions.csv()) + .setFormatOptions(formatOptions) .build(); // The location and JobName must be specified; other fields can be auto-detected. diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java index cbe612b322cb..32000c5ce018 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java @@ -19,6 +19,9 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.TestCase.assertNotNull; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import org.junit.After; @@ -58,8 +61,13 @@ public void tearDown() { @Test public void testCreatePartitionedTable() { String tableName = "MY_PARTITIONED_TABLE"; + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL), + Field.of("dateField", StandardSQLTypeName.DATE)); - CreatePartitionedTable.createPartitionedTable(BIGQUERY_DATASET_NAME, tableName); + CreatePartitionedTable.createPartitionedTable(BIGQUERY_DATASET_NAME, tableName, schema); assertThat(bout.toString()).contains("Partitioned table created successfully"); diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java index e018384ed5d0..fd28bc1cbbbc 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java @@ -61,10 +61,12 @@ public void testExtractTableToJson() { String datasetName = "samples"; String tableName = "shakespeare"; String destinationUri = "gs://" + GCS_BUCKET + "/extractTest.csv"; + String dataFormat = "CSV"; // Extract table content to GCS in CSV format - ExtractTableToJson.extractTableToJson(projectId, datasetName, tableName, destinationUri); + ExtractTableToJson.extractTableToJson(projectId, datasetName, tableName, destinationUri, + dataFormat); assertThat(bout.toString()) - .contains("Table export successful. Check in GCS bucket for the CSV file."); + .contains("Table export successful. Check in GCS bucket for the " + dataFormat + " file."); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java index a1a8d5a6f7ab..aefa2adbac46 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java @@ -20,6 +20,7 @@ import static junit.framework.TestCase.assertNotNull; import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FormatOptions; import com.google.cloud.bigquery.LegacySQLTypeName; import com.google.cloud.bigquery.Schema; import java.io.ByteArrayOutputStream; @@ -76,7 +77,7 @@ public void loadLocalFile() throws IOException, InterruptedException { Path csvPath = FileSystems.getDefault().getPath("src/test/resources", "bigquery_noheader.csv"); - LoadLocalFile.loadLocalFile(BIGQUERY_DATASET_NAME, tableName, csvPath); + LoadLocalFile.loadLocalFile(BIGQUERY_DATASET_NAME, tableName, csvPath, FormatOptions.csv()); assertThat(bout.toString()).contains("Successfully loaded"); From 117b49e92abcea275d8a98dde54f5563ec13135c Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 28 May 2020 22:02:08 +0530 Subject: [PATCH 0527/3441] chore: cover code coverage (#395) Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [X] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [X] Ensure the tests and linter pass - [X] Code coverage does not decrease (if any source code was changed) - [X] Appropriate docs were updated (if necessary) Fixes #330 --- .../cloud/bigquery/BigQueryImplTest.java | 258 +++++++++++++++++- .../cloud/bigquery/BigtableOptionsTest.java | 57 ++++ .../bigquery/ExternalTableDefinitionTest.java | 12 + .../com/google/cloud/bigquery/JobTest.java | 2 + .../bigquery/LoadJobConfigurationTest.java | 11 + .../bigquery/ModelTableDefinitionTest.java | 109 ++++++++ .../google/cloud/bigquery/PolicyTagsTest.java | 60 ++++ .../bigquery/QueryJobConfigurationTest.java | 42 +++ .../bigquery/QueryParameterValueTest.java | 29 ++ .../google/cloud/bigquery/QueryStageTest.java | 7 + .../cloud/bigquery/RoutineInfoTest.java | 1 + .../bigquery/StandardTableDefinitionTest.java | 13 + .../com/google/cloud/bigquery/TableTest.java | 15 + .../cloud/bigquery/TimePartitioningTest.java | 3 + .../cloud/bigquery/TimelineSampleTest.java | 10 + .../cloud/bigquery/ViewDefinitionTest.java | 16 +- 16 files changed, 643 insertions(+), 2 deletions(-) create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTableDefinitionTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index ac11f40d06e9..6435ff91a485 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -53,6 +53,7 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import java.io.IOException; import java.math.BigInteger; import java.util.Collections; import java.util.List; @@ -78,6 +79,15 @@ public class BigQueryImplTest { private static final String JOB = "job"; private static final String OTHER_TABLE = "otherTable"; private static final String OTHER_DATASET = "otherDataset"; + private static final String ROUTINE = "routine"; + private static final RoutineId ROUTINE_ID = RoutineId.of(DATASET, ROUTINE); + private static final String ETAG = "etag"; + private static final String ROUTINE_TYPE = "SCALAR_FUNCTION"; + private static final Long CREATION_TIME = 10L; + private static final Long LAST_MODIFIED_TIME = 20L; + private static final String LANGUAGE = "SQL"; + private static final String UPLOAD_ID = "uploadid"; + private static final int MIN_CHUNK_SIZE = 256 * 1024; private static final List ACCESS_RULES = ImmutableList.of( Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), @@ -439,6 +449,43 @@ public class BigQueryImplTest { BigQueryRpc.Option.PAGE_TOKEN, CURSOR, BigQueryRpc.Option.MAX_RESULTS, 0L); + private static final RoutineArgument ARG_1 = + RoutineArgument.newBuilder() + .setDataType(StandardSQLDataType.newBuilder("STRING").build()) + .setName("arg1") + .build(); + + private static final List ARGUMENT_LIST = ImmutableList.of(ARG_1); + + private static final StandardSQLDataType RETURN_TYPE = + StandardSQLDataType.newBuilder("FLOAT64").build(); + + private static final List IMPORTED_LIBRARIES = + ImmutableList.of("gs://foo", "gs://bar", "gs://baz"); + + private static final String BODY = "body"; + + private static final RoutineInfo ROUTINE_INFO = + RoutineInfo.newBuilder(ROUTINE_ID) + .setEtag(ETAG) + .setRoutineType(ROUTINE_TYPE) + .setCreationTime(CREATION_TIME) + .setLastModifiedTime(LAST_MODIFIED_TIME) + .setLanguage(LANGUAGE) + .setArguments(ARGUMENT_LIST) + .setReturnType(RETURN_TYPE) + .setImportedLibraries(IMPORTED_LIBRARIES) + .setBody(BODY) + .build(); + private static final WriteChannelConfiguration LOAD_CONFIGURATION = + WriteChannelConfiguration.newBuilder(TABLE_ID) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setWriteDisposition(JobInfo.WriteDisposition.WRITE_APPEND) + .setFormatOptions(FormatOptions.json()) + .setIgnoreUnknownValues(true) + .setMaxBadRecords(10) + .build(); + private BigQueryOptions options; private BigQueryRpcFactory rpcFactoryMock; private BigQueryRpc bigqueryRpcMock; @@ -446,6 +493,9 @@ public class BigQueryImplTest { @Captor private ArgumentCaptor> capturedOptions; @Captor private ArgumentCaptor jobCapture; + @Captor private ArgumentCaptor capturedBuffer; + + private TableDataWriteChannel writer; private BigQueryOptions createBigQueryOptionsForProject( String project, BigQueryRpcFactory rpcFactory) { @@ -535,6 +585,7 @@ public void testGetDatasetNotFoundWhenThrowIsDisabled() { @Test public void testGetDatasetNotFoundWhenThrowIsEnabled() { when(bigqueryRpcMock.getDataset(PROJECT, "dataset-not-found", EMPTY_RPC_OPTIONS)) + .thenReturn(null) .thenThrow(new BigQueryException(404, "Dataset not found")); options.setThrowNotFound(true); bigquery = options.getService(); @@ -782,6 +833,22 @@ public void testGetModel() { verify(bigqueryRpcMock).getModel(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS); } + @Test + public void testGetModelNotFoundWhenThrowIsEnabled() { + String expected = "Model not found"; + when(bigqueryRpcMock.getModel(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS)) + .thenReturn(null) + .thenThrow(new BigQueryException(404, expected)); + options.setThrowNotFound(true); + bigquery = options.getService(); + try { + bigquery.getModel(DATASET, MODEL); + } catch (BigQueryException ex) { + assertEquals(expected, ex.getMessage()); + } + verify(bigqueryRpcMock).getModel(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS); + } + @Test public void testListPartition() { when(bigqueryRpcMock.getTable( @@ -811,6 +878,7 @@ public void testGetTableNotFoundWhenThrowIsDisabled() { @Test public void testGetTableNotFoundWhenThrowIsEnabled() { when(bigqueryRpcMock.getTable(PROJECT, DATASET, "table-not-found", EMPTY_RPC_OPTIONS)) + .thenReturn(null) .thenThrow(new BigQueryException(404, "Table not found")); options.setThrowNotFound(true); bigquery = options.getService(); @@ -1001,6 +1069,22 @@ public void testListModels() { verify(bigqueryRpcMock).listModels(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } + @Test + public void testListModelsWithModelId() { + bigquery = options.getService(); + ImmutableList modelList = + ImmutableList.of( + new Model(bigquery, new ModelInfo.BuilderImpl(MODEL_INFO_WITH_PROJECT)), + new Model(bigquery, new ModelInfo.BuilderImpl(OTHER_MODEL_INFO))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(modelList, ModelInfo.TO_PB_FUNCTION)); + when(bigqueryRpcMock.listModels(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); + Page page = bigquery.listModels(DatasetId.of(DATASET)); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(modelList.toArray(), Iterables.toArray(page.getValues(), Model.class)); + verify(bigqueryRpcMock).listModels(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + } + @Test public void testDeleteTable() { when(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).thenReturn(true); @@ -1046,6 +1130,24 @@ public void testDeleteModel() { verify(bigqueryRpcMock).deleteModel(PROJECT, DATASET, MODEL); } + @Test + public void testUpdateModel() { + ModelInfo updateModelInfo = + MODEL_INFO_WITH_PROJECT + .setProjectId(OTHER_PROJECT) + .toBuilder() + .setDescription("newDescription") + .build(); + when(bigqueryRpcMock.patch(updateModelInfo.toPb(), EMPTY_RPC_OPTIONS)) + .thenReturn(updateModelInfo.toPb()); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); + Model actualModel = bigquery.update(updateModelInfo); + assertEquals(new Model(bigquery, new ModelInfo.BuilderImpl(updateModelInfo)), actualModel); + verify(bigqueryRpcMock).patch(updateModelInfo.toPb(), EMPTY_RPC_OPTIONS); + } + @Test public void testUpdateTable() { TableInfo updatedTableInfo = @@ -1487,6 +1589,7 @@ public void testGetJobNotFoundWhenThrowIsDisabled() { @Test public void testGetJobNotFoundWhenThrowIsEnabled() { when(bigqueryRpcMock.getJob(PROJECT, "job-not-found", null, EMPTY_RPC_OPTIONS)) + .thenReturn(null) .thenThrow(new BigQueryException(404, "Job not found")); options.setThrowNotFound(true); bigquery = options.getService(); @@ -1900,7 +2003,7 @@ public void testGetQueryResultsWithOptions() { } @Test - public void testRetryableException() { + public void testGetDatasetRetryableException() { when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(500, "InternalError")) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); @@ -1971,4 +2074,157 @@ public void testQueryDryRun() throws Exception { Assert.assertNotNull(ex.getMessage()); } } + + @Test + public void testCreateRoutine() { + RoutineInfo routineInfo = ROUTINE_INFO.setProjectId(OTHER_PROJECT); + when(bigqueryRpcMock.create(routineInfo.toPb(), EMPTY_RPC_OPTIONS)) + .thenReturn(routineInfo.toPb()); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); + Routine actualRoutine = bigquery.create(routineInfo); + assertEquals(new Routine(bigquery, new RoutineInfo.BuilderImpl(routineInfo)), actualRoutine); + verify(bigqueryRpcMock).create(routineInfo.toPb(), EMPTY_RPC_OPTIONS); + } + + @Test + public void testGetRoutine() { + when(bigqueryRpcMock.getRoutine(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS)) + .thenReturn(ROUTINE_INFO.toPb()); + bigquery = options.getService(); + Routine routine = bigquery.getRoutine(DATASET, ROUTINE); + assertEquals(new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO)), routine); + verify(bigqueryRpcMock).getRoutine(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS); + } + + @Test + public void testGetRoutineWithRountineId() { + when(bigqueryRpcMock.getRoutine(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS)) + .thenReturn(ROUTINE_INFO.toPb()); + bigquery = options.getService(); + Routine routine = bigquery.getRoutine(ROUTINE_ID); + assertEquals(new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO)), routine); + verify(bigqueryRpcMock).getRoutine(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS); + } + + @Test + public void testGetRoutineWithEnabledThrowNotFoundException() { + when(bigqueryRpcMock.getRoutine(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS)) + .thenReturn(null) + .thenThrow(new BigQueryException(404, "Routine not found")); + options.setThrowNotFound(true); + bigquery = options.getService(); + try { + Routine routine = bigquery.getRoutine(ROUTINE_ID); + fail(); + } catch (BigQueryException ex) { + assertEquals("Routine not found", ex.getMessage()); + } + verify(bigqueryRpcMock).getRoutine(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS); + } + + @Test + public void testUpdateRoutine() { + RoutineInfo updatedRoutineInfo = + ROUTINE_INFO + .setProjectId(OTHER_PROJECT) + .toBuilder() + .setDescription("newDescription") + .build(); + when(bigqueryRpcMock.update(updatedRoutineInfo.toPb(), EMPTY_RPC_OPTIONS)) + .thenReturn(updatedRoutineInfo.toPb()); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); + Routine routine = bigquery.update(updatedRoutineInfo); + assertEquals(new Routine(bigquery, new RoutineInfo.BuilderImpl(updatedRoutineInfo)), routine); + verify(bigqueryRpcMock).update(updatedRoutineInfo.toPb(), EMPTY_RPC_OPTIONS); + } + + @Test + public void testListRoutines() { + bigquery = options.getService(); + ImmutableList routineList = + ImmutableList.of(new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(routineList, RoutineInfo.TO_PB_FUNCTION)); + when(bigqueryRpcMock.listRoutines(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); + Page page = bigquery.listRoutines(DATASET); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(routineList.toArray(), Iterables.toArray(page.getValues(), Routine.class)); + verify(bigqueryRpcMock).listRoutines(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + } + + @Test + public void testListRoutinesWithDatasetId() { + bigquery = options.getService(); + ImmutableList routineList = + ImmutableList.of(new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(routineList, RoutineInfo.TO_PB_FUNCTION)); + when(bigqueryRpcMock.listRoutines(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); + Page page = bigquery.listRoutines(DatasetId.of(PROJECT, DATASET)); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(routineList.toArray(), Iterables.toArray(page.getValues(), Routine.class)); + verify(bigqueryRpcMock).listRoutines(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + } + + @Test + public void testDeleteRoutine() { + when(bigqueryRpcMock.deleteRoutine(PROJECT, DATASET, ROUTINE)).thenReturn(true); + bigquery = options.getService(); + assertTrue(bigquery.delete(ROUTINE_ID)); + verify(bigqueryRpcMock).deleteRoutine(PROJECT, DATASET, ROUTINE); + } + + @Test + public void testWriteWithJob() throws IOException { + bigquery = options.getService(); + Job job = new Job(bigquery, new JobInfo.BuilderImpl(JOB_INFO)); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); + when(bigqueryRpcMock.write( + eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true))) + .thenReturn(job.toPb()); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + writer.close(); + assertEquals(job, writer.getJob()); + bigquery.writer(JOB_INFO.getJobId(), LOAD_CONFIGURATION); + verify(bigqueryRpcMock) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); + verify(bigqueryRpcMock) + .write(eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); + } + + @Test + public void testWriteChannel() throws IOException { + bigquery = options.getService(); + Job job = new Job(bigquery, new JobInfo.BuilderImpl(JOB_INFO)); + when(bigqueryRpcMock.open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); + when(bigqueryRpcMock.write( + eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true))) + .thenReturn(job.toPb()); + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + writer.close(); + assertEquals(job, writer.getJob()); + bigquery.writer(LOAD_CONFIGURATION); + verify(bigqueryRpcMock) + .open( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); + verify(bigqueryRpcMock) + .write(eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java index 51d27b7935fc..88fa1595e38c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java @@ -18,6 +18,7 @@ import static com.google.common.truth.Truth.assertThat; import com.google.common.collect.ImmutableList; +import org.junit.Assert; import org.junit.Test; public class BigtableOptionsTest { @@ -61,6 +62,8 @@ public void testConstructors() { assertThat(COL1.getOnlyReadLatest()).isEqualTo(true); assertThat(COL1.getEncoding()).isEqualTo("BINARY"); assertThat(COL1.getType()).isEqualTo("BYTES"); + assertThat(COL1.equals(COL1)).isTrue(); + assertThat(COL1).isNotEqualTo(TESTFAMILY); // family assertThat(TESTFAMILY.getFamilyID()).isEqualTo("fooFamily"); @@ -73,6 +76,50 @@ public void testConstructors() { assertThat(OPTIONS.getIgnoreUnspecifiedColumnFamilies()).isEqualTo(true); assertThat(OPTIONS.getReadRowkeyAsString()).isEqualTo(true); assertThat(OPTIONS.getColumnFamilies()).isEqualTo(ImmutableList.of(TESTFAMILY)); + compareBigtableOptions(OPTIONS, OPTIONS.toBuilder().build()); + } + + @Test + public void testNullPointerException() { + try { + BigtableColumnFamily.newBuilder().setFamilyID(null).build(); + Assert.fail(); + } catch (NullPointerException ex) { + assertThat(ex.getMessage()).isNotNull(); + } + try { + BigtableColumnFamily.newBuilder().setColumns(null).build(); + Assert.fail(); + } catch (NullPointerException ex) { + assertThat(ex.getMessage()).isNotNull(); + } + try { + BigtableColumnFamily.newBuilder().setEncoding(null).build(); + Assert.fail(); + } catch (NullPointerException ex) { + assertThat(ex.getMessage()).isNotNull(); + } + try { + BigtableColumnFamily.newBuilder().setOnlyReadLatest(null).build(); + Assert.fail(); + } catch (NullPointerException ex) { + assertThat(ex.getMessage()).isNotNull(); + } + try { + BigtableColumnFamily.newBuilder().setType(null).build(); + Assert.fail(); + } catch (NullPointerException ex) { + assertThat(ex.getMessage()).isNotNull(); + } + } + + @Test + public void testIllegalStateException() { + try { + BigtableColumnFamily.newBuilder().build(); + } catch (IllegalStateException ex) { + assertThat(ex.getMessage()).isNotNull(); + } } @Test @@ -86,6 +133,10 @@ public void testToAndFromPb() { public void testEquals() { compareBigtableColumn(COL1, COL1); compareBigtableColumnFamily(TESTFAMILY, TESTFAMILY); + assertThat(TESTFAMILY.equals(TESTFAMILY)).isTrue(); + assertThat(TESTFAMILY).isNotEqualTo(COL1); + assertThat(OPTIONS.equals(OPTIONS)).isTrue(); + assertThat(OPTIONS).isNotEqualTo(TESTFAMILY); compareBigtableOptions(OPTIONS, OPTIONS); } @@ -96,6 +147,8 @@ private void compareBigtableColumn(BigtableColumn expected, BigtableColumn value assertThat(expected.getQualifierEncoded()).isEqualTo(value.getQualifierEncoded()); assertThat(expected.getOnlyReadLatest()).isEqualTo(value.getOnlyReadLatest()); assertThat(expected.getType()).isEqualTo(value.getType()); + assertThat(expected.toString()).isEqualTo(value.toString()); + assertThat(expected.hashCode()).isEqualTo(value.hashCode()); } private void compareBigtableColumnFamily( @@ -106,6 +159,8 @@ private void compareBigtableColumnFamily( assertThat(expected.getColumns()).isEqualTo(value.getColumns()); assertThat(expected.getEncoding()).isEqualTo(value.getEncoding()); assertThat(expected.getType()).isEqualTo(value.getType()); + assertThat(expected.toString()).isEqualTo(value.toString()); + assertThat(expected.hashCode()).isEqualTo(value.hashCode()); } private void compareBigtableOptions(BigtableOptions expected, BigtableOptions value) { @@ -114,5 +169,7 @@ private void compareBigtableOptions(BigtableOptions expected, BigtableOptions va .isEqualTo(value.getIgnoreUnspecifiedColumnFamilies()); assertThat(expected.getReadRowkeyAsString()).isEqualTo(value.getReadRowkeyAsString()); assertThat(expected.getColumnFamilies()).isEqualTo(value.getColumnFamilies()); + assertThat(expected.hashCode()).isEqualTo(value.hashCode()); + assertThat(expected.toString()).isEqualTo(value.toString()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index bd5a6cdfb236..ea8ca1ada4e4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -17,6 +17,8 @@ package com.google.cloud.bigquery; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; import com.google.common.collect.ImmutableList; import java.util.List; @@ -79,6 +81,15 @@ public void testToBuilderIncomplete() { assertEquals(externalTableDefinition, externalTableDefinition.toBuilder().build()); } + @Test + public void testTypeNullPointerException() { + try { + EXTERNAL_TABLE_DEFINITION.toBuilder().setType(null).build(); + } catch (NullPointerException ex) { + assertNotNull(ex.getMessage()); + } + } + @Test public void testBuilder() { assertEquals(TableDefinition.Type.EXTERNAL, EXTERNAL_TABLE_DEFINITION.getType()); @@ -90,6 +101,7 @@ public void testBuilder() { assertEquals(SOURCE_URIS, EXTERNAL_TABLE_DEFINITION.getSourceUris()); assertEquals(AUTODETECT, EXTERNAL_TABLE_DEFINITION.getAutodetect()); assertEquals(HIVE_PARTITIONING_OPTIONS, EXTERNAL_TABLE_DEFINITION.getHivePartitioningOptions()); + assertNotEquals(EXTERNAL_TABLE_DEFINITION, TableDefinition.Type.EXTERNAL); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index 68ccfd627406..1d34f4958335 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; @@ -471,6 +472,7 @@ public void testToAndFromPb() { @Test public void testToAndFromPbWithoutConfiguration() { + assertNotEquals(expectedJob, bigquery); compareJob(expectedJob, Job.fromPb(bigquery, expectedJob.toPb())); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index b64e3c451419..9f42d62b7285 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -67,6 +67,13 @@ public class LoadJobConfigurationTest { RangePartitioning.Range.newBuilder().setStart(1L).setInterval(2L).setEnd(10L).build(); private static final RangePartitioning RANGE_PARTITIONING = RangePartitioning.newBuilder().setField("IntegerField").setRange(RANGE).build(); + private static final String MODE = "STRING"; + private static final String SOURCE_URI_PREFIX = "gs://bucket/path_to_table"; + private static final HivePartitioningOptions HIVE_PARTITIONING_OPTIONS = + HivePartitioningOptions.newBuilder() + .setMode(MODE) + .setSourceUriPrefix(SOURCE_URI_PREFIX) + .build(); private static final LoadJobConfiguration LOAD_CONFIGURATION_CSV = LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) .setCreateDisposition(CREATE_DISPOSITION) @@ -83,6 +90,8 @@ public class LoadJobConfigurationTest { .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) .setRangePartitioning(RANGE_PARTITIONING) + .setNullMarker("nullMarker") + .setHivePartitioningOptions(HIVE_PARTITIONING_OPTIONS) .build(); private static final DatastoreBackupOptions BACKUP_OPTIONS = @@ -238,5 +247,7 @@ private void compareLoadJobConfiguration( assertEquals(expected.getLabels(), value.getLabels()); assertEquals(expected.getJobTimeoutMs(), value.getJobTimeoutMs()); assertEquals(expected.getRangePartitioning(), value.getRangePartitioning()); + assertEquals(expected.getNullMarker(), value.getNullMarker()); + assertEquals(expected.getHivePartitioningOptions(), value.getHivePartitioningOptions()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTableDefinitionTest.java new file mode 100644 index 000000000000..62b2cfe7d8ed --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTableDefinitionTest.java @@ -0,0 +1,109 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + +import org.junit.Test; + +public class ModelTableDefinitionTest { + + private static final String LOCATION = "US"; + private static final Long NUM_BYTES = 14L; + private static final Field FIELD_SCHEMA1 = + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("FieldDescription1") + .build(); + private static final Field FIELD_SCHEMA2 = + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.REPEATED) + .setDescription("FieldDescription2") + .build(); + private static final Field FIELD_SCHEMA3 = + Field.newBuilder("RecordField", LegacySQLTypeName.RECORD, FIELD_SCHEMA1, FIELD_SCHEMA2) + .setMode(Field.Mode.REQUIRED) + .setDescription("FieldDescription3") + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); + private static final ModelTableDefinition MODEL_TABLE_DEFINITION = + ModelTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setType(TableDefinition.Type.MODEL) + .setLocation(LOCATION) + .setNumBytes(NUM_BYTES) + .build(); + + @Test + public void testToBuilder() { + compareModelTableDefinition(MODEL_TABLE_DEFINITION, MODEL_TABLE_DEFINITION.toBuilder().build()); + } + + @Test + public void testTypeNullPointerException() { + try { + MODEL_TABLE_DEFINITION.toBuilder().setType(null).build(); + fail(); + } catch (NullPointerException ex) { + assertNotNull(ex.getMessage()); + } + } + + @Test + public void testToBuilderIncomplete() { + ModelTableDefinition modelTableDefinition = ModelTableDefinition.newBuilder().build(); + assertEquals(modelTableDefinition, modelTableDefinition.toBuilder().build()); + } + + @Test + public void testToAndFromPb() { + assertEquals( + MODEL_TABLE_DEFINITION, ModelTableDefinition.fromPb(MODEL_TABLE_DEFINITION.toPb())); + } + + @Test + public void testBuilder() { + assertEquals(MODEL_TABLE_DEFINITION.getSchema(), TABLE_SCHEMA); + assertEquals(MODEL_TABLE_DEFINITION.getType(), TableDefinition.Type.MODEL); + assertEquals(MODEL_TABLE_DEFINITION.getLocation(), LOCATION); + assertEquals(MODEL_TABLE_DEFINITION.getNumBytes(), NUM_BYTES); + } + + @Test + public void testEquals() { + assertEquals(MODEL_TABLE_DEFINITION, MODEL_TABLE_DEFINITION); + } + + @Test + public void testNotEquals() { + assertNotEquals(MODEL_TABLE_DEFINITION, LOCATION); + } + + private void compareModelTableDefinition( + ModelTableDefinition expected, ModelTableDefinition value) { + assertEquals(expected, value); + assertEquals(expected.getSchema(), value.getSchema()); + assertEquals(expected.getType(), value.getType()); + assertEquals(expected.getLocation(), value.getLocation()); + assertEquals(expected.getNumBytes(), value.getNumBytes()); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java new file mode 100644 index 000000000000..2136b2dab259 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java @@ -0,0 +1,60 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + +import com.google.common.collect.ImmutableList; +import java.util.List; +import org.junit.Test; + +public class PolicyTagsTest { + + private static final List POLICIES = ImmutableList.of("test/policy1", "test/policy2"); + private static final PolicyTags POLICY_TAGS = PolicyTags.newBuilder().setNames(POLICIES).build(); + + @Test + public void testToBuilder() { + comparePolicyTags(POLICY_TAGS, POLICY_TAGS.toBuilder().build()); + } + + @Test + public void testToBuilderIncomplete() { + PolicyTags policyTags = PolicyTags.newBuilder().build(); + assertEquals(policyTags, policyTags); + assertEquals(policyTags, policyTags.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(POLICIES, POLICY_TAGS.getNames()); + assertNotEquals(POLICY_TAGS, POLICIES); + } + + @Test + public void testFromAndPb() { + assertEquals(POLICY_TAGS, PolicyTags.fromPb(POLICY_TAGS.toPb())); + } + + private void comparePolicyTags(PolicyTags expected, PolicyTags value) { + assertEquals(expected, value); + assertEquals(expected.getNames(), value.getNames()); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index 406d7edfa49a..0e892b6e1f4a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -80,6 +80,7 @@ public class QueryJobConfigurationTest { private static final boolean FLATTEN_RESULTS = true; private static final boolean USE_LEGACY_SQL = true; private static final Integer MAX_BILLING_TIER = 123; + private static final Long MAX_BYTES_BILL = 12345L; private static final List SCHEMA_UPDATE_OPTIONS = ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_RELAXATION); private static final List USER_DEFINED_FUNCTIONS = @@ -96,6 +97,14 @@ public class QueryJobConfigurationTest { RangePartitioning.Range.newBuilder().setStart(1L).setInterval(2L).setEnd(10L).build(); private static final RangePartitioning RANGE_PARTITIONING = RangePartitioning.newBuilder().setField("IntegerField").setRange(RANGE).build(); + private static final QueryParameterValue STRING_PARAMETER = + QueryParameterValue.string("stringValue"); + private static final QueryParameterValue TIMESTAMP_PARAMETER = + QueryParameterValue.timestamp("2014-01-01 07:00:00.000000+00:00"); + private static final List POSITIONAL_PARAMETER = + ImmutableList.of(STRING_PARAMETER, TIMESTAMP_PARAMETER); + private static final Map NAME_PARAMETER = + ImmutableMap.of("string", STRING_PARAMETER, "timestamp", TIMESTAMP_PARAMETER); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -111,6 +120,7 @@ public class QueryJobConfigurationTest { .setDryRun(true) .setUseLegacySql(USE_LEGACY_SQL) .setMaximumBillingTier(MAX_BILLING_TIER) + .setMaximumBytesBilled(MAX_BYTES_BILL) .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) .setDestinationEncryptionConfiguration(JOB_ENCRYPTION_CONFIGURATION) .setTimePartitioning(TIME_PARTITIONING) @@ -119,6 +129,19 @@ public class QueryJobConfigurationTest { .setLabels(LABELS) .setRangePartitioning(RANGE_PARTITIONING) .setConnectionProperties(CONNECTION_PROPERTIES) + .setPositionalParameters(POSITIONAL_PARAMETER) + .build(); + private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_ADD_POSITIONAL_PARAMETER = + QUERY_JOB_CONFIGURATION + .toBuilder() + .setPositionalParameters(ImmutableList.of()) + .addPositionalParameter(STRING_PARAMETER) + .build(); + private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_SET_NAME_PARAMETER = + QUERY_JOB_CONFIGURATION + .toBuilder() + .setPositionalParameters(ImmutableList.of()) + .setNamedParameters(NAME_PARAMETER) .build(); @Test @@ -154,6 +177,8 @@ public void testToPbAndFromPb() { assertNotNull(QUERY_JOB_CONFIGURATION.getLabels()); assertNotNull(QUERY_JOB_CONFIGURATION.getRangePartitioning()); assertNotNull(QUERY_JOB_CONFIGURATION.getConnectionProperties()); + assertNotNull(QUERY_JOB_CONFIGURATION.getPositionalParameters()); + assertNotNull(QUERY_JOB_CONFIGURATION.getNamedParameters()); compareQueryJobConfiguration( QUERY_JOB_CONFIGURATION, QueryJobConfiguration.fromPb(QUERY_JOB_CONFIGURATION.toPb())); QueryJobConfiguration job = QueryJobConfiguration.of(QUERY); @@ -184,6 +209,20 @@ public void testGetType() { assertEquals(JobConfiguration.Type.QUERY, QUERY_JOB_CONFIGURATION.getType()); } + @Test + public void testPositionalParameter() { + compareQueryJobConfiguration( + QUERY_JOB_CONFIGURATION_ADD_POSITIONAL_PARAMETER, + QUERY_JOB_CONFIGURATION_ADD_POSITIONAL_PARAMETER.toBuilder().build()); + } + + @Test + public void testNamedParameter() { + compareQueryJobConfiguration( + QUERY_JOB_CONFIGURATION_SET_NAME_PARAMETER, + QUERY_JOB_CONFIGURATION_SET_NAME_PARAMETER.toBuilder().build()); + } + private void compareQueryJobConfiguration( QueryJobConfiguration expected, QueryJobConfiguration value) { assertEquals(expected, value); @@ -203,6 +242,7 @@ private void compareQueryJobConfiguration( assertEquals(expected.getWriteDisposition(), value.getWriteDisposition()); assertEquals(expected.useLegacySql(), value.useLegacySql()); assertEquals(expected.getMaximumBillingTier(), value.getMaximumBillingTier()); + assertEquals(expected.getMaximumBytesBilled(), value.getMaximumBytesBilled()); assertEquals(expected.getSchemaUpdateOptions(), value.getSchemaUpdateOptions()); assertEquals( expected.getDestinationEncryptionConfiguration(), @@ -213,5 +253,7 @@ private void compareQueryJobConfiguration( assertEquals(expected.getLabels(), value.getLabels()); assertEquals(expected.getRangePartitioning(), value.getRangePartitioning()); assertEquals(expected.getConnectionProperties(), value.getConnectionProperties()); + assertEquals(expected.getPositionalParameters(), value.getPositionalParameters()); + assertEquals(expected.getNamedParameters(), value.getNamedParameters()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index 930a29c40064..09421565c2ff 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -30,6 +30,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.junit.Assert; import org.junit.Test; import org.threeten.bp.Instant; import org.threeten.bp.ZoneOffset; @@ -58,6 +59,34 @@ public class QueryParameterValueTest { .toFormatter() .withZone(ZoneOffset.UTC); + private static final QueryParameterValue QUERY_PARAMETER_VALUE = + QueryParameterValue.newBuilder() + .setType(StandardSQLTypeName.STRING) + .setValue("test-string") + .build(); + + @Test + public void testBuilder() { + QueryParameterValue value = QUERY_PARAMETER_VALUE.toBuilder().build(); + assertThat(value).isEqualTo(QUERY_PARAMETER_VALUE); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.STRING); + assertThat(value.getValue()).isEqualTo("test-string"); + assertThat(value.toString()).isEqualTo(QUERY_PARAMETER_VALUE.toString()); + assertThat(value.hashCode()).isEqualTo(QUERY_PARAMETER_VALUE.hashCode()); + assertThat(value.equals(value)).isTrue(); + assertThat(QUERY_PARAMETER_VALUE).isNotEqualTo(StandardSQLTypeName.STRING); + } + + @Test + public void testTypeNullPointerException() { + try { + QUERY_PARAMETER_VALUE.toBuilder().setType(null).build(); + Assert.fail(); + } catch (NullPointerException ex) { + assertThat(ex).isNotNull(); + } + } + @Test public void testBool() { QueryParameterValue value = QueryParameterValue.bool(true); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java index 69edb39886b9..bc7d6083be68 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java @@ -17,6 +17,7 @@ package com.google.cloud.bigquery; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; import com.google.api.services.bigquery.model.ExplainQueryStep; import com.google.cloud.bigquery.QueryStage.QueryStep; @@ -154,6 +155,12 @@ public void testEquals() { compareQueryStage(QUERY_STAGE, QUERY_STAGE); } + @Test + public void testNotEquals() { + assertNotEquals(QUERY_STAGE, QUERY_STEP1); + assertNotEquals(QUERY_STEP1, QUERY_STAGE); + } + private void compareQueryStage(QueryStage expected, QueryStage value) { assertEquals(expected, value); assertEquals(expected.getCompletedParallelInputs(), value.getCompletedParallelInputs()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java index d167858fc402..ce613193c325 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java @@ -128,5 +128,6 @@ public void compareRoutineInfo(RoutineInfo expected, RoutineInfo value) { assertEquals(expected.getImportedLibraries(), value.getImportedLibraries()); assertEquals(expected.getBody(), value.getBody()); assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java index 6742763cb223..393b7fbc65c7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -17,6 +17,8 @@ package com.google.cloud.bigquery; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -95,6 +97,17 @@ public void testBuilder() { assertEquals(STREAMING_BUFFER, TABLE_DEFINITION.getStreamingBuffer()); assertEquals(TIME_PARTITIONING, TABLE_DEFINITION.getTimePartitioning()); assertEquals(CLUSTERING, TABLE_DEFINITION.getClustering()); + assertNotEquals(TABLE_DEFINITION, TableDefinition.Type.TABLE); + } + + @Test + public void testTypeNullPointerException() { + try { + TABLE_DEFINITION.toBuilder().setType(null).build(); + fail(); + } catch (NullPointerException ex) { + assertNotNull(ex.getMessage()); + } } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java index 860230f30ffa..b93ed770b8f5 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java @@ -32,6 +32,7 @@ import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import java.math.BigInteger; import java.util.List; import org.junit.Before; import org.junit.Rule; @@ -51,8 +52,14 @@ public class TableTest { private static final Long CREATION_TIME = 10L; private static final Long EXPIRATION_TIME = 100L; private static final Long LAST_MODIFIED_TIME = 20L; + private static final Long NUM_BYTES = 42L; + private static final Long NUM_LONG_TERM_BYTES = 21L; + private static final Long NUM_ROWS = 43L; private static final TableId TABLE_ID1 = TableId.of("dataset", "table1"); private static final TableId TABLE_ID2 = TableId.of("dataset", "table2"); + private static final Boolean REQUIRE_PARTITION_FILTER = true; + private static final EncryptionConfiguration ENCRYPTION_CONFIGURATION = + EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); private static final CopyJobConfiguration COPY_JOB_CONFIGURATION = CopyJobConfiguration.of(TABLE_ID2, TABLE_ID1); private static final JobInfo COPY_JOB_INFO = JobInfo.of(COPY_JOB_CONFIGURATION); @@ -118,6 +125,10 @@ public void testBuilder() { .setGeneratedId(GENERATED_ID) .setLastModifiedTime(LAST_MODIFIED_TIME) .setSelfLink(SELF_LINK) + .setNumBytes(NUM_BYTES) + .setNumLongTermBytes(NUM_LONG_TERM_BYTES) + .setNumRows(BigInteger.valueOf(NUM_ROWS)) + .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) .build(); assertEquals(TABLE_ID1, builtTable.getTableId()); assertEquals(CREATION_TIME, builtTable.getCreationTime()); @@ -129,6 +140,10 @@ public void testBuilder() { assertEquals(LAST_MODIFIED_TIME, builtTable.getLastModifiedTime()); assertEquals(TABLE_DEFINITION, builtTable.getDefinition()); assertEquals(SELF_LINK, builtTable.getSelfLink()); + assertEquals(NUM_BYTES, builtTable.getNumBytes()); + assertEquals(NUM_LONG_TERM_BYTES, builtTable.getNumLongTermBytes()); + assertEquals(BigInteger.valueOf(NUM_ROWS), builtTable.getNumRows()); + assertEquals(REQUIRE_PARTITION_FILTER, builtTable.getRequirePartitionFilter()); assertSame(bigquery, builtTable.getBigQuery()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java index 10b303f2109e..ee7f5dde6167 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java @@ -17,6 +17,7 @@ package com.google.cloud.bigquery; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; @@ -68,6 +69,8 @@ public void testBuilder() { assertEquals(100, (long) partitioning.getExpirationMs()); assertNull(partitioning.getRequirePartitionFilter()); assertNull(partitioning.getField()); + compareTimePartitioning(TIME_PARTITIONING_HOUR, TIME_PARTITIONING_HOUR.toBuilder().build()); + assertNotEquals(TIME_PARTITIONING_DAY, TYPE_DAY); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java index 0d39fa25b4fe..1d888f00dfa7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java @@ -16,6 +16,7 @@ package com.google.cloud.bigquery; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; import org.junit.Test; @@ -36,6 +37,12 @@ public class TimelineSampleTest { .setSlotMillis(SLOT_MILLIS) .build(); + @Test + public void testToBuilder() { + TimelineSample sample = TIMELINE_SAMPLE.toBuilder().setPendingUnits(15L).build(); + assertEquals(15L, sample.getPendingUnits().longValue()); + } + @Test public void testTimelineSampleBuilder() { assertEquals(ELAPSED_MS, TIMELINE_SAMPLE.getElapsedMs()); @@ -48,5 +55,8 @@ public void testTimelineSampleBuilder() { @Test public void TestEquals() { assertEquals(TIMELINE_SAMPLE, TIMELINE_SAMPLE); + assertNotEquals(TIMELINE_SAMPLE, SLOT_MILLIS); + assertEquals(TIMELINE_SAMPLE.toString(), TIMELINE_SAMPLE.toString()); + assertEquals(TIMELINE_SAMPLE.hashCode(), TIMELINE_SAMPLE.hashCode()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java index fa4f82cd0e5f..d60c7be2bc66 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java @@ -18,8 +18,11 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import com.google.common.collect.ImmutableList; import java.util.List; @@ -31,7 +34,7 @@ public class ViewDefinitionTest { private static final List USER_DEFINED_FUNCTIONS = ImmutableList.of(UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")); private static final ViewDefinition VIEW_DEFINITION = - ViewDefinition.newBuilder(VIEW_QUERY, USER_DEFINED_FUNCTIONS).build(); + ViewDefinition.newBuilder(VIEW_QUERY, USER_DEFINED_FUNCTIONS).setSchema(Schema.of()).build(); @Test public void testToBuilder() { @@ -43,6 +46,17 @@ public void testToBuilder() { viewDefinition = viewDefinition.toBuilder().setUseLegacySql(true).build(); assertTrue(viewDefinition.useLegacySql()); + assertNotEquals(VIEW_DEFINITION, VIEW_QUERY); + } + + @Test + public void testTypeNullPointerException() { + try { + VIEW_DEFINITION.toBuilder().setType(null).build(); + fail(); + } catch (NullPointerException ex) { + assertNotNull(ex.getMessage()); + } } @Test From 64847d1e5137e811e7f462fc058908fa9fcc55fb Mon Sep 17 00:00:00 2001 From: Irvi Aini <7439590+irvifa@users.noreply.github.com> Date: Fri, 29 May 2020 01:19:15 +0700 Subject: [PATCH 0528/3441] docs(samples): Fix flaky test (#397) We found that UpdateTableExpirationIT is flaky since during table creation the table is not created. --- .../example/bigquery/UpdateTableExpirationIT.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java index 428317029106..73ca93c06df5 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java @@ -19,8 +19,12 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.TestCase.assertNotNull; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.UUID; import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Before; @@ -58,8 +62,13 @@ public void tearDown() { @Test public void updateTableExpiration() { - String tableName = "update_expiration_table"; - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, null); + String suffix = UUID.randomUUID().toString().replace('-', '_'); + String tableName = "update_expiration_table_" + suffix; + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); UpdateTableExpiration.updateTableExpiration(BIGQUERY_DATASET_NAME, tableName, newExpiration); assertThat(bout.toString()).contains("Table expiration updated successfully"); From bafd8ae780121ee968bca7b3eb68bb0f0a438124 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 29 May 2020 11:59:25 -0400 Subject: [PATCH 0529/3441] =?UTF-8?q?deps:=20remove=20google-cloud-core=20?= =?UTF-8?q?classiier=3Dtest=20since=20it=20is=20managed=20by=20=E2=80=A6?= =?UTF-8?q?=20(#396)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: remove google-cloud-core classiier=test since it is managed by shared-deps * bump shared-deps to 0.7.0 --- google-cloud-bigquery/pom.xml | 1 - pom.xml | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 86ef49ea054e..0a6f2327e39a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -60,7 +60,6 @@ com.google.cloud google-cloud-core - ${google.core.version} tests test diff --git a/pom.xml b/pom.xml index 4e5fbaa66725..532dd4825090 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,6 @@ UTF-8 github google-cloud-bigquery-parent - 1.93.4 1.3.2 v2-rev20200429-1.30.9 @@ -74,7 +73,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.6.0 + 0.7.0 pom import From c836961259808c534614270b8273cec02ca6d173 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 29 May 2020 20:38:19 +0200 Subject: [PATCH 0530/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v5.5.0 (#400) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `5.4.0` -> `5.5.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 8c070dfb0f89..6b6788b2e6c3 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 5.4.0 + 5.5.0 pom import From 69b9d8417d5b910286aaa855f4a83fc151a81cec Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 29 May 2020 15:53:32 -0400 Subject: [PATCH 0531/3441] docs(samples): update revierwers for samples module changes (#401) * docs(samples): update revierwers for samples module changes * Update .github/CODEOWNERS Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com> Co-authored-by: Kurtis Van Gent <31518063+kurtisvg@users.noreply.github.com> --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index f953c5f0f483..aef889d3d2e2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,4 +5,4 @@ # https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax # The java-samples-reviewers team is the default owner for samples changes -samples/ @stephaniewang526 @GoogleCloudPlatform/java-samples-reviewers \ No newline at end of file +samples/**/*.java @stephaniewang526 @googleapis/java-samples-reviewers From db4158186b99d0bed68fd70bef5918b1820e5dd1 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 29 May 2020 16:31:36 -0400 Subject: [PATCH 0532/3441] deps: restrict -annotation deps (#402) --- google-cloud-bigquery/pom.xml | 18 +----------------- pom.xml | 2 -- 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0a6f2327e39a..2e3df3aa6748 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -36,6 +36,7 @@ com.google.auto.value auto-value-annotations + provided com.google.http-client @@ -134,21 +135,4 @@ - - - - java9 - - [9,) - - - - javax.annotation - javax.annotation-api - - ${javax.annotations.version} - - - - diff --git a/pom.xml b/pom.xml index 532dd4825090..0edf79bd27ee 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,6 @@ UTF-8 github google-cloud-bigquery-parent - 1.3.2 v2-rev20200429-1.30.9 @@ -217,5 +216,4 @@ - From 6583139d9b207fe21f674b376130e8eb4c1e2e51 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sun, 31 May 2020 22:41:17 -0700 Subject: [PATCH 0533/3441] changes without context (#403) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bf6d0059a0a4..cfba6fbc986d 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 5.4.0 + 5.5.0 pom import diff --git a/synth.metadata b/synth.metadata index e6a7e94a20a9..bdc51594cf6e 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "0e91af23f63eb2b9af578bd82952d3480e751f9b" + "sha": "db4158186b99d0bed68fd70bef5918b1820e5dd1" } }, { From f98cf756494d45e62923f60c3dfc434a92181405 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 1 Jun 2020 20:58:07 +0000 Subject: [PATCH 0534/3441] chore: release 1.116.1 (#389) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit :robot: I have created a release \*beep\* \*boop\* --- ### [1.116.1](https://www.github.com/googleapis/java-bigquery/compare/v1.116.0...v1.116.1) (2020-06-01) ### Dependencies * remove google-cloud-core classiier=test since it is managed by … ([#396](https://www.github.com/googleapis/java-bigquery/issues/396)) ([bafd8ae](https://www.github.com/googleapis/java-bigquery/commit/bafd8ae780121ee968bca7b3eb68bb0f0a438124)) * restrict -annotation deps ([#402](https://www.github.com/googleapis/java-bigquery/issues/402)) ([db41581](https://www.github.com/googleapis/java-bigquery/commit/db4158186b99d0bed68fd70bef5918b1820e5dd1)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.6.0 ([#392](https://www.github.com/googleapis/java-bigquery/issues/392)) ([3f13ccb](https://www.github.com/googleapis/java-bigquery/commit/3f13ccbbf1ca8f179c48a69c8e456bdf45c43af5)) * update shared-deps and add back certain test deps ([#390](https://www.github.com/googleapis/java-bigquery/issues/390)) ([7e21be2](https://www.github.com/googleapis/java-bigquery/commit/7e21be2506cdaf065cd32e3aed403890929b93e7)) ### Documentation * **samples:** Convert tightly coupled local variable inside of method into method arguments ([#386](https://www.github.com/googleapis/java-bigquery/issues/386)) ([7c02cd3](https://www.github.com/googleapis/java-bigquery/commit/7c02cd3ca7238d24bb2914ae2262a3b2e2d4bda7)), closes [#387](https://www.github.com/googleapis/java-bigquery/issues/387) * **samples:** Convert tightly coupled local variable involved options inside of method into method arguments ([#393](https://www.github.com/googleapis/java-bigquery/issues/393)) ([a11f3cb](https://www.github.com/googleapis/java-bigquery/commit/a11f3cb4733215a9c4a65936b05f9cc2ed75656f)), closes [#394](https://www.github.com/googleapis/java-bigquery/issues/394) * **samples:** Fix flaky test ([#397](https://www.github.com/googleapis/java-bigquery/issues/397)) ([64847d1](https://www.github.com/googleapis/java-bigquery/commit/64847d1e5137e811e7f462fc058908fa9fcc55fb)) * **samples:** update revierwers for samples module changes ([#401](https://www.github.com/googleapis/java-bigquery/issues/401)) ([69b9d84](https://www.github.com/googleapis/java-bigquery/commit/69b9d8417d5b910286aaa855f4a83fc151a81cec)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 18 ++++++++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 26 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28e65ffe11ff..510606eea2f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +### [1.116.1](https://www.github.com/googleapis/java-bigquery/compare/v1.116.0...v1.116.1) (2020-06-01) + + +### Dependencies + +* remove google-cloud-core classiier=test since it is managed by … ([#396](https://www.github.com/googleapis/java-bigquery/issues/396)) ([bafd8ae](https://www.github.com/googleapis/java-bigquery/commit/bafd8ae780121ee968bca7b3eb68bb0f0a438124)) +* restrict -annotation deps ([#402](https://www.github.com/googleapis/java-bigquery/issues/402)) ([db41581](https://www.github.com/googleapis/java-bigquery/commit/db4158186b99d0bed68fd70bef5918b1820e5dd1)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.6.0 ([#392](https://www.github.com/googleapis/java-bigquery/issues/392)) ([3f13ccb](https://www.github.com/googleapis/java-bigquery/commit/3f13ccbbf1ca8f179c48a69c8e456bdf45c43af5)) +* update shared-deps and add back certain test deps ([#390](https://www.github.com/googleapis/java-bigquery/issues/390)) ([7e21be2](https://www.github.com/googleapis/java-bigquery/commit/7e21be2506cdaf065cd32e3aed403890929b93e7)) + + +### Documentation + +* **samples:** Convert tightly coupled local variable inside of method into method arguments ([#386](https://www.github.com/googleapis/java-bigquery/issues/386)) ([7c02cd3](https://www.github.com/googleapis/java-bigquery/commit/7c02cd3ca7238d24bb2914ae2262a3b2e2d4bda7)), closes [#387](https://www.github.com/googleapis/java-bigquery/issues/387) +* **samples:** Convert tightly coupled local variable involved options inside of method into method arguments ([#393](https://www.github.com/googleapis/java-bigquery/issues/393)) ([a11f3cb](https://www.github.com/googleapis/java-bigquery/commit/a11f3cb4733215a9c4a65936b05f9cc2ed75656f)), closes [#394](https://www.github.com/googleapis/java-bigquery/issues/394) +* **samples:** Fix flaky test ([#397](https://www.github.com/googleapis/java-bigquery/issues/397)) ([64847d1](https://www.github.com/googleapis/java-bigquery/commit/64847d1e5137e811e7f462fc058908fa9fcc55fb)) +* **samples:** update revierwers for samples module changes ([#401](https://www.github.com/googleapis/java-bigquery/issues/401)) ([69b9d84](https://www.github.com/googleapis/java-bigquery/commit/69b9d8417d5b910286aaa855f4a83fc151a81cec)) + ## [1.116.0](https://www.github.com/googleapis/java-bigquery/compare/v1.115.1...v1.116.0) (2020-05-21) diff --git a/README.md b/README.md index cfba6fbc986d..a74ce77b3e3d 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.0' +compile 'com.google.cloud:google-cloud-bigquery:1.116.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.1" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2e3df3aa6748..b1f467a267bf 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.1-SNAPSHOT + 1.116.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.1-SNAPSHOT + 1.116.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0edf79bd27ee..8fdc5aff13ef 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.1-SNAPSHOT + 1.116.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.1-SNAPSHOT + 1.116.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 974660723d5e..f84fbf44ba39 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.1-SNAPSHOT + 1.116.1 diff --git a/versions.txt b/versions.txt index 8d27316d41ed..110d6881dd78 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.0:1.116.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.116.1:1.116.1 \ No newline at end of file From d00a0e814a9ec3d64fee3b30fbf8c33623858d15 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 1 Jun 2020 15:58:13 -0700 Subject: [PATCH 0535/3441] chore: regenerate README versions (#404) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/e097839b-c695-4759-b48c-5a85f5e3c069/targets --- README.md | 4 ++-- synth.metadata | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a74ce77b3e3d..cfba6fbc986d 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.1' +compile 'com.google.cloud:google-cloud-bigquery:1.116.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.0" ``` [//]: # ({x-version-update-end}) diff --git a/synth.metadata b/synth.metadata index bdc51594cf6e..a5d6d413044d 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "db4158186b99d0bed68fd70bef5918b1820e5dd1" + "sha": "f98cf756494d45e62923f60c3dfc434a92181405" } }, { From a481845736827078c899e4c2015e0058c73ec505 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 3 Jun 2020 11:46:06 -0700 Subject: [PATCH 0536/3441] chore: regenerate README versions (#408) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/edde2ae8-988f-4790-916d-873296fc352f/targets --- README.md | 4 ++-- synth.metadata | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index cfba6fbc986d..a74ce77b3e3d 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.0' +compile 'com.google.cloud:google-cloud-bigquery:1.116.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.1" ``` [//]: # ({x-version-update-end}) diff --git a/synth.metadata b/synth.metadata index a5d6d413044d..5e252e005f28 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "f98cf756494d45e62923f60c3dfc434a92181405" + "sha": "d00a0e814a9ec3d64fee3b30fbf8c33623858d15" } }, { From d30c823c5a604b195f17d8ac33894107cdee967e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 4 Jun 2020 15:31:22 +0200 Subject: [PATCH 0537/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200523-1.30.9 (#409) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8fdc5aff13ef..04651dd7d0c1 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20200429-1.30.9 + v2-rev20200523-1.30.9 From a73f56b3e8669b8e75e40ec96bdcdb72f03e63fc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 4 Jun 2020 17:19:22 +0200 Subject: [PATCH 0538/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.116.1 (#406) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0e2c300b8de5..5233a01d9461 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.116.0 + 1.116.1 From dca297a297a9d5e7b50d7d6d27130d8fbd0ae074 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 4 Jun 2020 17:19:50 +0200 Subject: [PATCH 0539/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.1.0 (#407) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 04651dd7d0c1..bb69bb5213a5 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.0.0 + 3.1.0 From 12c49a37da84308e52b5f3a631213a6cee443c05 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 4 Jun 2020 08:20:33 -0700 Subject: [PATCH 0540/3441] chore(java_templates): add default CODEOWNERS files for samples reviews (#410) This should automatically request reviews from the googleapis/java-samples-reviewers team for changes to samples Java code. If you provide a `codeowner_team` in the `.repo-metadata.json` configuration file, it also adds an entry for any Java code. Note that later entries in the file take precedence over earlier ones so samples Java code will only require reviews by the samples team. Source-Author: Jeff Ching Source-Date: Wed Jun 3 15:32:11 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 8b65daa222d193b689279162781baf0aa1f0ffd2 Source-Link: https://github.com/googleapis/synthtool/commit/8b65daa222d193b689279162781baf0aa1f0ffd2 --- .github/CODEOWNERS | 2 +- synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index aef889d3d2e2..6137bef2a259 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,4 +5,4 @@ # https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax # The java-samples-reviewers team is the default owner for samples changes -samples/**/*.java @stephaniewang526 @googleapis/java-samples-reviewers +samples/**/*.java @googleapis/java-samples-reviewers diff --git a/synth.metadata b/synth.metadata index 5e252e005f28..263e3e97baa3 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "d00a0e814a9ec3d64fee3b30fbf8c33623858d15" + "sha": "a481845736827078c899e4c2015e0058c73ec505" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "388f7aafee3d7a067c23db6c13b7e83fb361c64a" + "sha": "8b65daa222d193b689279162781baf0aa1f0ffd2" } } ] From b3b280c67c2e5a9c11a2cf4a4ad11fc2f0fca6c5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2020 15:26:07 +0000 Subject: [PATCH 0541/3441] chore: release 1.116.2-SNAPSHOT (#405) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b1f467a267bf..2966c87dd28f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.1 + 1.116.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.1 + 1.116.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bb69bb5213a5..3d6c343a8472 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.1 + 1.116.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.1 + 1.116.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f84fbf44ba39..1278fd7059fb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.1 + 1.116.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 110d6881dd78..8591d1fa19df 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.1:1.116.1 \ No newline at end of file +google-cloud-bigquery:1.116.1:1.116.2-SNAPSHOT \ No newline at end of file From c1f21e6c16df40bb3c71610f9d5b4fb4855b28fb Mon Sep 17 00:00:00 2001 From: Emily Darrow <47046797+ejdarrow@users.noreply.github.com> Date: Thu, 4 Jun 2020 14:27:05 -0400 Subject: [PATCH 0542/3441] docs(samples): rename extract table json to extract table csv (#415) --- ...ExtractTableToJson.java => ExtractTableToCsv.java} | 11 ++++++----- ...actTableToJsonIT.java => ExtractTableToCsvIT.java} | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) rename samples/snippets/src/main/java/com/example/bigquery/{ExtractTableToJson.java => ExtractTableToCsv.java} (92%) rename samples/snippets/src/test/java/com/example/bigquery/{ExtractTableToJsonIT.java => ExtractTableToCsvIT.java} (94%) diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java similarity index 92% rename from samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java rename to samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java index 0f05cb20d967..5aada2764a9d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java @@ -26,9 +26,9 @@ import com.google.cloud.bigquery.TableId; import org.threeten.bp.Duration; -public class ExtractTableToJson { +public class ExtractTableToCsv { - public static void runExtractTableToJson() { + public static void runExtractTableToCsv() { // TODO(developer): Replace these variables before running the sample. String projectId = "bigquery-public-data"; String datasetName = "samples"; @@ -41,11 +41,11 @@ public static void runExtractTableToJson() { // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html String dataFormat = "CSV"; - extractTableToJson(projectId, datasetName, tableName, destinationUri, dataFormat); + extractTableToCsv(projectId, datasetName, tableName, destinationUri, dataFormat); } // Exports datasetName:tableName to destinationUri as raw CSV - public static void extractTableToJson( + public static void extractTableToCsv( String projectId, String datasetName, String tableName, String destinationUri, String dataFormat) { try { @@ -71,7 +71,8 @@ public static void extractTableToJson( "BigQuery was unable to extract due to an error: \n" + job.getStatus().getError()); return; } - System.out.println("Table export successful. Check in GCS bucket for the " + dataFormat + " file."); + System.out.println("Table export successful. Check in GCS bucket for the " + + dataFormat + " file."); } catch (BigQueryException | InterruptedException e) { System.out.println("Table extraction job was interrupted. \n" + e.toString()); } diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java similarity index 94% rename from samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java rename to samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java index fd28bc1cbbbc..d0d763387311 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java @@ -26,7 +26,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class ExtractTableToJsonIT { +public class ExtractTableToCsvIT { private ByteArrayOutputStream bout; private PrintStream out; @@ -64,7 +64,7 @@ public void testExtractTableToJson() { String dataFormat = "CSV"; // Extract table content to GCS in CSV format - ExtractTableToJson.extractTableToJson(projectId, datasetName, tableName, destinationUri, + ExtractTableToCsv.extractTableToCsv(projectId, datasetName, tableName, destinationUri, dataFormat); assertThat(bout.toString()) .contains("Table export successful. Check in GCS bucket for the " + dataFormat + " file."); From de0d97f2f940c9cf507d19c5595e1a0e819ef19c Mon Sep 17 00:00:00 2001 From: Emily Darrow <47046797+ejdarrow@users.noreply.github.com> Date: Thu, 4 Jun 2020 14:54:05 -0400 Subject: [PATCH 0543/3441] docs(samples): added copy table and accompanying test (#414) --- .../java/com/example/bigquery/CopyTable.java | 78 +++++++++++++++++ .../com/example/bigquery/CopyTableIT.java | 87 +++++++++++++++++++ 2 files changed, 165 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CopyTable.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java b/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java new file mode 100644 index 000000000000..6c780c8d7935 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java @@ -0,0 +1,78 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_copy_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.CopyJobConfiguration; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.TableId; + +public class CopyTable { + + public static void runCopyTable() { + // TODO(developer): Replace these variables before running the sample. + String destinationDatasetName = "MY_DESTINATION_DATASET_NAME"; + String destinationTableId = "MY_DESTINATION_TABLE_NAME"; + String sourceDatasetName = "MY_SOURCE_DATASET_NAME"; + String sourceTableId = "MY_SOURCE_TABLE_NAME"; + + copyTable(sourceDatasetName, sourceTableId, destinationDatasetName, destinationTableId); + } + + public static void copyTable(String sourceDatasetName, String sourceTableId, + String destinationDatasetName, String destinationTableId) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId sourceTable = TableId.of(sourceDatasetName, sourceTableId); + TableId destinationTable = TableId.of(destinationDatasetName, destinationTableId); + + // For more information on CopyJobConfiguration see: + // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigquery/JobConfiguration.html + CopyJobConfiguration configuration = + CopyJobConfiguration.newBuilder( + destinationTable, + sourceTable + ).build(); + + // For more information on Job see: + // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html + Job job = bigquery.create(JobInfo.of(configuration)); + + // Blocks until this job completes its execution, either failing or succeeding. + Job completedJob = job.waitFor(); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to copy table due to an error: \n" + job.getStatus().getError()); + return; + } + System.out.println("Table copied successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Table copying job was interrupted. \n" + e.toString()); + } + } +} +// [END bigquery_copy_table] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java new file mode 100644 index 000000000000..1ca1f42c5d2e --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java @@ -0,0 +1,87 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CopyTableIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testCopyTable() { + // Create a new destination and source table for each test since existing table cannot be overwritten + String generatedDestTableName = "gcloud_test_table_temp_" + + UUID.randomUUID().toString().replace('-', '_'); + String generatedSourceTableName = "gcloud_test_table_temp_" + + UUID.randomUUID().toString().replace('-', '_'); + + //Adding an arbitrary table schema so we aren't copying nothing. + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + + CreateTable.createTable(BIGQUERY_DATASET_NAME, generatedDestTableName, schema); + CreateTable.createTable(BIGQUERY_DATASET_NAME, generatedSourceTableName, schema); + + CopyTable.copyTable(BIGQUERY_DATASET_NAME, generatedSourceTableName, + BIGQUERY_DATASET_NAME, generatedDestTableName); + assertThat(bout.toString()).contains("Table copied successfully."); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, generatedDestTableName); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, generatedSourceTableName); + } +} From 16a956db0aa545df84f7885ffb4425460cf55a16 Mon Sep 17 00:00:00 2001 From: Emily Darrow <47046797+ejdarrow@users.noreply.github.com> Date: Thu, 4 Jun 2020 15:32:29 -0400 Subject: [PATCH 0544/3441] docs(samples): added extract to json and accompanying test (#416) --- .../example/bigquery/ExtractTableToJson.java | 85 +++++++++++++++++++ .../bigquery/ExtractTableToJsonIT.java | 74 ++++++++++++++++ 2 files changed, 159 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java new file mode 100644 index 000000000000..6d5586d7abdc --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java @@ -0,0 +1,85 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_extract_table_json] +import com.google.cloud.RetryOption; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; +import org.threeten.bp.Duration; + +public class ExtractTableToJson { + + public static void runExtractTableToJson() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "bigquery-public-data"; + String datasetName = "samples"; + String tableName = "shakespeare"; + String bucketName = "my-bucket"; + String destinationUri = "gs://" + bucketName + "/path/to/file"; + // For more information on export formats available see: + // https://cloud.google.com/bigquery/docs/exporting-data#export_formats_and_compression_types + // For more information on Job see: + // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html + + // Note that FormatOptions.json().toString() is not "JSON" but "NEWLINE_DELIMITED_JSON" + // Using FormatOptions Enum for this will prevent problems with unexpected format names. + String dataFormat = FormatOptions.json().toString(); + + extractTableToJson(projectId, datasetName, tableName, destinationUri, dataFormat); + } + + // Exports datasetName:tableName to destinationUri as a JSON file + public static void extractTableToJson( + String projectId, String datasetName, String tableName, String destinationUri, + String dataFormat) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(projectId, datasetName, tableName); + Table table = bigquery.getTable(tableId); + + Job job = table.extract(dataFormat, destinationUri); + + // Blocks until this job completes its execution, either failing or succeeding. + Job completedJob = + job.waitFor( + RetryOption.initialRetryDelay(Duration.ofSeconds(1)), + RetryOption.totalTimeout(Duration.ofMinutes(3))); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to extract due to an error: \n" + job.getStatus().getError()); + return; + } + System.out.println("Table export successful. Check in GCS bucket for the " + + dataFormat + " file."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Table extraction job was interrupted. \n" + e.toString()); + } + } +} +// [END bigquery_extract_table_json] diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java new file mode 100644 index 000000000000..9207f5965520 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java @@ -0,0 +1,74 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.FormatOptions; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ExtractTableToJsonIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String GCS_BUCKET = System.getenv("GCS_BUCKET"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GCS_BUCKET"); + } + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testExtractTableToJson() { + String projectId = "bigquery-public-data"; + String datasetName = "samples"; + String tableName = "shakespeare"; + String destinationUri = "gs://" + GCS_BUCKET + "/extractTest.json"; + // FormatOptions.json() is not "JSON" but "NEWLINE_DELIMITED_JSON" + String dataFormat = FormatOptions.json().toString(); + + // Extract table content to GCS in JSON format + ExtractTableToJson.extractTableToJson(projectId, datasetName, tableName, destinationUri, + dataFormat); + assertThat(bout.toString()) + .contains("Table export successful. Check in GCS bucket for the " + dataFormat + " file."); + } +} From 59426df912f743b7927deb562366b625aba6f087 Mon Sep 17 00:00:00 2001 From: Emily Darrow <47046797+ejdarrow@users.noreply.github.com> Date: Thu, 4 Jun 2020 17:36:32 -0400 Subject: [PATCH 0545/3441] docs(samples): adding simple query example for completeness (#417) --- .../com/example/bigquery/SimpleQuery.java | 56 +++++++++++++++++++ .../com/example/bigquery/SimpleQueryIT.java | 51 +++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java b/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java new file mode 100644 index 000000000000..63a1a6475419 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java @@ -0,0 +1,56 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; + +public class SimpleQuery { + + public static void runSimpleQuery() { + // TODO(developer): Replace this query before running the sample. + String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + simpleQuery(query); + } + + public static void simpleQuery(String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Create the query job. + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query).build(); + + // Execute the query. + TableResult result = bigquery.query(queryConfig); + + // Print the results. + result.iterateAll().forEach(rows -> rows.forEach(row -> System.out.println(row.getValue()))); + + System.out.println("Query ran successfully"); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query did not run \n" + e.toString()); + } + } +} +// [END bigquery_query] diff --git a/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java new file mode 100644 index 000000000000..76428faab8ab --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java @@ -0,0 +1,51 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class SimpleQueryIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testSimpleQuery() { + String query = + "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + + SimpleQuery.simpleQuery(query); + assertThat(bout.toString()).contains("Query ran successfully"); + } +} From 0f50961aaf1092f3ecc4e02fa9cebb50f6d45e90 Mon Sep 17 00:00:00 2001 From: Emily Darrow <47046797+ejdarrow@users.noreply.github.com> Date: Thu, 4 Jun 2020 17:44:18 -0400 Subject: [PATCH 0546/3441] docs(samples): adding destination query sample and test (#418) @stephaniewang526 --- .../example/bigquery/SaveQueryToTable.java | 63 ++++++++++++++++ .../example/bigquery/SaveQueryToTableIT.java | 73 +++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java b/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java new file mode 100644 index 000000000000..b160d49c0aad --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java @@ -0,0 +1,63 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_destination_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableId; + +public class SaveQueryToTable { + + public static void runSaveQueryToTable() { + // TODO(developer): Replace these variables before running the sample. + String query = + "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + String destinationTable = "MY_TABLE"; + String destinationDataset = "MY_DATASET"; + + saveQueryToTable(destinationDataset, destinationTable, query); + } + + public static void saveQueryToTable(String destinationDataset, + String destinationTableId, String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Identify the destination table + TableId destinationTable = TableId.of(destinationDataset, destinationTableId); + + // Build the query job + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query).setDestinationTable(destinationTable).build(); + + // Execute the query. + bigquery.query(queryConfig); + + // The results are now saved in the destination table. + + System.out.println("Saved query ran successfully"); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Saved query did not run \n" + e.toString()); + } + } +} +// [END bigquery_query_destination_table] diff --git a/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java new file mode 100644 index 000000000000..f0b1d244eadd --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java @@ -0,0 +1,73 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class SaveQueryToTableIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testSaveQueryToTable() { + String tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); + String query = + "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + + SaveQueryToTable.saveQueryToTable(BIGQUERY_DATASET_NAME, tableName, query); + + assertThat(bout.toString()).contains("Saved query ran successfully"); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + } +} From b45897aa5645cbd0e988f34e242567929b3ee4c0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 5 Jun 2020 07:44:15 -0700 Subject: [PATCH 0547/3441] chore: turn on renovate-bot master issue for java repos (#420) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/94ecf927-e915-4508-98b1-89471d78e772/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/cac9eef310652bf138dd76b716e4986e757d62ac --- README.md | 6 +++++- renovate.json | 3 ++- synth.metadata | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a74ce77b3e3d..b0166552b521 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.116.0 + 1.116.1 ``` @@ -205,12 +205,14 @@ has instructions for running the samples. | Auth Drive Scope | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | | Auth Snippets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | | Copy Multiple Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | +| Copy Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | | Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | | Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | | Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | | Create Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | | Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | | Delete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | +| Extract Table To Csv | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | | Extract Table To Json | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | | Get Dataset Info | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | | Get Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | @@ -232,7 +234,9 @@ has instructions for running the samples. | Relax Column Mode | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | | Relax Table Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | | Run Legacy Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | +| Save Query To Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | | Simple App | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | +| Simple Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | | Table Insert Rows | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | | Update Dataset Access | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | | Update Dataset Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | diff --git a/renovate.json b/renovate.json index a65d0adb2ad2..034f3c099a53 100644 --- a/renovate.json +++ b/renovate.json @@ -76,5 +76,6 @@ "groupName": "jackson dependencies" } ], - "semanticCommits": true + "semanticCommits": true, + "masterIssue": true } \ No newline at end of file diff --git a/synth.metadata b/synth.metadata index 263e3e97baa3..36e9a8ff8d3f 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "a481845736827078c899e4c2015e0058c73ec505" + "sha": "0f50961aaf1092f3ecc4e02fa9cebb50f6d45e90" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "8b65daa222d193b689279162781baf0aa1f0ffd2" + "sha": "cac9eef310652bf138dd76b716e4986e757d62ac" } } ] From 9f37f6078ec045cc0022791ffa4c707a76b17c6f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 5 Jun 2020 11:03:42 -0700 Subject: [PATCH 0548/3441] bump self version (#419) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. From 9ca20641dcbbdcd600e6d4b47a9dfae6c92830d7 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 5 Jun 2020 16:18:18 -0700 Subject: [PATCH 0549/3441] build(java): skip lint on samples directory (#423) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/d76bfbb4-fde1-4909-a913-608cdb170a49/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/987270824bd26f6a8c716d5e2022057b8ae7b26e --- .kokoro/build.sh | 4 +--- synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index b1abad023056..c4b20b9f96db 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -51,9 +51,7 @@ test) RETURN_CODE=$? ;; lint) - mvn \ - -Penable-samples \ - com.coveo:fmt-maven-plugin:check + mvn com.coveo:fmt-maven-plugin:check RETURN_CODE=$? ;; javadoc) diff --git a/synth.metadata b/synth.metadata index 36e9a8ff8d3f..716d148393c5 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "0f50961aaf1092f3ecc4e02fa9cebb50f6d45e90" + "sha": "9f37f6078ec045cc0022791ffa4c707a76b17c6f" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "cac9eef310652bf138dd76b716e4986e757d62ac" + "sha": "987270824bd26f6a8c716d5e2022057b8ae7b26e" } } ] From 3902ba1cf0d8a88d3e6f30b6606067503487c77d Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 8 Jun 2020 14:28:07 -0400 Subject: [PATCH 0550/3441] docs(samples): add update table using dml query sample (#424) Fixes #413 --- .../src/test/resources/userSessionsData.json | 10 ++ .../src/test/resources/userSessionsData.json | 10 ++ .../com/example/bigquery/UpdateTableDML.java | 113 ++++++++++++++++++ .../example/bigquery/UpdateTableDMLIT.java | 92 ++++++++++++++ .../src/test/resources/userSessionsData.json | 10 ++ 5 files changed, 235 insertions(+) create mode 100644 samples/install-without-bom/src/test/resources/userSessionsData.json create mode 100644 samples/snapshot/src/test/resources/userSessionsData.json create mode 100644 samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/UpdateTableDMLIT.java create mode 100644 samples/snippets/src/test/resources/userSessionsData.json diff --git a/samples/install-without-bom/src/test/resources/userSessionsData.json b/samples/install-without-bom/src/test/resources/userSessionsData.json new file mode 100644 index 000000000000..042ac3737e4f --- /dev/null +++ b/samples/install-without-bom/src/test/resources/userSessionsData.json @@ -0,0 +1,10 @@ +{"id":"2ad525d6-c832-4c3d-b7fe-59d104885519","user_id":"38","login_time":"1.47766087E9","logout_time":"1.477661109E9","ip_address":"192.0.2.12"} +{"id":"53d65e20-6ea9-4650-98d9-a2111fbd1122","user_id":"88","login_time":"1.47707544E9","logout_time":"1.477075519E9","ip_address":"192.0.2.88"} +{"id":"5e6c3021-d5e7-4ccd-84b2-adfa9176d13d","user_id":"39","login_time":"1.474022869E9","logout_time":"1.474022961E9","ip_address":"203.0.113.52"} +{"id":"6196eefa-1498-4567-8ef0-498845b888d9","user_id":"52","login_time":"1.478604612E9","logout_time":"1.478604691E9","ip_address":"203.0.113.169"} +{"id":"70656dc5-7e0f-49cf-9e00-f06ed93c1f5b","user_id":"46","login_time":"1.474089924E9","logout_time":"1.474090227E9","ip_address":"192.0.2.10"} +{"id":"aafa5eef-ad49-49a7-9a0f-fbc7fd639bd3","user_id":"40","login_time":"1.478031161E9","logout_time":"1.478031388E9","ip_address":"203.0.113.18"} +{"id":"d2792fc2-24dd-4260-9456-3fbe6cdfdd90","user_id":"5","login_time":"1.481259081E9","logout_time":"1.481259247E9","ip_address":"192.0.2.140"} +{"id":"d835dc49-32f9-4790-b4eb-dddee62e0dcc","user_id":"62","login_time":"1.478892977E9","logout_time":"1.478893219E9","ip_address":"203.0.113.83"} +{"id":"f4a0d3c7-351f-471c-8e11-e093e7a6ce75","user_id":"89","login_time":"1.459031555E9","logout_time":"1.459031831E9","ip_address":"203.0.113.233"} +{"id":"f6e9f526-5b22-4679-9c3e-56a636e815bb","user_id":"97","login_time":"1.482426034E9","logout_time":"1.482426415E9","ip_address":"203.0.113.167"} \ No newline at end of file diff --git a/samples/snapshot/src/test/resources/userSessionsData.json b/samples/snapshot/src/test/resources/userSessionsData.json new file mode 100644 index 000000000000..042ac3737e4f --- /dev/null +++ b/samples/snapshot/src/test/resources/userSessionsData.json @@ -0,0 +1,10 @@ +{"id":"2ad525d6-c832-4c3d-b7fe-59d104885519","user_id":"38","login_time":"1.47766087E9","logout_time":"1.477661109E9","ip_address":"192.0.2.12"} +{"id":"53d65e20-6ea9-4650-98d9-a2111fbd1122","user_id":"88","login_time":"1.47707544E9","logout_time":"1.477075519E9","ip_address":"192.0.2.88"} +{"id":"5e6c3021-d5e7-4ccd-84b2-adfa9176d13d","user_id":"39","login_time":"1.474022869E9","logout_time":"1.474022961E9","ip_address":"203.0.113.52"} +{"id":"6196eefa-1498-4567-8ef0-498845b888d9","user_id":"52","login_time":"1.478604612E9","logout_time":"1.478604691E9","ip_address":"203.0.113.169"} +{"id":"70656dc5-7e0f-49cf-9e00-f06ed93c1f5b","user_id":"46","login_time":"1.474089924E9","logout_time":"1.474090227E9","ip_address":"192.0.2.10"} +{"id":"aafa5eef-ad49-49a7-9a0f-fbc7fd639bd3","user_id":"40","login_time":"1.478031161E9","logout_time":"1.478031388E9","ip_address":"203.0.113.18"} +{"id":"d2792fc2-24dd-4260-9456-3fbe6cdfdd90","user_id":"5","login_time":"1.481259081E9","logout_time":"1.481259247E9","ip_address":"192.0.2.140"} +{"id":"d835dc49-32f9-4790-b4eb-dddee62e0dcc","user_id":"62","login_time":"1.478892977E9","logout_time":"1.478893219E9","ip_address":"203.0.113.83"} +{"id":"f4a0d3c7-351f-471c-8e11-e093e7a6ce75","user_id":"89","login_time":"1.459031555E9","logout_time":"1.459031831E9","ip_address":"203.0.113.233"} +{"id":"f6e9f526-5b22-4679-9c3e-56a636e815bb","user_id":"97","login_time":"1.482426034E9","logout_time":"1.482426415E9","ip_address":"203.0.113.167"} \ No newline at end of file diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java new file mode 100644 index 000000000000..48f93c7874df --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java @@ -0,0 +1,113 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_with_dml] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.TableDataWriteChannel; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableResult; +import com.google.cloud.bigquery.WriteChannelConfiguration; +import java.io.IOException; +import java.io.OutputStream; +import java.nio.channels.Channels; +import java.nio.file.FileSystems; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.UUID; + +// Sample to update data in BigQuery tables using DML query +public class UpdateTableDML { + + public static void runUpdateTableDML() throws IOException, InterruptedException { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + updateTableDML(datasetName, tableName); + } + + public static void updateTableDML(String datasetName, String tableName) + throws IOException, InterruptedException { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Load JSON file into UserSessions table + TableId tableId = TableId.of(datasetName, tableName); + + WriteChannelConfiguration writeChannelConfiguration = + WriteChannelConfiguration.newBuilder(tableId) + .setFormatOptions(FormatOptions.json()) + .build(); + + // Imports a local JSON file into a table. + Path jsonPath = FileSystems.getDefault().getPath("src/test/resources", "userSessionsData.json"); + + // The location and JobName must be specified; other fields can be auto-detected. + String jobName = "jobId_" + UUID.randomUUID().toString(); + JobId jobId = JobId.newBuilder().setLocation("us").setJob(jobName).build(); + + try (TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration); + OutputStream stream = Channels.newOutputStream(writer)) { + Files.copy(jsonPath, stream); + } + + // Get the Job created by the TableDataWriteChannel and wait for it to complete. + Job job = bigquery.getJob(jobId); + Job completedJob = job.waitFor(); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to load local file to the table due to an error: \n" + + job.getStatus().getError()); + return; + } + + System.out.println(job.getStatistics().toString() + " userSessionsData json uploaded successfully"); + + // Write a DML query to modify UserSessions table + // To create DML query job to mask the last octet in every row's ip_address column + String dmlQuery = String.format("UPDATE `%s.%s` \n" + + "SET ip_address = REGEXP_REPLACE(ip_address, r\"(\\.[0-9]+)$\", \".0\")\n" + + "WHERE TRUE", datasetName, tableName); + + QueryJobConfiguration dmlQueryConfig = + QueryJobConfiguration.newBuilder(dmlQuery).build(); + + // Execute the query. + TableResult result = bigquery.query(dmlQueryConfig); + + // Print the results. + result.iterateAll().forEach(rows -> rows.forEach(row -> System.out.println(row.getValue()))); + + System.out.println("Table updated successfully using DML"); + } catch (BigQueryException e) { + System.out.println("Table update failed \n" + e.toString()); + } + } +} +// [END bigquery_update_with_dml] \ No newline at end of file diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDMLIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDMLIT.java new file mode 100644 index 000000000000..841ebca9809c --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDMLIT.java @@ -0,0 +1,92 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.nio.file.FileSystems; +import java.nio.file.Path; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class UpdateTableDMLIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = "UserSessions_TEST_" + UUID.randomUUID().toString().replace('-', '_'); + Schema schema = + Schema.of( + Field.of("id", LegacySQLTypeName.STRING), + Field.of("user_id", LegacySQLTypeName.STRING), + Field.of("login_time", LegacySQLTypeName.STRING), + Field.of("logout_time", LegacySQLTypeName.STRING), + Field.of("ip_address", LegacySQLTypeName.STRING)); + + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testUpdateTableDML() throws IOException, InterruptedException { + UpdateTableDML.updateTableDML(BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Table updated successfully using DML"); + } +} \ No newline at end of file diff --git a/samples/snippets/src/test/resources/userSessionsData.json b/samples/snippets/src/test/resources/userSessionsData.json new file mode 100644 index 000000000000..042ac3737e4f --- /dev/null +++ b/samples/snippets/src/test/resources/userSessionsData.json @@ -0,0 +1,10 @@ +{"id":"2ad525d6-c832-4c3d-b7fe-59d104885519","user_id":"38","login_time":"1.47766087E9","logout_time":"1.477661109E9","ip_address":"192.0.2.12"} +{"id":"53d65e20-6ea9-4650-98d9-a2111fbd1122","user_id":"88","login_time":"1.47707544E9","logout_time":"1.477075519E9","ip_address":"192.0.2.88"} +{"id":"5e6c3021-d5e7-4ccd-84b2-adfa9176d13d","user_id":"39","login_time":"1.474022869E9","logout_time":"1.474022961E9","ip_address":"203.0.113.52"} +{"id":"6196eefa-1498-4567-8ef0-498845b888d9","user_id":"52","login_time":"1.478604612E9","logout_time":"1.478604691E9","ip_address":"203.0.113.169"} +{"id":"70656dc5-7e0f-49cf-9e00-f06ed93c1f5b","user_id":"46","login_time":"1.474089924E9","logout_time":"1.474090227E9","ip_address":"192.0.2.10"} +{"id":"aafa5eef-ad49-49a7-9a0f-fbc7fd639bd3","user_id":"40","login_time":"1.478031161E9","logout_time":"1.478031388E9","ip_address":"203.0.113.18"} +{"id":"d2792fc2-24dd-4260-9456-3fbe6cdfdd90","user_id":"5","login_time":"1.481259081E9","logout_time":"1.481259247E9","ip_address":"192.0.2.140"} +{"id":"d835dc49-32f9-4790-b4eb-dddee62e0dcc","user_id":"62","login_time":"1.478892977E9","logout_time":"1.478893219E9","ip_address":"203.0.113.83"} +{"id":"f4a0d3c7-351f-471c-8e11-e093e7a6ce75","user_id":"89","login_time":"1.459031555E9","logout_time":"1.459031831E9","ip_address":"203.0.113.233"} +{"id":"f6e9f526-5b22-4679-9c3e-56a636e815bb","user_id":"97","login_time":"1.482426034E9","logout_time":"1.482426415E9","ip_address":"203.0.113.167"} \ No newline at end of file From dff4e5f86764b1c779c2ef131182483e2ffa1c1b Mon Sep 17 00:00:00 2001 From: Emily Darrow <47046797+ejdarrow@users.noreply.github.com> Date: Mon, 8 Jun 2020 14:32:07 -0400 Subject: [PATCH 0551/3441] docs(samples): adding browse table sample and test (#422) --- .../com/example/bigquery/BrowseTable.java | 64 +++++++++++++++ .../com/example/bigquery/BrowseTableIT.java | 81 +++++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java b/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java new file mode 100644 index 000000000000..7228dfb6e514 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java @@ -0,0 +1,64 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_browse_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.TableDataListOption; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableResult; + +// Sample to directly browse a table with optional paging +public class BrowseTable { + + public static void runBrowseTable() { + // TODO(developer): Replace these variables before running the sample. + String table = "MY_TABLE_NAME"; + String dataset = "MY_DATASET_NAME"; + browseTable(dataset, table); + } + + public static void browseTable(String dataset, String table) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Identify the table itself + TableId tableId = TableId.of(dataset, table); + + // Page over 100 records. If you don't need pagination, remove the pageSize parameter. + TableResult result = + bigquery.listTableData(tableId, TableDataListOption.pageSize(100)); + + // Print the records + result.iterateAll().forEach(row -> { + row.forEach(fieldValue -> + System.out.print(fieldValue.toString() + ", ") + ); + System.out.println(); + }); + + System.out.println("Query ran successfully"); + } catch (BigQueryException e) { + System.out.println("Query failed to run \n" + e.toString()); + } + } +} +// [END bigquery_browse_table] diff --git a/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java new file mode 100644 index 000000000000..b88a15e66fb3 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java @@ -0,0 +1,81 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class BrowseTableIT { + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testBrowseTable() { + String tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); + + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + + BrowseTable.browseTable(BIGQUERY_DATASET_NAME, tableName); + + assertThat(bout.toString()).contains("Query ran successfully"); + + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + + } +} From 342573ad1067c6b6ebb6d8dd66a8abc29e69bef6 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 8 Jun 2020 15:14:08 -0400 Subject: [PATCH 0552/3441] chore: run code formatter (#425) --- .../example/bigquery/AddColumnLoadAppend.java | 11 +++++---- .../com/example/bigquery/BrowseTable.java | 16 ++++++------- .../java/com/example/bigquery/CopyTable.java | 12 +++++----- .../bigquery/CreateClusteredTable.java | 17 ++++++-------- .../bigquery/CreatePartitionedTable.java | 8 +++---- .../example/bigquery/ExtractTableToCsv.java | 9 +++++--- .../example/bigquery/ExtractTableToJson.java | 9 +++++--- .../com/example/bigquery/LoadLocalFile.java | 8 +++---- .../bigquery/LoadParquetReplaceTable.java | 4 ++-- .../example/bigquery/LoadTableClustered.java | 23 +++++++++++-------- .../example/bigquery/SaveQueryToTable.java | 7 +++--- .../com/example/bigquery/SimpleQuery.java | 3 +-- .../com/example/bigquery/TableInsertRows.java | 4 ++-- .../com/example/bigquery/UpdateTableDML.java | 21 +++++++++-------- .../bigquery/UpdateTableDescription.java | 4 ++-- .../bigquery/UpdateTableExpiration.java | 4 ++-- .../bigquery/AddColumnLoadAppendIT.java | 3 ++- .../com/example/bigquery/BrowseTableIT.java | 1 - .../com/example/bigquery/CopyTableIT.java | 20 +++++++++------- .../bigquery/CreateClusteredTableIT.java | 12 +++++----- .../bigquery/CreatePartitionedTableIT.java | 8 +++---- .../example/bigquery/ExtractTableToCsvIT.java | 4 ++-- .../bigquery/ExtractTableToJsonIT.java | 4 ++-- .../bigquery/LoadTableClusteredIT.java | 12 +++++----- .../example/bigquery/SaveQueryToTableIT.java | 4 +--- .../com/example/bigquery/SimpleQueryIT.java | 3 +-- .../example/bigquery/UpdateTableDMLIT.java | 6 ++--- .../bigquery/UpdateTableDescriptionIT.java | 2 -- .../bigquery/UpdateTableExpirationIT.java | 6 ++--- 29 files changed, 124 insertions(+), 121 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java b/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java index 932c27d69a80..a8b22ed8bcbc 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java @@ -47,14 +47,15 @@ public static void runAddColumnLoadAppend() throws Exception { // 'REQUIRED' fields cannot be added to an existing schema, so the additional column must be // 'NULLABLE'. Schema schema = - Schema.of( - Field.newBuilder("name", LegacySQLTypeName.STRING) + Schema.of( + Field.newBuilder("name", LegacySQLTypeName.STRING) .setMode(Field.Mode.REQUIRED) .build()); List fields = schema.getFields(); // Adding below additional column during the load job - Field newField = Field.newBuilder("post_abbr", LegacySQLTypeName.STRING) + Field newField = + Field.newBuilder("post_abbr", LegacySQLTypeName.STRING) .setMode(Field.Mode.NULLABLE) .build(); List newFields = new ArrayList<>(fields); @@ -63,8 +64,8 @@ public static void runAddColumnLoadAppend() throws Exception { addColumnLoadAppend(datasetName, tableName, sourceUri, newSchema); } - public static void addColumnLoadAppend(String datasetName, String tableName, - String sourceUri, Schema newSchema) throws Exception { + public static void addColumnLoadAppend( + String datasetName, String tableName, String sourceUri, Schema newSchema) throws Exception { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. diff --git a/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java b/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java index 7228dfb6e514..518067e7788c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java @@ -44,16 +44,16 @@ public static void browseTable(String dataset, String table) { TableId tableId = TableId.of(dataset, table); // Page over 100 records. If you don't need pagination, remove the pageSize parameter. - TableResult result = - bigquery.listTableData(tableId, TableDataListOption.pageSize(100)); + TableResult result = bigquery.listTableData(tableId, TableDataListOption.pageSize(100)); // Print the records - result.iterateAll().forEach(row -> { - row.forEach(fieldValue -> - System.out.print(fieldValue.toString() + ", ") - ); - System.out.println(); - }); + result + .iterateAll() + .forEach( + row -> { + row.forEach(fieldValue -> System.out.print(fieldValue.toString() + ", ")); + System.out.println(); + }); System.out.println("Query ran successfully"); } catch (BigQueryException e) { diff --git a/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java b/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java index 6c780c8d7935..9ac960f795e5 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java @@ -37,8 +37,11 @@ public static void runCopyTable() { copyTable(sourceDatasetName, sourceTableId, destinationDatasetName, destinationTableId); } - public static void copyTable(String sourceDatasetName, String sourceTableId, - String destinationDatasetName, String destinationTableId) { + public static void copyTable( + String sourceDatasetName, + String sourceTableId, + String destinationDatasetName, + String destinationTableId) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -50,10 +53,7 @@ public static void copyTable(String sourceDatasetName, String sourceTableId, // For more information on CopyJobConfiguration see: // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigquery/JobConfiguration.html CopyJobConfiguration configuration = - CopyJobConfiguration.newBuilder( - destinationTable, - sourceTable - ).build(); + CopyJobConfiguration.newBuilder(destinationTable, sourceTable).build(); // For more information on Job see: // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java index 27a0e144f22d..602fbfedd2de 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java @@ -37,17 +37,15 @@ public static void runCreateClusteredTable() { String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; Schema schema = - Schema.of( - Field.of("name", StandardSQLTypeName.STRING), - Field.of("post_abbr", StandardSQLTypeName.STRING), - Field.of("date", StandardSQLTypeName.DATE)); - createClusteredTable(datasetName, tableName, - schema, ImmutableList.of("name", "post_abbr")); + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); + createClusteredTable(datasetName, tableName, schema, ImmutableList.of("name", "post_abbr")); } public static void createClusteredTable( - String datasetName, String tableName, - Schema schema, List clusteringFields) { + String datasetName, String tableName, Schema schema, List clusteringFields) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -58,8 +56,7 @@ public static void createClusteredTable( TimePartitioning partitioning = TimePartitioning.of(TimePartitioning.Type.DAY); // Clustering fields will be consisted of fields mentioned in the schema. // As of now, another condition is that the table should be partitioned. - Clustering clustering = - Clustering.newBuilder().setFields(clusteringFields).build(); + Clustering clustering = Clustering.newBuilder().setFields(clusteringFields).build(); StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder() diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java index 62a51c669145..1279d65ed400 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java @@ -35,10 +35,10 @@ public static void runCreatePartitionedTable() { String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; Schema schema = - Schema.of( - Field.of("stringField", StandardSQLTypeName.STRING), - Field.of("booleanField", StandardSQLTypeName.BOOL), - Field.of("dateField", StandardSQLTypeName.DATE)); + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL), + Field.of("dateField", StandardSQLTypeName.DATE)); createPartitionedTable(datasetName, tableName, schema); } diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java index 5aada2764a9d..6c6701f84486 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java @@ -46,7 +46,10 @@ public static void runExtractTableToCsv() { // Exports datasetName:tableName to destinationUri as raw CSV public static void extractTableToCsv( - String projectId, String datasetName, String tableName, String destinationUri, + String projectId, + String datasetName, + String tableName, + String destinationUri, String dataFormat) { try { // Initialize client that will be used to send requests. This client only needs to be created @@ -71,8 +74,8 @@ public static void extractTableToCsv( "BigQuery was unable to extract due to an error: \n" + job.getStatus().getError()); return; } - System.out.println("Table export successful. Check in GCS bucket for the " + - dataFormat + " file."); + System.out.println( + "Table export successful. Check in GCS bucket for the " + dataFormat + " file."); } catch (BigQueryException | InterruptedException e) { System.out.println("Table extraction job was interrupted. \n" + e.toString()); } diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java index 6d5586d7abdc..6db988703fa4 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java @@ -50,7 +50,10 @@ public static void runExtractTableToJson() { // Exports datasetName:tableName to destinationUri as a JSON file public static void extractTableToJson( - String projectId, String datasetName, String tableName, String destinationUri, + String projectId, + String datasetName, + String tableName, + String destinationUri, String dataFormat) { try { // Initialize client that will be used to send requests. This client only needs to be created @@ -75,8 +78,8 @@ public static void extractTableToJson( "BigQuery was unable to extract due to an error: \n" + job.getStatus().getError()); return; } - System.out.println("Table export successful. Check in GCS bucket for the " + - dataFormat + " file."); + System.out.println( + "Table export successful. Check in GCS bucket for the " + dataFormat + " file."); } catch (BigQueryException | InterruptedException e) { System.out.println("Table extraction job was interrupted. \n" + e.toString()); } diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java b/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java index 3e580ec7d571..98257420e098 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java @@ -44,8 +44,8 @@ public static void runLoadLocalFile() throws IOException, InterruptedException { loadLocalFile(datasetName, tableName, csvPath, FormatOptions.csv()); } - public static void loadLocalFile(String datasetName, String tableName, Path csvPath, - FormatOptions formatOptions) + public static void loadLocalFile( + String datasetName, String tableName, Path csvPath, FormatOptions formatOptions) throws IOException, InterruptedException { try { // Initialize client that will be used to send requests. This client only needs to be created @@ -54,9 +54,7 @@ public static void loadLocalFile(String datasetName, String tableName, Path csvP TableId tableId = TableId.of(datasetName, tableName); WriteChannelConfiguration writeChannelConfiguration = - WriteChannelConfiguration.newBuilder(tableId) - .setFormatOptions(formatOptions) - .build(); + WriteChannelConfiguration.newBuilder(tableId).setFormatOptions(formatOptions).build(); // The location and JobName must be specified; other fields can be auto-detected. String jobName = "jobId_" + UUID.randomUUID().toString(); diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java b/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java index c8ee67c67596..eb09015fabf0 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java @@ -39,8 +39,8 @@ public static void runLoadParquetReplaceTable() { loadParquetReplaceTable(datasetName, tableName, sourceUri); } - public static void loadParquetReplaceTable(String datasetName, String tableName, - String sourceUri) { + public static void loadParquetReplaceTable( + String datasetName, String tableName, String sourceUri) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java b/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java index 20f4104f98b8..a3e0245188cd 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java @@ -41,16 +41,20 @@ public static void runLoadTableClustered() throws Exception { String tableName = "MY_TABLE_NAME"; String sourceUri = "/path/to/file.csv"; Schema schema = - Schema.of( - Field.of("name", StandardSQLTypeName.STRING), - Field.of("post_abbr", StandardSQLTypeName.STRING), - Field.of("date", StandardSQLTypeName.DATE)); - loadTableClustered(datasetName, tableName, sourceUri, - schema, ImmutableList.of("name", "post_abbr")); + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); + loadTableClustered( + datasetName, tableName, sourceUri, schema, ImmutableList.of("name", "post_abbr")); } - public static void loadTableClustered(String datasetName, String tableName, String sourceUri, - Schema schema, List clusteringFields) + public static void loadTableClustered( + String datasetName, + String tableName, + String sourceUri, + Schema schema, + List clusteringFields) throws Exception { try { // Initialize client that will be used to send requests. This client only needs to be created @@ -62,8 +66,7 @@ public static void loadTableClustered(String datasetName, String tableName, Stri TimePartitioning partitioning = TimePartitioning.of(TimePartitioning.Type.DAY); // Clustering fields will be consisted of fields mentioned in the schema. // As of now, another condition is that the table should be partitioned. - Clustering clustering = - Clustering.newBuilder().setFields(clusteringFields).build(); + Clustering clustering = Clustering.newBuilder().setFields(clusteringFields).build(); LoadJobConfiguration loadJobConfig = LoadJobConfiguration.builder(tableId, sourceUri) diff --git a/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java b/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java index b160d49c0aad..5e346b937e6b 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java @@ -27,16 +27,15 @@ public class SaveQueryToTable { public static void runSaveQueryToTable() { // TODO(developer): Replace these variables before running the sample. - String query = - "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; String destinationTable = "MY_TABLE"; String destinationDataset = "MY_DATASET"; saveQueryToTable(destinationDataset, destinationTable, query); } - public static void saveQueryToTable(String destinationDataset, - String destinationTableId, String query) { + public static void saveQueryToTable( + String destinationDataset, String destinationTableId, String query) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. diff --git a/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java b/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java index 63a1a6475419..587a7456df87 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java +++ b/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java @@ -38,8 +38,7 @@ public static void simpleQuery(String query) { BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); // Create the query job. - QueryJobConfiguration queryConfig = - QueryJobConfiguration.newBuilder(query).build(); + QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build(); // Execute the query. TableResult result = bigquery.query(queryConfig); diff --git a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java index b601c859b75d..04fa0a2c8c0d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java +++ b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java @@ -42,8 +42,8 @@ public static void runTableInsertRows() { tableInsertRows(datasetName, tableName, rowContent); } - public static void tableInsertRows(String datasetName, String tableName, - Map rowContent) { + public static void tableInsertRows( + String datasetName, String tableName, Map rowContent) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java index 48f93c7874df..b5d5de8bc510 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java @@ -24,7 +24,6 @@ import com.google.cloud.bigquery.Job; import com.google.cloud.bigquery.JobId; import com.google.cloud.bigquery.QueryJobConfiguration; -import com.google.cloud.bigquery.QueryParameterValue; import com.google.cloud.bigquery.TableDataWriteChannel; import com.google.cloud.bigquery.TableId; import com.google.cloud.bigquery.TableResult; @@ -63,7 +62,8 @@ public static void updateTableDML(String datasetName, String tableName) .build(); // Imports a local JSON file into a table. - Path jsonPath = FileSystems.getDefault().getPath("src/test/resources", "userSessionsData.json"); + Path jsonPath = + FileSystems.getDefault().getPath("src/test/resources", "userSessionsData.json"); // The location and JobName must be specified; other fields can be auto-detected. String jobName = "jobId_" + UUID.randomUUID().toString(); @@ -87,16 +87,19 @@ public static void updateTableDML(String datasetName, String tableName) return; } - System.out.println(job.getStatistics().toString() + " userSessionsData json uploaded successfully"); + System.out.println( + job.getStatistics().toString() + " userSessionsData json uploaded successfully"); // Write a DML query to modify UserSessions table // To create DML query job to mask the last octet in every row's ip_address column - String dmlQuery = String.format("UPDATE `%s.%s` \n" - + "SET ip_address = REGEXP_REPLACE(ip_address, r\"(\\.[0-9]+)$\", \".0\")\n" - + "WHERE TRUE", datasetName, tableName); + String dmlQuery = + String.format( + "UPDATE `%s.%s` \n" + + "SET ip_address = REGEXP_REPLACE(ip_address, r\"(\\.[0-9]+)$\", \".0\")\n" + + "WHERE TRUE", + datasetName, tableName); - QueryJobConfiguration dmlQueryConfig = - QueryJobConfiguration.newBuilder(dmlQuery).build(); + QueryJobConfiguration dmlQueryConfig = QueryJobConfiguration.newBuilder(dmlQuery).build(); // Execute the query. TableResult result = bigquery.query(dmlQueryConfig); @@ -110,4 +113,4 @@ public static void updateTableDML(String datasetName, String tableName) } } } -// [END bigquery_update_with_dml] \ No newline at end of file +// [END bigquery_update_with_dml] diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java index c52df00c61bb..55c6af53db26 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java @@ -32,8 +32,8 @@ public static void runUpdateTableDescription() { updateTableDescription(datasetName, tableName, newDescription); } - public static void updateTableDescription(String datasetName, String tableName, - String newDescription) { + public static void updateTableDescription( + String datasetName, String tableName, String newDescription) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java index cbc9a19403fa..b3e369bff0e1 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java @@ -34,8 +34,8 @@ public static void runUpdateTableExpiration() { updateTableExpiration(datasetName, tableName, newExpiration); } - public static void updateTableExpiration(String datasetName, String tableName, - Long newExpiration) { + public static void updateTableExpiration( + String datasetName, String tableName, Long newExpiration) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. diff --git a/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java b/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java index afbe13c94d7f..b4b3751f7d61 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java @@ -75,7 +75,8 @@ public void testAddColumnLoadAppend() throws Exception { List fields = originalSchema.getFields(); // Adding below additional column during the load job - Field newField = Field.newBuilder("post_abbr", LegacySQLTypeName.STRING) + Field newField = + Field.newBuilder("post_abbr", LegacySQLTypeName.STRING) .setMode(Field.Mode.NULLABLE) .build(); List newFields = new ArrayList<>(fields); diff --git a/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java index b88a15e66fb3..f7bc16c67127 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java @@ -76,6 +76,5 @@ public void testBrowseTable() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java index 1ca1f42c5d2e..18a2529ed63d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java @@ -61,13 +61,14 @@ public void tearDown() { @Test public void testCopyTable() { - // Create a new destination and source table for each test since existing table cannot be overwritten - String generatedDestTableName = "gcloud_test_table_temp_" + - UUID.randomUUID().toString().replace('-', '_'); - String generatedSourceTableName = "gcloud_test_table_temp_" + - UUID.randomUUID().toString().replace('-', '_'); + // Create a new destination and source table for each test since existing table cannot be + // overwritten + String generatedDestTableName = + "gcloud_test_table_temp_" + UUID.randomUUID().toString().replace('-', '_'); + String generatedSourceTableName = + "gcloud_test_table_temp_" + UUID.randomUUID().toString().replace('-', '_'); - //Adding an arbitrary table schema so we aren't copying nothing. + // Adding an arbitrary table schema so we aren't copying nothing. Schema schema = Schema.of( Field.of("stringField", StandardSQLTypeName.STRING), @@ -76,8 +77,11 @@ public void testCopyTable() { CreateTable.createTable(BIGQUERY_DATASET_NAME, generatedDestTableName, schema); CreateTable.createTable(BIGQUERY_DATASET_NAME, generatedSourceTableName, schema); - CopyTable.copyTable(BIGQUERY_DATASET_NAME, generatedSourceTableName, - BIGQUERY_DATASET_NAME, generatedDestTableName); + CopyTable.copyTable( + BIGQUERY_DATASET_NAME, + generatedSourceTableName, + BIGQUERY_DATASET_NAME, + generatedDestTableName); assertThat(bout.toString()).contains("Table copied successfully."); // Clean up diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java index 37ddd226bf15..26e45c83dd88 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java @@ -63,13 +63,13 @@ public void tearDown() { public void createClusteredTable() { String tableName = "MY_CLUSTERED_TABLE"; Schema schema = - Schema.of( - Field.of("name", StandardSQLTypeName.STRING), - Field.of("post_abbr", StandardSQLTypeName.STRING), - Field.of("date", StandardSQLTypeName.DATE)); + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); - CreateClusteredTable.createClusteredTable(BIGQUERY_DATASET_NAME, tableName, - schema, ImmutableList.of("name", "post_abbr")); + CreateClusteredTable.createClusteredTable( + BIGQUERY_DATASET_NAME, tableName, schema, ImmutableList.of("name", "post_abbr")); assertThat(bout.toString()).contains("Clustered table created successfully"); diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java index 32000c5ce018..35ab85b386ea 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java @@ -62,10 +62,10 @@ public void tearDown() { public void testCreatePartitionedTable() { String tableName = "MY_PARTITIONED_TABLE"; Schema schema = - Schema.of( - Field.of("stringField", StandardSQLTypeName.STRING), - Field.of("booleanField", StandardSQLTypeName.BOOL), - Field.of("dateField", StandardSQLTypeName.DATE)); + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL), + Field.of("dateField", StandardSQLTypeName.DATE)); CreatePartitionedTable.createPartitionedTable(BIGQUERY_DATASET_NAME, tableName, schema); diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java index d0d763387311..457bb5fb72ab 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java @@ -64,8 +64,8 @@ public void testExtractTableToJson() { String dataFormat = "CSV"; // Extract table content to GCS in CSV format - ExtractTableToCsv.extractTableToCsv(projectId, datasetName, tableName, destinationUri, - dataFormat); + ExtractTableToCsv.extractTableToCsv( + projectId, datasetName, tableName, destinationUri, dataFormat); assertThat(bout.toString()) .contains("Table export successful. Check in GCS bucket for the " + dataFormat + " file."); } diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java index 9207f5965520..8d5764b1820b 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java @@ -66,8 +66,8 @@ public void testExtractTableToJson() { String dataFormat = FormatOptions.json().toString(); // Extract table content to GCS in JSON format - ExtractTableToJson.extractTableToJson(projectId, datasetName, tableName, destinationUri, - dataFormat); + ExtractTableToJson.extractTableToJson( + projectId, datasetName, tableName, destinationUri, dataFormat); assertThat(bout.toString()) .contains("Table export successful. Check in GCS bucket for the " + dataFormat + " file."); } diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java index 98ef57afd9de..3c05c7285392 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java @@ -66,13 +66,13 @@ public void loadTableClustered() throws Exception { String tableName = "LOAD_CLUSTERED_TABLE_TEST"; Schema schema = - Schema.of( - Field.of("name", StandardSQLTypeName.STRING), - Field.of("post_abbr", StandardSQLTypeName.STRING), - Field.of("date", StandardSQLTypeName.DATE)); + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); - LoadTableClustered.loadTableClustered(BIGQUERY_DATASET_NAME, tableName, sourceUri, - schema, ImmutableList.of("name", "post_abbr")); + LoadTableClustered.loadTableClustered( + BIGQUERY_DATASET_NAME, tableName, sourceUri, schema, ImmutableList.of("name", "post_abbr")); assertThat(bout.toString()) .contains("Data successfully loaded into clustered table during load job"); diff --git a/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java index f0b1d244eadd..3552c2c9045e 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java @@ -31,7 +31,6 @@ public class SaveQueryToTableIT { private ByteArrayOutputStream bout; private PrintStream out; - private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); private static void requireEnvVar(String varName) { @@ -60,8 +59,7 @@ public void tearDown() { @Test public void testSaveQueryToTable() { String tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); - String query = - "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; SaveQueryToTable.saveQueryToTable(BIGQUERY_DATASET_NAME, tableName, query); diff --git a/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java index 76428faab8ab..8ee67edde137 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java @@ -42,8 +42,7 @@ public void tearDown() { @Test public void testSimpleQuery() { - String query = - "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; SimpleQuery.simpleQuery(query); assertThat(bout.toString()).contains("Query ran successfully"); diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDMLIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDMLIT.java index 841ebca9809c..006ba13ceb2d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDMLIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDMLIT.java @@ -25,8 +25,6 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.PrintStream; -import java.nio.file.FileSystems; -import java.nio.file.Path; import java.util.UUID; import org.junit.After; import org.junit.Before; @@ -42,7 +40,7 @@ public class UpdateTableDMLIT { private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); private static String requireEnvVar(String varName) { - String value = System.getenv(varName); + String value = System.getenv(varName); assertNotNull( "Environment variable " + varName + " is required to perform these tests.", System.getenv(varName)); @@ -89,4 +87,4 @@ public void testUpdateTableDML() throws IOException, InterruptedException { UpdateTableDML.updateTableDML(BIGQUERY_DATASET_NAME, tableName); assertThat(bout.toString()).contains("Table updated successfully using DML"); } -} \ No newline at end of file +} diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java index ad71373a38b4..f30c73e1cd40 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java @@ -33,7 +33,6 @@ public class UpdateTableDescriptionIT { private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); - private static void requireEnvVar(String varName) { assertNotNull( "Environment variable " + varName + " is required to perform these tests.", @@ -72,6 +71,5 @@ public void updateTableDescription() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java index 73ca93c06df5..abd1eb3e02fb 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java @@ -65,9 +65,9 @@ public void updateTableExpiration() { String suffix = UUID.randomUUID().toString().replace('-', '_'); String tableName = "update_expiration_table_" + suffix; Schema schema = - Schema.of( - Field.of("stringField", StandardSQLTypeName.STRING), - Field.of("booleanField", StandardSQLTypeName.BOOL)); + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); UpdateTableExpiration.updateTableExpiration(BIGQUERY_DATASET_NAME, tableName, newExpiration); From 3810366451097a7f14db11504103865540ac242a Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 8 Jun 2020 18:30:07 -0400 Subject: [PATCH 0553/3441] docs(samples): add load CSV from GCS sample (#426) --- .../com/example/bigquery/LoadCsvFromGcs.java | 68 ++++++++++++++ .../example/bigquery/LoadCsvFromGcsIT.java | 88 +++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java new file mode 100644 index 000000000000..95c63164c5ac --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java @@ -0,0 +1,68 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_csv] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.Table; + +// Sample to load CSV data from Cloud Storage into a new BigQuery table +public class LoadCsvFromGcs { + + public static void runLoadCsvFromGcs() throws Exception { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + loadCsvFromGcs(datasetName, tableName, sourceUri); + } + + public static void loadCsvFromGcs(String datasetName, String tableName, String sourceUri) + throws Exception { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Table table = bigquery.getTable(datasetName, tableName); + Job loadJob = table.load(FormatOptions.csv(), sourceUri); + + // Load data from a GCS parquet file into the table + // Blocks until this load table job completes its execution, either failing or succeeding. + Job completedJob = loadJob.waitFor(); + + // Check for errors + if (completedJob == null) { + throw new Exception("Job not executed since it no longer exists."); + } else if (completedJob.getStatus().getError() != null) { + // You can also look at queryJob.getStatus().getExecutionErrors() for all + // errors, not just the latest one. + throw new Exception( + "BigQuery was unable to load into the table due to an error: \n" + + loadJob.getStatus().getError()); + } + System.out.println("CSV from GCS successfully added during load append job"); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_csv] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java new file mode 100644 index 000000000000..f47f92cc5f6b --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java @@ -0,0 +1,88 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadCsvFromGcsIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = "loadCsvFromGcs_TEST_" + UUID.randomUUID().toString().replace('-', '_'); + + Schema schema = + Schema.of( + Field.of("name", LegacySQLTypeName.STRING), + Field.of("post_abbr", LegacySQLTypeName.STRING)); + + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void loadCsvFromGcs() throws Exception { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + LoadCsvFromGcs.loadCsvFromGcs(BIGQUERY_DATASET_NAME, tableName, sourceUri); + assertThat(bout.toString()).contains("CSV from GCS successfully added during load append job"); + } +} From 61042772606e995ed8b89d473a55bb604097700d Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 8 Jun 2020 15:31:17 -0700 Subject: [PATCH 0554/3441] chore: update common template (#427) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 ++ synth.metadata | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b0166552b521..3112cc309a96 100644 --- a/README.md +++ b/README.md @@ -204,6 +204,7 @@ has instructions for running the samples. | Add Empty Column | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | | Auth Drive Scope | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | | Auth Snippets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | +| Browse Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | | Copy Multiple Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | | Copy Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | | Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | @@ -241,6 +242,7 @@ has instructions for running the samples. | Update Dataset Access | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | | Update Dataset Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | | Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | +| Update Table DML | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java) | | Update Table Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | | Update Table Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | diff --git a/synth.metadata b/synth.metadata index 716d148393c5..dd18962f0a65 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "9f37f6078ec045cc0022791ffa4c707a76b17c6f" + "sha": "342573ad1067c6b6ebb6d8dd66a8abc29e69bef6" } }, { From 21a3606f5fb65287f808b12a6fef65817c8a8ba6 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 8 Jun 2020 19:14:07 -0400 Subject: [PATCH 0555/3441] docs(samples): add load CSV from GCS to overwrite table sample (#428) --- .../bigquery/LoadCsvFromGcsTruncate.java | 82 +++++++++++++++++ .../bigquery/LoadCsvFromGcsTruncateTest.java | 89 +++++++++++++++++++ 2 files changed, 171 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java new file mode 100644 index 000000000000..228d55854acf --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java @@ -0,0 +1,82 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_csv_truncate] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.TableId; + +// Sample to overwrite the BigQuery table data by loading a CSV file from GCS +public class LoadCsvFromGcsTruncate { + + public static void runLoadCsvFromGcsTruncate() throws Exception { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + loadCsvFromGcsTruncate(datasetName, tableName, sourceUri); + } + + public static void loadCsvFromGcsTruncate(String datasetName, String tableName, String sourceUri) + throws Exception { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + + LoadJobConfiguration configuration = + LoadJobConfiguration.builder(tableId, sourceUri) + .setFormatOptions(FormatOptions.csv()) + // Set the write disposition to overwrite existing table data + .setWriteDisposition(WriteDisposition.WRITE_TRUNCATE) + .build(); + + // For more information on Job see: + // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html + // Load the table + Job loadJob = bigquery.create(JobInfo.of(configuration)); + + // Load data from a GCS parquet file into the table + // Blocks until this load table job completes its execution, either failing or succeeding. + Job completedJob = loadJob.waitFor(); + + // Check for errors + if (completedJob == null) { + throw new Exception("Job not executed since it no longer exists."); + } else if (completedJob.getStatus().getError() != null) { + // You can also look at queryJob.getStatus().getExecutionErrors() for all + // errors, not just the latest one. + throw new Exception( + "BigQuery was unable to load into the table due to an error: \n" + + loadJob.getStatus().getError()); + } + System.out.println("Table is successfully overwritten by CSV file loaded from GCS"); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_csv_truncate] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java new file mode 100644 index 000000000000..8a2e35377c91 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java @@ -0,0 +1,89 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadCsvFromGcsTruncateTest { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = "loadCsvFromGcsTruncate_TEST_" + UUID.randomUUID().toString().replace('-', '_'); + + Schema schema = + Schema.of( + Field.of("name", LegacySQLTypeName.STRING), + Field.of("post_abbr", LegacySQLTypeName.STRING)); + + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void loadCsvFromGcsTruncate() throws Exception { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + LoadCsvFromGcsTruncate.loadCsvFromGcsTruncate(BIGQUERY_DATASET_NAME, tableName, sourceUri); + assertThat(bout.toString()) + .contains("Table is successfully overwritten by CSV file loaded from GCS"); + } +} From a1d2c54eac3082f109305e16ad52e3b9e8b65c5b Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 9 Jun 2020 10:06:02 -0700 Subject: [PATCH 0556/3441] chore: update readme (#430) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 ++ synth.metadata | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3112cc309a96..feb434d4d882 100644 --- a/README.md +++ b/README.md @@ -221,6 +221,8 @@ has instructions for running the samples. | List Datasets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | | List Models | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | | List Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | +| Load Csv From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | +| Load Csv From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | | Load Local File | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | | Load Parquet | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | | Load Parquet Replace Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | diff --git a/synth.metadata b/synth.metadata index dd18962f0a65..773d2cf67165 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "342573ad1067c6b6ebb6d8dd66a8abc29e69bef6" + "sha": "21a3606f5fb65287f808b12a6fef65817c8a8ba6" } }, { From f56fa86b2404d77f7eb954b2248bb51bd8538cc3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 9 Jun 2020 19:06:16 +0200 Subject: [PATCH 0557/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v5.6.0 (#431) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6b6788b2e6c3..67bb701ec2b7 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 5.5.0 + 5.6.0 pom import From 5b33b18588c6f44f71d895c9811f52b97661fb4d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2020 20:18:09 +0000 Subject: [PATCH 0558/3441] chore: release 1.116.2 (#432) :robot: I have created a release \*beep\* \*boop\* --- ### [1.116.2](https://www.github.com/googleapis/java-bigquery/compare/v1.116.1...v1.116.2) (2020-06-09) ### Documentation * **samples:** add load CSV from GCS sample ([#426](https://www.github.com/googleapis/java-bigquery/issues/426)) ([3810366](https://www.github.com/googleapis/java-bigquery/commit/3810366451097a7f14db11504103865540ac242a)) * **samples:** add load CSV from GCS to overwrite table sample ([#428](https://www.github.com/googleapis/java-bigquery/issues/428)) ([21a3606](https://www.github.com/googleapis/java-bigquery/commit/21a3606f5fb65287f808b12a6fef65817c8a8ba6)) * **samples:** add update table using dml query sample ([#424](https://www.github.com/googleapis/java-bigquery/issues/424)) ([3902ba1](https://www.github.com/googleapis/java-bigquery/commit/3902ba1cf0d8a88d3e6f30b6606067503487c77d)), closes [#413](https://www.github.com/googleapis/java-bigquery/issues/413) * **samples:** added copy table and accompanying test ([#414](https://www.github.com/googleapis/java-bigquery/issues/414)) ([de0d97f](https://www.github.com/googleapis/java-bigquery/commit/de0d97f2f940c9cf507d19c5595e1a0e819ef19c)) * **samples:** added extract to json and accompanying test ([#416](https://www.github.com/googleapis/java-bigquery/issues/416)) ([16a956d](https://www.github.com/googleapis/java-bigquery/commit/16a956db0aa545df84f7885ffb4425460cf55a16)) * **samples:** adding browse table sample and test ([#422](https://www.github.com/googleapis/java-bigquery/issues/422)) ([dff4e5f](https://www.github.com/googleapis/java-bigquery/commit/dff4e5f86764b1c779c2ef131182483e2ffa1c1b)) * **samples:** adding destination query sample and test ([#418](https://www.github.com/googleapis/java-bigquery/issues/418)) ([0f50961](https://www.github.com/googleapis/java-bigquery/commit/0f50961aaf1092f3ecc4e02fa9cebb50f6d45e90)) * **samples:** adding simple query example for completeness ([#417](https://www.github.com/googleapis/java-bigquery/issues/417)) ([59426df](https://www.github.com/googleapis/java-bigquery/commit/59426df912f743b7927deb562366b625aba6f087)) * **samples:** rename extract table json to extract table csv ([#415](https://www.github.com/googleapis/java-bigquery/issues/415)) ([c1f21e6](https://www.github.com/googleapis/java-bigquery/commit/c1f21e6c16df40bb3c71610f9d5b4fb4855b28fb)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20200523-1.30.9 ([#409](https://www.github.com/googleapis/java-bigquery/issues/409)) ([d30c823](https://www.github.com/googleapis/java-bigquery/commit/d30c823c5a604b195f17d8ac33894107cdee967e)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 20 ++++++++++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 28 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 510606eea2f0..be9f692b672a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +### [1.116.2](https://www.github.com/googleapis/java-bigquery/compare/v1.116.1...v1.116.2) (2020-06-09) + + +### Documentation + +* **samples:** add load CSV from GCS sample ([#426](https://www.github.com/googleapis/java-bigquery/issues/426)) ([3810366](https://www.github.com/googleapis/java-bigquery/commit/3810366451097a7f14db11504103865540ac242a)) +* **samples:** add load CSV from GCS to overwrite table sample ([#428](https://www.github.com/googleapis/java-bigquery/issues/428)) ([21a3606](https://www.github.com/googleapis/java-bigquery/commit/21a3606f5fb65287f808b12a6fef65817c8a8ba6)) +* **samples:** add update table using dml query sample ([#424](https://www.github.com/googleapis/java-bigquery/issues/424)) ([3902ba1](https://www.github.com/googleapis/java-bigquery/commit/3902ba1cf0d8a88d3e6f30b6606067503487c77d)), closes [#413](https://www.github.com/googleapis/java-bigquery/issues/413) +* **samples:** added copy table and accompanying test ([#414](https://www.github.com/googleapis/java-bigquery/issues/414)) ([de0d97f](https://www.github.com/googleapis/java-bigquery/commit/de0d97f2f940c9cf507d19c5595e1a0e819ef19c)) +* **samples:** added extract to json and accompanying test ([#416](https://www.github.com/googleapis/java-bigquery/issues/416)) ([16a956d](https://www.github.com/googleapis/java-bigquery/commit/16a956db0aa545df84f7885ffb4425460cf55a16)) +* **samples:** adding browse table sample and test ([#422](https://www.github.com/googleapis/java-bigquery/issues/422)) ([dff4e5f](https://www.github.com/googleapis/java-bigquery/commit/dff4e5f86764b1c779c2ef131182483e2ffa1c1b)) +* **samples:** adding destination query sample and test ([#418](https://www.github.com/googleapis/java-bigquery/issues/418)) ([0f50961](https://www.github.com/googleapis/java-bigquery/commit/0f50961aaf1092f3ecc4e02fa9cebb50f6d45e90)) +* **samples:** adding simple query example for completeness ([#417](https://www.github.com/googleapis/java-bigquery/issues/417)) ([59426df](https://www.github.com/googleapis/java-bigquery/commit/59426df912f743b7927deb562366b625aba6f087)) +* **samples:** rename extract table json to extract table csv ([#415](https://www.github.com/googleapis/java-bigquery/issues/415)) ([c1f21e6](https://www.github.com/googleapis/java-bigquery/commit/c1f21e6c16df40bb3c71610f9d5b4fb4855b28fb)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200523-1.30.9 ([#409](https://www.github.com/googleapis/java-bigquery/issues/409)) ([d30c823](https://www.github.com/googleapis/java-bigquery/commit/d30c823c5a604b195f17d8ac33894107cdee967e)) + ### [1.116.1](https://www.github.com/googleapis/java-bigquery/compare/v1.116.0...v1.116.1) (2020-06-01) diff --git a/README.md b/README.md index feb434d4d882..595ea6dfa931 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.1' +compile 'com.google.cloud:google-cloud-bigquery:1.116.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.2" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2966c87dd28f..6a8352473935 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.2-SNAPSHOT + 1.116.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.2-SNAPSHOT + 1.116.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3d6c343a8472..76269f9cabe5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.2-SNAPSHOT + 1.116.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.2-SNAPSHOT + 1.116.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1278fd7059fb..58b94a0c602e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.2-SNAPSHOT + 1.116.2 diff --git a/versions.txt b/versions.txt index 8591d1fa19df..2ca5a2c2f25a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.1:1.116.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.116.2:1.116.2 \ No newline at end of file From 2ee010cdffb6ed3bdae54d77d63bfb41eace3098 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 10 Jun 2020 08:20:06 -0700 Subject: [PATCH 0559/3441] deps: bump libraries-bom version (#434) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 595ea6dfa931..9699fc561010 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 5.5.0 + 5.6.0 pom import diff --git a/synth.metadata b/synth.metadata index 773d2cf67165..82e1c7693dd9 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "21a3606f5fb65287f808b12a6fef65817c8a8ba6" + "sha": "5b33b18588c6f44f71d895c9811f52b97661fb4d" } }, { From 73c94bb134d902e30ca3cd30f94550850fa9aa01 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 10 Jun 2020 17:20:22 +0200 Subject: [PATCH 0560/3441] chore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.18 (#435) --- samples/install-without-bom/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5233a01d9461..5aef3783a7fd 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.17 + 1.0.18 diff --git a/samples/pom.xml b/samples/pom.xml index 6c4687174368..ce09b2f3ab10 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -34,7 +34,7 @@ com.google.cloud.samples shared-configuration - 1.0.17 + 1.0.18 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 58b94a0c602e..a12560e3ec57 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.17 + 1.0.18 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 67bb701ec2b7..e0505af785d1 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.17 + 1.0.18 From cd714d5cba70c38ff90e1a5d5c562f8305fe1835 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 10 Jun 2020 17:20:38 +0200 Subject: [PATCH 0561/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.7.0 (#436) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 76269f9cabe5..440bc757a455 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.6.0 + 0.7.0 From ecc0095f2ef98323bab2da9e4783a2889e12a4f6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2020 15:28:07 +0000 Subject: [PATCH 0562/3441] chore: release 1.116.3-SNAPSHOT (#437) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6a8352473935..96fbb4195439 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.2 + 1.116.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.2 + 1.116.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 440bc757a455..f28e4657286b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.2 + 1.116.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.2 + 1.116.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a12560e3ec57..82f81b554e6b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.2 + 1.116.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 2ca5a2c2f25a..d3268fe4daca 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.2:1.116.2 \ No newline at end of file +google-cloud-bigquery:1.116.2:1.116.3-SNAPSHOT \ No newline at end of file From 0a52a298206daf0c44d033c9b412da067f43c282 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 10 Jun 2020 18:01:26 +0200 Subject: [PATCH 0563/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.116.2 (#433) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5aef3783a7fd..4a1098aa6c65 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.116.1 + 1.116.2 From 92dbcb093a772eb0258204e0ae04287eaf03f2fc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 11 Jun 2020 00:48:50 +0200 Subject: [PATCH 0564/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v5.7.0 (#440) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e0505af785d1..df8f1c1b5830 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 5.6.0 + 5.7.0 pom import From 59ac5284ca76a6d4ec560d9b0a73f6382e1f888a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 10 Jun 2020 15:49:06 -0700 Subject: [PATCH 0565/3441] changes without context (#441) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9699fc561010..761e3e7673b0 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.116.1 + 1.116.2 ``` diff --git a/synth.metadata b/synth.metadata index 82e1c7693dd9..caf6c0ab580d 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "5b33b18588c6f44f71d895c9811f52b97661fb4d" + "sha": "0a52a298206daf0c44d033c9b412da067f43c282" } }, { From 4a7e342ff522e0dd17356b29c3ac3cd7c445c9fc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 11 Jun 2020 02:06:16 +0200 Subject: [PATCH 0566/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.8.0 (#442) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | minor | `0.7.0` -> `0.8.0` | --- ### Release Notes
    googleapis/java-shared-config ### [`v0.8.0`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​080-httpswwwgithubcomgoogleapisjava-shared-configcomparev070v080-2020-06-10) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v0.7.0...v0.8.0) ##### Features - revert "feat: mark auto-value-annotations scope as provided" ([#​154](https://www.github.com/googleapis/java-shared-config/issues/154)) ([88afb4e](https://www.github.com/googleapis/java-shared-config/commit/88afb4e7c57cb6e00929c098135314a926d9da30))
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f28e4657286b..77414196ebfc 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.7.0 + 0.8.0 From 86c4d470e493344126da4213e3be105234c36c5b Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 11 Jun 2020 08:00:48 -0700 Subject: [PATCH 0567/3441] chore: bump libraries-bom version in readme (#443) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 761e3e7673b0..9c9d3efeb4dd 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 5.6.0 + 5.7.0 pom import diff --git a/synth.metadata b/synth.metadata index caf6c0ab580d..d349203ea4a7 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "0a52a298206daf0c44d033c9b412da067f43c282" + "sha": "4a7e342ff522e0dd17356b29c3ac3cd7c445c9fc" } }, { From 1f2846c5d0ca43655bdeb223b9d62de1f88fe4b9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 15 Jun 2020 18:13:14 +0200 Subject: [PATCH 0568/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.109.0 (#446) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 77414196ebfc..c3c4f2cbfc32 100644 --- a/pom.xml +++ b/pom.xml @@ -117,7 +117,7 @@ com.google.cloud google-cloud-storage - 1.108.0 + 1.109.0 test From f53559e376ff8ebcca7440b977c02feb9b52a64b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 15 Jun 2020 18:13:31 +0200 Subject: [PATCH 0569/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200603-1.30.9 (#447) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c3c4f2cbfc32..66ba63256bba 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20200523-1.30.9 + v2-rev20200603-1.30.9
    From 8af668e2b5e9028cabe70740ea1baa624d35b7c0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 15 Jun 2020 18:13:46 +0200 Subject: [PATCH 0570/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.1 (#448) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 66ba63256bba..cf419a5427ac 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.7.0 + 0.8.1 pom import From dbb66393219addabe917c744d727bed57a32c156 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 15 Jun 2020 22:21:24 +0200 Subject: [PATCH 0571/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.8.1 (#449) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cf419a5427ac..10cbd3bc50d0 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.8.0 + 0.8.1 From 01dd6be4f8894d11124f6e68545aa3b3b3ee14d8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 16 Jun 2020 11:04:09 +0200 Subject: [PATCH 0572/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.109.1 (#453) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | patch | `1.109.0` -> `1.109.1` | --- ### Release Notes
    googleapis/java-storage ### [`v1.109.1`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​11091-httpswwwgithubcomgoogleapisjava-storagecomparev11090v11091-2020-06-15) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v1.109.0...v1.109.1)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 10cbd3bc50d0..a484ce5a2f77 100644 --- a/pom.xml +++ b/pom.xml @@ -117,7 +117,7 @@ com.google.cloud google-cloud-storage - 1.109.0 + 1.109.1 test From 8b6835fe0daa5749e10e59eab3a3013825534421 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 16 Jun 2020 12:18:28 -0700 Subject: [PATCH 0573/3441] ci: switch to secret manager for samples/integration tests (#454) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/2c593734-539a-435d-8a04-27f04c90082f/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/c4f3059c27591eb24d6942a0e357ec94c80459f2 Source-Link: https://github.com/googleapis/synthtool/commit/6eb80fa9f96433af8dbeb1c8323aa80cda49b374 Source-Link: https://github.com/googleapis/synthtool/commit/6d3eed67a45fd58f9c7bfa173c32e4fd4fed058f Source-Link: https://github.com/googleapis/synthtool/commit/d1addcdf80aa9ddef8c932c89c919024bbad7af3 --- .kokoro/build.sh | 2 +- .kokoro/nightly/integration.cfg | 12 +++------ .kokoro/nightly/samples.cfg | 16 +++++------- .kokoro/populate-secrets.sh | 43 +++++++++++++++++++++++++++++++ .kokoro/presubmit/integration.cfg | 12 +++------ .kokoro/presubmit/samples.cfg | 14 ++++------ .kokoro/trampoline.sh | 2 ++ synth.metadata | 4 +-- 8 files changed, 67 insertions(+), 38 deletions(-) create mode 100755 .kokoro/populate-secrets.sh diff --git a/.kokoro/build.sh b/.kokoro/build.sh index c4b20b9f96db..22c0237b166c 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -39,7 +39,7 @@ retry_with_backoff 3 10 \ # if GOOGLE_APPLICATION_CREDIENTIALS is specified as a relative path prepend Kokoro root directory onto it if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTIALS}" != /* ]]; then - export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_ROOT}/src/${GOOGLE_APPLICATION_CREDENTIALS}) + export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_GFILE_DIR}/${GOOGLE_APPLICATION_CREDENTIALS}) fi RETURN_CODE=0 diff --git a/.kokoro/nightly/integration.cfg b/.kokoro/nightly/integration.cfg index 40c4abb7bf08..0048c8ece7e5 100644 --- a/.kokoro/nightly/integration.cfg +++ b/.kokoro/nightly/integration.cfg @@ -28,14 +28,10 @@ env_vars: { env_vars: { key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "keystore/73713_java_it_service_account" + value: "secret_manager/java-it-service-account" } -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "java_it_service_account" - } - } +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" } diff --git a/.kokoro/nightly/samples.cfg b/.kokoro/nightly/samples.cfg index 20aabd55de11..f25429314f4d 100644 --- a/.kokoro/nightly/samples.cfg +++ b/.kokoro/nightly/samples.cfg @@ -24,19 +24,15 @@ env_vars: { env_vars: { key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "keystore/73713_java_it_service_account" + value: "secret_manager/java-docs-samples-service-account" } env_vars: { - key: "ENABLE_BUILD_COP" - value: "true" + key: "SECRET_MANAGER_KEYS" + value: "java-docs-samples-service-account" } -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "java_it_service_account" - } - } +env_vars: { + key: "ENABLE_BUILD_COP" + value: "true" } diff --git a/.kokoro/populate-secrets.sh b/.kokoro/populate-secrets.sh new file mode 100755 index 000000000000..f52514257ef0 --- /dev/null +++ b/.kokoro/populate-secrets.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# Copyright 2020 Google LLC. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +function now { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n' ;} +function msg { println "$*" >&2 ;} +function println { printf '%s\n' "$(now) $*" ;} + + +# Populates requested secrets set in SECRET_MANAGER_KEYS from service account: +# kokoro-trampoline@cloud-devrel-kokoro-resources.iam.gserviceaccount.com +SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" +msg "Creating folder on disk for secrets: ${SECRET_LOCATION}" +mkdir -p ${SECRET_LOCATION} +for key in $(echo ${SECRET_MANAGER_KEYS} | sed "s/,/ /g") +do + msg "Retrieving secret ${key}" + docker run --entrypoint=gcloud \ + --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \ + gcr.io/google.com/cloudsdktool/cloud-sdk \ + secrets versions access latest \ + --project cloud-devrel-kokoro-resources \ + --secret ${key} > \ + "${SECRET_LOCATION}/${key}" + if [[ $? == 0 ]]; then + msg "Secret written to ${SECRET_LOCATION}/${key}" + else + msg "Error retrieving secret ${key}" + fi +done diff --git a/.kokoro/presubmit/integration.cfg b/.kokoro/presubmit/integration.cfg index 522e5b10101c..dded67a9d54a 100644 --- a/.kokoro/presubmit/integration.cfg +++ b/.kokoro/presubmit/integration.cfg @@ -24,14 +24,10 @@ env_vars: { env_vars: { key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "keystore/73713_java_it_service_account" + value: "secret_manager/java-it-service-account" } -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "java_it_service_account" - } - } +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" } diff --git a/.kokoro/presubmit/samples.cfg b/.kokoro/presubmit/samples.cfg index 1171aead01f0..01e0960047b8 100644 --- a/.kokoro/presubmit/samples.cfg +++ b/.kokoro/presubmit/samples.cfg @@ -24,14 +24,10 @@ env_vars: { env_vars: { key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "keystore/73713_java_it_service_account" + value: "secret_manager/java-docs-samples-service-account" } -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "java_it_service_account" - } - } -} +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-docs-samples-service-account" +} \ No newline at end of file diff --git a/.kokoro/trampoline.sh b/.kokoro/trampoline.sh index ba17ce01466b..9da0f8398773 100644 --- a/.kokoro/trampoline.sh +++ b/.kokoro/trampoline.sh @@ -21,4 +21,6 @@ function cleanup() { echo "cleanup"; } trap cleanup EXIT + +$(dirname $0)/populate-secrets.sh # Secret Manager secrets. python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py" diff --git a/synth.metadata b/synth.metadata index d349203ea4a7..3a890effd6b8 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "4a7e342ff522e0dd17356b29c3ac3cd7c445c9fc" + "sha": "01dd6be4f8894d11124f6e68545aa3b3b3ee14d8" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "987270824bd26f6a8c716d5e2022057b8ae7b26e" + "sha": "c4f3059c27591eb24d6942a0e357ec94c80459f2" } } ] From d16a3b5e928ceeed1c227d5bfa72509da24217ed Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 17 Jun 2020 01:30:10 +0200 Subject: [PATCH 0574/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v6 (#455) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | major | `5.7.0` -> `6.0.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index df8f1c1b5830..186c6874ac88 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 5.7.0 + 6.0.0 pom import From 16738bed6a683f9b48bac33dcb1f0448394593b4 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 17 Jun 2020 08:08:04 -0700 Subject: [PATCH 0575/3441] chore: bump libraries-bom version (#457) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9c9d3efeb4dd..53f8fa712a31 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 5.7.0 + 6.0.0 pom import diff --git a/synth.metadata b/synth.metadata index 3a890effd6b8..e3b4e49a7aa2 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "01dd6be4f8894d11124f6e68545aa3b3b3ee14d8" + "sha": "d16a3b5e928ceeed1c227d5bfa72509da24217ed" } }, { From 53e0c788e09483b67d9d34443cb00b4046da9f5c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 17 Jun 2020 18:15:56 +0200 Subject: [PATCH 0576/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v7 (#459) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 186c6874ac88..d34a996f90e1 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 6.0.0 + 7.0.0 pom import From 68140d5e463304253a5cc28e6dae9cc73d1bf8d1 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 17 Jun 2020 22:47:33 +0530 Subject: [PATCH 0577/3441] docs(samples): add create range partition table (#458) * docs(samples): add create range partition table * docs(samples): address feedback --- .../bigquery/CreateRangePartitionedTable.java | 83 +++++++++++++++++++ .../CreateRangePartitionedTableIT.java | 83 +++++++++++++++++++ 2 files changed, 166 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateRangePartitionedTableIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java new file mode 100644 index 000000000000..57abdff8f510 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java @@ -0,0 +1,83 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_table_range_partitioned] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.RangePartitioning; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; + +// Sample to create a range partitioned table +public class CreateRangePartitionedTable { + + public static void runCreateRangePartitionedTable() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + Schema schema = + Schema.of( + Field.of("integerField", StandardSQLTypeName.INT64), + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL), + Field.of("dateField", StandardSQLTypeName.DATE)); + createRangePartitionedTable(datasetName, tableName, schema); + } + + public static void createRangePartitionedTable( + String datasetName, String tableName, Schema schema) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + + // Note: The field must be a top- level, NULLABLE/REQUIRED field. + // The only supported type is INTEGER/INT64 + RangePartitioning partitioning = + RangePartitioning.newBuilder() + .setField("integerField") + .setRange( + RangePartitioning.Range.newBuilder() + .setStart(1L) + .setInterval(2L) + .setEnd(10L) + .build()) + .build(); + + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(schema) + .setRangePartitioning(partitioning) + .build(); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + + bigquery.create(tableInfo); + System.out.println("Range partitioned table created successfully"); + } catch (BigQueryException e) { + System.out.println("Range partitioned table was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_table_range_partitioned] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateRangePartitionedTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateRangePartitionedTableIT.java new file mode 100644 index 000000000000..a07497849108 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateRangePartitionedTableIT.java @@ -0,0 +1,83 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateRangePartitionedTableIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + tableName = "RANGE_PARTITIONED_TABLE_TEST" + UUID.randomUUID().toString().replace('-', '_'); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testCreateRangePartitionedTable() { + Schema schema = + Schema.of( + Field.of("integerField", StandardSQLTypeName.INT64), + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL), + Field.of("dateField", StandardSQLTypeName.DATE)); + + CreateRangePartitionedTable.createRangePartitionedTable( + BIGQUERY_DATASET_NAME, tableName, schema); + + assertThat(bout.toString()).contains("Range partitioned table created successfully"); + } +} From e5db01cac9309d0d2da819276d69af017c367929 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 18 Jun 2020 20:58:35 +0530 Subject: [PATCH 0578/3441] docs(samples): add query (#463) * docs(samples): add query * docs(samples): add comment --- .../main/java/com/example/bigquery/Query.java | 70 +++++++++++++++++++ .../java/com/example/bigquery/QueryIT.java | 57 +++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/Query.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/Query.java b/samples/snippets/src/main/java/com/example/bigquery/Query.java new file mode 100644 index 000000000000..d9794e6c622b --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/Query.java @@ -0,0 +1,70 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; + +// Sample to query in a table +public class Query { + + public static void runQuery() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String query = + "SELECT name, SUM(number) as total_people\n" + + " FROM `" + + projectId + + "." + + datasetName + + "." + + tableName + + "`" + + " WHERE state = 'TX'" + + " GROUP BY name, state" + + " ORDER BY total_people DESC" + + " LIMIT 20"; + query(query); + } + + public static void query(String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryIT.java new file mode 100644 index 000000000000..36e59b67a06c --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryIT.java @@ -0,0 +1,57 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQuery() { + String query = + "SELECT name, SUM(number) as total_people" + + " FROM `bigquery-public-data.usa_names.usa_1910_2013`" + + " WHERE state = 'TX'" + + " GROUP BY name, state" + + " ORDER BY total_people DESC" + + " LIMIT 20"; + + Query.query(query); + assertThat(bout.toString()).contains("Query performed successfully."); + } +} From df6479f2243193e692313790cbb1720d0279d47a Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 18 Jun 2020 23:20:10 +0530 Subject: [PATCH 0579/3441] docs(samples): add create and delete model (#462) * docs(samples): add create and delete model * docs(samples): fix flaky test * docs(samples): fix npe --- .../com/example/bigquery/CreateModel.java | 74 +++++++++++++++ .../com/example/bigquery/DeleteModel.java | 51 ++++++++++ .../com/example/bigquery/CreateModelIT.java | 87 +++++++++++++++++ .../com/example/bigquery/DeleteModelIT.java | 93 +++++++++++++++++++ 4 files changed, 305 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateModel.java create mode 100644 samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java b/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java new file mode 100644 index 000000000000..d7ebe2c28bec --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java @@ -0,0 +1,74 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_model] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.QueryJobConfiguration; + +// Sample to create a model +public class CreateModel { + + public static void runCreateModel() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String modelName = "MY_MODEL_NAME"; + String sql = + "CREATE MODEL `" + + datasetName + + "." + + modelName + + "`" + + "OPTIONS ( " + + "model_type='linear_reg', " + + "max_iteration=1, " + + "learn_rate=0.4, " + + "learn_rate_strategy='constant' " + + ") AS ( " + + " SELECT 'a' AS f1, 2.0 AS label " + + "UNION ALL " + + "SELECT 'b' AS f1, 3.8 AS label " + + ")"; + createModel(sql); + } + + public static void createModel(String sql) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(sql).build(); + + // create a model using query and it will wait to complete job. + Job job = bigquery.create(JobInfo.of(config)); + job = job.waitFor(); + if (job.isDone()) { + System.out.println("Model created successfully"); + } else { + System.out.println("Model was not created"); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Model was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_model] diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java new file mode 100644 index 000000000000..dbf3bb0a68d9 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java @@ -0,0 +1,51 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_delete_model] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.ModelId; + +// Sample to delete a model +public class DeleteModel { + + public static void runDeleteModel() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String modelName = "MY_MODEL_NAME"; + deleteModel(datasetName, modelName); + } + + public static void deleteModel(String datasetName, String modelName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + boolean success = bigquery.delete(ModelId.of(datasetName, modelName)); + if (success) { + System.out.println("Model deleted successfully"); + } else { + System.out.println("Model was not found"); + } + } catch (BigQueryException e) { + System.out.println("Model was not deleted. \n" + e.toString()); + } + } +} +// [END bigquery_delete_model] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java new file mode 100644 index 000000000000..b0bcb7ca6079 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java @@ -0,0 +1,87 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateModelIT { + + private String modelName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + modelName = "MY_MODEL_NAME_TEST_" + UUID.randomUUID().toString().replace('-', '_'); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteModel.deleteModel(BIGQUERY_DATASET_NAME, modelName); + System.setOut(null); + } + + @Test + public void testCreateModel() { + String sql = + "CREATE MODEL `" + + BIGQUERY_DATASET_NAME + + "." + + modelName + + "`" + + "OPTIONS ( " + + "model_type='linear_reg', " + + "max_iteration=1, " + + "learn_rate=0.4, " + + "learn_rate_strategy='constant' " + + ") AS ( " + + " SELECT 'a' AS f1, 2.0 AS label " + + "UNION ALL " + + "SELECT 'b' AS f1, 3.8 AS label " + + ")"; + CreateModel.createModel(sql); + assertThat(bout.toString()).contains("Model created successfully"); + } +} diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java new file mode 100644 index 000000000000..1933a3a7a189 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java @@ -0,0 +1,93 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class DeleteModelIT { + + private String modelName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a new model to be deleted + modelName = "MY_MODEL_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + String sql = + "CREATE MODEL `" + + BIGQUERY_DATASET_NAME + + "." + + modelName + + "`" + + "OPTIONS ( " + + "model_type='linear_reg', " + + "max_iteration=1, " + + "learn_rate=0.4, " + + "learn_rate_strategy='constant' " + + ") AS ( " + + " SELECT 'a' AS f1, 2.0 AS label " + + "UNION ALL " + + "SELECT 'b' AS f1, 3.8 AS label " + + ")"; + CreateModel.createModel(sql); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testDeleteModel() { + // Delete the model that was just created + DeleteModel.deleteModel(BIGQUERY_DATASET_NAME, modelName); + assertThat(bout.toString()).contains("Model deleted successfully"); + } +} From 3dc0fd8809b504e5be82b2616b1203e366ea5bc5 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 18 Jun 2020 10:50:34 -0700 Subject: [PATCH 0580/3441] chore: bump libraries-bom version (#461) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 3 ++- synth.metadata | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 53f8fa712a31..75cb6c14cf76 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 6.0.0 + 7.0.0 pom import @@ -210,6 +210,7 @@ has instructions for running the samples. | Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | | Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | | Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | +| Create Range Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | | Create Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | | Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | | Delete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | diff --git a/synth.metadata b/synth.metadata index e3b4e49a7aa2..994bf5a86984 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "d16a3b5e928ceeed1c227d5bfa72509da24217ed" + "sha": "68140d5e463304253a5cc28e6dae9cc73d1bf8d1" } }, { From c41426b011d89ff1380e16f47319cf8100bf7a14 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 18 Jun 2020 16:45:09 -0400 Subject: [PATCH 0581/3441] chore: release 1.116.4 (#450) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snippets/pom.xml Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 16 ++++++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 24 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be9f692b672a..93accf7f7371 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +### [1.116.4](https://www.github.com/googleapis/java-bigquery/compare/v1.116.3...v1.116.4) (2020-06-18) + + +### Documentation + +* **samples:** add create and delete model ([#462](https://www.github.com/googleapis/java-bigquery/issues/462)) ([df6479f](https://www.github.com/googleapis/java-bigquery/commit/df6479f2243193e692313790cbb1720d0279d47a)) +* **samples:** add create range partition table ([#458](https://www.github.com/googleapis/java-bigquery/issues/458)) ([68140d5](https://www.github.com/googleapis/java-bigquery/commit/68140d5e463304253a5cc28e6dae9cc73d1bf8d1)) +* **samples:** add query ([#463](https://www.github.com/googleapis/java-bigquery/issues/463)) ([e5db01c](https://www.github.com/googleapis/java-bigquery/commit/e5db01cac9309d0d2da819276d69af017c367929)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200603-1.30.9 ([#447](https://www.github.com/googleapis/java-bigquery/issues/447)) ([f53559e](https://www.github.com/googleapis/java-bigquery/commit/f53559e376ff8ebcca7440b977c02feb9b52a64b)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.1 ([#448](https://www.github.com/googleapis/java-bigquery/issues/448)) ([8af668e](https://www.github.com/googleapis/java-bigquery/commit/8af668e2b5e9028cabe70740ea1baa624d35b7c0)) +* update dependency com.google.cloud:google-cloud-storage to v1.109.1 ([#453](https://www.github.com/googleapis/java-bigquery/issues/453)) ([01dd6be](https://www.github.com/googleapis/java-bigquery/commit/01dd6be4f8894d11124f6e68545aa3b3b3ee14d8)) + ### [1.116.2](https://www.github.com/googleapis/java-bigquery/compare/v1.116.1...v1.116.2) (2020-06-09) diff --git a/README.md b/README.md index 75cb6c14cf76..bfda3f713054 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.2' +compile 'com.google.cloud:google-cloud-bigquery:1.116.3' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.3" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 96fbb4195439..5cfa2f31fb11 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.3-SNAPSHOT + 1.116.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.3-SNAPSHOT + 1.116.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a484ce5a2f77..99f7cbee0d86 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.3-SNAPSHOT + 1.116.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.3-SNAPSHOT + 1.116.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 82f81b554e6b..7740b35fbf4a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.3-SNAPSHOT + 1.116.3 diff --git a/versions.txt b/versions.txt index d3268fe4daca..01f498b8268d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.2:1.116.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.116.3:1.116.3 \ No newline at end of file From d0efe7fe4668e35ef10979e316b4b3b7a69b3835 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 19 Jun 2020 18:55:13 +0530 Subject: [PATCH 0582/3441] refactor(samples): get model (#467) --- .../java/com/example/bigquery/GetModelIT.java | 43 ++++++++++++++++--- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java index 78d53ad7c06d..33cecba9f9ef 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java @@ -21,32 +21,59 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.UUID; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class GetModelIT { + + private String modelName; private ByteArrayOutputStream bout; private PrintStream out; - private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); - private static final String BIGQUERY_MODEL_NAME = System.getenv("BIGQUERY_MODEL_NAME"); + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); - private static void requireEnvVar(String varName) { + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); assertNotNull( "Environment variable " + varName + " is required to perform these tests.", System.getenv(varName)); + return value; } @BeforeClass public static void checkRequirements() { requireEnvVar("BIGQUERY_DATASET_NAME"); - requireEnvVar("BIGQUERY_MODEL_NAME"); } @Before - public void setUp() throws Exception { + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a new model to be deleted + modelName = "MY_MODEL_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + String sql = + "CREATE MODEL `" + + BIGQUERY_DATASET_NAME + + "." + + modelName + + "`" + + "OPTIONS ( " + + "model_type='linear_reg', " + + "max_iteration=1, " + + "learn_rate=0.4, " + + "learn_rate_strategy='constant' " + + ") AS ( " + + " SELECT 'a' AS f1, 2.0 AS label " + + "UNION ALL " + + "SELECT 'b' AS f1, 3.8 AS label " + + ")"; + CreateModel.createModel(sql); + bout = new ByteArrayOutputStream(); out = new PrintStream(bout); System.setOut(out); @@ -54,12 +81,14 @@ public void setUp() throws Exception { @After public void tearDown() { + // Clean up + DeleteModel.deleteModel(BIGQUERY_DATASET_NAME, modelName); System.setOut(null); } @Test - public void getModel() { - GetModel.getModel(BIGQUERY_DATASET_NAME, BIGQUERY_MODEL_NAME); + public void testGetModel() { + GetModel.getModel(BIGQUERY_DATASET_NAME, modelName); assertThat(bout.toString()).contains("Successfully retrieved model"); } } From 53149d5bbe1184ec3822b6683e1aab4d1b531d16 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 19 Jun 2020 18:55:33 +0530 Subject: [PATCH 0583/3441] refactor(samples): listmodels (#468) --- .../com/example/bigquery/ListModelsIT.java | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java index a94f4ea8b584..da0e19b26e93 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java @@ -21,21 +21,26 @@ import com.google.common.truth.Truth; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.UUID; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class ListModelsIT { + + private String modelName; private ByteArrayOutputStream bout; private PrintStream out; - private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); - private static void requireEnvVar(String varName) { + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); assertNotNull( "Environment variable " + varName + " is required to perform these tests.", System.getenv(varName)); + return value; } @BeforeClass @@ -48,10 +53,36 @@ public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); System.setOut(out); + + // Create a new model to be deleted + modelName = "MY_MODEL_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + String sql = + "CREATE MODEL `" + + BIGQUERY_DATASET_NAME + + "." + + modelName + + "`" + + "OPTIONS ( " + + "model_type='linear_reg', " + + "max_iteration=1, " + + "learn_rate=0.4, " + + "learn_rate_strategy='constant' " + + ") AS ( " + + " SELECT 'a' AS f1, 2.0 AS label " + + "UNION ALL " + + "SELECT 'b' AS f1, 3.8 AS label " + + ")"; + CreateModel.createModel(sql); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); } @After public void tearDown() { + // Clean up + DeleteModel.deleteModel(BIGQUERY_DATASET_NAME, modelName); System.setOut(null); } From 0ffbac349cc27ce72b06e05723e45a973b69cef1 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 19 Jun 2020 18:56:21 +0530 Subject: [PATCH 0584/3441] docs(samples): add query batch (#469) --- .../java/com/example/bigquery/QueryBatch.java | 70 +++++++++++++++++++ .../com/example/bigquery/QueryBatchIT.java | 51 ++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryBatchIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java b/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java new file mode 100644 index 000000000000..2c998b708756 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java @@ -0,0 +1,70 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_batch] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; + +// Sample to query batch in a table +public class QueryBatch { + + public static void runQueryBatch() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String query = + "SELECT corpus" + + " FROM `" + + projectId + + "." + + datasetName + + "." + + tableName + + " GROUP BY corpus;"; + queryBatch(query); + } + + public static void queryBatch(String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + // Run at batch priority, which won't count toward concurrent rate limit. + .setPriority(QueryJobConfiguration.Priority.BATCH) + .build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query batch performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query batch not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_batch] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryBatchIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryBatchIT.java new file mode 100644 index 000000000000..8836a6612f14 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryBatchIT.java @@ -0,0 +1,51 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryBatchIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryBatch() { + String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus"; + + QueryBatch.queryBatch(query); + assertThat(bout.toString()).contains("Query batch performed successfully."); + } +} From 500d60bf4ca5a8398000c623b257d725e3b71c91 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 19 Jun 2020 17:23:16 +0200 Subject: [PATCH 0585/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.116.3 (#464) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4a1098aa6c65..114fca5964d4 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.116.2 + 1.116.3 From c4e68486769bddb515023758e73eea5491b35e61 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 19 Jun 2020 17:23:43 +0200 Subject: [PATCH 0586/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.110.0 (#465) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 99f7cbee0d86..c489928d2cfc 100644 --- a/pom.xml +++ b/pom.xml @@ -117,7 +117,7 @@ com.google.cloud google-cloud-storage - 1.109.1 + 1.110.0 test From d099a5f876e973eb635099803a8dcfcbf62f7ee1 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 19 Jun 2020 08:24:14 -0700 Subject: [PATCH 0587/3441] chore: regen readme (#466) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 3 +++ synth.metadata | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bfda3f713054..034863294826 100644 --- a/README.md +++ b/README.md @@ -209,10 +209,12 @@ has instructions for running the samples. | Copy Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | | Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | | Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | +| Create Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | | Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | | Create Range Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | | Create Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | | Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | +| Delete Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | | Delete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | | Extract Table To Csv | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | | Extract Table To Json | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | @@ -230,6 +232,7 @@ has instructions for running the samples. | Load Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java) | | Load Table Clustered | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java) | | Nested Repeated Schema | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java) | +| Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/Query.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/Query.java) | | Query Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | | Query With Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | | Query With Positional Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | diff --git a/synth.metadata b/synth.metadata index 994bf5a86984..1600061e7ba6 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "68140d5e463304253a5cc28e6dae9cc73d1bf8d1" + "sha": "c41426b011d89ff1380e16f47319cf8100bf7a14" } }, { From ca508cfeac29a0aadba6041a9220ac9298680b08 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2020 15:34:07 +0000 Subject: [PATCH 0588/3441] chore: release 1.116.5-SNAPSHOT (#471) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5cfa2f31fb11..0bcf501e7378 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.3 + 1.116.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.3 + 1.116.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c489928d2cfc..1be0d969656c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.3 + 1.116.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.3 + 1.116.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7740b35fbf4a..6900dbfcab30 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.3 + 1.116.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 01f498b8268d..182b2dd2c2c6 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.3:1.116.3 \ No newline at end of file +google-cloud-bigquery:1.116.3:1.116.4-SNAPSHOT \ No newline at end of file From e63f06eeaa18386a8489b41cdad8d2c8e63fc146 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 19 Jun 2020 21:22:07 +0530 Subject: [PATCH 0589/3441] docs(samples): add create job (#470) Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [X] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [X] Ensure the tests and linter pass - [X] Code coverage does not decrease (if any source code was changed) - [X] Appropriate docs were updated (if necessary) --- .../java/com/example/bigquery/CreateJob.java | 71 +++++++++++++++++++ .../com/example/bigquery/CreateJobIT.java | 51 +++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateJob.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateJobIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java b/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java new file mode 100644 index 000000000000..aadf8c88f652 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_job] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.common.collect.ImmutableMap; +import java.util.UUID; + +// Sample to create a job +public class CreateJob { + + public static void runCreateJob() { + // TODO(developer): Replace these variables before running the sample. + String query = "SELECT country_name from `bigquery-public-data.utility_us.country_code_iso`"; + createJob(query); + } + + public static void createJob(String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Specify a job configuration to set optional job resource properties. + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .setLabels(ImmutableMap.of("example-label", "example-value")) + .build(); + + // The location and job name are optional, + // if both are not specified then client will auto-create. + String jobName = "jobId_" + UUID.randomUUID().toString(); + JobId jobId = JobId.newBuilder().setLocation("us").setJob(jobName).build(); + + // Create a job with job ID + bigquery.create(JobInfo.of(jobId, queryConfig)); + + // Get a job that was just created + Job job = bigquery.getJob(jobId); + if (job.getJobId().getJob().equals(jobId.getJob())) { + System.out.println("Job created successfully"); + } else { + System.out.println("Job was not created"); + } + } catch (BigQueryException e) { + System.out.println("Job was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_job] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateJobIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateJobIT.java new file mode 100644 index 000000000000..abd7017a44a0 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateJobIT.java @@ -0,0 +1,51 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class CreateJobIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testCreateJob() { + String query = "SELECT country_name from `bigquery-public-data.utility_us.country_code_iso`"; + + CreateJob.createJob(query); + assertThat(bout.toString()).contains("Job created successfully"); + } +} From 309735fec62934377d7fbb7ff9fb7ab2c7b1c91b Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 22 Jun 2020 11:26:51 -0700 Subject: [PATCH 0590/3441] chore: update README (#473) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 4 +++- synth.metadata | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 034863294826..8caa5591dd53 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.116.2 + 1.116.3 ``` @@ -209,6 +209,7 @@ has instructions for running the samples. | Copy Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | | Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | | Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | +| Create Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | | Create Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | | Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | | Create Range Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | @@ -233,6 +234,7 @@ has instructions for running the samples. | Load Table Clustered | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java) | | Nested Repeated Schema | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java) | | Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/Query.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/Query.java) | +| Query Batch | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | | Query Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | | Query With Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | | Query With Positional Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | diff --git a/synth.metadata b/synth.metadata index 1600061e7ba6..9c712d924d0d 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "c41426b011d89ff1380e16f47319cf8100bf7a14" + "sha": "e63f06eeaa18386a8489b41cdad8d2c8e63fc146" } }, { From 006e36cabd27333dae17887f2bbe231cc80ab22f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 22 Jun 2020 20:27:27 +0200 Subject: [PATCH 0591/3441] build(deps): update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.2.0 (#475) --- google-cloud-bigquery/pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0bcf501e7378..30ce87dc45ec 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -113,7 +113,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.1.0 + 3.2.0 add-source diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 114fca5964d4..de3efb1e0177 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -70,7 +70,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.1.0 + 3.2.0 add-snippets-source diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6900dbfcab30..87e98e0491ad 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -70,7 +70,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.1.0 + 3.2.0 add-snippets-source From 41c64c023ee4e77de801125da3216865a78daa39 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 23 Jun 2020 00:43:10 +0200 Subject: [PATCH 0592/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v7.0.1 (#476) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | patch | `7.0.0` -> `7.0.1` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d34a996f90e1..ca9710fa51a6 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 7.0.0 + 7.0.1 pom import From 43d369f29b7d5d8a4ca4799491acd942fa124eb0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 23 Jun 2020 09:14:10 -0700 Subject: [PATCH 0593/3441] ci(java): run dependency test on Java 8 and 11 (#474) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * ci(java): run dependency test on Java 8 and 11 Redo fix in #633 with proper jinja templating format Source-Author: Jeff Ching Source-Date: Fri Jun 19 16:52:15 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 4f2c9f752a94042472fc03c5bd9e06e89817d2bd Source-Link: https://github.com/googleapis/synthtool/commit/4f2c9f752a94042472fc03c5bd9e06e89817d2bd --- .github/workflows/ci.yaml | 5 ++++- .kokoro/dependencies.sh | 4 +++- synth.metadata | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 445b4bf82ffd..683022075665 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -36,11 +36,14 @@ jobs: JOB_TYPE: test dependencies: runs-on: ubuntu-latest + strategy: + matrix: + java: [8, 11] steps: - uses: actions/checkout@v2 - uses: actions/setup-java@v1 with: - java-version: 8 + java-version: ${{matrix.java}} - run: java -version - run: .kokoro/dependencies.sh linkage-monitor: diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index cf3bb4347e01..cee4f11e7547 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -41,8 +41,10 @@ echo "****************** DEPENDENCY LIST COMPLETENESS CHECK *******************" ## Run dependency list completeness check function completenessCheck() { # Output dep list with compile scope generated using the original pom + # Running mvn dependency:list on Java versions that support modules will also include the module of the dependency. + # This is stripped from the output as it is not present in the flattened pom. msg "Generating dependency list using original pom..." - mvn dependency:list -f pom.xml -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' | grep -v ':test$' >.org-list.txt + mvn dependency:list -f pom.xml -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' | sed -e s/\\s--\\smodule.*// | grep -v ':test$' >.org-list.txt # Output dep list generated using the flattened pom (test scope deps are ommitted) msg "Generating dependency list using flattened pom..." diff --git a/synth.metadata b/synth.metadata index 9c712d924d0d..5ab6c552df11 100644 --- a/synth.metadata +++ b/synth.metadata @@ -11,7 +11,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "c4f3059c27591eb24d6942a0e357ec94c80459f2" + "sha": "4f2c9f752a94042472fc03c5bd9e06e89817d2bd" } } ] From 05d47fc1d572467ec34fd4adb74ee8681640a4f5 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 23 Jun 2020 10:34:03 -0700 Subject: [PATCH 0594/3441] [CHANGE ME] Re-generated to pick up changes from self. (#477) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/26ec1231-fc23-4217-a1d8-d3014038092b/targets - [ ] To automatically regenerate this PR, check this box. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8caa5591dd53..2e9d59ec6072 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 7.0.0 + 7.0.1 pom import diff --git a/synth.metadata b/synth.metadata index 5ab6c552df11..45c5af71953f 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "e63f06eeaa18386a8489b41cdad8d2c8e63fc146" + "sha": "41c64c023ee4e77de801125da3216865a78daa39" } }, { From 12a2bea2c65d80a1c401cb65f3d826eb07fc3037 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 24 Jun 2020 00:17:51 +0530 Subject: [PATCH 0595/3441] docs(samples): add insert data types (#479) --- .../example/bigquery/InsertingDataTypes.java | 109 ++++++++++++++++++ .../bigquery/InsertingDataTypesIT.java | 109 ++++++++++++++++++ 2 files changed, 218 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java b/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java new file mode 100644 index 000000000000..163e6b625b39 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java @@ -0,0 +1,109 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_inserting_data_types] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryError; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.InsertAllRequest; +import com.google.cloud.bigquery.InsertAllResponse; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.TableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +// Sample to insert data types in a table +public class InsertingDataTypes { + + public static void runInsertingDataTypes() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + + // Inserting data types + Field name = Field.of("name", StandardSQLTypeName.STRING); + Field age = Field.of("age", StandardSQLTypeName.INT64); + Field school = + Field.newBuilder("school", StandardSQLTypeName.BYTES).setMode(Field.Mode.REPEATED).build(); + Field location = Field.of("location", StandardSQLTypeName.GEOGRAPHY); + Field measurements = + Field.newBuilder("measurements", StandardSQLTypeName.FLOAT64) + .setMode(Field.Mode.REPEATED) + .build(); + Field day = Field.of("day", StandardSQLTypeName.DATE); + Field firstTime = Field.of("firstTime", StandardSQLTypeName.DATETIME); + Field secondTime = Field.of("secondTime", StandardSQLTypeName.TIME); + Field thirdTime = Field.of("thirdTime", StandardSQLTypeName.TIMESTAMP); + Field datesTime = + Field.of("datesTime", StandardSQLTypeName.STRUCT, day, firstTime, secondTime, thirdTime); + Schema schema = Schema.of(name, age, school, location, measurements, datesTime); + + // Inserting Sample data + Map datesTimeContent = new HashMap<>(); + datesTimeContent.put("day", "2019-1-12"); + datesTimeContent.put("firstTime", "2019-02-17 11:24:00.000"); + datesTimeContent.put("secondTime", "14:00:00"); + datesTimeContent.put("thirdTime", "2020-04-27T18:07:25.356Z"); + + Map rowContent = new HashMap<>(); + rowContent.put("name", "Tom"); + rowContent.put("age", 30); + rowContent.put("school", "Test University".getBytes()); + rowContent.put("location", "POINT(1 2)"); + rowContent.put("measurements", new Float[] {50.05f, 100.5f}); + rowContent.put("datesTime", datesTimeContent); + + insertingDataTypes(datasetName, tableName, schema, rowContent); + } + + public static void insertingDataTypes( + String datasetName, String tableName, Schema schema, Map rowContent) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + TableDefinition tableDefinition = StandardTableDefinition.of(schema); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + + bigquery.create(tableInfo); + + InsertAllResponse response = + bigquery.insertAll(InsertAllRequest.newBuilder(tableId).addRow(rowContent).build()); + + if (response.hasErrors()) { + // If any of the insertions failed, this lets you inspect the errors + for (Map.Entry> entry : response.getInsertErrors().entrySet()) { + System.out.println("Response error: \n" + entry.getValue()); + } + } + System.out.println("Rows successfully inserted into table"); + } catch (BigQueryException e) { + System.out.println("Insert operation not performed \n" + e.toString()); + } + } +} +// [END bigquery_inserting_data_types] diff --git a/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java b/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java new file mode 100644 index 000000000000..72f69f22f7ac --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java @@ -0,0 +1,109 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class InsertingDataTypesIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testInsertingDataTypes() { + // Inserting data types + Field name = Field.of("name", StandardSQLTypeName.STRING); + Field age = Field.of("age", StandardSQLTypeName.INT64); + Field school = + Field.newBuilder("school", StandardSQLTypeName.BYTES).setMode(Field.Mode.REPEATED).build(); + Field location = Field.of("location", StandardSQLTypeName.GEOGRAPHY); + Field measurements = + Field.newBuilder("measurements", StandardSQLTypeName.FLOAT64) + .setMode(Field.Mode.REPEATED) + .build(); + Field day = Field.of("day", StandardSQLTypeName.DATE); + Field firstTime = Field.of("firstTime", StandardSQLTypeName.DATETIME); + Field secondTime = Field.of("secondTime", StandardSQLTypeName.TIME); + Field thirdTime = Field.of("thirdTime", StandardSQLTypeName.TIMESTAMP); + Field datesTime = + Field.of("datesTime", StandardSQLTypeName.STRUCT, day, firstTime, secondTime, thirdTime); + Schema schema = Schema.of(name, age, school, location, measurements, datesTime); + + // Inserting Sample data + Map datesTimeContent = new HashMap<>(); + datesTimeContent.put("day", "2019-1-12"); + datesTimeContent.put("firstTime", "2019-02-17 11:24:00.000"); + datesTimeContent.put("secondTime", "14:00:00"); + datesTimeContent.put("thirdTime", "2020-04-27T18:07:25.356Z"); + + Map rowContent = new HashMap<>(); + rowContent.put("name", "Tom"); + rowContent.put("age", 30); + rowContent.put("school", "Test University".getBytes()); + rowContent.put("location", "POINT(1 2)"); + rowContent.put("measurements", new Float[] {50.05f, 100.5f}); + rowContent.put("datesTime", datesTimeContent); + + InsertingDataTypes.insertingDataTypes(BIGQUERY_DATASET_NAME, tableName, schema, rowContent); + assertThat(bout.toString()).contains("Rows successfully inserted into table"); + } +} From d627a47af1f77966e2f901e87e8592113219391c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 26 Jun 2020 20:47:12 +0200 Subject: [PATCH 0596/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v8 (#483) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ca9710fa51a6..2ca932e5848a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 7.0.1 + 8.0.0 pom import From a880fe2b39f443b2e5e29d6288098c3db33fc6b5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 26 Jun 2020 20:47:47 +0200 Subject: [PATCH 0597/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.111.0 (#484) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1be0d969656c..5c650b9d127b 100644 --- a/pom.xml +++ b/pom.xml @@ -117,7 +117,7 @@ com.google.cloud google-cloud-storage - 1.110.0 + 1.111.0 test From d90d8dffa75290cb4db2ec99c8ddb1a9ba25daa6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 26 Jun 2020 20:48:04 +0200 Subject: [PATCH 0598/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.9.0 (#485) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5c650b9d127b..dd611df70edb 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.8.1 + 0.9.0 From 75c1379e0e4294387cb447c134eee0536b4d51d4 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 26 Jun 2020 11:48:40 -0700 Subject: [PATCH 0599/3441] chore: update readme(#486) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 1 + synth.metadata | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2e9d59ec6072..6dadfbf4d95d 100644 --- a/README.md +++ b/README.md @@ -222,6 +222,7 @@ has instructions for running the samples. | Get Dataset Info | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | | Get Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | | Get Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | +| Inserting Data Types | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | | List Datasets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | | List Models | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | | List Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | diff --git a/synth.metadata b/synth.metadata index 45c5af71953f..ea759ff506e7 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "41c64c023ee4e77de801125da3216865a78daa39" + "sha": "12a2bea2c65d80a1c401cb65f3d826eb07fc3037" } }, { From fdea80e17bddfc32a4541f240a25de5a3be01ef5 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Sat, 27 Jun 2020 00:18:58 +0530 Subject: [PATCH 0600/3441] docs(samples): add cancel job (#487) --- .../java/com/example/bigquery/CancelJob.java | 67 +++++++++++++++++++ .../com/example/bigquery/CancelJobIT.java | 51 ++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CancelJob.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CancelJobIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java b/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java new file mode 100644 index 000000000000..1761fe745d0a --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java @@ -0,0 +1,67 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_cancel_job] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.QueryJobConfiguration; +import java.util.UUID; + +// Sample to cancel a job +public class CancelJob { + + public static void runCancelJob() { + // TODO(developer): Replace these variables before running the sample. + String query = "SELECT country_name from `bigquery-public-data.utility_us.country_code_iso`"; + cancelJob(query); + } + + public static void cancelJob(String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Specify a job configuration to set optional job resource properties. + QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build(); + + // The location and job name are optional, + // if both are not specified then client will auto-create. + String jobName = "jobId_" + UUID.randomUUID().toString(); + JobId jobId = JobId.newBuilder().setLocation("us").setJob(jobName).build(); + + // Create a job with job ID + bigquery.create(JobInfo.of(jobId, queryConfig)); + + // Get a job that was just created + Job job = bigquery.getJob(jobId); + if (job.cancel()) { + System.out.println("Job canceled successfully"); + } else { + System.out.println("Job was not canceled"); + } + } catch (BigQueryException e) { + System.out.println("Job was not canceled.\n" + e.toString()); + } + } +} +// [END bigquery_cancel_job] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CancelJobIT.java b/samples/snippets/src/test/java/com/example/bigquery/CancelJobIT.java new file mode 100644 index 000000000000..507e05aad0f2 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CancelJobIT.java @@ -0,0 +1,51 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class CancelJobIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testCreateJob() { + String query = "SELECT country_name from `bigquery-public-data.utility_us.country_code_iso`"; + + CancelJob.cancelJob(query); + assertThat(bout.toString()).contains("Job canceled successfully"); + } +} From 9232370ff8c8755c9404ea319d9d9c9a397dd407 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Sat, 27 Jun 2020 00:19:10 +0530 Subject: [PATCH 0601/3441] docs(samples): add create table without schema (#488) --- .../bigquery/CreateTableWithoutSchema.java | 56 +++++++++++++++ .../bigquery/CreateTableWithoutSchemaIT.java | 71 +++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateTableWithoutSchemaIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java b/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java new file mode 100644 index 000000000000..a4c61898d154 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java @@ -0,0 +1,56 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_table_without_schema] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.TableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; + +// Sample to create a table without schema +public class CreateTableWithoutSchema { + + public static void runCreateTableWithoutSchema() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + createTableWithoutSchema(datasetName, tableName); + } + + public static void createTableWithoutSchema(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + TableDefinition tableDefinition = StandardTableDefinition.of(Schema.of()); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + + bigquery.create(tableInfo); + System.out.println("Table created successfully"); + } catch (BigQueryException e) { + System.out.println("Table was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_table_without_schema] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateTableWithoutSchemaIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateTableWithoutSchemaIT.java new file mode 100644 index 000000000000..49f9818dc413 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateTableWithoutSchemaIT.java @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateTableWithoutSchemaIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + tableName = "MY_TABLE_TEST" + UUID.randomUUID().toString().replace('-', '_'); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testCreateTableWithoutSchema() { + CreateTableWithoutSchema.createTableWithoutSchema(BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Table created successfully"); + } +} From 239aaa676b636232326e1e106ef7a88bce6dbc79 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 26 Jun 2020 22:42:13 -0700 Subject: [PATCH 0602/3441] chore: regenerate README versions (#491) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/9a39005f-0276-4a7f-98a1-26d6e52f1281/targets - [ ] To automatically regenerate this PR, check this box. --- README.md | 4 +++- synth.metadata | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6dadfbf4d95d..8764f14694f0 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 7.0.1 + 8.0.0 pom import @@ -205,6 +205,7 @@ has instructions for running the samples. | Auth Drive Scope | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | | Auth Snippets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | | Browse Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | +| Cancel Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | | Copy Multiple Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | | Copy Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | | Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | @@ -214,6 +215,7 @@ has instructions for running the samples. | Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | | Create Range Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | | Create Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | +| Create Table Without Schema | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | | Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | | Delete Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | | Delete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | diff --git a/synth.metadata b/synth.metadata index ea759ff506e7..b6f80d72ae71 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "12a2bea2c65d80a1c401cb65f3d826eb07fc3037" + "sha": "9232370ff8c8755c9404ea319d9d9c9a397dd407" } }, { From 84237c5b76e7a9953408b6aaca2653654d85d3e2 Mon Sep 17 00:00:00 2001 From: Irvi Aini <7439590+irvifa@users.noreply.github.com> Date: Mon, 29 Jun 2020 22:25:01 +0700 Subject: [PATCH 0603/3441] test: Improve code coverage for Acl (#490) * test: Improve code coverage for Acl In Acl there's still untested class particularly the IamMember. Also we can still improve the coverage by improving test for Group. * docs(sample: Fix flaky test for AddEmptyColumnIT Since nearly every table is using env var, there's a possibility of concurrency problem in the test. --- .../com/google/cloud/bigquery/AclTest.java | 17 +++++++++++++++++ .../example/bigquery/AddEmptyColumnIT.java | 19 +++++++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java index 52a8cfc8c9e4..c63599af2c22 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java @@ -23,6 +23,7 @@ import com.google.cloud.bigquery.Acl.Entity; import com.google.cloud.bigquery.Acl.Entity.Type; import com.google.cloud.bigquery.Acl.Group; +import com.google.cloud.bigquery.Acl.IamMember; import com.google.cloud.bigquery.Acl.Role; import com.google.cloud.bigquery.Acl.User; import com.google.cloud.bigquery.Acl.View; @@ -52,12 +53,20 @@ public void testGroupEntity() { public void testSpecialGroupEntity() { Group entity = Group.ofAllAuthenticatedUsers(); assertEquals("allAuthenticatedUsers", entity.getIdentifier()); + Dataset.Access pb = entity.toPb(); + assertEquals(entity, Entity.fromPb(pb)); entity = Group.ofProjectWriters(); assertEquals("projectWriters", entity.getIdentifier()); + pb = entity.toPb(); + assertEquals(entity, Entity.fromPb(pb)); entity = Group.ofProjectReaders(); assertEquals("projectReaders", entity.getIdentifier()); + pb = entity.toPb(); + assertEquals(entity, Entity.fromPb(pb)); entity = Group.ofProjectOwners(); assertEquals("projectOwners", entity.getIdentifier()); + pb = entity.toPb(); + assertEquals(entity, Entity.fromPb(pb)); } @Test @@ -79,6 +88,14 @@ public void testViewEntity() { assertEquals(entity, Entity.fromPb(pb)); } + @Test + public void testIamMemberEntity() { + IamMember entity = new IamMember("member1"); + assertEquals("member1", entity.getIamMember()); + Dataset.Access pb = entity.toPb(); + assertEquals(entity, Entity.fromPb(pb)); + } + @Test public void testOf() { Acl acl = Acl.of(Group.ofAllAuthenticatedUsers(), Role.READER); diff --git a/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java b/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java index da60b6581090..3ad047241214 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java @@ -22,6 +22,10 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,10 +36,9 @@ public class AddEmptyColumnIT { private PrintStream out; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); - private static final String BIGQUERY_TEST_TABLE = System.getenv("BIGQUERY_TEST_TABLE"); private static void requireEnvVar(String varName) { - assertNotNull( + assertNotNull ( "Environment variable " + varName + " is required to perform these tests.", System.getenv(varName)); } @@ -43,7 +46,6 @@ private static void requireEnvVar(String varName) { @BeforeClass public static void checkRequirements() { requireEnvVar("BIGQUERY_DATASET_NAME"); - requireEnvVar("BIGQUERY_TEST_TABLE"); } @Before @@ -60,8 +62,17 @@ public void tearDown() { @Test public void addEmptyColumn() { + String tableName = "AddEmptyColumnTestTable_" + UUID.randomUUID().toString().replace('-', '_'); + Schema schema = + Schema.of( + Field.of("booleanField", LegacySQLTypeName.BOOLEAN), + Field.of("numericField", LegacySQLTypeName.NUMERIC)); + + // Create table in dataset for testing + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + String randomColumnName = "new_" + UUID.randomUUID().toString().replace('-', '_'); - AddEmptyColumn.addEmptyColumn(randomColumnName, BIGQUERY_DATASET_NAME, BIGQUERY_TEST_TABLE); + AddEmptyColumn.addEmptyColumn(randomColumnName, BIGQUERY_DATASET_NAME, tableName); assertThat(bout.toString()).contains("Empty column successfully added to table"); } } From 2a106160e8d24bd1ebbd25bb8dd012a46ba1d7e4 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 29 Jun 2020 20:55:31 +0530 Subject: [PATCH 0604/3441] docs(samples): add dataset exists (#492) --- .../com/example/bigquery/DatasetExists.java | 52 +++++++++++++ .../com/example/bigquery/DatasetExistsIT.java | 77 +++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/DatasetExistsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java b/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java new file mode 100644 index 000000000000..71e9ccca4859 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java @@ -0,0 +1,52 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_dataset_exists] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetId; + +// Sample to check dataset exist +public class DatasetExists { + + public static void runDatasetExists() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + datasetExists(datasetName); + } + + public static void datasetExists(String datasetName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Dataset dataset = bigquery.getDataset(DatasetId.of(datasetName)); + if (dataset.exists()) { + System.out.println("Dataset already exist"); + } else { + System.out.println("Dataset not found"); + } + } catch (BigQueryException e) { + System.out.println("Dataset not found. \n" + e.toString()); + } + } +} +// [END bigquery_dataset_exists] diff --git a/samples/snippets/src/test/java/com/example/bigquery/DatasetExistsIT.java b/samples/snippets/src/test/java/com/example/bigquery/DatasetExistsIT.java new file mode 100644 index 000000000000..e4fee79f3e44 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/DatasetExistsIT.java @@ -0,0 +1,77 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class DatasetExistsIT { + + private String datasetName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + // create a temporary dataset + datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateDataset.createDataset(datasetName); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // delete a temporary dataset + DeleteDataset.deleteDataset(PROJECT_ID, datasetName); + System.setOut(null); + } + + @Test + public void testDatasetExists() { + DatasetExists.datasetExists(datasetName); + assertThat(bout.toString()).contains("Dataset already exist"); + } +} From 99c324c60a7825da7259a3173ee6b776d0c76825 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 29 Jun 2020 20:56:37 +0530 Subject: [PATCH 0605/3441] docs(samples): add create and delete routine (#493) --- .../com/example/bigquery/CreateRoutine.java | 68 +++++++++++++++++ .../com/example/bigquery/DeleteRoutine.java | 51 +++++++++++++ .../com/example/bigquery/CreateRoutineIT.java | 71 +++++++++++++++++ .../com/example/bigquery/DeleteRoutineIT.java | 76 +++++++++++++++++++ 4 files changed, 266 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java create mode 100644 samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateRoutineIT.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/DeleteRoutineIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java b/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java new file mode 100644 index 000000000000..de01d2ba6b90 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java @@ -0,0 +1,68 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_routine] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.RoutineArgument; +import com.google.cloud.bigquery.RoutineId; +import com.google.cloud.bigquery.RoutineInfo; +import com.google.cloud.bigquery.StandardSQLDataType; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.common.collect.ImmutableList; + +// Sample to create a routine +public class CreateRoutine { + + public static void runCreateRoutine() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String routineName = "MY_ROUTINE_NAME"; + createRoutine(datasetName, routineName); + } + + public static void createRoutine(String datasetName, String routineName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + RoutineId routineId = RoutineId.of(datasetName, routineName); + + RoutineInfo routineInfo = + RoutineInfo.newBuilder(routineId) + .setRoutineType("SCALAR_FUNCTION") + .setLanguage("SQL") + .setBody("x * 3") + .setArguments( + ImmutableList.of( + RoutineArgument.newBuilder() + .setName("x") + .setDataType( + StandardSQLDataType.newBuilder(StandardSQLTypeName.INT64).build()) + .build())) + .build(); + bigquery.create(routineInfo); + System.out.println("Routine created successfully"); + } catch (BigQueryException e) { + System.out.println("Routine was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_routine] diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java new file mode 100644 index 000000000000..6d26c0ee25a7 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java @@ -0,0 +1,51 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_delete_routine] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.RoutineId; + +// Sample to delete a routine +public class DeleteRoutine { + + public static void runDeleteRoutine() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String routineName = "MY_ROUTINE_NAME"; + deleteRoutine(datasetName, routineName); + } + + public static void deleteRoutine(String datasetName, String routineName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + boolean success = bigquery.delete(RoutineId.of(datasetName, routineName)); + if (success) { + System.out.println("Routine deleted successfully"); + } else { + System.out.println("Routine was not found"); + } + } catch (BigQueryException e) { + System.out.println("Routine was not deleted. \n" + e.toString()); + } + } +} +// [END bigquery_delete_routine] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineIT.java new file mode 100644 index 000000000000..30b4d68f4ee9 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineIT.java @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateRoutineIT { + + private String routineName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); + System.setOut(null); + } + + @Test + public void testCreateRoutine() { + CreateRoutine.createRoutine(BIGQUERY_DATASET_NAME, routineName); + assertThat(bout.toString()).contains("Routine created successfully"); + } +} diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteRoutineIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteRoutineIT.java new file mode 100644 index 000000000000..0c26cc00becd --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteRoutineIT.java @@ -0,0 +1,76 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class DeleteRoutineIT { + + private String routineName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // create a temporary routine + routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateRoutine.createRoutine(BIGQUERY_DATASET_NAME, routineName); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testDeleteRoutine() { + DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); + assertThat(bout.toString()).contains("Routine deleted successfully"); + } +} From 053ca07d3a9fe17a20c8ae4ab5ba0e01ded4d6ff Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 29 Jun 2020 22:04:50 -0700 Subject: [PATCH 0606/3441] changes without context (#494) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 3 +++ synth.metadata | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8764f14694f0..9be695507a69 100644 --- a/README.md +++ b/README.md @@ -214,10 +214,13 @@ has instructions for running the samples. | Create Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | | Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | | Create Range Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | +| Create Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java) | | Create Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | | Create Table Without Schema | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | +| Dataset Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | | Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | | Delete Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | +| Delete Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | | Delete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | | Extract Table To Csv | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | | Extract Table To Json | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | diff --git a/synth.metadata b/synth.metadata index b6f80d72ae71..ed4d08bc97eb 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "9232370ff8c8755c9404ea319d9d9c9a397dd407" + "sha": "99c324c60a7825da7259a3173ee6b776d0c76825" } }, { From f9554087f71cb830fde9598150d433d603e5be22 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 1 Jul 2020 22:46:35 +0530 Subject: [PATCH 0607/3441] docs(samples): add create routine ddl (#495) --- .../example/bigquery/CreateRoutineDDL.java | 69 +++++++++++++++++++ .../example/bigquery/CreateRoutineDDLIT.java | 67 ++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDDLIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java b/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java new file mode 100644 index 000000000000..eb3622dd2f7c --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java @@ -0,0 +1,69 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_routine_ddl] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.QueryJobConfiguration; + +// Sample to create a routine using DDL +public class CreateRoutineDDL { + + public static void runCreateRoutineDDL() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String datasetId = "MY_DATASET_ID"; + String routineId = "MY_ROUTINE_ID"; + String sql = + "CREATE FUNCTION " + + "`" + + projectId + + "." + + datasetId + + "." + + routineId + + "`" + + "( arr ARRAY>) AS ( (SELECT SUM(IF(elem.name = \"foo\",elem.val,null)) FROM UNNEST(arr) AS elem))"; + createRoutineDDL(sql); + } + + public static void createRoutineDDL(String sql) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(sql).build(); + + // create a routine using query and it will wait to complete job. + Job job = bigquery.create(JobInfo.of(config)); + job = job.waitFor(); + if (job.isDone()) { + System.out.println("Routine created successfully"); + } else { + System.out.println("Routine was not created"); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Routine was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_routine_ddl] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDDLIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDDLIT.java new file mode 100644 index 000000000000..bf4ca903f6e6 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDDLIT.java @@ -0,0 +1,67 @@ +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateRoutineDDLIT { + + private String routineName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); + System.setOut(null); + } + + @Test + public void testCreateRoutineDDL() { + String sql = + "CREATE FUNCTION " + + "`" + + PROJECT_ID + + "." + + BIGQUERY_DATASET_NAME + + "." + + routineName + + "`" + + "( arr ARRAY>) AS ( (SELECT SUM(IF(elem.name = \"foo\",elem.val,null)) FROM UNNEST(arr) AS elem))"; + CreateRoutineDDL.createRoutineDDL(sql); + assertThat(bout.toString()).contains("Routine created successfully"); + } +} From 62e002003d5120cf0a8f0ac60fa6682a1fe40dfd Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 1 Jul 2020 22:47:15 +0530 Subject: [PATCH 0608/3441] refactor: fix imports order and run code formatter (#496) --- .../com/example/bigquery/AddEmptyColumnIT.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java b/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java index 3ad047241214..ffb8871530dc 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java @@ -19,13 +19,12 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.TestCase.assertNotNull; -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; -import java.util.UUID; - import com.google.cloud.bigquery.Field; import com.google.cloud.bigquery.LegacySQLTypeName; import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -38,7 +37,7 @@ public class AddEmptyColumnIT { private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); private static void requireEnvVar(String varName) { - assertNotNull ( + assertNotNull( "Environment variable " + varName + " is required to perform these tests.", System.getenv(varName)); } @@ -64,9 +63,9 @@ public void tearDown() { public void addEmptyColumn() { String tableName = "AddEmptyColumnTestTable_" + UUID.randomUUID().toString().replace('-', '_'); Schema schema = - Schema.of( - Field.of("booleanField", LegacySQLTypeName.BOOLEAN), - Field.of("numericField", LegacySQLTypeName.NUMERIC)); + Schema.of( + Field.of("booleanField", LegacySQLTypeName.BOOLEAN), + Field.of("numericField", LegacySQLTypeName.NUMERIC)); // Create table in dataset for testing CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); From 09cf7f1a937c6c66b65ddc92cff1c29df63e6162 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 1 Jul 2020 22:47:51 +0530 Subject: [PATCH 0609/3441] docs(samples): add create view (#497) --- .../java/com/example/bigquery/CreateView.java | 59 ++++++++++++ .../com/example/bigquery/CreateViewIT.java | 93 +++++++++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateView.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateViewIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateView.java b/samples/snippets/src/main/java/com/example/bigquery/CreateView.java new file mode 100644 index 000000000000..aad3e6dd0afc --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateView.java @@ -0,0 +1,59 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_view] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.ViewDefinition; + +// Sample to create a view +public class CreateView { + + public static void runCreateView() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String viewName = "MY_VIEW_NAME"; + String query = + String.format( + "SELECT TimestampField, StringField, BooleanField FROM %s.%s", datasetName, tableName); + createView(datasetName, viewName, query); + } + + public static void createView(String datasetName, String viewName, String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, viewName); + + ViewDefinition viewDefinition = + ViewDefinition.newBuilder(query).setUseLegacySql(false).build(); + + bigquery.create(TableInfo.of(tableId, viewDefinition)); + System.out.println("View created successfully"); + } catch (BigQueryException e) { + System.out.println("View was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_view] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateViewIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateViewIT.java new file mode 100644 index 000000000000..02cfb623b335 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateViewIT.java @@ -0,0 +1,93 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateViewIT { + + private String tableName; + private String viewName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + viewName = "MY_VIEW_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + + Schema schema = + Schema.of( + Field.of("timestampField", StandardSQLTypeName.TIMESTAMP), + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, viewName); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testCreateView() { + String query = + String.format( + "SELECT timestampField, stringField, booleanField FROM %s.%s", + BIGQUERY_DATASET_NAME, tableName); + CreateView.createView(BIGQUERY_DATASET_NAME, viewName, query); + assertThat(bout.toString()).contains("View created successfully"); + } +} From 8b6457c010121a4c031611c2a896aa9147012ca3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 2 Jul 2020 01:02:09 +0200 Subject: [PATCH 0610/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200617-1.30.9 (#500) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dd611df70edb..027e05073359 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20200603-1.30.9 + v2-rev20200617-1.30.9 From c8c3b70caf89e22eaf0ae9703366f632db388d32 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 2 Jul 2020 16:55:26 -0700 Subject: [PATCH 0611/3441] chore: update template (#502) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 ++ synth.metadata | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9be695507a69..73489931edfd 100644 --- a/README.md +++ b/README.md @@ -215,8 +215,10 @@ has instructions for running the samples. | Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | | Create Range Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | | Create Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java) | +| Create Routine DDL | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java) | | Create Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | | Create Table Without Schema | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | +| Create View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | | Dataset Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | | Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | | Delete Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | diff --git a/synth.metadata b/synth.metadata index ed4d08bc97eb..6d4eeda837e6 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "99c324c60a7825da7259a3173ee6b776d0c76825" + "sha": "09cf7f1a937c6c66b65ddc92cff1c29df63e6162" } }, { From 3c1884b9f78c4f365dab662b7cfed0e1a253cb2d Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 3 Jul 2020 05:26:12 +0530 Subject: [PATCH 0612/3441] docs(samples): add get job (#503) --- .../java/com/example/bigquery/CreateJob.java | 6 +- .../java/com/example/bigquery/GetJob.java | 49 +++++++++++++++ .../java/com/example/bigquery/GetJobIT.java | 59 +++++++++++++++++++ 3 files changed, 111 insertions(+), 3 deletions(-) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/GetJob.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/GetJobIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java b/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java index aadf8c88f652..652b512a3ee3 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java @@ -59,12 +59,12 @@ public static void createJob(String query) { // Get a job that was just created Job job = bigquery.getJob(jobId); if (job.getJobId().getJob().equals(jobId.getJob())) { - System.out.println("Job created successfully"); + System.out.print("Job created successfully." + job.getJobId().getJob()); } else { - System.out.println("Job was not created"); + System.out.print("Job was not created"); } } catch (BigQueryException e) { - System.out.println("Job was not created. \n" + e.toString()); + System.out.print("Job was not created. \n" + e.toString()); } } } diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetJob.java b/samples/snippets/src/main/java/com/example/bigquery/GetJob.java new file mode 100644 index 000000000000..617d1c79dbe8 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/GetJob.java @@ -0,0 +1,49 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_get_job] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; + +// Sample to get a job +public class GetJob { + + public static void runGetJob() { + // TODO(developer): Replace these variables before running the sample. + String jobName = "MY_JOB_NAME"; + getJob(jobName); + } + + public static void getJob(String jobName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + JobId jobId = JobId.of(jobName); + Job job = bigquery.getJob(jobId); + System.out.println("Job retrieved successfully"); + } catch (BigQueryException e) { + System.out.println("Job not retrieved. \n" + e.toString()); + } + } +} +// [END bigquery_get_job] diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetJobIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetJobIT.java new file mode 100644 index 000000000000..0ae82ad91239 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/GetJobIT.java @@ -0,0 +1,59 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class GetJobIT { + + private String jobName; + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + String query = "SELECT country_name from `bigquery-public-data.utility_us.country_code_iso`"; + CreateJob.createJob(query); + String result = bout.toString(); + jobName = result.substring(result.lastIndexOf(".") + 1); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testGetJob() { + GetJob.getJob(jobName); + assertThat(bout.toString()).contains("Job retrieved successfully"); + } +} From dbe4d30691dcc8e607e58fe6c97b40f3a2091012 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 3 Jul 2020 05:26:49 +0530 Subject: [PATCH 0613/3441] docs(samples): add get routine (#504) --- .../java/com/example/bigquery/GetRoutine.java | 50 ++++++++++++ .../com/example/bigquery/GetRoutineIT.java | 78 +++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/GetRoutineIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java b/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java new file mode 100644 index 000000000000..6360c5fb8b65 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java @@ -0,0 +1,50 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_get_routine] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Routine; +import com.google.cloud.bigquery.RoutineId; + +// Sample to get a routine +public class GetRoutine { + + public static void runGetRoutine() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String routineName = "MY_ROUTINE_NAME"; + getRoutine(datasetName, routineName); + } + + public static void getRoutine(String datasetName, String routineName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + RoutineId routineId = RoutineId.of(datasetName, routineName); + Routine routine = bigquery.getRoutine(routineId); + System.out.println("Routine retrieved successfully" + routine.getDescription()); + } catch (BigQueryException e) { + System.out.println("Routine not retrieved. \n" + e.toString()); + } + } +} +// [END bigquery_get_routine] diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetRoutineIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetRoutineIT.java new file mode 100644 index 000000000000..a41fc4564f20 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/GetRoutineIT.java @@ -0,0 +1,78 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class GetRoutineIT { + + private String routineName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // create a temporary routine + routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateRoutine.createRoutine(BIGQUERY_DATASET_NAME, routineName); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); + System.setOut(null); + } + + @Test + public void testGetRoutine() { + GetRoutine.getRoutine(BIGQUERY_DATASET_NAME, routineName); + assertThat(bout.toString()).contains("Routine retrieved successfully"); + } +} From 92560a55d00f5aa2f79ad218fabae9c980c50a86 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 3 Jul 2020 04:16:05 +0200 Subject: [PATCH 0614/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.9.2 (#506) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | patch | `0.9.0` -> `0.9.2` | --- ### Release Notes
    googleapis/java-shared-config ### [`v0.9.2`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​092-httpswwwgithubcomgoogleapisjava-shared-configcomparev091v092-2020-07-02) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v0.9.1...v0.9.2) ### [`v0.9.1`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​091-httpswwwgithubcomgoogleapisjava-shared-configcomparev090v091-2020-07-01) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v0.9.0...v0.9.1)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 027e05073359..9da29be7d2e7 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.9.0 + 0.9.2 From 896184203dd3e4ccc6bd245bea7e2288f4e5b8cb Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 3 Jul 2020 01:05:30 -0400 Subject: [PATCH 0615/3441] deps: update shared-dependencies and google-cloud-storage versions (#505) * deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.2 * deps: update gcs to v1.111.1 Co-authored-by: Renovate Bot --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9da29be7d2e7..1659f15bc931 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.8.1 + 0.8.2 pom import @@ -117,7 +117,7 @@ com.google.cloud google-cloud-storage - 1.111.0 + 1.111.1 test From 8221e0c0f6eeb5a17b1fc4c0526ecdcaf19c4d5e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 3 Jul 2020 17:08:25 -0700 Subject: [PATCH 0616/3441] chore: update readme with more samples (#507) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 ++ synth.metadata | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 73489931edfd..4fea02ec7dee 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,9 @@ has instructions for running the samples. | Extract Table To Csv | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | | Extract Table To Json | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | | Get Dataset Info | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | +| Get Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetJob.java) | | Get Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | +| Get Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java) | | Get Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | | Inserting Data Types | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | | List Datasets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | diff --git a/synth.metadata b/synth.metadata index 6d4eeda837e6..8e28529f9067 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "09cf7f1a937c6c66b65ddc92cff1c29df63e6162" + "sha": "896184203dd3e4ccc6bd245bea7e2288f4e5b8cb" } }, { From 38b7ab2ba4a5797cb489714209465f5a9710c8da Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Sat, 4 Jul 2020 05:38:57 +0530 Subject: [PATCH 0617/3441] docs(samples): add get view (#508) --- .../java/com/example/bigquery/GetView.java | 50 ++++++++++ .../java/com/example/bigquery/GetViewIT.java | 97 +++++++++++++++++++ 2 files changed, 147 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/GetView.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/GetViewIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetView.java b/samples/snippets/src/main/java/com/example/bigquery/GetView.java new file mode 100644 index 000000000000..dd8a02d814e4 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/GetView.java @@ -0,0 +1,50 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_get_view] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; + +// Sample to get a view +public class GetView { + + public static void runGetView() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String viewName = "MY_VIEW_NAME"; + getView(datasetName, viewName); + } + + public static void getView(String datasetName, String viewName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, viewName); + Table view = bigquery.getTable(tableId); + System.out.println("View retrieved successfully" + view.getDescription()); + } catch (BigQueryException e) { + System.out.println("View not retrieved. \n" + e.toString()); + } + } +} +// [END bigquery_get_view] diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetViewIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetViewIT.java new file mode 100644 index 000000000000..ed681e3be277 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/GetViewIT.java @@ -0,0 +1,97 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class GetViewIT { + + private String tableName; + private String viewName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a new table to be deleted + tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + viewName = "MY_VIEW_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + + Schema schema = + Schema.of( + Field.of("timestampField", StandardSQLTypeName.TIMESTAMP), + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + + // Create a new view to be deleted + String query = + String.format( + "SELECT timestampField, stringField, booleanField FROM %s.%s", + BIGQUERY_DATASET_NAME, tableName); + CreateView.createView(BIGQUERY_DATASET_NAME, viewName, query); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, viewName); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testGetView() { + GetView.getView(BIGQUERY_DATASET_NAME, viewName); + assertThat(bout.toString()).contains("View retrieved successfully"); + } +} From 2a63c6611305ab0b7f92c9e66ffc0e9c8a90d7b6 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 6 Jul 2020 08:37:27 -0700 Subject: [PATCH 0618/3441] chore: update common template (#510) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 1 + synth.metadata | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4fea02ec7dee..187f1167b181 100644 --- a/README.md +++ b/README.md @@ -231,6 +231,7 @@ has instructions for running the samples. | Get Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | | Get Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java) | | Get Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | +| Get View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetView.java) | | Inserting Data Types | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | | List Datasets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | | List Models | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | diff --git a/synth.metadata b/synth.metadata index 8e28529f9067..c87bee2879d6 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "896184203dd3e4ccc6bd245bea7e2288f4e5b8cb" + "sha": "38b7ab2ba4a5797cb489714209465f5a9710c8da" } }, { From b5fd40fe1c826bfae96b19b797a3b5943762a22e Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 6 Jul 2020 21:46:03 +0530 Subject: [PATCH 0619/3441] docs(samples): add create cmek table (#511) Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [X] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [X] Ensure the tests and linter pass - [X] Code coverage does not decrease (if any source code was changed) - [X] Appropriate docs were updated (if necessary) --- .../com/example/bigquery/CreateTableCMEK.java | 71 ++++++++++++++++ .../example/bigquery/CreateTableCMEKIT.java | 83 +++++++++++++++++++ 2 files changed, 154 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateTableCMEKIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java new file mode 100644 index 000000000000..a089afd16ebe --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_table_cmek] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.EncryptionConfiguration; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.TableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; + +// Sample to create a cmek table +public class CreateTableCMEK { + + public static void runCreateTableCMEK() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String kmsKeyName = "MY_KEY_NAME"; + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + // i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey} + EncryptionConfiguration encryption = + EncryptionConfiguration.newBuilder().setKmsKeyName(kmsKeyName).build(); + createTableCMEK(datasetName, tableName, schema, encryption); + } + + public static void createTableCMEK( + String datasetName, String tableName, Schema schema, EncryptionConfiguration configuration) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + TableDefinition tableDefinition = StandardTableDefinition.of(schema); + TableInfo tableInfo = + TableInfo.newBuilder(tableId, tableDefinition) + .setEncryptionConfiguration(configuration) + .build(); + + bigquery.create(tableInfo); + System.out.println("Table cmek created successfully"); + } catch (BigQueryException e) { + System.out.println("Table cmek was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_table_cmek] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateTableCMEKIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateTableCMEKIT.java new file mode 100644 index 000000000000..773440ce54bb --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateTableCMEKIT.java @@ -0,0 +1,83 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.EncryptionConfiguration; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateTableCMEKIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + private static final String BIGQUERY_KMS_KEY_NAME = requireEnvVar("BIGQUERY_KMS_KEY_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + requireEnvVar("BIGQUERY_KMS_KEY_NAME"); + } + + @Before + public void setUp() { + tableName = "MY_TABLE_CMEK_TEST" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testCreateTableCMEK() { + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + EncryptionConfiguration configuration = + EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); + CreateTableCMEK.createTableCMEK(BIGQUERY_DATASET_NAME, tableName, schema, configuration); + assertThat(bout.toString()).contains("Table cmek created successfully"); + } +} From d6ab2d4563cac2989c511f7f2025976b73bb24bb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 7 Jul 2020 02:34:14 -0700 Subject: [PATCH 0620/3441] changes without context (#512) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 1 + synth.metadata | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 187f1167b181..5dee88c62ac1 100644 --- a/README.md +++ b/README.md @@ -217,6 +217,7 @@ has instructions for running the samples. | Create Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java) | | Create Routine DDL | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java) | | Create Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | +| Create Table CMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java) | | Create Table Without Schema | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | | Create View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | | Dataset Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | diff --git a/synth.metadata b/synth.metadata index c87bee2879d6..d36b0fe897dd 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "38b7ab2ba4a5797cb489714209465f5a9710c8da" + "sha": "b5fd40fe1c826bfae96b19b797a3b5943762a22e" } }, { From f356c715bd1783df389b0fb66a7bb8747375765c Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 7 Jul 2020 20:36:03 +0530 Subject: [PATCH 0621/3441] docs(samples): add copy cmek table (#513) --- .../com/example/bigquery/CopyTableCMEK.java | 86 +++++++++++++++ .../com/example/bigquery/CopyTableCMEKIT.java | 100 ++++++++++++++++++ 2 files changed, 186 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CopyTableCMEKIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java new file mode 100644 index 000000000000..74614c2d1711 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java @@ -0,0 +1,86 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_copy_table_cmek] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.CopyJobConfiguration; +import com.google.cloud.bigquery.EncryptionConfiguration; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.TableId; + +// Sample to copy a cmek table +public class CopyTableCMEK { + + public static void runCopyTableCMEK() { + // TODO(developer): Replace these variables before running the sample. + String destinationDatasetName = "MY_DESTINATION_DATASET_NAME"; + String destinationTableId = "MY_DESTINATION_TABLE_NAME"; + String sourceDatasetName = "MY_SOURCE_DATASET_NAME"; + String sourceTableId = "MY_SOURCE_TABLE_NAME"; + String kmsKeyName = "MY_KMS_KEY_NAME"; + EncryptionConfiguration encryption = + EncryptionConfiguration.newBuilder().setKmsKeyName(kmsKeyName).build(); + copyTableCMEK( + sourceDatasetName, sourceTableId, destinationDatasetName, destinationTableId, encryption); + } + + public static void copyTableCMEK( + String sourceDatasetName, + String sourceTableId, + String destinationDatasetName, + String destinationTableId, + EncryptionConfiguration encryption) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId sourceTable = TableId.of(sourceDatasetName, sourceTableId); + TableId destinationTable = TableId.of(destinationDatasetName, destinationTableId); + + // For more information on CopyJobConfiguration see: + // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigquery/JobConfiguration.html + CopyJobConfiguration configuration = + CopyJobConfiguration.newBuilder(destinationTable, sourceTable) + .setDestinationEncryptionConfiguration(encryption) + .build(); + + // For more information on Job see: + // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html + Job job = bigquery.create(JobInfo.of(configuration)); + + // Blocks until this job completes its execution, either failing or succeeding. + Job completedJob = job.waitFor(); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to copy table due to an error: \n" + job.getStatus().getError()); + return; + } + System.out.println("Table cmek copied successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Table cmek copying job was interrupted. \n" + e.toString()); + } + } +} +// [END bigquery_copy_table_cmek] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CopyTableCMEKIT.java b/samples/snippets/src/test/java/com/example/bigquery/CopyTableCMEKIT.java new file mode 100644 index 000000000000..659e94075a94 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CopyTableCMEKIT.java @@ -0,0 +1,100 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.EncryptionConfiguration; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CopyTableCMEKIT { + + private String sourceTableName; + private String destinationTableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + private static final String BIGQUERY_KMS_KEY_NAME = requireEnvVar("BIGQUERY_KMS_KEY_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + requireEnvVar("BIGQUERY_KMS_KEY_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + sourceTableName = "MY_SOURCE_TABLE_CMEK_TEST" + UUID.randomUUID().toString().substring(0, 8); + destinationTableName = + "MY_DESTINATION_TABLE_CMEK_TEST" + UUID.randomUUID().toString().substring(0, 8); + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + EncryptionConfiguration configuration = + EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); + CreateTableCMEK.createTableCMEK(BIGQUERY_DATASET_NAME, sourceTableName, schema, configuration); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, sourceTableName); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, destinationTableName); + System.setOut(null); + } + + @Test + public void testCopyTableCMEK() { + EncryptionConfiguration configuration = + EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); + CopyTableCMEK.copyTableCMEK( + BIGQUERY_DATASET_NAME, + sourceTableName, + BIGQUERY_DATASET_NAME, + destinationTableName, + configuration); + assertThat(bout.toString()).contains("Table cmek copied successfully."); + } +} From 71803cc867ecd179b5957e84a48f1c759768c322 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 7 Jul 2020 17:18:52 -0700 Subject: [PATCH 0622/3441] chore: update common template (#514) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 1 + synth.metadata | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5dee88c62ac1..dbfcb07291e6 100644 --- a/README.md +++ b/README.md @@ -208,6 +208,7 @@ has instructions for running the samples. | Cancel Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | | Copy Multiple Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | | Copy Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | +| Copy Table CMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java) | | Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | | Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | | Create Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | diff --git a/synth.metadata b/synth.metadata index d36b0fe897dd..5cfafaf997c8 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b5fd40fe1c826bfae96b19b797a3b5943762a22e" + "sha": "f356c715bd1783df389b0fb66a7bb8747375765c" } }, { From a0edebb4da976c6a4a0553f18c6e749f9190aa15 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 8 Jul 2020 23:34:34 +0530 Subject: [PATCH 0623/3441] docs(samples): add delete label on a dataset (#515) --- .../example/bigquery/DeleteLabelDataset.java | 55 +++++++++++++ .../bigquery/DeleteLabelDatasetIT.java | 82 +++++++++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java new file mode 100644 index 000000000000..7894cd0c3115 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java @@ -0,0 +1,55 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_delete_label_dataset] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import java.util.HashMap; +import java.util.Map; + +// Sample tp deletes a label on a dataset. +public class DeleteLabelDataset { + + public static void runDeleteLabelDataset() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + deleteLabelDataset(datasetName); + } + + public static void deleteLabelDataset(String datasetName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // This example dataset starts with existing label { color: 'green' } + Dataset dataset = bigquery.getDataset(datasetName); + // Add label to dataset + Map labels = new HashMap<>(); + labels.put("color", null); + + dataset.toBuilder().setLabels(labels).build().update(); + System.out.println("Dataset label deleted successfully"); + } catch (BigQueryException e) { + System.out.println("Dataset label was not deleted. \n" + e.toString()); + } + } +} +// [END bigquery_delete_label_dataset] diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java new file mode 100644 index 000000000000..9f60a204fc82 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java @@ -0,0 +1,82 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.DatasetInfo; +import com.google.common.collect.ImmutableMap; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.Map; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class DeleteLabelDatasetIT { + + private String datasetName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + // create a temporary dataset + datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); + Map labels = ImmutableMap.of("color", "green"); + BigQuery bigQuery = BigQueryOptions.getDefaultInstance().getService(); + DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).setLabels(labels).build(); + bigQuery.create(datasetInfo); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // delete a temporary dataset + DeleteDataset.deleteDataset(PROJECT_ID, datasetName); + System.setOut(null); + } + + @Test + public void testDeleteLabelDataset() { + DeleteLabelDataset.deleteLabelDataset(datasetName); + assertThat(bout.toString()).contains("Dataset label deleted successfully"); + } +} From 9c1b82a208d80c03d4330fda5382b54e7c8f06c6 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 8 Jul 2020 23:35:06 +0530 Subject: [PATCH 0624/3441] docs(samples): add delete label on a table (#516) --- .../example/bigquery/DeleteLabelTable.java | 57 ++++++++++++ .../example/bigquery/DeleteLabelTableIT.java | 87 +++++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java new file mode 100644 index 000000000000..043c13a915d7 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java @@ -0,0 +1,57 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_delete_label_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; +import java.util.HashMap; +import java.util.Map; + +// Sample tp deletes a label on a table. +public class DeleteLabelTable { + + public static void runDeleteLabelTable() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + deleteLabelTable(datasetName, tableName); + } + + public static void deleteLabelTable(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // This example table starts with existing label { color: 'green' } + Table table = bigquery.getTable(TableId.of(datasetName, tableName)); + // Add label to table + Map labels = new HashMap<>(); + labels.put("color", null); + + table.toBuilder().setLabels(labels).build().update(); + System.out.println("Table label deleted successfully"); + } catch (BigQueryException e) { + System.out.println("Table label was not deleted. \n" + e.toString()); + } + } +} +// [START bigquery_delete_label_table] diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java new file mode 100644 index 000000000000..f8f091b7b614 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java @@ -0,0 +1,87 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertNotNull; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.common.collect.ImmutableMap; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.Map; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class DeleteLabelTableIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + // create a temporary table + tableName = "MY_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); + Map labels = ImmutableMap.of("color", "green"); + BigQuery bigQuery = BigQueryOptions.getDefaultInstance().getService(); + TableId tableId = TableId.of(BIGQUERY_DATASET_NAME, tableName); + StandardTableDefinition tableDefinition = StandardTableDefinition.of(Schema.of()); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).setLabels(labels).build(); + bigQuery.create(tableInfo); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // delete a temporary table + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testDeleteLabelTable() { + DeleteLabelTable.deleteLabelTable(BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Table label deleted successfully"); + } +} From a0540e4792818853a502bf56b363b26a60c5f5d9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 8 Jul 2020 23:16:54 +0200 Subject: [PATCH 0625/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200625-1.30.9 (#517) This PR contains the following updates: | Package | Update | Change | |---|---|---| | com.google.apis:google-api-services-bigquery | patch | `v2-rev20200617-1.30.9` -> `v2-rev20200625-1.30.9` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1659f15bc931..120d05870703 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20200617-1.30.9 + v2-rev20200625-1.30.9
    From ac3f0a31563dc3a033dce005dbc58eec8c22bb6a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 9 Jul 2020 15:56:04 +0000 Subject: [PATCH 0626/3441] chore: release 1.116.5 (#472) :robot: I have created a release \*beep\* \*boop\* --- ### [1.116.5](https://www.github.com/googleapis/java-bigquery/compare/v1.116.4...v1.116.5) (2020-07-08) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20200617-1.30.9 ([#500](https://www.github.com/googleapis/java-bigquery/issues/500)) ([8b6457c](https://www.github.com/googleapis/java-bigquery/commit/8b6457c010121a4c031611c2a896aa9147012ca3)) * update dependency com.google.apis:google-api-services-bigquery to v2-rev20200625-1.30.9 ([#517](https://www.github.com/googleapis/java-bigquery/issues/517)) ([a0540e4](https://www.github.com/googleapis/java-bigquery/commit/a0540e4792818853a502bf56b363b26a60c5f5d9)) * update dependency com.google.cloud:google-cloud-storage to v1.110.0 ([#465](https://www.github.com/googleapis/java-bigquery/issues/465)) ([c4e6848](https://www.github.com/googleapis/java-bigquery/commit/c4e68486769bddb515023758e73eea5491b35e61)) * update dependency com.google.cloud:google-cloud-storage to v1.111.0 ([#484](https://www.github.com/googleapis/java-bigquery/issues/484)) ([a880fe2](https://www.github.com/googleapis/java-bigquery/commit/a880fe2b39f443b2e5e29d6288098c3db33fc6b5)) * update shared-dependencies and google-cloud-storage versions ([#505](https://www.github.com/googleapis/java-bigquery/issues/505)) ([8961842](https://www.github.com/googleapis/java-bigquery/commit/896184203dd3e4ccc6bd245bea7e2288f4e5b8cb)) ### Documentation * **samples:** add cancel job ([#487](https://www.github.com/googleapis/java-bigquery/issues/487)) ([fdea80e](https://www.github.com/googleapis/java-bigquery/commit/fdea80e17bddfc32a4541f240a25de5a3be01ef5)) * **samples:** add copy cmek table ([#513](https://www.github.com/googleapis/java-bigquery/issues/513)) ([f356c71](https://www.github.com/googleapis/java-bigquery/commit/f356c715bd1783df389b0fb66a7bb8747375765c)) * **samples:** add create and delete routine ([#493](https://www.github.com/googleapis/java-bigquery/issues/493)) ([99c324c](https://www.github.com/googleapis/java-bigquery/commit/99c324c60a7825da7259a3173ee6b776d0c76825)) * **samples:** add create cmek table ([#511](https://www.github.com/googleapis/java-bigquery/issues/511)) ([b5fd40f](https://www.github.com/googleapis/java-bigquery/commit/b5fd40fe1c826bfae96b19b797a3b5943762a22e)) * **samples:** add create job ([#470](https://www.github.com/googleapis/java-bigquery/issues/470)) ([e63f06e](https://www.github.com/googleapis/java-bigquery/commit/e63f06eeaa18386a8489b41cdad8d2c8e63fc146)) * **samples:** add create routine ddl ([#495](https://www.github.com/googleapis/java-bigquery/issues/495)) ([f955408](https://www.github.com/googleapis/java-bigquery/commit/f9554087f71cb830fde9598150d433d603e5be22)) * **samples:** add create table without schema ([#488](https://www.github.com/googleapis/java-bigquery/issues/488)) ([9232370](https://www.github.com/googleapis/java-bigquery/commit/9232370ff8c8755c9404ea319d9d9c9a397dd407)) * **samples:** add create view ([#497](https://www.github.com/googleapis/java-bigquery/issues/497)) ([09cf7f1](https://www.github.com/googleapis/java-bigquery/commit/09cf7f1a937c6c66b65ddc92cff1c29df63e6162)) * **samples:** add dataset exists ([#492](https://www.github.com/googleapis/java-bigquery/issues/492)) ([2a10616](https://www.github.com/googleapis/java-bigquery/commit/2a106160e8d24bd1ebbd25bb8dd012a46ba1d7e4)) * **samples:** add delete label on a dataset ([#515](https://www.github.com/googleapis/java-bigquery/issues/515)) ([a0edebb](https://www.github.com/googleapis/java-bigquery/commit/a0edebb4da976c6a4a0553f18c6e749f9190aa15)) * **samples:** add delete label on a table ([#516](https://www.github.com/googleapis/java-bigquery/issues/516)) ([9c1b82a](https://www.github.com/googleapis/java-bigquery/commit/9c1b82a208d80c03d4330fda5382b54e7c8f06c6)) * **samples:** add get job ([#503](https://www.github.com/googleapis/java-bigquery/issues/503)) ([3c1884b](https://www.github.com/googleapis/java-bigquery/commit/3c1884b9f78c4f365dab662b7cfed0e1a253cb2d)) * **samples:** add get routine ([#504](https://www.github.com/googleapis/java-bigquery/issues/504)) ([dbe4d30](https://www.github.com/googleapis/java-bigquery/commit/dbe4d30691dcc8e607e58fe6c97b40f3a2091012)) * **samples:** add get view ([#508](https://www.github.com/googleapis/java-bigquery/issues/508)) ([38b7ab2](https://www.github.com/googleapis/java-bigquery/commit/38b7ab2ba4a5797cb489714209465f5a9710c8da)) * **samples:** add insert data types ([#479](https://www.github.com/googleapis/java-bigquery/issues/479)) ([12a2bea](https://www.github.com/googleapis/java-bigquery/commit/12a2bea2c65d80a1c401cb65f3d826eb07fc3037)) * **samples:** add query batch ([#469](https://www.github.com/googleapis/java-bigquery/issues/469)) ([0ffbac3](https://www.github.com/googleapis/java-bigquery/commit/0ffbac349cc27ce72b06e05723e45a973b69cef1)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 31 +++++++++++++++++++++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 39 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 93accf7f7371..eaf6bddcab52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,36 @@ # Changelog +### [1.116.5](https://www.github.com/googleapis/java-bigquery/compare/v1.116.4...v1.116.5) (2020-07-08) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200617-1.30.9 ([#500](https://www.github.com/googleapis/java-bigquery/issues/500)) ([8b6457c](https://www.github.com/googleapis/java-bigquery/commit/8b6457c010121a4c031611c2a896aa9147012ca3)) +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200625-1.30.9 ([#517](https://www.github.com/googleapis/java-bigquery/issues/517)) ([a0540e4](https://www.github.com/googleapis/java-bigquery/commit/a0540e4792818853a502bf56b363b26a60c5f5d9)) +* update dependency com.google.cloud:google-cloud-storage to v1.110.0 ([#465](https://www.github.com/googleapis/java-bigquery/issues/465)) ([c4e6848](https://www.github.com/googleapis/java-bigquery/commit/c4e68486769bddb515023758e73eea5491b35e61)) +* update dependency com.google.cloud:google-cloud-storage to v1.111.0 ([#484](https://www.github.com/googleapis/java-bigquery/issues/484)) ([a880fe2](https://www.github.com/googleapis/java-bigquery/commit/a880fe2b39f443b2e5e29d6288098c3db33fc6b5)) +* update shared-dependencies and google-cloud-storage versions ([#505](https://www.github.com/googleapis/java-bigquery/issues/505)) ([8961842](https://www.github.com/googleapis/java-bigquery/commit/896184203dd3e4ccc6bd245bea7e2288f4e5b8cb)) + + +### Documentation + +* **samples:** add cancel job ([#487](https://www.github.com/googleapis/java-bigquery/issues/487)) ([fdea80e](https://www.github.com/googleapis/java-bigquery/commit/fdea80e17bddfc32a4541f240a25de5a3be01ef5)) +* **samples:** add copy cmek table ([#513](https://www.github.com/googleapis/java-bigquery/issues/513)) ([f356c71](https://www.github.com/googleapis/java-bigquery/commit/f356c715bd1783df389b0fb66a7bb8747375765c)) +* **samples:** add create and delete routine ([#493](https://www.github.com/googleapis/java-bigquery/issues/493)) ([99c324c](https://www.github.com/googleapis/java-bigquery/commit/99c324c60a7825da7259a3173ee6b776d0c76825)) +* **samples:** add create cmek table ([#511](https://www.github.com/googleapis/java-bigquery/issues/511)) ([b5fd40f](https://www.github.com/googleapis/java-bigquery/commit/b5fd40fe1c826bfae96b19b797a3b5943762a22e)) +* **samples:** add create job ([#470](https://www.github.com/googleapis/java-bigquery/issues/470)) ([e63f06e](https://www.github.com/googleapis/java-bigquery/commit/e63f06eeaa18386a8489b41cdad8d2c8e63fc146)) +* **samples:** add create routine ddl ([#495](https://www.github.com/googleapis/java-bigquery/issues/495)) ([f955408](https://www.github.com/googleapis/java-bigquery/commit/f9554087f71cb830fde9598150d433d603e5be22)) +* **samples:** add create table without schema ([#488](https://www.github.com/googleapis/java-bigquery/issues/488)) ([9232370](https://www.github.com/googleapis/java-bigquery/commit/9232370ff8c8755c9404ea319d9d9c9a397dd407)) +* **samples:** add create view ([#497](https://www.github.com/googleapis/java-bigquery/issues/497)) ([09cf7f1](https://www.github.com/googleapis/java-bigquery/commit/09cf7f1a937c6c66b65ddc92cff1c29df63e6162)) +* **samples:** add dataset exists ([#492](https://www.github.com/googleapis/java-bigquery/issues/492)) ([2a10616](https://www.github.com/googleapis/java-bigquery/commit/2a106160e8d24bd1ebbd25bb8dd012a46ba1d7e4)) +* **samples:** add delete label on a dataset ([#515](https://www.github.com/googleapis/java-bigquery/issues/515)) ([a0edebb](https://www.github.com/googleapis/java-bigquery/commit/a0edebb4da976c6a4a0553f18c6e749f9190aa15)) +* **samples:** add delete label on a table ([#516](https://www.github.com/googleapis/java-bigquery/issues/516)) ([9c1b82a](https://www.github.com/googleapis/java-bigquery/commit/9c1b82a208d80c03d4330fda5382b54e7c8f06c6)) +* **samples:** add get job ([#503](https://www.github.com/googleapis/java-bigquery/issues/503)) ([3c1884b](https://www.github.com/googleapis/java-bigquery/commit/3c1884b9f78c4f365dab662b7cfed0e1a253cb2d)) +* **samples:** add get routine ([#504](https://www.github.com/googleapis/java-bigquery/issues/504)) ([dbe4d30](https://www.github.com/googleapis/java-bigquery/commit/dbe4d30691dcc8e607e58fe6c97b40f3a2091012)) +* **samples:** add get view ([#508](https://www.github.com/googleapis/java-bigquery/issues/508)) ([38b7ab2](https://www.github.com/googleapis/java-bigquery/commit/38b7ab2ba4a5797cb489714209465f5a9710c8da)) +* **samples:** add insert data types ([#479](https://www.github.com/googleapis/java-bigquery/issues/479)) ([12a2bea](https://www.github.com/googleapis/java-bigquery/commit/12a2bea2c65d80a1c401cb65f3d826eb07fc3037)) +* **samples:** add query batch ([#469](https://www.github.com/googleapis/java-bigquery/issues/469)) ([0ffbac3](https://www.github.com/googleapis/java-bigquery/commit/0ffbac349cc27ce72b06e05723e45a973b69cef1)) + ### [1.116.4](https://www.github.com/googleapis/java-bigquery/compare/v1.116.3...v1.116.4) (2020-06-18) diff --git a/README.md b/README.md index dbfcb07291e6..e8305216dbcd 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.3' +compile 'com.google.cloud:google-cloud-bigquery:1.116.4' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.4" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 30ce87dc45ec..00798d1a4bfd 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.4-SNAPSHOT + 1.116.4 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.4-SNAPSHOT + 1.116.4 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 120d05870703..4da9df8ecbe6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.4-SNAPSHOT + 1.116.4 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.4-SNAPSHOT + 1.116.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 87e98e0491ad..47affd8b304e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.4-SNAPSHOT + 1.116.4 diff --git a/versions.txt b/versions.txt index 182b2dd2c2c6..6e8bbb7c8fd6 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.3:1.116.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.116.4:1.116.4 \ No newline at end of file From f77e74eb3bc65a6f860677e23151bff8db1e9157 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 9 Jul 2020 22:31:36 +0200 Subject: [PATCH 0627/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.116.4 (#520) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index de3efb1e0177..a9626a7d92ba 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.116.3 + 1.116.4 From 64de23a95736ffaaae7a05e0fd2c6f5f8c5c3665 Mon Sep 17 00:00:00 2001 From: shollyman Date: Thu, 9 Jul 2020 19:29:31 -0700 Subject: [PATCH 0628/3441] fix: handle malformed backend responses. (#522) When you delete a policy tag from a column in BigQuery, rather than eliding the policyTag message entirely, it will return an empty message (with no name field). This change treats such responses as equivalent to no PolicyTag message being present. --- .../main/java/com/google/cloud/bigquery/PolicyTags.java | 6 +++++- .../java/com/google/cloud/bigquery/PolicyTagsTest.java | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyTags.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyTags.java index a78fa92fbc3d..a66be88e1ae6 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyTags.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyTags.java @@ -60,6 +60,10 @@ com.google.api.services.bigquery.model.TableFieldSchema.PolicyTags toPb() { static PolicyTags fromPb( com.google.api.services.bigquery.model.TableFieldSchema.PolicyTags tagPb) { - return newBuilder().setNames(tagPb.getNames()).build(); + // Treat a PolicyTag message without a Names subfield as invalid. + if (tagPb.getNames() != null) { + return newBuilder().setNames(tagPb.getNames()).build(); + } + return null; } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java index 2136b2dab259..f23cb36c2dd9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java @@ -18,6 +18,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNull; import com.google.common.collect.ImmutableList; import java.util.List; @@ -46,6 +47,13 @@ public void testBuilder() { assertNotEquals(POLICY_TAGS, POLICIES); } + @Test + public void testWithoutNames() { + com.google.api.services.bigquery.model.TableFieldSchema.PolicyTags PARTIALTAG = + new com.google.api.services.bigquery.model.TableFieldSchema.PolicyTags(); + assertNull(PolicyTags.fromPb(PARTIALTAG)); + } + @Test public void testFromAndPb() { assertEquals(POLICY_TAGS, PolicyTags.fromPb(POLICY_TAGS.toPb())); From 20fa21cb844871b90c43f85b89610b02554f3ad7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2020 02:40:49 +0000 Subject: [PATCH 0629/3441] chore: release 1.116.6-SNAPSHOT (#521) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 00798d1a4bfd..b10f26170068 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.4 + 1.116.5-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.4 + 1.116.5-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4da9df8ecbe6..4c1a7637e1a1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.4 + 1.116.5-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.4 + 1.116.5-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 47affd8b304e..83d3d3f83033 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.4 + 1.116.5-SNAPSHOT diff --git a/versions.txt b/versions.txt index 6e8bbb7c8fd6..8d6b8a7f7caf 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.4:1.116.4 \ No newline at end of file +google-cloud-bigquery:1.116.4:1.116.5-SNAPSHOT \ No newline at end of file From 82341cbb12ad6f5e020b5ba15701f66f0cbbfa19 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 10 Jul 2020 04:41:15 +0200 Subject: [PATCH 0630/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.3 (#523) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4c1a7637e1a1..0ed42a1f8812 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.8.2 + 0.8.3 pom import From ca11fdc3ab7d0ff20ac43ea1fa6b39b8589260be Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 10 Jul 2020 19:32:43 +0530 Subject: [PATCH 0631/3441] refactor(samples): create a partition table (#525) --- .../bigquery/CreatePartitionedTable.java | 13 +++++++++---- .../bigquery/CreatePartitionedTableIT.java | 18 +++++++++--------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java index 1279d65ed400..e64010d5c19a 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java @@ -28,6 +28,7 @@ import com.google.cloud.bigquery.TableInfo; import com.google.cloud.bigquery.TimePartitioning; +// Sample to create a partition table public class CreatePartitionedTable { public static void runCreatePartitionedTable() { @@ -36,9 +37,9 @@ public static void runCreatePartitionedTable() { String tableName = "MY_TABLE_NAME"; Schema schema = Schema.of( - Field.of("stringField", StandardSQLTypeName.STRING), - Field.of("booleanField", StandardSQLTypeName.BOOL), - Field.of("dateField", StandardSQLTypeName.DATE)); + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); createPartitionedTable(datasetName, tableName, schema); } @@ -50,7 +51,11 @@ public static void createPartitionedTable(String datasetName, String tableName, TableId tableId = TableId.of(datasetName, tableName); - TimePartitioning partitioning = TimePartitioning.of(TimePartitioning.Type.DAY); + TimePartitioning partitioning = + TimePartitioning.newBuilder(TimePartitioning.Type.DAY) + .setField("date") // name of column to use for partitioning + .setExpirationMs(7776000000L) // 90 days + .build(); StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder() diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java index 35ab85b386ea..2e15e65e8a05 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java @@ -24,12 +24,15 @@ import com.google.cloud.bigquery.StandardSQLTypeName; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.UUID; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class CreatePartitionedTableIT { + + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; @@ -48,6 +51,7 @@ public static void checkRequirements() { @Before public void setUp() { + tableName = "MY_PARTITIONED_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); System.setOut(out); @@ -55,23 +59,19 @@ public void setUp() { @After public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); System.setOut(null); } @Test public void testCreatePartitionedTable() { - String tableName = "MY_PARTITIONED_TABLE"; Schema schema = Schema.of( - Field.of("stringField", StandardSQLTypeName.STRING), - Field.of("booleanField", StandardSQLTypeName.BOOL), - Field.of("dateField", StandardSQLTypeName.DATE)); - + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); CreatePartitionedTable.createPartitionedTable(BIGQUERY_DATASET_NAME, tableName, schema); - assertThat(bout.toString()).contains("Partitioned table created successfully"); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } From d775818bda5c3a9c310ce7747f575200ce72fd9d Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 10 Jul 2020 19:35:06 +0530 Subject: [PATCH 0632/3441] docs(samples): add label dataset (#526) --- .../com/example/bigquery/LabelDataset.java | 55 +++++++++++++ .../com/example/bigquery/LabelDatasetIT.java | 77 +++++++++++++++++++ 2 files changed, 132 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LabelDatasetIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java b/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java new file mode 100644 index 000000000000..c073fb26352d --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java @@ -0,0 +1,55 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_label_dataset] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import java.util.HashMap; +import java.util.Map; + +// Sample to updates a label on dataset +public class LabelDataset { + + public static void runLabelDataset() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + labelDataset(datasetName); + } + + public static void labelDataset(String datasetName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // This example dataset starts with existing label { color: 'green' } + Dataset dataset = bigquery.getDataset(datasetName); + // Add label to dataset + Map labels = new HashMap<>(); + labels.put("color", "green"); + + dataset.toBuilder().setLabels(labels).build().update(); + System.out.println("Label added successfully"); + } catch (BigQueryException e) { + System.out.println("Label was not added. \n" + e.toString()); + } + } +} +// [END bigquery_label_dataset] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LabelDatasetIT.java b/samples/snippets/src/test/java/com/example/bigquery/LabelDatasetIT.java new file mode 100644 index 000000000000..b7b13e5083cf --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LabelDatasetIT.java @@ -0,0 +1,77 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LabelDatasetIT { + + private String datasetName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + // create a temporary dataset + datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateDataset.createDataset(datasetName); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // delete a temporary dataset + DeleteDataset.deleteDataset(PROJECT_ID, datasetName); + System.setOut(null); + } + + @Test + public void testLabelDataset() { + LabelDataset.labelDataset(datasetName); + assertThat(bout.toString()).contains("Label added successfully"); + } +} From d7cf47d1a1f6eda47637e49983086d79ed1cd7ac Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 10 Jul 2020 20:48:17 +0530 Subject: [PATCH 0633/3441] docs(samples): add label table (#527) --- .../java/com/example/bigquery/LabelTable.java | 57 +++++++++++++ .../com/example/bigquery/LabelTableIT.java | 79 +++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LabelTable.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LabelTableIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java b/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java new file mode 100644 index 000000000000..2cc0f077a7ef --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java @@ -0,0 +1,57 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_label_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; +import java.util.HashMap; +import java.util.Map; + +// Sample to adds a label to an existing table +public class LabelTable { + + public static void runLabelTable() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + labelTable(datasetName, tableName); + } + + public static void labelTable(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // This example table starts with existing label { color: 'green' } + Table table = bigquery.getTable(TableId.of(datasetName, tableName)); + // Add label to table + Map labels = new HashMap<>(); + labels.put("color", "green"); + + table.toBuilder().setLabels(labels).build().update(); + System.out.println("Label added successfully"); + } catch (BigQueryException e) { + System.out.println("Label was not added. \n" + e.toString()); + } + } +} +// [END bigquery_label_table] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LabelTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/LabelTableIT.java new file mode 100644 index 000000000000..0de0612b358d --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LabelTableIT.java @@ -0,0 +1,79 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LabelTableIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // create a temporary table + tableName = "MY_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // delete a temporary table + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testLabelTable() { + LabelTable.labelTable(BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Label added successfully"); + } +} From f70b17a376312839bb2f588f79d4db91a8cd8f16 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 10 Jul 2020 20:56:08 +0530 Subject: [PATCH 0634/3441] refactor(samples): delete a label on a dataset (#528) Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [X] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [X] Ensure the tests and linter pass - [X] Code coverage does not decrease (if any source code was changed) - [X] Appropriate docs were updated (if necessary) --- .../example/bigquery/DeleteLabelDatasetIT.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java index 9f60a204fc82..956d1be2d653 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java @@ -19,13 +19,8 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.TestCase.assertNotNull; -import com.google.cloud.bigquery.BigQuery; -import com.google.cloud.bigquery.BigQueryOptions; -import com.google.cloud.bigquery.DatasetInfo; -import com.google.common.collect.ImmutableMap; import java.io.ByteArrayOutputStream; import java.io.PrintStream; -import java.util.Map; import java.util.UUID; import org.junit.After; import org.junit.Before; @@ -55,12 +50,14 @@ public static void checkRequirements() { @Before public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); // create a temporary dataset datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); - Map labels = ImmutableMap.of("color", "green"); - BigQuery bigQuery = BigQueryOptions.getDefaultInstance().getService(); - DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).setLabels(labels).build(); - bigQuery.create(datasetInfo); + CreateDataset.createDataset(datasetName); + // add a label on dataset + LabelDataset.labelDataset(datasetName); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); From d00cfd75ce0671fbc0850f868c01b404d1bf546f Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 10 Jul 2020 21:34:23 +0530 Subject: [PATCH 0635/3441] refactor(samples): delete a label on a table (#529) --- .../example/bigquery/DeleteLabelTableIT.java | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java index f8f091b7b614..4556042fa4e1 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java @@ -19,16 +19,9 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertNotNull; -import com.google.cloud.bigquery.BigQuery; -import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Schema; -import com.google.cloud.bigquery.StandardTableDefinition; -import com.google.cloud.bigquery.TableId; -import com.google.cloud.bigquery.TableInfo; -import com.google.common.collect.ImmutableMap; import java.io.ByteArrayOutputStream; import java.io.PrintStream; -import java.util.Map; import java.util.UUID; import org.junit.After; import org.junit.Before; @@ -58,14 +51,14 @@ public static void checkRequirements() { @Before public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); // create a temporary table tableName = "MY_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); - Map labels = ImmutableMap.of("color", "green"); - BigQuery bigQuery = BigQueryOptions.getDefaultInstance().getService(); - TableId tableId = TableId.of(BIGQUERY_DATASET_NAME, tableName); - StandardTableDefinition tableDefinition = StandardTableDefinition.of(Schema.of()); - TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).setLabels(labels).build(); - bigQuery.create(tableInfo); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + // add label on a table + LabelTable.labelTable(BIGQUERY_DATASET_NAME, tableName); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); From 37b8b81f7edb11d3c51826f58152b86f63c20dee Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2020 16:44:11 +0000 Subject: [PATCH 0636/3441] chore: release 1.116.6 (#524) :robot: I have created a release \*beep\* \*boop\* --- ### [1.116.6](https://www.github.com/googleapis/java-bigquery/compare/v1.116.5...v1.116.6) (2020-07-10) ### Bug Fixes * handle malformed backend responses. ([#522](https://www.github.com/googleapis/java-bigquery/issues/522)) ([64de23a](https://www.github.com/googleapis/java-bigquery/commit/64de23a95736ffaaae7a05e0fd2c6f5f8c5c3665)) ### Documentation * **samples:** add label dataset ([#526](https://www.github.com/googleapis/java-bigquery/issues/526)) ([d775818](https://www.github.com/googleapis/java-bigquery/commit/d775818bda5c3a9c310ce7747f575200ce72fd9d)) * **samples:** add label table ([#527](https://www.github.com/googleapis/java-bigquery/issues/527)) ([d7cf47d](https://www.github.com/googleapis/java-bigquery/commit/d7cf47d1a1f6eda47637e49983086d79ed1cd7ac)) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.3 ([#523](https://www.github.com/googleapis/java-bigquery/issues/523)) ([82341cb](https://www.github.com/googleapis/java-bigquery/commit/82341cbb12ad6f5e020b5ba15701f66f0cbbfa19)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 18 ++++++++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 26 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eaf6bddcab52..0f19047aa652 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +### [1.116.6](https://www.github.com/googleapis/java-bigquery/compare/v1.116.5...v1.116.6) (2020-07-10) + + +### Bug Fixes + +* handle malformed backend responses. ([#522](https://www.github.com/googleapis/java-bigquery/issues/522)) ([64de23a](https://www.github.com/googleapis/java-bigquery/commit/64de23a95736ffaaae7a05e0fd2c6f5f8c5c3665)) + + +### Documentation + +* **samples:** add label dataset ([#526](https://www.github.com/googleapis/java-bigquery/issues/526)) ([d775818](https://www.github.com/googleapis/java-bigquery/commit/d775818bda5c3a9c310ce7747f575200ce72fd9d)) +* **samples:** add label table ([#527](https://www.github.com/googleapis/java-bigquery/issues/527)) ([d7cf47d](https://www.github.com/googleapis/java-bigquery/commit/d7cf47d1a1f6eda47637e49983086d79ed1cd7ac)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.3 ([#523](https://www.github.com/googleapis/java-bigquery/issues/523)) ([82341cb](https://www.github.com/googleapis/java-bigquery/commit/82341cbb12ad6f5e020b5ba15701f66f0cbbfa19)) + ### [1.116.5](https://www.github.com/googleapis/java-bigquery/compare/v1.116.4...v1.116.5) (2020-07-08) diff --git a/README.md b/README.md index e8305216dbcd..2fccf21e7e25 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.4' +compile 'com.google.cloud:google-cloud-bigquery:1.116.5' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.4" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.5" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b10f26170068..50de07bd2727 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.5-SNAPSHOT + 1.116.5 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.5-SNAPSHOT + 1.116.5 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0ed42a1f8812..a475b9298625 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.5-SNAPSHOT + 1.116.5 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.5-SNAPSHOT + 1.116.5 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 83d3d3f83033..aa2b25ef5770 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.5-SNAPSHOT + 1.116.5 diff --git a/versions.txt b/versions.txt index 8d6b8a7f7caf..cfa472f3cee2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.4:1.116.5-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.116.5:1.116.5 \ No newline at end of file From 9b2aeb4d729b0719e19fcc054eabb08527dd4ac2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 10 Jul 2020 22:03:19 +0200 Subject: [PATCH 0637/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.111.2 (#531) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a475b9298625..1e886b0c78c5 100644 --- a/pom.xml +++ b/pom.xml @@ -117,7 +117,7 @@ com.google.cloud google-cloud-storage - 1.111.1 + 1.111.2 test From d5b4b496b062c6c7f402503524732381915fd688 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 11 Jul 2020 01:07:27 +0200 Subject: [PATCH 0638/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200625-1.30.10 (#533) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1e886b0c78c5..ba336310649d 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20200625-1.30.9 + v2-rev20200625-1.30.10 From d62a810803172a2f5755dce07a737b0649900b8c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2020 23:14:13 +0000 Subject: [PATCH 0639/3441] chore: release 1.116.7-SNAPSHOT (#532) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 50de07bd2727..414e8cc61149 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.5 + 1.116.6-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.5 + 1.116.6-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ba336310649d..3f33713cd941 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.5 + 1.116.6-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.5 + 1.116.6-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index aa2b25ef5770..3b81407be31b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.5 + 1.116.6-SNAPSHOT diff --git a/versions.txt b/versions.txt index cfa472f3cee2..5547c300142f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.5:1.116.5 \ No newline at end of file +google-cloud-bigquery:1.116.5:1.116.6-SNAPSHOT \ No newline at end of file From c7e11da2ba319cad19e3eabc351d25e8361937a5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 11 Jul 2020 01:50:09 +0000 Subject: [PATCH 0640/3441] chore: release 1.116.7 (#534) :robot: I have created a release \*beep\* \*boop\* --- ### [1.116.7](https://www.github.com/googleapis/java-bigquery/compare/v1.116.6...v1.116.7) (2020-07-10) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20200625-1.30.10 ([#533](https://www.github.com/googleapis/java-bigquery/issues/533)) ([d5b4b49](https://www.github.com/googleapis/java-bigquery/commit/d5b4b496b062c6c7f402503524732381915fd688)) * update dependency com.google.cloud:google-cloud-storage to v1.111.2 ([#531](https://www.github.com/googleapis/java-bigquery/issues/531)) ([9b2aeb4](https://www.github.com/googleapis/java-bigquery/commit/9b2aeb4d729b0719e19fcc054eabb08527dd4ac2)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 8 ++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f19047aa652..814982806d51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.116.7](https://www.github.com/googleapis/java-bigquery/compare/v1.116.6...v1.116.7) (2020-07-10) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200625-1.30.10 ([#533](https://www.github.com/googleapis/java-bigquery/issues/533)) ([d5b4b49](https://www.github.com/googleapis/java-bigquery/commit/d5b4b496b062c6c7f402503524732381915fd688)) +* update dependency com.google.cloud:google-cloud-storage to v1.111.2 ([#531](https://www.github.com/googleapis/java-bigquery/issues/531)) ([9b2aeb4](https://www.github.com/googleapis/java-bigquery/commit/9b2aeb4d729b0719e19fcc054eabb08527dd4ac2)) + ### [1.116.6](https://www.github.com/googleapis/java-bigquery/compare/v1.116.5...v1.116.6) (2020-07-10) diff --git a/README.md b/README.md index 2fccf21e7e25..a6eef33f8a7e 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.5' +compile 'com.google.cloud:google-cloud-bigquery:1.116.6' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.5" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.6" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 414e8cc61149..038f7762ce26 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.6-SNAPSHOT + 1.116.6 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.6-SNAPSHOT + 1.116.6 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3f33713cd941..c59a014b63a3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.6-SNAPSHOT + 1.116.6 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.6-SNAPSHOT + 1.116.6 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3b81407be31b..5d7062e2bc0e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.6-SNAPSHOT + 1.116.6 diff --git a/versions.txt b/versions.txt index 5547c300142f..07f4a4ab1c7e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.5:1.116.6-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.116.6:1.116.6 \ No newline at end of file From 8771aff78a1359f0cb054c07214c5a273fa2c768 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 11 Jul 2020 05:52:59 +0200 Subject: [PATCH 0641/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.116.6 (#535) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a9626a7d92ba..83ac122466d0 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.116.4 + 1.116.6 From 5cee131bd77c4ce10a579537a29f4d4cba8ddbf5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 11 Jul 2020 15:53:27 -0400 Subject: [PATCH 0642/3441] chore: release 1.116.8-SNAPSHOT (#536) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 038f7762ce26..0f62bddfe66b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.6 + 1.116.7-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.6 + 1.116.7-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c59a014b63a3..500d399215f6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.6 + 1.116.7-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.6 + 1.116.7-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5d7062e2bc0e..8f0c1a013c8a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.6 + 1.116.7-SNAPSHOT diff --git a/versions.txt b/versions.txt index 07f4a4ab1c7e..10a14157aefd 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.6:1.116.6 \ No newline at end of file +google-cloud-bigquery:1.116.6:1.116.7-SNAPSHOT \ No newline at end of file From dd1d7c0a8a539553b5e3403b6c1a88df054fa3cb Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 13 Jul 2020 14:30:04 -0400 Subject: [PATCH 0643/3441] chore: fix release changelog (#541) --- CHANGELOG.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 814982806d51..cb857c3c6e7d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -### [1.116.7](https://www.github.com/googleapis/java-bigquery/compare/v1.116.6...v1.116.7) (2020-07-10) +### [1.116.6](https://www.github.com/googleapis/java-bigquery/compare/v1.116.5...v1.116.6) (2020-07-10) ### Dependencies @@ -8,7 +8,7 @@ * update dependency com.google.apis:google-api-services-bigquery to v2-rev20200625-1.30.10 ([#533](https://www.github.com/googleapis/java-bigquery/issues/533)) ([d5b4b49](https://www.github.com/googleapis/java-bigquery/commit/d5b4b496b062c6c7f402503524732381915fd688)) * update dependency com.google.cloud:google-cloud-storage to v1.111.2 ([#531](https://www.github.com/googleapis/java-bigquery/issues/531)) ([9b2aeb4](https://www.github.com/googleapis/java-bigquery/commit/9b2aeb4d729b0719e19fcc054eabb08527dd4ac2)) -### [1.116.6](https://www.github.com/googleapis/java-bigquery/compare/v1.116.5...v1.116.6) (2020-07-10) +### [1.116.5](https://www.github.com/googleapis/java-bigquery/compare/v1.116.4...v1.116.5) (2020-07-10) ### Bug Fixes @@ -26,7 +26,7 @@ * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.3 ([#523](https://www.github.com/googleapis/java-bigquery/issues/523)) ([82341cb](https://www.github.com/googleapis/java-bigquery/commit/82341cbb12ad6f5e020b5ba15701f66f0cbbfa19)) -### [1.116.5](https://www.github.com/googleapis/java-bigquery/compare/v1.116.4...v1.116.5) (2020-07-08) +### [1.116.4](https://www.github.com/googleapis/java-bigquery/compare/v1.116.3...v1.116.4) (2020-07-08) ### Dependencies @@ -57,7 +57,7 @@ * **samples:** add insert data types ([#479](https://www.github.com/googleapis/java-bigquery/issues/479)) ([12a2bea](https://www.github.com/googleapis/java-bigquery/commit/12a2bea2c65d80a1c401cb65f3d826eb07fc3037)) * **samples:** add query batch ([#469](https://www.github.com/googleapis/java-bigquery/issues/469)) ([0ffbac3](https://www.github.com/googleapis/java-bigquery/commit/0ffbac349cc27ce72b06e05723e45a973b69cef1)) -### [1.116.4](https://www.github.com/googleapis/java-bigquery/compare/v1.116.3...v1.116.4) (2020-06-18) +### [1.116.3](https://www.github.com/googleapis/java-bigquery/compare/v1.116.2...v1.116.3) (2020-06-18) ### Documentation From 3f129a6a4fff2162d1aef5ba29b4fa6246793d97 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 14 Jul 2020 00:22:56 +0530 Subject: [PATCH 0644/3441] docs(samples): add extract compressed table (#538) * docs(samples): add extract compressed table * docs(samples): run formatter --- .../bigquery/ExtractTableCompressed.java | 87 +++++++++++++++++++ .../bigquery/ExtractTableCompressedIT.java | 73 ++++++++++++++++ 2 files changed, 160 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java new file mode 100644 index 000000000000..b30385ab17d2 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java @@ -0,0 +1,87 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_extract_table_compressed] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.ExtractJobConfiguration; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.TableId; + +// Sample to extract a compressed table +public class ExtractTableCompressed { + + public static void runExtractTableCompressed() { + // TODO(developer): Replace these variables before running the sample. + String projectName = "MY_PROJECT_NAME"; + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String bucketName = "MY-BUCKET-NAME"; + String destinationUri = "gs://" + bucketName + "/path/to/file"; + // For more information on export formats available see: + // https://cloud.google.com/bigquery/docs/exporting-data#export_formats_and_compression_types + String compressed = "gzip"; + // For more information on Job see: + // https://googleapis.dev/java/google-cloud-clients/latest/index.html?com/google/cloud/bigquery/package-summary.html + String dataFormat = "CSV"; + + extractTableCompressed( + projectName, datasetName, tableName, destinationUri, dataFormat, compressed); + } + + public static void extractTableCompressed( + String projectName, + String datasetName, + String tableName, + String destinationUri, + String dataFormat, + String compressed) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(projectName, datasetName, tableName); + + ExtractJobConfiguration extractConfig = + ExtractJobConfiguration.newBuilder(tableId, destinationUri) + .setCompression(compressed) + .setFormat(dataFormat) + .build(); + + Job job = bigquery.create(JobInfo.of(extractConfig)); + + // Blocks until this job completes its execution, either failing or succeeding. + Job completedJob = job.waitFor(); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to extract due to an error: \n" + job.getStatus().getError()); + return; + } + System.out.println("Table extract compressed successful"); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Table extraction job was interrupted. \n" + e.toString()); + } + } +} +// [END bigquery_extract_table_compressed] diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java new file mode 100644 index 000000000000..2a298e61eea0 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java @@ -0,0 +1,73 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ExtractTableCompressedIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String GCS_BUCKET = System.getenv("GCS_BUCKET"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GCS_BUCKET"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testExtractTableCompressed() { + String projectId = "bigquery-public-data"; + String datasetName = "samples"; + String tableName = "shakespeare"; + String destinationUri = "gs://" + GCS_BUCKET + "/extractTest.csv"; + String dataFormat = "CSV"; + String compressed = "gzip"; + + // Extract table content to GCS in CSV format and gzip compressed + ExtractTableCompressed.extractTableCompressed( + projectId, datasetName, tableName, destinationUri, dataFormat, compressed); + assertThat(bout.toString()).contains("Table extract compressed successful"); + } +} From 563157cc40727cb7cb9aed16dfbb956a668ead51 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 14 Jul 2020 00:23:31 +0530 Subject: [PATCH 0645/3441] docs(samples): add get dataset labels (#539) * docs(samples): add get dataset labels * docs(samples): run formatter --- .../example/bigquery/GetDatasetLabels.java | 49 ++++++++++++ .../example/bigquery/GetDatasetLabelsIT.java | 79 +++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/GetDatasetLabelsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java b/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java new file mode 100644 index 000000000000..82de732fd32b --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java @@ -0,0 +1,49 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_get_dataset_labels] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; + +// Sample to get dataset labels +public class GetDatasetLabels { + + public static void runGetDatasetLabels() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + getDatasetLabels(datasetName); + } + + public static void getDatasetLabels(String datasetName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Dataset dataset = bigquery.getDataset(datasetName); + dataset + .getLabels() + .forEach((key, value) -> System.out.println("Retrieved labels successfully")); + } catch (BigQueryException e) { + System.out.println("Label was not found. \n" + e.toString()); + } + } +} +// [END bigquery_get_dataset_labels] diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetDatasetLabelsIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetDatasetLabelsIT.java new file mode 100644 index 000000000000..f2661172d659 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/GetDatasetLabelsIT.java @@ -0,0 +1,79 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class GetDatasetLabelsIT { + + private String datasetName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + // create a temporary dataset + datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateDataset.createDataset(datasetName); + // add a label on dataset + LabelDataset.labelDataset(datasetName); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // delete a temporary dataset + DeleteDataset.deleteDataset(PROJECT_ID, datasetName); + System.setOut(null); + } + + @Test + public void testGetDatasetLabels() { + GetDatasetLabels.getDatasetLabels(datasetName); + assertThat(bout.toString()).contains("Retrieved labels successfully"); + } +} From a6d94913f74a6b4d29e9314a0652a9e3fa30aed9 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 14 Jul 2020 02:41:07 +0530 Subject: [PATCH 0646/3441] docs(samples): add get table labels (#540) --- .../com/example/bigquery/GetTableLabels.java | 52 +++++++++++++++ .../example/bigquery/GetTableLabelsIT.java | 64 +++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java b/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java new file mode 100644 index 000000000000..e3ef02b9bb72 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java @@ -0,0 +1,52 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_get_table_labels] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; + +// Sample to get table labels +public class GetTableLabels { + + public static void runGetTableLabels() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + getTableLabels(datasetName, tableName); + } + + public static void getTableLabels(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // This example table starts with existing label { color: 'green' } + Table table = bigquery.getTable(TableId.of(datasetName, tableName)); + table + .getLabels() + .forEach((key, value) -> System.out.println("Retrieved labels successfully")); + } catch (BigQueryException e) { + System.out.println("Label was not deleted. \n" + e.toString()); + } + } +} +// [END bigquery_get_table_labels] diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java new file mode 100644 index 000000000000..11de46c398bb --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java @@ -0,0 +1,64 @@ +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class GetTableLabelsIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + // create a temporary table + tableName = "MY_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + // add label on a table + LabelTable.labelTable(BIGQUERY_DATASET_NAME, tableName); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // delete a temporary table + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testGetTableLabels() { + GetTableLabels.getTableLabels(BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Retrieved labels successfully"); + } +} From f7f6e73ef82924fb0f7cbae5c871f1cd27620cc6 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 14 Jul 2020 21:50:06 +0530 Subject: [PATCH 0647/3441] fix(sample): region tag (#544) --- .../src/main/java/com/example/bigquery/DeleteLabelTable.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java index 043c13a915d7..088e50859382 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java @@ -54,4 +54,4 @@ public static void deleteLabelTable(String datasetName, String tableName) { } } } -// [START bigquery_delete_label_table] +// [END bigquery_delete_label_table] From 2cd81d4fb616588e9ed966f6dd32cd4615d305c4 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 14 Jul 2020 21:51:57 +0530 Subject: [PATCH 0648/3441] docs(samples): add list routines (#546) --- .../com/example/bigquery/ListRoutines.java | 55 +++++++++++++ .../com/example/bigquery/ListRoutinesIT.java | 78 +++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/ListRoutinesIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java b/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java new file mode 100644 index 000000000000..f7c3874272ec --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java @@ -0,0 +1,55 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_list_routines] +import com.google.api.gax.paging.Page; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Routine; + +// Sample to get list of routines +public class ListRoutines { + + public static void runListRoutines() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + listRoutines(datasetName); + } + + public static void listRoutines(String datasetName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Page routines = + bigquery.listRoutines(datasetName, BigQuery.RoutineListOption.pageSize(100)); + if (routines == null) { + System.out.println("Dataset does not contain any routines."); + return; + } + routines + .iterateAll() + .forEach(routine -> System.out.printf("Success! Routine ID: %s", routine.getRoutineId())); + } catch (BigQueryException e) { + System.out.println("Routines not listed in dataset due to error: \n" + e.toString()); + } + } +} +// [END bigquery_list_routines] diff --git a/samples/snippets/src/test/java/com/example/bigquery/ListRoutinesIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListRoutinesIT.java new file mode 100644 index 000000000000..de723e78b313 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/ListRoutinesIT.java @@ -0,0 +1,78 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ListRoutinesIT { + + private String routineName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a new routine to be deleted + routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateRoutine.createRoutine(BIGQUERY_DATASET_NAME, routineName); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); + System.setOut(null); + } + + @Test + public void testListRoutines() { + ListRoutines.listRoutines(BIGQUERY_DATASET_NAME); + assertThat(bout.toString()).contains("Success! Routine ID"); + } +} From 8d046e5b429355f881e630896ea29496ded6e609 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 14 Jul 2020 22:25:40 +0200 Subject: [PATCH 0649/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v8.1.0 (#548) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 2ca932e5848a..69fd21cae837 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 8.0.0 + 8.1.0 pom import From e084ce0d922daf449ebb8b9dfc916efa363bf995 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 15 Jul 2020 00:34:59 -0700 Subject: [PATCH 0650/3441] changes without context (#550) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 12 ++++++++++-- synth.metadata | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a6eef33f8a7e..b401da429fa3 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 8.0.0 + 8.1.0 pom import @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.116.3 + 1.116.6 ``` @@ -223,20 +223,28 @@ has instructions for running the samples. | Create View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | | Dataset Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | | Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | +| Delete Label Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | +| Delete Label Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java) | | Delete Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | | Delete Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | | Delete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | +| Extract Table Compressed | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java) | | Extract Table To Csv | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | | Extract Table To Json | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | | Get Dataset Info | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | +| Get Dataset Labels | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java) | | Get Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetJob.java) | | Get Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | | Get Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java) | | Get Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | +| Get Table Labels | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java) | | Get View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetView.java) | | Inserting Data Types | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | +| Label Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java) | +| Label Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LabelTable.java) | | List Datasets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | | List Models | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | +| List Routines | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | | List Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | | Load Csv From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | | Load Csv From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | diff --git a/synth.metadata b/synth.metadata index 5cfafaf997c8..97e50f4ed722 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "f356c715bd1783df389b0fb66a7bb8747375765c" + "sha": "8d046e5b429355f881e630896ea29496ded6e609" } }, { From 48cdc92b6f1e128b4f0c8c25cd9ea907ab77bd93 Mon Sep 17 00:00:00 2001 From: NuthanReddy Date: Wed, 15 Jul 2020 20:52:54 +0530 Subject: [PATCH 0651/3441] docs: correct comment (#553) --- .../src/main/java/com/example/bigquery/LoadCsvFromGcs.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java index 95c63164c5ac..45a29c19db49 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java @@ -45,7 +45,7 @@ public static void loadCsvFromGcs(String datasetName, String tableName, String s Table table = bigquery.getTable(datasetName, tableName); Job loadJob = table.load(FormatOptions.csv(), sourceUri); - // Load data from a GCS parquet file into the table + // Load data from a GCS CSV file into the table // Blocks until this load table job completes its execution, either failing or succeeding. Job completedJob = loadJob.waitFor(); From a0d7beab025a2895f0efc1e9888594e386a0a1b3 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 15 Jul 2020 21:31:14 +0530 Subject: [PATCH 0652/3441] docs(samples): add list dataset by label (#555) --- .../example/bigquery/ListDatasetsByLabel.java | 60 ++++++++++++++ .../bigquery/ListDatasetsByLabelIT.java | 80 +++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/ListDatasetsByLabelIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java b/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java new file mode 100644 index 000000000000..eccb9eada62d --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java @@ -0,0 +1,60 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_list_datasets_by_label] +import com.google.api.gax.paging.Page; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; + +// Sample to get list of datasets by label +public class ListDatasetsByLabel { + + public static void runListDatasetsByLabel() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String filter = "MY_LABEL_FILTER"; + listDatasetsByLabel(projectId, filter); + } + + public static void listDatasetsByLabel(String projectId, String filter) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Page datasets = + bigquery.listDatasets( + projectId, + BigQuery.DatasetListOption.pageSize(100), + BigQuery.DatasetListOption.labelFilter(filter)); // "labels.color:green" + if (datasets == null) { + System.out.println("Dataset does not contain any models"); + return; + } + datasets + .iterateAll() + .forEach( + dataset -> System.out.printf("Success! Dataset ID: %s ", dataset.getDatasetId())); + } catch (BigQueryException e) { + System.out.println("Project does not contain any datasets \n" + e.toString()); + } + } +} +// [END bigquery_list_datasets_by_label] diff --git a/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsByLabelIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsByLabelIT.java new file mode 100644 index 000000000000..bc6300acd75d --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsByLabelIT.java @@ -0,0 +1,80 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ListDatasetsByLabelIT { + + private String datasetName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + // create a temporary dataset + datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateDataset.createDataset(datasetName); + // add a label on dataset + LabelDataset.labelDataset(datasetName); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // delete a temporary dataset + DeleteDataset.deleteDataset(PROJECT_ID, datasetName); + System.setOut(null); + } + + @Test + public void testListDatasetsByLabel() { + String filter = "labels.color:green"; + ListDatasetsByLabel.listDatasetsByLabel(PROJECT_ID, filter); + assertThat(bout.toString()).contains("Success! Dataset ID"); + } +} From b87cecff3f41339b20382b26381c38c4d7150305 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 15 Jul 2020 22:31:54 +0530 Subject: [PATCH 0653/3441] docs(samples): add list jobs (#554) * docs(samples): add list jobs * docs(samples): update code --- .../java/com/example/bigquery/ListJobs.java | 50 +++++++++++++++ .../java/com/example/bigquery/ListJobsIT.java | 62 +++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/ListJobs.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/ListJobsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java b/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java new file mode 100644 index 000000000000..2c9399e47204 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java @@ -0,0 +1,50 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_list_jobs] +import com.google.api.gax.paging.Page; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Job; + +// Sample to get list of jobs +public class ListJobs { + + public static void runListJobs() { + listJobs(); + } + + public static void listJobs() { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Page jobs = bigquery.listJobs(BigQuery.JobListOption.pageSize(10)); + if (jobs == null) { + System.out.println("Dataset does not contain any jobs."); + return; + } + jobs.getValues().forEach(job -> System.out.printf("Success! Job ID: %s", job.getJobId())); + } catch (BigQueryException e) { + System.out.println("Jobs not listed in dataset due to error: \n" + e.toString()); + } + } +} +// [END bigquery_list_jobs] diff --git a/samples/snippets/src/test/java/com/example/bigquery/ListJobsIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListJobsIT.java new file mode 100644 index 000000000000..19871a92d8f9 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/ListJobsIT.java @@ -0,0 +1,62 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ListJobsIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a new job + String query = + "SELECT name" + + " FROM `bigquery-public-data.usa_names.usa_1910_2013`" + + " WHERE state = 'TX'" + + " LIMIT 100;"; + CreateJob.createJob(query); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + System.setOut(null); + } + + @Test + public void testListJobs() { + ListJobs.listJobs(); + assertThat(bout.toString()).contains("Success! Job ID"); + } +} From d51b539ec8a7dd701bf62be2ce2675b6cae8eee2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 16 Jul 2020 08:26:28 -0700 Subject: [PATCH 0654/3441] chore: regen readme for samples (#557) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 ++ synth.metadata | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b401da429fa3..f83035ab62c1 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,8 @@ has instructions for running the samples. | Label Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java) | | Label Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LabelTable.java) | | List Datasets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | +| List Datasets By Label | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java) | +| List Jobs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListJobs.java) | | List Models | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | | List Routines | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | | List Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | diff --git a/synth.metadata b/synth.metadata index 97e50f4ed722..a12ae25ecb5f 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "8d046e5b429355f881e630896ea29496ded6e609" + "sha": "b87cecff3f41339b20382b26381c38c4d7150305" } }, { From 925321881cde3edd187a9a442a26eb508535744a Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 17 Jul 2020 11:14:53 +0530 Subject: [PATCH 0655/3441] docs(samples): add create view ddl (#558) * docs(samples): add create view ddl * docs(samples): update ddl --- .../com/example/bigquery/DDLCreateView.java | 78 ++++++++++++++++ .../com/example/bigquery/DDLCreateViewIT.java | 92 +++++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/DDLCreateViewIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java b/samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java new file mode 100644 index 000000000000..89f23fac7e0f --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java @@ -0,0 +1,78 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_ddl_create_view] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.QueryJobConfiguration; + +// Sample to create a view using DDL +public class DDLCreateView { + + public static void runDDLCreateView() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String datasetId = "MY_DATASET_ID"; + String tableId = "MY_VIEW_ID"; + String ddl = + "CREATE VIEW " + + "`" + + projectId + + "." + + datasetId + + "." + + tableId + + "`" + + " OPTIONS(" + + " expiration_timestamp=TIMESTAMP_ADD(" + + " CURRENT_TIMESTAMP(), INTERVAL 48 HOUR)," + + " friendly_name=\"new_view\"," + + " description=\"a view that expires in 2 days\"," + + " labels=[(\"org_unit\", \"development\")]" + + " )" + + " AS SELECT name, state, year, number" + + " FROM `bigquery-public-data.usa_names.usa_1910_current`" + + " WHERE state LIKE 'W%'`"; + ddlCreateView(ddl); + } + + public static void ddlCreateView(String ddl) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(ddl).build(); + + // create a view using query and it will wait to complete job. + Job job = bigquery.create(JobInfo.of(config)); + job = job.waitFor(); + if (job.isDone()) { + System.out.println("View created successfully"); + } else { + System.out.println("View was not created"); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("View was not created. \n" + e.toString()); + } + } +} +// [END bigquery_ddl_create_view] diff --git a/samples/snippets/src/test/java/com/example/bigquery/DDLCreateViewIT.java b/samples/snippets/src/test/java/com/example/bigquery/DDLCreateViewIT.java new file mode 100644 index 000000000000..7d6e0dae131d --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/DDLCreateViewIT.java @@ -0,0 +1,92 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class DDLCreateViewIT { + + private String viewName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + viewName = "MY_VIEW_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, viewName); + System.setOut(null); + } + + @Test + public void testDDLCreateView() { + String sql = + "CREATE VIEW " + + "`" + + PROJECT_ID + + "." + + BIGQUERY_DATASET_NAME + + "." + + viewName + + "`" + + " OPTIONS(" + + " expiration_timestamp=TIMESTAMP_ADD(" + + " CURRENT_TIMESTAMP(), INTERVAL 48 HOUR)," + + " friendly_name=\"new_view\"," + + " description=\"a view that expires in 2 days\"," + + " labels=[(\"org_unit\", \"development\")]" + + " )" + + " AS SELECT name, state, year, number" + + " FROM `bigquery-public-data.usa_names.usa_1910_current`" + + " WHERE state LIKE 'W%'"; + DDLCreateView.ddlCreateView(sql); + assertThat(bout.toString()).contains("View created successfully"); + } +} From 65dffac6af316d0baca5cfbd2b3dd3fae323549d Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 17 Jul 2020 20:58:05 +0530 Subject: [PATCH 0656/3441] docs(samples): add auth user flow and query (#478) * docs(samples): add auth user flow and query * docs(samples): add dependencies * docs(samples): rename methods * docs(samples): address feedback * docs(samples): set auto * docs(samples): modified code and remove deps --- samples/install-without-bom/pom.xml | 10 ++ samples/snapshot/pom.xml | 12 +- samples/snippets/pom.xml | 10 ++ .../com/example/bigquery/AuthUserFlow.java | 122 +++++++++++++++++ .../com/example/bigquery/AuthUserQuery.java | 128 ++++++++++++++++++ 5 files changed, 280 insertions(+), 2 deletions(-) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java create mode 100644 samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 83ac122466d0..a22245325825 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -49,6 +49,16 @@ + + com.google.oauth-client + google-oauth-client-java6 + 1.30.6 + + + com.google.oauth-client + google-oauth-client-jetty + 1.30.6 + junit diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8f0c1a013c8a..2964d37d86c7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -47,7 +47,16 @@ 1.116.7-SNAPSHOT - + + com.google.oauth-client + google-oauth-client-java6 + 1.30.6 + + + com.google.oauth-client + google-oauth-client-jetty + 1.30.6 + junit @@ -61,7 +70,6 @@ 1.0.1 test - diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 69fd21cae837..d5dc4a1347a6 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -59,6 +59,16 @@ + + com.google.oauth-client + google-oauth-client-java6 + 1.30.6 + + + com.google.oauth-client + google-oauth-client-jetty + 1.30.6 + junit diff --git a/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java b/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java new file mode 100644 index 000000000000..4d2de24f4220 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java @@ -0,0 +1,122 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_auth_user_flow] +import com.google.api.client.auth.oauth2.Credential; +import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; +import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; +import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; +import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.json.JsonFactory; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.store.FileDataStoreFactory; +import com.google.api.gax.paging.Page; +import com.google.auth.oauth2.GoogleCredentials; +import com.google.auth.oauth2.UserCredentials; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.common.collect.ImmutableList; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.security.GeneralSecurityException; +import java.util.List; + +// Sample to authenticate by using a user credential +public class AuthUserFlow { + + private static final File DATA_STORE_DIR = + new File(AuthUserFlow.class.getResource("/").getPath(), "credentials"); + private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); + // i.e redirect_uri http://localhost:61984/Callback + private static final int LOCAL_RECEIVER_PORT = 61984; + + public static void runAuthUserFlow() { + // TODO(developer): Replace these variables before running the sample. + /** + * Download your OAuth2 configuration from the Google Developers Console API Credentials page. + * https://console.cloud.google.com/apis/credentials + */ + Path credentialsPath = Paths.get("path/to/your/client_secret.json"); + List scopes = ImmutableList.of("https://www.googleapis.com/auth/bigquery"); + authUserFlow(credentialsPath, scopes); + } + + public static void authUserFlow(Path credentialsPath, List selectedScopes) { + // Reading credentials file + try (InputStream inputStream = Files.newInputStream(credentialsPath)) { + + // Load client_secret.json file + GoogleClientSecrets clientSecrets = + GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(inputStream)); + String clientId = clientSecrets.getDetails().getClientId(); + String clientSecret = clientSecrets.getDetails().getClientSecret(); + + // Generate the url that will be used for the consent dialog. + GoogleAuthorizationCodeFlow flow = + new GoogleAuthorizationCodeFlow.Builder( + GoogleNetHttpTransport.newTrustedTransport(), + JSON_FACTORY, + clientSecrets, + selectedScopes) + .setDataStoreFactory(new FileDataStoreFactory(DATA_STORE_DIR)) + .setAccessType("offline") + .setApprovalPrompt("auto") + .build(); + + // Exchange an authorization code for refresh token + LocalServerReceiver receiver = + new LocalServerReceiver.Builder().setPort(LOCAL_RECEIVER_PORT).build(); + Credential credential = new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); + + // OAuth2 Credentials representing a user's identity and consent + GoogleCredentials credentials = + UserCredentials.newBuilder() + .setClientId(clientId) + .setClientSecret(clientSecret) + .setRefreshToken(credential.getRefreshToken()) + .build(); + + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = + BigQueryOptions.newBuilder().setCredentials(credentials).build().getService(); + + Page datasets = bigquery.listDatasets(BigQuery.DatasetListOption.pageSize(100)); + if (datasets == null) { + System.out.println("Dataset does not contain any models"); + return; + } + datasets + .iterateAll() + .forEach( + dataset -> System.out.printf("Success! Dataset ID: %s ", dataset.getDatasetId())); + + } catch (BigQueryException | IOException | GeneralSecurityException ex) { + System.out.println("Project does not contain any datasets \n" + ex.toString()); + } + } +} +// [END bigquery_auth_user_flow] diff --git a/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java b/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java new file mode 100644 index 000000000000..7be558659ae1 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java @@ -0,0 +1,128 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_auth_user_query] +import com.google.api.client.auth.oauth2.Credential; +import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; +import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; +import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; +import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.json.JsonFactory; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.store.FileDataStoreFactory; +import com.google.auth.oauth2.GoogleCredentials; +import com.google.auth.oauth2.UserCredentials; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; +import com.google.common.collect.ImmutableList; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.security.GeneralSecurityException; +import java.util.List; + +// Sample to query by using a user credential +public class AuthUserQuery { + + private static final File DATA_STORE_DIR = + new File(AuthUserQuery.class.getResource("/").getPath(), "credentials"); + private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); + // i.e redirect_uri http://localhost:61984/Callback + private static final int LOCAL_RECEIVER_PORT = 61984; + + public static void runAuthUserQuery() { + // TODO(developer): Replace these variables before running the sample. + /** + * Download your OAuth2 configuration from the Google Developers Console API Credentials page. + * https://console.cloud.google.com/apis/credentials + */ + Path credentialsPath = Paths.get("path/to/your/client_secret.json"); + List scopes = ImmutableList.of("https://www.googleapis.com/auth/bigquery"); + String query = + "SELECT name, SUM(number) as total" + + " FROM `bigquery-public-data.usa_names.usa_1910_current`" + + " WHERE name = 'William'" + + " GROUP BY name;"; + authUserQuery(credentialsPath, scopes, query); + } + + public static void authUserQuery( + Path credentialsPath, List selectedScopes, String query) { + // Reading credentials file + try (InputStream inputStream = Files.newInputStream(credentialsPath)) { + + // Load client_secret.json file + GoogleClientSecrets clientSecrets = + GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(inputStream)); + String clientId = clientSecrets.getDetails().getClientId(); + String clientSecret = clientSecrets.getDetails().getClientSecret(); + + // Generate the url that will be used for the consent dialog. + GoogleAuthorizationCodeFlow flow = + new GoogleAuthorizationCodeFlow.Builder( + GoogleNetHttpTransport.newTrustedTransport(), + JSON_FACTORY, + clientSecrets, + selectedScopes) + .setDataStoreFactory(new FileDataStoreFactory(DATA_STORE_DIR)) + .setAccessType("offline") + .setApprovalPrompt("auto") + .build(); + + // Exchange an authorization code for refresh token + LocalServerReceiver receiver = + new LocalServerReceiver.Builder().setPort(LOCAL_RECEIVER_PORT).build(); + Credential credential = new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); + + // OAuth2 Credentials representing a user's identity and consent + GoogleCredentials credentials = + UserCredentials.newBuilder() + .setClientId(clientId) + .setClientSecret(clientSecret) + .setRefreshToken(credential.getRefreshToken()) + .build(); + + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = + BigQueryOptions.newBuilder().setCredentials(credentials).build().getService(); + + QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query performed successfully."); + + } catch (BigQueryException | IOException | GeneralSecurityException | InterruptedException ex) { + System.out.println("Query not performed \n" + ex.toString()); + } + } +} +// [END bigquery_auth_user_query] From a049d2bbce44222faac9e6a8bc481e0c276611ec Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 17 Jul 2020 09:45:32 -0700 Subject: [PATCH 0657/3441] chore: update readme chore (#562) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 1 + synth.metadata | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f83035ab62c1..5e5d0416101f 100644 --- a/README.md +++ b/README.md @@ -221,6 +221,7 @@ has instructions for running the samples. | Create Table CMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java) | | Create Table Without Schema | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | | Create View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | +| DDL Create View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java) | | Dataset Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | | Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | | Delete Label Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | diff --git a/synth.metadata b/synth.metadata index a12ae25ecb5f..29681b44e4fe 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b87cecff3f41339b20382b26381c38c4d7150305" + "sha": "925321881cde3edd187a9a442a26eb508535744a" } }, { From 0c092e06cdf47882a38901e8e4814afa87c7eba4 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 17 Jul 2020 22:16:22 +0530 Subject: [PATCH 0658/3441] docs(samples): add grant view access (#563) * docs(samples): add grant view access * docs(samples): add comment --- .../com/example/bigquery/GrantViewAccess.java | 73 +++++++++++++ .../example/bigquery/GrantViewAccessIT.java | 103 ++++++++++++++++++ 2 files changed, 176 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java b/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java new file mode 100644 index 000000000000..72858af47b3a --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java @@ -0,0 +1,73 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_grant_view_access] +import com.google.cloud.bigquery.Acl; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.Table; +import java.util.ArrayList; +import java.util.List; + +// Sample to grant view access on dataset +public class GrantViewAccess { + + public static void runGrantViewAccess() { + // TODO(developer): Replace these variables before running the sample. + String srcDatasetId = "MY_DATASET_ID"; + String viewDatasetId = "MY_VIEW_DATASET_ID"; + String viewId = "MY_VIEW_ID"; + grantViewAccess(srcDatasetId, viewDatasetId, viewId); + } + + public static void grantViewAccess(String srcDatasetId, String viewDatasetId, String viewId) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Dataset srcDataset = bigquery.getDataset(DatasetId.of(srcDatasetId)); + Dataset viewDataset = bigquery.getDataset(DatasetId.of(viewDatasetId)); + Table view = viewDataset.get(viewId); + + // First, we'll add a group to the ACL for the dataset containing the view. This will allow + // users within that group to query the view, but they must have direct access to any tables + // referenced by the view. + List viewAcl = new ArrayList<>(); + viewAcl.addAll(viewDataset.getAcl()); + viewAcl.add(Acl.of(new Acl.Group("example-analyst-group@google.com"), Acl.Role.READER)); + viewDataset.toBuilder().setAcl(viewAcl).build().update(); + + // Now, we'll authorize a specific view against a source dataset, delegating access + // enforcement. Once this has been completed, members of the group previously added to the + // view dataset's ACL no longer require access to the source dataset to successfully query the + // view + List srcAcl = new ArrayList<>(); + srcAcl.addAll(srcDataset.getAcl()); + srcAcl.add(Acl.of(new Acl.View(view.getTableId()))); + srcDataset.toBuilder().setAcl(srcAcl).build().update(); + System.out.println("Grant view access successfully"); + } catch (BigQueryException e) { + System.out.println("Grant view access was not success. \n" + e.toString()); + } + } +} +// [END bigquery_grant_view_access] diff --git a/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java b/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java new file mode 100644 index 000000000000..9ee22a785c9f --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java @@ -0,0 +1,103 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class GrantViewAccessIT { + + private String datasetName; + private String tableName; + private String viewName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // create a temporary dataset, table and view to be deleted. + datasetName = "MY_DATASET_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + viewName = "MY_VIEW_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + + CreateDataset.createDataset(datasetName); + + Schema schema = + Schema.of( + Field.of("timestampField", StandardSQLTypeName.TIMESTAMP), + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + + String query = + String.format( + "SELECT timestampField, stringField, booleanField FROM %s.%s", + BIGQUERY_DATASET_NAME, tableName); + CreateView.createView(BIGQUERY_DATASET_NAME, viewName, query); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, viewName); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + DeleteDataset.deleteDataset(PROJECT_ID, datasetName); + System.setOut(null); + } + + @Test + public void testGrantViewAccess() { + GrantViewAccess.grantViewAccess(datasetName, BIGQUERY_DATASET_NAME, viewName); + assertThat(bout.toString()).contains("Grant view access successfully"); + } +} From 219f7a978ab83421917ec4eb0295af38f4a9dd04 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 17 Jul 2020 22:17:11 +0530 Subject: [PATCH 0659/3441] docs(samples): add load table from gcs using avro file (#564) --- .../com/example/bigquery/LoadAvroFromGCS.java | 66 +++++++++++++++++++ .../example/bigquery/LoadAvroFromGCSIT.java | 64 ++++++++++++++++++ 2 files changed, 130 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java b/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java new file mode 100644 index 000000000000..b69d2d8d42e5 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java @@ -0,0 +1,66 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_avro] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.TableId; + +// Sample to load Avro data from Cloud Storage into a new BigQuery table +public class LoadAvroFromGCS { + + public static void runLoadAvroFromGCS() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.avro"; + loadAvroFromGCS(datasetName, tableName, sourceUri); + } + + public static void loadAvroFromGCS(String datasetName, String tableName, String sourceUri) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + LoadJobConfiguration loadConfig = + LoadJobConfiguration.of(tableId, sourceUri, FormatOptions.avro()); + + // Load data from a GCS Avro file into the table + Job job = bigquery.create(JobInfo.of(loadConfig)); + // Blocks until this load table job completes its execution, either failing or succeeding. + job = job.waitFor(); + if (job.isDone()) { + System.out.println("Avro from GCS successfully loaded in a table"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_avro] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSIT.java new file mode 100644 index 000000000000..6ccbdea905dd --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSIT.java @@ -0,0 +1,64 @@ +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadAvroFromGCSIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = "MY_LOAD_AVRO_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void loadLoadAvroFromGCS() { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.avro"; + LoadAvroFromGCS.loadAvroFromGCS(BIGQUERY_DATASET_NAME, tableName, sourceUri); + assertThat(bout.toString()).contains("Avro from GCS successfully loaded in a table"); + } +} From 5fd73eeb5b5d8c91154c23642737c9ece37b1750 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 17 Jul 2020 18:47:32 +0200 Subject: [PATCH 0660/3441] deps: update core transport dependencies to v1.31.0 (#565) --- samples/install-without-bom/pom.xml | 4 ++-- samples/snapshot/pom.xml | 4 ++-- samples/snippets/pom.xml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a22245325825..1ae56b0e0ab0 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,12 +52,12 @@ com.google.oauth-client google-oauth-client-java6 - 1.30.6 + 1.31.0 com.google.oauth-client google-oauth-client-jetty - 1.30.6 + 1.31.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2964d37d86c7..9d63130d8f83 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,12 +50,12 @@ com.google.oauth-client google-oauth-client-java6 - 1.30.6 + 1.31.0 com.google.oauth-client google-oauth-client-jetty - 1.30.6 + 1.31.0 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d5dc4a1347a6..58e3bef52113 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -62,12 +62,12 @@ com.google.oauth-client google-oauth-client-java6 - 1.30.6 + 1.31.0 com.google.oauth-client google-oauth-client-jetty - 1.30.6 + 1.31.0 From 4b3c4f7c66dd77a8ffd49ac548fd13534f4c527a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 20 Jul 2020 02:45:13 -0700 Subject: [PATCH 0661/3441] changes without context (#566) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 4 ++++ synth.metadata | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5e5d0416101f..3d084a4929bb 100644 --- a/README.md +++ b/README.md @@ -204,6 +204,8 @@ has instructions for running the samples. | Add Empty Column | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | | Auth Drive Scope | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | | Auth Snippets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | +| Auth User Flow | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | +| Auth User Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java) | | Browse Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | | Cancel Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | | Copy Multiple Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | @@ -240,6 +242,7 @@ has instructions for running the samples. | Get Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | | Get Table Labels | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java) | | Get View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetView.java) | +| Grant View Access | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java) | | Inserting Data Types | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | | Label Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java) | | Label Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LabelTable.java) | @@ -249,6 +252,7 @@ has instructions for running the samples. | List Models | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | | List Routines | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | | List Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | +| Load Avro From GCS | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java) | | Load Csv From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | | Load Csv From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | | Load Local File | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | diff --git a/synth.metadata b/synth.metadata index 29681b44e4fe..728e4ff44854 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "925321881cde3edd187a9a442a26eb508535744a" + "sha": "5fd73eeb5b5d8c91154c23642737c9ece37b1750" } }, { From 3d658210650d2849c86df96dccd3587e95a6f4a6 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 20 Jul 2020 20:55:04 +0530 Subject: [PATCH 0662/3441] docs(samples): add load json file from gcs into a table (#568) --- .../com/example/bigquery/LoadJsonFromGCS.java | 77 +++++++++++++++++ .../example/bigquery/LoadJsonFromGCSIT.java | 86 +++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java new file mode 100644 index 000000000000..df3681d9133c --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java @@ -0,0 +1,77 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_json] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableId; + +// Sample to load JSON data from Cloud Storage into a new BigQuery table +public class LoadJsonFromGCS { + + public static void runLoadJsonFromGCS() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + loadJsonFromGCS(datasetName, tableName, sourceUri, schema); + } + + public static void loadJsonFromGCS( + String datasetName, String tableName, String sourceUri, Schema schema) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + LoadJobConfiguration loadConfig = + LoadJobConfiguration.newBuilder(tableId, sourceUri) + .setFormatOptions(FormatOptions.json()) + .setSchema(schema) + .build(); + + // Load data from a GCS JSON file into the table + Job job = bigquery.create(JobInfo.of(loadConfig)); + // Blocks until this load table job completes its execution, either failing or succeeding. + job = job.waitFor(); + if (job.isDone()) { + System.out.println("Json from GCS successfully loaded in a table"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_json] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSIT.java new file mode 100644 index 000000000000..8b2cf28d9120 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSIT.java @@ -0,0 +1,86 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadJsonFromGCSIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = "MY_LOAD_JSON_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void loadLoadJsonFromGCS() { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + LoadJsonFromGCS.loadJsonFromGCS(BIGQUERY_DATASET_NAME, tableName, sourceUri, schema); + assertThat(bout.toString()).contains("Json from GCS successfully loaded in a table"); + } +} From 259d470ecadc9f384920164c8a2f45643cff130a Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 20 Jul 2020 20:57:13 +0530 Subject: [PATCH 0663/3441] docs(samples): add load json file from gcs into a table with autodetect schema (#569) --- .../bigquery/LoadJsonFromGCSAutodetect.java | 70 ++++++++++++++++ .../bigquery/LoadJsonFromGCSAutodetectIT.java | 83 +++++++++++++++++++ 2 files changed, 153 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSAutodetectIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java new file mode 100644 index 000000000000..b8fab0b5c05e --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java @@ -0,0 +1,70 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_json_autodetect] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.TableId; + +// Sample to load JSON data with autodetect schema from Cloud Storage into a new BigQuery table +public class LoadJsonFromGCSAutodetect { + + public static void runLoadJsonFromGCSAutodetect() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; + loadJsonFromGCSAutodetect(datasetName, tableName, sourceUri); + } + + public static void loadJsonFromGCSAutodetect( + String datasetName, String tableName, String sourceUri) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + LoadJobConfiguration loadConfig = + LoadJobConfiguration.newBuilder(tableId, sourceUri) + .setFormatOptions(FormatOptions.json()) + .setAutodetect(true) + .build(); + + // Load data from a GCS JSON file into the table + Job job = bigquery.create(JobInfo.of(loadConfig)); + // Blocks until this load table job completes its execution, either failing or succeeding. + job = job.waitFor(); + if (job.isDone()) { + System.out.println("Json Autodetect from GCS successfully loaded in a table"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_json_autodetect] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSAutodetectIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSAutodetectIT.java new file mode 100644 index 000000000000..bc46a402183e --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSAutodetectIT.java @@ -0,0 +1,83 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadJsonFromGCSAutodetectIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = + "MY_LOAD_JSON_TABLE_AUTODETECT_FROM_GCS_TEST_" + + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void loadLoadJsonFromGCSAutodetect() { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; + LoadJsonFromGCSAutodetect.loadJsonFromGCSAutodetect( + BIGQUERY_DATASET_NAME, tableName, sourceUri); + assertThat(bout.toString()).contains("Json Autodetect from GCS successfully loaded in a table"); + } +} From fa998baa32437a5e39670c5c7399c0945de56d52 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 20 Jul 2020 20:59:11 +0530 Subject: [PATCH 0664/3441] docs(samples): add load avro table with truncate from gcs (#567) --- .../bigquery/LoadAvroFromGCSTruncate.java | 71 ++++++++++++++++ .../bigquery/LoadAvroFromGCSTruncateIT.java | 81 +++++++++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSTruncateIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java b/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java new file mode 100644 index 000000000000..d6fdfc1ec5f6 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_avro_truncate] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.TableId; + +// Sample to overwrite the BigQuery table data by loading a AVRO file from GCS +public class LoadAvroFromGCSTruncate { + + public static void runLoadAvroFromGCSTruncate() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.avro"; + loadAvroFromGCSTruncate(datasetName, tableName, sourceUri); + } + + public static void loadAvroFromGCSTruncate( + String datasetName, String tableName, String sourceUri) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + LoadJobConfiguration loadConfig = + LoadJobConfiguration.newBuilder(tableId, sourceUri) + .setFormatOptions(FormatOptions.avro()) + // Set the write disposition to overwrite existing table data + .setWriteDisposition(JobInfo.WriteDisposition.WRITE_TRUNCATE) + .build(); + + // Load data from a GCS Avro file into the table + Job job = bigquery.create(JobInfo.of(loadConfig)); + // Blocks until this load table job completes its execution, either failing or succeeding. + job = job.waitFor(); + if (job.isDone()) { + System.out.println("Table is successfully overwritten by AVRO file loaded from GCS"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_avro_truncate] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSTruncateIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSTruncateIT.java new file mode 100644 index 000000000000..23e1868cbead --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSTruncateIT.java @@ -0,0 +1,81 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadAvroFromGCSTruncateIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = "MY_LOAD_AVRO_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void loadLoadAvroFromGCSTruncate() { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.avro"; + LoadAvroFromGCSTruncate.loadAvroFromGCSTruncate(BIGQUERY_DATASET_NAME, tableName, sourceUri); + assertThat(bout.toString()) + .contains("Table is successfully overwritten by AVRO file loaded from GCS"); + } +} From 8ed6bd679761744bed7f4dcb4f66bf6f37119154 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 20 Jul 2020 14:06:55 -0400 Subject: [PATCH 0665/3441] docs(samples): add region tag for oauth dependencies (#570) --- samples/snippets/pom.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 58e3bef52113..f4ebf27dca79 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -59,6 +59,7 @@ + com.google.oauth-client google-oauth-client-java6 @@ -69,6 +70,8 @@ google-oauth-client-jetty 1.31.0 + + junit From bb25013ddf988b83fdf6c16a908254dc375ae011 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 20 Jul 2020 18:12:17 -0400 Subject: [PATCH 0666/3441] chore: fix tag (#571) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f4ebf27dca79..9eff2ba7b1f5 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -70,7 +70,7 @@ google-oauth-client-jetty 1.31.0 - + From a5f075212067c0eecc67c975369aac1867c93b3b Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 20 Jul 2020 15:20:52 -0700 Subject: [PATCH 0667/3441] chore: update readme with new samples (#572) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 3 +++ synth.metadata | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3d084a4929bb..36f70643a6e1 100644 --- a/README.md +++ b/README.md @@ -253,8 +253,11 @@ has instructions for running the samples. | List Routines | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | | List Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | | Load Avro From GCS | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java) | +| Load Avro From GCS Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java) | | Load Csv From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | | Load Csv From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | +| Load Json From GCS | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java) | +| Load Json From GCS Autodetect | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java) | | Load Local File | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | | Load Parquet | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | | Load Parquet Replace Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | diff --git a/synth.metadata b/synth.metadata index 728e4ff44854..df8e11068560 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "5fd73eeb5b5d8c91154c23642737c9ece37b1750" + "sha": "8ed6bd679761744bed7f4dcb4f66bf6f37119154" } }, { From 263d3b21760b8130059b2b03db7c6fda7fae98d3 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 21 Jul 2020 20:32:48 +0530 Subject: [PATCH 0668/3441] refactor(samples): insert rows into a table (#574) --- .../com/example/bigquery/TableInsertRows.java | 9 +++++- .../example/bigquery/TableInsertRowsIT.java | 30 +++++++++++-------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java index 04fa0a2c8c0d..c405334ca5c8 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java +++ b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java @@ -28,6 +28,7 @@ import java.util.List; import java.util.Map; +// Sample to inserting rows into a table without running a load job. public class TableInsertRows { public static void runTableInsertRows() { @@ -54,7 +55,13 @@ public static void tableInsertRows( // Inserts rowContent into datasetName:tableId. InsertAllResponse response = - bigquery.insertAll(InsertAllRequest.newBuilder(tableId).addRow(rowContent).build()); + bigquery.insertAll( + InsertAllRequest.newBuilder(tableId) + // More rows can be added in the same RPC by invoking .addRow() on the builder. + // You can also supply optional unique row keys to support de-duplication + // scenarios. + .addRow(rowContent) + .build()); if (response.hasErrors()) { // If any of the insertions failed, this lets you inspect the errors diff --git a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java index 527907dd943b..0ed41456886b 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java @@ -33,6 +33,8 @@ import org.junit.Test; public class TableInsertRowsIT { + + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; @@ -54,16 +56,8 @@ public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); System.setOut(out); - } - - @After - public void tearDown() { - System.setOut(null); - } - @Test - public void testTableInsertRows() { - String tableName = "InsertRowsTestTable_" + UUID.randomUUID().toString().replace('-', '_'); + tableName = "INSERT_ROW_INTO_TABLE_TEST" + UUID.randomUUID().toString().substring(0, 8); Schema schema = Schema.of( Field.of("booleanField", LegacySQLTypeName.BOOLEAN), @@ -72,16 +66,26 @@ public void testTableInsertRows() { // Create table in dataset for testing CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testTableInsertRows() { // Create a row to insert Map rowContent = new HashMap<>(); rowContent.put("booleanField", true); rowContent.put("numericField", "3.14"); - // Testing TableInsertRows.tableInsertRows(BIGQUERY_DATASET_NAME, tableName, rowContent); assertThat(bout.toString()).contains("Rows successfully inserted into table"); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } From 2ac556e2707b3088446353ca03d9a8d08b6d66e2 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 21 Jul 2020 21:37:20 +0530 Subject: [PATCH 0669/3441] docs(samples): add load json table with encryption key from gcs (#575) --- .../example/bigquery/LoadJsonFromGCSCMEK.java | 77 ++++++++++++++++++ .../bigquery/LoadJsonFromGCSCMEKIT.java | 80 +++++++++++++++++++ 2 files changed, 157 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSCMEKIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java new file mode 100644 index 000000000000..46b02061d9ad --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java @@ -0,0 +1,77 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_json_cmek] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.EncryptionConfiguration; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.TableId; + +// Sample to load JSON data with configuration key from Cloud Storage into a new BigQuery table +public class LoadJsonFromGCSCMEK { + + public static void runLoadJsonFromGCSCMEK() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String kmsKeyName = "MY_KMS_KEY_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; + // i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey} + EncryptionConfiguration encryption = + EncryptionConfiguration.newBuilder().setKmsKeyName(kmsKeyName).build(); + loadJsonFromGCSCMEK(datasetName, tableName, sourceUri, encryption); + } + + public static void loadJsonFromGCSCMEK( + String datasetName, String tableName, String sourceUri, EncryptionConfiguration encryption) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + LoadJobConfiguration loadConfig = + LoadJobConfiguration.newBuilder(tableId, sourceUri) + // Set the encryption key to use for the destination. + .setDestinationEncryptionConfiguration(encryption) + .setFormatOptions(FormatOptions.json()) + .setAutodetect(true) + .build(); + + // Load data from a GCS JSON file into the table + Job job = bigquery.create(JobInfo.of(loadConfig)); + // Blocks until this load table job completes its execution, either failing or succeeding. + job = job.waitFor(); + if (job.isDone()) { + System.out.println("Table loaded succesfully from GCS with configuration key"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_json_cmek] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSCMEKIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSCMEKIT.java new file mode 100644 index 000000000000..b435f219deb0 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSCMEKIT.java @@ -0,0 +1,80 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.EncryptionConfiguration; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadJsonFromGCSCMEKIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + private static final String BIGQUERY_KMS_KEY_NAME = requireEnvVar("BIGQUERY_KMS_KEY_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + requireEnvVar("BIGQUERY_KMS_KEY_NAME"); + } + + @Before + public void setUp() { + tableName = + "MY_LOAD_JSON_TABLE_CMEK_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testLoadJsonFromGCSCMEK() { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; + EncryptionConfiguration configuration = + EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); + LoadJsonFromGCSCMEK.loadJsonFromGCSCMEK( + BIGQUERY_DATASET_NAME, tableName, sourceUri, configuration); + assertThat(bout.toString()) + .contains("Table loaded succesfully from GCS with configuration key"); + } +} From 29b8a7f179bf1fcd125f211353ef95021c0142d8 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 21 Jul 2020 21:37:37 +0530 Subject: [PATCH 0670/3441] docs(samples): add query destination table with encryption key (#576) --- .../bigquery/QueryDestinationTableCMEK.java | 65 +++++++++++++ .../bigquery/QueryDestinationTableCMEKIT.java | 93 +++++++++++++++++++ 2 files changed, 158 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCMEKIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java new file mode 100644 index 000000000000..82b37433a829 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java @@ -0,0 +1,65 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_destination_table_cmek] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.EncryptionConfiguration; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; + +// Sample to query on destination table with encryption key +public class QueryDestinationTableCMEK { + + public static void runQueryDestinationTableCMEK() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String kmsKeyName = "MY_KMS_KEY_NAME"; + String query = + String.format("SELECT stringField, booleanField FROM %s.%s", datasetName, tableName); + EncryptionConfiguration encryption = + EncryptionConfiguration.newBuilder().setKmsKeyName(kmsKeyName).build(); + queryDestinationTableCMEK(query, encryption); + } + + public static void queryDestinationTableCMEK(String query, EncryptionConfiguration encryption) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + // Set the encryption key to use for the destination. + .setDestinationEncryptionConfiguration(encryption) + .build(); + + TableResult results = bigquery.query(config); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + System.out.println("Query performed successfully with encryption key."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_destination_table_cmek] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCMEKIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCMEKIT.java new file mode 100644 index 000000000000..f4e0669d3fcc --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCMEKIT.java @@ -0,0 +1,93 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.EncryptionConfiguration; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class QueryDestinationTableCMEKIT { + + private String tableName; + private EncryptionConfiguration encryption; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + private static final String BIGQUERY_KMS_KEY_NAME = requireEnvVar("BIGQUERY_KMS_KEY_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + requireEnvVar("BIGQUERY_KMS_KEY_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // create a test table with encryption key + tableName = "MY_TABLE_CMEK_TEST" + UUID.randomUUID().toString().substring(0, 8); + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + encryption = EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); + CreateTableCMEK.createTableCMEK(BIGQUERY_DATASET_NAME, tableName, schema, encryption); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testQueryDestinationTableCMEK() { + String query = + String.format( + "SELECT stringField, booleanField FROM %s.%s", BIGQUERY_DATASET_NAME, tableName); + QueryDestinationTableCMEK.queryDestinationTableCMEK(query, encryption); + assertThat(bout.toString()).contains("Query performed successfully with encryption key."); + } +} From b07dee31e4b6fec8bf05f23ed52006829dbdbc4a Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 21 Jul 2020 22:04:44 +0530 Subject: [PATCH 0671/3441] docs(samples): add insert rows without rowids in a table (#573) * docs(samples): add insert rows without rowids in a table * add comment Co-authored-by: Stephanie Wang --- .../TableInsertRowsWithoutRowIds.java | 79 ++++++++++++++ .../TableInsertRowsWithoutRowIdsIT.java | 100 ++++++++++++++++++ 2 files changed, 179 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java new file mode 100644 index 000000000000..674b10f0b27a --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java @@ -0,0 +1,79 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_table_insert_rows_explicit_none_insert_ids] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryError; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.InsertAllRequest; +import com.google.cloud.bigquery.InsertAllResponse; +import com.google.cloud.bigquery.TableId; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +// Sample to insert rows without row ids in a table +public class TableInsertRowsWithoutRowIds { + + public static void runTableInsertRowsWithoutRowIds() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + // Create rows to insert + Map rowContent1 = new HashMap<>(); + rowContent1.put("stringField", "Phred Phlyntstone"); + rowContent1.put("numericField", 32); + Map rowContent2 = new HashMap<>(); + rowContent2.put("stringField", "Wylma Phlyntstone"); + rowContent2.put("numericField", 29); + List rowContent = new ArrayList<>(); + // insertId is null if not specified + rowContent.add(InsertAllRequest.RowToInsert.of(rowContent1)); + rowContent.add(InsertAllRequest.RowToInsert.of(rowContent2)); + tableInsertRowsWithoutRowIds(datasetName, tableName, rowContent); + } + + public static void tableInsertRowsWithoutRowIds( + String datasetName, String tableName, Iterable rows) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Get table + TableId tableId = TableId.of(datasetName, tableName); + + // Inserts rowContent into datasetName:tableId. + InsertAllResponse response = + bigquery.insertAll(InsertAllRequest.newBuilder(tableId).setRows(rows).build()); + + if (response.hasErrors()) { + // If any of the insertions failed, this lets you inspect the errors + for (Map.Entry> entry : response.getInsertErrors().entrySet()) { + System.out.println("Response error: \n" + entry.getValue()); + } + } + System.out.println("Rows successfully inserted into table without row ids"); + } catch (BigQueryException e) { + System.out.println("Insert operation not performed \n" + e.toString()); + } + } +} +// [END bigquery_table_insert_rows_explicit_none_insert_ids] diff --git a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java new file mode 100644 index 000000000000..8441fc738339 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java @@ -0,0 +1,100 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.InsertAllRequest; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class TableInsertRowsWithoutRowIdsIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + tableName = "INSERT_ROW_WITHOUT_ROW_ID_TEST" + UUID.randomUUID().toString().substring(0, 8); + Schema schema = + Schema.of( + Field.of("stringField", LegacySQLTypeName.STRING), + Field.of("numericField", LegacySQLTypeName.NUMERIC)); + + // Create table in dataset for testing + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testTableInsertRowsWithoutRowIds() { + // Create rows to insert + Map rowContent1 = new HashMap<>(); + rowContent1.put("stringField", "Phred Phlyntstone"); + rowContent1.put("numericField", 32); + Map rowContent2 = new HashMap<>(); + rowContent2.put("stringField", "Wylma Phlyntstone"); + rowContent2.put("numericField", 29); + List rowContent = new ArrayList<>(); + rowContent.add(InsertAllRequest.RowToInsert.of(rowContent1)); + rowContent.add(InsertAllRequest.RowToInsert.of(rowContent2)); + TableInsertRowsWithoutRowIds.tableInsertRowsWithoutRowIds( + BIGQUERY_DATASET_NAME, tableName, rowContent); + assertThat(bout.toString()).contains("Rows successfully inserted into table without row ids"); + } +} From d83305a4fd10ac1526268a98cfe9a21676ec4843 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 21 Jul 2020 16:19:00 -0400 Subject: [PATCH 0672/3441] chore: release 1.116.7 (#542) * updated CHANGELOG.md [ci skip] * updated README.md [ci skip] * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snippets/pom.xml Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 34 ++++++++++++++++++++++++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 42 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb857c3c6e7d..5bab3f4d33b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,39 @@ # Changelog +### [1.116.7](https://www.github.com/googleapis/java-bigquery/compare/v1.116.6...v1.116.7) (2020-07-21) + + +### Bug Fixes + +* **sample:** region tag ([#544](https://www.github.com/googleapis/java-bigquery/issues/544)) ([f7f6e73](https://www.github.com/googleapis/java-bigquery/commit/f7f6e73ef82924fb0f7cbae5c871f1cd27620cc6)) + + +### Documentation + +* **samples:** add auth user flow and query ([#478](https://www.github.com/googleapis/java-bigquery/issues/478)) ([65dffac](https://www.github.com/googleapis/java-bigquery/commit/65dffac6af316d0baca5cfbd2b3dd3fae323549d)) +* **samples:** add create view ddl ([#558](https://www.github.com/googleapis/java-bigquery/issues/558)) ([9253218](https://www.github.com/googleapis/java-bigquery/commit/925321881cde3edd187a9a442a26eb508535744a)) +* **samples:** add extract compressed table ([#538](https://www.github.com/googleapis/java-bigquery/issues/538)) ([3f129a6](https://www.github.com/googleapis/java-bigquery/commit/3f129a6a4fff2162d1aef5ba29b4fa6246793d97)) +* **samples:** add get dataset labels ([#539](https://www.github.com/googleapis/java-bigquery/issues/539)) ([563157c](https://www.github.com/googleapis/java-bigquery/commit/563157cc40727cb7cb9aed16dfbb956a668ead51)) +* **samples:** add get table labels ([#540](https://www.github.com/googleapis/java-bigquery/issues/540)) ([a6d9491](https://www.github.com/googleapis/java-bigquery/commit/a6d94913f74a6b4d29e9314a0652a9e3fa30aed9)) +* **samples:** add grant view access ([#563](https://www.github.com/googleapis/java-bigquery/issues/563)) ([0c092e0](https://www.github.com/googleapis/java-bigquery/commit/0c092e06cdf47882a38901e8e4814afa87c7eba4)) +* **samples:** add insert rows without rowids in a table ([#573](https://www.github.com/googleapis/java-bigquery/issues/573)) ([b07dee3](https://www.github.com/googleapis/java-bigquery/commit/b07dee31e4b6fec8bf05f23ed52006829dbdbc4a)) +* **samples:** add list dataset by label ([#555](https://www.github.com/googleapis/java-bigquery/issues/555)) ([a0d7bea](https://www.github.com/googleapis/java-bigquery/commit/a0d7beab025a2895f0efc1e9888594e386a0a1b3)) +* **samples:** add list jobs ([#554](https://www.github.com/googleapis/java-bigquery/issues/554)) ([b87cecf](https://www.github.com/googleapis/java-bigquery/commit/b87cecff3f41339b20382b26381c38c4d7150305)) +* **samples:** add list routines ([#546](https://www.github.com/googleapis/java-bigquery/issues/546)) ([2cd81d4](https://www.github.com/googleapis/java-bigquery/commit/2cd81d4fb616588e9ed966f6dd32cd4615d305c4)) +* **samples:** add load avro table with truncate from gcs ([#567](https://www.github.com/googleapis/java-bigquery/issues/567)) ([fa998ba](https://www.github.com/googleapis/java-bigquery/commit/fa998baa32437a5e39670c5c7399c0945de56d52)) +* **samples:** add load json file from gcs into a table ([#568](https://www.github.com/googleapis/java-bigquery/issues/568)) ([3d65821](https://www.github.com/googleapis/java-bigquery/commit/3d658210650d2849c86df96dccd3587e95a6f4a6)) +* **samples:** add load json file from gcs into a table with autodetect schema ([#569](https://www.github.com/googleapis/java-bigquery/issues/569)) ([259d470](https://www.github.com/googleapis/java-bigquery/commit/259d470ecadc9f384920164c8a2f45643cff130a)) +* **samples:** add load json table with encryption key from gcs ([#575](https://www.github.com/googleapis/java-bigquery/issues/575)) ([2ac556e](https://www.github.com/googleapis/java-bigquery/commit/2ac556e2707b3088446353ca03d9a8d08b6d66e2)) +* **samples:** add load table from gcs using avro file ([#564](https://www.github.com/googleapis/java-bigquery/issues/564)) ([219f7a9](https://www.github.com/googleapis/java-bigquery/commit/219f7a978ab83421917ec4eb0295af38f4a9dd04)) +* **samples:** add query destination table with encryption key ([#576](https://www.github.com/googleapis/java-bigquery/issues/576)) ([29b8a7f](https://www.github.com/googleapis/java-bigquery/commit/29b8a7f179bf1fcd125f211353ef95021c0142d8)) +* **samples:** add region tag for oauth dependencies ([#570](https://www.github.com/googleapis/java-bigquery/issues/570)) ([8ed6bd6](https://www.github.com/googleapis/java-bigquery/commit/8ed6bd679761744bed7f4dcb4f66bf6f37119154)) +* correct comment ([#553](https://www.github.com/googleapis/java-bigquery/issues/553)) ([48cdc92](https://www.github.com/googleapis/java-bigquery/commit/48cdc92b6f1e128b4f0c8c25cd9ea907ab77bd93)) + + +### Dependencies + +* update core transport dependencies to v1.31.0 ([#565](https://www.github.com/googleapis/java-bigquery/issues/565)) ([5fd73ee](https://www.github.com/googleapis/java-bigquery/commit/5fd73eeb5b5d8c91154c23642737c9ece37b1750)) + ### [1.116.6](https://www.github.com/googleapis/java-bigquery/compare/v1.116.5...v1.116.6) (2020-07-10) diff --git a/README.md b/README.md index 36f70643a6e1..466907704dc7 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.6' +compile 'com.google.cloud:google-cloud-bigquery:1.116.7' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.6" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.7" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0f62bddfe66b..535ae744f258 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.7-SNAPSHOT + 1.116.7 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.7-SNAPSHOT + 1.116.7 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 500d399215f6..1341b605711a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.7-SNAPSHOT + 1.116.7 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.7-SNAPSHOT + 1.116.7 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9d63130d8f83..719fc79aa13d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.7-SNAPSHOT + 1.116.7 diff --git a/versions.txt b/versions.txt index 10a14157aefd..8cb38b1227c5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.6:1.116.7-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.116.7:1.116.7 \ No newline at end of file From 6b8b2ae2b575322883a7ce9d5fa7539f41390132 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 22 Jul 2020 05:40:10 -0700 Subject: [PATCH 0673/3441] chore: update common template (#578) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 7 +++++-- synth.metadata | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 466907704dc7..9999fef24714 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.7' +compile 'com.google.cloud:google-cloud-bigquery:1.116.6' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.7" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.6" ``` [//]: # ({x-version-update-end}) @@ -258,6 +258,7 @@ has instructions for running the samples. | Load Csv From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | | Load Json From GCS | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java) | | Load Json From GCS Autodetect | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java) | +| Load Json From GCSCMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java) | | Load Local File | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | | Load Parquet | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | | Load Parquet Replace Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | @@ -267,6 +268,7 @@ has instructions for running the samples. | Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/Query.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/Query.java) | | Query Batch | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | | Query Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | +| Query Destination Table CMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java) | | Query With Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | | Query With Positional Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | | Query With Structs Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | @@ -278,6 +280,7 @@ has instructions for running the samples. | Simple App | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | | Simple Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | | Table Insert Rows | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | +| Table Insert Rows Without Row Ids | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | | Update Dataset Access | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | | Update Dataset Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | | Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | diff --git a/synth.metadata b/synth.metadata index df8e11068560..935edb2e1b67 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "8ed6bd679761744bed7f4dcb4f66bf6f37119154" + "sha": "d83305a4fd10ac1526268a98cfe9a21676ec4843" } }, { From cf253c510efe4149e58ea03d66bba90d20fdaeaf Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 22 Jul 2020 14:40:37 +0200 Subject: [PATCH 0674/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.116.7 (#579) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 1ae56b0e0ab0..3959b760fa99 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.116.6 + 1.116.7 From 8d254d87710be6b1be2f714daa573470a0bc1df9 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 22 Jul 2020 18:12:23 +0530 Subject: [PATCH 0675/3441] refactor(samples): load csv table from gcs (#581) --- .../com/example/bigquery/LoadCsvFromGcs.java | 47 +++++++++++-------- .../example/bigquery/LoadCsvFromGcsIT.java | 20 ++++---- 2 files changed, 36 insertions(+), 31 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java index 45a29c19db49..b45c9d732328 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java @@ -20,9 +20,14 @@ import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; -import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.CsvOptions; +import com.google.cloud.bigquery.Field; import com.google.cloud.bigquery.Job; -import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableId; // Sample to load CSV data from Cloud Storage into a new BigQuery table public class LoadCsvFromGcs { @@ -32,34 +37,38 @@ public static void runLoadCsvFromGcs() throws Exception { String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; - loadCsvFromGcs(datasetName, tableName, sourceUri); + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + loadCsvFromGcs(datasetName, tableName, sourceUri, schema); } - public static void loadCsvFromGcs(String datasetName, String tableName, String sourceUri) - throws Exception { + public static void loadCsvFromGcs( + String datasetName, String tableName, String sourceUri, Schema schema) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - Table table = bigquery.getTable(datasetName, tableName); - Job loadJob = table.load(FormatOptions.csv(), sourceUri); + // Skip header row in the file. + CsvOptions csvOptions = CsvOptions.newBuilder().setSkipLeadingRows(1).build(); + + TableId tableId = TableId.of(datasetName, tableName); + LoadJobConfiguration loadConfig = + LoadJobConfiguration.newBuilder(tableId, sourceUri, csvOptions).setSchema(schema).build(); // Load data from a GCS CSV file into the table + Job job = bigquery.create(JobInfo.of(loadConfig)); // Blocks until this load table job completes its execution, either failing or succeeding. - Job completedJob = loadJob.waitFor(); - - // Check for errors - if (completedJob == null) { - throw new Exception("Job not executed since it no longer exists."); - } else if (completedJob.getStatus().getError() != null) { - // You can also look at queryJob.getStatus().getExecutionErrors() for all - // errors, not just the latest one. - throw new Exception( - "BigQuery was unable to load into the table due to an error: \n" - + loadJob.getStatus().getError()); + job = job.waitFor(); + if (job.isDone()) { + System.out.println("CSV from GCS successfully added during load append job"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); } - System.out.println("CSV from GCS successfully added during load append job"); } catch (BigQueryException | InterruptedException e) { System.out.println("Column not added during load append \n" + e.toString()); } diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java index f47f92cc5f6b..e54118f93027 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java @@ -20,8 +20,8 @@ import static junit.framework.TestCase.assertNotNull; import com.google.cloud.bigquery.Field; -import com.google.cloud.bigquery.LegacySQLTypeName; import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; @@ -58,15 +58,7 @@ public void setUp() { System.setOut(out); // Create a test table - tableName = "loadCsvFromGcs_TEST_" + UUID.randomUUID().toString().replace('-', '_'); - - Schema schema = - Schema.of( - Field.of("name", LegacySQLTypeName.STRING), - Field.of("post_abbr", LegacySQLTypeName.STRING)); - - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); - + tableName = "LOAD_CSV_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); System.setOut(out); @@ -80,9 +72,13 @@ public void tearDown() { } @Test - public void loadCsvFromGcs() throws Exception { + public void loadCsvFromGcs() { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; - LoadCsvFromGcs.loadCsvFromGcs(BIGQUERY_DATASET_NAME, tableName, sourceUri); + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + LoadCsvFromGcs.loadCsvFromGcs(BIGQUERY_DATASET_NAME, tableName, sourceUri, schema); assertThat(bout.toString()).contains("CSV from GCS successfully added during load append job"); } } From cbb1902e1e3d7017b1cd9be0e51243e5840ace96 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 22 Jul 2020 20:24:11 +0530 Subject: [PATCH 0676/3441] docs(samples): load orc file into a table from gcs (#583) --- .../com/example/bigquery/LoadOrcFromGCS.java | 76 ++++++++++++++++++ .../example/bigquery/LoadOrcFromGCSIT.java | 80 +++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGCSIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java b/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java new file mode 100644 index 000000000000..8d1d484a3b00 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java @@ -0,0 +1,76 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_orc] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableId; + +// Sample to load ORC data from Cloud Storage into a new BigQuery table +public class LoadOrcFromGCS { + + public static void runLoadOrcFromGCS() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.orc"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + loadOrcFromGCS(datasetName, tableName, sourceUri, schema); + } + + public static void loadOrcFromGCS( + String datasetName, String tableName, String sourceUri, Schema schema) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + LoadJobConfiguration loadConfig = + LoadJobConfiguration.newBuilder(tableId, sourceUri, FormatOptions.orc()) + .setSchema(schema) + .build(); + + // Load data from a GCS ORC file into the table + Job job = bigquery.create(JobInfo.of(loadConfig)); + // Blocks until this load table job completes its execution, either failing or succeeding. + job = job.waitFor(); + if (job.isDone() && job.getStatus().getError() == null) { + System.out.println("ORC from GCS successfully added during load append job"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_orc] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGCSIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGCSIT.java new file mode 100644 index 000000000000..fe4cb6d8319c --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGCSIT.java @@ -0,0 +1,80 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadOrcFromGCSIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + // Create a test table + tableName = "LOAD_ORC_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testLoadOrcFromGCS() { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.orc"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + LoadOrcFromGCS.loadOrcFromGCS(BIGQUERY_DATASET_NAME, tableName, sourceUri, schema); + assertThat(bout.toString()).contains("ORC from GCS successfully added during load append job"); + } +} From f127475100a307970a0af5227d367d790b434775 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 22 Jul 2020 20:24:51 +0530 Subject: [PATCH 0677/3441] docs(samples): add load json table with overwrite data from gcs (#582) --- .../bigquery/LoadJsonFromGCSTruncate.java | 79 ++++++++++++++++++ .../bigquery/LoadJsonFromGCSTruncateIT.java | 81 +++++++++++++++++++ 2 files changed, 160 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSTruncateIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java new file mode 100644 index 000000000000..45575f9a8c0c --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java @@ -0,0 +1,79 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_json_truncate] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableId; + +// Sample to overwrite the BigQuery table data by loading a JSON file from GCS +public class LoadJsonFromGCSTruncate { + + public static void runLoadJsonFromGCSTruncate() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + loadJsonFromGCSTruncate(datasetName, tableName, sourceUri, schema); + } + + public static void loadJsonFromGCSTruncate( + String datasetName, String tableName, String sourceUri, Schema schema) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + LoadJobConfiguration loadConfig = + LoadJobConfiguration.newBuilder(tableId, sourceUri) + .setFormatOptions(FormatOptions.json()) + // Set the write disposition to overwrite existing table data + .setWriteDisposition(JobInfo.WriteDisposition.WRITE_TRUNCATE) + .setSchema(schema) + .build(); + + // Load data from a GCS JSON file into the table + Job job = bigquery.create(JobInfo.of(loadConfig)); + // Blocks until this load table job completes its execution, either failing or succeeding. + job = job.waitFor(); + if (job.isDone()) { + System.out.println("Table is successfully overwritten by JSON file loaded from GCS"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_json_truncate] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSTruncateIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSTruncateIT.java new file mode 100644 index 000000000000..4e3b5ebb35d0 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSTruncateIT.java @@ -0,0 +1,81 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadJsonFromGCSTruncateIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + tableName = "MY_LOAD_JSON_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void loadLoadJsonFromGCSTruncate() { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + LoadJsonFromGCSTruncate.loadJsonFromGCSTruncate( + BIGQUERY_DATASET_NAME, tableName, sourceUri, schema); + assertThat(bout.toString()) + .contains("Table is successfully overwritten by JSON file loaded from GCS"); + } +} From b3621df78f2c06cefdb637048dd91e11dbf8256f Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 22 Jul 2020 23:18:12 +0530 Subject: [PATCH 0678/3441] docs(samples): add load orc file and overwrite data into a table from gcs (#584) --- .../bigquery/LoadOrcFromGcsTruncate.java | 71 ++++++++++++++++ .../bigquery/LoadOrcFromGcsTruncateIT.java | 81 +++++++++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsTruncateIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java b/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java new file mode 100644 index 000000000000..18730b13b46a --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_orc_truncate] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.TableId; + +// Sample to overwrite the BigQuery table data by loading a ORC file from GCS +public class LoadOrcFromGcsTruncate { + + public static void runLoadOrcFromGcsTruncate() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.orc"; + loadOrcFromGcsTruncate(datasetName, tableName, sourceUri); + } + + public static void loadOrcFromGcsTruncate( + String datasetName, String tableName, String sourceUri) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + LoadJobConfiguration loadConfig = + LoadJobConfiguration.newBuilder(tableId, sourceUri) + .setFormatOptions(FormatOptions.orc()) + // Set the write disposition to overwrite existing table data + .setWriteDisposition(JobInfo.WriteDisposition.WRITE_TRUNCATE) + .build(); + + // Load data from a GCS ORC file into the table + Job job = bigquery.create(JobInfo.of(loadConfig)); + // Blocks until this load table job completes its execution, either failing or succeeding. + job = job.waitFor(); + if (job.isDone() && job.getStatus().getError() == null) { + System.out.println("Table is successfully overwritten by ORC file loaded from GCS"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_orc_truncate] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsTruncateIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsTruncateIT.java new file mode 100644 index 000000000000..5b8b5aafba57 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsTruncateIT.java @@ -0,0 +1,81 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadOrcFromGcsTruncateIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = "MY_LOAD_ORC_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + // DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testLoadOrcFromGcsTruncate() { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.orc"; + LoadOrcFromGcsTruncate.loadOrcFromGcsTruncate(BIGQUERY_DATASET_NAME, tableName, sourceUri); + assertThat(bout.toString()) + .contains("Table is successfully overwritten by ORC file loaded from GCS"); + } +} From a76c5d8e695d8fbbac9cdf5008f95850da9ce1d1 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 23 Jul 2020 05:34:43 -0700 Subject: [PATCH 0679/3441] chore: regen common template (#586) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 9 ++++-- synth.metadata | 79 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 84 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9999fef24714..2eb31599ccb9 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.116.6 + 1.116.7 ``` @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.6' +compile 'com.google.cloud:google-cloud-bigquery:1.116.7' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.6" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.7" ``` [//]: # ({x-version-update-end}) @@ -259,7 +259,10 @@ has instructions for running the samples. | Load Json From GCS | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java) | | Load Json From GCS Autodetect | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java) | | Load Json From GCSCMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java) | +| Load Json From GCS Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java) | | Load Local File | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | +| Load Orc From GCS | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java) | +| Load Orc From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java) | | Load Parquet | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | | Load Parquet Replace Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | | Load Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java) | diff --git a/synth.metadata b/synth.metadata index 935edb2e1b67..3ef4cb0e8022 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "d83305a4fd10ac1526268a98cfe9a21676ec4843" + "sha": "b3621df78f2c06cefdb637048dd91e11dbf8256f" } }, { @@ -14,5 +14,82 @@ "sha": "4f2c9f752a94042472fc03c5bd9e06e89817d2bd" } } + ], + "generatedFiles": [ + ".github/CODEOWNERS", + ".github/ISSUE_TEMPLATE/bug_report.md", + ".github/ISSUE_TEMPLATE/feature_request.md", + ".github/ISSUE_TEMPLATE/support_request.md", + ".github/PULL_REQUEST_TEMPLATE.md", + ".github/release-please.yml", + ".github/trusted-contribution.yml", + ".github/workflows/ci.yaml", + ".kokoro/build.bat", + ".kokoro/build.sh", + ".kokoro/coerce_logs.sh", + ".kokoro/common.cfg", + ".kokoro/common.sh", + ".kokoro/continuous/common.cfg", + ".kokoro/continuous/dependencies.cfg", + ".kokoro/continuous/integration.cfg", + ".kokoro/continuous/java11.cfg", + ".kokoro/continuous/java7.cfg", + ".kokoro/continuous/java8-osx.cfg", + ".kokoro/continuous/java8-win.cfg", + ".kokoro/continuous/java8.cfg", + ".kokoro/continuous/lint.cfg", + ".kokoro/continuous/propose_release.cfg", + ".kokoro/continuous/samples.cfg", + ".kokoro/dependencies.sh", + ".kokoro/linkage-monitor.sh", + ".kokoro/nightly/common.cfg", + ".kokoro/nightly/dependencies.cfg", + ".kokoro/nightly/integration.cfg", + ".kokoro/nightly/java11.cfg", + ".kokoro/nightly/java7.cfg", + ".kokoro/nightly/java8-osx.cfg", + ".kokoro/nightly/java8-win.cfg", + ".kokoro/nightly/java8.cfg", + ".kokoro/nightly/lint.cfg", + ".kokoro/nightly/samples.cfg", + ".kokoro/populate-secrets.sh", + ".kokoro/presubmit/clirr.cfg", + ".kokoro/presubmit/common.cfg", + ".kokoro/presubmit/dependencies.cfg", + ".kokoro/presubmit/integration.cfg", + ".kokoro/presubmit/java11.cfg", + ".kokoro/presubmit/java7.cfg", + ".kokoro/presubmit/java8-osx.cfg", + ".kokoro/presubmit/java8-win.cfg", + ".kokoro/presubmit/java8.cfg", + ".kokoro/presubmit/linkage-monitor.cfg", + ".kokoro/presubmit/lint.cfg", + ".kokoro/presubmit/samples.cfg", + ".kokoro/release/bump_snapshot.cfg", + ".kokoro/release/common.cfg", + ".kokoro/release/common.sh", + ".kokoro/release/drop.cfg", + ".kokoro/release/drop.sh", + ".kokoro/release/promote.cfg", + ".kokoro/release/promote.sh", + ".kokoro/release/publish_javadoc.cfg", + ".kokoro/release/publish_javadoc.sh", + ".kokoro/release/snapshot.cfg", + ".kokoro/release/snapshot.sh", + ".kokoro/release/stage.cfg", + ".kokoro/release/stage.sh", + ".kokoro/trampoline.sh", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.md", + "LICENSE", + "README.md", + "codecov.yaml", + "java.header", + "license-checks.xml", + "renovate.json", + "samples/install-without-bom/pom.xml", + "samples/pom.xml", + "samples/snapshot/pom.xml", + "samples/snippets/pom.xml" ] } \ No newline at end of file From 8a2c6ff415dca011ee7a5f4db4c097af538f42e7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 23 Jul 2020 11:24:56 -0400 Subject: [PATCH 0680/3441] chore: release 1.116.8-SNAPSHOT (#585) * updated versions.txt [ci skip] * updated samples/pom.xml [ci skip] * updated samples/snippets/pom.xml [ci skip] * updated google-cloud-bigquery/pom.xml [ci skip] * updated pom.xml [ci skip] * updated samples/snapshot/pom.xml [ci skip] * updated samples/install-without-bom/pom.xml Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 535ae744f258..7793a41a29ff 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.7 + 1.116.8-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.7 + 1.116.8-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1341b605711a..4d524549eb7e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.7 + 1.116.8-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.7 + 1.116.8-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 719fc79aa13d..fb8b8367bd54 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.7 + 1.116.8-SNAPSHOT diff --git a/versions.txt b/versions.txt index 8cb38b1227c5..bd2fbc3de3ba 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.7:1.116.7 \ No newline at end of file +google-cloud-bigquery:1.116.7:1.116.8-SNAPSHOT \ No newline at end of file From 55cd52cf5e0f06afcbb7c1d961daca04cc5fe7a9 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 23 Jul 2020 20:55:10 +0530 Subject: [PATCH 0681/3441] docs(samples): add query dry run (#587) --- .../com/example/bigquery/QueryDryRun.java | 59 +++++++++++++++++++ .../com/example/bigquery/QueryDryRunIT.java | 55 +++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryDryRunIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java b/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java new file mode 100644 index 000000000000..7a72de1dee65 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java @@ -0,0 +1,59 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_dry_run] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.JobStatistics; +import com.google.cloud.bigquery.QueryJobConfiguration; + +// Sample to run dry query on the table +public class QueryDryRun { + + public static void runQueryDryRun() { + String query = + "SELECT name, COUNT(*) as name_count " + + "FROM `bigquery-public-data.usa_names.usa_1910_2013` " + + "WHERE state = 'WA' " + + "GROUP BY name"; + queryDryRun(query); + } + + public static void queryDryRun(String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query).setDryRun(true).setUseQueryCache(false).build(); + + Job job = bigquery.create(JobInfo.of(queryConfig)); + JobStatistics.QueryStatistics statistics = job.getStatistics(); + + System.out.println( + "Query dry run performed successfully." + statistics.getTotalBytesProcessed()); + } catch (BigQueryException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_dry_run] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryDryRunIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryDryRunIT.java new file mode 100644 index 000000000000..0b710b19a2b1 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryDryRunIT.java @@ -0,0 +1,55 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryDryRunIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryDryRun() { + String query = + "SELECT name, COUNT(*) as name_count " + + "FROM `bigquery-public-data.usa_names.usa_1910_2013` " + + "WHERE state = 'WA' " + + "GROUP BY name"; + + QueryDryRun.queryDryRun(query); + assertThat(bout.toString()).contains("Query dry run performed successfully."); + } +} From 64bed2591daefed7bb8c8f93aa0a3d748a41a20d Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 23 Jul 2020 20:55:55 +0530 Subject: [PATCH 0682/3441] docs(samples): add query on external table from gcs (#588) --- .../bigquery/QueryExternalGCSPerm.java | 79 ++++++++++++++++ .../bigquery/QueryExternalGCSPermIT.java | 89 +++++++++++++++++++ 2 files changed, 168 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSPermIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java new file mode 100644 index 000000000000..cf7f31b3370a --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java @@ -0,0 +1,79 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_external_gcs_perm] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.CsvOptions; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.TableResult; + +// Sample to queries an external data source using a permanent table +public class QueryExternalGCSPerm { + + public static void runQueryExternalGCSPerm() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + String query = + String.format("SELECT * FROM %s.%s WHERE name LIKE 'W%%'", datasetName, tableName); + queryExternalGCSPerm(datasetName, tableName, sourceUri, schema, query); + } + + public static void queryExternalGCSPerm( + String datasetName, String tableName, String sourceUri, Schema schema, String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Skip header row in the file. + CsvOptions csvOptions = CsvOptions.newBuilder().setSkipLeadingRows(1).build(); + + TableId tableId = TableId.of(datasetName, tableName); + // Create a permanent table linked to the GCS file + ExternalTableDefinition externalTable = + ExternalTableDefinition.newBuilder(sourceUri, csvOptions).setSchema(schema).build(); + bigquery.create(TableInfo.of(tableId, externalTable)); + + // Example query to find states starting with 'W' + TableResult results = bigquery.query(QueryJobConfiguration.of(query)); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query on external permanent table performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_external_gcs_perm] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSPermIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSPermIT.java new file mode 100644 index 000000000000..6007fcacbbfd --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSPermIT.java @@ -0,0 +1,89 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class QueryExternalGCSPermIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = "EXTERNAL_CSV_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testQueryExternalGCSPerm() { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + String query = + String.format( + "SELECT * FROM %s.%s WHERE name LIKE 'W%%'", BIGQUERY_DATASET_NAME, tableName); + QueryExternalGCSPerm.queryExternalGCSPerm( + BIGQUERY_DATASET_NAME, tableName, sourceUri, schema, query); + assertThat(bout.toString()) + .contains("Query on external permanent table performed successfully."); + } +} From f6b308a181c7d2347fce22dd505e59a10ab9144c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 24 Jul 2020 04:35:36 -0700 Subject: [PATCH 0683/3441] changes without context (#592) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 ++ synth.metadata | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2eb31599ccb9..b375b73be4b4 100644 --- a/README.md +++ b/README.md @@ -272,6 +272,8 @@ has instructions for running the samples. | Query Batch | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | | Query Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | | Query Destination Table CMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java) | +| Query Dry Run | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | +| Query External GCS Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java) | | Query With Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | | Query With Positional Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | | Query With Structs Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | diff --git a/synth.metadata b/synth.metadata index 3ef4cb0e8022..3aff0f28c88e 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b3621df78f2c06cefdb637048dd91e11dbf8256f" + "sha": "64bed2591daefed7bb8c8f93aa0a3d748a41a20d" } }, { From 8ef8db2e2fbcbff5136b18423746b25384a082ef Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 24 Jul 2020 20:48:23 +0530 Subject: [PATCH 0684/3441] docs(samples): add query disable cache (#595) --- .../example/bigquery/QueryDisableCache.java | 58 +++++++++++++++++++ .../example/bigquery/QueryDisableCacheIT.java | 50 ++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryDisableCacheIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java b/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java new file mode 100644 index 000000000000..23e600d5008f --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java @@ -0,0 +1,58 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_no_cache] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; + +// Sample to running a query with the cache disabled. +public class QueryDisableCache { + + public static void runQueryDisableCache() { + String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + queryDisableCache(query); + } + + public static void queryDisableCache(String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + // Disable the query cache to force live query evaluation. + .setUseQueryCache(false) + .build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query disable cache performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_no_cache] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryDisableCacheIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryDisableCacheIT.java new file mode 100644 index 000000000000..86af7685bff6 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryDisableCacheIT.java @@ -0,0 +1,50 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryDisableCacheIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryDisableCache() { + String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + QueryDisableCache.queryDisableCache(query); + assertThat(bout.toString()).contains("Query disable cache performed successfully."); + } +} From ef757ad44dcc2745f2d07b799a1af63166d79d4f Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 24 Jul 2020 20:49:46 +0530 Subject: [PATCH 0685/3441] docs(samples): add query on external temp table from gcs (#593) --- .../bigquery/QueryExternalGCSTemp.java | 77 +++++++++++++++++++ .../bigquery/QueryExternalGCSTempIT.java | 62 +++++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSTempIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java new file mode 100644 index 000000000000..c3dea8c00143 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java @@ -0,0 +1,77 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_external_gcs_temp] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.CsvOptions; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableResult; + +// Sample to queries an external data source using a temporary table +public class QueryExternalGCSTemp { + + public static void runQueryExternalGCSTemp() { + // TODO(developer): Replace these variables before running the sample. + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + String query = String.format("SELECT * FROM %s WHERE name LIKE 'W%%'", tableName); + queryExternalGCSTemp(tableName, sourceUri, schema, query); + } + + public static void queryExternalGCSTemp( + String tableName, String sourceUri, Schema schema, String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Skip header row in the file. + CsvOptions csvOptions = CsvOptions.newBuilder().setSkipLeadingRows(1).build(); + + // Configure the external data source and query job. + ExternalTableDefinition externalTable = + ExternalTableDefinition.newBuilder(sourceUri, csvOptions).setSchema(schema).build(); + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .addTableDefinition(tableName, externalTable) + .build(); + + // Example query to find states starting with 'W' + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query on external temporary table performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_external_gcs_temp] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSTempIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSTempIT.java new file mode 100644 index 000000000000..e18d1ba9eee4 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSTempIT.java @@ -0,0 +1,62 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryExternalGCSTempIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryExternalGCSTemp() { + String tableName = + "EXTERNAL_CSV_TEMP_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + String query = String.format("SELECT * FROM %s WHERE name LIKE 'W%%'", tableName); + QueryExternalGCSTemp.queryExternalGCSTemp(tableName, sourceUri, schema, query); + assertThat(bout.toString()) + .contains("Query on external temporary table performed successfully."); + } +} From 4787dd07202b6312b1a25957fee6a14e500dce48 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 24 Jul 2020 20:51:25 +0530 Subject: [PATCH 0686/3441] docs(samples): add query legacy large results (#594) --- .../example/bigquery/QueryLargeResults.java | 68 ++++++++++++++++++ .../example/bigquery/QueryLargeResultsIT.java | 72 +++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryLargeResultsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java b/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java new file mode 100644 index 000000000000..9a4fdd3c7c66 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java @@ -0,0 +1,68 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_legacy_large_results] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableResult; + +// Sample to run query with large results and save the results to a table. +public class QueryLargeResults { + + public static void runQueryLargeResults() { + // TODO(developer): Replace these variables before running the sample. + String destinationDataset = "MY_DESTINATION_DATASET_NAME"; + String destinationTable = "MY_DESTINATION_TABLE_NAME"; + String query = "SELECT corpus FROM [bigquery-public-data:samples.shakespeare] GROUP BY corpus;"; + queryLargeResults(destinationDataset, destinationTable, query); + } + + public static void queryLargeResults( + String destinationDataset, String destinationTable, String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryJobConfiguration queryConfig = + // To use legacy SQL syntax, set useLegacySql to true. + QueryJobConfiguration.newBuilder(query) + .setUseLegacySql(true) + // Save the results of the query to a permanent table. + .setDestinationTable(TableId.of(destinationDataset, destinationTable)) + // Allow results larger than the maximum response size. + // If true, a destination table must be set. + .setAllowLargeResults(true) + .build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query large results performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_legacy_large_results] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryLargeResultsIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryLargeResultsIT.java new file mode 100644 index 000000000000..cdc9007cc69b --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryLargeResultsIT.java @@ -0,0 +1,72 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class QueryLargeResultsIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + tableName = "QUERY_LARGE_RESULT_TABLE_TEST" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testQueryLargeResults() { + String query = "SELECT corpus FROM [bigquery-public-data:samples.shakespeare] GROUP BY corpus;"; + QueryLargeResults.queryLargeResults(BIGQUERY_DATASET_NAME, tableName, query); + assertThat(bout.toString()).contains("Query large results performed successfully."); + } +} From 918c8bd78d3654120f18db49058085c321c05819 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 24 Jul 2020 21:12:39 +0530 Subject: [PATCH 0687/3441] docs(samples): add query pagination (#596) * docs(samples): add query pagination * docs(samples): update code --- .../com/example/bigquery/QueryPagination.java | 71 +++++++++++++++++ .../example/bigquery/QueryPaginationIT.java | 78 +++++++++++++++++++ 2 files changed, 149 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryPaginationIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java b/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java new file mode 100644 index 000000000000..45801e1ee772 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_pagination] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableResult; + +// Sample to run query with pagination. +public class QueryPagination { + + public static void runQueryPagination() { + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String query = + "SELECT name, SUM(number) as total_people" + + " FROM `bigquery-public-data.usa_names.usa_1910_2013`" + + " GROUP BY name" + + " ORDER BY total_people DESC" + + " LIMIT 100"; + queryPagination(datasetName, tableName, query); + } + + public static void queryPagination(String datasetName, String tableName, String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + // save results into a table. + .setDestinationTable(tableId) + .build(); + + bigquery.query(queryConfig); + + TableResult results = + bigquery.listTableData(tableId, BigQuery.TableDataListOption.pageSize(20)); + + results + .getNextPage() + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query pagination performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_pagination] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryPaginationIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryPaginationIT.java new file mode 100644 index 000000000000..759eb66bc281 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryPaginationIT.java @@ -0,0 +1,78 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class QueryPaginationIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + tableName = + "QUERY_PAGINATION_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testQueryPagination() { + String query = + "SELECT name, SUM(number) as total_people" + + " FROM `bigquery-public-data.usa_names.usa_1910_2013`" + + " GROUP BY name" + + " ORDER BY total_people DESC" + + " LIMIT 100"; + QueryPagination.queryPagination(BIGQUERY_DATASET_NAME, tableName, query); + assertThat(bout.toString()).contains("Query pagination performed successfully."); + } +} From 055ebc09b36afc278a728d5ce1af5362ea0b5794 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 24 Jul 2020 23:06:08 +0530 Subject: [PATCH 0688/3441] docs(samples): add query partitioned table (#597) --- .../bigquery/QueryPartitionedTable.java | 65 +++++++++++++++ .../bigquery/QueryPartitionedTableIT.java | 83 +++++++++++++++++++ 2 files changed, 148 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryPartitionedTableIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java b/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java new file mode 100644 index 000000000000..015b3ff9f64d --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java @@ -0,0 +1,65 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_partitioned_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.TableResult; + +// Sample to run query on partitioned table. +public class QueryPartitionedTable { + + public static void runQueryPartitionedTable() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String query = + String.format( + "SELECT * FROM `%s.%s` WHERE date BETWEEN @start_date AND @end_date", + datasetName, tableName); + queryPartitionedTable(query); + } + + public static void queryPartitionedTable(String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .addNamedParameter("start_date", QueryParameterValue.date("1800-01-01")) + .addNamedParameter("end_date", QueryParameterValue.date("1899-12-31")) + .build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query partitioned table performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_partitioned_table] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryPartitionedTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryPartitionedTableIT.java new file mode 100644 index 000000000000..d64f56f17701 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryPartitionedTableIT.java @@ -0,0 +1,83 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class QueryPartitionedTableIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() throws Exception { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = "LOAD_PARTITIONED_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states-by-date-no-header.csv"; + LoadPartitionedTable.loadPartitionedTable(BIGQUERY_DATASET_NAME, tableName, sourceUri); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testQueryPartitionedTable() { + String query = + String.format( + "SELECT * FROM `%s.%s` WHERE date BETWEEN @start_date AND @end_date", + BIGQUERY_DATASET_NAME, tableName); + QueryPartitionedTable.queryPartitionedTable(query); + assertThat(bout.toString()).contains("Query partitioned table performed successfully."); + } +} From f13056b342a9b12066c1f810f1e1932974355b04 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 24 Jul 2020 12:41:11 -0700 Subject: [PATCH 0689/3441] chore: regen readme (#600) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 5 +++++ synth.metadata | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b375b73be4b4..0ff6af25b503 100644 --- a/README.md +++ b/README.md @@ -272,8 +272,13 @@ has instructions for running the samples. | Query Batch | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | | Query Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | | Query Destination Table CMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java) | +| Query Disable Cache | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java) | | Query Dry Run | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | | Query External GCS Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java) | +| Query External GCS Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java) | +| Query Large Results | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | +| Query Pagination | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | +| Query Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | | Query With Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | | Query With Positional Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | | Query With Structs Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | diff --git a/synth.metadata b/synth.metadata index 3aff0f28c88e..2d65c899b0c2 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "64bed2591daefed7bb8c8f93aa0a3d748a41a20d" + "sha": "055ebc09b36afc278a728d5ce1af5362ea0b5794" } }, { From 8dc5bc3851124b340a3454ce4df54ff44ac44379 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 27 Jul 2020 06:58:40 +0200 Subject: [PATCH 0690/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200719-1.30.10 (#602) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4d524549eb7e..7f2a6498198b 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20200625-1.30.10 + v2-rev20200719-1.30.10 From 1eeffe6c8cc6cf131137cfadef46782012d6e47f Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 27 Jul 2020 22:48:35 +0530 Subject: [PATCH 0691/3441] docs(samples): add query with arrays parameters (#603) --- .../bigquery/QueryWithArrayParameters.java | 69 +++++++++++++++++++ .../bigquery/QueryWithArrayParametersIT.java | 59 ++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayParametersIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java new file mode 100644 index 000000000000..9a78f629cf39 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java @@ -0,0 +1,69 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_params_arrays] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.TableResult; + +// Sample to running a query with array query parameters. +public class QueryWithArrayParameters { + + public static void runQueryWithArrayParameters() { + String gender = "M"; + String[] states = {"WA", "WI", "WV", "WY"}; + String query = + "SELECT name, sum(number) as count\n" + + "FROM `bigquery-public-data.usa_names.usa_1910_2013`\n" + + "WHERE gender = @gender\n" + + "AND state IN UNNEST(@states)\n" + + "GROUP BY name\n" + + "ORDER BY count DESC\n" + + "LIMIT 10;"; + queryWithArrayParameters(query, gender, states); + } + + public static void queryWithArrayParameters(String query, String gender, String[] states) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Note: Standard SQL is required to use query parameters. + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .addNamedParameter("gender", QueryParameterValue.string(gender)) + .addNamedParameter("states", QueryParameterValue.array(states, String.class)) + .build(); + + TableResult results = bigquery.query(queryConfig); + + // Print the results. + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + System.out.println("Query with arrays parameters performed successfully"); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_params_arrays] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayParametersIT.java new file mode 100644 index 000000000000..205903676638 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayParametersIT.java @@ -0,0 +1,59 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryWithArrayParametersIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryWithArrayParameters() { + String gender = "M"; + String[] states = {"WA", "WI", "WV", "WY"}; + String query = + "SELECT name, sum(number) as count\n" + + "FROM `bigquery-public-data.usa_names.usa_1910_2013`\n" + + "WHERE gender = @gender\n" + + "AND state IN UNNEST(@states)\n" + + "GROUP BY name\n" + + "ORDER BY count DESC\n" + + "LIMIT 10;"; + QueryWithArrayParameters.queryWithArrayParameters(query, gender, states); + assertThat(bout.toString()).contains("Query with arrays parameters performed successfully"); + } +} From 0abdd902ec4a6758be4aed91b16a3df0c0afbd94 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 27 Jul 2020 22:49:04 +0530 Subject: [PATCH 0692/3441] docs(samples): add query with timestamp parameters (#604) --- .../QueryWithTimestampParameters.java | 67 +++++++++++++++++++ .../QueryWithTimestampParametersIT.java | 49 ++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java new file mode 100644 index 000000000000..8aaf03518ba1 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java @@ -0,0 +1,67 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_params_timestamps] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.TableResult; +import org.threeten.bp.LocalDateTime; +import org.threeten.bp.ZoneOffset; +import org.threeten.bp.ZonedDateTime; + +// Sample to running a query with timestamp query parameters. +public class QueryWithTimestampParameters { + + public static void runQueryWithTimestampParameters() { + queryWithTimestampParameters(); + } + + public static void queryWithTimestampParameters() { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + ZonedDateTime timestamp = LocalDateTime.of(2016, 12, 7, 8, 0, 0).atZone(ZoneOffset.UTC); + String query = "SELECT TIMESTAMP_ADD(@ts_value, INTERVAL 1 HOUR);"; + // Note: Standard SQL is required to use query parameters. + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .addNamedParameter( + "ts_value", + QueryParameterValue.timestamp( + // Timestamp takes microseconds since 1970-01-01T00:00:00 UTC + timestamp.toInstant().toEpochMilli() * 1000)) + .build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s", val.toString()))); + + System.out.println("Query with timestamp parameter performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_params_timestamps] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java new file mode 100644 index 000000000000..09bee86d06a3 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java @@ -0,0 +1,49 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryWithTimestampParametersIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryWithTimestampParameters() { + QueryWithTimestampParameters.queryWithTimestampParameters(); + assertThat(bout.toString()).contains("Query with timestamp parameter performed successfully."); + } +} From ca073025b8d156bf9e76656fb36f49a5f81927c9 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 27 Jul 2020 22:49:28 +0530 Subject: [PATCH 0693/3441] docs(samples): add query script (#605) --- .../com/example/bigquery/QueryScript.java | 76 +++++++++++++++++++ .../com/example/bigquery/QueryScriptIT.java | 67 ++++++++++++++++ 2 files changed, 143 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryScript.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryScriptIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java b/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java new file mode 100644 index 000000000000..c9da185f5e86 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java @@ -0,0 +1,76 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_script] +import com.google.api.gax.paging.Page; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.QueryJobConfiguration; + +// Sample to run query script. +public class QueryScript { + + public static void runQueryScript() { + String script = + "-- Declare a variable to hold names as an array.\n" + + "DECLARE top_names ARRAY;\n" + + "-- Build an array of the top 100 names from the year 2017.\n" + + "SET top_names = (\n" + + " SELECT ARRAY_AGG(name ORDER BY number DESC LIMIT 100)\n" + + " FROM `bigquery-public-data`.usa_names.usa_1910_current\n" + + " WHERE year = 2017\n" + + ");\n" + + "-- Which names appear as words in Shakespeare's plays?\n" + + "SELECT\n" + + " name AS shakespeare_name\n" + + "FROM UNNEST(top_names) AS name\n" + + "WHERE name IN (\n" + + " SELECT word\n" + + " FROM `bigquery-public-data`.samples.shakespeare\n" + + ");"; + queryScript(script); + } + + public static void queryScript(String script) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(script).build(); + Job createJob = bigquery.create(JobInfo.of(queryConfig)); + // Wait for the whole script to finish. + JobInfo jobInfo = createJob.waitFor(); + String parentJobId = jobInfo.getJobId().getJob(); + + // Fetch jobs created by the SQL script. + Page childJobs = bigquery.listJobs(BigQuery.JobListOption.parentJobId(parentJobId)); + childJobs + .iterateAll() + .forEach(job -> System.out.printf("Child Job Id: ", job.getJobId().getJob())); + + System.out.println("Query script performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_script] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryScriptIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryScriptIT.java new file mode 100644 index 000000000000..c2c5ca39046a --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryScriptIT.java @@ -0,0 +1,67 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryScriptIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryScript() { + String script = + "-- Declare a variable to hold names as an array.\n" + + "DECLARE top_names ARRAY;\n" + + "-- Build an array of the top 100 names from the year 2017.\n" + + "SET top_names = (\n" + + " SELECT ARRAY_AGG(name ORDER BY number DESC LIMIT 100)\n" + + " FROM `bigquery-public-data`.usa_names.usa_1910_current\n" + + " WHERE year = 2017\n" + + ");\n" + + "-- Which names appear as words in Shakespeare's plays?\n" + + "SELECT\n" + + " name AS shakespeare_name\n" + + "FROM UNNEST(top_names) AS name\n" + + "WHERE name IN (\n" + + " SELECT word\n" + + " FROM `bigquery-public-data`.samples.shakespeare\n" + + ");"; + + QueryScript.queryScript(script); + assertThat(bout.toString()).contains("Query script performed successfully."); + } +} From be6a87448c56f6c90ce08d6cb1b69a161691241a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 27 Jul 2020 17:09:00 -0700 Subject: [PATCH 0694/3441] chore: regen readme for samples (#607) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 3 +++ synth.metadata | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0ff6af25b503..17aa73d4a769 100644 --- a/README.md +++ b/README.md @@ -279,9 +279,12 @@ has instructions for running the samples. | Query Large Results | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | | Query Pagination | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | | Query Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | +| Query Script | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | +| Query With Array Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | | Query With Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | | Query With Positional Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | | Query With Structs Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | +| Query With Timestamp Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java) | | Quickstart Sample | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java) | | Relax Column Mode | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | | Relax Table Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | diff --git a/synth.metadata b/synth.metadata index 2d65c899b0c2..37552d764d10 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "055ebc09b36afc278a728d5ce1af5362ea0b5794" + "sha": "ca073025b8d156bf9e76656fb36f49a5f81927c9" } }, { From 0da5fd16747445819212741dd55c224b867f1629 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 28 Jul 2020 21:53:19 +0530 Subject: [PATCH 0695/3441] docs(samples): add query total rows (#609) --- .../com/example/bigquery/QueryTotalRows.java | 51 ++++++++++++++++++ .../example/bigquery/QueryTotalRowsIT.java | 53 +++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryTotalRowsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java b/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java new file mode 100644 index 000000000000..6c1fe5e2ee7a --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java @@ -0,0 +1,51 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_total_rows] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; + +// Sample to run query total rows +public class QueryTotalRows { + + public static void runQueryTotalRows() { + String query = + "SELECT name FROM `bigquery-public-data.usa_names.usa_1910_2013`" + + " WHERE state = \"TX\"" + + " LIMIT 100"; + queryTotalRows(query); + } + + public static void queryTotalRows(String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableResult results = bigquery.query(QueryJobConfiguration.of(query)); + + System.out.println("Query total rows performed successfully." + results.getTotalRows()); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_total_rows] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryTotalRowsIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryTotalRowsIT.java new file mode 100644 index 000000000000..8353e09da3b4 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryTotalRowsIT.java @@ -0,0 +1,53 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryTotalRowsIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryTotalRows() { + String query = + "SELECT name FROM `bigquery-public-data.usa_names.usa_1910_2013`" + + " WHERE state = \"TX\"" + + " LIMIT 100"; + QueryTotalRows.queryTotalRows(query); + assertThat(bout.toString()).contains("Query total rows performed successfully."); + } +} From db9eef76c066ba2b57fe2b6f64d6c966474b9071 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 28 Jul 2020 21:53:48 +0530 Subject: [PATCH 0696/3441] docs(samples): add table exists (#610) --- .../com/example/bigquery/TableExists.java | 53 +++++++++++++ .../com/example/bigquery/TableExistsIT.java | 78 +++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/TableExists.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/TableExists.java b/samples/snippets/src/main/java/com/example/bigquery/TableExists.java new file mode 100644 index 000000000000..ca4bad345be0 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/TableExists.java @@ -0,0 +1,53 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_table_exists] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; + +// Sample to check table exist +public class TableExists { + + public static void runTableExists() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + tableExists(datasetName, tableName); + } + + public static void tableExists(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Table table = bigquery.getTable(TableId.of(datasetName, tableName)); + if (table.exists()) { + System.out.println("Table already exist"); + } else { + System.out.println("Table not found"); + } + } catch (BigQueryException e) { + System.out.println("Table not found. \n" + e.toString()); + } + } +} +// [END bigquery_table_exists] diff --git a/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java b/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java new file mode 100644 index 000000000000..661dcb0deadf --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java @@ -0,0 +1,78 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class TableExistsIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + // create a temporary table + tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // delete a temporary table + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testTableExists() { + TableExists.tableExists(BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Table already exist"); + } +} From 720b5acfe2f9f46eebb18b6e5d0db881b0ad7e2a Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 28 Jul 2020 21:55:27 +0530 Subject: [PATCH 0697/3441] docs(samples): add update dataset partition expiration (#612) --- .../UpdateDatasetPartitionExpiration.java | 53 ++++++++++++ .../UpdateDatasetPartitionExpirationIT.java | 80 +++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetPartitionExpirationIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java new file mode 100644 index 000000000000..d52ea8c1fb37 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java @@ -0,0 +1,53 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_dataset_partition_expiration] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import java.util.concurrent.TimeUnit; + +// Sample to update partition expiration on a dataset. +public class UpdateDatasetPartitionExpiration { + + public static void runUpdateDatasetPartitionExpiration() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + // Set the default partition expiration (applies to new tables, only) in + // milliseconds. This example sets the default expiration to 90 days. + Long newExpiration = TimeUnit.MILLISECONDS.convert(90, TimeUnit.DAYS); + updateDatasetPartitionExpiration(datasetName, newExpiration); + } + + public static void updateDatasetPartitionExpiration(String datasetName, Long newExpiration) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Dataset dataset = bigquery.getDataset(datasetName); + bigquery.update(dataset.toBuilder().setDefaultPartitionExpirationMs(newExpiration).build()); + System.out.println( + "Dataset default partition expiration updated successfully to " + newExpiration); + } catch (BigQueryException e) { + System.out.println("Dataset partition expiration was not updated \n" + e.toString()); + } + } +} +// [END bigquery_update_dataset_partition_expiration] diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetPartitionExpirationIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetPartitionExpirationIT.java new file mode 100644 index 000000000000..2ba5c2fb9c7a --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetPartitionExpirationIT.java @@ -0,0 +1,80 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.concurrent.TimeUnit; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class UpdateDatasetPartitionExpirationIT { + + private String datasetName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String GOOGLE_CLOUD_PROJECT = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + datasetName = RemoteBigQueryHelper.generateDatasetName(); + // Create a dataset in order to modify its partition expiration + CreateDataset.createDataset(datasetName); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, datasetName); + System.setOut(null); + } + + @Test + public void testUpdateDatasetPartitionExpiration() { + Long newExpiration = TimeUnit.MILLISECONDS.convert(90, TimeUnit.DAYS); + UpdateDatasetPartitionExpiration.updateDatasetPartitionExpiration(datasetName, newExpiration); + assertThat(bout.toString()) + .contains("Dataset default partition expiration updated successfully"); + } +} From 36989696b9a8c0bbad5b28a834906df8fafc4074 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 28 Jul 2020 16:44:03 -0700 Subject: [PATCH 0698/3441] chore: regenerate samples list (#615) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/dbbb67d7-4ea8-474e-aa12-ba9b084f1285/targets - [ ] To automatically regenerate this PR, check this box. --- README.md | 3 +++ synth.metadata | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 17aa73d4a769..bef07edf1409 100644 --- a/README.md +++ b/README.md @@ -280,6 +280,7 @@ has instructions for running the samples. | Query Pagination | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | | Query Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | | Query Script | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | +| Query Total Rows | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java) | | Query With Array Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | | Query With Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | | Query With Positional Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | @@ -292,11 +293,13 @@ has instructions for running the samples. | Save Query To Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | | Simple App | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | | Simple Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | +| Table Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | | Table Insert Rows | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | | Table Insert Rows Without Row Ids | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | | Update Dataset Access | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | | Update Dataset Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | | Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | +| Update Dataset Partition Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | | Update Table DML | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java) | | Update Table Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | | Update Table Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | diff --git a/synth.metadata b/synth.metadata index 37552d764d10..6c8bf0d67def 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "ca073025b8d156bf9e76656fb36f49a5f81927c9" + "sha": "720b5acfe2f9f46eebb18b6e5d0db881b0ad7e2a" } }, { From 6c763d58f2f13f52a44983b56b74b300a17468cc Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 29 Jul 2020 14:24:05 +0530 Subject: [PATCH 0699/3441] docs(samples): add undelete table (#611) * docs(samples): add undelete table * docs(samples): update code --- .../com/example/bigquery/UndeleteTable.java | 79 +++++++++++++++++++ .../com/example/bigquery/UndeleteTableIT.java | 79 +++++++++++++++++++ 2 files changed, 158 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java b/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java new file mode 100644 index 000000000000..23c406704fd2 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java @@ -0,0 +1,79 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_undelete_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.CopyJobConfiguration; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.TableId; +import org.threeten.bp.Instant; + +// Sample to undeleting a table +public class UndeleteTable { + + public static void runUndeleteTable() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_TABLE"; + String recoverTableName = "MY_RECOVER_TABLE_TABLE"; + undeleteTable(datasetName, tableName, recoverTableName); + } + + public static void undeleteTable(String datasetName, String tableName, String recoverTableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Record the current time. We'll use this as the snapshot time + // for recovering the table. + long snapTime = Instant.now().toEpochMilli(); + + // "Accidentally" delete the table. + bigquery.delete(TableId.of(datasetName, tableName)); + + // Construct the restore-from tableID using a snapshot decorator. + String snapshotTableId = String.format("%s@%d", tableName, snapTime); + + // Construct and run a copy job. + CopyJobConfiguration configuration = + CopyJobConfiguration.newBuilder( + // Choose a new table ID for the recovered table data. + TableId.of(datasetName, recoverTableName), + TableId.of(datasetName, snapshotTableId)) + .build(); + + Job job = bigquery.create(JobInfo.of(configuration)); + job = job.waitFor(); + if (job.isDone() && job.getStatus().getError() == null) { + System.out.println("Undelete table recovered successfully."); + } else { + System.out.println( + "BigQuery was unable to copy the table due to an error: \n" + + job.getStatus().getError()); + return; + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Table not found. \n" + e.toString()); + } + } +} +// [END bigquery_undelete_table] diff --git a/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java new file mode 100644 index 000000000000..d26290bd8456 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java @@ -0,0 +1,79 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class UndeleteTableIT { + + private String tableName; + private String recoverTableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + tableName = "UNDELETE_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); + recoverTableName = "RECOVER_DELETE_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); + // Create table in dataset for testing + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, recoverTableName); + System.setOut(null); + } + + @Test + public void testUndeleteTable() { + UndeleteTable.undeleteTable(BIGQUERY_DATASET_NAME, tableName, recoverTableName); + assertThat(bout.toString()).contains("Undelete table recovered successfully."); + } +} From 873163efc7a73115895f52c009a2e9590483bcae Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 29 Jul 2020 02:40:38 -0700 Subject: [PATCH 0700/3441] changes without context (#616) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 1 + synth.metadata | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index bef07edf1409..0ee60d12a5c8 100644 --- a/README.md +++ b/README.md @@ -296,6 +296,7 @@ has instructions for running the samples. | Table Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | | Table Insert Rows | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | | Table Insert Rows Without Row Ids | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | +| Undelete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java) | | Update Dataset Access | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | | Update Dataset Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | | Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | diff --git a/synth.metadata b/synth.metadata index 6c8bf0d67def..7ee53a62cb68 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "720b5acfe2f9f46eebb18b6e5d0db881b0ad7e2a" + "sha": "6c763d58f2f13f52a44983b56b74b300a17468cc" } }, { From e28abed3cd414cc7432ea188eacde8b53b7819e3 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 29 Jul 2020 11:40:55 -0400 Subject: [PATCH 0701/3441] Revert "docs(samples): add undelete table (#611)" (#620) This reverts commit 6c763d58f2f13f52a44983b56b74b300a17468cc. --- .../com/example/bigquery/UndeleteTable.java | 79 ------------------- .../com/example/bigquery/UndeleteTableIT.java | 79 ------------------- 2 files changed, 158 deletions(-) delete mode 100644 samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java delete mode 100644 samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java b/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java deleted file mode 100644 index 23c406704fd2..000000000000 --- a/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.example.bigquery; - -// [START bigquery_undelete_table] -import com.google.cloud.bigquery.BigQuery; -import com.google.cloud.bigquery.BigQueryException; -import com.google.cloud.bigquery.BigQueryOptions; -import com.google.cloud.bigquery.CopyJobConfiguration; -import com.google.cloud.bigquery.Job; -import com.google.cloud.bigquery.JobInfo; -import com.google.cloud.bigquery.TableId; -import org.threeten.bp.Instant; - -// Sample to undeleting a table -public class UndeleteTable { - - public static void runUndeleteTable() { - // TODO(developer): Replace these variables before running the sample. - String datasetName = "MY_DATASET_NAME"; - String tableName = "MY_TABLE_TABLE"; - String recoverTableName = "MY_RECOVER_TABLE_TABLE"; - undeleteTable(datasetName, tableName, recoverTableName); - } - - public static void undeleteTable(String datasetName, String tableName, String recoverTableName) { - try { - // Initialize client that will be used to send requests. This client only needs to be created - // once, and can be reused for multiple requests. - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - - // Record the current time. We'll use this as the snapshot time - // for recovering the table. - long snapTime = Instant.now().toEpochMilli(); - - // "Accidentally" delete the table. - bigquery.delete(TableId.of(datasetName, tableName)); - - // Construct the restore-from tableID using a snapshot decorator. - String snapshotTableId = String.format("%s@%d", tableName, snapTime); - - // Construct and run a copy job. - CopyJobConfiguration configuration = - CopyJobConfiguration.newBuilder( - // Choose a new table ID for the recovered table data. - TableId.of(datasetName, recoverTableName), - TableId.of(datasetName, snapshotTableId)) - .build(); - - Job job = bigquery.create(JobInfo.of(configuration)); - job = job.waitFor(); - if (job.isDone() && job.getStatus().getError() == null) { - System.out.println("Undelete table recovered successfully."); - } else { - System.out.println( - "BigQuery was unable to copy the table due to an error: \n" - + job.getStatus().getError()); - return; - } - } catch (BigQueryException | InterruptedException e) { - System.out.println("Table not found. \n" + e.toString()); - } - } -} -// [END bigquery_undelete_table] diff --git a/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java deleted file mode 100644 index d26290bd8456..000000000000 --- a/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.example.bigquery; - -import static com.google.common.truth.Truth.assertThat; -import static junit.framework.TestCase.assertNotNull; - -import com.google.cloud.bigquery.Schema; -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; -import java.util.UUID; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - -public class UndeleteTableIT { - - private String tableName; - private String recoverTableName; - private ByteArrayOutputStream bout; - private PrintStream out; - - private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); - - private static void requireEnvVar(String varName) { - assertNotNull( - "Environment variable " + varName + " is required to perform these tests.", - System.getenv(varName)); - } - - @BeforeClass - public static void checkRequirements() { - requireEnvVar("BIGQUERY_DATASET_NAME"); - } - - @Before - public void setUp() { - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); - - tableName = "UNDELETE_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); - recoverTableName = "RECOVER_DELETE_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); - // Create table in dataset for testing - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); - } - - @After - public void tearDown() { - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, recoverTableName); - System.setOut(null); - } - - @Test - public void testUndeleteTable() { - UndeleteTable.undeleteTable(BIGQUERY_DATASET_NAME, tableName, recoverTableName); - assertThat(bout.toString()).contains("Undelete table recovered successfully."); - } -} From a8cb797ab9f758c1af74faa84e8f71bf76a69223 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 29 Jul 2020 22:12:53 +0530 Subject: [PATCH 0702/3441] docs(samples): add update model description (#617) --- .../bigquery/UpdateModelDescription.java | 52 ++++++++++ .../bigquery/UpdateModelDescriptionIT.java | 94 +++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java new file mode 100644 index 000000000000..2f8392070159 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java @@ -0,0 +1,52 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_model_description] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Model; +import com.google.cloud.bigquery.ModelId; + +// Sample to update description on a model +public class UpdateModelDescription { + + public static void runUpdateModelDescription() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String modelName = "MY_MODEL_NAME"; + String newDescription = "A really great model."; + updateModelDescription(datasetName, modelName, newDescription); + } + + public static void updateModelDescription( + String datasetName, String modelName, String newDescription) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Model model = bigquery.getModel(ModelId.of(datasetName, modelName)); + bigquery.update(model.toBuilder().setDescription(newDescription).build()); + System.out.println("Model description updated successfully to " + newDescription); + } catch (BigQueryException e) { + System.out.println("Model description was not updated \n" + e.toString()); + } + } +} +// [END bigquery_update_model_description] diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java new file mode 100644 index 000000000000..50c454ab01ea --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java @@ -0,0 +1,94 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class UpdateModelDescriptionIT { + + private String modelName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + // create a test model + modelName = "MY_MODEL_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + String sql = + "CREATE MODEL `" + + BIGQUERY_DATASET_NAME + + "." + + modelName + + "`" + + "OPTIONS ( " + + "model_type='linear_reg', " + + "max_iteration=1, " + + "learn_rate=0.4, " + + "learn_rate_strategy='constant' " + + ") AS ( " + + " SELECT 'a' AS f1, 2.0 AS label " + + "UNION ALL " + + "SELECT 'b' AS f1, 3.8 AS label " + + ")"; + CreateModel.createModel(sql); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteModel.deleteModel(BIGQUERY_DATASET_NAME, modelName); + System.setOut(null); + } + + @Test + public void testUpdateModelDescription() { + String newDescription = "A really great model."; + UpdateModelDescription.updateModelDescription(BIGQUERY_DATASET_NAME, modelName, newDescription); + assertThat(bout.toString()).contains("Model description updated successfully"); + } +} From ae97b5fec36daed60a4f51d1e5bdd3438aa079aa Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 29 Jul 2020 21:56:37 -0700 Subject: [PATCH 0703/3441] changes without context (#621) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0ee60d12a5c8..0a1809d502d6 100644 --- a/README.md +++ b/README.md @@ -296,11 +296,11 @@ has instructions for running the samples. | Table Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | | Table Insert Rows | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | | Table Insert Rows Without Row Ids | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | -| Undelete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java) | | Update Dataset Access | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | | Update Dataset Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | | Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | | Update Dataset Partition Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | +| Update Model Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | | Update Table DML | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java) | | Update Table Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | | Update Table Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | diff --git a/synth.metadata b/synth.metadata index 7ee53a62cb68..244f4717ee53 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "6c763d58f2f13f52a44983b56b74b300a17468cc" + "sha": "a8cb797ab9f758c1af74faa84e8f71bf76a69223" } }, { From 31cc9375c78156643b03374fddeb7aab4b26b4f3 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 30 Jul 2020 12:03:21 +0530 Subject: [PATCH 0704/3441] docs(samples): add update table cmek (#619) --- .../com/example/bigquery/UpdateTableCMEK.java | 57 ++++++++++++ .../example/bigquery/UpdateTableCMEKIT.java | 91 +++++++++++++++++++ 2 files changed, 148 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/UpdateTableCMEKIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java new file mode 100644 index 000000000000..c0431c8f7b8d --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java @@ -0,0 +1,57 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_table_cmek] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.EncryptionConfiguration; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; + +// Sample to update a cmek table +public class UpdateTableCMEK { + + public static void runUpdateTableCMEK() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String kmsKeyName = "MY_KEY_NAME"; + // Set a new encryption key to use for the destination. + // i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey} + EncryptionConfiguration encryption = + EncryptionConfiguration.newBuilder().setKmsKeyName(kmsKeyName).build(); + updateTableCMEK(datasetName, tableName, encryption); + } + + public static void updateTableCMEK( + String datasetName, String tableName, EncryptionConfiguration encryption) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Table table = bigquery.getTable(TableId.of(datasetName, tableName)); + bigquery.update(table.toBuilder().setEncryptionConfiguration(encryption).build()); + System.out.println("Table cmek updated successfully"); + } catch (BigQueryException e) { + System.out.println("Table cmek was not updated. \n" + e.toString()); + } + } +} +// [END bigquery_update_table_cmek] diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCMEKIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCMEKIT.java new file mode 100644 index 000000000000..6ec7de63a42e --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCMEKIT.java @@ -0,0 +1,91 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.EncryptionConfiguration; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class UpdateTableCMEKIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + private static final String BIGQUERY_KMS_KEY_NAME = requireEnvVar("BIGQUERY_KMS_KEY_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + requireEnvVar("BIGQUERY_KMS_KEY_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + // create a test table. + tableName = "MY_UPDATE_TABLE_CMEK_TEST" + UUID.randomUUID().toString().substring(0, 8); + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + EncryptionConfiguration encryption = + EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); + CreateTableCMEK.createTableCMEK(BIGQUERY_DATASET_NAME, tableName, schema, encryption); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testUpdateTableCMEK() { + EncryptionConfiguration encryption = + EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); + UpdateTableCMEK.updateTableCMEK(BIGQUERY_DATASET_NAME, tableName, encryption); + assertThat(bout.toString()).contains("Table cmek updated successfully"); + } +} From 9b9b770e57d048b1fb027c3500f0d6c56dce647d Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 30 Jul 2020 04:01:40 -0700 Subject: [PATCH 0705/3441] changes without context (#623) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 1 + synth.metadata | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a1809d502d6..d6ecf929e6b6 100644 --- a/README.md +++ b/README.md @@ -301,6 +301,7 @@ has instructions for running the samples. | Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | | Update Dataset Partition Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | | Update Model Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | +| Update Table CMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java) | | Update Table DML | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java) | | Update Table Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | | Update Table Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | diff --git a/synth.metadata b/synth.metadata index 244f4717ee53..483a416dd93c 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "a8cb797ab9f758c1af74faa84e8f71bf76a69223" + "sha": "31cc9375c78156643b03374fddeb7aab4b26b4f3" } }, { From b480de415e53782efb9c67b4a920367075cfaee3 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 30 Jul 2020 21:02:15 +0530 Subject: [PATCH 0706/3441] refactor(samples): load clustered table (#622) --- .../example/bigquery/LoadTableClustered.java | 23 ++++++++----------- .../bigquery/LoadTableClusteredIT.java | 21 +++++++++-------- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java b/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java index a3e0245188cd..ad171eca6d6c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java @@ -33,9 +33,10 @@ import com.google.common.collect.ImmutableList; import java.util.List; +// Sample to load clustered table. public class LoadTableClustered { - public static void runLoadTableClustered() throws Exception { + public static void runLoadTableClustered() { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; @@ -54,8 +55,7 @@ public static void loadTableClustered( String tableName, String sourceUri, Schema schema, - List clusteringFields) - throws Exception { + List clusteringFields) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -80,19 +80,16 @@ public static void loadTableClustered( // Load data from a GCS parquet file into the table // Blocks until this load table job completes its execution, either failing or succeeding. - Job completedJob = loadJob.waitFor(); + Job job = loadJob.waitFor(); // Check for errors - if (completedJob == null) { - throw new Exception("Job not executed since it no longer exists."); - } else if (completedJob.getStatus().getError() != null) { - // You can also look at queryJob.getStatus().getExecutionErrors() for all - // errors, not just the latest one. - throw new Exception( - "BigQuery was unable to load into the table due to an error: \n" - + loadJob.getStatus().getError()); + if (job.isDone() && job.getStatus().getError() == null) { + System.out.println("Data successfully loaded into clustered table during load job"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); } - System.out.println("Data successfully loaded into clustered table during load job"); } catch (BigQueryException | InterruptedException e) { System.out.println("Data not loaded into clustered table during load job \n" + e.toString()); } diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java index 3c05c7285392..3567dea9f94d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java @@ -25,21 +25,26 @@ import com.google.common.collect.ImmutableList; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.UUID; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class LoadTableClusteredIT { + + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; - private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); - private static void requireEnvVar(String varName) { + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); assertNotNull( "Environment variable " + varName + " is required to perform these tests.", System.getenv(varName)); + return value; } @BeforeClass @@ -49,6 +54,7 @@ public static void checkRequirements() { @Before public void setUp() { + tableName = "LOAD_CLUSTERED_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); System.setOut(out); @@ -56,15 +62,14 @@ public void setUp() { @After public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); System.setOut(null); } @Test - public void loadTableClustered() throws Exception { + public void testLoadTableClustered() { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states-by-date-no-header.csv"; - - String tableName = "LOAD_CLUSTERED_TABLE_TEST"; - Schema schema = Schema.of( Field.of("name", StandardSQLTypeName.STRING), @@ -73,11 +78,7 @@ public void loadTableClustered() throws Exception { LoadTableClustered.loadTableClustered( BIGQUERY_DATASET_NAME, tableName, sourceUri, schema, ImmutableList.of("name", "post_abbr")); - assertThat(bout.toString()) .contains("Data successfully loaded into clustered table during load job"); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } From a889800b16483a85400198b2cb261d95afb2c69b Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 30 Jul 2020 21:05:07 +0530 Subject: [PATCH 0707/3441] docs(samples): add update routine (#618) --- .../com/example/bigquery/UpdateRoutine.java | 50 ++++++++++++ .../com/example/bigquery/UpdateRoutineIT.java | 78 +++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/UpdateRoutineIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java new file mode 100644 index 000000000000..4b86bd0376af --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java @@ -0,0 +1,50 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_routine] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Routine; +import com.google.cloud.bigquery.RoutineId; + +// Sample to update routine +public class UpdateRoutine { + + public static void runUpdateRoutine() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String routineName = "MY_ROUTINE_NAME"; + updateRoutine(datasetName, routineName); + } + + public static void updateRoutine(String datasetName, String routineName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Routine routine = bigquery.getRoutine(RoutineId.of(datasetName, routineName)); + routine.toBuilder().setBody("x * 4").build().update(); + System.out.println("Routine updated successfully"); + } catch (BigQueryException e) { + System.out.println("Routine was not updated. \n" + e.toString()); + } + } +} +// [END bigquery_update_routine] diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateRoutineIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateRoutineIT.java new file mode 100644 index 000000000000..e9b5f3593917 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateRoutineIT.java @@ -0,0 +1,78 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class UpdateRoutineIT { + + private String routineName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // create a temporary routine + routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateRoutine.createRoutine(BIGQUERY_DATASET_NAME, routineName); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); + System.setOut(null); + } + + @Test + public void testUpdateRoutine() { + UpdateRoutine.updateRoutine(BIGQUERY_DATASET_NAME, routineName); + assertThat(bout.toString()).contains("Routine updated successfully"); + } +} From 29272bb9a3238b2f0dab2e44b23db6909d3809a2 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 30 Jul 2020 21:05:31 +0530 Subject: [PATCH 0708/3441] docs(samples): add update table require partition filter (#624) --- .../UpdateTableRequirePartitionFilter.java | 50 +++++++++++ .../UpdateTableRequirePartitionFilterIT.java | 89 +++++++++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilterIT.java diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java new file mode 100644 index 000000000000..35ff648ac93f --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java @@ -0,0 +1,50 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_table_require_partition_filter] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Table; + +// Sample to update require partition filter on a table. +public class UpdateTableRequirePartitionFilter { + + public static void runUpdateTableRequirePartitionFilter() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + updateTableRequirePartitionFilter(datasetName, tableName); + } + + public static void updateTableRequirePartitionFilter(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Table table = bigquery.getTable(datasetName, tableName); + table.toBuilder().setRequirePartitionFilter(true).build().update(); + + System.out.println("Table require partition filter updated successfully"); + } catch (BigQueryException e) { + System.out.println("Table require partition filter was not updated \n" + e.toString()); + } + } +} +// [END bigquery_update_table_require_partition_filter] diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilterIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilterIT.java new file mode 100644 index 000000000000..83682f265da8 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilterIT.java @@ -0,0 +1,89 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class UpdateTableRequirePartitionFilterIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + tableName = + "UPDATE_TABLE_REQUIRE_PARTITION_FILTER_TEST_" + + UUID.randomUUID().toString().substring(0, 8); + // Create a table in order to modify its partition filter. + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING), + Field.of("date", StandardSQLTypeName.DATE)); + CreatePartitionedTable.createPartitionedTable(BIGQUERY_DATASET_NAME, tableName, schema); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testUpdateTableRequirePartitionFilter() { + UpdateTableRequirePartitionFilter.updateTableRequirePartitionFilter( + BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Table require partition filter updated successfully"); + } +} From 8d717202ed36f55dd141ba45243f2dc30b597d99 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 30 Jul 2020 21:05:52 +0530 Subject: [PATCH 0709/3441] docs(samples): update view query (#625) --- .../com/example/bigquery/UpdateViewQuery.java | 62 +++++++++++ .../example/bigquery/UpdateViewQueryIT.java | 100 ++++++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/UpdateViewQueryIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java new file mode 100644 index 000000000000..2f36ea8a5052 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java @@ -0,0 +1,62 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_view_query] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.ViewDefinition; + +// Sample to update query on a view +public class UpdateViewQuery { + + public static void runUpdateViewQuery() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String viewName = "MY_VIEW_NAME"; + String updateQuery = + String.format("SELECT TimestampField, StringField FROM %s.%s", datasetName, tableName); + updateViewQuery(datasetName, viewName, updateQuery); + } + + public static void updateViewQuery(String datasetName, String viewName, String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Retrieve existing view metadata + TableInfo viewMetadata = bigquery.getTable(TableId.of(datasetName, viewName)); + + // Update view query + ViewDefinition viewDefinition = viewMetadata.getDefinition(); + viewDefinition.toBuilder().setQuery(query).build(); + + // Set metadata + bigquery.update(viewMetadata.toBuilder().setDefinition(viewDefinition).build()); + + System.out.println("View query updated successfully"); + } catch (BigQueryException e) { + System.out.println("View query was not updated. \n" + e.toString()); + } + } +} +// [END bigquery_update_view_query] diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateViewQueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateViewQueryIT.java new file mode 100644 index 000000000000..d58bdad18b6a --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateViewQueryIT.java @@ -0,0 +1,100 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class UpdateViewQueryIT { + + private String tableName; + private String viewName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + viewName = "MY_VIEW_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + + // create a test table. + Schema schema = + Schema.of( + Field.of("timestampField", StandardSQLTypeName.TIMESTAMP), + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + + // create a test view + String query = + String.format( + "SELECT timestampField, stringField, booleanField FROM %s.%s", + BIGQUERY_DATASET_NAME, tableName); + CreateView.createView(BIGQUERY_DATASET_NAME, viewName, query); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, viewName); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testUpdateViewQuery() { + String updateQuery = + String.format( + "SELECT TimestampField, StringField FROM %s.%s", BIGQUERY_DATASET_NAME, tableName); + UpdateViewQuery.updateViewQuery(BIGQUERY_DATASET_NAME, viewName, updateQuery); + assertThat(bout.toString()).contains("View query updated successfully"); + } +} From 209d035c66fe776ad31db848d4d1b7c669f73595 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Sat, 1 Aug 2020 01:21:45 +0530 Subject: [PATCH 0710/3441] docs(samples): add delete dataset and contents (#629) --- .../bigquery/DeleteDatasetAndContents.java | 54 +++++++++++++ .../bigquery/DeleteDatasetAndContentsIT.java | 75 +++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetAndContentsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java new file mode 100644 index 000000000000..753b024832c3 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java @@ -0,0 +1,54 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_delete_dataset_and_contents] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.DatasetId; + +// Sample to delete dataset with contents. +public class DeleteDatasetAndContents { + + public static void runDeleteDatasetAndContents() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String datasetName = "MY_DATASET_NAME"; + deleteDatasetAndContents(projectId, datasetName); + } + + public static void deleteDatasetAndContents(String projectId, String datasetName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + DatasetId datasetId = DatasetId.of(projectId, datasetName); + // Use the force parameter to delete a dataset and its contents + boolean success = bigquery.delete(datasetId, BigQuery.DatasetDeleteOption.deleteContents()); + if (success) { + System.out.println("Dataset deleted with contents successfully"); + } else { + System.out.println("Dataset was not found"); + } + } catch (BigQueryException e) { + System.out.println("Dataset was not deleted with contents. \n" + e.toString()); + } + } +} +// [END bigquery_delete_dataset_and_contents] diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetAndContentsIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetAndContentsIT.java new file mode 100644 index 000000000000..1ee233f901f6 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetAndContentsIT.java @@ -0,0 +1,75 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class DeleteDatasetAndContentsIT { + + private String datasetName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + // create a temporary dataset + datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateDataset.createDataset(datasetName); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testDeleteDatasetAndContents() { + DeleteDatasetAndContents.deleteDatasetAndContents(PROJECT_ID, datasetName); + assertThat(bout.toString()).contains("Dataset deleted with contents successfully"); + } +} From de564d1b272c5126af81ba3c34c68c5237cfdcbb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 31 Jul 2020 12:51:56 -0700 Subject: [PATCH 0711/3441] changes without context (#627) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 ++ synth.metadata | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d6ecf929e6b6..e527e35f56a9 100644 --- a/README.md +++ b/README.md @@ -301,10 +301,12 @@ has instructions for running the samples. | Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | | Update Dataset Partition Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | | Update Model Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | +| Update Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java) | | Update Table CMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java) | | Update Table DML | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java) | | Update Table Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | | Update Table Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | +| Update View Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java) | diff --git a/synth.metadata b/synth.metadata index 483a416dd93c..8a2941c51804 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "31cc9375c78156643b03374fddeb7aab4b26b4f3" + "sha": "8d717202ed36f55dd141ba45243f2dc30b597d99" } }, { From 108e4624f9dd4fece5cf9d5c258684d5b8a51f55 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 31 Jul 2020 12:52:22 -0700 Subject: [PATCH 0712/3441] chore: regen common template (#628) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * Add cloud-RAD for Java Co-authored-by: Jeff Ching Source-Author: Les Vogel Source-Date: Thu Jul 30 13:09:50 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: dd230c816f88d0141fcd0be83498986287220d1b Source-Link: https://github.com/googleapis/synthtool/commit/dd230c816f88d0141fcd0be83498986287220d1b --- .kokoro/release/publish_javadoc.cfg | 10 ++++++++++ .kokoro/release/publish_javadoc.sh | 25 +++++++++++++++++++++++-- synth.metadata | 2 +- 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/.kokoro/release/publish_javadoc.cfg b/.kokoro/release/publish_javadoc.cfg index e2fbf8c1114b..cb5db99470e8 100644 --- a/.kokoro/release/publish_javadoc.cfg +++ b/.kokoro/release/publish_javadoc.cfg @@ -1,14 +1,24 @@ # Format: //devtools/kokoro/config/proto/build.proto + +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/doc-templates/" + env_vars: { key: "STAGING_BUCKET" value: "docs-staging" } +env_vars: { + key: "STAGING_BUCKET_V2" + value: "docs-staging-v2-staging" + # Production will be at: docs-staging-v2 +} + env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/java-bigquery/.kokoro/release/publish_javadoc.sh" } + before_action { fetch_keystore { keystore_resource { diff --git a/.kokoro/release/publish_javadoc.sh b/.kokoro/release/publish_javadoc.sh index a5a508ba4694..8aa3449bc62b 100755 --- a/.kokoro/release/publish_javadoc.sh +++ b/.kokoro/release/publish_javadoc.sh @@ -24,6 +24,11 @@ if [[ -z "${STAGING_BUCKET}" ]]; then exit 1 fi +if [[ -z "${STAGING_BUCKET_V2}" ]]; then + echo "Need to set STAGING_BUCKET_V2 environment variable" + exit 1 +fi + # work from the git root directory pushd $(dirname "$0")/../../ @@ -31,13 +36,13 @@ pushd $(dirname "$0")/../../ python3 -m pip install gcp-docuploader # compile all packages -mvn clean install -B -DskipTests=true +mvn clean install -B -q -DskipTests=true NAME=google-cloud-bigquery VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) # build the docs -mvn site -B +mvn site -B -q pushd target/site/apidocs @@ -53,3 +58,19 @@ python3 -m docuploader upload . \ --staging-bucket ${STAGING_BUCKET} popd + +# V2 +mvn clean site -B -q -Ddevsite.template="${KOKORO_GFILE_DIR}/java/" + +pushd target/devsite + +# create metadata +python3 -m docuploader create-metadata \ + --name ${NAME} \ + --version ${VERSION} \ + --language java + +# upload docs +python3 -m docuploader upload . \ + --credentials ${CREDENTIALS} \ + --staging-bucket ${STAGING_BUCKET_V2} diff --git a/synth.metadata b/synth.metadata index 8a2941c51804..81e04270d60a 100644 --- a/synth.metadata +++ b/synth.metadata @@ -11,7 +11,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "4f2c9f752a94042472fc03c5bd9e06e89817d2bd" + "sha": "dd230c816f88d0141fcd0be83498986287220d1b" } } ], From 082f1a2c2aeeaf1243681bee921fc54328969728 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 3 Aug 2020 20:20:42 +0530 Subject: [PATCH 0713/3441] docs(samples): add query with name types parameters (#633) --- .../QueryWithNamedTypesParameters.java | 77 +++++++++++++++++++ .../QueryWithNamedTypesParametersIT.java | 60 +++++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedTypesParametersIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java new file mode 100644 index 000000000000..891d8192fcbe --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java @@ -0,0 +1,77 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_params_named_types] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableResult; + +// Sample to run query with named types parameters. +public class QueryWithNamedTypesParameters { + + public static void runQueryWithNamedTypesParameters() { + String[] words = {"and", "is", "the", "moon"}; + String corpus = "romeoandjuliet"; + Integer wordsCount = 250; + String query = + "SELECT word, word_count" + + " FROM `bigquery-public-data.samples.shakespeare`" + + " WHERE word IN UNNEST(@wordList)" + + " AND corpus = @corpus" + + " AND word_count >= @minWordCount" + + " ORDER BY word_count DESC"; + queryWithNamedTypesParameters(query, words, corpus, wordsCount); + } + + public static void queryWithNamedTypesParameters( + String query, String[] words, String corpus, Integer wordsCount) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryParameterValue wordList = QueryParameterValue.array(words, StandardSQLTypeName.STRING); + QueryParameterValue corpusParam = QueryParameterValue.of(corpus, StandardSQLTypeName.STRING); + QueryParameterValue minWordCount = + QueryParameterValue.of(wordsCount, StandardSQLTypeName.INT64); + + // Note: Standard SQL is required to use query parameters. + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .addNamedParameter("wordList", wordList) + .addNamedParameter("corpus", corpusParam) + .addNamedParameter("minWordCount", minWordCount) + .build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query with named types parameters performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_params_named_types] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedTypesParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedTypesParametersIT.java new file mode 100644 index 000000000000..7dd2fb8590a2 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedTypesParametersIT.java @@ -0,0 +1,60 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryWithNamedTypesParametersIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryWithNamedTypesParameters() { + String[] words = {"and", "is", "the", "moon"}; + String corpus = "romeoandjuliet"; + Integer wordsCount = 250; + String query = + "SELECT word, word_count" + + " FROM `bigquery-public-data.samples.shakespeare`" + + " WHERE word IN UNNEST(@wordList)" + + " AND corpus = @corpus" + + " AND word_count >= @minWordCount" + + " ORDER BY word_count DESC"; + QueryWithNamedTypesParameters.queryWithNamedTypesParameters(query, words, corpus, wordsCount); + assertThat(bout.toString()) + .contains("Query with named types parameters performed successfully"); + } +} From 208883c2205abeeaee6c5162253eefc569fcba78 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 3 Aug 2020 20:21:14 +0530 Subject: [PATCH 0714/3441] docs(samples): add query with positional type parameters (#634) --- .../QueryWithPositionalTypesParameters.java | 77 +++++++++++++++++++ .../QueryWithPositionalTypesParametersIT.java | 61 +++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalTypesParametersIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java new file mode 100644 index 000000000000..5d9cd781298f --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java @@ -0,0 +1,77 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_params_positional_types] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableResult; + +// Sample to run query with positional types parameters. +public class QueryWithPositionalTypesParameters { + + public static void runQueryWithPositionalTypesParameters() { + String[] words = {"and", "is", "the", "moon"}; + String corpus = "romeoandjuliet"; + Integer wordsCount = 250; + String query = + "SELECT word, word_count" + + " FROM `bigquery-public-data.samples.shakespeare`" + + " WHERE word IN UNNEST(?)" + + " AND corpus = ?" + + " AND word_count >= ?" + + " ORDER BY word_count DESC"; + queryWithPositionalTypesParameters(query, words, corpus, wordsCount); + } + + public static void queryWithPositionalTypesParameters( + String query, String[] words, String corpus, Integer wordsCount) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + QueryParameterValue wordList = QueryParameterValue.array(words, StandardSQLTypeName.STRING); + QueryParameterValue corpusParam = QueryParameterValue.of(corpus, StandardSQLTypeName.STRING); + QueryParameterValue minWordCount = + QueryParameterValue.of(wordsCount, StandardSQLTypeName.INT64); + + // Note: Standard SQL is required to use query parameters. + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .addPositionalParameter(wordList) + .addPositionalParameter(corpusParam) + .addPositionalParameter(minWordCount) + .build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query with positional types parameters performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_params_positional_types] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalTypesParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalTypesParametersIT.java new file mode 100644 index 000000000000..17f030647ec5 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalTypesParametersIT.java @@ -0,0 +1,61 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryWithPositionalTypesParametersIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryWithPositionalTypesParameters() { + String[] words = {"and", "is", "the", "moon"}; + String corpus = "romeoandjuliet"; + Integer wordsCount = 250; + String query = + "SELECT word, word_count" + + " FROM `bigquery-public-data.samples.shakespeare`" + + " WHERE word IN UNNEST(?)" + + " AND corpus = ?" + + " AND word_count >= ?" + + " ORDER BY word_count DESC"; + QueryWithPositionalTypesParameters.queryWithPositionalTypesParameters( + query, words, corpus, wordsCount); + assertThat(bout.toString()) + .contains("Query with positional types parameters performed successfully"); + } +} From 53c2f2979340448c99a3cca6ce78bbca9b0b8eb3 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 3 Aug 2020 08:17:36 -0700 Subject: [PATCH 0715/3441] chore: regen readme (#632) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 1 + synth.metadata | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e527e35f56a9..2cac27773651 100644 --- a/README.md +++ b/README.md @@ -226,6 +226,7 @@ has instructions for running the samples. | DDL Create View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java) | | Dataset Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | | Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | +| Delete Dataset And Contents | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java) | | Delete Label Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | | Delete Label Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java) | | Delete Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | diff --git a/synth.metadata b/synth.metadata index 81e04270d60a..0f1f8a6699e8 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "8d717202ed36f55dd141ba45243f2dc30b597d99" + "sha": "108e4624f9dd4fece5cf9d5c258684d5b8a51f55" } }, { From c02a36cb1c8837431de7dcd5f4f856f5dedb5b69 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 3 Aug 2020 17:22:03 -0700 Subject: [PATCH 0716/3441] chore: regen readme (#636) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 ++ synth.metadata | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2cac27773651..16bb1c9e2405 100644 --- a/README.md +++ b/README.md @@ -284,7 +284,9 @@ has instructions for running the samples. | Query Total Rows | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java) | | Query With Array Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | | Query With Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | +| Query With Named Types Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java) | | Query With Positional Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | +| Query With Positional Types Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java) | | Query With Structs Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | | Query With Timestamp Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java) | | Quickstart Sample | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java) | diff --git a/synth.metadata b/synth.metadata index 0f1f8a6699e8..72e3a2ee54d8 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "108e4624f9dd4fece5cf9d5c258684d5b8a51f55" + "sha": "53c2f2979340448c99a3cca6ce78bbca9b0b8eb3" } }, { From 91cdf72efc93dc9fcf06a25b06ef227fa43359ed Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 4 Aug 2020 22:47:13 +0530 Subject: [PATCH 0717/3441] docs(samples): add authorized view tutorial (#637) --- .../bigquery/AuthorizedViewTutorial.java | 113 ++++++++++++++++++ .../bigquery/AuthorizedViewTutorialIT.java | 80 +++++++++++++ 2 files changed, 193 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/AuthorizedViewTutorialIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java b/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java new file mode 100644 index 000000000000..93f64eb0f5b0 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java @@ -0,0 +1,113 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import com.google.cloud.bigquery.Acl; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetInfo; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.ViewDefinition; +import java.util.ArrayList; +import java.util.List; + +// Sample of authorized view tutorial. +public class AuthorizedViewTutorial { + + public static void runAuthorizedViewTutorial() { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String sourceDatasetId = "MY_SOURCE_DATASET"; + String sourceTableId = "MY_SOURCE_TABLE"; + String sharedDatasetId = "SHARED_VIEWS"; + String sharedViewId = "MY_VIEW"; + authorizedViewTutorial( + projectId, sourceDatasetId, sourceTableId, sharedDatasetId, sharedViewId); + } + + public static void authorizedViewTutorial( + String projectId, + String sourceDatasetId, + String sourceTableId, + String sharedDatasetId, + String sharedViewId) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + // [START bigquery_authorized_view_tutorial] + // [START bigquery_avt_create_source_dataset] + // Create a source dataset to store your table. + Dataset sourceDataset = bigquery.create(DatasetInfo.of(sourceDatasetId)); + // [END bigquery_avt_create_source_dataset] + + // [START bigquery_avt_create_source_table] + // Populate a source table + String tableQuery = + "SELECT commit, author, committer, repo_name" + + " FROM `bigquery-public-data.github_repos.commits`" + + " LIMIT 1000"; + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(tableQuery) + .setDestinationTable(TableId.of(sourceDatasetId, sourceTableId)) + .build(); + bigquery.query(queryConfig); + // [END bigquery_avt_create_source_table] + + // [START bigquery_avt_create_shared_dataset] + // Create a separate dataset to store your view + Dataset sharedDataset = bigquery.create(DatasetInfo.of(sharedDatasetId)); + // [END bigquery_avt_create_shared_dataset] + + // [START bigquery_avt_create_view] + // Create the view in the new dataset + String viewQuery = + String.format( + "SELECT commit, author.name as author, committer.name as committer, repo_name FROM %s.%s.%s", + projectId, sourceDatasetId, sourceTableId); + + ViewDefinition viewDefinition = ViewDefinition.of(viewQuery); + + Table view = + bigquery.create(TableInfo.of(TableId.of(sharedDatasetId, sharedViewId), viewDefinition)); + // [END bigquery_avt_create_view] + + // [START bigquery_avt_shared_dataset_access] + // Assign access controls to the dataset containing the view + List viewAcl = new ArrayList<>(sharedDataset.getAcl()); + viewAcl.add(Acl.of(new Acl.Group("example-analyst-group@google.com"), Acl.Role.READER)); + sharedDataset.toBuilder().setAcl(viewAcl).build().update(); + // [END bigquery_avt_shared_dataset_access] + + // [START bigquery_avt_source_dataset_access] + // Authorize the view to access the source dataset + List srcAcl = new ArrayList<>(sourceDataset.getAcl()); + srcAcl.add(Acl.of(new Acl.View(view.getTableId()))); + sourceDataset.toBuilder().setAcl(srcAcl).build().update(); + // [END bigquery_avt_source_dataset_access] + // [END bigquery_authorized_view_tutorial] + System.out.println("Authorized view tutorial successfully"); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Authorized view tutorial was not success. \n" + e.toString()); + } + } +} diff --git a/samples/snippets/src/test/java/com/example/bigquery/AuthorizedViewTutorialIT.java b/samples/snippets/src/test/java/com/example/bigquery/AuthorizedViewTutorialIT.java new file mode 100644 index 000000000000..bd8fa6076efc --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/AuthorizedViewTutorialIT.java @@ -0,0 +1,80 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class AuthorizedViewTutorialIT { + + private String sourceDatasetId; + private String sourceTableId; + private String sharedDatasetId; + private String sharedViewId; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + sourceDatasetId = "SOURCE_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); + sourceTableId = "SOURCE_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); + sharedDatasetId = "SHARED_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); + sharedViewId = "SHARED_VIEW_TEST_" + UUID.randomUUID().toString().substring(0, 8); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteDataset.deleteDataset(PROJECT_ID, sourceDatasetId); + DeleteDataset.deleteDataset(PROJECT_ID, sharedDatasetId); + System.setOut(null); + } + + @Test + public void testAuthorizedViewTutorial() { + AuthorizedViewTutorial.authorizedViewTutorial( + PROJECT_ID, sourceDatasetId, sourceTableId, sharedDatasetId, sharedViewId); + assertThat(bout.toString()).contains("Authorized view tutorial successfully"); + } +} From 46f929b1ac9a4a731c98e83b444d29573ab8572d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 4 Aug 2020 19:30:08 +0200 Subject: [PATCH 0718/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.4 (#639) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7f2a6498198b..689ba948c177 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.8.3 + 0.8.4 pom import From f49fbbd31a63b48210cfc609f22baef0b4d362d5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 4 Aug 2020 15:36:15 -0400 Subject: [PATCH 0719/3441] chore: release 1.116.8 (#640) * chore: updated CHANGELOG.md [ci skip] * chore: updated README.md [ci skip] * chore: updated versions.txt [ci skip] * chore: updated samples/pom.xml [ci skip] * chore: updated samples/snippets/pom.xml [ci skip] * chore: updated google-cloud-bigquery/pom.xml [ci skip] * chore: updated samples/snapshot/pom.xml [ci skip] * chore: updated samples/install-without-bom/pom.xml [ci skip] * chore: updated pom.xml Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 43 +++++++++++++++++++++++++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 51 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5bab3f4d33b0..e439b4c66494 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,48 @@ # Changelog +### [1.116.8](https://www.github.com/googleapis/java-bigquery/compare/v1.116.7...v1.116.8) (2020-08-04) + + +### Reverts + +* Revert "docs(samples): add undelete table (#611)" (#620) ([e28abed](https://www.github.com/googleapis/java-bigquery/commit/e28abed3cd414cc7432ea188eacde8b53b7819e3)), closes [#611](https://www.github.com/googleapis/java-bigquery/issues/611) [#620](https://www.github.com/googleapis/java-bigquery/issues/620) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200719-1.30.10 ([#602](https://www.github.com/googleapis/java-bigquery/issues/602)) ([8dc5bc3](https://www.github.com/googleapis/java-bigquery/commit/8dc5bc3851124b340a3454ce4df54ff44ac44379)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.4 ([#639](https://www.github.com/googleapis/java-bigquery/issues/639)) ([46f929b](https://www.github.com/googleapis/java-bigquery/commit/46f929b1ac9a4a731c98e83b444d29573ab8572d)) + + +### Documentation + +* **samples:** add authorized view tutorial ([#637](https://www.github.com/googleapis/java-bigquery/issues/637)) ([91cdf72](https://www.github.com/googleapis/java-bigquery/commit/91cdf72efc93dc9fcf06a25b06ef227fa43359ed)) +* **samples:** add delete dataset and contents ([#629](https://www.github.com/googleapis/java-bigquery/issues/629)) ([209d035](https://www.github.com/googleapis/java-bigquery/commit/209d035c66fe776ad31db848d4d1b7c669f73595)) +* **samples:** add load json table with overwrite data from gcs ([#582](https://www.github.com/googleapis/java-bigquery/issues/582)) ([f127475](https://www.github.com/googleapis/java-bigquery/commit/f127475100a307970a0af5227d367d790b434775)) +* **samples:** add load orc file and overwrite data into a table from gcs ([#584](https://www.github.com/googleapis/java-bigquery/issues/584)) ([b3621df](https://www.github.com/googleapis/java-bigquery/commit/b3621df78f2c06cefdb637048dd91e11dbf8256f)) +* **samples:** add query disable cache ([#595](https://www.github.com/googleapis/java-bigquery/issues/595)) ([8ef8db2](https://www.github.com/googleapis/java-bigquery/commit/8ef8db2e2fbcbff5136b18423746b25384a082ef)) +* **samples:** add query dry run ([#587](https://www.github.com/googleapis/java-bigquery/issues/587)) ([55cd52c](https://www.github.com/googleapis/java-bigquery/commit/55cd52cf5e0f06afcbb7c1d961daca04cc5fe7a9)) +* **samples:** add query legacy large results ([#594](https://www.github.com/googleapis/java-bigquery/issues/594)) ([4787dd0](https://www.github.com/googleapis/java-bigquery/commit/4787dd07202b6312b1a25957fee6a14e500dce48)) +* **samples:** add query on external table from gcs ([#588](https://www.github.com/googleapis/java-bigquery/issues/588)) ([64bed25](https://www.github.com/googleapis/java-bigquery/commit/64bed2591daefed7bb8c8f93aa0a3d748a41a20d)) +* **samples:** add query on external temp table from gcs ([#593](https://www.github.com/googleapis/java-bigquery/issues/593)) ([ef757ad](https://www.github.com/googleapis/java-bigquery/commit/ef757ad44dcc2745f2d07b799a1af63166d79d4f)) +* **samples:** add query pagination ([#596](https://www.github.com/googleapis/java-bigquery/issues/596)) ([918c8bd](https://www.github.com/googleapis/java-bigquery/commit/918c8bd78d3654120f18db49058085c321c05819)) +* **samples:** add query partitioned table ([#597](https://www.github.com/googleapis/java-bigquery/issues/597)) ([055ebc0](https://www.github.com/googleapis/java-bigquery/commit/055ebc09b36afc278a728d5ce1af5362ea0b5794)) +* **samples:** add query script ([#605](https://www.github.com/googleapis/java-bigquery/issues/605)) ([ca07302](https://www.github.com/googleapis/java-bigquery/commit/ca073025b8d156bf9e76656fb36f49a5f81927c9)) +* **samples:** add query total rows ([#609](https://www.github.com/googleapis/java-bigquery/issues/609)) ([0da5fd1](https://www.github.com/googleapis/java-bigquery/commit/0da5fd16747445819212741dd55c224b867f1629)) +* **samples:** add query with arrays parameters ([#603](https://www.github.com/googleapis/java-bigquery/issues/603)) ([1eeffe6](https://www.github.com/googleapis/java-bigquery/commit/1eeffe6c8cc6cf131137cfadef46782012d6e47f)) +* **samples:** add query with name types parameters ([#633](https://www.github.com/googleapis/java-bigquery/issues/633)) ([082f1a2](https://www.github.com/googleapis/java-bigquery/commit/082f1a2c2aeeaf1243681bee921fc54328969728)) +* **samples:** add query with positional type parameters ([#634](https://www.github.com/googleapis/java-bigquery/issues/634)) ([208883c](https://www.github.com/googleapis/java-bigquery/commit/208883c2205abeeaee6c5162253eefc569fcba78)) +* **samples:** add query with timestamp parameters ([#604](https://www.github.com/googleapis/java-bigquery/issues/604)) ([0abdd90](https://www.github.com/googleapis/java-bigquery/commit/0abdd902ec4a6758be4aed91b16a3df0c0afbd94)) +* **samples:** add table exists ([#610](https://www.github.com/googleapis/java-bigquery/issues/610)) ([db9eef7](https://www.github.com/googleapis/java-bigquery/commit/db9eef76c066ba2b57fe2b6f64d6c966474b9071)) +* **samples:** add undelete table ([#611](https://www.github.com/googleapis/java-bigquery/issues/611)) ([6c763d5](https://www.github.com/googleapis/java-bigquery/commit/6c763d58f2f13f52a44983b56b74b300a17468cc)) +* **samples:** add update dataset partition expiration ([#612](https://www.github.com/googleapis/java-bigquery/issues/612)) ([720b5ac](https://www.github.com/googleapis/java-bigquery/commit/720b5acfe2f9f46eebb18b6e5d0db881b0ad7e2a)) +* **samples:** add update model description ([#617](https://www.github.com/googleapis/java-bigquery/issues/617)) ([a8cb797](https://www.github.com/googleapis/java-bigquery/commit/a8cb797ab9f758c1af74faa84e8f71bf76a69223)) +* **samples:** add update routine ([#618](https://www.github.com/googleapis/java-bigquery/issues/618)) ([a889800](https://www.github.com/googleapis/java-bigquery/commit/a889800b16483a85400198b2cb261d95afb2c69b)) +* **samples:** add update table cmek ([#619](https://www.github.com/googleapis/java-bigquery/issues/619)) ([31cc937](https://www.github.com/googleapis/java-bigquery/commit/31cc9375c78156643b03374fddeb7aab4b26b4f3)) +* **samples:** add update table require partition filter ([#624](https://www.github.com/googleapis/java-bigquery/issues/624)) ([29272bb](https://www.github.com/googleapis/java-bigquery/commit/29272bb9a3238b2f0dab2e44b23db6909d3809a2)) +* **samples:** load orc file into a table from gcs ([#583](https://www.github.com/googleapis/java-bigquery/issues/583)) ([cbb1902](https://www.github.com/googleapis/java-bigquery/commit/cbb1902e1e3d7017b1cd9be0e51243e5840ace96)) +* **samples:** update view query ([#625](https://www.github.com/googleapis/java-bigquery/issues/625)) ([8d71720](https://www.github.com/googleapis/java-bigquery/commit/8d717202ed36f55dd141ba45243f2dc30b597d99)) + ### [1.116.7](https://www.github.com/googleapis/java-bigquery/compare/v1.116.6...v1.116.7) (2020-07-21) diff --git a/README.md b/README.md index 16bb1c9e2405..5412b608538e 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.7' +compile 'com.google.cloud:google-cloud-bigquery:1.116.8' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.7" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.8" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7793a41a29ff..953164da2830 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.8-SNAPSHOT + 1.116.8 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.8-SNAPSHOT + 1.116.8 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 689ba948c177..0c877e9aac58 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.8-SNAPSHOT + 1.116.8 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.8-SNAPSHOT + 1.116.8 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index fb8b8367bd54..722c5239a4a4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.8-SNAPSHOT + 1.116.8 diff --git a/versions.txt b/versions.txt index bd2fbc3de3ba..4d9a90784695 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.7:1.116.8-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.116.8:1.116.8 \ No newline at end of file From 527f15fe166354b7f14c2a96a6365a92b2323620 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 5 Aug 2020 00:40:26 -0700 Subject: [PATCH 0720/3441] changes without context (#642) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 1 + synth.metadata | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5412b608538e..f8ff7e8832a7 100644 --- a/README.md +++ b/README.md @@ -206,6 +206,7 @@ has instructions for running the samples. | Auth Snippets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | | Auth User Flow | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | | Auth User Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java) | +| Authorized View Tutorial | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java) | | Browse Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | | Cancel Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | | Copy Multiple Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | diff --git a/synth.metadata b/synth.metadata index 72e3a2ee54d8..241a1d81d660 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "53c2f2979340448c99a3cca6ce78bbca9b0b8eb3" + "sha": "f49fbbd31a63b48210cfc609f22baef0b4d362d5" } }, { From 831a0f06429555cdfa59c9fcb534734b0a64ae97 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 5 Aug 2020 09:41:17 +0200 Subject: [PATCH 0721/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.116.8 (#641) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3959b760fa99..b987d74b4d37 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.116.7 + 1.116.8 From 1655f51eb4b0515bf0eeb8b1f3b20f2a47203cc6 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 5 Aug 2020 03:07:22 -0700 Subject: [PATCH 0722/3441] changes without context (#646) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f8ff7e8832a7..2d301007c71b 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.116.7 + 1.116.8 ``` diff --git a/synth.metadata b/synth.metadata index 241a1d81d660..6c26401a33ed 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "f49fbbd31a63b48210cfc609f22baef0b4d362d5" + "sha": "831a0f06429555cdfa59c9fcb534734b0a64ae97" } }, { From a14bc8be3f2257830dfc8b38af14ddcee645fdfe Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 5 Aug 2020 18:17:49 +0530 Subject: [PATCH 0723/3441] refactor(samples): add column load append (#644) --- .../example/bigquery/AddColumnLoadAppend.java | 22 ++++---- .../bigquery/AddColumnLoadAppendIT.java | 54 ++++++++++--------- 2 files changed, 40 insertions(+), 36 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java b/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java index a8b22ed8bcbc..a6122bf30b4e 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java @@ -36,9 +36,10 @@ import java.util.List; import java.util.UUID; +// Sample to append column in existing table. public class AddColumnLoadAppend { - public static void runAddColumnLoadAppend() throws Exception { + public static void runAddColumnLoadAppend() { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; @@ -65,7 +66,7 @@ public static void runAddColumnLoadAppend() throws Exception { } public static void addColumnLoadAppend( - String datasetName, String tableName, String sourceUri, Schema newSchema) throws Exception { + String datasetName, String tableName, String sourceUri, Schema newSchema) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -87,19 +88,16 @@ public static void addColumnLoadAppend( // Load data from a GCS parquet file into the table // Blocks until this load table job completes its execution, either failing or succeeding. - Job completedJob = loadJob.waitFor(); + Job job = loadJob.waitFor(); // Check for errors - if (completedJob == null) { - throw new Exception("Job not executed since it no longer exists."); - } else if (completedJob.getStatus().getError() != null) { - // You can also look at queryJob.getStatus().getExecutionErrors() for all - // errors, not just the latest one. - throw new Exception( - "BigQuery was unable to load into the table due to an error: \n" - + loadJob.getStatus().getError()); + if (job.isDone() && job.getStatus().getError() == null) { + System.out.println("Column successfully added during load append job"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); } - System.out.println("Column successfully added during load append job"); } catch (BigQueryException | InterruptedException e) { System.out.println("Column not added during load append \n" + e.toString()); } diff --git a/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java b/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java index b4b3751f7d61..280f7cce0cc0 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java @@ -17,7 +17,6 @@ package com.example.bigquery; import static com.google.common.truth.Truth.assertThat; -import static junit.framework.TestCase.assertNotNull; import com.google.cloud.bigquery.Field; import com.google.cloud.bigquery.LegacySQLTypeName; @@ -26,21 +25,28 @@ import java.io.PrintStream; import java.util.ArrayList; import java.util.List; +import java.util.UUID; import org.junit.After; +import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class AddColumnLoadAppendIT { + + private String tableName; + private Schema schema; private ByteArrayOutputStream bout; private PrintStream out; - private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); - private static void requireEnvVar(String varName) { - assertNotNull( + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + Assert.assertNotNull( "Environment variable " + varName + " is required to perform these tests.", System.getenv(varName)); + return value; } @BeforeClass @@ -53,41 +59,41 @@ public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); System.setOut(out); + + // create a test table. + tableName = "ADD_COLUMN_LOAD_APPEND_TEST_" + UUID.randomUUID().toString().substring(0, 8); + schema = + Schema.of( + Field.newBuilder("name", LegacySQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); } @After public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); System.setOut(null); } @Test - public void testAddColumnLoadAppend() throws Exception { + public void testAddColumnLoadAppend() { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; - - String tableName = "ADD_COLUMN_LOAD_APPEND_TEST"; - Schema originalSchema = - Schema.of( - Field.newBuilder("name", LegacySQLTypeName.STRING) - .setMode(Field.Mode.REQUIRED) - .build()); - - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, originalSchema); - - List fields = originalSchema.getFields(); // Adding below additional column during the load job Field newField = Field.newBuilder("post_abbr", LegacySQLTypeName.STRING) .setMode(Field.Mode.NULLABLE) .build(); - List newFields = new ArrayList<>(fields); + List newFields = new ArrayList<>(schema.getFields()); newFields.add(newField); - Schema newSchema = Schema.of(newFields); - - AddColumnLoadAppend.addColumnLoadAppend(BIGQUERY_DATASET_NAME, tableName, sourceUri, newSchema); - + AddColumnLoadAppend.addColumnLoadAppend( + BIGQUERY_DATASET_NAME, tableName, sourceUri, Schema.of(newFields)); assertThat(bout.toString()).contains("Column successfully added during load append job"); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } From e799bb39022b6914678b085a000132d2fbca4a7f Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 5 Aug 2020 18:18:05 +0530 Subject: [PATCH 0724/3441] docs(samples): add undelete table (#638) * docs(samples): add undelete table * docs(samples): update code --- .../com/example/bigquery/UndeleteTable.java | 78 ++++++++++++++++++ .../com/example/bigquery/UndeleteTableIT.java | 79 +++++++++++++++++++ 2 files changed, 157 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java b/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java new file mode 100644 index 000000000000..5f64c3ffe4d5 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java @@ -0,0 +1,78 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_undelete_table] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.CopyJobConfiguration; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.TableId; + +// Sample to undeleting a table +public class UndeleteTable { + + public static void runUndeleteTable() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_TABLE"; + String recoverTableName = "MY_RECOVER_TABLE_TABLE"; + undeleteTable(datasetName, tableName, recoverTableName); + } + + public static void undeleteTable(String datasetName, String tableName, String recoverTableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // "Accidentally" delete the table. + bigquery.delete(TableId.of(datasetName, tableName)); + + // Record the current time. We'll use this as the snapshot time + // for recovering the table. + long snapTime = System.currentTimeMillis(); + + // Construct the restore-from tableID using a snapshot decorator. + String snapshotTableId = String.format("%s@%d", tableName, snapTime); + + // Construct and run a copy job. + CopyJobConfiguration configuration = + CopyJobConfiguration.newBuilder( + // Choose a new table ID for the recovered table data. + TableId.of(datasetName, recoverTableName), + TableId.of(datasetName, snapshotTableId)) + .build(); + + Job job = bigquery.create(JobInfo.of(configuration)); + job = job.waitFor(); + if (job.isDone() && job.getStatus().getError() == null) { + System.out.println("Undelete table recovered successfully."); + } else { + System.out.println( + "BigQuery was unable to copy the table due to an error: \n" + + job.getStatus().getError()); + return; + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Table not found. \n" + e.toString()); + } + } +} +// [END bigquery_undelete_table] diff --git a/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java new file mode 100644 index 000000000000..d26290bd8456 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java @@ -0,0 +1,79 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class UndeleteTableIT { + + private String tableName; + private String recoverTableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + tableName = "UNDELETE_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); + recoverTableName = "RECOVER_DELETE_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); + // Create table in dataset for testing + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, recoverTableName); + System.setOut(null); + } + + @Test + public void testUndeleteTable() { + UndeleteTable.undeleteTable(BIGQUERY_DATASET_NAME, tableName, recoverTableName); + assertThat(bout.toString()).contains("Undelete table recovered successfully."); + } +} From b21dce0ff3d169785520eef4532dab8c2ca6178d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 5 Aug 2020 10:57:12 -0400 Subject: [PATCH 0725/3441] chore: release 1.116.9-SNAPSHOT (#645) * chore: updated versions.txt [ci skip] * chore: updated samples/pom.xml [ci skip] * chore: updated samples/snippets/pom.xml [ci skip] * chore: updated google-cloud-bigquery/pom.xml [ci skip] * chore: updated pom.xml [ci skip] * chore: updated samples/snapshot/pom.xml [ci skip] * chore: updated samples/install-without-bom/pom.xml Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 953164da2830..7eb8cba7acae 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.8 + 1.116.9-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.8 + 1.116.9-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0c877e9aac58..7677e326d669 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.8 + 1.116.9-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.8 + 1.116.9-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 722c5239a4a4..7b7d92c705de 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.8 + 1.116.9-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4d9a90784695..2c6fcf24ae47 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.8:1.116.8 \ No newline at end of file +google-cloud-bigquery:1.116.8:1.116.9-SNAPSHOT \ No newline at end of file From f27bbacfe76841bff6c639c413e7f6f3c32153f9 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 6 Aug 2020 08:21:14 -0700 Subject: [PATCH 0726/3441] chore: regen readme for samples (#648) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 1 + synth.metadata | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2d301007c71b..56968a223120 100644 --- a/README.md +++ b/README.md @@ -300,6 +300,7 @@ has instructions for running the samples. | Table Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | | Table Insert Rows | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | | Table Insert Rows Without Row Ids | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | +| Undelete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java) | | Update Dataset Access | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | | Update Dataset Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | | Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | diff --git a/synth.metadata b/synth.metadata index 6c26401a33ed..0d46dae768bb 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "831a0f06429555cdfa59c9fcb534734b0a64ae97" + "sha": "b21dce0ff3d169785520eef4532dab8c2ca6178d" } }, { From ee5c1a364d8fac1bd9cff603bdba1be7f331c912 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 6 Aug 2020 08:25:15 -0700 Subject: [PATCH 0727/3441] chore: clean up unused kokoro cfg files (#649) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * cleanup: removes unused kokoro config files * cleanup: removes unused kokoro config files Removes unused kokoro files from the java library template. We have stopped running some of these due to Github quota issues. * fix:reverts back samples.cfg files The files presubmit/samples.cfg and nightly/samples.cfg should remain in the java template repository. Co-authored-by: Jeffrey Rennie Source-Author: Thiago Nunes Source-Date: Thu Aug 6 09:48:58 2020 +1000 Source-Repo: googleapis/synthtool Source-Sha: 4530cc6ff080ef8aca258c1ec92c4db10a1bbfb4 Source-Link: https://github.com/googleapis/synthtool/commit/4530cc6ff080ef8aca258c1ec92c4db10a1bbfb4 --- .kokoro/continuous/dependencies.cfg | 12 ------ .kokoro/continuous/integration.cfg | 7 ---- .kokoro/continuous/java11.cfg | 7 ---- .kokoro/continuous/java7.cfg | 7 ---- .kokoro/continuous/java8-osx.cfg | 3 -- .kokoro/continuous/java8-win.cfg | 3 -- .kokoro/continuous/lint.cfg | 13 ------- .kokoro/continuous/propose_release.cfg | 53 -------------------------- .kokoro/continuous/samples.cfg | 31 --------------- .kokoro/nightly/dependencies.cfg | 12 ------ .kokoro/nightly/lint.cfg | 13 ------- synth.metadata | 13 +------ 12 files changed, 1 insertion(+), 173 deletions(-) delete mode 100644 .kokoro/continuous/dependencies.cfg delete mode 100644 .kokoro/continuous/integration.cfg delete mode 100644 .kokoro/continuous/java11.cfg delete mode 100644 .kokoro/continuous/java7.cfg delete mode 100644 .kokoro/continuous/java8-osx.cfg delete mode 100644 .kokoro/continuous/java8-win.cfg delete mode 100644 .kokoro/continuous/lint.cfg delete mode 100644 .kokoro/continuous/propose_release.cfg delete mode 100644 .kokoro/continuous/samples.cfg delete mode 100644 .kokoro/nightly/dependencies.cfg delete mode 100644 .kokoro/nightly/lint.cfg diff --git a/.kokoro/continuous/dependencies.cfg b/.kokoro/continuous/dependencies.cfg deleted file mode 100644 index 75e48af255c8..000000000000 --- a/.kokoro/continuous/dependencies.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/dependencies.sh" -} diff --git a/.kokoro/continuous/integration.cfg b/.kokoro/continuous/integration.cfg deleted file mode 100644 index 3b017fc80f04..000000000000 --- a/.kokoro/continuous/integration.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} diff --git a/.kokoro/continuous/java11.cfg b/.kokoro/continuous/java11.cfg deleted file mode 100644 index 709f2b4c73db..000000000000 --- a/.kokoro/continuous/java11.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java11" -} diff --git a/.kokoro/continuous/java7.cfg b/.kokoro/continuous/java7.cfg deleted file mode 100644 index cb24f44eea3b..000000000000 --- a/.kokoro/continuous/java7.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java7" -} diff --git a/.kokoro/continuous/java8-osx.cfg b/.kokoro/continuous/java8-osx.cfg deleted file mode 100644 index d0594f62733b..000000000000 --- a/.kokoro/continuous/java8-osx.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -build_file: "java-bigquery/.kokoro/build.sh" diff --git a/.kokoro/continuous/java8-win.cfg b/.kokoro/continuous/java8-win.cfg deleted file mode 100644 index 7a273e2faefc..000000000000 --- a/.kokoro/continuous/java8-win.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -build_file: "java-bigquery/.kokoro/build.bat" diff --git a/.kokoro/continuous/lint.cfg b/.kokoro/continuous/lint.cfg deleted file mode 100644 index 6d323c8ae768..000000000000 --- a/.kokoro/continuous/lint.cfg +++ /dev/null @@ -1,13 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. - -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "lint" -} \ No newline at end of file diff --git a/.kokoro/continuous/propose_release.cfg b/.kokoro/continuous/propose_release.cfg deleted file mode 100644 index 78652aa13fed..000000000000 --- a/.kokoro/continuous/propose_release.cfg +++ /dev/null @@ -1,53 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-bigquery/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/continuous/propose_release.sh" -} - -# tokens used by release-please to keep an up-to-date release PR. -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-key-release-please" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-token-release-please" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-url-release-please" - } - } -} diff --git a/.kokoro/continuous/samples.cfg b/.kokoro/continuous/samples.cfg deleted file mode 100644 index fa7b493d0b5c..000000000000 --- a/.kokoro/continuous/samples.cfg +++ /dev/null @@ -1,31 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "samples" -} - -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "keystore/73713_java_it_service_account" -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "java_it_service_account" - } - } -} diff --git a/.kokoro/nightly/dependencies.cfg b/.kokoro/nightly/dependencies.cfg deleted file mode 100644 index 75e48af255c8..000000000000 --- a/.kokoro/nightly/dependencies.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/dependencies.sh" -} diff --git a/.kokoro/nightly/lint.cfg b/.kokoro/nightly/lint.cfg deleted file mode 100644 index 6d323c8ae768..000000000000 --- a/.kokoro/nightly/lint.cfg +++ /dev/null @@ -1,13 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. - -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "lint" -} \ No newline at end of file diff --git a/synth.metadata b/synth.metadata index 0d46dae768bb..29fead8078ff 100644 --- a/synth.metadata +++ b/synth.metadata @@ -11,7 +11,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "dd230c816f88d0141fcd0be83498986287220d1b" + "sha": "4530cc6ff080ef8aca258c1ec92c4db10a1bbfb4" } } ], @@ -30,27 +30,16 @@ ".kokoro/common.cfg", ".kokoro/common.sh", ".kokoro/continuous/common.cfg", - ".kokoro/continuous/dependencies.cfg", - ".kokoro/continuous/integration.cfg", - ".kokoro/continuous/java11.cfg", - ".kokoro/continuous/java7.cfg", - ".kokoro/continuous/java8-osx.cfg", - ".kokoro/continuous/java8-win.cfg", ".kokoro/continuous/java8.cfg", - ".kokoro/continuous/lint.cfg", - ".kokoro/continuous/propose_release.cfg", - ".kokoro/continuous/samples.cfg", ".kokoro/dependencies.sh", ".kokoro/linkage-monitor.sh", ".kokoro/nightly/common.cfg", - ".kokoro/nightly/dependencies.cfg", ".kokoro/nightly/integration.cfg", ".kokoro/nightly/java11.cfg", ".kokoro/nightly/java7.cfg", ".kokoro/nightly/java8-osx.cfg", ".kokoro/nightly/java8-win.cfg", ".kokoro/nightly/java8.cfg", - ".kokoro/nightly/lint.cfg", ".kokoro/nightly/samples.cfg", ".kokoro/populate-secrets.sh", ".kokoro/presubmit/clirr.cfg", From 319b982a8a50f592c244301b6431352b140ee50d Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 6 Aug 2020 16:04:26 -0400 Subject: [PATCH 0728/3441] docs(samples): fix region tag for bigquery_relax_column_query_append (#651) --- .../src/main/java/com/example/bigquery/RelaxTableQuery.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java b/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java index ad3e24d6367e..8ed3ea1d481b 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java +++ b/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java @@ -16,7 +16,7 @@ package com.example.bigquery; -// [START bigquery_add_column_query_append] +// [START bigquery_relax_column_query_append] import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; @@ -92,4 +92,4 @@ public static void relaxTableQuery(String projectId, String datasetName, String } } } -// [END bigquery_add_column_query_append] +// [END bigquery_relax_column_query_append] From 497ddf41a0faeef4d896fc7f8e3e78b2c295d4a0 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 7 Aug 2020 18:16:46 +0530 Subject: [PATCH 0729/3441] docs(samples): add load csv autodetect data from gcs (#655) --- .../bigquery/LoadCsvFromGCSAutodetect.java | 74 +++++++++++++++++ .../bigquery/LoadCsvFromGCSAutodetectIT.java | 81 +++++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGCSAutodetectIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java new file mode 100644 index 000000000000..1c157502186a --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java @@ -0,0 +1,74 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_load_table_gcs_csv_autodetect] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.CsvOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.TableId; + +// Sample to load CSV data with autodetect schema from Cloud Storage into a new BigQuery table +public class LoadCsvFromGCSAutodetect { + + public static void runLoadCsvFromGCSAutodetect() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + loadCsvFromGCSAutodetect(datasetName, tableName, sourceUri); + } + + public static void loadCsvFromGCSAutodetect( + String datasetName, String tableName, String sourceUri) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + + // Skip header row in the file. + CsvOptions csvOptions = CsvOptions.newBuilder().setSkipLeadingRows(1).build(); + + LoadJobConfiguration loadConfig = + LoadJobConfiguration.newBuilder(tableId, sourceUri) + .setFormatOptions(csvOptions) + .setAutodetect(true) + .build(); + + // Load data from a GCS CSV file into the table + Job job = bigquery.create(JobInfo.of(loadConfig)); + // Blocks until this load table job completes its execution, either failing or succeeding. + job = job.waitFor(); + if (job.isDone() && job.getStatus().getError() == null) { + System.out.println("CSV Autodetect from GCS successfully loaded in a table"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_load_table_gcs_csv_autodetect] diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGCSAutodetectIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGCSAutodetectIT.java new file mode 100644 index 000000000000..a08dad22049c --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGCSAutodetectIT.java @@ -0,0 +1,81 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadCsvFromGCSAutodetectIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = + "LOAD_CSV_TABLE_AUTODETECT_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testLoadCsvFromGCSAutodetect() { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + LoadCsvFromGCSAutodetect.loadCsvFromGCSAutodetect(BIGQUERY_DATASET_NAME, tableName, sourceUri); + assertThat(bout.toString()).contains("CSV Autodetect from GCS successfully loaded in a table"); + } +} From 18a9b6cf7a4e91d6c7b6c508c2a07ed4ff9c97a9 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 7 Aug 2020 05:47:08 -0700 Subject: [PATCH 0730/3441] build: update dependencies check to only check for runtime and compile scopes (#652) * change:Updated dependencies check to only use runtime & compile scope * Update dependencies.sh * feat: update dependencies check to only check for runtime and compile scopes Co-authored-by: Saleh Mostafa Co-authored-by: Jeffrey Rennie Source-Author: salehsquared Source-Date: Thu Aug 6 13:01:02 2020 -0400 Source-Repo: googleapis/synthtool Source-Sha: f8823dec98277a9516f2fb6fae9f58b3a59a23e1 Source-Link: https://github.com/googleapis/synthtool/commit/f8823dec98277a9516f2fb6fae9f58b3a59a23e1 --- .kokoro/dependencies.sh | 9 +++++---- synth.metadata | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index cee4f11e7547..c91e5a56937a 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -43,12 +43,13 @@ function completenessCheck() { # Output dep list with compile scope generated using the original pom # Running mvn dependency:list on Java versions that support modules will also include the module of the dependency. # This is stripped from the output as it is not present in the flattened pom. + # Only dependencies with 'compile' or 'runtime' scope are included from original dependency list. msg "Generating dependency list using original pom..." - mvn dependency:list -f pom.xml -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' | sed -e s/\\s--\\smodule.*// | grep -v ':test$' >.org-list.txt + mvn dependency:list -f pom.xml -DincludeScope=runtime -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' | sed -e s/\\s--\\smodule.*// >.org-list.txt - # Output dep list generated using the flattened pom (test scope deps are ommitted) + # Output dep list generated using the flattened pom (only 'compile' and 'runtime' scopes) msg "Generating dependency list using flattened pom..." - mvn dependency:list -f .flattened-pom.xml -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' >.new-list.txt + mvn dependency:list -f .flattened-pom.xml -DincludeScope=runtime -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' >.new-list.txt # Compare two dependency lists msg "Comparing dependency lists..." @@ -85,4 +86,4 @@ then else msg "Errors found. See log statements above." exit 1 -fi +fi \ No newline at end of file diff --git a/synth.metadata b/synth.metadata index 29fead8078ff..fb4098735fcd 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b21dce0ff3d169785520eef4532dab8c2ca6178d" + "sha": "319b982a8a50f592c244301b6431352b140ee50d" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "4530cc6ff080ef8aca258c1ec92c4db10a1bbfb4" + "sha": "f8823dec98277a9516f2fb6fae9f58b3a59a23e1" } } ], From cb1b8c4d6bd739d2f803e96d8b32dcd02fb643ae Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 7 Aug 2020 14:47:54 +0200 Subject: [PATCH 0731/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.5 (#654) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7677e326d669..98dea722963a 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.8.4 + 0.8.5 pom import From c55395483fd9e76c5c20a386e7e32ef617adf815 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 7 Aug 2020 13:02:03 +0000 Subject: [PATCH 0732/3441] chore: release 1.116.9 (#647) :robot: I have created a release \*beep\* \*boop\* --- ### [1.116.9](https://www.github.com/googleapis/java-bigquery/compare/v1.116.8...v1.116.9) (2020-08-07) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.5 ([#654](https://www.github.com/googleapis/java-bigquery/issues/654)) ([cb1b8c4](https://www.github.com/googleapis/java-bigquery/commit/cb1b8c4d6bd739d2f803e96d8b32dcd02fb643ae)) ### Documentation * **samples:** add load csv autodetect data from gcs ([#655](https://www.github.com/googleapis/java-bigquery/issues/655)) ([497ddf4](https://www.github.com/googleapis/java-bigquery/commit/497ddf41a0faeef4d896fc7f8e3e78b2c295d4a0)) * **samples:** add undelete table ([#638](https://www.github.com/googleapis/java-bigquery/issues/638)) ([e799bb3](https://www.github.com/googleapis/java-bigquery/commit/e799bb39022b6914678b085a000132d2fbca4a7f)) * **samples:** fix region tag for bigquery_relax_column_query_append ([#651](https://www.github.com/googleapis/java-bigquery/issues/651)) ([319b982](https://www.github.com/googleapis/java-bigquery/commit/319b982a8a50f592c244301b6431352b140ee50d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 14 ++++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 22 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e439b4c66494..0921abe05bd8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +### [1.116.9](https://www.github.com/googleapis/java-bigquery/compare/v1.116.8...v1.116.9) (2020-08-07) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.5 ([#654](https://www.github.com/googleapis/java-bigquery/issues/654)) ([cb1b8c4](https://www.github.com/googleapis/java-bigquery/commit/cb1b8c4d6bd739d2f803e96d8b32dcd02fb643ae)) + + +### Documentation + +* **samples:** add load csv autodetect data from gcs ([#655](https://www.github.com/googleapis/java-bigquery/issues/655)) ([497ddf4](https://www.github.com/googleapis/java-bigquery/commit/497ddf41a0faeef4d896fc7f8e3e78b2c295d4a0)) +* **samples:** add undelete table ([#638](https://www.github.com/googleapis/java-bigquery/issues/638)) ([e799bb3](https://www.github.com/googleapis/java-bigquery/commit/e799bb39022b6914678b085a000132d2fbca4a7f)) +* **samples:** fix region tag for bigquery_relax_column_query_append ([#651](https://www.github.com/googleapis/java-bigquery/issues/651)) ([319b982](https://www.github.com/googleapis/java-bigquery/commit/319b982a8a50f592c244301b6431352b140ee50d)) + ### [1.116.8](https://www.github.com/googleapis/java-bigquery/compare/v1.116.7...v1.116.8) (2020-08-04) diff --git a/README.md b/README.md index 56968a223120..86afa81f2329 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.8' +compile 'com.google.cloud:google-cloud-bigquery:1.116.9' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.8" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.9" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7eb8cba7acae..4aa9c23835d9 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.9-SNAPSHOT + 1.116.9 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.9-SNAPSHOT + 1.116.9 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 98dea722963a..b791eabd6ba1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.9-SNAPSHOT + 1.116.9 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.9-SNAPSHOT + 1.116.9 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7b7d92c705de..85b79950b0bc 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.9-SNAPSHOT + 1.116.9 diff --git a/versions.txt b/versions.txt index 2c6fcf24ae47..501685769fc5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.8:1.116.9-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.116.9:1.116.9 \ No newline at end of file From 4b296a2dbbf4dc5491a042f489bdec74d3646381 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 7 Aug 2020 17:25:00 +0200 Subject: [PATCH 0733/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.116.9 (#656) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b987d74b4d37..e638c8ec3793 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.116.8 + 1.116.9 From 904405039a2d4dbb865451d7b1ac9257cc54efd2 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 7 Aug 2020 22:28:04 +0530 Subject: [PATCH 0734/3441] docs(samples): add query external sheet temp table (#659) --- .../bigquery/QueryExternalSheetsTemp.java | 97 +++++++++++++++++++ .../bigquery/QueryExternalSheetsTempIT.java | 63 ++++++++++++ 2 files changed, 160 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java new file mode 100644 index 000000000000..797a4a4531d9 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java @@ -0,0 +1,97 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_external_sheets_temp] +import com.google.auth.oauth2.GoogleCredentials; +import com.google.auth.oauth2.ServiceAccountCredentials; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.GoogleSheetsOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableResult; +import com.google.common.collect.ImmutableSet; +import java.io.IOException; + +// Sample to queries an external data source using a temporary table +public class QueryExternalSheetsTemp { + + public static void runQueryExternalSheetsTemp() { + // TODO(developer): Replace these variables before running the sample. + String tableName = "MY_TABLE_NAME"; + String sourceUri = + "https://docs.google.com/spreadsheets/d/1i_QCL-7HcSyUZmIbP9E6lO_T5u3HnpLe7dnpHaijg_E/edit?usp=sharing"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + String query = String.format("SELECT * FROM %s WHERE name LIKE 'W%%'", tableName); + queryExternalSheetsTemp(tableName, sourceUri, schema, query); + } + + public static void queryExternalSheetsTemp( + String tableName, String sourceUri, Schema schema, String query) { + try { + + // Create credentials with Drive & BigQuery API scopes. + // Both APIs must be enabled for your project before running this code. + GoogleCredentials credentials = + ServiceAccountCredentials.getApplicationDefault() + .createScoped( + ImmutableSet.of( + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/drive")); + + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = + BigQueryOptions.newBuilder().setCredentials(credentials).build().getService(); + + // Skip header row in the file. + GoogleSheetsOptions sheetsOptions = + GoogleSheetsOptions.newBuilder() + .setSkipLeadingRows(1) // Optionally skip header row. + .setRange("us-states!A20:B49") // Optionally set range of the sheet to query from. + .build(); + + // Configure the external data source and query job. + ExternalTableDefinition externalTable = + ExternalTableDefinition.newBuilder(sourceUri, sheetsOptions).setSchema(schema).build(); + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .addTableDefinition(tableName, externalTable) + .build(); + + // Example query to find states starting with 'W' + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query on external temporary table performed successfully."); + } catch (BigQueryException | InterruptedException | IOException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_external_sheets_temp] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java new file mode 100644 index 000000000000..74a6aa6413c7 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java @@ -0,0 +1,63 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryExternalSheetsTempIT { + + private ByteArrayOutputStream bout; + private PrintStream out; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + System.setOut(null); + } + + @Test + public void testQueryExternalSheetsTemp() { + String tableName = + "EXTERNAL_SHEET_TEMP_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + String sourceUri = + "https://docs.google.com/spreadsheets/d/1i_QCL-7HcSyUZmIbP9E6lO_T5u3HnpLe7dnpHaijg_E/edit?usp=sharing"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + String query = String.format("SELECT * FROM %s WHERE name LIKE 'W%%'", tableName); + QueryExternalSheetsTemp.queryExternalSheetsTemp(tableName, sourceUri, schema, query); + assertThat(bout.toString()) + .contains("Query on external temporary table performed successfully."); + } +} From 6488cd1ef914b2c87fa823511126a51cc27712fa Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 7 Aug 2020 22:46:57 +0530 Subject: [PATCH 0735/3441] docs(samples): add query external sheet permanent table (#658) --- .../bigquery/QueryExternalSheetsPerm.java | 99 +++++++++++++++++++ .../bigquery/QueryExternalSheetsPermIT.java | 91 +++++++++++++++++ 2 files changed, 190 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java new file mode 100644 index 000000000000..7d717aaae017 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java @@ -0,0 +1,99 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_external_sheets_perm] +import com.google.auth.oauth2.GoogleCredentials; +import com.google.auth.oauth2.ServiceAccountCredentials; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.GoogleSheetsOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.TableResult; +import com.google.common.collect.ImmutableSet; +import java.io.IOException; + +// Sample to queries an external data source using a permanent table +public class QueryExternalSheetsPerm { + + public static void runQueryExternalSheetsPerm() { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = + "https://docs.google.com/spreadsheets/d/1i_QCL-7HcSyUZmIbP9E6lO_T5u3HnpLe7dnpHaijg_E/edit?usp=sharing"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + String query = + String.format("SELECT * FROM %s.%s WHERE name LIKE 'W%%'", datasetName, tableName); + queryExternalSheetsPerm(datasetName, tableName, sourceUri, schema, query); + } + + public static void queryExternalSheetsPerm( + String datasetName, String tableName, String sourceUri, Schema schema, String query) { + try { + + // Create credentials with Drive & BigQuery API scopes. + // Both APIs must be enabled for your project before running this code. + GoogleCredentials credentials = + ServiceAccountCredentials.getApplicationDefault() + .createScoped( + ImmutableSet.of( + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/drive")); + + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = + BigQueryOptions.newBuilder().setCredentials(credentials).build().getService(); + + // Skip header row in the file. + GoogleSheetsOptions sheetsOptions = + GoogleSheetsOptions.newBuilder() + .setSkipLeadingRows(1) // Optionally skip header row. + .setRange("us-states!A20:B49") // Optionally set range of the sheet to query from. + .build(); + + TableId tableId = TableId.of(datasetName, tableName); + // Create a permanent table linked to the Sheets file. + ExternalTableDefinition externalTable = + ExternalTableDefinition.newBuilder(sourceUri, sheetsOptions).setSchema(schema).build(); + bigquery.create(TableInfo.of(tableId, externalTable)); + + // Example query to find states starting with 'W' + TableResult results = bigquery.query(QueryJobConfiguration.of(query)); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query on external permanent table performed successfully."); + } catch (BigQueryException | InterruptedException | IOException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_external_sheets_perm] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java new file mode 100644 index 000000000000..51ddde1db0c7 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java @@ -0,0 +1,91 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class QueryExternalSheetsPermIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = + "EXTERNAL_SHEETS_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testQueryExternalSheetsPerm() { + String sourceUri = + "https://docs.google.com/spreadsheets/d/1i_QCL-7HcSyUZmIbP9E6lO_T5u3HnpLe7dnpHaijg_E/edit?usp=sharing"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + String query = + String.format( + "SELECT * FROM %s.%s WHERE name LIKE 'W%%'", BIGQUERY_DATASET_NAME, tableName); + QueryExternalSheetsPerm.queryExternalSheetsPerm( + BIGQUERY_DATASET_NAME, tableName, sourceUri, schema, query); + assertThat(bout.toString()) + .contains("Query on external permanent table performed successfully."); + } +} From df3788a2ba9223bd99c56b6e76fbc6b0ab2b302a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 7 Aug 2020 23:34:13 +0200 Subject: [PATCH 0736/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.6 (#661) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | patch | `0.8.5` -> `0.8.6` | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v0.8.6`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​086-httpswwwgithubcomgoogleapisjava-shared-dependenciescomparev085v086-2020-08-07) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v0.8.5...v0.8.6)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b791eabd6ba1..ee5b8cf0b48b 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.8.5 + 0.8.6 pom import From 4ce0ec897256e27eac7de153dbf825d70c3a7242 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sun, 9 Aug 2020 21:40:49 -0700 Subject: [PATCH 0737/3441] changes without context (#662) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 5 ++++- synth.metadata | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 86afa81f2329..a2e9dce59a87 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.116.8 + 1.116.9 ``` @@ -256,6 +256,7 @@ has instructions for running the samples. | List Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | | Load Avro From GCS | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java) | | Load Avro From GCS Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java) | +| Load Csv From GCS Autodetect | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java) | | Load Csv From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | | Load Csv From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | | Load Json From GCS | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java) | @@ -278,6 +279,8 @@ has instructions for running the samples. | Query Dry Run | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | | Query External GCS Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java) | | Query External GCS Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java) | +| Query External Sheets Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java) | +| Query External Sheets Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java) | | Query Large Results | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | | Query Pagination | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | | Query Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | diff --git a/synth.metadata b/synth.metadata index fb4098735fcd..1a2ac3e0288b 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "319b982a8a50f592c244301b6431352b140ee50d" + "sha": "df3788a2ba9223bd99c56b6e76fbc6b0ab2b302a" } }, { From 511e9d7580c7ddcda6734dd5f0ad012035bc77d5 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 10 Aug 2020 20:27:20 +0530 Subject: [PATCH 0738/3441] docs(samples): add relax column load append (#657) * docs(samples): add relax column load append * docs(samples): address feedback --- .../bigquery/RelaxColumnLoadAppend.java | 92 +++++++++++++++++++ .../bigquery/RelaxColumnLoadAppendIT.java | 90 ++++++++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/RelaxColumnLoadAppendIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java b/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java new file mode 100644 index 000000000000..df8797755c4c --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java @@ -0,0 +1,92 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_relax_column_load_append] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.CsvOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.LoadJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; +import com.google.common.collect.ImmutableList; + +// Sample to append relax column in a table. +public class RelaxColumnLoadAppend { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + relaxColumnLoadAppend(datasetName, tableName, sourceUri); + } + + public static void relaxColumnLoadAppend(String datasetName, String tableName, String sourceUri) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Retrieve destination table reference + Table table = bigquery.getTable(TableId.of(datasetName, tableName)); + + // column as a 'REQUIRED' field. + Field name = + Field.newBuilder("name", StandardSQLTypeName.STRING).setMode(Field.Mode.REQUIRED).build(); + Field postAbbr = + Field.newBuilder("post_abbr", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build(); + Schema schema = Schema.of(name, postAbbr); + + // Skip header row in the file. + CsvOptions csvOptions = CsvOptions.newBuilder().setSkipLeadingRows(1).build(); + + // Set job options + LoadJobConfiguration loadConfig = + LoadJobConfiguration.newBuilder(table.getTableId(), sourceUri) + .setSchema(schema) + .setFormatOptions(csvOptions) + .setSchemaUpdateOptions( + ImmutableList.of(JobInfo.SchemaUpdateOption.ALLOW_FIELD_RELAXATION)) + .setWriteDisposition(JobInfo.WriteDisposition.WRITE_APPEND) + .build(); + + // Create a load job and wait for it to complete. + Job job = bigquery.create(JobInfo.of(loadConfig)); + job = job.waitFor(); + // Check the job's status for errors + if (job.isDone() && job.getStatus().getError() == null) { + System.out.println("Relax column append successfully loaded in a table"); + } else { + System.out.println( + "BigQuery was unable to load into the table due to an error:" + + job.getStatus().getError()); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } +} +// [END bigquery_relax_column_load_append] diff --git a/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnLoadAppendIT.java b/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnLoadAppendIT.java new file mode 100644 index 000000000000..9f54723a5d89 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnLoadAppendIT.java @@ -0,0 +1,90 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class RelaxColumnLoadAppendIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = "RELAX_COLUMN_LOAD_APPEND_TEST_" + UUID.randomUUID().toString().substring(0, 8); + Field id = + Field.newBuilder("id", StandardSQLTypeName.INT64).setMode(Field.Mode.REQUIRED).build(); + Field name = + Field.newBuilder("name", StandardSQLTypeName.STRING).setMode(Field.Mode.REQUIRED).build(); + Field postAbbr = + Field.newBuilder("post_abbr", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build(); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of(id, name, postAbbr)); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void testRelaxColumnLoadAppend() { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; + RelaxColumnLoadAppend.relaxColumnLoadAppend(BIGQUERY_DATASET_NAME, tableName, sourceUri); + assertThat(bout.toString()).contains("Relax column append successfully loaded in a table"); + } +} From ac8ed1904d9b53018e47b868b1a755e099ec66ee Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 10 Aug 2020 20:32:38 +0530 Subject: [PATCH 0739/3441] refactor(samples): rename method to main method (#664) --- .../main/java/com/example/bigquery/AddColumnLoadAppend.java | 2 +- .../src/main/java/com/example/bigquery/AddEmptyColumn.java | 2 +- .../src/main/java/com/example/bigquery/AuthDriveScope.java | 4 ++++ .../src/main/java/com/example/bigquery/AuthUserFlow.java | 2 +- .../src/main/java/com/example/bigquery/AuthUserQuery.java | 2 +- .../java/com/example/bigquery/AuthorizedViewTutorial.java | 2 +- .../src/main/java/com/example/bigquery/BrowseTable.java | 2 +- .../src/main/java/com/example/bigquery/CancelJob.java | 2 +- .../main/java/com/example/bigquery/CopyMultipleTables.java | 2 +- .../src/main/java/com/example/bigquery/CopyTable.java | 2 +- .../src/main/java/com/example/bigquery/CopyTableCMEK.java | 2 +- .../main/java/com/example/bigquery/CreateClusteredTable.java | 2 +- .../src/main/java/com/example/bigquery/CreateDataset.java | 2 +- .../src/main/java/com/example/bigquery/CreateJob.java | 2 +- .../src/main/java/com/example/bigquery/CreateModel.java | 2 +- .../java/com/example/bigquery/CreatePartitionedTable.java | 2 +- .../com/example/bigquery/CreateRangePartitionedTable.java | 2 +- .../src/main/java/com/example/bigquery/CreateRoutine.java | 2 +- .../src/main/java/com/example/bigquery/CreateRoutineDDL.java | 2 +- .../src/main/java/com/example/bigquery/CreateTable.java | 2 +- .../src/main/java/com/example/bigquery/CreateTableCMEK.java | 2 +- .../java/com/example/bigquery/CreateTableWithoutSchema.java | 2 +- .../src/main/java/com/example/bigquery/CreateView.java | 2 +- .../src/main/java/com/example/bigquery/DDLCreateView.java | 2 +- .../src/main/java/com/example/bigquery/DatasetExists.java | 2 +- .../src/main/java/com/example/bigquery/DeleteDataset.java | 2 +- .../java/com/example/bigquery/DeleteDatasetAndContents.java | 2 +- .../main/java/com/example/bigquery/DeleteLabelDataset.java | 2 +- .../src/main/java/com/example/bigquery/DeleteLabelTable.java | 2 +- .../src/main/java/com/example/bigquery/DeleteModel.java | 2 +- .../src/main/java/com/example/bigquery/DeleteRoutine.java | 2 +- .../src/main/java/com/example/bigquery/DeleteTable.java | 2 +- .../java/com/example/bigquery/ExtractTableCompressed.java | 2 +- .../main/java/com/example/bigquery/ExtractTableToCsv.java | 2 +- .../main/java/com/example/bigquery/ExtractTableToJson.java | 2 +- .../src/main/java/com/example/bigquery/GetDatasetInfo.java | 2 +- .../src/main/java/com/example/bigquery/GetDatasetLabels.java | 2 +- .../snippets/src/main/java/com/example/bigquery/GetJob.java | 2 +- .../src/main/java/com/example/bigquery/GetModel.java | 2 +- .../src/main/java/com/example/bigquery/GetRoutine.java | 2 +- .../src/main/java/com/example/bigquery/GetTable.java | 2 +- .../src/main/java/com/example/bigquery/GetTableLabels.java | 2 +- .../snippets/src/main/java/com/example/bigquery/GetView.java | 2 +- .../src/main/java/com/example/bigquery/GrantViewAccess.java | 2 +- .../main/java/com/example/bigquery/InsertingDataTypes.java | 2 +- .../src/main/java/com/example/bigquery/LabelDataset.java | 2 +- .../src/main/java/com/example/bigquery/LabelTable.java | 2 +- .../src/main/java/com/example/bigquery/ListDatasets.java | 2 +- .../main/java/com/example/bigquery/ListDatasetsByLabel.java | 2 +- .../src/main/java/com/example/bigquery/ListJobs.java | 2 +- .../src/main/java/com/example/bigquery/ListModels.java | 2 +- .../src/main/java/com/example/bigquery/ListRoutines.java | 2 +- .../src/main/java/com/example/bigquery/ListTables.java | 2 +- .../src/main/java/com/example/bigquery/LoadAvroFromGCS.java | 2 +- .../java/com/example/bigquery/LoadAvroFromGCSTruncate.java | 2 +- .../java/com/example/bigquery/LoadCsvFromGCSAutodetect.java | 2 +- .../src/main/java/com/example/bigquery/LoadCsvFromGcs.java | 2 +- .../java/com/example/bigquery/LoadCsvFromGcsTruncate.java | 2 +- .../src/main/java/com/example/bigquery/LoadJsonFromGCS.java | 2 +- .../java/com/example/bigquery/LoadJsonFromGCSAutodetect.java | 2 +- .../main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java | 2 +- .../java/com/example/bigquery/LoadJsonFromGCSTruncate.java | 2 +- .../src/main/java/com/example/bigquery/LoadLocalFile.java | 2 +- .../src/main/java/com/example/bigquery/LoadOrcFromGCS.java | 2 +- .../java/com/example/bigquery/LoadOrcFromGcsTruncate.java | 2 +- .../src/main/java/com/example/bigquery/LoadParquet.java | 2 +- .../java/com/example/bigquery/LoadParquetReplaceTable.java | 2 +- .../main/java/com/example/bigquery/LoadPartitionedTable.java | 2 +- .../main/java/com/example/bigquery/LoadTableClustered.java | 2 +- .../main/java/com/example/bigquery/NestedRepeatedSchema.java | 2 +- .../snippets/src/main/java/com/example/bigquery/Query.java | 2 +- .../src/main/java/com/example/bigquery/QueryBatch.java | 2 +- .../main/java/com/example/bigquery/QueryClusteredTable.java | 2 +- .../java/com/example/bigquery/QueryDestinationTableCMEK.java | 2 +- .../main/java/com/example/bigquery/QueryDisableCache.java | 2 +- .../src/main/java/com/example/bigquery/QueryDryRun.java | 2 +- .../main/java/com/example/bigquery/QueryExternalGCSPerm.java | 2 +- .../main/java/com/example/bigquery/QueryExternalGCSTemp.java | 2 +- .../java/com/example/bigquery/QueryExternalSheetsPerm.java | 2 +- .../java/com/example/bigquery/QueryExternalSheetsTemp.java | 2 +- .../main/java/com/example/bigquery/QueryLargeResults.java | 2 +- .../src/main/java/com/example/bigquery/QueryPagination.java | 2 +- .../java/com/example/bigquery/QueryPartitionedTable.java | 2 +- .../src/main/java/com/example/bigquery/QueryScript.java | 2 +- .../src/main/java/com/example/bigquery/QueryTotalRows.java | 2 +- .../java/com/example/bigquery/QueryWithArrayParameters.java | 2 +- .../java/com/example/bigquery/QueryWithNamedParameters.java | 4 ++++ .../com/example/bigquery/QueryWithNamedTypesParameters.java | 2 +- .../com/example/bigquery/QueryWithPositionalParameters.java | 5 +++++ .../example/bigquery/QueryWithPositionalTypesParameters.java | 2 +- .../com/example/bigquery/QueryWithStructsParameters.java | 4 ++++ .../com/example/bigquery/QueryWithTimestampParameters.java | 2 +- .../src/main/java/com/example/bigquery/RelaxColumnMode.java | 2 +- .../src/main/java/com/example/bigquery/RelaxTableQuery.java | 2 +- .../src/main/java/com/example/bigquery/RunLegacyQuery.java | 4 ++++ .../src/main/java/com/example/bigquery/SaveQueryToTable.java | 2 +- .../src/main/java/com/example/bigquery/SimpleQuery.java | 2 +- .../src/main/java/com/example/bigquery/TableExists.java | 2 +- .../src/main/java/com/example/bigquery/TableInsertRows.java | 2 +- .../com/example/bigquery/TableInsertRowsWithoutRowIds.java | 2 +- .../src/main/java/com/example/bigquery/UndeleteTable.java | 2 +- .../main/java/com/example/bigquery/UpdateDatasetAccess.java | 2 +- .../java/com/example/bigquery/UpdateDatasetDescription.java | 2 +- .../java/com/example/bigquery/UpdateDatasetExpiration.java | 2 +- .../example/bigquery/UpdateDatasetPartitionExpiration.java | 2 +- .../java/com/example/bigquery/UpdateModelDescription.java | 2 +- .../src/main/java/com/example/bigquery/UpdateRoutine.java | 2 +- .../src/main/java/com/example/bigquery/UpdateTableCMEK.java | 2 +- .../src/main/java/com/example/bigquery/UpdateTableDML.java | 2 +- .../java/com/example/bigquery/UpdateTableDescription.java | 2 +- .../java/com/example/bigquery/UpdateTableExpiration.java | 2 +- .../src/main/java/com/example/bigquery/UpdateViewQuery.java | 2 +- 112 files changed, 128 insertions(+), 107 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java b/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java index a6122bf30b4e..02bb56eedc44 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java @@ -39,7 +39,7 @@ // Sample to append column in existing table. public class AddColumnLoadAppend { - public static void runAddColumnLoadAppend() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java b/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java index 6e0372ec6af3..977901f9ae73 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java @@ -31,7 +31,7 @@ public class AddEmptyColumn { - public static void runAddEmptyColumn() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableId = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java b/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java index 23573d56b944..c690ed4de7eb 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java @@ -28,6 +28,10 @@ public class AuthDriveScope { + public static void main(String[] args) throws IOException { + setAuthDriveScope(); + } + public static void setAuthDriveScope() throws IOException { // Create credentials with Drive & BigQuery API scopes. // Both APIs must be enabled for your project before running this code. diff --git a/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java b/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java index 4d2de24f4220..0dd37f0d633d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java @@ -53,7 +53,7 @@ public class AuthUserFlow { // i.e redirect_uri http://localhost:61984/Callback private static final int LOCAL_RECEIVER_PORT = 61984; - public static void runAuthUserFlow() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. /** * Download your OAuth2 configuration from the Google Developers Console API Credentials page. diff --git a/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java b/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java index 7be558659ae1..508759620c3c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java @@ -53,7 +53,7 @@ public class AuthUserQuery { // i.e redirect_uri http://localhost:61984/Callback private static final int LOCAL_RECEIVER_PORT = 61984; - public static void runAuthUserQuery() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. /** * Download your OAuth2 configuration from the Google Developers Console API Credentials page. diff --git a/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java b/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java index 93f64eb0f5b0..d42909aa7467 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java @@ -33,7 +33,7 @@ // Sample of authorized view tutorial. public class AuthorizedViewTutorial { - public static void runAuthorizedViewTutorial() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String sourceDatasetId = "MY_SOURCE_DATASET"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java b/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java index 518067e7788c..6e6539c1678b 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java @@ -27,7 +27,7 @@ // Sample to directly browse a table with optional paging public class BrowseTable { - public static void runBrowseTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String table = "MY_TABLE_NAME"; String dataset = "MY_DATASET_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java b/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java index 1761fe745d0a..f15f29c05dfc 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java @@ -29,7 +29,7 @@ // Sample to cancel a job public class CancelJob { - public static void runCancelJob() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String query = "SELECT country_name from `bigquery-public-data.utility_us.country_code_iso`"; cancelJob(query); diff --git a/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java b/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java index ff139a2a5e0b..9c3c736fc35a 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java @@ -28,7 +28,7 @@ public class CopyMultipleTables { - public static void runCopyMultipleTables() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String destinationDatasetName = "MY_DATASET_NAME"; String destinationTableId = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java b/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java index 9ac960f795e5..16f2d5b51332 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java @@ -27,7 +27,7 @@ public class CopyTable { - public static void runCopyTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String destinationDatasetName = "MY_DESTINATION_DATASET_NAME"; String destinationTableId = "MY_DESTINATION_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java index 74614c2d1711..37321b2bb57a 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java @@ -29,7 +29,7 @@ // Sample to copy a cmek table public class CopyTableCMEK { - public static void runCopyTableCMEK() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String destinationDatasetName = "MY_DESTINATION_DATASET_NAME"; String destinationTableId = "MY_DESTINATION_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java index 602fbfedd2de..3ea3318b7e8e 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java @@ -32,7 +32,7 @@ import java.util.List; public class CreateClusteredTable { - public static void runCreateClusteredTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java b/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java index 5ac8f157b81b..92e73d1131c7 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java @@ -25,7 +25,7 @@ public class CreateDataset { - public static void runCreateDataset() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; createDataset(datasetName); diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java b/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java index 652b512a3ee3..46cbd7166d7a 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java @@ -30,7 +30,7 @@ // Sample to create a job public class CreateJob { - public static void runCreateJob() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String query = "SELECT country_name from `bigquery-public-data.utility_us.country_code_iso`"; createJob(query); diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java b/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java index d7ebe2c28bec..72adbbb82b5e 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java @@ -27,7 +27,7 @@ // Sample to create a model public class CreateModel { - public static void runCreateModel() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String modelName = "MY_MODEL_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java index e64010d5c19a..a5ae394b2c78 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java @@ -31,7 +31,7 @@ // Sample to create a partition table public class CreatePartitionedTable { - public static void runCreatePartitionedTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java index 57abdff8f510..7e5b3a9a2684 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java @@ -31,7 +31,7 @@ // Sample to create a range partitioned table public class CreateRangePartitionedTable { - public static void runCreateRangePartitionedTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java b/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java index de01d2ba6b90..561ac28d751f 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java @@ -30,7 +30,7 @@ // Sample to create a routine public class CreateRoutine { - public static void runCreateRoutine() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String routineName = "MY_ROUTINE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java b/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java index eb3622dd2f7c..b787c733706c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java @@ -27,7 +27,7 @@ // Sample to create a routine using DDL public class CreateRoutineDDL { - public static void runCreateRoutineDDL() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String datasetId = "MY_DATASET_ID"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java index 33163158759b..df94a5ee7294 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java @@ -30,7 +30,7 @@ public class CreateTable { - public static void runCreateTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java index a089afd16ebe..4d24de6d280e 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java @@ -32,7 +32,7 @@ // Sample to create a cmek table public class CreateTableCMEK { - public static void runCreateTableCMEK() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java b/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java index a4c61898d154..aa7350bfcb87 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java @@ -29,7 +29,7 @@ // Sample to create a table without schema public class CreateTableWithoutSchema { - public static void runCreateTableWithoutSchema() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateView.java b/samples/snippets/src/main/java/com/example/bigquery/CreateView.java index aad3e6dd0afc..33973bbc5c17 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateView.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateView.java @@ -27,7 +27,7 @@ // Sample to create a view public class CreateView { - public static void runCreateView() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java b/samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java index 89f23fac7e0f..b214114708cf 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java +++ b/samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java @@ -27,7 +27,7 @@ // Sample to create a view using DDL public class DDLCreateView { - public static void runDDLCreateView() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String datasetId = "MY_DATASET_ID"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java b/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java index 71e9ccca4859..0b644083ea65 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java +++ b/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java @@ -26,7 +26,7 @@ // Sample to check dataset exist public class DatasetExists { - public static void runDatasetExists() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; datasetExists(datasetName); diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java index b7eac9dab794..62b9bde6161c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java @@ -25,7 +25,7 @@ public class DeleteDataset { - public static void runDeleteDataset() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String datasetName = "MY_DATASET_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java index 753b024832c3..4980e4f58971 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java @@ -25,7 +25,7 @@ // Sample to delete dataset with contents. public class DeleteDatasetAndContents { - public static void runDeleteDatasetAndContents() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String datasetName = "MY_DATASET_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java index 7894cd0c3115..24660c68b5b4 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java @@ -27,7 +27,7 @@ // Sample tp deletes a label on a dataset. public class DeleteLabelDataset { - public static void runDeleteLabelDataset() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; deleteLabelDataset(datasetName); diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java index 088e50859382..f981579d6337 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java @@ -28,7 +28,7 @@ // Sample tp deletes a label on a table. public class DeleteLabelTable { - public static void runDeleteLabelTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java index dbf3bb0a68d9..7917b1e5a933 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java @@ -25,7 +25,7 @@ // Sample to delete a model public class DeleteModel { - public static void runDeleteModel() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String modelName = "MY_MODEL_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java index 6d26c0ee25a7..7e69626de180 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java @@ -25,7 +25,7 @@ // Sample to delete a routine public class DeleteRoutine { - public static void runDeleteRoutine() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String routineName = "MY_ROUTINE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java index 39bbd971095d..3c9e6986f2bb 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java @@ -24,7 +24,7 @@ public class DeleteTable { - public static void runDeleteTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java index b30385ab17d2..17f7e41bbf87 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java @@ -28,7 +28,7 @@ // Sample to extract a compressed table public class ExtractTableCompressed { - public static void runExtractTableCompressed() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectName = "MY_PROJECT_NAME"; String datasetName = "MY_DATASET_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java index 6c6701f84486..7a9323bd5a4e 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java @@ -28,7 +28,7 @@ public class ExtractTableToCsv { - public static void runExtractTableToCsv() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "bigquery-public-data"; String datasetName = "samples"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java index 6db988703fa4..764113c9b7b3 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java @@ -29,7 +29,7 @@ public class ExtractTableToJson { - public static void runExtractTableToJson() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "bigquery-public-data"; String datasetName = "samples"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java b/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java index 963bbfaf9112..b691d27e4d5d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java +++ b/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java @@ -28,7 +28,7 @@ public class GetDatasetInfo { - public static void runGetDatasetInfo() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String datasetName = "MY_DATASET_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java b/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java index 82de732fd32b..952dfaedceb5 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java +++ b/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java @@ -25,7 +25,7 @@ // Sample to get dataset labels public class GetDatasetLabels { - public static void runGetDatasetLabels() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; getDatasetLabels(datasetName); diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetJob.java b/samples/snippets/src/main/java/com/example/bigquery/GetJob.java index 617d1c79dbe8..920f16fc2540 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/GetJob.java +++ b/samples/snippets/src/main/java/com/example/bigquery/GetJob.java @@ -26,7 +26,7 @@ // Sample to get a job public class GetJob { - public static void runGetJob() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String jobName = "MY_JOB_NAME"; getJob(jobName); diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetModel.java b/samples/snippets/src/main/java/com/example/bigquery/GetModel.java index 8291447a3c32..f5106959f802 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/GetModel.java +++ b/samples/snippets/src/main/java/com/example/bigquery/GetModel.java @@ -25,7 +25,7 @@ public class GetModel { - public static void runGetModel() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String modelName = "MY_MODEL_ID"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java b/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java index 6360c5fb8b65..2c13f026d445 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java +++ b/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java @@ -26,7 +26,7 @@ // Sample to get a routine public class GetRoutine { - public static void runGetRoutine() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String routineName = "MY_ROUTINE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetTable.java b/samples/snippets/src/main/java/com/example/bigquery/GetTable.java index d9b4716318d7..7009fbcba1b0 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/GetTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/GetTable.java @@ -25,7 +25,7 @@ public class GetTable { - public static void runGetTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "bigquery_public_data"; String datasetName = "samples"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java b/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java index e3ef02b9bb72..7cc2a5f580a8 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java +++ b/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java @@ -26,7 +26,7 @@ // Sample to get table labels public class GetTableLabels { - public static void runGetTableLabels() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/GetView.java b/samples/snippets/src/main/java/com/example/bigquery/GetView.java index dd8a02d814e4..d64e59dfe08d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/GetView.java +++ b/samples/snippets/src/main/java/com/example/bigquery/GetView.java @@ -26,7 +26,7 @@ // Sample to get a view public class GetView { - public static void runGetView() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String viewName = "MY_VIEW_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java b/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java index 72858af47b3a..a87f51eeb445 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java +++ b/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java @@ -30,7 +30,7 @@ // Sample to grant view access on dataset public class GrantViewAccess { - public static void runGrantViewAccess() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String srcDatasetId = "MY_DATASET_ID"; String viewDatasetId = "MY_VIEW_DATASET_ID"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java b/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java index 163e6b625b39..e3f2a7428672 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java +++ b/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java @@ -37,7 +37,7 @@ // Sample to insert data types in a table public class InsertingDataTypes { - public static void runInsertingDataTypes() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java b/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java index c073fb26352d..e0bfed88f4cc 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java @@ -27,7 +27,7 @@ // Sample to updates a label on dataset public class LabelDataset { - public static void runLabelDataset() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; labelDataset(datasetName); diff --git a/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java b/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java index 2cc0f077a7ef..dae54776e421 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java @@ -28,7 +28,7 @@ // Sample to adds a label to an existing table public class LabelTable { - public static void runLabelTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java b/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java index cbeaea25ec7a..46bfb6dc376e 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java @@ -26,7 +26,7 @@ public class ListDatasets { - public static void runListDatasets() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; listDatasets(projectId); diff --git a/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java b/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java index eccb9eada62d..121015b4baf0 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java @@ -26,7 +26,7 @@ // Sample to get list of datasets by label public class ListDatasetsByLabel { - public static void runListDatasetsByLabel() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String filter = "MY_LABEL_FILTER"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java b/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java index 2c9399e47204..ace9ad14c042 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java @@ -26,7 +26,7 @@ // Sample to get list of jobs public class ListJobs { - public static void runListJobs() { + public static void main(String[] args) { listJobs(); } diff --git a/samples/snippets/src/main/java/com/example/bigquery/ListModels.java b/samples/snippets/src/main/java/com/example/bigquery/ListModels.java index 577439b82265..a1b26b29c419 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ListModels.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ListModels.java @@ -26,7 +26,7 @@ public class ListModels { - public static void runListModels() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; listModels(datasetName); diff --git a/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java b/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java index f7c3874272ec..37b3fc017c92 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java @@ -26,7 +26,7 @@ // Sample to get list of routines public class ListRoutines { - public static void runListRoutines() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; listRoutines(datasetName); diff --git a/samples/snippets/src/main/java/com/example/bigquery/ListTables.java b/samples/snippets/src/main/java/com/example/bigquery/ListTables.java index af42c7fc0bc7..2abd9e2c61c5 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ListTables.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ListTables.java @@ -27,7 +27,7 @@ public class ListTables { - public static void runListTables() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "bigquery-public-data"; String datasetName = "samples"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java b/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java index b69d2d8d42e5..a85f561aec3d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java @@ -29,7 +29,7 @@ // Sample to load Avro data from Cloud Storage into a new BigQuery table public class LoadAvroFromGCS { - public static void runLoadAvroFromGCS() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java b/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java index d6fdfc1ec5f6..211fd0834940 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java @@ -29,7 +29,7 @@ // Sample to overwrite the BigQuery table data by loading a AVRO file from GCS public class LoadAvroFromGCSTruncate { - public static void runLoadAvroFromGCSTruncate() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java index 1c157502186a..19153038db5b 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java @@ -29,7 +29,7 @@ // Sample to load CSV data with autodetect schema from Cloud Storage into a new BigQuery table public class LoadCsvFromGCSAutodetect { - public static void runLoadCsvFromGCSAutodetect() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java index b45c9d732328..4dd26aeec27d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java @@ -32,7 +32,7 @@ // Sample to load CSV data from Cloud Storage into a new BigQuery table public class LoadCsvFromGcs { - public static void runLoadCsvFromGcs() throws Exception { + public static void main(String[] args) throws Exception { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java index 228d55854acf..b6d06ed8f866 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java @@ -30,7 +30,7 @@ // Sample to overwrite the BigQuery table data by loading a CSV file from GCS public class LoadCsvFromGcsTruncate { - public static void runLoadCsvFromGcsTruncate() throws Exception { + public static void main(String[] args) throws Exception { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java index df3681d9133c..a330647c492c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java @@ -32,7 +32,7 @@ // Sample to load JSON data from Cloud Storage into a new BigQuery table public class LoadJsonFromGCS { - public static void runLoadJsonFromGCS() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java index b8fab0b5c05e..96bcf49edea8 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java @@ -29,7 +29,7 @@ // Sample to load JSON data with autodetect schema from Cloud Storage into a new BigQuery table public class LoadJsonFromGCSAutodetect { - public static void runLoadJsonFromGCSAutodetect() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java index 46b02061d9ad..3d187e6c2754 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java @@ -30,7 +30,7 @@ // Sample to load JSON data with configuration key from Cloud Storage into a new BigQuery table public class LoadJsonFromGCSCMEK { - public static void runLoadJsonFromGCSCMEK() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java index 45575f9a8c0c..2f4fa97303ad 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java @@ -32,7 +32,7 @@ // Sample to overwrite the BigQuery table data by loading a JSON file from GCS public class LoadJsonFromGCSTruncate { - public static void runLoadJsonFromGCSTruncate() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java b/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java index 98257420e098..4e6b75f1e661 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java @@ -37,7 +37,7 @@ public class LoadLocalFile { - public static void runLoadLocalFile() throws IOException, InterruptedException { + public static void main(String[] args) throws IOException, InterruptedException { String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; Path csvPath = FileSystems.getDefault().getPath(".", "my-data.csv"); diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java b/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java index 8d1d484a3b00..e2c19d2c7ba8 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java @@ -32,7 +32,7 @@ // Sample to load ORC data from Cloud Storage into a new BigQuery table public class LoadOrcFromGCS { - public static void runLoadOrcFromGCS() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java b/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java index 18730b13b46a..e81a9ea4c59c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java @@ -29,7 +29,7 @@ // Sample to overwrite the BigQuery table data by loading a ORC file from GCS public class LoadOrcFromGcsTruncate { - public static void runLoadOrcFromGcsTruncate() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java b/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java index 56a6b6b04681..712acd1f83f7 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java @@ -29,7 +29,7 @@ public class LoadParquet { - public static void runLoadParquet() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.parquet"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java b/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java index eb09015fabf0..d29a2fa0b211 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java @@ -31,7 +31,7 @@ public class LoadParquetReplaceTable { - public static void runLoadParquetReplaceTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.parquet"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java b/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java index 6adc4dfe65cc..334378092cfe 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java @@ -36,7 +36,7 @@ public class LoadPartitionedTable { - public static void runLoadPartitionedTable() throws Exception { + public static void main(String[] args) throws Exception { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java b/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java index ad171eca6d6c..118e356e5bfb 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java @@ -36,7 +36,7 @@ // Sample to load clustered table. public class LoadTableClustered { - public static void runLoadTableClustered() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java b/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java index e20cdf4c8346..db2e1d129523 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java +++ b/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java @@ -31,7 +31,7 @@ public class NestedRepeatedSchema { - public static void runNestedRepeatedSchema() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/Query.java b/samples/snippets/src/main/java/com/example/bigquery/Query.java index d9794e6c622b..8b293cd0b5ce 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/Query.java +++ b/samples/snippets/src/main/java/com/example/bigquery/Query.java @@ -26,7 +26,7 @@ // Sample to query in a table public class Query { - public static void runQuery() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String datasetName = "MY_DATASET_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java b/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java index 2c998b708756..d1dcb2b3e65b 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java @@ -26,7 +26,7 @@ // Sample to query batch in a table public class QueryBatch { - public static void runQueryBatch() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String datasetName = "MY_DATASET_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java b/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java index f02a5636025c..aca44979f91c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java @@ -25,7 +25,7 @@ public class QueryClusteredTable { - public static void runQueryClusteredTable() throws Exception { + public static void main(String[] args) throws Exception { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String datasetName = "MY_DATASET_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java index 82b37433a829..5e214164c976 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java @@ -27,7 +27,7 @@ // Sample to query on destination table with encryption key public class QueryDestinationTableCMEK { - public static void runQueryDestinationTableCMEK() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java b/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java index 23e600d5008f..d353bc85b5bf 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java @@ -26,7 +26,7 @@ // Sample to running a query with the cache disabled. public class QueryDisableCache { - public static void runQueryDisableCache() { + public static void main(String[] args) { String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; queryDisableCache(query); } diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java b/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java index 7a72de1dee65..72a50e45c081 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java @@ -28,7 +28,7 @@ // Sample to run dry query on the table public class QueryDryRun { - public static void runQueryDryRun() { + public static void main(String[] args) { String query = "SELECT name, COUNT(*) as name_count " + "FROM `bigquery-public-data.usa_names.usa_1910_2013` " diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java index cf7f31b3370a..aba670102960 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java @@ -33,7 +33,7 @@ // Sample to queries an external data source using a permanent table public class QueryExternalGCSPerm { - public static void runQueryExternalGCSPerm() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java index c3dea8c00143..8f7f690116e8 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java @@ -31,7 +31,7 @@ // Sample to queries an external data source using a temporary table public class QueryExternalGCSTemp { - public static void runQueryExternalGCSTemp() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String tableName = "MY_TABLE_NAME"; String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java index 7d717aaae017..97e660c9715a 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java @@ -37,7 +37,7 @@ // Sample to queries an external data source using a permanent table public class QueryExternalSheetsPerm { - public static void runQueryExternalSheetsPerm() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java index 797a4a4531d9..ce9866e12525 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java @@ -35,7 +35,7 @@ // Sample to queries an external data source using a temporary table public class QueryExternalSheetsTemp { - public static void runQueryExternalSheetsTemp() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String tableName = "MY_TABLE_NAME"; String sourceUri = diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java b/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java index 9a4fdd3c7c66..ee6800786818 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java @@ -27,7 +27,7 @@ // Sample to run query with large results and save the results to a table. public class QueryLargeResults { - public static void runQueryLargeResults() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String destinationDataset = "MY_DESTINATION_DATASET_NAME"; String destinationTable = "MY_DESTINATION_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java b/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java index 45801e1ee772..6c442865af75 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java @@ -27,7 +27,7 @@ // Sample to run query with pagination. public class QueryPagination { - public static void runQueryPagination() { + public static void main(String[] args) { String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; String query = diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java b/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java index 015b3ff9f64d..19d8740378e8 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java @@ -27,7 +27,7 @@ // Sample to run query on partitioned table. public class QueryPartitionedTable { - public static void runQueryPartitionedTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java b/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java index c9da185f5e86..553b91184089 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java @@ -28,7 +28,7 @@ // Sample to run query script. public class QueryScript { - public static void runQueryScript() { + public static void main(String[] args) { String script = "-- Declare a variable to hold names as an array.\n" + "DECLARE top_names ARRAY;\n" diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java b/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java index 6c1fe5e2ee7a..21bce842714c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java @@ -26,7 +26,7 @@ // Sample to run query total rows public class QueryTotalRows { - public static void runQueryTotalRows() { + public static void main(String[] args) { String query = "SELECT name FROM `bigquery-public-data.usa_names.usa_1910_2013`" + " WHERE state = \"TX\"" diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java index 9a78f629cf39..62a26c21054b 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java @@ -27,7 +27,7 @@ // Sample to running a query with array query parameters. public class QueryWithArrayParameters { - public static void runQueryWithArrayParameters() { + public static void main(String[] args) { String gender = "M"; String[] states = {"WA", "WI", "WV", "WY"}; String query = diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java index 4f99241bbc16..64589e5de96a 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java @@ -26,6 +26,10 @@ public class QueryWithNamedParameters { + public static void main(String[] args) { + queryWithNamedParameters(); + } + public static void queryWithNamedParameters() { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java index 891d8192fcbe..bf9f8fa18495 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java @@ -28,7 +28,7 @@ // Sample to run query with named types parameters. public class QueryWithNamedTypesParameters { - public static void runQueryWithNamedTypesParameters() { + public static void main(String[] args) { String[] words = {"and", "is", "the", "moon"}; String corpus = "romeoandjuliet"; Integer wordsCount = 250; diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java index d3e490341bcc..3463c07c88a5 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java @@ -25,6 +25,11 @@ import com.google.cloud.bigquery.TableResult; public class QueryWithPositionalParameters { + + public static void main(String[] args) { + queryWithPositionalParameters(); + } + public static void queryWithPositionalParameters() { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java index 5d9cd781298f..fa8faaf63760 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java @@ -28,7 +28,7 @@ // Sample to run query with positional types parameters. public class QueryWithPositionalTypesParameters { - public static void runQueryWithPositionalTypesParameters() { + public static void main(String[] args) { String[] words = {"and", "is", "the", "moon"}; String corpus = "romeoandjuliet"; Integer wordsCount = 250; diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java index 79db8534ed30..10ef6c316c8b 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java @@ -28,6 +28,10 @@ public class QueryWithStructsParameters { + public static void main(String[] args) { + queryWithStructsParameters(); + } + public static void queryWithStructsParameters() { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java index 8aaf03518ba1..56a3fcea914f 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java @@ -30,7 +30,7 @@ // Sample to running a query with timestamp query parameters. public class QueryWithTimestampParameters { - public static void runQueryWithTimestampParameters() { + public static void main(String[] args) { queryWithTimestampParameters(); } diff --git a/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java b/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java index 2c57f2db194b..dd2decc5e826 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java +++ b/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java @@ -28,7 +28,7 @@ public class RelaxColumnMode { - public static void runRelaxColumnMode() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableId = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java b/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java index 8ed3ea1d481b..2e26a0ca1603 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java +++ b/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java @@ -31,7 +31,7 @@ public class RelaxTableQuery { - public static void runRelaxTableQuery() throws Exception { + public static void main(String[] args) throws Exception { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String datasetName = "MY_DATASET_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java b/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java index 747772220497..ce9b96cec8c7 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java +++ b/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java @@ -25,6 +25,10 @@ public class RunLegacyQuery { + public static void main(String[] args) { + runLegacyQuery(); + } + public static void runLegacyQuery() { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java b/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java index 5e346b937e6b..7279c30cd971 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java @@ -25,7 +25,7 @@ public class SaveQueryToTable { - public static void runSaveQueryToTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; String destinationTable = "MY_TABLE"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java b/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java index 587a7456df87..1aeaff1955db 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java +++ b/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java @@ -25,7 +25,7 @@ public class SimpleQuery { - public static void runSimpleQuery() { + public static void main(String[] args) { // TODO(developer): Replace this query before running the sample. String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; simpleQuery(query); diff --git a/samples/snippets/src/main/java/com/example/bigquery/TableExists.java b/samples/snippets/src/main/java/com/example/bigquery/TableExists.java index ca4bad345be0..0775c2548b1c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/TableExists.java +++ b/samples/snippets/src/main/java/com/example/bigquery/TableExists.java @@ -26,7 +26,7 @@ // Sample to check table exist public class TableExists { - public static void runTableExists() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java index c405334ca5c8..b5363d47bbd9 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java +++ b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java @@ -31,7 +31,7 @@ // Sample to inserting rows into a table without running a load job. public class TableInsertRows { - public static void runTableInsertRows() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java index 674b10f0b27a..369ecc05c68f 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java +++ b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java @@ -32,7 +32,7 @@ // Sample to insert rows without row ids in a table public class TableInsertRowsWithoutRowIds { - public static void runTableInsertRowsWithoutRowIds() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java b/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java index 5f64c3ffe4d5..17deac76221c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java @@ -28,7 +28,7 @@ // Sample to undeleting a table public class UndeleteTable { - public static void runUndeleteTable() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_TABLE"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java index 5f7cc27fa74c..e3edf5eca818 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java @@ -28,7 +28,7 @@ public class UpdateDatasetAccess { - public static void runUpdateDatasetAccess() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; // Create a new ACL granting the READER role to "sample.bigquery.dev@gmail.com" diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java index 5738ec0e5d19..71f50c85f4c8 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java @@ -24,7 +24,7 @@ public class UpdateDatasetDescription { - public static void runUpdateDatasetDescription() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String newDescription = "this is the new dataset description"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java index 9b746a90dfa7..10a5f76617d4 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java @@ -25,7 +25,7 @@ public class UpdateDatasetExpiration { - public static void runUpdateDatasetExpiration() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; // Update dataset expiration to one day diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java index d52ea8c1fb37..d7696c78daa0 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java @@ -26,7 +26,7 @@ // Sample to update partition expiration on a dataset. public class UpdateDatasetPartitionExpiration { - public static void runUpdateDatasetPartitionExpiration() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; // Set the default partition expiration (applies to new tables, only) in diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java index 2f8392070159..42b1eaeb6fdf 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java @@ -26,7 +26,7 @@ // Sample to update description on a model public class UpdateModelDescription { - public static void runUpdateModelDescription() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String modelName = "MY_MODEL_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java index 4b86bd0376af..f9a9ddd3be86 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java @@ -26,7 +26,7 @@ // Sample to update routine public class UpdateRoutine { - public static void runUpdateRoutine() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String routineName = "MY_ROUTINE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java index c0431c8f7b8d..01ac37749485 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java @@ -27,7 +27,7 @@ // Sample to update a cmek table public class UpdateTableCMEK { - public static void runUpdateTableCMEK() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java index b5d5de8bc510..13b06c0f86f6 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java @@ -39,7 +39,7 @@ // Sample to update data in BigQuery tables using DML query public class UpdateTableDML { - public static void runUpdateTableDML() throws IOException, InterruptedException { + public static void main(String[] args) throws IOException, InterruptedException { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java index 55c6af53db26..10e138d2d5fe 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java @@ -24,7 +24,7 @@ public class UpdateTableDescription { - public static void runUpdateTableDescription() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java index b3e369bff0e1..e66353741e30 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java @@ -25,7 +25,7 @@ public class UpdateTableExpiration { - public static void runUpdateTableExpiration() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java index 2f36ea8a5052..03b5d2c977e6 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java @@ -27,7 +27,7 @@ // Sample to update query on a view public class UpdateViewQuery { - public static void runUpdateViewQuery() { + public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; From dcc44dfcc7b06734d693231582d3712c81892539 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2020 15:06:09 +0000 Subject: [PATCH 0740/3441] chore: release 1.116.10-SNAPSHOT (#663) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4aa9c23835d9..84762609f670 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.9 + 1.116.10-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.9 + 1.116.10-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ee5b8cf0b48b..c9d05d78f09a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.9 + 1.116.10-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.9 + 1.116.10-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 85b79950b0bc..b3754b3e2005 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.9 + 1.116.10-SNAPSHOT diff --git a/versions.txt b/versions.txt index 501685769fc5..5e61f13709cc 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.9:1.116.9 \ No newline at end of file +google-cloud-bigquery:1.116.9:1.116.10-SNAPSHOT \ No newline at end of file From 349e11163773b22deae3dfb0ed4373f717711b79 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 10 Aug 2020 11:24:04 -0400 Subject: [PATCH 0741/3441] docs: remove outdated readme content (#666) --- .readme-partials.yaml | 104 ------------------------------------------ 1 file changed, 104 deletions(-) delete mode 100644 .readme-partials.yaml diff --git a/.readme-partials.yaml b/.readme-partials.yaml deleted file mode 100644 index 47f096060a14..000000000000 --- a/.readme-partials.yaml +++ /dev/null @@ -1,104 +0,0 @@ -custom_content: | - #### Creating a dataset - With BigQuery you can create datasets. A dataset is a grouping mechanism that holds zero or more - tables. Add the following import at the top of your file: - - ```java - import com.google.cloud.bigquery.DatasetInfo; - ``` - Then, to create the dataset, use the following code: - - ```java - // Create a dataset - String datasetId = "my_dataset_id"; - bigquery.create(DatasetInfo.newBuilder(datasetId).build()); - ``` - - #### Creating a table - With BigQuery you can create different types of tables: normal tables with an associated schema, - external tables backed by data stored on [Google Cloud Storage](https://cloud.google.com/storage/) and view tables that - are created from a BigQuery SQL query. In this code snippet we show how to create a normal table - with only one string field. Add the following imports at the top of your file: - - ```java - import com.google.cloud.bigquery.Field; - import com.google.cloud.bigquery.Schema; - import com.google.cloud.bigquery.StandardTableDefinition; - import com.google.cloud.bigquery.Table; - import com.google.cloud.bigquery.TableId; - import com.google.cloud.bigquery.TableInfo; - ``` - Then add the following code to create the table: - - ```java - TableId tableId = TableId.of(datasetId, "my_table_id"); - // Table field definition - Field stringField = Field.of("StringField", LegacySQLTypeName.STRING); - // Table schema definition - Schema schema = Schema.of(stringField); - // Create a table - StandardTableDefinition tableDefinition = StandardTableDefinition.of(schema); - Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); - ``` - - #### Loading data into a table - BigQuery provides several ways to load data into a table: streaming rows or loading data from a - Google Cloud Storage file. In this code snippet we show how to stream rows into a table. - Add the following imports at the top of your file: - - ```java - import com.google.cloud.bigquery.InsertAllRequest; - import com.google.cloud.bigquery.InsertAllResponse; - - import java.util.HashMap; - import java.util.Map; - ``` - Then add the following code to insert data: - - ```java - Map firstRow = new HashMap<>(); - Map secondRow = new HashMap<>(); - firstRow.put("StringField", "value1"); - secondRow.put("StringField", "value2"); - // Create an insert request - InsertAllRequest insertRequest = InsertAllRequest.newBuilder(tableId) - .addRow(firstRow) - .addRow(secondRow) - .build(); - // Insert rows - InsertAllResponse insertResponse = bigquery.insertAll(insertRequest); - // Check if errors occurred - if (insertResponse.hasErrors()) { - System.out.println("Errors occurred while inserting rows"); - } - ``` - - #### Querying data - BigQuery enables querying data by running queries and waiting for the result. Queries can be run - directly or through a Query Job. In this code snippet we show how to run a query directly and wait - for the result. Add the following imports at the top of your file: - - ```java - import com.google.cloud.bigquery.FieldValueList; - import com.google.cloud.bigquery.QueryJobConfiguration; - ``` - Then add the following code to run the query and wait for the result: - - ```java - // Create a query request - QueryJobConfiguration queryConfig = - QueryJobConfiguration.newBuilder("SELECT my_column FROM my_dataset_id.my_table_id").build(); - // Read rows - System.out.println("Table rows:"); - for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) { - System.out.println(row); - } - ``` - #### Complete source code - - In - [InsertDataAndQueryTable.java](https://github.com/googleapis/google-cloud-java/blob/master/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/InsertDataAndQueryTable.java) - we put together all the code shown above into one program. The program assumes that you are - running on Compute Engine or from your own desktop. To run the example on App Engine, simply move - the code from the main method to your application's servlet class and change the print statements to - display on your webpage. \ No newline at end of file From 1b333a8d46a308bf4f455e301e387821243c3377 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 11 Aug 2020 08:00:44 -0700 Subject: [PATCH 0742/3441] chore: update readme (#668) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 104 +------------------------------------------------ synth.metadata | 2 +- 2 files changed, 2 insertions(+), 104 deletions(-) diff --git a/README.md b/README.md index a2e9dce59a87..8edaba3a0789 100644 --- a/README.md +++ b/README.md @@ -87,109 +87,6 @@ See the [Cloud BigQuery client library docs][javadocs] to learn how to use this Cloud BigQuery Client Library. -#### Creating a dataset -With BigQuery you can create datasets. A dataset is a grouping mechanism that holds zero or more -tables. Add the following import at the top of your file: - -```java -import com.google.cloud.bigquery.DatasetInfo; -``` -Then, to create the dataset, use the following code: - -```java -// Create a dataset -String datasetId = "my_dataset_id"; -bigquery.create(DatasetInfo.newBuilder(datasetId).build()); -``` - -#### Creating a table -With BigQuery you can create different types of tables: normal tables with an associated schema, -external tables backed by data stored on [Google Cloud Storage](https://cloud.google.com/storage/) and view tables that -are created from a BigQuery SQL query. In this code snippet we show how to create a normal table -with only one string field. Add the following imports at the top of your file: - -```java -import com.google.cloud.bigquery.Field; -import com.google.cloud.bigquery.Schema; -import com.google.cloud.bigquery.StandardTableDefinition; -import com.google.cloud.bigquery.Table; -import com.google.cloud.bigquery.TableId; -import com.google.cloud.bigquery.TableInfo; -``` -Then add the following code to create the table: - -```java -TableId tableId = TableId.of(datasetId, "my_table_id"); -// Table field definition -Field stringField = Field.of("StringField", LegacySQLTypeName.STRING); -// Table schema definition -Schema schema = Schema.of(stringField); -// Create a table -StandardTableDefinition tableDefinition = StandardTableDefinition.of(schema); -Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); -``` - -#### Loading data into a table -BigQuery provides several ways to load data into a table: streaming rows or loading data from a -Google Cloud Storage file. In this code snippet we show how to stream rows into a table. -Add the following imports at the top of your file: - -```java -import com.google.cloud.bigquery.InsertAllRequest; -import com.google.cloud.bigquery.InsertAllResponse; - -import java.util.HashMap; -import java.util.Map; -``` -Then add the following code to insert data: - -```java -Map firstRow = new HashMap<>(); -Map secondRow = new HashMap<>(); -firstRow.put("StringField", "value1"); -secondRow.put("StringField", "value2"); -// Create an insert request -InsertAllRequest insertRequest = InsertAllRequest.newBuilder(tableId) - .addRow(firstRow) - .addRow(secondRow) - .build(); -// Insert rows -InsertAllResponse insertResponse = bigquery.insertAll(insertRequest); -// Check if errors occurred -if (insertResponse.hasErrors()) { - System.out.println("Errors occurred while inserting rows"); -} -``` - -#### Querying data -BigQuery enables querying data by running queries and waiting for the result. Queries can be run -directly or through a Query Job. In this code snippet we show how to run a query directly and wait -for the result. Add the following imports at the top of your file: - -```java -import com.google.cloud.bigquery.FieldValueList; -import com.google.cloud.bigquery.QueryJobConfiguration; -``` -Then add the following code to run the query and wait for the result: - -```java -// Create a query request -QueryJobConfiguration queryConfig = - QueryJobConfiguration.newBuilder("SELECT my_column FROM my_dataset_id.my_table_id").build(); -// Read rows -System.out.println("Table rows:"); -for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) { - System.out.println(row); -} -``` -#### Complete source code - -In -[InsertDataAndQueryTable.java](https://github.com/googleapis/google-cloud-java/blob/master/google-cloud-examples/src/main/java/com/google/cloud/examples/bigquery/snippets/InsertDataAndQueryTable.java) -we put together all the code shown above into one program. The program assumes that you are -running on Compute Engine or from your own desktop. To run the example on App Engine, simply move -the code from the main method to your application's servlet class and change the print statements to -display on your webpage. @@ -294,6 +191,7 @@ has instructions for running the samples. | Query With Structs Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | | Query With Timestamp Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java) | | Quickstart Sample | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java) | +| Relax Column Load Append | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java) | | Relax Column Mode | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | | Relax Table Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | | Run Legacy Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | diff --git a/synth.metadata b/synth.metadata index 1a2ac3e0288b..7701b7f7be18 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "df3788a2ba9223bd99c56b6e76fbc6b0ab2b302a" + "sha": "349e11163773b22deae3dfb0ed4373f717711b79" } }, { From 2a5ea2d7c7de4424c2573c425fc61b65d03c93c0 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 11 Aug 2020 17:00:05 +0000 Subject: [PATCH 0743/3441] chore: release 1.116.10 (#665) :robot: I have created a release \*beep\* \*boop\* --- ### [1.116.10](https://www.github.com/googleapis/java-bigquery/compare/v1.116.9...v1.116.10) (2020-08-11) ### Documentation * **samples:** add query external sheet permanent table ([#658](https://www.github.com/googleapis/java-bigquery/issues/658)) ([6488cd1](https://www.github.com/googleapis/java-bigquery/commit/6488cd1ef914b2c87fa823511126a51cc27712fa)) * **samples:** add query external sheet temp table ([#659](https://www.github.com/googleapis/java-bigquery/issues/659)) ([9044050](https://www.github.com/googleapis/java-bigquery/commit/904405039a2d4dbb865451d7b1ac9257cc54efd2)) * **samples:** add relax column load append ([#657](https://www.github.com/googleapis/java-bigquery/issues/657)) ([511e9d7](https://www.github.com/googleapis/java-bigquery/commit/511e9d7580c7ddcda6734dd5f0ad012035bc77d5)) * remove outdated readme content ([#666](https://www.github.com/googleapis/java-bigquery/issues/666)) ([349e111](https://www.github.com/googleapis/java-bigquery/commit/349e11163773b22deae3dfb0ed4373f717711b79)) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.6 ([#661](https://www.github.com/googleapis/java-bigquery/issues/661)) ([df3788a](https://www.github.com/googleapis/java-bigquery/commit/df3788a2ba9223bd99c56b6e76fbc6b0ab2b302a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 15 +++++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 23 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0921abe05bd8..50981494e64d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +### [1.116.10](https://www.github.com/googleapis/java-bigquery/compare/v1.116.9...v1.116.10) (2020-08-11) + + +### Documentation + +* **samples:** add query external sheet permanent table ([#658](https://www.github.com/googleapis/java-bigquery/issues/658)) ([6488cd1](https://www.github.com/googleapis/java-bigquery/commit/6488cd1ef914b2c87fa823511126a51cc27712fa)) +* **samples:** add query external sheet temp table ([#659](https://www.github.com/googleapis/java-bigquery/issues/659)) ([9044050](https://www.github.com/googleapis/java-bigquery/commit/904405039a2d4dbb865451d7b1ac9257cc54efd2)) +* **samples:** add relax column load append ([#657](https://www.github.com/googleapis/java-bigquery/issues/657)) ([511e9d7](https://www.github.com/googleapis/java-bigquery/commit/511e9d7580c7ddcda6734dd5f0ad012035bc77d5)) +* remove outdated readme content ([#666](https://www.github.com/googleapis/java-bigquery/issues/666)) ([349e111](https://www.github.com/googleapis/java-bigquery/commit/349e11163773b22deae3dfb0ed4373f717711b79)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.8.6 ([#661](https://www.github.com/googleapis/java-bigquery/issues/661)) ([df3788a](https://www.github.com/googleapis/java-bigquery/commit/df3788a2ba9223bd99c56b6e76fbc6b0ab2b302a)) + ### [1.116.9](https://www.github.com/googleapis/java-bigquery/compare/v1.116.8...v1.116.9) (2020-08-07) diff --git a/README.md b/README.md index 8edaba3a0789..877751a317e4 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.9' +compile 'com.google.cloud:google-cloud-bigquery:1.116.10' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.9" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.10" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 84762609f670..11d1f49ec82c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.10-SNAPSHOT + 1.116.10 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.10-SNAPSHOT + 1.116.10 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c9d05d78f09a..379f1cf7f6cc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.10-SNAPSHOT + 1.116.10 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.10-SNAPSHOT + 1.116.10 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b3754b3e2005..aa2afd522e2d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.10-SNAPSHOT + 1.116.10 diff --git a/versions.txt b/versions.txt index 5e61f13709cc..682d4165c2c1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.9:1.116.10-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.116.10:1.116.10 \ No newline at end of file From ce17e56e7582c3cb84417caa66083ab8b2b4150f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2020 15:14:03 +0000 Subject: [PATCH 0744/3441] chore: release 1.116.11-SNAPSHOT (#670) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 11d1f49ec82c..7e236995a530 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.10 + 1.116.11-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.10 + 1.116.11-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 379f1cf7f6cc..615e3d6b4344 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.10 + 1.116.11-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.10 + 1.116.11-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index aa2afd522e2d..9a048cd091ce 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.10 + 1.116.11-SNAPSHOT diff --git a/versions.txt b/versions.txt index 682d4165c2c1..f1c6f4b7ad97 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.10:1.116.10 \ No newline at end of file +google-cloud-bigquery:1.116.10:1.116.11-SNAPSHOT \ No newline at end of file From 813584e36b7614c97f09da824bae0ed2ef4f5ef6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 12 Aug 2020 17:25:58 +0200 Subject: [PATCH 0745/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.116.10 (#669) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e638c8ec3793..1794fea8c8c4 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.116.9 + 1.116.10 From 60d904b1fc4625f490f9357c486bfe5ef4f36f2c Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 12 Aug 2020 12:56:46 -0400 Subject: [PATCH 0746/3441] docs: update samples README.md (#667) * docs: update samples README.md and refactor SimpleQuery * fix typos * revert back changes to SimpleQuery --- samples/README.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/samples/README.md b/samples/README.md index 0b7ed99dda90..ab3f812dc324 100644 --- a/samples/README.md +++ b/samples/README.md @@ -2,16 +2,25 @@ ## Running a sample using Cloud Shell -The Google Cloud Shell has application default credentials from its compute instance which will allow you to run an integration test without having to obtain `GOOGLE_APPLICATION_CREDENTIANS`. +The Google Cloud Shell has application default credentials from its compute instance which will allow you to run an integration test without having to obtain `GOOGLE_APPLICATION_CREDENTIALS`. Go to [BigQuery Client Readme](https://github.com/googleapis/java-bigquery#samples) to run each sample in the Cloud Shell. -However, certain samples require environment variables to be set. For instance, in `CreateDatasetIT.java`: +## Running a sample using command line + +First set up `GOOGLE_APPLICATION_CREDENTIALS` and `GOOGLE_CLOUD_PROJECT` environment variables before running any samples. + +To run a sample: +1. `cd samples/snippets` - all samples are located in `java-bigquery/samples/snippets` directory. +2. `mvn compile exec:java -Dexec.mainClass=com.example.bigquery.SimpleQuery` - this runs the [SimpleQuery sample](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) which runs the BigQuery query method. You can update the developer's `TODO` section in the snippet if you wish to run a different query. + +## Running a sample integration test using command line + +Note that some samples require environment variables to be set. For instance, in `CreateDatasetIT.java`: `private static final String GOOGLE_CLOUD_PROJECT = System.getenv("GOOGLE_CLOUD_PROJECT");` - this sample integration test requires you to specific the [Google Cloud Project](https://cloud.google.com/resource-manager/docs/creating-managing-projects) you would like to run the test in. Make sure to set environment variables, if necessary, before running the sample, or else you will get an error asking you to set it. -To run a samples integration tests in the cloud shell, simply run the following commands: - -`cd samples/snippets` - all samples are located in `java-bigquery/samples/snippets` directory. +To run a samples integration tests: -`mvn -Dtest=GetTableIT test` - this runs the integration test of `GetTable.java` sample. \ No newline at end of file +1. `cd samples/snippets` - all samples are located in `java-bigquery/samples/snippets` directory. +2. `mvn -Dtest=GetTableIT test` - this runs the integration test of `GetTable.java` sample. \ No newline at end of file From 3e578f4337e2d0c41237294ea7889d9efd0eddb0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 12 Aug 2020 23:08:24 +0200 Subject: [PATCH 0747/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200805-1.30.10 (#672) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 615e3d6b4344..f1a136c174bd 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20200719-1.30.10 + v2-rev20200805-1.30.10 From ca8891ccfb5d2a9f177671c3f5318d4102ec8d77 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 13 Aug 2020 02:00:07 -0700 Subject: [PATCH 0748/3441] changes without context (#674) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 877751a317e4..b6b420f485a3 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.116.9 + 1.116.10 ``` diff --git a/synth.metadata b/synth.metadata index 7701b7f7be18..1f26a2e06e34 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "349e11163773b22deae3dfb0ed4373f717711b79" + "sha": "3e578f4337e2d0c41237294ea7889d9efd0eddb0" } }, { From 778c80d0c2cb579e0565a47f884876d53c958281 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 14 Aug 2020 04:26:12 +0200 Subject: [PATCH 0749/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v9 (#675) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | major | `8.1.0` -> `9.0.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9eff2ba7b1f5..3ad09c5ede70 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 8.1.0 + 9.0.0 pom import From d52a51a3ca0e30109896776bbed08f64e85474ee Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 14 Aug 2020 02:30:01 -0700 Subject: [PATCH 0750/3441] changes without context (#676) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b6b420f485a3..a3bcb28cf472 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 8.1.0 + 9.0.0 pom import diff --git a/synth.metadata b/synth.metadata index 1f26a2e06e34..32eebfdd0622 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "3e578f4337e2d0c41237294ea7889d9efd0eddb0" + "sha": "778c80d0c2cb579e0565a47f884876d53c958281" } }, { From 71c60cc1f3e608700fb78947d004a3037f556edd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 17 Aug 2020 17:54:03 +0200 Subject: [PATCH 0751/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v9.1.0 (#677) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `9.0.0` -> `9.1.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3ad09c5ede70..546674e1c1d1 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 9.0.0 + 9.1.0 pom import From 5acb756f1cec7b3633a0596d847738cbcceb74af Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 18 Aug 2020 10:42:52 -0700 Subject: [PATCH 0752/3441] chore: regen readme (#678) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 2 +- synth.metadata | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a3bcb28cf472..9af44eb7b713 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 9.0.0 + 9.1.0 pom import diff --git a/synth.metadata b/synth.metadata index 32eebfdd0622..f6577d855bf7 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "778c80d0c2cb579e0565a47f884876d53c958281" + "sha": "71c60cc1f3e608700fb78947d004a3037f556edd" } }, { From fe5abc054c5eb7907ef58d5aa3285b3f10211aa4 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 19 Aug 2020 23:02:05 +0530 Subject: [PATCH 0753/3441] docs(samples): fix checkstyle errors (#682) Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [X] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [X] Ensure the tests and linter pass - [X] Code coverage does not decrease (if any source code was changed) - [X] Appropriate docs were updated (if necessary) Fixes #681 --- .../bigquery/AuthorizedViewTutorial.java | 12 +-- ...{CopyTableCMEK.java => CopyTableCmek.java} | 6 +- .../com/example/bigquery/CreateModel.java | 2 +- ...eRoutineDDL.java => CreateRoutineDdl.java} | 9 +- ...ateTableCMEK.java => CreateTableCmek.java} | 6 +- ...{DDLCreateView.java => DdlCreateView.java} | 2 +- .../com/example/bigquery/GrantViewAccess.java | 8 +- .../example/bigquery/InsertingDataTypes.java | 74 ++++++++-------- ...dAvroFromGCS.java => LoadAvroFromGcs.java} | 6 +- ...cate.java => LoadAvroFromGcsTruncate.java} | 6 +- ...ect.java => LoadCsvFromGcsAutodetect.java} | 6 +- ...dJsonFromGCS.java => LoadJsonFromGcs.java} | 6 +- ...ct.java => LoadJsonFromGcsAutodetect.java} | 6 +- ...mGCSCMEK.java => LoadJsonFromGcsCmek.java} | 6 +- ...cate.java => LoadJsonFromGcsTruncate.java} | 6 +- ...oadOrcFromGCS.java => LoadOrcFromGcs.java} | 6 +- ...EK.java => QueryDestinationTableCmek.java} | 6 +- ...GCSPerm.java => QueryExternalGcsPerm.java} | 6 +- ...GCSTemp.java => QueryExternalGcsTemp.java} | 6 +- .../TableInsertRowsWithoutRowIds.java | 40 ++++----- ...ateTableCMEK.java => UpdateTableCmek.java} | 6 +- ...pdateTableDML.java => UpdateTableDml.java} | 6 +- ...yTableCMEKIT.java => CopyTableCmekIT.java} | 8 +- .../com/example/bigquery/CreateModelIT.java | 2 +- .../example/bigquery/CreateRoutineDDLIT.java | 67 --------------- .../example/bigquery/CreateRoutineDdlIT.java | 84 +++++++++++++++++++ ...ableCMEKIT.java => CreateTableCmekIT.java} | 6 +- ...CreateViewIT.java => DdlCreateViewIT.java} | 6 +- .../com/example/bigquery/DeleteModelIT.java | 2 +- .../java/com/example/bigquery/GetModelIT.java | 2 +- .../example/bigquery/GetTableLabelsIT.java | 16 ++++ .../bigquery/InsertingDataTypesIT.java | 40 +-------- .../com/example/bigquery/ListModelsIT.java | 2 +- .../example/bigquery/LoadAvroFromGCSIT.java | 64 -------------- .../example/bigquery/LoadAvroFromGcsIT.java | 80 ++++++++++++++++++ ...IT.java => LoadAvroFromGcsTruncateIT.java} | 6 +- ...T.java => LoadCsvFromGcsAutodetectIT.java} | 6 +- ....java => LoadJsonFromGcsAutodetectIT.java} | 6 +- ...CMEKIT.java => LoadJsonFromGcsCmekIT.java} | 6 +- ...nFromGCSIT.java => LoadJsonFromGcsIT.java} | 6 +- ...IT.java => LoadJsonFromGcsTruncateIT.java} | 6 +- ...rcFromGCSIT.java => LoadOrcFromGcsIT.java} | 6 +- ....java => QueryDestinationTableCmekIT.java} | 8 +- ...ermIT.java => QueryExternalGcsPermIT.java} | 6 +- ...empIT.java => QueryExternalGcsTempIT.java} | 6 +- .../TableInsertRowsWithoutRowIdsIT.java | 18 +--- .../bigquery/UpdateModelDescriptionIT.java | 2 +- ...ableCMEKIT.java => UpdateTableCmekIT.java} | 8 +- ...eTableDMLIT.java => UpdateTableDmlIT.java} | 6 +- 49 files changed, 347 insertions(+), 365 deletions(-) rename samples/snippets/src/main/java/com/example/bigquery/{CopyTableCMEK.java => CopyTableCmek.java} (97%) rename samples/snippets/src/main/java/com/example/bigquery/{CreateRoutineDDL.java => CreateRoutineDdl.java} (89%) rename samples/snippets/src/main/java/com/example/bigquery/{CreateTableCMEK.java => CreateTableCmek.java} (95%) rename samples/snippets/src/main/java/com/example/bigquery/{DDLCreateView.java => DdlCreateView.java} (98%) rename samples/snippets/src/main/java/com/example/bigquery/{LoadAvroFromGCS.java => LoadAvroFromGcs.java} (94%) rename samples/snippets/src/main/java/com/example/bigquery/{LoadAvroFromGCSTruncate.java => LoadAvroFromGcsTruncate.java} (95%) rename samples/snippets/src/main/java/com/example/bigquery/{LoadCsvFromGCSAutodetect.java => LoadCsvFromGcsAutodetect.java} (95%) rename samples/snippets/src/main/java/com/example/bigquery/{LoadJsonFromGCS.java => LoadJsonFromGcs.java} (95%) rename samples/snippets/src/main/java/com/example/bigquery/{LoadJsonFromGCSAutodetect.java => LoadJsonFromGcsAutodetect.java} (94%) rename samples/snippets/src/main/java/com/example/bigquery/{LoadJsonFromGCSCMEK.java => LoadJsonFromGcsCmek.java} (95%) rename samples/snippets/src/main/java/com/example/bigquery/{LoadJsonFromGCSTruncate.java => LoadJsonFromGcsTruncate.java} (95%) rename samples/snippets/src/main/java/com/example/bigquery/{LoadOrcFromGCS.java => LoadOrcFromGcs.java} (95%) rename samples/snippets/src/main/java/com/example/bigquery/{QueryDestinationTableCMEK.java => QueryDestinationTableCmek.java} (94%) rename samples/snippets/src/main/java/com/example/bigquery/{QueryExternalGCSPerm.java => QueryExternalGcsPerm.java} (95%) rename samples/snippets/src/main/java/com/example/bigquery/{QueryExternalGCSTemp.java => QueryExternalGcsTemp.java} (95%) rename samples/snippets/src/main/java/com/example/bigquery/{UpdateTableCMEK.java => UpdateTableCmek.java} (94%) rename samples/snippets/src/main/java/com/example/bigquery/{UpdateTableDML.java => UpdateTableDml.java} (97%) rename samples/snippets/src/test/java/com/example/bigquery/{CopyTableCMEKIT.java => CopyTableCmekIT.java} (95%) delete mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDDLIT.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDdlIT.java rename samples/snippets/src/test/java/com/example/bigquery/{CreateTableCMEKIT.java => CreateTableCmekIT.java} (95%) rename samples/snippets/src/test/java/com/example/bigquery/{DDLCreateViewIT.java => DdlCreateViewIT.java} (96%) delete mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSIT.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsIT.java rename samples/snippets/src/test/java/com/example/bigquery/{LoadAvroFromGCSTruncateIT.java => LoadAvroFromGcsTruncateIT.java} (93%) rename samples/snippets/src/test/java/com/example/bigquery/{LoadCsvFromGCSAutodetectIT.java => LoadCsvFromGcsAutodetectIT.java} (93%) rename samples/snippets/src/test/java/com/example/bigquery/{LoadJsonFromGCSAutodetectIT.java => LoadJsonFromGcsAutodetectIT.java} (94%) rename samples/snippets/src/test/java/com/example/bigquery/{LoadJsonFromGCSCMEKIT.java => LoadJsonFromGcsCmekIT.java} (95%) rename samples/snippets/src/test/java/com/example/bigquery/{LoadJsonFromGCSIT.java => LoadJsonFromGcsIT.java} (95%) rename samples/snippets/src/test/java/com/example/bigquery/{LoadJsonFromGCSTruncateIT.java => LoadJsonFromGcsTruncateIT.java} (94%) rename samples/snippets/src/test/java/com/example/bigquery/{LoadOrcFromGCSIT.java => LoadOrcFromGcsIT.java} (94%) rename samples/snippets/src/test/java/com/example/bigquery/{QueryDestinationTableCMEKIT.java => QueryDestinationTableCmekIT.java} (93%) rename samples/snippets/src/test/java/com/example/bigquery/{QueryExternalGCSPermIT.java => QueryExternalGcsPermIT.java} (95%) rename samples/snippets/src/test/java/com/example/bigquery/{QueryExternalGCSTempIT.java => QueryExternalGcsTempIT.java} (92%) rename samples/snippets/src/test/java/com/example/bigquery/{UpdateTableCMEKIT.java => UpdateTableCmekIT.java} (93%) rename samples/snippets/src/test/java/com/example/bigquery/{UpdateTableDMLIT.java => UpdateTableDmlIT.java} (94%) diff --git a/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java b/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java index d42909aa7467..0b5150a58bc6 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java @@ -57,9 +57,8 @@ public static void authorizedViewTutorial( // [START bigquery_authorized_view_tutorial] // [START bigquery_avt_create_source_dataset] // Create a source dataset to store your table. - Dataset sourceDataset = bigquery.create(DatasetInfo.of(sourceDatasetId)); + final Dataset sourceDataset = bigquery.create(DatasetInfo.of(sourceDatasetId)); // [END bigquery_avt_create_source_dataset] - // [START bigquery_avt_create_source_table] // Populate a source table String tableQuery = @@ -72,32 +71,27 @@ public static void authorizedViewTutorial( .build(); bigquery.query(queryConfig); // [END bigquery_avt_create_source_table] - // [START bigquery_avt_create_shared_dataset] // Create a separate dataset to store your view Dataset sharedDataset = bigquery.create(DatasetInfo.of(sharedDatasetId)); // [END bigquery_avt_create_shared_dataset] - // [START bigquery_avt_create_view] // Create the view in the new dataset String viewQuery = String.format( - "SELECT commit, author.name as author, committer.name as committer, repo_name FROM %s.%s.%s", + "SELECT commit, author.name as author, " + + "committer.name as committer, repo_name FROM %s.%s.%s", projectId, sourceDatasetId, sourceTableId); - ViewDefinition viewDefinition = ViewDefinition.of(viewQuery); - Table view = bigquery.create(TableInfo.of(TableId.of(sharedDatasetId, sharedViewId), viewDefinition)); // [END bigquery_avt_create_view] - // [START bigquery_avt_shared_dataset_access] // Assign access controls to the dataset containing the view List viewAcl = new ArrayList<>(sharedDataset.getAcl()); viewAcl.add(Acl.of(new Acl.Group("example-analyst-group@google.com"), Acl.Role.READER)); sharedDataset.toBuilder().setAcl(viewAcl).build().update(); // [END bigquery_avt_shared_dataset_access] - // [START bigquery_avt_source_dataset_access] // Authorize the view to access the source dataset List srcAcl = new ArrayList<>(sourceDataset.getAcl()); diff --git a/samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java similarity index 97% rename from samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java rename to samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java index 37321b2bb57a..ac4966b2fb81 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java @@ -27,7 +27,7 @@ import com.google.cloud.bigquery.TableId; // Sample to copy a cmek table -public class CopyTableCMEK { +public class CopyTableCmek { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. @@ -38,11 +38,11 @@ public static void main(String[] args) { String kmsKeyName = "MY_KMS_KEY_NAME"; EncryptionConfiguration encryption = EncryptionConfiguration.newBuilder().setKmsKeyName(kmsKeyName).build(); - copyTableCMEK( + copyTableCmek( sourceDatasetName, sourceTableId, destinationDatasetName, destinationTableId, encryption); } - public static void copyTableCMEK( + public static void copyTableCmek( String sourceDatasetName, String sourceTableId, String destinationDatasetName, diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java b/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java index 72adbbb82b5e..6b45718ce7f7 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java @@ -43,7 +43,7 @@ public static void main(String[] args) { + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " - + " SELECT 'a' AS f1, 2.0 AS label " + + "SELECT 'a' AS f1, 2.0 AS label " + "UNION ALL " + "SELECT 'b' AS f1, 3.8 AS label " + ")"; diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java b/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java similarity index 89% rename from samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java rename to samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java index b787c733706c..76122ea9e8d9 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java @@ -25,7 +25,7 @@ import com.google.cloud.bigquery.QueryJobConfiguration; // Sample to create a routine using DDL -public class CreateRoutineDDL { +public class CreateRoutineDdl { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. @@ -41,11 +41,12 @@ public static void main(String[] args) { + "." + routineId + "`" - + "( arr ARRAY>) AS ( (SELECT SUM(IF(elem.name = \"foo\",elem.val,null)) FROM UNNEST(arr) AS elem))"; - createRoutineDDL(sql); + + "( arr ARRAY>) AS " + + "( (SELECT SUM(IF(elem.name = \"foo\",elem.val,null)) FROM UNNEST(arr) AS elem))"; + createRoutineDdl(sql); } - public static void createRoutineDDL(String sql) { + public static void createRoutineDdl(String sql) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java similarity index 95% rename from samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java rename to samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java index 4d24de6d280e..bc654c387b2e 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java @@ -30,7 +30,7 @@ import com.google.cloud.bigquery.TableInfo; // Sample to create a cmek table -public class CreateTableCMEK { +public class CreateTableCmek { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. @@ -44,10 +44,10 @@ public static void main(String[] args) { // i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey} EncryptionConfiguration encryption = EncryptionConfiguration.newBuilder().setKmsKeyName(kmsKeyName).build(); - createTableCMEK(datasetName, tableName, schema, encryption); + createTableCmek(datasetName, tableName, schema, encryption); } - public static void createTableCMEK( + public static void createTableCmek( String datasetName, String tableName, Schema schema, EncryptionConfiguration configuration) { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java b/samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java similarity index 98% rename from samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java rename to samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java index b214114708cf..116c44288d9b 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java +++ b/samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java @@ -25,7 +25,7 @@ import com.google.cloud.bigquery.QueryJobConfiguration; // Sample to create a view using DDL -public class DDLCreateView { +public class DdlCreateView { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. diff --git a/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java b/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java index a87f51eeb445..4a989f024748 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java +++ b/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java @@ -47,21 +47,17 @@ public static void grantViewAccess(String srcDatasetId, String viewDatasetId, St Dataset srcDataset = bigquery.getDataset(DatasetId.of(srcDatasetId)); Dataset viewDataset = bigquery.getDataset(DatasetId.of(viewDatasetId)); Table view = viewDataset.get(viewId); - // First, we'll add a group to the ACL for the dataset containing the view. This will allow // users within that group to query the view, but they must have direct access to any tables // referenced by the view. - List viewAcl = new ArrayList<>(); - viewAcl.addAll(viewDataset.getAcl()); + List viewAcl = new ArrayList<>(viewDataset.getAcl()); viewAcl.add(Acl.of(new Acl.Group("example-analyst-group@google.com"), Acl.Role.READER)); viewDataset.toBuilder().setAcl(viewAcl).build().update(); - // Now, we'll authorize a specific view against a source dataset, delegating access // enforcement. Once this has been completed, members of the group previously added to the // view dataset's ACL no longer require access to the source dataset to successfully query the // view - List srcAcl = new ArrayList<>(); - srcAcl.addAll(srcDataset.getAcl()); + List srcAcl = new ArrayList<>(srcDataset.getAcl()); srcAcl.add(Acl.of(new Acl.View(view.getTableId()))); srcDataset.toBuilder().setAcl(srcAcl).build().update(); System.out.println("Grant view access successfully"); diff --git a/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java b/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java index e3f2a7428672..3d721e727dec 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java +++ b/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java @@ -41,56 +41,56 @@ public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; - - // Inserting data types - Field name = Field.of("name", StandardSQLTypeName.STRING); - Field age = Field.of("age", StandardSQLTypeName.INT64); - Field school = - Field.newBuilder("school", StandardSQLTypeName.BYTES).setMode(Field.Mode.REPEATED).build(); - Field location = Field.of("location", StandardSQLTypeName.GEOGRAPHY); - Field measurements = - Field.newBuilder("measurements", StandardSQLTypeName.FLOAT64) - .setMode(Field.Mode.REPEATED) - .build(); - Field day = Field.of("day", StandardSQLTypeName.DATE); - Field firstTime = Field.of("firstTime", StandardSQLTypeName.DATETIME); - Field secondTime = Field.of("secondTime", StandardSQLTypeName.TIME); - Field thirdTime = Field.of("thirdTime", StandardSQLTypeName.TIMESTAMP); - Field datesTime = - Field.of("datesTime", StandardSQLTypeName.STRUCT, day, firstTime, secondTime, thirdTime); - Schema schema = Schema.of(name, age, school, location, measurements, datesTime); - - // Inserting Sample data - Map datesTimeContent = new HashMap<>(); - datesTimeContent.put("day", "2019-1-12"); - datesTimeContent.put("firstTime", "2019-02-17 11:24:00.000"); - datesTimeContent.put("secondTime", "14:00:00"); - datesTimeContent.put("thirdTime", "2020-04-27T18:07:25.356Z"); - - Map rowContent = new HashMap<>(); - rowContent.put("name", "Tom"); - rowContent.put("age", 30); - rowContent.put("school", "Test University".getBytes()); - rowContent.put("location", "POINT(1 2)"); - rowContent.put("measurements", new Float[] {50.05f, 100.5f}); - rowContent.put("datesTime", datesTimeContent); - - insertingDataTypes(datasetName, tableName, schema, rowContent); + insertingDataTypes(datasetName, tableName); } - public static void insertingDataTypes( - String datasetName, String tableName, Schema schema, Map rowContent) { + public static void insertingDataTypes(String datasetName, String tableName) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + // Inserting data types + Field name = Field.of("name", StandardSQLTypeName.STRING); + Field age = Field.of("age", StandardSQLTypeName.INT64); + Field school = + Field.newBuilder("school", StandardSQLTypeName.BYTES) + .setMode(Field.Mode.REPEATED) + .build(); + Field location = Field.of("location", StandardSQLTypeName.GEOGRAPHY); + Field measurements = + Field.newBuilder("measurements", StandardSQLTypeName.FLOAT64) + .setMode(Field.Mode.REPEATED) + .build(); + Field day = Field.of("day", StandardSQLTypeName.DATE); + Field firstTime = Field.of("firstTime", StandardSQLTypeName.DATETIME); + Field secondTime = Field.of("secondTime", StandardSQLTypeName.TIME); + Field thirdTime = Field.of("thirdTime", StandardSQLTypeName.TIMESTAMP); + Field datesTime = + Field.of("datesTime", StandardSQLTypeName.STRUCT, day, firstTime, secondTime, thirdTime); + Schema schema = Schema.of(name, age, school, location, measurements, datesTime); + TableId tableId = TableId.of(datasetName, tableName); TableDefinition tableDefinition = StandardTableDefinition.of(schema); TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); bigquery.create(tableInfo); + // Inserting Sample data + Map datesTimeContent = new HashMap<>(); + datesTimeContent.put("day", "2019-1-12"); + datesTimeContent.put("firstTime", "2019-02-17 11:24:00.000"); + datesTimeContent.put("secondTime", "14:00:00"); + datesTimeContent.put("thirdTime", "2020-04-27T18:07:25.356Z"); + + Map rowContent = new HashMap<>(); + rowContent.put("name", "Tom"); + rowContent.put("age", 30); + rowContent.put("school", "Test University".getBytes()); + rowContent.put("location", "POINT(1 2)"); + rowContent.put("measurements", new Float[] {50.05f, 100.5f}); + rowContent.put("datesTime", datesTimeContent); + InsertAllResponse response = bigquery.insertAll(InsertAllRequest.newBuilder(tableId).addRow(rowContent).build()); diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java b/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java similarity index 94% rename from samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java index a85f561aec3d..8d44960c90ab 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java @@ -27,17 +27,17 @@ import com.google.cloud.bigquery.TableId; // Sample to load Avro data from Cloud Storage into a new BigQuery table -public class LoadAvroFromGCS { +public class LoadAvroFromGcs { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.avro"; - loadAvroFromGCS(datasetName, tableName, sourceUri); + loadAvroFromGcs(datasetName, tableName, sourceUri); } - public static void loadAvroFromGCS(String datasetName, String tableName, String sourceUri) { + public static void loadAvroFromGcs(String datasetName, String tableName, String sourceUri) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java b/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java similarity index 95% rename from samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java index 211fd0834940..c2bb261d3b45 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java @@ -27,17 +27,17 @@ import com.google.cloud.bigquery.TableId; // Sample to overwrite the BigQuery table data by loading a AVRO file from GCS -public class LoadAvroFromGCSTruncate { +public class LoadAvroFromGcsTruncate { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.avro"; - loadAvroFromGCSTruncate(datasetName, tableName, sourceUri); + loadAvroFromGcsTruncate(datasetName, tableName, sourceUri); } - public static void loadAvroFromGCSTruncate( + public static void loadAvroFromGcsTruncate( String datasetName, String tableName, String sourceUri) { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java similarity index 95% rename from samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java index 19153038db5b..544134925d93 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java @@ -27,17 +27,17 @@ import com.google.cloud.bigquery.TableId; // Sample to load CSV data with autodetect schema from Cloud Storage into a new BigQuery table -public class LoadCsvFromGCSAutodetect { +public class LoadCsvFromGcsAutodetect { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; - loadCsvFromGCSAutodetect(datasetName, tableName, sourceUri); + loadCsvFromGcsAutodetect(datasetName, tableName, sourceUri); } - public static void loadCsvFromGCSAutodetect( + public static void loadCsvFromGcsAutodetect( String datasetName, String tableName, String sourceUri) { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java similarity index 95% rename from samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java index a330647c492c..f3268fb0b059 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java @@ -30,7 +30,7 @@ import com.google.cloud.bigquery.TableId; // Sample to load JSON data from Cloud Storage into a new BigQuery table -public class LoadJsonFromGCS { +public class LoadJsonFromGcs { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. @@ -41,10 +41,10 @@ public static void main(String[] args) { Schema.of( Field.of("name", StandardSQLTypeName.STRING), Field.of("post_abbr", StandardSQLTypeName.STRING)); - loadJsonFromGCS(datasetName, tableName, sourceUri, schema); + loadJsonFromGcs(datasetName, tableName, sourceUri, schema); } - public static void loadJsonFromGCS( + public static void loadJsonFromGcs( String datasetName, String tableName, String sourceUri, Schema schema) { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java similarity index 94% rename from samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java index 96bcf49edea8..1272bf8470d8 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java @@ -27,17 +27,17 @@ import com.google.cloud.bigquery.TableId; // Sample to load JSON data with autodetect schema from Cloud Storage into a new BigQuery table -public class LoadJsonFromGCSAutodetect { +public class LoadJsonFromGcsAutodetect { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; - loadJsonFromGCSAutodetect(datasetName, tableName, sourceUri); + loadJsonFromGcsAutodetect(datasetName, tableName, sourceUri); } - public static void loadJsonFromGCSAutodetect( + public static void loadJsonFromGcsAutodetect( String datasetName, String tableName, String sourceUri) { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java similarity index 95% rename from samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java index 3d187e6c2754..f316440acd3d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java @@ -28,7 +28,7 @@ import com.google.cloud.bigquery.TableId; // Sample to load JSON data with configuration key from Cloud Storage into a new BigQuery table -public class LoadJsonFromGCSCMEK { +public class LoadJsonFromGcsCmek { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. @@ -39,10 +39,10 @@ public static void main(String[] args) { // i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey} EncryptionConfiguration encryption = EncryptionConfiguration.newBuilder().setKmsKeyName(kmsKeyName).build(); - loadJsonFromGCSCMEK(datasetName, tableName, sourceUri, encryption); + loadJsonFromGcsCmek(datasetName, tableName, sourceUri, encryption); } - public static void loadJsonFromGCSCMEK( + public static void loadJsonFromGcsCmek( String datasetName, String tableName, String sourceUri, EncryptionConfiguration encryption) { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java similarity index 95% rename from samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java index 2f4fa97303ad..0771c69d8cf3 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java @@ -30,7 +30,7 @@ import com.google.cloud.bigquery.TableId; // Sample to overwrite the BigQuery table data by loading a JSON file from GCS -public class LoadJsonFromGCSTruncate { +public class LoadJsonFromGcsTruncate { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. @@ -41,10 +41,10 @@ public static void main(String[] args) { Schema.of( Field.of("name", StandardSQLTypeName.STRING), Field.of("post_abbr", StandardSQLTypeName.STRING)); - loadJsonFromGCSTruncate(datasetName, tableName, sourceUri, schema); + loadJsonFromGcsTruncate(datasetName, tableName, sourceUri, schema); } - public static void loadJsonFromGCSTruncate( + public static void loadJsonFromGcsTruncate( String datasetName, String tableName, String sourceUri, Schema schema) { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java b/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java similarity index 95% rename from samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java rename to samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java index e2c19d2c7ba8..0b471a084ab1 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java @@ -30,7 +30,7 @@ import com.google.cloud.bigquery.TableId; // Sample to load ORC data from Cloud Storage into a new BigQuery table -public class LoadOrcFromGCS { +public class LoadOrcFromGcs { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. @@ -41,10 +41,10 @@ public static void main(String[] args) { Schema.of( Field.of("name", StandardSQLTypeName.STRING), Field.of("post_abbr", StandardSQLTypeName.STRING)); - loadOrcFromGCS(datasetName, tableName, sourceUri, schema); + loadOrcFromGcs(datasetName, tableName, sourceUri, schema); } - public static void loadOrcFromGCS( + public static void loadOrcFromGcs( String datasetName, String tableName, String sourceUri, Schema schema) { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java similarity index 94% rename from samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java rename to samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java index 5e214164c976..bfd2c0fd0bbe 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java @@ -25,7 +25,7 @@ import com.google.cloud.bigquery.TableResult; // Sample to query on destination table with encryption key -public class QueryDestinationTableCMEK { +public class QueryDestinationTableCmek { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. @@ -36,10 +36,10 @@ public static void main(String[] args) { String.format("SELECT stringField, booleanField FROM %s.%s", datasetName, tableName); EncryptionConfiguration encryption = EncryptionConfiguration.newBuilder().setKmsKeyName(kmsKeyName).build(); - queryDestinationTableCMEK(query, encryption); + queryDestinationTableCmek(query, encryption); } - public static void queryDestinationTableCMEK(String query, EncryptionConfiguration encryption) { + public static void queryDestinationTableCmek(String query, EncryptionConfiguration encryption) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java similarity index 95% rename from samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java rename to samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java index aba670102960..14e3a9eea91e 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java @@ -31,7 +31,7 @@ import com.google.cloud.bigquery.TableResult; // Sample to queries an external data source using a permanent table -public class QueryExternalGCSPerm { +public class QueryExternalGcsPerm { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. @@ -44,10 +44,10 @@ public static void main(String[] args) { Field.of("post_abbr", StandardSQLTypeName.STRING)); String query = String.format("SELECT * FROM %s.%s WHERE name LIKE 'W%%'", datasetName, tableName); - queryExternalGCSPerm(datasetName, tableName, sourceUri, schema, query); + queryExternalGcsPerm(datasetName, tableName, sourceUri, schema, query); } - public static void queryExternalGCSPerm( + public static void queryExternalGcsPerm( String datasetName, String tableName, String sourceUri, Schema schema, String query) { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java similarity index 95% rename from samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java rename to samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java index 8f7f690116e8..d08db13b8221 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java @@ -29,7 +29,7 @@ import com.google.cloud.bigquery.TableResult; // Sample to queries an external data source using a temporary table -public class QueryExternalGCSTemp { +public class QueryExternalGcsTemp { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. @@ -40,10 +40,10 @@ public static void main(String[] args) { Field.of("name", StandardSQLTypeName.STRING), Field.of("post_abbr", StandardSQLTypeName.STRING)); String query = String.format("SELECT * FROM %s WHERE name LIKE 'W%%'", tableName); - queryExternalGCSTemp(tableName, sourceUri, schema, query); + queryExternalGcsTemp(tableName, sourceUri, schema, query); } - public static void queryExternalGCSTemp( + public static void queryExternalGcsTemp( String tableName, String sourceUri, Schema schema, String query) { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java index 369ecc05c68f..1befb593da68 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java +++ b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java @@ -24,7 +24,7 @@ import com.google.cloud.bigquery.InsertAllRequest; import com.google.cloud.bigquery.InsertAllResponse; import com.google.cloud.bigquery.TableId; -import java.util.ArrayList; +import com.google.common.collect.ImmutableList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,33 +36,29 @@ public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; - // Create rows to insert - Map rowContent1 = new HashMap<>(); - rowContent1.put("stringField", "Phred Phlyntstone"); - rowContent1.put("numericField", 32); - Map rowContent2 = new HashMap<>(); - rowContent2.put("stringField", "Wylma Phlyntstone"); - rowContent2.put("numericField", 29); - List rowContent = new ArrayList<>(); - // insertId is null if not specified - rowContent.add(InsertAllRequest.RowToInsert.of(rowContent1)); - rowContent.add(InsertAllRequest.RowToInsert.of(rowContent2)); - tableInsertRowsWithoutRowIds(datasetName, tableName, rowContent); + tableInsertRowsWithoutRowIds(datasetName, tableName); } - public static void tableInsertRowsWithoutRowIds( - String datasetName, String tableName, Iterable rows) { + public static void tableInsertRowsWithoutRowIds(String datasetName, String tableName) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - - // Get table - TableId tableId = TableId.of(datasetName, tableName); - - // Inserts rowContent into datasetName:tableId. + final BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + // Create rows to insert + Map rowContent1 = new HashMap<>(); + rowContent1.put("stringField", "Phred Phlyntstone"); + rowContent1.put("numericField", 32); + Map rowContent2 = new HashMap<>(); + rowContent2.put("stringField", "Wylma Phlyntstone"); + rowContent2.put("numericField", 29); InsertAllResponse response = - bigquery.insertAll(InsertAllRequest.newBuilder(tableId).setRows(rows).build()); + bigquery.insertAll( + InsertAllRequest.newBuilder(TableId.of(datasetName, tableName)) + .setRows( + ImmutableList.of( + InsertAllRequest.RowToInsert.of(rowContent1), + InsertAllRequest.RowToInsert.of(rowContent2))) + .build()); if (response.hasErrors()) { // If any of the insertions failed, this lets you inspect the errors diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java similarity index 94% rename from samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java rename to samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java index 01ac37749485..57fd5416079d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java @@ -25,7 +25,7 @@ import com.google.cloud.bigquery.TableId; // Sample to update a cmek table -public class UpdateTableCMEK { +public class UpdateTableCmek { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. @@ -36,10 +36,10 @@ public static void main(String[] args) { // i.e. projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{cryptoKey} EncryptionConfiguration encryption = EncryptionConfiguration.newBuilder().setKmsKeyName(kmsKeyName).build(); - updateTableCMEK(datasetName, tableName, encryption); + updateTableCmek(datasetName, tableName, encryption); } - public static void updateTableCMEK( + public static void updateTableCmek( String datasetName, String tableName, EncryptionConfiguration encryption) { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java similarity index 97% rename from samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java rename to samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java index 13b06c0f86f6..d57b03ebfd84 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java @@ -37,16 +37,16 @@ import java.util.UUID; // Sample to update data in BigQuery tables using DML query -public class UpdateTableDML { +public class UpdateTableDml { public static void main(String[] args) throws IOException, InterruptedException { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; - updateTableDML(datasetName, tableName); + updateTableDml(datasetName, tableName); } - public static void updateTableDML(String datasetName, String tableName) + public static void updateTableDml(String datasetName, String tableName) throws IOException, InterruptedException { try { // Initialize client that will be used to send requests. This client only needs to be created diff --git a/samples/snippets/src/test/java/com/example/bigquery/CopyTableCMEKIT.java b/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java similarity index 95% rename from samples/snippets/src/test/java/com/example/bigquery/CopyTableCMEKIT.java rename to samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java index 659e94075a94..bd9ab8ebef5e 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CopyTableCMEKIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java @@ -31,7 +31,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class CopyTableCMEKIT { +public class CopyTableCmekIT { private String sourceTableName; private String destinationTableName; @@ -70,7 +70,7 @@ public void setUp() { Field.of("booleanField", StandardSQLTypeName.BOOL)); EncryptionConfiguration configuration = EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); - CreateTableCMEK.createTableCMEK(BIGQUERY_DATASET_NAME, sourceTableName, schema, configuration); + CreateTableCmek.createTableCmek(BIGQUERY_DATASET_NAME, sourceTableName, schema, configuration); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); @@ -86,10 +86,10 @@ public void tearDown() { } @Test - public void testCopyTableCMEK() { + public void testCopyTableCmek() { EncryptionConfiguration configuration = EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); - CopyTableCMEK.copyTableCMEK( + CopyTableCmek.copyTableCmek( BIGQUERY_DATASET_NAME, sourceTableName, BIGQUERY_DATASET_NAME, diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java index b0bcb7ca6079..1fd747464fbe 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java @@ -77,7 +77,7 @@ public void testCreateModel() { + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " - + " SELECT 'a' AS f1, 2.0 AS label " + + "SELECT 'a' AS f1, 2.0 AS label " + "UNION ALL " + "SELECT 'b' AS f1, 3.8 AS label " + ")"; diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDDLIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDDLIT.java deleted file mode 100644 index bf4ca903f6e6..000000000000 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDDLIT.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.example.bigquery; - -import static com.google.common.truth.Truth.assertThat; -import static junit.framework.TestCase.assertNotNull; - -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; -import java.util.UUID; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - -public class CreateRoutineDDLIT { - - private String routineName; - private ByteArrayOutputStream bout; - private PrintStream out; - - private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); - private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); - - private static String requireEnvVar(String varName) { - String value = System.getenv(varName); - assertNotNull( - "Environment variable " + varName + " is required to perform these tests.", - System.getenv(varName)); - return value; - } - - @BeforeClass - public static void checkRequirements() { - requireEnvVar("GOOGLE_CLOUD_PROJECT"); - requireEnvVar("BIGQUERY_DATASET_NAME"); - } - - @Before - public void setUp() { - routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); - } - - @After - public void tearDown() { - // Clean up - DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); - System.setOut(null); - } - - @Test - public void testCreateRoutineDDL() { - String sql = - "CREATE FUNCTION " - + "`" - + PROJECT_ID - + "." - + BIGQUERY_DATASET_NAME - + "." - + routineName - + "`" - + "( arr ARRAY>) AS ( (SELECT SUM(IF(elem.name = \"foo\",elem.val,null)) FROM UNNEST(arr) AS elem))"; - CreateRoutineDDL.createRoutineDDL(sql); - assertThat(bout.toString()).contains("Routine created successfully"); - } -} diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDdlIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDdlIT.java new file mode 100644 index 000000000000..82c6288a1c80 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDdlIT.java @@ -0,0 +1,84 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateRoutineDdlIT { + + private String routineName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); + System.setOut(null); + } + + @Test + public void testCreateRoutineDdl() { + String sql = + "CREATE FUNCTION " + + "`" + + PROJECT_ID + + "." + + BIGQUERY_DATASET_NAME + + "." + + routineName + + "`" + + "( arr ARRAY>) AS " + + "( (SELECT SUM(IF(elem.name = \"foo\",elem.val,null)) FROM UNNEST(arr) AS elem))"; + CreateRoutineDdl.createRoutineDdl(sql); + assertThat(bout.toString()).contains("Routine created successfully"); + } +} diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateTableCMEKIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java similarity index 95% rename from samples/snippets/src/test/java/com/example/bigquery/CreateTableCMEKIT.java rename to samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java index 773440ce54bb..12d81f876f5c 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateTableCMEKIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java @@ -31,7 +31,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class CreateTableCMEKIT { +public class CreateTableCmekIT { private String tableName; private ByteArrayOutputStream bout; @@ -70,14 +70,14 @@ public void tearDown() { } @Test - public void testCreateTableCMEK() { + public void testCreateTableCmek() { Schema schema = Schema.of( Field.of("stringField", StandardSQLTypeName.STRING), Field.of("booleanField", StandardSQLTypeName.BOOL)); EncryptionConfiguration configuration = EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); - CreateTableCMEK.createTableCMEK(BIGQUERY_DATASET_NAME, tableName, schema, configuration); + CreateTableCmek.createTableCmek(BIGQUERY_DATASET_NAME, tableName, schema, configuration); assertThat(bout.toString()).contains("Table cmek created successfully"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/DDLCreateViewIT.java b/samples/snippets/src/test/java/com/example/bigquery/DdlCreateViewIT.java similarity index 96% rename from samples/snippets/src/test/java/com/example/bigquery/DDLCreateViewIT.java rename to samples/snippets/src/test/java/com/example/bigquery/DdlCreateViewIT.java index 7d6e0dae131d..4220259803e8 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DDLCreateViewIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DdlCreateViewIT.java @@ -27,7 +27,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class DDLCreateViewIT { +public class DdlCreateViewIT { private String viewName; private ByteArrayOutputStream bout; @@ -66,7 +66,7 @@ public void tearDown() { } @Test - public void testDDLCreateView() { + public void testDdlCreateView() { String sql = "CREATE VIEW " + "`" @@ -86,7 +86,7 @@ public void testDDLCreateView() { + " AS SELECT name, state, year, number" + " FROM `bigquery-public-data.usa_names.usa_1910_current`" + " WHERE state LIKE 'W%'"; - DDLCreateView.ddlCreateView(sql); + DdlCreateView.ddlCreateView(sql); assertThat(bout.toString()).contains("View created successfully"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java index 1933a3a7a189..6fed1902b44d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java @@ -68,7 +68,7 @@ public void setUp() { + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " - + " SELECT 'a' AS f1, 2.0 AS label " + + "SELECT 'a' AS f1, 2.0 AS label " + "UNION ALL " + "SELECT 'b' AS f1, 3.8 AS label " + ")"; diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java index 33cecba9f9ef..91ea8695dd18 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java @@ -68,7 +68,7 @@ public void setUp() { + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " - + " SELECT 'a' AS f1, 2.0 AS label " + + "SELECT 'a' AS f1, 2.0 AS label " + "UNION ALL " + "SELECT 'b' AS f1, 3.8 AS label " + ")"; diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java index 11de46c398bb..9d225414052d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java @@ -1,3 +1,19 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.example.bigquery; import static com.google.common.truth.Truth.assertThat; diff --git a/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java b/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java index 72f69f22f7ac..5ab4be972133 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java @@ -19,13 +19,8 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.TestCase.assertNotNull; -import com.google.cloud.bigquery.Field; -import com.google.cloud.bigquery.Schema; -import com.google.cloud.bigquery.StandardSQLTypeName; import java.io.ByteArrayOutputStream; import java.io.PrintStream; -import java.util.HashMap; -import java.util.Map; import java.util.UUID; import org.junit.After; import org.junit.Before; @@ -70,40 +65,7 @@ public void tearDown() { @Test public void testInsertingDataTypes() { - // Inserting data types - Field name = Field.of("name", StandardSQLTypeName.STRING); - Field age = Field.of("age", StandardSQLTypeName.INT64); - Field school = - Field.newBuilder("school", StandardSQLTypeName.BYTES).setMode(Field.Mode.REPEATED).build(); - Field location = Field.of("location", StandardSQLTypeName.GEOGRAPHY); - Field measurements = - Field.newBuilder("measurements", StandardSQLTypeName.FLOAT64) - .setMode(Field.Mode.REPEATED) - .build(); - Field day = Field.of("day", StandardSQLTypeName.DATE); - Field firstTime = Field.of("firstTime", StandardSQLTypeName.DATETIME); - Field secondTime = Field.of("secondTime", StandardSQLTypeName.TIME); - Field thirdTime = Field.of("thirdTime", StandardSQLTypeName.TIMESTAMP); - Field datesTime = - Field.of("datesTime", StandardSQLTypeName.STRUCT, day, firstTime, secondTime, thirdTime); - Schema schema = Schema.of(name, age, school, location, measurements, datesTime); - - // Inserting Sample data - Map datesTimeContent = new HashMap<>(); - datesTimeContent.put("day", "2019-1-12"); - datesTimeContent.put("firstTime", "2019-02-17 11:24:00.000"); - datesTimeContent.put("secondTime", "14:00:00"); - datesTimeContent.put("thirdTime", "2020-04-27T18:07:25.356Z"); - - Map rowContent = new HashMap<>(); - rowContent.put("name", "Tom"); - rowContent.put("age", 30); - rowContent.put("school", "Test University".getBytes()); - rowContent.put("location", "POINT(1 2)"); - rowContent.put("measurements", new Float[] {50.05f, 100.5f}); - rowContent.put("datesTime", datesTimeContent); - - InsertingDataTypes.insertingDataTypes(BIGQUERY_DATASET_NAME, tableName, schema, rowContent); + InsertingDataTypes.insertingDataTypes(BIGQUERY_DATASET_NAME, tableName); assertThat(bout.toString()).contains("Rows successfully inserted into table"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java index da0e19b26e93..c5dded50f5c5 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java @@ -68,7 +68,7 @@ public void setUp() { + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " - + " SELECT 'a' AS f1, 2.0 AS label " + + "SELECT 'a' AS f1, 2.0 AS label " + "UNION ALL " + "SELECT 'b' AS f1, 3.8 AS label " + ")"; diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSIT.java deleted file mode 100644 index 6ccbdea905dd..000000000000 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSIT.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.example.bigquery; - -import static com.google.common.truth.Truth.assertThat; -import static junit.framework.TestCase.assertNotNull; - -import com.google.cloud.bigquery.Schema; -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; -import java.util.UUID; -import org.junit.After; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - -public class LoadAvroFromGCSIT { - - private String tableName; - private ByteArrayOutputStream bout; - private PrintStream out; - - private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); - - private static String requireEnvVar(String varName) { - String value = System.getenv(varName); - assertNotNull( - "Environment variable " + varName + " is required to perform these tests.", - System.getenv(varName)); - return value; - } - - @BeforeClass - public static void checkRequirements() { - requireEnvVar("BIGQUERY_DATASET_NAME"); - } - - @Before - public void setUp() { - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); - - // Create a test table - tableName = "MY_LOAD_AVRO_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); - } - - @After - public void tearDown() { - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); - } - - @Test - public void loadLoadAvroFromGCS() { - String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.avro"; - LoadAvroFromGCS.loadAvroFromGCS(BIGQUERY_DATASET_NAME, tableName, sourceUri); - assertThat(bout.toString()).contains("Avro from GCS successfully loaded in a table"); - } -} diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsIT.java new file mode 100644 index 000000000000..c00f91bdbb78 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsIT.java @@ -0,0 +1,80 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadAvroFromGcsIT { + + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + + // Create a test table + tableName = "MY_LOAD_AVRO_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + System.setOut(null); + } + + @Test + public void loadLoadAvroFromGcs() { + String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.avro"; + LoadAvroFromGcs.loadAvroFromGcs(BIGQUERY_DATASET_NAME, tableName, sourceUri); + assertThat(bout.toString()).contains("Avro from GCS successfully loaded in a table"); + } +} diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSTruncateIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsTruncateIT.java similarity index 93% rename from samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSTruncateIT.java rename to samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsTruncateIT.java index 23e1868cbead..8f54af6e5b09 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGCSTruncateIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsTruncateIT.java @@ -28,7 +28,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class LoadAvroFromGCSTruncateIT { +public class LoadAvroFromGcsTruncateIT { private String tableName; private ByteArrayOutputStream bout; @@ -72,9 +72,9 @@ public void tearDown() { } @Test - public void loadLoadAvroFromGCSTruncate() { + public void loadLoadAvroFromGcsTruncate() { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.avro"; - LoadAvroFromGCSTruncate.loadAvroFromGCSTruncate(BIGQUERY_DATASET_NAME, tableName, sourceUri); + LoadAvroFromGcsTruncate.loadAvroFromGcsTruncate(BIGQUERY_DATASET_NAME, tableName, sourceUri); assertThat(bout.toString()) .contains("Table is successfully overwritten by AVRO file loaded from GCS"); } diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGCSAutodetectIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsAutodetectIT.java similarity index 93% rename from samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGCSAutodetectIT.java rename to samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsAutodetectIT.java index a08dad22049c..f4c6abfc0042 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGCSAutodetectIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsAutodetectIT.java @@ -28,7 +28,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class LoadCsvFromGCSAutodetectIT { +public class LoadCsvFromGcsAutodetectIT { private String tableName; private ByteArrayOutputStream bout; @@ -73,9 +73,9 @@ public void tearDown() { } @Test - public void testLoadCsvFromGCSAutodetect() { + public void testLoadCsvFromGcsAutodetect() { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; - LoadCsvFromGCSAutodetect.loadCsvFromGCSAutodetect(BIGQUERY_DATASET_NAME, tableName, sourceUri); + LoadCsvFromGcsAutodetect.loadCsvFromGcsAutodetect(BIGQUERY_DATASET_NAME, tableName, sourceUri); assertThat(bout.toString()).contains("CSV Autodetect from GCS successfully loaded in a table"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSAutodetectIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsAutodetectIT.java similarity index 94% rename from samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSAutodetectIT.java rename to samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsAutodetectIT.java index bc46a402183e..a8f37316ab66 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSAutodetectIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsAutodetectIT.java @@ -28,7 +28,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class LoadJsonFromGCSAutodetectIT { +public class LoadJsonFromGcsAutodetectIT { private String tableName; private ByteArrayOutputStream bout; @@ -74,9 +74,9 @@ public void tearDown() { } @Test - public void loadLoadJsonFromGCSAutodetect() { + public void loadLoadJsonFromGcsAutodetect() { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; - LoadJsonFromGCSAutodetect.loadJsonFromGCSAutodetect( + LoadJsonFromGcsAutodetect.loadJsonFromGcsAutodetect( BIGQUERY_DATASET_NAME, tableName, sourceUri); assertThat(bout.toString()).contains("Json Autodetect from GCS successfully loaded in a table"); } diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSCMEKIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java similarity index 95% rename from samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSCMEKIT.java rename to samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java index b435f219deb0..1df0f432caa1 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSCMEKIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java @@ -28,7 +28,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class LoadJsonFromGCSCMEKIT { +public class LoadJsonFromGcsCmekIT { private String tableName; private ByteArrayOutputStream bout; @@ -68,11 +68,11 @@ public void tearDown() { } @Test - public void testLoadJsonFromGCSCMEK() { + public void testLoadJsonFromGcsCmek() { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; EncryptionConfiguration configuration = EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); - LoadJsonFromGCSCMEK.loadJsonFromGCSCMEK( + LoadJsonFromGcsCmek.loadJsonFromGcsCmek( BIGQUERY_DATASET_NAME, tableName, sourceUri, configuration); assertThat(bout.toString()) .contains("Table loaded succesfully from GCS with configuration key"); diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsIT.java similarity index 95% rename from samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSIT.java rename to samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsIT.java index 8b2cf28d9120..c0a262447303 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsIT.java @@ -30,7 +30,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class LoadJsonFromGCSIT { +public class LoadJsonFromGcsIT { private String tableName; private ByteArrayOutputStream bout; @@ -74,13 +74,13 @@ public void tearDown() { } @Test - public void loadLoadJsonFromGCS() { + public void loadLoadJsonFromGcs() { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; Schema schema = Schema.of( Field.of("name", StandardSQLTypeName.STRING), Field.of("post_abbr", StandardSQLTypeName.STRING)); - LoadJsonFromGCS.loadJsonFromGCS(BIGQUERY_DATASET_NAME, tableName, sourceUri, schema); + LoadJsonFromGcs.loadJsonFromGcs(BIGQUERY_DATASET_NAME, tableName, sourceUri, schema); assertThat(bout.toString()).contains("Json from GCS successfully loaded in a table"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSTruncateIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsTruncateIT.java similarity index 94% rename from samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSTruncateIT.java rename to samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsTruncateIT.java index 4e3b5ebb35d0..237c2a66a4ef 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGCSTruncateIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsTruncateIT.java @@ -30,7 +30,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class LoadJsonFromGCSTruncateIT { +public class LoadJsonFromGcsTruncateIT { private String tableName; private ByteArrayOutputStream bout; @@ -67,13 +67,13 @@ public void tearDown() { } @Test - public void loadLoadJsonFromGCSTruncate() { + public void loadLoadJsonFromGcsTruncate() { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json"; Schema schema = Schema.of( Field.of("name", StandardSQLTypeName.STRING), Field.of("post_abbr", StandardSQLTypeName.STRING)); - LoadJsonFromGCSTruncate.loadJsonFromGCSTruncate( + LoadJsonFromGcsTruncate.loadJsonFromGcsTruncate( BIGQUERY_DATASET_NAME, tableName, sourceUri, schema); assertThat(bout.toString()) .contains("Table is successfully overwritten by JSON file loaded from GCS"); diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGCSIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsIT.java similarity index 94% rename from samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGCSIT.java rename to samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsIT.java index fe4cb6d8319c..36dc976435ce 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGCSIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsIT.java @@ -30,7 +30,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class LoadOrcFromGCSIT { +public class LoadOrcFromGcsIT { private String tableName; private ByteArrayOutputStream bout; @@ -68,13 +68,13 @@ public void tearDown() { } @Test - public void testLoadOrcFromGCS() { + public void testLoadOrcFromGcs() { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.orc"; Schema schema = Schema.of( Field.of("name", StandardSQLTypeName.STRING), Field.of("post_abbr", StandardSQLTypeName.STRING)); - LoadOrcFromGCS.loadOrcFromGCS(BIGQUERY_DATASET_NAME, tableName, sourceUri, schema); + LoadOrcFromGcs.loadOrcFromGcs(BIGQUERY_DATASET_NAME, tableName, sourceUri, schema); assertThat(bout.toString()).contains("ORC from GCS successfully added during load append job"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCMEKIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java similarity index 93% rename from samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCMEKIT.java rename to samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java index f4e0669d3fcc..9accffd43b31 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCMEKIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java @@ -31,7 +31,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class QueryDestinationTableCMEKIT { +public class QueryDestinationTableCmekIT { private String tableName; private EncryptionConfiguration encryption; @@ -68,7 +68,7 @@ public void setUp() { Field.of("stringField", StandardSQLTypeName.STRING), Field.of("booleanField", StandardSQLTypeName.BOOL)); encryption = EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); - CreateTableCMEK.createTableCMEK(BIGQUERY_DATASET_NAME, tableName, schema, encryption); + CreateTableCmek.createTableCmek(BIGQUERY_DATASET_NAME, tableName, schema, encryption); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); @@ -83,11 +83,11 @@ public void tearDown() { } @Test - public void testQueryDestinationTableCMEK() { + public void testQueryDestinationTableCmek() { String query = String.format( "SELECT stringField, booleanField FROM %s.%s", BIGQUERY_DATASET_NAME, tableName); - QueryDestinationTableCMEK.queryDestinationTableCMEK(query, encryption); + QueryDestinationTableCmek.queryDestinationTableCmek(query, encryption); assertThat(bout.toString()).contains("Query performed successfully with encryption key."); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSPermIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsPermIT.java similarity index 95% rename from samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSPermIT.java rename to samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsPermIT.java index 6007fcacbbfd..3596ec1ad76c 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSPermIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsPermIT.java @@ -30,7 +30,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class QueryExternalGCSPermIT { +public class QueryExternalGcsPermIT { private String tableName; private ByteArrayOutputStream bout; @@ -72,7 +72,7 @@ public void tearDown() { } @Test - public void testQueryExternalGCSPerm() { + public void testQueryExternalGcsPerm() { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; Schema schema = Schema.of( @@ -81,7 +81,7 @@ public void testQueryExternalGCSPerm() { String query = String.format( "SELECT * FROM %s.%s WHERE name LIKE 'W%%'", BIGQUERY_DATASET_NAME, tableName); - QueryExternalGCSPerm.queryExternalGCSPerm( + QueryExternalGcsPerm.queryExternalGcsPerm( BIGQUERY_DATASET_NAME, tableName, sourceUri, schema, query); assertThat(bout.toString()) .contains("Query on external permanent table performed successfully."); diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSTempIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsTempIT.java similarity index 92% rename from samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSTempIT.java rename to samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsTempIT.java index e18d1ba9eee4..5dca6b3e1a05 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGCSTempIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsTempIT.java @@ -28,7 +28,7 @@ import org.junit.Before; import org.junit.Test; -public class QueryExternalGCSTempIT { +public class QueryExternalGcsTempIT { private ByteArrayOutputStream bout; private PrintStream out; @@ -46,7 +46,7 @@ public void tearDown() { } @Test - public void testQueryExternalGCSTemp() { + public void testQueryExternalGcsTemp() { String tableName = "EXTERNAL_CSV_TEMP_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.csv"; @@ -55,7 +55,7 @@ public void testQueryExternalGCSTemp() { Field.of("name", StandardSQLTypeName.STRING), Field.of("post_abbr", StandardSQLTypeName.STRING)); String query = String.format("SELECT * FROM %s WHERE name LIKE 'W%%'", tableName); - QueryExternalGCSTemp.queryExternalGCSTemp(tableName, sourceUri, schema, query); + QueryExternalGcsTemp.queryExternalGcsTemp(tableName, sourceUri, schema, query); assertThat(bout.toString()) .contains("Query on external temporary table performed successfully."); } diff --git a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java index 8441fc738339..6c5fd02bd64a 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java @@ -20,15 +20,10 @@ import static junit.framework.TestCase.assertNotNull; import com.google.cloud.bigquery.Field; -import com.google.cloud.bigquery.InsertAllRequest; import com.google.cloud.bigquery.LegacySQLTypeName; import com.google.cloud.bigquery.Schema; import java.io.ByteArrayOutputStream; import java.io.PrintStream; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; import java.util.UUID; import org.junit.After; import org.junit.Before; @@ -83,18 +78,7 @@ public void tearDown() { @Test public void testTableInsertRowsWithoutRowIds() { - // Create rows to insert - Map rowContent1 = new HashMap<>(); - rowContent1.put("stringField", "Phred Phlyntstone"); - rowContent1.put("numericField", 32); - Map rowContent2 = new HashMap<>(); - rowContent2.put("stringField", "Wylma Phlyntstone"); - rowContent2.put("numericField", 29); - List rowContent = new ArrayList<>(); - rowContent.add(InsertAllRequest.RowToInsert.of(rowContent1)); - rowContent.add(InsertAllRequest.RowToInsert.of(rowContent2)); - TableInsertRowsWithoutRowIds.tableInsertRowsWithoutRowIds( - BIGQUERY_DATASET_NAME, tableName, rowContent); + TableInsertRowsWithoutRowIds.tableInsertRowsWithoutRowIds(BIGQUERY_DATASET_NAME, tableName); assertThat(bout.toString()).contains("Rows successfully inserted into table without row ids"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java index 50c454ab01ea..bda7e8b563a2 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java @@ -67,7 +67,7 @@ public void setUp() { + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " - + " SELECT 'a' AS f1, 2.0 AS label " + + "SELECT 'a' AS f1, 2.0 AS label " + "UNION ALL " + "SELECT 'b' AS f1, 3.8 AS label " + ")"; diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCMEKIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java similarity index 93% rename from samples/snippets/src/test/java/com/example/bigquery/UpdateTableCMEKIT.java rename to samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java index 6ec7de63a42e..38ddf9667220 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCMEKIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java @@ -31,7 +31,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class UpdateTableCMEKIT { +public class UpdateTableCmekIT { private String tableName; private ByteArrayOutputStream bout; @@ -67,7 +67,7 @@ public void setUp() { Field.of("booleanField", StandardSQLTypeName.BOOL)); EncryptionConfiguration encryption = EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); - CreateTableCMEK.createTableCMEK(BIGQUERY_DATASET_NAME, tableName, schema, encryption); + CreateTableCmek.createTableCmek(BIGQUERY_DATASET_NAME, tableName, schema, encryption); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); @@ -82,10 +82,10 @@ public void tearDown() { } @Test - public void testUpdateTableCMEK() { + public void testUpdateTableCmek() { EncryptionConfiguration encryption = EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); - UpdateTableCMEK.updateTableCMEK(BIGQUERY_DATASET_NAME, tableName, encryption); + UpdateTableCmek.updateTableCmek(BIGQUERY_DATASET_NAME, tableName, encryption); assertThat(bout.toString()).contains("Table cmek updated successfully"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDMLIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDmlIT.java similarity index 94% rename from samples/snippets/src/test/java/com/example/bigquery/UpdateTableDMLIT.java rename to samples/snippets/src/test/java/com/example/bigquery/UpdateTableDmlIT.java index 006ba13ceb2d..ffaea442eb29 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDMLIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDmlIT.java @@ -31,7 +31,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class UpdateTableDMLIT { +public class UpdateTableDmlIT { private String tableName; private ByteArrayOutputStream bout; @@ -83,8 +83,8 @@ public void tearDown() { } @Test - public void testUpdateTableDML() throws IOException, InterruptedException { - UpdateTableDML.updateTableDML(BIGQUERY_DATASET_NAME, tableName); + public void testUpdateTableDml() throws IOException, InterruptedException { + UpdateTableDml.updateTableDml(BIGQUERY_DATASET_NAME, tableName); assertThat(bout.toString()).contains("Table updated successfully using DML"); } } From f08beccecd00f792c33ac3d2e29a696bd9411fb6 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 20 Aug 2020 09:12:01 -0700 Subject: [PATCH 0754/3441] docs(samples): add samples lint job and fix lint issues (#684) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * chore(java_templates): add lint/static analysis presubmit checks for samples * chore(java_templates): add lint/static analysis presubmit checks for samples * chore: fix trailing whitespace Source-Author: Jeff Ching Source-Date: Mon Aug 17 14:29:16 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: c3caf0704f25a0c365f1c315e804a30b87c62a75 Source-Link: https://github.com/googleapis/synthtool/commit/c3caf0704f25a0c365f1c315e804a30b87c62a75 * chore(java_templates): stop running pmd/spotbugs checks for samples This was creating too much noise. We will revisit with other options and/or tune these checks. Source-Author: Jeff Ching Source-Date: Wed Aug 19 12:26:49 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 9602086c6c5b05db77950c7f7495a2a3868f3537 Source-Link: https://github.com/googleapis/synthtool/commit/9602086c6c5b05db77950c7f7495a2a3868f3537 --- .github/workflows/samples.yaml | 14 ++++++++++++++ README.md | 34 +++++++++++++++++----------------- synth.metadata | 5 +++-- 3 files changed, 34 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/samples.yaml diff --git a/.github/workflows/samples.yaml b/.github/workflows/samples.yaml new file mode 100644 index 000000000000..a1d50073069d --- /dev/null +++ b/.github/workflows/samples.yaml @@ -0,0 +1,14 @@ +on: + pull_request: +name: samples +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 + with: + java-version: 8 + - name: Run checkstyle + run: mvn -P lint --quiet --batch-mode checkstyle:check + working-directory: samples/snippets diff --git a/README.md b/README.md index 9af44eb7b713..39db0a4a7e01 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ has instructions for running the samples. | Cancel Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | | Copy Multiple Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | | Copy Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | -| Copy Table CMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTableCMEK.java) | +| Copy Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java) | | Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | | Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | | Create Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | @@ -116,13 +116,13 @@ has instructions for running the samples. | Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | | Create Range Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | | Create Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java) | -| Create Routine DDL | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDDL.java) | +| Create Routine Ddl | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java) | | Create Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | -| Create Table CMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableCMEK.java) | +| Create Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java) | | Create Table Without Schema | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | | Create View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | -| DDL Create View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DDLCreateView.java) | | Dataset Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | +| Ddl Create View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java) | | Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | | Delete Dataset And Contents | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java) | | Delete Label Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | @@ -151,17 +151,17 @@ has instructions for running the samples. | List Models | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | | List Routines | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | | List Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | -| Load Avro From GCS | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCS.java) | -| Load Avro From GCS Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGCSTruncate.java) | -| Load Csv From GCS Autodetect | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGCSAutodetect.java) | +| Load Avro From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java) | +| Load Avro From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java) | | Load Csv From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | +| Load Csv From Gcs Autodetect | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java) | | Load Csv From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | -| Load Json From GCS | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCS.java) | -| Load Json From GCS Autodetect | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSAutodetect.java) | -| Load Json From GCSCMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSCMEK.java) | -| Load Json From GCS Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGCSTruncate.java) | +| Load Json From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java) | +| Load Json From Gcs Autodetect | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java) | +| Load Json From Gcs Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java) | +| Load Json From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java) | | Load Local File | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | -| Load Orc From GCS | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGCS.java) | +| Load Orc From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java) | | Load Orc From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java) | | Load Parquet | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | | Load Parquet Replace Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | @@ -171,11 +171,11 @@ has instructions for running the samples. | Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/Query.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/Query.java) | | Query Batch | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | | Query Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | -| Query Destination Table CMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCMEK.java) | +| Query Destination Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java) | | Query Disable Cache | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java) | | Query Dry Run | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | -| Query External GCS Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSPerm.java) | -| Query External GCS Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGCSTemp.java) | +| Query External Gcs Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java) | +| Query External Gcs Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java) | | Query External Sheets Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java) | | Query External Sheets Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java) | | Query Large Results | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | @@ -208,9 +208,9 @@ has instructions for running the samples. | Update Dataset Partition Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | | Update Model Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | | Update Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java) | -| Update Table CMEK | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableCMEK.java) | -| Update Table DML | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDML.java) | +| Update Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java) | | Update Table Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | +| Update Table Dml | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java) | | Update Table Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | | Update View Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java) | diff --git a/synth.metadata b/synth.metadata index f6577d855bf7..696ab4f12c2d 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "71c60cc1f3e608700fb78947d004a3037f556edd" + "sha": "fe5abc054c5eb7907ef58d5aa3285b3f10211aa4" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "f8823dec98277a9516f2fb6fae9f58b3a59a23e1" + "sha": "9602086c6c5b05db77950c7f7495a2a3868f3537" } } ], @@ -24,6 +24,7 @@ ".github/release-please.yml", ".github/trusted-contribution.yml", ".github/workflows/ci.yaml", + ".github/workflows/samples.yaml", ".kokoro/build.bat", ".kokoro/build.sh", ".kokoro/coerce_logs.sh", From f0e67d8a63fdfe62bcd285c3bbb04cae79386229 Mon Sep 17 00:00:00 2001 From: shollyman Date: Tue, 25 Aug 2020 09:14:02 -0700 Subject: [PATCH 0755/3441] feat: support for Table ACLs (#653) * feat: bigquery table acls * incremental updates * syntax * cleanup warnings * add policy conversion tests * add BigQueryImpl testing * cleanup tests * address mock issue * plumb in testIamPermissions and impl test * add integration test * drop empty check * allow more permissive policy conversions for (empty bindings) * more null fun * add clirr-ignored-differences.xml for new methods added to interfaces Co-authored-by: stephwang --- .../clirr-ignored-differences.xml | 35 + .../java/com/google/cloud/bigquery/Acl.java | 1 + .../com/google/cloud/bigquery/BigQuery.java | 915 ++++++++++-------- .../google/cloud/bigquery/BigQueryImpl.java | 95 +- .../cloud/bigquery/BigQueryOptions.java | 2 + .../google/cloud/bigquery/PolicyHelper.java | 80 ++ .../com/google/cloud/bigquery/TableId.java | 6 + .../cloud/bigquery/spi/v2/BigQueryRpc.java | 29 +- .../bigquery/spi/v2/HttpBigQueryRpc.java | 48 +- .../cloud/bigquery/BigQueryImplTest.java | 54 ++ .../cloud/bigquery/PolicyHelperTest.java | 81 ++ .../google/cloud/bigquery/TableIdTest.java | 3 + .../cloud/bigquery/it/ITBigQueryTest.java | 34 + 13 files changed, 980 insertions(+), 403 deletions(-) create mode 100644 google-cloud-bigquery/clirr-ignored-differences.xml create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyHelper.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyHelperTest.java diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml new file mode 100644 index 000000000000..bc998edc333f --- /dev/null +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -0,0 +1,35 @@ + + + + + + 7012 + com/google/cloud/bigquery/BigQuery + com.google.cloud.Policy getIamPolicy(com.google.cloud.bigquery.TableId, com.google.cloud.bigquery.BigQuery$IAMOption[]) + + + 7012 + com/google/cloud/bigquery/BigQuery + com.google.cloud.Policy setIamPolicy(com.google.cloud.bigquery.TableId, com.google.cloud.Policy, com.google.cloud.bigquery.BigQuery$IAMOption[]) + + + 7012 + com/google/cloud/bigquery/BigQuery + java.util.List testIamPermissions(com.google.cloud.bigquery.TableId, java.util.List, com.google.cloud.bigquery.BigQuery$IAMOption[]) + + + 7012 + com/google/cloud/bigquery/spi/v2/BigQueryRpc + com.google.api.services.bigquery.model.Policy getIamPolicy(java.lang.String, java.util.Map) + + + 7012 + com/google/cloud/bigquery/spi/v2/BigQueryRpc + com.google.api.services.bigquery.model.Policy setIamPolicy(java.lang.String, com.google.api.services.bigquery.model.Policy, java.util.Map) + + + 7012 + com/google/cloud/bigquery/spi/v2/BigQueryRpc + com.google.api.services.bigquery.model.TestIamPermissionsResponse testIamPermissions(java.lang.String, java.util.List, java.util.Map) + + diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java index 4da7fe5e63f3..b55bae228d55 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java @@ -393,6 +393,7 @@ Access toPb() { */ public static final class IamMember extends Entity { + private static final long serialVersionUID = 3562909264454016939L; private final String iamMember; /** Creates a iamMember entity given the iamMember. */ diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 5ece9cb0e28e..70a29fd9ff64 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -22,6 +22,7 @@ import com.google.api.gax.paging.Page; import com.google.cloud.FieldSelector; import com.google.cloud.FieldSelector.Helper; +import com.google.cloud.Policy; import com.google.cloud.RetryOption; import com.google.cloud.Service; import com.google.cloud.bigquery.spi.v2.BigQueryRpc; @@ -42,7 +43,7 @@ public interface BigQuery extends Service { /** * Fields of a BigQuery Dataset resource. * - * @see Dataset + * @see Dataset * Resource */ enum DatasetField implements FieldSelector { @@ -77,7 +78,7 @@ public String getSelector() { /** * Fields of a BigQuery Table resource. * - * @see Table + * @see Table * Resource */ enum TableField implements FieldSelector { @@ -121,7 +122,7 @@ public String getSelector() { /** * Fields of a BigQuery Model resource. * - * @see Model + * @see Model * Resource */ enum ModelField implements FieldSelector { @@ -156,7 +157,7 @@ public String getSelector() { /** * Fields of a BigQuery Routine resource. * - * @see Routine + * @see Routine * Resource */ enum RoutineField implements FieldSelector { @@ -189,7 +190,7 @@ public String getSelector() { /** * Fields of a BigQuery Job resource. * - * @see Job Resource + * @see Job Resource * */ enum JobField implements FieldSelector { @@ -373,6 +374,20 @@ public static TableOption fields(TableField... fields) { } } + /* Class for specifying IAM options. */ + class IAMOption extends Option { + + private static final long serialVersionUID = 8607992885371024269L; + + private IAMOption(BigQueryRpc.Option option, Object value) { + super(option, value); + } + + public static IAMOption requestedPolicyVersion(long version) { + return new IAMOption(BigQueryRpc.Option.REQUESTED_POLICY_VERSION, version); + } + } + /** Class for specifying model get, create and update options. */ class ModelOption extends Option { @@ -643,17 +658,20 @@ public int hashCode() { * *

    Example of creating a dataset. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * Dataset dataset = null;
    -   * DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build();
    -   * try {
    -   *   // the dataset was created
    -   *   dataset = bigquery.create(datasetInfo);
    -   * } catch (BigQueryException e) {
    -   *   // the dataset was not created
    +   * 
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   Dataset dataset = null;
    +   *   DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build();
    +   *   try {
    +   *     // the dataset was created
    +   *     dataset = bigquery.create(datasetInfo);
    +   *   } catch (BigQueryException e) {
    +   *     // the dataset was not created
    +   *   }
        * }
    -   * }
    + *
    * * @throws BigQueryException upon failure */ @@ -664,19 +682,22 @@ public int hashCode() { * *

    Example of creating a table. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * String fieldName = "string_field";
    -   * TableId tableId = TableId.of(datasetName, tableName);
    -   * // Table field definition
    -   * Field field = Field.of(fieldName, LegacySQLTypeName.STRING);
    -   * // Table schema definition
    -   * Schema schema = Schema.of(field);
    -   * TableDefinition tableDefinition = StandardTableDefinition.of(schema);
    -   * TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build();
    -   * Table table = bigquery.create(tableInfo);
    -   * }
    + *
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   String fieldName = "string_field";
    +   *   TableId tableId = TableId.of(datasetName, tableName);
    +   *   // Table field definition
    +   *   Field field = Field.of(fieldName, LegacySQLTypeName.STRING);
    +   *   // Table schema definition
    +   *   Schema schema = Schema.of(field);
    +   *   TableDefinition tableDefinition = StandardTableDefinition.of(schema);
    +   *   TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build();
    +   *   Table table = bigquery.create(tableInfo);
    +   * }
    +   * 
    * * @throws BigQueryException upon failure */ @@ -694,46 +715,46 @@ public int hashCode() { * *

    Example of loading a newline-delimited-json file with textual fields from GCS to a table. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json";
    -   * TableId tableId = TableId.of(datasetName, tableName);
    -   * // Table field definition
    -   * Field[] fields =
    -   *     new Field[] {
    -   *       Field.of("name", LegacySQLTypeName.STRING),
    -   *       Field.of("post_abbr", LegacySQLTypeName.STRING)
    -   *     };
    -   * // Table schema definition
    -   * Schema schema = Schema.of(fields);
    -   * LoadJobConfiguration configuration =
    -   *     LoadJobConfiguration.builder(tableId, sourceUri)
    -   *         .setFormatOptions(FormatOptions.json())
    -   *         .setCreateDisposition(CreateDisposition.CREATE_IF_NEEDED)
    -   *         .setSchema(schema)
    -   *         .build();
    -   * // Load the table
    -   * Job loadJob = bigquery.create(JobInfo.of(configuration));
    -   * loadJob = loadJob.waitFor();
    -   * // Check the table
    -   * System.out.println("State: " + loadJob.getStatus().getState());
    -   * return ((StandardTableDefinition) bigquery.getTable(tableId).getDefinition()).getNumRows();
    -   * }
    + *
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json";
    +   *   TableId tableId = TableId.of(datasetName, tableName);
    +   *   // Table field definition
    +   *   Field[] fields = new Field[] { Field.of("name", LegacySQLTypeName.STRING),
    +   *       Field.of("post_abbr", LegacySQLTypeName.STRING) };
    +   *   // Table schema definition
    +   *   Schema schema = Schema.of(fields);
    +   *   LoadJobConfiguration configuration = LoadJobConfiguration.builder(tableId, sourceUri)
    +   *       .setFormatOptions(FormatOptions.json()).setCreateDisposition(CreateDisposition.CREATE_IF_NEEDED)
    +   *       .setSchema(schema).build();
    +   *   // Load the table
    +   *   Job loadJob = bigquery.create(JobInfo.of(configuration));
    +   *   loadJob = loadJob.waitFor();
    +   *   // Check the table
    +   *   System.out.println("State: " + loadJob.getStatus().getState());
    +   *   return ((StandardTableDefinition) bigquery.getTable(tableId).getDefinition()).getNumRows();
    +   * }
    +   * 
    * *

    Example of creating a query job. * - *

    {@code
    -   * String query = "SELECT field FROM my_dataset_name.my_table_name";
    -   * Job job = null;
    -   * JobConfiguration jobConfiguration = QueryJobConfiguration.of(query);
    -   * JobInfo jobInfo = JobInfo.of(jobConfiguration);
    -   * try {
    -   *   job = bigquery.create(jobInfo);
    -   * } catch (BigQueryException e) {
    -   *   // the job was not created
    +   * 
    +   * {
    +   *   @code
    +   *   String query = "SELECT field FROM my_dataset_name.my_table_name";
    +   *   Job job = null;
    +   *   JobConfiguration jobConfiguration = QueryJobConfiguration.of(query);
    +   *   JobInfo jobInfo = JobInfo.of(jobConfiguration);
    +   *   try {
    +   *     job = bigquery.create(jobInfo);
    +   *   } catch (BigQueryException e) {
    +   *     // the job was not created
    +   *   }
        * }
    -   * }
    + *
    * * @throws BigQueryException upon failure */ @@ -744,10 +765,13 @@ public int hashCode() { * *

    Example of getting a dataset. * - *

    {@code
    -   * String datasetName = "my_dataset";
    -   * Dataset dataset = bigquery.getDataset(datasetName);
    -   * }
    + *
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset";
    +   *   Dataset dataset = bigquery.getDataset(datasetName);
    +   * }
    +   * 
    * * @throws BigQueryException upon failure */ @@ -758,12 +782,15 @@ public int hashCode() { * *

    Example of getting a dataset. * - *

    {@code
    -   * String projectId = "my_project_id";
    -   * String datasetName = "my_dataset_name";
    -   * DatasetId datasetId = DatasetId.of(projectId, datasetName);
    -   * Dataset dataset = bigquery.getDataset(datasetId);
    -   * }
    + *
    +   * {
    +   *   @code
    +   *   String projectId = "my_project_id";
    +   *   String datasetName = "my_dataset_name";
    +   *   DatasetId datasetId = DatasetId.of(projectId, datasetName);
    +   *   Dataset dataset = bigquery.getDataset(datasetId);
    +   * }
    +   * 
    * * @throws BigQueryException upon failure */ @@ -777,13 +804,16 @@ public int hashCode() { * *

    Example of listing datasets, specifying the page size. * - *

    {@code
    -   * // List datasets in the default project
    -   * Page datasets = bigquery.listDatasets(DatasetListOption.pageSize(100));
    -   * for (Dataset dataset : datasets.iterateAll()) {
    -   *   // do something with the dataset
    +   * 
    +   * {
    +   *   @code
    +   *   // List datasets in the default project
    +   *   Page datasets = bigquery.listDatasets(DatasetListOption.pageSize(100));
    +   *   for (Dataset dataset : datasets.iterateAll()) {
    +   *     // do something with the dataset
    +   *   }
        * }
    -   * }
    + *
    * * @throws BigQueryException upon failure */ @@ -797,14 +827,17 @@ public int hashCode() { * *

    Example of listing datasets in a project, specifying the page size. * - *

    {@code
    -   * String projectId = "my_project_id";
    -   * // List datasets in a specified project
    -   * Page datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100));
    -   * for (Dataset dataset : datasets.iterateAll()) {
    -   *   // do something with the dataset
    +   * 
    +   * {
    +   *   @code
    +   *   String projectId = "my_project_id";
    +   *   // List datasets in a specified project
    +   *   Page datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100));
    +   *   for (Dataset dataset : datasets.iterateAll()) {
    +   *     // do something with the dataset
    +   *   }
        * }
    -   * }
    + *
    * * @throws BigQueryException upon failure */ @@ -815,15 +848,18 @@ public int hashCode() { * *

    Example of deleting a dataset from its id, even if non-empty. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * boolean deleted = bigquery.delete(datasetName, DatasetDeleteOption.deleteContents());
    -   * if (deleted) {
    -   *   // the dataset was deleted
    -   * } else {
    -   *   // the dataset was not found
    +   * 
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   boolean deleted = bigquery.delete(datasetName, DatasetDeleteOption.deleteContents());
    +   *   if (deleted) {
    +   *     // the dataset was deleted
    +   *   } else {
    +   *     // the dataset was not found
    +   *   }
        * }
    -   * }
    + *
    * * @return {@code true} if dataset was deleted, {@code false} if it was not found * @throws BigQueryException upon failure @@ -835,17 +871,20 @@ public int hashCode() { * *

    Example of deleting a dataset, even if non-empty. * - *

    {@code
    -   * String projectId = "my_project_id";
    -   * String datasetName = "my_dataset_name";
    -   * DatasetId datasetId = DatasetId.of(projectId, datasetName);
    -   * boolean deleted = bigquery.delete(datasetId, DatasetDeleteOption.deleteContents());
    -   * if (deleted) {
    -   *   // the dataset was deleted
    -   * } else {
    -   *   // the dataset was not found
    +   * 
    +   * {
    +   *   @code
    +   *   String projectId = "my_project_id";
    +   *   String datasetName = "my_dataset_name";
    +   *   DatasetId datasetId = DatasetId.of(projectId, datasetName);
    +   *   boolean deleted = bigquery.delete(datasetId, DatasetDeleteOption.deleteContents());
    +   *   if (deleted) {
    +   *     // the dataset was deleted
    +   *   } else {
    +   *     // the dataset was not found
    +   *   }
        * }
    -   * }
    + *
    * * @return {@code true} if dataset was deleted, {@code false} if it was not found * @throws BigQueryException upon failure @@ -869,18 +908,21 @@ public int hashCode() { * *

    Example of deleting a table. * - *

    {@code
    -   * String projectId = "my_project_id";
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * TableId tableId = TableId.of(projectId, datasetName, tableName);
    -   * boolean deleted = bigquery.delete(tableId);
    -   * if (deleted) {
    -   *   // the table was deleted
    -   * } else {
    -   *   // the table was not found
    +   * 
    +   * {
    +   *   @code
    +   *   String projectId = "my_project_id";
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   TableId tableId = TableId.of(projectId, datasetName, tableName);
    +   *   boolean deleted = bigquery.delete(tableId);
    +   *   if (deleted) {
    +   *     // the table was deleted
    +   *   } else {
    +   *     // the table was not found
    +   *   }
        * }
    -   * }
    + *
    * * @return {@code true} if table was deleted, {@code false} if it was not found * @throws BigQueryException upon failure @@ -892,18 +934,21 @@ public int hashCode() { * *

    Example of deleting a model. * - *

    {@code
    -   * String projectId = "my_project_id";
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_model_name";
    -   * ModelId modelId = ModelId.of(projectId, datasetName, modelName);
    -   * boolean deleted = bigquery.delete(modelId);
    -   * if (deleted) {
    -   *   // the model was deleted
    -   * } else {
    -   *   // the model was not found
    +   * 
    +   * {
    +   *   @code
    +   *   String projectId = "my_project_id";
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_model_name";
    +   *   ModelId modelId = ModelId.of(projectId, datasetName, modelName);
    +   *   boolean deleted = bigquery.delete(modelId);
    +   *   if (deleted) {
    +   *     // the model was deleted
    +   *   } else {
    +   *     // the model was not found
    +   *   }
        * }
    -   * }
    + *
    * * @return {@code true} if model was deleted, {@code false} if it was not found * @throws BigQueryException upon failure @@ -913,9 +958,11 @@ public int hashCode() { /** * Deletes the requested routine. * - *

    Example of deleting a routine. + *

    + * Example of deleting a routine. * - *

    {@code
    +   * 
    +   * {@code
        * String projectId = "my_project_id";
        * String datasetId = "my_dataset_id";
        * String routineId = "my_routine_id";
    @@ -928,7 +975,9 @@ public int hashCode() {
        * }
        * 
    * - * @return {@code true} if routine was deleted, {@code false} if it was not found + * @return {@code true} if routine was deleted, {@code false} if it was not + * found + * * @throws BigQueryException upon failure */ boolean delete(RoutineId routineId); @@ -937,20 +986,22 @@ public int hashCode() { * Updates dataset information. * *

    Example of updating a dataset by changing its description. - * + * * - *

    {@code
    -   * // String datasetName = "my_dataset_name";
    -   * // String tableName = "my_table_name";
    -   * // String newDescription = "new_description";
    +   * 
    +   * {
    +   *   @code
    +   *   // String datasetName = "my_dataset_name";
    +   *   // String tableName = "my_table_name";
    +   *   // String newDescription = "new_description";
        *
    -   * Table beforeTable = bigquery.getTable(datasetName, tableName);
    -   * TableInfo tableInfo = beforeTable.toBuilder()
    -   *     .setDescription(newDescription)
    -   *     .build();
    -   * Table afterTable = bigquery.update(tableInfo);
    +   *   Table beforeTable = bigquery.getTable(datasetName, tableName);
    +   *   TableInfo tableInfo = beforeTable.toBuilder().setDescription(newDescription).build();
    +   *   Table afterTable = bigquery.update(tableInfo);
        *
    -   * }
    + * } + *
    * * * @@ -963,31 +1014,33 @@ public int hashCode() { * *

    Example of updating a table by changing its description. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * String newDescription = "new_description";
    -   * Table beforeTable = bigquery.getTable(datasetName, tableName);
    -   * TableInfo tableInfo = beforeTable.toBuilder()
    -   *     .setDescription(newDescription)
    -   *     .build();
    -   * Table afterTable = bigquery.update(tableInfo);
    -   * }
    + *
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   String newDescription = "new_description";
    +   *   Table beforeTable = bigquery.getTable(datasetName, tableName);
    +   *   TableInfo tableInfo = beforeTable.toBuilder().setDescription(newDescription).build();
    +   *   Table afterTable = bigquery.update(tableInfo);
    +   * }
    +   * 
    * *

    Example of updating a table by changing its expiration. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * Table beforeTable = bigquery.getTable(datasetName, tableName);
    -   *
    -   * // Set table to expire 5 days from now.
    -   * long expirationMillis = DateTime.now().plusDays(5).getMillis();
    -   * TableInfo tableInfo = beforeTable.toBuilder()
    -   *         .setExpirationTime(expirationMillis)
    -   *         .build();
    -   * Table afterTable = bigquery.update(tableInfo);
    -   * }
    + *
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   Table beforeTable = bigquery.getTable(datasetName, tableName);
    +   *
    +   *   // Set table to expire 5 days from now.
    +   *   long expirationMillis = DateTime.now().plusDays(5).getMillis();
    +   *   TableInfo tableInfo = beforeTable.toBuilder().setExpirationTime(expirationMillis).build();
    +   *   Table afterTable = bigquery.update(tableInfo);
    +   * }
    +   * 
    * * @throws BigQueryException upon failure */ @@ -998,31 +1051,33 @@ public int hashCode() { * *

    Example of updating a model by changing its description. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String modelName = "my_model_name";
    -   * String newDescription = "new_description";
    -   * Model beforeModel = bigquery.getModel(datasetName, modelName);
    -   * ModelInfo modelInfo = beforeModel.toBuilder()
    -   *     .setDescription(newDescription)
    -   *     .build();
    -   * Model afterModel = bigquery.update(modelInfo);
    -   * }
    + *
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String modelName = "my_model_name";
    +   *   String newDescription = "new_description";
    +   *   Model beforeModel = bigquery.getModel(datasetName, modelName);
    +   *   ModelInfo modelInfo = beforeModel.toBuilder().setDescription(newDescription).build();
    +   *   Model afterModel = bigquery.update(modelInfo);
    +   * }
    +   * 
    * *

    Example of updating a model by changing its expiration. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String modelName = "my_model_name";
    -   * Model beforeModel = bigquery.getModel(datasetName, modelName);
    -   *
    -   * // Set model to expire 5 days from now.
    -   * long expirationMillis = DateTime.now().plusDays(5).getMillis();
    -   * ModelInfo modelInfo = beforeModel.toBuilder()
    -   *         .setExpirationTime(expirationMillis)
    -   *         .build();
    -   * Model afterModel = bigquery.update(modelInfo);
    -   * }
    + *
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String modelName = "my_model_name";
    +   *   Model beforeModel = bigquery.getModel(datasetName, modelName);
    +   *
    +   *   // Set model to expire 5 days from now.
    +   *   long expirationMillis = DateTime.now().plusDays(5).getMillis();
    +   *   ModelInfo modelInfo = beforeModel.toBuilder().setExpirationTime(expirationMillis).build();
    +   *   Model afterModel = bigquery.update(modelInfo);
    +   * }
    +   * 
    * * @throws BigQueryException upon failure */ @@ -1040,11 +1095,14 @@ public int hashCode() { * *

    Example of getting a table. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * Table table = bigquery.getTable(datasetName, tableName);
    -   * }
    + *
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   Table table = bigquery.getTable(datasetName, tableName);
    +   * }
    +   * 
    * * @throws BigQueryException upon failure */ @@ -1055,13 +1113,16 @@ public int hashCode() { * *

    Example of getting a table. * - *

    {@code
    -   * String projectId = "my_project_id";
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * TableId tableId = TableId.of(projectId, datasetName, tableName);
    -   * Table table = bigquery.getTable(tableId);
    -   * }
    + *
    +   * {
    +   *   @code
    +   *   String projectId = "my_project_id";
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   TableId tableId = TableId.of(projectId, datasetName, tableName);
    +   *   Table table = bigquery.getTable(tableId);
    +   * }
    +   * 
    * * @throws BigQueryException upon failure */ @@ -1079,13 +1140,16 @@ public int hashCode() { * *

    Example of getting a model. * - *

    {@code
    -   * String projectId = "my_project_id";
    -   * String datasetName = "my_dataset_name";
    -   * String modelName = "my_model_name";
    -   * ModelId modelId = ModelId.of(projectId, datasetName, tableName);
    -   * Model model = bigquery.getModel(modelId);
    -   * }
    + *
    +   * {
    +   *   @code
    +   *   String projectId = "my_project_id";
    +   *   String datasetName = "my_dataset_name";
    +   *   String modelName = "my_model_name";
    +   *   ModelId modelId = ModelId.of(projectId, datasetName, tableName);
    +   *   Model model = bigquery.getModel(modelId);
    +   * }
    +   * 
    * * @throws BigQueryException upon failure */ @@ -1112,42 +1176,54 @@ public int hashCode() { Page listRoutines(DatasetId datasetId, RoutineListOption... options); /** - * Lists the tables in the dataset. This method returns partial information on each table: ({@link - * Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} and type, - * which is part of {@link Table#getDefinition()}). To get complete information use either {@link - * #getTable(TableId, TableOption...)} or {@link #getTable(String, String, TableOption...)}. - * - *

    Example of listing the tables in a dataset, specifying the page size. - * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * Page
    tables = bigquery.listTables(datasetName, TableListOption.pageSize(100)); - * for (Table table : tables.iterateAll()) { - * // do something with the table + * Lists the tables in the dataset. This method returns partial information on + * each table: ({@link Table#getTableId()}, {@link Table#getFriendlyName()}, + * {@link Table#getGeneratedId()} and type, which is part of + * {@link Table#getDefinition()}). To get complete information use either + * {@link #getTable(TableId, TableOption...)} or + * {@link #getTable(String, String, TableOption...)}. + * + *

    + * Example of listing the tables in a dataset, specifying the page size. + * + *

    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   Page
    tables = bigquery.listTables(datasetName, TableListOption.pageSize(100)); + * for (Table table : tables.iterateAll()) { + * // do something with the table + * } * } - * } + * * * @throws BigQueryException upon failure */ Page
    listTables(String datasetId, TableListOption... options); /** - * Lists the tables in the dataset. This method returns partial information on each table: ({@link - * Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} and type, - * which is part of {@link Table#getDefinition()}). To get complete information use either {@link - * #getTable(TableId, TableOption...)} or {@link #getTable(String, String, TableOption...)}. - * - *

    Example of listing the tables in a dataset. - * - *

    {@code
    -   * String projectId = "my_project_id";
    -   * String datasetName = "my_dataset_name";
    -   * DatasetId datasetId = DatasetId.of(projectId, datasetName);
    -   * Page
    tables = bigquery.listTables(datasetId, TableListOption.pageSize(100)); - * for (Table table : tables.iterateAll()) { - * // do something with the table + * Lists the tables in the dataset. This method returns partial information on + * each table: ({@link Table#getTableId()}, {@link Table#getFriendlyName()}, + * {@link Table#getGeneratedId()} and type, which is part of + * {@link Table#getDefinition()}). To get complete information use either + * {@link #getTable(TableId, TableOption...)} or + * {@link #getTable(String, String, TableOption...)}. + * + *

    + * Example of listing the tables in a dataset. + * + *

    +   * {
    +   *   @code
    +   *   String projectId = "my_project_id";
    +   *   String datasetName = "my_dataset_name";
    +   *   DatasetId datasetId = DatasetId.of(projectId, datasetName);
    +   *   Page
    tables = bigquery.listTables(datasetId, TableListOption.pageSize(100)); + * for (Table table : tables.iterateAll()) { + * // do something with the table + * } * } - * } + * * * @throws BigQueryException upon failure */ @@ -1170,32 +1246,33 @@ public int hashCode() { * *

    Example of inserting rows into a table without running a load job. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * TableId tableId = TableId.of(datasetName, tableName);
    -   * // Values of the row to insert
    -   * Map rowContent = new HashMap<>();
    -   * rowContent.put("booleanField", true);
    -   * // Bytes are passed in base64
    -   * rowContent.put("bytesField", "Cg0NDg0="); // 0xA, 0xD, 0xD, 0xE, 0xD in base64
    -   * // Records are passed as a map
    -   * Map recordsContent = new HashMap<>();
    -   * recordsContent.put("stringField", "Hello, World!");
    -   * rowContent.put("recordField", recordsContent);
    -   * InsertAllResponse response =
    -   *     bigquery.insertAll(
    -   *         InsertAllRequest.newBuilder(tableId)
    -   *             .addRow("rowId", rowContent)
    -   *             // More rows can be added in the same RPC by invoking .addRow() on the builder
    -   *             .build());
    -   * if (response.hasErrors()) {
    -   *   // If any of the insertions failed, this lets you inspect the errors
    -   *   for (Entry> entry : response.getInsertErrors().entrySet()) {
    -   *     // inspect row error
    +   * 
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   TableId tableId = TableId.of(datasetName, tableName);
    +   *   // Values of the row to insert
    +   *   Map rowContent = new HashMap<>();
    +   *   rowContent.put("booleanField", true);
    +   *   // Bytes are passed in base64
    +   *   rowContent.put("bytesField", "Cg0NDg0="); // 0xA, 0xD, 0xD, 0xE, 0xD in base64
    +   *   // Records are passed as a map
    +   *   Map recordsContent = new HashMap<>();
    +   *   recordsContent.put("stringField", "Hello, World!");
    +   *   rowContent.put("recordField", recordsContent);
    +   *   InsertAllResponse response = bigquery.insertAll(InsertAllRequest.newBuilder(tableId).addRow("rowId", rowContent)
    +   *       // More rows can be added in the same RPC by invoking .addRow() on the
    +   *       // builder
    +   *       .build());
    +   *   if (response.hasErrors()) {
    +   *     // If any of the insertions failed, this lets you inspect the errors
    +   *     for (Entry> entry : response.getInsertErrors().entrySet()) {
    +   *       // inspect row error
    +   *     }
        *   }
        * }
    -   * }
    + *
    * * @throws BigQueryException upon failure */ @@ -1206,17 +1283,20 @@ public int hashCode() { * *

    Example of listing table rows, specifying the page size. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * // This example reads the result 100 rows per RPC call. If there's no need to limit the number,
    -   * // simply omit the option.
    -   * TableResult tableData =
    -   *     bigquery.listTableData(datasetName, tableName, TableDataListOption.pageSize(100));
    -   * for (FieldValueList row : tableData.iterateAll()) {
    -   *   // do something with the row
    +   * 
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   // This example reads the result 100 rows per RPC call. If there's no need
    +   *   // to limit the number,
    +   *   // simply omit the option.
    +   *   TableResult tableData = bigquery.listTableData(datasetName, tableName, TableDataListOption.pageSize(100));
    +   *   for (FieldValueList row : tableData.iterateAll()) {
    +   *     // do something with the row
    +   *   }
        * }
    -   * }
    + *
    * * @throws BigQueryException upon failure */ @@ -1227,18 +1307,21 @@ public int hashCode() { * *

    Example of listing table rows, specifying the page size. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * TableId tableIdObject = TableId.of(datasetName, tableName);
    -   * // This example reads the result 100 rows per RPC call. If there's no need to limit the number,
    -   * // simply omit the option.
    -   * TableResult tableData =
    -   *     bigquery.listTableData(tableIdObject, TableDataListOption.pageSize(100));
    -   * for (FieldValueList row : tableData.iterateAll()) {
    -   *   // do something with the row
    +   * 
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   TableId tableIdObject = TableId.of(datasetName, tableName);
    +   *   // This example reads the result 100 rows per RPC call. If there's no need
    +   *   // to limit the number,
    +   *   // simply omit the option.
    +   *   TableResult tableData = bigquery.listTableData(tableIdObject, TableDataListOption.pageSize(100));
    +   *   for (FieldValueList row : tableData.iterateAll()) {
    +   *     // do something with the row
    +   *   }
        * }
    -   * }
    + *
    * * @throws BigQueryException upon failure */ @@ -1272,19 +1355,18 @@ TableResult listTableData( * *

    Example of listing table rows with schema. * - *

    {@code
    -   * Schema schema =
    -   *     Schema.of(
    -   *         Field.of("word", LegacySQLTypeName.STRING),
    -   *         Field.of("word_count", LegacySQLTypeName.STRING),
    -   *         Field.of("corpus", LegacySQLTypeName.STRING),
    -   *         Field.of("corpus_date", LegacySQLTypeName.STRING));
    -   * TableResult tableData =
    -   *     bigquery.listTableData(
    -   *         TableId.of("bigquery-public-data", "samples", "shakespeare"), schema);
    -   * FieldValueList row = tableData.getValues().iterator().next();
    -   * System.out.println(row.get("word").getStringValue());
    -   * }
    + *
    +   * {
    +   *   @code
    +   *   Schema schema = Schema.of(Field.of("word", LegacySQLTypeName.STRING),
    +   *       Field.of("word_count", LegacySQLTypeName.STRING), Field.of("corpus", LegacySQLTypeName.STRING),
    +   *       Field.of("corpus_date", LegacySQLTypeName.STRING));
    +   *   TableResult tableData = bigquery.listTableData(TableId.of("bigquery-public-data", "samples", "shakespeare"),
    +   *       schema);
    +   *   FieldValueList row = tableData.getValues().iterator().next();
    +   *   System.out.println(row.get("word").getStringValue());
    +   * }
    +   * 
    * * @throws BigQueryException upon failure */ @@ -1296,13 +1378,16 @@ TableResult listTableData( * *

    Example of getting a job. * - *

    {@code
    -   * String jobName = "my_job_name";
    -   * Job job = bigquery.getJob(jobName);
    -   * if (job == null) {
    -   *   // job was not found
    +   * 
    +   * {
    +   *   @code
    +   *   String jobName = "my_job_name";
    +   *   Job job = bigquery.getJob(jobName);
    +   *   if (job == null) {
    +   *     // job was not found
    +   *   }
        * }
    -   * }
    + *
    * * @throws BigQueryException upon failure */ @@ -1314,14 +1399,17 @@ TableResult listTableData( * *

    Example of getting a job. * - *

    {@code
    -   * String jobName = "my_job_name";
    -   * JobId jobIdObject = JobId.of(jobName);
    -   * Job job = bigquery.getJob(jobIdObject);
    -   * if (job == null) {
    -   *   // job was not found
    +   * 
    +   * {
    +   *   @code
    +   *   String jobName = "my_job_name";
    +   *   JobId jobIdObject = JobId.of(jobName);
    +   *   Job job = bigquery.getJob(jobIdObject);
    +   *   if (job == null) {
    +   *     // job was not found
    +   *   }
        * }
    -   * }
    + *
    * * @throws BigQueryException upon failure */ @@ -1332,12 +1420,15 @@ TableResult listTableData( * *

    Example of listing jobs, specifying the page size. * - *

    {@code
    -   * Page jobs = bigquery.listJobs(JobListOption.pageSize(100));
    -   * for (Job job : jobs.iterateAll()) {
    -   *   // do something with the job
    +   * 
    +   * {
    +   *   @code
    +   *   Page jobs = bigquery.listJobs(JobListOption.pageSize(100));
    +   *   for (Job job : jobs.iterateAll()) {
    +   *     // do something with the job
    +   *   }
        * }
    -   * }
    + *
    * * @throws BigQueryException upon failure */ @@ -1352,15 +1443,18 @@ TableResult listTableData( * *

    Example of cancelling a job. * - *

    {@code
    -   * String jobName = "my_job_name";
    -   * boolean success = bigquery.cancel(jobName);
    -   * if (success) {
    -   *   // job was cancelled
    -   * } else {
    -   *   // job was not found
    +   * 
    +   * {
    +   *   @code
    +   *   String jobName = "my_job_name";
    +   *   boolean success = bigquery.cancel(jobName);
    +   *   if (success) {
    +   *     // job was cancelled
    +   *   } else {
    +   *     // job was not found
    +   *   }
        * }
    -   * }
    + *
    * * @return {@code true} if cancel was requested successfully, {@code false} if the job was not * found @@ -1378,16 +1472,19 @@ TableResult listTableData( * *

    Example of cancelling a job. * - *

    {@code
    -   * String jobName = "my_job_name";
    -   * JobId jobId = JobId.of(jobName);
    -   * boolean success = bigquery.cancel(jobId);
    -   * if (success) {
    -   *   // job was cancelled
    -   * } else {
    -   *   // job was not found
    +   * 
    +   * {
    +   *   @code
    +   *   String jobName = "my_job_name";
    +   *   JobId jobId = JobId.of(jobName);
    +   *   boolean success = bigquery.cancel(jobId);
    +   *   if (success) {
    +   *     // job was cancelled
    +   *   } else {
    +   *     // job was not found
    +   *   }
        * }
    -   * }
    + *
    * * @return {@code true} if cancel was requested successfully, {@code false} if the job was not * found @@ -1406,19 +1503,22 @@ TableResult listTableData( * *

    Example of running a query. * - *

    {@code
    -   * // BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
    -   * String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
    -   * QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build();
    -   *
    -   * // Print the results.
    -   * for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) {
    -   *   for (FieldValue val : row) {
    -   *     System.out.printf("%s,", val.toString());
    +   * 
    +   * {
    +   *   @code
    +   *   // BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
    +   *   String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
    +   *   QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build();
    +   *
    +   *   // Print the results.
    +   *   for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) {
    +   *     for (FieldValue val : row) {
    +   *       System.out.printf("%s,", val.toString());
    +   *     }
    +   *     System.out.printf("\n");
        *   }
    -   *   System.out.printf("\n");
        * }
    -   * }
    + *
    * * @throws BigQueryException upon failure * @throws InterruptedException if the current thread gets interrupted while waiting for the query @@ -1463,50 +1563,56 @@ TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption... * *

    Example of creating a channel with which to write to a table. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * String csvData = "StringValue1\nStringValue2\n";
    -   * TableId tableId = TableId.of(datasetName, tableName);
    -   * WriteChannelConfiguration writeChannelConfiguration =
    -   *     WriteChannelConfiguration.newBuilder(tableId).setFormatOptions(FormatOptions.csv()).build();
    -   * TableDataWriteChannel writer = bigquery.writer(writeChannelConfiguration);
    -   * // Write data to writer
    -   * try {
    -   *   writer.write(ByteBuffer.wrap(csvData.getBytes(Charsets.UTF_8)));
    -   * } finally {
    -   *   writer.close();
    +   * 
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   String csvData = "StringValue1\nStringValue2\n";
    +   *   TableId tableId = TableId.of(datasetName, tableName);
    +   *   WriteChannelConfiguration writeChannelConfiguration = WriteChannelConfiguration.newBuilder(tableId)
    +   *       .setFormatOptions(FormatOptions.csv()).build();
    +   *   TableDataWriteChannel writer = bigquery.writer(writeChannelConfiguration);
    +   *   // Write data to writer
    +   *   try {
    +   *     writer.write(ByteBuffer.wrap(csvData.getBytes(Charsets.UTF_8)));
    +   *   } finally {
    +   *     writer.close();
    +   *   }
    +   *   // Get load job
    +   *   Job job = writer.getJob();
    +   *   job = job.waitFor();
    +   *   LoadStatistics stats = job.getStatistics();
    +   *   return stats.getOutputRows();
        * }
    -   * // Get load job
    -   * Job job = writer.getJob();
    -   * job = job.waitFor();
    -   * LoadStatistics stats = job.getStatistics();
    -   * return stats.getOutputRows();
    -   * }
    + *
    * *

    Example of writing a local file to a table. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * Path csvPath = FileSystems.getDefault().getPath(".", "my-data.csv");
    -   * String location = "us";
    -   * TableId tableId = TableId.of(datasetName, tableName);
    -   * WriteChannelConfiguration writeChannelConfiguration =
    -   *     WriteChannelConfiguration.newBuilder(tableId).setFormatOptions(FormatOptions.csv()).build();
    -   * // The location must be specified; other fields can be auto-detected.
    -   * JobId jobId = JobId.newBuilder().setLocation(location).build();
    -   * TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration);
    -   * // Write data to writer
    -   * try (OutputStream stream = Channels.newOutputStream(writer)) {
    -   *   Files.copy(csvPath, stream);
    +   * 
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   Path csvPath = FileSystems.getDefault().getPath(".", "my-data.csv");
    +   *   String location = "us";
    +   *   TableId tableId = TableId.of(datasetName, tableName);
    +   *   WriteChannelConfiguration writeChannelConfiguration = WriteChannelConfiguration.newBuilder(tableId)
    +   *       .setFormatOptions(FormatOptions.csv()).build();
    +   *   // The location must be specified; other fields can be auto-detected.
    +   *   JobId jobId = JobId.newBuilder().setLocation(location).build();
    +   *   TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration);
    +   *   // Write data to writer
    +   *   try (OutputStream stream = Channels.newOutputStream(writer)) {
    +   *     Files.copy(csvPath, stream);
    +   *   }
    +   *   // Get load job
    +   *   Job job = writer.getJob();
    +   *   job = job.waitFor();
    +   *   LoadStatistics stats = job.getStatistics();
    +   *   return stats.getOutputRows();
        * }
    -   * // Get load job
    -   * Job job = writer.getJob();
    -   * job = job.waitFor();
    -   * LoadStatistics stats = job.getStatistics();
    -   * return stats.getOutputRows();
    -   * }
    + *
    * * @throws BigQueryException upon failure */ @@ -1519,29 +1625,44 @@ TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption... * *

    Example of creating a channel with which to write to a table. * - *

    {@code
    -   * String datasetName = "my_dataset_name";
    -   * String tableName = "my_table_name";
    -   * String csvData = "StringValue1\nStringValue2\n";
    -   * String location = "us";
    -   * TableId tableId = TableId.of(datasetName, tableName);
    -   * WriteChannelConfiguration writeChannelConfiguration =
    -   *     WriteChannelConfiguration.newBuilder(tableId).setFormatOptions(FormatOptions.csv()).build();
    -   * // The location must be specified; other fields can be auto-detected.
    -   * JobId jobId = JobId.newBuilder().setLocation(location).build();
    -   * TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration);
    -   * // Write data to writer
    -   * try {
    -   *   writer.write(ByteBuffer.wrap(csvData.getBytes(Charsets.UTF_8)));
    -   * } finally {
    -   *   writer.close();
    +   * 
    +   * {
    +   *   @code
    +   *   String datasetName = "my_dataset_name";
    +   *   String tableName = "my_table_name";
    +   *   String csvData = "StringValue1\nStringValue2\n";
    +   *   String location = "us";
    +   *   TableId tableId = TableId.of(datasetName, tableName);
    +   *   WriteChannelConfiguration writeChannelConfiguration = WriteChannelConfiguration.newBuilder(tableId)
    +   *       .setFormatOptions(FormatOptions.csv()).build();
    +   *   // The location must be specified; other fields can be auto-detected.
    +   *   JobId jobId = JobId.newBuilder().setLocation(location).build();
    +   *   TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration);
    +   *   // Write data to writer
    +   *   try {
    +   *     writer.write(ByteBuffer.wrap(csvData.getBytes(Charsets.UTF_8)));
    +   *   } finally {
    +   *     writer.close();
    +   *   }
    +   *   // Get load job
    +   *   Job job = writer.getJob();
    +   *   job = job.waitFor();
    +   *   LoadStatistics stats = job.getStatistics();
    +   *   return stats.getOutputRows();
        * }
    -   * // Get load job
    -   * Job job = writer.getJob();
    -   * job = job.waitFor();
    -   * LoadStatistics stats = job.getStatistics();
    -   * return stats.getOutputRows();
    -   * }
    + *
    */ TableDataWriteChannel writer(JobId jobId, WriteChannelConfiguration writeChannelConfiguration); + + /** Gets the IAM policy for a specified table. */ + Policy getIamPolicy(TableId tableId, IAMOption... options); + + /** Sets the IAM policy for a specified table. */ + Policy setIamPolicy(TableId tableId, Policy policy, IAMOption... options); + + /** + * Tests whether the caller holds specific permissions on a BigQuery table. The returned list + * represents the subset of granted permissions. + */ + List testIamPermissions(TableId table, List permissions, IAMOption... options); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index a3526077d00f..070a4c965354 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -17,6 +17,8 @@ package com.google.cloud.bigquery; import static com.google.cloud.RetryHelper.runWithRetries; +import static com.google.cloud.bigquery.PolicyHelper.convertFromApiPolicy; +import static com.google.cloud.bigquery.PolicyHelper.convertToApiPolicy; import static com.google.common.base.Preconditions.checkArgument; import static java.net.HttpURLConnection.HTTP_NOT_FOUND; @@ -33,6 +35,7 @@ import com.google.cloud.BaseService; import com.google.cloud.PageImpl; import com.google.cloud.PageImpl.NextPageFetcher; +import com.google.cloud.Policy; import com.google.cloud.RetryHelper; import com.google.cloud.RetryHelper.RetryHelperException; import com.google.cloud.Tuple; @@ -338,9 +341,11 @@ public com.google.api.services.bigquery.model.Job call() { throw createException; } - // If create RPC fails, it's still possible that the job has been successfully created, + // If create RPC fails, it's still possible that the job has been successfully + // created, // and get might work. - // We can only do this if we randomly generated the ID. Otherwise we might mistakenly + // We can only do this if we randomly generated the ID. Otherwise we might + // mistakenly // fetch a job created by someone else. Job job; try { @@ -653,7 +658,8 @@ public Table getTable(final String datasetId, final String tableId, TableOption. @Override public Table getTable(TableId tableId, TableOption... options) { - // More context about why this: https://github.com/googleapis/google-cloud-java/issues/3808 + // More context about why this: + // https://github.com/googleapis/google-cloud-java/issues/3808 final TableId completeTableId = tableId.setProjectId( Strings.isNullOrEmpty(tableId.getProject()) @@ -941,7 +947,8 @@ public InsertAllResponse insertAll(InsertAllRequest request) { requestPb.setIgnoreUnknownValues(request.ignoreUnknownValues()); requestPb.setSkipInvalidRows(request.skipInvalidRows()); requestPb.setTemplateSuffix(request.getTemplateSuffix()); - // Using an array of size 1 here to have a mutable boolean variable, which can be modified in + // Using an array of size 1 here to have a mutable boolean variable, which can + // be modified in // an anonymous inner class. final boolean[] allInsertIdsSet = {true}; List rowsPb = @@ -1249,6 +1256,86 @@ public TableDataWriteChannel writer( writeChannelConfiguration.setProjectId(getOptions().getProjectId())); } + @Override + public Policy getIamPolicy(TableId tableId, IAMOption... options) { + final TableId completeTableId = + tableId.setProjectId( + Strings.isNullOrEmpty(tableId.getProject()) + ? getOptions().getProjectId() + : tableId.getProject()); + + try { + final Map optionsMap = optionMap(options); + return convertFromApiPolicy( + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Policy call() { + return bigQueryRpc.getIamPolicy(completeTableId.getIAMResourceName(), optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock())); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public Policy setIamPolicy(TableId tableId, final Policy policy, IAMOption... options) { + final TableId completeTableId = + tableId.setProjectId( + Strings.isNullOrEmpty(tableId.getProject()) + ? getOptions().getProjectId() + : tableId.getProject()); + try { + final Map optionsMap = optionMap(options); + return convertFromApiPolicy( + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Policy call() { + return bigQueryRpc.setIamPolicy( + completeTableId.getIAMResourceName(), convertToApiPolicy(policy), optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock())); + } catch (RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @Override + public List testIamPermissions( + TableId tableId, final List permissions, IAMOption... options) { + final TableId completeTableId = + tableId.setProjectId( + Strings.isNullOrEmpty(tableId.getProject()) + ? getOptions().getProjectId() + : tableId.getProject()); + try { + final Map optionsMap = optionMap(options); + com.google.api.services.bigquery.model.TestIamPermissionsResponse response = + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.TestIamPermissionsResponse call() { + return bigQueryRpc.testIamPermissions( + completeTableId.getIAMResourceName(), permissions, optionsMap); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); + return ImmutableList.copyOf(response.getPermissions()); + } catch (RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + @VisibleForTesting static Map optionMap(Option... options) { Map optionMap = Maps.newEnumMap(BigQueryRpc.Option.class); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index ae4db388f80d..5687d789897b 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -94,6 +94,8 @@ private BigQueryOptions(Builder builder) { private static class BigQueryDefaults implements ServiceDefaults { + private static final long serialVersionUID = -4551722608999107711L; + @Override public BigQueryFactory getDefaultServiceFactory() { return DefaultBigQueryFactory.INSTANCE; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyHelper.java new file mode 100644 index 000000000000..c830bb3e3d76 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyHelper.java @@ -0,0 +1,80 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.Expr; +import com.google.cloud.Binding; +import com.google.cloud.Condition; +import com.google.cloud.Policy; +import com.google.common.collect.ImmutableList; +import java.util.ArrayList; +import java.util.List; + +class PolicyHelper { + + static Policy convertFromApiPolicy(com.google.api.services.bigquery.model.Policy apiPolicy) { + Policy.Builder policyBuilder = Policy.newBuilder(); + List bindings = apiPolicy.getBindings(); + + if (null != bindings) { + ImmutableList.Builder coreBindings = ImmutableList.builder(); + Binding.Builder bindingBuilder = Binding.newBuilder(); + for (com.google.api.services.bigquery.model.Binding binding : bindings) { + bindingBuilder.setRole(binding.getRole()); + bindingBuilder.setMembers(binding.getMembers()); + if (binding.getCondition() != null) { + Condition.Builder conditionBuilder = Condition.newBuilder(); + conditionBuilder.setTitle(binding.getCondition().getTitle()); + conditionBuilder.setDescription(binding.getCondition().getDescription()); + conditionBuilder.setExpression(binding.getCondition().getExpression()); + bindingBuilder.setCondition(conditionBuilder.build()); + } + coreBindings.add(bindingBuilder.build()); + } + policyBuilder.setBindings(coreBindings.build()); + } + if (null != apiPolicy.getVersion()) { + policyBuilder.setVersion(apiPolicy.getVersion()); + } + return policyBuilder.setEtag(apiPolicy.getEtag()).build(); + } + + static com.google.api.services.bigquery.model.Policy convertToApiPolicy(Policy policy) { + List bindings = null; + if (policy.getBindingsList().size() != 0) { + bindings = new ArrayList<>(policy.getBindingsList().size()); + + for (Binding binding : policy.getBindingsList()) { + com.google.api.services.bigquery.model.Binding apiBinding = + new com.google.api.services.bigquery.model.Binding(); + apiBinding.setRole(binding.getRole()); + apiBinding.setMembers(new ArrayList<>(binding.getMembers())); + if (binding.getCondition() != null) { + Expr expr = new Expr(); + expr.setTitle(binding.getCondition().getTitle()); + expr.setDescription(binding.getCondition().getDescription()); + expr.setExpression(binding.getCondition().getExpression()); + apiBinding.setCondition(expr); + } + bindings.add(apiBinding); + } + } + return new com.google.api.services.bigquery.model.Policy() + .setBindings(bindings) + .setEtag(policy.getEtag()) + .setVersion(policy.getVersion()); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java index f475e5070085..b74055d4f218 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java @@ -63,6 +63,12 @@ public String getTable() { return table; } + /** Returns the IAM resource name for the table. * */ + public String getIAMResourceName() { + return String.format( + "projects/%s/datasets/%s/tables/%s", getProject(), getDataset(), getTable()); + } + private TableId(String project, String dataset, String table) { checkArgument(!isNullOrEmpty(dataset), "Provided dataset is null or empty"); checkArgument(!isNullOrEmpty(table), "Provided table is null or empty"); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index 7ba0cd764f87..c0b9bb4be070 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -21,14 +21,17 @@ import com.google.api.services.bigquery.model.GetQueryResultsResponse; import com.google.api.services.bigquery.model.Job; import com.google.api.services.bigquery.model.Model; +import com.google.api.services.bigquery.model.Policy; import com.google.api.services.bigquery.model.Routine; import com.google.api.services.bigquery.model.Table; import com.google.api.services.bigquery.model.TableDataInsertAllRequest; import com.google.api.services.bigquery.model.TableDataInsertAllResponse; import com.google.api.services.bigquery.model.TableDataList; +import com.google.api.services.bigquery.model.TestIamPermissionsResponse; import com.google.cloud.ServiceRpc; import com.google.cloud.Tuple; import com.google.cloud.bigquery.BigQueryException; +import java.util.List; import java.util.Map; @InternalExtensionOnly @@ -48,7 +51,8 @@ enum Option { PARENT_JOB_ID("parentJobId"), START_INDEX("startIndex"), STATE_FILTER("stateFilter"), - TIMEOUT("timeoutMs"); + TIMEOUT("timeoutMs"), + REQUESTED_POLICY_VERSION("requestedPolicyVersion"); private final String value; @@ -300,4 +304,27 @@ Job write( long destOffset, int length, boolean last); + + /** + * Returns the IAM Policy for the specified resource, using Policy V1. + * + * @throws BigQueryException upon failure + */ + Policy getIamPolicy(String resourceId, Map options); + + /** + * Updates the IAM policy for the specified resource. + * + * @throws BigQueryException upon failure + */ + Policy setIamPolicy(String resourceId, Policy policy, Map options); + + /** + * Tests whether the caller holds the provided permissions for the specified resource. Returns the + * subset of permissions the caller actually holds. + * + * @throws BigQueryException upon failure + */ + TestIamPermissionsResponse testIamPermissions( + String resourceId, List permissions, Map options); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 391209fcb80e..9aaef6db5f79 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -37,6 +37,8 @@ import com.google.api.services.bigquery.model.Dataset; import com.google.api.services.bigquery.model.DatasetList; import com.google.api.services.bigquery.model.DatasetReference; +import com.google.api.services.bigquery.model.GetIamPolicyRequest; +import com.google.api.services.bigquery.model.GetPolicyOptions; import com.google.api.services.bigquery.model.GetQueryResultsResponse; import com.google.api.services.bigquery.model.Job; import com.google.api.services.bigquery.model.JobList; @@ -45,14 +47,18 @@ import com.google.api.services.bigquery.model.ListRoutinesResponse; import com.google.api.services.bigquery.model.Model; import com.google.api.services.bigquery.model.ModelReference; +import com.google.api.services.bigquery.model.Policy; import com.google.api.services.bigquery.model.Routine; import com.google.api.services.bigquery.model.RoutineReference; +import com.google.api.services.bigquery.model.SetIamPolicyRequest; import com.google.api.services.bigquery.model.Table; import com.google.api.services.bigquery.model.TableDataInsertAllRequest; import com.google.api.services.bigquery.model.TableDataInsertAllResponse; import com.google.api.services.bigquery.model.TableDataList; import com.google.api.services.bigquery.model.TableList; import com.google.api.services.bigquery.model.TableReference; +import com.google.api.services.bigquery.model.TestIamPermissionsRequest; +import com.google.api.services.bigquery.model.TestIamPermissionsResponse; import com.google.cloud.Tuple; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; @@ -71,7 +77,8 @@ public class HttpBigQueryRpc implements BigQueryRpc { public static final String DEFAULT_PROJECTION = "full"; private static final String BASE_RESUMABLE_URI = "https://www.googleapis.com/upload/bigquery/v2/projects/"; - // see: https://cloud.google.com/bigquery/loading-data-post-request#resume-upload + // see: + // https://cloud.google.com/bigquery/loading-data-post-request#resume-upload private static final int HTTP_RESUME_INCOMPLETE = 308; private final BigQueryOptions options; private final Bigquery bigquery; @@ -657,4 +664,43 @@ public Job write( throw translate(ex); } } + + @Override + public Policy getIamPolicy(String resourceId, Map options) { + try { + GetIamPolicyRequest policyRequest = new GetIamPolicyRequest(); + if (null != Option.REQUESTED_POLICY_VERSION.getLong(options)) { + policyRequest = + policyRequest.setOptions( + new GetPolicyOptions() + .setRequestedPolicyVersion( + Option.REQUESTED_POLICY_VERSION.getLong(options).intValue())); + } + return bigquery.tables().getIamPolicy(resourceId, policyRequest).execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public Policy setIamPolicy(String resourceId, Policy policy, Map options) { + try { + SetIamPolicyRequest policyRequest = new SetIamPolicyRequest().setPolicy(policy); + return bigquery.tables().setIamPolicy(resourceId, policyRequest).execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + + @Override + public TestIamPermissionsResponse testIamPermissions( + String resourceId, List permissions, Map options) { + try { + TestIamPermissionsRequest permissionsRequest = + new TestIamPermissionsRequest().setPermissions(permissions); + return bigquery.tables().testIamPermissions(resourceId, permissionsRequest).execute(); + } catch (IOException ex) { + throw translate(ex); + } + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 6435ff91a485..b04aa4577ae7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -40,6 +40,7 @@ import com.google.api.services.bigquery.model.TableDataInsertAllResponse; import com.google.api.services.bigquery.model.TableDataList; import com.google.api.services.bigquery.model.TableRow; +import com.google.cloud.Policy; import com.google.cloud.ServiceOptions; import com.google.cloud.Tuple; import com.google.cloud.bigquery.BigQuery.QueryResultsOption; @@ -486,6 +487,15 @@ public class BigQueryImplTest { .setMaxBadRecords(10) .build(); + private static final Policy SAMPLE_IAM_POLICY = + Policy.newBuilder() + .addIdentity( + com.google.cloud.Role.of("roles/bigquery.dataViewer"), + com.google.cloud.Identity.allUsers()) + .setEtag(ETAG) + .setVersion(1) + .build(); + private BigQueryOptions options; private BigQueryRpcFactory rpcFactoryMock; private BigQueryRpc bigqueryRpcMock; @@ -2227,4 +2237,48 @@ public void testWriteChannel() throws IOException { verify(bigqueryRpcMock) .write(eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); } + + @Test + public void testGetIamPolicy() { + final String resourceId = + String.format("projects/%s/datasets/%s/tables/%s", PROJECT, DATASET, TABLE); + final com.google.api.services.bigquery.model.Policy apiPolicy = + PolicyHelper.convertToApiPolicy(SAMPLE_IAM_POLICY); + when(bigqueryRpcMock.getIamPolicy(resourceId, EMPTY_RPC_OPTIONS)).thenReturn(apiPolicy); + bigquery = options.getService(); + Policy policy = bigquery.getIamPolicy(TABLE_ID); + assertEquals(policy, SAMPLE_IAM_POLICY); + verify(bigqueryRpcMock).getIamPolicy(resourceId, EMPTY_RPC_OPTIONS); + } + + @Test + public void testSetIamPolicy() { + final String resourceId = + String.format("projects/%s/datasets/%s/tables/%s", PROJECT, DATASET, TABLE); + final com.google.api.services.bigquery.model.Policy apiPolicy = + PolicyHelper.convertToApiPolicy(SAMPLE_IAM_POLICY); + when(bigqueryRpcMock.setIamPolicy(resourceId, apiPolicy, EMPTY_RPC_OPTIONS)) + .thenReturn(apiPolicy); + bigquery = options.getService(); + Policy returnedPolicy = bigquery.setIamPolicy(TABLE_ID, SAMPLE_IAM_POLICY); + assertEquals(returnedPolicy, SAMPLE_IAM_POLICY); + verify(bigqueryRpcMock).setIamPolicy(resourceId, apiPolicy, EMPTY_RPC_OPTIONS); + } + + @Test + public void testTestIamPermissions() { + final String resourceId = + String.format("projects/%s/datasets/%s/tables/%s", PROJECT, DATASET, TABLE); + final List checkedPermissions = ImmutableList.of("foo", "bar", "baz"); + final List grantedPermissions = ImmutableList.of("foo", "bar"); + final com.google.api.services.bigquery.model.TestIamPermissionsResponse response = + new com.google.api.services.bigquery.model.TestIamPermissionsResponse() + .setPermissions(grantedPermissions); + when(bigqueryRpcMock.testIamPermissions(resourceId, checkedPermissions, EMPTY_RPC_OPTIONS)) + .thenReturn(response); + bigquery = options.getService(); + List perms = bigquery.testIamPermissions(TABLE_ID, checkedPermissions); + assertEquals(perms, grantedPermissions); + verify(bigqueryRpcMock).testIamPermissions(resourceId, checkedPermissions, EMPTY_RPC_OPTIONS); + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyHelperTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyHelperTest.java new file mode 100644 index 000000000000..291df79fdeaf --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyHelperTest.java @@ -0,0 +1,81 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.api.services.bigquery.model.Binding; +import com.google.cloud.Identity; +import com.google.cloud.Policy; +import com.google.cloud.Role; +import com.google.common.collect.ImmutableList; +import org.junit.Test; + +public class PolicyHelperTest { + + public static final String ETAG = "etag"; + public static final String ROLE1 = "roles/bigquery.admin"; + public static final String ROLE2 = "roles/bigquery.dataEditor"; + public static final String USER1 = "user1@gmail.com"; + public static final String USER2 = "user2@gmail.com"; + + static final com.google.api.services.bigquery.model.Policy API_POLICY = + new com.google.api.services.bigquery.model.Policy() + .setBindings( + ImmutableList.of( + new Binding() + .setRole(ROLE1) + .setMembers(ImmutableList.of(String.format("user:%s", USER1))), + new Binding() + .setRole(ROLE2) + .setMembers(ImmutableList.of(String.format("user:%s", USER2), "allUsers")))) + .setEtag(ETAG) + .setVersion(1); + static final com.google.api.services.bigquery.model.Policy API_POLICY_NO_BINDINGS = + new com.google.api.services.bigquery.model.Policy().setEtag(ETAG).setVersion(1); + + static final Policy IAM_POLICY = + Policy.newBuilder() + .addIdentity(Role.of(ROLE1), Identity.user(USER1)) + .addIdentity(Role.of(ROLE2), Identity.user(USER2), Identity.allUsers()) + .setEtag(ETAG) + .setVersion(1) + .build(); + static final Policy IAM_POLICY_NO_BINDINGS = + Policy.newBuilder().setEtag(ETAG).setVersion(1).build(); + + @Test + public void testConversionWithBindings() { + assertEquals(IAM_POLICY, PolicyHelper.convertFromApiPolicy(API_POLICY)); + assertEquals(API_POLICY, PolicyHelper.convertToApiPolicy(IAM_POLICY)); + assertEquals( + IAM_POLICY, PolicyHelper.convertFromApiPolicy(PolicyHelper.convertToApiPolicy(IAM_POLICY))); + assertEquals( + API_POLICY, PolicyHelper.convertToApiPolicy(PolicyHelper.convertFromApiPolicy(API_POLICY))); + } + + @Test + public void testConversionNoBindings() { + assertEquals(IAM_POLICY_NO_BINDINGS, PolicyHelper.convertFromApiPolicy(API_POLICY_NO_BINDINGS)); + assertEquals(API_POLICY_NO_BINDINGS, PolicyHelper.convertToApiPolicy(IAM_POLICY_NO_BINDINGS)); + assertEquals( + IAM_POLICY_NO_BINDINGS, + PolicyHelper.convertFromApiPolicy(PolicyHelper.convertToApiPolicy(IAM_POLICY_NO_BINDINGS))); + assertEquals( + API_POLICY_NO_BINDINGS, + PolicyHelper.convertToApiPolicy(PolicyHelper.convertFromApiPolicy(API_POLICY_NO_BINDINGS))); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java index 1166c3229772..dc28ff8610e5 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java @@ -24,6 +24,8 @@ public class TableIdTest { private static final TableId TABLE = TableId.of("dataset", "table"); private static final TableId TABLE_COMPLETE = TableId.of("project", "dataset", "table"); + private static final String TABLE_IAM_RESOURCE_NAME = + "projects/project/datasets/dataset/tables/table"; @Test public void testOf() { @@ -33,6 +35,7 @@ public void testOf() { assertEquals("project", TABLE_COMPLETE.getProject()); assertEquals("dataset", TABLE_COMPLETE.getDataset()); assertEquals("table", TABLE_COMPLETE.getTable()); + assertEquals(TABLE_IAM_RESOURCE_NAME, TABLE_COMPLETE.getIAMResourceName()); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index cd69d8afd01b..fcbb84fda5f9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -22,6 +22,7 @@ import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @@ -31,7 +32,10 @@ import com.google.auth.oauth2.GoogleCredentials; import com.google.auth.oauth2.ServiceAccountCredentials; import com.google.cloud.Date; +import com.google.cloud.Identity; +import com.google.cloud.Policy; import com.google.cloud.RetryOption; +import com.google.cloud.Role; import com.google.cloud.ServiceOptions; import com.google.cloud.bigquery.Acl; import com.google.cloud.bigquery.BigQuery; @@ -741,6 +745,36 @@ public void testCreateMaterializedViewTable() { assertTrue(remoteTable.delete()); } + @Test + public void testTableIAM() { + String tableName = "test_iam_table"; + TableId tableId = TableId.of(DATASET, tableName); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder().setSchema(TABLE_SCHEMA).build(); + + bigquery.create(TableInfo.of(tableId, tableDefinition)); + + // Check we have some of the expected default permissions as we created the table. + List checkedPerms = + ImmutableList.of( + "bigquery.tables.get", "bigquery.tables.getData", "bigquery.tables.update"); + List grantedPerms = bigquery.testIamPermissions(tableId, checkedPerms); + assertEquals(checkedPerms, grantedPerms); + + // get and modify policy + Policy policy = bigquery.getIamPolicy(tableId); + Policy editedPolicy = + policy + .toBuilder() + .addIdentity(Role.of("roles/bigquery.dataViewer"), Identity.allUsers()) + .build(); + Policy updatedPolicy = bigquery.setIamPolicy(tableId, editedPolicy); + // We should have a different etag, so the policies aren't strictly equal + assertNotEquals(updatedPolicy, editedPolicy); + // However, the bindings should be. + assertEquals(updatedPolicy.getBindingsList(), editedPolicy.getBindingsList()); + } + @Test public void testListTables() { String tableName = "test_list_tables"; From a0e760fbb1f5a9b169045ceba2dcf682d4736995 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 25 Aug 2020 22:41:22 +0530 Subject: [PATCH 0756/3441] feat: add jmh benchmark module (#686) * add jmh benchmark * fix typo for jar name * update README.md with additional instructions to run Benchmarks * update benchmarkMode to AverageTime and reduce iterations Co-authored-by: stephwang --- benchmark/README.md | 20 ++++ benchmark/pom.xml | 77 +++++++++++++++ .../QueryBenchmark.java | 96 +++++++++++++++++++ pom.xml | 6 ++ 4 files changed, 199 insertions(+) create mode 100644 benchmark/README.md create mode 100644 benchmark/pom.xml create mode 100644 benchmark/src/main/java/com.google.cloud.bigquery/QueryBenchmark.java diff --git a/benchmark/README.md b/benchmark/README.md new file mode 100644 index 000000000000..c29bf0781a5b --- /dev/null +++ b/benchmark/README.md @@ -0,0 +1,20 @@ +Benchmarking +============ + +To build all of the benchmarks: +``` +# Run from benchmark directory +cd benchmark +mvn clean install +``` + +Set `GOOGLE_APPLICATION_CREDENTIALS`: +``` +export GOOGLE_APPLICATION_CREDENTIALS=path/to/service_account.json +``` + +To run a benchmark jar, run the following command +``` +# Run from project root directory + java -jar target/benchmark.jar +``` diff --git a/benchmark/pom.xml b/benchmark/pom.xml new file mode 100644 index 000000000000..da9cd186368f --- /dev/null +++ b/benchmark/pom.xml @@ -0,0 +1,77 @@ + + + 4.0.0 + benchmark + + google-cloud-bigquery-parent + com.google.cloud + 1.116.11-SNAPSHOT + + + + UTF-8 + 1.23 + benchmark + + + + + com.google.cloud + google-cloud-bigquery + + + org.openjdk.jmh + jmh-core + ${jmh.version} + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh.version} + provided + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.1 + + + package + + shade + + + ${uberjar.name} + + + org.openjdk.jmh.Main + + + + + + *:* + + module-info.class + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + + diff --git a/benchmark/src/main/java/com.google.cloud.bigquery/QueryBenchmark.java b/benchmark/src/main/java/com.google.cloud.bigquery/QueryBenchmark.java new file mode 100644 index 000000000000..79aa484d8b69 --- /dev/null +++ b/benchmark/src/main/java/com.google.cloud.bigquery/QueryBenchmark.java @@ -0,0 +1,96 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import java.util.List; +import java.util.concurrent.TimeUnit; +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Fork; +import org.openjdk.jmh.annotations.Measurement; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Param; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.Setup; +import org.openjdk.jmh.annotations.State; +import org.openjdk.jmh.annotations.Warmup; +import org.openjdk.jmh.infra.Blackhole; + +@Fork(value = 1) +@BenchmarkMode(Mode.AverageTime) +@Warmup(iterations = 5) +@Measurement(iterations = 5) +@State(Scope.Benchmark) +@OutputTimeUnit(TimeUnit.MILLISECONDS) +public class QueryBenchmark { + + private static final String NYCYELLOWLIMIT1K = "SELECT * FROM `nyc-tlc.yellow.trips` LIMIT 10000"; + private static final String NYCYELLOWLIMIT10K = + "SELECT * FROM `nyc-tlc.yellow.trips` LIMIT 100000"; + private static final String NYCYELLOWLIMIT100K = + "SELECT * FROM `nyc-tlc.yellow.trips` LIMIT 1000000"; + private static final String WIKISAMPLESORDEREDLIMIT1K = + "SELECT title FROM `bigquery-public-data.samples.wikipedia` ORDER BY title LIMIT 1000"; + private static final String CURRENTTIMESTAMP = "SELECT CURRENT_TIMESTAMP() as ts"; + private static final String SESSIONUSER = "SELECT SESSION_USER() as ts"; + private static final String LITERALS = "SELECT 1 as i, 3.14 as pi"; + private static final String INVALIDQUERY = + "CREATE OR REPLACE SELECT * FROM UPDATE TABLE SET `nyc-tlc.yellow.trips`"; + + private BigQuery bigquery; + + @Setup + public void setUp() { + this.bigquery = BigQueryOptions.getDefaultInstance().getService(); + } + + @State(Scope.Benchmark) + public static class QueryParams { + + @Param({ + NYCYELLOWLIMIT1K, + NYCYELLOWLIMIT10K, + NYCYELLOWLIMIT100K, + WIKISAMPLESORDEREDLIMIT1K, + CURRENTTIMESTAMP, + SESSIONUSER, + LITERALS, + INVALIDQUERY + }) + public String queries; + } + + private void queryPerform(String queries, Blackhole blackhole) throws Exception { + TableResult result = + bigquery.query(QueryJobConfiguration.newBuilder(queries).setUseLegacySql(false).build()); + for (List row : result.iterateAll()) { + blackhole.consume(row.size()); + } + while (result.hasNextPage()) { + result = result.getNextPage(); + for (List row : result.iterateAll()) { + blackhole.consume(row.size()); + } + } + } + + @Benchmark + public void query(QueryParams queryParams, Blackhole blackhole) throws Exception { + queryPerform(queryParams.queries, blackhole); + } +} diff --git a/pom.xml b/pom.xml index f1a136c174bd..f831cbd5aab0 100644 --- a/pom.xml +++ b/pom.xml @@ -215,5 +215,11 @@ samples + + benchmark + + benchmark + + From 8bd5c5cf113b7dbdb0d69bf99352cfdd5fee0f2e Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 25 Aug 2020 14:24:03 -0400 Subject: [PATCH 0757/3441] build: skip benchmark module in release artifact publishing (#691) --- benchmark/pom.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index da9cd186368f..21e5d4e19a0e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -72,6 +72,22 @@ + + org.apache.maven.plugins + maven-deploy-plugin + 2.8.2 + + true + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.8 + + true + + From c1f5533ee25907cad5fbae589b5dd08418e3f42b Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 25 Aug 2020 11:28:03 -0700 Subject: [PATCH 0758/3441] fix: temporarily disable reporting to unblock releases (#692) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/00009db7-1f0c-4b7b-8206-8bb9cd926177/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/968465a1cad496e1292ef4584a054a35f756ff94 --- .kokoro/release/stage.sh | 5 +++-- synth.metadata | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh index 3c482cbc55f1..d19191fc896c 100755 --- a/.kokoro/release/stage.sh +++ b/.kokoro/release/stage.sh @@ -16,8 +16,9 @@ set -eo pipefail # Start the releasetool reporter -python3 -m pip install gcp-releasetool -python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script +# Disable reporting due to issue observed with Kokoro blocking releases +# python3 -m pip install gcp-releasetool +# python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script source $(dirname "$0")/common.sh MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml diff --git a/synth.metadata b/synth.metadata index 696ab4f12c2d..b470fc6c2fa8 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "fe5abc054c5eb7907ef58d5aa3285b3f10211aa4" + "sha": "a0e760fbb1f5a9b169045ceba2dcf682d4736995" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "9602086c6c5b05db77950c7f7495a2a3868f3537" + "sha": "968465a1cad496e1292ef4584a054a35f756ff94" } } ], From f7f348fdadde3376becb798e6800a70f36929a17 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 25 Aug 2020 20:30:37 +0200 Subject: [PATCH 0759/3441] build(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.8.1 (#688) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 21e5d4e19a0e..2a7225b159a0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -37,7 +37,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.0 + 3.8.1 org.apache.maven.plugins From acc57f1d0bfbae09c85f5f882c9d8999ec377f47 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 25 Aug 2020 20:30:59 +0200 Subject: [PATCH 0760/3441] build(deps): update dependency org.apache.maven.plugins:maven-shade-plugin to v3.2.4 (#689) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2a7225b159a0..a92903ca26be 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -42,7 +42,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.1 + 3.2.4 package From 44f7632feaeb1e1de8a1f68db972c48786e244de Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 25 Aug 2020 20:32:09 +0200 Subject: [PATCH 0761/3441] deps: update jmh.version to v1.25 (#690) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a92903ca26be..3d639ab757cd 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.23 + 1.25 benchmark From 73763a56fc4913f95e5e15f98b4aeb309cb46ecf Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2020 15:21:36 -0400 Subject: [PATCH 0762/3441] chore: release 1.117.0 (#685) * chore: updated CHANGELOG.md [ci skip] * chore: updated README.md [ci skip] * chore: updated versions.txt [ci skip] * chore: updated samples/pom.xml [ci skip] * chore: updated google-cloud-bigquery/pom.xml [ci skip] * chore: updated samples/snapshot/pom.xml [ci skip] * chore: updated samples/install-without-bom/pom.xml [ci skip] * chore: updated samples/snippets/pom.xml [ci skip] * chore: updated pom.xml [ci skip] * chore: updated benchmark/pom.xml Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 34 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 50981494e64d..9be9c50b58e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,31 @@ # Changelog +## [1.117.0](https://www.github.com/googleapis/java-bigquery/compare/v1.116.10...v1.117.0) (2020-08-25) + + +### Features + +* add jmh benchmark module ([#686](https://www.github.com/googleapis/java-bigquery/issues/686)) ([a0e760f](https://www.github.com/googleapis/java-bigquery/commit/a0e760fbb1f5a9b169045ceba2dcf682d4736995)) +* support for Table ACLs ([#653](https://www.github.com/googleapis/java-bigquery/issues/653)) ([f0e67d8](https://www.github.com/googleapis/java-bigquery/commit/f0e67d8a63fdfe62bcd285c3bbb04cae79386229)) + + +### Bug Fixes + +* temporarily disable reporting to unblock releases ([#692](https://www.github.com/googleapis/java-bigquery/issues/692)) ([c1f5533](https://www.github.com/googleapis/java-bigquery/commit/c1f5533ee25907cad5fbae589b5dd08418e3f42b)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200805-1.30.10 ([#672](https://www.github.com/googleapis/java-bigquery/issues/672)) ([3e578f4](https://www.github.com/googleapis/java-bigquery/commit/3e578f4337e2d0c41237294ea7889d9efd0eddb0)) +* update jmh.version to v1.25 ([#690](https://www.github.com/googleapis/java-bigquery/issues/690)) ([44f7632](https://www.github.com/googleapis/java-bigquery/commit/44f7632feaeb1e1de8a1f68db972c48786e244de)) + + +### Documentation + +* update samples README.md ([#667](https://www.github.com/googleapis/java-bigquery/issues/667)) ([60d904b](https://www.github.com/googleapis/java-bigquery/commit/60d904b1fc4625f490f9357c486bfe5ef4f36f2c)) +* **samples:** add samples lint job and fix lint issues ([#684](https://www.github.com/googleapis/java-bigquery/issues/684)) ([f08becc](https://www.github.com/googleapis/java-bigquery/commit/f08beccecd00f792c33ac3d2e29a696bd9411fb6)) +* **samples:** fix checkstyle errors ([#682](https://www.github.com/googleapis/java-bigquery/issues/682)) ([fe5abc0](https://www.github.com/googleapis/java-bigquery/commit/fe5abc054c5eb7907ef58d5aa3285b3f10211aa4)), closes [#681](https://www.github.com/googleapis/java-bigquery/issues/681) + ### [1.116.10](https://www.github.com/googleapis/java-bigquery/compare/v1.116.9...v1.116.10) (2020-08-11) diff --git a/README.md b/README.md index 39db0a4a7e01..72ae05454cad 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.116.10' +compile 'com.google.cloud:google-cloud-bigquery:1.117.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.116.10" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.117.0" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7e236995a530..ba660f54265f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.116.11-SNAPSHOT + 1.117.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.116.11-SNAPSHOT + 1.117.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f831cbd5aab0..0023f89c3445 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.116.11-SNAPSHOT + 1.117.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.116.11-SNAPSHOT + 1.117.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9a048cd091ce..7fd7a760e304 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.116.11-SNAPSHOT + 1.117.0 diff --git a/versions.txt b/versions.txt index f1c6f4b7ad97..e1bb350d90fe 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.116.10:1.116.11-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.117.0:1.117.0 \ No newline at end of file From 225c8c16b30ec95cc54858e3324570be1eed65cd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 25 Aug 2020 22:12:04 +0200 Subject: [PATCH 0763/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery-parent to v1.117.0 (#694) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-bigquery-parent](https://togithub.com/googleapis/java-bigquery) | minor | `1.116.11-SNAPSHOT` -> `1.117.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3d639ab757cd..ee06b9b3b6fd 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.116.11-SNAPSHOT + 1.117.0 From 8c47912f8486d5a45fa94e560bd73975061e9aaa Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 26 Aug 2020 11:34:22 -0400 Subject: [PATCH 0764/3441] chore: benchmark README.md updates (#693) --- benchmark/README.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/benchmark/README.md b/benchmark/README.md index c29bf0781a5b..41e9c2fdac9f 100644 --- a/benchmark/README.md +++ b/benchmark/README.md @@ -4,17 +4,18 @@ Benchmarking To build all of the benchmarks: ``` # Run from benchmark directory -cd benchmark -mvn clean install + cd benchmark + mvn clean install ``` Set `GOOGLE_APPLICATION_CREDENTIALS`: ``` -export GOOGLE_APPLICATION_CREDENTIALS=path/to/service_account.json + export GOOGLE_APPLICATION_CREDENTIALS=path/to/service_account.json ``` To run a benchmark jar, run the following command ``` -# Run from project root directory - java -jar target/benchmark.jar +# Run from benchmark directory + cd benchmark + java -jar target/benchmark.jar ``` From 6edbce16bab18e1e71c443a3f428606f9301224a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 26 Aug 2020 11:34:45 -0400 Subject: [PATCH 0765/3441] chore: release 1.117.1-SNAPSHOT (#695) * chore: updated versions.txt [ci skip] * chore: updated samples/pom.xml [ci skip] * chore: updated samples/install-without-bom/pom.xml [ci skip] * chore: updated samples/snippets/pom.xml [ci skip] * chore: updated benchmark/pom.xml [ci skip] * chore: updated google-cloud-bigquery/pom.xml [ci skip] * chore: updated pom.xml [ci skip] * chore: updated samples/snapshot/pom.xml Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ba660f54265f..349eb0041b84 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.117.0 + 1.117.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.117.0 + 1.117.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0023f89c3445..34e0dc5d9e9b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.117.0 + 1.117.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.117.0 + 1.117.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7fd7a760e304..64d90b05f20e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.117.0 + 1.117.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index e1bb350d90fe..4e3d113b4c6c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.117.0:1.117.0 \ No newline at end of file +google-cloud-bigquery:1.117.0:1.117.1-SNAPSHOT \ No newline at end of file From 6da67de9d2c3cc7487ae95af2dae66e8f1bd58c1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 26 Aug 2020 17:35:18 +0200 Subject: [PATCH 0766/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.117.0 (#696) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 1794fea8c8c4..77f32f4d6e55 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.116.10 + 1.117.0 From e3a021b24cbcdfe23617da1662f438fb2d8699fb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 26 Aug 2020 17:35:34 +0200 Subject: [PATCH 0767/3441] deps: update jmh.version to v1.25.1 (#698) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ee06b9b3b6fd..33bd3ae9a93b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.25 + 1.25.1 benchmark From 863c9e1d7da8a63154677fb32954e2048dd48e9e Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 26 Aug 2020 22:30:49 +0530 Subject: [PATCH 0768/3441] fix: npe for destination table (#699) --- .../src/main/java/com/google/cloud/bigquery/Job.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index de018291d9d2..2d859b046eaa 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -308,7 +308,10 @@ public TableResult getQueryResults(QueryResultsOption... options) return new EmptyTableResult(response.getSchema()); } - TableId table = ((QueryJobConfiguration) getConfiguration()).getDestinationTable(); + TableId table = + ((QueryJobConfiguration) getConfiguration()).getDestinationTable() == null + ? ((QueryJobConfiguration) job.getConfiguration()).getDestinationTable() + : ((QueryJobConfiguration) getConfiguration()).getDestinationTable(); return bigquery.listTableData( table, response.getSchema(), listOptions.toArray(new TableDataListOption[0])); } From 94be1ec5d6cefd6e0f5f59ca52b51d5b3c87bc3b Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 27 Aug 2020 09:33:27 -0700 Subject: [PATCH 0769/3441] build: switch to release-publish app for notifying GitHub of release status (#702) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * build(java): switch to release-publish app for notifying GitHub of release status Source-Author: Jeff Ching Source-Date: Wed Aug 26 21:48:06 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 019c7168faa0e56619f792693a8acdb30d6de19b Source-Link: https://github.com/googleapis/synthtool/commit/019c7168faa0e56619f792693a8acdb30d6de19b --- .kokoro/release/stage.cfg | 31 +++---------------------------- .kokoro/release/stage.sh | 5 ++--- README.md | 2 +- synth.metadata | 4 ++-- 4 files changed, 8 insertions(+), 34 deletions(-) diff --git a/.kokoro/release/stage.cfg b/.kokoro/release/stage.cfg index 20c09f1c53cf..8cd8055a995b 100644 --- a/.kokoro/release/stage.cfg +++ b/.kokoro/release/stage.cfg @@ -13,32 +13,7 @@ action { } } -# Fetch the token needed for reporting release status to GitHub -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "yoshi-automation-github-key" - } - } -} - -# Fetch magictoken to use with Magic Github Proxy -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "releasetool-magictoken" - } - } -} - -# Fetch api key to use with Magic Github Proxy -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "magic-github-proxy-api-key" - } - } +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" } diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh index d19191fc896c..3c482cbc55f1 100755 --- a/.kokoro/release/stage.sh +++ b/.kokoro/release/stage.sh @@ -16,9 +16,8 @@ set -eo pipefail # Start the releasetool reporter -# Disable reporting due to issue observed with Kokoro blocking releases -# python3 -m pip install gcp-releasetool -# python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script +python3 -m pip install gcp-releasetool +python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script source $(dirname "$0")/common.sh MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml diff --git a/README.md b/README.md index 72ae05454cad..0d096b94129f 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.116.10 + 1.117.0 ``` diff --git a/synth.metadata b/synth.metadata index b470fc6c2fa8..19764839c7f0 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "a0e760fbb1f5a9b169045ceba2dcf682d4736995" + "sha": "863c9e1d7da8a63154677fb32954e2048dd48e9e" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "968465a1cad496e1292ef4584a054a35f756ff94" + "sha": "019c7168faa0e56619f792693a8acdb30d6de19b" } } ], From 5a092023099e168ab25b69714c0d6e32d71d869d Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 27 Aug 2020 17:39:52 -0400 Subject: [PATCH 0770/3441] ci: lower codecov baseline (#704) --- codecov.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/codecov.yaml b/codecov.yaml index 5724ea9478d7..c00182958c09 100644 --- a/codecov.yaml +++ b/codecov.yaml @@ -2,3 +2,6 @@ codecov: ci: - source.cloud.google.com +coverage: + round: down + range: "50...100" \ No newline at end of file From 127414c4f2cb7ea50dfc0f5cbfcb7f581cf67e63 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 27 Aug 2020 23:40:10 +0200 Subject: [PATCH 0771/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200818-1.30.10 (#705) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 34e0dc5d9e9b..1c92189a7a39 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20200805-1.30.10 + v2-rev20200818-1.30.10 From 7fdcd38f912e5a80568386d01a3720d90a731225 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 27 Aug 2020 18:24:03 -0400 Subject: [PATCH 0772/3441] ci: ignore codecov file (#707) --- synth.py | 1 + 1 file changed, 1 insertion(+) diff --git a/synth.py b/synth.py index 69d7bf56597c..00317b7e5237 100644 --- a/synth.py +++ b/synth.py @@ -25,4 +25,5 @@ '.kokoro/nightly/java11-samples.cfg', '.kokoro/presubmit/java8-samples.cfg', '.kokoro/presubmit/java11-samples.cfg', + 'codecov.yaml' ]) From 0be6a2b8ba47a912d8af7326ebc910d02393f6f5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 28 Aug 2020 03:49:06 +0200 Subject: [PATCH 0773/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.112.0 (#708) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1c92189a7a39..73864e77dac6 100644 --- a/pom.xml +++ b/pom.xml @@ -117,7 +117,7 @@ com.google.cloud google-cloud-storage - 1.111.2 + 1.112.0 test From 51dcde5987d6e73308dcf5683779604b87d35198 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 19:42:02 +0000 Subject: [PATCH 0774/3441] chore: release 1.117.1 (#700) :robot: I have created a release \*beep\* \*boop\* --- ### [1.117.1](https://www.github.com/googleapis/java-bigquery/compare/v1.117.0...v1.117.1) (2020-08-28) ### Bug Fixes * npe for destination table ([#699](https://www.github.com/googleapis/java-bigquery/issues/699)) ([863c9e1](https://www.github.com/googleapis/java-bigquery/commit/863c9e1d7da8a63154677fb32954e2048dd48e9e)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20200818-1.30.10 ([#705](https://www.github.com/googleapis/java-bigquery/issues/705)) ([127414c](https://www.github.com/googleapis/java-bigquery/commit/127414c4f2cb7ea50dfc0f5cbfcb7f581cf67e63)) * update dependency com.google.cloud:google-cloud-storage to v1.112.0 ([#708](https://www.github.com/googleapis/java-bigquery/issues/708)) ([0be6a2b](https://www.github.com/googleapis/java-bigquery/commit/0be6a2b8ba47a912d8af7326ebc910d02393f6f5)) * update jmh.version to v1.25.1 ([#698](https://www.github.com/googleapis/java-bigquery/issues/698)) ([e3a021b](https://www.github.com/googleapis/java-bigquery/commit/e3a021b24cbcdfe23617da1662f438fb2d8699fb)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 14 ++++++++++++++ README.md | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 22 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9be9c50b58e9..da2135b94d8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +### [1.117.1](https://www.github.com/googleapis/java-bigquery/compare/v1.117.0...v1.117.1) (2020-08-28) + + +### Bug Fixes + +* npe for destination table ([#699](https://www.github.com/googleapis/java-bigquery/issues/699)) ([863c9e1](https://www.github.com/googleapis/java-bigquery/commit/863c9e1d7da8a63154677fb32954e2048dd48e9e)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200818-1.30.10 ([#705](https://www.github.com/googleapis/java-bigquery/issues/705)) ([127414c](https://www.github.com/googleapis/java-bigquery/commit/127414c4f2cb7ea50dfc0f5cbfcb7f581cf67e63)) +* update dependency com.google.cloud:google-cloud-storage to v1.112.0 ([#708](https://www.github.com/googleapis/java-bigquery/issues/708)) ([0be6a2b](https://www.github.com/googleapis/java-bigquery/commit/0be6a2b8ba47a912d8af7326ebc910d02393f6f5)) +* update jmh.version to v1.25.1 ([#698](https://www.github.com/googleapis/java-bigquery/issues/698)) ([e3a021b](https://www.github.com/googleapis/java-bigquery/commit/e3a021b24cbcdfe23617da1662f438fb2d8699fb)) + ## [1.117.0](https://www.github.com/googleapis/java-bigquery/compare/v1.116.10...v1.117.0) (2020-08-25) diff --git a/README.md b/README.md index 0d096b94129f..dcc6b6c8818b 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.117.0' +compile 'com.google.cloud:google-cloud-bigquery:1.117.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.117.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.117.1" ``` [//]: # ({x-version-update-end}) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 349eb0041b84..55f7440faca8 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.117.1-SNAPSHOT + 1.117.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.117.1-SNAPSHOT + 1.117.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 73864e77dac6..d670fdd60582 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.117.1-SNAPSHOT + 1.117.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.117.1-SNAPSHOT + 1.117.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 64d90b05f20e..9500e6a4c72f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.117.1-SNAPSHOT + 1.117.1 diff --git a/versions.txt b/versions.txt index 4e3d113b4c6c..3c03f04a4f42 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.117.0:1.117.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.117.1:1.117.1 \ No newline at end of file From 6938fe303b47cb004fd0b2cea5b12fd2293708dd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 31 Aug 2020 23:03:11 +0200 Subject: [PATCH 0775/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v10 (#709) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 546674e1c1d1..a5bc167f06ee 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 9.1.0 + 10.0.0 pom import From 9c56d2d5bdda7f2bbdbce3c8a42a28b20db3599e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 31 Aug 2020 23:04:02 +0200 Subject: [PATCH 0776/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.117.1 (#710) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | patch | `1.117.0` -> `1.117.1` | --- ### Release Notes
    googleapis/java-bigquery ### [`v1.117.1`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​11171-httpswwwgithubcomgoogleapisjava-bigquerycomparev11170v11171-2020-08-28) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.117.0...v1.117.1)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 77f32f4d6e55..0df8439e2091 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.117.0 + 1.117.1 From 5d9c5431ef1c6fb69eae29eb4cbd6f530e1c9d77 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 31 Aug 2020 23:08:39 +0200 Subject: [PATCH 0777/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery-parent to v1.117.1 (#711) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 33bd3ae9a93b..d91d191dc160 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.117.0 + 1.117.1 From 06e876bc546c36a16131b8f1f34bae2399748806 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 21:20:02 +0000 Subject: [PATCH 0778/3441] chore: release 1.117.2-SNAPSHOT (#712) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 55f7440faca8..8859171e33bb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.117.1 + 1.117.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.117.1 + 1.117.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d670fdd60582..a4a83c168a99 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.117.1 + 1.117.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.117.1 + 1.117.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9500e6a4c72f..204946e267a8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.117.1 + 1.117.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 3c03f04a4f42..ff135b4e8b59 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.117.1:1.117.1 \ No newline at end of file +google-cloud-bigquery:1.117.1:1.117.2-SNAPSHOT \ No newline at end of file From fd47eb37ef178626bf4dbec5a0b6bfb10d7fb58f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 31 Aug 2020 14:23:19 -0700 Subject: [PATCH 0779/3441] chore: bump libraries-bom version in readme (#713) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 4 ++-- synth.metadata | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index dcc6b6c8818b..c766d38a224b 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 9.1.0 + 10.0.0 pom import @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.117.0 + 1.117.1 ``` diff --git a/synth.metadata b/synth.metadata index 19764839c7f0..e6430196e51e 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "863c9e1d7da8a63154677fb32954e2048dd48e9e" + "sha": "5d9c5431ef1c6fb69eae29eb4cbd6f530e1c9d77" } }, { @@ -73,7 +73,6 @@ "CONTRIBUTING.md", "LICENSE", "README.md", - "codecov.yaml", "java.header", "license-checks.xml", "renovate.json", From c24a245d55c79ee988175fff13cc88a373f05ee0 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 31 Aug 2020 18:46:02 -0400 Subject: [PATCH 0780/3441] chore: update google-cloud-bigquery-parent version in benchmark pom during release (#714) Caused by: #710 and #711 (after google-cloud-bigquery release) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d91d191dc160..41261c0ae0d8 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.117.1 + 1.117.1 From b75b95b7ca338da0900c53856c280c9acc140cd5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 1 Sep 2020 22:08:08 +0200 Subject: [PATCH 0781/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.9.0 (#715) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | minor | `0.8.6` -> `0.9.0` | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v0.9.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​090-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare086v090-2020-08-31) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v0.8.6...v0.9.0) ##### Bug Fixes - temporarily disable reporting to unblock releases ([#​129](https://www.github.com/googleapis/java-shared-dependencies/issues/129)) ([7fff6f2](https://www.github.com/googleapis/java-shared-dependencies/commit/7fff6f2c94a19ba998d8cd47e8be5a6333808df8)) ##### Dependencies - update dependency com.google.protobuf:protobuf-bom to v3.13.0 ([#​126](https://www.github.com/googleapis/java-shared-dependencies/issues/126)) ([908063f](https://www.github.com/googleapis/java-shared-dependencies/commit/908063f9b820dd3195b15537189e45be0d4acbbb)) - update dependency io.grpc:grpc-bom to v1.31.1 ([#​124](https://www.github.com/googleapis/java-shared-dependencies/issues/124)) ([553a339](https://www.github.com/googleapis/java-shared-dependencies/commit/553a3393f5bede0e90e16e2d0d87daa2b936ab32)) - update google.common-protos.version to v1.18.1 ([#​119](https://www.github.com/googleapis/java-shared-dependencies/issues/119)) ([05ad27e](https://www.github.com/googleapis/java-shared-dependencies/commit/05ad27e35fe082e148d377315b10943b187b5670)) - update google.core.version to v1.93.8 ([f72cef3](https://www.github.com/googleapis/java-shared-dependencies/commit/f72cef3d78a036e2b2434bf08b0a75d57b2fa139)) - update iam.version to v0.15.0 ([#​118](https://www.github.com/googleapis/java-shared-dependencies/issues/118)) ([1409a16](https://www.github.com/googleapis/java-shared-dependencies/commit/1409a16826d3fd4a5d9cbcbe46ea4b4af8687a5c)) - update iam.version to v1 (major) ([#​120](https://www.github.com/googleapis/java-shared-dependencies/issues/120)) ([a6243a0](https://www.github.com/googleapis/java-shared-dependencies/commit/a6243a02129e42fec804b5769fb8e3f334ba84ce)) ##### [0.8.6](https://www.github.com/googleapis/java-shared-dependencies/compare/v0.8.5...v0.8.6) (2020-08-07) ##### Dependencies - update gax to v1.58.2 ([#​115](https://www.github.com/googleapis/java-shared-dependencies/issues/115)) ([84b48b4](https://www.github.com/googleapis/java-shared-dependencies/commit/84b48b4e77a4b5b4a2db6030609abe241d5ee2e1)) ##### [0.8.5](https://www.github.com/googleapis/java-shared-dependencies/compare/v0.8.4...v0.8.5) (2020-08-07) ##### Dependencies - update gax to v1.58.1 ([#​111](https://www.github.com/googleapis/java-shared-dependencies/issues/111)) ([93a1691](https://www.github.com/googleapis/java-shared-dependencies/commit/93a16915b863a610ffdabe0e23aec58c4ae5f4f1)) ##### [0.8.4](https://www.github.com/googleapis/java-shared-dependencies/compare/v0.8.3...v0.8.4) (2020-08-04) ##### Dependencies - update core dependencies ([#​104](https://www.github.com/googleapis/java-shared-dependencies/issues/104)) ([5046818](https://www.github.com/googleapis/java-shared-dependencies/commit/504681803d2bba888404acffe9a8853746501358)) - update dependency com.google.api:api-common to v1.10.0 ([#​101](https://www.github.com/googleapis/java-shared-dependencies/issues/101)) ([6472fac](https://www.github.com/googleapis/java-shared-dependencies/commit/6472face89700e3f2f982c04a5e88801876580be)) - update dependency com.google.protobuf:protobuf-bom to v3.12.4 ([#​103](https://www.github.com/googleapis/java-shared-dependencies/issues/103)) ([885bd0e](https://www.github.com/googleapis/java-shared-dependencies/commit/885bd0ef3c9e344bd1fc60e0f3264995064001d9)) ##### [0.8.3](https://www.github.com/googleapis/java-shared-dependencies/compare/v0.8.2...v0.8.3) (2020-07-09) ##### Dependencies - update core dependencies ([#​96](https://www.github.com/googleapis/java-shared-dependencies/issues/96)) ([978e69e](https://www.github.com/googleapis/java-shared-dependencies/commit/978e69e9b5999630354ea204c034be2d6b8a2d80)) - update dependency com.google.api-client:google-api-client-bom to v1.30.10 ([#​99](https://www.github.com/googleapis/java-shared-dependencies/issues/99)) ([65c9cce](https://www.github.com/googleapis/java-shared-dependencies/commit/65c9ccea34275fa6f9599043d6e06df169bc433a)) - update dependency com.google.api:api-common to v1.9.3 ([#​91](https://www.github.com/googleapis/java-shared-dependencies/issues/91)) ([2a23a50](https://www.github.com/googleapis/java-shared-dependencies/commit/2a23a50ee5c73b581a02171048e20b14f999949f)) ##### [0.8.2](https://www.github.com/googleapis/java-shared-dependencies/compare/v0.8.1...v0.8.2) (2020-07-01) ##### Dependencies - update dependency com.google.auth:google-auth-library-bom to v0.21.0 ([#​86](https://www.github.com/googleapis/java-shared-dependencies/issues/86)) ([dc9d717](https://www.github.com/googleapis/java-shared-dependencies/commit/dc9d717fdec4f0962141ba34e98f5737ec3bc57a)) - update dependency com.google.http-client:google-http-client-bom to v1.36.0 ([#​89](https://www.github.com/googleapis/java-shared-dependencies/issues/89)) ([12437d7](https://www.github.com/googleapis/java-shared-dependencies/commit/12437d7392a430299c3372d18d2650b62be60eaf)) - update dependency io.grpc:grpc-bom to v1.30.1 ([#​82](https://www.github.com/googleapis/java-shared-dependencies/issues/82)) ([a5199a0](https://www.github.com/googleapis/java-shared-dependencies/commit/a5199a02d5bde75e86349b37c1efae64a6379a40)) - update dependency io.grpc:grpc-bom to v1.30.2 ([#​85](https://www.github.com/googleapis/java-shared-dependencies/issues/85)) ([084d18d](https://www.github.com/googleapis/java-shared-dependencies/commit/084d18daab010c6b0be04e67b42ca8ab8ba5f3d5)) ##### [0.8.1](https://www.github.com/googleapis/java-shared-dependencies/compare/v0.8.0...v0.8.1) (2020-06-13) ##### Reverts - Revert "feat: mark javax annotations scope as provided ([#​70](https://togithub.com/googleapis/java-shared-dependencies/issues/70))" ([#​75](https://togithub.com/googleapis/java-shared-dependencies/issues/75)) ([d2f23ec](https://www.github.com/googleapis/java-shared-dependencies/commit/d2f23ecae56a1ec07b1217f0fca5347dd0f0406b)), closes [#​70](https://www.github.com/googleapis/java-shared-dependencies/issues/70) [#​75](https://www.github.com/googleapis/java-shared-dependencies/issues/75)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a4a83c168a99..7e565d302506 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.8.6 + 0.9.0 pom import From 70417fc9b718b4972ce793f67eb6a535f3f5a66d Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 2 Sep 2020 18:10:32 +0530 Subject: [PATCH 0782/3441] refactor(samples): add logs and remove redundant code (#716) * refactor(samples): add logs and remove redundant code * refactor(samples): fix npe for tablename --- .../UpdateTableRequirePartitionFilter.java | 0 .../bigquery/AddColumnLoadAppendIT.java | 14 +++-- .../example/bigquery/AddEmptyColumnIT.java | 32 ++++++++---- .../example/bigquery/AuthDriveScopeIT.java | 13 ++++- .../com/example/bigquery/AuthSnippetsIT.java | 11 +++- .../bigquery/AuthorizedViewTutorialIT.java | 10 +++- .../com/example/bigquery/BrowseTableIT.java | 35 ++++++++----- .../com/example/bigquery/CancelJobIT.java | 10 +++- .../bigquery/CopyMultipleTablesIT.java | 31 ++++++----- .../com/example/bigquery/CopyTableCmekIT.java | 14 +++-- .../com/example/bigquery/CopyTableIT.java | 51 ++++++++++--------- .../bigquery/CreateClusteredTableIT.java | 20 ++++++-- .../com/example/bigquery/CreateDatasetIT.java | 23 ++++++--- .../com/example/bigquery/CreateJobIT.java | 10 +++- .../com/example/bigquery/CreateModelIT.java | 10 +++- .../bigquery/CreatePartitionedTableIT.java | 10 +++- .../CreateRangePartitionedTableIT.java | 10 +++- .../example/bigquery/CreateRoutineDdlIT.java | 10 +++- .../com/example/bigquery/CreateRoutineIT.java | 10 +++- .../example/bigquery/CreateTableCmekIT.java | 10 +++- .../com/example/bigquery/CreateTableIT.java | 20 +++++--- .../bigquery/CreateTableWithoutSchemaIT.java | 10 +++- .../com/example/bigquery/CreateViewIT.java | 14 +++-- .../com/example/bigquery/DatasetExistsIT.java | 14 +++-- .../com/example/bigquery/DdlCreateViewIT.java | 10 +++- .../bigquery/DeleteDatasetAndContentsIT.java | 14 +++-- .../com/example/bigquery/DeleteDatasetIT.java | 11 +++- .../bigquery/DeleteLabelDatasetIT.java | 14 +++-- .../example/bigquery/DeleteLabelTableIT.java | 14 +++-- .../com/example/bigquery/DeleteModelIT.java | 14 +++-- .../com/example/bigquery/DeleteRoutineIT.java | 14 +++-- .../com/example/bigquery/DeleteTableIT.java | 23 ++++++--- .../bigquery/ExtractTableCompressedIT.java | 10 +++- .../example/bigquery/ExtractTableToCsvIT.java | 11 +++- .../bigquery/ExtractTableToJsonIT.java | 11 +++- .../example/bigquery/GetDatasetInfoIT.java | 11 +++- .../example/bigquery/GetDatasetLabelsIT.java | 14 +++-- .../java/com/example/bigquery/GetJobIT.java | 14 +++-- .../java/com/example/bigquery/GetModelIT.java | 14 +++-- .../com/example/bigquery/GetRoutineIT.java | 14 +++-- .../java/com/example/bigquery/GetTableIT.java | 11 +++- .../example/bigquery/GetTableLabelsIT.java | 14 +++-- .../java/com/example/bigquery/GetViewIT.java | 14 +++-- .../example/bigquery/GrantViewAccessIT.java | 14 +++-- .../bigquery/InsertingDataTypesIT.java | 10 +++- .../com/example/bigquery/LabelDatasetIT.java | 14 +++-- .../com/example/bigquery/LabelTableIT.java | 14 +++-- .../bigquery/ListDatasetsByLabelIT.java | 14 +++-- .../com/example/bigquery/ListDatasetsIT.java | 11 +++- .../java/com/example/bigquery/ListJobsIT.java | 14 +++-- .../com/example/bigquery/ListModelsIT.java | 14 +++-- .../com/example/bigquery/ListRoutinesIT.java | 14 +++-- .../com/example/bigquery/ListTablesIT.java | 11 +++- .../example/bigquery/LoadAvroFromGcsIT.java | 14 +++-- .../bigquery/LoadAvroFromGcsTruncateIT.java | 14 +++-- .../bigquery/LoadCsvFromGcsAutodetectIT.java | 14 +++-- .../example/bigquery/LoadCsvFromGcsIT.java | 14 +++-- .../bigquery/LoadCsvFromGcsTruncateTest.java | 14 +++-- .../bigquery/LoadJsonFromGcsAutodetectIT.java | 14 +++-- .../bigquery/LoadJsonFromGcsCmekIT.java | 10 +++- .../example/bigquery/LoadJsonFromGcsIT.java | 14 +++-- .../bigquery/LoadJsonFromGcsTruncateIT.java | 10 +++- .../com/example/bigquery/LoadLocalFileIT.java | 37 ++++++++------ .../example/bigquery/LoadOrcFromGcsIT.java | 10 +++- .../bigquery/LoadOrcFromGcsTruncateIT.java | 16 +++--- .../com/example/bigquery/LoadParquetIT.java | 11 +++- .../bigquery/LoadParquetReplaceTableIT.java | 11 +++- .../bigquery/LoadPartitionedTableIT.java | 23 +++++---- .../bigquery/LoadTableClusteredIT.java | 10 +++- .../bigquery/NestedRepeatedSchemaIT.java | 20 +++++--- .../com/example/bigquery/QueryBatchIT.java | 10 +++- .../bigquery/QueryClusteredTableIT.java | 11 +++- .../bigquery/QueryDestinationTableCmekIT.java | 14 +++-- .../example/bigquery/QueryDisableCacheIT.java | 10 +++- .../com/example/bigquery/QueryDryRunIT.java | 10 +++- .../bigquery/QueryExternalGcsPermIT.java | 14 +++-- .../bigquery/QueryExternalGcsTempIT.java | 10 +++- .../bigquery/QueryExternalSheetsPermIT.java | 14 +++-- .../bigquery/QueryExternalSheetsTempIT.java | 10 +++- .../java/com/example/bigquery/QueryIT.java | 10 +++- .../example/bigquery/QueryLargeResultsIT.java | 10 +++- .../example/bigquery/QueryPaginationIT.java | 10 +++- .../bigquery/QueryPartitionedTableIT.java | 14 +++-- .../com/example/bigquery/QueryScriptIT.java | 10 +++- .../example/bigquery/QueryTotalRowsIT.java | 10 +++- .../bigquery/QueryWithArrayParametersIT.java | 10 +++- .../bigquery/QueryWithNamedParametersIT.java | 11 +++- .../QueryWithNamedTypesParametersIT.java | 10 +++- .../QueryWithPositionalParametersIT.java | 11 +++- .../QueryWithPositionalTypesParametersIT.java | 10 +++- .../QueryWithStructsParametersIT.java | 11 +++- .../QueryWithTimestampParametersIT.java | 10 +++- .../example/bigquery/QuickstartSampleIT.java | 11 +++- .../bigquery/RelaxColumnLoadAppendIT.java | 14 +++-- .../example/bigquery/RelaxColumnModeIT.java | 39 ++++++++------ .../example/bigquery/RelaxTableQueryIT.java | 35 ++++++++----- .../example/bigquery/RunLegacyQueryIT.java | 11 +++- .../example/bigquery/SaveQueryToTableIT.java | 21 +++++--- .../com/example/bigquery/SimpleAppIT.java | 11 +++- .../com/example/bigquery/SimpleQueryIT.java | 11 +++- .../com/example/bigquery/TableExistsIT.java | 14 +++-- .../example/bigquery/TableInsertRowsIT.java | 14 +++-- .../TableInsertRowsWithoutRowIdsIT.java | 14 +++-- .../com/example/bigquery/UndeleteTableIT.java | 14 +++-- .../bigquery/UpdateDatasetAccessIT.java | 26 ++++++---- .../bigquery/UpdateDatasetDescriptionIT.java | 26 ++++++---- .../bigquery/UpdateDatasetExpirationIT.java | 26 ++++++---- .../UpdateDatasetPartitionExpirationIT.java | 14 +++-- .../bigquery/UpdateModelDescriptionIT.java | 14 +++-- .../com/example/bigquery/UpdateRoutineIT.java | 14 +++-- .../example/bigquery/UpdateTableCmekIT.java | 14 +++-- .../bigquery/UpdateTableDescriptionIT.java | 29 +++++++---- .../example/bigquery/UpdateTableDmlIT.java | 14 +++-- .../bigquery/UpdateTableExpirationIT.java | 35 ++++++++----- .../UpdateTableRequirePartitionFilterIT.java | 14 +++-- .../example/bigquery/UpdateViewQueryIT.java | 14 +++-- 116 files changed, 1230 insertions(+), 489 deletions(-) rename samples/snippets/src/{test => main}/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java (100%) diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java similarity index 100% rename from samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java rename to samples/snippets/src/main/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java diff --git a/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java b/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java index 280f7cce0cc0..461c6dbe3792 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java @@ -26,6 +26,8 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -34,10 +36,12 @@ public class AddColumnLoadAppendIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private Schema schema; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -58,6 +62,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a test table. @@ -69,17 +74,16 @@ public void setUp() { .build()); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java b/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java index ffb8871530dc..f5ce9add7129 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java @@ -25,14 +25,20 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class AddEmptyColumnIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -48,20 +54,13 @@ public static void checkRequirements() { } @Before - public void setUp() throws Exception { + public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); - } - - @After - public void tearDown() { - System.setOut(null); - } - @Test - public void addEmptyColumn() { - String tableName = "AddEmptyColumnTestTable_" + UUID.randomUUID().toString().replace('-', '_'); + tableName = "AddEmptyColumnTestTable_" + UUID.randomUUID().toString().replace('-', '_'); Schema schema = Schema.of( Field.of("booleanField", LegacySQLTypeName.BOOLEAN), @@ -69,7 +68,20 @@ public void addEmptyColumn() { // Create table in dataset for testing CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + } + @After + public void tearDown() { + // clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void addEmptyColumn() { String randomColumnName = "new_" + UUID.randomUUID().toString().replace('-', '_'); AddEmptyColumn.addEmptyColumn(randomColumnName, BIGQUERY_DATASET_NAME, tableName); assertThat(bout.toString()).contains("Empty column successfully added to table"); diff --git a/samples/snippets/src/test/java/com/example/bigquery/AuthDriveScopeIT.java b/samples/snippets/src/test/java/com/example/bigquery/AuthDriveScopeIT.java index 15d05dec6ae8..a846f7be8f74 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/AuthDriveScopeIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/AuthDriveScopeIT.java @@ -21,24 +21,33 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class AuthDriveScopeIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before - public void setUp() throws Exception { + public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/AuthSnippetsIT.java b/samples/snippets/src/test/java/com/example/bigquery/AuthSnippetsIT.java index ec770558074e..f365e4c5dd54 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/AuthSnippetsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/AuthSnippetsIT.java @@ -20,6 +20,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -30,19 +32,26 @@ @RunWith(JUnit4.class) @SuppressWarnings("checkstyle:abbreviationaswordinname") public class AuthSnippetsIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/AuthorizedViewTutorialIT.java b/samples/snippets/src/test/java/com/example/bigquery/AuthorizedViewTutorialIT.java index bd8fa6076efc..89889e03f52c 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/AuthorizedViewTutorialIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/AuthorizedViewTutorialIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,12 +31,14 @@ public class AuthorizedViewTutorialIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String sourceDatasetId; private String sourceTableId; private String sharedDatasetId; private String sharedViewId; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); @@ -60,6 +64,7 @@ public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -68,7 +73,10 @@ public void tearDown() { // Clean up DeleteDataset.deleteDataset(PROJECT_ID, sourceDatasetId); DeleteDataset.deleteDataset(PROJECT_ID, sharedDatasetId); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java index f7bc16c67127..ad4853363266 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java @@ -25,14 +25,20 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class BrowseTableIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -51,30 +57,31 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); - } - - @After - public void tearDown() { - System.setOut(null); - } - - @Test - public void testBrowseTable() { - String tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); + tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); Schema schema = Schema.of( Field.of("stringField", StandardSQLTypeName.STRING), Field.of("booleanField", StandardSQLTypeName.BOOL)); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + } - BrowseTable.browseTable(BIGQUERY_DATASET_NAME, tableName); - - assertThat(bout.toString()).contains("Query ran successfully"); - + @After + public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testBrowseTable() { + BrowseTable.browseTable(BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Query ran successfully"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/CancelJobIT.java b/samples/snippets/src/test/java/com/example/bigquery/CancelJobIT.java index 507e05aad0f2..49d9be275dc7 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CancelJobIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CancelJobIT.java @@ -20,25 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class CancelJobIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java b/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java index bcf7475c74bf..685db52d1d8f 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java @@ -22,18 +22,22 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class CopyMultipleTablesIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); - private static final String BIGQUERY_TABLE1 = System.getenv("BIGQUERY_TABLE1"); - private static final String BIGQUERY_TABLE2 = System.getenv("BIGQUERY_TABLE2"); private static void requireEnvVar(String varName) { assertNotNull( @@ -44,33 +48,32 @@ private static void requireEnvVar(String varName) { @BeforeClass public static void checkRequirements() { requireEnvVar("BIGQUERY_DATASET_NAME"); - requireEnvVar("BIGQUERY_TABLE1"); - requireEnvVar("BIGQUERY_TABLE2"); } @Before public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); + // Create a new destination table for each test since existing table cannot be overwritten + tableName = "COPY_MULTIPLE_TABLE_TEST" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, null); } @After public void tearDown() { - System.setOut(null); + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test public void testCopyMultipleTables() { - // Create a new destination table for each test since existing table cannot be overwritten - String generatedTableName = - "gcloud_test_table_temp_" + UUID.randomUUID().toString().replace('-', '_'); - CreateTable.createTable(BIGQUERY_DATASET_NAME, generatedTableName, null); - - CopyMultipleTables.copyMultipleTables(BIGQUERY_DATASET_NAME, generatedTableName); + CopyMultipleTables.copyMultipleTables(BIGQUERY_DATASET_NAME, tableName); assertThat(bout.toString()).contains("Table copied successfully."); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, generatedTableName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java b/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java index bd9ab8ebef5e..d5b12a0e21f0 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java @@ -26,6 +26,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -33,10 +35,12 @@ public class CopyTableCmekIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String sourceTableName; private String destinationTableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); private static final String BIGQUERY_KMS_KEY_NAME = requireEnvVar("BIGQUERY_KMS_KEY_NAME"); @@ -59,6 +63,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); sourceTableName = "MY_SOURCE_TABLE_CMEK_TEST" + UUID.randomUUID().toString().substring(0, 8); @@ -71,10 +76,6 @@ public void setUp() { EncryptionConfiguration configuration = EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); CreateTableCmek.createTableCmek(BIGQUERY_DATASET_NAME, sourceTableName, schema, configuration); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After @@ -82,7 +83,10 @@ public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, sourceTableName); DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, destinationTableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java index 18a2529ed63d..ccf150740411 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java @@ -25,14 +25,21 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class CopyTableIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String sourceTable; + private String destinationTable; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -51,41 +58,37 @@ public static void checkRequirements() { public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); - } - - @After - public void tearDown() { - System.setOut(null); - } - - @Test - public void testCopyTable() { // Create a new destination and source table for each test since existing table cannot be // overwritten - String generatedDestTableName = - "gcloud_test_table_temp_" + UUID.randomUUID().toString().replace('-', '_'); - String generatedSourceTableName = - "gcloud_test_table_temp_" + UUID.randomUUID().toString().replace('-', '_'); - + sourceTable = "SOURCE_TABLE_TEST" + UUID.randomUUID().toString().substring(0, 8); + destinationTable = "DESTINATION_TABLE_TEST" + UUID.randomUUID().toString().substring(0, 8); // Adding an arbitrary table schema so we aren't copying nothing. Schema schema = Schema.of( Field.of("stringField", StandardSQLTypeName.STRING), Field.of("booleanField", StandardSQLTypeName.BOOL)); - CreateTable.createTable(BIGQUERY_DATASET_NAME, generatedDestTableName, schema); - CreateTable.createTable(BIGQUERY_DATASET_NAME, generatedSourceTableName, schema); + CreateTable.createTable(BIGQUERY_DATASET_NAME, destinationTable, schema); + CreateTable.createTable(BIGQUERY_DATASET_NAME, sourceTable, schema); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, destinationTable); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, sourceTable); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + @Test + public void testCopyTable() { CopyTable.copyTable( - BIGQUERY_DATASET_NAME, - generatedSourceTableName, - BIGQUERY_DATASET_NAME, - generatedDestTableName); + BIGQUERY_DATASET_NAME, sourceTable, BIGQUERY_DATASET_NAME, destinationTable); assertThat(bout.toString()).contains("Table copied successfully."); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, generatedDestTableName); - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, generatedSourceTableName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java index 26e45c83dd88..2ea6cc53622d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java @@ -25,14 +25,21 @@ import com.google.common.collect.ImmutableList; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class CreateClusteredTableIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -49,19 +56,25 @@ public static void checkRequirements() { @Before public void setUp() { + tableName = "MY_CLUSTERED_TABLE_TEST" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test public void createClusteredTable() { - String tableName = "MY_CLUSTERED_TABLE"; Schema schema = Schema.of( Field.of("name", StandardSQLTypeName.STRING), @@ -72,8 +85,5 @@ public void createClusteredTable() { BIGQUERY_DATASET_NAME, tableName, schema, ImmutableList.of("name", "post_abbr")); assertThat(bout.toString()).contains("Clustered table created successfully"); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetIT.java index 276eae0463d0..1fbf4f5464c6 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetIT.java @@ -22,14 +22,20 @@ import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class CreateDatasetIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String datasetName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String GOOGLE_CLOUD_PROJECT = System.getenv("GOOGLE_CLOUD_PROJECT"); @@ -46,23 +52,26 @@ public static void checkRequirements() { @Before public void setUp() { + datasetName = RemoteBigQueryHelper.generateDatasetName(); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // Clean up + DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, datasetName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test public void testCreateDataset() { - String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); - CreateDataset.createDataset(generatedDatasetName); - assertThat(bout.toString()).contains(generatedDatasetName + " created successfully"); - - // Clean up - DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, generatedDatasetName); + CreateDataset.createDataset(datasetName); + assertThat(bout.toString()).contains(datasetName + " created successfully"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateJobIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateJobIT.java index abd7017a44a0..91242e922cd8 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateJobIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateJobIT.java @@ -20,25 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class CreateJobIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java index 1fd747464fbe..52af26303dc7 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class CreateModelIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String modelName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,6 +57,7 @@ public void setUp() { modelName = "MY_MODEL_NAME_TEST_" + UUID.randomUUID().toString().replace('-', '_'); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -60,7 +65,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteModel.deleteModel(BIGQUERY_DATASET_NAME, modelName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java index 2e15e65e8a05..7a73c783d32e 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,9 +34,11 @@ public class CreatePartitionedTableIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -54,6 +58,7 @@ public void setUp() { tableName = "MY_PARTITIONED_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -61,7 +66,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateRangePartitionedTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateRangePartitionedTableIT.java index a07497849108..37a2a3bcf876 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateRangePartitionedTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateRangePartitionedTableIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,9 +34,11 @@ public class CreateRangePartitionedTableIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -56,6 +60,7 @@ public void setUp() { tableName = "RANGE_PARTITIONED_TABLE_TEST" + UUID.randomUUID().toString().replace('-', '_'); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -63,7 +68,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDdlIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDdlIT.java index 82c6288a1c80..ae362f90f1cb 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDdlIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDdlIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class CreateRoutineDdlIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String routineName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -55,6 +59,7 @@ public void setUp() { routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -62,7 +67,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineIT.java index 30b4d68f4ee9..6568c3324141 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class CreateRoutineIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String routineName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,6 +57,7 @@ public void setUp() { routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -60,7 +65,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java index 12d81f876f5c..fd35c390e070 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java @@ -26,6 +26,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -33,9 +35,11 @@ public class CreateTableCmekIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); private static final String BIGQUERY_KMS_KEY_NAME = requireEnvVar("BIGQUERY_KMS_KEY_NAME"); @@ -59,6 +63,7 @@ public void setUp() { tableName = "MY_TABLE_CMEK_TEST" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -66,7 +71,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java index d2f214515e6c..af5104c1c6e7 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java @@ -25,14 +25,20 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class CreateTableIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -51,26 +57,28 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); + tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); } @After public void tearDown() { - System.setOut(null); + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test public void testCreateTable() { - String tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); Schema schema = Schema.of( Field.of("stringField", StandardSQLTypeName.STRING), Field.of("booleanField", StandardSQLTypeName.BOOL)); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); - assertThat(bout.toString()).contains("Table created successfully"); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateTableWithoutSchemaIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateTableWithoutSchemaIT.java index 49f9818dc413..dd686d17985b 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateTableWithoutSchemaIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateTableWithoutSchemaIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class CreateTableWithoutSchemaIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,6 +57,7 @@ public void setUp() { tableName = "MY_TABLE_TEST" + UUID.randomUUID().toString().replace('-', '_'); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -60,7 +65,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateViewIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateViewIT.java index 02cfb623b335..6b4c7e38a701 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateViewIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateViewIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,10 +34,12 @@ public class CreateViewIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private String viewName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -56,6 +60,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); @@ -67,10 +72,6 @@ public void setUp() { Field.of("stringField", StandardSQLTypeName.STRING), Field.of("booleanField", StandardSQLTypeName.BOOL)); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After @@ -78,7 +79,10 @@ public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, viewName); DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/DatasetExistsIT.java b/samples/snippets/src/test/java/com/example/bigquery/DatasetExistsIT.java index e4fee79f3e44..45b6b6b175ad 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DatasetExistsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DatasetExistsIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class DatasetExistsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String datasetName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); @@ -52,21 +56,21 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary dataset datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateDataset.createDataset(datasetName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // delete a temporary dataset DeleteDataset.deleteDataset(PROJECT_ID, datasetName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/DdlCreateViewIT.java b/samples/snippets/src/test/java/com/example/bigquery/DdlCreateViewIT.java index 4220259803e8..146e5670dfb9 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DdlCreateViewIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DdlCreateViewIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class DdlCreateViewIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String viewName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -55,6 +59,7 @@ public void setUp() { viewName = "MY_VIEW_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -62,7 +67,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, viewName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetAndContentsIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetAndContentsIT.java index 1ee233f901f6..6151e309b2a8 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetAndContentsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetAndContentsIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class DeleteDatasetAndContentsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String datasetName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); @@ -52,19 +56,19 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary dataset datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateDataset.createDataset(datasetName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetIT.java index ebd8103b90c6..27ab2e58db87 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetIT.java @@ -25,24 +25,33 @@ import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class DeleteDatasetIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java index 956d1be2d653..1136e18f2ce4 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class DeleteLabelDatasetIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String datasetName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); @@ -52,23 +56,23 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary dataset datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateDataset.createDataset(datasetName); // add a label on dataset LabelDataset.labelDataset(datasetName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // delete a temporary dataset DeleteDataset.deleteDataset(PROJECT_ID, datasetName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java index 4556042fa4e1..f1ad6be6369a 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -30,9 +32,11 @@ public class DeleteLabelTableIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,23 +57,23 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary table tableName = "MY_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); // add label on a table LabelTable.labelTable(BIGQUERY_DATASET_NAME, tableName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // delete a temporary table DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java index 6fed1902b44d..f33ad1d0325d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class DeleteModelIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String modelName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -52,6 +56,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a new model to be deleted @@ -73,15 +78,14 @@ public void setUp() { + "SELECT 'b' AS f1, 3.8 AS label " + ")"; CreateModel.createModel(sql); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteRoutineIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteRoutineIT.java index 0c26cc00becd..3959792416fe 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DeleteRoutineIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteRoutineIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class DeleteRoutineIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String routineName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -52,20 +56,20 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary routine routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateRoutine.createRoutine(BIGQUERY_DATASET_NAME, routineName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteTableIT.java index 56bfd40123b3..95d0afa17b52 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DeleteTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteTableIT.java @@ -22,14 +22,20 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class DeleteTableIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -48,24 +54,25 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); + // Create a new table to be deleted + tableName = "GCLOUD_TEST_TABLE_TEMP_" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, null); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test public void testDeleteTable() { - // Create a new table to be deleted - String generatedTableName = - "gcloud_test_table_temp_" + UUID.randomUUID().toString().replace('-', '_'); - CreateTable.createTable(BIGQUERY_DATASET_NAME, generatedTableName, null); - // Delete the table that was just created - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, generatedTableName); - + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); assertThat(bout.toString()).contains("Table deleted successfully"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java index 2a298e61eea0..8fc5eed6efe3 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java @@ -21,6 +21,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -28,8 +30,10 @@ public class ExtractTableCompressedIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String GCS_BUCKET = System.getenv("GCS_BUCKET"); @@ -48,12 +52,16 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java index 457bb5fb72ab..c3b6550bf9a9 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java @@ -21,14 +21,19 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class ExtractTableToCsvIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String GCS_BUCKET = System.getenv("GCS_BUCKET"); @@ -47,12 +52,16 @@ public static void checkRequirements() { public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java index 8d5764b1820b..05bd5f609a11 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java @@ -22,14 +22,19 @@ import com.google.cloud.bigquery.FormatOptions; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class ExtractTableToJsonIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String GCS_BUCKET = System.getenv("GCS_BUCKET"); @@ -48,12 +53,16 @@ public static void checkRequirements() { public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetDatasetInfoIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetDatasetInfoIT.java index ff92737a5090..ab5019ad425e 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GetDatasetInfoIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GetDatasetInfoIT.java @@ -21,14 +21,19 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class GetDatasetInfoIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String GOOGLE_CLOUD_PROJECT = System.getenv("BIGQUERY_PROJECT_ID"); private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -49,12 +54,16 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetDatasetLabelsIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetDatasetLabelsIT.java index f2661172d659..443f3698fa3d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GetDatasetLabelsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GetDatasetLabelsIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class GetDatasetLabelsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String datasetName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); @@ -52,23 +56,23 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary dataset datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateDataset.createDataset(datasetName); // add a label on dataset LabelDataset.labelDataset(datasetName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // delete a temporary dataset DeleteDataset.deleteDataset(PROJECT_ID, datasetName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetJobIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetJobIT.java index 0ae82ad91239..8d99fd89a371 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GetJobIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GetJobIT.java @@ -20,35 +20,39 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class GetJobIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String jobName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); String query = "SELECT country_name from `bigquery-public-data.utility_us.country_code_iso`"; CreateJob.createJob(query); String result = bout.toString(); jobName = result.substring(result.lastIndexOf(".") + 1); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java index 91ea8695dd18..b7e1820d742c 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class GetModelIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String modelName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -52,6 +56,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a new model to be deleted @@ -73,17 +78,16 @@ public void setUp() { + "SELECT 'b' AS f1, 3.8 AS label " + ")"; CreateModel.createModel(sql); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteModel.deleteModel(BIGQUERY_DATASET_NAME, modelName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetRoutineIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetRoutineIT.java index a41fc4564f20..a8836425430f 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GetRoutineIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GetRoutineIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class GetRoutineIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String routineName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -52,22 +56,22 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary routine routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateRoutine.createRoutine(BIGQUERY_DATASET_NAME, routineName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetTableIT.java index fafbbadb18cc..e16db3e9d54a 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GetTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GetTableIT.java @@ -20,24 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class GetTableIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java index 9d225414052d..a5e9bc4531cf 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -30,9 +32,11 @@ public class GetTableLabelsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,23 +57,23 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary table tableName = "MY_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); // add label on a table LabelTable.labelTable(BIGQUERY_DATASET_NAME, tableName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // delete a temporary table DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetViewIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetViewIT.java index ed681e3be277..06539416bb41 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GetViewIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GetViewIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,10 +34,12 @@ public class GetViewIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private String viewName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -56,6 +60,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a new table to be deleted @@ -75,10 +80,6 @@ public void setUp() { "SELECT timestampField, stringField, booleanField FROM %s.%s", BIGQUERY_DATASET_NAME, tableName); CreateView.createView(BIGQUERY_DATASET_NAME, viewName, query); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After @@ -86,7 +87,10 @@ public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, viewName); DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java b/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java index 9ee22a785c9f..f620c781e871 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,11 +34,13 @@ public class GrantViewAccessIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String datasetName; private String tableName; private String viewName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -59,6 +63,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary dataset, table and view to be deleted. @@ -80,10 +85,6 @@ public void setUp() { "SELECT timestampField, stringField, booleanField FROM %s.%s", BIGQUERY_DATASET_NAME, tableName); CreateView.createView(BIGQUERY_DATASET_NAME, viewName, query); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After @@ -92,7 +93,10 @@ public void tearDown() { DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, viewName); DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); DeleteDataset.deleteDataset(PROJECT_ID, datasetName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java b/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java index 5ab4be972133..0ec786fa057a 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class InsertingDataTypesIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,6 +57,7 @@ public void setUp() { tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -60,7 +65,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LabelDatasetIT.java b/samples/snippets/src/test/java/com/example/bigquery/LabelDatasetIT.java index b7b13e5083cf..214996caa843 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LabelDatasetIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LabelDatasetIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class LabelDatasetIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String datasetName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); @@ -52,21 +56,21 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary dataset datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateDataset.createDataset(datasetName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // delete a temporary dataset DeleteDataset.deleteDataset(PROJECT_ID, datasetName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LabelTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/LabelTableIT.java index 0de0612b358d..bf6f9160d43b 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LabelTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LabelTableIT.java @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -30,9 +32,11 @@ public class LabelTableIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,22 +57,22 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary table tableName = "MY_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // delete a temporary table DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsByLabelIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsByLabelIT.java index bc6300acd75d..8cf273b325a4 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsByLabelIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsByLabelIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class ListDatasetsByLabelIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String datasetName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); @@ -52,23 +56,23 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary dataset datasetName = "MY_DATASET_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateDataset.createDataset(datasetName); // add a label on dataset LabelDataset.labelDataset(datasetName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // delete a temporary dataset DeleteDataset.deleteDataset(PROJECT_ID, datasetName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsIT.java index 617246ff9270..607e336bb01a 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsIT.java @@ -20,24 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class ListDatasetsIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/ListJobsIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListJobsIT.java index 19871a92d8f9..806dde7e9393 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ListJobsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ListJobsIT.java @@ -20,19 +20,24 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class ListJobsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a new job @@ -42,16 +47,15 @@ public void setUp() { + " WHERE state = 'TX'" + " LIMIT 100;"; CreateJob.createJob(query); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java index c5dded50f5c5..fd99bc24ae8b 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class ListModelsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String modelName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -52,6 +56,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a new model to be deleted @@ -73,17 +78,16 @@ public void setUp() { + "SELECT 'b' AS f1, 3.8 AS label " + ")"; CreateModel.createModel(sql); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteModel.deleteModel(BIGQUERY_DATASET_NAME, modelName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/ListRoutinesIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListRoutinesIT.java index de723e78b313..3b0f0de382d0 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ListRoutinesIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ListRoutinesIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class ListRoutinesIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String routineName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -52,22 +56,22 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a new routine to be deleted routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateRoutine.createRoutine(BIGQUERY_DATASET_NAME, routineName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/ListTablesIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListTablesIT.java index 1892276d948e..674f7e7ca711 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ListTablesIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ListTablesIT.java @@ -20,24 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class ListTablesIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsIT.java index c00f91bdbb78..a8f44463b1d2 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsIT.java @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -30,9 +32,11 @@ public class LoadAvroFromGcsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,22 +57,22 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a test table tableName = "MY_LOAD_AVRO_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsTruncateIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsTruncateIT.java index 8f54af6e5b09..e088fc066510 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsTruncateIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsTruncateIT.java @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -30,9 +32,11 @@ public class LoadAvroFromGcsTruncateIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,22 +57,22 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a test table tableName = "MY_LOAD_AVRO_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsAutodetectIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsAutodetectIT.java index f4c6abfc0042..4a005c5a51a8 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsAutodetectIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsAutodetectIT.java @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -30,9 +32,11 @@ public class LoadCsvFromGcsAutodetectIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,23 +57,23 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a test table tableName = "LOAD_CSV_TABLE_AUTODETECT_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java index e54118f93027..b44cf8b2142c 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,9 +34,11 @@ public class LoadCsvFromGcsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,14 +57,11 @@ public static void checkRequirements() { @Before public void setUp() { - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); - // Create a test table tableName = "LOAD_CSV_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -68,7 +69,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java index 8a2e35377c91..09e8d9c50fe5 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,9 +34,11 @@ public class LoadCsvFromGcsTruncateTest { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -55,6 +59,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a test table @@ -66,17 +71,16 @@ public void setUp() { Field.of("post_abbr", LegacySQLTypeName.STRING)); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsAutodetectIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsAutodetectIT.java index a8f37316ab66..1c8b85a3fc5f 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsAutodetectIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsAutodetectIT.java @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -30,9 +32,11 @@ public class LoadJsonFromGcsAutodetectIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,6 +57,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a test table @@ -60,17 +65,16 @@ public void setUp() { "MY_LOAD_JSON_TABLE_AUTODETECT_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java index 1df0f432caa1..fb7ea8e522c7 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -30,9 +32,11 @@ public class LoadJsonFromGcsCmekIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); private static final String BIGQUERY_KMS_KEY_NAME = requireEnvVar("BIGQUERY_KMS_KEY_NAME"); @@ -57,6 +61,7 @@ public void setUp() { "MY_LOAD_JSON_TABLE_CMEK_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -64,7 +69,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsIT.java index c0a262447303..4171028d41f8 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,9 +34,11 @@ public class LoadJsonFromGcsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -55,22 +59,22 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a test table tableName = "MY_LOAD_JSON_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsTruncateIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsTruncateIT.java index 237c2a66a4ef..a5ffdea9e091 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsTruncateIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsTruncateIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,9 +34,11 @@ public class LoadJsonFromGcsTruncateIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -56,6 +60,7 @@ public void setUp() { tableName = "MY_LOAD_JSON_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -63,7 +68,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java index aefa2adbac46..31a20b70bec1 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java @@ -29,14 +29,20 @@ import java.nio.file.FileSystems; import java.nio.file.Path; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class LoadLocalFileIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -55,33 +61,32 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); - } - - @After - public void tearDown() { - System.setOut(null); - } - - @Test - public void loadLocalFile() throws IOException, InterruptedException { - String tableName = "LoadLocalFileTestTable_" + UUID.randomUUID().toString().replace('-', '_'); + tableName = "LOADLOCALFILETESTTABLE_" + UUID.randomUUID().toString().substring(0, 8); Schema schema = Schema.of( Field.of("Name", LegacySQLTypeName.STRING), Field.of("Age", LegacySQLTypeName.NUMERIC), Field.of("Weight", LegacySQLTypeName.NUMERIC), Field.of("IsMagic", LegacySQLTypeName.BOOLEAN)); - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + } - Path csvPath = FileSystems.getDefault().getPath("src/test/resources", "bigquery_noheader.csv"); + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + @Test + public void loadLocalFile() throws IOException, InterruptedException { + Path csvPath = FileSystems.getDefault().getPath("src/test/resources", "bigquery_noheader.csv"); LoadLocalFile.loadLocalFile(BIGQUERY_DATASET_NAME, tableName, csvPath, FormatOptions.csv()); - assertThat(bout.toString()).contains("Successfully loaded"); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsIT.java index 36dc976435ce..01a68a590c36 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,9 +34,11 @@ public class LoadOrcFromGcsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -57,6 +61,7 @@ public void setUp() { tableName = "LOAD_ORC_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -64,7 +69,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsTruncateIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsTruncateIT.java index 5b8b5aafba57..cc5862801963 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsTruncateIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsTruncateIT.java @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -30,9 +32,11 @@ public class LoadOrcFromGcsTruncateIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,22 +57,22 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a test table tableName = "MY_LOAD_ORC_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up - // DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java index cc3ff5d7294c..e50c32b8aa98 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java @@ -21,14 +21,19 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class LoadParquetIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -47,12 +52,16 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java index 03222cd6d8cc..7846f7677344 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java @@ -21,14 +21,19 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class LoadParquetReplaceTableIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -47,12 +52,16 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java index 7f97d07d381e..3f9d9f5ff9c4 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java @@ -22,14 +22,20 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class LoadPartitionedTableIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -46,29 +52,28 @@ public static void checkRequirements() { @Before public void setUp() { + tableName = "LOAD_PARTITIONED_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test public void loadPartitionedTable() throws Exception { String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states-by-date-no-header.csv"; - - String tableName = - "LOAD_PARTITIONED_TABLE_TEST_" + UUID.randomUUID().toString().replace('-', '_'); - LoadPartitionedTable.loadPartitionedTable(BIGQUERY_DATASET_NAME, tableName, sourceUri); - assertThat(bout.toString()) .contains("Data successfully loaded into time partitioned table during load job"); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java index 3567dea9f94d..e7f9df5d9289 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java @@ -26,6 +26,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -33,9 +35,11 @@ public class LoadTableClusteredIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -57,6 +61,7 @@ public void setUp() { tableName = "LOAD_CLUSTERED_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -64,7 +69,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java b/samples/snippets/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java index 2f1e234825bc..afa23ac7da4b 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java @@ -22,14 +22,20 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class NestedRepeatedSchemaIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -46,25 +52,27 @@ public static void checkRequirements() { @Before public void setUp() { + tableName = "NESTED_REPEATED_" + UUID.randomUUID().toString().replace("-", "_"); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test public void createTableWithNestedRepeatedSchema() { - String tableName = "NESTED_REPEATED_" + UUID.randomUUID().toString().replace("-", "_"); NestedRepeatedSchema.createTableWithNestedRepeatedSchema(BIGQUERY_DATASET_NAME, tableName); - assertThat(bout.toString()) .contains("Table with nested and repeated schema created successfully"); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryBatchIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryBatchIT.java index 8836a6612f14..b379583c97bb 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryBatchIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryBatchIT.java @@ -20,25 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryBatchIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java index fc07c5db05a7..7b861be5fe43 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java @@ -20,24 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryClusteredTableIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java index 9accffd43b31..df7d3ec747c8 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java @@ -26,6 +26,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -33,10 +35,12 @@ public class QueryDestinationTableCmekIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private EncryptionConfiguration encryption; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); private static final String BIGQUERY_KMS_KEY_NAME = requireEnvVar("BIGQUERY_KMS_KEY_NAME"); @@ -59,6 +63,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a test table with encryption key @@ -69,17 +74,16 @@ public void setUp() { Field.of("booleanField", StandardSQLTypeName.BOOL)); encryption = EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); CreateTableCmek.createTableCmek(BIGQUERY_DATASET_NAME, tableName, schema, encryption); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryDisableCacheIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryDisableCacheIT.java index 86af7685bff6..93ac76a62c40 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryDisableCacheIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryDisableCacheIT.java @@ -20,25 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryDisableCacheIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryDryRunIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryDryRunIT.java index 0b710b19a2b1..f19641be53b0 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryDryRunIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryDryRunIT.java @@ -20,25 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryDryRunIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsPermIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsPermIT.java index 3596ec1ad76c..ed4e8d40b325 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsPermIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsPermIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,9 +34,11 @@ public class QueryExternalGcsPermIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,14 +57,11 @@ public static void checkRequirements() { @Before public void setUp() { - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); - // Create a test table tableName = "EXTERNAL_CSV_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -68,7 +69,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsTempIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsTempIT.java index 5dca6b3e1a05..a64117810cf4 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsTempIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsTempIT.java @@ -24,25 +24,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryExternalGcsTempIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java index 51ddde1db0c7..1eb72c4d94c0 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,9 +34,11 @@ public class QueryExternalSheetsPermIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,15 +57,12 @@ public static void checkRequirements() { @Before public void setUp() { - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); - // Create a test table tableName = "EXTERNAL_SHEETS_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -69,7 +70,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java index 74a6aa6413c7..6a167d47a69c 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java @@ -24,25 +24,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryExternalSheetsTempIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryIT.java index 36e59b67a06c..23aa8d409c45 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryIT.java @@ -20,25 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryLargeResultsIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryLargeResultsIT.java index cdc9007cc69b..11efa613bb39 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryLargeResultsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryLargeResultsIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class QueryLargeResultsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -53,6 +57,7 @@ public void setUp() { tableName = "QUERY_LARGE_RESULT_TABLE_TEST" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -60,7 +65,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryPaginationIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryPaginationIT.java index 759eb66bc281..415bed7b689f 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryPaginationIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryPaginationIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class QueryPaginationIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -54,6 +58,7 @@ public void setUp() { "QUERY_PAGINATION_TABLE_FROM_GCS_TEST_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @@ -61,7 +66,10 @@ public void setUp() { public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryPartitionedTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryPartitionedTableIT.java index d64f56f17701..777c9482b3c1 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryPartitionedTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryPartitionedTableIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class QueryPartitionedTableIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -52,23 +56,23 @@ public static void checkRequirements() { public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a test table tableName = "LOAD_PARTITIONED_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states-by-date-no-header.csv"; LoadPartitionedTable.loadPartitionedTable(BIGQUERY_DATASET_NAME, tableName, sourceUri); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryScriptIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryScriptIT.java index c2c5ca39046a..ee172f7867bb 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryScriptIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryScriptIT.java @@ -20,25 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryScriptIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryTotalRowsIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryTotalRowsIT.java index 8353e09da3b4..8e48bc110779 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryTotalRowsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryTotalRowsIT.java @@ -20,25 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryTotalRowsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayParametersIT.java index 205903676638..c52d6167d0f1 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayParametersIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayParametersIT.java @@ -20,25 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryWithArrayParametersIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java index c461f6a696ce..be57b9d32fa8 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java @@ -20,24 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryWithNamedParametersIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedTypesParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedTypesParametersIT.java index 7dd2fb8590a2..359379e36105 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedTypesParametersIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedTypesParametersIT.java @@ -20,25 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryWithNamedTypesParametersIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java index 7465d840ee4e..38afddffaffa 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java @@ -20,24 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryWithPositionalParametersIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalTypesParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalTypesParametersIT.java index 17f030647ec5..1abe3729997d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalTypesParametersIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalTypesParametersIT.java @@ -20,25 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryWithPositionalTypesParametersIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithStructsParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithStructsParametersIT.java index 799e9c1b33f3..3a67da6daf03 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryWithStructsParametersIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithStructsParametersIT.java @@ -20,24 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryWithStructsParametersIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java index 09bee86d06a3..eb6f79cb7b23 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java @@ -20,25 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class QueryWithTimestampParametersIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/QuickstartSampleIT.java b/samples/snippets/src/test/java/com/example/bigquery/QuickstartSampleIT.java index 669ab07893c1..f819db552e95 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QuickstartSampleIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QuickstartSampleIT.java @@ -24,6 +24,8 @@ import com.google.cloud.bigquery.DatasetId; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -34,8 +36,11 @@ @RunWith(JUnit4.class) @SuppressWarnings("checkstyle:abbreviationaswordinname") public class QuickstartSampleIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final void deleteMyNewDataset() { BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); @@ -51,13 +56,17 @@ public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); deleteMyNewDataset(); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnLoadAppendIT.java b/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnLoadAppendIT.java index 9f54723a5d89..96ad8fc45f56 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnLoadAppendIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnLoadAppendIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,9 +34,11 @@ public class RelaxColumnLoadAppendIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -55,6 +59,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a test table @@ -68,17 +73,16 @@ public void setUp() { .setMode(Field.Mode.REQUIRED) .build(); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of(id, name, postAbbr)); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnModeIT.java b/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnModeIT.java index cbeb443f5361..8e7860947042 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnModeIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnModeIT.java @@ -26,14 +26,20 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class RelaxColumnModeIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -52,20 +58,11 @@ public static void checkRequirements() { public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); - } - - @After - public void tearDown() { - System.setOut(null); - } - - @Test - public void testRelaxColumnMode() { // Create a new table with REQUIRED columns for each test to relax its column mode since this is // a one-way operation - String generatedTableName = - "gcloud_test_table_temp_" + UUID.randomUUID().toString().replace('-', '_'); + tableName = "GCLOUD_TEST_TABLE_TEMP_" + UUID.randomUUID().toString().substring(0, 8); Schema originalSchema = Schema.of( Field.newBuilder("word", LegacySQLTypeName.STRING).setMode(Mode.REQUIRED).build(), @@ -78,13 +75,23 @@ public void testRelaxColumnMode() { Field.newBuilder("corpus_date", LegacySQLTypeName.STRING) .setMode(Field.Mode.REQUIRED) .build()); - CreateTable.createTable(BIGQUERY_DATASET_NAME, generatedTableName, originalSchema); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, originalSchema); + } + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testRelaxColumnMode() { // Relax table column mode - RelaxColumnMode.relaxColumnMode(BIGQUERY_DATASET_NAME, generatedTableName); + RelaxColumnMode.relaxColumnMode(BIGQUERY_DATASET_NAME, tableName); assertThat(bout.toString()).contains("Table schema successfully relaxed."); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, generatedTableName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/RelaxTableQueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/RelaxTableQueryIT.java index 7ec9429b2ae9..ac123a74fcfc 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/RelaxTableQueryIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/RelaxTableQueryIT.java @@ -25,14 +25,20 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class RelaxTableQueryIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_PROJECT_ID = System.getenv("BIGQUERY_PROJECT_ID"); private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -53,17 +59,9 @@ public static void checkRequirements() { public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); - } - - @After - public void tearDown() { - System.setOut(null); - } - - @Test - public void testRelaxTableQuery() throws Exception { - String tableName = "RELAX_TABLE_QUERY_TEST" + UUID.randomUUID().toString().replace('-', '_'); + tableName = "RELAX_TABLE_QUERY_TEST" + UUID.randomUUID().toString().substring(0, 8); Schema originalSchema = Schema.of( Field.newBuilder("word", LegacySQLTypeName.STRING).setMode(Field.Mode.REQUIRED).build(), @@ -76,14 +74,23 @@ public void testRelaxTableQuery() throws Exception { Field.newBuilder("corpus_date", LegacySQLTypeName.STRING) .setMode(Field.Mode.REQUIRED) .build()); - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, originalSchema); + } + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testRelaxTableQuery() throws Exception { RelaxTableQuery.relaxTableQuery(BIGQUERY_PROJECT_ID, BIGQUERY_DATASET_NAME, tableName); assertThat(bout.toString()) .contains("Successfully relaxed all columns in destination table during query job"); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/RunLegacyQueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/RunLegacyQueryIT.java index e8a7d16eb4f0..aeff57335aa7 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/RunLegacyQueryIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/RunLegacyQueryIT.java @@ -20,24 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class RunLegacyQueryIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java index 3552c2c9045e..a1bb54f9664d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java @@ -22,14 +22,20 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class SaveQueryToTableIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -46,26 +52,27 @@ public static void checkRequirements() { @Before public void setUp() { + tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().substring(0, 8); bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test public void testSaveQueryToTable() { - String tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; - SaveQueryToTable.saveQueryToTable(BIGQUERY_DATASET_NAME, tableName, query); - assertThat(bout.toString()).contains("Saved query ran successfully"); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java b/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java index ea7873bbc06e..65ccab328565 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java @@ -20,6 +20,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -30,19 +32,26 @@ @RunWith(JUnit4.class) @SuppressWarnings("checkstyle:abbreviationaswordinname") public class SimpleAppIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java index 8ee67edde137..b750c314645f 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java @@ -20,24 +20,33 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.Test; public class SimpleQueryIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); } @After public void tearDown() { - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java b/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java index 661dcb0deadf..4ff04e4efa0a 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -30,9 +32,11 @@ public class TableExistsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -53,21 +57,21 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary table tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // delete a temporary table DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java index 0ed41456886b..84a344cd268a 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java @@ -27,6 +27,8 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -34,9 +36,11 @@ public class TableInsertRowsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -55,6 +59,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); tableName = "INSERT_ROW_INTO_TABLE_TEST" + UUID.randomUUID().toString().substring(0, 8); @@ -65,17 +70,16 @@ public void setUp() { // Create table in dataset for testing CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java index 6c5fd02bd64a..ae00c10f87f1 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,9 +34,11 @@ public class TableInsertRowsWithoutRowIdsIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -53,6 +57,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); tableName = "INSERT_ROW_WITHOUT_ROW_ID_TEST" + UUID.randomUUID().toString().substring(0, 8); @@ -63,17 +68,16 @@ public void setUp() { // Create table in dataset for testing CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java index d26290bd8456..f6c725db6b28 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -30,10 +32,12 @@ public class UndeleteTableIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private String recoverTableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -52,23 +56,23 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); tableName = "UNDELETE_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); recoverTableName = "RECOVER_DELETE_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); // Create table in dataset for testing CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, recoverTableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java index 10e7cfdddc8c..d4ec62df2b4d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java @@ -25,14 +25,20 @@ import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class UpdateDatasetAccessIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String GOOGLE_CLOUD_PROJECT = System.getenv("GOOGLE_CLOUD_PROJECT"); @@ -51,26 +57,28 @@ public static void checkRequirements() { public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); + tableName = RemoteBigQueryHelper.generateDatasetName(); + // Create a dataset in order to modify its ACL + CreateDataset.createDataset(tableName); } @After public void tearDown() { - System.setOut(null); + // Clean up + DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test public void updateDatasetAccess() { - String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); - // Create a dataset in order to modify its ACL - CreateDataset.createDataset(generatedDatasetName); - Acl newEntry = Acl.of(new User("sample.bigquery.dev@gmail.com"), Role.READER); // Modify dataset's ACL - UpdateDatasetAccess.updateDatasetAccess(generatedDatasetName, newEntry); + UpdateDatasetAccess.updateDatasetAccess(tableName, newEntry); assertThat(bout.toString()).contains("Dataset Access Control updated successfully"); - - // Clean up - DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, generatedDatasetName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java index 9f9c15c2e8f9..c74e91d1f1c9 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java @@ -22,14 +22,20 @@ import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class UpdateDatasetDescriptionIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String GOOGLE_CLOUD_PROJECT = System.getenv("GOOGLE_CLOUD_PROJECT"); @@ -48,27 +54,29 @@ public static void checkRequirements() { public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); + tableName = RemoteBigQueryHelper.generateDatasetName(); + // Create a dataset in order to modify its description + CreateDataset.createDataset(tableName); } @After public void tearDown() { - System.setOut(null); + // Clean up + DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test public void updateDatasetDescription() { - String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); String newDescription = "new description!"; - // Create a dataset in order to modify its description - CreateDataset.createDataset(generatedDatasetName); - // Modify dataset's description - UpdateDatasetDescription.updateDatasetDescription(generatedDatasetName, newDescription); + UpdateDatasetDescription.updateDatasetDescription(tableName, newDescription); assertThat(bout.toString()) .contains("Dataset description updated successfully to " + newDescription); - - // Clean up - DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, generatedDatasetName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java index 3360223e32bd..201b74600418 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java @@ -23,14 +23,20 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class UpdateDatasetExpirationIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String GOOGLE_CLOUD_PROJECT = System.getenv("GOOGLE_CLOUD_PROJECT"); @@ -49,26 +55,28 @@ public static void checkRequirements() { public void setUp() throws Exception { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); + tableName = RemoteBigQueryHelper.generateDatasetName(); + // Create a dataset in order to modify its expiration + CreateDataset.createDataset(tableName); } @After public void tearDown() { - System.setOut(null); + // Clean up + DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test public void updateDatasetExpiration() { - String generatedDatasetName = RemoteBigQueryHelper.generateDatasetName(); - // Create a dataset in order to modify its expiration - CreateDataset.createDataset(generatedDatasetName); - Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); // Modify dataset's expiration - UpdateDatasetExpiration.updateDatasetExpiration(generatedDatasetName, newExpiration); + UpdateDatasetExpiration.updateDatasetExpiration(tableName, newExpiration); assertThat(bout.toString()).contains("Dataset description updated successfully"); - - // Clean up - DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, generatedDatasetName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetPartitionExpirationIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetPartitionExpirationIT.java index 2ba5c2fb9c7a..0ef2a47262a5 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetPartitionExpirationIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetPartitionExpirationIT.java @@ -23,6 +23,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -30,9 +32,11 @@ public class UpdateDatasetPartitionExpirationIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String datasetName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String GOOGLE_CLOUD_PROJECT = requireEnvVar("GOOGLE_CLOUD_PROJECT"); @@ -53,21 +57,21 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); datasetName = RemoteBigQueryHelper.generateDatasetName(); // Create a dataset in order to modify its partition expiration CreateDataset.createDataset(datasetName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, datasetName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java index bda7e8b563a2..156e83d170a9 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class UpdateModelDescriptionIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String modelName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -52,6 +56,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a test model modelName = "MY_MODEL_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); @@ -72,17 +77,16 @@ public void setUp() { + "SELECT 'b' AS f1, 3.8 AS label " + ")"; CreateModel.createModel(sql); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteModel.deleteModel(BIGQUERY_DATASET_NAME, modelName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateRoutineIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateRoutineIT.java index e9b5f3593917..2abfe4cf76ef 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateRoutineIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateRoutineIT.java @@ -22,6 +22,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -29,9 +31,11 @@ public class UpdateRoutineIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String routineName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -52,22 +56,22 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a temporary routine routineName = "MY_ROUTINE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateRoutine.createRoutine(BIGQUERY_DATASET_NAME, routineName); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteRoutine.deleteRoutine(BIGQUERY_DATASET_NAME, routineName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java index 38ddf9667220..3c6417f44f6c 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java @@ -26,6 +26,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -33,9 +35,11 @@ public class UpdateTableCmekIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); private static final String BIGQUERY_KMS_KEY_NAME = requireEnvVar("BIGQUERY_KMS_KEY_NAME"); @@ -58,6 +62,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // create a test table. tableName = "MY_UPDATE_TABLE_CMEK_TEST" + UUID.randomUUID().toString().substring(0, 8); @@ -68,17 +73,16 @@ public void setUp() { EncryptionConfiguration encryption = EncryptionConfiguration.newBuilder().setKmsKeyName(BIGQUERY_KMS_KEY_NAME).build(); CreateTableCmek.createTableCmek(BIGQUERY_DATASET_NAME, tableName, schema, encryption); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java index f30c73e1cd40..d26a79da5c18 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java @@ -22,14 +22,20 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class UpdateTableDescriptionIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -45,31 +51,32 @@ public static void checkRequirements() { } @Before - public void setUp() throws Exception { + public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); + // Create a table in order to modify its description + tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, null); } @After public void tearDown() { - System.setOut(null); + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test - public void updateTableDescription() { - // Create a table in order to modify its description - String tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, null); + public void testUpdateTableDescription() { String newDescription = "new description!"; - // Modify table's description UpdateTableDescription.updateTableDescription(BIGQUERY_DATASET_NAME, tableName, newDescription); - assertThat(bout.toString()) .contains("Table description updated successfully to " + newDescription); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDmlIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDmlIT.java index ffaea442eb29..53ba0d1ab846 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDmlIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDmlIT.java @@ -26,6 +26,8 @@ import java.io.IOException; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -33,9 +35,11 @@ public class UpdateTableDmlIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -56,6 +60,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); // Create a test table @@ -69,17 +74,16 @@ public void setUp() { Field.of("ip_address", LegacySQLTypeName.STRING)); CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java index abd1eb3e02fb..e9f03e87e501 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java @@ -26,14 +26,20 @@ import java.io.PrintStream; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class UpdateTableExpirationIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); @@ -49,31 +55,34 @@ public static void checkRequirements() { } @Before - public void setUp() throws Exception { + public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); + String suffix = UUID.randomUUID().toString().replace('-', '_'); + tableName = "update_expiration_table_" + suffix; + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); } @After public void tearDown() { - System.setOut(null); + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test - public void updateTableExpiration() { - String suffix = UUID.randomUUID().toString().replace('-', '_'); - String tableName = "update_expiration_table_" + suffix; - Schema schema = - Schema.of( - Field.of("stringField", StandardSQLTypeName.STRING), - Field.of("booleanField", StandardSQLTypeName.BOOL)); - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + public void testUpdateTableExpiration() { Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); UpdateTableExpiration.updateTableExpiration(BIGQUERY_DATASET_NAME, tableName, newExpiration); assertThat(bout.toString()).contains("Table expiration updated successfully"); - - // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilterIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilterIT.java index 83682f265da8..c6c9233ee940 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilterIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilterIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,9 +34,11 @@ public class UpdateTableRequirePartitionFilterIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -55,6 +59,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); tableName = @@ -67,17 +72,16 @@ public void setUp() { Field.of("post_abbr", StandardSQLTypeName.STRING), Field.of("date", StandardSQLTypeName.DATE)); CreatePartitionedTable.createPartitionedTable(BIGQUERY_DATASET_NAME, tableName, schema); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateViewQueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateViewQueryIT.java index d58bdad18b6a..2b14e6655625 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateViewQueryIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateViewQueryIT.java @@ -25,6 +25,8 @@ import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; @@ -32,10 +34,12 @@ public class UpdateViewQueryIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private String viewName; private ByteArrayOutputStream bout; private PrintStream out; + private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); @@ -56,6 +60,7 @@ public static void checkRequirements() { public void setUp() { bout = new ByteArrayOutputStream(); out = new PrintStream(bout); + originalPrintStream = System.out; System.setOut(out); tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); @@ -75,10 +80,6 @@ public void setUp() { "SELECT timestampField, stringField, booleanField FROM %s.%s", BIGQUERY_DATASET_NAME, tableName); CreateView.createView(BIGQUERY_DATASET_NAME, viewName, query); - - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - System.setOut(out); } @After @@ -86,7 +87,10 @@ public void tearDown() { // Clean up DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, viewName); DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); - System.setOut(null); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); } @Test From b3f59b1e1215d93a3b7048149c88318f2a074f79 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 2 Sep 2020 18:44:36 +0530 Subject: [PATCH 0783/3441] fix: get recordvalue by field name (#718) * fix: get recordvalue by field name * fix: remove duplicate code --- .../google/cloud/bigquery/BigQueryImpl.java | 19 ++++-- .../cloud/bigquery/it/ITBigQueryTest.java | 63 +++++++++++++++++-- 2 files changed, 72 insertions(+), 10 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 070a4c965354..3b4d809804ee 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -177,9 +177,11 @@ private static class TableDataPageFetcher implements NextPageFetcher requestOptions; private final BigQueryOptions serviceOptions; private final TableId table; + private final Schema schema; TableDataPageFetcher( TableId table, + Schema schema, BigQueryOptions serviceOptions, String cursor, Map optionMap) { @@ -187,11 +189,12 @@ private static class TableDataPageFetcher implements NextPageFetcher getNextPage() { - return listTableData(table, serviceOptions, requestOptions).x(); + return listTableData(table, schema, serviceOptions, requestOptions).x(); } } @@ -1014,12 +1017,13 @@ public TableResult listTableData( @Override public TableResult listTableData(TableId tableId, Schema schema, TableDataListOption... options) { Tuple, Long> data = - listTableData(tableId, getOptions(), optionMap(options)); + listTableData(tableId, schema, getOptions(), optionMap(options)); return new TableResult(schema, data.y(), data.x()); } private static Tuple, Long> listTableData( final TableId tableId, + final Schema schema, final BigQueryOptions serviceOptions, final Map optionsMap) { try { @@ -1048,23 +1052,26 @@ public TableDataList call() { String cursor = result.getPageToken(); return Tuple.of( new PageImpl<>( - new TableDataPageFetcher(tableId, serviceOptions, cursor, optionsMap), + new TableDataPageFetcher(tableId, schema, serviceOptions, cursor, optionsMap), cursor, - transformTableData(result.getRows())), + transformTableData(result.getRows(), schema)), result.getTotalRows()); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } - private static Iterable transformTableData(Iterable tableDataPb) { + private static Iterable transformTableData( + Iterable tableDataPb, final Schema schema) { return ImmutableList.copyOf( Iterables.transform( tableDataPb != null ? tableDataPb : ImmutableList.of(), new Function() { + FieldList fields = schema != null ? schema.getFields() : null; + @Override public FieldValueList apply(TableRow rowPb) { - return FieldValueList.fromPb(rowPb.getF(), null); + return FieldValueList.fromPb(rowPb.getF(), fields); } })); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index fcbb84fda5f9..dd5aeb618f8f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -85,6 +85,7 @@ import com.google.cloud.bigquery.RoutineInfo; import com.google.cloud.bigquery.Schema; import com.google.cloud.bigquery.StandardSQLDataType; +import com.google.cloud.bigquery.StandardSQLTypeName; import com.google.cloud.bigquery.StandardTableDefinition; import com.google.cloud.bigquery.Table; import com.google.cloud.bigquery.TableDataWriteChannel; @@ -1547,15 +1548,69 @@ public void testStructNamedQueryParameters() throws InterruptedException { for (FieldValueList values : result.iterateAll()) { for (FieldValue value : values) { for (FieldValue record : value.getRecordValue()) { - assertEquals(FieldValue.Attribute.RECORD, record.getAttribute()); - assertEquals(true, record.getRecordValue().get(0).getBooleanValue()); - assertEquals(10, record.getRecordValue().get(1).getLongValue()); - assertEquals("test-stringField", record.getRecordValue().get(2).getStringValue()); + assertsFieldValue(record); } } } } + @Test + public void testStructQuery() throws InterruptedException { + String tableName = "test_record_table_" + UUID.randomUUID().toString().substring(0, 8); + TableId tableId = TableId.of(DATASET, tableName); + try { + // create a table + Field booleanField = Field.of("booleanField", StandardSQLTypeName.BOOL); + Field integerField = Field.of("integerField", StandardSQLTypeName.INT64); + Field stringField = Field.of("stringField", StandardSQLTypeName.STRING); + Field recordField = + Field.newBuilder( + "recordField", + StandardSQLTypeName.STRUCT, + booleanField, + integerField, + stringField) + .setMode(Field.Mode.NULLABLE) + .build(); + Schema schema = Schema.of(recordField); + StandardTableDefinition tableDefinition = StandardTableDefinition.of(schema); + assertNotNull(bigquery.create(TableInfo.of(tableId, tableDefinition))); + // inserting data + Map content = new HashMap<>(); + content.put("booleanField", true); + content.put("integerField", 10); + content.put("stringField", "test-stringField"); + Map recordContent = new HashMap<>(); + recordContent.put("recordField", content); + InsertAllResponse response = + bigquery.insertAll(InsertAllRequest.newBuilder(tableId).addRow(recordContent).build()); + assertFalse(response.hasErrors()); + // query into a table + String query = String.format("SELECT * FROM %s.%s", DATASET, tableName); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .build(); + TableResult result = bigquery.query(config); + assertEquals(1, Iterables.size(result.getValues())); + for (FieldValueList values : result.iterateAll()) { + for (FieldValue record : values) { + assertsFieldValue(record); + } + } + } finally { + assertTrue(bigquery.delete(tableId)); + } + } + + private static void assertsFieldValue(FieldValue record) { + assertEquals(FieldValue.Attribute.RECORD, record.getAttribute()); + assertEquals(true, record.getRecordValue().get("booleanField").getBooleanValue()); + assertEquals(10, record.getRecordValue().get("integerField").getLongValue()); + assertEquals("test-stringField", record.getRecordValue().get("stringField").getStringValue()); + } + @Test public void testNestedStructNamedQueryParameters() throws InterruptedException { QueryParameterValue booleanValue = QueryParameterValue.bool(true); From d79833095d1a1b8d1b4c2b09fc830898c2a630fd Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 2 Sep 2020 15:59:09 -0700 Subject: [PATCH 0784/3441] chore: regen readme with more samples (#719) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- README.md | 1 + synth.metadata | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c766d38a224b..ea1cf69b1703 100644 --- a/README.md +++ b/README.md @@ -212,6 +212,7 @@ has instructions for running the samples. | Update Table Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | | Update Table Dml | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java) | | Update Table Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | +| Update Table Require Partition Filter | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java) | | Update View Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java) | diff --git a/synth.metadata b/synth.metadata index e6430196e51e..5bb45f0f9c8f 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "5d9c5431ef1c6fb69eae29eb4cbd6f530e1c9d77" + "sha": "b3f59b1e1215d93a3b7048149c88318f2a074f79" } }, { From 9afba319a62f54ee766d2476f5bd2ee91b3ba762 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 3 Sep 2020 11:46:22 +0200 Subject: [PATCH 0785/3441] deps: update jmh.version to v1.25.2 (#720) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 41261c0ae0d8..fcf0fb405047 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.25.1 + 1.25.2 benchmark From dcb86719f11fe2b75113974ada13bae20150aa49 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 4 Sep 2020 15:55:50 +0200 Subject: [PATCH 0786/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200827-1.30.10 (#722) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7e565d302506..0840ca115752 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20200818-1.30.10 + v2-rev20200827-1.30.10
    From fe7fa1e51d3adc00d5ba4821b093e1b0498b1dbb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 7 Sep 2020 07:00:12 +0200 Subject: [PATCH 0787/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.1.1 (#721) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0840ca115752..b336aaa355af 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.1.0 + 3.1.1 From fb6d5430b9f6e1285e7fa0102c78d9c4dd07c599 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 7 Sep 2020 07:21:02 +0200 Subject: [PATCH 0788/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.0 (#723) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b336aaa355af..7fd0111cc7e5 100644 --- a/pom.xml +++ b/pom.xml @@ -117,7 +117,7 @@ com.google.cloud google-cloud-storage - 1.112.0 + 1.113.0 test From 136d6fb0e9126f35d7325a10ca931f3342c91357 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 8 Sep 2020 20:46:12 +0530 Subject: [PATCH 0789/3441] test: fix flaky test (#726) * test: fix flaky test * test: fix flaky test --- .../cloud/bigquery/it/ITBigQueryTest.java | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index dd5aeb618f8f..b9969001130c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -860,7 +860,7 @@ public void testListTablesWithRangePartitioning() { @Test public void testListPartitions() throws InterruptedException { - String tableName = "test_table_partitions"; + String tableName = "test_table_partitions_" + UUID.randomUUID().toString().substring(0, 8); Date date = Date.fromJavaUtilDate(new java.util.Date()); String partitionDate = date.toString().replaceAll("-", ""); TableId tableId = TableId.of(DATASET, tableName + "$" + partitionDate); @@ -873,18 +873,15 @@ public void testListPartitions() throws InterruptedException { Job job = bigquery.create(JobInfo.of(QueryJobConfiguration.newBuilder(query).build())); job.waitFor(); assertTrue(job.isDone()); - try { - Map row = new HashMap(); - row.put("StringField", "StringValue"); - InsertAllRequest request = InsertAllRequest.newBuilder(tableId).addRow(row).build(); - InsertAllResponse response = bigquery.insertAll(request); - assertFalse(response.hasErrors()); - assertEquals(0, response.getInsertErrors().size()); - List partitions = bigquery.listPartitions(TableId.of(DATASET, tableName)); - assertEquals(1, partitions.size()); - } finally { - bigquery.delete(tableId); - } + Map row = new HashMap<>(); + row.put("StringField", "StringValue"); + InsertAllRequest request = InsertAllRequest.newBuilder(tableId).addRow(row).build(); + InsertAllResponse response = bigquery.insertAll(request); + assertFalse(response.hasErrors()); + assertEquals(0, response.getInsertErrors().size()); + List partitions = bigquery.listPartitions(TableId.of(DATASET, tableName)); + assertEquals(1, partitions.size()); + bigquery.delete(tableId); } @Test From b2ca177d9653d45d032ccff9acc2f5f218eed178 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 9 Sep 2020 11:12:00 -0400 Subject: [PATCH 0790/3441] build(ci): enable auto-release in this repo (#727) --- .github/workflows/auto-release.yaml | 69 +++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .github/workflows/auto-release.yaml diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml new file mode 100644 index 000000000000..d26427e468a4 --- /dev/null +++ b/.github/workflows/auto-release.yaml @@ -0,0 +1,69 @@ +on: + pull_request: +name: auto-release +jobs: + approve: + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v3.0.0 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + debug: true + script: | + // only approve PRs from release-please[bot] + if (context.payload.pull_request.user.login !== "release-please[bot]") { + return; + } + + // only approve PRs like "chore: release " + if ( !context.payload.pull_request.title.startsWith("chore: release") ) { + return; + } + + // trigger auto-release when + // 1) it is a SNAPSHOT release (auto-generated post regular release) + // 2) there are dependency updates only + // 3) there are no open dependency update PRs in this repo (to avoid multiple releases) + if ( + context.payload.pull_request.body.includes("Fix") || + context.payload.pull_request.body.includes("Build") || + context.payload.pull_request.body.includes("Documentation") || + context.payload.pull_request.body.includes("BREAKING CHANGES") || + context.payload.pull_request.body.includes("Features") + ) { + console.log( "Not auto-releasing since it is not a dependency-update-only release." ); + return; + } + + const promise = github.pulls.list.endpoint({ + owner: context.repo.owner, + repo: context.repo.repo, + state: 'open' + }); + const open_pulls = await github.paginate(promise) + + if ( open_pulls.length > 1 && !context.payload.pull_request.title.includes("SNAPSHOT") ) { + for ( const pull of open_pulls ) { + if ( pull.title.startsWith("deps: update dependency") ) { + console.log( "Not auto-releasing yet since there are dependency update PRs open in this repo." ); + return; + } + } + } + + // approve release PR + await github.pulls.createReview({ + owner: context.repo.owner, + repo: context.repo.repo, + body: 'Rubber stamped release!', + pull_number: context.payload.pull_request.number, + event: 'APPROVE' + }); + + // attach kokoro:force-run and automerge labels + await github.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.payload.pull_request.number, + labels: ['kokoro:force-run', 'automerge'] + }); \ No newline at end of file From 2c679675645c4314df71481c02752cc49e80f81a Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 14 Sep 2020 14:26:04 -0400 Subject: [PATCH 0791/3441] chore: generate CODEOWNERS from templates (#729) --- .repo-metadata.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.repo-metadata.json b/.repo-metadata.json index 2db55ce3d05a..cc60147c9d9c 100644 --- a/.repo-metadata.json +++ b/.repo-metadata.json @@ -10,6 +10,7 @@ "repo": "googleapis/java-bigquery", "repo_short": "java-bigquery", "distribution_name": "com.google.cloud:google-cloud-bigquery", + "codeowner_team": "@googleapis/api-bigquery", "api_id": "bigquery.googleapis.com", "requires_billing": true } From 1f6510187c59bb74496f057c58b9166f862f2cea Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 14 Sep 2020 17:04:11 -0700 Subject: [PATCH 0792/3441] chore: CODEOWNER updates (#730) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- .github/CODEOWNERS | 3 +++ synth.metadata | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6137bef2a259..c095544161cf 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -4,5 +4,8 @@ # For syntax help see: # https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax +# The @googleapis/api-bigquery is the default owner for changes in this repo +**/*.java @googleapis/api-bigquery + # The java-samples-reviewers team is the default owner for samples changes samples/**/*.java @googleapis/java-samples-reviewers diff --git a/synth.metadata b/synth.metadata index 5bb45f0f9c8f..fd1c73c930fe 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b3f59b1e1215d93a3b7048149c88318f2a074f79" + "sha": "2c679675645c4314df71481c02752cc49e80f81a" } }, { From 5dc0500bdb8b24bcd768cdb7ca5cbdf8a654febc Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 15 Sep 2020 00:22:02 +0000 Subject: [PATCH 0793/3441] chore: release 1.117.2 (#717) :robot: I have created a release \*beep\* \*boop\* --- ### [1.117.2](https://www.github.com/googleapis/java-bigquery/compare/v1.117.1...v1.117.2) (2020-09-15) ### Bug Fixes * get recordvalue by field name ([#718](https://www.github.com/googleapis/java-bigquery/issues/718)) ([b3f59b1](https://www.github.com/googleapis/java-bigquery/commit/b3f59b1e1215d93a3b7048149c88318f2a074f79)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20200827-1.30.10 ([#722](https://www.github.com/googleapis/java-bigquery/issues/722)) ([dcb8671](https://www.github.com/googleapis/java-bigquery/commit/dcb86719f11fe2b75113974ada13bae20150aa49)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.9.0 ([#715](https://www.github.com/googleapis/java-bigquery/issues/715)) ([b75b95b](https://www.github.com/googleapis/java-bigquery/commit/b75b95b7ca338da0900c53856c280c9acc140cd5)) * update dependency com.google.cloud:google-cloud-storage to v1.113.0 ([#723](https://www.github.com/googleapis/java-bigquery/issues/723)) ([fb6d543](https://www.github.com/googleapis/java-bigquery/commit/fb6d5430b9f6e1285e7fa0102c78d9c4dd07c599)) * update jmh.version to v1.25.2 ([#720](https://www.github.com/googleapis/java-bigquery/issues/720)) ([9afba31](https://www.github.com/googleapis/java-bigquery/commit/9afba319a62f54ee766d2476f5bd2ee91b3ba762)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 15 +++++++++++++++ README.md | 4 ++-- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 24 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da2135b94d8e..9e6a6425d419 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +### [1.117.2](https://www.github.com/googleapis/java-bigquery/compare/v1.117.1...v1.117.2) (2020-09-15) + + +### Bug Fixes + +* get recordvalue by field name ([#718](https://www.github.com/googleapis/java-bigquery/issues/718)) ([b3f59b1](https://www.github.com/googleapis/java-bigquery/commit/b3f59b1e1215d93a3b7048149c88318f2a074f79)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200827-1.30.10 ([#722](https://www.github.com/googleapis/java-bigquery/issues/722)) ([dcb8671](https://www.github.com/googleapis/java-bigquery/commit/dcb86719f11fe2b75113974ada13bae20150aa49)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.9.0 ([#715](https://www.github.com/googleapis/java-bigquery/issues/715)) ([b75b95b](https://www.github.com/googleapis/java-bigquery/commit/b75b95b7ca338da0900c53856c280c9acc140cd5)) +* update dependency com.google.cloud:google-cloud-storage to v1.113.0 ([#723](https://www.github.com/googleapis/java-bigquery/issues/723)) ([fb6d543](https://www.github.com/googleapis/java-bigquery/commit/fb6d5430b9f6e1285e7fa0102c78d9c4dd07c599)) +* update jmh.version to v1.25.2 ([#720](https://www.github.com/googleapis/java-bigquery/issues/720)) ([9afba31](https://www.github.com/googleapis/java-bigquery/commit/9afba319a62f54ee766d2476f5bd2ee91b3ba762)) + ### [1.117.1](https://www.github.com/googleapis/java-bigquery/compare/v1.117.0...v1.117.1) (2020-08-28) diff --git a/README.md b/README.md index ea1cf69b1703..f11d95111570 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.117.1' +compile 'com.google.cloud:google-cloud-bigquery:1.117.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.117.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.117.2" ``` [//]: # ({x-version-update-end}) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index fcf0fb405047..95fe03c42d7a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.117.1 + 1.117.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8859171e33bb..3d2869cecf2b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.117.2-SNAPSHOT + 1.117.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.117.2-SNAPSHOT + 1.117.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7fd0111cc7e5..20ae654df895 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.117.2-SNAPSHOT + 1.117.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.117.2-SNAPSHOT + 1.117.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 204946e267a8..632fe344c629 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.117.2-SNAPSHOT + 1.117.2 diff --git a/versions.txt b/versions.txt index ff135b4e8b59..c70d812f639d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.117.1:1.117.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.117.2:1.117.2 \ No newline at end of file From c126826f1ac272b3285473518beb5c3c3fe68f04 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 15 Sep 2020 08:14:03 +0000 Subject: [PATCH 0794/3441] chore: release 1.117.3-SNAPSHOT (#731) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 95fe03c42d7a..1160645393b4 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.117.2 + 1.117.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3d2869cecf2b..1bb06c500da2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.117.2 + 1.117.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.117.2 + 1.117.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 20ae654df895..6e11e0a4da1c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.117.2 + 1.117.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.117.2 + 1.117.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 632fe344c629..2d8dea602b1d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.117.2 + 1.117.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index c70d812f639d..6c05eec8fd05 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.117.2:1.117.2 \ No newline at end of file +google-cloud-bigquery:1.117.2:1.117.3-SNAPSHOT \ No newline at end of file From 061c1484518c50d4528723f64de880238a6c5373 Mon Sep 17 00:00:00 2001 From: twinkle-kadia <70891596+twinkle-kadia@users.noreply.github.com> Date: Wed, 16 Sep 2020 14:57:35 +0530 Subject: [PATCH 0795/3441] test: fix build (#734) * test: fix build * test: fix build * test: modify code --- .../cloud/bigquery/it/ITBigQueryTest.java | 58 +++++-------------- 1 file changed, 13 insertions(+), 45 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b9969001130c..05c33894b484 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -85,7 +85,6 @@ import com.google.cloud.bigquery.RoutineInfo; import com.google.cloud.bigquery.Schema; import com.google.cloud.bigquery.StandardSQLDataType; -import com.google.cloud.bigquery.StandardSQLTypeName; import com.google.cloud.bigquery.StandardTableDefinition; import com.google.cloud.bigquery.Table; import com.google.cloud.bigquery.TableDataWriteChannel; @@ -1553,51 +1552,20 @@ public void testStructNamedQueryParameters() throws InterruptedException { @Test public void testStructQuery() throws InterruptedException { - String tableName = "test_record_table_" + UUID.randomUUID().toString().substring(0, 8); - TableId tableId = TableId.of(DATASET, tableName); - try { - // create a table - Field booleanField = Field.of("booleanField", StandardSQLTypeName.BOOL); - Field integerField = Field.of("integerField", StandardSQLTypeName.INT64); - Field stringField = Field.of("stringField", StandardSQLTypeName.STRING); - Field recordField = - Field.newBuilder( - "recordField", - StandardSQLTypeName.STRUCT, - booleanField, - integerField, - stringField) - .setMode(Field.Mode.NULLABLE) - .build(); - Schema schema = Schema.of(recordField); - StandardTableDefinition tableDefinition = StandardTableDefinition.of(schema); - assertNotNull(bigquery.create(TableInfo.of(tableId, tableDefinition))); - // inserting data - Map content = new HashMap<>(); - content.put("booleanField", true); - content.put("integerField", 10); - content.put("stringField", "test-stringField"); - Map recordContent = new HashMap<>(); - recordContent.put("recordField", content); - InsertAllResponse response = - bigquery.insertAll(InsertAllRequest.newBuilder(tableId).addRow(recordContent).build()); - assertFalse(response.hasErrors()); - // query into a table - String query = String.format("SELECT * FROM %s.%s", DATASET, tableName); - QueryJobConfiguration config = - QueryJobConfiguration.newBuilder(query) - .setDefaultDataset(DATASET) - .setUseLegacySql(false) - .build(); - TableResult result = bigquery.query(config); - assertEquals(1, Iterables.size(result.getValues())); - for (FieldValueList values : result.iterateAll()) { - for (FieldValue record : values) { - assertsFieldValue(record); - } + // query into a table + String query = String.format("SELECT RecordField FROM %s.%s", DATASET, TABLE_ID.getTable()); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .build(); + TableResult result = bigquery.query(config); + assertEquals(2, Iterables.size(result.getValues())); + for (FieldValueList values : result.iterateAll()) { + for (FieldValue value : values) { + assertEquals(null, value.getRecordValue().get("StringField").getValue()); + assertEquals(true, value.getRecordValue().get("BooleanField").getBooleanValue()); } - } finally { - assertTrue(bigquery.delete(tableId)); } } From 38c8716e6aa3a8da08f51a688915d9e00936c6b8 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 16 Sep 2020 13:02:04 -0400 Subject: [PATCH 0796/3441] chore: comment out IT due to recent flakiness (#735) --- .../src/test/java/com/example/bigquery/UndeleteTableIT.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java index f6c725db6b28..61a91341f5fa 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java @@ -77,7 +77,8 @@ public void tearDown() { @Test public void testUndeleteTable() { - UndeleteTable.undeleteTable(BIGQUERY_DATASET_NAME, tableName, recoverTableName); - assertThat(bout.toString()).contains("Undelete table recovered successfully."); + // TODO(pmakani): revisit this in the future due to recent flakiness + // UndeleteTable.undeleteTable(BIGQUERY_DATASET_NAME, tableName, recoverTableName); + // assertThat(bout.toString()).contains("Undelete table recovered successfully."); } } From 2a0d86d2d07dd706fb7d943da6ebd5c9ac98dfca Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 17 Sep 2020 08:44:03 -0400 Subject: [PATCH 0797/3441] fix: throw jobexception for invalid multiple statements query (#732) * fix: throw jobexception for invalid multiple statements query add another test case add exception checking Job class update reload() method * add unit test --- .../java/com/google/cloud/bigquery/Job.java | 11 +++++- .../com/google/cloud/bigquery/JobTest.java | 21 ++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 34 +++++++++++++++++++ 3 files changed, 65 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index 2d859b046eaa..1a8c27ccdbeb 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -401,7 +401,16 @@ public boolean shouldRetry(Throwable prevThrowable, Job prevResponse) { */ public Job reload(JobOption... options) { checkNotDryRun("reload"); - return bigquery.getJob(getJobId(), options); + Job job = bigquery.getJob(getJobId(), options); + if (job != null && job.getStatus().getError() != null) { + // TODO(pmakani): change to BigQueryException when fast query path change is merged + throw new JobException( + getJobId(), + job.getStatus().getExecutionErrors() == null + ? ImmutableList.of(job.getStatus().getError()) + : ImmutableList.copyOf(job.getStatus().getExecutionErrors())); + } + return job; } /** diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index 1d34f4958335..370b5d6d1753 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -21,9 +21,11 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; @@ -36,6 +38,7 @@ import com.google.cloud.RetryOption; import com.google.cloud.bigquery.JobStatistics.CopyStatistics; import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.JobStatus.State; import com.google.common.collect.ImmutableList; import java.util.Collections; import org.junit.Assert; @@ -436,6 +439,24 @@ public void testReload() { verify(bigquery).getJob(JOB_INFO.getJobId()); } + @Test + public void testReloadJobException() { + JobInfo updatedInfo = JOB_INFO.toBuilder().setEtag("etag").build(); + Job expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(updatedInfo)); + BigQueryError bigQueryError = new BigQueryError("invalidQuery", "US", "invalidQuery"); + expectedJob = + expectedJob.toBuilder().setStatus(new JobStatus(State.DONE, bigQueryError, null)).build(); + ImmutableList bigQueryErrorList = ImmutableList.of(bigQueryError); + JobException jobException = new JobException(expectedJob.getJobId(), bigQueryErrorList); + when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(expectedJob).thenThrow(jobException); + try { + job.reload(); + fail("JobException expected"); + } catch (JobException e) { + assertNotNull(e.getErrors()); + } + } + @Test public void testReloadNull() { when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(null); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 05c33894b484..077c1e622319 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -65,6 +65,7 @@ import com.google.cloud.bigquery.InsertAllRequest; import com.google.cloud.bigquery.InsertAllResponse; import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobException; import com.google.cloud.bigquery.JobId; import com.google.cloud.bigquery.JobInfo; import com.google.cloud.bigquery.JobStatistics; @@ -1379,6 +1380,39 @@ public void testRoutineAPICreation() { assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); } + @Test + public void testSingleStatementsQueryException() throws InterruptedException { + String invalidQuery = + String.format("INSERT %s.%s VALUES('3', 10);", DATASET, TABLE_ID.getTable()); + try { + bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor(); + fail("BigQueryException was expected"); + } catch (BigQueryException e) { + BigQueryError error = e.getError(); + assertNotNull(error); + assertEquals("invalidQuery", error.getReason()); + assertNotNull(error.getMessage()); + } + } + + @Test + public void testMultipleStatementsQueryException() throws InterruptedException { + String invalidQuery = + String.format( + "INSERT %s.%s VALUES('3', 10); DELETE %s.%s where c2=3;", + DATASET, TABLE_ID.getTable(), DATASET, TABLE_ID.getTable()); + try { + bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor(); + fail("JobException was expected"); + } catch (JobException e) { + for (BigQueryError error : e.getErrors()) { + assertNotNull(error); + assertEquals("invalidQuery", error.getReason()); + assertNotNull(error.getMessage()); + } + } + } + @Test public void testQuery() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); From 8c92c9919b278bdb128be963391fc1870e69e343 Mon Sep 17 00:00:00 2001 From: shollyman Date: Thu, 17 Sep 2020 05:45:11 -0700 Subject: [PATCH 0798/3441] feat(bigquery): explicitly ask for dense responses from HTTP backend (#739) This change alters HTTP response behavior by eliding unnecessary whitespace from JSON responses. --- .../bigquery/spi/v2/HttpBigQueryRpc.java | 52 +++++++++++++++++-- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 9aaef6db5f79..7d920e6fe4f3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -120,6 +120,7 @@ public Dataset getDataset(String projectId, String datasetId, Map opt .datasets() .get(projectId, datasetId) .setFields(Option.FIELDS.getString(options)) + .setPrettyPrint(false) .execute(); } catch (IOException ex) { BigQueryException serviceException = translate(ex); @@ -137,6 +138,7 @@ public Tuple> listDatasets(String projectId, Map options) { return bigquery .datasets() .insert(dataset.getDatasetReference().getProjectId(), dataset) + .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { @@ -176,6 +179,7 @@ public Table create(Table table, Map options) { return bigquery .tables() .insert(reference.getProjectId(), reference.getDatasetId(), table) + .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { @@ -190,6 +194,7 @@ public Routine create(Routine routine, Map options) { return bigquery .routines() .insert(reference.getProjectId(), reference.getDatasetId(), routine) + .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { @@ -207,6 +212,7 @@ public Job create(Job job, Map options) { return bigquery .jobs() .insert(projectId, job) + .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { @@ -220,6 +226,7 @@ public boolean deleteDataset(String projectId, String datasetId, Map bigquery .datasets() .delete(projectId, datasetId) + .setPrettyPrint(false) .setDeleteContents(Option.DELETE_CONTENTS.getBoolean(options)) .execute(); return true; @@ -239,6 +246,7 @@ public Dataset patch(Dataset dataset, Map options) { return bigquery .datasets() .patch(reference.getProjectId(), reference.getDatasetId(), dataset) + .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { @@ -255,6 +263,7 @@ public Table patch(Table table, Map options) { return bigquery .tables() .patch(reference.getProjectId(), reference.getDatasetId(), reference.getTableId(), table) + .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { @@ -269,6 +278,7 @@ public Table getTable( return bigquery .tables() .get(projectId, datasetId, tableId) + .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { @@ -288,6 +298,7 @@ public Tuple> listTables( bigquery .tables() .list(projectId, datasetId) + .setPrettyPrint(false) .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)) .execute(); @@ -337,6 +348,7 @@ public Model patch(Model model, Map options) { return bigquery .models() .patch(reference.getProjectId(), reference.getDatasetId(), reference.getModelId(), model) + .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { @@ -351,6 +363,7 @@ public Model getModel( return bigquery .models() .get(projectId, datasetId, modelId) + .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { @@ -370,6 +383,7 @@ public Tuple> listModels( bigquery .models() .list(projectId, datasetId) + .setPrettyPrint(false) .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)) .execute(); @@ -402,6 +416,7 @@ public Routine update(Routine routine, Map options) { .routines() .update( reference.getProjectId(), reference.getDatasetId(), reference.getRoutineId(), routine) + .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { @@ -416,6 +431,7 @@ public Routine getRoutine( return bigquery .routines() .get(projectId, datasetId, routineId) + .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { @@ -435,6 +451,7 @@ public Tuple> listRoutines( bigquery .routines() .list(projectId, datasetId) + .setPrettyPrint(false) .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)) .execute(); @@ -463,7 +480,11 @@ public boolean deleteRoutine(String projectId, String datasetId, String routineI public TableDataInsertAllResponse insertAll( String projectId, String datasetId, String tableId, TableDataInsertAllRequest request) { try { - return bigquery.tabledata().insertAll(projectId, datasetId, tableId, request).execute(); + return bigquery + .tabledata() + .insertAll(projectId, datasetId, tableId, request) + .setPrettyPrint(false) + .execute(); } catch (IOException ex) { throw translate(ex); } @@ -476,6 +497,7 @@ public TableDataList listTableData( return bigquery .tabledata() .list(projectId, datasetId, tableId) + .setPrettyPrint(false) .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)) .setStartIndex( @@ -494,6 +516,7 @@ public Job getJob(String projectId, String jobId, String location, Map> listJobs(String projectId, Map op bigquery .jobs() .list(projectId) + .setPrettyPrint(false) .setAllUsers(Option.ALL_USERS.getBoolean(options)) .setFields(Option.FIELDS.getString(options)) .setStateFilter(Option.STATE_FILTER.>get(options)) @@ -562,7 +586,12 @@ public Job apply(JobList.Jobs jobPb) { @Override public boolean cancel(String projectId, String jobId, String location) { try { - bigquery.jobs().cancel(projectId, jobId).setLocation(location).execute(); + bigquery + .jobs() + .cancel(projectId, jobId) + .setLocation(location) + .setPrettyPrint(false) + .execute(); return true; } catch (IOException ex) { BigQueryException serviceException = translate(ex); @@ -580,6 +609,7 @@ public GetQueryResultsResponse getQueryResults( return bigquery .jobs() .getQueryResults(projectId, jobId) + .setPrettyPrint(false) .setLocation(location) .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)) @@ -676,7 +706,11 @@ public Policy getIamPolicy(String resourceId, Map options) { .setRequestedPolicyVersion( Option.REQUESTED_POLICY_VERSION.getLong(options).intValue())); } - return bigquery.tables().getIamPolicy(resourceId, policyRequest).execute(); + return bigquery + .tables() + .getIamPolicy(resourceId, policyRequest) + .setPrettyPrint(false) + .execute(); } catch (IOException ex) { throw translate(ex); } @@ -686,7 +720,11 @@ public Policy getIamPolicy(String resourceId, Map options) { public Policy setIamPolicy(String resourceId, Policy policy, Map options) { try { SetIamPolicyRequest policyRequest = new SetIamPolicyRequest().setPolicy(policy); - return bigquery.tables().setIamPolicy(resourceId, policyRequest).execute(); + return bigquery + .tables() + .setIamPolicy(resourceId, policyRequest) + .setPrettyPrint(false) + .execute(); } catch (IOException ex) { throw translate(ex); } @@ -698,7 +736,11 @@ public TestIamPermissionsResponse testIamPermissions( try { TestIamPermissionsRequest permissionsRequest = new TestIamPermissionsRequest().setPermissions(permissions); - return bigquery.tables().testIamPermissions(resourceId, permissionsRequest).execute(); + return bigquery + .tables() + .testIamPermissions(resourceId, permissionsRequest) + .setPrettyPrint(false) + .execute(); } catch (IOException ex) { throw translate(ex); } From 15e4554807cb84f13eacadb99af629c1dcaf96d2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 17 Sep 2020 12:54:04 +0000 Subject: [PATCH 0799/3441] chore: release 1.118.0 (#741) :robot: I have created a release \*beep\* \*boop\* --- ## [1.118.0](https://www.github.com/googleapis/java-bigquery/compare/v1.117.2...v1.118.0) (2020-09-17) ### Features * **bigquery:** explicitly ask for dense responses from HTTP backend ([#739](https://www.github.com/googleapis/java-bigquery/issues/739)) ([8c92c99](https://www.github.com/googleapis/java-bigquery/commit/8c92c9919b278bdb128be963391fc1870e69e343)) ### Bug Fixes * throw jobexception for invalid multiple statements query ([#732](https://www.github.com/googleapis/java-bigquery/issues/732)) ([2a0d86d](https://www.github.com/googleapis/java-bigquery/commit/2a0d86d2d07dd706fb7d943da6ebd5c9ac98dfca)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 12 ++++++++++++ README.md | 4 ++-- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 21 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e6a6425d419..ea74195f755d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [1.118.0](https://www.github.com/googleapis/java-bigquery/compare/v1.117.2...v1.118.0) (2020-09-17) + + +### Features + +* **bigquery:** explicitly ask for dense responses from HTTP backend ([#739](https://www.github.com/googleapis/java-bigquery/issues/739)) ([8c92c99](https://www.github.com/googleapis/java-bigquery/commit/8c92c9919b278bdb128be963391fc1870e69e343)) + + +### Bug Fixes + +* throw jobexception for invalid multiple statements query ([#732](https://www.github.com/googleapis/java-bigquery/issues/732)) ([2a0d86d](https://www.github.com/googleapis/java-bigquery/commit/2a0d86d2d07dd706fb7d943da6ebd5c9ac98dfca)) + ### [1.117.2](https://www.github.com/googleapis/java-bigquery/compare/v1.117.1...v1.117.2) (2020-09-15) diff --git a/README.md b/README.md index f11d95111570..3c7829207695 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.117.2' +compile 'com.google.cloud:google-cloud-bigquery:1.118.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.117.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.118.0" ``` [//]: # ({x-version-update-end}) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1160645393b4..8992a294d39a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.117.3-SNAPSHOT + 1.118.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1bb06c500da2..c7752f168ad1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.117.3-SNAPSHOT + 1.118.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.117.3-SNAPSHOT + 1.118.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 6e11e0a4da1c..d4196305ea30 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.117.3-SNAPSHOT + 1.118.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.117.3-SNAPSHOT + 1.118.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2d8dea602b1d..aeb83151e38d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.117.3-SNAPSHOT + 1.118.0 diff --git a/versions.txt b/versions.txt index 6c05eec8fd05..6d310375d794 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.117.2:1.117.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.118.0:1.118.0 \ No newline at end of file From 6029281ea019377534e7c3b0c6c0d05200d8375b Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 17 Sep 2020 12:36:09 -0400 Subject: [PATCH 0800/3441] chore: add sync-repo-settings.yaml to grant correct access (#738) in order to grant correct access to CODEOWNERS of this repo --- .github/sync-repo-settings.yaml | 52 +++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .github/sync-repo-settings.yaml diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml new file mode 100644 index 000000000000..25ba59a0f828 --- /dev/null +++ b/.github/sync-repo-settings.yaml @@ -0,0 +1,52 @@ +# Whether or not rebase-merging is enabled on this repository. +# Defaults to `true` +rebaseMergeAllowed: true + +# Whether or not squash-merging is enabled on this repository. +# Defaults to `true` +squashMergeAllowed: true + +# Whether or not PRs are merged with a merge commit on this repository. +# Defaults to `false` +mergeCommitAllowed: false + +# Rules for master branch protection +branchProtectionRules: +# Identifies the protection rule pattern. Name of the branch to be protected. +# Defaults to `master` +- pattern: master + # Can admins overwrite branch protection. + # Defaults to `true` + isAdminEnforced: true + # Number of approving reviews required to update matching branches. + # Defaults to `1` + requiredApprovingReviewCount: 1 + # Are reviews from code owners required to update matching branches. + # Defaults to `false` + requiresCodeOwnerReviews: true + # Require up to date branches + requiresStrictStatusChecks: false + # List of required status check contexts that must pass for commits to be accepted to matching branches. + requiredStatusCheckContexts: + - "dependencies (8)" + - "dependencies (11)" + - "linkage-monitor" + - "lint" + - "clirr" + - "units (7)" + - "units (8)" + - "units (11)" + - "Kokoro - Test: Integration" + - "cla/google" +# List of explicit permissions to add (additive only) +permissionRules: +# Team slug to add to repository permissions +- team: api-bigquery + # Access level required, one of push|pull|admin|maintain|triage + permission: maintain +- team: yoshi-java + permission: push +- team: yoshi-admins + permission: admin +- team: yoshi-java-admins + permission: admin From 4e0d5a9c66df281886463ffa951cede639e7d3ec Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 17 Sep 2020 16:44:04 +0000 Subject: [PATCH 0801/3441] chore: release 1.118.1-SNAPSHOT (#742) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8992a294d39a..fdf52abc1839 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.118.0 + 1.118.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c7752f168ad1..d6f4a4bb5908 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.118.0 + 1.118.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.118.0 + 1.118.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d4196305ea30..f5dde9168b7a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.118.0 + 1.118.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.118.0 + 1.118.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index aeb83151e38d..23b0a175c907 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.118.0 + 1.118.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 6d310375d794..97fdfe20f0f7 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.118.0:1.118.0 \ No newline at end of file +google-cloud-bigquery:1.118.0:1.118.1-SNAPSHOT \ No newline at end of file From a57dbdf96440bc7e51443efb99b007ac42cd481b Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 17 Sep 2020 15:57:42 -0400 Subject: [PATCH 0802/3441] feat: add additional time partitioning intervals (#737) * feat: add additional time partitioning intervals * docstring updates based on comments --- .../google/cloud/bigquery/TimePartitioning.java | 16 ++++++++++------ .../cloud/bigquery/TimePartitioningTest.java | 16 ++++++++++++++++ 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java index f37377552ebd..e874bc30be62 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java @@ -37,16 +37,20 @@ public abstract class TimePartitioning implements Serializable { private static final long serialVersionUID = -8565064035346940951L; /** - * The supported types are DAY, which will generate one partition per day, and HOUR, which will - * generate one partition per hour. (Providing an empty string used to cause an error, but in - * OnePlatform the field will be treated as unset.) + * [Optional] The supported types are DAY, HOUR, MONTH, and YEAR, which will generate one + * partition per day, hour, month, and year, respectively. When the interval is not specified, the + * default behavior is DAY. */ public enum Type { - /** Table is partitioned per day, based on data loading time. */ + /** Table is partitioned per day. */ DAY, - /** Table is partitioned per hour, based on data loading time. */ - HOUR + /** Table is partitioned per hour. */ + HOUR, + /** Table is partitioned per month. */ + MONTH, + /** Table is partitioned per year. */ + YEAR } TimePartitioning() { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java index ee7f5dde6167..1e48c817edf6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java @@ -29,6 +29,8 @@ public class TimePartitioningTest { private static final Type TYPE_DAY = Type.DAY; private static final Type TYPE_HOUR = Type.HOUR; + private static final Type TYPE_MONTH = Type.MONTH; + private static final Type TYPE_YEAR = Type.YEAR; private static final long EXPIRATION_MS = 42; private static final boolean REQUIRE_PARTITION_FILTER = false; private static final String FIELD = "field"; @@ -44,11 +46,25 @@ public class TimePartitioningTest { .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) .setField(FIELD) .build(); + private static final TimePartitioning TIME_PARTITIONING_MONTH = + TimePartitioning.newBuilder(TYPE_MONTH) + .setExpirationMs(EXPIRATION_MS) + .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) + .setField(FIELD) + .build(); + private static final TimePartitioning TIME_PARTITIONING_YEAR = + TimePartitioning.newBuilder(TYPE_YEAR) + .setExpirationMs(EXPIRATION_MS) + .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) + .setField(FIELD) + .build(); @Test public void testOf() { assertEquals(TYPE_DAY, TIME_PARTITIONING_DAY.getType()); assertEquals(TYPE_HOUR, TIME_PARTITIONING_HOUR.getType()); + assertEquals(TYPE_MONTH, TIME_PARTITIONING_MONTH.getType()); + assertEquals(TYPE_YEAR, TIME_PARTITIONING_YEAR.getType()); assertEquals(EXPIRATION_MS, TIME_PARTITIONING_DAY.getExpirationMs().longValue()); assertEquals(REQUIRE_PARTITION_FILTER, TIME_PARTITIONING_DAY.getRequirePartitionFilter()); assertEquals(FIELD, TIME_PARTITIONING_DAY.getField()); From 4c29f7a92933d3e03247802a6e967ce7fac5fa3d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 21 Sep 2020 17:52:04 +0000 Subject: [PATCH 0803/3441] chore: release 1.119.0 (#743) :robot: I have created a release \*beep\* \*boop\* --- ## [1.119.0](https://www.github.com/googleapis/java-bigquery/compare/v1.118.0...v1.119.0) (2020-09-17) ### Features * add additional time partitioning intervals ([#737](https://www.github.com/googleapis/java-bigquery/issues/737)) ([a57dbdf](https://www.github.com/googleapis/java-bigquery/commit/a57dbdf96440bc7e51443efb99b007ac42cd481b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 7 +++++++ README.md | 4 ++-- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea74195f755d..359b93c25c83 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.119.0](https://www.github.com/googleapis/java-bigquery/compare/v1.118.0...v1.119.0) (2020-09-17) + + +### Features + +* add additional time partitioning intervals ([#737](https://www.github.com/googleapis/java-bigquery/issues/737)) ([a57dbdf](https://www.github.com/googleapis/java-bigquery/commit/a57dbdf96440bc7e51443efb99b007ac42cd481b)) + ## [1.118.0](https://www.github.com/googleapis/java-bigquery/compare/v1.117.2...v1.118.0) (2020-09-17) diff --git a/README.md b/README.md index 3c7829207695..583de967a899 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.118.0' +compile 'com.google.cloud:google-cloud-bigquery:1.119.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.118.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.119.0" ``` [//]: # ({x-version-update-end}) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index fdf52abc1839..c041f81fb640 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.118.1-SNAPSHOT + 1.119.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d6f4a4bb5908..fbcd5f4c8e81 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.118.1-SNAPSHOT + 1.119.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.118.1-SNAPSHOT + 1.119.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f5dde9168b7a..bb82c89fbadc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.118.1-SNAPSHOT + 1.119.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.118.1-SNAPSHOT + 1.119.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 23b0a175c907..374a46f6e2bf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.118.1-SNAPSHOT + 1.119.0 diff --git a/versions.txt b/versions.txt index 97fdfe20f0f7..7f8c97d8e083 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.118.0:1.118.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.119.0:1.119.0 \ No newline at end of file From 696be526b8a4b988a973a2f51a48467faefd8de1 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 21 Sep 2020 14:56:11 -0700 Subject: [PATCH 0804/3441] chore(java): set yoshi-java as default CODEOWNER (#745) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/859d9a97-f544-49af-b5bb-6af06fb6542a/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/80003a3de2d8a75f5b47cb2e77e018f7f0f776cc --- .github/CODEOWNERS | 1 + synth.metadata | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index c095544161cf..f7b843e66849 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,6 +5,7 @@ # https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax # The @googleapis/api-bigquery is the default owner for changes in this repo +* @googleapis/yoshi-java @googleapis/api-bigquery **/*.java @googleapis/api-bigquery # The java-samples-reviewers team is the default owner for samples changes diff --git a/synth.metadata b/synth.metadata index fd1c73c930fe..c314b7f946a1 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "2c679675645c4314df71481c02752cc49e80f81a" + "sha": "4c29f7a92933d3e03247802a6e967ce7fac5fa3d" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "019c7168faa0e56619f792693a8acdb30d6de19b" + "sha": "80003a3de2d8a75f5b47cb2e77e018f7f0f776cc" } } ], @@ -23,6 +23,7 @@ ".github/PULL_REQUEST_TEMPLATE.md", ".github/release-please.yml", ".github/trusted-contribution.yml", + ".github/workflows/auto-release.yaml", ".github/workflows/ci.yaml", ".github/workflows/samples.yaml", ".kokoro/build.bat", From f2ecf15f7346cfee5d4a72e97b9adf8fa42c868e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 21 Sep 2020 22:14:02 +0000 Subject: [PATCH 0805/3441] chore: release 1.119.1-SNAPSHOT (#746) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c041f81fb640..eef41a0cbe9d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.119.0 + 1.119.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index fbcd5f4c8e81..1acc7c26b68b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.119.0 + 1.119.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.119.0 + 1.119.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bb82c89fbadc..f2cdc4428a30 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.119.0 + 1.119.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.119.0 + 1.119.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 374a46f6e2bf..0572539804fa 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.119.0 + 1.119.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 7f8c97d8e083..7e000e3adee7 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.119.0:1.119.0 \ No newline at end of file +google-cloud-bigquery:1.119.0:1.119.1-SNAPSHOT \ No newline at end of file From 64a7d65ff97152c49194f507562266c1ba6f0f3b Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 22 Sep 2020 12:20:36 -0400 Subject: [PATCH 0806/3441] feat: sql fast path impl (#509) * feat: sql fast path impl add QueryJobConfig to QueryRequest logic high level mode reset private methods refactor: modified code update logic add test refactor: update code and test case add integration tests code format add clir ignore and remove pom file feat: add more assert nit update * add logic for DML and DDL queries enable requestId add integration tests for fast path multipages query, DML, and DDL queries fix requestId logic update QueryRequestInfo and add mock test add mock test cases for SQL, DML, and DDL clean up code fix IT add schema test * update ITs to check table content correctness, update fastquery logic nit nit * add test for bogus query * add check for idempotent requestId * update QueryRequestInfo and error handling logic * add mock test for query JobException * update mock test * fix unit tests, nit update * update exception handling from JobException to BigQueryException * update based on comments * nit * update based on comments * add maxResult support optimization changes * update code * add test coverage to address: google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java#L69-L71 Added lines #L69 - L71 were not covered by tests * lint fix * feat: add more code cov * set method back * feat: code cove * add codecov Co-authored-by: Praful Makani --- .../clirr-ignored-differences.xml | 5 + .../google/cloud/bigquery/BigQueryError.java | 2 +- .../cloud/bigquery/BigQueryException.java | 35 +- .../google/cloud/bigquery/BigQueryImpl.java | 109 + .../cloud/bigquery/QueryJobConfiguration.java | 34 +- .../cloud/bigquery/QueryRequestInfo.java | 148 + .../cloud/bigquery/spi/v2/BigQueryRpc.java | 18 + .../bigquery/spi/v2/HttpBigQueryRpc.java | 11 + .../cloud/bigquery/BigQueryImplTest.java | 262 + .../cloud/bigquery/QueryRequestInfoTest.java | 173 + .../cloud/bigquery/it/ITBigQueryTest.java | 234 +- .../src/test/resources/QueryTestData.csv | 313348 +++++++++++++++ 12 files changed, 314367 insertions(+), 12 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java create mode 100644 google-cloud-bigquery/src/test/resources/QueryTestData.csv diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index bc998edc333f..3f238e1625e4 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -32,4 +32,9 @@ com/google/cloud/bigquery/spi/v2/BigQueryRpc com.google.api.services.bigquery.model.TestIamPermissionsResponse testIamPermissions(java.lang.String, java.util.List, java.util.Map) + + com/google/cloud/bigquery/spi/v2/BigQueryRpc + com.google.api.services.bigquery.model.QueryResponse queryRpc(java.lang.String, com.google.api.services.bigquery.model.QueryRequest) + 7012 + diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java index c64d55ea08a5..ef638aa1bed7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java @@ -84,7 +84,7 @@ public String getLocation() { return location; } - String getDebugInfo() { + public String getDebugInfo() { return debugInfo; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java index 4b8e2ab47c76..4f93c42bb7aa 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java @@ -21,6 +21,8 @@ import com.google.cloud.http.BaseHttpServiceException; import com.google.common.collect.ImmutableSet; import java.io.IOException; +import java.util.Arrays; +import java.util.List; import java.util.Objects; import java.util.Set; import java.util.concurrent.ExecutionException; @@ -39,7 +41,7 @@ public final class BigQueryException extends BaseHttpServiceException { new Error(500, null), new Error(502, null), new Error(503, null), new Error(504, null)); private static final long serialVersionUID = -5006625989225438209L; - private final BigQueryError error; + private final List errors; public BigQueryException(int code, String message) { this(code, message, (Throwable) null); @@ -47,21 +49,28 @@ public BigQueryException(int code, String message) { public BigQueryException(int code, String message, Throwable cause) { super(code, message, null, true, RETRYABLE_ERRORS, cause); - this.error = null; + this.errors = null; } public BigQueryException(int code, String message, BigQueryError error) { super(code, message, error != null ? error.getReason() : null, true, RETRYABLE_ERRORS); - this.error = error; + this.errors = Arrays.asList(error); + } + + public BigQueryException(List errors) { + super(0, null, null, false, RETRYABLE_ERRORS, null); + this.errors = errors; } public BigQueryException(IOException exception) { super(exception, true, RETRYABLE_ERRORS); - BigQueryError error = null; + List errors = null; if (getReason() != null) { - error = new BigQueryError(getReason(), getLocation(), getMessage(), getDebugInfo()); + errors = + Arrays.asList( + new BigQueryError(getReason(), getLocation(), getMessage(), getDebugInfo())); } - this.error = error; + this.errors = errors; } /** @@ -69,7 +78,15 @@ public BigQueryException(IOException exception) { * exists. */ public BigQueryError getError() { - return error; + return errors == null || errors.isEmpty() || errors.size() == 0 ? null : errors.get(0); + } + + /** + * Returns a list of {@link BigQueryError}s that caused this exception. Returns {@code null} if + * none exists. + */ + public List getErrors() { + return errors; } @Override @@ -81,12 +98,12 @@ public boolean equals(Object obj) { return false; } BigQueryException other = (BigQueryException) obj; - return super.equals(other) && Objects.equals(error, other.error); + return super.equals(other) && Objects.equals(errors, other.errors); } @Override public int hashCode() { - return Objects.hash(super.hashCode(), error); + return Objects.hash(super.hashCode(), errors); } /** diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 3b4d809804ee..d53f459090a2 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -26,6 +26,7 @@ import com.google.api.gax.paging.Page; import com.google.api.services.bigquery.model.ErrorProto; import com.google.api.services.bigquery.model.GetQueryResultsResponse; +import com.google.api.services.bigquery.model.QueryRequest; import com.google.api.services.bigquery.model.TableDataInsertAllRequest; import com.google.api.services.bigquery.model.TableDataInsertAllRequest.Rows; import com.google.api.services.bigquery.model.TableDataInsertAllResponse; @@ -48,6 +49,7 @@ import com.google.common.collect.FluentIterable; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; import com.google.common.collect.Maps; import java.util.ArrayList; import java.util.List; @@ -198,6 +200,43 @@ public Page getNextPage() { } } + private class QueryPageFetcher extends Thread implements NextPageFetcher { + + private static final long serialVersionUID = -8501991114794410114L; + private final Map requestOptions; + private final BigQueryOptions serviceOptions; + private Job job; + private final TableId table; + private final Schema schema; + + QueryPageFetcher( + JobId jobId, + Schema schema, + BigQueryOptions serviceOptions, + String cursor, + Map optionMap) { + this.requestOptions = + PageImpl.nextRequestOptions(BigQueryRpc.Option.PAGE_TOKEN, cursor, optionMap); + this.serviceOptions = serviceOptions; + this.job = getJob(jobId); + this.table = ((QueryJobConfiguration) job.getConfiguration()).getDestinationTable(); + this.schema = schema; + } + + @Override + public Page getNextPage() { + while (!JobStatus.State.DONE.equals(job.getStatus().getState())) { + try { + sleep(5000); + } catch (InterruptedException ex) { + throw new RuntimeException(ex.getMessage()); + } + job = job.reload(); + } + return listTableData(table, schema, serviceOptions, requestOptions).x(); + } + } + private final BigQueryRpc bigQueryRpc; BigQueryImpl(BigQueryOptions options) { @@ -1184,9 +1223,79 @@ public Boolean call() { public TableResult query(QueryJobConfiguration configuration, JobOption... options) throws InterruptedException, JobException { Job.checkNotDryRun(configuration, "query"); + + // If all parameters passed in configuration are supported by the query() method on the backend, + // put on fast path + QueryRequestInfo requestInfo = new QueryRequestInfo(configuration); + if (requestInfo.isFastQuerySupported()) { + String projectId = getOptions().getProjectId(); + QueryRequest content = requestInfo.toPb(); + return queryRpc(projectId, content, options); + } + // Otherwise, fall back to the existing create query job logic return create(JobInfo.of(configuration), options).getQueryResults(); } + private TableResult queryRpc( + final String projectId, final QueryRequest content, JobOption... options) { + com.google.api.services.bigquery.model.QueryResponse results; + try { + results = + runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.QueryResponse call() { + return bigQueryRpc.queryRpc(projectId, content); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); + } catch (RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + + if (results.getErrors() != null) { + List bigQueryErrors = + Lists.transform(results.getErrors(), BigQueryError.FROM_PB_FUNCTION); + // Throwing BigQueryException since there may be no JobId and we want to stay consistent + // with the case where there there is a HTTP error + throw new BigQueryException(bigQueryErrors); + } + + Schema schema = results.getSchema() == null ? null : Schema.fromPb(results.getSchema()); + Long numRows; + if (results.getNumDmlAffectedRows() == null && results.getTotalRows() == null) { + numRows = 0L; + } else if (results.getNumDmlAffectedRows() != null) { + numRows = results.getNumDmlAffectedRows(); + } else { + numRows = results.getTotalRows().longValue(); + } + + if (results.getPageToken() != null) { + JobId jobId = JobId.fromPb(results.getJobReference()); + String cursor = results.getPageToken(); + return new TableResult( + schema, + numRows, + new PageImpl<>( + // fetch next pages of results + new QueryPageFetcher(jobId, schema, getOptions(), cursor, optionMap(options)), + cursor, + // cache first page of result + transformTableData(results.getRows(), schema))); + } + // only 1 page of result + return new TableResult( + schema, + numRows, + new PageImpl<>( + new TableDataPageFetcher(null, schema, getOptions(), null, optionMap(options)), + null, + transformTableData(results.getRows(), schema))); + } + @Override public TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption... options) throws InterruptedException, JobException { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index c26d5cf0c894..927ae846cd90 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -69,6 +69,8 @@ public final class QueryJobConfiguration extends JobConfiguration { private final Map labels; private final RangePartitioning rangePartitioning; private final List connectionProperties; + // maxResults is only used for fast query path + private final Long maxResults; /** * Priority levels for a query. If not specified the priority is assumed to be {@link @@ -118,6 +120,7 @@ public static final class Builder private Map labels; private RangePartitioning rangePartitioning; private List connectionProperties; + private Long maxResults; private Builder() { super(Type.QUERY); @@ -150,6 +153,7 @@ private Builder(QueryJobConfiguration jobConfiguration) { this.labels = jobConfiguration.labels; this.rangePartitioning = jobConfiguration.rangePartitioning; this.connectionProperties = jobConfiguration.connectionProperties; + this.maxResults = jobConfiguration.maxResults; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -603,6 +607,20 @@ public Builder setConnectionProperties(List connectionProper return this; } + /** + * This is only supported in the fast query path [Optional] The maximum number of rows of data + * to return per page of results. Setting this flag to a small value such as 1000 and then + * paging through results might improve reliability when the query result set is large. In + * addition to this limit, responses are also limited to 10 MB. By default, there is no maximum + * row count, and only the byte limit applies. + * + * @param maxResults maxResults or {@code null} for none + */ + public Builder setMaxResults(Long maxResults) { + this.maxResults = maxResults; + return this; + } + public QueryJobConfiguration build() { return new QueryJobConfiguration(this); } @@ -644,6 +662,7 @@ private QueryJobConfiguration(Builder builder) { this.labels = builder.labels; this.rangePartitioning = builder.rangePartitioning; this.connectionProperties = builder.connectionProperties; + this.maxResults = builder.maxResults; } /** @@ -833,6 +852,19 @@ public List getConnectionProperties() { return connectionProperties; } + /** + * This is only supported in the fast query path [Optional] The maximum number of rows of data to + * return per page of results. Setting this flag to a small value such as 1000 and then paging + * through results might improve reliability when the query result set is large. In addition to + * this limit, responses are also limited to 10 MB. By default, there is no maximum row count, and + * only the byte limit applies. + * + * @return value or {@code null} for none + */ + public Long getMaxResults() { + return maxResults; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -851,7 +883,7 @@ ToStringHelper toStringHelper() { .add("flattenResults", flattenResults) .add("priority", priority) .add("tableDefinitions", tableDefinitions) - .add("userQueryCache", useQueryCache) + .add("useQueryCache", useQueryCache) .add("userDefinedFunctions", userDefinedFunctions) .add("createDisposition", createDisposition) .add("writeDisposition", writeDisposition) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java new file mode 100644 index 000000000000..2882e788bcc3 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java @@ -0,0 +1,148 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.QueryParameter; +import com.google.api.services.bigquery.model.QueryRequest; +import com.google.common.base.MoreObjects; +import com.google.common.base.Objects; +import com.google.common.collect.Lists; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +final class QueryRequestInfo { + + private static final String REQUEST_ID = UUID.randomUUID().toString(); + private QueryJobConfiguration config; + private final List connectionProperties; + private final DatasetId defaultDataset; + private final Boolean dryRun; + private final Map labels; + private final Long maximumBytesBilled; + private final Long maxResults; + private final String query; + private final List queryParameters; + private final Boolean useQueryCache; + private final Boolean useLegacySql; + + QueryRequestInfo(QueryJobConfiguration config) { + this.config = config; + this.connectionProperties = config.getConnectionProperties(); + this.defaultDataset = config.getDefaultDataset(); + this.dryRun = config.dryRun(); + this.labels = config.getLabels(); + this.maximumBytesBilled = config.getMaximumBytesBilled(); + this.maxResults = config.getMaxResults(); + this.query = config.getQuery(); + this.queryParameters = config.toPb().getQuery().getQueryParameters(); + this.useLegacySql = config.useLegacySql(); + this.useQueryCache = config.useQueryCache(); + } + + boolean isFastQuerySupported() { + return config.getClustering() == null + && config.getCreateDisposition() == null + && config.getDestinationEncryptionConfiguration() == null + && config.getDestinationTable() == null + && config.getJobTimeoutMs() == null + && config.getMaximumBillingTier() == null + && config.getPriority() == null + && config.getRangePartitioning() == null + && config.getSchemaUpdateOptions() == null + && config.getTableDefinitions() == null + && config.getTimePartitioning() == null + && config.getUserDefinedFunctions() == null + && config.getWriteDisposition() == null; + } + + QueryRequest toPb() { + QueryRequest request = new QueryRequest(); + if (connectionProperties != null) { + request.setConnectionProperties( + Lists.transform(connectionProperties, ConnectionProperty.TO_PB_FUNCTION)); + } + if (defaultDataset != null) { + request.setDefaultDataset(defaultDataset.toPb()); + } + if (dryRun != null) { + request.setDryRun(dryRun); + } + if (labels != null) { + request.setLabels(labels); + } + if (maximumBytesBilled != null) { + request.setMaximumBytesBilled(maximumBytesBilled); + } + if (maxResults != null) { + request.setMaxResults(maxResults); + } + request.setQuery(query); + request.setRequestId(REQUEST_ID); + if (queryParameters != null) { + request.setQueryParameters(queryParameters); + } + if (useLegacySql != null) { + request.setUseLegacySql(useLegacySql); + } + if (useQueryCache != null) { + request.setUseQueryCache(useQueryCache); + } + return request; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("connectionProperties", connectionProperties) + .add("defaultDataset", defaultDataset) + .add("dryRun", dryRun) + .add("labels", labels) + .add("maximumBytesBilled", maximumBytesBilled) + .add("maxResults", maxResults) + .add("query", query) + .add("requestId", REQUEST_ID) + .add("queryParameters", queryParameters) + .add("useQueryCache", useQueryCache) + .add("useLegacySql", useLegacySql) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hashCode( + connectionProperties, + defaultDataset, + dryRun, + labels, + maximumBytesBilled, + maxResults, + query, + queryParameters, + REQUEST_ID, + useQueryCache, + useLegacySql); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(QueryRequestInfo.class) + && java.util.Objects.equals(toPb(), ((QueryRequestInfo) obj).toPb()); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index c0b9bb4be070..c9b0f0a21de7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -17,11 +17,14 @@ package com.google.cloud.bigquery.spi.v2; import com.google.api.core.InternalExtensionOnly; +import com.google.api.services.bigquery.Bigquery.Jobs.Query; import com.google.api.services.bigquery.model.Dataset; import com.google.api.services.bigquery.model.GetQueryResultsResponse; import com.google.api.services.bigquery.model.Job; import com.google.api.services.bigquery.model.Model; import com.google.api.services.bigquery.model.Policy; +import com.google.api.services.bigquery.model.QueryRequest; +import com.google.api.services.bigquery.model.QueryResponse; import com.google.api.services.bigquery.model.Routine; import com.google.api.services.bigquery.model.Table; import com.google.api.services.bigquery.model.TableDataInsertAllRequest; @@ -275,6 +278,21 @@ TableDataList listTableData( GetQueryResultsResponse getQueryResults( String projectId, String jobId, String location, Map options); + /** + * Runs a BigQuery SQL query synchronously and returns query results if the query completes within + * a specified timeout. + * + *

    Create a request for the method "jobs.query". + * + *

    This request holds the parameters needed by the bigquery server. After setting any optional + * parameters, call the {@link Query#execute()} method to invoke the remote operation. + * + * @param projectId Project ID of the project billed for the query + * @param content the {@link com.google.api.services.bigquery.model.QueryRequest} + * @return the request + */ + QueryResponse queryRpc(String projectId, QueryRequest content); + /** * Opens a resumable upload session to load data into a BigQuery table and returns an upload URI. * diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 7d920e6fe4f3..60cb57d8a22d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -48,6 +48,8 @@ import com.google.api.services.bigquery.model.Model; import com.google.api.services.bigquery.model.ModelReference; import com.google.api.services.bigquery.model.Policy; +import com.google.api.services.bigquery.model.QueryRequest; +import com.google.api.services.bigquery.model.QueryResponse; import com.google.api.services.bigquery.model.Routine; import com.google.api.services.bigquery.model.RoutineReference; import com.google.api.services.bigquery.model.SetIamPolicyRequest; @@ -624,6 +626,15 @@ public GetQueryResultsResponse getQueryResults( } } + @Override + public QueryResponse queryRpc(String projectId, QueryRequest content) { + try { + return bigquery.jobs().query(projectId, content).execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + @Override public String open(Job loadJob) { try { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index b04aa4577ae7..9ed0edbae00c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -19,6 +19,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; @@ -35,6 +36,7 @@ import com.google.api.services.bigquery.model.ErrorProto; import com.google.api.services.bigquery.model.GetQueryResultsResponse; import com.google.api.services.bigquery.model.JobConfigurationQuery; +import com.google.api.services.bigquery.model.QueryRequest; import com.google.api.services.bigquery.model.TableCell; import com.google.api.services.bigquery.model.TableDataInsertAllRequest; import com.google.api.services.bigquery.model.TableDataInsertAllResponse; @@ -212,6 +214,16 @@ public class BigQueryImplTest { .setDefaultDataset(DatasetId.of(PROJECT, DATASET)) .setUseQueryCache(false) .build(); + private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_FOR_DMLQUERY = + QueryJobConfiguration.newBuilder("DML") + .setDefaultDataset(DatasetId.of(PROJECT, DATASET)) + .setUseQueryCache(false) + .build(); + private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_FOR_DDLQUERY = + QueryJobConfiguration.newBuilder("DDL") + .setDefaultDataset(DatasetId.of(PROJECT, DATASET)) + .setUseQueryCache(false) + .build(); private static final JobInfo JOB_INFO = JobInfo.newBuilder(QUERY_JOB_CONFIGURATION_FOR_QUERY) .setJobId(JobId.of(PROJECT, JOB)) @@ -505,6 +517,9 @@ public class BigQueryImplTest { @Captor private ArgumentCaptor jobCapture; @Captor private ArgumentCaptor capturedBuffer; + @Captor + private ArgumentCaptor requestPbCapture; + private TableDataWriteChannel writer; private BigQueryOptions createBigQueryOptionsForProject( @@ -1822,6 +1837,89 @@ public void testQueryRequestCompleted() throws InterruptedException { .listTableData(PROJECT, DATASET, TABLE, Collections.emptyMap()); } + @Test + public void testFastQueryRequestCompleted() throws InterruptedException { + com.google.api.services.bigquery.model.QueryResponse queryResponsePb = + new com.google.api.services.bigquery.model.QueryResponse() + .setCacheHit(false) + .setJobComplete(true) + .setKind("bigquery#queryResponse") + .setPageToken(null) + .setRows(ImmutableList.of(TABLE_ROW)) + .setSchema(TABLE_SCHEMA.toPb()) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)); + + QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_QUERY); + + when(bigqueryRpcMock.queryRpc(PROJECT, requestInfo.toPb())).thenReturn(queryResponsePb); + + bigquery = options.getService(); + TableResult result = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY); + assertNull(result.getNextPage()); + assertNull(result.getNextPageToken()); + assertFalse(result.hasNextPage()); + assertThat(result.getSchema()).isEqualTo(TABLE_SCHEMA); + assertThat(result.getTotalRows()).isEqualTo(1); + for (FieldValueList row : result.getValues()) { + assertThat(row.get(0).getBooleanValue()).isFalse(); + assertThat(row.get(1).getLongValue()).isEqualTo(1); + } + verify(bigqueryRpcMock).queryRpc(PROJECT, requestInfo.toPb()); + } + + @Test + public void testFastQueryMultiplePages() throws InterruptedException { + JobId queryJob = JobId.of(PROJECT, JOB); + com.google.api.services.bigquery.model.Job responseJob = + new com.google.api.services.bigquery.model.Job() + .setConfiguration(QUERY_JOB_CONFIGURATION_FOR_QUERY.toPb()) + .setJobReference(queryJob.toPb()) + .setId(JOB) + .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")); + responseJob.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); + when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)).thenReturn(responseJob); + when(bigqueryRpcMock.listTableData( + PROJECT, + DATASET, + TABLE, + BigQueryImpl.optionMap(BigQuery.TableDataListOption.pageToken(CURSOR)))) + .thenReturn( + new TableDataList() + .setPageToken(CURSOR) + .setRows(ImmutableList.of(TABLE_ROW)) + .setTotalRows(1L)); + + com.google.api.services.bigquery.model.QueryResponse queryResponsePb = + new com.google.api.services.bigquery.model.QueryResponse() + .setCacheHit(false) + .setJobReference(queryJob.toPb()) + .setJobComplete(true) + .setKind("bigquery#queryResponse") + .setPageToken(CURSOR) + .setRows(ImmutableList.of(TABLE_ROW)) + .setSchema(TABLE_SCHEMA.toPb()) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)); + + QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_QUERY); + when(bigqueryRpcMock.queryRpc(PROJECT, requestInfo.toPb())).thenReturn(queryResponsePb); + + bigquery = options.getService(); + TableResult result = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY); + assertTrue(result.hasNextPage()); + assertNotNull(result.getNextPageToken()); + assertNotNull(result.getNextPage()); + verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .listTableData( + PROJECT, + DATASET, + TABLE, + BigQueryImpl.optionMap(BigQuery.TableDataListOption.pageToken(CURSOR))); + verify(bigqueryRpcMock).queryRpc(PROJECT, requestInfo.toPb()); + } + @Test public void testQueryRequestCompletedOptions() throws InterruptedException { JobId queryJob = JobId.of(PROJECT, JOB); @@ -2085,6 +2183,170 @@ public void testQueryDryRun() throws Exception { } } + @Test + public void testFastQuerySQLShouldRetry() throws Exception { + com.google.api.services.bigquery.model.QueryResponse responsePb = + new com.google.api.services.bigquery.model.QueryResponse() + .setCacheHit(false) + .setJobComplete(true) + .setRows(ImmutableList.of(TABLE_ROW)) + .setPageToken(null) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)) + .setSchema(TABLE_SCHEMA.toPb()); + + QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_QUERY); + QueryRequest requestPb = requestInfo.toPb(); + + when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + .thenThrow(new BigQueryException(500, "InternalError")) + .thenThrow(new BigQueryException(502, "Bad Gateway")) + .thenThrow(new BigQueryException(503, "Service Unavailable")) + .thenThrow(new BigQueryException(504, "Gateway Timeout")) + .thenReturn(responsePb); + + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + + TableResult response = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY); + assertEquals(TABLE_SCHEMA, response.getSchema()); + assertEquals(1, response.getTotalRows()); + + List allRequests = requestPbCapture.getAllValues(); + boolean idempotent = true; + String requestId = requestPb.getRequestId(); + for (QueryRequest request : allRequests) { + idempotent = request.getRequestId().equals(requestId); + } + assertTrue(idempotent); + + verify(bigqueryRpcMock, times(5)).queryRpc(PROJECT, requestPb); + } + + @Test + public void testFastQueryDMLShouldRetry() throws Exception { + com.google.api.services.bigquery.model.QueryResponse responsePb = + new com.google.api.services.bigquery.model.QueryResponse() + .setCacheHit(false) + .setJobComplete(true) + .setRows(ImmutableList.of(TABLE_ROW)) + .setPageToken(null) + .setTotalBytesProcessed(42L) + .setNumDmlAffectedRows(1L) + .setSchema(TABLE_SCHEMA.toPb()); + + QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY); + QueryRequest requestPb = requestInfo.toPb(); + + when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + .thenThrow(new BigQueryException(500, "InternalError")) + .thenThrow(new BigQueryException(502, "Bad Gateway")) + .thenThrow(new BigQueryException(503, "Service Unavailable")) + .thenThrow(new BigQueryException(504, "Gateway Timeout")) + .thenReturn(responsePb); + + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + + TableResult response = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY); + assertEquals(TABLE_SCHEMA, response.getSchema()); + assertEquals(1, response.getTotalRows()); + + List allRequests = requestPbCapture.getAllValues(); + boolean idempotent = true; + String requestId = requestPb.getRequestId(); + for (QueryRequest request : allRequests) { + idempotent = request.getRequestId().equals(requestId); + } + assertTrue(idempotent); + + verify(bigqueryRpcMock, times(5)).queryRpc(PROJECT, requestPb); + } + + @Test + public void testFastQueryDDLShouldRetry() throws Exception { + com.google.api.services.bigquery.model.QueryResponse responsePb = + new com.google.api.services.bigquery.model.QueryResponse() + .setCacheHit(false) + .setJobComplete(true) + .setRows(ImmutableList.of(TABLE_ROW)) + .setPageToken(null) + .setTotalBytesProcessed(42L) + .setSchema(TABLE_SCHEMA.toPb()); + + QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_DDLQUERY); + QueryRequest requestPb = requestInfo.toPb(); + + when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + .thenThrow(new BigQueryException(500, "InternalError")) + .thenThrow(new BigQueryException(502, "Bad Gateway")) + .thenThrow(new BigQueryException(503, "Service Unavailable")) + .thenThrow(new BigQueryException(504, "Gateway Timeout")) + .thenReturn(responsePb); + + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + + TableResult response = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_DDLQUERY); + assertEquals(TABLE_SCHEMA, response.getSchema()); + assertEquals(0, response.getTotalRows()); + + List allRequests = requestPbCapture.getAllValues(); + boolean idempotent = true; + String requestId = requestPb.getRequestId(); + for (QueryRequest request : allRequests) { + idempotent = request.getRequestId().equals(requestId); + } + assertTrue(idempotent); + + verify(bigqueryRpcMock, times(5)).queryRpc(PROJECT, requestPb); + } + + @Test + public void testFastQueryBigQueryException() throws InterruptedException { + List errorProtoList = + ImmutableList.of( + new ErrorProto() + .setMessage("Backend error1") + .setLocation("testLocation1") + .setReason("Backend issue1"), + new ErrorProto() + .setMessage("Backend error2") + .setLocation("testLocation2") + .setReason("Backend issue2")); + com.google.api.services.bigquery.model.QueryResponse responsePb = + new com.google.api.services.bigquery.model.QueryResponse() + .setJobComplete(true) + .setPageToken(null) + .setErrors(errorProtoList); + + QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_QUERY); + QueryRequest requestPb = requestInfo.toPb(); + + when(bigqueryRpcMock.queryRpc(PROJECT, requestPb)).thenReturn(responsePb); + + bigquery = options.getService(); + try { + bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY); + fail("BigQueryException expected"); + } catch (BigQueryException ex) { + assertEquals(Lists.transform(errorProtoList, BigQueryError.FROM_PB_FUNCTION), ex.getErrors()); + } + verify(bigqueryRpcMock).queryRpc(PROJECT, requestPb); + } + @Test public void testCreateRoutine() { RoutineInfo routineInfo = ROUTINE_INFO.setProjectId(OTHER_PROJECT); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java new file mode 100644 index 000000000000..48fb2dbc4235 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java @@ -0,0 +1,173 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.api.services.bigquery.model.QueryRequest; +import com.google.cloud.bigquery.JobInfo.CreateDisposition; +import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.QueryJobConfiguration.Priority; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import java.util.List; +import java.util.Map; +import org.junit.Test; + +public class QueryRequestInfoTest { + + private static final String TEST_PROJECT_ID = "test-project-id"; + private static final String QUERY = "BigQuery SQL"; + private static final DatasetId DATASET_ID = DatasetId.of("dataset"); + private static final TableId TABLE_ID = TableId.of("dataset", "table"); + private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); + private static final String KEY = "time_zone"; + private static final String VALUE = "US/Eastern"; + private static final ConnectionProperty CONNECTION_PROPERTY = + ConnectionProperty.newBuilder().setKey(KEY).setValue(VALUE).build(); + private static final List CONNECTION_PROPERTIES = + ImmutableList.of(CONNECTION_PROPERTY); + private static final Field FIELD_SCHEMA1 = + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("FieldDescription1") + .build(); + private static final Field FIELD_SCHEMA2 = + Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.REPEATED) + .setDescription("FieldDescription2") + .build(); + private static final Field FIELD_SCHEMA3 = + Field.newBuilder("RecordField", LegacySQLTypeName.RECORD, FIELD_SCHEMA1, FIELD_SCHEMA2) + .setMode(Field.Mode.REQUIRED) + .setDescription("FieldDescription3") + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); + private static final Integer MAX_BAD_RECORDS = 42; + private static final Boolean IGNORE_UNKNOWN_VALUES = true; + private static final String COMPRESSION = "GZIP"; + private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder().build(); + private static final ExternalTableDefinition TABLE_CONFIGURATION = + ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) + .setCompression(COMPRESSION) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .build(); + private static final Map TABLE_DEFINITIONS = + ImmutableMap.of("tableName", TABLE_CONFIGURATION); + private static final CreateDisposition CREATE_DISPOSITION = CreateDisposition.CREATE_IF_NEEDED; + private static final WriteDisposition WRITE_DISPOSITION = WriteDisposition.WRITE_APPEND; + private static final Priority PRIORITY = Priority.BATCH; + private static final boolean ALLOW_LARGE_RESULTS = true; + private static final boolean USE_QUERY_CACHE = false; + private static final boolean FLATTEN_RESULTS = true; + private static final boolean USE_LEGACY_SQL = true; + private static final Integer MAX_BILLING_TIER = 123; + private static final Long MAX_BYTES_BILL = 12345L; + private static final List SCHEMA_UPDATE_OPTIONS = + ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_RELAXATION); + private static final List USER_DEFINED_FUNCTIONS = + ImmutableList.of(UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")); + private static final EncryptionConfiguration JOB_ENCRYPTION_CONFIGURATION = + EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); + private static final TimePartitioning TIME_PARTITIONING = + TimePartitioning.of(TimePartitioning.Type.DAY); + private static final Clustering CLUSTERING = + Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); + private static final Long TIMEOUT = 10L; + private static final Map LABELS = + ImmutableMap.of("test-job-name", "test-query-job"); + private static final RangePartitioning.Range RANGE = + RangePartitioning.Range.newBuilder().setStart(1L).setInterval(2L).setEnd(10L).build(); + private static final RangePartitioning RANGE_PARTITIONING = + RangePartitioning.newBuilder().setField("IntegerField").setRange(RANGE).build(); + private static final QueryParameterValue STRING_PARAMETER = + QueryParameterValue.string("stringValue"); + private static final QueryParameterValue TIMESTAMP_PARAMETER = + QueryParameterValue.timestamp("2014-01-01 07:00:00.000000+00:00"); + private static final List POSITIONAL_PARAMETER = + ImmutableList.of(STRING_PARAMETER, TIMESTAMP_PARAMETER); + private static final Map NAME_PARAMETER = + ImmutableMap.of("string", STRING_PARAMETER, "timestamp", TIMESTAMP_PARAMETER); + private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = + QueryJobConfiguration.newBuilder(QUERY) + .setUseQueryCache(USE_QUERY_CACHE) + .setTableDefinitions(TABLE_DEFINITIONS) + .setAllowLargeResults(ALLOW_LARGE_RESULTS) + .setCreateDisposition(CREATE_DISPOSITION) + .setDefaultDataset(DATASET_ID) + .setDestinationTable(TABLE_ID) + .setWriteDisposition(WRITE_DISPOSITION) + .setPriority(PRIORITY) + .setFlattenResults(FLATTEN_RESULTS) + .setUserDefinedFunctions(USER_DEFINED_FUNCTIONS) + .setDryRun(true) + .setUseLegacySql(USE_LEGACY_SQL) + .setMaximumBillingTier(MAX_BILLING_TIER) + .setMaximumBytesBilled(MAX_BYTES_BILL) + .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) + .setDestinationEncryptionConfiguration(JOB_ENCRYPTION_CONFIGURATION) + .setTimePartitioning(TIME_PARTITIONING) + .setClustering(CLUSTERING) + .setJobTimeoutMs(TIMEOUT) + .setLabels(LABELS) + .setRangePartitioning(RANGE_PARTITIONING) + .setConnectionProperties(CONNECTION_PROPERTIES) + .setPositionalParameters(POSITIONAL_PARAMETER) + .setMaxResults(100L) + .build(); + QueryRequestInfo REQUEST_INFO = new QueryRequestInfo(QUERY_JOB_CONFIGURATION); + private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_SUPPORTED = + QueryJobConfiguration.newBuilder(QUERY) + .setUseQueryCache(USE_QUERY_CACHE) + .setDefaultDataset(DATASET_ID) + .setDryRun(true) + .setUseLegacySql(USE_LEGACY_SQL) + .setMaximumBytesBilled(MAX_BYTES_BILL) + .setLabels(LABELS) + .setConnectionProperties(CONNECTION_PROPERTIES) + .setPositionalParameters(POSITIONAL_PARAMETER) + .setMaxResults(100L) + .build(); + QueryRequestInfo REQUEST_INFO_SUPPORTED = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_SUPPORTED); + + @Test + public void testIsFastQuerySupported() { + assertEquals(false, REQUEST_INFO.isFastQuerySupported()); + assertEquals(true, REQUEST_INFO_SUPPORTED.isFastQuerySupported()); + } + + @Test + public void testToPb() { + QueryRequest requestPb = REQUEST_INFO.toPb(); + assertEquals(requestPb, REQUEST_INFO.toPb()); + } + + @Test + public void equalTo() { + compareQueryRequestInfo( + new QueryRequestInfo(QUERY_JOB_CONFIGURATION_SUPPORTED), REQUEST_INFO_SUPPORTED); + compareQueryRequestInfo(new QueryRequestInfo(QUERY_JOB_CONFIGURATION), REQUEST_INFO); + } + + private void compareQueryRequestInfo(QueryRequestInfo expected, QueryRequestInfo actual) { + assertEquals(expected, actual); + assertEquals(expected.hashCode(), actual.hashCode()); + assertEquals(expected.toString(), actual.toString()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 077c1e622319..795e70fcadf0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -112,6 +112,7 @@ import java.math.BigDecimal; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; +import java.nio.file.FileSystems; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -227,6 +228,37 @@ public class ITBigQueryTest { FLOAT_FIELD_SCHEMA, GEOGRAPHY_FIELD_SCHEMA, NUMERIC_FIELD_SCHEMA); + + private static final Field DDL_TIMESTAMP_FIELD_SCHEMA = + Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) + .setDescription("TimestampDescription") + .build(); + private static final Field DDL_STRING_FIELD_SCHEMA = + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setDescription("StringDescription") + .build(); + private static final Field DDL_BOOLEAN_FIELD_SCHEMA = + Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) + .setDescription("BooleanDescription") + .build(); + private static final Schema DDL_TABLE_SCHEMA = + Schema.of(DDL_TIMESTAMP_FIELD_SCHEMA, DDL_STRING_FIELD_SCHEMA, DDL_BOOLEAN_FIELD_SCHEMA); + private static final Schema LARGE_TABLE_SCHEMA = + Schema.of( + Field.newBuilder("date", LegacySQLTypeName.DATE).setMode(Field.Mode.NULLABLE).build(), + Field.newBuilder("county", LegacySQLTypeName.STRING).setMode(Field.Mode.NULLABLE).build(), + Field.newBuilder("state_name", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("county_fips_code", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("confirmed_cases", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("deaths", LegacySQLTypeName.INTEGER) + .setMode(Field.Mode.NULLABLE) + .build()); private static final Schema SIMPLE_SCHEMA = Schema.of(STRING_FIELD_SCHEMA); private static final Schema POLICY_SCHEMA = Schema.of(STRING_FIELD_SCHEMA, STRING_FIELD_SCHEMA_WITH_POLICY, INTEGER_FIELD_SCHEMA); @@ -257,11 +289,16 @@ public class ITBigQueryTest { private static final RangePartitioning RANGE_PARTITIONING = RangePartitioning.newBuilder().setField("IntegerField").setRange(RANGE).build(); private static final String LOAD_FILE = "load.csv"; + private static final String LOAD_FILE_LARGE = "load_large.csv"; private static final String JSON_LOAD_FILE = "load.json"; + private static final String JSON_LOAD_FILE_SIMPLE = "load_simple.json"; private static final String EXTRACT_FILE = "extract.csv"; private static final String EXTRACT_MODEL_FILE = "extract_model.csv"; private static final String BUCKET = RemoteStorageHelper.generateBucketName(); private static final TableId TABLE_ID = TableId.of(DATASET, "testing_table"); + private static final TableId TABLE_ID_DDL = TableId.of(DATASET, "ddl_testing_table"); + private static final TableId TABLE_ID_FASTQUERY = TableId.of(DATASET, "fastquery_testing_table"); + private static final TableId TABLE_ID_LARGE = TableId.of(DATASET, "large_data_testing_table"); private static final String CSV_CONTENT = "StringValue1\nStringValue2\n"; private static final String JSON_CONTENT = "{" @@ -308,6 +345,17 @@ public class ITBigQueryTest { + " \"GeographyField\": \"POINT(-122.35022 47.649154)\"," + " \"NumericField\": \"123456.789012345\"" + "}"; + private static final String JSON_CONTENT_SIMPLE = + "{" + + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," + + " \"StringField\": \"stringValue\"," + + " \"BooleanField\": \"false\"" + + "}\n" + + "{" + + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," + + " \"StringField\": \"stringValue\"," + + " \"BooleanField\": \"false\"" + + "}"; private static final String KEY = "time_zone"; private static final String VALUE = "US/Eastern"; private static final ConnectionProperty CONNECTION_PROPERTY = @@ -324,7 +372,7 @@ public class ITBigQueryTest { @Rule public Timeout globalTimeout = Timeout.seconds(300); @BeforeClass - public static void beforeClass() throws InterruptedException, TimeoutException { + public static void beforeClass() throws InterruptedException, IOException { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); RemoteStorageHelper storageHelper = RemoteStorageHelper.create(); Map labels = ImmutableMap.of("test-job-name", "test-load-job"); @@ -337,6 +385,14 @@ public static void beforeClass() throws InterruptedException, TimeoutException { storage.create( BlobInfo.newBuilder(BUCKET, JSON_LOAD_FILE).setContentType("application/json").build(), JSON_CONTENT.getBytes(StandardCharsets.UTF_8)); + storage.create( + BlobInfo.newBuilder(BUCKET, JSON_LOAD_FILE_SIMPLE) + .setContentType("application/json") + .build(), + JSON_CONTENT_SIMPLE.getBytes(StandardCharsets.UTF_8)); + storage.createFrom( + BlobInfo.newBuilder(BUCKET, LOAD_FILE_LARGE).setContentType("text/plain").build(), + FileSystems.getDefault().getPath("src/test/resources", "QueryTestData.csv")); DatasetInfo info = DatasetInfo.newBuilder(DATASET).setDescription(DESCRIPTION).setLabels(LABELS).build(); bigquery.create(info); @@ -358,6 +414,39 @@ public static void beforeClass() throws InterruptedException, TimeoutException { assertNull(job.getStatus().getError()); LoadJobConfiguration loadJobConfiguration = job.getConfiguration(); assertEquals(labels, loadJobConfiguration.getLabels()); + + LoadJobConfiguration configurationFastQuery = + LoadJobConfiguration.newBuilder( + TABLE_ID_FASTQUERY, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(TABLE_SCHEMA) + .setLabels(labels) + .build(); + Job jobFastQuery = bigquery.create(JobInfo.of(configurationFastQuery)); + jobFastQuery = jobFastQuery.waitFor(); + assertNull(jobFastQuery.getStatus().getError()); + + LoadJobConfiguration configurationDDL = + LoadJobConfiguration.newBuilder( + TABLE_ID_DDL, "gs://" + BUCKET + "/" + JSON_LOAD_FILE_SIMPLE, FormatOptions.json()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(DDL_TABLE_SCHEMA) + .setLabels(labels) + .build(); + Job jobDDL = bigquery.create(JobInfo.of(configurationDDL)); + jobDDL = jobDDL.waitFor(); + assertNull(jobDDL.getStatus().getError()); + + LoadJobConfiguration configurationLargeTable = + LoadJobConfiguration.newBuilder( + TABLE_ID_LARGE, "gs://" + BUCKET + "/" + LOAD_FILE_LARGE, FormatOptions.csv()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(LARGE_TABLE_SCHEMA) + .setLabels(labels) + .build(); + Job jobLargeTable = bigquery.create(JobInfo.of(configurationLargeTable)); + jobLargeTable = jobLargeTable.waitFor(); + assertNull(jobLargeTable.getStatus().getError()); } @AfterClass @@ -1445,6 +1534,149 @@ public void testQuery() throws InterruptedException { assertNotNull(statistics.getQueryPlan()); } + @Test + public void testFastSQLQuery() throws InterruptedException { + String query = + "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FASTQUERY.getTable(); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); + TableResult result = bigquery.query(config); + assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); + assertEquals(2, result.getTotalRows()); + assertNull(result.getNextPage()); + assertNull(result.getNextPageToken()); + assertFalse(result.hasNextPage()); + // Verify correctness of table content + for (FieldValueList row : result.getValues()) { + FieldValue timestampCell = row.get(0); + assertEquals(timestampCell, row.get("TimestampField")); + FieldValue stringCell = row.get(1); + assertEquals(stringCell, row.get("StringField")); + FieldValue booleanCell = row.get(2); + assertEquals(booleanCell, row.get("BooleanField")); + assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); + assertEquals(1408452095220000L, timestampCell.getTimestampValue()); + assertEquals("stringValue", stringCell.getStringValue()); + assertEquals(false, booleanCell.getBooleanValue()); + } + } + + @Test + public void testFastSQLQueryMultiPage() throws InterruptedException { + String query = + "SELECT date, county, state_name, county_fips_code, confirmed_cases, deaths FROM " + + TABLE_ID_LARGE.getTable(); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); + TableResult result = bigquery.query(config); + assertEquals(LARGE_TABLE_SCHEMA, result.getSchema()); + assertEquals(313348, result.getTotalRows()); + assertNotNull(result.getNextPage()); + assertNotNull(result.getNextPageToken()); + assertTrue(result.hasNextPage()); + } + + @Test + public void testFastDMLQuery() throws InterruptedException { + String tableName = TABLE_ID_FASTQUERY.getTable(); + String dmlQuery = + String.format("UPDATE %s.%s SET StringField = 'hello' WHERE TRUE", DATASET, tableName); + QueryJobConfiguration dmlConfig = QueryJobConfiguration.newBuilder(dmlQuery).build(); + TableResult result = bigquery.query(dmlConfig); + assertEquals(TABLE_SCHEMA, result.getSchema()); + assertEquals(2, result.getTotalRows()); + // Verify correctness of table content + String sqlQuery = String.format("SELECT * FROM %s.%s", DATASET, tableName); + QueryJobConfiguration sqlConfig = QueryJobConfiguration.newBuilder(sqlQuery).build(); + TableResult resultAfterDML = bigquery.query(sqlConfig); + for (FieldValueList row : resultAfterDML.getValues()) { + FieldValue timestampCell = row.get(0); + assertEquals(timestampCell, row.get("TimestampField")); + FieldValue stringCell = row.get(1); + assertEquals(stringCell, row.get("StringField")); + FieldValue booleanCell = row.get(3); + assertEquals(booleanCell, row.get("BooleanField")); + assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); + assertEquals(1408452095220000L, timestampCell.getTimestampValue()); + assertEquals("hello", stringCell.getStringValue()); + assertEquals(false, booleanCell.getBooleanValue()); + } + } + + @Test + public void testFastDDLQuery() throws InterruptedException { + String tableName = "test_table_fast_query_ddl"; + String tableNameFastQuery = TABLE_ID_DDL.getTable(); + String ddlQuery = + String.format( + "CREATE OR REPLACE TABLE %s (" + + "TimestampField TIMESTAMP OPTIONS(description='TimestampDescription'), " + + "StringField STRING OPTIONS(description='StringDescription'), " + + "BooleanField BOOLEAN OPTIONS(description='BooleanDescription') " + + ") AS SELECT * FROM %s", + tableName, tableNameFastQuery); + QueryJobConfiguration ddlConfig = + QueryJobConfiguration.newBuilder(ddlQuery).setDefaultDataset(DatasetId.of(DATASET)).build(); + TableResult result = bigquery.query(ddlConfig); + assertEquals(DDL_TABLE_SCHEMA, result.getSchema()); + assertEquals(0, result.getTotalRows()); + // Verify correctness of table content + String sqlQuery = String.format("SELECT * FROM %s.%s", DATASET, tableName); + QueryJobConfiguration sqlConfig = QueryJobConfiguration.newBuilder(sqlQuery).build(); + TableResult resultAfterDDL = bigquery.query(sqlConfig); + for (FieldValueList row : resultAfterDDL.getValues()) { + FieldValue timestampCell = row.get(0); + assertEquals(timestampCell, row.get("TimestampField")); + FieldValue stringCell = row.get(1); + assertEquals(stringCell, row.get("StringField")); + FieldValue booleanCell = row.get(2); + assertEquals(booleanCell, row.get("BooleanField")); + assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); + assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); + assertEquals(1408452095220000L, timestampCell.getTimestampValue()); + assertEquals("stringValue", stringCell.getStringValue()); + assertEquals(false, booleanCell.getBooleanValue()); + } + } + + @Test + public void testFastQueryHTTPException() throws InterruptedException { + String queryInvalid = + "CREATE OR REPLACE SELECT * FROM UPDATE TABLE SET " + TABLE_ID_FASTQUERY.getTable(); + QueryJobConfiguration configInvalidQuery = + QueryJobConfiguration.newBuilder(queryInvalid) + .setDefaultDataset(DatasetId.of(DATASET)) + .build(); + try { + bigquery.query(configInvalidQuery); + fail("\"BigQueryException was expected\""); + } catch (BigQueryException e) { + BigQueryError error = e.getError(); + assertNotNull(error.getMessage()); + assertEquals("invalidQuery", error.getReason()); + } + + String queryMissingTable = + "SELECT * FROM " + TableId.of(DATASET, "non_existing_table").getTable(); + QueryJobConfiguration configMissingTable = + QueryJobConfiguration.newBuilder(queryMissingTable) + .setDefaultDataset(DatasetId.of(DATASET)) + .build(); + try { + bigquery.query(configMissingTable); + fail("\"BigQueryException was expected\""); + } catch (BigQueryException e) { + BigQueryError error = e.getError(); + assertNotNull(error.getMessage()); + assertEquals("notFound", error.getReason()); + } + } + @Test public void testScriptStatistics() throws InterruptedException { String script = diff --git a/google-cloud-bigquery/src/test/resources/QueryTestData.csv b/google-cloud-bigquery/src/test/resources/QueryTestData.csv new file mode 100644 index 000000000000..d01fd970d656 --- /dev/null +++ b/google-cloud-bigquery/src/test/resources/QueryTestData.csv @@ -0,0 +1,313348 @@ +2020-03-20,Kansas City,Missouri,,12,0 +2020-03-21,Kansas City,Missouri,,13,0 +2020-03-22,Kansas City,Missouri,,13,0 +2020-03-23,Kansas City,Missouri,,18,0 +2020-03-24,Kansas City,Missouri,,30,0 +2020-03-25,Kansas City,Missouri,,51,0 +2020-03-26,Kansas City,Missouri,,64,0 +2020-03-27,Kansas City,Missouri,,78,0 +2020-03-28,Kansas City,Missouri,,94,0 +2020-03-29,Kansas City,Missouri,,102,0 +2020-03-30,Kansas City,Missouri,,100,0 +2020-03-31,Kansas City,Missouri,,119,0 +2020-04-01,Kansas City,Missouri,,128,0 +2020-04-02,Kansas City,Missouri,,139,1 +2020-04-03,Kansas City,Missouri,,153,1 +2020-04-04,Kansas City,Missouri,,172,1 +2020-04-05,Kansas City,Missouri,,175,1 +2020-04-06,Kansas City,Missouri,,212,1 +2020-04-07,Kansas City,Missouri,,219,7 +2020-04-08,Kansas City,Missouri,,249,7 +2020-04-09,Kansas City,Missouri,,257,8 +2020-04-10,Kansas City,Missouri,,283,8 +2020-04-11,Kansas City,Missouri,,298,8 +2020-04-12,Kansas City,Missouri,,308,8 +2020-04-13,Kansas City,Missouri,,329,8 +2020-04-14,Kansas City,Missouri,,346,12 +2020-04-15,Kansas City,Missouri,,371,12 +2020-04-16,Kansas City,Missouri,,386,12 +2020-04-17,Kansas City,Missouri,,401,13 +2020-04-18,Kansas City,Missouri,,412,13 +2020-04-19,Kansas City,Missouri,,418,13 +2020-04-20,Kansas City,Missouri,,420,13 +2020-04-21,Kansas City,Missouri,,438,13 +2020-04-22,Kansas City,Missouri,,448,13 +2020-04-23,Kansas City,Missouri,,461,14 +2020-04-24,Kansas City,Missouri,,472,15 +2020-04-25,Kansas City,Missouri,,486,15 +2020-04-26,Kansas City,Missouri,,493,15 +2020-04-27,Kansas City,Missouri,,500,15 +2020-04-28,Kansas City,Missouri,,511,16 +2020-04-29,Kansas City,Missouri,,520,16 +2020-04-30,Kansas City,Missouri,,545,16 +2020-05-01,Kansas City,Missouri,,578,16 +2020-05-02,Kansas City,Missouri,,597,16 +2020-05-03,Kansas City,Missouri,,609,16 +2020-05-04,Kansas City,Missouri,,659,16 +2020-05-05,Kansas City,Missouri,,683,16 +2020-05-06,Kansas City,Missouri,,706,16 +2020-05-07,Kansas City,Missouri,,723,16 +2020-05-08,Kansas City,Missouri,,739,16 +2020-05-09,Kansas City,Missouri,,752,16 +2020-05-10,Kansas City,Missouri,,767,16 +2020-05-11,Kansas City,Missouri,,783,16 +2020-05-12,Kansas City,Missouri,,791,16 +2020-05-13,Kansas City,Missouri,,808,16 +2020-05-14,Kansas City,Missouri,,838,17 +2020-05-15,Kansas City,Missouri,,848,18 +2020-05-16,Kansas City,Missouri,,863,18 +2020-05-17,Kansas City,Missouri,,895,19 +2020-05-18,Kansas City,Missouri,,901,20 +2020-05-19,Kansas City,Missouri,,903,22 +2020-05-20,Kansas City,Missouri,,924,23 +2020-05-21,Kansas City,Missouri,,939,23 +2020-05-22,Kansas City,Missouri,,967,24 +2020-05-23,Kansas City,Missouri,,991,24 +2020-05-24,Kansas City,Missouri,,1024,24 +2020-05-25,Kansas City,Missouri,,1050,25 +2020-05-26,Kansas City,Missouri,,1071,25 +2020-05-27,Kansas City,Missouri,,1086,26 +2020-05-28,Kansas City,Missouri,,1105,26 +2020-05-29,Kansas City,Missouri,,1117,26 +2020-05-30,Kansas City,Missouri,,1149,26 +2020-05-31,Kansas City,Missouri,,1182,26 +2020-06-01,Kansas City,Missouri,,1219,27 +2020-06-02,Kansas City,Missouri,,1315,27 +2020-06-03,Kansas City,Missouri,,1366,27 +2020-06-04,Kansas City,Missouri,,1437,27 +2020-06-05,Kansas City,Missouri,,1468,27 +2020-06-06,Kansas City,Missouri,,1501,27 +2020-06-07,Kansas City,Missouri,,1527,27 +2020-06-08,Kansas City,Missouri,,1565,28 +2020-06-09,Kansas City,Missouri,,1594,28 +2020-06-10,Kansas City,Missouri,,1626,28 +2020-06-11,Kansas City,Missouri,,1654,28 +2020-06-12,Kansas City,Missouri,,1680,28 +2020-06-13,Kansas City,Missouri,,1690,29 +2020-06-14,Kansas City,Missouri,,1690,29 +2020-06-15,Kansas City,Missouri,,1737,29 +2020-06-16,Kansas City,Missouri,,1762,29 +2020-06-17,Kansas City,Missouri,,1802,30 +2020-06-18,Kansas City,Missouri,,1831,30 +2020-06-19,Kansas City,Missouri,,1872,30 +2020-06-20,Kansas City,Missouri,,1914,30 +2020-06-21,Kansas City,Missouri,,1921,30 +2020-06-22,Kansas City,Missouri,,1945,31 +2020-06-23,Kansas City,Missouri,,2014,31 +2020-06-24,Kansas City,Missouri,,2057,32 +2020-06-25,Joplin,Missouri,,103,0 +2020-06-25,Kansas City,Missouri,,2162,32 +2020-06-26,Joplin,Missouri,,113,2 +2020-06-26,Kansas City,Missouri,,2211,32 +2020-06-27,Joplin,Missouri,,113,2 +2020-06-27,Kansas City,Missouri,,2242,32 +2020-06-28,Joplin,Missouri,,113,2 +2020-06-28,Kansas City,Missouri,,2292,32 +2020-06-29,Joplin,Missouri,,140,2 +2020-06-29,Kansas City,Missouri,,2345,32 +2020-06-30,Joplin,Missouri,,152,3 +2020-06-30,Kansas City,Missouri,,2380,32 +2020-07-01,Joplin,Missouri,,165,4 +2020-07-01,Kansas City,Missouri,,2457,32 +2020-07-02,Joplin,Missouri,,174,6 +2020-07-02,Kansas City,Missouri,,2497,32 +2020-07-03,Joplin,Missouri,,188,7 +2020-07-03,Kansas City,Missouri,,2601,32 +2020-07-04,Joplin,Missouri,,188,7 +2020-07-04,Kansas City,Missouri,,2641,32 +2020-07-05,Joplin,Missouri,,209,7 +2020-07-05,Kansas City,Missouri,,2696,32 +2020-07-06,Joplin,Missouri,,211,9 +2020-07-06,Kansas City,Missouri,,2748,34 +2020-07-07,Joplin,Missouri,,232,9 +2020-07-07,Kansas City,Missouri,,2814,35 +2020-07-08,Joplin,Missouri,,235,9 +2020-07-08,Kansas City,Missouri,,2870,35 +2020-07-09,Joplin,Missouri,,247,13 +2020-07-09,Kansas City,Missouri,,2957,35 +2020-03-01,New York City,New York,,1,0 +2020-03-02,New York City,New York,,1,0 +2020-03-03,New York City,New York,,2,0 +2020-03-04,New York City,New York,,2,0 +2020-03-05,New York City,New York,,4,0 +2020-03-06,New York City,New York,,5,0 +2020-03-07,New York City,New York,,12,0 +2020-03-08,New York City,New York,,14,0 +2020-03-09,New York City,New York,,20,0 +2020-03-10,New York City,New York,,37,0 +2020-03-11,New York City,New York,,52,0 +2020-03-12,New York City,New York,,96,0 +2020-03-13,New York City,New York,,155,0 +2020-03-14,New York City,New York,,269,1 +2020-03-15,New York City,New York,,330,5 +2020-03-16,New York City,New York,,464,7 +2020-03-17,New York City,New York,,646,11 +2020-03-18,New York City,New York,,1344,25 +2020-03-19,New York City,New York,,2477,31 +2020-03-20,New York City,New York,,4419,54 +2020-03-21,New York City,New York,,6226,75 +2020-03-22,New York City,New York,,9065,119 +2020-03-23,New York City,New York,,12329,155 +2020-03-24,New York City,New York,,14943,230 +2020-03-25,New York City,New York,,20061,330 +2020-03-26,New York City,New York,,23182,435 +2020-03-27,New York City,New York,,25509,560 +2020-03-28,New York City,New York,,30919,825 +2020-03-29,New York City,New York,,33983,991 +2020-03-30,New York City,New York,,38375,1202 +2020-03-31,New York City,New York,,43518,1475 +2020-04-01,New York City,New York,,47914,1848 +2020-04-02,New York City,New York,,52400,2152 +2020-04-03,New York City,New York,,57941,2648 +2020-04-04,New York City,New York,,64274,3221 +2020-04-05,New York City,New York,,68726,3646 +2020-04-06,New York City,New York,,73553,4857 +2020-04-07,New York City,New York,,78498,5631 +2020-04-08,New York City,New York,,83673,6441 +2020-04-09,New York City,New York,,89127,7249 +2020-04-10,New York City,New York,,94702,7981 +2020-04-11,New York City,New York,,100840,8734 +2020-04-12,New York City,New York,,105939,9448 +2020-04-13,New York City,New York,,109706,10096 +2020-04-14,New York City,New York,,113632,10857 +2020-04-15,New York City,New York,,121653,11566 +2020-04-16,New York City,New York,,126623,12109 +2020-04-17,New York City,New York,,131003,12283 +2020-04-18,New York City,New York,,135052,12411 +2020-04-19,New York City,New York,,138370,13632 +2020-04-20,New York City,New York,,140881,14074 +2020-04-21,New York City,New York,,143547,14513 +2020-04-22,New York City,New York,,146787,14959 +2020-04-23,New York City,New York,,150327,15361 +2020-04-24,New York City,New York,,155081,15754 +2020-04-25,New York City,New York,,159851,16146 +2020-04-26,New York City,New York,,163106,16486 +2020-04-27,New York City,New York,,165463,16821 +2020-04-28,New York City,New York,,167487,17206 +2020-04-29,New York City,New York,,170124,17597 +2020-04-30,New York City,New York,,172784,17809 +2020-05-01,New York City,New York,,174931,17931 +2020-05-02,New York City,New York,,177490,18021 +2020-05-03,New York City,New York,,179728,18451 +2020-05-04,New York City,New York,,181034,18580 +2020-05-05,New York City,New York,,182318,18719 +2020-05-06,New York City,New York,,183770,18993 +2020-05-07,New York City,New York,,185653,19141 +2020-05-08,New York City,New York,,187157,19210 +2020-05-09,New York City,New York,,188663,19324 +2020-05-10,New York City,New York,,189656,19436 +2020-05-11,New York City,New York,,190546,19563 +2020-05-12,New York City,New York,,191320,19736 +2020-05-13,New York City,New York,,192394,19815 +2020-05-14,New York City,New York,,193663,19904 +2020-05-15,New York City,New York,,195472,19972 +2020-05-16,New York City,New York,,196481,20071 +2020-05-17,New York City,New York,,197486,20214 +2020-05-18,New York City,New York,,198114,20298 +2020-05-19,New York City,New York,,198710,20376 +2020-05-20,New York City,New York,,199392,20422 +2020-05-21,New York City,New York,,200507,20491 +2020-05-22,New York City,New York,,201298,20569 +2020-05-23,New York City,New York,,202062,20621 +2020-05-24,New York City,New York,,202931,20697 +2020-05-25,New York City,New York,,203569,20740 +2020-05-26,New York City,New York,,204111,20795 +2020-05-27,New York City,New York,,204781,20844 +2020-05-28,New York City,New York,,205854,20895 +2020-05-29,New York City,New York,,206800,20960 +2020-05-30,New York City,New York,,207539,20991 +2020-05-31,New York City,New York,,208085,21050 +2020-06-01,New York City,New York,,208550,21090 +2020-06-02,New York City,New York,,209195,21132 +2020-06-03,New York City,New York,,209688,21170 +2020-06-04,New York City,New York,,210227,21234 +2020-06-05,New York City,New York,,210728,21262 +2020-06-06,New York City,New York,,211274,21294 +2020-06-07,New York City,New York,,211728,21323 +2020-06-08,New York City,New York,,212122,21356 +2020-06-09,New York City,New York,,212469,21396 +2020-06-10,New York City,New York,,212884,21436 +2020-06-11,New York City,New York,,213271,21468 +2020-06-12,New York City,New York,,213707,21519 +2020-06-13,New York City,New York,,214242,21551 +2020-06-14,New York City,New York,,214627,21578 +2020-06-15,New York City,New York,,215011,21600 +2020-06-16,New York City,New York,,215342,21619 +2020-06-17,New York City,New York,,215686,21645 +2020-06-18,New York City,New York,,216013,21673 +2020-06-19,New York City,New York,,216421,21710 +2020-06-20,New York City,New York,,216803,21719 +2020-06-21,New York City,New York,,217189,21753 +2020-06-22,New York City,New York,,217487,21796 +2020-06-23,New York City,New York,,217803,21817 +2020-06-24,New York City,New York,,218089,21838 +2020-06-25,New York City,New York,,218429,21856 +2020-06-26,New York City,New York,,218799,21893 +2020-06-27,New York City,New York,,219157,21913 +2020-06-28,New York City,New York,,219481,21940 +2020-06-29,New York City,New York,,219670,21941 +2020-06-30,New York City,New York,,219844,22566 +2020-07-01,New York City,New York,,220143,22574 +2020-07-02,New York City,New York,,220567,22593 +2020-07-03,New York City,New York,,221028,22610 +2020-07-04,New York City,New York,,221395,22630 +2020-07-05,New York City,New York,,221637,22661 +2020-07-06,New York City,New York,,221882,22672 +2020-07-07,New York City,New York,,222156,22690 +2020-07-08,New York City,New York,,222444,22696 +2020-07-09,New York City,New York,,222723,22719 +2020-03-15,Unknown,Guam,,3,0 +2020-03-16,Unknown,Guam,,3,0 +2020-03-17,Unknown,Guam,,3,0 +2020-03-18,Unknown,Guam,,8,0 +2020-03-19,Unknown,Guam,,12,0 +2020-03-20,Unknown,Guam,,14,0 +2020-03-21,Unknown,Guam,,15,0 +2020-03-22,Unknown,Guam,,27,1 +2020-03-23,Unknown,Guam,,29,1 +2020-03-24,Unknown,Guam,,32,1 +2020-03-25,Unknown,Guam,,32,1 +2020-03-26,Unknown,Guam,,49,1 +2020-03-27,Unknown,Guam,,53,1 +2020-03-28,Unknown,Guam,,57,1 +2020-03-29,Unknown,Guam,,58,1 +2020-03-30,Unknown,Guam,,60,1 +2020-03-31,Unknown,Guam,,139,2 +2020-04-01,Unknown,Guam,,147,3 +2020-04-02,Unknown,Guam,,152,3 +2020-04-03,Unknown,Guam,,154,4 +2020-04-04,Unknown,Guam,,223,4 +2020-04-05,Unknown,Guam,,265,4 +2020-04-06,Unknown,Guam,,266,4 +2020-04-07,Unknown,Guam,,274,4 +2020-04-08,Unknown,Guam,,409,4 +2020-04-09,Unknown,Guam,,542,4 +2020-04-10,Unknown,Guam,,577,4 +2020-04-11,Unknown,Guam,,681,5 +2020-04-12,Unknown,Guam,,716,5 +2020-04-13,Unknown,Guam,,719,6 +2020-04-14,Unknown,Guam,,721,6 +2020-04-15,Unknown,Guam,,750,6 +2020-04-16,Unknown,Guam,,790,6 +2020-04-17,Unknown,Guam,,796,6 +2020-04-18,Unknown,Guam,,805,6 +2020-04-19,Unknown,Guam,,808,6 +2020-04-20,Unknown,Guam,,811,6 +2020-04-21,Unknown,Guam,,852,6 +2020-04-22,Unknown,Guam,,911,6 +2020-04-23,Unknown,Guam,,979,6 +2020-04-24,Unknown,Guam,,997,6 +2020-04-25,Unknown,Guam,,997,6 +2020-04-26,Unknown,Guam,,997,6 +2020-04-27,Unknown,Guam,,1113,6 +2020-04-28,Unknown,Guam,,1114,6 +2020-04-29,Unknown,Guam,,1114,6 +2020-04-30,Unknown,Guam,,1115,6 +2020-05-01,Unknown,Guam,,1115,6 +2020-05-02,Unknown,Guam,,1117,6 +2020-05-03,Unknown,Guam,,1118,6 +2020-05-04,Unknown,Guam,,1118,6 +2020-05-05,Unknown,Guam,,1118,6 +2020-05-06,Unknown,Guam,,1118,6 +2020-05-07,Unknown,Guam,,1118,6 +2020-05-08,Unknown,Guam,,1120,6 +2020-05-09,Unknown,Guam,,1120,6 +2020-05-10,Unknown,Guam,,1120,6 +2020-05-11,Unknown,Guam,,1120,6 +2020-05-12,Unknown,Guam,,1121,6 +2020-05-13,Unknown,Guam,,1121,6 +2020-05-14,Unknown,Guam,,1121,6 +2020-05-15,Unknown,Guam,,1123,6 +2020-05-16,Unknown,Guam,,1123,6 +2020-05-17,Unknown,Guam,,1123,6 +2020-05-18,Unknown,Guam,,1123,6 +2020-05-19,Unknown,Guam,,1123,6 +2020-05-20,Unknown,Guam,,1134,6 +2020-05-21,Unknown,Guam,,1134,6 +2020-05-22,Unknown,Guam,,1134,6 +2020-05-23,Unknown,Guam,,1134,6 +2020-05-24,Unknown,Guam,,1135,6 +2020-05-25,Unknown,Guam,,1135,6 +2020-05-26,Unknown,Guam,,1139,6 +2020-05-27,Unknown,Guam,,1140,6 +2020-05-28,Unknown,Guam,,1141,6 +2020-05-29,Unknown,Guam,,1141,6 +2020-05-30,Unknown,Guam,,1141,6 +2020-05-31,Unknown,Guam,,1144,6 +2020-06-01,Unknown,Guam,,1144,6 +2020-06-02,Unknown,Guam,,1146,6 +2020-06-03,Unknown,Guam,,1146,6 +2020-06-04,Unknown,Guam,,1148,6 +2020-06-05,Unknown,Guam,,1148,6 +2020-06-06,Unknown,Guam,,1148,6 +2020-06-07,Unknown,Guam,,1148,6 +2020-06-08,Unknown,Guam,,1149,6 +2020-06-09,Unknown,Guam,,1149,6 +2020-06-10,Unknown,Guam,,1149,6 +2020-06-11,Unknown,Guam,,1152,6 +2020-06-12,Unknown,Guam,,1153,6 +2020-06-13,Unknown,Guam,,1154,6 +2020-06-14,Unknown,Guam,,1154,6 +2020-06-15,Unknown,Guam,,1155,6 +2020-06-16,Unknown,Guam,,1155,6 +2020-06-17,Unknown,Guam,,1157,6 +2020-06-18,Unknown,Guam,,1162,6 +2020-06-19,Unknown,Guam,,1169,6 +2020-06-20,Unknown,Guam,,1191,6 +2020-06-21,Unknown,Guam,,1191,6 +2020-06-22,Unknown,Guam,,1191,6 +2020-06-23,Unknown,Guam,,1194,6 +2020-06-24,Unknown,Guam,,1200,6 +2020-06-25,Unknown,Guam,,1214,6 +2020-06-26,Unknown,Guam,,1217,6 +2020-06-27,Unknown,Guam,,1217,6 +2020-06-28,Unknown,Guam,,1217,6 +2020-06-29,Unknown,Guam,,1224,6 +2020-06-30,Unknown,Guam,,1228,6 +2020-07-01,Unknown,Guam,,1240,6 +2020-07-02,Unknown,Guam,,1249,6 +2020-07-03,Unknown,Guam,,1255,6 +2020-07-04,Unknown,Guam,,1257,6 +2020-07-05,Unknown,Guam,,1257,6 +2020-07-06,Unknown,Guam,,1270,6 +2020-07-07,Unknown,Guam,,1272,6 +2020-07-08,Unknown,Guam,,1276,6 +2020-07-09,Unknown,Guam,,1278,6 +2020-04-01,Unknown,Iowa,,1,0 +2020-04-17,Unknown,Iowa,,1,0 +2020-04-18,Unknown,Iowa,,1,0 +2020-04-21,Unknown,Iowa,,3,2 +2020-04-22,Unknown,Iowa,,0,2 +2020-04-24,Unknown,Iowa,,0,1 +2020-04-27,Unknown,Iowa,,7,0 +2020-04-28,Unknown,Iowa,,13,0 +2020-04-29,Unknown,Iowa,,20,0 +2020-04-30,Unknown,Iowa,,24,0 +2020-05-01,Unknown,Iowa,,63,0 +2020-05-02,Unknown,Iowa,,95,0 +2020-05-03,Unknown,Iowa,,124,0 +2020-05-04,Unknown,Iowa,,95,0 +2020-05-06,Unknown,Iowa,,13,0 +2020-05-07,Unknown,Iowa,,8,0 +2020-05-08,Unknown,Iowa,,17,0 +2020-05-09,Unknown,Iowa,,3,0 +2020-05-11,Unknown,Iowa,,5,0 +2020-05-12,Unknown,Iowa,,6,0 +2020-05-13,Unknown,Iowa,,5,0 +2020-05-14,Unknown,Iowa,,8,0 +2020-05-15,Unknown,Iowa,,10,0 +2020-05-16,Unknown,Iowa,,15,0 +2020-05-17,Unknown,Iowa,,8,0 +2020-05-18,Unknown,Iowa,,9,0 +2020-05-19,Unknown,Iowa,,5,0 +2020-05-21,Unknown,Iowa,,7,0 +2020-05-23,Unknown,Iowa,,388,5 +2020-05-24,Unknown,Iowa,,5,0 +2020-05-25,Unknown,Iowa,,6,0 +2020-05-26,Unknown,Iowa,,8,0 +2020-05-27,Unknown,Iowa,,3,0 +2020-05-28,Unknown,Iowa,,5,0 +2020-05-29,Unknown,Iowa,,4,0 +2020-05-31,Unknown,Iowa,,1,0 +2020-06-01,Unknown,Iowa,,3,0 +2020-06-04,Unknown,Iowa,,2,0 +2020-06-05,Unknown,Iowa,,7,0 +2020-06-06,Unknown,Iowa,,9,0 +2020-06-07,Unknown,Iowa,,5,0 +2020-06-08,Unknown,Iowa,,7,0 +2020-06-09,Unknown,Iowa,,5,0 +2020-06-10,Unknown,Iowa,,5,0 +2020-06-11,Unknown,Iowa,,7,0 +2020-06-12,Unknown,Iowa,,6,0 +2020-06-13,Unknown,Iowa,,5,0 +2020-06-14,Unknown,Iowa,,4,0 +2020-06-15,Unknown,Iowa,,5,0 +2020-06-16,Unknown,Iowa,,7,0 +2020-06-17,Unknown,Iowa,,7,0 +2020-06-18,Unknown,Iowa,,8,0 +2020-06-19,Unknown,Iowa,,9,0 +2020-06-20,Unknown,Iowa,,6,0 +2020-06-21,Unknown,Iowa,,7,0 +2020-06-22,Unknown,Iowa,,8,0 +2020-06-23,Unknown,Iowa,,5,0 +2020-06-24,Unknown,Iowa,,5,0 +2020-06-25,Unknown,Iowa,,10,0 +2020-06-26,Unknown,Iowa,,5,0 +2020-06-27,Unknown,Iowa,,6,0 +2020-06-28,Unknown,Iowa,,6,0 +2020-06-29,Unknown,Iowa,,7,0 +2020-06-30,Unknown,Iowa,,3,0 +2020-07-01,Unknown,Iowa,,4,0 +2020-07-02,Unknown,Iowa,,7,0 +2020-07-03,Unknown,Iowa,,7,0 +2020-07-04,Unknown,Iowa,,18,0 +2020-07-05,Unknown,Iowa,,18,0 +2020-07-06,Unknown,Iowa,,17,0 +2020-07-07,Unknown,Iowa,,16,0 +2020-07-08,Unknown,Iowa,,21,0 +2020-07-09,Unknown,Iowa,,23,0 +2020-05-30,Unknown,Ohio,,1,0 +2020-06-20,Unknown,Ohio,,1,0 +2020-07-02,Unknown,Ohio,,1301,27 +2020-03-25,Unknown,Utah,,10,0 +2020-03-26,Unknown,Utah,,5,0 +2020-03-27,Unknown,Utah,,17,1 +2020-03-28,Unknown,Utah,,17,1 +2020-03-29,Unknown,Utah,,1,1 +2020-03-30,Unknown,Utah,,8,3 +2020-03-31,Unknown,Utah,,19,3 +2020-04-01,Unknown,Utah,,37,4 +2020-04-02,Unknown,Utah,,16,4 +2020-04-03,Unknown,Utah,,0,3 +2020-04-04,Unknown,Utah,,0,4 +2020-04-05,Unknown,Utah,,14,4 +2020-04-06,Unknown,Utah,,23,9 +2020-04-07,Unknown,Utah,,0,9 +2020-04-08,Unknown,Utah,,0,3 +2020-04-09,Unknown,Utah,,0,3 +2020-04-10,Unknown,Utah,,0,7 +2020-04-11,Unknown,Utah,,7,7 +2020-04-12,Unknown,Utah,,6,7 +2020-04-13,Unknown,Utah,,8,7 +2020-04-14,Unknown,Utah,,0,8 +2020-04-15,Unknown,Utah,,0,9 +2020-04-16,Unknown,Utah,,3,1 +2020-04-17,Unknown,Utah,,2,1 +2020-04-18,Unknown,Utah,,0,1 +2020-04-19,Unknown,Utah,,0,1 +2020-04-20,Unknown,Utah,,0,1 +2020-04-21,Unknown,Utah,,0,2 +2020-04-22,Unknown,Utah,,0,2 +2020-04-23,Unknown,Utah,,0,1 +2020-04-24,Unknown,Utah,,1,1 +2020-04-25,Unknown,Utah,,0,1 +2020-04-26,Unknown,Utah,,0,1 +2020-04-27,Unknown,Utah,,0,2 +2020-04-28,Unknown,Utah,,0,2 +2020-04-29,Unknown,Utah,,0,2 +2020-04-30,Unknown,Utah,,11,2 +2020-05-01,Unknown,Utah,,0,1 +2020-05-02,Unknown,Utah,,0,2 +2020-05-03,Unknown,Utah,,8,2 +2020-05-04,Unknown,Utah,,0,2 +2020-05-05,Unknown,Utah,,0,3 +2020-05-06,Unknown,Utah,,0,3 +2020-05-07,Unknown,Utah,,1,3 +2020-05-08,Unknown,Utah,,2,3 +2020-05-09,Unknown,Utah,,17,2 +2020-05-10,Unknown,Utah,,11,3 +2020-05-12,Unknown,Utah,,0,2 +2020-05-13,Unknown,Utah,,0,3 +2020-05-14,Unknown,Utah,,0,3 +2020-05-16,Unknown,Utah,,1,1 +2020-05-17,Unknown,Utah,,8,2 +2020-05-18,Unknown,Utah,,3,2 +2020-05-19,Unknown,Utah,,0,3 +2020-05-20,Unknown,Utah,,0,4 +2020-05-21,Unknown,Utah,,0,3 +2020-05-22,Unknown,Utah,,0,4 +2020-05-23,Unknown,Utah,,5,4 +2020-05-24,Unknown,Utah,,22,4 +2020-05-25,Unknown,Utah,,14,3 +2020-05-26,Unknown,Utah,,0,3 +2020-05-27,Unknown,Utah,,0,4 +2020-05-28,Unknown,Utah,,0,3 +2020-05-29,Unknown,Utah,,0,3 +2020-05-30,Unknown,Utah,,0,5 +2020-05-31,Unknown,Utah,,0,4 +2020-06-01,Unknown,Utah,,0,4 +2020-06-02,Unknown,Utah,,0,4 +2020-06-03,Unknown,Utah,,0,4 +2020-06-04,Unknown,Utah,,0,4 +2020-06-05,Unknown,Utah,,0,3 +2020-06-06,Unknown,Utah,,0,4 +2020-06-07,Unknown,Utah,,0,4 +2020-06-08,Unknown,Utah,,0,4 +2020-06-09,Unknown,Utah,,0,4 +2020-06-10,Unknown,Utah,,0,4 +2020-06-11,Unknown,Utah,,0,4 +2020-06-12,Unknown,Utah,,0,5 +2020-06-13,Unknown,Utah,,0,5 +2020-06-14,Unknown,Utah,,24,5 +2020-06-15,Unknown,Utah,,0,6 +2020-06-16,Unknown,Utah,,0,7 +2020-06-19,Unknown,Utah,,0,9 +2020-06-20,Unknown,Utah,,0,9 +2020-06-21,Unknown,Utah,,0,10 +2020-06-22,Unknown,Utah,,0,9 +2020-06-23,Unknown,Utah,,0,10 +2020-06-24,Unknown,Utah,,0,10 +2020-06-25,Unknown,Utah,,0,10 +2020-06-26,Unknown,Utah,,0,11 +2020-06-27,Unknown,Utah,,0,11 +2020-06-28,Unknown,Utah,,0,11 +2020-06-29,Unknown,Utah,,0,9 +2020-06-30,Unknown,Utah,,0,11 +2020-07-01,Unknown,Utah,,0,10 +2020-07-02,Unknown,Utah,,0,10 +2020-07-03,Unknown,Utah,,0,12 +2020-07-04,Unknown,Utah,,0,12 +2020-07-05,Unknown,Utah,,0,13 +2020-07-06,Unknown,Utah,,0,13 +2020-07-07,Unknown,Utah,,0,13 +2020-07-08,Unknown,Utah,,0,14 +2020-07-09,Unknown,Utah,,0,15 +2020-03-26,Unknown,Idaho,,1,0 +2020-06-20,Unknown,Idaho,,2,0 +2020-06-28,Unknown,Idaho,,193,0 +2020-03-16,Unknown,Maine,,1,0 +2020-03-17,Unknown,Maine,,3,0 +2020-03-18,Unknown,Maine,,3,0 +2020-03-19,Unknown,Maine,,3,0 +2020-03-20,Unknown,Maine,,3,0 +2020-03-21,Unknown,Maine,,3,0 +2020-03-22,Unknown,Maine,,5,0 +2020-03-23,Unknown,Maine,,5,0 +2020-03-25,Unknown,Maine,,2,0 +2020-03-26,Unknown,Maine,,1,0 +2020-03-27,Unknown,Maine,,3,0 +2020-03-28,Unknown,Maine,,3,0 +2020-03-29,Unknown,Maine,,5,1 +2020-03-30,Unknown,Maine,,5,0 +2020-03-31,Unknown,Maine,,6,0 +2020-04-01,Unknown,Maine,,7,0 +2020-04-02,Unknown,Maine,,8,0 +2020-04-03,Unknown,Maine,,11,0 +2020-04-04,Unknown,Maine,,12,0 +2020-04-05,Unknown,Maine,,11,0 +2020-04-06,Unknown,Maine,,11,0 +2020-04-07,Unknown,Maine,,9,0 +2020-04-08,Unknown,Maine,,8,0 +2020-04-09,Unknown,Maine,,4,0 +2020-04-10,Unknown,Maine,,3,0 +2020-04-11,Unknown,Maine,,3,0 +2020-04-12,Unknown,Maine,,3,0 +2020-04-13,Unknown,Maine,,5,0 +2020-04-14,Unknown,Maine,,2,0 +2020-04-15,Unknown,Maine,,2,0 +2020-04-16,Unknown,Maine,,2,0 +2020-04-18,Unknown,Maine,,1,0 +2020-04-19,Unknown,Maine,,2,0 +2020-04-20,Unknown,Maine,,1,0 +2020-04-21,Unknown,Maine,,1,0 +2020-04-22,Unknown,Maine,,2,0 +2020-04-25,Unknown,Maine,,2,0 +2020-04-26,Unknown,Maine,,2,0 +2020-04-27,Unknown,Maine,,2,0 +2020-04-28,Unknown,Maine,,1,0 +2020-04-29,Unknown,Maine,,2,0 +2020-04-30,Unknown,Maine,,1,0 +2020-05-04,Unknown,Maine,,2,0 +2020-05-07,Unknown,Maine,,2,0 +2020-05-08,Unknown,Maine,,6,0 +2020-05-09,Unknown,Maine,,1,0 +2020-05-10,Unknown,Maine,,3,0 +2020-05-11,Unknown,Maine,,6,0 +2020-05-12,Unknown,Maine,,6,0 +2020-05-13,Unknown,Maine,,6,0 +2020-05-14,Unknown,Maine,,2,0 +2020-05-15,Unknown,Maine,,2,0 +2020-05-16,Unknown,Maine,,2,0 +2020-05-17,Unknown,Maine,,5,0 +2020-05-18,Unknown,Maine,,1,0 +2020-05-19,Unknown,Maine,,1,0 +2020-05-20,Unknown,Maine,,2,0 +2020-05-21,Unknown,Maine,,3,0 +2020-05-22,Unknown,Maine,,3,0 +2020-05-24,Unknown,Maine,,1,0 +2020-05-27,Unknown,Maine,,3,0 +2020-05-28,Unknown,Maine,,5,0 +2020-05-29,Unknown,Maine,,4,0 +2020-05-30,Unknown,Maine,,4,0 +2020-05-31,Unknown,Maine,,2,0 +2020-06-01,Unknown,Maine,,1,0 +2020-06-02,Unknown,Maine,,1,0 +2020-06-03,Unknown,Maine,,4,0 +2020-06-04,Unknown,Maine,,4,0 +2020-06-05,Unknown,Maine,,4,0 +2020-06-07,Unknown,Maine,,2,0 +2020-06-08,Unknown,Maine,,2,0 +2020-06-09,Unknown,Maine,,2,0 +2020-06-10,Unknown,Maine,,2,0 +2020-06-11,Unknown,Maine,,2,0 +2020-06-12,Unknown,Maine,,4,0 +2020-06-13,Unknown,Maine,,2,0 +2020-06-14,Unknown,Maine,,2,0 +2020-06-15,Unknown,Maine,,2,0 +2020-06-16,Unknown,Maine,,3,0 +2020-06-17,Unknown,Maine,,1,0 +2020-06-18,Unknown,Maine,,2,0 +2020-06-19,Unknown,Maine,,1,0 +2020-06-20,Unknown,Maine,,2,0 +2020-06-21,Unknown,Maine,,1,0 +2020-06-22,Unknown,Maine,,2,0 +2020-06-25,Unknown,Maine,,2,0 +2020-06-26,Unknown,Maine,,6,0 +2020-06-27,Unknown,Maine,,3,0 +2020-06-28,Unknown,Maine,,5,0 +2020-06-30,Unknown,Maine,,2,0 +2020-07-01,Unknown,Maine,,2,0 +2020-07-02,Unknown,Maine,,6,0 +2020-07-03,Unknown,Maine,,5,0 +2020-07-04,Unknown,Maine,,3,0 +2020-07-05,Unknown,Maine,,3,0 +2020-07-06,Unknown,Maine,,2,0 +2020-07-07,Unknown,Maine,,5,0 +2020-07-08,Unknown,Maine,,2,0 +2020-07-09,Unknown,Maine,,3,0 +2020-03-24,Unknown,Texas,,0,1 +2020-04-02,Unknown,Alaska,,1,0 +2020-04-08,Unknown,Alaska,,1,0 +2020-05-20,Unknown,Alaska,,1,0 +2020-05-21,Unknown,Alaska,,1,0 +2020-05-22,Unknown,Alaska,,1,0 +2020-05-23,Unknown,Alaska,,1,0 +2020-05-24,Unknown,Alaska,,1,0 +2020-05-25,Unknown,Alaska,,1,0 +2020-05-26,Unknown,Alaska,,1,0 +2020-05-27,Unknown,Alaska,,1,0 +2020-05-28,Unknown,Alaska,,1,0 +2020-05-29,Unknown,Alaska,,1,0 +2020-05-30,Unknown,Alaska,,1,0 +2020-05-31,Unknown,Alaska,,1,0 +2020-06-01,Unknown,Alaska,,1,0 +2020-06-02,Unknown,Alaska,,1,0 +2020-06-03,Unknown,Alaska,,1,0 +2020-06-04,Unknown,Alaska,,1,0 +2020-06-09,Unknown,Alaska,,1,0 +2020-06-10,Unknown,Alaska,,1,0 +2020-06-11,Unknown,Alaska,,3,0 +2020-06-12,Unknown,Alaska,,2,0 +2020-06-13,Unknown,Alaska,,2,0 +2020-06-14,Unknown,Alaska,,3,0 +2020-06-15,Unknown,Alaska,,3,0 +2020-06-16,Unknown,Alaska,,1,0 +2020-06-17,Unknown,Alaska,,1,0 +2020-06-18,Unknown,Alaska,,2,0 +2020-06-19,Unknown,Alaska,,12,0 +2020-06-20,Unknown,Alaska,,13,0 +2020-06-21,Unknown,Alaska,,14,0 +2020-06-22,Unknown,Alaska,,15,0 +2020-06-23,Unknown,Alaska,,9,0 +2020-06-24,Unknown,Alaska,,9,0 +2020-06-25,Unknown,Alaska,,24,0 +2020-06-26,Unknown,Alaska,,10,0 +2020-06-27,Unknown,Alaska,,11,0 +2020-06-28,Unknown,Alaska,,11,0 +2020-06-29,Unknown,Alaska,,11,0 +2020-06-30,Unknown,Alaska,,11,0 +2020-07-01,Unknown,Alaska,,13,0 +2020-07-02,Unknown,Alaska,,13,0 +2020-07-03,Unknown,Alaska,,7,0 +2020-07-04,Unknown,Alaska,,6,0 +2020-07-05,Unknown,Alaska,,7,0 +2020-07-06,Unknown,Alaska,,8,0 +2020-07-08,Unknown,Alaska,,2,0 +2020-07-09,Unknown,Alaska,,5,0 +2020-03-23,Unknown,Hawaii,,5,0 +2020-03-24,Unknown,Hawaii,,13,0 +2020-03-25,Unknown,Hawaii,,4,0 +2020-03-26,Unknown,Hawaii,,5,0 +2020-03-27,Unknown,Hawaii,,5,0 +2020-03-28,Unknown,Hawaii,,6,0 +2020-03-29,Unknown,Hawaii,,12,0 +2020-03-30,Unknown,Hawaii,,13,0 +2020-03-31,Unknown,Hawaii,,15,0 +2020-04-01,Unknown,Hawaii,,20,0 +2020-04-02,Unknown,Hawaii,,20,0 +2020-04-03,Unknown,Hawaii,,11,1 +2020-04-04,Unknown,Hawaii,,8,1 +2020-04-05,Unknown,Hawaii,,7,2 +2020-04-06,Unknown,Hawaii,,9,0 +2020-04-07,Unknown,Hawaii,,7,0 +2020-04-08,Unknown,Hawaii,,7,0 +2020-04-09,Unknown,Hawaii,,3,0 +2020-04-10,Unknown,Hawaii,,4,0 +2020-04-11,Unknown,Hawaii,,3,0 +2020-04-12,Unknown,Hawaii,,3,0 +2020-04-13,Unknown,Hawaii,,3,0 +2020-04-14,Unknown,Hawaii,,3,0 +2020-04-15,Unknown,Hawaii,,1,0 +2020-04-16,Unknown,Hawaii,,5,0 +2020-06-30,Unknown,Hawaii,,1,0 +2020-04-08,Unknown,Kansas,,0,2 +2020-04-10,Unknown,Kansas,,0,4 +2020-04-11,Unknown,Kansas,,0,4 +2020-04-12,Unknown,Kansas,,0,3 +2020-04-14,Unknown,Kansas,,0,2 +2020-04-15,Unknown,Kansas,,0,2 +2020-04-17,Unknown,Kansas,,0,1 +2020-04-18,Unknown,Kansas,,0,1 +2020-06-01,Unknown,Kansas,,0,5 +2020-06-12,Unknown,Kansas,,0,1 +2020-06-22,Unknown,Kansas,,0,1 +2020-06-24,Unknown,Kansas,,0,1 +2020-03-19,Unknown,Nevada,,4,0 +2020-03-20,Unknown,Nevada,,11,0 +2020-03-21,Unknown,Nevada,,11,0 +2020-03-22,Unknown,Nevada,,33,0 +2020-03-23,Unknown,Nevada,,82,0 +2020-03-24,Unknown,Nevada,,14,0 +2020-03-25,Unknown,Nevada,,89,4 +2020-03-26,Unknown,Nevada,,107,0 +2020-03-27,Unknown,Nevada,,91,0 +2020-03-28,Unknown,Nevada,,101,0 +2020-03-29,Unknown,Nevada,,269,0 +2020-03-30,Unknown,Nevada,,150,0 +2020-03-31,Unknown,Nevada,,103,0 +2020-04-01,Unknown,Nevada,,131,0 +2020-04-02,Unknown,Nevada,,142,0 +2020-04-04,Unknown,Nevada,,52,0 +2020-04-05,Unknown,Nevada,,52,0 +2020-04-06,Unknown,Nevada,,32,12 +2020-04-08,Unknown,Nevada,,53,6 +2020-04-09,Unknown,Nevada,,20,0 +2020-04-11,Unknown,Nevada,,0,3 +2020-04-14,Unknown,Nevada,,0,9 +2020-04-15,Unknown,Nevada,,0,6 +2020-04-16,Unknown,Nevada,,16,4 +2020-04-17,Unknown,Nevada,,80,9 +2020-04-18,Unknown,Nevada,,6,3 +2020-04-20,Unknown,Nevada,,34,4 +2020-04-21,Unknown,Nevada,,10,0 +2020-04-22,Unknown,Nevada,,9,11 +2020-04-23,Unknown,Nevada,,1,5 +2020-04-24,Unknown,Nevada,,43,5 +2020-04-25,Unknown,Nevada,,16,0 +2020-04-27,Unknown,Nevada,,0,12 +2020-04-28,Unknown,Nevada,,0,5 +2020-04-29,Unknown,Nevada,,0,6 +2020-04-30,Unknown,Nevada,,0,6 +2020-05-01,Unknown,Nevada,,0,10 +2020-05-02,Unknown,Nevada,,0,4 +2020-05-03,Unknown,Nevada,,0,5 +2020-05-04,Unknown,Nevada,,0,2 +2020-05-05,Unknown,Nevada,,0,8 +2020-05-06,Unknown,Nevada,,0,5 +2020-05-07,Unknown,Nevada,,0,4 +2020-05-08,Unknown,Nevada,,0,3 +2020-05-09,Unknown,Nevada,,0,5 +2020-05-11,Unknown,Nevada,,8,6 +2020-05-12,Unknown,Nevada,,34,7 +2020-05-13,Unknown,Nevada,,0,6 +2020-05-14,Unknown,Nevada,,0,5 +2020-05-15,Unknown,Nevada,,0,1 +2020-05-16,Unknown,Nevada,,0,3 +2020-05-18,Unknown,Nevada,,0,12 +2020-05-19,Unknown,Nevada,,0,12 +2020-05-20,Unknown,Nevada,,0,6 +2020-05-21,Unknown,Nevada,,0,3 +2020-05-22,Unknown,Nevada,,0,6 +2020-05-23,Unknown,Nevada,,0,2 +2020-03-24,Unknown,Arizona,,0,3 +2020-03-25,Unknown,Arizona,,0,3 +2020-03-26,Unknown,Arizona,,0,2 +2020-03-27,Unknown,Arizona,,0,4 +2020-03-28,Unknown,Arizona,,0,3 +2020-03-29,Unknown,Arizona,,0,5 +2020-03-30,Unknown,Arizona,,0,6 +2020-03-31,Unknown,Arizona,,0,7 +2020-04-01,Unknown,Arizona,,0,8 +2020-04-02,Unknown,Arizona,,0,3 +2020-04-03,Unknown,Arizona,,0,4 +2020-04-04,Unknown,Arizona,,0,2 +2020-04-05,Unknown,Arizona,,0,9 +2020-04-06,Unknown,Arizona,,0,10 +2020-04-07,Unknown,Arizona,,0,12 +2020-04-08,Unknown,Arizona,,0,1 +2020-04-10,Unknown,Arizona,,0,5 +2020-04-11,Unknown,Arizona,,0,5 +2020-04-12,Unknown,Arizona,,0,1 +2020-04-13,Unknown,Arizona,,0,1 +2020-04-14,Unknown,Arizona,,0,1 +2020-04-22,Unknown,Arizona,,0,5 +2020-04-23,Unknown,Arizona,,0,5 +2020-05-25,Unknown,Arizona,,0,1 +2020-05-28,Unknown,Arizona,,0,1 +2020-03-22,Unknown,Florida,,1,0 +2020-03-23,Unknown,Florida,,1,0 +2020-03-24,Unknown,Florida,,10,0 +2020-03-25,Unknown,Florida,,1,0 +2020-04-02,Unknown,Florida,,9,0 +2020-04-03,Unknown,Florida,,10,0 +2020-04-04,Unknown,Florida,,10,0 +2020-04-05,Unknown,Florida,,4,0 +2020-04-06,Unknown,Florida,,5,0 +2020-04-07,Unknown,Florida,,2,0 +2020-04-08,Unknown,Florida,,2,0 +2020-04-09,Unknown,Florida,,2,0 +2020-04-10,Unknown,Florida,,2,0 +2020-04-11,Unknown,Florida,,2,0 +2020-04-12,Unknown,Florida,,2,0 +2020-04-13,Unknown,Florida,,1,0 +2020-04-14,Unknown,Florida,,3,0 +2020-04-16,Unknown,Florida,,3,0 +2020-04-17,Unknown,Florida,,4,0 +2020-04-18,Unknown,Florida,,3,0 +2020-04-19,Unknown,Florida,,3,0 +2020-04-20,Unknown,Florida,,3,0 +2020-04-21,Unknown,Florida,,4,0 +2020-04-22,Unknown,Florida,,0,34 +2020-04-25,Unknown,Florida,,1,0 +2020-04-27,Unknown,Florida,,1,0 +2020-04-28,Unknown,Florida,,4,0 +2020-04-29,Unknown,Florida,,7,0 +2020-04-30,Unknown,Florida,,7,0 +2020-05-01,Unknown,Florida,,8,0 +2020-05-02,Unknown,Florida,,9,0 +2020-05-03,Unknown,Florida,,12,0 +2020-05-04,Unknown,Florida,,12,0 +2020-05-05,Unknown,Florida,,14,0 +2020-05-06,Unknown,Florida,,31,0 +2020-05-07,Unknown,Florida,,33,0 +2020-05-08,Unknown,Florida,,33,0 +2020-05-09,Unknown,Florida,,49,0 +2020-05-10,Unknown,Florida,,50,0 +2020-05-11,Unknown,Florida,,50,0 +2020-05-12,Unknown,Florida,,57,0 +2020-05-13,Unknown,Florida,,88,0 +2020-05-14,Unknown,Florida,,76,0 +2020-05-15,Unknown,Florida,,78,0 +2020-05-16,Unknown,Florida,,79,0 +2020-05-17,Unknown,Florida,,79,0 +2020-05-18,Unknown,Florida,,79,0 +2020-05-19,Unknown,Florida,,79,0 +2020-05-20,Unknown,Florida,,80,11 +2020-05-21,Unknown,Florida,,82,0 +2020-05-22,Unknown,Florida,,84,0 +2020-05-23,Unknown,Florida,,84,0 +2020-05-24,Unknown,Florida,,85,0 +2020-05-25,Unknown,Florida,,85,0 +2020-05-26,Unknown,Florida,,85,0 +2020-05-27,Unknown,Florida,,85,0 +2020-05-28,Unknown,Florida,,86,0 +2020-05-29,Unknown,Florida,,83,0 +2020-05-30,Unknown,Florida,,84,0 +2020-05-31,Unknown,Florida,,84,0 +2020-06-01,Unknown,Florida,,84,0 +2020-06-02,Unknown,Florida,,87,0 +2020-06-03,Unknown,Florida,,89,0 +2020-06-04,Unknown,Florida,,90,0 +2020-06-05,Unknown,Florida,,95,0 +2020-06-06,Unknown,Florida,,97,0 +2020-06-07,Unknown,Florida,,97,0 +2020-06-08,Unknown,Florida,,93,0 +2020-06-09,Unknown,Florida,,93,0 +2020-06-10,Unknown,Florida,,96,0 +2020-06-11,Unknown,Florida,,96,0 +2020-06-12,Unknown,Florida,,100,0 +2020-06-13,Unknown,Florida,,102,0 +2020-06-14,Unknown,Florida,,102,0 +2020-06-15,Unknown,Florida,,97,0 +2020-06-16,Unknown,Florida,,97,0 +2020-06-17,Unknown,Florida,,105,0 +2020-06-18,Unknown,Florida,,110,0 +2020-06-19,Unknown,Florida,,113,0 +2020-06-20,Unknown,Florida,,117,0 +2020-06-21,Unknown,Florida,,118,0 +2020-06-22,Unknown,Florida,,119,0 +2020-06-23,Unknown,Florida,,126,0 +2020-06-24,Unknown,Florida,,130,0 +2020-06-25,Unknown,Florida,,130,0 +2020-06-26,Unknown,Florida,,134,0 +2020-06-27,Unknown,Florida,,139,0 +2020-06-28,Unknown,Florida,,143,0 +2020-06-29,Unknown,Florida,,138,0 +2020-06-30,Unknown,Florida,,145,0 +2020-07-01,Unknown,Florida,,167,0 +2020-07-02,Unknown,Florida,,172,0 +2020-07-03,Unknown,Florida,,187,0 +2020-07-04,Unknown,Florida,,201,0 +2020-07-05,Unknown,Florida,,226,0 +2020-07-06,Unknown,Florida,,230,0 +2020-07-07,Unknown,Florida,,231,0 +2020-07-08,Unknown,Florida,,251,0 +2020-07-09,Unknown,Florida,,262,0 +2020-03-20,Unknown,Georgia,,6,0 +2020-03-21,Unknown,Georgia,,27,0 +2020-03-22,Unknown,Georgia,,27,2 +2020-03-23,Unknown,Georgia,,46,2 +2020-03-24,Unknown,Georgia,,78,5 +2020-03-25,Unknown,Georgia,,154,14 +2020-03-26,Unknown,Georgia,,172,23 +2020-03-27,Unknown,Georgia,,204,5 +2020-03-28,Unknown,Georgia,,228,2 +2020-03-29,Unknown,Georgia,,224,2 +2020-03-30,Unknown,Georgia,,114,0 +2020-03-31,Unknown,Georgia,,182,2 +2020-04-01,Unknown,Georgia,,492,2 +2020-04-02,Unknown,Georgia,,665,4 +2020-04-03,Unknown,Georgia,,264,4 +2020-04-04,Unknown,Georgia,,88,4 +2020-04-05,Unknown,Georgia,,283,5 +2020-04-06,Unknown,Georgia,,309,5 +2020-04-07,Unknown,Georgia,,441,6 +2020-04-08,Unknown,Georgia,,871,9 +2020-04-09,Unknown,Georgia,,951,8 +2020-04-10,Unknown,Georgia,,1226,5 +2020-04-11,Unknown,Georgia,,1300,4 +2020-04-12,Unknown,Georgia,,613,0 +2020-04-13,Unknown,Georgia,,560,0 +2020-04-14,Unknown,Georgia,,287,0 +2020-04-15,Unknown,Georgia,,136,0 +2020-04-16,Unknown,Georgia,,212,0 +2020-04-17,Unknown,Georgia,,264,0 +2020-04-18,Unknown,Georgia,,245,0 +2020-04-19,Unknown,Georgia,,257,0 +2020-04-20,Unknown,Georgia,,296,2 +2020-04-21,Unknown,Georgia,,483,0 +2020-04-22,Unknown,Georgia,,576,0 +2020-04-23,Unknown,Georgia,,361,0 +2020-04-24,Unknown,Georgia,,447,0 +2020-04-25,Unknown,Georgia,,608,1 +2020-04-26,Unknown,Georgia,,622,0 +2020-04-27,Unknown,Georgia,,600,2 +2020-04-28,Unknown,Georgia,,75,0 +2020-04-30,Unknown,Georgia,,395,0 +2020-05-01,Unknown,Georgia,,647,0 +2020-05-02,Unknown,Georgia,,652,0 +2020-05-03,Unknown,Georgia,,694,0 +2020-05-04,Unknown,Georgia,,703,3 +2020-05-05,Unknown,Georgia,,617,0 +2020-05-06,Unknown,Georgia,,529,0 +2020-05-07,Unknown,Georgia,,852,0 +2020-05-08,Unknown,Georgia,,853,0 +2020-05-09,Unknown,Georgia,,750,0 +2020-05-10,Unknown,Georgia,,1004,2 +2020-05-11,Unknown,Georgia,,914,2 +2020-05-12,Unknown,Georgia,,1135,0 +2020-05-13,Unknown,Georgia,,1284,0 +2020-05-14,Unknown,Georgia,,1363,0 +2020-05-15,Unknown,Georgia,,1644,0 +2020-05-16,Unknown,Georgia,,1787,0 +2020-05-17,Unknown,Georgia,,2035,0 +2020-05-18,Unknown,Georgia,,2216,0 +2020-05-19,Unknown,Georgia,,2136,0 +2020-05-20,Unknown,Georgia,,2432,1 +2020-05-21,Unknown,Georgia,,2464,2 +2020-05-22,Unknown,Georgia,,2496,0 +2020-05-23,Unknown,Georgia,,2682,0 +2020-05-24,Unknown,Georgia,,2657,0 +2020-05-25,Unknown,Georgia,,2294,0 +2020-05-26,Unknown,Georgia,,1790,0 +2020-05-27,Unknown,Georgia,,1372,0 +2020-05-28,Unknown,Georgia,,1319,0 +2020-05-29,Unknown,Georgia,,1025,0 +2020-05-30,Unknown,Georgia,,1202,0 +2020-05-31,Unknown,Georgia,,1698,1 +2020-06-01,Unknown,Georgia,,1511,0 +2020-06-02,Unknown,Georgia,,1561,0 +2020-06-03,Unknown,Georgia,,1338,0 +2020-06-04,Unknown,Georgia,,1196,0 +2020-06-05,Unknown,Georgia,,1043,2 +2020-06-06,Unknown,Georgia,,1127,2 +2020-06-07,Unknown,Georgia,,1403,2 +2020-06-08,Unknown,Georgia,,1322,2 +2020-06-09,Unknown,Georgia,,1291,1 +2020-06-10,Unknown,Georgia,,1160,1 +2020-06-11,Unknown,Georgia,,1019,2 +2020-06-12,Unknown,Georgia,,1021,1 +2020-06-13,Unknown,Georgia,,1297,3 +2020-06-14,Unknown,Georgia,,1675,3 +2020-06-15,Unknown,Georgia,,1551,5 +2020-06-16,Unknown,Georgia,,1470,2 +2020-06-17,Unknown,Georgia,,1154,2 +2020-06-18,Unknown,Georgia,,1147,1 +2020-06-19,Unknown,Georgia,,886,2 +2020-06-20,Unknown,Georgia,,1850,1 +2020-06-21,Unknown,Georgia,,1958,1 +2020-06-22,Unknown,Georgia,,1792,1 +2020-06-23,Unknown,Georgia,,1482,2 +2020-06-24,Unknown,Georgia,,1249,2 +2020-06-25,Unknown,Georgia,,1341,2 +2020-06-26,Unknown,Georgia,,1469,2 +2020-06-27,Unknown,Georgia,,1593,2 +2020-06-28,Unknown,Georgia,,2379,2 +2020-06-29,Unknown,Georgia,,3621,2 +2020-06-30,Unknown,Georgia,,2699,2 +2020-07-01,Unknown,Georgia,,2395,2 +2020-07-02,Unknown,Georgia,,2764,2 +2020-07-03,Unknown,Georgia,,1992,2 +2020-07-04,Unknown,Georgia,,1321,2 +2020-07-05,Unknown,Georgia,,1383,2 +2020-07-06,Unknown,Georgia,,1237,2 +2020-07-07,Unknown,Georgia,,1180,2 +2020-07-08,Unknown,Georgia,,1159,2 +2020-07-09,Unknown,Georgia,,1211,2 +2020-04-01,Unknown,Indiana,,1,0 +2020-04-02,Unknown,Indiana,,1,0 +2020-04-03,Unknown,Indiana,,2,0 +2020-04-04,Unknown,Indiana,,2,0 +2020-04-05,Unknown,Indiana,,2,0 +2020-03-31,Unknown,Montana,,0,1 +2020-04-01,Unknown,Montana,,0,1 +2020-03-23,Unknown,Vermont,,23,0 +2020-03-24,Unknown,Vermont,,2,5 +2020-03-25,Unknown,Vermont,,0,1 +2020-03-26,Unknown,Vermont,,8,2 +2020-03-27,Unknown,Vermont,,6,3 +2020-03-28,Unknown,Vermont,,7,5 +2020-03-29,Unknown,Vermont,,7,5 +2020-03-30,Unknown,Vermont,,2,5 +2020-03-31,Unknown,Vermont,,11,6 +2020-04-01,Unknown,Vermont,,14,9 +2020-04-02,Unknown,Vermont,,8,10 +2020-04-03,Unknown,Vermont,,6,10 +2020-04-04,Unknown,Vermont,,12,13 +2020-04-05,Unknown,Vermont,,13,15 +2020-04-06,Unknown,Vermont,,21,16 +2020-04-07,Unknown,Vermont,,3,16 +2020-04-08,Unknown,Vermont,,8,0 +2020-04-09,Unknown,Vermont,,8,0 +2020-04-10,Unknown,Vermont,,26,1 +2020-04-11,Unknown,Vermont,,11,0 +2020-04-12,Unknown,Vermont,,7,0 +2020-04-13,Unknown,Vermont,,8,0 +2020-04-14,Unknown,Vermont,,8,0 +2020-04-15,Unknown,Vermont,,12,0 +2020-04-16,Unknown,Vermont,,9,0 +2020-04-17,Unknown,Vermont,,10,0 +2020-04-18,Unknown,Vermont,,10,0 +2020-04-19,Unknown,Vermont,,10,0 +2020-04-20,Unknown,Vermont,,11,0 +2020-04-21,Unknown,Vermont,,3,0 +2020-04-22,Unknown,Vermont,,3,0 +2020-04-23,Unknown,Vermont,,3,0 +2020-04-24,Unknown,Vermont,,3,0 +2020-04-25,Unknown,Vermont,,5,0 +2020-04-26,Unknown,Vermont,,5,0 +2020-04-27,Unknown,Vermont,,3,0 +2020-04-28,Unknown,Vermont,,3,0 +2020-04-29,Unknown,Vermont,,3,0 +2020-04-30,Unknown,Vermont,,3,0 +2020-05-01,Unknown,Vermont,,3,0 +2020-05-02,Unknown,Vermont,,3,0 +2020-05-03,Unknown,Vermont,,4,0 +2020-05-04,Unknown,Vermont,,4,0 +2020-05-05,Unknown,Vermont,,4,0 +2020-05-06,Unknown,Vermont,,4,0 +2020-05-07,Unknown,Vermont,,4,0 +2020-05-08,Unknown,Vermont,,4,0 +2020-05-09,Unknown,Vermont,,4,0 +2020-05-10,Unknown,Vermont,,4,0 +2020-05-11,Unknown,Vermont,,4,0 +2020-05-12,Unknown,Vermont,,4,0 +2020-05-13,Unknown,Vermont,,4,0 +2020-05-14,Unknown,Vermont,,4,0 +2020-05-15,Unknown,Vermont,,4,0 +2020-05-16,Unknown,Vermont,,4,0 +2020-05-17,Unknown,Vermont,,5,0 +2020-05-18,Unknown,Vermont,,5,0 +2020-05-19,Unknown,Vermont,,6,0 +2020-05-20,Unknown,Vermont,,7,0 +2020-05-21,Unknown,Vermont,,5,0 +2020-05-22,Unknown,Vermont,,5,0 +2020-05-23,Unknown,Vermont,,5,0 +2020-05-24,Unknown,Vermont,,5,0 +2020-05-25,Unknown,Vermont,,5,0 +2020-05-26,Unknown,Vermont,,5,0 +2020-05-27,Unknown,Vermont,,6,0 +2020-05-28,Unknown,Vermont,,5,0 +2020-05-29,Unknown,Vermont,,5,0 +2020-05-30,Unknown,Vermont,,5,0 +2020-05-31,Unknown,Vermont,,5,0 +2020-06-01,Unknown,Vermont,,5,0 +2020-06-02,Unknown,Vermont,,5,0 +2020-06-03,Unknown,Vermont,,5,0 +2020-06-04,Unknown,Vermont,,5,0 +2020-06-05,Unknown,Vermont,,5,0 +2020-06-06,Unknown,Vermont,,5,0 +2020-06-07,Unknown,Vermont,,5,0 +2020-06-08,Unknown,Vermont,,5,0 +2020-06-09,Unknown,Vermont,,5,0 +2020-06-10,Unknown,Vermont,,5,0 +2020-06-11,Unknown,Vermont,,5,0 +2020-06-12,Unknown,Vermont,,5,0 +2020-06-13,Unknown,Vermont,,5,0 +2020-06-14,Unknown,Vermont,,5,0 +2020-06-15,Unknown,Vermont,,5,0 +2020-06-16,Unknown,Vermont,,5,0 +2020-06-17,Unknown,Vermont,,5,0 +2020-06-18,Unknown,Vermont,,5,0 +2020-06-19,Unknown,Vermont,,5,0 +2020-06-20,Unknown,Vermont,,5,0 +2020-06-21,Unknown,Vermont,,5,0 +2020-06-22,Unknown,Vermont,,5,0 +2020-06-23,Unknown,Vermont,,5,0 +2020-06-24,Unknown,Vermont,,5,0 +2020-06-25,Unknown,Vermont,,5,0 +2020-06-26,Unknown,Vermont,,5,0 +2020-06-27,Unknown,Vermont,,5,0 +2020-06-28,Unknown,Vermont,,6,0 +2020-06-29,Unknown,Vermont,,6,0 +2020-06-30,Unknown,Vermont,,6,0 +2020-07-01,Unknown,Vermont,,6,0 +2020-07-02,Unknown,Vermont,,5,0 +2020-07-03,Unknown,Vermont,,5,0 +2020-07-04,Unknown,Vermont,,5,0 +2020-07-05,Unknown,Vermont,,5,0 +2020-07-06,Unknown,Vermont,,5,0 +2020-07-07,Unknown,Vermont,,5,0 +2020-07-08,Unknown,Vermont,,5,0 +2020-07-09,Unknown,Vermont,,5,0 +2020-04-08,Unknown,Wyoming,,30,0 +2020-04-09,Unknown,Wyoming,,5,0 +2020-04-13,Unknown,Wyoming,,1,0 +2020-04-14,Unknown,Wyoming,,1,0 +2020-03-20,Unknown,Arkansas,,19,0 +2020-03-21,Unknown,Arkansas,,21,0 +2020-03-22,Unknown,Arkansas,,27,0 +2020-03-23,Unknown,Arkansas,,61,0 +2020-03-24,Unknown,Arkansas,,2,0 +2020-03-25,Unknown,Arkansas,,2,0 +2020-03-26,Unknown,Arkansas,,2,0 +2020-03-27,Unknown,Arkansas,,5,0 +2020-03-28,Unknown,Arkansas,,7,0 +2020-03-29,Unknown,Arkansas,,5,0 +2020-03-30,Unknown,Arkansas,,2,0 +2020-03-31,Unknown,Arkansas,,5,1 +2020-04-01,Unknown,Arkansas,,6,1 +2020-04-02,Unknown,Arkansas,,10,1 +2020-04-03,Unknown,Arkansas,,13,1 +2020-04-04,Unknown,Arkansas,,12,1 +2020-04-05,Unknown,Arkansas,,14,1 +2020-04-06,Unknown,Arkansas,,11,0 +2020-04-07,Unknown,Arkansas,,11,0 +2020-04-08,Unknown,Arkansas,,13,0 +2020-04-09,Unknown,Arkansas,,14,0 +2020-04-10,Unknown,Arkansas,,16,0 +2020-04-11,Unknown,Arkansas,,19,0 +2020-04-12,Unknown,Arkansas,,25,0 +2020-04-13,Unknown,Arkansas,,42,0 +2020-04-14,Unknown,Arkansas,,45,0 +2020-04-15,Unknown,Arkansas,,50,0 +2020-04-16,Unknown,Arkansas,,44,0 +2020-04-17,Unknown,Arkansas,,43,0 +2020-04-18,Unknown,Arkansas,,46,0 +2020-04-19,Unknown,Arkansas,,46,0 +2020-04-20,Unknown,Arkansas,,43,0 +2020-04-21,Unknown,Arkansas,,95,0 +2020-04-22,Unknown,Arkansas,,113,0 +2020-04-23,Unknown,Arkansas,,127,0 +2020-04-24,Unknown,Arkansas,,182,0 +2020-04-25,Unknown,Arkansas,,202,0 +2020-04-26,Unknown,Arkansas,,216,0 +2020-04-27,Unknown,Arkansas,,203,0 +2020-04-28,Unknown,Arkansas,,220,0 +2020-04-29,Unknown,Arkansas,,167,0 +2020-04-30,Unknown,Arkansas,,168,0 +2020-05-01,Unknown,Arkansas,,160,0 +2020-05-02,Unknown,Arkansas,,178,0 +2020-05-03,Unknown,Arkansas,,174,0 +2020-05-04,Unknown,Arkansas,,163,0 +2020-05-05,Unknown,Arkansas,,163,0 +2020-05-06,Unknown,Arkansas,,145,0 +2020-05-07,Unknown,Arkansas,,153,0 +2020-05-08,Unknown,Arkansas,,154,0 +2020-05-09,Unknown,Arkansas,,154,0 +2020-05-10,Unknown,Arkansas,,127,0 +2020-05-11,Unknown,Arkansas,,131,0 +2020-05-12,Unknown,Arkansas,,137,0 +2020-05-13,Unknown,Arkansas,,140,0 +2020-05-14,Unknown,Arkansas,,135,0 +2020-05-15,Unknown,Arkansas,,139,0 +2020-05-16,Unknown,Arkansas,,131,0 +2020-05-17,Unknown,Arkansas,,132,0 +2020-05-18,Unknown,Arkansas,,130,0 +2020-05-19,Unknown,Arkansas,,130,0 +2020-05-20,Unknown,Arkansas,,133,0 +2020-05-21,Unknown,Arkansas,,151,0 +2020-05-22,Unknown,Arkansas,,144,0 +2020-05-23,Unknown,Arkansas,,148,0 +2020-05-24,Unknown,Arkansas,,150,0 +2020-05-25,Unknown,Arkansas,,159,0 +2020-05-26,Unknown,Arkansas,,174,0 +2020-05-27,Unknown,Arkansas,,181,0 +2020-05-28,Unknown,Arkansas,,199,0 +2020-05-29,Unknown,Arkansas,,193,0 +2020-05-30,Unknown,Arkansas,,196,0 +2020-05-31,Unknown,Arkansas,,188,0 +2020-06-01,Unknown,Arkansas,,189,0 +2020-06-02,Unknown,Arkansas,,203,0 +2020-06-03,Unknown,Arkansas,,249,0 +2020-06-04,Unknown,Arkansas,,232,0 +2020-06-05,Unknown,Arkansas,,244,0 +2020-06-06,Unknown,Arkansas,,264,0 +2020-06-07,Unknown,Arkansas,,264,0 +2020-06-08,Unknown,Arkansas,,300,0 +2020-06-09,Unknown,Arkansas,,294,0 +2020-06-10,Unknown,Arkansas,,278,0 +2020-06-11,Unknown,Arkansas,,302,0 +2020-06-12,Unknown,Arkansas,,300,0 +2020-06-13,Unknown,Arkansas,,321,0 +2020-06-14,Unknown,Arkansas,,340,0 +2020-06-15,Unknown,Arkansas,,344,0 +2020-06-16,Unknown,Arkansas,,396,0 +2020-06-17,Unknown,Arkansas,,391,0 +2020-06-18,Unknown,Arkansas,,435,0 +2020-06-19,Unknown,Arkansas,,533,0 +2020-06-20,Unknown,Arkansas,,560,0 +2020-06-21,Unknown,Arkansas,,571,0 +2020-06-22,Unknown,Arkansas,,584,0 +2020-06-23,Unknown,Arkansas,,683,0 +2020-06-24,Unknown,Arkansas,,731,0 +2020-06-25,Unknown,Arkansas,,935,0 +2020-06-26,Unknown,Arkansas,,699,0 +2020-06-27,Unknown,Arkansas,,733,0 +2020-06-28,Unknown,Arkansas,,712,0 +2020-06-29,Unknown,Arkansas,,731,0 +2020-06-30,Unknown,Arkansas,,721,0 +2020-07-01,Unknown,Arkansas,,706,0 +2020-07-02,Unknown,Arkansas,,737,0 +2020-07-03,Unknown,Arkansas,,783,0 +2020-07-04,Unknown,Arkansas,,887,0 +2020-07-05,Unknown,Arkansas,,907,0 +2020-07-06,Unknown,Arkansas,,965,0 +2020-07-07,Unknown,Arkansas,,914,0 +2020-07-08,Unknown,Arkansas,,945,0 +2020-07-09,Unknown,Arkansas,,935,0 +2020-03-22,Unknown,Colorado,,1,0 +2020-03-23,Unknown,Colorado,,5,0 +2020-03-24,Unknown,Colorado,,18,1 +2020-03-25,Unknown,Colorado,,18,0 +2020-03-26,Unknown,Colorado,,102,0 +2020-03-27,Unknown,Colorado,,136,1 +2020-03-28,Unknown,Colorado,,165,1 +2020-03-29,Unknown,Colorado,,186,1 +2020-03-30,Unknown,Colorado,,132,1 +2020-03-31,Unknown,Colorado,,129,1 +2020-04-01,Unknown,Colorado,,135,1 +2020-04-02,Unknown,Colorado,,142,0 +2020-04-03,Unknown,Colorado,,158,0 +2020-04-04,Unknown,Colorado,,211,0 +2020-04-05,Unknown,Colorado,,246,0 +2020-04-06,Unknown,Colorado,,273,0 +2020-04-07,Unknown,Colorado,,249,0 +2020-04-08,Unknown,Colorado,,237,0 +2020-04-09,Unknown,Colorado,,233,0 +2020-04-10,Unknown,Colorado,,145,1 +2020-04-11,Unknown,Colorado,,175,0 +2020-04-12,Unknown,Colorado,,156,0 +2020-04-13,Unknown,Colorado,,145,0 +2020-04-14,Unknown,Colorado,,110,0 +2020-04-15,Unknown,Colorado,,111,1 +2020-04-16,Unknown,Colorado,,96,3 +2020-04-17,Unknown,Colorado,,78,1 +2020-04-18,Unknown,Colorado,,80,1 +2020-04-19,Unknown,Colorado,,114,1 +2020-04-20,Unknown,Colorado,,126,1 +2020-04-21,Unknown,Colorado,,105,1 +2020-04-22,Unknown,Colorado,,95,0 +2020-04-23,Unknown,Colorado,,108,0 +2020-04-24,Unknown,Colorado,,103,0 +2020-04-25,Unknown,Colorado,,131,2 +2020-04-26,Unknown,Colorado,,172,0 +2020-04-27,Unknown,Colorado,,101,0 +2020-04-28,Unknown,Colorado,,88,0 +2020-04-29,Unknown,Colorado,,67,0 +2020-04-30,Unknown,Colorado,,81,0 +2020-05-01,Unknown,Colorado,,94,0 +2020-05-02,Unknown,Colorado,,119,0 +2020-05-03,Unknown,Colorado,,134,0 +2020-05-04,Unknown,Colorado,,130,0 +2020-05-05,Unknown,Colorado,,81,1 +2020-05-06,Unknown,Colorado,,54,1 +2020-05-07,Unknown,Colorado,,46,1 +2020-05-08,Unknown,Colorado,,32,1 +2020-05-09,Unknown,Colorado,,71,1 +2020-05-10,Unknown,Colorado,,114,1 +2020-05-11,Unknown,Colorado,,67,2 +2020-05-12,Unknown,Colorado,,47,2 +2020-05-13,Unknown,Colorado,,52,2 +2020-05-14,Unknown,Colorado,,46,0 +2020-05-15,Unknown,Colorado,,36,0 +2020-05-16,Unknown,Colorado,,48,0 +2020-05-17,Unknown,Colorado,,54,0 +2020-05-18,Unknown,Colorado,,50,0 +2020-05-19,Unknown,Colorado,,37,1 +2020-05-20,Unknown,Colorado,,39,1 +2020-05-21,Unknown,Colorado,,61,1 +2020-05-22,Unknown,Colorado,,63,1 +2020-05-23,Unknown,Colorado,,94,0 +2020-05-24,Unknown,Colorado,,91,0 +2020-04-10,Unknown,Delaware,,9,0 +2020-04-11,Unknown,Delaware,,13,0 +2020-04-13,Unknown,Delaware,,3,0 +2020-04-14,Unknown,Delaware,,11,0 +2020-04-15,Unknown,Delaware,,17,0 +2020-04-16,Unknown,Delaware,,22,0 +2020-04-17,Unknown,Delaware,,28,0 +2020-04-18,Unknown,Delaware,,30,0 +2020-04-19,Unknown,Delaware,,30,0 +2020-04-20,Unknown,Delaware,,31,0 +2020-04-21,Unknown,Delaware,,30,0 +2020-04-22,Unknown,Delaware,,28,0 +2020-04-23,Unknown,Delaware,,3,0 +2020-04-24,Unknown,Delaware,,4,0 +2020-04-25,Unknown,Delaware,,3,0 +2020-04-26,Unknown,Delaware,,9,0 +2020-04-27,Unknown,Delaware,,11,0 +2020-04-28,Unknown,Delaware,,32,0 +2020-04-29,Unknown,Delaware,,26,0 +2020-04-30,Unknown,Delaware,,25,0 +2020-05-01,Unknown,Delaware,,24,0 +2020-05-02,Unknown,Delaware,,22,0 +2020-05-03,Unknown,Delaware,,23,0 +2020-05-04,Unknown,Delaware,,24,0 +2020-05-05,Unknown,Delaware,,25,0 +2020-05-06,Unknown,Delaware,,36,0 +2020-05-07,Unknown,Delaware,,30,0 +2020-05-09,Unknown,Delaware,,27,0 +2020-05-10,Unknown,Delaware,,41,0 +2020-05-11,Unknown,Delaware,,40,0 +2020-05-12,Unknown,Delaware,,36,1 +2020-05-13,Unknown,Delaware,,36,1 +2020-05-14,Unknown,Delaware,,45,1 +2020-05-15,Unknown,Delaware,,43,1 +2020-05-16,Unknown,Delaware,,46,1 +2020-05-17,Unknown,Delaware,,52,1 +2020-05-18,Unknown,Delaware,,51,1 +2020-05-19,Unknown,Delaware,,50,1 +2020-05-20,Unknown,Delaware,,48,1 +2020-05-21,Unknown,Delaware,,46,1 +2020-05-22,Unknown,Delaware,,53,1 +2020-05-23,Unknown,Delaware,,53,1 +2020-05-24,Unknown,Delaware,,57,1 +2020-05-25,Unknown,Delaware,,55,1 +2020-05-26,Unknown,Delaware,,58,0 +2020-05-27,Unknown,Delaware,,54,0 +2020-05-28,Unknown,Delaware,,53,0 +2020-05-29,Unknown,Delaware,,51,0 +2020-05-30,Unknown,Delaware,,52,0 +2020-05-31,Unknown,Delaware,,51,0 +2020-06-01,Unknown,Delaware,,55,0 +2020-06-02,Unknown,Delaware,,53,0 +2020-06-03,Unknown,Delaware,,53,0 +2020-06-04,Unknown,Delaware,,53,1 +2020-06-05,Unknown,Delaware,,49,0 +2020-06-06,Unknown,Delaware,,12,0 +2020-06-07,Unknown,Delaware,,15,0 +2020-06-08,Unknown,Delaware,,11,0 +2020-06-09,Unknown,Delaware,,12,0 +2020-06-10,Unknown,Delaware,,14,0 +2020-06-11,Unknown,Delaware,,13,0 +2020-06-12,Unknown,Delaware,,16,0 +2020-06-13,Unknown,Delaware,,15,0 +2020-06-14,Unknown,Delaware,,14,0 +2020-06-15,Unknown,Delaware,,14,0 +2020-06-16,Unknown,Delaware,,16,0 +2020-06-17,Unknown,Delaware,,14,0 +2020-06-18,Unknown,Delaware,,14,0 +2020-06-19,Unknown,Delaware,,17,0 +2020-06-20,Unknown,Delaware,,19,0 +2020-06-21,Unknown,Delaware,,20,0 +2020-06-22,Unknown,Delaware,,17,0 +2020-06-23,Unknown,Delaware,,17,0 +2020-06-24,Unknown,Delaware,,19,0 +2020-06-25,Unknown,Delaware,,21,0 +2020-06-26,Unknown,Delaware,,23,0 +2020-06-27,Unknown,Delaware,,26,0 +2020-06-28,Unknown,Delaware,,30,0 +2020-06-29,Unknown,Delaware,,36,0 +2020-06-30,Unknown,Delaware,,38,0 +2020-07-01,Unknown,Delaware,,42,0 +2020-07-02,Unknown,Delaware,,53,0 +2020-07-03,Unknown,Delaware,,69,0 +2020-07-04,Unknown,Delaware,,73,0 +2020-07-05,Unknown,Delaware,,81,0 +2020-07-06,Unknown,Delaware,,91,0 +2020-07-07,Unknown,Delaware,,98,0 +2020-07-08,Unknown,Delaware,,101,0 +2020-07-09,Unknown,Delaware,,102,0 +2020-03-23,Unknown,Illinois,,58,0 +2020-03-24,Unknown,Illinois,,2,0 +2020-03-25,Unknown,Illinois,,0,2 +2020-03-28,Unknown,Illinois,,3,0 +2020-03-30,Unknown,Illinois,,3,0 +2020-03-31,Unknown,Illinois,,6,0 +2020-04-01,Unknown,Illinois,,16,0 +2020-04-02,Unknown,Illinois,,28,0 +2020-04-03,Unknown,Illinois,,40,0 +2020-04-04,Unknown,Illinois,,15,0 +2020-04-05,Unknown,Illinois,,47,0 +2020-04-06,Unknown,Illinois,,62,0 +2020-04-07,Unknown,Illinois,,34,0 +2020-04-08,Unknown,Illinois,,61,0 +2020-04-09,Unknown,Illinois,,58,0 +2020-04-10,Unknown,Illinois,,76,0 +2020-04-11,Unknown,Illinois,,82,0 +2020-04-12,Unknown,Illinois,,91,0 +2020-04-13,Unknown,Illinois,,62,0 +2020-04-14,Unknown,Illinois,,43,0 +2020-04-15,Unknown,Illinois,,34,1 +2020-04-16,Unknown,Illinois,,51,1 +2020-04-17,Unknown,Illinois,,71,0 +2020-04-18,Unknown,Illinois,,83,0 +2020-04-19,Unknown,Illinois,,114,0 +2020-04-20,Unknown,Illinois,,129,0 +2020-04-21,Unknown,Illinois,,191,0 +2020-04-22,Unknown,Illinois,,228,1 +2020-04-23,Unknown,Illinois,,192,0 +2020-04-24,Unknown,Illinois,,218,0 +2020-04-25,Unknown,Illinois,,274,0 +2020-04-26,Unknown,Illinois,,308,0 +2020-04-27,Unknown,Illinois,,338,0 +2020-04-28,Unknown,Illinois,,335,0 +2020-04-29,Unknown,Illinois,,354,0 +2020-04-30,Unknown,Illinois,,378,0 +2020-05-01,Unknown,Illinois,,363,0 +2020-05-02,Unknown,Illinois,,278,0 +2020-05-03,Unknown,Illinois,,257,0 +2020-05-04,Unknown,Illinois,,277,0 +2020-05-05,Unknown,Illinois,,236,0 +2020-05-06,Unknown,Illinois,,105,0 +2020-05-07,Unknown,Illinois,,102,0 +2020-05-08,Unknown,Illinois,,48,0 +2020-05-09,Unknown,Illinois,,73,0 +2020-05-10,Unknown,Illinois,,84,0 +2020-06-08,Unknown,Illinois,,724,178 +2020-06-09,Unknown,Illinois,,724,178 +2020-06-10,Unknown,Illinois,,724,178 +2020-06-11,Unknown,Illinois,,724,178 +2020-06-12,Unknown,Illinois,,861,181 +2020-06-13,Unknown,Illinois,,861,181 +2020-06-14,Unknown,Illinois,,861,181 +2020-06-15,Unknown,Illinois,,861,181 +2020-06-16,Unknown,Illinois,,861,181 +2020-06-17,Unknown,Illinois,,861,181 +2020-06-18,Unknown,Illinois,,861,181 +2020-06-19,Unknown,Illinois,,1000,204 +2020-06-20,Unknown,Illinois,,1000,204 +2020-06-21,Unknown,Illinois,,1000,204 +2020-06-22,Unknown,Illinois,,1000,204 +2020-06-23,Unknown,Illinois,,1000,204 +2020-06-24,Unknown,Illinois,,1000,204 +2020-06-25,Unknown,Illinois,,1000,204 +2020-06-26,Unknown,Illinois,,1053,201 +2020-06-27,Unknown,Illinois,,1053,201 +2020-06-28,Unknown,Illinois,,1053,201 +2020-06-29,Unknown,Illinois,,1053,201 +2020-06-30,Unknown,Illinois,,1053,201 +2020-07-01,Unknown,Illinois,,1053,201 +2020-07-02,Unknown,Illinois,,1057,201 +2020-07-03,Unknown,Illinois,,1122,210 +2020-07-04,Unknown,Illinois,,1122,210 +2020-07-05,Unknown,Illinois,,1122,210 +2020-07-06,Unknown,Illinois,,1122,210 +2020-07-07,Unknown,Illinois,,1122,210 +2020-07-08,Unknown,Illinois,,1122,210 +2020-07-09,Unknown,Illinois,,1122,210 +2020-03-19,Unknown,Kentucky,,1,0 +2020-03-20,Unknown,Kentucky,,1,0 +2020-03-21,Unknown,Kentucky,,5,0 +2020-03-22,Unknown,Kentucky,,6,0 +2020-03-23,Unknown,Kentucky,,9,0 +2020-03-24,Unknown,Kentucky,,13,0 +2020-03-25,Unknown,Kentucky,,31,0 +2020-03-26,Unknown,Kentucky,,38,0 +2020-03-27,Unknown,Kentucky,,41,0 +2020-03-28,Unknown,Kentucky,,56,0 +2020-03-29,Unknown,Kentucky,,57,0 +2020-03-30,Unknown,Kentucky,,55,0 +2020-04-03,Unknown,Kentucky,,15,0 +2020-04-04,Unknown,Kentucky,,77,3 +2020-04-05,Unknown,Kentucky,,0,7 +2020-04-06,Unknown,Kentucky,,0,7 +2020-04-08,Unknown,Kentucky,,0,7 +2020-04-09,Unknown,Kentucky,,0,7 +2020-04-12,Unknown,Kentucky,,24,0 +2020-04-13,Unknown,Kentucky,,23,0 +2020-04-14,Unknown,Kentucky,,15,0 +2020-04-16,Unknown,Kentucky,,11,0 +2020-04-17,Unknown,Kentucky,,25,0 +2020-04-18,Unknown,Kentucky,,35,0 +2020-04-19,Unknown,Kentucky,,38,0 +2020-04-20,Unknown,Kentucky,,35,0 +2020-04-22,Unknown,Kentucky,,36,0 +2020-04-24,Unknown,Kentucky,,19,0 +2020-04-25,Unknown,Kentucky,,35,0 +2020-04-26,Unknown,Kentucky,,13,0 +2020-04-27,Unknown,Kentucky,,11,0 +2020-04-28,Unknown,Kentucky,,28,0 +2020-04-29,Unknown,Kentucky,,31,0 +2020-04-30,Unknown,Kentucky,,31,0 +2020-05-01,Unknown,Kentucky,,38,0 +2020-05-03,Unknown,Kentucky,,1,1 +2020-05-04,Unknown,Kentucky,,7,0 +2020-05-05,Unknown,Kentucky,,21,0 +2020-05-06,Unknown,Kentucky,,0,1 +2020-05-07,Unknown,Kentucky,,3,1 +2020-05-08,Unknown,Kentucky,,0,1 +2020-05-13,Unknown,Kentucky,,66,0 +2020-04-01,Unknown,Maryland,,34,9 +2020-04-02,Unknown,Maryland,,0,7 +2020-04-15,Unknown,Maryland,,14,99 +2020-04-16,Unknown,Maryland,,13,104 +2020-04-17,Unknown,Maryland,,11,99 +2020-04-18,Unknown,Maryland,,11,107 +2020-04-19,Unknown,Maryland,,10,79 +2020-04-20,Unknown,Maryland,,10,87 +2020-04-21,Unknown,Maryland,,12,113 +2020-04-22,Unknown,Maryland,,8,102 +2020-04-23,Unknown,Maryland,,5,102 +2020-04-24,Unknown,Maryland,,9,135 +2020-04-25,Unknown,Maryland,,9,113 +2020-04-26,Unknown,Maryland,,13,134 +2020-04-27,Unknown,Maryland,,16,87 +2020-04-28,Unknown,Maryland,,13,106 +2020-04-29,Unknown,Maryland,,13,79 +2020-04-30,Unknown,Maryland,,0,74 +2020-05-01,Unknown,Maryland,,9,100 +2020-05-02,Unknown,Maryland,,8,72 +2020-05-03,Unknown,Maryland,,10,56 +2020-05-04,Unknown,Maryland,,10,65 +2020-05-05,Unknown,Maryland,,7,78 +2020-05-06,Unknown,Maryland,,6,78 +2020-05-07,Unknown,Maryland,,8,95 +2020-05-08,Unknown,Maryland,,10,99 +2020-05-09,Unknown,Maryland,,7,101 +2020-05-10,Unknown,Maryland,,8,91 +2020-05-11,Unknown,Maryland,,10,106 +2020-05-12,Unknown,Maryland,,12,109 +2020-05-13,Unknown,Maryland,,11,92 +2020-05-14,Unknown,Maryland,,9,95 +2020-05-15,Unknown,Maryland,,10,91 +2020-05-16,Unknown,Maryland,,7,89 +2020-05-17,Unknown,Maryland,,7,81 +2020-05-18,Unknown,Maryland,,10,86 +2020-05-19,Unknown,Maryland,,11,88 +2020-05-20,Unknown,Maryland,,8,74 +2020-05-21,Unknown,Maryland,,6,65 +2020-05-22,Unknown,Maryland,,5,65 +2020-05-23,Unknown,Maryland,,3,58 +2020-05-24,Unknown,Maryland,,0,65 +2020-05-25,Unknown,Maryland,,0,57 +2020-05-26,Unknown,Maryland,,0,58 +2020-05-27,Unknown,Maryland,,0,67 +2020-05-28,Unknown,Maryland,,0,69 +2020-05-29,Unknown,Maryland,,0,55 +2020-05-30,Unknown,Maryland,,0,55 +2020-05-31,Unknown,Maryland,,0,50 +2020-06-01,Unknown,Maryland,,0,46 +2020-06-02,Unknown,Maryland,,0,55 +2020-06-03,Unknown,Maryland,,0,53 +2020-06-04,Unknown,Maryland,,0,40 +2020-06-05,Unknown,Maryland,,0,41 +2020-06-06,Unknown,Maryland,,0,36 +2020-06-07,Unknown,Maryland,,0,28 +2020-06-08,Unknown,Maryland,,0,44 +2020-06-09,Unknown,Maryland,,0,40 +2020-06-10,Unknown,Maryland,,0,43 +2020-06-11,Unknown,Maryland,,0,48 +2020-06-12,Unknown,Maryland,,0,40 +2020-06-13,Unknown,Maryland,,0,39 +2020-06-14,Unknown,Maryland,,0,32 +2020-06-15,Unknown,Maryland,,0,28 +2020-06-16,Unknown,Maryland,,0,45 +2020-06-17,Unknown,Maryland,,0,31 +2020-06-18,Unknown,Maryland,,0,26 +2020-06-19,Unknown,Maryland,,0,25 +2020-06-20,Unknown,Maryland,,0,25 +2020-06-21,Unknown,Maryland,,0,28 +2020-06-22,Unknown,Maryland,,0,22 +2020-06-23,Unknown,Maryland,,0,25 +2020-06-24,Unknown,Maryland,,0,24 +2020-06-25,Unknown,Maryland,,0,29 +2020-06-26,Unknown,Maryland,,0,26 +2020-06-27,Unknown,Maryland,,0,23 +2020-06-28,Unknown,Maryland,,0,26 +2020-06-29,Unknown,Maryland,,0,24 +2020-06-30,Unknown,Maryland,,0,29 +2020-07-01,Unknown,Maryland,,0,25 +2020-07-02,Unknown,Maryland,,0,26 +2020-07-03,Unknown,Maryland,,0,23 +2020-07-04,Unknown,Maryland,,0,23 +2020-07-05,Unknown,Maryland,,0,26 +2020-07-06,Unknown,Maryland,,0,18 +2020-07-07,Unknown,Maryland,,0,27 +2020-07-08,Unknown,Maryland,,0,19 +2020-07-09,Unknown,Maryland,,0,21 +2020-03-24,Unknown,Michigan,,8,0 +2020-03-25,Unknown,Michigan,,8,0 +2020-03-26,Unknown,Michigan,,13,0 +2020-03-27,Unknown,Michigan,,28,0 +2020-03-28,Unknown,Michigan,,45,0 +2020-03-29,Unknown,Michigan,,90,0 +2020-03-30,Unknown,Michigan,,77,0 +2020-03-31,Unknown,Michigan,,93,0 +2020-04-01,Unknown,Michigan,,161,2 +2020-04-02,Unknown,Michigan,,182,0 +2020-04-03,Unknown,Michigan,,215,1 +2020-04-04,Unknown,Michigan,,333,0 +2020-04-05,Unknown,Michigan,,306,0 +2020-04-06,Unknown,Michigan,,367,1 +2020-04-07,Unknown,Michigan,,405,0 +2020-04-08,Unknown,Michigan,,363,3 +2020-04-09,Unknown,Michigan,,368,5 +2020-04-10,Unknown,Michigan,,433,7 +2020-04-11,Unknown,Michigan,,474,15 +2020-04-12,Unknown,Michigan,,480,20 +2020-04-13,Unknown,Michigan,,469,12 +2020-04-14,Unknown,Michigan,,543,13 +2020-04-15,Unknown,Michigan,,114,8 +2020-04-16,Unknown,Michigan,,88,7 +2020-04-17,Unknown,Michigan,,91,10 +2020-04-18,Unknown,Michigan,,142,13 +2020-04-19,Unknown,Michigan,,77,3 +2020-04-20,Unknown,Michigan,,48,5 +2020-04-21,Unknown,Michigan,,83,3 +2020-04-23,Unknown,Michigan,,71,2 +2020-04-24,Unknown,Michigan,,92,1 +2020-04-25,Unknown,Michigan,,0,3 +2020-04-26,Unknown,Michigan,,0,3 +2020-04-27,Unknown,Michigan,,0,7 +2020-04-28,Unknown,Michigan,,0,2 +2020-04-29,Unknown,Michigan,,0,2 +2020-04-30,Unknown,Michigan,,88,1 +2020-05-01,Unknown,Michigan,,24,1 +2020-05-02,Unknown,Michigan,,217,0 +2020-05-04,Unknown,Michigan,,0,3 +2020-05-05,Unknown,Michigan,,0,5 +2020-05-07,Unknown,Michigan,,22,3 +2020-05-08,Unknown,Michigan,,142,1 +2020-05-09,Unknown,Michigan,,75,1 +2020-05-10,Unknown,Michigan,,49,3 +2020-05-11,Unknown,Michigan,,37,5 +2020-05-12,Unknown,Michigan,,38,7 +2020-05-13,Unknown,Michigan,,20,4 +2020-05-14,Unknown,Michigan,,48,3 +2020-05-15,Unknown,Michigan,,75,2 +2020-05-16,Unknown,Michigan,,23,1 +2020-05-17,Unknown,Michigan,,340,2 +2020-05-18,Unknown,Michigan,,23,0 +2020-05-19,Unknown,Michigan,,76,1 +2020-05-20,Unknown,Michigan,,154,1 +2020-05-21,Unknown,Michigan,,219,2 +2020-05-22,Unknown,Michigan,,259,2 +2020-05-23,Unknown,Michigan,,256,4 +2020-05-24,Unknown,Michigan,,21,6 +2020-05-25,Unknown,Michigan,,20,6 +2020-05-26,Unknown,Michigan,,28,6 +2020-05-27,Unknown,Michigan,,284,3 +2020-05-28,Unknown,Michigan,,328,4 +2020-05-29,Unknown,Michigan,,494,5 +2020-05-30,Unknown,Michigan,,646,8 +2020-05-31,Unknown,Michigan,,319,3 +2020-06-01,Unknown,Michigan,,139,3 +2020-06-02,Unknown,Michigan,,173,5 +2020-06-03,Unknown,Michigan,,95,3 +2020-06-04,Unknown,Michigan,,107,2 +2020-06-05,Unknown,Michigan,,197,3 +2020-06-06,Unknown,Michigan,,205,4 +2020-06-07,Unknown,Michigan,,210,4 +2020-06-08,Unknown,Michigan,,211,4 +2020-06-09,Unknown,Michigan,,208,3 +2020-06-10,Unknown,Michigan,,203,3 +2020-06-11,Unknown,Michigan,,220,1 +2020-06-12,Unknown,Michigan,,232,4 +2020-06-13,Unknown,Michigan,,207,2 +2020-06-14,Unknown,Michigan,,209,2 +2020-06-15,Unknown,Michigan,,139,2 +2020-06-16,Unknown,Michigan,,139,2 +2020-06-17,Unknown,Michigan,,150,2 +2020-06-18,Unknown,Michigan,,155,2 +2020-06-19,Unknown,Michigan,,161,2 +2020-06-20,Unknown,Michigan,,168,2 +2020-06-21,Unknown,Michigan,,166,2 +2020-06-22,Unknown,Michigan,,168,2 +2020-06-23,Unknown,Michigan,,182,2 +2020-06-24,Unknown,Michigan,,183,2 +2020-06-25,Unknown,Michigan,,192,2 +2020-06-26,Unknown,Michigan,,153,2 +2020-06-27,Unknown,Michigan,,156,2 +2020-06-28,Unknown,Michigan,,159,2 +2020-06-29,Unknown,Michigan,,161,2 +2020-06-30,Unknown,Michigan,,164,2 +2020-07-01,Unknown,Michigan,,167,2 +2020-07-02,Unknown,Michigan,,172,2 +2020-07-03,Unknown,Michigan,,153,2 +2020-07-04,Unknown,Michigan,,153,2 +2020-07-05,Unknown,Michigan,,154,2 +2020-07-06,Unknown,Michigan,,155,2 +2020-07-07,Unknown,Michigan,,155,2 +2020-07-08,Unknown,Michigan,,155,2 +2020-07-09,Unknown,Michigan,,153,2 +2020-03-20,Unknown,Missouri,,1,0 +2020-03-21,Unknown,Missouri,,1,0 +2020-03-22,Unknown,Missouri,,1,0 +2020-03-23,Unknown,Missouri,,1,0 +2020-03-24,Unknown,Missouri,,40,0 +2020-03-25,Unknown,Missouri,,4,0 +2020-03-27,Unknown,Missouri,,2,0 +2020-03-28,Unknown,Missouri,,3,0 +2020-03-29,Unknown,Missouri,,6,0 +2020-03-30,Unknown,Missouri,,11,0 +2020-03-31,Unknown,Missouri,,1,0 +2020-04-01,Unknown,Missouri,,153,0 +2020-04-02,Unknown,Missouri,,2,0 +2020-04-03,Unknown,Missouri,,3,0 +2020-04-04,Unknown,Missouri,,9,0 +2020-04-05,Unknown,Missouri,,2,0 +2020-04-06,Unknown,Missouri,,3,0 +2020-04-07,Unknown,Missouri,,4,0 +2020-04-08,Unknown,Missouri,,3,0 +2020-04-09,Unknown,Missouri,,2,0 +2020-04-10,Unknown,Missouri,,5,0 +2020-04-11,Unknown,Missouri,,4,0 +2020-04-12,Unknown,Missouri,,5,0 +2020-04-14,Unknown,Missouri,,1,0 +2020-04-16,Unknown,Missouri,,2,0 +2020-04-17,Unknown,Missouri,,4,0 +2020-04-18,Unknown,Missouri,,2,0 +2020-04-19,Unknown,Missouri,,1,0 +2020-04-20,Unknown,Missouri,,1,0 +2020-04-22,Unknown,Missouri,,3,0 +2020-04-23,Unknown,Missouri,,2,0 +2020-04-24,Unknown,Missouri,,2,0 +2020-04-25,Unknown,Missouri,,2,0 +2020-05-02,Unknown,Missouri,,3,0 +2020-06-22,Unknown,Missouri,,40,0 +2020-06-23,Unknown,Missouri,,45,0 +2020-06-24,Unknown,Missouri,,51,0 +2020-03-30,Unknown,Nebraska,,2,0 +2020-04-01,Unknown,Nebraska,,26,0 +2020-04-02,Unknown,Nebraska,,5,0 +2020-04-13,Unknown,Nebraska,,1,0 +2020-04-19,Unknown,Nebraska,,7,0 +2020-04-20,Unknown,Nebraska,,10,0 +2020-04-21,Unknown,Nebraska,,6,0 +2020-04-22,Unknown,Nebraska,,10,0 +2020-04-23,Unknown,Nebraska,,8,1 +2020-05-01,Unknown,Nebraska,,26,1 +2020-05-04,Unknown,Nebraska,,0,1 +2020-05-07,Unknown,Nebraska,,37,2 +2020-05-08,Unknown,Nebraska,,3,0 +2020-05-09,Unknown,Nebraska,,21,2 +2020-05-10,Unknown,Nebraska,,0,2 +2020-05-13,Unknown,Nebraska,,42,3 +2020-05-14,Unknown,Nebraska,,79,0 +2020-05-15,Unknown,Nebraska,,61,0 +2020-05-16,Unknown,Nebraska,,74,0 +2020-05-17,Unknown,Nebraska,,35,0 +2020-05-18,Unknown,Nebraska,,5,0 +2020-05-19,Unknown,Nebraska,,34,0 +2020-05-20,Unknown,Nebraska,,10,0 +2020-05-21,Unknown,Nebraska,,8,4 +2020-05-22,Unknown,Nebraska,,51,0 +2020-05-23,Unknown,Nebraska,,140,0 +2020-05-24,Unknown,Nebraska,,130,0 +2020-05-25,Unknown,Nebraska,,132,0 +2020-05-26,Unknown,Nebraska,,118,0 +2020-05-27,Unknown,Nebraska,,129,0 +2020-05-28,Unknown,Nebraska,,131,0 +2020-05-29,Unknown,Nebraska,,158,0 +2020-05-30,Unknown,Nebraska,,75,0 +2020-05-31,Unknown,Nebraska,,73,0 +2020-06-01,Unknown,Nebraska,,79,0 +2020-06-02,Unknown,Nebraska,,76,0 +2020-06-03,Unknown,Nebraska,,105,1 +2020-06-04,Unknown,Nebraska,,54,0 +2020-06-05,Unknown,Nebraska,,39,0 +2020-06-06,Unknown,Nebraska,,55,0 +2020-06-07,Unknown,Nebraska,,12,0 +2020-06-08,Unknown,Nebraska,,2,0 +2020-06-10,Unknown,Nebraska,,43,0 +2020-06-11,Unknown,Nebraska,,92,0 +2020-06-12,Unknown,Nebraska,,66,0 +2020-06-16,Unknown,Nebraska,,5,0 +2020-06-17,Unknown,Nebraska,,24,0 +2020-06-18,Unknown,Nebraska,,39,0 +2020-06-19,Unknown,Nebraska,,45,0 +2020-06-20,Unknown,Nebraska,,114,0 +2020-06-21,Unknown,Nebraska,,7,0 +2020-06-22,Unknown,Nebraska,,37,0 +2020-06-23,Unknown,Nebraska,,12,0 +2020-06-24,Unknown,Nebraska,,19,0 +2020-06-25,Unknown,Nebraska,,1,0 +2020-06-26,Unknown,Nebraska,,54,0 +2020-06-27,Unknown,Nebraska,,79,0 +2020-07-03,Unknown,Nebraska,,96,0 +2020-07-04,Unknown,Nebraska,,118,0 +2020-03-29,Unknown,New York,,0,68 +2020-03-30,Unknown,New York,,0,162 +2020-03-31,Unknown,New York,,0,268 +2020-04-01,Unknown,New York,,0,289 +2020-04-02,Unknown,New York,,0,415 +2020-04-03,Unknown,New York,,0,608 +2020-04-04,Unknown,New York,,0,309 +2020-04-05,Unknown,New York,,0,678 +2020-04-17,Unknown,New York,,0,630 +2020-04-18,Unknown,New York,,0,1170 +2020-04-01,Unknown,Oklahoma,,0,1 +2020-06-30,Unknown,Oklahoma,,1,0 +2020-03-24,Unknown,Virginia,,0,1 +2020-03-25,Unknown,Virginia,,0,1 +2020-03-26,Unknown,Virginia,,35,5 +2020-04-01,Unknown,Virginia,,27,0 +2020-04-03,Unknown,Virginia,,0,11 +2020-04-04,Unknown,Virginia,,0,17 +2020-04-05,Unknown,Virginia,,0,17 +2020-04-06,Unknown,Virginia,,0,18 +2020-04-07,Unknown,Virginia,,0,26 +2020-04-08,Unknown,Virginia,,1,0 +2020-04-09,Unknown,Virginia,,2,40 +2020-04-10,Unknown,Virginia,,0,52 +2020-04-11,Unknown,Virginia,,0,58 +2020-04-12,Unknown,Virginia,,2,68 +2020-04-13,Unknown,Virginia,,0,49 +2020-04-14,Unknown,Virginia,,0,32 +2020-04-15,Unknown,Virginia,,0,59 +2020-04-16,Unknown,Virginia,,0,71 +2020-04-17,Unknown,Virginia,,0,94 +2020-04-18,Unknown,Virginia,,0,114 +2020-04-19,Unknown,Virginia,,0,89 +2020-04-20,Unknown,Virginia,,2,90 +2020-04-28,Unknown,Virginia,,2,0 +2020-04-29,Unknown,Virginia,,2,0 +2020-04-30,Unknown,Virginia,,2,0 +2020-05-01,Unknown,Virginia,,2,0 +2020-05-02,Unknown,Virginia,,2,0 +2020-05-03,Unknown,Virginia,,2,0 +2020-05-04,Unknown,Virginia,,2,0 +2020-05-05,Unknown,Virginia,,2,0 +2020-05-06,Unknown,Virginia,,2,0 +2020-05-07,Unknown,Virginia,,2,0 +2020-05-08,Unknown,Virginia,,2,0 +2020-05-09,Unknown,Virginia,,2,0 +2020-05-10,Unknown,Virginia,,2,0 +2020-05-11,Unknown,Virginia,,2,0 +2020-05-12,Unknown,Virginia,,2,0 +2020-05-13,Unknown,Virginia,,2,0 +2020-05-14,Unknown,Virginia,,3,0 +2020-05-15,Unknown,Virginia,,3,0 +2020-05-16,Unknown,Virginia,,4,0 +2020-05-17,Unknown,Virginia,,5,0 +2020-05-18,Unknown,Virginia,,8,0 +2020-05-19,Unknown,Virginia,,16,0 +2020-05-20,Unknown,Virginia,,20,0 +2020-05-21,Unknown,Virginia,,21,0 +2020-05-22,Unknown,Virginia,,25,0 +2020-05-23,Unknown,Virginia,,24,1 +2020-05-24,Unknown,Virginia,,24,1 +2020-05-25,Unknown,Virginia,,24,1 +2020-05-26,Unknown,Virginia,,27,1 +2020-05-27,Unknown,Virginia,,29,1 +2020-05-28,Unknown,Virginia,,31,1 +2020-05-29,Unknown,Virginia,,31,1 +2020-05-30,Unknown,Virginia,,31,1 +2020-05-31,Unknown,Virginia,,31,1 +2020-06-01,Unknown,Virginia,,32,1 +2020-06-02,Unknown,Virginia,,37,1 +2020-06-03,Unknown,Virginia,,38,1 +2020-06-04,Unknown,Virginia,,39,1 +2020-06-05,Unknown,Virginia,,41,1 +2020-06-06,Unknown,Virginia,,47,1 +2020-06-07,Unknown,Virginia,,48,1 +2020-06-08,Unknown,Virginia,,50,1 +2020-06-09,Unknown,Virginia,,50,1 +2020-06-10,Unknown,Virginia,,52,1 +2020-06-11,Unknown,Virginia,,53,1 +2020-06-12,Unknown,Virginia,,54,1 +2020-06-13,Unknown,Virginia,,54,1 +2020-06-14,Unknown,Virginia,,54,1 +2020-06-15,Unknown,Virginia,,54,1 +2020-06-16,Unknown,Virginia,,56,1 +2020-06-17,Unknown,Virginia,,58,1 +2020-06-18,Unknown,Virginia,,58,1 +2020-06-19,Unknown,Virginia,,59,1 +2020-06-20,Unknown,Virginia,,59,1 +2020-06-21,Unknown,Virginia,,59,1 +2020-06-22,Unknown,Virginia,,60,1 +2020-06-23,Unknown,Virginia,,61,1 +2020-06-24,Unknown,Virginia,,70,1 +2020-06-25,Unknown,Virginia,,70,1 +2020-06-26,Unknown,Virginia,,70,1 +2020-06-27,Unknown,Virginia,,70,1 +2020-06-28,Unknown,Virginia,,72,1 +2020-06-29,Unknown,Virginia,,74,1 +2020-06-30,Unknown,Virginia,,78,1 +2020-07-01,Unknown,Virginia,,78,1 +2020-07-02,Unknown,Virginia,,80,1 +2020-07-03,Unknown,Virginia,,81,1 +2020-07-04,Unknown,Virginia,,82,1 +2020-07-05,Unknown,Virginia,,86,1 +2020-07-06,Unknown,Virginia,,87,1 +2020-07-07,Unknown,Virginia,,98,1 +2020-07-08,Unknown,Virginia,,101,1 +2020-07-09,Unknown,Virginia,,104,1 +2020-03-18,Unknown,Louisiana,,2,0 +2020-03-19,Unknown,Louisiana,,3,0 +2020-03-20,Unknown,Louisiana,,5,0 +2020-03-21,Unknown,Louisiana,,9,0 +2020-03-22,Unknown,Louisiana,,11,0 +2020-03-23,Unknown,Louisiana,,12,0 +2020-03-24,Unknown,Louisiana,,10,1 +2020-03-25,Unknown,Louisiana,,9,1 +2020-03-26,Unknown,Louisiana,,12,1 +2020-03-27,Unknown,Louisiana,,16,1 +2020-03-28,Unknown,Louisiana,,9,1 +2020-03-29,Unknown,Louisiana,,8,1 +2020-03-30,Unknown,Louisiana,,14,0 +2020-03-31,Unknown,Louisiana,,22,4 +2020-04-01,Unknown,Louisiana,,28,0 +2020-04-02,Unknown,Louisiana,,40,1 +2020-04-03,Unknown,Louisiana,,42,4 +2020-04-04,Unknown,Louisiana,,35,0 +2020-04-05,Unknown,Louisiana,,35,4 +2020-04-06,Unknown,Louisiana,,48,3 +2020-04-07,Unknown,Louisiana,,49,2 +2020-04-08,Unknown,Louisiana,,49,2 +2020-04-09,Unknown,Louisiana,,51,2 +2020-04-10,Unknown,Louisiana,,54,2 +2020-04-11,Unknown,Louisiana,,54,3 +2020-04-12,Unknown,Louisiana,,54,3 +2020-04-13,Unknown,Louisiana,,56,0 +2020-04-14,Unknown,Louisiana,,56,0 +2020-04-15,Unknown,Louisiana,,56,1 +2020-04-16,Unknown,Louisiana,,56,1 +2020-04-17,Unknown,Louisiana,,56,1 +2020-04-18,Unknown,Louisiana,,57,1 +2020-04-19,Unknown,Louisiana,,58,1 +2020-04-20,Unknown,Louisiana,,59,1 +2020-04-21,Unknown,Louisiana,,59,2 +2020-04-22,Unknown,Louisiana,,119,60 +2020-04-23,Unknown,Louisiana,,121,59 +2020-04-24,Unknown,Louisiana,,122,59 +2020-04-25,Unknown,Louisiana,,122,59 +2020-04-26,Unknown,Louisiana,,123,59 +2020-04-27,Unknown,Louisiana,,107,43 +2020-04-28,Unknown,Louisiana,,104,43 +2020-04-29,Unknown,Louisiana,,104,43 +2020-04-30,Unknown,Louisiana,,104,43 +2020-05-01,Unknown,Louisiana,,106,43 +2020-05-02,Unknown,Louisiana,,106,43 +2020-05-03,Unknown,Louisiana,,106,43 +2020-05-04,Unknown,Louisiana,,136,73 +2020-05-05,Unknown,Louisiana,,136,73 +2020-05-06,Unknown,Louisiana,,136,74 +2020-05-07,Unknown,Louisiana,,136,74 +2020-05-08,Unknown,Louisiana,,136,74 +2020-05-09,Unknown,Louisiana,,137,74 +2020-05-10,Unknown,Louisiana,,137,74 +2020-05-11,Unknown,Louisiana,,130,68 +2020-05-12,Unknown,Louisiana,,130,67 +2020-05-13,Unknown,Louisiana,,130,66 +2020-05-14,Unknown,Louisiana,,131,66 +2020-05-15,Unknown,Louisiana,,131,66 +2020-05-16,Unknown,Louisiana,,138,66 +2020-05-17,Unknown,Louisiana,,138,66 +2020-05-18,Unknown,Louisiana,,195,123 +2020-05-19,Unknown,Louisiana,,195,123 +2020-05-20,Unknown,Louisiana,,195,123 +2020-05-21,Unknown,Louisiana,,201,123 +2020-05-22,Unknown,Louisiana,,201,123 +2020-05-23,Unknown,Louisiana,,202,123 +2020-05-24,Unknown,Louisiana,,202,130 +2020-05-25,Unknown,Louisiana,,184,130 +2020-05-26,Unknown,Louisiana,,184,105 +2020-05-27,Unknown,Louisiana,,190,126 +2020-05-28,Unknown,Louisiana,,189,106 +2020-05-29,Unknown,Louisiana,,189,105 +2020-05-30,Unknown,Louisiana,,189,105 +2020-05-31,Unknown,Louisiana,,189,105 +2020-06-01,Unknown,Louisiana,,195,111 +2020-06-02,Unknown,Louisiana,,196,111 +2020-06-03,Unknown,Louisiana,,196,111 +2020-06-04,Unknown,Louisiana,,199,111 +2020-06-05,Unknown,Louisiana,,199,111 +2020-06-06,Unknown,Louisiana,,231,111 +2020-06-07,Unknown,Louisiana,,231,111 +2020-06-08,Unknown,Louisiana,,233,113 +2020-06-09,Unknown,Louisiana,,308,113 +2020-06-10,Unknown,Louisiana,,327,113 +2020-06-11,Unknown,Louisiana,,327,113 +2020-06-12,Unknown,Louisiana,,353,113 +2020-06-13,Unknown,Louisiana,,406,113 +2020-06-14,Unknown,Louisiana,,406,113 +2020-06-15,Unknown,Louisiana,,431,112 +2020-06-16,Unknown,Louisiana,,505,112 +2020-06-17,Unknown,Louisiana,,570,112 +2020-06-18,Unknown,Louisiana,,1330,119 +2020-06-19,Unknown,Louisiana,,119,112 +2020-06-20,Unknown,Louisiana,,120,112 +2020-06-21,Unknown,Louisiana,,120,112 +2020-06-22,Unknown,Louisiana,,121,113 +2020-06-23,Unknown,Louisiana,,121,113 +2020-06-24,Unknown,Louisiana,,121,113 +2020-06-25,Unknown,Louisiana,,123,113 +2020-06-26,Unknown,Louisiana,,124,113 +2020-06-27,Unknown,Louisiana,,124,113 +2020-06-28,Unknown,Louisiana,,124,113 +2020-06-29,Unknown,Louisiana,,119,108 +2020-06-30,Unknown,Louisiana,,110,108 +2020-07-01,Unknown,Louisiana,,111,108 +2020-07-02,Unknown,Louisiana,,113,108 +2020-07-03,Unknown,Louisiana,,115,108 +2020-07-04,Unknown,Louisiana,,115,108 +2020-07-05,Unknown,Louisiana,,116,108 +2020-07-06,Unknown,Louisiana,,116,108 +2020-07-07,Unknown,Louisiana,,141,108 +2020-07-08,Unknown,Louisiana,,108,108 +2020-07-09,Unknown,Louisiana,,108,108 +2020-03-21,Unknown,Minnesota,,1,0 +2020-03-22,Unknown,Minnesota,,1,0 +2020-03-23,Unknown,Minnesota,,1,0 +2020-03-24,Unknown,Minnesota,,1,0 +2020-03-25,Unknown,Minnesota,,1,0 +2020-03-26,Unknown,Minnesota,,1,1 +2020-03-27,Unknown,Minnesota,,1,1 +2020-03-31,Unknown,Minnesota,,0,2 +2020-04-01,Unknown,Minnesota,,0,7 +2020-04-02,Unknown,Minnesota,,0,7 +2020-04-03,Unknown,Minnesota,,0,3 +2020-04-04,Unknown,Minnesota,,2,3 +2020-04-05,Unknown,Minnesota,,7,4 +2020-04-06,Unknown,Minnesota,,6,0 +2020-04-07,Unknown,Minnesota,,5,0 +2020-04-08,Unknown,Minnesota,,4,0 +2020-04-09,Unknown,Minnesota,,2,0 +2020-04-11,Unknown,Minnesota,,3,0 +2020-04-12,Unknown,Minnesota,,5,0 +2020-04-13,Unknown,Minnesota,,34,0 +2020-04-14,Unknown,Minnesota,,6,0 +2020-04-15,Unknown,Minnesota,,1,0 +2020-04-17,Unknown,Minnesota,,1,0 +2020-04-18,Unknown,Minnesota,,4,0 +2020-04-19,Unknown,Minnesota,,4,0 +2020-04-20,Unknown,Minnesota,,4,0 +2020-04-21,Unknown,Minnesota,,4,0 +2020-04-22,Unknown,Minnesota,,4,0 +2020-04-23,Unknown,Minnesota,,3,0 +2020-04-24,Unknown,Minnesota,,6,0 +2020-04-25,Unknown,Minnesota,,5,0 +2020-04-26,Unknown,Minnesota,,7,0 +2020-04-27,Unknown,Minnesota,,5,0 +2020-04-28,Unknown,Minnesota,,6,0 +2020-04-29,Unknown,Minnesota,,7,0 +2020-04-30,Unknown,Minnesota,,9,0 +2020-05-01,Unknown,Minnesota,,13,1 +2020-05-02,Unknown,Minnesota,,14,1 +2020-05-03,Unknown,Minnesota,,17,1 +2020-05-04,Unknown,Minnesota,,16,1 +2020-05-05,Unknown,Minnesota,,20,1 +2020-05-06,Unknown,Minnesota,,9,0 +2020-05-07,Unknown,Minnesota,,18,0 +2020-05-08,Unknown,Minnesota,,30,0 +2020-05-09,Unknown,Minnesota,,16,0 +2020-05-10,Unknown,Minnesota,,17,0 +2020-05-11,Unknown,Minnesota,,25,0 +2020-05-12,Unknown,Minnesota,,30,0 +2020-05-13,Unknown,Minnesota,,453,24 +2020-05-14,Unknown,Minnesota,,30,9 +2020-05-15,Unknown,Minnesota,,25,9 +2020-05-16,Unknown,Minnesota,,28,9 +2020-05-17,Unknown,Minnesota,,38,9 +2020-05-18,Unknown,Minnesota,,28,9 +2020-05-19,Unknown,Minnesota,,44,9 +2020-05-20,Unknown,Minnesota,,41,9 +2020-05-21,Unknown,Minnesota,,43,9 +2020-05-22,Unknown,Minnesota,,29,9 +2020-05-23,Unknown,Minnesota,,25,9 +2020-05-24,Unknown,Minnesota,,28,9 +2020-05-25,Unknown,Minnesota,,31,9 +2020-05-26,Unknown,Minnesota,,24,9 +2020-05-27,Unknown,Minnesota,,71,10 +2020-05-28,Unknown,Minnesota,,104,10 +2020-05-29,Unknown,Minnesota,,76,10 +2020-05-30,Unknown,Minnesota,,96,10 +2020-05-31,Unknown,Minnesota,,99,10 +2020-06-01,Unknown,Minnesota,,98,10 +2020-06-02,Unknown,Minnesota,,93,10 +2020-06-03,Unknown,Minnesota,,85,11 +2020-06-04,Unknown,Minnesota,,86,11 +2020-06-05,Unknown,Minnesota,,107,11 +2020-06-06,Unknown,Minnesota,,107,11 +2020-06-07,Unknown,Minnesota,,98,11 +2020-06-08,Unknown,Minnesota,,99,11 +2020-06-09,Unknown,Minnesota,,97,11 +2020-06-10,Unknown,Minnesota,,113,31 +2020-06-11,Unknown,Minnesota,,114,31 +2020-06-12,Unknown,Minnesota,,96,31 +2020-06-13,Unknown,Minnesota,,88,31 +2020-06-14,Unknown,Minnesota,,87,31 +2020-06-15,Unknown,Minnesota,,87,31 +2020-06-16,Unknown,Minnesota,,86,31 +2020-06-17,Unknown,Minnesota,,91,32 +2020-06-18,Unknown,Minnesota,,90,33 +2020-06-19,Unknown,Minnesota,,89,32 +2020-06-20,Unknown,Minnesota,,100,32 +2020-06-21,Unknown,Minnesota,,114,32 +2020-06-22,Unknown,Minnesota,,112,32 +2020-06-23,Unknown,Minnesota,,109,32 +2020-06-24,Unknown,Minnesota,,115,35 +2020-06-25,Unknown,Minnesota,,114,35 +2020-06-26,Unknown,Minnesota,,116,35 +2020-06-27,Unknown,Minnesota,,117,35 +2020-06-28,Unknown,Minnesota,,117,35 +2020-06-29,Unknown,Minnesota,,117,35 +2020-06-30,Unknown,Minnesota,,118,35 +2020-07-01,Unknown,Minnesota,,118,37 +2020-07-02,Unknown,Minnesota,,119,37 +2020-07-03,Unknown,Minnesota,,113,37 +2020-07-04,Unknown,Minnesota,,113,37 +2020-07-05,Unknown,Minnesota,,114,37 +2020-07-06,Unknown,Minnesota,,115,37 +2020-07-07,Unknown,Minnesota,,122,37 +2020-07-08,Unknown,Minnesota,,125,38 +2020-07-09,Unknown,Minnesota,,122,38 +2020-03-19,Unknown,Tennessee,,2,0 +2020-03-20,Unknown,Tennessee,,2,0 +2020-03-21,Unknown,Tennessee,,8,0 +2020-03-22,Unknown,Tennessee,,28,0 +2020-03-23,Unknown,Tennessee,,109,0 +2020-03-24,Unknown,Tennessee,,34,0 +2020-03-25,Unknown,Tennessee,,78,1 +2020-03-26,Unknown,Tennessee,,110,1 +2020-03-27,Unknown,Tennessee,,171,4 +2020-03-28,Unknown,Tennessee,,161,4 +2020-03-29,Unknown,Tennessee,,190,4 +2020-03-30,Unknown,Tennessee,,101,9 +2020-03-31,Unknown,Tennessee,,259,8 +2020-04-01,Unknown,Tennessee,,442,0 +2020-04-02,Unknown,Tennessee,,101,0 +2020-04-03,Unknown,Tennessee,,52,0 +2020-04-04,Unknown,Tennessee,,63,0 +2020-04-05,Unknown,Tennessee,,81,0 +2020-04-06,Unknown,Tennessee,,69,2 +2020-04-09,Unknown,Tennessee,,0,8 +2020-04-10,Unknown,Tennessee,,22,0 +2020-05-07,Unknown,Tennessee,,147,0 +2020-05-08,Unknown,Tennessee,,71,0 +2020-05-09,Unknown,Tennessee,,75,0 +2020-05-10,Unknown,Tennessee,,230,0 +2020-05-11,Unknown,Tennessee,,78,0 +2020-05-12,Unknown,Tennessee,,80,0 +2020-05-13,Unknown,Tennessee,,81,0 +2020-05-14,Unknown,Tennessee,,85,0 +2020-05-15,Unknown,Tennessee,,85,0 +2020-05-16,Unknown,Tennessee,,86,0 +2020-05-17,Unknown,Tennessee,,104,0 +2020-05-18,Unknown,Tennessee,,106,0 +2020-05-19,Unknown,Tennessee,,109,0 +2020-05-20,Unknown,Tennessee,,109,4 +2020-05-21,Unknown,Tennessee,,107,1 +2020-05-22,Unknown,Tennessee,,110,0 +2020-05-23,Unknown,Tennessee,,114,0 +2020-05-24,Unknown,Tennessee,,119,0 +2020-05-25,Unknown,Tennessee,,114,0 +2020-05-26,Unknown,Tennessee,,114,0 +2020-05-27,Unknown,Tennessee,,125,4 +2020-05-28,Unknown,Tennessee,,133,0 +2020-05-29,Unknown,Tennessee,,140,0 +2020-05-30,Unknown,Tennessee,,143,0 +2020-05-31,Unknown,Tennessee,,144,0 +2020-06-01,Unknown,Tennessee,,144,0 +2020-06-02,Unknown,Tennessee,,160,0 +2020-06-03,Unknown,Tennessee,,160,0 +2020-06-04,Unknown,Tennessee,,158,4 +2020-06-05,Unknown,Tennessee,,159,0 +2020-06-06,Unknown,Tennessee,,167,0 +2020-06-07,Unknown,Tennessee,,170,0 +2020-06-08,Unknown,Tennessee,,175,0 +2020-06-09,Unknown,Tennessee,,174,0 +2020-06-10,Unknown,Tennessee,,182,3 +2020-06-11,Unknown,Tennessee,,186,4 +2020-06-29,Unknown,Tennessee,,17,0 +2020-07-01,Unknown,Tennessee,,0,1 +2020-07-05,Unknown,Tennessee,,0,1 +2020-07-06,Unknown,Tennessee,,0,1 +2020-07-07,Unknown,Tennessee,,0,1 +2020-07-08,Unknown,Tennessee,,185,1 +2020-07-09,Unknown,Tennessee,,0,1 +2020-06-10,Unknown,Wisconsin,,2319,6 +2020-06-11,Unknown,Wisconsin,,2362,6 +2020-06-12,Unknown,Wisconsin,,2388,6 +2020-06-13,Unknown,Wisconsin,,2388,6 +2020-06-14,Unknown,Wisconsin,,2449,6 +2020-06-15,Unknown,Wisconsin,,2458,6 +2020-06-16,Unknown,Wisconsin,,2501,6 +2020-06-17,Unknown,Wisconsin,,2535,6 +2020-06-18,Unknown,Wisconsin,,2568,6 +2020-06-19,Unknown,Wisconsin,,2600,6 +2020-06-20,Unknown,Wisconsin,,2657,7 +2020-06-21,Unknown,Wisconsin,,2678,7 +2020-06-22,Unknown,Wisconsin,,2668,6 +2020-06-23,Unknown,Wisconsin,,2691,7 +2020-06-24,Unknown,Wisconsin,,2730,7 +2020-06-25,Unknown,Wisconsin,,2773,7 +2020-06-26,Unknown,Wisconsin,,2816,7 +2020-06-27,Unknown,Wisconsin,,2848,7 +2020-06-28,Unknown,Wisconsin,,2859,7 +2020-06-29,Unknown,Wisconsin,,2871,7 +2020-06-30,Unknown,Wisconsin,,2871,7 +2020-07-01,Unknown,Wisconsin,,2921,7 +2020-07-02,Unknown,Wisconsin,,2966,7 +2020-07-03,Unknown,Wisconsin,,3009,7 +2020-07-04,Unknown,Wisconsin,,3046,7 +2020-07-05,Unknown,Wisconsin,,3057,7 +2020-07-06,Unknown,Wisconsin,,3063,7 +2020-07-07,Unknown,Wisconsin,,3103,7 +2020-07-08,Unknown,Wisconsin,,3103,7 +2020-07-09,Unknown,Wisconsin,,3196,7 +2020-03-22,Unknown,California,,1,0 +2020-03-23,Unknown,California,,2,0 +2020-04-01,Unknown,California,,0,1 +2020-04-02,Unknown,California,,0,2 +2020-04-03,Unknown,California,,1,0 +2020-04-07,Unknown,California,,1,0 +2020-05-09,Unknown,California,,1,0 +2020-05-11,Unknown,California,,1,0 +2020-05-15,Unknown,California,,0,1 +2020-03-12,Unknown,New Jersey,,1,0 +2020-03-13,Unknown,New Jersey,,1,0 +2020-03-14,Unknown,New Jersey,,1,0 +2020-03-15,Unknown,New Jersey,,1,0 +2020-03-16,Unknown,New Jersey,,1,0 +2020-03-17,Unknown,New Jersey,,1,0 +2020-03-18,Unknown,New Jersey,,1,0 +2020-03-19,Unknown,New Jersey,,1,0 +2020-03-20,Unknown,New Jersey,,3,0 +2020-03-21,Unknown,New Jersey,,151,0 +2020-03-22,Unknown,New Jersey,,221,0 +2020-03-23,Unknown,New Jersey,,416,0 +2020-03-24,Unknown,New Jersey,,645,0 +2020-03-25,Unknown,New Jersey,,933,0 +2020-03-26,Unknown,New Jersey,,1478,0 +2020-03-27,Unknown,New Jersey,,1984,0 +2020-03-28,Unknown,New Jersey,,2478,0 +2020-03-29,Unknown,New Jersey,,3020,21 +2020-03-30,Unknown,New Jersey,,3840,0 +2020-03-31,Unknown,New Jersey,,3683,0 +2020-04-01,Unknown,New Jersey,,4512,0 +2020-04-02,Unknown,New Jersey,,4866,4 +2020-04-03,Unknown,New Jersey,,4805,4 +2020-04-04,Unknown,New Jersey,,3935,11 +2020-04-05,Unknown,New Jersey,,3821,11 +2020-04-06,Unknown,New Jersey,,3521,14 +2020-04-07,Unknown,New Jersey,,2220,4 +2020-04-08,Unknown,New Jersey,,1362,4 +2020-04-09,Unknown,New Jersey,,996,6 +2020-04-10,Unknown,New Jersey,,649,2 +2020-04-11,Unknown,New Jersey,,924,2 +2020-04-12,Unknown,New Jersey,,1274,2 +2020-04-13,Unknown,New Jersey,,1203,2 +2020-04-14,Unknown,New Jersey,,1702,2 +2020-04-15,Unknown,New Jersey,,1189,2 +2020-04-16,Unknown,New Jersey,,1048,3 +2020-04-17,Unknown,New Jersey,,719,3 +2020-04-18,Unknown,New Jersey,,748,2 +2020-04-19,Unknown,New Jersey,,585,0 +2020-04-20,Unknown,New Jersey,,669,1 +2020-04-21,Unknown,New Jersey,,599,0 +2020-04-22,Unknown,New Jersey,,1045,2 +2020-04-23,Unknown,New Jersey,,1108,2 +2020-04-24,Unknown,New Jersey,,532,0 +2020-04-25,Unknown,New Jersey,,557,0 +2020-04-26,Unknown,New Jersey,,681,0 +2020-04-27,Unknown,New Jersey,,818,0 +2020-04-28,Unknown,New Jersey,,718,0 +2020-04-29,Unknown,New Jersey,,617,0 +2020-04-30,Unknown,New Jersey,,478,0 +2020-05-01,Unknown,New Jersey,,583,0 +2020-05-02,Unknown,New Jersey,,676,0 +2020-05-03,Unknown,New Jersey,,641,0 +2020-05-04,Unknown,New Jersey,,647,0 +2020-05-05,Unknown,New Jersey,,550,0 +2020-05-06,Unknown,New Jersey,,594,0 +2020-05-07,Unknown,New Jersey,,552,0 +2020-05-08,Unknown,New Jersey,,553,1 +2020-05-09,Unknown,New Jersey,,557,0 +2020-05-10,Unknown,New Jersey,,591,0 +2020-05-11,Unknown,New Jersey,,729,0 +2020-05-12,Unknown,New Jersey,,704,0 +2020-05-13,Unknown,New Jersey,,662,0 +2020-05-14,Unknown,New Jersey,,802,0 +2020-05-15,Unknown,New Jersey,,885,0 +2020-05-16,Unknown,New Jersey,,996,0 +2020-05-17,Unknown,New Jersey,,949,0 +2020-05-18,Unknown,New Jersey,,835,0 +2020-05-19,Unknown,New Jersey,,778,0 +2020-05-20,Unknown,New Jersey,,855,0 +2020-05-21,Unknown,New Jersey,,1026,0 +2020-05-22,Unknown,New Jersey,,1123,0 +2020-05-23,Unknown,New Jersey,,1110,0 +2020-05-24,Unknown,New Jersey,,1200,0 +2020-05-25,Unknown,New Jersey,,1100,0 +2020-05-26,Unknown,New Jersey,,1083,0 +2020-05-27,Unknown,New Jersey,,1172,0 +2020-05-28,Unknown,New Jersey,,1162,0 +2020-05-29,Unknown,New Jersey,,1095,0 +2020-05-30,Unknown,New Jersey,,970,0 +2020-05-31,Unknown,New Jersey,,870,0 +2020-06-01,Unknown,New Jersey,,863,0 +2020-06-02,Unknown,New Jersey,,946,0 +2020-06-03,Unknown,New Jersey,,854,0 +2020-06-04,Unknown,New Jersey,,836,0 +2020-06-05,Unknown,New Jersey,,785,0 +2020-06-06,Unknown,New Jersey,,782,0 +2020-06-07,Unknown,New Jersey,,744,0 +2020-06-08,Unknown,New Jersey,,732,0 +2020-06-09,Unknown,New Jersey,,680,0 +2020-06-10,Unknown,New Jersey,,665,0 +2020-06-11,Unknown,New Jersey,,653,0 +2020-06-12,Unknown,New Jersey,,677,0 +2020-06-13,Unknown,New Jersey,,667,0 +2020-06-14,Unknown,New Jersey,,663,0 +2020-06-15,Unknown,New Jersey,,651,0 +2020-06-16,Unknown,New Jersey,,664,0 +2020-06-17,Unknown,New Jersey,,643,0 +2020-06-18,Unknown,New Jersey,,683,0 +2020-06-19,Unknown,New Jersey,,693,0 +2020-06-20,Unknown,New Jersey,,710,0 +2020-06-21,Unknown,New Jersey,,663,0 +2020-06-22,Unknown,New Jersey,,656,0 +2020-06-23,Unknown,New Jersey,,697,0 +2020-06-24,Unknown,New Jersey,,698,0 +2020-06-25,Unknown,New Jersey,,706,0 +2020-06-26,Unknown,New Jersey,,701,0 +2020-06-27,Unknown,New Jersey,,697,0 +2020-06-28,Unknown,New Jersey,,651,0 +2020-06-29,Unknown,New Jersey,,636,0 +2020-06-30,Unknown,New Jersey,,642,0 +2020-07-01,Unknown,New Jersey,,643,0 +2020-07-02,Unknown,New Jersey,,672,0 +2020-07-03,Unknown,New Jersey,,658,0 +2020-07-04,Unknown,New Jersey,,679,0 +2020-07-05,Unknown,New Jersey,,685,0 +2020-07-06,Unknown,New Jersey,,695,0 +2020-07-07,Unknown,New Jersey,,682,0 +2020-07-08,Unknown,New Jersey,,747,91 +2020-07-09,Unknown,New Jersey,,665,0 +2020-04-03,Unknown,New Mexico,,2,0 +2020-04-27,Unknown,New Mexico,,0,5 +2020-04-28,Unknown,New Mexico,,0,5 +2020-05-02,Unknown,New Mexico,,0,1 +2020-05-03,Unknown,New Mexico,,0,1 +2020-05-04,Unknown,New Mexico,,0,6 +2020-05-20,Unknown,New Mexico,,21,0 +2020-05-21,Unknown,New Mexico,,24,0 +2020-05-25,Unknown,New Mexico,,1,0 +2020-06-07,Unknown,New Mexico,,0,1 +2020-06-08,Unknown,New Mexico,,1,0 +2020-06-14,Unknown,New Mexico,,19,0 +2020-06-21,Unknown,New Mexico,,41,0 +2020-06-23,Unknown,New Mexico,,6,0 +2020-06-26,Unknown,New Mexico,,7,0 +2020-06-27,Unknown,New Mexico,,7,0 +2020-03-24,Unknown,Washington,,77,0 +2020-03-26,Unknown,Washington,,65,0 +2020-03-27,Unknown,Washington,,43,0 +2020-03-28,Unknown,Washington,,158,0 +2020-03-29,Unknown,Washington,,262,0 +2020-03-30,Unknown,Washington,,243,0 +2020-03-31,Unknown,Washington,,231,0 +2020-04-02,Unknown,Washington,,510,0 +2020-04-03,Unknown,Washington,,476,0 +2020-04-04,Unknown,Washington,,710,0 +2020-04-05,Unknown,Washington,,615,0 +2020-04-06,Unknown,Washington,,653,0 +2020-04-07,Unknown,Washington,,601,0 +2020-04-08,Unknown,Washington,,705,0 +2020-04-09,Unknown,Washington,,815,0 +2020-04-10,Unknown,Washington,,627,0 +2020-04-11,Unknown,Washington,,583,0 +2020-04-12,Unknown,Washington,,499,0 +2020-04-13,Unknown,Washington,,329,0 +2020-04-14,Unknown,Washington,,220,0 +2020-04-15,Unknown,Washington,,77,0 +2020-04-16,Unknown,Washington,,154,0 +2020-04-17,Unknown,Washington,,174,0 +2020-04-18,Unknown,Washington,,233,0 +2020-03-30,Unknown,Connecticut,,176,0 +2020-03-31,Unknown,Connecticut,,77,2 +2020-04-01,Unknown,Connecticut,,185,2 +2020-04-02,Unknown,Connecticut,,174,1 +2020-04-03,Unknown,Connecticut,,218,1 +2020-04-04,Unknown,Connecticut,,241,1 +2020-04-05,Unknown,Connecticut,,222,1 +2020-04-06,Unknown,Connecticut,,264,0 +2020-04-07,Unknown,Connecticut,,292,3 +2020-04-08,Unknown,Connecticut,,366,2 +2020-04-09,Unknown,Connecticut,,392,2 +2020-04-10,Unknown,Connecticut,,407,4 +2020-04-11,Unknown,Connecticut,,456,5 +2020-04-12,Unknown,Connecticut,,501,4 +2020-04-13,Unknown,Connecticut,,491,4 +2020-04-14,Unknown,Connecticut,,533,4 +2020-04-15,Unknown,Connecticut,,537,2 +2020-04-16,Unknown,Connecticut,,534,2 +2020-04-17,Unknown,Connecticut,,495,2 +2020-04-18,Unknown,Connecticut,,525,3 +2020-04-19,Unknown,Connecticut,,529,4 +2020-04-20,Unknown,Connecticut,,514,4 +2020-04-21,Unknown,Connecticut,,503,4 +2020-04-22,Unknown,Connecticut,,550,7 +2020-04-23,Unknown,Connecticut,,522,6 +2020-04-24,Unknown,Connecticut,,507,2 +2020-04-25,Unknown,Connecticut,,521,2 +2020-04-26,Unknown,Connecticut,,522,0 +2020-04-27,Unknown,Connecticut,,484,0 +2020-04-28,Unknown,Connecticut,,491,2 +2020-04-29,Unknown,Connecticut,,507,1 +2020-04-30,Unknown,Connecticut,,462,2 +2020-05-01,Unknown,Connecticut,,371,2 +2020-05-02,Unknown,Connecticut,,312,1 +2020-05-03,Unknown,Connecticut,,312,1 +2020-05-04,Unknown,Connecticut,,363,3 +2020-05-05,Unknown,Connecticut,,368,2 +2020-05-06,Unknown,Connecticut,,305,2 +2020-05-07,Unknown,Connecticut,,285,2 +2020-05-08,Unknown,Connecticut,,302,3 +2020-05-09,Unknown,Connecticut,,246,3 +2020-05-10,Unknown,Connecticut,,300,3 +2020-05-11,Unknown,Connecticut,,273,3 +2020-05-12,Unknown,Connecticut,,263,3 +2020-05-13,Unknown,Connecticut,,250,5 +2020-05-14,Unknown,Connecticut,,235,3 +2020-05-15,Unknown,Connecticut,,238,3 +2020-05-16,Unknown,Connecticut,,257,2 +2020-05-17,Unknown,Connecticut,,210,1 +2020-05-18,Unknown,Connecticut,,233,2 +2020-05-19,Unknown,Connecticut,,218,2 +2020-05-20,Unknown,Connecticut,,202,2 +2020-05-21,Unknown,Connecticut,,194,2 +2020-05-22,Unknown,Connecticut,,188,2 +2020-05-23,Unknown,Connecticut,,215,2 +2020-05-24,Unknown,Connecticut,,210,0 +2020-05-25,Unknown,Connecticut,,224,0 +2020-05-26,Unknown,Connecticut,,257,1 +2020-05-27,Unknown,Connecticut,,228,1 +2020-05-28,Unknown,Connecticut,,218,0 +2020-05-29,Unknown,Connecticut,,226,0 +2020-05-30,Unknown,Connecticut,,229,0 +2020-05-31,Unknown,Connecticut,,234,0 +2020-06-01,Unknown,Connecticut,,240,0 +2020-06-02,Unknown,Connecticut,,251,0 +2020-06-03,Unknown,Connecticut,,248,0 +2020-06-04,Unknown,Connecticut,,241,0 +2020-06-05,Unknown,Connecticut,,245,0 +2020-06-06,Unknown,Connecticut,,255,0 +2020-06-07,Unknown,Connecticut,,268,0 +2020-06-08,Unknown,Connecticut,,272,0 +2020-06-09,Unknown,Connecticut,,286,0 +2020-06-10,Unknown,Connecticut,,304,2 +2020-06-11,Unknown,Connecticut,,293,0 +2020-06-12,Unknown,Connecticut,,289,0 +2020-06-13,Unknown,Connecticut,,299,0 +2020-06-14,Unknown,Connecticut,,270,0 +2020-06-15,Unknown,Connecticut,,342,0 +2020-06-16,Unknown,Connecticut,,340,0 +2020-06-17,Unknown,Connecticut,,345,0 +2020-06-18,Unknown,Connecticut,,270,0 +2020-06-19,Unknown,Connecticut,,273,0 +2020-06-20,Unknown,Connecticut,,276,0 +2020-06-21,Unknown,Connecticut,,273,0 +2020-06-22,Unknown,Connecticut,,270,0 +2020-06-23,Unknown,Connecticut,,262,0 +2020-06-24,Unknown,Connecticut,,260,0 +2020-06-25,Unknown,Connecticut,,260,0 +2020-06-26,Unknown,Connecticut,,252,0 +2020-06-27,Unknown,Connecticut,,252,0 +2020-06-28,Unknown,Connecticut,,251,0 +2020-06-29,Unknown,Connecticut,,205,0 +2020-06-30,Unknown,Connecticut,,204,0 +2020-07-01,Unknown,Connecticut,,209,0 +2020-07-02,Unknown,Connecticut,,211,0 +2020-07-03,Unknown,Connecticut,,213,0 +2020-07-04,Unknown,Connecticut,,213,0 +2020-07-05,Unknown,Connecticut,,213,0 +2020-07-06,Unknown,Connecticut,,227,0 +2020-07-07,Unknown,Connecticut,,227,0 +2020-07-08,Unknown,Connecticut,,228,0 +2020-07-09,Unknown,Connecticut,,227,0 +2020-03-27,Unknown,Mississippi,,3,0 +2020-03-28,Unknown,Mississippi,,6,0 +2020-06-18,Unknown,Mississippi,,381,5 +2020-06-19,Unknown,Mississippi,,381,5 +2020-06-20,Unknown,Mississippi,,381,5 +2020-06-21,Unknown,Mississippi,,381,5 +2020-03-13,Unknown,Puerto Rico,,3,0 +2020-03-14,Unknown,Puerto Rico,,4,0 +2020-03-15,Unknown,Puerto Rico,,5,0 +2020-03-16,Unknown,Puerto Rico,,5,0 +2020-03-17,Unknown,Puerto Rico,,5,0 +2020-03-18,Unknown,Puerto Rico,,5,0 +2020-03-19,Unknown,Puerto Rico,,6,0 +2020-03-20,Unknown,Puerto Rico,,14,0 +2020-03-21,Unknown,Puerto Rico,,21,1 +2020-03-22,Unknown,Puerto Rico,,23,1 +2020-03-23,Unknown,Puerto Rico,,31,2 +2020-03-24,Unknown,Puerto Rico,,39,2 +2020-03-25,Unknown,Puerto Rico,,51,2 +2020-03-26,Unknown,Puerto Rico,,64,2 +2020-03-27,Unknown,Puerto Rico,,79,3 +2020-03-28,Unknown,Puerto Rico,,100,3 +2020-03-29,Unknown,Puerto Rico,,127,5 +2020-03-30,Unknown,Puerto Rico,,174,6 +2020-03-31,Unknown,Puerto Rico,,239,8 +2020-04-01,Unknown,Puerto Rico,,286,11 +2020-04-02,Unknown,Puerto Rico,,316,12 +2020-04-03,Unknown,Puerto Rico,,378,15 +2020-04-04,Unknown,Puerto Rico,,452,18 +2020-04-05,Unknown,Puerto Rico,,475,20 +2020-04-06,Unknown,Puerto Rico,,513,21 +2020-04-07,Unknown,Puerto Rico,,573,23 +2020-04-08,Unknown,Puerto Rico,,620,24 +2020-04-09,Unknown,Puerto Rico,,683,33 +2020-04-10,Unknown,Puerto Rico,,725,39 +2020-04-11,Unknown,Puerto Rico,,788,42 +2020-04-12,Unknown,Puerto Rico,,897,44 +2020-04-13,Unknown,Puerto Rico,,903,45 +2020-04-14,Unknown,Puerto Rico,,923,45 +2020-04-15,Unknown,Puerto Rico,,974,51 +2020-04-16,Unknown,Puerto Rico,,1043,56 +2020-04-17,Unknown,Puerto Rico,,1068,58 +2020-04-18,Unknown,Puerto Rico,,1118,60 +2020-04-19,Unknown,Puerto Rico,,1213,41 +2020-04-20,Unknown,Puerto Rico,,1252,42 +2020-04-21,Unknown,Puerto Rico,,915,43 +2020-04-22,Unknown,Puerto Rico,,915,46 +2020-04-23,Unknown,Puerto Rico,,1230,69 +2020-04-24,Unknown,Puerto Rico,,1276,77 +2020-04-25,Unknown,Puerto Rico,,1307,83 +2020-04-26,Unknown,Puerto Rico,,1371,84 +2020-04-27,Unknown,Puerto Rico,,1388,84 +2020-04-28,Unknown,Puerto Rico,,1400,86 +2020-04-29,Unknown,Puerto Rico,,1465,86 +2020-04-30,Unknown,Puerto Rico,,1537,92 +2020-05-01,Unknown,Puerto Rico,,1573,94 +2020-05-02,Unknown,Puerto Rico,,1755,95 +2020-05-03,Unknown,Puerto Rico,,1806,97 +2020-05-04,Unknown,Puerto Rico,,1875,97 +2020-05-05,Unknown,Puerto Rico,,1924,99 +2020-05-06,Unknown,Puerto Rico,,1968,99 +2020-05-07,Unknown,Puerto Rico,,2031,102 +2020-05-08,Unknown,Puerto Rico,,2156,107 +2020-05-09,Unknown,Puerto Rico,,2173,108 +2020-05-10,Unknown,Puerto Rico,,2198,111 +2020-05-11,Unknown,Puerto Rico,,2256,113 +2020-05-12,Unknown,Puerto Rico,,2299,114 +2020-05-13,Unknown,Puerto Rico,,2329,115 +2020-05-14,Unknown,Puerto Rico,,2427,117 +2020-05-15,Unknown,Puerto Rico,,2542,122 +2020-05-16,Unknown,Puerto Rico,,2589,122 +2020-05-17,Unknown,Puerto Rico,,2646,123 +2020-05-18,Unknown,Puerto Rico,,2710,124 +2020-05-19,Unknown,Puerto Rico,,2805,124 +2020-05-20,Unknown,Puerto Rico,,2866,125 +2020-05-21,Unknown,Puerto Rico,,2913,126 +2020-05-22,Unknown,Puerto Rico,,3030,126 +2020-05-23,Unknown,Puerto Rico,,3100,127 +2020-05-24,Unknown,Puerto Rico,,3189,127 +2020-05-25,Unknown,Puerto Rico,,3260,129 +2020-05-26,Unknown,Puerto Rico,,3324,129 +2020-05-27,Unknown,Puerto Rico,,3397,129 +2020-05-28,Unknown,Puerto Rico,,3486,131 +2020-05-29,Unknown,Puerto Rico,,3647,132 +2020-05-30,Unknown,Puerto Rico,,3718,133 +2020-05-31,Unknown,Puerto Rico,,3776,136 +2020-06-01,Unknown,Puerto Rico,,3873,136 +2020-06-02,Unknown,Puerto Rico,,3935,138 +2020-06-03,Unknown,Puerto Rico,,4023,140 +2020-06-04,Unknown,Puerto Rico,,4508,140 +2020-06-05,Unknown,Puerto Rico,,4620,141 +2020-06-06,Unknown,Puerto Rico,,4915,142 +2020-06-07,Unknown,Puerto Rico,,4985,142 +2020-06-08,Unknown,Puerto Rico,,5046,142 +2020-06-09,Unknown,Puerto Rico,,5185,142 +2020-06-10,Unknown,Puerto Rico,,5329,143 +2020-06-11,Unknown,Puerto Rico,,5352,144 +2020-06-12,Unknown,Puerto Rico,,5536,146 +2020-06-13,Unknown,Puerto Rico,,5690,146 +2020-06-14,Unknown,Puerto Rico,,5811,147 +2020-06-15,Unknown,Puerto Rico,,5890,147 +2020-06-16,Unknown,Puerto Rico,,5951,147 +2020-06-17,Unknown,Puerto Rico,,6003,147 +2020-06-18,Unknown,Puerto Rico,,6111,147 +2020-06-19,Unknown,Puerto Rico,,6195,147 +2020-06-20,Unknown,Puerto Rico,,6463,147 +2020-06-21,Unknown,Puerto Rico,,6525,149 +2020-06-22,Unknown,Puerto Rico,,6564,149 +2020-06-23,Unknown,Puerto Rico,,6685,149 +2020-06-24,Unknown,Puerto Rico,,6820,149 +2020-06-25,Unknown,Puerto Rico,,6877,151 +2020-06-26,Unknown,Puerto Rico,,6922,151 +2020-06-27,Unknown,Puerto Rico,,7066,152 +2020-06-28,Unknown,Puerto Rico,,7189,153 +2020-06-29,Unknown,Puerto Rico,,7250,153 +2020-06-30,Unknown,Puerto Rico,,7465,153 +2020-07-01,Unknown,Puerto Rico,,7537,153 +2020-07-02,Unknown,Puerto Rico,,7608,153 +2020-07-03,Unknown,Puerto Rico,,7683,154 +2020-07-04,Unknown,Puerto Rico,,7787,155 +2020-07-05,Unknown,Puerto Rico,,7916,155 +2020-07-06,Unknown,Puerto Rico,,8585,155 +2020-07-07,Unknown,Puerto Rico,,8714,157 +2020-07-08,Unknown,Puerto Rico,,8745,159 +2020-07-09,Unknown,Puerto Rico,,8862,159 +2020-04-10,Unknown,North Dakota,,0,1 +2020-05-27,Unknown,North Dakota,,3,3 +2020-05-28,Unknown,North Dakota,,3,3 +2020-05-29,Unknown,North Dakota,,3,3 +2020-05-30,Unknown,North Dakota,,3,3 +2020-05-31,Unknown,North Dakota,,3,3 +2020-06-01,Unknown,North Dakota,,3,3 +2020-06-02,Unknown,North Dakota,,3,3 +2020-06-03,Unknown,North Dakota,,3,3 +2020-06-04,Unknown,North Dakota,,3,3 +2020-06-05,Unknown,North Dakota,,3,3 +2020-06-06,Unknown,North Dakota,,3,3 +2020-06-07,Unknown,North Dakota,,3,3 +2020-06-08,Unknown,North Dakota,,3,3 +2020-06-09,Unknown,North Dakota,,3,3 +2020-06-10,Unknown,North Dakota,,3,3 +2020-06-11,Unknown,North Dakota,,3,3 +2020-06-12,Unknown,North Dakota,,3,3 +2020-06-13,Unknown,North Dakota,,3,3 +2020-06-14,Unknown,North Dakota,,3,3 +2020-06-15,Unknown,North Dakota,,3,3 +2020-06-16,Unknown,North Dakota,,3,3 +2020-06-17,Unknown,North Dakota,,4,4 +2020-06-18,Unknown,North Dakota,,6,6 +2020-06-19,Unknown,North Dakota,,6,6 +2020-06-20,Unknown,North Dakota,,6,6 +2020-06-21,Unknown,North Dakota,,6,6 +2020-06-22,Unknown,North Dakota,,6,6 +2020-06-23,Unknown,North Dakota,,6,6 +2020-06-24,Unknown,North Dakota,,8,8 +2020-06-25,Unknown,North Dakota,,9,9 +2020-06-26,Unknown,North Dakota,,9,9 +2020-06-27,Unknown,North Dakota,,9,9 +2020-06-28,Unknown,North Dakota,,9,9 +2020-06-29,Unknown,North Dakota,,9,9 +2020-06-30,Unknown,North Dakota,,9,9 +2020-07-01,Unknown,North Dakota,,9,9 +2020-07-02,Unknown,North Dakota,,9,9 +2020-07-03,Unknown,North Dakota,,9,9 +2020-07-04,Unknown,North Dakota,,9,9 +2020-07-05,Unknown,North Dakota,,9,9 +2020-07-06,Unknown,North Dakota,,9,9 +2020-07-07,Unknown,North Dakota,,5,5 +2020-07-08,Unknown,North Dakota,,4,4 +2020-07-09,Unknown,North Dakota,,4,4 +2020-03-31,Unknown,Pennsylvania,,0,1 +2020-04-03,Unknown,Pennsylvania,,18,0 +2020-03-01,Unknown,Rhode Island,,2,0 +2020-03-02,Unknown,Rhode Island,,2,0 +2020-03-03,Unknown,Rhode Island,,2,0 +2020-03-04,Unknown,Rhode Island,,2,0 +2020-03-05,Unknown,Rhode Island,,2,0 +2020-03-06,Unknown,Rhode Island,,3,0 +2020-03-07,Unknown,Rhode Island,,3,0 +2020-03-08,Unknown,Rhode Island,,3,0 +2020-03-09,Unknown,Rhode Island,,3,0 +2020-03-10,Unknown,Rhode Island,,5,0 +2020-03-11,Unknown,Rhode Island,,5,0 +2020-03-12,Unknown,Rhode Island,,5,0 +2020-03-13,Unknown,Rhode Island,,20,0 +2020-03-14,Unknown,Rhode Island,,20,0 +2020-03-15,Unknown,Rhode Island,,20,0 +2020-03-16,Unknown,Rhode Island,,21,0 +2020-03-17,Unknown,Rhode Island,,23,0 +2020-03-18,Unknown,Rhode Island,,33,0 +2020-03-19,Unknown,Rhode Island,,44,0 +2020-03-20,Unknown,Rhode Island,,44,0 +2020-03-21,Unknown,Rhode Island,,66,0 +2020-03-22,Unknown,Rhode Island,,83,0 +2020-03-23,Unknown,Rhode Island,,106,0 +2020-03-24,Unknown,Rhode Island,,124,0 +2020-03-25,Unknown,Rhode Island,,66,0 +2020-03-26,Unknown,Rhode Island,,94,0 +2020-03-27,Unknown,Rhode Island,,132,0 +2020-03-28,Unknown,Rhode Island,,168,2 +2020-03-29,Unknown,Rhode Island,,69,3 +2020-03-30,Unknown,Rhode Island,,99,4 +2020-03-31,Unknown,Rhode Island,,72,8 +2020-04-01,Unknown,Rhode Island,,37,7 +2020-04-02,Unknown,Rhode Island,,92,9 +2020-04-03,Unknown,Rhode Island,,146,7 +2020-04-04,Unknown,Rhode Island,,122,10 +2020-04-05,Unknown,Rhode Island,,172,18 +2020-04-06,Unknown,Rhode Island,,332,20 +2020-04-07,Unknown,Rhode Island,,223,13 +2020-04-08,Unknown,Rhode Island,,297,15 +2020-04-09,Unknown,Rhode Island,,424,23 +2020-04-10,Unknown,Rhode Island,,712,29 +2020-04-11,Unknown,Rhode Island,,673,36 +2020-04-12,Unknown,Rhode Island,,989,43 +2020-04-13,Unknown,Rhode Island,,1300,53 +2020-04-14,Unknown,Rhode Island,,756,60 +2020-04-15,Unknown,Rhode Island,,1034,67 +2020-04-16,Unknown,Rhode Island,,840,85 +2020-04-17,Unknown,Rhode Island,,832,98 +2020-04-18,Unknown,Rhode Island,,815,117 +2020-04-19,Unknown,Rhode Island,,715,130 +2020-04-20,Unknown,Rhode Island,,861,135 +2020-04-21,Unknown,Rhode Island,,1000,151 +2020-04-22,Unknown,Rhode Island,,1341,161 +2020-04-23,Unknown,Rhode Island,,1756,169 +2020-04-24,Unknown,Rhode Island,,1132,182 +2020-04-25,Unknown,Rhode Island,,1198,96 +2020-04-26,Unknown,Rhode Island,,1109,111 +2020-04-27,Unknown,Rhode Island,,1378,118 +2020-04-28,Unknown,Rhode Island,,1267,124 +2020-04-29,Unknown,Rhode Island,,1065,104 +2020-04-30,Unknown,Rhode Island,,1087,119 +2020-05-01,Unknown,Rhode Island,,1104,132 +2020-05-02,Unknown,Rhode Island,,1142,149 +2020-05-03,Unknown,Rhode Island,,1086,1 +2020-05-04,Unknown,Rhode Island,,1133,22 +2020-05-05,Unknown,Rhode Island,,1414,36 +2020-05-06,Unknown,Rhode Island,,1686,51 +2020-05-07,Unknown,Rhode Island,,2011,69 +2020-05-08,Unknown,Rhode Island,,2260,80 +2020-05-09,Unknown,Rhode Island,,2470,99 +2020-05-10,Unknown,Rhode Island,,2755,103 +2020-05-11,Unknown,Rhode Island,,1158,5 +2020-05-12,Unknown,Rhode Island,,1198,19 +2020-05-13,Unknown,Rhode Island,,1046,37 +2020-05-14,Unknown,Rhode Island,,1227,43 +2020-05-15,Unknown,Rhode Island,,1430,54 +2020-05-16,Unknown,Rhode Island,,1645,64 +2020-05-17,Unknown,Rhode Island,,1885,74 +2020-05-18,Unknown,Rhode Island,,2006,81 +2020-05-19,Unknown,Rhode Island,,2162,107 +2020-05-20,Unknown,Rhode Island,,1556,113 +2020-05-21,Unknown,Rhode Island,,1553,131 +2020-05-22,Unknown,Rhode Island,,1528,154 +2020-05-23,Unknown,Rhode Island,,1504,172 +2020-05-24,Unknown,Rhode Island,,1518,183 +2020-05-25,Unknown,Rhode Island,,1518,183 +2020-05-26,Unknown,Rhode Island,,1663,209 +2020-05-27,Unknown,Rhode Island,,1496,3 +2020-05-28,Unknown,Rhode Island,,1533,25 +2020-05-29,Unknown,Rhode Island,,1564,41 +2020-05-30,Unknown,Rhode Island,,1748,59 +2020-05-31,Unknown,Rhode Island,,1857,66 +2020-06-01,Unknown,Rhode Island,,1920,68 +2020-06-02,Unknown,Rhode Island,,2041,80 +2020-06-03,Unknown,Rhode Island,,2148,90 +2020-06-04,Unknown,Rhode Island,,2254,104 +2020-06-05,Unknown,Rhode Island,,2370,120 +2020-06-06,Unknown,Rhode Island,,2370,120 +2020-06-07,Unknown,Rhode Island,,2370,120 +2020-06-08,Unknown,Rhode Island,,1565,2 +2020-06-09,Unknown,Rhode Island,,1614,11 +2020-06-10,Unknown,Rhode Island,,1679,15 +2020-06-11,Unknown,Rhode Island,,1785,26 +2020-06-12,Unknown,Rhode Island,,1870,36 +2020-06-13,Unknown,Rhode Island,,1870,36 +2020-06-14,Unknown,Rhode Island,,1870,36 +2020-06-15,Unknown,Rhode Island,,1569,54 +2020-06-16,Unknown,Rhode Island,,1640,68 +2020-06-17,Unknown,Rhode Island,,1689,79 +2020-06-18,Unknown,Rhode Island,,1745,88 +2020-06-19,Unknown,Rhode Island,,1813,97 +2020-06-20,Unknown,Rhode Island,,1813,97 +2020-06-21,Unknown,Rhode Island,,1813,97 +2020-06-22,Unknown,Rhode Island,,1514,106 +2020-06-23,Unknown,Rhode Island,,1588,109 +2020-06-24,Unknown,Rhode Island,,1661,115 +2020-06-25,Unknown,Rhode Island,,1695,123 +2020-06-26,Unknown,Rhode Island,,1716,3 +2020-06-27,Unknown,Rhode Island,,1716,3 +2020-06-28,Unknown,Rhode Island,,1716,3 +2020-06-29,Unknown,Rhode Island,,1535,22 +2020-06-30,Unknown,Rhode Island,,1584,26 +2020-07-01,Unknown,Rhode Island,,1624,32 +2020-07-02,Unknown,Rhode Island,,1712,35 +2020-07-03,Unknown,Rhode Island,,1488,36 +2020-07-04,Unknown,Rhode Island,,1488,36 +2020-07-05,Unknown,Rhode Island,,1488,36 +2020-07-06,Unknown,Rhode Island,,1488,36 +2020-07-07,Unknown,Rhode Island,,1651,45 +2020-07-08,Unknown,Rhode Island,,1701,16 +2020-07-09,Unknown,Rhode Island,,1740,19 +2020-04-06,Unknown,South Dakota,,0,2 +2020-04-07,Unknown,South Dakota,,0,4 +2020-04-08,Unknown,South Dakota,,0,4 +2020-03-16,Unknown,Massachusetts,,1,0 +2020-03-17,Unknown,Massachusetts,,1,0 +2020-03-18,Unknown,Massachusetts,,4,0 +2020-03-19,Unknown,Massachusetts,,13,0 +2020-03-20,Unknown,Massachusetts,,18,0 +2020-03-21,Unknown,Massachusetts,,26,0 +2020-03-22,Unknown,Massachusetts,,34,0 +2020-03-23,Unknown,Massachusetts,,57,0 +2020-03-24,Unknown,Massachusetts,,90,0 +2020-03-25,Unknown,Massachusetts,,159,0 +2020-03-26,Unknown,Massachusetts,,267,0 +2020-03-27,Unknown,Massachusetts,,304,0 +2020-03-28,Unknown,Massachusetts,,358,0 +2020-03-29,Unknown,Massachusetts,,462,0 +2020-03-30,Unknown,Massachusetts,,491,0 +2020-03-31,Unknown,Massachusetts,,335,0 +2020-04-01,Unknown,Massachusetts,,256,0 +2020-04-02,Unknown,Massachusetts,,270,0 +2020-04-03,Unknown,Massachusetts,,213,0 +2020-04-04,Unknown,Massachusetts,,274,0 +2020-04-05,Unknown,Massachusetts,,215,0 +2020-04-06,Unknown,Massachusetts,,246,2 +2020-04-07,Unknown,Massachusetts,,229,3 +2020-04-08,Unknown,Massachusetts,,223,5 +2020-04-09,Unknown,Massachusetts,,203,5 +2020-04-10,Unknown,Massachusetts,,129,5 +2020-04-11,Unknown,Massachusetts,,225,5 +2020-04-12,Unknown,Massachusetts,,373,5 +2020-04-13,Unknown,Massachusetts,,447,7 +2020-04-14,Unknown,Massachusetts,,506,7 +2020-04-15,Unknown,Massachusetts,,572,7 +2020-04-16,Unknown,Massachusetts,,638,9 +2020-04-17,Unknown,Massachusetts,,760,12 +2020-04-18,Unknown,Massachusetts,,733,13 +2020-04-19,Unknown,Massachusetts,,815,13 +2020-04-20,Unknown,Massachusetts,,855,9 +2020-04-21,Unknown,Massachusetts,,929,8 +2020-04-22,Unknown,Massachusetts,,854,9 +2020-04-23,Unknown,Massachusetts,,737,10 +2020-04-24,Unknown,Massachusetts,,791,12 +2020-04-25,Unknown,Massachusetts,,753,13 +2020-04-26,Unknown,Massachusetts,,807,14 +2020-04-27,Unknown,Massachusetts,,795,8 +2020-04-28,Unknown,Massachusetts,,625,5 +2020-04-29,Unknown,Massachusetts,,457,5 +2020-04-30,Unknown,Massachusetts,,415,5 +2020-05-01,Unknown,Massachusetts,,425,6 +2020-05-02,Unknown,Massachusetts,,377,4 +2020-05-03,Unknown,Massachusetts,,981,7 +2020-05-04,Unknown,Massachusetts,,662,7 +2020-05-05,Unknown,Massachusetts,,594,7 +2020-05-06,Unknown,Massachusetts,,326,3 +2020-05-07,Unknown,Massachusetts,,328,3 +2020-05-08,Unknown,Massachusetts,,297,3 +2020-05-09,Unknown,Massachusetts,,288,3 +2020-05-10,Unknown,Massachusetts,,303,5 +2020-05-11,Unknown,Massachusetts,,287,5 +2020-05-12,Unknown,Massachusetts,,273,4 +2020-05-13,Unknown,Massachusetts,,264,4 +2020-05-14,Unknown,Massachusetts,,300,3 +2020-05-15,Unknown,Massachusetts,,285,2 +2020-05-16,Unknown,Massachusetts,,309,3 +2020-05-17,Unknown,Massachusetts,,315,3 +2020-05-18,Unknown,Massachusetts,,312,3 +2020-05-19,Unknown,Massachusetts,,288,3 +2020-05-20,Unknown,Massachusetts,,294,3 +2020-05-21,Unknown,Massachusetts,,304,3 +2020-05-22,Unknown,Massachusetts,,296,3 +2020-05-23,Unknown,Massachusetts,,319,3 +2020-05-24,Unknown,Massachusetts,,308,4 +2020-05-25,Unknown,Massachusetts,,311,4 +2020-05-26,Unknown,Massachusetts,,297,4 +2020-05-27,Unknown,Massachusetts,,309,5 +2020-05-28,Unknown,Massachusetts,,318,6 +2020-05-29,Unknown,Massachusetts,,289,6 +2020-05-30,Unknown,Massachusetts,,336,6 +2020-05-31,Unknown,Massachusetts,,297,7 +2020-06-01,Unknown,Massachusetts,,340,14 +2020-06-02,Unknown,Massachusetts,,319,12 +2020-06-03,Unknown,Massachusetts,,307,12 +2020-06-04,Unknown,Massachusetts,,310,10 +2020-06-05,Unknown,Massachusetts,,313,7 +2020-06-06,Unknown,Massachusetts,,297,8 +2020-06-07,Unknown,Massachusetts,,292,8 +2020-06-08,Unknown,Massachusetts,,309,8 +2020-06-09,Unknown,Massachusetts,,299,10 +2020-06-10,Unknown,Massachusetts,,297,10 +2020-06-11,Unknown,Massachusetts,,304,10 +2020-06-12,Unknown,Massachusetts,,298,10 +2020-06-13,Unknown,Massachusetts,,307,10 +2020-06-14,Unknown,Massachusetts,,308,10 +2020-06-15,Unknown,Massachusetts,,311,10 +2020-06-16,Unknown,Massachusetts,,307,9 +2020-06-17,Unknown,Massachusetts,,306,9 +2020-06-18,Unknown,Massachusetts,,308,10 +2020-06-19,Unknown,Massachusetts,,296,10 +2020-06-20,Unknown,Massachusetts,,297,10 +2020-06-21,Unknown,Massachusetts,,303,10 +2020-06-22,Unknown,Massachusetts,,300,10 +2020-06-23,Unknown,Massachusetts,,288,8 +2020-06-24,Unknown,Massachusetts,,290,8 +2020-06-25,Unknown,Massachusetts,,283,6 +2020-06-26,Unknown,Massachusetts,,285,7 +2020-06-27,Unknown,Massachusetts,,289,7 +2020-06-28,Unknown,Massachusetts,,287,7 +2020-06-29,Unknown,Massachusetts,,288,7 +2020-06-30,Unknown,Massachusetts,,288,7 +2020-07-01,Unknown,Massachusetts,,346,7 +2020-07-02,Unknown,Massachusetts,,287,7 +2020-07-03,Unknown,Massachusetts,,292,7 +2020-07-04,Unknown,Massachusetts,,291,7 +2020-07-05,Unknown,Massachusetts,,291,7 +2020-07-06,Unknown,Massachusetts,,292,7 +2020-07-07,Unknown,Massachusetts,,294,7 +2020-07-08,Unknown,Massachusetts,,298,7 +2020-07-09,Unknown,Massachusetts,,297,7 +2020-04-04,Unknown,New Hampshire,,4,0 +2020-04-05,Unknown,New Hampshire,,6,0 +2020-04-06,Unknown,New Hampshire,,1,0 +2020-04-07,Unknown,New Hampshire,,1,0 +2020-04-08,Unknown,New Hampshire,,1,0 +2020-04-11,Unknown,New Hampshire,,1,0 +2020-04-12,Unknown,New Hampshire,,1,0 +2020-04-13,Unknown,New Hampshire,,1,0 +2020-04-14,Unknown,New Hampshire,,1,0 +2020-04-16,Unknown,New Hampshire,,1,0 +2020-04-17,Unknown,New Hampshire,,2,0 +2020-04-18,Unknown,New Hampshire,,0,1 +2020-04-19,Unknown,New Hampshire,,2,1 +2020-04-20,Unknown,New Hampshire,,4,1 +2020-04-21,Unknown,New Hampshire,,15,1 +2020-04-22,Unknown,New Hampshire,,17,1 +2020-04-23,Unknown,New Hampshire,,11,1 +2020-04-24,Unknown,New Hampshire,,3,1 +2020-04-25,Unknown,New Hampshire,,6,1 +2020-04-26,Unknown,New Hampshire,,5,1 +2020-04-27,Unknown,New Hampshire,,11,1 +2020-04-28,Unknown,New Hampshire,,7,1 +2020-04-29,Unknown,New Hampshire,,4,1 +2020-04-30,Unknown,New Hampshire,,3,0 +2020-05-01,Unknown,New Hampshire,,15,0 +2020-05-02,Unknown,New Hampshire,,26,0 +2020-05-03,Unknown,New Hampshire,,19,0 +2020-05-04,Unknown,New Hampshire,,15,0 +2020-05-05,Unknown,New Hampshire,,15,0 +2020-05-06,Unknown,New Hampshire,,20,0 +2020-05-07,Unknown,New Hampshire,,21,0 +2020-05-08,Unknown,New Hampshire,,28,0 +2020-05-09,Unknown,New Hampshire,,32,0 +2020-05-10,Unknown,New Hampshire,,28,0 +2020-05-11,Unknown,New Hampshire,,31,0 +2020-05-12,Unknown,New Hampshire,,26,0 +2020-05-13,Unknown,New Hampshire,,26,0 +2020-05-14,Unknown,New Hampshire,,34,0 +2020-05-15,Unknown,New Hampshire,,56,0 +2020-05-16,Unknown,New Hampshire,,10,0 +2020-05-17,Unknown,New Hampshire,,10,0 +2020-05-18,Unknown,New Hampshire,,32,0 +2020-05-19,Unknown,New Hampshire,,11,0 +2020-05-20,Unknown,New Hampshire,,14,0 +2020-05-21,Unknown,New Hampshire,,15,0 +2020-05-22,Unknown,New Hampshire,,17,0 +2020-05-23,Unknown,New Hampshire,,15,0 +2020-05-24,Unknown,New Hampshire,,14,0 +2020-05-25,Unknown,New Hampshire,,12,0 +2020-05-26,Unknown,New Hampshire,,12,0 +2020-05-27,Unknown,New Hampshire,,10,0 +2020-05-28,Unknown,New Hampshire,,10,0 +2020-05-29,Unknown,New Hampshire,,6,0 +2020-05-30,Unknown,New Hampshire,,4,0 +2020-05-31,Unknown,New Hampshire,,6,0 +2020-06-01,Unknown,New Hampshire,,6,0 +2020-06-02,Unknown,New Hampshire,,10,0 +2020-06-03,Unknown,New Hampshire,,10,0 +2020-06-04,Unknown,New Hampshire,,8,0 +2020-06-05,Unknown,New Hampshire,,7,0 +2020-06-06,Unknown,New Hampshire,,10,0 +2020-06-07,Unknown,New Hampshire,,9,0 +2020-06-08,Unknown,New Hampshire,,9,0 +2020-06-09,Unknown,New Hampshire,,8,0 +2020-06-10,Unknown,New Hampshire,,8,0 +2020-06-11,Unknown,New Hampshire,,4,0 +2020-06-12,Unknown,New Hampshire,,5,0 +2020-06-13,Unknown,New Hampshire,,5,0 +2020-06-14,Unknown,New Hampshire,,5,0 +2020-06-15,Unknown,New Hampshire,,5,0 +2020-06-16,Unknown,New Hampshire,,4,0 +2020-06-17,Unknown,New Hampshire,,3,0 +2020-06-18,Unknown,New Hampshire,,1,0 +2020-06-19,Unknown,New Hampshire,,1,0 +2020-06-20,Unknown,New Hampshire,,1,0 +2020-06-21,Unknown,New Hampshire,,2,0 +2020-06-22,Unknown,New Hampshire,,3,0 +2020-06-23,Unknown,New Hampshire,,1,0 +2020-06-24,Unknown,New Hampshire,,2,0 +2020-06-25,Unknown,New Hampshire,,2,0 +2020-06-26,Unknown,New Hampshire,,2,0 +2020-06-27,Unknown,New Hampshire,,2,0 +2020-06-28,Unknown,New Hampshire,,2,0 +2020-06-29,Unknown,New Hampshire,,1,0 +2020-06-30,Unknown,New Hampshire,,1,0 +2020-07-01,Unknown,New Hampshire,,1,0 +2020-07-02,Unknown,New Hampshire,,1,0 +2020-07-03,Unknown,New Hampshire,,2,0 +2020-07-04,Unknown,New Hampshire,,1,0 +2020-07-05,Unknown,New Hampshire,,4,0 +2020-07-06,Unknown,New Hampshire,,3,0 +2020-07-07,Unknown,New Hampshire,,1,0 +2020-07-08,Unknown,New Hampshire,,1,0 +2020-07-09,Unknown,New Hampshire,,1,0 +2020-04-01,Unknown,West Virginia,,0,1 +2020-05-17,Unknown,West Virginia,,2,0 +2020-03-14,Unknown,Virgin Islands,,1,0 +2020-03-15,Unknown,Virgin Islands,,1,0 +2020-03-16,Unknown,Virgin Islands,,2,0 +2020-03-17,Unknown,Virgin Islands,,2,0 +2020-03-18,Unknown,Virgin Islands,,3,0 +2020-03-19,Unknown,Virgin Islands,,3,0 +2020-03-20,Unknown,Virgin Islands,,6,0 +2020-03-21,Unknown,Virgin Islands,,6,0 +2020-03-22,Unknown,Virgin Islands,,17,0 +2020-03-23,Unknown,Virgin Islands,,17,0 +2020-03-24,Unknown,Virgin Islands,,17,0 +2020-03-25,Unknown,Virgin Islands,,17,0 +2020-03-26,Unknown,Virgin Islands,,17,0 +2020-03-27,Unknown,Virgin Islands,,19,0 +2020-03-28,Unknown,Virgin Islands,,19,0 +2020-03-29,Unknown,Virgin Islands,,23,0 +2020-03-30,Unknown,Virgin Islands,,30,0 +2020-03-31,Unknown,Virgin Islands,,30,0 +2020-04-01,Unknown,Virgin Islands,,30,0 +2020-04-02,Unknown,Virgin Islands,,37,0 +2020-04-03,Unknown,Virgin Islands,,38,0 +2020-04-04,Unknown,Virgin Islands,,42,0 +2020-04-05,Unknown,Virgin Islands,,42,0 +2020-04-06,Unknown,Virgin Islands,,43,1 +2020-04-07,Unknown,Virgin Islands,,45,1 +2020-04-08,Unknown,Virgin Islands,,45,1 +2020-04-09,Unknown,Virgin Islands,,46,1 +2020-04-10,Unknown,Virgin Islands,,46,1 +2020-04-11,Unknown,Virgin Islands,,51,1 +2020-04-12,Unknown,Virgin Islands,,51,1 +2020-04-13,Unknown,Virgin Islands,,51,1 +2020-04-14,Unknown,Virgin Islands,,51,1 +2020-04-15,Unknown,Virgin Islands,,51,1 +2020-04-16,Unknown,Virgin Islands,,51,1 +2020-04-17,Unknown,Virgin Islands,,51,2 +2020-04-18,Unknown,Virgin Islands,,53,3 +2020-04-19,Unknown,Virgin Islands,,53,3 +2020-04-20,Unknown,Virgin Islands,,54,3 +2020-04-21,Unknown,Virgin Islands,,54,3 +2020-04-22,Unknown,Virgin Islands,,54,3 +2020-04-23,Unknown,Virgin Islands,,54,3 +2020-04-24,Unknown,Virgin Islands,,54,3 +2020-04-25,Unknown,Virgin Islands,,55,3 +2020-04-26,Unknown,Virgin Islands,,57,4 +2020-04-27,Unknown,Virgin Islands,,59,4 +2020-04-28,Unknown,Virgin Islands,,59,4 +2020-04-29,Unknown,Virgin Islands,,66,4 +2020-04-30,Unknown,Virgin Islands,,66,4 +2020-05-01,Unknown,Virgin Islands,,66,4 +2020-05-02,Unknown,Virgin Islands,,66,4 +2020-05-03,Unknown,Virgin Islands,,66,4 +2020-05-04,Unknown,Virgin Islands,,66,4 +2020-05-05,Unknown,Virgin Islands,,66,4 +2020-05-06,Unknown,Virgin Islands,,66,4 +2020-05-07,Unknown,Virgin Islands,,66,4 +2020-05-08,Unknown,Virgin Islands,,68,4 +2020-05-09,Unknown,Virgin Islands,,69,4 +2020-05-10,Unknown,Virgin Islands,,69,4 +2020-05-11,Unknown,Virgin Islands,,69,5 +2020-05-12,Unknown,Virgin Islands,,69,6 +2020-05-13,Unknown,Virgin Islands,,69,6 +2020-05-14,Unknown,Virgin Islands,,69,6 +2020-05-15,Unknown,Virgin Islands,,69,6 +2020-05-16,Unknown,Virgin Islands,,69,6 +2020-05-17,Unknown,Virgin Islands,,69,6 +2020-05-18,Unknown,Virgin Islands,,69,6 +2020-05-19,Unknown,Virgin Islands,,69,6 +2020-05-20,Unknown,Virgin Islands,,69,6 +2020-05-21,Unknown,Virgin Islands,,69,6 +2020-05-22,Unknown,Virgin Islands,,69,6 +2020-05-23,Unknown,Virgin Islands,,69,6 +2020-05-24,Unknown,Virgin Islands,,69,6 +2020-05-25,Unknown,Virgin Islands,,69,6 +2020-05-26,Unknown,Virgin Islands,,69,6 +2020-05-27,Unknown,Virgin Islands,,69,6 +2020-05-28,Unknown,Virgin Islands,,69,6 +2020-05-29,Unknown,Virgin Islands,,69,6 +2020-05-30,Unknown,Virgin Islands,,69,6 +2020-05-31,Unknown,Virgin Islands,,69,6 +2020-06-01,Unknown,Virgin Islands,,70,6 +2020-06-02,Unknown,Virgin Islands,,70,6 +2020-06-03,Unknown,Virgin Islands,,70,6 +2020-06-04,Unknown,Virgin Islands,,71,6 +2020-06-05,Unknown,Virgin Islands,,71,6 +2020-06-06,Unknown,Virgin Islands,,71,6 +2020-06-07,Unknown,Virgin Islands,,71,6 +2020-06-08,Unknown,Virgin Islands,,71,6 +2020-06-09,Unknown,Virgin Islands,,71,6 +2020-06-10,Unknown,Virgin Islands,,72,6 +2020-06-11,Unknown,Virgin Islands,,72,6 +2020-06-12,Unknown,Virgin Islands,,72,6 +2020-06-13,Unknown,Virgin Islands,,72,6 +2020-06-14,Unknown,Virgin Islands,,72,6 +2020-06-15,Unknown,Virgin Islands,,72,6 +2020-06-16,Unknown,Virgin Islands,,72,6 +2020-06-17,Unknown,Virgin Islands,,73,6 +2020-06-18,Unknown,Virgin Islands,,73,6 +2020-06-19,Unknown,Virgin Islands,,73,6 +2020-06-20,Unknown,Virgin Islands,,74,6 +2020-06-21,Unknown,Virgin Islands,,76,6 +2020-06-22,Unknown,Virgin Islands,,76,6 +2020-06-23,Unknown,Virgin Islands,,76,6 +2020-06-24,Unknown,Virgin Islands,,78,6 +2020-06-25,Unknown,Virgin Islands,,81,6 +2020-06-26,Unknown,Virgin Islands,,81,6 +2020-06-27,Unknown,Virgin Islands,,81,6 +2020-06-28,Unknown,Virgin Islands,,81,6 +2020-06-29,Unknown,Virgin Islands,,81,6 +2020-06-30,Unknown,Virgin Islands,,81,6 +2020-07-01,Unknown,Virgin Islands,,90,6 +2020-07-02,Unknown,Virgin Islands,,98,6 +2020-07-03,Unknown,Virgin Islands,,111,6 +2020-07-04,Unknown,Virgin Islands,,111,6 +2020-07-05,Unknown,Virgin Islands,,112,6 +2020-07-06,Unknown,Virgin Islands,,112,6 +2020-07-07,Unknown,Virgin Islands,,122,6 +2020-07-08,Unknown,Virgin Islands,,144,6 +2020-07-09,Unknown,Virgin Islands,,144,6 +2020-03-28,Unknown,Northern Mariana Islands,,2,0 +2020-03-29,Unknown,Northern Mariana Islands,,2,0 +2020-03-30,Unknown,Northern Mariana Islands,,2,0 +2020-03-31,Unknown,Northern Mariana Islands,,2,0 +2020-04-01,Unknown,Northern Mariana Islands,,6,1 +2020-04-02,Unknown,Northern Mariana Islands,,8,1 +2020-04-03,Unknown,Northern Mariana Islands,,8,1 +2020-04-04,Unknown,Northern Mariana Islands,,8,1 +2020-04-05,Unknown,Northern Mariana Islands,,8,1 +2020-04-06,Unknown,Northern Mariana Islands,,8,1 +2020-04-07,Unknown,Northern Mariana Islands,,8,2 +2020-04-08,Unknown,Northern Mariana Islands,,11,2 +2020-04-09,Unknown,Northern Mariana Islands,,11,2 +2020-04-10,Unknown,Northern Mariana Islands,,11,2 +2020-04-11,Unknown,Northern Mariana Islands,,11,2 +2020-04-12,Unknown,Northern Mariana Islands,,11,2 +2020-04-13,Unknown,Northern Mariana Islands,,11,2 +2020-04-14,Unknown,Northern Mariana Islands,,13,2 +2020-04-15,Unknown,Northern Mariana Islands,,13,2 +2020-04-16,Unknown,Northern Mariana Islands,,13,2 +2020-04-17,Unknown,Northern Mariana Islands,,14,2 +2020-04-18,Unknown,Northern Mariana Islands,,14,2 +2020-04-19,Unknown,Northern Mariana Islands,,14,2 +2020-04-20,Unknown,Northern Mariana Islands,,14,2 +2020-04-21,Unknown,Northern Mariana Islands,,14,2 +2020-04-22,Unknown,Northern Mariana Islands,,14,2 +2020-04-23,Unknown,Northern Mariana Islands,,14,2 +2020-04-24,Unknown,Northern Mariana Islands,,14,2 +2020-04-25,Unknown,Northern Mariana Islands,,14,2 +2020-04-26,Unknown,Northern Mariana Islands,,14,2 +2020-04-27,Unknown,Northern Mariana Islands,,14,2 +2020-04-28,Unknown,Northern Mariana Islands,,14,2 +2020-04-29,Unknown,Northern Mariana Islands,,14,2 +2020-04-30,Unknown,Northern Mariana Islands,,14,2 +2020-05-01,Unknown,Northern Mariana Islands,,14,2 +2020-05-02,Unknown,Northern Mariana Islands,,14,2 +2020-05-03,Unknown,Northern Mariana Islands,,14,2 +2020-05-04,Unknown,Northern Mariana Islands,,14,2 +2020-05-05,Unknown,Northern Mariana Islands,,14,2 +2020-05-06,Unknown,Northern Mariana Islands,,15,2 +2020-05-07,Unknown,Northern Mariana Islands,,15,2 +2020-05-08,Unknown,Northern Mariana Islands,,15,2 +2020-05-09,Unknown,Northern Mariana Islands,,16,2 +2020-05-10,Unknown,Northern Mariana Islands,,16,2 +2020-05-11,Unknown,Northern Mariana Islands,,19,2 +2020-05-12,Unknown,Northern Mariana Islands,,19,2 +2020-05-13,Unknown,Northern Mariana Islands,,19,2 +2020-05-14,Unknown,Northern Mariana Islands,,19,2 +2020-05-15,Unknown,Northern Mariana Islands,,19,2 +2020-05-16,Unknown,Northern Mariana Islands,,21,2 +2020-05-17,Unknown,Northern Mariana Islands,,21,2 +2020-05-18,Unknown,Northern Mariana Islands,,21,2 +2020-05-19,Unknown,Northern Mariana Islands,,21,2 +2020-05-20,Unknown,Northern Mariana Islands,,21,2 +2020-05-21,Unknown,Northern Mariana Islands,,22,2 +2020-05-22,Unknown,Northern Mariana Islands,,22,2 +2020-05-23,Unknown,Northern Mariana Islands,,22,2 +2020-05-24,Unknown,Northern Mariana Islands,,22,2 +2020-05-25,Unknown,Northern Mariana Islands,,22,2 +2020-05-26,Unknown,Northern Mariana Islands,,22,2 +2020-05-27,Unknown,Northern Mariana Islands,,22,2 +2020-05-28,Unknown,Northern Mariana Islands,,22,2 +2020-05-29,Unknown,Northern Mariana Islands,,22,2 +2020-05-30,Unknown,Northern Mariana Islands,,22,2 +2020-05-31,Unknown,Northern Mariana Islands,,22,2 +2020-06-01,Unknown,Northern Mariana Islands,,22,2 +2020-06-02,Unknown,Northern Mariana Islands,,23,2 +2020-06-03,Unknown,Northern Mariana Islands,,24,2 +2020-06-04,Unknown,Northern Mariana Islands,,26,2 +2020-06-05,Unknown,Northern Mariana Islands,,26,2 +2020-06-06,Unknown,Northern Mariana Islands,,26,2 +2020-06-07,Unknown,Northern Mariana Islands,,27,2 +2020-06-08,Unknown,Northern Mariana Islands,,28,2 +2020-06-09,Unknown,Northern Mariana Islands,,30,2 +2020-06-10,Unknown,Northern Mariana Islands,,30,2 +2020-06-11,Unknown,Northern Mariana Islands,,30,2 +2020-06-12,Unknown,Northern Mariana Islands,,30,2 +2020-06-13,Unknown,Northern Mariana Islands,,30,2 +2020-06-14,Unknown,Northern Mariana Islands,,30,2 +2020-06-15,Unknown,Northern Mariana Islands,,30,2 +2020-06-16,Unknown,Northern Mariana Islands,,30,2 +2020-06-17,Unknown,Northern Mariana Islands,,30,2 +2020-06-18,Unknown,Northern Mariana Islands,,30,2 +2020-06-19,Unknown,Northern Mariana Islands,,30,2 +2020-06-20,Unknown,Northern Mariana Islands,,30,2 +2020-06-21,Unknown,Northern Mariana Islands,,30,2 +2020-06-22,Unknown,Northern Mariana Islands,,30,2 +2020-06-23,Unknown,Northern Mariana Islands,,30,2 +2020-06-24,Unknown,Northern Mariana Islands,,30,2 +2020-06-25,Unknown,Northern Mariana Islands,,30,2 +2020-06-26,Unknown,Northern Mariana Islands,,30,2 +2020-06-27,Unknown,Northern Mariana Islands,,30,2 +2020-06-28,Unknown,Northern Mariana Islands,,30,2 +2020-06-29,Unknown,Northern Mariana Islands,,30,2 +2020-06-30,Unknown,Northern Mariana Islands,,30,2 +2020-07-01,Unknown,Northern Mariana Islands,,30,2 +2020-07-02,Unknown,Northern Mariana Islands,,30,2 +2020-07-03,Unknown,Northern Mariana Islands,,31,2 +2020-07-04,Unknown,Northern Mariana Islands,,31,2 +2020-07-05,Unknown,Northern Mariana Islands,,31,2 +2020-07-06,Unknown,Northern Mariana Islands,,31,2 +2020-07-07,Unknown,Northern Mariana Islands,,31,2 +2020-07-08,Unknown,Northern Mariana Islands,,31,2 +2020-03-24,Autauga,Alabama,01001,1,0 +2020-03-25,Autauga,Alabama,01001,4,0 +2020-03-26,Autauga,Alabama,01001,6,0 +2020-03-27,Autauga,Alabama,01001,6,0 +2020-03-28,Autauga,Alabama,01001,6,0 +2020-03-29,Autauga,Alabama,01001,6,0 +2020-03-30,Autauga,Alabama,01001,7,0 +2020-03-31,Autauga,Alabama,01001,7,0 +2020-04-01,Autauga,Alabama,01001,10,0 +2020-04-02,Autauga,Alabama,01001,10,0 +2020-04-03,Autauga,Alabama,01001,12,0 +2020-04-04,Autauga,Alabama,01001,12,0 +2020-04-05,Autauga,Alabama,01001,12,0 +2020-04-06,Autauga,Alabama,01001,12,1 +2020-04-07,Autauga,Alabama,01001,12,1 +2020-04-08,Autauga,Alabama,01001,12,1 +2020-04-09,Autauga,Alabama,01001,17,1 +2020-04-10,Autauga,Alabama,01001,17,1 +2020-04-11,Autauga,Alabama,01001,19,1 +2020-04-12,Autauga,Alabama,01001,19,1 +2020-04-13,Autauga,Alabama,01001,19,1 +2020-04-14,Autauga,Alabama,01001,23,1 +2020-04-15,Autauga,Alabama,01001,25,1 +2020-04-16,Autauga,Alabama,01001,25,2 +2020-04-17,Autauga,Alabama,01001,26,2 +2020-04-18,Autauga,Alabama,01001,25,2 +2020-04-19,Autauga,Alabama,01001,27,2 +2020-04-20,Autauga,Alabama,01001,28,1 +2020-04-21,Autauga,Alabama,01001,30,1 +2020-04-22,Autauga,Alabama,01001,32,2 +2020-04-23,Autauga,Alabama,01001,33,2 +2020-04-24,Autauga,Alabama,01001,36,2 +2020-04-25,Autauga,Alabama,01001,37,2 +2020-04-26,Autauga,Alabama,01001,37,2 +2020-04-27,Autauga,Alabama,01001,39,3 +2020-04-28,Autauga,Alabama,01001,40,4 +2020-04-29,Autauga,Alabama,01001,43,4 +2020-04-30,Autauga,Alabama,01001,42,4 +2020-05-01,Autauga,Alabama,01001,42,3 +2020-05-02,Autauga,Alabama,01001,45,3 +2020-05-03,Autauga,Alabama,01001,48,3 +2020-05-04,Autauga,Alabama,01001,53,3 +2020-05-05,Autauga,Alabama,01001,53,3 +2020-05-06,Autauga,Alabama,01001,58,3 +2020-05-07,Autauga,Alabama,01001,61,3 +2020-05-08,Autauga,Alabama,01001,67,4 +2020-05-09,Autauga,Alabama,01001,68,4 +2020-05-10,Autauga,Alabama,01001,74,4 +2020-05-11,Autauga,Alabama,01001,84,4 +2020-05-12,Autauga,Alabama,01001,91,4 +2020-05-13,Autauga,Alabama,01001,93,4 +2020-05-14,Autauga,Alabama,01001,104,4 +2020-05-15,Autauga,Alabama,01001,103,4 +2020-05-16,Autauga,Alabama,01001,110,4 +2020-05-17,Autauga,Alabama,01001,110,4 +2020-05-18,Autauga,Alabama,01001,120,4 +2020-05-19,Autauga,Alabama,01001,127,4 +2020-05-20,Autauga,Alabama,01001,136,3 +2020-05-21,Autauga,Alabama,01001,147,3 +2020-05-22,Autauga,Alabama,01001,149,3 +2020-05-23,Autauga,Alabama,01001,155,3 +2020-05-24,Autauga,Alabama,01001,159,3 +2020-05-25,Autauga,Alabama,01001,168,3 +2020-05-26,Autauga,Alabama,01001,189,3 +2020-05-27,Autauga,Alabama,01001,192,3 +2020-05-28,Autauga,Alabama,01001,205,3 +2020-05-29,Autauga,Alabama,01001,212,3 +2020-05-30,Autauga,Alabama,01001,216,4 +2020-05-31,Autauga,Alabama,01001,221,4 +2020-06-01,Autauga,Alabama,01001,234,5 +2020-06-02,Autauga,Alabama,01001,240,5 +2020-06-03,Autauga,Alabama,01001,240,5 +2020-06-04,Autauga,Alabama,01001,242,5 +2020-06-05,Autauga,Alabama,01001,249,5 +2020-06-06,Autauga,Alabama,01001,260,5 +2020-06-07,Autauga,Alabama,01001,266,5 +2020-06-08,Autauga,Alabama,01001,273,5 +2020-06-09,Autauga,Alabama,01001,283,5 +2020-06-10,Autauga,Alabama,01001,296,6 +2020-06-11,Autauga,Alabama,01001,316,6 +2020-06-12,Autauga,Alabama,01001,327,6 +2020-06-13,Autauga,Alabama,01001,335,6 +2020-06-14,Autauga,Alabama,01001,361,6 +2020-06-15,Autauga,Alabama,01001,368,6 +2020-06-16,Autauga,Alabama,01001,373,7 +2020-06-17,Autauga,Alabama,01001,375,7 +2020-06-18,Autauga,Alabama,01001,400,8 +2020-06-19,Autauga,Alabama,01001,411,8 +2020-06-20,Autauga,Alabama,01001,431,9 +2020-06-21,Autauga,Alabama,01001,434,9 +2020-06-22,Autauga,Alabama,01001,442,9 +2020-06-23,Autauga,Alabama,01001,453,9 +2020-06-24,Autauga,Alabama,01001,469,11 +2020-06-25,Autauga,Alabama,01001,479,11 +2020-06-26,Autauga,Alabama,01001,488,11 +2020-06-27,Autauga,Alabama,01001,498,12 +2020-06-28,Autauga,Alabama,01001,503,12 +2020-06-29,Autauga,Alabama,01001,527,12 +2020-06-30,Autauga,Alabama,01001,537,12 +2020-07-01,Autauga,Alabama,01001,553,12 +2020-07-02,Autauga,Alabama,01001,561,13 +2020-07-03,Autauga,Alabama,01001,568,13 +2020-07-04,Autauga,Alabama,01001,591,13 +2020-07-05,Autauga,Alabama,01001,615,13 +2020-07-06,Autauga,Alabama,01001,618,13 +2020-07-07,Autauga,Alabama,01001,644,13 +2020-07-08,Autauga,Alabama,01001,651,13 +2020-07-09,Autauga,Alabama,01001,661,14 +2020-03-14,Baldwin,Alabama,01003,1,0 +2020-03-15,Baldwin,Alabama,01003,1,0 +2020-03-16,Baldwin,Alabama,01003,1,0 +2020-03-17,Baldwin,Alabama,01003,1,0 +2020-03-18,Baldwin,Alabama,01003,1,0 +2020-03-19,Baldwin,Alabama,01003,1,0 +2020-03-20,Baldwin,Alabama,01003,2,0 +2020-03-21,Baldwin,Alabama,01003,2,0 +2020-03-22,Baldwin,Alabama,01003,2,0 +2020-03-23,Baldwin,Alabama,01003,3,0 +2020-03-24,Baldwin,Alabama,01003,4,0 +2020-03-25,Baldwin,Alabama,01003,4,0 +2020-03-26,Baldwin,Alabama,01003,5,0 +2020-03-27,Baldwin,Alabama,01003,5,0 +2020-03-28,Baldwin,Alabama,01003,10,0 +2020-03-29,Baldwin,Alabama,01003,15,0 +2020-03-30,Baldwin,Alabama,01003,18,0 +2020-03-31,Baldwin,Alabama,01003,19,0 +2020-04-01,Baldwin,Alabama,01003,23,1 +2020-04-02,Baldwin,Alabama,01003,25,1 +2020-04-03,Baldwin,Alabama,01003,28,1 +2020-04-04,Baldwin,Alabama,01003,29,1 +2020-04-05,Baldwin,Alabama,01003,34,1 +2020-04-06,Baldwin,Alabama,01003,38,1 +2020-04-07,Baldwin,Alabama,01003,42,1 +2020-04-08,Baldwin,Alabama,01003,49,1 +2020-04-09,Baldwin,Alabama,01003,59,1 +2020-04-10,Baldwin,Alabama,01003,59,1 +2020-04-11,Baldwin,Alabama,01003,66,1 +2020-04-12,Baldwin,Alabama,01003,71,1 +2020-04-13,Baldwin,Alabama,01003,78,1 +2020-04-14,Baldwin,Alabama,01003,87,2 +2020-04-15,Baldwin,Alabama,01003,98,2 +2020-04-16,Baldwin,Alabama,01003,102,2 +2020-04-17,Baldwin,Alabama,01003,103,2 +2020-04-18,Baldwin,Alabama,01003,109,2 +2020-04-19,Baldwin,Alabama,01003,114,3 +2020-04-20,Baldwin,Alabama,01003,117,3 +2020-04-21,Baldwin,Alabama,01003,123,3 +2020-04-22,Baldwin,Alabama,01003,132,3 +2020-04-23,Baldwin,Alabama,01003,143,3 +2020-04-24,Baldwin,Alabama,01003,147,3 +2020-04-25,Baldwin,Alabama,01003,154,3 +2020-04-26,Baldwin,Alabama,01003,161,3 +2020-04-27,Baldwin,Alabama,01003,168,3 +2020-04-28,Baldwin,Alabama,01003,171,3 +2020-04-29,Baldwin,Alabama,01003,173,2 +2020-04-30,Baldwin,Alabama,01003,174,3 +2020-05-01,Baldwin,Alabama,01003,175,4 +2020-05-02,Baldwin,Alabama,01003,181,4 +2020-05-03,Baldwin,Alabama,01003,187,4 +2020-05-04,Baldwin,Alabama,01003,188,4 +2020-05-05,Baldwin,Alabama,01003,189,5 +2020-05-06,Baldwin,Alabama,01003,196,5 +2020-05-07,Baldwin,Alabama,01003,205,5 +2020-05-08,Baldwin,Alabama,01003,208,5 +2020-05-09,Baldwin,Alabama,01003,216,5 +2020-05-10,Baldwin,Alabama,01003,222,5 +2020-05-11,Baldwin,Alabama,01003,224,6 +2020-05-12,Baldwin,Alabama,01003,227,7 +2020-05-13,Baldwin,Alabama,01003,231,7 +2020-05-14,Baldwin,Alabama,01003,243,8 +2020-05-15,Baldwin,Alabama,01003,244,8 +2020-05-16,Baldwin,Alabama,01003,254,8 +2020-05-17,Baldwin,Alabama,01003,254,8 +2020-05-18,Baldwin,Alabama,01003,260,8 +2020-05-19,Baldwin,Alabama,01003,262,8 +2020-05-20,Baldwin,Alabama,01003,270,8 +2020-05-21,Baldwin,Alabama,01003,270,8 +2020-05-22,Baldwin,Alabama,01003,271,9 +2020-05-23,Baldwin,Alabama,01003,273,9 +2020-05-24,Baldwin,Alabama,01003,274,9 +2020-05-25,Baldwin,Alabama,01003,274,9 +2020-05-26,Baldwin,Alabama,01003,277,9 +2020-05-27,Baldwin,Alabama,01003,282,9 +2020-05-28,Baldwin,Alabama,01003,281,9 +2020-05-29,Baldwin,Alabama,01003,282,9 +2020-05-30,Baldwin,Alabama,01003,283,9 +2020-05-31,Baldwin,Alabama,01003,290,9 +2020-06-01,Baldwin,Alabama,01003,306,9 +2020-06-02,Baldwin,Alabama,01003,308,9 +2020-06-03,Baldwin,Alabama,01003,308,9 +2020-06-04,Baldwin,Alabama,01003,309,9 +2020-06-05,Baldwin,Alabama,01003,312,9 +2020-06-06,Baldwin,Alabama,01003,320,9 +2020-06-07,Baldwin,Alabama,01003,329,9 +2020-06-08,Baldwin,Alabama,01003,335,9 +2020-06-09,Baldwin,Alabama,01003,340,9 +2020-06-10,Baldwin,Alabama,01003,346,9 +2020-06-11,Baldwin,Alabama,01003,358,9 +2020-06-12,Baldwin,Alabama,01003,368,9 +2020-06-13,Baldwin,Alabama,01003,376,9 +2020-06-14,Baldwin,Alabama,01003,379,9 +2020-06-15,Baldwin,Alabama,01003,383,9 +2020-06-16,Baldwin,Alabama,01003,389,9 +2020-06-17,Baldwin,Alabama,01003,392,9 +2020-06-18,Baldwin,Alabama,01003,401,9 +2020-06-19,Baldwin,Alabama,01003,413,9 +2020-06-20,Baldwin,Alabama,01003,420,9 +2020-06-21,Baldwin,Alabama,01003,430,9 +2020-06-22,Baldwin,Alabama,01003,437,9 +2020-06-23,Baldwin,Alabama,01003,450,9 +2020-06-24,Baldwin,Alabama,01003,464,9 +2020-06-25,Baldwin,Alabama,01003,477,9 +2020-06-26,Baldwin,Alabama,01003,515,9 +2020-06-27,Baldwin,Alabama,01003,555,10 +2020-06-28,Baldwin,Alabama,01003,575,10 +2020-06-29,Baldwin,Alabama,01003,643,10 +2020-06-30,Baldwin,Alabama,01003,680,10 +2020-07-01,Baldwin,Alabama,01003,703,10 +2020-07-02,Baldwin,Alabama,01003,751,10 +2020-07-03,Baldwin,Alabama,01003,845,10 +2020-07-04,Baldwin,Alabama,01003,863,10 +2020-07-05,Baldwin,Alabama,01003,881,10 +2020-07-06,Baldwin,Alabama,01003,911,10 +2020-07-07,Baldwin,Alabama,01003,997,10 +2020-07-08,Baldwin,Alabama,01003,1056,10 +2020-07-09,Baldwin,Alabama,01003,1131,11 +2020-04-03,Barbour,Alabama,01005,1,0 +2020-04-04,Barbour,Alabama,01005,2,0 +2020-04-05,Barbour,Alabama,01005,2,0 +2020-04-06,Barbour,Alabama,01005,3,0 +2020-04-07,Barbour,Alabama,01005,3,0 +2020-04-08,Barbour,Alabama,01005,3,0 +2020-04-09,Barbour,Alabama,01005,7,0 +2020-04-10,Barbour,Alabama,01005,9,0 +2020-04-11,Barbour,Alabama,01005,10,0 +2020-04-12,Barbour,Alabama,01005,10,0 +2020-04-13,Barbour,Alabama,01005,10,0 +2020-04-14,Barbour,Alabama,01005,11,0 +2020-04-15,Barbour,Alabama,01005,13,0 +2020-04-16,Barbour,Alabama,01005,14,0 +2020-04-17,Barbour,Alabama,01005,15,0 +2020-04-18,Barbour,Alabama,01005,18,0 +2020-04-19,Barbour,Alabama,01005,20,0 +2020-04-20,Barbour,Alabama,01005,22,0 +2020-04-21,Barbour,Alabama,01005,28,0 +2020-04-22,Barbour,Alabama,01005,29,0 +2020-04-23,Barbour,Alabama,01005,30,0 +2020-04-24,Barbour,Alabama,01005,32,0 +2020-04-25,Barbour,Alabama,01005,33,0 +2020-04-26,Barbour,Alabama,01005,33,0 +2020-04-27,Barbour,Alabama,01005,35,0 +2020-04-28,Barbour,Alabama,01005,37,0 +2020-04-29,Barbour,Alabama,01005,37,1 +2020-04-30,Barbour,Alabama,01005,39,1 +2020-05-01,Barbour,Alabama,01005,42,1 +2020-05-02,Barbour,Alabama,01005,43,1 +2020-05-03,Barbour,Alabama,01005,45,1 +2020-05-04,Barbour,Alabama,01005,45,1 +2020-05-05,Barbour,Alabama,01005,47,1 +2020-05-06,Barbour,Alabama,01005,47,1 +2020-05-07,Barbour,Alabama,01005,51,1 +2020-05-08,Barbour,Alabama,01005,53,1 +2020-05-09,Barbour,Alabama,01005,58,1 +2020-05-10,Barbour,Alabama,01005,59,1 +2020-05-11,Barbour,Alabama,01005,61,1 +2020-05-12,Barbour,Alabama,01005,67,1 +2020-05-13,Barbour,Alabama,01005,69,1 +2020-05-14,Barbour,Alabama,01005,74,1 +2020-05-15,Barbour,Alabama,01005,79,1 +2020-05-16,Barbour,Alabama,01005,79,1 +2020-05-17,Barbour,Alabama,01005,81,1 +2020-05-18,Barbour,Alabama,01005,85,1 +2020-05-19,Barbour,Alabama,01005,90,1 +2020-05-20,Barbour,Alabama,01005,96,1 +2020-05-21,Barbour,Alabama,01005,100,1 +2020-05-22,Barbour,Alabama,01005,104,1 +2020-05-23,Barbour,Alabama,01005,105,1 +2020-05-24,Barbour,Alabama,01005,110,1 +2020-05-25,Barbour,Alabama,01005,113,1 +2020-05-26,Barbour,Alabama,01005,122,1 +2020-05-27,Barbour,Alabama,01005,130,1 +2020-05-28,Barbour,Alabama,01005,132,1 +2020-05-29,Barbour,Alabama,01005,147,1 +2020-05-30,Barbour,Alabama,01005,150,1 +2020-05-31,Barbour,Alabama,01005,167,1 +2020-06-01,Barbour,Alabama,01005,173,1 +2020-06-02,Barbour,Alabama,01005,176,1 +2020-06-03,Barbour,Alabama,01005,178,1 +2020-06-04,Barbour,Alabama,01005,178,1 +2020-06-05,Barbour,Alabama,01005,184,1 +2020-06-06,Barbour,Alabama,01005,191,1 +2020-06-07,Barbour,Alabama,01005,194,1 +2020-06-08,Barbour,Alabama,01005,198,1 +2020-06-09,Barbour,Alabama,01005,200,1 +2020-06-10,Barbour,Alabama,01005,209,1 +2020-06-11,Barbour,Alabama,01005,215,1 +2020-06-12,Barbour,Alabama,01005,222,1 +2020-06-13,Barbour,Alabama,01005,227,1 +2020-06-14,Barbour,Alabama,01005,235,1 +2020-06-15,Barbour,Alabama,01005,238,1 +2020-06-16,Barbour,Alabama,01005,245,1 +2020-06-17,Barbour,Alabama,01005,251,1 +2020-06-18,Barbour,Alabama,01005,263,1 +2020-06-19,Barbour,Alabama,01005,266,1 +2020-06-20,Barbour,Alabama,01005,272,1 +2020-06-21,Barbour,Alabama,01005,272,1 +2020-06-22,Barbour,Alabama,01005,277,1 +2020-06-23,Barbour,Alabama,01005,280,1 +2020-06-24,Barbour,Alabama,01005,288,1 +2020-06-25,Barbour,Alabama,01005,305,1 +2020-06-26,Barbour,Alabama,01005,312,1 +2020-06-27,Barbour,Alabama,01005,317,1 +2020-06-28,Barbour,Alabama,01005,317,1 +2020-06-29,Barbour,Alabama,01005,322,1 +2020-06-30,Barbour,Alabama,01005,325,1 +2020-07-01,Barbour,Alabama,01005,326,1 +2020-07-02,Barbour,Alabama,01005,335,1 +2020-07-03,Barbour,Alabama,01005,348,2 +2020-07-04,Barbour,Alabama,01005,350,2 +2020-07-05,Barbour,Alabama,01005,352,2 +2020-07-06,Barbour,Alabama,01005,356,2 +2020-07-07,Barbour,Alabama,01005,360,2 +2020-07-08,Barbour,Alabama,01005,366,2 +2020-07-09,Barbour,Alabama,01005,371,2 +2020-03-30,Bibb,Alabama,01007,2,0 +2020-03-31,Bibb,Alabama,01007,3,0 +2020-04-01,Bibb,Alabama,01007,3,0 +2020-04-02,Bibb,Alabama,01007,4,0 +2020-04-03,Bibb,Alabama,01007,4,0 +2020-04-04,Bibb,Alabama,01007,4,0 +2020-04-05,Bibb,Alabama,01007,7,0 +2020-04-06,Bibb,Alabama,01007,7,0 +2020-04-07,Bibb,Alabama,01007,8,0 +2020-04-08,Bibb,Alabama,01007,9,0 +2020-04-09,Bibb,Alabama,01007,11,0 +2020-04-10,Bibb,Alabama,01007,11,0 +2020-04-11,Bibb,Alabama,01007,13,0 +2020-04-12,Bibb,Alabama,01007,16,0 +2020-04-13,Bibb,Alabama,01007,17,0 +2020-04-14,Bibb,Alabama,01007,17,0 +2020-04-15,Bibb,Alabama,01007,19,0 +2020-04-16,Bibb,Alabama,01007,24,0 +2020-04-17,Bibb,Alabama,01007,23,0 +2020-04-18,Bibb,Alabama,01007,26,0 +2020-04-19,Bibb,Alabama,01007,28,0 +2020-04-20,Bibb,Alabama,01007,32,0 +2020-04-21,Bibb,Alabama,01007,32,0 +2020-04-22,Bibb,Alabama,01007,34,0 +2020-04-23,Bibb,Alabama,01007,33,0 +2020-04-24,Bibb,Alabama,01007,34,0 +2020-04-25,Bibb,Alabama,01007,35,0 +2020-04-26,Bibb,Alabama,01007,38,0 +2020-04-27,Bibb,Alabama,01007,42,0 +2020-04-28,Bibb,Alabama,01007,42,0 +2020-04-29,Bibb,Alabama,01007,42,0 +2020-04-30,Bibb,Alabama,01007,42,0 +2020-05-01,Bibb,Alabama,01007,42,0 +2020-05-02,Bibb,Alabama,01007,42,0 +2020-05-03,Bibb,Alabama,01007,43,0 +2020-05-04,Bibb,Alabama,01007,42,0 +2020-05-05,Bibb,Alabama,01007,43,0 +2020-05-06,Bibb,Alabama,01007,43,0 +2020-05-07,Bibb,Alabama,01007,44,0 +2020-05-08,Bibb,Alabama,01007,44,1 +2020-05-09,Bibb,Alabama,01007,45,1 +2020-05-10,Bibb,Alabama,01007,46,1 +2020-05-11,Bibb,Alabama,01007,46,1 +2020-05-12,Bibb,Alabama,01007,46,1 +2020-05-13,Bibb,Alabama,01007,46,1 +2020-05-14,Bibb,Alabama,01007,46,1 +2020-05-15,Bibb,Alabama,01007,49,1 +2020-05-16,Bibb,Alabama,01007,50,1 +2020-05-17,Bibb,Alabama,01007,50,1 +2020-05-18,Bibb,Alabama,01007,50,1 +2020-05-19,Bibb,Alabama,01007,51,1 +2020-05-20,Bibb,Alabama,01007,52,1 +2020-05-21,Bibb,Alabama,01007,52,1 +2020-05-22,Bibb,Alabama,01007,55,1 +2020-05-23,Bibb,Alabama,01007,58,1 +2020-05-24,Bibb,Alabama,01007,59,1 +2020-05-25,Bibb,Alabama,01007,59,1 +2020-05-26,Bibb,Alabama,01007,66,1 +2020-05-27,Bibb,Alabama,01007,71,1 +2020-05-28,Bibb,Alabama,01007,71,1 +2020-05-29,Bibb,Alabama,01007,71,1 +2020-05-30,Bibb,Alabama,01007,72,1 +2020-05-31,Bibb,Alabama,01007,75,1 +2020-06-01,Bibb,Alabama,01007,79,1 +2020-06-02,Bibb,Alabama,01007,79,1 +2020-06-03,Bibb,Alabama,01007,79,1 +2020-06-04,Bibb,Alabama,01007,79,1 +2020-06-05,Bibb,Alabama,01007,79,1 +2020-06-06,Bibb,Alabama,01007,80,1 +2020-06-07,Bibb,Alabama,01007,80,1 +2020-06-08,Bibb,Alabama,01007,82,1 +2020-06-09,Bibb,Alabama,01007,88,1 +2020-06-10,Bibb,Alabama,01007,92,1 +2020-06-11,Bibb,Alabama,01007,96,1 +2020-06-12,Bibb,Alabama,01007,100,1 +2020-06-13,Bibb,Alabama,01007,103,1 +2020-06-14,Bibb,Alabama,01007,107,1 +2020-06-15,Bibb,Alabama,01007,111,1 +2020-06-16,Bibb,Alabama,01007,116,1 +2020-06-17,Bibb,Alabama,01007,118,1 +2020-06-18,Bibb,Alabama,01007,121,1 +2020-06-19,Bibb,Alabama,01007,126,1 +2020-06-20,Bibb,Alabama,01007,126,1 +2020-06-21,Bibb,Alabama,01007,127,1 +2020-06-22,Bibb,Alabama,01007,129,1 +2020-06-23,Bibb,Alabama,01007,135,1 +2020-06-24,Bibb,Alabama,01007,141,1 +2020-06-25,Bibb,Alabama,01007,149,1 +2020-06-26,Bibb,Alabama,01007,153,1 +2020-06-27,Bibb,Alabama,01007,161,1 +2020-06-28,Bibb,Alabama,01007,162,1 +2020-06-29,Bibb,Alabama,01007,165,1 +2020-06-30,Bibb,Alabama,01007,170,1 +2020-07-01,Bibb,Alabama,01007,174,1 +2020-07-02,Bibb,Alabama,01007,179,1 +2020-07-03,Bibb,Alabama,01007,189,1 +2020-07-04,Bibb,Alabama,01007,190,1 +2020-07-05,Bibb,Alabama,01007,193,1 +2020-07-06,Bibb,Alabama,01007,197,1 +2020-07-07,Bibb,Alabama,01007,199,1 +2020-07-08,Bibb,Alabama,01007,201,1 +2020-07-09,Bibb,Alabama,01007,211,1 +2020-03-25,Blount,Alabama,01009,1,0 +2020-03-26,Blount,Alabama,01009,3,0 +2020-03-27,Blount,Alabama,01009,5,0 +2020-03-28,Blount,Alabama,01009,5,0 +2020-03-29,Blount,Alabama,01009,5,0 +2020-03-30,Blount,Alabama,01009,5,0 +2020-03-31,Blount,Alabama,01009,5,0 +2020-04-01,Blount,Alabama,01009,5,0 +2020-04-02,Blount,Alabama,01009,6,0 +2020-04-03,Blount,Alabama,01009,9,0 +2020-04-04,Blount,Alabama,01009,10,0 +2020-04-05,Blount,Alabama,01009,10,0 +2020-04-06,Blount,Alabama,01009,10,0 +2020-04-07,Blount,Alabama,01009,10,0 +2020-04-08,Blount,Alabama,01009,10,0 +2020-04-09,Blount,Alabama,01009,11,0 +2020-04-10,Blount,Alabama,01009,12,0 +2020-04-11,Blount,Alabama,01009,12,0 +2020-04-12,Blount,Alabama,01009,13,0 +2020-04-13,Blount,Alabama,01009,15,0 +2020-04-14,Blount,Alabama,01009,16,0 +2020-04-15,Blount,Alabama,01009,17,0 +2020-04-16,Blount,Alabama,01009,18,0 +2020-04-17,Blount,Alabama,01009,20,0 +2020-04-18,Blount,Alabama,01009,20,0 +2020-04-19,Blount,Alabama,01009,21,0 +2020-04-20,Blount,Alabama,01009,22,0 +2020-04-21,Blount,Alabama,01009,26,0 +2020-04-22,Blount,Alabama,01009,29,0 +2020-04-23,Blount,Alabama,01009,31,0 +2020-04-24,Blount,Alabama,01009,31,0 +2020-04-25,Blount,Alabama,01009,31,0 +2020-04-26,Blount,Alabama,01009,34,0 +2020-04-27,Blount,Alabama,01009,34,0 +2020-04-28,Blount,Alabama,01009,34,0 +2020-04-29,Blount,Alabama,01009,36,0 +2020-04-30,Blount,Alabama,01009,37,0 +2020-05-01,Blount,Alabama,01009,39,0 +2020-05-02,Blount,Alabama,01009,40,0 +2020-05-03,Blount,Alabama,01009,40,0 +2020-05-04,Blount,Alabama,01009,40,0 +2020-05-05,Blount,Alabama,01009,40,0 +2020-05-06,Blount,Alabama,01009,42,0 +2020-05-07,Blount,Alabama,01009,44,0 +2020-05-08,Blount,Alabama,01009,44,0 +2020-05-09,Blount,Alabama,01009,44,0 +2020-05-10,Blount,Alabama,01009,44,0 +2020-05-11,Blount,Alabama,01009,45,0 +2020-05-12,Blount,Alabama,01009,45,0 +2020-05-13,Blount,Alabama,01009,45,0 +2020-05-14,Blount,Alabama,01009,45,0 +2020-05-15,Blount,Alabama,01009,45,0 +2020-05-16,Blount,Alabama,01009,45,0 +2020-05-17,Blount,Alabama,01009,46,1 +2020-05-18,Blount,Alabama,01009,47,1 +2020-05-19,Blount,Alabama,01009,47,1 +2020-05-20,Blount,Alabama,01009,47,1 +2020-05-21,Blount,Alabama,01009,48,1 +2020-05-22,Blount,Alabama,01009,49,1 +2020-05-23,Blount,Alabama,01009,49,1 +2020-05-24,Blount,Alabama,01009,49,1 +2020-05-25,Blount,Alabama,01009,49,1 +2020-05-26,Blount,Alabama,01009,51,1 +2020-05-27,Blount,Alabama,01009,53,1 +2020-05-28,Blount,Alabama,01009,58,1 +2020-05-29,Blount,Alabama,01009,60,1 +2020-05-30,Blount,Alabama,01009,61,1 +2020-05-31,Blount,Alabama,01009,62,1 +2020-06-01,Blount,Alabama,01009,65,1 +2020-06-02,Blount,Alabama,01009,65,1 +2020-06-03,Blount,Alabama,01009,65,1 +2020-06-04,Blount,Alabama,01009,65,1 +2020-06-05,Blount,Alabama,01009,66,1 +2020-06-06,Blount,Alabama,01009,72,1 +2020-06-07,Blount,Alabama,01009,74,1 +2020-06-08,Blount,Alabama,01009,75,1 +2020-06-09,Blount,Alabama,01009,77,1 +2020-06-10,Blount,Alabama,01009,81,1 +2020-06-11,Blount,Alabama,01009,89,1 +2020-06-12,Blount,Alabama,01009,97,1 +2020-06-13,Blount,Alabama,01009,104,1 +2020-06-14,Blount,Alabama,01009,112,1 +2020-06-15,Blount,Alabama,01009,116,1 +2020-06-16,Blount,Alabama,01009,121,1 +2020-06-17,Blount,Alabama,01009,123,1 +2020-06-18,Blount,Alabama,01009,130,1 +2020-06-19,Blount,Alabama,01009,139,1 +2020-06-20,Blount,Alabama,01009,143,1 +2020-06-21,Blount,Alabama,01009,149,1 +2020-06-22,Blount,Alabama,01009,153,1 +2020-06-23,Blount,Alabama,01009,159,1 +2020-06-24,Blount,Alabama,01009,168,1 +2020-06-25,Blount,Alabama,01009,176,1 +2020-06-26,Blount,Alabama,01009,184,1 +2020-06-27,Blount,Alabama,01009,188,1 +2020-06-28,Blount,Alabama,01009,189,1 +2020-06-29,Blount,Alabama,01009,199,1 +2020-06-30,Blount,Alabama,01009,208,1 +2020-07-01,Blount,Alabama,01009,218,1 +2020-07-02,Blount,Alabama,01009,222,1 +2020-07-03,Blount,Alabama,01009,230,1 +2020-07-04,Blount,Alabama,01009,234,1 +2020-07-05,Blount,Alabama,01009,239,1 +2020-07-06,Blount,Alabama,01009,247,1 +2020-07-07,Blount,Alabama,01009,255,1 +2020-07-08,Blount,Alabama,01009,262,1 +2020-07-09,Blount,Alabama,01009,282,1 +2020-03-26,Bullock,Alabama,01011,2,0 +2020-03-27,Bullock,Alabama,01011,2,0 +2020-03-28,Bullock,Alabama,01011,3,0 +2020-03-29,Bullock,Alabama,01011,3,0 +2020-03-30,Bullock,Alabama,01011,3,0 +2020-03-31,Bullock,Alabama,01011,3,0 +2020-04-01,Bullock,Alabama,01011,3,0 +2020-04-02,Bullock,Alabama,01011,2,0 +2020-04-03,Bullock,Alabama,01011,2,0 +2020-04-04,Bullock,Alabama,01011,2,0 +2020-04-05,Bullock,Alabama,01011,2,0 +2020-04-06,Bullock,Alabama,01011,2,0 +2020-04-07,Bullock,Alabama,01011,2,0 +2020-04-08,Bullock,Alabama,01011,3,0 +2020-04-09,Bullock,Alabama,01011,4,0 +2020-04-10,Bullock,Alabama,01011,4,0 +2020-04-11,Bullock,Alabama,01011,4,0 +2020-04-12,Bullock,Alabama,01011,4,0 +2020-04-13,Bullock,Alabama,01011,6,0 +2020-04-14,Bullock,Alabama,01011,8,0 +2020-04-15,Bullock,Alabama,01011,8,0 +2020-04-16,Bullock,Alabama,01011,8,0 +2020-04-17,Bullock,Alabama,01011,8,0 +2020-04-18,Bullock,Alabama,01011,9,0 +2020-04-19,Bullock,Alabama,01011,9,0 +2020-04-20,Bullock,Alabama,01011,11,0 +2020-04-21,Bullock,Alabama,01011,11,0 +2020-04-22,Bullock,Alabama,01011,11,0 +2020-04-23,Bullock,Alabama,01011,12,0 +2020-04-24,Bullock,Alabama,01011,12,0 +2020-04-25,Bullock,Alabama,01011,12,0 +2020-04-26,Bullock,Alabama,01011,12,0 +2020-04-27,Bullock,Alabama,01011,12,0 +2020-04-28,Bullock,Alabama,01011,12,0 +2020-04-29,Bullock,Alabama,01011,12,0 +2020-04-30,Bullock,Alabama,01011,13,0 +2020-05-01,Bullock,Alabama,01011,14,0 +2020-05-02,Bullock,Alabama,01011,14,0 +2020-05-03,Bullock,Alabama,01011,14,0 +2020-05-04,Bullock,Alabama,01011,16,0 +2020-05-05,Bullock,Alabama,01011,18,0 +2020-05-06,Bullock,Alabama,01011,18,1 +2020-05-07,Bullock,Alabama,01011,18,1 +2020-05-08,Bullock,Alabama,01011,21,1 +2020-05-09,Bullock,Alabama,01011,22,1 +2020-05-10,Bullock,Alabama,01011,23,1 +2020-05-11,Bullock,Alabama,01011,26,1 +2020-05-12,Bullock,Alabama,01011,26,1 +2020-05-13,Bullock,Alabama,01011,28,1 +2020-05-14,Bullock,Alabama,01011,28,1 +2020-05-15,Bullock,Alabama,01011,32,1 +2020-05-16,Bullock,Alabama,01011,35,1 +2020-05-17,Bullock,Alabama,01011,35,1 +2020-05-18,Bullock,Alabama,01011,40,1 +2020-05-19,Bullock,Alabama,01011,52,1 +2020-05-20,Bullock,Alabama,01011,64,1 +2020-05-21,Bullock,Alabama,01011,71,1 +2020-05-22,Bullock,Alabama,01011,89,1 +2020-05-23,Bullock,Alabama,01011,105,1 +2020-05-24,Bullock,Alabama,01011,111,1 +2020-05-25,Bullock,Alabama,01011,133,3 +2020-05-26,Bullock,Alabama,01011,167,3 +2020-05-27,Bullock,Alabama,01011,176,3 +2020-05-28,Bullock,Alabama,01011,183,3 +2020-05-29,Bullock,Alabama,01011,201,4 +2020-05-30,Bullock,Alabama,01011,203,4 +2020-05-31,Bullock,Alabama,01011,209,5 +2020-06-01,Bullock,Alabama,01011,210,6 +2020-06-02,Bullock,Alabama,01011,214,6 +2020-06-03,Bullock,Alabama,01011,216,6 +2020-06-04,Bullock,Alabama,01011,218,6 +2020-06-05,Bullock,Alabama,01011,220,7 +2020-06-06,Bullock,Alabama,01011,226,7 +2020-06-07,Bullock,Alabama,01011,233,7 +2020-06-08,Bullock,Alabama,01011,240,9 +2020-06-09,Bullock,Alabama,01011,245,9 +2020-06-10,Bullock,Alabama,01011,250,9 +2020-06-11,Bullock,Alabama,01011,255,9 +2020-06-12,Bullock,Alabama,01011,260,9 +2020-06-13,Bullock,Alabama,01011,278,9 +2020-06-14,Bullock,Alabama,01011,304,9 +2020-06-15,Bullock,Alabama,01011,307,9 +2020-06-16,Bullock,Alabama,01011,310,9 +2020-06-17,Bullock,Alabama,01011,313,9 +2020-06-18,Bullock,Alabama,01011,320,9 +2020-06-19,Bullock,Alabama,01011,320,10 +2020-06-20,Bullock,Alabama,01011,327,10 +2020-06-21,Bullock,Alabama,01011,327,10 +2020-06-22,Bullock,Alabama,01011,328,10 +2020-06-23,Bullock,Alabama,01011,329,10 +2020-06-24,Bullock,Alabama,01011,336,11 +2020-06-25,Bullock,Alabama,01011,351,11 +2020-06-26,Bullock,Alabama,01011,351,11 +2020-06-27,Bullock,Alabama,01011,359,11 +2020-06-28,Bullock,Alabama,01011,358,11 +2020-06-29,Bullock,Alabama,01011,365,10 +2020-06-30,Bullock,Alabama,01011,365,10 +2020-07-01,Bullock,Alabama,01011,367,10 +2020-07-02,Bullock,Alabama,01011,369,10 +2020-07-03,Bullock,Alabama,01011,372,10 +2020-07-04,Bullock,Alabama,01011,373,11 +2020-07-05,Bullock,Alabama,01011,374,11 +2020-07-06,Bullock,Alabama,01011,374,11 +2020-07-07,Bullock,Alabama,01011,373,11 +2020-07-08,Bullock,Alabama,01011,374,11 +2020-07-09,Bullock,Alabama,01011,375,11 +2020-03-25,Butler,Alabama,01013,1,0 +2020-03-26,Butler,Alabama,01013,1,0 +2020-03-27,Butler,Alabama,01013,1,0 +2020-03-28,Butler,Alabama,01013,1,0 +2020-03-29,Butler,Alabama,01013,1,0 +2020-03-30,Butler,Alabama,01013,1,0 +2020-03-31,Butler,Alabama,01013,1,0 +2020-04-01,Butler,Alabama,01013,1,0 +2020-04-02,Butler,Alabama,01013,1,0 +2020-04-03,Butler,Alabama,01013,1,0 +2020-04-04,Butler,Alabama,01013,1,0 +2020-04-05,Butler,Alabama,01013,1,0 +2020-04-06,Butler,Alabama,01013,1,0 +2020-04-07,Butler,Alabama,01013,2,0 +2020-04-08,Butler,Alabama,01013,3,0 +2020-04-09,Butler,Alabama,01013,3,0 +2020-04-10,Butler,Alabama,01013,3,0 +2020-04-11,Butler,Alabama,01013,6,0 +2020-04-12,Butler,Alabama,01013,7,0 +2020-04-13,Butler,Alabama,01013,8,0 +2020-04-14,Butler,Alabama,01013,8,0 +2020-04-15,Butler,Alabama,01013,11,0 +2020-04-16,Butler,Alabama,01013,11,0 +2020-04-17,Butler,Alabama,01013,16,0 +2020-04-18,Butler,Alabama,01013,13,0 +2020-04-19,Butler,Alabama,01013,14,0 +2020-04-20,Butler,Alabama,01013,14,0 +2020-04-21,Butler,Alabama,01013,15,0 +2020-04-22,Butler,Alabama,01013,17,0 +2020-04-23,Butler,Alabama,01013,19,0 +2020-04-24,Butler,Alabama,01013,21,0 +2020-04-25,Butler,Alabama,01013,28,0 +2020-04-26,Butler,Alabama,01013,32,1 +2020-04-27,Butler,Alabama,01013,34,1 +2020-04-28,Butler,Alabama,01013,45,1 +2020-04-29,Butler,Alabama,01013,51,1 +2020-04-30,Butler,Alabama,01013,53,1 +2020-05-01,Butler,Alabama,01013,65,1 +2020-05-02,Butler,Alabama,01013,92,1 +2020-05-03,Butler,Alabama,01013,105,1 +2020-05-04,Butler,Alabama,01013,114,1 +2020-05-05,Butler,Alabama,01013,120,2 +2020-05-06,Butler,Alabama,01013,130,2 +2020-05-07,Butler,Alabama,01013,155,2 +2020-05-08,Butler,Alabama,01013,162,3 +2020-05-09,Butler,Alabama,01013,178,6 +2020-05-10,Butler,Alabama,01013,189,6 +2020-05-11,Butler,Alabama,01013,196,6 +2020-05-12,Butler,Alabama,01013,224,6 +2020-05-13,Butler,Alabama,01013,230,6 +2020-05-14,Butler,Alabama,01013,249,8 +2020-05-15,Butler,Alabama,01013,258,9 +2020-05-16,Butler,Alabama,01013,271,9 +2020-05-17,Butler,Alabama,01013,272,9 +2020-05-18,Butler,Alabama,01013,285,10 +2020-05-19,Butler,Alabama,01013,295,10 +2020-05-20,Butler,Alabama,01013,312,11 +2020-05-21,Butler,Alabama,01013,321,11 +2020-05-22,Butler,Alabama,01013,329,11 +2020-05-23,Butler,Alabama,01013,335,11 +2020-05-24,Butler,Alabama,01013,344,11 +2020-05-25,Butler,Alabama,01013,359,12 +2020-05-26,Butler,Alabama,01013,380,13 +2020-05-27,Butler,Alabama,01013,391,13 +2020-05-28,Butler,Alabama,01013,392,13 +2020-05-29,Butler,Alabama,01013,396,16 +2020-05-30,Butler,Alabama,01013,402,17 +2020-05-31,Butler,Alabama,01013,411,18 +2020-06-01,Butler,Alabama,01013,416,18 +2020-06-02,Butler,Alabama,01013,418,18 +2020-06-03,Butler,Alabama,01013,421,18 +2020-06-04,Butler,Alabama,01013,423,18 +2020-06-05,Butler,Alabama,01013,433,21 +2020-06-06,Butler,Alabama,01013,444,22 +2020-06-07,Butler,Alabama,01013,451,22 +2020-06-08,Butler,Alabama,01013,457,24 +2020-06-09,Butler,Alabama,01013,466,24 +2020-06-10,Butler,Alabama,01013,473,24 +2020-06-11,Butler,Alabama,01013,487,25 +2020-06-12,Butler,Alabama,01013,502,25 +2020-06-13,Butler,Alabama,01013,520,25 +2020-06-14,Butler,Alabama,01013,539,25 +2020-06-15,Butler,Alabama,01013,544,25 +2020-06-16,Butler,Alabama,01013,551,25 +2020-06-17,Butler,Alabama,01013,554,25 +2020-06-18,Butler,Alabama,01013,566,25 +2020-06-19,Butler,Alabama,01013,569,26 +2020-06-20,Butler,Alabama,01013,572,26 +2020-06-21,Butler,Alabama,01013,576,26 +2020-06-22,Butler,Alabama,01013,578,26 +2020-06-23,Butler,Alabama,01013,581,27 +2020-06-24,Butler,Alabama,01013,584,27 +2020-06-25,Butler,Alabama,01013,588,27 +2020-06-26,Butler,Alabama,01013,594,27 +2020-06-27,Butler,Alabama,01013,600,27 +2020-06-28,Butler,Alabama,01013,602,27 +2020-06-29,Butler,Alabama,01013,605,27 +2020-06-30,Butler,Alabama,01013,607,27 +2020-07-01,Butler,Alabama,01013,607,27 +2020-07-02,Butler,Alabama,01013,610,27 +2020-07-03,Butler,Alabama,01013,625,28 +2020-07-04,Butler,Alabama,01013,626,28 +2020-07-05,Butler,Alabama,01013,635,28 +2020-07-06,Butler,Alabama,01013,636,28 +2020-07-07,Butler,Alabama,01013,634,28 +2020-07-08,Butler,Alabama,01013,639,28 +2020-07-09,Butler,Alabama,01013,646,28 +2020-03-18,Calhoun,Alabama,01015,1,0 +2020-03-19,Calhoun,Alabama,01015,1,0 +2020-03-20,Calhoun,Alabama,01015,1,0 +2020-03-21,Calhoun,Alabama,01015,1,0 +2020-03-22,Calhoun,Alabama,01015,1,0 +2020-03-23,Calhoun,Alabama,01015,2,0 +2020-03-24,Calhoun,Alabama,01015,2,0 +2020-03-25,Calhoun,Alabama,01015,2,0 +2020-03-26,Calhoun,Alabama,01015,2,0 +2020-03-27,Calhoun,Alabama,01015,3,0 +2020-03-28,Calhoun,Alabama,01015,3,0 +2020-03-29,Calhoun,Alabama,01015,3,0 +2020-03-30,Calhoun,Alabama,01015,9,0 +2020-03-31,Calhoun,Alabama,01015,9,0 +2020-04-01,Calhoun,Alabama,01015,11,0 +2020-04-02,Calhoun,Alabama,01015,12,0 +2020-04-03,Calhoun,Alabama,01015,20,0 +2020-04-04,Calhoun,Alabama,01015,21,0 +2020-04-05,Calhoun,Alabama,01015,24,0 +2020-04-06,Calhoun,Alabama,01015,38,0 +2020-04-07,Calhoun,Alabama,01015,48,0 +2020-04-08,Calhoun,Alabama,01015,52,0 +2020-04-09,Calhoun,Alabama,01015,54,0 +2020-04-10,Calhoun,Alabama,01015,54,0 +2020-04-11,Calhoun,Alabama,01015,57,0 +2020-04-12,Calhoun,Alabama,01015,60,0 +2020-04-13,Calhoun,Alabama,01015,61,0 +2020-04-14,Calhoun,Alabama,01015,62,0 +2020-04-15,Calhoun,Alabama,01015,62,0 +2020-04-16,Calhoun,Alabama,01015,63,1 +2020-04-17,Calhoun,Alabama,01015,63,2 +2020-04-18,Calhoun,Alabama,01015,66,2 +2020-04-19,Calhoun,Alabama,01015,72,2 +2020-04-20,Calhoun,Alabama,01015,80,3 +2020-04-21,Calhoun,Alabama,01015,83,3 +2020-04-22,Calhoun,Alabama,01015,85,3 +2020-04-23,Calhoun,Alabama,01015,88,3 +2020-04-24,Calhoun,Alabama,01015,89,3 +2020-04-25,Calhoun,Alabama,01015,90,3 +2020-04-26,Calhoun,Alabama,01015,91,3 +2020-04-27,Calhoun,Alabama,01015,90,3 +2020-04-28,Calhoun,Alabama,01015,92,3 +2020-04-29,Calhoun,Alabama,01015,93,3 +2020-04-30,Calhoun,Alabama,01015,93,3 +2020-05-01,Calhoun,Alabama,01015,93,3 +2020-05-02,Calhoun,Alabama,01015,98,3 +2020-05-03,Calhoun,Alabama,01015,105,3 +2020-05-04,Calhoun,Alabama,01015,105,3 +2020-05-05,Calhoun,Alabama,01015,114,3 +2020-05-06,Calhoun,Alabama,01015,114,3 +2020-05-07,Calhoun,Alabama,01015,120,3 +2020-05-08,Calhoun,Alabama,01015,123,3 +2020-05-09,Calhoun,Alabama,01015,124,3 +2020-05-10,Calhoun,Alabama,01015,124,3 +2020-05-11,Calhoun,Alabama,01015,125,3 +2020-05-12,Calhoun,Alabama,01015,126,3 +2020-05-13,Calhoun,Alabama,01015,127,3 +2020-05-14,Calhoun,Alabama,01015,128,3 +2020-05-15,Calhoun,Alabama,01015,129,3 +2020-05-16,Calhoun,Alabama,01015,130,3 +2020-05-17,Calhoun,Alabama,01015,130,3 +2020-05-18,Calhoun,Alabama,01015,133,3 +2020-05-19,Calhoun,Alabama,01015,133,3 +2020-05-20,Calhoun,Alabama,01015,136,3 +2020-05-21,Calhoun,Alabama,01015,136,3 +2020-05-22,Calhoun,Alabama,01015,137,3 +2020-05-23,Calhoun,Alabama,01015,138,3 +2020-05-24,Calhoun,Alabama,01015,141,3 +2020-05-25,Calhoun,Alabama,01015,146,3 +2020-05-26,Calhoun,Alabama,01015,150,3 +2020-05-27,Calhoun,Alabama,01015,152,3 +2020-05-28,Calhoun,Alabama,01015,152,3 +2020-05-29,Calhoun,Alabama,01015,153,3 +2020-05-30,Calhoun,Alabama,01015,154,3 +2020-05-31,Calhoun,Alabama,01015,160,3 +2020-06-01,Calhoun,Alabama,01015,172,3 +2020-06-02,Calhoun,Alabama,01015,173,3 +2020-06-03,Calhoun,Alabama,01015,173,3 +2020-06-04,Calhoun,Alabama,01015,175,3 +2020-06-05,Calhoun,Alabama,01015,177,3 +2020-06-06,Calhoun,Alabama,01015,182,3 +2020-06-07,Calhoun,Alabama,01015,184,3 +2020-06-08,Calhoun,Alabama,01015,186,3 +2020-06-09,Calhoun,Alabama,01015,188,3 +2020-06-10,Calhoun,Alabama,01015,190,3 +2020-06-11,Calhoun,Alabama,01015,192,3 +2020-06-12,Calhoun,Alabama,01015,196,3 +2020-06-13,Calhoun,Alabama,01015,198,3 +2020-06-14,Calhoun,Alabama,01015,203,3 +2020-06-15,Calhoun,Alabama,01015,204,3 +2020-06-16,Calhoun,Alabama,01015,206,4 +2020-06-17,Calhoun,Alabama,01015,208,4 +2020-06-18,Calhoun,Alabama,01015,210,4 +2020-06-19,Calhoun,Alabama,01015,210,4 +2020-06-20,Calhoun,Alabama,01015,211,4 +2020-06-21,Calhoun,Alabama,01015,213,4 +2020-06-22,Calhoun,Alabama,01015,215,4 +2020-06-23,Calhoun,Alabama,01015,216,5 +2020-06-24,Calhoun,Alabama,01015,220,5 +2020-06-25,Calhoun,Alabama,01015,233,5 +2020-06-26,Calhoun,Alabama,01015,236,5 +2020-06-27,Calhoun,Alabama,01015,245,5 +2020-06-28,Calhoun,Alabama,01015,245,5 +2020-06-29,Calhoun,Alabama,01015,269,5 +2020-06-30,Calhoun,Alabama,01015,276,5 +2020-07-01,Calhoun,Alabama,01015,278,5 +2020-07-02,Calhoun,Alabama,01015,288,5 +2020-07-03,Calhoun,Alabama,01015,330,5 +2020-07-04,Calhoun,Alabama,01015,340,5 +2020-07-05,Calhoun,Alabama,01015,362,5 +2020-07-06,Calhoun,Alabama,01015,384,5 +2020-07-07,Calhoun,Alabama,01015,395,5 +2020-07-08,Calhoun,Alabama,01015,411,5 +2020-07-09,Calhoun,Alabama,01015,445,5 +2020-03-19,Chambers,Alabama,01017,1,0 +2020-03-20,Chambers,Alabama,01017,1,0 +2020-03-21,Chambers,Alabama,01017,1,0 +2020-03-22,Chambers,Alabama,01017,2,0 +2020-03-23,Chambers,Alabama,01017,2,0 +2020-03-24,Chambers,Alabama,01017,5,0 +2020-03-25,Chambers,Alabama,01017,10,0 +2020-03-26,Chambers,Alabama,01017,13,0 +2020-03-27,Chambers,Alabama,01017,15,0 +2020-03-28,Chambers,Alabama,01017,17,0 +2020-03-29,Chambers,Alabama,01017,27,1 +2020-03-30,Chambers,Alabama,01017,36,4 +2020-03-31,Chambers,Alabama,01017,36,4 +2020-04-01,Chambers,Alabama,01017,45,4 +2020-04-02,Chambers,Alabama,01017,67,4 +2020-04-03,Chambers,Alabama,01017,81,5 +2020-04-04,Chambers,Alabama,01017,87,6 +2020-04-05,Chambers,Alabama,01017,90,6 +2020-04-06,Chambers,Alabama,01017,96,7 +2020-04-07,Chambers,Alabama,01017,102,8 +2020-04-08,Chambers,Alabama,01017,140,8 +2020-04-09,Chambers,Alabama,01017,161,8 +2020-04-10,Chambers,Alabama,01017,171,8 +2020-04-11,Chambers,Alabama,01017,184,8 +2020-04-12,Chambers,Alabama,01017,200,8 +2020-04-13,Chambers,Alabama,01017,212,8 +2020-04-14,Chambers,Alabama,01017,216,10 +2020-04-15,Chambers,Alabama,01017,227,10 +2020-04-16,Chambers,Alabama,01017,234,11 +2020-04-17,Chambers,Alabama,01017,236,11 +2020-04-18,Chambers,Alabama,01017,240,11 +2020-04-19,Chambers,Alabama,01017,246,14 +2020-04-20,Chambers,Alabama,01017,257,13 +2020-04-21,Chambers,Alabama,01017,259,16 +2020-04-22,Chambers,Alabama,01017,270,16 +2020-04-23,Chambers,Alabama,01017,275,16 +2020-04-24,Chambers,Alabama,01017,282,17 +2020-04-25,Chambers,Alabama,01017,284,18 +2020-04-26,Chambers,Alabama,01017,285,18 +2020-04-27,Chambers,Alabama,01017,289,18 +2020-04-28,Chambers,Alabama,01017,291,19 +2020-04-29,Chambers,Alabama,01017,293,21 +2020-04-30,Chambers,Alabama,01017,291,21 +2020-05-01,Chambers,Alabama,01017,290,21 +2020-05-02,Chambers,Alabama,01017,294,21 +2020-05-03,Chambers,Alabama,01017,300,21 +2020-05-04,Chambers,Alabama,01017,302,21 +2020-05-05,Chambers,Alabama,01017,304,21 +2020-05-06,Chambers,Alabama,01017,306,22 +2020-05-07,Chambers,Alabama,01017,308,21 +2020-05-08,Chambers,Alabama,01017,311,21 +2020-05-09,Chambers,Alabama,01017,314,21 +2020-05-10,Chambers,Alabama,01017,316,21 +2020-05-11,Chambers,Alabama,01017,319,21 +2020-05-12,Chambers,Alabama,01017,324,21 +2020-05-13,Chambers,Alabama,01017,324,22 +2020-05-14,Chambers,Alabama,01017,326,22 +2020-05-15,Chambers,Alabama,01017,326,22 +2020-05-16,Chambers,Alabama,01017,328,22 +2020-05-17,Chambers,Alabama,01017,328,22 +2020-05-18,Chambers,Alabama,01017,329,22 +2020-05-19,Chambers,Alabama,01017,329,22 +2020-05-20,Chambers,Alabama,01017,331,23 +2020-05-21,Chambers,Alabama,01017,330,23 +2020-05-22,Chambers,Alabama,01017,330,23 +2020-05-23,Chambers,Alabama,01017,330,23 +2020-05-24,Chambers,Alabama,01017,336,23 +2020-05-25,Chambers,Alabama,01017,337,24 +2020-05-26,Chambers,Alabama,01017,338,24 +2020-05-27,Chambers,Alabama,01017,340,24 +2020-05-28,Chambers,Alabama,01017,349,24 +2020-05-29,Chambers,Alabama,01017,352,24 +2020-05-30,Chambers,Alabama,01017,353,25 +2020-05-31,Chambers,Alabama,01017,355,25 +2020-06-01,Chambers,Alabama,01017,370,25 +2020-06-02,Chambers,Alabama,01017,370,26 +2020-06-03,Chambers,Alabama,01017,371,26 +2020-06-04,Chambers,Alabama,01017,372,26 +2020-06-05,Chambers,Alabama,01017,375,26 +2020-06-06,Chambers,Alabama,01017,385,26 +2020-06-07,Chambers,Alabama,01017,390,26 +2020-06-08,Chambers,Alabama,01017,395,26 +2020-06-09,Chambers,Alabama,01017,404,26 +2020-06-10,Chambers,Alabama,01017,415,26 +2020-06-11,Chambers,Alabama,01017,431,26 +2020-06-12,Chambers,Alabama,01017,441,26 +2020-06-13,Chambers,Alabama,01017,452,26 +2020-06-14,Chambers,Alabama,01017,467,26 +2020-06-15,Chambers,Alabama,01017,475,26 +2020-06-16,Chambers,Alabama,01017,485,26 +2020-06-17,Chambers,Alabama,01017,486,26 +2020-06-18,Chambers,Alabama,01017,501,26 +2020-06-19,Chambers,Alabama,01017,507,28 +2020-06-20,Chambers,Alabama,01017,516,27 +2020-06-21,Chambers,Alabama,01017,521,27 +2020-06-22,Chambers,Alabama,01017,528,27 +2020-06-23,Chambers,Alabama,01017,534,27 +2020-06-24,Chambers,Alabama,01017,543,27 +2020-06-25,Chambers,Alabama,01017,549,27 +2020-06-26,Chambers,Alabama,01017,559,27 +2020-06-27,Chambers,Alabama,01017,561,27 +2020-06-28,Chambers,Alabama,01017,561,27 +2020-06-29,Chambers,Alabama,01017,585,27 +2020-06-30,Chambers,Alabama,01017,590,27 +2020-07-01,Chambers,Alabama,01017,595,27 +2020-07-02,Chambers,Alabama,01017,611,27 +2020-07-03,Chambers,Alabama,01017,625,27 +2020-07-04,Chambers,Alabama,01017,637,27 +2020-07-05,Chambers,Alabama,01017,642,27 +2020-07-06,Chambers,Alabama,01017,655,27 +2020-07-07,Chambers,Alabama,01017,656,27 +2020-07-08,Chambers,Alabama,01017,660,27 +2020-07-09,Chambers,Alabama,01017,672,27 +2020-03-25,Cherokee,Alabama,01019,1,0 +2020-03-26,Cherokee,Alabama,01019,1,0 +2020-03-27,Cherokee,Alabama,01019,1,0 +2020-03-28,Cherokee,Alabama,01019,1,0 +2020-03-29,Cherokee,Alabama,01019,2,0 +2020-03-30,Cherokee,Alabama,01019,2,0 +2020-03-31,Cherokee,Alabama,01019,2,0 +2020-04-01,Cherokee,Alabama,01019,2,0 +2020-04-02,Cherokee,Alabama,01019,4,0 +2020-04-03,Cherokee,Alabama,01019,5,0 +2020-04-04,Cherokee,Alabama,01019,6,0 +2020-04-05,Cherokee,Alabama,01019,6,0 +2020-04-06,Cherokee,Alabama,01019,6,0 +2020-04-07,Cherokee,Alabama,01019,6,0 +2020-04-08,Cherokee,Alabama,01019,7,0 +2020-04-09,Cherokee,Alabama,01019,7,0 +2020-04-10,Cherokee,Alabama,01019,7,0 +2020-04-11,Cherokee,Alabama,01019,7,0 +2020-04-12,Cherokee,Alabama,01019,9,0 +2020-04-13,Cherokee,Alabama,01019,9,0 +2020-04-14,Cherokee,Alabama,01019,9,0 +2020-04-15,Cherokee,Alabama,01019,10,0 +2020-04-16,Cherokee,Alabama,01019,11,0 +2020-04-17,Cherokee,Alabama,01019,12,0 +2020-04-18,Cherokee,Alabama,01019,12,0 +2020-04-19,Cherokee,Alabama,01019,12,0 +2020-04-20,Cherokee,Alabama,01019,12,0 +2020-04-21,Cherokee,Alabama,01019,13,0 +2020-04-22,Cherokee,Alabama,01019,13,0 +2020-04-23,Cherokee,Alabama,01019,12,0 +2020-04-24,Cherokee,Alabama,01019,12,0 +2020-04-25,Cherokee,Alabama,01019,12,0 +2020-04-26,Cherokee,Alabama,01019,14,0 +2020-04-27,Cherokee,Alabama,01019,14,0 +2020-04-28,Cherokee,Alabama,01019,15,0 +2020-04-29,Cherokee,Alabama,01019,15,0 +2020-04-30,Cherokee,Alabama,01019,15,0 +2020-05-01,Cherokee,Alabama,01019,15,0 +2020-05-02,Cherokee,Alabama,01019,15,0 +2020-05-03,Cherokee,Alabama,01019,16,0 +2020-05-04,Cherokee,Alabama,01019,16,0 +2020-05-05,Cherokee,Alabama,01019,17,0 +2020-05-06,Cherokee,Alabama,01019,18,0 +2020-05-07,Cherokee,Alabama,01019,18,0 +2020-05-08,Cherokee,Alabama,01019,21,0 +2020-05-09,Cherokee,Alabama,01019,22,0 +2020-05-10,Cherokee,Alabama,01019,22,0 +2020-05-11,Cherokee,Alabama,01019,24,0 +2020-05-12,Cherokee,Alabama,01019,24,0 +2020-05-13,Cherokee,Alabama,01019,24,0 +2020-05-14,Cherokee,Alabama,01019,25,0 +2020-05-15,Cherokee,Alabama,01019,26,0 +2020-05-16,Cherokee,Alabama,01019,27,0 +2020-05-17,Cherokee,Alabama,01019,27,0 +2020-05-18,Cherokee,Alabama,01019,28,0 +2020-05-19,Cherokee,Alabama,01019,29,0 +2020-05-20,Cherokee,Alabama,01019,30,0 +2020-05-21,Cherokee,Alabama,01019,31,0 +2020-05-22,Cherokee,Alabama,01019,33,2 +2020-05-23,Cherokee,Alabama,01019,33,2 +2020-05-24,Cherokee,Alabama,01019,33,2 +2020-05-25,Cherokee,Alabama,01019,33,2 +2020-05-26,Cherokee,Alabama,01019,33,2 +2020-05-27,Cherokee,Alabama,01019,33,2 +2020-05-28,Cherokee,Alabama,01019,34,2 +2020-05-29,Cherokee,Alabama,01019,36,3 +2020-05-30,Cherokee,Alabama,01019,37,3 +2020-05-31,Cherokee,Alabama,01019,37,3 +2020-06-01,Cherokee,Alabama,01019,39,3 +2020-06-02,Cherokee,Alabama,01019,39,3 +2020-06-03,Cherokee,Alabama,01019,39,3 +2020-06-04,Cherokee,Alabama,01019,39,3 +2020-06-05,Cherokee,Alabama,01019,39,3 +2020-06-06,Cherokee,Alabama,01019,41,4 +2020-06-07,Cherokee,Alabama,01019,43,4 +2020-06-08,Cherokee,Alabama,01019,43,4 +2020-06-09,Cherokee,Alabama,01019,43,4 +2020-06-10,Cherokee,Alabama,01019,44,4 +2020-06-11,Cherokee,Alabama,01019,44,4 +2020-06-12,Cherokee,Alabama,01019,48,5 +2020-06-13,Cherokee,Alabama,01019,49,5 +2020-06-14,Cherokee,Alabama,01019,53,5 +2020-06-15,Cherokee,Alabama,01019,53,5 +2020-06-16,Cherokee,Alabama,01019,53,5 +2020-06-17,Cherokee,Alabama,01019,53,5 +2020-06-18,Cherokee,Alabama,01019,55,5 +2020-06-19,Cherokee,Alabama,01019,58,6 +2020-06-20,Cherokee,Alabama,01019,58,6 +2020-06-21,Cherokee,Alabama,01019,58,6 +2020-06-22,Cherokee,Alabama,01019,58,6 +2020-06-23,Cherokee,Alabama,01019,58,7 +2020-06-24,Cherokee,Alabama,01019,58,7 +2020-06-25,Cherokee,Alabama,01019,64,7 +2020-06-26,Cherokee,Alabama,01019,68,7 +2020-06-27,Cherokee,Alabama,01019,69,7 +2020-06-28,Cherokee,Alabama,01019,70,7 +2020-06-29,Cherokee,Alabama,01019,73,7 +2020-06-30,Cherokee,Alabama,01019,74,7 +2020-07-01,Cherokee,Alabama,01019,77,7 +2020-07-02,Cherokee,Alabama,01019,82,7 +2020-07-03,Cherokee,Alabama,01019,88,7 +2020-07-04,Cherokee,Alabama,01019,88,7 +2020-07-05,Cherokee,Alabama,01019,100,7 +2020-07-06,Cherokee,Alabama,01019,105,7 +2020-07-07,Cherokee,Alabama,01019,106,7 +2020-07-08,Cherokee,Alabama,01019,114,7 +2020-07-09,Cherokee,Alabama,01019,115,7 +2020-03-25,Chilton,Alabama,01021,1,0 +2020-03-26,Chilton,Alabama,01021,4,0 +2020-03-27,Chilton,Alabama,01021,7,0 +2020-03-28,Chilton,Alabama,01021,7,0 +2020-03-29,Chilton,Alabama,01021,8,0 +2020-03-30,Chilton,Alabama,01021,10,0 +2020-03-31,Chilton,Alabama,01021,11,0 +2020-04-01,Chilton,Alabama,01021,13,0 +2020-04-02,Chilton,Alabama,01021,14,0 +2020-04-03,Chilton,Alabama,01021,15,0 +2020-04-04,Chilton,Alabama,01021,15,0 +2020-04-05,Chilton,Alabama,01021,18,0 +2020-04-06,Chilton,Alabama,01021,20,0 +2020-04-07,Chilton,Alabama,01021,20,0 +2020-04-08,Chilton,Alabama,01021,22,0 +2020-04-09,Chilton,Alabama,01021,25,0 +2020-04-10,Chilton,Alabama,01021,27,0 +2020-04-11,Chilton,Alabama,01021,30,0 +2020-04-12,Chilton,Alabama,01021,30,0 +2020-04-13,Chilton,Alabama,01021,33,0 +2020-04-14,Chilton,Alabama,01021,33,0 +2020-04-15,Chilton,Alabama,01021,37,0 +2020-04-16,Chilton,Alabama,01021,37,0 +2020-04-17,Chilton,Alabama,01021,37,0 +2020-04-18,Chilton,Alabama,01021,39,0 +2020-04-19,Chilton,Alabama,01021,42,0 +2020-04-20,Chilton,Alabama,01021,43,0 +2020-04-21,Chilton,Alabama,01021,44,0 +2020-04-22,Chilton,Alabama,01021,46,1 +2020-04-23,Chilton,Alabama,01021,47,1 +2020-04-24,Chilton,Alabama,01021,49,1 +2020-04-25,Chilton,Alabama,01021,49,1 +2020-04-26,Chilton,Alabama,01021,51,1 +2020-04-27,Chilton,Alabama,01021,51,1 +2020-04-28,Chilton,Alabama,01021,52,1 +2020-04-29,Chilton,Alabama,01021,53,1 +2020-04-30,Chilton,Alabama,01021,53,1 +2020-05-01,Chilton,Alabama,01021,52,1 +2020-05-02,Chilton,Alabama,01021,54,1 +2020-05-03,Chilton,Alabama,01021,57,1 +2020-05-04,Chilton,Alabama,01021,58,1 +2020-05-05,Chilton,Alabama,01021,60,1 +2020-05-06,Chilton,Alabama,01021,61,1 +2020-05-07,Chilton,Alabama,01021,63,1 +2020-05-08,Chilton,Alabama,01021,63,1 +2020-05-09,Chilton,Alabama,01021,64,1 +2020-05-10,Chilton,Alabama,01021,65,1 +2020-05-11,Chilton,Alabama,01021,67,1 +2020-05-12,Chilton,Alabama,01021,69,1 +2020-05-13,Chilton,Alabama,01021,73,1 +2020-05-14,Chilton,Alabama,01021,74,1 +2020-05-15,Chilton,Alabama,01021,75,1 +2020-05-16,Chilton,Alabama,01021,77,1 +2020-05-17,Chilton,Alabama,01021,77,1 +2020-05-18,Chilton,Alabama,01021,79,1 +2020-05-19,Chilton,Alabama,01021,80,1 +2020-05-20,Chilton,Alabama,01021,83,1 +2020-05-21,Chilton,Alabama,01021,84,1 +2020-05-22,Chilton,Alabama,01021,85,1 +2020-05-23,Chilton,Alabama,01021,86,1 +2020-05-24,Chilton,Alabama,01021,87,1 +2020-05-25,Chilton,Alabama,01021,87,1 +2020-05-26,Chilton,Alabama,01021,90,1 +2020-05-27,Chilton,Alabama,01021,93,1 +2020-05-28,Chilton,Alabama,01021,97,1 +2020-05-29,Chilton,Alabama,01021,99,1 +2020-05-30,Chilton,Alabama,01021,100,1 +2020-05-31,Chilton,Alabama,01021,101,1 +2020-06-01,Chilton,Alabama,01021,107,1 +2020-06-02,Chilton,Alabama,01021,108,1 +2020-06-03,Chilton,Alabama,01021,109,1 +2020-06-04,Chilton,Alabama,01021,112,1 +2020-06-05,Chilton,Alabama,01021,113,1 +2020-06-06,Chilton,Alabama,01021,113,2 +2020-06-07,Chilton,Alabama,01021,115,2 +2020-06-08,Chilton,Alabama,01021,116,2 +2020-06-09,Chilton,Alabama,01021,122,2 +2020-06-10,Chilton,Alabama,01021,124,2 +2020-06-11,Chilton,Alabama,01021,127,2 +2020-06-12,Chilton,Alabama,01021,128,2 +2020-06-13,Chilton,Alabama,01021,134,2 +2020-06-14,Chilton,Alabama,01021,138,2 +2020-06-15,Chilton,Alabama,01021,141,2 +2020-06-16,Chilton,Alabama,01021,144,2 +2020-06-17,Chilton,Alabama,01021,149,2 +2020-06-18,Chilton,Alabama,01021,152,3 +2020-06-19,Chilton,Alabama,01021,158,3 +2020-06-20,Chilton,Alabama,01021,163,3 +2020-06-21,Chilton,Alabama,01021,166,3 +2020-06-22,Chilton,Alabama,01021,170,3 +2020-06-23,Chilton,Alabama,01021,176,3 +2020-06-24,Chilton,Alabama,01021,185,3 +2020-06-25,Chilton,Alabama,01021,185,3 +2020-06-26,Chilton,Alabama,01021,196,3 +2020-06-27,Chilton,Alabama,01021,201,3 +2020-06-28,Chilton,Alabama,01021,203,3 +2020-06-29,Chilton,Alabama,01021,211,3 +2020-06-30,Chilton,Alabama,01021,214,3 +2020-07-01,Chilton,Alabama,01021,219,3 +2020-07-02,Chilton,Alabama,01021,222,3 +2020-07-03,Chilton,Alabama,01021,235,3 +2020-07-04,Chilton,Alabama,01021,246,3 +2020-07-05,Chilton,Alabama,01021,253,3 +2020-07-06,Chilton,Alabama,01021,259,3 +2020-07-07,Chilton,Alabama,01021,270,3 +2020-07-08,Chilton,Alabama,01021,284,3 +2020-07-09,Chilton,Alabama,01021,295,3 +2020-03-26,Choctaw,Alabama,01023,1,0 +2020-03-27,Choctaw,Alabama,01023,1,0 +2020-03-28,Choctaw,Alabama,01023,1,0 +2020-03-29,Choctaw,Alabama,01023,1,0 +2020-03-30,Choctaw,Alabama,01023,2,0 +2020-03-31,Choctaw,Alabama,01023,3,0 +2020-04-01,Choctaw,Alabama,01023,4,0 +2020-04-02,Choctaw,Alabama,01023,4,0 +2020-04-03,Choctaw,Alabama,01023,4,0 +2020-04-04,Choctaw,Alabama,01023,4,0 +2020-04-05,Choctaw,Alabama,01023,5,0 +2020-04-06,Choctaw,Alabama,01023,6,0 +2020-04-07,Choctaw,Alabama,01023,6,0 +2020-04-08,Choctaw,Alabama,01023,6,0 +2020-04-09,Choctaw,Alabama,01023,6,0 +2020-04-10,Choctaw,Alabama,01023,7,0 +2020-04-11,Choctaw,Alabama,01023,9,0 +2020-04-12,Choctaw,Alabama,01023,10,0 +2020-04-13,Choctaw,Alabama,01023,10,0 +2020-04-14,Choctaw,Alabama,01023,12,0 +2020-04-15,Choctaw,Alabama,01023,13,0 +2020-04-16,Choctaw,Alabama,01023,13,0 +2020-04-17,Choctaw,Alabama,01023,13,0 +2020-04-18,Choctaw,Alabama,01023,14,0 +2020-04-19,Choctaw,Alabama,01023,14,0 +2020-04-20,Choctaw,Alabama,01023,17,0 +2020-04-21,Choctaw,Alabama,01023,18,0 +2020-04-22,Choctaw,Alabama,01023,21,0 +2020-04-23,Choctaw,Alabama,01023,22,0 +2020-04-24,Choctaw,Alabama,01023,25,0 +2020-04-25,Choctaw,Alabama,01023,27,0 +2020-04-26,Choctaw,Alabama,01023,32,0 +2020-04-27,Choctaw,Alabama,01023,39,0 +2020-04-28,Choctaw,Alabama,01023,39,0 +2020-04-29,Choctaw,Alabama,01023,39,0 +2020-04-30,Choctaw,Alabama,01023,43,0 +2020-05-01,Choctaw,Alabama,01023,49,0 +2020-05-02,Choctaw,Alabama,01023,49,0 +2020-05-03,Choctaw,Alabama,01023,49,0 +2020-05-04,Choctaw,Alabama,01023,51,0 +2020-05-05,Choctaw,Alabama,01023,54,0 +2020-05-06,Choctaw,Alabama,01023,54,0 +2020-05-07,Choctaw,Alabama,01023,56,0 +2020-05-08,Choctaw,Alabama,01023,59,0 +2020-05-09,Choctaw,Alabama,01023,61,0 +2020-05-10,Choctaw,Alabama,01023,66,0 +2020-05-11,Choctaw,Alabama,01023,67,0 +2020-05-12,Choctaw,Alabama,01023,69,1 +2020-05-13,Choctaw,Alabama,01023,72,2 +2020-05-14,Choctaw,Alabama,01023,77,3 +2020-05-15,Choctaw,Alabama,01023,81,3 +2020-05-16,Choctaw,Alabama,01023,84,3 +2020-05-17,Choctaw,Alabama,01023,84,3 +2020-05-18,Choctaw,Alabama,01023,85,3 +2020-05-19,Choctaw,Alabama,01023,92,3 +2020-05-20,Choctaw,Alabama,01023,129,3 +2020-05-21,Choctaw,Alabama,01023,133,3 +2020-05-22,Choctaw,Alabama,01023,135,4 +2020-05-23,Choctaw,Alabama,01023,140,4 +2020-05-24,Choctaw,Alabama,01023,141,4 +2020-05-25,Choctaw,Alabama,01023,144,4 +2020-05-26,Choctaw,Alabama,01023,147,7 +2020-05-27,Choctaw,Alabama,01023,148,7 +2020-05-28,Choctaw,Alabama,01023,148,8 +2020-05-29,Choctaw,Alabama,01023,149,8 +2020-05-30,Choctaw,Alabama,01023,151,8 +2020-05-31,Choctaw,Alabama,01023,153,8 +2020-06-01,Choctaw,Alabama,01023,154,10 +2020-06-02,Choctaw,Alabama,01023,154,10 +2020-06-03,Choctaw,Alabama,01023,154,10 +2020-06-04,Choctaw,Alabama,01023,154,10 +2020-06-05,Choctaw,Alabama,01023,154,10 +2020-06-06,Choctaw,Alabama,01023,156,10 +2020-06-07,Choctaw,Alabama,01023,156,10 +2020-06-08,Choctaw,Alabama,01023,157,10 +2020-06-09,Choctaw,Alabama,01023,158,10 +2020-06-10,Choctaw,Alabama,01023,159,11 +2020-06-11,Choctaw,Alabama,01023,163,11 +2020-06-12,Choctaw,Alabama,01023,167,11 +2020-06-13,Choctaw,Alabama,01023,168,11 +2020-06-14,Choctaw,Alabama,01023,176,11 +2020-06-15,Choctaw,Alabama,01023,176,11 +2020-06-16,Choctaw,Alabama,01023,178,11 +2020-06-17,Choctaw,Alabama,01023,181,11 +2020-06-18,Choctaw,Alabama,01023,183,11 +2020-06-19,Choctaw,Alabama,01023,186,11 +2020-06-20,Choctaw,Alabama,01023,186,12 +2020-06-21,Choctaw,Alabama,01023,186,12 +2020-06-22,Choctaw,Alabama,01023,186,12 +2020-06-23,Choctaw,Alabama,01023,186,12 +2020-06-24,Choctaw,Alabama,01023,186,12 +2020-06-25,Choctaw,Alabama,01023,188,12 +2020-06-26,Choctaw,Alabama,01023,189,12 +2020-06-27,Choctaw,Alabama,01023,189,12 +2020-06-28,Choctaw,Alabama,01023,189,12 +2020-06-29,Choctaw,Alabama,01023,192,12 +2020-06-30,Choctaw,Alabama,01023,192,12 +2020-07-01,Choctaw,Alabama,01023,193,12 +2020-07-02,Choctaw,Alabama,01023,193,12 +2020-07-03,Choctaw,Alabama,01023,196,12 +2020-07-04,Choctaw,Alabama,01023,196,12 +2020-07-05,Choctaw,Alabama,01023,196,12 +2020-07-06,Choctaw,Alabama,01023,196,12 +2020-07-07,Choctaw,Alabama,01023,198,12 +2020-07-08,Choctaw,Alabama,01023,200,12 +2020-07-09,Choctaw,Alabama,01023,203,12 +2020-04-01,Clarke,Alabama,01025,2,0 +2020-04-02,Clarke,Alabama,01025,2,0 +2020-04-03,Clarke,Alabama,01025,3,0 +2020-04-04,Clarke,Alabama,01025,7,0 +2020-04-05,Clarke,Alabama,01025,9,0 +2020-04-06,Clarke,Alabama,01025,9,0 +2020-04-07,Clarke,Alabama,01025,10,0 +2020-04-08,Clarke,Alabama,01025,10,0 +2020-04-09,Clarke,Alabama,01025,13,0 +2020-04-10,Clarke,Alabama,01025,13,0 +2020-04-11,Clarke,Alabama,01025,15,0 +2020-04-12,Clarke,Alabama,01025,19,0 +2020-04-13,Clarke,Alabama,01025,19,0 +2020-04-14,Clarke,Alabama,01025,21,0 +2020-04-15,Clarke,Alabama,01025,22,0 +2020-04-16,Clarke,Alabama,01025,24,0 +2020-04-17,Clarke,Alabama,01025,24,0 +2020-04-18,Clarke,Alabama,01025,24,0 +2020-04-19,Clarke,Alabama,01025,24,0 +2020-04-20,Clarke,Alabama,01025,24,1 +2020-04-21,Clarke,Alabama,01025,24,1 +2020-04-22,Clarke,Alabama,01025,25,1 +2020-04-23,Clarke,Alabama,01025,25,1 +2020-04-24,Clarke,Alabama,01025,24,1 +2020-04-25,Clarke,Alabama,01025,25,1 +2020-04-26,Clarke,Alabama,01025,25,1 +2020-04-27,Clarke,Alabama,01025,27,1 +2020-04-28,Clarke,Alabama,01025,28,1 +2020-04-29,Clarke,Alabama,01025,31,1 +2020-04-30,Clarke,Alabama,01025,32,1 +2020-05-01,Clarke,Alabama,01025,34,1 +2020-05-02,Clarke,Alabama,01025,38,1 +2020-05-03,Clarke,Alabama,01025,42,1 +2020-05-04,Clarke,Alabama,01025,43,1 +2020-05-05,Clarke,Alabama,01025,43,1 +2020-05-06,Clarke,Alabama,01025,45,1 +2020-05-07,Clarke,Alabama,01025,50,1 +2020-05-08,Clarke,Alabama,01025,53,1 +2020-05-09,Clarke,Alabama,01025,52,1 +2020-05-10,Clarke,Alabama,01025,56,1 +2020-05-11,Clarke,Alabama,01025,63,1 +2020-05-12,Clarke,Alabama,01025,64,1 +2020-05-13,Clarke,Alabama,01025,65,1 +2020-05-14,Clarke,Alabama,01025,68,2 +2020-05-15,Clarke,Alabama,01025,70,2 +2020-05-16,Clarke,Alabama,01025,74,2 +2020-05-17,Clarke,Alabama,01025,74,2 +2020-05-18,Clarke,Alabama,01025,75,2 +2020-05-19,Clarke,Alabama,01025,81,2 +2020-05-20,Clarke,Alabama,01025,89,2 +2020-05-21,Clarke,Alabama,01025,91,2 +2020-05-22,Clarke,Alabama,01025,92,2 +2020-05-23,Clarke,Alabama,01025,97,2 +2020-05-24,Clarke,Alabama,01025,102,2 +2020-05-25,Clarke,Alabama,01025,109,2 +2020-05-26,Clarke,Alabama,01025,120,2 +2020-05-27,Clarke,Alabama,01025,128,2 +2020-05-28,Clarke,Alabama,01025,129,2 +2020-05-29,Clarke,Alabama,01025,134,2 +2020-05-30,Clarke,Alabama,01025,142,2 +2020-05-31,Clarke,Alabama,01025,144,2 +2020-06-01,Clarke,Alabama,01025,147,2 +2020-06-02,Clarke,Alabama,01025,149,2 +2020-06-03,Clarke,Alabama,01025,150,2 +2020-06-04,Clarke,Alabama,01025,150,2 +2020-06-05,Clarke,Alabama,01025,150,2 +2020-06-06,Clarke,Alabama,01025,152,2 +2020-06-07,Clarke,Alabama,01025,157,2 +2020-06-08,Clarke,Alabama,01025,159,3 +2020-06-09,Clarke,Alabama,01025,162,3 +2020-06-10,Clarke,Alabama,01025,164,3 +2020-06-11,Clarke,Alabama,01025,166,3 +2020-06-12,Clarke,Alabama,01025,176,3 +2020-06-13,Clarke,Alabama,01025,180,3 +2020-06-14,Clarke,Alabama,01025,189,3 +2020-06-15,Clarke,Alabama,01025,192,3 +2020-06-16,Clarke,Alabama,01025,195,3 +2020-06-17,Clarke,Alabama,01025,198,3 +2020-06-18,Clarke,Alabama,01025,202,4 +2020-06-19,Clarke,Alabama,01025,209,4 +2020-06-20,Clarke,Alabama,01025,214,4 +2020-06-21,Clarke,Alabama,01025,216,4 +2020-06-22,Clarke,Alabama,01025,218,5 +2020-06-23,Clarke,Alabama,01025,222,4 +2020-06-24,Clarke,Alabama,01025,231,5 +2020-06-25,Clarke,Alabama,01025,244,5 +2020-06-26,Clarke,Alabama,01025,253,5 +2020-06-27,Clarke,Alabama,01025,257,5 +2020-06-28,Clarke,Alabama,01025,257,5 +2020-06-29,Clarke,Alabama,01025,262,5 +2020-06-30,Clarke,Alabama,01025,265,5 +2020-07-01,Clarke,Alabama,01025,267,5 +2020-07-02,Clarke,Alabama,01025,269,6 +2020-07-03,Clarke,Alabama,01025,273,6 +2020-07-04,Clarke,Alabama,01025,274,6 +2020-07-05,Clarke,Alabama,01025,275,6 +2020-07-06,Clarke,Alabama,01025,278,6 +2020-07-07,Clarke,Alabama,01025,284,6 +2020-07-08,Clarke,Alabama,01025,288,6 +2020-07-09,Clarke,Alabama,01025,295,6 +2020-03-25,Clay,Alabama,01027,1,0 +2020-03-26,Clay,Alabama,01027,1,0 +2020-03-27,Clay,Alabama,01027,1,0 +2020-03-28,Clay,Alabama,01027,2,0 +2020-03-29,Clay,Alabama,01027,2,0 +2020-03-30,Clay,Alabama,01027,2,0 +2020-03-31,Clay,Alabama,01027,2,0 +2020-04-01,Clay,Alabama,01027,3,0 +2020-04-02,Clay,Alabama,01027,7,0 +2020-04-03,Clay,Alabama,01027,8,0 +2020-04-04,Clay,Alabama,01027,9,0 +2020-04-05,Clay,Alabama,01027,9,0 +2020-04-06,Clay,Alabama,01027,9,0 +2020-04-07,Clay,Alabama,01027,9,0 +2020-04-08,Clay,Alabama,01027,11,0 +2020-04-09,Clay,Alabama,01027,11,0 +2020-04-10,Clay,Alabama,01027,11,0 +2020-04-11,Clay,Alabama,01027,12,0 +2020-04-12,Clay,Alabama,01027,14,0 +2020-04-13,Clay,Alabama,01027,14,0 +2020-04-14,Clay,Alabama,01027,14,0 +2020-04-15,Clay,Alabama,01027,14,0 +2020-04-16,Clay,Alabama,01027,14,0 +2020-04-17,Clay,Alabama,01027,14,0 +2020-04-18,Clay,Alabama,01027,17,0 +2020-04-19,Clay,Alabama,01027,18,0 +2020-04-20,Clay,Alabama,01027,19,0 +2020-04-21,Clay,Alabama,01027,19,0 +2020-04-22,Clay,Alabama,01027,19,0 +2020-04-23,Clay,Alabama,01027,19,1 +2020-04-24,Clay,Alabama,01027,19,1 +2020-04-25,Clay,Alabama,01027,19,1 +2020-04-26,Clay,Alabama,01027,19,1 +2020-04-27,Clay,Alabama,01027,19,1 +2020-04-28,Clay,Alabama,01027,19,1 +2020-04-29,Clay,Alabama,01027,21,1 +2020-04-30,Clay,Alabama,01027,21,1 +2020-05-01,Clay,Alabama,01027,21,1 +2020-05-02,Clay,Alabama,01027,21,1 +2020-05-03,Clay,Alabama,01027,22,1 +2020-05-04,Clay,Alabama,01027,22,1 +2020-05-05,Clay,Alabama,01027,24,1 +2020-05-06,Clay,Alabama,01027,25,1 +2020-05-07,Clay,Alabama,01027,25,1 +2020-05-08,Clay,Alabama,01027,26,1 +2020-05-09,Clay,Alabama,01027,26,1 +2020-05-10,Clay,Alabama,01027,26,1 +2020-05-11,Clay,Alabama,01027,27,1 +2020-05-12,Clay,Alabama,01027,27,1 +2020-05-13,Clay,Alabama,01027,27,1 +2020-05-14,Clay,Alabama,01027,27,2 +2020-05-15,Clay,Alabama,01027,27,2 +2020-05-16,Clay,Alabama,01027,27,2 +2020-05-17,Clay,Alabama,01027,27,2 +2020-05-18,Clay,Alabama,01027,27,2 +2020-05-19,Clay,Alabama,01027,27,2 +2020-05-20,Clay,Alabama,01027,27,2 +2020-05-21,Clay,Alabama,01027,27,2 +2020-05-22,Clay,Alabama,01027,27,2 +2020-05-23,Clay,Alabama,01027,27,2 +2020-05-24,Clay,Alabama,01027,27,2 +2020-05-25,Clay,Alabama,01027,27,2 +2020-05-26,Clay,Alabama,01027,27,2 +2020-05-27,Clay,Alabama,01027,27,2 +2020-05-28,Clay,Alabama,01027,27,2 +2020-05-29,Clay,Alabama,01027,27,2 +2020-05-30,Clay,Alabama,01027,27,2 +2020-05-31,Clay,Alabama,01027,27,2 +2020-06-01,Clay,Alabama,01027,28,2 +2020-06-02,Clay,Alabama,01027,28,2 +2020-06-03,Clay,Alabama,01027,28,2 +2020-06-04,Clay,Alabama,01027,28,2 +2020-06-05,Clay,Alabama,01027,28,2 +2020-06-06,Clay,Alabama,01027,29,2 +2020-06-07,Clay,Alabama,01027,29,2 +2020-06-08,Clay,Alabama,01027,29,2 +2020-06-09,Clay,Alabama,01027,30,2 +2020-06-10,Clay,Alabama,01027,30,2 +2020-06-11,Clay,Alabama,01027,30,2 +2020-06-12,Clay,Alabama,01027,30,2 +2020-06-13,Clay,Alabama,01027,30,2 +2020-06-14,Clay,Alabama,01027,30,2 +2020-06-15,Clay,Alabama,01027,30,2 +2020-06-16,Clay,Alabama,01027,30,2 +2020-06-17,Clay,Alabama,01027,30,2 +2020-06-18,Clay,Alabama,01027,30,2 +2020-06-19,Clay,Alabama,01027,30,2 +2020-06-20,Clay,Alabama,01027,31,2 +2020-06-21,Clay,Alabama,01027,32,2 +2020-06-22,Clay,Alabama,01027,33,2 +2020-06-23,Clay,Alabama,01027,34,2 +2020-06-24,Clay,Alabama,01027,34,2 +2020-06-25,Clay,Alabama,01027,35,2 +2020-06-26,Clay,Alabama,01027,35,2 +2020-06-27,Clay,Alabama,01027,35,2 +2020-06-28,Clay,Alabama,01027,35,2 +2020-06-29,Clay,Alabama,01027,48,2 +2020-06-30,Clay,Alabama,01027,53,2 +2020-07-01,Clay,Alabama,01027,58,2 +2020-07-02,Clay,Alabama,01027,61,2 +2020-07-03,Clay,Alabama,01027,62,2 +2020-07-04,Clay,Alabama,01027,64,2 +2020-07-05,Clay,Alabama,01027,65,2 +2020-07-06,Clay,Alabama,01027,69,2 +2020-07-07,Clay,Alabama,01027,69,2 +2020-07-08,Clay,Alabama,01027,69,2 +2020-07-09,Clay,Alabama,01027,74,2 +2020-03-25,Cleburne,Alabama,01029,1,0 +2020-03-26,Cleburne,Alabama,01029,1,0 +2020-03-27,Cleburne,Alabama,01029,3,0 +2020-03-28,Cleburne,Alabama,01029,4,0 +2020-03-29,Cleburne,Alabama,01029,5,0 +2020-03-30,Cleburne,Alabama,01029,5,0 +2020-03-31,Cleburne,Alabama,01029,5,0 +2020-04-01,Cleburne,Alabama,01029,6,0 +2020-04-02,Cleburne,Alabama,01029,6,0 +2020-04-03,Cleburne,Alabama,01029,7,0 +2020-04-04,Cleburne,Alabama,01029,7,0 +2020-04-05,Cleburne,Alabama,01029,7,0 +2020-04-06,Cleburne,Alabama,01029,9,0 +2020-04-07,Cleburne,Alabama,01029,12,0 +2020-04-08,Cleburne,Alabama,01029,12,0 +2020-04-09,Cleburne,Alabama,01029,12,0 +2020-04-10,Cleburne,Alabama,01029,12,0 +2020-04-11,Cleburne,Alabama,01029,12,0 +2020-04-12,Cleburne,Alabama,01029,12,0 +2020-04-13,Cleburne,Alabama,01029,12,0 +2020-04-14,Cleburne,Alabama,01029,12,0 +2020-04-15,Cleburne,Alabama,01029,12,0 +2020-04-16,Cleburne,Alabama,01029,12,0 +2020-04-17,Cleburne,Alabama,01029,12,0 +2020-04-18,Cleburne,Alabama,01029,12,0 +2020-04-19,Cleburne,Alabama,01029,12,1 +2020-04-20,Cleburne,Alabama,01029,12,1 +2020-04-21,Cleburne,Alabama,01029,12,1 +2020-04-22,Cleburne,Alabama,01029,12,1 +2020-04-23,Cleburne,Alabama,01029,12,1 +2020-04-24,Cleburne,Alabama,01029,12,1 +2020-04-25,Cleburne,Alabama,01029,12,1 +2020-04-26,Cleburne,Alabama,01029,12,1 +2020-04-27,Cleburne,Alabama,01029,12,1 +2020-04-28,Cleburne,Alabama,01029,12,1 +2020-04-29,Cleburne,Alabama,01029,12,1 +2020-04-30,Cleburne,Alabama,01029,12,1 +2020-05-01,Cleburne,Alabama,01029,12,1 +2020-05-02,Cleburne,Alabama,01029,12,1 +2020-05-03,Cleburne,Alabama,01029,12,1 +2020-05-04,Cleburne,Alabama,01029,12,1 +2020-05-05,Cleburne,Alabama,01029,13,1 +2020-05-06,Cleburne,Alabama,01029,13,1 +2020-05-07,Cleburne,Alabama,01029,13,1 +2020-05-08,Cleburne,Alabama,01029,13,1 +2020-05-09,Cleburne,Alabama,01029,13,1 +2020-05-10,Cleburne,Alabama,01029,13,1 +2020-05-11,Cleburne,Alabama,01029,13,1 +2020-05-12,Cleburne,Alabama,01029,13,1 +2020-05-13,Cleburne,Alabama,01029,13,1 +2020-05-14,Cleburne,Alabama,01029,13,1 +2020-05-15,Cleburne,Alabama,01029,13,1 +2020-05-16,Cleburne,Alabama,01029,13,1 +2020-05-17,Cleburne,Alabama,01029,13,1 +2020-05-18,Cleburne,Alabama,01029,13,1 +2020-05-19,Cleburne,Alabama,01029,13,1 +2020-05-20,Cleburne,Alabama,01029,13,1 +2020-05-21,Cleburne,Alabama,01029,13,1 +2020-05-22,Cleburne,Alabama,01029,13,1 +2020-05-23,Cleburne,Alabama,01029,13,1 +2020-05-24,Cleburne,Alabama,01029,13,1 +2020-05-25,Cleburne,Alabama,01029,13,1 +2020-05-26,Cleburne,Alabama,01029,13,1 +2020-05-27,Cleburne,Alabama,01029,13,1 +2020-05-28,Cleburne,Alabama,01029,13,1 +2020-05-29,Cleburne,Alabama,01029,14,1 +2020-05-30,Cleburne,Alabama,01029,14,1 +2020-05-31,Cleburne,Alabama,01029,15,1 +2020-06-01,Cleburne,Alabama,01029,15,1 +2020-06-02,Cleburne,Alabama,01029,15,1 +2020-06-03,Cleburne,Alabama,01029,15,1 +2020-06-04,Cleburne,Alabama,01029,15,1 +2020-06-05,Cleburne,Alabama,01029,15,1 +2020-06-06,Cleburne,Alabama,01029,15,1 +2020-06-07,Cleburne,Alabama,01029,18,1 +2020-06-08,Cleburne,Alabama,01029,19,1 +2020-06-09,Cleburne,Alabama,01029,19,1 +2020-06-10,Cleburne,Alabama,01029,19,1 +2020-06-11,Cleburne,Alabama,01029,20,1 +2020-06-12,Cleburne,Alabama,01029,20,1 +2020-06-13,Cleburne,Alabama,01029,20,1 +2020-06-14,Cleburne,Alabama,01029,21,1 +2020-06-15,Cleburne,Alabama,01029,22,1 +2020-06-16,Cleburne,Alabama,01029,22,1 +2020-06-17,Cleburne,Alabama,01029,22,1 +2020-06-18,Cleburne,Alabama,01029,22,1 +2020-06-19,Cleburne,Alabama,01029,22,1 +2020-06-20,Cleburne,Alabama,01029,22,1 +2020-06-21,Cleburne,Alabama,01029,22,1 +2020-06-22,Cleburne,Alabama,01029,22,1 +2020-06-23,Cleburne,Alabama,01029,23,1 +2020-06-24,Cleburne,Alabama,01029,23,1 +2020-06-25,Cleburne,Alabama,01029,23,1 +2020-06-26,Cleburne,Alabama,01029,24,1 +2020-06-27,Cleburne,Alabama,01029,25,1 +2020-06-28,Cleburne,Alabama,01029,25,1 +2020-06-29,Cleburne,Alabama,01029,30,1 +2020-06-30,Cleburne,Alabama,01029,29,1 +2020-07-01,Cleburne,Alabama,01029,29,1 +2020-07-02,Cleburne,Alabama,01029,30,1 +2020-07-03,Cleburne,Alabama,01029,36,1 +2020-07-04,Cleburne,Alabama,01029,36,1 +2020-07-05,Cleburne,Alabama,01029,36,1 +2020-07-06,Cleburne,Alabama,01029,38,1 +2020-07-07,Cleburne,Alabama,01029,39,1 +2020-07-08,Cleburne,Alabama,01029,39,1 +2020-07-09,Cleburne,Alabama,01029,41,1 +2020-04-02,Coffee,Alabama,01031,3,0 +2020-04-03,Coffee,Alabama,01031,6,0 +2020-04-04,Coffee,Alabama,01031,7,0 +2020-04-05,Coffee,Alabama,01031,7,0 +2020-04-06,Coffee,Alabama,01031,8,0 +2020-04-07,Coffee,Alabama,01031,8,0 +2020-04-08,Coffee,Alabama,01031,12,0 +2020-04-09,Coffee,Alabama,01031,14,0 +2020-04-10,Coffee,Alabama,01031,14,0 +2020-04-11,Coffee,Alabama,01031,20,0 +2020-04-12,Coffee,Alabama,01031,32,0 +2020-04-13,Coffee,Alabama,01031,36,0 +2020-04-14,Coffee,Alabama,01031,36,0 +2020-04-15,Coffee,Alabama,01031,43,0 +2020-04-16,Coffee,Alabama,01031,50,0 +2020-04-17,Coffee,Alabama,01031,50,0 +2020-04-18,Coffee,Alabama,01031,56,0 +2020-04-19,Coffee,Alabama,01031,59,0 +2020-04-20,Coffee,Alabama,01031,64,0 +2020-04-21,Coffee,Alabama,01031,68,1 +2020-04-22,Coffee,Alabama,01031,73,1 +2020-04-23,Coffee,Alabama,01031,80,1 +2020-04-24,Coffee,Alabama,01031,87,0 +2020-04-25,Coffee,Alabama,01031,88,0 +2020-04-26,Coffee,Alabama,01031,95,0 +2020-04-27,Coffee,Alabama,01031,98,0 +2020-04-28,Coffee,Alabama,01031,105,0 +2020-04-29,Coffee,Alabama,01031,107,0 +2020-04-30,Coffee,Alabama,01031,111,0 +2020-05-01,Coffee,Alabama,01031,117,0 +2020-05-02,Coffee,Alabama,01031,118,0 +2020-05-03,Coffee,Alabama,01031,130,0 +2020-05-04,Coffee,Alabama,01031,134,0 +2020-05-05,Coffee,Alabama,01031,134,0 +2020-05-06,Coffee,Alabama,01031,138,0 +2020-05-07,Coffee,Alabama,01031,141,0 +2020-05-08,Coffee,Alabama,01031,143,0 +2020-05-09,Coffee,Alabama,01031,146,0 +2020-05-10,Coffee,Alabama,01031,146,0 +2020-05-11,Coffee,Alabama,01031,150,0 +2020-05-12,Coffee,Alabama,01031,155,1 +2020-05-13,Coffee,Alabama,01031,158,1 +2020-05-14,Coffee,Alabama,01031,159,1 +2020-05-15,Coffee,Alabama,01031,162,1 +2020-05-16,Coffee,Alabama,01031,164,1 +2020-05-17,Coffee,Alabama,01031,166,1 +2020-05-18,Coffee,Alabama,01031,171,1 +2020-05-19,Coffee,Alabama,01031,175,1 +2020-05-20,Coffee,Alabama,01031,184,1 +2020-05-21,Coffee,Alabama,01031,184,1 +2020-05-22,Coffee,Alabama,01031,189,1 +2020-05-23,Coffee,Alabama,01031,196,1 +2020-05-24,Coffee,Alabama,01031,200,1 +2020-05-25,Coffee,Alabama,01031,206,1 +2020-05-26,Coffee,Alabama,01031,216,1 +2020-05-27,Coffee,Alabama,01031,219,1 +2020-05-28,Coffee,Alabama,01031,224,1 +2020-05-29,Coffee,Alabama,01031,226,1 +2020-05-30,Coffee,Alabama,01031,229,1 +2020-05-31,Coffee,Alabama,01031,236,1 +2020-06-01,Coffee,Alabama,01031,241,1 +2020-06-02,Coffee,Alabama,01031,241,1 +2020-06-03,Coffee,Alabama,01031,242,1 +2020-06-04,Coffee,Alabama,01031,242,1 +2020-06-05,Coffee,Alabama,01031,243,1 +2020-06-06,Coffee,Alabama,01031,247,1 +2020-06-07,Coffee,Alabama,01031,249,1 +2020-06-08,Coffee,Alabama,01031,251,1 +2020-06-09,Coffee,Alabama,01031,253,1 +2020-06-10,Coffee,Alabama,01031,254,1 +2020-06-11,Coffee,Alabama,01031,264,1 +2020-06-12,Coffee,Alabama,01031,269,1 +2020-06-13,Coffee,Alabama,01031,278,1 +2020-06-14,Coffee,Alabama,01031,286,1 +2020-06-15,Coffee,Alabama,01031,294,1 +2020-06-16,Coffee,Alabama,01031,300,1 +2020-06-17,Coffee,Alabama,01031,301,1 +2020-06-18,Coffee,Alabama,01031,304,1 +2020-06-19,Coffee,Alabama,01031,314,1 +2020-06-20,Coffee,Alabama,01031,315,1 +2020-06-21,Coffee,Alabama,01031,317,1 +2020-06-22,Coffee,Alabama,01031,317,1 +2020-06-23,Coffee,Alabama,01031,319,1 +2020-06-24,Coffee,Alabama,01031,330,1 +2020-06-25,Coffee,Alabama,01031,330,1 +2020-06-26,Coffee,Alabama,01031,338,1 +2020-06-27,Coffee,Alabama,01031,343,1 +2020-06-28,Coffee,Alabama,01031,344,1 +2020-06-29,Coffee,Alabama,01031,351,1 +2020-06-30,Coffee,Alabama,01031,357,2 +2020-07-01,Coffee,Alabama,01031,358,2 +2020-07-02,Coffee,Alabama,01031,364,2 +2020-07-03,Coffee,Alabama,01031,375,2 +2020-07-04,Coffee,Alabama,01031,378,2 +2020-07-05,Coffee,Alabama,01031,382,2 +2020-07-06,Coffee,Alabama,01031,386,2 +2020-07-07,Coffee,Alabama,01031,391,3 +2020-07-08,Coffee,Alabama,01031,397,3 +2020-07-09,Coffee,Alabama,01031,412,4 +2020-03-25,Colbert,Alabama,01033,1,0 +2020-03-26,Colbert,Alabama,01033,1,0 +2020-03-27,Colbert,Alabama,01033,1,0 +2020-03-28,Colbert,Alabama,01033,1,0 +2020-03-29,Colbert,Alabama,01033,2,0 +2020-03-30,Colbert,Alabama,01033,4,0 +2020-03-31,Colbert,Alabama,01033,4,0 +2020-04-01,Colbert,Alabama,01033,4,0 +2020-04-02,Colbert,Alabama,01033,5,0 +2020-04-03,Colbert,Alabama,01033,5,0 +2020-04-04,Colbert,Alabama,01033,5,0 +2020-04-05,Colbert,Alabama,01033,6,0 +2020-04-06,Colbert,Alabama,01033,7,1 +2020-04-07,Colbert,Alabama,01033,7,1 +2020-04-08,Colbert,Alabama,01033,7,1 +2020-04-09,Colbert,Alabama,01033,8,1 +2020-04-10,Colbert,Alabama,01033,8,1 +2020-04-11,Colbert,Alabama,01033,8,1 +2020-04-12,Colbert,Alabama,01033,9,1 +2020-04-13,Colbert,Alabama,01033,10,1 +2020-04-14,Colbert,Alabama,01033,11,1 +2020-04-15,Colbert,Alabama,01033,11,1 +2020-04-16,Colbert,Alabama,01033,13,1 +2020-04-17,Colbert,Alabama,01033,13,1 +2020-04-18,Colbert,Alabama,01033,15,1 +2020-04-19,Colbert,Alabama,01033,16,1 +2020-04-20,Colbert,Alabama,01033,16,1 +2020-04-21,Colbert,Alabama,01033,16,1 +2020-04-22,Colbert,Alabama,01033,20,1 +2020-04-23,Colbert,Alabama,01033,22,1 +2020-04-24,Colbert,Alabama,01033,23,2 +2020-04-25,Colbert,Alabama,01033,23,2 +2020-04-26,Colbert,Alabama,01033,23,2 +2020-04-27,Colbert,Alabama,01033,23,2 +2020-04-28,Colbert,Alabama,01033,27,2 +2020-04-29,Colbert,Alabama,01033,29,2 +2020-04-30,Colbert,Alabama,01033,29,2 +2020-05-01,Colbert,Alabama,01033,33,2 +2020-05-02,Colbert,Alabama,01033,37,2 +2020-05-03,Colbert,Alabama,01033,41,2 +2020-05-04,Colbert,Alabama,01033,41,2 +2020-05-05,Colbert,Alabama,01033,42,2 +2020-05-06,Colbert,Alabama,01033,44,2 +2020-05-07,Colbert,Alabama,01033,51,2 +2020-05-08,Colbert,Alabama,01033,63,2 +2020-05-09,Colbert,Alabama,01033,64,2 +2020-05-10,Colbert,Alabama,01033,66,2 +2020-05-11,Colbert,Alabama,01033,70,2 +2020-05-12,Colbert,Alabama,01033,72,2 +2020-05-13,Colbert,Alabama,01033,74,2 +2020-05-14,Colbert,Alabama,01033,79,2 +2020-05-15,Colbert,Alabama,01033,83,2 +2020-05-16,Colbert,Alabama,01033,87,2 +2020-05-17,Colbert,Alabama,01033,91,2 +2020-05-18,Colbert,Alabama,01033,93,2 +2020-05-19,Colbert,Alabama,01033,98,2 +2020-05-20,Colbert,Alabama,01033,110,2 +2020-05-21,Colbert,Alabama,01033,112,2 +2020-05-22,Colbert,Alabama,01033,117,2 +2020-05-23,Colbert,Alabama,01033,125,2 +2020-05-24,Colbert,Alabama,01033,136,2 +2020-05-25,Colbert,Alabama,01033,142,2 +2020-05-26,Colbert,Alabama,01033,155,2 +2020-05-27,Colbert,Alabama,01033,161,2 +2020-05-28,Colbert,Alabama,01033,161,2 +2020-05-29,Colbert,Alabama,01033,165,2 +2020-05-30,Colbert,Alabama,01033,178,2 +2020-05-31,Colbert,Alabama,01033,184,2 +2020-06-01,Colbert,Alabama,01033,189,2 +2020-06-02,Colbert,Alabama,01033,190,2 +2020-06-03,Colbert,Alabama,01033,190,2 +2020-06-04,Colbert,Alabama,01033,194,2 +2020-06-05,Colbert,Alabama,01033,201,2 +2020-06-06,Colbert,Alabama,01033,211,4 +2020-06-07,Colbert,Alabama,01033,214,4 +2020-06-08,Colbert,Alabama,01033,217,4 +2020-06-09,Colbert,Alabama,01033,222,5 +2020-06-10,Colbert,Alabama,01033,226,5 +2020-06-11,Colbert,Alabama,01033,238,5 +2020-06-12,Colbert,Alabama,01033,248,5 +2020-06-13,Colbert,Alabama,01033,256,5 +2020-06-14,Colbert,Alabama,01033,260,5 +2020-06-15,Colbert,Alabama,01033,272,5 +2020-06-16,Colbert,Alabama,01033,276,5 +2020-06-17,Colbert,Alabama,01033,283,5 +2020-06-18,Colbert,Alabama,01033,291,5 +2020-06-19,Colbert,Alabama,01033,297,5 +2020-06-20,Colbert,Alabama,01033,302,5 +2020-06-21,Colbert,Alabama,01033,304,5 +2020-06-22,Colbert,Alabama,01033,305,5 +2020-06-23,Colbert,Alabama,01033,310,5 +2020-06-24,Colbert,Alabama,01033,323,5 +2020-06-25,Colbert,Alabama,01033,332,5 +2020-06-26,Colbert,Alabama,01033,342,5 +2020-06-27,Colbert,Alabama,01033,350,5 +2020-06-28,Colbert,Alabama,01033,356,5 +2020-06-29,Colbert,Alabama,01033,367,5 +2020-06-30,Colbert,Alabama,01033,372,5 +2020-07-01,Colbert,Alabama,01033,377,5 +2020-07-02,Colbert,Alabama,01033,386,5 +2020-07-03,Colbert,Alabama,01033,392,6 +2020-07-04,Colbert,Alabama,01033,400,6 +2020-07-05,Colbert,Alabama,01033,404,6 +2020-07-06,Colbert,Alabama,01033,417,6 +2020-07-07,Colbert,Alabama,01033,435,6 +2020-07-08,Colbert,Alabama,01033,451,6 +2020-07-09,Colbert,Alabama,01033,474,6 +2020-04-01,Conecuh,Alabama,01035,1,0 +2020-04-02,Conecuh,Alabama,01035,1,0 +2020-04-03,Conecuh,Alabama,01035,1,0 +2020-04-04,Conecuh,Alabama,01035,2,0 +2020-04-05,Conecuh,Alabama,01035,2,0 +2020-04-06,Conecuh,Alabama,01035,2,0 +2020-04-07,Conecuh,Alabama,01035,2,0 +2020-04-08,Conecuh,Alabama,01035,4,0 +2020-04-09,Conecuh,Alabama,01035,3,0 +2020-04-10,Conecuh,Alabama,01035,3,0 +2020-04-11,Conecuh,Alabama,01035,3,0 +2020-04-12,Conecuh,Alabama,01035,5,0 +2020-04-13,Conecuh,Alabama,01035,5,0 +2020-04-14,Conecuh,Alabama,01035,5,0 +2020-04-15,Conecuh,Alabama,01035,6,0 +2020-04-16,Conecuh,Alabama,01035,8,0 +2020-04-17,Conecuh,Alabama,01035,8,0 +2020-04-18,Conecuh,Alabama,01035,10,0 +2020-04-19,Conecuh,Alabama,01035,10,0 +2020-04-20,Conecuh,Alabama,01035,9,0 +2020-04-21,Conecuh,Alabama,01035,9,0 +2020-04-22,Conecuh,Alabama,01035,9,0 +2020-04-23,Conecuh,Alabama,01035,9,0 +2020-04-24,Conecuh,Alabama,01035,9,0 +2020-04-25,Conecuh,Alabama,01035,9,0 +2020-04-26,Conecuh,Alabama,01035,9,0 +2020-04-27,Conecuh,Alabama,01035,9,0 +2020-04-28,Conecuh,Alabama,01035,9,0 +2020-04-29,Conecuh,Alabama,01035,9,0 +2020-04-30,Conecuh,Alabama,01035,9,0 +2020-05-01,Conecuh,Alabama,01035,9,0 +2020-05-02,Conecuh,Alabama,01035,9,0 +2020-05-03,Conecuh,Alabama,01035,9,0 +2020-05-04,Conecuh,Alabama,01035,9,0 +2020-05-05,Conecuh,Alabama,01035,9,0 +2020-05-06,Conecuh,Alabama,01035,9,0 +2020-05-07,Conecuh,Alabama,01035,12,0 +2020-05-08,Conecuh,Alabama,01035,12,0 +2020-05-09,Conecuh,Alabama,01035,13,0 +2020-05-10,Conecuh,Alabama,01035,13,0 +2020-05-11,Conecuh,Alabama,01035,14,0 +2020-05-12,Conecuh,Alabama,01035,14,0 +2020-05-13,Conecuh,Alabama,01035,16,0 +2020-05-14,Conecuh,Alabama,01035,17,0 +2020-05-15,Conecuh,Alabama,01035,18,0 +2020-05-16,Conecuh,Alabama,01035,18,0 +2020-05-17,Conecuh,Alabama,01035,18,0 +2020-05-18,Conecuh,Alabama,01035,19,0 +2020-05-19,Conecuh,Alabama,01035,21,0 +2020-05-20,Conecuh,Alabama,01035,22,0 +2020-05-21,Conecuh,Alabama,01035,23,1 +2020-05-22,Conecuh,Alabama,01035,24,1 +2020-05-23,Conecuh,Alabama,01035,25,1 +2020-05-24,Conecuh,Alabama,01035,25,1 +2020-05-25,Conecuh,Alabama,01035,28,1 +2020-05-26,Conecuh,Alabama,01035,30,1 +2020-05-27,Conecuh,Alabama,01035,35,1 +2020-05-28,Conecuh,Alabama,01035,35,1 +2020-05-29,Conecuh,Alabama,01035,38,1 +2020-05-30,Conecuh,Alabama,01035,39,1 +2020-05-31,Conecuh,Alabama,01035,41,1 +2020-06-01,Conecuh,Alabama,01035,41,1 +2020-06-02,Conecuh,Alabama,01035,41,1 +2020-06-03,Conecuh,Alabama,01035,41,1 +2020-06-04,Conecuh,Alabama,01035,41,1 +2020-06-05,Conecuh,Alabama,01035,42,1 +2020-06-06,Conecuh,Alabama,01035,46,1 +2020-06-07,Conecuh,Alabama,01035,51,1 +2020-06-08,Conecuh,Alabama,01035,54,1 +2020-06-09,Conecuh,Alabama,01035,57,1 +2020-06-10,Conecuh,Alabama,01035,66,1 +2020-06-11,Conecuh,Alabama,01035,72,1 +2020-06-12,Conecuh,Alabama,01035,78,1 +2020-06-13,Conecuh,Alabama,01035,85,1 +2020-06-14,Conecuh,Alabama,01035,95,1 +2020-06-15,Conecuh,Alabama,01035,102,1 +2020-06-16,Conecuh,Alabama,01035,109,1 +2020-06-17,Conecuh,Alabama,01035,111,1 +2020-06-18,Conecuh,Alabama,01035,123,1 +2020-06-19,Conecuh,Alabama,01035,134,1 +2020-06-20,Conecuh,Alabama,01035,137,1 +2020-06-21,Conecuh,Alabama,01035,140,1 +2020-06-22,Conecuh,Alabama,01035,143,1 +2020-06-23,Conecuh,Alabama,01035,146,1 +2020-06-24,Conecuh,Alabama,01035,153,3 +2020-06-25,Conecuh,Alabama,01035,155,3 +2020-06-26,Conecuh,Alabama,01035,161,3 +2020-06-27,Conecuh,Alabama,01035,165,3 +2020-06-28,Conecuh,Alabama,01035,165,3 +2020-06-29,Conecuh,Alabama,01035,178,4 +2020-06-30,Conecuh,Alabama,01035,180,6 +2020-07-01,Conecuh,Alabama,01035,182,4 +2020-07-02,Conecuh,Alabama,01035,188,6 +2020-07-03,Conecuh,Alabama,01035,199,7 +2020-07-04,Conecuh,Alabama,01035,206,7 +2020-07-05,Conecuh,Alabama,01035,211,7 +2020-07-06,Conecuh,Alabama,01035,212,7 +2020-07-07,Conecuh,Alabama,01035,219,7 +2020-07-08,Conecuh,Alabama,01035,220,7 +2020-07-09,Conecuh,Alabama,01035,229,7 +2020-03-26,Coosa,Alabama,01037,2,0 +2020-03-27,Coosa,Alabama,01037,2,0 +2020-03-28,Coosa,Alabama,01037,2,0 +2020-03-29,Coosa,Alabama,01037,3,0 +2020-03-30,Coosa,Alabama,01037,4,0 +2020-03-31,Coosa,Alabama,01037,4,0 +2020-04-01,Coosa,Alabama,01037,4,0 +2020-04-02,Coosa,Alabama,01037,6,0 +2020-04-03,Coosa,Alabama,01037,6,0 +2020-04-04,Coosa,Alabama,01037,6,0 +2020-04-05,Coosa,Alabama,01037,7,0 +2020-04-06,Coosa,Alabama,01037,8,0 +2020-04-07,Coosa,Alabama,01037,9,0 +2020-04-08,Coosa,Alabama,01037,9,0 +2020-04-09,Coosa,Alabama,01037,10,0 +2020-04-10,Coosa,Alabama,01037,10,0 +2020-04-11,Coosa,Alabama,01037,11,0 +2020-04-12,Coosa,Alabama,01037,18,0 +2020-04-13,Coosa,Alabama,01037,18,1 +2020-04-14,Coosa,Alabama,01037,18,1 +2020-04-15,Coosa,Alabama,01037,20,1 +2020-04-16,Coosa,Alabama,01037,20,1 +2020-04-17,Coosa,Alabama,01037,20,1 +2020-04-18,Coosa,Alabama,01037,22,1 +2020-04-19,Coosa,Alabama,01037,22,1 +2020-04-20,Coosa,Alabama,01037,23,1 +2020-04-21,Coosa,Alabama,01037,24,1 +2020-04-22,Coosa,Alabama,01037,24,1 +2020-04-23,Coosa,Alabama,01037,28,1 +2020-04-24,Coosa,Alabama,01037,29,1 +2020-04-25,Coosa,Alabama,01037,29,1 +2020-04-26,Coosa,Alabama,01037,29,1 +2020-04-27,Coosa,Alabama,01037,30,1 +2020-04-28,Coosa,Alabama,01037,31,1 +2020-04-29,Coosa,Alabama,01037,31,1 +2020-04-30,Coosa,Alabama,01037,29,1 +2020-05-01,Coosa,Alabama,01037,29,1 +2020-05-02,Coosa,Alabama,01037,30,1 +2020-05-03,Coosa,Alabama,01037,30,1 +2020-05-04,Coosa,Alabama,01037,30,1 +2020-05-05,Coosa,Alabama,01037,31,1 +2020-05-06,Coosa,Alabama,01037,31,1 +2020-05-07,Coosa,Alabama,01037,31,1 +2020-05-08,Coosa,Alabama,01037,31,1 +2020-05-09,Coosa,Alabama,01037,31,1 +2020-05-10,Coosa,Alabama,01037,31,1 +2020-05-11,Coosa,Alabama,01037,33,1 +2020-05-12,Coosa,Alabama,01037,33,1 +2020-05-13,Coosa,Alabama,01037,33,1 +2020-05-14,Coosa,Alabama,01037,34,1 +2020-05-15,Coosa,Alabama,01037,34,1 +2020-05-16,Coosa,Alabama,01037,34,1 +2020-05-17,Coosa,Alabama,01037,34,1 +2020-05-18,Coosa,Alabama,01037,34,1 +2020-05-19,Coosa,Alabama,01037,33,1 +2020-05-20,Coosa,Alabama,01037,33,1 +2020-05-21,Coosa,Alabama,01037,33,1 +2020-05-22,Coosa,Alabama,01037,33,1 +2020-05-23,Coosa,Alabama,01037,33,1 +2020-05-24,Coosa,Alabama,01037,33,1 +2020-05-25,Coosa,Alabama,01037,34,1 +2020-05-26,Coosa,Alabama,01037,34,1 +2020-05-27,Coosa,Alabama,01037,34,1 +2020-05-28,Coosa,Alabama,01037,35,1 +2020-05-29,Coosa,Alabama,01037,38,1 +2020-05-30,Coosa,Alabama,01037,38,1 +2020-05-31,Coosa,Alabama,01037,40,1 +2020-06-01,Coosa,Alabama,01037,40,1 +2020-06-02,Coosa,Alabama,01037,40,1 +2020-06-03,Coosa,Alabama,01037,40,1 +2020-06-04,Coosa,Alabama,01037,40,1 +2020-06-05,Coosa,Alabama,01037,40,1 +2020-06-06,Coosa,Alabama,01037,40,1 +2020-06-07,Coosa,Alabama,01037,40,1 +2020-06-08,Coosa,Alabama,01037,40,1 +2020-06-09,Coosa,Alabama,01037,40,1 +2020-06-10,Coosa,Alabama,01037,41,1 +2020-06-11,Coosa,Alabama,01037,43,1 +2020-06-12,Coosa,Alabama,01037,43,1 +2020-06-13,Coosa,Alabama,01037,45,1 +2020-06-14,Coosa,Alabama,01037,46,1 +2020-06-15,Coosa,Alabama,01037,46,1 +2020-06-16,Coosa,Alabama,01037,46,1 +2020-06-17,Coosa,Alabama,01037,46,1 +2020-06-18,Coosa,Alabama,01037,46,1 +2020-06-19,Coosa,Alabama,01037,48,1 +2020-06-20,Coosa,Alabama,01037,50,1 +2020-06-21,Coosa,Alabama,01037,50,1 +2020-06-22,Coosa,Alabama,01037,50,1 +2020-06-23,Coosa,Alabama,01037,52,1 +2020-06-24,Coosa,Alabama,01037,52,1 +2020-06-25,Coosa,Alabama,01037,54,1 +2020-06-26,Coosa,Alabama,01037,54,1 +2020-06-27,Coosa,Alabama,01037,55,1 +2020-06-28,Coosa,Alabama,01037,55,1 +2020-06-29,Coosa,Alabama,01037,55,1 +2020-06-30,Coosa,Alabama,01037,55,1 +2020-07-01,Coosa,Alabama,01037,55,1 +2020-07-02,Coosa,Alabama,01037,57,1 +2020-07-03,Coosa,Alabama,01037,58,1 +2020-07-04,Coosa,Alabama,01037,58,1 +2020-07-05,Coosa,Alabama,01037,58,1 +2020-07-06,Coosa,Alabama,01037,59,1 +2020-07-07,Coosa,Alabama,01037,59,1 +2020-07-08,Coosa,Alabama,01037,60,1 +2020-07-09,Coosa,Alabama,01037,62,1 +2020-03-27,Covington,Alabama,01039,2,0 +2020-03-28,Covington,Alabama,01039,2,0 +2020-03-29,Covington,Alabama,01039,2,0 +2020-03-30,Covington,Alabama,01039,2,0 +2020-03-31,Covington,Alabama,01039,2,0 +2020-04-01,Covington,Alabama,01039,3,0 +2020-04-02,Covington,Alabama,01039,3,0 +2020-04-03,Covington,Alabama,01039,4,0 +2020-04-04,Covington,Alabama,01039,4,0 +2020-04-05,Covington,Alabama,01039,4,0 +2020-04-06,Covington,Alabama,01039,5,0 +2020-04-07,Covington,Alabama,01039,5,0 +2020-04-08,Covington,Alabama,01039,10,0 +2020-04-09,Covington,Alabama,01039,10,0 +2020-04-10,Covington,Alabama,01039,10,0 +2020-04-11,Covington,Alabama,01039,11,0 +2020-04-12,Covington,Alabama,01039,13,0 +2020-04-13,Covington,Alabama,01039,13,0 +2020-04-14,Covington,Alabama,01039,16,0 +2020-04-15,Covington,Alabama,01039,18,0 +2020-04-16,Covington,Alabama,01039,19,1 +2020-04-17,Covington,Alabama,01039,19,1 +2020-04-18,Covington,Alabama,01039,21,1 +2020-04-19,Covington,Alabama,01039,22,1 +2020-04-20,Covington,Alabama,01039,24,0 +2020-04-21,Covington,Alabama,01039,26,0 +2020-04-22,Covington,Alabama,01039,27,0 +2020-04-23,Covington,Alabama,01039,29,0 +2020-04-24,Covington,Alabama,01039,31,0 +2020-04-25,Covington,Alabama,01039,32,0 +2020-04-26,Covington,Alabama,01039,33,1 +2020-04-27,Covington,Alabama,01039,34,1 +2020-04-28,Covington,Alabama,01039,35,1 +2020-04-29,Covington,Alabama,01039,36,1 +2020-04-30,Covington,Alabama,01039,36,1 +2020-05-01,Covington,Alabama,01039,38,1 +2020-05-02,Covington,Alabama,01039,43,1 +2020-05-03,Covington,Alabama,01039,45,1 +2020-05-04,Covington,Alabama,01039,45,1 +2020-05-05,Covington,Alabama,01039,46,1 +2020-05-06,Covington,Alabama,01039,46,1 +2020-05-07,Covington,Alabama,01039,48,1 +2020-05-08,Covington,Alabama,01039,50,1 +2020-05-09,Covington,Alabama,01039,50,1 +2020-05-10,Covington,Alabama,01039,53,1 +2020-05-11,Covington,Alabama,01039,55,1 +2020-05-12,Covington,Alabama,01039,56,1 +2020-05-13,Covington,Alabama,01039,56,1 +2020-05-14,Covington,Alabama,01039,56,1 +2020-05-15,Covington,Alabama,01039,56,1 +2020-05-16,Covington,Alabama,01039,57,1 +2020-05-17,Covington,Alabama,01039,57,1 +2020-05-18,Covington,Alabama,01039,58,1 +2020-05-19,Covington,Alabama,01039,58,1 +2020-05-20,Covington,Alabama,01039,59,1 +2020-05-21,Covington,Alabama,01039,62,1 +2020-05-22,Covington,Alabama,01039,63,1 +2020-05-23,Covington,Alabama,01039,63,1 +2020-05-24,Covington,Alabama,01039,65,1 +2020-05-25,Covington,Alabama,01039,67,1 +2020-05-26,Covington,Alabama,01039,71,1 +2020-05-27,Covington,Alabama,01039,75,1 +2020-05-28,Covington,Alabama,01039,77,1 +2020-05-29,Covington,Alabama,01039,77,1 +2020-05-30,Covington,Alabama,01039,77,1 +2020-05-31,Covington,Alabama,01039,80,1 +2020-06-01,Covington,Alabama,01039,86,1 +2020-06-02,Covington,Alabama,01039,86,1 +2020-06-03,Covington,Alabama,01039,86,1 +2020-06-04,Covington,Alabama,01039,87,1 +2020-06-05,Covington,Alabama,01039,88,1 +2020-06-06,Covington,Alabama,01039,89,1 +2020-06-07,Covington,Alabama,01039,93,1 +2020-06-08,Covington,Alabama,01039,93,1 +2020-06-09,Covington,Alabama,01039,94,1 +2020-06-10,Covington,Alabama,01039,97,1 +2020-06-11,Covington,Alabama,01039,103,1 +2020-06-12,Covington,Alabama,01039,111,1 +2020-06-13,Covington,Alabama,01039,121,1 +2020-06-14,Covington,Alabama,01039,169,1 +2020-06-15,Covington,Alabama,01039,176,1 +2020-06-16,Covington,Alabama,01039,185,1 +2020-06-17,Covington,Alabama,01039,187,1 +2020-06-18,Covington,Alabama,01039,203,1 +2020-06-19,Covington,Alabama,01039,217,1 +2020-06-20,Covington,Alabama,01039,224,1 +2020-06-21,Covington,Alabama,01039,228,1 +2020-06-22,Covington,Alabama,01039,229,2 +2020-06-23,Covington,Alabama,01039,243,2 +2020-06-24,Covington,Alabama,01039,260,5 +2020-06-25,Covington,Alabama,01039,276,4 +2020-06-26,Covington,Alabama,01039,286,5 +2020-06-27,Covington,Alabama,01039,300,5 +2020-06-28,Covington,Alabama,01039,301,5 +2020-06-29,Covington,Alabama,01039,309,5 +2020-06-30,Covington,Alabama,01039,316,7 +2020-07-01,Covington,Alabama,01039,317,8 +2020-07-02,Covington,Alabama,01039,340,8 +2020-07-03,Covington,Alabama,01039,351,8 +2020-07-04,Covington,Alabama,01039,362,8 +2020-07-05,Covington,Alabama,01039,366,8 +2020-07-06,Covington,Alabama,01039,378,8 +2020-07-07,Covington,Alabama,01039,380,8 +2020-07-08,Covington,Alabama,01039,390,11 +2020-07-09,Covington,Alabama,01039,412,12 +2020-03-26,Crenshaw,Alabama,01041,1,0 +2020-03-27,Crenshaw,Alabama,01041,1,0 +2020-03-28,Crenshaw,Alabama,01041,1,0 +2020-03-29,Crenshaw,Alabama,01041,1,0 +2020-03-30,Crenshaw,Alabama,01041,1,0 +2020-03-31,Crenshaw,Alabama,01041,1,0 +2020-04-01,Crenshaw,Alabama,01041,1,0 +2020-04-02,Crenshaw,Alabama,01041,1,0 +2020-04-03,Crenshaw,Alabama,01041,1,0 +2020-04-04,Crenshaw,Alabama,01041,2,0 +2020-04-05,Crenshaw,Alabama,01041,2,0 +2020-04-06,Crenshaw,Alabama,01041,2,0 +2020-04-07,Crenshaw,Alabama,01041,2,0 +2020-04-08,Crenshaw,Alabama,01041,2,0 +2020-04-09,Crenshaw,Alabama,01041,2,0 +2020-04-10,Crenshaw,Alabama,01041,2,0 +2020-04-11,Crenshaw,Alabama,01041,2,0 +2020-04-12,Crenshaw,Alabama,01041,3,0 +2020-04-13,Crenshaw,Alabama,01041,3,0 +2020-04-14,Crenshaw,Alabama,01041,3,0 +2020-04-15,Crenshaw,Alabama,01041,4,0 +2020-04-16,Crenshaw,Alabama,01041,5,0 +2020-04-17,Crenshaw,Alabama,01041,5,0 +2020-04-18,Crenshaw,Alabama,01041,6,0 +2020-04-19,Crenshaw,Alabama,01041,6,0 +2020-04-20,Crenshaw,Alabama,01041,6,0 +2020-04-21,Crenshaw,Alabama,01041,6,0 +2020-04-22,Crenshaw,Alabama,01041,6,0 +2020-04-23,Crenshaw,Alabama,01041,8,0 +2020-04-24,Crenshaw,Alabama,01041,10,0 +2020-04-25,Crenshaw,Alabama,01041,10,0 +2020-04-26,Crenshaw,Alabama,01041,11,0 +2020-04-27,Crenshaw,Alabama,01041,12,0 +2020-04-28,Crenshaw,Alabama,01041,16,0 +2020-04-29,Crenshaw,Alabama,01041,17,0 +2020-04-30,Crenshaw,Alabama,01041,19,0 +2020-05-01,Crenshaw,Alabama,01041,19,0 +2020-05-02,Crenshaw,Alabama,01041,21,0 +2020-05-03,Crenshaw,Alabama,01041,23,0 +2020-05-04,Crenshaw,Alabama,01041,25,0 +2020-05-05,Crenshaw,Alabama,01041,26,0 +2020-05-06,Crenshaw,Alabama,01041,28,0 +2020-05-07,Crenshaw,Alabama,01041,31,0 +2020-05-08,Crenshaw,Alabama,01041,33,0 +2020-05-09,Crenshaw,Alabama,01041,38,0 +2020-05-10,Crenshaw,Alabama,01041,41,0 +2020-05-11,Crenshaw,Alabama,01041,43,1 +2020-05-12,Crenshaw,Alabama,01041,46,1 +2020-05-13,Crenshaw,Alabama,01041,48,1 +2020-05-14,Crenshaw,Alabama,01041,50,1 +2020-05-15,Crenshaw,Alabama,01041,53,1 +2020-05-16,Crenshaw,Alabama,01041,53,1 +2020-05-17,Crenshaw,Alabama,01041,53,1 +2020-05-18,Crenshaw,Alabama,01041,53,1 +2020-05-19,Crenshaw,Alabama,01041,53,3 +2020-05-20,Crenshaw,Alabama,01041,52,2 +2020-05-21,Crenshaw,Alabama,01041,52,2 +2020-05-22,Crenshaw,Alabama,01041,53,2 +2020-05-23,Crenshaw,Alabama,01041,58,2 +2020-05-24,Crenshaw,Alabama,01041,58,2 +2020-05-25,Crenshaw,Alabama,01041,60,2 +2020-05-26,Crenshaw,Alabama,01041,62,2 +2020-05-27,Crenshaw,Alabama,01041,66,2 +2020-05-28,Crenshaw,Alabama,01041,72,2 +2020-05-29,Crenshaw,Alabama,01041,73,3 +2020-05-30,Crenshaw,Alabama,01041,76,3 +2020-05-31,Crenshaw,Alabama,01041,75,3 +2020-06-01,Crenshaw,Alabama,01041,78,3 +2020-06-02,Crenshaw,Alabama,01041,81,3 +2020-06-03,Crenshaw,Alabama,01041,81,3 +2020-06-04,Crenshaw,Alabama,01041,81,3 +2020-06-05,Crenshaw,Alabama,01041,83,3 +2020-06-06,Crenshaw,Alabama,01041,86,3 +2020-06-07,Crenshaw,Alabama,01041,87,3 +2020-06-08,Crenshaw,Alabama,01041,91,3 +2020-06-09,Crenshaw,Alabama,01041,92,3 +2020-06-10,Crenshaw,Alabama,01041,99,3 +2020-06-11,Crenshaw,Alabama,01041,102,3 +2020-06-12,Crenshaw,Alabama,01041,108,3 +2020-06-13,Crenshaw,Alabama,01041,110,3 +2020-06-14,Crenshaw,Alabama,01041,113,3 +2020-06-15,Crenshaw,Alabama,01041,115,3 +2020-06-16,Crenshaw,Alabama,01041,116,3 +2020-06-17,Crenshaw,Alabama,01041,116,3 +2020-06-18,Crenshaw,Alabama,01041,116,3 +2020-06-19,Crenshaw,Alabama,01041,116,3 +2020-06-20,Crenshaw,Alabama,01041,117,3 +2020-06-21,Crenshaw,Alabama,01041,118,3 +2020-06-22,Crenshaw,Alabama,01041,119,3 +2020-06-23,Crenshaw,Alabama,01041,120,3 +2020-06-24,Crenshaw,Alabama,01041,122,3 +2020-06-25,Crenshaw,Alabama,01041,123,3 +2020-06-26,Crenshaw,Alabama,01041,124,3 +2020-06-27,Crenshaw,Alabama,01041,125,3 +2020-06-28,Crenshaw,Alabama,01041,125,3 +2020-06-29,Crenshaw,Alabama,01041,126,3 +2020-06-30,Crenshaw,Alabama,01041,126,3 +2020-07-01,Crenshaw,Alabama,01041,127,3 +2020-07-02,Crenshaw,Alabama,01041,128,3 +2020-07-03,Crenshaw,Alabama,01041,129,3 +2020-07-04,Crenshaw,Alabama,01041,129,3 +2020-07-05,Crenshaw,Alabama,01041,129,3 +2020-07-06,Crenshaw,Alabama,01041,129,3 +2020-07-07,Crenshaw,Alabama,01041,129,3 +2020-07-08,Crenshaw,Alabama,01041,129,3 +2020-07-09,Crenshaw,Alabama,01041,131,3 +2020-03-20,Cullman,Alabama,01043,1,0 +2020-03-21,Cullman,Alabama,01043,2,0 +2020-03-22,Cullman,Alabama,01043,2,0 +2020-03-23,Cullman,Alabama,01043,2,0 +2020-03-24,Cullman,Alabama,01043,3,0 +2020-03-25,Cullman,Alabama,01043,4,0 +2020-03-26,Cullman,Alabama,01043,6,0 +2020-03-27,Cullman,Alabama,01043,7,0 +2020-03-28,Cullman,Alabama,01043,7,0 +2020-03-29,Cullman,Alabama,01043,7,0 +2020-03-30,Cullman,Alabama,01043,8,0 +2020-03-31,Cullman,Alabama,01043,8,0 +2020-04-01,Cullman,Alabama,01043,9,1 +2020-04-02,Cullman,Alabama,01043,9,1 +2020-04-03,Cullman,Alabama,01043,15,1 +2020-04-04,Cullman,Alabama,01043,15,1 +2020-04-05,Cullman,Alabama,01043,15,1 +2020-04-06,Cullman,Alabama,01043,20,1 +2020-04-07,Cullman,Alabama,01043,22,1 +2020-04-08,Cullman,Alabama,01043,22,1 +2020-04-09,Cullman,Alabama,01043,29,1 +2020-04-10,Cullman,Alabama,01043,30,1 +2020-04-11,Cullman,Alabama,01043,31,1 +2020-04-12,Cullman,Alabama,01043,39,1 +2020-04-13,Cullman,Alabama,01043,39,1 +2020-04-14,Cullman,Alabama,01043,40,1 +2020-04-15,Cullman,Alabama,01043,40,1 +2020-04-16,Cullman,Alabama,01043,42,1 +2020-04-17,Cullman,Alabama,01043,53,1 +2020-04-18,Cullman,Alabama,01043,42,0 +2020-04-19,Cullman,Alabama,01043,42,0 +2020-04-20,Cullman,Alabama,01043,44,0 +2020-04-21,Cullman,Alabama,01043,45,0 +2020-04-22,Cullman,Alabama,01043,44,0 +2020-04-23,Cullman,Alabama,01043,44,0 +2020-04-24,Cullman,Alabama,01043,47,0 +2020-04-25,Cullman,Alabama,01043,49,0 +2020-04-26,Cullman,Alabama,01043,50,0 +2020-04-27,Cullman,Alabama,01043,52,0 +2020-04-28,Cullman,Alabama,01043,52,0 +2020-04-29,Cullman,Alabama,01043,55,0 +2020-04-30,Cullman,Alabama,01043,55,0 +2020-05-01,Cullman,Alabama,01043,57,0 +2020-05-02,Cullman,Alabama,01043,57,0 +2020-05-03,Cullman,Alabama,01043,58,0 +2020-05-04,Cullman,Alabama,01043,58,0 +2020-05-05,Cullman,Alabama,01043,58,0 +2020-05-06,Cullman,Alabama,01043,59,0 +2020-05-07,Cullman,Alabama,01043,61,0 +2020-05-08,Cullman,Alabama,01043,62,0 +2020-05-09,Cullman,Alabama,01043,63,0 +2020-05-10,Cullman,Alabama,01043,65,0 +2020-05-11,Cullman,Alabama,01043,65,0 +2020-05-12,Cullman,Alabama,01043,67,0 +2020-05-13,Cullman,Alabama,01043,67,0 +2020-05-14,Cullman,Alabama,01043,67,0 +2020-05-15,Cullman,Alabama,01043,68,0 +2020-05-16,Cullman,Alabama,01043,69,0 +2020-05-17,Cullman,Alabama,01043,69,0 +2020-05-18,Cullman,Alabama,01043,69,0 +2020-05-19,Cullman,Alabama,01043,70,0 +2020-05-20,Cullman,Alabama,01043,71,0 +2020-05-21,Cullman,Alabama,01043,73,0 +2020-05-22,Cullman,Alabama,01043,73,0 +2020-05-23,Cullman,Alabama,01043,74,0 +2020-05-24,Cullman,Alabama,01043,76,0 +2020-05-25,Cullman,Alabama,01043,78,0 +2020-05-26,Cullman,Alabama,01043,83,0 +2020-05-27,Cullman,Alabama,01043,88,0 +2020-05-28,Cullman,Alabama,01043,96,0 +2020-05-29,Cullman,Alabama,01043,114,0 +2020-05-30,Cullman,Alabama,01043,126,0 +2020-05-31,Cullman,Alabama,01043,143,0 +2020-06-01,Cullman,Alabama,01043,150,1 +2020-06-02,Cullman,Alabama,01043,154,1 +2020-06-03,Cullman,Alabama,01043,154,1 +2020-06-04,Cullman,Alabama,01043,156,1 +2020-06-05,Cullman,Alabama,01043,168,1 +2020-06-06,Cullman,Alabama,01043,185,1 +2020-06-07,Cullman,Alabama,01043,198,1 +2020-06-08,Cullman,Alabama,01043,204,1 +2020-06-09,Cullman,Alabama,01043,208,1 +2020-06-10,Cullman,Alabama,01043,218,1 +2020-06-11,Cullman,Alabama,01043,227,1 +2020-06-12,Cullman,Alabama,01043,247,1 +2020-06-13,Cullman,Alabama,01043,258,1 +2020-06-14,Cullman,Alabama,01043,272,1 +2020-06-15,Cullman,Alabama,01043,281,1 +2020-06-16,Cullman,Alabama,01043,286,1 +2020-06-17,Cullman,Alabama,01043,290,1 +2020-06-18,Cullman,Alabama,01043,299,1 +2020-06-19,Cullman,Alabama,01043,306,1 +2020-06-20,Cullman,Alabama,01043,309,1 +2020-06-21,Cullman,Alabama,01043,310,1 +2020-06-22,Cullman,Alabama,01043,313,1 +2020-06-23,Cullman,Alabama,01043,320,3 +2020-06-24,Cullman,Alabama,01043,334,3 +2020-06-25,Cullman,Alabama,01043,356,3 +2020-06-26,Cullman,Alabama,01043,373,3 +2020-06-27,Cullman,Alabama,01043,380,3 +2020-06-28,Cullman,Alabama,01043,382,3 +2020-06-29,Cullman,Alabama,01043,402,3 +2020-06-30,Cullman,Alabama,01043,408,3 +2020-07-01,Cullman,Alabama,01043,411,3 +2020-07-02,Cullman,Alabama,01043,422,4 +2020-07-03,Cullman,Alabama,01043,443,4 +2020-07-04,Cullman,Alabama,01043,447,4 +2020-07-05,Cullman,Alabama,01043,460,4 +2020-07-06,Cullman,Alabama,01043,467,4 +2020-07-07,Cullman,Alabama,01043,478,5 +2020-07-08,Cullman,Alabama,01043,500,5 +2020-07-09,Cullman,Alabama,01043,549,5 +2020-04-01,Dale,Alabama,01045,1,0 +2020-04-02,Dale,Alabama,01045,1,0 +2020-04-03,Dale,Alabama,01045,1,0 +2020-04-04,Dale,Alabama,01045,2,0 +2020-04-05,Dale,Alabama,01045,2,0 +2020-04-06,Dale,Alabama,01045,4,0 +2020-04-07,Dale,Alabama,01045,4,0 +2020-04-08,Dale,Alabama,01045,4,0 +2020-04-09,Dale,Alabama,01045,6,0 +2020-04-10,Dale,Alabama,01045,6,0 +2020-04-11,Dale,Alabama,01045,6,0 +2020-04-12,Dale,Alabama,01045,8,0 +2020-04-13,Dale,Alabama,01045,12,0 +2020-04-14,Dale,Alabama,01045,12,0 +2020-04-15,Dale,Alabama,01045,13,0 +2020-04-16,Dale,Alabama,01045,14,0 +2020-04-17,Dale,Alabama,01045,14,0 +2020-04-18,Dale,Alabama,01045,17,0 +2020-04-19,Dale,Alabama,01045,20,0 +2020-04-20,Dale,Alabama,01045,21,0 +2020-04-21,Dale,Alabama,01045,21,0 +2020-04-22,Dale,Alabama,01045,22,0 +2020-04-23,Dale,Alabama,01045,22,0 +2020-04-24,Dale,Alabama,01045,23,0 +2020-04-25,Dale,Alabama,01045,25,0 +2020-04-26,Dale,Alabama,01045,25,0 +2020-04-27,Dale,Alabama,01045,25,0 +2020-04-28,Dale,Alabama,01045,25,0 +2020-04-29,Dale,Alabama,01045,25,0 +2020-04-30,Dale,Alabama,01045,27,0 +2020-05-01,Dale,Alabama,01045,27,0 +2020-05-02,Dale,Alabama,01045,28,0 +2020-05-03,Dale,Alabama,01045,34,0 +2020-05-04,Dale,Alabama,01045,34,0 +2020-05-05,Dale,Alabama,01045,34,0 +2020-05-06,Dale,Alabama,01045,34,0 +2020-05-07,Dale,Alabama,01045,36,0 +2020-05-08,Dale,Alabama,01045,40,0 +2020-05-09,Dale,Alabama,01045,43,0 +2020-05-10,Dale,Alabama,01045,43,0 +2020-05-11,Dale,Alabama,01045,45,0 +2020-05-12,Dale,Alabama,01045,52,0 +2020-05-13,Dale,Alabama,01045,53,0 +2020-05-14,Dale,Alabama,01045,53,0 +2020-05-15,Dale,Alabama,01045,57,0 +2020-05-16,Dale,Alabama,01045,60,0 +2020-05-17,Dale,Alabama,01045,60,0 +2020-05-18,Dale,Alabama,01045,61,0 +2020-05-19,Dale,Alabama,01045,63,0 +2020-05-20,Dale,Alabama,01045,71,0 +2020-05-21,Dale,Alabama,01045,76,0 +2020-05-22,Dale,Alabama,01045,77,0 +2020-05-23,Dale,Alabama,01045,81,0 +2020-05-24,Dale,Alabama,01045,83,0 +2020-05-25,Dale,Alabama,01045,85,0 +2020-05-26,Dale,Alabama,01045,92,0 +2020-05-27,Dale,Alabama,01045,96,0 +2020-05-28,Dale,Alabama,01045,99,0 +2020-05-29,Dale,Alabama,01045,106,0 +2020-05-30,Dale,Alabama,01045,110,0 +2020-05-31,Dale,Alabama,01045,115,0 +2020-06-01,Dale,Alabama,01045,124,0 +2020-06-02,Dale,Alabama,01045,125,0 +2020-06-03,Dale,Alabama,01045,125,0 +2020-06-04,Dale,Alabama,01045,126,0 +2020-06-05,Dale,Alabama,01045,128,0 +2020-06-06,Dale,Alabama,01045,133,0 +2020-06-07,Dale,Alabama,01045,133,0 +2020-06-08,Dale,Alabama,01045,137,0 +2020-06-09,Dale,Alabama,01045,141,0 +2020-06-10,Dale,Alabama,01045,144,0 +2020-06-11,Dale,Alabama,01045,152,0 +2020-06-12,Dale,Alabama,01045,167,0 +2020-06-13,Dale,Alabama,01045,174,0 +2020-06-14,Dale,Alabama,01045,176,0 +2020-06-15,Dale,Alabama,01045,181,0 +2020-06-16,Dale,Alabama,01045,185,0 +2020-06-17,Dale,Alabama,01045,186,0 +2020-06-18,Dale,Alabama,01045,193,0 +2020-06-19,Dale,Alabama,01045,198,0 +2020-06-20,Dale,Alabama,01045,205,0 +2020-06-21,Dale,Alabama,01045,205,0 +2020-06-22,Dale,Alabama,01045,205,0 +2020-06-23,Dale,Alabama,01045,209,0 +2020-06-24,Dale,Alabama,01045,212,0 +2020-06-25,Dale,Alabama,01045,219,0 +2020-06-26,Dale,Alabama,01045,224,0 +2020-06-27,Dale,Alabama,01045,233,0 +2020-06-28,Dale,Alabama,01045,236,0 +2020-06-29,Dale,Alabama,01045,238,0 +2020-06-30,Dale,Alabama,01045,244,0 +2020-07-01,Dale,Alabama,01045,247,0 +2020-07-02,Dale,Alabama,01045,265,0 +2020-07-03,Dale,Alabama,01045,271,0 +2020-07-04,Dale,Alabama,01045,285,0 +2020-07-05,Dale,Alabama,01045,291,0 +2020-07-06,Dale,Alabama,01045,302,0 +2020-07-07,Dale,Alabama,01045,305,0 +2020-07-08,Dale,Alabama,01045,329,1 +2020-07-09,Dale,Alabama,01045,365,1 +2020-03-25,Dallas,Alabama,01047,2,0 +2020-03-26,Dallas,Alabama,01047,2,0 +2020-03-27,Dallas,Alabama,01047,2,0 +2020-03-28,Dallas,Alabama,01047,2,0 +2020-03-29,Dallas,Alabama,01047,2,0 +2020-03-30,Dallas,Alabama,01047,2,0 +2020-03-31,Dallas,Alabama,01047,2,0 +2020-04-01,Dallas,Alabama,01047,3,0 +2020-04-02,Dallas,Alabama,01047,4,0 +2020-04-03,Dallas,Alabama,01047,7,0 +2020-04-04,Dallas,Alabama,01047,7,0 +2020-04-05,Dallas,Alabama,01047,7,0 +2020-04-06,Dallas,Alabama,01047,7,0 +2020-04-07,Dallas,Alabama,01047,7,0 +2020-04-08,Dallas,Alabama,01047,7,0 +2020-04-09,Dallas,Alabama,01047,10,0 +2020-04-10,Dallas,Alabama,01047,11,0 +2020-04-11,Dallas,Alabama,01047,10,0 +2020-04-12,Dallas,Alabama,01047,14,0 +2020-04-13,Dallas,Alabama,01047,14,0 +2020-04-14,Dallas,Alabama,01047,17,0 +2020-04-15,Dallas,Alabama,01047,22,2 +2020-04-16,Dallas,Alabama,01047,21,2 +2020-04-17,Dallas,Alabama,01047,21,2 +2020-04-18,Dallas,Alabama,01047,22,2 +2020-04-19,Dallas,Alabama,01047,25,2 +2020-04-20,Dallas,Alabama,01047,26,2 +2020-04-21,Dallas,Alabama,01047,29,2 +2020-04-22,Dallas,Alabama,01047,30,2 +2020-04-23,Dallas,Alabama,01047,29,2 +2020-04-24,Dallas,Alabama,01047,32,2 +2020-04-25,Dallas,Alabama,01047,32,2 +2020-04-26,Dallas,Alabama,01047,33,2 +2020-04-27,Dallas,Alabama,01047,37,3 +2020-04-28,Dallas,Alabama,01047,37,3 +2020-04-29,Dallas,Alabama,01047,37,3 +2020-04-30,Dallas,Alabama,01047,38,3 +2020-05-01,Dallas,Alabama,01047,42,3 +2020-05-02,Dallas,Alabama,01047,49,3 +2020-05-03,Dallas,Alabama,01047,59,3 +2020-05-04,Dallas,Alabama,01047,65,3 +2020-05-05,Dallas,Alabama,01047,68,3 +2020-05-06,Dallas,Alabama,01047,76,3 +2020-05-07,Dallas,Alabama,01047,83,3 +2020-05-08,Dallas,Alabama,01047,95,3 +2020-05-09,Dallas,Alabama,01047,102,3 +2020-05-10,Dallas,Alabama,01047,108,3 +2020-05-11,Dallas,Alabama,01047,122,3 +2020-05-12,Dallas,Alabama,01047,124,3 +2020-05-13,Dallas,Alabama,01047,129,3 +2020-05-14,Dallas,Alabama,01047,132,3 +2020-05-15,Dallas,Alabama,01047,137,3 +2020-05-16,Dallas,Alabama,01047,145,3 +2020-05-17,Dallas,Alabama,01047,146,3 +2020-05-18,Dallas,Alabama,01047,151,3 +2020-05-19,Dallas,Alabama,01047,159,3 +2020-05-20,Dallas,Alabama,01047,172,3 +2020-05-21,Dallas,Alabama,01047,179,3 +2020-05-22,Dallas,Alabama,01047,182,3 +2020-05-23,Dallas,Alabama,01047,191,3 +2020-05-24,Dallas,Alabama,01047,197,3 +2020-05-25,Dallas,Alabama,01047,206,3 +2020-05-26,Dallas,Alabama,01047,222,3 +2020-05-27,Dallas,Alabama,01047,232,3 +2020-05-28,Dallas,Alabama,01047,244,3 +2020-05-29,Dallas,Alabama,01047,255,3 +2020-05-30,Dallas,Alabama,01047,260,3 +2020-05-31,Dallas,Alabama,01047,272,3 +2020-06-01,Dallas,Alabama,01047,279,3 +2020-06-02,Dallas,Alabama,01047,282,3 +2020-06-03,Dallas,Alabama,01047,287,3 +2020-06-04,Dallas,Alabama,01047,294,3 +2020-06-05,Dallas,Alabama,01047,298,3 +2020-06-06,Dallas,Alabama,01047,304,3 +2020-06-07,Dallas,Alabama,01047,322,3 +2020-06-08,Dallas,Alabama,01047,341,4 +2020-06-09,Dallas,Alabama,01047,356,5 +2020-06-10,Dallas,Alabama,01047,379,6 +2020-06-11,Dallas,Alabama,01047,410,6 +2020-06-12,Dallas,Alabama,01047,425,6 +2020-06-13,Dallas,Alabama,01047,451,6 +2020-06-14,Dallas,Alabama,01047,490,6 +2020-06-15,Dallas,Alabama,01047,507,6 +2020-06-16,Dallas,Alabama,01047,527,6 +2020-06-17,Dallas,Alabama,01047,536,6 +2020-06-18,Dallas,Alabama,01047,570,6 +2020-06-19,Dallas,Alabama,01047,596,6 +2020-06-20,Dallas,Alabama,01047,626,6 +2020-06-21,Dallas,Alabama,01047,634,6 +2020-06-22,Dallas,Alabama,01047,646,6 +2020-06-23,Dallas,Alabama,01047,666,6 +2020-06-24,Dallas,Alabama,01047,692,7 +2020-06-25,Dallas,Alabama,01047,716,7 +2020-06-26,Dallas,Alabama,01047,733,8 +2020-06-27,Dallas,Alabama,01047,750,8 +2020-06-28,Dallas,Alabama,01047,753,8 +2020-06-29,Dallas,Alabama,01047,787,8 +2020-06-30,Dallas,Alabama,01047,814,8 +2020-07-01,Dallas,Alabama,01047,826,8 +2020-07-02,Dallas,Alabama,01047,849,9 +2020-07-03,Dallas,Alabama,01047,875,9 +2020-07-04,Dallas,Alabama,01047,886,9 +2020-07-05,Dallas,Alabama,01047,887,9 +2020-07-06,Dallas,Alabama,01047,898,9 +2020-07-07,Dallas,Alabama,01047,918,9 +2020-07-08,Dallas,Alabama,01047,926,9 +2020-07-09,Dallas,Alabama,01047,971,9 +2020-03-26,DeKalb,Alabama,01049,1,0 +2020-03-27,DeKalb,Alabama,01049,4,0 +2020-03-28,DeKalb,Alabama,01049,4,0 +2020-03-29,DeKalb,Alabama,01049,4,0 +2020-03-30,DeKalb,Alabama,01049,4,0 +2020-03-31,DeKalb,Alabama,01049,4,0 +2020-04-01,DeKalb,Alabama,01049,6,0 +2020-04-02,DeKalb,Alabama,01049,8,0 +2020-04-03,DeKalb,Alabama,01049,10,0 +2020-04-04,DeKalb,Alabama,01049,13,0 +2020-04-05,DeKalb,Alabama,01049,14,0 +2020-04-06,DeKalb,Alabama,01049,14,0 +2020-04-07,DeKalb,Alabama,01049,14,0 +2020-04-08,DeKalb,Alabama,01049,14,0 +2020-04-09,DeKalb,Alabama,01049,16,0 +2020-04-10,DeKalb,Alabama,01049,18,0 +2020-04-11,DeKalb,Alabama,01049,21,0 +2020-04-12,DeKalb,Alabama,01049,26,0 +2020-04-13,DeKalb,Alabama,01049,28,0 +2020-04-14,DeKalb,Alabama,01049,29,0 +2020-04-15,DeKalb,Alabama,01049,31,0 +2020-04-16,DeKalb,Alabama,01049,32,1 +2020-04-17,DeKalb,Alabama,01049,34,2 +2020-04-18,DeKalb,Alabama,01049,40,2 +2020-04-19,DeKalb,Alabama,01049,42,2 +2020-04-20,DeKalb,Alabama,01049,46,2 +2020-04-21,DeKalb,Alabama,01049,51,2 +2020-04-22,DeKalb,Alabama,01049,58,2 +2020-04-23,DeKalb,Alabama,01049,61,2 +2020-04-24,DeKalb,Alabama,01049,61,2 +2020-04-25,DeKalb,Alabama,01049,63,2 +2020-04-26,DeKalb,Alabama,01049,70,2 +2020-04-27,DeKalb,Alabama,01049,74,2 +2020-04-28,DeKalb,Alabama,01049,76,2 +2020-04-29,DeKalb,Alabama,01049,77,2 +2020-04-30,DeKalb,Alabama,01049,76,2 +2020-05-01,DeKalb,Alabama,01049,76,2 +2020-05-02,DeKalb,Alabama,01049,77,2 +2020-05-03,DeKalb,Alabama,01049,79,2 +2020-05-04,DeKalb,Alabama,01049,90,2 +2020-05-05,DeKalb,Alabama,01049,99,2 +2020-05-06,DeKalb,Alabama,01049,109,2 +2020-05-07,DeKalb,Alabama,01049,124,2 +2020-05-08,DeKalb,Alabama,01049,136,2 +2020-05-09,DeKalb,Alabama,01049,142,2 +2020-05-10,DeKalb,Alabama,01049,147,2 +2020-05-11,DeKalb,Alabama,01049,158,2 +2020-05-12,DeKalb,Alabama,01049,167,2 +2020-05-13,DeKalb,Alabama,01049,179,2 +2020-05-14,DeKalb,Alabama,01049,185,2 +2020-05-15,DeKalb,Alabama,01049,190,2 +2020-05-16,DeKalb,Alabama,01049,192,2 +2020-05-17,DeKalb,Alabama,01049,192,2 +2020-05-18,DeKalb,Alabama,01049,196,2 +2020-05-19,DeKalb,Alabama,01049,195,3 +2020-05-20,DeKalb,Alabama,01049,206,3 +2020-05-21,DeKalb,Alabama,01049,209,3 +2020-05-22,DeKalb,Alabama,01049,209,3 +2020-05-23,DeKalb,Alabama,01049,216,3 +2020-05-24,DeKalb,Alabama,01049,221,3 +2020-05-25,DeKalb,Alabama,01049,226,3 +2020-05-26,DeKalb,Alabama,01049,234,3 +2020-05-27,DeKalb,Alabama,01049,240,3 +2020-05-28,DeKalb,Alabama,01049,241,3 +2020-05-29,DeKalb,Alabama,01049,243,3 +2020-05-30,DeKalb,Alabama,01049,243,3 +2020-05-31,DeKalb,Alabama,01049,248,3 +2020-06-01,DeKalb,Alabama,01049,253,3 +2020-06-02,DeKalb,Alabama,01049,260,3 +2020-06-03,DeKalb,Alabama,01049,261,3 +2020-06-04,DeKalb,Alabama,01049,261,3 +2020-06-05,DeKalb,Alabama,01049,264,3 +2020-06-06,DeKalb,Alabama,01049,272,3 +2020-06-07,DeKalb,Alabama,01049,273,3 +2020-06-08,DeKalb,Alabama,01049,276,3 +2020-06-09,DeKalb,Alabama,01049,280,5 +2020-06-10,DeKalb,Alabama,01049,282,5 +2020-06-11,DeKalb,Alabama,01049,295,5 +2020-06-12,DeKalb,Alabama,01049,307,5 +2020-06-13,DeKalb,Alabama,01049,315,5 +2020-06-14,DeKalb,Alabama,01049,322,5 +2020-06-15,DeKalb,Alabama,01049,326,5 +2020-06-16,DeKalb,Alabama,01049,339,5 +2020-06-17,DeKalb,Alabama,01049,356,5 +2020-06-18,DeKalb,Alabama,01049,366,5 +2020-06-19,DeKalb,Alabama,01049,398,5 +2020-06-20,DeKalb,Alabama,01049,403,5 +2020-06-21,DeKalb,Alabama,01049,415,5 +2020-06-22,DeKalb,Alabama,01049,418,5 +2020-06-23,DeKalb,Alabama,01049,431,5 +2020-06-24,DeKalb,Alabama,01049,449,5 +2020-06-25,DeKalb,Alabama,01049,489,5 +2020-06-26,DeKalb,Alabama,01049,511,5 +2020-06-27,DeKalb,Alabama,01049,533,5 +2020-06-28,DeKalb,Alabama,01049,544,5 +2020-06-29,DeKalb,Alabama,01049,569,5 +2020-06-30,DeKalb,Alabama,01049,583,5 +2020-07-01,DeKalb,Alabama,01049,609,5 +2020-07-02,DeKalb,Alabama,01049,650,5 +2020-07-03,DeKalb,Alabama,01049,703,5 +2020-07-04,DeKalb,Alabama,01049,716,5 +2020-07-05,DeKalb,Alabama,01049,728,5 +2020-07-06,DeKalb,Alabama,01049,746,5 +2020-07-07,DeKalb,Alabama,01049,770,5 +2020-07-08,DeKalb,Alabama,01049,800,5 +2020-07-09,DeKalb,Alabama,01049,851,6 +2020-03-13,Elmore,Alabama,01051,1,0 +2020-03-14,Elmore,Alabama,01051,1,0 +2020-03-15,Elmore,Alabama,01051,1,0 +2020-03-16,Elmore,Alabama,01051,1,0 +2020-03-17,Elmore,Alabama,01051,2,0 +2020-03-18,Elmore,Alabama,01051,4,0 +2020-03-19,Elmore,Alabama,01051,5,0 +2020-03-20,Elmore,Alabama,01051,6,0 +2020-03-21,Elmore,Alabama,01051,6,0 +2020-03-22,Elmore,Alabama,01051,6,0 +2020-03-23,Elmore,Alabama,01051,6,0 +2020-03-24,Elmore,Alabama,01051,8,0 +2020-03-25,Elmore,Alabama,01051,9,0 +2020-03-26,Elmore,Alabama,01051,10,0 +2020-03-27,Elmore,Alabama,01051,12,0 +2020-03-28,Elmore,Alabama,01051,13,0 +2020-03-29,Elmore,Alabama,01051,13,0 +2020-03-30,Elmore,Alabama,01051,13,0 +2020-03-31,Elmore,Alabama,01051,12,0 +2020-04-01,Elmore,Alabama,01051,15,0 +2020-04-02,Elmore,Alabama,01051,17,0 +2020-04-03,Elmore,Alabama,01051,19,0 +2020-04-04,Elmore,Alabama,01051,19,0 +2020-04-05,Elmore,Alabama,01051,19,0 +2020-04-06,Elmore,Alabama,01051,20,0 +2020-04-07,Elmore,Alabama,01051,22,0 +2020-04-08,Elmore,Alabama,01051,24,0 +2020-04-09,Elmore,Alabama,01051,29,0 +2020-04-10,Elmore,Alabama,01051,30,0 +2020-04-11,Elmore,Alabama,01051,30,0 +2020-04-12,Elmore,Alabama,01051,33,0 +2020-04-13,Elmore,Alabama,01051,37,0 +2020-04-14,Elmore,Alabama,01051,43,0 +2020-04-15,Elmore,Alabama,01051,49,0 +2020-04-16,Elmore,Alabama,01051,54,0 +2020-04-17,Elmore,Alabama,01051,54,1 +2020-04-18,Elmore,Alabama,01051,58,1 +2020-04-19,Elmore,Alabama,01051,63,1 +2020-04-20,Elmore,Alabama,01051,68,1 +2020-04-21,Elmore,Alabama,01051,73,1 +2020-04-22,Elmore,Alabama,01051,74,1 +2020-04-23,Elmore,Alabama,01051,74,1 +2020-04-24,Elmore,Alabama,01051,74,1 +2020-04-25,Elmore,Alabama,01051,77,1 +2020-04-26,Elmore,Alabama,01051,79,1 +2020-04-27,Elmore,Alabama,01051,79,1 +2020-04-28,Elmore,Alabama,01051,82,1 +2020-04-29,Elmore,Alabama,01051,84,2 +2020-04-30,Elmore,Alabama,01051,86,2 +2020-05-01,Elmore,Alabama,01051,88,2 +2020-05-02,Elmore,Alabama,01051,93,2 +2020-05-03,Elmore,Alabama,01051,103,2 +2020-05-04,Elmore,Alabama,01051,111,3 +2020-05-05,Elmore,Alabama,01051,121,3 +2020-05-06,Elmore,Alabama,01051,121,3 +2020-05-07,Elmore,Alabama,01051,127,4 +2020-05-08,Elmore,Alabama,01051,130,4 +2020-05-09,Elmore,Alabama,01051,135,4 +2020-05-10,Elmore,Alabama,01051,150,4 +2020-05-11,Elmore,Alabama,01051,152,4 +2020-05-12,Elmore,Alabama,01051,156,4 +2020-05-13,Elmore,Alabama,01051,157,5 +2020-05-14,Elmore,Alabama,01051,169,6 +2020-05-15,Elmore,Alabama,01051,178,6 +2020-05-16,Elmore,Alabama,01051,188,6 +2020-05-17,Elmore,Alabama,01051,192,6 +2020-05-18,Elmore,Alabama,01051,197,6 +2020-05-19,Elmore,Alabama,01051,207,6 +2020-05-20,Elmore,Alabama,01051,226,7 +2020-05-21,Elmore,Alabama,01051,238,7 +2020-05-22,Elmore,Alabama,01051,242,7 +2020-05-23,Elmore,Alabama,01051,255,7 +2020-05-24,Elmore,Alabama,01051,263,7 +2020-05-25,Elmore,Alabama,01051,270,7 +2020-05-26,Elmore,Alabama,01051,292,7 +2020-05-27,Elmore,Alabama,01051,300,7 +2020-05-28,Elmore,Alabama,01051,313,7 +2020-05-29,Elmore,Alabama,01051,323,7 +2020-05-30,Elmore,Alabama,01051,339,8 +2020-05-31,Elmore,Alabama,01051,354,8 +2020-06-01,Elmore,Alabama,01051,373,8 +2020-06-02,Elmore,Alabama,01051,384,9 +2020-06-03,Elmore,Alabama,01051,383,9 +2020-06-04,Elmore,Alabama,01051,385,9 +2020-06-05,Elmore,Alabama,01051,392,10 +2020-06-06,Elmore,Alabama,01051,412,10 +2020-06-07,Elmore,Alabama,01051,422,10 +2020-06-08,Elmore,Alabama,01051,438,10 +2020-06-09,Elmore,Alabama,01051,449,10 +2020-06-10,Elmore,Alabama,01051,459,9 +2020-06-11,Elmore,Alabama,01051,483,9 +2020-06-12,Elmore,Alabama,01051,498,9 +2020-06-13,Elmore,Alabama,01051,515,9 +2020-06-14,Elmore,Alabama,01051,541,9 +2020-06-15,Elmore,Alabama,01051,560,9 +2020-06-16,Elmore,Alabama,01051,581,10 +2020-06-17,Elmore,Alabama,01051,589,10 +2020-06-18,Elmore,Alabama,01051,616,10 +2020-06-19,Elmore,Alabama,01051,646,11 +2020-06-20,Elmore,Alabama,01051,663,11 +2020-06-21,Elmore,Alabama,01051,673,11 +2020-06-22,Elmore,Alabama,01051,690,11 +2020-06-23,Elmore,Alabama,01051,702,12 +2020-06-24,Elmore,Alabama,01051,720,12 +2020-06-25,Elmore,Alabama,01051,744,12 +2020-06-26,Elmore,Alabama,01051,758,13 +2020-06-27,Elmore,Alabama,01051,786,13 +2020-06-28,Elmore,Alabama,01051,789,13 +2020-06-29,Elmore,Alabama,01051,811,14 +2020-06-30,Elmore,Alabama,01051,822,14 +2020-07-01,Elmore,Alabama,01051,829,14 +2020-07-02,Elmore,Alabama,01051,849,14 +2020-07-03,Elmore,Alabama,01051,876,14 +2020-07-04,Elmore,Alabama,01051,915,14 +2020-07-05,Elmore,Alabama,01051,937,14 +2020-07-06,Elmore,Alabama,01051,955,14 +2020-07-07,Elmore,Alabama,01051,975,15 +2020-07-08,Elmore,Alabama,01051,989,19 +2020-07-09,Elmore,Alabama,01051,1005,19 +2020-03-27,Escambia,Alabama,01053,1,0 +2020-03-28,Escambia,Alabama,01053,1,0 +2020-03-29,Escambia,Alabama,01053,1,0 +2020-03-30,Escambia,Alabama,01053,1,0 +2020-03-31,Escambia,Alabama,01053,1,0 +2020-04-01,Escambia,Alabama,01053,1,0 +2020-04-02,Escambia,Alabama,01053,2,0 +2020-04-03,Escambia,Alabama,01053,2,0 +2020-04-04,Escambia,Alabama,01053,2,0 +2020-04-05,Escambia,Alabama,01053,3,0 +2020-04-06,Escambia,Alabama,01053,3,0 +2020-04-07,Escambia,Alabama,01053,3,0 +2020-04-08,Escambia,Alabama,01053,5,0 +2020-04-09,Escambia,Alabama,01053,5,0 +2020-04-10,Escambia,Alabama,01053,6,0 +2020-04-11,Escambia,Alabama,01053,8,0 +2020-04-12,Escambia,Alabama,01053,8,0 +2020-04-13,Escambia,Alabama,01053,10,0 +2020-04-14,Escambia,Alabama,01053,10,0 +2020-04-15,Escambia,Alabama,01053,11,0 +2020-04-16,Escambia,Alabama,01053,12,0 +2020-04-17,Escambia,Alabama,01053,14,0 +2020-04-18,Escambia,Alabama,01053,12,0 +2020-04-19,Escambia,Alabama,01053,15,0 +2020-04-20,Escambia,Alabama,01053,16,0 +2020-04-21,Escambia,Alabama,01053,17,1 +2020-04-22,Escambia,Alabama,01053,18,1 +2020-04-23,Escambia,Alabama,01053,21,1 +2020-04-24,Escambia,Alabama,01053,22,1 +2020-04-25,Escambia,Alabama,01053,22,1 +2020-04-26,Escambia,Alabama,01053,25,1 +2020-04-27,Escambia,Alabama,01053,26,1 +2020-04-28,Escambia,Alabama,01053,27,1 +2020-04-29,Escambia,Alabama,01053,27,1 +2020-04-30,Escambia,Alabama,01053,28,1 +2020-05-01,Escambia,Alabama,01053,29,2 +2020-05-02,Escambia,Alabama,01053,30,2 +2020-05-03,Escambia,Alabama,01053,31,2 +2020-05-04,Escambia,Alabama,01053,32,2 +2020-05-05,Escambia,Alabama,01053,31,2 +2020-05-06,Escambia,Alabama,01053,30,3 +2020-05-07,Escambia,Alabama,01053,33,3 +2020-05-08,Escambia,Alabama,01053,35,3 +2020-05-09,Escambia,Alabama,01053,36,3 +2020-05-10,Escambia,Alabama,01053,36,3 +2020-05-11,Escambia,Alabama,01053,37,3 +2020-05-12,Escambia,Alabama,01053,38,3 +2020-05-13,Escambia,Alabama,01053,38,3 +2020-05-14,Escambia,Alabama,01053,39,3 +2020-05-15,Escambia,Alabama,01053,39,3 +2020-05-16,Escambia,Alabama,01053,39,3 +2020-05-17,Escambia,Alabama,01053,39,3 +2020-05-18,Escambia,Alabama,01053,39,3 +2020-05-19,Escambia,Alabama,01053,39,3 +2020-05-20,Escambia,Alabama,01053,39,3 +2020-05-21,Escambia,Alabama,01053,39,3 +2020-05-22,Escambia,Alabama,01053,39,3 +2020-05-23,Escambia,Alabama,01053,40,3 +2020-05-24,Escambia,Alabama,01053,43,3 +2020-05-25,Escambia,Alabama,01053,43,3 +2020-05-26,Escambia,Alabama,01053,45,3 +2020-05-27,Escambia,Alabama,01053,48,3 +2020-05-28,Escambia,Alabama,01053,49,3 +2020-05-29,Escambia,Alabama,01053,57,3 +2020-05-30,Escambia,Alabama,01053,57,3 +2020-05-31,Escambia,Alabama,01053,63,3 +2020-06-01,Escambia,Alabama,01053,72,3 +2020-06-02,Escambia,Alabama,01053,74,3 +2020-06-03,Escambia,Alabama,01053,75,3 +2020-06-04,Escambia,Alabama,01053,75,3 +2020-06-05,Escambia,Alabama,01053,79,3 +2020-06-06,Escambia,Alabama,01053,82,3 +2020-06-07,Escambia,Alabama,01053,85,3 +2020-06-08,Escambia,Alabama,01053,88,3 +2020-06-09,Escambia,Alabama,01053,88,3 +2020-06-10,Escambia,Alabama,01053,91,3 +2020-06-11,Escambia,Alabama,01053,93,3 +2020-06-12,Escambia,Alabama,01053,99,3 +2020-06-13,Escambia,Alabama,01053,99,3 +2020-06-14,Escambia,Alabama,01053,102,3 +2020-06-15,Escambia,Alabama,01053,107,3 +2020-06-16,Escambia,Alabama,01053,112,4 +2020-06-17,Escambia,Alabama,01053,113,4 +2020-06-18,Escambia,Alabama,01053,123,4 +2020-06-19,Escambia,Alabama,01053,137,5 +2020-06-20,Escambia,Alabama,01053,144,5 +2020-06-21,Escambia,Alabama,01053,148,6 +2020-06-22,Escambia,Alabama,01053,158,6 +2020-06-23,Escambia,Alabama,01053,166,6 +2020-06-24,Escambia,Alabama,01053,172,6 +2020-06-25,Escambia,Alabama,01053,190,6 +2020-06-26,Escambia,Alabama,01053,208,6 +2020-06-27,Escambia,Alabama,01053,215,6 +2020-06-28,Escambia,Alabama,01053,216,6 +2020-06-29,Escambia,Alabama,01053,248,6 +2020-06-30,Escambia,Alabama,01053,258,6 +2020-07-01,Escambia,Alabama,01053,263,6 +2020-07-02,Escambia,Alabama,01053,293,6 +2020-07-03,Escambia,Alabama,01053,332,6 +2020-07-04,Escambia,Alabama,01053,337,6 +2020-07-05,Escambia,Alabama,01053,350,6 +2020-07-06,Escambia,Alabama,01053,396,6 +2020-07-07,Escambia,Alabama,01053,411,8 +2020-07-08,Escambia,Alabama,01053,435,8 +2020-07-09,Escambia,Alabama,01053,452,8 +2020-03-25,Etowah,Alabama,01055,3,0 +2020-03-26,Etowah,Alabama,01055,4,0 +2020-03-27,Etowah,Alabama,01055,5,0 +2020-03-28,Etowah,Alabama,01055,6,0 +2020-03-29,Etowah,Alabama,01055,6,0 +2020-03-30,Etowah,Alabama,01055,6,0 +2020-03-31,Etowah,Alabama,01055,8,0 +2020-04-01,Etowah,Alabama,01055,10,1 +2020-04-02,Etowah,Alabama,01055,13,1 +2020-04-03,Etowah,Alabama,01055,21,2 +2020-04-04,Etowah,Alabama,01055,27,3 +2020-04-05,Etowah,Alabama,01055,36,3 +2020-04-06,Etowah,Alabama,01055,42,3 +2020-04-07,Etowah,Alabama,01055,43,4 +2020-04-08,Etowah,Alabama,01055,47,4 +2020-04-09,Etowah,Alabama,01055,53,5 +2020-04-10,Etowah,Alabama,01055,64,5 +2020-04-11,Etowah,Alabama,01055,74,7 +2020-04-12,Etowah,Alabama,01055,77,7 +2020-04-13,Etowah,Alabama,01055,78,7 +2020-04-14,Etowah,Alabama,01055,78,7 +2020-04-15,Etowah,Alabama,01055,84,8 +2020-04-16,Etowah,Alabama,01055,87,8 +2020-04-17,Etowah,Alabama,01055,88,8 +2020-04-18,Etowah,Alabama,01055,93,7 +2020-04-19,Etowah,Alabama,01055,98,7 +2020-04-20,Etowah,Alabama,01055,100,7 +2020-04-21,Etowah,Alabama,01055,110,8 +2020-04-22,Etowah,Alabama,01055,116,8 +2020-04-23,Etowah,Alabama,01055,120,8 +2020-04-24,Etowah,Alabama,01055,121,8 +2020-04-25,Etowah,Alabama,01055,123,8 +2020-04-26,Etowah,Alabama,01055,125,8 +2020-04-27,Etowah,Alabama,01055,126,8 +2020-04-28,Etowah,Alabama,01055,130,8 +2020-04-29,Etowah,Alabama,01055,139,8 +2020-04-30,Etowah,Alabama,01055,139,9 +2020-05-01,Etowah,Alabama,01055,139,10 +2020-05-02,Etowah,Alabama,01055,141,10 +2020-05-03,Etowah,Alabama,01055,143,10 +2020-05-04,Etowah,Alabama,01055,146,10 +2020-05-05,Etowah,Alabama,01055,152,10 +2020-05-06,Etowah,Alabama,01055,158,10 +2020-05-07,Etowah,Alabama,01055,161,10 +2020-05-08,Etowah,Alabama,01055,166,10 +2020-05-09,Etowah,Alabama,01055,170,10 +2020-05-10,Etowah,Alabama,01055,182,10 +2020-05-11,Etowah,Alabama,01055,193,10 +2020-05-12,Etowah,Alabama,01055,196,10 +2020-05-13,Etowah,Alabama,01055,197,10 +2020-05-14,Etowah,Alabama,01055,198,10 +2020-05-15,Etowah,Alabama,01055,199,10 +2020-05-16,Etowah,Alabama,01055,202,10 +2020-05-17,Etowah,Alabama,01055,204,10 +2020-05-18,Etowah,Alabama,01055,206,10 +2020-05-19,Etowah,Alabama,01055,215,10 +2020-05-20,Etowah,Alabama,01055,223,10 +2020-05-21,Etowah,Alabama,01055,226,10 +2020-05-22,Etowah,Alabama,01055,225,10 +2020-05-23,Etowah,Alabama,01055,228,10 +2020-05-24,Etowah,Alabama,01055,236,10 +2020-05-25,Etowah,Alabama,01055,238,11 +2020-05-26,Etowah,Alabama,01055,240,11 +2020-05-27,Etowah,Alabama,01055,240,11 +2020-05-28,Etowah,Alabama,01055,244,11 +2020-05-29,Etowah,Alabama,01055,247,11 +2020-05-30,Etowah,Alabama,01055,248,11 +2020-05-31,Etowah,Alabama,01055,257,11 +2020-06-01,Etowah,Alabama,01055,264,12 +2020-06-02,Etowah,Alabama,01055,265,12 +2020-06-03,Etowah,Alabama,01055,266,12 +2020-06-04,Etowah,Alabama,01055,267,12 +2020-06-05,Etowah,Alabama,01055,269,12 +2020-06-06,Etowah,Alabama,01055,274,12 +2020-06-07,Etowah,Alabama,01055,277,12 +2020-06-08,Etowah,Alabama,01055,280,12 +2020-06-09,Etowah,Alabama,01055,281,12 +2020-06-10,Etowah,Alabama,01055,284,12 +2020-06-11,Etowah,Alabama,01055,291,12 +2020-06-12,Etowah,Alabama,01055,303,12 +2020-06-13,Etowah,Alabama,01055,306,12 +2020-06-14,Etowah,Alabama,01055,328,12 +2020-06-15,Etowah,Alabama,01055,335,12 +2020-06-16,Etowah,Alabama,01055,344,12 +2020-06-17,Etowah,Alabama,01055,349,12 +2020-06-18,Etowah,Alabama,01055,363,12 +2020-06-19,Etowah,Alabama,01055,378,12 +2020-06-20,Etowah,Alabama,01055,394,12 +2020-06-21,Etowah,Alabama,01055,405,12 +2020-06-22,Etowah,Alabama,01055,422,12 +2020-06-23,Etowah,Alabama,01055,436,12 +2020-06-24,Etowah,Alabama,01055,461,12 +2020-06-25,Etowah,Alabama,01055,493,13 +2020-06-26,Etowah,Alabama,01055,529,13 +2020-06-27,Etowah,Alabama,01055,555,13 +2020-06-28,Etowah,Alabama,01055,559,13 +2020-06-29,Etowah,Alabama,01055,605,13 +2020-06-30,Etowah,Alabama,01055,615,13 +2020-07-01,Etowah,Alabama,01055,634,13 +2020-07-02,Etowah,Alabama,01055,653,13 +2020-07-03,Etowah,Alabama,01055,717,13 +2020-07-04,Etowah,Alabama,01055,737,13 +2020-07-05,Etowah,Alabama,01055,749,13 +2020-07-06,Etowah,Alabama,01055,760,13 +2020-07-07,Etowah,Alabama,01055,801,13 +2020-07-08,Etowah,Alabama,01055,845,13 +2020-07-09,Etowah,Alabama,01055,894,14 +2020-03-30,Fayette,Alabama,01057,1,0 +2020-03-31,Fayette,Alabama,01057,1,0 +2020-04-01,Fayette,Alabama,01057,1,0 +2020-04-02,Fayette,Alabama,01057,1,0 +2020-04-03,Fayette,Alabama,01057,1,0 +2020-04-04,Fayette,Alabama,01057,1,0 +2020-04-05,Fayette,Alabama,01057,1,0 +2020-04-06,Fayette,Alabama,01057,1,0 +2020-04-07,Fayette,Alabama,01057,1,0 +2020-04-08,Fayette,Alabama,01057,1,0 +2020-04-09,Fayette,Alabama,01057,1,0 +2020-04-10,Fayette,Alabama,01057,2,0 +2020-04-11,Fayette,Alabama,01057,3,0 +2020-04-12,Fayette,Alabama,01057,4,0 +2020-04-13,Fayette,Alabama,01057,4,0 +2020-04-14,Fayette,Alabama,01057,4,0 +2020-04-15,Fayette,Alabama,01057,4,0 +2020-04-16,Fayette,Alabama,01057,4,0 +2020-04-17,Fayette,Alabama,01057,4,0 +2020-04-18,Fayette,Alabama,01057,4,0 +2020-04-19,Fayette,Alabama,01057,4,0 +2020-04-20,Fayette,Alabama,01057,3,0 +2020-04-21,Fayette,Alabama,01057,4,0 +2020-04-22,Fayette,Alabama,01057,4,0 +2020-04-23,Fayette,Alabama,01057,4,0 +2020-04-24,Fayette,Alabama,01057,4,0 +2020-04-25,Fayette,Alabama,01057,5,0 +2020-04-26,Fayette,Alabama,01057,5,0 +2020-04-27,Fayette,Alabama,01057,5,0 +2020-04-28,Fayette,Alabama,01057,5,0 +2020-04-29,Fayette,Alabama,01057,6,0 +2020-04-30,Fayette,Alabama,01057,6,0 +2020-05-01,Fayette,Alabama,01057,6,0 +2020-05-02,Fayette,Alabama,01057,6,0 +2020-05-03,Fayette,Alabama,01057,6,0 +2020-05-04,Fayette,Alabama,01057,6,0 +2020-05-05,Fayette,Alabama,01057,6,0 +2020-05-06,Fayette,Alabama,01057,6,0 +2020-05-07,Fayette,Alabama,01057,7,0 +2020-05-08,Fayette,Alabama,01057,7,0 +2020-05-09,Fayette,Alabama,01057,7,0 +2020-05-10,Fayette,Alabama,01057,7,0 +2020-05-11,Fayette,Alabama,01057,7,0 +2020-05-12,Fayette,Alabama,01057,9,0 +2020-05-13,Fayette,Alabama,01057,9,0 +2020-05-14,Fayette,Alabama,01057,10,0 +2020-05-15,Fayette,Alabama,01057,9,0 +2020-05-16,Fayette,Alabama,01057,9,0 +2020-05-17,Fayette,Alabama,01057,9,0 +2020-05-18,Fayette,Alabama,01057,9,0 +2020-05-19,Fayette,Alabama,01057,9,0 +2020-05-20,Fayette,Alabama,01057,9,0 +2020-05-21,Fayette,Alabama,01057,10,0 +2020-05-22,Fayette,Alabama,01057,11,0 +2020-05-23,Fayette,Alabama,01057,11,0 +2020-05-24,Fayette,Alabama,01057,11,0 +2020-05-25,Fayette,Alabama,01057,11,0 +2020-05-26,Fayette,Alabama,01057,13,0 +2020-05-27,Fayette,Alabama,01057,13,0 +2020-05-28,Fayette,Alabama,01057,13,0 +2020-05-29,Fayette,Alabama,01057,13,0 +2020-05-30,Fayette,Alabama,01057,15,0 +2020-05-31,Fayette,Alabama,01057,16,0 +2020-06-01,Fayette,Alabama,01057,18,0 +2020-06-02,Fayette,Alabama,01057,18,0 +2020-06-03,Fayette,Alabama,01057,18,0 +2020-06-04,Fayette,Alabama,01057,18,0 +2020-06-05,Fayette,Alabama,01057,18,0 +2020-06-06,Fayette,Alabama,01057,19,0 +2020-06-07,Fayette,Alabama,01057,20,0 +2020-06-08,Fayette,Alabama,01057,21,0 +2020-06-09,Fayette,Alabama,01057,23,0 +2020-06-10,Fayette,Alabama,01057,26,0 +2020-06-11,Fayette,Alabama,01057,26,0 +2020-06-12,Fayette,Alabama,01057,29,0 +2020-06-13,Fayette,Alabama,01057,40,0 +2020-06-14,Fayette,Alabama,01057,46,0 +2020-06-15,Fayette,Alabama,01057,48,0 +2020-06-16,Fayette,Alabama,01057,50,0 +2020-06-17,Fayette,Alabama,01057,52,0 +2020-06-18,Fayette,Alabama,01057,52,1 +2020-06-19,Fayette,Alabama,01057,60,1 +2020-06-20,Fayette,Alabama,01057,61,1 +2020-06-21,Fayette,Alabama,01057,61,1 +2020-06-22,Fayette,Alabama,01057,61,1 +2020-06-23,Fayette,Alabama,01057,62,1 +2020-06-24,Fayette,Alabama,01057,63,1 +2020-06-25,Fayette,Alabama,01057,65,1 +2020-06-26,Fayette,Alabama,01057,67,1 +2020-06-27,Fayette,Alabama,01057,68,1 +2020-06-28,Fayette,Alabama,01057,69,1 +2020-06-29,Fayette,Alabama,01057,69,1 +2020-06-30,Fayette,Alabama,01057,69,1 +2020-07-01,Fayette,Alabama,01057,70,1 +2020-07-02,Fayette,Alabama,01057,70,1 +2020-07-03,Fayette,Alabama,01057,70,1 +2020-07-04,Fayette,Alabama,01057,71,1 +2020-07-05,Fayette,Alabama,01057,73,1 +2020-07-06,Fayette,Alabama,01057,74,1 +2020-07-07,Fayette,Alabama,01057,75,1 +2020-07-08,Fayette,Alabama,01057,75,1 +2020-07-09,Fayette,Alabama,01057,81,1 +2020-03-23,Franklin,Alabama,01059,1,0 +2020-03-24,Franklin,Alabama,01059,1,0 +2020-03-25,Franklin,Alabama,01059,2,0 +2020-03-26,Franklin,Alabama,01059,3,0 +2020-03-27,Franklin,Alabama,01059,3,0 +2020-03-28,Franklin,Alabama,01059,3,0 +2020-03-29,Franklin,Alabama,01059,3,0 +2020-03-30,Franklin,Alabama,01059,3,0 +2020-03-31,Franklin,Alabama,01059,3,0 +2020-04-01,Franklin,Alabama,01059,3,0 +2020-04-02,Franklin,Alabama,01059,4,0 +2020-04-03,Franklin,Alabama,01059,5,0 +2020-04-04,Franklin,Alabama,01059,6,0 +2020-04-05,Franklin,Alabama,01059,6,0 +2020-04-06,Franklin,Alabama,01059,7,0 +2020-04-07,Franklin,Alabama,01059,7,0 +2020-04-08,Franklin,Alabama,01059,7,0 +2020-04-09,Franklin,Alabama,01059,8,0 +2020-04-10,Franklin,Alabama,01059,8,0 +2020-04-11,Franklin,Alabama,01059,8,0 +2020-04-12,Franklin,Alabama,01059,10,0 +2020-04-13,Franklin,Alabama,01059,10,0 +2020-04-14,Franklin,Alabama,01059,12,1 +2020-04-15,Franklin,Alabama,01059,17,1 +2020-04-16,Franklin,Alabama,01059,17,1 +2020-04-17,Franklin,Alabama,01059,18,1 +2020-04-18,Franklin,Alabama,01059,17,0 +2020-04-19,Franklin,Alabama,01059,17,0 +2020-04-20,Franklin,Alabama,01059,18,0 +2020-04-21,Franklin,Alabama,01059,18,0 +2020-04-22,Franklin,Alabama,01059,22,0 +2020-04-23,Franklin,Alabama,01059,25,0 +2020-04-24,Franklin,Alabama,01059,32,0 +2020-04-25,Franklin,Alabama,01059,38,0 +2020-04-26,Franklin,Alabama,01059,41,0 +2020-04-27,Franklin,Alabama,01059,43,0 +2020-04-28,Franklin,Alabama,01059,44,0 +2020-04-29,Franklin,Alabama,01059,45,0 +2020-04-30,Franklin,Alabama,01059,58,0 +2020-05-01,Franklin,Alabama,01059,78,0 +2020-05-02,Franklin,Alabama,01059,100,0 +2020-05-03,Franklin,Alabama,01059,132,0 +2020-05-04,Franklin,Alabama,01059,136,0 +2020-05-05,Franklin,Alabama,01059,152,0 +2020-05-06,Franklin,Alabama,01059,164,1 +2020-05-07,Franklin,Alabama,01059,184,1 +2020-05-08,Franklin,Alabama,01059,202,1 +2020-05-09,Franklin,Alabama,01059,216,1 +2020-05-10,Franklin,Alabama,01059,226,1 +2020-05-11,Franklin,Alabama,01059,247,2 +2020-05-12,Franklin,Alabama,01059,264,3 +2020-05-13,Franklin,Alabama,01059,270,3 +2020-05-14,Franklin,Alabama,01059,288,3 +2020-05-15,Franklin,Alabama,01059,309,4 +2020-05-16,Franklin,Alabama,01059,329,4 +2020-05-17,Franklin,Alabama,01059,334,4 +2020-05-18,Franklin,Alabama,01059,344,4 +2020-05-19,Franklin,Alabama,01059,364,4 +2020-05-20,Franklin,Alabama,01059,399,5 +2020-05-21,Franklin,Alabama,01059,411,5 +2020-05-22,Franklin,Alabama,01059,422,5 +2020-05-23,Franklin,Alabama,01059,435,6 +2020-05-24,Franklin,Alabama,01059,447,6 +2020-05-25,Franklin,Alabama,01059,467,6 +2020-05-26,Franklin,Alabama,01059,486,6 +2020-05-27,Franklin,Alabama,01059,498,6 +2020-05-28,Franklin,Alabama,01059,514,7 +2020-05-29,Franklin,Alabama,01059,540,7 +2020-05-30,Franklin,Alabama,01059,545,7 +2020-05-31,Franklin,Alabama,01059,556,7 +2020-06-01,Franklin,Alabama,01059,565,8 +2020-06-02,Franklin,Alabama,01059,579,8 +2020-06-03,Franklin,Alabama,01059,581,8 +2020-06-04,Franklin,Alabama,01059,588,8 +2020-06-05,Franklin,Alabama,01059,596,9 +2020-06-06,Franklin,Alabama,01059,611,9 +2020-06-07,Franklin,Alabama,01059,620,9 +2020-06-08,Franklin,Alabama,01059,628,10 +2020-06-09,Franklin,Alabama,01059,634,10 +2020-06-10,Franklin,Alabama,01059,637,10 +2020-06-11,Franklin,Alabama,01059,655,10 +2020-06-12,Franklin,Alabama,01059,668,10 +2020-06-13,Franklin,Alabama,01059,713,10 +2020-06-14,Franklin,Alabama,01059,727,10 +2020-06-15,Franklin,Alabama,01059,734,10 +2020-06-16,Franklin,Alabama,01059,741,10 +2020-06-17,Franklin,Alabama,01059,758,10 +2020-06-18,Franklin,Alabama,01059,764,10 +2020-06-19,Franklin,Alabama,01059,773,10 +2020-06-20,Franklin,Alabama,01059,776,10 +2020-06-21,Franklin,Alabama,01059,782,10 +2020-06-22,Franklin,Alabama,01059,783,10 +2020-06-23,Franklin,Alabama,01059,788,10 +2020-06-24,Franklin,Alabama,01059,803,10 +2020-06-25,Franklin,Alabama,01059,816,11 +2020-06-26,Franklin,Alabama,01059,830,11 +2020-06-27,Franklin,Alabama,01059,833,11 +2020-06-28,Franklin,Alabama,01059,839,11 +2020-06-29,Franklin,Alabama,01059,835,11 +2020-06-30,Franklin,Alabama,01059,847,13 +2020-07-01,Franklin,Alabama,01059,856,13 +2020-07-02,Franklin,Alabama,01059,867,14 +2020-07-03,Franklin,Alabama,01059,883,14 +2020-07-04,Franklin,Alabama,01059,894,14 +2020-07-05,Franklin,Alabama,01059,900,14 +2020-07-06,Franklin,Alabama,01059,903,14 +2020-07-07,Franklin,Alabama,01059,907,16 +2020-07-08,Franklin,Alabama,01059,911,16 +2020-07-09,Franklin,Alabama,01059,927,16 +2020-04-12,Geneva,Alabama,01061,1,0 +2020-04-13,Geneva,Alabama,01061,1,0 +2020-04-14,Geneva,Alabama,01061,1,0 +2020-04-15,Geneva,Alabama,01061,2,0 +2020-04-16,Geneva,Alabama,01061,2,0 +2020-04-17,Geneva,Alabama,01061,2,0 +2020-04-18,Geneva,Alabama,01061,4,0 +2020-04-19,Geneva,Alabama,01061,4,0 +2020-04-20,Geneva,Alabama,01061,4,0 +2020-04-21,Geneva,Alabama,01061,4,0 +2020-04-22,Geneva,Alabama,01061,5,0 +2020-04-23,Geneva,Alabama,01061,6,0 +2020-04-24,Geneva,Alabama,01061,6,0 +2020-04-25,Geneva,Alabama,01061,7,0 +2020-04-26,Geneva,Alabama,01061,8,0 +2020-04-27,Geneva,Alabama,01061,8,0 +2020-04-28,Geneva,Alabama,01061,8,0 +2020-04-29,Geneva,Alabama,01061,9,0 +2020-04-30,Geneva,Alabama,01061,9,0 +2020-05-01,Geneva,Alabama,01061,9,0 +2020-05-02,Geneva,Alabama,01061,10,0 +2020-05-03,Geneva,Alabama,01061,10,0 +2020-05-04,Geneva,Alabama,01061,11,0 +2020-05-05,Geneva,Alabama,01061,11,0 +2020-05-06,Geneva,Alabama,01061,11,0 +2020-05-07,Geneva,Alabama,01061,11,0 +2020-05-08,Geneva,Alabama,01061,12,0 +2020-05-09,Geneva,Alabama,01061,13,0 +2020-05-10,Geneva,Alabama,01061,13,0 +2020-05-11,Geneva,Alabama,01061,15,0 +2020-05-12,Geneva,Alabama,01061,16,0 +2020-05-13,Geneva,Alabama,01061,17,0 +2020-05-14,Geneva,Alabama,01061,18,0 +2020-05-15,Geneva,Alabama,01061,19,0 +2020-05-16,Geneva,Alabama,01061,20,0 +2020-05-17,Geneva,Alabama,01061,20,0 +2020-05-18,Geneva,Alabama,01061,22,0 +2020-05-19,Geneva,Alabama,01061,23,0 +2020-05-20,Geneva,Alabama,01061,26,0 +2020-05-21,Geneva,Alabama,01061,28,0 +2020-05-22,Geneva,Alabama,01061,28,0 +2020-05-23,Geneva,Alabama,01061,31,0 +2020-05-24,Geneva,Alabama,01061,33,0 +2020-05-25,Geneva,Alabama,01061,35,0 +2020-05-26,Geneva,Alabama,01061,40,0 +2020-05-27,Geneva,Alabama,01061,40,0 +2020-05-28,Geneva,Alabama,01061,40,0 +2020-05-29,Geneva,Alabama,01061,39,0 +2020-05-30,Geneva,Alabama,01061,40,0 +2020-05-31,Geneva,Alabama,01061,43,0 +2020-06-01,Geneva,Alabama,01061,43,0 +2020-06-02,Geneva,Alabama,01061,43,0 +2020-06-03,Geneva,Alabama,01061,44,0 +2020-06-04,Geneva,Alabama,01061,44,0 +2020-06-05,Geneva,Alabama,01061,45,0 +2020-06-06,Geneva,Alabama,01061,46,0 +2020-06-07,Geneva,Alabama,01061,46,0 +2020-06-08,Geneva,Alabama,01061,46,0 +2020-06-09,Geneva,Alabama,01061,46,0 +2020-06-10,Geneva,Alabama,01061,46,0 +2020-06-11,Geneva,Alabama,01061,46,0 +2020-06-12,Geneva,Alabama,01061,46,0 +2020-06-13,Geneva,Alabama,01061,46,0 +2020-06-14,Geneva,Alabama,01061,46,0 +2020-06-15,Geneva,Alabama,01061,46,0 +2020-06-16,Geneva,Alabama,01061,48,0 +2020-06-17,Geneva,Alabama,01061,48,0 +2020-06-18,Geneva,Alabama,01061,49,0 +2020-06-19,Geneva,Alabama,01061,49,0 +2020-06-20,Geneva,Alabama,01061,51,0 +2020-06-21,Geneva,Alabama,01061,51,0 +2020-06-22,Geneva,Alabama,01061,51,0 +2020-06-23,Geneva,Alabama,01061,51,0 +2020-06-24,Geneva,Alabama,01061,53,0 +2020-06-25,Geneva,Alabama,01061,55,0 +2020-06-26,Geneva,Alabama,01061,59,0 +2020-06-27,Geneva,Alabama,01061,60,0 +2020-06-28,Geneva,Alabama,01061,60,0 +2020-06-29,Geneva,Alabama,01061,59,0 +2020-06-30,Geneva,Alabama,01061,63,0 +2020-07-01,Geneva,Alabama,01061,67,0 +2020-07-02,Geneva,Alabama,01061,70,0 +2020-07-03,Geneva,Alabama,01061,78,0 +2020-07-04,Geneva,Alabama,01061,79,0 +2020-07-05,Geneva,Alabama,01061,80,0 +2020-07-06,Geneva,Alabama,01061,83,0 +2020-07-07,Geneva,Alabama,01061,84,0 +2020-07-08,Geneva,Alabama,01061,86,0 +2020-07-09,Geneva,Alabama,01061,92,0 +2020-03-27,Greene,Alabama,01063,1,0 +2020-03-28,Greene,Alabama,01063,3,0 +2020-03-29,Greene,Alabama,01063,3,0 +2020-03-30,Greene,Alabama,01063,3,0 +2020-03-31,Greene,Alabama,01063,3,0 +2020-04-01,Greene,Alabama,01063,4,0 +2020-04-02,Greene,Alabama,01063,4,0 +2020-04-03,Greene,Alabama,01063,5,0 +2020-04-04,Greene,Alabama,01063,5,0 +2020-04-05,Greene,Alabama,01063,6,0 +2020-04-06,Greene,Alabama,01063,8,0 +2020-04-07,Greene,Alabama,01063,10,0 +2020-04-08,Greene,Alabama,01063,12,0 +2020-04-09,Greene,Alabama,01063,13,0 +2020-04-10,Greene,Alabama,01063,13,0 +2020-04-11,Greene,Alabama,01063,14,0 +2020-04-12,Greene,Alabama,01063,17,0 +2020-04-13,Greene,Alabama,01063,18,0 +2020-04-14,Greene,Alabama,01063,18,0 +2020-04-15,Greene,Alabama,01063,19,0 +2020-04-16,Greene,Alabama,01063,22,0 +2020-04-17,Greene,Alabama,01063,24,0 +2020-04-18,Greene,Alabama,01063,29,0 +2020-04-19,Greene,Alabama,01063,29,0 +2020-04-20,Greene,Alabama,01063,32,0 +2020-04-21,Greene,Alabama,01063,32,0 +2020-04-22,Greene,Alabama,01063,40,0 +2020-04-23,Greene,Alabama,01063,41,0 +2020-04-24,Greene,Alabama,01063,44,0 +2020-04-25,Greene,Alabama,01063,44,0 +2020-04-26,Greene,Alabama,01063,46,0 +2020-04-27,Greene,Alabama,01063,46,0 +2020-04-28,Greene,Alabama,01063,47,1 +2020-04-29,Greene,Alabama,01063,50,1 +2020-04-30,Greene,Alabama,01063,55,1 +2020-05-01,Greene,Alabama,01063,54,1 +2020-05-02,Greene,Alabama,01063,55,1 +2020-05-03,Greene,Alabama,01063,58,1 +2020-05-04,Greene,Alabama,01063,61,1 +2020-05-05,Greene,Alabama,01063,61,2 +2020-05-06,Greene,Alabama,01063,64,2 +2020-05-07,Greene,Alabama,01063,67,2 +2020-05-08,Greene,Alabama,01063,70,3 +2020-05-09,Greene,Alabama,01063,70,3 +2020-05-10,Greene,Alabama,01063,70,3 +2020-05-11,Greene,Alabama,01063,73,3 +2020-05-12,Greene,Alabama,01063,73,4 +2020-05-13,Greene,Alabama,01063,74,4 +2020-05-14,Greene,Alabama,01063,76,4 +2020-05-15,Greene,Alabama,01063,79,4 +2020-05-16,Greene,Alabama,01063,81,4 +2020-05-17,Greene,Alabama,01063,81,4 +2020-05-18,Greene,Alabama,01063,87,4 +2020-05-19,Greene,Alabama,01063,87,4 +2020-05-20,Greene,Alabama,01063,86,4 +2020-05-21,Greene,Alabama,01063,88,4 +2020-05-22,Greene,Alabama,01063,88,4 +2020-05-23,Greene,Alabama,01063,90,4 +2020-05-24,Greene,Alabama,01063,89,4 +2020-05-25,Greene,Alabama,01063,91,4 +2020-05-26,Greene,Alabama,01063,91,4 +2020-05-27,Greene,Alabama,01063,91,4 +2020-05-28,Greene,Alabama,01063,92,4 +2020-05-29,Greene,Alabama,01063,93,4 +2020-05-30,Greene,Alabama,01063,94,4 +2020-05-31,Greene,Alabama,01063,94,4 +2020-06-01,Greene,Alabama,01063,95,4 +2020-06-02,Greene,Alabama,01063,95,4 +2020-06-03,Greene,Alabama,01063,95,4 +2020-06-04,Greene,Alabama,01063,95,4 +2020-06-05,Greene,Alabama,01063,95,5 +2020-06-06,Greene,Alabama,01063,98,5 +2020-06-07,Greene,Alabama,01063,98,5 +2020-06-08,Greene,Alabama,01063,99,5 +2020-06-09,Greene,Alabama,01063,102,5 +2020-06-10,Greene,Alabama,01063,107,5 +2020-06-11,Greene,Alabama,01063,112,5 +2020-06-12,Greene,Alabama,01063,117,5 +2020-06-13,Greene,Alabama,01063,119,5 +2020-06-14,Greene,Alabama,01063,123,5 +2020-06-15,Greene,Alabama,01063,132,5 +2020-06-16,Greene,Alabama,01063,135,5 +2020-06-17,Greene,Alabama,01063,135,5 +2020-06-18,Greene,Alabama,01063,144,5 +2020-06-19,Greene,Alabama,01063,151,5 +2020-06-20,Greene,Alabama,01063,151,5 +2020-06-21,Greene,Alabama,01063,154,5 +2020-06-22,Greene,Alabama,01063,154,5 +2020-06-23,Greene,Alabama,01063,157,6 +2020-06-24,Greene,Alabama,01063,157,6 +2020-06-25,Greene,Alabama,01063,160,6 +2020-06-26,Greene,Alabama,01063,160,6 +2020-06-27,Greene,Alabama,01063,164,7 +2020-06-28,Greene,Alabama,01063,164,7 +2020-06-29,Greene,Alabama,01063,164,7 +2020-06-30,Greene,Alabama,01063,164,7 +2020-07-01,Greene,Alabama,01063,166,7 +2020-07-02,Greene,Alabama,01063,178,8 +2020-07-03,Greene,Alabama,01063,183,8 +2020-07-04,Greene,Alabama,01063,183,8 +2020-07-05,Greene,Alabama,01063,186,8 +2020-07-06,Greene,Alabama,01063,186,8 +2020-07-07,Greene,Alabama,01063,186,8 +2020-07-08,Greene,Alabama,01063,188,8 +2020-07-09,Greene,Alabama,01063,192,8 +2020-03-30,Hale,Alabama,01065,1,0 +2020-03-31,Hale,Alabama,01065,1,0 +2020-04-01,Hale,Alabama,01065,1,0 +2020-04-02,Hale,Alabama,01065,1,0 +2020-04-03,Hale,Alabama,01065,3,0 +2020-04-04,Hale,Alabama,01065,3,0 +2020-04-05,Hale,Alabama,01065,3,0 +2020-04-06,Hale,Alabama,01065,5,0 +2020-04-07,Hale,Alabama,01065,7,0 +2020-04-08,Hale,Alabama,01065,7,0 +2020-04-09,Hale,Alabama,01065,7,0 +2020-04-10,Hale,Alabama,01065,7,0 +2020-04-11,Hale,Alabama,01065,11,0 +2020-04-12,Hale,Alabama,01065,15,0 +2020-04-13,Hale,Alabama,01065,15,0 +2020-04-14,Hale,Alabama,01065,17,0 +2020-04-15,Hale,Alabama,01065,20,0 +2020-04-16,Hale,Alabama,01065,22,0 +2020-04-17,Hale,Alabama,01065,22,0 +2020-04-18,Hale,Alabama,01065,23,1 +2020-04-19,Hale,Alabama,01065,26,1 +2020-04-20,Hale,Alabama,01065,31,1 +2020-04-21,Hale,Alabama,01065,34,1 +2020-04-22,Hale,Alabama,01065,36,1 +2020-04-23,Hale,Alabama,01065,37,0 +2020-04-24,Hale,Alabama,01065,39,2 +2020-04-25,Hale,Alabama,01065,40,2 +2020-04-26,Hale,Alabama,01065,41,2 +2020-04-27,Hale,Alabama,01065,41,2 +2020-04-28,Hale,Alabama,01065,41,2 +2020-04-29,Hale,Alabama,01065,43,2 +2020-04-30,Hale,Alabama,01065,47,2 +2020-05-01,Hale,Alabama,01065,50,2 +2020-05-02,Hale,Alabama,01065,52,2 +2020-05-03,Hale,Alabama,01065,52,2 +2020-05-04,Hale,Alabama,01065,56,2 +2020-05-05,Hale,Alabama,01065,59,2 +2020-05-06,Hale,Alabama,01065,60,2 +2020-05-07,Hale,Alabama,01065,62,2 +2020-05-08,Hale,Alabama,01065,62,2 +2020-05-09,Hale,Alabama,01065,66,2 +2020-05-10,Hale,Alabama,01065,69,2 +2020-05-11,Hale,Alabama,01065,72,2 +2020-05-12,Hale,Alabama,01065,74,2 +2020-05-13,Hale,Alabama,01065,74,2 +2020-05-14,Hale,Alabama,01065,79,2 +2020-05-15,Hale,Alabama,01065,79,2 +2020-05-16,Hale,Alabama,01065,84,2 +2020-05-17,Hale,Alabama,01065,85,2 +2020-05-18,Hale,Alabama,01065,91,2 +2020-05-19,Hale,Alabama,01065,96,2 +2020-05-20,Hale,Alabama,01065,106,2 +2020-05-21,Hale,Alabama,01065,110,3 +2020-05-22,Hale,Alabama,01065,119,3 +2020-05-23,Hale,Alabama,01065,124,3 +2020-05-24,Hale,Alabama,01065,129,3 +2020-05-25,Hale,Alabama,01065,132,4 +2020-05-26,Hale,Alabama,01065,135,4 +2020-05-27,Hale,Alabama,01065,141,6 +2020-05-28,Hale,Alabama,01065,151,7 +2020-05-29,Hale,Alabama,01065,157,8 +2020-05-30,Hale,Alabama,01065,159,8 +2020-05-31,Hale,Alabama,01065,173,9 +2020-06-01,Hale,Alabama,01065,179,9 +2020-06-02,Hale,Alabama,01065,182,9 +2020-06-03,Hale,Alabama,01065,183,9 +2020-06-04,Hale,Alabama,01065,189,9 +2020-06-05,Hale,Alabama,01065,196,10 +2020-06-06,Hale,Alabama,01065,199,11 +2020-06-07,Hale,Alabama,01065,206,11 +2020-06-08,Hale,Alabama,01065,211,11 +2020-06-09,Hale,Alabama,01065,214,11 +2020-06-10,Hale,Alabama,01065,215,11 +2020-06-11,Hale,Alabama,01065,224,11 +2020-06-12,Hale,Alabama,01065,228,14 +2020-06-13,Hale,Alabama,01065,231,14 +2020-06-14,Hale,Alabama,01065,237,14 +2020-06-15,Hale,Alabama,01065,240,15 +2020-06-16,Hale,Alabama,01065,241,15 +2020-06-17,Hale,Alabama,01065,242,15 +2020-06-18,Hale,Alabama,01065,253,15 +2020-06-19,Hale,Alabama,01065,261,16 +2020-06-20,Hale,Alabama,01065,262,18 +2020-06-21,Hale,Alabama,01065,263,18 +2020-06-22,Hale,Alabama,01065,267,18 +2020-06-23,Hale,Alabama,01065,269,18 +2020-06-24,Hale,Alabama,01065,269,19 +2020-06-25,Hale,Alabama,01065,272,19 +2020-06-26,Hale,Alabama,01065,275,19 +2020-06-27,Hale,Alabama,01065,278,20 +2020-06-28,Hale,Alabama,01065,280,20 +2020-06-29,Hale,Alabama,01065,286,20 +2020-06-30,Hale,Alabama,01065,290,20 +2020-07-01,Hale,Alabama,01065,298,21 +2020-07-02,Hale,Alabama,01065,301,21 +2020-07-03,Hale,Alabama,01065,311,21 +2020-07-04,Hale,Alabama,01065,315,21 +2020-07-05,Hale,Alabama,01065,316,21 +2020-07-06,Hale,Alabama,01065,319,21 +2020-07-07,Hale,Alabama,01065,320,21 +2020-07-08,Hale,Alabama,01065,322,22 +2020-07-09,Hale,Alabama,01065,342,22 +2020-04-03,Henry,Alabama,01067,2,0 +2020-04-04,Henry,Alabama,01067,2,0 +2020-04-05,Henry,Alabama,01067,3,0 +2020-04-06,Henry,Alabama,01067,4,0 +2020-04-07,Henry,Alabama,01067,4,0 +2020-04-08,Henry,Alabama,01067,5,0 +2020-04-09,Henry,Alabama,01067,8,0 +2020-04-10,Henry,Alabama,01067,10,0 +2020-04-11,Henry,Alabama,01067,10,0 +2020-04-12,Henry,Alabama,01067,11,0 +2020-04-13,Henry,Alabama,01067,13,0 +2020-04-14,Henry,Alabama,01067,14,0 +2020-04-15,Henry,Alabama,01067,15,0 +2020-04-16,Henry,Alabama,01067,15,0 +2020-04-17,Henry,Alabama,01067,16,0 +2020-04-18,Henry,Alabama,01067,17,0 +2020-04-19,Henry,Alabama,01067,17,0 +2020-04-20,Henry,Alabama,01067,18,0 +2020-04-21,Henry,Alabama,01067,20,0 +2020-04-22,Henry,Alabama,01067,20,0 +2020-04-23,Henry,Alabama,01067,22,0 +2020-04-24,Henry,Alabama,01067,22,1 +2020-04-25,Henry,Alabama,01067,22,1 +2020-04-26,Henry,Alabama,01067,22,1 +2020-04-27,Henry,Alabama,01067,22,1 +2020-04-28,Henry,Alabama,01067,22,1 +2020-04-29,Henry,Alabama,01067,23,1 +2020-04-30,Henry,Alabama,01067,24,1 +2020-05-01,Henry,Alabama,01067,24,1 +2020-05-02,Henry,Alabama,01067,26,1 +2020-05-03,Henry,Alabama,01067,27,1 +2020-05-04,Henry,Alabama,01067,27,1 +2020-05-05,Henry,Alabama,01067,27,1 +2020-05-06,Henry,Alabama,01067,27,1 +2020-05-07,Henry,Alabama,01067,27,1 +2020-05-08,Henry,Alabama,01067,27,1 +2020-05-09,Henry,Alabama,01067,28,1 +2020-05-10,Henry,Alabama,01067,28,1 +2020-05-11,Henry,Alabama,01067,30,1 +2020-05-12,Henry,Alabama,01067,32,1 +2020-05-13,Henry,Alabama,01067,33,1 +2020-05-14,Henry,Alabama,01067,35,1 +2020-05-15,Henry,Alabama,01067,37,1 +2020-05-16,Henry,Alabama,01067,39,1 +2020-05-17,Henry,Alabama,01067,39,1 +2020-05-18,Henry,Alabama,01067,40,1 +2020-05-19,Henry,Alabama,01067,44,1 +2020-05-20,Henry,Alabama,01067,48,1 +2020-05-21,Henry,Alabama,01067,48,1 +2020-05-22,Henry,Alabama,01067,50,1 +2020-05-23,Henry,Alabama,01067,52,1 +2020-05-24,Henry,Alabama,01067,56,2 +2020-05-25,Henry,Alabama,01067,64,2 +2020-05-26,Henry,Alabama,01067,69,2 +2020-05-27,Henry,Alabama,01067,70,2 +2020-05-28,Henry,Alabama,01067,71,2 +2020-05-29,Henry,Alabama,01067,73,2 +2020-05-30,Henry,Alabama,01067,74,2 +2020-05-31,Henry,Alabama,01067,80,2 +2020-06-01,Henry,Alabama,01067,80,2 +2020-06-02,Henry,Alabama,01067,81,2 +2020-06-03,Henry,Alabama,01067,81,2 +2020-06-04,Henry,Alabama,01067,82,2 +2020-06-05,Henry,Alabama,01067,84,2 +2020-06-06,Henry,Alabama,01067,85,2 +2020-06-07,Henry,Alabama,01067,88,2 +2020-06-08,Henry,Alabama,01067,89,2 +2020-06-09,Henry,Alabama,01067,89,2 +2020-06-10,Henry,Alabama,01067,93,2 +2020-06-11,Henry,Alabama,01067,94,2 +2020-06-12,Henry,Alabama,01067,97,2 +2020-06-13,Henry,Alabama,01067,99,2 +2020-06-14,Henry,Alabama,01067,107,2 +2020-06-15,Henry,Alabama,01067,108,2 +2020-06-16,Henry,Alabama,01067,109,2 +2020-06-17,Henry,Alabama,01067,109,2 +2020-06-18,Henry,Alabama,01067,110,2 +2020-06-19,Henry,Alabama,01067,111,2 +2020-06-20,Henry,Alabama,01067,115,3 +2020-06-21,Henry,Alabama,01067,115,3 +2020-06-22,Henry,Alabama,01067,119,3 +2020-06-23,Henry,Alabama,01067,121,3 +2020-06-24,Henry,Alabama,01067,123,4 +2020-06-25,Henry,Alabama,01067,128,4 +2020-06-26,Henry,Alabama,01067,130,4 +2020-06-27,Henry,Alabama,01067,132,4 +2020-06-28,Henry,Alabama,01067,132,4 +2020-06-29,Henry,Alabama,01067,129,4 +2020-06-30,Henry,Alabama,01067,130,4 +2020-07-01,Henry,Alabama,01067,131,4 +2020-07-02,Henry,Alabama,01067,131,4 +2020-07-03,Henry,Alabama,01067,132,4 +2020-07-04,Henry,Alabama,01067,133,4 +2020-07-05,Henry,Alabama,01067,135,4 +2020-07-06,Henry,Alabama,01067,137,4 +2020-07-07,Henry,Alabama,01067,137,4 +2020-07-08,Henry,Alabama,01067,141,4 +2020-07-09,Henry,Alabama,01067,144,4 +2020-03-23,Houston,Alabama,01069,1,0 +2020-03-24,Houston,Alabama,01069,1,0 +2020-03-25,Houston,Alabama,01069,2,0 +2020-03-26,Houston,Alabama,01069,3,0 +2020-03-27,Houston,Alabama,01069,4,0 +2020-03-28,Houston,Alabama,01069,4,0 +2020-03-29,Houston,Alabama,01069,8,0 +2020-03-30,Houston,Alabama,01069,9,0 +2020-03-31,Houston,Alabama,01069,8,0 +2020-04-01,Houston,Alabama,01069,9,1 +2020-04-02,Houston,Alabama,01069,9,1 +2020-04-03,Houston,Alabama,01069,12,1 +2020-04-04,Houston,Alabama,01069,14,1 +2020-04-05,Houston,Alabama,01069,20,1 +2020-04-06,Houston,Alabama,01069,24,1 +2020-04-07,Houston,Alabama,01069,25,1 +2020-04-08,Houston,Alabama,01069,27,1 +2020-04-09,Houston,Alabama,01069,33,1 +2020-04-10,Houston,Alabama,01069,33,1 +2020-04-11,Houston,Alabama,01069,37,1 +2020-04-12,Houston,Alabama,01069,44,1 +2020-04-13,Houston,Alabama,01069,47,1 +2020-04-14,Houston,Alabama,01069,52,2 +2020-04-15,Houston,Alabama,01069,55,3 +2020-04-16,Houston,Alabama,01069,58,3 +2020-04-17,Houston,Alabama,01069,64,3 +2020-04-18,Houston,Alabama,01069,63,2 +2020-04-19,Houston,Alabama,01069,66,2 +2020-04-20,Houston,Alabama,01069,70,2 +2020-04-21,Houston,Alabama,01069,73,3 +2020-04-22,Houston,Alabama,01069,75,3 +2020-04-23,Houston,Alabama,01069,78,3 +2020-04-24,Houston,Alabama,01069,76,3 +2020-04-25,Houston,Alabama,01069,76,3 +2020-04-26,Houston,Alabama,01069,77,3 +2020-04-27,Houston,Alabama,01069,79,3 +2020-04-28,Houston,Alabama,01069,84,3 +2020-04-29,Houston,Alabama,01069,87,3 +2020-04-30,Houston,Alabama,01069,90,4 +2020-05-01,Houston,Alabama,01069,90,4 +2020-05-02,Houston,Alabama,01069,93,4 +2020-05-03,Houston,Alabama,01069,95,4 +2020-05-04,Houston,Alabama,01069,97,4 +2020-05-05,Houston,Alabama,01069,98,4 +2020-05-06,Houston,Alabama,01069,99,4 +2020-05-07,Houston,Alabama,01069,100,4 +2020-05-08,Houston,Alabama,01069,102,4 +2020-05-09,Houston,Alabama,01069,104,4 +2020-05-10,Houston,Alabama,01069,107,4 +2020-05-11,Houston,Alabama,01069,107,4 +2020-05-12,Houston,Alabama,01069,114,4 +2020-05-13,Houston,Alabama,01069,115,4 +2020-05-14,Houston,Alabama,01069,125,4 +2020-05-15,Houston,Alabama,01069,129,4 +2020-05-16,Houston,Alabama,01069,132,4 +2020-05-17,Houston,Alabama,01069,132,4 +2020-05-18,Houston,Alabama,01069,137,4 +2020-05-19,Houston,Alabama,01069,141,4 +2020-05-20,Houston,Alabama,01069,149,3 +2020-05-21,Houston,Alabama,01069,154,3 +2020-05-22,Houston,Alabama,01069,156,3 +2020-05-23,Houston,Alabama,01069,161,4 +2020-05-24,Houston,Alabama,01069,164,4 +2020-05-25,Houston,Alabama,01069,172,4 +2020-05-26,Houston,Alabama,01069,183,4 +2020-05-27,Houston,Alabama,01069,185,4 +2020-05-28,Houston,Alabama,01069,188,4 +2020-05-29,Houston,Alabama,01069,204,4 +2020-05-30,Houston,Alabama,01069,209,4 +2020-05-31,Houston,Alabama,01069,220,4 +2020-06-01,Houston,Alabama,01069,231,4 +2020-06-02,Houston,Alabama,01069,233,5 +2020-06-03,Houston,Alabama,01069,236,5 +2020-06-04,Houston,Alabama,01069,236,5 +2020-06-05,Houston,Alabama,01069,237,5 +2020-06-06,Houston,Alabama,01069,247,5 +2020-06-07,Houston,Alabama,01069,255,5 +2020-06-08,Houston,Alabama,01069,256,5 +2020-06-09,Houston,Alabama,01069,263,5 +2020-06-10,Houston,Alabama,01069,269,5 +2020-06-11,Houston,Alabama,01069,280,5 +2020-06-12,Houston,Alabama,01069,289,5 +2020-06-13,Houston,Alabama,01069,303,5 +2020-06-14,Houston,Alabama,01069,317,5 +2020-06-15,Houston,Alabama,01069,325,5 +2020-06-16,Houston,Alabama,01069,329,5 +2020-06-17,Houston,Alabama,01069,338,5 +2020-06-18,Houston,Alabama,01069,343,5 +2020-06-19,Houston,Alabama,01069,352,5 +2020-06-20,Houston,Alabama,01069,356,5 +2020-06-21,Houston,Alabama,01069,357,5 +2020-06-22,Houston,Alabama,01069,360,5 +2020-06-23,Houston,Alabama,01069,366,5 +2020-06-24,Houston,Alabama,01069,384,5 +2020-06-25,Houston,Alabama,01069,385,5 +2020-06-26,Houston,Alabama,01069,409,5 +2020-06-27,Houston,Alabama,01069,433,6 +2020-06-28,Houston,Alabama,01069,438,6 +2020-06-29,Houston,Alabama,01069,435,6 +2020-06-30,Houston,Alabama,01069,439,6 +2020-07-01,Houston,Alabama,01069,449,6 +2020-07-02,Houston,Alabama,01069,461,6 +2020-07-03,Houston,Alabama,01069,476,6 +2020-07-04,Houston,Alabama,01069,494,6 +2020-07-05,Houston,Alabama,01069,511,6 +2020-07-06,Houston,Alabama,01069,522,6 +2020-07-07,Houston,Alabama,01069,525,8 +2020-07-08,Houston,Alabama,01069,551,8 +2020-07-09,Houston,Alabama,01069,567,8 +2020-03-20,Jackson,Alabama,01071,1,0 +2020-03-21,Jackson,Alabama,01071,1,0 +2020-03-22,Jackson,Alabama,01071,1,0 +2020-03-23,Jackson,Alabama,01071,1,0 +2020-03-24,Jackson,Alabama,01071,2,0 +2020-03-25,Jackson,Alabama,01071,2,1 +2020-03-26,Jackson,Alabama,01071,4,1 +2020-03-27,Jackson,Alabama,01071,5,1 +2020-03-28,Jackson,Alabama,01071,5,1 +2020-03-29,Jackson,Alabama,01071,5,1 +2020-03-30,Jackson,Alabama,01071,7,1 +2020-03-31,Jackson,Alabama,01071,8,1 +2020-04-01,Jackson,Alabama,01071,8,1 +2020-04-02,Jackson,Alabama,01071,9,1 +2020-04-03,Jackson,Alabama,01071,12,1 +2020-04-04,Jackson,Alabama,01071,13,1 +2020-04-05,Jackson,Alabama,01071,14,1 +2020-04-06,Jackson,Alabama,01071,17,1 +2020-04-07,Jackson,Alabama,01071,18,1 +2020-04-08,Jackson,Alabama,01071,20,1 +2020-04-09,Jackson,Alabama,01071,22,2 +2020-04-10,Jackson,Alabama,01071,22,2 +2020-04-11,Jackson,Alabama,01071,22,2 +2020-04-12,Jackson,Alabama,01071,25,2 +2020-04-13,Jackson,Alabama,01071,26,2 +2020-04-14,Jackson,Alabama,01071,29,2 +2020-04-15,Jackson,Alabama,01071,31,2 +2020-04-16,Jackson,Alabama,01071,32,2 +2020-04-17,Jackson,Alabama,01071,32,2 +2020-04-18,Jackson,Alabama,01071,38,2 +2020-04-19,Jackson,Alabama,01071,38,2 +2020-04-20,Jackson,Alabama,01071,39,2 +2020-04-21,Jackson,Alabama,01071,41,2 +2020-04-22,Jackson,Alabama,01071,42,2 +2020-04-23,Jackson,Alabama,01071,43,2 +2020-04-24,Jackson,Alabama,01071,45,2 +2020-04-25,Jackson,Alabama,01071,45,2 +2020-04-26,Jackson,Alabama,01071,45,2 +2020-04-27,Jackson,Alabama,01071,45,2 +2020-04-28,Jackson,Alabama,01071,46,2 +2020-04-29,Jackson,Alabama,01071,47,2 +2020-04-30,Jackson,Alabama,01071,48,2 +2020-05-01,Jackson,Alabama,01071,49,2 +2020-05-02,Jackson,Alabama,01071,50,2 +2020-05-03,Jackson,Alabama,01071,50,2 +2020-05-04,Jackson,Alabama,01071,50,2 +2020-05-05,Jackson,Alabama,01071,53,2 +2020-05-06,Jackson,Alabama,01071,53,2 +2020-05-07,Jackson,Alabama,01071,56,2 +2020-05-08,Jackson,Alabama,01071,59,2 +2020-05-09,Jackson,Alabama,01071,59,2 +2020-05-10,Jackson,Alabama,01071,60,2 +2020-05-11,Jackson,Alabama,01071,60,2 +2020-05-12,Jackson,Alabama,01071,60,2 +2020-05-13,Jackson,Alabama,01071,60,2 +2020-05-14,Jackson,Alabama,01071,60,2 +2020-05-15,Jackson,Alabama,01071,61,2 +2020-05-16,Jackson,Alabama,01071,63,2 +2020-05-17,Jackson,Alabama,01071,63,2 +2020-05-18,Jackson,Alabama,01071,64,2 +2020-05-19,Jackson,Alabama,01071,63,2 +2020-05-20,Jackson,Alabama,01071,66,2 +2020-05-21,Jackson,Alabama,01071,69,2 +2020-05-22,Jackson,Alabama,01071,69,2 +2020-05-23,Jackson,Alabama,01071,69,2 +2020-05-24,Jackson,Alabama,01071,69,2 +2020-05-25,Jackson,Alabama,01071,71,2 +2020-05-26,Jackson,Alabama,01071,72,2 +2020-05-27,Jackson,Alabama,01071,74,2 +2020-05-28,Jackson,Alabama,01071,75,2 +2020-05-29,Jackson,Alabama,01071,76,2 +2020-05-30,Jackson,Alabama,01071,77,2 +2020-05-31,Jackson,Alabama,01071,78,2 +2020-06-01,Jackson,Alabama,01071,84,2 +2020-06-02,Jackson,Alabama,01071,86,3 +2020-06-03,Jackson,Alabama,01071,86,3 +2020-06-04,Jackson,Alabama,01071,86,3 +2020-06-05,Jackson,Alabama,01071,89,3 +2020-06-06,Jackson,Alabama,01071,91,3 +2020-06-07,Jackson,Alabama,01071,93,3 +2020-06-08,Jackson,Alabama,01071,97,3 +2020-06-09,Jackson,Alabama,01071,100,3 +2020-06-10,Jackson,Alabama,01071,104,3 +2020-06-11,Jackson,Alabama,01071,110,3 +2020-06-12,Jackson,Alabama,01071,116,3 +2020-06-13,Jackson,Alabama,01071,126,3 +2020-06-14,Jackson,Alabama,01071,125,3 +2020-06-15,Jackson,Alabama,01071,125,3 +2020-06-16,Jackson,Alabama,01071,128,3 +2020-06-17,Jackson,Alabama,01071,137,3 +2020-06-18,Jackson,Alabama,01071,142,3 +2020-06-19,Jackson,Alabama,01071,150,3 +2020-06-20,Jackson,Alabama,01071,150,3 +2020-06-21,Jackson,Alabama,01071,152,3 +2020-06-22,Jackson,Alabama,01071,155,3 +2020-06-23,Jackson,Alabama,01071,162,3 +2020-06-24,Jackson,Alabama,01071,166,3 +2020-06-25,Jackson,Alabama,01071,182,3 +2020-06-26,Jackson,Alabama,01071,200,3 +2020-06-27,Jackson,Alabama,01071,198,3 +2020-06-28,Jackson,Alabama,01071,200,3 +2020-06-29,Jackson,Alabama,01071,208,3 +2020-06-30,Jackson,Alabama,01071,214,3 +2020-07-01,Jackson,Alabama,01071,242,3 +2020-07-02,Jackson,Alabama,01071,256,3 +2020-07-03,Jackson,Alabama,01071,267,3 +2020-07-04,Jackson,Alabama,01071,272,3 +2020-07-05,Jackson,Alabama,01071,277,3 +2020-07-06,Jackson,Alabama,01071,288,3 +2020-07-07,Jackson,Alabama,01071,306,3 +2020-07-08,Jackson,Alabama,01071,347,3 +2020-07-09,Jackson,Alabama,01071,378,3 +2020-03-13,Jefferson,Alabama,01073,2,0 +2020-03-14,Jefferson,Alabama,01073,6,0 +2020-03-15,Jefferson,Alabama,01073,13,0 +2020-03-16,Jefferson,Alabama,01073,17,0 +2020-03-17,Jefferson,Alabama,01073,21,0 +2020-03-18,Jefferson,Alabama,01073,25,0 +2020-03-19,Jefferson,Alabama,01073,34,0 +2020-03-20,Jefferson,Alabama,01073,50,0 +2020-03-21,Jefferson,Alabama,01073,61,0 +2020-03-22,Jefferson,Alabama,01073,71,0 +2020-03-23,Jefferson,Alabama,01073,86,0 +2020-03-24,Jefferson,Alabama,01073,91,0 +2020-03-25,Jefferson,Alabama,01073,129,0 +2020-03-26,Jefferson,Alabama,01073,173,0 +2020-03-27,Jefferson,Alabama,01073,179,0 +2020-03-28,Jefferson,Alabama,01073,214,0 +2020-03-29,Jefferson,Alabama,01073,246,0 +2020-03-30,Jefferson,Alabama,01073,257,0 +2020-03-31,Jefferson,Alabama,01073,282,0 +2020-04-01,Jefferson,Alabama,01073,305,4 +2020-04-02,Jefferson,Alabama,01073,332,5 +2020-04-03,Jefferson,Alabama,01073,369,6 +2020-04-04,Jefferson,Alabama,01073,376,9 +2020-04-05,Jefferson,Alabama,01073,418,9 +2020-04-06,Jefferson,Alabama,01073,438,11 +2020-04-07,Jefferson,Alabama,01073,461,12 +2020-04-08,Jefferson,Alabama,01073,492,14 +2020-04-09,Jefferson,Alabama,01073,523,14 +2020-04-10,Jefferson,Alabama,01073,555,14 +2020-04-11,Jefferson,Alabama,01073,579,15 +2020-04-12,Jefferson,Alabama,01073,597,15 +2020-04-13,Jefferson,Alabama,01073,617,15 +2020-04-14,Jefferson,Alabama,01073,620,16 +2020-04-15,Jefferson,Alabama,01073,628,17 +2020-04-16,Jefferson,Alabama,01073,634,22 +2020-04-17,Jefferson,Alabama,01073,645,24 +2020-04-18,Jefferson,Alabama,01073,673,25 +2020-04-19,Jefferson,Alabama,01073,682,25 +2020-04-20,Jefferson,Alabama,01073,688,26 +2020-04-21,Jefferson,Alabama,01073,700,26 +2020-04-22,Jefferson,Alabama,01073,744,31 +2020-04-23,Jefferson,Alabama,01073,778,31 +2020-04-24,Jefferson,Alabama,01073,797,33 +2020-04-25,Jefferson,Alabama,01073,828,33 +2020-04-26,Jefferson,Alabama,01073,839,33 +2020-04-27,Jefferson,Alabama,01073,839,36 +2020-04-28,Jefferson,Alabama,01073,861,41 +2020-04-29,Jefferson,Alabama,01073,881,44 +2020-04-30,Jefferson,Alabama,01073,886,46 +2020-05-01,Jefferson,Alabama,01073,929,48 +2020-05-02,Jefferson,Alabama,01073,946,48 +2020-05-03,Jefferson,Alabama,01073,969,48 +2020-05-04,Jefferson,Alabama,01073,992,48 +2020-05-05,Jefferson,Alabama,01073,1020,49 +2020-05-06,Jefferson,Alabama,01073,1048,53 +2020-05-07,Jefferson,Alabama,01073,1065,57 +2020-05-08,Jefferson,Alabama,01073,1094,59 +2020-05-09,Jefferson,Alabama,01073,1109,60 +2020-05-10,Jefferson,Alabama,01073,1121,60 +2020-05-11,Jefferson,Alabama,01073,1131,61 +2020-05-12,Jefferson,Alabama,01073,1153,62 +2020-05-13,Jefferson,Alabama,01073,1199,64 +2020-05-14,Jefferson,Alabama,01073,1237,69 +2020-05-15,Jefferson,Alabama,01073,1258,71 +2020-05-16,Jefferson,Alabama,01073,1299,73 +2020-05-17,Jefferson,Alabama,01073,1333,74 +2020-05-18,Jefferson,Alabama,01073,1355,74 +2020-05-19,Jefferson,Alabama,01073,1367,78 +2020-05-20,Jefferson,Alabama,01073,1433,83 +2020-05-21,Jefferson,Alabama,01073,1469,85 +2020-05-22,Jefferson,Alabama,01073,1498,88 +2020-05-23,Jefferson,Alabama,01073,1575,88 +2020-05-24,Jefferson,Alabama,01073,1614,88 +2020-05-25,Jefferson,Alabama,01073,1630,91 +2020-05-26,Jefferson,Alabama,01073,1645,96 +2020-05-27,Jefferson,Alabama,01073,1673,97 +2020-05-28,Jefferson,Alabama,01073,1712,100 +2020-05-29,Jefferson,Alabama,01073,1744,102 +2020-05-30,Jefferson,Alabama,01073,1780,102 +2020-05-31,Jefferson,Alabama,01073,1837,102 +2020-06-01,Jefferson,Alabama,01073,1886,104 +2020-06-02,Jefferson,Alabama,01073,1911,104 +2020-06-03,Jefferson,Alabama,01073,1913,104 +2020-06-04,Jefferson,Alabama,01073,1931,105 +2020-06-05,Jefferson,Alabama,01073,1957,106 +2020-06-06,Jefferson,Alabama,01073,2011,106 +2020-06-07,Jefferson,Alabama,01073,2070,107 +2020-06-08,Jefferson,Alabama,01073,2109,110 +2020-06-09,Jefferson,Alabama,01073,2162,111 +2020-06-10,Jefferson,Alabama,01073,2219,113 +2020-06-11,Jefferson,Alabama,01073,2282,117 +2020-06-12,Jefferson,Alabama,01073,2373,118 +2020-06-13,Jefferson,Alabama,01073,2444,118 +2020-06-14,Jefferson,Alabama,01073,2509,118 +2020-06-15,Jefferson,Alabama,01073,2571,118 +2020-06-16,Jefferson,Alabama,01073,2636,119 +2020-06-17,Jefferson,Alabama,01073,2687,121 +2020-06-18,Jefferson,Alabama,01073,2749,125 +2020-06-19,Jefferson,Alabama,01073,2835,124 +2020-06-20,Jefferson,Alabama,01073,2903,126 +2020-06-21,Jefferson,Alabama,01073,2987,126 +2020-06-22,Jefferson,Alabama,01073,3069,126 +2020-06-23,Jefferson,Alabama,01073,3144,127 +2020-06-24,Jefferson,Alabama,01073,3232,130 +2020-06-25,Jefferson,Alabama,01073,3378,131 +2020-06-26,Jefferson,Alabama,01073,3528,131 +2020-06-27,Jefferson,Alabama,01073,3651,135 +2020-06-28,Jefferson,Alabama,01073,3729,135 +2020-06-29,Jefferson,Alabama,01073,4099,136 +2020-06-30,Jefferson,Alabama,01073,4258,142 +2020-07-01,Jefferson,Alabama,01073,4436,144 +2020-07-02,Jefferson,Alabama,01073,4581,145 +2020-07-03,Jefferson,Alabama,01073,4853,154 +2020-07-04,Jefferson,Alabama,01073,4995,154 +2020-07-05,Jefferson,Alabama,01073,5272,154 +2020-07-06,Jefferson,Alabama,01073,5461,154 +2020-07-07,Jefferson,Alabama,01073,5538,157 +2020-07-08,Jefferson,Alabama,01073,5741,163 +2020-07-09,Jefferson,Alabama,01073,6092,164 +2020-03-20,Lamar,Alabama,01075,1,0 +2020-03-21,Lamar,Alabama,01075,1,0 +2020-03-22,Lamar,Alabama,01075,1,0 +2020-03-23,Lamar,Alabama,01075,1,0 +2020-03-24,Lamar,Alabama,01075,1,0 +2020-03-25,Lamar,Alabama,01075,1,0 +2020-03-26,Lamar,Alabama,01075,1,0 +2020-03-27,Lamar,Alabama,01075,1,0 +2020-03-28,Lamar,Alabama,01075,1,0 +2020-03-29,Lamar,Alabama,01075,1,0 +2020-03-30,Lamar,Alabama,01075,1,0 +2020-03-31,Lamar,Alabama,01075,1,0 +2020-04-01,Lamar,Alabama,01075,1,0 +2020-04-02,Lamar,Alabama,01075,1,0 +2020-04-03,Lamar,Alabama,01075,1,0 +2020-04-04,Lamar,Alabama,01075,3,0 +2020-04-05,Lamar,Alabama,01075,3,0 +2020-04-06,Lamar,Alabama,01075,5,0 +2020-04-07,Lamar,Alabama,01075,5,0 +2020-04-08,Lamar,Alabama,01075,6,0 +2020-04-09,Lamar,Alabama,01075,7,0 +2020-04-10,Lamar,Alabama,01075,7,0 +2020-04-11,Lamar,Alabama,01075,7,0 +2020-04-12,Lamar,Alabama,01075,8,0 +2020-04-13,Lamar,Alabama,01075,8,0 +2020-04-14,Lamar,Alabama,01075,7,0 +2020-04-15,Lamar,Alabama,01075,7,0 +2020-04-16,Lamar,Alabama,01075,7,0 +2020-04-17,Lamar,Alabama,01075,7,0 +2020-04-18,Lamar,Alabama,01075,8,0 +2020-04-19,Lamar,Alabama,01075,8,0 +2020-04-20,Lamar,Alabama,01075,9,0 +2020-04-21,Lamar,Alabama,01075,9,0 +2020-04-22,Lamar,Alabama,01075,8,0 +2020-04-23,Lamar,Alabama,01075,9,0 +2020-04-24,Lamar,Alabama,01075,10,0 +2020-04-25,Lamar,Alabama,01075,10,0 +2020-04-26,Lamar,Alabama,01075,10,0 +2020-04-27,Lamar,Alabama,01075,10,0 +2020-04-28,Lamar,Alabama,01075,10,0 +2020-04-29,Lamar,Alabama,01075,10,0 +2020-04-30,Lamar,Alabama,01075,11,0 +2020-05-01,Lamar,Alabama,01075,11,0 +2020-05-02,Lamar,Alabama,01075,11,0 +2020-05-03,Lamar,Alabama,01075,11,0 +2020-05-04,Lamar,Alabama,01075,12,0 +2020-05-05,Lamar,Alabama,01075,13,0 +2020-05-06,Lamar,Alabama,01075,13,0 +2020-05-07,Lamar,Alabama,01075,13,0 +2020-05-08,Lamar,Alabama,01075,13,0 +2020-05-09,Lamar,Alabama,01075,13,0 +2020-05-10,Lamar,Alabama,01075,13,0 +2020-05-11,Lamar,Alabama,01075,13,0 +2020-05-12,Lamar,Alabama,01075,13,0 +2020-05-13,Lamar,Alabama,01075,14,0 +2020-05-14,Lamar,Alabama,01075,14,0 +2020-05-15,Lamar,Alabama,01075,14,0 +2020-05-16,Lamar,Alabama,01075,15,0 +2020-05-17,Lamar,Alabama,01075,15,0 +2020-05-18,Lamar,Alabama,01075,15,0 +2020-05-19,Lamar,Alabama,01075,15,0 +2020-05-20,Lamar,Alabama,01075,15,0 +2020-05-21,Lamar,Alabama,01075,18,0 +2020-05-22,Lamar,Alabama,01075,17,0 +2020-05-23,Lamar,Alabama,01075,18,0 +2020-05-24,Lamar,Alabama,01075,20,0 +2020-05-25,Lamar,Alabama,01075,20,0 +2020-05-26,Lamar,Alabama,01075,21,0 +2020-05-27,Lamar,Alabama,01075,21,0 +2020-05-28,Lamar,Alabama,01075,21,0 +2020-05-29,Lamar,Alabama,01075,23,0 +2020-05-30,Lamar,Alabama,01075,23,0 +2020-05-31,Lamar,Alabama,01075,26,0 +2020-06-01,Lamar,Alabama,01075,26,0 +2020-06-02,Lamar,Alabama,01075,26,0 +2020-06-03,Lamar,Alabama,01075,26,0 +2020-06-04,Lamar,Alabama,01075,28,0 +2020-06-05,Lamar,Alabama,01075,29,1 +2020-06-06,Lamar,Alabama,01075,29,1 +2020-06-07,Lamar,Alabama,01075,30,1 +2020-06-08,Lamar,Alabama,01075,30,0 +2020-06-09,Lamar,Alabama,01075,30,0 +2020-06-10,Lamar,Alabama,01075,31,0 +2020-06-11,Lamar,Alabama,01075,31,0 +2020-06-12,Lamar,Alabama,01075,35,0 +2020-06-13,Lamar,Alabama,01075,36,0 +2020-06-14,Lamar,Alabama,01075,44,0 +2020-06-15,Lamar,Alabama,01075,46,0 +2020-06-16,Lamar,Alabama,01075,50,0 +2020-06-17,Lamar,Alabama,01075,51,0 +2020-06-18,Lamar,Alabama,01075,53,0 +2020-06-19,Lamar,Alabama,01075,55,0 +2020-06-20,Lamar,Alabama,01075,55,0 +2020-06-21,Lamar,Alabama,01075,55,0 +2020-06-22,Lamar,Alabama,01075,56,0 +2020-06-23,Lamar,Alabama,01075,58,0 +2020-06-24,Lamar,Alabama,01075,60,0 +2020-06-25,Lamar,Alabama,01075,63,0 +2020-06-26,Lamar,Alabama,01075,64,1 +2020-06-27,Lamar,Alabama,01075,65,1 +2020-06-28,Lamar,Alabama,01075,69,1 +2020-06-29,Lamar,Alabama,01075,71,1 +2020-06-30,Lamar,Alabama,01075,72,1 +2020-07-01,Lamar,Alabama,01075,72,1 +2020-07-02,Lamar,Alabama,01075,72,1 +2020-07-03,Lamar,Alabama,01075,76,1 +2020-07-04,Lamar,Alabama,01075,76,1 +2020-07-05,Lamar,Alabama,01075,78,1 +2020-07-06,Lamar,Alabama,01075,79,1 +2020-07-07,Lamar,Alabama,01075,81,1 +2020-07-08,Lamar,Alabama,01075,81,1 +2020-07-09,Lamar,Alabama,01075,82,1 +2020-03-20,Lauderdale,Alabama,01077,1,0 +2020-03-21,Lauderdale,Alabama,01077,2,0 +2020-03-22,Lauderdale,Alabama,01077,2,0 +2020-03-23,Lauderdale,Alabama,01077,3,0 +2020-03-24,Lauderdale,Alabama,01077,3,0 +2020-03-25,Lauderdale,Alabama,01077,7,0 +2020-03-26,Lauderdale,Alabama,01077,9,1 +2020-03-27,Lauderdale,Alabama,01077,11,1 +2020-03-28,Lauderdale,Alabama,01077,13,1 +2020-03-29,Lauderdale,Alabama,01077,12,1 +2020-03-30,Lauderdale,Alabama,01077,12,1 +2020-03-31,Lauderdale,Alabama,01077,12,1 +2020-04-01,Lauderdale,Alabama,01077,12,1 +2020-04-02,Lauderdale,Alabama,01077,14,2 +2020-04-03,Lauderdale,Alabama,01077,14,2 +2020-04-04,Lauderdale,Alabama,01077,16,2 +2020-04-05,Lauderdale,Alabama,01077,16,2 +2020-04-06,Lauderdale,Alabama,01077,16,2 +2020-04-07,Lauderdale,Alabama,01077,18,2 +2020-04-08,Lauderdale,Alabama,01077,19,2 +2020-04-09,Lauderdale,Alabama,01077,20,3 +2020-04-10,Lauderdale,Alabama,01077,20,3 +2020-04-11,Lauderdale,Alabama,01077,21,4 +2020-04-12,Lauderdale,Alabama,01077,21,4 +2020-04-13,Lauderdale,Alabama,01077,22,4 +2020-04-14,Lauderdale,Alabama,01077,22,4 +2020-04-15,Lauderdale,Alabama,01077,22,4 +2020-04-16,Lauderdale,Alabama,01077,22,4 +2020-04-17,Lauderdale,Alabama,01077,23,4 +2020-04-18,Lauderdale,Alabama,01077,23,4 +2020-04-19,Lauderdale,Alabama,01077,23,4 +2020-04-20,Lauderdale,Alabama,01077,24,4 +2020-04-21,Lauderdale,Alabama,01077,25,4 +2020-04-22,Lauderdale,Alabama,01077,25,3 +2020-04-23,Lauderdale,Alabama,01077,25,3 +2020-04-24,Lauderdale,Alabama,01077,25,2 +2020-04-25,Lauderdale,Alabama,01077,27,2 +2020-04-26,Lauderdale,Alabama,01077,31,2 +2020-04-27,Lauderdale,Alabama,01077,31,2 +2020-04-28,Lauderdale,Alabama,01077,30,2 +2020-04-29,Lauderdale,Alabama,01077,33,2 +2020-04-30,Lauderdale,Alabama,01077,38,2 +2020-05-01,Lauderdale,Alabama,01077,50,2 +2020-05-02,Lauderdale,Alabama,01077,56,2 +2020-05-03,Lauderdale,Alabama,01077,61,2 +2020-05-04,Lauderdale,Alabama,01077,63,2 +2020-05-05,Lauderdale,Alabama,01077,68,2 +2020-05-06,Lauderdale,Alabama,01077,71,2 +2020-05-07,Lauderdale,Alabama,01077,79,2 +2020-05-08,Lauderdale,Alabama,01077,87,2 +2020-05-09,Lauderdale,Alabama,01077,88,2 +2020-05-10,Lauderdale,Alabama,01077,92,2 +2020-05-11,Lauderdale,Alabama,01077,96,2 +2020-05-12,Lauderdale,Alabama,01077,99,2 +2020-05-13,Lauderdale,Alabama,01077,102,2 +2020-05-14,Lauderdale,Alabama,01077,109,2 +2020-05-15,Lauderdale,Alabama,01077,110,2 +2020-05-16,Lauderdale,Alabama,01077,113,2 +2020-05-17,Lauderdale,Alabama,01077,113,2 +2020-05-18,Lauderdale,Alabama,01077,115,2 +2020-05-19,Lauderdale,Alabama,01077,116,2 +2020-05-20,Lauderdale,Alabama,01077,117,2 +2020-05-21,Lauderdale,Alabama,01077,119,2 +2020-05-22,Lauderdale,Alabama,01077,122,2 +2020-05-23,Lauderdale,Alabama,01077,126,2 +2020-05-24,Lauderdale,Alabama,01077,128,2 +2020-05-25,Lauderdale,Alabama,01077,135,2 +2020-05-26,Lauderdale,Alabama,01077,141,2 +2020-05-27,Lauderdale,Alabama,01077,145,2 +2020-05-28,Lauderdale,Alabama,01077,153,2 +2020-05-29,Lauderdale,Alabama,01077,156,2 +2020-05-30,Lauderdale,Alabama,01077,161,2 +2020-05-31,Lauderdale,Alabama,01077,164,2 +2020-06-01,Lauderdale,Alabama,01077,167,2 +2020-06-02,Lauderdale,Alabama,01077,168,2 +2020-06-03,Lauderdale,Alabama,01077,170,2 +2020-06-04,Lauderdale,Alabama,01077,173,2 +2020-06-05,Lauderdale,Alabama,01077,176,2 +2020-06-06,Lauderdale,Alabama,01077,182,2 +2020-06-07,Lauderdale,Alabama,01077,185,2 +2020-06-08,Lauderdale,Alabama,01077,189,3 +2020-06-09,Lauderdale,Alabama,01077,193,3 +2020-06-10,Lauderdale,Alabama,01077,198,3 +2020-06-11,Lauderdale,Alabama,01077,209,3 +2020-06-12,Lauderdale,Alabama,01077,218,3 +2020-06-13,Lauderdale,Alabama,01077,232,3 +2020-06-14,Lauderdale,Alabama,01077,236,3 +2020-06-15,Lauderdale,Alabama,01077,251,3 +2020-06-16,Lauderdale,Alabama,01077,262,4 +2020-06-17,Lauderdale,Alabama,01077,267,4 +2020-06-18,Lauderdale,Alabama,01077,282,4 +2020-06-19,Lauderdale,Alabama,01077,290,4 +2020-06-20,Lauderdale,Alabama,01077,295,4 +2020-06-21,Lauderdale,Alabama,01077,298,4 +2020-06-22,Lauderdale,Alabama,01077,299,4 +2020-06-23,Lauderdale,Alabama,01077,308,4 +2020-06-24,Lauderdale,Alabama,01077,325,4 +2020-06-25,Lauderdale,Alabama,01077,334,4 +2020-06-26,Lauderdale,Alabama,01077,354,4 +2020-06-27,Lauderdale,Alabama,01077,365,4 +2020-06-28,Lauderdale,Alabama,01077,374,4 +2020-06-29,Lauderdale,Alabama,01077,394,4 +2020-06-30,Lauderdale,Alabama,01077,412,5 +2020-07-01,Lauderdale,Alabama,01077,446,6 +2020-07-02,Lauderdale,Alabama,01077,459,6 +2020-07-03,Lauderdale,Alabama,01077,475,6 +2020-07-04,Lauderdale,Alabama,01077,491,6 +2020-07-05,Lauderdale,Alabama,01077,492,6 +2020-07-06,Lauderdale,Alabama,01077,498,6 +2020-07-07,Lauderdale,Alabama,01077,503,6 +2020-07-08,Lauderdale,Alabama,01077,517,6 +2020-07-09,Lauderdale,Alabama,01077,540,6 +2020-03-25,Lawrence,Alabama,01079,1,0 +2020-03-26,Lawrence,Alabama,01079,3,0 +2020-03-27,Lawrence,Alabama,01079,3,0 +2020-03-28,Lawrence,Alabama,01079,3,0 +2020-03-29,Lawrence,Alabama,01079,3,0 +2020-03-30,Lawrence,Alabama,01079,3,0 +2020-03-31,Lawrence,Alabama,01079,3,0 +2020-04-01,Lawrence,Alabama,01079,3,0 +2020-04-02,Lawrence,Alabama,01079,3,0 +2020-04-03,Lawrence,Alabama,01079,4,0 +2020-04-04,Lawrence,Alabama,01079,4,0 +2020-04-05,Lawrence,Alabama,01079,6,0 +2020-04-06,Lawrence,Alabama,01079,8,0 +2020-04-07,Lawrence,Alabama,01079,8,0 +2020-04-08,Lawrence,Alabama,01079,8,0 +2020-04-09,Lawrence,Alabama,01079,8,0 +2020-04-10,Lawrence,Alabama,01079,8,0 +2020-04-11,Lawrence,Alabama,01079,8,0 +2020-04-12,Lawrence,Alabama,01079,8,0 +2020-04-13,Lawrence,Alabama,01079,8,0 +2020-04-14,Lawrence,Alabama,01079,8,0 +2020-04-15,Lawrence,Alabama,01079,8,0 +2020-04-16,Lawrence,Alabama,01079,8,0 +2020-04-17,Lawrence,Alabama,01079,8,0 +2020-04-18,Lawrence,Alabama,01079,9,0 +2020-04-19,Lawrence,Alabama,01079,9,0 +2020-04-20,Lawrence,Alabama,01079,10,0 +2020-04-21,Lawrence,Alabama,01079,10,0 +2020-04-22,Lawrence,Alabama,01079,12,0 +2020-04-23,Lawrence,Alabama,01079,12,0 +2020-04-24,Lawrence,Alabama,01079,12,0 +2020-04-25,Lawrence,Alabama,01079,12,0 +2020-04-26,Lawrence,Alabama,01079,12,0 +2020-04-27,Lawrence,Alabama,01079,12,0 +2020-04-28,Lawrence,Alabama,01079,12,0 +2020-04-29,Lawrence,Alabama,01079,12,0 +2020-04-30,Lawrence,Alabama,01079,12,0 +2020-05-01,Lawrence,Alabama,01079,13,0 +2020-05-02,Lawrence,Alabama,01079,13,0 +2020-05-03,Lawrence,Alabama,01079,14,0 +2020-05-04,Lawrence,Alabama,01079,14,0 +2020-05-05,Lawrence,Alabama,01079,16,0 +2020-05-06,Lawrence,Alabama,01079,17,0 +2020-05-07,Lawrence,Alabama,01079,19,0 +2020-05-08,Lawrence,Alabama,01079,21,0 +2020-05-09,Lawrence,Alabama,01079,22,0 +2020-05-10,Lawrence,Alabama,01079,25,0 +2020-05-11,Lawrence,Alabama,01079,26,0 +2020-05-12,Lawrence,Alabama,01079,26,0 +2020-05-13,Lawrence,Alabama,01079,26,0 +2020-05-14,Lawrence,Alabama,01079,28,0 +2020-05-15,Lawrence,Alabama,01079,29,0 +2020-05-16,Lawrence,Alabama,01079,29,0 +2020-05-17,Lawrence,Alabama,01079,29,0 +2020-05-18,Lawrence,Alabama,01079,33,0 +2020-05-19,Lawrence,Alabama,01079,35,0 +2020-05-20,Lawrence,Alabama,01079,35,0 +2020-05-21,Lawrence,Alabama,01079,40,0 +2020-05-22,Lawrence,Alabama,01079,40,0 +2020-05-23,Lawrence,Alabama,01079,41,0 +2020-05-24,Lawrence,Alabama,01079,42,0 +2020-05-25,Lawrence,Alabama,01079,43,0 +2020-05-26,Lawrence,Alabama,01079,45,0 +2020-05-27,Lawrence,Alabama,01079,46,0 +2020-05-28,Lawrence,Alabama,01079,46,0 +2020-05-29,Lawrence,Alabama,01079,48,0 +2020-05-30,Lawrence,Alabama,01079,48,0 +2020-05-31,Lawrence,Alabama,01079,50,0 +2020-06-01,Lawrence,Alabama,01079,51,0 +2020-06-02,Lawrence,Alabama,01079,52,0 +2020-06-03,Lawrence,Alabama,01079,52,0 +2020-06-04,Lawrence,Alabama,01079,52,0 +2020-06-05,Lawrence,Alabama,01079,52,0 +2020-06-06,Lawrence,Alabama,01079,54,0 +2020-06-07,Lawrence,Alabama,01079,56,0 +2020-06-08,Lawrence,Alabama,01079,56,0 +2020-06-09,Lawrence,Alabama,01079,57,0 +2020-06-10,Lawrence,Alabama,01079,59,0 +2020-06-11,Lawrence,Alabama,01079,61,0 +2020-06-12,Lawrence,Alabama,01079,61,0 +2020-06-13,Lawrence,Alabama,01079,64,0 +2020-06-14,Lawrence,Alabama,01079,65,0 +2020-06-15,Lawrence,Alabama,01079,66,0 +2020-06-16,Lawrence,Alabama,01079,67,0 +2020-06-17,Lawrence,Alabama,01079,68,0 +2020-06-18,Lawrence,Alabama,01079,72,0 +2020-06-19,Lawrence,Alabama,01079,74,0 +2020-06-20,Lawrence,Alabama,01079,75,0 +2020-06-21,Lawrence,Alabama,01079,78,0 +2020-06-22,Lawrence,Alabama,01079,79,0 +2020-06-23,Lawrence,Alabama,01079,80,0 +2020-06-24,Lawrence,Alabama,01079,84,0 +2020-06-25,Lawrence,Alabama,01079,87,0 +2020-06-26,Lawrence,Alabama,01079,88,0 +2020-06-27,Lawrence,Alabama,01079,93,0 +2020-06-28,Lawrence,Alabama,01079,97,0 +2020-06-29,Lawrence,Alabama,01079,100,0 +2020-06-30,Lawrence,Alabama,01079,103,0 +2020-07-01,Lawrence,Alabama,01079,104,0 +2020-07-02,Lawrence,Alabama,01079,103,0 +2020-07-03,Lawrence,Alabama,01079,108,0 +2020-07-04,Lawrence,Alabama,01079,110,0 +2020-07-05,Lawrence,Alabama,01079,111,0 +2020-07-06,Lawrence,Alabama,01079,113,0 +2020-07-07,Lawrence,Alabama,01079,112,0 +2020-07-08,Lawrence,Alabama,01079,116,0 +2020-07-09,Lawrence,Alabama,01079,120,0 +2020-03-15,Lee,Alabama,01081,1,0 +2020-03-16,Lee,Alabama,01081,1,0 +2020-03-17,Lee,Alabama,01081,3,0 +2020-03-18,Lee,Alabama,01081,7,0 +2020-03-19,Lee,Alabama,01081,10,0 +2020-03-20,Lee,Alabama,01081,11,0 +2020-03-21,Lee,Alabama,01081,12,0 +2020-03-22,Lee,Alabama,01081,16,0 +2020-03-23,Lee,Alabama,01081,19,0 +2020-03-24,Lee,Alabama,01081,26,0 +2020-03-25,Lee,Alabama,01081,40,0 +2020-03-26,Lee,Alabama,01081,47,0 +2020-03-27,Lee,Alabama,01081,53,0 +2020-03-28,Lee,Alabama,01081,56,0 +2020-03-29,Lee,Alabama,01081,57,0 +2020-03-30,Lee,Alabama,01081,74,2 +2020-03-31,Lee,Alabama,01081,75,2 +2020-04-01,Lee,Alabama,01081,83,2 +2020-04-02,Lee,Alabama,01081,91,3 +2020-04-03,Lee,Alabama,01081,99,3 +2020-04-04,Lee,Alabama,01081,104,3 +2020-04-05,Lee,Alabama,01081,110,3 +2020-04-06,Lee,Alabama,01081,118,3 +2020-04-07,Lee,Alabama,01081,133,5 +2020-04-08,Lee,Alabama,01081,190,5 +2020-04-09,Lee,Alabama,01081,206,6 +2020-04-10,Lee,Alabama,01081,215,6 +2020-04-11,Lee,Alabama,01081,221,8 +2020-04-12,Lee,Alabama,01081,236,8 +2020-04-13,Lee,Alabama,01081,250,9 +2020-04-14,Lee,Alabama,01081,265,11 +2020-04-15,Lee,Alabama,01081,285,12 +2020-04-16,Lee,Alabama,01081,294,12 +2020-04-17,Lee,Alabama,01081,300,13 +2020-04-18,Lee,Alabama,01081,306,14 +2020-04-19,Lee,Alabama,01081,308,14 +2020-04-20,Lee,Alabama,01081,311,15 +2020-04-21,Lee,Alabama,01081,319,19 +2020-04-22,Lee,Alabama,01081,331,21 +2020-04-23,Lee,Alabama,01081,340,20 +2020-04-24,Lee,Alabama,01081,351,22 +2020-04-25,Lee,Alabama,01081,358,23 +2020-04-26,Lee,Alabama,01081,365,24 +2020-04-27,Lee,Alabama,01081,368,24 +2020-04-28,Lee,Alabama,01081,377,25 +2020-04-29,Lee,Alabama,01081,386,28 +2020-04-30,Lee,Alabama,01081,391,29 +2020-05-01,Lee,Alabama,01081,391,29 +2020-05-02,Lee,Alabama,01081,397,28 +2020-05-03,Lee,Alabama,01081,400,28 +2020-05-04,Lee,Alabama,01081,403,28 +2020-05-05,Lee,Alabama,01081,408,28 +2020-05-06,Lee,Alabama,01081,410,29 +2020-05-07,Lee,Alabama,01081,417,30 +2020-05-08,Lee,Alabama,01081,419,30 +2020-05-09,Lee,Alabama,01081,422,30 +2020-05-10,Lee,Alabama,01081,425,30 +2020-05-11,Lee,Alabama,01081,429,30 +2020-05-12,Lee,Alabama,01081,432,30 +2020-05-13,Lee,Alabama,01081,436,30 +2020-05-14,Lee,Alabama,01081,447,30 +2020-05-15,Lee,Alabama,01081,444,31 +2020-05-16,Lee,Alabama,01081,448,31 +2020-05-17,Lee,Alabama,01081,449,31 +2020-05-18,Lee,Alabama,01081,452,31 +2020-05-19,Lee,Alabama,01081,450,31 +2020-05-20,Lee,Alabama,01081,461,32 +2020-05-21,Lee,Alabama,01081,467,32 +2020-05-22,Lee,Alabama,01081,471,32 +2020-05-23,Lee,Alabama,01081,488,32 +2020-05-24,Lee,Alabama,01081,498,32 +2020-05-25,Lee,Alabama,01081,510,32 +2020-05-26,Lee,Alabama,01081,522,32 +2020-05-27,Lee,Alabama,01081,526,32 +2020-05-28,Lee,Alabama,01081,533,32 +2020-05-29,Lee,Alabama,01081,536,32 +2020-05-30,Lee,Alabama,01081,540,33 +2020-05-31,Lee,Alabama,01081,548,33 +2020-06-01,Lee,Alabama,01081,565,33 +2020-06-02,Lee,Alabama,01081,567,34 +2020-06-03,Lee,Alabama,01081,573,34 +2020-06-04,Lee,Alabama,01081,577,34 +2020-06-05,Lee,Alabama,01081,578,34 +2020-06-06,Lee,Alabama,01081,593,34 +2020-06-07,Lee,Alabama,01081,600,34 +2020-06-08,Lee,Alabama,01081,610,34 +2020-06-09,Lee,Alabama,01081,615,34 +2020-06-10,Lee,Alabama,01081,621,35 +2020-06-11,Lee,Alabama,01081,641,35 +2020-06-12,Lee,Alabama,01081,658,35 +2020-06-13,Lee,Alabama,01081,677,35 +2020-06-14,Lee,Alabama,01081,695,35 +2020-06-15,Lee,Alabama,01081,726,35 +2020-06-16,Lee,Alabama,01081,755,35 +2020-06-17,Lee,Alabama,01081,769,35 +2020-06-18,Lee,Alabama,01081,800,35 +2020-06-19,Lee,Alabama,01081,827,35 +2020-06-20,Lee,Alabama,01081,841,35 +2020-06-21,Lee,Alabama,01081,852,35 +2020-06-22,Lee,Alabama,01081,881,35 +2020-06-23,Lee,Alabama,01081,917,35 +2020-06-24,Lee,Alabama,01081,976,36 +2020-06-25,Lee,Alabama,01081,1020,36 +2020-06-26,Lee,Alabama,01081,1045,36 +2020-06-27,Lee,Alabama,01081,1063,36 +2020-06-28,Lee,Alabama,01081,1083,36 +2020-06-29,Lee,Alabama,01081,1157,37 +2020-06-30,Lee,Alabama,01081,1188,37 +2020-07-01,Lee,Alabama,01081,1211,38 +2020-07-02,Lee,Alabama,01081,1267,38 +2020-07-03,Lee,Alabama,01081,1326,38 +2020-07-04,Lee,Alabama,01081,1383,38 +2020-07-05,Lee,Alabama,01081,1408,38 +2020-07-06,Lee,Alabama,01081,1435,38 +2020-07-07,Lee,Alabama,01081,1459,38 +2020-07-08,Lee,Alabama,01081,1491,38 +2020-07-09,Lee,Alabama,01081,1527,38 +2020-03-13,Limestone,Alabama,01083,1,0 +2020-03-14,Limestone,Alabama,01083,1,0 +2020-03-15,Limestone,Alabama,01083,1,0 +2020-03-16,Limestone,Alabama,01083,1,0 +2020-03-17,Limestone,Alabama,01083,1,0 +2020-03-18,Limestone,Alabama,01083,1,0 +2020-03-19,Limestone,Alabama,01083,1,0 +2020-03-20,Limestone,Alabama,01083,1,0 +2020-03-21,Limestone,Alabama,01083,1,0 +2020-03-22,Limestone,Alabama,01083,1,0 +2020-03-23,Limestone,Alabama,01083,1,0 +2020-03-24,Limestone,Alabama,01083,4,0 +2020-03-25,Limestone,Alabama,01083,6,0 +2020-03-26,Limestone,Alabama,01083,13,0 +2020-03-27,Limestone,Alabama,01083,16,0 +2020-03-28,Limestone,Alabama,01083,16,0 +2020-03-29,Limestone,Alabama,01083,16,0 +2020-03-30,Limestone,Alabama,01083,20,0 +2020-03-31,Limestone,Alabama,01083,22,0 +2020-04-01,Limestone,Alabama,01083,23,0 +2020-04-02,Limestone,Alabama,01083,25,0 +2020-04-03,Limestone,Alabama,01083,30,0 +2020-04-04,Limestone,Alabama,01083,31,0 +2020-04-05,Limestone,Alabama,01083,32,0 +2020-04-06,Limestone,Alabama,01083,33,0 +2020-04-07,Limestone,Alabama,01083,32,0 +2020-04-08,Limestone,Alabama,01083,32,0 +2020-04-09,Limestone,Alabama,01083,35,0 +2020-04-10,Limestone,Alabama,01083,36,0 +2020-04-11,Limestone,Alabama,01083,36,0 +2020-04-12,Limestone,Alabama,01083,37,0 +2020-04-13,Limestone,Alabama,01083,37,0 +2020-04-14,Limestone,Alabama,01083,37,0 +2020-04-15,Limestone,Alabama,01083,38,0 +2020-04-16,Limestone,Alabama,01083,38,0 +2020-04-17,Limestone,Alabama,01083,40,0 +2020-04-18,Limestone,Alabama,01083,40,0 +2020-04-19,Limestone,Alabama,01083,40,0 +2020-04-20,Limestone,Alabama,01083,40,0 +2020-04-21,Limestone,Alabama,01083,40,0 +2020-04-22,Limestone,Alabama,01083,38,0 +2020-04-23,Limestone,Alabama,01083,40,0 +2020-04-24,Limestone,Alabama,01083,41,0 +2020-04-25,Limestone,Alabama,01083,41,0 +2020-04-26,Limestone,Alabama,01083,41,0 +2020-04-27,Limestone,Alabama,01083,42,0 +2020-04-28,Limestone,Alabama,01083,44,0 +2020-04-29,Limestone,Alabama,01083,44,0 +2020-04-30,Limestone,Alabama,01083,44,0 +2020-05-01,Limestone,Alabama,01083,44,0 +2020-05-02,Limestone,Alabama,01083,44,0 +2020-05-03,Limestone,Alabama,01083,45,0 +2020-05-04,Limestone,Alabama,01083,47,0 +2020-05-05,Limestone,Alabama,01083,48,0 +2020-05-06,Limestone,Alabama,01083,49,0 +2020-05-07,Limestone,Alabama,01083,54,0 +2020-05-08,Limestone,Alabama,01083,55,0 +2020-05-09,Limestone,Alabama,01083,57,0 +2020-05-10,Limestone,Alabama,01083,57,0 +2020-05-11,Limestone,Alabama,01083,57,0 +2020-05-12,Limestone,Alabama,01083,58,0 +2020-05-13,Limestone,Alabama,01083,60,0 +2020-05-14,Limestone,Alabama,01083,62,0 +2020-05-15,Limestone,Alabama,01083,64,0 +2020-05-16,Limestone,Alabama,01083,64,0 +2020-05-17,Limestone,Alabama,01083,64,0 +2020-05-18,Limestone,Alabama,01083,65,0 +2020-05-19,Limestone,Alabama,01083,65,0 +2020-05-20,Limestone,Alabama,01083,69,0 +2020-05-21,Limestone,Alabama,01083,71,0 +2020-05-22,Limestone,Alabama,01083,72,0 +2020-05-23,Limestone,Alabama,01083,72,0 +2020-05-24,Limestone,Alabama,01083,74,0 +2020-05-25,Limestone,Alabama,01083,77,0 +2020-05-26,Limestone,Alabama,01083,82,0 +2020-05-27,Limestone,Alabama,01083,86,0 +2020-05-28,Limestone,Alabama,01083,87,0 +2020-05-29,Limestone,Alabama,01083,92,0 +2020-05-30,Limestone,Alabama,01083,94,0 +2020-05-31,Limestone,Alabama,01083,106,0 +2020-06-01,Limestone,Alabama,01083,110,0 +2020-06-02,Limestone,Alabama,01083,110,0 +2020-06-03,Limestone,Alabama,01083,110,0 +2020-06-04,Limestone,Alabama,01083,110,0 +2020-06-05,Limestone,Alabama,01083,112,0 +2020-06-06,Limestone,Alabama,01083,121,0 +2020-06-07,Limestone,Alabama,01083,125,0 +2020-06-08,Limestone,Alabama,01083,137,0 +2020-06-09,Limestone,Alabama,01083,146,0 +2020-06-10,Limestone,Alabama,01083,153,0 +2020-06-11,Limestone,Alabama,01083,164,0 +2020-06-12,Limestone,Alabama,01083,177,0 +2020-06-13,Limestone,Alabama,01083,199,0 +2020-06-14,Limestone,Alabama,01083,217,0 +2020-06-15,Limestone,Alabama,01083,228,0 +2020-06-16,Limestone,Alabama,01083,238,0 +2020-06-17,Limestone,Alabama,01083,244,0 +2020-06-18,Limestone,Alabama,01083,257,0 +2020-06-19,Limestone,Alabama,01083,262,0 +2020-06-20,Limestone,Alabama,01083,267,0 +2020-06-21,Limestone,Alabama,01083,271,0 +2020-06-22,Limestone,Alabama,01083,275,0 +2020-06-23,Limestone,Alabama,01083,285,0 +2020-06-24,Limestone,Alabama,01083,297,0 +2020-06-25,Limestone,Alabama,01083,321,0 +2020-06-26,Limestone,Alabama,01083,338,0 +2020-06-27,Limestone,Alabama,01083,355,0 +2020-06-28,Limestone,Alabama,01083,363,0 +2020-06-29,Limestone,Alabama,01083,398,0 +2020-06-30,Limestone,Alabama,01083,407,0 +2020-07-01,Limestone,Alabama,01083,413,0 +2020-07-02,Limestone,Alabama,01083,434,0 +2020-07-03,Limestone,Alabama,01083,471,0 +2020-07-04,Limestone,Alabama,01083,486,0 +2020-07-05,Limestone,Alabama,01083,500,0 +2020-07-06,Limestone,Alabama,01083,506,0 +2020-07-07,Limestone,Alabama,01083,523,1 +2020-07-08,Limestone,Alabama,01083,530,1 +2020-07-09,Limestone,Alabama,01083,579,1 +2020-03-26,Lowndes,Alabama,01085,1,0 +2020-03-27,Lowndes,Alabama,01085,1,0 +2020-03-28,Lowndes,Alabama,01085,1,0 +2020-03-29,Lowndes,Alabama,01085,1,0 +2020-03-30,Lowndes,Alabama,01085,1,0 +2020-03-31,Lowndes,Alabama,01085,1,0 +2020-04-01,Lowndes,Alabama,01085,1,0 +2020-04-02,Lowndes,Alabama,01085,2,0 +2020-04-03,Lowndes,Alabama,01085,2,0 +2020-04-04,Lowndes,Alabama,01085,3,0 +2020-04-05,Lowndes,Alabama,01085,6,0 +2020-04-06,Lowndes,Alabama,01085,6,0 +2020-04-07,Lowndes,Alabama,01085,8,0 +2020-04-08,Lowndes,Alabama,01085,11,0 +2020-04-09,Lowndes,Alabama,01085,12,0 +2020-04-10,Lowndes,Alabama,01085,12,0 +2020-04-11,Lowndes,Alabama,01085,14,0 +2020-04-12,Lowndes,Alabama,01085,14,0 +2020-04-13,Lowndes,Alabama,01085,16,0 +2020-04-14,Lowndes,Alabama,01085,19,0 +2020-04-15,Lowndes,Alabama,01085,23,0 +2020-04-16,Lowndes,Alabama,01085,25,0 +2020-04-17,Lowndes,Alabama,01085,25,0 +2020-04-18,Lowndes,Alabama,01085,27,0 +2020-04-19,Lowndes,Alabama,01085,30,0 +2020-04-20,Lowndes,Alabama,01085,31,0 +2020-04-21,Lowndes,Alabama,01085,32,0 +2020-04-22,Lowndes,Alabama,01085,32,1 +2020-04-23,Lowndes,Alabama,01085,34,1 +2020-04-24,Lowndes,Alabama,01085,36,1 +2020-04-25,Lowndes,Alabama,01085,38,1 +2020-04-26,Lowndes,Alabama,01085,38,1 +2020-04-27,Lowndes,Alabama,01085,39,1 +2020-04-28,Lowndes,Alabama,01085,53,1 +2020-04-29,Lowndes,Alabama,01085,59,1 +2020-04-30,Lowndes,Alabama,01085,65,1 +2020-05-01,Lowndes,Alabama,01085,67,1 +2020-05-02,Lowndes,Alabama,01085,70,1 +2020-05-03,Lowndes,Alabama,01085,71,1 +2020-05-04,Lowndes,Alabama,01085,75,1 +2020-05-05,Lowndes,Alabama,01085,80,3 +2020-05-06,Lowndes,Alabama,01085,82,5 +2020-05-07,Lowndes,Alabama,01085,85,5 +2020-05-08,Lowndes,Alabama,01085,88,5 +2020-05-09,Lowndes,Alabama,01085,96,5 +2020-05-10,Lowndes,Alabama,01085,99,5 +2020-05-11,Lowndes,Alabama,01085,103,6 +2020-05-12,Lowndes,Alabama,01085,111,7 +2020-05-13,Lowndes,Alabama,01085,111,8 +2020-05-14,Lowndes,Alabama,01085,117,9 +2020-05-15,Lowndes,Alabama,01085,122,9 +2020-05-16,Lowndes,Alabama,01085,128,9 +2020-05-17,Lowndes,Alabama,01085,128,9 +2020-05-18,Lowndes,Alabama,01085,133,9 +2020-05-19,Lowndes,Alabama,01085,140,10 +2020-05-20,Lowndes,Alabama,01085,155,10 +2020-05-21,Lowndes,Alabama,01085,164,10 +2020-05-22,Lowndes,Alabama,01085,172,10 +2020-05-23,Lowndes,Alabama,01085,182,10 +2020-05-24,Lowndes,Alabama,01085,186,10 +2020-05-25,Lowndes,Alabama,01085,193,10 +2020-05-26,Lowndes,Alabama,01085,207,10 +2020-05-27,Lowndes,Alabama,01085,216,10 +2020-05-28,Lowndes,Alabama,01085,222,10 +2020-05-29,Lowndes,Alabama,01085,227,11 +2020-05-30,Lowndes,Alabama,01085,238,12 +2020-05-31,Lowndes,Alabama,01085,246,12 +2020-06-01,Lowndes,Alabama,01085,254,12 +2020-06-02,Lowndes,Alabama,01085,257,12 +2020-06-03,Lowndes,Alabama,01085,261,12 +2020-06-04,Lowndes,Alabama,01085,268,12 +2020-06-05,Lowndes,Alabama,01085,272,12 +2020-06-06,Lowndes,Alabama,01085,279,12 +2020-06-07,Lowndes,Alabama,01085,286,12 +2020-06-08,Lowndes,Alabama,01085,294,14 +2020-06-09,Lowndes,Alabama,01085,302,14 +2020-06-10,Lowndes,Alabama,01085,311,14 +2020-06-11,Lowndes,Alabama,01085,330,14 +2020-06-12,Lowndes,Alabama,01085,340,14 +2020-06-13,Lowndes,Alabama,01085,369,15 +2020-06-14,Lowndes,Alabama,01085,387,15 +2020-06-15,Lowndes,Alabama,01085,397,15 +2020-06-16,Lowndes,Alabama,01085,403,15 +2020-06-17,Lowndes,Alabama,01085,406,15 +2020-06-18,Lowndes,Alabama,01085,410,15 +2020-06-19,Lowndes,Alabama,01085,414,15 +2020-06-20,Lowndes,Alabama,01085,417,15 +2020-06-21,Lowndes,Alabama,01085,420,15 +2020-06-22,Lowndes,Alabama,01085,425,15 +2020-06-23,Lowndes,Alabama,01085,428,16 +2020-06-24,Lowndes,Alabama,01085,429,18 +2020-06-25,Lowndes,Alabama,01085,436,18 +2020-06-26,Lowndes,Alabama,01085,437,18 +2020-06-27,Lowndes,Alabama,01085,441,18 +2020-06-28,Lowndes,Alabama,01085,442,18 +2020-06-29,Lowndes,Alabama,01085,461,19 +2020-06-30,Lowndes,Alabama,01085,462,20 +2020-07-01,Lowndes,Alabama,01085,463,21 +2020-07-02,Lowndes,Alabama,01085,462,21 +2020-07-03,Lowndes,Alabama,01085,465,21 +2020-07-04,Lowndes,Alabama,01085,469,21 +2020-07-05,Lowndes,Alabama,01085,474,21 +2020-07-06,Lowndes,Alabama,01085,474,21 +2020-07-07,Lowndes,Alabama,01085,482,23 +2020-07-08,Lowndes,Alabama,01085,483,24 +2020-07-09,Lowndes,Alabama,01085,484,24 +2020-03-29,Macon,Alabama,01087,1,0 +2020-03-30,Macon,Alabama,01087,1,0 +2020-03-31,Macon,Alabama,01087,1,0 +2020-04-01,Macon,Alabama,01087,2,0 +2020-04-02,Macon,Alabama,01087,4,0 +2020-04-03,Macon,Alabama,01087,5,0 +2020-04-04,Macon,Alabama,01087,5,0 +2020-04-05,Macon,Alabama,01087,5,0 +2020-04-06,Macon,Alabama,01087,5,1 +2020-04-07,Macon,Alabama,01087,6,1 +2020-04-08,Macon,Alabama,01087,6,1 +2020-04-09,Macon,Alabama,01087,9,1 +2020-04-10,Macon,Alabama,01087,9,1 +2020-04-11,Macon,Alabama,01087,12,1 +2020-04-12,Macon,Alabama,01087,14,1 +2020-04-13,Macon,Alabama,01087,17,1 +2020-04-14,Macon,Alabama,01087,19,2 +2020-04-15,Macon,Alabama,01087,19,2 +2020-04-16,Macon,Alabama,01087,24,2 +2020-04-17,Macon,Alabama,01087,24,2 +2020-04-18,Macon,Alabama,01087,24,2 +2020-04-19,Macon,Alabama,01087,25,2 +2020-04-20,Macon,Alabama,01087,26,2 +2020-04-21,Macon,Alabama,01087,27,2 +2020-04-22,Macon,Alabama,01087,27,2 +2020-04-23,Macon,Alabama,01087,27,2 +2020-04-24,Macon,Alabama,01087,29,2 +2020-04-25,Macon,Alabama,01087,31,2 +2020-04-26,Macon,Alabama,01087,34,2 +2020-04-27,Macon,Alabama,01087,34,2 +2020-04-28,Macon,Alabama,01087,35,2 +2020-04-29,Macon,Alabama,01087,36,2 +2020-04-30,Macon,Alabama,01087,37,2 +2020-05-01,Macon,Alabama,01087,37,2 +2020-05-02,Macon,Alabama,01087,38,2 +2020-05-03,Macon,Alabama,01087,40,2 +2020-05-04,Macon,Alabama,01087,40,2 +2020-05-05,Macon,Alabama,01087,41,2 +2020-05-06,Macon,Alabama,01087,42,2 +2020-05-07,Macon,Alabama,01087,43,2 +2020-05-08,Macon,Alabama,01087,44,2 +2020-05-09,Macon,Alabama,01087,47,2 +2020-05-10,Macon,Alabama,01087,47,2 +2020-05-11,Macon,Alabama,01087,49,2 +2020-05-12,Macon,Alabama,01087,51,2 +2020-05-13,Macon,Alabama,01087,53,2 +2020-05-14,Macon,Alabama,01087,53,2 +2020-05-15,Macon,Alabama,01087,55,2 +2020-05-16,Macon,Alabama,01087,55,2 +2020-05-17,Macon,Alabama,01087,55,2 +2020-05-18,Macon,Alabama,01087,55,2 +2020-05-19,Macon,Alabama,01087,54,2 +2020-05-20,Macon,Alabama,01087,58,2 +2020-05-21,Macon,Alabama,01087,58,2 +2020-05-22,Macon,Alabama,01087,58,2 +2020-05-23,Macon,Alabama,01087,59,2 +2020-05-24,Macon,Alabama,01087,60,2 +2020-05-25,Macon,Alabama,01087,62,2 +2020-05-26,Macon,Alabama,01087,65,2 +2020-05-27,Macon,Alabama,01087,67,2 +2020-05-28,Macon,Alabama,01087,71,2 +2020-05-29,Macon,Alabama,01087,72,3 +2020-05-30,Macon,Alabama,01087,75,4 +2020-05-31,Macon,Alabama,01087,82,4 +2020-06-01,Macon,Alabama,01087,86,4 +2020-06-02,Macon,Alabama,01087,87,4 +2020-06-03,Macon,Alabama,01087,88,4 +2020-06-04,Macon,Alabama,01087,94,4 +2020-06-05,Macon,Alabama,01087,95,4 +2020-06-06,Macon,Alabama,01087,97,5 +2020-06-07,Macon,Alabama,01087,99,5 +2020-06-08,Macon,Alabama,01087,101,5 +2020-06-09,Macon,Alabama,01087,105,5 +2020-06-10,Macon,Alabama,01087,106,5 +2020-06-11,Macon,Alabama,01087,111,5 +2020-06-12,Macon,Alabama,01087,118,5 +2020-06-13,Macon,Alabama,01087,123,6 +2020-06-14,Macon,Alabama,01087,126,6 +2020-06-15,Macon,Alabama,01087,127,6 +2020-06-16,Macon,Alabama,01087,133,6 +2020-06-17,Macon,Alabama,01087,134,6 +2020-06-18,Macon,Alabama,01087,138,6 +2020-06-19,Macon,Alabama,01087,140,6 +2020-06-20,Macon,Alabama,01087,146,6 +2020-06-21,Macon,Alabama,01087,149,6 +2020-06-22,Macon,Alabama,01087,150,6 +2020-06-23,Macon,Alabama,01087,149,7 +2020-06-24,Macon,Alabama,01087,152,7 +2020-06-25,Macon,Alabama,01087,155,7 +2020-06-26,Macon,Alabama,01087,161,7 +2020-06-27,Macon,Alabama,01087,162,7 +2020-06-28,Macon,Alabama,01087,163,7 +2020-06-29,Macon,Alabama,01087,167,8 +2020-06-30,Macon,Alabama,01087,168,8 +2020-07-01,Macon,Alabama,01087,172,8 +2020-07-02,Macon,Alabama,01087,179,8 +2020-07-03,Macon,Alabama,01087,185,9 +2020-07-04,Macon,Alabama,01087,189,9 +2020-07-05,Macon,Alabama,01087,198,9 +2020-07-06,Macon,Alabama,01087,203,9 +2020-07-07,Macon,Alabama,01087,203,9 +2020-07-08,Macon,Alabama,01087,206,9 +2020-07-09,Macon,Alabama,01087,212,9 +2020-03-17,Madison,Alabama,01089,1,0 +2020-03-18,Madison,Alabama,01089,1,0 +2020-03-19,Madison,Alabama,01089,5,0 +2020-03-20,Madison,Alabama,01089,7,0 +2020-03-21,Madison,Alabama,01089,9,0 +2020-03-22,Madison,Alabama,01089,16,0 +2020-03-23,Madison,Alabama,01089,21,0 +2020-03-24,Madison,Alabama,01089,21,0 +2020-03-25,Madison,Alabama,01089,35,0 +2020-03-26,Madison,Alabama,01089,43,1 +2020-03-27,Madison,Alabama,01089,61,1 +2020-03-28,Madison,Alabama,01089,62,1 +2020-03-29,Madison,Alabama,01089,80,1 +2020-03-30,Madison,Alabama,01089,96,1 +2020-03-31,Madison,Alabama,01089,100,1 +2020-04-01,Madison,Alabama,01089,107,1 +2020-04-02,Madison,Alabama,01089,116,1 +2020-04-03,Madison,Alabama,01089,123,1 +2020-04-04,Madison,Alabama,01089,126,1 +2020-04-05,Madison,Alabama,01089,137,1 +2020-04-06,Madison,Alabama,01089,141,2 +2020-04-07,Madison,Alabama,01089,150,2 +2020-04-08,Madison,Alabama,01089,165,2 +2020-04-09,Madison,Alabama,01089,177,3 +2020-04-10,Madison,Alabama,01089,177,3 +2020-04-11,Madison,Alabama,01089,186,3 +2020-04-12,Madison,Alabama,01089,187,3 +2020-04-13,Madison,Alabama,01089,188,3 +2020-04-14,Madison,Alabama,01089,191,3 +2020-04-15,Madison,Alabama,01089,194,4 +2020-04-16,Madison,Alabama,01089,198,4 +2020-04-17,Madison,Alabama,01089,216,4 +2020-04-18,Madison,Alabama,01089,197,4 +2020-04-19,Madison,Alabama,01089,199,4 +2020-04-20,Madison,Alabama,01089,202,4 +2020-04-21,Madison,Alabama,01089,203,4 +2020-04-22,Madison,Alabama,01089,205,4 +2020-04-23,Madison,Alabama,01089,205,4 +2020-04-24,Madison,Alabama,01089,202,4 +2020-04-25,Madison,Alabama,01089,210,4 +2020-04-26,Madison,Alabama,01089,211,4 +2020-04-27,Madison,Alabama,01089,214,4 +2020-04-28,Madison,Alabama,01089,222,4 +2020-04-29,Madison,Alabama,01089,224,4 +2020-04-30,Madison,Alabama,01089,227,4 +2020-05-01,Madison,Alabama,01089,225,4 +2020-05-02,Madison,Alabama,01089,233,4 +2020-05-03,Madison,Alabama,01089,234,4 +2020-05-04,Madison,Alabama,01089,237,4 +2020-05-05,Madison,Alabama,01089,238,4 +2020-05-06,Madison,Alabama,01089,238,4 +2020-05-07,Madison,Alabama,01089,241,4 +2020-05-08,Madison,Alabama,01089,244,4 +2020-05-09,Madison,Alabama,01089,247,4 +2020-05-10,Madison,Alabama,01089,247,4 +2020-05-11,Madison,Alabama,01089,250,4 +2020-05-12,Madison,Alabama,01089,255,4 +2020-05-13,Madison,Alabama,01089,259,4 +2020-05-14,Madison,Alabama,01089,272,4 +2020-05-15,Madison,Alabama,01089,274,4 +2020-05-16,Madison,Alabama,01089,275,4 +2020-05-17,Madison,Alabama,01089,275,4 +2020-05-18,Madison,Alabama,01089,278,4 +2020-05-19,Madison,Alabama,01089,278,4 +2020-05-20,Madison,Alabama,01089,285,4 +2020-05-21,Madison,Alabama,01089,284,4 +2020-05-22,Madison,Alabama,01089,286,4 +2020-05-23,Madison,Alabama,01089,292,4 +2020-05-24,Madison,Alabama,01089,296,4 +2020-05-25,Madison,Alabama,01089,302,4 +2020-05-26,Madison,Alabama,01089,309,4 +2020-05-27,Madison,Alabama,01089,315,4 +2020-05-28,Madison,Alabama,01089,318,4 +2020-05-29,Madison,Alabama,01089,324,4 +2020-05-30,Madison,Alabama,01089,327,4 +2020-05-31,Madison,Alabama,01089,339,4 +2020-06-01,Madison,Alabama,01089,363,4 +2020-06-02,Madison,Alabama,01089,365,4 +2020-06-03,Madison,Alabama,01089,367,4 +2020-06-04,Madison,Alabama,01089,374,4 +2020-06-05,Madison,Alabama,01089,380,4 +2020-06-06,Madison,Alabama,01089,392,5 +2020-06-07,Madison,Alabama,01089,397,5 +2020-06-08,Madison,Alabama,01089,407,5 +2020-06-09,Madison,Alabama,01089,418,5 +2020-06-10,Madison,Alabama,01089,434,5 +2020-06-11,Madison,Alabama,01089,449,5 +2020-06-12,Madison,Alabama,01089,477,5 +2020-06-13,Madison,Alabama,01089,493,5 +2020-06-14,Madison,Alabama,01089,553,5 +2020-06-15,Madison,Alabama,01089,587,5 +2020-06-16,Madison,Alabama,01089,598,6 +2020-06-17,Madison,Alabama,01089,598,6 +2020-06-18,Madison,Alabama,01089,646,6 +2020-06-19,Madison,Alabama,01089,671,6 +2020-06-20,Madison,Alabama,01089,708,6 +2020-06-21,Madison,Alabama,01089,723,6 +2020-06-22,Madison,Alabama,01089,733,6 +2020-06-23,Madison,Alabama,01089,749,6 +2020-06-24,Madison,Alabama,01089,775,6 +2020-06-25,Madison,Alabama,01089,842,6 +2020-06-26,Madison,Alabama,01089,889,7 +2020-06-27,Madison,Alabama,01089,921,7 +2020-06-28,Madison,Alabama,01089,930,7 +2020-06-29,Madison,Alabama,01089,1021,7 +2020-06-30,Madison,Alabama,01089,1047,7 +2020-07-01,Madison,Alabama,01089,1084,8 +2020-07-02,Madison,Alabama,01089,1129,8 +2020-07-03,Madison,Alabama,01089,1296,8 +2020-07-04,Madison,Alabama,01089,1384,8 +2020-07-05,Madison,Alabama,01089,1455,8 +2020-07-06,Madison,Alabama,01089,1516,8 +2020-07-07,Madison,Alabama,01089,1579,9 +2020-07-08,Madison,Alabama,01089,1646,9 +2020-07-09,Madison,Alabama,01089,1934,9 +2020-03-26,Marengo,Alabama,01091,1,0 +2020-03-27,Marengo,Alabama,01091,2,0 +2020-03-28,Marengo,Alabama,01091,3,0 +2020-03-29,Marengo,Alabama,01091,5,0 +2020-03-30,Marengo,Alabama,01091,4,0 +2020-03-31,Marengo,Alabama,01091,4,0 +2020-04-01,Marengo,Alabama,01091,5,0 +2020-04-02,Marengo,Alabama,01091,5,0 +2020-04-03,Marengo,Alabama,01091,8,0 +2020-04-04,Marengo,Alabama,01091,8,0 +2020-04-05,Marengo,Alabama,01091,13,0 +2020-04-06,Marengo,Alabama,01091,13,0 +2020-04-07,Marengo,Alabama,01091,14,1 +2020-04-08,Marengo,Alabama,01091,14,1 +2020-04-09,Marengo,Alabama,01091,14,1 +2020-04-10,Marengo,Alabama,01091,15,1 +2020-04-11,Marengo,Alabama,01091,19,1 +2020-04-12,Marengo,Alabama,01091,21,1 +2020-04-13,Marengo,Alabama,01091,24,1 +2020-04-14,Marengo,Alabama,01091,23,1 +2020-04-15,Marengo,Alabama,01091,24,1 +2020-04-16,Marengo,Alabama,01091,24,1 +2020-04-17,Marengo,Alabama,01091,24,1 +2020-04-18,Marengo,Alabama,01091,25,1 +2020-04-19,Marengo,Alabama,01091,27,1 +2020-04-20,Marengo,Alabama,01091,30,2 +2020-04-21,Marengo,Alabama,01091,35,2 +2020-04-22,Marengo,Alabama,01091,40,3 +2020-04-23,Marengo,Alabama,01091,38,3 +2020-04-24,Marengo,Alabama,01091,39,3 +2020-04-25,Marengo,Alabama,01091,40,3 +2020-04-26,Marengo,Alabama,01091,41,3 +2020-04-27,Marengo,Alabama,01091,43,3 +2020-04-28,Marengo,Alabama,01091,44,3 +2020-04-29,Marengo,Alabama,01091,46,3 +2020-04-30,Marengo,Alabama,01091,49,3 +2020-05-01,Marengo,Alabama,01091,52,3 +2020-05-02,Marengo,Alabama,01091,56,3 +2020-05-03,Marengo,Alabama,01091,58,3 +2020-05-04,Marengo,Alabama,01091,66,3 +2020-05-05,Marengo,Alabama,01091,68,3 +2020-05-06,Marengo,Alabama,01091,68,3 +2020-05-07,Marengo,Alabama,01091,73,3 +2020-05-08,Marengo,Alabama,01091,76,4 +2020-05-09,Marengo,Alabama,01091,77,4 +2020-05-10,Marengo,Alabama,01091,80,4 +2020-05-11,Marengo,Alabama,01091,83,4 +2020-05-12,Marengo,Alabama,01091,89,5 +2020-05-13,Marengo,Alabama,01091,91,5 +2020-05-14,Marengo,Alabama,01091,97,5 +2020-05-15,Marengo,Alabama,01091,101,6 +2020-05-16,Marengo,Alabama,01091,102,6 +2020-05-17,Marengo,Alabama,01091,103,6 +2020-05-18,Marengo,Alabama,01091,104,6 +2020-05-19,Marengo,Alabama,01091,116,6 +2020-05-20,Marengo,Alabama,01091,118,6 +2020-05-21,Marengo,Alabama,01091,121,6 +2020-05-22,Marengo,Alabama,01091,125,6 +2020-05-23,Marengo,Alabama,01091,132,6 +2020-05-24,Marengo,Alabama,01091,133,6 +2020-05-25,Marengo,Alabama,01091,141,6 +2020-05-26,Marengo,Alabama,01091,145,6 +2020-05-27,Marengo,Alabama,01091,150,6 +2020-05-28,Marengo,Alabama,01091,155,6 +2020-05-29,Marengo,Alabama,01091,160,6 +2020-05-30,Marengo,Alabama,01091,163,6 +2020-05-31,Marengo,Alabama,01091,170,6 +2020-06-01,Marengo,Alabama,01091,172,6 +2020-06-02,Marengo,Alabama,01091,175,6 +2020-06-03,Marengo,Alabama,01091,175,6 +2020-06-04,Marengo,Alabama,01091,176,6 +2020-06-05,Marengo,Alabama,01091,180,6 +2020-06-06,Marengo,Alabama,01091,183,6 +2020-06-07,Marengo,Alabama,01091,185,6 +2020-06-08,Marengo,Alabama,01091,188,6 +2020-06-09,Marengo,Alabama,01091,188,6 +2020-06-10,Marengo,Alabama,01091,193,7 +2020-06-11,Marengo,Alabama,01091,201,7 +2020-06-12,Marengo,Alabama,01091,205,9 +2020-06-13,Marengo,Alabama,01091,207,9 +2020-06-14,Marengo,Alabama,01091,210,9 +2020-06-15,Marengo,Alabama,01091,222,9 +2020-06-16,Marengo,Alabama,01091,223,9 +2020-06-17,Marengo,Alabama,01091,226,9 +2020-06-18,Marengo,Alabama,01091,235,10 +2020-06-19,Marengo,Alabama,01091,238,10 +2020-06-20,Marengo,Alabama,01091,238,11 +2020-06-21,Marengo,Alabama,01091,238,11 +2020-06-22,Marengo,Alabama,01091,238,11 +2020-06-23,Marengo,Alabama,01091,244,11 +2020-06-24,Marengo,Alabama,01091,249,11 +2020-06-25,Marengo,Alabama,01091,256,11 +2020-06-26,Marengo,Alabama,01091,261,11 +2020-06-27,Marengo,Alabama,01091,265,11 +2020-06-28,Marengo,Alabama,01091,267,11 +2020-06-29,Marengo,Alabama,01091,274,11 +2020-06-30,Marengo,Alabama,01091,278,11 +2020-07-01,Marengo,Alabama,01091,287,11 +2020-07-02,Marengo,Alabama,01091,301,11 +2020-07-03,Marengo,Alabama,01091,302,11 +2020-07-04,Marengo,Alabama,01091,304,11 +2020-07-05,Marengo,Alabama,01091,304,11 +2020-07-06,Marengo,Alabama,01091,314,11 +2020-07-07,Marengo,Alabama,01091,319,11 +2020-07-08,Marengo,Alabama,01091,322,11 +2020-07-09,Marengo,Alabama,01091,332,11 +2020-03-21,Marion,Alabama,01093,1,0 +2020-03-22,Marion,Alabama,01093,1,0 +2020-03-23,Marion,Alabama,01093,1,0 +2020-03-24,Marion,Alabama,01093,1,0 +2020-03-25,Marion,Alabama,01093,3,0 +2020-03-26,Marion,Alabama,01093,7,0 +2020-03-27,Marion,Alabama,01093,7,0 +2020-03-28,Marion,Alabama,01093,9,0 +2020-03-29,Marion,Alabama,01093,10,0 +2020-03-30,Marion,Alabama,01093,9,0 +2020-03-31,Marion,Alabama,01093,9,0 +2020-04-01,Marion,Alabama,01093,11,2 +2020-04-02,Marion,Alabama,01093,11,2 +2020-04-03,Marion,Alabama,01093,16,2 +2020-04-04,Marion,Alabama,01093,17,2 +2020-04-05,Marion,Alabama,01093,19,2 +2020-04-06,Marion,Alabama,01093,19,2 +2020-04-07,Marion,Alabama,01093,21,3 +2020-04-08,Marion,Alabama,01093,23,3 +2020-04-09,Marion,Alabama,01093,33,3 +2020-04-10,Marion,Alabama,01093,39,3 +2020-04-11,Marion,Alabama,01093,42,3 +2020-04-12,Marion,Alabama,01093,52,3 +2020-04-13,Marion,Alabama,01093,57,4 +2020-04-14,Marion,Alabama,01093,58,4 +2020-04-15,Marion,Alabama,01093,58,4 +2020-04-16,Marion,Alabama,01093,60,4 +2020-04-17,Marion,Alabama,01093,62,5 +2020-04-18,Marion,Alabama,01093,60,5 +2020-04-19,Marion,Alabama,01093,61,5 +2020-04-20,Marion,Alabama,01093,63,5 +2020-04-21,Marion,Alabama,01093,65,5 +2020-04-22,Marion,Alabama,01093,65,5 +2020-04-23,Marion,Alabama,01093,67,5 +2020-04-24,Marion,Alabama,01093,69,5 +2020-04-25,Marion,Alabama,01093,73,5 +2020-04-26,Marion,Alabama,01093,74,5 +2020-04-27,Marion,Alabama,01093,75,6 +2020-04-28,Marion,Alabama,01093,76,6 +2020-04-29,Marion,Alabama,01093,75,6 +2020-04-30,Marion,Alabama,01093,75,6 +2020-05-01,Marion,Alabama,01093,78,6 +2020-05-02,Marion,Alabama,01093,82,6 +2020-05-03,Marion,Alabama,01093,83,6 +2020-05-04,Marion,Alabama,01093,85,6 +2020-05-05,Marion,Alabama,01093,90,7 +2020-05-06,Marion,Alabama,01093,92,7 +2020-05-07,Marion,Alabama,01093,93,7 +2020-05-08,Marion,Alabama,01093,95,7 +2020-05-09,Marion,Alabama,01093,96,7 +2020-05-10,Marion,Alabama,01093,96,7 +2020-05-11,Marion,Alabama,01093,96,7 +2020-05-12,Marion,Alabama,01093,97,7 +2020-05-13,Marion,Alabama,01093,100,9 +2020-05-14,Marion,Alabama,01093,101,9 +2020-05-15,Marion,Alabama,01093,101,9 +2020-05-16,Marion,Alabama,01093,101,9 +2020-05-17,Marion,Alabama,01093,101,9 +2020-05-18,Marion,Alabama,01093,103,9 +2020-05-19,Marion,Alabama,01093,106,9 +2020-05-20,Marion,Alabama,01093,108,10 +2020-05-21,Marion,Alabama,01093,108,10 +2020-05-22,Marion,Alabama,01093,107,10 +2020-05-23,Marion,Alabama,01093,109,10 +2020-05-24,Marion,Alabama,01093,113,10 +2020-05-25,Marion,Alabama,01093,114,10 +2020-05-26,Marion,Alabama,01093,117,11 +2020-05-27,Marion,Alabama,01093,117,11 +2020-05-28,Marion,Alabama,01093,119,11 +2020-05-29,Marion,Alabama,01093,120,11 +2020-05-30,Marion,Alabama,01093,121,11 +2020-05-31,Marion,Alabama,01093,122,11 +2020-06-01,Marion,Alabama,01093,126,11 +2020-06-02,Marion,Alabama,01093,128,11 +2020-06-03,Marion,Alabama,01093,128,11 +2020-06-04,Marion,Alabama,01093,128,11 +2020-06-05,Marion,Alabama,01093,129,11 +2020-06-06,Marion,Alabama,01093,130,11 +2020-06-07,Marion,Alabama,01093,130,11 +2020-06-08,Marion,Alabama,01093,130,11 +2020-06-09,Marion,Alabama,01093,130,11 +2020-06-10,Marion,Alabama,01093,130,12 +2020-06-11,Marion,Alabama,01093,133,12 +2020-06-12,Marion,Alabama,01093,136,12 +2020-06-13,Marion,Alabama,01093,138,12 +2020-06-14,Marion,Alabama,01093,144,12 +2020-06-15,Marion,Alabama,01093,146,12 +2020-06-16,Marion,Alabama,01093,149,12 +2020-06-17,Marion,Alabama,01093,153,12 +2020-06-18,Marion,Alabama,01093,165,12 +2020-06-19,Marion,Alabama,01093,170,12 +2020-06-20,Marion,Alabama,01093,173,12 +2020-06-21,Marion,Alabama,01093,173,12 +2020-06-22,Marion,Alabama,01093,173,12 +2020-06-23,Marion,Alabama,01093,176,12 +2020-06-24,Marion,Alabama,01093,184,12 +2020-06-25,Marion,Alabama,01093,188,12 +2020-06-26,Marion,Alabama,01093,189,12 +2020-06-27,Marion,Alabama,01093,193,12 +2020-06-28,Marion,Alabama,01093,194,12 +2020-06-29,Marion,Alabama,01093,202,12 +2020-06-30,Marion,Alabama,01093,205,12 +2020-07-01,Marion,Alabama,01093,208,12 +2020-07-02,Marion,Alabama,01093,210,13 +2020-07-03,Marion,Alabama,01093,218,13 +2020-07-04,Marion,Alabama,01093,223,13 +2020-07-05,Marion,Alabama,01093,228,13 +2020-07-06,Marion,Alabama,01093,237,13 +2020-07-07,Marion,Alabama,01093,240,13 +2020-07-08,Marion,Alabama,01093,245,14 +2020-07-09,Marion,Alabama,01093,249,14 +2020-03-25,Marshall,Alabama,01095,1,0 +2020-03-26,Marshall,Alabama,01095,3,0 +2020-03-27,Marshall,Alabama,01095,4,0 +2020-03-28,Marshall,Alabama,01095,4,0 +2020-03-29,Marshall,Alabama,01095,5,0 +2020-03-30,Marshall,Alabama,01095,7,0 +2020-03-31,Marshall,Alabama,01095,6,0 +2020-04-01,Marshall,Alabama,01095,6,0 +2020-04-02,Marshall,Alabama,01095,7,0 +2020-04-03,Marshall,Alabama,01095,17,0 +2020-04-04,Marshall,Alabama,01095,17,0 +2020-04-05,Marshall,Alabama,01095,26,0 +2020-04-06,Marshall,Alabama,01095,34,1 +2020-04-07,Marshall,Alabama,01095,40,1 +2020-04-08,Marshall,Alabama,01095,45,1 +2020-04-09,Marshall,Alabama,01095,64,2 +2020-04-10,Marshall,Alabama,01095,72,2 +2020-04-11,Marshall,Alabama,01095,84,2 +2020-04-12,Marshall,Alabama,01095,99,2 +2020-04-13,Marshall,Alabama,01095,103,2 +2020-04-14,Marshall,Alabama,01095,104,2 +2020-04-15,Marshall,Alabama,01095,109,2 +2020-04-16,Marshall,Alabama,01095,117,2 +2020-04-17,Marshall,Alabama,01095,123,4 +2020-04-18,Marshall,Alabama,01095,139,4 +2020-04-19,Marshall,Alabama,01095,150,4 +2020-04-20,Marshall,Alabama,01095,167,3 +2020-04-21,Marshall,Alabama,01095,195,5 +2020-04-22,Marshall,Alabama,01095,241,4 +2020-04-23,Marshall,Alabama,01095,258,4 +2020-04-24,Marshall,Alabama,01095,267,4 +2020-04-25,Marshall,Alabama,01095,279,5 +2020-04-26,Marshall,Alabama,01095,307,5 +2020-04-27,Marshall,Alabama,01095,310,5 +2020-04-28,Marshall,Alabama,01095,313,6 +2020-04-29,Marshall,Alabama,01095,316,6 +2020-04-30,Marshall,Alabama,01095,317,6 +2020-05-01,Marshall,Alabama,01095,328,7 +2020-05-02,Marshall,Alabama,01095,334,7 +2020-05-03,Marshall,Alabama,01095,342,7 +2020-05-04,Marshall,Alabama,01095,355,7 +2020-05-05,Marshall,Alabama,01095,439,8 +2020-05-06,Marshall,Alabama,01095,470,8 +2020-05-07,Marshall,Alabama,01095,487,8 +2020-05-08,Marshall,Alabama,01095,525,8 +2020-05-09,Marshall,Alabama,01095,543,8 +2020-05-10,Marshall,Alabama,01095,558,8 +2020-05-11,Marshall,Alabama,01095,576,8 +2020-05-12,Marshall,Alabama,01095,581,8 +2020-05-13,Marshall,Alabama,01095,586,9 +2020-05-14,Marshall,Alabama,01095,599,9 +2020-05-15,Marshall,Alabama,01095,612,9 +2020-05-16,Marshall,Alabama,01095,624,9 +2020-05-17,Marshall,Alabama,01095,624,9 +2020-05-18,Marshall,Alabama,01095,632,9 +2020-05-19,Marshall,Alabama,01095,638,9 +2020-05-20,Marshall,Alabama,01095,641,9 +2020-05-21,Marshall,Alabama,01095,643,9 +2020-05-22,Marshall,Alabama,01095,642,9 +2020-05-23,Marshall,Alabama,01095,645,9 +2020-05-24,Marshall,Alabama,01095,649,9 +2020-05-25,Marshall,Alabama,01095,650,9 +2020-05-26,Marshall,Alabama,01095,660,9 +2020-05-27,Marshall,Alabama,01095,660,9 +2020-05-28,Marshall,Alabama,01095,668,9 +2020-05-29,Marshall,Alabama,01095,681,9 +2020-05-30,Marshall,Alabama,01095,687,9 +2020-05-31,Marshall,Alabama,01095,693,9 +2020-06-01,Marshall,Alabama,01095,704,9 +2020-06-02,Marshall,Alabama,01095,709,9 +2020-06-03,Marshall,Alabama,01095,709,9 +2020-06-04,Marshall,Alabama,01095,712,9 +2020-06-05,Marshall,Alabama,01095,718,9 +2020-06-06,Marshall,Alabama,01095,734,9 +2020-06-07,Marshall,Alabama,01095,743,9 +2020-06-08,Marshall,Alabama,01095,748,9 +2020-06-09,Marshall,Alabama,01095,756,9 +2020-06-10,Marshall,Alabama,01095,768,9 +2020-06-11,Marshall,Alabama,01095,791,9 +2020-06-12,Marshall,Alabama,01095,816,9 +2020-06-13,Marshall,Alabama,01095,854,9 +2020-06-14,Marshall,Alabama,01095,887,9 +2020-06-15,Marshall,Alabama,01095,901,9 +2020-06-16,Marshall,Alabama,01095,931,9 +2020-06-17,Marshall,Alabama,01095,962,9 +2020-06-18,Marshall,Alabama,01095,1001,9 +2020-06-19,Marshall,Alabama,01095,1038,9 +2020-06-20,Marshall,Alabama,01095,1061,9 +2020-06-21,Marshall,Alabama,01095,1082,9 +2020-06-22,Marshall,Alabama,01095,1104,9 +2020-06-23,Marshall,Alabama,01095,1148,9 +2020-06-24,Marshall,Alabama,01095,1192,9 +2020-06-25,Marshall,Alabama,01095,1275,9 +2020-06-26,Marshall,Alabama,01095,1336,9 +2020-06-27,Marshall,Alabama,01095,1399,9 +2020-06-28,Marshall,Alabama,01095,1418,9 +2020-06-29,Marshall,Alabama,01095,1463,9 +2020-06-30,Marshall,Alabama,01095,1505,9 +2020-07-01,Marshall,Alabama,01095,1548,10 +2020-07-02,Marshall,Alabama,01095,1631,10 +2020-07-03,Marshall,Alabama,01095,1688,10 +2020-07-04,Marshall,Alabama,01095,1710,10 +2020-07-05,Marshall,Alabama,01095,1719,10 +2020-07-06,Marshall,Alabama,01095,1732,10 +2020-07-07,Marshall,Alabama,01095,1781,11 +2020-07-08,Marshall,Alabama,01095,1826,11 +2020-07-09,Marshall,Alabama,01095,1879,11 +2020-03-19,Mobile,Alabama,01097,1,0 +2020-03-20,Mobile,Alabama,01097,2,0 +2020-03-21,Mobile,Alabama,01097,2,0 +2020-03-22,Mobile,Alabama,01097,2,0 +2020-03-23,Mobile,Alabama,01097,2,0 +2020-03-24,Mobile,Alabama,01097,6,0 +2020-03-25,Mobile,Alabama,01097,10,0 +2020-03-26,Mobile,Alabama,01097,21,0 +2020-03-27,Mobile,Alabama,01097,23,1 +2020-03-28,Mobile,Alabama,01097,34,1 +2020-03-29,Mobile,Alabama,01097,41,1 +2020-03-30,Mobile,Alabama,01097,45,1 +2020-03-31,Mobile,Alabama,01097,53,1 +2020-04-01,Mobile,Alabama,01097,57,3 +2020-04-02,Mobile,Alabama,01097,69,4 +2020-04-03,Mobile,Alabama,01097,103,5 +2020-04-04,Mobile,Alabama,01097,114,5 +2020-04-05,Mobile,Alabama,01097,127,6 +2020-04-06,Mobile,Alabama,01097,148,6 +2020-04-07,Mobile,Alabama,01097,202,8 +2020-04-08,Mobile,Alabama,01097,249,8 +2020-04-09,Mobile,Alabama,01097,329,10 +2020-04-10,Mobile,Alabama,01097,382,11 +2020-04-11,Mobile,Alabama,01097,429,15 +2020-04-12,Mobile,Alabama,01097,454,15 +2020-04-13,Mobile,Alabama,01097,491,18 +2020-04-14,Mobile,Alabama,01097,509,17 +2020-04-15,Mobile,Alabama,01097,561,19 +2020-04-16,Mobile,Alabama,01097,594,23 +2020-04-17,Mobile,Alabama,01097,627,25 +2020-04-18,Mobile,Alabama,01097,638,25 +2020-04-19,Mobile,Alabama,01097,663,29 +2020-04-20,Mobile,Alabama,01097,680,33 +2020-04-21,Mobile,Alabama,01097,721,38 +2020-04-22,Mobile,Alabama,01097,759,39 +2020-04-23,Mobile,Alabama,01097,810,38 +2020-04-24,Mobile,Alabama,01097,845,40 +2020-04-25,Mobile,Alabama,01097,888,40 +2020-04-26,Mobile,Alabama,01097,917,41 +2020-04-27,Mobile,Alabama,01097,942,43 +2020-04-28,Mobile,Alabama,01097,994,46 +2020-04-29,Mobile,Alabama,01097,1041,53 +2020-04-30,Mobile,Alabama,01097,1057,55 +2020-05-01,Mobile,Alabama,01097,1099,61 +2020-05-02,Mobile,Alabama,01097,1172,61 +2020-05-03,Mobile,Alabama,01097,1198,62 +2020-05-04,Mobile,Alabama,01097,1222,66 +2020-05-05,Mobile,Alabama,01097,1265,71 +2020-05-06,Mobile,Alabama,01097,1311,76 +2020-05-07,Mobile,Alabama,01097,1355,78 +2020-05-08,Mobile,Alabama,01097,1407,81 +2020-05-09,Mobile,Alabama,01097,1452,83 +2020-05-10,Mobile,Alabama,01097,1461,85 +2020-05-11,Mobile,Alabama,01097,1474,90 +2020-05-12,Mobile,Alabama,01097,1507,95 +2020-05-13,Mobile,Alabama,01097,1545,96 +2020-05-14,Mobile,Alabama,01097,1608,98 +2020-05-15,Mobile,Alabama,01097,1653,100 +2020-05-16,Mobile,Alabama,01097,1681,100 +2020-05-17,Mobile,Alabama,01097,1701,101 +2020-05-18,Mobile,Alabama,01097,1735,101 +2020-05-19,Mobile,Alabama,01097,1751,103 +2020-05-20,Mobile,Alabama,01097,1822,106 +2020-05-21,Mobile,Alabama,01097,1874,107 +2020-05-22,Mobile,Alabama,01097,1916,107 +2020-05-23,Mobile,Alabama,01097,1982,109 +2020-05-24,Mobile,Alabama,01097,1996,109 +2020-05-25,Mobile,Alabama,01097,2033,111 +2020-05-26,Mobile,Alabama,01097,2054,112 +2020-05-27,Mobile,Alabama,01097,2085,112 +2020-05-28,Mobile,Alabama,01097,2124,112 +2020-05-29,Mobile,Alabama,01097,2162,114 +2020-05-30,Mobile,Alabama,01097,2191,115 +2020-05-31,Mobile,Alabama,01097,2239,116 +2020-06-01,Mobile,Alabama,01097,2280,118 +2020-06-02,Mobile,Alabama,01097,2292,118 +2020-06-03,Mobile,Alabama,01097,2293,118 +2020-06-04,Mobile,Alabama,01097,2330,118 +2020-06-05,Mobile,Alabama,01097,2352,124 +2020-06-06,Mobile,Alabama,01097,2394,125 +2020-06-07,Mobile,Alabama,01097,2450,125 +2020-06-08,Mobile,Alabama,01097,2478,124 +2020-06-09,Mobile,Alabama,01097,2504,126 +2020-06-10,Mobile,Alabama,01097,2563,127 +2020-06-11,Mobile,Alabama,01097,2612,128 +2020-06-12,Mobile,Alabama,01097,2642,129 +2020-06-13,Mobile,Alabama,01097,2679,129 +2020-06-14,Mobile,Alabama,01097,2716,129 +2020-06-15,Mobile,Alabama,01097,2742,129 +2020-06-16,Mobile,Alabama,01097,2790,129 +2020-06-17,Mobile,Alabama,01097,2808,130 +2020-06-18,Mobile,Alabama,01097,2856,131 +2020-06-19,Mobile,Alabama,01097,2921,132 +2020-06-20,Mobile,Alabama,01097,2954,133 +2020-06-21,Mobile,Alabama,01097,3016,133 +2020-06-22,Mobile,Alabama,01097,3036,133 +2020-06-23,Mobile,Alabama,01097,3074,133 +2020-06-24,Mobile,Alabama,01097,3186,135 +2020-06-25,Mobile,Alabama,01097,3241,135 +2020-06-26,Mobile,Alabama,01097,3294,135 +2020-06-27,Mobile,Alabama,01097,3385,135 +2020-06-28,Mobile,Alabama,01097,3441,135 +2020-06-29,Mobile,Alabama,01097,3562,137 +2020-06-30,Mobile,Alabama,01097,3660,138 +2020-07-01,Mobile,Alabama,01097,3724,138 +2020-07-02,Mobile,Alabama,01097,3823,138 +2020-07-03,Mobile,Alabama,01097,3928,138 +2020-07-04,Mobile,Alabama,01097,4029,138 +2020-07-05,Mobile,Alabama,01097,4104,138 +2020-07-06,Mobile,Alabama,01097,4153,138 +2020-07-07,Mobile,Alabama,01097,4243,140 +2020-07-08,Mobile,Alabama,01097,4339,140 +2020-07-09,Mobile,Alabama,01097,4442,141 +2020-03-28,Monroe,Alabama,01099,1,0 +2020-03-29,Monroe,Alabama,01099,1,0 +2020-03-30,Monroe,Alabama,01099,1,0 +2020-03-31,Monroe,Alabama,01099,1,0 +2020-04-01,Monroe,Alabama,01099,3,0 +2020-04-02,Monroe,Alabama,01099,3,0 +2020-04-03,Monroe,Alabama,01099,5,0 +2020-04-04,Monroe,Alabama,01099,5,0 +2020-04-05,Monroe,Alabama,01099,5,0 +2020-04-06,Monroe,Alabama,01099,5,0 +2020-04-07,Monroe,Alabama,01099,5,1 +2020-04-08,Monroe,Alabama,01099,6,1 +2020-04-09,Monroe,Alabama,01099,6,1 +2020-04-10,Monroe,Alabama,01099,6,1 +2020-04-11,Monroe,Alabama,01099,6,1 +2020-04-12,Monroe,Alabama,01099,6,1 +2020-04-13,Monroe,Alabama,01099,7,1 +2020-04-14,Monroe,Alabama,01099,7,1 +2020-04-15,Monroe,Alabama,01099,7,1 +2020-04-16,Monroe,Alabama,01099,7,1 +2020-04-17,Monroe,Alabama,01099,7,1 +2020-04-18,Monroe,Alabama,01099,8,0 +2020-04-19,Monroe,Alabama,01099,9,1 +2020-04-20,Monroe,Alabama,01099,9,1 +2020-04-21,Monroe,Alabama,01099,9,1 +2020-04-22,Monroe,Alabama,01099,9,1 +2020-04-23,Monroe,Alabama,01099,9,1 +2020-04-24,Monroe,Alabama,01099,11,1 +2020-04-25,Monroe,Alabama,01099,11,1 +2020-04-26,Monroe,Alabama,01099,12,1 +2020-04-27,Monroe,Alabama,01099,11,1 +2020-04-28,Monroe,Alabama,01099,12,1 +2020-04-29,Monroe,Alabama,01099,12,1 +2020-04-30,Monroe,Alabama,01099,13,1 +2020-05-01,Monroe,Alabama,01099,13,1 +2020-05-02,Monroe,Alabama,01099,13,1 +2020-05-03,Monroe,Alabama,01099,13,1 +2020-05-04,Monroe,Alabama,01099,13,1 +2020-05-05,Monroe,Alabama,01099,13,1 +2020-05-06,Monroe,Alabama,01099,15,1 +2020-05-07,Monroe,Alabama,01099,15,1 +2020-05-08,Monroe,Alabama,01099,15,1 +2020-05-09,Monroe,Alabama,01099,15,1 +2020-05-10,Monroe,Alabama,01099,15,1 +2020-05-11,Monroe,Alabama,01099,15,1 +2020-05-12,Monroe,Alabama,01099,15,1 +2020-05-13,Monroe,Alabama,01099,18,2 +2020-05-14,Monroe,Alabama,01099,18,2 +2020-05-15,Monroe,Alabama,01099,18,2 +2020-05-16,Monroe,Alabama,01099,19,2 +2020-05-17,Monroe,Alabama,01099,20,2 +2020-05-18,Monroe,Alabama,01099,20,2 +2020-05-19,Monroe,Alabama,01099,20,2 +2020-05-20,Monroe,Alabama,01099,22,2 +2020-05-21,Monroe,Alabama,01099,23,2 +2020-05-22,Monroe,Alabama,01099,23,2 +2020-05-23,Monroe,Alabama,01099,26,2 +2020-05-24,Monroe,Alabama,01099,28,2 +2020-05-25,Monroe,Alabama,01099,33,2 +2020-05-26,Monroe,Alabama,01099,34,2 +2020-05-27,Monroe,Alabama,01099,34,2 +2020-05-28,Monroe,Alabama,01099,35,2 +2020-05-29,Monroe,Alabama,01099,36,2 +2020-05-30,Monroe,Alabama,01099,37,2 +2020-05-31,Monroe,Alabama,01099,40,2 +2020-06-01,Monroe,Alabama,01099,43,2 +2020-06-02,Monroe,Alabama,01099,44,2 +2020-06-03,Monroe,Alabama,01099,45,2 +2020-06-04,Monroe,Alabama,01099,46,2 +2020-06-05,Monroe,Alabama,01099,49,2 +2020-06-06,Monroe,Alabama,01099,54,2 +2020-06-07,Monroe,Alabama,01099,56,2 +2020-06-08,Monroe,Alabama,01099,62,2 +2020-06-09,Monroe,Alabama,01099,68,2 +2020-06-10,Monroe,Alabama,01099,79,2 +2020-06-11,Monroe,Alabama,01099,95,2 +2020-06-12,Monroe,Alabama,01099,107,2 +2020-06-13,Monroe,Alabama,01099,117,2 +2020-06-14,Monroe,Alabama,01099,126,2 +2020-06-15,Monroe,Alabama,01099,136,2 +2020-06-16,Monroe,Alabama,01099,144,2 +2020-06-17,Monroe,Alabama,01099,148,2 +2020-06-18,Monroe,Alabama,01099,152,2 +2020-06-19,Monroe,Alabama,01099,154,2 +2020-06-20,Monroe,Alabama,01099,159,2 +2020-06-21,Monroe,Alabama,01099,163,2 +2020-06-22,Monroe,Alabama,01099,163,2 +2020-06-23,Monroe,Alabama,01099,169,2 +2020-06-24,Monroe,Alabama,01099,172,2 +2020-06-25,Monroe,Alabama,01099,175,2 +2020-06-26,Monroe,Alabama,01099,179,2 +2020-06-27,Monroe,Alabama,01099,188,2 +2020-06-28,Monroe,Alabama,01099,189,2 +2020-06-29,Monroe,Alabama,01099,190,2 +2020-06-30,Monroe,Alabama,01099,195,2 +2020-07-01,Monroe,Alabama,01099,198,2 +2020-07-02,Monroe,Alabama,01099,206,2 +2020-07-03,Monroe,Alabama,01099,232,2 +2020-07-04,Monroe,Alabama,01099,235,2 +2020-07-05,Monroe,Alabama,01099,236,2 +2020-07-06,Monroe,Alabama,01099,240,2 +2020-07-07,Monroe,Alabama,01099,243,3 +2020-07-08,Monroe,Alabama,01099,246,3 +2020-07-09,Monroe,Alabama,01099,251,3 +2020-03-13,Montgomery,Alabama,01101,1,0 +2020-03-14,Montgomery,Alabama,01101,1,0 +2020-03-15,Montgomery,Alabama,01101,1,0 +2020-03-16,Montgomery,Alabama,01101,2,0 +2020-03-17,Montgomery,Alabama,01101,2,0 +2020-03-18,Montgomery,Alabama,01101,2,0 +2020-03-19,Montgomery,Alabama,01101,3,0 +2020-03-20,Montgomery,Alabama,01101,3,0 +2020-03-21,Montgomery,Alabama,01101,3,0 +2020-03-22,Montgomery,Alabama,01101,3,0 +2020-03-23,Montgomery,Alabama,01101,4,0 +2020-03-24,Montgomery,Alabama,01101,9,0 +2020-03-25,Montgomery,Alabama,01101,13,0 +2020-03-26,Montgomery,Alabama,01101,17,0 +2020-03-27,Montgomery,Alabama,01101,18,0 +2020-03-28,Montgomery,Alabama,01101,18,0 +2020-03-29,Montgomery,Alabama,01101,22,0 +2020-03-30,Montgomery,Alabama,01101,29,0 +2020-03-31,Montgomery,Alabama,01101,31,1 +2020-04-01,Montgomery,Alabama,01101,35,1 +2020-04-02,Montgomery,Alabama,01101,46,1 +2020-04-03,Montgomery,Alabama,01101,61,1 +2020-04-04,Montgomery,Alabama,01101,63,1 +2020-04-05,Montgomery,Alabama,01101,71,1 +2020-04-06,Montgomery,Alabama,01101,71,1 +2020-04-07,Montgomery,Alabama,01101,74,1 +2020-04-08,Montgomery,Alabama,01101,81,2 +2020-04-09,Montgomery,Alabama,01101,90,3 +2020-04-10,Montgomery,Alabama,01101,92,4 +2020-04-11,Montgomery,Alabama,01101,106,4 +2020-04-12,Montgomery,Alabama,01101,120,4 +2020-04-13,Montgomery,Alabama,01101,149,5 +2020-04-14,Montgomery,Alabama,01101,161,5 +2020-04-15,Montgomery,Alabama,01101,189,5 +2020-04-16,Montgomery,Alabama,01101,201,5 +2020-04-17,Montgomery,Alabama,01101,207,5 +2020-04-18,Montgomery,Alabama,01101,217,3 +2020-04-19,Montgomery,Alabama,01101,226,3 +2020-04-20,Montgomery,Alabama,01101,231,3 +2020-04-21,Montgomery,Alabama,01101,245,3 +2020-04-22,Montgomery,Alabama,01101,253,3 +2020-04-23,Montgomery,Alabama,01101,263,3 +2020-04-24,Montgomery,Alabama,01101,274,4 +2020-04-25,Montgomery,Alabama,01101,284,4 +2020-04-26,Montgomery,Alabama,01101,289,4 +2020-04-27,Montgomery,Alabama,01101,292,5 +2020-04-28,Montgomery,Alabama,01101,302,5 +2020-04-29,Montgomery,Alabama,01101,318,6 +2020-04-30,Montgomery,Alabama,01101,337,6 +2020-05-01,Montgomery,Alabama,01101,355,6 +2020-05-02,Montgomery,Alabama,01101,379,6 +2020-05-03,Montgomery,Alabama,01101,409,7 +2020-05-04,Montgomery,Alabama,01101,438,8 +2020-05-05,Montgomery,Alabama,01101,456,8 +2020-05-06,Montgomery,Alabama,01101,477,12 +2020-05-07,Montgomery,Alabama,01101,515,13 +2020-05-08,Montgomery,Alabama,01101,533,15 +2020-05-09,Montgomery,Alabama,01101,576,15 +2020-05-10,Montgomery,Alabama,01101,608,15 +2020-05-11,Montgomery,Alabama,01101,642,15 +2020-05-12,Montgomery,Alabama,01101,684,18 +2020-05-13,Montgomery,Alabama,01101,705,19 +2020-05-14,Montgomery,Alabama,01101,753,20 +2020-05-15,Montgomery,Alabama,01101,787,20 +2020-05-16,Montgomery,Alabama,01101,816,20 +2020-05-17,Montgomery,Alabama,01101,823,20 +2020-05-18,Montgomery,Alabama,01101,863,20 +2020-05-19,Montgomery,Alabama,01101,907,24 +2020-05-20,Montgomery,Alabama,01101,994,27 +2020-05-21,Montgomery,Alabama,01101,1052,28 +2020-05-22,Montgomery,Alabama,01101,1096,29 +2020-05-23,Montgomery,Alabama,01101,1147,30 +2020-05-24,Montgomery,Alabama,01101,1186,30 +2020-05-25,Montgomery,Alabama,01101,1274,33 +2020-05-26,Montgomery,Alabama,01101,1384,34 +2020-05-27,Montgomery,Alabama,01101,1446,34 +2020-05-28,Montgomery,Alabama,01101,1541,34 +2020-05-29,Montgomery,Alabama,01101,1590,38 +2020-05-30,Montgomery,Alabama,01101,1632,38 +2020-05-31,Montgomery,Alabama,01101,1710,40 +2020-06-01,Montgomery,Alabama,01101,1778,44 +2020-06-02,Montgomery,Alabama,01101,1824,44 +2020-06-03,Montgomery,Alabama,01101,1845,44 +2020-06-04,Montgomery,Alabama,01101,1881,44 +2020-06-05,Montgomery,Alabama,01101,1929,45 +2020-06-06,Montgomery,Alabama,01101,2023,48 +2020-06-07,Montgomery,Alabama,01101,2084,49 +2020-06-08,Montgomery,Alabama,01101,2158,55 +2020-06-09,Montgomery,Alabama,01101,2256,57 +2020-06-10,Montgomery,Alabama,01101,2326,62 +2020-06-11,Montgomery,Alabama,01101,2472,66 +2020-06-12,Montgomery,Alabama,01101,2581,69 +2020-06-13,Montgomery,Alabama,01101,2683,69 +2020-06-14,Montgomery,Alabama,01101,2830,69 +2020-06-15,Montgomery,Alabama,01101,2910,69 +2020-06-16,Montgomery,Alabama,01101,2961,71 +2020-06-17,Montgomery,Alabama,01101,2996,72 +2020-06-18,Montgomery,Alabama,01101,3101,75 +2020-06-19,Montgomery,Alabama,01101,3149,77 +2020-06-20,Montgomery,Alabama,01101,3222,81 +2020-06-21,Montgomery,Alabama,01101,3258,81 +2020-06-22,Montgomery,Alabama,01101,3297,81 +2020-06-23,Montgomery,Alabama,01101,3351,87 +2020-06-24,Montgomery,Alabama,01101,3441,90 +2020-06-25,Montgomery,Alabama,01101,3514,91 +2020-06-26,Montgomery,Alabama,01101,3569,94 +2020-06-27,Montgomery,Alabama,01101,3624,95 +2020-06-28,Montgomery,Alabama,01101,3630,95 +2020-06-29,Montgomery,Alabama,01101,3777,96 +2020-06-30,Montgomery,Alabama,01101,3839,97 +2020-07-01,Montgomery,Alabama,01101,3890,102 +2020-07-02,Montgomery,Alabama,01101,3925,104 +2020-07-03,Montgomery,Alabama,01101,3994,105 +2020-07-04,Montgomery,Alabama,01101,4068,105 +2020-07-05,Montgomery,Alabama,01101,4174,105 +2020-07-06,Montgomery,Alabama,01101,4205,105 +2020-07-07,Montgomery,Alabama,01101,4293,107 +2020-07-08,Montgomery,Alabama,01101,4321,111 +2020-07-09,Montgomery,Alabama,01101,4386,111 +2020-03-24,Morgan,Alabama,01103,2,0 +2020-03-25,Morgan,Alabama,01103,5,0 +2020-03-26,Morgan,Alabama,01103,9,0 +2020-03-27,Morgan,Alabama,01103,13,0 +2020-03-28,Morgan,Alabama,01103,15,0 +2020-03-29,Morgan,Alabama,01103,17,0 +2020-03-30,Morgan,Alabama,01103,19,0 +2020-03-31,Morgan,Alabama,01103,20,0 +2020-04-01,Morgan,Alabama,01103,20,0 +2020-04-02,Morgan,Alabama,01103,22,0 +2020-04-03,Morgan,Alabama,01103,24,0 +2020-04-04,Morgan,Alabama,01103,24,0 +2020-04-05,Morgan,Alabama,01103,27,0 +2020-04-06,Morgan,Alabama,01103,30,0 +2020-04-07,Morgan,Alabama,01103,31,0 +2020-04-08,Morgan,Alabama,01103,34,0 +2020-04-09,Morgan,Alabama,01103,36,0 +2020-04-10,Morgan,Alabama,01103,36,0 +2020-04-11,Morgan,Alabama,01103,37,0 +2020-04-12,Morgan,Alabama,01103,39,0 +2020-04-13,Morgan,Alabama,01103,41,0 +2020-04-14,Morgan,Alabama,01103,41,0 +2020-04-15,Morgan,Alabama,01103,44,0 +2020-04-16,Morgan,Alabama,01103,44,0 +2020-04-17,Morgan,Alabama,01103,47,0 +2020-04-18,Morgan,Alabama,01103,45,0 +2020-04-19,Morgan,Alabama,01103,47,0 +2020-04-20,Morgan,Alabama,01103,48,0 +2020-04-21,Morgan,Alabama,01103,51,0 +2020-04-22,Morgan,Alabama,01103,50,0 +2020-04-23,Morgan,Alabama,01103,50,0 +2020-04-24,Morgan,Alabama,01103,55,0 +2020-04-25,Morgan,Alabama,01103,57,0 +2020-04-26,Morgan,Alabama,01103,64,0 +2020-04-27,Morgan,Alabama,01103,65,0 +2020-04-28,Morgan,Alabama,01103,68,0 +2020-04-29,Morgan,Alabama,01103,67,0 +2020-04-30,Morgan,Alabama,01103,68,0 +2020-05-01,Morgan,Alabama,01103,71,0 +2020-05-02,Morgan,Alabama,01103,73,0 +2020-05-03,Morgan,Alabama,01103,74,0 +2020-05-04,Morgan,Alabama,01103,76,0 +2020-05-05,Morgan,Alabama,01103,78,0 +2020-05-06,Morgan,Alabama,01103,81,0 +2020-05-07,Morgan,Alabama,01103,84,0 +2020-05-08,Morgan,Alabama,01103,87,0 +2020-05-09,Morgan,Alabama,01103,92,0 +2020-05-10,Morgan,Alabama,01103,93,0 +2020-05-11,Morgan,Alabama,01103,95,0 +2020-05-12,Morgan,Alabama,01103,98,1 +2020-05-13,Morgan,Alabama,01103,99,1 +2020-05-14,Morgan,Alabama,01103,104,1 +2020-05-15,Morgan,Alabama,01103,109,1 +2020-05-16,Morgan,Alabama,01103,110,1 +2020-05-17,Morgan,Alabama,01103,111,1 +2020-05-18,Morgan,Alabama,01103,116,1 +2020-05-19,Morgan,Alabama,01103,119,1 +2020-05-20,Morgan,Alabama,01103,132,1 +2020-05-21,Morgan,Alabama,01103,142,1 +2020-05-22,Morgan,Alabama,01103,144,1 +2020-05-23,Morgan,Alabama,01103,157,1 +2020-05-24,Morgan,Alabama,01103,162,1 +2020-05-25,Morgan,Alabama,01103,176,1 +2020-05-26,Morgan,Alabama,01103,204,1 +2020-05-27,Morgan,Alabama,01103,211,1 +2020-05-28,Morgan,Alabama,01103,231,1 +2020-05-29,Morgan,Alabama,01103,244,1 +2020-05-30,Morgan,Alabama,01103,251,1 +2020-05-31,Morgan,Alabama,01103,280,1 +2020-06-01,Morgan,Alabama,01103,292,1 +2020-06-02,Morgan,Alabama,01103,302,1 +2020-06-03,Morgan,Alabama,01103,303,1 +2020-06-04,Morgan,Alabama,01103,307,1 +2020-06-05,Morgan,Alabama,01103,319,1 +2020-06-06,Morgan,Alabama,01103,367,1 +2020-06-07,Morgan,Alabama,01103,384,1 +2020-06-08,Morgan,Alabama,01103,401,1 +2020-06-09,Morgan,Alabama,01103,435,1 +2020-06-10,Morgan,Alabama,01103,462,1 +2020-06-11,Morgan,Alabama,01103,483,1 +2020-06-12,Morgan,Alabama,01103,522,2 +2020-06-13,Morgan,Alabama,01103,559,2 +2020-06-14,Morgan,Alabama,01103,606,2 +2020-06-15,Morgan,Alabama,01103,644,2 +2020-06-16,Morgan,Alabama,01103,670,2 +2020-06-17,Morgan,Alabama,01103,682,2 +2020-06-18,Morgan,Alabama,01103,708,2 +2020-06-19,Morgan,Alabama,01103,717,2 +2020-06-20,Morgan,Alabama,01103,733,2 +2020-06-21,Morgan,Alabama,01103,754,2 +2020-06-22,Morgan,Alabama,01103,766,2 +2020-06-23,Morgan,Alabama,01103,782,2 +2020-06-24,Morgan,Alabama,01103,825,2 +2020-06-25,Morgan,Alabama,01103,866,2 +2020-06-26,Morgan,Alabama,01103,895,3 +2020-06-27,Morgan,Alabama,01103,916,3 +2020-06-28,Morgan,Alabama,01103,925,3 +2020-06-29,Morgan,Alabama,01103,948,3 +2020-06-30,Morgan,Alabama,01103,966,3 +2020-07-01,Morgan,Alabama,01103,993,3 +2020-07-02,Morgan,Alabama,01103,1032,3 +2020-07-03,Morgan,Alabama,01103,1060,5 +2020-07-04,Morgan,Alabama,01103,1084,5 +2020-07-05,Morgan,Alabama,01103,1115,5 +2020-07-06,Morgan,Alabama,01103,1134,5 +2020-07-07,Morgan,Alabama,01103,1142,5 +2020-07-08,Morgan,Alabama,01103,1171,5 +2020-07-09,Morgan,Alabama,01103,1234,5 +2020-04-09,Perry,Alabama,01105,2,0 +2020-04-10,Perry,Alabama,01105,3,0 +2020-04-11,Perry,Alabama,01105,4,0 +2020-04-12,Perry,Alabama,01105,6,0 +2020-04-13,Perry,Alabama,01105,6,0 +2020-04-14,Perry,Alabama,01105,7,0 +2020-04-15,Perry,Alabama,01105,7,0 +2020-04-16,Perry,Alabama,01105,8,0 +2020-04-17,Perry,Alabama,01105,9,0 +2020-04-18,Perry,Alabama,01105,9,0 +2020-04-19,Perry,Alabama,01105,9,0 +2020-04-20,Perry,Alabama,01105,9,0 +2020-04-21,Perry,Alabama,01105,9,0 +2020-04-22,Perry,Alabama,01105,9,0 +2020-04-23,Perry,Alabama,01105,9,0 +2020-04-24,Perry,Alabama,01105,9,0 +2020-04-25,Perry,Alabama,01105,9,0 +2020-04-26,Perry,Alabama,01105,9,0 +2020-04-27,Perry,Alabama,01105,9,0 +2020-04-28,Perry,Alabama,01105,9,0 +2020-04-29,Perry,Alabama,01105,9,0 +2020-04-30,Perry,Alabama,01105,9,0 +2020-05-01,Perry,Alabama,01105,10,0 +2020-05-02,Perry,Alabama,01105,10,0 +2020-05-03,Perry,Alabama,01105,15,0 +2020-05-04,Perry,Alabama,01105,16,0 +2020-05-05,Perry,Alabama,01105,16,0 +2020-05-06,Perry,Alabama,01105,16,0 +2020-05-07,Perry,Alabama,01105,18,0 +2020-05-08,Perry,Alabama,01105,18,0 +2020-05-09,Perry,Alabama,01105,19,0 +2020-05-10,Perry,Alabama,01105,19,0 +2020-05-11,Perry,Alabama,01105,19,0 +2020-05-12,Perry,Alabama,01105,19,0 +2020-05-13,Perry,Alabama,01105,19,0 +2020-05-14,Perry,Alabama,01105,19,0 +2020-05-15,Perry,Alabama,01105,20,0 +2020-05-16,Perry,Alabama,01105,20,0 +2020-05-17,Perry,Alabama,01105,20,0 +2020-05-18,Perry,Alabama,01105,21,0 +2020-05-19,Perry,Alabama,01105,22,0 +2020-05-20,Perry,Alabama,01105,23,0 +2020-05-21,Perry,Alabama,01105,26,0 +2020-05-22,Perry,Alabama,01105,28,0 +2020-05-23,Perry,Alabama,01105,30,0 +2020-05-24,Perry,Alabama,01105,31,0 +2020-05-25,Perry,Alabama,01105,35,0 +2020-05-26,Perry,Alabama,01105,36,0 +2020-05-27,Perry,Alabama,01105,36,0 +2020-05-28,Perry,Alabama,01105,35,0 +2020-05-29,Perry,Alabama,01105,35,0 +2020-05-30,Perry,Alabama,01105,37,0 +2020-05-31,Perry,Alabama,01105,39,0 +2020-06-01,Perry,Alabama,01105,42,0 +2020-06-02,Perry,Alabama,01105,42,0 +2020-06-03,Perry,Alabama,01105,42,0 +2020-06-04,Perry,Alabama,01105,43,0 +2020-06-05,Perry,Alabama,01105,43,0 +2020-06-06,Perry,Alabama,01105,46,0 +2020-06-07,Perry,Alabama,01105,47,0 +2020-06-08,Perry,Alabama,01105,50,0 +2020-06-09,Perry,Alabama,01105,52,0 +2020-06-10,Perry,Alabama,01105,54,0 +2020-06-11,Perry,Alabama,01105,56,0 +2020-06-12,Perry,Alabama,01105,62,0 +2020-06-13,Perry,Alabama,01105,68,0 +2020-06-14,Perry,Alabama,01105,74,0 +2020-06-15,Perry,Alabama,01105,75,0 +2020-06-16,Perry,Alabama,01105,79,0 +2020-06-17,Perry,Alabama,01105,79,0 +2020-06-18,Perry,Alabama,01105,84,0 +2020-06-19,Perry,Alabama,01105,86,0 +2020-06-20,Perry,Alabama,01105,86,0 +2020-06-21,Perry,Alabama,01105,87,0 +2020-06-22,Perry,Alabama,01105,88,0 +2020-06-23,Perry,Alabama,01105,91,0 +2020-06-24,Perry,Alabama,01105,96,0 +2020-06-25,Perry,Alabama,01105,102,0 +2020-06-26,Perry,Alabama,01105,104,0 +2020-06-27,Perry,Alabama,01105,110,0 +2020-06-28,Perry,Alabama,01105,117,0 +2020-06-29,Perry,Alabama,01105,132,0 +2020-06-30,Perry,Alabama,01105,135,0 +2020-07-01,Perry,Alabama,01105,145,1 +2020-07-02,Perry,Alabama,01105,154,1 +2020-07-03,Perry,Alabama,01105,162,1 +2020-07-04,Perry,Alabama,01105,170,1 +2020-07-05,Perry,Alabama,01105,177,1 +2020-07-06,Perry,Alabama,01105,179,1 +2020-07-07,Perry,Alabama,01105,179,1 +2020-07-08,Perry,Alabama,01105,179,1 +2020-07-09,Perry,Alabama,01105,209,1 +2020-03-25,Pickens,Alabama,01107,1,0 +2020-03-26,Pickens,Alabama,01107,1,0 +2020-03-27,Pickens,Alabama,01107,1,0 +2020-03-28,Pickens,Alabama,01107,1,0 +2020-03-29,Pickens,Alabama,01107,2,0 +2020-03-30,Pickens,Alabama,01107,3,0 +2020-03-31,Pickens,Alabama,01107,4,0 +2020-04-01,Pickens,Alabama,01107,4,0 +2020-04-02,Pickens,Alabama,01107,9,0 +2020-04-03,Pickens,Alabama,01107,11,0 +2020-04-04,Pickens,Alabama,01107,12,0 +2020-04-05,Pickens,Alabama,01107,12,0 +2020-04-06,Pickens,Alabama,01107,13,0 +2020-04-07,Pickens,Alabama,01107,14,0 +2020-04-08,Pickens,Alabama,01107,15,0 +2020-04-09,Pickens,Alabama,01107,19,0 +2020-04-10,Pickens,Alabama,01107,19,0 +2020-04-11,Pickens,Alabama,01107,21,0 +2020-04-12,Pickens,Alabama,01107,22,0 +2020-04-13,Pickens,Alabama,01107,23,0 +2020-04-14,Pickens,Alabama,01107,24,0 +2020-04-15,Pickens,Alabama,01107,30,0 +2020-04-16,Pickens,Alabama,01107,30,0 +2020-04-17,Pickens,Alabama,01107,32,0 +2020-04-18,Pickens,Alabama,01107,33,0 +2020-04-19,Pickens,Alabama,01107,38,0 +2020-04-20,Pickens,Alabama,01107,40,0 +2020-04-21,Pickens,Alabama,01107,42,1 +2020-04-22,Pickens,Alabama,01107,44,1 +2020-04-23,Pickens,Alabama,01107,44,1 +2020-04-24,Pickens,Alabama,01107,45,1 +2020-04-25,Pickens,Alabama,01107,46,1 +2020-04-26,Pickens,Alabama,01107,48,1 +2020-04-27,Pickens,Alabama,01107,47,1 +2020-04-28,Pickens,Alabama,01107,47,1 +2020-04-29,Pickens,Alabama,01107,48,1 +2020-04-30,Pickens,Alabama,01107,48,1 +2020-05-01,Pickens,Alabama,01107,50,2 +2020-05-02,Pickens,Alabama,01107,54,2 +2020-05-03,Pickens,Alabama,01107,55,2 +2020-05-04,Pickens,Alabama,01107,56,2 +2020-05-05,Pickens,Alabama,01107,57,2 +2020-05-06,Pickens,Alabama,01107,58,2 +2020-05-07,Pickens,Alabama,01107,59,2 +2020-05-08,Pickens,Alabama,01107,63,2 +2020-05-09,Pickens,Alabama,01107,65,2 +2020-05-10,Pickens,Alabama,01107,67,2 +2020-05-11,Pickens,Alabama,01107,70,2 +2020-05-12,Pickens,Alabama,01107,70,2 +2020-05-13,Pickens,Alabama,01107,70,2 +2020-05-14,Pickens,Alabama,01107,71,2 +2020-05-15,Pickens,Alabama,01107,73,3 +2020-05-16,Pickens,Alabama,01107,77,3 +2020-05-17,Pickens,Alabama,01107,78,3 +2020-05-18,Pickens,Alabama,01107,82,3 +2020-05-19,Pickens,Alabama,01107,84,3 +2020-05-20,Pickens,Alabama,01107,86,4 +2020-05-21,Pickens,Alabama,01107,86,4 +2020-05-22,Pickens,Alabama,01107,86,4 +2020-05-23,Pickens,Alabama,01107,88,4 +2020-05-24,Pickens,Alabama,01107,93,4 +2020-05-25,Pickens,Alabama,01107,93,4 +2020-05-26,Pickens,Alabama,01107,95,4 +2020-05-27,Pickens,Alabama,01107,96,4 +2020-05-28,Pickens,Alabama,01107,101,4 +2020-05-29,Pickens,Alabama,01107,109,4 +2020-05-30,Pickens,Alabama,01107,111,4 +2020-05-31,Pickens,Alabama,01107,116,4 +2020-06-01,Pickens,Alabama,01107,118,4 +2020-06-02,Pickens,Alabama,01107,121,5 +2020-06-03,Pickens,Alabama,01107,121,5 +2020-06-04,Pickens,Alabama,01107,120,5 +2020-06-05,Pickens,Alabama,01107,121,5 +2020-06-06,Pickens,Alabama,01107,123,6 +2020-06-07,Pickens,Alabama,01107,123,6 +2020-06-08,Pickens,Alabama,01107,125,6 +2020-06-09,Pickens,Alabama,01107,127,6 +2020-06-10,Pickens,Alabama,01107,129,6 +2020-06-11,Pickens,Alabama,01107,132,6 +2020-06-12,Pickens,Alabama,01107,138,6 +2020-06-13,Pickens,Alabama,01107,141,6 +2020-06-14,Pickens,Alabama,01107,142,6 +2020-06-15,Pickens,Alabama,01107,142,6 +2020-06-16,Pickens,Alabama,01107,143,6 +2020-06-17,Pickens,Alabama,01107,143,6 +2020-06-18,Pickens,Alabama,01107,150,6 +2020-06-19,Pickens,Alabama,01107,154,6 +2020-06-20,Pickens,Alabama,01107,157,6 +2020-06-21,Pickens,Alabama,01107,166,6 +2020-06-22,Pickens,Alabama,01107,170,6 +2020-06-23,Pickens,Alabama,01107,172,6 +2020-06-24,Pickens,Alabama,01107,175,6 +2020-06-25,Pickens,Alabama,01107,179,6 +2020-06-26,Pickens,Alabama,01107,189,6 +2020-06-27,Pickens,Alabama,01107,191,6 +2020-06-28,Pickens,Alabama,01107,193,6 +2020-06-29,Pickens,Alabama,01107,199,6 +2020-06-30,Pickens,Alabama,01107,205,6 +2020-07-01,Pickens,Alabama,01107,212,6 +2020-07-02,Pickens,Alabama,01107,218,6 +2020-07-03,Pickens,Alabama,01107,223,6 +2020-07-04,Pickens,Alabama,01107,228,6 +2020-07-05,Pickens,Alabama,01107,236,6 +2020-07-06,Pickens,Alabama,01107,237,6 +2020-07-07,Pickens,Alabama,01107,241,6 +2020-07-08,Pickens,Alabama,01107,247,6 +2020-07-09,Pickens,Alabama,01107,258,6 +2020-03-25,Pike,Alabama,01109,1,0 +2020-03-26,Pike,Alabama,01109,2,0 +2020-03-27,Pike,Alabama,01109,4,0 +2020-03-28,Pike,Alabama,01109,4,0 +2020-03-29,Pike,Alabama,01109,4,0 +2020-03-30,Pike,Alabama,01109,4,0 +2020-03-31,Pike,Alabama,01109,4,0 +2020-04-01,Pike,Alabama,01109,7,0 +2020-04-02,Pike,Alabama,01109,7,0 +2020-04-03,Pike,Alabama,01109,10,0 +2020-04-04,Pike,Alabama,01109,10,0 +2020-04-05,Pike,Alabama,01109,14,0 +2020-04-06,Pike,Alabama,01109,14,0 +2020-04-07,Pike,Alabama,01109,14,0 +2020-04-08,Pike,Alabama,01109,16,0 +2020-04-09,Pike,Alabama,01109,18,0 +2020-04-10,Pike,Alabama,01109,18,0 +2020-04-11,Pike,Alabama,01109,18,0 +2020-04-12,Pike,Alabama,01109,20,0 +2020-04-13,Pike,Alabama,01109,21,0 +2020-04-14,Pike,Alabama,01109,22,0 +2020-04-15,Pike,Alabama,01109,27,0 +2020-04-16,Pike,Alabama,01109,28,0 +2020-04-17,Pike,Alabama,01109,29,0 +2020-04-18,Pike,Alabama,01109,34,0 +2020-04-19,Pike,Alabama,01109,37,0 +2020-04-20,Pike,Alabama,01109,41,0 +2020-04-21,Pike,Alabama,01109,46,0 +2020-04-22,Pike,Alabama,01109,53,0 +2020-04-23,Pike,Alabama,01109,57,0 +2020-04-24,Pike,Alabama,01109,58,0 +2020-04-25,Pike,Alabama,01109,58,0 +2020-04-26,Pike,Alabama,01109,62,0 +2020-04-27,Pike,Alabama,01109,65,0 +2020-04-28,Pike,Alabama,01109,65,0 +2020-04-29,Pike,Alabama,01109,67,0 +2020-04-30,Pike,Alabama,01109,66,0 +2020-05-01,Pike,Alabama,01109,69,0 +2020-05-02,Pike,Alabama,01109,73,0 +2020-05-03,Pike,Alabama,01109,75,0 +2020-05-04,Pike,Alabama,01109,79,0 +2020-05-05,Pike,Alabama,01109,82,0 +2020-05-06,Pike,Alabama,01109,84,0 +2020-05-07,Pike,Alabama,01109,85,0 +2020-05-08,Pike,Alabama,01109,87,0 +2020-05-09,Pike,Alabama,01109,89,0 +2020-05-10,Pike,Alabama,01109,93,0 +2020-05-11,Pike,Alabama,01109,99,0 +2020-05-12,Pike,Alabama,01109,100,0 +2020-05-13,Pike,Alabama,01109,102,0 +2020-05-14,Pike,Alabama,01109,103,0 +2020-05-15,Pike,Alabama,01109,105,0 +2020-05-16,Pike,Alabama,01109,106,0 +2020-05-17,Pike,Alabama,01109,106,0 +2020-05-18,Pike,Alabama,01109,107,0 +2020-05-19,Pike,Alabama,01109,110,0 +2020-05-20,Pike,Alabama,01109,121,0 +2020-05-21,Pike,Alabama,01109,125,0 +2020-05-22,Pike,Alabama,01109,127,0 +2020-05-23,Pike,Alabama,01109,130,0 +2020-05-24,Pike,Alabama,01109,136,0 +2020-05-25,Pike,Alabama,01109,145,0 +2020-05-26,Pike,Alabama,01109,160,0 +2020-05-27,Pike,Alabama,01109,173,0 +2020-05-28,Pike,Alabama,01109,179,0 +2020-05-29,Pike,Alabama,01109,191,0 +2020-05-30,Pike,Alabama,01109,198,0 +2020-05-31,Pike,Alabama,01109,203,0 +2020-06-01,Pike,Alabama,01109,207,0 +2020-06-02,Pike,Alabama,01109,209,0 +2020-06-03,Pike,Alabama,01109,209,0 +2020-06-04,Pike,Alabama,01109,213,0 +2020-06-05,Pike,Alabama,01109,224,1 +2020-06-06,Pike,Alabama,01109,241,1 +2020-06-07,Pike,Alabama,01109,245,1 +2020-06-08,Pike,Alabama,01109,252,1 +2020-06-09,Pike,Alabama,01109,261,1 +2020-06-10,Pike,Alabama,01109,268,1 +2020-06-11,Pike,Alabama,01109,285,1 +2020-06-12,Pike,Alabama,01109,300,2 +2020-06-13,Pike,Alabama,01109,309,2 +2020-06-14,Pike,Alabama,01109,326,2 +2020-06-15,Pike,Alabama,01109,336,2 +2020-06-16,Pike,Alabama,01109,343,2 +2020-06-17,Pike,Alabama,01109,345,2 +2020-06-18,Pike,Alabama,01109,347,3 +2020-06-19,Pike,Alabama,01109,356,3 +2020-06-20,Pike,Alabama,01109,360,3 +2020-06-21,Pike,Alabama,01109,360,3 +2020-06-22,Pike,Alabama,01109,361,3 +2020-06-23,Pike,Alabama,01109,370,4 +2020-06-24,Pike,Alabama,01109,378,4 +2020-06-25,Pike,Alabama,01109,383,4 +2020-06-26,Pike,Alabama,01109,387,5 +2020-06-27,Pike,Alabama,01109,394,5 +2020-06-28,Pike,Alabama,01109,395,5 +2020-06-29,Pike,Alabama,01109,401,5 +2020-06-30,Pike,Alabama,01109,404,5 +2020-07-01,Pike,Alabama,01109,407,5 +2020-07-02,Pike,Alabama,01109,415,5 +2020-07-03,Pike,Alabama,01109,424,5 +2020-07-04,Pike,Alabama,01109,427,5 +2020-07-05,Pike,Alabama,01109,436,5 +2020-07-06,Pike,Alabama,01109,444,5 +2020-07-07,Pike,Alabama,01109,459,5 +2020-07-08,Pike,Alabama,01109,458,5 +2020-07-09,Pike,Alabama,01109,465,5 +2020-03-27,Randolph,Alabama,01111,1,0 +2020-03-28,Randolph,Alabama,01111,2,0 +2020-03-29,Randolph,Alabama,01111,2,0 +2020-03-30,Randolph,Alabama,01111,2,0 +2020-03-31,Randolph,Alabama,01111,2,0 +2020-04-01,Randolph,Alabama,01111,5,0 +2020-04-02,Randolph,Alabama,01111,6,0 +2020-04-03,Randolph,Alabama,01111,10,1 +2020-04-04,Randolph,Alabama,01111,11,1 +2020-04-05,Randolph,Alabama,01111,11,1 +2020-04-06,Randolph,Alabama,01111,12,1 +2020-04-07,Randolph,Alabama,01111,13,2 +2020-04-08,Randolph,Alabama,01111,15,2 +2020-04-09,Randolph,Alabama,01111,20,3 +2020-04-10,Randolph,Alabama,01111,22,3 +2020-04-11,Randolph,Alabama,01111,27,4 +2020-04-12,Randolph,Alabama,01111,36,4 +2020-04-13,Randolph,Alabama,01111,40,4 +2020-04-14,Randolph,Alabama,01111,45,4 +2020-04-15,Randolph,Alabama,01111,45,4 +2020-04-16,Randolph,Alabama,01111,47,4 +2020-04-17,Randolph,Alabama,01111,51,4 +2020-04-18,Randolph,Alabama,01111,51,3 +2020-04-19,Randolph,Alabama,01111,53,3 +2020-04-20,Randolph,Alabama,01111,56,3 +2020-04-21,Randolph,Alabama,01111,59,3 +2020-04-22,Randolph,Alabama,01111,60,4 +2020-04-23,Randolph,Alabama,01111,58,4 +2020-04-24,Randolph,Alabama,01111,60,4 +2020-04-25,Randolph,Alabama,01111,60,4 +2020-04-26,Randolph,Alabama,01111,60,4 +2020-04-27,Randolph,Alabama,01111,61,4 +2020-04-28,Randolph,Alabama,01111,62,4 +2020-04-29,Randolph,Alabama,01111,62,4 +2020-04-30,Randolph,Alabama,01111,62,4 +2020-05-01,Randolph,Alabama,01111,62,4 +2020-05-02,Randolph,Alabama,01111,74,4 +2020-05-03,Randolph,Alabama,01111,77,4 +2020-05-04,Randolph,Alabama,01111,79,4 +2020-05-05,Randolph,Alabama,01111,82,4 +2020-05-06,Randolph,Alabama,01111,91,5 +2020-05-07,Randolph,Alabama,01111,96,6 +2020-05-08,Randolph,Alabama,01111,100,6 +2020-05-09,Randolph,Alabama,01111,102,6 +2020-05-10,Randolph,Alabama,01111,104,7 +2020-05-11,Randolph,Alabama,01111,111,7 +2020-05-12,Randolph,Alabama,01111,117,7 +2020-05-13,Randolph,Alabama,01111,117,7 +2020-05-14,Randolph,Alabama,01111,118,7 +2020-05-15,Randolph,Alabama,01111,119,7 +2020-05-16,Randolph,Alabama,01111,119,7 +2020-05-17,Randolph,Alabama,01111,120,7 +2020-05-18,Randolph,Alabama,01111,120,7 +2020-05-19,Randolph,Alabama,01111,120,7 +2020-05-20,Randolph,Alabama,01111,120,7 +2020-05-21,Randolph,Alabama,01111,122,7 +2020-05-22,Randolph,Alabama,01111,123,7 +2020-05-23,Randolph,Alabama,01111,124,7 +2020-05-24,Randolph,Alabama,01111,125,7 +2020-05-25,Randolph,Alabama,01111,124,7 +2020-05-26,Randolph,Alabama,01111,124,7 +2020-05-27,Randolph,Alabama,01111,124,7 +2020-05-28,Randolph,Alabama,01111,125,7 +2020-05-29,Randolph,Alabama,01111,125,7 +2020-05-30,Randolph,Alabama,01111,125,7 +2020-05-31,Randolph,Alabama,01111,127,7 +2020-06-01,Randolph,Alabama,01111,130,7 +2020-06-02,Randolph,Alabama,01111,131,7 +2020-06-03,Randolph,Alabama,01111,131,7 +2020-06-04,Randolph,Alabama,01111,131,7 +2020-06-05,Randolph,Alabama,01111,131,8 +2020-06-06,Randolph,Alabama,01111,132,8 +2020-06-07,Randolph,Alabama,01111,135,8 +2020-06-08,Randolph,Alabama,01111,135,8 +2020-06-09,Randolph,Alabama,01111,135,8 +2020-06-10,Randolph,Alabama,01111,138,8 +2020-06-11,Randolph,Alabama,01111,139,8 +2020-06-12,Randolph,Alabama,01111,140,8 +2020-06-13,Randolph,Alabama,01111,140,8 +2020-06-14,Randolph,Alabama,01111,142,8 +2020-06-15,Randolph,Alabama,01111,143,8 +2020-06-16,Randolph,Alabama,01111,143,8 +2020-06-17,Randolph,Alabama,01111,143,8 +2020-06-18,Randolph,Alabama,01111,144,8 +2020-06-19,Randolph,Alabama,01111,144,8 +2020-06-20,Randolph,Alabama,01111,144,8 +2020-06-21,Randolph,Alabama,01111,144,8 +2020-06-22,Randolph,Alabama,01111,144,8 +2020-06-23,Randolph,Alabama,01111,146,9 +2020-06-24,Randolph,Alabama,01111,149,9 +2020-06-25,Randolph,Alabama,01111,152,9 +2020-06-26,Randolph,Alabama,01111,152,9 +2020-06-27,Randolph,Alabama,01111,156,9 +2020-06-28,Randolph,Alabama,01111,156,9 +2020-06-29,Randolph,Alabama,01111,165,9 +2020-06-30,Randolph,Alabama,01111,171,9 +2020-07-01,Randolph,Alabama,01111,172,9 +2020-07-02,Randolph,Alabama,01111,190,9 +2020-07-03,Randolph,Alabama,01111,203,9 +2020-07-04,Randolph,Alabama,01111,202,9 +2020-07-05,Randolph,Alabama,01111,208,9 +2020-07-06,Randolph,Alabama,01111,211,9 +2020-07-07,Randolph,Alabama,01111,218,9 +2020-07-08,Randolph,Alabama,01111,230,9 +2020-07-09,Randolph,Alabama,01111,246,9 +2020-03-25,Russell,Alabama,01113,1,0 +2020-03-26,Russell,Alabama,01113,1,0 +2020-03-27,Russell,Alabama,01113,1,0 +2020-03-28,Russell,Alabama,01113,1,0 +2020-03-29,Russell,Alabama,01113,1,0 +2020-03-30,Russell,Alabama,01113,1,0 +2020-03-31,Russell,Alabama,01113,1,0 +2020-04-01,Russell,Alabama,01113,2,0 +2020-04-02,Russell,Alabama,01113,2,0 +2020-04-03,Russell,Alabama,01113,4,0 +2020-04-04,Russell,Alabama,01113,6,0 +2020-04-05,Russell,Alabama,01113,10,0 +2020-04-06,Russell,Alabama,01113,10,0 +2020-04-07,Russell,Alabama,01113,12,0 +2020-04-08,Russell,Alabama,01113,14,0 +2020-04-09,Russell,Alabama,01113,18,0 +2020-04-10,Russell,Alabama,01113,20,0 +2020-04-11,Russell,Alabama,01113,22,0 +2020-04-12,Russell,Alabama,01113,24,0 +2020-04-13,Russell,Alabama,01113,28,0 +2020-04-14,Russell,Alabama,01113,30,0 +2020-04-15,Russell,Alabama,01113,31,0 +2020-04-16,Russell,Alabama,01113,35,0 +2020-04-17,Russell,Alabama,01113,35,0 +2020-04-18,Russell,Alabama,01113,42,0 +2020-04-19,Russell,Alabama,01113,43,0 +2020-04-20,Russell,Alabama,01113,48,0 +2020-04-21,Russell,Alabama,01113,48,0 +2020-04-22,Russell,Alabama,01113,52,0 +2020-04-23,Russell,Alabama,01113,54,0 +2020-04-24,Russell,Alabama,01113,53,0 +2020-04-25,Russell,Alabama,01113,53,0 +2020-04-26,Russell,Alabama,01113,53,0 +2020-04-27,Russell,Alabama,01113,53,0 +2020-04-28,Russell,Alabama,01113,55,0 +2020-04-29,Russell,Alabama,01113,55,0 +2020-04-30,Russell,Alabama,01113,57,0 +2020-05-01,Russell,Alabama,01113,60,0 +2020-05-02,Russell,Alabama,01113,60,0 +2020-05-03,Russell,Alabama,01113,61,0 +2020-05-04,Russell,Alabama,01113,63,0 +2020-05-05,Russell,Alabama,01113,63,0 +2020-05-06,Russell,Alabama,01113,66,0 +2020-05-07,Russell,Alabama,01113,69,0 +2020-05-08,Russell,Alabama,01113,73,0 +2020-05-09,Russell,Alabama,01113,77,0 +2020-05-10,Russell,Alabama,01113,79,0 +2020-05-11,Russell,Alabama,01113,81,0 +2020-05-12,Russell,Alabama,01113,83,0 +2020-05-13,Russell,Alabama,01113,88,0 +2020-05-14,Russell,Alabama,01113,91,0 +2020-05-15,Russell,Alabama,01113,96,0 +2020-05-16,Russell,Alabama,01113,100,0 +2020-05-17,Russell,Alabama,01113,100,0 +2020-05-18,Russell,Alabama,01113,105,0 +2020-05-19,Russell,Alabama,01113,109,0 +2020-05-20,Russell,Alabama,01113,116,0 +2020-05-21,Russell,Alabama,01113,118,0 +2020-05-22,Russell,Alabama,01113,120,0 +2020-05-23,Russell,Alabama,01113,125,0 +2020-05-24,Russell,Alabama,01113,128,0 +2020-05-25,Russell,Alabama,01113,137,0 +2020-05-26,Russell,Alabama,01113,144,0 +2020-05-27,Russell,Alabama,01113,148,0 +2020-05-28,Russell,Alabama,01113,159,0 +2020-05-29,Russell,Alabama,01113,162,0 +2020-05-30,Russell,Alabama,01113,167,0 +2020-05-31,Russell,Alabama,01113,171,0 +2020-06-01,Russell,Alabama,01113,176,0 +2020-06-02,Russell,Alabama,01113,179,0 +2020-06-03,Russell,Alabama,01113,179,0 +2020-06-04,Russell,Alabama,01113,183,0 +2020-06-05,Russell,Alabama,01113,189,0 +2020-06-06,Russell,Alabama,01113,195,0 +2020-06-07,Russell,Alabama,01113,200,0 +2020-06-08,Russell,Alabama,01113,214,0 +2020-06-09,Russell,Alabama,01113,224,0 +2020-06-10,Russell,Alabama,01113,239,0 +2020-06-11,Russell,Alabama,01113,253,0 +2020-06-12,Russell,Alabama,01113,268,0 +2020-06-13,Russell,Alabama,01113,282,0 +2020-06-14,Russell,Alabama,01113,286,0 +2020-06-15,Russell,Alabama,01113,301,0 +2020-06-16,Russell,Alabama,01113,304,0 +2020-06-17,Russell,Alabama,01113,316,0 +2020-06-18,Russell,Alabama,01113,330,0 +2020-06-19,Russell,Alabama,01113,349,0 +2020-06-20,Russell,Alabama,01113,353,0 +2020-06-21,Russell,Alabama,01113,362,0 +2020-06-22,Russell,Alabama,01113,370,0 +2020-06-23,Russell,Alabama,01113,382,0 +2020-06-24,Russell,Alabama,01113,395,0 +2020-06-25,Russell,Alabama,01113,411,0 +2020-06-26,Russell,Alabama,01113,414,0 +2020-06-27,Russell,Alabama,01113,420,0 +2020-06-28,Russell,Alabama,01113,427,0 +2020-06-29,Russell,Alabama,01113,457,0 +2020-06-30,Russell,Alabama,01113,474,0 +2020-07-01,Russell,Alabama,01113,489,0 +2020-07-02,Russell,Alabama,01113,509,0 +2020-07-03,Russell,Alabama,01113,524,0 +2020-07-04,Russell,Alabama,01113,550,0 +2020-07-05,Russell,Alabama,01113,557,0 +2020-07-06,Russell,Alabama,01113,570,0 +2020-07-07,Russell,Alabama,01113,574,0 +2020-07-08,Russell,Alabama,01113,595,0 +2020-07-09,Russell,Alabama,01113,664,0 +2020-03-17,St. Clair,Alabama,01115,1,0 +2020-03-18,St. Clair,Alabama,01115,1,0 +2020-03-19,St. Clair,Alabama,01115,1,0 +2020-03-20,St. Clair,Alabama,01115,1,0 +2020-03-21,St. Clair,Alabama,01115,1,0 +2020-03-22,St. Clair,Alabama,01115,3,0 +2020-03-23,St. Clair,Alabama,01115,3,0 +2020-03-24,St. Clair,Alabama,01115,4,0 +2020-03-25,St. Clair,Alabama,01115,6,0 +2020-03-26,St. Clair,Alabama,01115,6,0 +2020-03-27,St. Clair,Alabama,01115,9,0 +2020-03-28,St. Clair,Alabama,01115,10,0 +2020-03-29,St. Clair,Alabama,01115,13,0 +2020-03-30,St. Clair,Alabama,01115,14,0 +2020-03-31,St. Clair,Alabama,01115,15,0 +2020-04-01,St. Clair,Alabama,01115,17,0 +2020-04-02,St. Clair,Alabama,01115,19,0 +2020-04-03,St. Clair,Alabama,01115,23,0 +2020-04-04,St. Clair,Alabama,01115,25,0 +2020-04-05,St. Clair,Alabama,01115,28,0 +2020-04-06,St. Clair,Alabama,01115,31,0 +2020-04-07,St. Clair,Alabama,01115,30,0 +2020-04-08,St. Clair,Alabama,01115,35,0 +2020-04-09,St. Clair,Alabama,01115,37,0 +2020-04-10,St. Clair,Alabama,01115,37,0 +2020-04-11,St. Clair,Alabama,01115,39,0 +2020-04-12,St. Clair,Alabama,01115,42,0 +2020-04-13,St. Clair,Alabama,01115,43,0 +2020-04-14,St. Clair,Alabama,01115,45,0 +2020-04-15,St. Clair,Alabama,01115,49,0 +2020-04-16,St. Clair,Alabama,01115,49,0 +2020-04-17,St. Clair,Alabama,01115,52,0 +2020-04-18,St. Clair,Alabama,01115,53,0 +2020-04-19,St. Clair,Alabama,01115,54,0 +2020-04-20,St. Clair,Alabama,01115,57,0 +2020-04-21,St. Clair,Alabama,01115,59,0 +2020-04-22,St. Clair,Alabama,01115,62,0 +2020-04-23,St. Clair,Alabama,01115,62,0 +2020-04-24,St. Clair,Alabama,01115,63,0 +2020-04-25,St. Clair,Alabama,01115,63,0 +2020-04-26,St. Clair,Alabama,01115,64,0 +2020-04-27,St. Clair,Alabama,01115,68,0 +2020-04-28,St. Clair,Alabama,01115,70,0 +2020-04-29,St. Clair,Alabama,01115,70,0 +2020-04-30,St. Clair,Alabama,01115,72,0 +2020-05-01,St. Clair,Alabama,01115,73,0 +2020-05-02,St. Clair,Alabama,01115,73,0 +2020-05-03,St. Clair,Alabama,01115,76,0 +2020-05-04,St. Clair,Alabama,01115,76,0 +2020-05-05,St. Clair,Alabama,01115,76,0 +2020-05-06,St. Clair,Alabama,01115,77,1 +2020-05-07,St. Clair,Alabama,01115,78,1 +2020-05-08,St. Clair,Alabama,01115,79,1 +2020-05-09,St. Clair,Alabama,01115,81,1 +2020-05-10,St. Clair,Alabama,01115,82,1 +2020-05-11,St. Clair,Alabama,01115,84,1 +2020-05-12,St. Clair,Alabama,01115,86,1 +2020-05-13,St. Clair,Alabama,01115,87,1 +2020-05-14,St. Clair,Alabama,01115,88,1 +2020-05-15,St. Clair,Alabama,01115,88,1 +2020-05-16,St. Clair,Alabama,01115,90,1 +2020-05-17,St. Clair,Alabama,01115,90,1 +2020-05-18,St. Clair,Alabama,01115,91,1 +2020-05-19,St. Clair,Alabama,01115,91,1 +2020-05-20,St. Clair,Alabama,01115,95,1 +2020-05-21,St. Clair,Alabama,01115,98,1 +2020-05-22,St. Clair,Alabama,01115,98,1 +2020-05-23,St. Clair,Alabama,01115,100,1 +2020-05-24,St. Clair,Alabama,01115,102,1 +2020-05-25,St. Clair,Alabama,01115,104,1 +2020-05-26,St. Clair,Alabama,01115,106,1 +2020-05-27,St. Clair,Alabama,01115,108,1 +2020-05-28,St. Clair,Alabama,01115,116,1 +2020-05-29,St. Clair,Alabama,01115,118,1 +2020-05-30,St. Clair,Alabama,01115,118,1 +2020-05-31,St. Clair,Alabama,01115,123,1 +2020-06-01,St. Clair,Alabama,01115,135,1 +2020-06-02,St. Clair,Alabama,01115,138,1 +2020-06-03,St. Clair,Alabama,01115,138,1 +2020-06-04,St. Clair,Alabama,01115,142,1 +2020-06-05,St. Clair,Alabama,01115,145,2 +2020-06-06,St. Clair,Alabama,01115,146,2 +2020-06-07,St. Clair,Alabama,01115,148,2 +2020-06-08,St. Clair,Alabama,01115,149,2 +2020-06-09,St. Clair,Alabama,01115,149,2 +2020-06-10,St. Clair,Alabama,01115,157,2 +2020-06-11,St. Clair,Alabama,01115,161,2 +2020-06-12,St. Clair,Alabama,01115,166,2 +2020-06-13,St. Clair,Alabama,01115,175,2 +2020-06-14,St. Clair,Alabama,01115,178,2 +2020-06-15,St. Clair,Alabama,01115,181,2 +2020-06-16,St. Clair,Alabama,01115,184,2 +2020-06-17,St. Clair,Alabama,01115,188,2 +2020-06-18,St. Clair,Alabama,01115,190,2 +2020-06-19,St. Clair,Alabama,01115,201,2 +2020-06-20,St. Clair,Alabama,01115,204,2 +2020-06-21,St. Clair,Alabama,01115,209,2 +2020-06-22,St. Clair,Alabama,01115,212,2 +2020-06-23,St. Clair,Alabama,01115,218,2 +2020-06-24,St. Clair,Alabama,01115,227,2 +2020-06-25,St. Clair,Alabama,01115,236,2 +2020-06-26,St. Clair,Alabama,01115,245,2 +2020-06-27,St. Clair,Alabama,01115,255,2 +2020-06-28,St. Clair,Alabama,01115,257,2 +2020-06-29,St. Clair,Alabama,01115,285,2 +2020-06-30,St. Clair,Alabama,01115,302,2 +2020-07-01,St. Clair,Alabama,01115,314,2 +2020-07-02,St. Clair,Alabama,01115,329,2 +2020-07-03,St. Clair,Alabama,01115,357,2 +2020-07-04,St. Clair,Alabama,01115,376,2 +2020-07-05,St. Clair,Alabama,01115,392,2 +2020-07-06,St. Clair,Alabama,01115,412,2 +2020-07-07,St. Clair,Alabama,01115,426,2 +2020-07-08,St. Clair,Alabama,01115,452,2 +2020-07-09,St. Clair,Alabama,01115,481,2 +2020-03-15,Shelby,Alabama,01117,2,0 +2020-03-16,Shelby,Alabama,01117,3,0 +2020-03-17,Shelby,Alabama,01117,4,0 +2020-03-18,Shelby,Alabama,01117,4,0 +2020-03-19,Shelby,Alabama,01117,9,0 +2020-03-20,Shelby,Alabama,01117,10,0 +2020-03-21,Shelby,Alabama,01117,16,0 +2020-03-22,Shelby,Alabama,01117,17,0 +2020-03-23,Shelby,Alabama,01117,22,0 +2020-03-24,Shelby,Alabama,01117,27,0 +2020-03-25,Shelby,Alabama,01117,42,0 +2020-03-26,Shelby,Alabama,01117,53,0 +2020-03-27,Shelby,Alabama,01117,70,0 +2020-03-28,Shelby,Alabama,01117,72,0 +2020-03-29,Shelby,Alabama,01117,79,0 +2020-03-30,Shelby,Alabama,01117,88,0 +2020-03-31,Shelby,Alabama,01117,86,2 +2020-04-01,Shelby,Alabama,01117,89,3 +2020-04-02,Shelby,Alabama,01117,101,3 +2020-04-03,Shelby,Alabama,01117,115,4 +2020-04-04,Shelby,Alabama,01117,127,5 +2020-04-05,Shelby,Alabama,01117,145,5 +2020-04-06,Shelby,Alabama,01117,150,5 +2020-04-07,Shelby,Alabama,01117,159,5 +2020-04-08,Shelby,Alabama,01117,165,5 +2020-04-09,Shelby,Alabama,01117,183,5 +2020-04-10,Shelby,Alabama,01117,185,5 +2020-04-11,Shelby,Alabama,01117,196,5 +2020-04-12,Shelby,Alabama,01117,213,5 +2020-04-13,Shelby,Alabama,01117,230,5 +2020-04-14,Shelby,Alabama,01117,235,7 +2020-04-15,Shelby,Alabama,01117,241,7 +2020-04-16,Shelby,Alabama,01117,242,7 +2020-04-17,Shelby,Alabama,01117,248,8 +2020-04-18,Shelby,Alabama,01117,257,7 +2020-04-19,Shelby,Alabama,01117,269,7 +2020-04-20,Shelby,Alabama,01117,273,6 +2020-04-21,Shelby,Alabama,01117,274,6 +2020-04-22,Shelby,Alabama,01117,278,7 +2020-04-23,Shelby,Alabama,01117,283,7 +2020-04-24,Shelby,Alabama,01117,294,7 +2020-04-25,Shelby,Alabama,01117,298,8 +2020-04-26,Shelby,Alabama,01117,311,9 +2020-04-27,Shelby,Alabama,01117,318,9 +2020-04-28,Shelby,Alabama,01117,319,10 +2020-04-29,Shelby,Alabama,01117,320,11 +2020-04-30,Shelby,Alabama,01117,320,12 +2020-05-01,Shelby,Alabama,01117,320,13 +2020-05-02,Shelby,Alabama,01117,324,13 +2020-05-03,Shelby,Alabama,01117,327,13 +2020-05-04,Shelby,Alabama,01117,328,13 +2020-05-05,Shelby,Alabama,01117,335,13 +2020-05-06,Shelby,Alabama,01117,339,16 +2020-05-07,Shelby,Alabama,01117,348,16 +2020-05-08,Shelby,Alabama,01117,358,17 +2020-05-09,Shelby,Alabama,01117,362,17 +2020-05-10,Shelby,Alabama,01117,367,17 +2020-05-11,Shelby,Alabama,01117,370,17 +2020-05-12,Shelby,Alabama,01117,378,18 +2020-05-13,Shelby,Alabama,01117,381,18 +2020-05-14,Shelby,Alabama,01117,390,19 +2020-05-15,Shelby,Alabama,01117,391,19 +2020-05-16,Shelby,Alabama,01117,398,19 +2020-05-17,Shelby,Alabama,01117,399,19 +2020-05-18,Shelby,Alabama,01117,404,19 +2020-05-19,Shelby,Alabama,01117,404,19 +2020-05-20,Shelby,Alabama,01117,414,19 +2020-05-21,Shelby,Alabama,01117,419,19 +2020-05-22,Shelby,Alabama,01117,420,19 +2020-05-23,Shelby,Alabama,01117,427,19 +2020-05-24,Shelby,Alabama,01117,433,19 +2020-05-25,Shelby,Alabama,01117,447,19 +2020-05-26,Shelby,Alabama,01117,467,19 +2020-05-27,Shelby,Alabama,01117,470,19 +2020-05-28,Shelby,Alabama,01117,484,19 +2020-05-29,Shelby,Alabama,01117,497,19 +2020-05-30,Shelby,Alabama,01117,503,19 +2020-05-31,Shelby,Alabama,01117,517,20 +2020-06-01,Shelby,Alabama,01117,541,20 +2020-06-02,Shelby,Alabama,01117,541,20 +2020-06-03,Shelby,Alabama,01117,541,20 +2020-06-04,Shelby,Alabama,01117,547,19 +2020-06-05,Shelby,Alabama,01117,555,19 +2020-06-06,Shelby,Alabama,01117,561,19 +2020-06-07,Shelby,Alabama,01117,568,19 +2020-06-08,Shelby,Alabama,01117,573,19 +2020-06-09,Shelby,Alabama,01117,579,20 +2020-06-10,Shelby,Alabama,01117,586,20 +2020-06-11,Shelby,Alabama,01117,599,20 +2020-06-12,Shelby,Alabama,01117,615,20 +2020-06-13,Shelby,Alabama,01117,634,20 +2020-06-14,Shelby,Alabama,01117,656,20 +2020-06-15,Shelby,Alabama,01117,674,20 +2020-06-16,Shelby,Alabama,01117,693,20 +2020-06-17,Shelby,Alabama,01117,706,20 +2020-06-18,Shelby,Alabama,01117,730,20 +2020-06-19,Shelby,Alabama,01117,759,21 +2020-06-20,Shelby,Alabama,01117,778,22 +2020-06-21,Shelby,Alabama,01117,784,22 +2020-06-22,Shelby,Alabama,01117,798,22 +2020-06-23,Shelby,Alabama,01117,830,22 +2020-06-24,Shelby,Alabama,01117,862,23 +2020-06-25,Shelby,Alabama,01117,897,23 +2020-06-26,Shelby,Alabama,01117,934,23 +2020-06-27,Shelby,Alabama,01117,963,23 +2020-06-28,Shelby,Alabama,01117,972,23 +2020-06-29,Shelby,Alabama,01117,1039,23 +2020-06-30,Shelby,Alabama,01117,1077,23 +2020-07-01,Shelby,Alabama,01117,1103,23 +2020-07-02,Shelby,Alabama,01117,1128,23 +2020-07-03,Shelby,Alabama,01117,1195,23 +2020-07-04,Shelby,Alabama,01117,1246,23 +2020-07-05,Shelby,Alabama,01117,1303,23 +2020-07-06,Shelby,Alabama,01117,1353,23 +2020-07-07,Shelby,Alabama,01117,1376,24 +2020-07-08,Shelby,Alabama,01117,1434,24 +2020-07-09,Shelby,Alabama,01117,1535,24 +2020-03-30,Sumter,Alabama,01119,1,0 +2020-03-31,Sumter,Alabama,01119,1,0 +2020-04-01,Sumter,Alabama,01119,3,0 +2020-04-02,Sumter,Alabama,01119,4,0 +2020-04-03,Sumter,Alabama,01119,7,0 +2020-04-04,Sumter,Alabama,01119,6,0 +2020-04-05,Sumter,Alabama,01119,7,0 +2020-04-06,Sumter,Alabama,01119,10,0 +2020-04-07,Sumter,Alabama,01119,15,0 +2020-04-08,Sumter,Alabama,01119,17,0 +2020-04-09,Sumter,Alabama,01119,17,0 +2020-04-10,Sumter,Alabama,01119,18,0 +2020-04-11,Sumter,Alabama,01119,19,0 +2020-04-12,Sumter,Alabama,01119,20,0 +2020-04-13,Sumter,Alabama,01119,23,0 +2020-04-14,Sumter,Alabama,01119,26,0 +2020-04-15,Sumter,Alabama,01119,30,0 +2020-04-16,Sumter,Alabama,01119,31,0 +2020-04-17,Sumter,Alabama,01119,33,0 +2020-04-18,Sumter,Alabama,01119,35,0 +2020-04-19,Sumter,Alabama,01119,36,0 +2020-04-20,Sumter,Alabama,01119,40,0 +2020-04-21,Sumter,Alabama,01119,44,0 +2020-04-22,Sumter,Alabama,01119,46,1 +2020-04-23,Sumter,Alabama,01119,47,1 +2020-04-24,Sumter,Alabama,01119,51,1 +2020-04-25,Sumter,Alabama,01119,51,1 +2020-04-26,Sumter,Alabama,01119,53,2 +2020-04-27,Sumter,Alabama,01119,55,2 +2020-04-28,Sumter,Alabama,01119,55,2 +2020-04-29,Sumter,Alabama,01119,56,2 +2020-04-30,Sumter,Alabama,01119,64,2 +2020-05-01,Sumter,Alabama,01119,68,3 +2020-05-02,Sumter,Alabama,01119,72,3 +2020-05-03,Sumter,Alabama,01119,77,3 +2020-05-04,Sumter,Alabama,01119,81,3 +2020-05-05,Sumter,Alabama,01119,85,3 +2020-05-06,Sumter,Alabama,01119,87,4 +2020-05-07,Sumter,Alabama,01119,92,4 +2020-05-08,Sumter,Alabama,01119,93,4 +2020-05-09,Sumter,Alabama,01119,98,4 +2020-05-10,Sumter,Alabama,01119,100,4 +2020-05-11,Sumter,Alabama,01119,106,4 +2020-05-12,Sumter,Alabama,01119,110,4 +2020-05-13,Sumter,Alabama,01119,110,4 +2020-05-14,Sumter,Alabama,01119,115,4 +2020-05-15,Sumter,Alabama,01119,120,4 +2020-05-16,Sumter,Alabama,01119,124,4 +2020-05-17,Sumter,Alabama,01119,127,4 +2020-05-18,Sumter,Alabama,01119,136,4 +2020-05-19,Sumter,Alabama,01119,148,4 +2020-05-20,Sumter,Alabama,01119,164,5 +2020-05-21,Sumter,Alabama,01119,170,5 +2020-05-22,Sumter,Alabama,01119,172,6 +2020-05-23,Sumter,Alabama,01119,185,6 +2020-05-24,Sumter,Alabama,01119,191,6 +2020-05-25,Sumter,Alabama,01119,193,6 +2020-05-26,Sumter,Alabama,01119,204,6 +2020-05-27,Sumter,Alabama,01119,210,6 +2020-05-28,Sumter,Alabama,01119,213,6 +2020-05-29,Sumter,Alabama,01119,216,6 +2020-05-30,Sumter,Alabama,01119,220,6 +2020-05-31,Sumter,Alabama,01119,224,7 +2020-06-01,Sumter,Alabama,01119,225,7 +2020-06-02,Sumter,Alabama,01119,227,7 +2020-06-03,Sumter,Alabama,01119,229,7 +2020-06-04,Sumter,Alabama,01119,229,7 +2020-06-05,Sumter,Alabama,01119,237,9 +2020-06-06,Sumter,Alabama,01119,244,8 +2020-06-07,Sumter,Alabama,01119,246,8 +2020-06-08,Sumter,Alabama,01119,248,9 +2020-06-09,Sumter,Alabama,01119,249,9 +2020-06-10,Sumter,Alabama,01119,249,10 +2020-06-11,Sumter,Alabama,01119,254,11 +2020-06-12,Sumter,Alabama,01119,258,11 +2020-06-13,Sumter,Alabama,01119,261,11 +2020-06-14,Sumter,Alabama,01119,264,11 +2020-06-15,Sumter,Alabama,01119,264,11 +2020-06-16,Sumter,Alabama,01119,264,11 +2020-06-17,Sumter,Alabama,01119,265,11 +2020-06-18,Sumter,Alabama,01119,267,12 +2020-06-19,Sumter,Alabama,01119,268,12 +2020-06-20,Sumter,Alabama,01119,269,12 +2020-06-21,Sumter,Alabama,01119,269,12 +2020-06-22,Sumter,Alabama,01119,269,12 +2020-06-23,Sumter,Alabama,01119,270,12 +2020-06-24,Sumter,Alabama,01119,272,12 +2020-06-25,Sumter,Alabama,01119,272,12 +2020-06-26,Sumter,Alabama,01119,275,12 +2020-06-27,Sumter,Alabama,01119,275,12 +2020-06-28,Sumter,Alabama,01119,275,12 +2020-06-29,Sumter,Alabama,01119,275,12 +2020-06-30,Sumter,Alabama,01119,276,12 +2020-07-01,Sumter,Alabama,01119,277,12 +2020-07-02,Sumter,Alabama,01119,280,12 +2020-07-03,Sumter,Alabama,01119,285,12 +2020-07-04,Sumter,Alabama,01119,285,12 +2020-07-05,Sumter,Alabama,01119,286,12 +2020-07-06,Sumter,Alabama,01119,286,12 +2020-07-07,Sumter,Alabama,01119,286,12 +2020-07-08,Sumter,Alabama,01119,286,12 +2020-07-09,Sumter,Alabama,01119,286,12 +2020-03-18,Talladega,Alabama,01121,1,0 +2020-03-19,Talladega,Alabama,01121,1,0 +2020-03-20,Talladega,Alabama,01121,1,0 +2020-03-21,Talladega,Alabama,01121,1,0 +2020-03-22,Talladega,Alabama,01121,1,0 +2020-03-23,Talladega,Alabama,01121,1,0 +2020-03-24,Talladega,Alabama,01121,2,0 +2020-03-25,Talladega,Alabama,01121,3,0 +2020-03-26,Talladega,Alabama,01121,4,0 +2020-03-27,Talladega,Alabama,01121,4,0 +2020-03-28,Talladega,Alabama,01121,4,0 +2020-03-29,Talladega,Alabama,01121,4,0 +2020-03-30,Talladega,Alabama,01121,6,0 +2020-03-31,Talladega,Alabama,01121,7,0 +2020-04-01,Talladega,Alabama,01121,8,0 +2020-04-02,Talladega,Alabama,01121,8,0 +2020-04-03,Talladega,Alabama,01121,12,0 +2020-04-04,Talladega,Alabama,01121,16,0 +2020-04-05,Talladega,Alabama,01121,20,0 +2020-04-06,Talladega,Alabama,01121,20,0 +2020-04-07,Talladega,Alabama,01121,21,0 +2020-04-08,Talladega,Alabama,01121,26,0 +2020-04-09,Talladega,Alabama,01121,30,0 +2020-04-10,Talladega,Alabama,01121,32,0 +2020-04-11,Talladega,Alabama,01121,32,0 +2020-04-12,Talladega,Alabama,01121,34,0 +2020-04-13,Talladega,Alabama,01121,38,1 +2020-04-14,Talladega,Alabama,01121,38,1 +2020-04-15,Talladega,Alabama,01121,40,1 +2020-04-16,Talladega,Alabama,01121,40,1 +2020-04-17,Talladega,Alabama,01121,42,1 +2020-04-18,Talladega,Alabama,01121,44,1 +2020-04-19,Talladega,Alabama,01121,46,1 +2020-04-20,Talladega,Alabama,01121,47,1 +2020-04-21,Talladega,Alabama,01121,50,2 +2020-04-22,Talladega,Alabama,01121,52,2 +2020-04-23,Talladega,Alabama,01121,53,2 +2020-04-24,Talladega,Alabama,01121,54,2 +2020-04-25,Talladega,Alabama,01121,55,2 +2020-04-26,Talladega,Alabama,01121,57,2 +2020-04-27,Talladega,Alabama,01121,58,2 +2020-04-28,Talladega,Alabama,01121,59,2 +2020-04-29,Talladega,Alabama,01121,59,2 +2020-04-30,Talladega,Alabama,01121,61,2 +2020-05-01,Talladega,Alabama,01121,61,2 +2020-05-02,Talladega,Alabama,01121,64,2 +2020-05-03,Talladega,Alabama,01121,65,2 +2020-05-04,Talladega,Alabama,01121,64,2 +2020-05-05,Talladega,Alabama,01121,67,2 +2020-05-06,Talladega,Alabama,01121,67,2 +2020-05-07,Talladega,Alabama,01121,70,2 +2020-05-08,Talladega,Alabama,01121,72,2 +2020-05-09,Talladega,Alabama,01121,73,2 +2020-05-10,Talladega,Alabama,01121,73,2 +2020-05-11,Talladega,Alabama,01121,73,2 +2020-05-12,Talladega,Alabama,01121,74,2 +2020-05-13,Talladega,Alabama,01121,76,2 +2020-05-14,Talladega,Alabama,01121,76,2 +2020-05-15,Talladega,Alabama,01121,75,2 +2020-05-16,Talladega,Alabama,01121,78,2 +2020-05-17,Talladega,Alabama,01121,78,2 +2020-05-18,Talladega,Alabama,01121,81,2 +2020-05-19,Talladega,Alabama,01121,81,2 +2020-05-20,Talladega,Alabama,01121,82,2 +2020-05-21,Talladega,Alabama,01121,84,2 +2020-05-22,Talladega,Alabama,01121,85,2 +2020-05-23,Talladega,Alabama,01121,86,2 +2020-05-24,Talladega,Alabama,01121,91,2 +2020-05-25,Talladega,Alabama,01121,91,2 +2020-05-26,Talladega,Alabama,01121,95,3 +2020-05-27,Talladega,Alabama,01121,96,3 +2020-05-28,Talladega,Alabama,01121,100,3 +2020-05-29,Talladega,Alabama,01121,106,3 +2020-05-30,Talladega,Alabama,01121,109,3 +2020-05-31,Talladega,Alabama,01121,113,5 +2020-06-01,Talladega,Alabama,01121,122,5 +2020-06-02,Talladega,Alabama,01121,122,5 +2020-06-03,Talladega,Alabama,01121,122,5 +2020-06-04,Talladega,Alabama,01121,124,5 +2020-06-05,Talladega,Alabama,01121,126,5 +2020-06-06,Talladega,Alabama,01121,132,5 +2020-06-07,Talladega,Alabama,01121,137,5 +2020-06-08,Talladega,Alabama,01121,139,5 +2020-06-09,Talladega,Alabama,01121,143,5 +2020-06-10,Talladega,Alabama,01121,147,5 +2020-06-11,Talladega,Alabama,01121,153,5 +2020-06-12,Talladega,Alabama,01121,156,5 +2020-06-13,Talladega,Alabama,01121,160,5 +2020-06-14,Talladega,Alabama,01121,164,5 +2020-06-15,Talladega,Alabama,01121,170,5 +2020-06-16,Talladega,Alabama,01121,172,6 +2020-06-17,Talladega,Alabama,01121,173,6 +2020-06-18,Talladega,Alabama,01121,175,6 +2020-06-19,Talladega,Alabama,01121,177,6 +2020-06-20,Talladega,Alabama,01121,185,6 +2020-06-21,Talladega,Alabama,01121,189,6 +2020-06-22,Talladega,Alabama,01121,192,6 +2020-06-23,Talladega,Alabama,01121,196,6 +2020-06-24,Talladega,Alabama,01121,200,6 +2020-06-25,Talladega,Alabama,01121,207,6 +2020-06-26,Talladega,Alabama,01121,214,6 +2020-06-27,Talladega,Alabama,01121,228,6 +2020-06-28,Talladega,Alabama,01121,231,6 +2020-06-29,Talladega,Alabama,01121,253,6 +2020-06-30,Talladega,Alabama,01121,265,7 +2020-07-01,Talladega,Alabama,01121,275,8 +2020-07-02,Talladega,Alabama,01121,290,8 +2020-07-03,Talladega,Alabama,01121,308,8 +2020-07-04,Talladega,Alabama,01121,311,8 +2020-07-05,Talladega,Alabama,01121,317,8 +2020-07-06,Talladega,Alabama,01121,325,8 +2020-07-07,Talladega,Alabama,01121,331,8 +2020-07-08,Talladega,Alabama,01121,342,8 +2020-07-09,Talladega,Alabama,01121,361,8 +2020-03-23,Tallapoosa,Alabama,01123,1,0 +2020-03-24,Tallapoosa,Alabama,01123,2,0 +2020-03-25,Tallapoosa,Alabama,01123,4,0 +2020-03-26,Tallapoosa,Alabama,01123,4,0 +2020-03-27,Tallapoosa,Alabama,01123,5,0 +2020-03-28,Tallapoosa,Alabama,01123,5,0 +2020-03-29,Tallapoosa,Alabama,01123,8,0 +2020-03-30,Tallapoosa,Alabama,01123,12,1 +2020-03-31,Tallapoosa,Alabama,01123,13,1 +2020-04-01,Tallapoosa,Alabama,01123,14,1 +2020-04-02,Tallapoosa,Alabama,01123,17,1 +2020-04-03,Tallapoosa,Alabama,01123,20,1 +2020-04-04,Tallapoosa,Alabama,01123,20,1 +2020-04-05,Tallapoosa,Alabama,01123,30,1 +2020-04-06,Tallapoosa,Alabama,01123,31,1 +2020-04-07,Tallapoosa,Alabama,01123,33,1 +2020-04-08,Tallapoosa,Alabama,01123,43,1 +2020-04-09,Tallapoosa,Alabama,01123,48,2 +2020-04-10,Tallapoosa,Alabama,01123,53,2 +2020-04-11,Tallapoosa,Alabama,01123,62,4 +2020-04-12,Tallapoosa,Alabama,01123,99,4 +2020-04-13,Tallapoosa,Alabama,01123,107,7 +2020-04-14,Tallapoosa,Alabama,01123,123,7 +2020-04-15,Tallapoosa,Alabama,01123,149,7 +2020-04-16,Tallapoosa,Alabama,01123,160,7 +2020-04-17,Tallapoosa,Alabama,01123,160,9 +2020-04-18,Tallapoosa,Alabama,01123,180,11 +2020-04-19,Tallapoosa,Alabama,01123,195,12 +2020-04-20,Tallapoosa,Alabama,01123,193,12 +2020-04-21,Tallapoosa,Alabama,01123,228,14 +2020-04-22,Tallapoosa,Alabama,01123,242,16 +2020-04-23,Tallapoosa,Alabama,01123,254,16 +2020-04-24,Tallapoosa,Alabama,01123,261,17 +2020-04-25,Tallapoosa,Alabama,01123,267,17 +2020-04-26,Tallapoosa,Alabama,01123,274,17 +2020-04-27,Tallapoosa,Alabama,01123,275,17 +2020-04-28,Tallapoosa,Alabama,01123,279,17 +2020-04-29,Tallapoosa,Alabama,01123,280,18 +2020-04-30,Tallapoosa,Alabama,01123,285,18 +2020-05-01,Tallapoosa,Alabama,01123,286,18 +2020-05-02,Tallapoosa,Alabama,01123,290,18 +2020-05-03,Tallapoosa,Alabama,01123,295,18 +2020-05-04,Tallapoosa,Alabama,01123,298,19 +2020-05-05,Tallapoosa,Alabama,01123,303,22 +2020-05-06,Tallapoosa,Alabama,01123,304,23 +2020-05-07,Tallapoosa,Alabama,01123,314,40 +2020-05-08,Tallapoosa,Alabama,01123,315,41 +2020-05-09,Tallapoosa,Alabama,01123,316,42 +2020-05-10,Tallapoosa,Alabama,01123,323,42 +2020-05-11,Tallapoosa,Alabama,01123,328,42 +2020-05-12,Tallapoosa,Alabama,01123,330,50 +2020-05-13,Tallapoosa,Alabama,01123,338,51 +2020-05-14,Tallapoosa,Alabama,01123,345,56 +2020-05-15,Tallapoosa,Alabama,01123,351,57 +2020-05-16,Tallapoosa,Alabama,01123,357,57 +2020-05-17,Tallapoosa,Alabama,01123,358,57 +2020-05-18,Tallapoosa,Alabama,01123,366,57 +2020-05-19,Tallapoosa,Alabama,01123,371,57 +2020-05-20,Tallapoosa,Alabama,01123,379,59 +2020-05-21,Tallapoosa,Alabama,01123,384,59 +2020-05-22,Tallapoosa,Alabama,01123,387,62 +2020-05-23,Tallapoosa,Alabama,01123,392,62 +2020-05-24,Tallapoosa,Alabama,01123,396,62 +2020-05-25,Tallapoosa,Alabama,01123,400,63 +2020-05-26,Tallapoosa,Alabama,01123,408,63 +2020-05-27,Tallapoosa,Alabama,01123,410,63 +2020-05-28,Tallapoosa,Alabama,01123,418,64 +2020-05-29,Tallapoosa,Alabama,01123,422,64 +2020-05-30,Tallapoosa,Alabama,01123,423,64 +2020-05-31,Tallapoosa,Alabama,01123,427,65 +2020-06-01,Tallapoosa,Alabama,01123,432,65 +2020-06-02,Tallapoosa,Alabama,01123,436,66 +2020-06-03,Tallapoosa,Alabama,01123,437,66 +2020-06-04,Tallapoosa,Alabama,01123,439,66 +2020-06-05,Tallapoosa,Alabama,01123,440,66 +2020-06-06,Tallapoosa,Alabama,01123,444,66 +2020-06-07,Tallapoosa,Alabama,01123,447,66 +2020-06-08,Tallapoosa,Alabama,01123,451,67 +2020-06-09,Tallapoosa,Alabama,01123,453,67 +2020-06-10,Tallapoosa,Alabama,01123,458,67 +2020-06-11,Tallapoosa,Alabama,01123,461,67 +2020-06-12,Tallapoosa,Alabama,01123,462,67 +2020-06-13,Tallapoosa,Alabama,01123,468,67 +2020-06-14,Tallapoosa,Alabama,01123,474,67 +2020-06-15,Tallapoosa,Alabama,01123,480,67 +2020-06-16,Tallapoosa,Alabama,01123,481,68 +2020-06-17,Tallapoosa,Alabama,01123,489,69 +2020-06-18,Tallapoosa,Alabama,01123,505,69 +2020-06-19,Tallapoosa,Alabama,01123,513,69 +2020-06-20,Tallapoosa,Alabama,01123,513,70 +2020-06-21,Tallapoosa,Alabama,01123,517,70 +2020-06-22,Tallapoosa,Alabama,01123,520,70 +2020-06-23,Tallapoosa,Alabama,01123,525,70 +2020-06-24,Tallapoosa,Alabama,01123,531,70 +2020-06-25,Tallapoosa,Alabama,01123,541,70 +2020-06-26,Tallapoosa,Alabama,01123,541,70 +2020-06-27,Tallapoosa,Alabama,01123,546,70 +2020-06-28,Tallapoosa,Alabama,01123,550,70 +2020-06-29,Tallapoosa,Alabama,01123,563,70 +2020-06-30,Tallapoosa,Alabama,01123,567,70 +2020-07-01,Tallapoosa,Alabama,01123,570,70 +2020-07-02,Tallapoosa,Alabama,01123,579,70 +2020-07-03,Tallapoosa,Alabama,01123,590,70 +2020-07-04,Tallapoosa,Alabama,01123,595,70 +2020-07-05,Tallapoosa,Alabama,01123,598,70 +2020-07-06,Tallapoosa,Alabama,01123,612,70 +2020-07-07,Tallapoosa,Alabama,01123,612,70 +2020-07-08,Tallapoosa,Alabama,01123,614,70 +2020-07-09,Tallapoosa,Alabama,01123,625,70 +2020-03-13,Tuscaloosa,Alabama,01125,1,0 +2020-03-14,Tuscaloosa,Alabama,01125,2,0 +2020-03-15,Tuscaloosa,Alabama,01125,3,0 +2020-03-16,Tuscaloosa,Alabama,01125,3,0 +2020-03-17,Tuscaloosa,Alabama,01125,3,0 +2020-03-18,Tuscaloosa,Alabama,01125,3,0 +2020-03-19,Tuscaloosa,Alabama,01125,4,0 +2020-03-20,Tuscaloosa,Alabama,01125,4,0 +2020-03-21,Tuscaloosa,Alabama,01125,6,0 +2020-03-22,Tuscaloosa,Alabama,01125,7,0 +2020-03-23,Tuscaloosa,Alabama,01125,9,0 +2020-03-24,Tuscaloosa,Alabama,01125,10,0 +2020-03-25,Tuscaloosa,Alabama,01125,15,0 +2020-03-26,Tuscaloosa,Alabama,01125,20,0 +2020-03-27,Tuscaloosa,Alabama,01125,22,0 +2020-03-28,Tuscaloosa,Alabama,01125,23,0 +2020-03-29,Tuscaloosa,Alabama,01125,23,0 +2020-03-30,Tuscaloosa,Alabama,01125,28,0 +2020-03-31,Tuscaloosa,Alabama,01125,29,0 +2020-04-01,Tuscaloosa,Alabama,01125,30,0 +2020-04-02,Tuscaloosa,Alabama,01125,37,0 +2020-04-03,Tuscaloosa,Alabama,01125,41,0 +2020-04-04,Tuscaloosa,Alabama,01125,44,0 +2020-04-05,Tuscaloosa,Alabama,01125,60,0 +2020-04-06,Tuscaloosa,Alabama,01125,74,0 +2020-04-07,Tuscaloosa,Alabama,01125,79,0 +2020-04-08,Tuscaloosa,Alabama,01125,85,0 +2020-04-09,Tuscaloosa,Alabama,01125,86,0 +2020-04-10,Tuscaloosa,Alabama,01125,91,0 +2020-04-11,Tuscaloosa,Alabama,01125,100,0 +2020-04-12,Tuscaloosa,Alabama,01125,119,0 +2020-04-13,Tuscaloosa,Alabama,01125,120,0 +2020-04-14,Tuscaloosa,Alabama,01125,122,0 +2020-04-15,Tuscaloosa,Alabama,01125,131,0 +2020-04-16,Tuscaloosa,Alabama,01125,132,0 +2020-04-17,Tuscaloosa,Alabama,01125,153,0 +2020-04-18,Tuscaloosa,Alabama,01125,141,0 +2020-04-19,Tuscaloosa,Alabama,01125,145,1 +2020-04-20,Tuscaloosa,Alabama,01125,153,1 +2020-04-21,Tuscaloosa,Alabama,01125,157,1 +2020-04-22,Tuscaloosa,Alabama,01125,165,1 +2020-04-23,Tuscaloosa,Alabama,01125,173,0 +2020-04-24,Tuscaloosa,Alabama,01125,182,0 +2020-04-25,Tuscaloosa,Alabama,01125,185,0 +2020-04-26,Tuscaloosa,Alabama,01125,192,0 +2020-04-27,Tuscaloosa,Alabama,01125,195,0 +2020-04-28,Tuscaloosa,Alabama,01125,199,0 +2020-04-29,Tuscaloosa,Alabama,01125,203,1 +2020-04-30,Tuscaloosa,Alabama,01125,208,1 +2020-05-01,Tuscaloosa,Alabama,01125,210,2 +2020-05-02,Tuscaloosa,Alabama,01125,216,2 +2020-05-03,Tuscaloosa,Alabama,01125,218,2 +2020-05-04,Tuscaloosa,Alabama,01125,237,2 +2020-05-05,Tuscaloosa,Alabama,01125,243,3 +2020-05-06,Tuscaloosa,Alabama,01125,248,4 +2020-05-07,Tuscaloosa,Alabama,01125,259,4 +2020-05-08,Tuscaloosa,Alabama,01125,269,4 +2020-05-09,Tuscaloosa,Alabama,01125,274,4 +2020-05-10,Tuscaloosa,Alabama,01125,278,4 +2020-05-11,Tuscaloosa,Alabama,01125,284,4 +2020-05-12,Tuscaloosa,Alabama,01125,291,7 +2020-05-13,Tuscaloosa,Alabama,01125,302,8 +2020-05-14,Tuscaloosa,Alabama,01125,319,8 +2020-05-15,Tuscaloosa,Alabama,01125,332,8 +2020-05-16,Tuscaloosa,Alabama,01125,345,8 +2020-05-17,Tuscaloosa,Alabama,01125,345,8 +2020-05-18,Tuscaloosa,Alabama,01125,368,8 +2020-05-19,Tuscaloosa,Alabama,01125,387,8 +2020-05-20,Tuscaloosa,Alabama,01125,431,8 +2020-05-21,Tuscaloosa,Alabama,01125,454,9 +2020-05-22,Tuscaloosa,Alabama,01125,464,9 +2020-05-23,Tuscaloosa,Alabama,01125,480,11 +2020-05-24,Tuscaloosa,Alabama,01125,505,12 +2020-05-25,Tuscaloosa,Alabama,01125,558,12 +2020-05-26,Tuscaloosa,Alabama,01125,607,12 +2020-05-27,Tuscaloosa,Alabama,01125,632,12 +2020-05-28,Tuscaloosa,Alabama,01125,678,13 +2020-05-29,Tuscaloosa,Alabama,01125,720,14 +2020-05-30,Tuscaloosa,Alabama,01125,738,14 +2020-05-31,Tuscaloosa,Alabama,01125,783,15 +2020-06-01,Tuscaloosa,Alabama,01125,808,16 +2020-06-02,Tuscaloosa,Alabama,01125,825,16 +2020-06-03,Tuscaloosa,Alabama,01125,831,16 +2020-06-04,Tuscaloosa,Alabama,01125,846,16 +2020-06-05,Tuscaloosa,Alabama,01125,864,16 +2020-06-06,Tuscaloosa,Alabama,01125,908,17 +2020-06-07,Tuscaloosa,Alabama,01125,927,18 +2020-06-08,Tuscaloosa,Alabama,01125,948,23 +2020-06-09,Tuscaloosa,Alabama,01125,989,23 +2020-06-10,Tuscaloosa,Alabama,01125,1022,23 +2020-06-11,Tuscaloosa,Alabama,01125,1083,23 +2020-06-12,Tuscaloosa,Alabama,01125,1169,24 +2020-06-13,Tuscaloosa,Alabama,01125,1253,25 +2020-06-14,Tuscaloosa,Alabama,01125,1305,25 +2020-06-15,Tuscaloosa,Alabama,01125,1356,25 +2020-06-16,Tuscaloosa,Alabama,01125,1419,25 +2020-06-17,Tuscaloosa,Alabama,01125,1432,25 +2020-06-18,Tuscaloosa,Alabama,01125,1481,28 +2020-06-19,Tuscaloosa,Alabama,01125,1541,29 +2020-06-20,Tuscaloosa,Alabama,01125,1559,31 +2020-06-21,Tuscaloosa,Alabama,01125,1596,31 +2020-06-22,Tuscaloosa,Alabama,01125,1619,31 +2020-06-23,Tuscaloosa,Alabama,01125,1652,35 +2020-06-24,Tuscaloosa,Alabama,01125,1680,35 +2020-06-25,Tuscaloosa,Alabama,01125,1758,37 +2020-06-26,Tuscaloosa,Alabama,01125,1814,37 +2020-06-27,Tuscaloosa,Alabama,01125,1860,38 +2020-06-28,Tuscaloosa,Alabama,01125,1866,38 +2020-06-29,Tuscaloosa,Alabama,01125,1946,38 +2020-06-30,Tuscaloosa,Alabama,01125,1986,38 +2020-07-01,Tuscaloosa,Alabama,01125,2071,40 +2020-07-02,Tuscaloosa,Alabama,01125,2129,41 +2020-07-03,Tuscaloosa,Alabama,01125,2209,44 +2020-07-04,Tuscaloosa,Alabama,01125,2247,44 +2020-07-05,Tuscaloosa,Alabama,01125,2309,44 +2020-07-06,Tuscaloosa,Alabama,01125,2342,44 +2020-07-07,Tuscaloosa,Alabama,01125,2368,46 +2020-07-08,Tuscaloosa,Alabama,01125,2405,50 +2020-07-09,Tuscaloosa,Alabama,01125,2566,50 +2020-03-19,Walker,Alabama,01127,1,0 +2020-03-20,Walker,Alabama,01127,1,0 +2020-03-21,Walker,Alabama,01127,1,0 +2020-03-22,Walker,Alabama,01127,1,0 +2020-03-23,Walker,Alabama,01127,3,0 +2020-03-24,Walker,Alabama,01127,5,0 +2020-03-25,Walker,Alabama,01127,9,0 +2020-03-26,Walker,Alabama,01127,18,0 +2020-03-27,Walker,Alabama,01127,24,0 +2020-03-28,Walker,Alabama,01127,28,0 +2020-03-29,Walker,Alabama,01127,30,0 +2020-03-30,Walker,Alabama,01127,31,0 +2020-03-31,Walker,Alabama,01127,32,0 +2020-04-01,Walker,Alabama,01127,32,0 +2020-04-02,Walker,Alabama,01127,34,0 +2020-04-03,Walker,Alabama,01127,49,0 +2020-04-04,Walker,Alabama,01127,49,0 +2020-04-05,Walker,Alabama,01127,49,0 +2020-04-06,Walker,Alabama,01127,54,0 +2020-04-07,Walker,Alabama,01127,64,0 +2020-04-08,Walker,Alabama,01127,68,0 +2020-04-09,Walker,Alabama,01127,72,0 +2020-04-10,Walker,Alabama,01127,72,0 +2020-04-11,Walker,Alabama,01127,78,0 +2020-04-12,Walker,Alabama,01127,83,0 +2020-04-13,Walker,Alabama,01127,84,0 +2020-04-14,Walker,Alabama,01127,84,0 +2020-04-15,Walker,Alabama,01127,85,0 +2020-04-16,Walker,Alabama,01127,84,0 +2020-04-17,Walker,Alabama,01127,83,0 +2020-04-18,Walker,Alabama,01127,83,0 +2020-04-19,Walker,Alabama,01127,85,0 +2020-04-20,Walker,Alabama,01127,90,0 +2020-04-21,Walker,Alabama,01127,91,0 +2020-04-22,Walker,Alabama,01127,90,0 +2020-04-23,Walker,Alabama,01127,89,0 +2020-04-24,Walker,Alabama,01127,89,0 +2020-04-25,Walker,Alabama,01127,91,0 +2020-04-26,Walker,Alabama,01127,92,0 +2020-04-27,Walker,Alabama,01127,93,0 +2020-04-28,Walker,Alabama,01127,94,0 +2020-04-29,Walker,Alabama,01127,93,0 +2020-04-30,Walker,Alabama,01127,95,0 +2020-05-01,Walker,Alabama,01127,97,0 +2020-05-02,Walker,Alabama,01127,97,0 +2020-05-03,Walker,Alabama,01127,99,0 +2020-05-04,Walker,Alabama,01127,100,0 +2020-05-05,Walker,Alabama,01127,100,0 +2020-05-06,Walker,Alabama,01127,101,0 +2020-05-07,Walker,Alabama,01127,103,0 +2020-05-08,Walker,Alabama,01127,105,0 +2020-05-09,Walker,Alabama,01127,106,0 +2020-05-10,Walker,Alabama,01127,106,0 +2020-05-11,Walker,Alabama,01127,107,0 +2020-05-12,Walker,Alabama,01127,110,0 +2020-05-13,Walker,Alabama,01127,111,0 +2020-05-14,Walker,Alabama,01127,116,0 +2020-05-15,Walker,Alabama,01127,119,0 +2020-05-16,Walker,Alabama,01127,126,0 +2020-05-17,Walker,Alabama,01127,126,0 +2020-05-18,Walker,Alabama,01127,139,0 +2020-05-19,Walker,Alabama,01127,148,1 +2020-05-20,Walker,Alabama,01127,164,1 +2020-05-21,Walker,Alabama,01127,172,1 +2020-05-22,Walker,Alabama,01127,179,1 +2020-05-23,Walker,Alabama,01127,191,1 +2020-05-24,Walker,Alabama,01127,198,1 +2020-05-25,Walker,Alabama,01127,239,1 +2020-05-26,Walker,Alabama,01127,272,1 +2020-05-27,Walker,Alabama,01127,282,1 +2020-05-28,Walker,Alabama,01127,299,1 +2020-05-29,Walker,Alabama,01127,330,2 +2020-05-30,Walker,Alabama,01127,344,2 +2020-05-31,Walker,Alabama,01127,354,2 +2020-06-01,Walker,Alabama,01127,380,2 +2020-06-02,Walker,Alabama,01127,388,2 +2020-06-03,Walker,Alabama,01127,391,2 +2020-06-04,Walker,Alabama,01127,396,2 +2020-06-05,Walker,Alabama,01127,407,3 +2020-06-06,Walker,Alabama,01127,443,3 +2020-06-07,Walker,Alabama,01127,462,3 +2020-06-08,Walker,Alabama,01127,470,5 +2020-06-09,Walker,Alabama,01127,477,6 +2020-06-10,Walker,Alabama,01127,491,6 +2020-06-11,Walker,Alabama,01127,510,6 +2020-06-12,Walker,Alabama,01127,533,6 +2020-06-13,Walker,Alabama,01127,550,6 +2020-06-14,Walker,Alabama,01127,578,6 +2020-06-15,Walker,Alabama,01127,588,6 +2020-06-16,Walker,Alabama,01127,621,6 +2020-06-17,Walker,Alabama,01127,626,6 +2020-06-18,Walker,Alabama,01127,652,8 +2020-06-19,Walker,Alabama,01127,674,8 +2020-06-20,Walker,Alabama,01127,679,8 +2020-06-21,Walker,Alabama,01127,693,8 +2020-06-22,Walker,Alabama,01127,705,8 +2020-06-23,Walker,Alabama,01127,722,10 +2020-06-24,Walker,Alabama,01127,741,12 +2020-06-25,Walker,Alabama,01127,761,12 +2020-06-26,Walker,Alabama,01127,774,13 +2020-06-27,Walker,Alabama,01127,791,13 +2020-06-28,Walker,Alabama,01127,797,13 +2020-06-29,Walker,Alabama,01127,840,15 +2020-06-30,Walker,Alabama,01127,855,17 +2020-07-01,Walker,Alabama,01127,880,23 +2020-07-02,Walker,Alabama,01127,884,23 +2020-07-03,Walker,Alabama,01127,918,24 +2020-07-04,Walker,Alabama,01127,927,24 +2020-07-05,Walker,Alabama,01127,952,24 +2020-07-06,Walker,Alabama,01127,991,24 +2020-07-07,Walker,Alabama,01127,998,25 +2020-07-08,Walker,Alabama,01127,1031,25 +2020-07-09,Walker,Alabama,01127,1066,27 +2020-03-20,Washington,Alabama,01129,1,0 +2020-03-21,Washington,Alabama,01129,1,0 +2020-03-22,Washington,Alabama,01129,1,0 +2020-03-23,Washington,Alabama,01129,1,0 +2020-03-24,Washington,Alabama,01129,1,0 +2020-03-25,Washington,Alabama,01129,1,0 +2020-03-26,Washington,Alabama,01129,2,0 +2020-03-27,Washington,Alabama,01129,2,0 +2020-03-28,Washington,Alabama,01129,2,0 +2020-03-29,Washington,Alabama,01129,4,0 +2020-03-30,Washington,Alabama,01129,3,0 +2020-03-31,Washington,Alabama,01129,3,0 +2020-04-01,Washington,Alabama,01129,3,1 +2020-04-02,Washington,Alabama,01129,3,1 +2020-04-03,Washington,Alabama,01129,5,1 +2020-04-04,Washington,Alabama,01129,5,1 +2020-04-05,Washington,Alabama,01129,5,1 +2020-04-06,Washington,Alabama,01129,6,1 +2020-04-07,Washington,Alabama,01129,7,1 +2020-04-08,Washington,Alabama,01129,7,1 +2020-04-09,Washington,Alabama,01129,11,1 +2020-04-10,Washington,Alabama,01129,11,1 +2020-04-11,Washington,Alabama,01129,12,1 +2020-04-12,Washington,Alabama,01129,12,1 +2020-04-13,Washington,Alabama,01129,12,1 +2020-04-14,Washington,Alabama,01129,12,1 +2020-04-15,Washington,Alabama,01129,12,1 +2020-04-16,Washington,Alabama,01129,13,1 +2020-04-17,Washington,Alabama,01129,14,1 +2020-04-18,Washington,Alabama,01129,15,1 +2020-04-19,Washington,Alabama,01129,16,1 +2020-04-20,Washington,Alabama,01129,16,1 +2020-04-21,Washington,Alabama,01129,17,1 +2020-04-22,Washington,Alabama,01129,18,1 +2020-04-23,Washington,Alabama,01129,18,1 +2020-04-24,Washington,Alabama,01129,19,1 +2020-04-25,Washington,Alabama,01129,20,1 +2020-04-26,Washington,Alabama,01129,26,1 +2020-04-27,Washington,Alabama,01129,27,1 +2020-04-28,Washington,Alabama,01129,33,1 +2020-04-29,Washington,Alabama,01129,34,1 +2020-04-30,Washington,Alabama,01129,34,1 +2020-05-01,Washington,Alabama,01129,35,2 +2020-05-02,Washington,Alabama,01129,37,2 +2020-05-03,Washington,Alabama,01129,38,2 +2020-05-04,Washington,Alabama,01129,38,2 +2020-05-05,Washington,Alabama,01129,42,2 +2020-05-06,Washington,Alabama,01129,42,2 +2020-05-07,Washington,Alabama,01129,43,2 +2020-05-08,Washington,Alabama,01129,48,2 +2020-05-09,Washington,Alabama,01129,51,2 +2020-05-10,Washington,Alabama,01129,53,2 +2020-05-11,Washington,Alabama,01129,54,2 +2020-05-12,Washington,Alabama,01129,55,5 +2020-05-13,Washington,Alabama,01129,57,5 +2020-05-14,Washington,Alabama,01129,59,5 +2020-05-15,Washington,Alabama,01129,60,5 +2020-05-16,Washington,Alabama,01129,60,5 +2020-05-17,Washington,Alabama,01129,60,5 +2020-05-18,Washington,Alabama,01129,61,5 +2020-05-19,Washington,Alabama,01129,61,5 +2020-05-20,Washington,Alabama,01129,62,5 +2020-05-21,Washington,Alabama,01129,63,5 +2020-05-22,Washington,Alabama,01129,63,5 +2020-05-23,Washington,Alabama,01129,64,5 +2020-05-24,Washington,Alabama,01129,64,5 +2020-05-25,Washington,Alabama,01129,65,5 +2020-05-26,Washington,Alabama,01129,65,6 +2020-05-27,Washington,Alabama,01129,65,6 +2020-05-28,Washington,Alabama,01129,66,6 +2020-05-29,Washington,Alabama,01129,67,6 +2020-05-30,Washington,Alabama,01129,68,6 +2020-05-31,Washington,Alabama,01129,70,6 +2020-06-01,Washington,Alabama,01129,73,6 +2020-06-02,Washington,Alabama,01129,74,6 +2020-06-03,Washington,Alabama,01129,74,6 +2020-06-04,Washington,Alabama,01129,75,6 +2020-06-05,Washington,Alabama,01129,76,6 +2020-06-06,Washington,Alabama,01129,79,6 +2020-06-07,Washington,Alabama,01129,81,6 +2020-06-08,Washington,Alabama,01129,81,6 +2020-06-09,Washington,Alabama,01129,84,6 +2020-06-10,Washington,Alabama,01129,85,6 +2020-06-11,Washington,Alabama,01129,86,6 +2020-06-12,Washington,Alabama,01129,88,6 +2020-06-13,Washington,Alabama,01129,88,6 +2020-06-14,Washington,Alabama,01129,88,6 +2020-06-15,Washington,Alabama,01129,89,6 +2020-06-16,Washington,Alabama,01129,90,6 +2020-06-17,Washington,Alabama,01129,91,6 +2020-06-18,Washington,Alabama,01129,94,6 +2020-06-19,Washington,Alabama,01129,94,6 +2020-06-20,Washington,Alabama,01129,95,6 +2020-06-21,Washington,Alabama,01129,95,6 +2020-06-22,Washington,Alabama,01129,97,6 +2020-06-23,Washington,Alabama,01129,97,6 +2020-06-24,Washington,Alabama,01129,97,6 +2020-06-25,Washington,Alabama,01129,97,6 +2020-06-26,Washington,Alabama,01129,100,6 +2020-06-27,Washington,Alabama,01129,101,6 +2020-06-28,Washington,Alabama,01129,101,6 +2020-06-29,Washington,Alabama,01129,101,6 +2020-06-30,Washington,Alabama,01129,101,7 +2020-07-01,Washington,Alabama,01129,103,7 +2020-07-02,Washington,Alabama,01129,105,7 +2020-07-03,Washington,Alabama,01129,107,7 +2020-07-04,Washington,Alabama,01129,108,7 +2020-07-05,Washington,Alabama,01129,112,7 +2020-07-06,Washington,Alabama,01129,114,7 +2020-07-07,Washington,Alabama,01129,121,7 +2020-07-08,Washington,Alabama,01129,124,7 +2020-07-09,Washington,Alabama,01129,130,7 +2020-03-25,Wilcox,Alabama,01131,1,0 +2020-03-26,Wilcox,Alabama,01131,2,0 +2020-03-27,Wilcox,Alabama,01131,2,0 +2020-03-28,Wilcox,Alabama,01131,2,0 +2020-03-29,Wilcox,Alabama,01131,2,0 +2020-03-30,Wilcox,Alabama,01131,2,0 +2020-03-31,Wilcox,Alabama,01131,3,0 +2020-04-01,Wilcox,Alabama,01131,3,0 +2020-04-02,Wilcox,Alabama,01131,5,0 +2020-04-03,Wilcox,Alabama,01131,6,0 +2020-04-04,Wilcox,Alabama,01131,11,0 +2020-04-05,Wilcox,Alabama,01131,12,0 +2020-04-06,Wilcox,Alabama,01131,13,0 +2020-04-07,Wilcox,Alabama,01131,13,0 +2020-04-08,Wilcox,Alabama,01131,13,0 +2020-04-09,Wilcox,Alabama,01131,17,0 +2020-04-10,Wilcox,Alabama,01131,18,0 +2020-04-11,Wilcox,Alabama,01131,25,0 +2020-04-12,Wilcox,Alabama,01131,30,0 +2020-04-13,Wilcox,Alabama,01131,31,0 +2020-04-14,Wilcox,Alabama,01131,31,0 +2020-04-15,Wilcox,Alabama,01131,38,0 +2020-04-16,Wilcox,Alabama,01131,40,0 +2020-04-17,Wilcox,Alabama,01131,40,0 +2020-04-18,Wilcox,Alabama,01131,45,0 +2020-04-19,Wilcox,Alabama,01131,47,1 +2020-04-20,Wilcox,Alabama,01131,49,1 +2020-04-21,Wilcox,Alabama,01131,49,1 +2020-04-22,Wilcox,Alabama,01131,50,1 +2020-04-23,Wilcox,Alabama,01131,52,0 +2020-04-24,Wilcox,Alabama,01131,53,1 +2020-04-25,Wilcox,Alabama,01131,53,1 +2020-04-26,Wilcox,Alabama,01131,56,1 +2020-04-27,Wilcox,Alabama,01131,58,1 +2020-04-28,Wilcox,Alabama,01131,60,1 +2020-04-29,Wilcox,Alabama,01131,62,1 +2020-04-30,Wilcox,Alabama,01131,66,2 +2020-05-01,Wilcox,Alabama,01131,67,3 +2020-05-02,Wilcox,Alabama,01131,71,3 +2020-05-03,Wilcox,Alabama,01131,72,3 +2020-05-04,Wilcox,Alabama,01131,72,4 +2020-05-05,Wilcox,Alabama,01131,72,4 +2020-05-06,Wilcox,Alabama,01131,73,4 +2020-05-07,Wilcox,Alabama,01131,73,4 +2020-05-08,Wilcox,Alabama,01131,77,4 +2020-05-09,Wilcox,Alabama,01131,80,4 +2020-05-10,Wilcox,Alabama,01131,81,4 +2020-05-11,Wilcox,Alabama,01131,85,4 +2020-05-12,Wilcox,Alabama,01131,87,4 +2020-05-13,Wilcox,Alabama,01131,89,5 +2020-05-14,Wilcox,Alabama,01131,89,5 +2020-05-15,Wilcox,Alabama,01131,92,5 +2020-05-16,Wilcox,Alabama,01131,93,5 +2020-05-17,Wilcox,Alabama,01131,94,5 +2020-05-18,Wilcox,Alabama,01131,95,5 +2020-05-19,Wilcox,Alabama,01131,97,5 +2020-05-20,Wilcox,Alabama,01131,108,6 +2020-05-21,Wilcox,Alabama,01131,110,6 +2020-05-22,Wilcox,Alabama,01131,110,6 +2020-05-23,Wilcox,Alabama,01131,113,7 +2020-05-24,Wilcox,Alabama,01131,118,7 +2020-05-25,Wilcox,Alabama,01131,118,7 +2020-05-26,Wilcox,Alabama,01131,122,7 +2020-05-27,Wilcox,Alabama,01131,132,7 +2020-05-28,Wilcox,Alabama,01131,134,7 +2020-05-29,Wilcox,Alabama,01131,141,7 +2020-05-30,Wilcox,Alabama,01131,144,7 +2020-05-31,Wilcox,Alabama,01131,148,7 +2020-06-01,Wilcox,Alabama,01131,151,7 +2020-06-02,Wilcox,Alabama,01131,153,7 +2020-06-03,Wilcox,Alabama,01131,155,7 +2020-06-04,Wilcox,Alabama,01131,159,7 +2020-06-05,Wilcox,Alabama,01131,160,7 +2020-06-06,Wilcox,Alabama,01131,169,7 +2020-06-07,Wilcox,Alabama,01131,171,7 +2020-06-08,Wilcox,Alabama,01131,175,7 +2020-06-09,Wilcox,Alabama,01131,181,7 +2020-06-10,Wilcox,Alabama,01131,185,8 +2020-06-11,Wilcox,Alabama,01131,192,8 +2020-06-12,Wilcox,Alabama,01131,202,8 +2020-06-13,Wilcox,Alabama,01131,218,8 +2020-06-14,Wilcox,Alabama,01131,223,8 +2020-06-15,Wilcox,Alabama,01131,225,8 +2020-06-16,Wilcox,Alabama,01131,228,8 +2020-06-17,Wilcox,Alabama,01131,232,8 +2020-06-18,Wilcox,Alabama,01131,240,8 +2020-06-19,Wilcox,Alabama,01131,242,8 +2020-06-20,Wilcox,Alabama,01131,244,8 +2020-06-21,Wilcox,Alabama,01131,246,8 +2020-06-22,Wilcox,Alabama,01131,248,8 +2020-06-23,Wilcox,Alabama,01131,253,8 +2020-06-24,Wilcox,Alabama,01131,259,8 +2020-06-25,Wilcox,Alabama,01131,263,8 +2020-06-26,Wilcox,Alabama,01131,269,8 +2020-06-27,Wilcox,Alabama,01131,273,8 +2020-06-28,Wilcox,Alabama,01131,272,8 +2020-06-29,Wilcox,Alabama,01131,280,8 +2020-06-30,Wilcox,Alabama,01131,280,8 +2020-07-01,Wilcox,Alabama,01131,282,8 +2020-07-02,Wilcox,Alabama,01131,287,8 +2020-07-03,Wilcox,Alabama,01131,291,8 +2020-07-04,Wilcox,Alabama,01131,292,8 +2020-07-05,Wilcox,Alabama,01131,293,8 +2020-07-06,Wilcox,Alabama,01131,296,8 +2020-07-07,Wilcox,Alabama,01131,296,8 +2020-07-08,Wilcox,Alabama,01131,297,8 +2020-07-09,Wilcox,Alabama,01131,299,8 +2020-03-27,Winston,Alabama,01133,2,0 +2020-03-28,Winston,Alabama,01133,2,0 +2020-03-29,Winston,Alabama,01133,2,0 +2020-03-30,Winston,Alabama,01133,2,0 +2020-03-31,Winston,Alabama,01133,2,0 +2020-04-01,Winston,Alabama,01133,2,0 +2020-04-02,Winston,Alabama,01133,2,0 +2020-04-03,Winston,Alabama,01133,3,0 +2020-04-04,Winston,Alabama,01133,3,0 +2020-04-05,Winston,Alabama,01133,3,0 +2020-04-06,Winston,Alabama,01133,3,0 +2020-04-07,Winston,Alabama,01133,3,0 +2020-04-08,Winston,Alabama,01133,3,0 +2020-04-09,Winston,Alabama,01133,3,0 +2020-04-10,Winston,Alabama,01133,4,0 +2020-04-11,Winston,Alabama,01133,4,0 +2020-04-12,Winston,Alabama,01133,4,0 +2020-04-13,Winston,Alabama,01133,4,0 +2020-04-14,Winston,Alabama,01133,4,0 +2020-04-15,Winston,Alabama,01133,7,0 +2020-04-16,Winston,Alabama,01133,9,0 +2020-04-17,Winston,Alabama,01133,9,0 +2020-04-18,Winston,Alabama,01133,9,0 +2020-04-19,Winston,Alabama,01133,9,0 +2020-04-20,Winston,Alabama,01133,9,0 +2020-04-21,Winston,Alabama,01133,10,0 +2020-04-22,Winston,Alabama,01133,10,0 +2020-04-23,Winston,Alabama,01133,10,0 +2020-04-24,Winston,Alabama,01133,10,0 +2020-04-25,Winston,Alabama,01133,10,0 +2020-04-26,Winston,Alabama,01133,11,0 +2020-04-27,Winston,Alabama,01133,11,0 +2020-04-28,Winston,Alabama,01133,13,0 +2020-04-29,Winston,Alabama,01133,13,0 +2020-04-30,Winston,Alabama,01133,15,0 +2020-05-01,Winston,Alabama,01133,15,0 +2020-05-02,Winston,Alabama,01133,16,0 +2020-05-03,Winston,Alabama,01133,16,0 +2020-05-04,Winston,Alabama,01133,16,0 +2020-05-05,Winston,Alabama,01133,16,0 +2020-05-06,Winston,Alabama,01133,17,0 +2020-05-07,Winston,Alabama,01133,17,0 +2020-05-08,Winston,Alabama,01133,20,0 +2020-05-09,Winston,Alabama,01133,20,0 +2020-05-10,Winston,Alabama,01133,21,0 +2020-05-11,Winston,Alabama,01133,23,0 +2020-05-12,Winston,Alabama,01133,25,0 +2020-05-13,Winston,Alabama,01133,25,0 +2020-05-14,Winston,Alabama,01133,27,1 +2020-05-15,Winston,Alabama,01133,28,1 +2020-05-16,Winston,Alabama,01133,33,1 +2020-05-17,Winston,Alabama,01133,34,1 +2020-05-18,Winston,Alabama,01133,39,1 +2020-05-19,Winston,Alabama,01133,45,1 +2020-05-20,Winston,Alabama,01133,50,0 +2020-05-21,Winston,Alabama,01133,52,0 +2020-05-22,Winston,Alabama,01133,52,0 +2020-05-23,Winston,Alabama,01133,61,0 +2020-05-24,Winston,Alabama,01133,62,0 +2020-05-25,Winston,Alabama,01133,67,0 +2020-05-26,Winston,Alabama,01133,75,0 +2020-05-27,Winston,Alabama,01133,77,0 +2020-05-28,Winston,Alabama,01133,82,0 +2020-05-29,Winston,Alabama,01133,87,0 +2020-05-30,Winston,Alabama,01133,88,0 +2020-05-31,Winston,Alabama,01133,90,0 +2020-06-01,Winston,Alabama,01133,91,0 +2020-06-02,Winston,Alabama,01133,92,0 +2020-06-03,Winston,Alabama,01133,92,0 +2020-06-04,Winston,Alabama,01133,92,0 +2020-06-05,Winston,Alabama,01133,93,0 +2020-06-06,Winston,Alabama,01133,94,0 +2020-06-07,Winston,Alabama,01133,94,0 +2020-06-08,Winston,Alabama,01133,96,0 +2020-06-09,Winston,Alabama,01133,97,0 +2020-06-10,Winston,Alabama,01133,99,0 +2020-06-11,Winston,Alabama,01133,107,0 +2020-06-12,Winston,Alabama,01133,112,0 +2020-06-13,Winston,Alabama,01133,116,1 +2020-06-14,Winston,Alabama,01133,122,1 +2020-06-15,Winston,Alabama,01133,128,1 +2020-06-16,Winston,Alabama,01133,133,1 +2020-06-17,Winston,Alabama,01133,150,1 +2020-06-18,Winston,Alabama,01133,166,1 +2020-06-19,Winston,Alabama,01133,173,1 +2020-06-20,Winston,Alabama,01133,173,1 +2020-06-21,Winston,Alabama,01133,176,1 +2020-06-22,Winston,Alabama,01133,178,1 +2020-06-23,Winston,Alabama,01133,179,1 +2020-06-24,Winston,Alabama,01133,195,2 +2020-06-25,Winston,Alabama,01133,210,2 +2020-06-26,Winston,Alabama,01133,216,2 +2020-06-27,Winston,Alabama,01133,218,3 +2020-06-28,Winston,Alabama,01133,220,3 +2020-06-29,Winston,Alabama,01133,228,3 +2020-06-30,Winston,Alabama,01133,231,3 +2020-07-01,Winston,Alabama,01133,235,3 +2020-07-02,Winston,Alabama,01133,239,3 +2020-07-03,Winston,Alabama,01133,249,3 +2020-07-04,Winston,Alabama,01133,257,3 +2020-07-05,Winston,Alabama,01133,261,3 +2020-07-06,Winston,Alabama,01133,266,3 +2020-07-07,Winston,Alabama,01133,269,3 +2020-07-08,Winston,Alabama,01133,281,3 +2020-07-09,Winston,Alabama,01133,293,3 +2020-06-09,Aleutians East Borough,Alaska,02013,1,0 +2020-06-10,Aleutians East Borough,Alaska,02013,1,0 +2020-06-11,Aleutians East Borough,Alaska,02013,1,0 +2020-06-12,Aleutians East Borough,Alaska,02013,1,0 +2020-06-13,Aleutians East Borough,Alaska,02013,1,0 +2020-06-14,Aleutians East Borough,Alaska,02013,1,0 +2020-06-15,Aleutians East Borough,Alaska,02013,2,0 +2020-06-16,Aleutians East Borough,Alaska,02013,2,0 +2020-06-17,Aleutians East Borough,Alaska,02013,2,0 +2020-06-18,Aleutians East Borough,Alaska,02013,2,0 +2020-06-19,Aleutians East Borough,Alaska,02013,2,0 +2020-06-20,Aleutians East Borough,Alaska,02013,2,0 +2020-06-21,Aleutians East Borough,Alaska,02013,2,0 +2020-06-22,Aleutians East Borough,Alaska,02013,2,0 +2020-06-23,Aleutians East Borough,Alaska,02013,2,0 +2020-06-24,Aleutians East Borough,Alaska,02013,2,0 +2020-06-25,Aleutians East Borough,Alaska,02013,2,0 +2020-06-26,Aleutians East Borough,Alaska,02013,2,0 +2020-06-27,Aleutians East Borough,Alaska,02013,2,0 +2020-06-28,Aleutians East Borough,Alaska,02013,2,0 +2020-06-29,Aleutians East Borough,Alaska,02013,2,0 +2020-06-30,Aleutians East Borough,Alaska,02013,2,0 +2020-07-01,Aleutians East Borough,Alaska,02013,2,0 +2020-07-02,Aleutians East Borough,Alaska,02013,2,0 +2020-07-03,Aleutians East Borough,Alaska,02013,2,0 +2020-07-04,Aleutians East Borough,Alaska,02013,2,0 +2020-07-05,Aleutians East Borough,Alaska,02013,2,0 +2020-07-06,Aleutians East Borough,Alaska,02013,2,0 +2020-07-07,Aleutians East Borough,Alaska,02013,2,0 +2020-07-08,Aleutians East Borough,Alaska,02013,2,0 +2020-07-09,Aleutians East Borough,Alaska,02013,2,0 +2020-06-04,Aleutians West Census Area,Alaska,02016,3,0 +2020-06-05,Aleutians West Census Area,Alaska,02016,3,0 +2020-06-06,Aleutians West Census Area,Alaska,02016,3,0 +2020-06-07,Aleutians West Census Area,Alaska,02016,3,0 +2020-06-08,Aleutians West Census Area,Alaska,02016,3,0 +2020-06-09,Aleutians West Census Area,Alaska,02016,3,0 +2020-06-10,Aleutians West Census Area,Alaska,02016,3,0 +2020-06-11,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-12,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-13,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-14,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-15,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-16,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-17,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-18,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-19,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-20,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-21,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-22,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-23,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-24,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-25,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-26,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-27,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-28,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-29,Aleutians West Census Area,Alaska,02016,4,0 +2020-06-30,Aleutians West Census Area,Alaska,02016,4,0 +2020-07-01,Aleutians West Census Area,Alaska,02016,4,0 +2020-07-02,Aleutians West Census Area,Alaska,02016,5,0 +2020-07-03,Aleutians West Census Area,Alaska,02016,5,0 +2020-07-04,Aleutians West Census Area,Alaska,02016,5,0 +2020-07-05,Aleutians West Census Area,Alaska,02016,5,0 +2020-07-06,Aleutians West Census Area,Alaska,02016,5,0 +2020-07-07,Aleutians West Census Area,Alaska,02016,5,0 +2020-07-08,Aleutians West Census Area,Alaska,02016,6,0 +2020-07-09,Aleutians West Census Area,Alaska,02016,6,0 +2020-03-12,Anchorage,Alaska,02020,1,0 +2020-03-13,Anchorage,Alaska,02020,1,0 +2020-03-14,Anchorage,Alaska,02020,1,0 +2020-03-15,Anchorage,Alaska,02020,1,0 +2020-03-16,Anchorage,Alaska,02020,1,0 +2020-03-17,Anchorage,Alaska,02020,2,0 +2020-03-18,Anchorage,Alaska,02020,4,0 +2020-03-19,Anchorage,Alaska,02020,4,0 +2020-03-20,Anchorage,Alaska,02020,4,0 +2020-03-21,Anchorage,Alaska,02020,5,0 +2020-03-22,Anchorage,Alaska,02020,6,0 +2020-03-23,Anchorage,Alaska,02020,17,0 +2020-03-24,Anchorage,Alaska,02020,17,0 +2020-03-25,Anchorage,Alaska,02020,28,0 +2020-03-26,Anchorage,Alaska,02020,33,0 +2020-03-27,Anchorage,Alaska,02020,43,1 +2020-03-28,Anchorage,Alaska,02020,54,1 +2020-03-29,Anchorage,Alaska,02020,59,2 +2020-03-30,Anchorage,Alaska,02020,61,2 +2020-03-31,Anchorage,Alaska,02020,65,2 +2020-04-01,Anchorage,Alaska,02020,67,2 +2020-04-02,Anchorage,Alaska,02020,66,2 +2020-04-03,Anchorage,Alaska,02020,73,2 +2020-04-04,Anchorage,Alaska,02020,81,2 +2020-04-05,Anchorage,Alaska,02020,85,3 +2020-04-06,Anchorage,Alaska,02020,88,3 +2020-04-07,Anchorage,Alaska,02020,98,3 +2020-04-08,Anchorage,Alaska,02020,103,4 +2020-04-09,Anchorage,Alaska,02020,109,4 +2020-04-10,Anchorage,Alaska,02020,112,4 +2020-04-11,Anchorage,Alaska,02020,121,4 +2020-04-12,Anchorage,Alaska,02020,127,4 +2020-04-13,Anchorage,Alaska,02020,131,4 +2020-04-14,Anchorage,Alaska,02020,136,4 +2020-04-15,Anchorage,Alaska,02020,139,4 +2020-04-16,Anchorage,Alaska,02020,143,4 +2020-04-17,Anchorage,Alaska,02020,150,4 +2020-04-18,Anchorage,Alaska,02020,151,4 +2020-04-19,Anchorage,Alaska,02020,154,4 +2020-04-20,Anchorage,Alaska,02020,155,4 +2020-04-21,Anchorage,Alaska,02020,160,4 +2020-04-22,Anchorage,Alaska,02020,164,4 +2020-04-23,Anchorage,Alaska,02020,166,4 +2020-04-24,Anchorage,Alaska,02020,168,4 +2020-04-25,Anchorage,Alaska,02020,168,4 +2020-04-26,Anchorage,Alaska,02020,168,4 +2020-04-27,Anchorage,Alaska,02020,171,4 +2020-04-28,Anchorage,Alaska,02020,175,4 +2020-04-29,Anchorage,Alaska,02020,179,4 +2020-04-30,Anchorage,Alaska,02020,179,4 +2020-05-01,Anchorage,Alaska,02020,185,4 +2020-05-02,Anchorage,Alaska,02020,185,4 +2020-05-03,Anchorage,Alaska,02020,187,4 +2020-05-04,Anchorage,Alaska,02020,189,4 +2020-05-05,Anchorage,Alaska,02020,190,4 +2020-05-06,Anchorage,Alaska,02020,190,4 +2020-05-07,Anchorage,Alaska,02020,191,4 +2020-05-08,Anchorage,Alaska,02020,194,4 +2020-05-09,Anchorage,Alaska,02020,194,4 +2020-05-10,Anchorage,Alaska,02020,194,4 +2020-05-11,Anchorage,Alaska,02020,195,4 +2020-05-12,Anchorage,Alaska,02020,196,4 +2020-05-13,Anchorage,Alaska,02020,196,4 +2020-05-14,Anchorage,Alaska,02020,199,4 +2020-05-15,Anchorage,Alaska,02020,200,4 +2020-05-16,Anchorage,Alaska,02020,202,4 +2020-05-17,Anchorage,Alaska,02020,204,4 +2020-05-18,Anchorage,Alaska,02020,206,4 +2020-05-19,Anchorage,Alaska,02020,206,4 +2020-05-20,Anchorage,Alaska,02020,207,4 +2020-05-21,Anchorage,Alaska,02020,207,4 +2020-05-22,Anchorage,Alaska,02020,207,4 +2020-05-23,Anchorage,Alaska,02020,207,4 +2020-05-24,Anchorage,Alaska,02020,207,4 +2020-05-25,Anchorage,Alaska,02020,207,4 +2020-05-26,Anchorage,Alaska,02020,210,4 +2020-05-27,Anchorage,Alaska,02020,210,4 +2020-05-28,Anchorage,Alaska,02020,214,4 +2020-05-29,Anchorage,Alaska,02020,216,4 +2020-05-30,Anchorage,Alaska,02020,217,4 +2020-05-31,Anchorage,Alaska,02020,232,4 +2020-06-01,Anchorage,Alaska,02020,235,4 +2020-06-02,Anchorage,Alaska,02020,250,4 +2020-06-03,Anchorage,Alaska,02020,258,4 +2020-06-04,Anchorage,Alaska,02020,263,4 +2020-06-05,Anchorage,Alaska,02020,278,4 +2020-06-06,Anchorage,Alaska,02020,282,4 +2020-06-07,Anchorage,Alaska,02020,289,4 +2020-06-08,Anchorage,Alaska,02020,300,4 +2020-06-09,Anchorage,Alaska,02020,305,5 +2020-06-10,Anchorage,Alaska,02020,314,5 +2020-06-11,Anchorage,Alaska,02020,322,5 +2020-06-12,Anchorage,Alaska,02020,331,6 +2020-06-13,Anchorage,Alaska,02020,339,6 +2020-06-14,Anchorage,Alaska,02020,345,6 +2020-06-15,Anchorage,Alaska,02020,346,6 +2020-06-16,Anchorage,Alaska,02020,354,6 +2020-06-17,Anchorage,Alaska,02020,358,6 +2020-06-18,Anchorage,Alaska,02020,362,6 +2020-06-19,Anchorage,Alaska,02020,370,6 +2020-06-20,Anchorage,Alaska,02020,379,6 +2020-06-21,Anchorage,Alaska,02020,386,6 +2020-06-22,Anchorage,Alaska,02020,389,6 +2020-06-23,Anchorage,Alaska,02020,401,6 +2020-06-24,Anchorage,Alaska,02020,410,6 +2020-06-25,Anchorage,Alaska,02020,420,6 +2020-06-26,Anchorage,Alaska,02020,429,6 +2020-06-27,Anchorage,Alaska,02020,440,6 +2020-06-28,Anchorage,Alaska,02020,455,6 +2020-06-29,Anchorage,Alaska,02020,463,6 +2020-06-30,Anchorage,Alaska,02020,485,6 +2020-07-01,Anchorage,Alaska,02020,504,6 +2020-07-02,Anchorage,Alaska,02020,520,6 +2020-07-03,Anchorage,Alaska,02020,541,7 +2020-07-04,Anchorage,Alaska,02020,577,8 +2020-07-05,Anchorage,Alaska,02020,600,8 +2020-07-06,Anchorage,Alaska,02020,618,8 +2020-07-07,Anchorage,Alaska,02020,633,8 +2020-07-08,Anchorage,Alaska,02020,654,8 +2020-07-09,Anchorage,Alaska,02020,675,8 +2020-04-07,Bethel Census Area,Alaska,02050,1,0 +2020-04-08,Bethel Census Area,Alaska,02050,1,0 +2020-04-09,Bethel Census Area,Alaska,02050,1,0 +2020-04-10,Bethel Census Area,Alaska,02050,1,0 +2020-04-11,Bethel Census Area,Alaska,02050,1,0 +2020-04-12,Bethel Census Area,Alaska,02050,1,0 +2020-04-13,Bethel Census Area,Alaska,02050,1,0 +2020-04-14,Bethel Census Area,Alaska,02050,1,0 +2020-04-15,Bethel Census Area,Alaska,02050,1,0 +2020-04-16,Bethel Census Area,Alaska,02050,1,0 +2020-04-17,Bethel Census Area,Alaska,02050,1,0 +2020-04-18,Bethel Census Area,Alaska,02050,1,0 +2020-04-19,Bethel Census Area,Alaska,02050,1,0 +2020-04-20,Bethel Census Area,Alaska,02050,1,0 +2020-04-21,Bethel Census Area,Alaska,02050,1,0 +2020-04-22,Bethel Census Area,Alaska,02050,1,0 +2020-04-23,Bethel Census Area,Alaska,02050,1,0 +2020-04-24,Bethel Census Area,Alaska,02050,1,0 +2020-04-25,Bethel Census Area,Alaska,02050,1,0 +2020-04-26,Bethel Census Area,Alaska,02050,1,0 +2020-04-27,Bethel Census Area,Alaska,02050,1,0 +2020-04-28,Bethel Census Area,Alaska,02050,1,0 +2020-04-29,Bethel Census Area,Alaska,02050,1,0 +2020-04-30,Bethel Census Area,Alaska,02050,1,0 +2020-05-01,Bethel Census Area,Alaska,02050,1,0 +2020-05-02,Bethel Census Area,Alaska,02050,1,0 +2020-05-03,Bethel Census Area,Alaska,02050,1,0 +2020-05-04,Bethel Census Area,Alaska,02050,1,0 +2020-05-05,Bethel Census Area,Alaska,02050,1,0 +2020-05-06,Bethel Census Area,Alaska,02050,1,0 +2020-05-07,Bethel Census Area,Alaska,02050,1,0 +2020-05-08,Bethel Census Area,Alaska,02050,1,0 +2020-05-09,Bethel Census Area,Alaska,02050,1,0 +2020-05-10,Bethel Census Area,Alaska,02050,1,0 +2020-05-11,Bethel Census Area,Alaska,02050,1,0 +2020-05-12,Bethel Census Area,Alaska,02050,1,0 +2020-05-13,Bethel Census Area,Alaska,02050,1,0 +2020-05-14,Bethel Census Area,Alaska,02050,1,0 +2020-05-15,Bethel Census Area,Alaska,02050,1,0 +2020-05-16,Bethel Census Area,Alaska,02050,2,0 +2020-05-17,Bethel Census Area,Alaska,02050,2,0 +2020-05-18,Bethel Census Area,Alaska,02050,2,0 +2020-05-19,Bethel Census Area,Alaska,02050,2,0 +2020-05-20,Bethel Census Area,Alaska,02050,2,0 +2020-05-21,Bethel Census Area,Alaska,02050,2,0 +2020-05-22,Bethel Census Area,Alaska,02050,2,0 +2020-05-23,Bethel Census Area,Alaska,02050,2,0 +2020-05-24,Bethel Census Area,Alaska,02050,2,0 +2020-05-25,Bethel Census Area,Alaska,02050,2,0 +2020-05-26,Bethel Census Area,Alaska,02050,2,0 +2020-05-27,Bethel Census Area,Alaska,02050,3,0 +2020-05-28,Bethel Census Area,Alaska,02050,3,0 +2020-05-29,Bethel Census Area,Alaska,02050,3,0 +2020-05-30,Bethel Census Area,Alaska,02050,3,0 +2020-05-31,Bethel Census Area,Alaska,02050,3,0 +2020-06-01,Bethel Census Area,Alaska,02050,3,0 +2020-06-02,Bethel Census Area,Alaska,02050,3,0 +2020-06-03,Bethel Census Area,Alaska,02050,3,0 +2020-06-04,Bethel Census Area,Alaska,02050,3,0 +2020-06-05,Bethel Census Area,Alaska,02050,3,0 +2020-06-06,Bethel Census Area,Alaska,02050,3,0 +2020-06-07,Bethel Census Area,Alaska,02050,3,0 +2020-06-08,Bethel Census Area,Alaska,02050,3,0 +2020-06-09,Bethel Census Area,Alaska,02050,3,0 +2020-06-10,Bethel Census Area,Alaska,02050,3,0 +2020-06-11,Bethel Census Area,Alaska,02050,3,0 +2020-06-12,Bethel Census Area,Alaska,02050,4,0 +2020-06-13,Bethel Census Area,Alaska,02050,5,0 +2020-06-14,Bethel Census Area,Alaska,02050,5,0 +2020-06-15,Bethel Census Area,Alaska,02050,5,0 +2020-06-16,Bethel Census Area,Alaska,02050,6,0 +2020-06-17,Bethel Census Area,Alaska,02050,6,0 +2020-06-18,Bethel Census Area,Alaska,02050,6,0 +2020-06-19,Bethel Census Area,Alaska,02050,7,0 +2020-06-20,Bethel Census Area,Alaska,02050,7,0 +2020-06-21,Bethel Census Area,Alaska,02050,7,0 +2020-06-22,Bethel Census Area,Alaska,02050,7,0 +2020-06-23,Bethel Census Area,Alaska,02050,8,0 +2020-06-24,Bethel Census Area,Alaska,02050,8,0 +2020-06-25,Bethel Census Area,Alaska,02050,9,0 +2020-06-26,Bethel Census Area,Alaska,02050,10,0 +2020-06-27,Bethel Census Area,Alaska,02050,11,0 +2020-06-28,Bethel Census Area,Alaska,02050,11,0 +2020-06-29,Bethel Census Area,Alaska,02050,11,0 +2020-06-30,Bethel Census Area,Alaska,02050,11,0 +2020-07-01,Bethel Census Area,Alaska,02050,11,0 +2020-07-02,Bethel Census Area,Alaska,02050,11,0 +2020-07-03,Bethel Census Area,Alaska,02050,12,0 +2020-07-04,Bethel Census Area,Alaska,02050,13,0 +2020-07-05,Bethel Census Area,Alaska,02050,13,0 +2020-07-06,Bethel Census Area,Alaska,02050,13,0 +2020-07-07,Bethel Census Area,Alaska,02050,13,0 +2020-07-08,Bethel Census Area,Alaska,02050,13,0 +2020-07-09,Bethel Census Area,Alaska,02050,14,0 +2020-05-30,Bristol Bay Borough,Alaska,02060,1,0 +2020-05-31,Bristol Bay Borough,Alaska,02060,1,0 +2020-06-01,Bristol Bay Borough,Alaska,02060,1,0 +2020-06-02,Bristol Bay Borough,Alaska,02060,1,0 +2020-06-03,Bristol Bay Borough,Alaska,02060,1,0 +2020-06-04,Bristol Bay Borough,Alaska,02060,1,0 +2020-06-05,Bristol Bay Borough,Alaska,02060,2,0 +2020-06-06,Bristol Bay Borough,Alaska,02060,2,0 +2020-06-07,Bristol Bay Borough,Alaska,02060,2,0 +2020-06-08,Bristol Bay Borough,Alaska,02060,2,0 +2020-06-09,Bristol Bay Borough,Alaska,02060,2,0 +2020-06-10,Bristol Bay Borough,Alaska,02060,2,0 +2020-06-11,Bristol Bay Borough,Alaska,02060,2,0 +2020-06-12,Bristol Bay Borough,Alaska,02060,2,0 +2020-06-13,Bristol Bay Borough,Alaska,02060,2,0 +2020-06-14,Bristol Bay Borough,Alaska,02060,2,0 +2020-06-15,Bristol Bay Borough,Alaska,02060,2,0 +2020-06-16,Bristol Bay Borough,Alaska,02060,4,0 +2020-06-17,Bristol Bay Borough,Alaska,02060,4,0 +2020-06-18,Bristol Bay Borough,Alaska,02060,5,0 +2020-06-19,Bristol Bay Borough,Alaska,02060,5,0 +2020-06-20,Bristol Bay Borough,Alaska,02060,5,0 +2020-06-21,Bristol Bay Borough,Alaska,02060,5,0 +2020-06-22,Bristol Bay Borough,Alaska,02060,5,0 +2020-06-23,Bristol Bay Borough,Alaska,02060,5,0 +2020-06-24,Bristol Bay Borough,Alaska,02060,5,0 +2020-06-25,Bristol Bay Borough,Alaska,02060,5,0 +2020-06-26,Bristol Bay Borough,Alaska,02060,21,0 +2020-06-27,Bristol Bay Borough,Alaska,02060,21,0 +2020-06-28,Bristol Bay Borough,Alaska,02060,21,0 +2020-06-29,Bristol Bay Borough,Alaska,02060,21,0 +2020-06-30,Bristol Bay Borough,Alaska,02060,26,0 +2020-07-01,Bristol Bay Borough,Alaska,02060,26,0 +2020-07-02,Bristol Bay Borough,Alaska,02060,26,0 +2020-07-03,Bristol Bay Borough,Alaska,02060,41,0 +2020-07-04,Bristol Bay Borough,Alaska,02060,41,0 +2020-07-05,Bristol Bay Borough,Alaska,02060,41,0 +2020-07-06,Bristol Bay Borough,Alaska,02060,41,0 +2020-07-07,Bristol Bay Borough,Alaska,02060,49,0 +2020-07-08,Bristol Bay Borough,Alaska,02060,49,0 +2020-07-09,Bristol Bay Borough,Alaska,02060,49,0 +2020-06-25,Denali Borough,Alaska,02068,1,0 +2020-06-26,Denali Borough,Alaska,02068,1,0 +2020-06-27,Denali Borough,Alaska,02068,1,0 +2020-06-28,Denali Borough,Alaska,02068,1,0 +2020-06-29,Denali Borough,Alaska,02068,1,0 +2020-06-30,Denali Borough,Alaska,02068,1,0 +2020-07-01,Denali Borough,Alaska,02068,1,0 +2020-07-02,Denali Borough,Alaska,02068,1,0 +2020-07-03,Denali Borough,Alaska,02068,1,0 +2020-07-04,Denali Borough,Alaska,02068,1,0 +2020-07-05,Denali Borough,Alaska,02068,1,0 +2020-07-06,Denali Borough,Alaska,02068,1,0 +2020-07-07,Denali Borough,Alaska,02068,1,0 +2020-07-08,Denali Borough,Alaska,02068,1,0 +2020-07-09,Denali Borough,Alaska,02068,1,0 +2020-05-31,Dillingham Census Area,Alaska,02070,1,0 +2020-06-01,Dillingham Census Area,Alaska,02070,1,0 +2020-06-02,Dillingham Census Area,Alaska,02070,1,0 +2020-06-03,Dillingham Census Area,Alaska,02070,1,0 +2020-06-04,Dillingham Census Area,Alaska,02070,1,0 +2020-06-05,Dillingham Census Area,Alaska,02070,1,0 +2020-06-06,Dillingham Census Area,Alaska,02070,1,0 +2020-06-07,Dillingham Census Area,Alaska,02070,1,0 +2020-06-08,Dillingham Census Area,Alaska,02070,1,0 +2020-06-09,Dillingham Census Area,Alaska,02070,1,0 +2020-06-10,Dillingham Census Area,Alaska,02070,1,0 +2020-06-11,Dillingham Census Area,Alaska,02070,1,0 +2020-06-12,Dillingham Census Area,Alaska,02070,1,0 +2020-06-13,Dillingham Census Area,Alaska,02070,1,0 +2020-06-14,Dillingham Census Area,Alaska,02070,1,0 +2020-06-15,Dillingham Census Area,Alaska,02070,1,0 +2020-06-16,Dillingham Census Area,Alaska,02070,1,0 +2020-06-17,Dillingham Census Area,Alaska,02070,1,0 +2020-06-18,Dillingham Census Area,Alaska,02070,1,0 +2020-06-19,Dillingham Census Area,Alaska,02070,1,0 +2020-06-20,Dillingham Census Area,Alaska,02070,1,0 +2020-06-21,Dillingham Census Area,Alaska,02070,1,0 +2020-06-22,Dillingham Census Area,Alaska,02070,1,0 +2020-06-23,Dillingham Census Area,Alaska,02070,14,0 +2020-06-24,Dillingham Census Area,Alaska,02070,14,0 +2020-06-25,Dillingham Census Area,Alaska,02070,14,0 +2020-06-26,Dillingham Census Area,Alaska,02070,14,0 +2020-06-27,Dillingham Census Area,Alaska,02070,16,0 +2020-06-28,Dillingham Census Area,Alaska,02070,17,0 +2020-06-29,Dillingham Census Area,Alaska,02070,17,0 +2020-06-30,Dillingham Census Area,Alaska,02070,18,0 +2020-07-01,Dillingham Census Area,Alaska,02070,18,0 +2020-07-02,Dillingham Census Area,Alaska,02070,20,0 +2020-07-03,Dillingham Census Area,Alaska,02070,21,0 +2020-07-04,Dillingham Census Area,Alaska,02070,21,0 +2020-07-05,Dillingham Census Area,Alaska,02070,21,0 +2020-07-06,Dillingham Census Area,Alaska,02070,21,0 +2020-07-07,Dillingham Census Area,Alaska,02070,21,0 +2020-07-08,Dillingham Census Area,Alaska,02070,21,0 +2020-07-09,Dillingham Census Area,Alaska,02070,21,0 +2020-03-16,Fairbanks North Star Borough,Alaska,02090,2,0 +2020-03-17,Fairbanks North Star Borough,Alaska,02090,3,0 +2020-03-18,Fairbanks North Star Borough,Alaska,02090,3,0 +2020-03-19,Fairbanks North Star Borough,Alaska,02090,5,0 +2020-03-20,Fairbanks North Star Borough,Alaska,02090,6,0 +2020-03-21,Fairbanks North Star Borough,Alaska,02090,7,0 +2020-03-22,Fairbanks North Star Borough,Alaska,02090,7,0 +2020-03-23,Fairbanks North Star Borough,Alaska,02090,7,0 +2020-03-24,Fairbanks North Star Borough,Alaska,02090,9,0 +2020-03-25,Fairbanks North Star Borough,Alaska,02090,11,0 +2020-03-26,Fairbanks North Star Borough,Alaska,02090,15,0 +2020-03-27,Fairbanks North Star Borough,Alaska,02090,19,0 +2020-03-28,Fairbanks North Star Borough,Alaska,02090,23,0 +2020-03-29,Fairbanks North Star Borough,Alaska,02090,28,0 +2020-03-30,Fairbanks North Star Borough,Alaska,02090,31,0 +2020-03-31,Fairbanks North Star Borough,Alaska,02090,35,0 +2020-04-01,Fairbanks North Star Borough,Alaska,02090,40,0 +2020-04-02,Fairbanks North Star Borough,Alaska,02090,42,0 +2020-04-03,Fairbanks North Star Borough,Alaska,02090,42,0 +2020-04-04,Fairbanks North Star Borough,Alaska,02090,46,1 +2020-04-05,Fairbanks North Star Borough,Alaska,02090,53,1 +2020-04-06,Fairbanks North Star Borough,Alaska,02090,54,1 +2020-04-07,Fairbanks North Star Borough,Alaska,02090,65,1 +2020-04-08,Fairbanks North Star Borough,Alaska,02090,71,1 +2020-04-09,Fairbanks North Star Borough,Alaska,02090,73,1 +2020-04-10,Fairbanks North Star Borough,Alaska,02090,76,1 +2020-04-11,Fairbanks North Star Borough,Alaska,02090,76,2 +2020-04-12,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-13,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-14,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-15,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-16,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-17,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-18,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-19,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-20,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-21,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-22,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-23,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-24,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-25,Fairbanks North Star Borough,Alaska,02090,79,2 +2020-04-26,Fairbanks North Star Borough,Alaska,02090,80,2 +2020-04-27,Fairbanks North Star Borough,Alaska,02090,80,2 +2020-04-28,Fairbanks North Star Borough,Alaska,02090,81,2 +2020-04-29,Fairbanks North Star Borough,Alaska,02090,81,2 +2020-04-30,Fairbanks North Star Borough,Alaska,02090,81,2 +2020-05-01,Fairbanks North Star Borough,Alaska,02090,82,2 +2020-05-02,Fairbanks North Star Borough,Alaska,02090,83,2 +2020-05-03,Fairbanks North Star Borough,Alaska,02090,83,2 +2020-05-04,Fairbanks North Star Borough,Alaska,02090,83,2 +2020-05-05,Fairbanks North Star Borough,Alaska,02090,83,2 +2020-05-06,Fairbanks North Star Borough,Alaska,02090,83,2 +2020-05-07,Fairbanks North Star Borough,Alaska,02090,83,2 +2020-05-08,Fairbanks North Star Borough,Alaska,02090,83,2 +2020-05-09,Fairbanks North Star Borough,Alaska,02090,83,2 +2020-05-10,Fairbanks North Star Borough,Alaska,02090,84,2 +2020-05-11,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-12,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-13,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-14,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-15,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-16,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-17,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-18,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-19,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-20,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-21,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-22,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-23,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-24,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-25,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-26,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-27,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-28,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-29,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-30,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-05-31,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-06-01,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-06-02,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-06-03,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-06-04,Fairbanks North Star Borough,Alaska,02090,85,2 +2020-06-05,Fairbanks North Star Borough,Alaska,02090,86,2 +2020-06-06,Fairbanks North Star Borough,Alaska,02090,86,2 +2020-06-07,Fairbanks North Star Borough,Alaska,02090,86,2 +2020-06-08,Fairbanks North Star Borough,Alaska,02090,86,2 +2020-06-09,Fairbanks North Star Borough,Alaska,02090,86,2 +2020-06-10,Fairbanks North Star Borough,Alaska,02090,86,2 +2020-06-11,Fairbanks North Star Borough,Alaska,02090,89,2 +2020-06-12,Fairbanks North Star Borough,Alaska,02090,90,2 +2020-06-13,Fairbanks North Star Borough,Alaska,02090,94,2 +2020-06-14,Fairbanks North Star Borough,Alaska,02090,98,2 +2020-06-15,Fairbanks North Star Borough,Alaska,02090,98,2 +2020-06-16,Fairbanks North Star Borough,Alaska,02090,98,2 +2020-06-17,Fairbanks North Star Borough,Alaska,02090,104,2 +2020-06-18,Fairbanks North Star Borough,Alaska,02090,110,2 +2020-06-19,Fairbanks North Star Borough,Alaska,02090,111,2 +2020-06-20,Fairbanks North Star Borough,Alaska,02090,119,2 +2020-06-21,Fairbanks North Star Borough,Alaska,02090,122,2 +2020-06-22,Fairbanks North Star Borough,Alaska,02090,122,2 +2020-06-23,Fairbanks North Star Borough,Alaska,02090,125,2 +2020-06-24,Fairbanks North Star Borough,Alaska,02090,133,2 +2020-06-25,Fairbanks North Star Borough,Alaska,02090,140,2 +2020-06-26,Fairbanks North Star Borough,Alaska,02090,143,2 +2020-06-27,Fairbanks North Star Borough,Alaska,02090,145,2 +2020-06-28,Fairbanks North Star Borough,Alaska,02090,148,2 +2020-06-29,Fairbanks North Star Borough,Alaska,02090,150,2 +2020-06-30,Fairbanks North Star Borough,Alaska,02090,155,2 +2020-07-01,Fairbanks North Star Borough,Alaska,02090,158,2 +2020-07-02,Fairbanks North Star Borough,Alaska,02090,161,2 +2020-07-03,Fairbanks North Star Borough,Alaska,02090,174,2 +2020-07-04,Fairbanks North Star Borough,Alaska,02090,180,2 +2020-07-05,Fairbanks North Star Borough,Alaska,02090,183,2 +2020-07-06,Fairbanks North Star Borough,Alaska,02090,189,2 +2020-07-07,Fairbanks North Star Borough,Alaska,02090,189,2 +2020-07-08,Fairbanks North Star Borough,Alaska,02090,196,2 +2020-07-09,Fairbanks North Star Borough,Alaska,02090,204,2 +2020-06-09,Haines Borough,Alaska,02100,1,0 +2020-06-10,Haines Borough,Alaska,02100,1,0 +2020-06-11,Haines Borough,Alaska,02100,1,0 +2020-06-12,Haines Borough,Alaska,02100,1,0 +2020-06-13,Haines Borough,Alaska,02100,1,0 +2020-06-14,Haines Borough,Alaska,02100,1,0 +2020-06-15,Haines Borough,Alaska,02100,1,0 +2020-06-16,Haines Borough,Alaska,02100,1,0 +2020-06-17,Haines Borough,Alaska,02100,1,0 +2020-06-18,Haines Borough,Alaska,02100,1,0 +2020-06-19,Haines Borough,Alaska,02100,2,0 +2020-06-20,Haines Borough,Alaska,02100,2,0 +2020-06-21,Haines Borough,Alaska,02100,2,0 +2020-06-22,Haines Borough,Alaska,02100,5,0 +2020-06-23,Haines Borough,Alaska,02100,5,0 +2020-06-24,Haines Borough,Alaska,02100,5,0 +2020-06-25,Haines Borough,Alaska,02100,5,0 +2020-06-26,Haines Borough,Alaska,02100,5,0 +2020-06-27,Haines Borough,Alaska,02100,5,0 +2020-06-28,Haines Borough,Alaska,02100,5,0 +2020-06-29,Haines Borough,Alaska,02100,5,0 +2020-06-30,Haines Borough,Alaska,02100,5,0 +2020-07-01,Haines Borough,Alaska,02100,5,0 +2020-07-02,Haines Borough,Alaska,02100,6,0 +2020-07-03,Haines Borough,Alaska,02100,6,0 +2020-07-04,Haines Borough,Alaska,02100,6,0 +2020-07-05,Haines Borough,Alaska,02100,6,0 +2020-07-06,Haines Borough,Alaska,02100,6,0 +2020-07-07,Haines Borough,Alaska,02100,6,0 +2020-07-08,Haines Borough,Alaska,02100,6,0 +2020-07-09,Haines Borough,Alaska,02100,6,0 +2020-03-23,Juneau City and Borough,Alaska,02110,1,0 +2020-03-24,Juneau City and Borough,Alaska,02110,2,0 +2020-03-25,Juneau City and Borough,Alaska,02110,2,0 +2020-03-26,Juneau City and Borough,Alaska,02110,3,0 +2020-03-27,Juneau City and Borough,Alaska,02110,4,0 +2020-03-28,Juneau City and Borough,Alaska,02110,4,0 +2020-03-29,Juneau City and Borough,Alaska,02110,5,0 +2020-03-30,Juneau City and Borough,Alaska,02110,5,0 +2020-03-31,Juneau City and Borough,Alaska,02110,9,0 +2020-04-01,Juneau City and Borough,Alaska,02110,10,0 +2020-04-02,Juneau City and Borough,Alaska,02110,10,0 +2020-04-03,Juneau City and Borough,Alaska,02110,11,0 +2020-04-04,Juneau City and Borough,Alaska,02110,12,0 +2020-04-05,Juneau City and Borough,Alaska,02110,14,0 +2020-04-06,Juneau City and Borough,Alaska,02110,14,0 +2020-04-07,Juneau City and Borough,Alaska,02110,14,0 +2020-04-08,Juneau City and Borough,Alaska,02110,14,0 +2020-04-09,Juneau City and Borough,Alaska,02110,14,0 +2020-04-10,Juneau City and Borough,Alaska,02110,15,0 +2020-04-11,Juneau City and Borough,Alaska,02110,15,0 +2020-04-12,Juneau City and Borough,Alaska,02110,16,0 +2020-04-13,Juneau City and Borough,Alaska,02110,17,0 +2020-04-14,Juneau City and Borough,Alaska,02110,18,0 +2020-04-15,Juneau City and Borough,Alaska,02110,21,0 +2020-04-16,Juneau City and Borough,Alaska,02110,23,0 +2020-04-17,Juneau City and Borough,Alaska,02110,24,0 +2020-04-18,Juneau City and Borough,Alaska,02110,24,0 +2020-04-19,Juneau City and Borough,Alaska,02110,24,0 +2020-04-20,Juneau City and Borough,Alaska,02110,24,0 +2020-04-21,Juneau City and Borough,Alaska,02110,26,0 +2020-04-22,Juneau City and Borough,Alaska,02110,27,0 +2020-04-23,Juneau City and Borough,Alaska,02110,27,0 +2020-04-24,Juneau City and Borough,Alaska,02110,27,0 +2020-04-25,Juneau City and Borough,Alaska,02110,27,0 +2020-04-26,Juneau City and Borough,Alaska,02110,27,0 +2020-04-27,Juneau City and Borough,Alaska,02110,27,0 +2020-04-28,Juneau City and Borough,Alaska,02110,27,0 +2020-04-29,Juneau City and Borough,Alaska,02110,27,0 +2020-04-30,Juneau City and Borough,Alaska,02110,27,0 +2020-05-01,Juneau City and Borough,Alaska,02110,27,0 +2020-05-02,Juneau City and Borough,Alaska,02110,27,0 +2020-05-03,Juneau City and Borough,Alaska,02110,27,0 +2020-05-04,Juneau City and Borough,Alaska,02110,27,0 +2020-05-05,Juneau City and Borough,Alaska,02110,27,0 +2020-05-06,Juneau City and Borough,Alaska,02110,27,0 +2020-05-07,Juneau City and Borough,Alaska,02110,27,0 +2020-05-08,Juneau City and Borough,Alaska,02110,27,0 +2020-05-09,Juneau City and Borough,Alaska,02110,27,0 +2020-05-10,Juneau City and Borough,Alaska,02110,27,0 +2020-05-11,Juneau City and Borough,Alaska,02110,27,0 +2020-05-12,Juneau City and Borough,Alaska,02110,29,0 +2020-05-13,Juneau City and Borough,Alaska,02110,29,0 +2020-05-14,Juneau City and Borough,Alaska,02110,29,0 +2020-05-15,Juneau City and Borough,Alaska,02110,29,0 +2020-05-16,Juneau City and Borough,Alaska,02110,29,0 +2020-05-17,Juneau City and Borough,Alaska,02110,30,0 +2020-05-18,Juneau City and Borough,Alaska,02110,30,0 +2020-05-19,Juneau City and Borough,Alaska,02110,30,0 +2020-05-20,Juneau City and Borough,Alaska,02110,30,0 +2020-05-21,Juneau City and Borough,Alaska,02110,30,0 +2020-05-22,Juneau City and Borough,Alaska,02110,31,0 +2020-05-23,Juneau City and Borough,Alaska,02110,31,0 +2020-05-24,Juneau City and Borough,Alaska,02110,31,0 +2020-05-25,Juneau City and Borough,Alaska,02110,31,0 +2020-05-26,Juneau City and Borough,Alaska,02110,31,0 +2020-05-27,Juneau City and Borough,Alaska,02110,31,0 +2020-05-28,Juneau City and Borough,Alaska,02110,32,0 +2020-05-29,Juneau City and Borough,Alaska,02110,33,0 +2020-05-30,Juneau City and Borough,Alaska,02110,33,0 +2020-05-31,Juneau City and Borough,Alaska,02110,33,0 +2020-06-01,Juneau City and Borough,Alaska,02110,33,0 +2020-06-02,Juneau City and Borough,Alaska,02110,33,0 +2020-06-03,Juneau City and Borough,Alaska,02110,33,0 +2020-06-04,Juneau City and Borough,Alaska,02110,33,0 +2020-06-05,Juneau City and Borough,Alaska,02110,33,0 +2020-06-06,Juneau City and Borough,Alaska,02110,33,0 +2020-06-07,Juneau City and Borough,Alaska,02110,34,0 +2020-06-08,Juneau City and Borough,Alaska,02110,35,0 +2020-06-09,Juneau City and Borough,Alaska,02110,35,0 +2020-06-10,Juneau City and Borough,Alaska,02110,36,0 +2020-06-11,Juneau City and Borough,Alaska,02110,37,0 +2020-06-12,Juneau City and Borough,Alaska,02110,38,0 +2020-06-13,Juneau City and Borough,Alaska,02110,40,0 +2020-06-14,Juneau City and Borough,Alaska,02110,40,0 +2020-06-15,Juneau City and Borough,Alaska,02110,40,0 +2020-06-16,Juneau City and Borough,Alaska,02110,40,0 +2020-06-17,Juneau City and Borough,Alaska,02110,41,0 +2020-06-18,Juneau City and Borough,Alaska,02110,42,0 +2020-06-19,Juneau City and Borough,Alaska,02110,42,0 +2020-06-20,Juneau City and Borough,Alaska,02110,42,0 +2020-06-21,Juneau City and Borough,Alaska,02110,42,0 +2020-06-22,Juneau City and Borough,Alaska,02110,42,0 +2020-06-23,Juneau City and Borough,Alaska,02110,42,0 +2020-06-24,Juneau City and Borough,Alaska,02110,42,0 +2020-06-25,Juneau City and Borough,Alaska,02110,42,0 +2020-06-26,Juneau City and Borough,Alaska,02110,45,2 +2020-06-27,Juneau City and Borough,Alaska,02110,47,2 +2020-06-28,Juneau City and Borough,Alaska,02110,48,2 +2020-06-29,Juneau City and Borough,Alaska,02110,48,2 +2020-06-30,Juneau City and Borough,Alaska,02110,48,2 +2020-07-01,Juneau City and Borough,Alaska,02110,48,2 +2020-07-02,Juneau City and Borough,Alaska,02110,48,2 +2020-07-03,Juneau City and Borough,Alaska,02110,49,2 +2020-07-04,Juneau City and Borough,Alaska,02110,50,2 +2020-07-05,Juneau City and Borough,Alaska,02110,50,2 +2020-07-06,Juneau City and Borough,Alaska,02110,51,2 +2020-07-07,Juneau City and Borough,Alaska,02110,51,2 +2020-07-08,Juneau City and Borough,Alaska,02110,52,2 +2020-07-09,Juneau City and Borough,Alaska,02110,52,2 +2020-03-18,Kenai Peninsula Borough,Alaska,02122,1,0 +2020-03-19,Kenai Peninsula Borough,Alaska,02122,1,0 +2020-03-20,Kenai Peninsula Borough,Alaska,02122,1,0 +2020-03-21,Kenai Peninsula Borough,Alaska,02122,3,0 +2020-03-22,Kenai Peninsula Borough,Alaska,02122,3,0 +2020-03-23,Kenai Peninsula Borough,Alaska,02122,3,0 +2020-03-24,Kenai Peninsula Borough,Alaska,02122,4,0 +2020-03-25,Kenai Peninsula Borough,Alaska,02122,5,0 +2020-03-26,Kenai Peninsula Borough,Alaska,02122,5,0 +2020-03-27,Kenai Peninsula Borough,Alaska,02122,5,0 +2020-03-28,Kenai Peninsula Borough,Alaska,02122,7,0 +2020-03-29,Kenai Peninsula Borough,Alaska,02122,7,0 +2020-03-30,Kenai Peninsula Borough,Alaska,02122,7,0 +2020-03-31,Kenai Peninsula Borough,Alaska,02122,8,0 +2020-04-01,Kenai Peninsula Borough,Alaska,02122,8,0 +2020-04-02,Kenai Peninsula Borough,Alaska,02122,8,0 +2020-04-03,Kenai Peninsula Borough,Alaska,02122,10,0 +2020-04-04,Kenai Peninsula Borough,Alaska,02122,10,0 +2020-04-05,Kenai Peninsula Borough,Alaska,02122,11,0 +2020-04-06,Kenai Peninsula Borough,Alaska,02122,12,0 +2020-04-07,Kenai Peninsula Borough,Alaska,02122,12,0 +2020-04-08,Kenai Peninsula Borough,Alaska,02122,12,0 +2020-04-09,Kenai Peninsula Borough,Alaska,02122,13,0 +2020-04-10,Kenai Peninsula Borough,Alaska,02122,14,0 +2020-04-11,Kenai Peninsula Borough,Alaska,02122,14,0 +2020-04-12,Kenai Peninsula Borough,Alaska,02122,14,0 +2020-04-13,Kenai Peninsula Borough,Alaska,02122,14,0 +2020-04-14,Kenai Peninsula Borough,Alaska,02122,14,0 +2020-04-15,Kenai Peninsula Borough,Alaska,02122,15,0 +2020-04-16,Kenai Peninsula Borough,Alaska,02122,15,0 +2020-04-17,Kenai Peninsula Borough,Alaska,02122,16,0 +2020-04-18,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-04-19,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-04-20,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-04-21,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-04-22,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-04-23,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-04-24,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-04-25,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-04-26,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-04-27,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-04-28,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-04-29,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-04-30,Kenai Peninsula Borough,Alaska,02122,18,0 +2020-05-01,Kenai Peninsula Borough,Alaska,02122,20,0 +2020-05-02,Kenai Peninsula Borough,Alaska,02122,20,0 +2020-05-03,Kenai Peninsula Borough,Alaska,02122,21,0 +2020-05-04,Kenai Peninsula Borough,Alaska,02122,21,0 +2020-05-05,Kenai Peninsula Borough,Alaska,02122,21,0 +2020-05-06,Kenai Peninsula Borough,Alaska,02122,21,1 +2020-05-07,Kenai Peninsula Borough,Alaska,02122,22,1 +2020-05-08,Kenai Peninsula Borough,Alaska,02122,22,1 +2020-05-09,Kenai Peninsula Borough,Alaska,02122,23,1 +2020-05-10,Kenai Peninsula Borough,Alaska,02122,23,1 +2020-05-11,Kenai Peninsula Borough,Alaska,02122,23,1 +2020-05-12,Kenai Peninsula Borough,Alaska,02122,23,1 +2020-05-13,Kenai Peninsula Borough,Alaska,02122,23,1 +2020-05-14,Kenai Peninsula Borough,Alaska,02122,23,1 +2020-05-15,Kenai Peninsula Borough,Alaska,02122,23,1 +2020-05-16,Kenai Peninsula Borough,Alaska,02122,24,1 +2020-05-17,Kenai Peninsula Borough,Alaska,02122,25,1 +2020-05-18,Kenai Peninsula Borough,Alaska,02122,25,1 +2020-05-19,Kenai Peninsula Borough,Alaska,02122,25,1 +2020-05-20,Kenai Peninsula Borough,Alaska,02122,25,1 +2020-05-21,Kenai Peninsula Borough,Alaska,02122,25,1 +2020-05-22,Kenai Peninsula Borough,Alaska,02122,25,1 +2020-05-23,Kenai Peninsula Borough,Alaska,02122,25,1 +2020-05-24,Kenai Peninsula Borough,Alaska,02122,25,1 +2020-05-25,Kenai Peninsula Borough,Alaska,02122,28,1 +2020-05-26,Kenai Peninsula Borough,Alaska,02122,28,1 +2020-05-27,Kenai Peninsula Borough,Alaska,02122,28,1 +2020-05-28,Kenai Peninsula Borough,Alaska,02122,35,1 +2020-05-29,Kenai Peninsula Borough,Alaska,02122,38,1 +2020-05-30,Kenai Peninsula Borough,Alaska,02122,40,1 +2020-05-31,Kenai Peninsula Borough,Alaska,02122,48,1 +2020-06-01,Kenai Peninsula Borough,Alaska,02122,52,1 +2020-06-02,Kenai Peninsula Borough,Alaska,02122,57,1 +2020-06-03,Kenai Peninsula Borough,Alaska,02122,63,1 +2020-06-04,Kenai Peninsula Borough,Alaska,02122,68,1 +2020-06-05,Kenai Peninsula Borough,Alaska,02122,73,1 +2020-06-06,Kenai Peninsula Borough,Alaska,02122,83,1 +2020-06-07,Kenai Peninsula Borough,Alaska,02122,84,1 +2020-06-08,Kenai Peninsula Borough,Alaska,02122,88,1 +2020-06-09,Kenai Peninsula Borough,Alaska,02122,91,1 +2020-06-10,Kenai Peninsula Borough,Alaska,02122,101,1 +2020-06-11,Kenai Peninsula Borough,Alaska,02122,104,1 +2020-06-12,Kenai Peninsula Borough,Alaska,02122,109,1 +2020-06-13,Kenai Peninsula Borough,Alaska,02122,115,1 +2020-06-14,Kenai Peninsula Borough,Alaska,02122,115,1 +2020-06-15,Kenai Peninsula Borough,Alaska,02122,116,1 +2020-06-16,Kenai Peninsula Borough,Alaska,02122,120,1 +2020-06-17,Kenai Peninsula Borough,Alaska,02122,122,1 +2020-06-18,Kenai Peninsula Borough,Alaska,02122,123,1 +2020-06-19,Kenai Peninsula Borough,Alaska,02122,124,1 +2020-06-20,Kenai Peninsula Borough,Alaska,02122,126,1 +2020-06-21,Kenai Peninsula Borough,Alaska,02122,127,1 +2020-06-22,Kenai Peninsula Borough,Alaska,02122,127,1 +2020-06-23,Kenai Peninsula Borough,Alaska,02122,128,1 +2020-06-24,Kenai Peninsula Borough,Alaska,02122,128,1 +2020-06-25,Kenai Peninsula Borough,Alaska,02122,134,1 +2020-06-26,Kenai Peninsula Borough,Alaska,02122,136,1 +2020-06-27,Kenai Peninsula Borough,Alaska,02122,138,1 +2020-06-28,Kenai Peninsula Borough,Alaska,02122,141,1 +2020-06-29,Kenai Peninsula Borough,Alaska,02122,151,1 +2020-06-30,Kenai Peninsula Borough,Alaska,02122,159,1 +2020-07-01,Kenai Peninsula Borough,Alaska,02122,164,1 +2020-07-02,Kenai Peninsula Borough,Alaska,02122,171,1 +2020-07-03,Kenai Peninsula Borough,Alaska,02122,177,1 +2020-07-04,Kenai Peninsula Borough,Alaska,02122,178,1 +2020-07-05,Kenai Peninsula Borough,Alaska,02122,180,1 +2020-07-06,Kenai Peninsula Borough,Alaska,02122,183,1 +2020-07-07,Kenai Peninsula Borough,Alaska,02122,185,1 +2020-07-08,Kenai Peninsula Borough,Alaska,02122,195,1 +2020-07-09,Kenai Peninsula Borough,Alaska,02122,202,1 +2020-03-17,Ketchikan Gateway Borough,Alaska,02130,1,0 +2020-03-18,Ketchikan Gateway Borough,Alaska,02130,1,0 +2020-03-19,Ketchikan Gateway Borough,Alaska,02130,2,0 +2020-03-20,Ketchikan Gateway Borough,Alaska,02130,3,0 +2020-03-21,Ketchikan Gateway Borough,Alaska,02130,6,0 +2020-03-22,Ketchikan Gateway Borough,Alaska,02130,6,0 +2020-03-23,Ketchikan Gateway Borough,Alaska,02130,6,0 +2020-03-24,Ketchikan Gateway Borough,Alaska,02130,8,0 +2020-03-25,Ketchikan Gateway Borough,Alaska,02130,11,0 +2020-03-26,Ketchikan Gateway Borough,Alaska,02130,11,0 +2020-03-27,Ketchikan Gateway Borough,Alaska,02130,12,0 +2020-03-28,Ketchikan Gateway Borough,Alaska,02130,12,0 +2020-03-29,Ketchikan Gateway Borough,Alaska,02130,13,0 +2020-03-30,Ketchikan Gateway Borough,Alaska,02130,13,0 +2020-03-31,Ketchikan Gateway Borough,Alaska,02130,13,0 +2020-04-01,Ketchikan Gateway Borough,Alaska,02130,14,0 +2020-04-02,Ketchikan Gateway Borough,Alaska,02130,14,0 +2020-04-03,Ketchikan Gateway Borough,Alaska,02130,14,0 +2020-04-04,Ketchikan Gateway Borough,Alaska,02130,14,0 +2020-04-05,Ketchikan Gateway Borough,Alaska,02130,14,0 +2020-04-06,Ketchikan Gateway Borough,Alaska,02130,14,0 +2020-04-07,Ketchikan Gateway Borough,Alaska,02130,14,0 +2020-04-08,Ketchikan Gateway Borough,Alaska,02130,14,0 +2020-04-09,Ketchikan Gateway Borough,Alaska,02130,14,0 +2020-04-10,Ketchikan Gateway Borough,Alaska,02130,14,0 +2020-04-11,Ketchikan Gateway Borough,Alaska,02130,14,0 +2020-04-12,Ketchikan Gateway Borough,Alaska,02130,15,0 +2020-04-13,Ketchikan Gateway Borough,Alaska,02130,15,0 +2020-04-14,Ketchikan Gateway Borough,Alaska,02130,15,0 +2020-04-15,Ketchikan Gateway Borough,Alaska,02130,15,0 +2020-04-16,Ketchikan Gateway Borough,Alaska,02130,15,0 +2020-04-17,Ketchikan Gateway Borough,Alaska,02130,15,0 +2020-04-18,Ketchikan Gateway Borough,Alaska,02130,15,0 +2020-04-19,Ketchikan Gateway Borough,Alaska,02130,15,0 +2020-04-20,Ketchikan Gateway Borough,Alaska,02130,15,0 +2020-04-21,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-04-22,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-04-23,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-04-24,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-04-25,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-04-26,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-04-27,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-04-28,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-04-29,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-04-30,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-01,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-02,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-03,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-04,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-05,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-06,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-07,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-08,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-09,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-10,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-11,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-12,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-13,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-14,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-15,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-16,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-17,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-18,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-19,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-20,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-21,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-22,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-23,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-24,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-25,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-26,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-27,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-28,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-29,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-30,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-05-31,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-06-01,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-06-02,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-06-03,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-06-04,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-06-05,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-06-06,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-06-07,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-06-08,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-06-09,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-06-10,Ketchikan Gateway Borough,Alaska,02130,16,0 +2020-06-11,Ketchikan Gateway Borough,Alaska,02130,17,0 +2020-06-12,Ketchikan Gateway Borough,Alaska,02130,17,0 +2020-06-13,Ketchikan Gateway Borough,Alaska,02130,20,0 +2020-06-14,Ketchikan Gateway Borough,Alaska,02130,22,0 +2020-06-15,Ketchikan Gateway Borough,Alaska,02130,22,0 +2020-06-16,Ketchikan Gateway Borough,Alaska,02130,22,0 +2020-06-17,Ketchikan Gateway Borough,Alaska,02130,24,0 +2020-06-18,Ketchikan Gateway Borough,Alaska,02130,25,0 +2020-06-19,Ketchikan Gateway Borough,Alaska,02130,25,0 +2020-06-20,Ketchikan Gateway Borough,Alaska,02130,25,0 +2020-06-21,Ketchikan Gateway Borough,Alaska,02130,25,0 +2020-06-22,Ketchikan Gateway Borough,Alaska,02130,25,0 +2020-06-23,Ketchikan Gateway Borough,Alaska,02130,27,0 +2020-06-24,Ketchikan Gateway Borough,Alaska,02130,28,0 +2020-06-25,Ketchikan Gateway Borough,Alaska,02130,28,0 +2020-06-26,Ketchikan Gateway Borough,Alaska,02130,28,0 +2020-06-27,Ketchikan Gateway Borough,Alaska,02130,28,0 +2020-06-28,Ketchikan Gateway Borough,Alaska,02130,29,0 +2020-06-29,Ketchikan Gateway Borough,Alaska,02130,29,0 +2020-06-30,Ketchikan Gateway Borough,Alaska,02130,29,0 +2020-07-01,Ketchikan Gateway Borough,Alaska,02130,30,0 +2020-07-02,Ketchikan Gateway Borough,Alaska,02130,30,0 +2020-07-03,Ketchikan Gateway Borough,Alaska,02130,30,0 +2020-07-04,Ketchikan Gateway Borough,Alaska,02130,30,0 +2020-07-05,Ketchikan Gateway Borough,Alaska,02130,30,0 +2020-07-06,Ketchikan Gateway Borough,Alaska,02130,30,0 +2020-07-07,Ketchikan Gateway Borough,Alaska,02130,31,0 +2020-07-08,Ketchikan Gateway Borough,Alaska,02130,32,0 +2020-07-09,Ketchikan Gateway Borough,Alaska,02130,32,0 +2020-04-16,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-17,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-18,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-19,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-20,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-21,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-22,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-23,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-24,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-25,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-26,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-27,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-28,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-29,Kodiak Island Borough,Alaska,02150,1,0 +2020-04-30,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-01,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-02,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-03,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-04,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-05,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-06,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-07,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-08,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-09,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-10,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-11,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-12,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-13,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-14,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-15,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-16,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-17,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-18,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-19,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-20,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-21,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-22,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-23,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-24,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-25,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-26,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-27,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-28,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-29,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-30,Kodiak Island Borough,Alaska,02150,1,0 +2020-05-31,Kodiak Island Borough,Alaska,02150,1,0 +2020-06-01,Kodiak Island Borough,Alaska,02150,1,0 +2020-06-02,Kodiak Island Borough,Alaska,02150,1,0 +2020-06-03,Kodiak Island Borough,Alaska,02150,1,0 +2020-06-04,Kodiak Island Borough,Alaska,02150,2,0 +2020-06-05,Kodiak Island Borough,Alaska,02150,2,0 +2020-06-06,Kodiak Island Borough,Alaska,02150,2,0 +2020-06-07,Kodiak Island Borough,Alaska,02150,2,0 +2020-06-08,Kodiak Island Borough,Alaska,02150,2,0 +2020-06-09,Kodiak Island Borough,Alaska,02150,2,0 +2020-06-10,Kodiak Island Borough,Alaska,02150,2,0 +2020-06-11,Kodiak Island Borough,Alaska,02150,3,0 +2020-06-12,Kodiak Island Borough,Alaska,02150,3,0 +2020-06-13,Kodiak Island Borough,Alaska,02150,4,0 +2020-06-14,Kodiak Island Borough,Alaska,02150,4,0 +2020-06-15,Kodiak Island Borough,Alaska,02150,4,0 +2020-06-16,Kodiak Island Borough,Alaska,02150,4,0 +2020-06-17,Kodiak Island Borough,Alaska,02150,5,0 +2020-06-18,Kodiak Island Borough,Alaska,02150,5,0 +2020-06-19,Kodiak Island Borough,Alaska,02150,5,0 +2020-06-20,Kodiak Island Borough,Alaska,02150,5,0 +2020-06-21,Kodiak Island Borough,Alaska,02150,5,0 +2020-06-22,Kodiak Island Borough,Alaska,02150,5,0 +2020-06-23,Kodiak Island Borough,Alaska,02150,6,0 +2020-06-24,Kodiak Island Borough,Alaska,02150,7,0 +2020-06-25,Kodiak Island Borough,Alaska,02150,7,0 +2020-06-26,Kodiak Island Borough,Alaska,02150,7,0 +2020-06-27,Kodiak Island Borough,Alaska,02150,7,0 +2020-06-28,Kodiak Island Borough,Alaska,02150,7,0 +2020-06-29,Kodiak Island Borough,Alaska,02150,7,0 +2020-06-30,Kodiak Island Borough,Alaska,02150,7,0 +2020-07-01,Kodiak Island Borough,Alaska,02150,7,0 +2020-07-02,Kodiak Island Borough,Alaska,02150,9,0 +2020-07-03,Kodiak Island Borough,Alaska,02150,9,0 +2020-07-04,Kodiak Island Borough,Alaska,02150,9,0 +2020-07-05,Kodiak Island Borough,Alaska,02150,9,0 +2020-07-06,Kodiak Island Borough,Alaska,02150,9,0 +2020-07-07,Kodiak Island Borough,Alaska,02150,9,0 +2020-07-08,Kodiak Island Borough,Alaska,02150,9,0 +2020-07-09,Kodiak Island Borough,Alaska,02150,10,0 +2020-07-03,Kusilvak Census Area,Alaska,02158,1,0 +2020-07-04,Kusilvak Census Area,Alaska,02158,1,0 +2020-07-05,Kusilvak Census Area,Alaska,02158,1,0 +2020-07-06,Kusilvak Census Area,Alaska,02158,1,0 +2020-07-07,Kusilvak Census Area,Alaska,02158,1,0 +2020-07-08,Kusilvak Census Area,Alaska,02158,2,0 +2020-07-09,Kusilvak Census Area,Alaska,02158,2,0 +2020-06-05,Lake and Peninsula Borough,Alaska,02164,1,0 +2020-06-06,Lake and Peninsula Borough,Alaska,02164,1,0 +2020-06-07,Lake and Peninsula Borough,Alaska,02164,1,0 +2020-06-08,Lake and Peninsula Borough,Alaska,02164,1,0 +2020-06-09,Lake and Peninsula Borough,Alaska,02164,1,0 +2020-06-10,Lake and Peninsula Borough,Alaska,02164,1,0 +2020-06-11,Lake and Peninsula Borough,Alaska,02164,1,0 +2020-06-12,Lake and Peninsula Borough,Alaska,02164,1,0 +2020-06-13,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-14,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-15,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-16,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-17,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-18,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-19,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-20,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-21,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-22,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-23,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-24,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-25,Lake and Peninsula Borough,Alaska,02164,2,0 +2020-06-26,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-06-27,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-06-28,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-06-29,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-06-30,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-07-01,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-07-02,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-07-03,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-07-04,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-07-05,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-07-06,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-07-07,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-07-08,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-07-09,Lake and Peninsula Borough,Alaska,02164,3,0 +2020-03-23,Matanuska-Susitna Borough,Alaska,02170,2,0 +2020-03-24,Matanuska-Susitna Borough,Alaska,02170,2,0 +2020-03-25,Matanuska-Susitna Borough,Alaska,02170,2,0 +2020-03-26,Matanuska-Susitna Borough,Alaska,02170,2,0 +2020-03-27,Matanuska-Susitna Borough,Alaska,02170,2,0 +2020-03-28,Matanuska-Susitna Borough,Alaska,02170,2,0 +2020-03-29,Matanuska-Susitna Borough,Alaska,02170,2,0 +2020-03-30,Matanuska-Susitna Borough,Alaska,02170,3,0 +2020-03-31,Matanuska-Susitna Borough,Alaska,02170,3,0 +2020-04-01,Matanuska-Susitna Borough,Alaska,02170,4,0 +2020-04-02,Matanuska-Susitna Borough,Alaska,02170,4,0 +2020-04-03,Matanuska-Susitna Borough,Alaska,02170,4,0 +2020-04-04,Matanuska-Susitna Borough,Alaska,02170,4,0 +2020-04-05,Matanuska-Susitna Borough,Alaska,02170,4,0 +2020-04-06,Matanuska-Susitna Borough,Alaska,02170,4,0 +2020-04-07,Matanuska-Susitna Borough,Alaska,02170,4,0 +2020-04-08,Matanuska-Susitna Borough,Alaska,02170,5,0 +2020-04-09,Matanuska-Susitna Borough,Alaska,02170,6,0 +2020-04-10,Matanuska-Susitna Borough,Alaska,02170,9,0 +2020-04-11,Matanuska-Susitna Borough,Alaska,02170,10,0 +2020-04-12,Matanuska-Susitna Borough,Alaska,02170,14,0 +2020-04-13,Matanuska-Susitna Borough,Alaska,02170,14,0 +2020-04-14,Matanuska-Susitna Borough,Alaska,02170,15,1 +2020-04-15,Matanuska-Susitna Borough,Alaska,02170,15,1 +2020-04-16,Matanuska-Susitna Borough,Alaska,02170,15,1 +2020-04-17,Matanuska-Susitna Borough,Alaska,02170,15,1 +2020-04-18,Matanuska-Susitna Borough,Alaska,02170,17,1 +2020-04-19,Matanuska-Susitna Borough,Alaska,02170,18,1 +2020-04-20,Matanuska-Susitna Borough,Alaska,02170,19,1 +2020-04-21,Matanuska-Susitna Borough,Alaska,02170,19,1 +2020-04-22,Matanuska-Susitna Borough,Alaska,02170,20,1 +2020-04-23,Matanuska-Susitna Borough,Alaska,02170,20,1 +2020-04-24,Matanuska-Susitna Borough,Alaska,02170,20,1 +2020-04-25,Matanuska-Susitna Borough,Alaska,02170,20,1 +2020-04-26,Matanuska-Susitna Borough,Alaska,02170,20,1 +2020-04-27,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-04-28,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-04-29,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-04-30,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-01,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-02,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-03,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-04,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-05,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-06,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-07,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-08,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-09,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-10,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-11,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-12,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-13,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-14,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-15,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-16,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-17,Matanuska-Susitna Borough,Alaska,02170,21,1 +2020-05-18,Matanuska-Susitna Borough,Alaska,02170,22,1 +2020-05-19,Matanuska-Susitna Borough,Alaska,02170,22,1 +2020-05-20,Matanuska-Susitna Borough,Alaska,02170,22,1 +2020-05-21,Matanuska-Susitna Borough,Alaska,02170,22,1 +2020-05-22,Matanuska-Susitna Borough,Alaska,02170,22,1 +2020-05-23,Matanuska-Susitna Borough,Alaska,02170,24,1 +2020-05-24,Matanuska-Susitna Borough,Alaska,02170,24,1 +2020-05-25,Matanuska-Susitna Borough,Alaska,02170,24,1 +2020-05-26,Matanuska-Susitna Borough,Alaska,02170,24,1 +2020-05-27,Matanuska-Susitna Borough,Alaska,02170,24,1 +2020-05-28,Matanuska-Susitna Borough,Alaska,02170,24,1 +2020-05-29,Matanuska-Susitna Borough,Alaska,02170,24,1 +2020-05-30,Matanuska-Susitna Borough,Alaska,02170,25,1 +2020-05-31,Matanuska-Susitna Borough,Alaska,02170,29,1 +2020-06-01,Matanuska-Susitna Borough,Alaska,02170,29,1 +2020-06-02,Matanuska-Susitna Borough,Alaska,02170,29,1 +2020-06-03,Matanuska-Susitna Borough,Alaska,02170,34,1 +2020-06-04,Matanuska-Susitna Borough,Alaska,02170,35,1 +2020-06-05,Matanuska-Susitna Borough,Alaska,02170,35,1 +2020-06-06,Matanuska-Susitna Borough,Alaska,02170,35,1 +2020-06-07,Matanuska-Susitna Borough,Alaska,02170,35,1 +2020-06-08,Matanuska-Susitna Borough,Alaska,02170,37,1 +2020-06-09,Matanuska-Susitna Borough,Alaska,02170,37,1 +2020-06-10,Matanuska-Susitna Borough,Alaska,02170,38,1 +2020-06-11,Matanuska-Susitna Borough,Alaska,02170,40,1 +2020-06-12,Matanuska-Susitna Borough,Alaska,02170,42,1 +2020-06-13,Matanuska-Susitna Borough,Alaska,02170,44,1 +2020-06-14,Matanuska-Susitna Borough,Alaska,02170,45,1 +2020-06-15,Matanuska-Susitna Borough,Alaska,02170,46,1 +2020-06-16,Matanuska-Susitna Borough,Alaska,02170,47,1 +2020-06-17,Matanuska-Susitna Borough,Alaska,02170,49,1 +2020-06-18,Matanuska-Susitna Borough,Alaska,02170,52,1 +2020-06-19,Matanuska-Susitna Borough,Alaska,02170,54,1 +2020-06-20,Matanuska-Susitna Borough,Alaska,02170,55,1 +2020-06-21,Matanuska-Susitna Borough,Alaska,02170,56,1 +2020-06-22,Matanuska-Susitna Borough,Alaska,02170,58,1 +2020-06-23,Matanuska-Susitna Borough,Alaska,02170,60,1 +2020-06-24,Matanuska-Susitna Borough,Alaska,02170,62,1 +2020-06-25,Matanuska-Susitna Borough,Alaska,02170,65,1 +2020-06-26,Matanuska-Susitna Borough,Alaska,02170,70,1 +2020-06-27,Matanuska-Susitna Borough,Alaska,02170,73,1 +2020-06-28,Matanuska-Susitna Borough,Alaska,02170,77,1 +2020-06-29,Matanuska-Susitna Borough,Alaska,02170,81,1 +2020-06-30,Matanuska-Susitna Borough,Alaska,02170,84,1 +2020-07-01,Matanuska-Susitna Borough,Alaska,02170,91,1 +2020-07-02,Matanuska-Susitna Borough,Alaska,02170,105,1 +2020-07-03,Matanuska-Susitna Borough,Alaska,02170,110,1 +2020-07-04,Matanuska-Susitna Borough,Alaska,02170,117,1 +2020-07-05,Matanuska-Susitna Borough,Alaska,02170,118,1 +2020-07-06,Matanuska-Susitna Borough,Alaska,02170,119,1 +2020-07-07,Matanuska-Susitna Borough,Alaska,02170,121,2 +2020-07-08,Matanuska-Susitna Borough,Alaska,02170,124,2 +2020-07-09,Matanuska-Susitna Borough,Alaska,02170,130,2 +2020-04-15,Nome Census Area,Alaska,02180,1,0 +2020-04-16,Nome Census Area,Alaska,02180,1,0 +2020-04-17,Nome Census Area,Alaska,02180,1,0 +2020-04-18,Nome Census Area,Alaska,02180,1,0 +2020-04-19,Nome Census Area,Alaska,02180,1,0 +2020-04-20,Nome Census Area,Alaska,02180,1,0 +2020-04-21,Nome Census Area,Alaska,02180,1,0 +2020-04-22,Nome Census Area,Alaska,02180,1,0 +2020-04-23,Nome Census Area,Alaska,02180,1,0 +2020-04-24,Nome Census Area,Alaska,02180,1,0 +2020-04-25,Nome Census Area,Alaska,02180,1,0 +2020-04-26,Nome Census Area,Alaska,02180,1,0 +2020-04-27,Nome Census Area,Alaska,02180,1,0 +2020-04-28,Nome Census Area,Alaska,02180,1,0 +2020-04-29,Nome Census Area,Alaska,02180,1,0 +2020-04-30,Nome Census Area,Alaska,02180,1,0 +2020-05-01,Nome Census Area,Alaska,02180,1,0 +2020-05-02,Nome Census Area,Alaska,02180,1,0 +2020-05-03,Nome Census Area,Alaska,02180,1,0 +2020-05-04,Nome Census Area,Alaska,02180,1,0 +2020-05-05,Nome Census Area,Alaska,02180,1,0 +2020-05-06,Nome Census Area,Alaska,02180,1,0 +2020-05-07,Nome Census Area,Alaska,02180,1,0 +2020-05-08,Nome Census Area,Alaska,02180,1,0 +2020-05-09,Nome Census Area,Alaska,02180,1,0 +2020-05-10,Nome Census Area,Alaska,02180,1,0 +2020-05-11,Nome Census Area,Alaska,02180,1,0 +2020-05-12,Nome Census Area,Alaska,02180,1,0 +2020-05-13,Nome Census Area,Alaska,02180,1,0 +2020-05-14,Nome Census Area,Alaska,02180,1,0 +2020-05-15,Nome Census Area,Alaska,02180,1,0 +2020-05-16,Nome Census Area,Alaska,02180,1,0 +2020-05-17,Nome Census Area,Alaska,02180,1,0 +2020-05-18,Nome Census Area,Alaska,02180,1,0 +2020-05-19,Nome Census Area,Alaska,02180,1,0 +2020-05-20,Nome Census Area,Alaska,02180,1,0 +2020-05-21,Nome Census Area,Alaska,02180,1,0 +2020-05-22,Nome Census Area,Alaska,02180,2,0 +2020-05-23,Nome Census Area,Alaska,02180,3,0 +2020-05-24,Nome Census Area,Alaska,02180,3,0 +2020-05-25,Nome Census Area,Alaska,02180,3,0 +2020-05-26,Nome Census Area,Alaska,02180,3,0 +2020-05-27,Nome Census Area,Alaska,02180,3,0 +2020-05-28,Nome Census Area,Alaska,02180,3,0 +2020-05-29,Nome Census Area,Alaska,02180,3,0 +2020-05-30,Nome Census Area,Alaska,02180,3,0 +2020-05-31,Nome Census Area,Alaska,02180,3,0 +2020-06-01,Nome Census Area,Alaska,02180,3,0 +2020-06-02,Nome Census Area,Alaska,02180,3,0 +2020-06-03,Nome Census Area,Alaska,02180,3,0 +2020-06-04,Nome Census Area,Alaska,02180,3,0 +2020-06-05,Nome Census Area,Alaska,02180,3,0 +2020-06-06,Nome Census Area,Alaska,02180,3,0 +2020-06-07,Nome Census Area,Alaska,02180,3,0 +2020-06-08,Nome Census Area,Alaska,02180,3,0 +2020-06-09,Nome Census Area,Alaska,02180,4,0 +2020-06-10,Nome Census Area,Alaska,02180,4,0 +2020-06-11,Nome Census Area,Alaska,02180,4,0 +2020-06-12,Nome Census Area,Alaska,02180,4,0 +2020-06-13,Nome Census Area,Alaska,02180,5,0 +2020-06-14,Nome Census Area,Alaska,02180,5,0 +2020-06-15,Nome Census Area,Alaska,02180,5,0 +2020-06-16,Nome Census Area,Alaska,02180,5,0 +2020-06-17,Nome Census Area,Alaska,02180,6,0 +2020-06-18,Nome Census Area,Alaska,02180,6,0 +2020-06-19,Nome Census Area,Alaska,02180,6,0 +2020-06-20,Nome Census Area,Alaska,02180,6,0 +2020-06-21,Nome Census Area,Alaska,02180,6,0 +2020-06-22,Nome Census Area,Alaska,02180,6,0 +2020-06-23,Nome Census Area,Alaska,02180,7,0 +2020-06-24,Nome Census Area,Alaska,02180,7,0 +2020-06-25,Nome Census Area,Alaska,02180,7,0 +2020-06-26,Nome Census Area,Alaska,02180,8,0 +2020-06-27,Nome Census Area,Alaska,02180,8,0 +2020-06-28,Nome Census Area,Alaska,02180,8,0 +2020-06-29,Nome Census Area,Alaska,02180,9,0 +2020-06-30,Nome Census Area,Alaska,02180,9,0 +2020-07-01,Nome Census Area,Alaska,02180,10,0 +2020-07-02,Nome Census Area,Alaska,02180,10,0 +2020-07-03,Nome Census Area,Alaska,02180,11,0 +2020-07-04,Nome Census Area,Alaska,02180,11,0 +2020-07-05,Nome Census Area,Alaska,02180,11,0 +2020-07-06,Nome Census Area,Alaska,02180,11,0 +2020-07-07,Nome Census Area,Alaska,02180,11,0 +2020-07-08,Nome Census Area,Alaska,02180,11,0 +2020-07-09,Nome Census Area,Alaska,02180,12,0 +2020-05-28,North Slope Borough,Alaska,02185,1,0 +2020-05-29,North Slope Borough,Alaska,02185,1,0 +2020-05-30,North Slope Borough,Alaska,02185,1,0 +2020-05-31,North Slope Borough,Alaska,02185,1,0 +2020-06-01,North Slope Borough,Alaska,02185,1,0 +2020-06-02,North Slope Borough,Alaska,02185,1,0 +2020-06-03,North Slope Borough,Alaska,02185,1,0 +2020-06-04,North Slope Borough,Alaska,02185,1,0 +2020-06-05,North Slope Borough,Alaska,02185,1,0 +2020-06-06,North Slope Borough,Alaska,02185,1,0 +2020-06-07,North Slope Borough,Alaska,02185,1,0 +2020-06-08,North Slope Borough,Alaska,02185,1,0 +2020-06-09,North Slope Borough,Alaska,02185,1,0 +2020-06-10,North Slope Borough,Alaska,02185,1,0 +2020-06-11,North Slope Borough,Alaska,02185,1,0 +2020-06-12,North Slope Borough,Alaska,02185,1,0 +2020-06-13,North Slope Borough,Alaska,02185,1,0 +2020-06-14,North Slope Borough,Alaska,02185,1,0 +2020-06-15,North Slope Borough,Alaska,02185,1,0 +2020-06-16,North Slope Borough,Alaska,02185,1,0 +2020-06-17,North Slope Borough,Alaska,02185,2,0 +2020-06-18,North Slope Borough,Alaska,02185,2,0 +2020-06-19,North Slope Borough,Alaska,02185,3,0 +2020-06-20,North Slope Borough,Alaska,02185,3,0 +2020-06-21,North Slope Borough,Alaska,02185,3,0 +2020-06-22,North Slope Borough,Alaska,02185,4,0 +2020-06-23,North Slope Borough,Alaska,02185,4,0 +2020-06-24,North Slope Borough,Alaska,02185,4,0 +2020-06-25,North Slope Borough,Alaska,02185,4,0 +2020-06-26,North Slope Borough,Alaska,02185,4,0 +2020-06-27,North Slope Borough,Alaska,02185,4,0 +2020-06-28,North Slope Borough,Alaska,02185,4,0 +2020-06-29,North Slope Borough,Alaska,02185,4,0 +2020-06-30,North Slope Borough,Alaska,02185,4,0 +2020-07-01,North Slope Borough,Alaska,02185,4,0 +2020-07-02,North Slope Borough,Alaska,02185,4,0 +2020-07-03,North Slope Borough,Alaska,02185,4,0 +2020-07-04,North Slope Borough,Alaska,02185,4,0 +2020-07-05,North Slope Borough,Alaska,02185,4,0 +2020-07-06,North Slope Borough,Alaska,02185,4,0 +2020-07-07,North Slope Borough,Alaska,02185,4,0 +2020-07-08,North Slope Borough,Alaska,02185,4,0 +2020-07-09,North Slope Borough,Alaska,02185,4,0 +2020-05-20,Northwest Arctic Borough,Alaska,02188,1,0 +2020-05-21,Northwest Arctic Borough,Alaska,02188,1,0 +2020-05-22,Northwest Arctic Borough,Alaska,02188,1,0 +2020-05-23,Northwest Arctic Borough,Alaska,02188,2,0 +2020-05-24,Northwest Arctic Borough,Alaska,02188,2,0 +2020-05-25,Northwest Arctic Borough,Alaska,02188,2,0 +2020-05-26,Northwest Arctic Borough,Alaska,02188,2,0 +2020-05-27,Northwest Arctic Borough,Alaska,02188,2,0 +2020-05-28,Northwest Arctic Borough,Alaska,02188,2,0 +2020-05-29,Northwest Arctic Borough,Alaska,02188,2,0 +2020-05-30,Northwest Arctic Borough,Alaska,02188,2,0 +2020-05-31,Northwest Arctic Borough,Alaska,02188,2,0 +2020-06-01,Northwest Arctic Borough,Alaska,02188,2,0 +2020-06-02,Northwest Arctic Borough,Alaska,02188,2,0 +2020-06-03,Northwest Arctic Borough,Alaska,02188,2,0 +2020-06-04,Northwest Arctic Borough,Alaska,02188,2,0 +2020-06-05,Northwest Arctic Borough,Alaska,02188,2,0 +2020-06-06,Northwest Arctic Borough,Alaska,02188,2,0 +2020-06-07,Northwest Arctic Borough,Alaska,02188,2,0 +2020-06-08,Northwest Arctic Borough,Alaska,02188,2,0 +2020-06-09,Northwest Arctic Borough,Alaska,02188,3,0 +2020-06-10,Northwest Arctic Borough,Alaska,02188,3,0 +2020-06-11,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-12,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-13,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-14,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-15,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-16,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-17,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-18,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-19,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-20,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-21,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-22,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-23,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-24,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-25,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-26,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-27,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-28,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-29,Northwest Arctic Borough,Alaska,02188,4,0 +2020-06-30,Northwest Arctic Borough,Alaska,02188,4,0 +2020-07-01,Northwest Arctic Borough,Alaska,02188,5,0 +2020-07-02,Northwest Arctic Borough,Alaska,02188,5,0 +2020-07-03,Northwest Arctic Borough,Alaska,02188,5,0 +2020-07-04,Northwest Arctic Borough,Alaska,02188,5,0 +2020-07-05,Northwest Arctic Borough,Alaska,02188,5,0 +2020-07-06,Northwest Arctic Borough,Alaska,02188,5,0 +2020-07-07,Northwest Arctic Borough,Alaska,02188,5,0 +2020-07-08,Northwest Arctic Borough,Alaska,02188,6,0 +2020-07-09,Northwest Arctic Borough,Alaska,02188,6,0 +2020-04-06,Petersburg Borough,Alaska,02195,1,0 +2020-04-07,Petersburg Borough,Alaska,02195,1,0 +2020-04-08,Petersburg Borough,Alaska,02195,1,0 +2020-04-09,Petersburg Borough,Alaska,02195,1,0 +2020-04-10,Petersburg Borough,Alaska,02195,1,0 +2020-04-11,Petersburg Borough,Alaska,02195,1,0 +2020-04-12,Petersburg Borough,Alaska,02195,1,0 +2020-04-13,Petersburg Borough,Alaska,02195,1,0 +2020-04-14,Petersburg Borough,Alaska,02195,1,0 +2020-04-15,Petersburg Borough,Alaska,02195,1,0 +2020-04-16,Petersburg Borough,Alaska,02195,1,0 +2020-04-17,Petersburg Borough,Alaska,02195,1,0 +2020-04-18,Petersburg Borough,Alaska,02195,1,0 +2020-04-19,Petersburg Borough,Alaska,02195,2,0 +2020-04-20,Petersburg Borough,Alaska,02195,2,0 +2020-04-21,Petersburg Borough,Alaska,02195,2,0 +2020-04-22,Petersburg Borough,Alaska,02195,2,0 +2020-04-23,Petersburg Borough,Alaska,02195,2,0 +2020-04-24,Petersburg Borough,Alaska,02195,2,0 +2020-04-25,Petersburg Borough,Alaska,02195,2,0 +2020-04-26,Petersburg Borough,Alaska,02195,2,0 +2020-04-27,Petersburg Borough,Alaska,02195,2,0 +2020-04-28,Petersburg Borough,Alaska,02195,3,0 +2020-04-29,Petersburg Borough,Alaska,02195,3,0 +2020-04-30,Petersburg Borough,Alaska,02195,3,0 +2020-05-01,Petersburg Borough,Alaska,02195,3,0 +2020-05-02,Petersburg Borough,Alaska,02195,3,0 +2020-05-03,Petersburg Borough,Alaska,02195,3,0 +2020-05-04,Petersburg Borough,Alaska,02195,3,0 +2020-05-05,Petersburg Borough,Alaska,02195,3,0 +2020-05-06,Petersburg Borough,Alaska,02195,3,0 +2020-05-07,Petersburg Borough,Alaska,02195,3,0 +2020-05-08,Petersburg Borough,Alaska,02195,3,0 +2020-05-09,Petersburg Borough,Alaska,02195,3,0 +2020-05-10,Petersburg Borough,Alaska,02195,3,0 +2020-05-11,Petersburg Borough,Alaska,02195,3,0 +2020-05-12,Petersburg Borough,Alaska,02195,3,0 +2020-05-13,Petersburg Borough,Alaska,02195,3,0 +2020-05-14,Petersburg Borough,Alaska,02195,3,0 +2020-05-15,Petersburg Borough,Alaska,02195,3,0 +2020-05-16,Petersburg Borough,Alaska,02195,3,0 +2020-05-17,Petersburg Borough,Alaska,02195,3,0 +2020-05-18,Petersburg Borough,Alaska,02195,3,0 +2020-05-19,Petersburg Borough,Alaska,02195,3,0 +2020-05-20,Petersburg Borough,Alaska,02195,3,0 +2020-05-21,Petersburg Borough,Alaska,02195,3,0 +2020-05-22,Petersburg Borough,Alaska,02195,3,0 +2020-05-23,Petersburg Borough,Alaska,02195,3,0 +2020-05-24,Petersburg Borough,Alaska,02195,3,0 +2020-05-25,Petersburg Borough,Alaska,02195,3,0 +2020-05-26,Petersburg Borough,Alaska,02195,3,0 +2020-05-27,Petersburg Borough,Alaska,02195,3,0 +2020-05-28,Petersburg Borough,Alaska,02195,3,0 +2020-05-29,Petersburg Borough,Alaska,02195,3,0 +2020-05-30,Petersburg Borough,Alaska,02195,3,0 +2020-05-31,Petersburg Borough,Alaska,02195,3,0 +2020-06-01,Petersburg Borough,Alaska,02195,3,0 +2020-06-02,Petersburg Borough,Alaska,02195,3,0 +2020-06-03,Petersburg Borough,Alaska,02195,3,0 +2020-06-04,Petersburg Borough,Alaska,02195,3,0 +2020-06-05,Petersburg Borough,Alaska,02195,3,0 +2020-06-06,Petersburg Borough,Alaska,02195,3,0 +2020-06-07,Petersburg Borough,Alaska,02195,3,0 +2020-06-08,Petersburg Borough,Alaska,02195,3,0 +2020-06-09,Petersburg Borough,Alaska,02195,3,0 +2020-06-10,Petersburg Borough,Alaska,02195,3,0 +2020-06-11,Petersburg Borough,Alaska,02195,3,0 +2020-06-12,Petersburg Borough,Alaska,02195,3,0 +2020-06-13,Petersburg Borough,Alaska,02195,3,0 +2020-06-14,Petersburg Borough,Alaska,02195,3,0 +2020-06-15,Petersburg Borough,Alaska,02195,3,0 +2020-06-16,Petersburg Borough,Alaska,02195,3,0 +2020-06-17,Petersburg Borough,Alaska,02195,3,0 +2020-06-18,Petersburg Borough,Alaska,02195,3,0 +2020-06-19,Petersburg Borough,Alaska,02195,3,0 +2020-06-20,Petersburg Borough,Alaska,02195,3,0 +2020-06-21,Petersburg Borough,Alaska,02195,3,0 +2020-06-22,Petersburg Borough,Alaska,02195,3,0 +2020-06-23,Petersburg Borough,Alaska,02195,4,0 +2020-06-24,Petersburg Borough,Alaska,02195,4,0 +2020-06-25,Petersburg Borough,Alaska,02195,4,0 +2020-06-26,Petersburg Borough,Alaska,02195,4,0 +2020-06-27,Petersburg Borough,Alaska,02195,4,0 +2020-06-28,Petersburg Borough,Alaska,02195,4,0 +2020-06-29,Petersburg Borough,Alaska,02195,4,0 +2020-06-30,Petersburg Borough,Alaska,02195,4,0 +2020-07-01,Petersburg Borough,Alaska,02195,4,0 +2020-07-02,Petersburg Borough,Alaska,02195,5,0 +2020-07-03,Petersburg Borough,Alaska,02195,5,0 +2020-07-04,Petersburg Borough,Alaska,02195,6,0 +2020-07-05,Petersburg Borough,Alaska,02195,7,0 +2020-07-06,Petersburg Borough,Alaska,02195,7,0 +2020-07-07,Petersburg Borough,Alaska,02195,7,0 +2020-07-08,Petersburg Borough,Alaska,02195,7,0 +2020-07-09,Petersburg Borough,Alaska,02195,8,0 +2020-04-11,Prince of Wales-Hyder Census Area,Alaska,02198,1,0 +2020-04-12,Prince of Wales-Hyder Census Area,Alaska,02198,1,0 +2020-04-13,Prince of Wales-Hyder Census Area,Alaska,02198,1,0 +2020-04-14,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-15,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-16,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-17,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-18,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-19,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-20,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-21,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-22,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-23,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-24,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-25,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-26,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-27,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-28,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-29,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-04-30,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-01,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-02,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-03,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-04,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-05,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-06,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-07,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-08,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-09,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-10,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-11,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-12,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-13,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-14,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-15,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-16,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-17,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-18,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-19,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-20,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-21,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-22,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-23,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-24,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-25,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-26,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-27,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-28,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-29,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-30,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-05-31,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-01,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-02,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-03,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-04,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-05,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-06,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-07,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-08,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-09,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-10,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-11,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-12,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-13,Prince of Wales-Hyder Census Area,Alaska,02198,4,0 +2020-06-14,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-15,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-16,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-17,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-18,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-19,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-20,Prince of Wales-Hyder Census Area,Alaska,02198,2,0 +2020-06-21,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-06-22,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-06-23,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-06-24,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-06-25,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-06-26,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-06-27,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-06-28,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-06-29,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-06-30,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-07-01,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-07-02,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-07-03,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-07-04,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-07-05,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-07-06,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-07-07,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-07-08,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-07-09,Prince of Wales-Hyder Census Area,Alaska,02198,3,0 +2020-04-26,Sitka City and Borough,Alaska,02220,1,0 +2020-04-27,Sitka City and Borough,Alaska,02220,1,0 +2020-04-28,Sitka City and Borough,Alaska,02220,1,0 +2020-04-29,Sitka City and Borough,Alaska,02220,1,0 +2020-04-30,Sitka City and Borough,Alaska,02220,1,0 +2020-05-01,Sitka City and Borough,Alaska,02220,1,0 +2020-05-02,Sitka City and Borough,Alaska,02220,1,0 +2020-05-03,Sitka City and Borough,Alaska,02220,1,0 +2020-05-04,Sitka City and Borough,Alaska,02220,1,0 +2020-05-05,Sitka City and Borough,Alaska,02220,1,0 +2020-05-06,Sitka City and Borough,Alaska,02220,1,0 +2020-05-07,Sitka City and Borough,Alaska,02220,1,0 +2020-05-08,Sitka City and Borough,Alaska,02220,1,0 +2020-05-09,Sitka City and Borough,Alaska,02220,1,0 +2020-05-10,Sitka City and Borough,Alaska,02220,1,0 +2020-05-11,Sitka City and Borough,Alaska,02220,1,0 +2020-05-12,Sitka City and Borough,Alaska,02220,1,0 +2020-05-13,Sitka City and Borough,Alaska,02220,1,0 +2020-05-14,Sitka City and Borough,Alaska,02220,1,0 +2020-05-15,Sitka City and Borough,Alaska,02220,1,0 +2020-05-16,Sitka City and Borough,Alaska,02220,1,0 +2020-05-17,Sitka City and Borough,Alaska,02220,1,0 +2020-05-18,Sitka City and Borough,Alaska,02220,1,0 +2020-05-19,Sitka City and Borough,Alaska,02220,1,0 +2020-05-20,Sitka City and Borough,Alaska,02220,1,0 +2020-05-21,Sitka City and Borough,Alaska,02220,1,0 +2020-05-22,Sitka City and Borough,Alaska,02220,1,0 +2020-05-23,Sitka City and Borough,Alaska,02220,1,0 +2020-05-24,Sitka City and Borough,Alaska,02220,1,0 +2020-05-25,Sitka City and Borough,Alaska,02220,1,0 +2020-05-26,Sitka City and Borough,Alaska,02220,2,0 +2020-05-27,Sitka City and Borough,Alaska,02220,2,0 +2020-05-28,Sitka City and Borough,Alaska,02220,2,0 +2020-05-29,Sitka City and Borough,Alaska,02220,2,0 +2020-05-30,Sitka City and Borough,Alaska,02220,2,0 +2020-05-31,Sitka City and Borough,Alaska,02220,2,0 +2020-06-01,Sitka City and Borough,Alaska,02220,2,0 +2020-06-02,Sitka City and Borough,Alaska,02220,2,0 +2020-06-03,Sitka City and Borough,Alaska,02220,2,0 +2020-06-04,Sitka City and Borough,Alaska,02220,3,0 +2020-06-05,Sitka City and Borough,Alaska,02220,3,0 +2020-06-06,Sitka City and Borough,Alaska,02220,3,0 +2020-06-07,Sitka City and Borough,Alaska,02220,3,0 +2020-06-08,Sitka City and Borough,Alaska,02220,3,0 +2020-06-09,Sitka City and Borough,Alaska,02220,3,0 +2020-06-10,Sitka City and Borough,Alaska,02220,4,0 +2020-06-11,Sitka City and Borough,Alaska,02220,5,0 +2020-06-12,Sitka City and Borough,Alaska,02220,9,0 +2020-06-13,Sitka City and Borough,Alaska,02220,11,0 +2020-06-14,Sitka City and Borough,Alaska,02220,11,0 +2020-06-15,Sitka City and Borough,Alaska,02220,11,0 +2020-06-16,Sitka City and Borough,Alaska,02220,10,0 +2020-06-17,Sitka City and Borough,Alaska,02220,11,0 +2020-06-18,Sitka City and Borough,Alaska,02220,12,0 +2020-06-19,Sitka City and Borough,Alaska,02220,12,0 +2020-06-20,Sitka City and Borough,Alaska,02220,14,0 +2020-06-21,Sitka City and Borough,Alaska,02220,14,0 +2020-06-22,Sitka City and Borough,Alaska,02220,14,0 +2020-06-23,Sitka City and Borough,Alaska,02220,14,0 +2020-06-24,Sitka City and Borough,Alaska,02220,14,0 +2020-06-25,Sitka City and Borough,Alaska,02220,14,0 +2020-06-26,Sitka City and Borough,Alaska,02220,15,0 +2020-06-27,Sitka City and Borough,Alaska,02220,15,0 +2020-06-28,Sitka City and Borough,Alaska,02220,15,0 +2020-06-29,Sitka City and Borough,Alaska,02220,15,0 +2020-06-30,Sitka City and Borough,Alaska,02220,17,0 +2020-07-01,Sitka City and Borough,Alaska,02220,17,0 +2020-07-02,Sitka City and Borough,Alaska,02220,18,0 +2020-07-03,Sitka City and Borough,Alaska,02220,18,0 +2020-07-04,Sitka City and Borough,Alaska,02220,18,0 +2020-07-05,Sitka City and Borough,Alaska,02220,18,0 +2020-07-06,Sitka City and Borough,Alaska,02220,18,0 +2020-07-07,Sitka City and Borough,Alaska,02220,18,0 +2020-07-08,Sitka City and Borough,Alaska,02220,18,0 +2020-07-09,Sitka City and Borough,Alaska,02220,18,0 +2020-04-03,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-04,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-05,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-06,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-07,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-08,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-09,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-10,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-11,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-12,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-13,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-14,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-15,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-16,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-17,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-18,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-19,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-20,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-21,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-22,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-23,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-24,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-25,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-26,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-27,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-28,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-29,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-04-30,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-05-01,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-05-02,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-05-03,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-05-04,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-05-05,Southeast Fairbanks Census Area,Alaska,02240,1,0 +2020-05-06,Southeast Fairbanks Census Area,Alaska,02240,2,0 +2020-05-07,Southeast Fairbanks Census Area,Alaska,02240,2,0 +2020-05-08,Southeast Fairbanks Census Area,Alaska,02240,2,0 +2020-05-09,Southeast Fairbanks Census Area,Alaska,02240,2,0 +2020-05-10,Southeast Fairbanks Census Area,Alaska,02240,2,0 +2020-05-11,Southeast Fairbanks Census Area,Alaska,02240,2,0 +2020-05-12,Southeast Fairbanks Census Area,Alaska,02240,2,0 +2020-05-13,Southeast Fairbanks Census Area,Alaska,02240,2,0 +2020-05-14,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-15,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-16,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-17,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-18,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-19,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-20,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-21,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-22,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-23,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-24,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-25,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-26,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-27,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-28,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-29,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-30,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-05-31,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-06-01,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-06-02,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-06-03,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-06-04,Southeast Fairbanks Census Area,Alaska,02240,3,0 +2020-06-05,Southeast Fairbanks Census Area,Alaska,02240,4,0 +2020-06-06,Southeast Fairbanks Census Area,Alaska,02240,4,0 +2020-06-07,Southeast Fairbanks Census Area,Alaska,02240,4,0 +2020-06-08,Southeast Fairbanks Census Area,Alaska,02240,4,0 +2020-06-09,Southeast Fairbanks Census Area,Alaska,02240,4,0 +2020-06-10,Southeast Fairbanks Census Area,Alaska,02240,4,0 +2020-06-11,Southeast Fairbanks Census Area,Alaska,02240,4,0 +2020-06-12,Southeast Fairbanks Census Area,Alaska,02240,4,0 +2020-06-13,Southeast Fairbanks Census Area,Alaska,02240,4,0 +2020-06-14,Southeast Fairbanks Census Area,Alaska,02240,4,0 +2020-06-15,Southeast Fairbanks Census Area,Alaska,02240,4,0 +2020-06-16,Southeast Fairbanks Census Area,Alaska,02240,4,0 +2020-06-17,Southeast Fairbanks Census Area,Alaska,02240,7,0 +2020-06-18,Southeast Fairbanks Census Area,Alaska,02240,7,0 +2020-06-19,Southeast Fairbanks Census Area,Alaska,02240,7,0 +2020-06-20,Southeast Fairbanks Census Area,Alaska,02240,7,0 +2020-06-21,Southeast Fairbanks Census Area,Alaska,02240,7,0 +2020-06-22,Southeast Fairbanks Census Area,Alaska,02240,7,0 +2020-06-23,Southeast Fairbanks Census Area,Alaska,02240,7,0 +2020-06-24,Southeast Fairbanks Census Area,Alaska,02240,7,0 +2020-06-25,Southeast Fairbanks Census Area,Alaska,02240,7,0 +2020-06-26,Southeast Fairbanks Census Area,Alaska,02240,7,0 +2020-06-27,Southeast Fairbanks Census Area,Alaska,02240,7,0 +2020-06-28,Southeast Fairbanks Census Area,Alaska,02240,11,0 +2020-06-29,Southeast Fairbanks Census Area,Alaska,02240,11,0 +2020-06-30,Southeast Fairbanks Census Area,Alaska,02240,11,0 +2020-07-01,Southeast Fairbanks Census Area,Alaska,02240,14,0 +2020-07-02,Southeast Fairbanks Census Area,Alaska,02240,16,0 +2020-07-03,Southeast Fairbanks Census Area,Alaska,02240,16,0 +2020-07-04,Southeast Fairbanks Census Area,Alaska,02240,16,0 +2020-07-05,Southeast Fairbanks Census Area,Alaska,02240,16,0 +2020-07-06,Southeast Fairbanks Census Area,Alaska,02240,16,0 +2020-07-07,Southeast Fairbanks Census Area,Alaska,02240,16,0 +2020-07-08,Southeast Fairbanks Census Area,Alaska,02240,16,0 +2020-07-09,Southeast Fairbanks Census Area,Alaska,02240,16,0 +2020-05-07,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-08,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-09,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-10,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-11,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-12,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-13,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-14,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-15,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-16,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-17,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-18,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-19,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-20,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-21,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-22,Valdez-Cordova Census Area,Alaska,02261,1,0 +2020-05-23,Valdez-Cordova Census Area,Alaska,02261,2,0 +2020-05-24,Valdez-Cordova Census Area,Alaska,02261,2,0 +2020-05-25,Valdez-Cordova Census Area,Alaska,02261,2,0 +2020-05-26,Valdez-Cordova Census Area,Alaska,02261,2,0 +2020-05-27,Valdez-Cordova Census Area,Alaska,02261,2,0 +2020-05-28,Valdez-Cordova Census Area,Alaska,02261,2,0 +2020-05-29,Valdez-Cordova Census Area,Alaska,02261,2,0 +2020-05-30,Valdez-Cordova Census Area,Alaska,02261,2,0 +2020-05-31,Valdez-Cordova Census Area,Alaska,02261,2,0 +2020-06-01,Valdez-Cordova Census Area,Alaska,02261,2,0 +2020-06-02,Valdez-Cordova Census Area,Alaska,02261,3,0 +2020-06-03,Valdez-Cordova Census Area,Alaska,02261,3,0 +2020-06-04,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-05,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-06,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-07,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-08,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-09,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-10,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-11,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-12,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-13,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-14,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-15,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-16,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-17,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-18,Valdez-Cordova Census Area,Alaska,02261,13,0 +2020-06-19,Valdez-Cordova Census Area,Alaska,02261,14,0 +2020-06-20,Valdez-Cordova Census Area,Alaska,02261,14,0 +2020-06-21,Valdez-Cordova Census Area,Alaska,02261,14,0 +2020-06-22,Valdez-Cordova Census Area,Alaska,02261,14,0 +2020-06-23,Valdez-Cordova Census Area,Alaska,02261,16,0 +2020-06-24,Valdez-Cordova Census Area,Alaska,02261,16,0 +2020-06-25,Valdez-Cordova Census Area,Alaska,02261,18,0 +2020-06-26,Valdez-Cordova Census Area,Alaska,02261,18,0 +2020-06-27,Valdez-Cordova Census Area,Alaska,02261,19,0 +2020-06-28,Valdez-Cordova Census Area,Alaska,02261,20,0 +2020-06-29,Valdez-Cordova Census Area,Alaska,02261,20,0 +2020-06-30,Valdez-Cordova Census Area,Alaska,02261,21,0 +2020-07-01,Valdez-Cordova Census Area,Alaska,02261,21,0 +2020-07-02,Valdez-Cordova Census Area,Alaska,02261,21,0 +2020-07-03,Valdez-Cordova Census Area,Alaska,02261,22,0 +2020-07-04,Valdez-Cordova Census Area,Alaska,02261,24,0 +2020-07-05,Valdez-Cordova Census Area,Alaska,02261,25,0 +2020-07-06,Valdez-Cordova Census Area,Alaska,02261,25,0 +2020-07-07,Valdez-Cordova Census Area,Alaska,02261,26,0 +2020-07-08,Valdez-Cordova Census Area,Alaska,02261,27,0 +2020-07-09,Valdez-Cordova Census Area,Alaska,02261,27,0 +2020-06-08,Wrangell City and Borough,Alaska,02275,1,0 +2020-06-09,Wrangell City and Borough,Alaska,02275,1,0 +2020-06-10,Wrangell City and Borough,Alaska,02275,1,0 +2020-06-11,Wrangell City and Borough,Alaska,02275,1,0 +2020-06-12,Wrangell City and Borough,Alaska,02275,1,0 +2020-06-13,Wrangell City and Borough,Alaska,02275,2,0 +2020-06-14,Wrangell City and Borough,Alaska,02275,2,0 +2020-06-15,Wrangell City and Borough,Alaska,02275,2,0 +2020-06-16,Wrangell City and Borough,Alaska,02275,2,0 +2020-06-17,Wrangell City and Borough,Alaska,02275,3,0 +2020-06-18,Wrangell City and Borough,Alaska,02275,3,0 +2020-06-19,Wrangell City and Borough,Alaska,02275,3,0 +2020-06-20,Wrangell City and Borough,Alaska,02275,3,0 +2020-06-21,Wrangell City and Borough,Alaska,02275,3,0 +2020-06-22,Wrangell City and Borough,Alaska,02275,3,0 +2020-06-23,Wrangell City and Borough,Alaska,02275,6,0 +2020-06-24,Wrangell City and Borough,Alaska,02275,6,0 +2020-06-25,Wrangell City and Borough,Alaska,02275,6,0 +2020-06-26,Wrangell City and Borough,Alaska,02275,8,0 +2020-06-27,Wrangell City and Borough,Alaska,02275,8,0 +2020-06-28,Wrangell City and Borough,Alaska,02275,8,0 +2020-06-29,Wrangell City and Borough,Alaska,02275,8,0 +2020-06-30,Wrangell City and Borough,Alaska,02275,8,0 +2020-07-01,Wrangell City and Borough,Alaska,02275,8,0 +2020-07-02,Wrangell City and Borough,Alaska,02275,8,0 +2020-07-03,Wrangell City and Borough,Alaska,02275,8,0 +2020-07-04,Wrangell City and Borough,Alaska,02275,8,0 +2020-07-05,Wrangell City and Borough,Alaska,02275,8,0 +2020-07-06,Wrangell City and Borough,Alaska,02275,8,0 +2020-07-07,Wrangell City and Borough,Alaska,02275,8,0 +2020-07-08,Wrangell City and Borough,Alaska,02275,8,0 +2020-07-09,Wrangell City and Borough,Alaska,02275,8,0 +2020-04-02,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-03,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-04,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-05,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-06,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-07,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-08,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-09,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-10,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-11,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-12,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-13,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-14,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-15,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-16,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-17,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-18,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-19,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-20,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-21,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-22,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-23,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-24,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-25,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-26,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-27,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-28,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-29,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-04-30,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-01,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-02,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-03,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-04,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-05,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-06,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-07,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-08,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-09,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-10,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-11,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-12,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-13,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-14,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-15,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-16,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-17,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-18,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-19,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-20,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-21,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-22,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-23,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-24,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-25,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-26,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-27,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-28,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-29,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-30,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-05-31,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-01,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-02,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-03,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-04,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-05,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-06,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-07,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-08,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-09,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-10,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-11,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-12,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-13,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-14,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-15,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-16,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-17,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-18,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-19,Yukon-Koyukuk Census Area,Alaska,02290,1,0 +2020-06-20,Yukon-Koyukuk Census Area,Alaska,02290,2,0 +2020-06-21,Yukon-Koyukuk Census Area,Alaska,02290,2,0 +2020-06-22,Yukon-Koyukuk Census Area,Alaska,02290,2,0 +2020-06-23,Yukon-Koyukuk Census Area,Alaska,02290,2,0 +2020-06-24,Yukon-Koyukuk Census Area,Alaska,02290,2,0 +2020-06-25,Yukon-Koyukuk Census Area,Alaska,02290,2,0 +2020-06-26,Yukon-Koyukuk Census Area,Alaska,02290,2,0 +2020-06-27,Yukon-Koyukuk Census Area,Alaska,02290,3,0 +2020-06-28,Yukon-Koyukuk Census Area,Alaska,02290,3,0 +2020-06-29,Yukon-Koyukuk Census Area,Alaska,02290,3,0 +2020-06-30,Yukon-Koyukuk Census Area,Alaska,02290,3,0 +2020-07-01,Yukon-Koyukuk Census Area,Alaska,02290,3,0 +2020-07-02,Yukon-Koyukuk Census Area,Alaska,02290,3,0 +2020-07-03,Yukon-Koyukuk Census Area,Alaska,02290,3,0 +2020-07-04,Yukon-Koyukuk Census Area,Alaska,02290,4,0 +2020-07-05,Yukon-Koyukuk Census Area,Alaska,02290,4,0 +2020-07-06,Yukon-Koyukuk Census Area,Alaska,02290,4,0 +2020-07-07,Yukon-Koyukuk Census Area,Alaska,02290,5,0 +2020-07-08,Yukon-Koyukuk Census Area,Alaska,02290,5,0 +2020-07-09,Yukon-Koyukuk Census Area,Alaska,02290,5,0 +2020-03-21,Apache,Arizona,04001,3,0 +2020-03-22,Apache,Arizona,04001,3,0 +2020-03-23,Apache,Arizona,04001,4,0 +2020-03-24,Apache,Arizona,04001,4,0 +2020-03-25,Apache,Arizona,04001,7,0 +2020-03-26,Apache,Arizona,04001,9,0 +2020-03-27,Apache,Arizona,04001,11,0 +2020-03-28,Apache,Arizona,04001,13,0 +2020-03-29,Apache,Arizona,04001,13,0 +2020-03-30,Apache,Arizona,04001,17,0 +2020-03-31,Apache,Arizona,04001,16,0 +2020-04-01,Apache,Arizona,04001,17,0 +2020-04-02,Apache,Arizona,04001,19,0 +2020-04-03,Apache,Arizona,04001,17,0 +2020-04-04,Apache,Arizona,04001,20,0 +2020-04-05,Apache,Arizona,04001,23,0 +2020-04-06,Apache,Arizona,04001,25,0 +2020-04-07,Apache,Arizona,04001,28,0 +2020-04-08,Apache,Arizona,04001,34,3 +2020-04-09,Apache,Arizona,04001,52,3 +2020-04-10,Apache,Arizona,04001,55,3 +2020-04-11,Apache,Arizona,04001,66,3 +2020-04-12,Apache,Arizona,04001,72,3 +2020-04-13,Apache,Arizona,04001,89,3 +2020-04-14,Apache,Arizona,04001,97,4 +2020-04-15,Apache,Arizona,04001,110,4 +2020-04-16,Apache,Arizona,04001,118,4 +2020-04-17,Apache,Arizona,04001,141,4 +2020-04-18,Apache,Arizona,04001,169,4 +2020-04-19,Apache,Arizona,04001,178,4 +2020-04-20,Apache,Arizona,04001,202,4 +2020-04-21,Apache,Arizona,04001,226,5 +2020-04-22,Apache,Arizona,04001,235,5 +2020-04-23,Apache,Arizona,04001,268,5 +2020-04-24,Apache,Arizona,04001,296,5 +2020-04-25,Apache,Arizona,04001,314,5 +2020-04-26,Apache,Arizona,04001,336,5 +2020-04-27,Apache,Arizona,04001,362,5 +2020-04-28,Apache,Arizona,04001,380,5 +2020-04-29,Apache,Arizona,04001,392,5 +2020-04-30,Apache,Arizona,04001,449,6 +2020-05-01,Apache,Arizona,04001,478,6 +2020-05-02,Apache,Arizona,04001,507,6 +2020-05-03,Apache,Arizona,04001,526,6 +2020-05-04,Apache,Arizona,04001,549,6 +2020-05-05,Apache,Arizona,04001,576,7 +2020-05-06,Apache,Arizona,04001,612,7 +2020-05-07,Apache,Arizona,04001,630,7 +2020-05-08,Apache,Arizona,04001,671,10 +2020-05-09,Apache,Arizona,04001,710,10 +2020-05-10,Apache,Arizona,04001,716,10 +2020-05-11,Apache,Arizona,04001,727,10 +2020-05-12,Apache,Arizona,04001,744,11 +2020-05-13,Apache,Arizona,04001,817,12 +2020-05-14,Apache,Arizona,04001,859,12 +2020-05-15,Apache,Arizona,04001,927,16 +2020-05-16,Apache,Arizona,04001,962,20 +2020-05-17,Apache,Arizona,04001,981,20 +2020-05-18,Apache,Arizona,04001,988,20 +2020-05-19,Apache,Arizona,04001,1023,20 +2020-05-20,Apache,Arizona,04001,1080,22 +2020-05-21,Apache,Arizona,04001,1121,22 +2020-05-22,Apache,Arizona,04001,1139,23 +2020-05-23,Apache,Arizona,04001,1144,25 +2020-05-24,Apache,Arizona,04001,1191,25 +2020-05-25,Apache,Arizona,04001,1191,26 +2020-05-26,Apache,Arizona,04001,1214,26 +2020-05-27,Apache,Arizona,04001,1250,26 +2020-05-28,Apache,Arizona,04001,1290,28 +2020-05-29,Apache,Arizona,04001,1414,34 +2020-05-30,Apache,Arizona,04001,1491,35 +2020-05-31,Apache,Arizona,04001,1524,35 +2020-06-01,Apache,Arizona,04001,1526,39 +2020-06-02,Apache,Arizona,04001,1569,41 +2020-06-03,Apache,Arizona,04001,1586,45 +2020-06-04,Apache,Arizona,04001,1637,45 +2020-06-05,Apache,Arizona,04001,1656,46 +2020-06-06,Apache,Arizona,04001,1692,49 +2020-06-07,Apache,Arizona,04001,1727,49 +2020-06-08,Apache,Arizona,04001,1732,49 +2020-06-09,Apache,Arizona,04001,1747,49 +2020-06-10,Apache,Arizona,04001,1811,49 +2020-06-11,Apache,Arizona,04001,1889,52 +2020-06-12,Apache,Arizona,04001,1927,53 +2020-06-13,Apache,Arizona,04001,1967,56 +2020-06-14,Apache,Arizona,04001,1972,56 +2020-06-15,Apache,Arizona,04001,1975,56 +2020-06-16,Apache,Arizona,04001,1996,57 +2020-06-17,Apache,Arizona,04001,1998,58 +2020-06-18,Apache,Arizona,04001,2059,61 +2020-06-19,Apache,Arizona,04001,2103,63 +2020-06-20,Apache,Arizona,04001,2116,66 +2020-06-21,Apache,Arizona,04001,2117,66 +2020-06-22,Apache,Arizona,04001,2121,66 +2020-06-23,Apache,Arizona,04001,2165,67 +2020-06-24,Apache,Arizona,04001,2194,73 +2020-06-25,Apache,Arizona,04001,2235,73 +2020-06-26,Apache,Arizona,04001,2250,79 +2020-06-27,Apache,Arizona,04001,2250,85 +2020-06-28,Apache,Arizona,04001,2303,85 +2020-06-29,Apache,Arizona,04001,2309,85 +2020-06-30,Apache,Arizona,04001,2337,86 +2020-07-01,Apache,Arizona,04001,2381,90 +2020-07-02,Apache,Arizona,04001,2405,91 +2020-07-03,Apache,Arizona,04001,2418,91 +2020-07-04,Apache,Arizona,04001,2423,91 +2020-07-05,Apache,Arizona,04001,2439,92 +2020-07-06,Apache,Arizona,04001,2441,92 +2020-07-07,Apache,Arizona,04001,2471,99 +2020-07-08,Apache,Arizona,04001,2499,100 +2020-07-09,Apache,Arizona,04001,2520,101 +2020-03-21,Cochise,Arizona,04003,1,0 +2020-03-22,Cochise,Arizona,04003,1,0 +2020-03-23,Cochise,Arizona,04003,1,0 +2020-03-24,Cochise,Arizona,04003,1,0 +2020-03-25,Cochise,Arizona,04003,1,0 +2020-03-26,Cochise,Arizona,04003,2,0 +2020-03-27,Cochise,Arizona,04003,2,0 +2020-03-28,Cochise,Arizona,04003,3,0 +2020-03-29,Cochise,Arizona,04003,3,0 +2020-03-30,Cochise,Arizona,04003,4,0 +2020-03-31,Cochise,Arizona,04003,4,0 +2020-04-01,Cochise,Arizona,04003,4,0 +2020-04-02,Cochise,Arizona,04003,4,0 +2020-04-03,Cochise,Arizona,04003,5,0 +2020-04-04,Cochise,Arizona,04003,7,0 +2020-04-05,Cochise,Arizona,04003,8,0 +2020-04-06,Cochise,Arizona,04003,9,0 +2020-04-07,Cochise,Arizona,04003,9,0 +2020-04-08,Cochise,Arizona,04003,9,0 +2020-04-09,Cochise,Arizona,04003,11,0 +2020-04-10,Cochise,Arizona,04003,11,0 +2020-04-11,Cochise,Arizona,04003,13,0 +2020-04-12,Cochise,Arizona,04003,15,0 +2020-04-13,Cochise,Arizona,04003,16,0 +2020-04-14,Cochise,Arizona,04003,15,0 +2020-04-15,Cochise,Arizona,04003,15,0 +2020-04-16,Cochise,Arizona,04003,18,0 +2020-04-17,Cochise,Arizona,04003,20,0 +2020-04-18,Cochise,Arizona,04003,22,0 +2020-04-19,Cochise,Arizona,04003,24,0 +2020-04-20,Cochise,Arizona,04003,28,0 +2020-04-21,Cochise,Arizona,04003,29,0 +2020-04-22,Cochise,Arizona,04003,31,0 +2020-04-23,Cochise,Arizona,04003,31,0 +2020-04-24,Cochise,Arizona,04003,34,0 +2020-04-25,Cochise,Arizona,04003,36,0 +2020-04-26,Cochise,Arizona,04003,36,0 +2020-04-27,Cochise,Arizona,04003,36,0 +2020-04-28,Cochise,Arizona,04003,37,0 +2020-04-29,Cochise,Arizona,04003,38,0 +2020-04-30,Cochise,Arizona,04003,39,0 +2020-05-01,Cochise,Arizona,04003,39,0 +2020-05-02,Cochise,Arizona,04003,39,0 +2020-05-03,Cochise,Arizona,04003,39,0 +2020-05-04,Cochise,Arizona,04003,39,0 +2020-05-05,Cochise,Arizona,04003,39,0 +2020-05-06,Cochise,Arizona,04003,40,0 +2020-05-07,Cochise,Arizona,04003,40,0 +2020-05-08,Cochise,Arizona,04003,41,1 +2020-05-09,Cochise,Arizona,04003,41,1 +2020-05-10,Cochise,Arizona,04003,41,1 +2020-05-11,Cochise,Arizona,04003,42,1 +2020-05-12,Cochise,Arizona,04003,43,1 +2020-05-13,Cochise,Arizona,04003,43,1 +2020-05-14,Cochise,Arizona,04003,44,1 +2020-05-15,Cochise,Arizona,04003,45,1 +2020-05-16,Cochise,Arizona,04003,46,1 +2020-05-17,Cochise,Arizona,04003,46,1 +2020-05-18,Cochise,Arizona,04003,46,1 +2020-05-19,Cochise,Arizona,04003,46,1 +2020-05-20,Cochise,Arizona,04003,46,1 +2020-05-21,Cochise,Arizona,04003,51,2 +2020-05-22,Cochise,Arizona,04003,56,2 +2020-05-23,Cochise,Arizona,04003,58,1 +2020-05-24,Cochise,Arizona,04003,59,1 +2020-05-25,Cochise,Arizona,04003,59,1 +2020-05-26,Cochise,Arizona,04003,64,1 +2020-05-27,Cochise,Arizona,04003,63,1 +2020-05-28,Cochise,Arizona,04003,67,1 +2020-05-29,Cochise,Arizona,04003,67,2 +2020-05-30,Cochise,Arizona,04003,72,3 +2020-05-31,Cochise,Arizona,04003,74,3 +2020-06-01,Cochise,Arizona,04003,76,3 +2020-06-02,Cochise,Arizona,04003,89,4 +2020-06-03,Cochise,Arizona,04003,94,5 +2020-06-04,Cochise,Arizona,04003,105,5 +2020-06-05,Cochise,Arizona,04003,120,5 +2020-06-06,Cochise,Arizona,04003,122,5 +2020-06-07,Cochise,Arizona,04003,141,5 +2020-06-08,Cochise,Arizona,04003,149,5 +2020-06-09,Cochise,Arizona,04003,156,5 +2020-06-10,Cochise,Arizona,04003,167,5 +2020-06-11,Cochise,Arizona,04003,171,5 +2020-06-12,Cochise,Arizona,04003,178,5 +2020-06-13,Cochise,Arizona,04003,206,5 +2020-06-14,Cochise,Arizona,04003,216,5 +2020-06-15,Cochise,Arizona,04003,221,5 +2020-06-16,Cochise,Arizona,04003,241,5 +2020-06-17,Cochise,Arizona,04003,248,5 +2020-06-18,Cochise,Arizona,04003,267,5 +2020-06-19,Cochise,Arizona,04003,332,6 +2020-06-20,Cochise,Arizona,04003,362,6 +2020-06-21,Cochise,Arizona,04003,363,6 +2020-06-22,Cochise,Arizona,04003,372,6 +2020-06-23,Cochise,Arizona,04003,432,6 +2020-06-24,Cochise,Arizona,04003,441,6 +2020-06-25,Cochise,Arizona,04003,468,6 +2020-06-26,Cochise,Arizona,04003,509,6 +2020-06-27,Cochise,Arizona,04003,538,6 +2020-06-28,Cochise,Arizona,04003,573,6 +2020-06-29,Cochise,Arizona,04003,605,6 +2020-06-30,Cochise,Arizona,04003,645,8 +2020-07-01,Cochise,Arizona,04003,663,12 +2020-07-02,Cochise,Arizona,04003,684,12 +2020-07-03,Cochise,Arizona,04003,723,14 +2020-07-04,Cochise,Arizona,04003,775,14 +2020-07-05,Cochise,Arizona,04003,811,14 +2020-07-06,Cochise,Arizona,04003,838,14 +2020-07-07,Cochise,Arizona,04003,870,17 +2020-07-08,Cochise,Arizona,04003,884,20 +2020-07-09,Cochise,Arizona,04003,925,20 +2020-03-18,Coconino,Arizona,04005,1,0 +2020-03-19,Coconino,Arizona,04005,2,0 +2020-03-20,Coconino,Arizona,04005,11,0 +2020-03-21,Coconino,Arizona,04005,11,0 +2020-03-22,Coconino,Arizona,04005,15,0 +2020-03-23,Coconino,Arizona,04005,17,0 +2020-03-24,Coconino,Arizona,04005,18,1 +2020-03-25,Coconino,Arizona,04005,23,1 +2020-03-26,Coconino,Arizona,04005,28,2 +2020-03-27,Coconino,Arizona,04005,41,2 +2020-03-28,Coconino,Arizona,04005,56,2 +2020-03-29,Coconino,Arizona,04005,68,2 +2020-03-30,Coconino,Arizona,04005,73,3 +2020-03-31,Coconino,Arizona,04005,81,3 +2020-04-01,Coconino,Arizona,04005,85,3 +2020-04-02,Coconino,Arizona,04005,116,8 +2020-04-03,Coconino,Arizona,04005,126,8 +2020-04-04,Coconino,Arizona,04005,147,10 +2020-04-05,Coconino,Arizona,04005,155,10 +2020-04-06,Coconino,Arizona,04005,167,10 +2020-04-07,Coconino,Arizona,04005,179,14 +2020-04-08,Coconino,Arizona,04005,186,14 +2020-04-09,Coconino,Arizona,04005,210,15 +2020-04-10,Coconino,Arizona,04005,214,15 +2020-04-11,Coconino,Arizona,04005,238,15 +2020-04-12,Coconino,Arizona,04005,243,21 +2020-04-13,Coconino,Arizona,04005,253,21 +2020-04-14,Coconino,Arizona,04005,270,22 +2020-04-15,Coconino,Arizona,04005,266,24 +2020-04-16,Coconino,Arizona,04005,299,26 +2020-04-17,Coconino,Arizona,04005,304,29 +2020-04-18,Coconino,Arizona,04005,314,29 +2020-04-19,Coconino,Arizona,04005,333,30 +2020-04-20,Coconino,Arizona,04005,337,30 +2020-04-21,Coconino,Arizona,04005,342,35 +2020-04-22,Coconino,Arizona,04005,353,35 +2020-04-23,Coconino,Arizona,04005,372,35 +2020-04-24,Coconino,Arizona,04005,391,36 +2020-04-25,Coconino,Arizona,04005,402,40 +2020-04-26,Coconino,Arizona,04005,420,40 +2020-04-27,Coconino,Arizona,04005,425,40 +2020-04-28,Coconino,Arizona,04005,439,42 +2020-04-29,Coconino,Arizona,04005,453,42 +2020-04-30,Coconino,Arizona,04005,486,42 +2020-05-01,Coconino,Arizona,04005,498,44 +2020-05-02,Coconino,Arizona,04005,512,44 +2020-05-03,Coconino,Arizona,04005,527,44 +2020-05-04,Coconino,Arizona,04005,540,44 +2020-05-05,Coconino,Arizona,04005,561,46 +2020-05-06,Coconino,Arizona,04005,588,48 +2020-05-07,Coconino,Arizona,04005,618,49 +2020-05-08,Coconino,Arizona,04005,659,55 +2020-05-09,Coconino,Arizona,04005,679,55 +2020-05-10,Coconino,Arizona,04005,699,55 +2020-05-11,Coconino,Arizona,04005,713,56 +2020-05-12,Coconino,Arizona,04005,720,58 +2020-05-13,Coconino,Arizona,04005,772,58 +2020-05-14,Coconino,Arizona,04005,795,59 +2020-05-15,Coconino,Arizona,04005,823,62 +2020-05-16,Coconino,Arizona,04005,839,64 +2020-05-17,Coconino,Arizona,04005,866,64 +2020-05-18,Coconino,Arizona,04005,901,65 +2020-05-19,Coconino,Arizona,04005,943,66 +2020-05-20,Coconino,Arizona,04005,961,68 +2020-05-21,Coconino,Arizona,04005,972,69 +2020-05-22,Coconino,Arizona,04005,979,69 +2020-05-23,Coconino,Arizona,04005,1000,72 +2020-05-24,Coconino,Arizona,04005,1019,72 +2020-05-25,Coconino,Arizona,04005,1028,72 +2020-05-26,Coconino,Arizona,04005,1041,73 +2020-05-27,Coconino,Arizona,04005,1066,75 +2020-05-28,Coconino,Arizona,04005,1078,79 +2020-05-29,Coconino,Arizona,04005,1104,81 +2020-05-30,Coconino,Arizona,04005,1123,81 +2020-05-31,Coconino,Arizona,04005,1151,81 +2020-06-01,Coconino,Arizona,04005,1155,81 +2020-06-02,Coconino,Arizona,04005,1173,81 +2020-06-03,Coconino,Arizona,04005,1186,85 +2020-06-04,Coconino,Arizona,04005,1221,85 +2020-06-05,Coconino,Arizona,04005,1248,85 +2020-06-06,Coconino,Arizona,04005,1267,85 +2020-06-07,Coconino,Arizona,04005,1282,85 +2020-06-08,Coconino,Arizona,04005,1290,85 +2020-06-09,Coconino,Arizona,04005,1289,85 +2020-06-10,Coconino,Arizona,04005,1310,85 +2020-06-11,Coconino,Arizona,04005,1328,86 +2020-06-12,Coconino,Arizona,04005,1345,86 +2020-06-13,Coconino,Arizona,04005,1360,87 +2020-06-14,Coconino,Arizona,04005,1368,87 +2020-06-15,Coconino,Arizona,04005,1373,88 +2020-06-16,Coconino,Arizona,04005,1393,88 +2020-06-17,Coconino,Arizona,04005,1410,88 +2020-06-18,Coconino,Arizona,04005,1439,88 +2020-06-19,Coconino,Arizona,04005,1470,90 +2020-06-20,Coconino,Arizona,04005,1490,90 +2020-06-21,Coconino,Arizona,04005,1536,90 +2020-06-22,Coconino,Arizona,04005,1541,90 +2020-06-23,Coconino,Arizona,04005,1595,90 +2020-06-24,Coconino,Arizona,04005,1611,91 +2020-06-25,Coconino,Arizona,04005,1676,91 +2020-06-26,Coconino,Arizona,04005,1713,91 +2020-06-27,Coconino,Arizona,04005,1735,92 +2020-06-28,Coconino,Arizona,04005,1819,92 +2020-06-29,Coconino,Arizona,04005,1850,92 +2020-06-30,Coconino,Arizona,04005,1885,92 +2020-07-01,Coconino,Arizona,04005,1941,94 +2020-07-02,Coconino,Arizona,04005,1986,95 +2020-07-03,Coconino,Arizona,04005,2087,96 +2020-07-04,Coconino,Arizona,04005,2107,96 +2020-07-05,Coconino,Arizona,04005,2164,96 +2020-07-06,Coconino,Arizona,04005,2190,96 +2020-07-07,Coconino,Arizona,04005,2237,97 +2020-07-08,Coconino,Arizona,04005,2250,97 +2020-07-09,Coconino,Arizona,04005,2338,97 +2020-03-28,Gila,Arizona,04007,1,0 +2020-03-29,Gila,Arizona,04007,1,0 +2020-03-30,Gila,Arizona,04007,1,0 +2020-03-31,Gila,Arizona,04007,1,0 +2020-04-01,Gila,Arizona,04007,1,0 +2020-04-02,Gila,Arizona,04007,2,0 +2020-04-03,Gila,Arizona,04007,2,0 +2020-04-04,Gila,Arizona,04007,3,0 +2020-04-05,Gila,Arizona,04007,3,0 +2020-04-06,Gila,Arizona,04007,3,0 +2020-04-07,Gila,Arizona,04007,3,0 +2020-04-08,Gila,Arizona,04007,3,0 +2020-04-09,Gila,Arizona,04007,3,0 +2020-04-10,Gila,Arizona,04007,3,0 +2020-04-11,Gila,Arizona,04007,3,0 +2020-04-12,Gila,Arizona,04007,3,0 +2020-04-13,Gila,Arizona,04007,3,0 +2020-04-14,Gila,Arizona,04007,3,0 +2020-04-15,Gila,Arizona,04007,3,0 +2020-04-16,Gila,Arizona,04007,5,0 +2020-04-17,Gila,Arizona,04007,5,0 +2020-04-18,Gila,Arizona,04007,7,0 +2020-04-19,Gila,Arizona,04007,7,0 +2020-04-20,Gila,Arizona,04007,8,0 +2020-04-21,Gila,Arizona,04007,9,0 +2020-04-22,Gila,Arizona,04007,10,0 +2020-04-23,Gila,Arizona,04007,12,0 +2020-04-24,Gila,Arizona,04007,11,0 +2020-04-25,Gila,Arizona,04007,11,0 +2020-04-26,Gila,Arizona,04007,11,0 +2020-04-27,Gila,Arizona,04007,11,0 +2020-04-28,Gila,Arizona,04007,11,0 +2020-04-29,Gila,Arizona,04007,12,0 +2020-04-30,Gila,Arizona,04007,13,0 +2020-05-01,Gila,Arizona,04007,13,0 +2020-05-02,Gila,Arizona,04007,14,0 +2020-05-03,Gila,Arizona,04007,14,0 +2020-05-04,Gila,Arizona,04007,14,0 +2020-05-05,Gila,Arizona,04007,14,0 +2020-05-06,Gila,Arizona,04007,15,0 +2020-05-07,Gila,Arizona,04007,17,0 +2020-05-08,Gila,Arizona,04007,19,1 +2020-05-09,Gila,Arizona,04007,19,1 +2020-05-10,Gila,Arizona,04007,19,1 +2020-05-11,Gila,Arizona,04007,19,1 +2020-05-12,Gila,Arizona,04007,19,1 +2020-05-13,Gila,Arizona,04007,19,1 +2020-05-14,Gila,Arizona,04007,21,1 +2020-05-15,Gila,Arizona,04007,22,1 +2020-05-16,Gila,Arizona,04007,22,1 +2020-05-17,Gila,Arizona,04007,22,1 +2020-05-18,Gila,Arizona,04007,22,1 +2020-05-19,Gila,Arizona,04007,22,1 +2020-05-20,Gila,Arizona,04007,22,1 +2020-05-21,Gila,Arizona,04007,22,1 +2020-05-22,Gila,Arizona,04007,24,1 +2020-05-23,Gila,Arizona,04007,24,1 +2020-05-24,Gila,Arizona,04007,24,1 +2020-05-25,Gila,Arizona,04007,24,1 +2020-05-26,Gila,Arizona,04007,24,2 +2020-05-27,Gila,Arizona,04007,25,2 +2020-05-28,Gila,Arizona,04007,25,2 +2020-05-29,Gila,Arizona,04007,28,2 +2020-05-30,Gila,Arizona,04007,30,2 +2020-05-31,Gila,Arizona,04007,31,2 +2020-06-01,Gila,Arizona,04007,31,2 +2020-06-02,Gila,Arizona,04007,35,2 +2020-06-03,Gila,Arizona,04007,37,2 +2020-06-04,Gila,Arizona,04007,39,2 +2020-06-05,Gila,Arizona,04007,42,3 +2020-06-06,Gila,Arizona,04007,43,3 +2020-06-07,Gila,Arizona,04007,45,3 +2020-06-08,Gila,Arizona,04007,46,3 +2020-06-09,Gila,Arizona,04007,47,3 +2020-06-10,Gila,Arizona,04007,48,3 +2020-06-11,Gila,Arizona,04007,49,3 +2020-06-12,Gila,Arizona,04007,54,3 +2020-06-13,Gila,Arizona,04007,59,3 +2020-06-14,Gila,Arizona,04007,70,3 +2020-06-15,Gila,Arizona,04007,87,3 +2020-06-16,Gila,Arizona,04007,91,3 +2020-06-17,Gila,Arizona,04007,99,3 +2020-06-18,Gila,Arizona,04007,115,3 +2020-06-19,Gila,Arizona,04007,125,3 +2020-06-20,Gila,Arizona,04007,143,3 +2020-06-21,Gila,Arizona,04007,160,4 +2020-06-22,Gila,Arizona,04007,176,4 +2020-06-23,Gila,Arizona,04007,192,5 +2020-06-24,Gila,Arizona,04007,201,5 +2020-06-25,Gila,Arizona,04007,216,5 +2020-06-26,Gila,Arizona,04007,237,5 +2020-06-27,Gila,Arizona,04007,249,5 +2020-06-28,Gila,Arizona,04007,268,5 +2020-06-29,Gila,Arizona,04007,271,5 +2020-06-30,Gila,Arizona,04007,292,5 +2020-07-01,Gila,Arizona,04007,309,6 +2020-07-02,Gila,Arizona,04007,314,6 +2020-07-03,Gila,Arizona,04007,325,6 +2020-07-04,Gila,Arizona,04007,335,6 +2020-07-05,Gila,Arizona,04007,354,6 +2020-07-06,Gila,Arizona,04007,349,6 +2020-07-07,Gila,Arizona,04007,361,6 +2020-07-08,Gila,Arizona,04007,373,9 +2020-07-09,Gila,Arizona,04007,385,11 +2020-03-14,Graham,Arizona,04009,1,0 +2020-03-15,Graham,Arizona,04009,1,0 +2020-03-16,Graham,Arizona,04009,1,0 +2020-03-17,Graham,Arizona,04009,1,0 +2020-03-18,Graham,Arizona,04009,1,0 +2020-03-19,Graham,Arizona,04009,1,0 +2020-03-20,Graham,Arizona,04009,1,0 +2020-03-21,Graham,Arizona,04009,1,0 +2020-03-22,Graham,Arizona,04009,2,0 +2020-03-23,Graham,Arizona,04009,2,0 +2020-03-24,Graham,Arizona,04009,2,0 +2020-03-25,Graham,Arizona,04009,2,0 +2020-03-26,Graham,Arizona,04009,2,0 +2020-03-27,Graham,Arizona,04009,4,0 +2020-03-28,Graham,Arizona,04009,2,0 +2020-03-29,Graham,Arizona,04009,2,0 +2020-03-30,Graham,Arizona,04009,2,0 +2020-03-31,Graham,Arizona,04009,2,0 +2020-04-01,Graham,Arizona,04009,2,0 +2020-04-02,Graham,Arizona,04009,2,0 +2020-04-03,Graham,Arizona,04009,2,0 +2020-04-04,Graham,Arizona,04009,3,0 +2020-04-05,Graham,Arizona,04009,2,0 +2020-04-06,Graham,Arizona,04009,2,0 +2020-04-07,Graham,Arizona,04009,2,0 +2020-04-08,Graham,Arizona,04009,2,0 +2020-04-09,Graham,Arizona,04009,2,0 +2020-04-10,Graham,Arizona,04009,2,0 +2020-04-11,Graham,Arizona,04009,2,0 +2020-04-12,Graham,Arizona,04009,2,0 +2020-04-13,Graham,Arizona,04009,2,0 +2020-04-14,Graham,Arizona,04009,2,0 +2020-04-15,Graham,Arizona,04009,2,0 +2020-04-16,Graham,Arizona,04009,2,0 +2020-04-17,Graham,Arizona,04009,2,0 +2020-04-18,Graham,Arizona,04009,2,0 +2020-04-19,Graham,Arizona,04009,2,0 +2020-04-20,Graham,Arizona,04009,2,0 +2020-04-21,Graham,Arizona,04009,2,0 +2020-04-22,Graham,Arizona,04009,2,0 +2020-04-23,Graham,Arizona,04009,4,0 +2020-04-24,Graham,Arizona,04009,7,0 +2020-04-25,Graham,Arizona,04009,6,0 +2020-04-26,Graham,Arizona,04009,7,0 +2020-04-27,Graham,Arizona,04009,9,0 +2020-04-28,Graham,Arizona,04009,9,0 +2020-04-29,Graham,Arizona,04009,10,0 +2020-04-30,Graham,Arizona,04009,16,0 +2020-05-01,Graham,Arizona,04009,17,0 +2020-05-02,Graham,Arizona,04009,17,0 +2020-05-03,Graham,Arizona,04009,18,0 +2020-05-04,Graham,Arizona,04009,18,0 +2020-05-05,Graham,Arizona,04009,19,0 +2020-05-06,Graham,Arizona,04009,19,0 +2020-05-07,Graham,Arizona,04009,19,0 +2020-05-08,Graham,Arizona,04009,18,0 +2020-05-09,Graham,Arizona,04009,19,0 +2020-05-10,Graham,Arizona,04009,19,0 +2020-05-11,Graham,Arizona,04009,19,0 +2020-05-12,Graham,Arizona,04009,20,0 +2020-05-13,Graham,Arizona,04009,21,0 +2020-05-14,Graham,Arizona,04009,21,0 +2020-05-15,Graham,Arizona,04009,21,0 +2020-05-16,Graham,Arizona,04009,20,0 +2020-05-17,Graham,Arizona,04009,20,0 +2020-05-18,Graham,Arizona,04009,20,0 +2020-05-19,Graham,Arizona,04009,20,0 +2020-05-20,Graham,Arizona,04009,21,0 +2020-05-21,Graham,Arizona,04009,21,0 +2020-05-22,Graham,Arizona,04009,21,0 +2020-05-23,Graham,Arizona,04009,21,0 +2020-05-24,Graham,Arizona,04009,21,0 +2020-05-25,Graham,Arizona,04009,24,0 +2020-05-26,Graham,Arizona,04009,23,0 +2020-05-27,Graham,Arizona,04009,25,1 +2020-05-28,Graham,Arizona,04009,26,1 +2020-05-29,Graham,Arizona,04009,27,2 +2020-05-30,Graham,Arizona,04009,28,2 +2020-05-31,Graham,Arizona,04009,32,2 +2020-06-01,Graham,Arizona,04009,32,2 +2020-06-02,Graham,Arizona,04009,37,2 +2020-06-03,Graham,Arizona,04009,41,2 +2020-06-04,Graham,Arizona,04009,38,2 +2020-06-05,Graham,Arizona,04009,40,2 +2020-06-06,Graham,Arizona,04009,39,2 +2020-06-07,Graham,Arizona,04009,40,2 +2020-06-08,Graham,Arizona,04009,41,2 +2020-06-09,Graham,Arizona,04009,42,2 +2020-06-10,Graham,Arizona,04009,45,2 +2020-06-11,Graham,Arizona,04009,48,2 +2020-06-12,Graham,Arizona,04009,48,2 +2020-06-13,Graham,Arizona,04009,48,2 +2020-06-14,Graham,Arizona,04009,50,2 +2020-06-15,Graham,Arizona,04009,50,2 +2020-06-16,Graham,Arizona,04009,55,2 +2020-06-17,Graham,Arizona,04009,56,2 +2020-06-18,Graham,Arizona,04009,58,2 +2020-06-19,Graham,Arizona,04009,59,2 +2020-06-20,Graham,Arizona,04009,61,2 +2020-06-21,Graham,Arizona,04009,63,2 +2020-06-22,Graham,Arizona,04009,65,2 +2020-06-23,Graham,Arizona,04009,66,2 +2020-06-24,Graham,Arizona,04009,71,2 +2020-06-25,Graham,Arizona,04009,70,2 +2020-06-26,Graham,Arizona,04009,75,2 +2020-06-27,Graham,Arizona,04009,82,2 +2020-06-28,Graham,Arizona,04009,85,2 +2020-06-29,Graham,Arizona,04009,92,2 +2020-06-30,Graham,Arizona,04009,96,2 +2020-07-01,Graham,Arizona,04009,108,2 +2020-07-02,Graham,Arizona,04009,117,3 +2020-07-03,Graham,Arizona,04009,125,3 +2020-07-04,Graham,Arizona,04009,127,3 +2020-07-05,Graham,Arizona,04009,140,3 +2020-07-06,Graham,Arizona,04009,152,3 +2020-07-07,Graham,Arizona,04009,172,3 +2020-07-08,Graham,Arizona,04009,179,3 +2020-07-09,Graham,Arizona,04009,180,3 +2020-03-30,Greenlee,Arizona,04011,1,0 +2020-03-31,Greenlee,Arizona,04011,1,0 +2020-04-01,Greenlee,Arizona,04011,1,0 +2020-04-02,Greenlee,Arizona,04011,1,0 +2020-04-03,Greenlee,Arizona,04011,1,0 +2020-04-04,Greenlee,Arizona,04011,1,0 +2020-04-05,Greenlee,Arizona,04011,1,0 +2020-04-06,Greenlee,Arizona,04011,1,0 +2020-04-07,Greenlee,Arizona,04011,1,0 +2020-04-08,Greenlee,Arizona,04011,1,0 +2020-04-09,Greenlee,Arizona,04011,1,0 +2020-04-10,Greenlee,Arizona,04011,1,0 +2020-04-11,Greenlee,Arizona,04011,2,0 +2020-04-12,Greenlee,Arizona,04011,2,0 +2020-04-13,Greenlee,Arizona,04011,2,0 +2020-04-14,Greenlee,Arizona,04011,2,0 +2020-04-15,Greenlee,Arizona,04011,2,0 +2020-04-16,Greenlee,Arizona,04011,2,0 +2020-04-17,Greenlee,Arizona,04011,2,0 +2020-04-18,Greenlee,Arizona,04011,2,0 +2020-04-19,Greenlee,Arizona,04011,2,0 +2020-04-20,Greenlee,Arizona,04011,2,0 +2020-04-21,Greenlee,Arizona,04011,2,0 +2020-04-22,Greenlee,Arizona,04011,2,0 +2020-04-23,Greenlee,Arizona,04011,2,0 +2020-04-24,Greenlee,Arizona,04011,2,0 +2020-04-25,Greenlee,Arizona,04011,2,0 +2020-04-26,Greenlee,Arizona,04011,2,0 +2020-04-27,Greenlee,Arizona,04011,2,0 +2020-04-28,Greenlee,Arizona,04011,2,0 +2020-04-29,Greenlee,Arizona,04011,2,0 +2020-04-30,Greenlee,Arizona,04011,2,0 +2020-05-01,Greenlee,Arizona,04011,2,0 +2020-05-02,Greenlee,Arizona,04011,2,0 +2020-05-03,Greenlee,Arizona,04011,2,0 +2020-05-04,Greenlee,Arizona,04011,2,0 +2020-05-05,Greenlee,Arizona,04011,2,0 +2020-05-06,Greenlee,Arizona,04011,2,0 +2020-05-07,Greenlee,Arizona,04011,2,0 +2020-05-08,Greenlee,Arizona,04011,2,0 +2020-05-09,Greenlee,Arizona,04011,2,0 +2020-05-10,Greenlee,Arizona,04011,2,0 +2020-05-11,Greenlee,Arizona,04011,2,0 +2020-05-12,Greenlee,Arizona,04011,2,0 +2020-05-13,Greenlee,Arizona,04011,2,0 +2020-05-14,Greenlee,Arizona,04011,2,0 +2020-05-15,Greenlee,Arizona,04011,2,0 +2020-05-16,Greenlee,Arizona,04011,2,0 +2020-05-17,Greenlee,Arizona,04011,2,0 +2020-05-18,Greenlee,Arizona,04011,2,0 +2020-05-19,Greenlee,Arizona,04011,3,0 +2020-05-20,Greenlee,Arizona,04011,3,0 +2020-05-21,Greenlee,Arizona,04011,3,0 +2020-05-22,Greenlee,Arizona,04011,3,0 +2020-05-23,Greenlee,Arizona,04011,3,0 +2020-05-24,Greenlee,Arizona,04011,3,0 +2020-05-25,Greenlee,Arizona,04011,3,0 +2020-05-26,Greenlee,Arizona,04011,3,0 +2020-05-27,Greenlee,Arizona,04011,3,0 +2020-05-28,Greenlee,Arizona,04011,4,0 +2020-05-29,Greenlee,Arizona,04011,4,0 +2020-05-30,Greenlee,Arizona,04011,4,0 +2020-05-31,Greenlee,Arizona,04011,6,0 +2020-06-01,Greenlee,Arizona,04011,6,1 +2020-06-02,Greenlee,Arizona,04011,8,1 +2020-06-03,Greenlee,Arizona,04011,8,1 +2020-06-04,Greenlee,Arizona,04011,8,1 +2020-06-05,Greenlee,Arizona,04011,9,1 +2020-06-06,Greenlee,Arizona,04011,9,1 +2020-06-07,Greenlee,Arizona,04011,10,1 +2020-06-08,Greenlee,Arizona,04011,10,1 +2020-06-09,Greenlee,Arizona,04011,10,1 +2020-06-10,Greenlee,Arizona,04011,10,1 +2020-06-11,Greenlee,Arizona,04011,11,1 +2020-06-12,Greenlee,Arizona,04011,11,1 +2020-06-13,Greenlee,Arizona,04011,11,1 +2020-06-14,Greenlee,Arizona,04011,11,1 +2020-06-15,Greenlee,Arizona,04011,12,1 +2020-06-16,Greenlee,Arizona,04011,12,1 +2020-06-17,Greenlee,Arizona,04011,12,1 +2020-06-18,Greenlee,Arizona,04011,13,1 +2020-06-19,Greenlee,Arizona,04011,14,1 +2020-06-20,Greenlee,Arizona,04011,13,1 +2020-06-21,Greenlee,Arizona,04011,13,1 +2020-06-22,Greenlee,Arizona,04011,13,1 +2020-06-23,Greenlee,Arizona,04011,16,1 +2020-06-24,Greenlee,Arizona,04011,16,1 +2020-06-25,Greenlee,Arizona,04011,17,1 +2020-06-26,Greenlee,Arizona,04011,17,1 +2020-06-27,Greenlee,Arizona,04011,18,1 +2020-06-28,Greenlee,Arizona,04011,18,1 +2020-06-29,Greenlee,Arizona,04011,18,1 +2020-06-30,Greenlee,Arizona,04011,18,1 +2020-07-01,Greenlee,Arizona,04011,18,1 +2020-07-02,Greenlee,Arizona,04011,19,1 +2020-07-03,Greenlee,Arizona,04011,19,1 +2020-07-04,Greenlee,Arizona,04011,18,1 +2020-07-05,Greenlee,Arizona,04011,21,1 +2020-07-06,Greenlee,Arizona,04011,26,1 +2020-07-07,Greenlee,Arizona,04011,26,1 +2020-07-08,Greenlee,Arizona,04011,26,1 +2020-07-09,Greenlee,Arizona,04011,27,1 +2020-03-26,La Paz,Arizona,04012,2,0 +2020-03-27,La Paz,Arizona,04012,2,0 +2020-03-28,La Paz,Arizona,04012,2,0 +2020-03-29,La Paz,Arizona,04012,2,0 +2020-03-30,La Paz,Arizona,04012,2,0 +2020-03-31,La Paz,Arizona,04012,2,0 +2020-04-01,La Paz,Arizona,04012,2,0 +2020-04-02,La Paz,Arizona,04012,2,0 +2020-04-03,La Paz,Arizona,04012,2,0 +2020-04-04,La Paz,Arizona,04012,2,0 +2020-04-05,La Paz,Arizona,04012,3,0 +2020-04-06,La Paz,Arizona,04012,3,0 +2020-04-07,La Paz,Arizona,04012,3,0 +2020-04-08,La Paz,Arizona,04012,3,0 +2020-04-09,La Paz,Arizona,04012,4,0 +2020-04-10,La Paz,Arizona,04012,4,0 +2020-04-11,La Paz,Arizona,04012,4,0 +2020-04-12,La Paz,Arizona,04012,4,0 +2020-04-13,La Paz,Arizona,04012,4,0 +2020-04-14,La Paz,Arizona,04012,4,0 +2020-04-15,La Paz,Arizona,04012,5,1 +2020-04-16,La Paz,Arizona,04012,5,1 +2020-04-17,La Paz,Arizona,04012,5,1 +2020-04-18,La Paz,Arizona,04012,5,1 +2020-04-19,La Paz,Arizona,04012,5,1 +2020-04-20,La Paz,Arizona,04012,5,1 +2020-04-21,La Paz,Arizona,04012,6,1 +2020-04-22,La Paz,Arizona,04012,6,1 +2020-04-23,La Paz,Arizona,04012,6,1 +2020-04-24,La Paz,Arizona,04012,8,1 +2020-04-25,La Paz,Arizona,04012,7,1 +2020-04-26,La Paz,Arizona,04012,7,1 +2020-04-27,La Paz,Arizona,04012,7,1 +2020-04-28,La Paz,Arizona,04012,7,2 +2020-04-29,La Paz,Arizona,04012,8,2 +2020-04-30,La Paz,Arizona,04012,14,2 +2020-05-01,La Paz,Arizona,04012,15,2 +2020-05-02,La Paz,Arizona,04012,14,2 +2020-05-03,La Paz,Arizona,04012,14,2 +2020-05-04,La Paz,Arizona,04012,14,2 +2020-05-05,La Paz,Arizona,04012,16,2 +2020-05-06,La Paz,Arizona,04012,18,2 +2020-05-07,La Paz,Arizona,04012,20,2 +2020-05-08,La Paz,Arizona,04012,22,2 +2020-05-09,La Paz,Arizona,04012,22,2 +2020-05-10,La Paz,Arizona,04012,23,2 +2020-05-11,La Paz,Arizona,04012,23,2 +2020-05-12,La Paz,Arizona,04012,22,2 +2020-05-13,La Paz,Arizona,04012,25,2 +2020-05-14,La Paz,Arizona,04012,27,2 +2020-05-15,La Paz,Arizona,04012,36,2 +2020-05-16,La Paz,Arizona,04012,37,2 +2020-05-17,La Paz,Arizona,04012,38,2 +2020-05-18,La Paz,Arizona,04012,38,2 +2020-05-19,La Paz,Arizona,04012,38,2 +2020-05-20,La Paz,Arizona,04012,40,2 +2020-05-21,La Paz,Arizona,04012,45,2 +2020-05-22,La Paz,Arizona,04012,48,2 +2020-05-23,La Paz,Arizona,04012,49,2 +2020-05-24,La Paz,Arizona,04012,50,2 +2020-05-25,La Paz,Arizona,04012,51,2 +2020-05-26,La Paz,Arizona,04012,51,2 +2020-05-27,La Paz,Arizona,04012,54,2 +2020-05-28,La Paz,Arizona,04012,53,2 +2020-05-29,La Paz,Arizona,04012,54,2 +2020-05-30,La Paz,Arizona,04012,70,2 +2020-05-31,La Paz,Arizona,04012,78,2 +2020-06-01,La Paz,Arizona,04012,79,2 +2020-06-02,La Paz,Arizona,04012,92,2 +2020-06-03,La Paz,Arizona,04012,91,2 +2020-06-04,La Paz,Arizona,04012,110,2 +2020-06-05,La Paz,Arizona,04012,149,2 +2020-06-06,La Paz,Arizona,04012,158,2 +2020-06-07,La Paz,Arizona,04012,181,2 +2020-06-08,La Paz,Arizona,04012,183,2 +2020-06-09,La Paz,Arizona,04012,189,2 +2020-06-10,La Paz,Arizona,04012,205,2 +2020-06-11,La Paz,Arizona,04012,212,2 +2020-06-12,La Paz,Arizona,04012,217,2 +2020-06-13,La Paz,Arizona,04012,221,2 +2020-06-14,La Paz,Arizona,04012,221,2 +2020-06-15,La Paz,Arizona,04012,222,2 +2020-06-16,La Paz,Arizona,04012,238,3 +2020-06-17,La Paz,Arizona,04012,238,4 +2020-06-18,La Paz,Arizona,04012,245,4 +2020-06-19,La Paz,Arizona,04012,257,4 +2020-06-20,La Paz,Arizona,04012,268,4 +2020-06-21,La Paz,Arizona,04012,273,4 +2020-06-22,La Paz,Arizona,04012,279,4 +2020-06-23,La Paz,Arizona,04012,286,4 +2020-06-24,La Paz,Arizona,04012,289,4 +2020-06-25,La Paz,Arizona,04012,299,4 +2020-06-26,La Paz,Arizona,04012,309,5 +2020-06-27,La Paz,Arizona,04012,315,5 +2020-06-28,La Paz,Arizona,04012,328,5 +2020-06-29,La Paz,Arizona,04012,332,5 +2020-06-30,La Paz,Arizona,04012,342,5 +2020-07-01,La Paz,Arizona,04012,345,5 +2020-07-02,La Paz,Arizona,04012,346,5 +2020-07-03,La Paz,Arizona,04012,351,5 +2020-07-04,La Paz,Arizona,04012,357,5 +2020-07-05,La Paz,Arizona,04012,363,5 +2020-07-06,La Paz,Arizona,04012,371,5 +2020-07-07,La Paz,Arizona,04012,374,7 +2020-07-08,La Paz,Arizona,04012,381,7 +2020-07-09,La Paz,Arizona,04012,384,7 +2020-01-26,Maricopa,Arizona,04013,1,0 +2020-01-27,Maricopa,Arizona,04013,1,0 +2020-01-28,Maricopa,Arizona,04013,1,0 +2020-01-29,Maricopa,Arizona,04013,1,0 +2020-01-30,Maricopa,Arizona,04013,1,0 +2020-01-31,Maricopa,Arizona,04013,1,0 +2020-02-01,Maricopa,Arizona,04013,1,0 +2020-02-02,Maricopa,Arizona,04013,1,0 +2020-02-03,Maricopa,Arizona,04013,1,0 +2020-02-04,Maricopa,Arizona,04013,1,0 +2020-02-05,Maricopa,Arizona,04013,1,0 +2020-02-06,Maricopa,Arizona,04013,1,0 +2020-02-07,Maricopa,Arizona,04013,1,0 +2020-02-08,Maricopa,Arizona,04013,1,0 +2020-02-09,Maricopa,Arizona,04013,1,0 +2020-02-10,Maricopa,Arizona,04013,1,0 +2020-02-11,Maricopa,Arizona,04013,1,0 +2020-02-12,Maricopa,Arizona,04013,1,0 +2020-02-13,Maricopa,Arizona,04013,1,0 +2020-02-14,Maricopa,Arizona,04013,1,0 +2020-02-15,Maricopa,Arizona,04013,1,0 +2020-02-16,Maricopa,Arizona,04013,1,0 +2020-02-17,Maricopa,Arizona,04013,1,0 +2020-02-18,Maricopa,Arizona,04013,1,0 +2020-02-19,Maricopa,Arizona,04013,1,0 +2020-02-20,Maricopa,Arizona,04013,1,0 +2020-02-21,Maricopa,Arizona,04013,1,0 +2020-02-22,Maricopa,Arizona,04013,1,0 +2020-02-23,Maricopa,Arizona,04013,1,0 +2020-02-24,Maricopa,Arizona,04013,1,0 +2020-02-25,Maricopa,Arizona,04013,1,0 +2020-02-26,Maricopa,Arizona,04013,1,0 +2020-02-27,Maricopa,Arizona,04013,1,0 +2020-02-28,Maricopa,Arizona,04013,1,0 +2020-02-29,Maricopa,Arizona,04013,1,0 +2020-03-01,Maricopa,Arizona,04013,1,0 +2020-03-02,Maricopa,Arizona,04013,1,0 +2020-03-03,Maricopa,Arizona,04013,2,0 +2020-03-04,Maricopa,Arizona,04013,2,0 +2020-03-05,Maricopa,Arizona,04013,2,0 +2020-03-06,Maricopa,Arizona,04013,2,0 +2020-03-07,Maricopa,Arizona,04013,2,0 +2020-03-08,Maricopa,Arizona,04013,2,0 +2020-03-09,Maricopa,Arizona,04013,2,0 +2020-03-10,Maricopa,Arizona,04013,2,0 +2020-03-11,Maricopa,Arizona,04013,3,0 +2020-03-12,Maricopa,Arizona,04013,3,0 +2020-03-13,Maricopa,Arizona,04013,3,0 +2020-03-14,Maricopa,Arizona,04013,4,0 +2020-03-15,Maricopa,Arizona,04013,4,0 +2020-03-16,Maricopa,Arizona,04013,8,0 +2020-03-17,Maricopa,Arizona,04013,9,0 +2020-03-18,Maricopa,Arizona,04013,11,0 +2020-03-19,Maricopa,Arizona,04013,22,0 +2020-03-20,Maricopa,Arizona,04013,34,1 +2020-03-21,Maricopa,Arizona,04013,49,1 +2020-03-22,Maricopa,Arizona,04013,81,2 +2020-03-23,Maricopa,Arizona,04013,139,2 +2020-03-24,Maricopa,Arizona,04013,199,2 +2020-03-25,Maricopa,Arizona,04013,251,2 +2020-03-26,Maricopa,Arizona,04013,299,4 +2020-03-27,Maricopa,Arizona,04013,399,5 +2020-03-28,Maricopa,Arizona,04013,454,5 +2020-03-29,Maricopa,Arizona,04013,546,5 +2020-03-30,Maricopa,Arizona,04013,690,5 +2020-03-31,Maricopa,Arizona,04013,791,8 +2020-04-01,Maricopa,Arizona,04013,871,8 +2020-04-02,Maricopa,Arizona,04013,961,12 +2020-04-03,Maricopa,Arizona,04013,1049,17 +2020-04-04,Maricopa,Arizona,04013,1171,28 +2020-04-05,Maricopa,Arizona,04013,1326,31 +2020-04-06,Maricopa,Arizona,04013,1433,31 +2020-04-07,Maricopa,Arizona,04013,1495,35 +2020-04-08,Maricopa,Arizona,04013,1559,37 +2020-04-09,Maricopa,Arizona,04013,1689,39 +2020-04-10,Maricopa,Arizona,04013,1741,41 +2020-04-11,Maricopa,Arizona,04013,1891,47 +2020-04-12,Maricopa,Arizona,04013,1960,48 +2020-04-13,Maricopa,Arizona,04013,2020,52 +2020-04-14,Maricopa,Arizona,04013,2056,54 +2020-04-15,Maricopa,Arizona,04013,2146,60 +2020-04-16,Maricopa,Arizona,04013,2264,64 +2020-04-17,Maricopa,Arizona,04013,2404,69 +2020-04-18,Maricopa,Arizona,04013,2491,70 +2020-04-19,Maricopa,Arizona,04013,2589,75 +2020-04-20,Maricopa,Arizona,04013,2636,75 +2020-04-21,Maricopa,Arizona,04013,2738,84 +2020-04-22,Maricopa,Arizona,04013,2846,97 +2020-04-23,Maricopa,Arizona,04013,2970,115 +2020-04-24,Maricopa,Arizona,04013,3116,120 +2020-04-25,Maricopa,Arizona,04013,3234,121 +2020-04-26,Maricopa,Arizona,04013,3359,122 +2020-04-27,Maricopa,Arizona,04013,3457,122 +2020-04-28,Maricopa,Arizona,04013,3578,137 +2020-04-29,Maricopa,Arizona,04013,3723,140 +2020-04-30,Maricopa,Arizona,04013,3972,145 +2020-05-01,Maricopa,Arizona,04013,4156,147 +2020-05-02,Maricopa,Arizona,04013,4421,159 +2020-05-03,Maricopa,Arizona,04013,4585,168 +2020-05-04,Maricopa,Arizona,04013,4751,168 +2020-05-05,Maricopa,Arizona,04013,4929,175 +2020-05-06,Maricopa,Arizona,04013,5138,186 +2020-05-07,Maricopa,Arizona,04013,5196,204 +2020-05-08,Maricopa,Arizona,04013,5525,238 +2020-05-09,Maricopa,Arizona,04013,5779,245 +2020-05-10,Maricopa,Arizona,04013,5827,247 +2020-05-11,Maricopa,Arizona,04013,5988,250 +2020-05-12,Maricopa,Arizona,04013,6219,259 +2020-05-13,Maricopa,Arizona,04013,6341,281 +2020-05-14,Maricopa,Arizona,04013,6599,292 +2020-05-15,Maricopa,Arizona,04013,6821,302 +2020-05-16,Maricopa,Arizona,04013,7096,319 +2020-05-17,Maricopa,Arizona,04013,7240,319 +2020-05-18,Maricopa,Arizona,04013,7340,324 +2020-05-19,Maricopa,Arizona,04013,7482,339 +2020-05-20,Maricopa,Arizona,04013,7644,357 +2020-05-21,Maricopa,Arizona,04013,7835,361 +2020-05-22,Maricopa,Arizona,04013,7950,368 +2020-05-23,Maricopa,Arizona,04013,8177,383 +2020-05-24,Maricopa,Arizona,04013,8277,384 +2020-05-25,Maricopa,Arizona,04013,8379,385 +2020-05-26,Maricopa,Arizona,04013,8448,384 +2020-05-27,Maricopa,Arizona,04013,8627,397 +2020-05-28,Maricopa,Arizona,04013,8896,403 +2020-05-29,Maricopa,Arizona,04013,9112,419 +2020-05-30,Maricopa,Arizona,04013,9522,430 +2020-05-31,Maricopa,Arizona,04013,9815,432 +2020-06-01,Maricopa,Arizona,04013,9937,433 +2020-06-02,Maricopa,Arizona,04013,10536,448 +2020-06-03,Maricopa,Arizona,04013,11068,466 +2020-06-04,Maricopa,Arizona,04013,11229,471 +2020-06-05,Maricopa,Arizona,04013,12091,479 +2020-06-06,Maricopa,Arizona,04013,12761,489 +2020-06-07,Maricopa,Arizona,04013,13498,490 +2020-06-08,Maricopa,Arizona,04013,14003,491 +2020-06-09,Maricopa,Arizona,04013,14374,504 +2020-06-10,Maricopa,Arizona,04013,15282,519 +2020-06-11,Maricopa,Arizona,04013,16148,532 +2020-06-12,Maricopa,Arizona,04013,17023,536 +2020-06-13,Maricopa,Arizona,04013,17791,549 +2020-06-14,Maricopa,Arizona,04013,18692,551 +2020-06-15,Maricopa,Arizona,04013,19372,557 +2020-06-16,Maricopa,Arizona,04013,20775,568 +2020-06-17,Maricopa,Arizona,04013,22272,579 +2020-06-18,Maricopa,Arizona,04013,23890,598 +2020-06-19,Maricopa,Arizona,04013,25999,615 +2020-06-20,Maricopa,Arizona,04013,28303,633 +2020-06-21,Maricopa,Arizona,04013,30136,632 +2020-06-22,Maricopa,Arizona,04013,31650,634 +2020-06-23,Maricopa,Arizona,04013,33883,663 +2020-06-24,Maricopa,Arizona,04013,34993,690 +2020-06-25,Maricopa,Arizona,04013,37135,694 +2020-06-26,Maricopa,Arizona,04013,39626,718 +2020-06-27,Maricopa,Arizona,04013,42374,741 +2020-06-28,Maricopa,Arizona,04013,44962,746 +2020-06-29,Maricopa,Arizona,04013,45178,746 +2020-06-30,Maricopa,Arizona,04013,48710,771 +2020-07-01,Maricopa,Arizona,04013,52266,817 +2020-07-02,Maricopa,Arizona,04013,54757,843 +2020-07-03,Maricopa,Arizona,04013,57929,865 +2020-07-04,Maricopa,Arizona,04013,59829,880 +2020-07-05,Maricopa,Arizona,04013,62296,883 +2020-07-06,Maricopa,Arizona,04013,64915,881 +2020-07-07,Maricopa,Arizona,04013,67543,933 +2020-07-08,Maricopa,Arizona,04013,70128,959 +2020-07-09,Maricopa,Arizona,04013,73165,1012 +2020-03-26,Mohave,Arizona,04015,2,0 +2020-03-27,Mohave,Arizona,04015,4,0 +2020-03-28,Mohave,Arizona,04015,5,0 +2020-03-29,Mohave,Arizona,04015,6,0 +2020-03-30,Mohave,Arizona,04015,7,0 +2020-03-31,Mohave,Arizona,04015,7,0 +2020-04-01,Mohave,Arizona,04015,7,0 +2020-04-02,Mohave,Arizona,04015,8,0 +2020-04-03,Mohave,Arizona,04015,9,0 +2020-04-04,Mohave,Arizona,04015,12,0 +2020-04-05,Mohave,Arizona,04015,16,1 +2020-04-06,Mohave,Arizona,04015,21,1 +2020-04-07,Mohave,Arizona,04015,23,1 +2020-04-08,Mohave,Arizona,04015,23,1 +2020-04-09,Mohave,Arizona,04015,27,1 +2020-04-10,Mohave,Arizona,04015,28,2 +2020-04-11,Mohave,Arizona,04015,30,2 +2020-04-12,Mohave,Arizona,04015,30,2 +2020-04-13,Mohave,Arizona,04015,40,2 +2020-04-14,Mohave,Arizona,04015,45,2 +2020-04-15,Mohave,Arizona,04015,45,2 +2020-04-16,Mohave,Arizona,04015,51,2 +2020-04-17,Mohave,Arizona,04015,51,2 +2020-04-18,Mohave,Arizona,04015,52,2 +2020-04-19,Mohave,Arizona,04015,54,2 +2020-04-20,Mohave,Arizona,04015,56,3 +2020-04-21,Mohave,Arizona,04015,59,3 +2020-04-22,Mohave,Arizona,04015,62,3 +2020-04-23,Mohave,Arizona,04015,69,3 +2020-04-24,Mohave,Arizona,04015,73,3 +2020-04-25,Mohave,Arizona,04015,81,3 +2020-04-26,Mohave,Arizona,04015,88,4 +2020-04-27,Mohave,Arizona,04015,96,4 +2020-04-28,Mohave,Arizona,04015,99,4 +2020-04-29,Mohave,Arizona,04015,105,7 +2020-04-30,Mohave,Arizona,04015,117,10 +2020-05-01,Mohave,Arizona,04015,122,13 +2020-05-02,Mohave,Arizona,04015,127,15 +2020-05-03,Mohave,Arizona,04015,135,15 +2020-05-04,Mohave,Arizona,04015,141,15 +2020-05-05,Mohave,Arizona,04015,147,16 +2020-05-06,Mohave,Arizona,04015,150,17 +2020-05-07,Mohave,Arizona,04015,158,19 +2020-05-08,Mohave,Arizona,04015,171,20 +2020-05-09,Mohave,Arizona,04015,178,23 +2020-05-10,Mohave,Arizona,04015,193,24 +2020-05-11,Mohave,Arizona,04015,198,25 +2020-05-12,Mohave,Arizona,04015,207,26 +2020-05-13,Mohave,Arizona,04015,213,26 +2020-05-14,Mohave,Arizona,04015,220,26 +2020-05-15,Mohave,Arizona,04015,242,27 +2020-05-16,Mohave,Arizona,04015,250,27 +2020-05-17,Mohave,Arizona,04015,250,28 +2020-05-18,Mohave,Arizona,04015,251,28 +2020-05-19,Mohave,Arizona,04015,262,28 +2020-05-20,Mohave,Arizona,04015,267,29 +2020-05-21,Mohave,Arizona,04015,277,31 +2020-05-22,Mohave,Arizona,04015,288,33 +2020-05-23,Mohave,Arizona,04015,303,34 +2020-05-24,Mohave,Arizona,04015,304,34 +2020-05-25,Mohave,Arizona,04015,319,37 +2020-05-26,Mohave,Arizona,04015,329,37 +2020-05-27,Mohave,Arizona,04015,339,42 +2020-05-28,Mohave,Arizona,04015,350,42 +2020-05-29,Mohave,Arizona,04015,369,42 +2020-05-30,Mohave,Arizona,04015,383,44 +2020-05-31,Mohave,Arizona,04015,396,44 +2020-06-01,Mohave,Arizona,04015,403,45 +2020-06-02,Mohave,Arizona,04015,409,46 +2020-06-03,Mohave,Arizona,04015,422,47 +2020-06-04,Mohave,Arizona,04015,428,49 +2020-06-05,Mohave,Arizona,04015,447,50 +2020-06-06,Mohave,Arizona,04015,485,57 +2020-06-07,Mohave,Arizona,04015,500,57 +2020-06-08,Mohave,Arizona,04015,512,58 +2020-06-09,Mohave,Arizona,04015,513,58 +2020-06-10,Mohave,Arizona,04015,552,59 +2020-06-11,Mohave,Arizona,04015,563,62 +2020-06-12,Mohave,Arizona,04015,584,64 +2020-06-13,Mohave,Arizona,04015,586,66 +2020-06-14,Mohave,Arizona,04015,589,66 +2020-06-15,Mohave,Arizona,04015,618,67 +2020-06-16,Mohave,Arizona,04015,624,67 +2020-06-17,Mohave,Arizona,04015,636,71 +2020-06-18,Mohave,Arizona,04015,676,72 +2020-06-19,Mohave,Arizona,04015,686,72 +2020-06-20,Mohave,Arizona,04015,717,72 +2020-06-21,Mohave,Arizona,04015,721,73 +2020-06-22,Mohave,Arizona,04015,723,73 +2020-06-23,Mohave,Arizona,04015,813,75 +2020-06-24,Mohave,Arizona,04015,841,78 +2020-06-25,Mohave,Arizona,04015,881,80 +2020-06-26,Mohave,Arizona,04015,927,84 +2020-06-27,Mohave,Arizona,04015,962,85 +2020-06-28,Mohave,Arizona,04015,1004,85 +2020-06-29,Mohave,Arizona,04015,1028,85 +2020-06-30,Mohave,Arizona,04015,1071,85 +2020-07-01,Mohave,Arizona,04015,1142,87 +2020-07-02,Mohave,Arizona,04015,1248,88 +2020-07-03,Mohave,Arizona,04015,1342,88 +2020-07-04,Mohave,Arizona,04015,1358,88 +2020-07-05,Mohave,Arizona,04015,1384,88 +2020-07-06,Mohave,Arizona,04015,1436,88 +2020-07-07,Mohave,Arizona,04015,1454,93 +2020-07-08,Mohave,Arizona,04015,1573,94 +2020-07-09,Mohave,Arizona,04015,1662,96 +2020-03-17,Navajo,Arizona,04017,1,0 +2020-03-18,Navajo,Arizona,04017,2,0 +2020-03-19,Navajo,Arizona,04017,3,0 +2020-03-20,Navajo,Arizona,04017,3,0 +2020-03-21,Navajo,Arizona,04017,10,0 +2020-03-22,Navajo,Arizona,04017,13,0 +2020-03-23,Navajo,Arizona,04017,25,0 +2020-03-24,Navajo,Arizona,04017,32,0 +2020-03-25,Navajo,Arizona,04017,37,0 +2020-03-26,Navajo,Arizona,04017,43,0 +2020-03-27,Navajo,Arizona,04017,49,0 +2020-03-28,Navajo,Arizona,04017,57,0 +2020-03-29,Navajo,Arizona,04017,62,0 +2020-03-30,Navajo,Arizona,04017,88,0 +2020-03-31,Navajo,Arizona,04017,91,0 +2020-04-01,Navajo,Arizona,04017,102,0 +2020-04-02,Navajo,Arizona,04017,129,1 +2020-04-03,Navajo,Arizona,04017,148,1 +2020-04-04,Navajo,Arizona,04017,177,1 +2020-04-05,Navajo,Arizona,04017,195,1 +2020-04-06,Navajo,Arizona,04017,210,1 +2020-04-07,Navajo,Arizona,04017,222,1 +2020-04-08,Navajo,Arizona,04017,240,7 +2020-04-09,Navajo,Arizona,04017,286,7 +2020-04-10,Navajo,Arizona,04017,287,7 +2020-04-11,Navajo,Arizona,04017,321,7 +2020-04-12,Navajo,Arizona,04017,335,8 +2020-04-13,Navajo,Arizona,04017,345,8 +2020-04-14,Navajo,Arizona,04017,355,9 +2020-04-15,Navajo,Arizona,04017,390,10 +2020-04-16,Navajo,Arizona,04017,410,11 +2020-04-17,Navajo,Arizona,04017,435,11 +2020-04-18,Navajo,Arizona,04017,452,11 +2020-04-19,Navajo,Arizona,04017,459,11 +2020-04-20,Navajo,Arizona,04017,473,11 +2020-04-21,Navajo,Arizona,04017,485,11 +2020-04-22,Navajo,Arizona,04017,527,12 +2020-04-23,Navajo,Arizona,04017,564,13 +2020-04-24,Navajo,Arizona,04017,583,18 +2020-04-25,Navajo,Arizona,04017,612,18 +2020-04-26,Navajo,Arizona,04017,625,18 +2020-04-27,Navajo,Arizona,04017,628,18 +2020-04-28,Navajo,Arizona,04017,665,18 +2020-04-29,Navajo,Arizona,04017,682,18 +2020-04-30,Navajo,Arizona,04017,712,21 +2020-05-01,Navajo,Arizona,04017,741,21 +2020-05-02,Navajo,Arizona,04017,766,22 +2020-05-03,Navajo,Arizona,04017,777,22 +2020-05-04,Navajo,Arizona,04017,800,22 +2020-05-05,Navajo,Arizona,04017,869,26 +2020-05-06,Navajo,Arizona,04017,892,31 +2020-05-07,Navajo,Arizona,04017,912,32 +2020-05-08,Navajo,Arizona,04017,945,35 +2020-05-09,Navajo,Arizona,04017,981,36 +2020-05-10,Navajo,Arizona,04017,983,36 +2020-05-11,Navajo,Arizona,04017,1006,37 +2020-05-12,Navajo,Arizona,04017,1017,41 +2020-05-13,Navajo,Arizona,04017,1099,42 +2020-05-14,Navajo,Arizona,04017,1150,43 +2020-05-15,Navajo,Arizona,04017,1177,48 +2020-05-16,Navajo,Arizona,04017,1238,48 +2020-05-17,Navajo,Arizona,04017,1273,48 +2020-05-18,Navajo,Arizona,04017,1285,48 +2020-05-19,Navajo,Arizona,04017,1320,48 +2020-05-20,Navajo,Arizona,04017,1361,52 +2020-05-21,Navajo,Arizona,04017,1421,52 +2020-05-22,Navajo,Arizona,04017,1470,53 +2020-05-23,Navajo,Arizona,04017,1491,56 +2020-05-24,Navajo,Arizona,04017,1523,56 +2020-05-25,Navajo,Arizona,04017,1543,56 +2020-05-26,Navajo,Arizona,04017,1550,56 +2020-05-27,Navajo,Arizona,04017,1652,57 +2020-05-28,Navajo,Arizona,04017,1678,58 +2020-05-29,Navajo,Arizona,04017,1752,58 +2020-05-30,Navajo,Arizona,04017,1833,59 +2020-05-31,Navajo,Arizona,04017,1866,60 +2020-06-01,Navajo,Arizona,04017,1873,64 +2020-06-02,Navajo,Arizona,04017,1957,64 +2020-06-03,Navajo,Arizona,04017,1994,67 +2020-06-04,Navajo,Arizona,04017,2042,67 +2020-06-05,Navajo,Arizona,04017,2104,68 +2020-06-06,Navajo,Arizona,04017,2152,72 +2020-06-07,Navajo,Arizona,04017,2198,72 +2020-06-08,Navajo,Arizona,04017,2229,72 +2020-06-09,Navajo,Arizona,04017,2253,72 +2020-06-10,Navajo,Arizona,04017,2388,75 +2020-06-11,Navajo,Arizona,04017,2483,79 +2020-06-12,Navajo,Arizona,04017,2512,79 +2020-06-13,Navajo,Arizona,04017,2590,86 +2020-06-14,Navajo,Arizona,04017,2619,86 +2020-06-15,Navajo,Arizona,04017,2636,86 +2020-06-16,Navajo,Arizona,04017,2749,88 +2020-06-17,Navajo,Arizona,04017,2771,90 +2020-06-18,Navajo,Arizona,04017,2874,93 +2020-06-19,Navajo,Arizona,04017,2928,95 +2020-06-20,Navajo,Arizona,04017,2984,95 +2020-06-21,Navajo,Arizona,04017,3009,95 +2020-06-22,Navajo,Arizona,04017,3037,95 +2020-06-23,Navajo,Arizona,04017,3166,97 +2020-06-24,Navajo,Arizona,04017,3248,114 +2020-06-25,Navajo,Arizona,04017,3311,115 +2020-06-26,Navajo,Arizona,04017,3367,122 +2020-06-27,Navajo,Arizona,04017,3397,124 +2020-06-28,Navajo,Arizona,04017,3537,124 +2020-06-29,Navajo,Arizona,04017,3570,124 +2020-06-30,Navajo,Arizona,04017,3625,125 +2020-07-01,Navajo,Arizona,04017,3703,130 +2020-07-02,Navajo,Arizona,04017,3744,131 +2020-07-03,Navajo,Arizona,04017,3817,132 +2020-07-04,Navajo,Arizona,04017,3848,133 +2020-07-05,Navajo,Arizona,04017,3883,133 +2020-07-06,Navajo,Arizona,04017,3904,133 +2020-07-07,Navajo,Arizona,04017,4015,134 +2020-07-08,Navajo,Arizona,04017,4089,135 +2020-07-09,Navajo,Arizona,04017,4150,134 +2020-03-09,Pima,Arizona,04019,1,0 +2020-03-10,Pima,Arizona,04019,1,0 +2020-03-11,Pima,Arizona,04019,1,0 +2020-03-12,Pima,Arizona,04019,1,0 +2020-03-13,Pima,Arizona,04019,1,0 +2020-03-14,Pima,Arizona,04019,2,0 +2020-03-15,Pima,Arizona,04019,3,0 +2020-03-16,Pima,Arizona,04019,4,0 +2020-03-17,Pima,Arizona,04019,4,0 +2020-03-18,Pima,Arizona,04019,5,0 +2020-03-19,Pima,Arizona,04019,7,0 +2020-03-20,Pima,Arizona,04019,8,0 +2020-03-21,Pima,Arizona,04019,12,0 +2020-03-22,Pima,Arizona,04019,17,0 +2020-03-23,Pima,Arizona,04019,24,0 +2020-03-24,Pima,Arizona,04019,42,0 +2020-03-25,Pima,Arizona,04019,49,0 +2020-03-26,Pima,Arizona,04019,75,0 +2020-03-27,Pima,Arizona,04019,102,4 +2020-03-28,Pima,Arizona,04019,120,5 +2020-03-29,Pima,Arizona,04019,153,6 +2020-03-30,Pima,Arizona,04019,187,6 +2020-03-31,Pima,Arizona,04019,202,6 +2020-04-01,Pima,Arizona,04019,217,10 +2020-04-02,Pima,Arizona,04019,237,11 +2020-04-03,Pima,Arizona,04019,280,11 +2020-04-04,Pima,Arizona,04019,326,12 +2020-04-05,Pima,Arizona,04019,372,12 +2020-04-06,Pima,Arizona,04019,415,13 +2020-04-07,Pima,Arizona,04019,415,13 +2020-04-08,Pima,Arizona,04019,464,16 +2020-04-09,Pima,Arizona,04019,512,20 +2020-04-10,Pima,Arizona,04019,543,20 +2020-04-11,Pima,Arizona,04019,591,29 +2020-04-12,Pima,Arizona,04019,622,29 +2020-04-13,Pima,Arizona,04019,668,29 +2020-04-14,Pima,Arizona,04019,685,32 +2020-04-15,Pima,Arizona,04019,700,34 +2020-04-16,Pima,Arizona,04019,760,37 +2020-04-17,Pima,Arizona,04019,819,51 +2020-04-18,Pima,Arizona,04019,856,56 +2020-04-19,Pima,Arizona,04019,913,56 +2020-04-20,Pima,Arizona,04019,941,58 +2020-04-21,Pima,Arizona,04019,963,65 +2020-04-22,Pima,Arizona,04019,973,68 +2020-04-23,Pima,Arizona,04019,1026,70 +2020-04-24,Pima,Arizona,04019,1060,74 +2020-04-25,Pima,Arizona,04019,1090,76 +2020-04-26,Pima,Arizona,04019,1136,76 +2020-04-27,Pima,Arizona,04019,1164,76 +2020-04-28,Pima,Arizona,04019,1188,78 +2020-04-29,Pima,Arizona,04019,1215,80 +2020-04-30,Pima,Arizona,04019,1241,80 +2020-05-01,Pima,Arizona,04019,1267,81 +2020-05-02,Pima,Arizona,04019,1300,89 +2020-05-03,Pima,Arizona,04019,1326,89 +2020-05-04,Pima,Arizona,04019,1346,89 +2020-05-05,Pima,Arizona,04019,1379,105 +2020-05-06,Pima,Arizona,04019,1425,116 +2020-05-07,Pima,Arizona,04019,1465,118 +2020-05-08,Pima,Arizona,04019,1520,131 +2020-05-09,Pima,Arizona,04019,1554,133 +2020-05-10,Pima,Arizona,04019,1585,134 +2020-05-11,Pima,Arizona,04019,1602,134 +2020-05-12,Pima,Arizona,04019,1623,136 +2020-05-13,Pima,Arizona,04019,1661,144 +2020-05-14,Pima,Arizona,04019,1696,152 +2020-05-15,Pima,Arizona,04019,1750,155 +2020-05-16,Pima,Arizona,04019,1781,157 +2020-05-17,Pima,Arizona,04019,1814,157 +2020-05-18,Pima,Arizona,04019,1825,157 +2020-05-19,Pima,Arizona,04019,1888,158 +2020-05-20,Pima,Arizona,04019,1903,167 +2020-05-21,Pima,Arizona,04019,1944,174 +2020-05-22,Pima,Arizona,04019,1974,174 +2020-05-23,Pima,Arizona,04019,2002,174 +2020-05-24,Pima,Arizona,04019,2027,173 +2020-05-25,Pima,Arizona,04019,2046,173 +2020-05-26,Pima,Arizona,04019,2075,173 +2020-05-27,Pima,Arizona,04019,2119,175 +2020-05-28,Pima,Arizona,04019,2167,186 +2020-05-29,Pima,Arizona,04019,2234,185 +2020-05-30,Pima,Arizona,04019,2290,185 +2020-05-31,Pima,Arizona,04019,2368,185 +2020-06-01,Pima,Arizona,04019,2382,185 +2020-06-02,Pima,Arizona,04019,2496,191 +2020-06-03,Pima,Arizona,04019,2627,196 +2020-06-04,Pima,Arizona,04019,2669,202 +2020-06-05,Pima,Arizona,04019,2883,202 +2020-06-06,Pima,Arizona,04019,2950,205 +2020-06-07,Pima,Arizona,04019,3098,205 +2020-06-08,Pima,Arizona,04019,3154,205 +2020-06-09,Pima,Arizona,04019,3161,212 +2020-06-10,Pima,Arizona,04019,3350,216 +2020-06-11,Pima,Arizona,04019,3483,218 +2020-06-12,Pima,Arizona,04019,3628,222 +2020-06-13,Pima,Arizona,04019,3889,223 +2020-06-14,Pima,Arizona,04019,3910,223 +2020-06-15,Pima,Arizona,04019,3944,223 +2020-06-16,Pima,Arizona,04019,4329,226 +2020-06-17,Pima,Arizona,04019,4385,229 +2020-06-18,Pima,Arizona,04019,4682,235 +2020-06-19,Pima,Arizona,04019,5019,240 +2020-06-20,Pima,Arizona,04019,5313,242 +2020-06-21,Pima,Arizona,04019,5370,242 +2020-06-22,Pima,Arizona,04019,5587,242 +2020-06-23,Pima,Arizona,04019,6089,247 +2020-06-24,Pima,Arizona,04019,6318,255 +2020-06-25,Pima,Arizona,04019,6546,272 +2020-06-26,Pima,Arizona,04019,6836,266 +2020-06-27,Pima,Arizona,04019,7086,268 +2020-06-28,Pima,Arizona,04019,7525,268 +2020-06-29,Pima,Arizona,04019,7568,268 +2020-06-30,Pima,Arizona,04019,8004,273 +2020-07-01,Pima,Arizona,04019,8387,280 +2020-07-02,Pima,Arizona,04019,8577,280 +2020-07-03,Pima,Arizona,04019,9024,282 +2020-07-04,Pima,Arizona,04019,9313,282 +2020-07-05,Pima,Arizona,04019,9621,282 +2020-07-06,Pima,Arizona,04019,9873,282 +2020-07-07,Pima,Arizona,04019,10184,302 +2020-07-08,Pima,Arizona,04019,10485,302 +2020-07-09,Pima,Arizona,04019,10835,313 +2020-03-06,Pinal,Arizona,04021,1,0 +2020-03-07,Pinal,Arizona,04021,3,0 +2020-03-08,Pinal,Arizona,04021,3,0 +2020-03-09,Pinal,Arizona,04021,3,0 +2020-03-10,Pinal,Arizona,04021,3,0 +2020-03-11,Pinal,Arizona,04021,5,0 +2020-03-12,Pinal,Arizona,04021,5,0 +2020-03-13,Pinal,Arizona,04021,5,0 +2020-03-14,Pinal,Arizona,04021,5,0 +2020-03-15,Pinal,Arizona,04021,5,0 +2020-03-16,Pinal,Arizona,04021,5,0 +2020-03-17,Pinal,Arizona,04021,5,0 +2020-03-18,Pinal,Arizona,04021,8,0 +2020-03-19,Pinal,Arizona,04021,10,0 +2020-03-20,Pinal,Arizona,04021,10,0 +2020-03-21,Pinal,Arizona,04021,14,0 +2020-03-22,Pinal,Arizona,04021,16,0 +2020-03-23,Pinal,Arizona,04021,17,0 +2020-03-24,Pinal,Arizona,04021,22,0 +2020-03-25,Pinal,Arizona,04021,23,0 +2020-03-26,Pinal,Arizona,04021,35,0 +2020-03-27,Pinal,Arizona,04021,36,0 +2020-03-28,Pinal,Arizona,04021,41,0 +2020-03-29,Pinal,Arizona,04021,51,0 +2020-03-30,Pinal,Arizona,04021,64,0 +2020-03-31,Pinal,Arizona,04021,62,0 +2020-04-01,Pinal,Arizona,04021,65,0 +2020-04-02,Pinal,Arizona,04021,69,0 +2020-04-03,Pinal,Arizona,04021,77,0 +2020-04-04,Pinal,Arizona,04021,89,0 +2020-04-05,Pinal,Arizona,04021,103,0 +2020-04-06,Pinal,Arizona,04021,107,0 +2020-04-07,Pinal,Arizona,04021,120,0 +2020-04-08,Pinal,Arizona,04021,124,0 +2020-04-09,Pinal,Arizona,04021,137,3 +2020-04-10,Pinal,Arizona,04021,138,3 +2020-04-11,Pinal,Arizona,04021,146,3 +2020-04-12,Pinal,Arizona,04021,163,4 +2020-04-13,Pinal,Arizona,04021,168,4 +2020-04-14,Pinal,Arizona,04021,175,5 +2020-04-15,Pinal,Arizona,04021,182,5 +2020-04-16,Pinal,Arizona,04021,197,5 +2020-04-17,Pinal,Arizona,04021,212,5 +2020-04-18,Pinal,Arizona,04021,235,6 +2020-04-19,Pinal,Arizona,04021,247,7 +2020-04-20,Pinal,Arizona,04021,256,7 +2020-04-21,Pinal,Arizona,04021,268,7 +2020-04-22,Pinal,Arizona,04021,283,8 +2020-04-23,Pinal,Arizona,04021,303,8 +2020-04-24,Pinal,Arizona,04021,317,9 +2020-04-25,Pinal,Arizona,04021,332,9 +2020-04-26,Pinal,Arizona,04021,342,9 +2020-04-27,Pinal,Arizona,04021,359,9 +2020-04-28,Pinal,Arizona,04021,365,9 +2020-04-29,Pinal,Arizona,04021,387,11 +2020-04-30,Pinal,Arizona,04021,397,11 +2020-05-01,Pinal,Arizona,04021,417,13 +2020-05-02,Pinal,Arizona,04021,435,13 +2020-05-03,Pinal,Arizona,04021,456,13 +2020-05-04,Pinal,Arizona,04021,468,13 +2020-05-05,Pinal,Arizona,04021,478,15 +2020-05-06,Pinal,Arizona,04021,497,15 +2020-05-07,Pinal,Arizona,04021,530,15 +2020-05-08,Pinal,Arizona,04021,566,19 +2020-05-09,Pinal,Arizona,04021,585,19 +2020-05-10,Pinal,Arizona,04021,600,19 +2020-05-11,Pinal,Arizona,04021,620,19 +2020-05-12,Pinal,Arizona,04021,636,20 +2020-05-13,Pinal,Arizona,04021,643,20 +2020-05-14,Pinal,Arizona,04021,650,28 +2020-05-15,Pinal,Arizona,04021,670,28 +2020-05-16,Pinal,Arizona,04021,678,31 +2020-05-17,Pinal,Arizona,04021,693,31 +2020-05-18,Pinal,Arizona,04021,702,31 +2020-05-19,Pinal,Arizona,04021,720,32 +2020-05-20,Pinal,Arizona,04021,724,37 +2020-05-21,Pinal,Arizona,04021,732,37 +2020-05-22,Pinal,Arizona,04021,749,37 +2020-05-23,Pinal,Arizona,04021,751,37 +2020-05-24,Pinal,Arizona,04021,755,37 +2020-05-25,Pinal,Arizona,04021,764,37 +2020-05-26,Pinal,Arizona,04021,766,37 +2020-05-27,Pinal,Arizona,04021,777,37 +2020-05-28,Pinal,Arizona,04021,788,37 +2020-05-29,Pinal,Arizona,04021,814,39 +2020-05-30,Pinal,Arizona,04021,837,39 +2020-05-31,Pinal,Arizona,04021,863,39 +2020-06-01,Pinal,Arizona,04021,865,40 +2020-06-02,Pinal,Arizona,04021,909,39 +2020-06-03,Pinal,Arizona,04021,940,39 +2020-06-04,Pinal,Arizona,04021,948,40 +2020-06-05,Pinal,Arizona,04021,1018,41 +2020-06-06,Pinal,Arizona,04021,1067,41 +2020-06-07,Pinal,Arizona,04021,1112,41 +2020-06-08,Pinal,Arizona,04021,1127,41 +2020-06-09,Pinal,Arizona,04021,1164,41 +2020-06-10,Pinal,Arizona,04021,1209,42 +2020-06-11,Pinal,Arizona,04021,1281,42 +2020-06-12,Pinal,Arizona,04021,1363,43 +2020-06-13,Pinal,Arizona,04021,1500,44 +2020-06-14,Pinal,Arizona,04021,1500,44 +2020-06-15,Pinal,Arizona,04021,1568,44 +2020-06-16,Pinal,Arizona,04021,1727,47 +2020-06-17,Pinal,Arizona,04021,1793,47 +2020-06-18,Pinal,Arizona,04021,1888,47 +2020-06-19,Pinal,Arizona,04021,2130,49 +2020-06-20,Pinal,Arizona,04021,2171,50 +2020-06-21,Pinal,Arizona,04021,2357,50 +2020-06-22,Pinal,Arizona,04021,2459,50 +2020-06-23,Pinal,Arizona,04021,2704,51 +2020-06-24,Pinal,Arizona,04021,2778,55 +2020-06-25,Pinal,Arizona,04021,2912,58 +2020-06-26,Pinal,Arizona,04021,3035,59 +2020-06-27,Pinal,Arizona,04021,3154,61 +2020-06-28,Pinal,Arizona,04021,3350,63 +2020-06-29,Pinal,Arizona,04021,3382,63 +2020-06-30,Pinal,Arizona,04021,3574,67 +2020-07-01,Pinal,Arizona,04021,3777,71 +2020-07-02,Pinal,Arizona,04021,3908,74 +2020-07-03,Pinal,Arizona,04021,4139,75 +2020-07-04,Pinal,Arizona,04021,4237,75 +2020-07-05,Pinal,Arizona,04021,4391,75 +2020-07-06,Pinal,Arizona,04021,4600,78 +2020-07-07,Pinal,Arizona,04021,4792,81 +2020-07-08,Pinal,Arizona,04021,4959,81 +2020-07-09,Pinal,Arizona,04021,5156,82 +2020-03-19,Santa Cruz,Arizona,04023,1,0 +2020-03-20,Santa Cruz,Arizona,04023,1,0 +2020-03-21,Santa Cruz,Arizona,04023,1,0 +2020-03-22,Santa Cruz,Arizona,04023,1,0 +2020-03-23,Santa Cruz,Arizona,04023,1,0 +2020-03-24,Santa Cruz,Arizona,04023,1,0 +2020-03-25,Santa Cruz,Arizona,04023,2,0 +2020-03-26,Santa Cruz,Arizona,04023,2,0 +2020-03-27,Santa Cruz,Arizona,04023,2,0 +2020-03-28,Santa Cruz,Arizona,04023,2,0 +2020-03-29,Santa Cruz,Arizona,04023,2,0 +2020-03-30,Santa Cruz,Arizona,04023,2,0 +2020-03-31,Santa Cruz,Arizona,04023,2,0 +2020-04-01,Santa Cruz,Arizona,04023,3,0 +2020-04-02,Santa Cruz,Arizona,04023,3,0 +2020-04-03,Santa Cruz,Arizona,04023,3,0 +2020-04-04,Santa Cruz,Arizona,04023,4,0 +2020-04-05,Santa Cruz,Arizona,04023,4,0 +2020-04-06,Santa Cruz,Arizona,04023,5,0 +2020-04-07,Santa Cruz,Arizona,04023,5,0 +2020-04-08,Santa Cruz,Arizona,04023,6,0 +2020-04-09,Santa Cruz,Arizona,04023,7,0 +2020-04-10,Santa Cruz,Arizona,04023,7,0 +2020-04-11,Santa Cruz,Arizona,04023,8,0 +2020-04-12,Santa Cruz,Arizona,04023,8,0 +2020-04-13,Santa Cruz,Arizona,04023,10,0 +2020-04-14,Santa Cruz,Arizona,04023,10,0 +2020-04-15,Santa Cruz,Arizona,04023,12,0 +2020-04-16,Santa Cruz,Arizona,04023,14,0 +2020-04-17,Santa Cruz,Arizona,04023,15,0 +2020-04-18,Santa Cruz,Arizona,04023,16,0 +2020-04-19,Santa Cruz,Arizona,04023,19,0 +2020-04-20,Santa Cruz,Arizona,04023,20,0 +2020-04-21,Santa Cruz,Arizona,04023,23,0 +2020-04-22,Santa Cruz,Arizona,04023,28,0 +2020-04-23,Santa Cruz,Arizona,04023,28,0 +2020-04-24,Santa Cruz,Arizona,04023,30,0 +2020-04-25,Santa Cruz,Arizona,04023,30,0 +2020-04-26,Santa Cruz,Arizona,04023,30,0 +2020-04-27,Santa Cruz,Arizona,04023,30,0 +2020-04-28,Santa Cruz,Arizona,04023,31,0 +2020-04-29,Santa Cruz,Arizona,04023,31,0 +2020-04-30,Santa Cruz,Arizona,04023,33,0 +2020-05-01,Santa Cruz,Arizona,04023,33,0 +2020-05-02,Santa Cruz,Arizona,04023,34,0 +2020-05-03,Santa Cruz,Arizona,04023,34,0 +2020-05-04,Santa Cruz,Arizona,04023,34,0 +2020-05-05,Santa Cruz,Arizona,04023,35,0 +2020-05-06,Santa Cruz,Arizona,04023,37,0 +2020-05-07,Santa Cruz,Arizona,04023,38,0 +2020-05-08,Santa Cruz,Arizona,04023,38,0 +2020-05-09,Santa Cruz,Arizona,04023,40,0 +2020-05-10,Santa Cruz,Arizona,04023,44,0 +2020-05-11,Santa Cruz,Arizona,04023,45,0 +2020-05-12,Santa Cruz,Arizona,04023,51,0 +2020-05-13,Santa Cruz,Arizona,04023,50,0 +2020-05-14,Santa Cruz,Arizona,04023,62,0 +2020-05-15,Santa Cruz,Arizona,04023,69,0 +2020-05-16,Santa Cruz,Arizona,04023,72,0 +2020-05-17,Santa Cruz,Arizona,04023,75,0 +2020-05-18,Santa Cruz,Arizona,04023,78,0 +2020-05-19,Santa Cruz,Arizona,04023,97,0 +2020-05-20,Santa Cruz,Arizona,04023,102,0 +2020-05-21,Santa Cruz,Arizona,04023,123,0 +2020-05-22,Santa Cruz,Arizona,04023,131,0 +2020-05-23,Santa Cruz,Arizona,04023,143,0 +2020-05-24,Santa Cruz,Arizona,04023,169,0 +2020-05-25,Santa Cruz,Arizona,04023,186,0 +2020-05-26,Santa Cruz,Arizona,04023,187,0 +2020-05-27,Santa Cruz,Arizona,04023,188,0 +2020-05-28,Santa Cruz,Arizona,04023,225,0 +2020-05-29,Santa Cruz,Arizona,04023,262,0 +2020-05-30,Santa Cruz,Arizona,04023,297,0 +2020-05-31,Santa Cruz,Arizona,04023,330,0 +2020-06-01,Santa Cruz,Arizona,04023,330,0 +2020-06-02,Santa Cruz,Arizona,04023,365,1 +2020-06-03,Santa Cruz,Arizona,04023,460,1 +2020-06-04,Santa Cruz,Arizona,04023,527,3 +2020-06-05,Santa Cruz,Arizona,04023,540,4 +2020-06-06,Santa Cruz,Arizona,04023,596,5 +2020-06-07,Santa Cruz,Arizona,04023,634,5 +2020-06-08,Santa Cruz,Arizona,04023,698,6 +2020-06-09,Santa Cruz,Arizona,04023,733,6 +2020-06-10,Santa Cruz,Arizona,04023,817,8 +2020-06-11,Santa Cruz,Arizona,04023,914,8 +2020-06-12,Santa Cruz,Arizona,04023,948,9 +2020-06-13,Santa Cruz,Arizona,04023,1027,12 +2020-06-14,Santa Cruz,Arizona,04023,1082,12 +2020-06-15,Santa Cruz,Arizona,04023,1149,12 +2020-06-16,Santa Cruz,Arizona,04023,1217,13 +2020-06-17,Santa Cruz,Arizona,04023,1217,13 +2020-06-18,Santa Cruz,Arizona,04023,1249,13 +2020-06-19,Santa Cruz,Arizona,04023,1297,14 +2020-06-20,Santa Cruz,Arizona,04023,1418,13 +2020-06-21,Santa Cruz,Arizona,04023,1488,13 +2020-06-22,Santa Cruz,Arizona,04023,1498,13 +2020-06-23,Santa Cruz,Arizona,04023,1540,14 +2020-06-24,Santa Cruz,Arizona,04023,1554,14 +2020-06-25,Santa Cruz,Arizona,04023,1603,14 +2020-06-26,Santa Cruz,Arizona,04023,1654,15 +2020-06-27,Santa Cruz,Arizona,04023,1684,17 +2020-06-28,Santa Cruz,Arizona,04023,1728,18 +2020-06-29,Santa Cruz,Arizona,04023,1733,18 +2020-06-30,Santa Cruz,Arizona,04023,1781,22 +2020-07-01,Santa Cruz,Arizona,04023,1823,23 +2020-07-02,Santa Cruz,Arizona,04023,1854,23 +2020-07-03,Santa Cruz,Arizona,04023,1896,26 +2020-07-04,Santa Cruz,Arizona,04023,1946,26 +2020-07-05,Santa Cruz,Arizona,04023,1984,26 +2020-07-06,Santa Cruz,Arizona,04023,2029,26 +2020-07-07,Santa Cruz,Arizona,04023,2048,29 +2020-07-08,Santa Cruz,Arizona,04023,2063,30 +2020-07-09,Santa Cruz,Arizona,04023,2096,30 +2020-03-19,Yavapai,Arizona,04025,1,0 +2020-03-20,Yavapai,Arizona,04025,1,0 +2020-03-21,Yavapai,Arizona,04025,1,0 +2020-03-22,Yavapai,Arizona,04025,3,0 +2020-03-23,Yavapai,Arizona,04025,3,0 +2020-03-24,Yavapai,Arizona,04025,3,0 +2020-03-25,Yavapai,Arizona,04025,4,0 +2020-03-26,Yavapai,Arizona,04025,5,0 +2020-03-27,Yavapai,Arizona,04025,9,0 +2020-03-28,Yavapai,Arizona,04025,13,0 +2020-03-29,Yavapai,Arizona,04025,12,0 +2020-03-30,Yavapai,Arizona,04025,19,0 +2020-03-31,Yavapai,Arizona,04025,24,0 +2020-04-01,Yavapai,Arizona,04025,24,0 +2020-04-02,Yavapai,Arizona,04025,34,0 +2020-04-03,Yavapai,Arizona,04025,35,0 +2020-04-04,Yavapai,Arizona,04025,43,0 +2020-04-05,Yavapai,Arizona,04025,45,0 +2020-04-06,Yavapai,Arizona,04025,50,1 +2020-04-07,Yavapai,Arizona,04025,57,1 +2020-04-08,Yavapai,Arizona,04025,58,1 +2020-04-09,Yavapai,Arizona,04025,62,1 +2020-04-10,Yavapai,Arizona,04025,62,1 +2020-04-11,Yavapai,Arizona,04025,63,1 +2020-04-12,Yavapai,Arizona,04025,63,1 +2020-04-13,Yavapai,Arizona,04025,65,1 +2020-04-14,Yavapai,Arizona,04025,70,1 +2020-04-15,Yavapai,Arizona,04025,66,1 +2020-04-16,Yavapai,Arizona,04025,68,1 +2020-04-17,Yavapai,Arizona,04025,69,1 +2020-04-18,Yavapai,Arizona,04025,72,1 +2020-04-19,Yavapai,Arizona,04025,72,1 +2020-04-20,Yavapai,Arizona,04025,71,1 +2020-04-21,Yavapai,Arizona,04025,72,1 +2020-04-22,Yavapai,Arizona,04025,73,1 +2020-04-23,Yavapai,Arizona,04025,75,1 +2020-04-24,Yavapai,Arizona,04025,75,1 +2020-04-25,Yavapai,Arizona,04025,76,1 +2020-04-26,Yavapai,Arizona,04025,76,1 +2020-04-27,Yavapai,Arizona,04025,77,1 +2020-04-28,Yavapai,Arizona,04025,77,1 +2020-04-29,Yavapai,Arizona,04025,79,2 +2020-04-30,Yavapai,Arizona,04025,79,2 +2020-05-01,Yavapai,Arizona,04025,82,2 +2020-05-02,Yavapai,Arizona,04025,87,2 +2020-05-03,Yavapai,Arizona,04025,89,2 +2020-05-04,Yavapai,Arizona,04025,93,2 +2020-05-05,Yavapai,Arizona,04025,126,2 +2020-05-06,Yavapai,Arizona,04025,140,3 +2020-05-07,Yavapai,Arizona,04025,152,3 +2020-05-08,Yavapai,Arizona,04025,170,4 +2020-05-09,Yavapai,Arizona,04025,175,4 +2020-05-10,Yavapai,Arizona,04025,177,4 +2020-05-11,Yavapai,Arizona,04025,180,4 +2020-05-12,Yavapai,Arizona,04025,206,4 +2020-05-13,Yavapai,Arizona,04025,227,4 +2020-05-14,Yavapai,Arizona,04025,243,4 +2020-05-15,Yavapai,Arizona,04025,254,5 +2020-05-16,Yavapai,Arizona,04025,260,5 +2020-05-17,Yavapai,Arizona,04025,262,5 +2020-05-18,Yavapai,Arizona,04025,267,5 +2020-05-19,Yavapai,Arizona,04025,269,5 +2020-05-20,Yavapai,Arizona,04025,273,6 +2020-05-21,Yavapai,Arizona,04025,273,6 +2020-05-22,Yavapai,Arizona,04025,284,6 +2020-05-23,Yavapai,Arizona,04025,284,6 +2020-05-24,Yavapai,Arizona,04025,285,6 +2020-05-25,Yavapai,Arizona,04025,288,6 +2020-05-26,Yavapai,Arizona,04025,291,6 +2020-05-27,Yavapai,Arizona,04025,292,6 +2020-05-28,Yavapai,Arizona,04025,294,6 +2020-05-29,Yavapai,Arizona,04025,295,6 +2020-05-30,Yavapai,Arizona,04025,296,7 +2020-05-31,Yavapai,Arizona,04025,297,6 +2020-06-01,Yavapai,Arizona,04025,297,6 +2020-06-02,Yavapai,Arizona,04025,300,6 +2020-06-03,Yavapai,Arizona,04025,304,6 +2020-06-04,Yavapai,Arizona,04025,307,6 +2020-06-05,Yavapai,Arizona,04025,314,6 +2020-06-06,Yavapai,Arizona,04025,326,6 +2020-06-07,Yavapai,Arizona,04025,327,6 +2020-06-08,Yavapai,Arizona,04025,330,6 +2020-06-09,Yavapai,Arizona,04025,340,6 +2020-06-10,Yavapai,Arizona,04025,348,6 +2020-06-11,Yavapai,Arizona,04025,359,7 +2020-06-12,Yavapai,Arizona,04025,367,7 +2020-06-13,Yavapai,Arizona,04025,374,7 +2020-06-14,Yavapai,Arizona,04025,374,7 +2020-06-15,Yavapai,Arizona,04025,374,7 +2020-06-16,Yavapai,Arizona,04025,384,7 +2020-06-17,Yavapai,Arizona,04025,387,7 +2020-06-18,Yavapai,Arizona,04025,402,7 +2020-06-19,Yavapai,Arizona,04025,417,7 +2020-06-20,Yavapai,Arizona,04025,436,7 +2020-06-21,Yavapai,Arizona,04025,456,7 +2020-06-22,Yavapai,Arizona,04025,490,7 +2020-06-23,Yavapai,Arizona,04025,510,7 +2020-06-24,Yavapai,Arizona,04025,521,7 +2020-06-25,Yavapai,Arizona,04025,564,7 +2020-06-26,Yavapai,Arizona,04025,597,7 +2020-06-27,Yavapai,Arizona,04025,628,8 +2020-06-28,Yavapai,Arizona,04025,668,8 +2020-06-29,Yavapai,Arizona,04025,771,8 +2020-06-30,Yavapai,Arizona,04025,794,9 +2020-07-01,Yavapai,Arizona,04025,791,10 +2020-07-02,Yavapai,Arizona,04025,853,11 +2020-07-03,Yavapai,Arizona,04025,861,11 +2020-07-04,Yavapai,Arizona,04025,881,11 +2020-07-05,Yavapai,Arizona,04025,929,11 +2020-07-06,Yavapai,Arizona,04025,973,10 +2020-07-07,Yavapai,Arizona,04025,999,11 +2020-07-08,Yavapai,Arizona,04025,1041,11 +2020-07-09,Yavapai,Arizona,04025,1056,11 +2020-03-20,Yuma,Arizona,04027,1,0 +2020-03-21,Yuma,Arizona,04027,1,0 +2020-03-22,Yuma,Arizona,04027,1,0 +2020-03-23,Yuma,Arizona,04027,1,0 +2020-03-24,Yuma,Arizona,04027,2,0 +2020-03-25,Yuma,Arizona,04027,3,0 +2020-03-26,Yuma,Arizona,04027,4,0 +2020-03-27,Yuma,Arizona,04027,4,0 +2020-03-28,Yuma,Arizona,04027,4,0 +2020-03-29,Yuma,Arizona,04027,9,0 +2020-03-30,Yuma,Arizona,04027,12,0 +2020-03-31,Yuma,Arizona,04027,12,0 +2020-04-01,Yuma,Arizona,04027,12,0 +2020-04-02,Yuma,Arizona,04027,13,0 +2020-04-03,Yuma,Arizona,04027,13,0 +2020-04-04,Yuma,Arizona,04027,14,0 +2020-04-05,Yuma,Arizona,04027,13,0 +2020-04-06,Yuma,Arizona,04027,15,0 +2020-04-07,Yuma,Arizona,04027,15,0 +2020-04-08,Yuma,Arizona,04027,14,0 +2020-04-09,Yuma,Arizona,04027,15,0 +2020-04-10,Yuma,Arizona,04027,16,0 +2020-04-11,Yuma,Arizona,04027,15,0 +2020-04-12,Yuma,Arizona,04027,17,0 +2020-04-13,Yuma,Arizona,04027,17,1 +2020-04-14,Yuma,Arizona,04027,17,1 +2020-04-15,Yuma,Arizona,04027,18,1 +2020-04-16,Yuma,Arizona,04027,21,1 +2020-04-17,Yuma,Arizona,04027,23,1 +2020-04-18,Yuma,Arizona,04027,24,1 +2020-04-19,Yuma,Arizona,04027,25,1 +2020-04-20,Yuma,Arizona,04027,27,1 +2020-04-21,Yuma,Arizona,04027,27,1 +2020-04-22,Yuma,Arizona,04027,28,1 +2020-04-23,Yuma,Arizona,04027,39,1 +2020-04-24,Yuma,Arizona,04027,42,1 +2020-04-25,Yuma,Arizona,04027,47,1 +2020-04-26,Yuma,Arizona,04027,51,1 +2020-04-27,Yuma,Arizona,04027,53,1 +2020-04-28,Yuma,Arizona,04027,60,1 +2020-04-29,Yuma,Arizona,04027,65,1 +2020-04-30,Yuma,Arizona,04027,78,1 +2020-05-01,Yuma,Arizona,04027,82,1 +2020-05-02,Yuma,Arizona,04027,89,1 +2020-05-03,Yuma,Arizona,04027,98,1 +2020-05-04,Yuma,Arizona,04027,110,1 +2020-05-05,Yuma,Arizona,04027,115,1 +2020-05-06,Yuma,Arizona,04027,134,1 +2020-05-07,Yuma,Arizona,04027,148,1 +2020-05-08,Yuma,Arizona,04027,159,1 +2020-05-09,Yuma,Arizona,04027,176,3 +2020-05-10,Yuma,Arizona,04027,191,3 +2020-05-11,Yuma,Arizona,04027,196,3 +2020-05-12,Yuma,Arizona,04027,207,3 +2020-05-13,Yuma,Arizona,04027,243,3 +2020-05-14,Yuma,Arizona,04027,285,4 +2020-05-15,Yuma,Arizona,04027,310,4 +2020-05-16,Yuma,Arizona,04027,328,4 +2020-05-17,Yuma,Arizona,04027,355,4 +2020-05-18,Yuma,Arizona,04027,405,4 +2020-05-19,Yuma,Arizona,04027,433,4 +2020-05-20,Yuma,Arizona,04027,450,5 +2020-05-21,Yuma,Arizona,04027,475,6 +2020-05-22,Yuma,Arizona,04027,492,7 +2020-05-23,Yuma,Arizona,04027,590,8 +2020-05-24,Yuma,Arizona,04027,632,9 +2020-05-25,Yuma,Arizona,04027,656,9 +2020-05-26,Yuma,Arizona,04027,717,10 +2020-05-27,Yuma,Arizona,04027,782,10 +2020-05-28,Yuma,Arizona,04027,822,11 +2020-05-29,Yuma,Arizona,04027,929,13 +2020-05-30,Yuma,Arizona,04027,979,14 +2020-05-31,Yuma,Arizona,04027,1105,15 +2020-06-01,Yuma,Arizona,04027,1131,15 +2020-06-02,Yuma,Arizona,04027,1275,15 +2020-06-03,Yuma,Arizona,04027,1387,19 +2020-06-04,Yuma,Arizona,04027,1510,20 +2020-06-05,Yuma,Arizona,04027,1708,22 +2020-06-06,Yuma,Arizona,04027,1850,24 +2020-06-07,Yuma,Arizona,04027,2131,25 +2020-06-08,Yuma,Arizona,04027,2257,26 +2020-06-09,Yuma,Arizona,04027,2378,28 +2020-06-10,Yuma,Arizona,04027,2439,28 +2020-06-11,Yuma,Arizona,04027,2586,31 +2020-06-12,Yuma,Arizona,04027,2962,45 +2020-06-13,Yuma,Arizona,04027,3144,47 +2020-06-14,Yuma,Arizona,04027,3279,49 +2020-06-15,Yuma,Arizona,04027,3404,51 +2020-06-16,Yuma,Arizona,04027,3467,53 +2020-06-17,Yuma,Arizona,04027,3637,55 +2020-06-18,Yuma,Arizona,04027,3874,58 +2020-06-19,Yuma,Arizona,04027,4078,61 +2020-06-20,Yuma,Arizona,04027,4403,63 +2020-06-21,Yuma,Arizona,04027,4604,65 +2020-06-22,Yuma,Arizona,04027,4756,67 +2020-06-23,Yuma,Arizona,04027,4940,69 +2020-06-24,Yuma,Arizona,04027,5131,72 +2020-06-25,Yuma,Arizona,04027,5364,73 +2020-06-26,Yuma,Arizona,04027,5524,77 +2020-06-27,Yuma,Arizona,04027,5680,81 +2020-06-28,Yuma,Arizona,04027,5793,86 +2020-06-29,Yuma,Arizona,04027,5895,90 +2020-06-30,Yuma,Arizona,04027,6225,94 +2020-07-01,Yuma,Arizona,04027,6498,98 +2020-07-02,Yuma,Arizona,04027,6683,103 +2020-07-03,Yuma,Arizona,04027,6838,107 +2020-07-04,Yuma,Arizona,04027,7062,110 +2020-07-05,Yuma,Arizona,04027,7346,114 +2020-07-06,Yuma,Arizona,04027,7445,117 +2020-07-07,Yuma,Arizona,04027,7613,120 +2020-07-08,Yuma,Arizona,04027,7780,124 +2020-07-09,Yuma,Arizona,04027,7904,129 +2020-03-29,Arkansas,Arkansas,05001,1,0 +2020-03-30,Arkansas,Arkansas,05001,2,0 +2020-03-31,Arkansas,Arkansas,05001,2,0 +2020-04-01,Arkansas,Arkansas,05001,2,0 +2020-04-02,Arkansas,Arkansas,05001,1,0 +2020-04-03,Arkansas,Arkansas,05001,1,0 +2020-04-04,Arkansas,Arkansas,05001,1,0 +2020-04-05,Arkansas,Arkansas,05001,1,0 +2020-04-06,Arkansas,Arkansas,05001,1,0 +2020-04-07,Arkansas,Arkansas,05001,1,0 +2020-04-08,Arkansas,Arkansas,05001,1,0 +2020-04-09,Arkansas,Arkansas,05001,2,0 +2020-04-10,Arkansas,Arkansas,05001,2,0 +2020-04-11,Arkansas,Arkansas,05001,2,0 +2020-04-12,Arkansas,Arkansas,05001,2,0 +2020-04-13,Arkansas,Arkansas,05001,2,0 +2020-04-14,Arkansas,Arkansas,05001,2,0 +2020-04-15,Arkansas,Arkansas,05001,2,0 +2020-04-16,Arkansas,Arkansas,05001,2,0 +2020-04-17,Arkansas,Arkansas,05001,2,0 +2020-04-18,Arkansas,Arkansas,05001,2,0 +2020-04-19,Arkansas,Arkansas,05001,2,0 +2020-04-20,Arkansas,Arkansas,05001,2,0 +2020-04-21,Arkansas,Arkansas,05001,2,0 +2020-04-22,Arkansas,Arkansas,05001,2,0 +2020-04-23,Arkansas,Arkansas,05001,2,0 +2020-04-24,Arkansas,Arkansas,05001,2,0 +2020-04-25,Arkansas,Arkansas,05001,2,0 +2020-04-26,Arkansas,Arkansas,05001,2,0 +2020-04-27,Arkansas,Arkansas,05001,2,0 +2020-04-28,Arkansas,Arkansas,05001,2,0 +2020-04-29,Arkansas,Arkansas,05001,2,0 +2020-04-30,Arkansas,Arkansas,05001,2,0 +2020-05-01,Arkansas,Arkansas,05001,2,0 +2020-05-02,Arkansas,Arkansas,05001,2,0 +2020-05-03,Arkansas,Arkansas,05001,3,0 +2020-05-04,Arkansas,Arkansas,05001,3,0 +2020-05-05,Arkansas,Arkansas,05001,2,0 +2020-05-06,Arkansas,Arkansas,05001,2,0 +2020-05-07,Arkansas,Arkansas,05001,2,0 +2020-05-08,Arkansas,Arkansas,05001,2,0 +2020-05-09,Arkansas,Arkansas,05001,2,0 +2020-05-10,Arkansas,Arkansas,05001,2,0 +2020-05-11,Arkansas,Arkansas,05001,2,0 +2020-05-12,Arkansas,Arkansas,05001,2,0 +2020-05-13,Arkansas,Arkansas,05001,2,0 +2020-05-14,Arkansas,Arkansas,05001,2,0 +2020-05-15,Arkansas,Arkansas,05001,2,0 +2020-05-16,Arkansas,Arkansas,05001,2,0 +2020-05-17,Arkansas,Arkansas,05001,2,0 +2020-05-18,Arkansas,Arkansas,05001,2,0 +2020-05-19,Arkansas,Arkansas,05001,2,0 +2020-05-20,Arkansas,Arkansas,05001,2,0 +2020-05-21,Arkansas,Arkansas,05001,2,0 +2020-05-22,Arkansas,Arkansas,05001,2,0 +2020-05-23,Arkansas,Arkansas,05001,2,0 +2020-05-24,Arkansas,Arkansas,05001,3,0 +2020-05-25,Arkansas,Arkansas,05001,3,0 +2020-05-26,Arkansas,Arkansas,05001,3,0 +2020-05-27,Arkansas,Arkansas,05001,3,0 +2020-05-28,Arkansas,Arkansas,05001,3,0 +2020-05-29,Arkansas,Arkansas,05001,4,0 +2020-05-30,Arkansas,Arkansas,05001,5,0 +2020-05-31,Arkansas,Arkansas,05001,6,0 +2020-06-01,Arkansas,Arkansas,05001,7,0 +2020-06-02,Arkansas,Arkansas,05001,7,0 +2020-06-03,Arkansas,Arkansas,05001,7,0 +2020-06-04,Arkansas,Arkansas,05001,7,0 +2020-06-05,Arkansas,Arkansas,05001,7,0 +2020-06-06,Arkansas,Arkansas,05001,7,0 +2020-06-07,Arkansas,Arkansas,05001,7,0 +2020-06-08,Arkansas,Arkansas,05001,7,0 +2020-06-09,Arkansas,Arkansas,05001,7,0 +2020-06-10,Arkansas,Arkansas,05001,7,0 +2020-06-11,Arkansas,Arkansas,05001,7,0 +2020-06-12,Arkansas,Arkansas,05001,7,0 +2020-06-13,Arkansas,Arkansas,05001,7,0 +2020-06-14,Arkansas,Arkansas,05001,8,0 +2020-06-15,Arkansas,Arkansas,05001,8,0 +2020-06-16,Arkansas,Arkansas,05001,8,0 +2020-06-17,Arkansas,Arkansas,05001,14,0 +2020-06-18,Arkansas,Arkansas,05001,16,0 +2020-06-19,Arkansas,Arkansas,05001,18,0 +2020-06-20,Arkansas,Arkansas,05001,19,0 +2020-06-21,Arkansas,Arkansas,05001,19,0 +2020-06-22,Arkansas,Arkansas,05001,19,0 +2020-06-23,Arkansas,Arkansas,05001,21,0 +2020-06-24,Arkansas,Arkansas,05001,22,0 +2020-06-25,Arkansas,Arkansas,05001,24,0 +2020-06-26,Arkansas,Arkansas,05001,24,0 +2020-06-27,Arkansas,Arkansas,05001,26,0 +2020-06-28,Arkansas,Arkansas,05001,26,0 +2020-06-29,Arkansas,Arkansas,05001,28,0 +2020-06-30,Arkansas,Arkansas,05001,28,0 +2020-07-01,Arkansas,Arkansas,05001,31,0 +2020-07-02,Arkansas,Arkansas,05001,30,0 +2020-07-03,Arkansas,Arkansas,05001,38,0 +2020-07-04,Arkansas,Arkansas,05001,37,0 +2020-07-05,Arkansas,Arkansas,05001,37,0 +2020-07-06,Arkansas,Arkansas,05001,37,0 +2020-07-07,Arkansas,Arkansas,05001,41,0 +2020-07-08,Arkansas,Arkansas,05001,46,0 +2020-07-09,Arkansas,Arkansas,05001,51,0 +2020-03-29,Ashley,Arkansas,05003,1,0 +2020-03-30,Ashley,Arkansas,05003,1,0 +2020-03-31,Ashley,Arkansas,05003,1,0 +2020-04-01,Ashley,Arkansas,05003,2,0 +2020-04-02,Ashley,Arkansas,05003,3,0 +2020-04-03,Ashley,Arkansas,05003,4,0 +2020-04-04,Ashley,Arkansas,05003,4,0 +2020-04-05,Ashley,Arkansas,05003,4,0 +2020-04-06,Ashley,Arkansas,05003,5,0 +2020-04-07,Ashley,Arkansas,05003,5,0 +2020-04-08,Ashley,Arkansas,05003,8,0 +2020-04-09,Ashley,Arkansas,05003,9,0 +2020-04-10,Ashley,Arkansas,05003,9,0 +2020-04-11,Ashley,Arkansas,05003,10,0 +2020-04-12,Ashley,Arkansas,05003,10,0 +2020-04-13,Ashley,Arkansas,05003,11,0 +2020-04-14,Ashley,Arkansas,05003,11,0 +2020-04-15,Ashley,Arkansas,05003,11,0 +2020-04-16,Ashley,Arkansas,05003,11,0 +2020-04-17,Ashley,Arkansas,05003,11,0 +2020-04-18,Ashley,Arkansas,05003,11,0 +2020-04-19,Ashley,Arkansas,05003,11,0 +2020-04-20,Ashley,Arkansas,05003,12,0 +2020-04-21,Ashley,Arkansas,05003,13,0 +2020-04-22,Ashley,Arkansas,05003,13,0 +2020-04-23,Ashley,Arkansas,05003,13,0 +2020-04-24,Ashley,Arkansas,05003,13,0 +2020-04-25,Ashley,Arkansas,05003,13,0 +2020-04-26,Ashley,Arkansas,05003,13,0 +2020-04-27,Ashley,Arkansas,05003,13,0 +2020-04-28,Ashley,Arkansas,05003,13,0 +2020-04-29,Ashley,Arkansas,05003,13,0 +2020-04-30,Ashley,Arkansas,05003,15,0 +2020-05-01,Ashley,Arkansas,05003,16,0 +2020-05-02,Ashley,Arkansas,05003,16,0 +2020-05-03,Ashley,Arkansas,05003,16,0 +2020-05-04,Ashley,Arkansas,05003,15,0 +2020-05-05,Ashley,Arkansas,05003,15,0 +2020-05-06,Ashley,Arkansas,05003,17,0 +2020-05-07,Ashley,Arkansas,05003,17,0 +2020-05-08,Ashley,Arkansas,05003,17,0 +2020-05-09,Ashley,Arkansas,05003,17,0 +2020-05-10,Ashley,Arkansas,05003,18,0 +2020-05-11,Ashley,Arkansas,05003,18,0 +2020-05-12,Ashley,Arkansas,05003,18,0 +2020-05-13,Ashley,Arkansas,05003,18,0 +2020-05-14,Ashley,Arkansas,05003,18,0 +2020-05-15,Ashley,Arkansas,05003,18,0 +2020-05-16,Ashley,Arkansas,05003,18,0 +2020-05-17,Ashley,Arkansas,05003,18,0 +2020-05-18,Ashley,Arkansas,05003,18,0 +2020-05-19,Ashley,Arkansas,05003,19,0 +2020-05-20,Ashley,Arkansas,05003,19,0 +2020-05-21,Ashley,Arkansas,05003,19,0 +2020-05-22,Ashley,Arkansas,05003,19,0 +2020-05-23,Ashley,Arkansas,05003,19,0 +2020-05-24,Ashley,Arkansas,05003,19,0 +2020-05-25,Ashley,Arkansas,05003,19,0 +2020-05-26,Ashley,Arkansas,05003,19,0 +2020-05-27,Ashley,Arkansas,05003,19,0 +2020-05-28,Ashley,Arkansas,05003,19,0 +2020-05-29,Ashley,Arkansas,05003,19,0 +2020-05-30,Ashley,Arkansas,05003,19,0 +2020-05-31,Ashley,Arkansas,05003,19,0 +2020-06-01,Ashley,Arkansas,05003,19,0 +2020-06-02,Ashley,Arkansas,05003,20,0 +2020-06-03,Ashley,Arkansas,05003,20,0 +2020-06-04,Ashley,Arkansas,05003,26,0 +2020-06-05,Ashley,Arkansas,05003,29,0 +2020-06-06,Ashley,Arkansas,05003,29,0 +2020-06-07,Ashley,Arkansas,05003,32,0 +2020-06-08,Ashley,Arkansas,05003,32,0 +2020-06-09,Ashley,Arkansas,05003,34,0 +2020-06-10,Ashley,Arkansas,05003,34,0 +2020-06-11,Ashley,Arkansas,05003,35,1 +2020-06-12,Ashley,Arkansas,05003,38,1 +2020-06-13,Ashley,Arkansas,05003,40,1 +2020-06-14,Ashley,Arkansas,05003,41,1 +2020-06-15,Ashley,Arkansas,05003,45,1 +2020-06-16,Ashley,Arkansas,05003,47,1 +2020-06-17,Ashley,Arkansas,05003,48,1 +2020-06-18,Ashley,Arkansas,05003,51,1 +2020-06-19,Ashley,Arkansas,05003,51,1 +2020-06-20,Ashley,Arkansas,05003,52,1 +2020-06-21,Ashley,Arkansas,05003,53,1 +2020-06-22,Ashley,Arkansas,05003,56,1 +2020-06-23,Ashley,Arkansas,05003,57,1 +2020-06-24,Ashley,Arkansas,05003,58,1 +2020-06-25,Ashley,Arkansas,05003,59,1 +2020-06-26,Ashley,Arkansas,05003,68,1 +2020-06-27,Ashley,Arkansas,05003,68,1 +2020-06-28,Ashley,Arkansas,05003,68,1 +2020-06-29,Ashley,Arkansas,05003,70,1 +2020-06-30,Ashley,Arkansas,05003,71,1 +2020-07-01,Ashley,Arkansas,05003,74,1 +2020-07-02,Ashley,Arkansas,05003,77,1 +2020-07-03,Ashley,Arkansas,05003,78,1 +2020-07-04,Ashley,Arkansas,05003,80,1 +2020-07-05,Ashley,Arkansas,05003,83,1 +2020-07-06,Ashley,Arkansas,05003,84,1 +2020-07-07,Ashley,Arkansas,05003,84,1 +2020-07-08,Ashley,Arkansas,05003,83,2 +2020-07-09,Ashley,Arkansas,05003,90,2 +2020-03-27,Baxter,Arkansas,05005,1,0 +2020-03-28,Baxter,Arkansas,05005,1,0 +2020-03-29,Baxter,Arkansas,05005,1,0 +2020-03-30,Baxter,Arkansas,05005,2,0 +2020-03-31,Baxter,Arkansas,05005,3,0 +2020-04-01,Baxter,Arkansas,05005,3,0 +2020-04-02,Baxter,Arkansas,05005,3,0 +2020-04-03,Baxter,Arkansas,05005,3,0 +2020-04-04,Baxter,Arkansas,05005,3,0 +2020-04-05,Baxter,Arkansas,05005,3,0 +2020-04-06,Baxter,Arkansas,05005,3,0 +2020-04-07,Baxter,Arkansas,05005,5,0 +2020-04-08,Baxter,Arkansas,05005,4,0 +2020-04-09,Baxter,Arkansas,05005,4,0 +2020-04-10,Baxter,Arkansas,05005,4,0 +2020-04-11,Baxter,Arkansas,05005,4,0 +2020-04-12,Baxter,Arkansas,05005,4,0 +2020-04-13,Baxter,Arkansas,05005,4,0 +2020-04-14,Baxter,Arkansas,05005,4,0 +2020-04-15,Baxter,Arkansas,05005,4,0 +2020-04-16,Baxter,Arkansas,05005,4,0 +2020-04-17,Baxter,Arkansas,05005,4,0 +2020-04-18,Baxter,Arkansas,05005,5,0 +2020-04-19,Baxter,Arkansas,05005,5,0 +2020-04-20,Baxter,Arkansas,05005,5,0 +2020-04-21,Baxter,Arkansas,05005,5,0 +2020-04-22,Baxter,Arkansas,05005,5,0 +2020-04-23,Baxter,Arkansas,05005,5,0 +2020-04-24,Baxter,Arkansas,05005,5,0 +2020-04-25,Baxter,Arkansas,05005,5,0 +2020-04-26,Baxter,Arkansas,05005,5,0 +2020-04-27,Baxter,Arkansas,05005,5,0 +2020-04-28,Baxter,Arkansas,05005,5,0 +2020-04-29,Baxter,Arkansas,05005,5,0 +2020-04-30,Baxter,Arkansas,05005,5,0 +2020-05-01,Baxter,Arkansas,05005,5,0 +2020-05-02,Baxter,Arkansas,05005,5,0 +2020-05-03,Baxter,Arkansas,05005,5,0 +2020-05-04,Baxter,Arkansas,05005,5,0 +2020-05-05,Baxter,Arkansas,05005,5,0 +2020-05-06,Baxter,Arkansas,05005,5,0 +2020-05-07,Baxter,Arkansas,05005,5,0 +2020-05-08,Baxter,Arkansas,05005,5,0 +2020-05-09,Baxter,Arkansas,05005,5,0 +2020-05-10,Baxter,Arkansas,05005,5,0 +2020-05-11,Baxter,Arkansas,05005,5,0 +2020-05-12,Baxter,Arkansas,05005,5,0 +2020-05-13,Baxter,Arkansas,05005,5,0 +2020-05-14,Baxter,Arkansas,05005,6,0 +2020-05-15,Baxter,Arkansas,05005,6,0 +2020-05-16,Baxter,Arkansas,05005,6,0 +2020-05-17,Baxter,Arkansas,05005,6,0 +2020-05-18,Baxter,Arkansas,05005,6,0 +2020-05-19,Baxter,Arkansas,05005,6,0 +2020-05-20,Baxter,Arkansas,05005,6,0 +2020-05-21,Baxter,Arkansas,05005,6,0 +2020-05-22,Baxter,Arkansas,05005,6,0 +2020-05-23,Baxter,Arkansas,05005,6,0 +2020-05-24,Baxter,Arkansas,05005,6,0 +2020-05-25,Baxter,Arkansas,05005,7,0 +2020-05-26,Baxter,Arkansas,05005,8,0 +2020-05-27,Baxter,Arkansas,05005,8,0 +2020-05-28,Baxter,Arkansas,05005,9,0 +2020-05-29,Baxter,Arkansas,05005,9,0 +2020-05-30,Baxter,Arkansas,05005,11,0 +2020-05-31,Baxter,Arkansas,05005,12,0 +2020-06-01,Baxter,Arkansas,05005,12,0 +2020-06-02,Baxter,Arkansas,05005,12,0 +2020-06-03,Baxter,Arkansas,05005,12,0 +2020-06-04,Baxter,Arkansas,05005,12,0 +2020-06-05,Baxter,Arkansas,05005,12,0 +2020-06-06,Baxter,Arkansas,05005,13,0 +2020-06-07,Baxter,Arkansas,05005,13,0 +2020-06-08,Baxter,Arkansas,05005,13,0 +2020-06-09,Baxter,Arkansas,05005,13,0 +2020-06-10,Baxter,Arkansas,05005,14,0 +2020-06-11,Baxter,Arkansas,05005,14,0 +2020-06-12,Baxter,Arkansas,05005,14,0 +2020-06-13,Baxter,Arkansas,05005,14,0 +2020-06-14,Baxter,Arkansas,05005,14,0 +2020-06-15,Baxter,Arkansas,05005,14,0 +2020-06-16,Baxter,Arkansas,05005,14,0 +2020-06-17,Baxter,Arkansas,05005,14,0 +2020-06-18,Baxter,Arkansas,05005,14,0 +2020-06-19,Baxter,Arkansas,05005,14,0 +2020-06-20,Baxter,Arkansas,05005,14,0 +2020-06-21,Baxter,Arkansas,05005,14,0 +2020-06-22,Baxter,Arkansas,05005,15,0 +2020-06-23,Baxter,Arkansas,05005,15,0 +2020-06-24,Baxter,Arkansas,05005,15,0 +2020-06-25,Baxter,Arkansas,05005,16,0 +2020-06-26,Baxter,Arkansas,05005,18,0 +2020-06-27,Baxter,Arkansas,05005,18,0 +2020-06-28,Baxter,Arkansas,05005,20,0 +2020-06-29,Baxter,Arkansas,05005,20,0 +2020-06-30,Baxter,Arkansas,05005,20,0 +2020-07-01,Baxter,Arkansas,05005,20,0 +2020-07-02,Baxter,Arkansas,05005,24,0 +2020-07-03,Baxter,Arkansas,05005,24,0 +2020-07-04,Baxter,Arkansas,05005,24,0 +2020-07-05,Baxter,Arkansas,05005,24,0 +2020-07-06,Baxter,Arkansas,05005,25,0 +2020-07-07,Baxter,Arkansas,05005,25,0 +2020-07-08,Baxter,Arkansas,05005,25,0 +2020-07-09,Baxter,Arkansas,05005,26,0 +2020-03-19,Benton,Arkansas,05007,1,0 +2020-03-20,Benton,Arkansas,05007,1,0 +2020-03-21,Benton,Arkansas,05007,1,0 +2020-03-22,Benton,Arkansas,05007,1,0 +2020-03-23,Benton,Arkansas,05007,1,0 +2020-03-24,Benton,Arkansas,05007,3,0 +2020-03-25,Benton,Arkansas,05007,18,0 +2020-03-26,Benton,Arkansas,05007,23,0 +2020-03-27,Benton,Arkansas,05007,24,0 +2020-03-28,Benton,Arkansas,05007,29,0 +2020-03-29,Benton,Arkansas,05007,33,0 +2020-03-30,Benton,Arkansas,05007,38,0 +2020-03-31,Benton,Arkansas,05007,38,0 +2020-04-01,Benton,Arkansas,05007,40,0 +2020-04-02,Benton,Arkansas,05007,42,0 +2020-04-03,Benton,Arkansas,05007,41,0 +2020-04-04,Benton,Arkansas,05007,40,0 +2020-04-05,Benton,Arkansas,05007,42,0 +2020-04-06,Benton,Arkansas,05007,42,0 +2020-04-07,Benton,Arkansas,05007,44,0 +2020-04-08,Benton,Arkansas,05007,46,0 +2020-04-09,Benton,Arkansas,05007,47,0 +2020-04-10,Benton,Arkansas,05007,47,0 +2020-04-11,Benton,Arkansas,05007,47,0 +2020-04-12,Benton,Arkansas,05007,48,0 +2020-04-13,Benton,Arkansas,05007,59,0 +2020-04-14,Benton,Arkansas,05007,60,0 +2020-04-15,Benton,Arkansas,05007,62,0 +2020-04-16,Benton,Arkansas,05007,61,0 +2020-04-17,Benton,Arkansas,05007,62,0 +2020-04-18,Benton,Arkansas,05007,62,0 +2020-04-19,Benton,Arkansas,05007,62,0 +2020-04-20,Benton,Arkansas,05007,62,0 +2020-04-21,Benton,Arkansas,05007,67,0 +2020-04-22,Benton,Arkansas,05007,69,0 +2020-04-23,Benton,Arkansas,05007,70,0 +2020-04-24,Benton,Arkansas,05007,77,0 +2020-04-25,Benton,Arkansas,05007,79,0 +2020-04-26,Benton,Arkansas,05007,93,0 +2020-04-27,Benton,Arkansas,05007,94,0 +2020-04-28,Benton,Arkansas,05007,94,0 +2020-04-29,Benton,Arkansas,05007,101,0 +2020-04-30,Benton,Arkansas,05007,102,0 +2020-05-01,Benton,Arkansas,05007,101,0 +2020-05-02,Benton,Arkansas,05007,112,0 +2020-05-03,Benton,Arkansas,05007,106,0 +2020-05-04,Benton,Arkansas,05007,108,0 +2020-05-05,Benton,Arkansas,05007,110,0 +2020-05-06,Benton,Arkansas,05007,111,0 +2020-05-07,Benton,Arkansas,05007,113,0 +2020-05-08,Benton,Arkansas,05007,116,0 +2020-05-09,Benton,Arkansas,05007,116,0 +2020-05-10,Benton,Arkansas,05007,123,0 +2020-05-11,Benton,Arkansas,05007,123,0 +2020-05-12,Benton,Arkansas,05007,127,0 +2020-05-13,Benton,Arkansas,05007,131,0 +2020-05-14,Benton,Arkansas,05007,136,0 +2020-05-15,Benton,Arkansas,05007,139,0 +2020-05-16,Benton,Arkansas,05007,144,0 +2020-05-17,Benton,Arkansas,05007,149,0 +2020-05-18,Benton,Arkansas,05007,150,0 +2020-05-19,Benton,Arkansas,05007,155,0 +2020-05-20,Benton,Arkansas,05007,163,0 +2020-05-21,Benton,Arkansas,05007,190,0 +2020-05-22,Benton,Arkansas,05007,212,0 +2020-05-23,Benton,Arkansas,05007,237,0 +2020-05-24,Benton,Arkansas,05007,284,0 +2020-05-25,Benton,Arkansas,05007,297,0 +2020-05-26,Benton,Arkansas,05007,315,0 +2020-05-27,Benton,Arkansas,05007,339,0 +2020-05-28,Benton,Arkansas,05007,428,0 +2020-05-29,Benton,Arkansas,05007,468,1 +2020-05-30,Benton,Arkansas,05007,507,2 +2020-05-31,Benton,Arkansas,05007,578,2 +2020-06-01,Benton,Arkansas,05007,607,2 +2020-06-02,Benton,Arkansas,05007,676,2 +2020-06-03,Benton,Arkansas,05007,700,3 +2020-06-04,Benton,Arkansas,05007,804,3 +2020-06-05,Benton,Arkansas,05007,826,3 +2020-06-06,Benton,Arkansas,05007,883,3 +2020-06-07,Benton,Arkansas,05007,956,3 +2020-06-08,Benton,Arkansas,05007,1011,4 +2020-06-09,Benton,Arkansas,05007,1090,5 +2020-06-10,Benton,Arkansas,05007,1137,5 +2020-06-11,Benton,Arkansas,05007,1219,5 +2020-06-12,Benton,Arkansas,05007,1306,6 +2020-06-13,Benton,Arkansas,05007,1362,7 +2020-06-14,Benton,Arkansas,05007,1406,7 +2020-06-15,Benton,Arkansas,05007,1480,8 +2020-06-16,Benton,Arkansas,05007,1514,8 +2020-06-17,Benton,Arkansas,05007,1612,9 +2020-06-18,Benton,Arkansas,05007,1657,11 +2020-06-19,Benton,Arkansas,05007,1841,11 +2020-06-20,Benton,Arkansas,05007,1904,13 +2020-06-21,Benton,Arkansas,05007,2003,13 +2020-06-22,Benton,Arkansas,05007,2087,13 +2020-06-23,Benton,Arkansas,05007,2128,14 +2020-06-24,Benton,Arkansas,05007,2196,14 +2020-06-25,Benton,Arkansas,05007,2262,14 +2020-06-26,Benton,Arkansas,05007,2454,15 +2020-06-27,Benton,Arkansas,05007,2573,18 +2020-06-28,Benton,Arkansas,05007,2623,18 +2020-06-29,Benton,Arkansas,05007,2679,18 +2020-06-30,Benton,Arkansas,05007,2723,18 +2020-07-01,Benton,Arkansas,05007,2752,19 +2020-07-02,Benton,Arkansas,05007,2834,20 +2020-07-03,Benton,Arkansas,05007,2917,20 +2020-07-04,Benton,Arkansas,05007,2961,20 +2020-07-05,Benton,Arkansas,05007,3000,20 +2020-07-06,Benton,Arkansas,05007,3043,20 +2020-07-07,Benton,Arkansas,05007,3095,21 +2020-07-08,Benton,Arkansas,05007,3164,21 +2020-07-09,Benton,Arkansas,05007,3270,22 +2020-03-19,Boone,Arkansas,05009,1,0 +2020-03-20,Boone,Arkansas,05009,1,0 +2020-03-21,Boone,Arkansas,05009,1,0 +2020-03-22,Boone,Arkansas,05009,1,0 +2020-03-23,Boone,Arkansas,05009,1,0 +2020-03-24,Boone,Arkansas,05009,1,0 +2020-03-25,Boone,Arkansas,05009,1,0 +2020-03-26,Boone,Arkansas,05009,1,0 +2020-03-27,Boone,Arkansas,05009,1,0 +2020-03-28,Boone,Arkansas,05009,1,0 +2020-03-29,Boone,Arkansas,05009,1,0 +2020-03-30,Boone,Arkansas,05009,1,0 +2020-03-31,Boone,Arkansas,05009,2,0 +2020-04-01,Boone,Arkansas,05009,3,0 +2020-04-02,Boone,Arkansas,05009,3,0 +2020-04-03,Boone,Arkansas,05009,3,0 +2020-04-04,Boone,Arkansas,05009,3,0 +2020-04-05,Boone,Arkansas,05009,3,0 +2020-04-06,Boone,Arkansas,05009,3,0 +2020-04-07,Boone,Arkansas,05009,4,0 +2020-04-08,Boone,Arkansas,05009,3,0 +2020-04-09,Boone,Arkansas,05009,3,0 +2020-04-10,Boone,Arkansas,05009,3,0 +2020-04-11,Boone,Arkansas,05009,3,0 +2020-04-12,Boone,Arkansas,05009,3,0 +2020-04-13,Boone,Arkansas,05009,3,0 +2020-04-14,Boone,Arkansas,05009,3,0 +2020-04-15,Boone,Arkansas,05009,3,0 +2020-04-16,Boone,Arkansas,05009,3,0 +2020-04-17,Boone,Arkansas,05009,3,0 +2020-04-18,Boone,Arkansas,05009,3,0 +2020-04-19,Boone,Arkansas,05009,3,0 +2020-04-20,Boone,Arkansas,05009,3,0 +2020-04-21,Boone,Arkansas,05009,4,0 +2020-04-22,Boone,Arkansas,05009,4,0 +2020-04-23,Boone,Arkansas,05009,4,0 +2020-04-24,Boone,Arkansas,05009,4,0 +2020-04-25,Boone,Arkansas,05009,4,0 +2020-04-26,Boone,Arkansas,05009,5,0 +2020-04-27,Boone,Arkansas,05009,5,0 +2020-04-28,Boone,Arkansas,05009,5,0 +2020-04-29,Boone,Arkansas,05009,5,0 +2020-04-30,Boone,Arkansas,05009,5,0 +2020-05-01,Boone,Arkansas,05009,4,0 +2020-05-02,Boone,Arkansas,05009,4,0 +2020-05-03,Boone,Arkansas,05009,4,0 +2020-05-04,Boone,Arkansas,05009,4,0 +2020-05-05,Boone,Arkansas,05009,4,0 +2020-05-06,Boone,Arkansas,05009,4,0 +2020-05-07,Boone,Arkansas,05009,4,0 +2020-05-08,Boone,Arkansas,05009,4,0 +2020-05-09,Boone,Arkansas,05009,4,0 +2020-05-10,Boone,Arkansas,05009,4,0 +2020-05-11,Boone,Arkansas,05009,4,0 +2020-05-12,Boone,Arkansas,05009,4,0 +2020-05-13,Boone,Arkansas,05009,4,0 +2020-05-14,Boone,Arkansas,05009,4,0 +2020-05-15,Boone,Arkansas,05009,4,0 +2020-05-16,Boone,Arkansas,05009,4,0 +2020-05-17,Boone,Arkansas,05009,4,0 +2020-05-18,Boone,Arkansas,05009,4,0 +2020-05-19,Boone,Arkansas,05009,5,0 +2020-05-20,Boone,Arkansas,05009,5,0 +2020-05-21,Boone,Arkansas,05009,5,0 +2020-05-22,Boone,Arkansas,05009,5,0 +2020-05-23,Boone,Arkansas,05009,6,0 +2020-05-24,Boone,Arkansas,05009,6,0 +2020-05-25,Boone,Arkansas,05009,6,0 +2020-05-26,Boone,Arkansas,05009,6,0 +2020-05-27,Boone,Arkansas,05009,6,0 +2020-05-28,Boone,Arkansas,05009,6,0 +2020-05-29,Boone,Arkansas,05009,6,0 +2020-05-30,Boone,Arkansas,05009,6,0 +2020-05-31,Boone,Arkansas,05009,6,0 +2020-06-01,Boone,Arkansas,05009,6,0 +2020-06-02,Boone,Arkansas,05009,6,0 +2020-06-03,Boone,Arkansas,05009,7,0 +2020-06-04,Boone,Arkansas,05009,7,0 +2020-06-05,Boone,Arkansas,05009,7,0 +2020-06-06,Boone,Arkansas,05009,7,0 +2020-06-07,Boone,Arkansas,05009,7,0 +2020-06-08,Boone,Arkansas,05009,7,0 +2020-06-09,Boone,Arkansas,05009,7,0 +2020-06-10,Boone,Arkansas,05009,7,0 +2020-06-11,Boone,Arkansas,05009,7,0 +2020-06-12,Boone,Arkansas,05009,9,0 +2020-06-13,Boone,Arkansas,05009,9,0 +2020-06-14,Boone,Arkansas,05009,9,0 +2020-06-15,Boone,Arkansas,05009,10,0 +2020-06-16,Boone,Arkansas,05009,10,0 +2020-06-17,Boone,Arkansas,05009,10,0 +2020-06-18,Boone,Arkansas,05009,10,0 +2020-06-19,Boone,Arkansas,05009,10,0 +2020-06-20,Boone,Arkansas,05009,11,0 +2020-06-21,Boone,Arkansas,05009,11,0 +2020-06-22,Boone,Arkansas,05009,13,0 +2020-06-23,Boone,Arkansas,05009,14,1 +2020-06-24,Boone,Arkansas,05009,16,1 +2020-06-25,Boone,Arkansas,05009,19,1 +2020-06-26,Boone,Arkansas,05009,22,1 +2020-06-27,Boone,Arkansas,05009,22,1 +2020-06-28,Boone,Arkansas,05009,22,1 +2020-06-29,Boone,Arkansas,05009,22,1 +2020-06-30,Boone,Arkansas,05009,26,1 +2020-07-01,Boone,Arkansas,05009,27,1 +2020-07-02,Boone,Arkansas,05009,28,1 +2020-07-03,Boone,Arkansas,05009,29,1 +2020-07-04,Boone,Arkansas,05009,29,1 +2020-07-05,Boone,Arkansas,05009,30,1 +2020-07-06,Boone,Arkansas,05009,30,1 +2020-07-07,Boone,Arkansas,05009,30,1 +2020-07-08,Boone,Arkansas,05009,30,1 +2020-07-09,Boone,Arkansas,05009,42,1 +2020-03-18,Bradley,Arkansas,05011,1,0 +2020-03-19,Bradley,Arkansas,05011,1,0 +2020-03-20,Bradley,Arkansas,05011,1,0 +2020-03-21,Bradley,Arkansas,05011,1,0 +2020-03-22,Bradley,Arkansas,05011,1,0 +2020-03-23,Bradley,Arkansas,05011,1,0 +2020-03-24,Bradley,Arkansas,05011,4,0 +2020-03-25,Bradley,Arkansas,05011,4,0 +2020-03-26,Bradley,Arkansas,05011,4,0 +2020-03-27,Bradley,Arkansas,05011,4,0 +2020-03-28,Bradley,Arkansas,05011,4,0 +2020-03-29,Bradley,Arkansas,05011,4,0 +2020-03-30,Bradley,Arkansas,05011,4,0 +2020-03-31,Bradley,Arkansas,05011,4,0 +2020-04-01,Bradley,Arkansas,05011,4,0 +2020-04-02,Bradley,Arkansas,05011,4,0 +2020-04-03,Bradley,Arkansas,05011,4,0 +2020-04-04,Bradley,Arkansas,05011,4,0 +2020-04-05,Bradley,Arkansas,05011,1,0 +2020-04-06,Bradley,Arkansas,05011,1,0 +2020-04-07,Bradley,Arkansas,05011,5,0 +2020-04-08,Bradley,Arkansas,05011,5,0 +2020-04-09,Bradley,Arkansas,05011,6,0 +2020-04-10,Bradley,Arkansas,05011,6,0 +2020-04-11,Bradley,Arkansas,05011,6,0 +2020-04-12,Bradley,Arkansas,05011,7,0 +2020-04-13,Bradley,Arkansas,05011,7,0 +2020-04-14,Bradley,Arkansas,05011,7,0 +2020-04-15,Bradley,Arkansas,05011,7,0 +2020-04-16,Bradley,Arkansas,05011,7,0 +2020-04-17,Bradley,Arkansas,05011,7,0 +2020-04-18,Bradley,Arkansas,05011,7,0 +2020-04-19,Bradley,Arkansas,05011,7,1 +2020-04-20,Bradley,Arkansas,05011,7,1 +2020-04-21,Bradley,Arkansas,05011,7,1 +2020-04-22,Bradley,Arkansas,05011,7,1 +2020-04-23,Bradley,Arkansas,05011,7,1 +2020-04-24,Bradley,Arkansas,05011,7,1 +2020-04-25,Bradley,Arkansas,05011,7,1 +2020-04-26,Bradley,Arkansas,05011,8,1 +2020-04-27,Bradley,Arkansas,05011,8,1 +2020-04-28,Bradley,Arkansas,05011,8,1 +2020-04-29,Bradley,Arkansas,05011,11,1 +2020-04-30,Bradley,Arkansas,05011,12,1 +2020-05-01,Bradley,Arkansas,05011,11,1 +2020-05-02,Bradley,Arkansas,05011,11,1 +2020-05-03,Bradley,Arkansas,05011,11,1 +2020-05-04,Bradley,Arkansas,05011,11,1 +2020-05-05,Bradley,Arkansas,05011,11,1 +2020-05-06,Bradley,Arkansas,05011,11,1 +2020-05-07,Bradley,Arkansas,05011,11,1 +2020-05-08,Bradley,Arkansas,05011,11,1 +2020-05-09,Bradley,Arkansas,05011,11,1 +2020-05-10,Bradley,Arkansas,05011,11,1 +2020-05-11,Bradley,Arkansas,05011,11,1 +2020-05-12,Bradley,Arkansas,05011,11,1 +2020-05-13,Bradley,Arkansas,05011,12,1 +2020-05-14,Bradley,Arkansas,05011,12,1 +2020-05-15,Bradley,Arkansas,05011,13,1 +2020-05-16,Bradley,Arkansas,05011,15,1 +2020-05-17,Bradley,Arkansas,05011,15,1 +2020-05-18,Bradley,Arkansas,05011,15,1 +2020-05-19,Bradley,Arkansas,05011,14,1 +2020-05-20,Bradley,Arkansas,05011,14,1 +2020-05-21,Bradley,Arkansas,05011,15,1 +2020-05-22,Bradley,Arkansas,05011,16,1 +2020-05-23,Bradley,Arkansas,05011,16,1 +2020-05-24,Bradley,Arkansas,05011,17,1 +2020-05-25,Bradley,Arkansas,05011,17,1 +2020-05-26,Bradley,Arkansas,05011,18,1 +2020-05-27,Bradley,Arkansas,05011,18,1 +2020-05-28,Bradley,Arkansas,05011,18,1 +2020-05-29,Bradley,Arkansas,05011,18,1 +2020-05-30,Bradley,Arkansas,05011,18,1 +2020-05-31,Bradley,Arkansas,05011,22,1 +2020-06-01,Bradley,Arkansas,05011,22,1 +2020-06-02,Bradley,Arkansas,05011,22,1 +2020-06-03,Bradley,Arkansas,05011,23,1 +2020-06-04,Bradley,Arkansas,05011,23,1 +2020-06-05,Bradley,Arkansas,05011,26,1 +2020-06-06,Bradley,Arkansas,05011,28,1 +2020-06-07,Bradley,Arkansas,05011,30,1 +2020-06-08,Bradley,Arkansas,05011,32,1 +2020-06-09,Bradley,Arkansas,05011,32,1 +2020-06-10,Bradley,Arkansas,05011,34,1 +2020-06-11,Bradley,Arkansas,05011,34,1 +2020-06-12,Bradley,Arkansas,05011,34,1 +2020-06-13,Bradley,Arkansas,05011,34,1 +2020-06-14,Bradley,Arkansas,05011,34,1 +2020-06-15,Bradley,Arkansas,05011,35,1 +2020-06-16,Bradley,Arkansas,05011,35,1 +2020-06-17,Bradley,Arkansas,05011,35,2 +2020-06-18,Bradley,Arkansas,05011,35,2 +2020-06-19,Bradley,Arkansas,05011,35,2 +2020-06-20,Bradley,Arkansas,05011,37,2 +2020-06-21,Bradley,Arkansas,05011,38,2 +2020-06-22,Bradley,Arkansas,05011,38,2 +2020-06-23,Bradley,Arkansas,05011,38,2 +2020-06-24,Bradley,Arkansas,05011,38,2 +2020-06-25,Bradley,Arkansas,05011,39,2 +2020-06-26,Bradley,Arkansas,05011,40,2 +2020-06-27,Bradley,Arkansas,05011,42,2 +2020-06-28,Bradley,Arkansas,05011,42,2 +2020-06-29,Bradley,Arkansas,05011,51,2 +2020-06-30,Bradley,Arkansas,05011,52,2 +2020-07-01,Bradley,Arkansas,05011,52,2 +2020-07-02,Bradley,Arkansas,05011,52,2 +2020-07-03,Bradley,Arkansas,05011,52,2 +2020-07-04,Bradley,Arkansas,05011,56,2 +2020-07-05,Bradley,Arkansas,05011,56,2 +2020-07-06,Bradley,Arkansas,05011,56,2 +2020-07-07,Bradley,Arkansas,05011,55,2 +2020-07-08,Bradley,Arkansas,05011,56,2 +2020-07-09,Bradley,Arkansas,05011,58,2 +2020-07-02,Calhoun,Arkansas,05013,1,0 +2020-07-03,Calhoun,Arkansas,05013,1,0 +2020-07-04,Calhoun,Arkansas,05013,2,0 +2020-07-05,Calhoun,Arkansas,05013,2,0 +2020-07-06,Calhoun,Arkansas,05013,2,0 +2020-07-07,Calhoun,Arkansas,05013,2,0 +2020-07-08,Calhoun,Arkansas,05013,2,0 +2020-07-09,Calhoun,Arkansas,05013,2,0 +2020-04-01,Carroll,Arkansas,05015,1,0 +2020-04-02,Carroll,Arkansas,05015,1,0 +2020-04-03,Carroll,Arkansas,05015,1,0 +2020-04-04,Carroll,Arkansas,05015,1,0 +2020-04-05,Carroll,Arkansas,05015,1,0 +2020-04-06,Carroll,Arkansas,05015,1,0 +2020-04-07,Carroll,Arkansas,05015,1,0 +2020-04-08,Carroll,Arkansas,05015,2,0 +2020-04-09,Carroll,Arkansas,05015,2,0 +2020-04-10,Carroll,Arkansas,05015,2,0 +2020-04-11,Carroll,Arkansas,05015,2,0 +2020-04-12,Carroll,Arkansas,05015,2,0 +2020-04-13,Carroll,Arkansas,05015,2,0 +2020-04-14,Carroll,Arkansas,05015,2,0 +2020-04-15,Carroll,Arkansas,05015,2,0 +2020-04-16,Carroll,Arkansas,05015,2,0 +2020-04-17,Carroll,Arkansas,05015,2,0 +2020-04-18,Carroll,Arkansas,05015,2,0 +2020-04-19,Carroll,Arkansas,05015,2,0 +2020-04-20,Carroll,Arkansas,05015,2,0 +2020-04-21,Carroll,Arkansas,05015,2,0 +2020-04-22,Carroll,Arkansas,05015,2,0 +2020-04-23,Carroll,Arkansas,05015,2,0 +2020-04-24,Carroll,Arkansas,05015,3,0 +2020-04-25,Carroll,Arkansas,05015,4,0 +2020-04-26,Carroll,Arkansas,05015,4,0 +2020-04-27,Carroll,Arkansas,05015,4,0 +2020-04-28,Carroll,Arkansas,05015,5,0 +2020-04-29,Carroll,Arkansas,05015,5,0 +2020-04-30,Carroll,Arkansas,05015,5,0 +2020-05-01,Carroll,Arkansas,05015,5,0 +2020-05-02,Carroll,Arkansas,05015,6,0 +2020-05-03,Carroll,Arkansas,05015,6,0 +2020-05-04,Carroll,Arkansas,05015,6,0 +2020-05-05,Carroll,Arkansas,05015,6,0 +2020-05-06,Carroll,Arkansas,05015,6,0 +2020-05-07,Carroll,Arkansas,05015,6,0 +2020-05-08,Carroll,Arkansas,05015,6,0 +2020-05-09,Carroll,Arkansas,05015,6,0 +2020-05-10,Carroll,Arkansas,05015,6,0 +2020-05-11,Carroll,Arkansas,05015,6,0 +2020-05-12,Carroll,Arkansas,05015,6,0 +2020-05-13,Carroll,Arkansas,05015,6,0 +2020-05-14,Carroll,Arkansas,05015,6,0 +2020-05-15,Carroll,Arkansas,05015,6,0 +2020-05-16,Carroll,Arkansas,05015,6,0 +2020-05-17,Carroll,Arkansas,05015,5,0 +2020-05-18,Carroll,Arkansas,05015,6,0 +2020-05-19,Carroll,Arkansas,05015,6,0 +2020-05-20,Carroll,Arkansas,05015,6,0 +2020-05-21,Carroll,Arkansas,05015,8,0 +2020-05-22,Carroll,Arkansas,05015,9,0 +2020-05-23,Carroll,Arkansas,05015,10,0 +2020-05-24,Carroll,Arkansas,05015,10,0 +2020-05-25,Carroll,Arkansas,05015,15,0 +2020-05-26,Carroll,Arkansas,05015,17,0 +2020-05-27,Carroll,Arkansas,05015,21,0 +2020-05-28,Carroll,Arkansas,05015,24,0 +2020-05-29,Carroll,Arkansas,05015,24,1 +2020-05-30,Carroll,Arkansas,05015,24,1 +2020-05-31,Carroll,Arkansas,05015,24,1 +2020-06-01,Carroll,Arkansas,05015,25,1 +2020-06-02,Carroll,Arkansas,05015,29,1 +2020-06-03,Carroll,Arkansas,05015,29,1 +2020-06-04,Carroll,Arkansas,05015,30,1 +2020-06-05,Carroll,Arkansas,05015,33,1 +2020-06-06,Carroll,Arkansas,05015,35,1 +2020-06-07,Carroll,Arkansas,05015,38,1 +2020-06-08,Carroll,Arkansas,05015,38,1 +2020-06-09,Carroll,Arkansas,05015,40,1 +2020-06-10,Carroll,Arkansas,05015,42,1 +2020-06-11,Carroll,Arkansas,05015,56,1 +2020-06-12,Carroll,Arkansas,05015,66,1 +2020-06-13,Carroll,Arkansas,05015,70,1 +2020-06-14,Carroll,Arkansas,05015,80,1 +2020-06-15,Carroll,Arkansas,05015,88,1 +2020-06-16,Carroll,Arkansas,05015,92,1 +2020-06-17,Carroll,Arkansas,05015,95,1 +2020-06-18,Carroll,Arkansas,05015,100,1 +2020-06-19,Carroll,Arkansas,05015,102,3 +2020-06-20,Carroll,Arkansas,05015,126,4 +2020-06-21,Carroll,Arkansas,05015,129,4 +2020-06-22,Carroll,Arkansas,05015,136,4 +2020-06-23,Carroll,Arkansas,05015,136,4 +2020-06-24,Carroll,Arkansas,05015,141,4 +2020-06-25,Carroll,Arkansas,05015,149,4 +2020-06-26,Carroll,Arkansas,05015,158,4 +2020-06-27,Carroll,Arkansas,05015,161,5 +2020-06-28,Carroll,Arkansas,05015,166,5 +2020-06-29,Carroll,Arkansas,05015,169,5 +2020-06-30,Carroll,Arkansas,05015,168,5 +2020-07-01,Carroll,Arkansas,05015,168,5 +2020-07-02,Carroll,Arkansas,05015,172,5 +2020-07-03,Carroll,Arkansas,05015,187,5 +2020-07-04,Carroll,Arkansas,05015,187,5 +2020-07-05,Carroll,Arkansas,05015,190,5 +2020-07-06,Carroll,Arkansas,05015,195,5 +2020-07-07,Carroll,Arkansas,05015,197,5 +2020-07-08,Carroll,Arkansas,05015,200,5 +2020-07-09,Carroll,Arkansas,05015,212,5 +2020-03-26,Chicot,Arkansas,05017,1,0 +2020-03-27,Chicot,Arkansas,05017,1,0 +2020-03-28,Chicot,Arkansas,05017,1,0 +2020-03-29,Chicot,Arkansas,05017,2,0 +2020-03-30,Chicot,Arkansas,05017,2,0 +2020-03-31,Chicot,Arkansas,05017,2,0 +2020-04-01,Chicot,Arkansas,05017,2,0 +2020-04-02,Chicot,Arkansas,05017,2,0 +2020-04-03,Chicot,Arkansas,05017,2,0 +2020-04-04,Chicot,Arkansas,05017,2,0 +2020-04-05,Chicot,Arkansas,05017,3,0 +2020-04-06,Chicot,Arkansas,05017,4,0 +2020-04-07,Chicot,Arkansas,05017,4,0 +2020-04-08,Chicot,Arkansas,05017,4,0 +2020-04-09,Chicot,Arkansas,05017,4,0 +2020-04-10,Chicot,Arkansas,05017,5,0 +2020-04-11,Chicot,Arkansas,05017,5,0 +2020-04-12,Chicot,Arkansas,05017,5,0 +2020-04-13,Chicot,Arkansas,05017,6,0 +2020-04-14,Chicot,Arkansas,05017,7,0 +2020-04-15,Chicot,Arkansas,05017,7,0 +2020-04-16,Chicot,Arkansas,05017,7,0 +2020-04-17,Chicot,Arkansas,05017,7,0 +2020-04-18,Chicot,Arkansas,05017,7,0 +2020-04-19,Chicot,Arkansas,05017,7,0 +2020-04-20,Chicot,Arkansas,05017,7,0 +2020-04-21,Chicot,Arkansas,05017,7,0 +2020-04-22,Chicot,Arkansas,05017,7,0 +2020-04-23,Chicot,Arkansas,05017,7,0 +2020-04-24,Chicot,Arkansas,05017,7,0 +2020-04-25,Chicot,Arkansas,05017,8,0 +2020-04-26,Chicot,Arkansas,05017,9,0 +2020-04-27,Chicot,Arkansas,05017,9,0 +2020-04-28,Chicot,Arkansas,05017,9,0 +2020-04-29,Chicot,Arkansas,05017,9,0 +2020-04-30,Chicot,Arkansas,05017,9,0 +2020-05-01,Chicot,Arkansas,05017,9,0 +2020-05-02,Chicot,Arkansas,05017,9,0 +2020-05-03,Chicot,Arkansas,05017,9,0 +2020-05-04,Chicot,Arkansas,05017,9,0 +2020-05-05,Chicot,Arkansas,05017,9,0 +2020-05-06,Chicot,Arkansas,05017,10,0 +2020-05-07,Chicot,Arkansas,05017,10,0 +2020-05-08,Chicot,Arkansas,05017,10,0 +2020-05-09,Chicot,Arkansas,05017,10,0 +2020-05-10,Chicot,Arkansas,05017,10,0 +2020-05-11,Chicot,Arkansas,05017,10,0 +2020-05-12,Chicot,Arkansas,05017,10,0 +2020-05-13,Chicot,Arkansas,05017,10,0 +2020-05-14,Chicot,Arkansas,05017,10,0 +2020-05-15,Chicot,Arkansas,05017,10,0 +2020-05-16,Chicot,Arkansas,05017,10,0 +2020-05-17,Chicot,Arkansas,05017,10,0 +2020-05-18,Chicot,Arkansas,05017,11,0 +2020-05-19,Chicot,Arkansas,05017,11,0 +2020-05-20,Chicot,Arkansas,05017,11,0 +2020-05-21,Chicot,Arkansas,05017,12,0 +2020-05-22,Chicot,Arkansas,05017,12,0 +2020-05-23,Chicot,Arkansas,05017,12,0 +2020-05-24,Chicot,Arkansas,05017,13,0 +2020-05-25,Chicot,Arkansas,05017,13,0 +2020-05-26,Chicot,Arkansas,05017,14,0 +2020-05-27,Chicot,Arkansas,05017,14,0 +2020-05-28,Chicot,Arkansas,05017,15,0 +2020-05-29,Chicot,Arkansas,05017,15,0 +2020-05-30,Chicot,Arkansas,05017,15,0 +2020-05-31,Chicot,Arkansas,05017,15,0 +2020-06-01,Chicot,Arkansas,05017,15,0 +2020-06-02,Chicot,Arkansas,05017,16,0 +2020-06-03,Chicot,Arkansas,05017,16,0 +2020-06-04,Chicot,Arkansas,05017,16,0 +2020-06-05,Chicot,Arkansas,05017,19,0 +2020-06-06,Chicot,Arkansas,05017,21,0 +2020-06-07,Chicot,Arkansas,05017,23,0 +2020-06-08,Chicot,Arkansas,05017,26,0 +2020-06-09,Chicot,Arkansas,05017,26,0 +2020-06-10,Chicot,Arkansas,05017,30,0 +2020-06-11,Chicot,Arkansas,05017,32,1 +2020-06-12,Chicot,Arkansas,05017,40,1 +2020-06-13,Chicot,Arkansas,05017,43,1 +2020-06-14,Chicot,Arkansas,05017,49,2 +2020-06-15,Chicot,Arkansas,05017,54,2 +2020-06-16,Chicot,Arkansas,05017,58,2 +2020-06-17,Chicot,Arkansas,05017,62,2 +2020-06-18,Chicot,Arkansas,05017,66,2 +2020-06-19,Chicot,Arkansas,05017,67,2 +2020-06-20,Chicot,Arkansas,05017,70,2 +2020-06-21,Chicot,Arkansas,05017,81,2 +2020-06-22,Chicot,Arkansas,05017,88,2 +2020-06-23,Chicot,Arkansas,05017,93,2 +2020-06-24,Chicot,Arkansas,05017,96,2 +2020-06-25,Chicot,Arkansas,05017,108,2 +2020-06-26,Chicot,Arkansas,05017,117,3 +2020-06-27,Chicot,Arkansas,05017,120,3 +2020-06-28,Chicot,Arkansas,05017,120,3 +2020-06-29,Chicot,Arkansas,05017,129,3 +2020-06-30,Chicot,Arkansas,05017,134,3 +2020-07-01,Chicot,Arkansas,05017,139,3 +2020-07-02,Chicot,Arkansas,05017,150,3 +2020-07-03,Chicot,Arkansas,05017,154,3 +2020-07-04,Chicot,Arkansas,05017,159,3 +2020-07-05,Chicot,Arkansas,05017,180,3 +2020-07-06,Chicot,Arkansas,05017,183,3 +2020-07-07,Chicot,Arkansas,05017,183,3 +2020-07-08,Chicot,Arkansas,05017,189,3 +2020-07-09,Chicot,Arkansas,05017,201,3 +2020-03-19,Clark,Arkansas,05019,1,0 +2020-03-20,Clark,Arkansas,05019,1,0 +2020-03-21,Clark,Arkansas,05019,1,0 +2020-03-22,Clark,Arkansas,05019,1,0 +2020-03-23,Clark,Arkansas,05019,1,0 +2020-03-24,Clark,Arkansas,05019,6,0 +2020-03-25,Clark,Arkansas,05019,13,0 +2020-03-26,Clark,Arkansas,05019,15,0 +2020-03-27,Clark,Arkansas,05019,17,0 +2020-03-28,Clark,Arkansas,05019,18,0 +2020-03-29,Clark,Arkansas,05019,18,0 +2020-03-30,Clark,Arkansas,05019,24,0 +2020-03-31,Clark,Arkansas,05019,24,0 +2020-04-01,Clark,Arkansas,05019,26,0 +2020-04-02,Clark,Arkansas,05019,26,0 +2020-04-03,Clark,Arkansas,05019,27,0 +2020-04-04,Clark,Arkansas,05019,27,0 +2020-04-05,Clark,Arkansas,05019,27,0 +2020-04-06,Clark,Arkansas,05019,27,0 +2020-04-07,Clark,Arkansas,05019,27,0 +2020-04-08,Clark,Arkansas,05019,27,0 +2020-04-09,Clark,Arkansas,05019,27,0 +2020-04-10,Clark,Arkansas,05019,27,0 +2020-04-11,Clark,Arkansas,05019,27,0 +2020-04-12,Clark,Arkansas,05019,27,0 +2020-04-13,Clark,Arkansas,05019,26,0 +2020-04-14,Clark,Arkansas,05019,26,0 +2020-04-15,Clark,Arkansas,05019,27,0 +2020-04-16,Clark,Arkansas,05019,27,0 +2020-04-17,Clark,Arkansas,05019,27,0 +2020-04-18,Clark,Arkansas,05019,27,0 +2020-04-19,Clark,Arkansas,05019,27,0 +2020-04-20,Clark,Arkansas,05019,27,0 +2020-04-21,Clark,Arkansas,05019,27,0 +2020-04-22,Clark,Arkansas,05019,27,0 +2020-04-23,Clark,Arkansas,05019,27,0 +2020-04-24,Clark,Arkansas,05019,28,0 +2020-04-25,Clark,Arkansas,05019,28,0 +2020-04-26,Clark,Arkansas,05019,28,0 +2020-04-27,Clark,Arkansas,05019,27,0 +2020-04-28,Clark,Arkansas,05019,27,0 +2020-04-29,Clark,Arkansas,05019,28,0 +2020-04-30,Clark,Arkansas,05019,30,0 +2020-05-01,Clark,Arkansas,05019,30,0 +2020-05-02,Clark,Arkansas,05019,31,0 +2020-05-03,Clark,Arkansas,05019,31,0 +2020-05-04,Clark,Arkansas,05019,32,0 +2020-05-05,Clark,Arkansas,05019,32,0 +2020-05-06,Clark,Arkansas,05019,32,0 +2020-05-07,Clark,Arkansas,05019,32,0 +2020-05-08,Clark,Arkansas,05019,32,0 +2020-05-09,Clark,Arkansas,05019,32,0 +2020-05-10,Clark,Arkansas,05019,33,0 +2020-05-11,Clark,Arkansas,05019,33,0 +2020-05-12,Clark,Arkansas,05019,34,0 +2020-05-13,Clark,Arkansas,05019,35,0 +2020-05-14,Clark,Arkansas,05019,35,0 +2020-05-15,Clark,Arkansas,05019,35,0 +2020-05-16,Clark,Arkansas,05019,35,0 +2020-05-17,Clark,Arkansas,05019,35,0 +2020-05-18,Clark,Arkansas,05019,35,0 +2020-05-19,Clark,Arkansas,05019,35,0 +2020-05-20,Clark,Arkansas,05019,35,0 +2020-05-21,Clark,Arkansas,05019,35,0 +2020-05-22,Clark,Arkansas,05019,36,0 +2020-05-23,Clark,Arkansas,05019,36,0 +2020-05-24,Clark,Arkansas,05019,36,0 +2020-05-25,Clark,Arkansas,05019,36,0 +2020-05-26,Clark,Arkansas,05019,37,0 +2020-05-27,Clark,Arkansas,05019,37,0 +2020-05-28,Clark,Arkansas,05019,38,0 +2020-05-29,Clark,Arkansas,05019,39,0 +2020-05-30,Clark,Arkansas,05019,39,0 +2020-05-31,Clark,Arkansas,05019,39,0 +2020-06-01,Clark,Arkansas,05019,39,0 +2020-06-02,Clark,Arkansas,05019,39,0 +2020-06-03,Clark,Arkansas,05019,41,0 +2020-06-04,Clark,Arkansas,05019,40,0 +2020-06-05,Clark,Arkansas,05019,40,0 +2020-06-06,Clark,Arkansas,05019,40,0 +2020-06-07,Clark,Arkansas,05019,40,0 +2020-06-08,Clark,Arkansas,05019,41,0 +2020-06-09,Clark,Arkansas,05019,41,0 +2020-06-10,Clark,Arkansas,05019,41,0 +2020-06-11,Clark,Arkansas,05019,43,0 +2020-06-12,Clark,Arkansas,05019,45,0 +2020-06-13,Clark,Arkansas,05019,45,0 +2020-06-14,Clark,Arkansas,05019,45,0 +2020-06-15,Clark,Arkansas,05019,48,0 +2020-06-16,Clark,Arkansas,05019,48,0 +2020-06-17,Clark,Arkansas,05019,50,0 +2020-06-18,Clark,Arkansas,05019,50,0 +2020-06-19,Clark,Arkansas,05019,50,0 +2020-06-20,Clark,Arkansas,05019,50,0 +2020-06-21,Clark,Arkansas,05019,51,0 +2020-06-22,Clark,Arkansas,05019,53,0 +2020-06-23,Clark,Arkansas,05019,53,0 +2020-06-24,Clark,Arkansas,05019,54,0 +2020-06-25,Clark,Arkansas,05019,53,0 +2020-06-26,Clark,Arkansas,05019,53,0 +2020-06-27,Clark,Arkansas,05019,55,0 +2020-06-28,Clark,Arkansas,05019,56,0 +2020-06-29,Clark,Arkansas,05019,56,0 +2020-06-30,Clark,Arkansas,05019,56,0 +2020-07-01,Clark,Arkansas,05019,57,0 +2020-07-02,Clark,Arkansas,05019,57,0 +2020-07-03,Clark,Arkansas,05019,58,0 +2020-07-04,Clark,Arkansas,05019,58,0 +2020-07-05,Clark,Arkansas,05019,58,0 +2020-07-06,Clark,Arkansas,05019,59,0 +2020-07-07,Clark,Arkansas,05019,59,0 +2020-07-08,Clark,Arkansas,05019,61,0 +2020-07-09,Clark,Arkansas,05019,66,0 +2020-04-06,Clay,Arkansas,05021,1,0 +2020-04-07,Clay,Arkansas,05021,1,0 +2020-04-08,Clay,Arkansas,05021,1,0 +2020-04-09,Clay,Arkansas,05021,1,0 +2020-04-10,Clay,Arkansas,05021,1,0 +2020-04-11,Clay,Arkansas,05021,1,0 +2020-04-12,Clay,Arkansas,05021,1,0 +2020-04-13,Clay,Arkansas,05021,1,0 +2020-04-14,Clay,Arkansas,05021,1,0 +2020-04-15,Clay,Arkansas,05021,1,0 +2020-04-16,Clay,Arkansas,05021,1,0 +2020-04-17,Clay,Arkansas,05021,1,0 +2020-04-18,Clay,Arkansas,05021,1,0 +2020-04-19,Clay,Arkansas,05021,1,0 +2020-04-20,Clay,Arkansas,05021,1,0 +2020-04-21,Clay,Arkansas,05021,1,0 +2020-04-22,Clay,Arkansas,05021,1,0 +2020-04-23,Clay,Arkansas,05021,1,0 +2020-04-24,Clay,Arkansas,05021,1,0 +2020-04-25,Clay,Arkansas,05021,2,0 +2020-04-26,Clay,Arkansas,05021,2,0 +2020-04-27,Clay,Arkansas,05021,2,0 +2020-04-28,Clay,Arkansas,05021,3,0 +2020-04-29,Clay,Arkansas,05021,3,0 +2020-04-30,Clay,Arkansas,05021,3,0 +2020-05-01,Clay,Arkansas,05021,3,0 +2020-05-02,Clay,Arkansas,05021,3,0 +2020-05-03,Clay,Arkansas,05021,3,0 +2020-05-04,Clay,Arkansas,05021,3,0 +2020-05-05,Clay,Arkansas,05021,3,0 +2020-05-06,Clay,Arkansas,05021,3,0 +2020-05-07,Clay,Arkansas,05021,3,0 +2020-05-08,Clay,Arkansas,05021,3,0 +2020-05-09,Clay,Arkansas,05021,3,0 +2020-05-10,Clay,Arkansas,05021,3,0 +2020-05-11,Clay,Arkansas,05021,4,0 +2020-05-12,Clay,Arkansas,05021,3,0 +2020-05-13,Clay,Arkansas,05021,3,0 +2020-05-14,Clay,Arkansas,05021,3,0 +2020-05-15,Clay,Arkansas,05021,3,0 +2020-05-16,Clay,Arkansas,05021,3,0 +2020-05-17,Clay,Arkansas,05021,3,0 +2020-05-18,Clay,Arkansas,05021,4,0 +2020-05-19,Clay,Arkansas,05021,4,0 +2020-05-20,Clay,Arkansas,05021,4,0 +2020-05-21,Clay,Arkansas,05021,4,0 +2020-05-22,Clay,Arkansas,05021,4,0 +2020-05-23,Clay,Arkansas,05021,4,0 +2020-05-24,Clay,Arkansas,05021,4,0 +2020-05-25,Clay,Arkansas,05021,4,0 +2020-05-26,Clay,Arkansas,05021,4,0 +2020-05-27,Clay,Arkansas,05021,4,0 +2020-05-28,Clay,Arkansas,05021,4,0 +2020-05-29,Clay,Arkansas,05021,4,0 +2020-05-30,Clay,Arkansas,05021,4,0 +2020-05-31,Clay,Arkansas,05021,4,0 +2020-06-01,Clay,Arkansas,05021,4,0 +2020-06-02,Clay,Arkansas,05021,5,0 +2020-06-03,Clay,Arkansas,05021,5,0 +2020-06-04,Clay,Arkansas,05021,5,0 +2020-06-05,Clay,Arkansas,05021,5,0 +2020-06-06,Clay,Arkansas,05021,6,0 +2020-06-07,Clay,Arkansas,05021,6,0 +2020-06-08,Clay,Arkansas,05021,6,0 +2020-06-09,Clay,Arkansas,05021,7,0 +2020-06-10,Clay,Arkansas,05021,8,0 +2020-06-11,Clay,Arkansas,05021,9,0 +2020-06-12,Clay,Arkansas,05021,9,0 +2020-06-13,Clay,Arkansas,05021,18,0 +2020-06-14,Clay,Arkansas,05021,20,0 +2020-06-15,Clay,Arkansas,05021,20,0 +2020-06-16,Clay,Arkansas,05021,22,0 +2020-06-17,Clay,Arkansas,05021,23,0 +2020-06-18,Clay,Arkansas,05021,24,0 +2020-06-19,Clay,Arkansas,05021,31,0 +2020-06-20,Clay,Arkansas,05021,33,1 +2020-06-21,Clay,Arkansas,05021,40,2 +2020-06-22,Clay,Arkansas,05021,46,2 +2020-06-23,Clay,Arkansas,05021,48,3 +2020-06-24,Clay,Arkansas,05021,49,3 +2020-06-25,Clay,Arkansas,05021,49,3 +2020-06-26,Clay,Arkansas,05021,52,3 +2020-06-27,Clay,Arkansas,05021,52,3 +2020-06-28,Clay,Arkansas,05021,54,3 +2020-06-29,Clay,Arkansas,05021,54,3 +2020-06-30,Clay,Arkansas,05021,54,3 +2020-07-01,Clay,Arkansas,05021,59,3 +2020-07-02,Clay,Arkansas,05021,62,3 +2020-07-03,Clay,Arkansas,05021,64,3 +2020-07-04,Clay,Arkansas,05021,65,3 +2020-07-05,Clay,Arkansas,05021,66,3 +2020-07-06,Clay,Arkansas,05021,70,3 +2020-07-07,Clay,Arkansas,05021,71,3 +2020-07-08,Clay,Arkansas,05021,73,3 +2020-07-09,Clay,Arkansas,05021,77,3 +2020-03-16,Cleburne,Arkansas,05023,1,0 +2020-03-17,Cleburne,Arkansas,05023,1,0 +2020-03-18,Cleburne,Arkansas,05023,1,0 +2020-03-19,Cleburne,Arkansas,05023,1,0 +2020-03-20,Cleburne,Arkansas,05023,11,0 +2020-03-21,Cleburne,Arkansas,05023,22,0 +2020-03-22,Cleburne,Arkansas,05023,25,0 +2020-03-23,Cleburne,Arkansas,05023,25,0 +2020-03-24,Cleburne,Arkansas,05023,34,1 +2020-03-25,Cleburne,Arkansas,05023,41,1 +2020-03-26,Cleburne,Arkansas,05023,46,2 +2020-03-27,Cleburne,Arkansas,05023,49,2 +2020-03-28,Cleburne,Arkansas,05023,50,2 +2020-03-29,Cleburne,Arkansas,05023,56,2 +2020-03-30,Cleburne,Arkansas,05023,58,2 +2020-03-31,Cleburne,Arkansas,05023,61,2 +2020-04-01,Cleburne,Arkansas,05023,63,3 +2020-04-02,Cleburne,Arkansas,05023,64,3 +2020-04-03,Cleburne,Arkansas,05023,65,3 +2020-04-04,Cleburne,Arkansas,05023,65,3 +2020-04-05,Cleburne,Arkansas,05023,65,4 +2020-04-06,Cleburne,Arkansas,05023,65,4 +2020-04-07,Cleburne,Arkansas,05023,67,4 +2020-04-08,Cleburne,Arkansas,05023,70,4 +2020-04-09,Cleburne,Arkansas,05023,69,4 +2020-04-10,Cleburne,Arkansas,05023,69,4 +2020-04-11,Cleburne,Arkansas,05023,69,4 +2020-04-12,Cleburne,Arkansas,05023,70,4 +2020-04-13,Cleburne,Arkansas,05023,70,4 +2020-04-14,Cleburne,Arkansas,05023,70,4 +2020-04-15,Cleburne,Arkansas,05023,70,4 +2020-04-16,Cleburne,Arkansas,05023,70,4 +2020-04-17,Cleburne,Arkansas,05023,70,4 +2020-04-18,Cleburne,Arkansas,05023,70,4 +2020-04-19,Cleburne,Arkansas,05023,70,4 +2020-04-20,Cleburne,Arkansas,05023,71,4 +2020-04-21,Cleburne,Arkansas,05023,71,4 +2020-04-22,Cleburne,Arkansas,05023,71,4 +2020-04-23,Cleburne,Arkansas,05023,71,4 +2020-04-24,Cleburne,Arkansas,05023,72,4 +2020-04-25,Cleburne,Arkansas,05023,72,4 +2020-04-26,Cleburne,Arkansas,05023,72,4 +2020-04-27,Cleburne,Arkansas,05023,72,4 +2020-04-28,Cleburne,Arkansas,05023,72,4 +2020-04-29,Cleburne,Arkansas,05023,73,4 +2020-04-30,Cleburne,Arkansas,05023,73,4 +2020-05-01,Cleburne,Arkansas,05023,73,4 +2020-05-02,Cleburne,Arkansas,05023,73,4 +2020-05-03,Cleburne,Arkansas,05023,73,4 +2020-05-04,Cleburne,Arkansas,05023,72,4 +2020-05-05,Cleburne,Arkansas,05023,72,4 +2020-05-06,Cleburne,Arkansas,05023,72,4 +2020-05-07,Cleburne,Arkansas,05023,72,4 +2020-05-08,Cleburne,Arkansas,05023,72,4 +2020-05-09,Cleburne,Arkansas,05023,72,4 +2020-05-10,Cleburne,Arkansas,05023,72,4 +2020-05-11,Cleburne,Arkansas,05023,72,4 +2020-05-12,Cleburne,Arkansas,05023,72,4 +2020-05-13,Cleburne,Arkansas,05023,72,4 +2020-05-14,Cleburne,Arkansas,05023,72,4 +2020-05-15,Cleburne,Arkansas,05023,72,4 +2020-05-16,Cleburne,Arkansas,05023,72,4 +2020-05-17,Cleburne,Arkansas,05023,72,4 +2020-05-18,Cleburne,Arkansas,05023,72,4 +2020-05-19,Cleburne,Arkansas,05023,72,4 +2020-05-20,Cleburne,Arkansas,05023,73,4 +2020-05-21,Cleburne,Arkansas,05023,73,4 +2020-05-22,Cleburne,Arkansas,05023,73,4 +2020-05-23,Cleburne,Arkansas,05023,73,4 +2020-05-24,Cleburne,Arkansas,05023,73,4 +2020-05-25,Cleburne,Arkansas,05023,73,4 +2020-05-26,Cleburne,Arkansas,05023,73,4 +2020-05-27,Cleburne,Arkansas,05023,73,4 +2020-05-28,Cleburne,Arkansas,05023,73,4 +2020-05-29,Cleburne,Arkansas,05023,73,4 +2020-05-30,Cleburne,Arkansas,05023,73,4 +2020-05-31,Cleburne,Arkansas,05023,73,4 +2020-06-01,Cleburne,Arkansas,05023,74,4 +2020-06-02,Cleburne,Arkansas,05023,74,4 +2020-06-03,Cleburne,Arkansas,05023,76,4 +2020-06-04,Cleburne,Arkansas,05023,76,4 +2020-06-05,Cleburne,Arkansas,05023,74,4 +2020-06-06,Cleburne,Arkansas,05023,74,4 +2020-06-07,Cleburne,Arkansas,05023,74,4 +2020-06-08,Cleburne,Arkansas,05023,75,4 +2020-06-09,Cleburne,Arkansas,05023,75,4 +2020-06-10,Cleburne,Arkansas,05023,74,4 +2020-06-11,Cleburne,Arkansas,05023,74,4 +2020-06-12,Cleburne,Arkansas,05023,74,4 +2020-06-13,Cleburne,Arkansas,05023,75,4 +2020-06-14,Cleburne,Arkansas,05023,75,4 +2020-06-15,Cleburne,Arkansas,05023,75,4 +2020-06-16,Cleburne,Arkansas,05023,75,4 +2020-06-17,Cleburne,Arkansas,05023,75,4 +2020-06-18,Cleburne,Arkansas,05023,76,4 +2020-06-19,Cleburne,Arkansas,05023,76,4 +2020-06-20,Cleburne,Arkansas,05023,77,4 +2020-06-21,Cleburne,Arkansas,05023,77,4 +2020-06-22,Cleburne,Arkansas,05023,77,4 +2020-06-23,Cleburne,Arkansas,05023,77,4 +2020-06-24,Cleburne,Arkansas,05023,78,4 +2020-06-25,Cleburne,Arkansas,05023,79,4 +2020-06-26,Cleburne,Arkansas,05023,82,4 +2020-06-27,Cleburne,Arkansas,05023,83,4 +2020-06-28,Cleburne,Arkansas,05023,84,4 +2020-06-29,Cleburne,Arkansas,05023,85,4 +2020-06-30,Cleburne,Arkansas,05023,85,4 +2020-07-01,Cleburne,Arkansas,05023,92,4 +2020-07-02,Cleburne,Arkansas,05023,101,4 +2020-07-03,Cleburne,Arkansas,05023,102,4 +2020-07-04,Cleburne,Arkansas,05023,110,4 +2020-07-05,Cleburne,Arkansas,05023,111,4 +2020-07-06,Cleburne,Arkansas,05023,115,4 +2020-07-07,Cleburne,Arkansas,05023,117,4 +2020-07-08,Cleburne,Arkansas,05023,119,4 +2020-07-09,Cleburne,Arkansas,05023,124,4 +2020-03-16,Cleveland,Arkansas,05025,1,0 +2020-03-17,Cleveland,Arkansas,05025,1,0 +2020-03-18,Cleveland,Arkansas,05025,1,0 +2020-03-19,Cleveland,Arkansas,05025,1,0 +2020-03-20,Cleveland,Arkansas,05025,1,0 +2020-03-21,Cleveland,Arkansas,05025,1,0 +2020-03-22,Cleveland,Arkansas,05025,1,0 +2020-03-23,Cleveland,Arkansas,05025,1,0 +2020-03-24,Cleveland,Arkansas,05025,3,0 +2020-03-25,Cleveland,Arkansas,05025,4,0 +2020-03-26,Cleveland,Arkansas,05025,4,0 +2020-03-27,Cleveland,Arkansas,05025,4,0 +2020-03-28,Cleveland,Arkansas,05025,5,0 +2020-03-29,Cleveland,Arkansas,05025,5,0 +2020-03-30,Cleveland,Arkansas,05025,5,0 +2020-03-31,Cleveland,Arkansas,05025,5,0 +2020-04-01,Cleveland,Arkansas,05025,5,0 +2020-04-02,Cleveland,Arkansas,05025,4,0 +2020-04-03,Cleveland,Arkansas,05025,4,0 +2020-04-04,Cleveland,Arkansas,05025,4,0 +2020-04-05,Cleveland,Arkansas,05025,7,0 +2020-04-06,Cleveland,Arkansas,05025,7,0 +2020-04-07,Cleveland,Arkansas,05025,7,0 +2020-04-08,Cleveland,Arkansas,05025,8,0 +2020-04-09,Cleveland,Arkansas,05025,8,0 +2020-04-10,Cleveland,Arkansas,05025,8,0 +2020-04-11,Cleveland,Arkansas,05025,8,0 +2020-04-12,Cleveland,Arkansas,05025,8,0 +2020-04-13,Cleveland,Arkansas,05025,8,0 +2020-04-14,Cleveland,Arkansas,05025,8,0 +2020-04-15,Cleveland,Arkansas,05025,8,0 +2020-04-16,Cleveland,Arkansas,05025,8,0 +2020-04-17,Cleveland,Arkansas,05025,8,0 +2020-04-18,Cleveland,Arkansas,05025,8,0 +2020-04-19,Cleveland,Arkansas,05025,8,0 +2020-04-20,Cleveland,Arkansas,05025,8,0 +2020-04-21,Cleveland,Arkansas,05025,8,0 +2020-04-22,Cleveland,Arkansas,05025,8,0 +2020-04-23,Cleveland,Arkansas,05025,8,0 +2020-04-24,Cleveland,Arkansas,05025,8,0 +2020-04-25,Cleveland,Arkansas,05025,9,0 +2020-04-26,Cleveland,Arkansas,05025,10,0 +2020-04-27,Cleveland,Arkansas,05025,10,0 +2020-04-28,Cleveland,Arkansas,05025,10,0 +2020-04-29,Cleveland,Arkansas,05025,10,0 +2020-04-30,Cleveland,Arkansas,05025,11,0 +2020-05-01,Cleveland,Arkansas,05025,11,0 +2020-05-02,Cleveland,Arkansas,05025,11,0 +2020-05-03,Cleveland,Arkansas,05025,11,0 +2020-05-04,Cleveland,Arkansas,05025,11,0 +2020-05-05,Cleveland,Arkansas,05025,11,0 +2020-05-06,Cleveland,Arkansas,05025,11,0 +2020-05-07,Cleveland,Arkansas,05025,12,0 +2020-05-08,Cleveland,Arkansas,05025,13,0 +2020-05-09,Cleveland,Arkansas,05025,13,0 +2020-05-10,Cleveland,Arkansas,05025,13,0 +2020-05-11,Cleveland,Arkansas,05025,13,0 +2020-05-12,Cleveland,Arkansas,05025,13,0 +2020-05-13,Cleveland,Arkansas,05025,15,0 +2020-05-14,Cleveland,Arkansas,05025,15,0 +2020-05-15,Cleveland,Arkansas,05025,16,0 +2020-05-16,Cleveland,Arkansas,05025,16,0 +2020-05-17,Cleveland,Arkansas,05025,16,0 +2020-05-18,Cleveland,Arkansas,05025,16,0 +2020-05-19,Cleveland,Arkansas,05025,17,0 +2020-05-20,Cleveland,Arkansas,05025,17,0 +2020-05-21,Cleveland,Arkansas,05025,17,0 +2020-05-22,Cleveland,Arkansas,05025,18,0 +2020-05-23,Cleveland,Arkansas,05025,18,0 +2020-05-24,Cleveland,Arkansas,05025,18,0 +2020-05-25,Cleveland,Arkansas,05025,18,0 +2020-05-26,Cleveland,Arkansas,05025,18,0 +2020-05-27,Cleveland,Arkansas,05025,18,0 +2020-05-28,Cleveland,Arkansas,05025,18,0 +2020-05-29,Cleveland,Arkansas,05025,19,0 +2020-05-30,Cleveland,Arkansas,05025,19,0 +2020-05-31,Cleveland,Arkansas,05025,19,0 +2020-06-01,Cleveland,Arkansas,05025,19,0 +2020-06-02,Cleveland,Arkansas,05025,19,0 +2020-06-03,Cleveland,Arkansas,05025,19,0 +2020-06-04,Cleveland,Arkansas,05025,19,0 +2020-06-05,Cleveland,Arkansas,05025,19,0 +2020-06-06,Cleveland,Arkansas,05025,19,0 +2020-06-07,Cleveland,Arkansas,05025,19,0 +2020-06-08,Cleveland,Arkansas,05025,19,0 +2020-06-09,Cleveland,Arkansas,05025,19,0 +2020-06-10,Cleveland,Arkansas,05025,19,0 +2020-06-11,Cleveland,Arkansas,05025,19,0 +2020-06-12,Cleveland,Arkansas,05025,19,0 +2020-06-13,Cleveland,Arkansas,05025,19,0 +2020-06-14,Cleveland,Arkansas,05025,20,0 +2020-06-15,Cleveland,Arkansas,05025,20,0 +2020-06-16,Cleveland,Arkansas,05025,20,0 +2020-06-17,Cleveland,Arkansas,05025,20,0 +2020-06-18,Cleveland,Arkansas,05025,20,0 +2020-06-19,Cleveland,Arkansas,05025,22,0 +2020-06-20,Cleveland,Arkansas,05025,22,0 +2020-06-21,Cleveland,Arkansas,05025,25,0 +2020-06-22,Cleveland,Arkansas,05025,25,0 +2020-06-23,Cleveland,Arkansas,05025,25,0 +2020-06-24,Cleveland,Arkansas,05025,25,0 +2020-06-25,Cleveland,Arkansas,05025,25,0 +2020-06-26,Cleveland,Arkansas,05025,25,0 +2020-06-27,Cleveland,Arkansas,05025,25,0 +2020-06-28,Cleveland,Arkansas,05025,25,0 +2020-06-29,Cleveland,Arkansas,05025,25,0 +2020-06-30,Cleveland,Arkansas,05025,25,0 +2020-07-01,Cleveland,Arkansas,05025,26,0 +2020-07-02,Cleveland,Arkansas,05025,27,0 +2020-07-03,Cleveland,Arkansas,05025,27,0 +2020-07-04,Cleveland,Arkansas,05025,29,0 +2020-07-05,Cleveland,Arkansas,05025,29,0 +2020-07-06,Cleveland,Arkansas,05025,29,0 +2020-07-07,Cleveland,Arkansas,05025,30,0 +2020-07-08,Cleveland,Arkansas,05025,31,0 +2020-07-09,Cleveland,Arkansas,05025,32,0 +2020-03-24,Columbia,Arkansas,05027,1,0 +2020-03-25,Columbia,Arkansas,05027,1,0 +2020-03-26,Columbia,Arkansas,05027,1,0 +2020-03-27,Columbia,Arkansas,05027,1,0 +2020-03-28,Columbia,Arkansas,05027,1,0 +2020-03-29,Columbia,Arkansas,05027,2,0 +2020-03-30,Columbia,Arkansas,05027,2,0 +2020-03-31,Columbia,Arkansas,05027,2,0 +2020-04-01,Columbia,Arkansas,05027,2,0 +2020-04-02,Columbia,Arkansas,05027,2,0 +2020-04-03,Columbia,Arkansas,05027,3,0 +2020-04-04,Columbia,Arkansas,05027,3,0 +2020-04-05,Columbia,Arkansas,05027,3,0 +2020-04-06,Columbia,Arkansas,05027,3,0 +2020-04-07,Columbia,Arkansas,05027,3,0 +2020-04-08,Columbia,Arkansas,05027,3,0 +2020-04-09,Columbia,Arkansas,05027,3,0 +2020-04-10,Columbia,Arkansas,05027,3,0 +2020-04-11,Columbia,Arkansas,05027,3,0 +2020-04-12,Columbia,Arkansas,05027,3,0 +2020-04-13,Columbia,Arkansas,05027,3,0 +2020-04-14,Columbia,Arkansas,05027,3,0 +2020-04-15,Columbia,Arkansas,05027,4,0 +2020-04-16,Columbia,Arkansas,05027,4,0 +2020-04-17,Columbia,Arkansas,05027,4,0 +2020-04-18,Columbia,Arkansas,05027,5,0 +2020-04-19,Columbia,Arkansas,05027,5,0 +2020-04-20,Columbia,Arkansas,05027,5,0 +2020-04-21,Columbia,Arkansas,05027,5,0 +2020-04-22,Columbia,Arkansas,05027,5,0 +2020-04-23,Columbia,Arkansas,05027,5,0 +2020-04-24,Columbia,Arkansas,05027,6,0 +2020-04-25,Columbia,Arkansas,05027,5,0 +2020-04-26,Columbia,Arkansas,05027,6,0 +2020-04-27,Columbia,Arkansas,05027,9,0 +2020-04-28,Columbia,Arkansas,05027,12,0 +2020-04-29,Columbia,Arkansas,05027,12,0 +2020-04-30,Columbia,Arkansas,05027,13,0 +2020-05-01,Columbia,Arkansas,05027,13,0 +2020-05-02,Columbia,Arkansas,05027,13,2 +2020-05-03,Columbia,Arkansas,05027,13,2 +2020-05-04,Columbia,Arkansas,05027,13,2 +2020-05-05,Columbia,Arkansas,05027,13,2 +2020-05-06,Columbia,Arkansas,05027,15,2 +2020-05-07,Columbia,Arkansas,05027,15,2 +2020-05-08,Columbia,Arkansas,05027,15,2 +2020-05-09,Columbia,Arkansas,05027,15,2 +2020-05-10,Columbia,Arkansas,05027,15,2 +2020-05-11,Columbia,Arkansas,05027,15,2 +2020-05-12,Columbia,Arkansas,05027,15,2 +2020-05-13,Columbia,Arkansas,05027,15,2 +2020-05-14,Columbia,Arkansas,05027,15,2 +2020-05-15,Columbia,Arkansas,05027,15,2 +2020-05-16,Columbia,Arkansas,05027,15,2 +2020-05-17,Columbia,Arkansas,05027,15,2 +2020-05-18,Columbia,Arkansas,05027,16,2 +2020-05-19,Columbia,Arkansas,05027,18,2 +2020-05-20,Columbia,Arkansas,05027,20,2 +2020-05-21,Columbia,Arkansas,05027,20,2 +2020-05-22,Columbia,Arkansas,05027,20,2 +2020-05-23,Columbia,Arkansas,05027,20,2 +2020-05-24,Columbia,Arkansas,05027,20,2 +2020-05-25,Columbia,Arkansas,05027,20,2 +2020-05-26,Columbia,Arkansas,05027,20,2 +2020-05-27,Columbia,Arkansas,05027,20,2 +2020-05-28,Columbia,Arkansas,05027,20,2 +2020-05-29,Columbia,Arkansas,05027,21,2 +2020-05-30,Columbia,Arkansas,05027,25,2 +2020-05-31,Columbia,Arkansas,05027,23,2 +2020-06-01,Columbia,Arkansas,05027,23,2 +2020-06-02,Columbia,Arkansas,05027,22,2 +2020-06-03,Columbia,Arkansas,05027,22,2 +2020-06-04,Columbia,Arkansas,05027,23,2 +2020-06-05,Columbia,Arkansas,05027,23,2 +2020-06-06,Columbia,Arkansas,05027,23,2 +2020-06-07,Columbia,Arkansas,05027,23,2 +2020-06-08,Columbia,Arkansas,05027,25,2 +2020-06-09,Columbia,Arkansas,05027,26,2 +2020-06-10,Columbia,Arkansas,05027,26,2 +2020-06-11,Columbia,Arkansas,05027,27,2 +2020-06-12,Columbia,Arkansas,05027,27,2 +2020-06-13,Columbia,Arkansas,05027,27,2 +2020-06-14,Columbia,Arkansas,05027,28,2 +2020-06-15,Columbia,Arkansas,05027,28,2 +2020-06-16,Columbia,Arkansas,05027,29,2 +2020-06-17,Columbia,Arkansas,05027,28,2 +2020-06-18,Columbia,Arkansas,05027,29,2 +2020-06-19,Columbia,Arkansas,05027,31,2 +2020-06-20,Columbia,Arkansas,05027,32,2 +2020-06-21,Columbia,Arkansas,05027,38,2 +2020-06-22,Columbia,Arkansas,05027,43,2 +2020-06-23,Columbia,Arkansas,05027,44,3 +2020-06-24,Columbia,Arkansas,05027,72,3 +2020-06-25,Columbia,Arkansas,05027,72,3 +2020-06-26,Columbia,Arkansas,05027,73,3 +2020-06-27,Columbia,Arkansas,05027,74,3 +2020-06-28,Columbia,Arkansas,05027,84,3 +2020-06-29,Columbia,Arkansas,05027,84,3 +2020-06-30,Columbia,Arkansas,05027,83,3 +2020-07-01,Columbia,Arkansas,05027,84,4 +2020-07-02,Columbia,Arkansas,05027,84,4 +2020-07-03,Columbia,Arkansas,05027,85,4 +2020-07-04,Columbia,Arkansas,05027,89,4 +2020-07-05,Columbia,Arkansas,05027,90,4 +2020-07-06,Columbia,Arkansas,05027,90,4 +2020-07-07,Columbia,Arkansas,05027,90,4 +2020-07-08,Columbia,Arkansas,05027,100,4 +2020-07-09,Columbia,Arkansas,05027,103,5 +2020-03-24,Conway,Arkansas,05029,1,0 +2020-03-25,Conway,Arkansas,05029,2,0 +2020-03-26,Conway,Arkansas,05029,2,0 +2020-03-27,Conway,Arkansas,05029,2,0 +2020-03-28,Conway,Arkansas,05029,2,1 +2020-03-29,Conway,Arkansas,05029,2,1 +2020-03-30,Conway,Arkansas,05029,2,1 +2020-03-31,Conway,Arkansas,05029,2,1 +2020-04-01,Conway,Arkansas,05029,3,1 +2020-04-02,Conway,Arkansas,05029,3,1 +2020-04-03,Conway,Arkansas,05029,3,1 +2020-04-04,Conway,Arkansas,05029,3,1 +2020-04-05,Conway,Arkansas,05029,4,1 +2020-04-06,Conway,Arkansas,05029,4,1 +2020-04-07,Conway,Arkansas,05029,4,1 +2020-04-08,Conway,Arkansas,05029,4,1 +2020-04-09,Conway,Arkansas,05029,4,1 +2020-04-10,Conway,Arkansas,05029,4,1 +2020-04-11,Conway,Arkansas,05029,4,1 +2020-04-12,Conway,Arkansas,05029,4,1 +2020-04-13,Conway,Arkansas,05029,4,1 +2020-04-14,Conway,Arkansas,05029,4,1 +2020-04-15,Conway,Arkansas,05029,5,1 +2020-04-16,Conway,Arkansas,05029,5,1 +2020-04-17,Conway,Arkansas,05029,5,1 +2020-04-18,Conway,Arkansas,05029,5,1 +2020-04-19,Conway,Arkansas,05029,5,1 +2020-04-20,Conway,Arkansas,05029,5,1 +2020-04-21,Conway,Arkansas,05029,5,1 +2020-04-22,Conway,Arkansas,05029,7,1 +2020-04-23,Conway,Arkansas,05029,8,1 +2020-04-24,Conway,Arkansas,05029,10,1 +2020-04-25,Conway,Arkansas,05029,10,1 +2020-04-26,Conway,Arkansas,05029,11,1 +2020-04-27,Conway,Arkansas,05029,12,1 +2020-04-28,Conway,Arkansas,05029,12,1 +2020-04-29,Conway,Arkansas,05029,13,1 +2020-04-30,Conway,Arkansas,05029,13,1 +2020-05-01,Conway,Arkansas,05029,13,1 +2020-05-02,Conway,Arkansas,05029,13,1 +2020-05-03,Conway,Arkansas,05029,13,1 +2020-05-04,Conway,Arkansas,05029,13,1 +2020-05-05,Conway,Arkansas,05029,13,1 +2020-05-06,Conway,Arkansas,05029,13,1 +2020-05-07,Conway,Arkansas,05029,13,1 +2020-05-08,Conway,Arkansas,05029,13,1 +2020-05-09,Conway,Arkansas,05029,13,1 +2020-05-10,Conway,Arkansas,05029,13,1 +2020-05-11,Conway,Arkansas,05029,13,1 +2020-05-12,Conway,Arkansas,05029,13,1 +2020-05-13,Conway,Arkansas,05029,14,1 +2020-05-14,Conway,Arkansas,05029,14,1 +2020-05-15,Conway,Arkansas,05029,14,1 +2020-05-16,Conway,Arkansas,05029,14,1 +2020-05-17,Conway,Arkansas,05029,14,1 +2020-05-18,Conway,Arkansas,05029,14,1 +2020-05-19,Conway,Arkansas,05029,14,1 +2020-05-20,Conway,Arkansas,05029,14,1 +2020-05-21,Conway,Arkansas,05029,14,1 +2020-05-22,Conway,Arkansas,05029,14,1 +2020-05-23,Conway,Arkansas,05029,14,1 +2020-05-24,Conway,Arkansas,05029,14,1 +2020-05-25,Conway,Arkansas,05029,14,1 +2020-05-26,Conway,Arkansas,05029,14,1 +2020-05-27,Conway,Arkansas,05029,14,1 +2020-05-28,Conway,Arkansas,05029,14,1 +2020-05-29,Conway,Arkansas,05029,14,1 +2020-05-30,Conway,Arkansas,05029,14,1 +2020-05-31,Conway,Arkansas,05029,14,1 +2020-06-01,Conway,Arkansas,05029,14,1 +2020-06-02,Conway,Arkansas,05029,14,1 +2020-06-03,Conway,Arkansas,05029,14,1 +2020-06-04,Conway,Arkansas,05029,15,1 +2020-06-05,Conway,Arkansas,05029,15,1 +2020-06-06,Conway,Arkansas,05029,15,1 +2020-06-07,Conway,Arkansas,05029,15,1 +2020-06-08,Conway,Arkansas,05029,15,1 +2020-06-09,Conway,Arkansas,05029,16,1 +2020-06-10,Conway,Arkansas,05029,16,1 +2020-06-11,Conway,Arkansas,05029,16,1 +2020-06-12,Conway,Arkansas,05029,19,2 +2020-06-13,Conway,Arkansas,05029,19,2 +2020-06-14,Conway,Arkansas,05029,21,2 +2020-06-15,Conway,Arkansas,05029,24,2 +2020-06-16,Conway,Arkansas,05029,24,2 +2020-06-17,Conway,Arkansas,05029,24,3 +2020-06-18,Conway,Arkansas,05029,25,3 +2020-06-19,Conway,Arkansas,05029,26,3 +2020-06-20,Conway,Arkansas,05029,29,3 +2020-06-21,Conway,Arkansas,05029,34,3 +2020-06-22,Conway,Arkansas,05029,34,3 +2020-06-23,Conway,Arkansas,05029,36,3 +2020-06-24,Conway,Arkansas,05029,39,3 +2020-06-25,Conway,Arkansas,05029,39,3 +2020-06-26,Conway,Arkansas,05029,42,3 +2020-06-27,Conway,Arkansas,05029,44,3 +2020-06-28,Conway,Arkansas,05029,47,3 +2020-06-29,Conway,Arkansas,05029,48,3 +2020-06-30,Conway,Arkansas,05029,55,3 +2020-07-01,Conway,Arkansas,05029,60,3 +2020-07-02,Conway,Arkansas,05029,61,3 +2020-07-03,Conway,Arkansas,05029,66,3 +2020-07-04,Conway,Arkansas,05029,69,3 +2020-07-05,Conway,Arkansas,05029,72,3 +2020-07-06,Conway,Arkansas,05029,74,3 +2020-07-07,Conway,Arkansas,05029,77,3 +2020-07-08,Conway,Arkansas,05029,82,3 +2020-07-09,Conway,Arkansas,05029,84,3 +2020-03-19,Craighead,Arkansas,05031,1,0 +2020-03-20,Craighead,Arkansas,05031,1,0 +2020-03-21,Craighead,Arkansas,05031,1,0 +2020-03-22,Craighead,Arkansas,05031,1,0 +2020-03-23,Craighead,Arkansas,05031,1,0 +2020-03-24,Craighead,Arkansas,05031,4,0 +2020-03-25,Craighead,Arkansas,05031,4,0 +2020-03-26,Craighead,Arkansas,05031,4,0 +2020-03-27,Craighead,Arkansas,05031,4,0 +2020-03-28,Craighead,Arkansas,05031,4,0 +2020-03-29,Craighead,Arkansas,05031,6,0 +2020-03-30,Craighead,Arkansas,05031,8,0 +2020-03-31,Craighead,Arkansas,05031,10,0 +2020-04-01,Craighead,Arkansas,05031,13,0 +2020-04-02,Craighead,Arkansas,05031,13,0 +2020-04-03,Craighead,Arkansas,05031,16,0 +2020-04-04,Craighead,Arkansas,05031,17,0 +2020-04-05,Craighead,Arkansas,05031,20,0 +2020-04-06,Craighead,Arkansas,05031,22,0 +2020-04-07,Craighead,Arkansas,05031,23,0 +2020-04-08,Craighead,Arkansas,05031,27,0 +2020-04-09,Craighead,Arkansas,05031,28,0 +2020-04-10,Craighead,Arkansas,05031,31,0 +2020-04-11,Craighead,Arkansas,05031,31,0 +2020-04-12,Craighead,Arkansas,05031,31,0 +2020-04-13,Craighead,Arkansas,05031,36,0 +2020-04-14,Craighead,Arkansas,05031,36,0 +2020-04-15,Craighead,Arkansas,05031,40,1 +2020-04-16,Craighead,Arkansas,05031,40,1 +2020-04-17,Craighead,Arkansas,05031,40,1 +2020-04-18,Craighead,Arkansas,05031,43,1 +2020-04-19,Craighead,Arkansas,05031,43,1 +2020-04-20,Craighead,Arkansas,05031,44,1 +2020-04-21,Craighead,Arkansas,05031,48,1 +2020-04-22,Craighead,Arkansas,05031,49,1 +2020-04-23,Craighead,Arkansas,05031,55,1 +2020-04-24,Craighead,Arkansas,05031,58,1 +2020-04-25,Craighead,Arkansas,05031,62,1 +2020-04-26,Craighead,Arkansas,05031,62,0 +2020-04-27,Craighead,Arkansas,05031,68,0 +2020-04-28,Craighead,Arkansas,05031,70,0 +2020-04-29,Craighead,Arkansas,05031,74,0 +2020-04-30,Craighead,Arkansas,05031,74,0 +2020-05-01,Craighead,Arkansas,05031,80,0 +2020-05-02,Craighead,Arkansas,05031,81,0 +2020-05-03,Craighead,Arkansas,05031,81,0 +2020-05-04,Craighead,Arkansas,05031,84,0 +2020-05-05,Craighead,Arkansas,05031,85,0 +2020-05-06,Craighead,Arkansas,05031,88,0 +2020-05-07,Craighead,Arkansas,05031,92,0 +2020-05-08,Craighead,Arkansas,05031,92,0 +2020-05-09,Craighead,Arkansas,05031,92,0 +2020-05-10,Craighead,Arkansas,05031,97,0 +2020-05-11,Craighead,Arkansas,05031,98,0 +2020-05-12,Craighead,Arkansas,05031,103,0 +2020-05-13,Craighead,Arkansas,05031,113,0 +2020-05-14,Craighead,Arkansas,05031,127,0 +2020-05-15,Craighead,Arkansas,05031,130,0 +2020-05-16,Craighead,Arkansas,05031,137,0 +2020-05-17,Craighead,Arkansas,05031,140,0 +2020-05-18,Craighead,Arkansas,05031,141,0 +2020-05-19,Craighead,Arkansas,05031,147,0 +2020-05-20,Craighead,Arkansas,05031,153,0 +2020-05-21,Craighead,Arkansas,05031,170,0 +2020-05-22,Craighead,Arkansas,05031,174,0 +2020-05-23,Craighead,Arkansas,05031,181,0 +2020-05-24,Craighead,Arkansas,05031,185,0 +2020-05-25,Craighead,Arkansas,05031,188,0 +2020-05-26,Craighead,Arkansas,05031,190,0 +2020-05-27,Craighead,Arkansas,05031,191,0 +2020-05-28,Craighead,Arkansas,05031,203,0 +2020-05-29,Craighead,Arkansas,05031,206,0 +2020-05-30,Craighead,Arkansas,05031,212,0 +2020-05-31,Craighead,Arkansas,05031,220,0 +2020-06-01,Craighead,Arkansas,05031,228,0 +2020-06-02,Craighead,Arkansas,05031,249,0 +2020-06-03,Craighead,Arkansas,05031,257,0 +2020-06-04,Craighead,Arkansas,05031,266,0 +2020-06-05,Craighead,Arkansas,05031,279,0 +2020-06-06,Craighead,Arkansas,05031,300,1 +2020-06-07,Craighead,Arkansas,05031,302,1 +2020-06-08,Craighead,Arkansas,05031,305,1 +2020-06-09,Craighead,Arkansas,05031,318,1 +2020-06-10,Craighead,Arkansas,05031,331,1 +2020-06-11,Craighead,Arkansas,05031,337,1 +2020-06-12,Craighead,Arkansas,05031,346,1 +2020-06-13,Craighead,Arkansas,05031,352,1 +2020-06-14,Craighead,Arkansas,05031,358,1 +2020-06-15,Craighead,Arkansas,05031,363,2 +2020-06-16,Craighead,Arkansas,05031,365,2 +2020-06-17,Craighead,Arkansas,05031,369,2 +2020-06-18,Craighead,Arkansas,05031,372,5 +2020-06-19,Craighead,Arkansas,05031,385,5 +2020-06-20,Craighead,Arkansas,05031,388,5 +2020-06-21,Craighead,Arkansas,05031,396,5 +2020-06-22,Craighead,Arkansas,05031,401,5 +2020-06-23,Craighead,Arkansas,05031,404,6 +2020-06-24,Craighead,Arkansas,05031,415,6 +2020-06-25,Craighead,Arkansas,05031,422,6 +2020-06-26,Craighead,Arkansas,05031,430,6 +2020-06-27,Craighead,Arkansas,05031,436,6 +2020-06-28,Craighead,Arkansas,05031,442,6 +2020-06-29,Craighead,Arkansas,05031,447,6 +2020-06-30,Craighead,Arkansas,05031,451,6 +2020-07-01,Craighead,Arkansas,05031,453,7 +2020-07-02,Craighead,Arkansas,05031,458,7 +2020-07-03,Craighead,Arkansas,05031,467,7 +2020-07-04,Craighead,Arkansas,05031,472,7 +2020-07-05,Craighead,Arkansas,05031,480,7 +2020-07-06,Craighead,Arkansas,05031,482,7 +2020-07-07,Craighead,Arkansas,05031,485,7 +2020-07-08,Craighead,Arkansas,05031,498,7 +2020-07-09,Craighead,Arkansas,05031,514,7 +2020-03-24,Crawford,Arkansas,05033,1,0 +2020-03-25,Crawford,Arkansas,05033,1,0 +2020-03-26,Crawford,Arkansas,05033,1,0 +2020-03-27,Crawford,Arkansas,05033,1,0 +2020-03-28,Crawford,Arkansas,05033,1,0 +2020-03-29,Crawford,Arkansas,05033,2,0 +2020-03-30,Crawford,Arkansas,05033,2,0 +2020-03-31,Crawford,Arkansas,05033,3,0 +2020-04-01,Crawford,Arkansas,05033,3,0 +2020-04-02,Crawford,Arkansas,05033,3,0 +2020-04-03,Crawford,Arkansas,05033,3,0 +2020-04-04,Crawford,Arkansas,05033,3,0 +2020-04-05,Crawford,Arkansas,05033,3,0 +2020-04-06,Crawford,Arkansas,05033,3,0 +2020-04-07,Crawford,Arkansas,05033,3,0 +2020-04-08,Crawford,Arkansas,05033,3,0 +2020-04-09,Crawford,Arkansas,05033,3,0 +2020-04-10,Crawford,Arkansas,05033,3,0 +2020-04-11,Crawford,Arkansas,05033,3,0 +2020-04-12,Crawford,Arkansas,05033,3,0 +2020-04-13,Crawford,Arkansas,05033,4,0 +2020-04-14,Crawford,Arkansas,05033,4,0 +2020-04-15,Crawford,Arkansas,05033,4,0 +2020-04-16,Crawford,Arkansas,05033,4,0 +2020-04-17,Crawford,Arkansas,05033,4,0 +2020-04-18,Crawford,Arkansas,05033,4,0 +2020-04-19,Crawford,Arkansas,05033,4,0 +2020-04-20,Crawford,Arkansas,05033,4,0 +2020-04-21,Crawford,Arkansas,05033,4,0 +2020-04-22,Crawford,Arkansas,05033,4,0 +2020-04-23,Crawford,Arkansas,05033,4,0 +2020-04-24,Crawford,Arkansas,05033,4,0 +2020-04-25,Crawford,Arkansas,05033,4,0 +2020-04-26,Crawford,Arkansas,05033,4,0 +2020-04-27,Crawford,Arkansas,05033,4,0 +2020-04-28,Crawford,Arkansas,05033,4,0 +2020-04-29,Crawford,Arkansas,05033,4,0 +2020-04-30,Crawford,Arkansas,05033,4,0 +2020-05-01,Crawford,Arkansas,05033,4,0 +2020-05-02,Crawford,Arkansas,05033,5,0 +2020-05-03,Crawford,Arkansas,05033,5,0 +2020-05-04,Crawford,Arkansas,05033,4,0 +2020-05-05,Crawford,Arkansas,05033,4,0 +2020-05-06,Crawford,Arkansas,05033,4,0 +2020-05-07,Crawford,Arkansas,05033,5,0 +2020-05-08,Crawford,Arkansas,05033,5,0 +2020-05-09,Crawford,Arkansas,05033,5,0 +2020-05-10,Crawford,Arkansas,05033,5,0 +2020-05-11,Crawford,Arkansas,05033,5,0 +2020-05-12,Crawford,Arkansas,05033,8,0 +2020-05-13,Crawford,Arkansas,05033,8,0 +2020-05-14,Crawford,Arkansas,05033,8,0 +2020-05-15,Crawford,Arkansas,05033,9,0 +2020-05-16,Crawford,Arkansas,05033,11,0 +2020-05-17,Crawford,Arkansas,05033,11,0 +2020-05-18,Crawford,Arkansas,05033,11,0 +2020-05-19,Crawford,Arkansas,05033,12,0 +2020-05-20,Crawford,Arkansas,05033,12,0 +2020-05-21,Crawford,Arkansas,05033,12,0 +2020-05-22,Crawford,Arkansas,05033,12,0 +2020-05-23,Crawford,Arkansas,05033,13,0 +2020-05-24,Crawford,Arkansas,05033,13,0 +2020-05-25,Crawford,Arkansas,05033,14,0 +2020-05-26,Crawford,Arkansas,05033,17,0 +2020-05-27,Crawford,Arkansas,05033,17,0 +2020-05-28,Crawford,Arkansas,05033,17,0 +2020-05-29,Crawford,Arkansas,05033,18,0 +2020-05-30,Crawford,Arkansas,05033,24,0 +2020-05-31,Crawford,Arkansas,05033,29,0 +2020-06-01,Crawford,Arkansas,05033,30,0 +2020-06-02,Crawford,Arkansas,05033,31,0 +2020-06-03,Crawford,Arkansas,05033,34,0 +2020-06-04,Crawford,Arkansas,05033,35,0 +2020-06-05,Crawford,Arkansas,05033,35,0 +2020-06-06,Crawford,Arkansas,05033,39,0 +2020-06-07,Crawford,Arkansas,05033,41,0 +2020-06-08,Crawford,Arkansas,05033,42,0 +2020-06-09,Crawford,Arkansas,05033,43,0 +2020-06-10,Crawford,Arkansas,05033,43,0 +2020-06-11,Crawford,Arkansas,05033,47,0 +2020-06-12,Crawford,Arkansas,05033,51,0 +2020-06-13,Crawford,Arkansas,05033,51,0 +2020-06-14,Crawford,Arkansas,05033,56,0 +2020-06-15,Crawford,Arkansas,05033,61,0 +2020-06-16,Crawford,Arkansas,05033,65,0 +2020-06-17,Crawford,Arkansas,05033,69,0 +2020-06-18,Crawford,Arkansas,05033,75,0 +2020-06-19,Crawford,Arkansas,05033,83,0 +2020-06-20,Crawford,Arkansas,05033,91,0 +2020-06-21,Crawford,Arkansas,05033,97,0 +2020-06-22,Crawford,Arkansas,05033,98,0 +2020-06-23,Crawford,Arkansas,05033,105,0 +2020-06-24,Crawford,Arkansas,05033,112,0 +2020-06-25,Crawford,Arkansas,05033,121,0 +2020-06-26,Crawford,Arkansas,05033,131,0 +2020-06-27,Crawford,Arkansas,05033,135,0 +2020-06-28,Crawford,Arkansas,05033,148,0 +2020-06-29,Crawford,Arkansas,05033,155,0 +2020-06-30,Crawford,Arkansas,05033,159,1 +2020-07-01,Crawford,Arkansas,05033,166,1 +2020-07-02,Crawford,Arkansas,05033,190,1 +2020-07-03,Crawford,Arkansas,05033,196,1 +2020-07-04,Crawford,Arkansas,05033,208,1 +2020-07-05,Crawford,Arkansas,05033,215,1 +2020-07-06,Crawford,Arkansas,05033,216,1 +2020-07-07,Crawford,Arkansas,05033,218,1 +2020-07-08,Crawford,Arkansas,05033,227,1 +2020-07-09,Crawford,Arkansas,05033,247,1 +2020-03-19,Crittenden,Arkansas,05035,1,0 +2020-03-20,Crittenden,Arkansas,05035,1,0 +2020-03-21,Crittenden,Arkansas,05035,1,0 +2020-03-22,Crittenden,Arkansas,05035,1,0 +2020-03-23,Crittenden,Arkansas,05035,1,0 +2020-03-24,Crittenden,Arkansas,05035,3,0 +2020-03-25,Crittenden,Arkansas,05035,7,0 +2020-03-26,Crittenden,Arkansas,05035,7,0 +2020-03-27,Crittenden,Arkansas,05035,12,0 +2020-03-28,Crittenden,Arkansas,05035,15,0 +2020-03-29,Crittenden,Arkansas,05035,17,0 +2020-03-30,Crittenden,Arkansas,05035,17,0 +2020-03-31,Crittenden,Arkansas,05035,29,0 +2020-04-01,Crittenden,Arkansas,05035,31,0 +2020-04-02,Crittenden,Arkansas,05035,32,0 +2020-04-03,Crittenden,Arkansas,05035,43,0 +2020-04-04,Crittenden,Arkansas,05035,44,0 +2020-04-05,Crittenden,Arkansas,05035,53,0 +2020-04-06,Crittenden,Arkansas,05035,58,1 +2020-04-07,Crittenden,Arkansas,05035,61,1 +2020-04-08,Crittenden,Arkansas,05035,65,1 +2020-04-09,Crittenden,Arkansas,05035,77,2 +2020-04-10,Crittenden,Arkansas,05035,89,2 +2020-04-11,Crittenden,Arkansas,05035,89,2 +2020-04-12,Crittenden,Arkansas,05035,93,2 +2020-04-13,Crittenden,Arkansas,05035,115,2 +2020-04-14,Crittenden,Arkansas,05035,116,2 +2020-04-15,Crittenden,Arkansas,05035,122,2 +2020-04-16,Crittenden,Arkansas,05035,122,4 +2020-04-17,Crittenden,Arkansas,05035,127,4 +2020-04-18,Crittenden,Arkansas,05035,138,4 +2020-04-19,Crittenden,Arkansas,05035,139,4 +2020-04-20,Crittenden,Arkansas,05035,142,5 +2020-04-21,Crittenden,Arkansas,05035,147,5 +2020-04-22,Crittenden,Arkansas,05035,147,5 +2020-04-23,Crittenden,Arkansas,05035,156,5 +2020-04-24,Crittenden,Arkansas,05035,167,5 +2020-04-25,Crittenden,Arkansas,05035,169,5 +2020-04-26,Crittenden,Arkansas,05035,171,5 +2020-04-27,Crittenden,Arkansas,05035,174,5 +2020-04-28,Crittenden,Arkansas,05035,177,5 +2020-04-29,Crittenden,Arkansas,05035,181,5 +2020-04-30,Crittenden,Arkansas,05035,187,5 +2020-05-01,Crittenden,Arkansas,05035,188,5 +2020-05-02,Crittenden,Arkansas,05035,193,5 +2020-05-03,Crittenden,Arkansas,05035,197,5 +2020-05-04,Crittenden,Arkansas,05035,196,7 +2020-05-05,Crittenden,Arkansas,05035,197,7 +2020-05-06,Crittenden,Arkansas,05035,202,7 +2020-05-07,Crittenden,Arkansas,05035,203,7 +2020-05-08,Crittenden,Arkansas,05035,205,7 +2020-05-09,Crittenden,Arkansas,05035,205,7 +2020-05-10,Crittenden,Arkansas,05035,210,7 +2020-05-11,Crittenden,Arkansas,05035,210,7 +2020-05-12,Crittenden,Arkansas,05035,212,7 +2020-05-13,Crittenden,Arkansas,05035,216,7 +2020-05-14,Crittenden,Arkansas,05035,219,7 +2020-05-15,Crittenden,Arkansas,05035,229,7 +2020-05-16,Crittenden,Arkansas,05035,230,7 +2020-05-17,Crittenden,Arkansas,05035,234,7 +2020-05-18,Crittenden,Arkansas,05035,237,7 +2020-05-19,Crittenden,Arkansas,05035,241,7 +2020-05-20,Crittenden,Arkansas,05035,250,8 +2020-05-21,Crittenden,Arkansas,05035,267,8 +2020-05-22,Crittenden,Arkansas,05035,276,8 +2020-05-23,Crittenden,Arkansas,05035,280,9 +2020-05-24,Crittenden,Arkansas,05035,285,9 +2020-05-25,Crittenden,Arkansas,05035,293,9 +2020-05-26,Crittenden,Arkansas,05035,297,9 +2020-05-27,Crittenden,Arkansas,05035,301,9 +2020-05-28,Crittenden,Arkansas,05035,318,9 +2020-05-29,Crittenden,Arkansas,05035,341,9 +2020-05-30,Crittenden,Arkansas,05035,367,9 +2020-05-31,Crittenden,Arkansas,05035,380,9 +2020-06-01,Crittenden,Arkansas,05035,386,9 +2020-06-02,Crittenden,Arkansas,05035,395,9 +2020-06-03,Crittenden,Arkansas,05035,413,9 +2020-06-04,Crittenden,Arkansas,05035,426,9 +2020-06-05,Crittenden,Arkansas,05035,436,9 +2020-06-06,Crittenden,Arkansas,05035,452,9 +2020-06-07,Crittenden,Arkansas,05035,463,9 +2020-06-08,Crittenden,Arkansas,05035,465,9 +2020-06-09,Crittenden,Arkansas,05035,473,9 +2020-06-10,Crittenden,Arkansas,05035,489,9 +2020-06-11,Crittenden,Arkansas,05035,500,9 +2020-06-12,Crittenden,Arkansas,05035,508,9 +2020-06-13,Crittenden,Arkansas,05035,517,9 +2020-06-14,Crittenden,Arkansas,05035,522,9 +2020-06-15,Crittenden,Arkansas,05035,537,9 +2020-06-16,Crittenden,Arkansas,05035,545,10 +2020-06-17,Crittenden,Arkansas,05035,554,10 +2020-06-18,Crittenden,Arkansas,05035,562,10 +2020-06-19,Crittenden,Arkansas,05035,573,10 +2020-06-20,Crittenden,Arkansas,05035,577,10 +2020-06-21,Crittenden,Arkansas,05035,588,10 +2020-06-22,Crittenden,Arkansas,05035,600,10 +2020-06-23,Crittenden,Arkansas,05035,604,10 +2020-06-24,Crittenden,Arkansas,05035,621,10 +2020-06-25,Crittenden,Arkansas,05035,660,10 +2020-06-26,Crittenden,Arkansas,05035,687,11 +2020-06-27,Crittenden,Arkansas,05035,696,11 +2020-06-28,Crittenden,Arkansas,05035,731,11 +2020-06-29,Crittenden,Arkansas,05035,737,11 +2020-06-30,Crittenden,Arkansas,05035,746,12 +2020-07-01,Crittenden,Arkansas,05035,749,13 +2020-07-02,Crittenden,Arkansas,05035,759,13 +2020-07-03,Crittenden,Arkansas,05035,765,13 +2020-07-04,Crittenden,Arkansas,05035,766,13 +2020-07-05,Crittenden,Arkansas,05035,766,13 +2020-07-06,Crittenden,Arkansas,05035,783,13 +2020-07-07,Crittenden,Arkansas,05035,786,13 +2020-07-08,Crittenden,Arkansas,05035,799,13 +2020-07-09,Crittenden,Arkansas,05035,815,13 +2020-03-24,Cross,Arkansas,05037,1,0 +2020-03-25,Cross,Arkansas,05037,1,0 +2020-03-26,Cross,Arkansas,05037,1,0 +2020-03-27,Cross,Arkansas,05037,1,0 +2020-03-28,Cross,Arkansas,05037,2,0 +2020-03-29,Cross,Arkansas,05037,2,0 +2020-03-30,Cross,Arkansas,05037,2,0 +2020-03-31,Cross,Arkansas,05037,2,0 +2020-04-01,Cross,Arkansas,05037,2,0 +2020-04-02,Cross,Arkansas,05037,3,0 +2020-04-03,Cross,Arkansas,05037,5,0 +2020-04-04,Cross,Arkansas,05037,5,0 +2020-04-05,Cross,Arkansas,05037,5,0 +2020-04-06,Cross,Arkansas,05037,5,0 +2020-04-07,Cross,Arkansas,05037,5,0 +2020-04-08,Cross,Arkansas,05037,6,0 +2020-04-09,Cross,Arkansas,05037,6,0 +2020-04-10,Cross,Arkansas,05037,6,0 +2020-04-11,Cross,Arkansas,05037,6,0 +2020-04-12,Cross,Arkansas,05037,6,0 +2020-04-13,Cross,Arkansas,05037,7,0 +2020-04-14,Cross,Arkansas,05037,7,0 +2020-04-15,Cross,Arkansas,05037,7,0 +2020-04-16,Cross,Arkansas,05037,7,0 +2020-04-17,Cross,Arkansas,05037,8,0 +2020-04-18,Cross,Arkansas,05037,8,0 +2020-04-19,Cross,Arkansas,05037,8,0 +2020-04-20,Cross,Arkansas,05037,8,0 +2020-04-21,Cross,Arkansas,05037,9,0 +2020-04-22,Cross,Arkansas,05037,9,0 +2020-04-23,Cross,Arkansas,05037,11,0 +2020-04-24,Cross,Arkansas,05037,11,0 +2020-04-25,Cross,Arkansas,05037,11,0 +2020-04-26,Cross,Arkansas,05037,16,0 +2020-04-27,Cross,Arkansas,05037,16,0 +2020-04-28,Cross,Arkansas,05037,16,0 +2020-04-29,Cross,Arkansas,05037,17,0 +2020-04-30,Cross,Arkansas,05037,17,0 +2020-05-01,Cross,Arkansas,05037,21,0 +2020-05-02,Cross,Arkansas,05037,21,0 +2020-05-03,Cross,Arkansas,05037,24,0 +2020-05-04,Cross,Arkansas,05037,25,0 +2020-05-05,Cross,Arkansas,05037,25,0 +2020-05-06,Cross,Arkansas,05037,27,0 +2020-05-07,Cross,Arkansas,05037,27,0 +2020-05-08,Cross,Arkansas,05037,27,0 +2020-05-09,Cross,Arkansas,05037,27,0 +2020-05-10,Cross,Arkansas,05037,29,0 +2020-05-11,Cross,Arkansas,05037,29,0 +2020-05-12,Cross,Arkansas,05037,31,0 +2020-05-13,Cross,Arkansas,05037,34,0 +2020-05-14,Cross,Arkansas,05037,35,0 +2020-05-15,Cross,Arkansas,05037,35,0 +2020-05-16,Cross,Arkansas,05037,35,0 +2020-05-17,Cross,Arkansas,05037,35,0 +2020-05-18,Cross,Arkansas,05037,36,0 +2020-05-19,Cross,Arkansas,05037,39,0 +2020-05-20,Cross,Arkansas,05037,40,0 +2020-05-21,Cross,Arkansas,05037,41,0 +2020-05-22,Cross,Arkansas,05037,42,0 +2020-05-23,Cross,Arkansas,05037,42,0 +2020-05-24,Cross,Arkansas,05037,42,0 +2020-05-25,Cross,Arkansas,05037,42,0 +2020-05-26,Cross,Arkansas,05037,46,0 +2020-05-27,Cross,Arkansas,05037,46,0 +2020-05-28,Cross,Arkansas,05037,48,0 +2020-05-29,Cross,Arkansas,05037,50,0 +2020-05-30,Cross,Arkansas,05037,51,0 +2020-05-31,Cross,Arkansas,05037,52,0 +2020-06-01,Cross,Arkansas,05037,52,0 +2020-06-02,Cross,Arkansas,05037,56,0 +2020-06-03,Cross,Arkansas,05037,56,0 +2020-06-04,Cross,Arkansas,05037,60,0 +2020-06-05,Cross,Arkansas,05037,60,0 +2020-06-06,Cross,Arkansas,05037,60,0 +2020-06-07,Cross,Arkansas,05037,61,0 +2020-06-08,Cross,Arkansas,05037,63,0 +2020-06-09,Cross,Arkansas,05037,65,0 +2020-06-10,Cross,Arkansas,05037,67,0 +2020-06-11,Cross,Arkansas,05037,72,0 +2020-06-12,Cross,Arkansas,05037,74,0 +2020-06-13,Cross,Arkansas,05037,75,0 +2020-06-14,Cross,Arkansas,05037,76,0 +2020-06-15,Cross,Arkansas,05037,79,0 +2020-06-16,Cross,Arkansas,05037,79,0 +2020-06-17,Cross,Arkansas,05037,79,1 +2020-06-18,Cross,Arkansas,05037,81,1 +2020-06-19,Cross,Arkansas,05037,82,1 +2020-06-20,Cross,Arkansas,05037,82,1 +2020-06-21,Cross,Arkansas,05037,82,1 +2020-06-22,Cross,Arkansas,05037,82,1 +2020-06-23,Cross,Arkansas,05037,83,1 +2020-06-24,Cross,Arkansas,05037,83,1 +2020-06-25,Cross,Arkansas,05037,84,1 +2020-06-26,Cross,Arkansas,05037,84,1 +2020-06-27,Cross,Arkansas,05037,85,1 +2020-06-28,Cross,Arkansas,05037,85,1 +2020-06-29,Cross,Arkansas,05037,85,1 +2020-06-30,Cross,Arkansas,05037,85,1 +2020-07-01,Cross,Arkansas,05037,86,1 +2020-07-02,Cross,Arkansas,05037,88,1 +2020-07-03,Cross,Arkansas,05037,88,1 +2020-07-04,Cross,Arkansas,05037,88,1 +2020-07-05,Cross,Arkansas,05037,89,1 +2020-07-06,Cross,Arkansas,05037,90,1 +2020-07-07,Cross,Arkansas,05037,90,1 +2020-07-08,Cross,Arkansas,05037,90,1 +2020-07-09,Cross,Arkansas,05037,93,1 +2020-04-04,Dallas,Arkansas,05039,1,0 +2020-04-05,Dallas,Arkansas,05039,1,0 +2020-04-06,Dallas,Arkansas,05039,1,0 +2020-04-07,Dallas,Arkansas,05039,1,0 +2020-04-08,Dallas,Arkansas,05039,1,0 +2020-04-09,Dallas,Arkansas,05039,1,0 +2020-04-10,Dallas,Arkansas,05039,1,0 +2020-04-11,Dallas,Arkansas,05039,1,0 +2020-04-12,Dallas,Arkansas,05039,1,0 +2020-04-13,Dallas,Arkansas,05039,1,0 +2020-04-14,Dallas,Arkansas,05039,1,0 +2020-04-15,Dallas,Arkansas,05039,1,0 +2020-04-16,Dallas,Arkansas,05039,1,0 +2020-04-17,Dallas,Arkansas,05039,1,0 +2020-04-18,Dallas,Arkansas,05039,1,0 +2020-04-19,Dallas,Arkansas,05039,1,0 +2020-04-20,Dallas,Arkansas,05039,1,0 +2020-04-21,Dallas,Arkansas,05039,1,0 +2020-04-22,Dallas,Arkansas,05039,1,0 +2020-04-23,Dallas,Arkansas,05039,1,0 +2020-04-24,Dallas,Arkansas,05039,1,0 +2020-04-25,Dallas,Arkansas,05039,1,0 +2020-04-26,Dallas,Arkansas,05039,1,0 +2020-04-27,Dallas,Arkansas,05039,1,0 +2020-04-28,Dallas,Arkansas,05039,1,0 +2020-04-29,Dallas,Arkansas,05039,1,0 +2020-04-30,Dallas,Arkansas,05039,1,0 +2020-05-01,Dallas,Arkansas,05039,1,0 +2020-05-02,Dallas,Arkansas,05039,1,0 +2020-05-03,Dallas,Arkansas,05039,1,0 +2020-05-04,Dallas,Arkansas,05039,1,0 +2020-05-05,Dallas,Arkansas,05039,1,0 +2020-05-06,Dallas,Arkansas,05039,1,0 +2020-05-07,Dallas,Arkansas,05039,1,0 +2020-05-08,Dallas,Arkansas,05039,1,0 +2020-05-09,Dallas,Arkansas,05039,1,0 +2020-05-10,Dallas,Arkansas,05039,1,0 +2020-05-11,Dallas,Arkansas,05039,1,0 +2020-05-12,Dallas,Arkansas,05039,1,0 +2020-05-13,Dallas,Arkansas,05039,1,0 +2020-05-14,Dallas,Arkansas,05039,1,0 +2020-05-15,Dallas,Arkansas,05039,1,0 +2020-05-16,Dallas,Arkansas,05039,1,0 +2020-05-17,Dallas,Arkansas,05039,1,0 +2020-05-18,Dallas,Arkansas,05039,1,0 +2020-05-19,Dallas,Arkansas,05039,1,0 +2020-05-20,Dallas,Arkansas,05039,1,0 +2020-05-21,Dallas,Arkansas,05039,1,0 +2020-05-22,Dallas,Arkansas,05039,1,0 +2020-05-23,Dallas,Arkansas,05039,1,0 +2020-05-24,Dallas,Arkansas,05039,1,0 +2020-05-25,Dallas,Arkansas,05039,1,0 +2020-05-26,Dallas,Arkansas,05039,1,0 +2020-05-27,Dallas,Arkansas,05039,1,0 +2020-05-28,Dallas,Arkansas,05039,1,0 +2020-05-29,Dallas,Arkansas,05039,1,0 +2020-05-30,Dallas,Arkansas,05039,1,0 +2020-05-31,Dallas,Arkansas,05039,1,0 +2020-06-01,Dallas,Arkansas,05039,1,0 +2020-06-02,Dallas,Arkansas,05039,3,0 +2020-06-03,Dallas,Arkansas,05039,3,0 +2020-06-04,Dallas,Arkansas,05039,3,0 +2020-06-05,Dallas,Arkansas,05039,3,0 +2020-06-06,Dallas,Arkansas,05039,3,0 +2020-06-07,Dallas,Arkansas,05039,3,0 +2020-06-08,Dallas,Arkansas,05039,3,0 +2020-06-09,Dallas,Arkansas,05039,3,0 +2020-06-10,Dallas,Arkansas,05039,3,0 +2020-06-11,Dallas,Arkansas,05039,3,0 +2020-06-12,Dallas,Arkansas,05039,3,0 +2020-06-13,Dallas,Arkansas,05039,3,0 +2020-06-14,Dallas,Arkansas,05039,3,0 +2020-06-15,Dallas,Arkansas,05039,3,0 +2020-06-16,Dallas,Arkansas,05039,4,0 +2020-06-17,Dallas,Arkansas,05039,4,0 +2020-06-18,Dallas,Arkansas,05039,4,0 +2020-06-19,Dallas,Arkansas,05039,4,0 +2020-06-20,Dallas,Arkansas,05039,6,0 +2020-06-21,Dallas,Arkansas,05039,6,0 +2020-06-22,Dallas,Arkansas,05039,6,0 +2020-06-23,Dallas,Arkansas,05039,6,0 +2020-06-24,Dallas,Arkansas,05039,6,0 +2020-06-25,Dallas,Arkansas,05039,6,0 +2020-06-26,Dallas,Arkansas,05039,6,0 +2020-06-27,Dallas,Arkansas,05039,7,0 +2020-06-28,Dallas,Arkansas,05039,9,0 +2020-06-29,Dallas,Arkansas,05039,10,0 +2020-06-30,Dallas,Arkansas,05039,10,0 +2020-07-01,Dallas,Arkansas,05039,10,0 +2020-07-02,Dallas,Arkansas,05039,10,0 +2020-07-03,Dallas,Arkansas,05039,10,0 +2020-07-04,Dallas,Arkansas,05039,10,0 +2020-07-05,Dallas,Arkansas,05039,10,0 +2020-07-06,Dallas,Arkansas,05039,10,0 +2020-07-07,Dallas,Arkansas,05039,10,0 +2020-07-08,Dallas,Arkansas,05039,11,0 +2020-07-09,Dallas,Arkansas,05039,10,0 +2020-03-16,Desha,Arkansas,05041,1,0 +2020-03-17,Desha,Arkansas,05041,1,0 +2020-03-18,Desha,Arkansas,05041,1,0 +2020-03-19,Desha,Arkansas,05041,1,0 +2020-03-20,Desha,Arkansas,05041,1,0 +2020-03-21,Desha,Arkansas,05041,1,0 +2020-03-22,Desha,Arkansas,05041,1,0 +2020-03-23,Desha,Arkansas,05041,1,0 +2020-03-24,Desha,Arkansas,05041,2,0 +2020-03-25,Desha,Arkansas,05041,2,0 +2020-03-26,Desha,Arkansas,05041,2,0 +2020-03-27,Desha,Arkansas,05041,2,0 +2020-03-28,Desha,Arkansas,05041,2,0 +2020-03-29,Desha,Arkansas,05041,2,0 +2020-03-30,Desha,Arkansas,05041,2,0 +2020-03-31,Desha,Arkansas,05041,2,0 +2020-04-01,Desha,Arkansas,05041,2,0 +2020-04-02,Desha,Arkansas,05041,2,0 +2020-04-03,Desha,Arkansas,05041,4,0 +2020-04-04,Desha,Arkansas,05041,4,0 +2020-04-05,Desha,Arkansas,05041,5,0 +2020-04-06,Desha,Arkansas,05041,5,0 +2020-04-07,Desha,Arkansas,05041,5,0 +2020-04-08,Desha,Arkansas,05041,5,0 +2020-04-09,Desha,Arkansas,05041,5,0 +2020-04-10,Desha,Arkansas,05041,6,0 +2020-04-11,Desha,Arkansas,05041,6,0 +2020-04-12,Desha,Arkansas,05041,6,0 +2020-04-13,Desha,Arkansas,05041,6,0 +2020-04-14,Desha,Arkansas,05041,6,0 +2020-04-15,Desha,Arkansas,05041,6,0 +2020-04-16,Desha,Arkansas,05041,6,0 +2020-04-17,Desha,Arkansas,05041,6,0 +2020-04-18,Desha,Arkansas,05041,7,0 +2020-04-19,Desha,Arkansas,05041,7,0 +2020-04-20,Desha,Arkansas,05041,7,0 +2020-04-21,Desha,Arkansas,05041,8,0 +2020-04-22,Desha,Arkansas,05041,9,0 +2020-04-23,Desha,Arkansas,05041,14,0 +2020-04-24,Desha,Arkansas,05041,16,0 +2020-04-25,Desha,Arkansas,05041,16,0 +2020-04-26,Desha,Arkansas,05041,16,0 +2020-04-27,Desha,Arkansas,05041,16,0 +2020-04-28,Desha,Arkansas,05041,16,0 +2020-04-29,Desha,Arkansas,05041,16,0 +2020-04-30,Desha,Arkansas,05041,16,0 +2020-05-01,Desha,Arkansas,05041,16,0 +2020-05-02,Desha,Arkansas,05041,16,0 +2020-05-03,Desha,Arkansas,05041,16,0 +2020-05-04,Desha,Arkansas,05041,16,0 +2020-05-05,Desha,Arkansas,05041,16,0 +2020-05-06,Desha,Arkansas,05041,17,0 +2020-05-07,Desha,Arkansas,05041,16,0 +2020-05-08,Desha,Arkansas,05041,16,0 +2020-05-09,Desha,Arkansas,05041,16,0 +2020-05-10,Desha,Arkansas,05041,16,0 +2020-05-11,Desha,Arkansas,05041,17,0 +2020-05-12,Desha,Arkansas,05041,17,0 +2020-05-13,Desha,Arkansas,05041,17,0 +2020-05-14,Desha,Arkansas,05041,18,0 +2020-05-15,Desha,Arkansas,05041,18,0 +2020-05-16,Desha,Arkansas,05041,18,0 +2020-05-17,Desha,Arkansas,05041,18,0 +2020-05-18,Desha,Arkansas,05041,18,0 +2020-05-19,Desha,Arkansas,05041,18,0 +2020-05-20,Desha,Arkansas,05041,18,0 +2020-05-21,Desha,Arkansas,05041,18,0 +2020-05-22,Desha,Arkansas,05041,18,0 +2020-05-23,Desha,Arkansas,05041,19,0 +2020-05-24,Desha,Arkansas,05041,19,0 +2020-05-25,Desha,Arkansas,05041,19,0 +2020-05-26,Desha,Arkansas,05041,19,0 +2020-05-27,Desha,Arkansas,05041,19,0 +2020-05-28,Desha,Arkansas,05041,19,0 +2020-05-29,Desha,Arkansas,05041,19,0 +2020-05-30,Desha,Arkansas,05041,19,0 +2020-05-31,Desha,Arkansas,05041,19,0 +2020-06-01,Desha,Arkansas,05041,19,0 +2020-06-02,Desha,Arkansas,05041,19,0 +2020-06-03,Desha,Arkansas,05041,19,0 +2020-06-04,Desha,Arkansas,05041,19,0 +2020-06-05,Desha,Arkansas,05041,19,0 +2020-06-06,Desha,Arkansas,05041,20,0 +2020-06-07,Desha,Arkansas,05041,20,0 +2020-06-08,Desha,Arkansas,05041,20,0 +2020-06-09,Desha,Arkansas,05041,20,0 +2020-06-10,Desha,Arkansas,05041,20,0 +2020-06-11,Desha,Arkansas,05041,20,0 +2020-06-12,Desha,Arkansas,05041,20,0 +2020-06-13,Desha,Arkansas,05041,20,0 +2020-06-14,Desha,Arkansas,05041,22,0 +2020-06-15,Desha,Arkansas,05041,22,0 +2020-06-16,Desha,Arkansas,05041,23,0 +2020-06-17,Desha,Arkansas,05041,25,0 +2020-06-18,Desha,Arkansas,05041,25,0 +2020-06-19,Desha,Arkansas,05041,26,0 +2020-06-20,Desha,Arkansas,05041,28,0 +2020-06-21,Desha,Arkansas,05041,29,0 +2020-06-22,Desha,Arkansas,05041,29,0 +2020-06-23,Desha,Arkansas,05041,29,0 +2020-06-24,Desha,Arkansas,05041,37,0 +2020-06-25,Desha,Arkansas,05041,40,0 +2020-06-26,Desha,Arkansas,05041,40,0 +2020-06-27,Desha,Arkansas,05041,42,0 +2020-06-28,Desha,Arkansas,05041,44,0 +2020-06-29,Desha,Arkansas,05041,45,0 +2020-06-30,Desha,Arkansas,05041,47,1 +2020-07-01,Desha,Arkansas,05041,47,1 +2020-07-02,Desha,Arkansas,05041,52,1 +2020-07-03,Desha,Arkansas,05041,54,1 +2020-07-04,Desha,Arkansas,05041,59,1 +2020-07-05,Desha,Arkansas,05041,64,1 +2020-07-06,Desha,Arkansas,05041,65,1 +2020-07-07,Desha,Arkansas,05041,66,1 +2020-07-08,Desha,Arkansas,05041,66,1 +2020-07-09,Desha,Arkansas,05041,71,1 +2020-03-25,Drew,Arkansas,05043,1,0 +2020-03-26,Drew,Arkansas,05043,2,0 +2020-03-27,Drew,Arkansas,05043,2,0 +2020-03-28,Drew,Arkansas,05043,2,0 +2020-03-29,Drew,Arkansas,05043,2,0 +2020-03-30,Drew,Arkansas,05043,2,0 +2020-03-31,Drew,Arkansas,05043,2,0 +2020-04-01,Drew,Arkansas,05043,3,0 +2020-04-02,Drew,Arkansas,05043,3,0 +2020-04-03,Drew,Arkansas,05043,3,0 +2020-04-04,Drew,Arkansas,05043,3,0 +2020-04-05,Drew,Arkansas,05043,5,0 +2020-04-06,Drew,Arkansas,05043,5,0 +2020-04-07,Drew,Arkansas,05043,5,0 +2020-04-08,Drew,Arkansas,05043,5,0 +2020-04-09,Drew,Arkansas,05043,5,0 +2020-04-10,Drew,Arkansas,05043,6,1 +2020-04-11,Drew,Arkansas,05043,6,1 +2020-04-12,Drew,Arkansas,05043,6,1 +2020-04-13,Drew,Arkansas,05043,6,1 +2020-04-14,Drew,Arkansas,05043,6,1 +2020-04-15,Drew,Arkansas,05043,6,1 +2020-04-16,Drew,Arkansas,05043,6,1 +2020-04-17,Drew,Arkansas,05043,6,1 +2020-04-18,Drew,Arkansas,05043,6,1 +2020-04-19,Drew,Arkansas,05043,6,1 +2020-04-20,Drew,Arkansas,05043,6,1 +2020-04-21,Drew,Arkansas,05043,6,1 +2020-04-22,Drew,Arkansas,05043,8,1 +2020-04-23,Drew,Arkansas,05043,10,1 +2020-04-24,Drew,Arkansas,05043,13,1 +2020-04-25,Drew,Arkansas,05043,13,1 +2020-04-26,Drew,Arkansas,05043,13,1 +2020-04-27,Drew,Arkansas,05043,13,1 +2020-04-28,Drew,Arkansas,05043,13,1 +2020-04-29,Drew,Arkansas,05043,14,1 +2020-04-30,Drew,Arkansas,05043,16,1 +2020-05-01,Drew,Arkansas,05043,15,1 +2020-05-02,Drew,Arkansas,05043,15,1 +2020-05-03,Drew,Arkansas,05043,16,1 +2020-05-04,Drew,Arkansas,05043,16,1 +2020-05-05,Drew,Arkansas,05043,16,1 +2020-05-06,Drew,Arkansas,05043,19,1 +2020-05-07,Drew,Arkansas,05043,19,1 +2020-05-08,Drew,Arkansas,05043,19,1 +2020-05-09,Drew,Arkansas,05043,19,1 +2020-05-10,Drew,Arkansas,05043,19,1 +2020-05-11,Drew,Arkansas,05043,19,1 +2020-05-12,Drew,Arkansas,05043,19,1 +2020-05-13,Drew,Arkansas,05043,19,1 +2020-05-14,Drew,Arkansas,05043,19,1 +2020-05-15,Drew,Arkansas,05043,19,1 +2020-05-16,Drew,Arkansas,05043,19,1 +2020-05-17,Drew,Arkansas,05043,19,1 +2020-05-18,Drew,Arkansas,05043,19,1 +2020-05-19,Drew,Arkansas,05043,19,1 +2020-05-20,Drew,Arkansas,05043,19,1 +2020-05-21,Drew,Arkansas,05043,19,1 +2020-05-22,Drew,Arkansas,05043,19,1 +2020-05-23,Drew,Arkansas,05043,19,1 +2020-05-24,Drew,Arkansas,05043,19,1 +2020-05-25,Drew,Arkansas,05043,19,1 +2020-05-26,Drew,Arkansas,05043,19,1 +2020-05-27,Drew,Arkansas,05043,19,1 +2020-05-28,Drew,Arkansas,05043,19,1 +2020-05-29,Drew,Arkansas,05043,19,1 +2020-05-30,Drew,Arkansas,05043,19,1 +2020-05-31,Drew,Arkansas,05043,20,1 +2020-06-01,Drew,Arkansas,05043,20,1 +2020-06-02,Drew,Arkansas,05043,20,1 +2020-06-03,Drew,Arkansas,05043,20,1 +2020-06-04,Drew,Arkansas,05043,20,1 +2020-06-05,Drew,Arkansas,05043,21,1 +2020-06-06,Drew,Arkansas,05043,21,1 +2020-06-07,Drew,Arkansas,05043,21,1 +2020-06-08,Drew,Arkansas,05043,21,1 +2020-06-09,Drew,Arkansas,05043,21,1 +2020-06-10,Drew,Arkansas,05043,23,1 +2020-06-11,Drew,Arkansas,05043,25,1 +2020-06-12,Drew,Arkansas,05043,25,1 +2020-06-13,Drew,Arkansas,05043,25,1 +2020-06-14,Drew,Arkansas,05043,26,1 +2020-06-15,Drew,Arkansas,05043,26,1 +2020-06-16,Drew,Arkansas,05043,26,1 +2020-06-17,Drew,Arkansas,05043,27,1 +2020-06-18,Drew,Arkansas,05043,29,1 +2020-06-19,Drew,Arkansas,05043,32,1 +2020-06-20,Drew,Arkansas,05043,34,1 +2020-06-21,Drew,Arkansas,05043,37,1 +2020-06-22,Drew,Arkansas,05043,39,1 +2020-06-23,Drew,Arkansas,05043,39,1 +2020-06-24,Drew,Arkansas,05043,41,1 +2020-06-25,Drew,Arkansas,05043,44,1 +2020-06-26,Drew,Arkansas,05043,49,1 +2020-06-27,Drew,Arkansas,05043,53,1 +2020-06-28,Drew,Arkansas,05043,63,1 +2020-06-29,Drew,Arkansas,05043,64,1 +2020-06-30,Drew,Arkansas,05043,65,1 +2020-07-01,Drew,Arkansas,05043,65,2 +2020-07-02,Drew,Arkansas,05043,69,2 +2020-07-03,Drew,Arkansas,05043,70,2 +2020-07-04,Drew,Arkansas,05043,73,2 +2020-07-05,Drew,Arkansas,05043,76,2 +2020-07-06,Drew,Arkansas,05043,77,2 +2020-07-07,Drew,Arkansas,05043,79,2 +2020-07-08,Drew,Arkansas,05043,80,2 +2020-07-09,Drew,Arkansas,05043,85,2 +2020-03-18,Faulkner,Arkansas,05045,1,0 +2020-03-19,Faulkner,Arkansas,05045,1,0 +2020-03-20,Faulkner,Arkansas,05045,1,0 +2020-03-21,Faulkner,Arkansas,05045,1,0 +2020-03-22,Faulkner,Arkansas,05045,7,0 +2020-03-23,Faulkner,Arkansas,05045,7,0 +2020-03-24,Faulkner,Arkansas,05045,17,0 +2020-03-25,Faulkner,Arkansas,05045,23,0 +2020-03-26,Faulkner,Arkansas,05045,24,0 +2020-03-27,Faulkner,Arkansas,05045,28,0 +2020-03-28,Faulkner,Arkansas,05045,29,0 +2020-03-29,Faulkner,Arkansas,05045,30,0 +2020-03-30,Faulkner,Arkansas,05045,36,0 +2020-03-31,Faulkner,Arkansas,05045,36,0 +2020-04-01,Faulkner,Arkansas,05045,36,0 +2020-04-02,Faulkner,Arkansas,05045,38,1 +2020-04-03,Faulkner,Arkansas,05045,40,1 +2020-04-04,Faulkner,Arkansas,05045,40,1 +2020-04-05,Faulkner,Arkansas,05045,47,1 +2020-04-06,Faulkner,Arkansas,05045,52,1 +2020-04-07,Faulkner,Arkansas,05045,55,1 +2020-04-08,Faulkner,Arkansas,05045,55,1 +2020-04-09,Faulkner,Arkansas,05045,56,1 +2020-04-10,Faulkner,Arkansas,05045,57,1 +2020-04-11,Faulkner,Arkansas,05045,57,1 +2020-04-12,Faulkner,Arkansas,05045,59,1 +2020-04-13,Faulkner,Arkansas,05045,58,2 +2020-04-14,Faulkner,Arkansas,05045,58,2 +2020-04-15,Faulkner,Arkansas,05045,59,2 +2020-04-16,Faulkner,Arkansas,05045,59,2 +2020-04-17,Faulkner,Arkansas,05045,59,2 +2020-04-18,Faulkner,Arkansas,05045,62,2 +2020-04-19,Faulkner,Arkansas,05045,62,2 +2020-04-20,Faulkner,Arkansas,05045,62,2 +2020-04-21,Faulkner,Arkansas,05045,63,2 +2020-04-22,Faulkner,Arkansas,05045,65,2 +2020-04-23,Faulkner,Arkansas,05045,67,2 +2020-04-24,Faulkner,Arkansas,05045,67,2 +2020-04-25,Faulkner,Arkansas,05045,70,2 +2020-04-26,Faulkner,Arkansas,05045,73,2 +2020-04-27,Faulkner,Arkansas,05045,75,2 +2020-04-28,Faulkner,Arkansas,05045,75,2 +2020-04-29,Faulkner,Arkansas,05045,76,2 +2020-04-30,Faulkner,Arkansas,05045,76,2 +2020-05-01,Faulkner,Arkansas,05045,76,2 +2020-05-02,Faulkner,Arkansas,05045,76,2 +2020-05-03,Faulkner,Arkansas,05045,77,2 +2020-05-04,Faulkner,Arkansas,05045,77,2 +2020-05-05,Faulkner,Arkansas,05045,77,2 +2020-05-06,Faulkner,Arkansas,05045,78,2 +2020-05-07,Faulkner,Arkansas,05045,81,2 +2020-05-08,Faulkner,Arkansas,05045,81,2 +2020-05-09,Faulkner,Arkansas,05045,81,2 +2020-05-10,Faulkner,Arkansas,05045,82,2 +2020-05-11,Faulkner,Arkansas,05045,82,2 +2020-05-12,Faulkner,Arkansas,05045,82,2 +2020-05-13,Faulkner,Arkansas,05045,83,3 +2020-05-14,Faulkner,Arkansas,05045,83,3 +2020-05-15,Faulkner,Arkansas,05045,88,3 +2020-05-16,Faulkner,Arkansas,05045,91,3 +2020-05-17,Faulkner,Arkansas,05045,93,3 +2020-05-18,Faulkner,Arkansas,05045,94,3 +2020-05-19,Faulkner,Arkansas,05045,95,3 +2020-05-20,Faulkner,Arkansas,05045,95,3 +2020-05-21,Faulkner,Arkansas,05045,98,3 +2020-05-22,Faulkner,Arkansas,05045,98,3 +2020-05-23,Faulkner,Arkansas,05045,100,3 +2020-05-24,Faulkner,Arkansas,05045,100,3 +2020-05-25,Faulkner,Arkansas,05045,100,3 +2020-05-26,Faulkner,Arkansas,05045,100,3 +2020-05-27,Faulkner,Arkansas,05045,100,3 +2020-05-28,Faulkner,Arkansas,05045,101,3 +2020-05-29,Faulkner,Arkansas,05045,102,3 +2020-05-30,Faulkner,Arkansas,05045,102,3 +2020-05-31,Faulkner,Arkansas,05045,102,3 +2020-06-01,Faulkner,Arkansas,05045,102,3 +2020-06-02,Faulkner,Arkansas,05045,103,3 +2020-06-03,Faulkner,Arkansas,05045,106,3 +2020-06-04,Faulkner,Arkansas,05045,108,3 +2020-06-05,Faulkner,Arkansas,05045,108,3 +2020-06-06,Faulkner,Arkansas,05045,110,3 +2020-06-07,Faulkner,Arkansas,05045,113,3 +2020-06-08,Faulkner,Arkansas,05045,117,3 +2020-06-09,Faulkner,Arkansas,05045,119,3 +2020-06-10,Faulkner,Arkansas,05045,124,3 +2020-06-11,Faulkner,Arkansas,05045,136,3 +2020-06-12,Faulkner,Arkansas,05045,142,3 +2020-06-13,Faulkner,Arkansas,05045,147,3 +2020-06-14,Faulkner,Arkansas,05045,154,3 +2020-06-15,Faulkner,Arkansas,05045,172,3 +2020-06-16,Faulkner,Arkansas,05045,180,3 +2020-06-17,Faulkner,Arkansas,05045,195,3 +2020-06-18,Faulkner,Arkansas,05045,205,3 +2020-06-19,Faulkner,Arkansas,05045,227,3 +2020-06-20,Faulkner,Arkansas,05045,246,3 +2020-06-21,Faulkner,Arkansas,05045,269,3 +2020-06-22,Faulkner,Arkansas,05045,290,3 +2020-06-23,Faulkner,Arkansas,05045,305,3 +2020-06-24,Faulkner,Arkansas,05045,339,3 +2020-06-25,Faulkner,Arkansas,05045,350,3 +2020-06-26,Faulkner,Arkansas,05045,382,3 +2020-06-27,Faulkner,Arkansas,05045,409,3 +2020-06-28,Faulkner,Arkansas,05045,437,3 +2020-06-29,Faulkner,Arkansas,05045,453,3 +2020-06-30,Faulkner,Arkansas,05045,477,3 +2020-07-01,Faulkner,Arkansas,05045,492,3 +2020-07-02,Faulkner,Arkansas,05045,529,3 +2020-07-03,Faulkner,Arkansas,05045,545,3 +2020-07-04,Faulkner,Arkansas,05045,564,3 +2020-07-05,Faulkner,Arkansas,05045,593,3 +2020-07-06,Faulkner,Arkansas,05045,612,3 +2020-07-07,Faulkner,Arkansas,05045,622,3 +2020-07-08,Faulkner,Arkansas,05045,648,3 +2020-07-09,Faulkner,Arkansas,05045,701,3 +2020-04-06,Franklin,Arkansas,05047,1,0 +2020-04-07,Franklin,Arkansas,05047,1,0 +2020-04-08,Franklin,Arkansas,05047,1,0 +2020-04-09,Franklin,Arkansas,05047,1,0 +2020-04-10,Franklin,Arkansas,05047,1,0 +2020-04-11,Franklin,Arkansas,05047,1,0 +2020-04-12,Franklin,Arkansas,05047,1,0 +2020-04-13,Franklin,Arkansas,05047,2,0 +2020-04-14,Franklin,Arkansas,05047,2,0 +2020-04-15,Franklin,Arkansas,05047,1,0 +2020-04-16,Franklin,Arkansas,05047,1,0 +2020-04-17,Franklin,Arkansas,05047,1,0 +2020-04-18,Franklin,Arkansas,05047,1,0 +2020-04-19,Franklin,Arkansas,05047,1,0 +2020-04-20,Franklin,Arkansas,05047,1,0 +2020-04-21,Franklin,Arkansas,05047,1,0 +2020-04-22,Franklin,Arkansas,05047,1,0 +2020-04-23,Franklin,Arkansas,05047,1,0 +2020-04-24,Franklin,Arkansas,05047,1,0 +2020-04-25,Franklin,Arkansas,05047,1,0 +2020-04-26,Franklin,Arkansas,05047,1,0 +2020-04-27,Franklin,Arkansas,05047,2,0 +2020-04-28,Franklin,Arkansas,05047,2,0 +2020-04-29,Franklin,Arkansas,05047,2,0 +2020-04-30,Franklin,Arkansas,05047,2,0 +2020-05-01,Franklin,Arkansas,05047,2,0 +2020-05-02,Franklin,Arkansas,05047,2,0 +2020-05-03,Franklin,Arkansas,05047,2,0 +2020-05-04,Franklin,Arkansas,05047,2,0 +2020-05-05,Franklin,Arkansas,05047,2,0 +2020-05-06,Franklin,Arkansas,05047,2,0 +2020-05-07,Franklin,Arkansas,05047,2,0 +2020-05-08,Franklin,Arkansas,05047,2,0 +2020-05-09,Franklin,Arkansas,05047,2,0 +2020-05-10,Franklin,Arkansas,05047,2,0 +2020-05-11,Franklin,Arkansas,05047,2,0 +2020-05-12,Franklin,Arkansas,05047,2,0 +2020-05-13,Franklin,Arkansas,05047,2,0 +2020-05-14,Franklin,Arkansas,05047,2,0 +2020-05-15,Franklin,Arkansas,05047,2,0 +2020-05-16,Franklin,Arkansas,05047,2,0 +2020-05-17,Franklin,Arkansas,05047,2,0 +2020-05-18,Franklin,Arkansas,05047,2,0 +2020-05-19,Franklin,Arkansas,05047,2,0 +2020-05-20,Franklin,Arkansas,05047,2,0 +2020-05-21,Franklin,Arkansas,05047,2,0 +2020-05-22,Franklin,Arkansas,05047,2,0 +2020-05-23,Franklin,Arkansas,05047,4,0 +2020-05-24,Franklin,Arkansas,05047,4,0 +2020-05-25,Franklin,Arkansas,05047,4,0 +2020-05-26,Franklin,Arkansas,05047,4,0 +2020-05-27,Franklin,Arkansas,05047,4,0 +2020-05-28,Franklin,Arkansas,05047,4,0 +2020-05-29,Franklin,Arkansas,05047,4,0 +2020-05-30,Franklin,Arkansas,05047,4,0 +2020-05-31,Franklin,Arkansas,05047,4,0 +2020-06-01,Franklin,Arkansas,05047,4,0 +2020-06-02,Franklin,Arkansas,05047,4,0 +2020-06-03,Franklin,Arkansas,05047,4,0 +2020-06-04,Franklin,Arkansas,05047,4,0 +2020-06-05,Franklin,Arkansas,05047,5,0 +2020-06-06,Franklin,Arkansas,05047,5,0 +2020-06-07,Franklin,Arkansas,05047,5,0 +2020-06-08,Franklin,Arkansas,05047,5,0 +2020-06-09,Franklin,Arkansas,05047,5,0 +2020-06-10,Franklin,Arkansas,05047,5,0 +2020-06-11,Franklin,Arkansas,05047,6,0 +2020-06-12,Franklin,Arkansas,05047,6,0 +2020-06-13,Franklin,Arkansas,05047,6,0 +2020-06-14,Franklin,Arkansas,05047,6,0 +2020-06-15,Franklin,Arkansas,05047,6,0 +2020-06-16,Franklin,Arkansas,05047,9,0 +2020-06-17,Franklin,Arkansas,05047,9,0 +2020-06-18,Franklin,Arkansas,05047,9,0 +2020-06-19,Franklin,Arkansas,05047,10,0 +2020-06-20,Franklin,Arkansas,05047,10,0 +2020-06-21,Franklin,Arkansas,05047,12,0 +2020-06-22,Franklin,Arkansas,05047,13,0 +2020-06-23,Franklin,Arkansas,05047,13,0 +2020-06-24,Franklin,Arkansas,05047,13,0 +2020-06-25,Franklin,Arkansas,05047,15,0 +2020-06-26,Franklin,Arkansas,05047,16,0 +2020-06-27,Franklin,Arkansas,05047,16,0 +2020-06-28,Franklin,Arkansas,05047,17,0 +2020-06-29,Franklin,Arkansas,05047,18,0 +2020-06-30,Franklin,Arkansas,05047,21,0 +2020-07-01,Franklin,Arkansas,05047,21,0 +2020-07-02,Franklin,Arkansas,05047,26,0 +2020-07-03,Franklin,Arkansas,05047,26,1 +2020-07-04,Franklin,Arkansas,05047,26,1 +2020-07-05,Franklin,Arkansas,05047,27,1 +2020-07-06,Franklin,Arkansas,05047,27,1 +2020-07-07,Franklin,Arkansas,05047,27,1 +2020-07-08,Franklin,Arkansas,05047,27,1 +2020-07-09,Franklin,Arkansas,05047,28,1 +2020-04-23,Fulton,Arkansas,05049,1,0 +2020-04-24,Fulton,Arkansas,05049,1,0 +2020-04-25,Fulton,Arkansas,05049,1,0 +2020-04-26,Fulton,Arkansas,05049,1,0 +2020-04-27,Fulton,Arkansas,05049,1,0 +2020-04-28,Fulton,Arkansas,05049,1,0 +2020-04-29,Fulton,Arkansas,05049,1,0 +2020-04-30,Fulton,Arkansas,05049,1,0 +2020-05-01,Fulton,Arkansas,05049,1,0 +2020-05-02,Fulton,Arkansas,05049,1,0 +2020-05-03,Fulton,Arkansas,05049,1,0 +2020-05-04,Fulton,Arkansas,05049,1,0 +2020-05-05,Fulton,Arkansas,05049,3,0 +2020-05-06,Fulton,Arkansas,05049,3,0 +2020-05-07,Fulton,Arkansas,05049,3,0 +2020-05-08,Fulton,Arkansas,05049,3,0 +2020-05-09,Fulton,Arkansas,05049,3,0 +2020-05-10,Fulton,Arkansas,05049,3,0 +2020-05-11,Fulton,Arkansas,05049,3,0 +2020-05-12,Fulton,Arkansas,05049,3,0 +2020-05-13,Fulton,Arkansas,05049,3,0 +2020-05-14,Fulton,Arkansas,05049,3,0 +2020-05-15,Fulton,Arkansas,05049,3,0 +2020-05-16,Fulton,Arkansas,05049,3,0 +2020-05-17,Fulton,Arkansas,05049,4,0 +2020-05-18,Fulton,Arkansas,05049,4,0 +2020-05-19,Fulton,Arkansas,05049,4,0 +2020-05-20,Fulton,Arkansas,05049,4,0 +2020-05-21,Fulton,Arkansas,05049,4,0 +2020-05-22,Fulton,Arkansas,05049,6,0 +2020-05-23,Fulton,Arkansas,05049,6,0 +2020-05-24,Fulton,Arkansas,05049,6,0 +2020-05-25,Fulton,Arkansas,05049,6,0 +2020-05-26,Fulton,Arkansas,05049,6,0 +2020-05-27,Fulton,Arkansas,05049,6,0 +2020-05-28,Fulton,Arkansas,05049,7,0 +2020-05-29,Fulton,Arkansas,05049,7,0 +2020-05-30,Fulton,Arkansas,05049,7,0 +2020-05-31,Fulton,Arkansas,05049,7,0 +2020-06-01,Fulton,Arkansas,05049,7,0 +2020-06-02,Fulton,Arkansas,05049,7,0 +2020-06-03,Fulton,Arkansas,05049,7,0 +2020-06-04,Fulton,Arkansas,05049,7,0 +2020-06-05,Fulton,Arkansas,05049,7,0 +2020-06-06,Fulton,Arkansas,05049,7,0 +2020-06-07,Fulton,Arkansas,05049,7,0 +2020-06-08,Fulton,Arkansas,05049,8,0 +2020-06-09,Fulton,Arkansas,05049,7,0 +2020-06-10,Fulton,Arkansas,05049,8,0 +2020-06-11,Fulton,Arkansas,05049,8,0 +2020-06-12,Fulton,Arkansas,05049,9,0 +2020-06-13,Fulton,Arkansas,05049,9,0 +2020-06-14,Fulton,Arkansas,05049,9,0 +2020-06-15,Fulton,Arkansas,05049,9,0 +2020-06-16,Fulton,Arkansas,05049,9,0 +2020-06-17,Fulton,Arkansas,05049,9,0 +2020-06-18,Fulton,Arkansas,05049,9,0 +2020-06-19,Fulton,Arkansas,05049,9,0 +2020-06-20,Fulton,Arkansas,05049,9,0 +2020-06-21,Fulton,Arkansas,05049,9,0 +2020-06-22,Fulton,Arkansas,05049,10,0 +2020-06-23,Fulton,Arkansas,05049,10,0 +2020-06-24,Fulton,Arkansas,05049,10,0 +2020-06-25,Fulton,Arkansas,05049,9,0 +2020-06-26,Fulton,Arkansas,05049,10,0 +2020-06-27,Fulton,Arkansas,05049,12,0 +2020-06-28,Fulton,Arkansas,05049,12,0 +2020-06-29,Fulton,Arkansas,05049,12,0 +2020-06-30,Fulton,Arkansas,05049,12,0 +2020-07-01,Fulton,Arkansas,05049,15,0 +2020-07-02,Fulton,Arkansas,05049,15,0 +2020-07-03,Fulton,Arkansas,05049,15,0 +2020-07-04,Fulton,Arkansas,05049,15,0 +2020-07-05,Fulton,Arkansas,05049,15,0 +2020-07-06,Fulton,Arkansas,05049,15,0 +2020-07-07,Fulton,Arkansas,05049,16,0 +2020-07-08,Fulton,Arkansas,05049,16,0 +2020-07-09,Fulton,Arkansas,05049,17,0 +2020-03-15,Garland,Arkansas,05051,2,0 +2020-03-16,Garland,Arkansas,05051,2,0 +2020-03-17,Garland,Arkansas,05051,2,0 +2020-03-18,Garland,Arkansas,05051,2,0 +2020-03-19,Garland,Arkansas,05051,3,0 +2020-03-20,Garland,Arkansas,05051,6,0 +2020-03-21,Garland,Arkansas,05051,6,0 +2020-03-22,Garland,Arkansas,05051,9,0 +2020-03-23,Garland,Arkansas,05051,9,0 +2020-03-24,Garland,Arkansas,05051,11,0 +2020-03-25,Garland,Arkansas,05051,18,0 +2020-03-26,Garland,Arkansas,05051,19,0 +2020-03-27,Garland,Arkansas,05051,20,0 +2020-03-28,Garland,Arkansas,05051,20,0 +2020-03-29,Garland,Arkansas,05051,26,0 +2020-03-30,Garland,Arkansas,05051,31,0 +2020-03-31,Garland,Arkansas,05051,31,0 +2020-04-01,Garland,Arkansas,05051,33,0 +2020-04-02,Garland,Arkansas,05051,37,0 +2020-04-03,Garland,Arkansas,05051,40,0 +2020-04-04,Garland,Arkansas,05051,40,0 +2020-04-05,Garland,Arkansas,05051,41,0 +2020-04-06,Garland,Arkansas,05051,46,0 +2020-04-07,Garland,Arkansas,05051,51,0 +2020-04-08,Garland,Arkansas,05051,58,0 +2020-04-09,Garland,Arkansas,05051,66,0 +2020-04-10,Garland,Arkansas,05051,69,0 +2020-04-11,Garland,Arkansas,05051,72,0 +2020-04-12,Garland,Arkansas,05051,81,0 +2020-04-13,Garland,Arkansas,05051,102,0 +2020-04-14,Garland,Arkansas,05051,102,0 +2020-04-15,Garland,Arkansas,05051,105,0 +2020-04-16,Garland,Arkansas,05051,105,0 +2020-04-17,Garland,Arkansas,05051,107,0 +2020-04-18,Garland,Arkansas,05051,107,0 +2020-04-19,Garland,Arkansas,05051,107,0 +2020-04-20,Garland,Arkansas,05051,108,0 +2020-04-21,Garland,Arkansas,05051,109,0 +2020-04-22,Garland,Arkansas,05051,109,0 +2020-04-23,Garland,Arkansas,05051,109,0 +2020-04-24,Garland,Arkansas,05051,110,0 +2020-04-25,Garland,Arkansas,05051,111,0 +2020-04-26,Garland,Arkansas,05051,111,0 +2020-04-27,Garland,Arkansas,05051,114,0 +2020-04-28,Garland,Arkansas,05051,115,0 +2020-04-29,Garland,Arkansas,05051,115,0 +2020-04-30,Garland,Arkansas,05051,116,0 +2020-05-01,Garland,Arkansas,05051,117,0 +2020-05-02,Garland,Arkansas,05051,117,0 +2020-05-03,Garland,Arkansas,05051,118,0 +2020-05-04,Garland,Arkansas,05051,117,0 +2020-05-05,Garland,Arkansas,05051,117,0 +2020-05-06,Garland,Arkansas,05051,117,1 +2020-05-07,Garland,Arkansas,05051,118,1 +2020-05-08,Garland,Arkansas,05051,118,1 +2020-05-09,Garland,Arkansas,05051,118,1 +2020-05-10,Garland,Arkansas,05051,119,1 +2020-05-11,Garland,Arkansas,05051,119,1 +2020-05-12,Garland,Arkansas,05051,120,1 +2020-05-13,Garland,Arkansas,05051,121,1 +2020-05-14,Garland,Arkansas,05051,126,1 +2020-05-15,Garland,Arkansas,05051,127,1 +2020-05-16,Garland,Arkansas,05051,129,1 +2020-05-17,Garland,Arkansas,05051,129,1 +2020-05-18,Garland,Arkansas,05051,130,1 +2020-05-19,Garland,Arkansas,05051,130,1 +2020-05-20,Garland,Arkansas,05051,130,1 +2020-05-21,Garland,Arkansas,05051,131,1 +2020-05-22,Garland,Arkansas,05051,132,1 +2020-05-23,Garland,Arkansas,05051,133,1 +2020-05-24,Garland,Arkansas,05051,133,1 +2020-05-25,Garland,Arkansas,05051,134,1 +2020-05-26,Garland,Arkansas,05051,134,1 +2020-05-27,Garland,Arkansas,05051,135,1 +2020-05-28,Garland,Arkansas,05051,136,1 +2020-05-29,Garland,Arkansas,05051,136,1 +2020-05-30,Garland,Arkansas,05051,136,1 +2020-05-31,Garland,Arkansas,05051,136,1 +2020-06-01,Garland,Arkansas,05051,136,1 +2020-06-02,Garland,Arkansas,05051,136,1 +2020-06-03,Garland,Arkansas,05051,138,1 +2020-06-04,Garland,Arkansas,05051,138,1 +2020-06-05,Garland,Arkansas,05051,138,1 +2020-06-06,Garland,Arkansas,05051,140,1 +2020-06-07,Garland,Arkansas,05051,140,1 +2020-06-08,Garland,Arkansas,05051,142,1 +2020-06-09,Garland,Arkansas,05051,150,1 +2020-06-10,Garland,Arkansas,05051,153,1 +2020-06-11,Garland,Arkansas,05051,154,1 +2020-06-12,Garland,Arkansas,05051,154,1 +2020-06-13,Garland,Arkansas,05051,161,1 +2020-06-14,Garland,Arkansas,05051,162,1 +2020-06-15,Garland,Arkansas,05051,165,1 +2020-06-16,Garland,Arkansas,05051,165,1 +2020-06-17,Garland,Arkansas,05051,168,1 +2020-06-18,Garland,Arkansas,05051,170,1 +2020-06-19,Garland,Arkansas,05051,172,1 +2020-06-20,Garland,Arkansas,05051,177,1 +2020-06-21,Garland,Arkansas,05051,177,1 +2020-06-22,Garland,Arkansas,05051,180,1 +2020-06-23,Garland,Arkansas,05051,183,1 +2020-06-24,Garland,Arkansas,05051,191,1 +2020-06-25,Garland,Arkansas,05051,205,1 +2020-06-26,Garland,Arkansas,05051,210,1 +2020-06-27,Garland,Arkansas,05051,214,1 +2020-06-28,Garland,Arkansas,05051,237,1 +2020-06-29,Garland,Arkansas,05051,240,1 +2020-06-30,Garland,Arkansas,05051,248,1 +2020-07-01,Garland,Arkansas,05051,253,1 +2020-07-02,Garland,Arkansas,05051,267,1 +2020-07-03,Garland,Arkansas,05051,271,1 +2020-07-04,Garland,Arkansas,05051,277,1 +2020-07-05,Garland,Arkansas,05051,285,1 +2020-07-06,Garland,Arkansas,05051,288,1 +2020-07-07,Garland,Arkansas,05051,293,1 +2020-07-08,Garland,Arkansas,05051,300,2 +2020-07-09,Garland,Arkansas,05051,303,3 +2020-03-19,Grant,Arkansas,05053,1,0 +2020-03-20,Grant,Arkansas,05053,1,0 +2020-03-21,Grant,Arkansas,05053,1,0 +2020-03-22,Grant,Arkansas,05053,1,0 +2020-03-23,Grant,Arkansas,05053,1,0 +2020-03-24,Grant,Arkansas,05053,3,0 +2020-03-25,Grant,Arkansas,05053,3,0 +2020-03-26,Grant,Arkansas,05053,3,0 +2020-03-27,Grant,Arkansas,05053,3,0 +2020-03-28,Grant,Arkansas,05053,3,0 +2020-03-29,Grant,Arkansas,05053,3,0 +2020-03-30,Grant,Arkansas,05053,3,0 +2020-03-31,Grant,Arkansas,05053,3,0 +2020-04-01,Grant,Arkansas,05053,3,0 +2020-04-02,Grant,Arkansas,05053,3,0 +2020-04-03,Grant,Arkansas,05053,3,0 +2020-04-04,Grant,Arkansas,05053,3,0 +2020-04-05,Grant,Arkansas,05053,4,0 +2020-04-06,Grant,Arkansas,05053,4,0 +2020-04-07,Grant,Arkansas,05053,5,0 +2020-04-08,Grant,Arkansas,05053,7,0 +2020-04-09,Grant,Arkansas,05053,7,0 +2020-04-10,Grant,Arkansas,05053,9,0 +2020-04-11,Grant,Arkansas,05053,9,0 +2020-04-12,Grant,Arkansas,05053,10,0 +2020-04-13,Grant,Arkansas,05053,10,0 +2020-04-14,Grant,Arkansas,05053,10,0 +2020-04-15,Grant,Arkansas,05053,11,0 +2020-04-16,Grant,Arkansas,05053,11,0 +2020-04-17,Grant,Arkansas,05053,11,0 +2020-04-18,Grant,Arkansas,05053,11,0 +2020-04-19,Grant,Arkansas,05053,11,0 +2020-04-20,Grant,Arkansas,05053,11,0 +2020-04-21,Grant,Arkansas,05053,11,0 +2020-04-22,Grant,Arkansas,05053,11,0 +2020-04-23,Grant,Arkansas,05053,11,0 +2020-04-24,Grant,Arkansas,05053,11,0 +2020-04-25,Grant,Arkansas,05053,11,0 +2020-04-26,Grant,Arkansas,05053,11,0 +2020-04-27,Grant,Arkansas,05053,12,0 +2020-04-28,Grant,Arkansas,05053,12,0 +2020-04-29,Grant,Arkansas,05053,13,0 +2020-04-30,Grant,Arkansas,05053,14,0 +2020-05-01,Grant,Arkansas,05053,14,0 +2020-05-02,Grant,Arkansas,05053,14,0 +2020-05-03,Grant,Arkansas,05053,14,0 +2020-05-04,Grant,Arkansas,05053,14,0 +2020-05-05,Grant,Arkansas,05053,14,0 +2020-05-06,Grant,Arkansas,05053,14,0 +2020-05-07,Grant,Arkansas,05053,14,0 +2020-05-08,Grant,Arkansas,05053,15,0 +2020-05-09,Grant,Arkansas,05053,15,0 +2020-05-10,Grant,Arkansas,05053,15,0 +2020-05-11,Grant,Arkansas,05053,15,0 +2020-05-12,Grant,Arkansas,05053,15,0 +2020-05-13,Grant,Arkansas,05053,16,0 +2020-05-14,Grant,Arkansas,05053,16,0 +2020-05-15,Grant,Arkansas,05053,16,0 +2020-05-16,Grant,Arkansas,05053,16,0 +2020-05-17,Grant,Arkansas,05053,16,0 +2020-05-18,Grant,Arkansas,05053,16,0 +2020-05-19,Grant,Arkansas,05053,16,0 +2020-05-20,Grant,Arkansas,05053,16,0 +2020-05-21,Grant,Arkansas,05053,16,0 +2020-05-22,Grant,Arkansas,05053,16,0 +2020-05-23,Grant,Arkansas,05053,16,0 +2020-05-24,Grant,Arkansas,05053,16,0 +2020-05-25,Grant,Arkansas,05053,16,0 +2020-05-26,Grant,Arkansas,05053,16,0 +2020-05-27,Grant,Arkansas,05053,17,0 +2020-05-28,Grant,Arkansas,05053,18,0 +2020-05-29,Grant,Arkansas,05053,18,0 +2020-05-30,Grant,Arkansas,05053,18,0 +2020-05-31,Grant,Arkansas,05053,18,0 +2020-06-01,Grant,Arkansas,05053,18,0 +2020-06-02,Grant,Arkansas,05053,18,0 +2020-06-03,Grant,Arkansas,05053,18,0 +2020-06-04,Grant,Arkansas,05053,18,0 +2020-06-05,Grant,Arkansas,05053,18,0 +2020-06-06,Grant,Arkansas,05053,18,0 +2020-06-07,Grant,Arkansas,05053,19,0 +2020-06-08,Grant,Arkansas,05053,19,0 +2020-06-09,Grant,Arkansas,05053,22,0 +2020-06-10,Grant,Arkansas,05053,22,0 +2020-06-11,Grant,Arkansas,05053,22,0 +2020-06-12,Grant,Arkansas,05053,23,0 +2020-06-13,Grant,Arkansas,05053,24,0 +2020-06-14,Grant,Arkansas,05053,24,0 +2020-06-15,Grant,Arkansas,05053,24,0 +2020-06-16,Grant,Arkansas,05053,24,0 +2020-06-17,Grant,Arkansas,05053,24,0 +2020-06-18,Grant,Arkansas,05053,24,0 +2020-06-19,Grant,Arkansas,05053,24,0 +2020-06-20,Grant,Arkansas,05053,25,0 +2020-06-21,Grant,Arkansas,05053,26,0 +2020-06-22,Grant,Arkansas,05053,27,0 +2020-06-23,Grant,Arkansas,05053,28,0 +2020-06-24,Grant,Arkansas,05053,28,0 +2020-06-25,Grant,Arkansas,05053,30,0 +2020-06-26,Grant,Arkansas,05053,33,0 +2020-06-27,Grant,Arkansas,05053,34,0 +2020-06-28,Grant,Arkansas,05053,34,0 +2020-06-29,Grant,Arkansas,05053,40,0 +2020-06-30,Grant,Arkansas,05053,40,0 +2020-07-01,Grant,Arkansas,05053,41,0 +2020-07-02,Grant,Arkansas,05053,44,0 +2020-07-03,Grant,Arkansas,05053,44,0 +2020-07-04,Grant,Arkansas,05053,45,0 +2020-07-05,Grant,Arkansas,05053,46,0 +2020-07-06,Grant,Arkansas,05053,50,0 +2020-07-07,Grant,Arkansas,05053,51,0 +2020-07-08,Grant,Arkansas,05053,51,0 +2020-07-09,Grant,Arkansas,05053,51,0 +2020-03-19,Greene,Arkansas,05055,1,0 +2020-03-20,Greene,Arkansas,05055,1,0 +2020-03-21,Greene,Arkansas,05055,1,0 +2020-03-22,Greene,Arkansas,05055,1,0 +2020-03-23,Greene,Arkansas,05055,1,0 +2020-03-24,Greene,Arkansas,05055,3,0 +2020-03-25,Greene,Arkansas,05055,3,0 +2020-03-26,Greene,Arkansas,05055,3,0 +2020-03-27,Greene,Arkansas,05055,3,0 +2020-03-28,Greene,Arkansas,05055,3,0 +2020-03-29,Greene,Arkansas,05055,3,0 +2020-03-30,Greene,Arkansas,05055,4,0 +2020-03-31,Greene,Arkansas,05055,4,0 +2020-04-01,Greene,Arkansas,05055,4,0 +2020-04-02,Greene,Arkansas,05055,4,0 +2020-04-03,Greene,Arkansas,05055,4,0 +2020-04-04,Greene,Arkansas,05055,4,0 +2020-04-05,Greene,Arkansas,05055,4,0 +2020-04-06,Greene,Arkansas,05055,4,0 +2020-04-07,Greene,Arkansas,05055,6,0 +2020-04-08,Greene,Arkansas,05055,6,0 +2020-04-09,Greene,Arkansas,05055,6,0 +2020-04-10,Greene,Arkansas,05055,6,0 +2020-04-11,Greene,Arkansas,05055,6,0 +2020-04-12,Greene,Arkansas,05055,6,0 +2020-04-13,Greene,Arkansas,05055,6,0 +2020-04-14,Greene,Arkansas,05055,6,0 +2020-04-15,Greene,Arkansas,05055,6,0 +2020-04-16,Greene,Arkansas,05055,6,0 +2020-04-17,Greene,Arkansas,05055,6,0 +2020-04-18,Greene,Arkansas,05055,8,0 +2020-04-19,Greene,Arkansas,05055,8,0 +2020-04-20,Greene,Arkansas,05055,8,0 +2020-04-21,Greene,Arkansas,05055,9,0 +2020-04-22,Greene,Arkansas,05055,13,0 +2020-04-23,Greene,Arkansas,05055,13,0 +2020-04-24,Greene,Arkansas,05055,14,0 +2020-04-25,Greene,Arkansas,05055,14,0 +2020-04-26,Greene,Arkansas,05055,16,0 +2020-04-27,Greene,Arkansas,05055,16,0 +2020-04-28,Greene,Arkansas,05055,16,0 +2020-04-29,Greene,Arkansas,05055,16,0 +2020-04-30,Greene,Arkansas,05055,16,0 +2020-05-01,Greene,Arkansas,05055,16,0 +2020-05-02,Greene,Arkansas,05055,16,0 +2020-05-03,Greene,Arkansas,05055,19,0 +2020-05-04,Greene,Arkansas,05055,19,0 +2020-05-05,Greene,Arkansas,05055,21,0 +2020-05-06,Greene,Arkansas,05055,21,0 +2020-05-07,Greene,Arkansas,05055,22,0 +2020-05-08,Greene,Arkansas,05055,22,0 +2020-05-09,Greene,Arkansas,05055,22,0 +2020-05-10,Greene,Arkansas,05055,23,0 +2020-05-11,Greene,Arkansas,05055,23,0 +2020-05-12,Greene,Arkansas,05055,24,0 +2020-05-13,Greene,Arkansas,05055,24,0 +2020-05-14,Greene,Arkansas,05055,24,0 +2020-05-15,Greene,Arkansas,05055,24,0 +2020-05-16,Greene,Arkansas,05055,24,0 +2020-05-17,Greene,Arkansas,05055,24,0 +2020-05-18,Greene,Arkansas,05055,24,0 +2020-05-19,Greene,Arkansas,05055,25,0 +2020-05-20,Greene,Arkansas,05055,29,0 +2020-05-21,Greene,Arkansas,05055,34,0 +2020-05-22,Greene,Arkansas,05055,42,0 +2020-05-23,Greene,Arkansas,05055,45,0 +2020-05-24,Greene,Arkansas,05055,45,0 +2020-05-25,Greene,Arkansas,05055,50,0 +2020-05-26,Greene,Arkansas,05055,54,0 +2020-05-27,Greene,Arkansas,05055,54,0 +2020-05-28,Greene,Arkansas,05055,60,0 +2020-05-29,Greene,Arkansas,05055,63,0 +2020-05-30,Greene,Arkansas,05055,64,0 +2020-05-31,Greene,Arkansas,05055,64,0 +2020-06-01,Greene,Arkansas,05055,64,0 +2020-06-02,Greene,Arkansas,05055,65,0 +2020-06-03,Greene,Arkansas,05055,66,0 +2020-06-04,Greene,Arkansas,05055,66,0 +2020-06-05,Greene,Arkansas,05055,67,0 +2020-06-06,Greene,Arkansas,05055,67,0 +2020-06-07,Greene,Arkansas,05055,67,0 +2020-06-08,Greene,Arkansas,05055,67,0 +2020-06-09,Greene,Arkansas,05055,67,0 +2020-06-10,Greene,Arkansas,05055,67,0 +2020-06-11,Greene,Arkansas,05055,68,0 +2020-06-12,Greene,Arkansas,05055,69,0 +2020-06-13,Greene,Arkansas,05055,71,0 +2020-06-14,Greene,Arkansas,05055,72,0 +2020-06-15,Greene,Arkansas,05055,73,0 +2020-06-16,Greene,Arkansas,05055,74,0 +2020-06-17,Greene,Arkansas,05055,76,0 +2020-06-18,Greene,Arkansas,05055,78,0 +2020-06-19,Greene,Arkansas,05055,87,0 +2020-06-20,Greene,Arkansas,05055,89,0 +2020-06-21,Greene,Arkansas,05055,93,0 +2020-06-22,Greene,Arkansas,05055,94,0 +2020-06-23,Greene,Arkansas,05055,97,0 +2020-06-24,Greene,Arkansas,05055,99,0 +2020-06-25,Greene,Arkansas,05055,102,0 +2020-06-26,Greene,Arkansas,05055,107,0 +2020-06-27,Greene,Arkansas,05055,112,0 +2020-06-28,Greene,Arkansas,05055,114,0 +2020-06-29,Greene,Arkansas,05055,114,0 +2020-06-30,Greene,Arkansas,05055,114,0 +2020-07-01,Greene,Arkansas,05055,119,0 +2020-07-02,Greene,Arkansas,05055,119,0 +2020-07-03,Greene,Arkansas,05055,121,0 +2020-07-04,Greene,Arkansas,05055,121,0 +2020-07-05,Greene,Arkansas,05055,122,0 +2020-07-06,Greene,Arkansas,05055,124,0 +2020-07-07,Greene,Arkansas,05055,128,0 +2020-07-08,Greene,Arkansas,05055,134,0 +2020-07-09,Greene,Arkansas,05055,141,0 +2020-03-29,Hempstead,Arkansas,05057,1,0 +2020-03-30,Hempstead,Arkansas,05057,1,0 +2020-03-31,Hempstead,Arkansas,05057,1,0 +2020-04-01,Hempstead,Arkansas,05057,1,0 +2020-04-02,Hempstead,Arkansas,05057,2,0 +2020-04-03,Hempstead,Arkansas,05057,3,0 +2020-04-04,Hempstead,Arkansas,05057,3,0 +2020-04-05,Hempstead,Arkansas,05057,3,0 +2020-04-06,Hempstead,Arkansas,05057,3,0 +2020-04-07,Hempstead,Arkansas,05057,3,0 +2020-04-08,Hempstead,Arkansas,05057,3,0 +2020-04-09,Hempstead,Arkansas,05057,3,1 +2020-04-10,Hempstead,Arkansas,05057,3,1 +2020-04-11,Hempstead,Arkansas,05057,4,1 +2020-04-12,Hempstead,Arkansas,05057,5,1 +2020-04-13,Hempstead,Arkansas,05057,4,1 +2020-04-14,Hempstead,Arkansas,05057,4,1 +2020-04-15,Hempstead,Arkansas,05057,4,1 +2020-04-16,Hempstead,Arkansas,05057,4,1 +2020-04-17,Hempstead,Arkansas,05057,4,1 +2020-04-18,Hempstead,Arkansas,05057,5,1 +2020-04-19,Hempstead,Arkansas,05057,5,1 +2020-04-20,Hempstead,Arkansas,05057,5,1 +2020-04-21,Hempstead,Arkansas,05057,5,1 +2020-04-22,Hempstead,Arkansas,05057,5,1 +2020-04-23,Hempstead,Arkansas,05057,5,1 +2020-04-24,Hempstead,Arkansas,05057,5,1 +2020-04-25,Hempstead,Arkansas,05057,5,1 +2020-04-26,Hempstead,Arkansas,05057,5,1 +2020-04-27,Hempstead,Arkansas,05057,5,1 +2020-04-28,Hempstead,Arkansas,05057,6,1 +2020-04-29,Hempstead,Arkansas,05057,6,1 +2020-04-30,Hempstead,Arkansas,05057,6,1 +2020-05-01,Hempstead,Arkansas,05057,5,1 +2020-05-02,Hempstead,Arkansas,05057,6,1 +2020-05-03,Hempstead,Arkansas,05057,6,1 +2020-05-04,Hempstead,Arkansas,05057,7,1 +2020-05-05,Hempstead,Arkansas,05057,7,1 +2020-05-06,Hempstead,Arkansas,05057,7,1 +2020-05-07,Hempstead,Arkansas,05057,7,1 +2020-05-08,Hempstead,Arkansas,05057,7,1 +2020-05-09,Hempstead,Arkansas,05057,7,1 +2020-05-10,Hempstead,Arkansas,05057,7,1 +2020-05-11,Hempstead,Arkansas,05057,7,1 +2020-05-12,Hempstead,Arkansas,05057,7,1 +2020-05-13,Hempstead,Arkansas,05057,7,1 +2020-05-14,Hempstead,Arkansas,05057,7,1 +2020-05-15,Hempstead,Arkansas,05057,9,1 +2020-05-16,Hempstead,Arkansas,05057,9,1 +2020-05-17,Hempstead,Arkansas,05057,9,1 +2020-05-18,Hempstead,Arkansas,05057,9,1 +2020-05-19,Hempstead,Arkansas,05057,9,1 +2020-05-20,Hempstead,Arkansas,05057,10,1 +2020-05-21,Hempstead,Arkansas,05057,12,1 +2020-05-22,Hempstead,Arkansas,05057,11,1 +2020-05-23,Hempstead,Arkansas,05057,13,1 +2020-05-24,Hempstead,Arkansas,05057,13,1 +2020-05-25,Hempstead,Arkansas,05057,13,1 +2020-05-26,Hempstead,Arkansas,05057,14,1 +2020-05-27,Hempstead,Arkansas,05057,14,1 +2020-05-28,Hempstead,Arkansas,05057,14,1 +2020-05-29,Hempstead,Arkansas,05057,15,1 +2020-05-30,Hempstead,Arkansas,05057,16,1 +2020-05-31,Hempstead,Arkansas,05057,18,1 +2020-06-01,Hempstead,Arkansas,05057,18,1 +2020-06-02,Hempstead,Arkansas,05057,21,1 +2020-06-03,Hempstead,Arkansas,05057,20,1 +2020-06-04,Hempstead,Arkansas,05057,21,1 +2020-06-05,Hempstead,Arkansas,05057,23,1 +2020-06-06,Hempstead,Arkansas,05057,27,1 +2020-06-07,Hempstead,Arkansas,05057,29,1 +2020-06-08,Hempstead,Arkansas,05057,30,1 +2020-06-09,Hempstead,Arkansas,05057,33,1 +2020-06-10,Hempstead,Arkansas,05057,34,1 +2020-06-11,Hempstead,Arkansas,05057,33,1 +2020-06-12,Hempstead,Arkansas,05057,33,1 +2020-06-13,Hempstead,Arkansas,05057,34,1 +2020-06-14,Hempstead,Arkansas,05057,36,1 +2020-06-15,Hempstead,Arkansas,05057,39,1 +2020-06-16,Hempstead,Arkansas,05057,40,1 +2020-06-17,Hempstead,Arkansas,05057,40,1 +2020-06-18,Hempstead,Arkansas,05057,41,1 +2020-06-19,Hempstead,Arkansas,05057,43,1 +2020-06-20,Hempstead,Arkansas,05057,44,1 +2020-06-21,Hempstead,Arkansas,05057,44,1 +2020-06-22,Hempstead,Arkansas,05057,45,1 +2020-06-23,Hempstead,Arkansas,05057,46,1 +2020-06-24,Hempstead,Arkansas,05057,46,1 +2020-06-25,Hempstead,Arkansas,05057,46,1 +2020-06-26,Hempstead,Arkansas,05057,47,1 +2020-06-27,Hempstead,Arkansas,05057,47,1 +2020-06-28,Hempstead,Arkansas,05057,48,1 +2020-06-29,Hempstead,Arkansas,05057,50,1 +2020-06-30,Hempstead,Arkansas,05057,50,1 +2020-07-01,Hempstead,Arkansas,05057,50,1 +2020-07-02,Hempstead,Arkansas,05057,56,1 +2020-07-03,Hempstead,Arkansas,05057,57,1 +2020-07-04,Hempstead,Arkansas,05057,60,1 +2020-07-05,Hempstead,Arkansas,05057,63,1 +2020-07-06,Hempstead,Arkansas,05057,64,1 +2020-07-07,Hempstead,Arkansas,05057,65,1 +2020-07-08,Hempstead,Arkansas,05057,69,1 +2020-07-09,Hempstead,Arkansas,05057,70,1 +2020-03-24,Hot Spring,Arkansas,05059,1,0 +2020-03-25,Hot Spring,Arkansas,05059,1,0 +2020-03-26,Hot Spring,Arkansas,05059,1,0 +2020-03-27,Hot Spring,Arkansas,05059,2,0 +2020-03-28,Hot Spring,Arkansas,05059,1,0 +2020-03-29,Hot Spring,Arkansas,05059,3,0 +2020-03-30,Hot Spring,Arkansas,05059,4,0 +2020-03-31,Hot Spring,Arkansas,05059,4,0 +2020-04-01,Hot Spring,Arkansas,05059,4,0 +2020-04-02,Hot Spring,Arkansas,05059,5,0 +2020-04-03,Hot Spring,Arkansas,05059,5,0 +2020-04-04,Hot Spring,Arkansas,05059,5,0 +2020-04-05,Hot Spring,Arkansas,05059,7,0 +2020-04-06,Hot Spring,Arkansas,05059,7,0 +2020-04-07,Hot Spring,Arkansas,05059,7,0 +2020-04-08,Hot Spring,Arkansas,05059,7,0 +2020-04-09,Hot Spring,Arkansas,05059,8,0 +2020-04-10,Hot Spring,Arkansas,05059,8,0 +2020-04-11,Hot Spring,Arkansas,05059,8,0 +2020-04-12,Hot Spring,Arkansas,05059,8,0 +2020-04-13,Hot Spring,Arkansas,05059,8,0 +2020-04-14,Hot Spring,Arkansas,05059,8,0 +2020-04-15,Hot Spring,Arkansas,05059,8,0 +2020-04-16,Hot Spring,Arkansas,05059,8,0 +2020-04-17,Hot Spring,Arkansas,05059,8,0 +2020-04-18,Hot Spring,Arkansas,05059,8,0 +2020-04-19,Hot Spring,Arkansas,05059,8,0 +2020-04-20,Hot Spring,Arkansas,05059,8,0 +2020-04-21,Hot Spring,Arkansas,05059,8,0 +2020-04-22,Hot Spring,Arkansas,05059,8,0 +2020-04-23,Hot Spring,Arkansas,05059,9,0 +2020-04-24,Hot Spring,Arkansas,05059,9,0 +2020-04-25,Hot Spring,Arkansas,05059,9,0 +2020-04-26,Hot Spring,Arkansas,05059,10,0 +2020-04-27,Hot Spring,Arkansas,05059,10,0 +2020-04-28,Hot Spring,Arkansas,05059,15,0 +2020-04-29,Hot Spring,Arkansas,05059,17,0 +2020-04-30,Hot Spring,Arkansas,05059,19,0 +2020-05-01,Hot Spring,Arkansas,05059,19,0 +2020-05-02,Hot Spring,Arkansas,05059,19,0 +2020-05-03,Hot Spring,Arkansas,05059,20,0 +2020-05-04,Hot Spring,Arkansas,05059,20,0 +2020-05-05,Hot Spring,Arkansas,05059,20,0 +2020-05-06,Hot Spring,Arkansas,05059,22,0 +2020-05-07,Hot Spring,Arkansas,05059,22,0 +2020-05-08,Hot Spring,Arkansas,05059,22,0 +2020-05-09,Hot Spring,Arkansas,05059,22,0 +2020-05-10,Hot Spring,Arkansas,05059,26,0 +2020-05-11,Hot Spring,Arkansas,05059,26,0 +2020-05-12,Hot Spring,Arkansas,05059,27,0 +2020-05-13,Hot Spring,Arkansas,05059,28,0 +2020-05-14,Hot Spring,Arkansas,05059,29,0 +2020-05-15,Hot Spring,Arkansas,05059,29,0 +2020-05-16,Hot Spring,Arkansas,05059,29,0 +2020-05-17,Hot Spring,Arkansas,05059,29,0 +2020-05-18,Hot Spring,Arkansas,05059,29,0 +2020-05-19,Hot Spring,Arkansas,05059,29,0 +2020-05-20,Hot Spring,Arkansas,05059,29,0 +2020-05-21,Hot Spring,Arkansas,05059,29,0 +2020-05-22,Hot Spring,Arkansas,05059,29,0 +2020-05-23,Hot Spring,Arkansas,05059,29,0 +2020-05-24,Hot Spring,Arkansas,05059,30,0 +2020-05-25,Hot Spring,Arkansas,05059,30,0 +2020-05-26,Hot Spring,Arkansas,05059,30,0 +2020-05-27,Hot Spring,Arkansas,05059,30,0 +2020-05-28,Hot Spring,Arkansas,05059,31,0 +2020-05-29,Hot Spring,Arkansas,05059,32,0 +2020-05-30,Hot Spring,Arkansas,05059,32,0 +2020-05-31,Hot Spring,Arkansas,05059,32,0 +2020-06-01,Hot Spring,Arkansas,05059,32,0 +2020-06-02,Hot Spring,Arkansas,05059,32,0 +2020-06-03,Hot Spring,Arkansas,05059,33,0 +2020-06-04,Hot Spring,Arkansas,05059,34,0 +2020-06-05,Hot Spring,Arkansas,05059,34,0 +2020-06-06,Hot Spring,Arkansas,05059,34,0 +2020-06-07,Hot Spring,Arkansas,05059,34,0 +2020-06-08,Hot Spring,Arkansas,05059,34,0 +2020-06-09,Hot Spring,Arkansas,05059,34,0 +2020-06-10,Hot Spring,Arkansas,05059,34,0 +2020-06-11,Hot Spring,Arkansas,05059,37,0 +2020-06-12,Hot Spring,Arkansas,05059,37,0 +2020-06-13,Hot Spring,Arkansas,05059,38,0 +2020-06-14,Hot Spring,Arkansas,05059,42,0 +2020-06-15,Hot Spring,Arkansas,05059,42,0 +2020-06-16,Hot Spring,Arkansas,05059,43,0 +2020-06-17,Hot Spring,Arkansas,05059,44,0 +2020-06-18,Hot Spring,Arkansas,05059,46,0 +2020-06-19,Hot Spring,Arkansas,05059,46,0 +2020-06-20,Hot Spring,Arkansas,05059,53,0 +2020-06-21,Hot Spring,Arkansas,05059,53,0 +2020-06-22,Hot Spring,Arkansas,05059,138,0 +2020-06-23,Hot Spring,Arkansas,05059,226,0 +2020-06-24,Hot Spring,Arkansas,05059,396,0 +2020-06-25,Hot Spring,Arkansas,05059,396,0 +2020-06-26,Hot Spring,Arkansas,05059,415,0 +2020-06-27,Hot Spring,Arkansas,05059,420,0 +2020-06-28,Hot Spring,Arkansas,05059,423,0 +2020-06-29,Hot Spring,Arkansas,05059,428,0 +2020-06-30,Hot Spring,Arkansas,05059,426,0 +2020-07-01,Hot Spring,Arkansas,05059,429,0 +2020-07-02,Hot Spring,Arkansas,05059,580,0 +2020-07-03,Hot Spring,Arkansas,05059,582,0 +2020-07-04,Hot Spring,Arkansas,05059,583,1 +2020-07-05,Hot Spring,Arkansas,05059,583,1 +2020-07-06,Hot Spring,Arkansas,05059,584,1 +2020-07-07,Hot Spring,Arkansas,05059,587,1 +2020-07-08,Hot Spring,Arkansas,05059,649,1 +2020-07-09,Hot Spring,Arkansas,05059,743,1 +2020-03-26,Howard,Arkansas,05061,2,0 +2020-03-27,Howard,Arkansas,05061,3,0 +2020-03-28,Howard,Arkansas,05061,3,0 +2020-03-29,Howard,Arkansas,05061,3,0 +2020-03-30,Howard,Arkansas,05061,3,0 +2020-03-31,Howard,Arkansas,05061,4,0 +2020-04-01,Howard,Arkansas,05061,4,0 +2020-04-02,Howard,Arkansas,05061,4,0 +2020-04-03,Howard,Arkansas,05061,4,0 +2020-04-04,Howard,Arkansas,05061,4,0 +2020-04-05,Howard,Arkansas,05061,5,0 +2020-04-06,Howard,Arkansas,05061,5,0 +2020-04-07,Howard,Arkansas,05061,5,0 +2020-04-08,Howard,Arkansas,05061,5,0 +2020-04-09,Howard,Arkansas,05061,6,0 +2020-04-10,Howard,Arkansas,05061,6,0 +2020-04-11,Howard,Arkansas,05061,6,0 +2020-04-12,Howard,Arkansas,05061,8,0 +2020-04-13,Howard,Arkansas,05061,9,0 +2020-04-14,Howard,Arkansas,05061,9,0 +2020-04-15,Howard,Arkansas,05061,11,0 +2020-04-16,Howard,Arkansas,05061,12,0 +2020-04-17,Howard,Arkansas,05061,12,0 +2020-04-18,Howard,Arkansas,05061,13,0 +2020-04-19,Howard,Arkansas,05061,14,0 +2020-04-20,Howard,Arkansas,05061,14,0 +2020-04-21,Howard,Arkansas,05061,14,1 +2020-04-22,Howard,Arkansas,05061,13,0 +2020-04-23,Howard,Arkansas,05061,13,0 +2020-04-24,Howard,Arkansas,05061,13,0 +2020-04-25,Howard,Arkansas,05061,13,0 +2020-04-26,Howard,Arkansas,05061,13,0 +2020-04-27,Howard,Arkansas,05061,13,0 +2020-04-28,Howard,Arkansas,05061,13,0 +2020-04-29,Howard,Arkansas,05061,13,0 +2020-04-30,Howard,Arkansas,05061,13,0 +2020-05-01,Howard,Arkansas,05061,13,0 +2020-05-02,Howard,Arkansas,05061,13,0 +2020-05-03,Howard,Arkansas,05061,13,0 +2020-05-04,Howard,Arkansas,05061,14,0 +2020-05-05,Howard,Arkansas,05061,14,0 +2020-05-06,Howard,Arkansas,05061,14,0 +2020-05-07,Howard,Arkansas,05061,14,0 +2020-05-08,Howard,Arkansas,05061,14,0 +2020-05-09,Howard,Arkansas,05061,14,0 +2020-05-10,Howard,Arkansas,05061,14,0 +2020-05-11,Howard,Arkansas,05061,14,0 +2020-05-12,Howard,Arkansas,05061,14,0 +2020-05-13,Howard,Arkansas,05061,14,0 +2020-05-14,Howard,Arkansas,05061,14,0 +2020-05-15,Howard,Arkansas,05061,14,0 +2020-05-16,Howard,Arkansas,05061,14,0 +2020-05-17,Howard,Arkansas,05061,14,0 +2020-05-18,Howard,Arkansas,05061,14,0 +2020-05-19,Howard,Arkansas,05061,14,0 +2020-05-20,Howard,Arkansas,05061,14,0 +2020-05-21,Howard,Arkansas,05061,14,0 +2020-05-22,Howard,Arkansas,05061,15,0 +2020-05-23,Howard,Arkansas,05061,15,0 +2020-05-24,Howard,Arkansas,05061,16,0 +2020-05-25,Howard,Arkansas,05061,17,0 +2020-05-26,Howard,Arkansas,05061,17,0 +2020-05-27,Howard,Arkansas,05061,17,0 +2020-05-28,Howard,Arkansas,05061,18,0 +2020-05-29,Howard,Arkansas,05061,19,0 +2020-05-30,Howard,Arkansas,05061,20,0 +2020-05-31,Howard,Arkansas,05061,21,0 +2020-06-01,Howard,Arkansas,05061,21,0 +2020-06-02,Howard,Arkansas,05061,25,0 +2020-06-03,Howard,Arkansas,05061,26,0 +2020-06-04,Howard,Arkansas,05061,26,0 +2020-06-05,Howard,Arkansas,05061,27,0 +2020-06-06,Howard,Arkansas,05061,28,0 +2020-06-07,Howard,Arkansas,05061,31,0 +2020-06-08,Howard,Arkansas,05061,33,0 +2020-06-09,Howard,Arkansas,05061,36,0 +2020-06-10,Howard,Arkansas,05061,35,0 +2020-06-11,Howard,Arkansas,05061,38,0 +2020-06-12,Howard,Arkansas,05061,38,0 +2020-06-13,Howard,Arkansas,05061,38,0 +2020-06-14,Howard,Arkansas,05061,38,0 +2020-06-15,Howard,Arkansas,05061,41,0 +2020-06-16,Howard,Arkansas,05061,42,0 +2020-06-17,Howard,Arkansas,05061,45,0 +2020-06-18,Howard,Arkansas,05061,47,0 +2020-06-19,Howard,Arkansas,05061,54,0 +2020-06-20,Howard,Arkansas,05061,62,0 +2020-06-21,Howard,Arkansas,05061,68,0 +2020-06-22,Howard,Arkansas,05061,68,0 +2020-06-23,Howard,Arkansas,05061,70,0 +2020-06-24,Howard,Arkansas,05061,70,0 +2020-06-25,Howard,Arkansas,05061,73,0 +2020-06-26,Howard,Arkansas,05061,75,1 +2020-06-27,Howard,Arkansas,05061,76,1 +2020-06-28,Howard,Arkansas,05061,82,1 +2020-06-29,Howard,Arkansas,05061,86,1 +2020-06-30,Howard,Arkansas,05061,89,1 +2020-07-01,Howard,Arkansas,05061,94,1 +2020-07-02,Howard,Arkansas,05061,96,1 +2020-07-03,Howard,Arkansas,05061,98,1 +2020-07-04,Howard,Arkansas,05061,100,1 +2020-07-05,Howard,Arkansas,05061,101,1 +2020-07-06,Howard,Arkansas,05061,102,1 +2020-07-07,Howard,Arkansas,05061,106,1 +2020-07-08,Howard,Arkansas,05061,115,1 +2020-07-09,Howard,Arkansas,05061,121,1 +2020-03-19,Independence,Arkansas,05063,1,0 +2020-03-20,Independence,Arkansas,05063,1,0 +2020-03-21,Independence,Arkansas,05063,1,0 +2020-03-22,Independence,Arkansas,05063,1,0 +2020-03-23,Independence,Arkansas,05063,1,0 +2020-03-24,Independence,Arkansas,05063,3,0 +2020-03-25,Independence,Arkansas,05063,3,0 +2020-03-26,Independence,Arkansas,05063,3,0 +2020-03-27,Independence,Arkansas,05063,3,0 +2020-03-28,Independence,Arkansas,05063,3,0 +2020-03-29,Independence,Arkansas,05063,3,0 +2020-03-30,Independence,Arkansas,05063,3,0 +2020-03-31,Independence,Arkansas,05063,4,0 +2020-04-01,Independence,Arkansas,05063,4,0 +2020-04-02,Independence,Arkansas,05063,4,0 +2020-04-03,Independence,Arkansas,05063,4,0 +2020-04-04,Independence,Arkansas,05063,4,0 +2020-04-05,Independence,Arkansas,05063,5,0 +2020-04-06,Independence,Arkansas,05063,5,0 +2020-04-07,Independence,Arkansas,05063,5,0 +2020-04-08,Independence,Arkansas,05063,5,0 +2020-04-09,Independence,Arkansas,05063,5,0 +2020-04-10,Independence,Arkansas,05063,5,0 +2020-04-11,Independence,Arkansas,05063,5,0 +2020-04-12,Independence,Arkansas,05063,5,0 +2020-04-13,Independence,Arkansas,05063,6,0 +2020-04-14,Independence,Arkansas,05063,6,0 +2020-04-15,Independence,Arkansas,05063,6,0 +2020-04-16,Independence,Arkansas,05063,6,0 +2020-04-17,Independence,Arkansas,05063,7,0 +2020-04-18,Independence,Arkansas,05063,8,0 +2020-04-19,Independence,Arkansas,05063,8,0 +2020-04-20,Independence,Arkansas,05063,8,0 +2020-04-21,Independence,Arkansas,05063,8,0 +2020-04-22,Independence,Arkansas,05063,8,0 +2020-04-23,Independence,Arkansas,05063,8,0 +2020-04-24,Independence,Arkansas,05063,9,0 +2020-04-25,Independence,Arkansas,05063,9,0 +2020-04-26,Independence,Arkansas,05063,9,0 +2020-04-27,Independence,Arkansas,05063,9,0 +2020-04-28,Independence,Arkansas,05063,9,0 +2020-04-29,Independence,Arkansas,05063,9,0 +2020-04-30,Independence,Arkansas,05063,9,0 +2020-05-01,Independence,Arkansas,05063,10,0 +2020-05-02,Independence,Arkansas,05063,10,0 +2020-05-03,Independence,Arkansas,05063,10,0 +2020-05-04,Independence,Arkansas,05063,11,0 +2020-05-05,Independence,Arkansas,05063,11,0 +2020-05-06,Independence,Arkansas,05063,11,0 +2020-05-07,Independence,Arkansas,05063,12,0 +2020-05-08,Independence,Arkansas,05063,12,0 +2020-05-09,Independence,Arkansas,05063,12,0 +2020-05-10,Independence,Arkansas,05063,17,0 +2020-05-11,Independence,Arkansas,05063,17,0 +2020-05-12,Independence,Arkansas,05063,17,0 +2020-05-13,Independence,Arkansas,05063,19,0 +2020-05-14,Independence,Arkansas,05063,22,0 +2020-05-15,Independence,Arkansas,05063,23,0 +2020-05-16,Independence,Arkansas,05063,25,0 +2020-05-17,Independence,Arkansas,05063,25,0 +2020-05-18,Independence,Arkansas,05063,26,0 +2020-05-19,Independence,Arkansas,05063,26,0 +2020-05-20,Independence,Arkansas,05063,27,0 +2020-05-21,Independence,Arkansas,05063,27,0 +2020-05-22,Independence,Arkansas,05063,27,0 +2020-05-23,Independence,Arkansas,05063,29,0 +2020-05-24,Independence,Arkansas,05063,28,0 +2020-05-25,Independence,Arkansas,05063,28,0 +2020-05-26,Independence,Arkansas,05063,29,0 +2020-05-27,Independence,Arkansas,05063,29,0 +2020-05-28,Independence,Arkansas,05063,29,0 +2020-05-29,Independence,Arkansas,05063,30,0 +2020-05-30,Independence,Arkansas,05063,31,0 +2020-05-31,Independence,Arkansas,05063,31,0 +2020-06-01,Independence,Arkansas,05063,31,0 +2020-06-02,Independence,Arkansas,05063,34,0 +2020-06-03,Independence,Arkansas,05063,33,0 +2020-06-04,Independence,Arkansas,05063,33,0 +2020-06-05,Independence,Arkansas,05063,33,0 +2020-06-06,Independence,Arkansas,05063,33,0 +2020-06-07,Independence,Arkansas,05063,33,0 +2020-06-08,Independence,Arkansas,05063,36,0 +2020-06-09,Independence,Arkansas,05063,36,0 +2020-06-10,Independence,Arkansas,05063,36,0 +2020-06-11,Independence,Arkansas,05063,37,0 +2020-06-12,Independence,Arkansas,05063,39,0 +2020-06-13,Independence,Arkansas,05063,39,0 +2020-06-14,Independence,Arkansas,05063,42,0 +2020-06-15,Independence,Arkansas,05063,42,0 +2020-06-16,Independence,Arkansas,05063,43,0 +2020-06-17,Independence,Arkansas,05063,43,0 +2020-06-18,Independence,Arkansas,05063,43,0 +2020-06-19,Independence,Arkansas,05063,44,0 +2020-06-20,Independence,Arkansas,05063,44,0 +2020-06-21,Independence,Arkansas,05063,46,0 +2020-06-22,Independence,Arkansas,05063,46,0 +2020-06-23,Independence,Arkansas,05063,46,0 +2020-06-24,Independence,Arkansas,05063,48,0 +2020-06-25,Independence,Arkansas,05063,49,0 +2020-06-26,Independence,Arkansas,05063,49,0 +2020-06-27,Independence,Arkansas,05063,51,0 +2020-06-28,Independence,Arkansas,05063,54,0 +2020-06-29,Independence,Arkansas,05063,55,0 +2020-06-30,Independence,Arkansas,05063,55,0 +2020-07-01,Independence,Arkansas,05063,55,0 +2020-07-02,Independence,Arkansas,05063,59,0 +2020-07-03,Independence,Arkansas,05063,61,0 +2020-07-04,Independence,Arkansas,05063,60,0 +2020-07-05,Independence,Arkansas,05063,60,0 +2020-07-06,Independence,Arkansas,05063,61,0 +2020-07-07,Independence,Arkansas,05063,60,0 +2020-07-08,Independence,Arkansas,05063,61,0 +2020-07-09,Independence,Arkansas,05063,66,0 +2020-04-06,Izard,Arkansas,05065,1,0 +2020-04-07,Izard,Arkansas,05065,1,0 +2020-04-08,Izard,Arkansas,05065,1,0 +2020-04-09,Izard,Arkansas,05065,1,0 +2020-04-10,Izard,Arkansas,05065,1,0 +2020-04-11,Izard,Arkansas,05065,1,0 +2020-04-12,Izard,Arkansas,05065,1,0 +2020-04-13,Izard,Arkansas,05065,2,0 +2020-04-14,Izard,Arkansas,05065,2,0 +2020-04-15,Izard,Arkansas,05065,2,0 +2020-04-16,Izard,Arkansas,05065,2,0 +2020-04-17,Izard,Arkansas,05065,2,0 +2020-04-18,Izard,Arkansas,05065,2,0 +2020-04-19,Izard,Arkansas,05065,2,0 +2020-04-20,Izard,Arkansas,05065,2,0 +2020-04-21,Izard,Arkansas,05065,2,0 +2020-04-22,Izard,Arkansas,05065,2,0 +2020-04-23,Izard,Arkansas,05065,2,0 +2020-04-24,Izard,Arkansas,05065,3,0 +2020-04-25,Izard,Arkansas,05065,3,0 +2020-04-26,Izard,Arkansas,05065,5,0 +2020-04-27,Izard,Arkansas,05065,5,0 +2020-04-28,Izard,Arkansas,05065,5,0 +2020-04-29,Izard,Arkansas,05065,5,0 +2020-04-30,Izard,Arkansas,05065,5,0 +2020-05-01,Izard,Arkansas,05065,6,0 +2020-05-02,Izard,Arkansas,05065,6,0 +2020-05-03,Izard,Arkansas,05065,9,0 +2020-05-04,Izard,Arkansas,05065,9,0 +2020-05-05,Izard,Arkansas,05065,10,0 +2020-05-06,Izard,Arkansas,05065,11,0 +2020-05-07,Izard,Arkansas,05065,11,0 +2020-05-08,Izard,Arkansas,05065,11,0 +2020-05-09,Izard,Arkansas,05065,11,0 +2020-05-10,Izard,Arkansas,05065,11,0 +2020-05-11,Izard,Arkansas,05065,13,0 +2020-05-12,Izard,Arkansas,05065,13,0 +2020-05-13,Izard,Arkansas,05065,13,0 +2020-05-14,Izard,Arkansas,05065,13,0 +2020-05-15,Izard,Arkansas,05065,13,0 +2020-05-16,Izard,Arkansas,05065,13,0 +2020-05-17,Izard,Arkansas,05065,13,0 +2020-05-18,Izard,Arkansas,05065,13,0 +2020-05-19,Izard,Arkansas,05065,14,0 +2020-05-20,Izard,Arkansas,05065,14,0 +2020-05-21,Izard,Arkansas,05065,14,0 +2020-05-22,Izard,Arkansas,05065,14,0 +2020-05-23,Izard,Arkansas,05065,14,0 +2020-05-24,Izard,Arkansas,05065,15,0 +2020-05-25,Izard,Arkansas,05065,15,0 +2020-05-26,Izard,Arkansas,05065,15,0 +2020-05-27,Izard,Arkansas,05065,15,0 +2020-05-28,Izard,Arkansas,05065,16,0 +2020-05-29,Izard,Arkansas,05065,16,0 +2020-05-30,Izard,Arkansas,05065,16,0 +2020-05-31,Izard,Arkansas,05065,16,0 +2020-06-01,Izard,Arkansas,05065,16,0 +2020-06-02,Izard,Arkansas,05065,17,1 +2020-06-03,Izard,Arkansas,05065,17,1 +2020-06-04,Izard,Arkansas,05065,17,1 +2020-06-05,Izard,Arkansas,05065,17,1 +2020-06-06,Izard,Arkansas,05065,17,1 +2020-06-07,Izard,Arkansas,05065,17,1 +2020-06-08,Izard,Arkansas,05065,17,1 +2020-06-09,Izard,Arkansas,05065,17,1 +2020-06-10,Izard,Arkansas,05065,17,1 +2020-06-11,Izard,Arkansas,05065,17,1 +2020-06-12,Izard,Arkansas,05065,17,1 +2020-06-13,Izard,Arkansas,05065,19,1 +2020-06-14,Izard,Arkansas,05065,20,1 +2020-06-15,Izard,Arkansas,05065,20,1 +2020-06-16,Izard,Arkansas,05065,20,1 +2020-06-17,Izard,Arkansas,05065,20,1 +2020-06-18,Izard,Arkansas,05065,20,1 +2020-06-19,Izard,Arkansas,05065,20,1 +2020-06-20,Izard,Arkansas,05065,20,1 +2020-06-21,Izard,Arkansas,05065,20,1 +2020-06-22,Izard,Arkansas,05065,20,1 +2020-06-23,Izard,Arkansas,05065,20,1 +2020-06-24,Izard,Arkansas,05065,20,1 +2020-06-25,Izard,Arkansas,05065,20,1 +2020-06-26,Izard,Arkansas,05065,20,1 +2020-06-27,Izard,Arkansas,05065,20,1 +2020-06-28,Izard,Arkansas,05065,20,1 +2020-06-29,Izard,Arkansas,05065,20,1 +2020-06-30,Izard,Arkansas,05065,20,1 +2020-07-01,Izard,Arkansas,05065,23,1 +2020-07-02,Izard,Arkansas,05065,23,1 +2020-07-03,Izard,Arkansas,05065,23,1 +2020-07-04,Izard,Arkansas,05065,23,1 +2020-07-05,Izard,Arkansas,05065,23,1 +2020-07-06,Izard,Arkansas,05065,23,1 +2020-07-07,Izard,Arkansas,05065,25,1 +2020-07-08,Izard,Arkansas,05065,24,1 +2020-07-09,Izard,Arkansas,05065,24,1 +2020-04-13,Jackson,Arkansas,05067,1,0 +2020-04-14,Jackson,Arkansas,05067,1,0 +2020-04-15,Jackson,Arkansas,05067,1,0 +2020-04-16,Jackson,Arkansas,05067,1,0 +2020-04-17,Jackson,Arkansas,05067,1,0 +2020-04-18,Jackson,Arkansas,05067,1,0 +2020-04-19,Jackson,Arkansas,05067,1,0 +2020-04-20,Jackson,Arkansas,05067,1,0 +2020-04-21,Jackson,Arkansas,05067,1,0 +2020-04-22,Jackson,Arkansas,05067,1,0 +2020-04-23,Jackson,Arkansas,05067,1,0 +2020-04-24,Jackson,Arkansas,05067,1,0 +2020-04-25,Jackson,Arkansas,05067,1,0 +2020-04-26,Jackson,Arkansas,05067,1,0 +2020-04-27,Jackson,Arkansas,05067,1,0 +2020-04-28,Jackson,Arkansas,05067,1,0 +2020-04-29,Jackson,Arkansas,05067,1,0 +2020-04-30,Jackson,Arkansas,05067,1,0 +2020-05-01,Jackson,Arkansas,05067,1,0 +2020-05-02,Jackson,Arkansas,05067,1,0 +2020-05-03,Jackson,Arkansas,05067,1,0 +2020-05-04,Jackson,Arkansas,05067,1,0 +2020-05-05,Jackson,Arkansas,05067,1,0 +2020-05-06,Jackson,Arkansas,05067,1,0 +2020-05-07,Jackson,Arkansas,05067,1,0 +2020-05-08,Jackson,Arkansas,05067,1,0 +2020-05-09,Jackson,Arkansas,05067,1,0 +2020-05-10,Jackson,Arkansas,05067,1,0 +2020-05-11,Jackson,Arkansas,05067,1,0 +2020-05-12,Jackson,Arkansas,05067,1,0 +2020-05-13,Jackson,Arkansas,05067,1,0 +2020-05-14,Jackson,Arkansas,05067,1,0 +2020-05-15,Jackson,Arkansas,05067,1,0 +2020-05-16,Jackson,Arkansas,05067,1,0 +2020-05-17,Jackson,Arkansas,05067,1,0 +2020-05-18,Jackson,Arkansas,05067,1,0 +2020-05-19,Jackson,Arkansas,05067,1,0 +2020-05-20,Jackson,Arkansas,05067,1,0 +2020-05-21,Jackson,Arkansas,05067,1,0 +2020-05-22,Jackson,Arkansas,05067,1,0 +2020-05-23,Jackson,Arkansas,05067,1,0 +2020-05-24,Jackson,Arkansas,05067,1,0 +2020-05-25,Jackson,Arkansas,05067,1,0 +2020-05-26,Jackson,Arkansas,05067,1,0 +2020-05-27,Jackson,Arkansas,05067,1,0 +2020-05-28,Jackson,Arkansas,05067,1,0 +2020-05-29,Jackson,Arkansas,05067,1,0 +2020-05-30,Jackson,Arkansas,05067,1,0 +2020-05-31,Jackson,Arkansas,05067,3,0 +2020-06-01,Jackson,Arkansas,05067,3,0 +2020-06-02,Jackson,Arkansas,05067,4,0 +2020-06-03,Jackson,Arkansas,05067,4,0 +2020-06-04,Jackson,Arkansas,05067,5,0 +2020-06-05,Jackson,Arkansas,05067,5,0 +2020-06-06,Jackson,Arkansas,05067,6,0 +2020-06-07,Jackson,Arkansas,05067,6,0 +2020-06-08,Jackson,Arkansas,05067,7,0 +2020-06-09,Jackson,Arkansas,05067,7,0 +2020-06-10,Jackson,Arkansas,05067,14,0 +2020-06-11,Jackson,Arkansas,05067,14,0 +2020-06-12,Jackson,Arkansas,05067,15,0 +2020-06-13,Jackson,Arkansas,05067,16,0 +2020-06-14,Jackson,Arkansas,05067,15,0 +2020-06-15,Jackson,Arkansas,05067,16,0 +2020-06-16,Jackson,Arkansas,05067,16,0 +2020-06-17,Jackson,Arkansas,05067,20,0 +2020-06-18,Jackson,Arkansas,05067,20,0 +2020-06-19,Jackson,Arkansas,05067,20,0 +2020-06-20,Jackson,Arkansas,05067,21,0 +2020-06-21,Jackson,Arkansas,05067,21,0 +2020-06-22,Jackson,Arkansas,05067,24,0 +2020-06-23,Jackson,Arkansas,05067,24,0 +2020-06-24,Jackson,Arkansas,05067,25,0 +2020-06-25,Jackson,Arkansas,05067,26,0 +2020-06-26,Jackson,Arkansas,05067,26,0 +2020-06-27,Jackson,Arkansas,05067,26,0 +2020-06-28,Jackson,Arkansas,05067,27,0 +2020-06-29,Jackson,Arkansas,05067,27,0 +2020-06-30,Jackson,Arkansas,05067,27,0 +2020-07-01,Jackson,Arkansas,05067,27,0 +2020-07-02,Jackson,Arkansas,05067,28,0 +2020-07-03,Jackson,Arkansas,05067,31,0 +2020-07-04,Jackson,Arkansas,05067,32,0 +2020-07-05,Jackson,Arkansas,05067,32,0 +2020-07-06,Jackson,Arkansas,05067,33,0 +2020-07-07,Jackson,Arkansas,05067,35,0 +2020-07-08,Jackson,Arkansas,05067,37,0 +2020-07-09,Jackson,Arkansas,05067,39,0 +2020-03-11,Jefferson,Arkansas,05069,1,0 +2020-03-12,Jefferson,Arkansas,05069,1,0 +2020-03-13,Jefferson,Arkansas,05069,1,0 +2020-03-14,Jefferson,Arkansas,05069,2,0 +2020-03-15,Jefferson,Arkansas,05069,5,0 +2020-03-16,Jefferson,Arkansas,05069,5,0 +2020-03-17,Jefferson,Arkansas,05069,5,0 +2020-03-18,Jefferson,Arkansas,05069,10,0 +2020-03-19,Jefferson,Arkansas,05069,18,0 +2020-03-20,Jefferson,Arkansas,05069,19,0 +2020-03-21,Jefferson,Arkansas,05069,19,0 +2020-03-22,Jefferson,Arkansas,05069,20,0 +2020-03-23,Jefferson,Arkansas,05069,20,0 +2020-03-24,Jefferson,Arkansas,05069,22,0 +2020-03-25,Jefferson,Arkansas,05069,22,0 +2020-03-26,Jefferson,Arkansas,05069,23,0 +2020-03-27,Jefferson,Arkansas,05069,23,0 +2020-03-28,Jefferson,Arkansas,05069,25,0 +2020-03-29,Jefferson,Arkansas,05069,26,0 +2020-03-30,Jefferson,Arkansas,05069,33,0 +2020-03-31,Jefferson,Arkansas,05069,40,0 +2020-04-01,Jefferson,Arkansas,05069,49,0 +2020-04-02,Jefferson,Arkansas,05069,49,0 +2020-04-03,Jefferson,Arkansas,05069,53,0 +2020-04-04,Jefferson,Arkansas,05069,53,0 +2020-04-05,Jefferson,Arkansas,05069,62,0 +2020-04-06,Jefferson,Arkansas,05069,68,1 +2020-04-07,Jefferson,Arkansas,05069,78,1 +2020-04-08,Jefferson,Arkansas,05069,85,1 +2020-04-09,Jefferson,Arkansas,05069,91,1 +2020-04-10,Jefferson,Arkansas,05069,90,2 +2020-04-11,Jefferson,Arkansas,05069,91,2 +2020-04-12,Jefferson,Arkansas,05069,95,3 +2020-04-13,Jefferson,Arkansas,05069,103,4 +2020-04-14,Jefferson,Arkansas,05069,105,5 +2020-04-15,Jefferson,Arkansas,05069,107,6 +2020-04-16,Jefferson,Arkansas,05069,109,6 +2020-04-17,Jefferson,Arkansas,05069,113,6 +2020-04-18,Jefferson,Arkansas,05069,118,6 +2020-04-19,Jefferson,Arkansas,05069,118,6 +2020-04-20,Jefferson,Arkansas,05069,126,7 +2020-04-21,Jefferson,Arkansas,05069,135,7 +2020-04-22,Jefferson,Arkansas,05069,136,7 +2020-04-23,Jefferson,Arkansas,05069,142,7 +2020-04-24,Jefferson,Arkansas,05069,145,7 +2020-04-25,Jefferson,Arkansas,05069,149,7 +2020-04-26,Jefferson,Arkansas,05069,153,9 +2020-04-27,Jefferson,Arkansas,05069,160,9 +2020-04-28,Jefferson,Arkansas,05069,162,13 +2020-04-29,Jefferson,Arkansas,05069,168,14 +2020-04-30,Jefferson,Arkansas,05069,169,14 +2020-05-01,Jefferson,Arkansas,05069,176,15 +2020-05-02,Jefferson,Arkansas,05069,178,16 +2020-05-03,Jefferson,Arkansas,05069,184,17 +2020-05-04,Jefferson,Arkansas,05069,195,18 +2020-05-05,Jefferson,Arkansas,05069,199,19 +2020-05-06,Jefferson,Arkansas,05069,217,19 +2020-05-07,Jefferson,Arkansas,05069,222,19 +2020-05-08,Jefferson,Arkansas,05069,226,19 +2020-05-09,Jefferson,Arkansas,05069,226,19 +2020-05-10,Jefferson,Arkansas,05069,234,19 +2020-05-11,Jefferson,Arkansas,05069,238,19 +2020-05-12,Jefferson,Arkansas,05069,273,19 +2020-05-13,Jefferson,Arkansas,05069,280,19 +2020-05-14,Jefferson,Arkansas,05069,300,19 +2020-05-15,Jefferson,Arkansas,05069,310,19 +2020-05-16,Jefferson,Arkansas,05069,362,19 +2020-05-17,Jefferson,Arkansas,05069,491,19 +2020-05-18,Jefferson,Arkansas,05069,491,19 +2020-05-19,Jefferson,Arkansas,05069,497,20 +2020-05-20,Jefferson,Arkansas,05069,499,21 +2020-05-21,Jefferson,Arkansas,05069,500,22 +2020-05-22,Jefferson,Arkansas,05069,501,23 +2020-05-23,Jefferson,Arkansas,05069,504,23 +2020-05-24,Jefferson,Arkansas,05069,504,23 +2020-05-25,Jefferson,Arkansas,05069,504,23 +2020-05-26,Jefferson,Arkansas,05069,510,23 +2020-05-27,Jefferson,Arkansas,05069,510,23 +2020-05-28,Jefferson,Arkansas,05069,515,24 +2020-05-29,Jefferson,Arkansas,05069,516,25 +2020-05-30,Jefferson,Arkansas,05069,517,25 +2020-05-31,Jefferson,Arkansas,05069,521,25 +2020-06-01,Jefferson,Arkansas,05069,523,25 +2020-06-02,Jefferson,Arkansas,05069,529,25 +2020-06-03,Jefferson,Arkansas,05069,532,25 +2020-06-04,Jefferson,Arkansas,05069,536,25 +2020-06-05,Jefferson,Arkansas,05069,545,25 +2020-06-06,Jefferson,Arkansas,05069,547,26 +2020-06-07,Jefferson,Arkansas,05069,548,26 +2020-06-08,Jefferson,Arkansas,05069,554,26 +2020-06-09,Jefferson,Arkansas,05069,559,28 +2020-06-10,Jefferson,Arkansas,05069,573,28 +2020-06-11,Jefferson,Arkansas,05069,578,28 +2020-06-12,Jefferson,Arkansas,05069,625,28 +2020-06-13,Jefferson,Arkansas,05069,628,28 +2020-06-14,Jefferson,Arkansas,05069,630,28 +2020-06-15,Jefferson,Arkansas,05069,633,28 +2020-06-16,Jefferson,Arkansas,05069,633,28 +2020-06-17,Jefferson,Arkansas,05069,634,28 +2020-06-18,Jefferson,Arkansas,05069,637,28 +2020-06-19,Jefferson,Arkansas,05069,640,28 +2020-06-20,Jefferson,Arkansas,05069,644,28 +2020-06-21,Jefferson,Arkansas,05069,650,28 +2020-06-22,Jefferson,Arkansas,05069,657,28 +2020-06-23,Jefferson,Arkansas,05069,657,28 +2020-06-24,Jefferson,Arkansas,05069,661,28 +2020-06-25,Jefferson,Arkansas,05069,663,28 +2020-06-26,Jefferson,Arkansas,05069,676,28 +2020-06-27,Jefferson,Arkansas,05069,680,28 +2020-06-28,Jefferson,Arkansas,05069,683,28 +2020-06-29,Jefferson,Arkansas,05069,693,28 +2020-06-30,Jefferson,Arkansas,05069,700,28 +2020-07-01,Jefferson,Arkansas,05069,706,28 +2020-07-02,Jefferson,Arkansas,05069,720,28 +2020-07-03,Jefferson,Arkansas,05069,726,28 +2020-07-04,Jefferson,Arkansas,05069,737,28 +2020-07-05,Jefferson,Arkansas,05069,752,28 +2020-07-06,Jefferson,Arkansas,05069,761,28 +2020-07-07,Jefferson,Arkansas,05069,774,28 +2020-07-08,Jefferson,Arkansas,05069,784,28 +2020-07-09,Jefferson,Arkansas,05069,808,28 +2020-03-28,Johnson,Arkansas,05071,1,0 +2020-03-29,Johnson,Arkansas,05071,1,0 +2020-03-30,Johnson,Arkansas,05071,3,0 +2020-03-31,Johnson,Arkansas,05071,3,0 +2020-04-01,Johnson,Arkansas,05071,6,0 +2020-04-02,Johnson,Arkansas,05071,7,0 +2020-04-03,Johnson,Arkansas,05071,7,0 +2020-04-04,Johnson,Arkansas,05071,7,0 +2020-04-05,Johnson,Arkansas,05071,8,0 +2020-04-06,Johnson,Arkansas,05071,11,0 +2020-04-07,Johnson,Arkansas,05071,11,0 +2020-04-08,Johnson,Arkansas,05071,11,0 +2020-04-09,Johnson,Arkansas,05071,11,0 +2020-04-10,Johnson,Arkansas,05071,13,0 +2020-04-11,Johnson,Arkansas,05071,13,0 +2020-04-12,Johnson,Arkansas,05071,13,0 +2020-04-13,Johnson,Arkansas,05071,19,0 +2020-04-14,Johnson,Arkansas,05071,19,0 +2020-04-15,Johnson,Arkansas,05071,18,0 +2020-04-16,Johnson,Arkansas,05071,18,0 +2020-04-17,Johnson,Arkansas,05071,20,0 +2020-04-18,Johnson,Arkansas,05071,21,0 +2020-04-19,Johnson,Arkansas,05071,22,0 +2020-04-20,Johnson,Arkansas,05071,22,0 +2020-04-21,Johnson,Arkansas,05071,22,0 +2020-04-22,Johnson,Arkansas,05071,25,0 +2020-04-23,Johnson,Arkansas,05071,26,0 +2020-04-24,Johnson,Arkansas,05071,26,0 +2020-04-25,Johnson,Arkansas,05071,26,0 +2020-04-26,Johnson,Arkansas,05071,29,0 +2020-04-27,Johnson,Arkansas,05071,30,0 +2020-04-28,Johnson,Arkansas,05071,29,0 +2020-04-29,Johnson,Arkansas,05071,29,0 +2020-04-30,Johnson,Arkansas,05071,31,0 +2020-05-01,Johnson,Arkansas,05071,31,0 +2020-05-02,Johnson,Arkansas,05071,31,0 +2020-05-03,Johnson,Arkansas,05071,31,0 +2020-05-04,Johnson,Arkansas,05071,31,0 +2020-05-05,Johnson,Arkansas,05071,31,0 +2020-05-06,Johnson,Arkansas,05071,31,0 +2020-05-07,Johnson,Arkansas,05071,33,0 +2020-05-08,Johnson,Arkansas,05071,34,0 +2020-05-09,Johnson,Arkansas,05071,34,0 +2020-05-10,Johnson,Arkansas,05071,34,0 +2020-05-11,Johnson,Arkansas,05071,34,0 +2020-05-12,Johnson,Arkansas,05071,35,0 +2020-05-13,Johnson,Arkansas,05071,35,0 +2020-05-14,Johnson,Arkansas,05071,35,0 +2020-05-15,Johnson,Arkansas,05071,35,0 +2020-05-16,Johnson,Arkansas,05071,35,0 +2020-05-17,Johnson,Arkansas,05071,35,0 +2020-05-18,Johnson,Arkansas,05071,35,0 +2020-05-19,Johnson,Arkansas,05071,35,0 +2020-05-20,Johnson,Arkansas,05071,35,0 +2020-05-21,Johnson,Arkansas,05071,36,0 +2020-05-22,Johnson,Arkansas,05071,36,0 +2020-05-23,Johnson,Arkansas,05071,38,0 +2020-05-24,Johnson,Arkansas,05071,38,0 +2020-05-25,Johnson,Arkansas,05071,38,0 +2020-05-26,Johnson,Arkansas,05071,38,0 +2020-05-27,Johnson,Arkansas,05071,38,0 +2020-05-28,Johnson,Arkansas,05071,40,0 +2020-05-29,Johnson,Arkansas,05071,42,0 +2020-05-30,Johnson,Arkansas,05071,43,0 +2020-05-31,Johnson,Arkansas,05071,43,0 +2020-06-01,Johnson,Arkansas,05071,48,0 +2020-06-02,Johnson,Arkansas,05071,49,0 +2020-06-03,Johnson,Arkansas,05071,48,0 +2020-06-04,Johnson,Arkansas,05071,54,0 +2020-06-05,Johnson,Arkansas,05071,55,0 +2020-06-06,Johnson,Arkansas,05071,57,0 +2020-06-07,Johnson,Arkansas,05071,66,0 +2020-06-08,Johnson,Arkansas,05071,66,0 +2020-06-09,Johnson,Arkansas,05071,69,0 +2020-06-10,Johnson,Arkansas,05071,71,0 +2020-06-11,Johnson,Arkansas,05071,75,0 +2020-06-12,Johnson,Arkansas,05071,78,0 +2020-06-13,Johnson,Arkansas,05071,84,0 +2020-06-14,Johnson,Arkansas,05071,88,0 +2020-06-15,Johnson,Arkansas,05071,92,0 +2020-06-16,Johnson,Arkansas,05071,93,0 +2020-06-17,Johnson,Arkansas,05071,99,0 +2020-06-18,Johnson,Arkansas,05071,107,0 +2020-06-19,Johnson,Arkansas,05071,121,0 +2020-06-20,Johnson,Arkansas,05071,135,0 +2020-06-21,Johnson,Arkansas,05071,146,0 +2020-06-22,Johnson,Arkansas,05071,158,0 +2020-06-23,Johnson,Arkansas,05071,166,0 +2020-06-24,Johnson,Arkansas,05071,166,0 +2020-06-25,Johnson,Arkansas,05071,175,0 +2020-06-26,Johnson,Arkansas,05071,188,0 +2020-06-27,Johnson,Arkansas,05071,207,0 +2020-06-28,Johnson,Arkansas,05071,210,0 +2020-06-29,Johnson,Arkansas,05071,211,0 +2020-06-30,Johnson,Arkansas,05071,227,0 +2020-07-01,Johnson,Arkansas,05071,236,0 +2020-07-02,Johnson,Arkansas,05071,251,0 +2020-07-03,Johnson,Arkansas,05071,253,0 +2020-07-04,Johnson,Arkansas,05071,269,0 +2020-07-05,Johnson,Arkansas,05071,271,0 +2020-07-06,Johnson,Arkansas,05071,271,0 +2020-07-07,Johnson,Arkansas,05071,281,0 +2020-07-08,Johnson,Arkansas,05071,307,0 +2020-07-09,Johnson,Arkansas,05071,339,0 +2020-04-03,Lafayette,Arkansas,05073,1,0 +2020-04-04,Lafayette,Arkansas,05073,1,0 +2020-04-05,Lafayette,Arkansas,05073,2,0 +2020-04-06,Lafayette,Arkansas,05073,2,0 +2020-04-07,Lafayette,Arkansas,05073,2,0 +2020-04-08,Lafayette,Arkansas,05073,2,0 +2020-04-09,Lafayette,Arkansas,05073,2,0 +2020-04-10,Lafayette,Arkansas,05073,2,0 +2020-04-11,Lafayette,Arkansas,05073,2,0 +2020-04-12,Lafayette,Arkansas,05073,2,0 +2020-04-13,Lafayette,Arkansas,05073,3,0 +2020-04-14,Lafayette,Arkansas,05073,3,0 +2020-04-15,Lafayette,Arkansas,05073,5,0 +2020-04-16,Lafayette,Arkansas,05073,5,0 +2020-04-17,Lafayette,Arkansas,05073,5,0 +2020-04-18,Lafayette,Arkansas,05073,4,0 +2020-04-19,Lafayette,Arkansas,05073,4,0 +2020-04-20,Lafayette,Arkansas,05073,4,0 +2020-04-21,Lafayette,Arkansas,05073,4,0 +2020-04-22,Lafayette,Arkansas,05073,4,0 +2020-04-23,Lafayette,Arkansas,05073,6,0 +2020-04-24,Lafayette,Arkansas,05073,6,0 +2020-04-25,Lafayette,Arkansas,05073,6,0 +2020-04-26,Lafayette,Arkansas,05073,6,1 +2020-04-27,Lafayette,Arkansas,05073,7,1 +2020-04-28,Lafayette,Arkansas,05073,7,1 +2020-04-29,Lafayette,Arkansas,05073,7,1 +2020-04-30,Lafayette,Arkansas,05073,7,1 +2020-05-01,Lafayette,Arkansas,05073,8,1 +2020-05-02,Lafayette,Arkansas,05073,8,1 +2020-05-03,Lafayette,Arkansas,05073,8,1 +2020-05-04,Lafayette,Arkansas,05073,8,1 +2020-05-05,Lafayette,Arkansas,05073,8,1 +2020-05-06,Lafayette,Arkansas,05073,9,1 +2020-05-07,Lafayette,Arkansas,05073,9,1 +2020-05-08,Lafayette,Arkansas,05073,9,1 +2020-05-09,Lafayette,Arkansas,05073,9,1 +2020-05-10,Lafayette,Arkansas,05073,9,1 +2020-05-11,Lafayette,Arkansas,05073,9,1 +2020-05-12,Lafayette,Arkansas,05073,9,1 +2020-05-13,Lafayette,Arkansas,05073,9,1 +2020-05-14,Lafayette,Arkansas,05073,9,1 +2020-05-15,Lafayette,Arkansas,05073,9,1 +2020-05-16,Lafayette,Arkansas,05073,9,1 +2020-05-17,Lafayette,Arkansas,05073,9,1 +2020-05-18,Lafayette,Arkansas,05073,9,1 +2020-05-19,Lafayette,Arkansas,05073,9,1 +2020-05-20,Lafayette,Arkansas,05073,9,1 +2020-05-21,Lafayette,Arkansas,05073,9,1 +2020-05-22,Lafayette,Arkansas,05073,9,1 +2020-05-23,Lafayette,Arkansas,05073,9,1 +2020-05-24,Lafayette,Arkansas,05073,9,1 +2020-05-25,Lafayette,Arkansas,05073,9,1 +2020-05-26,Lafayette,Arkansas,05073,9,1 +2020-05-27,Lafayette,Arkansas,05073,9,1 +2020-05-28,Lafayette,Arkansas,05073,9,1 +2020-05-29,Lafayette,Arkansas,05073,9,1 +2020-05-30,Lafayette,Arkansas,05073,9,1 +2020-05-31,Lafayette,Arkansas,05073,9,1 +2020-06-01,Lafayette,Arkansas,05073,9,1 +2020-06-02,Lafayette,Arkansas,05073,9,1 +2020-06-03,Lafayette,Arkansas,05073,9,1 +2020-06-04,Lafayette,Arkansas,05073,9,1 +2020-06-05,Lafayette,Arkansas,05073,9,1 +2020-06-06,Lafayette,Arkansas,05073,9,1 +2020-06-07,Lafayette,Arkansas,05073,10,1 +2020-06-08,Lafayette,Arkansas,05073,10,1 +2020-06-09,Lafayette,Arkansas,05073,10,1 +2020-06-10,Lafayette,Arkansas,05073,10,1 +2020-06-11,Lafayette,Arkansas,05073,10,1 +2020-06-12,Lafayette,Arkansas,05073,10,1 +2020-06-13,Lafayette,Arkansas,05073,11,1 +2020-06-14,Lafayette,Arkansas,05073,11,1 +2020-06-15,Lafayette,Arkansas,05073,11,1 +2020-06-16,Lafayette,Arkansas,05073,11,1 +2020-06-17,Lafayette,Arkansas,05073,12,1 +2020-06-18,Lafayette,Arkansas,05073,12,1 +2020-06-19,Lafayette,Arkansas,05073,13,1 +2020-06-20,Lafayette,Arkansas,05073,13,1 +2020-06-21,Lafayette,Arkansas,05073,13,1 +2020-06-22,Lafayette,Arkansas,05073,13,1 +2020-06-23,Lafayette,Arkansas,05073,13,1 +2020-06-24,Lafayette,Arkansas,05073,14,1 +2020-06-25,Lafayette,Arkansas,05073,14,1 +2020-06-26,Lafayette,Arkansas,05073,15,1 +2020-06-27,Lafayette,Arkansas,05073,15,1 +2020-06-28,Lafayette,Arkansas,05073,16,1 +2020-06-29,Lafayette,Arkansas,05073,16,1 +2020-06-30,Lafayette,Arkansas,05073,18,1 +2020-07-01,Lafayette,Arkansas,05073,19,1 +2020-07-02,Lafayette,Arkansas,05073,19,1 +2020-07-03,Lafayette,Arkansas,05073,21,1 +2020-07-04,Lafayette,Arkansas,05073,21,1 +2020-07-05,Lafayette,Arkansas,05073,21,1 +2020-07-06,Lafayette,Arkansas,05073,22,1 +2020-07-07,Lafayette,Arkansas,05073,22,2 +2020-07-08,Lafayette,Arkansas,05073,23,2 +2020-07-09,Lafayette,Arkansas,05073,24,2 +2020-03-24,Lawrence,Arkansas,05075,1,0 +2020-03-25,Lawrence,Arkansas,05075,1,0 +2020-03-26,Lawrence,Arkansas,05075,2,0 +2020-03-27,Lawrence,Arkansas,05075,3,0 +2020-03-28,Lawrence,Arkansas,05075,1,0 +2020-03-29,Lawrence,Arkansas,05075,1,0 +2020-03-30,Lawrence,Arkansas,05075,1,0 +2020-03-31,Lawrence,Arkansas,05075,1,0 +2020-04-01,Lawrence,Arkansas,05075,2,0 +2020-04-02,Lawrence,Arkansas,05075,3,0 +2020-04-03,Lawrence,Arkansas,05075,3,0 +2020-04-04,Lawrence,Arkansas,05075,3,1 +2020-04-05,Lawrence,Arkansas,05075,3,1 +2020-04-06,Lawrence,Arkansas,05075,3,1 +2020-04-07,Lawrence,Arkansas,05075,4,1 +2020-04-08,Lawrence,Arkansas,05075,8,1 +2020-04-09,Lawrence,Arkansas,05075,9,1 +2020-04-10,Lawrence,Arkansas,05075,10,1 +2020-04-11,Lawrence,Arkansas,05075,10,1 +2020-04-12,Lawrence,Arkansas,05075,11,1 +2020-04-13,Lawrence,Arkansas,05075,11,1 +2020-04-14,Lawrence,Arkansas,05075,11,1 +2020-04-15,Lawrence,Arkansas,05075,11,1 +2020-04-16,Lawrence,Arkansas,05075,12,1 +2020-04-17,Lawrence,Arkansas,05075,24,1 +2020-04-18,Lawrence,Arkansas,05075,26,1 +2020-04-19,Lawrence,Arkansas,05075,26,1 +2020-04-20,Lawrence,Arkansas,05075,26,1 +2020-04-21,Lawrence,Arkansas,05075,28,1 +2020-04-22,Lawrence,Arkansas,05075,29,1 +2020-04-23,Lawrence,Arkansas,05075,37,1 +2020-04-24,Lawrence,Arkansas,05075,38,1 +2020-04-25,Lawrence,Arkansas,05075,41,1 +2020-04-26,Lawrence,Arkansas,05075,42,1 +2020-04-27,Lawrence,Arkansas,05075,43,1 +2020-04-28,Lawrence,Arkansas,05075,45,1 +2020-04-29,Lawrence,Arkansas,05075,46,1 +2020-04-30,Lawrence,Arkansas,05075,59,2 +2020-05-01,Lawrence,Arkansas,05075,59,2 +2020-05-02,Lawrence,Arkansas,05075,60,4 +2020-05-03,Lawrence,Arkansas,05075,66,4 +2020-05-04,Lawrence,Arkansas,05075,67,4 +2020-05-05,Lawrence,Arkansas,05075,67,4 +2020-05-06,Lawrence,Arkansas,05075,69,4 +2020-05-07,Lawrence,Arkansas,05075,69,4 +2020-05-08,Lawrence,Arkansas,05075,69,4 +2020-05-09,Lawrence,Arkansas,05075,69,4 +2020-05-10,Lawrence,Arkansas,05075,70,4 +2020-05-11,Lawrence,Arkansas,05075,69,4 +2020-05-12,Lawrence,Arkansas,05075,71,4 +2020-05-13,Lawrence,Arkansas,05075,71,4 +2020-05-14,Lawrence,Arkansas,05075,72,4 +2020-05-15,Lawrence,Arkansas,05075,72,4 +2020-05-16,Lawrence,Arkansas,05075,73,4 +2020-05-17,Lawrence,Arkansas,05075,73,4 +2020-05-18,Lawrence,Arkansas,05075,73,4 +2020-05-19,Lawrence,Arkansas,05075,77,4 +2020-05-20,Lawrence,Arkansas,05075,77,4 +2020-05-21,Lawrence,Arkansas,05075,79,5 +2020-05-22,Lawrence,Arkansas,05075,81,5 +2020-05-23,Lawrence,Arkansas,05075,82,5 +2020-05-24,Lawrence,Arkansas,05075,82,5 +2020-05-25,Lawrence,Arkansas,05075,82,5 +2020-05-26,Lawrence,Arkansas,05075,82,5 +2020-05-27,Lawrence,Arkansas,05075,82,5 +2020-05-28,Lawrence,Arkansas,05075,82,5 +2020-05-29,Lawrence,Arkansas,05075,82,5 +2020-05-30,Lawrence,Arkansas,05075,84,5 +2020-05-31,Lawrence,Arkansas,05075,84,5 +2020-06-01,Lawrence,Arkansas,05075,84,5 +2020-06-02,Lawrence,Arkansas,05075,85,5 +2020-06-03,Lawrence,Arkansas,05075,85,6 +2020-06-04,Lawrence,Arkansas,05075,87,9 +2020-06-05,Lawrence,Arkansas,05075,87,9 +2020-06-06,Lawrence,Arkansas,05075,89,9 +2020-06-07,Lawrence,Arkansas,05075,89,9 +2020-06-08,Lawrence,Arkansas,05075,89,9 +2020-06-09,Lawrence,Arkansas,05075,89,9 +2020-06-10,Lawrence,Arkansas,05075,89,9 +2020-06-11,Lawrence,Arkansas,05075,89,9 +2020-06-12,Lawrence,Arkansas,05075,90,9 +2020-06-13,Lawrence,Arkansas,05075,90,9 +2020-06-14,Lawrence,Arkansas,05075,91,9 +2020-06-15,Lawrence,Arkansas,05075,91,9 +2020-06-16,Lawrence,Arkansas,05075,91,9 +2020-06-17,Lawrence,Arkansas,05075,92,9 +2020-06-18,Lawrence,Arkansas,05075,92,9 +2020-06-19,Lawrence,Arkansas,05075,93,9 +2020-06-20,Lawrence,Arkansas,05075,93,9 +2020-06-21,Lawrence,Arkansas,05075,93,9 +2020-06-22,Lawrence,Arkansas,05075,94,9 +2020-06-23,Lawrence,Arkansas,05075,96,9 +2020-06-24,Lawrence,Arkansas,05075,98,9 +2020-06-25,Lawrence,Arkansas,05075,98,9 +2020-06-26,Lawrence,Arkansas,05075,99,9 +2020-06-27,Lawrence,Arkansas,05075,99,9 +2020-06-28,Lawrence,Arkansas,05075,99,9 +2020-06-29,Lawrence,Arkansas,05075,99,9 +2020-06-30,Lawrence,Arkansas,05075,99,9 +2020-07-01,Lawrence,Arkansas,05075,100,9 +2020-07-02,Lawrence,Arkansas,05075,102,9 +2020-07-03,Lawrence,Arkansas,05075,102,9 +2020-07-04,Lawrence,Arkansas,05075,102,9 +2020-07-05,Lawrence,Arkansas,05075,103,9 +2020-07-06,Lawrence,Arkansas,05075,103,9 +2020-07-07,Lawrence,Arkansas,05075,103,9 +2020-07-08,Lawrence,Arkansas,05075,107,9 +2020-07-09,Lawrence,Arkansas,05075,111,9 +2020-04-01,Lee,Arkansas,05077,1,0 +2020-04-02,Lee,Arkansas,05077,1,0 +2020-04-03,Lee,Arkansas,05077,1,0 +2020-04-04,Lee,Arkansas,05077,1,0 +2020-04-05,Lee,Arkansas,05077,2,0 +2020-04-06,Lee,Arkansas,05077,2,0 +2020-04-07,Lee,Arkansas,05077,2,0 +2020-04-08,Lee,Arkansas,05077,2,0 +2020-04-09,Lee,Arkansas,05077,2,0 +2020-04-10,Lee,Arkansas,05077,2,0 +2020-04-11,Lee,Arkansas,05077,2,0 +2020-04-12,Lee,Arkansas,05077,2,0 +2020-04-13,Lee,Arkansas,05077,2,0 +2020-04-14,Lee,Arkansas,05077,2,1 +2020-04-15,Lee,Arkansas,05077,3,1 +2020-04-16,Lee,Arkansas,05077,3,1 +2020-04-17,Lee,Arkansas,05077,3,1 +2020-04-18,Lee,Arkansas,05077,3,1 +2020-04-19,Lee,Arkansas,05077,3,1 +2020-04-20,Lee,Arkansas,05077,3,1 +2020-04-21,Lee,Arkansas,05077,3,1 +2020-04-22,Lee,Arkansas,05077,3,1 +2020-04-23,Lee,Arkansas,05077,3,1 +2020-04-24,Lee,Arkansas,05077,3,1 +2020-04-25,Lee,Arkansas,05077,3,1 +2020-04-26,Lee,Arkansas,05077,3,1 +2020-04-27,Lee,Arkansas,05077,3,1 +2020-04-28,Lee,Arkansas,05077,3,1 +2020-04-29,Lee,Arkansas,05077,3,1 +2020-04-30,Lee,Arkansas,05077,3,1 +2020-05-01,Lee,Arkansas,05077,3,1 +2020-05-02,Lee,Arkansas,05077,3,1 +2020-05-03,Lee,Arkansas,05077,3,1 +2020-05-04,Lee,Arkansas,05077,3,1 +2020-05-05,Lee,Arkansas,05077,4,1 +2020-05-06,Lee,Arkansas,05077,4,1 +2020-05-07,Lee,Arkansas,05077,4,1 +2020-05-08,Lee,Arkansas,05077,4,1 +2020-05-09,Lee,Arkansas,05077,4,1 +2020-05-10,Lee,Arkansas,05077,5,1 +2020-05-11,Lee,Arkansas,05077,5,1 +2020-05-12,Lee,Arkansas,05077,9,1 +2020-05-13,Lee,Arkansas,05077,9,1 +2020-05-14,Lee,Arkansas,05077,10,1 +2020-05-15,Lee,Arkansas,05077,10,1 +2020-05-16,Lee,Arkansas,05077,10,1 +2020-05-17,Lee,Arkansas,05077,11,1 +2020-05-18,Lee,Arkansas,05077,12,1 +2020-05-19,Lee,Arkansas,05077,12,1 +2020-05-20,Lee,Arkansas,05077,12,1 +2020-05-21,Lee,Arkansas,05077,13,1 +2020-05-22,Lee,Arkansas,05077,13,1 +2020-05-23,Lee,Arkansas,05077,14,1 +2020-05-24,Lee,Arkansas,05077,15,1 +2020-05-25,Lee,Arkansas,05077,17,1 +2020-05-26,Lee,Arkansas,05077,17,1 +2020-05-27,Lee,Arkansas,05077,17,1 +2020-05-28,Lee,Arkansas,05077,18,1 +2020-05-29,Lee,Arkansas,05077,18,1 +2020-05-30,Lee,Arkansas,05077,19,1 +2020-05-31,Lee,Arkansas,05077,20,1 +2020-06-01,Lee,Arkansas,05077,21,1 +2020-06-02,Lee,Arkansas,05077,23,1 +2020-06-03,Lee,Arkansas,05077,24,1 +2020-06-04,Lee,Arkansas,05077,27,1 +2020-06-05,Lee,Arkansas,05077,30,1 +2020-06-06,Lee,Arkansas,05077,32,1 +2020-06-07,Lee,Arkansas,05077,36,1 +2020-06-08,Lee,Arkansas,05077,49,1 +2020-06-09,Lee,Arkansas,05077,97,1 +2020-06-10,Lee,Arkansas,05077,120,1 +2020-06-11,Lee,Arkansas,05077,120,1 +2020-06-12,Lee,Arkansas,05077,317,1 +2020-06-13,Lee,Arkansas,05077,481,1 +2020-06-14,Lee,Arkansas,05077,545,1 +2020-06-15,Lee,Arkansas,05077,543,1 +2020-06-16,Lee,Arkansas,05077,545,1 +2020-06-17,Lee,Arkansas,05077,569,1 +2020-06-18,Lee,Arkansas,05077,571,1 +2020-06-19,Lee,Arkansas,05077,570,1 +2020-06-20,Lee,Arkansas,05077,572,1 +2020-06-21,Lee,Arkansas,05077,574,1 +2020-06-22,Lee,Arkansas,05077,576,1 +2020-06-23,Lee,Arkansas,05077,621,1 +2020-06-24,Lee,Arkansas,05077,621,1 +2020-06-25,Lee,Arkansas,05077,626,1 +2020-06-26,Lee,Arkansas,05077,626,1 +2020-06-27,Lee,Arkansas,05077,626,1 +2020-06-28,Lee,Arkansas,05077,628,2 +2020-06-29,Lee,Arkansas,05077,641,2 +2020-06-30,Lee,Arkansas,05077,651,2 +2020-07-01,Lee,Arkansas,05077,746,2 +2020-07-02,Lee,Arkansas,05077,755,2 +2020-07-03,Lee,Arkansas,05077,761,2 +2020-07-04,Lee,Arkansas,05077,798,2 +2020-07-05,Lee,Arkansas,05077,803,2 +2020-07-06,Lee,Arkansas,05077,803,3 +2020-07-07,Lee,Arkansas,05077,805,3 +2020-07-08,Lee,Arkansas,05077,815,3 +2020-07-09,Lee,Arkansas,05077,817,3 +2020-03-16,Lincoln,Arkansas,05079,1,0 +2020-03-17,Lincoln,Arkansas,05079,1,0 +2020-03-18,Lincoln,Arkansas,05079,1,0 +2020-03-19,Lincoln,Arkansas,05079,1,0 +2020-03-20,Lincoln,Arkansas,05079,1,0 +2020-03-21,Lincoln,Arkansas,05079,1,0 +2020-03-22,Lincoln,Arkansas,05079,1,0 +2020-03-23,Lincoln,Arkansas,05079,1,0 +2020-03-24,Lincoln,Arkansas,05079,3,0 +2020-03-25,Lincoln,Arkansas,05079,4,0 +2020-03-26,Lincoln,Arkansas,05079,5,0 +2020-03-27,Lincoln,Arkansas,05079,6,0 +2020-03-28,Lincoln,Arkansas,05079,6,0 +2020-03-29,Lincoln,Arkansas,05079,6,0 +2020-03-30,Lincoln,Arkansas,05079,6,0 +2020-03-31,Lincoln,Arkansas,05079,6,0 +2020-04-01,Lincoln,Arkansas,05079,6,0 +2020-04-02,Lincoln,Arkansas,05079,6,0 +2020-04-03,Lincoln,Arkansas,05079,6,0 +2020-04-04,Lincoln,Arkansas,05079,6,0 +2020-04-05,Lincoln,Arkansas,05079,7,0 +2020-04-06,Lincoln,Arkansas,05079,10,0 +2020-04-07,Lincoln,Arkansas,05079,11,0 +2020-04-08,Lincoln,Arkansas,05079,11,0 +2020-04-09,Lincoln,Arkansas,05079,10,0 +2020-04-10,Lincoln,Arkansas,05079,10,0 +2020-04-11,Lincoln,Arkansas,05079,10,0 +2020-04-12,Lincoln,Arkansas,05079,11,0 +2020-04-13,Lincoln,Arkansas,05079,56,0 +2020-04-14,Lincoln,Arkansas,05079,56,0 +2020-04-15,Lincoln,Arkansas,05079,61,0 +2020-04-16,Lincoln,Arkansas,05079,61,0 +2020-04-17,Lincoln,Arkansas,05079,94,0 +2020-04-18,Lincoln,Arkansas,05079,111,0 +2020-04-19,Lincoln,Arkansas,05079,111,0 +2020-04-20,Lincoln,Arkansas,05079,258,0 +2020-04-21,Lincoln,Arkansas,05079,443,0 +2020-04-22,Lincoln,Arkansas,05079,512,0 +2020-04-23,Lincoln,Arkansas,05079,630,0 +2020-04-24,Lincoln,Arkansas,05079,707,0 +2020-04-25,Lincoln,Arkansas,05079,721,0 +2020-04-26,Lincoln,Arkansas,05079,727,0 +2020-04-27,Lincoln,Arkansas,05079,754,0 +2020-04-28,Lincoln,Arkansas,05079,755,0 +2020-04-29,Lincoln,Arkansas,05079,814,0 +2020-04-30,Lincoln,Arkansas,05079,814,0 +2020-05-01,Lincoln,Arkansas,05079,815,0 +2020-05-02,Lincoln,Arkansas,05079,817,2 +2020-05-03,Lincoln,Arkansas,05079,822,4 +2020-05-04,Lincoln,Arkansas,05079,842,4 +2020-05-05,Lincoln,Arkansas,05079,853,5 +2020-05-06,Lincoln,Arkansas,05079,883,6 +2020-05-07,Lincoln,Arkansas,05079,899,6 +2020-05-08,Lincoln,Arkansas,05079,907,6 +2020-05-09,Lincoln,Arkansas,05079,907,6 +2020-05-10,Lincoln,Arkansas,05079,937,7 +2020-05-11,Lincoln,Arkansas,05079,941,7 +2020-05-12,Lincoln,Arkansas,05079,942,7 +2020-05-13,Lincoln,Arkansas,05079,942,7 +2020-05-14,Lincoln,Arkansas,05079,949,8 +2020-05-15,Lincoln,Arkansas,05079,952,8 +2020-05-16,Lincoln,Arkansas,05079,955,8 +2020-05-17,Lincoln,Arkansas,05079,955,8 +2020-05-18,Lincoln,Arkansas,05079,965,8 +2020-05-19,Lincoln,Arkansas,05079,965,8 +2020-05-20,Lincoln,Arkansas,05079,966,8 +2020-05-21,Lincoln,Arkansas,05079,966,8 +2020-05-22,Lincoln,Arkansas,05079,966,8 +2020-05-23,Lincoln,Arkansas,05079,970,8 +2020-05-24,Lincoln,Arkansas,05079,974,8 +2020-05-25,Lincoln,Arkansas,05079,975,8 +2020-05-26,Lincoln,Arkansas,05079,975,8 +2020-05-27,Lincoln,Arkansas,05079,975,8 +2020-05-28,Lincoln,Arkansas,05079,975,9 +2020-05-29,Lincoln,Arkansas,05079,975,9 +2020-05-30,Lincoln,Arkansas,05079,978,9 +2020-05-31,Lincoln,Arkansas,05079,982,9 +2020-06-01,Lincoln,Arkansas,05079,983,9 +2020-06-02,Lincoln,Arkansas,05079,983,9 +2020-06-03,Lincoln,Arkansas,05079,984,10 +2020-06-04,Lincoln,Arkansas,05079,985,10 +2020-06-05,Lincoln,Arkansas,05079,985,11 +2020-06-06,Lincoln,Arkansas,05079,985,11 +2020-06-07,Lincoln,Arkansas,05079,985,11 +2020-06-08,Lincoln,Arkansas,05079,985,11 +2020-06-09,Lincoln,Arkansas,05079,985,11 +2020-06-10,Lincoln,Arkansas,05079,985,11 +2020-06-11,Lincoln,Arkansas,05079,986,11 +2020-06-12,Lincoln,Arkansas,05079,986,11 +2020-06-13,Lincoln,Arkansas,05079,987,11 +2020-06-14,Lincoln,Arkansas,05079,995,11 +2020-06-15,Lincoln,Arkansas,05079,995,11 +2020-06-16,Lincoln,Arkansas,05079,995,11 +2020-06-17,Lincoln,Arkansas,05079,995,11 +2020-06-18,Lincoln,Arkansas,05079,995,11 +2020-06-19,Lincoln,Arkansas,05079,1023,11 +2020-06-20,Lincoln,Arkansas,05079,1036,11 +2020-06-21,Lincoln,Arkansas,05079,1036,11 +2020-06-22,Lincoln,Arkansas,05079,1036,11 +2020-06-23,Lincoln,Arkansas,05079,1036,11 +2020-06-24,Lincoln,Arkansas,05079,1036,11 +2020-06-25,Lincoln,Arkansas,05079,1036,11 +2020-06-26,Lincoln,Arkansas,05079,1036,11 +2020-06-27,Lincoln,Arkansas,05079,1036,11 +2020-06-28,Lincoln,Arkansas,05079,1037,11 +2020-06-29,Lincoln,Arkansas,05079,1038,11 +2020-06-30,Lincoln,Arkansas,05079,1038,11 +2020-07-01,Lincoln,Arkansas,05079,1040,11 +2020-07-02,Lincoln,Arkansas,05079,1041,11 +2020-07-03,Lincoln,Arkansas,05079,1041,11 +2020-07-04,Lincoln,Arkansas,05079,1041,11 +2020-07-05,Lincoln,Arkansas,05079,1043,11 +2020-07-06,Lincoln,Arkansas,05079,1043,11 +2020-07-07,Lincoln,Arkansas,05079,1044,11 +2020-07-08,Lincoln,Arkansas,05079,1044,11 +2020-07-09,Lincoln,Arkansas,05079,1046,11 +2020-05-16,Little River,Arkansas,05081,1,0 +2020-05-17,Little River,Arkansas,05081,1,0 +2020-05-18,Little River,Arkansas,05081,1,0 +2020-05-19,Little River,Arkansas,05081,1,0 +2020-05-20,Little River,Arkansas,05081,1,0 +2020-05-21,Little River,Arkansas,05081,1,0 +2020-05-22,Little River,Arkansas,05081,1,0 +2020-05-23,Little River,Arkansas,05081,1,0 +2020-05-24,Little River,Arkansas,05081,2,0 +2020-05-25,Little River,Arkansas,05081,4,0 +2020-05-26,Little River,Arkansas,05081,5,0 +2020-05-27,Little River,Arkansas,05081,5,0 +2020-05-28,Little River,Arkansas,05081,6,0 +2020-05-29,Little River,Arkansas,05081,6,0 +2020-05-30,Little River,Arkansas,05081,6,0 +2020-05-31,Little River,Arkansas,05081,6,0 +2020-06-01,Little River,Arkansas,05081,6,0 +2020-06-02,Little River,Arkansas,05081,8,0 +2020-06-03,Little River,Arkansas,05081,9,0 +2020-06-04,Little River,Arkansas,05081,10,0 +2020-06-05,Little River,Arkansas,05081,14,0 +2020-06-06,Little River,Arkansas,05081,17,0 +2020-06-07,Little River,Arkansas,05081,25,0 +2020-06-08,Little River,Arkansas,05081,26,0 +2020-06-09,Little River,Arkansas,05081,28,0 +2020-06-10,Little River,Arkansas,05081,31,0 +2020-06-11,Little River,Arkansas,05081,33,0 +2020-06-12,Little River,Arkansas,05081,33,0 +2020-06-13,Little River,Arkansas,05081,34,0 +2020-06-14,Little River,Arkansas,05081,34,0 +2020-06-15,Little River,Arkansas,05081,34,0 +2020-06-16,Little River,Arkansas,05081,34,0 +2020-06-17,Little River,Arkansas,05081,34,0 +2020-06-18,Little River,Arkansas,05081,34,0 +2020-06-19,Little River,Arkansas,05081,35,0 +2020-06-20,Little River,Arkansas,05081,35,0 +2020-06-21,Little River,Arkansas,05081,35,0 +2020-06-22,Little River,Arkansas,05081,35,0 +2020-06-23,Little River,Arkansas,05081,36,0 +2020-06-24,Little River,Arkansas,05081,37,0 +2020-06-25,Little River,Arkansas,05081,37,0 +2020-06-26,Little River,Arkansas,05081,38,0 +2020-06-27,Little River,Arkansas,05081,38,0 +2020-06-28,Little River,Arkansas,05081,38,0 +2020-06-29,Little River,Arkansas,05081,38,0 +2020-06-30,Little River,Arkansas,05081,38,0 +2020-07-01,Little River,Arkansas,05081,38,0 +2020-07-02,Little River,Arkansas,05081,40,0 +2020-07-03,Little River,Arkansas,05081,40,0 +2020-07-04,Little River,Arkansas,05081,40,0 +2020-07-05,Little River,Arkansas,05081,40,0 +2020-07-06,Little River,Arkansas,05081,40,0 +2020-07-07,Little River,Arkansas,05081,40,0 +2020-07-08,Little River,Arkansas,05081,40,0 +2020-07-09,Little River,Arkansas,05081,40,0 +2020-04-06,Logan,Arkansas,05083,1,0 +2020-04-07,Logan,Arkansas,05083,1,0 +2020-04-08,Logan,Arkansas,05083,1,0 +2020-04-09,Logan,Arkansas,05083,1,0 +2020-04-10,Logan,Arkansas,05083,2,0 +2020-04-11,Logan,Arkansas,05083,2,0 +2020-04-12,Logan,Arkansas,05083,2,0 +2020-04-13,Logan,Arkansas,05083,2,0 +2020-04-14,Logan,Arkansas,05083,2,0 +2020-04-15,Logan,Arkansas,05083,2,0 +2020-04-16,Logan,Arkansas,05083,2,0 +2020-04-17,Logan,Arkansas,05083,2,0 +2020-04-18,Logan,Arkansas,05083,3,0 +2020-04-19,Logan,Arkansas,05083,3,0 +2020-04-20,Logan,Arkansas,05083,3,0 +2020-04-21,Logan,Arkansas,05083,3,0 +2020-04-22,Logan,Arkansas,05083,3,0 +2020-04-23,Logan,Arkansas,05083,3,0 +2020-04-24,Logan,Arkansas,05083,3,0 +2020-04-25,Logan,Arkansas,05083,3,0 +2020-04-26,Logan,Arkansas,05083,3,0 +2020-04-27,Logan,Arkansas,05083,3,0 +2020-04-28,Logan,Arkansas,05083,3,0 +2020-04-29,Logan,Arkansas,05083,3,0 +2020-04-30,Logan,Arkansas,05083,3,0 +2020-05-01,Logan,Arkansas,05083,3,0 +2020-05-02,Logan,Arkansas,05083,3,0 +2020-05-03,Logan,Arkansas,05083,3,1 +2020-05-04,Logan,Arkansas,05083,2,0 +2020-05-05,Logan,Arkansas,05083,2,0 +2020-05-06,Logan,Arkansas,05083,3,0 +2020-05-07,Logan,Arkansas,05083,3,0 +2020-05-08,Logan,Arkansas,05083,3,0 +2020-05-09,Logan,Arkansas,05083,3,0 +2020-05-10,Logan,Arkansas,05083,3,0 +2020-05-11,Logan,Arkansas,05083,3,0 +2020-05-12,Logan,Arkansas,05083,3,0 +2020-05-13,Logan,Arkansas,05083,4,0 +2020-05-14,Logan,Arkansas,05083,4,0 +2020-05-15,Logan,Arkansas,05083,4,0 +2020-05-16,Logan,Arkansas,05083,4,0 +2020-05-17,Logan,Arkansas,05083,4,0 +2020-05-18,Logan,Arkansas,05083,4,0 +2020-05-19,Logan,Arkansas,05083,4,0 +2020-05-20,Logan,Arkansas,05083,4,0 +2020-05-21,Logan,Arkansas,05083,4,0 +2020-05-22,Logan,Arkansas,05083,4,0 +2020-05-23,Logan,Arkansas,05083,4,0 +2020-05-24,Logan,Arkansas,05083,4,0 +2020-05-25,Logan,Arkansas,05083,4,0 +2020-05-26,Logan,Arkansas,05083,4,0 +2020-05-27,Logan,Arkansas,05083,4,0 +2020-05-28,Logan,Arkansas,05083,4,0 +2020-05-29,Logan,Arkansas,05083,5,0 +2020-05-30,Logan,Arkansas,05083,6,0 +2020-05-31,Logan,Arkansas,05083,6,0 +2020-06-01,Logan,Arkansas,05083,7,0 +2020-06-02,Logan,Arkansas,05083,8,0 +2020-06-03,Logan,Arkansas,05083,10,0 +2020-06-04,Logan,Arkansas,05083,11,0 +2020-06-05,Logan,Arkansas,05083,12,0 +2020-06-06,Logan,Arkansas,05083,12,0 +2020-06-07,Logan,Arkansas,05083,12,0 +2020-06-08,Logan,Arkansas,05083,13,0 +2020-06-09,Logan,Arkansas,05083,14,0 +2020-06-10,Logan,Arkansas,05083,14,0 +2020-06-11,Logan,Arkansas,05083,15,0 +2020-06-12,Logan,Arkansas,05083,17,0 +2020-06-13,Logan,Arkansas,05083,18,0 +2020-06-14,Logan,Arkansas,05083,19,0 +2020-06-15,Logan,Arkansas,05083,20,0 +2020-06-16,Logan,Arkansas,05083,20,0 +2020-06-17,Logan,Arkansas,05083,20,0 +2020-06-18,Logan,Arkansas,05083,21,0 +2020-06-19,Logan,Arkansas,05083,21,0 +2020-06-20,Logan,Arkansas,05083,24,0 +2020-06-21,Logan,Arkansas,05083,28,0 +2020-06-22,Logan,Arkansas,05083,32,0 +2020-06-23,Logan,Arkansas,05083,34,0 +2020-06-24,Logan,Arkansas,05083,36,0 +2020-06-25,Logan,Arkansas,05083,36,0 +2020-06-26,Logan,Arkansas,05083,44,0 +2020-06-27,Logan,Arkansas,05083,46,0 +2020-06-28,Logan,Arkansas,05083,46,0 +2020-06-29,Logan,Arkansas,05083,45,0 +2020-06-30,Logan,Arkansas,05083,46,0 +2020-07-01,Logan,Arkansas,05083,46,0 +2020-07-02,Logan,Arkansas,05083,49,0 +2020-07-03,Logan,Arkansas,05083,53,0 +2020-07-04,Logan,Arkansas,05083,58,0 +2020-07-05,Logan,Arkansas,05083,61,0 +2020-07-06,Logan,Arkansas,05083,61,0 +2020-07-07,Logan,Arkansas,05083,62,0 +2020-07-08,Logan,Arkansas,05083,64,0 +2020-07-09,Logan,Arkansas,05083,65,0 +2020-03-26,Lonoke,Arkansas,05085,4,0 +2020-03-27,Lonoke,Arkansas,05085,4,0 +2020-03-28,Lonoke,Arkansas,05085,4,0 +2020-03-29,Lonoke,Arkansas,05085,4,0 +2020-03-30,Lonoke,Arkansas,05085,4,0 +2020-03-31,Lonoke,Arkansas,05085,6,0 +2020-04-01,Lonoke,Arkansas,05085,6,0 +2020-04-02,Lonoke,Arkansas,05085,13,0 +2020-04-03,Lonoke,Arkansas,05085,16,0 +2020-04-04,Lonoke,Arkansas,05085,15,0 +2020-04-05,Lonoke,Arkansas,05085,17,0 +2020-04-06,Lonoke,Arkansas,05085,23,0 +2020-04-07,Lonoke,Arkansas,05085,23,0 +2020-04-08,Lonoke,Arkansas,05085,24,0 +2020-04-09,Lonoke,Arkansas,05085,26,0 +2020-04-10,Lonoke,Arkansas,05085,27,0 +2020-04-11,Lonoke,Arkansas,05085,27,0 +2020-04-12,Lonoke,Arkansas,05085,30,0 +2020-04-13,Lonoke,Arkansas,05085,29,0 +2020-04-14,Lonoke,Arkansas,05085,29,0 +2020-04-15,Lonoke,Arkansas,05085,30,0 +2020-04-16,Lonoke,Arkansas,05085,30,0 +2020-04-17,Lonoke,Arkansas,05085,30,0 +2020-04-18,Lonoke,Arkansas,05085,26,0 +2020-04-19,Lonoke,Arkansas,05085,26,0 +2020-04-20,Lonoke,Arkansas,05085,26,0 +2020-04-21,Lonoke,Arkansas,05085,27,0 +2020-04-22,Lonoke,Arkansas,05085,28,0 +2020-04-23,Lonoke,Arkansas,05085,30,0 +2020-04-24,Lonoke,Arkansas,05085,31,0 +2020-04-25,Lonoke,Arkansas,05085,33,0 +2020-04-26,Lonoke,Arkansas,05085,38,0 +2020-04-27,Lonoke,Arkansas,05085,39,0 +2020-04-28,Lonoke,Arkansas,05085,40,0 +2020-04-29,Lonoke,Arkansas,05085,41,0 +2020-04-30,Lonoke,Arkansas,05085,41,0 +2020-05-01,Lonoke,Arkansas,05085,41,0 +2020-05-02,Lonoke,Arkansas,05085,41,0 +2020-05-03,Lonoke,Arkansas,05085,43,0 +2020-05-04,Lonoke,Arkansas,05085,44,0 +2020-05-05,Lonoke,Arkansas,05085,44,0 +2020-05-06,Lonoke,Arkansas,05085,44,0 +2020-05-07,Lonoke,Arkansas,05085,44,0 +2020-05-08,Lonoke,Arkansas,05085,44,0 +2020-05-09,Lonoke,Arkansas,05085,44,0 +2020-05-10,Lonoke,Arkansas,05085,45,0 +2020-05-11,Lonoke,Arkansas,05085,45,0 +2020-05-12,Lonoke,Arkansas,05085,44,0 +2020-05-13,Lonoke,Arkansas,05085,43,0 +2020-05-14,Lonoke,Arkansas,05085,44,0 +2020-05-15,Lonoke,Arkansas,05085,45,0 +2020-05-16,Lonoke,Arkansas,05085,45,0 +2020-05-17,Lonoke,Arkansas,05085,45,0 +2020-05-18,Lonoke,Arkansas,05085,45,0 +2020-05-19,Lonoke,Arkansas,05085,46,0 +2020-05-20,Lonoke,Arkansas,05085,46,0 +2020-05-21,Lonoke,Arkansas,05085,46,0 +2020-05-22,Lonoke,Arkansas,05085,46,0 +2020-05-23,Lonoke,Arkansas,05085,46,0 +2020-05-24,Lonoke,Arkansas,05085,46,0 +2020-05-25,Lonoke,Arkansas,05085,46,0 +2020-05-26,Lonoke,Arkansas,05085,46,0 +2020-05-27,Lonoke,Arkansas,05085,45,0 +2020-05-28,Lonoke,Arkansas,05085,46,0 +2020-05-29,Lonoke,Arkansas,05085,47,0 +2020-05-30,Lonoke,Arkansas,05085,47,0 +2020-05-31,Lonoke,Arkansas,05085,48,0 +2020-06-01,Lonoke,Arkansas,05085,49,0 +2020-06-02,Lonoke,Arkansas,05085,54,0 +2020-06-03,Lonoke,Arkansas,05085,55,0 +2020-06-04,Lonoke,Arkansas,05085,56,0 +2020-06-05,Lonoke,Arkansas,05085,57,0 +2020-06-06,Lonoke,Arkansas,05085,57,0 +2020-06-07,Lonoke,Arkansas,05085,59,0 +2020-06-08,Lonoke,Arkansas,05085,60,0 +2020-06-09,Lonoke,Arkansas,05085,63,0 +2020-06-10,Lonoke,Arkansas,05085,64,0 +2020-06-11,Lonoke,Arkansas,05085,67,0 +2020-06-12,Lonoke,Arkansas,05085,69,0 +2020-06-13,Lonoke,Arkansas,05085,70,0 +2020-06-14,Lonoke,Arkansas,05085,71,0 +2020-06-15,Lonoke,Arkansas,05085,73,0 +2020-06-16,Lonoke,Arkansas,05085,75,0 +2020-06-17,Lonoke,Arkansas,05085,78,0 +2020-06-18,Lonoke,Arkansas,05085,80,0 +2020-06-19,Lonoke,Arkansas,05085,84,0 +2020-06-20,Lonoke,Arkansas,05085,86,0 +2020-06-21,Lonoke,Arkansas,05085,88,0 +2020-06-22,Lonoke,Arkansas,05085,89,0 +2020-06-23,Lonoke,Arkansas,05085,91,0 +2020-06-24,Lonoke,Arkansas,05085,96,0 +2020-06-25,Lonoke,Arkansas,05085,123,0 +2020-06-26,Lonoke,Arkansas,05085,119,1 +2020-06-27,Lonoke,Arkansas,05085,127,1 +2020-06-28,Lonoke,Arkansas,05085,132,1 +2020-06-29,Lonoke,Arkansas,05085,134,1 +2020-06-30,Lonoke,Arkansas,05085,138,1 +2020-07-01,Lonoke,Arkansas,05085,144,1 +2020-07-02,Lonoke,Arkansas,05085,158,1 +2020-07-03,Lonoke,Arkansas,05085,162,1 +2020-07-04,Lonoke,Arkansas,05085,164,1 +2020-07-05,Lonoke,Arkansas,05085,167,1 +2020-07-06,Lonoke,Arkansas,05085,171,1 +2020-07-07,Lonoke,Arkansas,05085,178,1 +2020-07-08,Lonoke,Arkansas,05085,180,1 +2020-07-09,Lonoke,Arkansas,05085,182,1 +2020-04-08,Madison,Arkansas,05087,1,0 +2020-04-09,Madison,Arkansas,05087,1,0 +2020-04-10,Madison,Arkansas,05087,1,0 +2020-04-11,Madison,Arkansas,05087,1,0 +2020-04-12,Madison,Arkansas,05087,1,0 +2020-04-13,Madison,Arkansas,05087,1,0 +2020-04-14,Madison,Arkansas,05087,1,0 +2020-04-15,Madison,Arkansas,05087,1,0 +2020-04-16,Madison,Arkansas,05087,1,0 +2020-04-17,Madison,Arkansas,05087,1,0 +2020-04-18,Madison,Arkansas,05087,1,0 +2020-04-19,Madison,Arkansas,05087,1,0 +2020-04-20,Madison,Arkansas,05087,1,0 +2020-04-21,Madison,Arkansas,05087,1,0 +2020-04-22,Madison,Arkansas,05087,1,0 +2020-04-23,Madison,Arkansas,05087,1,0 +2020-04-24,Madison,Arkansas,05087,1,0 +2020-04-25,Madison,Arkansas,05087,1,0 +2020-04-26,Madison,Arkansas,05087,1,0 +2020-04-27,Madison,Arkansas,05087,1,0 +2020-04-28,Madison,Arkansas,05087,1,0 +2020-04-29,Madison,Arkansas,05087,1,0 +2020-04-30,Madison,Arkansas,05087,1,0 +2020-05-01,Madison,Arkansas,05087,1,0 +2020-05-02,Madison,Arkansas,05087,1,0 +2020-05-03,Madison,Arkansas,05087,1,0 +2020-05-04,Madison,Arkansas,05087,1,0 +2020-05-05,Madison,Arkansas,05087,1,0 +2020-05-06,Madison,Arkansas,05087,1,0 +2020-05-07,Madison,Arkansas,05087,1,0 +2020-05-08,Madison,Arkansas,05087,1,0 +2020-05-09,Madison,Arkansas,05087,1,0 +2020-05-10,Madison,Arkansas,05087,1,0 +2020-05-11,Madison,Arkansas,05087,1,0 +2020-05-12,Madison,Arkansas,05087,1,0 +2020-05-13,Madison,Arkansas,05087,1,0 +2020-05-14,Madison,Arkansas,05087,1,0 +2020-05-15,Madison,Arkansas,05087,1,0 +2020-05-16,Madison,Arkansas,05087,1,0 +2020-05-17,Madison,Arkansas,05087,1,0 +2020-05-18,Madison,Arkansas,05087,1,0 +2020-05-19,Madison,Arkansas,05087,2,0 +2020-05-20,Madison,Arkansas,05087,2,0 +2020-05-21,Madison,Arkansas,05087,2,0 +2020-05-22,Madison,Arkansas,05087,3,0 +2020-05-23,Madison,Arkansas,05087,3,0 +2020-05-24,Madison,Arkansas,05087,3,0 +2020-05-25,Madison,Arkansas,05087,5,0 +2020-05-26,Madison,Arkansas,05087,6,0 +2020-05-27,Madison,Arkansas,05087,6,0 +2020-05-28,Madison,Arkansas,05087,6,0 +2020-05-29,Madison,Arkansas,05087,13,0 +2020-05-30,Madison,Arkansas,05087,22,0 +2020-05-31,Madison,Arkansas,05087,23,0 +2020-06-01,Madison,Arkansas,05087,23,0 +2020-06-02,Madison,Arkansas,05087,29,0 +2020-06-03,Madison,Arkansas,05087,30,0 +2020-06-04,Madison,Arkansas,05087,34,0 +2020-06-05,Madison,Arkansas,05087,43,0 +2020-06-06,Madison,Arkansas,05087,50,0 +2020-06-07,Madison,Arkansas,05087,54,0 +2020-06-08,Madison,Arkansas,05087,54,0 +2020-06-09,Madison,Arkansas,05087,57,0 +2020-06-10,Madison,Arkansas,05087,58,0 +2020-06-11,Madison,Arkansas,05087,67,0 +2020-06-12,Madison,Arkansas,05087,99,0 +2020-06-13,Madison,Arkansas,05087,107,0 +2020-06-14,Madison,Arkansas,05087,111,0 +2020-06-15,Madison,Arkansas,05087,119,0 +2020-06-16,Madison,Arkansas,05087,122,0 +2020-06-17,Madison,Arkansas,05087,128,0 +2020-06-18,Madison,Arkansas,05087,128,0 +2020-06-19,Madison,Arkansas,05087,137,0 +2020-06-20,Madison,Arkansas,05087,142,0 +2020-06-21,Madison,Arkansas,05087,146,0 +2020-06-22,Madison,Arkansas,05087,154,0 +2020-06-23,Madison,Arkansas,05087,162,0 +2020-06-24,Madison,Arkansas,05087,163,0 +2020-06-25,Madison,Arkansas,05087,168,0 +2020-06-26,Madison,Arkansas,05087,174,0 +2020-06-27,Madison,Arkansas,05087,175,0 +2020-06-28,Madison,Arkansas,05087,188,0 +2020-06-29,Madison,Arkansas,05087,190,0 +2020-06-30,Madison,Arkansas,05087,192,0 +2020-07-01,Madison,Arkansas,05087,194,0 +2020-07-02,Madison,Arkansas,05087,197,0 +2020-07-03,Madison,Arkansas,05087,198,0 +2020-07-04,Madison,Arkansas,05087,200,0 +2020-07-05,Madison,Arkansas,05087,206,0 +2020-07-06,Madison,Arkansas,05087,203,0 +2020-07-07,Madison,Arkansas,05087,211,0 +2020-07-08,Madison,Arkansas,05087,214,0 +2020-07-09,Madison,Arkansas,05087,214,0 +2020-04-10,Marion,Arkansas,05089,1,0 +2020-04-11,Marion,Arkansas,05089,1,0 +2020-04-12,Marion,Arkansas,05089,1,0 +2020-04-13,Marion,Arkansas,05089,1,0 +2020-04-14,Marion,Arkansas,05089,1,0 +2020-04-15,Marion,Arkansas,05089,1,0 +2020-04-16,Marion,Arkansas,05089,1,0 +2020-04-17,Marion,Arkansas,05089,1,0 +2020-04-18,Marion,Arkansas,05089,1,0 +2020-04-19,Marion,Arkansas,05089,1,0 +2020-04-20,Marion,Arkansas,05089,1,0 +2020-04-21,Marion,Arkansas,05089,1,0 +2020-04-22,Marion,Arkansas,05089,1,0 +2020-04-23,Marion,Arkansas,05089,1,0 +2020-04-24,Marion,Arkansas,05089,1,0 +2020-04-25,Marion,Arkansas,05089,1,0 +2020-04-26,Marion,Arkansas,05089,1,0 +2020-04-27,Marion,Arkansas,05089,1,0 +2020-04-28,Marion,Arkansas,05089,1,0 +2020-04-29,Marion,Arkansas,05089,1,0 +2020-04-30,Marion,Arkansas,05089,1,0 +2020-05-01,Marion,Arkansas,05089,1,0 +2020-05-02,Marion,Arkansas,05089,1,0 +2020-05-03,Marion,Arkansas,05089,1,0 +2020-05-04,Marion,Arkansas,05089,1,0 +2020-05-05,Marion,Arkansas,05089,1,0 +2020-05-06,Marion,Arkansas,05089,1,0 +2020-05-07,Marion,Arkansas,05089,1,0 +2020-05-08,Marion,Arkansas,05089,1,0 +2020-05-09,Marion,Arkansas,05089,1,0 +2020-05-10,Marion,Arkansas,05089,1,0 +2020-05-11,Marion,Arkansas,05089,1,0 +2020-05-12,Marion,Arkansas,05089,1,0 +2020-05-13,Marion,Arkansas,05089,1,0 +2020-05-14,Marion,Arkansas,05089,1,0 +2020-05-15,Marion,Arkansas,05089,1,0 +2020-05-16,Marion,Arkansas,05089,1,0 +2020-05-17,Marion,Arkansas,05089,1,0 +2020-05-18,Marion,Arkansas,05089,1,0 +2020-05-19,Marion,Arkansas,05089,1,0 +2020-05-20,Marion,Arkansas,05089,1,0 +2020-05-21,Marion,Arkansas,05089,1,0 +2020-05-22,Marion,Arkansas,05089,1,0 +2020-05-23,Marion,Arkansas,05089,1,0 +2020-05-24,Marion,Arkansas,05089,1,0 +2020-05-25,Marion,Arkansas,05089,1,0 +2020-05-26,Marion,Arkansas,05089,1,0 +2020-05-27,Marion,Arkansas,05089,1,0 +2020-05-28,Marion,Arkansas,05089,1,0 +2020-05-29,Marion,Arkansas,05089,1,0 +2020-05-30,Marion,Arkansas,05089,1,0 +2020-05-31,Marion,Arkansas,05089,2,0 +2020-06-01,Marion,Arkansas,05089,2,0 +2020-06-02,Marion,Arkansas,05089,2,0 +2020-06-03,Marion,Arkansas,05089,2,0 +2020-06-04,Marion,Arkansas,05089,2,0 +2020-06-05,Marion,Arkansas,05089,2,0 +2020-06-06,Marion,Arkansas,05089,2,0 +2020-06-07,Marion,Arkansas,05089,2,0 +2020-06-08,Marion,Arkansas,05089,2,0 +2020-06-09,Marion,Arkansas,05089,2,0 +2020-06-10,Marion,Arkansas,05089,2,0 +2020-06-11,Marion,Arkansas,05089,2,0 +2020-06-12,Marion,Arkansas,05089,2,0 +2020-06-13,Marion,Arkansas,05089,2,0 +2020-06-14,Marion,Arkansas,05089,2,0 +2020-06-15,Marion,Arkansas,05089,2,0 +2020-06-16,Marion,Arkansas,05089,2,0 +2020-06-17,Marion,Arkansas,05089,2,0 +2020-06-18,Marion,Arkansas,05089,2,0 +2020-06-19,Marion,Arkansas,05089,2,0 +2020-06-20,Marion,Arkansas,05089,2,0 +2020-06-21,Marion,Arkansas,05089,2,0 +2020-06-22,Marion,Arkansas,05089,2,0 +2020-06-23,Marion,Arkansas,05089,2,0 +2020-06-24,Marion,Arkansas,05089,2,0 +2020-06-25,Marion,Arkansas,05089,3,0 +2020-06-26,Marion,Arkansas,05089,4,0 +2020-06-27,Marion,Arkansas,05089,4,0 +2020-06-28,Marion,Arkansas,05089,4,0 +2020-06-29,Marion,Arkansas,05089,4,0 +2020-06-30,Marion,Arkansas,05089,6,0 +2020-07-01,Marion,Arkansas,05089,6,0 +2020-07-02,Marion,Arkansas,05089,11,0 +2020-07-03,Marion,Arkansas,05089,11,0 +2020-07-04,Marion,Arkansas,05089,12,0 +2020-07-05,Marion,Arkansas,05089,12,0 +2020-07-06,Marion,Arkansas,05089,12,0 +2020-07-07,Marion,Arkansas,05089,12,0 +2020-07-08,Marion,Arkansas,05089,12,0 +2020-07-09,Marion,Arkansas,05089,12,0 +2020-03-31,Miller,Arkansas,05091,1,0 +2020-04-01,Miller,Arkansas,05091,7,0 +2020-04-02,Miller,Arkansas,05091,8,0 +2020-04-03,Miller,Arkansas,05091,8,0 +2020-04-04,Miller,Arkansas,05091,8,0 +2020-04-05,Miller,Arkansas,05091,8,0 +2020-04-06,Miller,Arkansas,05091,13,0 +2020-04-07,Miller,Arkansas,05091,16,0 +2020-04-08,Miller,Arkansas,05091,17,0 +2020-04-09,Miller,Arkansas,05091,20,0 +2020-04-10,Miller,Arkansas,05091,20,0 +2020-04-11,Miller,Arkansas,05091,22,0 +2020-04-12,Miller,Arkansas,05091,22,0 +2020-04-13,Miller,Arkansas,05091,27,0 +2020-04-14,Miller,Arkansas,05091,28,0 +2020-04-15,Miller,Arkansas,05091,29,0 +2020-04-16,Miller,Arkansas,05091,29,0 +2020-04-17,Miller,Arkansas,05091,29,0 +2020-04-18,Miller,Arkansas,05091,29,0 +2020-04-19,Miller,Arkansas,05091,29,0 +2020-04-20,Miller,Arkansas,05091,30,0 +2020-04-21,Miller,Arkansas,05091,30,0 +2020-04-22,Miller,Arkansas,05091,30,1 +2020-04-23,Miller,Arkansas,05091,31,1 +2020-04-24,Miller,Arkansas,05091,32,1 +2020-04-25,Miller,Arkansas,05091,32,1 +2020-04-26,Miller,Arkansas,05091,32,1 +2020-04-27,Miller,Arkansas,05091,33,1 +2020-04-28,Miller,Arkansas,05091,33,1 +2020-04-29,Miller,Arkansas,05091,33,1 +2020-04-30,Miller,Arkansas,05091,34,1 +2020-05-01,Miller,Arkansas,05091,34,1 +2020-05-02,Miller,Arkansas,05091,34,1 +2020-05-03,Miller,Arkansas,05091,35,1 +2020-05-04,Miller,Arkansas,05091,35,1 +2020-05-05,Miller,Arkansas,05091,35,1 +2020-05-06,Miller,Arkansas,05091,35,1 +2020-05-07,Miller,Arkansas,05091,35,1 +2020-05-08,Miller,Arkansas,05091,36,1 +2020-05-09,Miller,Arkansas,05091,36,1 +2020-05-10,Miller,Arkansas,05091,36,1 +2020-05-11,Miller,Arkansas,05091,37,1 +2020-05-12,Miller,Arkansas,05091,38,1 +2020-05-13,Miller,Arkansas,05091,40,1 +2020-05-14,Miller,Arkansas,05091,40,1 +2020-05-15,Miller,Arkansas,05091,42,1 +2020-05-16,Miller,Arkansas,05091,42,1 +2020-05-17,Miller,Arkansas,05091,42,1 +2020-05-18,Miller,Arkansas,05091,42,1 +2020-05-19,Miller,Arkansas,05091,42,1 +2020-05-20,Miller,Arkansas,05091,42,1 +2020-05-21,Miller,Arkansas,05091,42,1 +2020-05-22,Miller,Arkansas,05091,42,1 +2020-05-23,Miller,Arkansas,05091,42,1 +2020-05-24,Miller,Arkansas,05091,42,1 +2020-05-25,Miller,Arkansas,05091,42,1 +2020-05-26,Miller,Arkansas,05091,42,1 +2020-05-27,Miller,Arkansas,05091,42,1 +2020-05-28,Miller,Arkansas,05091,42,1 +2020-05-29,Miller,Arkansas,05091,42,1 +2020-05-30,Miller,Arkansas,05091,43,1 +2020-05-31,Miller,Arkansas,05091,44,1 +2020-06-01,Miller,Arkansas,05091,45,1 +2020-06-02,Miller,Arkansas,05091,47,1 +2020-06-03,Miller,Arkansas,05091,49,1 +2020-06-04,Miller,Arkansas,05091,50,1 +2020-06-05,Miller,Arkansas,05091,52,1 +2020-06-06,Miller,Arkansas,05091,53,1 +2020-06-07,Miller,Arkansas,05091,54,1 +2020-06-08,Miller,Arkansas,05091,59,1 +2020-06-09,Miller,Arkansas,05091,59,1 +2020-06-10,Miller,Arkansas,05091,60,1 +2020-06-11,Miller,Arkansas,05091,64,1 +2020-06-12,Miller,Arkansas,05091,66,1 +2020-06-13,Miller,Arkansas,05091,69,1 +2020-06-14,Miller,Arkansas,05091,69,1 +2020-06-15,Miller,Arkansas,05091,71,1 +2020-06-16,Miller,Arkansas,05091,73,2 +2020-06-17,Miller,Arkansas,05091,77,2 +2020-06-18,Miller,Arkansas,05091,77,2 +2020-06-19,Miller,Arkansas,05091,78,2 +2020-06-20,Miller,Arkansas,05091,87,2 +2020-06-21,Miller,Arkansas,05091,91,2 +2020-06-22,Miller,Arkansas,05091,92,2 +2020-06-23,Miller,Arkansas,05091,94,2 +2020-06-24,Miller,Arkansas,05091,97,2 +2020-06-25,Miller,Arkansas,05091,98,2 +2020-06-26,Miller,Arkansas,05091,101,2 +2020-06-27,Miller,Arkansas,05091,107,2 +2020-06-28,Miller,Arkansas,05091,111,2 +2020-06-29,Miller,Arkansas,05091,114,2 +2020-06-30,Miller,Arkansas,05091,114,2 +2020-07-01,Miller,Arkansas,05091,118,2 +2020-07-02,Miller,Arkansas,05091,122,2 +2020-07-03,Miller,Arkansas,05091,126,2 +2020-07-04,Miller,Arkansas,05091,129,2 +2020-07-05,Miller,Arkansas,05091,220,2 +2020-07-06,Miller,Arkansas,05091,228,2 +2020-07-07,Miller,Arkansas,05091,232,2 +2020-07-08,Miller,Arkansas,05091,233,2 +2020-07-09,Miller,Arkansas,05091,237,2 +2020-04-02,Mississippi,Arkansas,05093,1,0 +2020-04-03,Mississippi,Arkansas,05093,1,0 +2020-04-04,Mississippi,Arkansas,05093,2,0 +2020-04-05,Mississippi,Arkansas,05093,4,0 +2020-04-06,Mississippi,Arkansas,05093,4,0 +2020-04-07,Mississippi,Arkansas,05093,4,0 +2020-04-08,Mississippi,Arkansas,05093,4,0 +2020-04-09,Mississippi,Arkansas,05093,6,0 +2020-04-10,Mississippi,Arkansas,05093,7,0 +2020-04-11,Mississippi,Arkansas,05093,7,0 +2020-04-12,Mississippi,Arkansas,05093,7,0 +2020-04-13,Mississippi,Arkansas,05093,7,0 +2020-04-14,Mississippi,Arkansas,05093,7,0 +2020-04-15,Mississippi,Arkansas,05093,7,0 +2020-04-16,Mississippi,Arkansas,05093,8,0 +2020-04-17,Mississippi,Arkansas,05093,8,0 +2020-04-18,Mississippi,Arkansas,05093,8,0 +2020-04-19,Mississippi,Arkansas,05093,8,0 +2020-04-20,Mississippi,Arkansas,05093,9,0 +2020-04-21,Mississippi,Arkansas,05093,9,0 +2020-04-22,Mississippi,Arkansas,05093,9,0 +2020-04-23,Mississippi,Arkansas,05093,10,0 +2020-04-24,Mississippi,Arkansas,05093,10,0 +2020-04-25,Mississippi,Arkansas,05093,11,0 +2020-04-26,Mississippi,Arkansas,05093,11,0 +2020-04-27,Mississippi,Arkansas,05093,13,0 +2020-04-28,Mississippi,Arkansas,05093,14,0 +2020-04-29,Mississippi,Arkansas,05093,15,0 +2020-04-30,Mississippi,Arkansas,05093,19,0 +2020-05-01,Mississippi,Arkansas,05093,20,0 +2020-05-02,Mississippi,Arkansas,05093,20,0 +2020-05-03,Mississippi,Arkansas,05093,20,0 +2020-05-04,Mississippi,Arkansas,05093,23,0 +2020-05-05,Mississippi,Arkansas,05093,41,0 +2020-05-06,Mississippi,Arkansas,05093,42,0 +2020-05-07,Mississippi,Arkansas,05093,42,0 +2020-05-08,Mississippi,Arkansas,05093,47,0 +2020-05-09,Mississippi,Arkansas,05093,47,0 +2020-05-10,Mississippi,Arkansas,05093,52,0 +2020-05-11,Mississippi,Arkansas,05093,52,0 +2020-05-12,Mississippi,Arkansas,05093,53,0 +2020-05-13,Mississippi,Arkansas,05093,54,0 +2020-05-14,Mississippi,Arkansas,05093,55,0 +2020-05-15,Mississippi,Arkansas,05093,58,0 +2020-05-16,Mississippi,Arkansas,05093,61,0 +2020-05-17,Mississippi,Arkansas,05093,61,0 +2020-05-18,Mississippi,Arkansas,05093,62,0 +2020-05-19,Mississippi,Arkansas,05093,65,1 +2020-05-20,Mississippi,Arkansas,05093,66,1 +2020-05-21,Mississippi,Arkansas,05093,69,1 +2020-05-22,Mississippi,Arkansas,05093,70,1 +2020-05-23,Mississippi,Arkansas,05093,70,1 +2020-05-24,Mississippi,Arkansas,05093,70,1 +2020-05-25,Mississippi,Arkansas,05093,70,2 +2020-05-26,Mississippi,Arkansas,05093,72,2 +2020-05-27,Mississippi,Arkansas,05093,72,2 +2020-05-28,Mississippi,Arkansas,05093,73,2 +2020-05-29,Mississippi,Arkansas,05093,73,2 +2020-05-30,Mississippi,Arkansas,05093,75,2 +2020-05-31,Mississippi,Arkansas,05093,75,2 +2020-06-01,Mississippi,Arkansas,05093,76,2 +2020-06-02,Mississippi,Arkansas,05093,78,2 +2020-06-03,Mississippi,Arkansas,05093,78,2 +2020-06-04,Mississippi,Arkansas,05093,79,2 +2020-06-05,Mississippi,Arkansas,05093,79,2 +2020-06-06,Mississippi,Arkansas,05093,79,2 +2020-06-07,Mississippi,Arkansas,05093,80,2 +2020-06-08,Mississippi,Arkansas,05093,83,2 +2020-06-09,Mississippi,Arkansas,05093,85,2 +2020-06-10,Mississippi,Arkansas,05093,86,2 +2020-06-11,Mississippi,Arkansas,05093,86,2 +2020-06-12,Mississippi,Arkansas,05093,89,2 +2020-06-13,Mississippi,Arkansas,05093,91,2 +2020-06-14,Mississippi,Arkansas,05093,95,2 +2020-06-15,Mississippi,Arkansas,05093,96,2 +2020-06-16,Mississippi,Arkansas,05093,98,2 +2020-06-17,Mississippi,Arkansas,05093,102,2 +2020-06-18,Mississippi,Arkansas,05093,105,2 +2020-06-19,Mississippi,Arkansas,05093,107,3 +2020-06-20,Mississippi,Arkansas,05093,110,3 +2020-06-21,Mississippi,Arkansas,05093,114,3 +2020-06-22,Mississippi,Arkansas,05093,115,3 +2020-06-23,Mississippi,Arkansas,05093,121,3 +2020-06-24,Mississippi,Arkansas,05093,128,3 +2020-06-25,Mississippi,Arkansas,05093,128,3 +2020-06-26,Mississippi,Arkansas,05093,136,3 +2020-06-27,Mississippi,Arkansas,05093,149,3 +2020-06-28,Mississippi,Arkansas,05093,157,3 +2020-06-29,Mississippi,Arkansas,05093,161,3 +2020-06-30,Mississippi,Arkansas,05093,168,3 +2020-07-01,Mississippi,Arkansas,05093,180,3 +2020-07-02,Mississippi,Arkansas,05093,185,3 +2020-07-03,Mississippi,Arkansas,05093,194,3 +2020-07-04,Mississippi,Arkansas,05093,202,3 +2020-07-05,Mississippi,Arkansas,05093,214,3 +2020-07-06,Mississippi,Arkansas,05093,224,3 +2020-07-07,Mississippi,Arkansas,05093,225,3 +2020-07-08,Mississippi,Arkansas,05093,265,3 +2020-07-09,Mississippi,Arkansas,05093,275,3 +2020-04-02,Monroe,Arkansas,05095,1,0 +2020-04-03,Monroe,Arkansas,05095,1,0 +2020-04-04,Monroe,Arkansas,05095,1,0 +2020-04-05,Monroe,Arkansas,05095,1,0 +2020-04-06,Monroe,Arkansas,05095,1,0 +2020-04-07,Monroe,Arkansas,05095,1,0 +2020-04-08,Monroe,Arkansas,05095,1,0 +2020-04-09,Monroe,Arkansas,05095,1,0 +2020-04-10,Monroe,Arkansas,05095,1,0 +2020-04-11,Monroe,Arkansas,05095,1,0 +2020-04-12,Monroe,Arkansas,05095,2,0 +2020-04-13,Monroe,Arkansas,05095,2,0 +2020-04-14,Monroe,Arkansas,05095,2,0 +2020-04-15,Monroe,Arkansas,05095,2,0 +2020-04-16,Monroe,Arkansas,05095,2,0 +2020-04-17,Monroe,Arkansas,05095,2,0 +2020-04-18,Monroe,Arkansas,05095,3,0 +2020-04-19,Monroe,Arkansas,05095,3,0 +2020-04-20,Monroe,Arkansas,05095,4,0 +2020-04-21,Monroe,Arkansas,05095,4,0 +2020-04-22,Monroe,Arkansas,05095,4,0 +2020-04-23,Monroe,Arkansas,05095,4,0 +2020-04-24,Monroe,Arkansas,05095,4,0 +2020-04-25,Monroe,Arkansas,05095,4,0 +2020-04-26,Monroe,Arkansas,05095,4,0 +2020-04-27,Monroe,Arkansas,05095,4,0 +2020-04-28,Monroe,Arkansas,05095,4,0 +2020-04-29,Monroe,Arkansas,05095,4,0 +2020-04-30,Monroe,Arkansas,05095,4,0 +2020-05-01,Monroe,Arkansas,05095,4,0 +2020-05-02,Monroe,Arkansas,05095,4,0 +2020-05-03,Monroe,Arkansas,05095,4,0 +2020-05-04,Monroe,Arkansas,05095,4,0 +2020-05-05,Monroe,Arkansas,05095,4,0 +2020-05-06,Monroe,Arkansas,05095,4,0 +2020-05-07,Monroe,Arkansas,05095,4,0 +2020-05-08,Monroe,Arkansas,05095,4,0 +2020-05-09,Monroe,Arkansas,05095,4,0 +2020-05-10,Monroe,Arkansas,05095,5,0 +2020-05-11,Monroe,Arkansas,05095,5,0 +2020-05-12,Monroe,Arkansas,05095,5,0 +2020-05-13,Monroe,Arkansas,05095,5,0 +2020-05-14,Monroe,Arkansas,05095,5,0 +2020-05-15,Monroe,Arkansas,05095,5,0 +2020-05-16,Monroe,Arkansas,05095,5,0 +2020-05-17,Monroe,Arkansas,05095,5,0 +2020-05-18,Monroe,Arkansas,05095,5,0 +2020-05-19,Monroe,Arkansas,05095,5,0 +2020-05-20,Monroe,Arkansas,05095,5,0 +2020-05-21,Monroe,Arkansas,05095,5,0 +2020-05-22,Monroe,Arkansas,05095,5,0 +2020-05-23,Monroe,Arkansas,05095,5,0 +2020-05-24,Monroe,Arkansas,05095,5,0 +2020-05-25,Monroe,Arkansas,05095,5,0 +2020-05-26,Monroe,Arkansas,05095,5,0 +2020-05-27,Monroe,Arkansas,05095,5,0 +2020-05-28,Monroe,Arkansas,05095,5,0 +2020-05-29,Monroe,Arkansas,05095,5,0 +2020-05-30,Monroe,Arkansas,05095,5,0 +2020-05-31,Monroe,Arkansas,05095,5,0 +2020-06-01,Monroe,Arkansas,05095,5,0 +2020-06-02,Monroe,Arkansas,05095,5,0 +2020-06-03,Monroe,Arkansas,05095,6,0 +2020-06-04,Monroe,Arkansas,05095,6,0 +2020-06-05,Monroe,Arkansas,05095,5,0 +2020-06-06,Monroe,Arkansas,05095,5,0 +2020-06-07,Monroe,Arkansas,05095,5,0 +2020-06-08,Monroe,Arkansas,05095,5,0 +2020-06-09,Monroe,Arkansas,05095,5,0 +2020-06-10,Monroe,Arkansas,05095,5,0 +2020-06-11,Monroe,Arkansas,05095,5,0 +2020-06-12,Monroe,Arkansas,05095,5,0 +2020-06-13,Monroe,Arkansas,05095,7,0 +2020-06-14,Monroe,Arkansas,05095,7,0 +2020-06-15,Monroe,Arkansas,05095,7,0 +2020-06-16,Monroe,Arkansas,05095,7,0 +2020-06-17,Monroe,Arkansas,05095,7,0 +2020-06-18,Monroe,Arkansas,05095,7,0 +2020-06-19,Monroe,Arkansas,05095,7,0 +2020-06-20,Monroe,Arkansas,05095,7,0 +2020-06-21,Monroe,Arkansas,05095,7,0 +2020-06-22,Monroe,Arkansas,05095,7,0 +2020-06-23,Monroe,Arkansas,05095,8,0 +2020-06-24,Monroe,Arkansas,05095,8,0 +2020-06-25,Monroe,Arkansas,05095,8,0 +2020-06-26,Monroe,Arkansas,05095,10,0 +2020-06-27,Monroe,Arkansas,05095,12,0 +2020-06-28,Monroe,Arkansas,05095,12,0 +2020-06-29,Monroe,Arkansas,05095,12,0 +2020-06-30,Monroe,Arkansas,05095,12,0 +2020-07-01,Monroe,Arkansas,05095,13,0 +2020-07-02,Monroe,Arkansas,05095,15,0 +2020-07-03,Monroe,Arkansas,05095,16,0 +2020-07-04,Monroe,Arkansas,05095,16,0 +2020-07-05,Monroe,Arkansas,05095,16,0 +2020-07-06,Monroe,Arkansas,05095,17,0 +2020-07-07,Monroe,Arkansas,05095,17,0 +2020-07-08,Monroe,Arkansas,05095,17,0 +2020-07-09,Monroe,Arkansas,05095,19,0 +2020-04-28,Montgomery,Arkansas,05097,1,0 +2020-04-29,Montgomery,Arkansas,05097,1,0 +2020-04-30,Montgomery,Arkansas,05097,1,0 +2020-05-01,Montgomery,Arkansas,05097,1,0 +2020-05-02,Montgomery,Arkansas,05097,1,0 +2020-05-03,Montgomery,Arkansas,05097,1,0 +2020-05-04,Montgomery,Arkansas,05097,1,0 +2020-05-05,Montgomery,Arkansas,05097,1,0 +2020-05-06,Montgomery,Arkansas,05097,1,0 +2020-05-07,Montgomery,Arkansas,05097,1,0 +2020-05-08,Montgomery,Arkansas,05097,1,0 +2020-05-09,Montgomery,Arkansas,05097,1,0 +2020-05-10,Montgomery,Arkansas,05097,1,0 +2020-05-11,Montgomery,Arkansas,05097,1,0 +2020-05-12,Montgomery,Arkansas,05097,1,0 +2020-05-13,Montgomery,Arkansas,05097,1,0 +2020-05-14,Montgomery,Arkansas,05097,1,0 +2020-05-15,Montgomery,Arkansas,05097,1,0 +2020-05-16,Montgomery,Arkansas,05097,1,0 +2020-05-17,Montgomery,Arkansas,05097,1,0 +2020-05-18,Montgomery,Arkansas,05097,1,0 +2020-05-19,Montgomery,Arkansas,05097,1,0 +2020-05-20,Montgomery,Arkansas,05097,1,0 +2020-05-21,Montgomery,Arkansas,05097,1,0 +2020-05-22,Montgomery,Arkansas,05097,1,0 +2020-05-23,Montgomery,Arkansas,05097,1,0 +2020-05-24,Montgomery,Arkansas,05097,1,0 +2020-05-25,Montgomery,Arkansas,05097,1,0 +2020-05-26,Montgomery,Arkansas,05097,1,0 +2020-05-27,Montgomery,Arkansas,05097,1,0 +2020-05-28,Montgomery,Arkansas,05097,2,0 +2020-05-29,Montgomery,Arkansas,05097,2,0 +2020-05-30,Montgomery,Arkansas,05097,2,0 +2020-05-31,Montgomery,Arkansas,05097,2,0 +2020-06-01,Montgomery,Arkansas,05097,2,0 +2020-06-02,Montgomery,Arkansas,05097,2,0 +2020-06-03,Montgomery,Arkansas,05097,2,0 +2020-06-04,Montgomery,Arkansas,05097,2,0 +2020-06-05,Montgomery,Arkansas,05097,2,0 +2020-06-06,Montgomery,Arkansas,05097,2,0 +2020-06-07,Montgomery,Arkansas,05097,2,0 +2020-06-08,Montgomery,Arkansas,05097,2,0 +2020-06-09,Montgomery,Arkansas,05097,3,0 +2020-06-10,Montgomery,Arkansas,05097,3,0 +2020-06-11,Montgomery,Arkansas,05097,2,0 +2020-06-12,Montgomery,Arkansas,05097,2,0 +2020-06-13,Montgomery,Arkansas,05097,2,0 +2020-06-14,Montgomery,Arkansas,05097,2,0 +2020-06-15,Montgomery,Arkansas,05097,2,0 +2020-06-16,Montgomery,Arkansas,05097,2,0 +2020-06-17,Montgomery,Arkansas,05097,2,0 +2020-06-18,Montgomery,Arkansas,05097,2,0 +2020-06-19,Montgomery,Arkansas,05097,2,0 +2020-06-20,Montgomery,Arkansas,05097,2,0 +2020-06-21,Montgomery,Arkansas,05097,2,0 +2020-06-22,Montgomery,Arkansas,05097,2,0 +2020-06-23,Montgomery,Arkansas,05097,2,0 +2020-06-24,Montgomery,Arkansas,05097,2,0 +2020-06-25,Montgomery,Arkansas,05097,4,0 +2020-06-26,Montgomery,Arkansas,05097,4,0 +2020-06-27,Montgomery,Arkansas,05097,4,0 +2020-06-28,Montgomery,Arkansas,05097,4,0 +2020-06-29,Montgomery,Arkansas,05097,4,0 +2020-06-30,Montgomery,Arkansas,05097,4,0 +2020-07-01,Montgomery,Arkansas,05097,5,0 +2020-07-02,Montgomery,Arkansas,05097,5,0 +2020-07-03,Montgomery,Arkansas,05097,5,0 +2020-07-04,Montgomery,Arkansas,05097,5,0 +2020-07-05,Montgomery,Arkansas,05097,5,0 +2020-07-06,Montgomery,Arkansas,05097,6,0 +2020-07-07,Montgomery,Arkansas,05097,7,0 +2020-07-08,Montgomery,Arkansas,05097,7,0 +2020-07-09,Montgomery,Arkansas,05097,8,0 +2020-03-29,Nevada,Arkansas,05099,1,0 +2020-03-30,Nevada,Arkansas,05099,1,0 +2020-03-31,Nevada,Arkansas,05099,1,0 +2020-04-01,Nevada,Arkansas,05099,1,0 +2020-04-02,Nevada,Arkansas,05099,1,0 +2020-04-03,Nevada,Arkansas,05099,1,0 +2020-04-04,Nevada,Arkansas,05099,1,0 +2020-04-05,Nevada,Arkansas,05099,1,0 +2020-04-06,Nevada,Arkansas,05099,1,0 +2020-04-07,Nevada,Arkansas,05099,1,0 +2020-04-08,Nevada,Arkansas,05099,1,0 +2020-04-09,Nevada,Arkansas,05099,1,0 +2020-04-10,Nevada,Arkansas,05099,1,0 +2020-04-11,Nevada,Arkansas,05099,1,0 +2020-04-12,Nevada,Arkansas,05099,1,0 +2020-04-13,Nevada,Arkansas,05099,1,0 +2020-04-14,Nevada,Arkansas,05099,1,0 +2020-04-15,Nevada,Arkansas,05099,1,0 +2020-04-16,Nevada,Arkansas,05099,1,0 +2020-04-17,Nevada,Arkansas,05099,1,0 +2020-04-18,Nevada,Arkansas,05099,1,0 +2020-04-19,Nevada,Arkansas,05099,1,0 +2020-04-20,Nevada,Arkansas,05099,1,0 +2020-04-21,Nevada,Arkansas,05099,1,0 +2020-04-22,Nevada,Arkansas,05099,1,0 +2020-04-23,Nevada,Arkansas,05099,1,0 +2020-04-24,Nevada,Arkansas,05099,1,0 +2020-04-25,Nevada,Arkansas,05099,1,0 +2020-04-26,Nevada,Arkansas,05099,1,0 +2020-04-27,Nevada,Arkansas,05099,1,0 +2020-04-28,Nevada,Arkansas,05099,1,0 +2020-04-29,Nevada,Arkansas,05099,1,0 +2020-04-30,Nevada,Arkansas,05099,1,0 +2020-05-01,Nevada,Arkansas,05099,1,0 +2020-05-02,Nevada,Arkansas,05099,1,0 +2020-05-03,Nevada,Arkansas,05099,1,0 +2020-05-04,Nevada,Arkansas,05099,2,0 +2020-05-05,Nevada,Arkansas,05099,2,0 +2020-05-06,Nevada,Arkansas,05099,2,0 +2020-05-07,Nevada,Arkansas,05099,3,0 +2020-05-08,Nevada,Arkansas,05099,3,0 +2020-05-09,Nevada,Arkansas,05099,3,0 +2020-05-10,Nevada,Arkansas,05099,3,0 +2020-05-11,Nevada,Arkansas,05099,3,0 +2020-05-12,Nevada,Arkansas,05099,3,0 +2020-05-13,Nevada,Arkansas,05099,3,0 +2020-05-14,Nevada,Arkansas,05099,3,0 +2020-05-15,Nevada,Arkansas,05099,4,0 +2020-05-16,Nevada,Arkansas,05099,4,0 +2020-05-17,Nevada,Arkansas,05099,4,0 +2020-05-18,Nevada,Arkansas,05099,4,0 +2020-05-19,Nevada,Arkansas,05099,4,0 +2020-05-20,Nevada,Arkansas,05099,4,0 +2020-05-21,Nevada,Arkansas,05099,4,0 +2020-05-22,Nevada,Arkansas,05099,4,0 +2020-05-23,Nevada,Arkansas,05099,4,0 +2020-05-24,Nevada,Arkansas,05099,4,0 +2020-05-25,Nevada,Arkansas,05099,4,0 +2020-05-26,Nevada,Arkansas,05099,4,0 +2020-05-27,Nevada,Arkansas,05099,5,0 +2020-05-28,Nevada,Arkansas,05099,5,0 +2020-05-29,Nevada,Arkansas,05099,5,0 +2020-05-30,Nevada,Arkansas,05099,5,0 +2020-05-31,Nevada,Arkansas,05099,6,0 +2020-06-01,Nevada,Arkansas,05099,7,0 +2020-06-02,Nevada,Arkansas,05099,7,0 +2020-06-03,Nevada,Arkansas,05099,7,0 +2020-06-04,Nevada,Arkansas,05099,9,0 +2020-06-05,Nevada,Arkansas,05099,10,0 +2020-06-06,Nevada,Arkansas,05099,50,0 +2020-06-07,Nevada,Arkansas,05099,56,0 +2020-06-08,Nevada,Arkansas,05099,59,0 +2020-06-09,Nevada,Arkansas,05099,68,0 +2020-06-10,Nevada,Arkansas,05099,70,0 +2020-06-11,Nevada,Arkansas,05099,71,0 +2020-06-12,Nevada,Arkansas,05099,73,0 +2020-06-13,Nevada,Arkansas,05099,74,0 +2020-06-14,Nevada,Arkansas,05099,80,0 +2020-06-15,Nevada,Arkansas,05099,83,0 +2020-06-16,Nevada,Arkansas,05099,83,1 +2020-06-17,Nevada,Arkansas,05099,86,1 +2020-06-18,Nevada,Arkansas,05099,87,1 +2020-06-19,Nevada,Arkansas,05099,87,2 +2020-06-20,Nevada,Arkansas,05099,87,2 +2020-06-21,Nevada,Arkansas,05099,87,2 +2020-06-22,Nevada,Arkansas,05099,94,2 +2020-06-23,Nevada,Arkansas,05099,95,2 +2020-06-24,Nevada,Arkansas,05099,95,2 +2020-06-25,Nevada,Arkansas,05099,95,2 +2020-06-26,Nevada,Arkansas,05099,101,2 +2020-06-27,Nevada,Arkansas,05099,101,2 +2020-06-28,Nevada,Arkansas,05099,101,2 +2020-06-29,Nevada,Arkansas,05099,101,2 +2020-06-30,Nevada,Arkansas,05099,101,3 +2020-07-01,Nevada,Arkansas,05099,102,3 +2020-07-02,Nevada,Arkansas,05099,104,3 +2020-07-03,Nevada,Arkansas,05099,104,3 +2020-07-04,Nevada,Arkansas,05099,104,3 +2020-07-05,Nevada,Arkansas,05099,104,3 +2020-07-06,Nevada,Arkansas,05099,104,3 +2020-07-07,Nevada,Arkansas,05099,104,3 +2020-07-08,Nevada,Arkansas,05099,106,3 +2020-07-09,Nevada,Arkansas,05099,107,3 +2020-03-30,Newton,Arkansas,05101,1,0 +2020-03-31,Newton,Arkansas,05101,1,0 +2020-04-01,Newton,Arkansas,05101,1,0 +2020-04-02,Newton,Arkansas,05101,1,0 +2020-04-03,Newton,Arkansas,05101,1,0 +2020-04-04,Newton,Arkansas,05101,1,0 +2020-04-05,Newton,Arkansas,05101,1,0 +2020-04-06,Newton,Arkansas,05101,1,0 +2020-04-07,Newton,Arkansas,05101,1,0 +2020-04-08,Newton,Arkansas,05101,1,0 +2020-04-09,Newton,Arkansas,05101,1,0 +2020-04-10,Newton,Arkansas,05101,1,0 +2020-04-11,Newton,Arkansas,05101,1,0 +2020-04-12,Newton,Arkansas,05101,1,0 +2020-04-13,Newton,Arkansas,05101,1,0 +2020-04-14,Newton,Arkansas,05101,1,0 +2020-04-15,Newton,Arkansas,05101,1,0 +2020-04-16,Newton,Arkansas,05101,1,0 +2020-04-17,Newton,Arkansas,05101,2,0 +2020-04-18,Newton,Arkansas,05101,2,0 +2020-04-19,Newton,Arkansas,05101,2,0 +2020-04-20,Newton,Arkansas,05101,2,0 +2020-04-21,Newton,Arkansas,05101,2,0 +2020-04-22,Newton,Arkansas,05101,2,0 +2020-04-23,Newton,Arkansas,05101,3,0 +2020-04-24,Newton,Arkansas,05101,3,0 +2020-04-25,Newton,Arkansas,05101,3,0 +2020-04-26,Newton,Arkansas,05101,3,0 +2020-04-27,Newton,Arkansas,05101,3,0 +2020-04-28,Newton,Arkansas,05101,3,0 +2020-04-29,Newton,Arkansas,05101,3,0 +2020-04-30,Newton,Arkansas,05101,3,0 +2020-05-01,Newton,Arkansas,05101,3,0 +2020-05-02,Newton,Arkansas,05101,3,0 +2020-05-03,Newton,Arkansas,05101,3,0 +2020-05-04,Newton,Arkansas,05101,3,0 +2020-05-05,Newton,Arkansas,05101,3,0 +2020-05-06,Newton,Arkansas,05101,3,0 +2020-05-07,Newton,Arkansas,05101,3,0 +2020-05-08,Newton,Arkansas,05101,3,0 +2020-05-09,Newton,Arkansas,05101,3,0 +2020-05-10,Newton,Arkansas,05101,3,0 +2020-05-11,Newton,Arkansas,05101,3,0 +2020-05-12,Newton,Arkansas,05101,3,0 +2020-05-13,Newton,Arkansas,05101,3,0 +2020-05-14,Newton,Arkansas,05101,3,0 +2020-05-15,Newton,Arkansas,05101,3,0 +2020-05-16,Newton,Arkansas,05101,3,0 +2020-05-17,Newton,Arkansas,05101,3,0 +2020-05-18,Newton,Arkansas,05101,3,0 +2020-05-19,Newton,Arkansas,05101,3,0 +2020-05-20,Newton,Arkansas,05101,3,0 +2020-05-21,Newton,Arkansas,05101,3,0 +2020-05-22,Newton,Arkansas,05101,3,0 +2020-05-23,Newton,Arkansas,05101,3,0 +2020-05-24,Newton,Arkansas,05101,3,0 +2020-05-25,Newton,Arkansas,05101,3,0 +2020-05-26,Newton,Arkansas,05101,3,0 +2020-05-27,Newton,Arkansas,05101,3,0 +2020-05-28,Newton,Arkansas,05101,3,0 +2020-05-29,Newton,Arkansas,05101,3,0 +2020-05-30,Newton,Arkansas,05101,3,0 +2020-05-31,Newton,Arkansas,05101,3,0 +2020-06-01,Newton,Arkansas,05101,3,0 +2020-06-02,Newton,Arkansas,05101,3,0 +2020-06-03,Newton,Arkansas,05101,3,0 +2020-06-04,Newton,Arkansas,05101,3,0 +2020-06-05,Newton,Arkansas,05101,3,0 +2020-06-06,Newton,Arkansas,05101,3,0 +2020-06-07,Newton,Arkansas,05101,3,0 +2020-06-08,Newton,Arkansas,05101,3,0 +2020-06-09,Newton,Arkansas,05101,3,0 +2020-06-10,Newton,Arkansas,05101,3,0 +2020-06-11,Newton,Arkansas,05101,3,0 +2020-06-12,Newton,Arkansas,05101,3,0 +2020-06-13,Newton,Arkansas,05101,3,0 +2020-06-14,Newton,Arkansas,05101,3,0 +2020-06-15,Newton,Arkansas,05101,3,0 +2020-06-16,Newton,Arkansas,05101,3,0 +2020-06-17,Newton,Arkansas,05101,3,0 +2020-06-18,Newton,Arkansas,05101,3,0 +2020-06-19,Newton,Arkansas,05101,3,0 +2020-06-20,Newton,Arkansas,05101,3,0 +2020-06-21,Newton,Arkansas,05101,4,0 +2020-06-22,Newton,Arkansas,05101,4,0 +2020-06-23,Newton,Arkansas,05101,4,0 +2020-06-24,Newton,Arkansas,05101,4,0 +2020-06-25,Newton,Arkansas,05101,4,0 +2020-06-26,Newton,Arkansas,05101,5,0 +2020-06-27,Newton,Arkansas,05101,5,0 +2020-06-28,Newton,Arkansas,05101,5,0 +2020-06-29,Newton,Arkansas,05101,5,0 +2020-06-30,Newton,Arkansas,05101,5,0 +2020-07-01,Newton,Arkansas,05101,6,0 +2020-07-02,Newton,Arkansas,05101,6,0 +2020-07-03,Newton,Arkansas,05101,7,0 +2020-07-04,Newton,Arkansas,05101,8,0 +2020-07-05,Newton,Arkansas,05101,7,0 +2020-07-06,Newton,Arkansas,05101,7,0 +2020-07-07,Newton,Arkansas,05101,7,0 +2020-07-08,Newton,Arkansas,05101,7,0 +2020-07-09,Newton,Arkansas,05101,7,0 +2020-04-02,Ouachita,Arkansas,05103,1,0 +2020-04-03,Ouachita,Arkansas,05103,1,0 +2020-04-04,Ouachita,Arkansas,05103,1,0 +2020-04-05,Ouachita,Arkansas,05103,2,0 +2020-04-06,Ouachita,Arkansas,05103,3,0 +2020-04-07,Ouachita,Arkansas,05103,4,0 +2020-04-08,Ouachita,Arkansas,05103,5,0 +2020-04-09,Ouachita,Arkansas,05103,5,0 +2020-04-10,Ouachita,Arkansas,05103,5,0 +2020-04-11,Ouachita,Arkansas,05103,5,0 +2020-04-12,Ouachita,Arkansas,05103,5,0 +2020-04-13,Ouachita,Arkansas,05103,5,0 +2020-04-14,Ouachita,Arkansas,05103,5,0 +2020-04-15,Ouachita,Arkansas,05103,5,0 +2020-04-16,Ouachita,Arkansas,05103,5,0 +2020-04-17,Ouachita,Arkansas,05103,5,0 +2020-04-18,Ouachita,Arkansas,05103,5,0 +2020-04-19,Ouachita,Arkansas,05103,5,0 +2020-04-20,Ouachita,Arkansas,05103,5,0 +2020-04-21,Ouachita,Arkansas,05103,5,0 +2020-04-22,Ouachita,Arkansas,05103,5,0 +2020-04-23,Ouachita,Arkansas,05103,5,0 +2020-04-24,Ouachita,Arkansas,05103,5,0 +2020-04-25,Ouachita,Arkansas,05103,5,0 +2020-04-26,Ouachita,Arkansas,05103,5,0 +2020-04-27,Ouachita,Arkansas,05103,6,0 +2020-04-28,Ouachita,Arkansas,05103,6,0 +2020-04-29,Ouachita,Arkansas,05103,6,0 +2020-04-30,Ouachita,Arkansas,05103,6,0 +2020-05-01,Ouachita,Arkansas,05103,7,0 +2020-05-02,Ouachita,Arkansas,05103,7,0 +2020-05-03,Ouachita,Arkansas,05103,7,0 +2020-05-04,Ouachita,Arkansas,05103,7,0 +2020-05-05,Ouachita,Arkansas,05103,7,0 +2020-05-06,Ouachita,Arkansas,05103,7,0 +2020-05-07,Ouachita,Arkansas,05103,8,0 +2020-05-08,Ouachita,Arkansas,05103,8,0 +2020-05-09,Ouachita,Arkansas,05103,8,0 +2020-05-10,Ouachita,Arkansas,05103,9,0 +2020-05-11,Ouachita,Arkansas,05103,9,0 +2020-05-12,Ouachita,Arkansas,05103,8,0 +2020-05-13,Ouachita,Arkansas,05103,9,0 +2020-05-14,Ouachita,Arkansas,05103,9,0 +2020-05-15,Ouachita,Arkansas,05103,9,0 +2020-05-16,Ouachita,Arkansas,05103,10,0 +2020-05-17,Ouachita,Arkansas,05103,10,0 +2020-05-18,Ouachita,Arkansas,05103,10,0 +2020-05-19,Ouachita,Arkansas,05103,10,0 +2020-05-20,Ouachita,Arkansas,05103,10,0 +2020-05-21,Ouachita,Arkansas,05103,10,0 +2020-05-22,Ouachita,Arkansas,05103,10,0 +2020-05-23,Ouachita,Arkansas,05103,10,0 +2020-05-24,Ouachita,Arkansas,05103,10,0 +2020-05-25,Ouachita,Arkansas,05103,10,0 +2020-05-26,Ouachita,Arkansas,05103,10,0 +2020-05-27,Ouachita,Arkansas,05103,10,0 +2020-05-28,Ouachita,Arkansas,05103,10,0 +2020-05-29,Ouachita,Arkansas,05103,10,0 +2020-05-30,Ouachita,Arkansas,05103,10,0 +2020-05-31,Ouachita,Arkansas,05103,10,0 +2020-06-01,Ouachita,Arkansas,05103,10,0 +2020-06-02,Ouachita,Arkansas,05103,10,0 +2020-06-03,Ouachita,Arkansas,05103,10,0 +2020-06-04,Ouachita,Arkansas,05103,11,0 +2020-06-05,Ouachita,Arkansas,05103,12,0 +2020-06-06,Ouachita,Arkansas,05103,12,0 +2020-06-07,Ouachita,Arkansas,05103,14,0 +2020-06-08,Ouachita,Arkansas,05103,14,0 +2020-06-09,Ouachita,Arkansas,05103,13,0 +2020-06-10,Ouachita,Arkansas,05103,12,0 +2020-06-11,Ouachita,Arkansas,05103,12,0 +2020-06-12,Ouachita,Arkansas,05103,13,0 +2020-06-13,Ouachita,Arkansas,05103,13,0 +2020-06-14,Ouachita,Arkansas,05103,14,0 +2020-06-15,Ouachita,Arkansas,05103,15,0 +2020-06-16,Ouachita,Arkansas,05103,16,0 +2020-06-17,Ouachita,Arkansas,05103,17,0 +2020-06-18,Ouachita,Arkansas,05103,17,0 +2020-06-19,Ouachita,Arkansas,05103,17,0 +2020-06-20,Ouachita,Arkansas,05103,17,0 +2020-06-21,Ouachita,Arkansas,05103,17,0 +2020-06-22,Ouachita,Arkansas,05103,17,0 +2020-06-23,Ouachita,Arkansas,05103,17,0 +2020-06-24,Ouachita,Arkansas,05103,18,0 +2020-06-25,Ouachita,Arkansas,05103,18,0 +2020-06-26,Ouachita,Arkansas,05103,19,0 +2020-06-27,Ouachita,Arkansas,05103,19,0 +2020-06-28,Ouachita,Arkansas,05103,21,0 +2020-06-29,Ouachita,Arkansas,05103,20,0 +2020-06-30,Ouachita,Arkansas,05103,20,0 +2020-07-01,Ouachita,Arkansas,05103,20,0 +2020-07-02,Ouachita,Arkansas,05103,20,0 +2020-07-03,Ouachita,Arkansas,05103,20,0 +2020-07-04,Ouachita,Arkansas,05103,21,0 +2020-07-05,Ouachita,Arkansas,05103,21,0 +2020-07-06,Ouachita,Arkansas,05103,22,0 +2020-07-07,Ouachita,Arkansas,05103,25,0 +2020-07-08,Ouachita,Arkansas,05103,28,0 +2020-07-09,Ouachita,Arkansas,05103,29,0 +2020-03-29,Perry,Arkansas,05105,1,0 +2020-03-30,Perry,Arkansas,05105,1,0 +2020-03-31,Perry,Arkansas,05105,2,0 +2020-04-01,Perry,Arkansas,05105,2,0 +2020-04-02,Perry,Arkansas,05105,2,0 +2020-04-03,Perry,Arkansas,05105,2,0 +2020-04-04,Perry,Arkansas,05105,2,0 +2020-04-05,Perry,Arkansas,05105,2,0 +2020-04-06,Perry,Arkansas,05105,2,0 +2020-04-07,Perry,Arkansas,05105,2,0 +2020-04-08,Perry,Arkansas,05105,2,0 +2020-04-09,Perry,Arkansas,05105,2,0 +2020-04-10,Perry,Arkansas,05105,2,0 +2020-04-11,Perry,Arkansas,05105,2,0 +2020-04-12,Perry,Arkansas,05105,2,0 +2020-04-13,Perry,Arkansas,05105,2,0 +2020-04-14,Perry,Arkansas,05105,2,0 +2020-04-15,Perry,Arkansas,05105,2,0 +2020-04-16,Perry,Arkansas,05105,2,0 +2020-04-17,Perry,Arkansas,05105,3,0 +2020-04-18,Perry,Arkansas,05105,3,0 +2020-04-19,Perry,Arkansas,05105,3,0 +2020-04-20,Perry,Arkansas,05105,3,0 +2020-04-21,Perry,Arkansas,05105,3,0 +2020-04-22,Perry,Arkansas,05105,3,0 +2020-04-23,Perry,Arkansas,05105,3,0 +2020-04-24,Perry,Arkansas,05105,6,0 +2020-04-25,Perry,Arkansas,05105,6,0 +2020-04-26,Perry,Arkansas,05105,6,0 +2020-04-27,Perry,Arkansas,05105,6,0 +2020-04-28,Perry,Arkansas,05105,6,0 +2020-04-29,Perry,Arkansas,05105,6,0 +2020-04-30,Perry,Arkansas,05105,7,0 +2020-05-01,Perry,Arkansas,05105,7,0 +2020-05-02,Perry,Arkansas,05105,7,0 +2020-05-03,Perry,Arkansas,05105,7,0 +2020-05-04,Perry,Arkansas,05105,7,0 +2020-05-05,Perry,Arkansas,05105,7,0 +2020-05-06,Perry,Arkansas,05105,7,0 +2020-05-07,Perry,Arkansas,05105,7,0 +2020-05-08,Perry,Arkansas,05105,7,0 +2020-05-09,Perry,Arkansas,05105,7,0 +2020-05-10,Perry,Arkansas,05105,8,0 +2020-05-11,Perry,Arkansas,05105,8,0 +2020-05-12,Perry,Arkansas,05105,8,0 +2020-05-13,Perry,Arkansas,05105,8,0 +2020-05-14,Perry,Arkansas,05105,10,0 +2020-05-15,Perry,Arkansas,05105,12,0 +2020-05-16,Perry,Arkansas,05105,12,0 +2020-05-17,Perry,Arkansas,05105,12,0 +2020-05-18,Perry,Arkansas,05105,12,0 +2020-05-19,Perry,Arkansas,05105,12,0 +2020-05-20,Perry,Arkansas,05105,12,0 +2020-05-21,Perry,Arkansas,05105,12,0 +2020-05-22,Perry,Arkansas,05105,12,0 +2020-05-23,Perry,Arkansas,05105,12,0 +2020-05-24,Perry,Arkansas,05105,13,0 +2020-05-25,Perry,Arkansas,05105,13,0 +2020-05-26,Perry,Arkansas,05105,13,0 +2020-05-27,Perry,Arkansas,05105,14,0 +2020-05-28,Perry,Arkansas,05105,14,0 +2020-05-29,Perry,Arkansas,05105,14,0 +2020-05-30,Perry,Arkansas,05105,14,0 +2020-05-31,Perry,Arkansas,05105,14,0 +2020-06-01,Perry,Arkansas,05105,14,0 +2020-06-02,Perry,Arkansas,05105,14,0 +2020-06-03,Perry,Arkansas,05105,14,0 +2020-06-04,Perry,Arkansas,05105,14,0 +2020-06-05,Perry,Arkansas,05105,14,0 +2020-06-06,Perry,Arkansas,05105,15,0 +2020-06-07,Perry,Arkansas,05105,15,0 +2020-06-08,Perry,Arkansas,05105,15,0 +2020-06-09,Perry,Arkansas,05105,15,0 +2020-06-10,Perry,Arkansas,05105,15,0 +2020-06-11,Perry,Arkansas,05105,15,0 +2020-06-12,Perry,Arkansas,05105,15,0 +2020-06-13,Perry,Arkansas,05105,16,0 +2020-06-14,Perry,Arkansas,05105,16,0 +2020-06-15,Perry,Arkansas,05105,16,0 +2020-06-16,Perry,Arkansas,05105,16,0 +2020-06-17,Perry,Arkansas,05105,16,0 +2020-06-18,Perry,Arkansas,05105,17,0 +2020-06-19,Perry,Arkansas,05105,24,0 +2020-06-20,Perry,Arkansas,05105,25,0 +2020-06-21,Perry,Arkansas,05105,20,0 +2020-06-22,Perry,Arkansas,05105,21,0 +2020-06-23,Perry,Arkansas,05105,21,0 +2020-06-24,Perry,Arkansas,05105,22,0 +2020-06-25,Perry,Arkansas,05105,23,0 +2020-06-26,Perry,Arkansas,05105,26,0 +2020-06-27,Perry,Arkansas,05105,27,0 +2020-06-28,Perry,Arkansas,05105,29,0 +2020-06-29,Perry,Arkansas,05105,29,0 +2020-06-30,Perry,Arkansas,05105,29,0 +2020-07-01,Perry,Arkansas,05105,32,0 +2020-07-02,Perry,Arkansas,05105,33,0 +2020-07-03,Perry,Arkansas,05105,34,0 +2020-07-04,Perry,Arkansas,05105,35,0 +2020-07-05,Perry,Arkansas,05105,34,0 +2020-07-06,Perry,Arkansas,05105,34,0 +2020-07-07,Perry,Arkansas,05105,34,0 +2020-07-08,Perry,Arkansas,05105,32,0 +2020-07-09,Perry,Arkansas,05105,32,0 +2020-04-05,Phillips,Arkansas,05107,1,0 +2020-04-06,Phillips,Arkansas,05107,1,0 +2020-04-07,Phillips,Arkansas,05107,1,0 +2020-04-08,Phillips,Arkansas,05107,1,0 +2020-04-09,Phillips,Arkansas,05107,2,0 +2020-04-10,Phillips,Arkansas,05107,3,0 +2020-04-11,Phillips,Arkansas,05107,3,0 +2020-04-12,Phillips,Arkansas,05107,3,1 +2020-04-13,Phillips,Arkansas,05107,4,1 +2020-04-14,Phillips,Arkansas,05107,4,1 +2020-04-15,Phillips,Arkansas,05107,4,1 +2020-04-16,Phillips,Arkansas,05107,4,1 +2020-04-17,Phillips,Arkansas,05107,4,1 +2020-04-18,Phillips,Arkansas,05107,4,1 +2020-04-19,Phillips,Arkansas,05107,4,1 +2020-04-20,Phillips,Arkansas,05107,4,1 +2020-04-21,Phillips,Arkansas,05107,4,1 +2020-04-22,Phillips,Arkansas,05107,4,1 +2020-04-23,Phillips,Arkansas,05107,4,1 +2020-04-24,Phillips,Arkansas,05107,4,1 +2020-04-25,Phillips,Arkansas,05107,4,1 +2020-04-26,Phillips,Arkansas,05107,4,1 +2020-04-27,Phillips,Arkansas,05107,5,1 +2020-04-28,Phillips,Arkansas,05107,5,1 +2020-04-29,Phillips,Arkansas,05107,5,1 +2020-04-30,Phillips,Arkansas,05107,5,1 +2020-05-01,Phillips,Arkansas,05107,5,1 +2020-05-02,Phillips,Arkansas,05107,5,1 +2020-05-03,Phillips,Arkansas,05107,6,1 +2020-05-04,Phillips,Arkansas,05107,6,1 +2020-05-05,Phillips,Arkansas,05107,5,1 +2020-05-06,Phillips,Arkansas,05107,5,1 +2020-05-07,Phillips,Arkansas,05107,4,1 +2020-05-08,Phillips,Arkansas,05107,4,1 +2020-05-09,Phillips,Arkansas,05107,4,1 +2020-05-10,Phillips,Arkansas,05107,4,1 +2020-05-11,Phillips,Arkansas,05107,4,1 +2020-05-12,Phillips,Arkansas,05107,4,1 +2020-05-13,Phillips,Arkansas,05107,4,1 +2020-05-14,Phillips,Arkansas,05107,4,1 +2020-05-15,Phillips,Arkansas,05107,4,1 +2020-05-16,Phillips,Arkansas,05107,4,1 +2020-05-17,Phillips,Arkansas,05107,5,1 +2020-05-18,Phillips,Arkansas,05107,5,1 +2020-05-19,Phillips,Arkansas,05107,5,1 +2020-05-20,Phillips,Arkansas,05107,5,1 +2020-05-21,Phillips,Arkansas,05107,6,1 +2020-05-22,Phillips,Arkansas,05107,7,1 +2020-05-23,Phillips,Arkansas,05107,7,1 +2020-05-24,Phillips,Arkansas,05107,9,1 +2020-05-25,Phillips,Arkansas,05107,9,1 +2020-05-26,Phillips,Arkansas,05107,9,1 +2020-05-27,Phillips,Arkansas,05107,12,1 +2020-05-28,Phillips,Arkansas,05107,12,1 +2020-05-29,Phillips,Arkansas,05107,19,1 +2020-05-30,Phillips,Arkansas,05107,20,1 +2020-05-31,Phillips,Arkansas,05107,21,1 +2020-06-01,Phillips,Arkansas,05107,22,1 +2020-06-02,Phillips,Arkansas,05107,24,1 +2020-06-03,Phillips,Arkansas,05107,24,1 +2020-06-04,Phillips,Arkansas,05107,25,1 +2020-06-05,Phillips,Arkansas,05107,25,1 +2020-06-06,Phillips,Arkansas,05107,26,1 +2020-06-07,Phillips,Arkansas,05107,26,1 +2020-06-08,Phillips,Arkansas,05107,27,1 +2020-06-09,Phillips,Arkansas,05107,30,1 +2020-06-10,Phillips,Arkansas,05107,30,1 +2020-06-11,Phillips,Arkansas,05107,31,1 +2020-06-12,Phillips,Arkansas,05107,32,1 +2020-06-13,Phillips,Arkansas,05107,36,1 +2020-06-14,Phillips,Arkansas,05107,39,1 +2020-06-15,Phillips,Arkansas,05107,49,1 +2020-06-16,Phillips,Arkansas,05107,52,1 +2020-06-17,Phillips,Arkansas,05107,53,1 +2020-06-18,Phillips,Arkansas,05107,64,1 +2020-06-19,Phillips,Arkansas,05107,75,1 +2020-06-20,Phillips,Arkansas,05107,79,2 +2020-06-21,Phillips,Arkansas,05107,79,2 +2020-06-22,Phillips,Arkansas,05107,87,2 +2020-06-23,Phillips,Arkansas,05107,90,3 +2020-06-24,Phillips,Arkansas,05107,91,3 +2020-06-25,Phillips,Arkansas,05107,104,3 +2020-06-26,Phillips,Arkansas,05107,109,3 +2020-06-27,Phillips,Arkansas,05107,127,3 +2020-06-28,Phillips,Arkansas,05107,132,3 +2020-06-29,Phillips,Arkansas,05107,140,3 +2020-06-30,Phillips,Arkansas,05107,142,3 +2020-07-01,Phillips,Arkansas,05107,143,3 +2020-07-02,Phillips,Arkansas,05107,149,3 +2020-07-03,Phillips,Arkansas,05107,155,3 +2020-07-04,Phillips,Arkansas,05107,155,4 +2020-07-05,Phillips,Arkansas,05107,155,4 +2020-07-06,Phillips,Arkansas,05107,156,5 +2020-07-07,Phillips,Arkansas,05107,159,5 +2020-07-08,Phillips,Arkansas,05107,160,5 +2020-07-09,Phillips,Arkansas,05107,165,5 +2020-03-24,Pike,Arkansas,05109,1,0 +2020-03-25,Pike,Arkansas,05109,2,0 +2020-03-26,Pike,Arkansas,05109,2,0 +2020-03-27,Pike,Arkansas,05109,2,0 +2020-03-28,Pike,Arkansas,05109,3,0 +2020-03-29,Pike,Arkansas,05109,3,0 +2020-03-30,Pike,Arkansas,05109,2,0 +2020-03-31,Pike,Arkansas,05109,2,0 +2020-04-01,Pike,Arkansas,05109,2,0 +2020-04-02,Pike,Arkansas,05109,2,0 +2020-04-03,Pike,Arkansas,05109,2,0 +2020-04-04,Pike,Arkansas,05109,2,0 +2020-04-05,Pike,Arkansas,05109,2,0 +2020-04-06,Pike,Arkansas,05109,2,0 +2020-04-07,Pike,Arkansas,05109,2,0 +2020-04-08,Pike,Arkansas,05109,2,0 +2020-04-09,Pike,Arkansas,05109,2,0 +2020-04-10,Pike,Arkansas,05109,2,0 +2020-04-11,Pike,Arkansas,05109,2,0 +2020-04-12,Pike,Arkansas,05109,2,0 +2020-04-13,Pike,Arkansas,05109,2,0 +2020-04-14,Pike,Arkansas,05109,2,0 +2020-04-15,Pike,Arkansas,05109,2,0 +2020-04-16,Pike,Arkansas,05109,2,0 +2020-04-17,Pike,Arkansas,05109,2,0 +2020-04-18,Pike,Arkansas,05109,2,0 +2020-04-19,Pike,Arkansas,05109,2,0 +2020-04-20,Pike,Arkansas,05109,2,0 +2020-04-21,Pike,Arkansas,05109,2,0 +2020-04-22,Pike,Arkansas,05109,3,0 +2020-04-23,Pike,Arkansas,05109,3,0 +2020-04-24,Pike,Arkansas,05109,3,0 +2020-04-25,Pike,Arkansas,05109,3,0 +2020-04-26,Pike,Arkansas,05109,3,0 +2020-04-27,Pike,Arkansas,05109,3,0 +2020-04-28,Pike,Arkansas,05109,3,0 +2020-04-29,Pike,Arkansas,05109,3,0 +2020-04-30,Pike,Arkansas,05109,3,0 +2020-05-01,Pike,Arkansas,05109,3,0 +2020-05-02,Pike,Arkansas,05109,3,0 +2020-05-03,Pike,Arkansas,05109,3,0 +2020-05-04,Pike,Arkansas,05109,3,0 +2020-05-05,Pike,Arkansas,05109,3,0 +2020-05-06,Pike,Arkansas,05109,3,0 +2020-05-07,Pike,Arkansas,05109,3,0 +2020-05-08,Pike,Arkansas,05109,3,0 +2020-05-09,Pike,Arkansas,05109,3,0 +2020-05-10,Pike,Arkansas,05109,3,0 +2020-05-11,Pike,Arkansas,05109,3,0 +2020-05-12,Pike,Arkansas,05109,3,0 +2020-05-13,Pike,Arkansas,05109,3,0 +2020-05-14,Pike,Arkansas,05109,3,0 +2020-05-15,Pike,Arkansas,05109,3,0 +2020-05-16,Pike,Arkansas,05109,3,0 +2020-05-17,Pike,Arkansas,05109,3,0 +2020-05-18,Pike,Arkansas,05109,3,0 +2020-05-19,Pike,Arkansas,05109,3,0 +2020-05-20,Pike,Arkansas,05109,3,0 +2020-05-21,Pike,Arkansas,05109,4,0 +2020-05-22,Pike,Arkansas,05109,4,0 +2020-05-23,Pike,Arkansas,05109,4,0 +2020-05-24,Pike,Arkansas,05109,4,0 +2020-05-25,Pike,Arkansas,05109,4,0 +2020-05-26,Pike,Arkansas,05109,5,0 +2020-05-27,Pike,Arkansas,05109,5,0 +2020-05-28,Pike,Arkansas,05109,5,0 +2020-05-29,Pike,Arkansas,05109,5,0 +2020-05-30,Pike,Arkansas,05109,5,0 +2020-05-31,Pike,Arkansas,05109,5,0 +2020-06-01,Pike,Arkansas,05109,5,0 +2020-06-02,Pike,Arkansas,05109,5,0 +2020-06-03,Pike,Arkansas,05109,5,0 +2020-06-04,Pike,Arkansas,05109,5,0 +2020-06-05,Pike,Arkansas,05109,6,0 +2020-06-06,Pike,Arkansas,05109,6,0 +2020-06-07,Pike,Arkansas,05109,6,0 +2020-06-08,Pike,Arkansas,05109,6,0 +2020-06-09,Pike,Arkansas,05109,6,0 +2020-06-10,Pike,Arkansas,05109,6,0 +2020-06-11,Pike,Arkansas,05109,6,0 +2020-06-12,Pike,Arkansas,05109,6,0 +2020-06-13,Pike,Arkansas,05109,7,0 +2020-06-14,Pike,Arkansas,05109,7,0 +2020-06-15,Pike,Arkansas,05109,7,0 +2020-06-16,Pike,Arkansas,05109,7,0 +2020-06-17,Pike,Arkansas,05109,7,0 +2020-06-18,Pike,Arkansas,05109,7,0 +2020-06-19,Pike,Arkansas,05109,7,0 +2020-06-20,Pike,Arkansas,05109,7,0 +2020-06-21,Pike,Arkansas,05109,7,0 +2020-06-22,Pike,Arkansas,05109,7,0 +2020-06-23,Pike,Arkansas,05109,7,0 +2020-06-24,Pike,Arkansas,05109,7,0 +2020-06-25,Pike,Arkansas,05109,8,0 +2020-06-26,Pike,Arkansas,05109,8,0 +2020-06-27,Pike,Arkansas,05109,8,0 +2020-06-28,Pike,Arkansas,05109,8,0 +2020-06-29,Pike,Arkansas,05109,8,0 +2020-06-30,Pike,Arkansas,05109,8,0 +2020-07-01,Pike,Arkansas,05109,7,0 +2020-07-02,Pike,Arkansas,05109,9,0 +2020-07-03,Pike,Arkansas,05109,9,0 +2020-07-04,Pike,Arkansas,05109,10,0 +2020-07-05,Pike,Arkansas,05109,10,0 +2020-07-06,Pike,Arkansas,05109,10,0 +2020-07-07,Pike,Arkansas,05109,11,0 +2020-07-08,Pike,Arkansas,05109,12,0 +2020-07-09,Pike,Arkansas,05109,19,0 +2020-03-19,Poinsett,Arkansas,05111,1,0 +2020-03-20,Poinsett,Arkansas,05111,1,0 +2020-03-21,Poinsett,Arkansas,05111,1,0 +2020-03-22,Poinsett,Arkansas,05111,1,0 +2020-03-23,Poinsett,Arkansas,05111,1,0 +2020-03-24,Poinsett,Arkansas,05111,3,0 +2020-03-25,Poinsett,Arkansas,05111,3,0 +2020-03-26,Poinsett,Arkansas,05111,3,0 +2020-03-27,Poinsett,Arkansas,05111,3,0 +2020-03-28,Poinsett,Arkansas,05111,3,0 +2020-03-29,Poinsett,Arkansas,05111,3,0 +2020-03-30,Poinsett,Arkansas,05111,5,0 +2020-03-31,Poinsett,Arkansas,05111,5,0 +2020-04-01,Poinsett,Arkansas,05111,5,0 +2020-04-02,Poinsett,Arkansas,05111,5,0 +2020-04-03,Poinsett,Arkansas,05111,5,0 +2020-04-04,Poinsett,Arkansas,05111,5,0 +2020-04-05,Poinsett,Arkansas,05111,5,0 +2020-04-06,Poinsett,Arkansas,05111,6,0 +2020-04-07,Poinsett,Arkansas,05111,6,0 +2020-04-08,Poinsett,Arkansas,05111,6,0 +2020-04-09,Poinsett,Arkansas,05111,6,0 +2020-04-10,Poinsett,Arkansas,05111,7,0 +2020-04-11,Poinsett,Arkansas,05111,7,0 +2020-04-12,Poinsett,Arkansas,05111,7,0 +2020-04-13,Poinsett,Arkansas,05111,7,0 +2020-04-14,Poinsett,Arkansas,05111,7,0 +2020-04-15,Poinsett,Arkansas,05111,9,0 +2020-04-16,Poinsett,Arkansas,05111,9,0 +2020-04-17,Poinsett,Arkansas,05111,10,0 +2020-04-18,Poinsett,Arkansas,05111,10,0 +2020-04-19,Poinsett,Arkansas,05111,10,0 +2020-04-20,Poinsett,Arkansas,05111,10,0 +2020-04-21,Poinsett,Arkansas,05111,11,0 +2020-04-22,Poinsett,Arkansas,05111,13,0 +2020-04-23,Poinsett,Arkansas,05111,13,0 +2020-04-24,Poinsett,Arkansas,05111,14,0 +2020-04-25,Poinsett,Arkansas,05111,14,0 +2020-04-26,Poinsett,Arkansas,05111,16,0 +2020-04-27,Poinsett,Arkansas,05111,18,0 +2020-04-28,Poinsett,Arkansas,05111,18,1 +2020-04-29,Poinsett,Arkansas,05111,21,1 +2020-04-30,Poinsett,Arkansas,05111,22,1 +2020-05-01,Poinsett,Arkansas,05111,23,2 +2020-05-02,Poinsett,Arkansas,05111,23,2 +2020-05-03,Poinsett,Arkansas,05111,23,2 +2020-05-04,Poinsett,Arkansas,05111,23,2 +2020-05-05,Poinsett,Arkansas,05111,25,2 +2020-05-06,Poinsett,Arkansas,05111,25,2 +2020-05-07,Poinsett,Arkansas,05111,25,2 +2020-05-08,Poinsett,Arkansas,05111,25,2 +2020-05-09,Poinsett,Arkansas,05111,25,2 +2020-05-10,Poinsett,Arkansas,05111,25,2 +2020-05-11,Poinsett,Arkansas,05111,25,2 +2020-05-12,Poinsett,Arkansas,05111,25,2 +2020-05-13,Poinsett,Arkansas,05111,25,2 +2020-05-14,Poinsett,Arkansas,05111,25,2 +2020-05-15,Poinsett,Arkansas,05111,25,2 +2020-05-16,Poinsett,Arkansas,05111,26,2 +2020-05-17,Poinsett,Arkansas,05111,26,2 +2020-05-18,Poinsett,Arkansas,05111,27,2 +2020-05-19,Poinsett,Arkansas,05111,28,2 +2020-05-20,Poinsett,Arkansas,05111,28,2 +2020-05-21,Poinsett,Arkansas,05111,30,2 +2020-05-22,Poinsett,Arkansas,05111,31,2 +2020-05-23,Poinsett,Arkansas,05111,31,2 +2020-05-24,Poinsett,Arkansas,05111,31,2 +2020-05-25,Poinsett,Arkansas,05111,30,2 +2020-05-26,Poinsett,Arkansas,05111,30,2 +2020-05-27,Poinsett,Arkansas,05111,31,2 +2020-05-28,Poinsett,Arkansas,05111,31,2 +2020-05-29,Poinsett,Arkansas,05111,31,2 +2020-05-30,Poinsett,Arkansas,05111,33,2 +2020-05-31,Poinsett,Arkansas,05111,33,2 +2020-06-01,Poinsett,Arkansas,05111,33,2 +2020-06-02,Poinsett,Arkansas,05111,37,2 +2020-06-03,Poinsett,Arkansas,05111,38,2 +2020-06-04,Poinsett,Arkansas,05111,40,2 +2020-06-05,Poinsett,Arkansas,05111,41,2 +2020-06-06,Poinsett,Arkansas,05111,42,2 +2020-06-07,Poinsett,Arkansas,05111,44,2 +2020-06-08,Poinsett,Arkansas,05111,44,2 +2020-06-09,Poinsett,Arkansas,05111,44,2 +2020-06-10,Poinsett,Arkansas,05111,44,2 +2020-06-11,Poinsett,Arkansas,05111,46,3 +2020-06-12,Poinsett,Arkansas,05111,50,3 +2020-06-13,Poinsett,Arkansas,05111,50,3 +2020-06-14,Poinsett,Arkansas,05111,50,3 +2020-06-15,Poinsett,Arkansas,05111,51,3 +2020-06-16,Poinsett,Arkansas,05111,51,3 +2020-06-17,Poinsett,Arkansas,05111,52,3 +2020-06-18,Poinsett,Arkansas,05111,52,3 +2020-06-19,Poinsett,Arkansas,05111,52,3 +2020-06-20,Poinsett,Arkansas,05111,53,3 +2020-06-21,Poinsett,Arkansas,05111,53,3 +2020-06-22,Poinsett,Arkansas,05111,53,3 +2020-06-23,Poinsett,Arkansas,05111,53,3 +2020-06-24,Poinsett,Arkansas,05111,53,3 +2020-06-25,Poinsett,Arkansas,05111,55,3 +2020-06-26,Poinsett,Arkansas,05111,56,3 +2020-06-27,Poinsett,Arkansas,05111,56,3 +2020-06-28,Poinsett,Arkansas,05111,57,3 +2020-06-29,Poinsett,Arkansas,05111,57,3 +2020-06-30,Poinsett,Arkansas,05111,58,3 +2020-07-01,Poinsett,Arkansas,05111,59,3 +2020-07-02,Poinsett,Arkansas,05111,61,3 +2020-07-03,Poinsett,Arkansas,05111,61,3 +2020-07-04,Poinsett,Arkansas,05111,61,3 +2020-07-05,Poinsett,Arkansas,05111,62,3 +2020-07-06,Poinsett,Arkansas,05111,63,3 +2020-07-07,Poinsett,Arkansas,05111,63,3 +2020-07-08,Poinsett,Arkansas,05111,64,3 +2020-07-09,Poinsett,Arkansas,05111,64,3 +2020-03-19,Polk,Arkansas,05113,1,0 +2020-03-20,Polk,Arkansas,05113,1,0 +2020-03-21,Polk,Arkansas,05113,1,0 +2020-03-22,Polk,Arkansas,05113,1,0 +2020-03-23,Polk,Arkansas,05113,1,0 +2020-03-24,Polk,Arkansas,05113,2,0 +2020-03-25,Polk,Arkansas,05113,2,0 +2020-03-26,Polk,Arkansas,05113,2,0 +2020-03-27,Polk,Arkansas,05113,2,0 +2020-03-28,Polk,Arkansas,05113,2,0 +2020-03-29,Polk,Arkansas,05113,2,0 +2020-03-30,Polk,Arkansas,05113,2,0 +2020-03-31,Polk,Arkansas,05113,4,0 +2020-04-01,Polk,Arkansas,05113,5,0 +2020-04-02,Polk,Arkansas,05113,5,0 +2020-04-03,Polk,Arkansas,05113,5,0 +2020-04-04,Polk,Arkansas,05113,5,0 +2020-04-05,Polk,Arkansas,05113,5,0 +2020-04-06,Polk,Arkansas,05113,5,0 +2020-04-07,Polk,Arkansas,05113,6,0 +2020-04-08,Polk,Arkansas,05113,6,0 +2020-04-09,Polk,Arkansas,05113,6,0 +2020-04-10,Polk,Arkansas,05113,6,0 +2020-04-11,Polk,Arkansas,05113,6,0 +2020-04-12,Polk,Arkansas,05113,6,0 +2020-04-13,Polk,Arkansas,05113,6,0 +2020-04-14,Polk,Arkansas,05113,6,0 +2020-04-15,Polk,Arkansas,05113,6,0 +2020-04-16,Polk,Arkansas,05113,6,0 +2020-04-17,Polk,Arkansas,05113,7,0 +2020-04-18,Polk,Arkansas,05113,7,0 +2020-04-19,Polk,Arkansas,05113,7,0 +2020-04-20,Polk,Arkansas,05113,7,0 +2020-04-21,Polk,Arkansas,05113,7,0 +2020-04-22,Polk,Arkansas,05113,7,0 +2020-04-23,Polk,Arkansas,05113,7,0 +2020-04-24,Polk,Arkansas,05113,7,0 +2020-04-25,Polk,Arkansas,05113,7,0 +2020-04-26,Polk,Arkansas,05113,7,0 +2020-04-27,Polk,Arkansas,05113,8,0 +2020-04-28,Polk,Arkansas,05113,8,0 +2020-04-29,Polk,Arkansas,05113,8,0 +2020-04-30,Polk,Arkansas,05113,8,0 +2020-05-01,Polk,Arkansas,05113,7,0 +2020-05-02,Polk,Arkansas,05113,7,0 +2020-05-03,Polk,Arkansas,05113,8,0 +2020-05-04,Polk,Arkansas,05113,8,0 +2020-05-05,Polk,Arkansas,05113,7,0 +2020-05-06,Polk,Arkansas,05113,7,0 +2020-05-07,Polk,Arkansas,05113,7,0 +2020-05-08,Polk,Arkansas,05113,7,0 +2020-05-09,Polk,Arkansas,05113,7,0 +2020-05-10,Polk,Arkansas,05113,7,0 +2020-05-11,Polk,Arkansas,05113,7,0 +2020-05-12,Polk,Arkansas,05113,7,0 +2020-05-13,Polk,Arkansas,05113,7,0 +2020-05-14,Polk,Arkansas,05113,7,0 +2020-05-15,Polk,Arkansas,05113,7,0 +2020-05-16,Polk,Arkansas,05113,7,0 +2020-05-17,Polk,Arkansas,05113,8,0 +2020-05-18,Polk,Arkansas,05113,8,0 +2020-05-19,Polk,Arkansas,05113,8,0 +2020-05-20,Polk,Arkansas,05113,9,0 +2020-05-21,Polk,Arkansas,05113,9,0 +2020-05-22,Polk,Arkansas,05113,9,0 +2020-05-23,Polk,Arkansas,05113,9,0 +2020-05-24,Polk,Arkansas,05113,10,0 +2020-05-25,Polk,Arkansas,05113,11,0 +2020-05-26,Polk,Arkansas,05113,12,0 +2020-05-27,Polk,Arkansas,05113,11,0 +2020-05-28,Polk,Arkansas,05113,12,0 +2020-05-29,Polk,Arkansas,05113,17,0 +2020-05-30,Polk,Arkansas,05113,17,0 +2020-05-31,Polk,Arkansas,05113,19,0 +2020-06-01,Polk,Arkansas,05113,21,0 +2020-06-02,Polk,Arkansas,05113,26,0 +2020-06-03,Polk,Arkansas,05113,28,1 +2020-06-04,Polk,Arkansas,05113,28,0 +2020-06-05,Polk,Arkansas,05113,29,0 +2020-06-06,Polk,Arkansas,05113,33,0 +2020-06-07,Polk,Arkansas,05113,41,0 +2020-06-08,Polk,Arkansas,05113,45,0 +2020-06-09,Polk,Arkansas,05113,45,0 +2020-06-10,Polk,Arkansas,05113,47,0 +2020-06-11,Polk,Arkansas,05113,48,0 +2020-06-12,Polk,Arkansas,05113,48,0 +2020-06-13,Polk,Arkansas,05113,51,0 +2020-06-14,Polk,Arkansas,05113,53,0 +2020-06-15,Polk,Arkansas,05113,56,0 +2020-06-16,Polk,Arkansas,05113,58,0 +2020-06-17,Polk,Arkansas,05113,60,0 +2020-06-18,Polk,Arkansas,05113,60,0 +2020-06-19,Polk,Arkansas,05113,62,0 +2020-06-20,Polk,Arkansas,05113,63,0 +2020-06-21,Polk,Arkansas,05113,64,0 +2020-06-22,Polk,Arkansas,05113,67,0 +2020-06-23,Polk,Arkansas,05113,67,0 +2020-06-24,Polk,Arkansas,05113,69,0 +2020-06-25,Polk,Arkansas,05113,69,0 +2020-06-26,Polk,Arkansas,05113,70,0 +2020-06-27,Polk,Arkansas,05113,70,0 +2020-06-28,Polk,Arkansas,05113,72,0 +2020-06-29,Polk,Arkansas,05113,74,0 +2020-06-30,Polk,Arkansas,05113,74,0 +2020-07-01,Polk,Arkansas,05113,75,0 +2020-07-02,Polk,Arkansas,05113,75,0 +2020-07-03,Polk,Arkansas,05113,75,0 +2020-07-04,Polk,Arkansas,05113,76,0 +2020-07-05,Polk,Arkansas,05113,77,0 +2020-07-06,Polk,Arkansas,05113,80,0 +2020-07-07,Polk,Arkansas,05113,80,0 +2020-07-08,Polk,Arkansas,05113,81,0 +2020-07-09,Polk,Arkansas,05113,84,0 +2020-03-19,Pope,Arkansas,05115,1,0 +2020-03-20,Pope,Arkansas,05115,1,0 +2020-03-21,Pope,Arkansas,05115,1,0 +2020-03-22,Pope,Arkansas,05115,1,0 +2020-03-23,Pope,Arkansas,05115,1,0 +2020-03-24,Pope,Arkansas,05115,2,0 +2020-03-25,Pope,Arkansas,05115,3,0 +2020-03-26,Pope,Arkansas,05115,3,0 +2020-03-27,Pope,Arkansas,05115,3,0 +2020-03-28,Pope,Arkansas,05115,3,0 +2020-03-29,Pope,Arkansas,05115,4,0 +2020-03-30,Pope,Arkansas,05115,5,0 +2020-03-31,Pope,Arkansas,05115,6,0 +2020-04-01,Pope,Arkansas,05115,6,0 +2020-04-02,Pope,Arkansas,05115,8,0 +2020-04-03,Pope,Arkansas,05115,8,0 +2020-04-04,Pope,Arkansas,05115,8,0 +2020-04-05,Pope,Arkansas,05115,13,0 +2020-04-06,Pope,Arkansas,05115,17,0 +2020-04-07,Pope,Arkansas,05115,20,0 +2020-04-08,Pope,Arkansas,05115,21,0 +2020-04-09,Pope,Arkansas,05115,23,0 +2020-04-10,Pope,Arkansas,05115,26,0 +2020-04-11,Pope,Arkansas,05115,26,0 +2020-04-12,Pope,Arkansas,05115,30,0 +2020-04-13,Pope,Arkansas,05115,31,0 +2020-04-14,Pope,Arkansas,05115,31,0 +2020-04-15,Pope,Arkansas,05115,32,0 +2020-04-16,Pope,Arkansas,05115,33,0 +2020-04-17,Pope,Arkansas,05115,33,0 +2020-04-18,Pope,Arkansas,05115,35,0 +2020-04-19,Pope,Arkansas,05115,35,0 +2020-04-20,Pope,Arkansas,05115,35,0 +2020-04-21,Pope,Arkansas,05115,35,0 +2020-04-22,Pope,Arkansas,05115,36,0 +2020-04-23,Pope,Arkansas,05115,37,0 +2020-04-24,Pope,Arkansas,05115,37,0 +2020-04-25,Pope,Arkansas,05115,37,0 +2020-04-26,Pope,Arkansas,05115,41,0 +2020-04-27,Pope,Arkansas,05115,42,0 +2020-04-28,Pope,Arkansas,05115,42,0 +2020-04-29,Pope,Arkansas,05115,43,0 +2020-04-30,Pope,Arkansas,05115,43,0 +2020-05-01,Pope,Arkansas,05115,43,0 +2020-05-02,Pope,Arkansas,05115,44,0 +2020-05-03,Pope,Arkansas,05115,44,0 +2020-05-04,Pope,Arkansas,05115,44,0 +2020-05-05,Pope,Arkansas,05115,45,0 +2020-05-06,Pope,Arkansas,05115,46,0 +2020-05-07,Pope,Arkansas,05115,47,0 +2020-05-08,Pope,Arkansas,05115,47,0 +2020-05-09,Pope,Arkansas,05115,47,0 +2020-05-10,Pope,Arkansas,05115,47,0 +2020-05-11,Pope,Arkansas,05115,48,0 +2020-05-12,Pope,Arkansas,05115,48,0 +2020-05-13,Pope,Arkansas,05115,51,0 +2020-05-14,Pope,Arkansas,05115,52,0 +2020-05-15,Pope,Arkansas,05115,61,0 +2020-05-16,Pope,Arkansas,05115,63,0 +2020-05-17,Pope,Arkansas,05115,73,0 +2020-05-18,Pope,Arkansas,05115,76,0 +2020-05-19,Pope,Arkansas,05115,76,0 +2020-05-20,Pope,Arkansas,05115,79,0 +2020-05-21,Pope,Arkansas,05115,92,1 +2020-05-22,Pope,Arkansas,05115,100,1 +2020-05-23,Pope,Arkansas,05115,107,1 +2020-05-24,Pope,Arkansas,05115,113,1 +2020-05-25,Pope,Arkansas,05115,119,1 +2020-05-26,Pope,Arkansas,05115,124,1 +2020-05-27,Pope,Arkansas,05115,125,1 +2020-05-28,Pope,Arkansas,05115,129,1 +2020-05-29,Pope,Arkansas,05115,136,1 +2020-05-30,Pope,Arkansas,05115,142,1 +2020-05-31,Pope,Arkansas,05115,148,1 +2020-06-01,Pope,Arkansas,05115,161,1 +2020-06-02,Pope,Arkansas,05115,166,1 +2020-06-03,Pope,Arkansas,05115,171,1 +2020-06-04,Pope,Arkansas,05115,178,2 +2020-06-05,Pope,Arkansas,05115,184,2 +2020-06-06,Pope,Arkansas,05115,197,2 +2020-06-07,Pope,Arkansas,05115,204,2 +2020-06-08,Pope,Arkansas,05115,213,2 +2020-06-09,Pope,Arkansas,05115,218,2 +2020-06-10,Pope,Arkansas,05115,222,2 +2020-06-11,Pope,Arkansas,05115,232,2 +2020-06-12,Pope,Arkansas,05115,234,2 +2020-06-13,Pope,Arkansas,05115,245,2 +2020-06-14,Pope,Arkansas,05115,256,2 +2020-06-15,Pope,Arkansas,05115,281,2 +2020-06-16,Pope,Arkansas,05115,285,2 +2020-06-17,Pope,Arkansas,05115,291,2 +2020-06-18,Pope,Arkansas,05115,301,2 +2020-06-19,Pope,Arkansas,05115,304,2 +2020-06-20,Pope,Arkansas,05115,322,2 +2020-06-21,Pope,Arkansas,05115,326,2 +2020-06-22,Pope,Arkansas,05115,333,2 +2020-06-23,Pope,Arkansas,05115,349,2 +2020-06-24,Pope,Arkansas,05115,363,3 +2020-06-25,Pope,Arkansas,05115,370,3 +2020-06-26,Pope,Arkansas,05115,392,3 +2020-06-27,Pope,Arkansas,05115,402,3 +2020-06-28,Pope,Arkansas,05115,414,3 +2020-06-29,Pope,Arkansas,05115,416,3 +2020-06-30,Pope,Arkansas,05115,433,3 +2020-07-01,Pope,Arkansas,05115,442,3 +2020-07-02,Pope,Arkansas,05115,451,3 +2020-07-03,Pope,Arkansas,05115,468,4 +2020-07-04,Pope,Arkansas,05115,476,4 +2020-07-05,Pope,Arkansas,05115,495,4 +2020-07-06,Pope,Arkansas,05115,500,4 +2020-07-07,Pope,Arkansas,05115,516,4 +2020-07-08,Pope,Arkansas,05115,562,4 +2020-07-09,Pope,Arkansas,05115,585,4 +2020-04-03,Prairie,Arkansas,05117,1,0 +2020-04-04,Prairie,Arkansas,05117,1,0 +2020-04-05,Prairie,Arkansas,05117,2,0 +2020-04-06,Prairie,Arkansas,05117,2,0 +2020-04-07,Prairie,Arkansas,05117,2,0 +2020-04-08,Prairie,Arkansas,05117,2,0 +2020-04-09,Prairie,Arkansas,05117,2,0 +2020-04-10,Prairie,Arkansas,05117,2,0 +2020-04-11,Prairie,Arkansas,05117,2,0 +2020-04-12,Prairie,Arkansas,05117,2,0 +2020-04-13,Prairie,Arkansas,05117,2,0 +2020-04-14,Prairie,Arkansas,05117,2,0 +2020-04-15,Prairie,Arkansas,05117,2,0 +2020-04-16,Prairie,Arkansas,05117,2,0 +2020-04-17,Prairie,Arkansas,05117,2,0 +2020-04-18,Prairie,Arkansas,05117,2,0 +2020-04-19,Prairie,Arkansas,05117,2,0 +2020-04-20,Prairie,Arkansas,05117,2,0 +2020-04-21,Prairie,Arkansas,05117,2,0 +2020-04-22,Prairie,Arkansas,05117,2,0 +2020-04-23,Prairie,Arkansas,05117,2,0 +2020-04-24,Prairie,Arkansas,05117,2,0 +2020-04-25,Prairie,Arkansas,05117,2,0 +2020-04-26,Prairie,Arkansas,05117,2,0 +2020-04-27,Prairie,Arkansas,05117,2,0 +2020-04-28,Prairie,Arkansas,05117,2,0 +2020-04-29,Prairie,Arkansas,05117,2,0 +2020-04-30,Prairie,Arkansas,05117,2,0 +2020-05-01,Prairie,Arkansas,05117,2,0 +2020-05-02,Prairie,Arkansas,05117,2,0 +2020-05-03,Prairie,Arkansas,05117,2,0 +2020-05-04,Prairie,Arkansas,05117,2,0 +2020-05-05,Prairie,Arkansas,05117,2,0 +2020-05-06,Prairie,Arkansas,05117,2,0 +2020-05-07,Prairie,Arkansas,05117,2,0 +2020-05-08,Prairie,Arkansas,05117,2,0 +2020-05-09,Prairie,Arkansas,05117,2,0 +2020-05-10,Prairie,Arkansas,05117,2,0 +2020-05-11,Prairie,Arkansas,05117,2,0 +2020-05-12,Prairie,Arkansas,05117,2,0 +2020-05-13,Prairie,Arkansas,05117,2,0 +2020-05-14,Prairie,Arkansas,05117,2,0 +2020-05-15,Prairie,Arkansas,05117,2,0 +2020-05-16,Prairie,Arkansas,05117,2,0 +2020-05-17,Prairie,Arkansas,05117,2,0 +2020-05-18,Prairie,Arkansas,05117,2,0 +2020-05-19,Prairie,Arkansas,05117,2,0 +2020-05-20,Prairie,Arkansas,05117,2,0 +2020-05-21,Prairie,Arkansas,05117,2,0 +2020-05-22,Prairie,Arkansas,05117,2,0 +2020-05-23,Prairie,Arkansas,05117,2,0 +2020-05-24,Prairie,Arkansas,05117,2,0 +2020-05-25,Prairie,Arkansas,05117,2,0 +2020-05-26,Prairie,Arkansas,05117,2,0 +2020-05-27,Prairie,Arkansas,05117,2,0 +2020-05-28,Prairie,Arkansas,05117,2,0 +2020-05-29,Prairie,Arkansas,05117,2,0 +2020-05-30,Prairie,Arkansas,05117,2,0 +2020-05-31,Prairie,Arkansas,05117,2,0 +2020-06-01,Prairie,Arkansas,05117,2,0 +2020-06-02,Prairie,Arkansas,05117,3,0 +2020-06-03,Prairie,Arkansas,05117,3,0 +2020-06-04,Prairie,Arkansas,05117,3,0 +2020-06-05,Prairie,Arkansas,05117,3,0 +2020-06-06,Prairie,Arkansas,05117,4,0 +2020-06-07,Prairie,Arkansas,05117,5,0 +2020-06-08,Prairie,Arkansas,05117,5,0 +2020-06-09,Prairie,Arkansas,05117,5,0 +2020-06-10,Prairie,Arkansas,05117,5,0 +2020-06-11,Prairie,Arkansas,05117,5,0 +2020-06-12,Prairie,Arkansas,05117,6,0 +2020-06-13,Prairie,Arkansas,05117,7,0 +2020-06-14,Prairie,Arkansas,05117,7,0 +2020-06-15,Prairie,Arkansas,05117,7,0 +2020-06-16,Prairie,Arkansas,05117,9,0 +2020-06-17,Prairie,Arkansas,05117,12,0 +2020-06-18,Prairie,Arkansas,05117,12,0 +2020-06-19,Prairie,Arkansas,05117,12,0 +2020-06-20,Prairie,Arkansas,05117,12,0 +2020-06-21,Prairie,Arkansas,05117,13,0 +2020-06-22,Prairie,Arkansas,05117,16,0 +2020-06-23,Prairie,Arkansas,05117,16,0 +2020-06-24,Prairie,Arkansas,05117,18,0 +2020-06-25,Prairie,Arkansas,05117,19,0 +2020-06-26,Prairie,Arkansas,05117,19,0 +2020-06-27,Prairie,Arkansas,05117,20,0 +2020-06-28,Prairie,Arkansas,05117,20,0 +2020-06-29,Prairie,Arkansas,05117,20,0 +2020-06-30,Prairie,Arkansas,05117,20,0 +2020-07-01,Prairie,Arkansas,05117,21,0 +2020-07-02,Prairie,Arkansas,05117,21,0 +2020-07-03,Prairie,Arkansas,05117,21,0 +2020-07-04,Prairie,Arkansas,05117,21,0 +2020-07-05,Prairie,Arkansas,05117,22,0 +2020-07-06,Prairie,Arkansas,05117,22,0 +2020-07-07,Prairie,Arkansas,05117,22,0 +2020-07-08,Prairie,Arkansas,05117,25,0 +2020-07-09,Prairie,Arkansas,05117,26,0 +2020-03-12,Pulaski,Arkansas,05119,5,0 +2020-03-13,Pulaski,Arkansas,05119,6,0 +2020-03-14,Pulaski,Arkansas,05119,7,0 +2020-03-15,Pulaski,Arkansas,05119,8,0 +2020-03-16,Pulaski,Arkansas,05119,10,0 +2020-03-17,Pulaski,Arkansas,05119,10,0 +2020-03-18,Pulaski,Arkansas,05119,13,0 +2020-03-19,Pulaski,Arkansas,05119,18,0 +2020-03-20,Pulaski,Arkansas,05119,23,0 +2020-03-21,Pulaski,Arkansas,05119,28,0 +2020-03-22,Pulaski,Arkansas,05119,52,0 +2020-03-23,Pulaski,Arkansas,05119,54,0 +2020-03-24,Pulaski,Arkansas,05119,64,1 +2020-03-25,Pulaski,Arkansas,05119,79,1 +2020-03-26,Pulaski,Arkansas,05119,83,1 +2020-03-27,Pulaski,Arkansas,05119,89,1 +2020-03-28,Pulaski,Arkansas,05119,92,2 +2020-03-29,Pulaski,Arkansas,05119,94,2 +2020-03-30,Pulaski,Arkansas,05119,99,3 +2020-03-31,Pulaski,Arkansas,05119,103,3 +2020-04-01,Pulaski,Arkansas,05119,113,4 +2020-04-02,Pulaski,Arkansas,05119,126,5 +2020-04-03,Pulaski,Arkansas,05119,137,5 +2020-04-04,Pulaski,Arkansas,05119,139,6 +2020-04-05,Pulaski,Arkansas,05119,161,6 +2020-04-06,Pulaski,Arkansas,05119,171,5 +2020-04-07,Pulaski,Arkansas,05119,179,7 +2020-04-08,Pulaski,Arkansas,05119,201,7 +2020-04-09,Pulaski,Arkansas,05119,221,8 +2020-04-10,Pulaski,Arkansas,05119,236,8 +2020-04-11,Pulaski,Arkansas,05119,249,9 +2020-04-12,Pulaski,Arkansas,05119,256,9 +2020-04-13,Pulaski,Arkansas,05119,284,10 +2020-04-14,Pulaski,Arkansas,05119,297,10 +2020-04-15,Pulaski,Arkansas,05119,353,10 +2020-04-16,Pulaski,Arkansas,05119,355,11 +2020-04-17,Pulaski,Arkansas,05119,360,11 +2020-04-18,Pulaski,Arkansas,05119,377,12 +2020-04-19,Pulaski,Arkansas,05119,377,12 +2020-04-20,Pulaski,Arkansas,05119,388,12 +2020-04-21,Pulaski,Arkansas,05119,400,12 +2020-04-22,Pulaski,Arkansas,05119,414,12 +2020-04-23,Pulaski,Arkansas,05119,427,12 +2020-04-24,Pulaski,Arkansas,05119,440,14 +2020-04-25,Pulaski,Arkansas,05119,471,14 +2020-04-26,Pulaski,Arkansas,05119,478,14 +2020-04-27,Pulaski,Arkansas,05119,484,15 +2020-04-28,Pulaski,Arkansas,05119,490,16 +2020-04-29,Pulaski,Arkansas,05119,503,16 +2020-04-30,Pulaski,Arkansas,05119,518,17 +2020-05-01,Pulaski,Arkansas,05119,527,18 +2020-05-02,Pulaski,Arkansas,05119,539,19 +2020-05-03,Pulaski,Arkansas,05119,550,19 +2020-05-04,Pulaski,Arkansas,05119,551,20 +2020-05-05,Pulaski,Arkansas,05119,565,21 +2020-05-06,Pulaski,Arkansas,05119,576,22 +2020-05-07,Pulaski,Arkansas,05119,588,22 +2020-05-08,Pulaski,Arkansas,05119,603,22 +2020-05-09,Pulaski,Arkansas,05119,603,22 +2020-05-10,Pulaski,Arkansas,05119,627,23 +2020-05-11,Pulaski,Arkansas,05119,630,23 +2020-05-12,Pulaski,Arkansas,05119,640,23 +2020-05-13,Pulaski,Arkansas,05119,647,23 +2020-05-14,Pulaski,Arkansas,05119,661,23 +2020-05-15,Pulaski,Arkansas,05119,669,23 +2020-05-16,Pulaski,Arkansas,05119,683,23 +2020-05-17,Pulaski,Arkansas,05119,686,23 +2020-05-18,Pulaski,Arkansas,05119,693,25 +2020-05-19,Pulaski,Arkansas,05119,713,25 +2020-05-20,Pulaski,Arkansas,05119,724,28 +2020-05-21,Pulaski,Arkansas,05119,740,28 +2020-05-22,Pulaski,Arkansas,05119,761,29 +2020-05-23,Pulaski,Arkansas,05119,773,29 +2020-05-24,Pulaski,Arkansas,05119,785,29 +2020-05-25,Pulaski,Arkansas,05119,793,29 +2020-05-26,Pulaski,Arkansas,05119,802,30 +2020-05-27,Pulaski,Arkansas,05119,808,30 +2020-05-28,Pulaski,Arkansas,05119,830,31 +2020-05-29,Pulaski,Arkansas,05119,846,34 +2020-05-30,Pulaski,Arkansas,05119,876,34 +2020-05-31,Pulaski,Arkansas,05119,888,34 +2020-06-01,Pulaski,Arkansas,05119,903,34 +2020-06-02,Pulaski,Arkansas,05119,969,35 +2020-06-03,Pulaski,Arkansas,05119,1003,35 +2020-06-04,Pulaski,Arkansas,05119,1039,37 +2020-06-05,Pulaski,Arkansas,05119,1065,37 +2020-06-06,Pulaski,Arkansas,05119,1091,37 +2020-06-07,Pulaski,Arkansas,05119,1103,37 +2020-06-08,Pulaski,Arkansas,05119,1118,38 +2020-06-09,Pulaski,Arkansas,05119,1131,40 +2020-06-10,Pulaski,Arkansas,05119,1188,41 +2020-06-11,Pulaski,Arkansas,05119,1225,41 +2020-06-12,Pulaski,Arkansas,05119,1241,41 +2020-06-13,Pulaski,Arkansas,05119,1266,41 +2020-06-14,Pulaski,Arkansas,05119,1289,42 +2020-06-15,Pulaski,Arkansas,05119,1302,42 +2020-06-16,Pulaski,Arkansas,05119,1343,43 +2020-06-17,Pulaski,Arkansas,05119,1365,46 +2020-06-18,Pulaski,Arkansas,05119,1394,48 +2020-06-19,Pulaski,Arkansas,05119,1445,48 +2020-06-20,Pulaski,Arkansas,05119,1499,52 +2020-06-21,Pulaski,Arkansas,05119,1514,52 +2020-06-22,Pulaski,Arkansas,05119,1531,52 +2020-06-23,Pulaski,Arkansas,05119,1556,53 +2020-06-24,Pulaski,Arkansas,05119,1607,53 +2020-06-25,Pulaski,Arkansas,05119,1655,53 +2020-06-26,Pulaski,Arkansas,05119,1740,55 +2020-06-27,Pulaski,Arkansas,05119,1810,56 +2020-06-28,Pulaski,Arkansas,05119,1862,56 +2020-06-29,Pulaski,Arkansas,05119,1916,57 +2020-06-30,Pulaski,Arkansas,05119,2036,58 +2020-07-01,Pulaski,Arkansas,05119,2080,59 +2020-07-02,Pulaski,Arkansas,05119,2183,59 +2020-07-03,Pulaski,Arkansas,05119,2258,59 +2020-07-04,Pulaski,Arkansas,05119,2345,60 +2020-07-05,Pulaski,Arkansas,05119,2425,60 +2020-07-06,Pulaski,Arkansas,05119,2472,61 +2020-07-07,Pulaski,Arkansas,05119,2522,62 +2020-07-08,Pulaski,Arkansas,05119,2611,62 +2020-07-09,Pulaski,Arkansas,05119,2713,63 +2020-03-26,Randolph,Arkansas,05121,2,0 +2020-03-27,Randolph,Arkansas,05121,2,0 +2020-03-28,Randolph,Arkansas,05121,2,0 +2020-03-29,Randolph,Arkansas,05121,2,0 +2020-03-30,Randolph,Arkansas,05121,2,0 +2020-03-31,Randolph,Arkansas,05121,3,0 +2020-04-01,Randolph,Arkansas,05121,3,0 +2020-04-02,Randolph,Arkansas,05121,3,0 +2020-04-03,Randolph,Arkansas,05121,3,0 +2020-04-04,Randolph,Arkansas,05121,3,0 +2020-04-05,Randolph,Arkansas,05121,3,0 +2020-04-06,Randolph,Arkansas,05121,4,0 +2020-04-07,Randolph,Arkansas,05121,6,0 +2020-04-08,Randolph,Arkansas,05121,6,0 +2020-04-09,Randolph,Arkansas,05121,7,0 +2020-04-10,Randolph,Arkansas,05121,8,0 +2020-04-11,Randolph,Arkansas,05121,8,0 +2020-04-12,Randolph,Arkansas,05121,8,0 +2020-04-13,Randolph,Arkansas,05121,8,0 +2020-04-14,Randolph,Arkansas,05121,8,0 +2020-04-15,Randolph,Arkansas,05121,9,0 +2020-04-16,Randolph,Arkansas,05121,9,0 +2020-04-17,Randolph,Arkansas,05121,10,0 +2020-04-18,Randolph,Arkansas,05121,11,0 +2020-04-19,Randolph,Arkansas,05121,11,0 +2020-04-20,Randolph,Arkansas,05121,14,0 +2020-04-21,Randolph,Arkansas,05121,14,0 +2020-04-22,Randolph,Arkansas,05121,14,0 +2020-04-23,Randolph,Arkansas,05121,14,0 +2020-04-24,Randolph,Arkansas,05121,15,0 +2020-04-25,Randolph,Arkansas,05121,15,0 +2020-04-26,Randolph,Arkansas,05121,16,0 +2020-04-27,Randolph,Arkansas,05121,16,0 +2020-04-28,Randolph,Arkansas,05121,17,0 +2020-04-29,Randolph,Arkansas,05121,17,0 +2020-04-30,Randolph,Arkansas,05121,17,0 +2020-05-01,Randolph,Arkansas,05121,18,0 +2020-05-02,Randolph,Arkansas,05121,18,0 +2020-05-03,Randolph,Arkansas,05121,18,0 +2020-05-04,Randolph,Arkansas,05121,19,0 +2020-05-05,Randolph,Arkansas,05121,19,0 +2020-05-06,Randolph,Arkansas,05121,21,0 +2020-05-07,Randolph,Arkansas,05121,21,0 +2020-05-08,Randolph,Arkansas,05121,21,0 +2020-05-09,Randolph,Arkansas,05121,21,0 +2020-05-10,Randolph,Arkansas,05121,21,0 +2020-05-11,Randolph,Arkansas,05121,22,0 +2020-05-12,Randolph,Arkansas,05121,22,0 +2020-05-13,Randolph,Arkansas,05121,22,0 +2020-05-14,Randolph,Arkansas,05121,22,0 +2020-05-15,Randolph,Arkansas,05121,22,0 +2020-05-16,Randolph,Arkansas,05121,22,0 +2020-05-17,Randolph,Arkansas,05121,22,0 +2020-05-18,Randolph,Arkansas,05121,22,0 +2020-05-19,Randolph,Arkansas,05121,23,0 +2020-05-20,Randolph,Arkansas,05121,24,0 +2020-05-21,Randolph,Arkansas,05121,24,0 +2020-05-22,Randolph,Arkansas,05121,25,0 +2020-05-23,Randolph,Arkansas,05121,26,0 +2020-05-24,Randolph,Arkansas,05121,26,0 +2020-05-25,Randolph,Arkansas,05121,26,0 +2020-05-26,Randolph,Arkansas,05121,26,0 +2020-05-27,Randolph,Arkansas,05121,26,0 +2020-05-28,Randolph,Arkansas,05121,26,0 +2020-05-29,Randolph,Arkansas,05121,26,0 +2020-05-30,Randolph,Arkansas,05121,26,0 +2020-05-31,Randolph,Arkansas,05121,26,0 +2020-06-01,Randolph,Arkansas,05121,26,0 +2020-06-02,Randolph,Arkansas,05121,26,0 +2020-06-03,Randolph,Arkansas,05121,26,0 +2020-06-04,Randolph,Arkansas,05121,26,0 +2020-06-05,Randolph,Arkansas,05121,26,0 +2020-06-06,Randolph,Arkansas,05121,26,0 +2020-06-07,Randolph,Arkansas,05121,26,0 +2020-06-08,Randolph,Arkansas,05121,26,0 +2020-06-09,Randolph,Arkansas,05121,26,0 +2020-06-10,Randolph,Arkansas,05121,27,0 +2020-06-11,Randolph,Arkansas,05121,28,0 +2020-06-12,Randolph,Arkansas,05121,28,0 +2020-06-13,Randolph,Arkansas,05121,28,0 +2020-06-14,Randolph,Arkansas,05121,28,0 +2020-06-15,Randolph,Arkansas,05121,28,0 +2020-06-16,Randolph,Arkansas,05121,29,0 +2020-06-17,Randolph,Arkansas,05121,29,0 +2020-06-18,Randolph,Arkansas,05121,29,1 +2020-06-19,Randolph,Arkansas,05121,31,1 +2020-06-20,Randolph,Arkansas,05121,34,1 +2020-06-21,Randolph,Arkansas,05121,34,1 +2020-06-22,Randolph,Arkansas,05121,39,1 +2020-06-23,Randolph,Arkansas,05121,39,1 +2020-06-24,Randolph,Arkansas,05121,39,1 +2020-06-25,Randolph,Arkansas,05121,40,1 +2020-06-26,Randolph,Arkansas,05121,44,1 +2020-06-27,Randolph,Arkansas,05121,46,1 +2020-06-28,Randolph,Arkansas,05121,46,1 +2020-06-29,Randolph,Arkansas,05121,47,1 +2020-06-30,Randolph,Arkansas,05121,48,1 +2020-07-01,Randolph,Arkansas,05121,50,1 +2020-07-02,Randolph,Arkansas,05121,53,1 +2020-07-03,Randolph,Arkansas,05121,53,1 +2020-07-04,Randolph,Arkansas,05121,54,1 +2020-07-05,Randolph,Arkansas,05121,55,1 +2020-07-06,Randolph,Arkansas,05121,56,1 +2020-07-07,Randolph,Arkansas,05121,56,1 +2020-07-08,Randolph,Arkansas,05121,59,1 +2020-07-09,Randolph,Arkansas,05121,61,1 +2020-03-30,St. Francis,Arkansas,05123,1,0 +2020-03-31,St. Francis,Arkansas,05123,2,0 +2020-04-01,St. Francis,Arkansas,05123,2,0 +2020-04-02,St. Francis,Arkansas,05123,2,0 +2020-04-03,St. Francis,Arkansas,05123,2,0 +2020-04-04,St. Francis,Arkansas,05123,3,0 +2020-04-05,St. Francis,Arkansas,05123,11,0 +2020-04-06,St. Francis,Arkansas,05123,17,0 +2020-04-07,St. Francis,Arkansas,05123,28,0 +2020-04-08,St. Francis,Arkansas,05123,31,0 +2020-04-09,St. Francis,Arkansas,05123,31,0 +2020-04-10,St. Francis,Arkansas,05123,31,0 +2020-04-11,St. Francis,Arkansas,05123,31,0 +2020-04-12,St. Francis,Arkansas,05123,32,0 +2020-04-13,St. Francis,Arkansas,05123,45,0 +2020-04-14,St. Francis,Arkansas,05123,45,0 +2020-04-15,St. Francis,Arkansas,05123,45,0 +2020-04-16,St. Francis,Arkansas,05123,63,0 +2020-04-17,St. Francis,Arkansas,05123,63,0 +2020-04-18,St. Francis,Arkansas,05123,64,0 +2020-04-19,St. Francis,Arkansas,05123,64,0 +2020-04-20,St. Francis,Arkansas,05123,65,0 +2020-04-21,St. Francis,Arkansas,05123,66,0 +2020-04-22,St. Francis,Arkansas,05123,66,0 +2020-04-23,St. Francis,Arkansas,05123,69,0 +2020-04-24,St. Francis,Arkansas,05123,74,0 +2020-04-25,St. Francis,Arkansas,05123,75,0 +2020-04-26,St. Francis,Arkansas,05123,80,0 +2020-04-27,St. Francis,Arkansas,05123,81,0 +2020-04-28,St. Francis,Arkansas,05123,82,0 +2020-04-29,St. Francis,Arkansas,05123,83,0 +2020-04-30,St. Francis,Arkansas,05123,83,0 +2020-05-01,St. Francis,Arkansas,05123,84,0 +2020-05-02,St. Francis,Arkansas,05123,87,0 +2020-05-03,St. Francis,Arkansas,05123,93,0 +2020-05-04,St. Francis,Arkansas,05123,95,0 +2020-05-05,St. Francis,Arkansas,05123,95,0 +2020-05-06,St. Francis,Arkansas,05123,98,0 +2020-05-07,St. Francis,Arkansas,05123,104,0 +2020-05-08,St. Francis,Arkansas,05123,108,0 +2020-05-09,St. Francis,Arkansas,05123,108,0 +2020-05-10,St. Francis,Arkansas,05123,278,0 +2020-05-11,St. Francis,Arkansas,05123,279,0 +2020-05-12,St. Francis,Arkansas,05123,305,0 +2020-05-13,St. Francis,Arkansas,05123,310,0 +2020-05-14,St. Francis,Arkansas,05123,316,0 +2020-05-15,St. Francis,Arkansas,05123,333,0 +2020-05-16,St. Francis,Arkansas,05123,335,0 +2020-05-17,St. Francis,Arkansas,05123,341,0 +2020-05-18,St. Francis,Arkansas,05123,349,0 +2020-05-19,St. Francis,Arkansas,05123,362,0 +2020-05-20,St. Francis,Arkansas,05123,365,0 +2020-05-21,St. Francis,Arkansas,05123,600,0 +2020-05-22,St. Francis,Arkansas,05123,621,1 +2020-05-23,St. Francis,Arkansas,05123,628,1 +2020-05-24,St. Francis,Arkansas,05123,634,1 +2020-05-25,St. Francis,Arkansas,05123,639,1 +2020-05-26,St. Francis,Arkansas,05123,651,1 +2020-05-27,St. Francis,Arkansas,05123,655,1 +2020-05-28,St. Francis,Arkansas,05123,660,1 +2020-05-29,St. Francis,Arkansas,05123,664,1 +2020-05-30,St. Francis,Arkansas,05123,672,1 +2020-05-31,St. Francis,Arkansas,05123,672,1 +2020-06-01,St. Francis,Arkansas,05123,676,1 +2020-06-02,St. Francis,Arkansas,05123,682,1 +2020-06-03,St. Francis,Arkansas,05123,687,1 +2020-06-04,St. Francis,Arkansas,05123,691,1 +2020-06-05,St. Francis,Arkansas,05123,694,1 +2020-06-06,St. Francis,Arkansas,05123,744,1 +2020-06-07,St. Francis,Arkansas,05123,753,1 +2020-06-08,St. Francis,Arkansas,05123,755,1 +2020-06-09,St. Francis,Arkansas,05123,761,1 +2020-06-10,St. Francis,Arkansas,05123,764,1 +2020-06-11,St. Francis,Arkansas,05123,768,1 +2020-06-12,St. Francis,Arkansas,05123,767,2 +2020-06-13,St. Francis,Arkansas,05123,771,2 +2020-06-14,St. Francis,Arkansas,05123,775,2 +2020-06-15,St. Francis,Arkansas,05123,778,2 +2020-06-16,St. Francis,Arkansas,05123,779,3 +2020-06-17,St. Francis,Arkansas,05123,779,3 +2020-06-18,St. Francis,Arkansas,05123,781,3 +2020-06-19,St. Francis,Arkansas,05123,783,3 +2020-06-20,St. Francis,Arkansas,05123,791,3 +2020-06-21,St. Francis,Arkansas,05123,791,3 +2020-06-22,St. Francis,Arkansas,05123,792,3 +2020-06-23,St. Francis,Arkansas,05123,793,3 +2020-06-24,St. Francis,Arkansas,05123,795,3 +2020-06-25,St. Francis,Arkansas,05123,801,3 +2020-06-26,St. Francis,Arkansas,05123,804,3 +2020-06-27,St. Francis,Arkansas,05123,809,3 +2020-06-28,St. Francis,Arkansas,05123,810,3 +2020-06-29,St. Francis,Arkansas,05123,811,3 +2020-06-30,St. Francis,Arkansas,05123,812,3 +2020-07-01,St. Francis,Arkansas,05123,814,3 +2020-07-02,St. Francis,Arkansas,05123,818,3 +2020-07-03,St. Francis,Arkansas,05123,863,3 +2020-07-04,St. Francis,Arkansas,05123,881,3 +2020-07-05,St. Francis,Arkansas,05123,883,3 +2020-07-06,St. Francis,Arkansas,05123,892,3 +2020-07-07,St. Francis,Arkansas,05123,893,3 +2020-07-08,St. Francis,Arkansas,05123,894,3 +2020-07-09,St. Francis,Arkansas,05123,898,3 +2020-03-15,Saline,Arkansas,05125,1,0 +2020-03-16,Saline,Arkansas,05125,1,0 +2020-03-17,Saline,Arkansas,05125,1,0 +2020-03-18,Saline,Arkansas,05125,1,0 +2020-03-19,Saline,Arkansas,05125,1,0 +2020-03-20,Saline,Arkansas,05125,1,0 +2020-03-21,Saline,Arkansas,05125,1,0 +2020-03-22,Saline,Arkansas,05125,1,0 +2020-03-23,Saline,Arkansas,05125,1,0 +2020-03-24,Saline,Arkansas,05125,4,0 +2020-03-25,Saline,Arkansas,05125,4,0 +2020-03-26,Saline,Arkansas,05125,4,0 +2020-03-27,Saline,Arkansas,05125,4,0 +2020-03-28,Saline,Arkansas,05125,4,0 +2020-03-29,Saline,Arkansas,05125,6,0 +2020-03-30,Saline,Arkansas,05125,8,0 +2020-03-31,Saline,Arkansas,05125,11,0 +2020-04-01,Saline,Arkansas,05125,14,0 +2020-04-02,Saline,Arkansas,05125,18,0 +2020-04-03,Saline,Arkansas,05125,21,0 +2020-04-04,Saline,Arkansas,05125,21,0 +2020-04-05,Saline,Arkansas,05125,29,1 +2020-04-06,Saline,Arkansas,05125,33,1 +2020-04-07,Saline,Arkansas,05125,33,1 +2020-04-08,Saline,Arkansas,05125,30,1 +2020-04-09,Saline,Arkansas,05125,31,1 +2020-04-10,Saline,Arkansas,05125,32,1 +2020-04-11,Saline,Arkansas,05125,32,1 +2020-04-12,Saline,Arkansas,05125,32,1 +2020-04-13,Saline,Arkansas,05125,32,1 +2020-04-14,Saline,Arkansas,05125,33,1 +2020-04-15,Saline,Arkansas,05125,35,1 +2020-04-16,Saline,Arkansas,05125,36,1 +2020-04-17,Saline,Arkansas,05125,37,1 +2020-04-18,Saline,Arkansas,05125,43,1 +2020-04-19,Saline,Arkansas,05125,43,1 +2020-04-20,Saline,Arkansas,05125,45,1 +2020-04-21,Saline,Arkansas,05125,46,1 +2020-04-22,Saline,Arkansas,05125,48,1 +2020-04-23,Saline,Arkansas,05125,51,1 +2020-04-24,Saline,Arkansas,05125,54,1 +2020-04-25,Saline,Arkansas,05125,54,1 +2020-04-26,Saline,Arkansas,05125,55,1 +2020-04-27,Saline,Arkansas,05125,56,1 +2020-04-28,Saline,Arkansas,05125,57,1 +2020-04-29,Saline,Arkansas,05125,64,1 +2020-04-30,Saline,Arkansas,05125,67,1 +2020-05-01,Saline,Arkansas,05125,67,1 +2020-05-02,Saline,Arkansas,05125,67,1 +2020-05-03,Saline,Arkansas,05125,68,1 +2020-05-04,Saline,Arkansas,05125,67,1 +2020-05-05,Saline,Arkansas,05125,67,1 +2020-05-06,Saline,Arkansas,05125,67,1 +2020-05-07,Saline,Arkansas,05125,70,1 +2020-05-08,Saline,Arkansas,05125,72,1 +2020-05-09,Saline,Arkansas,05125,72,1 +2020-05-10,Saline,Arkansas,05125,73,1 +2020-05-11,Saline,Arkansas,05125,73,1 +2020-05-12,Saline,Arkansas,05125,75,1 +2020-05-13,Saline,Arkansas,05125,76,1 +2020-05-14,Saline,Arkansas,05125,78,1 +2020-05-15,Saline,Arkansas,05125,80,1 +2020-05-16,Saline,Arkansas,05125,81,1 +2020-05-17,Saline,Arkansas,05125,82,1 +2020-05-18,Saline,Arkansas,05125,82,1 +2020-05-19,Saline,Arkansas,05125,82,1 +2020-05-20,Saline,Arkansas,05125,82,1 +2020-05-21,Saline,Arkansas,05125,83,1 +2020-05-22,Saline,Arkansas,05125,83,1 +2020-05-23,Saline,Arkansas,05125,87,1 +2020-05-24,Saline,Arkansas,05125,97,1 +2020-05-25,Saline,Arkansas,05125,98,1 +2020-05-26,Saline,Arkansas,05125,100,1 +2020-05-27,Saline,Arkansas,05125,99,1 +2020-05-28,Saline,Arkansas,05125,108,1 +2020-05-29,Saline,Arkansas,05125,110,1 +2020-05-30,Saline,Arkansas,05125,112,1 +2020-05-31,Saline,Arkansas,05125,112,1 +2020-06-01,Saline,Arkansas,05125,113,1 +2020-06-02,Saline,Arkansas,05125,116,1 +2020-06-03,Saline,Arkansas,05125,121,1 +2020-06-04,Saline,Arkansas,05125,120,1 +2020-06-05,Saline,Arkansas,05125,123,1 +2020-06-06,Saline,Arkansas,05125,130,1 +2020-06-07,Saline,Arkansas,05125,135,1 +2020-06-08,Saline,Arkansas,05125,147,1 +2020-06-09,Saline,Arkansas,05125,150,2 +2020-06-10,Saline,Arkansas,05125,159,2 +2020-06-11,Saline,Arkansas,05125,163,2 +2020-06-12,Saline,Arkansas,05125,166,2 +2020-06-13,Saline,Arkansas,05125,167,2 +2020-06-14,Saline,Arkansas,05125,174,2 +2020-06-15,Saline,Arkansas,05125,181,2 +2020-06-16,Saline,Arkansas,05125,184,2 +2020-06-17,Saline,Arkansas,05125,189,2 +2020-06-18,Saline,Arkansas,05125,190,2 +2020-06-19,Saline,Arkansas,05125,195,2 +2020-06-20,Saline,Arkansas,05125,200,2 +2020-06-21,Saline,Arkansas,05125,209,2 +2020-06-22,Saline,Arkansas,05125,210,2 +2020-06-23,Saline,Arkansas,05125,211,2 +2020-06-24,Saline,Arkansas,05125,217,2 +2020-06-25,Saline,Arkansas,05125,225,2 +2020-06-26,Saline,Arkansas,05125,233,2 +2020-06-27,Saline,Arkansas,05125,246,2 +2020-06-28,Saline,Arkansas,05125,250,2 +2020-06-29,Saline,Arkansas,05125,261,2 +2020-06-30,Saline,Arkansas,05125,275,2 +2020-07-01,Saline,Arkansas,05125,292,2 +2020-07-02,Saline,Arkansas,05125,311,2 +2020-07-03,Saline,Arkansas,05125,319,2 +2020-07-04,Saline,Arkansas,05125,337,2 +2020-07-05,Saline,Arkansas,05125,353,2 +2020-07-06,Saline,Arkansas,05125,359,2 +2020-07-07,Saline,Arkansas,05125,375,2 +2020-07-08,Saline,Arkansas,05125,399,3 +2020-07-09,Saline,Arkansas,05125,420,3 +2020-03-31,Scott,Arkansas,05127,1,0 +2020-04-01,Scott,Arkansas,05127,1,0 +2020-04-02,Scott,Arkansas,05127,1,0 +2020-04-03,Scott,Arkansas,05127,1,0 +2020-04-04,Scott,Arkansas,05127,1,0 +2020-04-05,Scott,Arkansas,05127,1,0 +2020-04-06,Scott,Arkansas,05127,1,0 +2020-04-07,Scott,Arkansas,05127,1,0 +2020-04-08,Scott,Arkansas,05127,1,0 +2020-04-09,Scott,Arkansas,05127,1,0 +2020-04-10,Scott,Arkansas,05127,1,0 +2020-04-11,Scott,Arkansas,05127,1,0 +2020-04-12,Scott,Arkansas,05127,1,0 +2020-04-13,Scott,Arkansas,05127,1,0 +2020-04-14,Scott,Arkansas,05127,1,0 +2020-04-15,Scott,Arkansas,05127,1,0 +2020-04-16,Scott,Arkansas,05127,1,0 +2020-04-17,Scott,Arkansas,05127,1,0 +2020-04-18,Scott,Arkansas,05127,1,0 +2020-04-19,Scott,Arkansas,05127,1,0 +2020-04-20,Scott,Arkansas,05127,1,0 +2020-04-21,Scott,Arkansas,05127,1,0 +2020-04-22,Scott,Arkansas,05127,1,0 +2020-04-23,Scott,Arkansas,05127,1,0 +2020-04-24,Scott,Arkansas,05127,1,0 +2020-04-25,Scott,Arkansas,05127,1,0 +2020-04-26,Scott,Arkansas,05127,1,0 +2020-04-27,Scott,Arkansas,05127,1,0 +2020-04-28,Scott,Arkansas,05127,1,0 +2020-04-29,Scott,Arkansas,05127,1,0 +2020-04-30,Scott,Arkansas,05127,1,0 +2020-05-01,Scott,Arkansas,05127,1,0 +2020-05-02,Scott,Arkansas,05127,1,0 +2020-05-03,Scott,Arkansas,05127,1,0 +2020-05-04,Scott,Arkansas,05127,1,0 +2020-05-05,Scott,Arkansas,05127,1,0 +2020-05-06,Scott,Arkansas,05127,1,0 +2020-05-07,Scott,Arkansas,05127,1,0 +2020-05-08,Scott,Arkansas,05127,1,0 +2020-05-09,Scott,Arkansas,05127,1,0 +2020-05-10,Scott,Arkansas,05127,1,0 +2020-05-11,Scott,Arkansas,05127,1,0 +2020-05-12,Scott,Arkansas,05127,1,0 +2020-05-13,Scott,Arkansas,05127,1,0 +2020-05-14,Scott,Arkansas,05127,1,0 +2020-05-15,Scott,Arkansas,05127,1,0 +2020-05-16,Scott,Arkansas,05127,1,0 +2020-05-17,Scott,Arkansas,05127,1,0 +2020-05-18,Scott,Arkansas,05127,1,0 +2020-05-19,Scott,Arkansas,05127,1,0 +2020-05-20,Scott,Arkansas,05127,1,0 +2020-05-21,Scott,Arkansas,05127,1,0 +2020-05-22,Scott,Arkansas,05127,1,0 +2020-05-23,Scott,Arkansas,05127,1,0 +2020-05-24,Scott,Arkansas,05127,1,0 +2020-05-25,Scott,Arkansas,05127,1,0 +2020-05-26,Scott,Arkansas,05127,1,0 +2020-05-27,Scott,Arkansas,05127,1,0 +2020-05-28,Scott,Arkansas,05127,1,0 +2020-05-29,Scott,Arkansas,05127,1,0 +2020-05-30,Scott,Arkansas,05127,1,0 +2020-05-31,Scott,Arkansas,05127,1,0 +2020-06-01,Scott,Arkansas,05127,1,0 +2020-06-02,Scott,Arkansas,05127,1,0 +2020-06-03,Scott,Arkansas,05127,1,0 +2020-06-04,Scott,Arkansas,05127,1,0 +2020-06-05,Scott,Arkansas,05127,1,0 +2020-06-06,Scott,Arkansas,05127,1,0 +2020-06-07,Scott,Arkansas,05127,1,0 +2020-06-08,Scott,Arkansas,05127,2,0 +2020-06-09,Scott,Arkansas,05127,2,0 +2020-06-10,Scott,Arkansas,05127,2,0 +2020-06-11,Scott,Arkansas,05127,2,0 +2020-06-12,Scott,Arkansas,05127,2,0 +2020-06-13,Scott,Arkansas,05127,2,0 +2020-06-14,Scott,Arkansas,05127,3,0 +2020-06-15,Scott,Arkansas,05127,5,0 +2020-06-16,Scott,Arkansas,05127,5,0 +2020-06-17,Scott,Arkansas,05127,5,0 +2020-06-18,Scott,Arkansas,05127,6,0 +2020-06-19,Scott,Arkansas,05127,7,0 +2020-06-20,Scott,Arkansas,05127,8,0 +2020-06-21,Scott,Arkansas,05127,8,0 +2020-06-22,Scott,Arkansas,05127,8,0 +2020-06-23,Scott,Arkansas,05127,8,0 +2020-06-24,Scott,Arkansas,05127,8,0 +2020-06-25,Scott,Arkansas,05127,8,0 +2020-06-26,Scott,Arkansas,05127,9,0 +2020-06-27,Scott,Arkansas,05127,10,0 +2020-06-28,Scott,Arkansas,05127,10,0 +2020-06-29,Scott,Arkansas,05127,11,0 +2020-06-30,Scott,Arkansas,05127,11,0 +2020-07-01,Scott,Arkansas,05127,12,0 +2020-07-02,Scott,Arkansas,05127,12,0 +2020-07-03,Scott,Arkansas,05127,12,0 +2020-07-04,Scott,Arkansas,05127,12,0 +2020-07-05,Scott,Arkansas,05127,12,0 +2020-07-06,Scott,Arkansas,05127,14,0 +2020-07-07,Scott,Arkansas,05127,14,0 +2020-07-08,Scott,Arkansas,05127,14,0 +2020-07-09,Scott,Arkansas,05127,16,0 +2020-03-19,Searcy,Arkansas,05129,1,0 +2020-03-20,Searcy,Arkansas,05129,1,0 +2020-03-21,Searcy,Arkansas,05129,1,0 +2020-03-22,Searcy,Arkansas,05129,1,0 +2020-03-23,Searcy,Arkansas,05129,1,0 +2020-03-24,Searcy,Arkansas,05129,2,0 +2020-03-25,Searcy,Arkansas,05129,2,0 +2020-03-26,Searcy,Arkansas,05129,4,0 +2020-03-27,Searcy,Arkansas,05129,4,0 +2020-03-28,Searcy,Arkansas,05129,4,0 +2020-03-29,Searcy,Arkansas,05129,4,0 +2020-03-30,Searcy,Arkansas,05129,4,0 +2020-03-31,Searcy,Arkansas,05129,4,0 +2020-04-01,Searcy,Arkansas,05129,4,0 +2020-04-02,Searcy,Arkansas,05129,4,0 +2020-04-03,Searcy,Arkansas,05129,4,0 +2020-04-04,Searcy,Arkansas,05129,5,0 +2020-04-05,Searcy,Arkansas,05129,5,0 +2020-04-06,Searcy,Arkansas,05129,6,0 +2020-04-07,Searcy,Arkansas,05129,6,0 +2020-04-08,Searcy,Arkansas,05129,6,0 +2020-04-09,Searcy,Arkansas,05129,6,0 +2020-04-10,Searcy,Arkansas,05129,6,0 +2020-04-11,Searcy,Arkansas,05129,6,0 +2020-04-12,Searcy,Arkansas,05129,6,0 +2020-04-13,Searcy,Arkansas,05129,6,0 +2020-04-14,Searcy,Arkansas,05129,6,0 +2020-04-15,Searcy,Arkansas,05129,6,0 +2020-04-16,Searcy,Arkansas,05129,6,0 +2020-04-17,Searcy,Arkansas,05129,6,0 +2020-04-18,Searcy,Arkansas,05129,6,0 +2020-04-19,Searcy,Arkansas,05129,6,0 +2020-04-20,Searcy,Arkansas,05129,6,0 +2020-04-21,Searcy,Arkansas,05129,6,0 +2020-04-22,Searcy,Arkansas,05129,6,0 +2020-04-23,Searcy,Arkansas,05129,6,0 +2020-04-24,Searcy,Arkansas,05129,6,0 +2020-04-25,Searcy,Arkansas,05129,6,0 +2020-04-26,Searcy,Arkansas,05129,6,0 +2020-04-27,Searcy,Arkansas,05129,6,0 +2020-04-28,Searcy,Arkansas,05129,6,0 +2020-04-29,Searcy,Arkansas,05129,6,0 +2020-04-30,Searcy,Arkansas,05129,6,0 +2020-05-01,Searcy,Arkansas,05129,6,0 +2020-05-02,Searcy,Arkansas,05129,6,0 +2020-05-03,Searcy,Arkansas,05129,6,0 +2020-05-04,Searcy,Arkansas,05129,6,0 +2020-05-05,Searcy,Arkansas,05129,6,0 +2020-05-06,Searcy,Arkansas,05129,6,0 +2020-05-07,Searcy,Arkansas,05129,6,0 +2020-05-08,Searcy,Arkansas,05129,6,0 +2020-05-09,Searcy,Arkansas,05129,6,0 +2020-05-10,Searcy,Arkansas,05129,6,0 +2020-05-11,Searcy,Arkansas,05129,6,0 +2020-05-12,Searcy,Arkansas,05129,6,0 +2020-05-13,Searcy,Arkansas,05129,6,0 +2020-05-14,Searcy,Arkansas,05129,6,0 +2020-05-15,Searcy,Arkansas,05129,6,0 +2020-05-16,Searcy,Arkansas,05129,6,0 +2020-05-17,Searcy,Arkansas,05129,6,0 +2020-05-18,Searcy,Arkansas,05129,6,0 +2020-05-19,Searcy,Arkansas,05129,6,0 +2020-05-20,Searcy,Arkansas,05129,6,0 +2020-05-21,Searcy,Arkansas,05129,6,0 +2020-05-22,Searcy,Arkansas,05129,6,0 +2020-05-23,Searcy,Arkansas,05129,6,0 +2020-05-24,Searcy,Arkansas,05129,6,0 +2020-05-25,Searcy,Arkansas,05129,6,0 +2020-05-26,Searcy,Arkansas,05129,7,0 +2020-05-27,Searcy,Arkansas,05129,7,0 +2020-05-28,Searcy,Arkansas,05129,7,0 +2020-05-29,Searcy,Arkansas,05129,7,0 +2020-05-30,Searcy,Arkansas,05129,7,0 +2020-05-31,Searcy,Arkansas,05129,7,0 +2020-06-01,Searcy,Arkansas,05129,7,0 +2020-06-02,Searcy,Arkansas,05129,7,0 +2020-06-03,Searcy,Arkansas,05129,7,0 +2020-06-04,Searcy,Arkansas,05129,7,0 +2020-06-05,Searcy,Arkansas,05129,7,0 +2020-06-06,Searcy,Arkansas,05129,7,0 +2020-06-07,Searcy,Arkansas,05129,7,0 +2020-06-08,Searcy,Arkansas,05129,7,0 +2020-06-09,Searcy,Arkansas,05129,7,0 +2020-06-10,Searcy,Arkansas,05129,7,0 +2020-06-11,Searcy,Arkansas,05129,7,0 +2020-06-12,Searcy,Arkansas,05129,7,0 +2020-06-13,Searcy,Arkansas,05129,7,0 +2020-06-14,Searcy,Arkansas,05129,7,0 +2020-06-15,Searcy,Arkansas,05129,7,0 +2020-06-16,Searcy,Arkansas,05129,7,0 +2020-06-17,Searcy,Arkansas,05129,7,0 +2020-06-18,Searcy,Arkansas,05129,7,0 +2020-06-19,Searcy,Arkansas,05129,7,0 +2020-06-20,Searcy,Arkansas,05129,7,0 +2020-06-21,Searcy,Arkansas,05129,7,0 +2020-06-22,Searcy,Arkansas,05129,7,0 +2020-06-23,Searcy,Arkansas,05129,7,0 +2020-06-24,Searcy,Arkansas,05129,7,0 +2020-06-25,Searcy,Arkansas,05129,7,0 +2020-06-26,Searcy,Arkansas,05129,7,0 +2020-06-27,Searcy,Arkansas,05129,7,0 +2020-06-28,Searcy,Arkansas,05129,7,0 +2020-06-29,Searcy,Arkansas,05129,7,0 +2020-06-30,Searcy,Arkansas,05129,7,0 +2020-07-01,Searcy,Arkansas,05129,7,0 +2020-07-02,Searcy,Arkansas,05129,7,0 +2020-07-03,Searcy,Arkansas,05129,12,0 +2020-07-04,Searcy,Arkansas,05129,12,0 +2020-07-05,Searcy,Arkansas,05129,12,0 +2020-07-06,Searcy,Arkansas,05129,12,0 +2020-07-07,Searcy,Arkansas,05129,12,0 +2020-07-08,Searcy,Arkansas,05129,13,0 +2020-07-09,Searcy,Arkansas,05129,16,0 +2020-03-19,Sebastian,Arkansas,05131,1,0 +2020-03-20,Sebastian,Arkansas,05131,1,0 +2020-03-21,Sebastian,Arkansas,05131,1,0 +2020-03-22,Sebastian,Arkansas,05131,1,0 +2020-03-23,Sebastian,Arkansas,05131,1,0 +2020-03-24,Sebastian,Arkansas,05131,1,0 +2020-03-25,Sebastian,Arkansas,05131,1,0 +2020-03-26,Sebastian,Arkansas,05131,3,0 +2020-03-27,Sebastian,Arkansas,05131,3,0 +2020-03-28,Sebastian,Arkansas,05131,4,0 +2020-03-29,Sebastian,Arkansas,05131,5,0 +2020-03-30,Sebastian,Arkansas,05131,6,0 +2020-03-31,Sebastian,Arkansas,05131,8,0 +2020-04-01,Sebastian,Arkansas,05131,8,0 +2020-04-02,Sebastian,Arkansas,05131,8,0 +2020-04-03,Sebastian,Arkansas,05131,8,0 +2020-04-04,Sebastian,Arkansas,05131,8,0 +2020-04-05,Sebastian,Arkansas,05131,8,0 +2020-04-06,Sebastian,Arkansas,05131,8,0 +2020-04-07,Sebastian,Arkansas,05131,9,0 +2020-04-08,Sebastian,Arkansas,05131,9,0 +2020-04-09,Sebastian,Arkansas,05131,9,0 +2020-04-10,Sebastian,Arkansas,05131,9,0 +2020-04-11,Sebastian,Arkansas,05131,10,0 +2020-04-12,Sebastian,Arkansas,05131,10,0 +2020-04-13,Sebastian,Arkansas,05131,11,0 +2020-04-14,Sebastian,Arkansas,05131,11,0 +2020-04-15,Sebastian,Arkansas,05131,11,0 +2020-04-16,Sebastian,Arkansas,05131,11,0 +2020-04-17,Sebastian,Arkansas,05131,11,0 +2020-04-18,Sebastian,Arkansas,05131,11,0 +2020-04-19,Sebastian,Arkansas,05131,11,0 +2020-04-20,Sebastian,Arkansas,05131,11,0 +2020-04-21,Sebastian,Arkansas,05131,11,0 +2020-04-22,Sebastian,Arkansas,05131,11,0 +2020-04-23,Sebastian,Arkansas,05131,12,0 +2020-04-24,Sebastian,Arkansas,05131,12,0 +2020-04-25,Sebastian,Arkansas,05131,12,0 +2020-04-26,Sebastian,Arkansas,05131,12,0 +2020-04-27,Sebastian,Arkansas,05131,12,0 +2020-04-28,Sebastian,Arkansas,05131,12,0 +2020-04-29,Sebastian,Arkansas,05131,13,0 +2020-04-30,Sebastian,Arkansas,05131,13,0 +2020-05-01,Sebastian,Arkansas,05131,13,0 +2020-05-02,Sebastian,Arkansas,05131,13,0 +2020-05-03,Sebastian,Arkansas,05131,13,0 +2020-05-04,Sebastian,Arkansas,05131,13,0 +2020-05-05,Sebastian,Arkansas,05131,13,0 +2020-05-06,Sebastian,Arkansas,05131,14,0 +2020-05-07,Sebastian,Arkansas,05131,14,0 +2020-05-08,Sebastian,Arkansas,05131,14,0 +2020-05-09,Sebastian,Arkansas,05131,14,0 +2020-05-10,Sebastian,Arkansas,05131,15,0 +2020-05-11,Sebastian,Arkansas,05131,15,0 +2020-05-12,Sebastian,Arkansas,05131,15,0 +2020-05-13,Sebastian,Arkansas,05131,15,0 +2020-05-14,Sebastian,Arkansas,05131,15,0 +2020-05-15,Sebastian,Arkansas,05131,15,0 +2020-05-16,Sebastian,Arkansas,05131,15,0 +2020-05-17,Sebastian,Arkansas,05131,16,0 +2020-05-18,Sebastian,Arkansas,05131,16,0 +2020-05-19,Sebastian,Arkansas,05131,17,0 +2020-05-20,Sebastian,Arkansas,05131,18,0 +2020-05-21,Sebastian,Arkansas,05131,18,0 +2020-05-22,Sebastian,Arkansas,05131,18,0 +2020-05-23,Sebastian,Arkansas,05131,19,0 +2020-05-24,Sebastian,Arkansas,05131,19,0 +2020-05-25,Sebastian,Arkansas,05131,20,0 +2020-05-26,Sebastian,Arkansas,05131,22,0 +2020-05-27,Sebastian,Arkansas,05131,23,0 +2020-05-28,Sebastian,Arkansas,05131,24,0 +2020-05-29,Sebastian,Arkansas,05131,29,0 +2020-05-30,Sebastian,Arkansas,05131,38,0 +2020-05-31,Sebastian,Arkansas,05131,40,0 +2020-06-01,Sebastian,Arkansas,05131,43,0 +2020-06-02,Sebastian,Arkansas,05131,47,0 +2020-06-03,Sebastian,Arkansas,05131,53,1 +2020-06-04,Sebastian,Arkansas,05131,62,1 +2020-06-05,Sebastian,Arkansas,05131,69,1 +2020-06-06,Sebastian,Arkansas,05131,81,1 +2020-06-07,Sebastian,Arkansas,05131,85,1 +2020-06-08,Sebastian,Arkansas,05131,96,1 +2020-06-09,Sebastian,Arkansas,05131,98,1 +2020-06-10,Sebastian,Arkansas,05131,102,2 +2020-06-11,Sebastian,Arkansas,05131,109,2 +2020-06-12,Sebastian,Arkansas,05131,133,2 +2020-06-13,Sebastian,Arkansas,05131,144,2 +2020-06-14,Sebastian,Arkansas,05131,148,2 +2020-06-15,Sebastian,Arkansas,05131,165,2 +2020-06-16,Sebastian,Arkansas,05131,169,2 +2020-06-17,Sebastian,Arkansas,05131,187,2 +2020-06-18,Sebastian,Arkansas,05131,193,2 +2020-06-19,Sebastian,Arkansas,05131,219,2 +2020-06-20,Sebastian,Arkansas,05131,226,2 +2020-06-21,Sebastian,Arkansas,05131,244,2 +2020-06-22,Sebastian,Arkansas,05131,250,2 +2020-06-23,Sebastian,Arkansas,05131,258,2 +2020-06-24,Sebastian,Arkansas,05131,298,2 +2020-06-25,Sebastian,Arkansas,05131,324,2 +2020-06-26,Sebastian,Arkansas,05131,357,2 +2020-06-27,Sebastian,Arkansas,05131,378,4 +2020-06-28,Sebastian,Arkansas,05131,435,5 +2020-06-29,Sebastian,Arkansas,05131,457,5 +2020-06-30,Sebastian,Arkansas,05131,468,5 +2020-07-01,Sebastian,Arkansas,05131,476,5 +2020-07-02,Sebastian,Arkansas,05131,533,5 +2020-07-03,Sebastian,Arkansas,05131,548,5 +2020-07-04,Sebastian,Arkansas,05131,577,5 +2020-07-05,Sebastian,Arkansas,05131,602,5 +2020-07-06,Sebastian,Arkansas,05131,622,5 +2020-07-07,Sebastian,Arkansas,05131,634,7 +2020-07-08,Sebastian,Arkansas,05131,649,7 +2020-07-09,Sebastian,Arkansas,05131,705,7 +2020-03-19,Sevier,Arkansas,05133,1,0 +2020-03-20,Sevier,Arkansas,05133,1,0 +2020-03-21,Sevier,Arkansas,05133,1,0 +2020-03-22,Sevier,Arkansas,05133,1,0 +2020-03-23,Sevier,Arkansas,05133,1,0 +2020-03-24,Sevier,Arkansas,05133,1,0 +2020-03-25,Sevier,Arkansas,05133,1,0 +2020-03-26,Sevier,Arkansas,05133,1,0 +2020-03-27,Sevier,Arkansas,05133,1,0 +2020-03-28,Sevier,Arkansas,05133,1,0 +2020-03-29,Sevier,Arkansas,05133,2,0 +2020-03-30,Sevier,Arkansas,05133,2,0 +2020-03-31,Sevier,Arkansas,05133,2,0 +2020-04-01,Sevier,Arkansas,05133,3,0 +2020-04-02,Sevier,Arkansas,05133,3,0 +2020-04-03,Sevier,Arkansas,05133,3,0 +2020-04-04,Sevier,Arkansas,05133,3,0 +2020-04-05,Sevier,Arkansas,05133,6,0 +2020-04-06,Sevier,Arkansas,05133,6,0 +2020-04-07,Sevier,Arkansas,05133,6,0 +2020-04-08,Sevier,Arkansas,05133,6,0 +2020-04-09,Sevier,Arkansas,05133,6,0 +2020-04-10,Sevier,Arkansas,05133,6,0 +2020-04-11,Sevier,Arkansas,05133,6,0 +2020-04-12,Sevier,Arkansas,05133,8,0 +2020-04-13,Sevier,Arkansas,05133,8,0 +2020-04-14,Sevier,Arkansas,05133,8,0 +2020-04-15,Sevier,Arkansas,05133,8,0 +2020-04-16,Sevier,Arkansas,05133,8,0 +2020-04-17,Sevier,Arkansas,05133,8,0 +2020-04-18,Sevier,Arkansas,05133,9,0 +2020-04-19,Sevier,Arkansas,05133,9,0 +2020-04-20,Sevier,Arkansas,05133,10,0 +2020-04-21,Sevier,Arkansas,05133,10,0 +2020-04-22,Sevier,Arkansas,05133,10,0 +2020-04-23,Sevier,Arkansas,05133,10,0 +2020-04-24,Sevier,Arkansas,05133,10,0 +2020-04-25,Sevier,Arkansas,05133,11,0 +2020-04-26,Sevier,Arkansas,05133,11,0 +2020-04-27,Sevier,Arkansas,05133,11,0 +2020-04-28,Sevier,Arkansas,05133,11,0 +2020-04-29,Sevier,Arkansas,05133,11,1 +2020-04-30,Sevier,Arkansas,05133,11,1 +2020-05-01,Sevier,Arkansas,05133,12,1 +2020-05-02,Sevier,Arkansas,05133,12,1 +2020-05-03,Sevier,Arkansas,05133,12,1 +2020-05-04,Sevier,Arkansas,05133,13,1 +2020-05-05,Sevier,Arkansas,05133,14,1 +2020-05-06,Sevier,Arkansas,05133,14,1 +2020-05-07,Sevier,Arkansas,05133,14,1 +2020-05-08,Sevier,Arkansas,05133,16,1 +2020-05-09,Sevier,Arkansas,05133,16,1 +2020-05-10,Sevier,Arkansas,05133,18,1 +2020-05-11,Sevier,Arkansas,05133,21,1 +2020-05-12,Sevier,Arkansas,05133,21,1 +2020-05-13,Sevier,Arkansas,05133,24,1 +2020-05-14,Sevier,Arkansas,05133,24,1 +2020-05-15,Sevier,Arkansas,05133,25,1 +2020-05-16,Sevier,Arkansas,05133,27,1 +2020-05-17,Sevier,Arkansas,05133,28,1 +2020-05-18,Sevier,Arkansas,05133,32,1 +2020-05-19,Sevier,Arkansas,05133,46,1 +2020-05-20,Sevier,Arkansas,05133,49,1 +2020-05-21,Sevier,Arkansas,05133,50,1 +2020-05-22,Sevier,Arkansas,05133,62,1 +2020-05-23,Sevier,Arkansas,05133,79,1 +2020-05-24,Sevier,Arkansas,05133,84,1 +2020-05-25,Sevier,Arkansas,05133,93,1 +2020-05-26,Sevier,Arkansas,05133,111,2 +2020-05-27,Sevier,Arkansas,05133,120,2 +2020-05-28,Sevier,Arkansas,05133,131,2 +2020-05-29,Sevier,Arkansas,05133,162,2 +2020-05-30,Sevier,Arkansas,05133,170,2 +2020-05-31,Sevier,Arkansas,05133,210,2 +2020-06-01,Sevier,Arkansas,05133,225,2 +2020-06-02,Sevier,Arkansas,05133,258,2 +2020-06-03,Sevier,Arkansas,05133,283,2 +2020-06-04,Sevier,Arkansas,05133,297,2 +2020-06-05,Sevier,Arkansas,05133,301,2 +2020-06-06,Sevier,Arkansas,05133,326,2 +2020-06-07,Sevier,Arkansas,05133,339,2 +2020-06-08,Sevier,Arkansas,05133,355,2 +2020-06-09,Sevier,Arkansas,05133,366,2 +2020-06-10,Sevier,Arkansas,05133,382,2 +2020-06-11,Sevier,Arkansas,05133,387,4 +2020-06-12,Sevier,Arkansas,05133,393,4 +2020-06-13,Sevier,Arkansas,05133,428,4 +2020-06-14,Sevier,Arkansas,05133,446,4 +2020-06-15,Sevier,Arkansas,05133,465,5 +2020-06-16,Sevier,Arkansas,05133,478,5 +2020-06-17,Sevier,Arkansas,05133,498,5 +2020-06-18,Sevier,Arkansas,05133,506,5 +2020-06-19,Sevier,Arkansas,05133,550,5 +2020-06-20,Sevier,Arkansas,05133,563,5 +2020-06-21,Sevier,Arkansas,05133,588,5 +2020-06-22,Sevier,Arkansas,05133,592,6 +2020-06-23,Sevier,Arkansas,05133,606,6 +2020-06-24,Sevier,Arkansas,05133,614,6 +2020-06-25,Sevier,Arkansas,05133,617,6 +2020-06-26,Sevier,Arkansas,05133,648,7 +2020-06-27,Sevier,Arkansas,05133,652,7 +2020-06-28,Sevier,Arkansas,05133,661,7 +2020-06-29,Sevier,Arkansas,05133,693,7 +2020-06-30,Sevier,Arkansas,05133,700,7 +2020-07-01,Sevier,Arkansas,05133,706,7 +2020-07-02,Sevier,Arkansas,05133,717,7 +2020-07-03,Sevier,Arkansas,05133,726,7 +2020-07-04,Sevier,Arkansas,05133,732,7 +2020-07-05,Sevier,Arkansas,05133,743,8 +2020-07-06,Sevier,Arkansas,05133,748,9 +2020-07-07,Sevier,Arkansas,05133,758,9 +2020-07-08,Sevier,Arkansas,05133,769,9 +2020-07-09,Sevier,Arkansas,05133,781,9 +2020-04-02,Sharp,Arkansas,05135,1,0 +2020-04-03,Sharp,Arkansas,05135,1,0 +2020-04-04,Sharp,Arkansas,05135,1,0 +2020-04-05,Sharp,Arkansas,05135,1,0 +2020-04-06,Sharp,Arkansas,05135,1,0 +2020-04-07,Sharp,Arkansas,05135,1,0 +2020-04-08,Sharp,Arkansas,05135,2,0 +2020-04-09,Sharp,Arkansas,05135,2,0 +2020-04-10,Sharp,Arkansas,05135,2,0 +2020-04-11,Sharp,Arkansas,05135,2,0 +2020-04-12,Sharp,Arkansas,05135,2,0 +2020-04-13,Sharp,Arkansas,05135,2,0 +2020-04-14,Sharp,Arkansas,05135,2,0 +2020-04-15,Sharp,Arkansas,05135,2,0 +2020-04-16,Sharp,Arkansas,05135,2,0 +2020-04-17,Sharp,Arkansas,05135,2,0 +2020-04-18,Sharp,Arkansas,05135,2,0 +2020-04-19,Sharp,Arkansas,05135,2,0 +2020-04-20,Sharp,Arkansas,05135,2,0 +2020-04-21,Sharp,Arkansas,05135,2,0 +2020-04-22,Sharp,Arkansas,05135,2,0 +2020-04-23,Sharp,Arkansas,05135,2,0 +2020-04-24,Sharp,Arkansas,05135,2,0 +2020-04-25,Sharp,Arkansas,05135,2,0 +2020-04-26,Sharp,Arkansas,05135,2,0 +2020-04-27,Sharp,Arkansas,05135,3,0 +2020-04-28,Sharp,Arkansas,05135,6,0 +2020-04-29,Sharp,Arkansas,05135,6,0 +2020-04-30,Sharp,Arkansas,05135,10,0 +2020-05-01,Sharp,Arkansas,05135,9,0 +2020-05-02,Sharp,Arkansas,05135,9,0 +2020-05-03,Sharp,Arkansas,05135,9,0 +2020-05-04,Sharp,Arkansas,05135,9,0 +2020-05-05,Sharp,Arkansas,05135,7,0 +2020-05-06,Sharp,Arkansas,05135,7,0 +2020-05-07,Sharp,Arkansas,05135,8,1 +2020-05-08,Sharp,Arkansas,05135,8,1 +2020-05-09,Sharp,Arkansas,05135,8,1 +2020-05-10,Sharp,Arkansas,05135,11,1 +2020-05-11,Sharp,Arkansas,05135,16,2 +2020-05-12,Sharp,Arkansas,05135,25,2 +2020-05-13,Sharp,Arkansas,05135,26,2 +2020-05-14,Sharp,Arkansas,05135,36,2 +2020-05-15,Sharp,Arkansas,05135,37,2 +2020-05-16,Sharp,Arkansas,05135,37,2 +2020-05-17,Sharp,Arkansas,05135,37,2 +2020-05-18,Sharp,Arkansas,05135,37,2 +2020-05-19,Sharp,Arkansas,05135,38,2 +2020-05-20,Sharp,Arkansas,05135,40,2 +2020-05-21,Sharp,Arkansas,05135,42,2 +2020-05-22,Sharp,Arkansas,05135,42,2 +2020-05-23,Sharp,Arkansas,05135,42,2 +2020-05-24,Sharp,Arkansas,05135,42,2 +2020-05-25,Sharp,Arkansas,05135,42,2 +2020-05-26,Sharp,Arkansas,05135,42,2 +2020-05-27,Sharp,Arkansas,05135,42,2 +2020-05-28,Sharp,Arkansas,05135,45,2 +2020-05-29,Sharp,Arkansas,05135,46,2 +2020-05-30,Sharp,Arkansas,05135,46,2 +2020-05-31,Sharp,Arkansas,05135,46,2 +2020-06-01,Sharp,Arkansas,05135,46,2 +2020-06-02,Sharp,Arkansas,05135,46,2 +2020-06-03,Sharp,Arkansas,05135,47,2 +2020-06-04,Sharp,Arkansas,05135,47,3 +2020-06-05,Sharp,Arkansas,05135,48,3 +2020-06-06,Sharp,Arkansas,05135,48,3 +2020-06-07,Sharp,Arkansas,05135,48,3 +2020-06-08,Sharp,Arkansas,05135,48,3 +2020-06-09,Sharp,Arkansas,05135,49,3 +2020-06-10,Sharp,Arkansas,05135,50,3 +2020-06-11,Sharp,Arkansas,05135,50,3 +2020-06-12,Sharp,Arkansas,05135,51,3 +2020-06-13,Sharp,Arkansas,05135,50,3 +2020-06-14,Sharp,Arkansas,05135,50,3 +2020-06-15,Sharp,Arkansas,05135,50,3 +2020-06-16,Sharp,Arkansas,05135,50,3 +2020-06-17,Sharp,Arkansas,05135,50,3 +2020-06-18,Sharp,Arkansas,05135,50,4 +2020-06-19,Sharp,Arkansas,05135,50,4 +2020-06-20,Sharp,Arkansas,05135,50,4 +2020-06-21,Sharp,Arkansas,05135,50,4 +2020-06-22,Sharp,Arkansas,05135,51,4 +2020-06-23,Sharp,Arkansas,05135,51,4 +2020-06-24,Sharp,Arkansas,05135,52,4 +2020-06-25,Sharp,Arkansas,05135,53,4 +2020-06-26,Sharp,Arkansas,05135,53,4 +2020-06-27,Sharp,Arkansas,05135,53,4 +2020-06-28,Sharp,Arkansas,05135,53,4 +2020-06-29,Sharp,Arkansas,05135,53,4 +2020-06-30,Sharp,Arkansas,05135,53,4 +2020-07-01,Sharp,Arkansas,05135,53,5 +2020-07-02,Sharp,Arkansas,05135,54,5 +2020-07-03,Sharp,Arkansas,05135,57,5 +2020-07-04,Sharp,Arkansas,05135,58,5 +2020-07-05,Sharp,Arkansas,05135,58,5 +2020-07-06,Sharp,Arkansas,05135,58,5 +2020-07-07,Sharp,Arkansas,05135,56,5 +2020-07-08,Sharp,Arkansas,05135,58,5 +2020-07-09,Sharp,Arkansas,05135,61,5 +2020-03-24,Stone,Arkansas,05137,2,0 +2020-03-25,Stone,Arkansas,05137,3,0 +2020-03-26,Stone,Arkansas,05137,4,0 +2020-03-27,Stone,Arkansas,05137,4,0 +2020-03-28,Stone,Arkansas,05137,4,0 +2020-03-29,Stone,Arkansas,05137,4,0 +2020-03-30,Stone,Arkansas,05137,5,0 +2020-03-31,Stone,Arkansas,05137,5,0 +2020-04-01,Stone,Arkansas,05137,5,0 +2020-04-02,Stone,Arkansas,05137,5,0 +2020-04-03,Stone,Arkansas,05137,5,0 +2020-04-04,Stone,Arkansas,05137,5,0 +2020-04-05,Stone,Arkansas,05137,5,0 +2020-04-06,Stone,Arkansas,05137,5,0 +2020-04-07,Stone,Arkansas,05137,5,0 +2020-04-08,Stone,Arkansas,05137,7,0 +2020-04-09,Stone,Arkansas,05137,7,0 +2020-04-10,Stone,Arkansas,05137,7,0 +2020-04-11,Stone,Arkansas,05137,7,0 +2020-04-12,Stone,Arkansas,05137,7,0 +2020-04-13,Stone,Arkansas,05137,7,0 +2020-04-14,Stone,Arkansas,05137,7,0 +2020-04-15,Stone,Arkansas,05137,7,0 +2020-04-16,Stone,Arkansas,05137,7,0 +2020-04-17,Stone,Arkansas,05137,7,0 +2020-04-18,Stone,Arkansas,05137,7,0 +2020-04-19,Stone,Arkansas,05137,7,0 +2020-04-20,Stone,Arkansas,05137,7,0 +2020-04-21,Stone,Arkansas,05137,7,0 +2020-04-22,Stone,Arkansas,05137,7,0 +2020-04-23,Stone,Arkansas,05137,7,0 +2020-04-24,Stone,Arkansas,05137,7,0 +2020-04-25,Stone,Arkansas,05137,7,0 +2020-04-26,Stone,Arkansas,05137,7,0 +2020-04-27,Stone,Arkansas,05137,7,0 +2020-04-28,Stone,Arkansas,05137,7,0 +2020-04-29,Stone,Arkansas,05137,7,0 +2020-04-30,Stone,Arkansas,05137,7,0 +2020-05-01,Stone,Arkansas,05137,7,0 +2020-05-02,Stone,Arkansas,05137,8,0 +2020-05-03,Stone,Arkansas,05137,8,0 +2020-05-04,Stone,Arkansas,05137,8,0 +2020-05-05,Stone,Arkansas,05137,8,0 +2020-05-06,Stone,Arkansas,05137,8,0 +2020-05-07,Stone,Arkansas,05137,8,0 +2020-05-08,Stone,Arkansas,05137,8,0 +2020-05-09,Stone,Arkansas,05137,8,0 +2020-05-10,Stone,Arkansas,05137,8,0 +2020-05-11,Stone,Arkansas,05137,8,0 +2020-05-12,Stone,Arkansas,05137,8,0 +2020-05-13,Stone,Arkansas,05137,8,0 +2020-05-14,Stone,Arkansas,05137,8,0 +2020-05-15,Stone,Arkansas,05137,8,0 +2020-05-16,Stone,Arkansas,05137,8,0 +2020-05-17,Stone,Arkansas,05137,8,0 +2020-05-18,Stone,Arkansas,05137,8,0 +2020-05-19,Stone,Arkansas,05137,8,0 +2020-05-20,Stone,Arkansas,05137,8,0 +2020-05-21,Stone,Arkansas,05137,8,0 +2020-05-22,Stone,Arkansas,05137,8,0 +2020-05-23,Stone,Arkansas,05137,8,0 +2020-05-24,Stone,Arkansas,05137,8,0 +2020-05-25,Stone,Arkansas,05137,8,0 +2020-05-26,Stone,Arkansas,05137,8,0 +2020-05-27,Stone,Arkansas,05137,8,0 +2020-05-28,Stone,Arkansas,05137,8,0 +2020-05-29,Stone,Arkansas,05137,8,0 +2020-05-30,Stone,Arkansas,05137,9,0 +2020-05-31,Stone,Arkansas,05137,9,0 +2020-06-01,Stone,Arkansas,05137,9,0 +2020-06-02,Stone,Arkansas,05137,9,0 +2020-06-03,Stone,Arkansas,05137,9,0 +2020-06-04,Stone,Arkansas,05137,10,0 +2020-06-05,Stone,Arkansas,05137,10,0 +2020-06-06,Stone,Arkansas,05137,10,0 +2020-06-07,Stone,Arkansas,05137,10,0 +2020-06-08,Stone,Arkansas,05137,11,0 +2020-06-09,Stone,Arkansas,05137,11,0 +2020-06-10,Stone,Arkansas,05137,11,0 +2020-06-11,Stone,Arkansas,05137,11,0 +2020-06-12,Stone,Arkansas,05137,11,0 +2020-06-13,Stone,Arkansas,05137,11,0 +2020-06-14,Stone,Arkansas,05137,11,0 +2020-06-15,Stone,Arkansas,05137,11,0 +2020-06-16,Stone,Arkansas,05137,11,0 +2020-06-17,Stone,Arkansas,05137,11,0 +2020-06-18,Stone,Arkansas,05137,11,0 +2020-06-19,Stone,Arkansas,05137,11,0 +2020-06-20,Stone,Arkansas,05137,11,0 +2020-06-21,Stone,Arkansas,05137,11,0 +2020-06-22,Stone,Arkansas,05137,13,0 +2020-06-23,Stone,Arkansas,05137,13,0 +2020-06-24,Stone,Arkansas,05137,13,0 +2020-06-25,Stone,Arkansas,05137,13,0 +2020-06-26,Stone,Arkansas,05137,13,0 +2020-06-27,Stone,Arkansas,05137,13,0 +2020-06-28,Stone,Arkansas,05137,13,0 +2020-06-29,Stone,Arkansas,05137,14,0 +2020-06-30,Stone,Arkansas,05137,14,0 +2020-07-01,Stone,Arkansas,05137,14,0 +2020-07-02,Stone,Arkansas,05137,17,0 +2020-07-03,Stone,Arkansas,05137,17,0 +2020-07-04,Stone,Arkansas,05137,18,0 +2020-07-05,Stone,Arkansas,05137,19,0 +2020-07-06,Stone,Arkansas,05137,19,0 +2020-07-07,Stone,Arkansas,05137,19,1 +2020-07-08,Stone,Arkansas,05137,19,1 +2020-07-09,Stone,Arkansas,05137,19,1 +2020-03-24,Union,Arkansas,05139,1,0 +2020-03-25,Union,Arkansas,05139,2,0 +2020-03-26,Union,Arkansas,05139,2,0 +2020-03-27,Union,Arkansas,05139,2,0 +2020-03-28,Union,Arkansas,05139,5,0 +2020-03-29,Union,Arkansas,05139,6,0 +2020-03-30,Union,Arkansas,05139,8,0 +2020-03-31,Union,Arkansas,05139,8,0 +2020-04-01,Union,Arkansas,05139,9,0 +2020-04-02,Union,Arkansas,05139,10,0 +2020-04-03,Union,Arkansas,05139,10,0 +2020-04-04,Union,Arkansas,05139,10,0 +2020-04-05,Union,Arkansas,05139,12,0 +2020-04-06,Union,Arkansas,05139,13,0 +2020-04-07,Union,Arkansas,05139,13,0 +2020-04-08,Union,Arkansas,05139,15,0 +2020-04-09,Union,Arkansas,05139,16,0 +2020-04-10,Union,Arkansas,05139,17,0 +2020-04-11,Union,Arkansas,05139,18,0 +2020-04-12,Union,Arkansas,05139,18,0 +2020-04-13,Union,Arkansas,05139,17,0 +2020-04-14,Union,Arkansas,05139,17,0 +2020-04-15,Union,Arkansas,05139,18,0 +2020-04-16,Union,Arkansas,05139,19,0 +2020-04-17,Union,Arkansas,05139,20,0 +2020-04-18,Union,Arkansas,05139,24,0 +2020-04-19,Union,Arkansas,05139,24,0 +2020-04-20,Union,Arkansas,05139,26,0 +2020-04-21,Union,Arkansas,05139,26,0 +2020-04-22,Union,Arkansas,05139,28,0 +2020-04-23,Union,Arkansas,05139,29,0 +2020-04-24,Union,Arkansas,05139,30,0 +2020-04-25,Union,Arkansas,05139,32,0 +2020-04-26,Union,Arkansas,05139,33,0 +2020-04-27,Union,Arkansas,05139,38,0 +2020-04-28,Union,Arkansas,05139,43,0 +2020-04-29,Union,Arkansas,05139,45,0 +2020-04-30,Union,Arkansas,05139,50,0 +2020-05-01,Union,Arkansas,05139,54,0 +2020-05-02,Union,Arkansas,05139,54,0 +2020-05-03,Union,Arkansas,05139,60,0 +2020-05-04,Union,Arkansas,05139,62,0 +2020-05-05,Union,Arkansas,05139,62,0 +2020-05-06,Union,Arkansas,05139,67,1 +2020-05-07,Union,Arkansas,05139,73,1 +2020-05-08,Union,Arkansas,05139,73,1 +2020-05-09,Union,Arkansas,05139,73,1 +2020-05-10,Union,Arkansas,05139,76,2 +2020-05-11,Union,Arkansas,05139,76,4 +2020-05-12,Union,Arkansas,05139,80,4 +2020-05-13,Union,Arkansas,05139,84,4 +2020-05-14,Union,Arkansas,05139,105,4 +2020-05-15,Union,Arkansas,05139,105,4 +2020-05-16,Union,Arkansas,05139,107,4 +2020-05-17,Union,Arkansas,05139,107,4 +2020-05-18,Union,Arkansas,05139,107,4 +2020-05-19,Union,Arkansas,05139,117,4 +2020-05-20,Union,Arkansas,05139,121,4 +2020-05-21,Union,Arkansas,05139,140,4 +2020-05-22,Union,Arkansas,05139,144,4 +2020-05-23,Union,Arkansas,05139,152,5 +2020-05-24,Union,Arkansas,05139,157,6 +2020-05-25,Union,Arkansas,05139,160,6 +2020-05-26,Union,Arkansas,05139,162,6 +2020-05-27,Union,Arkansas,05139,162,6 +2020-05-28,Union,Arkansas,05139,164,8 +2020-05-29,Union,Arkansas,05139,166,8 +2020-05-30,Union,Arkansas,05139,171,8 +2020-05-31,Union,Arkansas,05139,173,8 +2020-06-01,Union,Arkansas,05139,173,8 +2020-06-02,Union,Arkansas,05139,173,9 +2020-06-03,Union,Arkansas,05139,177,10 +2020-06-04,Union,Arkansas,05139,179,11 +2020-06-05,Union,Arkansas,05139,185,11 +2020-06-06,Union,Arkansas,05139,188,11 +2020-06-07,Union,Arkansas,05139,188,11 +2020-06-08,Union,Arkansas,05139,188,11 +2020-06-09,Union,Arkansas,05139,190,11 +2020-06-10,Union,Arkansas,05139,190,11 +2020-06-11,Union,Arkansas,05139,194,11 +2020-06-12,Union,Arkansas,05139,199,11 +2020-06-13,Union,Arkansas,05139,202,11 +2020-06-14,Union,Arkansas,05139,203,11 +2020-06-15,Union,Arkansas,05139,208,11 +2020-06-16,Union,Arkansas,05139,209,11 +2020-06-17,Union,Arkansas,05139,213,11 +2020-06-18,Union,Arkansas,05139,218,13 +2020-06-19,Union,Arkansas,05139,220,13 +2020-06-20,Union,Arkansas,05139,223,13 +2020-06-21,Union,Arkansas,05139,224,13 +2020-06-22,Union,Arkansas,05139,227,13 +2020-06-23,Union,Arkansas,05139,232,13 +2020-06-24,Union,Arkansas,05139,232,13 +2020-06-25,Union,Arkansas,05139,237,13 +2020-06-26,Union,Arkansas,05139,243,13 +2020-06-27,Union,Arkansas,05139,245,13 +2020-06-28,Union,Arkansas,05139,245,13 +2020-06-29,Union,Arkansas,05139,247,13 +2020-06-30,Union,Arkansas,05139,248,13 +2020-07-01,Union,Arkansas,05139,249,13 +2020-07-02,Union,Arkansas,05139,250,13 +2020-07-03,Union,Arkansas,05139,252,13 +2020-07-04,Union,Arkansas,05139,252,13 +2020-07-05,Union,Arkansas,05139,252,13 +2020-07-06,Union,Arkansas,05139,253,13 +2020-07-07,Union,Arkansas,05139,256,13 +2020-07-08,Union,Arkansas,05139,264,13 +2020-07-09,Union,Arkansas,05139,266,13 +2020-03-19,Van Buren,Arkansas,05141,1,0 +2020-03-20,Van Buren,Arkansas,05141,1,0 +2020-03-21,Van Buren,Arkansas,05141,1,0 +2020-03-22,Van Buren,Arkansas,05141,1,0 +2020-03-23,Van Buren,Arkansas,05141,1,0 +2020-03-24,Van Buren,Arkansas,05141,7,0 +2020-03-25,Van Buren,Arkansas,05141,10,0 +2020-03-26,Van Buren,Arkansas,05141,13,0 +2020-03-27,Van Buren,Arkansas,05141,17,0 +2020-03-28,Van Buren,Arkansas,05141,17,0 +2020-03-29,Van Buren,Arkansas,05141,18,1 +2020-03-30,Van Buren,Arkansas,05141,20,1 +2020-03-31,Van Buren,Arkansas,05141,19,1 +2020-04-01,Van Buren,Arkansas,05141,20,1 +2020-04-02,Van Buren,Arkansas,05141,20,1 +2020-04-03,Van Buren,Arkansas,05141,20,1 +2020-04-04,Van Buren,Arkansas,05141,20,1 +2020-04-05,Van Buren,Arkansas,05141,21,1 +2020-04-06,Van Buren,Arkansas,05141,21,1 +2020-04-07,Van Buren,Arkansas,05141,22,1 +2020-04-08,Van Buren,Arkansas,05141,25,1 +2020-04-09,Van Buren,Arkansas,05141,26,1 +2020-04-10,Van Buren,Arkansas,05141,26,2 +2020-04-11,Van Buren,Arkansas,05141,26,2 +2020-04-12,Van Buren,Arkansas,05141,26,2 +2020-04-13,Van Buren,Arkansas,05141,26,2 +2020-04-14,Van Buren,Arkansas,05141,26,2 +2020-04-15,Van Buren,Arkansas,05141,26,2 +2020-04-16,Van Buren,Arkansas,05141,26,2 +2020-04-17,Van Buren,Arkansas,05141,26,2 +2020-04-18,Van Buren,Arkansas,05141,26,2 +2020-04-19,Van Buren,Arkansas,05141,26,2 +2020-04-20,Van Buren,Arkansas,05141,26,2 +2020-04-21,Van Buren,Arkansas,05141,26,2 +2020-04-22,Van Buren,Arkansas,05141,26,2 +2020-04-23,Van Buren,Arkansas,05141,26,2 +2020-04-24,Van Buren,Arkansas,05141,26,2 +2020-04-25,Van Buren,Arkansas,05141,27,2 +2020-04-26,Van Buren,Arkansas,05141,27,2 +2020-04-27,Van Buren,Arkansas,05141,27,2 +2020-04-28,Van Buren,Arkansas,05141,27,2 +2020-04-29,Van Buren,Arkansas,05141,28,2 +2020-04-30,Van Buren,Arkansas,05141,28,2 +2020-05-01,Van Buren,Arkansas,05141,28,2 +2020-05-02,Van Buren,Arkansas,05141,28,2 +2020-05-03,Van Buren,Arkansas,05141,28,2 +2020-05-04,Van Buren,Arkansas,05141,28,2 +2020-05-05,Van Buren,Arkansas,05141,28,2 +2020-05-06,Van Buren,Arkansas,05141,28,2 +2020-05-07,Van Buren,Arkansas,05141,28,2 +2020-05-08,Van Buren,Arkansas,05141,28,2 +2020-05-09,Van Buren,Arkansas,05141,28,2 +2020-05-10,Van Buren,Arkansas,05141,28,2 +2020-05-11,Van Buren,Arkansas,05141,28,2 +2020-05-12,Van Buren,Arkansas,05141,28,2 +2020-05-13,Van Buren,Arkansas,05141,28,2 +2020-05-14,Van Buren,Arkansas,05141,28,2 +2020-05-15,Van Buren,Arkansas,05141,28,2 +2020-05-16,Van Buren,Arkansas,05141,28,2 +2020-05-17,Van Buren,Arkansas,05141,28,2 +2020-05-18,Van Buren,Arkansas,05141,28,2 +2020-05-19,Van Buren,Arkansas,05141,28,2 +2020-05-20,Van Buren,Arkansas,05141,28,2 +2020-05-21,Van Buren,Arkansas,05141,28,2 +2020-05-22,Van Buren,Arkansas,05141,28,2 +2020-05-23,Van Buren,Arkansas,05141,28,2 +2020-05-24,Van Buren,Arkansas,05141,28,2 +2020-05-25,Van Buren,Arkansas,05141,28,2 +2020-05-26,Van Buren,Arkansas,05141,28,2 +2020-05-27,Van Buren,Arkansas,05141,28,2 +2020-05-28,Van Buren,Arkansas,05141,28,2 +2020-05-29,Van Buren,Arkansas,05141,28,2 +2020-05-30,Van Buren,Arkansas,05141,28,2 +2020-05-31,Van Buren,Arkansas,05141,28,2 +2020-06-01,Van Buren,Arkansas,05141,28,2 +2020-06-02,Van Buren,Arkansas,05141,29,2 +2020-06-03,Van Buren,Arkansas,05141,29,2 +2020-06-04,Van Buren,Arkansas,05141,29,2 +2020-06-05,Van Buren,Arkansas,05141,29,2 +2020-06-06,Van Buren,Arkansas,05141,29,2 +2020-06-07,Van Buren,Arkansas,05141,30,2 +2020-06-08,Van Buren,Arkansas,05141,30,2 +2020-06-09,Van Buren,Arkansas,05141,30,2 +2020-06-10,Van Buren,Arkansas,05141,30,2 +2020-06-11,Van Buren,Arkansas,05141,30,2 +2020-06-12,Van Buren,Arkansas,05141,30,2 +2020-06-13,Van Buren,Arkansas,05141,30,2 +2020-06-14,Van Buren,Arkansas,05141,30,2 +2020-06-15,Van Buren,Arkansas,05141,30,2 +2020-06-16,Van Buren,Arkansas,05141,30,2 +2020-06-17,Van Buren,Arkansas,05141,30,2 +2020-06-18,Van Buren,Arkansas,05141,30,2 +2020-06-19,Van Buren,Arkansas,05141,30,2 +2020-06-20,Van Buren,Arkansas,05141,30,2 +2020-06-21,Van Buren,Arkansas,05141,30,2 +2020-06-22,Van Buren,Arkansas,05141,30,2 +2020-06-23,Van Buren,Arkansas,05141,30,2 +2020-06-24,Van Buren,Arkansas,05141,30,2 +2020-06-25,Van Buren,Arkansas,05141,30,2 +2020-06-26,Van Buren,Arkansas,05141,33,2 +2020-06-27,Van Buren,Arkansas,05141,34,2 +2020-06-28,Van Buren,Arkansas,05141,34,2 +2020-06-29,Van Buren,Arkansas,05141,34,2 +2020-06-30,Van Buren,Arkansas,05141,35,2 +2020-07-01,Van Buren,Arkansas,05141,33,2 +2020-07-02,Van Buren,Arkansas,05141,33,2 +2020-07-03,Van Buren,Arkansas,05141,33,2 +2020-07-04,Van Buren,Arkansas,05141,33,2 +2020-07-05,Van Buren,Arkansas,05141,33,2 +2020-07-06,Van Buren,Arkansas,05141,34,2 +2020-07-07,Van Buren,Arkansas,05141,34,2 +2020-07-08,Van Buren,Arkansas,05141,36,2 +2020-07-09,Van Buren,Arkansas,05141,36,2 +2020-03-18,Washington,Arkansas,05143,1,0 +2020-03-19,Washington,Arkansas,05143,1,0 +2020-03-20,Washington,Arkansas,05143,1,0 +2020-03-21,Washington,Arkansas,05143,1,0 +2020-03-22,Washington,Arkansas,05143,5,0 +2020-03-23,Washington,Arkansas,05143,5,0 +2020-03-24,Washington,Arkansas,05143,6,0 +2020-03-25,Washington,Arkansas,05143,10,0 +2020-03-26,Washington,Arkansas,05143,12,0 +2020-03-27,Washington,Arkansas,05143,13,0 +2020-03-28,Washington,Arkansas,05143,14,0 +2020-03-29,Washington,Arkansas,05143,15,0 +2020-03-30,Washington,Arkansas,05143,18,0 +2020-03-31,Washington,Arkansas,05143,22,0 +2020-04-01,Washington,Arkansas,05143,22,0 +2020-04-02,Washington,Arkansas,05143,24,0 +2020-04-03,Washington,Arkansas,05143,25,0 +2020-04-04,Washington,Arkansas,05143,25,0 +2020-04-05,Washington,Arkansas,05143,29,0 +2020-04-06,Washington,Arkansas,05143,29,0 +2020-04-07,Washington,Arkansas,05143,30,0 +2020-04-08,Washington,Arkansas,05143,36,0 +2020-04-09,Washington,Arkansas,05143,37,0 +2020-04-10,Washington,Arkansas,05143,37,0 +2020-04-11,Washington,Arkansas,05143,37,0 +2020-04-12,Washington,Arkansas,05143,37,0 +2020-04-13,Washington,Arkansas,05143,43,0 +2020-04-14,Washington,Arkansas,05143,43,0 +2020-04-15,Washington,Arkansas,05143,44,0 +2020-04-16,Washington,Arkansas,05143,44,0 +2020-04-17,Washington,Arkansas,05143,45,0 +2020-04-18,Washington,Arkansas,05143,45,0 +2020-04-19,Washington,Arkansas,05143,46,0 +2020-04-20,Washington,Arkansas,05143,54,0 +2020-04-21,Washington,Arkansas,05143,60,0 +2020-04-22,Washington,Arkansas,05143,61,1 +2020-04-23,Washington,Arkansas,05143,62,2 +2020-04-24,Washington,Arkansas,05143,71,2 +2020-04-25,Washington,Arkansas,05143,74,3 +2020-04-26,Washington,Arkansas,05143,77,3 +2020-04-27,Washington,Arkansas,05143,77,3 +2020-04-28,Washington,Arkansas,05143,77,3 +2020-04-29,Washington,Arkansas,05143,84,3 +2020-04-30,Washington,Arkansas,05143,86,3 +2020-05-01,Washington,Arkansas,05143,87,3 +2020-05-02,Washington,Arkansas,05143,87,3 +2020-05-03,Washington,Arkansas,05143,90,3 +2020-05-04,Washington,Arkansas,05143,91,3 +2020-05-05,Washington,Arkansas,05143,91,3 +2020-05-06,Washington,Arkansas,05143,94,3 +2020-05-07,Washington,Arkansas,05143,102,3 +2020-05-08,Washington,Arkansas,05143,105,3 +2020-05-09,Washington,Arkansas,05143,105,3 +2020-05-10,Washington,Arkansas,05143,110,3 +2020-05-11,Washington,Arkansas,05143,110,3 +2020-05-12,Washington,Arkansas,05143,111,4 +2020-05-13,Washington,Arkansas,05143,114,5 +2020-05-14,Washington,Arkansas,05143,126,5 +2020-05-15,Washington,Arkansas,05143,131,5 +2020-05-16,Washington,Arkansas,05143,141,5 +2020-05-17,Washington,Arkansas,05143,143,5 +2020-05-18,Washington,Arkansas,05143,145,5 +2020-05-19,Washington,Arkansas,05143,151,5 +2020-05-20,Washington,Arkansas,05143,154,5 +2020-05-21,Washington,Arkansas,05143,180,5 +2020-05-22,Washington,Arkansas,05143,213,5 +2020-05-23,Washington,Arkansas,05143,233,5 +2020-05-24,Washington,Arkansas,05143,259,5 +2020-05-25,Washington,Arkansas,05143,276,5 +2020-05-26,Washington,Arkansas,05143,303,5 +2020-05-27,Washington,Arkansas,05143,326,6 +2020-05-28,Washington,Arkansas,05143,352,6 +2020-05-29,Washington,Arkansas,05143,410,7 +2020-05-30,Washington,Arkansas,05143,452,7 +2020-05-31,Washington,Arkansas,05143,509,7 +2020-06-01,Washington,Arkansas,05143,562,7 +2020-06-02,Washington,Arkansas,05143,620,7 +2020-06-03,Washington,Arkansas,05143,652,7 +2020-06-04,Washington,Arkansas,05143,771,8 +2020-06-05,Washington,Arkansas,05143,824,8 +2020-06-06,Washington,Arkansas,05143,913,8 +2020-06-07,Washington,Arkansas,05143,1016,8 +2020-06-08,Washington,Arkansas,05143,1097,7 +2020-06-09,Washington,Arkansas,05143,1185,7 +2020-06-10,Washington,Arkansas,05143,1235,9 +2020-06-11,Washington,Arkansas,05143,1389,10 +2020-06-12,Washington,Arkansas,05143,1605,12 +2020-06-13,Washington,Arkansas,05143,1710,12 +2020-06-14,Washington,Arkansas,05143,1804,12 +2020-06-15,Washington,Arkansas,05143,1925,12 +2020-06-16,Washington,Arkansas,05143,1977,13 +2020-06-17,Washington,Arkansas,05143,2080,15 +2020-06-18,Washington,Arkansas,05143,2141,15 +2020-06-19,Washington,Arkansas,05143,2222,17 +2020-06-20,Washington,Arkansas,05143,2321,18 +2020-06-21,Washington,Arkansas,05143,2404,18 +2020-06-22,Washington,Arkansas,05143,2531,18 +2020-06-23,Washington,Arkansas,05143,2680,21 +2020-06-24,Washington,Arkansas,05143,2767,23 +2020-06-25,Washington,Arkansas,05143,2880,23 +2020-06-26,Washington,Arkansas,05143,3140,24 +2020-06-27,Washington,Arkansas,05143,3238,27 +2020-06-28,Washington,Arkansas,05143,3320,30 +2020-06-29,Washington,Arkansas,05143,3417,30 +2020-06-30,Washington,Arkansas,05143,3578,30 +2020-07-01,Washington,Arkansas,05143,3634,30 +2020-07-02,Washington,Arkansas,05143,3766,31 +2020-07-03,Washington,Arkansas,05143,3853,31 +2020-07-04,Washington,Arkansas,05143,3932,32 +2020-07-05,Washington,Arkansas,05143,4050,32 +2020-07-06,Washington,Arkansas,05143,4137,33 +2020-07-07,Washington,Arkansas,05143,4171,34 +2020-07-08,Washington,Arkansas,05143,4266,35 +2020-07-09,Washington,Arkansas,05143,4309,35 +2020-03-24,White,Arkansas,05145,4,0 +2020-03-25,White,Arkansas,05145,4,0 +2020-03-26,White,Arkansas,05145,6,0 +2020-03-27,White,Arkansas,05145,6,0 +2020-03-28,White,Arkansas,05145,6,0 +2020-03-29,White,Arkansas,05145,6,0 +2020-03-30,White,Arkansas,05145,9,0 +2020-03-31,White,Arkansas,05145,11,0 +2020-04-01,White,Arkansas,05145,15,0 +2020-04-02,White,Arkansas,05145,22,0 +2020-04-03,White,Arkansas,05145,23,0 +2020-04-04,White,Arkansas,05145,23,0 +2020-04-05,White,Arkansas,05145,25,0 +2020-04-06,White,Arkansas,05145,27,0 +2020-04-07,White,Arkansas,05145,27,0 +2020-04-08,White,Arkansas,05145,27,0 +2020-04-09,White,Arkansas,05145,27,0 +2020-04-10,White,Arkansas,05145,28,0 +2020-04-11,White,Arkansas,05145,28,0 +2020-04-12,White,Arkansas,05145,28,0 +2020-04-13,White,Arkansas,05145,28,0 +2020-04-14,White,Arkansas,05145,28,0 +2020-04-15,White,Arkansas,05145,28,0 +2020-04-16,White,Arkansas,05145,28,0 +2020-04-17,White,Arkansas,05145,29,0 +2020-04-18,White,Arkansas,05145,29,0 +2020-04-19,White,Arkansas,05145,29,0 +2020-04-20,White,Arkansas,05145,29,1 +2020-04-21,White,Arkansas,05145,29,1 +2020-04-22,White,Arkansas,05145,29,1 +2020-04-23,White,Arkansas,05145,29,1 +2020-04-24,White,Arkansas,05145,30,1 +2020-04-25,White,Arkansas,05145,31,1 +2020-04-26,White,Arkansas,05145,31,1 +2020-04-27,White,Arkansas,05145,31,1 +2020-04-28,White,Arkansas,05145,31,1 +2020-04-29,White,Arkansas,05145,33,1 +2020-04-30,White,Arkansas,05145,34,1 +2020-05-01,White,Arkansas,05145,34,1 +2020-05-02,White,Arkansas,05145,34,1 +2020-05-03,White,Arkansas,05145,35,1 +2020-05-04,White,Arkansas,05145,35,1 +2020-05-05,White,Arkansas,05145,35,1 +2020-05-06,White,Arkansas,05145,35,1 +2020-05-07,White,Arkansas,05145,35,1 +2020-05-08,White,Arkansas,05145,35,1 +2020-05-09,White,Arkansas,05145,35,1 +2020-05-10,White,Arkansas,05145,36,1 +2020-05-11,White,Arkansas,05145,36,1 +2020-05-12,White,Arkansas,05145,37,1 +2020-05-13,White,Arkansas,05145,36,1 +2020-05-14,White,Arkansas,05145,36,1 +2020-05-15,White,Arkansas,05145,36,1 +2020-05-16,White,Arkansas,05145,36,1 +2020-05-17,White,Arkansas,05145,36,1 +2020-05-18,White,Arkansas,05145,37,1 +2020-05-19,White,Arkansas,05145,37,1 +2020-05-20,White,Arkansas,05145,37,1 +2020-05-21,White,Arkansas,05145,37,1 +2020-05-22,White,Arkansas,05145,37,1 +2020-05-23,White,Arkansas,05145,38,1 +2020-05-24,White,Arkansas,05145,40,1 +2020-05-25,White,Arkansas,05145,40,1 +2020-05-26,White,Arkansas,05145,40,1 +2020-05-27,White,Arkansas,05145,42,1 +2020-05-28,White,Arkansas,05145,43,1 +2020-05-29,White,Arkansas,05145,43,1 +2020-05-30,White,Arkansas,05145,44,1 +2020-05-31,White,Arkansas,05145,44,1 +2020-06-01,White,Arkansas,05145,44,1 +2020-06-02,White,Arkansas,05145,46,1 +2020-06-03,White,Arkansas,05145,48,1 +2020-06-04,White,Arkansas,05145,48,1 +2020-06-05,White,Arkansas,05145,48,1 +2020-06-06,White,Arkansas,05145,49,1 +2020-06-07,White,Arkansas,05145,49,1 +2020-06-08,White,Arkansas,05145,50,1 +2020-06-09,White,Arkansas,05145,50,1 +2020-06-10,White,Arkansas,05145,52,1 +2020-06-11,White,Arkansas,05145,55,1 +2020-06-12,White,Arkansas,05145,54,1 +2020-06-13,White,Arkansas,05145,56,1 +2020-06-14,White,Arkansas,05145,58,1 +2020-06-15,White,Arkansas,05145,59,1 +2020-06-16,White,Arkansas,05145,61,1 +2020-06-17,White,Arkansas,05145,65,1 +2020-06-18,White,Arkansas,05145,69,1 +2020-06-19,White,Arkansas,05145,70,1 +2020-06-20,White,Arkansas,05145,73,1 +2020-06-21,White,Arkansas,05145,73,1 +2020-06-22,White,Arkansas,05145,76,1 +2020-06-23,White,Arkansas,05145,76,1 +2020-06-24,White,Arkansas,05145,80,1 +2020-06-25,White,Arkansas,05145,79,1 +2020-06-26,White,Arkansas,05145,80,1 +2020-06-27,White,Arkansas,05145,82,1 +2020-06-28,White,Arkansas,05145,84,1 +2020-06-29,White,Arkansas,05145,85,1 +2020-06-30,White,Arkansas,05145,86,1 +2020-07-01,White,Arkansas,05145,87,1 +2020-07-02,White,Arkansas,05145,92,1 +2020-07-03,White,Arkansas,05145,92,1 +2020-07-04,White,Arkansas,05145,93,2 +2020-07-05,White,Arkansas,05145,96,2 +2020-07-06,White,Arkansas,05145,98,2 +2020-07-07,White,Arkansas,05145,101,2 +2020-07-08,White,Arkansas,05145,107,2 +2020-07-09,White,Arkansas,05145,115,2 +2020-03-24,Woodruff,Arkansas,05147,1,0 +2020-03-25,Woodruff,Arkansas,05147,1,0 +2020-03-26,Woodruff,Arkansas,05147,1,0 +2020-03-27,Woodruff,Arkansas,05147,1,0 +2020-03-28,Woodruff,Arkansas,05147,1,0 +2020-03-29,Woodruff,Arkansas,05147,1,0 +2020-03-30,Woodruff,Arkansas,05147,1,0 +2020-03-31,Woodruff,Arkansas,05147,1,0 +2020-04-01,Woodruff,Arkansas,05147,1,0 +2020-04-02,Woodruff,Arkansas,05147,1,0 +2020-04-03,Woodruff,Arkansas,05147,1,0 +2020-04-04,Woodruff,Arkansas,05147,1,0 +2020-04-05,Woodruff,Arkansas,05147,1,0 +2020-04-06,Woodruff,Arkansas,05147,1,0 +2020-04-07,Woodruff,Arkansas,05147,1,0 +2020-04-08,Woodruff,Arkansas,05147,1,0 +2020-04-09,Woodruff,Arkansas,05147,1,0 +2020-04-10,Woodruff,Arkansas,05147,1,0 +2020-04-11,Woodruff,Arkansas,05147,1,0 +2020-04-12,Woodruff,Arkansas,05147,1,0 +2020-04-13,Woodruff,Arkansas,05147,1,0 +2020-04-14,Woodruff,Arkansas,05147,1,0 +2020-04-15,Woodruff,Arkansas,05147,1,0 +2020-04-16,Woodruff,Arkansas,05147,1,0 +2020-04-17,Woodruff,Arkansas,05147,1,0 +2020-04-18,Woodruff,Arkansas,05147,1,0 +2020-04-19,Woodruff,Arkansas,05147,1,0 +2020-04-20,Woodruff,Arkansas,05147,1,0 +2020-04-21,Woodruff,Arkansas,05147,1,0 +2020-04-22,Woodruff,Arkansas,05147,1,0 +2020-04-23,Woodruff,Arkansas,05147,1,0 +2020-04-24,Woodruff,Arkansas,05147,1,0 +2020-04-25,Woodruff,Arkansas,05147,1,0 +2020-04-26,Woodruff,Arkansas,05147,1,0 +2020-04-27,Woodruff,Arkansas,05147,1,0 +2020-04-28,Woodruff,Arkansas,05147,1,0 +2020-04-29,Woodruff,Arkansas,05147,1,0 +2020-04-30,Woodruff,Arkansas,05147,1,0 +2020-05-01,Woodruff,Arkansas,05147,1,0 +2020-05-02,Woodruff,Arkansas,05147,1,0 +2020-05-03,Woodruff,Arkansas,05147,1,0 +2020-05-04,Woodruff,Arkansas,05147,1,0 +2020-05-05,Woodruff,Arkansas,05147,1,0 +2020-05-06,Woodruff,Arkansas,05147,1,0 +2020-05-07,Woodruff,Arkansas,05147,1,0 +2020-05-08,Woodruff,Arkansas,05147,1,0 +2020-05-09,Woodruff,Arkansas,05147,1,0 +2020-05-10,Woodruff,Arkansas,05147,1,0 +2020-05-11,Woodruff,Arkansas,05147,1,0 +2020-05-12,Woodruff,Arkansas,05147,1,0 +2020-05-13,Woodruff,Arkansas,05147,1,0 +2020-05-14,Woodruff,Arkansas,05147,1,0 +2020-05-15,Woodruff,Arkansas,05147,1,0 +2020-05-16,Woodruff,Arkansas,05147,1,0 +2020-05-17,Woodruff,Arkansas,05147,1,0 +2020-05-18,Woodruff,Arkansas,05147,1,0 +2020-05-19,Woodruff,Arkansas,05147,1,0 +2020-05-20,Woodruff,Arkansas,05147,1,0 +2020-05-21,Woodruff,Arkansas,05147,1,0 +2020-05-22,Woodruff,Arkansas,05147,1,0 +2020-05-23,Woodruff,Arkansas,05147,1,0 +2020-05-24,Woodruff,Arkansas,05147,1,0 +2020-05-25,Woodruff,Arkansas,05147,1,0 +2020-05-26,Woodruff,Arkansas,05147,1,0 +2020-05-27,Woodruff,Arkansas,05147,1,0 +2020-05-28,Woodruff,Arkansas,05147,2,0 +2020-05-29,Woodruff,Arkansas,05147,2,0 +2020-05-30,Woodruff,Arkansas,05147,1,0 +2020-05-31,Woodruff,Arkansas,05147,1,0 +2020-06-01,Woodruff,Arkansas,05147,1,0 +2020-06-02,Woodruff,Arkansas,05147,1,0 +2020-06-03,Woodruff,Arkansas,05147,1,0 +2020-06-04,Woodruff,Arkansas,05147,1,0 +2020-06-05,Woodruff,Arkansas,05147,1,0 +2020-06-06,Woodruff,Arkansas,05147,1,0 +2020-06-07,Woodruff,Arkansas,05147,1,0 +2020-06-08,Woodruff,Arkansas,05147,1,0 +2020-06-09,Woodruff,Arkansas,05147,1,0 +2020-06-10,Woodruff,Arkansas,05147,1,0 +2020-06-11,Woodruff,Arkansas,05147,1,0 +2020-06-12,Woodruff,Arkansas,05147,1,0 +2020-06-13,Woodruff,Arkansas,05147,3,0 +2020-06-14,Woodruff,Arkansas,05147,4,0 +2020-06-15,Woodruff,Arkansas,05147,5,0 +2020-06-16,Woodruff,Arkansas,05147,5,0 +2020-06-17,Woodruff,Arkansas,05147,5,0 +2020-06-18,Woodruff,Arkansas,05147,5,0 +2020-06-19,Woodruff,Arkansas,05147,6,0 +2020-06-20,Woodruff,Arkansas,05147,5,0 +2020-06-21,Woodruff,Arkansas,05147,6,0 +2020-06-22,Woodruff,Arkansas,05147,6,0 +2020-06-23,Woodruff,Arkansas,05147,6,0 +2020-06-24,Woodruff,Arkansas,05147,6,0 +2020-06-25,Woodruff,Arkansas,05147,6,0 +2020-06-26,Woodruff,Arkansas,05147,6,0 +2020-06-27,Woodruff,Arkansas,05147,6,0 +2020-06-28,Woodruff,Arkansas,05147,6,0 +2020-06-29,Woodruff,Arkansas,05147,6,0 +2020-06-30,Woodruff,Arkansas,05147,6,0 +2020-07-01,Woodruff,Arkansas,05147,6,0 +2020-07-02,Woodruff,Arkansas,05147,7,0 +2020-07-03,Woodruff,Arkansas,05147,7,0 +2020-07-04,Woodruff,Arkansas,05147,8,0 +2020-07-05,Woodruff,Arkansas,05147,8,0 +2020-07-06,Woodruff,Arkansas,05147,8,0 +2020-07-07,Woodruff,Arkansas,05147,8,0 +2020-07-08,Woodruff,Arkansas,05147,8,0 +2020-07-09,Woodruff,Arkansas,05147,10,0 +2020-04-05,Yell,Arkansas,05149,1,0 +2020-04-06,Yell,Arkansas,05149,1,0 +2020-04-07,Yell,Arkansas,05149,1,0 +2020-04-08,Yell,Arkansas,05149,1,0 +2020-04-09,Yell,Arkansas,05149,1,0 +2020-04-10,Yell,Arkansas,05149,1,0 +2020-04-11,Yell,Arkansas,05149,1,0 +2020-04-12,Yell,Arkansas,05149,1,0 +2020-04-13,Yell,Arkansas,05149,1,0 +2020-04-14,Yell,Arkansas,05149,1,0 +2020-04-15,Yell,Arkansas,05149,1,0 +2020-04-16,Yell,Arkansas,05149,1,0 +2020-04-17,Yell,Arkansas,05149,2,0 +2020-04-18,Yell,Arkansas,05149,2,0 +2020-04-19,Yell,Arkansas,05149,2,0 +2020-04-20,Yell,Arkansas,05149,2,0 +2020-04-21,Yell,Arkansas,05149,2,0 +2020-04-22,Yell,Arkansas,05149,3,0 +2020-04-23,Yell,Arkansas,05149,3,0 +2020-04-24,Yell,Arkansas,05149,3,0 +2020-04-25,Yell,Arkansas,05149,3,0 +2020-04-26,Yell,Arkansas,05149,3,0 +2020-04-27,Yell,Arkansas,05149,3,0 +2020-04-28,Yell,Arkansas,05149,3,0 +2020-04-29,Yell,Arkansas,05149,3,0 +2020-04-30,Yell,Arkansas,05149,3,0 +2020-05-01,Yell,Arkansas,05149,3,0 +2020-05-02,Yell,Arkansas,05149,4,0 +2020-05-03,Yell,Arkansas,05149,5,0 +2020-05-04,Yell,Arkansas,05149,6,1 +2020-05-05,Yell,Arkansas,05149,6,1 +2020-05-06,Yell,Arkansas,05149,7,1 +2020-05-07,Yell,Arkansas,05149,7,1 +2020-05-08,Yell,Arkansas,05149,7,1 +2020-05-09,Yell,Arkansas,05149,7,1 +2020-05-10,Yell,Arkansas,05149,7,1 +2020-05-11,Yell,Arkansas,05149,7,1 +2020-05-12,Yell,Arkansas,05149,7,1 +2020-05-13,Yell,Arkansas,05149,7,1 +2020-05-14,Yell,Arkansas,05149,9,1 +2020-05-15,Yell,Arkansas,05149,9,1 +2020-05-16,Yell,Arkansas,05149,13,1 +2020-05-17,Yell,Arkansas,05149,23,1 +2020-05-18,Yell,Arkansas,05149,28,1 +2020-05-19,Yell,Arkansas,05149,30,1 +2020-05-20,Yell,Arkansas,05149,38,1 +2020-05-21,Yell,Arkansas,05149,73,1 +2020-05-22,Yell,Arkansas,05149,76,1 +2020-05-23,Yell,Arkansas,05149,94,1 +2020-05-24,Yell,Arkansas,05149,96,1 +2020-05-25,Yell,Arkansas,05149,99,1 +2020-05-26,Yell,Arkansas,05149,102,1 +2020-05-27,Yell,Arkansas,05149,108,1 +2020-05-28,Yell,Arkansas,05149,114,1 +2020-05-29,Yell,Arkansas,05149,128,1 +2020-05-30,Yell,Arkansas,05149,137,1 +2020-05-31,Yell,Arkansas,05149,141,1 +2020-06-01,Yell,Arkansas,05149,162,1 +2020-06-02,Yell,Arkansas,05149,179,1 +2020-06-03,Yell,Arkansas,05149,183,1 +2020-06-04,Yell,Arkansas,05149,192,2 +2020-06-05,Yell,Arkansas,05149,202,2 +2020-06-06,Yell,Arkansas,05149,222,2 +2020-06-07,Yell,Arkansas,05149,235,2 +2020-06-08,Yell,Arkansas,05149,240,2 +2020-06-09,Yell,Arkansas,05149,248,2 +2020-06-10,Yell,Arkansas,05149,251,2 +2020-06-11,Yell,Arkansas,05149,261,2 +2020-06-12,Yell,Arkansas,05149,275,2 +2020-06-13,Yell,Arkansas,05149,289,2 +2020-06-14,Yell,Arkansas,05149,303,2 +2020-06-15,Yell,Arkansas,05149,308,2 +2020-06-16,Yell,Arkansas,05149,309,2 +2020-06-17,Yell,Arkansas,05149,324,2 +2020-06-18,Yell,Arkansas,05149,340,2 +2020-06-19,Yell,Arkansas,05149,361,2 +2020-06-20,Yell,Arkansas,05149,403,2 +2020-06-21,Yell,Arkansas,05149,416,2 +2020-06-22,Yell,Arkansas,05149,435,3 +2020-06-23,Yell,Arkansas,05149,448,3 +2020-06-24,Yell,Arkansas,05149,475,3 +2020-06-25,Yell,Arkansas,05149,479,3 +2020-06-26,Yell,Arkansas,05149,511,3 +2020-06-27,Yell,Arkansas,05149,534,3 +2020-06-28,Yell,Arkansas,05149,582,3 +2020-06-29,Yell,Arkansas,05149,591,3 +2020-06-30,Yell,Arkansas,05149,616,3 +2020-07-01,Yell,Arkansas,05149,644,3 +2020-07-02,Yell,Arkansas,05149,658,3 +2020-07-03,Yell,Arkansas,05149,668,3 +2020-07-04,Yell,Arkansas,05149,680,3 +2020-07-05,Yell,Arkansas,05149,707,3 +2020-07-06,Yell,Arkansas,05149,745,3 +2020-07-07,Yell,Arkansas,05149,750,5 +2020-07-08,Yell,Arkansas,05149,783,5 +2020-07-09,Yell,Arkansas,05149,799,5 +2020-03-01,Alameda,California,06001,1,0 +2020-03-02,Alameda,California,06001,1,0 +2020-03-03,Alameda,California,06001,2,0 +2020-03-04,Alameda,California,06001,2,0 +2020-03-05,Alameda,California,06001,2,0 +2020-03-06,Alameda,California,06001,3,0 +2020-03-07,Alameda,California,06001,3,0 +2020-03-08,Alameda,California,06001,3,0 +2020-03-09,Alameda,California,06001,24,0 +2020-03-10,Alameda,California,06001,25,0 +2020-03-11,Alameda,California,06001,25,0 +2020-03-12,Alameda,California,06001,29,0 +2020-03-13,Alameda,California,06001,29,0 +2020-03-14,Alameda,California,06001,29,0 +2020-03-15,Alameda,California,06001,37,0 +2020-03-16,Alameda,California,06001,40,0 +2020-03-17,Alameda,California,06001,49,0 +2020-03-18,Alameda,California,06001,53,0 +2020-03-19,Alameda,California,06001,57,0 +2020-03-20,Alameda,California,06001,67,0 +2020-03-21,Alameda,California,06001,87,0 +2020-03-22,Alameda,California,06001,127,0 +2020-03-23,Alameda,California,06001,139,1 +2020-03-24,Alameda,California,06001,151,2 +2020-03-25,Alameda,California,06001,156,2 +2020-03-26,Alameda,California,06001,199,4 +2020-03-27,Alameda,California,06001,241,4 +2020-03-28,Alameda,California,06001,277,6 +2020-03-29,Alameda,California,06001,291,6 +2020-03-30,Alameda,California,06001,304,7 +2020-03-31,Alameda,California,06001,334,7 +2020-04-01,Alameda,California,06001,380,8 +2020-04-02,Alameda,California,06001,417,9 +2020-04-03,Alameda,California,06001,464,12 +2020-04-04,Alameda,California,06001,464,12 +2020-04-05,Alameda,California,06001,587,12 +2020-04-06,Alameda,California,06001,609,13 +2020-04-07,Alameda,California,06001,655,15 +2020-04-08,Alameda,California,06001,695,16 +2020-04-09,Alameda,California,06001,734,17 +2020-04-10,Alameda,California,06001,766,20 +2020-04-11,Alameda,California,06001,827,21 +2020-04-12,Alameda,California,06001,864,23 +2020-04-13,Alameda,California,06001,907,23 +2020-04-14,Alameda,California,06001,908,23 +2020-04-15,Alameda,California,06001,983,36 +2020-04-16,Alameda,California,06001,1069,40 +2020-04-17,Alameda,California,06001,1084,40 +2020-04-18,Alameda,California,06001,1135,41 +2020-04-19,Alameda,California,06001,1185,42 +2020-04-20,Alameda,California,06001,1212,42 +2020-04-21,Alameda,California,06001,1260,43 +2020-04-22,Alameda,California,06001,1260,43 +2020-04-23,Alameda,California,06001,1350,48 +2020-04-24,Alameda,California,06001,1422,48 +2020-04-25,Alameda,California,06001,1458,52 +2020-04-26,Alameda,California,06001,1489,52 +2020-04-27,Alameda,California,06001,1519,56 +2020-04-28,Alameda,California,06001,1554,59 +2020-04-29,Alameda,California,06001,1589,59 +2020-04-30,Alameda,California,06001,1624,63 +2020-05-01,Alameda,California,06001,1657,63 +2020-05-02,Alameda,California,06001,1726,63 +2020-05-03,Alameda,California,06001,1770,63 +2020-05-04,Alameda,California,06001,1797,65 +2020-05-05,Alameda,California,06001,1830,66 +2020-05-06,Alameda,California,06001,1884,69 +2020-05-07,Alameda,California,06001,1938,69 +2020-05-08,Alameda,California,06001,1982,70 +2020-05-09,Alameda,California,06001,2044,72 +2020-05-10,Alameda,California,06001,2085,75 +2020-05-11,Alameda,California,06001,2122,75 +2020-05-12,Alameda,California,06001,2154,75 +2020-05-13,Alameda,California,06001,2199,80 +2020-05-14,Alameda,California,06001,2202,80 +2020-05-15,Alameda,California,06001,2321,84 +2020-05-16,Alameda,California,06001,2372,85 +2020-05-17,Alameda,California,06001,2413,85 +2020-05-18,Alameda,California,06001,2478,85 +2020-05-19,Alameda,California,06001,2543,88 +2020-05-20,Alameda,California,06001,2581,88 +2020-05-21,Alameda,California,06001,2630,90 +2020-05-22,Alameda,California,06001,2729,90 +2020-05-23,Alameda,California,06001,2788,92 +2020-05-24,Alameda,California,06001,2868,93 +2020-05-25,Alameda,California,06001,2895,93 +2020-05-26,Alameda,California,06001,3007,93 +2020-05-27,Alameda,California,06001,3070,97 +2020-05-28,Alameda,California,06001,3118,97 +2020-05-29,Alameda,California,06001,3216,102 +2020-05-30,Alameda,California,06001,3310,103 +2020-05-31,Alameda,California,06001,3411,103 +2020-06-01,Alameda,California,06001,3491,104 +2020-06-02,Alameda,California,06001,3536,104 +2020-06-03,Alameda,California,06001,3569,104 +2020-06-04,Alameda,California,06001,3662,104 +2020-06-05,Alameda,California,06001,3746,104 +2020-06-06,Alameda,California,06001,3826,104 +2020-06-07,Alameda,California,06001,3895,104 +2020-06-08,Alameda,California,06001,3966,104 +2020-06-09,Alameda,California,06001,4006,110 +2020-06-10,Alameda,California,06001,4054,110 +2020-06-11,Alameda,California,06001,4140,110 +2020-06-12,Alameda,California,06001,4237,110 +2020-06-13,Alameda,California,06001,4237,110 +2020-06-14,Alameda,California,06001,4341,112 +2020-06-15,Alameda,California,06001,4394,112 +2020-06-16,Alameda,California,06001,4502,112 +2020-06-17,Alameda,California,06001,4554,116 +2020-06-18,Alameda,California,06001,4659,117 +2020-06-19,Alameda,California,06001,4723,118 +2020-06-20,Alameda,California,06001,4826,118 +2020-06-21,Alameda,California,06001,4826,119 +2020-06-22,Alameda,California,06001,5028,120 +2020-06-23,Alameda,California,06001,5161,121 +2020-06-24,Alameda,California,06001,5296,122 +2020-06-25,Alameda,California,06001,5403,128 +2020-06-26,Alameda,California,06001,5514,130 +2020-06-27,Alameda,California,06001,5523,130 +2020-06-28,Alameda,California,06001,5691,133 +2020-06-29,Alameda,California,06001,5783,133 +2020-06-30,Alameda,California,06001,5985,135 +2020-07-01,Alameda,California,06001,6177,136 +2020-07-02,Alameda,California,06001,6405,138 +2020-07-03,Alameda,California,06001,6493,140 +2020-07-04,Alameda,California,06001,6577,140 +2020-07-05,Alameda,California,06001,6876,140 +2020-07-06,Alameda,California,06001,6908,140 +2020-07-07,Alameda,California,06001,6991,140 +2020-07-08,Alameda,California,06001,7266,142 +2020-07-09,Alameda,California,06001,7428,146 +2020-03-30,Alpine,California,06003,1,0 +2020-03-31,Alpine,California,06003,1,0 +2020-04-01,Alpine,California,06003,1,0 +2020-04-02,Alpine,California,06003,1,0 +2020-04-03,Alpine,California,06003,1,0 +2020-04-04,Alpine,California,06003,1,0 +2020-04-05,Alpine,California,06003,1,0 +2020-04-06,Alpine,California,06003,2,0 +2020-04-07,Alpine,California,06003,2,0 +2020-04-08,Alpine,California,06003,2,0 +2020-04-09,Alpine,California,06003,2,0 +2020-04-10,Alpine,California,06003,2,0 +2020-04-11,Alpine,California,06003,2,0 +2020-04-12,Alpine,California,06003,2,0 +2020-04-13,Alpine,California,06003,2,0 +2020-04-14,Alpine,California,06003,2,0 +2020-04-15,Alpine,California,06003,2,0 +2020-04-16,Alpine,California,06003,2,0 +2020-04-17,Alpine,California,06003,1,0 +2020-04-18,Alpine,California,06003,1,0 +2020-04-19,Alpine,California,06003,1,0 +2020-04-20,Alpine,California,06003,1,0 +2020-04-21,Alpine,California,06003,1,0 +2020-04-22,Alpine,California,06003,1,0 +2020-04-23,Alpine,California,06003,1,0 +2020-04-24,Alpine,California,06003,1,0 +2020-04-25,Alpine,California,06003,1,0 +2020-04-26,Alpine,California,06003,1,0 +2020-04-27,Alpine,California,06003,1,0 +2020-04-28,Alpine,California,06003,1,0 +2020-04-29,Alpine,California,06003,1,0 +2020-04-30,Alpine,California,06003,1,0 +2020-05-01,Alpine,California,06003,1,0 +2020-05-02,Alpine,California,06003,2,0 +2020-05-03,Alpine,California,06003,2,0 +2020-05-04,Alpine,California,06003,2,0 +2020-05-05,Alpine,California,06003,2,0 +2020-05-06,Alpine,California,06003,2,0 +2020-05-07,Alpine,California,06003,2,0 +2020-05-08,Alpine,California,06003,2,0 +2020-05-09,Alpine,California,06003,2,0 +2020-05-10,Alpine,California,06003,2,0 +2020-05-11,Alpine,California,06003,2,0 +2020-05-12,Alpine,California,06003,2,0 +2020-05-13,Alpine,California,06003,2,0 +2020-05-14,Alpine,California,06003,2,0 +2020-05-15,Alpine,California,06003,2,0 +2020-05-16,Alpine,California,06003,2,0 +2020-05-17,Alpine,California,06003,2,0 +2020-05-18,Alpine,California,06003,2,0 +2020-05-19,Alpine,California,06003,2,0 +2020-05-20,Alpine,California,06003,2,0 +2020-05-21,Alpine,California,06003,2,0 +2020-05-22,Alpine,California,06003,2,0 +2020-05-23,Alpine,California,06003,2,0 +2020-05-24,Alpine,California,06003,2,0 +2020-05-25,Alpine,California,06003,2,0 +2020-05-26,Alpine,California,06003,2,0 +2020-05-27,Alpine,California,06003,2,0 +2020-05-28,Alpine,California,06003,2,0 +2020-05-29,Alpine,California,06003,2,0 +2020-05-30,Alpine,California,06003,2,0 +2020-05-31,Alpine,California,06003,2,0 +2020-06-01,Alpine,California,06003,2,0 +2020-06-02,Alpine,California,06003,2,0 +2020-06-03,Alpine,California,06003,2,0 +2020-06-04,Alpine,California,06003,2,0 +2020-06-05,Alpine,California,06003,2,0 +2020-06-06,Alpine,California,06003,2,0 +2020-06-07,Alpine,California,06003,2,0 +2020-06-08,Alpine,California,06003,2,0 +2020-06-09,Alpine,California,06003,2,0 +2020-06-10,Alpine,California,06003,2,0 +2020-06-11,Alpine,California,06003,2,0 +2020-06-12,Alpine,California,06003,1,0 +2020-06-13,Alpine,California,06003,1,0 +2020-06-14,Alpine,California,06003,1,0 +2020-06-15,Alpine,California,06003,1,0 +2020-06-16,Alpine,California,06003,1,0 +2020-06-17,Alpine,California,06003,1,0 +2020-06-18,Alpine,California,06003,1,0 +2020-06-19,Alpine,California,06003,1,0 +2020-06-20,Alpine,California,06003,1,0 +2020-06-21,Alpine,California,06003,1,0 +2020-06-22,Alpine,California,06003,1,0 +2020-06-23,Alpine,California,06003,1,0 +2020-06-24,Alpine,California,06003,1,0 +2020-06-25,Alpine,California,06003,1,0 +2020-06-26,Alpine,California,06003,1,0 +2020-06-27,Alpine,California,06003,1,0 +2020-06-28,Alpine,California,06003,1,0 +2020-06-29,Alpine,California,06003,1,0 +2020-06-30,Alpine,California,06003,1,0 +2020-07-01,Alpine,California,06003,1,0 +2020-07-02,Alpine,California,06003,1,0 +2020-07-03,Alpine,California,06003,1,0 +2020-07-04,Alpine,California,06003,1,0 +2020-07-05,Alpine,California,06003,1,0 +2020-07-06,Alpine,California,06003,1,0 +2020-07-07,Alpine,California,06003,1,0 +2020-07-08,Alpine,California,06003,1,0 +2020-07-09,Alpine,California,06003,1,0 +2020-03-20,Amador,California,06005,1,0 +2020-03-21,Amador,California,06005,1,0 +2020-03-22,Amador,California,06005,1,0 +2020-03-23,Amador,California,06005,1,0 +2020-03-24,Amador,California,06005,1,0 +2020-03-25,Amador,California,06005,1,0 +2020-03-26,Amador,California,06005,1,0 +2020-03-27,Amador,California,06005,1,0 +2020-03-28,Amador,California,06005,1,0 +2020-03-29,Amador,California,06005,1,0 +2020-03-30,Amador,California,06005,1,0 +2020-03-31,Amador,California,06005,1,0 +2020-04-01,Amador,California,06005,2,0 +2020-04-02,Amador,California,06005,2,0 +2020-04-03,Amador,California,06005,2,0 +2020-04-04,Amador,California,06005,2,0 +2020-04-05,Amador,California,06005,2,0 +2020-04-06,Amador,California,06005,2,0 +2020-04-07,Amador,California,06005,2,0 +2020-04-08,Amador,California,06005,2,0 +2020-04-09,Amador,California,06005,6,0 +2020-04-10,Amador,California,06005,6,0 +2020-04-11,Amador,California,06005,6,0 +2020-04-12,Amador,California,06005,6,0 +2020-04-13,Amador,California,06005,6,0 +2020-04-14,Amador,California,06005,6,0 +2020-04-15,Amador,California,06005,6,0 +2020-04-16,Amador,California,06005,6,0 +2020-04-17,Amador,California,06005,6,0 +2020-04-18,Amador,California,06005,6,0 +2020-04-19,Amador,California,06005,6,0 +2020-04-20,Amador,California,06005,6,0 +2020-04-21,Amador,California,06005,7,0 +2020-04-22,Amador,California,06005,7,0 +2020-04-23,Amador,California,06005,7,0 +2020-04-24,Amador,California,06005,7,0 +2020-04-25,Amador,California,06005,7,0 +2020-04-26,Amador,California,06005,7,0 +2020-04-27,Amador,California,06005,7,0 +2020-04-28,Amador,California,06005,7,0 +2020-04-29,Amador,California,06005,7,0 +2020-04-30,Amador,California,06005,7,0 +2020-05-01,Amador,California,06005,7,0 +2020-05-02,Amador,California,06005,7,0 +2020-05-03,Amador,California,06005,7,0 +2020-05-04,Amador,California,06005,7,0 +2020-05-05,Amador,California,06005,7,0 +2020-05-06,Amador,California,06005,7,0 +2020-05-07,Amador,California,06005,7,0 +2020-05-08,Amador,California,06005,7,0 +2020-05-09,Amador,California,06005,7,0 +2020-05-10,Amador,California,06005,7,0 +2020-05-11,Amador,California,06005,7,0 +2020-05-12,Amador,California,06005,7,0 +2020-05-13,Amador,California,06005,8,0 +2020-05-14,Amador,California,06005,8,0 +2020-05-15,Amador,California,06005,8,0 +2020-05-16,Amador,California,06005,8,0 +2020-05-17,Amador,California,06005,8,0 +2020-05-18,Amador,California,06005,8,0 +2020-05-19,Amador,California,06005,8,0 +2020-05-20,Amador,California,06005,9,0 +2020-05-21,Amador,California,06005,9,0 +2020-05-22,Amador,California,06005,9,0 +2020-05-23,Amador,California,06005,9,0 +2020-05-24,Amador,California,06005,9,0 +2020-05-25,Amador,California,06005,9,0 +2020-05-26,Amador,California,06005,10,0 +2020-05-27,Amador,California,06005,10,0 +2020-05-28,Amador,California,06005,10,0 +2020-05-29,Amador,California,06005,10,0 +2020-05-30,Amador,California,06005,10,0 +2020-05-31,Amador,California,06005,10,0 +2020-06-01,Amador,California,06005,10,0 +2020-06-02,Amador,California,06005,10,0 +2020-06-03,Amador,California,06005,10,0 +2020-06-04,Amador,California,06005,10,0 +2020-06-05,Amador,California,06005,9,0 +2020-06-06,Amador,California,06005,9,0 +2020-06-07,Amador,California,06005,9,0 +2020-06-08,Amador,California,06005,9,0 +2020-06-09,Amador,California,06005,9,0 +2020-06-10,Amador,California,06005,9,0 +2020-06-11,Amador,California,06005,9,0 +2020-06-12,Amador,California,06005,9,0 +2020-06-13,Amador,California,06005,9,0 +2020-06-14,Amador,California,06005,9,0 +2020-06-15,Amador,California,06005,10,0 +2020-06-16,Amador,California,06005,11,0 +2020-06-17,Amador,California,06005,11,0 +2020-06-18,Amador,California,06005,11,0 +2020-06-19,Amador,California,06005,11,0 +2020-06-20,Amador,California,06005,12,0 +2020-06-21,Amador,California,06005,12,0 +2020-06-22,Amador,California,06005,13,0 +2020-06-23,Amador,California,06005,15,0 +2020-06-24,Amador,California,06005,17,0 +2020-06-25,Amador,California,06005,18,0 +2020-06-26,Amador,California,06005,18,0 +2020-06-27,Amador,California,06005,19,0 +2020-06-28,Amador,California,06005,19,0 +2020-06-29,Amador,California,06005,21,0 +2020-06-30,Amador,California,06005,21,0 +2020-07-01,Amador,California,06005,22,0 +2020-07-02,Amador,California,06005,24,0 +2020-07-03,Amador,California,06005,29,0 +2020-07-04,Amador,California,06005,29,0 +2020-07-05,Amador,California,06005,31,0 +2020-07-06,Amador,California,06005,31,0 +2020-07-07,Amador,California,06005,33,0 +2020-07-08,Amador,California,06005,33,0 +2020-07-09,Amador,California,06005,34,0 +2020-03-21,Butte,California,06007,1,0 +2020-03-22,Butte,California,06007,2,0 +2020-03-23,Butte,California,06007,3,0 +2020-03-24,Butte,California,06007,4,0 +2020-03-25,Butte,California,06007,4,0 +2020-03-26,Butte,California,06007,5,0 +2020-03-27,Butte,California,06007,5,0 +2020-03-28,Butte,California,06007,5,0 +2020-03-29,Butte,California,06007,5,0 +2020-03-30,Butte,California,06007,8,0 +2020-03-31,Butte,California,06007,8,0 +2020-04-01,Butte,California,06007,8,0 +2020-04-02,Butte,California,06007,10,0 +2020-04-03,Butte,California,06007,11,0 +2020-04-04,Butte,California,06007,11,0 +2020-04-05,Butte,California,06007,11,0 +2020-04-06,Butte,California,06007,12,0 +2020-04-07,Butte,California,06007,13,0 +2020-04-08,Butte,California,06007,13,0 +2020-04-09,Butte,California,06007,13,0 +2020-04-10,Butte,California,06007,14,0 +2020-04-11,Butte,California,06007,14,0 +2020-04-12,Butte,California,06007,14,0 +2020-04-13,Butte,California,06007,15,0 +2020-04-14,Butte,California,06007,16,0 +2020-04-15,Butte,California,06007,16,0 +2020-04-16,Butte,California,06007,16,0 +2020-04-17,Butte,California,06007,16,0 +2020-04-18,Butte,California,06007,16,0 +2020-04-19,Butte,California,06007,16,0 +2020-04-20,Butte,California,06007,16,0 +2020-04-21,Butte,California,06007,16,0 +2020-04-22,Butte,California,06007,16,0 +2020-04-23,Butte,California,06007,16,0 +2020-04-24,Butte,California,06007,16,0 +2020-04-25,Butte,California,06007,16,0 +2020-04-26,Butte,California,06007,16,0 +2020-04-27,Butte,California,06007,16,0 +2020-04-28,Butte,California,06007,16,0 +2020-04-29,Butte,California,06007,16,0 +2020-04-30,Butte,California,06007,16,0 +2020-05-01,Butte,California,06007,16,0 +2020-05-02,Butte,California,06007,17,0 +2020-05-03,Butte,California,06007,17,0 +2020-05-04,Butte,California,06007,17,0 +2020-05-05,Butte,California,06007,18,0 +2020-05-06,Butte,California,06007,19,0 +2020-05-07,Butte,California,06007,19,0 +2020-05-08,Butte,California,06007,19,0 +2020-05-09,Butte,California,06007,18,0 +2020-05-10,Butte,California,06007,18,0 +2020-05-11,Butte,California,06007,20,0 +2020-05-12,Butte,California,06007,20,0 +2020-05-13,Butte,California,06007,20,0 +2020-05-14,Butte,California,06007,22,0 +2020-05-15,Butte,California,06007,22,0 +2020-05-16,Butte,California,06007,22,0 +2020-05-17,Butte,California,06007,22,0 +2020-05-18,Butte,California,06007,24,0 +2020-05-19,Butte,California,06007,26,0 +2020-05-20,Butte,California,06007,30,0 +2020-05-21,Butte,California,06007,31,0 +2020-05-22,Butte,California,06007,34,0 +2020-05-23,Butte,California,06007,34,0 +2020-05-24,Butte,California,06007,34,0 +2020-05-25,Butte,California,06007,35,0 +2020-05-26,Butte,California,06007,40,0 +2020-05-27,Butte,California,06007,40,0 +2020-05-28,Butte,California,06007,40,0 +2020-05-29,Butte,California,06007,44,0 +2020-05-30,Butte,California,06007,44,0 +2020-05-31,Butte,California,06007,44,0 +2020-06-01,Butte,California,06007,51,1 +2020-06-02,Butte,California,06007,51,1 +2020-06-03,Butte,California,06007,55,1 +2020-06-04,Butte,California,06007,60,1 +2020-06-05,Butte,California,06007,65,1 +2020-06-06,Butte,California,06007,65,1 +2020-06-07,Butte,California,06007,65,1 +2020-06-08,Butte,California,06007,68,1 +2020-06-09,Butte,California,06007,71,1 +2020-06-10,Butte,California,06007,73,1 +2020-06-11,Butte,California,06007,73,1 +2020-06-12,Butte,California,06007,74,1 +2020-06-13,Butte,California,06007,74,1 +2020-06-14,Butte,California,06007,74,1 +2020-06-15,Butte,California,06007,82,1 +2020-06-16,Butte,California,06007,88,1 +2020-06-17,Butte,California,06007,90,1 +2020-06-18,Butte,California,06007,90,1 +2020-06-19,Butte,California,06007,94,1 +2020-06-20,Butte,California,06007,94,1 +2020-06-21,Butte,California,06007,94,1 +2020-06-22,Butte,California,06007,111,1 +2020-06-23,Butte,California,06007,119,1 +2020-06-24,Butte,California,06007,127,1 +2020-06-25,Butte,California,06007,133,2 +2020-06-26,Butte,California,06007,143,2 +2020-06-27,Butte,California,06007,143,2 +2020-06-28,Butte,California,06007,143,2 +2020-06-29,Butte,California,06007,168,2 +2020-06-30,Butte,California,06007,175,2 +2020-07-01,Butte,California,06007,189,2 +2020-07-02,Butte,California,06007,206,3 +2020-07-03,Butte,California,06007,206,3 +2020-07-04,Butte,California,06007,212,3 +2020-07-05,Butte,California,06007,224,3 +2020-07-06,Butte,California,06007,268,3 +2020-07-07,Butte,California,06007,275,3 +2020-07-08,Butte,California,06007,295,4 +2020-07-09,Butte,California,06007,319,4 +2020-03-24,Calaveras,California,06009,2,0 +2020-03-25,Calaveras,California,06009,2,0 +2020-03-26,Calaveras,California,06009,3,0 +2020-03-27,Calaveras,California,06009,3,0 +2020-03-28,Calaveras,California,06009,3,0 +2020-03-29,Calaveras,California,06009,3,0 +2020-03-30,Calaveras,California,06009,3,0 +2020-03-31,Calaveras,California,06009,3,0 +2020-04-01,Calaveras,California,06009,3,0 +2020-04-02,Calaveras,California,06009,3,0 +2020-04-03,Calaveras,California,06009,4,0 +2020-04-04,Calaveras,California,06009,4,0 +2020-04-05,Calaveras,California,06009,4,0 +2020-04-06,Calaveras,California,06009,5,0 +2020-04-07,Calaveras,California,06009,5,0 +2020-04-08,Calaveras,California,06009,5,0 +2020-04-09,Calaveras,California,06009,8,0 +2020-04-10,Calaveras,California,06009,8,0 +2020-04-11,Calaveras,California,06009,8,0 +2020-04-12,Calaveras,California,06009,8,0 +2020-04-13,Calaveras,California,06009,9,0 +2020-04-14,Calaveras,California,06009,9,0 +2020-04-15,Calaveras,California,06009,9,0 +2020-04-16,Calaveras,California,06009,11,0 +2020-04-17,Calaveras,California,06009,12,0 +2020-04-18,Calaveras,California,06009,12,0 +2020-04-19,Calaveras,California,06009,12,0 +2020-04-20,Calaveras,California,06009,12,0 +2020-04-21,Calaveras,California,06009,12,0 +2020-04-22,Calaveras,California,06009,12,0 +2020-04-23,Calaveras,California,06009,13,0 +2020-04-24,Calaveras,California,06009,13,0 +2020-04-25,Calaveras,California,06009,13,0 +2020-04-26,Calaveras,California,06009,13,0 +2020-04-27,Calaveras,California,06009,13,0 +2020-04-28,Calaveras,California,06009,13,0 +2020-04-29,Calaveras,California,06009,13,0 +2020-04-30,Calaveras,California,06009,13,0 +2020-05-01,Calaveras,California,06009,13,0 +2020-05-02,Calaveras,California,06009,13,0 +2020-05-03,Calaveras,California,06009,13,0 +2020-05-04,Calaveras,California,06009,13,0 +2020-05-05,Calaveras,California,06009,13,0 +2020-05-06,Calaveras,California,06009,13,0 +2020-05-07,Calaveras,California,06009,13,0 +2020-05-08,Calaveras,California,06009,13,0 +2020-05-09,Calaveras,California,06009,13,0 +2020-05-10,Calaveras,California,06009,13,0 +2020-05-11,Calaveras,California,06009,13,0 +2020-05-12,Calaveras,California,06009,13,0 +2020-05-13,Calaveras,California,06009,13,0 +2020-05-14,Calaveras,California,06009,13,0 +2020-05-15,Calaveras,California,06009,13,0 +2020-05-16,Calaveras,California,06009,13,0 +2020-05-17,Calaveras,California,06009,13,0 +2020-05-18,Calaveras,California,06009,13,0 +2020-05-19,Calaveras,California,06009,13,0 +2020-05-20,Calaveras,California,06009,13,0 +2020-05-21,Calaveras,California,06009,13,0 +2020-05-22,Calaveras,California,06009,13,0 +2020-05-23,Calaveras,California,06009,13,0 +2020-05-24,Calaveras,California,06009,13,0 +2020-05-25,Calaveras,California,06009,13,0 +2020-05-26,Calaveras,California,06009,15,0 +2020-05-27,Calaveras,California,06009,15,0 +2020-05-28,Calaveras,California,06009,15,0 +2020-05-29,Calaveras,California,06009,15,0 +2020-05-30,Calaveras,California,06009,15,0 +2020-05-31,Calaveras,California,06009,15,0 +2020-06-01,Calaveras,California,06009,15,0 +2020-06-02,Calaveras,California,06009,15,0 +2020-06-03,Calaveras,California,06009,15,0 +2020-06-04,Calaveras,California,06009,15,0 +2020-06-05,Calaveras,California,06009,19,0 +2020-06-06,Calaveras,California,06009,19,0 +2020-06-07,Calaveras,California,06009,19,0 +2020-06-08,Calaveras,California,06009,19,0 +2020-06-09,Calaveras,California,06009,21,0 +2020-06-10,Calaveras,California,06009,21,0 +2020-06-11,Calaveras,California,06009,25,0 +2020-06-12,Calaveras,California,06009,26,0 +2020-06-13,Calaveras,California,06009,26,0 +2020-06-14,Calaveras,California,06009,26,0 +2020-06-15,Calaveras,California,06009,26,0 +2020-06-16,Calaveras,California,06009,26,0 +2020-06-17,Calaveras,California,06009,26,0 +2020-06-18,Calaveras,California,06009,26,0 +2020-06-19,Calaveras,California,06009,28,0 +2020-06-20,Calaveras,California,06009,28,0 +2020-06-21,Calaveras,California,06009,28,0 +2020-06-22,Calaveras,California,06009,28,0 +2020-06-23,Calaveras,California,06009,29,0 +2020-06-24,Calaveras,California,06009,29,0 +2020-06-25,Calaveras,California,06009,29,0 +2020-06-26,Calaveras,California,06009,32,0 +2020-06-27,Calaveras,California,06009,32,0 +2020-06-28,Calaveras,California,06009,32,0 +2020-06-29,Calaveras,California,06009,32,0 +2020-06-30,Calaveras,California,06009,32,0 +2020-07-01,Calaveras,California,06009,40,0 +2020-07-02,Calaveras,California,06009,53,0 +2020-07-03,Calaveras,California,06009,53,0 +2020-07-04,Calaveras,California,06009,53,0 +2020-07-05,Calaveras,California,06009,53,0 +2020-07-06,Calaveras,California,06009,53,0 +2020-07-07,Calaveras,California,06009,61,0 +2020-07-08,Calaveras,California,06009,61,0 +2020-07-09,Calaveras,California,06009,61,0 +2020-03-27,Colusa,California,06011,1,0 +2020-03-28,Colusa,California,06011,1,0 +2020-03-29,Colusa,California,06011,1,0 +2020-03-30,Colusa,California,06011,1,0 +2020-03-31,Colusa,California,06011,1,0 +2020-04-01,Colusa,California,06011,1,0 +2020-04-02,Colusa,California,06011,1,0 +2020-04-03,Colusa,California,06011,2,0 +2020-04-04,Colusa,California,06011,2,0 +2020-04-05,Colusa,California,06011,2,0 +2020-04-06,Colusa,California,06011,3,0 +2020-04-07,Colusa,California,06011,3,0 +2020-04-08,Colusa,California,06011,3,0 +2020-04-09,Colusa,California,06011,3,0 +2020-04-10,Colusa,California,06011,3,0 +2020-04-11,Colusa,California,06011,3,0 +2020-04-12,Colusa,California,06011,3,0 +2020-04-13,Colusa,California,06011,3,0 +2020-04-14,Colusa,California,06011,3,0 +2020-04-15,Colusa,California,06011,3,0 +2020-04-16,Colusa,California,06011,3,0 +2020-04-17,Colusa,California,06011,3,0 +2020-04-18,Colusa,California,06011,3,0 +2020-04-19,Colusa,California,06011,3,0 +2020-04-20,Colusa,California,06011,3,0 +2020-04-21,Colusa,California,06011,3,0 +2020-04-22,Colusa,California,06011,3,0 +2020-04-23,Colusa,California,06011,3,0 +2020-04-24,Colusa,California,06011,3,0 +2020-04-25,Colusa,California,06011,3,0 +2020-04-26,Colusa,California,06011,3,0 +2020-04-27,Colusa,California,06011,3,0 +2020-04-28,Colusa,California,06011,3,0 +2020-04-29,Colusa,California,06011,3,0 +2020-04-30,Colusa,California,06011,3,0 +2020-05-01,Colusa,California,06011,3,0 +2020-05-02,Colusa,California,06011,3,0 +2020-05-03,Colusa,California,06011,3,0 +2020-05-04,Colusa,California,06011,3,0 +2020-05-05,Colusa,California,06011,3,0 +2020-05-06,Colusa,California,06011,3,0 +2020-05-07,Colusa,California,06011,3,0 +2020-05-08,Colusa,California,06011,3,0 +2020-05-09,Colusa,California,06011,3,0 +2020-05-10,Colusa,California,06011,3,0 +2020-05-11,Colusa,California,06011,3,0 +2020-05-12,Colusa,California,06011,3,0 +2020-05-13,Colusa,California,06011,3,0 +2020-05-14,Colusa,California,06011,3,0 +2020-05-15,Colusa,California,06011,3,0 +2020-05-16,Colusa,California,06011,3,0 +2020-05-17,Colusa,California,06011,3,0 +2020-05-18,Colusa,California,06011,3,0 +2020-05-19,Colusa,California,06011,3,0 +2020-05-20,Colusa,California,06011,4,0 +2020-05-21,Colusa,California,06011,4,0 +2020-05-22,Colusa,California,06011,5,0 +2020-05-23,Colusa,California,06011,5,0 +2020-05-24,Colusa,California,06011,5,0 +2020-05-25,Colusa,California,06011,5,0 +2020-05-26,Colusa,California,06011,5,0 +2020-05-27,Colusa,California,06011,5,0 +2020-05-28,Colusa,California,06011,5,0 +2020-05-29,Colusa,California,06011,5,0 +2020-05-30,Colusa,California,06011,5,0 +2020-05-31,Colusa,California,06011,5,0 +2020-06-01,Colusa,California,06011,7,0 +2020-06-02,Colusa,California,06011,7,0 +2020-06-03,Colusa,California,06011,7,0 +2020-06-04,Colusa,California,06011,7,0 +2020-06-05,Colusa,California,06011,7,0 +2020-06-06,Colusa,California,06011,7,0 +2020-06-07,Colusa,California,06011,7,0 +2020-06-08,Colusa,California,06011,7,0 +2020-06-09,Colusa,California,06011,7,0 +2020-06-10,Colusa,California,06011,7,0 +2020-06-11,Colusa,California,06011,7,0 +2020-06-12,Colusa,California,06011,7,0 +2020-06-13,Colusa,California,06011,7,0 +2020-06-14,Colusa,California,06011,7,0 +2020-06-15,Colusa,California,06011,7,0 +2020-06-16,Colusa,California,06011,7,0 +2020-06-17,Colusa,California,06011,7,0 +2020-06-18,Colusa,California,06011,7,0 +2020-06-19,Colusa,California,06011,7,0 +2020-06-20,Colusa,California,06011,7,0 +2020-06-21,Colusa,California,06011,7,0 +2020-06-22,Colusa,California,06011,7,0 +2020-06-23,Colusa,California,06011,11,0 +2020-06-24,Colusa,California,06011,14,0 +2020-06-25,Colusa,California,06011,16,0 +2020-06-26,Colusa,California,06011,17,0 +2020-06-27,Colusa,California,06011,17,0 +2020-06-28,Colusa,California,06011,17,0 +2020-06-29,Colusa,California,06011,35,0 +2020-06-30,Colusa,California,06011,46,0 +2020-07-01,Colusa,California,06011,59,0 +2020-07-02,Colusa,California,06011,70,0 +2020-07-03,Colusa,California,06011,70,0 +2020-07-04,Colusa,California,06011,70,0 +2020-07-05,Colusa,California,06011,76,0 +2020-07-06,Colusa,California,06011,83,0 +2020-07-07,Colusa,California,06011,86,0 +2020-07-08,Colusa,California,06011,98,0 +2020-07-09,Colusa,California,06011,103,0 +2020-03-03,Contra Costa,California,06013,1,0 +2020-03-04,Contra Costa,California,06013,1,0 +2020-03-05,Contra Costa,California,06013,1,0 +2020-03-06,Contra Costa,California,06013,4,0 +2020-03-07,Contra Costa,California,06013,4,0 +2020-03-08,Contra Costa,California,06013,9,0 +2020-03-09,Contra Costa,California,06013,9,0 +2020-03-10,Contra Costa,California,06013,9,0 +2020-03-11,Contra Costa,California,06013,9,0 +2020-03-12,Contra Costa,California,06013,9,0 +2020-03-13,Contra Costa,California,06013,25,0 +2020-03-14,Contra Costa,California,06013,25,0 +2020-03-15,Contra Costa,California,06013,25,0 +2020-03-16,Contra Costa,California,06013,34,0 +2020-03-17,Contra Costa,California,06013,34,0 +2020-03-18,Contra Costa,California,06013,41,0 +2020-03-19,Contra Costa,California,06013,42,0 +2020-03-20,Contra Costa,California,06013,46,1 +2020-03-21,Contra Costa,California,06013,51,1 +2020-03-22,Contra Costa,California,06013,61,1 +2020-03-23,Contra Costa,California,06013,71,1 +2020-03-24,Contra Costa,California,06013,86,1 +2020-03-25,Contra Costa,California,06013,108,1 +2020-03-26,Contra Costa,California,06013,131,1 +2020-03-27,Contra Costa,California,06013,151,2 +2020-03-28,Contra Costa,California,06013,168,3 +2020-03-29,Contra Costa,California,06013,175,3 +2020-03-30,Contra Costa,California,06013,187,3 +2020-03-31,Contra Costa,California,06013,222,3 +2020-04-01,Contra Costa,California,06013,250,3 +2020-04-02,Contra Costa,California,06013,276,3 +2020-04-03,Contra Costa,California,06013,307,5 +2020-04-04,Contra Costa,California,06013,353,5 +2020-04-05,Contra Costa,California,06013,386,6 +2020-04-06,Contra Costa,California,06013,417,7 +2020-04-07,Contra Costa,California,06013,442,7 +2020-04-08,Contra Costa,California,06013,462,7 +2020-04-09,Contra Costa,California,06013,484,8 +2020-04-10,Contra Costa,California,06013,511,9 +2020-04-11,Contra Costa,California,06013,530,11 +2020-04-12,Contra Costa,California,06013,539,11 +2020-04-13,Contra Costa,California,06013,552,11 +2020-04-14,Contra Costa,California,06013,600,12 +2020-04-15,Contra Costa,California,06013,615,14 +2020-04-16,Contra Costa,California,06013,631,16 +2020-04-17,Contra Costa,California,06013,648,19 +2020-04-18,Contra Costa,California,06013,685,19 +2020-04-19,Contra Costa,California,06013,693,20 +2020-04-20,Contra Costa,California,06013,707,22 +2020-04-21,Contra Costa,California,06013,749,22 +2020-04-22,Contra Costa,California,06013,763,22 +2020-04-23,Contra Costa,California,06013,772,23 +2020-04-24,Contra Costa,California,06013,786,23 +2020-04-25,Contra Costa,California,06013,805,25 +2020-04-26,Contra Costa,California,06013,817,25 +2020-04-27,Contra Costa,California,06013,830,25 +2020-04-28,Contra Costa,California,06013,843,25 +2020-04-29,Contra Costa,California,06013,866,25 +2020-04-30,Contra Costa,California,06013,891,27 +2020-05-01,Contra Costa,California,06013,907,28 +2020-05-02,Contra Costa,California,06013,934,28 +2020-05-03,Contra Costa,California,06013,945,28 +2020-05-04,Contra Costa,California,06013,947,28 +2020-05-05,Contra Costa,California,06013,969,29 +2020-05-06,Contra Costa,California,06013,985,29 +2020-05-07,Contra Costa,California,06013,999,29 +2020-05-08,Contra Costa,California,06013,1014,29 +2020-05-09,Contra Costa,California,06013,1036,32 +2020-05-10,Contra Costa,California,06013,1048,32 +2020-05-11,Contra Costa,California,06013,1048,32 +2020-05-12,Contra Costa,California,06013,1066,32 +2020-05-13,Contra Costa,California,06013,1080,33 +2020-05-14,Contra Costa,California,06013,1089,33 +2020-05-15,Contra Costa,California,06013,1100,33 +2020-05-16,Contra Costa,California,06013,1121,33 +2020-05-17,Contra Costa,California,06013,1146,33 +2020-05-18,Contra Costa,California,06013,1155,33 +2020-05-19,Contra Costa,California,06013,1192,33 +2020-05-20,Contra Costa,California,06013,1209,33 +2020-05-21,Contra Costa,California,06013,1234,36 +2020-05-22,Contra Costa,California,06013,1259,36 +2020-05-23,Contra Costa,California,06013,1296,36 +2020-05-24,Contra Costa,California,06013,1321,36 +2020-05-25,Contra Costa,California,06013,1336,37 +2020-05-26,Contra Costa,California,06013,1353,37 +2020-05-27,Contra Costa,California,06013,1375,37 +2020-05-28,Contra Costa,California,06013,1384,37 +2020-05-29,Contra Costa,California,06013,1404,37 +2020-05-30,Contra Costa,California,06013,1426,37 +2020-05-31,Contra Costa,California,06013,1450,37 +2020-06-01,Contra Costa,California,06013,1468,38 +2020-06-02,Contra Costa,California,06013,1506,38 +2020-06-03,Contra Costa,California,06013,1513,38 +2020-06-04,Contra Costa,California,06013,1547,38 +2020-06-05,Contra Costa,California,06013,1577,38 +2020-06-06,Contra Costa,California,06013,1633,38 +2020-06-07,Contra Costa,California,06013,1668,39 +2020-06-08,Contra Costa,California,06013,1706,40 +2020-06-09,Contra Costa,California,06013,1774,43 +2020-06-10,Contra Costa,California,06013,1798,43 +2020-06-11,Contra Costa,California,06013,1829,44 +2020-06-12,Contra Costa,California,06013,1877,44 +2020-06-13,Contra Costa,California,06013,1921,44 +2020-06-14,Contra Costa,California,06013,1959,44 +2020-06-15,Contra Costa,California,06013,1983,44 +2020-06-16,Contra Costa,California,06013,2026,49 +2020-06-17,Contra Costa,California,06013,2071,50 +2020-06-18,Contra Costa,California,06013,2111,55 +2020-06-19,Contra Costa,California,06013,2148,56 +2020-06-20,Contra Costa,California,06013,2240,56 +2020-06-21,Contra Costa,California,06013,2294,62 +2020-06-22,Contra Costa,California,06013,2369,62 +2020-06-23,Contra Costa,California,06013,2454,62 +2020-06-24,Contra Costa,California,06013,2523,67 +2020-06-25,Contra Costa,California,06013,2576,72 +2020-06-26,Contra Costa,California,06013,2676,73 +2020-06-27,Contra Costa,California,06013,2688,73 +2020-06-28,Contra Costa,California,06013,2802,74 +2020-06-29,Contra Costa,California,06013,2971,76 +2020-06-30,Contra Costa,California,06013,3132,76 +2020-07-01,Contra Costa,California,06013,3248,77 +2020-07-02,Contra Costa,California,06013,3326,78 +2020-07-03,Contra Costa,California,06013,3432,79 +2020-07-04,Contra Costa,California,06013,3564,81 +2020-07-05,Contra Costa,California,06013,3662,81 +2020-07-06,Contra Costa,California,06013,3878,85 +2020-07-07,Contra Costa,California,06013,4092,86 +2020-07-08,Contra Costa,California,06013,4241,86 +2020-07-09,Contra Costa,California,06013,4357,88 +2020-04-02,Del Norte,California,06015,1,0 +2020-04-03,Del Norte,California,06015,1,0 +2020-04-04,Del Norte,California,06015,2,0 +2020-04-05,Del Norte,California,06015,2,0 +2020-04-06,Del Norte,California,06015,2,0 +2020-04-07,Del Norte,California,06015,2,0 +2020-04-08,Del Norte,California,06015,2,0 +2020-04-09,Del Norte,California,06015,2,0 +2020-04-10,Del Norte,California,06015,2,0 +2020-04-11,Del Norte,California,06015,2,0 +2020-04-12,Del Norte,California,06015,2,0 +2020-04-13,Del Norte,California,06015,2,0 +2020-04-14,Del Norte,California,06015,2,0 +2020-04-15,Del Norte,California,06015,2,0 +2020-04-16,Del Norte,California,06015,2,0 +2020-04-17,Del Norte,California,06015,2,0 +2020-04-18,Del Norte,California,06015,2,0 +2020-04-19,Del Norte,California,06015,2,0 +2020-04-20,Del Norte,California,06015,2,0 +2020-04-21,Del Norte,California,06015,2,0 +2020-04-22,Del Norte,California,06015,2,0 +2020-04-23,Del Norte,California,06015,2,0 +2020-04-24,Del Norte,California,06015,2,0 +2020-04-25,Del Norte,California,06015,2,0 +2020-04-26,Del Norte,California,06015,3,0 +2020-04-27,Del Norte,California,06015,3,0 +2020-04-28,Del Norte,California,06015,3,0 +2020-04-29,Del Norte,California,06015,3,0 +2020-04-30,Del Norte,California,06015,3,0 +2020-05-01,Del Norte,California,06015,3,0 +2020-05-02,Del Norte,California,06015,3,0 +2020-05-03,Del Norte,California,06015,3,0 +2020-05-04,Del Norte,California,06015,3,0 +2020-05-05,Del Norte,California,06015,3,0 +2020-05-06,Del Norte,California,06015,3,0 +2020-05-07,Del Norte,California,06015,3,0 +2020-05-08,Del Norte,California,06015,3,0 +2020-05-09,Del Norte,California,06015,3,0 +2020-05-10,Del Norte,California,06015,3,0 +2020-05-11,Del Norte,California,06015,3,0 +2020-05-12,Del Norte,California,06015,3,0 +2020-05-13,Del Norte,California,06015,4,0 +2020-05-14,Del Norte,California,06015,4,0 +2020-05-15,Del Norte,California,06015,4,0 +2020-05-16,Del Norte,California,06015,5,0 +2020-05-17,Del Norte,California,06015,8,0 +2020-05-18,Del Norte,California,06015,8,0 +2020-05-19,Del Norte,California,06015,14,0 +2020-05-20,Del Norte,California,06015,15,0 +2020-05-21,Del Norte,California,06015,20,0 +2020-05-22,Del Norte,California,06015,23,0 +2020-05-23,Del Norte,California,06015,23,0 +2020-05-24,Del Norte,California,06015,23,0 +2020-05-25,Del Norte,California,06015,37,0 +2020-05-26,Del Norte,California,06015,40,0 +2020-05-27,Del Norte,California,06015,43,0 +2020-05-28,Del Norte,California,06015,44,0 +2020-05-29,Del Norte,California,06015,45,0 +2020-05-30,Del Norte,California,06015,45,0 +2020-05-31,Del Norte,California,06015,45,0 +2020-06-01,Del Norte,California,06015,46,0 +2020-06-02,Del Norte,California,06015,47,0 +2020-06-03,Del Norte,California,06015,47,0 +2020-06-04,Del Norte,California,06015,47,0 +2020-06-05,Del Norte,California,06015,47,0 +2020-06-06,Del Norte,California,06015,47,0 +2020-06-07,Del Norte,California,06015,47,0 +2020-06-08,Del Norte,California,06015,47,0 +2020-06-09,Del Norte,California,06015,47,0 +2020-06-10,Del Norte,California,06015,47,0 +2020-06-11,Del Norte,California,06015,47,0 +2020-06-12,Del Norte,California,06015,47,0 +2020-06-13,Del Norte,California,06015,47,0 +2020-06-14,Del Norte,California,06015,47,0 +2020-06-15,Del Norte,California,06015,47,0 +2020-06-16,Del Norte,California,06015,48,0 +2020-06-17,Del Norte,California,06015,48,0 +2020-06-18,Del Norte,California,06015,48,0 +2020-06-19,Del Norte,California,06015,48,0 +2020-06-20,Del Norte,California,06015,48,0 +2020-06-21,Del Norte,California,06015,48,0 +2020-06-22,Del Norte,California,06015,48,0 +2020-06-23,Del Norte,California,06015,49,0 +2020-06-24,Del Norte,California,06015,49,0 +2020-06-25,Del Norte,California,06015,49,0 +2020-06-26,Del Norte,California,06015,49,0 +2020-06-27,Del Norte,California,06015,50,0 +2020-06-28,Del Norte,California,06015,50,0 +2020-06-29,Del Norte,California,06015,50,0 +2020-06-30,Del Norte,California,06015,51,0 +2020-07-01,Del Norte,California,06015,51,0 +2020-07-02,Del Norte,California,06015,51,0 +2020-07-03,Del Norte,California,06015,55,0 +2020-07-04,Del Norte,California,06015,58,0 +2020-07-05,Del Norte,California,06015,58,0 +2020-07-06,Del Norte,California,06015,58,0 +2020-07-07,Del Norte,California,06015,58,0 +2020-07-08,Del Norte,California,06015,58,0 +2020-07-09,Del Norte,California,06015,58,0 +2020-03-21,El Dorado,California,06017,2,0 +2020-03-22,El Dorado,California,06017,2,0 +2020-03-23,El Dorado,California,06017,2,0 +2020-03-24,El Dorado,California,06017,3,0 +2020-03-25,El Dorado,California,06017,3,0 +2020-03-26,El Dorado,California,06017,9,0 +2020-03-27,El Dorado,California,06017,12,0 +2020-03-28,El Dorado,California,06017,12,0 +2020-03-29,El Dorado,California,06017,12,0 +2020-03-30,El Dorado,California,06017,15,0 +2020-03-31,El Dorado,California,06017,18,0 +2020-04-01,El Dorado,California,06017,18,0 +2020-04-02,El Dorado,California,06017,19,0 +2020-04-03,El Dorado,California,06017,22,0 +2020-04-04,El Dorado,California,06017,22,0 +2020-04-05,El Dorado,California,06017,22,0 +2020-04-06,El Dorado,California,06017,25,0 +2020-04-07,El Dorado,California,06017,28,0 +2020-04-08,El Dorado,California,06017,29,0 +2020-04-09,El Dorado,California,06017,30,0 +2020-04-10,El Dorado,California,06017,32,0 +2020-04-11,El Dorado,California,06017,32,0 +2020-04-12,El Dorado,California,06017,32,0 +2020-04-13,El Dorado,California,06017,34,0 +2020-04-14,El Dorado,California,06017,35,0 +2020-04-15,El Dorado,California,06017,35,0 +2020-04-16,El Dorado,California,06017,35,0 +2020-04-17,El Dorado,California,06017,36,0 +2020-04-18,El Dorado,California,06017,36,0 +2020-04-19,El Dorado,California,06017,36,0 +2020-04-20,El Dorado,California,06017,38,0 +2020-04-21,El Dorado,California,06017,39,0 +2020-04-22,El Dorado,California,06017,39,0 +2020-04-23,El Dorado,California,06017,40,0 +2020-04-24,El Dorado,California,06017,42,0 +2020-04-25,El Dorado,California,06017,42,0 +2020-04-26,El Dorado,California,06017,42,0 +2020-04-27,El Dorado,California,06017,43,0 +2020-04-28,El Dorado,California,06017,44,0 +2020-04-29,El Dorado,California,06017,44,0 +2020-04-30,El Dorado,California,06017,44,0 +2020-05-01,El Dorado,California,06017,47,0 +2020-05-02,El Dorado,California,06017,47,0 +2020-05-03,El Dorado,California,06017,47,0 +2020-05-04,El Dorado,California,06017,53,0 +2020-05-05,El Dorado,California,06017,53,0 +2020-05-06,El Dorado,California,06017,54,0 +2020-05-07,El Dorado,California,06017,54,0 +2020-05-08,El Dorado,California,06017,54,0 +2020-05-09,El Dorado,California,06017,54,0 +2020-05-10,El Dorado,California,06017,54,0 +2020-05-11,El Dorado,California,06017,56,0 +2020-05-12,El Dorado,California,06017,60,0 +2020-05-13,El Dorado,California,06017,60,0 +2020-05-14,El Dorado,California,06017,62,0 +2020-05-15,El Dorado,California,06017,64,0 +2020-05-16,El Dorado,California,06017,64,0 +2020-05-17,El Dorado,California,06017,65,0 +2020-05-18,El Dorado,California,06017,67,0 +2020-05-19,El Dorado,California,06017,67,0 +2020-05-20,El Dorado,California,06017,67,0 +2020-05-21,El Dorado,California,06017,67,0 +2020-05-22,El Dorado,California,06017,74,0 +2020-05-23,El Dorado,California,06017,74,0 +2020-05-24,El Dorado,California,06017,74,0 +2020-05-25,El Dorado,California,06017,78,0 +2020-05-26,El Dorado,California,06017,80,0 +2020-05-27,El Dorado,California,06017,81,0 +2020-05-28,El Dorado,California,06017,84,0 +2020-05-29,El Dorado,California,06017,90,0 +2020-05-30,El Dorado,California,06017,90,0 +2020-05-31,El Dorado,California,06017,90,0 +2020-06-01,El Dorado,California,06017,96,0 +2020-06-02,El Dorado,California,06017,96,0 +2020-06-03,El Dorado,California,06017,98,0 +2020-06-04,El Dorado,California,06017,102,0 +2020-06-05,El Dorado,California,06017,106,0 +2020-06-06,El Dorado,California,06017,106,0 +2020-06-07,El Dorado,California,06017,106,0 +2020-06-08,El Dorado,California,06017,109,0 +2020-06-09,El Dorado,California,06017,111,0 +2020-06-10,El Dorado,California,06017,111,0 +2020-06-11,El Dorado,California,06017,111,0 +2020-06-12,El Dorado,California,06017,113,0 +2020-06-13,El Dorado,California,06017,113,0 +2020-06-14,El Dorado,California,06017,113,0 +2020-06-15,El Dorado,California,06017,117,0 +2020-06-16,El Dorado,California,06017,118,0 +2020-06-17,El Dorado,California,06017,121,0 +2020-06-18,El Dorado,California,06017,125,0 +2020-06-19,El Dorado,California,06017,130,0 +2020-06-20,El Dorado,California,06017,130,0 +2020-06-21,El Dorado,California,06017,130,0 +2020-06-22,El Dorado,California,06017,145,0 +2020-06-23,El Dorado,California,06017,150,0 +2020-06-24,El Dorado,California,06017,153,0 +2020-06-25,El Dorado,California,06017,158,0 +2020-06-26,El Dorado,California,06017,158,0 +2020-06-27,El Dorado,California,06017,159,0 +2020-06-28,El Dorado,California,06017,159,0 +2020-06-29,El Dorado,California,06017,178,0 +2020-06-30,El Dorado,California,06017,184,0 +2020-07-01,El Dorado,California,06017,184,0 +2020-07-02,El Dorado,California,06017,198,0 +2020-07-03,El Dorado,California,06017,226,0 +2020-07-04,El Dorado,California,06017,226,0 +2020-07-05,El Dorado,California,06017,226,0 +2020-07-06,El Dorado,California,06017,262,0 +2020-07-07,El Dorado,California,06017,264,0 +2020-07-08,El Dorado,California,06017,280,0 +2020-07-09,El Dorado,California,06017,292,0 +2020-03-07,Fresno,California,06019,1,0 +2020-03-08,Fresno,California,06019,1,0 +2020-03-09,Fresno,California,06019,1,0 +2020-03-10,Fresno,California,06019,1,0 +2020-03-11,Fresno,California,06019,1,0 +2020-03-12,Fresno,California,06019,1,0 +2020-03-13,Fresno,California,06019,1,0 +2020-03-14,Fresno,California,06019,2,0 +2020-03-15,Fresno,California,06019,2,0 +2020-03-16,Fresno,California,06019,2,0 +2020-03-17,Fresno,California,06019,2,0 +2020-03-18,Fresno,California,06019,4,0 +2020-03-19,Fresno,California,06019,4,0 +2020-03-20,Fresno,California,06019,10,0 +2020-03-21,Fresno,California,06019,10,0 +2020-03-22,Fresno,California,06019,10,0 +2020-03-23,Fresno,California,06019,13,0 +2020-03-24,Fresno,California,06019,18,0 +2020-03-25,Fresno,California,06019,19,0 +2020-03-26,Fresno,California,06019,27,0 +2020-03-27,Fresno,California,06019,31,0 +2020-03-28,Fresno,California,06019,43,0 +2020-03-29,Fresno,California,06019,43,0 +2020-03-30,Fresno,California,06019,53,0 +2020-03-31,Fresno,California,06019,68,0 +2020-04-01,Fresno,California,06019,82,0 +2020-04-02,Fresno,California,06019,94,0 +2020-04-03,Fresno,California,06019,100,1 +2020-04-04,Fresno,California,06019,103,1 +2020-04-05,Fresno,California,06019,108,1 +2020-04-06,Fresno,California,06019,124,2 +2020-04-07,Fresno,California,06019,146,3 +2020-04-08,Fresno,California,06019,156,3 +2020-04-09,Fresno,California,06019,173,3 +2020-04-10,Fresno,California,06019,191,5 +2020-04-11,Fresno,California,06019,201,5 +2020-04-12,Fresno,California,06019,201,5 +2020-04-13,Fresno,California,06019,222,5 +2020-04-14,Fresno,California,06019,222,5 +2020-04-15,Fresno,California,06019,265,7 +2020-04-16,Fresno,California,06019,295,7 +2020-04-17,Fresno,California,06019,311,7 +2020-04-18,Fresno,California,06019,315,7 +2020-04-19,Fresno,California,06019,315,7 +2020-04-20,Fresno,California,06019,351,7 +2020-04-21,Fresno,California,06019,371,7 +2020-04-22,Fresno,California,06019,384,7 +2020-04-23,Fresno,California,06019,419,7 +2020-04-24,Fresno,California,06019,443,7 +2020-04-25,Fresno,California,06019,458,7 +2020-04-26,Fresno,California,06019,458,7 +2020-04-27,Fresno,California,06019,498,7 +2020-04-28,Fresno,California,06019,521,7 +2020-04-29,Fresno,California,06019,538,7 +2020-04-30,Fresno,California,06019,564,7 +2020-05-01,Fresno,California,06019,615,8 +2020-05-02,Fresno,California,06019,633,8 +2020-05-03,Fresno,California,06019,633,8 +2020-05-04,Fresno,California,06019,672,9 +2020-05-05,Fresno,California,06019,724,9 +2020-05-06,Fresno,California,06019,777,9 +2020-05-07,Fresno,California,06019,813,9 +2020-05-08,Fresno,California,06019,841,9 +2020-05-09,Fresno,California,06019,885,9 +2020-05-10,Fresno,California,06019,885,9 +2020-05-11,Fresno,California,06019,945,9 +2020-05-12,Fresno,California,06019,984,10 +2020-05-13,Fresno,California,06019,1014,13 +2020-05-14,Fresno,California,06019,1074,13 +2020-05-15,Fresno,California,06019,1156,16 +2020-05-16,Fresno,California,06019,1192,16 +2020-05-17,Fresno,California,06019,1192,16 +2020-05-18,Fresno,California,06019,1263,17 +2020-05-19,Fresno,California,06019,1287,17 +2020-05-20,Fresno,California,06019,1338,20 +2020-05-21,Fresno,California,06019,1372,22 +2020-05-22,Fresno,California,06019,1417,22 +2020-05-23,Fresno,California,06019,1448,22 +2020-05-24,Fresno,California,06019,1482,22 +2020-05-25,Fresno,California,06019,1482,22 +2020-05-26,Fresno,California,06019,1535,26 +2020-05-27,Fresno,California,06019,1631,30 +2020-05-28,Fresno,California,06019,1658,32 +2020-05-29,Fresno,California,06019,1714,35 +2020-05-30,Fresno,California,06019,1743,35 +2020-05-31,Fresno,California,06019,1744,35 +2020-06-01,Fresno,California,06019,1882,36 +2020-06-02,Fresno,California,06019,1914,37 +2020-06-03,Fresno,California,06019,1944,37 +2020-06-04,Fresno,California,06019,2014,40 +2020-06-05,Fresno,California,06019,2080,43 +2020-06-06,Fresno,California,06019,2122,43 +2020-06-07,Fresno,California,06019,2122,43 +2020-06-08,Fresno,California,06019,2216,46 +2020-06-09,Fresno,California,06019,2286,48 +2020-06-10,Fresno,California,06019,2318,49 +2020-06-11,Fresno,California,06019,2395,51 +2020-06-12,Fresno,California,06019,2478,52 +2020-06-13,Fresno,California,06019,2547,52 +2020-06-14,Fresno,California,06019,2547,52 +2020-06-15,Fresno,California,06019,2706,55 +2020-06-16,Fresno,California,06019,2788,57 +2020-06-17,Fresno,California,06019,2900,61 +2020-06-18,Fresno,California,06019,3058,62 +2020-06-19,Fresno,California,06019,3187,66 +2020-06-20,Fresno,California,06019,3245,66 +2020-06-21,Fresno,California,06019,3245,66 +2020-06-22,Fresno,California,06019,3485,67 +2020-06-23,Fresno,California,06019,3672,70 +2020-06-24,Fresno,California,06019,3892,71 +2020-06-25,Fresno,California,06019,4053,71 +2020-06-26,Fresno,California,06019,4374,72 +2020-06-27,Fresno,California,06019,4474,72 +2020-06-28,Fresno,California,06019,4474,72 +2020-06-29,Fresno,California,06019,4811,72 +2020-06-30,Fresno,California,06019,5008,73 +2020-07-01,Fresno,California,06019,5289,75 +2020-07-02,Fresno,California,06019,5626,77 +2020-07-03,Fresno,California,06019,5851,77 +2020-07-04,Fresno,California,06019,6110,77 +2020-07-05,Fresno,California,06019,6110,77 +2020-07-06,Fresno,California,06019,6599,78 +2020-07-07,Fresno,California,06019,6924,81 +2020-07-08,Fresno,California,06019,7281,84 +2020-07-09,Fresno,California,06019,7627,87 +2020-03-28,Glenn,California,06021,1,0 +2020-03-29,Glenn,California,06021,1,0 +2020-03-30,Glenn,California,06021,2,0 +2020-03-31,Glenn,California,06021,2,0 +2020-04-01,Glenn,California,06021,2,0 +2020-04-02,Glenn,California,06021,2,0 +2020-04-03,Glenn,California,06021,2,0 +2020-04-04,Glenn,California,06021,2,0 +2020-04-05,Glenn,California,06021,2,0 +2020-04-06,Glenn,California,06021,2,0 +2020-04-07,Glenn,California,06021,2,0 +2020-04-08,Glenn,California,06021,2,0 +2020-04-09,Glenn,California,06021,2,0 +2020-04-10,Glenn,California,06021,3,0 +2020-04-11,Glenn,California,06021,3,0 +2020-04-12,Glenn,California,06021,3,0 +2020-04-13,Glenn,California,06021,4,0 +2020-04-14,Glenn,California,06021,4,0 +2020-04-15,Glenn,California,06021,4,0 +2020-04-16,Glenn,California,06021,4,0 +2020-04-17,Glenn,California,06021,4,0 +2020-04-18,Glenn,California,06021,4,0 +2020-04-19,Glenn,California,06021,4,0 +2020-04-20,Glenn,California,06021,4,0 +2020-04-21,Glenn,California,06021,4,0 +2020-04-22,Glenn,California,06021,4,0 +2020-04-23,Glenn,California,06021,5,0 +2020-04-24,Glenn,California,06021,5,0 +2020-04-25,Glenn,California,06021,5,0 +2020-04-26,Glenn,California,06021,5,0 +2020-04-27,Glenn,California,06021,5,0 +2020-04-28,Glenn,California,06021,5,0 +2020-04-29,Glenn,California,06021,5,0 +2020-04-30,Glenn,California,06021,5,0 +2020-05-01,Glenn,California,06021,5,0 +2020-05-02,Glenn,California,06021,5,0 +2020-05-03,Glenn,California,06021,5,0 +2020-05-04,Glenn,California,06021,5,0 +2020-05-05,Glenn,California,06021,5,0 +2020-05-06,Glenn,California,06021,5,0 +2020-05-07,Glenn,California,06021,6,0 +2020-05-08,Glenn,California,06021,6,0 +2020-05-09,Glenn,California,06021,6,0 +2020-05-10,Glenn,California,06021,6,0 +2020-05-11,Glenn,California,06021,6,0 +2020-05-12,Glenn,California,06021,6,0 +2020-05-13,Glenn,California,06021,7,0 +2020-05-14,Glenn,California,06021,9,0 +2020-05-15,Glenn,California,06021,9,0 +2020-05-16,Glenn,California,06021,9,0 +2020-05-17,Glenn,California,06021,9,0 +2020-05-18,Glenn,California,06021,12,0 +2020-05-19,Glenn,California,06021,12,0 +2020-05-20,Glenn,California,06021,12,0 +2020-05-21,Glenn,California,06021,12,0 +2020-05-22,Glenn,California,06021,12,0 +2020-05-23,Glenn,California,06021,12,0 +2020-05-24,Glenn,California,06021,12,0 +2020-05-25,Glenn,California,06021,12,0 +2020-05-26,Glenn,California,06021,13,0 +2020-05-27,Glenn,California,06021,13,0 +2020-05-28,Glenn,California,06021,14,0 +2020-05-29,Glenn,California,06021,16,0 +2020-05-30,Glenn,California,06021,16,0 +2020-05-31,Glenn,California,06021,16,0 +2020-06-01,Glenn,California,06021,17,0 +2020-06-02,Glenn,California,06021,17,0 +2020-06-03,Glenn,California,06021,17,0 +2020-06-04,Glenn,California,06021,17,0 +2020-06-05,Glenn,California,06021,18,0 +2020-06-06,Glenn,California,06021,18,0 +2020-06-07,Glenn,California,06021,18,0 +2020-06-08,Glenn,California,06021,19,0 +2020-06-09,Glenn,California,06021,21,0 +2020-06-10,Glenn,California,06021,23,0 +2020-06-11,Glenn,California,06021,24,0 +2020-06-12,Glenn,California,06021,24,0 +2020-06-13,Glenn,California,06021,24,0 +2020-06-14,Glenn,California,06021,24,0 +2020-06-15,Glenn,California,06021,32,0 +2020-06-16,Glenn,California,06021,34,0 +2020-06-17,Glenn,California,06021,38,0 +2020-06-18,Glenn,California,06021,42,0 +2020-06-19,Glenn,California,06021,42,0 +2020-06-20,Glenn,California,06021,42,0 +2020-06-21,Glenn,California,06021,42,0 +2020-06-22,Glenn,California,06021,42,0 +2020-06-23,Glenn,California,06021,66,0 +2020-06-24,Glenn,California,06021,74,0 +2020-06-25,Glenn,California,06021,87,0 +2020-06-26,Glenn,California,06021,87,0 +2020-06-27,Glenn,California,06021,87,0 +2020-06-28,Glenn,California,06021,87,0 +2020-06-29,Glenn,California,06021,103,0 +2020-06-30,Glenn,California,06021,112,0 +2020-07-01,Glenn,California,06021,112,0 +2020-07-02,Glenn,California,06021,122,0 +2020-07-03,Glenn,California,06021,122,0 +2020-07-04,Glenn,California,06021,122,0 +2020-07-05,Glenn,California,06021,128,0 +2020-07-06,Glenn,California,06021,129,0 +2020-07-07,Glenn,California,06021,129,0 +2020-07-08,Glenn,California,06021,145,0 +2020-07-09,Glenn,California,06021,146,0 +2020-02-20,Humboldt,California,06023,1,0 +2020-02-21,Humboldt,California,06023,1,0 +2020-02-22,Humboldt,California,06023,1,0 +2020-02-23,Humboldt,California,06023,1,0 +2020-02-24,Humboldt,California,06023,1,0 +2020-02-25,Humboldt,California,06023,1,0 +2020-02-26,Humboldt,California,06023,1,0 +2020-02-27,Humboldt,California,06023,1,0 +2020-02-28,Humboldt,California,06023,1,0 +2020-02-29,Humboldt,California,06023,1,0 +2020-03-01,Humboldt,California,06023,1,0 +2020-03-02,Humboldt,California,06023,1,0 +2020-03-03,Humboldt,California,06023,1,0 +2020-03-04,Humboldt,California,06023,1,0 +2020-03-05,Humboldt,California,06023,1,0 +2020-03-06,Humboldt,California,06023,1,0 +2020-03-07,Humboldt,California,06023,1,0 +2020-03-08,Humboldt,California,06023,1,0 +2020-03-09,Humboldt,California,06023,1,0 +2020-03-10,Humboldt,California,06023,1,0 +2020-03-11,Humboldt,California,06023,1,0 +2020-03-12,Humboldt,California,06023,1,0 +2020-03-13,Humboldt,California,06023,1,0 +2020-03-14,Humboldt,California,06023,1,0 +2020-03-15,Humboldt,California,06023,1,0 +2020-03-16,Humboldt,California,06023,1,0 +2020-03-17,Humboldt,California,06023,1,0 +2020-03-18,Humboldt,California,06023,1,0 +2020-03-19,Humboldt,California,06023,1,0 +2020-03-20,Humboldt,California,06023,2,0 +2020-03-21,Humboldt,California,06023,2,0 +2020-03-22,Humboldt,California,06023,2,0 +2020-03-23,Humboldt,California,06023,2,0 +2020-03-24,Humboldt,California,06023,5,0 +2020-03-25,Humboldt,California,06023,10,0 +2020-03-26,Humboldt,California,06023,12,0 +2020-03-27,Humboldt,California,06023,14,0 +2020-03-28,Humboldt,California,06023,18,0 +2020-03-29,Humboldt,California,06023,18,0 +2020-03-30,Humboldt,California,06023,21,0 +2020-03-31,Humboldt,California,06023,27,0 +2020-04-01,Humboldt,California,06023,27,0 +2020-04-02,Humboldt,California,06023,37,0 +2020-04-03,Humboldt,California,06023,40,0 +2020-04-04,Humboldt,California,06023,44,0 +2020-04-05,Humboldt,California,06023,44,0 +2020-04-06,Humboldt,California,06023,49,0 +2020-04-07,Humboldt,California,06023,50,0 +2020-04-08,Humboldt,California,06023,50,0 +2020-04-09,Humboldt,California,06023,50,0 +2020-04-10,Humboldt,California,06023,50,0 +2020-04-11,Humboldt,California,06023,50,0 +2020-04-12,Humboldt,California,06023,50,0 +2020-04-13,Humboldt,California,06023,50,0 +2020-04-14,Humboldt,California,06023,51,0 +2020-04-15,Humboldt,California,06023,52,0 +2020-04-16,Humboldt,California,06023,52,0 +2020-04-17,Humboldt,California,06023,52,0 +2020-04-18,Humboldt,California,06023,52,0 +2020-04-19,Humboldt,California,06023,52,0 +2020-04-20,Humboldt,California,06023,52,0 +2020-04-21,Humboldt,California,06023,52,0 +2020-04-22,Humboldt,California,06023,52,0 +2020-04-23,Humboldt,California,06023,52,0 +2020-04-24,Humboldt,California,06023,53,0 +2020-04-25,Humboldt,California,06023,53,0 +2020-04-26,Humboldt,California,06023,53,0 +2020-04-27,Humboldt,California,06023,53,0 +2020-04-28,Humboldt,California,06023,53,0 +2020-04-29,Humboldt,California,06023,54,0 +2020-04-30,Humboldt,California,06023,54,0 +2020-05-01,Humboldt,California,06023,54,0 +2020-05-02,Humboldt,California,06023,54,0 +2020-05-03,Humboldt,California,06023,54,0 +2020-05-04,Humboldt,California,06023,54,0 +2020-05-05,Humboldt,California,06023,54,0 +2020-05-06,Humboldt,California,06023,55,0 +2020-05-07,Humboldt,California,06023,55,0 +2020-05-08,Humboldt,California,06023,55,0 +2020-05-09,Humboldt,California,06023,57,0 +2020-05-10,Humboldt,California,06023,57,0 +2020-05-11,Humboldt,California,06023,61,0 +2020-05-12,Humboldt,California,06023,64,0 +2020-05-13,Humboldt,California,06023,67,0 +2020-05-14,Humboldt,California,06023,68,0 +2020-05-15,Humboldt,California,06023,72,0 +2020-05-16,Humboldt,California,06023,77,0 +2020-05-17,Humboldt,California,06023,77,0 +2020-05-18,Humboldt,California,06023,81,0 +2020-05-19,Humboldt,California,06023,86,0 +2020-05-20,Humboldt,California,06023,88,0 +2020-05-21,Humboldt,California,06023,88,2 +2020-05-22,Humboldt,California,06023,91,2 +2020-05-23,Humboldt,California,06023,93,2 +2020-05-24,Humboldt,California,06023,93,2 +2020-05-25,Humboldt,California,06023,94,2 +2020-05-26,Humboldt,California,06023,94,2 +2020-05-27,Humboldt,California,06023,98,2 +2020-05-28,Humboldt,California,06023,98,3 +2020-05-29,Humboldt,California,06023,99,3 +2020-05-30,Humboldt,California,06023,101,3 +2020-05-31,Humboldt,California,06023,101,3 +2020-06-01,Humboldt,California,06023,102,3 +2020-06-02,Humboldt,California,06023,103,4 +2020-06-03,Humboldt,California,06023,104,4 +2020-06-04,Humboldt,California,06023,104,4 +2020-06-05,Humboldt,California,06023,109,4 +2020-06-06,Humboldt,California,06023,111,4 +2020-06-07,Humboldt,California,06023,112,4 +2020-06-08,Humboldt,California,06023,112,4 +2020-06-09,Humboldt,California,06023,112,4 +2020-06-10,Humboldt,California,06023,113,4 +2020-06-11,Humboldt,California,06023,112,4 +2020-06-12,Humboldt,California,06023,113,4 +2020-06-13,Humboldt,California,06023,106,4 +2020-06-14,Humboldt,California,06023,106,4 +2020-06-15,Humboldt,California,06023,106,4 +2020-06-16,Humboldt,California,06023,107,4 +2020-06-17,Humboldt,California,06023,108,4 +2020-06-18,Humboldt,California,06023,108,4 +2020-06-19,Humboldt,California,06023,110,4 +2020-06-20,Humboldt,California,06023,110,4 +2020-06-21,Humboldt,California,06023,110,4 +2020-06-22,Humboldt,California,06023,112,4 +2020-06-23,Humboldt,California,06023,113,4 +2020-06-24,Humboldt,California,06023,122,4 +2020-06-25,Humboldt,California,06023,127,4 +2020-06-26,Humboldt,California,06023,129,4 +2020-06-27,Humboldt,California,06023,129,4 +2020-06-28,Humboldt,California,06023,129,4 +2020-06-29,Humboldt,California,06023,133,4 +2020-06-30,Humboldt,California,06023,133,4 +2020-07-01,Humboldt,California,06023,136,4 +2020-07-02,Humboldt,California,06023,138,4 +2020-07-03,Humboldt,California,06023,138,4 +2020-07-04,Humboldt,California,06023,143,4 +2020-07-05,Humboldt,California,06023,144,4 +2020-07-06,Humboldt,California,06023,149,4 +2020-07-07,Humboldt,California,06023,154,4 +2020-07-08,Humboldt,California,06023,157,4 +2020-07-09,Humboldt,California,06023,162,4 +2020-03-20,Imperial,California,06025,4,0 +2020-03-21,Imperial,California,06025,4,0 +2020-03-22,Imperial,California,06025,4,0 +2020-03-23,Imperial,California,06025,4,0 +2020-03-24,Imperial,California,06025,9,0 +2020-03-25,Imperial,California,06025,9,0 +2020-03-26,Imperial,California,06025,17,0 +2020-03-27,Imperial,California,06025,21,0 +2020-03-28,Imperial,California,06025,25,0 +2020-03-29,Imperial,California,06025,25,0 +2020-03-30,Imperial,California,06025,33,0 +2020-03-31,Imperial,California,06025,38,0 +2020-04-01,Imperial,California,06025,43,0 +2020-04-02,Imperial,California,06025,50,0 +2020-04-03,Imperial,California,06025,55,0 +2020-04-04,Imperial,California,06025,55,0 +2020-04-05,Imperial,California,06025,57,1 +2020-04-06,Imperial,California,06025,68,3 +2020-04-07,Imperial,California,06025,73,2 +2020-04-08,Imperial,California,06025,75,3 +2020-04-09,Imperial,California,06025,79,2 +2020-04-10,Imperial,California,06025,79,2 +2020-04-11,Imperial,California,06025,87,2 +2020-04-12,Imperial,California,06025,87,2 +2020-04-13,Imperial,California,06025,87,2 +2020-04-14,Imperial,California,06025,117,2 +2020-04-15,Imperial,California,06025,127,2 +2020-04-16,Imperial,California,06025,143,2 +2020-04-17,Imperial,California,06025,155,2 +2020-04-18,Imperial,California,06025,155,2 +2020-04-19,Imperial,California,06025,160,2 +2020-04-20,Imperial,California,06025,160,2 +2020-04-21,Imperial,California,06025,195,4 +2020-04-22,Imperial,California,06025,214,4 +2020-04-23,Imperial,California,06025,232,8 +2020-04-24,Imperial,California,06025,251,8 +2020-04-25,Imperial,California,06025,251,7 +2020-04-26,Imperial,California,06025,251,7 +2020-04-27,Imperial,California,06025,284,7 +2020-04-28,Imperial,California,06025,304,8 +2020-04-29,Imperial,California,06025,319,8 +2020-04-30,Imperial,California,06025,333,8 +2020-05-01,Imperial,California,06025,358,8 +2020-05-02,Imperial,California,06025,358,8 +2020-05-03,Imperial,California,06025,358,8 +2020-05-04,Imperial,California,06025,379,8 +2020-05-05,Imperial,California,06025,400,8 +2020-05-06,Imperial,California,06025,419,8 +2020-05-07,Imperial,California,06025,455,8 +2020-05-08,Imperial,California,06025,512,11 +2020-05-09,Imperial,California,06025,512,11 +2020-05-10,Imperial,California,06025,512,11 +2020-05-11,Imperial,California,06025,564,11 +2020-05-12,Imperial,California,06025,603,12 +2020-05-13,Imperial,California,06025,647,13 +2020-05-14,Imperial,California,06025,712,14 +2020-05-15,Imperial,California,06025,786,14 +2020-05-16,Imperial,California,06025,786,14 +2020-05-17,Imperial,California,06025,786,14 +2020-05-18,Imperial,California,06025,876,14 +2020-05-19,Imperial,California,06025,902,17 +2020-05-20,Imperial,California,06025,1012,18 +2020-05-21,Imperial,California,06025,1076,20 +2020-05-22,Imperial,California,06025,1145,22 +2020-05-23,Imperial,California,06025,1214,22 +2020-05-24,Imperial,California,06025,1283,22 +2020-05-25,Imperial,California,06025,1369,22 +2020-05-26,Imperial,California,06025,1369,23 +2020-05-27,Imperial,California,06025,1443,25 +2020-05-28,Imperial,California,06025,1545,25 +2020-05-29,Imperial,California,06025,1634,26 +2020-05-30,Imperial,California,06025,1634,26 +2020-05-31,Imperial,California,06025,2091,26 +2020-06-01,Imperial,California,06025,2197,28 +2020-06-02,Imperial,California,06025,2366,28 +2020-06-03,Imperial,California,06025,2459,28 +2020-06-04,Imperial,California,06025,2540,28 +2020-06-05,Imperial,California,06025,2631,29 +2020-06-06,Imperial,California,06025,2778,32 +2020-06-07,Imperial,California,06025,3047,32 +2020-06-08,Imperial,California,06025,3048,37 +2020-06-09,Imperial,California,06025,3133,37 +2020-06-10,Imperial,California,06025,3386,40 +2020-06-11,Imperial,California,06025,3454,42 +2020-06-12,Imperial,California,06025,3724,42 +2020-06-13,Imperial,California,06025,4157,42 +2020-06-14,Imperial,California,06025,4157,42 +2020-06-15,Imperial,California,06025,4298,46 +2020-06-16,Imperial,California,06025,4389,51 +2020-06-17,Imperial,California,06025,4478,53 +2020-06-18,Imperial,California,06025,4659,59 +2020-06-19,Imperial,California,06025,4744,63 +2020-06-20,Imperial,California,06025,4800,63 +2020-06-21,Imperial,California,06025,4800,63 +2020-06-22,Imperial,California,06025,4800,63 +2020-06-23,Imperial,California,06025,5270,67 +2020-06-24,Imperial,California,06025,5549,69 +2020-06-25,Imperial,California,06025,5744,72 +2020-06-26,Imperial,California,06025,5838,72 +2020-06-27,Imperial,California,06025,6041,80 +2020-06-28,Imperial,California,06025,6041,80 +2020-06-29,Imperial,California,06025,6187,80 +2020-06-30,Imperial,California,06025,6242,92 +2020-07-01,Imperial,California,06025,6523,96 +2020-07-02,Imperial,California,06025,6824,99 +2020-07-03,Imperial,California,06025,6979,104 +2020-07-04,Imperial,California,06025,7039,113 +2020-07-05,Imperial,California,06025,7039,113 +2020-07-06,Imperial,California,06025,7190,116 +2020-07-07,Imperial,California,06025,7343,120 +2020-07-08,Imperial,California,06025,7464,124 +2020-07-09,Imperial,California,06025,7654,126 +2020-03-25,Inyo,California,06027,1,0 +2020-03-26,Inyo,California,06027,2,0 +2020-03-27,Inyo,California,06027,5,0 +2020-03-28,Inyo,California,06027,5,0 +2020-03-29,Inyo,California,06027,8,0 +2020-03-30,Inyo,California,06027,8,0 +2020-03-31,Inyo,California,06027,8,0 +2020-04-01,Inyo,California,06027,9,0 +2020-04-02,Inyo,California,06027,10,1 +2020-04-03,Inyo,California,06027,10,0 +2020-04-04,Inyo,California,06027,10,0 +2020-04-05,Inyo,California,06027,11,0 +2020-04-06,Inyo,California,06027,11,0 +2020-04-07,Inyo,California,06027,11,0 +2020-04-08,Inyo,California,06027,11,0 +2020-04-09,Inyo,California,06027,11,0 +2020-04-10,Inyo,California,06027,12,0 +2020-04-11,Inyo,California,06027,12,0 +2020-04-12,Inyo,California,06027,12,0 +2020-04-13,Inyo,California,06027,12,0 +2020-04-14,Inyo,California,06027,12,0 +2020-04-15,Inyo,California,06027,17,0 +2020-04-16,Inyo,California,06027,17,0 +2020-04-17,Inyo,California,06027,18,0 +2020-04-18,Inyo,California,06027,18,0 +2020-04-19,Inyo,California,06027,18,0 +2020-04-20,Inyo,California,06027,18,0 +2020-04-21,Inyo,California,06027,18,0 +2020-04-22,Inyo,California,06027,19,0 +2020-04-23,Inyo,California,06027,19,0 +2020-04-24,Inyo,California,06027,19,1 +2020-04-25,Inyo,California,06027,19,1 +2020-04-26,Inyo,California,06027,19,1 +2020-04-27,Inyo,California,06027,20,1 +2020-04-28,Inyo,California,06027,20,1 +2020-04-29,Inyo,California,06027,20,1 +2020-04-30,Inyo,California,06027,20,1 +2020-05-01,Inyo,California,06027,20,1 +2020-05-02,Inyo,California,06027,20,1 +2020-05-03,Inyo,California,06027,20,1 +2020-05-04,Inyo,California,06027,20,1 +2020-05-05,Inyo,California,06027,20,1 +2020-05-06,Inyo,California,06027,20,1 +2020-05-07,Inyo,California,06027,20,1 +2020-05-08,Inyo,California,06027,20,1 +2020-05-09,Inyo,California,06027,20,1 +2020-05-10,Inyo,California,06027,20,1 +2020-05-11,Inyo,California,06027,20,1 +2020-05-12,Inyo,California,06027,20,1 +2020-05-13,Inyo,California,06027,20,1 +2020-05-14,Inyo,California,06027,20,1 +2020-05-15,Inyo,California,06027,20,1 +2020-05-16,Inyo,California,06027,20,1 +2020-05-17,Inyo,California,06027,20,1 +2020-05-18,Inyo,California,06027,20,1 +2020-05-19,Inyo,California,06027,20,1 +2020-05-20,Inyo,California,06027,20,1 +2020-05-21,Inyo,California,06027,20,1 +2020-05-22,Inyo,California,06027,20,1 +2020-05-23,Inyo,California,06027,20,1 +2020-05-24,Inyo,California,06027,20,1 +2020-05-25,Inyo,California,06027,20,1 +2020-05-26,Inyo,California,06027,20,1 +2020-05-27,Inyo,California,06027,20,1 +2020-05-28,Inyo,California,06027,20,1 +2020-05-29,Inyo,California,06027,20,1 +2020-05-30,Inyo,California,06027,20,1 +2020-05-31,Inyo,California,06027,20,1 +2020-06-01,Inyo,California,06027,20,1 +2020-06-02,Inyo,California,06027,20,1 +2020-06-03,Inyo,California,06027,20,1 +2020-06-04,Inyo,California,06027,20,1 +2020-06-05,Inyo,California,06027,20,1 +2020-06-06,Inyo,California,06027,21,1 +2020-06-07,Inyo,California,06027,21,1 +2020-06-08,Inyo,California,06027,21,1 +2020-06-09,Inyo,California,06027,22,1 +2020-06-10,Inyo,California,06027,22,1 +2020-06-11,Inyo,California,06027,23,1 +2020-06-12,Inyo,California,06027,23,1 +2020-06-13,Inyo,California,06027,23,1 +2020-06-14,Inyo,California,06027,23,1 +2020-06-15,Inyo,California,06027,23,1 +2020-06-16,Inyo,California,06027,23,1 +2020-06-17,Inyo,California,06027,24,1 +2020-06-18,Inyo,California,06027,25,1 +2020-06-19,Inyo,California,06027,25,1 +2020-06-20,Inyo,California,06027,26,1 +2020-06-21,Inyo,California,06027,26,1 +2020-06-22,Inyo,California,06027,26,1 +2020-06-23,Inyo,California,06027,26,1 +2020-06-24,Inyo,California,06027,26,1 +2020-06-25,Inyo,California,06027,28,1 +2020-06-26,Inyo,California,06027,27,1 +2020-06-27,Inyo,California,06027,29,1 +2020-06-28,Inyo,California,06027,29,1 +2020-06-29,Inyo,California,06027,29,1 +2020-06-30,Inyo,California,06027,29,1 +2020-07-01,Inyo,California,06027,30,1 +2020-07-02,Inyo,California,06027,30,1 +2020-07-03,Inyo,California,06027,29,1 +2020-07-04,Inyo,California,06027,32,1 +2020-07-05,Inyo,California,06027,32,1 +2020-07-06,Inyo,California,06027,32,1 +2020-07-07,Inyo,California,06027,32,1 +2020-07-08,Inyo,California,06027,32,1 +2020-07-09,Inyo,California,06027,35,1 +2020-03-17,Kern,California,06029,1,0 +2020-03-18,Kern,California,06029,1,0 +2020-03-19,Kern,California,06029,2,0 +2020-03-20,Kern,California,06029,2,0 +2020-03-21,Kern,California,06029,4,0 +2020-03-22,Kern,California,06029,5,0 +2020-03-23,Kern,California,06029,5,0 +2020-03-24,Kern,California,06029,14,0 +2020-03-25,Kern,California,06029,24,0 +2020-03-26,Kern,California,06029,33,0 +2020-03-27,Kern,California,06029,41,1 +2020-03-28,Kern,California,06029,47,1 +2020-03-29,Kern,California,06029,51,1 +2020-03-30,Kern,California,06029,76,1 +2020-03-31,Kern,California,06029,101,1 +2020-04-01,Kern,California,06029,110,1 +2020-04-02,Kern,California,06029,155,1 +2020-04-03,Kern,California,06029,199,2 +2020-04-04,Kern,California,06029,205,2 +2020-04-05,Kern,California,06029,225,2 +2020-04-06,Kern,California,06029,246,2 +2020-04-07,Kern,California,06029,267,2 +2020-04-08,Kern,California,06029,309,2 +2020-04-09,Kern,California,06029,330,3 +2020-04-10,Kern,California,06029,363,3 +2020-04-11,Kern,California,06029,369,3 +2020-04-12,Kern,California,06029,396,3 +2020-04-13,Kern,California,06029,454,3 +2020-04-14,Kern,California,06029,524,3 +2020-04-15,Kern,California,06029,553,3 +2020-04-16,Kern,California,06029,553,3 +2020-04-17,Kern,California,06029,553,3 +2020-04-18,Kern,California,06029,619,3 +2020-04-19,Kern,California,06029,623,3 +2020-04-20,Kern,California,06029,643,3 +2020-04-21,Kern,California,06029,671,3 +2020-04-22,Kern,California,06029,671,3 +2020-04-23,Kern,California,06029,713,4 +2020-04-24,Kern,California,06029,744,4 +2020-04-25,Kern,California,06029,764,4 +2020-04-26,Kern,California,06029,809,4 +2020-04-27,Kern,California,06029,837,5 +2020-04-28,Kern,California,06029,865,5 +2020-04-29,Kern,California,06029,882,6 +2020-04-30,Kern,California,06029,910,7 +2020-05-01,Kern,California,06029,941,8 +2020-05-02,Kern,California,06029,972,8 +2020-05-03,Kern,California,06029,1007,8 +2020-05-04,Kern,California,06029,1025,8 +2020-05-05,Kern,California,06029,1047,11 +2020-05-06,Kern,California,06029,1084,11 +2020-05-07,Kern,California,06029,1133,14 +2020-05-08,Kern,California,06029,1176,15 +2020-05-09,Kern,California,06029,1238,16 +2020-05-10,Kern,California,06029,1264,16 +2020-05-11,Kern,California,06029,1300,16 +2020-05-12,Kern,California,06029,1331,17 +2020-05-13,Kern,California,06029,1363,21 +2020-05-14,Kern,California,06029,1403,22 +2020-05-15,Kern,California,06029,1438,25 +2020-05-16,Kern,California,06029,1483,25 +2020-05-17,Kern,California,06029,1525,25 +2020-05-18,Kern,California,06029,1562,26 +2020-05-19,Kern,California,06029,1596,26 +2020-05-20,Kern,California,06029,1615,26 +2020-05-21,Kern,California,06029,1654,27 +2020-05-22,Kern,California,06029,1705,28 +2020-05-23,Kern,California,06029,1767,30 +2020-05-24,Kern,California,06029,1834,31 +2020-05-25,Kern,California,06029,1881,31 +2020-05-26,Kern,California,06029,1890,31 +2020-05-27,Kern,California,06029,1951,36 +2020-05-28,Kern,California,06029,2017,37 +2020-05-29,Kern,California,06029,2086,37 +2020-05-30,Kern,California,06029,2155,38 +2020-05-31,Kern,California,06029,2260,38 +2020-06-01,Kern,California,06029,2332,38 +2020-06-02,Kern,California,06029,2386,39 +2020-06-03,Kern,California,06029,2428,40 +2020-06-04,Kern,California,06029,2472,45 +2020-06-05,Kern,California,06029,2544,45 +2020-06-06,Kern,California,06029,2660,46 +2020-06-07,Kern,California,06029,2730,46 +2020-06-08,Kern,California,06029,2804,47 +2020-06-09,Kern,California,06029,2880,50 +2020-06-10,Kern,California,06029,2952,51 +2020-06-11,Kern,California,06029,3026,53 +2020-06-12,Kern,California,06029,3140,54 +2020-06-13,Kern,California,06029,3205,55 +2020-06-14,Kern,California,06029,3291,55 +2020-06-15,Kern,California,06029,3377,55 +2020-06-16,Kern,California,06029,3462,57 +2020-06-17,Kern,California,06029,3522,58 +2020-06-18,Kern,California,06029,3600,60 +2020-06-19,Kern,California,06029,3716,60 +2020-06-20,Kern,California,06029,3803,60 +2020-06-21,Kern,California,06029,3900,60 +2020-06-22,Kern,California,06029,3975,60 +2020-06-23,Kern,California,06029,4059,66 +2020-06-24,Kern,California,06029,4118,66 +2020-06-25,Kern,California,06029,4192,70 +2020-06-26,Kern,California,06029,4310,70 +2020-06-27,Kern,California,06029,4366,70 +2020-06-28,Kern,California,06029,4488,70 +2020-06-29,Kern,California,06029,4558,70 +2020-06-30,Kern,California,06029,4665,70 +2020-07-01,Kern,California,06029,4778,76 +2020-07-02,Kern,California,06029,4949,77 +2020-07-03,Kern,California,06029,5110,80 +2020-07-04,Kern,California,06029,5213,81 +2020-07-05,Kern,California,06029,5255,82 +2020-07-06,Kern,California,06029,5379,82 +2020-07-07,Kern,California,06029,5553,84 +2020-07-08,Kern,California,06029,5769,87 +2020-07-09,Kern,California,06029,5989,89 +2020-03-27,Kings,California,06031,1,0 +2020-03-28,Kings,California,06031,1,0 +2020-03-29,Kings,California,06031,2,0 +2020-03-30,Kings,California,06031,3,0 +2020-03-31,Kings,California,06031,4,0 +2020-04-01,Kings,California,06031,4,0 +2020-04-02,Kings,California,06031,5,0 +2020-04-03,Kings,California,06031,5,0 +2020-04-04,Kings,California,06031,5,0 +2020-04-05,Kings,California,06031,5,0 +2020-04-06,Kings,California,06031,5,0 +2020-04-07,Kings,California,06031,5,0 +2020-04-08,Kings,California,06031,7,0 +2020-04-09,Kings,California,06031,7,0 +2020-04-10,Kings,California,06031,9,0 +2020-04-11,Kings,California,06031,10,1 +2020-04-12,Kings,California,06031,10,1 +2020-04-13,Kings,California,06031,12,1 +2020-04-14,Kings,California,06031,13,1 +2020-04-15,Kings,California,06031,13,1 +2020-04-16,Kings,California,06031,18,1 +2020-04-17,Kings,California,06031,20,1 +2020-04-18,Kings,California,06031,28,1 +2020-04-19,Kings,California,06031,30,1 +2020-04-20,Kings,California,06031,30,1 +2020-04-21,Kings,California,06031,32,1 +2020-04-22,Kings,California,06031,32,1 +2020-04-23,Kings,California,06031,35,1 +2020-04-24,Kings,California,06031,47,1 +2020-04-25,Kings,California,06031,52,1 +2020-04-26,Kings,California,06031,67,1 +2020-04-27,Kings,California,06031,71,1 +2020-04-28,Kings,California,06031,79,1 +2020-04-29,Kings,California,06031,96,1 +2020-04-30,Kings,California,06031,96,1 +2020-05-01,Kings,California,06031,123,1 +2020-05-02,Kings,California,06031,158,1 +2020-05-03,Kings,California,06031,172,1 +2020-05-04,Kings,California,06031,172,1 +2020-05-05,Kings,California,06031,211,1 +2020-05-06,Kings,California,06031,233,1 +2020-05-07,Kings,California,06031,244,1 +2020-05-08,Kings,California,06031,265,1 +2020-05-09,Kings,California,06031,275,1 +2020-05-10,Kings,California,06031,287,1 +2020-05-11,Kings,California,06031,319,1 +2020-05-12,Kings,California,06031,325,1 +2020-05-13,Kings,California,06031,348,1 +2020-05-14,Kings,California,06031,358,1 +2020-05-15,Kings,California,06031,372,2 +2020-05-16,Kings,California,06031,392,2 +2020-05-17,Kings,California,06031,399,2 +2020-05-18,Kings,California,06031,412,2 +2020-05-19,Kings,California,06031,416,2 +2020-05-20,Kings,California,06031,416,2 +2020-05-21,Kings,California,06031,488,2 +2020-05-22,Kings,California,06031,506,2 +2020-05-23,Kings,California,06031,506,2 +2020-05-24,Kings,California,06031,647,2 +2020-05-25,Kings,California,06031,688,2 +2020-05-26,Kings,California,06031,688,2 +2020-05-27,Kings,California,06031,698,3 +2020-05-28,Kings,California,06031,704,3 +2020-05-29,Kings,California,06031,714,3 +2020-05-30,Kings,California,06031,746,4 +2020-05-31,Kings,California,06031,1122,5 +2020-06-01,Kings,California,06031,1122,5 +2020-06-02,Kings,California,06031,1137,5 +2020-06-03,Kings,California,06031,1168,6 +2020-06-04,Kings,California,06031,1187,6 +2020-06-05,Kings,California,06031,1452,6 +2020-06-06,Kings,California,06031,1492,6 +2020-06-07,Kings,California,06031,1538,6 +2020-06-08,Kings,California,06031,1567,6 +2020-06-09,Kings,California,06031,1637,6 +2020-06-10,Kings,California,06031,1688,6 +2020-06-11,Kings,California,06031,1688,6 +2020-06-12,Kings,California,06031,1724,6 +2020-06-13,Kings,California,06031,1759,6 +2020-06-14,Kings,California,06031,1805,6 +2020-06-15,Kings,California,06031,1831,8 +2020-06-16,Kings,California,06031,1870,9 +2020-06-17,Kings,California,06031,1940,10 +2020-06-18,Kings,California,06031,1976,10 +2020-06-19,Kings,California,06031,2057,12 +2020-06-20,Kings,California,06031,2091,15 +2020-06-21,Kings,California,06031,2091,15 +2020-06-22,Kings,California,06031,2093,19 +2020-06-23,Kings,California,06031,2186,20 +2020-06-24,Kings,California,06031,2234,20 +2020-06-25,Kings,California,06031,2284,21 +2020-06-26,Kings,California,06031,2298,21 +2020-06-27,Kings,California,06031,2318,22 +2020-06-28,Kings,California,06031,2350,24 +2020-06-29,Kings,California,06031,2394,28 +2020-06-30,Kings,California,06031,2417,30 +2020-07-01,Kings,California,06031,2504,32 +2020-07-02,Kings,California,06031,2583,32 +2020-07-03,Kings,California,06031,2600,33 +2020-07-04,Kings,California,06031,2634,33 +2020-07-05,Kings,California,06031,2673,33 +2020-07-06,Kings,California,06031,2717,37 +2020-07-07,Kings,California,06031,2755,37 +2020-07-08,Kings,California,06031,2823,38 +2020-07-09,Kings,California,06031,2855,39 +2020-04-06,Lake,California,06033,2,0 +2020-04-07,Lake,California,06033,2,0 +2020-04-08,Lake,California,06033,3,0 +2020-04-09,Lake,California,06033,3,0 +2020-04-10,Lake,California,06033,4,0 +2020-04-11,Lake,California,06033,4,0 +2020-04-12,Lake,California,06033,4,0 +2020-04-13,Lake,California,06033,4,0 +2020-04-14,Lake,California,06033,5,0 +2020-04-15,Lake,California,06033,5,0 +2020-04-16,Lake,California,06033,6,0 +2020-04-17,Lake,California,06033,6,0 +2020-04-18,Lake,California,06033,6,0 +2020-04-19,Lake,California,06033,6,0 +2020-04-20,Lake,California,06033,6,0 +2020-04-21,Lake,California,06033,6,0 +2020-04-22,Lake,California,06033,6,0 +2020-04-23,Lake,California,06033,6,0 +2020-04-24,Lake,California,06033,6,0 +2020-04-25,Lake,California,06033,6,0 +2020-04-26,Lake,California,06033,6,0 +2020-04-27,Lake,California,06033,6,0 +2020-04-28,Lake,California,06033,6,0 +2020-04-29,Lake,California,06033,6,0 +2020-04-30,Lake,California,06033,7,0 +2020-05-01,Lake,California,06033,7,0 +2020-05-02,Lake,California,06033,7,0 +2020-05-03,Lake,California,06033,7,0 +2020-05-04,Lake,California,06033,7,0 +2020-05-05,Lake,California,06033,8,0 +2020-05-06,Lake,California,06033,8,0 +2020-05-07,Lake,California,06033,8,0 +2020-05-08,Lake,California,06033,8,0 +2020-05-09,Lake,California,06033,8,0 +2020-05-10,Lake,California,06033,8,0 +2020-05-11,Lake,California,06033,8,0 +2020-05-12,Lake,California,06033,8,0 +2020-05-13,Lake,California,06033,8,0 +2020-05-14,Lake,California,06033,8,0 +2020-05-15,Lake,California,06033,8,0 +2020-05-16,Lake,California,06033,8,0 +2020-05-17,Lake,California,06033,8,0 +2020-05-18,Lake,California,06033,10,0 +2020-05-19,Lake,California,06033,11,0 +2020-05-20,Lake,California,06033,12,0 +2020-05-21,Lake,California,06033,12,0 +2020-05-22,Lake,California,06033,12,0 +2020-05-23,Lake,California,06033,12,0 +2020-05-24,Lake,California,06033,12,0 +2020-05-25,Lake,California,06033,12,0 +2020-05-26,Lake,California,06033,13,0 +2020-05-27,Lake,California,06033,19,0 +2020-05-28,Lake,California,06033,23,0 +2020-05-29,Lake,California,06033,23,0 +2020-05-30,Lake,California,06033,23,0 +2020-05-31,Lake,California,06033,23,0 +2020-06-01,Lake,California,06033,21,0 +2020-06-02,Lake,California,06033,26,0 +2020-06-03,Lake,California,06033,30,0 +2020-06-04,Lake,California,06033,30,0 +2020-06-05,Lake,California,06033,30,0 +2020-06-06,Lake,California,06033,30,0 +2020-06-07,Lake,California,06033,30,0 +2020-06-08,Lake,California,06033,30,0 +2020-06-09,Lake,California,06033,30,0 +2020-06-10,Lake,California,06033,30,0 +2020-06-11,Lake,California,06033,30,0 +2020-06-12,Lake,California,06033,31,0 +2020-06-13,Lake,California,06033,31,0 +2020-06-14,Lake,California,06033,31,0 +2020-06-15,Lake,California,06033,34,0 +2020-06-16,Lake,California,06033,34,0 +2020-06-17,Lake,California,06033,34,0 +2020-06-18,Lake,California,06033,34,0 +2020-06-19,Lake,California,06033,36,0 +2020-06-20,Lake,California,06033,36,0 +2020-06-21,Lake,California,06033,37,0 +2020-06-22,Lake,California,06033,36,0 +2020-06-23,Lake,California,06033,41,0 +2020-06-24,Lake,California,06033,41,0 +2020-06-25,Lake,California,06033,42,0 +2020-06-26,Lake,California,06033,42,0 +2020-06-27,Lake,California,06033,42,0 +2020-06-28,Lake,California,06033,42,0 +2020-06-29,Lake,California,06033,58,0 +2020-06-30,Lake,California,06033,62,0 +2020-07-01,Lake,California,06033,81,0 +2020-07-02,Lake,California,06033,87,0 +2020-07-03,Lake,California,06033,88,0 +2020-07-04,Lake,California,06033,89,1 +2020-07-05,Lake,California,06033,89,1 +2020-07-06,Lake,California,06033,96,1 +2020-07-07,Lake,California,06033,98,1 +2020-07-08,Lake,California,06033,100,1 +2020-07-09,Lake,California,06033,101,1 +2020-05-23,Lassen,California,06035,2,0 +2020-05-24,Lassen,California,06035,4,0 +2020-05-25,Lassen,California,06035,4,0 +2020-05-26,Lassen,California,06035,4,0 +2020-05-27,Lassen,California,06035,5,0 +2020-05-28,Lassen,California,06035,5,0 +2020-05-29,Lassen,California,06035,5,0 +2020-05-30,Lassen,California,06035,5,0 +2020-05-31,Lassen,California,06035,5,0 +2020-06-01,Lassen,California,06035,5,0 +2020-06-02,Lassen,California,06035,5,0 +2020-06-03,Lassen,California,06035,5,0 +2020-06-04,Lassen,California,06035,5,0 +2020-06-05,Lassen,California,06035,6,0 +2020-06-06,Lassen,California,06035,6,0 +2020-06-07,Lassen,California,06035,6,0 +2020-06-08,Lassen,California,06035,8,0 +2020-06-09,Lassen,California,06035,9,0 +2020-06-10,Lassen,California,06035,9,0 +2020-06-11,Lassen,California,06035,9,0 +2020-06-12,Lassen,California,06035,9,0 +2020-06-13,Lassen,California,06035,9,0 +2020-06-14,Lassen,California,06035,9,0 +2020-06-15,Lassen,California,06035,9,0 +2020-06-16,Lassen,California,06035,9,0 +2020-06-17,Lassen,California,06035,9,0 +2020-06-18,Lassen,California,06035,9,0 +2020-06-19,Lassen,California,06035,9,0 +2020-06-20,Lassen,California,06035,9,0 +2020-06-21,Lassen,California,06035,11,0 +2020-06-22,Lassen,California,06035,11,0 +2020-06-23,Lassen,California,06035,15,0 +2020-06-24,Lassen,California,06035,15,0 +2020-06-25,Lassen,California,06035,74,0 +2020-06-26,Lassen,California,06035,172,0 +2020-06-27,Lassen,California,06035,172,0 +2020-06-28,Lassen,California,06035,220,0 +2020-06-29,Lassen,California,06035,229,0 +2020-06-30,Lassen,California,06035,233,0 +2020-07-01,Lassen,California,06035,233,0 +2020-07-02,Lassen,California,06035,234,0 +2020-07-03,Lassen,California,06035,234,0 +2020-07-04,Lassen,California,06035,242,0 +2020-07-05,Lassen,California,06035,242,0 +2020-07-06,Lassen,California,06035,242,0 +2020-07-07,Lassen,California,06035,267,0 +2020-07-08,Lassen,California,06035,267,0 +2020-07-09,Lassen,California,06035,261,0 +2020-01-26,Los Angeles,California,06037,1,0 +2020-01-27,Los Angeles,California,06037,1,0 +2020-01-28,Los Angeles,California,06037,1,0 +2020-01-29,Los Angeles,California,06037,1,0 +2020-01-30,Los Angeles,California,06037,1,0 +2020-01-31,Los Angeles,California,06037,1,0 +2020-02-01,Los Angeles,California,06037,1,0 +2020-02-02,Los Angeles,California,06037,1,0 +2020-02-03,Los Angeles,California,06037,1,0 +2020-02-04,Los Angeles,California,06037,1,0 +2020-02-05,Los Angeles,California,06037,1,0 +2020-02-06,Los Angeles,California,06037,1,0 +2020-02-07,Los Angeles,California,06037,1,0 +2020-02-08,Los Angeles,California,06037,1,0 +2020-02-09,Los Angeles,California,06037,1,0 +2020-02-10,Los Angeles,California,06037,1,0 +2020-02-11,Los Angeles,California,06037,1,0 +2020-02-12,Los Angeles,California,06037,1,0 +2020-02-13,Los Angeles,California,06037,1,0 +2020-02-14,Los Angeles,California,06037,1,0 +2020-02-15,Los Angeles,California,06037,1,0 +2020-02-16,Los Angeles,California,06037,1,0 +2020-02-17,Los Angeles,California,06037,1,0 +2020-02-18,Los Angeles,California,06037,1,0 +2020-02-19,Los Angeles,California,06037,1,0 +2020-02-20,Los Angeles,California,06037,1,0 +2020-02-21,Los Angeles,California,06037,1,0 +2020-02-22,Los Angeles,California,06037,1,0 +2020-02-23,Los Angeles,California,06037,1,0 +2020-02-24,Los Angeles,California,06037,1,0 +2020-02-25,Los Angeles,California,06037,1,0 +2020-02-26,Los Angeles,California,06037,1,0 +2020-02-27,Los Angeles,California,06037,1,0 +2020-02-28,Los Angeles,California,06037,1,0 +2020-02-29,Los Angeles,California,06037,1,0 +2020-03-01,Los Angeles,California,06037,1,0 +2020-03-02,Los Angeles,California,06037,1,0 +2020-03-03,Los Angeles,California,06037,1,0 +2020-03-04,Los Angeles,California,06037,7,0 +2020-03-05,Los Angeles,California,06037,11,0 +2020-03-06,Los Angeles,California,06037,13,0 +2020-03-07,Los Angeles,California,06037,14,0 +2020-03-08,Los Angeles,California,06037,14,0 +2020-03-09,Los Angeles,California,06037,19,0 +2020-03-10,Los Angeles,California,06037,20,0 +2020-03-11,Los Angeles,California,06037,28,1 +2020-03-12,Los Angeles,California,06037,32,1 +2020-03-13,Los Angeles,California,06037,40,1 +2020-03-14,Los Angeles,California,06037,53,1 +2020-03-15,Los Angeles,California,06037,69,1 +2020-03-16,Los Angeles,California,06037,94,1 +2020-03-17,Los Angeles,California,06037,144,1 +2020-03-18,Los Angeles,California,06037,190,1 +2020-03-19,Los Angeles,California,06037,231,2 +2020-03-20,Los Angeles,California,06037,292,2 +2020-03-21,Los Angeles,California,06037,351,4 +2020-03-22,Los Angeles,California,06037,421,5 +2020-03-23,Los Angeles,California,06037,536,7 +2020-03-24,Los Angeles,California,06037,662,11 +2020-03-25,Los Angeles,California,06037,799,13 +2020-03-26,Los Angeles,California,06037,1216,21 +2020-03-27,Los Angeles,California,06037,1465,27 +2020-03-28,Los Angeles,California,06037,1804,33 +2020-03-29,Los Angeles,California,06037,2136,37 +2020-03-30,Los Angeles,California,06037,2474,44 +2020-03-31,Los Angeles,California,06037,3011,54 +2020-04-01,Los Angeles,California,06037,3518,65 +2020-04-02,Los Angeles,California,06037,4045,78 +2020-04-03,Los Angeles,California,06037,4566,89 +2020-04-04,Los Angeles,California,06037,5277,117 +2020-04-05,Los Angeles,California,06037,5940,132 +2020-04-06,Los Angeles,California,06037,6360,147 +2020-04-07,Los Angeles,California,06037,6910,169 +2020-04-08,Los Angeles,California,06037,7530,198 +2020-04-09,Los Angeles,California,06037,7955,223 +2020-04-10,Los Angeles,California,06037,8430,241 +2020-04-11,Los Angeles,California,06037,8873,265 +2020-04-12,Los Angeles,California,06037,9192,296 +2020-04-13,Los Angeles,California,06037,9420,320 +2020-04-14,Los Angeles,California,06037,10047,360 +2020-04-15,Los Angeles,California,06037,10496,402 +2020-04-16,Los Angeles,California,06037,10854,455 +2020-04-17,Los Angeles,California,06037,11391,495 +2020-04-18,Los Angeles,California,06037,12021,576 +2020-04-19,Los Angeles,California,06037,12341,600 +2020-04-20,Los Angeles,California,06037,13816,617 +2020-04-21,Los Angeles,California,06037,15140,663 +2020-04-22,Los Angeles,California,06037,16435,729 +2020-04-23,Los Angeles,California,06037,17508,797 +2020-04-24,Los Angeles,California,06037,18545,850 +2020-04-25,Los Angeles,California,06037,19107,895 +2020-04-26,Los Angeles,California,06037,19528,913 +2020-04-27,Los Angeles,California,06037,20417,942 +2020-04-28,Los Angeles,California,06037,20976,1000 +2020-04-29,Los Angeles,California,06037,22485,1056 +2020-04-30,Los Angeles,California,06037,23182,1111 +2020-05-01,Los Angeles,California,06037,24215,1172 +2020-05-02,Los Angeles,California,06037,24894,1209 +2020-05-03,Los Angeles,California,06037,25662,1229 +2020-05-04,Los Angeles,California,06037,26217,1256 +2020-05-05,Los Angeles,California,06037,27815,1313 +2020-05-06,Los Angeles,California,06037,28644,1367 +2020-05-07,Los Angeles,California,06037,29427,1418 +2020-05-08,Los Angeles,California,06037,30296,1468 +2020-05-09,Los Angeles,California,06037,31197,1512 +2020-05-10,Los Angeles,California,06037,31677,1530 +2020-05-11,Los Angeles,California,06037,32258,1569 +2020-05-12,Los Angeles,California,06037,33180,1613 +2020-05-13,Los Angeles,California,06037,34428,1659 +2020-05-14,Los Angeles,California,06037,35329,1659 +2020-05-15,Los Angeles,California,06037,36259,1755 +2020-05-16,Los Angeles,California,06037,37303,1793 +2020-05-17,Los Angeles,California,06037,37974,1821 +2020-05-18,Los Angeles,California,06037,38451,1839 +2020-05-19,Los Angeles,California,06037,39573,1913 +2020-05-20,Los Angeles,California,06037,40857,1970 +2020-05-21,Los Angeles,California,06037,42037,2016 +2020-05-22,Los Angeles,California,06037,43052,2049 +2020-05-23,Los Angeles,California,06037,44055,2090 +2020-05-24,Los Angeles,California,06037,44988,2104 +2020-05-25,Los Angeles,California,06037,46018,2116 +2020-05-26,Los Angeles,California,06037,47822,2143 +2020-05-27,Los Angeles,California,06037,48700,2195 +2020-05-28,Los Angeles,California,06037,49774,2241 +2020-05-29,Los Angeles,California,06037,51562,2290 +2020-05-30,Los Angeles,California,06037,53651,2338 +2020-05-31,Los Angeles,California,06037,54996,2362 +2020-06-01,Los Angeles,California,06037,55968,2384 +2020-06-02,Los Angeles,California,06037,57118,2443 +2020-06-03,Los Angeles,California,06037,58234,2489 +2020-06-04,Los Angeles,California,06037,59650,2531 +2020-06-05,Los Angeles,California,06037,61045,2565 +2020-06-06,Los Angeles,California,06037,62338,2620 +2020-06-07,Los Angeles,California,06037,63844,2645 +2020-06-08,Los Angeles,California,06037,64644,2655 +2020-06-09,Los Angeles,California,06037,65822,2707 +2020-06-10,Los Angeles,California,06037,67064,2768 +2020-06-11,Los Angeles,California,06037,68875,2813 +2020-06-12,Los Angeles,California,06037,70476,2832 +2020-06-13,Los Angeles,California,06037,72023,2890 +2020-06-14,Los Angeles,California,06037,73018,2907 +2020-06-15,Los Angeles,California,06037,73791,2926 +2020-06-16,Los Angeles,California,06037,75084,2959 +2020-06-17,Los Angeles,California,06037,77189,2991 +2020-06-18,Los Angeles,California,06037,78227,3027 +2020-06-19,Los Angeles,California,06037,79609,3063 +2020-06-20,Los Angeles,California,06037,81636,3110 +2020-06-21,Los Angeles,California,06037,83397,3120 +2020-06-22,Los Angeles,California,06037,85942,3137 +2020-06-23,Los Angeles,California,06037,88262,3171 +2020-06-24,Los Angeles,California,06037,89490,3205 +2020-06-25,Los Angeles,California,06037,91467,3246 +2020-06-26,Los Angeles,California,06037,93232,3267 +2020-06-27,Los Angeles,California,06037,95371,3285 +2020-06-28,Los Angeles,California,06037,97894,3305 +2020-06-29,Los Angeles,California,06037,100772,3326 +2020-06-30,Los Angeles,California,06037,103529,3369 +2020-07-01,Los Angeles,California,06037,105507,3402 +2020-07-02,Los Angeles,California,06037,107667,3454 +2020-07-03,Los Angeles,California,06037,110310,3454 +2020-07-04,Los Angeles,California,06037,113497,3454 +2020-07-05,Los Angeles,California,06037,114993,3487 +2020-07-06,Los Angeles,California,06037,116570,3534 +2020-07-07,Los Angeles,California,06037,120539,3579 +2020-07-08,Los Angeles,California,06037,123004,3642 +2020-07-09,Los Angeles,California,06037,124738,3689 +2020-03-07,Madera,California,06039,1,0 +2020-03-08,Madera,California,06039,1,0 +2020-03-09,Madera,California,06039,1,0 +2020-03-10,Madera,California,06039,1,0 +2020-03-11,Madera,California,06039,1,0 +2020-03-12,Madera,California,06039,1,0 +2020-03-13,Madera,California,06039,1,0 +2020-03-14,Madera,California,06039,1,0 +2020-03-15,Madera,California,06039,1,0 +2020-03-16,Madera,California,06039,1,0 +2020-03-17,Madera,California,06039,1,0 +2020-03-18,Madera,California,06039,1,0 +2020-03-19,Madera,California,06039,3,0 +2020-03-20,Madera,California,06039,3,0 +2020-03-21,Madera,California,06039,3,0 +2020-03-22,Madera,California,06039,3,0 +2020-03-23,Madera,California,06039,6,0 +2020-03-24,Madera,California,06039,6,0 +2020-03-25,Madera,California,06039,7,0 +2020-03-26,Madera,California,06039,7,0 +2020-03-27,Madera,California,06039,11,1 +2020-03-28,Madera,California,06039,15,1 +2020-03-29,Madera,California,06039,18,1 +2020-03-30,Madera,California,06039,21,1 +2020-03-31,Madera,California,06039,23,1 +2020-04-01,Madera,California,06039,23,1 +2020-04-02,Madera,California,06039,28,1 +2020-04-03,Madera,California,06039,28,2 +2020-04-04,Madera,California,06039,30,2 +2020-04-05,Madera,California,06039,30,2 +2020-04-06,Madera,California,06039,28,2 +2020-04-07,Madera,California,06039,30,2 +2020-04-08,Madera,California,06039,30,2 +2020-04-09,Madera,California,06039,30,2 +2020-04-10,Madera,California,06039,32,2 +2020-04-11,Madera,California,06039,32,2 +2020-04-12,Madera,California,06039,33,2 +2020-04-13,Madera,California,06039,33,2 +2020-04-14,Madera,California,06039,33,2 +2020-04-15,Madera,California,06039,33,2 +2020-04-16,Madera,California,06039,33,2 +2020-04-17,Madera,California,06039,33,2 +2020-04-18,Madera,California,06039,34,2 +2020-04-19,Madera,California,06039,34,2 +2020-04-20,Madera,California,06039,36,2 +2020-04-21,Madera,California,06039,36,2 +2020-04-22,Madera,California,06039,36,2 +2020-04-23,Madera,California,06039,39,2 +2020-04-24,Madera,California,06039,39,2 +2020-04-25,Madera,California,06039,40,2 +2020-04-26,Madera,California,06039,41,2 +2020-04-27,Madera,California,06039,44,2 +2020-04-28,Madera,California,06039,45,2 +2020-04-29,Madera,California,06039,46,2 +2020-04-30,Madera,California,06039,46,2 +2020-05-01,Madera,California,06039,46,2 +2020-05-02,Madera,California,06039,51,2 +2020-05-03,Madera,California,06039,51,2 +2020-05-04,Madera,California,06039,54,2 +2020-05-05,Madera,California,06039,54,2 +2020-05-06,Madera,California,06039,55,2 +2020-05-07,Madera,California,06039,62,2 +2020-05-08,Madera,California,06039,66,2 +2020-05-09,Madera,California,06039,67,2 +2020-05-10,Madera,California,06039,67,2 +2020-05-11,Madera,California,06039,67,2 +2020-05-12,Madera,California,06039,69,2 +2020-05-13,Madera,California,06039,69,2 +2020-05-14,Madera,California,06039,69,2 +2020-05-15,Madera,California,06039,70,2 +2020-05-16,Madera,California,06039,71,2 +2020-05-17,Madera,California,06039,71,2 +2020-05-18,Madera,California,06039,78,2 +2020-05-19,Madera,California,06039,81,2 +2020-05-20,Madera,California,06039,82,2 +2020-05-21,Madera,California,06039,83,2 +2020-05-22,Madera,California,06039,82,2 +2020-05-23,Madera,California,06039,84,2 +2020-05-24,Madera,California,06039,84,2 +2020-05-25,Madera,California,06039,85,2 +2020-05-26,Madera,California,06039,90,2 +2020-05-27,Madera,California,06039,94,2 +2020-05-28,Madera,California,06039,98,2 +2020-05-29,Madera,California,06039,104,2 +2020-05-30,Madera,California,06039,104,2 +2020-05-31,Madera,California,06039,106,2 +2020-06-01,Madera,California,06039,114,2 +2020-06-02,Madera,California,06039,117,3 +2020-06-03,Madera,California,06039,129,3 +2020-06-04,Madera,California,06039,141,3 +2020-06-05,Madera,California,06039,155,3 +2020-06-06,Madera,California,06039,163,3 +2020-06-07,Madera,California,06039,163,3 +2020-06-08,Madera,California,06039,172,3 +2020-06-09,Madera,California,06039,174,3 +2020-06-10,Madera,California,06039,178,3 +2020-06-11,Madera,California,06039,188,3 +2020-06-12,Madera,California,06039,198,3 +2020-06-13,Madera,California,06039,198,3 +2020-06-14,Madera,California,06039,203,3 +2020-06-15,Madera,California,06039,226,3 +2020-06-16,Madera,California,06039,250,4 +2020-06-17,Madera,California,06039,275,4 +2020-06-18,Madera,California,06039,295,4 +2020-06-19,Madera,California,06039,314,4 +2020-06-20,Madera,California,06039,314,4 +2020-06-21,Madera,California,06039,321,4 +2020-06-22,Madera,California,06039,334,5 +2020-06-23,Madera,California,06039,359,5 +2020-06-24,Madera,California,06039,370,5 +2020-06-25,Madera,California,06039,383,5 +2020-06-26,Madera,California,06039,415,5 +2020-06-27,Madera,California,06039,415,5 +2020-06-28,Madera,California,06039,427,5 +2020-06-29,Madera,California,06039,488,5 +2020-06-30,Madera,California,06039,519,5 +2020-07-01,Madera,California,06039,541,5 +2020-07-02,Madera,California,06039,566,5 +2020-07-03,Madera,California,06039,578,5 +2020-07-04,Madera,California,06039,578,5 +2020-07-05,Madera,California,06039,578,5 +2020-07-06,Madera,California,06039,713,7 +2020-07-07,Madera,California,06039,784,7 +2020-07-08,Madera,California,06039,857,8 +2020-07-09,Madera,California,06039,857,8 +2020-02-26,Marin,California,06041,1,0 +2020-02-27,Marin,California,06041,1,0 +2020-02-28,Marin,California,06041,1,0 +2020-02-29,Marin,California,06041,1,0 +2020-03-01,Marin,California,06041,1,0 +2020-03-02,Marin,California,06041,1,0 +2020-03-03,Marin,California,06041,1,0 +2020-03-04,Marin,California,06041,1,0 +2020-03-05,Marin,California,06041,1,0 +2020-03-06,Marin,California,06041,1,0 +2020-03-07,Marin,California,06041,1,0 +2020-03-08,Marin,California,06041,1,0 +2020-03-09,Marin,California,06041,2,0 +2020-03-10,Marin,California,06041,2,0 +2020-03-11,Marin,California,06041,4,0 +2020-03-12,Marin,California,06041,4,0 +2020-03-13,Marin,California,06041,4,0 +2020-03-14,Marin,California,06041,4,0 +2020-03-15,Marin,California,06041,4,0 +2020-03-16,Marin,California,06041,4,0 +2020-03-17,Marin,California,06041,4,0 +2020-03-18,Marin,California,06041,16,0 +2020-03-19,Marin,California,06041,25,0 +2020-03-20,Marin,California,06041,38,0 +2020-03-21,Marin,California,06041,38,0 +2020-03-22,Marin,California,06041,38,0 +2020-03-23,Marin,California,06041,47,0 +2020-03-24,Marin,California,06041,53,0 +2020-03-25,Marin,California,06041,53,0 +2020-03-26,Marin,California,06041,65,0 +2020-03-27,Marin,California,06041,69,1 +2020-03-28,Marin,California,06041,74,1 +2020-03-29,Marin,California,06041,93,1 +2020-03-30,Marin,California,06041,99,1 +2020-03-31,Marin,California,06041,102,4 +2020-04-01,Marin,California,06041,108,4 +2020-04-02,Marin,California,06041,118,6 +2020-04-03,Marin,California,06041,131,6 +2020-04-04,Marin,California,06041,137,7 +2020-04-05,Marin,California,06041,141,7 +2020-04-06,Marin,California,06041,143,9 +2020-04-07,Marin,California,06041,148,10 +2020-04-08,Marin,California,06041,149,10 +2020-04-09,Marin,California,06041,154,10 +2020-04-10,Marin,California,06041,154,10 +2020-04-11,Marin,California,06041,153,10 +2020-04-12,Marin,California,06041,164,10 +2020-04-13,Marin,California,06041,170,10 +2020-04-14,Marin,California,06041,171,10 +2020-04-15,Marin,California,06041,184,10 +2020-04-16,Marin,California,06041,187,10 +2020-04-17,Marin,California,06041,187,10 +2020-04-18,Marin,California,06041,189,10 +2020-04-19,Marin,California,06041,195,10 +2020-04-20,Marin,California,06041,199,10 +2020-04-21,Marin,California,06041,200,10 +2020-04-22,Marin,California,06041,203,11 +2020-04-23,Marin,California,06041,209,11 +2020-04-24,Marin,California,06041,212,12 +2020-04-25,Marin,California,06041,223,12 +2020-04-26,Marin,California,06041,224,12 +2020-04-27,Marin,California,06041,225,12 +2020-04-28,Marin,California,06041,227,12 +2020-04-29,Marin,California,06041,235,13 +2020-04-30,Marin,California,06041,237,13 +2020-05-01,Marin,California,06041,240,13 +2020-05-02,Marin,California,06041,242,13 +2020-05-03,Marin,California,06041,243,13 +2020-05-04,Marin,California,06041,243,13 +2020-05-05,Marin,California,06041,244,13 +2020-05-06,Marin,California,06041,244,14 +2020-05-07,Marin,California,06041,244,14 +2020-05-08,Marin,California,06041,252,14 +2020-05-09,Marin,California,06041,257,14 +2020-05-10,Marin,California,06041,261,14 +2020-05-11,Marin,California,06041,267,14 +2020-05-12,Marin,California,06041,271,14 +2020-05-13,Marin,California,06041,274,14 +2020-05-14,Marin,California,06041,278,14 +2020-05-15,Marin,California,06041,283,14 +2020-05-16,Marin,California,06041,299,14 +2020-05-17,Marin,California,06041,317,14 +2020-05-18,Marin,California,06041,329,14 +2020-05-19,Marin,California,06041,336,14 +2020-05-20,Marin,California,06041,343,14 +2020-05-21,Marin,California,06041,352,14 +2020-05-22,Marin,California,06041,369,14 +2020-05-23,Marin,California,06041,388,14 +2020-05-24,Marin,California,06041,403,14 +2020-05-25,Marin,California,06041,417,14 +2020-05-26,Marin,California,06041,420,14 +2020-05-27,Marin,California,06041,430,14 +2020-05-28,Marin,California,06041,439,14 +2020-05-29,Marin,California,06041,450,14 +2020-05-30,Marin,California,06041,466,14 +2020-05-31,Marin,California,06041,483,14 +2020-06-01,Marin,California,06041,501,15 +2020-06-02,Marin,California,06041,506,17 +2020-06-03,Marin,California,06041,525,17 +2020-06-04,Marin,California,06041,530,17 +2020-06-05,Marin,California,06041,551,17 +2020-06-06,Marin,California,06041,571,17 +2020-06-07,Marin,California,06041,589,17 +2020-06-08,Marin,California,06041,625,17 +2020-06-09,Marin,California,06041,635,17 +2020-06-10,Marin,California,06041,651,17 +2020-06-11,Marin,California,06041,664,17 +2020-06-12,Marin,California,06041,692,17 +2020-06-13,Marin,California,06041,713,17 +2020-06-14,Marin,California,06041,730,17 +2020-06-15,Marin,California,06041,751,17 +2020-06-16,Marin,California,06041,805,18 +2020-06-17,Marin,California,06041,842,18 +2020-06-18,Marin,California,06041,861,18 +2020-06-19,Marin,California,06041,917,18 +2020-06-20,Marin,California,06041,1030,18 +2020-06-21,Marin,California,06041,1110,18 +2020-06-22,Marin,California,06041,1250,18 +2020-06-23,Marin,California,06041,1349,18 +2020-06-24,Marin,California,06041,1470,18 +2020-06-25,Marin,California,06041,1573,18 +2020-06-26,Marin,California,06041,1636,18 +2020-06-27,Marin,California,06041,1746,18 +2020-06-28,Marin,California,06041,1998,18 +2020-06-29,Marin,California,06041,2210,18 +2020-06-30,Marin,California,06041,2289,18 +2020-07-01,Marin,California,06041,2394,19 +2020-07-02,Marin,California,06041,2446,19 +2020-07-03,Marin,California,06041,2656,19 +2020-07-04,Marin,California,06041,2656,19 +2020-07-05,Marin,California,06041,2656,19 +2020-07-06,Marin,California,06041,2871,19 +2020-07-07,Marin,California,06041,2881,20 +2020-07-08,Marin,California,06041,2891,23 +2020-07-09,Marin,California,06041,2965,23 +2020-04-28,Mariposa,California,06043,1,0 +2020-04-29,Mariposa,California,06043,1,0 +2020-04-30,Mariposa,California,06043,3,0 +2020-05-01,Mariposa,California,06043,13,0 +2020-05-02,Mariposa,California,06043,13,0 +2020-05-03,Mariposa,California,06043,13,0 +2020-05-04,Mariposa,California,06043,14,0 +2020-05-05,Mariposa,California,06043,14,0 +2020-05-06,Mariposa,California,06043,15,0 +2020-05-07,Mariposa,California,06043,15,0 +2020-05-08,Mariposa,California,06043,15,0 +2020-05-09,Mariposa,California,06043,15,0 +2020-05-10,Mariposa,California,06043,15,0 +2020-05-11,Mariposa,California,06043,15,0 +2020-05-12,Mariposa,California,06043,15,0 +2020-05-13,Mariposa,California,06043,15,0 +2020-05-14,Mariposa,California,06043,15,0 +2020-05-15,Mariposa,California,06043,15,1 +2020-05-16,Mariposa,California,06043,15,1 +2020-05-17,Mariposa,California,06043,15,1 +2020-05-18,Mariposa,California,06043,15,1 +2020-05-19,Mariposa,California,06043,15,1 +2020-05-20,Mariposa,California,06043,15,1 +2020-05-21,Mariposa,California,06043,15,1 +2020-05-22,Mariposa,California,06043,15,1 +2020-05-23,Mariposa,California,06043,15,1 +2020-05-24,Mariposa,California,06043,15,1 +2020-05-25,Mariposa,California,06043,15,1 +2020-05-26,Mariposa,California,06043,16,1 +2020-05-27,Mariposa,California,06043,16,1 +2020-05-28,Mariposa,California,06043,16,1 +2020-05-29,Mariposa,California,06043,16,1 +2020-05-30,Mariposa,California,06043,16,1 +2020-05-31,Mariposa,California,06043,16,1 +2020-06-01,Mariposa,California,06043,16,1 +2020-06-02,Mariposa,California,06043,16,1 +2020-06-03,Mariposa,California,06043,16,1 +2020-06-04,Mariposa,California,06043,16,1 +2020-06-05,Mariposa,California,06043,16,1 +2020-06-06,Mariposa,California,06043,16,1 +2020-06-07,Mariposa,California,06043,16,1 +2020-06-08,Mariposa,California,06043,16,1 +2020-06-09,Mariposa,California,06043,16,1 +2020-06-10,Mariposa,California,06043,16,1 +2020-06-11,Mariposa,California,06043,16,1 +2020-06-12,Mariposa,California,06043,16,1 +2020-06-13,Mariposa,California,06043,16,1 +2020-06-14,Mariposa,California,06043,16,1 +2020-06-15,Mariposa,California,06043,17,1 +2020-06-16,Mariposa,California,06043,17,1 +2020-06-17,Mariposa,California,06043,18,1 +2020-06-18,Mariposa,California,06043,18,1 +2020-06-19,Mariposa,California,06043,18,1 +2020-06-20,Mariposa,California,06043,18,1 +2020-06-21,Mariposa,California,06043,18,1 +2020-06-22,Mariposa,California,06043,18,1 +2020-06-23,Mariposa,California,06043,21,1 +2020-06-24,Mariposa,California,06043,21,1 +2020-06-25,Mariposa,California,06043,22,1 +2020-06-26,Mariposa,California,06043,23,1 +2020-06-27,Mariposa,California,06043,23,1 +2020-06-28,Mariposa,California,06043,23,1 +2020-06-29,Mariposa,California,06043,25,1 +2020-06-30,Mariposa,California,06043,26,1 +2020-07-01,Mariposa,California,06043,27,1 +2020-07-02,Mariposa,California,06043,29,1 +2020-07-03,Mariposa,California,06043,28,1 +2020-07-04,Mariposa,California,06043,28,1 +2020-07-05,Mariposa,California,06043,28,1 +2020-07-06,Mariposa,California,06043,31,1 +2020-07-07,Mariposa,California,06043,31,1 +2020-07-08,Mariposa,California,06043,31,1 +2020-07-09,Mariposa,California,06043,31,1 +2020-03-18,Mendocino,California,06045,1,0 +2020-03-19,Mendocino,California,06045,1,0 +2020-03-20,Mendocino,California,06045,1,0 +2020-03-21,Mendocino,California,06045,1,0 +2020-03-22,Mendocino,California,06045,1,0 +2020-03-23,Mendocino,California,06045,1,0 +2020-03-24,Mendocino,California,06045,2,0 +2020-03-25,Mendocino,California,06045,2,0 +2020-03-26,Mendocino,California,06045,2,0 +2020-03-27,Mendocino,California,06045,2,0 +2020-03-28,Mendocino,California,06045,2,0 +2020-03-29,Mendocino,California,06045,3,0 +2020-03-30,Mendocino,California,06045,4,0 +2020-03-31,Mendocino,California,06045,4,0 +2020-04-01,Mendocino,California,06045,4,0 +2020-04-02,Mendocino,California,06045,4,0 +2020-04-03,Mendocino,California,06045,4,0 +2020-04-04,Mendocino,California,06045,4,0 +2020-04-05,Mendocino,California,06045,4,0 +2020-04-06,Mendocino,California,06045,4,0 +2020-04-07,Mendocino,California,06045,4,0 +2020-04-08,Mendocino,California,06045,4,0 +2020-04-09,Mendocino,California,06045,4,0 +2020-04-10,Mendocino,California,06045,4,0 +2020-04-11,Mendocino,California,06045,4,0 +2020-04-12,Mendocino,California,06045,4,0 +2020-04-13,Mendocino,California,06045,4,0 +2020-04-14,Mendocino,California,06045,4,0 +2020-04-15,Mendocino,California,06045,4,0 +2020-04-16,Mendocino,California,06045,4,0 +2020-04-17,Mendocino,California,06045,4,0 +2020-04-18,Mendocino,California,06045,5,0 +2020-04-19,Mendocino,California,06045,5,0 +2020-04-20,Mendocino,California,06045,5,0 +2020-04-21,Mendocino,California,06045,5,0 +2020-04-22,Mendocino,California,06045,5,0 +2020-04-23,Mendocino,California,06045,5,0 +2020-04-24,Mendocino,California,06045,11,0 +2020-04-25,Mendocino,California,06045,11,0 +2020-04-26,Mendocino,California,06045,11,0 +2020-04-27,Mendocino,California,06045,11,0 +2020-04-28,Mendocino,California,06045,11,0 +2020-04-29,Mendocino,California,06045,12,0 +2020-04-30,Mendocino,California,06045,12,0 +2020-05-01,Mendocino,California,06045,12,0 +2020-05-02,Mendocino,California,06045,12,0 +2020-05-03,Mendocino,California,06045,12,0 +2020-05-04,Mendocino,California,06045,12,0 +2020-05-05,Mendocino,California,06045,12,0 +2020-05-06,Mendocino,California,06045,40,0 +2020-05-07,Mendocino,California,06045,12,0 +2020-05-08,Mendocino,California,06045,12,0 +2020-05-09,Mendocino,California,06045,12,0 +2020-05-10,Mendocino,California,06045,12,0 +2020-05-11,Mendocino,California,06045,12,0 +2020-05-12,Mendocino,California,06045,12,0 +2020-05-13,Mendocino,California,06045,13,0 +2020-05-14,Mendocino,California,06045,13,0 +2020-05-15,Mendocino,California,06045,13,0 +2020-05-16,Mendocino,California,06045,13,0 +2020-05-17,Mendocino,California,06045,14,0 +2020-05-18,Mendocino,California,06045,14,0 +2020-05-19,Mendocino,California,06045,15,0 +2020-05-20,Mendocino,California,06045,15,0 +2020-05-21,Mendocino,California,06045,15,0 +2020-05-22,Mendocino,California,06045,21,0 +2020-05-23,Mendocino,California,06045,21,0 +2020-05-24,Mendocino,California,06045,21,0 +2020-05-25,Mendocino,California,06045,22,0 +2020-05-26,Mendocino,California,06045,23,0 +2020-05-27,Mendocino,California,06045,25,0 +2020-05-28,Mendocino,California,06045,30,0 +2020-05-29,Mendocino,California,06045,30,0 +2020-05-30,Mendocino,California,06045,30,0 +2020-05-31,Mendocino,California,06045,30,0 +2020-06-01,Mendocino,California,06045,30,0 +2020-06-02,Mendocino,California,06045,30,0 +2020-06-03,Mendocino,California,06045,33,0 +2020-06-04,Mendocino,California,06045,33,0 +2020-06-05,Mendocino,California,06045,33,0 +2020-06-06,Mendocino,California,06045,33,0 +2020-06-07,Mendocino,California,06045,33,0 +2020-06-08,Mendocino,California,06045,36,0 +2020-06-09,Mendocino,California,06045,36,0 +2020-06-10,Mendocino,California,06045,36,0 +2020-06-11,Mendocino,California,06045,36,0 +2020-06-12,Mendocino,California,06045,38,0 +2020-06-13,Mendocino,California,06045,38,0 +2020-06-14,Mendocino,California,06045,38,0 +2020-06-15,Mendocino,California,06045,45,0 +2020-06-16,Mendocino,California,06045,47,0 +2020-06-17,Mendocino,California,06045,47,0 +2020-06-18,Mendocino,California,06045,54,0 +2020-06-19,Mendocino,California,06045,54,0 +2020-06-20,Mendocino,California,06045,54,0 +2020-06-21,Mendocino,California,06045,54,0 +2020-06-22,Mendocino,California,06045,62,0 +2020-06-23,Mendocino,California,06045,72,0 +2020-06-24,Mendocino,California,06045,72,0 +2020-06-25,Mendocino,California,06045,74,0 +2020-06-26,Mendocino,California,06045,76,0 +2020-06-27,Mendocino,California,06045,76,0 +2020-06-28,Mendocino,California,06045,76,0 +2020-06-29,Mendocino,California,06045,76,0 +2020-06-30,Mendocino,California,06045,83,0 +2020-07-01,Mendocino,California,06045,85,0 +2020-07-02,Mendocino,California,06045,85,0 +2020-07-03,Mendocino,California,06045,85,0 +2020-07-04,Mendocino,California,06045,85,0 +2020-07-05,Mendocino,California,06045,85,0 +2020-07-06,Mendocino,California,06045,92,0 +2020-07-07,Mendocino,California,06045,92,0 +2020-07-08,Mendocino,California,06045,107,0 +2020-07-09,Mendocino,California,06045,107,0 +2020-03-24,Merced,California,06047,1,0 +2020-03-25,Merced,California,06047,1,0 +2020-03-26,Merced,California,06047,4,0 +2020-03-27,Merced,California,06047,7,0 +2020-03-28,Merced,California,06047,7,0 +2020-03-29,Merced,California,06047,8,0 +2020-03-30,Merced,California,06047,9,0 +2020-03-31,Merced,California,06047,10,0 +2020-04-01,Merced,California,06047,10,0 +2020-04-02,Merced,California,06047,16,0 +2020-04-03,Merced,California,06047,16,0 +2020-04-04,Merced,California,06047,16,0 +2020-04-05,Merced,California,06047,29,1 +2020-04-06,Merced,California,06047,29,1 +2020-04-07,Merced,California,06047,34,1 +2020-04-08,Merced,California,06047,40,3 +2020-04-09,Merced,California,06047,40,3 +2020-04-10,Merced,California,06047,59,3 +2020-04-11,Merced,California,06047,64,3 +2020-04-12,Merced,California,06047,65,3 +2020-04-13,Merced,California,06047,69,3 +2020-04-14,Merced,California,06047,74,3 +2020-04-15,Merced,California,06047,78,3 +2020-04-16,Merced,California,06047,82,3 +2020-04-17,Merced,California,06047,85,3 +2020-04-18,Merced,California,06047,87,3 +2020-04-19,Merced,California,06047,90,3 +2020-04-20,Merced,California,06047,90,3 +2020-04-21,Merced,California,06047,92,3 +2020-04-22,Merced,California,06047,94,3 +2020-04-23,Merced,California,06047,100,3 +2020-04-24,Merced,California,06047,102,3 +2020-04-25,Merced,California,06047,102,3 +2020-04-26,Merced,California,06047,105,3 +2020-04-27,Merced,California,06047,110,3 +2020-04-28,Merced,California,06047,116,3 +2020-04-29,Merced,California,06047,118,3 +2020-04-30,Merced,California,06047,125,3 +2020-05-01,Merced,California,06047,134,3 +2020-05-02,Merced,California,06047,140,3 +2020-05-03,Merced,California,06047,142,3 +2020-05-04,Merced,California,06047,146,3 +2020-05-05,Merced,California,06047,146,3 +2020-05-06,Merced,California,06047,152,3 +2020-05-07,Merced,California,06047,155,3 +2020-05-08,Merced,California,06047,163,3 +2020-05-09,Merced,California,06047,163,3 +2020-05-10,Merced,California,06047,163,3 +2020-05-11,Merced,California,06047,173,3 +2020-05-12,Merced,California,06047,177,4 +2020-05-13,Merced,California,06047,180,4 +2020-05-14,Merced,California,06047,189,4 +2020-05-15,Merced,California,06047,200,6 +2020-05-16,Merced,California,06047,200,6 +2020-05-17,Merced,California,06047,201,6 +2020-05-18,Merced,California,06047,220,6 +2020-05-19,Merced,California,06047,222,6 +2020-05-20,Merced,California,06047,222,6 +2020-05-21,Merced,California,06047,234,6 +2020-05-22,Merced,California,06047,251,6 +2020-05-23,Merced,California,06047,251,6 +2020-05-24,Merced,California,06047,251,6 +2020-05-25,Merced,California,06047,258,6 +2020-05-26,Merced,California,06047,273,7 +2020-05-27,Merced,California,06047,278,7 +2020-05-28,Merced,California,06047,280,7 +2020-05-29,Merced,California,06047,283,7 +2020-05-30,Merced,California,06047,285,7 +2020-05-31,Merced,California,06047,285,7 +2020-06-01,Merced,California,06047,301,7 +2020-06-02,Merced,California,06047,308,7 +2020-06-03,Merced,California,06047,310,7 +2020-06-04,Merced,California,06047,320,7 +2020-06-05,Merced,California,06047,334,7 +2020-06-06,Merced,California,06047,334,7 +2020-06-07,Merced,California,06047,334,7 +2020-06-08,Merced,California,06047,367,7 +2020-06-09,Merced,California,06047,372,7 +2020-06-10,Merced,California,06047,387,7 +2020-06-11,Merced,California,06047,391,7 +2020-06-12,Merced,California,06047,409,7 +2020-06-13,Merced,California,06047,409,7 +2020-06-14,Merced,California,06047,409,7 +2020-06-15,Merced,California,06047,409,7 +2020-06-16,Merced,California,06047,470,7 +2020-06-17,Merced,California,06047,518,8 +2020-06-18,Merced,California,06047,538,8 +2020-06-19,Merced,California,06047,564,8 +2020-06-20,Merced,California,06047,564,8 +2020-06-21,Merced,California,06047,566,8 +2020-06-22,Merced,California,06047,661,9 +2020-06-23,Merced,California,06047,710,9 +2020-06-24,Merced,California,06047,741,10 +2020-06-25,Merced,California,06047,791,11 +2020-06-26,Merced,California,06047,824,11 +2020-06-27,Merced,California,06047,824,11 +2020-06-28,Merced,California,06047,824,11 +2020-06-29,Merced,California,06047,824,11 +2020-06-30,Merced,California,06047,848,11 +2020-07-01,Merced,California,06047,1131,11 +2020-07-02,Merced,California,06047,1208,11 +2020-07-03,Merced,California,06047,1272,11 +2020-07-04,Merced,California,06047,1272,11 +2020-07-05,Merced,California,06047,1272,11 +2020-07-06,Merced,California,06047,1530,11 +2020-07-07,Merced,California,06047,1623,11 +2020-07-08,Merced,California,06047,1702,12 +2020-07-09,Merced,California,06047,1793,12 +2020-03-24,Mono,California,06051,2,0 +2020-03-25,Mono,California,06051,4,0 +2020-03-26,Mono,California,06051,6,0 +2020-03-27,Mono,California,06051,8,0 +2020-03-28,Mono,California,06051,8,0 +2020-03-29,Mono,California,06051,11,0 +2020-03-30,Mono,California,06051,13,0 +2020-03-31,Mono,California,06051,13,1 +2020-04-01,Mono,California,06051,13,1 +2020-04-02,Mono,California,06051,18,1 +2020-04-03,Mono,California,06051,19,1 +2020-04-04,Mono,California,06051,19,1 +2020-04-05,Mono,California,06051,19,1 +2020-04-06,Mono,California,06051,19,1 +2020-04-07,Mono,California,06051,19,1 +2020-04-08,Mono,California,06051,20,1 +2020-04-09,Mono,California,06051,20,1 +2020-04-10,Mono,California,06051,21,1 +2020-04-11,Mono,California,06051,21,1 +2020-04-12,Mono,California,06051,23,1 +2020-04-13,Mono,California,06051,23,1 +2020-04-14,Mono,California,06051,23,1 +2020-04-15,Mono,California,06051,23,1 +2020-04-16,Mono,California,06051,23,1 +2020-04-17,Mono,California,06051,23,1 +2020-04-18,Mono,California,06051,23,1 +2020-04-19,Mono,California,06051,23,1 +2020-04-20,Mono,California,06051,24,1 +2020-04-21,Mono,California,06051,24,1 +2020-04-22,Mono,California,06051,24,1 +2020-04-23,Mono,California,06051,24,1 +2020-04-24,Mono,California,06051,24,1 +2020-04-25,Mono,California,06051,24,1 +2020-04-26,Mono,California,06051,24,1 +2020-04-27,Mono,California,06051,26,1 +2020-04-28,Mono,California,06051,26,1 +2020-04-29,Mono,California,06051,26,1 +2020-04-30,Mono,California,06051,26,1 +2020-05-01,Mono,California,06051,26,1 +2020-05-02,Mono,California,06051,26,1 +2020-05-03,Mono,California,06051,26,1 +2020-05-04,Mono,California,06051,26,1 +2020-05-05,Mono,California,06051,26,1 +2020-05-06,Mono,California,06051,27,1 +2020-05-07,Mono,California,06051,28,1 +2020-05-08,Mono,California,06051,29,1 +2020-05-09,Mono,California,06051,29,1 +2020-05-10,Mono,California,06051,29,1 +2020-05-11,Mono,California,06051,32,1 +2020-05-12,Mono,California,06051,32,1 +2020-05-13,Mono,California,06051,33,1 +2020-05-14,Mono,California,06051,33,1 +2020-05-15,Mono,California,06051,33,1 +2020-05-16,Mono,California,06051,33,1 +2020-05-17,Mono,California,06051,34,1 +2020-05-18,Mono,California,06051,34,1 +2020-05-19,Mono,California,06051,34,1 +2020-05-20,Mono,California,06051,34,1 +2020-05-21,Mono,California,06051,34,1 +2020-05-22,Mono,California,06051,34,1 +2020-05-23,Mono,California,06051,34,1 +2020-05-24,Mono,California,06051,34,1 +2020-05-25,Mono,California,06051,34,1 +2020-05-26,Mono,California,06051,35,1 +2020-05-27,Mono,California,06051,35,1 +2020-05-28,Mono,California,06051,35,1 +2020-05-29,Mono,California,06051,35,1 +2020-05-30,Mono,California,06051,35,1 +2020-05-31,Mono,California,06051,38,1 +2020-06-01,Mono,California,06051,37,1 +2020-06-02,Mono,California,06051,37,1 +2020-06-03,Mono,California,06051,37,1 +2020-06-04,Mono,California,06051,37,1 +2020-06-05,Mono,California,06051,37,1 +2020-06-06,Mono,California,06051,37,1 +2020-06-07,Mono,California,06051,37,1 +2020-06-08,Mono,California,06051,37,1 +2020-06-09,Mono,California,06051,37,1 +2020-06-10,Mono,California,06051,37,1 +2020-06-11,Mono,California,06051,37,1 +2020-06-12,Mono,California,06051,37,1 +2020-06-13,Mono,California,06051,37,1 +2020-06-14,Mono,California,06051,37,1 +2020-06-15,Mono,California,06051,37,1 +2020-06-16,Mono,California,06051,37,1 +2020-06-17,Mono,California,06051,37,1 +2020-06-18,Mono,California,06051,37,1 +2020-06-19,Mono,California,06051,37,1 +2020-06-20,Mono,California,06051,37,1 +2020-06-21,Mono,California,06051,37,1 +2020-06-22,Mono,California,06051,40,1 +2020-06-23,Mono,California,06051,40,1 +2020-06-24,Mono,California,06051,40,1 +2020-06-25,Mono,California,06051,40,1 +2020-06-26,Mono,California,06051,40,1 +2020-06-27,Mono,California,06051,40,1 +2020-06-28,Mono,California,06051,40,1 +2020-06-29,Mono,California,06051,41,1 +2020-06-30,Mono,California,06051,41,1 +2020-07-01,Mono,California,06051,41,1 +2020-07-02,Mono,California,06051,41,1 +2020-07-03,Mono,California,06051,42,1 +2020-07-04,Mono,California,06051,45,1 +2020-07-05,Mono,California,06051,44,1 +2020-07-06,Mono,California,06051,48,1 +2020-07-07,Mono,California,06051,48,1 +2020-07-08,Mono,California,06051,49,1 +2020-07-09,Mono,California,06051,49,1 +2020-03-17,Monterey,California,06053,2,0 +2020-03-18,Monterey,California,06053,2,0 +2020-03-19,Monterey,California,06053,2,0 +2020-03-20,Monterey,California,06053,5,0 +2020-03-21,Monterey,California,06053,11,1 +2020-03-22,Monterey,California,06053,14,1 +2020-03-23,Monterey,California,06053,20,1 +2020-03-24,Monterey,California,06053,20,1 +2020-03-25,Monterey,California,06053,24,1 +2020-03-26,Monterey,California,06053,24,1 +2020-03-27,Monterey,California,06053,27,1 +2020-03-28,Monterey,California,06053,27,1 +2020-03-29,Monterey,California,06053,32,1 +2020-03-30,Monterey,California,06053,36,1 +2020-03-31,Monterey,California,06053,42,2 +2020-04-01,Monterey,California,06053,42,2 +2020-04-02,Monterey,California,06053,48,2 +2020-04-03,Monterey,California,06053,53,2 +2020-04-04,Monterey,California,06053,62,2 +2020-04-05,Monterey,California,06053,62,2 +2020-04-06,Monterey,California,06053,63,2 +2020-04-07,Monterey,California,06053,64,2 +2020-04-08,Monterey,California,06053,69,2 +2020-04-09,Monterey,California,06053,71,3 +2020-04-10,Monterey,California,06053,79,3 +2020-04-11,Monterey,California,06053,82,3 +2020-04-12,Monterey,California,06053,87,3 +2020-04-13,Monterey,California,06053,87,3 +2020-04-14,Monterey,California,06053,100,3 +2020-04-15,Monterey,California,06053,108,3 +2020-04-16,Monterey,California,06053,119,3 +2020-04-17,Monterey,California,06053,119,3 +2020-04-18,Monterey,California,06053,136,3 +2020-04-19,Monterey,California,06053,141,4 +2020-04-20,Monterey,California,06053,148,4 +2020-04-21,Monterey,California,06053,150,4 +2020-04-22,Monterey,California,06053,154,4 +2020-04-23,Monterey,California,06053,164,4 +2020-04-24,Monterey,California,06053,169,4 +2020-04-25,Monterey,California,06053,176,4 +2020-04-26,Monterey,California,06053,183,4 +2020-04-27,Monterey,California,06053,185,4 +2020-04-28,Monterey,California,06053,191,5 +2020-04-29,Monterey,California,06053,206,5 +2020-04-30,Monterey,California,06053,213,5 +2020-05-01,Monterey,California,06053,222,5 +2020-05-02,Monterey,California,06053,222,6 +2020-05-03,Monterey,California,06053,225,6 +2020-05-04,Monterey,California,06053,235,6 +2020-05-05,Monterey,California,06053,237,6 +2020-05-06,Monterey,California,06053,240,6 +2020-05-07,Monterey,California,06053,246,6 +2020-05-08,Monterey,California,06053,249,6 +2020-05-09,Monterey,California,06053,265,6 +2020-05-10,Monterey,California,06053,273,6 +2020-05-11,Monterey,California,06053,282,6 +2020-05-12,Monterey,California,06053,286,6 +2020-05-13,Monterey,California,06053,298,6 +2020-05-14,Monterey,California,06053,309,6 +2020-05-15,Monterey,California,06053,317,8 +2020-05-16,Monterey,California,06053,321,8 +2020-05-17,Monterey,California,06053,329,8 +2020-05-18,Monterey,California,06053,342,8 +2020-05-19,Monterey,California,06053,345,8 +2020-05-20,Monterey,California,06053,350,8 +2020-05-21,Monterey,California,06053,356,8 +2020-05-22,Monterey,California,06053,371,8 +2020-05-23,Monterey,California,06053,395,8 +2020-05-24,Monterey,California,06053,403,8 +2020-05-25,Monterey,California,06053,413,8 +2020-05-26,Monterey,California,06053,429,8 +2020-05-27,Monterey,California,06053,441,8 +2020-05-28,Monterey,California,06053,469,8 +2020-05-29,Monterey,California,06053,477,10 +2020-05-30,Monterey,California,06053,509,10 +2020-05-31,Monterey,California,06053,530,10 +2020-06-01,Monterey,California,06053,545,10 +2020-06-02,Monterey,California,06053,571,10 +2020-06-03,Monterey,California,06053,586,10 +2020-06-04,Monterey,California,06053,621,10 +2020-06-05,Monterey,California,06053,640,10 +2020-06-06,Monterey,California,06053,667,10 +2020-06-07,Monterey,California,06053,732,10 +2020-06-08,Monterey,California,06053,751,10 +2020-06-09,Monterey,California,06053,763,11 +2020-06-10,Monterey,California,06053,791,11 +2020-06-11,Monterey,California,06053,814,11 +2020-06-12,Monterey,California,06053,865,11 +2020-06-13,Monterey,California,06053,899,11 +2020-06-14,Monterey,California,06053,949,12 +2020-06-15,Monterey,California,06053,995,12 +2020-06-16,Monterey,California,06053,1015,12 +2020-06-17,Monterey,California,06053,1075,12 +2020-06-18,Monterey,California,06053,1121,12 +2020-06-19,Monterey,California,06053,1156,12 +2020-06-20,Monterey,California,06053,1181,12 +2020-06-21,Monterey,California,06053,1225,12 +2020-06-22,Monterey,California,06053,1291,12 +2020-06-23,Monterey,California,06053,1341,12 +2020-06-24,Monterey,California,06053,1397,12 +2020-06-25,Monterey,California,06053,1416,12 +2020-06-26,Monterey,California,06053,1429,12 +2020-06-27,Monterey,California,06053,1449,12 +2020-06-28,Monterey,California,06053,1548,13 +2020-06-29,Monterey,California,06053,1605,14 +2020-06-30,Monterey,California,06053,1642,15 +2020-07-01,Monterey,California,06053,1691,15 +2020-07-02,Monterey,California,06053,1748,15 +2020-07-03,Monterey,California,06053,1796,15 +2020-07-04,Monterey,California,06053,1915,15 +2020-07-05,Monterey,California,06053,2064,15 +2020-07-06,Monterey,California,06053,2151,15 +2020-07-07,Monterey,California,06053,2239,17 +2020-07-08,Monterey,California,06053,2270,17 +2020-07-09,Monterey,California,06053,2343,17 +2020-02-26,Napa,California,06055,1,0 +2020-02-27,Napa,California,06055,1,0 +2020-02-28,Napa,California,06055,1,0 +2020-02-29,Napa,California,06055,1,0 +2020-03-01,Napa,California,06055,1,0 +2020-03-02,Napa,California,06055,1,0 +2020-03-03,Napa,California,06055,1,0 +2020-03-04,Napa,California,06055,1,0 +2020-03-05,Napa,California,06055,1,0 +2020-03-06,Napa,California,06055,1,0 +2020-03-07,Napa,California,06055,1,0 +2020-03-08,Napa,California,06055,1,0 +2020-03-09,Napa,California,06055,1,0 +2020-03-10,Napa,California,06055,1,0 +2020-03-11,Napa,California,06055,1,0 +2020-03-12,Napa,California,06055,1,0 +2020-03-13,Napa,California,06055,1,0 +2020-03-14,Napa,California,06055,1,0 +2020-03-15,Napa,California,06055,1,0 +2020-03-16,Napa,California,06055,1,0 +2020-03-17,Napa,California,06055,1,0 +2020-03-18,Napa,California,06055,1,0 +2020-03-19,Napa,California,06055,1,0 +2020-03-20,Napa,California,06055,1,0 +2020-03-21,Napa,California,06055,1,0 +2020-03-22,Napa,California,06055,3,0 +2020-03-23,Napa,California,06055,3,0 +2020-03-24,Napa,California,06055,3,0 +2020-03-25,Napa,California,06055,6,0 +2020-03-26,Napa,California,06055,7,0 +2020-03-27,Napa,California,06055,10,0 +2020-03-28,Napa,California,06055,10,0 +2020-03-29,Napa,California,06055,11,0 +2020-03-30,Napa,California,06055,15,0 +2020-03-31,Napa,California,06055,16,1 +2020-04-01,Napa,California,06055,19,1 +2020-04-02,Napa,California,06055,19,1 +2020-04-03,Napa,California,06055,21,2 +2020-04-04,Napa,California,06055,21,2 +2020-04-05,Napa,California,06055,21,2 +2020-04-06,Napa,California,06055,22,2 +2020-04-07,Napa,California,06055,24,2 +2020-04-08,Napa,California,06055,26,2 +2020-04-09,Napa,California,06055,29,2 +2020-04-10,Napa,California,06055,33,2 +2020-04-11,Napa,California,06055,35,2 +2020-04-12,Napa,California,06055,35,2 +2020-04-13,Napa,California,06055,35,2 +2020-04-14,Napa,California,06055,39,2 +2020-04-15,Napa,California,06055,39,2 +2020-04-16,Napa,California,06055,40,2 +2020-04-17,Napa,California,06055,45,2 +2020-04-18,Napa,California,06055,47,2 +2020-04-19,Napa,California,06055,47,2 +2020-04-20,Napa,California,06055,49,2 +2020-04-21,Napa,California,06055,54,2 +2020-04-22,Napa,California,06055,58,2 +2020-04-23,Napa,California,06055,58,2 +2020-04-24,Napa,California,06055,58,2 +2020-04-25,Napa,California,06055,61,2 +2020-04-26,Napa,California,06055,61,2 +2020-04-27,Napa,California,06055,65,2 +2020-04-28,Napa,California,06055,67,2 +2020-04-29,Napa,California,06055,67,2 +2020-04-30,Napa,California,06055,68,2 +2020-05-01,Napa,California,06055,69,2 +2020-05-02,Napa,California,06055,71,2 +2020-05-03,Napa,California,06055,71,2 +2020-05-04,Napa,California,06055,75,2 +2020-05-05,Napa,California,06055,76,2 +2020-05-06,Napa,California,06055,79,2 +2020-05-07,Napa,California,06055,79,2 +2020-05-08,Napa,California,06055,79,2 +2020-05-09,Napa,California,06055,79,2 +2020-05-10,Napa,California,06055,79,2 +2020-05-11,Napa,California,06055,80,3 +2020-05-12,Napa,California,06055,82,3 +2020-05-13,Napa,California,06055,82,3 +2020-05-14,Napa,California,06055,84,3 +2020-05-15,Napa,California,06055,84,3 +2020-05-16,Napa,California,06055,91,3 +2020-05-17,Napa,California,06055,91,3 +2020-05-18,Napa,California,06055,93,3 +2020-05-19,Napa,California,06055,93,3 +2020-05-20,Napa,California,06055,95,3 +2020-05-21,Napa,California,06055,96,3 +2020-05-22,Napa,California,06055,97,3 +2020-05-23,Napa,California,06055,102,3 +2020-05-24,Napa,California,06055,102,3 +2020-05-25,Napa,California,06055,105,3 +2020-05-26,Napa,California,06055,110,3 +2020-05-27,Napa,California,06055,110,3 +2020-05-28,Napa,California,06055,113,3 +2020-05-29,Napa,California,06055,114,3 +2020-05-30,Napa,California,06055,114,3 +2020-05-31,Napa,California,06055,114,3 +2020-06-01,Napa,California,06055,115,3 +2020-06-02,Napa,California,06055,115,3 +2020-06-03,Napa,California,06055,125,3 +2020-06-04,Napa,California,06055,127,3 +2020-06-05,Napa,California,06055,130,3 +2020-06-06,Napa,California,06055,142,3 +2020-06-07,Napa,California,06055,142,3 +2020-06-08,Napa,California,06055,154,3 +2020-06-09,Napa,California,06055,158,3 +2020-06-10,Napa,California,06055,162,3 +2020-06-11,Napa,California,06055,164,3 +2020-06-12,Napa,California,06055,169,3 +2020-06-13,Napa,California,06055,184,3 +2020-06-14,Napa,California,06055,184,3 +2020-06-15,Napa,California,06055,191,3 +2020-06-16,Napa,California,06055,200,3 +2020-06-17,Napa,California,06055,203,4 +2020-06-18,Napa,California,06055,207,4 +2020-06-19,Napa,California,06055,217,4 +2020-06-20,Napa,California,06055,225,4 +2020-06-21,Napa,California,06055,225,4 +2020-06-22,Napa,California,06055,240,4 +2020-06-23,Napa,California,06055,246,4 +2020-06-24,Napa,California,06055,252,4 +2020-06-25,Napa,California,06055,259,4 +2020-06-26,Napa,California,06055,271,4 +2020-06-27,Napa,California,06055,278,4 +2020-06-28,Napa,California,06055,283,4 +2020-06-29,Napa,California,06055,311,4 +2020-06-30,Napa,California,06055,318,4 +2020-07-01,Napa,California,06055,343,4 +2020-07-02,Napa,California,06055,348,4 +2020-07-03,Napa,California,06055,377,4 +2020-07-04,Napa,California,06055,389,4 +2020-07-05,Napa,California,06055,427,4 +2020-07-06,Napa,California,06055,451,4 +2020-07-07,Napa,California,06055,455,4 +2020-07-08,Napa,California,06055,460,4 +2020-07-09,Napa,California,06055,469,4 +2020-03-16,Nevada,California,06057,1,0 +2020-03-17,Nevada,California,06057,1,0 +2020-03-18,Nevada,California,06057,1,0 +2020-03-19,Nevada,California,06057,1,0 +2020-03-20,Nevada,California,06057,1,0 +2020-03-21,Nevada,California,06057,1,0 +2020-03-22,Nevada,California,06057,1,0 +2020-03-23,Nevada,California,06057,3,0 +2020-03-24,Nevada,California,06057,4,0 +2020-03-25,Nevada,California,06057,4,0 +2020-03-26,Nevada,California,06057,8,0 +2020-03-27,Nevada,California,06057,12,0 +2020-03-28,Nevada,California,06057,12,0 +2020-03-29,Nevada,California,06057,12,0 +2020-03-30,Nevada,California,06057,18,0 +2020-03-31,Nevada,California,06057,21,0 +2020-04-01,Nevada,California,06057,26,0 +2020-04-02,Nevada,California,06057,30,0 +2020-04-03,Nevada,California,06057,31,1 +2020-04-04,Nevada,California,06057,31,1 +2020-04-05,Nevada,California,06057,31,1 +2020-04-06,Nevada,California,06057,32,1 +2020-04-07,Nevada,California,06057,34,1 +2020-04-08,Nevada,California,06057,34,1 +2020-04-09,Nevada,California,06057,34,1 +2020-04-10,Nevada,California,06057,34,1 +2020-04-11,Nevada,California,06057,34,1 +2020-04-12,Nevada,California,06057,34,1 +2020-04-13,Nevada,California,06057,34,1 +2020-04-14,Nevada,California,06057,34,1 +2020-04-15,Nevada,California,06057,34,1 +2020-04-16,Nevada,California,06057,34,1 +2020-04-17,Nevada,California,06057,36,1 +2020-04-18,Nevada,California,06057,36,1 +2020-04-19,Nevada,California,06057,36,1 +2020-04-20,Nevada,California,06057,38,1 +2020-04-21,Nevada,California,06057,38,1 +2020-04-22,Nevada,California,06057,36,1 +2020-04-23,Nevada,California,06057,36,1 +2020-04-24,Nevada,California,06057,37,1 +2020-04-25,Nevada,California,06057,37,1 +2020-04-26,Nevada,California,06057,37,1 +2020-04-27,Nevada,California,06057,39,1 +2020-04-28,Nevada,California,06057,41,1 +2020-04-29,Nevada,California,06057,41,1 +2020-04-30,Nevada,California,06057,41,1 +2020-05-01,Nevada,California,06057,41,1 +2020-05-02,Nevada,California,06057,41,1 +2020-05-03,Nevada,California,06057,41,1 +2020-05-04,Nevada,California,06057,41,1 +2020-05-05,Nevada,California,06057,41,1 +2020-05-06,Nevada,California,06057,41,1 +2020-05-07,Nevada,California,06057,41,1 +2020-05-08,Nevada,California,06057,41,1 +2020-05-09,Nevada,California,06057,41,1 +2020-05-10,Nevada,California,06057,41,1 +2020-05-11,Nevada,California,06057,41,1 +2020-05-12,Nevada,California,06057,41,1 +2020-05-13,Nevada,California,06057,41,1 +2020-05-14,Nevada,California,06057,41,1 +2020-05-15,Nevada,California,06057,41,1 +2020-05-16,Nevada,California,06057,41,1 +2020-05-17,Nevada,California,06057,41,1 +2020-05-18,Nevada,California,06057,41,1 +2020-05-19,Nevada,California,06057,41,1 +2020-05-20,Nevada,California,06057,41,1 +2020-05-21,Nevada,California,06057,41,1 +2020-05-22,Nevada,California,06057,41,1 +2020-05-23,Nevada,California,06057,41,1 +2020-05-24,Nevada,California,06057,41,1 +2020-05-25,Nevada,California,06057,41,1 +2020-05-26,Nevada,California,06057,41,1 +2020-05-27,Nevada,California,06057,41,1 +2020-05-28,Nevada,California,06057,41,1 +2020-05-29,Nevada,California,06057,41,1 +2020-05-30,Nevada,California,06057,41,1 +2020-05-31,Nevada,California,06057,41,1 +2020-06-01,Nevada,California,06057,42,1 +2020-06-02,Nevada,California,06057,48,1 +2020-06-03,Nevada,California,06057,49,1 +2020-06-04,Nevada,California,06057,49,1 +2020-06-05,Nevada,California,06057,50,1 +2020-06-06,Nevada,California,06057,50,1 +2020-06-07,Nevada,California,06057,50,1 +2020-06-08,Nevada,California,06057,50,1 +2020-06-09,Nevada,California,06057,50,1 +2020-06-10,Nevada,California,06057,50,1 +2020-06-11,Nevada,California,06057,52,1 +2020-06-12,Nevada,California,06057,52,1 +2020-06-13,Nevada,California,06057,52,1 +2020-06-14,Nevada,California,06057,52,1 +2020-06-15,Nevada,California,06057,55,1 +2020-06-16,Nevada,California,06057,57,1 +2020-06-17,Nevada,California,06057,67,1 +2020-06-18,Nevada,California,06057,71,1 +2020-06-19,Nevada,California,06057,75,1 +2020-06-20,Nevada,California,06057,75,1 +2020-06-21,Nevada,California,06057,75,1 +2020-06-22,Nevada,California,06057,82,1 +2020-06-23,Nevada,California,06057,92,1 +2020-06-24,Nevada,California,06057,91,1 +2020-06-25,Nevada,California,06057,101,1 +2020-06-26,Nevada,California,06057,108,1 +2020-06-27,Nevada,California,06057,108,1 +2020-06-28,Nevada,California,06057,108,1 +2020-06-29,Nevada,California,06057,113,1 +2020-06-30,Nevada,California,06057,116,1 +2020-07-01,Nevada,California,06057,117,1 +2020-07-02,Nevada,California,06057,123,1 +2020-07-03,Nevada,California,06057,129,1 +2020-07-04,Nevada,California,06057,129,1 +2020-07-05,Nevada,California,06057,129,1 +2020-07-06,Nevada,California,06057,145,1 +2020-07-07,Nevada,California,06057,151,1 +2020-07-08,Nevada,California,06057,155,1 +2020-07-09,Nevada,California,06057,159,1 +2020-01-25,Orange,California,06059,1,0 +2020-01-26,Orange,California,06059,1,0 +2020-01-27,Orange,California,06059,1,0 +2020-01-28,Orange,California,06059,1,0 +2020-01-29,Orange,California,06059,1,0 +2020-01-30,Orange,California,06059,1,0 +2020-01-31,Orange,California,06059,1,0 +2020-02-01,Orange,California,06059,1,0 +2020-02-02,Orange,California,06059,1,0 +2020-02-03,Orange,California,06059,1,0 +2020-02-04,Orange,California,06059,1,0 +2020-02-05,Orange,California,06059,1,0 +2020-02-06,Orange,California,06059,1,0 +2020-02-07,Orange,California,06059,1,0 +2020-02-08,Orange,California,06059,1,0 +2020-02-09,Orange,California,06059,1,0 +2020-02-10,Orange,California,06059,1,0 +2020-02-11,Orange,California,06059,1,0 +2020-02-12,Orange,California,06059,1,0 +2020-02-13,Orange,California,06059,1,0 +2020-02-14,Orange,California,06059,1,0 +2020-02-15,Orange,California,06059,1,0 +2020-02-16,Orange,California,06059,1,0 +2020-02-17,Orange,California,06059,1,0 +2020-02-18,Orange,California,06059,1,0 +2020-02-19,Orange,California,06059,1,0 +2020-02-20,Orange,California,06059,1,0 +2020-02-21,Orange,California,06059,1,0 +2020-02-22,Orange,California,06059,1,0 +2020-02-23,Orange,California,06059,1,0 +2020-02-24,Orange,California,06059,1,0 +2020-02-25,Orange,California,06059,1,0 +2020-02-26,Orange,California,06059,1,0 +2020-02-27,Orange,California,06059,1,0 +2020-02-28,Orange,California,06059,1,0 +2020-02-29,Orange,California,06059,1,0 +2020-03-01,Orange,California,06059,1,0 +2020-03-02,Orange,California,06059,1,0 +2020-03-03,Orange,California,06059,3,0 +2020-03-04,Orange,California,06059,3,0 +2020-03-05,Orange,California,06059,3,0 +2020-03-06,Orange,California,06059,3,0 +2020-03-07,Orange,California,06059,3,0 +2020-03-08,Orange,California,06059,3,0 +2020-03-09,Orange,California,06059,5,0 +2020-03-10,Orange,California,06059,5,0 +2020-03-11,Orange,California,06059,6,0 +2020-03-12,Orange,California,06059,6,0 +2020-03-13,Orange,California,06059,13,0 +2020-03-14,Orange,California,06059,14,0 +2020-03-15,Orange,California,06059,17,0 +2020-03-16,Orange,California,06059,22,0 +2020-03-17,Orange,California,06059,29,0 +2020-03-18,Orange,California,06059,42,0 +2020-03-19,Orange,California,06059,53,0 +2020-03-20,Orange,California,06059,65,0 +2020-03-21,Orange,California,06059,78,0 +2020-03-22,Orange,California,06059,95,0 +2020-03-23,Orange,California,06059,125,0 +2020-03-24,Orange,California,06059,152,0 +2020-03-25,Orange,California,06059,187,1 +2020-03-26,Orange,California,06059,256,1 +2020-03-27,Orange,California,06059,321,3 +2020-03-28,Orange,California,06059,321,3 +2020-03-29,Orange,California,06059,431,4 +2020-03-30,Orange,California,06059,464,4 +2020-03-31,Orange,California,06059,502,7 +2020-04-01,Orange,California,06059,606,10 +2020-04-02,Orange,California,06059,656,13 +2020-04-03,Orange,California,06059,711,13 +2020-04-04,Orange,California,06059,786,14 +2020-04-05,Orange,California,06059,834,14 +2020-04-06,Orange,California,06059,882,14 +2020-04-07,Orange,California,06059,931,15 +2020-04-08,Orange,California,06059,1016,17 +2020-04-09,Orange,California,06059,1079,17 +2020-04-10,Orange,California,06059,1138,17 +2020-04-11,Orange,California,06059,1221,18 +2020-04-12,Orange,California,06059,1277,19 +2020-04-13,Orange,California,06059,1283,19 +2020-04-14,Orange,California,06059,1299,19 +2020-04-15,Orange,California,06059,1376,22 +2020-04-16,Orange,California,06059,1425,25 +2020-04-17,Orange,California,06059,1501,28 +2020-04-18,Orange,California,06059,1556,32 +2020-04-19,Orange,California,06059,1636,32 +2020-04-20,Orange,California,06059,1676,33 +2020-04-21,Orange,California,06059,1691,33 +2020-04-22,Orange,California,06059,1753,34 +2020-04-23,Orange,California,06059,1827,36 +2020-04-24,Orange,California,06059,1845,36 +2020-04-25,Orange,California,06059,1969,38 +2020-04-26,Orange,California,06059,2074,39 +2020-04-27,Orange,California,06059,2126,40 +2020-04-28,Orange,California,06059,2198,42 +2020-04-29,Orange,California,06059,2324,44 +2020-04-30,Orange,California,06059,2421,45 +2020-05-01,Orange,California,06059,2591,50 +2020-05-02,Orange,California,06059,2660,52 +2020-05-03,Orange,California,06059,2774,52 +2020-05-04,Orange,California,06059,2859,57 +2020-05-05,Orange,California,06059,2931,61 +2020-05-06,Orange,California,06059,3041,65 +2020-05-07,Orange,California,06059,3156,66 +2020-05-08,Orange,California,06059,3283,71 +2020-05-09,Orange,California,06059,3395,74 +2020-05-10,Orange,California,06059,3506,76 +2020-05-11,Orange,California,06059,3627,76 +2020-05-12,Orange,California,06059,3699,78 +2020-05-13,Orange,California,06059,3843,80 +2020-05-14,Orange,California,06059,4025,80 +2020-05-15,Orange,California,06059,4163,84 +2020-05-16,Orange,California,06059,4281,86 +2020-05-17,Orange,California,06059,4396,88 +2020-05-18,Orange,California,06059,4466,88 +2020-05-19,Orange,California,06059,4558,88 +2020-05-20,Orange,California,06059,4746,98 +2020-05-21,Orange,California,06059,4866,112 +2020-05-22,Orange,California,06059,4975,118 +2020-05-23,Orange,California,06059,5157,130 +2020-05-24,Orange,California,06059,5336,131 +2020-05-25,Orange,California,06059,5469,131 +2020-05-26,Orange,California,06059,5601,131 +2020-05-27,Orange,California,06059,5651,136 +2020-05-28,Orange,California,06059,5849,142 +2020-05-29,Orange,California,06059,6045,145 +2020-05-30,Orange,California,06059,6176,146 +2020-05-31,Orange,California,06059,6354,147 +2020-06-01,Orange,California,06059,6532,147 +2020-06-02,Orange,California,06059,6640,150 +2020-06-03,Orange,California,06059,6790,158 +2020-06-04,Orange,California,06059,6939,165 +2020-06-05,Orange,California,06059,7192,174 +2020-06-06,Orange,California,06059,7391,176 +2020-06-07,Orange,California,06059,7576,177 +2020-06-08,Orange,California,06059,7643,177 +2020-06-09,Orange,California,06059,7786,185 +2020-06-10,Orange,California,06059,7991,198 +2020-06-11,Orange,California,06059,8222,202 +2020-06-12,Orange,California,06059,8304,210 +2020-06-13,Orange,California,06059,8440,217 +2020-06-14,Orange,California,06059,8581,221 +2020-06-15,Orange,California,06059,8759,221 +2020-06-16,Orange,California,06059,8999,233 +2020-06-17,Orange,California,06059,9197,243 +2020-06-18,Orange,California,06059,9292,250 +2020-06-19,Orange,California,06059,9597,257 +2020-06-20,Orange,California,06059,9988,267 +2020-06-21,Orange,California,06059,10422,269 +2020-06-22,Orange,California,06059,10595,269 +2020-06-23,Orange,California,06059,10737,275 +2020-06-24,Orange,California,06059,11071,299 +2020-06-25,Orange,California,06059,11804,306 +2020-06-26,Orange,California,06059,12221,323 +2020-06-27,Orange,California,06059,12659,323 +2020-06-28,Orange,California,06059,12951,326 +2020-06-29,Orange,California,06059,13213,330 +2020-06-30,Orange,California,06059,13843,340 +2020-07-01,Orange,California,06059,14413,345 +2020-07-02,Orange,California,06059,15662,354 +2020-07-03,Orange,California,06059,17056,360 +2020-07-04,Orange,California,06059,18819,360 +2020-07-05,Orange,California,06059,19247,363 +2020-07-06,Orange,California,06059,19430,366 +2020-07-07,Orange,California,06059,20167,366 +2020-07-08,Orange,California,06059,21741,369 +2020-07-09,Orange,California,06059,22088,376 +2020-03-02,Placer,California,06061,1,0 +2020-03-03,Placer,California,06061,2,0 +2020-03-04,Placer,California,06061,2,1 +2020-03-05,Placer,California,06061,2,1 +2020-03-06,Placer,California,06061,5,1 +2020-03-07,Placer,California,06061,5,1 +2020-03-08,Placer,California,06061,7,1 +2020-03-09,Placer,California,06061,7,1 +2020-03-10,Placer,California,06061,7,1 +2020-03-11,Placer,California,06061,7,1 +2020-03-12,Placer,California,06061,7,1 +2020-03-13,Placer,California,06061,7,1 +2020-03-14,Placer,California,06061,8,1 +2020-03-15,Placer,California,06061,8,1 +2020-03-16,Placer,California,06061,8,1 +2020-03-17,Placer,California,06061,8,1 +2020-03-18,Placer,California,06061,9,1 +2020-03-19,Placer,California,06061,9,1 +2020-03-20,Placer,California,06061,9,1 +2020-03-21,Placer,California,06061,12,1 +2020-03-22,Placer,California,06061,12,1 +2020-03-23,Placer,California,06061,20,1 +2020-03-24,Placer,California,06061,26,1 +2020-03-25,Placer,California,06061,30,1 +2020-03-26,Placer,California,06061,30,1 +2020-03-27,Placer,California,06061,41,1 +2020-03-28,Placer,California,06061,44,1 +2020-03-29,Placer,California,06061,53,2 +2020-03-30,Placer,California,06061,57,2 +2020-03-31,Placer,California,06061,67,2 +2020-04-01,Placer,California,06061,78,2 +2020-04-02,Placer,California,06061,90,2 +2020-04-03,Placer,California,06061,97,2 +2020-04-04,Placer,California,06061,97,2 +2020-04-05,Placer,California,06061,103,3 +2020-04-06,Placer,California,06061,106,3 +2020-04-07,Placer,California,06061,115,3 +2020-04-08,Placer,California,06061,117,4 +2020-04-09,Placer,California,06061,120,4 +2020-04-10,Placer,California,06061,123,4 +2020-04-11,Placer,California,06061,124,4 +2020-04-12,Placer,California,06061,124,4 +2020-04-13,Placer,California,06061,127,5 +2020-04-14,Placer,California,06061,128,5 +2020-04-15,Placer,California,06061,129,7 +2020-04-16,Placer,California,06061,130,8 +2020-04-17,Placer,California,06061,130,8 +2020-04-18,Placer,California,06061,131,8 +2020-04-19,Placer,California,06061,132,8 +2020-04-20,Placer,California,06061,132,8 +2020-04-21,Placer,California,06061,133,8 +2020-04-22,Placer,California,06061,133,8 +2020-04-23,Placer,California,06061,136,8 +2020-04-24,Placer,California,06061,139,8 +2020-04-25,Placer,California,06061,139,8 +2020-04-26,Placer,California,06061,141,8 +2020-04-27,Placer,California,06061,143,8 +2020-04-28,Placer,California,06061,145,8 +2020-04-29,Placer,California,06061,145,8 +2020-04-30,Placer,California,06061,147,8 +2020-05-01,Placer,California,06061,150,8 +2020-05-02,Placer,California,06061,159,8 +2020-05-03,Placer,California,06061,159,8 +2020-05-04,Placer,California,06061,162,8 +2020-05-05,Placer,California,06061,162,8 +2020-05-06,Placer,California,06061,163,8 +2020-05-07,Placer,California,06061,165,8 +2020-05-08,Placer,California,06061,165,8 +2020-05-09,Placer,California,06061,168,8 +2020-05-10,Placer,California,06061,169,8 +2020-05-11,Placer,California,06061,170,8 +2020-05-12,Placer,California,06061,170,8 +2020-05-13,Placer,California,06061,170,8 +2020-05-14,Placer,California,06061,172,9 +2020-05-15,Placer,California,06061,174,9 +2020-05-16,Placer,California,06061,174,9 +2020-05-17,Placer,California,06061,175,9 +2020-05-18,Placer,California,06061,175,9 +2020-05-19,Placer,California,06061,177,9 +2020-05-20,Placer,California,06061,177,9 +2020-05-21,Placer,California,06061,176,9 +2020-05-22,Placer,California,06061,184,9 +2020-05-23,Placer,California,06061,185,9 +2020-05-24,Placer,California,06061,184,9 +2020-05-25,Placer,California,06061,185,9 +2020-05-26,Placer,California,06061,188,9 +2020-05-27,Placer,California,06061,194,9 +2020-05-28,Placer,California,06061,196,9 +2020-05-29,Placer,California,06061,199,9 +2020-05-30,Placer,California,06061,214,9 +2020-05-31,Placer,California,06061,215,9 +2020-06-01,Placer,California,06061,217,9 +2020-06-02,Placer,California,06061,228,9 +2020-06-03,Placer,California,06061,240,9 +2020-06-04,Placer,California,06061,259,9 +2020-06-05,Placer,California,06061,265,9 +2020-06-06,Placer,California,06061,275,9 +2020-06-07,Placer,California,06061,284,9 +2020-06-08,Placer,California,06061,294,9 +2020-06-09,Placer,California,06061,304,9 +2020-06-10,Placer,California,06061,314,9 +2020-06-11,Placer,California,06061,327,9 +2020-06-12,Placer,California,06061,344,9 +2020-06-13,Placer,California,06061,358,9 +2020-06-14,Placer,California,06061,372,9 +2020-06-15,Placer,California,06061,390,9 +2020-06-16,Placer,California,06061,411,9 +2020-06-17,Placer,California,06061,432,9 +2020-06-18,Placer,California,06061,460,9 +2020-06-19,Placer,California,06061,476,9 +2020-06-20,Placer,California,06061,490,9 +2020-06-21,Placer,California,06061,502,9 +2020-06-22,Placer,California,06061,519,9 +2020-06-23,Placer,California,06061,534,10 +2020-06-24,Placer,California,06061,556,10 +2020-06-25,Placer,California,06061,579,10 +2020-06-26,Placer,California,06061,593,11 +2020-06-27,Placer,California,06061,611,11 +2020-06-28,Placer,California,06061,627,11 +2020-06-29,Placer,California,06061,643,11 +2020-06-30,Placer,California,06061,684,11 +2020-07-01,Placer,California,06061,724,11 +2020-07-02,Placer,California,06061,754,11 +2020-07-03,Placer,California,06061,786,11 +2020-07-04,Placer,California,06061,828,11 +2020-07-05,Placer,California,06061,877,11 +2020-07-06,Placer,California,06061,911,11 +2020-07-07,Placer,California,06061,938,11 +2020-07-08,Placer,California,06061,970,11 +2020-07-09,Placer,California,06061,993,11 +2020-03-31,Plumas,California,06063,1,0 +2020-04-01,Plumas,California,06063,1,0 +2020-04-02,Plumas,California,06063,1,0 +2020-04-03,Plumas,California,06063,2,0 +2020-04-04,Plumas,California,06063,3,0 +2020-04-05,Plumas,California,06063,3,0 +2020-04-06,Plumas,California,06063,3,0 +2020-04-07,Plumas,California,06063,3,0 +2020-04-08,Plumas,California,06063,3,0 +2020-04-09,Plumas,California,06063,3,0 +2020-04-10,Plumas,California,06063,4,0 +2020-04-11,Plumas,California,06063,4,0 +2020-04-12,Plumas,California,06063,4,0 +2020-04-13,Plumas,California,06063,4,0 +2020-04-14,Plumas,California,06063,4,0 +2020-04-15,Plumas,California,06063,4,0 +2020-04-16,Plumas,California,06063,4,0 +2020-04-17,Plumas,California,06063,4,0 +2020-04-18,Plumas,California,06063,4,0 +2020-04-19,Plumas,California,06063,4,0 +2020-04-20,Plumas,California,06063,4,0 +2020-04-21,Plumas,California,06063,4,0 +2020-04-22,Plumas,California,06063,4,0 +2020-04-23,Plumas,California,06063,4,0 +2020-04-24,Plumas,California,06063,4,0 +2020-04-25,Plumas,California,06063,4,0 +2020-04-26,Plumas,California,06063,4,0 +2020-04-27,Plumas,California,06063,4,0 +2020-04-28,Plumas,California,06063,4,0 +2020-04-29,Plumas,California,06063,4,0 +2020-04-30,Plumas,California,06063,4,0 +2020-05-01,Plumas,California,06063,4,0 +2020-05-02,Plumas,California,06063,4,0 +2020-05-03,Plumas,California,06063,4,0 +2020-05-04,Plumas,California,06063,4,0 +2020-05-05,Plumas,California,06063,4,0 +2020-05-06,Plumas,California,06063,4,0 +2020-05-07,Plumas,California,06063,4,0 +2020-05-08,Plumas,California,06063,4,0 +2020-05-09,Plumas,California,06063,4,0 +2020-05-10,Plumas,California,06063,4,0 +2020-05-11,Plumas,California,06063,4,0 +2020-05-12,Plumas,California,06063,4,0 +2020-05-13,Plumas,California,06063,4,0 +2020-05-14,Plumas,California,06063,4,0 +2020-05-15,Plumas,California,06063,4,0 +2020-05-16,Plumas,California,06063,4,0 +2020-05-17,Plumas,California,06063,4,0 +2020-05-18,Plumas,California,06063,4,0 +2020-05-19,Plumas,California,06063,5,0 +2020-05-20,Plumas,California,06063,5,0 +2020-05-21,Plumas,California,06063,4,0 +2020-05-22,Plumas,California,06063,4,0 +2020-05-23,Plumas,California,06063,4,0 +2020-05-24,Plumas,California,06063,4,0 +2020-05-25,Plumas,California,06063,4,0 +2020-05-26,Plumas,California,06063,4,0 +2020-05-27,Plumas,California,06063,4,0 +2020-05-28,Plumas,California,06063,4,0 +2020-05-29,Plumas,California,06063,4,0 +2020-05-30,Plumas,California,06063,4,0 +2020-05-31,Plumas,California,06063,4,0 +2020-06-01,Plumas,California,06063,4,0 +2020-06-02,Plumas,California,06063,4,0 +2020-06-03,Plumas,California,06063,4,0 +2020-06-04,Plumas,California,06063,4,0 +2020-06-05,Plumas,California,06063,4,0 +2020-06-06,Plumas,California,06063,4,0 +2020-06-07,Plumas,California,06063,4,0 +2020-06-08,Plumas,California,06063,4,0 +2020-06-09,Plumas,California,06063,4,0 +2020-06-10,Plumas,California,06063,4,0 +2020-06-11,Plumas,California,06063,4,0 +2020-06-12,Plumas,California,06063,4,0 +2020-06-13,Plumas,California,06063,4,0 +2020-06-14,Plumas,California,06063,4,0 +2020-06-15,Plumas,California,06063,4,0 +2020-06-16,Plumas,California,06063,4,0 +2020-06-17,Plumas,California,06063,5,0 +2020-06-18,Plumas,California,06063,5,0 +2020-06-19,Plumas,California,06063,5,0 +2020-06-20,Plumas,California,06063,5,0 +2020-06-21,Plumas,California,06063,6,0 +2020-06-22,Plumas,California,06063,6,0 +2020-06-23,Plumas,California,06063,6,0 +2020-06-24,Plumas,California,06063,6,0 +2020-06-25,Plumas,California,06063,6,0 +2020-06-26,Plumas,California,06063,6,0 +2020-06-27,Plumas,California,06063,6,0 +2020-06-28,Plumas,California,06063,6,0 +2020-06-29,Plumas,California,06063,6,0 +2020-06-30,Plumas,California,06063,6,0 +2020-07-01,Plumas,California,06063,8,0 +2020-07-02,Plumas,California,06063,8,0 +2020-07-03,Plumas,California,06063,8,0 +2020-07-04,Plumas,California,06063,11,0 +2020-07-05,Plumas,California,06063,11,0 +2020-07-06,Plumas,California,06063,11,0 +2020-07-07,Plumas,California,06063,11,0 +2020-07-08,Plumas,California,06063,12,0 +2020-07-09,Plumas,California,06063,12,0 +2020-03-07,Riverside,California,06065,1,0 +2020-03-08,Riverside,California,06065,1,0 +2020-03-09,Riverside,California,06065,4,0 +2020-03-10,Riverside,California,06065,4,0 +2020-03-11,Riverside,California,06065,4,0 +2020-03-12,Riverside,California,06065,6,0 +2020-03-13,Riverside,California,06065,10,0 +2020-03-14,Riverside,California,06065,10,0 +2020-03-15,Riverside,California,06065,12,0 +2020-03-16,Riverside,California,06065,14,2 +2020-03-17,Riverside,California,06065,16,3 +2020-03-18,Riverside,California,06065,16,3 +2020-03-19,Riverside,California,06065,22,3 +2020-03-20,Riverside,California,06065,28,4 +2020-03-21,Riverside,California,06065,30,5 +2020-03-22,Riverside,California,06065,45,6 +2020-03-23,Riverside,California,06065,48,6 +2020-03-24,Riverside,California,06065,59,6 +2020-03-25,Riverside,California,06065,107,8 +2020-03-26,Riverside,California,06065,107,8 +2020-03-27,Riverside,California,06065,185,8 +2020-03-28,Riverside,California,06065,185,8 +2020-03-29,Riverside,California,06065,195,8 +2020-03-30,Riverside,California,06065,291,9 +2020-03-31,Riverside,California,06065,371,13 +2020-04-01,Riverside,California,06065,371,13 +2020-04-02,Riverside,California,06065,493,14 +2020-04-03,Riverside,California,06065,638,15 +2020-04-04,Riverside,California,06065,665,18 +2020-04-05,Riverside,California,06065,799,19 +2020-04-06,Riverside,California,06065,946,25 +2020-04-07,Riverside,California,06065,1016,28 +2020-04-08,Riverside,California,06065,1179,32 +2020-04-09,Riverside,California,06065,1280,33 +2020-04-10,Riverside,California,06065,1350,39 +2020-04-11,Riverside,California,06065,1431,41 +2020-04-12,Riverside,California,06065,1619,41 +2020-04-13,Riverside,California,06065,1751,50 +2020-04-14,Riverside,California,06065,1961,50 +2020-04-15,Riverside,California,06065,2105,54 +2020-04-16,Riverside,California,06065,2264,59 +2020-04-17,Riverside,California,06065,2457,69 +2020-04-18,Riverside,California,06065,2602,74 +2020-04-19,Riverside,California,06065,2638,75 +2020-04-20,Riverside,California,06065,2847,85 +2020-04-21,Riverside,California,06065,2960,93 +2020-04-22,Riverside,California,06065,3084,99 +2020-04-23,Riverside,California,06065,3218,109 +2020-04-24,Riverside,California,06065,3315,112 +2020-04-25,Riverside,California,06065,3409,117 +2020-04-26,Riverside,California,06065,3563,118 +2020-04-27,Riverside,California,06065,3643,141 +2020-04-28,Riverside,California,06065,3735,141 +2020-04-29,Riverside,California,06065,3942,143 +2020-04-30,Riverside,California,06065,4031,149 +2020-05-01,Riverside,California,06065,4079,156 +2020-05-02,Riverside,California,06065,4164,167 +2020-05-03,Riverside,California,06065,4180,167 +2020-05-04,Riverside,California,06065,4354,181 +2020-05-05,Riverside,California,06065,4454,184 +2020-05-06,Riverside,California,06065,4672,190 +2020-05-07,Riverside,California,06065,4756,194 +2020-05-08,Riverside,California,06065,4817,204 +2020-05-09,Riverside,California,06065,4992,210 +2020-05-10,Riverside,California,06065,5039,212 +2020-05-11,Riverside,California,06065,5189,217 +2020-05-12,Riverside,California,06065,5248,228 +2020-05-13,Riverside,California,06065,5343,238 +2020-05-14,Riverside,California,06065,5440,246 +2020-05-15,Riverside,California,06065,5618,249 +2020-05-16,Riverside,California,06065,5618,255 +2020-05-17,Riverside,California,06065,5633,259 +2020-05-18,Riverside,California,06065,5952,263 +2020-05-19,Riverside,California,06065,6053,270 +2020-05-20,Riverside,California,06065,6184,274 +2020-05-21,Riverside,California,06065,6343,284 +2020-05-22,Riverside,California,06065,6464,290 +2020-05-23,Riverside,California,06065,6464,298 +2020-05-24,Riverside,California,06065,6464,299 +2020-05-25,Riverside,California,06065,7004,304 +2020-05-26,Riverside,California,06065,7139,309 +2020-05-27,Riverside,California,06065,7252,314 +2020-05-28,Riverside,California,06065,7341,320 +2020-05-29,Riverside,California,06065,7486,331 +2020-05-30,Riverside,California,06065,7486,339 +2020-05-31,Riverside,California,06065,7492,339 +2020-06-01,Riverside,California,06065,7982,344 +2020-06-02,Riverside,California,06065,8155,344 +2020-06-03,Riverside,California,06065,8303,345 +2020-06-04,Riverside,California,06065,8303,345 +2020-06-05,Riverside,California,06065,8777,355 +2020-06-06,Riverside,California,06065,8777,355 +2020-06-07,Riverside,California,06065,8935,355 +2020-06-08,Riverside,California,06065,9206,356 +2020-06-09,Riverside,California,06065,9590,365 +2020-06-10,Riverside,California,06065,9911,372 +2020-06-11,Riverside,California,06065,10240,380 +2020-06-12,Riverside,California,06065,10490,383 +2020-06-13,Riverside,California,06065,10616,383 +2020-06-14,Riverside,California,06065,10931,383 +2020-06-15,Riverside,California,06065,11285,384 +2020-06-16,Riverside,California,06065,11694,395 +2020-06-17,Riverside,California,06065,11951,399 +2020-06-18,Riverside,California,06065,12467,408 +2020-06-19,Riverside,California,06065,12778,410 +2020-06-20,Riverside,California,06065,12778,410 +2020-06-21,Riverside,California,06065,13021,410 +2020-06-22,Riverside,California,06065,13800,424 +2020-06-23,Riverside,California,06065,14431,431 +2020-06-24,Riverside,California,06065,14905,432 +2020-06-25,Riverside,California,06065,15142,435 +2020-06-26,Riverside,California,06065,15643,438 +2020-06-27,Riverside,California,06065,15858,438 +2020-06-28,Riverside,California,06065,16209,438 +2020-06-29,Riverside,California,06065,16848,440 +2020-06-30,Riverside,California,06065,17683,457 +2020-07-01,Riverside,California,06065,18656,463 +2020-07-02,Riverside,California,06065,19537,465 +2020-07-03,Riverside,California,06065,20253,479 +2020-07-04,Riverside,California,06065,21171,479 +2020-07-05,Riverside,California,06065,21508,479 +2020-07-06,Riverside,California,06065,21511,486 +2020-07-07,Riverside,California,06065,22485,506 +2020-07-08,Riverside,California,06065,23279,515 +2020-07-09,Riverside,California,06065,24042,533 +2020-02-21,Sacramento,California,06067,1,0 +2020-02-22,Sacramento,California,06067,1,0 +2020-02-23,Sacramento,California,06067,1,0 +2020-02-24,Sacramento,California,06067,1,0 +2020-02-25,Sacramento,California,06067,1,0 +2020-02-26,Sacramento,California,06067,3,0 +2020-02-27,Sacramento,California,06067,3,0 +2020-02-28,Sacramento,California,06067,3,0 +2020-02-29,Sacramento,California,06067,3,0 +2020-03-01,Sacramento,California,06067,3,0 +2020-03-02,Sacramento,California,06067,3,0 +2020-03-03,Sacramento,California,06067,3,0 +2020-03-04,Sacramento,California,06067,3,0 +2020-03-05,Sacramento,California,06067,3,0 +2020-03-06,Sacramento,California,06067,3,0 +2020-03-07,Sacramento,California,06067,3,0 +2020-03-08,Sacramento,California,06067,3,0 +2020-03-09,Sacramento,California,06067,9,0 +2020-03-10,Sacramento,California,06067,9,1 +2020-03-11,Sacramento,California,06067,9,1 +2020-03-12,Sacramento,California,06067,16,1 +2020-03-13,Sacramento,California,06067,16,1 +2020-03-14,Sacramento,California,06067,28,1 +2020-03-15,Sacramento,California,06067,32,1 +2020-03-16,Sacramento,California,06067,32,2 +2020-03-17,Sacramento,California,06067,39,2 +2020-03-18,Sacramento,California,06067,39,2 +2020-03-19,Sacramento,California,06067,44,3 +2020-03-20,Sacramento,California,06067,52,3 +2020-03-21,Sacramento,California,06067,52,3 +2020-03-22,Sacramento,California,06067,52,3 +2020-03-23,Sacramento,California,06067,87,4 +2020-03-24,Sacramento,California,06067,87,4 +2020-03-25,Sacramento,California,06067,112,5 +2020-03-26,Sacramento,California,06067,112,5 +2020-03-27,Sacramento,California,06067,164,6 +2020-03-28,Sacramento,California,06067,164,6 +2020-03-29,Sacramento,California,06067,164,6 +2020-03-30,Sacramento,California,06067,224,7 +2020-03-31,Sacramento,California,06067,224,7 +2020-04-01,Sacramento,California,06067,314,9 +2020-04-02,Sacramento,California,06067,340,9 +2020-04-03,Sacramento,California,06067,389,10 +2020-04-04,Sacramento,California,06067,411,12 +2020-04-05,Sacramento,California,06067,441,16 +2020-04-06,Sacramento,California,06067,461,18 +2020-04-07,Sacramento,California,06067,524,21 +2020-04-08,Sacramento,California,06067,579,22 +2020-04-09,Sacramento,California,06067,612,22 +2020-04-10,Sacramento,California,06067,652,24 +2020-04-11,Sacramento,California,06067,699,26 +2020-04-12,Sacramento,California,06067,707,26 +2020-04-13,Sacramento,California,06067,739,27 +2020-04-14,Sacramento,California,06067,816,28 +2020-04-15,Sacramento,California,06067,853,32 +2020-04-16,Sacramento,California,06067,879,32 +2020-04-17,Sacramento,California,06067,896,32 +2020-04-18,Sacramento,California,06067,914,33 +2020-04-19,Sacramento,California,06067,925,34 +2020-04-20,Sacramento,California,06067,940,34 +2020-04-21,Sacramento,California,06067,954,35 +2020-04-22,Sacramento,California,06067,971,36 +2020-04-23,Sacramento,California,06067,987,41 +2020-04-24,Sacramento,California,06067,1019,41 +2020-04-25,Sacramento,California,06067,1025,41 +2020-04-26,Sacramento,California,06067,1037,41 +2020-04-27,Sacramento,California,06067,1045,41 +2020-04-28,Sacramento,California,06067,1053,41 +2020-04-29,Sacramento,California,06067,1068,42 +2020-04-30,Sacramento,California,06067,1077,43 +2020-05-01,Sacramento,California,06067,1090,43 +2020-05-02,Sacramento,California,06067,1106,43 +2020-05-03,Sacramento,California,06067,1116,43 +2020-05-04,Sacramento,California,06067,1126,47 +2020-05-05,Sacramento,California,06067,1132,47 +2020-05-06,Sacramento,California,06067,1132,47 +2020-05-07,Sacramento,California,06067,1132,49 +2020-05-08,Sacramento,California,06067,1159,50 +2020-05-09,Sacramento,California,06067,1164,51 +2020-05-10,Sacramento,California,06067,1166,52 +2020-05-11,Sacramento,California,06067,1172,52 +2020-05-12,Sacramento,California,06067,1180,52 +2020-05-13,Sacramento,California,06067,1182,52 +2020-05-14,Sacramento,California,06067,1193,54 +2020-05-15,Sacramento,California,06067,1210,54 +2020-05-16,Sacramento,California,06067,1221,55 +2020-05-17,Sacramento,California,06067,1236,55 +2020-05-18,Sacramento,California,06067,1244,56 +2020-05-19,Sacramento,California,06067,1249,56 +2020-05-20,Sacramento,California,06067,1254,57 +2020-05-21,Sacramento,California,06067,1265,57 +2020-05-22,Sacramento,California,06067,1271,57 +2020-05-23,Sacramento,California,06067,1288,57 +2020-05-24,Sacramento,California,06067,1292,57 +2020-05-25,Sacramento,California,06067,1301,57 +2020-05-26,Sacramento,California,06067,1309,57 +2020-05-27,Sacramento,California,06067,1318,57 +2020-05-28,Sacramento,California,06067,1348,57 +2020-05-29,Sacramento,California,06067,1372,57 +2020-05-30,Sacramento,California,06067,1399,57 +2020-05-31,Sacramento,California,06067,1414,57 +2020-06-01,Sacramento,California,06067,1428,58 +2020-06-02,Sacramento,California,06067,1438,58 +2020-06-03,Sacramento,California,06067,1462,58 +2020-06-04,Sacramento,California,06067,1489,58 +2020-06-05,Sacramento,California,06067,1518,59 +2020-06-06,Sacramento,California,06067,1536,59 +2020-06-07,Sacramento,California,06067,1568,59 +2020-06-08,Sacramento,California,06067,1587,61 +2020-06-09,Sacramento,California,06067,1623,61 +2020-06-10,Sacramento,California,06067,1641,62 +2020-06-11,Sacramento,California,06067,1669,63 +2020-06-12,Sacramento,California,06067,1703,63 +2020-06-13,Sacramento,California,06067,1715,63 +2020-06-14,Sacramento,California,06067,1752,63 +2020-06-15,Sacramento,California,06067,1793,63 +2020-06-16,Sacramento,California,06067,1824,63 +2020-06-17,Sacramento,California,06067,1891,67 +2020-06-18,Sacramento,California,06067,1939,67 +2020-06-19,Sacramento,California,06067,1975,67 +2020-06-20,Sacramento,California,06067,2068,67 +2020-06-21,Sacramento,California,06067,2159,67 +2020-06-22,Sacramento,California,06067,2242,67 +2020-06-23,Sacramento,California,06067,2373,66 +2020-06-24,Sacramento,California,06067,2439,66 +2020-06-25,Sacramento,California,06067,2511,66 +2020-06-26,Sacramento,California,06067,2665,66 +2020-06-27,Sacramento,California,06067,2686,66 +2020-06-28,Sacramento,California,06067,2775,66 +2020-06-29,Sacramento,California,06067,3003,68 +2020-06-30,Sacramento,California,06067,3222,68 +2020-07-01,Sacramento,California,06067,3396,68 +2020-07-02,Sacramento,California,06067,3558,69 +2020-07-03,Sacramento,California,06067,3670,69 +2020-07-04,Sacramento,California,06067,4003,69 +2020-07-05,Sacramento,California,06067,4235,69 +2020-07-06,Sacramento,California,06067,4394,74 +2020-07-07,Sacramento,California,06067,4565,76 +2020-07-08,Sacramento,California,06067,4775,78 +2020-07-09,Sacramento,California,06067,4931,78 +2020-03-13,San Benito,California,06069,1,0 +2020-03-14,San Benito,California,06069,1,0 +2020-03-15,San Benito,California,06069,1,0 +2020-03-16,San Benito,California,06069,1,0 +2020-03-17,San Benito,California,06069,2,1 +2020-03-18,San Benito,California,06069,5,1 +2020-03-19,San Benito,California,06069,5,1 +2020-03-20,San Benito,California,06069,5,1 +2020-03-21,San Benito,California,06069,5,1 +2020-03-22,San Benito,California,06069,5,1 +2020-03-23,San Benito,California,06069,6,1 +2020-03-24,San Benito,California,06069,7,1 +2020-03-25,San Benito,California,06069,9,1 +2020-03-26,San Benito,California,06069,9,1 +2020-03-27,San Benito,California,06069,11,1 +2020-03-28,San Benito,California,06069,11,1 +2020-03-29,San Benito,California,06069,14,1 +2020-03-30,San Benito,California,06069,17,1 +2020-03-31,San Benito,California,06069,21,1 +2020-04-01,San Benito,California,06069,23,1 +2020-04-02,San Benito,California,06069,23,1 +2020-04-03,San Benito,California,06069,23,2 +2020-04-04,San Benito,California,06069,23,2 +2020-04-05,San Benito,California,06069,23,2 +2020-04-06,San Benito,California,06069,30,2 +2020-04-07,San Benito,California,06069,31,2 +2020-04-08,San Benito,California,06069,33,2 +2020-04-09,San Benito,California,06069,34,2 +2020-04-10,San Benito,California,06069,35,2 +2020-04-11,San Benito,California,06069,35,2 +2020-04-12,San Benito,California,06069,35,2 +2020-04-13,San Benito,California,06069,38,2 +2020-04-14,San Benito,California,06069,39,2 +2020-04-15,San Benito,California,06069,41,2 +2020-04-16,San Benito,California,06069,42,2 +2020-04-17,San Benito,California,06069,44,2 +2020-04-18,San Benito,California,06069,44,2 +2020-04-19,San Benito,California,06069,44,2 +2020-04-20,San Benito,California,06069,44,2 +2020-04-21,San Benito,California,06069,45,2 +2020-04-22,San Benito,California,06069,46,2 +2020-04-23,San Benito,California,06069,47,2 +2020-04-24,San Benito,California,06069,47,2 +2020-04-25,San Benito,California,06069,47,2 +2020-04-26,San Benito,California,06069,47,2 +2020-04-27,San Benito,California,06069,48,2 +2020-04-28,San Benito,California,06069,50,2 +2020-04-29,San Benito,California,06069,50,2 +2020-04-30,San Benito,California,06069,51,2 +2020-05-01,San Benito,California,06069,51,2 +2020-05-02,San Benito,California,06069,51,2 +2020-05-03,San Benito,California,06069,51,2 +2020-05-04,San Benito,California,06069,52,2 +2020-05-05,San Benito,California,06069,53,2 +2020-05-06,San Benito,California,06069,53,2 +2020-05-07,San Benito,California,06069,54,2 +2020-05-08,San Benito,California,06069,55,2 +2020-05-09,San Benito,California,06069,55,2 +2020-05-10,San Benito,California,06069,55,2 +2020-05-11,San Benito,California,06069,56,2 +2020-05-12,San Benito,California,06069,58,2 +2020-05-13,San Benito,California,06069,58,2 +2020-05-14,San Benito,California,06069,59,2 +2020-05-15,San Benito,California,06069,60,2 +2020-05-16,San Benito,California,06069,61,2 +2020-05-17,San Benito,California,06069,61,2 +2020-05-18,San Benito,California,06069,61,2 +2020-05-19,San Benito,California,06069,63,2 +2020-05-20,San Benito,California,06069,64,2 +2020-05-21,San Benito,California,06069,66,2 +2020-05-22,San Benito,California,06069,69,2 +2020-05-23,San Benito,California,06069,69,2 +2020-05-24,San Benito,California,06069,70,2 +2020-05-25,San Benito,California,06069,72,2 +2020-05-26,San Benito,California,06069,76,2 +2020-05-27,San Benito,California,06069,83,2 +2020-05-28,San Benito,California,06069,85,2 +2020-05-29,San Benito,California,06069,87,2 +2020-05-30,San Benito,California,06069,87,2 +2020-05-31,San Benito,California,06069,87,2 +2020-06-01,San Benito,California,06069,88,2 +2020-06-02,San Benito,California,06069,90,2 +2020-06-03,San Benito,California,06069,96,2 +2020-06-04,San Benito,California,06069,102,2 +2020-06-05,San Benito,California,06069,105,2 +2020-06-06,San Benito,California,06069,105,2 +2020-06-07,San Benito,California,06069,107,2 +2020-06-08,San Benito,California,06069,109,2 +2020-06-09,San Benito,California,06069,109,2 +2020-06-10,San Benito,California,06069,109,2 +2020-06-11,San Benito,California,06069,112,2 +2020-06-12,San Benito,California,06069,118,2 +2020-06-13,San Benito,California,06069,121,2 +2020-06-14,San Benito,California,06069,125,2 +2020-06-15,San Benito,California,06069,129,2 +2020-06-16,San Benito,California,06069,136,2 +2020-06-17,San Benito,California,06069,140,2 +2020-06-18,San Benito,California,06069,153,2 +2020-06-19,San Benito,California,06069,161,2 +2020-06-20,San Benito,California,06069,164,2 +2020-06-21,San Benito,California,06069,170,2 +2020-06-22,San Benito,California,06069,181,2 +2020-06-23,San Benito,California,06069,185,2 +2020-06-24,San Benito,California,06069,191,2 +2020-06-25,San Benito,California,06069,194,2 +2020-06-26,San Benito,California,06069,198,2 +2020-06-27,San Benito,California,06069,205,2 +2020-06-28,San Benito,California,06069,206,2 +2020-06-29,San Benito,California,06069,213,2 +2020-06-30,San Benito,California,06069,233,2 +2020-07-01,San Benito,California,06069,239,2 +2020-07-02,San Benito,California,06069,257,2 +2020-07-03,San Benito,California,06069,260,2 +2020-07-04,San Benito,California,06069,265,2 +2020-07-05,San Benito,California,06069,273,2 +2020-07-06,San Benito,California,06069,284,2 +2020-07-07,San Benito,California,06069,292,2 +2020-07-08,San Benito,California,06069,304,2 +2020-07-09,San Benito,California,06069,311,2 +2020-03-15,San Bernardino,California,06071,1,0 +2020-03-16,San Bernardino,California,06071,2,0 +2020-03-17,San Bernardino,California,06071,3,0 +2020-03-18,San Bernardino,California,06071,5,0 +2020-03-19,San Bernardino,California,06071,5,0 +2020-03-20,San Bernardino,California,06071,9,0 +2020-03-21,San Bernardino,California,06071,9,0 +2020-03-22,San Bernardino,California,06071,17,0 +2020-03-23,San Bernardino,California,06071,17,0 +2020-03-24,San Bernardino,California,06071,38,1 +2020-03-25,San Bernardino,California,06071,54,2 +2020-03-26,San Bernardino,California,06071,55,3 +2020-03-27,San Bernardino,California,06071,64,3 +2020-03-28,San Bernardino,California,06071,64,3 +2020-03-29,San Bernardino,California,06071,111,3 +2020-03-30,San Bernardino,California,06071,111,3 +2020-03-31,San Bernardino,California,06071,183,6 +2020-04-01,San Bernardino,California,06071,254,6 +2020-04-02,San Bernardino,California,06071,304,8 +2020-04-03,San Bernardino,California,06071,353,13 +2020-04-04,San Bernardino,California,06071,353,13 +2020-04-05,San Bernardino,California,06071,372,13 +2020-04-06,San Bernardino,California,06071,530,16 +2020-04-07,San Bernardino,California,06071,547,17 +2020-04-08,San Bernardino,California,06071,641,20 +2020-04-09,San Bernardino,California,06071,729,24 +2020-04-10,San Bernardino,California,06071,810,25 +2020-04-11,San Bernardino,California,06071,810,25 +2020-04-12,San Bernardino,California,06071,887,31 +2020-04-13,San Bernardino,California,06071,977,31 +2020-04-14,San Bernardino,California,06071,977,31 +2020-04-15,San Bernardino,California,06071,996,39 +2020-04-16,San Bernardino,California,06071,1032,47 +2020-04-17,San Bernardino,California,06071,1096,55 +2020-04-18,San Bernardino,California,06071,1219,57 +2020-04-19,San Bernardino,California,06071,1286,57 +2020-04-20,San Bernardino,California,06071,1406,60 +2020-04-21,San Bernardino,California,06071,1489,67 +2020-04-22,San Bernardino,California,06071,1489,67 +2020-04-23,San Bernardino,California,06071,1564,72 +2020-04-24,San Bernardino,California,06071,1666,80 +2020-04-25,San Bernardino,California,06071,1732,82 +2020-04-26,San Bernardino,California,06071,1751,82 +2020-04-27,San Bernardino,California,06071,1772,82 +2020-04-28,San Bernardino,California,06071,1827,85 +2020-04-29,San Bernardino,California,06071,1928,89 +2020-04-30,San Bernardino,California,06071,2058,93 +2020-05-01,San Bernardino,California,06071,2113,96 +2020-05-02,San Bernardino,California,06071,2182,98 +2020-05-03,San Bernardino,California,06071,2182,99 +2020-05-04,San Bernardino,California,06071,2182,99 +2020-05-05,San Bernardino,California,06071,2329,101 +2020-05-06,San Bernardino,California,06071,2432,104 +2020-05-07,San Bernardino,California,06071,2562,108 +2020-05-08,San Bernardino,California,06071,2629,111 +2020-05-09,San Bernardino,California,06071,2902,119 +2020-05-10,San Bernardino,California,06071,2964,121 +2020-05-11,San Bernardino,California,06071,3015,121 +2020-05-12,San Bernardino,California,06071,3078,121 +2020-05-13,San Bernardino,California,06071,3153,138 +2020-05-14,San Bernardino,California,06071,3198,139 +2020-05-15,San Bernardino,California,06071,3311,150 +2020-05-16,San Bernardino,California,06071,3463,155 +2020-05-17,San Bernardino,California,06071,3511,155 +2020-05-18,San Bernardino,California,06071,3593,155 +2020-05-19,San Bernardino,California,06071,3707,157 +2020-05-20,San Bernardino,California,06071,3795,158 +2020-05-21,San Bernardino,California,06071,3984,164 +2020-05-22,San Bernardino,California,06071,4146,173 +2020-05-23,San Bernardino,California,06071,4315,176 +2020-05-24,San Bernardino,California,06071,4365,176 +2020-05-25,San Bernardino,California,06071,4365,176 +2020-05-26,San Bernardino,California,06071,4567,176 +2020-05-27,San Bernardino,California,06071,4777,183 +2020-05-28,San Bernardino,California,06071,4914,190 +2020-05-29,San Bernardino,California,06071,5034,199 +2020-05-30,San Bernardino,California,06071,5200,204 +2020-05-31,San Bernardino,California,06071,5246,204 +2020-06-01,San Bernardino,California,06071,5355,204 +2020-06-02,San Bernardino,California,06071,5501,208 +2020-06-03,San Bernardino,California,06071,5650,209 +2020-06-04,San Bernardino,California,06071,5793,210 +2020-06-05,San Bernardino,California,06071,5930,217 +2020-06-06,San Bernardino,California,06071,6040,224 +2020-06-07,San Bernardino,California,06071,6040,224 +2020-06-08,San Bernardino,California,06071,6247,224 +2020-06-09,San Bernardino,California,06071,6417,224 +2020-06-10,San Bernardino,California,06071,6593,225 +2020-06-11,San Bernardino,California,06071,6742,227 +2020-06-12,San Bernardino,California,06071,6976,229 +2020-06-13,San Bernardino,California,06071,7161,229 +2020-06-14,San Bernardino,California,06071,7359,229 +2020-06-15,San Bernardino,California,06071,7515,229 +2020-06-16,San Bernardino,California,06071,7796,229 +2020-06-17,San Bernardino,California,06071,8014,229 +2020-06-18,San Bernardino,California,06071,8454,230 +2020-06-19,San Bernardino,California,06071,8714,230 +2020-06-20,San Bernardino,California,06071,8959,233 +2020-06-21,San Bernardino,California,06071,9156,233 +2020-06-22,San Bernardino,California,06071,9361,234 +2020-06-23,San Bernardino,California,06071,10010,234 +2020-06-24,San Bernardino,California,06071,10407,245 +2020-06-25,San Bernardino,California,06071,10769,248 +2020-06-26,San Bernardino,California,06071,11290,249 +2020-06-27,San Bernardino,California,06071,11290,249 +2020-06-28,San Bernardino,California,06071,11501,249 +2020-06-29,San Bernardino,California,06071,11797,249 +2020-06-30,San Bernardino,California,06071,12550,253 +2020-07-01,San Bernardino,California,06071,12746,258 +2020-07-02,San Bernardino,California,06071,13152,265 +2020-07-03,San Bernardino,California,06071,13676,269 +2020-07-04,San Bernardino,California,06071,14040,269 +2020-07-05,San Bernardino,California,06071,14922,269 +2020-07-06,San Bernardino,California,06071,15345,269 +2020-07-07,San Bernardino,California,06071,15932,272 +2020-07-08,San Bernardino,California,06071,16586,293 +2020-07-09,San Bernardino,California,06071,17414,304 +2020-02-10,San Diego,California,06073,1,0 +2020-02-11,San Diego,California,06073,1,0 +2020-02-12,San Diego,California,06073,1,0 +2020-02-13,San Diego,California,06073,1,0 +2020-02-14,San Diego,California,06073,1,0 +2020-02-15,San Diego,California,06073,1,0 +2020-02-16,San Diego,California,06073,1,0 +2020-02-17,San Diego,California,06073,1,0 +2020-02-18,San Diego,California,06073,1,0 +2020-02-19,San Diego,California,06073,1,0 +2020-02-20,San Diego,California,06073,1,0 +2020-02-21,San Diego,California,06073,1,0 +2020-02-22,San Diego,California,06073,1,0 +2020-02-23,San Diego,California,06073,1,0 +2020-02-24,San Diego,California,06073,1,0 +2020-02-25,San Diego,California,06073,1,0 +2020-02-26,San Diego,California,06073,1,0 +2020-02-27,San Diego,California,06073,1,0 +2020-02-28,San Diego,California,06073,1,0 +2020-02-29,San Diego,California,06073,1,0 +2020-03-01,San Diego,California,06073,1,0 +2020-03-02,San Diego,California,06073,1,0 +2020-03-03,San Diego,California,06073,1,0 +2020-03-04,San Diego,California,06073,1,0 +2020-03-05,San Diego,California,06073,1,0 +2020-03-06,San Diego,California,06073,1,0 +2020-03-07,San Diego,California,06073,1,0 +2020-03-08,San Diego,California,06073,1,0 +2020-03-09,San Diego,California,06073,2,0 +2020-03-10,San Diego,California,06073,2,0 +2020-03-11,San Diego,California,06073,2,0 +2020-03-12,San Diego,California,06073,5,0 +2020-03-13,San Diego,California,06073,9,0 +2020-03-14,San Diego,California,06073,10,0 +2020-03-15,San Diego,California,06073,40,0 +2020-03-16,San Diego,California,06073,56,0 +2020-03-17,San Diego,California,06073,61,0 +2020-03-18,San Diego,California,06073,81,0 +2020-03-19,San Diego,California,06073,105,0 +2020-03-20,San Diego,California,06073,131,0 +2020-03-21,San Diego,California,06073,159,0 +2020-03-22,San Diego,California,06073,205,0 +2020-03-23,San Diego,California,06073,230,0 +2020-03-24,San Diego,California,06073,242,1 +2020-03-25,San Diego,California,06073,297,2 +2020-03-26,San Diego,California,06073,341,3 +2020-03-27,San Diego,California,06073,417,5 +2020-03-28,San Diego,California,06073,488,7 +2020-03-29,San Diego,California,06073,519,7 +2020-03-30,San Diego,California,06073,603,7 +2020-03-31,San Diego,California,06073,734,9 +2020-04-01,San Diego,California,06073,849,15 +2020-04-02,San Diego,California,06073,966,16 +2020-04-03,San Diego,California,06073,1112,17 +2020-04-04,San Diego,California,06073,1209,18 +2020-04-05,San Diego,California,06073,1326,19 +2020-04-06,San Diego,California,06073,1404,19 +2020-04-07,San Diego,California,06073,1454,31 +2020-04-08,San Diego,California,06073,1530,36 +2020-04-09,San Diego,California,06073,1628,40 +2020-04-10,San Diego,California,06073,1696,44 +2020-04-11,San Diego,California,06073,1761,45 +2020-04-12,San Diego,California,06073,1804,45 +2020-04-13,San Diego,California,06073,1847,47 +2020-04-14,San Diego,California,06073,1930,53 +2020-04-15,San Diego,California,06073,2012,60 +2020-04-16,San Diego,California,06073,2087,63 +2020-04-17,San Diego,California,06073,2158,70 +2020-04-18,San Diego,California,06073,2213,71 +2020-04-19,San Diego,California,06073,2268,71 +2020-04-20,San Diego,California,06073,2325,72 +2020-04-21,San Diego,California,06073,2434,87 +2020-04-22,San Diego,California,06073,2491,96 +2020-04-23,San Diego,California,06073,2643,112 +2020-04-24,San Diego,California,06073,2826,102 +2020-04-25,San Diego,California,06073,2943,111 +2020-04-26,San Diego,California,06073,3043,111 +2020-04-27,San Diego,California,06073,3141,123 +2020-04-28,San Diego,California,06073,3378,128 +2020-04-29,San Diego,California,06073,3432,133 +2020-04-30,San Diego,California,06073,3627,140 +2020-05-01,San Diego,California,06073,3774,143 +2020-05-02,San Diego,California,06073,3905,150 +2020-05-03,San Diego,California,06073,3990,150 +2020-05-04,San Diego,California,06073,4083,150 +2020-05-05,San Diego,California,06073,4223,162 +2020-05-06,San Diego,California,06073,4382,173 +2020-05-07,San Diego,California,06073,4492,186 +2020-05-08,San Diego,California,06073,4725,189 +2020-05-09,San Diego,California,06073,4839,194 +2020-05-10,San Diego,California,06073,4989,194 +2020-05-11,San Diego,California,06073,5128,194 +2020-05-12,San Diego,California,06073,5224,204 +2020-05-13,San Diego,California,06073,5341,217 +2020-05-14,San Diego,California,06073,5454,223 +2020-05-15,San Diego,California,06073,5586,231 +2020-05-16,San Diego,California,06073,5725,235 +2020-05-17,San Diego,California,06073,5899,235 +2020-05-18,San Diego,California,06073,6009,242 +2020-05-19,San Diego,California,06073,6089,242 +2020-05-20,San Diego,California,06073,6203,242 +2020-05-21,San Diego,California,06073,6378,262 +2020-05-22,San Diego,California,06073,6497,262 +2020-05-23,San Diego,California,06073,6622,271 +2020-05-24,San Diego,California,06073,6764,275 +2020-05-25,San Diego,California,06073,6860,275 +2020-05-26,San Diego,California,06073,6945,275 +2020-05-27,San Diego,California,06073,7046,290 +2020-05-28,San Diego,California,06073,7163,297 +2020-05-29,San Diego,California,06073,7303,307 +2020-05-30,San Diego,California,06073,7448,312 +2020-05-31,San Diego,California,06073,7544,312 +2020-06-01,San Diego,California,06073,7617,312 +2020-06-02,San Diego,California,06073,7737,312 +2020-06-03,San Diego,California,06073,7861,312 +2020-06-04,San Diego,California,06073,8003,312 +2020-06-05,San Diego,California,06073,8243,312 +2020-06-06,San Diego,California,06073,8408,312 +2020-06-07,San Diego,California,06073,8539,312 +2020-06-08,San Diego,California,06073,8682,312 +2020-06-09,San Diego,California,06073,8792,312 +2020-06-10,San Diego,California,06073,8900,312 +2020-06-11,San Diego,California,06073,9061,312 +2020-06-12,San Diego,California,06073,9193,313 +2020-06-13,San Diego,California,06073,9377,319 +2020-06-14,San Diego,California,06073,9503,320 +2020-06-15,San Diego,California,06073,9673,320 +2020-06-16,San Diego,California,06073,9793,323 +2020-06-17,San Diego,California,06073,9917,327 +2020-06-18,San Diego,California,06073,10155,331 +2020-06-19,San Diego,California,06073,10413,332 +2020-06-20,San Diego,California,06073,10547,338 +2020-06-21,San Diego,California,06073,10857,338 +2020-06-22,San Diego,California,06073,11159,338 +2020-06-23,San Diego,California,06073,11357,341 +2020-06-24,San Diego,California,06073,11689,347 +2020-06-25,San Diego,California,06073,12024,352 +2020-06-26,San Diego,California,06073,12464,358 +2020-06-27,San Diego,California,06073,12900,360 +2020-06-28,San Diego,California,06073,13397,361 +2020-06-29,San Diego,California,06073,13895,361 +2020-06-30,San Diego,California,06073,14212,365 +2020-07-01,San Diego,California,06073,14686,372 +2020-07-02,San Diego,California,06073,15270,377 +2020-07-03,San Diego,California,06073,15759,387 +2020-07-04,San Diego,California,06073,16227,387 +2020-07-05,San Diego,California,06073,16789,387 +2020-07-06,San Diego,California,06073,17063,387 +2020-07-07,San Diego,California,06073,17641,399 +2020-07-08,San Diego,California,06073,17905,406 +2020-07-09,San Diego,California,06073,18465,415 +2020-02-02,San Francisco,California,06075,2,0 +2020-02-03,San Francisco,California,06075,2,0 +2020-02-04,San Francisco,California,06075,2,0 +2020-02-05,San Francisco,California,06075,2,0 +2020-02-06,San Francisco,California,06075,2,0 +2020-02-07,San Francisco,California,06075,2,0 +2020-02-08,San Francisco,California,06075,2,0 +2020-02-09,San Francisco,California,06075,2,0 +2020-02-10,San Francisco,California,06075,2,0 +2020-02-11,San Francisco,California,06075,2,0 +2020-02-12,San Francisco,California,06075,2,0 +2020-02-13,San Francisco,California,06075,2,0 +2020-02-14,San Francisco,California,06075,2,0 +2020-02-15,San Francisco,California,06075,2,0 +2020-02-16,San Francisco,California,06075,2,0 +2020-02-17,San Francisco,California,06075,2,0 +2020-02-18,San Francisco,California,06075,2,0 +2020-02-19,San Francisco,California,06075,2,0 +2020-02-20,San Francisco,California,06075,2,0 +2020-02-21,San Francisco,California,06075,2,0 +2020-02-22,San Francisco,California,06075,2,0 +2020-02-23,San Francisco,California,06075,2,0 +2020-02-24,San Francisco,California,06075,3,0 +2020-02-25,San Francisco,California,06075,3,0 +2020-02-26,San Francisco,California,06075,3,0 +2020-02-27,San Francisco,California,06075,3,0 +2020-02-28,San Francisco,California,06075,3,0 +2020-02-29,San Francisco,California,06075,3,0 +2020-03-01,San Francisco,California,06075,3,0 +2020-03-02,San Francisco,California,06075,3,0 +2020-03-03,San Francisco,California,06075,3,0 +2020-03-04,San Francisco,California,06075,3,0 +2020-03-05,San Francisco,California,06075,5,0 +2020-03-06,San Francisco,California,06075,5,0 +2020-03-07,San Francisco,California,06075,11,0 +2020-03-08,San Francisco,California,06075,11,0 +2020-03-09,San Francisco,California,06075,16,0 +2020-03-10,San Francisco,California,06075,17,0 +2020-03-11,San Francisco,California,06075,17,0 +2020-03-12,San Francisco,California,06075,21,0 +2020-03-13,San Francisco,California,06075,26,0 +2020-03-14,San Francisco,California,06075,31,0 +2020-03-15,San Francisco,California,06075,37,0 +2020-03-16,San Francisco,California,06075,43,0 +2020-03-17,San Francisco,California,06075,46,0 +2020-03-18,San Francisco,California,06075,51,0 +2020-03-19,San Francisco,California,06075,73,0 +2020-03-20,San Francisco,California,06075,79,0 +2020-03-21,San Francisco,California,06075,84,0 +2020-03-22,San Francisco,California,06075,111,0 +2020-03-23,San Francisco,California,06075,134,0 +2020-03-24,San Francisco,California,06075,152,0 +2020-03-25,San Francisco,California,06075,181,1 +2020-03-26,San Francisco,California,06075,226,2 +2020-03-27,San Francisco,California,06075,282,3 +2020-03-28,San Francisco,California,06075,308,4 +2020-03-29,San Francisco,California,06075,343,5 +2020-03-30,San Francisco,California,06075,374,6 +2020-03-31,San Francisco,California,06075,400,6 +2020-04-01,San Francisco,California,06075,437,7 +2020-04-02,San Francisco,California,06075,450,7 +2020-04-03,San Francisco,California,06075,500,7 +2020-04-04,San Francisco,California,06075,529,8 +2020-04-05,San Francisco,California,06075,571,8 +2020-04-06,San Francisco,California,06075,586,9 +2020-04-07,San Francisco,California,06075,622,9 +2020-04-08,San Francisco,California,06075,679,10 +2020-04-09,San Francisco,California,06075,727,10 +2020-04-10,San Francisco,California,06075,800,13 +2020-04-11,San Francisco,California,06075,860,13 +2020-04-12,San Francisco,California,06075,875,14 +2020-04-13,San Francisco,California,06075,960,15 +2020-04-14,San Francisco,California,06075,990,15 +2020-04-15,San Francisco,California,06075,1016,17 +2020-04-16,San Francisco,California,06075,1022,17 +2020-04-17,San Francisco,California,06075,1061,20 +2020-04-18,San Francisco,California,06075,1140,20 +2020-04-19,San Francisco,California,06075,1160,20 +2020-04-20,San Francisco,California,06075,1219,20 +2020-04-21,San Francisco,California,06075,1234,20 +2020-04-22,San Francisco,California,06075,1236,21 +2020-04-23,San Francisco,California,06075,1305,21 +2020-04-24,San Francisco,California,06075,1343,22 +2020-04-25,San Francisco,California,06075,1357,22 +2020-04-26,San Francisco,California,06075,1411,22 +2020-04-27,San Francisco,California,06075,1427,23 +2020-04-28,San Francisco,California,06075,1471,23 +2020-04-29,San Francisco,California,06075,1490,23 +2020-04-30,San Francisco,California,06075,1502,25 +2020-05-01,San Francisco,California,06075,1526,28 +2020-05-02,San Francisco,California,06075,1552,29 +2020-05-03,San Francisco,California,06075,1632,29 +2020-05-04,San Francisco,California,06075,1692,30 +2020-05-05,San Francisco,California,06075,1760,31 +2020-05-06,San Francisco,California,06075,1779,31 +2020-05-07,San Francisco,California,06075,1806,32 +2020-05-08,San Francisco,California,06075,1856,33 +2020-05-09,San Francisco,California,06075,1894,33 +2020-05-10,San Francisco,California,06075,1946,34 +2020-05-11,San Francisco,California,06075,1957,35 +2020-05-12,San Francisco,California,06075,1980,35 +2020-05-13,San Francisco,California,06075,1997,35 +2020-05-14,San Francisco,California,06075,2007,35 +2020-05-15,San Francisco,California,06075,2032,36 +2020-05-16,San Francisco,California,06075,2065,36 +2020-05-17,San Francisco,California,06075,2097,36 +2020-05-18,San Francisco,California,06075,2135,36 +2020-05-19,San Francisco,California,06075,2186,36 +2020-05-20,San Francisco,California,06075,2189,37 +2020-05-21,San Francisco,California,06075,2202,37 +2020-05-22,San Francisco,California,06075,2323,40 +2020-05-23,San Francisco,California,06075,2353,40 +2020-05-24,San Francisco,California,06075,2370,40 +2020-05-25,San Francisco,California,06075,2389,40 +2020-05-26,San Francisco,California,06075,2402,40 +2020-05-27,San Francisco,California,06075,2411,40 +2020-05-28,San Francisco,California,06075,2440,40 +2020-05-29,San Francisco,California,06075,2476,41 +2020-05-30,San Francisco,California,06075,2535,41 +2020-05-31,San Francisco,California,06075,2561,42 +2020-06-01,San Francisco,California,06075,2573,43 +2020-06-02,San Francisco,California,06075,2590,43 +2020-06-03,San Francisco,California,06075,2616,43 +2020-06-04,San Francisco,California,06075,2647,43 +2020-06-05,San Francisco,California,06075,2701,43 +2020-06-06,San Francisco,California,06075,2715,43 +2020-06-07,San Francisco,California,06075,2750,43 +2020-06-08,San Francisco,California,06075,2782,43 +2020-06-09,San Francisco,California,06075,2796,44 +2020-06-10,San Francisco,California,06075,2812,44 +2020-06-11,San Francisco,California,06075,2843,44 +2020-06-12,San Francisco,California,06075,2880,44 +2020-06-13,San Francisco,California,06075,2909,44 +2020-06-14,San Francisco,California,06075,2931,45 +2020-06-15,San Francisco,California,06075,2955,45 +2020-06-16,San Francisco,California,06075,2974,46 +2020-06-17,San Francisco,California,06075,2985,47 +2020-06-18,San Francisco,California,06075,3023,47 +2020-06-19,San Francisco,California,06075,3060,47 +2020-06-20,San Francisco,California,06075,3061,47 +2020-06-21,San Francisco,California,06075,3061,47 +2020-06-22,San Francisco,California,06075,3188,48 +2020-06-23,San Francisco,California,06075,3222,48 +2020-06-24,San Francisco,California,06075,3252,48 +2020-06-25,San Francisco,California,06075,3300,48 +2020-06-26,San Francisco,California,06075,3403,48 +2020-06-27,San Francisco,California,06075,3471,49 +2020-06-28,San Francisco,California,06075,3515,50 +2020-06-29,San Francisco,California,06075,3564,50 +2020-06-30,San Francisco,California,06075,3606,50 +2020-07-01,San Francisco,California,06075,3651,50 +2020-07-02,San Francisco,California,06075,3722,50 +2020-07-03,San Francisco,California,06075,3722,50 +2020-07-04,San Francisco,California,06075,3784,50 +2020-07-05,San Francisco,California,06075,3864,50 +2020-07-06,San Francisco,California,06075,3995,50 +2020-07-07,San Francisco,California,06075,4023,50 +2020-07-08,San Francisco,California,06075,4074,50 +2020-07-09,San Francisco,California,06075,4148,50 +2020-03-10,San Joaquin,California,06077,1,0 +2020-03-11,San Joaquin,California,06077,1,0 +2020-03-12,San Joaquin,California,06077,3,0 +2020-03-13,San Joaquin,California,06077,8,0 +2020-03-14,San Joaquin,California,06077,8,0 +2020-03-15,San Joaquin,California,06077,8,0 +2020-03-16,San Joaquin,California,06077,9,0 +2020-03-17,San Joaquin,California,06077,13,0 +2020-03-18,San Joaquin,California,06077,14,2 +2020-03-19,San Joaquin,California,06077,17,2 +2020-03-20,San Joaquin,California,06077,25,2 +2020-03-21,San Joaquin,California,06077,31,2 +2020-03-22,San Joaquin,California,06077,41,2 +2020-03-23,San Joaquin,California,06077,51,2 +2020-03-24,San Joaquin,California,06077,60,2 +2020-03-25,San Joaquin,California,06077,71,3 +2020-03-26,San Joaquin,California,06077,83,3 +2020-03-27,San Joaquin,California,06077,93,4 +2020-03-28,San Joaquin,California,06077,108,4 +2020-03-29,San Joaquin,California,06077,121,5 +2020-03-30,San Joaquin,California,06077,136,6 +2020-03-31,San Joaquin,California,06077,151,8 +2020-04-01,San Joaquin,California,06077,161,8 +2020-04-02,San Joaquin,California,06077,178,10 +2020-04-03,San Joaquin,California,06077,185,11 +2020-04-04,San Joaquin,California,06077,191,11 +2020-04-05,San Joaquin,California,06077,203,11 +2020-04-06,San Joaquin,California,06077,212,11 +2020-04-07,San Joaquin,California,06077,223,13 +2020-04-08,San Joaquin,California,06077,237,14 +2020-04-09,San Joaquin,California,06077,245,14 +2020-04-10,San Joaquin,California,06077,257,14 +2020-04-11,San Joaquin,California,06077,260,15 +2020-04-12,San Joaquin,California,06077,273,16 +2020-04-13,San Joaquin,California,06077,309,17 +2020-04-14,San Joaquin,California,06077,335,17 +2020-04-15,San Joaquin,California,06077,364,17 +2020-04-16,San Joaquin,California,06077,369,17 +2020-04-17,San Joaquin,California,06077,398,17 +2020-04-18,San Joaquin,California,06077,410,17 +2020-04-19,San Joaquin,California,06077,418,17 +2020-04-20,San Joaquin,California,06077,446,18 +2020-04-21,San Joaquin,California,06077,456,20 +2020-04-22,San Joaquin,California,06077,472,20 +2020-04-23,San Joaquin,California,06077,487,22 +2020-04-24,San Joaquin,California,06077,495,24 +2020-04-25,San Joaquin,California,06077,507,25 +2020-04-26,San Joaquin,California,06077,523,25 +2020-04-27,San Joaquin,California,06077,527,25 +2020-04-28,San Joaquin,California,06077,529,25 +2020-04-29,San Joaquin,California,06077,540,25 +2020-04-30,San Joaquin,California,06077,543,25 +2020-05-01,San Joaquin,California,06077,557,25 +2020-05-02,San Joaquin,California,06077,560,25 +2020-05-03,San Joaquin,California,06077,570,25 +2020-05-04,San Joaquin,California,06077,574,26 +2020-05-05,San Joaquin,California,06077,578,26 +2020-05-06,San Joaquin,California,06077,579,27 +2020-05-07,San Joaquin,California,06077,581,28 +2020-05-08,San Joaquin,California,06077,597,28 +2020-05-09,San Joaquin,California,06077,605,28 +2020-05-10,San Joaquin,California,06077,612,29 +2020-05-11,San Joaquin,California,06077,621,29 +2020-05-12,San Joaquin,California,06077,629,30 +2020-05-13,San Joaquin,California,06077,638,31 +2020-05-14,San Joaquin,California,06077,644,31 +2020-05-15,San Joaquin,California,06077,659,31 +2020-05-16,San Joaquin,California,06077,670,31 +2020-05-17,San Joaquin,California,06077,689,32 +2020-05-18,San Joaquin,California,06077,699,32 +2020-05-19,San Joaquin,California,06077,709,33 +2020-05-20,San Joaquin,California,06077,716,33 +2020-05-21,San Joaquin,California,06077,733,33 +2020-05-22,San Joaquin,California,06077,752,33 +2020-05-23,San Joaquin,California,06077,752,33 +2020-05-24,San Joaquin,California,06077,759,33 +2020-05-25,San Joaquin,California,06077,760,33 +2020-05-26,San Joaquin,California,06077,771,33 +2020-05-27,San Joaquin,California,06077,834,34 +2020-05-28,San Joaquin,California,06077,842,35 +2020-05-29,San Joaquin,California,06077,858,35 +2020-05-30,San Joaquin,California,06077,858,35 +2020-05-31,San Joaquin,California,06077,888,35 +2020-06-01,San Joaquin,California,06077,908,35 +2020-06-02,San Joaquin,California,06077,982,35 +2020-06-03,San Joaquin,California,06077,1080,35 +2020-06-04,San Joaquin,California,06077,1024,36 +2020-06-05,San Joaquin,California,06077,1050,36 +2020-06-06,San Joaquin,California,06077,1118,37 +2020-06-07,San Joaquin,California,06077,1161,37 +2020-06-08,San Joaquin,California,06077,1244,37 +2020-06-09,San Joaquin,California,06077,1308,39 +2020-06-10,San Joaquin,California,06077,1358,40 +2020-06-11,San Joaquin,California,06077,1437,42 +2020-06-12,San Joaquin,California,06077,1493,42 +2020-06-13,San Joaquin,California,06077,1547,43 +2020-06-14,San Joaquin,California,06077,1652,43 +2020-06-15,San Joaquin,California,06077,1716,43 +2020-06-16,San Joaquin,California,06077,1749,47 +2020-06-17,San Joaquin,California,06077,1888,47 +2020-06-18,San Joaquin,California,06077,1927,47 +2020-06-19,San Joaquin,California,06077,1926,48 +2020-06-20,San Joaquin,California,06077,2177,48 +2020-06-21,San Joaquin,California,06077,2259,48 +2020-06-22,San Joaquin,California,06077,2400,48 +2020-06-23,San Joaquin,California,06077,2560,48 +2020-06-24,San Joaquin,California,06077,2742,49 +2020-06-25,San Joaquin,California,06077,2884,49 +2020-06-26,San Joaquin,California,06077,3031,52 +2020-06-27,San Joaquin,California,06077,3093,52 +2020-06-28,San Joaquin,California,06077,3093,52 +2020-06-29,San Joaquin,California,06077,3291,52 +2020-06-30,San Joaquin,California,06077,3856,52 +2020-07-01,San Joaquin,California,06077,3914,54 +2020-07-02,San Joaquin,California,06077,4298,55 +2020-07-03,San Joaquin,California,06077,4474,55 +2020-07-04,San Joaquin,California,06077,4474,55 +2020-07-05,San Joaquin,California,06077,4807,55 +2020-07-06,San Joaquin,California,06077,5015,55 +2020-07-07,San Joaquin,California,06077,5600,58 +2020-07-08,San Joaquin,California,06077,5817,61 +2020-07-09,San Joaquin,California,06077,6065,67 +2020-03-14,San Luis Obispo,California,06079,1,0 +2020-03-15,San Luis Obispo,California,06079,2,0 +2020-03-16,San Luis Obispo,California,06079,3,0 +2020-03-17,San Luis Obispo,California,06079,6,0 +2020-03-18,San Luis Obispo,California,06079,7,0 +2020-03-19,San Luis Obispo,California,06079,13,0 +2020-03-20,San Luis Obispo,California,06079,16,0 +2020-03-21,San Luis Obispo,California,06079,27,0 +2020-03-22,San Luis Obispo,California,06079,27,0 +2020-03-23,San Luis Obispo,California,06079,33,0 +2020-03-24,San Luis Obispo,California,06079,42,0 +2020-03-25,San Luis Obispo,California,06079,46,0 +2020-03-26,San Luis Obispo,California,06079,54,0 +2020-03-27,San Luis Obispo,California,06079,59,0 +2020-03-28,San Luis Obispo,California,06079,67,0 +2020-03-29,San Luis Obispo,California,06079,71,0 +2020-03-30,San Luis Obispo,California,06079,77,0 +2020-03-31,San Luis Obispo,California,06079,80,0 +2020-04-01,San Luis Obispo,California,06079,83,0 +2020-04-02,San Luis Obispo,California,06079,89,0 +2020-04-03,San Luis Obispo,California,06079,93,0 +2020-04-04,San Luis Obispo,California,06079,93,1 +2020-04-05,San Luis Obispo,California,06079,95,1 +2020-04-06,San Luis Obispo,California,06079,95,1 +2020-04-07,San Luis Obispo,California,06079,99,1 +2020-04-08,San Luis Obispo,California,06079,102,1 +2020-04-09,San Luis Obispo,California,06079,104,1 +2020-04-10,San Luis Obispo,California,06079,107,1 +2020-04-11,San Luis Obispo,California,06079,110,1 +2020-04-12,San Luis Obispo,California,06079,114,1 +2020-04-13,San Luis Obispo,California,06079,117,1 +2020-04-14,San Luis Obispo,California,06079,120,1 +2020-04-15,San Luis Obispo,California,06079,124,1 +2020-04-16,San Luis Obispo,California,06079,125,1 +2020-04-17,San Luis Obispo,California,06079,127,1 +2020-04-18,San Luis Obispo,California,06079,131,1 +2020-04-19,San Luis Obispo,California,06079,132,1 +2020-04-20,San Luis Obispo,California,06079,132,1 +2020-04-21,San Luis Obispo,California,06079,134,1 +2020-04-22,San Luis Obispo,California,06079,142,1 +2020-04-23,San Luis Obispo,California,06079,149,1 +2020-04-24,San Luis Obispo,California,06079,163,1 +2020-04-25,San Luis Obispo,California,06079,165,1 +2020-04-26,San Luis Obispo,California,06079,166,1 +2020-04-27,San Luis Obispo,California,06079,169,1 +2020-04-28,San Luis Obispo,California,06079,173,1 +2020-04-29,San Luis Obispo,California,06079,181,1 +2020-04-30,San Luis Obispo,California,06079,184,1 +2020-05-01,San Luis Obispo,California,06079,188,1 +2020-05-02,San Luis Obispo,California,06079,196,1 +2020-05-03,San Luis Obispo,California,06079,201,1 +2020-05-04,San Luis Obispo,California,06079,202,1 +2020-05-05,San Luis Obispo,California,06079,204,1 +2020-05-06,San Luis Obispo,California,06079,208,1 +2020-05-07,San Luis Obispo,California,06079,211,1 +2020-05-08,San Luis Obispo,California,06079,212,1 +2020-05-09,San Luis Obispo,California,06079,214,1 +2020-05-10,San Luis Obispo,California,06079,220,1 +2020-05-11,San Luis Obispo,California,06079,226,1 +2020-05-12,San Luis Obispo,California,06079,227,1 +2020-05-13,San Luis Obispo,California,06079,232,1 +2020-05-14,San Luis Obispo,California,06079,237,1 +2020-05-15,San Luis Obispo,California,06079,240,1 +2020-05-16,San Luis Obispo,California,06079,243,1 +2020-05-17,San Luis Obispo,California,06079,243,1 +2020-05-18,San Luis Obispo,California,06079,246,1 +2020-05-19,San Luis Obispo,California,06079,247,1 +2020-05-20,San Luis Obispo,California,06079,249,1 +2020-05-21,San Luis Obispo,California,06079,251,1 +2020-05-22,San Luis Obispo,California,06079,253,1 +2020-05-23,San Luis Obispo,California,06079,259,1 +2020-05-24,San Luis Obispo,California,06079,258,1 +2020-05-25,San Luis Obispo,California,06079,259,1 +2020-05-26,San Luis Obispo,California,06079,263,1 +2020-05-27,San Luis Obispo,California,06079,266,1 +2020-05-28,San Luis Obispo,California,06079,268,1 +2020-05-29,San Luis Obispo,California,06079,269,1 +2020-05-30,San Luis Obispo,California,06079,270,1 +2020-05-31,San Luis Obispo,California,06079,270,1 +2020-06-01,San Luis Obispo,California,06079,271,1 +2020-06-02,San Luis Obispo,California,06079,278,1 +2020-06-03,San Luis Obispo,California,06079,279,1 +2020-06-04,San Luis Obispo,California,06079,288,1 +2020-06-05,San Luis Obispo,California,06079,291,1 +2020-06-06,San Luis Obispo,California,06079,293,1 +2020-06-07,San Luis Obispo,California,06079,295,1 +2020-06-08,San Luis Obispo,California,06079,299,1 +2020-06-09,San Luis Obispo,California,06079,302,1 +2020-06-10,San Luis Obispo,California,06079,306,1 +2020-06-11,San Luis Obispo,California,06079,317,1 +2020-06-12,San Luis Obispo,California,06079,324,1 +2020-06-13,San Luis Obispo,California,06079,324,1 +2020-06-14,San Luis Obispo,California,06079,326,1 +2020-06-15,San Luis Obispo,California,06079,347,1 +2020-06-16,San Luis Obispo,California,06079,356,1 +2020-06-17,San Luis Obispo,California,06079,376,1 +2020-06-18,San Luis Obispo,California,06079,389,1 +2020-06-19,San Luis Obispo,California,06079,404,1 +2020-06-20,San Luis Obispo,California,06079,404,1 +2020-06-21,San Luis Obispo,California,06079,405,1 +2020-06-22,San Luis Obispo,California,06079,442,1 +2020-06-23,San Luis Obispo,California,06079,453,1 +2020-06-24,San Luis Obispo,California,06079,473,1 +2020-06-25,San Luis Obispo,California,06079,489,1 +2020-06-26,San Luis Obispo,California,06079,508,1 +2020-06-27,San Luis Obispo,California,06079,508,1 +2020-06-28,San Luis Obispo,California,06079,508,1 +2020-06-29,San Luis Obispo,California,06079,567,1 +2020-06-30,San Luis Obispo,California,06079,611,1 +2020-07-01,San Luis Obispo,California,06079,642,2 +2020-07-02,San Luis Obispo,California,06079,675,2 +2020-07-03,San Luis Obispo,California,06079,675,2 +2020-07-04,San Luis Obispo,California,06079,676,2 +2020-07-05,San Luis Obispo,California,06079,699,2 +2020-07-06,San Luis Obispo,California,06079,765,2 +2020-07-07,San Luis Obispo,California,06079,808,2 +2020-07-08,San Luis Obispo,California,06079,845,3 +2020-07-09,San Luis Obispo,California,06079,877,4 +2020-03-02,San Mateo,California,06081,1,0 +2020-03-03,San Mateo,California,06081,1,0 +2020-03-04,San Mateo,California,06081,1,0 +2020-03-05,San Mateo,California,06081,1,0 +2020-03-06,San Mateo,California,06081,1,0 +2020-03-07,San Mateo,California,06081,1,0 +2020-03-08,San Mateo,California,06081,1,0 +2020-03-09,San Mateo,California,06081,9,0 +2020-03-10,San Mateo,California,06081,9,0 +2020-03-11,San Mateo,California,06081,15,0 +2020-03-12,San Mateo,California,06081,20,0 +2020-03-13,San Mateo,California,06081,20,0 +2020-03-14,San Mateo,California,06081,32,0 +2020-03-15,San Mateo,California,06081,32,1 +2020-03-16,San Mateo,California,06081,42,1 +2020-03-17,San Mateo,California,06081,64,1 +2020-03-18,San Mateo,California,06081,80,1 +2020-03-19,San Mateo,California,06081,89,1 +2020-03-20,San Mateo,California,06081,100,1 +2020-03-21,San Mateo,California,06081,110,1 +2020-03-22,San Mateo,California,06081,117,1 +2020-03-23,San Mateo,California,06081,142,1 +2020-03-24,San Mateo,California,06081,161,1 +2020-03-25,San Mateo,California,06081,165,5 +2020-03-26,San Mateo,California,06081,195,5 +2020-03-27,San Mateo,California,06081,239,6 +2020-03-28,San Mateo,California,06081,274,6 +2020-03-29,San Mateo,California,06081,277,6 +2020-03-30,San Mateo,California,06081,309,6 +2020-03-31,San Mateo,California,06081,309,10 +2020-04-01,San Mateo,California,06081,388,10 +2020-04-02,San Mateo,California,06081,453,10 +2020-04-03,San Mateo,California,06081,486,13 +2020-04-04,San Mateo,California,06081,538,13 +2020-04-05,San Mateo,California,06081,555,13 +2020-04-06,San Mateo,California,06081,579,13 +2020-04-07,San Mateo,California,06081,589,21 +2020-04-08,San Mateo,California,06081,617,21 +2020-04-09,San Mateo,California,06081,633,21 +2020-04-10,San Mateo,California,06081,638,21 +2020-04-11,San Mateo,California,06081,652,21 +2020-04-12,San Mateo,California,06081,652,21 +2020-04-13,San Mateo,California,06081,701,21 +2020-04-14,San Mateo,California,06081,747,21 +2020-04-15,San Mateo,California,06081,767,28 +2020-04-16,San Mateo,California,06081,767,28 +2020-04-17,San Mateo,California,06081,797,28 +2020-04-18,San Mateo,California,06081,838,28 +2020-04-19,San Mateo,California,06081,838,28 +2020-04-20,San Mateo,California,06081,920,28 +2020-04-21,San Mateo,California,06081,935,28 +2020-04-22,San Mateo,California,06081,958,39 +2020-04-23,San Mateo,California,06081,966,39 +2020-04-24,San Mateo,California,06081,989,41 +2020-04-25,San Mateo,California,06081,1019,41 +2020-04-26,San Mateo,California,06081,1019,41 +2020-04-27,San Mateo,California,06081,1080,46 +2020-04-28,San Mateo,California,06081,1099,48 +2020-04-29,San Mateo,California,06081,1136,48 +2020-04-30,San Mateo,California,06081,1177,50 +2020-05-01,San Mateo,California,06081,1197,52 +2020-05-02,San Mateo,California,06081,1233,52 +2020-05-03,San Mateo,California,06081,1272,52 +2020-05-04,San Mateo,California,06081,1281,53 +2020-05-05,San Mateo,California,06081,1315,53 +2020-05-06,San Mateo,California,06081,1341,56 +2020-05-07,San Mateo,California,06081,1377,56 +2020-05-08,San Mateo,California,06081,1398,57 +2020-05-09,San Mateo,California,06081,1425,62 +2020-05-10,San Mateo,California,06081,1453,65 +2020-05-11,San Mateo,California,06081,1464,65 +2020-05-12,San Mateo,California,06081,1499,65 +2020-05-13,San Mateo,California,06081,1533,66 +2020-05-14,San Mateo,California,06081,1550,66 +2020-05-15,San Mateo,California,06081,1588,66 +2020-05-16,San Mateo,California,06081,1612,67 +2020-05-17,San Mateo,California,06081,1652,68 +2020-05-18,San Mateo,California,06081,1680,68 +2020-05-19,San Mateo,California,06081,1701,68 +2020-05-20,San Mateo,California,06081,1704,75 +2020-05-21,San Mateo,California,06081,1739,75 +2020-05-22,San Mateo,California,06081,1791,76 +2020-05-23,San Mateo,California,06081,1847,76 +2020-05-24,San Mateo,California,06081,1862,76 +2020-05-25,San Mateo,California,06081,1925,76 +2020-05-26,San Mateo,California,06081,1938,82 +2020-05-27,San Mateo,California,06081,1967,82 +2020-05-28,San Mateo,California,06081,2045,82 +2020-05-29,San Mateo,California,06081,2070,84 +2020-05-30,San Mateo,California,06081,2104,84 +2020-05-31,San Mateo,California,06081,2129,84 +2020-06-01,San Mateo,California,06081,2169,84 +2020-06-02,San Mateo,California,06081,2190,84 +2020-06-03,San Mateo,California,06081,2212,84 +2020-06-04,San Mateo,California,06081,2244,84 +2020-06-05,San Mateo,California,06081,2299,84 +2020-06-06,San Mateo,California,06081,2331,88 +2020-06-07,San Mateo,California,06081,2342,88 +2020-06-08,San Mateo,California,06081,2399,88 +2020-06-09,San Mateo,California,06081,2437,93 +2020-06-10,San Mateo,California,06081,2475,93 +2020-06-11,San Mateo,California,06081,2494,93 +2020-06-12,San Mateo,California,06081,2533,99 +2020-06-13,San Mateo,California,06081,2553,99 +2020-06-14,San Mateo,California,06081,2553,99 +2020-06-15,San Mateo,California,06081,2571,99 +2020-06-16,San Mateo,California,06081,2591,99 +2020-06-17,San Mateo,California,06081,2618,99 +2020-06-18,San Mateo,California,06081,2649,99 +2020-06-19,San Mateo,California,06081,2674,103 +2020-06-20,San Mateo,California,06081,2713,103 +2020-06-21,San Mateo,California,06081,2755,103 +2020-06-22,San Mateo,California,06081,2781,103 +2020-06-23,San Mateo,California,06081,2813,104 +2020-06-24,San Mateo,California,06081,2907,104 +2020-06-25,San Mateo,California,06081,2964,104 +2020-06-26,San Mateo,California,06081,2996,106 +2020-06-27,San Mateo,California,06081,3055,106 +2020-06-28,San Mateo,California,06081,3083,106 +2020-06-29,San Mateo,California,06081,3124,106 +2020-06-30,San Mateo,California,06081,3170,108 +2020-07-01,San Mateo,California,06081,3268,108 +2020-07-02,San Mateo,California,06081,3376,108 +2020-07-03,San Mateo,California,06081,3441,108 +2020-07-04,San Mateo,California,06081,3536,108 +2020-07-05,San Mateo,California,06081,3536,108 +2020-07-06,San Mateo,California,06081,3599,108 +2020-07-07,San Mateo,California,06081,3692,111 +2020-07-08,San Mateo,California,06081,3743,111 +2020-07-09,San Mateo,California,06081,3787,111 +2020-03-15,Santa Barbara,California,06083,1,0 +2020-03-16,Santa Barbara,California,06083,1,0 +2020-03-17,Santa Barbara,California,06083,2,0 +2020-03-18,Santa Barbara,California,06083,2,0 +2020-03-19,Santa Barbara,California,06083,8,0 +2020-03-20,Santa Barbara,California,06083,9,0 +2020-03-21,Santa Barbara,California,06083,17,0 +2020-03-22,Santa Barbara,California,06083,18,0 +2020-03-23,Santa Barbara,California,06083,18,0 +2020-03-24,Santa Barbara,California,06083,24,0 +2020-03-25,Santa Barbara,California,06083,26,0 +2020-03-26,Santa Barbara,California,06083,32,0 +2020-03-27,Santa Barbara,California,06083,47,0 +2020-03-28,Santa Barbara,California,06083,64,0 +2020-03-29,Santa Barbara,California,06083,68,0 +2020-03-30,Santa Barbara,California,06083,88,0 +2020-03-31,Santa Barbara,California,06083,99,0 +2020-04-01,Santa Barbara,California,06083,111,0 +2020-04-02,Santa Barbara,California,06083,139,1 +2020-04-03,Santa Barbara,California,06083,152,1 +2020-04-04,Santa Barbara,California,06083,168,1 +2020-04-05,Santa Barbara,California,06083,174,2 +2020-04-06,Santa Barbara,California,06083,192,2 +2020-04-07,Santa Barbara,California,06083,218,2 +2020-04-08,Santa Barbara,California,06083,228,2 +2020-04-09,Santa Barbara,California,06083,243,2 +2020-04-10,Santa Barbara,California,06083,260,2 +2020-04-11,Santa Barbara,California,06083,264,2 +2020-04-12,Santa Barbara,California,06083,267,2 +2020-04-13,Santa Barbara,California,06083,284,2 +2020-04-14,Santa Barbara,California,06083,313,2 +2020-04-15,Santa Barbara,California,06083,334,2 +2020-04-16,Santa Barbara,California,06083,354,3 +2020-04-17,Santa Barbara,California,06083,373,3 +2020-04-18,Santa Barbara,California,06083,385,4 +2020-04-19,Santa Barbara,California,06083,394,4 +2020-04-20,Santa Barbara,California,06083,416,4 +2020-04-21,Santa Barbara,California,06083,429,5 +2020-04-22,Santa Barbara,California,06083,440,5 +2020-04-23,Santa Barbara,California,06083,451,5 +2020-04-24,Santa Barbara,California,06083,460,6 +2020-04-25,Santa Barbara,California,06083,466,6 +2020-04-26,Santa Barbara,California,06083,471,7 +2020-04-27,Santa Barbara,California,06083,471,7 +2020-04-28,Santa Barbara,California,06083,477,7 +2020-04-29,Santa Barbara,California,06083,485,8 +2020-04-30,Santa Barbara,California,06083,496,8 +2020-05-01,Santa Barbara,California,06083,506,8 +2020-05-02,Santa Barbara,California,06083,508,8 +2020-05-03,Santa Barbara,California,06083,514,8 +2020-05-04,Santa Barbara,California,06083,526,8 +2020-05-05,Santa Barbara,California,06083,544,9 +2020-05-06,Santa Barbara,California,06083,613,10 +2020-05-07,Santa Barbara,California,06083,722,11 +2020-05-08,Santa Barbara,California,06083,1032,11 +2020-05-09,Santa Barbara,California,06083,1250,11 +2020-05-10,Santa Barbara,California,06083,1308,11 +2020-05-11,Santa Barbara,California,06083,1362,11 +2020-05-12,Santa Barbara,California,06083,1372,11 +2020-05-13,Santa Barbara,California,06083,1377,11 +2020-05-14,Santa Barbara,California,06083,1382,11 +2020-05-15,Santa Barbara,California,06083,1396,11 +2020-05-16,Santa Barbara,California,06083,1412,11 +2020-05-17,Santa Barbara,California,06083,1468,11 +2020-05-18,Santa Barbara,California,06083,1489,11 +2020-05-19,Santa Barbara,California,06083,1509,11 +2020-05-20,Santa Barbara,California,06083,1521,11 +2020-05-21,Santa Barbara,California,06083,1533,11 +2020-05-22,Santa Barbara,California,06083,1544,11 +2020-05-23,Santa Barbara,California,06083,1554,12 +2020-05-24,Santa Barbara,California,06083,1566,12 +2020-05-25,Santa Barbara,California,06083,1573,12 +2020-05-26,Santa Barbara,California,06083,1597,12 +2020-05-27,Santa Barbara,California,06083,1616,12 +2020-05-28,Santa Barbara,California,06083,1629,12 +2020-05-29,Santa Barbara,California,06083,1642,12 +2020-05-30,Santa Barbara,California,06083,1656,12 +2020-05-31,Santa Barbara,California,06083,1660,12 +2020-06-01,Santa Barbara,California,06083,1662,12 +2020-06-02,Santa Barbara,California,06083,1686,12 +2020-06-03,Santa Barbara,California,06083,1708,14 +2020-06-04,Santa Barbara,California,06083,1729,14 +2020-06-05,Santa Barbara,California,06083,1779,14 +2020-06-06,Santa Barbara,California,06083,1795,15 +2020-06-07,Santa Barbara,California,06083,1815,15 +2020-06-08,Santa Barbara,California,06083,1818,15 +2020-06-09,Santa Barbara,California,06083,1838,15 +2020-06-10,Santa Barbara,California,06083,1855,15 +2020-06-11,Santa Barbara,California,06083,1899,16 +2020-06-12,Santa Barbara,California,06083,1959,16 +2020-06-13,Santa Barbara,California,06083,1969,16 +2020-06-14,Santa Barbara,California,06083,1999,18 +2020-06-15,Santa Barbara,California,06083,2049,18 +2020-06-16,Santa Barbara,California,06083,2100,18 +2020-06-17,Santa Barbara,California,06083,2155,21 +2020-06-18,Santa Barbara,California,06083,2228,22 +2020-06-19,Santa Barbara,California,06083,2293,22 +2020-06-20,Santa Barbara,California,06083,2293,22 +2020-06-21,Santa Barbara,California,06083,2358,22 +2020-06-22,Santa Barbara,California,06083,2430,22 +2020-06-23,Santa Barbara,California,06083,2478,27 +2020-06-24,Santa Barbara,California,06083,2553,27 +2020-06-25,Santa Barbara,California,06083,2591,27 +2020-06-26,Santa Barbara,California,06083,2666,28 +2020-06-27,Santa Barbara,California,06083,2784,28 +2020-06-28,Santa Barbara,California,06083,2831,28 +2020-06-29,Santa Barbara,California,06083,2872,28 +2020-06-30,Santa Barbara,California,06083,2933,29 +2020-07-01,Santa Barbara,California,06083,3164,29 +2020-07-02,Santa Barbara,California,06083,3268,29 +2020-07-03,Santa Barbara,California,06083,3385,29 +2020-07-04,Santa Barbara,California,06083,3406,29 +2020-07-05,Santa Barbara,California,06083,3520,29 +2020-07-06,Santa Barbara,California,06083,3671,29 +2020-07-07,Santa Barbara,California,06083,3763,30 +2020-07-08,Santa Barbara,California,06083,3866,30 +2020-07-09,Santa Barbara,California,06083,3985,29 +2020-01-31,Santa Clara,California,06085,1,0 +2020-02-01,Santa Clara,California,06085,1,0 +2020-02-02,Santa Clara,California,06085,2,0 +2020-02-03,Santa Clara,California,06085,2,0 +2020-02-04,Santa Clara,California,06085,2,0 +2020-02-05,Santa Clara,California,06085,2,0 +2020-02-06,Santa Clara,California,06085,2,0 +2020-02-07,Santa Clara,California,06085,2,0 +2020-02-08,Santa Clara,California,06085,2,0 +2020-02-09,Santa Clara,California,06085,2,0 +2020-02-10,Santa Clara,California,06085,2,0 +2020-02-11,Santa Clara,California,06085,2,0 +2020-02-12,Santa Clara,California,06085,2,0 +2020-02-13,Santa Clara,California,06085,2,0 +2020-02-14,Santa Clara,California,06085,2,0 +2020-02-15,Santa Clara,California,06085,2,0 +2020-02-16,Santa Clara,California,06085,2,0 +2020-02-17,Santa Clara,California,06085,2,0 +2020-02-18,Santa Clara,California,06085,2,0 +2020-02-19,Santa Clara,California,06085,2,0 +2020-02-20,Santa Clara,California,06085,2,0 +2020-02-21,Santa Clara,California,06085,2,0 +2020-02-22,Santa Clara,California,06085,2,0 +2020-02-23,Santa Clara,California,06085,2,0 +2020-02-24,Santa Clara,California,06085,2,0 +2020-02-25,Santa Clara,California,06085,2,0 +2020-02-26,Santa Clara,California,06085,2,0 +2020-02-27,Santa Clara,California,06085,2,0 +2020-02-28,Santa Clara,California,06085,3,0 +2020-02-29,Santa Clara,California,06085,4,0 +2020-03-01,Santa Clara,California,06085,7,0 +2020-03-02,Santa Clara,California,06085,9,0 +2020-03-03,Santa Clara,California,06085,11,0 +2020-03-04,Santa Clara,California,06085,14,0 +2020-03-05,Santa Clara,California,06085,20,0 +2020-03-06,Santa Clara,California,06085,24,0 +2020-03-07,Santa Clara,California,06085,32,0 +2020-03-08,Santa Clara,California,06085,37,0 +2020-03-09,Santa Clara,California,06085,43,1 +2020-03-10,Santa Clara,California,06085,45,1 +2020-03-11,Santa Clara,California,06085,48,1 +2020-03-12,Santa Clara,California,06085,66,1 +2020-03-13,Santa Clara,California,06085,79,2 +2020-03-14,Santa Clara,California,06085,91,2 +2020-03-15,Santa Clara,California,06085,114,2 +2020-03-16,Santa Clara,California,06085,138,4 +2020-03-17,Santa Clara,California,06085,155,5 +2020-03-18,Santa Clara,California,06085,175,6 +2020-03-19,Santa Clara,California,06085,189,6 +2020-03-20,Santa Clara,California,06085,196,8 +2020-03-21,Santa Clara,California,06085,263,8 +2020-03-22,Santa Clara,California,06085,303,11 +2020-03-23,Santa Clara,California,06085,321,11 +2020-03-24,Santa Clara,California,06085,375,17 +2020-03-25,Santa Clara,California,06085,459,18 +2020-03-26,Santa Clara,California,06085,542,20 +2020-03-27,Santa Clara,California,06085,574,21 +2020-03-28,Santa Clara,California,06085,591,26 +2020-03-29,Santa Clara,California,06085,646,26 +2020-03-30,Santa Clara,California,06085,848,29 +2020-03-31,Santa Clara,California,06085,890,31 +2020-04-01,Santa Clara,California,06085,956,33 +2020-04-02,Santa Clara,California,06085,1019,37 +2020-04-03,Santa Clara,California,06085,1094,39 +2020-04-04,Santa Clara,California,06085,1148,40 +2020-04-05,Santa Clara,California,06085,1207,40 +2020-04-06,Santa Clara,California,06085,1224,40 +2020-04-07,Santa Clara,California,06085,1285,44 +2020-04-08,Santa Clara,California,06085,1380,47 +2020-04-09,Santa Clara,California,06085,1442,48 +2020-04-10,Santa Clara,California,06085,1484,50 +2020-04-11,Santa Clara,California,06085,1566,52 +2020-04-12,Santa Clara,California,06085,1621,54 +2020-04-13,Santa Clara,California,06085,1666,61 +2020-04-14,Santa Clara,California,06085,1666,61 +2020-04-15,Santa Clara,California,06085,1793,66 +2020-04-16,Santa Clara,California,06085,1833,70 +2020-04-17,Santa Clara,California,06085,1870,74 +2020-04-18,Santa Clara,California,06085,1870,74 +2020-04-19,Santa Clara,California,06085,1870,74 +2020-04-20,Santa Clara,California,06085,1922,84 +2020-04-21,Santa Clara,California,06085,1946,89 +2020-04-22,Santa Clara,California,06085,1962,95 +2020-04-23,Santa Clara,California,06085,1987,96 +2020-04-24,Santa Clara,California,06085,2018,99 +2020-04-25,Santa Clara,California,06085,2040,100 +2020-04-26,Santa Clara,California,06085,2084,101 +2020-04-27,Santa Clara,California,06085,2105,104 +2020-04-28,Santa Clara,California,06085,2122,107 +2020-04-29,Santa Clara,California,06085,2134,108 +2020-04-30,Santa Clara,California,06085,2163,112 +2020-05-01,Santa Clara,California,06085,2179,114 +2020-05-02,Santa Clara,California,06085,2204,115 +2020-05-03,Santa Clara,California,06085,2231,116 +2020-05-04,Santa Clara,California,06085,2244,118 +2020-05-05,Santa Clara,California,06085,2255,122 +2020-05-06,Santa Clara,California,06085,2268,122 +2020-05-07,Santa Clara,California,06085,2281,122 +2020-05-08,Santa Clara,California,06085,2290,129 +2020-05-09,Santa Clara,California,06085,2307,131 +2020-05-10,Santa Clara,California,06085,2339,131 +2020-05-11,Santa Clara,California,06085,2341,131 +2020-05-12,Santa Clara,California,06085,2364,134 +2020-05-13,Santa Clara,California,06085,2364,134 +2020-05-14,Santa Clara,California,06085,2391,136 +2020-05-15,Santa Clara,California,06085,2403,136 +2020-05-16,Santa Clara,California,06085,2418,137 +2020-05-17,Santa Clara,California,06085,2453,137 +2020-05-18,Santa Clara,California,06085,2453,137 +2020-05-19,Santa Clara,California,06085,2483,138 +2020-05-20,Santa Clara,California,06085,2492,140 +2020-05-21,Santa Clara,California,06085,2508,140 +2020-05-22,Santa Clara,California,06085,2546,140 +2020-05-23,Santa Clara,California,06085,2571,140 +2020-05-24,Santa Clara,California,06085,2617,140 +2020-05-25,Santa Clara,California,06085,2652,140 +2020-05-26,Santa Clara,California,06085,2675,141 +2020-05-27,Santa Clara,California,06085,2688,141 +2020-05-28,Santa Clara,California,06085,2701,142 +2020-05-29,Santa Clara,California,06085,2707,142 +2020-05-30,Santa Clara,California,06085,2731,142 +2020-05-31,Santa Clara,California,06085,2776,142 +2020-06-01,Santa Clara,California,06085,2805,145 +2020-06-02,Santa Clara,California,06085,2819,145 +2020-06-03,Santa Clara,California,06085,2832,145 +2020-06-04,Santa Clara,California,06085,2850,145 +2020-06-05,Santa Clara,California,06085,2892,145 +2020-06-06,Santa Clara,California,06085,2920,145 +2020-06-07,Santa Clara,California,06085,2942,145 +2020-06-08,Santa Clara,California,06085,2973,146 +2020-06-09,Santa Clara,California,06085,3017,150 +2020-06-10,Santa Clara,California,06085,3032,150 +2020-06-11,Santa Clara,California,06085,3063,150 +2020-06-12,Santa Clara,California,06085,3117,151 +2020-06-13,Santa Clara,California,06085,3157,151 +2020-06-14,Santa Clara,California,06085,3197,152 +2020-06-15,Santa Clara,California,06085,3230,152 +2020-06-16,Santa Clara,California,06085,3254,153 +2020-06-17,Santa Clara,California,06085,3288,153 +2020-06-18,Santa Clara,California,06085,3363,153 +2020-06-19,Santa Clara,California,06085,3398,153 +2020-06-20,Santa Clara,California,06085,3458,153 +2020-06-21,Santa Clara,California,06085,3547,155 +2020-06-22,Santa Clara,California,06085,3606,155 +2020-06-23,Santa Clara,California,06085,3727,155 +2020-06-24,Santa Clara,California,06085,3832,156 +2020-06-25,Santa Clara,California,06085,3888,156 +2020-06-26,Santa Clara,California,06085,3984,156 +2020-06-27,Santa Clara,California,06085,3984,156 +2020-06-28,Santa Clara,California,06085,4162,156 +2020-06-29,Santa Clara,California,06085,4162,156 +2020-06-30,Santa Clara,California,06085,4231,157 +2020-07-01,Santa Clara,California,06085,4572,159 +2020-07-02,Santa Clara,California,06085,4750,160 +2020-07-03,Santa Clara,California,06085,4849,161 +2020-07-04,Santa Clara,California,06085,5077,161 +2020-07-05,Santa Clara,California,06085,5273,162 +2020-07-06,Santa Clara,California,06085,5408,165 +2020-07-07,Santa Clara,California,06085,5478,166 +2020-07-08,Santa Clara,California,06085,5552,166 +2020-07-09,Santa Clara,California,06085,5678,167 +2020-03-07,Santa Cruz,California,06087,1,0 +2020-03-08,Santa Cruz,California,06087,1,0 +2020-03-09,Santa Cruz,California,06087,2,0 +2020-03-10,Santa Cruz,California,06087,2,0 +2020-03-11,Santa Cruz,California,06087,2,0 +2020-03-12,Santa Cruz,California,06087,2,0 +2020-03-13,Santa Cruz,California,06087,2,0 +2020-03-14,Santa Cruz,California,06087,2,0 +2020-03-15,Santa Cruz,California,06087,2,0 +2020-03-16,Santa Cruz,California,06087,2,0 +2020-03-17,Santa Cruz,California,06087,2,0 +2020-03-18,Santa Cruz,California,06087,2,0 +2020-03-19,Santa Cruz,California,06087,2,0 +2020-03-20,Santa Cruz,California,06087,15,0 +2020-03-21,Santa Cruz,California,06087,15,0 +2020-03-22,Santa Cruz,California,06087,15,0 +2020-03-23,Santa Cruz,California,06087,22,0 +2020-03-24,Santa Cruz,California,06087,24,0 +2020-03-25,Santa Cruz,California,06087,25,0 +2020-03-26,Santa Cruz,California,06087,32,0 +2020-03-27,Santa Cruz,California,06087,34,0 +2020-03-28,Santa Cruz,California,06087,39,0 +2020-03-29,Santa Cruz,California,06087,44,1 +2020-03-30,Santa Cruz,California,06087,45,1 +2020-03-31,Santa Cruz,California,06087,49,1 +2020-04-01,Santa Cruz,California,06087,54,1 +2020-04-02,Santa Cruz,California,06087,57,1 +2020-04-03,Santa Cruz,California,06087,59,1 +2020-04-04,Santa Cruz,California,06087,62,1 +2020-04-05,Santa Cruz,California,06087,69,1 +2020-04-06,Santa Cruz,California,06087,71,1 +2020-04-07,Santa Cruz,California,06087,76,1 +2020-04-08,Santa Cruz,California,06087,76,1 +2020-04-09,Santa Cruz,California,06087,80,1 +2020-04-10,Santa Cruz,California,06087,80,1 +2020-04-11,Santa Cruz,California,06087,82,1 +2020-04-12,Santa Cruz,California,06087,88,1 +2020-04-13,Santa Cruz,California,06087,91,1 +2020-04-14,Santa Cruz,California,06087,91,1 +2020-04-15,Santa Cruz,California,06087,96,2 +2020-04-16,Santa Cruz,California,06087,96,2 +2020-04-17,Santa Cruz,California,06087,98,2 +2020-04-18,Santa Cruz,California,06087,101,2 +2020-04-19,Santa Cruz,California,06087,104,2 +2020-04-20,Santa Cruz,California,06087,106,2 +2020-04-21,Santa Cruz,California,06087,108,2 +2020-04-22,Santa Cruz,California,06087,111,2 +2020-04-23,Santa Cruz,California,06087,114,2 +2020-04-24,Santa Cruz,California,06087,115,2 +2020-04-25,Santa Cruz,California,06087,115,2 +2020-04-26,Santa Cruz,California,06087,120,2 +2020-04-27,Santa Cruz,California,06087,124,2 +2020-04-28,Santa Cruz,California,06087,125,2 +2020-04-29,Santa Cruz,California,06087,127,2 +2020-04-30,Santa Cruz,California,06087,131,2 +2020-05-01,Santa Cruz,California,06087,132,2 +2020-05-02,Santa Cruz,California,06087,134,2 +2020-05-03,Santa Cruz,California,06087,137,2 +2020-05-04,Santa Cruz,California,06087,137,2 +2020-05-05,Santa Cruz,California,06087,138,2 +2020-05-06,Santa Cruz,California,06087,138,2 +2020-05-07,Santa Cruz,California,06087,139,2 +2020-05-08,Santa Cruz,California,06087,140,2 +2020-05-09,Santa Cruz,California,06087,141,2 +2020-05-10,Santa Cruz,California,06087,141,2 +2020-05-11,Santa Cruz,California,06087,141,2 +2020-05-12,Santa Cruz,California,06087,146,2 +2020-05-13,Santa Cruz,California,06087,146,2 +2020-05-14,Santa Cruz,California,06087,149,3 +2020-05-15,Santa Cruz,California,06087,149,2 +2020-05-16,Santa Cruz,California,06087,149,3 +2020-05-17,Santa Cruz,California,06087,154,3 +2020-05-18,Santa Cruz,California,06087,163,3 +2020-05-19,Santa Cruz,California,06087,165,3 +2020-05-20,Santa Cruz,California,06087,168,3 +2020-05-21,Santa Cruz,California,06087,174,3 +2020-05-22,Santa Cruz,California,06087,186,3 +2020-05-23,Santa Cruz,California,06087,192,3 +2020-05-24,Santa Cruz,California,06087,192,3 +2020-05-25,Santa Cruz,California,06087,200,3 +2020-05-26,Santa Cruz,California,06087,200,3 +2020-05-27,Santa Cruz,California,06087,205,3 +2020-05-28,Santa Cruz,California,06087,205,3 +2020-05-29,Santa Cruz,California,06087,205,3 +2020-05-30,Santa Cruz,California,06087,212,3 +2020-05-31,Santa Cruz,California,06087,212,3 +2020-06-01,Santa Cruz,California,06087,217,3 +2020-06-02,Santa Cruz,California,06087,217,3 +2020-06-03,Santa Cruz,California,06087,219,3 +2020-06-04,Santa Cruz,California,06087,219,3 +2020-06-05,Santa Cruz,California,06087,221,3 +2020-06-06,Santa Cruz,California,06087,226,3 +2020-06-07,Santa Cruz,California,06087,231,3 +2020-06-08,Santa Cruz,California,06087,234,3 +2020-06-09,Santa Cruz,California,06087,234,3 +2020-06-10,Santa Cruz,California,06087,239,3 +2020-06-11,Santa Cruz,California,06087,249,3 +2020-06-12,Santa Cruz,California,06087,254,3 +2020-06-13,Santa Cruz,California,06087,255,3 +2020-06-14,Santa Cruz,California,06087,257,3 +2020-06-15,Santa Cruz,California,06087,257,3 +2020-06-16,Santa Cruz,California,06087,260,3 +2020-06-17,Santa Cruz,California,06087,269,3 +2020-06-18,Santa Cruz,California,06087,273,3 +2020-06-19,Santa Cruz,California,06087,283,2 +2020-06-20,Santa Cruz,California,06087,286,3 +2020-06-21,Santa Cruz,California,06087,296,3 +2020-06-22,Santa Cruz,California,06087,296,3 +2020-06-23,Santa Cruz,California,06087,322,3 +2020-06-24,Santa Cruz,California,06087,330,3 +2020-06-25,Santa Cruz,California,06087,337,3 +2020-06-26,Santa Cruz,California,06087,344,3 +2020-06-27,Santa Cruz,California,06087,349,3 +2020-06-28,Santa Cruz,California,06087,349,3 +2020-06-29,Santa Cruz,California,06087,349,3 +2020-06-30,Santa Cruz,California,06087,379,3 +2020-07-01,Santa Cruz,California,06087,399,3 +2020-07-02,Santa Cruz,California,06087,410,3 +2020-07-03,Santa Cruz,California,06087,417,3 +2020-07-04,Santa Cruz,California,06087,455,3 +2020-07-05,Santa Cruz,California,06087,466,3 +2020-07-06,Santa Cruz,California,06087,467,3 +2020-07-07,Santa Cruz,California,06087,501,3 +2020-07-08,Santa Cruz,California,06087,503,3 +2020-07-09,Santa Cruz,California,06087,509,3 +2020-03-09,Shasta,California,06089,1,0 +2020-03-10,Shasta,California,06089,1,0 +2020-03-11,Shasta,California,06089,1,0 +2020-03-12,Shasta,California,06089,1,0 +2020-03-13,Shasta,California,06089,1,0 +2020-03-14,Shasta,California,06089,1,0 +2020-03-15,Shasta,California,06089,1,0 +2020-03-16,Shasta,California,06089,1,0 +2020-03-17,Shasta,California,06089,1,0 +2020-03-18,Shasta,California,06089,1,0 +2020-03-19,Shasta,California,06089,1,0 +2020-03-20,Shasta,California,06089,1,0 +2020-03-21,Shasta,California,06089,2,0 +2020-03-22,Shasta,California,06089,2,0 +2020-03-23,Shasta,California,06089,3,0 +2020-03-24,Shasta,California,06089,3,0 +2020-03-25,Shasta,California,06089,3,1 +2020-03-26,Shasta,California,06089,3,1 +2020-03-27,Shasta,California,06089,3,1 +2020-03-28,Shasta,California,06089,3,1 +2020-03-29,Shasta,California,06089,4,1 +2020-03-30,Shasta,California,06089,6,1 +2020-03-31,Shasta,California,06089,6,1 +2020-04-01,Shasta,California,06089,7,1 +2020-04-02,Shasta,California,06089,7,1 +2020-04-03,Shasta,California,06089,11,2 +2020-04-04,Shasta,California,06089,17,2 +2020-04-05,Shasta,California,06089,20,3 +2020-04-06,Shasta,California,06089,21,3 +2020-04-07,Shasta,California,06089,23,3 +2020-04-08,Shasta,California,06089,24,3 +2020-04-09,Shasta,California,06089,24,3 +2020-04-10,Shasta,California,06089,24,3 +2020-04-11,Shasta,California,06089,24,3 +2020-04-12,Shasta,California,06089,24,3 +2020-04-13,Shasta,California,06089,25,3 +2020-04-14,Shasta,California,06089,25,3 +2020-04-15,Shasta,California,06089,25,3 +2020-04-16,Shasta,California,06089,26,3 +2020-04-17,Shasta,California,06089,26,3 +2020-04-18,Shasta,California,06089,26,3 +2020-04-19,Shasta,California,06089,26,3 +2020-04-20,Shasta,California,06089,26,3 +2020-04-21,Shasta,California,06089,26,3 +2020-04-22,Shasta,California,06089,27,3 +2020-04-23,Shasta,California,06089,27,3 +2020-04-24,Shasta,California,06089,30,4 +2020-04-25,Shasta,California,06089,30,4 +2020-04-26,Shasta,California,06089,30,4 +2020-04-27,Shasta,California,06089,30,4 +2020-04-28,Shasta,California,06089,31,4 +2020-04-29,Shasta,California,06089,31,4 +2020-04-30,Shasta,California,06089,31,4 +2020-05-01,Shasta,California,06089,31,4 +2020-05-02,Shasta,California,06089,31,4 +2020-05-03,Shasta,California,06089,31,4 +2020-05-04,Shasta,California,06089,31,4 +2020-05-05,Shasta,California,06089,31,4 +2020-05-06,Shasta,California,06089,31,4 +2020-05-07,Shasta,California,06089,31,4 +2020-05-08,Shasta,California,06089,31,4 +2020-05-09,Shasta,California,06089,31,4 +2020-05-10,Shasta,California,06089,31,4 +2020-05-11,Shasta,California,06089,32,4 +2020-05-12,Shasta,California,06089,32,4 +2020-05-13,Shasta,California,06089,33,4 +2020-05-14,Shasta,California,06089,33,4 +2020-05-15,Shasta,California,06089,33,4 +2020-05-16,Shasta,California,06089,34,4 +2020-05-17,Shasta,California,06089,34,4 +2020-05-18,Shasta,California,06089,34,4 +2020-05-19,Shasta,California,06089,34,4 +2020-05-20,Shasta,California,06089,34,4 +2020-05-21,Shasta,California,06089,34,4 +2020-05-22,Shasta,California,06089,36,4 +2020-05-23,Shasta,California,06089,36,4 +2020-05-24,Shasta,California,06089,36,4 +2020-05-25,Shasta,California,06089,36,4 +2020-05-26,Shasta,California,06089,36,4 +2020-05-27,Shasta,California,06089,37,4 +2020-05-28,Shasta,California,06089,37,4 +2020-05-29,Shasta,California,06089,37,4 +2020-05-30,Shasta,California,06089,39,4 +2020-05-31,Shasta,California,06089,39,4 +2020-06-01,Shasta,California,06089,39,4 +2020-06-02,Shasta,California,06089,40,4 +2020-06-03,Shasta,California,06089,40,4 +2020-06-04,Shasta,California,06089,42,4 +2020-06-05,Shasta,California,06089,42,4 +2020-06-06,Shasta,California,06089,42,4 +2020-06-07,Shasta,California,06089,44,4 +2020-06-08,Shasta,California,06089,46,4 +2020-06-09,Shasta,California,06089,47,4 +2020-06-10,Shasta,California,06089,47,4 +2020-06-11,Shasta,California,06089,48,4 +2020-06-12,Shasta,California,06089,48,5 +2020-06-13,Shasta,California,06089,49,5 +2020-06-14,Shasta,California,06089,50,5 +2020-06-15,Shasta,California,06089,51,5 +2020-06-16,Shasta,California,06089,51,4 +2020-06-17,Shasta,California,06089,58,4 +2020-06-18,Shasta,California,06089,62,4 +2020-06-19,Shasta,California,06089,76,4 +2020-06-20,Shasta,California,06089,80,4 +2020-06-21,Shasta,California,06089,81,5 +2020-06-22,Shasta,California,06089,86,5 +2020-06-23,Shasta,California,06089,88,5 +2020-06-24,Shasta,California,06089,92,5 +2020-06-25,Shasta,California,06089,96,5 +2020-06-26,Shasta,California,06089,97,5 +2020-06-27,Shasta,California,06089,101,5 +2020-06-28,Shasta,California,06089,105,5 +2020-06-29,Shasta,California,06089,112,5 +2020-06-30,Shasta,California,06089,118,5 +2020-07-01,Shasta,California,06089,129,5 +2020-07-02,Shasta,California,06089,135,5 +2020-07-03,Shasta,California,06089,148,5 +2020-07-04,Shasta,California,06089,148,5 +2020-07-05,Shasta,California,06089,154,5 +2020-07-06,Shasta,California,06089,157,5 +2020-07-07,Shasta,California,06089,163,5 +2020-07-08,Shasta,California,06089,171,5 +2020-07-09,Shasta,California,06089,176,6 +2020-05-22,Sierra,California,06091,1,0 +2020-05-23,Sierra,California,06091,1,0 +2020-05-24,Sierra,California,06091,1,0 +2020-05-25,Sierra,California,06091,1,0 +2020-05-26,Sierra,California,06091,1,0 +2020-05-27,Sierra,California,06091,1,0 +2020-05-28,Sierra,California,06091,1,0 +2020-05-29,Sierra,California,06091,1,0 +2020-05-30,Sierra,California,06091,1,0 +2020-05-31,Sierra,California,06091,1,0 +2020-06-01,Sierra,California,06091,1,0 +2020-06-02,Sierra,California,06091,1,0 +2020-06-03,Sierra,California,06091,1,0 +2020-06-04,Sierra,California,06091,1,0 +2020-06-05,Sierra,California,06091,1,0 +2020-06-06,Sierra,California,06091,1,0 +2020-06-07,Sierra,California,06091,1,0 +2020-06-08,Sierra,California,06091,1,0 +2020-06-09,Sierra,California,06091,1,0 +2020-06-10,Sierra,California,06091,1,0 +2020-06-11,Sierra,California,06091,1,0 +2020-06-12,Sierra,California,06091,1,0 +2020-06-13,Sierra,California,06091,1,0 +2020-06-14,Sierra,California,06091,1,0 +2020-06-15,Sierra,California,06091,1,0 +2020-06-16,Sierra,California,06091,1,0 +2020-06-17,Sierra,California,06091,1,0 +2020-06-18,Sierra,California,06091,1,0 +2020-06-19,Sierra,California,06091,1,0 +2020-06-20,Sierra,California,06091,1,0 +2020-06-21,Sierra,California,06091,1,0 +2020-06-22,Sierra,California,06091,1,0 +2020-06-23,Sierra,California,06091,1,0 +2020-06-24,Sierra,California,06091,1,0 +2020-06-25,Sierra,California,06091,1,0 +2020-06-26,Sierra,California,06091,1,0 +2020-06-27,Sierra,California,06091,1,0 +2020-06-28,Sierra,California,06091,1,0 +2020-06-29,Sierra,California,06091,1,0 +2020-06-30,Sierra,California,06091,1,0 +2020-07-01,Sierra,California,06091,1,0 +2020-07-02,Sierra,California,06091,1,0 +2020-07-03,Sierra,California,06091,1,0 +2020-07-04,Sierra,California,06091,1,0 +2020-07-05,Sierra,California,06091,1,0 +2020-07-06,Sierra,California,06091,1,0 +2020-07-07,Sierra,California,06091,1,0 +2020-07-08,Sierra,California,06091,1,0 +2020-07-09,Sierra,California,06091,1,0 +2020-03-21,Siskiyou,California,06093,2,0 +2020-03-22,Siskiyou,California,06093,2,0 +2020-03-23,Siskiyou,California,06093,3,0 +2020-03-24,Siskiyou,California,06093,3,0 +2020-03-25,Siskiyou,California,06093,3,0 +2020-03-26,Siskiyou,California,06093,3,0 +2020-03-27,Siskiyou,California,06093,3,0 +2020-03-28,Siskiyou,California,06093,3,0 +2020-03-29,Siskiyou,California,06093,3,0 +2020-03-30,Siskiyou,California,06093,3,0 +2020-03-31,Siskiyou,California,06093,3,0 +2020-04-01,Siskiyou,California,06093,3,0 +2020-04-02,Siskiyou,California,06093,3,0 +2020-04-03,Siskiyou,California,06093,3,0 +2020-04-04,Siskiyou,California,06093,3,0 +2020-04-05,Siskiyou,California,06093,3,0 +2020-04-06,Siskiyou,California,06093,4,0 +2020-04-07,Siskiyou,California,06093,4,0 +2020-04-08,Siskiyou,California,06093,4,0 +2020-04-09,Siskiyou,California,06093,4,0 +2020-04-10,Siskiyou,California,06093,5,0 +2020-04-11,Siskiyou,California,06093,5,0 +2020-04-12,Siskiyou,California,06093,5,0 +2020-04-13,Siskiyou,California,06093,5,0 +2020-04-14,Siskiyou,California,06093,5,0 +2020-04-15,Siskiyou,California,06093,5,0 +2020-04-16,Siskiyou,California,06093,5,0 +2020-04-17,Siskiyou,California,06093,5,0 +2020-04-18,Siskiyou,California,06093,5,0 +2020-04-19,Siskiyou,California,06093,5,0 +2020-04-20,Siskiyou,California,06093,5,0 +2020-04-21,Siskiyou,California,06093,5,0 +2020-04-22,Siskiyou,California,06093,5,0 +2020-04-23,Siskiyou,California,06093,5,0 +2020-04-24,Siskiyou,California,06093,5,0 +2020-04-25,Siskiyou,California,06093,5,0 +2020-04-26,Siskiyou,California,06093,5,0 +2020-04-27,Siskiyou,California,06093,5,0 +2020-04-28,Siskiyou,California,06093,5,0 +2020-04-29,Siskiyou,California,06093,5,0 +2020-04-30,Siskiyou,California,06093,5,0 +2020-05-01,Siskiyou,California,06093,5,0 +2020-05-02,Siskiyou,California,06093,5,0 +2020-05-03,Siskiyou,California,06093,5,0 +2020-05-04,Siskiyou,California,06093,5,0 +2020-05-05,Siskiyou,California,06093,5,0 +2020-05-06,Siskiyou,California,06093,5,0 +2020-05-07,Siskiyou,California,06093,5,0 +2020-05-08,Siskiyou,California,06093,5,0 +2020-05-09,Siskiyou,California,06093,5,0 +2020-05-10,Siskiyou,California,06093,5,0 +2020-05-11,Siskiyou,California,06093,5,0 +2020-05-12,Siskiyou,California,06093,5,0 +2020-05-13,Siskiyou,California,06093,5,0 +2020-05-14,Siskiyou,California,06093,5,0 +2020-05-15,Siskiyou,California,06093,5,0 +2020-05-16,Siskiyou,California,06093,5,0 +2020-05-17,Siskiyou,California,06093,6,0 +2020-05-18,Siskiyou,California,06093,6,0 +2020-05-19,Siskiyou,California,06093,6,0 +2020-05-20,Siskiyou,California,06093,6,0 +2020-05-21,Siskiyou,California,06093,6,0 +2020-05-22,Siskiyou,California,06093,6,0 +2020-05-23,Siskiyou,California,06093,6,0 +2020-05-24,Siskiyou,California,06093,6,0 +2020-05-25,Siskiyou,California,06093,6,0 +2020-05-26,Siskiyou,California,06093,6,0 +2020-05-27,Siskiyou,California,06093,6,0 +2020-05-28,Siskiyou,California,06093,6,0 +2020-05-29,Siskiyou,California,06093,7,0 +2020-05-30,Siskiyou,California,06093,7,0 +2020-05-31,Siskiyou,California,06093,7,0 +2020-06-01,Siskiyou,California,06093,7,0 +2020-06-02,Siskiyou,California,06093,7,0 +2020-06-03,Siskiyou,California,06093,8,0 +2020-06-04,Siskiyou,California,06093,9,0 +2020-06-05,Siskiyou,California,06093,9,0 +2020-06-06,Siskiyou,California,06093,9,0 +2020-06-07,Siskiyou,California,06093,9,0 +2020-06-08,Siskiyou,California,06093,12,0 +2020-06-09,Siskiyou,California,06093,14,0 +2020-06-10,Siskiyou,California,06093,14,0 +2020-06-11,Siskiyou,California,06093,14,0 +2020-06-12,Siskiyou,California,06093,15,0 +2020-06-13,Siskiyou,California,06093,15,0 +2020-06-14,Siskiyou,California,06093,16,0 +2020-06-15,Siskiyou,California,06093,18,0 +2020-06-16,Siskiyou,California,06093,20,0 +2020-06-17,Siskiyou,California,06093,20,0 +2020-06-18,Siskiyou,California,06093,21,0 +2020-06-19,Siskiyou,California,06093,21,0 +2020-06-20,Siskiyou,California,06093,21,0 +2020-06-21,Siskiyou,California,06093,23,0 +2020-06-22,Siskiyou,California,06093,24,0 +2020-06-23,Siskiyou,California,06093,24,0 +2020-06-24,Siskiyou,California,06093,26,0 +2020-06-25,Siskiyou,California,06093,26,0 +2020-06-26,Siskiyou,California,06093,26,0 +2020-06-27,Siskiyou,California,06093,27,0 +2020-06-28,Siskiyou,California,06093,27,0 +2020-06-29,Siskiyou,California,06093,28,0 +2020-06-30,Siskiyou,California,06093,29,0 +2020-07-01,Siskiyou,California,06093,31,0 +2020-07-02,Siskiyou,California,06093,31,0 +2020-07-03,Siskiyou,California,06093,31,0 +2020-07-04,Siskiyou,California,06093,31,0 +2020-07-05,Siskiyou,California,06093,31,0 +2020-07-06,Siskiyou,California,06093,32,0 +2020-07-07,Siskiyou,California,06093,32,0 +2020-07-08,Siskiyou,California,06093,33,0 +2020-07-09,Siskiyou,California,06093,33,0 +2020-02-24,Solano,California,06095,1,0 +2020-02-25,Solano,California,06095,1,0 +2020-02-26,Solano,California,06095,11,0 +2020-02-27,Solano,California,06095,11,0 +2020-02-28,Solano,California,06095,11,0 +2020-02-29,Solano,California,06095,11,0 +2020-03-01,Solano,California,06095,12,0 +2020-03-02,Solano,California,06095,12,0 +2020-03-03,Solano,California,06095,12,0 +2020-03-04,Solano,California,06095,12,0 +2020-03-05,Solano,California,06095,12,0 +2020-03-06,Solano,California,06095,12,0 +2020-03-07,Solano,California,06095,12,0 +2020-03-08,Solano,California,06095,12,0 +2020-03-09,Solano,California,06095,12,0 +2020-03-10,Solano,California,06095,12,0 +2020-03-11,Solano,California,06095,12,0 +2020-03-12,Solano,California,06095,12,0 +2020-03-13,Solano,California,06095,12,0 +2020-03-14,Solano,California,06095,12,0 +2020-03-15,Solano,California,06095,13,0 +2020-03-16,Solano,California,06095,15,0 +2020-03-17,Solano,California,06095,15,0 +2020-03-18,Solano,California,06095,15,0 +2020-03-19,Solano,California,06095,15,0 +2020-03-20,Solano,California,06095,18,0 +2020-03-21,Solano,California,06095,19,0 +2020-03-22,Solano,California,06095,19,0 +2020-03-23,Solano,California,06095,21,0 +2020-03-24,Solano,California,06095,29,0 +2020-03-25,Solano,California,06095,36,0 +2020-03-26,Solano,California,06095,39,0 +2020-03-27,Solano,California,06095,39,0 +2020-03-28,Solano,California,06095,39,0 +2020-03-29,Solano,California,06095,39,0 +2020-03-30,Solano,California,06095,48,0 +2020-03-31,Solano,California,06095,54,0 +2020-04-01,Solano,California,06095,54,0 +2020-04-02,Solano,California,06095,66,1 +2020-04-03,Solano,California,06095,78,1 +2020-04-04,Solano,California,06095,78,1 +2020-04-05,Solano,California,06095,78,1 +2020-04-06,Solano,California,06095,93,1 +2020-04-07,Solano,California,06095,104,2 +2020-04-08,Solano,California,06095,117,2 +2020-04-09,Solano,California,06095,120,2 +2020-04-10,Solano,California,06095,126,2 +2020-04-11,Solano,California,06095,126,2 +2020-04-12,Solano,California,06095,126,2 +2020-04-13,Solano,California,06095,140,2 +2020-04-14,Solano,California,06095,145,2 +2020-04-15,Solano,California,06095,146,2 +2020-04-16,Solano,California,06095,161,2 +2020-04-17,Solano,California,06095,174,2 +2020-04-18,Solano,California,06095,174,2 +2020-04-19,Solano,California,06095,174,2 +2020-04-20,Solano,California,06095,185,2 +2020-04-21,Solano,California,06095,186,3 +2020-04-22,Solano,California,06095,186,3 +2020-04-23,Solano,California,06095,195,4 +2020-04-24,Solano,California,06095,199,4 +2020-04-25,Solano,California,06095,204,4 +2020-04-26,Solano,California,06095,204,4 +2020-04-27,Solano,California,06095,231,4 +2020-04-28,Solano,California,06095,254,4 +2020-04-29,Solano,California,06095,254,5 +2020-04-30,Solano,California,06095,268,5 +2020-05-01,Solano,California,06095,271,5 +2020-05-02,Solano,California,06095,271,5 +2020-05-03,Solano,California,06095,271,5 +2020-05-04,Solano,California,06095,325,6 +2020-05-05,Solano,California,06095,330,6 +2020-05-06,Solano,California,06095,342,7 +2020-05-07,Solano,California,06095,347,7 +2020-05-08,Solano,California,06095,356,7 +2020-05-09,Solano,California,06095,356,7 +2020-05-10,Solano,California,06095,356,7 +2020-05-11,Solano,California,06095,384,10 +2020-05-12,Solano,California,06095,393,11 +2020-05-13,Solano,California,06095,402,12 +2020-05-14,Solano,California,06095,413,14 +2020-05-15,Solano,California,06095,415,16 +2020-05-16,Solano,California,06095,415,16 +2020-05-17,Solano,California,06095,415,16 +2020-05-18,Solano,California,06095,429,16 +2020-05-19,Solano,California,06095,435,16 +2020-05-20,Solano,California,06095,440,18 +2020-05-21,Solano,California,06095,454,19 +2020-05-22,Solano,California,06095,460,20 +2020-05-23,Solano,California,06095,460,20 +2020-05-24,Solano,California,06095,460,20 +2020-05-25,Solano,California,06095,460,20 +2020-05-26,Solano,California,06095,504,20 +2020-05-27,Solano,California,06095,507,21 +2020-05-28,Solano,California,06095,514,22 +2020-05-29,Solano,California,06095,522,22 +2020-05-30,Solano,California,06095,522,22 +2020-05-31,Solano,California,06095,522,22 +2020-06-01,Solano,California,06095,551,22 +2020-06-02,Solano,California,06095,552,22 +2020-06-03,Solano,California,06095,564,22 +2020-06-04,Solano,California,06095,570,22 +2020-06-05,Solano,California,06095,571,23 +2020-06-06,Solano,California,06095,571,23 +2020-06-07,Solano,California,06095,571,23 +2020-06-08,Solano,California,06095,595,23 +2020-06-09,Solano,California,06095,615,23 +2020-06-10,Solano,California,06095,622,23 +2020-06-11,Solano,California,06095,648,23 +2020-06-12,Solano,California,06095,662,23 +2020-06-13,Solano,California,06095,662,23 +2020-06-14,Solano,California,06095,662,23 +2020-06-15,Solano,California,06095,690,23 +2020-06-16,Solano,California,06095,692,23 +2020-06-17,Solano,California,06095,797,23 +2020-06-18,Solano,California,06095,816,23 +2020-06-19,Solano,California,06095,865,23 +2020-06-20,Solano,California,06095,865,23 +2020-06-21,Solano,California,06095,865,23 +2020-06-22,Solano,California,06095,865,23 +2020-06-23,Solano,California,06095,865,23 +2020-06-24,Solano,California,06095,946,23 +2020-06-25,Solano,California,06095,984,23 +2020-06-26,Solano,California,06095,1039,23 +2020-06-27,Solano,California,06095,1073,23 +2020-06-28,Solano,California,06095,1123,23 +2020-06-29,Solano,California,06095,1131,24 +2020-06-30,Solano,California,06095,1293,24 +2020-07-01,Solano,California,06095,1407,25 +2020-07-02,Solano,California,06095,1481,25 +2020-07-03,Solano,California,06095,1481,25 +2020-07-04,Solano,California,06095,1501,25 +2020-07-05,Solano,California,06095,1553,25 +2020-07-06,Solano,California,06095,1745,25 +2020-07-07,Solano,California,06095,1831,27 +2020-07-08,Solano,California,06095,1927,27 +2020-07-09,Solano,California,06095,1990,27 +2020-02-26,Sonoma,California,06097,1,0 +2020-02-27,Sonoma,California,06097,1,0 +2020-02-28,Sonoma,California,06097,1,0 +2020-02-29,Sonoma,California,06097,1,0 +2020-03-01,Sonoma,California,06097,1,0 +2020-03-02,Sonoma,California,06097,2,0 +2020-03-03,Sonoma,California,06097,2,0 +2020-03-04,Sonoma,California,06097,3,0 +2020-03-05,Sonoma,California,06097,3,0 +2020-03-06,Sonoma,California,06097,3,0 +2020-03-07,Sonoma,California,06097,3,0 +2020-03-08,Sonoma,California,06097,3,0 +2020-03-09,Sonoma,California,06097,3,0 +2020-03-10,Sonoma,California,06097,3,0 +2020-03-11,Sonoma,California,06097,3,0 +2020-03-12,Sonoma,California,06097,3,0 +2020-03-13,Sonoma,California,06097,3,0 +2020-03-14,Sonoma,California,06097,4,0 +2020-03-15,Sonoma,California,06097,5,0 +2020-03-16,Sonoma,California,06097,8,0 +2020-03-17,Sonoma,California,06097,9,0 +2020-03-18,Sonoma,California,06097,9,0 +2020-03-19,Sonoma,California,06097,11,0 +2020-03-20,Sonoma,California,06097,11,1 +2020-03-21,Sonoma,California,06097,11,1 +2020-03-22,Sonoma,California,06097,11,1 +2020-03-23,Sonoma,California,06097,29,1 +2020-03-24,Sonoma,California,06097,34,1 +2020-03-25,Sonoma,California,06097,39,1 +2020-03-26,Sonoma,California,06097,49,1 +2020-03-27,Sonoma,California,06097,50,1 +2020-03-28,Sonoma,California,06097,50,1 +2020-03-29,Sonoma,California,06097,57,1 +2020-03-30,Sonoma,California,06097,73,1 +2020-03-31,Sonoma,California,06097,85,1 +2020-04-01,Sonoma,California,06097,91,1 +2020-04-02,Sonoma,California,06097,95,1 +2020-04-03,Sonoma,California,06097,100,1 +2020-04-04,Sonoma,California,06097,105,1 +2020-04-05,Sonoma,California,06097,107,1 +2020-04-06,Sonoma,California,06097,115,1 +2020-04-07,Sonoma,California,06097,120,1 +2020-04-08,Sonoma,California,06097,123,1 +2020-04-09,Sonoma,California,06097,136,1 +2020-04-10,Sonoma,California,06097,145,2 +2020-04-11,Sonoma,California,06097,145,2 +2020-04-12,Sonoma,California,06097,147,2 +2020-04-13,Sonoma,California,06097,152,2 +2020-04-14,Sonoma,California,06097,160,2 +2020-04-15,Sonoma,California,06097,163,2 +2020-04-16,Sonoma,California,06097,172,2 +2020-04-17,Sonoma,California,06097,180,2 +2020-04-18,Sonoma,California,06097,180,2 +2020-04-19,Sonoma,California,06097,181,2 +2020-04-20,Sonoma,California,06097,182,2 +2020-04-21,Sonoma,California,06097,192,2 +2020-04-22,Sonoma,California,06097,194,2 +2020-04-23,Sonoma,California,06097,216,2 +2020-04-24,Sonoma,California,06097,217,2 +2020-04-25,Sonoma,California,06097,218,2 +2020-04-26,Sonoma,California,06097,220,2 +2020-04-27,Sonoma,California,06097,222,2 +2020-04-28,Sonoma,California,06097,228,2 +2020-04-29,Sonoma,California,06097,232,2 +2020-04-30,Sonoma,California,06097,244,2 +2020-05-01,Sonoma,California,06097,248,3 +2020-05-02,Sonoma,California,06097,252,3 +2020-05-03,Sonoma,California,06097,257,3 +2020-05-04,Sonoma,California,06097,261,4 +2020-05-05,Sonoma,California,06097,261,4 +2020-05-06,Sonoma,California,06097,286,4 +2020-05-07,Sonoma,California,06097,292,4 +2020-05-08,Sonoma,California,06097,300,4 +2020-05-09,Sonoma,California,06097,309,4 +2020-05-10,Sonoma,California,06097,309,4 +2020-05-11,Sonoma,California,06097,312,4 +2020-05-12,Sonoma,California,06097,312,5 +2020-05-13,Sonoma,California,06097,337,4 +2020-05-14,Sonoma,California,06097,351,4 +2020-05-15,Sonoma,California,06097,364,4 +2020-05-16,Sonoma,California,06097,373,4 +2020-05-17,Sonoma,California,06097,387,4 +2020-05-18,Sonoma,California,06097,391,4 +2020-05-19,Sonoma,California,06097,411,4 +2020-05-20,Sonoma,California,06097,411,4 +2020-05-21,Sonoma,California,06097,433,4 +2020-05-22,Sonoma,California,06097,467,4 +2020-05-23,Sonoma,California,06097,482,4 +2020-05-24,Sonoma,California,06097,500,4 +2020-05-25,Sonoma,California,06097,515,4 +2020-05-26,Sonoma,California,06097,524,4 +2020-05-27,Sonoma,California,06097,530,4 +2020-05-28,Sonoma,California,06097,531,4 +2020-05-29,Sonoma,California,06097,548,4 +2020-05-30,Sonoma,California,06097,553,4 +2020-05-31,Sonoma,California,06097,564,4 +2020-06-01,Sonoma,California,06097,566,4 +2020-06-02,Sonoma,California,06097,579,4 +2020-06-03,Sonoma,California,06097,593,4 +2020-06-04,Sonoma,California,06097,610,4 +2020-06-05,Sonoma,California,06097,624,4 +2020-06-06,Sonoma,California,06097,642,4 +2020-06-07,Sonoma,California,06097,653,4 +2020-06-08,Sonoma,California,06097,664,4 +2020-06-09,Sonoma,California,06097,671,4 +2020-06-10,Sonoma,California,06097,671,4 +2020-06-11,Sonoma,California,06097,701,4 +2020-06-12,Sonoma,California,06097,722,4 +2020-06-13,Sonoma,California,06097,752,4 +2020-06-14,Sonoma,California,06097,758,4 +2020-06-15,Sonoma,California,06097,765,4 +2020-06-16,Sonoma,California,06097,774,4 +2020-06-17,Sonoma,California,06097,803,4 +2020-06-18,Sonoma,California,06097,822,4 +2020-06-19,Sonoma,California,06097,835,4 +2020-06-20,Sonoma,California,06097,835,4 +2020-06-21,Sonoma,California,06097,885,5 +2020-06-22,Sonoma,California,06097,935,5 +2020-06-23,Sonoma,California,06097,956,5 +2020-06-24,Sonoma,California,06097,974,5 +2020-06-25,Sonoma,California,06097,1006,5 +2020-06-26,Sonoma,California,06097,1006,5 +2020-06-27,Sonoma,California,06097,1092,5 +2020-06-28,Sonoma,California,06097,1118,5 +2020-06-29,Sonoma,California,06097,1136,7 +2020-06-30,Sonoma,California,06097,1185,7 +2020-07-01,Sonoma,California,06097,1229,9 +2020-07-02,Sonoma,California,06097,1267,10 +2020-07-03,Sonoma,California,06097,1267,11 +2020-07-04,Sonoma,California,06097,1359,11 +2020-07-05,Sonoma,California,06097,1370,11 +2020-07-06,Sonoma,California,06097,1466,12 +2020-07-07,Sonoma,California,06097,1487,14 +2020-07-08,Sonoma,California,06097,1519,14 +2020-07-09,Sonoma,California,06097,1561,14 +2020-03-11,Stanislaus,California,06099,2,0 +2020-03-12,Stanislaus,California,06099,2,0 +2020-03-13,Stanislaus,California,06099,2,0 +2020-03-14,Stanislaus,California,06099,2,0 +2020-03-15,Stanislaus,California,06099,2,0 +2020-03-16,Stanislaus,California,06099,3,0 +2020-03-17,Stanislaus,California,06099,4,0 +2020-03-18,Stanislaus,California,06099,5,0 +2020-03-19,Stanislaus,California,06099,5,0 +2020-03-20,Stanislaus,California,06099,5,0 +2020-03-21,Stanislaus,California,06099,5,0 +2020-03-22,Stanislaus,California,06099,8,0 +2020-03-23,Stanislaus,California,06099,10,0 +2020-03-24,Stanislaus,California,06099,11,0 +2020-03-25,Stanislaus,California,06099,12,0 +2020-03-26,Stanislaus,California,06099,17,0 +2020-03-27,Stanislaus,California,06099,23,0 +2020-03-28,Stanislaus,California,06099,29,0 +2020-03-29,Stanislaus,California,06099,31,0 +2020-03-30,Stanislaus,California,06099,33,0 +2020-03-31,Stanislaus,California,06099,39,0 +2020-04-01,Stanislaus,California,06099,44,0 +2020-04-02,Stanislaus,California,06099,50,0 +2020-04-03,Stanislaus,California,06099,58,0 +2020-04-04,Stanislaus,California,06099,65,0 +2020-04-05,Stanislaus,California,06099,71,0 +2020-04-06,Stanislaus,California,06099,81,0 +2020-04-07,Stanislaus,California,06099,90,0 +2020-04-08,Stanislaus,California,06099,95,0 +2020-04-09,Stanislaus,California,06099,103,0 +2020-04-10,Stanislaus,California,06099,116,1 +2020-04-11,Stanislaus,California,06099,121,2 +2020-04-12,Stanislaus,California,06099,131,2 +2020-04-13,Stanislaus,California,06099,146,2 +2020-04-14,Stanislaus,California,06099,163,4 +2020-04-15,Stanislaus,California,06099,177,4 +2020-04-16,Stanislaus,California,06099,187,4 +2020-04-17,Stanislaus,California,06099,206,4 +2020-04-18,Stanislaus,California,06099,221,4 +2020-04-19,Stanislaus,California,06099,226,4 +2020-04-20,Stanislaus,California,06099,226,4 +2020-04-21,Stanislaus,California,06099,236,4 +2020-04-22,Stanislaus,California,06099,251,5 +2020-04-23,Stanislaus,California,06099,258,5 +2020-04-24,Stanislaus,California,06099,264,5 +2020-04-25,Stanislaus,California,06099,286,5 +2020-04-26,Stanislaus,California,06099,294,5 +2020-04-27,Stanislaus,California,06099,312,7 +2020-04-28,Stanislaus,California,06099,324,10 +2020-04-29,Stanislaus,California,06099,339,11 +2020-04-30,Stanislaus,California,06099,374,13 +2020-05-01,Stanislaus,California,06099,380,13 +2020-05-02,Stanislaus,California,06099,400,14 +2020-05-03,Stanislaus,California,06099,411,14 +2020-05-04,Stanislaus,California,06099,428,15 +2020-05-05,Stanislaus,California,06099,428,15 +2020-05-06,Stanislaus,California,06099,461,17 +2020-05-07,Stanislaus,California,06099,461,17 +2020-05-08,Stanislaus,California,06099,488,19 +2020-05-09,Stanislaus,California,06099,488,19 +2020-05-10,Stanislaus,California,06099,501,21 +2020-05-11,Stanislaus,California,06099,501,21 +2020-05-12,Stanislaus,California,06099,517,22 +2020-05-13,Stanislaus,California,06099,526,23 +2020-05-14,Stanislaus,California,06099,537,23 +2020-05-15,Stanislaus,California,06099,544,24 +2020-05-16,Stanislaus,California,06099,559,24 +2020-05-17,Stanislaus,California,06099,571,24 +2020-05-18,Stanislaus,California,06099,571,24 +2020-05-19,Stanislaus,California,06099,593,26 +2020-05-20,Stanislaus,California,06099,598,26 +2020-05-21,Stanislaus,California,06099,598,26 +2020-05-22,Stanislaus,California,06099,621,28 +2020-05-23,Stanislaus,California,06099,629,28 +2020-05-24,Stanislaus,California,06099,646,28 +2020-05-25,Stanislaus,California,06099,659,28 +2020-05-26,Stanislaus,California,06099,670,28 +2020-05-27,Stanislaus,California,06099,677,28 +2020-05-28,Stanislaus,California,06099,683,28 +2020-05-29,Stanislaus,California,06099,699,28 +2020-05-30,Stanislaus,California,06099,718,28 +2020-05-31,Stanislaus,California,06099,744,29 +2020-06-01,Stanislaus,California,06099,750,29 +2020-06-02,Stanislaus,California,06099,767,30 +2020-06-03,Stanislaus,California,06099,792,30 +2020-06-04,Stanislaus,California,06099,816,31 +2020-06-05,Stanislaus,California,06099,840,31 +2020-06-06,Stanislaus,California,06099,865,33 +2020-06-07,Stanislaus,California,06099,901,33 +2020-06-08,Stanislaus,California,06099,937,33 +2020-06-09,Stanislaus,California,06099,991,33 +2020-06-10,Stanislaus,California,06099,1023,33 +2020-06-11,Stanislaus,California,06099,1072,33 +2020-06-12,Stanislaus,California,06099,1072,33 +2020-06-13,Stanislaus,California,06099,1092,33 +2020-06-14,Stanislaus,California,06099,1122,34 +2020-06-15,Stanislaus,California,06099,1159,34 +2020-06-16,Stanislaus,California,06099,1253,35 +2020-06-17,Stanislaus,California,06099,1278,35 +2020-06-18,Stanislaus,California,06099,1387,36 +2020-06-19,Stanislaus,California,06099,1495,36 +2020-06-20,Stanislaus,California,06099,1549,36 +2020-06-21,Stanislaus,California,06099,1598,35 +2020-06-22,Stanislaus,California,06099,1688,35 +2020-06-23,Stanislaus,California,06099,1784,37 +2020-06-24,Stanislaus,California,06099,1850,37 +2020-06-25,Stanislaus,California,06099,2039,38 +2020-06-26,Stanislaus,California,06099,2130,38 +2020-06-27,Stanislaus,California,06099,2157,38 +2020-06-28,Stanislaus,California,06099,2244,41 +2020-06-29,Stanislaus,California,06099,2376,41 +2020-06-30,Stanislaus,California,06099,2400,42 +2020-07-01,Stanislaus,California,06099,2578,44 +2020-07-02,Stanislaus,California,06099,2619,44 +2020-07-03,Stanislaus,California,06099,2850,44 +2020-07-04,Stanislaus,California,06099,3021,44 +2020-07-05,Stanislaus,California,06099,3572,45 +2020-07-06,Stanislaus,California,06099,3777,45 +2020-07-07,Stanislaus,California,06099,3983,45 +2020-07-08,Stanislaus,California,06099,4101,50 +2020-07-09,Stanislaus,California,06099,4344,50 +2020-03-25,Sutter,California,06101,2,0 +2020-03-26,Sutter,California,06101,2,0 +2020-03-27,Sutter,California,06101,2,0 +2020-03-28,Sutter,California,06101,2,0 +2020-03-29,Sutter,California,06101,6,0 +2020-03-30,Sutter,California,06101,9,0 +2020-03-31,Sutter,California,06101,10,0 +2020-04-01,Sutter,California,06101,14,0 +2020-04-02,Sutter,California,06101,14,1 +2020-04-03,Sutter,California,06101,16,1 +2020-04-04,Sutter,California,06101,16,1 +2020-04-05,Sutter,California,06101,16,2 +2020-04-06,Sutter,California,06101,18,2 +2020-04-07,Sutter,California,06101,19,2 +2020-04-08,Sutter,California,06101,20,2 +2020-04-09,Sutter,California,06101,22,2 +2020-04-10,Sutter,California,06101,22,2 +2020-04-11,Sutter,California,06101,22,2 +2020-04-12,Sutter,California,06101,22,2 +2020-04-13,Sutter,California,06101,23,2 +2020-04-14,Sutter,California,06101,24,2 +2020-04-15,Sutter,California,06101,24,2 +2020-04-16,Sutter,California,06101,24,2 +2020-04-17,Sutter,California,06101,25,2 +2020-04-18,Sutter,California,06101,25,2 +2020-04-19,Sutter,California,06101,26,2 +2020-04-20,Sutter,California,06101,26,2 +2020-04-21,Sutter,California,06101,26,2 +2020-04-22,Sutter,California,06101,26,2 +2020-04-23,Sutter,California,06101,28,2 +2020-04-24,Sutter,California,06101,28,2 +2020-04-25,Sutter,California,06101,29,2 +2020-04-26,Sutter,California,06101,29,2 +2020-04-27,Sutter,California,06101,29,2 +2020-04-28,Sutter,California,06101,29,2 +2020-04-29,Sutter,California,06101,30,2 +2020-04-30,Sutter,California,06101,30,2 +2020-05-01,Sutter,California,06101,31,2 +2020-05-02,Sutter,California,06101,31,2 +2020-05-03,Sutter,California,06101,31,2 +2020-05-04,Sutter,California,06101,31,2 +2020-05-05,Sutter,California,06101,31,2 +2020-05-06,Sutter,California,06101,31,2 +2020-05-07,Sutter,California,06101,31,2 +2020-05-08,Sutter,California,06101,32,2 +2020-05-09,Sutter,California,06101,33,2 +2020-05-10,Sutter,California,06101,33,2 +2020-05-11,Sutter,California,06101,34,2 +2020-05-12,Sutter,California,06101,35,2 +2020-05-13,Sutter,California,06101,36,2 +2020-05-14,Sutter,California,06101,37,2 +2020-05-15,Sutter,California,06101,37,2 +2020-05-16,Sutter,California,06101,38,2 +2020-05-17,Sutter,California,06101,40,2 +2020-05-18,Sutter,California,06101,40,2 +2020-05-19,Sutter,California,06101,40,2 +2020-05-20,Sutter,California,06101,40,2 +2020-05-21,Sutter,California,06101,40,2 +2020-05-22,Sutter,California,06101,40,2 +2020-05-23,Sutter,California,06101,40,2 +2020-05-24,Sutter,California,06101,40,2 +2020-05-25,Sutter,California,06101,42,2 +2020-05-26,Sutter,California,06101,42,2 +2020-05-27,Sutter,California,06101,42,2 +2020-05-28,Sutter,California,06101,42,2 +2020-05-29,Sutter,California,06101,42,2 +2020-05-30,Sutter,California,06101,43,2 +2020-05-31,Sutter,California,06101,46,2 +2020-06-01,Sutter,California,06101,46,2 +2020-06-02,Sutter,California,06101,46,2 +2020-06-03,Sutter,California,06101,48,2 +2020-06-04,Sutter,California,06101,51,2 +2020-06-05,Sutter,California,06101,52,2 +2020-06-06,Sutter,California,06101,55,2 +2020-06-07,Sutter,California,06101,58,2 +2020-06-08,Sutter,California,06101,65,2 +2020-06-09,Sutter,California,06101,66,2 +2020-06-10,Sutter,California,06101,67,2 +2020-06-11,Sutter,California,06101,69,2 +2020-06-12,Sutter,California,06101,78,2 +2020-06-13,Sutter,California,06101,83,2 +2020-06-14,Sutter,California,06101,86,2 +2020-06-15,Sutter,California,06101,88,3 +2020-06-16,Sutter,California,06101,89,3 +2020-06-17,Sutter,California,06101,92,3 +2020-06-18,Sutter,California,06101,97,3 +2020-06-19,Sutter,California,06101,97,3 +2020-06-20,Sutter,California,06101,101,3 +2020-06-21,Sutter,California,06101,112,3 +2020-06-22,Sutter,California,06101,118,3 +2020-06-23,Sutter,California,06101,125,3 +2020-06-24,Sutter,California,06101,127,3 +2020-06-25,Sutter,California,06101,140,3 +2020-06-26,Sutter,California,06101,147,3 +2020-06-27,Sutter,California,06101,152,3 +2020-06-28,Sutter,California,06101,160,3 +2020-06-29,Sutter,California,06101,176,3 +2020-06-30,Sutter,California,06101,190,3 +2020-07-01,Sutter,California,06101,197,3 +2020-07-02,Sutter,California,06101,206,3 +2020-07-03,Sutter,California,06101,228,3 +2020-07-04,Sutter,California,06101,243,3 +2020-07-05,Sutter,California,06101,252,3 +2020-07-06,Sutter,California,06101,275,3 +2020-07-07,Sutter,California,06101,302,4 +2020-07-08,Sutter,California,06101,323,4 +2020-07-09,Sutter,California,06101,337,4 +2020-04-03,Tehama,California,06103,1,0 +2020-04-04,Tehama,California,06103,1,0 +2020-04-05,Tehama,California,06103,1,0 +2020-04-06,Tehama,California,06103,1,0 +2020-04-07,Tehama,California,06103,1,0 +2020-04-08,Tehama,California,06103,1,0 +2020-04-09,Tehama,California,06103,1,0 +2020-04-10,Tehama,California,06103,1,0 +2020-04-11,Tehama,California,06103,1,0 +2020-04-12,Tehama,California,06103,1,0 +2020-04-13,Tehama,California,06103,1,0 +2020-04-14,Tehama,California,06103,1,0 +2020-04-15,Tehama,California,06103,1,0 +2020-04-16,Tehama,California,06103,1,0 +2020-04-17,Tehama,California,06103,1,0 +2020-04-18,Tehama,California,06103,1,0 +2020-04-19,Tehama,California,06103,1,0 +2020-04-20,Tehama,California,06103,1,0 +2020-04-21,Tehama,California,06103,1,0 +2020-04-22,Tehama,California,06103,1,0 +2020-04-23,Tehama,California,06103,1,0 +2020-04-24,Tehama,California,06103,1,1 +2020-04-25,Tehama,California,06103,1,0 +2020-04-26,Tehama,California,06103,1,0 +2020-04-27,Tehama,California,06103,1,1 +2020-04-28,Tehama,California,06103,1,1 +2020-04-29,Tehama,California,06103,1,1 +2020-04-30,Tehama,California,06103,1,1 +2020-05-01,Tehama,California,06103,1,1 +2020-05-02,Tehama,California,06103,1,1 +2020-05-03,Tehama,California,06103,1,1 +2020-05-04,Tehama,California,06103,1,1 +2020-05-05,Tehama,California,06103,1,1 +2020-05-06,Tehama,California,06103,1,1 +2020-05-07,Tehama,California,06103,1,1 +2020-05-08,Tehama,California,06103,1,1 +2020-05-09,Tehama,California,06103,1,1 +2020-05-10,Tehama,California,06103,1,1 +2020-05-11,Tehama,California,06103,1,1 +2020-05-12,Tehama,California,06103,1,1 +2020-05-13,Tehama,California,06103,1,1 +2020-05-14,Tehama,California,06103,1,1 +2020-05-15,Tehama,California,06103,2,1 +2020-05-16,Tehama,California,06103,2,1 +2020-05-17,Tehama,California,06103,2,1 +2020-05-18,Tehama,California,06103,2,1 +2020-05-19,Tehama,California,06103,2,1 +2020-05-20,Tehama,California,06103,2,1 +2020-05-21,Tehama,California,06103,2,1 +2020-05-22,Tehama,California,06103,3,1 +2020-05-23,Tehama,California,06103,3,1 +2020-05-24,Tehama,California,06103,3,1 +2020-05-25,Tehama,California,06103,3,1 +2020-05-26,Tehama,California,06103,4,1 +2020-05-27,Tehama,California,06103,4,1 +2020-05-28,Tehama,California,06103,4,1 +2020-05-29,Tehama,California,06103,4,1 +2020-05-30,Tehama,California,06103,4,1 +2020-05-31,Tehama,California,06103,4,1 +2020-06-01,Tehama,California,06103,5,1 +2020-06-02,Tehama,California,06103,6,1 +2020-06-03,Tehama,California,06103,6,1 +2020-06-04,Tehama,California,06103,7,1 +2020-06-05,Tehama,California,06103,8,1 +2020-06-06,Tehama,California,06103,8,1 +2020-06-07,Tehama,California,06103,8,1 +2020-06-08,Tehama,California,06103,8,1 +2020-06-09,Tehama,California,06103,8,1 +2020-06-10,Tehama,California,06103,9,1 +2020-06-11,Tehama,California,06103,10,1 +2020-06-12,Tehama,California,06103,10,1 +2020-06-13,Tehama,California,06103,13,1 +2020-06-14,Tehama,California,06103,17,1 +2020-06-15,Tehama,California,06103,17,1 +2020-06-16,Tehama,California,06103,17,1 +2020-06-17,Tehama,California,06103,24,1 +2020-06-18,Tehama,California,06103,24,1 +2020-06-19,Tehama,California,06103,31,1 +2020-06-20,Tehama,California,06103,35,1 +2020-06-21,Tehama,California,06103,35,1 +2020-06-22,Tehama,California,06103,35,1 +2020-06-23,Tehama,California,06103,38,1 +2020-06-24,Tehama,California,06103,50,1 +2020-06-25,Tehama,California,06103,55,1 +2020-06-26,Tehama,California,06103,59,1 +2020-06-27,Tehama,California,06103,63,1 +2020-06-28,Tehama,California,06103,63,1 +2020-06-29,Tehama,California,06103,63,1 +2020-06-30,Tehama,California,06103,63,1 +2020-07-01,Tehama,California,06103,75,1 +2020-07-02,Tehama,California,06103,80,1 +2020-07-03,Tehama,California,06103,86,1 +2020-07-04,Tehama,California,06103,89,1 +2020-07-05,Tehama,California,06103,92,1 +2020-07-06,Tehama,California,06103,95,1 +2020-07-07,Tehama,California,06103,95,1 +2020-07-08,Tehama,California,06103,95,1 +2020-07-09,Tehama,California,06103,100,1 +2020-05-10,Trinity,California,06105,1,0 +2020-05-11,Trinity,California,06105,1,0 +2020-05-12,Trinity,California,06105,2,0 +2020-05-13,Trinity,California,06105,2,0 +2020-05-14,Trinity,California,06105,2,0 +2020-05-15,Trinity,California,06105,2,0 +2020-05-16,Trinity,California,06105,2,0 +2020-05-17,Trinity,California,06105,2,0 +2020-05-18,Trinity,California,06105,2,0 +2020-05-19,Trinity,California,06105,2,0 +2020-05-20,Trinity,California,06105,2,0 +2020-05-21,Trinity,California,06105,2,0 +2020-05-22,Trinity,California,06105,2,0 +2020-05-23,Trinity,California,06105,2,0 +2020-05-24,Trinity,California,06105,2,0 +2020-05-25,Trinity,California,06105,2,0 +2020-05-26,Trinity,California,06105,2,0 +2020-05-27,Trinity,California,06105,2,0 +2020-05-28,Trinity,California,06105,2,0 +2020-05-29,Trinity,California,06105,2,0 +2020-05-30,Trinity,California,06105,2,0 +2020-05-31,Trinity,California,06105,2,0 +2020-06-01,Trinity,California,06105,2,0 +2020-06-02,Trinity,California,06105,2,0 +2020-06-03,Trinity,California,06105,2,0 +2020-06-04,Trinity,California,06105,2,0 +2020-06-05,Trinity,California,06105,3,0 +2020-06-06,Trinity,California,06105,3,0 +2020-06-07,Trinity,California,06105,3,0 +2020-06-08,Trinity,California,06105,3,0 +2020-06-09,Trinity,California,06105,3,0 +2020-06-10,Trinity,California,06105,3,0 +2020-06-11,Trinity,California,06105,3,0 +2020-06-12,Trinity,California,06105,3,0 +2020-06-13,Trinity,California,06105,3,0 +2020-06-14,Trinity,California,06105,3,0 +2020-06-15,Trinity,California,06105,3,0 +2020-06-16,Trinity,California,06105,3,0 +2020-06-17,Trinity,California,06105,3,0 +2020-06-18,Trinity,California,06105,3,0 +2020-06-19,Trinity,California,06105,3,0 +2020-06-20,Trinity,California,06105,3,0 +2020-06-21,Trinity,California,06105,3,0 +2020-06-22,Trinity,California,06105,3,0 +2020-06-23,Trinity,California,06105,3,0 +2020-06-24,Trinity,California,06105,3,0 +2020-06-25,Trinity,California,06105,3,0 +2020-06-26,Trinity,California,06105,3,0 +2020-06-27,Trinity,California,06105,3,0 +2020-06-28,Trinity,California,06105,3,0 +2020-06-29,Trinity,California,06105,3,0 +2020-06-30,Trinity,California,06105,3,0 +2020-07-01,Trinity,California,06105,3,0 +2020-07-02,Trinity,California,06105,3,0 +2020-07-03,Trinity,California,06105,3,0 +2020-07-04,Trinity,California,06105,3,0 +2020-07-05,Trinity,California,06105,3,0 +2020-07-06,Trinity,California,06105,3,0 +2020-07-07,Trinity,California,06105,3,0 +2020-07-08,Trinity,California,06105,3,0 +2020-07-09,Trinity,California,06105,3,0 +2020-03-12,Tulare,California,06107,1,0 +2020-03-13,Tulare,California,06107,2,0 +2020-03-14,Tulare,California,06107,3,0 +2020-03-15,Tulare,California,06107,3,0 +2020-03-16,Tulare,California,06107,3,0 +2020-03-17,Tulare,California,06107,3,0 +2020-03-18,Tulare,California,06107,5,0 +2020-03-19,Tulare,California,06107,7,0 +2020-03-20,Tulare,California,06107,11,0 +2020-03-21,Tulare,California,06107,11,0 +2020-03-22,Tulare,California,06107,12,0 +2020-03-23,Tulare,California,06107,16,0 +2020-03-24,Tulare,California,06107,17,0 +2020-03-25,Tulare,California,06107,18,0 +2020-03-26,Tulare,California,06107,20,0 +2020-03-27,Tulare,California,06107,24,0 +2020-03-28,Tulare,California,06107,29,1 +2020-03-29,Tulare,California,06107,35,1 +2020-03-30,Tulare,California,06107,43,1 +2020-03-31,Tulare,California,06107,45,1 +2020-04-01,Tulare,California,06107,59,2 +2020-04-02,Tulare,California,06107,74,2 +2020-04-03,Tulare,California,06107,81,3 +2020-04-04,Tulare,California,06107,107,5 +2020-04-05,Tulare,California,06107,116,5 +2020-04-06,Tulare,California,06107,135,6 +2020-04-07,Tulare,California,06107,157,6 +2020-04-08,Tulare,California,06107,168,7 +2020-04-09,Tulare,California,06107,187,10 +2020-04-10,Tulare,California,06107,203,11 +2020-04-11,Tulare,California,06107,227,11 +2020-04-12,Tulare,California,06107,227,11 +2020-04-13,Tulare,California,06107,264,13 +2020-04-14,Tulare,California,06107,296,13 +2020-04-15,Tulare,California,06107,352,15 +2020-04-16,Tulare,California,06107,372,17 +2020-04-17,Tulare,California,06107,382,17 +2020-04-18,Tulare,California,06107,397,17 +2020-04-19,Tulare,California,06107,411,17 +2020-04-20,Tulare,California,06107,422,18 +2020-04-21,Tulare,California,06107,436,22 +2020-04-22,Tulare,California,06107,441,25 +2020-04-23,Tulare,California,06107,453,25 +2020-04-24,Tulare,California,06107,472,28 +2020-04-25,Tulare,California,06107,491,32 +2020-04-26,Tulare,California,06107,504,32 +2020-04-27,Tulare,California,06107,532,32 +2020-04-28,Tulare,California,06107,578,35 +2020-04-29,Tulare,California,06107,626,36 +2020-04-30,Tulare,California,06107,640,40 +2020-05-01,Tulare,California,06107,680,40 +2020-05-02,Tulare,California,06107,720,40 +2020-05-03,Tulare,California,06107,743,40 +2020-05-04,Tulare,California,06107,757,40 +2020-05-05,Tulare,California,06107,858,40 +2020-05-06,Tulare,California,06107,916,41 +2020-05-07,Tulare,California,06107,969,43 +2020-05-08,Tulare,California,06107,1013,44 +2020-05-09,Tulare,California,06107,1079,46 +2020-05-10,Tulare,California,06107,1140,48 +2020-05-11,Tulare,California,06107,1159,50 +2020-05-12,Tulare,California,06107,1241,52 +2020-05-13,Tulare,California,06107,1268,54 +2020-05-14,Tulare,California,06107,1295,54 +2020-05-15,Tulare,California,06107,1338,64 +2020-05-16,Tulare,California,06107,1426,67 +2020-05-17,Tulare,California,06107,1430,67 +2020-05-18,Tulare,California,06107,1436,67 +2020-05-19,Tulare,California,06107,1539,71 +2020-05-20,Tulare,California,06107,1552,73 +2020-05-21,Tulare,California,06107,1603,74 +2020-05-22,Tulare,California,06107,1641,75 +2020-05-23,Tulare,California,06107,1662,75 +2020-05-24,Tulare,California,06107,1682,75 +2020-05-25,Tulare,California,06107,1684,75 +2020-05-26,Tulare,California,06107,1771,79 +2020-05-27,Tulare,California,06107,1796,79 +2020-05-28,Tulare,California,06107,1835,80 +2020-05-29,Tulare,California,06107,1844,84 +2020-05-30,Tulare,California,06107,1852,84 +2020-05-31,Tulare,California,06107,1879,84 +2020-06-01,Tulare,California,06107,1897,89 +2020-06-02,Tulare,California,06107,2004,89 +2020-06-03,Tulare,California,06107,2026,90 +2020-06-04,Tulare,California,06107,2083,92 +2020-06-05,Tulare,California,06107,2116,92 +2020-06-06,Tulare,California,06107,2180,92 +2020-06-07,Tulare,California,06107,2213,92 +2020-06-08,Tulare,California,06107,2220,94 +2020-06-09,Tulare,California,06107,2381,94 +2020-06-10,Tulare,California,06107,2432,96 +2020-06-11,Tulare,California,06107,2475,98 +2020-06-12,Tulare,California,06107,2564,98 +2020-06-13,Tulare,California,06107,2564,98 +2020-06-14,Tulare,California,06107,2626,98 +2020-06-15,Tulare,California,06107,2664,98 +2020-06-16,Tulare,California,06107,2798,98 +2020-06-17,Tulare,California,06107,2881,106 +2020-06-18,Tulare,California,06107,3004,107 +2020-06-19,Tulare,California,06107,3046,111 +2020-06-20,Tulare,California,06107,3053,111 +2020-06-21,Tulare,California,06107,3172,111 +2020-06-22,Tulare,California,06107,3177,113 +2020-06-23,Tulare,California,06107,3434,116 +2020-06-24,Tulare,California,06107,3533,118 +2020-06-25,Tulare,California,06107,3646,119 +2020-06-26,Tulare,California,06107,3705,122 +2020-06-27,Tulare,California,06107,3720,122 +2020-06-28,Tulare,California,06107,3810,122 +2020-06-29,Tulare,California,06107,3872,124 +2020-06-30,Tulare,California,06107,4156,126 +2020-07-01,Tulare,California,06107,4323,128 +2020-07-02,Tulare,California,06107,4521,133 +2020-07-03,Tulare,California,06107,4627,136 +2020-07-04,Tulare,California,06107,4656,136 +2020-07-05,Tulare,California,06107,4802,136 +2020-07-06,Tulare,California,06107,5009,136 +2020-07-07,Tulare,California,06107,5175,139 +2020-07-08,Tulare,California,06107,5298,148 +2020-07-09,Tulare,California,06107,5509,148 +2020-03-29,Tuolumne,California,06109,1,0 +2020-03-30,Tuolumne,California,06109,1,0 +2020-03-31,Tuolumne,California,06109,1,0 +2020-04-01,Tuolumne,California,06109,1,0 +2020-04-02,Tuolumne,California,06109,1,0 +2020-04-03,Tuolumne,California,06109,1,0 +2020-04-04,Tuolumne,California,06109,1,0 +2020-04-05,Tuolumne,California,06109,1,0 +2020-04-06,Tuolumne,California,06109,1,0 +2020-04-07,Tuolumne,California,06109,1,0 +2020-04-08,Tuolumne,California,06109,1,0 +2020-04-09,Tuolumne,California,06109,1,0 +2020-04-10,Tuolumne,California,06109,1,0 +2020-04-11,Tuolumne,California,06109,1,0 +2020-04-12,Tuolumne,California,06109,1,0 +2020-04-13,Tuolumne,California,06109,1,0 +2020-04-14,Tuolumne,California,06109,2,0 +2020-04-15,Tuolumne,California,06109,2,0 +2020-04-16,Tuolumne,California,06109,2,0 +2020-04-17,Tuolumne,California,06109,2,0 +2020-04-18,Tuolumne,California,06109,2,0 +2020-04-19,Tuolumne,California,06109,2,0 +2020-04-20,Tuolumne,California,06109,2,0 +2020-04-21,Tuolumne,California,06109,2,0 +2020-04-22,Tuolumne,California,06109,2,0 +2020-04-23,Tuolumne,California,06109,2,0 +2020-04-24,Tuolumne,California,06109,2,0 +2020-04-25,Tuolumne,California,06109,3,0 +2020-04-26,Tuolumne,California,06109,3,0 +2020-04-27,Tuolumne,California,06109,4,0 +2020-04-28,Tuolumne,California,06109,4,0 +2020-04-29,Tuolumne,California,06109,4,0 +2020-04-30,Tuolumne,California,06109,4,0 +2020-05-01,Tuolumne,California,06109,4,0 +2020-05-02,Tuolumne,California,06109,4,0 +2020-05-03,Tuolumne,California,06109,4,0 +2020-05-04,Tuolumne,California,06109,4,0 +2020-05-05,Tuolumne,California,06109,3,0 +2020-05-06,Tuolumne,California,06109,2,0 +2020-05-07,Tuolumne,California,06109,2,0 +2020-05-08,Tuolumne,California,06109,2,0 +2020-05-09,Tuolumne,California,06109,2,0 +2020-05-10,Tuolumne,California,06109,2,0 +2020-05-11,Tuolumne,California,06109,2,0 +2020-05-12,Tuolumne,California,06109,2,0 +2020-05-13,Tuolumne,California,06109,2,0 +2020-05-14,Tuolumne,California,06109,2,0 +2020-05-15,Tuolumne,California,06109,2,0 +2020-05-16,Tuolumne,California,06109,2,0 +2020-05-17,Tuolumne,California,06109,2,0 +2020-05-18,Tuolumne,California,06109,2,0 +2020-05-19,Tuolumne,California,06109,2,0 +2020-05-20,Tuolumne,California,06109,2,0 +2020-05-21,Tuolumne,California,06109,2,0 +2020-05-22,Tuolumne,California,06109,2,0 +2020-05-23,Tuolumne,California,06109,3,0 +2020-05-24,Tuolumne,California,06109,3,0 +2020-05-25,Tuolumne,California,06109,3,0 +2020-05-26,Tuolumne,California,06109,4,0 +2020-05-27,Tuolumne,California,06109,4,0 +2020-05-28,Tuolumne,California,06109,4,0 +2020-05-29,Tuolumne,California,06109,4,0 +2020-05-30,Tuolumne,California,06109,4,0 +2020-05-31,Tuolumne,California,06109,4,0 +2020-06-01,Tuolumne,California,06109,4,0 +2020-06-02,Tuolumne,California,06109,4,0 +2020-06-03,Tuolumne,California,06109,5,0 +2020-06-04,Tuolumne,California,06109,5,0 +2020-06-05,Tuolumne,California,06109,7,0 +2020-06-06,Tuolumne,California,06109,7,0 +2020-06-07,Tuolumne,California,06109,7,0 +2020-06-08,Tuolumne,California,06109,7,0 +2020-06-09,Tuolumne,California,06109,8,0 +2020-06-10,Tuolumne,California,06109,8,0 +2020-06-11,Tuolumne,California,06109,8,0 +2020-06-12,Tuolumne,California,06109,8,0 +2020-06-13,Tuolumne,California,06109,8,0 +2020-06-14,Tuolumne,California,06109,9,0 +2020-06-15,Tuolumne,California,06109,9,0 +2020-06-16,Tuolumne,California,06109,9,0 +2020-06-17,Tuolumne,California,06109,9,0 +2020-06-18,Tuolumne,California,06109,9,0 +2020-06-19,Tuolumne,California,06109,9,0 +2020-06-20,Tuolumne,California,06109,10,0 +2020-06-21,Tuolumne,California,06109,10,0 +2020-06-22,Tuolumne,California,06109,12,0 +2020-06-23,Tuolumne,California,06109,14,0 +2020-06-24,Tuolumne,California,06109,15,0 +2020-06-25,Tuolumne,California,06109,22,0 +2020-06-26,Tuolumne,California,06109,22,0 +2020-06-27,Tuolumne,California,06109,22,0 +2020-06-28,Tuolumne,California,06109,22,0 +2020-06-29,Tuolumne,California,06109,28,0 +2020-06-30,Tuolumne,California,06109,30,0 +2020-07-01,Tuolumne,California,06109,34,0 +2020-07-02,Tuolumne,California,06109,43,0 +2020-07-03,Tuolumne,California,06109,43,0 +2020-07-04,Tuolumne,California,06109,43,0 +2020-07-05,Tuolumne,California,06109,43,0 +2020-07-06,Tuolumne,California,06109,53,0 +2020-07-07,Tuolumne,California,06109,57,0 +2020-07-08,Tuolumne,California,06109,58,0 +2020-07-09,Tuolumne,California,06109,59,0 +2020-03-10,Ventura,California,06111,1,0 +2020-03-11,Ventura,California,06111,2,0 +2020-03-12,Ventura,California,06111,2,0 +2020-03-13,Ventura,California,06111,5,0 +2020-03-14,Ventura,California,06111,5,0 +2020-03-15,Ventura,California,06111,5,0 +2020-03-16,Ventura,California,06111,5,0 +2020-03-17,Ventura,California,06111,10,0 +2020-03-18,Ventura,California,06111,13,0 +2020-03-19,Ventura,California,06111,19,0 +2020-03-20,Ventura,California,06111,19,0 +2020-03-21,Ventura,California,06111,26,0 +2020-03-22,Ventura,California,06111,30,1 +2020-03-23,Ventura,California,06111,35,1 +2020-03-24,Ventura,California,06111,39,1 +2020-03-25,Ventura,California,06111,50,1 +2020-03-26,Ventura,California,06111,61,1 +2020-03-27,Ventura,California,06111,83,3 +2020-03-28,Ventura,California,06111,98,3 +2020-03-29,Ventura,California,06111,109,4 +2020-03-30,Ventura,California,06111,126,4 +2020-03-31,Ventura,California,06111,149,5 +2020-04-01,Ventura,California,06111,160,5 +2020-04-02,Ventura,California,06111,177,6 +2020-04-03,Ventura,California,06111,189,6 +2020-04-04,Ventura,California,06111,203,6 +2020-04-05,Ventura,California,06111,221,6 +2020-04-06,Ventura,California,06111,226,6 +2020-04-07,Ventura,California,06111,243,6 +2020-04-08,Ventura,California,06111,263,7 +2020-04-09,Ventura,California,06111,274,7 +2020-04-10,Ventura,California,06111,298,10 +2020-04-11,Ventura,California,06111,309,10 +2020-04-12,Ventura,California,06111,314,10 +2020-04-13,Ventura,California,06111,317,10 +2020-04-14,Ventura,California,06111,350,13 +2020-04-15,Ventura,California,06111,365,13 +2020-04-16,Ventura,California,06111,384,13 +2020-04-17,Ventura,California,06111,396,13 +2020-04-18,Ventura,California,06111,416,13 +2020-04-19,Ventura,California,06111,416,13 +2020-04-20,Ventura,California,06111,428,13 +2020-04-21,Ventura,California,06111,443,13 +2020-04-22,Ventura,California,06111,451,14 +2020-04-23,Ventura,California,06111,465,16 +2020-04-24,Ventura,California,06111,476,16 +2020-04-25,Ventura,California,06111,476,16 +2020-04-26,Ventura,California,06111,497,17 +2020-04-27,Ventura,California,06111,509,17 +2020-04-28,Ventura,California,06111,513,17 +2020-04-29,Ventura,California,06111,517,17 +2020-04-30,Ventura,California,06111,535,18 +2020-05-01,Ventura,California,06111,547,18 +2020-05-02,Ventura,California,06111,559,19 +2020-05-03,Ventura,California,06111,566,19 +2020-05-04,Ventura,California,06111,583,19 +2020-05-05,Ventura,California,06111,595,19 +2020-05-06,Ventura,California,06111,608,19 +2020-05-07,Ventura,California,06111,631,19 +2020-05-08,Ventura,California,06111,652,19 +2020-05-09,Ventura,California,06111,666,19 +2020-05-10,Ventura,California,06111,679,19 +2020-05-11,Ventura,California,06111,690,19 +2020-05-12,Ventura,California,06111,698,19 +2020-05-13,Ventura,California,06111,725,24 +2020-05-14,Ventura,California,06111,742,24 +2020-05-15,Ventura,California,06111,760,25 +2020-05-16,Ventura,California,06111,789,25 +2020-05-17,Ventura,California,06111,813,25 +2020-05-18,Ventura,California,06111,838,25 +2020-05-19,Ventura,California,06111,850,28 +2020-05-20,Ventura,California,06111,861,29 +2020-05-21,Ventura,California,06111,883,29 +2020-05-22,Ventura,California,06111,912,30 +2020-05-23,Ventura,California,06111,937,30 +2020-05-24,Ventura,California,06111,961,30 +2020-05-25,Ventura,California,06111,982,30 +2020-05-26,Ventura,California,06111,1020,32 +2020-05-27,Ventura,California,06111,1033,32 +2020-05-28,Ventura,California,06111,1065,32 +2020-05-29,Ventura,California,06111,1083,33 +2020-05-30,Ventura,California,06111,1093,33 +2020-05-31,Ventura,California,06111,1116,33 +2020-06-01,Ventura,California,06111,1152,34 +2020-06-02,Ventura,California,06111,1164,34 +2020-06-03,Ventura,California,06111,1190,35 +2020-06-04,Ventura,California,06111,1216,35 +2020-06-05,Ventura,California,06111,1261,35 +2020-06-06,Ventura,California,06111,1274,35 +2020-06-07,Ventura,California,06111,1303,35 +2020-06-08,Ventura,California,06111,1341,35 +2020-06-09,Ventura,California,06111,1382,35 +2020-06-10,Ventura,California,06111,1407,38 +2020-06-11,Ventura,California,06111,1466,38 +2020-06-12,Ventura,California,06111,1518,40 +2020-06-13,Ventura,California,06111,1534,40 +2020-06-14,Ventura,California,06111,1567,40 +2020-06-15,Ventura,California,06111,1633,41 +2020-06-16,Ventura,California,06111,1656,41 +2020-06-17,Ventura,California,06111,1706,41 +2020-06-18,Ventura,California,06111,1753,42 +2020-06-19,Ventura,California,06111,1781,42 +2020-06-20,Ventura,California,06111,1865,42 +2020-06-21,Ventura,California,06111,1946,42 +2020-06-22,Ventura,California,06111,2030,43 +2020-06-23,Ventura,California,06111,2161,43 +2020-06-24,Ventura,California,06111,2260,44 +2020-06-25,Ventura,California,06111,2314,44 +2020-06-26,Ventura,California,06111,2346,44 +2020-06-27,Ventura,California,06111,2444,44 +2020-06-28,Ventura,California,06111,2527,44 +2020-06-29,Ventura,California,06111,2740,45 +2020-06-30,Ventura,California,06111,2926,46 +2020-07-01,Ventura,California,06111,3096,46 +2020-07-02,Ventura,California,06111,3240,47 +2020-07-03,Ventura,California,06111,3394,47 +2020-07-04,Ventura,California,06111,3536,47 +2020-07-05,Ventura,California,06111,3687,47 +2020-07-06,Ventura,California,06111,3866,50 +2020-07-07,Ventura,California,06111,3912,50 +2020-07-08,Ventura,California,06111,3992,50 +2020-07-09,Ventura,California,06111,4139,53 +2020-03-06,Yolo,California,06113,1,0 +2020-03-07,Yolo,California,06113,1,0 +2020-03-08,Yolo,California,06113,1,0 +2020-03-09,Yolo,California,06113,1,0 +2020-03-10,Yolo,California,06113,1,0 +2020-03-11,Yolo,California,06113,1,0 +2020-03-12,Yolo,California,06113,1,0 +2020-03-13,Yolo,California,06113,2,0 +2020-03-14,Yolo,California,06113,2,0 +2020-03-15,Yolo,California,06113,2,0 +2020-03-16,Yolo,California,06113,2,0 +2020-03-17,Yolo,California,06113,4,0 +2020-03-18,Yolo,California,06113,5,0 +2020-03-19,Yolo,California,06113,5,0 +2020-03-20,Yolo,California,06113,6,0 +2020-03-21,Yolo,California,06113,6,0 +2020-03-22,Yolo,California,06113,6,1 +2020-03-23,Yolo,California,06113,8,1 +2020-03-24,Yolo,California,06113,10,1 +2020-03-25,Yolo,California,06113,11,1 +2020-03-26,Yolo,California,06113,11,1 +2020-03-27,Yolo,California,06113,16,1 +2020-03-28,Yolo,California,06113,16,1 +2020-03-29,Yolo,California,06113,16,1 +2020-03-30,Yolo,California,06113,24,1 +2020-03-31,Yolo,California,06113,25,1 +2020-04-01,Yolo,California,06113,28,1 +2020-04-02,Yolo,California,06113,28,1 +2020-04-03,Yolo,California,06113,33,1 +2020-04-04,Yolo,California,06113,33,1 +2020-04-05,Yolo,California,06113,37,1 +2020-04-06,Yolo,California,06113,50,1 +2020-04-07,Yolo,California,06113,56,2 +2020-04-08,Yolo,California,06113,67,3 +2020-04-09,Yolo,California,06113,71,3 +2020-04-10,Yolo,California,06113,75,3 +2020-04-11,Yolo,California,06113,88,3 +2020-04-12,Yolo,California,06113,93,3 +2020-04-13,Yolo,California,06113,101,4 +2020-04-14,Yolo,California,06113,102,4 +2020-04-15,Yolo,California,06113,116,7 +2020-04-16,Yolo,California,06113,125,7 +2020-04-17,Yolo,California,06113,126,8 +2020-04-18,Yolo,California,06113,137,8 +2020-04-19,Yolo,California,06113,137,9 +2020-04-20,Yolo,California,06113,142,10 +2020-04-21,Yolo,California,06113,146,10 +2020-04-22,Yolo,California,06113,151,12 +2020-04-23,Yolo,California,06113,155,12 +2020-04-24,Yolo,California,06113,157,13 +2020-04-25,Yolo,California,06113,158,13 +2020-04-26,Yolo,California,06113,161,14 +2020-04-27,Yolo,California,06113,161,16 +2020-04-28,Yolo,California,06113,162,16 +2020-04-29,Yolo,California,06113,163,16 +2020-04-30,Yolo,California,06113,164,16 +2020-05-01,Yolo,California,06113,169,16 +2020-05-02,Yolo,California,06113,171,18 +2020-05-03,Yolo,California,06113,171,18 +2020-05-04,Yolo,California,06113,171,19 +2020-05-05,Yolo,California,06113,172,19 +2020-05-06,Yolo,California,06113,172,20 +2020-05-07,Yolo,California,06113,172,20 +2020-05-08,Yolo,California,06113,172,20 +2020-05-09,Yolo,California,06113,172,20 +2020-05-10,Yolo,California,06113,173,20 +2020-05-11,Yolo,California,06113,174,20 +2020-05-12,Yolo,California,06113,177,22 +2020-05-13,Yolo,California,06113,179,22 +2020-05-14,Yolo,California,06113,182,22 +2020-05-15,Yolo,California,06113,182,22 +2020-05-16,Yolo,California,06113,183,22 +2020-05-17,Yolo,California,06113,184,22 +2020-05-18,Yolo,California,06113,184,22 +2020-05-19,Yolo,California,06113,185,22 +2020-05-20,Yolo,California,06113,185,22 +2020-05-21,Yolo,California,06113,186,22 +2020-05-22,Yolo,California,06113,188,22 +2020-05-23,Yolo,California,06113,190,22 +2020-05-24,Yolo,California,06113,194,22 +2020-05-25,Yolo,California,06113,198,22 +2020-05-26,Yolo,California,06113,200,22 +2020-05-27,Yolo,California,06113,205,22 +2020-05-28,Yolo,California,06113,207,23 +2020-05-29,Yolo,California,06113,210,24 +2020-05-30,Yolo,California,06113,211,24 +2020-05-31,Yolo,California,06113,211,24 +2020-06-01,Yolo,California,06113,212,24 +2020-06-02,Yolo,California,06113,213,24 +2020-06-03,Yolo,California,06113,214,24 +2020-06-04,Yolo,California,06113,216,24 +2020-06-05,Yolo,California,06113,218,24 +2020-06-06,Yolo,California,06113,221,24 +2020-06-07,Yolo,California,06113,223,24 +2020-06-08,Yolo,California,06113,225,24 +2020-06-09,Yolo,California,06113,228,24 +2020-06-10,Yolo,California,06113,227,24 +2020-06-11,Yolo,California,06113,240,24 +2020-06-12,Yolo,California,06113,248,24 +2020-06-13,Yolo,California,06113,252,24 +2020-06-14,Yolo,California,06113,253,24 +2020-06-15,Yolo,California,06113,255,24 +2020-06-16,Yolo,California,06113,265,24 +2020-06-17,Yolo,California,06113,291,24 +2020-06-18,Yolo,California,06113,302,24 +2020-06-19,Yolo,California,06113,310,24 +2020-06-20,Yolo,California,06113,321,24 +2020-06-21,Yolo,California,06113,330,24 +2020-06-22,Yolo,California,06113,347,24 +2020-06-23,Yolo,California,06113,366,24 +2020-06-24,Yolo,California,06113,386,24 +2020-06-25,Yolo,California,06113,408,24 +2020-06-26,Yolo,California,06113,438,24 +2020-06-27,Yolo,California,06113,458,24 +2020-06-28,Yolo,California,06113,479,24 +2020-06-29,Yolo,California,06113,505,24 +2020-06-30,Yolo,California,06113,526,24 +2020-07-01,Yolo,California,06113,555,24 +2020-07-02,Yolo,California,06113,583,24 +2020-07-03,Yolo,California,06113,613,25 +2020-07-04,Yolo,California,06113,645,25 +2020-07-05,Yolo,California,06113,677,26 +2020-07-06,Yolo,California,06113,705,26 +2020-07-07,Yolo,California,06113,723,26 +2020-07-08,Yolo,California,06113,760,28 +2020-07-09,Yolo,California,06113,802,28 +2020-03-21,Yuba,California,06115,2,0 +2020-03-22,Yuba,California,06115,2,0 +2020-03-23,Yuba,California,06115,3,0 +2020-03-24,Yuba,California,06115,3,0 +2020-03-25,Yuba,California,06115,3,0 +2020-03-26,Yuba,California,06115,3,0 +2020-03-27,Yuba,California,06115,3,0 +2020-03-28,Yuba,California,06115,3,0 +2020-03-29,Yuba,California,06115,3,0 +2020-03-30,Yuba,California,06115,6,0 +2020-03-31,Yuba,California,06115,7,0 +2020-04-01,Yuba,California,06115,7,0 +2020-04-02,Yuba,California,06115,8,0 +2020-04-03,Yuba,California,06115,9,0 +2020-04-04,Yuba,California,06115,9,0 +2020-04-05,Yuba,California,06115,10,0 +2020-04-06,Yuba,California,06115,11,0 +2020-04-07,Yuba,California,06115,13,0 +2020-04-08,Yuba,California,06115,15,2 +2020-04-09,Yuba,California,06115,15,3 +2020-04-10,Yuba,California,06115,15,1 +2020-04-11,Yuba,California,06115,15,1 +2020-04-12,Yuba,California,06115,15,1 +2020-04-13,Yuba,California,06115,15,1 +2020-04-14,Yuba,California,06115,15,1 +2020-04-15,Yuba,California,06115,15,1 +2020-04-16,Yuba,California,06115,15,1 +2020-04-17,Yuba,California,06115,15,1 +2020-04-18,Yuba,California,06115,16,1 +2020-04-19,Yuba,California,06115,16,1 +2020-04-20,Yuba,California,06115,16,1 +2020-04-21,Yuba,California,06115,16,1 +2020-04-22,Yuba,California,06115,16,1 +2020-04-23,Yuba,California,06115,16,1 +2020-04-24,Yuba,California,06115,16,1 +2020-04-25,Yuba,California,06115,16,1 +2020-04-26,Yuba,California,06115,16,1 +2020-04-27,Yuba,California,06115,16,1 +2020-04-28,Yuba,California,06115,17,1 +2020-04-29,Yuba,California,06115,17,1 +2020-04-30,Yuba,California,06115,18,1 +2020-05-01,Yuba,California,06115,19,1 +2020-05-02,Yuba,California,06115,19,1 +2020-05-03,Yuba,California,06115,19,1 +2020-05-04,Yuba,California,06115,19,1 +2020-05-05,Yuba,California,06115,19,1 +2020-05-06,Yuba,California,06115,19,1 +2020-05-07,Yuba,California,06115,20,1 +2020-05-08,Yuba,California,06115,20,1 +2020-05-09,Yuba,California,06115,20,1 +2020-05-10,Yuba,California,06115,20,1 +2020-05-11,Yuba,California,06115,21,1 +2020-05-12,Yuba,California,06115,23,1 +2020-05-13,Yuba,California,06115,25,1 +2020-05-14,Yuba,California,06115,25,1 +2020-05-15,Yuba,California,06115,25,1 +2020-05-16,Yuba,California,06115,25,1 +2020-05-17,Yuba,California,06115,26,1 +2020-05-18,Yuba,California,06115,28,1 +2020-05-19,Yuba,California,06115,28,1 +2020-05-20,Yuba,California,06115,28,1 +2020-05-21,Yuba,California,06115,28,1 +2020-05-22,Yuba,California,06115,28,1 +2020-05-23,Yuba,California,06115,28,1 +2020-05-24,Yuba,California,06115,28,1 +2020-05-25,Yuba,California,06115,28,1 +2020-05-26,Yuba,California,06115,28,1 +2020-05-27,Yuba,California,06115,28,1 +2020-05-28,Yuba,California,06115,29,1 +2020-05-29,Yuba,California,06115,29,1 +2020-05-30,Yuba,California,06115,30,1 +2020-05-31,Yuba,California,06115,30,1 +2020-06-01,Yuba,California,06115,30,1 +2020-06-02,Yuba,California,06115,31,1 +2020-06-03,Yuba,California,06115,31,1 +2020-06-04,Yuba,California,06115,31,1 +2020-06-05,Yuba,California,06115,32,1 +2020-06-06,Yuba,California,06115,32,1 +2020-06-07,Yuba,California,06115,32,1 +2020-06-08,Yuba,California,06115,32,1 +2020-06-09,Yuba,California,06115,32,1 +2020-06-10,Yuba,California,06115,33,1 +2020-06-11,Yuba,California,06115,34,1 +2020-06-12,Yuba,California,06115,35,1 +2020-06-13,Yuba,California,06115,35,1 +2020-06-14,Yuba,California,06115,35,1 +2020-06-15,Yuba,California,06115,36,1 +2020-06-16,Yuba,California,06115,37,1 +2020-06-17,Yuba,California,06115,39,1 +2020-06-18,Yuba,California,06115,39,1 +2020-06-19,Yuba,California,06115,39,1 +2020-06-20,Yuba,California,06115,42,1 +2020-06-21,Yuba,California,06115,42,1 +2020-06-22,Yuba,California,06115,43,1 +2020-06-23,Yuba,California,06115,43,1 +2020-06-24,Yuba,California,06115,49,1 +2020-06-25,Yuba,California,06115,51,1 +2020-06-26,Yuba,California,06115,57,1 +2020-06-27,Yuba,California,06115,61,1 +2020-06-28,Yuba,California,06115,65,1 +2020-06-29,Yuba,California,06115,71,1 +2020-06-30,Yuba,California,06115,75,1 +2020-07-01,Yuba,California,06115,94,1 +2020-07-02,Yuba,California,06115,103,1 +2020-07-03,Yuba,California,06115,106,1 +2020-07-04,Yuba,California,06115,120,2 +2020-07-05,Yuba,California,06115,128,2 +2020-07-06,Yuba,California,06115,139,2 +2020-07-07,Yuba,California,06115,147,2 +2020-07-08,Yuba,California,06115,154,3 +2020-07-09,Yuba,California,06115,163,3 +2020-03-12,Adams,Colorado,08001,2,0 +2020-03-13,Adams,Colorado,08001,3,0 +2020-03-14,Adams,Colorado,08001,6,0 +2020-03-15,Adams,Colorado,08001,6,0 +2020-03-16,Adams,Colorado,08001,8,0 +2020-03-17,Adams,Colorado,08001,10,0 +2020-03-18,Adams,Colorado,08001,10,0 +2020-03-19,Adams,Colorado,08001,10,0 +2020-03-20,Adams,Colorado,08001,12,0 +2020-03-21,Adams,Colorado,08001,14,0 +2020-03-22,Adams,Colorado,08001,18,0 +2020-03-23,Adams,Colorado,08001,25,0 +2020-03-24,Adams,Colorado,08001,27,0 +2020-03-25,Adams,Colorado,08001,38,0 +2020-03-26,Adams,Colorado,08001,50,0 +2020-03-27,Adams,Colorado,08001,71,0 +2020-03-28,Adams,Colorado,08001,95,0 +2020-03-29,Adams,Colorado,08001,110,0 +2020-03-30,Adams,Colorado,08001,153,0 +2020-03-31,Adams,Colorado,08001,185,2 +2020-04-01,Adams,Colorado,08001,214,6 +2020-04-02,Adams,Colorado,08001,260,7 +2020-04-03,Adams,Colorado,08001,294,9 +2020-04-04,Adams,Colorado,08001,320,9 +2020-04-05,Adams,Colorado,08001,354,10 +2020-04-06,Adams,Colorado,08001,367,12 +2020-04-07,Adams,Colorado,08001,388,14 +2020-04-08,Adams,Colorado,08001,417,14 +2020-04-09,Adams,Colorado,08001,475,16 +2020-04-10,Adams,Colorado,08001,543,23 +2020-04-11,Adams,Colorado,08001,593,25 +2020-04-12,Adams,Colorado,08001,647,26 +2020-04-13,Adams,Colorado,08001,693,26 +2020-04-14,Adams,Colorado,08001,726,27 +2020-04-15,Adams,Colorado,08001,758,28 +2020-04-16,Adams,Colorado,08001,805,29 +2020-04-17,Adams,Colorado,08001,860,31 +2020-04-18,Adams,Colorado,08001,894,33 +2020-04-19,Adams,Colorado,08001,915,35 +2020-04-20,Adams,Colorado,08001,968,37 +2020-04-21,Adams,Colorado,08001,996,46 +2020-04-22,Adams,Colorado,08001,1033,46 +2020-04-23,Adams,Colorado,08001,1082,46 +2020-04-24,Adams,Colorado,08001,1252,57 +2020-04-25,Adams,Colorado,08001,1302,57 +2020-04-26,Adams,Colorado,08001,1348,58 +2020-04-27,Adams,Colorado,08001,1391,60 +2020-04-28,Adams,Colorado,08001,1430,61 +2020-04-29,Adams,Colorado,08001,1490,62 +2020-04-30,Adams,Colorado,08001,1585,63 +2020-05-01,Adams,Colorado,08001,1665,68 +2020-05-02,Adams,Colorado,08001,1730,68 +2020-05-03,Adams,Colorado,08001,1780,68 +2020-05-04,Adams,Colorado,08001,1815,68 +2020-05-05,Adams,Colorado,08001,1883,72 +2020-05-06,Adams,Colorado,08001,1952,75 +2020-05-07,Adams,Colorado,08001,2046,78 +2020-05-08,Adams,Colorado,08001,2117,80 +2020-05-09,Adams,Colorado,08001,2205,81 +2020-05-10,Adams,Colorado,08001,2242,81 +2020-05-11,Adams,Colorado,08001,2278,81 +2020-05-12,Adams,Colorado,08001,2322,84 +2020-05-13,Adams,Colorado,08001,2374,86 +2020-05-14,Adams,Colorado,08001,2448,91 +2020-05-15,Adams,Colorado,08001,2520,99 +2020-05-16,Adams,Colorado,08001,2575,102 +2020-05-17,Adams,Colorado,08001,2613,102 +2020-05-18,Adams,Colorado,08001,2640,102 +2020-05-19,Adams,Colorado,08001,2675,104 +2020-05-20,Adams,Colorado,08001,2737,108 +2020-05-21,Adams,Colorado,08001,2759,108 +2020-05-22,Adams,Colorado,08001,2802,111 +2020-05-23,Adams,Colorado,08001,2856,112 +2020-05-24,Adams,Colorado,08001,2869,112 +2020-05-25,Adams,Colorado,08001,2908,112 +2020-05-26,Adams,Colorado,08001,2964,116 +2020-05-27,Adams,Colorado,08001,3006,118 +2020-05-28,Adams,Colorado,08001,3070,118 +2020-05-29,Adams,Colorado,08001,3142,120 +2020-05-30,Adams,Colorado,08001,3224,120 +2020-05-31,Adams,Colorado,08001,3258,120 +2020-06-01,Adams,Colorado,08001,3291,123 +2020-06-02,Adams,Colorado,08001,3338,125 +2020-06-03,Adams,Colorado,08001,3379,127 +2020-06-04,Adams,Colorado,08001,3458,130 +2020-06-05,Adams,Colorado,08001,3515,135 +2020-06-06,Adams,Colorado,08001,3552,136 +2020-06-07,Adams,Colorado,08001,3575,136 +2020-06-08,Adams,Colorado,08001,3605,138 +2020-06-09,Adams,Colorado,08001,3627,140 +2020-06-10,Adams,Colorado,08001,3643,143 +2020-06-11,Adams,Colorado,08001,3663,143 +2020-06-12,Adams,Colorado,08001,3698,143 +2020-06-13,Adams,Colorado,08001,3729,144 +2020-06-14,Adams,Colorado,08001,3743,144 +2020-06-15,Adams,Colorado,08001,3759,144 +2020-06-16,Adams,Colorado,08001,3771,146 +2020-06-17,Adams,Colorado,08001,3791,149 +2020-06-18,Adams,Colorado,08001,3819,149 +2020-06-19,Adams,Colorado,08001,3852,150 +2020-06-20,Adams,Colorado,08001,3872,152 +2020-06-21,Adams,Colorado,08001,3909,152 +2020-06-22,Adams,Colorado,08001,3932,153 +2020-06-23,Adams,Colorado,08001,3941,154 +2020-06-24,Adams,Colorado,08001,3971,154 +2020-06-25,Adams,Colorado,08001,4013,154 +2020-06-26,Adams,Colorado,08001,4058,154 +2020-06-27,Adams,Colorado,08001,4093,154 +2020-06-28,Adams,Colorado,08001,4148,154 +2020-06-29,Adams,Colorado,08001,4170,155 +2020-06-30,Adams,Colorado,08001,4185,155 +2020-07-01,Adams,Colorado,08001,4226,156 +2020-07-02,Adams,Colorado,08001,4267,156 +2020-07-03,Adams,Colorado,08001,4293,156 +2020-07-04,Adams,Colorado,08001,4322,156 +2020-07-05,Adams,Colorado,08001,4362,156 +2020-07-06,Adams,Colorado,08001,4400,156 +2020-07-07,Adams,Colorado,08001,4478,156 +2020-07-08,Adams,Colorado,08001,4546,156 +2020-07-09,Adams,Colorado,08001,4588,156 +2020-03-27,Alamosa,Colorado,08003,1,0 +2020-03-28,Alamosa,Colorado,08003,1,0 +2020-03-29,Alamosa,Colorado,08003,1,0 +2020-03-30,Alamosa,Colorado,08003,1,0 +2020-03-31,Alamosa,Colorado,08003,1,0 +2020-04-01,Alamosa,Colorado,08003,4,0 +2020-04-02,Alamosa,Colorado,08003,4,0 +2020-04-03,Alamosa,Colorado,08003,4,0 +2020-04-04,Alamosa,Colorado,08003,4,0 +2020-04-05,Alamosa,Colorado,08003,4,0 +2020-04-06,Alamosa,Colorado,08003,4,0 +2020-04-07,Alamosa,Colorado,08003,4,0 +2020-04-08,Alamosa,Colorado,08003,5,0 +2020-04-09,Alamosa,Colorado,08003,7,2 +2020-04-10,Alamosa,Colorado,08003,7,2 +2020-04-11,Alamosa,Colorado,08003,7,2 +2020-04-12,Alamosa,Colorado,08003,7,2 +2020-04-13,Alamosa,Colorado,08003,7,2 +2020-04-14,Alamosa,Colorado,08003,7,2 +2020-04-15,Alamosa,Colorado,08003,7,2 +2020-04-16,Alamosa,Colorado,08003,7,2 +2020-04-17,Alamosa,Colorado,08003,7,2 +2020-04-18,Alamosa,Colorado,08003,7,2 +2020-04-19,Alamosa,Colorado,08003,7,2 +2020-04-20,Alamosa,Colorado,08003,9,2 +2020-04-21,Alamosa,Colorado,08003,9,2 +2020-04-22,Alamosa,Colorado,08003,9,2 +2020-04-23,Alamosa,Colorado,08003,9,2 +2020-04-24,Alamosa,Colorado,08003,10,2 +2020-04-25,Alamosa,Colorado,08003,10,2 +2020-04-26,Alamosa,Colorado,08003,10,2 +2020-04-27,Alamosa,Colorado,08003,10,2 +2020-04-28,Alamosa,Colorado,08003,10,2 +2020-04-29,Alamosa,Colorado,08003,10,2 +2020-04-30,Alamosa,Colorado,08003,10,2 +2020-05-01,Alamosa,Colorado,08003,10,2 +2020-05-02,Alamosa,Colorado,08003,11,2 +2020-05-03,Alamosa,Colorado,08003,12,2 +2020-05-04,Alamosa,Colorado,08003,14,2 +2020-05-05,Alamosa,Colorado,08003,14,2 +2020-05-06,Alamosa,Colorado,08003,22,2 +2020-05-07,Alamosa,Colorado,08003,25,2 +2020-05-08,Alamosa,Colorado,08003,25,2 +2020-05-09,Alamosa,Colorado,08003,25,2 +2020-05-10,Alamosa,Colorado,08003,25,2 +2020-05-11,Alamosa,Colorado,08003,32,2 +2020-05-12,Alamosa,Colorado,08003,33,2 +2020-05-13,Alamosa,Colorado,08003,33,2 +2020-05-14,Alamosa,Colorado,08003,37,2 +2020-05-15,Alamosa,Colorado,08003,38,2 +2020-05-16,Alamosa,Colorado,08003,39,2 +2020-05-17,Alamosa,Colorado,08003,41,2 +2020-05-18,Alamosa,Colorado,08003,42,2 +2020-05-19,Alamosa,Colorado,08003,43,2 +2020-05-20,Alamosa,Colorado,08003,43,2 +2020-05-21,Alamosa,Colorado,08003,51,2 +2020-05-22,Alamosa,Colorado,08003,51,2 +2020-05-23,Alamosa,Colorado,08003,55,2 +2020-05-24,Alamosa,Colorado,08003,58,2 +2020-05-25,Alamosa,Colorado,08003,58,2 +2020-05-26,Alamosa,Colorado,08003,58,2 +2020-05-27,Alamosa,Colorado,08003,58,2 +2020-05-28,Alamosa,Colorado,08003,60,2 +2020-05-29,Alamosa,Colorado,08003,65,2 +2020-05-30,Alamosa,Colorado,08003,74,2 +2020-05-31,Alamosa,Colorado,08003,76,2 +2020-06-01,Alamosa,Colorado,08003,78,2 +2020-06-02,Alamosa,Colorado,08003,82,2 +2020-06-03,Alamosa,Colorado,08003,84,2 +2020-06-04,Alamosa,Colorado,08003,84,2 +2020-06-05,Alamosa,Colorado,08003,87,2 +2020-06-06,Alamosa,Colorado,08003,90,2 +2020-06-07,Alamosa,Colorado,08003,94,2 +2020-06-08,Alamosa,Colorado,08003,95,2 +2020-06-09,Alamosa,Colorado,08003,101,2 +2020-06-10,Alamosa,Colorado,08003,107,3 +2020-06-11,Alamosa,Colorado,08003,112,3 +2020-06-12,Alamosa,Colorado,08003,114,3 +2020-06-13,Alamosa,Colorado,08003,116,3 +2020-06-14,Alamosa,Colorado,08003,118,3 +2020-06-15,Alamosa,Colorado,08003,127,3 +2020-06-16,Alamosa,Colorado,08003,129,3 +2020-06-17,Alamosa,Colorado,08003,130,3 +2020-06-18,Alamosa,Colorado,08003,140,3 +2020-06-19,Alamosa,Colorado,08003,150,3 +2020-06-20,Alamosa,Colorado,08003,159,3 +2020-06-21,Alamosa,Colorado,08003,168,3 +2020-06-22,Alamosa,Colorado,08003,169,3 +2020-06-23,Alamosa,Colorado,08003,175,3 +2020-06-24,Alamosa,Colorado,08003,177,3 +2020-06-25,Alamosa,Colorado,08003,178,3 +2020-06-26,Alamosa,Colorado,08003,181,3 +2020-06-27,Alamosa,Colorado,08003,184,3 +2020-06-28,Alamosa,Colorado,08003,187,3 +2020-06-29,Alamosa,Colorado,08003,188,3 +2020-06-30,Alamosa,Colorado,08003,191,3 +2020-07-01,Alamosa,Colorado,08003,197,4 +2020-07-02,Alamosa,Colorado,08003,199,4 +2020-07-03,Alamosa,Colorado,08003,199,4 +2020-07-04,Alamosa,Colorado,08003,200,4 +2020-07-05,Alamosa,Colorado,08003,200,4 +2020-07-06,Alamosa,Colorado,08003,200,4 +2020-07-07,Alamosa,Colorado,08003,202,5 +2020-07-08,Alamosa,Colorado,08003,203,6 +2020-07-09,Alamosa,Colorado,08003,204,6 +2020-03-09,Arapahoe,Colorado,08005,1,0 +2020-03-10,Arapahoe,Colorado,08005,2,0 +2020-03-11,Arapahoe,Colorado,08005,3,0 +2020-03-12,Arapahoe,Colorado,08005,3,0 +2020-03-13,Arapahoe,Colorado,08005,7,0 +2020-03-14,Arapahoe,Colorado,08005,10,0 +2020-03-15,Arapahoe,Colorado,08005,15,0 +2020-03-16,Arapahoe,Colorado,08005,15,0 +2020-03-17,Arapahoe,Colorado,08005,18,0 +2020-03-18,Arapahoe,Colorado,08005,22,0 +2020-03-19,Arapahoe,Colorado,08005,22,0 +2020-03-20,Arapahoe,Colorado,08005,29,0 +2020-03-21,Arapahoe,Colorado,08005,40,0 +2020-03-22,Arapahoe,Colorado,08005,45,0 +2020-03-23,Arapahoe,Colorado,08005,58,0 +2020-03-24,Arapahoe,Colorado,08005,69,0 +2020-03-25,Arapahoe,Colorado,08005,88,0 +2020-03-26,Arapahoe,Colorado,08005,119,1 +2020-03-27,Arapahoe,Colorado,08005,155,1 +2020-03-28,Arapahoe,Colorado,08005,204,3 +2020-03-29,Arapahoe,Colorado,08005,241,3 +2020-03-30,Arapahoe,Colorado,08005,308,0 +2020-03-31,Arapahoe,Colorado,08005,350,6 +2020-04-01,Arapahoe,Colorado,08005,381,7 +2020-04-02,Arapahoe,Colorado,08005,441,10 +2020-04-03,Arapahoe,Colorado,08005,500,10 +2020-04-04,Arapahoe,Colorado,08005,552,10 +2020-04-05,Arapahoe,Colorado,08005,608,13 +2020-04-06,Arapahoe,Colorado,08005,652,15 +2020-04-07,Arapahoe,Colorado,08005,718,16 +2020-04-08,Arapahoe,Colorado,08005,764,19 +2020-04-09,Arapahoe,Colorado,08005,877,24 +2020-04-10,Arapahoe,Colorado,08005,931,30 +2020-04-11,Arapahoe,Colorado,08005,998,37 +2020-04-12,Arapahoe,Colorado,08005,1083,38 +2020-04-13,Arapahoe,Colorado,08005,1142,39 +2020-04-14,Arapahoe,Colorado,08005,1183,43 +2020-04-15,Arapahoe,Colorado,08005,1243,52 +2020-04-16,Arapahoe,Colorado,08005,1342,55 +2020-04-17,Arapahoe,Colorado,08005,1419,58 +2020-04-18,Arapahoe,Colorado,08005,1498,62 +2020-04-19,Arapahoe,Colorado,08005,1536,65 +2020-04-20,Arapahoe,Colorado,08005,1602,72 +2020-04-21,Arapahoe,Colorado,08005,1649,80 +2020-04-22,Arapahoe,Colorado,08005,1717,96 +2020-04-23,Arapahoe,Colorado,08005,1824,101 +2020-04-24,Arapahoe,Colorado,08005,2030,125 +2020-04-25,Arapahoe,Colorado,08005,2083,127 +2020-04-26,Arapahoe,Colorado,08005,2160,127 +2020-04-27,Arapahoe,Colorado,08005,2252,130 +2020-04-28,Arapahoe,Colorado,08005,2312,136 +2020-04-29,Arapahoe,Colorado,08005,2389,140 +2020-04-30,Arapahoe,Colorado,08005,2472,141 +2020-05-01,Arapahoe,Colorado,08005,2557,152 +2020-05-02,Arapahoe,Colorado,08005,2625,153 +2020-05-03,Arapahoe,Colorado,08005,2706,156 +2020-05-04,Arapahoe,Colorado,08005,2758,157 +2020-05-05,Arapahoe,Colorado,08005,2883,165 +2020-05-06,Arapahoe,Colorado,08005,2977,169 +2020-05-07,Arapahoe,Colorado,08005,3089,172 +2020-05-08,Arapahoe,Colorado,08005,3148,177 +2020-05-09,Arapahoe,Colorado,08005,3228,176 +2020-05-10,Arapahoe,Colorado,08005,3272,176 +2020-05-11,Arapahoe,Colorado,08005,3313,179 +2020-05-12,Arapahoe,Colorado,08005,3370,183 +2020-05-13,Arapahoe,Colorado,08005,3464,200 +2020-05-14,Arapahoe,Colorado,08005,3526,213 +2020-05-15,Arapahoe,Colorado,08005,3583,227 +2020-05-16,Arapahoe,Colorado,08005,3652,244 +2020-05-17,Arapahoe,Colorado,08005,3703,254 +2020-05-18,Arapahoe,Colorado,08005,3767,253 +2020-05-19,Arapahoe,Colorado,08005,3827,258 +2020-05-20,Arapahoe,Colorado,08005,3889,272 +2020-05-21,Arapahoe,Colorado,08005,3943,273 +2020-05-22,Arapahoe,Colorado,08005,3974,276 +2020-05-23,Arapahoe,Colorado,08005,4027,278 +2020-05-24,Arapahoe,Colorado,08005,4039,280 +2020-05-25,Arapahoe,Colorado,08005,4075,280 +2020-05-26,Arapahoe,Colorado,08005,4121,284 +2020-05-27,Arapahoe,Colorado,08005,4166,298 +2020-05-28,Arapahoe,Colorado,08005,4201,301 +2020-05-29,Arapahoe,Colorado,08005,4254,304 +2020-05-30,Arapahoe,Colorado,08005,4353,305 +2020-05-31,Arapahoe,Colorado,08005,4394,305 +2020-06-01,Arapahoe,Colorado,08005,4416,307 +2020-06-02,Arapahoe,Colorado,08005,4453,309 +2020-06-03,Arapahoe,Colorado,08005,4496,320 +2020-06-04,Arapahoe,Colorado,08005,4553,325 +2020-06-05,Arapahoe,Colorado,08005,4591,326 +2020-06-06,Arapahoe,Colorado,08005,4626,326 +2020-06-07,Arapahoe,Colorado,08005,4637,326 +2020-06-08,Arapahoe,Colorado,08005,4663,326 +2020-06-09,Arapahoe,Colorado,08005,4687,329 +2020-06-10,Arapahoe,Colorado,08005,4709,331 +2020-06-11,Arapahoe,Colorado,08005,4723,334 +2020-06-12,Arapahoe,Colorado,08005,4754,335 +2020-06-13,Arapahoe,Colorado,08005,4788,335 +2020-06-14,Arapahoe,Colorado,08005,4803,335 +2020-06-15,Arapahoe,Colorado,08005,4818,335 +2020-06-16,Arapahoe,Colorado,08005,4826,338 +2020-06-17,Arapahoe,Colorado,08005,4861,339 +2020-06-18,Arapahoe,Colorado,08005,4885,340 +2020-06-19,Arapahoe,Colorado,08005,4905,339 +2020-06-20,Arapahoe,Colorado,08005,4921,339 +2020-06-21,Arapahoe,Colorado,08005,4941,339 +2020-06-22,Arapahoe,Colorado,08005,4975,339 +2020-06-23,Arapahoe,Colorado,08005,4993,342 +2020-06-24,Arapahoe,Colorado,08005,5022,342 +2020-06-25,Arapahoe,Colorado,08005,5066,342 +2020-06-26,Arapahoe,Colorado,08005,5100,342 +2020-06-27,Arapahoe,Colorado,08005,5127,342 +2020-06-28,Arapahoe,Colorado,08005,5157,342 +2020-06-29,Arapahoe,Colorado,08005,5172,343 +2020-06-30,Arapahoe,Colorado,08005,5202,344 +2020-07-01,Arapahoe,Colorado,08005,5234,344 +2020-07-02,Arapahoe,Colorado,08005,5267,345 +2020-07-03,Arapahoe,Colorado,08005,5300,345 +2020-07-04,Arapahoe,Colorado,08005,5329,345 +2020-07-05,Arapahoe,Colorado,08005,5354,345 +2020-07-06,Arapahoe,Colorado,08005,5369,346 +2020-07-07,Arapahoe,Colorado,08005,5421,346 +2020-07-08,Arapahoe,Colorado,08005,5459,347 +2020-07-09,Arapahoe,Colorado,08005,5510,349 +2020-03-30,Archuleta,Colorado,08007,1,0 +2020-03-31,Archuleta,Colorado,08007,1,0 +2020-04-01,Archuleta,Colorado,08007,1,0 +2020-04-02,Archuleta,Colorado,08007,1,0 +2020-04-03,Archuleta,Colorado,08007,1,0 +2020-04-04,Archuleta,Colorado,08007,1,0 +2020-04-05,Archuleta,Colorado,08007,6,0 +2020-04-06,Archuleta,Colorado,08007,6,0 +2020-04-07,Archuleta,Colorado,08007,6,0 +2020-04-08,Archuleta,Colorado,08007,6,0 +2020-04-09,Archuleta,Colorado,08007,6,0 +2020-04-10,Archuleta,Colorado,08007,6,0 +2020-04-11,Archuleta,Colorado,08007,6,0 +2020-04-12,Archuleta,Colorado,08007,6,0 +2020-04-13,Archuleta,Colorado,08007,6,0 +2020-04-14,Archuleta,Colorado,08007,6,0 +2020-04-15,Archuleta,Colorado,08007,6,0 +2020-04-16,Archuleta,Colorado,08007,6,0 +2020-04-17,Archuleta,Colorado,08007,6,0 +2020-04-18,Archuleta,Colorado,08007,7,0 +2020-04-19,Archuleta,Colorado,08007,7,0 +2020-04-20,Archuleta,Colorado,08007,7,0 +2020-04-21,Archuleta,Colorado,08007,7,0 +2020-04-22,Archuleta,Colorado,08007,9,0 +2020-04-23,Archuleta,Colorado,08007,8,0 +2020-04-24,Archuleta,Colorado,08007,8,0 +2020-04-25,Archuleta,Colorado,08007,8,0 +2020-04-26,Archuleta,Colorado,08007,8,0 +2020-04-27,Archuleta,Colorado,08007,8,0 +2020-04-28,Archuleta,Colorado,08007,8,0 +2020-04-29,Archuleta,Colorado,08007,8,0 +2020-04-30,Archuleta,Colorado,08007,8,0 +2020-05-01,Archuleta,Colorado,08007,8,0 +2020-05-02,Archuleta,Colorado,08007,8,0 +2020-05-03,Archuleta,Colorado,08007,8,0 +2020-05-04,Archuleta,Colorado,08007,8,0 +2020-05-05,Archuleta,Colorado,08007,8,0 +2020-05-06,Archuleta,Colorado,08007,8,0 +2020-05-07,Archuleta,Colorado,08007,8,0 +2020-05-08,Archuleta,Colorado,08007,8,0 +2020-05-09,Archuleta,Colorado,08007,8,0 +2020-05-10,Archuleta,Colorado,08007,8,0 +2020-05-11,Archuleta,Colorado,08007,8,0 +2020-05-12,Archuleta,Colorado,08007,8,0 +2020-05-13,Archuleta,Colorado,08007,8,0 +2020-05-14,Archuleta,Colorado,08007,8,0 +2020-05-15,Archuleta,Colorado,08007,8,0 +2020-05-16,Archuleta,Colorado,08007,8,0 +2020-05-17,Archuleta,Colorado,08007,8,0 +2020-05-18,Archuleta,Colorado,08007,8,0 +2020-05-19,Archuleta,Colorado,08007,8,0 +2020-05-20,Archuleta,Colorado,08007,8,0 +2020-05-21,Archuleta,Colorado,08007,8,0 +2020-05-22,Archuleta,Colorado,08007,8,0 +2020-05-23,Archuleta,Colorado,08007,8,0 +2020-05-24,Archuleta,Colorado,08007,8,0 +2020-05-25,Archuleta,Colorado,08007,8,0 +2020-05-26,Archuleta,Colorado,08007,8,0 +2020-05-27,Archuleta,Colorado,08007,8,0 +2020-05-28,Archuleta,Colorado,08007,8,0 +2020-05-29,Archuleta,Colorado,08007,8,0 +2020-05-30,Archuleta,Colorado,08007,8,0 +2020-05-31,Archuleta,Colorado,08007,8,0 +2020-06-01,Archuleta,Colorado,08007,8,0 +2020-06-02,Archuleta,Colorado,08007,8,0 +2020-06-03,Archuleta,Colorado,08007,8,0 +2020-06-04,Archuleta,Colorado,08007,8,0 +2020-06-05,Archuleta,Colorado,08007,8,0 +2020-06-06,Archuleta,Colorado,08007,8,0 +2020-06-07,Archuleta,Colorado,08007,8,0 +2020-06-08,Archuleta,Colorado,08007,8,0 +2020-06-09,Archuleta,Colorado,08007,8,0 +2020-06-10,Archuleta,Colorado,08007,8,0 +2020-06-11,Archuleta,Colorado,08007,8,0 +2020-06-12,Archuleta,Colorado,08007,8,0 +2020-06-13,Archuleta,Colorado,08007,8,0 +2020-06-14,Archuleta,Colorado,08007,8,0 +2020-06-15,Archuleta,Colorado,08007,8,0 +2020-06-16,Archuleta,Colorado,08007,8,0 +2020-06-17,Archuleta,Colorado,08007,8,0 +2020-06-18,Archuleta,Colorado,08007,8,0 +2020-06-19,Archuleta,Colorado,08007,8,0 +2020-06-20,Archuleta,Colorado,08007,8,0 +2020-06-21,Archuleta,Colorado,08007,8,0 +2020-06-22,Archuleta,Colorado,08007,8,0 +2020-06-23,Archuleta,Colorado,08007,9,0 +2020-06-24,Archuleta,Colorado,08007,8,0 +2020-06-25,Archuleta,Colorado,08007,8,0 +2020-06-26,Archuleta,Colorado,08007,8,0 +2020-06-27,Archuleta,Colorado,08007,8,0 +2020-06-28,Archuleta,Colorado,08007,8,0 +2020-06-29,Archuleta,Colorado,08007,8,0 +2020-06-30,Archuleta,Colorado,08007,8,0 +2020-07-01,Archuleta,Colorado,08007,8,0 +2020-07-02,Archuleta,Colorado,08007,9,0 +2020-07-03,Archuleta,Colorado,08007,9,0 +2020-07-04,Archuleta,Colorado,08007,10,0 +2020-07-05,Archuleta,Colorado,08007,10,0 +2020-07-06,Archuleta,Colorado,08007,11,0 +2020-07-07,Archuleta,Colorado,08007,11,0 +2020-07-08,Archuleta,Colorado,08007,12,0 +2020-07-09,Archuleta,Colorado,08007,12,0 +2020-03-28,Baca,Colorado,08009,1,0 +2020-03-29,Baca,Colorado,08009,1,0 +2020-03-30,Baca,Colorado,08009,1,0 +2020-03-31,Baca,Colorado,08009,3,0 +2020-04-01,Baca,Colorado,08009,3,0 +2020-04-02,Baca,Colorado,08009,9,0 +2020-04-03,Baca,Colorado,08009,9,0 +2020-04-04,Baca,Colorado,08009,9,0 +2020-04-05,Baca,Colorado,08009,9,0 +2020-04-06,Baca,Colorado,08009,9,0 +2020-04-07,Baca,Colorado,08009,9,0 +2020-04-08,Baca,Colorado,08009,9,0 +2020-04-09,Baca,Colorado,08009,9,0 +2020-04-10,Baca,Colorado,08009,9,0 +2020-04-11,Baca,Colorado,08009,10,0 +2020-04-12,Baca,Colorado,08009,10,0 +2020-04-13,Baca,Colorado,08009,10,0 +2020-04-14,Baca,Colorado,08009,10,0 +2020-04-15,Baca,Colorado,08009,10,0 +2020-04-16,Baca,Colorado,08009,10,0 +2020-04-17,Baca,Colorado,08009,10,0 +2020-04-18,Baca,Colorado,08009,10,0 +2020-04-19,Baca,Colorado,08009,10,0 +2020-04-20,Baca,Colorado,08009,10,0 +2020-04-21,Baca,Colorado,08009,10,0 +2020-04-22,Baca,Colorado,08009,10,0 +2020-04-23,Baca,Colorado,08009,10,0 +2020-04-24,Baca,Colorado,08009,10,0 +2020-04-25,Baca,Colorado,08009,10,0 +2020-04-26,Baca,Colorado,08009,10,0 +2020-04-27,Baca,Colorado,08009,10,0 +2020-04-28,Baca,Colorado,08009,10,0 +2020-04-29,Baca,Colorado,08009,10,0 +2020-04-30,Baca,Colorado,08009,10,0 +2020-05-01,Baca,Colorado,08009,10,0 +2020-05-02,Baca,Colorado,08009,10,0 +2020-05-03,Baca,Colorado,08009,12,0 +2020-05-04,Baca,Colorado,08009,12,0 +2020-05-05,Baca,Colorado,08009,12,0 +2020-05-06,Baca,Colorado,08009,12,0 +2020-05-07,Baca,Colorado,08009,12,0 +2020-05-08,Baca,Colorado,08009,12,0 +2020-05-09,Baca,Colorado,08009,12,0 +2020-05-10,Baca,Colorado,08009,12,0 +2020-05-11,Baca,Colorado,08009,12,0 +2020-05-12,Baca,Colorado,08009,12,0 +2020-05-13,Baca,Colorado,08009,12,0 +2020-05-14,Baca,Colorado,08009,12,0 +2020-05-15,Baca,Colorado,08009,12,0 +2020-05-16,Baca,Colorado,08009,12,0 +2020-05-17,Baca,Colorado,08009,12,0 +2020-05-18,Baca,Colorado,08009,12,0 +2020-05-19,Baca,Colorado,08009,12,0 +2020-05-20,Baca,Colorado,08009,12,0 +2020-05-21,Baca,Colorado,08009,12,0 +2020-05-22,Baca,Colorado,08009,12,0 +2020-05-23,Baca,Colorado,08009,12,0 +2020-05-24,Baca,Colorado,08009,12,0 +2020-05-25,Baca,Colorado,08009,12,0 +2020-05-26,Baca,Colorado,08009,12,0 +2020-05-27,Baca,Colorado,08009,12,0 +2020-05-28,Baca,Colorado,08009,12,0 +2020-05-29,Baca,Colorado,08009,12,0 +2020-05-30,Baca,Colorado,08009,12,0 +2020-05-31,Baca,Colorado,08009,12,0 +2020-06-01,Baca,Colorado,08009,12,0 +2020-06-02,Baca,Colorado,08009,12,0 +2020-06-03,Baca,Colorado,08009,12,0 +2020-06-04,Baca,Colorado,08009,12,0 +2020-06-05,Baca,Colorado,08009,12,0 +2020-06-06,Baca,Colorado,08009,12,0 +2020-06-07,Baca,Colorado,08009,12,0 +2020-06-08,Baca,Colorado,08009,12,0 +2020-06-09,Baca,Colorado,08009,12,0 +2020-06-10,Baca,Colorado,08009,12,0 +2020-06-11,Baca,Colorado,08009,12,0 +2020-06-12,Baca,Colorado,08009,12,0 +2020-06-13,Baca,Colorado,08009,12,0 +2020-06-14,Baca,Colorado,08009,12,0 +2020-06-15,Baca,Colorado,08009,12,0 +2020-06-16,Baca,Colorado,08009,12,0 +2020-06-17,Baca,Colorado,08009,12,0 +2020-06-18,Baca,Colorado,08009,12,0 +2020-06-19,Baca,Colorado,08009,12,0 +2020-06-20,Baca,Colorado,08009,12,0 +2020-06-21,Baca,Colorado,08009,12,0 +2020-06-22,Baca,Colorado,08009,12,0 +2020-06-23,Baca,Colorado,08009,12,0 +2020-06-24,Baca,Colorado,08009,12,0 +2020-06-25,Baca,Colorado,08009,13,0 +2020-06-26,Baca,Colorado,08009,13,0 +2020-06-27,Baca,Colorado,08009,13,0 +2020-06-28,Baca,Colorado,08009,13,0 +2020-06-29,Baca,Colorado,08009,14,0 +2020-06-30,Baca,Colorado,08009,14,0 +2020-07-01,Baca,Colorado,08009,14,0 +2020-07-02,Baca,Colorado,08009,14,0 +2020-07-03,Baca,Colorado,08009,14,0 +2020-07-04,Baca,Colorado,08009,14,0 +2020-07-05,Baca,Colorado,08009,14,0 +2020-07-06,Baca,Colorado,08009,14,0 +2020-07-07,Baca,Colorado,08009,14,0 +2020-07-08,Baca,Colorado,08009,14,0 +2020-07-09,Baca,Colorado,08009,14,0 +2020-05-10,Bent,Colorado,08011,1,0 +2020-05-11,Bent,Colorado,08011,1,0 +2020-05-12,Bent,Colorado,08011,1,0 +2020-05-13,Bent,Colorado,08011,1,0 +2020-05-14,Bent,Colorado,08011,1,0 +2020-05-15,Bent,Colorado,08011,1,0 +2020-05-16,Bent,Colorado,08011,1,0 +2020-05-17,Bent,Colorado,08011,1,0 +2020-05-18,Bent,Colorado,08011,1,0 +2020-05-19,Bent,Colorado,08011,1,0 +2020-05-20,Bent,Colorado,08011,1,0 +2020-05-21,Bent,Colorado,08011,1,0 +2020-05-22,Bent,Colorado,08011,2,0 +2020-05-23,Bent,Colorado,08011,2,0 +2020-05-24,Bent,Colorado,08011,2,0 +2020-05-25,Bent,Colorado,08011,2,0 +2020-05-26,Bent,Colorado,08011,2,0 +2020-05-27,Bent,Colorado,08011,2,0 +2020-05-28,Bent,Colorado,08011,2,0 +2020-05-29,Bent,Colorado,08011,2,0 +2020-05-30,Bent,Colorado,08011,2,0 +2020-05-31,Bent,Colorado,08011,2,0 +2020-06-01,Bent,Colorado,08011,2,0 +2020-06-02,Bent,Colorado,08011,2,0 +2020-06-03,Bent,Colorado,08011,2,0 +2020-06-04,Bent,Colorado,08011,2,0 +2020-06-05,Bent,Colorado,08011,2,0 +2020-06-06,Bent,Colorado,08011,2,0 +2020-06-07,Bent,Colorado,08011,3,0 +2020-06-08,Bent,Colorado,08011,3,0 +2020-06-09,Bent,Colorado,08011,3,0 +2020-06-10,Bent,Colorado,08011,3,0 +2020-06-11,Bent,Colorado,08011,3,0 +2020-06-12,Bent,Colorado,08011,3,0 +2020-06-13,Bent,Colorado,08011,3,0 +2020-06-14,Bent,Colorado,08011,3,0 +2020-06-15,Bent,Colorado,08011,3,0 +2020-06-16,Bent,Colorado,08011,3,0 +2020-06-17,Bent,Colorado,08011,3,0 +2020-06-18,Bent,Colorado,08011,3,0 +2020-06-19,Bent,Colorado,08011,3,0 +2020-06-20,Bent,Colorado,08011,3,0 +2020-06-21,Bent,Colorado,08011,3,0 +2020-06-22,Bent,Colorado,08011,4,0 +2020-06-23,Bent,Colorado,08011,4,0 +2020-06-24,Bent,Colorado,08011,4,0 +2020-06-25,Bent,Colorado,08011,4,0 +2020-06-26,Bent,Colorado,08011,4,0 +2020-06-27,Bent,Colorado,08011,4,0 +2020-06-28,Bent,Colorado,08011,4,0 +2020-06-29,Bent,Colorado,08011,4,0 +2020-06-30,Bent,Colorado,08011,4,0 +2020-07-01,Bent,Colorado,08011,4,0 +2020-07-02,Bent,Colorado,08011,4,0 +2020-07-03,Bent,Colorado,08011,5,0 +2020-07-04,Bent,Colorado,08011,5,0 +2020-07-05,Bent,Colorado,08011,5,0 +2020-07-06,Bent,Colorado,08011,5,0 +2020-07-07,Bent,Colorado,08011,4,0 +2020-07-08,Bent,Colorado,08011,4,0 +2020-07-09,Bent,Colorado,08011,4,0 +2020-03-14,Boulder,Colorado,08013,1,0 +2020-03-15,Boulder,Colorado,08013,7,0 +2020-03-16,Boulder,Colorado,08013,7,0 +2020-03-17,Boulder,Colorado,08013,8,0 +2020-03-18,Boulder,Colorado,08013,8,0 +2020-03-19,Boulder,Colorado,08013,11,0 +2020-03-20,Boulder,Colorado,08013,24,0 +2020-03-21,Boulder,Colorado,08013,30,0 +2020-03-22,Boulder,Colorado,08013,37,0 +2020-03-23,Boulder,Colorado,08013,39,0 +2020-03-24,Boulder,Colorado,08013,49,0 +2020-03-25,Boulder,Colorado,08013,51,0 +2020-03-26,Boulder,Colorado,08013,66,0 +2020-03-27,Boulder,Colorado,08013,76,1 +2020-03-28,Boulder,Colorado,08013,84,1 +2020-03-29,Boulder,Colorado,08013,90,1 +2020-03-30,Boulder,Colorado,08013,100,1 +2020-03-31,Boulder,Colorado,08013,107,2 +2020-04-01,Boulder,Colorado,08013,114,2 +2020-04-02,Boulder,Colorado,08013,132,2 +2020-04-03,Boulder,Colorado,08013,143,2 +2020-04-04,Boulder,Colorado,08013,159,3 +2020-04-05,Boulder,Colorado,08013,177,3 +2020-04-06,Boulder,Colorado,08013,189,3 +2020-04-07,Boulder,Colorado,08013,206,3 +2020-04-08,Boulder,Colorado,08013,207,3 +2020-04-09,Boulder,Colorado,08013,217,7 +2020-04-10,Boulder,Colorado,08013,234,7 +2020-04-11,Boulder,Colorado,08013,246,8 +2020-04-12,Boulder,Colorado,08013,264,11 +2020-04-13,Boulder,Colorado,08013,284,12 +2020-04-14,Boulder,Colorado,08013,293,14 +2020-04-15,Boulder,Colorado,08013,300,15 +2020-04-16,Boulder,Colorado,08013,312,15 +2020-04-17,Boulder,Colorado,08013,327,15 +2020-04-18,Boulder,Colorado,08013,342,17 +2020-04-19,Boulder,Colorado,08013,352,17 +2020-04-20,Boulder,Colorado,08013,360,17 +2020-04-21,Boulder,Colorado,08013,390,18 +2020-04-22,Boulder,Colorado,08013,417,23 +2020-04-23,Boulder,Colorado,08013,426,28 +2020-04-24,Boulder,Colorado,08013,470,28 +2020-04-25,Boulder,Colorado,08013,497,29 +2020-04-26,Boulder,Colorado,08013,500,30 +2020-04-27,Boulder,Colorado,08013,515,33 +2020-04-28,Boulder,Colorado,08013,543,33 +2020-04-29,Boulder,Colorado,08013,565,39 +2020-04-30,Boulder,Colorado,08013,580,40 +2020-05-01,Boulder,Colorado,08013,618,40 +2020-05-02,Boulder,Colorado,08013,646,42 +2020-05-03,Boulder,Colorado,08013,661,44 +2020-05-04,Boulder,Colorado,08013,679,44 +2020-05-05,Boulder,Colorado,08013,685,46 +2020-05-06,Boulder,Colorado,08013,700,46 +2020-05-07,Boulder,Colorado,08013,720,49 +2020-05-08,Boulder,Colorado,08013,743,50 +2020-05-09,Boulder,Colorado,08013,757,50 +2020-05-10,Boulder,Colorado,08013,767,53 +2020-05-11,Boulder,Colorado,08013,777,55 +2020-05-12,Boulder,Colorado,08013,788,56 +2020-05-13,Boulder,Colorado,08013,797,57 +2020-05-14,Boulder,Colorado,08013,805,58 +2020-05-15,Boulder,Colorado,08013,825,58 +2020-05-16,Boulder,Colorado,08013,835,59 +2020-05-17,Boulder,Colorado,08013,844,60 +2020-05-18,Boulder,Colorado,08013,857,60 +2020-05-19,Boulder,Colorado,08013,871,60 +2020-05-20,Boulder,Colorado,08013,878,60 +2020-05-21,Boulder,Colorado,08013,890,61 +2020-05-22,Boulder,Colorado,08013,898,61 +2020-05-23,Boulder,Colorado,08013,923,61 +2020-05-24,Boulder,Colorado,08013,928,61 +2020-05-25,Boulder,Colorado,08013,932,61 +2020-05-26,Boulder,Colorado,08013,941,63 +2020-05-27,Boulder,Colorado,08013,947,63 +2020-05-28,Boulder,Colorado,08013,956,63 +2020-05-29,Boulder,Colorado,08013,964,63 +2020-05-30,Boulder,Colorado,08013,974,64 +2020-05-31,Boulder,Colorado,08013,980,65 +2020-06-01,Boulder,Colorado,08013,984,66 +2020-06-02,Boulder,Colorado,08013,986,67 +2020-06-03,Boulder,Colorado,08013,995,67 +2020-06-04,Boulder,Colorado,08013,1004,67 +2020-06-05,Boulder,Colorado,08013,1008,67 +2020-06-06,Boulder,Colorado,08013,1011,67 +2020-06-07,Boulder,Colorado,08013,1016,67 +2020-06-08,Boulder,Colorado,08013,1022,67 +2020-06-09,Boulder,Colorado,08013,1027,67 +2020-06-10,Boulder,Colorado,08013,1031,67 +2020-06-11,Boulder,Colorado,08013,1040,68 +2020-06-12,Boulder,Colorado,08013,1049,68 +2020-06-13,Boulder,Colorado,08013,1065,69 +2020-06-14,Boulder,Colorado,08013,1070,70 +2020-06-15,Boulder,Colorado,08013,1088,70 +2020-06-16,Boulder,Colorado,08013,1100,70 +2020-06-17,Boulder,Colorado,08013,1137,70 +2020-06-18,Boulder,Colorado,08013,1173,70 +2020-06-19,Boulder,Colorado,08013,1211,71 +2020-06-20,Boulder,Colorado,08013,1228,71 +2020-06-21,Boulder,Colorado,08013,1243,71 +2020-06-22,Boulder,Colorado,08013,1259,71 +2020-06-23,Boulder,Colorado,08013,1282,71 +2020-06-24,Boulder,Colorado,08013,1305,71 +2020-06-25,Boulder,Colorado,08013,1321,71 +2020-06-26,Boulder,Colorado,08013,1336,71 +2020-06-27,Boulder,Colorado,08013,1347,71 +2020-06-28,Boulder,Colorado,08013,1360,71 +2020-06-29,Boulder,Colorado,08013,1367,71 +2020-06-30,Boulder,Colorado,08013,1384,72 +2020-07-01,Boulder,Colorado,08013,1401,72 +2020-07-02,Boulder,Colorado,08013,1414,72 +2020-07-03,Boulder,Colorado,08013,1424,72 +2020-07-04,Boulder,Colorado,08013,1432,72 +2020-07-05,Boulder,Colorado,08013,1436,72 +2020-07-06,Boulder,Colorado,08013,1453,72 +2020-07-07,Boulder,Colorado,08013,1463,73 +2020-07-08,Boulder,Colorado,08013,1479,73 +2020-07-09,Boulder,Colorado,08013,1492,72 +2020-03-20,Broomfield,Colorado,08014,1,0 +2020-03-21,Broomfield,Colorado,08014,1,0 +2020-03-22,Broomfield,Colorado,08014,1,0 +2020-03-23,Broomfield,Colorado,08014,2,0 +2020-03-24,Broomfield,Colorado,08014,5,0 +2020-03-25,Broomfield,Colorado,08014,8,0 +2020-03-26,Broomfield,Colorado,08014,10,0 +2020-03-27,Broomfield,Colorado,08014,13,0 +2020-03-28,Broomfield,Colorado,08014,16,0 +2020-03-29,Broomfield,Colorado,08014,17,0 +2020-03-30,Broomfield,Colorado,08014,18,0 +2020-03-31,Broomfield,Colorado,08014,20,1 +2020-04-01,Broomfield,Colorado,08014,21,2 +2020-04-02,Broomfield,Colorado,08014,30,2 +2020-04-03,Broomfield,Colorado,08014,36,2 +2020-04-04,Broomfield,Colorado,08014,44,2 +2020-04-05,Broomfield,Colorado,08014,50,2 +2020-04-06,Broomfield,Colorado,08014,50,2 +2020-04-07,Broomfield,Colorado,08014,50,2 +2020-04-08,Broomfield,Colorado,08014,52,2 +2020-04-09,Broomfield,Colorado,08014,61,2 +2020-04-10,Broomfield,Colorado,08014,68,2 +2020-04-11,Broomfield,Colorado,08014,74,2 +2020-04-12,Broomfield,Colorado,08014,81,2 +2020-04-13,Broomfield,Colorado,08014,81,2 +2020-04-14,Broomfield,Colorado,08014,88,2 +2020-04-15,Broomfield,Colorado,08014,92,2 +2020-04-16,Broomfield,Colorado,08014,95,2 +2020-04-17,Broomfield,Colorado,08014,98,2 +2020-04-18,Broomfield,Colorado,08014,101,2 +2020-04-19,Broomfield,Colorado,08014,101,2 +2020-04-20,Broomfield,Colorado,08014,103,2 +2020-04-21,Broomfield,Colorado,08014,106,2 +2020-04-22,Broomfield,Colorado,08014,110,3 +2020-04-23,Broomfield,Colorado,08014,113,4 +2020-04-24,Broomfield,Colorado,08014,126,5 +2020-04-25,Broomfield,Colorado,08014,135,5 +2020-04-26,Broomfield,Colorado,08014,139,5 +2020-04-27,Broomfield,Colorado,08014,141,5 +2020-04-28,Broomfield,Colorado,08014,145,9 +2020-04-29,Broomfield,Colorado,08014,147,9 +2020-04-30,Broomfield,Colorado,08014,150,9 +2020-05-01,Broomfield,Colorado,08014,157,11 +2020-05-02,Broomfield,Colorado,08014,163,12 +2020-05-03,Broomfield,Colorado,08014,165,12 +2020-05-04,Broomfield,Colorado,08014,167,12 +2020-05-05,Broomfield,Colorado,08014,178,16 +2020-05-06,Broomfield,Colorado,08014,180,16 +2020-05-07,Broomfield,Colorado,08014,186,16 +2020-05-08,Broomfield,Colorado,08014,191,16 +2020-05-09,Broomfield,Colorado,08014,195,17 +2020-05-10,Broomfield,Colorado,08014,198,17 +2020-05-11,Broomfield,Colorado,08014,200,17 +2020-05-12,Broomfield,Colorado,08014,201,20 +2020-05-13,Broomfield,Colorado,08014,203,20 +2020-05-14,Broomfield,Colorado,08014,204,22 +2020-05-15,Broomfield,Colorado,08014,207,22 +2020-05-16,Broomfield,Colorado,08014,209,22 +2020-05-17,Broomfield,Colorado,08014,211,22 +2020-05-18,Broomfield,Colorado,08014,213,22 +2020-05-19,Broomfield,Colorado,08014,214,24 +2020-05-20,Broomfield,Colorado,08014,215,24 +2020-05-21,Broomfield,Colorado,08014,218,24 +2020-05-22,Broomfield,Colorado,08014,220,25 +2020-05-23,Broomfield,Colorado,08014,220,25 +2020-05-24,Broomfield,Colorado,08014,220,25 +2020-05-25,Broomfield,Colorado,08014,221,25 +2020-05-26,Broomfield,Colorado,08014,224,26 +2020-05-27,Broomfield,Colorado,08014,226,26 +2020-05-28,Broomfield,Colorado,08014,227,26 +2020-05-29,Broomfield,Colorado,08014,232,26 +2020-05-30,Broomfield,Colorado,08014,236,26 +2020-05-31,Broomfield,Colorado,08014,240,26 +2020-06-01,Broomfield,Colorado,08014,242,27 +2020-06-02,Broomfield,Colorado,08014,244,27 +2020-06-03,Broomfield,Colorado,08014,245,27 +2020-06-04,Broomfield,Colorado,08014,251,27 +2020-06-05,Broomfield,Colorado,08014,252,27 +2020-06-06,Broomfield,Colorado,08014,253,27 +2020-06-07,Broomfield,Colorado,08014,255,27 +2020-06-08,Broomfield,Colorado,08014,256,27 +2020-06-09,Broomfield,Colorado,08014,258,27 +2020-06-10,Broomfield,Colorado,08014,258,28 +2020-06-11,Broomfield,Colorado,08014,259,28 +2020-06-12,Broomfield,Colorado,08014,261,28 +2020-06-13,Broomfield,Colorado,08014,264,28 +2020-06-14,Broomfield,Colorado,08014,264,28 +2020-06-15,Broomfield,Colorado,08014,265,28 +2020-06-16,Broomfield,Colorado,08014,268,28 +2020-06-17,Broomfield,Colorado,08014,270,28 +2020-06-18,Broomfield,Colorado,08014,271,28 +2020-06-19,Broomfield,Colorado,08014,274,28 +2020-06-20,Broomfield,Colorado,08014,277,28 +2020-06-21,Broomfield,Colorado,08014,278,28 +2020-06-22,Broomfield,Colorado,08014,280,28 +2020-06-23,Broomfield,Colorado,08014,282,29 +2020-06-24,Broomfield,Colorado,08014,284,29 +2020-06-25,Broomfield,Colorado,08014,287,29 +2020-06-26,Broomfield,Colorado,08014,291,29 +2020-06-27,Broomfield,Colorado,08014,291,29 +2020-06-28,Broomfield,Colorado,08014,295,29 +2020-06-29,Broomfield,Colorado,08014,297,30 +2020-06-30,Broomfield,Colorado,08014,298,30 +2020-07-01,Broomfield,Colorado,08014,301,30 +2020-07-02,Broomfield,Colorado,08014,307,30 +2020-07-03,Broomfield,Colorado,08014,307,30 +2020-07-04,Broomfield,Colorado,08014,312,30 +2020-07-05,Broomfield,Colorado,08014,314,30 +2020-07-06,Broomfield,Colorado,08014,316,30 +2020-07-07,Broomfield,Colorado,08014,320,30 +2020-07-08,Broomfield,Colorado,08014,324,30 +2020-07-09,Broomfield,Colorado,08014,333,30 +2020-03-21,Chaffee,Colorado,08015,2,0 +2020-03-22,Chaffee,Colorado,08015,3,0 +2020-03-23,Chaffee,Colorado,08015,3,0 +2020-03-24,Chaffee,Colorado,08015,3,0 +2020-03-25,Chaffee,Colorado,08015,3,0 +2020-03-26,Chaffee,Colorado,08015,5,1 +2020-03-27,Chaffee,Colorado,08015,5,1 +2020-03-28,Chaffee,Colorado,08015,11,1 +2020-03-29,Chaffee,Colorado,08015,15,1 +2020-03-30,Chaffee,Colorado,08015,15,1 +2020-03-31,Chaffee,Colorado,08015,17,1 +2020-04-01,Chaffee,Colorado,08015,17,1 +2020-04-02,Chaffee,Colorado,08015,18,2 +2020-04-03,Chaffee,Colorado,08015,19,2 +2020-04-04,Chaffee,Colorado,08015,21,2 +2020-04-05,Chaffee,Colorado,08015,22,2 +2020-04-06,Chaffee,Colorado,08015,22,2 +2020-04-07,Chaffee,Colorado,08015,22,2 +2020-04-08,Chaffee,Colorado,08015,23,2 +2020-04-09,Chaffee,Colorado,08015,26,3 +2020-04-10,Chaffee,Colorado,08015,27,3 +2020-04-11,Chaffee,Colorado,08015,28,3 +2020-04-12,Chaffee,Colorado,08015,28,3 +2020-04-13,Chaffee,Colorado,08015,28,4 +2020-04-14,Chaffee,Colorado,08015,28,4 +2020-04-15,Chaffee,Colorado,08015,31,4 +2020-04-16,Chaffee,Colorado,08015,35,4 +2020-04-17,Chaffee,Colorado,08015,35,4 +2020-04-18,Chaffee,Colorado,08015,37,4 +2020-04-19,Chaffee,Colorado,08015,38,4 +2020-04-20,Chaffee,Colorado,08015,38,4 +2020-04-21,Chaffee,Colorado,08015,38,4 +2020-04-22,Chaffee,Colorado,08015,55,9 +2020-04-23,Chaffee,Colorado,08015,55,9 +2020-04-24,Chaffee,Colorado,08015,66,13 +2020-04-25,Chaffee,Colorado,08015,65,12 +2020-04-26,Chaffee,Colorado,08015,66,12 +2020-04-27,Chaffee,Colorado,08015,66,12 +2020-04-28,Chaffee,Colorado,08015,66,13 +2020-04-29,Chaffee,Colorado,08015,66,15 +2020-04-30,Chaffee,Colorado,08015,66,15 +2020-05-01,Chaffee,Colorado,08015,67,15 +2020-05-02,Chaffee,Colorado,08015,67,15 +2020-05-03,Chaffee,Colorado,08015,67,15 +2020-05-04,Chaffee,Colorado,08015,67,16 +2020-05-05,Chaffee,Colorado,08015,68,16 +2020-05-06,Chaffee,Colorado,08015,68,16 +2020-05-07,Chaffee,Colorado,08015,68,16 +2020-05-08,Chaffee,Colorado,08015,68,16 +2020-05-09,Chaffee,Colorado,08015,68,16 +2020-05-10,Chaffee,Colorado,08015,68,16 +2020-05-11,Chaffee,Colorado,08015,68,16 +2020-05-12,Chaffee,Colorado,08015,68,16 +2020-05-13,Chaffee,Colorado,08015,69,17 +2020-05-14,Chaffee,Colorado,08015,69,17 +2020-05-15,Chaffee,Colorado,08015,69,17 +2020-05-16,Chaffee,Colorado,08015,69,17 +2020-05-17,Chaffee,Colorado,08015,69,17 +2020-05-18,Chaffee,Colorado,08015,69,17 +2020-05-19,Chaffee,Colorado,08015,69,17 +2020-05-20,Chaffee,Colorado,08015,69,18 +2020-05-21,Chaffee,Colorado,08015,69,18 +2020-05-22,Chaffee,Colorado,08015,69,18 +2020-05-23,Chaffee,Colorado,08015,70,18 +2020-05-24,Chaffee,Colorado,08015,70,18 +2020-05-25,Chaffee,Colorado,08015,71,19 +2020-05-26,Chaffee,Colorado,08015,72,19 +2020-05-27,Chaffee,Colorado,08015,71,19 +2020-05-28,Chaffee,Colorado,08015,72,19 +2020-05-29,Chaffee,Colorado,08015,72,20 +2020-05-30,Chaffee,Colorado,08015,72,20 +2020-05-31,Chaffee,Colorado,08015,72,20 +2020-06-01,Chaffee,Colorado,08015,76,20 +2020-06-02,Chaffee,Colorado,08015,77,20 +2020-06-03,Chaffee,Colorado,08015,76,20 +2020-06-04,Chaffee,Colorado,08015,76,20 +2020-06-05,Chaffee,Colorado,08015,77,20 +2020-06-06,Chaffee,Colorado,08015,78,20 +2020-06-07,Chaffee,Colorado,08015,78,20 +2020-06-08,Chaffee,Colorado,08015,78,20 +2020-06-09,Chaffee,Colorado,08015,78,20 +2020-06-10,Chaffee,Colorado,08015,78,20 +2020-06-11,Chaffee,Colorado,08015,78,20 +2020-06-12,Chaffee,Colorado,08015,78,20 +2020-06-13,Chaffee,Colorado,08015,78,20 +2020-06-14,Chaffee,Colorado,08015,78,20 +2020-06-15,Chaffee,Colorado,08015,78,20 +2020-06-16,Chaffee,Colorado,08015,78,20 +2020-06-17,Chaffee,Colorado,08015,78,20 +2020-06-18,Chaffee,Colorado,08015,78,20 +2020-06-19,Chaffee,Colorado,08015,78,20 +2020-06-20,Chaffee,Colorado,08015,78,20 +2020-06-21,Chaffee,Colorado,08015,78,20 +2020-06-22,Chaffee,Colorado,08015,78,20 +2020-06-23,Chaffee,Colorado,08015,78,20 +2020-06-24,Chaffee,Colorado,08015,78,20 +2020-06-25,Chaffee,Colorado,08015,78,20 +2020-06-26,Chaffee,Colorado,08015,77,19 +2020-06-27,Chaffee,Colorado,08015,77,19 +2020-06-28,Chaffee,Colorado,08015,78,19 +2020-06-29,Chaffee,Colorado,08015,78,19 +2020-06-30,Chaffee,Colorado,08015,77,19 +2020-07-01,Chaffee,Colorado,08015,77,19 +2020-07-02,Chaffee,Colorado,08015,77,19 +2020-07-03,Chaffee,Colorado,08015,77,19 +2020-07-04,Chaffee,Colorado,08015,77,19 +2020-07-05,Chaffee,Colorado,08015,77,19 +2020-07-06,Chaffee,Colorado,08015,78,19 +2020-07-07,Chaffee,Colorado,08015,78,19 +2020-07-08,Chaffee,Colorado,08015,81,19 +2020-07-09,Chaffee,Colorado,08015,81,19 +2020-05-07,Cheyenne,Colorado,08017,2,0 +2020-05-08,Cheyenne,Colorado,08017,2,0 +2020-05-09,Cheyenne,Colorado,08017,4,0 +2020-05-10,Cheyenne,Colorado,08017,4,0 +2020-05-11,Cheyenne,Colorado,08017,5,0 +2020-05-12,Cheyenne,Colorado,08017,5,0 +2020-05-13,Cheyenne,Colorado,08017,4,0 +2020-05-14,Cheyenne,Colorado,08017,5,0 +2020-05-15,Cheyenne,Colorado,08017,5,0 +2020-05-16,Cheyenne,Colorado,08017,5,0 +2020-05-17,Cheyenne,Colorado,08017,5,0 +2020-05-18,Cheyenne,Colorado,08017,5,0 +2020-05-19,Cheyenne,Colorado,08017,5,0 +2020-05-20,Cheyenne,Colorado,08017,5,0 +2020-05-21,Cheyenne,Colorado,08017,5,0 +2020-05-22,Cheyenne,Colorado,08017,5,0 +2020-05-23,Cheyenne,Colorado,08017,5,0 +2020-05-24,Cheyenne,Colorado,08017,5,0 +2020-05-25,Cheyenne,Colorado,08017,5,0 +2020-05-26,Cheyenne,Colorado,08017,5,0 +2020-05-27,Cheyenne,Colorado,08017,5,0 +2020-05-28,Cheyenne,Colorado,08017,5,0 +2020-05-29,Cheyenne,Colorado,08017,5,0 +2020-05-30,Cheyenne,Colorado,08017,5,0 +2020-05-31,Cheyenne,Colorado,08017,5,0 +2020-06-01,Cheyenne,Colorado,08017,5,0 +2020-06-02,Cheyenne,Colorado,08017,5,0 +2020-06-03,Cheyenne,Colorado,08017,5,0 +2020-06-04,Cheyenne,Colorado,08017,5,0 +2020-06-05,Cheyenne,Colorado,08017,5,0 +2020-06-06,Cheyenne,Colorado,08017,5,0 +2020-06-07,Cheyenne,Colorado,08017,5,0 +2020-06-08,Cheyenne,Colorado,08017,5,0 +2020-06-09,Cheyenne,Colorado,08017,5,0 +2020-06-10,Cheyenne,Colorado,08017,5,0 +2020-06-11,Cheyenne,Colorado,08017,5,0 +2020-06-12,Cheyenne,Colorado,08017,5,0 +2020-06-13,Cheyenne,Colorado,08017,5,0 +2020-06-14,Cheyenne,Colorado,08017,5,0 +2020-06-15,Cheyenne,Colorado,08017,5,0 +2020-06-16,Cheyenne,Colorado,08017,5,0 +2020-06-17,Cheyenne,Colorado,08017,5,0 +2020-06-18,Cheyenne,Colorado,08017,5,0 +2020-06-19,Cheyenne,Colorado,08017,5,0 +2020-06-20,Cheyenne,Colorado,08017,5,0 +2020-06-21,Cheyenne,Colorado,08017,5,0 +2020-06-22,Cheyenne,Colorado,08017,5,0 +2020-06-23,Cheyenne,Colorado,08017,5,0 +2020-06-24,Cheyenne,Colorado,08017,5,0 +2020-06-25,Cheyenne,Colorado,08017,5,0 +2020-06-26,Cheyenne,Colorado,08017,5,0 +2020-06-27,Cheyenne,Colorado,08017,5,0 +2020-06-28,Cheyenne,Colorado,08017,5,0 +2020-06-29,Cheyenne,Colorado,08017,5,0 +2020-06-30,Cheyenne,Colorado,08017,5,0 +2020-07-01,Cheyenne,Colorado,08017,5,0 +2020-07-02,Cheyenne,Colorado,08017,5,0 +2020-07-03,Cheyenne,Colorado,08017,5,0 +2020-07-04,Cheyenne,Colorado,08017,5,0 +2020-07-05,Cheyenne,Colorado,08017,5,0 +2020-07-06,Cheyenne,Colorado,08017,5,0 +2020-07-07,Cheyenne,Colorado,08017,5,0 +2020-07-08,Cheyenne,Colorado,08017,5,0 +2020-07-09,Cheyenne,Colorado,08017,5,0 +2020-03-13,Clear Creek,Colorado,08019,1,0 +2020-03-14,Clear Creek,Colorado,08019,1,0 +2020-03-15,Clear Creek,Colorado,08019,1,0 +2020-03-16,Clear Creek,Colorado,08019,1,0 +2020-03-17,Clear Creek,Colorado,08019,2,0 +2020-03-18,Clear Creek,Colorado,08019,2,0 +2020-03-19,Clear Creek,Colorado,08019,2,0 +2020-03-20,Clear Creek,Colorado,08019,2,0 +2020-03-21,Clear Creek,Colorado,08019,3,0 +2020-03-22,Clear Creek,Colorado,08019,3,0 +2020-03-23,Clear Creek,Colorado,08019,3,0 +2020-03-24,Clear Creek,Colorado,08019,3,0 +2020-03-25,Clear Creek,Colorado,08019,3,0 +2020-03-26,Clear Creek,Colorado,08019,3,0 +2020-03-27,Clear Creek,Colorado,08019,3,0 +2020-03-28,Clear Creek,Colorado,08019,3,0 +2020-03-29,Clear Creek,Colorado,08019,3,0 +2020-03-30,Clear Creek,Colorado,08019,3,0 +2020-03-31,Clear Creek,Colorado,08019,4,0 +2020-04-01,Clear Creek,Colorado,08019,6,0 +2020-04-02,Clear Creek,Colorado,08019,6,0 +2020-04-03,Clear Creek,Colorado,08019,6,0 +2020-04-04,Clear Creek,Colorado,08019,6,0 +2020-04-05,Clear Creek,Colorado,08019,6,0 +2020-04-06,Clear Creek,Colorado,08019,6,0 +2020-04-07,Clear Creek,Colorado,08019,7,0 +2020-04-08,Clear Creek,Colorado,08019,7,0 +2020-04-09,Clear Creek,Colorado,08019,10,0 +2020-04-10,Clear Creek,Colorado,08019,11,0 +2020-04-11,Clear Creek,Colorado,08019,11,0 +2020-04-12,Clear Creek,Colorado,08019,11,0 +2020-04-13,Clear Creek,Colorado,08019,11,0 +2020-04-14,Clear Creek,Colorado,08019,11,0 +2020-04-15,Clear Creek,Colorado,08019,11,0 +2020-04-16,Clear Creek,Colorado,08019,11,0 +2020-04-17,Clear Creek,Colorado,08019,11,0 +2020-04-18,Clear Creek,Colorado,08019,11,0 +2020-04-19,Clear Creek,Colorado,08019,11,0 +2020-04-20,Clear Creek,Colorado,08019,11,0 +2020-04-21,Clear Creek,Colorado,08019,11,1 +2020-04-22,Clear Creek,Colorado,08019,11,1 +2020-04-23,Clear Creek,Colorado,08019,12,1 +2020-04-24,Clear Creek,Colorado,08019,13,1 +2020-04-25,Clear Creek,Colorado,08019,13,1 +2020-04-26,Clear Creek,Colorado,08019,13,1 +2020-04-27,Clear Creek,Colorado,08019,13,1 +2020-04-28,Clear Creek,Colorado,08019,13,1 +2020-04-29,Clear Creek,Colorado,08019,13,1 +2020-04-30,Clear Creek,Colorado,08019,13,1 +2020-05-01,Clear Creek,Colorado,08019,13,1 +2020-05-02,Clear Creek,Colorado,08019,13,1 +2020-05-03,Clear Creek,Colorado,08019,13,1 +2020-05-04,Clear Creek,Colorado,08019,13,1 +2020-05-05,Clear Creek,Colorado,08019,13,1 +2020-05-06,Clear Creek,Colorado,08019,13,1 +2020-05-07,Clear Creek,Colorado,08019,13,1 +2020-05-08,Clear Creek,Colorado,08019,14,1 +2020-05-09,Clear Creek,Colorado,08019,14,1 +2020-05-10,Clear Creek,Colorado,08019,14,1 +2020-05-11,Clear Creek,Colorado,08019,14,1 +2020-05-12,Clear Creek,Colorado,08019,15,1 +2020-05-13,Clear Creek,Colorado,08019,15,1 +2020-05-14,Clear Creek,Colorado,08019,15,1 +2020-05-15,Clear Creek,Colorado,08019,15,1 +2020-05-16,Clear Creek,Colorado,08019,16,1 +2020-05-17,Clear Creek,Colorado,08019,16,1 +2020-05-18,Clear Creek,Colorado,08019,16,1 +2020-05-19,Clear Creek,Colorado,08019,16,1 +2020-05-20,Clear Creek,Colorado,08019,16,1 +2020-05-21,Clear Creek,Colorado,08019,16,1 +2020-05-22,Clear Creek,Colorado,08019,16,1 +2020-05-23,Clear Creek,Colorado,08019,16,1 +2020-05-24,Clear Creek,Colorado,08019,16,1 +2020-05-25,Clear Creek,Colorado,08019,16,1 +2020-05-26,Clear Creek,Colorado,08019,16,1 +2020-05-27,Clear Creek,Colorado,08019,16,1 +2020-05-28,Clear Creek,Colorado,08019,16,1 +2020-05-29,Clear Creek,Colorado,08019,16,1 +2020-05-30,Clear Creek,Colorado,08019,16,1 +2020-05-31,Clear Creek,Colorado,08019,16,1 +2020-06-01,Clear Creek,Colorado,08019,17,1 +2020-06-02,Clear Creek,Colorado,08019,17,1 +2020-06-03,Clear Creek,Colorado,08019,17,1 +2020-06-04,Clear Creek,Colorado,08019,17,1 +2020-06-05,Clear Creek,Colorado,08019,17,1 +2020-06-06,Clear Creek,Colorado,08019,17,1 +2020-06-07,Clear Creek,Colorado,08019,17,1 +2020-06-08,Clear Creek,Colorado,08019,17,1 +2020-06-09,Clear Creek,Colorado,08019,17,1 +2020-06-10,Clear Creek,Colorado,08019,17,1 +2020-06-11,Clear Creek,Colorado,08019,17,1 +2020-06-12,Clear Creek,Colorado,08019,17,1 +2020-06-13,Clear Creek,Colorado,08019,17,1 +2020-06-14,Clear Creek,Colorado,08019,17,1 +2020-06-15,Clear Creek,Colorado,08019,17,1 +2020-06-16,Clear Creek,Colorado,08019,17,1 +2020-06-17,Clear Creek,Colorado,08019,18,1 +2020-06-18,Clear Creek,Colorado,08019,18,1 +2020-06-19,Clear Creek,Colorado,08019,18,1 +2020-06-20,Clear Creek,Colorado,08019,18,1 +2020-06-21,Clear Creek,Colorado,08019,18,1 +2020-06-22,Clear Creek,Colorado,08019,18,1 +2020-06-23,Clear Creek,Colorado,08019,18,1 +2020-06-24,Clear Creek,Colorado,08019,18,1 +2020-06-25,Clear Creek,Colorado,08019,18,1 +2020-06-26,Clear Creek,Colorado,08019,18,1 +2020-06-27,Clear Creek,Colorado,08019,18,1 +2020-06-28,Clear Creek,Colorado,08019,18,1 +2020-06-29,Clear Creek,Colorado,08019,18,1 +2020-06-30,Clear Creek,Colorado,08019,19,1 +2020-07-01,Clear Creek,Colorado,08019,19,1 +2020-07-02,Clear Creek,Colorado,08019,19,1 +2020-07-03,Clear Creek,Colorado,08019,19,1 +2020-07-04,Clear Creek,Colorado,08019,21,1 +2020-07-05,Clear Creek,Colorado,08019,21,1 +2020-07-06,Clear Creek,Colorado,08019,21,1 +2020-07-07,Clear Creek,Colorado,08019,21,1 +2020-07-08,Clear Creek,Colorado,08019,21,1 +2020-07-09,Clear Creek,Colorado,08019,21,1 +2020-05-07,Conejos,Colorado,08021,1,0 +2020-05-08,Conejos,Colorado,08021,1,0 +2020-05-09,Conejos,Colorado,08021,1,0 +2020-05-10,Conejos,Colorado,08021,1,0 +2020-05-11,Conejos,Colorado,08021,1,0 +2020-05-12,Conejos,Colorado,08021,1,0 +2020-05-13,Conejos,Colorado,08021,1,0 +2020-05-14,Conejos,Colorado,08021,1,0 +2020-05-15,Conejos,Colorado,08021,1,0 +2020-05-16,Conejos,Colorado,08021,1,0 +2020-05-17,Conejos,Colorado,08021,1,0 +2020-05-18,Conejos,Colorado,08021,1,0 +2020-05-19,Conejos,Colorado,08021,1,0 +2020-05-20,Conejos,Colorado,08021,1,0 +2020-05-21,Conejos,Colorado,08021,1,0 +2020-05-22,Conejos,Colorado,08021,1,0 +2020-05-23,Conejos,Colorado,08021,1,0 +2020-05-24,Conejos,Colorado,08021,1,0 +2020-05-25,Conejos,Colorado,08021,1,0 +2020-05-26,Conejos,Colorado,08021,1,0 +2020-05-27,Conejos,Colorado,08021,1,0 +2020-05-28,Conejos,Colorado,08021,1,0 +2020-05-29,Conejos,Colorado,08021,1,0 +2020-05-30,Conejos,Colorado,08021,1,0 +2020-05-31,Conejos,Colorado,08021,2,0 +2020-06-01,Conejos,Colorado,08021,2,0 +2020-06-02,Conejos,Colorado,08021,2,0 +2020-06-03,Conejos,Colorado,08021,2,0 +2020-06-04,Conejos,Colorado,08021,3,0 +2020-06-05,Conejos,Colorado,08021,4,0 +2020-06-06,Conejos,Colorado,08021,4,0 +2020-06-07,Conejos,Colorado,08021,5,0 +2020-06-08,Conejos,Colorado,08021,5,0 +2020-06-09,Conejos,Colorado,08021,5,0 +2020-06-10,Conejos,Colorado,08021,5,0 +2020-06-11,Conejos,Colorado,08021,5,0 +2020-06-12,Conejos,Colorado,08021,5,0 +2020-06-13,Conejos,Colorado,08021,5,0 +2020-06-14,Conejos,Colorado,08021,5,0 +2020-06-15,Conejos,Colorado,08021,5,0 +2020-06-16,Conejos,Colorado,08021,7,0 +2020-06-17,Conejos,Colorado,08021,7,0 +2020-06-18,Conejos,Colorado,08021,7,0 +2020-06-19,Conejos,Colorado,08021,10,0 +2020-06-20,Conejos,Colorado,08021,12,0 +2020-06-21,Conejos,Colorado,08021,12,0 +2020-06-22,Conejos,Colorado,08021,12,0 +2020-06-23,Conejos,Colorado,08021,12,0 +2020-06-24,Conejos,Colorado,08021,12,0 +2020-06-25,Conejos,Colorado,08021,12,0 +2020-06-26,Conejos,Colorado,08021,12,0 +2020-06-27,Conejos,Colorado,08021,13,0 +2020-06-28,Conejos,Colorado,08021,13,0 +2020-06-29,Conejos,Colorado,08021,13,0 +2020-06-30,Conejos,Colorado,08021,13,0 +2020-07-01,Conejos,Colorado,08021,13,0 +2020-07-02,Conejos,Colorado,08021,15,0 +2020-07-03,Conejos,Colorado,08021,15,0 +2020-07-04,Conejos,Colorado,08021,15,0 +2020-07-05,Conejos,Colorado,08021,15,0 +2020-07-06,Conejos,Colorado,08021,15,0 +2020-07-07,Conejos,Colorado,08021,15,0 +2020-07-08,Conejos,Colorado,08021,15,0 +2020-07-09,Conejos,Colorado,08021,15,0 +2020-03-27,Costilla,Colorado,08023,1,0 +2020-03-28,Costilla,Colorado,08023,1,0 +2020-03-29,Costilla,Colorado,08023,1,0 +2020-03-30,Costilla,Colorado,08023,3,0 +2020-03-31,Costilla,Colorado,08023,3,0 +2020-04-01,Costilla,Colorado,08023,3,0 +2020-04-02,Costilla,Colorado,08023,3,0 +2020-04-03,Costilla,Colorado,08023,3,0 +2020-04-04,Costilla,Colorado,08023,3,0 +2020-04-05,Costilla,Colorado,08023,3,0 +2020-04-06,Costilla,Colorado,08023,3,0 +2020-04-07,Costilla,Colorado,08023,3,0 +2020-04-08,Costilla,Colorado,08023,3,0 +2020-04-09,Costilla,Colorado,08023,3,0 +2020-04-10,Costilla,Colorado,08023,3,0 +2020-04-11,Costilla,Colorado,08023,3,0 +2020-04-12,Costilla,Colorado,08023,3,0 +2020-04-13,Costilla,Colorado,08023,3,0 +2020-04-14,Costilla,Colorado,08023,3,0 +2020-04-15,Costilla,Colorado,08023,3,0 +2020-04-16,Costilla,Colorado,08023,3,0 +2020-04-17,Costilla,Colorado,08023,3,0 +2020-04-18,Costilla,Colorado,08023,3,0 +2020-04-19,Costilla,Colorado,08023,3,0 +2020-04-20,Costilla,Colorado,08023,3,0 +2020-04-21,Costilla,Colorado,08023,3,0 +2020-04-22,Costilla,Colorado,08023,3,0 +2020-04-23,Costilla,Colorado,08023,3,0 +2020-04-24,Costilla,Colorado,08023,3,0 +2020-04-25,Costilla,Colorado,08023,3,0 +2020-04-26,Costilla,Colorado,08023,3,0 +2020-04-27,Costilla,Colorado,08023,3,0 +2020-04-28,Costilla,Colorado,08023,3,0 +2020-04-29,Costilla,Colorado,08023,3,0 +2020-04-30,Costilla,Colorado,08023,3,0 +2020-05-01,Costilla,Colorado,08023,3,0 +2020-05-02,Costilla,Colorado,08023,3,0 +2020-05-03,Costilla,Colorado,08023,3,0 +2020-05-04,Costilla,Colorado,08023,3,0 +2020-05-05,Costilla,Colorado,08023,3,0 +2020-05-06,Costilla,Colorado,08023,3,0 +2020-05-07,Costilla,Colorado,08023,3,0 +2020-05-08,Costilla,Colorado,08023,3,0 +2020-05-09,Costilla,Colorado,08023,3,0 +2020-05-10,Costilla,Colorado,08023,3,0 +2020-05-11,Costilla,Colorado,08023,3,0 +2020-05-12,Costilla,Colorado,08023,3,0 +2020-05-13,Costilla,Colorado,08023,4,0 +2020-05-14,Costilla,Colorado,08023,4,0 +2020-05-15,Costilla,Colorado,08023,4,0 +2020-05-16,Costilla,Colorado,08023,4,0 +2020-05-17,Costilla,Colorado,08023,4,0 +2020-05-18,Costilla,Colorado,08023,4,0 +2020-05-19,Costilla,Colorado,08023,4,0 +2020-05-20,Costilla,Colorado,08023,3,0 +2020-05-21,Costilla,Colorado,08023,3,0 +2020-05-22,Costilla,Colorado,08023,3,0 +2020-05-23,Costilla,Colorado,08023,3,0 +2020-05-24,Costilla,Colorado,08023,3,0 +2020-05-25,Costilla,Colorado,08023,3,0 +2020-05-26,Costilla,Colorado,08023,3,0 +2020-05-27,Costilla,Colorado,08023,5,0 +2020-05-28,Costilla,Colorado,08023,5,0 +2020-05-29,Costilla,Colorado,08023,6,0 +2020-05-30,Costilla,Colorado,08023,6,0 +2020-05-31,Costilla,Colorado,08023,6,0 +2020-06-01,Costilla,Colorado,08023,6,0 +2020-06-02,Costilla,Colorado,08023,6,0 +2020-06-03,Costilla,Colorado,08023,6,0 +2020-06-04,Costilla,Colorado,08023,6,0 +2020-06-05,Costilla,Colorado,08023,6,0 +2020-06-06,Costilla,Colorado,08023,7,0 +2020-06-07,Costilla,Colorado,08023,8,0 +2020-06-08,Costilla,Colorado,08023,8,0 +2020-06-09,Costilla,Colorado,08023,8,0 +2020-06-10,Costilla,Colorado,08023,10,0 +2020-06-11,Costilla,Colorado,08023,12,0 +2020-06-12,Costilla,Colorado,08023,12,0 +2020-06-13,Costilla,Colorado,08023,14,0 +2020-06-14,Costilla,Colorado,08023,14,0 +2020-06-15,Costilla,Colorado,08023,15,0 +2020-06-16,Costilla,Colorado,08023,15,0 +2020-06-17,Costilla,Colorado,08023,15,0 +2020-06-18,Costilla,Colorado,08023,17,0 +2020-06-19,Costilla,Colorado,08023,17,0 +2020-06-20,Costilla,Colorado,08023,17,0 +2020-06-21,Costilla,Colorado,08023,17,0 +2020-06-22,Costilla,Colorado,08023,17,0 +2020-06-23,Costilla,Colorado,08023,18,0 +2020-06-24,Costilla,Colorado,08023,18,0 +2020-06-25,Costilla,Colorado,08023,20,0 +2020-06-26,Costilla,Colorado,08023,20,0 +2020-06-27,Costilla,Colorado,08023,20,0 +2020-06-28,Costilla,Colorado,08023,20,0 +2020-06-29,Costilla,Colorado,08023,20,0 +2020-06-30,Costilla,Colorado,08023,21,0 +2020-07-01,Costilla,Colorado,08023,21,0 +2020-07-02,Costilla,Colorado,08023,22,0 +2020-07-03,Costilla,Colorado,08023,22,0 +2020-07-04,Costilla,Colorado,08023,22,0 +2020-07-05,Costilla,Colorado,08023,22,0 +2020-07-06,Costilla,Colorado,08023,22,0 +2020-07-07,Costilla,Colorado,08023,22,0 +2020-07-08,Costilla,Colorado,08023,22,0 +2020-07-09,Costilla,Colorado,08023,22,0 +2020-03-19,Crowley,Colorado,08025,1,1 +2020-03-20,Crowley,Colorado,08025,1,1 +2020-03-21,Crowley,Colorado,08025,1,1 +2020-03-22,Crowley,Colorado,08025,1,1 +2020-03-23,Crowley,Colorado,08025,1,1 +2020-03-24,Crowley,Colorado,08025,1,1 +2020-03-25,Crowley,Colorado,08025,1,1 +2020-03-26,Crowley,Colorado,08025,1,1 +2020-03-27,Crowley,Colorado,08025,1,1 +2020-03-28,Crowley,Colorado,08025,1,1 +2020-03-29,Crowley,Colorado,08025,1,1 +2020-03-30,Crowley,Colorado,08025,1,1 +2020-03-31,Crowley,Colorado,08025,1,1 +2020-04-01,Crowley,Colorado,08025,1,1 +2020-04-02,Crowley,Colorado,08025,1,1 +2020-04-03,Crowley,Colorado,08025,1,1 +2020-04-04,Crowley,Colorado,08025,1,1 +2020-04-05,Crowley,Colorado,08025,1,1 +2020-04-06,Crowley,Colorado,08025,1,1 +2020-04-07,Crowley,Colorado,08025,1,1 +2020-04-08,Crowley,Colorado,08025,1,1 +2020-04-09,Crowley,Colorado,08025,1,1 +2020-04-10,Crowley,Colorado,08025,1,1 +2020-04-11,Crowley,Colorado,08025,2,1 +2020-04-12,Crowley,Colorado,08025,2,1 +2020-04-13,Crowley,Colorado,08025,2,1 +2020-04-14,Crowley,Colorado,08025,2,1 +2020-04-15,Crowley,Colorado,08025,2,1 +2020-04-16,Crowley,Colorado,08025,2,1 +2020-04-17,Crowley,Colorado,08025,2,1 +2020-04-18,Crowley,Colorado,08025,2,1 +2020-04-19,Crowley,Colorado,08025,2,1 +2020-04-20,Crowley,Colorado,08025,2,1 +2020-04-21,Crowley,Colorado,08025,2,1 +2020-04-22,Crowley,Colorado,08025,2,1 +2020-04-23,Crowley,Colorado,08025,2,1 +2020-04-24,Crowley,Colorado,08025,2,1 +2020-04-25,Crowley,Colorado,08025,2,1 +2020-04-26,Crowley,Colorado,08025,2,1 +2020-04-27,Crowley,Colorado,08025,2,1 +2020-04-28,Crowley,Colorado,08025,2,1 +2020-04-29,Crowley,Colorado,08025,2,1 +2020-04-30,Crowley,Colorado,08025,2,1 +2020-05-01,Crowley,Colorado,08025,3,1 +2020-05-02,Crowley,Colorado,08025,3,1 +2020-05-03,Crowley,Colorado,08025,4,1 +2020-05-04,Crowley,Colorado,08025,4,1 +2020-05-05,Crowley,Colorado,08025,4,1 +2020-05-06,Crowley,Colorado,08025,4,1 +2020-05-07,Crowley,Colorado,08025,4,1 +2020-05-08,Crowley,Colorado,08025,25,1 +2020-05-09,Crowley,Colorado,08025,39,1 +2020-05-10,Crowley,Colorado,08025,39,1 +2020-05-11,Crowley,Colorado,08025,39,1 +2020-05-12,Crowley,Colorado,08025,39,1 +2020-05-13,Crowley,Colorado,08025,39,1 +2020-05-14,Crowley,Colorado,08025,39,1 +2020-05-15,Crowley,Colorado,08025,39,1 +2020-05-16,Crowley,Colorado,08025,39,1 +2020-05-17,Crowley,Colorado,08025,39,1 +2020-05-18,Crowley,Colorado,08025,39,1 +2020-05-19,Crowley,Colorado,08025,39,1 +2020-05-20,Crowley,Colorado,08025,42,1 +2020-05-21,Crowley,Colorado,08025,43,1 +2020-05-22,Crowley,Colorado,08025,44,1 +2020-05-23,Crowley,Colorado,08025,57,1 +2020-05-24,Crowley,Colorado,08025,62,1 +2020-05-25,Crowley,Colorado,08025,63,1 +2020-05-26,Crowley,Colorado,08025,63,1 +2020-05-27,Crowley,Colorado,08025,63,1 +2020-05-28,Crowley,Colorado,08025,63,1 +2020-05-29,Crowley,Colorado,08025,63,1 +2020-05-30,Crowley,Colorado,08025,64,1 +2020-05-31,Crowley,Colorado,08025,64,1 +2020-06-01,Crowley,Colorado,08025,64,1 +2020-06-02,Crowley,Colorado,08025,64,1 +2020-06-03,Crowley,Colorado,08025,64,1 +2020-06-04,Crowley,Colorado,08025,64,1 +2020-06-05,Crowley,Colorado,08025,66,1 +2020-06-06,Crowley,Colorado,08025,66,1 +2020-06-07,Crowley,Colorado,08025,66,1 +2020-06-08,Crowley,Colorado,08025,66,1 +2020-06-09,Crowley,Colorado,08025,66,1 +2020-06-10,Crowley,Colorado,08025,66,1 +2020-06-11,Crowley,Colorado,08025,66,1 +2020-06-12,Crowley,Colorado,08025,66,1 +2020-06-13,Crowley,Colorado,08025,66,1 +2020-06-14,Crowley,Colorado,08025,67,1 +2020-06-15,Crowley,Colorado,08025,68,1 +2020-06-16,Crowley,Colorado,08025,68,1 +2020-06-17,Crowley,Colorado,08025,68,1 +2020-06-18,Crowley,Colorado,08025,68,1 +2020-06-19,Crowley,Colorado,08025,68,1 +2020-06-20,Crowley,Colorado,08025,68,1 +2020-06-21,Crowley,Colorado,08025,68,1 +2020-06-22,Crowley,Colorado,08025,69,1 +2020-06-23,Crowley,Colorado,08025,69,1 +2020-06-24,Crowley,Colorado,08025,69,1 +2020-06-25,Crowley,Colorado,08025,69,1 +2020-06-26,Crowley,Colorado,08025,70,1 +2020-06-27,Crowley,Colorado,08025,70,1 +2020-06-28,Crowley,Colorado,08025,70,1 +2020-06-29,Crowley,Colorado,08025,70,1 +2020-06-30,Crowley,Colorado,08025,70,1 +2020-07-01,Crowley,Colorado,08025,70,1 +2020-07-02,Crowley,Colorado,08025,70,1 +2020-07-03,Crowley,Colorado,08025,70,1 +2020-07-04,Crowley,Colorado,08025,71,1 +2020-07-05,Crowley,Colorado,08025,71,1 +2020-07-06,Crowley,Colorado,08025,71,1 +2020-07-07,Crowley,Colorado,08025,71,1 +2020-07-08,Crowley,Colorado,08025,71,1 +2020-07-09,Crowley,Colorado,08025,71,1 +2020-04-02,Custer,Colorado,08027,1,0 +2020-04-03,Custer,Colorado,08027,2,0 +2020-04-04,Custer,Colorado,08027,2,0 +2020-04-05,Custer,Colorado,08027,2,0 +2020-04-06,Custer,Colorado,08027,2,0 +2020-04-07,Custer,Colorado,08027,2,0 +2020-04-08,Custer,Colorado,08027,2,0 +2020-04-09,Custer,Colorado,08027,2,0 +2020-04-10,Custer,Colorado,08027,2,0 +2020-04-11,Custer,Colorado,08027,2,0 +2020-04-12,Custer,Colorado,08027,2,0 +2020-04-13,Custer,Colorado,08027,2,0 +2020-04-14,Custer,Colorado,08027,2,0 +2020-04-15,Custer,Colorado,08027,2,0 +2020-04-16,Custer,Colorado,08027,2,0 +2020-04-17,Custer,Colorado,08027,2,0 +2020-04-18,Custer,Colorado,08027,2,0 +2020-04-19,Custer,Colorado,08027,2,0 +2020-04-20,Custer,Colorado,08027,2,0 +2020-04-21,Custer,Colorado,08027,2,0 +2020-04-22,Custer,Colorado,08027,2,0 +2020-04-23,Custer,Colorado,08027,2,0 +2020-04-24,Custer,Colorado,08027,2,0 +2020-04-25,Custer,Colorado,08027,2,0 +2020-04-26,Custer,Colorado,08027,2,0 +2020-04-27,Custer,Colorado,08027,2,0 +2020-04-28,Custer,Colorado,08027,2,0 +2020-04-29,Custer,Colorado,08027,2,0 +2020-04-30,Custer,Colorado,08027,2,0 +2020-05-01,Custer,Colorado,08027,2,0 +2020-05-02,Custer,Colorado,08027,2,0 +2020-05-03,Custer,Colorado,08027,2,0 +2020-05-04,Custer,Colorado,08027,2,0 +2020-05-05,Custer,Colorado,08027,2,0 +2020-05-06,Custer,Colorado,08027,2,0 +2020-05-07,Custer,Colorado,08027,2,0 +2020-05-08,Custer,Colorado,08027,2,0 +2020-05-09,Custer,Colorado,08027,2,0 +2020-05-10,Custer,Colorado,08027,2,0 +2020-05-11,Custer,Colorado,08027,2,0 +2020-05-12,Custer,Colorado,08027,2,0 +2020-05-13,Custer,Colorado,08027,2,0 +2020-05-14,Custer,Colorado,08027,2,0 +2020-05-15,Custer,Colorado,08027,2,0 +2020-05-16,Custer,Colorado,08027,2,0 +2020-05-17,Custer,Colorado,08027,2,0 +2020-05-18,Custer,Colorado,08027,2,0 +2020-05-19,Custer,Colorado,08027,2,0 +2020-05-20,Custer,Colorado,08027,2,0 +2020-05-21,Custer,Colorado,08027,2,0 +2020-05-22,Custer,Colorado,08027,2,0 +2020-05-23,Custer,Colorado,08027,2,0 +2020-05-24,Custer,Colorado,08027,2,0 +2020-05-25,Custer,Colorado,08027,2,0 +2020-05-26,Custer,Colorado,08027,2,0 +2020-05-27,Custer,Colorado,08027,2,0 +2020-05-28,Custer,Colorado,08027,2,0 +2020-05-29,Custer,Colorado,08027,2,0 +2020-05-30,Custer,Colorado,08027,2,0 +2020-05-31,Custer,Colorado,08027,2,0 +2020-06-01,Custer,Colorado,08027,2,0 +2020-06-02,Custer,Colorado,08027,2,0 +2020-06-03,Custer,Colorado,08027,2,0 +2020-06-04,Custer,Colorado,08027,2,0 +2020-06-05,Custer,Colorado,08027,2,0 +2020-06-06,Custer,Colorado,08027,2,0 +2020-06-07,Custer,Colorado,08027,2,0 +2020-06-08,Custer,Colorado,08027,2,0 +2020-06-09,Custer,Colorado,08027,2,0 +2020-06-10,Custer,Colorado,08027,2,0 +2020-06-11,Custer,Colorado,08027,2,0 +2020-06-12,Custer,Colorado,08027,2,0 +2020-06-13,Custer,Colorado,08027,2,0 +2020-06-14,Custer,Colorado,08027,2,0 +2020-06-15,Custer,Colorado,08027,2,0 +2020-06-16,Custer,Colorado,08027,2,0 +2020-06-17,Custer,Colorado,08027,2,0 +2020-06-18,Custer,Colorado,08027,2,0 +2020-06-19,Custer,Colorado,08027,2,0 +2020-06-20,Custer,Colorado,08027,2,0 +2020-06-21,Custer,Colorado,08027,2,0 +2020-06-22,Custer,Colorado,08027,2,0 +2020-06-23,Custer,Colorado,08027,2,0 +2020-06-24,Custer,Colorado,08027,2,0 +2020-06-25,Custer,Colorado,08027,2,0 +2020-06-26,Custer,Colorado,08027,2,0 +2020-06-27,Custer,Colorado,08027,2,0 +2020-06-28,Custer,Colorado,08027,2,0 +2020-06-29,Custer,Colorado,08027,2,0 +2020-06-30,Custer,Colorado,08027,2,0 +2020-07-01,Custer,Colorado,08027,2,0 +2020-07-02,Custer,Colorado,08027,2,0 +2020-07-03,Custer,Colorado,08027,2,0 +2020-07-04,Custer,Colorado,08027,2,0 +2020-07-05,Custer,Colorado,08027,2,0 +2020-07-06,Custer,Colorado,08027,2,0 +2020-07-07,Custer,Colorado,08027,2,0 +2020-07-08,Custer,Colorado,08027,3,0 +2020-07-09,Custer,Colorado,08027,3,0 +2020-03-24,Delta,Colorado,08029,1,0 +2020-03-25,Delta,Colorado,08029,1,0 +2020-03-26,Delta,Colorado,08029,1,0 +2020-03-27,Delta,Colorado,08029,2,0 +2020-03-28,Delta,Colorado,08029,1,0 +2020-03-29,Delta,Colorado,08029,1,0 +2020-03-30,Delta,Colorado,08029,1,0 +2020-03-31,Delta,Colorado,08029,1,0 +2020-04-01,Delta,Colorado,08029,1,0 +2020-04-02,Delta,Colorado,08029,1,0 +2020-04-03,Delta,Colorado,08029,4,0 +2020-04-04,Delta,Colorado,08029,4,0 +2020-04-05,Delta,Colorado,08029,4,0 +2020-04-06,Delta,Colorado,08029,5,0 +2020-04-07,Delta,Colorado,08029,5,0 +2020-04-08,Delta,Colorado,08029,5,1 +2020-04-09,Delta,Colorado,08029,6,1 +2020-04-10,Delta,Colorado,08029,6,1 +2020-04-11,Delta,Colorado,08029,6,1 +2020-04-12,Delta,Colorado,08029,6,1 +2020-04-13,Delta,Colorado,08029,7,1 +2020-04-14,Delta,Colorado,08029,12,1 +2020-04-15,Delta,Colorado,08029,12,1 +2020-04-16,Delta,Colorado,08029,13,1 +2020-04-17,Delta,Colorado,08029,16,1 +2020-04-18,Delta,Colorado,08029,19,1 +2020-04-19,Delta,Colorado,08029,22,1 +2020-04-20,Delta,Colorado,08029,25,1 +2020-04-21,Delta,Colorado,08029,25,1 +2020-04-22,Delta,Colorado,08029,25,1 +2020-04-23,Delta,Colorado,08029,25,1 +2020-04-24,Delta,Colorado,08029,26,1 +2020-04-25,Delta,Colorado,08029,26,1 +2020-04-26,Delta,Colorado,08029,27,1 +2020-04-27,Delta,Colorado,08029,33,1 +2020-04-28,Delta,Colorado,08029,34,1 +2020-04-29,Delta,Colorado,08029,43,1 +2020-04-30,Delta,Colorado,08029,44,1 +2020-05-01,Delta,Colorado,08029,46,1 +2020-05-02,Delta,Colorado,08029,48,1 +2020-05-03,Delta,Colorado,08029,50,1 +2020-05-04,Delta,Colorado,08029,51,1 +2020-05-05,Delta,Colorado,08029,52,1 +2020-05-06,Delta,Colorado,08029,52,1 +2020-05-07,Delta,Colorado,08029,53,1 +2020-05-08,Delta,Colorado,08029,54,1 +2020-05-09,Delta,Colorado,08029,54,1 +2020-05-10,Delta,Colorado,08029,55,1 +2020-05-11,Delta,Colorado,08029,55,1 +2020-05-12,Delta,Colorado,08029,55,1 +2020-05-13,Delta,Colorado,08029,54,1 +2020-05-14,Delta,Colorado,08029,54,1 +2020-05-15,Delta,Colorado,08029,54,1 +2020-05-16,Delta,Colorado,08029,55,1 +2020-05-17,Delta,Colorado,08029,55,1 +2020-05-18,Delta,Colorado,08029,55,1 +2020-05-19,Delta,Colorado,08029,55,1 +2020-05-20,Delta,Colorado,08029,55,1 +2020-05-21,Delta,Colorado,08029,57,1 +2020-05-22,Delta,Colorado,08029,61,1 +2020-05-23,Delta,Colorado,08029,65,1 +2020-05-24,Delta,Colorado,08029,67,1 +2020-05-25,Delta,Colorado,08029,67,1 +2020-05-26,Delta,Colorado,08029,67,1 +2020-05-27,Delta,Colorado,08029,67,1 +2020-05-28,Delta,Colorado,08029,67,1 +2020-05-29,Delta,Colorado,08029,68,1 +2020-05-30,Delta,Colorado,08029,69,1 +2020-05-31,Delta,Colorado,08029,69,1 +2020-06-01,Delta,Colorado,08029,69,1 +2020-06-02,Delta,Colorado,08029,71,1 +2020-06-03,Delta,Colorado,08029,72,1 +2020-06-04,Delta,Colorado,08029,72,1 +2020-06-05,Delta,Colorado,08029,72,1 +2020-06-06,Delta,Colorado,08029,74,1 +2020-06-07,Delta,Colorado,08029,76,1 +2020-06-08,Delta,Colorado,08029,76,1 +2020-06-09,Delta,Colorado,08029,76,1 +2020-06-10,Delta,Colorado,08029,76,1 +2020-06-11,Delta,Colorado,08029,76,1 +2020-06-12,Delta,Colorado,08029,76,1 +2020-06-13,Delta,Colorado,08029,76,1 +2020-06-14,Delta,Colorado,08029,77,1 +2020-06-15,Delta,Colorado,08029,78,1 +2020-06-16,Delta,Colorado,08029,78,1 +2020-06-17,Delta,Colorado,08029,79,1 +2020-06-18,Delta,Colorado,08029,80,1 +2020-06-19,Delta,Colorado,08029,80,1 +2020-06-20,Delta,Colorado,08029,80,1 +2020-06-21,Delta,Colorado,08029,80,1 +2020-06-22,Delta,Colorado,08029,80,1 +2020-06-23,Delta,Colorado,08029,80,1 +2020-06-24,Delta,Colorado,08029,81,1 +2020-06-25,Delta,Colorado,08029,81,1 +2020-06-26,Delta,Colorado,08029,82,1 +2020-06-27,Delta,Colorado,08029,82,1 +2020-06-28,Delta,Colorado,08029,82,1 +2020-06-29,Delta,Colorado,08029,82,1 +2020-06-30,Delta,Colorado,08029,83,1 +2020-07-01,Delta,Colorado,08029,84,1 +2020-07-02,Delta,Colorado,08029,83,1 +2020-07-03,Delta,Colorado,08029,83,1 +2020-07-04,Delta,Colorado,08029,84,1 +2020-07-05,Delta,Colorado,08029,84,1 +2020-07-06,Delta,Colorado,08029,83,1 +2020-07-07,Delta,Colorado,08029,84,1 +2020-07-08,Delta,Colorado,08029,84,1 +2020-07-09,Delta,Colorado,08029,83,1 +2020-03-06,Denver,Colorado,08031,2,0 +2020-03-07,Denver,Colorado,08031,2,0 +2020-03-08,Denver,Colorado,08031,2,0 +2020-03-09,Denver,Colorado,08031,3,0 +2020-03-10,Denver,Colorado,08031,4,0 +2020-03-11,Denver,Colorado,08031,6,0 +2020-03-12,Denver,Colorado,08031,9,0 +2020-03-13,Denver,Colorado,08031,17,0 +2020-03-14,Denver,Colorado,08031,23,0 +2020-03-15,Denver,Colorado,08031,28,0 +2020-03-16,Denver,Colorado,08031,28,0 +2020-03-17,Denver,Colorado,08031,41,0 +2020-03-18,Denver,Colorado,08031,45,0 +2020-03-19,Denver,Colorado,08031,61,0 +2020-03-20,Denver,Colorado,08031,79,0 +2020-03-21,Denver,Colorado,08031,98,0 +2020-03-22,Denver,Colorado,08031,125,0 +2020-03-23,Denver,Colorado,08031,148,0 +2020-03-24,Denver,Colorado,08031,176,0 +2020-03-25,Denver,Colorado,08031,214,3 +2020-03-26,Denver,Colorado,08031,262,3 +2020-03-27,Denver,Colorado,08031,312,3 +2020-03-28,Denver,Colorado,08031,367,5 +2020-03-29,Denver,Colorado,08031,408,5 +2020-03-30,Denver,Colorado,08031,465,6 +2020-03-31,Denver,Colorado,08031,539,7 +2020-04-01,Denver,Colorado,08031,586,8 +2020-04-02,Denver,Colorado,08031,643,11 +2020-04-03,Denver,Colorado,08031,716,14 +2020-04-04,Denver,Colorado,08031,769,14 +2020-04-05,Denver,Colorado,08031,825,16 +2020-04-06,Denver,Colorado,08031,847,15 +2020-04-07,Denver,Colorado,08031,884,31 +2020-04-08,Denver,Colorado,08031,927,33 +2020-04-09,Denver,Colorado,08031,1031,38 +2020-04-10,Denver,Colorado,08031,1113,42 +2020-04-11,Denver,Colorado,08031,1182,46 +2020-04-12,Denver,Colorado,08031,1247,46 +2020-04-13,Denver,Colorado,08031,1346,51 +2020-04-14,Denver,Colorado,08031,1402,56 +2020-04-15,Denver,Colorado,08031,1468,61 +2020-04-16,Denver,Colorado,08031,1549,63 +2020-04-17,Denver,Colorado,08031,1636,66 +2020-04-18,Denver,Colorado,08031,1723,74 +2020-04-19,Denver,Colorado,08031,1784,75 +2020-04-20,Denver,Colorado,08031,1880,83 +2020-04-21,Denver,Colorado,08031,2004,91 +2020-04-22,Denver,Colorado,08031,2071,96 +2020-04-23,Denver,Colorado,08031,2172,98 +2020-04-24,Denver,Colorado,08031,2385,128 +2020-04-25,Denver,Colorado,08031,2487,132 +2020-04-26,Denver,Colorado,08031,2583,132 +2020-04-27,Denver,Colorado,08031,2682,135 +2020-04-28,Denver,Colorado,08031,2791,145 +2020-04-29,Denver,Colorado,08031,2890,150 +2020-04-30,Denver,Colorado,08031,3001,154 +2020-05-01,Denver,Colorado,08031,3092,163 +2020-05-02,Denver,Colorado,08031,3222,164 +2020-05-03,Denver,Colorado,08031,3345,166 +2020-05-04,Denver,Colorado,08031,3428,166 +2020-05-05,Denver,Colorado,08031,3546,188 +2020-05-06,Denver,Colorado,08031,3674,195 +2020-05-07,Denver,Colorado,08031,3799,199 +2020-05-08,Denver,Colorado,08031,3892,202 +2020-05-09,Denver,Colorado,08031,4001,205 +2020-05-10,Denver,Colorado,08031,4070,206 +2020-05-11,Denver,Colorado,08031,4118,212 +2020-05-12,Denver,Colorado,08031,4187,214 +2020-05-13,Denver,Colorado,08031,4254,233 +2020-05-14,Denver,Colorado,08031,4359,237 +2020-05-15,Denver,Colorado,08031,4452,248 +2020-05-16,Denver,Colorado,08031,4548,261 +2020-05-17,Denver,Colorado,08031,4656,265 +2020-05-18,Denver,Colorado,08031,4720,272 +2020-05-19,Denver,Colorado,08031,4790,285 +2020-05-20,Denver,Colorado,08031,4858,294 +2020-05-21,Denver,Colorado,08031,4948,296 +2020-05-22,Denver,Colorado,08031,5056,299 +2020-05-23,Denver,Colorado,08031,5151,299 +2020-05-24,Denver,Colorado,08031,5173,299 +2020-05-25,Denver,Colorado,08031,5216,298 +2020-05-26,Denver,Colorado,08031,5269,301 +2020-05-27,Denver,Colorado,08031,5316,313 +2020-05-28,Denver,Colorado,08031,5434,324 +2020-05-29,Denver,Colorado,08031,5569,326 +2020-05-30,Denver,Colorado,08031,5690,327 +2020-05-31,Denver,Colorado,08031,5775,327 +2020-06-01,Denver,Colorado,08031,5802,329 +2020-06-02,Denver,Colorado,08031,5854,332 +2020-06-03,Denver,Colorado,08031,5917,334 +2020-06-04,Denver,Colorado,08031,5977,336 +2020-06-05,Denver,Colorado,08031,6041,338 +2020-06-06,Denver,Colorado,08031,6079,339 +2020-06-07,Denver,Colorado,08031,6106,339 +2020-06-08,Denver,Colorado,08031,6138,348 +2020-06-09,Denver,Colorado,08031,6176,349 +2020-06-10,Denver,Colorado,08031,6204,357 +2020-06-11,Denver,Colorado,08031,6232,358 +2020-06-12,Denver,Colorado,08031,6257,360 +2020-06-13,Denver,Colorado,08031,6301,360 +2020-06-14,Denver,Colorado,08031,6330,360 +2020-06-15,Denver,Colorado,08031,6376,364 +2020-06-16,Denver,Colorado,08031,6401,363 +2020-06-17,Denver,Colorado,08031,6445,364 +2020-06-18,Denver,Colorado,08031,6493,366 +2020-06-19,Denver,Colorado,08031,6565,366 +2020-06-20,Denver,Colorado,08031,6603,367 +2020-06-21,Denver,Colorado,08031,6630,367 +2020-06-22,Denver,Colorado,08031,6663,367 +2020-06-23,Denver,Colorado,08031,6700,369 +2020-06-24,Denver,Colorado,08031,6775,369 +2020-06-25,Denver,Colorado,08031,6835,369 +2020-06-26,Denver,Colorado,08031,6901,374 +2020-06-27,Denver,Colorado,08031,6947,374 +2020-06-28,Denver,Colorado,08031,7007,375 +2020-06-29,Denver,Colorado,08031,7065,376 +2020-06-30,Denver,Colorado,08031,7091,381 +2020-07-01,Denver,Colorado,08031,7149,381 +2020-07-02,Denver,Colorado,08031,7228,382 +2020-07-03,Denver,Colorado,08031,7282,382 +2020-07-04,Denver,Colorado,08031,7319,382 +2020-07-05,Denver,Colorado,08031,7344,382 +2020-07-06,Denver,Colorado,08031,7392,381 +2020-07-07,Denver,Colorado,08031,7477,383 +2020-07-08,Denver,Colorado,08031,7563,387 +2020-07-09,Denver,Colorado,08031,7651,386 +2020-03-05,Douglas,Colorado,08035,1,0 +2020-03-06,Douglas,Colorado,08035,3,0 +2020-03-07,Douglas,Colorado,08035,3,0 +2020-03-08,Douglas,Colorado,08035,3,0 +2020-03-09,Douglas,Colorado,08035,3,0 +2020-03-10,Douglas,Colorado,08035,3,0 +2020-03-11,Douglas,Colorado,08035,3,0 +2020-03-12,Douglas,Colorado,08035,3,0 +2020-03-13,Douglas,Colorado,08035,4,0 +2020-03-14,Douglas,Colorado,08035,4,0 +2020-03-15,Douglas,Colorado,08035,8,0 +2020-03-16,Douglas,Colorado,08035,8,0 +2020-03-17,Douglas,Colorado,08035,9,0 +2020-03-18,Douglas,Colorado,08035,11,0 +2020-03-19,Douglas,Colorado,08035,14,0 +2020-03-20,Douglas,Colorado,08035,17,0 +2020-03-21,Douglas,Colorado,08035,27,0 +2020-03-22,Douglas,Colorado,08035,33,0 +2020-03-23,Douglas,Colorado,08035,48,0 +2020-03-24,Douglas,Colorado,08035,53,0 +2020-03-25,Douglas,Colorado,08035,58,0 +2020-03-26,Douglas,Colorado,08035,67,0 +2020-03-27,Douglas,Colorado,08035,79,0 +2020-03-28,Douglas,Colorado,08035,92,0 +2020-03-29,Douglas,Colorado,08035,102,0 +2020-03-30,Douglas,Colorado,08035,121,0 +2020-03-31,Douglas,Colorado,08035,144,0 +2020-04-01,Douglas,Colorado,08035,158,0 +2020-04-02,Douglas,Colorado,08035,171,1 +2020-04-03,Douglas,Colorado,08035,194,2 +2020-04-04,Douglas,Colorado,08035,209,3 +2020-04-05,Douglas,Colorado,08035,223,4 +2020-04-06,Douglas,Colorado,08035,227,4 +2020-04-07,Douglas,Colorado,08035,232,8 +2020-04-08,Douglas,Colorado,08035,244,8 +2020-04-09,Douglas,Colorado,08035,270,10 +2020-04-10,Douglas,Colorado,08035,282,10 +2020-04-11,Douglas,Colorado,08035,292,10 +2020-04-12,Douglas,Colorado,08035,298,10 +2020-04-13,Douglas,Colorado,08035,304,11 +2020-04-14,Douglas,Colorado,08035,311,12 +2020-04-15,Douglas,Colorado,08035,312,15 +2020-04-16,Douglas,Colorado,08035,329,15 +2020-04-17,Douglas,Colorado,08035,353,15 +2020-04-18,Douglas,Colorado,08035,360,15 +2020-04-19,Douglas,Colorado,08035,368,16 +2020-04-20,Douglas,Colorado,08035,381,17 +2020-04-21,Douglas,Colorado,08035,384,17 +2020-04-22,Douglas,Colorado,08035,392,21 +2020-04-23,Douglas,Colorado,08035,399,21 +2020-04-24,Douglas,Colorado,08035,414,21 +2020-04-25,Douglas,Colorado,08035,425,19 +2020-04-26,Douglas,Colorado,08035,439,21 +2020-04-27,Douglas,Colorado,08035,449,21 +2020-04-28,Douglas,Colorado,08035,453,21 +2020-04-29,Douglas,Colorado,08035,468,22 +2020-04-30,Douglas,Colorado,08035,478,22 +2020-05-01,Douglas,Colorado,08035,502,23 +2020-05-02,Douglas,Colorado,08035,518,23 +2020-05-03,Douglas,Colorado,08035,526,23 +2020-05-04,Douglas,Colorado,08035,531,23 +2020-05-05,Douglas,Colorado,08035,543,23 +2020-05-06,Douglas,Colorado,08035,556,25 +2020-05-07,Douglas,Colorado,08035,573,26 +2020-05-08,Douglas,Colorado,08035,584,27 +2020-05-09,Douglas,Colorado,08035,591,28 +2020-05-10,Douglas,Colorado,08035,601,28 +2020-05-11,Douglas,Colorado,08035,604,29 +2020-05-12,Douglas,Colorado,08035,607,29 +2020-05-13,Douglas,Colorado,08035,612,30 +2020-05-14,Douglas,Colorado,08035,621,31 +2020-05-15,Douglas,Colorado,08035,632,37 +2020-05-16,Douglas,Colorado,08035,637,38 +2020-05-17,Douglas,Colorado,08035,640,39 +2020-05-18,Douglas,Colorado,08035,649,39 +2020-05-19,Douglas,Colorado,08035,654,42 +2020-05-20,Douglas,Colorado,08035,659,43 +2020-05-21,Douglas,Colorado,08035,663,43 +2020-05-22,Douglas,Colorado,08035,669,43 +2020-05-23,Douglas,Colorado,08035,675,44 +2020-05-24,Douglas,Colorado,08035,675,44 +2020-05-25,Douglas,Colorado,08035,678,44 +2020-05-26,Douglas,Colorado,08035,683,44 +2020-05-27,Douglas,Colorado,08035,695,44 +2020-05-28,Douglas,Colorado,08035,699,45 +2020-05-29,Douglas,Colorado,08035,705,45 +2020-05-30,Douglas,Colorado,08035,715,45 +2020-05-31,Douglas,Colorado,08035,720,45 +2020-06-01,Douglas,Colorado,08035,724,45 +2020-06-02,Douglas,Colorado,08035,726,45 +2020-06-03,Douglas,Colorado,08035,733,46 +2020-06-04,Douglas,Colorado,08035,746,47 +2020-06-05,Douglas,Colorado,08035,751,47 +2020-06-06,Douglas,Colorado,08035,753,47 +2020-06-07,Douglas,Colorado,08035,756,47 +2020-06-08,Douglas,Colorado,08035,757,47 +2020-06-09,Douglas,Colorado,08035,764,47 +2020-06-10,Douglas,Colorado,08035,771,47 +2020-06-11,Douglas,Colorado,08035,779,48 +2020-06-12,Douglas,Colorado,08035,790,48 +2020-06-13,Douglas,Colorado,08035,794,49 +2020-06-14,Douglas,Colorado,08035,801,49 +2020-06-15,Douglas,Colorado,08035,807,49 +2020-06-16,Douglas,Colorado,08035,815,50 +2020-06-17,Douglas,Colorado,08035,820,50 +2020-06-18,Douglas,Colorado,08035,825,50 +2020-06-19,Douglas,Colorado,08035,831,51 +2020-06-20,Douglas,Colorado,08035,839,51 +2020-06-21,Douglas,Colorado,08035,852,51 +2020-06-22,Douglas,Colorado,08035,864,51 +2020-06-23,Douglas,Colorado,08035,869,51 +2020-06-24,Douglas,Colorado,08035,873,52 +2020-06-25,Douglas,Colorado,08035,895,52 +2020-06-26,Douglas,Colorado,08035,911,52 +2020-06-27,Douglas,Colorado,08035,922,52 +2020-06-28,Douglas,Colorado,08035,939,52 +2020-06-29,Douglas,Colorado,08035,946,52 +2020-06-30,Douglas,Colorado,08035,951,52 +2020-07-01,Douglas,Colorado,08035,964,52 +2020-07-02,Douglas,Colorado,08035,984,52 +2020-07-03,Douglas,Colorado,08035,993,52 +2020-07-04,Douglas,Colorado,08035,1006,52 +2020-07-05,Douglas,Colorado,08035,1013,52 +2020-07-06,Douglas,Colorado,08035,1019,52 +2020-07-07,Douglas,Colorado,08035,1042,52 +2020-07-08,Douglas,Colorado,08035,1056,52 +2020-07-09,Douglas,Colorado,08035,1078,52 +2020-03-06,Eagle,Colorado,08037,1,0 +2020-03-07,Eagle,Colorado,08037,1,0 +2020-03-08,Eagle,Colorado,08037,1,0 +2020-03-09,Eagle,Colorado,08037,2,0 +2020-03-10,Eagle,Colorado,08037,3,0 +2020-03-11,Eagle,Colorado,08037,4,0 +2020-03-12,Eagle,Colorado,08037,11,0 +2020-03-13,Eagle,Colorado,08037,16,0 +2020-03-14,Eagle,Colorado,08037,20,0 +2020-03-15,Eagle,Colorado,08037,24,0 +2020-03-16,Eagle,Colorado,08037,34,0 +2020-03-17,Eagle,Colorado,08037,34,0 +2020-03-18,Eagle,Colorado,08037,39,0 +2020-03-19,Eagle,Colorado,08037,51,0 +2020-03-20,Eagle,Colorado,08037,61,0 +2020-03-21,Eagle,Colorado,08037,74,1 +2020-03-22,Eagle,Colorado,08037,80,1 +2020-03-23,Eagle,Colorado,08037,92,1 +2020-03-24,Eagle,Colorado,08037,96,1 +2020-03-25,Eagle,Colorado,08037,120,1 +2020-03-26,Eagle,Colorado,08037,147,1 +2020-03-27,Eagle,Colorado,08037,170,1 +2020-03-28,Eagle,Colorado,08037,182,2 +2020-03-29,Eagle,Colorado,08037,187,2 +2020-03-30,Eagle,Colorado,08037,213,4 +2020-03-31,Eagle,Colorado,08037,227,4 +2020-04-01,Eagle,Colorado,08037,295,4 +2020-04-02,Eagle,Colorado,08037,314,4 +2020-04-03,Eagle,Colorado,08037,333,5 +2020-04-04,Eagle,Colorado,08037,333,5 +2020-04-05,Eagle,Colorado,08037,339,5 +2020-04-06,Eagle,Colorado,08037,355,5 +2020-04-07,Eagle,Colorado,08037,372,5 +2020-04-08,Eagle,Colorado,08037,374,5 +2020-04-09,Eagle,Colorado,08037,394,5 +2020-04-10,Eagle,Colorado,08037,426,5 +2020-04-11,Eagle,Colorado,08037,433,5 +2020-04-12,Eagle,Colorado,08037,452,5 +2020-04-13,Eagle,Colorado,08037,457,6 +2020-04-14,Eagle,Colorado,08037,468,6 +2020-04-15,Eagle,Colorado,08037,480,6 +2020-04-16,Eagle,Colorado,08037,479,6 +2020-04-17,Eagle,Colorado,08037,482,6 +2020-04-18,Eagle,Colorado,08037,483,6 +2020-04-19,Eagle,Colorado,08037,485,7 +2020-04-20,Eagle,Colorado,08037,486,7 +2020-04-21,Eagle,Colorado,08037,487,7 +2020-04-22,Eagle,Colorado,08037,488,7 +2020-04-23,Eagle,Colorado,08037,489,7 +2020-04-24,Eagle,Colorado,08037,506,7 +2020-04-25,Eagle,Colorado,08037,512,7 +2020-04-26,Eagle,Colorado,08037,533,7 +2020-04-27,Eagle,Colorado,08037,535,7 +2020-04-28,Eagle,Colorado,08037,540,7 +2020-04-29,Eagle,Colorado,08037,546,7 +2020-04-30,Eagle,Colorado,08037,550,7 +2020-05-01,Eagle,Colorado,08037,544,7 +2020-05-02,Eagle,Colorado,08037,546,7 +2020-05-03,Eagle,Colorado,08037,551,7 +2020-05-04,Eagle,Colorado,08037,552,7 +2020-05-05,Eagle,Colorado,08037,547,7 +2020-05-06,Eagle,Colorado,08037,552,7 +2020-05-07,Eagle,Colorado,08037,554,7 +2020-05-08,Eagle,Colorado,08037,555,7 +2020-05-09,Eagle,Colorado,08037,558,7 +2020-05-10,Eagle,Colorado,08037,558,7 +2020-05-11,Eagle,Colorado,08037,559,8 +2020-05-12,Eagle,Colorado,08037,561,8 +2020-05-13,Eagle,Colorado,08037,562,8 +2020-05-14,Eagle,Colorado,08037,564,8 +2020-05-15,Eagle,Colorado,08037,566,8 +2020-05-16,Eagle,Colorado,08037,570,8 +2020-05-17,Eagle,Colorado,08037,570,8 +2020-05-18,Eagle,Colorado,08037,570,8 +2020-05-19,Eagle,Colorado,08037,571,8 +2020-05-20,Eagle,Colorado,08037,572,8 +2020-05-21,Eagle,Colorado,08037,577,8 +2020-05-22,Eagle,Colorado,08037,577,8 +2020-05-23,Eagle,Colorado,08037,580,8 +2020-05-24,Eagle,Colorado,08037,581,8 +2020-05-25,Eagle,Colorado,08037,577,8 +2020-05-26,Eagle,Colorado,08037,580,8 +2020-05-27,Eagle,Colorado,08037,580,8 +2020-05-28,Eagle,Colorado,08037,584,8 +2020-05-29,Eagle,Colorado,08037,586,8 +2020-05-30,Eagle,Colorado,08037,587,8 +2020-05-31,Eagle,Colorado,08037,587,8 +2020-06-01,Eagle,Colorado,08037,587,8 +2020-06-02,Eagle,Colorado,08037,590,8 +2020-06-03,Eagle,Colorado,08037,599,8 +2020-06-04,Eagle,Colorado,08037,599,8 +2020-06-05,Eagle,Colorado,08037,603,8 +2020-06-06,Eagle,Colorado,08037,607,8 +2020-06-07,Eagle,Colorado,08037,608,8 +2020-06-08,Eagle,Colorado,08037,610,8 +2020-06-09,Eagle,Colorado,08037,612,8 +2020-06-10,Eagle,Colorado,08037,615,8 +2020-06-11,Eagle,Colorado,08037,617,8 +2020-06-12,Eagle,Colorado,08037,621,8 +2020-06-13,Eagle,Colorado,08037,623,8 +2020-06-14,Eagle,Colorado,08037,625,8 +2020-06-15,Eagle,Colorado,08037,626,8 +2020-06-16,Eagle,Colorado,08037,628,8 +2020-06-17,Eagle,Colorado,08037,632,8 +2020-06-18,Eagle,Colorado,08037,633,8 +2020-06-19,Eagle,Colorado,08037,639,8 +2020-06-20,Eagle,Colorado,08037,641,8 +2020-06-21,Eagle,Colorado,08037,649,8 +2020-06-22,Eagle,Colorado,08037,656,8 +2020-06-23,Eagle,Colorado,08037,660,8 +2020-06-24,Eagle,Colorado,08037,665,8 +2020-06-25,Eagle,Colorado,08037,670,8 +2020-06-26,Eagle,Colorado,08037,680,8 +2020-06-27,Eagle,Colorado,08037,685,8 +2020-06-28,Eagle,Colorado,08037,686,8 +2020-06-29,Eagle,Colorado,08037,688,8 +2020-06-30,Eagle,Colorado,08037,692,8 +2020-07-01,Eagle,Colorado,08037,693,8 +2020-07-02,Eagle,Colorado,08037,697,8 +2020-07-03,Eagle,Colorado,08037,700,8 +2020-07-04,Eagle,Colorado,08037,701,8 +2020-07-05,Eagle,Colorado,08037,705,8 +2020-07-06,Eagle,Colorado,08037,709,8 +2020-07-07,Eagle,Colorado,08037,715,8 +2020-07-08,Eagle,Colorado,08037,732,8 +2020-07-09,Eagle,Colorado,08037,738,8 +2020-03-21,Elbert,Colorado,08039,3,0 +2020-03-22,Elbert,Colorado,08039,3,0 +2020-03-23,Elbert,Colorado,08039,3,0 +2020-03-24,Elbert,Colorado,08039,3,0 +2020-03-25,Elbert,Colorado,08039,3,0 +2020-03-26,Elbert,Colorado,08039,3,0 +2020-03-27,Elbert,Colorado,08039,3,0 +2020-03-28,Elbert,Colorado,08039,3,0 +2020-03-29,Elbert,Colorado,08039,3,0 +2020-03-30,Elbert,Colorado,08039,4,0 +2020-03-31,Elbert,Colorado,08039,5,0 +2020-04-01,Elbert,Colorado,08039,5,0 +2020-04-02,Elbert,Colorado,08039,5,0 +2020-04-03,Elbert,Colorado,08039,6,0 +2020-04-04,Elbert,Colorado,08039,9,1 +2020-04-05,Elbert,Colorado,08039,9,1 +2020-04-06,Elbert,Colorado,08039,9,1 +2020-04-07,Elbert,Colorado,08039,9,1 +2020-04-08,Elbert,Colorado,08039,10,1 +2020-04-09,Elbert,Colorado,08039,10,1 +2020-04-10,Elbert,Colorado,08039,13,1 +2020-04-11,Elbert,Colorado,08039,14,1 +2020-04-12,Elbert,Colorado,08039,16,1 +2020-04-13,Elbert,Colorado,08039,16,1 +2020-04-14,Elbert,Colorado,08039,17,1 +2020-04-15,Elbert,Colorado,08039,16,1 +2020-04-16,Elbert,Colorado,08039,17,1 +2020-04-17,Elbert,Colorado,08039,20,1 +2020-04-18,Elbert,Colorado,08039,23,1 +2020-04-19,Elbert,Colorado,08039,23,1 +2020-04-20,Elbert,Colorado,08039,24,1 +2020-04-21,Elbert,Colorado,08039,24,1 +2020-04-22,Elbert,Colorado,08039,24,1 +2020-04-23,Elbert,Colorado,08039,26,1 +2020-04-24,Elbert,Colorado,08039,27,1 +2020-04-25,Elbert,Colorado,08039,27,1 +2020-04-26,Elbert,Colorado,08039,27,1 +2020-04-27,Elbert,Colorado,08039,27,1 +2020-04-28,Elbert,Colorado,08039,27,1 +2020-04-29,Elbert,Colorado,08039,28,1 +2020-04-30,Elbert,Colorado,08039,29,1 +2020-05-01,Elbert,Colorado,08039,30,1 +2020-05-02,Elbert,Colorado,08039,31,1 +2020-05-03,Elbert,Colorado,08039,31,1 +2020-05-04,Elbert,Colorado,08039,32,1 +2020-05-05,Elbert,Colorado,08039,36,1 +2020-05-06,Elbert,Colorado,08039,37,1 +2020-05-07,Elbert,Colorado,08039,37,1 +2020-05-08,Elbert,Colorado,08039,39,1 +2020-05-09,Elbert,Colorado,08039,39,1 +2020-05-10,Elbert,Colorado,08039,39,1 +2020-05-11,Elbert,Colorado,08039,39,1 +2020-05-12,Elbert,Colorado,08039,40,2 +2020-05-13,Elbert,Colorado,08039,41,2 +2020-05-14,Elbert,Colorado,08039,41,2 +2020-05-15,Elbert,Colorado,08039,42,2 +2020-05-16,Elbert,Colorado,08039,44,2 +2020-05-17,Elbert,Colorado,08039,45,2 +2020-05-18,Elbert,Colorado,08039,47,2 +2020-05-19,Elbert,Colorado,08039,47,2 +2020-05-20,Elbert,Colorado,08039,48,2 +2020-05-21,Elbert,Colorado,08039,48,2 +2020-05-22,Elbert,Colorado,08039,48,2 +2020-05-23,Elbert,Colorado,08039,48,2 +2020-05-24,Elbert,Colorado,08039,48,2 +2020-05-25,Elbert,Colorado,08039,49,2 +2020-05-26,Elbert,Colorado,08039,49,2 +2020-05-27,Elbert,Colorado,08039,51,2 +2020-05-28,Elbert,Colorado,08039,51,2 +2020-05-29,Elbert,Colorado,08039,52,2 +2020-05-30,Elbert,Colorado,08039,52,2 +2020-05-31,Elbert,Colorado,08039,53,2 +2020-06-01,Elbert,Colorado,08039,53,2 +2020-06-02,Elbert,Colorado,08039,53,2 +2020-06-03,Elbert,Colorado,08039,53,2 +2020-06-04,Elbert,Colorado,08039,53,2 +2020-06-05,Elbert,Colorado,08039,53,2 +2020-06-06,Elbert,Colorado,08039,54,2 +2020-06-07,Elbert,Colorado,08039,54,2 +2020-06-08,Elbert,Colorado,08039,56,2 +2020-06-09,Elbert,Colorado,08039,57,2 +2020-06-10,Elbert,Colorado,08039,54,2 +2020-06-11,Elbert,Colorado,08039,54,2 +2020-06-12,Elbert,Colorado,08039,54,2 +2020-06-13,Elbert,Colorado,08039,54,2 +2020-06-14,Elbert,Colorado,08039,54,2 +2020-06-15,Elbert,Colorado,08039,54,2 +2020-06-16,Elbert,Colorado,08039,54,2 +2020-06-17,Elbert,Colorado,08039,54,2 +2020-06-18,Elbert,Colorado,08039,54,2 +2020-06-19,Elbert,Colorado,08039,54,2 +2020-06-20,Elbert,Colorado,08039,54,2 +2020-06-21,Elbert,Colorado,08039,54,2 +2020-06-22,Elbert,Colorado,08039,54,2 +2020-06-23,Elbert,Colorado,08039,54,2 +2020-06-24,Elbert,Colorado,08039,54,2 +2020-06-25,Elbert,Colorado,08039,55,2 +2020-06-26,Elbert,Colorado,08039,56,2 +2020-06-27,Elbert,Colorado,08039,56,2 +2020-06-28,Elbert,Colorado,08039,57,2 +2020-06-29,Elbert,Colorado,08039,57,2 +2020-06-30,Elbert,Colorado,08039,57,2 +2020-07-01,Elbert,Colorado,08039,57,2 +2020-07-02,Elbert,Colorado,08039,57,2 +2020-07-03,Elbert,Colorado,08039,57,2 +2020-07-04,Elbert,Colorado,08039,57,2 +2020-07-05,Elbert,Colorado,08039,57,2 +2020-07-06,Elbert,Colorado,08039,58,2 +2020-07-07,Elbert,Colorado,08039,60,2 +2020-07-08,Elbert,Colorado,08039,60,2 +2020-07-09,Elbert,Colorado,08039,60,2 +2020-03-06,El Paso,Colorado,08041,1,0 +2020-03-07,El Paso,Colorado,08041,1,0 +2020-03-08,El Paso,Colorado,08041,1,0 +2020-03-09,El Paso,Colorado,08041,1,0 +2020-03-10,El Paso,Colorado,08041,1,0 +2020-03-11,El Paso,Colorado,08041,1,0 +2020-03-12,El Paso,Colorado,08041,1,1 +2020-03-13,El Paso,Colorado,08041,2,2 +2020-03-14,El Paso,Colorado,08041,3,2 +2020-03-15,El Paso,Colorado,08041,4,2 +2020-03-16,El Paso,Colorado,08041,6,2 +2020-03-17,El Paso,Colorado,08041,6,2 +2020-03-18,El Paso,Colorado,08041,8,2 +2020-03-19,El Paso,Colorado,08041,15,3 +2020-03-20,El Paso,Colorado,08041,27,3 +2020-03-21,El Paso,Colorado,08041,37,3 +2020-03-22,El Paso,Colorado,08041,51,3 +2020-03-23,El Paso,Colorado,08041,69,4 +2020-03-24,El Paso,Colorado,08041,106,4 +2020-03-25,El Paso,Colorado,08041,122,5 +2020-03-26,El Paso,Colorado,08041,137,7 +2020-03-27,El Paso,Colorado,08041,160,7 +2020-03-28,El Paso,Colorado,08041,184,10 +2020-03-29,El Paso,Colorado,08041,214,11 +2020-03-30,El Paso,Colorado,08041,245,11 +2020-03-31,El Paso,Colorado,08041,286,13 +2020-04-01,El Paso,Colorado,08041,314,14 +2020-04-02,El Paso,Colorado,08041,340,16 +2020-04-03,El Paso,Colorado,08041,374,18 +2020-04-04,El Paso,Colorado,08041,406,22 +2020-04-05,El Paso,Colorado,08041,435,25 +2020-04-06,El Paso,Colorado,08041,441,28 +2020-04-07,El Paso,Colorado,08041,457,28 +2020-04-08,El Paso,Colorado,08041,472,30 +2020-04-09,El Paso,Colorado,08041,534,32 +2020-04-10,El Paso,Colorado,08041,550,33 +2020-04-11,El Paso,Colorado,08041,578,35 +2020-04-12,El Paso,Colorado,08041,613,37 +2020-04-13,El Paso,Colorado,08041,641,39 +2020-04-14,El Paso,Colorado,08041,652,41 +2020-04-15,El Paso,Colorado,08041,668,43 +2020-04-16,El Paso,Colorado,08041,689,48 +2020-04-17,El Paso,Colorado,08041,708,49 +2020-04-18,El Paso,Colorado,08041,721,49 +2020-04-19,El Paso,Colorado,08041,731,49 +2020-04-20,El Paso,Colorado,08041,734,50 +2020-04-21,El Paso,Colorado,08041,744,53 +2020-04-22,El Paso,Colorado,08041,774,54 +2020-04-23,El Paso,Colorado,08041,798,55 +2020-04-24,El Paso,Colorado,08041,853,72 +2020-04-25,El Paso,Colorado,08041,862,66 +2020-04-26,El Paso,Colorado,08041,867,68 +2020-04-27,El Paso,Colorado,08041,879,68 +2020-04-28,El Paso,Colorado,08041,884,69 +2020-04-29,El Paso,Colorado,08041,907,69 +2020-04-30,El Paso,Colorado,08041,934,70 +2020-05-01,El Paso,Colorado,08041,964,71 +2020-05-02,El Paso,Colorado,08041,988,74 +2020-05-03,El Paso,Colorado,08041,994,75 +2020-05-04,El Paso,Colorado,08041,1005,76 +2020-05-05,El Paso,Colorado,08041,1028,78 +2020-05-06,El Paso,Colorado,08041,1055,77 +2020-05-07,El Paso,Colorado,08041,1079,77 +2020-05-08,El Paso,Colorado,08041,1097,78 +2020-05-09,El Paso,Colorado,08041,1109,78 +2020-05-10,El Paso,Colorado,08041,1124,78 +2020-05-11,El Paso,Colorado,08041,1137,79 +2020-05-12,El Paso,Colorado,08041,1157,81 +2020-05-13,El Paso,Colorado,08041,1175,81 +2020-05-14,El Paso,Colorado,08041,1204,81 +2020-05-15,El Paso,Colorado,08041,1251,83 +2020-05-16,El Paso,Colorado,08041,1291,83 +2020-05-17,El Paso,Colorado,08041,1314,83 +2020-05-18,El Paso,Colorado,08041,1348,83 +2020-05-19,El Paso,Colorado,08041,1357,84 +2020-05-20,El Paso,Colorado,08041,1386,88 +2020-05-21,El Paso,Colorado,08041,1428,88 +2020-05-22,El Paso,Colorado,08041,1460,88 +2020-05-23,El Paso,Colorado,08041,1493,88 +2020-05-24,El Paso,Colorado,08041,1505,89 +2020-05-25,El Paso,Colorado,08041,1535,89 +2020-05-26,El Paso,Colorado,08041,1581,89 +2020-05-27,El Paso,Colorado,08041,1600,89 +2020-05-28,El Paso,Colorado,08041,1636,89 +2020-05-29,El Paso,Colorado,08041,1674,89 +2020-05-30,El Paso,Colorado,08041,1717,88 +2020-05-31,El Paso,Colorado,08041,1732,88 +2020-06-01,El Paso,Colorado,08041,1748,89 +2020-06-02,El Paso,Colorado,08041,1761,95 +2020-06-03,El Paso,Colorado,08041,1778,96 +2020-06-04,El Paso,Colorado,08041,1788,96 +2020-06-05,El Paso,Colorado,08041,1802,97 +2020-06-06,El Paso,Colorado,08041,1817,96 +2020-06-07,El Paso,Colorado,08041,1834,96 +2020-06-08,El Paso,Colorado,08041,1862,98 +2020-06-09,El Paso,Colorado,08041,1880,99 +2020-06-10,El Paso,Colorado,08041,1888,100 +2020-06-11,El Paso,Colorado,08041,1907,100 +2020-06-12,El Paso,Colorado,08041,1920,102 +2020-06-13,El Paso,Colorado,08041,1925,102 +2020-06-14,El Paso,Colorado,08041,1932,102 +2020-06-15,El Paso,Colorado,08041,1941,103 +2020-06-16,El Paso,Colorado,08041,1960,106 +2020-06-17,El Paso,Colorado,08041,2001,113 +2020-06-18,El Paso,Colorado,08041,2024,114 +2020-06-19,El Paso,Colorado,08041,2063,116 +2020-06-20,El Paso,Colorado,08041,2079,116 +2020-06-21,El Paso,Colorado,08041,2101,116 +2020-06-22,El Paso,Colorado,08041,2113,116 +2020-06-23,El Paso,Colorado,08041,2139,120 +2020-06-24,El Paso,Colorado,08041,2173,120 +2020-06-25,El Paso,Colorado,08041,2220,121 +2020-06-26,El Paso,Colorado,08041,2266,118 +2020-06-27,El Paso,Colorado,08041,2296,119 +2020-06-28,El Paso,Colorado,08041,2327,119 +2020-06-29,El Paso,Colorado,08041,2360,119 +2020-06-30,El Paso,Colorado,08041,2374,120 +2020-07-01,El Paso,Colorado,08041,2431,120 +2020-07-02,El Paso,Colorado,08041,2474,120 +2020-07-03,El Paso,Colorado,08041,2525,120 +2020-07-04,El Paso,Colorado,08041,2621,122 +2020-07-05,El Paso,Colorado,08041,2659,122 +2020-07-06,El Paso,Colorado,08041,2703,122 +2020-07-07,El Paso,Colorado,08041,2733,122 +2020-07-08,El Paso,Colorado,08041,2806,111 +2020-07-09,El Paso,Colorado,08041,2871,111 +2020-03-24,Fremont,Colorado,08043,1,0 +2020-03-25,Fremont,Colorado,08043,1,0 +2020-03-26,Fremont,Colorado,08043,1,0 +2020-03-27,Fremont,Colorado,08043,1,0 +2020-03-28,Fremont,Colorado,08043,1,0 +2020-03-29,Fremont,Colorado,08043,1,0 +2020-03-30,Fremont,Colorado,08043,2,0 +2020-03-31,Fremont,Colorado,08043,2,0 +2020-04-01,Fremont,Colorado,08043,2,0 +2020-04-02,Fremont,Colorado,08043,2,0 +2020-04-03,Fremont,Colorado,08043,2,0 +2020-04-04,Fremont,Colorado,08043,3,0 +2020-04-05,Fremont,Colorado,08043,3,0 +2020-04-06,Fremont,Colorado,08043,3,0 +2020-04-07,Fremont,Colorado,08043,4,0 +2020-04-08,Fremont,Colorado,08043,4,0 +2020-04-09,Fremont,Colorado,08043,5,0 +2020-04-10,Fremont,Colorado,08043,5,0 +2020-04-11,Fremont,Colorado,08043,6,0 +2020-04-12,Fremont,Colorado,08043,7,0 +2020-04-13,Fremont,Colorado,08043,8,0 +2020-04-14,Fremont,Colorado,08043,8,0 +2020-04-15,Fremont,Colorado,08043,9,0 +2020-04-16,Fremont,Colorado,08043,9,0 +2020-04-17,Fremont,Colorado,08043,9,0 +2020-04-18,Fremont,Colorado,08043,9,0 +2020-04-19,Fremont,Colorado,08043,10,0 +2020-04-20,Fremont,Colorado,08043,11,0 +2020-04-21,Fremont,Colorado,08043,11,0 +2020-04-22,Fremont,Colorado,08043,19,0 +2020-04-23,Fremont,Colorado,08043,19,0 +2020-04-24,Fremont,Colorado,08043,19,0 +2020-04-25,Fremont,Colorado,08043,20,0 +2020-04-26,Fremont,Colorado,08043,22,0 +2020-04-27,Fremont,Colorado,08043,22,0 +2020-04-28,Fremont,Colorado,08043,22,0 +2020-04-29,Fremont,Colorado,08043,22,0 +2020-04-30,Fremont,Colorado,08043,22,0 +2020-05-01,Fremont,Colorado,08043,22,0 +2020-05-02,Fremont,Colorado,08043,22,0 +2020-05-03,Fremont,Colorado,08043,22,0 +2020-05-04,Fremont,Colorado,08043,22,0 +2020-05-05,Fremont,Colorado,08043,22,0 +2020-05-06,Fremont,Colorado,08043,22,0 +2020-05-07,Fremont,Colorado,08043,23,0 +2020-05-08,Fremont,Colorado,08043,23,0 +2020-05-09,Fremont,Colorado,08043,23,0 +2020-05-10,Fremont,Colorado,08043,23,0 +2020-05-11,Fremont,Colorado,08043,23,0 +2020-05-12,Fremont,Colorado,08043,23,0 +2020-05-13,Fremont,Colorado,08043,23,0 +2020-05-14,Fremont,Colorado,08043,25,0 +2020-05-15,Fremont,Colorado,08043,25,0 +2020-05-16,Fremont,Colorado,08043,25,0 +2020-05-17,Fremont,Colorado,08043,25,0 +2020-05-18,Fremont,Colorado,08043,25,0 +2020-05-19,Fremont,Colorado,08043,25,0 +2020-05-20,Fremont,Colorado,08043,25,0 +2020-05-21,Fremont,Colorado,08043,26,0 +2020-05-22,Fremont,Colorado,08043,26,0 +2020-05-23,Fremont,Colorado,08043,26,0 +2020-05-24,Fremont,Colorado,08043,26,0 +2020-05-25,Fremont,Colorado,08043,26,0 +2020-05-26,Fremont,Colorado,08043,26,0 +2020-05-27,Fremont,Colorado,08043,26,0 +2020-05-28,Fremont,Colorado,08043,26,0 +2020-05-29,Fremont,Colorado,08043,26,0 +2020-05-30,Fremont,Colorado,08043,26,0 +2020-05-31,Fremont,Colorado,08043,26,0 +2020-06-01,Fremont,Colorado,08043,26,0 +2020-06-02,Fremont,Colorado,08043,27,0 +2020-06-03,Fremont,Colorado,08043,26,0 +2020-06-04,Fremont,Colorado,08043,26,0 +2020-06-05,Fremont,Colorado,08043,26,0 +2020-06-06,Fremont,Colorado,08043,26,0 +2020-06-07,Fremont,Colorado,08043,26,0 +2020-06-08,Fremont,Colorado,08043,26,0 +2020-06-09,Fremont,Colorado,08043,26,0 +2020-06-10,Fremont,Colorado,08043,26,0 +2020-06-11,Fremont,Colorado,08043,26,0 +2020-06-12,Fremont,Colorado,08043,26,0 +2020-06-13,Fremont,Colorado,08043,29,0 +2020-06-14,Fremont,Colorado,08043,29,0 +2020-06-15,Fremont,Colorado,08043,29,0 +2020-06-16,Fremont,Colorado,08043,29,0 +2020-06-17,Fremont,Colorado,08043,30,0 +2020-06-18,Fremont,Colorado,08043,30,0 +2020-06-19,Fremont,Colorado,08043,30,0 +2020-06-20,Fremont,Colorado,08043,30,0 +2020-06-21,Fremont,Colorado,08043,31,0 +2020-06-22,Fremont,Colorado,08043,31,0 +2020-06-23,Fremont,Colorado,08043,31,0 +2020-06-24,Fremont,Colorado,08043,31,0 +2020-06-25,Fremont,Colorado,08043,32,0 +2020-06-26,Fremont,Colorado,08043,33,0 +2020-06-27,Fremont,Colorado,08043,34,0 +2020-06-28,Fremont,Colorado,08043,36,0 +2020-06-29,Fremont,Colorado,08043,36,0 +2020-06-30,Fremont,Colorado,08043,36,0 +2020-07-01,Fremont,Colorado,08043,37,0 +2020-07-02,Fremont,Colorado,08043,38,0 +2020-07-03,Fremont,Colorado,08043,38,0 +2020-07-04,Fremont,Colorado,08043,40,0 +2020-07-05,Fremont,Colorado,08043,40,0 +2020-07-06,Fremont,Colorado,08043,41,0 +2020-07-07,Fremont,Colorado,08043,41,0 +2020-07-08,Fremont,Colorado,08043,41,0 +2020-07-09,Fremont,Colorado,08043,41,0 +2020-03-15,Garfield,Colorado,08045,1,0 +2020-03-16,Garfield,Colorado,08045,2,0 +2020-03-17,Garfield,Colorado,08045,2,0 +2020-03-18,Garfield,Colorado,08045,2,0 +2020-03-19,Garfield,Colorado,08045,3,0 +2020-03-20,Garfield,Colorado,08045,4,0 +2020-03-21,Garfield,Colorado,08045,7,0 +2020-03-22,Garfield,Colorado,08045,8,0 +2020-03-23,Garfield,Colorado,08045,8,0 +2020-03-24,Garfield,Colorado,08045,10,0 +2020-03-25,Garfield,Colorado,08045,13,0 +2020-03-26,Garfield,Colorado,08045,16,0 +2020-03-27,Garfield,Colorado,08045,16,0 +2020-03-28,Garfield,Colorado,08045,23,0 +2020-03-29,Garfield,Colorado,08045,25,0 +2020-03-30,Garfield,Colorado,08045,31,1 +2020-03-31,Garfield,Colorado,08045,33,1 +2020-04-01,Garfield,Colorado,08045,34,1 +2020-04-02,Garfield,Colorado,08045,43,1 +2020-04-03,Garfield,Colorado,08045,45,1 +2020-04-04,Garfield,Colorado,08045,45,1 +2020-04-05,Garfield,Colorado,08045,46,1 +2020-04-06,Garfield,Colorado,08045,47,1 +2020-04-07,Garfield,Colorado,08045,48,1 +2020-04-08,Garfield,Colorado,08045,49,1 +2020-04-09,Garfield,Colorado,08045,50,2 +2020-04-10,Garfield,Colorado,08045,52,2 +2020-04-11,Garfield,Colorado,08045,54,2 +2020-04-12,Garfield,Colorado,08045,55,2 +2020-04-13,Garfield,Colorado,08045,58,2 +2020-04-14,Garfield,Colorado,08045,59,2 +2020-04-15,Garfield,Colorado,08045,62,2 +2020-04-16,Garfield,Colorado,08045,64,2 +2020-04-17,Garfield,Colorado,08045,65,2 +2020-04-18,Garfield,Colorado,08045,70,2 +2020-04-19,Garfield,Colorado,08045,70,2 +2020-04-20,Garfield,Colorado,08045,71,2 +2020-04-21,Garfield,Colorado,08045,71,2 +2020-04-22,Garfield,Colorado,08045,71,2 +2020-04-23,Garfield,Colorado,08045,74,2 +2020-04-24,Garfield,Colorado,08045,81,2 +2020-04-25,Garfield,Colorado,08045,83,2 +2020-04-26,Garfield,Colorado,08045,87,2 +2020-04-27,Garfield,Colorado,08045,88,2 +2020-04-28,Garfield,Colorado,08045,89,2 +2020-04-29,Garfield,Colorado,08045,91,2 +2020-04-30,Garfield,Colorado,08045,93,2 +2020-05-01,Garfield,Colorado,08045,93,2 +2020-05-02,Garfield,Colorado,08045,95,2 +2020-05-03,Garfield,Colorado,08045,97,2 +2020-05-04,Garfield,Colorado,08045,95,2 +2020-05-05,Garfield,Colorado,08045,99,2 +2020-05-06,Garfield,Colorado,08045,99,2 +2020-05-07,Garfield,Colorado,08045,100,2 +2020-05-08,Garfield,Colorado,08045,102,2 +2020-05-09,Garfield,Colorado,08045,103,2 +2020-05-10,Garfield,Colorado,08045,104,2 +2020-05-11,Garfield,Colorado,08045,103,2 +2020-05-12,Garfield,Colorado,08045,111,2 +2020-05-13,Garfield,Colorado,08045,112,2 +2020-05-14,Garfield,Colorado,08045,112,2 +2020-05-15,Garfield,Colorado,08045,113,2 +2020-05-16,Garfield,Colorado,08045,113,2 +2020-05-17,Garfield,Colorado,08045,115,2 +2020-05-18,Garfield,Colorado,08045,114,2 +2020-05-19,Garfield,Colorado,08045,115,2 +2020-05-20,Garfield,Colorado,08045,114,2 +2020-05-21,Garfield,Colorado,08045,114,2 +2020-05-22,Garfield,Colorado,08045,120,2 +2020-05-23,Garfield,Colorado,08045,120,2 +2020-05-24,Garfield,Colorado,08045,121,2 +2020-05-25,Garfield,Colorado,08045,123,2 +2020-05-26,Garfield,Colorado,08045,134,2 +2020-05-27,Garfield,Colorado,08045,135,2 +2020-05-28,Garfield,Colorado,08045,135,2 +2020-05-29,Garfield,Colorado,08045,137,2 +2020-05-30,Garfield,Colorado,08045,138,2 +2020-05-31,Garfield,Colorado,08045,139,2 +2020-06-01,Garfield,Colorado,08045,143,2 +2020-06-02,Garfield,Colorado,08045,148,2 +2020-06-03,Garfield,Colorado,08045,150,2 +2020-06-04,Garfield,Colorado,08045,157,2 +2020-06-05,Garfield,Colorado,08045,158,2 +2020-06-06,Garfield,Colorado,08045,161,2 +2020-06-07,Garfield,Colorado,08045,162,2 +2020-06-08,Garfield,Colorado,08045,164,2 +2020-06-09,Garfield,Colorado,08045,166,2 +2020-06-10,Garfield,Colorado,08045,171,2 +2020-06-11,Garfield,Colorado,08045,176,2 +2020-06-12,Garfield,Colorado,08045,177,2 +2020-06-13,Garfield,Colorado,08045,181,2 +2020-06-14,Garfield,Colorado,08045,184,2 +2020-06-15,Garfield,Colorado,08045,193,2 +2020-06-16,Garfield,Colorado,08045,195,2 +2020-06-17,Garfield,Colorado,08045,199,2 +2020-06-18,Garfield,Colorado,08045,205,2 +2020-06-19,Garfield,Colorado,08045,214,2 +2020-06-20,Garfield,Colorado,08045,217,2 +2020-06-21,Garfield,Colorado,08045,222,2 +2020-06-22,Garfield,Colorado,08045,224,2 +2020-06-23,Garfield,Colorado,08045,236,2 +2020-06-24,Garfield,Colorado,08045,243,2 +2020-06-25,Garfield,Colorado,08045,252,2 +2020-06-26,Garfield,Colorado,08045,260,2 +2020-06-27,Garfield,Colorado,08045,266,2 +2020-06-28,Garfield,Colorado,08045,273,2 +2020-06-29,Garfield,Colorado,08045,277,2 +2020-06-30,Garfield,Colorado,08045,298,2 +2020-07-01,Garfield,Colorado,08045,300,2 +2020-07-02,Garfield,Colorado,08045,303,2 +2020-07-03,Garfield,Colorado,08045,313,2 +2020-07-04,Garfield,Colorado,08045,318,2 +2020-07-05,Garfield,Colorado,08045,319,2 +2020-07-06,Garfield,Colorado,08045,317,3 +2020-07-07,Garfield,Colorado,08045,326,3 +2020-07-08,Garfield,Colorado,08045,339,3 +2020-07-09,Garfield,Colorado,08045,349,3 +2020-04-09,Gilpin,Colorado,08047,1,0 +2020-04-10,Gilpin,Colorado,08047,1,0 +2020-04-11,Gilpin,Colorado,08047,1,0 +2020-04-12,Gilpin,Colorado,08047,1,0 +2020-04-13,Gilpin,Colorado,08047,1,0 +2020-04-14,Gilpin,Colorado,08047,1,0 +2020-04-15,Gilpin,Colorado,08047,1,0 +2020-04-16,Gilpin,Colorado,08047,1,0 +2020-04-17,Gilpin,Colorado,08047,1,0 +2020-04-18,Gilpin,Colorado,08047,1,0 +2020-04-19,Gilpin,Colorado,08047,1,0 +2020-04-20,Gilpin,Colorado,08047,1,0 +2020-04-21,Gilpin,Colorado,08047,1,0 +2020-04-22,Gilpin,Colorado,08047,1,0 +2020-04-23,Gilpin,Colorado,08047,1,0 +2020-04-24,Gilpin,Colorado,08047,1,0 +2020-04-25,Gilpin,Colorado,08047,1,0 +2020-04-26,Gilpin,Colorado,08047,1,0 +2020-04-27,Gilpin,Colorado,08047,1,0 +2020-04-28,Gilpin,Colorado,08047,1,0 +2020-04-29,Gilpin,Colorado,08047,1,0 +2020-04-30,Gilpin,Colorado,08047,1,0 +2020-05-01,Gilpin,Colorado,08047,1,0 +2020-05-02,Gilpin,Colorado,08047,1,0 +2020-05-03,Gilpin,Colorado,08047,1,0 +2020-05-04,Gilpin,Colorado,08047,1,0 +2020-05-05,Gilpin,Colorado,08047,1,0 +2020-05-06,Gilpin,Colorado,08047,1,0 +2020-05-07,Gilpin,Colorado,08047,1,0 +2020-05-08,Gilpin,Colorado,08047,1,0 +2020-05-09,Gilpin,Colorado,08047,3,0 +2020-05-10,Gilpin,Colorado,08047,3,0 +2020-05-11,Gilpin,Colorado,08047,1,0 +2020-05-12,Gilpin,Colorado,08047,1,0 +2020-05-13,Gilpin,Colorado,08047,1,0 +2020-05-14,Gilpin,Colorado,08047,2,0 +2020-05-15,Gilpin,Colorado,08047,3,0 +2020-05-16,Gilpin,Colorado,08047,4,0 +2020-05-17,Gilpin,Colorado,08047,4,0 +2020-05-18,Gilpin,Colorado,08047,4,0 +2020-05-19,Gilpin,Colorado,08047,4,0 +2020-05-20,Gilpin,Colorado,08047,3,0 +2020-05-21,Gilpin,Colorado,08047,3,0 +2020-05-22,Gilpin,Colorado,08047,3,0 +2020-05-23,Gilpin,Colorado,08047,3,0 +2020-05-24,Gilpin,Colorado,08047,3,0 +2020-05-25,Gilpin,Colorado,08047,3,0 +2020-05-26,Gilpin,Colorado,08047,3,0 +2020-05-27,Gilpin,Colorado,08047,3,0 +2020-05-28,Gilpin,Colorado,08047,3,0 +2020-05-29,Gilpin,Colorado,08047,3,0 +2020-05-30,Gilpin,Colorado,08047,3,0 +2020-05-31,Gilpin,Colorado,08047,3,0 +2020-06-01,Gilpin,Colorado,08047,3,0 +2020-06-02,Gilpin,Colorado,08047,3,0 +2020-06-03,Gilpin,Colorado,08047,4,0 +2020-06-04,Gilpin,Colorado,08047,4,0 +2020-06-05,Gilpin,Colorado,08047,4,0 +2020-06-06,Gilpin,Colorado,08047,5,0 +2020-06-07,Gilpin,Colorado,08047,5,0 +2020-06-08,Gilpin,Colorado,08047,5,0 +2020-06-09,Gilpin,Colorado,08047,5,0 +2020-06-10,Gilpin,Colorado,08047,5,0 +2020-06-11,Gilpin,Colorado,08047,5,0 +2020-06-12,Gilpin,Colorado,08047,6,0 +2020-06-13,Gilpin,Colorado,08047,6,0 +2020-06-14,Gilpin,Colorado,08047,6,0 +2020-06-15,Gilpin,Colorado,08047,6,0 +2020-06-16,Gilpin,Colorado,08047,6,0 +2020-06-17,Gilpin,Colorado,08047,6,0 +2020-06-18,Gilpin,Colorado,08047,6,0 +2020-06-19,Gilpin,Colorado,08047,6,0 +2020-06-20,Gilpin,Colorado,08047,6,0 +2020-06-21,Gilpin,Colorado,08047,6,0 +2020-06-22,Gilpin,Colorado,08047,6,0 +2020-06-23,Gilpin,Colorado,08047,6,0 +2020-06-24,Gilpin,Colorado,08047,6,0 +2020-06-25,Gilpin,Colorado,08047,7,0 +2020-06-26,Gilpin,Colorado,08047,7,0 +2020-06-27,Gilpin,Colorado,08047,7,0 +2020-06-28,Gilpin,Colorado,08047,7,0 +2020-06-29,Gilpin,Colorado,08047,7,0 +2020-06-30,Gilpin,Colorado,08047,7,0 +2020-07-01,Gilpin,Colorado,08047,7,0 +2020-07-02,Gilpin,Colorado,08047,7,0 +2020-07-03,Gilpin,Colorado,08047,7,0 +2020-07-04,Gilpin,Colorado,08047,7,0 +2020-07-05,Gilpin,Colorado,08047,8,0 +2020-07-06,Gilpin,Colorado,08047,8,0 +2020-07-07,Gilpin,Colorado,08047,8,0 +2020-07-08,Gilpin,Colorado,08047,8,0 +2020-07-09,Gilpin,Colorado,08047,8,0 +2020-03-19,Grand,Colorado,08049,1,0 +2020-03-20,Grand,Colorado,08049,2,0 +2020-03-21,Grand,Colorado,08049,2,0 +2020-03-22,Grand,Colorado,08049,2,0 +2020-03-23,Grand,Colorado,08049,2,0 +2020-03-24,Grand,Colorado,08049,2,0 +2020-03-25,Grand,Colorado,08049,2,0 +2020-03-26,Grand,Colorado,08049,2,0 +2020-03-27,Grand,Colorado,08049,2,0 +2020-03-28,Grand,Colorado,08049,2,0 +2020-03-29,Grand,Colorado,08049,2,0 +2020-03-30,Grand,Colorado,08049,4,0 +2020-03-31,Grand,Colorado,08049,4,0 +2020-04-01,Grand,Colorado,08049,4,0 +2020-04-02,Grand,Colorado,08049,4,0 +2020-04-03,Grand,Colorado,08049,4,0 +2020-04-04,Grand,Colorado,08049,4,0 +2020-04-05,Grand,Colorado,08049,4,0 +2020-04-06,Grand,Colorado,08049,4,0 +2020-04-07,Grand,Colorado,08049,4,0 +2020-04-08,Grand,Colorado,08049,4,0 +2020-04-09,Grand,Colorado,08049,4,0 +2020-04-10,Grand,Colorado,08049,4,0 +2020-04-11,Grand,Colorado,08049,4,0 +2020-04-12,Grand,Colorado,08049,4,0 +2020-04-13,Grand,Colorado,08049,4,0 +2020-04-14,Grand,Colorado,08049,4,0 +2020-04-15,Grand,Colorado,08049,4,0 +2020-04-16,Grand,Colorado,08049,4,0 +2020-04-17,Grand,Colorado,08049,4,0 +2020-04-18,Grand,Colorado,08049,4,0 +2020-04-19,Grand,Colorado,08049,4,0 +2020-04-20,Grand,Colorado,08049,4,0 +2020-04-21,Grand,Colorado,08049,5,0 +2020-04-22,Grand,Colorado,08049,5,0 +2020-04-23,Grand,Colorado,08049,5,0 +2020-04-24,Grand,Colorado,08049,5,0 +2020-04-25,Grand,Colorado,08049,5,0 +2020-04-26,Grand,Colorado,08049,5,0 +2020-04-27,Grand,Colorado,08049,5,0 +2020-04-28,Grand,Colorado,08049,5,0 +2020-04-29,Grand,Colorado,08049,5,0 +2020-04-30,Grand,Colorado,08049,5,0 +2020-05-01,Grand,Colorado,08049,5,0 +2020-05-02,Grand,Colorado,08049,5,0 +2020-05-03,Grand,Colorado,08049,5,0 +2020-05-04,Grand,Colorado,08049,5,0 +2020-05-05,Grand,Colorado,08049,5,0 +2020-05-06,Grand,Colorado,08049,5,0 +2020-05-07,Grand,Colorado,08049,5,0 +2020-05-08,Grand,Colorado,08049,5,0 +2020-05-09,Grand,Colorado,08049,5,0 +2020-05-10,Grand,Colorado,08049,5,0 +2020-05-11,Grand,Colorado,08049,5,0 +2020-05-12,Grand,Colorado,08049,5,0 +2020-05-13,Grand,Colorado,08049,5,0 +2020-05-14,Grand,Colorado,08049,5,0 +2020-05-15,Grand,Colorado,08049,5,0 +2020-05-16,Grand,Colorado,08049,5,0 +2020-05-17,Grand,Colorado,08049,5,0 +2020-05-18,Grand,Colorado,08049,5,0 +2020-05-19,Grand,Colorado,08049,5,0 +2020-05-20,Grand,Colorado,08049,5,0 +2020-05-21,Grand,Colorado,08049,5,0 +2020-05-22,Grand,Colorado,08049,5,0 +2020-05-23,Grand,Colorado,08049,6,0 +2020-05-24,Grand,Colorado,08049,6,0 +2020-05-25,Grand,Colorado,08049,7,0 +2020-05-26,Grand,Colorado,08049,7,0 +2020-05-27,Grand,Colorado,08049,8,0 +2020-05-28,Grand,Colorado,08049,10,0 +2020-05-29,Grand,Colorado,08049,12,0 +2020-05-30,Grand,Colorado,08049,14,0 +2020-05-31,Grand,Colorado,08049,14,0 +2020-06-01,Grand,Colorado,08049,14,0 +2020-06-02,Grand,Colorado,08049,15,0 +2020-06-03,Grand,Colorado,08049,15,0 +2020-06-04,Grand,Colorado,08049,15,0 +2020-06-05,Grand,Colorado,08049,15,0 +2020-06-06,Grand,Colorado,08049,15,0 +2020-06-07,Grand,Colorado,08049,15,0 +2020-06-08,Grand,Colorado,08049,15,0 +2020-06-09,Grand,Colorado,08049,15,0 +2020-06-10,Grand,Colorado,08049,15,0 +2020-06-11,Grand,Colorado,08049,15,0 +2020-06-12,Grand,Colorado,08049,15,0 +2020-06-13,Grand,Colorado,08049,15,0 +2020-06-14,Grand,Colorado,08049,16,0 +2020-06-15,Grand,Colorado,08049,17,0 +2020-06-16,Grand,Colorado,08049,17,0 +2020-06-17,Grand,Colorado,08049,17,0 +2020-06-18,Grand,Colorado,08049,17,0 +2020-06-19,Grand,Colorado,08049,18,0 +2020-06-20,Grand,Colorado,08049,18,0 +2020-06-21,Grand,Colorado,08049,19,0 +2020-06-22,Grand,Colorado,08049,18,0 +2020-06-23,Grand,Colorado,08049,18,0 +2020-06-24,Grand,Colorado,08049,18,0 +2020-06-25,Grand,Colorado,08049,18,0 +2020-06-26,Grand,Colorado,08049,18,0 +2020-06-27,Grand,Colorado,08049,18,0 +2020-06-28,Grand,Colorado,08049,19,0 +2020-06-29,Grand,Colorado,08049,21,1 +2020-06-30,Grand,Colorado,08049,21,1 +2020-07-01,Grand,Colorado,08049,21,1 +2020-07-02,Grand,Colorado,08049,21,1 +2020-07-03,Grand,Colorado,08049,21,1 +2020-07-04,Grand,Colorado,08049,21,1 +2020-07-05,Grand,Colorado,08049,21,1 +2020-07-06,Grand,Colorado,08049,21,1 +2020-07-07,Grand,Colorado,08049,23,1 +2020-07-08,Grand,Colorado,08049,23,1 +2020-07-09,Grand,Colorado,08049,23,1 +2020-03-10,Gunnison,Colorado,08051,1,0 +2020-03-11,Gunnison,Colorado,08051,3,0 +2020-03-12,Gunnison,Colorado,08051,4,0 +2020-03-13,Gunnison,Colorado,08051,5,0 +2020-03-14,Gunnison,Colorado,08051,7,0 +2020-03-15,Gunnison,Colorado,08051,9,0 +2020-03-16,Gunnison,Colorado,08051,11,0 +2020-03-17,Gunnison,Colorado,08051,11,0 +2020-03-18,Gunnison,Colorado,08051,11,0 +2020-03-19,Gunnison,Colorado,08051,13,0 +2020-03-20,Gunnison,Colorado,08051,13,0 +2020-03-21,Gunnison,Colorado,08051,18,0 +2020-03-22,Gunnison,Colorado,08051,22,0 +2020-03-23,Gunnison,Colorado,08051,28,1 +2020-03-24,Gunnison,Colorado,08051,40,1 +2020-03-25,Gunnison,Colorado,08051,52,1 +2020-03-26,Gunnison,Colorado,08051,57,1 +2020-03-27,Gunnison,Colorado,08051,66,1 +2020-03-28,Gunnison,Colorado,08051,78,1 +2020-03-29,Gunnison,Colorado,08051,79,1 +2020-03-30,Gunnison,Colorado,08051,80,1 +2020-03-31,Gunnison,Colorado,08051,82,1 +2020-04-01,Gunnison,Colorado,08051,84,1 +2020-04-02,Gunnison,Colorado,08051,86,1 +2020-04-03,Gunnison,Colorado,08051,88,1 +2020-04-04,Gunnison,Colorado,08051,90,1 +2020-04-05,Gunnison,Colorado,08051,93,1 +2020-04-06,Gunnison,Colorado,08051,95,1 +2020-04-07,Gunnison,Colorado,08051,95,1 +2020-04-08,Gunnison,Colorado,08051,98,1 +2020-04-09,Gunnison,Colorado,08051,99,2 +2020-04-10,Gunnison,Colorado,08051,101,2 +2020-04-11,Gunnison,Colorado,08051,102,3 +2020-04-12,Gunnison,Colorado,08051,101,3 +2020-04-13,Gunnison,Colorado,08051,99,3 +2020-04-14,Gunnison,Colorado,08051,99,3 +2020-04-15,Gunnison,Colorado,08051,104,3 +2020-04-16,Gunnison,Colorado,08051,111,3 +2020-04-17,Gunnison,Colorado,08051,112,3 +2020-04-18,Gunnison,Colorado,08051,114,3 +2020-04-19,Gunnison,Colorado,08051,114,3 +2020-04-20,Gunnison,Colorado,08051,117,3 +2020-04-21,Gunnison,Colorado,08051,121,3 +2020-04-22,Gunnison,Colorado,08051,121,4 +2020-04-23,Gunnison,Colorado,08051,121,4 +2020-04-24,Gunnison,Colorado,08051,123,4 +2020-04-25,Gunnison,Colorado,08051,151,4 +2020-04-26,Gunnison,Colorado,08051,158,4 +2020-04-27,Gunnison,Colorado,08051,158,4 +2020-04-28,Gunnison,Colorado,08051,161,4 +2020-04-29,Gunnison,Colorado,08051,161,4 +2020-04-30,Gunnison,Colorado,08051,166,5 +2020-05-01,Gunnison,Colorado,08051,164,5 +2020-05-02,Gunnison,Colorado,08051,165,5 +2020-05-03,Gunnison,Colorado,08051,165,5 +2020-05-04,Gunnison,Colorado,08051,168,5 +2020-05-05,Gunnison,Colorado,08051,168,5 +2020-05-06,Gunnison,Colorado,08051,172,6 +2020-05-07,Gunnison,Colorado,08051,173,6 +2020-05-08,Gunnison,Colorado,08051,173,6 +2020-05-09,Gunnison,Colorado,08051,173,6 +2020-05-10,Gunnison,Colorado,08051,173,6 +2020-05-11,Gunnison,Colorado,08051,173,6 +2020-05-12,Gunnison,Colorado,08051,174,6 +2020-05-13,Gunnison,Colorado,08051,180,6 +2020-05-14,Gunnison,Colorado,08051,182,6 +2020-05-15,Gunnison,Colorado,08051,182,6 +2020-05-16,Gunnison,Colorado,08051,182,6 +2020-05-17,Gunnison,Colorado,08051,183,6 +2020-05-18,Gunnison,Colorado,08051,179,6 +2020-05-19,Gunnison,Colorado,08051,179,6 +2020-05-20,Gunnison,Colorado,08051,176,6 +2020-05-21,Gunnison,Colorado,08051,177,6 +2020-05-22,Gunnison,Colorado,08051,177,6 +2020-05-23,Gunnison,Colorado,08051,178,6 +2020-05-24,Gunnison,Colorado,08051,180,6 +2020-05-25,Gunnison,Colorado,08051,179,6 +2020-05-26,Gunnison,Colorado,08051,179,6 +2020-05-27,Gunnison,Colorado,08051,179,6 +2020-05-28,Gunnison,Colorado,08051,179,6 +2020-05-29,Gunnison,Colorado,08051,179,6 +2020-05-30,Gunnison,Colorado,08051,177,6 +2020-05-31,Gunnison,Colorado,08051,177,6 +2020-06-01,Gunnison,Colorado,08051,177,6 +2020-06-02,Gunnison,Colorado,08051,178,6 +2020-06-03,Gunnison,Colorado,08051,178,6 +2020-06-04,Gunnison,Colorado,08051,178,6 +2020-06-05,Gunnison,Colorado,08051,178,6 +2020-06-06,Gunnison,Colorado,08051,178,6 +2020-06-07,Gunnison,Colorado,08051,179,6 +2020-06-08,Gunnison,Colorado,08051,180,6 +2020-06-09,Gunnison,Colorado,08051,181,6 +2020-06-10,Gunnison,Colorado,08051,181,6 +2020-06-11,Gunnison,Colorado,08051,181,6 +2020-06-12,Gunnison,Colorado,08051,181,6 +2020-06-13,Gunnison,Colorado,08051,181,6 +2020-06-14,Gunnison,Colorado,08051,181,6 +2020-06-15,Gunnison,Colorado,08051,181,6 +2020-06-16,Gunnison,Colorado,08051,182,6 +2020-06-17,Gunnison,Colorado,08051,182,6 +2020-06-18,Gunnison,Colorado,08051,181,6 +2020-06-19,Gunnison,Colorado,08051,182,6 +2020-06-20,Gunnison,Colorado,08051,182,6 +2020-06-21,Gunnison,Colorado,08051,182,6 +2020-06-22,Gunnison,Colorado,08051,182,6 +2020-06-23,Gunnison,Colorado,08051,184,6 +2020-06-24,Gunnison,Colorado,08051,186,6 +2020-06-25,Gunnison,Colorado,08051,186,6 +2020-06-26,Gunnison,Colorado,08051,186,6 +2020-06-27,Gunnison,Colorado,08051,186,6 +2020-06-28,Gunnison,Colorado,08051,186,6 +2020-06-29,Gunnison,Colorado,08051,186,6 +2020-06-30,Gunnison,Colorado,08051,187,6 +2020-07-01,Gunnison,Colorado,08051,188,6 +2020-07-02,Gunnison,Colorado,08051,188,6 +2020-07-03,Gunnison,Colorado,08051,188,6 +2020-07-04,Gunnison,Colorado,08051,189,6 +2020-07-05,Gunnison,Colorado,08051,189,6 +2020-07-06,Gunnison,Colorado,08051,189,6 +2020-07-07,Gunnison,Colorado,08051,189,6 +2020-07-08,Gunnison,Colorado,08051,190,6 +2020-07-09,Gunnison,Colorado,08051,190,6 +2020-03-21,Hinsdale,Colorado,08053,1,0 +2020-03-22,Hinsdale,Colorado,08053,1,0 +2020-03-23,Hinsdale,Colorado,08053,1,0 +2020-03-24,Hinsdale,Colorado,08053,1,0 +2020-03-25,Hinsdale,Colorado,08053,1,0 +2020-03-26,Hinsdale,Colorado,08053,1,0 +2020-03-27,Hinsdale,Colorado,08053,1,0 +2020-03-28,Hinsdale,Colorado,08053,1,0 +2020-03-29,Hinsdale,Colorado,08053,1,0 +2020-03-30,Hinsdale,Colorado,08053,1,0 +2020-03-31,Hinsdale,Colorado,08053,1,0 +2020-04-01,Hinsdale,Colorado,08053,1,0 +2020-04-02,Hinsdale,Colorado,08053,1,0 +2020-04-03,Hinsdale,Colorado,08053,1,0 +2020-04-04,Hinsdale,Colorado,08053,1,0 +2020-04-05,Hinsdale,Colorado,08053,1,0 +2020-04-06,Hinsdale,Colorado,08053,1,0 +2020-04-07,Hinsdale,Colorado,08053,1,0 +2020-04-08,Hinsdale,Colorado,08053,1,0 +2020-04-09,Hinsdale,Colorado,08053,1,0 +2020-04-10,Hinsdale,Colorado,08053,1,0 +2020-04-11,Hinsdale,Colorado,08053,1,0 +2020-04-12,Hinsdale,Colorado,08053,2,0 +2020-04-13,Hinsdale,Colorado,08053,2,0 +2020-04-14,Hinsdale,Colorado,08053,3,0 +2020-04-15,Hinsdale,Colorado,08053,3,0 +2020-04-16,Hinsdale,Colorado,08053,3,0 +2020-04-17,Hinsdale,Colorado,08053,3,0 +2020-04-18,Hinsdale,Colorado,08053,3,0 +2020-04-19,Hinsdale,Colorado,08053,3,0 +2020-04-20,Hinsdale,Colorado,08053,3,0 +2020-04-21,Hinsdale,Colorado,08053,3,0 +2020-04-22,Hinsdale,Colorado,08053,3,0 +2020-04-23,Hinsdale,Colorado,08053,3,0 +2020-04-24,Hinsdale,Colorado,08053,3,0 +2020-04-25,Hinsdale,Colorado,08053,3,0 +2020-04-26,Hinsdale,Colorado,08053,3,0 +2020-04-27,Hinsdale,Colorado,08053,3,0 +2020-04-28,Hinsdale,Colorado,08053,3,0 +2020-04-29,Hinsdale,Colorado,08053,3,0 +2020-04-30,Hinsdale,Colorado,08053,3,0 +2020-05-01,Hinsdale,Colorado,08053,3,0 +2020-05-02,Hinsdale,Colorado,08053,3,0 +2020-05-03,Hinsdale,Colorado,08053,3,0 +2020-05-04,Hinsdale,Colorado,08053,3,0 +2020-05-05,Hinsdale,Colorado,08053,3,0 +2020-05-06,Hinsdale,Colorado,08053,3,0 +2020-05-07,Hinsdale,Colorado,08053,3,0 +2020-05-08,Hinsdale,Colorado,08053,3,0 +2020-05-09,Hinsdale,Colorado,08053,3,0 +2020-05-10,Hinsdale,Colorado,08053,3,0 +2020-05-11,Hinsdale,Colorado,08053,3,0 +2020-05-12,Hinsdale,Colorado,08053,3,0 +2020-05-13,Hinsdale,Colorado,08053,3,0 +2020-05-14,Hinsdale,Colorado,08053,3,0 +2020-05-15,Hinsdale,Colorado,08053,3,0 +2020-05-16,Hinsdale,Colorado,08053,3,0 +2020-05-17,Hinsdale,Colorado,08053,3,0 +2020-05-18,Hinsdale,Colorado,08053,3,0 +2020-05-19,Hinsdale,Colorado,08053,3,0 +2020-05-20,Hinsdale,Colorado,08053,3,0 +2020-05-21,Hinsdale,Colorado,08053,3,0 +2020-05-22,Hinsdale,Colorado,08053,3,0 +2020-05-23,Hinsdale,Colorado,08053,3,0 +2020-05-24,Hinsdale,Colorado,08053,3,0 +2020-05-25,Hinsdale,Colorado,08053,3,0 +2020-05-26,Hinsdale,Colorado,08053,3,0 +2020-05-27,Hinsdale,Colorado,08053,3,0 +2020-05-28,Hinsdale,Colorado,08053,3,0 +2020-05-29,Hinsdale,Colorado,08053,3,0 +2020-05-30,Hinsdale,Colorado,08053,3,0 +2020-05-31,Hinsdale,Colorado,08053,3,0 +2020-06-01,Hinsdale,Colorado,08053,3,0 +2020-06-02,Hinsdale,Colorado,08053,3,0 +2020-06-03,Hinsdale,Colorado,08053,3,0 +2020-06-04,Hinsdale,Colorado,08053,3,0 +2020-06-05,Hinsdale,Colorado,08053,3,0 +2020-06-06,Hinsdale,Colorado,08053,3,0 +2020-06-07,Hinsdale,Colorado,08053,3,0 +2020-06-08,Hinsdale,Colorado,08053,3,0 +2020-06-09,Hinsdale,Colorado,08053,3,0 +2020-06-10,Hinsdale,Colorado,08053,3,0 +2020-06-11,Hinsdale,Colorado,08053,3,0 +2020-06-12,Hinsdale,Colorado,08053,3,0 +2020-06-13,Hinsdale,Colorado,08053,3,0 +2020-06-14,Hinsdale,Colorado,08053,3,0 +2020-06-15,Hinsdale,Colorado,08053,3,0 +2020-06-16,Hinsdale,Colorado,08053,3,0 +2020-06-17,Hinsdale,Colorado,08053,3,0 +2020-06-18,Hinsdale,Colorado,08053,3,0 +2020-06-19,Hinsdale,Colorado,08053,3,0 +2020-06-20,Hinsdale,Colorado,08053,3,0 +2020-06-21,Hinsdale,Colorado,08053,3,0 +2020-06-22,Hinsdale,Colorado,08053,3,0 +2020-06-23,Hinsdale,Colorado,08053,3,0 +2020-06-24,Hinsdale,Colorado,08053,3,0 +2020-06-25,Hinsdale,Colorado,08053,3,0 +2020-06-26,Hinsdale,Colorado,08053,3,0 +2020-06-27,Hinsdale,Colorado,08053,3,0 +2020-06-28,Hinsdale,Colorado,08053,3,0 +2020-06-29,Hinsdale,Colorado,08053,3,0 +2020-06-30,Hinsdale,Colorado,08053,3,0 +2020-07-01,Hinsdale,Colorado,08053,3,0 +2020-07-02,Hinsdale,Colorado,08053,3,0 +2020-07-03,Hinsdale,Colorado,08053,3,0 +2020-07-04,Hinsdale,Colorado,08053,3,0 +2020-07-05,Hinsdale,Colorado,08053,3,0 +2020-07-06,Hinsdale,Colorado,08053,3,0 +2020-07-07,Hinsdale,Colorado,08053,3,0 +2020-07-08,Hinsdale,Colorado,08053,3,0 +2020-07-09,Hinsdale,Colorado,08053,3,0 +2020-03-24,Huerfano,Colorado,08055,1,0 +2020-03-25,Huerfano,Colorado,08055,1,0 +2020-03-26,Huerfano,Colorado,08055,1,0 +2020-03-27,Huerfano,Colorado,08055,1,0 +2020-03-28,Huerfano,Colorado,08055,1,0 +2020-03-29,Huerfano,Colorado,08055,1,0 +2020-03-30,Huerfano,Colorado,08055,1,0 +2020-03-31,Huerfano,Colorado,08055,1,0 +2020-04-01,Huerfano,Colorado,08055,1,0 +2020-04-02,Huerfano,Colorado,08055,1,0 +2020-04-03,Huerfano,Colorado,08055,1,0 +2020-04-04,Huerfano,Colorado,08055,1,0 +2020-04-05,Huerfano,Colorado,08055,1,0 +2020-04-06,Huerfano,Colorado,08055,1,0 +2020-04-07,Huerfano,Colorado,08055,1,0 +2020-04-08,Huerfano,Colorado,08055,1,0 +2020-04-09,Huerfano,Colorado,08055,1,0 +2020-04-10,Huerfano,Colorado,08055,1,0 +2020-04-11,Huerfano,Colorado,08055,1,0 +2020-04-12,Huerfano,Colorado,08055,1,0 +2020-04-13,Huerfano,Colorado,08055,1,0 +2020-04-14,Huerfano,Colorado,08055,1,0 +2020-04-15,Huerfano,Colorado,08055,1,0 +2020-04-16,Huerfano,Colorado,08055,1,0 +2020-04-17,Huerfano,Colorado,08055,1,0 +2020-04-18,Huerfano,Colorado,08055,1,0 +2020-04-19,Huerfano,Colorado,08055,1,0 +2020-04-20,Huerfano,Colorado,08055,1,0 +2020-04-21,Huerfano,Colorado,08055,1,0 +2020-04-22,Huerfano,Colorado,08055,1,0 +2020-04-23,Huerfano,Colorado,08055,1,0 +2020-04-24,Huerfano,Colorado,08055,1,0 +2020-04-25,Huerfano,Colorado,08055,2,0 +2020-04-26,Huerfano,Colorado,08055,2,0 +2020-04-27,Huerfano,Colorado,08055,2,0 +2020-04-28,Huerfano,Colorado,08055,2,0 +2020-04-29,Huerfano,Colorado,08055,2,0 +2020-04-30,Huerfano,Colorado,08055,2,0 +2020-05-01,Huerfano,Colorado,08055,2,0 +2020-05-02,Huerfano,Colorado,08055,2,0 +2020-05-03,Huerfano,Colorado,08055,2,0 +2020-05-04,Huerfano,Colorado,08055,2,0 +2020-05-05,Huerfano,Colorado,08055,2,0 +2020-05-06,Huerfano,Colorado,08055,2,0 +2020-05-07,Huerfano,Colorado,08055,2,0 +2020-05-08,Huerfano,Colorado,08055,3,0 +2020-05-09,Huerfano,Colorado,08055,3,0 +2020-05-10,Huerfano,Colorado,08055,3,0 +2020-05-11,Huerfano,Colorado,08055,3,0 +2020-05-12,Huerfano,Colorado,08055,3,0 +2020-05-13,Huerfano,Colorado,08055,3,0 +2020-05-14,Huerfano,Colorado,08055,3,0 +2020-05-15,Huerfano,Colorado,08055,3,0 +2020-05-16,Huerfano,Colorado,08055,3,0 +2020-05-17,Huerfano,Colorado,08055,3,0 +2020-05-18,Huerfano,Colorado,08055,3,0 +2020-05-19,Huerfano,Colorado,08055,3,0 +2020-05-20,Huerfano,Colorado,08055,3,0 +2020-05-21,Huerfano,Colorado,08055,3,0 +2020-05-22,Huerfano,Colorado,08055,3,0 +2020-05-23,Huerfano,Colorado,08055,3,0 +2020-05-24,Huerfano,Colorado,08055,3,0 +2020-05-25,Huerfano,Colorado,08055,3,0 +2020-05-26,Huerfano,Colorado,08055,3,0 +2020-05-27,Huerfano,Colorado,08055,3,0 +2020-05-28,Huerfano,Colorado,08055,3,0 +2020-05-29,Huerfano,Colorado,08055,3,0 +2020-05-30,Huerfano,Colorado,08055,3,0 +2020-05-31,Huerfano,Colorado,08055,3,0 +2020-06-01,Huerfano,Colorado,08055,3,0 +2020-06-02,Huerfano,Colorado,08055,3,0 +2020-06-03,Huerfano,Colorado,08055,3,0 +2020-06-04,Huerfano,Colorado,08055,3,0 +2020-06-05,Huerfano,Colorado,08055,3,0 +2020-06-06,Huerfano,Colorado,08055,3,0 +2020-06-07,Huerfano,Colorado,08055,3,0 +2020-06-08,Huerfano,Colorado,08055,3,0 +2020-06-09,Huerfano,Colorado,08055,3,0 +2020-06-10,Huerfano,Colorado,08055,3,0 +2020-06-11,Huerfano,Colorado,08055,3,0 +2020-06-12,Huerfano,Colorado,08055,3,0 +2020-06-13,Huerfano,Colorado,08055,3,0 +2020-06-14,Huerfano,Colorado,08055,3,0 +2020-06-15,Huerfano,Colorado,08055,3,0 +2020-06-16,Huerfano,Colorado,08055,3,0 +2020-06-17,Huerfano,Colorado,08055,3,0 +2020-06-18,Huerfano,Colorado,08055,3,0 +2020-06-19,Huerfano,Colorado,08055,3,0 +2020-06-20,Huerfano,Colorado,08055,4,0 +2020-06-21,Huerfano,Colorado,08055,4,0 +2020-06-22,Huerfano,Colorado,08055,4,0 +2020-06-23,Huerfano,Colorado,08055,4,0 +2020-06-24,Huerfano,Colorado,08055,4,0 +2020-06-25,Huerfano,Colorado,08055,4,0 +2020-06-26,Huerfano,Colorado,08055,4,0 +2020-06-27,Huerfano,Colorado,08055,4,0 +2020-06-28,Huerfano,Colorado,08055,4,0 +2020-06-29,Huerfano,Colorado,08055,4,0 +2020-06-30,Huerfano,Colorado,08055,4,0 +2020-07-01,Huerfano,Colorado,08055,4,1 +2020-07-02,Huerfano,Colorado,08055,4,1 +2020-07-03,Huerfano,Colorado,08055,4,1 +2020-07-04,Huerfano,Colorado,08055,4,1 +2020-07-05,Huerfano,Colorado,08055,4,1 +2020-07-06,Huerfano,Colorado,08055,4,1 +2020-07-07,Huerfano,Colorado,08055,4,1 +2020-07-08,Huerfano,Colorado,08055,4,1 +2020-07-09,Huerfano,Colorado,08055,4,1 +2020-06-25,Jackson,Colorado,08057,1,0 +2020-06-26,Jackson,Colorado,08057,1,0 +2020-06-27,Jackson,Colorado,08057,1,0 +2020-06-28,Jackson,Colorado,08057,1,0 +2020-06-29,Jackson,Colorado,08057,1,0 +2020-06-30,Jackson,Colorado,08057,2,0 +2020-07-01,Jackson,Colorado,08057,2,0 +2020-07-02,Jackson,Colorado,08057,2,0 +2020-07-03,Jackson,Colorado,08057,2,0 +2020-07-04,Jackson,Colorado,08057,2,0 +2020-07-05,Jackson,Colorado,08057,2,0 +2020-07-06,Jackson,Colorado,08057,2,0 +2020-07-07,Jackson,Colorado,08057,2,0 +2020-07-08,Jackson,Colorado,08057,2,0 +2020-07-09,Jackson,Colorado,08057,2,0 +2020-03-05,Jefferson,Colorado,08059,1,0 +2020-03-06,Jefferson,Colorado,08059,1,0 +2020-03-07,Jefferson,Colorado,08059,1,0 +2020-03-08,Jefferson,Colorado,08059,1,0 +2020-03-09,Jefferson,Colorado,08059,1,0 +2020-03-10,Jefferson,Colorado,08059,2,0 +2020-03-11,Jefferson,Colorado,08059,4,0 +2020-03-12,Jefferson,Colorado,08059,5,0 +2020-03-13,Jefferson,Colorado,08059,7,0 +2020-03-14,Jefferson,Colorado,08059,9,0 +2020-03-15,Jefferson,Colorado,08059,12,0 +2020-03-16,Jefferson,Colorado,08059,17,0 +2020-03-17,Jefferson,Colorado,08059,17,0 +2020-03-18,Jefferson,Colorado,08059,25,0 +2020-03-19,Jefferson,Colorado,08059,36,0 +2020-03-20,Jefferson,Colorado,08059,37,0 +2020-03-21,Jefferson,Colorado,08059,43,0 +2020-03-22,Jefferson,Colorado,08059,51,0 +2020-03-23,Jefferson,Colorado,08059,55,0 +2020-03-24,Jefferson,Colorado,08059,73,0 +2020-03-25,Jefferson,Colorado,08059,93,2 +2020-03-26,Jefferson,Colorado,08059,131,3 +2020-03-27,Jefferson,Colorado,08059,158,5 +2020-03-28,Jefferson,Colorado,08059,182,5 +2020-03-29,Jefferson,Colorado,08059,213,5 +2020-03-30,Jefferson,Colorado,08059,253,5 +2020-03-31,Jefferson,Colorado,08059,304,6 +2020-04-01,Jefferson,Colorado,08059,356,7 +2020-04-02,Jefferson,Colorado,08059,385,9 +2020-04-03,Jefferson,Colorado,08059,440,13 +2020-04-04,Jefferson,Colorado,08059,483,15 +2020-04-05,Jefferson,Colorado,08059,519,17 +2020-04-06,Jefferson,Colorado,08059,540,18 +2020-04-07,Jefferson,Colorado,08059,579,21 +2020-04-08,Jefferson,Colorado,08059,610,23 +2020-04-09,Jefferson,Colorado,08059,660,25 +2020-04-10,Jefferson,Colorado,08059,683,25 +2020-04-11,Jefferson,Colorado,08059,713,25 +2020-04-12,Jefferson,Colorado,08059,763,29 +2020-04-13,Jefferson,Colorado,08059,787,30 +2020-04-14,Jefferson,Colorado,08059,809,31 +2020-04-15,Jefferson,Colorado,08059,837,32 +2020-04-16,Jefferson,Colorado,08059,860,33 +2020-04-17,Jefferson,Colorado,08059,888,35 +2020-04-18,Jefferson,Colorado,08059,930,36 +2020-04-19,Jefferson,Colorado,08059,957,36 +2020-04-20,Jefferson,Colorado,08059,987,36 +2020-04-21,Jefferson,Colorado,08059,1011,40 +2020-04-22,Jefferson,Colorado,08059,1064,43 +2020-04-23,Jefferson,Colorado,08059,1075,53 +2020-04-24,Jefferson,Colorado,08059,1157,61 +2020-04-25,Jefferson,Colorado,08059,1236,61 +2020-04-26,Jefferson,Colorado,08059,1265,61 +2020-04-27,Jefferson,Colorado,08059,1276,65 +2020-04-28,Jefferson,Colorado,08059,1298,68 +2020-04-29,Jefferson,Colorado,08059,1314,73 +2020-04-30,Jefferson,Colorado,08059,1338,73 +2020-05-01,Jefferson,Colorado,08059,1373,80 +2020-05-02,Jefferson,Colorado,08059,1384,81 +2020-05-03,Jefferson,Colorado,08059,1405,83 +2020-05-04,Jefferson,Colorado,08059,1431,85 +2020-05-05,Jefferson,Colorado,08059,1466,88 +2020-05-06,Jefferson,Colorado,08059,1507,87 +2020-05-07,Jefferson,Colorado,08059,1542,90 +2020-05-08,Jefferson,Colorado,08059,1574,93 +2020-05-09,Jefferson,Colorado,08059,1627,94 +2020-05-10,Jefferson,Colorado,08059,1649,94 +2020-05-11,Jefferson,Colorado,08059,1658,94 +2020-05-12,Jefferson,Colorado,08059,1678,97 +2020-05-13,Jefferson,Colorado,08059,1716,105 +2020-05-14,Jefferson,Colorado,08059,1748,107 +2020-05-15,Jefferson,Colorado,08059,1775,118 +2020-05-16,Jefferson,Colorado,08059,1800,122 +2020-05-17,Jefferson,Colorado,08059,1831,126 +2020-05-18,Jefferson,Colorado,08059,1849,128 +2020-05-19,Jefferson,Colorado,08059,1882,130 +2020-05-20,Jefferson,Colorado,08059,1932,136 +2020-05-21,Jefferson,Colorado,08059,1974,140 +2020-05-22,Jefferson,Colorado,08059,1999,142 +2020-05-23,Jefferson,Colorado,08059,2030,142 +2020-05-24,Jefferson,Colorado,08059,2040,144 +2020-05-25,Jefferson,Colorado,08059,2061,146 +2020-05-26,Jefferson,Colorado,08059,2090,147 +2020-05-27,Jefferson,Colorado,08059,2098,157 +2020-05-28,Jefferson,Colorado,08059,2123,164 +2020-05-29,Jefferson,Colorado,08059,2171,169 +2020-05-30,Jefferson,Colorado,08059,2196,171 +2020-05-31,Jefferson,Colorado,08059,2221,171 +2020-06-01,Jefferson,Colorado,08059,2244,171 +2020-06-02,Jefferson,Colorado,08059,2266,172 +2020-06-03,Jefferson,Colorado,08059,2294,172 +2020-06-04,Jefferson,Colorado,08059,2310,177 +2020-06-05,Jefferson,Colorado,08059,2343,179 +2020-06-06,Jefferson,Colorado,08059,2370,180 +2020-06-07,Jefferson,Colorado,08059,2373,180 +2020-06-08,Jefferson,Colorado,08059,2384,182 +2020-06-09,Jefferson,Colorado,08059,2398,185 +2020-06-10,Jefferson,Colorado,08059,2424,189 +2020-06-11,Jefferson,Colorado,08059,2436,192 +2020-06-12,Jefferson,Colorado,08059,2445,197 +2020-06-13,Jefferson,Colorado,08059,2458,197 +2020-06-14,Jefferson,Colorado,08059,2458,197 +2020-06-15,Jefferson,Colorado,08059,2466,198 +2020-06-16,Jefferson,Colorado,08059,2477,198 +2020-06-17,Jefferson,Colorado,08059,2488,200 +2020-06-18,Jefferson,Colorado,08059,2508,202 +2020-06-19,Jefferson,Colorado,08059,2522,203 +2020-06-20,Jefferson,Colorado,08059,2526,203 +2020-06-21,Jefferson,Colorado,08059,2532,203 +2020-06-22,Jefferson,Colorado,08059,2543,205 +2020-06-23,Jefferson,Colorado,08059,2555,206 +2020-06-24,Jefferson,Colorado,08059,2569,207 +2020-06-25,Jefferson,Colorado,08059,2594,207 +2020-06-26,Jefferson,Colorado,08059,2616,208 +2020-06-27,Jefferson,Colorado,08059,2633,208 +2020-06-28,Jefferson,Colorado,08059,2656,208 +2020-06-29,Jefferson,Colorado,08059,2671,209 +2020-06-30,Jefferson,Colorado,08059,2682,209 +2020-07-01,Jefferson,Colorado,08059,2711,211 +2020-07-02,Jefferson,Colorado,08059,2746,212 +2020-07-03,Jefferson,Colorado,08059,2764,212 +2020-07-04,Jefferson,Colorado,08059,2776,212 +2020-07-05,Jefferson,Colorado,08059,2788,212 +2020-07-06,Jefferson,Colorado,08059,2801,212 +2020-07-07,Jefferson,Colorado,08059,2842,212 +2020-07-08,Jefferson,Colorado,08059,2887,214 +2020-07-09,Jefferson,Colorado,08059,2922,214 +2020-03-26,Kit Carson,Colorado,08063,1,0 +2020-03-27,Kit Carson,Colorado,08063,2,0 +2020-03-28,Kit Carson,Colorado,08063,1,0 +2020-03-29,Kit Carson,Colorado,08063,1,0 +2020-03-30,Kit Carson,Colorado,08063,1,0 +2020-03-31,Kit Carson,Colorado,08063,2,0 +2020-04-01,Kit Carson,Colorado,08063,4,0 +2020-04-02,Kit Carson,Colorado,08063,4,0 +2020-04-03,Kit Carson,Colorado,08063,4,0 +2020-04-04,Kit Carson,Colorado,08063,5,0 +2020-04-05,Kit Carson,Colorado,08063,5,0 +2020-04-06,Kit Carson,Colorado,08063,5,0 +2020-04-07,Kit Carson,Colorado,08063,5,0 +2020-04-08,Kit Carson,Colorado,08063,5,0 +2020-04-09,Kit Carson,Colorado,08063,6,0 +2020-04-10,Kit Carson,Colorado,08063,6,0 +2020-04-11,Kit Carson,Colorado,08063,7,0 +2020-04-12,Kit Carson,Colorado,08063,8,0 +2020-04-13,Kit Carson,Colorado,08063,8,0 +2020-04-14,Kit Carson,Colorado,08063,8,1 +2020-04-15,Kit Carson,Colorado,08063,8,1 +2020-04-16,Kit Carson,Colorado,08063,13,1 +2020-04-17,Kit Carson,Colorado,08063,13,1 +2020-04-18,Kit Carson,Colorado,08063,14,1 +2020-04-19,Kit Carson,Colorado,08063,18,1 +2020-04-20,Kit Carson,Colorado,08063,18,1 +2020-04-21,Kit Carson,Colorado,08063,18,1 +2020-04-22,Kit Carson,Colorado,08063,18,1 +2020-04-23,Kit Carson,Colorado,08063,18,1 +2020-04-24,Kit Carson,Colorado,08063,19,2 +2020-04-25,Kit Carson,Colorado,08063,19,2 +2020-04-26,Kit Carson,Colorado,08063,20,2 +2020-04-27,Kit Carson,Colorado,08063,20,2 +2020-04-28,Kit Carson,Colorado,08063,20,2 +2020-04-29,Kit Carson,Colorado,08063,20,2 +2020-04-30,Kit Carson,Colorado,08063,21,2 +2020-05-01,Kit Carson,Colorado,08063,21,2 +2020-05-02,Kit Carson,Colorado,08063,21,2 +2020-05-03,Kit Carson,Colorado,08063,21,2 +2020-05-04,Kit Carson,Colorado,08063,21,2 +2020-05-05,Kit Carson,Colorado,08063,22,2 +2020-05-06,Kit Carson,Colorado,08063,24,2 +2020-05-07,Kit Carson,Colorado,08063,24,2 +2020-05-08,Kit Carson,Colorado,08063,24,2 +2020-05-09,Kit Carson,Colorado,08063,26,2 +2020-05-10,Kit Carson,Colorado,08063,26,2 +2020-05-11,Kit Carson,Colorado,08063,25,2 +2020-05-12,Kit Carson,Colorado,08063,25,2 +2020-05-13,Kit Carson,Colorado,08063,25,2 +2020-05-14,Kit Carson,Colorado,08063,25,2 +2020-05-15,Kit Carson,Colorado,08063,26,3 +2020-05-16,Kit Carson,Colorado,08063,26,3 +2020-05-17,Kit Carson,Colorado,08063,26,3 +2020-05-18,Kit Carson,Colorado,08063,26,3 +2020-05-19,Kit Carson,Colorado,08063,26,3 +2020-05-20,Kit Carson,Colorado,08063,26,3 +2020-05-21,Kit Carson,Colorado,08063,26,3 +2020-05-22,Kit Carson,Colorado,08063,26,3 +2020-05-23,Kit Carson,Colorado,08063,26,3 +2020-05-24,Kit Carson,Colorado,08063,26,3 +2020-05-25,Kit Carson,Colorado,08063,26,3 +2020-05-26,Kit Carson,Colorado,08063,26,3 +2020-05-27,Kit Carson,Colorado,08063,26,3 +2020-05-28,Kit Carson,Colorado,08063,26,3 +2020-05-29,Kit Carson,Colorado,08063,26,3 +2020-05-30,Kit Carson,Colorado,08063,26,3 +2020-05-31,Kit Carson,Colorado,08063,26,3 +2020-06-01,Kit Carson,Colorado,08063,26,3 +2020-06-02,Kit Carson,Colorado,08063,26,3 +2020-06-03,Kit Carson,Colorado,08063,26,3 +2020-06-04,Kit Carson,Colorado,08063,30,3 +2020-06-05,Kit Carson,Colorado,08063,30,3 +2020-06-06,Kit Carson,Colorado,08063,30,3 +2020-06-07,Kit Carson,Colorado,08063,30,3 +2020-06-08,Kit Carson,Colorado,08063,30,3 +2020-06-09,Kit Carson,Colorado,08063,30,3 +2020-06-10,Kit Carson,Colorado,08063,30,3 +2020-06-11,Kit Carson,Colorado,08063,30,3 +2020-06-12,Kit Carson,Colorado,08063,30,3 +2020-06-13,Kit Carson,Colorado,08063,30,3 +2020-06-14,Kit Carson,Colorado,08063,31,3 +2020-06-15,Kit Carson,Colorado,08063,31,3 +2020-06-16,Kit Carson,Colorado,08063,31,3 +2020-06-17,Kit Carson,Colorado,08063,31,3 +2020-06-18,Kit Carson,Colorado,08063,31,3 +2020-06-19,Kit Carson,Colorado,08063,31,3 +2020-06-20,Kit Carson,Colorado,08063,31,3 +2020-06-21,Kit Carson,Colorado,08063,31,3 +2020-06-22,Kit Carson,Colorado,08063,31,3 +2020-06-23,Kit Carson,Colorado,08063,31,3 +2020-06-24,Kit Carson,Colorado,08063,31,3 +2020-06-25,Kit Carson,Colorado,08063,31,3 +2020-06-26,Kit Carson,Colorado,08063,31,3 +2020-06-27,Kit Carson,Colorado,08063,31,3 +2020-06-28,Kit Carson,Colorado,08063,31,3 +2020-06-29,Kit Carson,Colorado,08063,31,3 +2020-06-30,Kit Carson,Colorado,08063,32,3 +2020-07-01,Kit Carson,Colorado,08063,33,3 +2020-07-02,Kit Carson,Colorado,08063,33,3 +2020-07-03,Kit Carson,Colorado,08063,33,3 +2020-07-04,Kit Carson,Colorado,08063,33,3 +2020-07-05,Kit Carson,Colorado,08063,33,3 +2020-07-06,Kit Carson,Colorado,08063,33,3 +2020-07-07,Kit Carson,Colorado,08063,33,3 +2020-07-08,Kit Carson,Colorado,08063,35,3 +2020-07-09,Kit Carson,Colorado,08063,35,3 +2020-03-31,Lake,Colorado,08065,1,0 +2020-04-01,Lake,Colorado,08065,2,0 +2020-04-02,Lake,Colorado,08065,2,0 +2020-04-03,Lake,Colorado,08065,3,0 +2020-04-04,Lake,Colorado,08065,3,0 +2020-04-05,Lake,Colorado,08065,3,0 +2020-04-06,Lake,Colorado,08065,3,0 +2020-04-07,Lake,Colorado,08065,3,0 +2020-04-08,Lake,Colorado,08065,3,0 +2020-04-09,Lake,Colorado,08065,4,0 +2020-04-10,Lake,Colorado,08065,4,0 +2020-04-11,Lake,Colorado,08065,4,0 +2020-04-12,Lake,Colorado,08065,4,0 +2020-04-13,Lake,Colorado,08065,4,0 +2020-04-14,Lake,Colorado,08065,5,0 +2020-04-15,Lake,Colorado,08065,5,0 +2020-04-16,Lake,Colorado,08065,8,0 +2020-04-17,Lake,Colorado,08065,8,0 +2020-04-18,Lake,Colorado,08065,8,0 +2020-04-19,Lake,Colorado,08065,8,0 +2020-04-20,Lake,Colorado,08065,8,0 +2020-04-21,Lake,Colorado,08065,8,0 +2020-04-22,Lake,Colorado,08065,9,0 +2020-04-23,Lake,Colorado,08065,10,0 +2020-04-24,Lake,Colorado,08065,12,0 +2020-04-25,Lake,Colorado,08065,16,0 +2020-04-26,Lake,Colorado,08065,17,0 +2020-04-27,Lake,Colorado,08065,17,0 +2020-04-28,Lake,Colorado,08065,17,0 +2020-04-29,Lake,Colorado,08065,17,0 +2020-04-30,Lake,Colorado,08065,18,0 +2020-05-01,Lake,Colorado,08065,19,0 +2020-05-02,Lake,Colorado,08065,20,0 +2020-05-03,Lake,Colorado,08065,20,0 +2020-05-04,Lake,Colorado,08065,21,0 +2020-05-05,Lake,Colorado,08065,21,0 +2020-05-06,Lake,Colorado,08065,21,0 +2020-05-07,Lake,Colorado,08065,23,0 +2020-05-08,Lake,Colorado,08065,23,0 +2020-05-09,Lake,Colorado,08065,23,0 +2020-05-10,Lake,Colorado,08065,23,0 +2020-05-11,Lake,Colorado,08065,23,0 +2020-05-12,Lake,Colorado,08065,23,0 +2020-05-13,Lake,Colorado,08065,23,0 +2020-05-14,Lake,Colorado,08065,23,0 +2020-05-15,Lake,Colorado,08065,24,0 +2020-05-16,Lake,Colorado,08065,26,0 +2020-05-17,Lake,Colorado,08065,26,0 +2020-05-18,Lake,Colorado,08065,26,0 +2020-05-19,Lake,Colorado,08065,26,0 +2020-05-20,Lake,Colorado,08065,27,0 +2020-05-21,Lake,Colorado,08065,27,0 +2020-05-22,Lake,Colorado,08065,27,0 +2020-05-23,Lake,Colorado,08065,27,0 +2020-05-24,Lake,Colorado,08065,27,0 +2020-05-25,Lake,Colorado,08065,27,0 +2020-05-26,Lake,Colorado,08065,27,0 +2020-05-27,Lake,Colorado,08065,27,0 +2020-05-28,Lake,Colorado,08065,27,0 +2020-05-29,Lake,Colorado,08065,29,0 +2020-05-30,Lake,Colorado,08065,29,0 +2020-05-31,Lake,Colorado,08065,31,0 +2020-06-01,Lake,Colorado,08065,31,0 +2020-06-02,Lake,Colorado,08065,31,0 +2020-06-03,Lake,Colorado,08065,32,0 +2020-06-04,Lake,Colorado,08065,34,0 +2020-06-05,Lake,Colorado,08065,35,0 +2020-06-06,Lake,Colorado,08065,36,0 +2020-06-07,Lake,Colorado,08065,37,0 +2020-06-08,Lake,Colorado,08065,38,0 +2020-06-09,Lake,Colorado,08065,38,0 +2020-06-10,Lake,Colorado,08065,38,0 +2020-06-11,Lake,Colorado,08065,38,0 +2020-06-12,Lake,Colorado,08065,38,0 +2020-06-13,Lake,Colorado,08065,38,0 +2020-06-14,Lake,Colorado,08065,39,0 +2020-06-15,Lake,Colorado,08065,39,0 +2020-06-16,Lake,Colorado,08065,39,0 +2020-06-17,Lake,Colorado,08065,40,0 +2020-06-18,Lake,Colorado,08065,42,0 +2020-06-19,Lake,Colorado,08065,46,0 +2020-06-20,Lake,Colorado,08065,46,0 +2020-06-21,Lake,Colorado,08065,48,0 +2020-06-22,Lake,Colorado,08065,48,0 +2020-06-23,Lake,Colorado,08065,48,0 +2020-06-24,Lake,Colorado,08065,48,0 +2020-06-25,Lake,Colorado,08065,50,0 +2020-06-26,Lake,Colorado,08065,50,0 +2020-06-27,Lake,Colorado,08065,50,0 +2020-06-28,Lake,Colorado,08065,51,0 +2020-06-29,Lake,Colorado,08065,51,0 +2020-06-30,Lake,Colorado,08065,51,0 +2020-07-01,Lake,Colorado,08065,51,0 +2020-07-02,Lake,Colorado,08065,51,0 +2020-07-03,Lake,Colorado,08065,51,0 +2020-07-04,Lake,Colorado,08065,52,0 +2020-07-05,Lake,Colorado,08065,52,0 +2020-07-06,Lake,Colorado,08065,52,0 +2020-07-07,Lake,Colorado,08065,51,0 +2020-07-08,Lake,Colorado,08065,52,0 +2020-07-09,Lake,Colorado,08065,52,0 +2020-03-23,La Plata,Colorado,08067,1,0 +2020-03-24,La Plata,Colorado,08067,1,0 +2020-03-25,La Plata,Colorado,08067,1,0 +2020-03-26,La Plata,Colorado,08067,5,0 +2020-03-27,La Plata,Colorado,08067,13,0 +2020-03-28,La Plata,Colorado,08067,17,0 +2020-03-29,La Plata,Colorado,08067,21,0 +2020-03-30,La Plata,Colorado,08067,21,0 +2020-03-31,La Plata,Colorado,08067,23,0 +2020-04-01,La Plata,Colorado,08067,23,0 +2020-04-02,La Plata,Colorado,08067,24,0 +2020-04-03,La Plata,Colorado,08067,25,0 +2020-04-04,La Plata,Colorado,08067,25,0 +2020-04-05,La Plata,Colorado,08067,31,0 +2020-04-06,La Plata,Colorado,08067,32,0 +2020-04-07,La Plata,Colorado,08067,34,0 +2020-04-08,La Plata,Colorado,08067,34,0 +2020-04-09,La Plata,Colorado,08067,37,0 +2020-04-10,La Plata,Colorado,08067,44,0 +2020-04-11,La Plata,Colorado,08067,43,0 +2020-04-12,La Plata,Colorado,08067,44,0 +2020-04-13,La Plata,Colorado,08067,44,0 +2020-04-14,La Plata,Colorado,08067,44,0 +2020-04-15,La Plata,Colorado,08067,46,0 +2020-04-16,La Plata,Colorado,08067,47,0 +2020-04-17,La Plata,Colorado,08067,51,0 +2020-04-18,La Plata,Colorado,08067,52,0 +2020-04-19,La Plata,Colorado,08067,52,0 +2020-04-20,La Plata,Colorado,08067,51,0 +2020-04-21,La Plata,Colorado,08067,51,0 +2020-04-22,La Plata,Colorado,08067,53,0 +2020-04-23,La Plata,Colorado,08067,55,0 +2020-04-24,La Plata,Colorado,08067,56,0 +2020-04-25,La Plata,Colorado,08067,59,0 +2020-04-26,La Plata,Colorado,08067,59,0 +2020-04-27,La Plata,Colorado,08067,59,0 +2020-04-28,La Plata,Colorado,08067,59,0 +2020-04-29,La Plata,Colorado,08067,62,0 +2020-04-30,La Plata,Colorado,08067,62,0 +2020-05-01,La Plata,Colorado,08067,63,0 +2020-05-02,La Plata,Colorado,08067,63,0 +2020-05-03,La Plata,Colorado,08067,63,0 +2020-05-04,La Plata,Colorado,08067,63,0 +2020-05-05,La Plata,Colorado,08067,63,0 +2020-05-06,La Plata,Colorado,08067,63,0 +2020-05-07,La Plata,Colorado,08067,63,0 +2020-05-08,La Plata,Colorado,08067,64,0 +2020-05-09,La Plata,Colorado,08067,65,1 +2020-05-10,La Plata,Colorado,08067,65,1 +2020-05-11,La Plata,Colorado,08067,65,1 +2020-05-12,La Plata,Colorado,08067,66,1 +2020-05-13,La Plata,Colorado,08067,66,1 +2020-05-14,La Plata,Colorado,08067,66,1 +2020-05-15,La Plata,Colorado,08067,66,1 +2020-05-16,La Plata,Colorado,08067,68,1 +2020-05-17,La Plata,Colorado,08067,68,1 +2020-05-18,La Plata,Colorado,08067,68,1 +2020-05-19,La Plata,Colorado,08067,72,1 +2020-05-20,La Plata,Colorado,08067,72,1 +2020-05-21,La Plata,Colorado,08067,83,1 +2020-05-22,La Plata,Colorado,08067,73,1 +2020-05-23,La Plata,Colorado,08067,76,1 +2020-05-24,La Plata,Colorado,08067,77,1 +2020-05-25,La Plata,Colorado,08067,77,1 +2020-05-26,La Plata,Colorado,08067,79,1 +2020-05-27,La Plata,Colorado,08067,77,1 +2020-05-28,La Plata,Colorado,08067,77,1 +2020-05-29,La Plata,Colorado,08067,80,1 +2020-05-30,La Plata,Colorado,08067,80,1 +2020-05-31,La Plata,Colorado,08067,81,1 +2020-06-01,La Plata,Colorado,08067,82,1 +2020-06-02,La Plata,Colorado,08067,82,1 +2020-06-03,La Plata,Colorado,08067,82,1 +2020-06-04,La Plata,Colorado,08067,82,1 +2020-06-05,La Plata,Colorado,08067,82,1 +2020-06-06,La Plata,Colorado,08067,82,1 +2020-06-07,La Plata,Colorado,08067,82,1 +2020-06-08,La Plata,Colorado,08067,82,1 +2020-06-09,La Plata,Colorado,08067,84,1 +2020-06-10,La Plata,Colorado,08067,84,1 +2020-06-11,La Plata,Colorado,08067,84,1 +2020-06-12,La Plata,Colorado,08067,84,1 +2020-06-13,La Plata,Colorado,08067,84,1 +2020-06-14,La Plata,Colorado,08067,84,1 +2020-06-15,La Plata,Colorado,08067,85,1 +2020-06-16,La Plata,Colorado,08067,86,1 +2020-06-17,La Plata,Colorado,08067,85,1 +2020-06-18,La Plata,Colorado,08067,86,1 +2020-06-19,La Plata,Colorado,08067,85,1 +2020-06-20,La Plata,Colorado,08067,86,1 +2020-06-21,La Plata,Colorado,08067,86,1 +2020-06-22,La Plata,Colorado,08067,86,1 +2020-06-23,La Plata,Colorado,08067,88,1 +2020-06-24,La Plata,Colorado,08067,89,1 +2020-06-25,La Plata,Colorado,08067,90,1 +2020-06-26,La Plata,Colorado,08067,94,1 +2020-06-27,La Plata,Colorado,08067,94,1 +2020-06-28,La Plata,Colorado,08067,101,1 +2020-06-29,La Plata,Colorado,08067,106,1 +2020-06-30,La Plata,Colorado,08067,112,1 +2020-07-01,La Plata,Colorado,08067,116,1 +2020-07-02,La Plata,Colorado,08067,116,1 +2020-07-03,La Plata,Colorado,08067,117,1 +2020-07-04,La Plata,Colorado,08067,121,1 +2020-07-05,La Plata,Colorado,08067,123,1 +2020-07-06,La Plata,Colorado,08067,122,1 +2020-07-07,La Plata,Colorado,08067,127,1 +2020-07-08,La Plata,Colorado,08067,130,1 +2020-07-09,La Plata,Colorado,08067,130,1 +2020-03-09,Larimer,Colorado,08069,1,0 +2020-03-10,Larimer,Colorado,08069,1,0 +2020-03-11,Larimer,Colorado,08069,1,0 +2020-03-12,Larimer,Colorado,08069,1,0 +2020-03-13,Larimer,Colorado,08069,1,0 +2020-03-14,Larimer,Colorado,08069,1,0 +2020-03-15,Larimer,Colorado,08069,1,0 +2020-03-16,Larimer,Colorado,08069,2,0 +2020-03-17,Larimer,Colorado,08069,2,0 +2020-03-18,Larimer,Colorado,08069,4,0 +2020-03-19,Larimer,Colorado,08069,5,0 +2020-03-20,Larimer,Colorado,08069,7,0 +2020-03-21,Larimer,Colorado,08069,19,0 +2020-03-22,Larimer,Colorado,08069,32,0 +2020-03-23,Larimer,Colorado,08069,34,0 +2020-03-24,Larimer,Colorado,08069,43,0 +2020-03-25,Larimer,Colorado,08069,45,1 +2020-03-26,Larimer,Colorado,08069,61,1 +2020-03-27,Larimer,Colorado,08069,67,1 +2020-03-28,Larimer,Colorado,08069,79,3 +2020-03-29,Larimer,Colorado,08069,84,3 +2020-03-30,Larimer,Colorado,08069,92,4 +2020-03-31,Larimer,Colorado,08069,99,6 +2020-04-01,Larimer,Colorado,08069,107,7 +2020-04-02,Larimer,Colorado,08069,124,7 +2020-04-03,Larimer,Colorado,08069,134,7 +2020-04-04,Larimer,Colorado,08069,144,8 +2020-04-05,Larimer,Colorado,08069,153,8 +2020-04-06,Larimer,Colorado,08069,158,8 +2020-04-07,Larimer,Colorado,08069,161,8 +2020-04-08,Larimer,Colorado,08069,167,8 +2020-04-09,Larimer,Colorado,08069,174,9 +2020-04-10,Larimer,Colorado,08069,177,9 +2020-04-11,Larimer,Colorado,08069,180,9 +2020-04-12,Larimer,Colorado,08069,187,9 +2020-04-13,Larimer,Colorado,08069,193,9 +2020-04-14,Larimer,Colorado,08069,198,9 +2020-04-15,Larimer,Colorado,08069,202,9 +2020-04-16,Larimer,Colorado,08069,217,9 +2020-04-17,Larimer,Colorado,08069,224,10 +2020-04-18,Larimer,Colorado,08069,231,12 +2020-04-19,Larimer,Colorado,08069,239,12 +2020-04-20,Larimer,Colorado,08069,245,13 +2020-04-21,Larimer,Colorado,08069,250,13 +2020-04-22,Larimer,Colorado,08069,266,14 +2020-04-23,Larimer,Colorado,08069,274,15 +2020-04-24,Larimer,Colorado,08069,291,18 +2020-04-25,Larimer,Colorado,08069,303,18 +2020-04-26,Larimer,Colorado,08069,312,18 +2020-04-27,Larimer,Colorado,08069,321,19 +2020-04-28,Larimer,Colorado,08069,334,19 +2020-04-29,Larimer,Colorado,08069,348,19 +2020-04-30,Larimer,Colorado,08069,363,19 +2020-05-01,Larimer,Colorado,08069,377,19 +2020-05-02,Larimer,Colorado,08069,384,19 +2020-05-03,Larimer,Colorado,08069,395,19 +2020-05-04,Larimer,Colorado,08069,393,19 +2020-05-05,Larimer,Colorado,08069,409,19 +2020-05-06,Larimer,Colorado,08069,415,19 +2020-05-07,Larimer,Colorado,08069,423,19 +2020-05-08,Larimer,Colorado,08069,437,19 +2020-05-09,Larimer,Colorado,08069,444,19 +2020-05-10,Larimer,Colorado,08069,448,19 +2020-05-11,Larimer,Colorado,08069,452,19 +2020-05-12,Larimer,Colorado,08069,455,19 +2020-05-13,Larimer,Colorado,08069,456,19 +2020-05-14,Larimer,Colorado,08069,463,19 +2020-05-15,Larimer,Colorado,08069,472,21 +2020-05-16,Larimer,Colorado,08069,485,21 +2020-05-17,Larimer,Colorado,08069,489,21 +2020-05-18,Larimer,Colorado,08069,495,21 +2020-05-19,Larimer,Colorado,08069,508,21 +2020-05-20,Larimer,Colorado,08069,512,21 +2020-05-21,Larimer,Colorado,08069,517,21 +2020-05-22,Larimer,Colorado,08069,520,21 +2020-05-23,Larimer,Colorado,08069,530,21 +2020-05-24,Larimer,Colorado,08069,537,21 +2020-05-25,Larimer,Colorado,08069,540,21 +2020-05-26,Larimer,Colorado,08069,544,21 +2020-05-27,Larimer,Colorado,08069,552,22 +2020-05-28,Larimer,Colorado,08069,567,27 +2020-05-29,Larimer,Colorado,08069,570,27 +2020-05-30,Larimer,Colorado,08069,576,27 +2020-05-31,Larimer,Colorado,08069,583,27 +2020-06-01,Larimer,Colorado,08069,589,28 +2020-06-02,Larimer,Colorado,08069,589,28 +2020-06-03,Larimer,Colorado,08069,606,28 +2020-06-04,Larimer,Colorado,08069,610,28 +2020-06-05,Larimer,Colorado,08069,613,28 +2020-06-06,Larimer,Colorado,08069,616,28 +2020-06-07,Larimer,Colorado,08069,619,28 +2020-06-08,Larimer,Colorado,08069,628,28 +2020-06-09,Larimer,Colorado,08069,632,28 +2020-06-10,Larimer,Colorado,08069,636,28 +2020-06-11,Larimer,Colorado,08069,635,27 +2020-06-12,Larimer,Colorado,08069,637,27 +2020-06-13,Larimer,Colorado,08069,641,27 +2020-06-14,Larimer,Colorado,08069,647,27 +2020-06-15,Larimer,Colorado,08069,652,27 +2020-06-16,Larimer,Colorado,08069,659,29 +2020-06-17,Larimer,Colorado,08069,658,29 +2020-06-18,Larimer,Colorado,08069,661,29 +2020-06-19,Larimer,Colorado,08069,668,29 +2020-06-20,Larimer,Colorado,08069,673,29 +2020-06-21,Larimer,Colorado,08069,680,29 +2020-06-22,Larimer,Colorado,08069,680,29 +2020-06-23,Larimer,Colorado,08069,683,29 +2020-06-24,Larimer,Colorado,08069,686,29 +2020-06-25,Larimer,Colorado,08069,692,29 +2020-06-26,Larimer,Colorado,08069,701,29 +2020-06-27,Larimer,Colorado,08069,713,29 +2020-06-28,Larimer,Colorado,08069,718,29 +2020-06-29,Larimer,Colorado,08069,723,29 +2020-06-30,Larimer,Colorado,08069,736,29 +2020-07-01,Larimer,Colorado,08069,747,29 +2020-07-02,Larimer,Colorado,08069,757,29 +2020-07-03,Larimer,Colorado,08069,777,29 +2020-07-04,Larimer,Colorado,08069,791,29 +2020-07-05,Larimer,Colorado,08069,803,29 +2020-07-06,Larimer,Colorado,08069,808,29 +2020-07-07,Larimer,Colorado,08069,818,29 +2020-07-08,Larimer,Colorado,08069,843,30 +2020-07-09,Larimer,Colorado,08069,869,30 +2020-04-03,Las Animas,Colorado,08071,1,0 +2020-04-04,Las Animas,Colorado,08071,1,0 +2020-04-05,Las Animas,Colorado,08071,1,0 +2020-04-06,Las Animas,Colorado,08071,1,0 +2020-04-07,Las Animas,Colorado,08071,1,0 +2020-04-08,Las Animas,Colorado,08071,1,0 +2020-04-09,Las Animas,Colorado,08071,2,0 +2020-04-10,Las Animas,Colorado,08071,2,0 +2020-04-11,Las Animas,Colorado,08071,2,0 +2020-04-12,Las Animas,Colorado,08071,2,0 +2020-04-13,Las Animas,Colorado,08071,2,0 +2020-04-14,Las Animas,Colorado,08071,2,0 +2020-04-15,Las Animas,Colorado,08071,2,0 +2020-04-16,Las Animas,Colorado,08071,3,0 +2020-04-17,Las Animas,Colorado,08071,3,0 +2020-04-18,Las Animas,Colorado,08071,3,0 +2020-04-19,Las Animas,Colorado,08071,3,0 +2020-04-20,Las Animas,Colorado,08071,3,0 +2020-04-21,Las Animas,Colorado,08071,3,0 +2020-04-22,Las Animas,Colorado,08071,3,0 +2020-04-23,Las Animas,Colorado,08071,3,0 +2020-04-24,Las Animas,Colorado,08071,3,0 +2020-04-25,Las Animas,Colorado,08071,3,0 +2020-04-26,Las Animas,Colorado,08071,3,0 +2020-04-27,Las Animas,Colorado,08071,3,0 +2020-04-28,Las Animas,Colorado,08071,3,0 +2020-04-29,Las Animas,Colorado,08071,3,0 +2020-04-30,Las Animas,Colorado,08071,3,0 +2020-05-01,Las Animas,Colorado,08071,3,0 +2020-05-02,Las Animas,Colorado,08071,3,0 +2020-05-03,Las Animas,Colorado,08071,3,0 +2020-05-04,Las Animas,Colorado,08071,3,0 +2020-05-05,Las Animas,Colorado,08071,4,0 +2020-05-06,Las Animas,Colorado,08071,4,0 +2020-05-07,Las Animas,Colorado,08071,4,0 +2020-05-08,Las Animas,Colorado,08071,4,0 +2020-05-09,Las Animas,Colorado,08071,4,0 +2020-05-10,Las Animas,Colorado,08071,4,0 +2020-05-11,Las Animas,Colorado,08071,4,0 +2020-05-12,Las Animas,Colorado,08071,4,0 +2020-05-13,Las Animas,Colorado,08071,4,0 +2020-05-14,Las Animas,Colorado,08071,4,0 +2020-05-15,Las Animas,Colorado,08071,4,0 +2020-05-16,Las Animas,Colorado,08071,4,0 +2020-05-17,Las Animas,Colorado,08071,4,0 +2020-05-18,Las Animas,Colorado,08071,4,0 +2020-05-19,Las Animas,Colorado,08071,4,0 +2020-05-20,Las Animas,Colorado,08071,4,0 +2020-05-21,Las Animas,Colorado,08071,4,0 +2020-05-22,Las Animas,Colorado,08071,5,0 +2020-05-23,Las Animas,Colorado,08071,5,0 +2020-05-24,Las Animas,Colorado,08071,5,0 +2020-05-25,Las Animas,Colorado,08071,5,0 +2020-05-26,Las Animas,Colorado,08071,5,0 +2020-05-27,Las Animas,Colorado,08071,5,0 +2020-05-28,Las Animas,Colorado,08071,5,0 +2020-05-29,Las Animas,Colorado,08071,5,0 +2020-05-30,Las Animas,Colorado,08071,5,0 +2020-05-31,Las Animas,Colorado,08071,5,0 +2020-06-01,Las Animas,Colorado,08071,5,0 +2020-06-02,Las Animas,Colorado,08071,5,0 +2020-06-03,Las Animas,Colorado,08071,5,0 +2020-06-04,Las Animas,Colorado,08071,5,0 +2020-06-05,Las Animas,Colorado,08071,5,0 +2020-06-06,Las Animas,Colorado,08071,5,0 +2020-06-07,Las Animas,Colorado,08071,5,0 +2020-06-08,Las Animas,Colorado,08071,5,0 +2020-06-09,Las Animas,Colorado,08071,6,0 +2020-06-10,Las Animas,Colorado,08071,6,0 +2020-06-11,Las Animas,Colorado,08071,6,0 +2020-06-12,Las Animas,Colorado,08071,6,0 +2020-06-13,Las Animas,Colorado,08071,6,0 +2020-06-14,Las Animas,Colorado,08071,6,0 +2020-06-15,Las Animas,Colorado,08071,7,0 +2020-06-16,Las Animas,Colorado,08071,7,0 +2020-06-17,Las Animas,Colorado,08071,7,0 +2020-06-18,Las Animas,Colorado,08071,7,0 +2020-06-19,Las Animas,Colorado,08071,7,0 +2020-06-20,Las Animas,Colorado,08071,7,0 +2020-06-21,Las Animas,Colorado,08071,8,0 +2020-06-22,Las Animas,Colorado,08071,8,0 +2020-06-23,Las Animas,Colorado,08071,7,0 +2020-06-24,Las Animas,Colorado,08071,8,0 +2020-06-25,Las Animas,Colorado,08071,7,0 +2020-06-26,Las Animas,Colorado,08071,7,0 +2020-06-27,Las Animas,Colorado,08071,7,0 +2020-06-28,Las Animas,Colorado,08071,7,0 +2020-06-29,Las Animas,Colorado,08071,7,0 +2020-06-30,Las Animas,Colorado,08071,9,0 +2020-07-01,Las Animas,Colorado,08071,9,0 +2020-07-02,Las Animas,Colorado,08071,9,0 +2020-07-03,Las Animas,Colorado,08071,9,0 +2020-07-04,Las Animas,Colorado,08071,9,0 +2020-07-05,Las Animas,Colorado,08071,9,0 +2020-07-06,Las Animas,Colorado,08071,9,0 +2020-07-07,Las Animas,Colorado,08071,9,0 +2020-07-08,Las Animas,Colorado,08071,9,0 +2020-07-09,Las Animas,Colorado,08071,10,0 +2020-03-27,Lincoln,Colorado,08073,1,0 +2020-03-28,Lincoln,Colorado,08073,1,0 +2020-03-29,Lincoln,Colorado,08073,1,0 +2020-03-30,Lincoln,Colorado,08073,1,0 +2020-03-31,Lincoln,Colorado,08073,1,0 +2020-04-01,Lincoln,Colorado,08073,1,0 +2020-04-02,Lincoln,Colorado,08073,1,0 +2020-04-03,Lincoln,Colorado,08073,1,0 +2020-04-04,Lincoln,Colorado,08073,1,0 +2020-04-05,Lincoln,Colorado,08073,1,0 +2020-04-06,Lincoln,Colorado,08073,1,0 +2020-04-07,Lincoln,Colorado,08073,1,0 +2020-04-08,Lincoln,Colorado,08073,1,0 +2020-04-09,Lincoln,Colorado,08073,1,0 +2020-04-10,Lincoln,Colorado,08073,1,0 +2020-04-11,Lincoln,Colorado,08073,1,0 +2020-04-12,Lincoln,Colorado,08073,1,0 +2020-04-13,Lincoln,Colorado,08073,2,0 +2020-04-14,Lincoln,Colorado,08073,2,0 +2020-04-15,Lincoln,Colorado,08073,2,0 +2020-04-16,Lincoln,Colorado,08073,2,0 +2020-04-17,Lincoln,Colorado,08073,3,0 +2020-04-18,Lincoln,Colorado,08073,3,0 +2020-04-19,Lincoln,Colorado,08073,3,0 +2020-04-20,Lincoln,Colorado,08073,3,0 +2020-04-21,Lincoln,Colorado,08073,3,0 +2020-04-22,Lincoln,Colorado,08073,3,0 +2020-04-23,Lincoln,Colorado,08073,3,0 +2020-04-24,Lincoln,Colorado,08073,3,0 +2020-04-25,Lincoln,Colorado,08073,4,0 +2020-04-26,Lincoln,Colorado,08073,4,0 +2020-04-27,Lincoln,Colorado,08073,3,0 +2020-04-28,Lincoln,Colorado,08073,3,0 +2020-04-29,Lincoln,Colorado,08073,3,0 +2020-04-30,Lincoln,Colorado,08073,3,0 +2020-05-01,Lincoln,Colorado,08073,3,0 +2020-05-02,Lincoln,Colorado,08073,3,0 +2020-05-03,Lincoln,Colorado,08073,3,0 +2020-05-04,Lincoln,Colorado,08073,3,0 +2020-05-05,Lincoln,Colorado,08073,3,0 +2020-05-06,Lincoln,Colorado,08073,3,0 +2020-05-07,Lincoln,Colorado,08073,3,0 +2020-05-08,Lincoln,Colorado,08073,3,0 +2020-05-09,Lincoln,Colorado,08073,3,0 +2020-05-10,Lincoln,Colorado,08073,3,0 +2020-05-11,Lincoln,Colorado,08073,3,0 +2020-05-12,Lincoln,Colorado,08073,3,0 +2020-05-13,Lincoln,Colorado,08073,3,0 +2020-05-14,Lincoln,Colorado,08073,3,0 +2020-05-15,Lincoln,Colorado,08073,3,0 +2020-05-16,Lincoln,Colorado,08073,3,0 +2020-05-17,Lincoln,Colorado,08073,3,0 +2020-05-18,Lincoln,Colorado,08073,3,0 +2020-05-19,Lincoln,Colorado,08073,3,0 +2020-05-20,Lincoln,Colorado,08073,3,0 +2020-05-21,Lincoln,Colorado,08073,3,0 +2020-05-22,Lincoln,Colorado,08073,3,0 +2020-05-23,Lincoln,Colorado,08073,3,0 +2020-05-24,Lincoln,Colorado,08073,3,0 +2020-05-25,Lincoln,Colorado,08073,3,0 +2020-05-26,Lincoln,Colorado,08073,3,0 +2020-05-27,Lincoln,Colorado,08073,3,0 +2020-05-28,Lincoln,Colorado,08073,3,0 +2020-05-29,Lincoln,Colorado,08073,3,0 +2020-05-30,Lincoln,Colorado,08073,3,0 +2020-05-31,Lincoln,Colorado,08073,3,0 +2020-06-01,Lincoln,Colorado,08073,3,0 +2020-06-02,Lincoln,Colorado,08073,3,0 +2020-06-03,Lincoln,Colorado,08073,3,0 +2020-06-04,Lincoln,Colorado,08073,3,0 +2020-06-05,Lincoln,Colorado,08073,3,0 +2020-06-06,Lincoln,Colorado,08073,3,0 +2020-06-07,Lincoln,Colorado,08073,3,0 +2020-06-08,Lincoln,Colorado,08073,3,0 +2020-06-09,Lincoln,Colorado,08073,3,0 +2020-06-10,Lincoln,Colorado,08073,3,0 +2020-06-11,Lincoln,Colorado,08073,3,0 +2020-06-12,Lincoln,Colorado,08073,3,0 +2020-06-13,Lincoln,Colorado,08073,3,0 +2020-06-14,Lincoln,Colorado,08073,3,0 +2020-06-15,Lincoln,Colorado,08073,3,0 +2020-06-16,Lincoln,Colorado,08073,3,0 +2020-06-17,Lincoln,Colorado,08073,3,0 +2020-06-18,Lincoln,Colorado,08073,3,0 +2020-06-19,Lincoln,Colorado,08073,3,0 +2020-06-20,Lincoln,Colorado,08073,3,0 +2020-06-21,Lincoln,Colorado,08073,4,0 +2020-06-22,Lincoln,Colorado,08073,4,0 +2020-06-23,Lincoln,Colorado,08073,4,0 +2020-06-24,Lincoln,Colorado,08073,4,0 +2020-06-25,Lincoln,Colorado,08073,4,0 +2020-06-26,Lincoln,Colorado,08073,4,0 +2020-06-27,Lincoln,Colorado,08073,4,0 +2020-06-28,Lincoln,Colorado,08073,4,0 +2020-06-29,Lincoln,Colorado,08073,4,0 +2020-06-30,Lincoln,Colorado,08073,4,0 +2020-07-01,Lincoln,Colorado,08073,4,0 +2020-07-02,Lincoln,Colorado,08073,4,0 +2020-07-03,Lincoln,Colorado,08073,4,0 +2020-07-04,Lincoln,Colorado,08073,4,0 +2020-07-05,Lincoln,Colorado,08073,4,0 +2020-07-06,Lincoln,Colorado,08073,4,0 +2020-07-07,Lincoln,Colorado,08073,4,0 +2020-07-08,Lincoln,Colorado,08073,4,0 +2020-07-09,Lincoln,Colorado,08073,4,0 +2020-03-23,Logan,Colorado,08075,2,0 +2020-03-24,Logan,Colorado,08075,2,0 +2020-03-25,Logan,Colorado,08075,2,0 +2020-03-26,Logan,Colorado,08075,2,0 +2020-03-27,Logan,Colorado,08075,3,0 +2020-03-28,Logan,Colorado,08075,5,0 +2020-03-29,Logan,Colorado,08075,5,0 +2020-03-30,Logan,Colorado,08075,5,0 +2020-03-31,Logan,Colorado,08075,6,0 +2020-04-01,Logan,Colorado,08075,6,0 +2020-04-02,Logan,Colorado,08075,7,0 +2020-04-03,Logan,Colorado,08075,7,0 +2020-04-04,Logan,Colorado,08075,8,0 +2020-04-05,Logan,Colorado,08075,9,0 +2020-04-06,Logan,Colorado,08075,11,0 +2020-04-07,Logan,Colorado,08075,13,0 +2020-04-08,Logan,Colorado,08075,13,0 +2020-04-09,Logan,Colorado,08075,13,0 +2020-04-10,Logan,Colorado,08075,13,0 +2020-04-11,Logan,Colorado,08075,13,0 +2020-04-12,Logan,Colorado,08075,13,0 +2020-04-13,Logan,Colorado,08075,13,0 +2020-04-14,Logan,Colorado,08075,13,0 +2020-04-15,Logan,Colorado,08075,13,0 +2020-04-16,Logan,Colorado,08075,17,0 +2020-04-17,Logan,Colorado,08075,17,1 +2020-04-18,Logan,Colorado,08075,17,1 +2020-04-19,Logan,Colorado,08075,17,1 +2020-04-20,Logan,Colorado,08075,22,1 +2020-04-21,Logan,Colorado,08075,23,1 +2020-04-22,Logan,Colorado,08075,24,1 +2020-04-23,Logan,Colorado,08075,24,1 +2020-04-24,Logan,Colorado,08075,31,1 +2020-04-25,Logan,Colorado,08075,213,1 +2020-04-26,Logan,Colorado,08075,248,1 +2020-04-27,Logan,Colorado,08075,259,1 +2020-04-28,Logan,Colorado,08075,266,1 +2020-04-29,Logan,Colorado,08075,270,1 +2020-04-30,Logan,Colorado,08075,282,1 +2020-05-01,Logan,Colorado,08075,282,1 +2020-05-02,Logan,Colorado,08075,288,1 +2020-05-03,Logan,Colorado,08075,291,1 +2020-05-04,Logan,Colorado,08075,290,1 +2020-05-05,Logan,Colorado,08075,292,1 +2020-05-06,Logan,Colorado,08075,295,2 +2020-05-07,Logan,Colorado,08075,318,2 +2020-05-08,Logan,Colorado,08075,350,2 +2020-05-09,Logan,Colorado,08075,389,2 +2020-05-10,Logan,Colorado,08075,401,2 +2020-05-11,Logan,Colorado,08075,432,2 +2020-05-12,Logan,Colorado,08075,473,3 +2020-05-13,Logan,Colorado,08075,480,3 +2020-05-14,Logan,Colorado,08075,483,3 +2020-05-15,Logan,Colorado,08075,483,3 +2020-05-16,Logan,Colorado,08075,485,3 +2020-05-17,Logan,Colorado,08075,487,3 +2020-05-18,Logan,Colorado,08075,488,3 +2020-05-19,Logan,Colorado,08075,488,3 +2020-05-20,Logan,Colorado,08075,489,3 +2020-05-21,Logan,Colorado,08075,490,3 +2020-05-22,Logan,Colorado,08075,491,3 +2020-05-23,Logan,Colorado,08075,493,3 +2020-05-24,Logan,Colorado,08075,582,3 +2020-05-25,Logan,Colorado,08075,582,3 +2020-05-26,Logan,Colorado,08075,582,3 +2020-05-27,Logan,Colorado,08075,582,3 +2020-05-28,Logan,Colorado,08075,585,3 +2020-05-29,Logan,Colorado,08075,601,3 +2020-05-30,Logan,Colorado,08075,602,3 +2020-05-31,Logan,Colorado,08075,614,3 +2020-06-01,Logan,Colorado,08075,619,3 +2020-06-02,Logan,Colorado,08075,620,4 +2020-06-03,Logan,Colorado,08075,621,4 +2020-06-04,Logan,Colorado,08075,624,4 +2020-06-05,Logan,Colorado,08075,627,5 +2020-06-06,Logan,Colorado,08075,630,5 +2020-06-07,Logan,Colorado,08075,631,5 +2020-06-08,Logan,Colorado,08075,631,5 +2020-06-09,Logan,Colorado,08075,631,5 +2020-06-10,Logan,Colorado,08075,631,5 +2020-06-11,Logan,Colorado,08075,632,5 +2020-06-12,Logan,Colorado,08075,632,5 +2020-06-13,Logan,Colorado,08075,632,5 +2020-06-14,Logan,Colorado,08075,633,5 +2020-06-15,Logan,Colorado,08075,633,5 +2020-06-16,Logan,Colorado,08075,633,5 +2020-06-17,Logan,Colorado,08075,634,5 +2020-06-18,Logan,Colorado,08075,634,5 +2020-06-19,Logan,Colorado,08075,635,5 +2020-06-20,Logan,Colorado,08075,635,5 +2020-06-21,Logan,Colorado,08075,635,5 +2020-06-22,Logan,Colorado,08075,635,5 +2020-06-23,Logan,Colorado,08075,635,5 +2020-06-24,Logan,Colorado,08075,635,5 +2020-06-25,Logan,Colorado,08075,635,5 +2020-06-26,Logan,Colorado,08075,636,5 +2020-06-27,Logan,Colorado,08075,636,5 +2020-06-28,Logan,Colorado,08075,637,5 +2020-06-29,Logan,Colorado,08075,637,5 +2020-06-30,Logan,Colorado,08075,637,5 +2020-07-01,Logan,Colorado,08075,638,5 +2020-07-02,Logan,Colorado,08075,638,5 +2020-07-03,Logan,Colorado,08075,638,5 +2020-07-04,Logan,Colorado,08075,640,5 +2020-07-05,Logan,Colorado,08075,640,5 +2020-07-06,Logan,Colorado,08075,640,5 +2020-07-07,Logan,Colorado,08075,640,5 +2020-07-08,Logan,Colorado,08075,640,5 +2020-07-09,Logan,Colorado,08075,640,5 +2020-03-14,Mesa,Colorado,08077,1,0 +2020-03-15,Mesa,Colorado,08077,1,0 +2020-03-16,Mesa,Colorado,08077,1,0 +2020-03-17,Mesa,Colorado,08077,1,0 +2020-03-18,Mesa,Colorado,08077,1,0 +2020-03-19,Mesa,Colorado,08077,1,0 +2020-03-20,Mesa,Colorado,08077,1,0 +2020-03-21,Mesa,Colorado,08077,1,0 +2020-03-22,Mesa,Colorado,08077,2,0 +2020-03-23,Mesa,Colorado,08077,2,0 +2020-03-24,Mesa,Colorado,08077,5,0 +2020-03-25,Mesa,Colorado,08077,5,0 +2020-03-26,Mesa,Colorado,08077,6,0 +2020-03-27,Mesa,Colorado,08077,7,0 +2020-03-28,Mesa,Colorado,08077,7,0 +2020-03-29,Mesa,Colorado,08077,11,0 +2020-03-30,Mesa,Colorado,08077,12,0 +2020-03-31,Mesa,Colorado,08077,14,0 +2020-04-01,Mesa,Colorado,08077,14,0 +2020-04-02,Mesa,Colorado,08077,17,0 +2020-04-03,Mesa,Colorado,08077,20,0 +2020-04-04,Mesa,Colorado,08077,20,0 +2020-04-05,Mesa,Colorado,08077,22,0 +2020-04-06,Mesa,Colorado,08077,25,0 +2020-04-07,Mesa,Colorado,08077,27,0 +2020-04-08,Mesa,Colorado,08077,32,0 +2020-04-09,Mesa,Colorado,08077,32,0 +2020-04-10,Mesa,Colorado,08077,34,0 +2020-04-11,Mesa,Colorado,08077,34,0 +2020-04-12,Mesa,Colorado,08077,35,0 +2020-04-13,Mesa,Colorado,08077,35,0 +2020-04-14,Mesa,Colorado,08077,35,0 +2020-04-15,Mesa,Colorado,08077,34,0 +2020-04-16,Mesa,Colorado,08077,34,0 +2020-04-17,Mesa,Colorado,08077,34,0 +2020-04-18,Mesa,Colorado,08077,34,0 +2020-04-19,Mesa,Colorado,08077,35,0 +2020-04-20,Mesa,Colorado,08077,35,0 +2020-04-21,Mesa,Colorado,08077,35,0 +2020-04-22,Mesa,Colorado,08077,37,0 +2020-04-23,Mesa,Colorado,08077,37,0 +2020-04-24,Mesa,Colorado,08077,37,0 +2020-04-25,Mesa,Colorado,08077,38,0 +2020-04-26,Mesa,Colorado,08077,38,0 +2020-04-27,Mesa,Colorado,08077,40,0 +2020-04-28,Mesa,Colorado,08077,42,0 +2020-04-29,Mesa,Colorado,08077,44,0 +2020-04-30,Mesa,Colorado,08077,46,0 +2020-05-01,Mesa,Colorado,08077,47,0 +2020-05-02,Mesa,Colorado,08077,47,0 +2020-05-03,Mesa,Colorado,08077,47,0 +2020-05-04,Mesa,Colorado,08077,46,0 +2020-05-05,Mesa,Colorado,08077,46,0 +2020-05-06,Mesa,Colorado,08077,48,0 +2020-05-07,Mesa,Colorado,08077,48,0 +2020-05-08,Mesa,Colorado,08077,50,0 +2020-05-09,Mesa,Colorado,08077,51,0 +2020-05-10,Mesa,Colorado,08077,51,0 +2020-05-11,Mesa,Colorado,08077,51,0 +2020-05-12,Mesa,Colorado,08077,51,0 +2020-05-13,Mesa,Colorado,08077,51,0 +2020-05-14,Mesa,Colorado,08077,51,0 +2020-05-15,Mesa,Colorado,08077,50,0 +2020-05-16,Mesa,Colorado,08077,50,0 +2020-05-17,Mesa,Colorado,08077,50,0 +2020-05-18,Mesa,Colorado,08077,50,0 +2020-05-19,Mesa,Colorado,08077,50,0 +2020-05-20,Mesa,Colorado,08077,50,0 +2020-05-21,Mesa,Colorado,08077,50,0 +2020-05-22,Mesa,Colorado,08077,50,0 +2020-05-23,Mesa,Colorado,08077,54,0 +2020-05-24,Mesa,Colorado,08077,55,0 +2020-05-25,Mesa,Colorado,08077,55,0 +2020-05-26,Mesa,Colorado,08077,55,0 +2020-05-27,Mesa,Colorado,08077,55,0 +2020-05-28,Mesa,Colorado,08077,55,0 +2020-05-29,Mesa,Colorado,08077,55,0 +2020-05-30,Mesa,Colorado,08077,54,0 +2020-05-31,Mesa,Colorado,08077,54,0 +2020-06-01,Mesa,Colorado,08077,55,0 +2020-06-02,Mesa,Colorado,08077,55,0 +2020-06-03,Mesa,Colorado,08077,56,0 +2020-06-04,Mesa,Colorado,08077,59,0 +2020-06-05,Mesa,Colorado,08077,60,0 +2020-06-06,Mesa,Colorado,08077,62,0 +2020-06-07,Mesa,Colorado,08077,62,0 +2020-06-08,Mesa,Colorado,08077,62,0 +2020-06-09,Mesa,Colorado,08077,64,0 +2020-06-10,Mesa,Colorado,08077,65,0 +2020-06-11,Mesa,Colorado,08077,65,0 +2020-06-12,Mesa,Colorado,08077,66,0 +2020-06-13,Mesa,Colorado,08077,66,0 +2020-06-14,Mesa,Colorado,08077,69,0 +2020-06-15,Mesa,Colorado,08077,72,0 +2020-06-16,Mesa,Colorado,08077,81,0 +2020-06-17,Mesa,Colorado,08077,73,0 +2020-06-18,Mesa,Colorado,08077,77,0 +2020-06-19,Mesa,Colorado,08077,78,0 +2020-06-20,Mesa,Colorado,08077,79,0 +2020-06-21,Mesa,Colorado,08077,79,0 +2020-06-22,Mesa,Colorado,08077,80,0 +2020-06-23,Mesa,Colorado,08077,85,0 +2020-06-24,Mesa,Colorado,08077,85,0 +2020-06-25,Mesa,Colorado,08077,87,0 +2020-06-26,Mesa,Colorado,08077,88,0 +2020-06-27,Mesa,Colorado,08077,89,0 +2020-06-28,Mesa,Colorado,08077,89,0 +2020-06-29,Mesa,Colorado,08077,95,0 +2020-06-30,Mesa,Colorado,08077,96,0 +2020-07-01,Mesa,Colorado,08077,96,0 +2020-07-02,Mesa,Colorado,08077,102,0 +2020-07-03,Mesa,Colorado,08077,109,0 +2020-07-04,Mesa,Colorado,08077,113,0 +2020-07-05,Mesa,Colorado,08077,118,0 +2020-07-06,Mesa,Colorado,08077,119,0 +2020-07-07,Mesa,Colorado,08077,121,0 +2020-07-08,Mesa,Colorado,08077,125,0 +2020-07-09,Mesa,Colorado,08077,129,0 +2020-03-29,Mineral,Colorado,08079,1,0 +2020-03-30,Mineral,Colorado,08079,1,0 +2020-03-31,Mineral,Colorado,08079,2,0 +2020-04-01,Mineral,Colorado,08079,2,0 +2020-04-02,Mineral,Colorado,08079,2,0 +2020-04-03,Mineral,Colorado,08079,2,0 +2020-04-04,Mineral,Colorado,08079,2,0 +2020-04-05,Mineral,Colorado,08079,2,0 +2020-04-06,Mineral,Colorado,08079,2,0 +2020-04-07,Mineral,Colorado,08079,2,0 +2020-04-08,Mineral,Colorado,08079,2,0 +2020-04-09,Mineral,Colorado,08079,2,0 +2020-04-10,Mineral,Colorado,08079,2,0 +2020-04-11,Mineral,Colorado,08079,2,0 +2020-04-12,Mineral,Colorado,08079,2,0 +2020-04-13,Mineral,Colorado,08079,2,0 +2020-04-14,Mineral,Colorado,08079,2,0 +2020-04-15,Mineral,Colorado,08079,2,0 +2020-04-16,Mineral,Colorado,08079,2,0 +2020-04-17,Mineral,Colorado,08079,2,0 +2020-04-18,Mineral,Colorado,08079,2,0 +2020-04-19,Mineral,Colorado,08079,2,0 +2020-04-20,Mineral,Colorado,08079,2,0 +2020-04-21,Mineral,Colorado,08079,2,0 +2020-04-22,Mineral,Colorado,08079,2,0 +2020-04-23,Mineral,Colorado,08079,2,0 +2020-04-24,Mineral,Colorado,08079,2,0 +2020-04-25,Mineral,Colorado,08079,2,0 +2020-04-26,Mineral,Colorado,08079,2,0 +2020-04-27,Mineral,Colorado,08079,2,0 +2020-04-28,Mineral,Colorado,08079,2,0 +2020-04-29,Mineral,Colorado,08079,2,0 +2020-04-30,Mineral,Colorado,08079,2,0 +2020-05-01,Mineral,Colorado,08079,2,0 +2020-05-02,Mineral,Colorado,08079,2,0 +2020-05-03,Mineral,Colorado,08079,2,0 +2020-05-04,Mineral,Colorado,08079,2,0 +2020-05-05,Mineral,Colorado,08079,2,0 +2020-05-06,Mineral,Colorado,08079,2,0 +2020-05-07,Mineral,Colorado,08079,2,0 +2020-05-08,Mineral,Colorado,08079,2,0 +2020-05-09,Mineral,Colorado,08079,2,0 +2020-05-10,Mineral,Colorado,08079,2,0 +2020-05-11,Mineral,Colorado,08079,2,0 +2020-05-12,Mineral,Colorado,08079,2,0 +2020-05-13,Mineral,Colorado,08079,2,0 +2020-05-14,Mineral,Colorado,08079,2,0 +2020-05-15,Mineral,Colorado,08079,2,0 +2020-05-16,Mineral,Colorado,08079,2,0 +2020-05-17,Mineral,Colorado,08079,2,0 +2020-05-18,Mineral,Colorado,08079,2,0 +2020-05-19,Mineral,Colorado,08079,2,0 +2020-05-20,Mineral,Colorado,08079,2,0 +2020-05-21,Mineral,Colorado,08079,2,0 +2020-05-22,Mineral,Colorado,08079,2,0 +2020-05-23,Mineral,Colorado,08079,2,0 +2020-05-24,Mineral,Colorado,08079,2,0 +2020-05-25,Mineral,Colorado,08079,2,0 +2020-05-26,Mineral,Colorado,08079,2,0 +2020-05-27,Mineral,Colorado,08079,2,0 +2020-05-28,Mineral,Colorado,08079,2,0 +2020-05-29,Mineral,Colorado,08079,2,0 +2020-05-30,Mineral,Colorado,08079,2,0 +2020-05-31,Mineral,Colorado,08079,2,0 +2020-06-01,Mineral,Colorado,08079,2,0 +2020-06-02,Mineral,Colorado,08079,2,0 +2020-06-03,Mineral,Colorado,08079,2,0 +2020-06-04,Mineral,Colorado,08079,2,0 +2020-06-05,Mineral,Colorado,08079,2,0 +2020-06-06,Mineral,Colorado,08079,2,0 +2020-06-07,Mineral,Colorado,08079,2,0 +2020-06-08,Mineral,Colorado,08079,2,0 +2020-06-09,Mineral,Colorado,08079,2,0 +2020-06-10,Mineral,Colorado,08079,2,0 +2020-06-11,Mineral,Colorado,08079,2,0 +2020-06-12,Mineral,Colorado,08079,2,0 +2020-06-13,Mineral,Colorado,08079,2,0 +2020-06-14,Mineral,Colorado,08079,2,0 +2020-06-15,Mineral,Colorado,08079,2,0 +2020-06-16,Mineral,Colorado,08079,2,0 +2020-06-17,Mineral,Colorado,08079,2,0 +2020-06-18,Mineral,Colorado,08079,2,0 +2020-06-19,Mineral,Colorado,08079,2,0 +2020-06-20,Mineral,Colorado,08079,2,0 +2020-06-21,Mineral,Colorado,08079,2,0 +2020-06-22,Mineral,Colorado,08079,2,0 +2020-06-23,Mineral,Colorado,08079,3,0 +2020-06-24,Mineral,Colorado,08079,3,0 +2020-06-25,Mineral,Colorado,08079,5,0 +2020-06-26,Mineral,Colorado,08079,5,0 +2020-06-27,Mineral,Colorado,08079,5,0 +2020-06-28,Mineral,Colorado,08079,5,0 +2020-06-29,Mineral,Colorado,08079,5,0 +2020-06-30,Mineral,Colorado,08079,7,0 +2020-07-01,Mineral,Colorado,08079,7,0 +2020-07-02,Mineral,Colorado,08079,7,0 +2020-07-03,Mineral,Colorado,08079,9,0 +2020-07-04,Mineral,Colorado,08079,9,0 +2020-07-05,Mineral,Colorado,08079,9,0 +2020-07-06,Mineral,Colorado,08079,11,0 +2020-07-07,Mineral,Colorado,08079,13,0 +2020-07-08,Mineral,Colorado,08079,14,0 +2020-07-09,Mineral,Colorado,08079,15,0 +2020-03-28,Moffat,Colorado,08081,2,0 +2020-03-29,Moffat,Colorado,08081,2,0 +2020-03-30,Moffat,Colorado,08081,4,0 +2020-03-31,Moffat,Colorado,08081,4,0 +2020-04-01,Moffat,Colorado,08081,4,0 +2020-04-02,Moffat,Colorado,08081,4,0 +2020-04-03,Moffat,Colorado,08081,4,0 +2020-04-04,Moffat,Colorado,08081,4,0 +2020-04-05,Moffat,Colorado,08081,4,0 +2020-04-06,Moffat,Colorado,08081,4,0 +2020-04-07,Moffat,Colorado,08081,4,0 +2020-04-08,Moffat,Colorado,08081,3,0 +2020-04-09,Moffat,Colorado,08081,3,0 +2020-04-10,Moffat,Colorado,08081,3,0 +2020-04-11,Moffat,Colorado,08081,3,0 +2020-04-12,Moffat,Colorado,08081,3,0 +2020-04-13,Moffat,Colorado,08081,3,0 +2020-04-14,Moffat,Colorado,08081,3,0 +2020-04-15,Moffat,Colorado,08081,3,0 +2020-04-16,Moffat,Colorado,08081,3,0 +2020-04-17,Moffat,Colorado,08081,3,0 +2020-04-18,Moffat,Colorado,08081,4,0 +2020-04-19,Moffat,Colorado,08081,4,0 +2020-04-20,Moffat,Colorado,08081,5,0 +2020-04-21,Moffat,Colorado,08081,6,0 +2020-04-22,Moffat,Colorado,08081,6,0 +2020-04-23,Moffat,Colorado,08081,6,0 +2020-04-24,Moffat,Colorado,08081,6,0 +2020-04-25,Moffat,Colorado,08081,6,0 +2020-04-26,Moffat,Colorado,08081,6,0 +2020-04-27,Moffat,Colorado,08081,6,0 +2020-04-28,Moffat,Colorado,08081,6,0 +2020-04-29,Moffat,Colorado,08081,6,0 +2020-04-30,Moffat,Colorado,08081,6,0 +2020-05-01,Moffat,Colorado,08081,6,0 +2020-05-02,Moffat,Colorado,08081,6,0 +2020-05-03,Moffat,Colorado,08081,6,0 +2020-05-04,Moffat,Colorado,08081,6,0 +2020-05-05,Moffat,Colorado,08081,6,0 +2020-05-06,Moffat,Colorado,08081,6,0 +2020-05-07,Moffat,Colorado,08081,6,0 +2020-05-08,Moffat,Colorado,08081,6,0 +2020-05-09,Moffat,Colorado,08081,6,0 +2020-05-10,Moffat,Colorado,08081,6,0 +2020-05-11,Moffat,Colorado,08081,6,0 +2020-05-12,Moffat,Colorado,08081,6,0 +2020-05-13,Moffat,Colorado,08081,6,0 +2020-05-14,Moffat,Colorado,08081,6,0 +2020-05-15,Moffat,Colorado,08081,6,0 +2020-05-16,Moffat,Colorado,08081,6,0 +2020-05-17,Moffat,Colorado,08081,6,0 +2020-05-18,Moffat,Colorado,08081,6,0 +2020-05-19,Moffat,Colorado,08081,6,0 +2020-05-20,Moffat,Colorado,08081,6,0 +2020-05-21,Moffat,Colorado,08081,6,0 +2020-05-22,Moffat,Colorado,08081,6,0 +2020-05-23,Moffat,Colorado,08081,6,0 +2020-05-24,Moffat,Colorado,08081,6,0 +2020-05-25,Moffat,Colorado,08081,6,0 +2020-05-26,Moffat,Colorado,08081,7,0 +2020-05-27,Moffat,Colorado,08081,7,0 +2020-05-28,Moffat,Colorado,08081,7,0 +2020-05-29,Moffat,Colorado,08081,7,0 +2020-05-30,Moffat,Colorado,08081,7,0 +2020-05-31,Moffat,Colorado,08081,7,0 +2020-06-01,Moffat,Colorado,08081,7,0 +2020-06-02,Moffat,Colorado,08081,8,0 +2020-06-03,Moffat,Colorado,08081,8,0 +2020-06-04,Moffat,Colorado,08081,8,0 +2020-06-05,Moffat,Colorado,08081,8,0 +2020-06-06,Moffat,Colorado,08081,8,0 +2020-06-07,Moffat,Colorado,08081,8,0 +2020-06-08,Moffat,Colorado,08081,8,0 +2020-06-09,Moffat,Colorado,08081,8,0 +2020-06-10,Moffat,Colorado,08081,8,0 +2020-06-11,Moffat,Colorado,08081,8,0 +2020-06-12,Moffat,Colorado,08081,8,0 +2020-06-13,Moffat,Colorado,08081,8,0 +2020-06-14,Moffat,Colorado,08081,8,0 +2020-06-15,Moffat,Colorado,08081,8,0 +2020-06-16,Moffat,Colorado,08081,8,0 +2020-06-17,Moffat,Colorado,08081,8,0 +2020-06-18,Moffat,Colorado,08081,9,0 +2020-06-19,Moffat,Colorado,08081,9,0 +2020-06-20,Moffat,Colorado,08081,9,0 +2020-06-21,Moffat,Colorado,08081,9,0 +2020-06-22,Moffat,Colorado,08081,9,0 +2020-06-23,Moffat,Colorado,08081,9,0 +2020-06-24,Moffat,Colorado,08081,9,0 +2020-06-25,Moffat,Colorado,08081,9,0 +2020-06-26,Moffat,Colorado,08081,10,0 +2020-06-27,Moffat,Colorado,08081,10,0 +2020-06-28,Moffat,Colorado,08081,10,0 +2020-06-29,Moffat,Colorado,08081,10,0 +2020-06-30,Moffat,Colorado,08081,14,0 +2020-07-01,Moffat,Colorado,08081,14,0 +2020-07-02,Moffat,Colorado,08081,13,0 +2020-07-03,Moffat,Colorado,08081,13,0 +2020-07-04,Moffat,Colorado,08081,13,0 +2020-07-05,Moffat,Colorado,08081,13,0 +2020-07-06,Moffat,Colorado,08081,13,0 +2020-07-07,Moffat,Colorado,08081,13,0 +2020-07-08,Moffat,Colorado,08081,13,0 +2020-07-09,Moffat,Colorado,08081,14,0 +2020-03-29,Montezuma,Colorado,08083,1,0 +2020-03-30,Montezuma,Colorado,08083,1,0 +2020-03-31,Montezuma,Colorado,08083,1,0 +2020-04-01,Montezuma,Colorado,08083,1,0 +2020-04-02,Montezuma,Colorado,08083,3,1 +2020-04-03,Montezuma,Colorado,08083,3,1 +2020-04-04,Montezuma,Colorado,08083,6,1 +2020-04-05,Montezuma,Colorado,08083,8,1 +2020-04-06,Montezuma,Colorado,08083,8,1 +2020-04-07,Montezuma,Colorado,08083,8,1 +2020-04-08,Montezuma,Colorado,08083,8,1 +2020-04-09,Montezuma,Colorado,08083,8,1 +2020-04-10,Montezuma,Colorado,08083,12,2 +2020-04-11,Montezuma,Colorado,08083,11,2 +2020-04-12,Montezuma,Colorado,08083,12,2 +2020-04-13,Montezuma,Colorado,08083,12,2 +2020-04-14,Montezuma,Colorado,08083,12,2 +2020-04-15,Montezuma,Colorado,08083,12,2 +2020-04-16,Montezuma,Colorado,08083,13,2 +2020-04-17,Montezuma,Colorado,08083,13,2 +2020-04-18,Montezuma,Colorado,08083,13,2 +2020-04-19,Montezuma,Colorado,08083,13,2 +2020-04-20,Montezuma,Colorado,08083,13,2 +2020-04-21,Montezuma,Colorado,08083,13,2 +2020-04-22,Montezuma,Colorado,08083,13,2 +2020-04-23,Montezuma,Colorado,08083,15,2 +2020-04-24,Montezuma,Colorado,08083,15,2 +2020-04-25,Montezuma,Colorado,08083,15,2 +2020-04-26,Montezuma,Colorado,08083,15,2 +2020-04-27,Montezuma,Colorado,08083,15,2 +2020-04-28,Montezuma,Colorado,08083,15,2 +2020-04-29,Montezuma,Colorado,08083,16,2 +2020-04-30,Montezuma,Colorado,08083,16,2 +2020-05-01,Montezuma,Colorado,08083,16,2 +2020-05-02,Montezuma,Colorado,08083,16,2 +2020-05-03,Montezuma,Colorado,08083,17,2 +2020-05-04,Montezuma,Colorado,08083,18,2 +2020-05-05,Montezuma,Colorado,08083,18,2 +2020-05-06,Montezuma,Colorado,08083,19,2 +2020-05-07,Montezuma,Colorado,08083,21,2 +2020-05-08,Montezuma,Colorado,08083,23,2 +2020-05-09,Montezuma,Colorado,08083,23,2 +2020-05-10,Montezuma,Colorado,08083,23,2 +2020-05-11,Montezuma,Colorado,08083,24,3 +2020-05-12,Montezuma,Colorado,08083,25,3 +2020-05-13,Montezuma,Colorado,08083,25,3 +2020-05-14,Montezuma,Colorado,08083,25,3 +2020-05-15,Montezuma,Colorado,08083,26,3 +2020-05-16,Montezuma,Colorado,08083,27,3 +2020-05-17,Montezuma,Colorado,08083,27,3 +2020-05-18,Montezuma,Colorado,08083,27,3 +2020-05-19,Montezuma,Colorado,08083,29,3 +2020-05-20,Montezuma,Colorado,08083,30,3 +2020-05-21,Montezuma,Colorado,08083,30,3 +2020-05-22,Montezuma,Colorado,08083,35,3 +2020-05-23,Montezuma,Colorado,08083,35,3 +2020-05-24,Montezuma,Colorado,08083,35,3 +2020-05-25,Montezuma,Colorado,08083,36,3 +2020-05-26,Montezuma,Colorado,08083,36,3 +2020-05-27,Montezuma,Colorado,08083,36,3 +2020-05-28,Montezuma,Colorado,08083,37,3 +2020-05-29,Montezuma,Colorado,08083,39,3 +2020-05-30,Montezuma,Colorado,08083,43,3 +2020-05-31,Montezuma,Colorado,08083,45,3 +2020-06-01,Montezuma,Colorado,08083,46,3 +2020-06-02,Montezuma,Colorado,08083,46,3 +2020-06-03,Montezuma,Colorado,08083,46,3 +2020-06-04,Montezuma,Colorado,08083,46,3 +2020-06-05,Montezuma,Colorado,08083,46,3 +2020-06-06,Montezuma,Colorado,08083,50,3 +2020-06-07,Montezuma,Colorado,08083,57,3 +2020-06-08,Montezuma,Colorado,08083,57,3 +2020-06-09,Montezuma,Colorado,08083,58,3 +2020-06-10,Montezuma,Colorado,08083,58,3 +2020-06-11,Montezuma,Colorado,08083,58,3 +2020-06-12,Montezuma,Colorado,08083,59,3 +2020-06-13,Montezuma,Colorado,08083,59,3 +2020-06-14,Montezuma,Colorado,08083,60,3 +2020-06-15,Montezuma,Colorado,08083,62,3 +2020-06-16,Montezuma,Colorado,08083,65,3 +2020-06-17,Montezuma,Colorado,08083,65,3 +2020-06-18,Montezuma,Colorado,08083,66,3 +2020-06-19,Montezuma,Colorado,08083,67,3 +2020-06-20,Montezuma,Colorado,08083,67,3 +2020-06-21,Montezuma,Colorado,08083,67,3 +2020-06-22,Montezuma,Colorado,08083,68,3 +2020-06-23,Montezuma,Colorado,08083,68,3 +2020-06-24,Montezuma,Colorado,08083,68,3 +2020-06-25,Montezuma,Colorado,08083,69,3 +2020-06-26,Montezuma,Colorado,08083,69,3 +2020-06-27,Montezuma,Colorado,08083,70,3 +2020-06-28,Montezuma,Colorado,08083,70,3 +2020-06-29,Montezuma,Colorado,08083,71,3 +2020-06-30,Montezuma,Colorado,08083,72,3 +2020-07-01,Montezuma,Colorado,08083,72,3 +2020-07-02,Montezuma,Colorado,08083,71,3 +2020-07-03,Montezuma,Colorado,08083,72,3 +2020-07-04,Montezuma,Colorado,08083,73,3 +2020-07-05,Montezuma,Colorado,08083,73,3 +2020-07-06,Montezuma,Colorado,08083,74,3 +2020-07-07,Montezuma,Colorado,08083,74,3 +2020-07-08,Montezuma,Colorado,08083,75,3 +2020-07-09,Montezuma,Colorado,08083,76,3 +2020-03-21,Montrose,Colorado,08085,1,0 +2020-03-22,Montrose,Colorado,08085,1,0 +2020-03-23,Montrose,Colorado,08085,1,0 +2020-03-24,Montrose,Colorado,08085,3,0 +2020-03-25,Montrose,Colorado,08085,4,0 +2020-03-26,Montrose,Colorado,08085,4,0 +2020-03-27,Montrose,Colorado,08085,6,0 +2020-03-28,Montrose,Colorado,08085,8,0 +2020-03-29,Montrose,Colorado,08085,8,0 +2020-03-30,Montrose,Colorado,08085,10,0 +2020-03-31,Montrose,Colorado,08085,13,0 +2020-04-01,Montrose,Colorado,08085,13,0 +2020-04-02,Montrose,Colorado,08085,14,0 +2020-04-03,Montrose,Colorado,08085,26,1 +2020-04-04,Montrose,Colorado,08085,31,1 +2020-04-05,Montrose,Colorado,08085,32,1 +2020-04-06,Montrose,Colorado,08085,34,2 +2020-04-07,Montrose,Colorado,08085,35,3 +2020-04-08,Montrose,Colorado,08085,35,3 +2020-04-09,Montrose,Colorado,08085,38,3 +2020-04-10,Montrose,Colorado,08085,38,3 +2020-04-11,Montrose,Colorado,08085,50,4 +2020-04-12,Montrose,Colorado,08085,57,4 +2020-04-13,Montrose,Colorado,08085,59,4 +2020-04-14,Montrose,Colorado,08085,63,5 +2020-04-15,Montrose,Colorado,08085,65,6 +2020-04-16,Montrose,Colorado,08085,69,7 +2020-04-17,Montrose,Colorado,08085,70,7 +2020-04-18,Montrose,Colorado,08085,72,7 +2020-04-19,Montrose,Colorado,08085,77,7 +2020-04-20,Montrose,Colorado,08085,80,9 +2020-04-21,Montrose,Colorado,08085,80,9 +2020-04-22,Montrose,Colorado,08085,82,9 +2020-04-23,Montrose,Colorado,08085,82,9 +2020-04-24,Montrose,Colorado,08085,83,9 +2020-04-25,Montrose,Colorado,08085,87,9 +2020-04-26,Montrose,Colorado,08085,90,9 +2020-04-27,Montrose,Colorado,08085,92,10 +2020-04-28,Montrose,Colorado,08085,94,11 +2020-04-29,Montrose,Colorado,08085,96,11 +2020-04-30,Montrose,Colorado,08085,96,11 +2020-05-01,Montrose,Colorado,08085,98,11 +2020-05-02,Montrose,Colorado,08085,102,11 +2020-05-03,Montrose,Colorado,08085,105,11 +2020-05-04,Montrose,Colorado,08085,106,11 +2020-05-05,Montrose,Colorado,08085,107,11 +2020-05-06,Montrose,Colorado,08085,110,11 +2020-05-07,Montrose,Colorado,08085,114,11 +2020-05-08,Montrose,Colorado,08085,121,11 +2020-05-09,Montrose,Colorado,08085,122,11 +2020-05-10,Montrose,Colorado,08085,124,11 +2020-05-11,Montrose,Colorado,08085,127,11 +2020-05-12,Montrose,Colorado,08085,127,11 +2020-05-13,Montrose,Colorado,08085,128,11 +2020-05-14,Montrose,Colorado,08085,129,11 +2020-05-15,Montrose,Colorado,08085,131,11 +2020-05-16,Montrose,Colorado,08085,135,11 +2020-05-17,Montrose,Colorado,08085,136,11 +2020-05-18,Montrose,Colorado,08085,136,11 +2020-05-19,Montrose,Colorado,08085,136,11 +2020-05-20,Montrose,Colorado,08085,136,11 +2020-05-21,Montrose,Colorado,08085,147,12 +2020-05-22,Montrose,Colorado,08085,152,12 +2020-05-23,Montrose,Colorado,08085,159,12 +2020-05-24,Montrose,Colorado,08085,159,12 +2020-05-25,Montrose,Colorado,08085,159,12 +2020-05-26,Montrose,Colorado,08085,163,12 +2020-05-27,Montrose,Colorado,08085,163,12 +2020-05-28,Montrose,Colorado,08085,163,12 +2020-05-29,Montrose,Colorado,08085,168,12 +2020-05-30,Montrose,Colorado,08085,169,12 +2020-05-31,Montrose,Colorado,08085,172,12 +2020-06-01,Montrose,Colorado,08085,177,12 +2020-06-02,Montrose,Colorado,08085,181,12 +2020-06-03,Montrose,Colorado,08085,181,12 +2020-06-04,Montrose,Colorado,08085,182,12 +2020-06-05,Montrose,Colorado,08085,183,12 +2020-06-06,Montrose,Colorado,08085,185,12 +2020-06-07,Montrose,Colorado,08085,188,12 +2020-06-08,Montrose,Colorado,08085,190,12 +2020-06-09,Montrose,Colorado,08085,190,12 +2020-06-10,Montrose,Colorado,08085,190,12 +2020-06-11,Montrose,Colorado,08085,191,12 +2020-06-12,Montrose,Colorado,08085,191,12 +2020-06-13,Montrose,Colorado,08085,194,12 +2020-06-14,Montrose,Colorado,08085,195,12 +2020-06-15,Montrose,Colorado,08085,195,12 +2020-06-16,Montrose,Colorado,08085,197,12 +2020-06-17,Montrose,Colorado,08085,198,12 +2020-06-18,Montrose,Colorado,08085,198,12 +2020-06-19,Montrose,Colorado,08085,198,12 +2020-06-20,Montrose,Colorado,08085,199,12 +2020-06-21,Montrose,Colorado,08085,200,12 +2020-06-22,Montrose,Colorado,08085,201,12 +2020-06-23,Montrose,Colorado,08085,201,12 +2020-06-24,Montrose,Colorado,08085,201,12 +2020-06-25,Montrose,Colorado,08085,202,12 +2020-06-26,Montrose,Colorado,08085,203,12 +2020-06-27,Montrose,Colorado,08085,203,12 +2020-06-28,Montrose,Colorado,08085,204,12 +2020-06-29,Montrose,Colorado,08085,205,12 +2020-06-30,Montrose,Colorado,08085,207,12 +2020-07-01,Montrose,Colorado,08085,207,12 +2020-07-02,Montrose,Colorado,08085,208,12 +2020-07-03,Montrose,Colorado,08085,209,12 +2020-07-04,Montrose,Colorado,08085,208,12 +2020-07-05,Montrose,Colorado,08085,208,12 +2020-07-06,Montrose,Colorado,08085,210,12 +2020-07-07,Montrose,Colorado,08085,211,12 +2020-07-08,Montrose,Colorado,08085,213,12 +2020-07-09,Montrose,Colorado,08085,214,12 +2020-03-19,Morgan,Colorado,08087,1,0 +2020-03-20,Morgan,Colorado,08087,2,0 +2020-03-21,Morgan,Colorado,08087,2,0 +2020-03-22,Morgan,Colorado,08087,2,0 +2020-03-23,Morgan,Colorado,08087,3,0 +2020-03-24,Morgan,Colorado,08087,3,0 +2020-03-25,Morgan,Colorado,08087,3,0 +2020-03-26,Morgan,Colorado,08087,3,0 +2020-03-27,Morgan,Colorado,08087,4,0 +2020-03-28,Morgan,Colorado,08087,4,0 +2020-03-29,Morgan,Colorado,08087,5,0 +2020-03-30,Morgan,Colorado,08087,4,0 +2020-03-31,Morgan,Colorado,08087,4,0 +2020-04-01,Morgan,Colorado,08087,5,0 +2020-04-02,Morgan,Colorado,08087,7,0 +2020-04-03,Morgan,Colorado,08087,7,0 +2020-04-04,Morgan,Colorado,08087,16,0 +2020-04-05,Morgan,Colorado,08087,17,0 +2020-04-06,Morgan,Colorado,08087,19,0 +2020-04-07,Morgan,Colorado,08087,23,0 +2020-04-08,Morgan,Colorado,08087,23,0 +2020-04-09,Morgan,Colorado,08087,44,0 +2020-04-10,Morgan,Colorado,08087,51,0 +2020-04-11,Morgan,Colorado,08087,56,0 +2020-04-12,Morgan,Colorado,08087,59,0 +2020-04-13,Morgan,Colorado,08087,75,0 +2020-04-14,Morgan,Colorado,08087,89,0 +2020-04-15,Morgan,Colorado,08087,103,0 +2020-04-16,Morgan,Colorado,08087,122,0 +2020-04-17,Morgan,Colorado,08087,135,2 +2020-04-18,Morgan,Colorado,08087,147,2 +2020-04-19,Morgan,Colorado,08087,157,2 +2020-04-20,Morgan,Colorado,08087,167,3 +2020-04-21,Morgan,Colorado,08087,180,4 +2020-04-22,Morgan,Colorado,08087,202,4 +2020-04-23,Morgan,Colorado,08087,214,8 +2020-04-24,Morgan,Colorado,08087,232,8 +2020-04-25,Morgan,Colorado,08087,249,11 +2020-04-26,Morgan,Colorado,08087,259,13 +2020-04-27,Morgan,Colorado,08087,298,15 +2020-04-28,Morgan,Colorado,08087,344,16 +2020-04-29,Morgan,Colorado,08087,358,16 +2020-04-30,Morgan,Colorado,08087,372,16 +2020-05-01,Morgan,Colorado,08087,384,17 +2020-05-02,Morgan,Colorado,08087,395,20 +2020-05-03,Morgan,Colorado,08087,399,20 +2020-05-04,Morgan,Colorado,08087,413,20 +2020-05-05,Morgan,Colorado,08087,422,21 +2020-05-06,Morgan,Colorado,08087,439,21 +2020-05-07,Morgan,Colorado,08087,448,22 +2020-05-08,Morgan,Colorado,08087,463,22 +2020-05-09,Morgan,Colorado,08087,485,22 +2020-05-10,Morgan,Colorado,08087,508,22 +2020-05-11,Morgan,Colorado,08087,517,22 +2020-05-12,Morgan,Colorado,08087,521,22 +2020-05-13,Morgan,Colorado,08087,527,24 +2020-05-14,Morgan,Colorado,08087,534,26 +2020-05-15,Morgan,Colorado,08087,542,27 +2020-05-16,Morgan,Colorado,08087,557,29 +2020-05-17,Morgan,Colorado,08087,561,32 +2020-05-18,Morgan,Colorado,08087,565,32 +2020-05-19,Morgan,Colorado,08087,574,35 +2020-05-20,Morgan,Colorado,08087,579,37 +2020-05-21,Morgan,Colorado,08087,586,38 +2020-05-22,Morgan,Colorado,08087,591,40 +2020-05-23,Morgan,Colorado,08087,603,41 +2020-05-24,Morgan,Colorado,08087,604,41 +2020-05-25,Morgan,Colorado,08087,609,41 +2020-05-26,Morgan,Colorado,08087,613,42 +2020-05-27,Morgan,Colorado,08087,616,42 +2020-05-28,Morgan,Colorado,08087,620,42 +2020-05-29,Morgan,Colorado,08087,623,42 +2020-05-30,Morgan,Colorado,08087,628,43 +2020-05-31,Morgan,Colorado,08087,629,43 +2020-06-01,Morgan,Colorado,08087,630,43 +2020-06-02,Morgan,Colorado,08087,631,43 +2020-06-03,Morgan,Colorado,08087,635,45 +2020-06-04,Morgan,Colorado,08087,638,46 +2020-06-05,Morgan,Colorado,08087,641,46 +2020-06-06,Morgan,Colorado,08087,641,46 +2020-06-07,Morgan,Colorado,08087,644,46 +2020-06-08,Morgan,Colorado,08087,645,46 +2020-06-09,Morgan,Colorado,08087,644,45 +2020-06-10,Morgan,Colorado,08087,644,45 +2020-06-11,Morgan,Colorado,08087,645,45 +2020-06-12,Morgan,Colorado,08087,645,45 +2020-06-13,Morgan,Colorado,08087,646,45 +2020-06-14,Morgan,Colorado,08087,646,45 +2020-06-15,Morgan,Colorado,08087,646,45 +2020-06-16,Morgan,Colorado,08087,646,45 +2020-06-17,Morgan,Colorado,08087,646,45 +2020-06-18,Morgan,Colorado,08087,647,46 +2020-06-19,Morgan,Colorado,08087,649,46 +2020-06-20,Morgan,Colorado,08087,649,46 +2020-06-21,Morgan,Colorado,08087,649,46 +2020-06-22,Morgan,Colorado,08087,649,46 +2020-06-23,Morgan,Colorado,08087,649,46 +2020-06-24,Morgan,Colorado,08087,649,46 +2020-06-25,Morgan,Colorado,08087,649,46 +2020-06-26,Morgan,Colorado,08087,650,46 +2020-06-27,Morgan,Colorado,08087,651,46 +2020-06-28,Morgan,Colorado,08087,652,46 +2020-06-29,Morgan,Colorado,08087,652,46 +2020-06-30,Morgan,Colorado,08087,652,46 +2020-07-01,Morgan,Colorado,08087,653,46 +2020-07-02,Morgan,Colorado,08087,654,46 +2020-07-03,Morgan,Colorado,08087,654,46 +2020-07-04,Morgan,Colorado,08087,655,46 +2020-07-05,Morgan,Colorado,08087,655,46 +2020-07-06,Morgan,Colorado,08087,655,46 +2020-07-07,Morgan,Colorado,08087,655,46 +2020-07-08,Morgan,Colorado,08087,655,46 +2020-07-09,Morgan,Colorado,08087,655,46 +2020-03-25,Otero,Colorado,08089,1,0 +2020-03-26,Otero,Colorado,08089,1,0 +2020-03-27,Otero,Colorado,08089,2,0 +2020-03-28,Otero,Colorado,08089,3,0 +2020-03-29,Otero,Colorado,08089,3,0 +2020-03-30,Otero,Colorado,08089,3,0 +2020-03-31,Otero,Colorado,08089,3,0 +2020-04-01,Otero,Colorado,08089,3,0 +2020-04-02,Otero,Colorado,08089,3,0 +2020-04-03,Otero,Colorado,08089,3,0 +2020-04-04,Otero,Colorado,08089,3,0 +2020-04-05,Otero,Colorado,08089,3,0 +2020-04-06,Otero,Colorado,08089,4,0 +2020-04-07,Otero,Colorado,08089,4,0 +2020-04-08,Otero,Colorado,08089,4,0 +2020-04-09,Otero,Colorado,08089,5,0 +2020-04-10,Otero,Colorado,08089,5,0 +2020-04-11,Otero,Colorado,08089,5,0 +2020-04-12,Otero,Colorado,08089,5,0 +2020-04-13,Otero,Colorado,08089,5,0 +2020-04-14,Otero,Colorado,08089,5,0 +2020-04-15,Otero,Colorado,08089,5,0 +2020-04-16,Otero,Colorado,08089,5,0 +2020-04-17,Otero,Colorado,08089,6,0 +2020-04-18,Otero,Colorado,08089,6,0 +2020-04-19,Otero,Colorado,08089,6,0 +2020-04-20,Otero,Colorado,08089,7,0 +2020-04-21,Otero,Colorado,08089,7,0 +2020-04-22,Otero,Colorado,08089,7,0 +2020-04-23,Otero,Colorado,08089,7,0 +2020-04-24,Otero,Colorado,08089,8,1 +2020-04-25,Otero,Colorado,08089,8,1 +2020-04-26,Otero,Colorado,08089,8,1 +2020-04-27,Otero,Colorado,08089,8,1 +2020-04-28,Otero,Colorado,08089,8,1 +2020-04-29,Otero,Colorado,08089,8,1 +2020-04-30,Otero,Colorado,08089,10,1 +2020-05-01,Otero,Colorado,08089,10,1 +2020-05-02,Otero,Colorado,08089,10,1 +2020-05-03,Otero,Colorado,08089,10,1 +2020-05-04,Otero,Colorado,08089,10,1 +2020-05-05,Otero,Colorado,08089,10,1 +2020-05-06,Otero,Colorado,08089,10,1 +2020-05-07,Otero,Colorado,08089,10,1 +2020-05-08,Otero,Colorado,08089,10,1 +2020-05-09,Otero,Colorado,08089,10,1 +2020-05-10,Otero,Colorado,08089,10,1 +2020-05-11,Otero,Colorado,08089,10,1 +2020-05-12,Otero,Colorado,08089,10,1 +2020-05-13,Otero,Colorado,08089,11,1 +2020-05-14,Otero,Colorado,08089,11,1 +2020-05-15,Otero,Colorado,08089,11,1 +2020-05-16,Otero,Colorado,08089,11,1 +2020-05-17,Otero,Colorado,08089,11,1 +2020-05-18,Otero,Colorado,08089,11,1 +2020-05-19,Otero,Colorado,08089,11,1 +2020-05-20,Otero,Colorado,08089,13,1 +2020-05-21,Otero,Colorado,08089,14,1 +2020-05-22,Otero,Colorado,08089,14,1 +2020-05-23,Otero,Colorado,08089,14,1 +2020-05-24,Otero,Colorado,08089,14,1 +2020-05-25,Otero,Colorado,08089,15,1 +2020-05-26,Otero,Colorado,08089,15,1 +2020-05-27,Otero,Colorado,08089,15,1 +2020-05-28,Otero,Colorado,08089,18,1 +2020-05-29,Otero,Colorado,08089,18,1 +2020-05-30,Otero,Colorado,08089,18,1 +2020-05-31,Otero,Colorado,08089,19,1 +2020-06-01,Otero,Colorado,08089,19,1 +2020-06-02,Otero,Colorado,08089,19,1 +2020-06-03,Otero,Colorado,08089,20,1 +2020-06-04,Otero,Colorado,08089,21,1 +2020-06-05,Otero,Colorado,08089,21,1 +2020-06-06,Otero,Colorado,08089,21,1 +2020-06-07,Otero,Colorado,08089,21,1 +2020-06-08,Otero,Colorado,08089,22,1 +2020-06-09,Otero,Colorado,08089,22,1 +2020-06-10,Otero,Colorado,08089,22,1 +2020-06-11,Otero,Colorado,08089,22,1 +2020-06-12,Otero,Colorado,08089,22,1 +2020-06-13,Otero,Colorado,08089,22,1 +2020-06-14,Otero,Colorado,08089,22,1 +2020-06-15,Otero,Colorado,08089,22,1 +2020-06-16,Otero,Colorado,08089,22,1 +2020-06-17,Otero,Colorado,08089,22,1 +2020-06-18,Otero,Colorado,08089,22,1 +2020-06-19,Otero,Colorado,08089,22,1 +2020-06-20,Otero,Colorado,08089,22,1 +2020-06-21,Otero,Colorado,08089,22,1 +2020-06-22,Otero,Colorado,08089,22,1 +2020-06-23,Otero,Colorado,08089,22,1 +2020-06-24,Otero,Colorado,08089,22,1 +2020-06-25,Otero,Colorado,08089,22,1 +2020-06-26,Otero,Colorado,08089,22,1 +2020-06-27,Otero,Colorado,08089,22,1 +2020-06-28,Otero,Colorado,08089,22,1 +2020-06-29,Otero,Colorado,08089,22,1 +2020-06-30,Otero,Colorado,08089,22,1 +2020-07-01,Otero,Colorado,08089,22,1 +2020-07-02,Otero,Colorado,08089,22,1 +2020-07-03,Otero,Colorado,08089,22,1 +2020-07-04,Otero,Colorado,08089,22,1 +2020-07-05,Otero,Colorado,08089,22,1 +2020-07-06,Otero,Colorado,08089,22,1 +2020-07-07,Otero,Colorado,08089,22,1 +2020-07-08,Otero,Colorado,08089,22,1 +2020-07-09,Otero,Colorado,08089,22,1 +2020-04-04,Ouray,Colorado,08091,2,0 +2020-04-05,Ouray,Colorado,08091,2,0 +2020-04-06,Ouray,Colorado,08091,2,0 +2020-04-07,Ouray,Colorado,08091,3,0 +2020-04-08,Ouray,Colorado,08091,3,0 +2020-04-09,Ouray,Colorado,08091,4,1 +2020-04-10,Ouray,Colorado,08091,4,1 +2020-04-11,Ouray,Colorado,08091,4,1 +2020-04-12,Ouray,Colorado,08091,4,1 +2020-04-13,Ouray,Colorado,08091,4,1 +2020-04-14,Ouray,Colorado,08091,4,1 +2020-04-15,Ouray,Colorado,08091,4,1 +2020-04-16,Ouray,Colorado,08091,4,1 +2020-04-17,Ouray,Colorado,08091,5,1 +2020-04-18,Ouray,Colorado,08091,5,1 +2020-04-19,Ouray,Colorado,08091,5,1 +2020-04-20,Ouray,Colorado,08091,5,1 +2020-04-21,Ouray,Colorado,08091,5,1 +2020-04-22,Ouray,Colorado,08091,5,1 +2020-04-23,Ouray,Colorado,08091,5,1 +2020-04-24,Ouray,Colorado,08091,5,1 +2020-04-25,Ouray,Colorado,08091,5,1 +2020-04-26,Ouray,Colorado,08091,5,1 +2020-04-27,Ouray,Colorado,08091,5,1 +2020-04-28,Ouray,Colorado,08091,5,1 +2020-04-29,Ouray,Colorado,08091,5,1 +2020-04-30,Ouray,Colorado,08091,5,1 +2020-05-01,Ouray,Colorado,08091,5,1 +2020-05-02,Ouray,Colorado,08091,5,1 +2020-05-03,Ouray,Colorado,08091,5,1 +2020-05-04,Ouray,Colorado,08091,5,1 +2020-05-05,Ouray,Colorado,08091,5,1 +2020-05-06,Ouray,Colorado,08091,5,1 +2020-05-07,Ouray,Colorado,08091,5,1 +2020-05-08,Ouray,Colorado,08091,6,1 +2020-05-09,Ouray,Colorado,08091,6,1 +2020-05-10,Ouray,Colorado,08091,6,1 +2020-05-11,Ouray,Colorado,08091,6,1 +2020-05-12,Ouray,Colorado,08091,6,1 +2020-05-13,Ouray,Colorado,08091,6,1 +2020-05-14,Ouray,Colorado,08091,6,1 +2020-05-15,Ouray,Colorado,08091,7,1 +2020-05-16,Ouray,Colorado,08091,7,1 +2020-05-17,Ouray,Colorado,08091,7,1 +2020-05-18,Ouray,Colorado,08091,7,1 +2020-05-19,Ouray,Colorado,08091,7,1 +2020-05-20,Ouray,Colorado,08091,7,1 +2020-05-21,Ouray,Colorado,08091,7,1 +2020-05-22,Ouray,Colorado,08091,7,1 +2020-05-23,Ouray,Colorado,08091,8,1 +2020-05-24,Ouray,Colorado,08091,8,1 +2020-05-25,Ouray,Colorado,08091,8,1 +2020-05-26,Ouray,Colorado,08091,8,1 +2020-05-27,Ouray,Colorado,08091,8,1 +2020-05-28,Ouray,Colorado,08091,8,1 +2020-05-29,Ouray,Colorado,08091,8,1 +2020-05-30,Ouray,Colorado,08091,8,1 +2020-05-31,Ouray,Colorado,08091,8,1 +2020-06-01,Ouray,Colorado,08091,8,1 +2020-06-02,Ouray,Colorado,08091,8,1 +2020-06-03,Ouray,Colorado,08091,8,1 +2020-06-04,Ouray,Colorado,08091,8,1 +2020-06-05,Ouray,Colorado,08091,8,1 +2020-06-06,Ouray,Colorado,08091,8,1 +2020-06-07,Ouray,Colorado,08091,8,1 +2020-06-08,Ouray,Colorado,08091,8,1 +2020-06-09,Ouray,Colorado,08091,8,1 +2020-06-10,Ouray,Colorado,08091,8,1 +2020-06-11,Ouray,Colorado,08091,8,1 +2020-06-12,Ouray,Colorado,08091,8,1 +2020-06-13,Ouray,Colorado,08091,8,1 +2020-06-14,Ouray,Colorado,08091,8,1 +2020-06-15,Ouray,Colorado,08091,8,1 +2020-06-16,Ouray,Colorado,08091,8,1 +2020-06-17,Ouray,Colorado,08091,8,1 +2020-06-18,Ouray,Colorado,08091,9,1 +2020-06-19,Ouray,Colorado,08091,9,1 +2020-06-20,Ouray,Colorado,08091,10,1 +2020-06-21,Ouray,Colorado,08091,10,1 +2020-06-22,Ouray,Colorado,08091,10,1 +2020-06-23,Ouray,Colorado,08091,10,1 +2020-06-24,Ouray,Colorado,08091,10,1 +2020-06-25,Ouray,Colorado,08091,10,1 +2020-06-26,Ouray,Colorado,08091,10,1 +2020-06-27,Ouray,Colorado,08091,10,1 +2020-06-28,Ouray,Colorado,08091,10,1 +2020-06-29,Ouray,Colorado,08091,10,1 +2020-06-30,Ouray,Colorado,08091,11,1 +2020-07-01,Ouray,Colorado,08091,11,1 +2020-07-02,Ouray,Colorado,08091,11,1 +2020-07-03,Ouray,Colorado,08091,11,1 +2020-07-04,Ouray,Colorado,08091,12,1 +2020-07-05,Ouray,Colorado,08091,12,1 +2020-07-06,Ouray,Colorado,08091,12,1 +2020-07-07,Ouray,Colorado,08091,12,1 +2020-07-08,Ouray,Colorado,08091,12,1 +2020-07-09,Ouray,Colorado,08091,12,1 +2020-03-20,Park,Colorado,08093,1,0 +2020-03-21,Park,Colorado,08093,1,0 +2020-03-22,Park,Colorado,08093,1,0 +2020-03-23,Park,Colorado,08093,1,0 +2020-03-24,Park,Colorado,08093,1,0 +2020-03-25,Park,Colorado,08093,1,0 +2020-03-26,Park,Colorado,08093,1,0 +2020-03-27,Park,Colorado,08093,1,0 +2020-03-28,Park,Colorado,08093,1,0 +2020-03-29,Park,Colorado,08093,3,0 +2020-03-30,Park,Colorado,08093,4,0 +2020-03-31,Park,Colorado,08093,3,0 +2020-04-01,Park,Colorado,08093,3,0 +2020-04-02,Park,Colorado,08093,3,0 +2020-04-03,Park,Colorado,08093,5,0 +2020-04-04,Park,Colorado,08093,5,0 +2020-04-05,Park,Colorado,08093,5,0 +2020-04-06,Park,Colorado,08093,5,0 +2020-04-07,Park,Colorado,08093,5,0 +2020-04-08,Park,Colorado,08093,5,0 +2020-04-09,Park,Colorado,08093,5,0 +2020-04-10,Park,Colorado,08093,6,0 +2020-04-11,Park,Colorado,08093,6,0 +2020-04-12,Park,Colorado,08093,6,0 +2020-04-13,Park,Colorado,08093,6,0 +2020-04-14,Park,Colorado,08093,6,0 +2020-04-15,Park,Colorado,08093,6,0 +2020-04-16,Park,Colorado,08093,6,0 +2020-04-17,Park,Colorado,08093,6,0 +2020-04-18,Park,Colorado,08093,6,0 +2020-04-19,Park,Colorado,08093,6,0 +2020-04-20,Park,Colorado,08093,6,0 +2020-04-21,Park,Colorado,08093,6,0 +2020-04-22,Park,Colorado,08093,6,0 +2020-04-23,Park,Colorado,08093,6,0 +2020-04-24,Park,Colorado,08093,7,0 +2020-04-25,Park,Colorado,08093,7,0 +2020-04-26,Park,Colorado,08093,7,0 +2020-04-27,Park,Colorado,08093,7,0 +2020-04-28,Park,Colorado,08093,11,0 +2020-04-29,Park,Colorado,08093,11,0 +2020-04-30,Park,Colorado,08093,11,0 +2020-05-01,Park,Colorado,08093,13,0 +2020-05-02,Park,Colorado,08093,14,0 +2020-05-03,Park,Colorado,08093,14,0 +2020-05-04,Park,Colorado,08093,14,0 +2020-05-05,Park,Colorado,08093,14,0 +2020-05-06,Park,Colorado,08093,15,0 +2020-05-07,Park,Colorado,08093,15,0 +2020-05-08,Park,Colorado,08093,15,0 +2020-05-09,Park,Colorado,08093,15,0 +2020-05-10,Park,Colorado,08093,15,0 +2020-05-11,Park,Colorado,08093,16,0 +2020-05-12,Park,Colorado,08093,16,0 +2020-05-13,Park,Colorado,08093,16,0 +2020-05-14,Park,Colorado,08093,16,0 +2020-05-15,Park,Colorado,08093,16,0 +2020-05-16,Park,Colorado,08093,16,0 +2020-05-17,Park,Colorado,08093,16,0 +2020-05-18,Park,Colorado,08093,16,0 +2020-05-19,Park,Colorado,08093,20,0 +2020-05-20,Park,Colorado,08093,20,0 +2020-05-21,Park,Colorado,08093,21,0 +2020-05-22,Park,Colorado,08093,21,0 +2020-05-23,Park,Colorado,08093,23,0 +2020-05-24,Park,Colorado,08093,23,0 +2020-05-25,Park,Colorado,08093,23,0 +2020-05-26,Park,Colorado,08093,23,0 +2020-05-27,Park,Colorado,08093,23,0 +2020-05-28,Park,Colorado,08093,23,0 +2020-05-29,Park,Colorado,08093,23,0 +2020-05-30,Park,Colorado,08093,23,0 +2020-05-31,Park,Colorado,08093,23,0 +2020-06-01,Park,Colorado,08093,23,0 +2020-06-02,Park,Colorado,08093,23,0 +2020-06-03,Park,Colorado,08093,23,0 +2020-06-04,Park,Colorado,08093,23,0 +2020-06-05,Park,Colorado,08093,23,0 +2020-06-06,Park,Colorado,08093,23,0 +2020-06-07,Park,Colorado,08093,23,0 +2020-06-08,Park,Colorado,08093,23,0 +2020-06-09,Park,Colorado,08093,23,0 +2020-06-10,Park,Colorado,08093,24,0 +2020-06-11,Park,Colorado,08093,23,0 +2020-06-12,Park,Colorado,08093,23,0 +2020-06-13,Park,Colorado,08093,23,0 +2020-06-14,Park,Colorado,08093,23,0 +2020-06-15,Park,Colorado,08093,23,0 +2020-06-16,Park,Colorado,08093,23,0 +2020-06-17,Park,Colorado,08093,23,0 +2020-06-18,Park,Colorado,08093,23,0 +2020-06-19,Park,Colorado,08093,23,0 +2020-06-20,Park,Colorado,08093,23,0 +2020-06-21,Park,Colorado,08093,24,0 +2020-06-22,Park,Colorado,08093,25,0 +2020-06-23,Park,Colorado,08093,26,0 +2020-06-24,Park,Colorado,08093,27,0 +2020-06-25,Park,Colorado,08093,27,0 +2020-06-26,Park,Colorado,08093,27,0 +2020-06-27,Park,Colorado,08093,27,0 +2020-06-28,Park,Colorado,08093,27,0 +2020-06-29,Park,Colorado,08093,27,0 +2020-06-30,Park,Colorado,08093,27,0 +2020-07-01,Park,Colorado,08093,27,0 +2020-07-02,Park,Colorado,08093,27,0 +2020-07-03,Park,Colorado,08093,27,0 +2020-07-04,Park,Colorado,08093,27,0 +2020-07-05,Park,Colorado,08093,27,0 +2020-07-06,Park,Colorado,08093,28,0 +2020-07-07,Park,Colorado,08093,28,0 +2020-07-08,Park,Colorado,08093,32,0 +2020-07-09,Park,Colorado,08093,32,0 +2020-03-30,Phillips,Colorado,08095,1,0 +2020-03-31,Phillips,Colorado,08095,1,0 +2020-04-01,Phillips,Colorado,08095,1,0 +2020-04-02,Phillips,Colorado,08095,2,0 +2020-04-03,Phillips,Colorado,08095,2,0 +2020-04-04,Phillips,Colorado,08095,3,0 +2020-04-05,Phillips,Colorado,08095,3,0 +2020-04-06,Phillips,Colorado,08095,3,0 +2020-04-07,Phillips,Colorado,08095,3,0 +2020-04-08,Phillips,Colorado,08095,4,0 +2020-04-09,Phillips,Colorado,08095,4,0 +2020-04-10,Phillips,Colorado,08095,4,0 +2020-04-11,Phillips,Colorado,08095,4,0 +2020-04-12,Phillips,Colorado,08095,4,0 +2020-04-13,Phillips,Colorado,08095,4,0 +2020-04-14,Phillips,Colorado,08095,4,0 +2020-04-15,Phillips,Colorado,08095,4,0 +2020-04-16,Phillips,Colorado,08095,4,0 +2020-04-17,Phillips,Colorado,08095,5,0 +2020-04-18,Phillips,Colorado,08095,5,0 +2020-04-19,Phillips,Colorado,08095,5,0 +2020-04-20,Phillips,Colorado,08095,5,0 +2020-04-21,Phillips,Colorado,08095,5,0 +2020-04-22,Phillips,Colorado,08095,5,0 +2020-04-23,Phillips,Colorado,08095,5,0 +2020-04-24,Phillips,Colorado,08095,5,0 +2020-04-25,Phillips,Colorado,08095,5,0 +2020-04-26,Phillips,Colorado,08095,5,0 +2020-04-27,Phillips,Colorado,08095,6,0 +2020-04-28,Phillips,Colorado,08095,6,0 +2020-04-29,Phillips,Colorado,08095,6,0 +2020-04-30,Phillips,Colorado,08095,5,0 +2020-05-01,Phillips,Colorado,08095,5,0 +2020-05-02,Phillips,Colorado,08095,5,0 +2020-05-03,Phillips,Colorado,08095,5,0 +2020-05-04,Phillips,Colorado,08095,5,0 +2020-05-05,Phillips,Colorado,08095,5,0 +2020-05-06,Phillips,Colorado,08095,6,0 +2020-05-07,Phillips,Colorado,08095,7,0 +2020-05-08,Phillips,Colorado,08095,7,0 +2020-05-09,Phillips,Colorado,08095,8,0 +2020-05-10,Phillips,Colorado,08095,8,0 +2020-05-11,Phillips,Colorado,08095,9,0 +2020-05-12,Phillips,Colorado,08095,9,0 +2020-05-13,Phillips,Colorado,08095,9,0 +2020-05-14,Phillips,Colorado,08095,9,0 +2020-05-15,Phillips,Colorado,08095,10,0 +2020-05-16,Phillips,Colorado,08095,10,0 +2020-05-17,Phillips,Colorado,08095,10,0 +2020-05-18,Phillips,Colorado,08095,10,0 +2020-05-19,Phillips,Colorado,08095,10,0 +2020-05-20,Phillips,Colorado,08095,10,0 +2020-05-21,Phillips,Colorado,08095,10,0 +2020-05-22,Phillips,Colorado,08095,10,0 +2020-05-23,Phillips,Colorado,08095,12,0 +2020-05-24,Phillips,Colorado,08095,12,0 +2020-05-25,Phillips,Colorado,08095,12,0 +2020-05-26,Phillips,Colorado,08095,12,0 +2020-05-27,Phillips,Colorado,08095,12,0 +2020-05-28,Phillips,Colorado,08095,12,0 +2020-05-29,Phillips,Colorado,08095,13,0 +2020-05-30,Phillips,Colorado,08095,13,0 +2020-05-31,Phillips,Colorado,08095,13,0 +2020-06-01,Phillips,Colorado,08095,14,0 +2020-06-02,Phillips,Colorado,08095,14,0 +2020-06-03,Phillips,Colorado,08095,14,0 +2020-06-04,Phillips,Colorado,08095,14,0 +2020-06-05,Phillips,Colorado,08095,14,0 +2020-06-06,Phillips,Colorado,08095,14,0 +2020-06-07,Phillips,Colorado,08095,14,0 +2020-06-08,Phillips,Colorado,08095,15,0 +2020-06-09,Phillips,Colorado,08095,15,0 +2020-06-10,Phillips,Colorado,08095,15,0 +2020-06-11,Phillips,Colorado,08095,15,0 +2020-06-12,Phillips,Colorado,08095,15,0 +2020-06-13,Phillips,Colorado,08095,15,0 +2020-06-14,Phillips,Colorado,08095,15,0 +2020-06-15,Phillips,Colorado,08095,15,0 +2020-06-16,Phillips,Colorado,08095,15,0 +2020-06-17,Phillips,Colorado,08095,15,0 +2020-06-18,Phillips,Colorado,08095,15,0 +2020-06-19,Phillips,Colorado,08095,15,0 +2020-06-20,Phillips,Colorado,08095,15,0 +2020-06-21,Phillips,Colorado,08095,15,0 +2020-06-22,Phillips,Colorado,08095,15,0 +2020-06-23,Phillips,Colorado,08095,15,0 +2020-06-24,Phillips,Colorado,08095,15,0 +2020-06-25,Phillips,Colorado,08095,15,0 +2020-06-26,Phillips,Colorado,08095,15,0 +2020-06-27,Phillips,Colorado,08095,15,0 +2020-06-28,Phillips,Colorado,08095,16,0 +2020-06-29,Phillips,Colorado,08095,16,0 +2020-06-30,Phillips,Colorado,08095,16,0 +2020-07-01,Phillips,Colorado,08095,16,0 +2020-07-02,Phillips,Colorado,08095,16,0 +2020-07-03,Phillips,Colorado,08095,16,0 +2020-07-04,Phillips,Colorado,08095,16,0 +2020-07-05,Phillips,Colorado,08095,16,0 +2020-07-06,Phillips,Colorado,08095,16,0 +2020-07-07,Phillips,Colorado,08095,16,0 +2020-07-08,Phillips,Colorado,08095,16,0 +2020-07-09,Phillips,Colorado,08095,16,0 +2020-03-11,Pitkin,Colorado,08097,9,0 +2020-03-12,Pitkin,Colorado,08097,10,0 +2020-03-13,Pitkin,Colorado,08097,10,0 +2020-03-14,Pitkin,Colorado,08097,11,0 +2020-03-15,Pitkin,Colorado,08097,11,0 +2020-03-16,Pitkin,Colorado,08097,11,0 +2020-03-17,Pitkin,Colorado,08097,11,0 +2020-03-18,Pitkin,Colorado,08097,11,0 +2020-03-19,Pitkin,Colorado,08097,12,0 +2020-03-20,Pitkin,Colorado,08097,15,0 +2020-03-21,Pitkin,Colorado,08097,15,0 +2020-03-22,Pitkin,Colorado,08097,16,0 +2020-03-23,Pitkin,Colorado,08097,18,0 +2020-03-24,Pitkin,Colorado,08097,18,0 +2020-03-25,Pitkin,Colorado,08097,21,0 +2020-03-26,Pitkin,Colorado,08097,23,0 +2020-03-27,Pitkin,Colorado,08097,25,0 +2020-03-28,Pitkin,Colorado,08097,26,2 +2020-03-29,Pitkin,Colorado,08097,27,2 +2020-03-30,Pitkin,Colorado,08097,29,2 +2020-03-31,Pitkin,Colorado,08097,30,2 +2020-04-01,Pitkin,Colorado,08097,33,2 +2020-04-02,Pitkin,Colorado,08097,36,2 +2020-04-03,Pitkin,Colorado,08097,38,2 +2020-04-04,Pitkin,Colorado,08097,38,2 +2020-04-05,Pitkin,Colorado,08097,38,2 +2020-04-06,Pitkin,Colorado,08097,39,2 +2020-04-07,Pitkin,Colorado,08097,39,2 +2020-04-08,Pitkin,Colorado,08097,39,2 +2020-04-09,Pitkin,Colorado,08097,39,2 +2020-04-10,Pitkin,Colorado,08097,47,2 +2020-04-11,Pitkin,Colorado,08097,49,2 +2020-04-12,Pitkin,Colorado,08097,49,2 +2020-04-13,Pitkin,Colorado,08097,49,2 +2020-04-14,Pitkin,Colorado,08097,49,2 +2020-04-15,Pitkin,Colorado,08097,51,2 +2020-04-16,Pitkin,Colorado,08097,51,2 +2020-04-17,Pitkin,Colorado,08097,51,2 +2020-04-18,Pitkin,Colorado,08097,57,2 +2020-04-19,Pitkin,Colorado,08097,57,2 +2020-04-20,Pitkin,Colorado,08097,57,2 +2020-04-21,Pitkin,Colorado,08097,58,2 +2020-04-22,Pitkin,Colorado,08097,57,2 +2020-04-23,Pitkin,Colorado,08097,57,2 +2020-04-24,Pitkin,Colorado,08097,59,3 +2020-04-25,Pitkin,Colorado,08097,59,2 +2020-04-26,Pitkin,Colorado,08097,61,2 +2020-04-27,Pitkin,Colorado,08097,61,2 +2020-04-28,Pitkin,Colorado,08097,61,2 +2020-04-29,Pitkin,Colorado,08097,62,2 +2020-04-30,Pitkin,Colorado,08097,65,2 +2020-05-01,Pitkin,Colorado,08097,51,2 +2020-05-02,Pitkin,Colorado,08097,51,2 +2020-05-03,Pitkin,Colorado,08097,51,2 +2020-05-04,Pitkin,Colorado,08097,51,2 +2020-05-05,Pitkin,Colorado,08097,52,2 +2020-05-06,Pitkin,Colorado,08097,53,2 +2020-05-07,Pitkin,Colorado,08097,54,2 +2020-05-08,Pitkin,Colorado,08097,54,2 +2020-05-09,Pitkin,Colorado,08097,54,2 +2020-05-10,Pitkin,Colorado,08097,54,2 +2020-05-11,Pitkin,Colorado,08097,54,2 +2020-05-12,Pitkin,Colorado,08097,54,2 +2020-05-13,Pitkin,Colorado,08097,54,2 +2020-05-14,Pitkin,Colorado,08097,54,2 +2020-05-15,Pitkin,Colorado,08097,56,2 +2020-05-16,Pitkin,Colorado,08097,56,2 +2020-05-17,Pitkin,Colorado,08097,56,2 +2020-05-18,Pitkin,Colorado,08097,57,2 +2020-05-19,Pitkin,Colorado,08097,57,2 +2020-05-20,Pitkin,Colorado,08097,57,2 +2020-05-21,Pitkin,Colorado,08097,57,2 +2020-05-22,Pitkin,Colorado,08097,57,2 +2020-05-23,Pitkin,Colorado,08097,57,2 +2020-05-24,Pitkin,Colorado,08097,57,2 +2020-05-25,Pitkin,Colorado,08097,57,2 +2020-05-26,Pitkin,Colorado,08097,57,2 +2020-05-27,Pitkin,Colorado,08097,57,2 +2020-05-28,Pitkin,Colorado,08097,57,2 +2020-05-29,Pitkin,Colorado,08097,57,2 +2020-05-30,Pitkin,Colorado,08097,58,2 +2020-05-31,Pitkin,Colorado,08097,58,2 +2020-06-01,Pitkin,Colorado,08097,58,2 +2020-06-02,Pitkin,Colorado,08097,58,2 +2020-06-03,Pitkin,Colorado,08097,59,2 +2020-06-04,Pitkin,Colorado,08097,59,2 +2020-06-05,Pitkin,Colorado,08097,59,2 +2020-06-06,Pitkin,Colorado,08097,60,2 +2020-06-07,Pitkin,Colorado,08097,59,2 +2020-06-08,Pitkin,Colorado,08097,61,2 +2020-06-09,Pitkin,Colorado,08097,62,2 +2020-06-10,Pitkin,Colorado,08097,63,2 +2020-06-11,Pitkin,Colorado,08097,64,2 +2020-06-12,Pitkin,Colorado,08097,63,2 +2020-06-13,Pitkin,Colorado,08097,65,2 +2020-06-14,Pitkin,Colorado,08097,65,2 +2020-06-15,Pitkin,Colorado,08097,67,2 +2020-06-16,Pitkin,Colorado,08097,72,2 +2020-06-17,Pitkin,Colorado,08097,75,2 +2020-06-18,Pitkin,Colorado,08097,78,2 +2020-06-19,Pitkin,Colorado,08097,80,2 +2020-06-20,Pitkin,Colorado,08097,80,2 +2020-06-21,Pitkin,Colorado,08097,80,2 +2020-06-22,Pitkin,Colorado,08097,80,2 +2020-06-23,Pitkin,Colorado,08097,85,2 +2020-06-24,Pitkin,Colorado,08097,86,2 +2020-06-25,Pitkin,Colorado,08097,91,2 +2020-06-26,Pitkin,Colorado,08097,93,2 +2020-06-27,Pitkin,Colorado,08097,92,2 +2020-06-28,Pitkin,Colorado,08097,93,2 +2020-06-29,Pitkin,Colorado,08097,94,2 +2020-06-30,Pitkin,Colorado,08097,99,2 +2020-07-01,Pitkin,Colorado,08097,99,2 +2020-07-02,Pitkin,Colorado,08097,102,2 +2020-07-03,Pitkin,Colorado,08097,102,2 +2020-07-04,Pitkin,Colorado,08097,104,2 +2020-07-05,Pitkin,Colorado,08097,105,2 +2020-07-06,Pitkin,Colorado,08097,105,2 +2020-07-07,Pitkin,Colorado,08097,108,2 +2020-07-08,Pitkin,Colorado,08097,111,2 +2020-07-09,Pitkin,Colorado,08097,117,2 +2020-04-09,Prowers,Colorado,08099,1,0 +2020-04-10,Prowers,Colorado,08099,1,0 +2020-04-11,Prowers,Colorado,08099,1,0 +2020-04-12,Prowers,Colorado,08099,1,0 +2020-04-13,Prowers,Colorado,08099,1,0 +2020-04-14,Prowers,Colorado,08099,1,0 +2020-04-15,Prowers,Colorado,08099,1,0 +2020-04-16,Prowers,Colorado,08099,1,0 +2020-04-17,Prowers,Colorado,08099,1,0 +2020-04-18,Prowers,Colorado,08099,1,0 +2020-04-19,Prowers,Colorado,08099,1,0 +2020-04-20,Prowers,Colorado,08099,1,0 +2020-04-21,Prowers,Colorado,08099,1,0 +2020-04-22,Prowers,Colorado,08099,1,0 +2020-04-23,Prowers,Colorado,08099,1,0 +2020-04-24,Prowers,Colorado,08099,1,0 +2020-04-25,Prowers,Colorado,08099,1,0 +2020-04-26,Prowers,Colorado,08099,1,0 +2020-04-27,Prowers,Colorado,08099,1,0 +2020-04-28,Prowers,Colorado,08099,1,0 +2020-04-29,Prowers,Colorado,08099,1,0 +2020-04-30,Prowers,Colorado,08099,1,0 +2020-05-01,Prowers,Colorado,08099,1,0 +2020-05-02,Prowers,Colorado,08099,1,0 +2020-05-03,Prowers,Colorado,08099,1,0 +2020-05-04,Prowers,Colorado,08099,1,0 +2020-05-05,Prowers,Colorado,08099,3,0 +2020-05-06,Prowers,Colorado,08099,8,0 +2020-05-07,Prowers,Colorado,08099,8,0 +2020-05-08,Prowers,Colorado,08099,8,0 +2020-05-09,Prowers,Colorado,08099,8,0 +2020-05-10,Prowers,Colorado,08099,9,0 +2020-05-11,Prowers,Colorado,08099,9,0 +2020-05-12,Prowers,Colorado,08099,9,0 +2020-05-13,Prowers,Colorado,08099,9,0 +2020-05-14,Prowers,Colorado,08099,9,0 +2020-05-15,Prowers,Colorado,08099,10,0 +2020-05-16,Prowers,Colorado,08099,10,0 +2020-05-17,Prowers,Colorado,08099,10,0 +2020-05-18,Prowers,Colorado,08099,10,0 +2020-05-19,Prowers,Colorado,08099,11,0 +2020-05-20,Prowers,Colorado,08099,11,0 +2020-05-21,Prowers,Colorado,08099,11,0 +2020-05-22,Prowers,Colorado,08099,11,0 +2020-05-23,Prowers,Colorado,08099,12,0 +2020-05-24,Prowers,Colorado,08099,12,0 +2020-05-25,Prowers,Colorado,08099,12,0 +2020-05-26,Prowers,Colorado,08099,12,0 +2020-05-27,Prowers,Colorado,08099,13,0 +2020-05-28,Prowers,Colorado,08099,13,0 +2020-05-29,Prowers,Colorado,08099,13,0 +2020-05-30,Prowers,Colorado,08099,13,0 +2020-05-31,Prowers,Colorado,08099,14,0 +2020-06-01,Prowers,Colorado,08099,14,0 +2020-06-02,Prowers,Colorado,08099,15,0 +2020-06-03,Prowers,Colorado,08099,15,0 +2020-06-04,Prowers,Colorado,08099,15,0 +2020-06-05,Prowers,Colorado,08099,15,0 +2020-06-06,Prowers,Colorado,08099,15,0 +2020-06-07,Prowers,Colorado,08099,15,0 +2020-06-08,Prowers,Colorado,08099,16,0 +2020-06-09,Prowers,Colorado,08099,16,0 +2020-06-10,Prowers,Colorado,08099,16,0 +2020-06-11,Prowers,Colorado,08099,17,0 +2020-06-12,Prowers,Colorado,08099,17,0 +2020-06-13,Prowers,Colorado,08099,16,0 +2020-06-14,Prowers,Colorado,08099,16,0 +2020-06-15,Prowers,Colorado,08099,16,0 +2020-06-16,Prowers,Colorado,08099,16,0 +2020-06-17,Prowers,Colorado,08099,16,0 +2020-06-18,Prowers,Colorado,08099,16,0 +2020-06-19,Prowers,Colorado,08099,16,0 +2020-06-20,Prowers,Colorado,08099,16,0 +2020-06-21,Prowers,Colorado,08099,16,0 +2020-06-22,Prowers,Colorado,08099,16,0 +2020-06-23,Prowers,Colorado,08099,16,0 +2020-06-24,Prowers,Colorado,08099,16,0 +2020-06-25,Prowers,Colorado,08099,17,0 +2020-06-26,Prowers,Colorado,08099,17,0 +2020-06-27,Prowers,Colorado,08099,18,0 +2020-06-28,Prowers,Colorado,08099,19,0 +2020-06-29,Prowers,Colorado,08099,20,0 +2020-06-30,Prowers,Colorado,08099,20,0 +2020-07-01,Prowers,Colorado,08099,21,0 +2020-07-02,Prowers,Colorado,08099,21,0 +2020-07-03,Prowers,Colorado,08099,24,0 +2020-07-04,Prowers,Colorado,08099,24,0 +2020-07-05,Prowers,Colorado,08099,29,0 +2020-07-06,Prowers,Colorado,08099,29,0 +2020-07-07,Prowers,Colorado,08099,30,0 +2020-07-08,Prowers,Colorado,08099,32,0 +2020-07-09,Prowers,Colorado,08099,33,0 +2020-03-13,Pueblo,Colorado,08101,1,0 +2020-03-14,Pueblo,Colorado,08101,1,0 +2020-03-15,Pueblo,Colorado,08101,1,0 +2020-03-16,Pueblo,Colorado,08101,1,0 +2020-03-17,Pueblo,Colorado,08101,1,0 +2020-03-18,Pueblo,Colorado,08101,1,0 +2020-03-19,Pueblo,Colorado,08101,2,0 +2020-03-20,Pueblo,Colorado,08101,3,0 +2020-03-21,Pueblo,Colorado,08101,3,0 +2020-03-22,Pueblo,Colorado,08101,3,0 +2020-03-23,Pueblo,Colorado,08101,3,0 +2020-03-24,Pueblo,Colorado,08101,3,0 +2020-03-25,Pueblo,Colorado,08101,3,0 +2020-03-26,Pueblo,Colorado,08101,5,0 +2020-03-27,Pueblo,Colorado,08101,7,1 +2020-03-28,Pueblo,Colorado,08101,9,1 +2020-03-29,Pueblo,Colorado,08101,18,1 +2020-03-30,Pueblo,Colorado,08101,21,2 +2020-03-31,Pueblo,Colorado,08101,21,2 +2020-04-01,Pueblo,Colorado,08101,28,2 +2020-04-02,Pueblo,Colorado,08101,28,2 +2020-04-03,Pueblo,Colorado,08101,39,2 +2020-04-04,Pueblo,Colorado,08101,39,2 +2020-04-05,Pueblo,Colorado,08101,44,2 +2020-04-06,Pueblo,Colorado,08101,44,2 +2020-04-07,Pueblo,Colorado,08101,46,3 +2020-04-08,Pueblo,Colorado,08101,46,3 +2020-04-09,Pueblo,Colorado,08101,48,3 +2020-04-10,Pueblo,Colorado,08101,50,3 +2020-04-11,Pueblo,Colorado,08101,53,3 +2020-04-12,Pueblo,Colorado,08101,58,3 +2020-04-13,Pueblo,Colorado,08101,64,3 +2020-04-14,Pueblo,Colorado,08101,64,4 +2020-04-15,Pueblo,Colorado,08101,68,4 +2020-04-16,Pueblo,Colorado,08101,72,5 +2020-04-17,Pueblo,Colorado,08101,78,6 +2020-04-18,Pueblo,Colorado,08101,84,6 +2020-04-19,Pueblo,Colorado,08101,87,7 +2020-04-20,Pueblo,Colorado,08101,88,7 +2020-04-21,Pueblo,Colorado,08101,92,7 +2020-04-22,Pueblo,Colorado,08101,107,7 +2020-04-23,Pueblo,Colorado,08101,108,8 +2020-04-24,Pueblo,Colorado,08101,116,9 +2020-04-25,Pueblo,Colorado,08101,121,9 +2020-04-26,Pueblo,Colorado,08101,131,9 +2020-04-27,Pueblo,Colorado,08101,134,9 +2020-04-28,Pueblo,Colorado,08101,136,9 +2020-04-29,Pueblo,Colorado,08101,136,10 +2020-04-30,Pueblo,Colorado,08101,139,10 +2020-05-01,Pueblo,Colorado,08101,146,10 +2020-05-02,Pueblo,Colorado,08101,150,10 +2020-05-03,Pueblo,Colorado,08101,158,10 +2020-05-04,Pueblo,Colorado,08101,157,11 +2020-05-05,Pueblo,Colorado,08101,158,11 +2020-05-06,Pueblo,Colorado,08101,161,11 +2020-05-07,Pueblo,Colorado,08101,163,12 +2020-05-08,Pueblo,Colorado,08101,170,12 +2020-05-09,Pueblo,Colorado,08101,176,12 +2020-05-10,Pueblo,Colorado,08101,182,12 +2020-05-11,Pueblo,Colorado,08101,185,12 +2020-05-12,Pueblo,Colorado,08101,188,12 +2020-05-13,Pueblo,Colorado,08101,188,12 +2020-05-14,Pueblo,Colorado,08101,186,13 +2020-05-15,Pueblo,Colorado,08101,195,13 +2020-05-16,Pueblo,Colorado,08101,202,13 +2020-05-17,Pueblo,Colorado,08101,204,13 +2020-05-18,Pueblo,Colorado,08101,217,14 +2020-05-19,Pueblo,Colorado,08101,219,14 +2020-05-20,Pueblo,Colorado,08101,220,14 +2020-05-21,Pueblo,Colorado,08101,230,14 +2020-05-22,Pueblo,Colorado,08101,233,14 +2020-05-23,Pueblo,Colorado,08101,260,14 +2020-05-24,Pueblo,Colorado,08101,263,14 +2020-05-25,Pueblo,Colorado,08101,263,14 +2020-05-26,Pueblo,Colorado,08101,264,14 +2020-05-27,Pueblo,Colorado,08101,278,14 +2020-05-28,Pueblo,Colorado,08101,278,15 +2020-05-29,Pueblo,Colorado,08101,281,16 +2020-05-30,Pueblo,Colorado,08101,289,16 +2020-05-31,Pueblo,Colorado,08101,295,17 +2020-06-01,Pueblo,Colorado,08101,297,18 +2020-06-02,Pueblo,Colorado,08101,297,18 +2020-06-03,Pueblo,Colorado,08101,300,18 +2020-06-04,Pueblo,Colorado,08101,302,18 +2020-06-05,Pueblo,Colorado,08101,306,18 +2020-06-06,Pueblo,Colorado,08101,313,18 +2020-06-07,Pueblo,Colorado,08101,320,18 +2020-06-08,Pueblo,Colorado,08101,320,18 +2020-06-09,Pueblo,Colorado,08101,323,19 +2020-06-10,Pueblo,Colorado,08101,324,19 +2020-06-11,Pueblo,Colorado,08101,326,20 +2020-06-12,Pueblo,Colorado,08101,332,22 +2020-06-13,Pueblo,Colorado,08101,346,22 +2020-06-14,Pueblo,Colorado,08101,352,22 +2020-06-15,Pueblo,Colorado,08101,352,22 +2020-06-16,Pueblo,Colorado,08101,351,23 +2020-06-17,Pueblo,Colorado,08101,351,23 +2020-06-18,Pueblo,Colorado,08101,351,23 +2020-06-19,Pueblo,Colorado,08101,351,23 +2020-06-20,Pueblo,Colorado,08101,355,23 +2020-06-21,Pueblo,Colorado,08101,357,23 +2020-06-22,Pueblo,Colorado,08101,358,24 +2020-06-23,Pueblo,Colorado,08101,358,26 +2020-06-24,Pueblo,Colorado,08101,368,26 +2020-06-25,Pueblo,Colorado,08101,369,26 +2020-06-26,Pueblo,Colorado,08101,372,28 +2020-06-27,Pueblo,Colorado,08101,378,28 +2020-06-28,Pueblo,Colorado,08101,383,28 +2020-06-29,Pueblo,Colorado,08101,385,28 +2020-06-30,Pueblo,Colorado,08101,390,28 +2020-07-01,Pueblo,Colorado,08101,393,30 +2020-07-02,Pueblo,Colorado,08101,393,30 +2020-07-03,Pueblo,Colorado,08101,396,30 +2020-07-04,Pueblo,Colorado,08101,404,30 +2020-07-05,Pueblo,Colorado,08101,407,30 +2020-07-06,Pueblo,Colorado,08101,408,30 +2020-07-07,Pueblo,Colorado,08101,411,30 +2020-07-08,Pueblo,Colorado,08101,416,30 +2020-07-09,Pueblo,Colorado,08101,417,30 +2020-04-03,Rio Blanco,Colorado,08103,1,0 +2020-04-04,Rio Blanco,Colorado,08103,1,0 +2020-04-05,Rio Blanco,Colorado,08103,1,0 +2020-04-06,Rio Blanco,Colorado,08103,1,0 +2020-04-07,Rio Blanco,Colorado,08103,1,0 +2020-04-08,Rio Blanco,Colorado,08103,1,0 +2020-04-09,Rio Blanco,Colorado,08103,1,0 +2020-04-10,Rio Blanco,Colorado,08103,1,0 +2020-04-11,Rio Blanco,Colorado,08103,1,0 +2020-04-12,Rio Blanco,Colorado,08103,1,0 +2020-04-13,Rio Blanco,Colorado,08103,1,0 +2020-04-14,Rio Blanco,Colorado,08103,1,0 +2020-04-15,Rio Blanco,Colorado,08103,1,0 +2020-04-16,Rio Blanco,Colorado,08103,1,0 +2020-04-17,Rio Blanco,Colorado,08103,1,0 +2020-04-18,Rio Blanco,Colorado,08103,1,0 +2020-04-19,Rio Blanco,Colorado,08103,1,0 +2020-04-20,Rio Blanco,Colorado,08103,1,0 +2020-04-21,Rio Blanco,Colorado,08103,1,0 +2020-04-22,Rio Blanco,Colorado,08103,1,0 +2020-04-23,Rio Blanco,Colorado,08103,1,0 +2020-04-24,Rio Blanco,Colorado,08103,1,0 +2020-04-25,Rio Blanco,Colorado,08103,1,0 +2020-04-26,Rio Blanco,Colorado,08103,1,0 +2020-04-27,Rio Blanco,Colorado,08103,1,0 +2020-04-28,Rio Blanco,Colorado,08103,1,0 +2020-04-29,Rio Blanco,Colorado,08103,1,0 +2020-04-30,Rio Blanco,Colorado,08103,1,0 +2020-05-01,Rio Blanco,Colorado,08103,1,0 +2020-05-02,Rio Blanco,Colorado,08103,1,0 +2020-05-03,Rio Blanco,Colorado,08103,1,0 +2020-05-04,Rio Blanco,Colorado,08103,1,0 +2020-05-05,Rio Blanco,Colorado,08103,1,0 +2020-05-06,Rio Blanco,Colorado,08103,1,0 +2020-05-07,Rio Blanco,Colorado,08103,1,0 +2020-05-08,Rio Blanco,Colorado,08103,1,0 +2020-05-09,Rio Blanco,Colorado,08103,1,0 +2020-05-10,Rio Blanco,Colorado,08103,1,0 +2020-05-11,Rio Blanco,Colorado,08103,1,0 +2020-05-12,Rio Blanco,Colorado,08103,1,0 +2020-05-13,Rio Blanco,Colorado,08103,1,0 +2020-05-14,Rio Blanco,Colorado,08103,1,0 +2020-05-15,Rio Blanco,Colorado,08103,1,0 +2020-05-16,Rio Blanco,Colorado,08103,1,0 +2020-05-17,Rio Blanco,Colorado,08103,1,0 +2020-05-18,Rio Blanco,Colorado,08103,1,0 +2020-05-19,Rio Blanco,Colorado,08103,1,0 +2020-05-20,Rio Blanco,Colorado,08103,1,0 +2020-05-21,Rio Blanco,Colorado,08103,1,0 +2020-05-22,Rio Blanco,Colorado,08103,1,0 +2020-05-23,Rio Blanco,Colorado,08103,1,0 +2020-05-24,Rio Blanco,Colorado,08103,1,0 +2020-05-25,Rio Blanco,Colorado,08103,1,0 +2020-05-26,Rio Blanco,Colorado,08103,1,0 +2020-05-27,Rio Blanco,Colorado,08103,1,0 +2020-05-28,Rio Blanco,Colorado,08103,1,0 +2020-05-29,Rio Blanco,Colorado,08103,1,0 +2020-05-30,Rio Blanco,Colorado,08103,1,0 +2020-05-31,Rio Blanco,Colorado,08103,1,0 +2020-06-01,Rio Blanco,Colorado,08103,1,0 +2020-06-02,Rio Blanco,Colorado,08103,1,0 +2020-06-03,Rio Blanco,Colorado,08103,1,0 +2020-06-04,Rio Blanco,Colorado,08103,1,0 +2020-06-05,Rio Blanco,Colorado,08103,1,0 +2020-06-06,Rio Blanco,Colorado,08103,1,0 +2020-06-07,Rio Blanco,Colorado,08103,1,0 +2020-06-08,Rio Blanco,Colorado,08103,1,0 +2020-06-09,Rio Blanco,Colorado,08103,1,0 +2020-06-10,Rio Blanco,Colorado,08103,1,0 +2020-06-11,Rio Blanco,Colorado,08103,1,0 +2020-06-12,Rio Blanco,Colorado,08103,1,0 +2020-06-13,Rio Blanco,Colorado,08103,1,0 +2020-06-14,Rio Blanco,Colorado,08103,1,0 +2020-06-15,Rio Blanco,Colorado,08103,1,0 +2020-06-16,Rio Blanco,Colorado,08103,2,0 +2020-06-17,Rio Blanco,Colorado,08103,2,0 +2020-06-18,Rio Blanco,Colorado,08103,2,0 +2020-06-19,Rio Blanco,Colorado,08103,2,0 +2020-06-20,Rio Blanco,Colorado,08103,2,0 +2020-06-21,Rio Blanco,Colorado,08103,2,0 +2020-06-22,Rio Blanco,Colorado,08103,2,0 +2020-06-23,Rio Blanco,Colorado,08103,2,0 +2020-06-24,Rio Blanco,Colorado,08103,2,0 +2020-06-25,Rio Blanco,Colorado,08103,3,0 +2020-06-26,Rio Blanco,Colorado,08103,3,0 +2020-06-27,Rio Blanco,Colorado,08103,3,0 +2020-06-28,Rio Blanco,Colorado,08103,3,0 +2020-06-29,Rio Blanco,Colorado,08103,3,0 +2020-06-30,Rio Blanco,Colorado,08103,4,0 +2020-07-01,Rio Blanco,Colorado,08103,4,0 +2020-07-02,Rio Blanco,Colorado,08103,4,0 +2020-07-03,Rio Blanco,Colorado,08103,4,0 +2020-07-04,Rio Blanco,Colorado,08103,4,0 +2020-07-05,Rio Blanco,Colorado,08103,4,0 +2020-07-06,Rio Blanco,Colorado,08103,4,0 +2020-07-07,Rio Blanco,Colorado,08103,4,0 +2020-07-08,Rio Blanco,Colorado,08103,4,0 +2020-07-09,Rio Blanco,Colorado,08103,4,0 +2020-03-26,Rio Grande,Colorado,08105,2,0 +2020-03-27,Rio Grande,Colorado,08105,2,0 +2020-03-28,Rio Grande,Colorado,08105,2,0 +2020-03-29,Rio Grande,Colorado,08105,3,0 +2020-03-30,Rio Grande,Colorado,08105,4,0 +2020-03-31,Rio Grande,Colorado,08105,5,0 +2020-04-01,Rio Grande,Colorado,08105,5,0 +2020-04-02,Rio Grande,Colorado,08105,5,0 +2020-04-03,Rio Grande,Colorado,08105,5,0 +2020-04-04,Rio Grande,Colorado,08105,5,0 +2020-04-05,Rio Grande,Colorado,08105,5,0 +2020-04-06,Rio Grande,Colorado,08105,5,0 +2020-04-07,Rio Grande,Colorado,08105,5,0 +2020-04-08,Rio Grande,Colorado,08105,5,0 +2020-04-09,Rio Grande,Colorado,08105,5,0 +2020-04-10,Rio Grande,Colorado,08105,5,0 +2020-04-11,Rio Grande,Colorado,08105,5,0 +2020-04-12,Rio Grande,Colorado,08105,5,0 +2020-04-13,Rio Grande,Colorado,08105,5,0 +2020-04-14,Rio Grande,Colorado,08105,5,0 +2020-04-15,Rio Grande,Colorado,08105,7,0 +2020-04-16,Rio Grande,Colorado,08105,7,0 +2020-04-17,Rio Grande,Colorado,08105,7,0 +2020-04-18,Rio Grande,Colorado,08105,7,0 +2020-04-19,Rio Grande,Colorado,08105,7,0 +2020-04-20,Rio Grande,Colorado,08105,7,0 +2020-04-21,Rio Grande,Colorado,08105,7,0 +2020-04-22,Rio Grande,Colorado,08105,7,0 +2020-04-23,Rio Grande,Colorado,08105,7,0 +2020-04-24,Rio Grande,Colorado,08105,7,0 +2020-04-25,Rio Grande,Colorado,08105,7,0 +2020-04-26,Rio Grande,Colorado,08105,7,0 +2020-04-27,Rio Grande,Colorado,08105,7,0 +2020-04-28,Rio Grande,Colorado,08105,7,0 +2020-04-29,Rio Grande,Colorado,08105,7,0 +2020-04-30,Rio Grande,Colorado,08105,7,0 +2020-05-01,Rio Grande,Colorado,08105,7,0 +2020-05-02,Rio Grande,Colorado,08105,7,0 +2020-05-03,Rio Grande,Colorado,08105,7,0 +2020-05-04,Rio Grande,Colorado,08105,7,0 +2020-05-05,Rio Grande,Colorado,08105,7,0 +2020-05-06,Rio Grande,Colorado,08105,7,0 +2020-05-07,Rio Grande,Colorado,08105,7,0 +2020-05-08,Rio Grande,Colorado,08105,7,0 +2020-05-09,Rio Grande,Colorado,08105,7,0 +2020-05-10,Rio Grande,Colorado,08105,7,0 +2020-05-11,Rio Grande,Colorado,08105,8,0 +2020-05-12,Rio Grande,Colorado,08105,7,0 +2020-05-13,Rio Grande,Colorado,08105,7,0 +2020-05-14,Rio Grande,Colorado,08105,7,0 +2020-05-15,Rio Grande,Colorado,08105,7,0 +2020-05-16,Rio Grande,Colorado,08105,8,0 +2020-05-17,Rio Grande,Colorado,08105,8,0 +2020-05-18,Rio Grande,Colorado,08105,8,0 +2020-05-19,Rio Grande,Colorado,08105,9,0 +2020-05-20,Rio Grande,Colorado,08105,8,0 +2020-05-21,Rio Grande,Colorado,08105,14,1 +2020-05-22,Rio Grande,Colorado,08105,15,1 +2020-05-23,Rio Grande,Colorado,08105,16,0 +2020-05-24,Rio Grande,Colorado,08105,16,0 +2020-05-25,Rio Grande,Colorado,08105,16,0 +2020-05-26,Rio Grande,Colorado,08105,16,0 +2020-05-27,Rio Grande,Colorado,08105,16,0 +2020-05-28,Rio Grande,Colorado,08105,16,0 +2020-05-29,Rio Grande,Colorado,08105,16,0 +2020-05-30,Rio Grande,Colorado,08105,23,0 +2020-05-31,Rio Grande,Colorado,08105,33,0 +2020-06-01,Rio Grande,Colorado,08105,35,0 +2020-06-02,Rio Grande,Colorado,08105,37,0 +2020-06-03,Rio Grande,Colorado,08105,36,0 +2020-06-04,Rio Grande,Colorado,08105,38,0 +2020-06-05,Rio Grande,Colorado,08105,40,0 +2020-06-06,Rio Grande,Colorado,08105,43,0 +2020-06-07,Rio Grande,Colorado,08105,45,0 +2020-06-08,Rio Grande,Colorado,08105,46,0 +2020-06-09,Rio Grande,Colorado,08105,47,0 +2020-06-10,Rio Grande,Colorado,08105,48,0 +2020-06-11,Rio Grande,Colorado,08105,51,0 +2020-06-12,Rio Grande,Colorado,08105,53,0 +2020-06-13,Rio Grande,Colorado,08105,53,0 +2020-06-14,Rio Grande,Colorado,08105,53,0 +2020-06-15,Rio Grande,Colorado,08105,54,0 +2020-06-16,Rio Grande,Colorado,08105,55,0 +2020-06-17,Rio Grande,Colorado,08105,57,0 +2020-06-18,Rio Grande,Colorado,08105,57,0 +2020-06-19,Rio Grande,Colorado,08105,62,0 +2020-06-20,Rio Grande,Colorado,08105,63,1 +2020-06-21,Rio Grande,Colorado,08105,64,1 +2020-06-22,Rio Grande,Colorado,08105,65,1 +2020-06-23,Rio Grande,Colorado,08105,66,1 +2020-06-24,Rio Grande,Colorado,08105,67,1 +2020-06-25,Rio Grande,Colorado,08105,70,2 +2020-06-26,Rio Grande,Colorado,08105,72,2 +2020-06-27,Rio Grande,Colorado,08105,73,2 +2020-06-28,Rio Grande,Colorado,08105,73,2 +2020-06-29,Rio Grande,Colorado,08105,74,2 +2020-06-30,Rio Grande,Colorado,08105,76,2 +2020-07-01,Rio Grande,Colorado,08105,76,2 +2020-07-02,Rio Grande,Colorado,08105,78,2 +2020-07-03,Rio Grande,Colorado,08105,79,2 +2020-07-04,Rio Grande,Colorado,08105,79,2 +2020-07-05,Rio Grande,Colorado,08105,80,2 +2020-07-06,Rio Grande,Colorado,08105,80,2 +2020-07-07,Rio Grande,Colorado,08105,80,2 +2020-07-08,Rio Grande,Colorado,08105,80,2 +2020-07-09,Rio Grande,Colorado,08105,80,2 +2020-03-13,Routt,Colorado,08107,1,0 +2020-03-14,Routt,Colorado,08107,1,0 +2020-03-15,Routt,Colorado,08107,1,0 +2020-03-16,Routt,Colorado,08107,2,0 +2020-03-17,Routt,Colorado,08107,2,0 +2020-03-18,Routt,Colorado,08107,2,0 +2020-03-19,Routt,Colorado,08107,2,0 +2020-03-20,Routt,Colorado,08107,2,0 +2020-03-21,Routt,Colorado,08107,2,0 +2020-03-22,Routt,Colorado,08107,3,0 +2020-03-23,Routt,Colorado,08107,3,0 +2020-03-24,Routt,Colorado,08107,4,0 +2020-03-25,Routt,Colorado,08107,6,0 +2020-03-26,Routt,Colorado,08107,9,0 +2020-03-27,Routt,Colorado,08107,12,0 +2020-03-28,Routt,Colorado,08107,14,0 +2020-03-29,Routt,Colorado,08107,16,0 +2020-03-30,Routt,Colorado,08107,16,0 +2020-03-31,Routt,Colorado,08107,17,0 +2020-04-01,Routt,Colorado,08107,19,0 +2020-04-02,Routt,Colorado,08107,23,0 +2020-04-03,Routt,Colorado,08107,28,0 +2020-04-04,Routt,Colorado,08107,29,0 +2020-04-05,Routt,Colorado,08107,29,0 +2020-04-06,Routt,Colorado,08107,29,0 +2020-04-07,Routt,Colorado,08107,32,0 +2020-04-08,Routt,Colorado,08107,32,0 +2020-04-09,Routt,Colorado,08107,32,0 +2020-04-10,Routt,Colorado,08107,35,1 +2020-04-11,Routt,Colorado,08107,35,1 +2020-04-12,Routt,Colorado,08107,36,1 +2020-04-13,Routt,Colorado,08107,41,1 +2020-04-14,Routt,Colorado,08107,41,1 +2020-04-15,Routt,Colorado,08107,41,1 +2020-04-16,Routt,Colorado,08107,43,1 +2020-04-17,Routt,Colorado,08107,46,1 +2020-04-18,Routt,Colorado,08107,49,2 +2020-04-19,Routt,Colorado,08107,49,2 +2020-04-20,Routt,Colorado,08107,49,2 +2020-04-21,Routt,Colorado,08107,51,2 +2020-04-22,Routt,Colorado,08107,52,3 +2020-04-23,Routt,Colorado,08107,52,3 +2020-04-24,Routt,Colorado,08107,52,4 +2020-04-25,Routt,Colorado,08107,52,4 +2020-04-26,Routt,Colorado,08107,54,4 +2020-04-27,Routt,Colorado,08107,54,4 +2020-04-28,Routt,Colorado,08107,55,4 +2020-04-29,Routt,Colorado,08107,54,4 +2020-04-30,Routt,Colorado,08107,56,4 +2020-05-01,Routt,Colorado,08107,55,5 +2020-05-02,Routt,Colorado,08107,56,5 +2020-05-03,Routt,Colorado,08107,56,5 +2020-05-04,Routt,Colorado,08107,56,6 +2020-05-05,Routt,Colorado,08107,58,6 +2020-05-06,Routt,Colorado,08107,58,6 +2020-05-07,Routt,Colorado,08107,58,6 +2020-05-08,Routt,Colorado,08107,58,6 +2020-05-09,Routt,Colorado,08107,58,6 +2020-05-10,Routt,Colorado,08107,58,6 +2020-05-11,Routt,Colorado,08107,58,6 +2020-05-12,Routt,Colorado,08107,59,6 +2020-05-13,Routt,Colorado,08107,59,6 +2020-05-14,Routt,Colorado,08107,59,6 +2020-05-15,Routt,Colorado,08107,59,6 +2020-05-16,Routt,Colorado,08107,59,6 +2020-05-17,Routt,Colorado,08107,59,6 +2020-05-18,Routt,Colorado,08107,60,6 +2020-05-19,Routt,Colorado,08107,59,6 +2020-05-20,Routt,Colorado,08107,59,6 +2020-05-21,Routt,Colorado,08107,59,6 +2020-05-22,Routt,Colorado,08107,59,6 +2020-05-23,Routt,Colorado,08107,59,6 +2020-05-24,Routt,Colorado,08107,59,6 +2020-05-25,Routt,Colorado,08107,59,6 +2020-05-26,Routt,Colorado,08107,59,6 +2020-05-27,Routt,Colorado,08107,61,6 +2020-05-28,Routt,Colorado,08107,61,6 +2020-05-29,Routt,Colorado,08107,61,6 +2020-05-30,Routt,Colorado,08107,61,6 +2020-05-31,Routt,Colorado,08107,62,6 +2020-06-01,Routt,Colorado,08107,62,6 +2020-06-02,Routt,Colorado,08107,62,6 +2020-06-03,Routt,Colorado,08107,62,6 +2020-06-04,Routt,Colorado,08107,62,6 +2020-06-05,Routt,Colorado,08107,62,6 +2020-06-06,Routt,Colorado,08107,62,6 +2020-06-07,Routt,Colorado,08107,62,6 +2020-06-08,Routt,Colorado,08107,62,6 +2020-06-09,Routt,Colorado,08107,62,6 +2020-06-10,Routt,Colorado,08107,63,6 +2020-06-11,Routt,Colorado,08107,64,6 +2020-06-12,Routt,Colorado,08107,64,6 +2020-06-13,Routt,Colorado,08107,64,6 +2020-06-14,Routt,Colorado,08107,64,6 +2020-06-15,Routt,Colorado,08107,63,6 +2020-06-16,Routt,Colorado,08107,63,6 +2020-06-17,Routt,Colorado,08107,63,6 +2020-06-18,Routt,Colorado,08107,63,6 +2020-06-19,Routt,Colorado,08107,63,6 +2020-06-20,Routt,Colorado,08107,63,6 +2020-06-21,Routt,Colorado,08107,64,6 +2020-06-22,Routt,Colorado,08107,65,6 +2020-06-23,Routt,Colorado,08107,67,6 +2020-06-24,Routt,Colorado,08107,67,6 +2020-06-25,Routt,Colorado,08107,69,6 +2020-06-26,Routt,Colorado,08107,70,6 +2020-06-27,Routt,Colorado,08107,71,6 +2020-06-28,Routt,Colorado,08107,72,6 +2020-06-29,Routt,Colorado,08107,73,6 +2020-06-30,Routt,Colorado,08107,73,6 +2020-07-01,Routt,Colorado,08107,75,6 +2020-07-02,Routt,Colorado,08107,75,6 +2020-07-03,Routt,Colorado,08107,76,6 +2020-07-04,Routt,Colorado,08107,77,6 +2020-07-05,Routt,Colorado,08107,77,6 +2020-07-06,Routt,Colorado,08107,78,6 +2020-07-07,Routt,Colorado,08107,78,6 +2020-07-08,Routt,Colorado,08107,79,6 +2020-07-09,Routt,Colorado,08107,79,6 +2020-03-31,Saguache,Colorado,08109,1,0 +2020-04-01,Saguache,Colorado,08109,1,0 +2020-04-02,Saguache,Colorado,08109,3,0 +2020-04-03,Saguache,Colorado,08109,3,0 +2020-04-04,Saguache,Colorado,08109,3,0 +2020-04-05,Saguache,Colorado,08109,3,0 +2020-04-06,Saguache,Colorado,08109,3,0 +2020-04-07,Saguache,Colorado,08109,3,0 +2020-04-08,Saguache,Colorado,08109,3,0 +2020-04-09,Saguache,Colorado,08109,3,0 +2020-04-10,Saguache,Colorado,08109,3,0 +2020-04-11,Saguache,Colorado,08109,3,0 +2020-04-12,Saguache,Colorado,08109,3,0 +2020-04-13,Saguache,Colorado,08109,3,0 +2020-04-14,Saguache,Colorado,08109,3,0 +2020-04-15,Saguache,Colorado,08109,3,0 +2020-04-16,Saguache,Colorado,08109,3,0 +2020-04-17,Saguache,Colorado,08109,3,0 +2020-04-18,Saguache,Colorado,08109,3,0 +2020-04-19,Saguache,Colorado,08109,3,0 +2020-04-20,Saguache,Colorado,08109,3,0 +2020-04-21,Saguache,Colorado,08109,3,0 +2020-04-22,Saguache,Colorado,08109,3,0 +2020-04-23,Saguache,Colorado,08109,3,0 +2020-04-24,Saguache,Colorado,08109,3,0 +2020-04-25,Saguache,Colorado,08109,3,0 +2020-04-26,Saguache,Colorado,08109,3,0 +2020-04-27,Saguache,Colorado,08109,3,0 +2020-04-28,Saguache,Colorado,08109,3,0 +2020-04-29,Saguache,Colorado,08109,4,0 +2020-04-30,Saguache,Colorado,08109,3,0 +2020-05-01,Saguache,Colorado,08109,3,0 +2020-05-02,Saguache,Colorado,08109,3,0 +2020-05-03,Saguache,Colorado,08109,3,0 +2020-05-04,Saguache,Colorado,08109,3,0 +2020-05-05,Saguache,Colorado,08109,3,0 +2020-05-06,Saguache,Colorado,08109,3,0 +2020-05-07,Saguache,Colorado,08109,3,0 +2020-05-08,Saguache,Colorado,08109,4,0 +2020-05-09,Saguache,Colorado,08109,5,0 +2020-05-10,Saguache,Colorado,08109,5,0 +2020-05-11,Saguache,Colorado,08109,5,0 +2020-05-12,Saguache,Colorado,08109,8,0 +2020-05-13,Saguache,Colorado,08109,8,0 +2020-05-14,Saguache,Colorado,08109,15,0 +2020-05-15,Saguache,Colorado,08109,16,0 +2020-05-16,Saguache,Colorado,08109,16,0 +2020-05-17,Saguache,Colorado,08109,16,0 +2020-05-18,Saguache,Colorado,08109,17,0 +2020-05-19,Saguache,Colorado,08109,18,0 +2020-05-20,Saguache,Colorado,08109,18,0 +2020-05-21,Saguache,Colorado,08109,20,0 +2020-05-22,Saguache,Colorado,08109,23,0 +2020-05-23,Saguache,Colorado,08109,24,0 +2020-05-24,Saguache,Colorado,08109,25,0 +2020-05-25,Saguache,Colorado,08109,36,0 +2020-05-26,Saguache,Colorado,08109,36,0 +2020-05-27,Saguache,Colorado,08109,36,1 +2020-05-28,Saguache,Colorado,08109,36,1 +2020-05-29,Saguache,Colorado,08109,48,1 +2020-05-30,Saguache,Colorado,08109,79,1 +2020-05-31,Saguache,Colorado,08109,81,1 +2020-06-01,Saguache,Colorado,08109,89,1 +2020-06-02,Saguache,Colorado,08109,89,1 +2020-06-03,Saguache,Colorado,08109,90,1 +2020-06-04,Saguache,Colorado,08109,89,1 +2020-06-05,Saguache,Colorado,08109,92,1 +2020-06-06,Saguache,Colorado,08109,93,1 +2020-06-07,Saguache,Colorado,08109,93,1 +2020-06-08,Saguache,Colorado,08109,94,2 +2020-06-09,Saguache,Colorado,08109,94,2 +2020-06-10,Saguache,Colorado,08109,95,2 +2020-06-11,Saguache,Colorado,08109,95,2 +2020-06-12,Saguache,Colorado,08109,97,2 +2020-06-13,Saguache,Colorado,08109,97,2 +2020-06-14,Saguache,Colorado,08109,98,2 +2020-06-15,Saguache,Colorado,08109,99,2 +2020-06-16,Saguache,Colorado,08109,99,2 +2020-06-17,Saguache,Colorado,08109,99,2 +2020-06-18,Saguache,Colorado,08109,98,2 +2020-06-19,Saguache,Colorado,08109,100,2 +2020-06-20,Saguache,Colorado,08109,100,2 +2020-06-21,Saguache,Colorado,08109,100,2 +2020-06-22,Saguache,Colorado,08109,99,2 +2020-06-23,Saguache,Colorado,08109,99,2 +2020-06-24,Saguache,Colorado,08109,99,2 +2020-06-25,Saguache,Colorado,08109,100,2 +2020-06-26,Saguache,Colorado,08109,100,2 +2020-06-27,Saguache,Colorado,08109,100,2 +2020-06-28,Saguache,Colorado,08109,102,2 +2020-06-29,Saguache,Colorado,08109,102,2 +2020-06-30,Saguache,Colorado,08109,102,2 +2020-07-01,Saguache,Colorado,08109,102,2 +2020-07-02,Saguache,Colorado,08109,102,2 +2020-07-03,Saguache,Colorado,08109,102,2 +2020-07-04,Saguache,Colorado,08109,102,2 +2020-07-05,Saguache,Colorado,08109,102,2 +2020-07-06,Saguache,Colorado,08109,102,2 +2020-07-07,Saguache,Colorado,08109,102,2 +2020-07-08,Saguache,Colorado,08109,103,2 +2020-07-09,Saguache,Colorado,08109,103,2 +2020-05-06,San Juan,Colorado,08111,1,0 +2020-05-07,San Juan,Colorado,08111,1,0 +2020-05-08,San Juan,Colorado,08111,1,0 +2020-05-09,San Juan,Colorado,08111,1,0 +2020-05-10,San Juan,Colorado,08111,1,0 +2020-05-11,San Juan,Colorado,08111,1,0 +2020-05-12,San Juan,Colorado,08111,1,0 +2020-05-13,San Juan,Colorado,08111,1,0 +2020-05-14,San Juan,Colorado,08111,1,0 +2020-05-15,San Juan,Colorado,08111,1,0 +2020-05-16,San Juan,Colorado,08111,1,0 +2020-05-17,San Juan,Colorado,08111,1,0 +2020-05-18,San Juan,Colorado,08111,1,0 +2020-05-19,San Juan,Colorado,08111,1,0 +2020-05-20,San Juan,Colorado,08111,2,0 +2020-05-21,San Juan,Colorado,08111,2,0 +2020-05-22,San Juan,Colorado,08111,1,0 +2020-05-23,San Juan,Colorado,08111,1,0 +2020-05-24,San Juan,Colorado,08111,1,0 +2020-05-25,San Juan,Colorado,08111,1,0 +2020-05-26,San Juan,Colorado,08111,1,0 +2020-05-27,San Juan,Colorado,08111,1,0 +2020-05-28,San Juan,Colorado,08111,1,0 +2020-05-29,San Juan,Colorado,08111,1,0 +2020-05-30,San Juan,Colorado,08111,1,0 +2020-05-31,San Juan,Colorado,08111,1,0 +2020-06-01,San Juan,Colorado,08111,1,0 +2020-06-02,San Juan,Colorado,08111,1,0 +2020-06-03,San Juan,Colorado,08111,1,0 +2020-06-04,San Juan,Colorado,08111,1,0 +2020-06-05,San Juan,Colorado,08111,1,0 +2020-06-06,San Juan,Colorado,08111,1,0 +2020-06-07,San Juan,Colorado,08111,1,0 +2020-06-08,San Juan,Colorado,08111,1,0 +2020-06-09,San Juan,Colorado,08111,1,0 +2020-06-10,San Juan,Colorado,08111,1,0 +2020-06-11,San Juan,Colorado,08111,1,0 +2020-06-12,San Juan,Colorado,08111,1,0 +2020-06-13,San Juan,Colorado,08111,1,0 +2020-06-14,San Juan,Colorado,08111,1,0 +2020-06-15,San Juan,Colorado,08111,1,0 +2020-06-16,San Juan,Colorado,08111,1,0 +2020-06-17,San Juan,Colorado,08111,1,0 +2020-06-18,San Juan,Colorado,08111,1,0 +2020-06-19,San Juan,Colorado,08111,1,0 +2020-06-20,San Juan,Colorado,08111,1,0 +2020-06-21,San Juan,Colorado,08111,1,0 +2020-06-22,San Juan,Colorado,08111,1,0 +2020-06-23,San Juan,Colorado,08111,1,0 +2020-06-24,San Juan,Colorado,08111,1,0 +2020-06-25,San Juan,Colorado,08111,1,0 +2020-06-26,San Juan,Colorado,08111,1,0 +2020-06-27,San Juan,Colorado,08111,1,0 +2020-06-28,San Juan,Colorado,08111,1,0 +2020-06-29,San Juan,Colorado,08111,1,0 +2020-06-30,San Juan,Colorado,08111,2,0 +2020-07-01,San Juan,Colorado,08111,2,0 +2020-07-02,San Juan,Colorado,08111,2,0 +2020-07-03,San Juan,Colorado,08111,2,0 +2020-07-04,San Juan,Colorado,08111,2,0 +2020-07-05,San Juan,Colorado,08111,2,0 +2020-07-06,San Juan,Colorado,08111,2,0 +2020-07-07,San Juan,Colorado,08111,2,0 +2020-07-08,San Juan,Colorado,08111,2,0 +2020-07-09,San Juan,Colorado,08111,2,0 +2020-03-20,San Miguel,Colorado,08113,1,0 +2020-03-21,San Miguel,Colorado,08113,1,0 +2020-03-22,San Miguel,Colorado,08113,1,0 +2020-03-23,San Miguel,Colorado,08113,1,0 +2020-03-24,San Miguel,Colorado,08113,1,0 +2020-03-25,San Miguel,Colorado,08113,1,0 +2020-03-26,San Miguel,Colorado,08113,1,0 +2020-03-27,San Miguel,Colorado,08113,1,0 +2020-03-28,San Miguel,Colorado,08113,1,0 +2020-03-29,San Miguel,Colorado,08113,1,0 +2020-03-30,San Miguel,Colorado,08113,1,0 +2020-03-31,San Miguel,Colorado,08113,4,0 +2020-04-01,San Miguel,Colorado,08113,4,0 +2020-04-02,San Miguel,Colorado,08113,7,0 +2020-04-03,San Miguel,Colorado,08113,9,0 +2020-04-04,San Miguel,Colorado,08113,9,0 +2020-04-05,San Miguel,Colorado,08113,10,0 +2020-04-06,San Miguel,Colorado,08113,10,0 +2020-04-07,San Miguel,Colorado,08113,10,0 +2020-04-08,San Miguel,Colorado,08113,10,0 +2020-04-09,San Miguel,Colorado,08113,11,0 +2020-04-10,San Miguel,Colorado,08113,11,0 +2020-04-11,San Miguel,Colorado,08113,12,0 +2020-04-12,San Miguel,Colorado,08113,12,0 +2020-04-13,San Miguel,Colorado,08113,12,0 +2020-04-14,San Miguel,Colorado,08113,12,0 +2020-04-15,San Miguel,Colorado,08113,12,0 +2020-04-16,San Miguel,Colorado,08113,12,0 +2020-04-17,San Miguel,Colorado,08113,13,0 +2020-04-18,San Miguel,Colorado,08113,13,0 +2020-04-19,San Miguel,Colorado,08113,15,0 +2020-04-20,San Miguel,Colorado,08113,17,0 +2020-04-21,San Miguel,Colorado,08113,17,0 +2020-04-22,San Miguel,Colorado,08113,17,0 +2020-04-23,San Miguel,Colorado,08113,17,0 +2020-04-24,San Miguel,Colorado,08113,17,0 +2020-04-25,San Miguel,Colorado,08113,17,0 +2020-04-26,San Miguel,Colorado,08113,19,0 +2020-04-27,San Miguel,Colorado,08113,19,0 +2020-04-28,San Miguel,Colorado,08113,19,0 +2020-04-29,San Miguel,Colorado,08113,19,0 +2020-04-30,San Miguel,Colorado,08113,19,0 +2020-05-01,San Miguel,Colorado,08113,19,0 +2020-05-02,San Miguel,Colorado,08113,19,0 +2020-05-03,San Miguel,Colorado,08113,19,0 +2020-05-04,San Miguel,Colorado,08113,20,0 +2020-05-05,San Miguel,Colorado,08113,20,0 +2020-05-06,San Miguel,Colorado,08113,20,0 +2020-05-07,San Miguel,Colorado,08113,20,0 +2020-05-08,San Miguel,Colorado,08113,20,0 +2020-05-09,San Miguel,Colorado,08113,20,0 +2020-05-10,San Miguel,Colorado,08113,20,0 +2020-05-11,San Miguel,Colorado,08113,20,0 +2020-05-12,San Miguel,Colorado,08113,22,0 +2020-05-13,San Miguel,Colorado,08113,22,0 +2020-05-14,San Miguel,Colorado,08113,22,0 +2020-05-15,San Miguel,Colorado,08113,22,0 +2020-05-16,San Miguel,Colorado,08113,22,0 +2020-05-17,San Miguel,Colorado,08113,22,0 +2020-05-18,San Miguel,Colorado,08113,22,0 +2020-05-19,San Miguel,Colorado,08113,22,0 +2020-05-20,San Miguel,Colorado,08113,22,0 +2020-05-21,San Miguel,Colorado,08113,23,0 +2020-05-22,San Miguel,Colorado,08113,23,0 +2020-05-23,San Miguel,Colorado,08113,23,0 +2020-05-24,San Miguel,Colorado,08113,23,0 +2020-05-25,San Miguel,Colorado,08113,23,0 +2020-05-26,San Miguel,Colorado,08113,23,0 +2020-05-27,San Miguel,Colorado,08113,23,0 +2020-05-28,San Miguel,Colorado,08113,23,0 +2020-05-29,San Miguel,Colorado,08113,23,0 +2020-05-30,San Miguel,Colorado,08113,23,0 +2020-05-31,San Miguel,Colorado,08113,23,0 +2020-06-01,San Miguel,Colorado,08113,23,0 +2020-06-02,San Miguel,Colorado,08113,23,0 +2020-06-03,San Miguel,Colorado,08113,24,0 +2020-06-04,San Miguel,Colorado,08113,24,0 +2020-06-05,San Miguel,Colorado,08113,23,0 +2020-06-06,San Miguel,Colorado,08113,23,0 +2020-06-07,San Miguel,Colorado,08113,23,0 +2020-06-08,San Miguel,Colorado,08113,23,0 +2020-06-09,San Miguel,Colorado,08113,23,0 +2020-06-10,San Miguel,Colorado,08113,23,0 +2020-06-11,San Miguel,Colorado,08113,23,0 +2020-06-12,San Miguel,Colorado,08113,23,0 +2020-06-13,San Miguel,Colorado,08113,24,0 +2020-06-14,San Miguel,Colorado,08113,24,0 +2020-06-15,San Miguel,Colorado,08113,24,0 +2020-06-16,San Miguel,Colorado,08113,25,0 +2020-06-17,San Miguel,Colorado,08113,25,0 +2020-06-18,San Miguel,Colorado,08113,28,0 +2020-06-19,San Miguel,Colorado,08113,28,0 +2020-06-20,San Miguel,Colorado,08113,28,0 +2020-06-21,San Miguel,Colorado,08113,28,0 +2020-06-22,San Miguel,Colorado,08113,28,0 +2020-06-23,San Miguel,Colorado,08113,32,0 +2020-06-24,San Miguel,Colorado,08113,32,0 +2020-06-25,San Miguel,Colorado,08113,34,0 +2020-06-26,San Miguel,Colorado,08113,35,0 +2020-06-27,San Miguel,Colorado,08113,35,0 +2020-06-28,San Miguel,Colorado,08113,36,0 +2020-06-29,San Miguel,Colorado,08113,37,0 +2020-06-30,San Miguel,Colorado,08113,37,0 +2020-07-01,San Miguel,Colorado,08113,39,0 +2020-07-02,San Miguel,Colorado,08113,39,0 +2020-07-03,San Miguel,Colorado,08113,39,0 +2020-07-04,San Miguel,Colorado,08113,39,0 +2020-07-05,San Miguel,Colorado,08113,39,0 +2020-07-06,San Miguel,Colorado,08113,39,0 +2020-07-07,San Miguel,Colorado,08113,39,0 +2020-07-08,San Miguel,Colorado,08113,41,0 +2020-07-09,San Miguel,Colorado,08113,43,0 +2020-03-13,Summit,Colorado,08117,2,0 +2020-03-14,Summit,Colorado,08117,2,0 +2020-03-15,Summit,Colorado,08117,2,0 +2020-03-16,Summit,Colorado,08117,3,0 +2020-03-17,Summit,Colorado,08117,3,0 +2020-03-18,Summit,Colorado,08117,4,0 +2020-03-19,Summit,Colorado,08117,5,0 +2020-03-20,Summit,Colorado,08117,7,0 +2020-03-21,Summit,Colorado,08117,7,0 +2020-03-22,Summit,Colorado,08117,7,0 +2020-03-23,Summit,Colorado,08117,8,0 +2020-03-24,Summit,Colorado,08117,10,0 +2020-03-25,Summit,Colorado,08117,9,0 +2020-03-26,Summit,Colorado,08117,9,0 +2020-03-27,Summit,Colorado,08117,10,0 +2020-03-28,Summit,Colorado,08117,11,0 +2020-03-29,Summit,Colorado,08117,11,0 +2020-03-30,Summit,Colorado,08117,14,0 +2020-03-31,Summit,Colorado,08117,20,0 +2020-04-01,Summit,Colorado,08117,23,0 +2020-04-02,Summit,Colorado,08117,26,0 +2020-04-03,Summit,Colorado,08117,35,0 +2020-04-04,Summit,Colorado,08117,43,0 +2020-04-05,Summit,Colorado,08117,45,0 +2020-04-06,Summit,Colorado,08117,47,0 +2020-04-07,Summit,Colorado,08117,53,0 +2020-04-08,Summit,Colorado,08117,56,0 +2020-04-09,Summit,Colorado,08117,57,0 +2020-04-10,Summit,Colorado,08117,61,0 +2020-04-11,Summit,Colorado,08117,68,0 +2020-04-12,Summit,Colorado,08117,68,1 +2020-04-13,Summit,Colorado,08117,72,1 +2020-04-14,Summit,Colorado,08117,74,1 +2020-04-15,Summit,Colorado,08117,76,1 +2020-04-16,Summit,Colorado,08117,77,1 +2020-04-17,Summit,Colorado,08117,82,1 +2020-04-18,Summit,Colorado,08117,86,1 +2020-04-19,Summit,Colorado,08117,86,1 +2020-04-20,Summit,Colorado,08117,88,1 +2020-04-21,Summit,Colorado,08117,88,1 +2020-04-22,Summit,Colorado,08117,88,1 +2020-04-23,Summit,Colorado,08117,89,1 +2020-04-24,Summit,Colorado,08117,97,1 +2020-04-25,Summit,Colorado,08117,97,1 +2020-04-26,Summit,Colorado,08117,105,2 +2020-04-27,Summit,Colorado,08117,106,2 +2020-04-28,Summit,Colorado,08117,119,2 +2020-04-29,Summit,Colorado,08117,121,2 +2020-04-30,Summit,Colorado,08117,128,2 +2020-05-01,Summit,Colorado,08117,130,2 +2020-05-02,Summit,Colorado,08117,136,2 +2020-05-03,Summit,Colorado,08117,144,2 +2020-05-04,Summit,Colorado,08117,144,2 +2020-05-05,Summit,Colorado,08117,151,2 +2020-05-06,Summit,Colorado,08117,155,2 +2020-05-07,Summit,Colorado,08117,155,2 +2020-05-08,Summit,Colorado,08117,156,2 +2020-05-09,Summit,Colorado,08117,162,2 +2020-05-10,Summit,Colorado,08117,165,2 +2020-05-11,Summit,Colorado,08117,169,2 +2020-05-12,Summit,Colorado,08117,171,2 +2020-05-13,Summit,Colorado,08117,174,2 +2020-05-14,Summit,Colorado,08117,175,2 +2020-05-15,Summit,Colorado,08117,178,2 +2020-05-16,Summit,Colorado,08117,182,2 +2020-05-17,Summit,Colorado,08117,183,2 +2020-05-18,Summit,Colorado,08117,186,2 +2020-05-19,Summit,Colorado,08117,192,2 +2020-05-20,Summit,Colorado,08117,194,2 +2020-05-21,Summit,Colorado,08117,195,2 +2020-05-22,Summit,Colorado,08117,197,2 +2020-05-23,Summit,Colorado,08117,203,2 +2020-05-24,Summit,Colorado,08117,207,2 +2020-05-25,Summit,Colorado,08117,205,2 +2020-05-26,Summit,Colorado,08117,212,2 +2020-05-27,Summit,Colorado,08117,214,2 +2020-05-28,Summit,Colorado,08117,213,2 +2020-05-29,Summit,Colorado,08117,219,2 +2020-05-30,Summit,Colorado,08117,224,2 +2020-05-31,Summit,Colorado,08117,226,2 +2020-06-01,Summit,Colorado,08117,231,2 +2020-06-02,Summit,Colorado,08117,233,2 +2020-06-03,Summit,Colorado,08117,237,2 +2020-06-04,Summit,Colorado,08117,239,2 +2020-06-05,Summit,Colorado,08117,239,2 +2020-06-06,Summit,Colorado,08117,243,2 +2020-06-07,Summit,Colorado,08117,248,2 +2020-06-08,Summit,Colorado,08117,247,2 +2020-06-09,Summit,Colorado,08117,248,2 +2020-06-10,Summit,Colorado,08117,252,2 +2020-06-11,Summit,Colorado,08117,253,2 +2020-06-12,Summit,Colorado,08117,254,2 +2020-06-13,Summit,Colorado,08117,256,2 +2020-06-14,Summit,Colorado,08117,256,2 +2020-06-15,Summit,Colorado,08117,257,2 +2020-06-16,Summit,Colorado,08117,258,3 +2020-06-17,Summit,Colorado,08117,262,3 +2020-06-18,Summit,Colorado,08117,262,3 +2020-06-19,Summit,Colorado,08117,262,3 +2020-06-20,Summit,Colorado,08117,262,3 +2020-06-21,Summit,Colorado,08117,262,3 +2020-06-22,Summit,Colorado,08117,263,3 +2020-06-23,Summit,Colorado,08117,264,3 +2020-06-24,Summit,Colorado,08117,264,3 +2020-06-25,Summit,Colorado,08117,265,3 +2020-06-26,Summit,Colorado,08117,267,3 +2020-06-27,Summit,Colorado,08117,267,3 +2020-06-28,Summit,Colorado,08117,269,3 +2020-06-29,Summit,Colorado,08117,269,3 +2020-06-30,Summit,Colorado,08117,269,3 +2020-07-01,Summit,Colorado,08117,274,3 +2020-07-02,Summit,Colorado,08117,276,4 +2020-07-03,Summit,Colorado,08117,277,4 +2020-07-04,Summit,Colorado,08117,278,4 +2020-07-05,Summit,Colorado,08117,281,4 +2020-07-06,Summit,Colorado,08117,281,4 +2020-07-07,Summit,Colorado,08117,286,4 +2020-07-08,Summit,Colorado,08117,288,4 +2020-07-09,Summit,Colorado,08117,289,4 +2020-03-23,Teller,Colorado,08119,3,1 +2020-03-24,Teller,Colorado,08119,3,1 +2020-03-25,Teller,Colorado,08119,5,1 +2020-03-26,Teller,Colorado,08119,7,1 +2020-03-27,Teller,Colorado,08119,7,1 +2020-03-28,Teller,Colorado,08119,7,1 +2020-03-29,Teller,Colorado,08119,7,1 +2020-03-30,Teller,Colorado,08119,8,1 +2020-03-31,Teller,Colorado,08119,7,1 +2020-04-01,Teller,Colorado,08119,7,1 +2020-04-02,Teller,Colorado,08119,7,1 +2020-04-03,Teller,Colorado,08119,11,1 +2020-04-04,Teller,Colorado,08119,11,1 +2020-04-05,Teller,Colorado,08119,11,1 +2020-04-06,Teller,Colorado,08119,11,1 +2020-04-07,Teller,Colorado,08119,12,1 +2020-04-08,Teller,Colorado,08119,12,1 +2020-04-09,Teller,Colorado,08119,12,1 +2020-04-10,Teller,Colorado,08119,12,2 +2020-04-11,Teller,Colorado,08119,12,2 +2020-04-12,Teller,Colorado,08119,16,2 +2020-04-13,Teller,Colorado,08119,15,2 +2020-04-14,Teller,Colorado,08119,16,2 +2020-04-15,Teller,Colorado,08119,16,2 +2020-04-16,Teller,Colorado,08119,17,2 +2020-04-17,Teller,Colorado,08119,18,2 +2020-04-18,Teller,Colorado,08119,18,2 +2020-04-19,Teller,Colorado,08119,24,2 +2020-04-20,Teller,Colorado,08119,24,2 +2020-04-21,Teller,Colorado,08119,25,2 +2020-04-22,Teller,Colorado,08119,25,2 +2020-04-23,Teller,Colorado,08119,25,2 +2020-04-24,Teller,Colorado,08119,26,2 +2020-04-25,Teller,Colorado,08119,27,2 +2020-04-26,Teller,Colorado,08119,27,2 +2020-04-27,Teller,Colorado,08119,27,2 +2020-04-28,Teller,Colorado,08119,28,2 +2020-04-29,Teller,Colorado,08119,28,2 +2020-04-30,Teller,Colorado,08119,28,2 +2020-05-01,Teller,Colorado,08119,28,2 +2020-05-02,Teller,Colorado,08119,28,2 +2020-05-03,Teller,Colorado,08119,28,2 +2020-05-04,Teller,Colorado,08119,28,2 +2020-05-05,Teller,Colorado,08119,29,2 +2020-05-06,Teller,Colorado,08119,30,2 +2020-05-07,Teller,Colorado,08119,30,2 +2020-05-08,Teller,Colorado,08119,30,2 +2020-05-09,Teller,Colorado,08119,30,2 +2020-05-10,Teller,Colorado,08119,31,2 +2020-05-11,Teller,Colorado,08119,31,2 +2020-05-12,Teller,Colorado,08119,31,2 +2020-05-13,Teller,Colorado,08119,31,2 +2020-05-14,Teller,Colorado,08119,31,2 +2020-05-15,Teller,Colorado,08119,31,2 +2020-05-16,Teller,Colorado,08119,31,2 +2020-05-17,Teller,Colorado,08119,31,2 +2020-05-18,Teller,Colorado,08119,31,2 +2020-05-19,Teller,Colorado,08119,31,2 +2020-05-20,Teller,Colorado,08119,32,2 +2020-05-21,Teller,Colorado,08119,33,2 +2020-05-22,Teller,Colorado,08119,32,2 +2020-05-23,Teller,Colorado,08119,32,2 +2020-05-24,Teller,Colorado,08119,32,2 +2020-05-25,Teller,Colorado,08119,32,2 +2020-05-26,Teller,Colorado,08119,32,2 +2020-05-27,Teller,Colorado,08119,32,2 +2020-05-28,Teller,Colorado,08119,32,2 +2020-05-29,Teller,Colorado,08119,32,2 +2020-05-30,Teller,Colorado,08119,32,2 +2020-05-31,Teller,Colorado,08119,32,2 +2020-06-01,Teller,Colorado,08119,33,2 +2020-06-02,Teller,Colorado,08119,33,2 +2020-06-03,Teller,Colorado,08119,33,2 +2020-06-04,Teller,Colorado,08119,33,2 +2020-06-05,Teller,Colorado,08119,33,2 +2020-06-06,Teller,Colorado,08119,34,2 +2020-06-07,Teller,Colorado,08119,34,2 +2020-06-08,Teller,Colorado,08119,36,2 +2020-06-09,Teller,Colorado,08119,37,2 +2020-06-10,Teller,Colorado,08119,37,2 +2020-06-11,Teller,Colorado,08119,37,2 +2020-06-12,Teller,Colorado,08119,38,2 +2020-06-13,Teller,Colorado,08119,38,2 +2020-06-14,Teller,Colorado,08119,38,2 +2020-06-15,Teller,Colorado,08119,38,2 +2020-06-16,Teller,Colorado,08119,39,2 +2020-06-17,Teller,Colorado,08119,39,2 +2020-06-18,Teller,Colorado,08119,39,2 +2020-06-19,Teller,Colorado,08119,39,2 +2020-06-20,Teller,Colorado,08119,39,2 +2020-06-21,Teller,Colorado,08119,39,2 +2020-06-22,Teller,Colorado,08119,40,2 +2020-06-23,Teller,Colorado,08119,40,2 +2020-06-24,Teller,Colorado,08119,40,2 +2020-06-25,Teller,Colorado,08119,41,2 +2020-06-26,Teller,Colorado,08119,41,2 +2020-06-27,Teller,Colorado,08119,41,2 +2020-06-28,Teller,Colorado,08119,41,2 +2020-06-29,Teller,Colorado,08119,41,2 +2020-06-30,Teller,Colorado,08119,41,2 +2020-07-01,Teller,Colorado,08119,41,2 +2020-07-02,Teller,Colorado,08119,41,2 +2020-07-03,Teller,Colorado,08119,42,2 +2020-07-04,Teller,Colorado,08119,43,2 +2020-07-05,Teller,Colorado,08119,43,2 +2020-07-06,Teller,Colorado,08119,43,2 +2020-07-07,Teller,Colorado,08119,52,2 +2020-07-08,Teller,Colorado,08119,52,2 +2020-07-09,Teller,Colorado,08119,53,2 +2020-03-26,Washington,Colorado,08121,1,0 +2020-03-27,Washington,Colorado,08121,1,0 +2020-03-28,Washington,Colorado,08121,1,0 +2020-03-29,Washington,Colorado,08121,1,0 +2020-03-30,Washington,Colorado,08121,1,0 +2020-03-31,Washington,Colorado,08121,1,0 +2020-04-01,Washington,Colorado,08121,1,0 +2020-04-02,Washington,Colorado,08121,1,0 +2020-04-03,Washington,Colorado,08121,1,0 +2020-04-04,Washington,Colorado,08121,1,0 +2020-04-05,Washington,Colorado,08121,1,0 +2020-04-06,Washington,Colorado,08121,1,0 +2020-04-07,Washington,Colorado,08121,1,0 +2020-04-08,Washington,Colorado,08121,1,0 +2020-04-09,Washington,Colorado,08121,2,0 +2020-04-10,Washington,Colorado,08121,2,0 +2020-04-11,Washington,Colorado,08121,2,0 +2020-04-12,Washington,Colorado,08121,2,0 +2020-04-13,Washington,Colorado,08121,2,0 +2020-04-14,Washington,Colorado,08121,5,0 +2020-04-15,Washington,Colorado,08121,5,0 +2020-04-16,Washington,Colorado,08121,5,0 +2020-04-17,Washington,Colorado,08121,5,0 +2020-04-18,Washington,Colorado,08121,6,0 +2020-04-19,Washington,Colorado,08121,6,0 +2020-04-20,Washington,Colorado,08121,6,0 +2020-04-21,Washington,Colorado,08121,6,0 +2020-04-22,Washington,Colorado,08121,6,0 +2020-04-23,Washington,Colorado,08121,6,0 +2020-04-24,Washington,Colorado,08121,6,0 +2020-04-25,Washington,Colorado,08121,6,0 +2020-04-26,Washington,Colorado,08121,6,0 +2020-04-27,Washington,Colorado,08121,6,0 +2020-04-28,Washington,Colorado,08121,7,0 +2020-04-29,Washington,Colorado,08121,7,0 +2020-04-30,Washington,Colorado,08121,7,0 +2020-05-01,Washington,Colorado,08121,7,0 +2020-05-02,Washington,Colorado,08121,8,0 +2020-05-03,Washington,Colorado,08121,8,0 +2020-05-04,Washington,Colorado,08121,8,0 +2020-05-05,Washington,Colorado,08121,9,0 +2020-05-06,Washington,Colorado,08121,9,0 +2020-05-07,Washington,Colorado,08121,9,0 +2020-05-08,Washington,Colorado,08121,9,0 +2020-05-09,Washington,Colorado,08121,9,0 +2020-05-10,Washington,Colorado,08121,9,0 +2020-05-11,Washington,Colorado,08121,9,0 +2020-05-12,Washington,Colorado,08121,9,0 +2020-05-13,Washington,Colorado,08121,9,0 +2020-05-14,Washington,Colorado,08121,9,0 +2020-05-15,Washington,Colorado,08121,9,0 +2020-05-16,Washington,Colorado,08121,10,0 +2020-05-17,Washington,Colorado,08121,10,0 +2020-05-18,Washington,Colorado,08121,11,0 +2020-05-19,Washington,Colorado,08121,11,0 +2020-05-20,Washington,Colorado,08121,11,0 +2020-05-21,Washington,Colorado,08121,15,0 +2020-05-22,Washington,Colorado,08121,15,0 +2020-05-23,Washington,Colorado,08121,30,0 +2020-05-24,Washington,Colorado,08121,31,0 +2020-05-25,Washington,Colorado,08121,32,0 +2020-05-26,Washington,Colorado,08121,32,0 +2020-05-27,Washington,Colorado,08121,33,0 +2020-05-28,Washington,Colorado,08121,33,0 +2020-05-29,Washington,Colorado,08121,40,0 +2020-05-30,Washington,Colorado,08121,40,0 +2020-05-31,Washington,Colorado,08121,41,0 +2020-06-01,Washington,Colorado,08121,41,0 +2020-06-02,Washington,Colorado,08121,41,0 +2020-06-03,Washington,Colorado,08121,41,0 +2020-06-04,Washington,Colorado,08121,42,0 +2020-06-05,Washington,Colorado,08121,42,0 +2020-06-06,Washington,Colorado,08121,42,0 +2020-06-07,Washington,Colorado,08121,43,0 +2020-06-08,Washington,Colorado,08121,43,0 +2020-06-09,Washington,Colorado,08121,43,0 +2020-06-10,Washington,Colorado,08121,43,0 +2020-06-11,Washington,Colorado,08121,44,0 +2020-06-12,Washington,Colorado,08121,44,0 +2020-06-13,Washington,Colorado,08121,44,0 +2020-06-14,Washington,Colorado,08121,44,0 +2020-06-15,Washington,Colorado,08121,44,0 +2020-06-16,Washington,Colorado,08121,44,0 +2020-06-17,Washington,Colorado,08121,44,0 +2020-06-18,Washington,Colorado,08121,44,0 +2020-06-19,Washington,Colorado,08121,44,0 +2020-06-20,Washington,Colorado,08121,44,0 +2020-06-21,Washington,Colorado,08121,44,0 +2020-06-22,Washington,Colorado,08121,44,0 +2020-06-23,Washington,Colorado,08121,44,0 +2020-06-24,Washington,Colorado,08121,44,0 +2020-06-25,Washington,Colorado,08121,44,0 +2020-06-26,Washington,Colorado,08121,44,0 +2020-06-27,Washington,Colorado,08121,44,0 +2020-06-28,Washington,Colorado,08121,44,0 +2020-06-29,Washington,Colorado,08121,44,0 +2020-06-30,Washington,Colorado,08121,45,0 +2020-07-01,Washington,Colorado,08121,45,0 +2020-07-02,Washington,Colorado,08121,46,0 +2020-07-03,Washington,Colorado,08121,46,0 +2020-07-04,Washington,Colorado,08121,46,0 +2020-07-05,Washington,Colorado,08121,46,0 +2020-07-06,Washington,Colorado,08121,46,0 +2020-07-07,Washington,Colorado,08121,46,0 +2020-07-08,Washington,Colorado,08121,46,0 +2020-07-09,Washington,Colorado,08121,46,0 +2020-03-13,Weld,Colorado,08123,1,0 +2020-03-14,Weld,Colorado,08123,2,0 +2020-03-15,Weld,Colorado,08123,4,0 +2020-03-16,Weld,Colorado,08123,4,0 +2020-03-17,Weld,Colorado,08123,5,1 +2020-03-18,Weld,Colorado,08123,9,1 +2020-03-19,Weld,Colorado,08123,9,1 +2020-03-20,Weld,Colorado,08123,15,1 +2020-03-21,Weld,Colorado,08123,21,1 +2020-03-22,Weld,Colorado,08123,37,2 +2020-03-23,Weld,Colorado,08123,50,2 +2020-03-24,Weld,Colorado,08123,76,2 +2020-03-25,Weld,Colorado,08123,87,4 +2020-03-26,Weld,Colorado,08123,107,4 +2020-03-27,Weld,Colorado,08123,129,6 +2020-03-28,Weld,Colorado,08123,161,7 +2020-03-29,Weld,Colorado,08123,180,9 +2020-03-30,Weld,Colorado,08123,215,10 +2020-03-31,Weld,Colorado,08123,255,12 +2020-04-01,Weld,Colorado,08123,293,13 +2020-04-02,Weld,Colorado,08123,329,16 +2020-04-03,Weld,Colorado,08123,379,16 +2020-04-04,Weld,Colorado,08123,424,22 +2020-04-05,Weld,Colorado,08123,470,24 +2020-04-06,Weld,Colorado,08123,504,26 +2020-04-07,Weld,Colorado,08123,537,27 +2020-04-08,Weld,Colorado,08123,573,30 +2020-04-09,Weld,Colorado,08123,614,36 +2020-04-10,Weld,Colorado,08123,649,40 +2020-04-11,Weld,Colorado,08123,683,44 +2020-04-12,Weld,Colorado,08123,738,48 +2020-04-13,Weld,Colorado,08123,808,53 +2020-04-14,Weld,Colorado,08123,858,55 +2020-04-15,Weld,Colorado,08123,928,57 +2020-04-16,Weld,Colorado,08123,960,60 +2020-04-17,Weld,Colorado,08123,986,61 +2020-04-18,Weld,Colorado,08123,1029,61 +2020-04-19,Weld,Colorado,08123,1070,64 +2020-04-20,Weld,Colorado,08123,1121,68 +2020-04-21,Weld,Colorado,08123,1180,69 +2020-04-22,Weld,Colorado,08123,1237,69 +2020-04-23,Weld,Colorado,08123,1263,70 +2020-04-24,Weld,Colorado,08123,1353,82 +2020-04-25,Weld,Colorado,08123,1430,78 +2020-04-26,Weld,Colorado,08123,1469,79 +2020-04-27,Weld,Colorado,08123,1544,87 +2020-04-28,Weld,Colorado,08123,1618,88 +2020-04-29,Weld,Colorado,08123,1704,93 +2020-04-30,Weld,Colorado,08123,1776,95 +2020-05-01,Weld,Colorado,08123,1802,100 +2020-05-02,Weld,Colorado,08123,1836,100 +2020-05-03,Weld,Colorado,08123,1872,100 +2020-05-04,Weld,Colorado,08123,1897,102 +2020-05-05,Weld,Colorado,08123,1955,107 +2020-05-06,Weld,Colorado,08123,1988,109 +2020-05-07,Weld,Colorado,08123,2042,113 +2020-05-08,Weld,Colorado,08123,2087,113 +2020-05-09,Weld,Colorado,08123,2120,113 +2020-05-10,Weld,Colorado,08123,2139,113 +2020-05-11,Weld,Colorado,08123,2159,114 +2020-05-12,Weld,Colorado,08123,2190,117 +2020-05-13,Weld,Colorado,08123,2211,119 +2020-05-14,Weld,Colorado,08123,2232,119 +2020-05-15,Weld,Colorado,08123,2260,122 +2020-05-16,Weld,Colorado,08123,2281,123 +2020-05-17,Weld,Colorado,08123,2295,123 +2020-05-18,Weld,Colorado,08123,2305,123 +2020-05-19,Weld,Colorado,08123,2326,124 +2020-05-20,Weld,Colorado,08123,2338,125 +2020-05-21,Weld,Colorado,08123,2358,125 +2020-05-22,Weld,Colorado,08123,2367,125 +2020-05-23,Weld,Colorado,08123,2391,125 +2020-05-24,Weld,Colorado,08123,2406,125 +2020-05-25,Weld,Colorado,08123,2412,124 +2020-05-26,Weld,Colorado,08123,2423,127 +2020-05-27,Weld,Colorado,08123,2430,128 +2020-05-28,Weld,Colorado,08123,2444,129 +2020-05-29,Weld,Colorado,08123,2472,130 +2020-05-30,Weld,Colorado,08123,2480,131 +2020-05-31,Weld,Colorado,08123,2488,131 +2020-06-01,Weld,Colorado,08123,2501,132 +2020-06-02,Weld,Colorado,08123,2505,132 +2020-06-03,Weld,Colorado,08123,2521,133 +2020-06-04,Weld,Colorado,08123,2534,134 +2020-06-05,Weld,Colorado,08123,2540,134 +2020-06-06,Weld,Colorado,08123,2566,135 +2020-06-07,Weld,Colorado,08123,2583,135 +2020-06-08,Weld,Colorado,08123,2598,135 +2020-06-09,Weld,Colorado,08123,2604,135 +2020-06-10,Weld,Colorado,08123,2616,135 +2020-06-11,Weld,Colorado,08123,2629,136 +2020-06-12,Weld,Colorado,08123,2646,136 +2020-06-13,Weld,Colorado,08123,2652,136 +2020-06-14,Weld,Colorado,08123,2656,136 +2020-06-15,Weld,Colorado,08123,2666,136 +2020-06-16,Weld,Colorado,08123,2671,136 +2020-06-17,Weld,Colorado,08123,2693,136 +2020-06-18,Weld,Colorado,08123,2698,136 +2020-06-19,Weld,Colorado,08123,2705,136 +2020-06-20,Weld,Colorado,08123,2714,136 +2020-06-21,Weld,Colorado,08123,2721,136 +2020-06-22,Weld,Colorado,08123,2724,136 +2020-06-23,Weld,Colorado,08123,2730,136 +2020-06-24,Weld,Colorado,08123,2746,136 +2020-06-25,Weld,Colorado,08123,2757,136 +2020-06-26,Weld,Colorado,08123,2773,136 +2020-06-27,Weld,Colorado,08123,2783,136 +2020-06-28,Weld,Colorado,08123,2788,137 +2020-06-29,Weld,Colorado,08123,2798,137 +2020-06-30,Weld,Colorado,08123,2802,137 +2020-07-01,Weld,Colorado,08123,2823,137 +2020-07-02,Weld,Colorado,08123,2839,137 +2020-07-03,Weld,Colorado,08123,2854,137 +2020-07-04,Weld,Colorado,08123,2862,137 +2020-07-05,Weld,Colorado,08123,2871,137 +2020-07-06,Weld,Colorado,08123,2886,137 +2020-07-07,Weld,Colorado,08123,2903,138 +2020-07-08,Weld,Colorado,08123,2930,138 +2020-07-09,Weld,Colorado,08123,2961,138 +2020-03-18,Yuma,Colorado,08125,1,0 +2020-03-19,Yuma,Colorado,08125,1,0 +2020-03-20,Yuma,Colorado,08125,1,0 +2020-03-21,Yuma,Colorado,08125,1,0 +2020-03-22,Yuma,Colorado,08125,1,0 +2020-03-23,Yuma,Colorado,08125,1,0 +2020-03-24,Yuma,Colorado,08125,1,0 +2020-03-25,Yuma,Colorado,08125,1,0 +2020-03-26,Yuma,Colorado,08125,2,0 +2020-03-27,Yuma,Colorado,08125,2,0 +2020-03-28,Yuma,Colorado,08125,2,0 +2020-03-29,Yuma,Colorado,08125,2,0 +2020-03-30,Yuma,Colorado,08125,2,0 +2020-03-31,Yuma,Colorado,08125,2,0 +2020-04-01,Yuma,Colorado,08125,2,0 +2020-04-02,Yuma,Colorado,08125,2,0 +2020-04-03,Yuma,Colorado,08125,2,0 +2020-04-04,Yuma,Colorado,08125,2,0 +2020-04-05,Yuma,Colorado,08125,2,0 +2020-04-06,Yuma,Colorado,08125,2,0 +2020-04-07,Yuma,Colorado,08125,2,0 +2020-04-08,Yuma,Colorado,08125,2,0 +2020-04-09,Yuma,Colorado,08125,2,0 +2020-04-10,Yuma,Colorado,08125,2,0 +2020-04-11,Yuma,Colorado,08125,2,0 +2020-04-12,Yuma,Colorado,08125,2,0 +2020-04-13,Yuma,Colorado,08125,2,0 +2020-04-14,Yuma,Colorado,08125,2,0 +2020-04-15,Yuma,Colorado,08125,2,0 +2020-04-16,Yuma,Colorado,08125,2,0 +2020-04-17,Yuma,Colorado,08125,2,0 +2020-04-18,Yuma,Colorado,08125,2,0 +2020-04-19,Yuma,Colorado,08125,3,0 +2020-04-20,Yuma,Colorado,08125,3,0 +2020-04-21,Yuma,Colorado,08125,3,0 +2020-04-22,Yuma,Colorado,08125,4,0 +2020-04-23,Yuma,Colorado,08125,5,0 +2020-04-24,Yuma,Colorado,08125,6,0 +2020-04-25,Yuma,Colorado,08125,6,0 +2020-04-26,Yuma,Colorado,08125,6,0 +2020-04-27,Yuma,Colorado,08125,6,0 +2020-04-28,Yuma,Colorado,08125,7,0 +2020-04-29,Yuma,Colorado,08125,8,0 +2020-04-30,Yuma,Colorado,08125,8,0 +2020-05-01,Yuma,Colorado,08125,9,0 +2020-05-02,Yuma,Colorado,08125,8,0 +2020-05-03,Yuma,Colorado,08125,9,0 +2020-05-04,Yuma,Colorado,08125,9,0 +2020-05-05,Yuma,Colorado,08125,9,0 +2020-05-06,Yuma,Colorado,08125,9,0 +2020-05-07,Yuma,Colorado,08125,10,0 +2020-05-08,Yuma,Colorado,08125,10,0 +2020-05-09,Yuma,Colorado,08125,10,0 +2020-05-10,Yuma,Colorado,08125,11,0 +2020-05-11,Yuma,Colorado,08125,11,0 +2020-05-12,Yuma,Colorado,08125,11,0 +2020-05-13,Yuma,Colorado,08125,11,0 +2020-05-14,Yuma,Colorado,08125,11,0 +2020-05-15,Yuma,Colorado,08125,12,0 +2020-05-16,Yuma,Colorado,08125,12,0 +2020-05-17,Yuma,Colorado,08125,12,0 +2020-05-18,Yuma,Colorado,08125,11,0 +2020-05-19,Yuma,Colorado,08125,11,0 +2020-05-20,Yuma,Colorado,08125,11,0 +2020-05-21,Yuma,Colorado,08125,12,0 +2020-05-22,Yuma,Colorado,08125,12,0 +2020-05-23,Yuma,Colorado,08125,15,0 +2020-05-24,Yuma,Colorado,08125,15,0 +2020-05-25,Yuma,Colorado,08125,18,0 +2020-05-26,Yuma,Colorado,08125,19,0 +2020-05-27,Yuma,Colorado,08125,19,0 +2020-05-28,Yuma,Colorado,08125,20,0 +2020-05-29,Yuma,Colorado,08125,36,0 +2020-05-30,Yuma,Colorado,08125,35,0 +2020-05-31,Yuma,Colorado,08125,35,0 +2020-06-01,Yuma,Colorado,08125,40,0 +2020-06-02,Yuma,Colorado,08125,40,0 +2020-06-03,Yuma,Colorado,08125,40,0 +2020-06-04,Yuma,Colorado,08125,42,0 +2020-06-05,Yuma,Colorado,08125,43,0 +2020-06-06,Yuma,Colorado,08125,44,0 +2020-06-07,Yuma,Colorado,08125,45,0 +2020-06-08,Yuma,Colorado,08125,48,0 +2020-06-09,Yuma,Colorado,08125,48,0 +2020-06-10,Yuma,Colorado,08125,48,0 +2020-06-11,Yuma,Colorado,08125,47,0 +2020-06-12,Yuma,Colorado,08125,47,0 +2020-06-13,Yuma,Colorado,08125,47,0 +2020-06-14,Yuma,Colorado,08125,48,0 +2020-06-15,Yuma,Colorado,08125,49,0 +2020-06-16,Yuma,Colorado,08125,49,0 +2020-06-17,Yuma,Colorado,08125,49,0 +2020-06-18,Yuma,Colorado,08125,49,0 +2020-06-19,Yuma,Colorado,08125,49,0 +2020-06-20,Yuma,Colorado,08125,49,0 +2020-06-21,Yuma,Colorado,08125,50,0 +2020-06-22,Yuma,Colorado,08125,50,0 +2020-06-23,Yuma,Colorado,08125,50,0 +2020-06-24,Yuma,Colorado,08125,51,0 +2020-06-25,Yuma,Colorado,08125,51,0 +2020-06-26,Yuma,Colorado,08125,51,0 +2020-06-27,Yuma,Colorado,08125,51,0 +2020-06-28,Yuma,Colorado,08125,51,0 +2020-06-29,Yuma,Colorado,08125,52,0 +2020-06-30,Yuma,Colorado,08125,52,0 +2020-07-01,Yuma,Colorado,08125,52,0 +2020-07-02,Yuma,Colorado,08125,52,0 +2020-07-03,Yuma,Colorado,08125,52,0 +2020-07-04,Yuma,Colorado,08125,53,0 +2020-07-05,Yuma,Colorado,08125,53,0 +2020-07-06,Yuma,Colorado,08125,53,0 +2020-07-07,Yuma,Colorado,08125,53,0 +2020-07-08,Yuma,Colorado,08125,54,0 +2020-07-09,Yuma,Colorado,08125,54,0 +2020-03-08,Fairfield,Connecticut,09001,1,0 +2020-03-09,Fairfield,Connecticut,09001,2,0 +2020-03-10,Fairfield,Connecticut,09001,2,0 +2020-03-11,Fairfield,Connecticut,09001,3,0 +2020-03-12,Fairfield,Connecticut,09001,5,0 +2020-03-13,Fairfield,Connecticut,09001,8,0 +2020-03-14,Fairfield,Connecticut,09001,15,0 +2020-03-15,Fairfield,Connecticut,09001,16,0 +2020-03-16,Fairfield,Connecticut,09001,29,0 +2020-03-17,Fairfield,Connecticut,09001,48,0 +2020-03-18,Fairfield,Connecticut,09001,69,1 +2020-03-19,Fairfield,Connecticut,09001,102,4 +2020-03-20,Fairfield,Connecticut,09001,122,4 +2020-03-21,Fairfield,Connecticut,09001,140,4 +2020-03-22,Fairfield,Connecticut,09001,208,5 +2020-03-23,Fairfield,Connecticut,09001,270,6 +2020-03-24,Fairfield,Connecticut,09001,384,7 +2020-03-25,Fairfield,Connecticut,09001,546,12 +2020-03-26,Fairfield,Connecticut,09001,607,13 +2020-03-27,Fairfield,Connecticut,09001,752,15 +2020-03-28,Fairfield,Connecticut,09001,908,20 +2020-03-29,Fairfield,Connecticut,09001,1245,21 +2020-03-30,Fairfield,Connecticut,09001,1445,21 +2020-03-31,Fairfield,Connecticut,09001,1870,38 +2020-04-01,Fairfield,Connecticut,09001,1986,46 +2020-04-02,Fairfield,Connecticut,09001,2132,65 +2020-04-03,Fairfield,Connecticut,09001,2717,76 +2020-04-04,Fairfield,Connecticut,09001,2824,86 +2020-04-05,Fairfield,Connecticut,09001,3050,96 +2020-04-06,Fairfield,Connecticut,09001,3719,101 +2020-04-07,Fairfield,Connecticut,09001,4136,132 +2020-04-08,Fairfield,Connecticut,09001,4417,155 +2020-04-09,Fairfield,Connecticut,09001,4882,178 +2020-04-10,Fairfield,Connecticut,09001,5180,203 +2020-04-11,Fairfield,Connecticut,09001,5407,220 +2020-04-12,Fairfield,Connecticut,09001,5534,248 +2020-04-13,Fairfield,Connecticut,09001,6004,262 +2020-04-14,Fairfield,Connecticut,09001,6213,287 +2020-04-15,Fairfield,Connecticut,09001,6480,365 +2020-04-16,Fairfield,Connecticut,09001,6816,406 +2020-04-17,Fairfield,Connecticut,09001,7146,425 +2020-04-18,Fairfield,Connecticut,09001,7363,432 +2020-04-19,Fairfield,Connecticut,09001,7434,447 +2020-04-20,Fairfield,Connecticut,09001,8320,512 +2020-04-21,Fairfield,Connecticut,09001,8472,544 +2020-04-22,Fairfield,Connecticut,09001,9883,584 +2020-04-23,Fairfield,Connecticut,09001,10008,615 +2020-04-24,Fairfield,Connecticut,09001,10227,662 +2020-04-25,Fairfield,Connecticut,09001,10373,689 +2020-04-26,Fairfield,Connecticut,09001,10529,707 +2020-04-27,Fairfield,Connecticut,09001,10763,727 +2020-04-28,Fairfield,Connecticut,09001,10874,747 +2020-04-29,Fairfield,Connecticut,09001,10985,774 +2020-04-30,Fairfield,Connecticut,09001,11294,810 +2020-05-01,Fairfield,Connecticut,09001,11612,839 +2020-05-02,Fairfield,Connecticut,09001,11801,865 +2020-05-03,Fairfield,Connecticut,09001,11801,865 +2020-05-04,Fairfield,Connecticut,09001,12245,910 +2020-05-05,Fairfield,Connecticut,09001,12360,935 +2020-05-06,Fairfield,Connecticut,09001,12455,952 +2020-05-07,Fairfield,Connecticut,09001,12679,977 +2020-05-08,Fairfield,Connecticut,09001,12879,1006 +2020-05-09,Fairfield,Connecticut,09001,13030,1017 +2020-05-10,Fairfield,Connecticut,09001,13236,1024 +2020-05-11,Fairfield,Connecticut,09001,13312,1034 +2020-05-12,Fairfield,Connecticut,09001,13488,1046 +2020-05-13,Fairfield,Connecticut,09001,13636,1068 +2020-05-14,Fairfield,Connecticut,09001,13836,1093 +2020-05-15,Fairfield,Connecticut,09001,14009,1109 +2020-05-16,Fairfield,Connecticut,09001,14140,1125 +2020-05-17,Fairfield,Connecticut,09001,14248,1146 +2020-05-18,Fairfield,Connecticut,09001,14439,1153 +2020-05-19,Fairfield,Connecticut,09001,14522,1160 +2020-05-20,Fairfield,Connecticut,09001,14719,1167 +2020-05-21,Fairfield,Connecticut,09001,14751,1180 +2020-05-22,Fairfield,Connecticut,09001,14889,1195 +2020-05-23,Fairfield,Connecticut,09001,14989,1208 +2020-05-24,Fairfield,Connecticut,09001,15114,1215 +2020-05-25,Fairfield,Connecticut,09001,15213,1221 +2020-05-26,Fairfield,Connecticut,09001,15355,1231 +2020-05-27,Fairfield,Connecticut,09001,15314,1242 +2020-05-28,Fairfield,Connecticut,09001,15353,1246 +2020-05-29,Fairfield,Connecticut,09001,15409,1257 +2020-05-30,Fairfield,Connecticut,09001,15502,1267 +2020-05-31,Fairfield,Connecticut,09001,15549,1277 +2020-06-01,Fairfield,Connecticut,09001,15709,1288 +2020-06-02,Fairfield,Connecticut,09001,15776,1287 +2020-06-03,Fairfield,Connecticut,09001,15789,1289 +2020-06-04,Fairfield,Connecticut,09001,15843,1293 +2020-06-05,Fairfield,Connecticut,09001,15914,1304 +2020-06-06,Fairfield,Connecticut,09001,16020,1309 +2020-06-07,Fairfield,Connecticut,09001,16056,1312 +2020-06-08,Fairfield,Connecticut,09001,16092,1316 +2020-06-09,Fairfield,Connecticut,09001,16108,1319 +2020-06-10,Fairfield,Connecticut,09001,16134,1321 +2020-06-11,Fairfield,Connecticut,09001,16155,1333 +2020-06-12,Fairfield,Connecticut,09001,16178,1337 +2020-06-13,Fairfield,Connecticut,09001,16277,1345 +2020-06-14,Fairfield,Connecticut,09001,16306,1346 +2020-06-15,Fairfield,Connecticut,09001,16338,1347 +2020-06-16,Fairfield,Connecticut,09001,16359,1350 +2020-06-17,Fairfield,Connecticut,09001,16381,1352 +2020-06-18,Fairfield,Connecticut,09001,16398,1352 +2020-06-19,Fairfield,Connecticut,09001,16425,1355 +2020-06-20,Fairfield,Connecticut,09001,16469,1361 +2020-06-21,Fairfield,Connecticut,09001,16475,1361 +2020-06-22,Fairfield,Connecticut,09001,16483,1362 +2020-06-23,Fairfield,Connecticut,09001,16522,1367 +2020-06-24,Fairfield,Connecticut,09001,16527,1370 +2020-06-25,Fairfield,Connecticut,09001,16547,1373 +2020-06-26,Fairfield,Connecticut,09001,16564,1375 +2020-06-27,Fairfield,Connecticut,09001,16606,1375 +2020-06-28,Fairfield,Connecticut,09001,16633,1375 +2020-06-29,Fairfield,Connecticut,09001,16664,1376 +2020-06-30,Fairfield,Connecticut,09001,16703,1376 +2020-07-01,Fairfield,Connecticut,09001,16717,1376 +2020-07-02,Fairfield,Connecticut,09001,16733,1376 +2020-07-03,Fairfield,Connecticut,09001,16757,1377 +2020-07-04,Fairfield,Connecticut,09001,16757,1377 +2020-07-05,Fairfield,Connecticut,09001,16757,1377 +2020-07-06,Fairfield,Connecticut,09001,16823,1377 +2020-07-07,Fairfield,Connecticut,09001,16837,1377 +2020-07-08,Fairfield,Connecticut,09001,16859,1378 +2020-07-09,Fairfield,Connecticut,09001,16886,1380 +2020-03-14,Hartford,Connecticut,09003,1,0 +2020-03-15,Hartford,Connecticut,09003,3,0 +2020-03-16,Hartford,Connecticut,09003,4,0 +2020-03-17,Hartford,Connecticut,09003,7,0 +2020-03-18,Hartford,Connecticut,09003,11,0 +2020-03-19,Hartford,Connecticut,09003,18,0 +2020-03-20,Hartford,Connecticut,09003,29,0 +2020-03-21,Hartford,Connecticut,09003,35,0 +2020-03-22,Hartford,Connecticut,09003,54,1 +2020-03-23,Hartford,Connecticut,09003,61,2 +2020-03-24,Hartford,Connecticut,09003,88,2 +2020-03-25,Hartford,Connecticut,09003,116,2 +2020-03-26,Hartford,Connecticut,09003,138,2 +2020-03-27,Hartford,Connecticut,09003,189,2 +2020-03-28,Hartford,Connecticut,09003,228,2 +2020-03-29,Hartford,Connecticut,09003,276,2 +2020-03-30,Hartford,Connecticut,09003,330,3 +2020-03-31,Hartford,Connecticut,09003,393,7 +2020-04-01,Hartford,Connecticut,09003,469,11 +2020-04-02,Hartford,Connecticut,09003,539,13 +2020-04-03,Hartford,Connecticut,09003,679,18 +2020-04-04,Hartford,Connecticut,09003,726,26 +2020-04-05,Hartford,Connecticut,09003,751,29 +2020-04-06,Hartford,Connecticut,09003,882,31 +2020-04-07,Hartford,Connecticut,09003,1045,48 +2020-04-08,Hartford,Connecticut,09003,1290,68 +2020-04-09,Hartford,Connecticut,09003,1471,75 +2020-04-10,Hartford,Connecticut,09003,1615,88 +2020-04-11,Hartford,Connecticut,09003,1832,101 +2020-04-12,Hartford,Connecticut,09003,1914,116 +2020-04-13,Hartford,Connecticut,09003,2243,133 +2020-04-14,Hartford,Connecticut,09003,2370,153 +2020-04-15,Hartford,Connecticut,09003,2570,213 +2020-04-16,Hartford,Connecticut,09003,2859,243 +2020-04-17,Hartford,Connecticut,09003,3015,266 +2020-04-18,Hartford,Connecticut,09003,3196,289 +2020-04-19,Hartford,Connecticut,09003,3351,295 +2020-04-20,Hartford,Connecticut,09003,3823,369 +2020-04-21,Hartford,Connecticut,09003,3951,402 +2020-04-22,Hartford,Connecticut,09003,4128,442 +2020-04-23,Hartford,Connecticut,09003,4303,469 +2020-04-24,Hartford,Connecticut,09003,4570,511 +2020-04-25,Hartford,Connecticut,09003,4761,553 +2020-04-26,Hartford,Connecticut,09003,4989,579 +2020-04-27,Hartford,Connecticut,09003,5157,612 +2020-04-28,Hartford,Connecticut,09003,5224,643 +2020-04-29,Hartford,Connecticut,09003,5388,670 +2020-04-30,Hartford,Connecticut,09003,5601,698 +2020-05-01,Hartford,Connecticut,09003,5931,715 +2020-05-02,Hartford,Connecticut,09003,6112,741 +2020-05-03,Hartford,Connecticut,09003,6112,741 +2020-05-04,Hartford,Connecticut,09003,6173,773 +2020-05-05,Hartford,Connecticut,09003,6351,804 +2020-05-06,Hartford,Connecticut,09003,6530,842 +2020-05-07,Hartford,Connecticut,09003,6750,867 +2020-05-08,Hartford,Connecticut,09003,6904,884 +2020-05-09,Hartford,Connecticut,09003,7105,901 +2020-05-10,Hartford,Connecticut,09003,7263,909 +2020-05-11,Hartford,Connecticut,09003,7358,921 +2020-05-12,Hartford,Connecticut,09003,7528,931 +2020-05-13,Hartford,Connecticut,09003,7732,963 +2020-05-14,Hartford,Connecticut,09003,7935,999 +2020-05-15,Hartford,Connecticut,09003,8126,1025 +2020-05-16,Hartford,Connecticut,09003,8299,1044 +2020-05-17,Hartford,Connecticut,09003,8723,1069 +2020-05-18,Hartford,Connecticut,09003,8957,1084 +2020-05-19,Hartford,Connecticut,09003,9050,1090 +2020-05-20,Hartford,Connecticut,09003,9234,1116 +2020-05-21,Hartford,Connecticut,09003,9299,1133 +2020-05-22,Hartford,Connecticut,09003,9463,1155 +2020-05-23,Hartford,Connecticut,09003,9545,1169 +2020-05-24,Hartford,Connecticut,09003,9686,1175 +2020-05-25,Hartford,Connecticut,09003,9841,1187 +2020-05-26,Hartford,Connecticut,09003,9917,1193 +2020-05-27,Hartford,Connecticut,09003,9962,1203 +2020-05-28,Hartford,Connecticut,09003,10078,1208 +2020-05-29,Hartford,Connecticut,09003,10146,1222 +2020-05-30,Hartford,Connecticut,09003,10207,1238 +2020-05-31,Hartford,Connecticut,09003,10296,1250 +2020-06-01,Hartford,Connecticut,09003,10445,1254 +2020-06-02,Hartford,Connecticut,09003,10536,1253 +2020-06-03,Hartford,Connecticut,09003,10593,1259 +2020-06-04,Hartford,Connecticut,09003,10636,1266 +2020-06-05,Hartford,Connecticut,09003,10677,1277 +2020-06-06,Hartford,Connecticut,09003,10747,1279 +2020-06-07,Hartford,Connecticut,09003,10809,1287 +2020-06-08,Hartford,Connecticut,09003,10844,1291 +2020-06-09,Hartford,Connecticut,09003,10859,1291 +2020-06-10,Hartford,Connecticut,09003,10924,1303 +2020-06-11,Hartford,Connecticut,09003,10967,1308 +2020-06-12,Hartford,Connecticut,09003,11103,1313 +2020-06-13,Hartford,Connecticut,09003,11189,1321 +2020-06-14,Hartford,Connecticut,09003,11218,1327 +2020-06-15,Hartford,Connecticut,09003,11231,1328 +2020-06-16,Hartford,Connecticut,09003,11261,1330 +2020-06-17,Hartford,Connecticut,09003,11284,1331 +2020-06-18,Hartford,Connecticut,09003,11322,1336 +2020-06-19,Hartford,Connecticut,09003,11358,1341 +2020-06-20,Hartford,Connecticut,09003,11392,1344 +2020-06-21,Hartford,Connecticut,09003,11405,1350 +2020-06-22,Hartford,Connecticut,09003,11414,1350 +2020-06-23,Hartford,Connecticut,09003,11443,1352 +2020-06-24,Hartford,Connecticut,09003,11450,1356 +2020-06-25,Hartford,Connecticut,09003,11483,1362 +2020-06-26,Hartford,Connecticut,09003,11511,1365 +2020-06-27,Hartford,Connecticut,09003,11558,1369 +2020-06-28,Hartford,Connecticut,09003,11587,1369 +2020-06-29,Hartford,Connecticut,09003,11623,1370 +2020-06-30,Hartford,Connecticut,09003,11662,1370 +2020-07-01,Hartford,Connecticut,09003,11691,1373 +2020-07-02,Hartford,Connecticut,09003,11716,1374 +2020-07-03,Hartford,Connecticut,09003,11728,1378 +2020-07-04,Hartford,Connecticut,09003,11728,1378 +2020-07-05,Hartford,Connecticut,09003,11728,1378 +2020-07-06,Hartford,Connecticut,09003,11794,1380 +2020-07-07,Hartford,Connecticut,09003,11812,1380 +2020-07-08,Hartford,Connecticut,09003,11835,1382 +2020-07-09,Hartford,Connecticut,09003,11866,1385 +2020-03-12,Litchfield,Connecticut,09005,1,0 +2020-03-13,Litchfield,Connecticut,09005,3,0 +2020-03-14,Litchfield,Connecticut,09005,3,0 +2020-03-15,Litchfield,Connecticut,09005,4,0 +2020-03-16,Litchfield,Connecticut,09005,4,0 +2020-03-17,Litchfield,Connecticut,09005,5,0 +2020-03-18,Litchfield,Connecticut,09005,5,0 +2020-03-19,Litchfield,Connecticut,09005,7,0 +2020-03-20,Litchfield,Connecticut,09005,8,0 +2020-03-21,Litchfield,Connecticut,09005,11,0 +2020-03-22,Litchfield,Connecticut,09005,12,0 +2020-03-23,Litchfield,Connecticut,09005,13,0 +2020-03-24,Litchfield,Connecticut,09005,22,0 +2020-03-25,Litchfield,Connecticut,09005,33,0 +2020-03-26,Litchfield,Connecticut,09005,44,0 +2020-03-27,Litchfield,Connecticut,09005,52,0 +2020-03-28,Litchfield,Connecticut,09005,65,0 +2020-03-29,Litchfield,Connecticut,09005,87,0 +2020-03-30,Litchfield,Connecticut,09005,113,1 +2020-03-31,Litchfield,Connecticut,09005,121,1 +2020-04-01,Litchfield,Connecticut,09005,131,1 +2020-04-02,Litchfield,Connecticut,09005,141,2 +2020-04-03,Litchfield,Connecticut,09005,173,4 +2020-04-04,Litchfield,Connecticut,09005,182,5 +2020-04-05,Litchfield,Connecticut,09005,197,6 +2020-04-06,Litchfield,Connecticut,09005,230,8 +2020-04-07,Litchfield,Connecticut,09005,255,9 +2020-04-08,Litchfield,Connecticut,09005,292,12 +2020-04-09,Litchfield,Connecticut,09005,315,13 +2020-04-10,Litchfield,Connecticut,09005,346,16 +2020-04-11,Litchfield,Connecticut,09005,388,20 +2020-04-12,Litchfield,Connecticut,09005,403,24 +2020-04-13,Litchfield,Connecticut,09005,446,24 +2020-04-14,Litchfield,Connecticut,09005,460,29 +2020-04-15,Litchfield,Connecticut,09005,490,35 +2020-04-16,Litchfield,Connecticut,09005,535,44 +2020-04-17,Litchfield,Connecticut,09005,569,46 +2020-04-18,Litchfield,Connecticut,09005,593,48 +2020-04-19,Litchfield,Connecticut,09005,600,48 +2020-04-20,Litchfield,Connecticut,09005,639,58 +2020-04-21,Litchfield,Connecticut,09005,643,59 +2020-04-22,Litchfield,Connecticut,09005,722,63 +2020-04-23,Litchfield,Connecticut,09005,751,66 +2020-04-24,Litchfield,Connecticut,09005,808,69 +2020-04-25,Litchfield,Connecticut,09005,834,73 +2020-04-26,Litchfield,Connecticut,09005,864,74 +2020-04-27,Litchfield,Connecticut,09005,892,75 +2020-04-28,Litchfield,Connecticut,09005,900,76 +2020-04-29,Litchfield,Connecticut,09005,919,79 +2020-04-30,Litchfield,Connecticut,09005,963,80 +2020-05-01,Litchfield,Connecticut,09005,1014,86 +2020-05-02,Litchfield,Connecticut,09005,1036,89 +2020-05-03,Litchfield,Connecticut,09005,1036,89 +2020-05-04,Litchfield,Connecticut,09005,1047,94 +2020-05-05,Litchfield,Connecticut,09005,1065,95 +2020-05-06,Litchfield,Connecticut,09005,1085,100 +2020-05-07,Litchfield,Connecticut,09005,1114,104 +2020-05-08,Litchfield,Connecticut,09005,1130,103 +2020-05-09,Litchfield,Connecticut,09005,1142,105 +2020-05-10,Litchfield,Connecticut,09005,1153,107 +2020-05-11,Litchfield,Connecticut,09005,1161,109 +2020-05-12,Litchfield,Connecticut,09005,1171,110 +2020-05-13,Litchfield,Connecticut,09005,1179,110 +2020-05-14,Litchfield,Connecticut,09005,1203,115 +2020-05-15,Litchfield,Connecticut,09005,1218,115 +2020-05-16,Litchfield,Connecticut,09005,1234,116 +2020-05-17,Litchfield,Connecticut,09005,1269,116 +2020-05-18,Litchfield,Connecticut,09005,1280,115 +2020-05-19,Litchfield,Connecticut,09005,1290,117 +2020-05-20,Litchfield,Connecticut,09005,1299,121 +2020-05-21,Litchfield,Connecticut,09005,1303,121 +2020-05-22,Litchfield,Connecticut,09005,1298,121 +2020-05-23,Litchfield,Connecticut,09005,1304,122 +2020-05-24,Litchfield,Connecticut,09005,1331,121 +2020-05-25,Litchfield,Connecticut,09005,1346,126 +2020-05-26,Litchfield,Connecticut,09005,1360,129 +2020-05-27,Litchfield,Connecticut,09005,1360,130 +2020-05-28,Litchfield,Connecticut,09005,1366,128 +2020-05-29,Litchfield,Connecticut,09005,1375,130 +2020-05-30,Litchfield,Connecticut,09005,1381,131 +2020-05-31,Litchfield,Connecticut,09005,1397,133 +2020-06-01,Litchfield,Connecticut,09005,1400,136 +2020-06-02,Litchfield,Connecticut,09005,1402,133 +2020-06-03,Litchfield,Connecticut,09005,1404,133 +2020-06-04,Litchfield,Connecticut,09005,1406,134 +2020-06-05,Litchfield,Connecticut,09005,1409,134 +2020-06-06,Litchfield,Connecticut,09005,1413,134 +2020-06-07,Litchfield,Connecticut,09005,1419,134 +2020-06-08,Litchfield,Connecticut,09005,1426,134 +2020-06-09,Litchfield,Connecticut,09005,1432,136 +2020-06-10,Litchfield,Connecticut,09005,1430,134 +2020-06-11,Litchfield,Connecticut,09005,1435,135 +2020-06-12,Litchfield,Connecticut,09005,1435,135 +2020-06-13,Litchfield,Connecticut,09005,1439,135 +2020-06-14,Litchfield,Connecticut,09005,1442,136 +2020-06-15,Litchfield,Connecticut,09005,1441,135 +2020-06-16,Litchfield,Connecticut,09005,1443,135 +2020-06-17,Litchfield,Connecticut,09005,1444,135 +2020-06-18,Litchfield,Connecticut,09005,1447,135 +2020-06-19,Litchfield,Connecticut,09005,1448,135 +2020-06-20,Litchfield,Connecticut,09005,1467,135 +2020-06-21,Litchfield,Connecticut,09005,1467,135 +2020-06-22,Litchfield,Connecticut,09005,1467,135 +2020-06-23,Litchfield,Connecticut,09005,1469,136 +2020-06-24,Litchfield,Connecticut,09005,1469,136 +2020-06-25,Litchfield,Connecticut,09005,1469,136 +2020-06-26,Litchfield,Connecticut,09005,1471,136 +2020-06-27,Litchfield,Connecticut,09005,1482,136 +2020-06-28,Litchfield,Connecticut,09005,1482,136 +2020-06-29,Litchfield,Connecticut,09005,1487,136 +2020-06-30,Litchfield,Connecticut,09005,1490,137 +2020-07-01,Litchfield,Connecticut,09005,1490,137 +2020-07-02,Litchfield,Connecticut,09005,1492,137 +2020-07-03,Litchfield,Connecticut,09005,1494,137 +2020-07-04,Litchfield,Connecticut,09005,1494,137 +2020-07-05,Litchfield,Connecticut,09005,1494,137 +2020-07-06,Litchfield,Connecticut,09005,1504,137 +2020-07-07,Litchfield,Connecticut,09005,1508,137 +2020-07-08,Litchfield,Connecticut,09005,1509,137 +2020-07-09,Litchfield,Connecticut,09005,1510,137 +2020-03-18,Middlesex,Connecticut,09007,1,0 +2020-03-19,Middlesex,Connecticut,09007,3,0 +2020-03-20,Middlesex,Connecticut,09007,5,0 +2020-03-21,Middlesex,Connecticut,09007,6,0 +2020-03-22,Middlesex,Connecticut,09007,6,0 +2020-03-23,Middlesex,Connecticut,09007,8,0 +2020-03-24,Middlesex,Connecticut,09007,8,0 +2020-03-25,Middlesex,Connecticut,09007,15,0 +2020-03-26,Middlesex,Connecticut,09007,18,1 +2020-03-27,Middlesex,Connecticut,09007,25,1 +2020-03-28,Middlesex,Connecticut,09007,28,1 +2020-03-29,Middlesex,Connecticut,09007,38,1 +2020-03-30,Middlesex,Connecticut,09007,50,1 +2020-03-31,Middlesex,Connecticut,09007,56,1 +2020-04-01,Middlesex,Connecticut,09007,66,2 +2020-04-02,Middlesex,Connecticut,09007,74,3 +2020-04-03,Middlesex,Connecticut,09007,91,2 +2020-04-04,Middlesex,Connecticut,09007,100,4 +2020-04-05,Middlesex,Connecticut,09007,110,5 +2020-04-06,Middlesex,Connecticut,09007,135,7 +2020-04-07,Middlesex,Connecticut,09007,150,7 +2020-04-08,Middlesex,Connecticut,09007,174,9 +2020-04-09,Middlesex,Connecticut,09007,205,14 +2020-04-10,Middlesex,Connecticut,09007,240,17 +2020-04-11,Middlesex,Connecticut,09007,290,18 +2020-04-12,Middlesex,Connecticut,09007,299,18 +2020-04-13,Middlesex,Connecticut,09007,339,19 +2020-04-14,Middlesex,Connecticut,09007,355,21 +2020-04-15,Middlesex,Connecticut,09007,379,28 +2020-04-16,Middlesex,Connecticut,09007,394,30 +2020-04-17,Middlesex,Connecticut,09007,422,32 +2020-04-18,Middlesex,Connecticut,09007,448,37 +2020-04-19,Middlesex,Connecticut,09007,462,40 +2020-04-20,Middlesex,Connecticut,09007,484,45 +2020-04-21,Middlesex,Connecticut,09007,512,47 +2020-04-22,Middlesex,Connecticut,09007,525,53 +2020-04-23,Middlesex,Connecticut,09007,545,57 +2020-04-24,Middlesex,Connecticut,09007,561,63 +2020-04-25,Middlesex,Connecticut,09007,576,62 +2020-04-26,Middlesex,Connecticut,09007,588,66 +2020-04-27,Middlesex,Connecticut,09007,609,69 +2020-04-28,Middlesex,Connecticut,09007,618,70 +2020-04-29,Middlesex,Connecticut,09007,631,76 +2020-04-30,Middlesex,Connecticut,09007,657,79 +2020-05-01,Middlesex,Connecticut,09007,687,82 +2020-05-02,Middlesex,Connecticut,09007,707,91 +2020-05-03,Middlesex,Connecticut,09007,707,91 +2020-05-04,Middlesex,Connecticut,09007,713,93 +2020-05-05,Middlesex,Connecticut,09007,734,95 +2020-05-06,Middlesex,Connecticut,09007,742,98 +2020-05-07,Middlesex,Connecticut,09007,764,104 +2020-05-08,Middlesex,Connecticut,09007,775,108 +2020-05-09,Middlesex,Connecticut,09007,789,114 +2020-05-10,Middlesex,Connecticut,09007,798,115 +2020-05-11,Middlesex,Connecticut,09007,801,115 +2020-05-12,Middlesex,Connecticut,09007,823,116 +2020-05-13,Middlesex,Connecticut,09007,837,116 +2020-05-14,Middlesex,Connecticut,09007,863,118 +2020-05-15,Middlesex,Connecticut,09007,885,124 +2020-05-16,Middlesex,Connecticut,09007,898,124 +2020-05-17,Middlesex,Connecticut,09007,909,125 +2020-05-18,Middlesex,Connecticut,09007,936,131 +2020-05-19,Middlesex,Connecticut,09007,947,131 +2020-05-20,Middlesex,Connecticut,09007,965,131 +2020-05-21,Middlesex,Connecticut,09007,972,130 +2020-05-22,Middlesex,Connecticut,09007,992,135 +2020-05-23,Middlesex,Connecticut,09007,999,136 +2020-05-24,Middlesex,Connecticut,09007,1010,136 +2020-05-25,Middlesex,Connecticut,09007,1012,138 +2020-05-26,Middlesex,Connecticut,09007,1026,142 +2020-05-27,Middlesex,Connecticut,09007,1061,143 +2020-05-28,Middlesex,Connecticut,09007,1082,144 +2020-05-29,Middlesex,Connecticut,09007,1090,146 +2020-05-30,Middlesex,Connecticut,09007,1104,150 +2020-05-31,Middlesex,Connecticut,09007,1104,152 +2020-06-01,Middlesex,Connecticut,09007,1143,153 +2020-06-02,Middlesex,Connecticut,09007,1154,150 +2020-06-03,Middlesex,Connecticut,09007,1161,152 +2020-06-04,Middlesex,Connecticut,09007,1171,154 +2020-06-05,Middlesex,Connecticut,09007,1170,155 +2020-06-06,Middlesex,Connecticut,09007,1174,157 +2020-06-07,Middlesex,Connecticut,09007,1185,159 +2020-06-08,Middlesex,Connecticut,09007,1187,160 +2020-06-09,Middlesex,Connecticut,09007,1194,163 +2020-06-10,Middlesex,Connecticut,09007,1199,164 +2020-06-11,Middlesex,Connecticut,09007,1210,165 +2020-06-12,Middlesex,Connecticut,09007,1216,166 +2020-06-13,Middlesex,Connecticut,09007,1223,168 +2020-06-14,Middlesex,Connecticut,09007,1229,171 +2020-06-15,Middlesex,Connecticut,09007,1233,171 +2020-06-16,Middlesex,Connecticut,09007,1235,171 +2020-06-17,Middlesex,Connecticut,09007,1241,171 +2020-06-18,Middlesex,Connecticut,09007,1246,172 +2020-06-19,Middlesex,Connecticut,09007,1254,172 +2020-06-20,Middlesex,Connecticut,09007,1258,172 +2020-06-21,Middlesex,Connecticut,09007,1259,174 +2020-06-22,Middlesex,Connecticut,09007,1259,174 +2020-06-23,Middlesex,Connecticut,09007,1272,177 +2020-06-24,Middlesex,Connecticut,09007,1273,179 +2020-06-25,Middlesex,Connecticut,09007,1277,179 +2020-06-26,Middlesex,Connecticut,09007,1282,182 +2020-06-27,Middlesex,Connecticut,09007,1287,182 +2020-06-28,Middlesex,Connecticut,09007,1292,183 +2020-06-29,Middlesex,Connecticut,09007,1295,183 +2020-06-30,Middlesex,Connecticut,09007,1305,184 +2020-07-01,Middlesex,Connecticut,09007,1304,185 +2020-07-02,Middlesex,Connecticut,09007,1311,185 +2020-07-03,Middlesex,Connecticut,09007,1308,186 +2020-07-04,Middlesex,Connecticut,09007,1308,186 +2020-07-05,Middlesex,Connecticut,09007,1308,186 +2020-07-06,Middlesex,Connecticut,09007,1321,186 +2020-07-07,Middlesex,Connecticut,09007,1320,186 +2020-07-08,Middlesex,Connecticut,09007,1331,187 +2020-07-09,Middlesex,Connecticut,09007,1334,187 +2020-03-14,New Haven,Connecticut,09009,1,0 +2020-03-15,New Haven,Connecticut,09009,3,0 +2020-03-16,New Haven,Connecticut,09009,4,0 +2020-03-17,New Haven,Connecticut,09009,8,0 +2020-03-18,New Haven,Connecticut,09009,10,0 +2020-03-19,New Haven,Connecticut,09009,24,0 +2020-03-20,New Haven,Connecticut,09009,24,0 +2020-03-21,New Haven,Connecticut,09009,24,0 +2020-03-22,New Haven,Connecticut,09009,29,0 +2020-03-23,New Haven,Connecticut,09009,41,0 +2020-03-24,New Haven,Connecticut,09009,89,0 +2020-03-25,New Haven,Connecticut,09009,127,2 +2020-03-26,New Haven,Connecticut,09009,156,2 +2020-03-27,New Haven,Connecticut,09009,222,6 +2020-03-28,New Haven,Connecticut,09009,236,6 +2020-03-29,New Haven,Connecticut,09009,280,6 +2020-03-30,New Haven,Connecticut,09009,373,6 +2020-03-31,New Haven,Connecticut,09009,517,12 +2020-04-01,New Haven,Connecticut,09009,611,15 +2020-04-02,New Haven,Connecticut,09009,647,17 +2020-04-03,New Haven,Connecticut,09009,891,18 +2020-04-04,New Haven,Connecticut,09009,1024,29 +2020-04-05,New Haven,Connecticut,09009,1162,36 +2020-04-06,New Haven,Connecticut,09009,1468,41 +2020-04-07,New Haven,Connecticut,09009,1664,60 +2020-04-08,New Haven,Connecticut,09009,1945,70 +2020-04-09,New Haven,Connecticut,09009,2183,78 +2020-04-10,New Haven,Connecticut,09009,2383,98 +2020-04-11,New Haven,Connecticut,09009,2715,107 +2020-04-12,New Haven,Connecticut,09009,2946,119 +2020-04-13,New Haven,Connecticut,09009,3358,135 +2020-04-14,New Haven,Connecticut,09009,3543,151 +2020-04-15,New Haven,Connecticut,09009,3758,195 +2020-04-16,New Haven,Connecticut,09009,4163,214 +2020-04-17,New Haven,Connecticut,09009,4520,229 +2020-04-18,New Haven,Connecticut,09009,4743,241 +2020-04-19,New Haven,Connecticut,09009,4871,257 +2020-04-20,New Haven,Connecticut,09009,5272,301 +2020-04-21,New Haven,Connecticut,09009,5493,322 +2020-04-22,New Haven,Connecticut,09009,5811,345 +2020-04-23,New Haven,Connecticut,09009,6064,372 +2020-04-24,New Haven,Connecticut,09009,6286,396 +2020-04-25,New Haven,Connecticut,09009,6509,416 +2020-04-26,New Haven,Connecticut,09009,6715,429 +2020-04-27,New Haven,Connecticut,09009,6993,456 +2020-04-28,New Haven,Connecticut,09009,7089,478 +2020-04-29,New Haven,Connecticut,09009,7205,493 +2020-04-30,New Haven,Connecticut,09009,7536,512 +2020-05-01,New Haven,Connecticut,09009,7900,533 +2020-05-02,New Haven,Connecticut,09009,8024,565 +2020-05-03,New Haven,Connecticut,09009,8024,565 +2020-05-04,New Haven,Connecticut,09009,8110,595 +2020-05-05,New Haven,Connecticut,09009,8337,610 +2020-05-06,New Haven,Connecticut,09009,8419,629 +2020-05-07,New Haven,Connecticut,09009,8678,643 +2020-05-08,New Haven,Connecticut,09009,8887,669 +2020-05-09,New Haven,Connecticut,09009,9091,686 +2020-05-10,New Haven,Connecticut,09009,9209,701 +2020-05-11,New Haven,Connecticut,09009,9260,716 +2020-05-12,New Haven,Connecticut,09009,9430,723 +2020-05-13,New Haven,Connecticut,09009,9570,745 +2020-05-14,New Haven,Connecticut,09009,9712,767 +2020-05-15,New Haven,Connecticut,09009,9881,783 +2020-05-16,New Haven,Connecticut,09009,10075,800 +2020-05-17,New Haven,Connecticut,09009,10159,817 +2020-05-18,New Haven,Connecticut,09009,10338,830 +2020-05-19,New Haven,Connecticut,09009,10427,838 +2020-05-20,New Haven,Connecticut,09009,10587,855 +2020-05-21,New Haven,Connecticut,09009,10663,874 +2020-05-22,New Haven,Connecticut,09009,10756,888 +2020-05-23,New Haven,Connecticut,09009,10847,897 +2020-05-24,New Haven,Connecticut,09009,10905,903 +2020-05-25,New Haven,Connecticut,09009,11017,922 +2020-05-26,New Haven,Connecticut,09009,11121,925 +2020-05-27,New Haven,Connecticut,09009,11124,934 +2020-05-28,New Haven,Connecticut,09009,11198,946 +2020-05-29,New Haven,Connecticut,09009,11241,957 +2020-05-30,New Haven,Connecticut,09009,11309,966 +2020-05-31,New Haven,Connecticut,09009,11323,972 +2020-06-01,New Haven,Connecticut,09009,11479,973 +2020-06-02,New Haven,Connecticut,09009,11525,985 +2020-06-03,New Haven,Connecticut,09009,11548,990 +2020-06-04,New Haven,Connecticut,09009,11582,992 +2020-06-05,New Haven,Connecticut,09009,11673,999 +2020-06-06,New Haven,Connecticut,09009,11817,1007 +2020-06-07,New Haven,Connecticut,09009,11828,1010 +2020-06-08,New Haven,Connecticut,09009,11860,1013 +2020-06-09,New Haven,Connecticut,09009,11875,1016 +2020-06-10,New Haven,Connecticut,09009,11911,1024 +2020-06-11,New Haven,Connecticut,09009,11930,1031 +2020-06-12,New Haven,Connecticut,09009,11979,1034 +2020-06-13,New Haven,Connecticut,09009,12021,1041 +2020-06-14,New Haven,Connecticut,09009,12034,1044 +2020-06-15,New Haven,Connecticut,09009,12055,1045 +2020-06-16,New Haven,Connecticut,09009,12078,1046 +2020-06-17,New Haven,Connecticut,09009,12089,1052 +2020-06-18,New Haven,Connecticut,09009,12105,1052 +2020-06-19,New Haven,Connecticut,09009,12136,1056 +2020-06-20,New Haven,Connecticut,09009,12174,1060 +2020-06-21,New Haven,Connecticut,09009,12185,1061 +2020-06-22,New Haven,Connecticut,09009,12196,1063 +2020-06-23,New Haven,Connecticut,09009,12225,1065 +2020-06-24,New Haven,Connecticut,09009,12227,1066 +2020-06-25,New Haven,Connecticut,09009,12245,1068 +2020-06-26,New Haven,Connecticut,09009,12254,1069 +2020-06-27,New Haven,Connecticut,09009,12275,1069 +2020-06-28,New Haven,Connecticut,09009,12299,1073 +2020-06-29,New Haven,Connecticut,09009,12318,1075 +2020-06-30,New Haven,Connecticut,09009,12359,1075 +2020-07-01,New Haven,Connecticut,09009,12368,1073 +2020-07-02,New Haven,Connecticut,09009,12383,1074 +2020-07-03,New Haven,Connecticut,09009,12409,1077 +2020-07-04,New Haven,Connecticut,09009,12409,1077 +2020-07-05,New Haven,Connecticut,09009,12409,1077 +2020-07-06,New Haven,Connecticut,09009,12462,1078 +2020-07-07,New Haven,Connecticut,09009,12473,1078 +2020-07-08,New Haven,Connecticut,09009,12486,1079 +2020-07-09,New Haven,Connecticut,09009,12509,1079 +2020-03-20,New London,Connecticut,09011,1,0 +2020-03-21,New London,Connecticut,09011,1,0 +2020-03-22,New London,Connecticut,09011,3,0 +2020-03-23,New London,Connecticut,09011,4,0 +2020-03-24,New London,Connecticut,09011,6,0 +2020-03-25,New London,Connecticut,09011,9,0 +2020-03-26,New London,Connecticut,09011,13,0 +2020-03-27,New London,Connecticut,09011,15,0 +2020-03-28,New London,Connecticut,09011,19,0 +2020-03-29,New London,Connecticut,09011,20,0 +2020-03-30,New London,Connecticut,09011,24,0 +2020-03-31,New London,Connecticut,09011,27,1 +2020-04-01,New London,Connecticut,09011,29,1 +2020-04-02,New London,Connecticut,09011,29,1 +2020-04-03,New London,Connecticut,09011,40,3 +2020-04-04,New London,Connecticut,09011,57,3 +2020-04-05,New London,Connecticut,09011,57,4 +2020-04-06,New London,Connecticut,09011,65,4 +2020-04-07,New London,Connecticut,09011,85,4 +2020-04-08,New London,Connecticut,09011,120,5 +2020-04-09,New London,Connecticut,09011,139,6 +2020-04-10,New London,Connecticut,09011,156,7 +2020-04-11,New London,Connecticut,09011,185,7 +2020-04-12,New London,Connecticut,09011,190,7 +2020-04-13,New London,Connecticut,09011,222,7 +2020-04-14,New London,Connecticut,09011,227,7 +2020-04-15,New London,Connecticut,09011,236,7 +2020-04-16,New London,Connecticut,09011,255,9 +2020-04-17,New London,Connecticut,09011,292,10 +2020-04-18,New London,Connecticut,09011,315,10 +2020-04-19,New London,Connecticut,09011,339,10 +2020-04-20,New London,Connecticut,09011,356,13 +2020-04-21,New London,Connecticut,09011,369,13 +2020-04-22,New London,Connecticut,09011,397,14 +2020-04-23,New London,Connecticut,09011,419,17 +2020-04-24,New London,Connecticut,09011,448,23 +2020-04-25,New London,Connecticut,09011,473,28 +2020-04-26,New London,Connecticut,09011,498,31 +2020-04-27,New London,Connecticut,09011,516,34 +2020-04-28,New London,Connecticut,09011,530,34 +2020-04-29,New London,Connecticut,09011,540,35 +2020-04-30,New London,Connecticut,09011,564,36 +2020-05-01,New London,Connecticut,09011,603,42 +2020-05-02,New London,Connecticut,09011,623,43 +2020-05-03,New London,Connecticut,09011,623,43 +2020-05-04,New London,Connecticut,09011,641,45 +2020-05-05,New London,Connecticut,09011,681,45 +2020-05-06,New London,Connecticut,09011,704,47 +2020-05-07,New London,Connecticut,09011,742,49 +2020-05-08,New London,Connecticut,09011,755,50 +2020-05-09,New London,Connecticut,09011,775,54 +2020-05-10,New London,Connecticut,09011,782,54 +2020-05-11,New London,Connecticut,09011,784,56 +2020-05-12,New London,Connecticut,09011,793,58 +2020-05-13,New London,Connecticut,09011,804,60 +2020-05-14,New London,Connecticut,09011,821,62 +2020-05-15,New London,Connecticut,09011,844,63 +2020-05-16,New London,Connecticut,09011,860,65 +2020-05-17,New London,Connecticut,09011,873,66 +2020-05-18,New London,Connecticut,09011,876,66 +2020-05-19,New London,Connecticut,09011,880,66 +2020-05-20,New London,Connecticut,09011,896,68 +2020-05-21,New London,Connecticut,09011,903,73 +2020-05-22,New London,Connecticut,09011,910,72 +2020-05-23,New London,Connecticut,09011,970,72 +2020-05-24,New London,Connecticut,09011,1046,74 +2020-05-25,New London,Connecticut,09011,1043,78 +2020-05-26,New London,Connecticut,09011,1075,78 +2020-05-27,New London,Connecticut,09011,1053,79 +2020-05-28,New London,Connecticut,09011,1067,83 +2020-05-29,New London,Connecticut,09011,1068,85 +2020-05-30,New London,Connecticut,09011,1076,89 +2020-05-31,New London,Connecticut,09011,1078,89 +2020-06-01,New London,Connecticut,09011,1091,89 +2020-06-02,New London,Connecticut,09011,1094,90 +2020-06-03,New London,Connecticut,09011,1100,92 +2020-06-04,New London,Connecticut,09011,1104,94 +2020-06-05,New London,Connecticut,09011,1108,95 +2020-06-06,New London,Connecticut,09011,1112,95 +2020-06-07,New London,Connecticut,09011,1119,95 +2020-06-08,New London,Connecticut,09011,1120,96 +2020-06-09,New London,Connecticut,09011,1122,96 +2020-06-10,New London,Connecticut,09011,1130,97 +2020-06-11,New London,Connecticut,09011,1147,98 +2020-06-12,New London,Connecticut,09011,1150,98 +2020-06-13,New London,Connecticut,09011,1198,100 +2020-06-14,New London,Connecticut,09011,1236,101 +2020-06-15,New London,Connecticut,09011,1240,102 +2020-06-16,New London,Connecticut,09011,1276,102 +2020-06-17,New London,Connecticut,09011,1285,101 +2020-06-18,New London,Connecticut,09011,1288,101 +2020-06-19,New London,Connecticut,09011,1203,101 +2020-06-20,New London,Connecticut,09011,1209,101 +2020-06-21,New London,Connecticut,09011,1217,101 +2020-06-22,New London,Connecticut,09011,1214,101 +2020-06-23,New London,Connecticut,09011,1221,102 +2020-06-24,New London,Connecticut,09011,1221,102 +2020-06-25,New London,Connecticut,09011,1219,102 +2020-06-26,New London,Connecticut,09011,1223,102 +2020-06-27,New London,Connecticut,09011,1241,102 +2020-06-28,New London,Connecticut,09011,1244,102 +2020-06-29,New London,Connecticut,09011,1255,102 +2020-06-30,New London,Connecticut,09011,1268,102 +2020-07-01,New London,Connecticut,09011,1268,102 +2020-07-02,New London,Connecticut,09011,1273,102 +2020-07-03,New London,Connecticut,09011,1277,102 +2020-07-04,New London,Connecticut,09011,1277,102 +2020-07-05,New London,Connecticut,09011,1277,102 +2020-07-06,New London,Connecticut,09011,1296,102 +2020-07-07,New London,Connecticut,09011,1304,102 +2020-07-08,New London,Connecticut,09011,1308,102 +2020-07-09,New London,Connecticut,09011,1319,102 +2020-03-19,Tolland,Connecticut,09013,4,0 +2020-03-20,Tolland,Connecticut,09013,4,0 +2020-03-21,Tolland,Connecticut,09013,5,1 +2020-03-22,Tolland,Connecticut,09013,14,2 +2020-03-23,Tolland,Connecticut,09013,16,2 +2020-03-24,Tolland,Connecticut,09013,19,3 +2020-03-25,Tolland,Connecticut,09013,27,3 +2020-03-26,Tolland,Connecticut,09013,33,3 +2020-03-27,Tolland,Connecticut,09013,33,3 +2020-03-28,Tolland,Connecticut,09013,37,4 +2020-03-29,Tolland,Connecticut,09013,40,4 +2020-03-30,Tolland,Connecticut,09013,50,4 +2020-03-31,Tolland,Connecticut,09013,56,7 +2020-04-01,Tolland,Connecticut,09013,61,7 +2020-04-02,Tolland,Connecticut,09013,67,10 +2020-04-03,Tolland,Connecticut,09013,79,10 +2020-04-04,Tolland,Connecticut,09013,91,10 +2020-04-05,Tolland,Connecticut,09013,94,11 +2020-04-06,Tolland,Connecticut,09013,103,13 +2020-04-07,Tolland,Connecticut,09013,111,13 +2020-04-08,Tolland,Connecticut,09013,128,13 +2020-04-09,Tolland,Connecticut,09013,145,13 +2020-04-10,Tolland,Connecticut,09013,152,14 +2020-04-11,Tolland,Connecticut,09013,171,15 +2020-04-12,Tolland,Connecticut,09013,182,17 +2020-04-13,Tolland,Connecticut,09013,195,17 +2020-04-14,Tolland,Connecticut,09013,201,18 +2020-04-15,Tolland,Connecticut,09013,216,22 +2020-04-16,Tolland,Connecticut,09013,241,22 +2020-04-17,Tolland,Connecticut,09013,258,24 +2020-04-18,Tolland,Connecticut,09013,270,24 +2020-04-19,Tolland,Connecticut,09013,276,24 +2020-04-20,Tolland,Connecticut,09013,299,27 +2020-04-21,Tolland,Connecticut,09013,305,30 +2020-04-22,Tolland,Connecticut,09013,331,32 +2020-04-23,Tolland,Connecticut,09013,359,33 +2020-04-24,Tolland,Connecticut,09013,375,34 +2020-04-25,Tolland,Connecticut,09013,384,35 +2020-04-26,Tolland,Connecticut,09013,407,35 +2020-04-27,Tolland,Connecticut,09013,419,35 +2020-04-28,Tolland,Connecticut,09013,422,35 +2020-04-29,Tolland,Connecticut,09013,427,36 +2020-04-30,Tolland,Connecticut,09013,437,36 +2020-05-01,Tolland,Connecticut,09013,446,38 +2020-05-02,Tolland,Connecticut,09013,461,39 +2020-05-03,Tolland,Connecticut,09013,461,39 +2020-05-04,Tolland,Connecticut,09013,464,40 +2020-05-05,Tolland,Connecticut,09013,502,43 +2020-05-06,Tolland,Connecticut,09013,513,44 +2020-05-07,Tolland,Connecticut,09013,522,46 +2020-05-08,Tolland,Connecticut,09013,530,46 +2020-05-09,Tolland,Connecticut,09013,540,46 +2020-05-10,Tolland,Connecticut,09013,543,47 +2020-05-11,Tolland,Connecticut,09013,545,47 +2020-05-12,Tolland,Connecticut,09013,556,47 +2020-05-13,Tolland,Connecticut,09013,560,49 +2020-05-14,Tolland,Connecticut,09013,568,51 +2020-05-15,Tolland,Connecticut,09013,583,51 +2020-05-16,Tolland,Connecticut,09013,636,51 +2020-05-17,Tolland,Connecticut,09013,715,54 +2020-05-18,Tolland,Connecticut,09013,735,54 +2020-05-19,Tolland,Connecticut,09013,770,54 +2020-05-20,Tolland,Connecticut,09013,786,55 +2020-05-21,Tolland,Connecticut,09013,787,55 +2020-05-22,Tolland,Connecticut,09013,796,55 +2020-05-23,Tolland,Connecticut,09013,799,55 +2020-05-24,Tolland,Connecticut,09013,807,55 +2020-05-25,Tolland,Connecticut,09013,812,56 +2020-05-26,Tolland,Connecticut,09013,821,56 +2020-05-27,Tolland,Connecticut,09013,815,57 +2020-05-28,Tolland,Connecticut,09013,822,57 +2020-05-29,Tolland,Connecticut,09013,827,57 +2020-05-30,Tolland,Connecticut,09013,833,57 +2020-05-31,Tolland,Connecticut,09013,836,57 +2020-06-01,Tolland,Connecticut,09013,845,58 +2020-06-02,Tolland,Connecticut,09013,848,60 +2020-06-03,Tolland,Connecticut,09013,856,60 +2020-06-04,Tolland,Connecticut,09013,859,60 +2020-06-05,Tolland,Connecticut,09013,859,60 +2020-06-06,Tolland,Connecticut,09013,864,60 +2020-06-07,Tolland,Connecticut,09013,864,60 +2020-06-08,Tolland,Connecticut,09013,863,60 +2020-06-09,Tolland,Connecticut,09013,873,61 +2020-06-10,Tolland,Connecticut,09013,878,61 +2020-06-11,Tolland,Connecticut,09013,883,62 +2020-06-12,Tolland,Connecticut,09013,886,62 +2020-06-13,Tolland,Connecticut,09013,885,62 +2020-06-14,Tolland,Connecticut,09013,888,62 +2020-06-15,Tolland,Connecticut,09013,888,62 +2020-06-16,Tolland,Connecticut,09013,888,62 +2020-06-17,Tolland,Connecticut,09013,889,63 +2020-06-18,Tolland,Connecticut,09013,892,64 +2020-06-19,Tolland,Connecticut,09013,893,64 +2020-06-20,Tolland,Connecticut,09013,895,64 +2020-06-21,Tolland,Connecticut,09013,895,64 +2020-06-22,Tolland,Connecticut,09013,895,64 +2020-06-23,Tolland,Connecticut,09013,898,64 +2020-06-24,Tolland,Connecticut,09013,898,64 +2020-06-25,Tolland,Connecticut,09013,899,64 +2020-06-26,Tolland,Connecticut,09013,904,64 +2020-06-27,Tolland,Connecticut,09013,906,64 +2020-06-28,Tolland,Connecticut,09013,910,64 +2020-06-29,Tolland,Connecticut,09013,909,64 +2020-06-30,Tolland,Connecticut,09013,913,64 +2020-07-01,Tolland,Connecticut,09013,913,64 +2020-07-02,Tolland,Connecticut,09013,915,64 +2020-07-03,Tolland,Connecticut,09013,915,64 +2020-07-04,Tolland,Connecticut,09013,915,64 +2020-07-05,Tolland,Connecticut,09013,915,64 +2020-07-06,Tolland,Connecticut,09013,925,64 +2020-07-07,Tolland,Connecticut,09013,925,64 +2020-07-08,Tolland,Connecticut,09013,926,64 +2020-07-09,Tolland,Connecticut,09013,928,64 +2020-03-19,Windham,Connecticut,09015,1,0 +2020-03-20,Windham,Connecticut,09015,1,0 +2020-03-21,Windham,Connecticut,09015,1,0 +2020-03-22,Windham,Connecticut,09015,1,0 +2020-03-23,Windham,Connecticut,09015,2,0 +2020-03-24,Windham,Connecticut,09015,2,0 +2020-03-25,Windham,Connecticut,09015,2,0 +2020-03-26,Windham,Connecticut,09015,3,0 +2020-03-27,Windham,Connecticut,09015,3,0 +2020-03-28,Windham,Connecticut,09015,3,0 +2020-03-29,Windham,Connecticut,09015,7,0 +2020-03-30,Windham,Connecticut,09015,10,0 +2020-03-31,Windham,Connecticut,09015,11,0 +2020-04-01,Windham,Connecticut,09015,19,0 +2020-04-02,Windham,Connecticut,09015,21,0 +2020-04-03,Windham,Connecticut,09015,27,0 +2020-04-04,Windham,Connecticut,09015,31,1 +2020-04-05,Windham,Connecticut,09015,32,1 +2020-04-06,Windham,Connecticut,09015,40,1 +2020-04-07,Windham,Connecticut,09015,43,1 +2020-04-08,Windham,Connecticut,09015,49,1 +2020-04-09,Windham,Connecticut,09015,52,1 +2020-04-10,Windham,Connecticut,09015,59,1 +2020-04-11,Windham,Connecticut,09015,66,1 +2020-04-12,Windham,Connecticut,09015,66,1 +2020-04-13,Windham,Connecticut,09015,83,1 +2020-04-14,Windham,Connecticut,09015,87,1 +2020-04-15,Windham,Connecticut,09015,89,1 +2020-04-16,Windham,Connecticut,09015,87,1 +2020-04-17,Windham,Connecticut,09015,92,2 +2020-04-18,Windham,Connecticut,09015,97,2 +2020-04-19,Windham,Connecticut,09015,100,2 +2020-04-20,Windham,Connecticut,09015,108,2 +2020-04-21,Windham,Connecticut,09015,112,2 +2020-04-22,Windham,Connecticut,09015,122,4 +2020-04-23,Windham,Connecticut,09015,129,4 +2020-04-24,Windham,Connecticut,09015,139,4 +2020-04-25,Windham,Connecticut,09015,151,4 +2020-04-26,Windham,Connecticut,09015,157,4 +2020-04-27,Windham,Connecticut,09015,164,4 +2020-04-28,Windham,Connecticut,09015,164,4 +2020-04-29,Windham,Connecticut,09015,165,4 +2020-04-30,Windham,Connecticut,09015,186,4 +2020-05-01,Windham,Connecticut,09015,200,2 +2020-05-02,Windham,Connecticut,09015,211,2 +2020-05-03,Windham,Connecticut,09015,211,2 +2020-05-04,Windham,Connecticut,09015,217,3 +2020-05-05,Windham,Connecticut,09015,223,4 +2020-05-06,Windham,Connecticut,09015,242,4 +2020-05-07,Windham,Connecticut,09015,250,5 +2020-05-08,Windham,Connecticut,09015,249,5 +2020-05-09,Windham,Connecticut,09015,266,6 +2020-05-10,Windham,Connecticut,09015,270,7 +2020-05-11,Windham,Connecticut,09015,271,7 +2020-05-12,Windham,Connecticut,09015,281,7 +2020-05-13,Windham,Connecticut,09015,287,9 +2020-05-14,Windham,Connecticut,09015,291,11 +2020-05-15,Windham,Connecticut,09015,301,12 +2020-05-16,Windham,Connecticut,09015,304,12 +2020-05-17,Windham,Connecticut,09015,313,14 +2020-05-18,Windham,Connecticut,09015,322,14 +2020-05-19,Windham,Connecticut,09015,326,14 +2020-05-20,Windham,Connecticut,09015,329,14 +2020-05-21,Windham,Connecticut,09015,336,14 +2020-05-22,Windham,Connecticut,09015,348,14 +2020-05-23,Windham,Connecticut,09015,354,14 +2020-05-24,Windham,Connecticut,09015,359,14 +2020-05-25,Windham,Connecticut,09015,365,14 +2020-05-26,Windham,Connecticut,09015,371,14 +2020-05-27,Windham,Connecticut,09015,371,14 +2020-05-28,Windham,Connecticut,09015,375,14 +2020-05-29,Windham,Connecticut,09015,380,14 +2020-05-30,Windham,Connecticut,09015,381,14 +2020-05-31,Windham,Connecticut,09015,384,14 +2020-06-01,Windham,Connecticut,09015,388,13 +2020-06-02,Windham,Connecticut,09015,393,14 +2020-06-03,Windham,Connecticut,09015,392,14 +2020-06-04,Windham,Connecticut,09015,397,14 +2020-06-05,Windham,Connecticut,09015,405,14 +2020-06-06,Windham,Connecticut,09015,416,14 +2020-06-07,Windham,Connecticut,09015,420,14 +2020-06-08,Windham,Connecticut,09015,428,14 +2020-06-09,Windham,Connecticut,09015,430,15 +2020-06-10,Windham,Connecticut,09015,437,14 +2020-06-11,Windham,Connecticut,09015,441,14 +2020-06-12,Windham,Connecticut,09015,453,14 +2020-06-13,Windham,Connecticut,09015,463,14 +2020-06-14,Windham,Connecticut,09015,465,14 +2020-06-15,Windham,Connecticut,09015,467,14 +2020-06-16,Windham,Connecticut,09015,469,14 +2020-06-17,Windham,Connecticut,09015,471,14 +2020-06-18,Windham,Connecticut,09015,472,14 +2020-06-19,Windham,Connecticut,09015,567,14 +2020-06-20,Windham,Connecticut,09015,575,14 +2020-06-21,Windham,Connecticut,09015,579,14 +2020-06-22,Windham,Connecticut,09015,584,14 +2020-06-23,Windham,Connecticut,09015,587,14 +2020-06-24,Windham,Connecticut,09015,588,14 +2020-06-25,Windham,Connecticut,09015,595,14 +2020-06-26,Windham,Connecticut,09015,598,14 +2020-06-27,Windham,Connecticut,09015,599,14 +2020-06-28,Windham,Connecticut,09015,605,14 +2020-06-29,Windham,Connecticut,09015,606,14 +2020-06-30,Windham,Connecticut,09015,610,14 +2020-07-01,Windham,Connecticut,09015,612,14 +2020-07-02,Windham,Connecticut,09015,612,14 +2020-07-03,Windham,Connecticut,09015,616,14 +2020-07-04,Windham,Connecticut,09015,616,14 +2020-07-05,Windham,Connecticut,09015,616,14 +2020-07-06,Windham,Connecticut,09015,624,14 +2020-07-07,Windham,Connecticut,09015,627,14 +2020-07-08,Windham,Connecticut,09015,626,14 +2020-07-09,Windham,Connecticut,09015,630,14 +2020-03-18,Kent,Delaware,10001,3,0 +2020-03-19,Kent,Delaware,10001,4,0 +2020-03-20,Kent,Delaware,10001,4,0 +2020-03-21,Kent,Delaware,10001,5,0 +2020-03-22,Kent,Delaware,10001,5,0 +2020-03-23,Kent,Delaware,10001,9,0 +2020-03-24,Kent,Delaware,10001,10,0 +2020-03-25,Kent,Delaware,10001,14,0 +2020-03-26,Kent,Delaware,10001,19,0 +2020-03-27,Kent,Delaware,10001,21,0 +2020-03-28,Kent,Delaware,10001,25,2 +2020-03-29,Kent,Delaware,10001,25,2 +2020-03-30,Kent,Delaware,10001,27,2 +2020-03-31,Kent,Delaware,10001,34,2 +2020-04-01,Kent,Delaware,10001,41,2 +2020-04-02,Kent,Delaware,10001,43,2 +2020-04-03,Kent,Delaware,10001,54,2 +2020-04-04,Kent,Delaware,10001,68,2 +2020-04-05,Kent,Delaware,10001,86,2 +2020-04-06,Kent,Delaware,10001,128,3 +2020-04-07,Kent,Delaware,10001,147,3 +2020-04-08,Kent,Delaware,10001,201,3 +2020-04-09,Kent,Delaware,10001,214,3 +2020-04-10,Kent,Delaware,10001,230,3 +2020-04-11,Kent,Delaware,10001,255,4 +2020-04-12,Kent,Delaware,10001,281,4 +2020-04-13,Kent,Delaware,10001,288,6 +2020-04-14,Kent,Delaware,10001,329,7 +2020-04-15,Kent,Delaware,10001,345,8 +2020-04-16,Kent,Delaware,10001,352,9 +2020-04-17,Kent,Delaware,10001,384,9 +2020-04-18,Kent,Delaware,10001,417,10 +2020-04-19,Kent,Delaware,10001,417,10 +2020-04-20,Kent,Delaware,10001,430,13 +2020-04-21,Kent,Delaware,10001,459,14 +2020-04-22,Kent,Delaware,10001,503,15 +2020-04-23,Kent,Delaware,10001,539,15 +2020-04-24,Kent,Delaware,10001,558,15 +2020-04-25,Kent,Delaware,10001,579,18 +2020-04-26,Kent,Delaware,10001,625,22 +2020-04-27,Kent,Delaware,10001,652,23 +2020-04-28,Kent,Delaware,10001,728,23 +2020-04-29,Kent,Delaware,10001,743,25 +2020-04-30,Kent,Delaware,10001,759,26 +2020-05-01,Kent,Delaware,10001,773,27 +2020-05-02,Kent,Delaware,10001,793,29 +2020-05-03,Kent,Delaware,10001,821,30 +2020-05-04,Kent,Delaware,10001,833,30 +2020-05-05,Kent,Delaware,10001,847,32 +2020-05-06,Kent,Delaware,10001,891,33 +2020-05-07,Kent,Delaware,10001,945,34 +2020-05-08,Kent,Delaware,10001,963,36 +2020-05-09,Kent,Delaware,10001,985,38 +2020-05-10,Kent,Delaware,10001,1016,38 +2020-05-11,Kent,Delaware,10001,1044,39 +2020-05-12,Kent,Delaware,10001,1060,43 +2020-05-13,Kent,Delaware,10001,1084,45 +2020-05-14,Kent,Delaware,10001,1115,46 +2020-05-15,Kent,Delaware,10001,1146,48 +2020-05-16,Kent,Delaware,10001,1176,52 +2020-05-17,Kent,Delaware,10001,1197,52 +2020-05-18,Kent,Delaware,10001,1219,52 +2020-05-19,Kent,Delaware,10001,1238,53 +2020-05-20,Kent,Delaware,10001,1253,55 +2020-05-21,Kent,Delaware,10001,1281,55 +2020-05-22,Kent,Delaware,10001,1296,56 +2020-05-23,Kent,Delaware,10001,1315,56 +2020-05-24,Kent,Delaware,10001,1340,56 +2020-05-25,Kent,Delaware,10001,1356,56 +2020-05-26,Kent,Delaware,10001,1368,57 +2020-05-27,Kent,Delaware,10001,1374,61 +2020-05-28,Kent,Delaware,10001,1392,61 +2020-05-29,Kent,Delaware,10001,1401,62 +2020-05-30,Kent,Delaware,10001,1432,63 +2020-05-31,Kent,Delaware,10001,1436,63 +2020-06-01,Kent,Delaware,10001,1440,63 +2020-06-02,Kent,Delaware,10001,1450,66 +2020-06-03,Kent,Delaware,10001,1451,66 +2020-06-04,Kent,Delaware,10001,1454,69 +2020-06-05,Kent,Delaware,10001,1465,71 +2020-06-06,Kent,Delaware,10001,1496,72 +2020-06-07,Kent,Delaware,10001,1511,76 +2020-06-08,Kent,Delaware,10001,1513,76 +2020-06-09,Kent,Delaware,10001,1522,76 +2020-06-10,Kent,Delaware,10001,1530,78 +2020-06-11,Kent,Delaware,10001,1543,79 +2020-06-12,Kent,Delaware,10001,1544,79 +2020-06-13,Kent,Delaware,10001,1554,82 +2020-06-14,Kent,Delaware,10001,1557,83 +2020-06-15,Kent,Delaware,10001,1565,83 +2020-06-16,Kent,Delaware,10001,1573,84 +2020-06-17,Kent,Delaware,10001,1579,84 +2020-06-18,Kent,Delaware,10001,1584,84 +2020-06-19,Kent,Delaware,10001,1602,84 +2020-06-20,Kent,Delaware,10001,1606,84 +2020-06-21,Kent,Delaware,10001,1613,84 +2020-06-22,Kent,Delaware,10001,1620,84 +2020-06-23,Kent,Delaware,10001,1624,89 +2020-06-24,Kent,Delaware,10001,1628,89 +2020-06-25,Kent,Delaware,10001,1630,89 +2020-06-26,Kent,Delaware,10001,1635,89 +2020-06-27,Kent,Delaware,10001,1652,89 +2020-06-28,Kent,Delaware,10001,1663,89 +2020-06-29,Kent,Delaware,10001,1672,89 +2020-06-30,Kent,Delaware,10001,1690,89 +2020-07-01,Kent,Delaware,10001,1699,90 +2020-07-02,Kent,Delaware,10001,1716,90 +2020-07-03,Kent,Delaware,10001,1730,92 +2020-07-04,Kent,Delaware,10001,1735,92 +2020-07-05,Kent,Delaware,10001,1746,92 +2020-07-06,Kent,Delaware,10001,1761,92 +2020-07-07,Kent,Delaware,10001,1784,92 +2020-07-08,Kent,Delaware,10001,1790,92 +2020-07-09,Kent,Delaware,10001,1795,92 +2020-03-11,New Castle,Delaware,10003,1,0 +2020-03-12,New Castle,Delaware,10003,4,0 +2020-03-13,New Castle,Delaware,10003,4,0 +2020-03-14,New Castle,Delaware,10003,4,0 +2020-03-15,New Castle,Delaware,10003,7,0 +2020-03-16,New Castle,Delaware,10003,8,0 +2020-03-17,New Castle,Delaware,10003,15,0 +2020-03-18,New Castle,Delaware,10003,20,0 +2020-03-19,New Castle,Delaware,10003,23,0 +2020-03-20,New Castle,Delaware,10003,28,0 +2020-03-21,New Castle,Delaware,10003,32,0 +2020-03-22,New Castle,Delaware,10003,39,0 +2020-03-23,New Castle,Delaware,10003,58,0 +2020-03-24,New Castle,Delaware,10003,71,0 +2020-03-25,New Castle,Delaware,10003,79,0 +2020-03-26,New Castle,Delaware,10003,91,0 +2020-03-27,New Castle,Delaware,10003,106,1 +2020-03-28,New Castle,Delaware,10003,130,2 +2020-03-29,New Castle,Delaware,10003,141,3 +2020-03-30,New Castle,Delaware,10003,156,3 +2020-03-31,New Castle,Delaware,10003,197,6 +2020-04-01,New Castle,Delaware,10003,226,6 +2020-04-02,New Castle,Delaware,10003,245,7 +2020-04-03,New Castle,Delaware,10003,279,9 +2020-04-04,New Castle,Delaware,10003,400,9 +2020-04-05,New Castle,Delaware,10003,436,9 +2020-04-06,New Castle,Delaware,10003,496,9 +2020-04-07,New Castle,Delaware,10003,571,9 +2020-04-08,New Castle,Delaware,10003,636,11 +2020-04-09,New Castle,Delaware,10003,701,13 +2020-04-10,New Castle,Delaware,10003,751,19 +2020-04-11,New Castle,Delaware,10003,807,19 +2020-04-12,New Castle,Delaware,10003,880,19 +2020-04-13,New Castle,Delaware,10003,919,20 +2020-04-14,New Castle,Delaware,10003,947,20 +2020-04-15,New Castle,Delaware,10003,974,21 +2020-04-16,New Castle,Delaware,10003,1003,25 +2020-04-17,New Castle,Delaware,10003,1100,30 +2020-04-18,New Castle,Delaware,10003,1205,32 +2020-04-19,New Castle,Delaware,10003,1205,32 +2020-04-20,New Castle,Delaware,10003,1229,33 +2020-04-21,New Castle,Delaware,10003,1303,36 +2020-04-22,New Castle,Delaware,10003,1352,38 +2020-04-23,New Castle,Delaware,10003,1389,40 +2020-04-24,New Castle,Delaware,10003,1486,45 +2020-04-25,New Castle,Delaware,10003,1504,52 +2020-04-26,New Castle,Delaware,10003,1599,55 +2020-04-27,New Castle,Delaware,10003,1629,57 +2020-04-28,New Castle,Delaware,10003,1701,63 +2020-04-29,New Castle,Delaware,10003,1717,65 +2020-04-30,New Castle,Delaware,10003,1734,68 +2020-05-01,New Castle,Delaware,10003,1829,70 +2020-05-02,New Castle,Delaware,10003,1864,76 +2020-05-03,New Castle,Delaware,10003,1903,79 +2020-05-04,New Castle,Delaware,10003,1934,82 +2020-05-05,New Castle,Delaware,10003,1979,83 +2020-05-06,New Castle,Delaware,10003,2087,85 +2020-05-07,New Castle,Delaware,10003,2130,89 +2020-05-08,New Castle,Delaware,10003,2184,91 +2020-05-09,New Castle,Delaware,10003,2275,93 +2020-05-10,New Castle,Delaware,10003,2331,95 +2020-05-11,New Castle,Delaware,10003,2390,95 +2020-05-12,New Castle,Delaware,10003,2440,100 +2020-05-13,New Castle,Delaware,10003,2496,102 +2020-05-14,New Castle,Delaware,10003,2560,108 +2020-05-15,New Castle,Delaware,10003,2619,114 +2020-05-16,New Castle,Delaware,10003,2667,121 +2020-05-17,New Castle,Delaware,10003,2682,124 +2020-05-18,New Castle,Delaware,10003,2738,130 +2020-05-19,New Castle,Delaware,10003,2845,135 +2020-05-20,New Castle,Delaware,10003,2933,138 +2020-05-21,New Castle,Delaware,10003,3053,144 +2020-05-22,New Castle,Delaware,10003,3132,146 +2020-05-23,New Castle,Delaware,10003,3238,147 +2020-05-24,New Castle,Delaware,10003,3309,148 +2020-05-25,New Castle,Delaware,10003,3436,149 +2020-05-26,New Castle,Delaware,10003,3508,150 +2020-05-27,New Castle,Delaware,10003,3528,155 +2020-05-28,New Castle,Delaware,10003,3575,155 +2020-05-29,New Castle,Delaware,10003,3629,163 +2020-05-30,New Castle,Delaware,10003,3723,166 +2020-05-31,New Castle,Delaware,10003,3758,170 +2020-06-01,New Castle,Delaware,10003,3838,172 +2020-06-02,New Castle,Delaware,10003,3883,172 +2020-06-03,New Castle,Delaware,10003,3903,173 +2020-06-04,New Castle,Delaware,10003,3925,173 +2020-06-05,New Castle,Delaware,10003,3937,173 +2020-06-06,New Castle,Delaware,10003,3995,174 +2020-06-07,New Castle,Delaware,10003,4070,176 +2020-06-08,New Castle,Delaware,10003,4095,176 +2020-06-09,New Castle,Delaware,10003,4125,185 +2020-06-10,New Castle,Delaware,10003,4139,186 +2020-06-11,New Castle,Delaware,10003,4171,186 +2020-06-12,New Castle,Delaware,10003,4224,186 +2020-06-13,New Castle,Delaware,10003,4259,187 +2020-06-14,New Castle,Delaware,10003,4287,189 +2020-06-15,New Castle,Delaware,10003,4345,190 +2020-06-16,New Castle,Delaware,10003,4386,190 +2020-06-17,New Castle,Delaware,10003,4422,191 +2020-06-18,New Castle,Delaware,10003,4470,195 +2020-06-19,New Castle,Delaware,10003,4522,196 +2020-06-20,New Castle,Delaware,10003,4569,197 +2020-06-21,New Castle,Delaware,10003,4647,197 +2020-06-22,New Castle,Delaware,10003,4682,197 +2020-06-23,New Castle,Delaware,10003,4697,239 +2020-06-24,New Castle,Delaware,10003,4720,240 +2020-06-25,New Castle,Delaware,10003,4791,242 +2020-06-26,New Castle,Delaware,10003,4840,242 +2020-06-27,New Castle,Delaware,10003,4871,242 +2020-06-28,New Castle,Delaware,10003,4925,242 +2020-06-29,New Castle,Delaware,10003,5031,242 +2020-06-30,New Castle,Delaware,10003,5065,244 +2020-07-01,New Castle,Delaware,10003,5079,243 +2020-07-02,New Castle,Delaware,10003,5183,245 +2020-07-03,New Castle,Delaware,10003,5277,245 +2020-07-04,New Castle,Delaware,10003,5334,245 +2020-07-05,New Castle,Delaware,10003,5398,245 +2020-07-06,New Castle,Delaware,10003,5489,245 +2020-07-07,New Castle,Delaware,10003,5555,247 +2020-07-08,New Castle,Delaware,10003,5583,248 +2020-07-09,New Castle,Delaware,10003,5626,249 +2020-03-17,Sussex,Delaware,10005,1,0 +2020-03-18,Sussex,Delaware,10005,3,0 +2020-03-19,Sussex,Delaware,10005,3,0 +2020-03-20,Sussex,Delaware,10005,7,0 +2020-03-21,Sussex,Delaware,10005,8,0 +2020-03-22,Sussex,Delaware,10005,12,0 +2020-03-23,Sussex,Delaware,10005,20,0 +2020-03-24,Sussex,Delaware,10005,23,0 +2020-03-25,Sussex,Delaware,10005,26,0 +2020-03-26,Sussex,Delaware,10005,33,1 +2020-03-27,Sussex,Delaware,10005,38,1 +2020-03-28,Sussex,Delaware,10005,59,1 +2020-03-29,Sussex,Delaware,10005,66,1 +2020-03-30,Sussex,Delaware,10005,81,2 +2020-03-31,Sussex,Delaware,10005,88,2 +2020-04-01,Sussex,Delaware,10005,101,3 +2020-04-02,Sussex,Delaware,10005,105,3 +2020-04-03,Sussex,Delaware,10005,117,3 +2020-04-04,Sussex,Delaware,10005,125,3 +2020-04-05,Sussex,Delaware,10005,151,3 +2020-04-06,Sussex,Delaware,10005,159,3 +2020-04-07,Sussex,Delaware,10005,210,4 +2020-04-08,Sussex,Delaware,10005,279,5 +2020-04-09,Sussex,Delaware,10005,294,7 +2020-04-10,Sussex,Delaware,10005,336,10 +2020-04-11,Sussex,Delaware,10005,404,10 +2020-04-12,Sussex,Delaware,10005,464,12 +2020-04-13,Sussex,Delaware,10005,551,15 +2020-04-14,Sussex,Delaware,10005,639,16 +2020-04-15,Sussex,Delaware,10005,678,17 +2020-04-16,Sussex,Delaware,10005,698,18 +2020-04-17,Sussex,Delaware,10005,811,22 +2020-04-18,Sussex,Delaware,10005,886,25 +2020-04-19,Sussex,Delaware,10005,886,25 +2020-04-20,Sussex,Delaware,10005,1055,26 +2020-04-21,Sussex,Delaware,10005,1139,32 +2020-04-22,Sussex,Delaware,10005,1317,36 +2020-04-23,Sussex,Delaware,10005,1377,37 +2020-04-24,Sussex,Delaware,10005,1394,40 +2020-04-25,Sussex,Delaware,10005,1490,42 +2020-04-26,Sussex,Delaware,10005,1801,43 +2020-04-27,Sussex,Delaware,10005,1870,45 +2020-04-28,Sussex,Delaware,10005,2114,51 +2020-04-29,Sussex,Delaware,10005,2169,54 +2020-04-30,Sussex,Delaware,10005,2216,58 +2020-05-01,Sussex,Delaware,10005,2292,62 +2020-05-02,Sussex,Delaware,10005,2359,63 +2020-05-03,Sussex,Delaware,10005,2461,68 +2020-05-04,Sussex,Delaware,10005,2497,70 +2020-05-05,Sussex,Delaware,10005,2520,72 +2020-05-06,Sussex,Delaware,10005,2764,75 +2020-05-07,Sussex,Delaware,10005,2834,79 +2020-05-08,Sussex,Delaware,10005,2936,86 +2020-05-09,Sussex,Delaware,10005,2990,90 +2020-05-10,Sussex,Delaware,10005,3059,91 +2020-05-11,Sussex,Delaware,10005,3091,91 +2020-05-12,Sussex,Delaware,10005,3205,93 +2020-05-13,Sussex,Delaware,10005,3336,99 +2020-05-14,Sussex,Delaware,10005,3503,105 +2020-05-15,Sussex,Delaware,10005,3565,108 +2020-05-16,Sussex,Delaware,10005,3658,112 +2020-05-17,Sussex,Delaware,10005,3739,113 +2020-05-18,Sussex,Delaware,10005,3861,114 +2020-05-19,Sussex,Delaware,10005,3904,115 +2020-05-20,Sussex,Delaware,10005,3960,116 +2020-05-21,Sussex,Delaware,10005,4006,117 +2020-05-22,Sussex,Delaware,10005,4048,119 +2020-05-23,Sussex,Delaware,10005,4084,120 +2020-05-24,Sussex,Delaware,10005,4103,121 +2020-05-25,Sussex,Delaware,10005,4118,126 +2020-05-26,Sussex,Delaware,10005,4132,128 +2020-05-27,Sussex,Delaware,10005,4140,128 +2020-05-28,Sussex,Delaware,10005,4151,129 +2020-05-29,Sussex,Delaware,10005,4155,131 +2020-05-30,Sussex,Delaware,10005,4215,132 +2020-05-31,Sussex,Delaware,10005,4253,133 +2020-06-01,Sussex,Delaware,10005,4272,133 +2020-06-02,Sussex,Delaware,10005,4299,135 +2020-06-03,Sussex,Delaware,10005,4305,136 +2020-06-04,Sussex,Delaware,10005,4314,143 +2020-06-05,Sussex,Delaware,10005,4322,144 +2020-06-06,Sussex,Delaware,10005,4342,144 +2020-06-07,Sussex,Delaware,10005,4346,146 +2020-06-08,Sussex,Delaware,10005,4353,146 +2020-06-09,Sussex,Delaware,10005,4361,149 +2020-06-10,Sussex,Delaware,10005,4373,149 +2020-06-11,Sussex,Delaware,10005,4379,149 +2020-06-12,Sussex,Delaware,10005,4389,149 +2020-06-13,Sussex,Delaware,10005,4401,150 +2020-06-14,Sussex,Delaware,10005,4406,150 +2020-06-15,Sussex,Delaware,10005,4416,150 +2020-06-16,Sussex,Delaware,10005,4428,150 +2020-06-17,Sussex,Delaware,10005,4429,151 +2020-06-18,Sussex,Delaware,10005,4431,152 +2020-06-19,Sussex,Delaware,10005,4470,153 +2020-06-20,Sussex,Delaware,10005,4487,153 +2020-06-21,Sussex,Delaware,10005,4495,154 +2020-06-22,Sussex,Delaware,10005,4501,154 +2020-06-23,Sussex,Delaware,10005,4509,176 +2020-06-24,Sussex,Delaware,10005,4522,176 +2020-06-25,Sussex,Delaware,10005,4538,176 +2020-06-26,Sussex,Delaware,10005,4519,176 +2020-06-27,Sussex,Delaware,10005,4542,176 +2020-06-28,Sussex,Delaware,10005,4608,176 +2020-06-29,Sussex,Delaware,10005,4637,176 +2020-06-30,Sussex,Delaware,10005,4681,176 +2020-07-01,Sussex,Delaware,10005,4690,176 +2020-07-02,Sussex,Delaware,10005,4779,175 +2020-07-03,Sussex,Delaware,10005,4847,175 +2020-07-04,Sussex,Delaware,10005,4854,175 +2020-07-05,Sussex,Delaware,10005,4903,175 +2020-07-06,Sussex,Delaware,10005,4952,175 +2020-07-07,Sussex,Delaware,10005,4977,175 +2020-07-08,Sussex,Delaware,10005,4988,175 +2020-07-09,Sussex,Delaware,10005,5008,176 +2020-03-07,District of Columbia,District of Columbia,11001,1,0 +2020-03-08,District of Columbia,District of Columbia,11001,1,0 +2020-03-09,District of Columbia,District of Columbia,11001,4,0 +2020-03-10,District of Columbia,District of Columbia,11001,4,0 +2020-03-11,District of Columbia,District of Columbia,11001,10,0 +2020-03-12,District of Columbia,District of Columbia,11001,10,0 +2020-03-13,District of Columbia,District of Columbia,11001,10,0 +2020-03-14,District of Columbia,District of Columbia,11001,16,0 +2020-03-15,District of Columbia,District of Columbia,11001,17,0 +2020-03-16,District of Columbia,District of Columbia,11001,22,0 +2020-03-17,District of Columbia,District of Columbia,11001,31,0 +2020-03-18,District of Columbia,District of Columbia,11001,36,0 +2020-03-19,District of Columbia,District of Columbia,11001,39,0 +2020-03-20,District of Columbia,District of Columbia,11001,71,0 +2020-03-21,District of Columbia,District of Columbia,11001,77,1 +2020-03-22,District of Columbia,District of Columbia,11001,98,1 +2020-03-23,District of Columbia,District of Columbia,11001,116,2 +2020-03-24,District of Columbia,District of Columbia,11001,137,2 +2020-03-25,District of Columbia,District of Columbia,11001,183,2 +2020-03-26,District of Columbia,District of Columbia,11001,231,3 +2020-03-27,District of Columbia,District of Columbia,11001,267,3 +2020-03-28,District of Columbia,District of Columbia,11001,304,4 +2020-03-29,District of Columbia,District of Columbia,11001,342,5 +2020-03-30,District of Columbia,District of Columbia,11001,401,9 +2020-03-31,District of Columbia,District of Columbia,11001,495,9 +2020-04-01,District of Columbia,District of Columbia,11001,586,11 +2020-04-02,District of Columbia,District of Columbia,11001,653,12 +2020-04-03,District of Columbia,District of Columbia,11001,757,15 +2020-04-04,District of Columbia,District of Columbia,11001,902,21 +2020-04-05,District of Columbia,District of Columbia,11001,998,22 +2020-04-06,District of Columbia,District of Columbia,11001,1097,24 +2020-04-07,District of Columbia,District of Columbia,11001,1211,24 +2020-04-08,District of Columbia,District of Columbia,11001,1440,27 +2020-04-09,District of Columbia,District of Columbia,11001,1523,32 +2020-04-10,District of Columbia,District of Columbia,11001,1660,38 +2020-04-11,District of Columbia,District of Columbia,11001,1778,47 +2020-04-12,District of Columbia,District of Columbia,11001,1875,50 +2020-04-13,District of Columbia,District of Columbia,11001,1955,52 +2020-04-14,District of Columbia,District of Columbia,11001,2058,67 +2020-04-15,District of Columbia,District of Columbia,11001,2197,72 +2020-04-16,District of Columbia,District of Columbia,11001,2350,81 +2020-04-17,District of Columbia,District of Columbia,11001,2476,86 +2020-04-18,District of Columbia,District of Columbia,11001,2666,91 +2020-04-19,District of Columbia,District of Columbia,11001,2793,96 +2020-04-20,District of Columbia,District of Columbia,11001,2927,105 +2020-04-21,District of Columbia,District of Columbia,11001,3098,112 +2020-04-22,District of Columbia,District of Columbia,11001,3206,127 +2020-04-23,District of Columbia,District of Columbia,11001,3361,139 +2020-04-24,District of Columbia,District of Columbia,11001,3528,153 +2020-04-25,District of Columbia,District of Columbia,11001,3699,165 +2020-04-26,District of Columbia,District of Columbia,11001,3841,178 +2020-04-27,District of Columbia,District of Columbia,11001,3892,185 +2020-04-28,District of Columbia,District of Columbia,11001,3994,190 +2020-04-29,District of Columbia,District of Columbia,11001,4106,205 +2020-04-30,District of Columbia,District of Columbia,11001,4323,224 +2020-05-01,District of Columbia,District of Columbia,11001,4658,231 +2020-05-02,District of Columbia,District of Columbia,11001,4797,240 +2020-05-03,District of Columbia,District of Columbia,11001,5016,251 +2020-05-04,District of Columbia,District of Columbia,11001,5170,258 +2020-05-05,District of Columbia,District of Columbia,11001,5322,264 +2020-05-06,District of Columbia,District of Columbia,11001,5461,277 +2020-05-07,District of Columbia,District of Columbia,11001,5654,285 +2020-05-08,District of Columbia,District of Columbia,11001,5899,304 +2020-05-09,District of Columbia,District of Columbia,11001,6102,311 +2020-05-10,District of Columbia,District of Columbia,11001,6272,323 +2020-05-11,District of Columbia,District of Columbia,11001,6389,328 +2020-05-12,District of Columbia,District of Columbia,11001,6485,336 +2020-05-13,District of Columbia,District of Columbia,11001,6584,350 +2020-05-14,District of Columbia,District of Columbia,11001,6736,358 +2020-05-15,District of Columbia,District of Columbia,11001,6871,368 +2020-05-16,District of Columbia,District of Columbia,11001,7042,375 +2020-05-17,District of Columbia,District of Columbia,11001,7123,383 +2020-05-18,District of Columbia,District of Columbia,11001,7270,392 +2020-05-19,District of Columbia,District of Columbia,11001,7434,400 +2020-05-20,District of Columbia,District of Columbia,11001,7551,407 +2020-05-21,District of Columbia,District of Columbia,11001,7788,412 +2020-05-22,District of Columbia,District of Columbia,11001,7893,418 +2020-05-23,District of Columbia,District of Columbia,11001,7966,427 +2020-05-24,District of Columbia,District of Columbia,11001,8110,432 +2020-05-25,District of Columbia,District of Columbia,11001,8225,440 +2020-05-26,District of Columbia,District of Columbia,11001,8334,440 +2020-05-27,District of Columbia,District of Columbia,11001,8406,445 +2020-05-28,District of Columbia,District of Columbia,11001,8492,453 +2020-05-29,District of Columbia,District of Columbia,11001,8538,460 +2020-05-30,District of Columbia,District of Columbia,11001,8717,462 +2020-05-31,District of Columbia,District of Columbia,11001,8801,466 +2020-06-01,District of Columbia,District of Columbia,11001,8857,468 +2020-06-02,District of Columbia,District of Columbia,11001,8886,470 +2020-06-03,District of Columbia,District of Columbia,11001,9016,473 +2020-06-04,District of Columbia,District of Columbia,11001,9120,475 +2020-06-05,District of Columbia,District of Columbia,11001,9199,479 +2020-06-06,District of Columbia,District of Columbia,11001,9269,483 +2020-06-07,District of Columbia,District of Columbia,11001,9332,489 +2020-06-08,District of Columbia,District of Columbia,11001,9389,491 +2020-06-09,District of Columbia,District of Columbia,11001,9474,495 +2020-06-10,District of Columbia,District of Columbia,11001,9537,499 +2020-06-11,District of Columbia,District of Columbia,11001,9589,502 +2020-06-12,District of Columbia,District of Columbia,11001,9654,506 +2020-06-13,District of Columbia,District of Columbia,11001,9709,511 +2020-06-14,District of Columbia,District of Columbia,11001,9767,515 +2020-06-15,District of Columbia,District of Columbia,11001,9799,515 +2020-06-16,District of Columbia,District of Columbia,11001,9818,520 +2020-06-17,District of Columbia,District of Columbia,11001,9847,523 +2020-06-18,District of Columbia,District of Columbia,11001,9903,527 +2020-06-19,District of Columbia,District of Columbia,11001,9952,530 +2020-06-20,District of Columbia,District of Columbia,11001,9984,531 +2020-06-21,District of Columbia,District of Columbia,11001,10020,533 +2020-06-22,District of Columbia,District of Columbia,11001,10058,535 +2020-06-23,District of Columbia,District of Columbia,11001,10094,537 +2020-06-24,District of Columbia,District of Columbia,11001,10128,541 +2020-06-25,District of Columbia,District of Columbia,11001,10159,543 +2020-06-26,District of Columbia,District of Columbia,11001,10185,546 +2020-06-27,District of Columbia,District of Columbia,11001,10216,548 +2020-06-28,District of Columbia,District of Columbia,11001,10248,550 +2020-06-29,District of Columbia,District of Columbia,11001,10292,551 +2020-06-30,District of Columbia,District of Columbia,11001,10327,551 +2020-07-01,District of Columbia,District of Columbia,11001,10365,553 +2020-07-02,District of Columbia,District of Columbia,11001,10390,554 +2020-07-03,District of Columbia,District of Columbia,11001,10435,555 +2020-07-04,District of Columbia,District of Columbia,11001,10447,557 +2020-07-05,District of Columbia,District of Columbia,11001,10482,559 +2020-07-06,District of Columbia,District of Columbia,11001,10515,561 +2020-07-07,District of Columbia,District of Columbia,11001,10569,561 +2020-07-08,District of Columbia,District of Columbia,11001,10642,564 +2020-07-09,District of Columbia,District of Columbia,11001,10679,568 +2020-03-10,Alachua,Florida,12001,1,0 +2020-03-11,Alachua,Florida,12001,1,0 +2020-03-12,Alachua,Florida,12001,2,0 +2020-03-13,Alachua,Florida,12001,3,0 +2020-03-14,Alachua,Florida,12001,3,0 +2020-03-15,Alachua,Florida,12001,4,0 +2020-03-16,Alachua,Florida,12001,4,0 +2020-03-17,Alachua,Florida,12001,6,0 +2020-03-18,Alachua,Florida,12001,7,0 +2020-03-19,Alachua,Florida,12001,11,0 +2020-03-20,Alachua,Florida,12001,15,0 +2020-03-21,Alachua,Florida,12001,25,0 +2020-03-22,Alachua,Florida,12001,35,0 +2020-03-23,Alachua,Florida,12001,37,0 +2020-03-24,Alachua,Florida,12001,37,0 +2020-03-25,Alachua,Florida,12001,46,0 +2020-03-26,Alachua,Florida,12001,53,0 +2020-03-27,Alachua,Florida,12001,60,0 +2020-03-28,Alachua,Florida,12001,68,0 +2020-03-29,Alachua,Florida,12001,72,0 +2020-03-30,Alachua,Florida,12001,80,0 +2020-03-31,Alachua,Florida,12001,87,0 +2020-04-01,Alachua,Florida,12001,92,0 +2020-04-02,Alachua,Florida,12001,95,0 +2020-04-03,Alachua,Florida,12001,110,0 +2020-04-04,Alachua,Florida,12001,116,0 +2020-04-05,Alachua,Florida,12001,123,0 +2020-04-06,Alachua,Florida,12001,133,0 +2020-04-07,Alachua,Florida,12001,139,0 +2020-04-08,Alachua,Florida,12001,144,0 +2020-04-09,Alachua,Florida,12001,154,0 +2020-04-10,Alachua,Florida,12001,167,0 +2020-04-11,Alachua,Florida,12001,174,0 +2020-04-12,Alachua,Florida,12001,183,0 +2020-04-13,Alachua,Florida,12001,187,0 +2020-04-14,Alachua,Florida,12001,195,0 +2020-04-15,Alachua,Florida,12001,196,0 +2020-04-16,Alachua,Florida,12001,200,0 +2020-04-17,Alachua,Florida,12001,201,0 +2020-04-18,Alachua,Florida,12001,205,0 +2020-04-19,Alachua,Florida,12001,210,0 +2020-04-20,Alachua,Florida,12001,218,0 +2020-04-21,Alachua,Florida,12001,224,1 +2020-04-22,Alachua,Florida,12001,227,1 +2020-04-23,Alachua,Florida,12001,231,1 +2020-04-24,Alachua,Florida,12001,244,1 +2020-04-25,Alachua,Florida,12001,245,1 +2020-04-26,Alachua,Florida,12001,251,2 +2020-04-27,Alachua,Florida,12001,254,2 +2020-04-28,Alachua,Florida,12001,255,2 +2020-04-29,Alachua,Florida,12001,262,2 +2020-04-30,Alachua,Florida,12001,267,5 +2020-05-01,Alachua,Florida,12001,273,5 +2020-05-02,Alachua,Florida,12001,275,5 +2020-05-03,Alachua,Florida,12001,286,5 +2020-05-04,Alachua,Florida,12001,289,5 +2020-05-05,Alachua,Florida,12001,289,5 +2020-05-06,Alachua,Florida,12001,295,5 +2020-05-07,Alachua,Florida,12001,300,5 +2020-05-08,Alachua,Florida,12001,306,5 +2020-05-09,Alachua,Florida,12001,308,5 +2020-05-10,Alachua,Florida,12001,312,5 +2020-05-11,Alachua,Florida,12001,320,5 +2020-05-12,Alachua,Florida,12001,324,5 +2020-05-13,Alachua,Florida,12001,326,5 +2020-05-14,Alachua,Florida,12001,330,5 +2020-05-15,Alachua,Florida,12001,330,6 +2020-05-16,Alachua,Florida,12001,329,7 +2020-05-17,Alachua,Florida,12001,332,7 +2020-05-18,Alachua,Florida,12001,337,7 +2020-05-19,Alachua,Florida,12001,339,7 +2020-05-20,Alachua,Florida,12001,344,7 +2020-05-21,Alachua,Florida,12001,346,7 +2020-05-22,Alachua,Florida,12001,354,7 +2020-05-23,Alachua,Florida,12001,355,7 +2020-05-24,Alachua,Florida,12001,361,7 +2020-05-25,Alachua,Florida,12001,365,7 +2020-05-26,Alachua,Florida,12001,370,7 +2020-05-27,Alachua,Florida,12001,370,7 +2020-05-28,Alachua,Florida,12001,372,7 +2020-05-29,Alachua,Florida,12001,378,7 +2020-05-30,Alachua,Florida,12001,379,7 +2020-05-31,Alachua,Florida,12001,380,7 +2020-06-01,Alachua,Florida,12001,382,7 +2020-06-02,Alachua,Florida,12001,382,7 +2020-06-03,Alachua,Florida,12001,383,8 +2020-06-04,Alachua,Florida,12001,387,8 +2020-06-05,Alachua,Florida,12001,392,8 +2020-06-06,Alachua,Florida,12001,396,8 +2020-06-07,Alachua,Florida,12001,399,8 +2020-06-08,Alachua,Florida,12001,399,8 +2020-06-09,Alachua,Florida,12001,404,8 +2020-06-10,Alachua,Florida,12001,412,8 +2020-06-11,Alachua,Florida,12001,443,9 +2020-06-12,Alachua,Florida,12001,506,10 +2020-06-13,Alachua,Florida,12001,531,10 +2020-06-14,Alachua,Florida,12001,541,10 +2020-06-15,Alachua,Florida,12001,551,10 +2020-06-16,Alachua,Florida,12001,564,10 +2020-06-17,Alachua,Florida,12001,580,10 +2020-06-18,Alachua,Florida,12001,600,11 +2020-06-19,Alachua,Florida,12001,633,11 +2020-06-20,Alachua,Florida,12001,673,11 +2020-06-21,Alachua,Florida,12001,716,11 +2020-06-22,Alachua,Florida,12001,738,11 +2020-06-23,Alachua,Florida,12001,760,11 +2020-06-24,Alachua,Florida,12001,807,11 +2020-06-25,Alachua,Florida,12001,863,11 +2020-06-26,Alachua,Florida,12001,945,12 +2020-06-27,Alachua,Florida,12001,1033,12 +2020-06-28,Alachua,Florida,12001,1124,12 +2020-06-29,Alachua,Florida,12001,1159,12 +2020-06-30,Alachua,Florida,12001,1197,12 +2020-07-01,Alachua,Florida,12001,1245,12 +2020-07-02,Alachua,Florida,12001,1332,12 +2020-07-03,Alachua,Florida,12001,1423,12 +2020-07-04,Alachua,Florida,12001,1506,12 +2020-07-05,Alachua,Florida,12001,1578,12 +2020-07-06,Alachua,Florida,12001,1636,12 +2020-07-07,Alachua,Florida,12001,1701,12 +2020-07-08,Alachua,Florida,12001,1792,12 +2020-07-09,Alachua,Florida,12001,1871,12 +2020-03-15,Baker,Florida,12003,1,0 +2020-03-16,Baker,Florida,12003,1,0 +2020-03-17,Baker,Florida,12003,1,0 +2020-03-18,Baker,Florida,12003,1,0 +2020-03-19,Baker,Florida,12003,1,0 +2020-03-20,Baker,Florida,12003,1,0 +2020-03-21,Baker,Florida,12003,1,0 +2020-03-22,Baker,Florida,12003,2,0 +2020-03-23,Baker,Florida,12003,3,0 +2020-03-24,Baker,Florida,12003,4,0 +2020-03-25,Baker,Florida,12003,5,0 +2020-03-26,Baker,Florida,12003,5,0 +2020-03-27,Baker,Florida,12003,7,0 +2020-03-28,Baker,Florida,12003,7,0 +2020-03-29,Baker,Florida,12003,8,0 +2020-03-30,Baker,Florida,12003,8,0 +2020-03-31,Baker,Florida,12003,9,0 +2020-04-01,Baker,Florida,12003,9,0 +2020-04-02,Baker,Florida,12003,11,0 +2020-04-03,Baker,Florida,12003,11,0 +2020-04-04,Baker,Florida,12003,11,0 +2020-04-05,Baker,Florida,12003,12,0 +2020-04-06,Baker,Florida,12003,13,0 +2020-04-07,Baker,Florida,12003,15,1 +2020-04-08,Baker,Florida,12003,15,1 +2020-04-09,Baker,Florida,12003,16,2 +2020-04-10,Baker,Florida,12003,16,2 +2020-04-11,Baker,Florida,12003,17,2 +2020-04-12,Baker,Florida,12003,17,2 +2020-04-13,Baker,Florida,12003,17,2 +2020-04-14,Baker,Florida,12003,17,2 +2020-04-15,Baker,Florida,12003,17,2 +2020-04-16,Baker,Florida,12003,17,2 +2020-04-17,Baker,Florida,12003,17,3 +2020-04-18,Baker,Florida,12003,17,3 +2020-04-19,Baker,Florida,12003,17,3 +2020-04-20,Baker,Florida,12003,17,3 +2020-04-21,Baker,Florida,12003,17,3 +2020-04-22,Baker,Florida,12003,17,3 +2020-04-23,Baker,Florida,12003,19,3 +2020-04-24,Baker,Florida,12003,20,3 +2020-04-25,Baker,Florida,12003,20,3 +2020-04-26,Baker,Florida,12003,20,3 +2020-04-27,Baker,Florida,12003,20,3 +2020-04-28,Baker,Florida,12003,20,3 +2020-04-29,Baker,Florida,12003,20,3 +2020-04-30,Baker,Florida,12003,20,3 +2020-05-01,Baker,Florida,12003,22,3 +2020-05-02,Baker,Florida,12003,22,3 +2020-05-03,Baker,Florida,12003,22,3 +2020-05-04,Baker,Florida,12003,22,3 +2020-05-05,Baker,Florida,12003,22,3 +2020-05-06,Baker,Florida,12003,22,3 +2020-05-07,Baker,Florida,12003,22,3 +2020-05-08,Baker,Florida,12003,24,3 +2020-05-09,Baker,Florida,12003,24,3 +2020-05-10,Baker,Florida,12003,25,3 +2020-05-11,Baker,Florida,12003,25,3 +2020-05-12,Baker,Florida,12003,25,3 +2020-05-13,Baker,Florida,12003,26,3 +2020-05-14,Baker,Florida,12003,26,3 +2020-05-15,Baker,Florida,12003,26,3 +2020-05-16,Baker,Florida,12003,26,3 +2020-05-17,Baker,Florida,12003,26,3 +2020-05-18,Baker,Florida,12003,26,3 +2020-05-19,Baker,Florida,12003,26,3 +2020-05-20,Baker,Florida,12003,26,3 +2020-05-21,Baker,Florida,12003,26,3 +2020-05-22,Baker,Florida,12003,26,3 +2020-05-23,Baker,Florida,12003,27,3 +2020-05-24,Baker,Florida,12003,27,3 +2020-05-25,Baker,Florida,12003,27,3 +2020-05-26,Baker,Florida,12003,27,3 +2020-05-27,Baker,Florida,12003,29,3 +2020-05-28,Baker,Florida,12003,28,3 +2020-05-29,Baker,Florida,12003,28,3 +2020-05-30,Baker,Florida,12003,29,3 +2020-05-31,Baker,Florida,12003,29,3 +2020-06-01,Baker,Florida,12003,29,3 +2020-06-02,Baker,Florida,12003,29,3 +2020-06-03,Baker,Florida,12003,29,4 +2020-06-04,Baker,Florida,12003,29,4 +2020-06-05,Baker,Florida,12003,29,4 +2020-06-06,Baker,Florida,12003,29,4 +2020-06-07,Baker,Florida,12003,29,4 +2020-06-08,Baker,Florida,12003,29,4 +2020-06-09,Baker,Florida,12003,29,4 +2020-06-10,Baker,Florida,12003,29,4 +2020-06-11,Baker,Florida,12003,29,4 +2020-06-12,Baker,Florida,12003,30,4 +2020-06-13,Baker,Florida,12003,30,4 +2020-06-14,Baker,Florida,12003,30,4 +2020-06-15,Baker,Florida,12003,30,4 +2020-06-16,Baker,Florida,12003,34,4 +2020-06-17,Baker,Florida,12003,35,4 +2020-06-18,Baker,Florida,12003,35,4 +2020-06-19,Baker,Florida,12003,39,4 +2020-06-20,Baker,Florida,12003,39,4 +2020-06-21,Baker,Florida,12003,41,4 +2020-06-22,Baker,Florida,12003,44,4 +2020-06-23,Baker,Florida,12003,42,4 +2020-06-24,Baker,Florida,12003,42,4 +2020-06-25,Baker,Florida,12003,44,4 +2020-06-26,Baker,Florida,12003,47,4 +2020-06-27,Baker,Florida,12003,51,4 +2020-06-28,Baker,Florida,12003,55,4 +2020-06-29,Baker,Florida,12003,57,4 +2020-06-30,Baker,Florida,12003,63,4 +2020-07-01,Baker,Florida,12003,72,4 +2020-07-02,Baker,Florida,12003,80,4 +2020-07-03,Baker,Florida,12003,84,4 +2020-07-04,Baker,Florida,12003,98,4 +2020-07-05,Baker,Florida,12003,102,4 +2020-07-06,Baker,Florida,12003,106,4 +2020-07-07,Baker,Florida,12003,110,4 +2020-07-08,Baker,Florida,12003,120,4 +2020-07-09,Baker,Florida,12003,127,4 +2020-03-21,Bay,Florida,12005,1,0 +2020-03-22,Bay,Florida,12005,1,0 +2020-03-23,Bay,Florida,12005,1,0 +2020-03-24,Bay,Florida,12005,1,0 +2020-03-25,Bay,Florida,12005,3,0 +2020-03-26,Bay,Florida,12005,3,0 +2020-03-27,Bay,Florida,12005,4,0 +2020-03-28,Bay,Florida,12005,5,0 +2020-03-29,Bay,Florida,12005,6,0 +2020-03-30,Bay,Florida,12005,6,0 +2020-03-31,Bay,Florida,12005,8,0 +2020-04-01,Bay,Florida,12005,13,0 +2020-04-02,Bay,Florida,12005,15,0 +2020-04-03,Bay,Florida,12005,18,0 +2020-04-04,Bay,Florida,12005,23,1 +2020-04-05,Bay,Florida,12005,24,1 +2020-04-06,Bay,Florida,12005,24,1 +2020-04-07,Bay,Florida,12005,25,1 +2020-04-08,Bay,Florida,12005,28,1 +2020-04-09,Bay,Florida,12005,34,1 +2020-04-10,Bay,Florida,12005,36,1 +2020-04-11,Bay,Florida,12005,36,1 +2020-04-12,Bay,Florida,12005,37,1 +2020-04-13,Bay,Florida,12005,39,1 +2020-04-14,Bay,Florida,12005,38,2 +2020-04-15,Bay,Florida,12005,39,2 +2020-04-16,Bay,Florida,12005,42,2 +2020-04-17,Bay,Florida,12005,43,2 +2020-04-18,Bay,Florida,12005,48,2 +2020-04-19,Bay,Florida,12005,55,2 +2020-04-20,Bay,Florida,12005,57,2 +2020-04-21,Bay,Florida,12005,58,2 +2020-04-22,Bay,Florida,12005,59,2 +2020-04-23,Bay,Florida,12005,60,2 +2020-04-24,Bay,Florida,12005,63,2 +2020-04-25,Bay,Florida,12005,63,2 +2020-04-26,Bay,Florida,12005,65,2 +2020-04-27,Bay,Florida,12005,68,2 +2020-04-28,Bay,Florida,12005,70,2 +2020-04-29,Bay,Florida,12005,70,2 +2020-04-30,Bay,Florida,12005,72,3 +2020-05-01,Bay,Florida,12005,72,3 +2020-05-02,Bay,Florida,12005,75,3 +2020-05-03,Bay,Florida,12005,76,3 +2020-05-04,Bay,Florida,12005,76,3 +2020-05-05,Bay,Florida,12005,76,3 +2020-05-06,Bay,Florida,12005,76,3 +2020-05-07,Bay,Florida,12005,76,3 +2020-05-08,Bay,Florida,12005,76,3 +2020-05-09,Bay,Florida,12005,76,3 +2020-05-10,Bay,Florida,12005,76,3 +2020-05-11,Bay,Florida,12005,76,3 +2020-05-12,Bay,Florida,12005,77,3 +2020-05-13,Bay,Florida,12005,77,3 +2020-05-14,Bay,Florida,12005,78,3 +2020-05-15,Bay,Florida,12005,80,3 +2020-05-16,Bay,Florida,12005,83,3 +2020-05-17,Bay,Florida,12005,84,3 +2020-05-18,Bay,Florida,12005,85,3 +2020-05-19,Bay,Florida,12005,86,3 +2020-05-20,Bay,Florida,12005,86,3 +2020-05-21,Bay,Florida,12005,87,3 +2020-05-22,Bay,Florida,12005,92,3 +2020-05-23,Bay,Florida,12005,94,3 +2020-05-24,Bay,Florida,12005,95,3 +2020-05-25,Bay,Florida,12005,97,3 +2020-05-26,Bay,Florida,12005,97,3 +2020-05-27,Bay,Florida,12005,97,3 +2020-05-28,Bay,Florida,12005,97,3 +2020-05-29,Bay,Florida,12005,98,3 +2020-05-30,Bay,Florida,12005,97,3 +2020-05-31,Bay,Florida,12005,98,3 +2020-06-01,Bay,Florida,12005,100,3 +2020-06-02,Bay,Florida,12005,99,3 +2020-06-03,Bay,Florida,12005,105,3 +2020-06-04,Bay,Florida,12005,111,4 +2020-06-05,Bay,Florida,12005,115,4 +2020-06-06,Bay,Florida,12005,123,4 +2020-06-07,Bay,Florida,12005,130,4 +2020-06-08,Bay,Florida,12005,132,4 +2020-06-09,Bay,Florida,12005,133,4 +2020-06-10,Bay,Florida,12005,135,4 +2020-06-11,Bay,Florida,12005,135,4 +2020-06-12,Bay,Florida,12005,139,4 +2020-06-13,Bay,Florida,12005,141,4 +2020-06-14,Bay,Florida,12005,145,4 +2020-06-15,Bay,Florida,12005,153,4 +2020-06-16,Bay,Florida,12005,157,4 +2020-06-17,Bay,Florida,12005,161,4 +2020-06-18,Bay,Florida,12005,167,4 +2020-06-19,Bay,Florida,12005,175,4 +2020-06-20,Bay,Florida,12005,188,4 +2020-06-21,Bay,Florida,12005,190,4 +2020-06-22,Bay,Florida,12005,205,4 +2020-06-23,Bay,Florida,12005,230,4 +2020-06-24,Bay,Florida,12005,240,4 +2020-06-25,Bay,Florida,12005,248,4 +2020-06-26,Bay,Florida,12005,287,4 +2020-06-27,Bay,Florida,12005,305,4 +2020-06-28,Bay,Florida,12005,322,4 +2020-06-29,Bay,Florida,12005,347,4 +2020-06-30,Bay,Florida,12005,384,4 +2020-07-01,Bay,Florida,12005,408,5 +2020-07-02,Bay,Florida,12005,581,5 +2020-07-03,Bay,Florida,12005,625,5 +2020-07-04,Bay,Florida,12005,684,5 +2020-07-05,Bay,Florida,12005,713,5 +2020-07-06,Bay,Florida,12005,744,5 +2020-07-07,Bay,Florida,12005,818,5 +2020-07-08,Bay,Florida,12005,880,5 +2020-07-09,Bay,Florida,12005,940,5 +2020-03-22,Bradford,Florida,12007,1,0 +2020-03-23,Bradford,Florida,12007,1,0 +2020-03-24,Bradford,Florida,12007,1,0 +2020-03-25,Bradford,Florida,12007,1,0 +2020-03-26,Bradford,Florida,12007,1,0 +2020-03-27,Bradford,Florida,12007,1,0 +2020-03-28,Bradford,Florida,12007,1,0 +2020-03-29,Bradford,Florida,12007,2,0 +2020-03-30,Bradford,Florida,12007,2,0 +2020-03-31,Bradford,Florida,12007,2,0 +2020-04-01,Bradford,Florida,12007,3,0 +2020-04-02,Bradford,Florida,12007,5,0 +2020-04-03,Bradford,Florida,12007,5,0 +2020-04-04,Bradford,Florida,12007,6,0 +2020-04-05,Bradford,Florida,12007,7,0 +2020-04-06,Bradford,Florida,12007,9,0 +2020-04-07,Bradford,Florida,12007,11,0 +2020-04-08,Bradford,Florida,12007,15,0 +2020-04-09,Bradford,Florida,12007,20,0 +2020-04-10,Bradford,Florida,12007,22,0 +2020-04-11,Bradford,Florida,12007,24,0 +2020-04-12,Bradford,Florida,12007,29,1 +2020-04-13,Bradford,Florida,12007,30,1 +2020-04-14,Bradford,Florida,12007,31,1 +2020-04-15,Bradford,Florida,12007,35,1 +2020-04-16,Bradford,Florida,12007,39,1 +2020-04-17,Bradford,Florida,12007,40,2 +2020-04-18,Bradford,Florida,12007,42,2 +2020-04-19,Bradford,Florida,12007,42,2 +2020-04-20,Bradford,Florida,12007,42,2 +2020-04-21,Bradford,Florida,12007,42,2 +2020-04-22,Bradford,Florida,12007,42,2 +2020-04-23,Bradford,Florida,12007,42,2 +2020-04-24,Bradford,Florida,12007,42,2 +2020-04-25,Bradford,Florida,12007,42,2 +2020-04-26,Bradford,Florida,12007,43,2 +2020-04-27,Bradford,Florida,12007,44,2 +2020-04-28,Bradford,Florida,12007,44,2 +2020-04-29,Bradford,Florida,12007,46,2 +2020-04-30,Bradford,Florida,12007,46,2 +2020-05-01,Bradford,Florida,12007,47,2 +2020-05-02,Bradford,Florida,12007,48,2 +2020-05-03,Bradford,Florida,12007,48,2 +2020-05-04,Bradford,Florida,12007,48,2 +2020-05-05,Bradford,Florida,12007,48,2 +2020-05-06,Bradford,Florida,12007,48,2 +2020-05-07,Bradford,Florida,12007,48,2 +2020-05-08,Bradford,Florida,12007,48,2 +2020-05-09,Bradford,Florida,12007,48,2 +2020-05-10,Bradford,Florida,12007,48,2 +2020-05-11,Bradford,Florida,12007,48,2 +2020-05-12,Bradford,Florida,12007,48,2 +2020-05-13,Bradford,Florida,12007,48,2 +2020-05-14,Bradford,Florida,12007,49,2 +2020-05-15,Bradford,Florida,12007,49,2 +2020-05-16,Bradford,Florida,12007,49,2 +2020-05-17,Bradford,Florida,12007,49,2 +2020-05-18,Bradford,Florida,12007,49,2 +2020-05-19,Bradford,Florida,12007,49,2 +2020-05-20,Bradford,Florida,12007,49,2 +2020-05-21,Bradford,Florida,12007,50,2 +2020-05-22,Bradford,Florida,12007,50,2 +2020-05-23,Bradford,Florida,12007,50,2 +2020-05-24,Bradford,Florida,12007,51,2 +2020-05-25,Bradford,Florida,12007,51,2 +2020-05-26,Bradford,Florida,12007,51,2 +2020-05-27,Bradford,Florida,12007,51,2 +2020-05-28,Bradford,Florida,12007,51,2 +2020-05-29,Bradford,Florida,12007,51,2 +2020-05-30,Bradford,Florida,12007,51,2 +2020-05-31,Bradford,Florida,12007,51,2 +2020-06-01,Bradford,Florida,12007,51,2 +2020-06-02,Bradford,Florida,12007,51,2 +2020-06-03,Bradford,Florida,12007,51,2 +2020-06-04,Bradford,Florida,12007,51,2 +2020-06-05,Bradford,Florida,12007,52,2 +2020-06-06,Bradford,Florida,12007,52,2 +2020-06-07,Bradford,Florida,12007,52,2 +2020-06-08,Bradford,Florida,12007,52,2 +2020-06-09,Bradford,Florida,12007,52,2 +2020-06-10,Bradford,Florida,12007,52,2 +2020-06-11,Bradford,Florida,12007,52,2 +2020-06-12,Bradford,Florida,12007,52,2 +2020-06-13,Bradford,Florida,12007,52,2 +2020-06-14,Bradford,Florida,12007,52,2 +2020-06-15,Bradford,Florida,12007,52,2 +2020-06-16,Bradford,Florida,12007,53,2 +2020-06-17,Bradford,Florida,12007,56,2 +2020-06-18,Bradford,Florida,12007,56,2 +2020-06-19,Bradford,Florida,12007,58,2 +2020-06-20,Bradford,Florida,12007,61,2 +2020-06-21,Bradford,Florida,12007,61,2 +2020-06-22,Bradford,Florida,12007,63,2 +2020-06-23,Bradford,Florida,12007,64,2 +2020-06-24,Bradford,Florida,12007,69,2 +2020-06-25,Bradford,Florida,12007,73,2 +2020-06-26,Bradford,Florida,12007,76,2 +2020-06-27,Bradford,Florida,12007,80,2 +2020-06-28,Bradford,Florida,12007,82,2 +2020-06-29,Bradford,Florida,12007,83,2 +2020-06-30,Bradford,Florida,12007,83,2 +2020-07-01,Bradford,Florida,12007,84,2 +2020-07-02,Bradford,Florida,12007,89,2 +2020-07-03,Bradford,Florida,12007,92,2 +2020-07-04,Bradford,Florida,12007,94,2 +2020-07-05,Bradford,Florida,12007,95,2 +2020-07-06,Bradford,Florida,12007,95,2 +2020-07-07,Bradford,Florida,12007,102,2 +2020-07-08,Bradford,Florida,12007,105,2 +2020-07-09,Bradford,Florida,12007,113,2 +2020-03-17,Brevard,Florida,12009,1,0 +2020-03-18,Brevard,Florida,12009,2,0 +2020-03-19,Brevard,Florida,12009,3,0 +2020-03-20,Brevard,Florida,12009,4,0 +2020-03-21,Brevard,Florida,12009,5,0 +2020-03-22,Brevard,Florida,12009,7,0 +2020-03-23,Brevard,Florida,12009,7,0 +2020-03-24,Brevard,Florida,12009,9,0 +2020-03-25,Brevard,Florida,12009,12,0 +2020-03-26,Brevard,Florida,12009,14,0 +2020-03-27,Brevard,Florida,12009,20,0 +2020-03-28,Brevard,Florida,12009,27,0 +2020-03-29,Brevard,Florida,12009,30,0 +2020-03-30,Brevard,Florida,12009,32,0 +2020-03-31,Brevard,Florida,12009,37,0 +2020-04-01,Brevard,Florida,12009,47,0 +2020-04-02,Brevard,Florida,12009,49,0 +2020-04-03,Brevard,Florida,12009,62,0 +2020-04-04,Brevard,Florida,12009,72,0 +2020-04-05,Brevard,Florida,12009,79,0 +2020-04-06,Brevard,Florida,12009,92,0 +2020-04-07,Brevard,Florida,12009,98,2 +2020-04-08,Brevard,Florida,12009,105,2 +2020-04-09,Brevard,Florida,12009,111,2 +2020-04-10,Brevard,Florida,12009,121,2 +2020-04-11,Brevard,Florida,12009,123,3 +2020-04-12,Brevard,Florida,12009,133,4 +2020-04-13,Brevard,Florida,12009,148,6 +2020-04-14,Brevard,Florida,12009,163,6 +2020-04-15,Brevard,Florida,12009,173,6 +2020-04-16,Brevard,Florida,12009,192,6 +2020-04-17,Brevard,Florida,12009,205,7 +2020-04-18,Brevard,Florida,12009,210,7 +2020-04-19,Brevard,Florida,12009,215,7 +2020-04-20,Brevard,Florida,12009,218,7 +2020-04-21,Brevard,Florida,12009,224,7 +2020-04-22,Brevard,Florida,12009,225,7 +2020-04-23,Brevard,Florida,12009,235,8 +2020-04-24,Brevard,Florida,12009,247,8 +2020-04-25,Brevard,Florida,12009,250,8 +2020-04-26,Brevard,Florida,12009,252,8 +2020-04-27,Brevard,Florida,12009,266,8 +2020-04-28,Brevard,Florida,12009,268,8 +2020-04-29,Brevard,Florida,12009,270,8 +2020-04-30,Brevard,Florida,12009,285,8 +2020-05-01,Brevard,Florida,12009,289,8 +2020-05-02,Brevard,Florida,12009,297,8 +2020-05-03,Brevard,Florida,12009,308,8 +2020-05-04,Brevard,Florida,12009,310,8 +2020-05-05,Brevard,Florida,12009,319,8 +2020-05-06,Brevard,Florida,12009,320,8 +2020-05-07,Brevard,Florida,12009,325,8 +2020-05-08,Brevard,Florida,12009,326,9 +2020-05-09,Brevard,Florida,12009,328,9 +2020-05-10,Brevard,Florida,12009,328,9 +2020-05-11,Brevard,Florida,12009,330,9 +2020-05-12,Brevard,Florida,12009,346,9 +2020-05-13,Brevard,Florida,12009,344,9 +2020-05-14,Brevard,Florida,12009,348,9 +2020-05-15,Brevard,Florida,12009,356,9 +2020-05-16,Brevard,Florida,12009,359,10 +2020-05-17,Brevard,Florida,12009,365,10 +2020-05-18,Brevard,Florida,12009,367,11 +2020-05-19,Brevard,Florida,12009,371,11 +2020-05-20,Brevard,Florida,12009,372,11 +2020-05-21,Brevard,Florida,12009,376,11 +2020-05-22,Brevard,Florida,12009,380,11 +2020-05-23,Brevard,Florida,12009,389,11 +2020-05-24,Brevard,Florida,12009,394,11 +2020-05-25,Brevard,Florida,12009,398,12 +2020-05-26,Brevard,Florida,12009,399,12 +2020-05-27,Brevard,Florida,12009,399,12 +2020-05-28,Brevard,Florida,12009,401,12 +2020-05-29,Brevard,Florida,12009,409,12 +2020-05-30,Brevard,Florida,12009,420,12 +2020-05-31,Brevard,Florida,12009,422,12 +2020-06-01,Brevard,Florida,12009,424,13 +2020-06-02,Brevard,Florida,12009,427,13 +2020-06-03,Brevard,Florida,12009,428,13 +2020-06-04,Brevard,Florida,12009,431,13 +2020-06-05,Brevard,Florida,12009,439,13 +2020-06-06,Brevard,Florida,12009,453,13 +2020-06-07,Brevard,Florida,12009,457,13 +2020-06-08,Brevard,Florida,12009,464,13 +2020-06-09,Brevard,Florida,12009,471,13 +2020-06-10,Brevard,Florida,12009,484,13 +2020-06-11,Brevard,Florida,12009,506,13 +2020-06-12,Brevard,Florida,12009,519,13 +2020-06-13,Brevard,Florida,12009,541,15 +2020-06-14,Brevard,Florida,12009,545,15 +2020-06-15,Brevard,Florida,12009,565,15 +2020-06-16,Brevard,Florida,12009,608,16 +2020-06-17,Brevard,Florida,12009,650,16 +2020-06-18,Brevard,Florida,12009,688,16 +2020-06-19,Brevard,Florida,12009,748,16 +2020-06-20,Brevard,Florida,12009,817,16 +2020-06-21,Brevard,Florida,12009,850,16 +2020-06-22,Brevard,Florida,12009,878,16 +2020-06-23,Brevard,Florida,12009,918,17 +2020-06-24,Brevard,Florida,12009,1022,17 +2020-06-25,Brevard,Florida,12009,1149,17 +2020-06-26,Brevard,Florida,12009,1297,17 +2020-06-27,Brevard,Florida,12009,1547,17 +2020-06-28,Brevard,Florida,12009,1631,17 +2020-06-29,Brevard,Florida,12009,1716,17 +2020-06-30,Brevard,Florida,12009,1793,17 +2020-07-01,Brevard,Florida,12009,1962,17 +2020-07-02,Brevard,Florida,12009,2180,17 +2020-07-03,Brevard,Florida,12009,2366,18 +2020-07-04,Brevard,Florida,12009,2453,19 +2020-07-05,Brevard,Florida,12009,2521,19 +2020-07-06,Brevard,Florida,12009,2591,19 +2020-07-07,Brevard,Florida,12009,2705,20 +2020-07-08,Brevard,Florida,12009,2812,20 +2020-07-09,Brevard,Florida,12009,2985,26 +2020-03-06,Broward,Florida,12011,2,0 +2020-03-07,Broward,Florida,12011,2,0 +2020-03-08,Broward,Florida,12011,3,0 +2020-03-09,Broward,Florida,12011,3,0 +2020-03-10,Broward,Florida,12011,4,0 +2020-03-11,Broward,Florida,12011,5,0 +2020-03-12,Broward,Florida,12011,12,0 +2020-03-13,Broward,Florida,12011,21,0 +2020-03-14,Broward,Florida,12011,21,0 +2020-03-15,Broward,Florida,12011,37,0 +2020-03-16,Broward,Florida,12011,39,0 +2020-03-17,Broward,Florida,12011,55,1 +2020-03-18,Broward,Florida,12011,80,1 +2020-03-19,Broward,Florida,12011,96,1 +2020-03-20,Broward,Florida,12011,128,2 +2020-03-21,Broward,Florida,12011,164,3 +2020-03-22,Broward,Florida,12011,217,3 +2020-03-23,Broward,Florida,12011,262,3 +2020-03-24,Broward,Florida,12011,312,3 +2020-03-25,Broward,Florida,12011,412,3 +2020-03-26,Broward,Florida,12011,505,3 +2020-03-27,Broward,Florida,12011,631,10 +2020-03-28,Broward,Florida,12011,820,11 +2020-03-29,Broward,Florida,12011,1012,11 +2020-03-30,Broward,Florida,12011,1137,12 +2020-03-31,Broward,Florida,12011,1219,12 +2020-04-01,Broward,Florida,12011,1348,13 +2020-04-02,Broward,Florida,12011,1481,17 +2020-04-03,Broward,Florida,12011,1598,22 +2020-04-04,Broward,Florida,12011,1765,32 +2020-04-05,Broward,Florida,12011,1886,40 +2020-04-06,Broward,Florida,12011,2075,47 +2020-04-07,Broward,Florida,12011,2230,54 +2020-04-08,Broward,Florida,12011,2365,60 +2020-04-09,Broward,Florida,12011,2480,67 +2020-04-10,Broward,Florida,12011,2679,72 +2020-04-11,Broward,Florida,12011,2844,76 +2020-04-12,Broward,Florida,12011,2945,76 +2020-04-13,Broward,Florida,12011,3177,77 +2020-04-14,Broward,Florida,12011,3261,81 +2020-04-15,Broward,Florida,12011,3363,94 +2020-04-16,Broward,Florida,12011,3466,101 +2020-04-17,Broward,Florida,12011,3688,107 +2020-04-18,Broward,Florida,12011,3838,115 +2020-04-19,Broward,Florida,12011,3971,115 +2020-04-20,Broward,Florida,12011,4078,122 +2020-04-21,Broward,Florida,12011,4168,126 +2020-04-22,Broward,Florida,12011,4228,141 +2020-04-23,Broward,Florida,12011,4431,157 +2020-04-24,Broward,Florida,12011,4591,162 +2020-04-25,Broward,Florida,12011,4659,162 +2020-04-26,Broward,Florida,12011,4729,170 +2020-04-27,Broward,Florida,12011,4794,174 +2020-04-28,Broward,Florida,12011,4847,179 +2020-04-29,Broward,Florida,12011,4898,182 +2020-04-30,Broward,Florida,12011,4953,185 +2020-05-01,Broward,Florida,12011,5144,199 +2020-05-02,Broward,Florida,12011,5257,204 +2020-05-03,Broward,Florida,12011,5312,207 +2020-05-04,Broward,Florida,12011,5383,208 +2020-05-05,Broward,Florida,12011,5492,215 +2020-05-06,Broward,Florida,12011,5553,219 +2020-05-07,Broward,Florida,12011,5677,230 +2020-05-08,Broward,Florida,12011,5688,248 +2020-05-09,Broward,Florida,12011,5780,257 +2020-05-10,Broward,Florida,12011,5858,257 +2020-05-11,Broward,Florida,12011,5882,258 +2020-05-12,Broward,Florida,12011,5973,258 +2020-05-13,Broward,Florida,12011,5998,267 +2020-05-14,Broward,Florida,12011,6057,267 +2020-05-15,Broward,Florida,12011,6133,272 +2020-05-16,Broward,Florida,12011,6201,278 +2020-05-17,Broward,Florida,12011,6243,279 +2020-05-18,Broward,Florida,12011,6322,281 +2020-05-19,Broward,Florida,12011,6369,282 +2020-05-20,Broward,Florida,12011,6407,285 +2020-05-21,Broward,Florida,12011,6514,286 +2020-05-22,Broward,Florida,12011,6580,286 +2020-05-23,Broward,Florida,12011,6649,292 +2020-05-24,Broward,Florida,12011,6697,292 +2020-05-25,Broward,Florida,12011,6760,298 +2020-05-26,Broward,Florida,12011,6799,300 +2020-05-27,Broward,Florida,12011,6825,305 +2020-05-28,Broward,Florida,12011,6870,307 +2020-05-29,Broward,Florida,12011,6975,308 +2020-05-30,Broward,Florida,12011,7067,313 +2020-05-31,Broward,Florida,12011,7123,313 +2020-06-01,Broward,Florida,12011,7196,314 +2020-06-02,Broward,Florida,12011,7248,317 +2020-06-03,Broward,Florida,12011,7339,318 +2020-06-04,Broward,Florida,12011,7462,325 +2020-06-05,Broward,Florida,12011,7572,327 +2020-06-06,Broward,Florida,12011,7690,334 +2020-06-07,Broward,Florida,12011,7804,339 +2020-06-08,Broward,Florida,12011,7924,343 +2020-06-09,Broward,Florida,12011,8035,346 +2020-06-10,Broward,Florida,12011,8193,349 +2020-06-11,Broward,Florida,12011,8337,351 +2020-06-12,Broward,Florida,12011,8589,350 +2020-06-13,Broward,Florida,12011,8864,357 +2020-06-14,Broward,Florida,12011,8928,357 +2020-06-15,Broward,Florida,12011,9086,358 +2020-06-16,Broward,Florida,12011,9498,358 +2020-06-17,Broward,Florida,12011,9812,360 +2020-06-18,Broward,Florida,12011,10111,365 +2020-06-19,Broward,Florida,12011,10448,367 +2020-06-20,Broward,Florida,12011,10837,370 +2020-06-21,Broward,Florida,12011,11155,373 +2020-06-22,Broward,Florida,12011,11327,373 +2020-06-23,Broward,Florida,12011,11744,377 +2020-06-24,Broward,Florida,12011,12217,378 +2020-06-25,Broward,Florida,12011,12584,379 +2020-06-26,Broward,Florida,12011,13320,381 +2020-06-27,Broward,Florida,12011,14046,382 +2020-06-28,Broward,Florida,12011,14620,382 +2020-06-29,Broward,Florida,12011,15045,382 +2020-06-30,Broward,Florida,12011,15624,383 +2020-07-01,Broward,Florida,12011,16155,385 +2020-07-02,Broward,Florida,12011,17116,394 +2020-07-03,Broward,Florida,12011,18229,406 +2020-07-04,Broward,Florida,12011,19575,409 +2020-07-05,Broward,Florida,12011,21239,412 +2020-07-06,Broward,Florida,12011,21856,414 +2020-07-07,Broward,Florida,12011,22595,418 +2020-07-08,Broward,Florida,12011,23781,419 +2020-07-09,Broward,Florida,12011,25102,427 +2020-03-31,Calhoun,Florida,12013,1,0 +2020-04-01,Calhoun,Florida,12013,1,0 +2020-04-02,Calhoun,Florida,12013,1,0 +2020-04-03,Calhoun,Florida,12013,2,0 +2020-04-04,Calhoun,Florida,12013,3,0 +2020-04-05,Calhoun,Florida,12013,3,0 +2020-04-06,Calhoun,Florida,12013,3,0 +2020-04-07,Calhoun,Florida,12013,3,0 +2020-04-08,Calhoun,Florida,12013,4,0 +2020-04-09,Calhoun,Florida,12013,4,0 +2020-04-10,Calhoun,Florida,12013,5,0 +2020-04-11,Calhoun,Florida,12013,5,0 +2020-04-12,Calhoun,Florida,12013,5,0 +2020-04-13,Calhoun,Florida,12013,5,0 +2020-04-14,Calhoun,Florida,12013,5,0 +2020-04-15,Calhoun,Florida,12013,5,0 +2020-04-16,Calhoun,Florida,12013,5,0 +2020-04-17,Calhoun,Florida,12013,6,0 +2020-04-18,Calhoun,Florida,12013,6,0 +2020-04-19,Calhoun,Florida,12013,6,0 +2020-04-20,Calhoun,Florida,12013,6,0 +2020-04-21,Calhoun,Florida,12013,6,0 +2020-04-22,Calhoun,Florida,12013,6,0 +2020-04-23,Calhoun,Florida,12013,6,0 +2020-04-24,Calhoun,Florida,12013,6,0 +2020-04-25,Calhoun,Florida,12013,6,0 +2020-04-26,Calhoun,Florida,12013,6,0 +2020-04-27,Calhoun,Florida,12013,6,0 +2020-04-28,Calhoun,Florida,12013,6,0 +2020-04-29,Calhoun,Florida,12013,8,0 +2020-04-30,Calhoun,Florida,12013,8,0 +2020-05-01,Calhoun,Florida,12013,8,0 +2020-05-02,Calhoun,Florida,12013,14,0 +2020-05-03,Calhoun,Florida,12013,15,0 +2020-05-04,Calhoun,Florida,12013,15,0 +2020-05-05,Calhoun,Florida,12013,15,0 +2020-05-06,Calhoun,Florida,12013,19,0 +2020-05-07,Calhoun,Florida,12013,24,0 +2020-05-08,Calhoun,Florida,12013,24,0 +2020-05-09,Calhoun,Florida,12013,27,0 +2020-05-10,Calhoun,Florida,12013,27,0 +2020-05-11,Calhoun,Florida,12013,27,0 +2020-05-12,Calhoun,Florida,12013,27,0 +2020-05-13,Calhoun,Florida,12013,31,0 +2020-05-14,Calhoun,Florida,12013,33,1 +2020-05-15,Calhoun,Florida,12013,38,1 +2020-05-16,Calhoun,Florida,12013,38,1 +2020-05-17,Calhoun,Florida,12013,40,1 +2020-05-18,Calhoun,Florida,12013,41,1 +2020-05-19,Calhoun,Florida,12013,40,2 +2020-05-20,Calhoun,Florida,12013,40,2 +2020-05-21,Calhoun,Florida,12013,41,2 +2020-05-22,Calhoun,Florida,12013,52,3 +2020-05-23,Calhoun,Florida,12013,52,3 +2020-05-24,Calhoun,Florida,12013,52,3 +2020-05-25,Calhoun,Florida,12013,52,3 +2020-05-26,Calhoun,Florida,12013,52,3 +2020-05-27,Calhoun,Florida,12013,52,3 +2020-05-28,Calhoun,Florida,12013,52,3 +2020-05-29,Calhoun,Florida,12013,53,4 +2020-05-30,Calhoun,Florida,12013,56,4 +2020-05-31,Calhoun,Florida,12013,63,4 +2020-06-01,Calhoun,Florida,12013,61,4 +2020-06-02,Calhoun,Florida,12013,62,4 +2020-06-03,Calhoun,Florida,12013,62,4 +2020-06-04,Calhoun,Florida,12013,62,4 +2020-06-05,Calhoun,Florida,12013,64,4 +2020-06-06,Calhoun,Florida,12013,64,4 +2020-06-07,Calhoun,Florida,12013,66,4 +2020-06-08,Calhoun,Florida,12013,66,4 +2020-06-09,Calhoun,Florida,12013,64,4 +2020-06-10,Calhoun,Florida,12013,64,4 +2020-06-11,Calhoun,Florida,12013,64,4 +2020-06-12,Calhoun,Florida,12013,65,5 +2020-06-13,Calhoun,Florida,12013,66,5 +2020-06-14,Calhoun,Florida,12013,66,5 +2020-06-15,Calhoun,Florida,12013,66,5 +2020-06-16,Calhoun,Florida,12013,66,5 +2020-06-17,Calhoun,Florida,12013,66,5 +2020-06-18,Calhoun,Florida,12013,65,5 +2020-06-19,Calhoun,Florida,12013,65,5 +2020-06-20,Calhoun,Florida,12013,68,6 +2020-06-21,Calhoun,Florida,12013,69,6 +2020-06-22,Calhoun,Florida,12013,69,6 +2020-06-23,Calhoun,Florida,12013,88,6 +2020-06-24,Calhoun,Florida,12013,70,6 +2020-06-25,Calhoun,Florida,12013,70,6 +2020-06-26,Calhoun,Florida,12013,79,6 +2020-06-27,Calhoun,Florida,12013,72,6 +2020-06-28,Calhoun,Florida,12013,76,6 +2020-06-29,Calhoun,Florida,12013,75,6 +2020-06-30,Calhoun,Florida,12013,76,6 +2020-07-01,Calhoun,Florida,12013,77,6 +2020-07-02,Calhoun,Florida,12013,85,6 +2020-07-03,Calhoun,Florida,12013,97,6 +2020-07-04,Calhoun,Florida,12013,93,6 +2020-07-05,Calhoun,Florida,12013,97,6 +2020-07-06,Calhoun,Florida,12013,97,6 +2020-07-07,Calhoun,Florida,12013,101,6 +2020-07-08,Calhoun,Florida,12013,106,6 +2020-07-09,Calhoun,Florida,12013,122,7 +2020-03-07,Charlotte,Florida,12015,1,0 +2020-03-08,Charlotte,Florida,12015,1,0 +2020-03-09,Charlotte,Florida,12015,1,0 +2020-03-10,Charlotte,Florida,12015,1,0 +2020-03-11,Charlotte,Florida,12015,1,0 +2020-03-12,Charlotte,Florida,12015,1,0 +2020-03-13,Charlotte,Florida,12015,1,0 +2020-03-14,Charlotte,Florida,12015,1,0 +2020-03-15,Charlotte,Florida,12015,1,0 +2020-03-16,Charlotte,Florida,12015,1,0 +2020-03-17,Charlotte,Florida,12015,1,0 +2020-03-18,Charlotte,Florida,12015,1,0 +2020-03-19,Charlotte,Florida,12015,1,0 +2020-03-20,Charlotte,Florida,12015,2,0 +2020-03-21,Charlotte,Florida,12015,2,0 +2020-03-22,Charlotte,Florida,12015,2,0 +2020-03-23,Charlotte,Florida,12015,3,0 +2020-03-24,Charlotte,Florida,12015,3,0 +2020-03-25,Charlotte,Florida,12015,3,0 +2020-03-26,Charlotte,Florida,12015,4,0 +2020-03-27,Charlotte,Florida,12015,8,0 +2020-03-28,Charlotte,Florida,12015,16,0 +2020-03-29,Charlotte,Florida,12015,16,0 +2020-03-30,Charlotte,Florida,12015,20,0 +2020-03-31,Charlotte,Florida,12015,24,0 +2020-04-01,Charlotte,Florida,12015,26,0 +2020-04-02,Charlotte,Florida,12015,38,0 +2020-04-03,Charlotte,Florida,12015,43,1 +2020-04-04,Charlotte,Florida,12015,46,1 +2020-04-05,Charlotte,Florida,12015,47,1 +2020-04-06,Charlotte,Florida,12015,55,1 +2020-04-07,Charlotte,Florida,12015,67,1 +2020-04-08,Charlotte,Florida,12015,76,1 +2020-04-09,Charlotte,Florida,12015,81,4 +2020-04-10,Charlotte,Florida,12015,104,5 +2020-04-11,Charlotte,Florida,12015,112,5 +2020-04-12,Charlotte,Florida,12015,113,5 +2020-04-13,Charlotte,Florida,12015,119,5 +2020-04-14,Charlotte,Florida,12015,123,5 +2020-04-15,Charlotte,Florida,12015,124,6 +2020-04-16,Charlotte,Florida,12015,127,7 +2020-04-17,Charlotte,Florida,12015,131,9 +2020-04-18,Charlotte,Florida,12015,138,9 +2020-04-19,Charlotte,Florida,12015,138,9 +2020-04-20,Charlotte,Florida,12015,139,11 +2020-04-21,Charlotte,Florida,12015,143,11 +2020-04-22,Charlotte,Florida,12015,148,11 +2020-04-23,Charlotte,Florida,12015,178,12 +2020-04-24,Charlotte,Florida,12015,199,14 +2020-04-25,Charlotte,Florida,12015,202,14 +2020-04-26,Charlotte,Florida,12015,203,14 +2020-04-27,Charlotte,Florida,12015,211,14 +2020-04-28,Charlotte,Florida,12015,219,15 +2020-04-29,Charlotte,Florida,12015,223,18 +2020-04-30,Charlotte,Florida,12015,236,19 +2020-05-01,Charlotte,Florida,12015,245,22 +2020-05-02,Charlotte,Florida,12015,244,25 +2020-05-03,Charlotte,Florida,12015,249,25 +2020-05-04,Charlotte,Florida,12015,257,25 +2020-05-05,Charlotte,Florida,12015,269,26 +2020-05-06,Charlotte,Florida,12015,294,29 +2020-05-07,Charlotte,Florida,12015,304,30 +2020-05-08,Charlotte,Florida,12015,312,31 +2020-05-09,Charlotte,Florida,12015,317,33 +2020-05-10,Charlotte,Florida,12015,329,33 +2020-05-11,Charlotte,Florida,12015,337,33 +2020-05-12,Charlotte,Florida,12015,347,35 +2020-05-13,Charlotte,Florida,12015,350,37 +2020-05-14,Charlotte,Florida,12015,357,38 +2020-05-15,Charlotte,Florida,12015,367,40 +2020-05-16,Charlotte,Florida,12015,370,41 +2020-05-17,Charlotte,Florida,12015,380,41 +2020-05-18,Charlotte,Florida,12015,389,41 +2020-05-19,Charlotte,Florida,12015,392,44 +2020-05-20,Charlotte,Florida,12015,398,51 +2020-05-21,Charlotte,Florida,12015,410,52 +2020-05-22,Charlotte,Florida,12015,412,54 +2020-05-23,Charlotte,Florida,12015,417,56 +2020-05-24,Charlotte,Florida,12015,423,56 +2020-05-25,Charlotte,Florida,12015,427,56 +2020-05-26,Charlotte,Florida,12015,430,56 +2020-05-27,Charlotte,Florida,12015,433,58 +2020-05-28,Charlotte,Florida,12015,438,61 +2020-05-29,Charlotte,Florida,12015,446,62 +2020-05-30,Charlotte,Florida,12015,450,63 +2020-05-31,Charlotte,Florida,12015,458,63 +2020-06-01,Charlotte,Florida,12015,461,63 +2020-06-02,Charlotte,Florida,12015,463,65 +2020-06-03,Charlotte,Florida,12015,470,68 +2020-06-04,Charlotte,Florida,12015,476,68 +2020-06-05,Charlotte,Florida,12015,481,72 +2020-06-06,Charlotte,Florida,12015,488,72 +2020-06-07,Charlotte,Florida,12015,493,72 +2020-06-08,Charlotte,Florida,12015,500,72 +2020-06-09,Charlotte,Florida,12015,501,72 +2020-06-10,Charlotte,Florida,12015,505,72 +2020-06-11,Charlotte,Florida,12015,515,72 +2020-06-12,Charlotte,Florida,12015,522,72 +2020-06-13,Charlotte,Florida,12015,529,73 +2020-06-14,Charlotte,Florida,12015,532,73 +2020-06-15,Charlotte,Florida,12015,537,73 +2020-06-16,Charlotte,Florida,12015,543,73 +2020-06-17,Charlotte,Florida,12015,551,73 +2020-06-18,Charlotte,Florida,12015,553,74 +2020-06-19,Charlotte,Florida,12015,570,75 +2020-06-20,Charlotte,Florida,12015,581,75 +2020-06-21,Charlotte,Florida,12015,587,75 +2020-06-22,Charlotte,Florida,12015,597,75 +2020-06-23,Charlotte,Florida,12015,605,75 +2020-06-24,Charlotte,Florida,12015,617,76 +2020-06-25,Charlotte,Florida,12015,626,76 +2020-06-26,Charlotte,Florida,12015,657,76 +2020-06-27,Charlotte,Florida,12015,687,76 +2020-06-28,Charlotte,Florida,12015,714,76 +2020-06-29,Charlotte,Florida,12015,749,76 +2020-06-30,Charlotte,Florida,12015,775,76 +2020-07-01,Charlotte,Florida,12015,793,76 +2020-07-02,Charlotte,Florida,12015,836,76 +2020-07-03,Charlotte,Florida,12015,860,76 +2020-07-04,Charlotte,Florida,12015,887,76 +2020-07-05,Charlotte,Florida,12015,922,76 +2020-07-06,Charlotte,Florida,12015,935,77 +2020-07-07,Charlotte,Florida,12015,944,77 +2020-07-08,Charlotte,Florida,12015,974,77 +2020-07-09,Charlotte,Florida,12015,1004,77 +2020-03-15,Citrus,Florida,12017,1,0 +2020-03-16,Citrus,Florida,12017,1,0 +2020-03-17,Citrus,Florida,12017,2,0 +2020-03-18,Citrus,Florida,12017,3,0 +2020-03-19,Citrus,Florida,12017,3,0 +2020-03-20,Citrus,Florida,12017,3,0 +2020-03-21,Citrus,Florida,12017,8,0 +2020-03-22,Citrus,Florida,12017,8,0 +2020-03-23,Citrus,Florida,12017,9,0 +2020-03-24,Citrus,Florida,12017,9,0 +2020-03-25,Citrus,Florida,12017,9,1 +2020-03-26,Citrus,Florida,12017,11,1 +2020-03-27,Citrus,Florida,12017,11,1 +2020-03-28,Citrus,Florida,12017,15,1 +2020-03-29,Citrus,Florida,12017,16,1 +2020-03-30,Citrus,Florida,12017,17,2 +2020-03-31,Citrus,Florida,12017,19,2 +2020-04-01,Citrus,Florida,12017,23,2 +2020-04-02,Citrus,Florida,12017,27,2 +2020-04-03,Citrus,Florida,12017,28,2 +2020-04-04,Citrus,Florida,12017,34,2 +2020-04-05,Citrus,Florida,12017,43,2 +2020-04-06,Citrus,Florida,12017,46,2 +2020-04-07,Citrus,Florida,12017,51,2 +2020-04-08,Citrus,Florida,12017,55,5 +2020-04-09,Citrus,Florida,12017,58,6 +2020-04-10,Citrus,Florida,12017,64,6 +2020-04-11,Citrus,Florida,12017,67,6 +2020-04-12,Citrus,Florida,12017,71,6 +2020-04-13,Citrus,Florida,12017,72,7 +2020-04-14,Citrus,Florida,12017,75,7 +2020-04-15,Citrus,Florida,12017,74,8 +2020-04-16,Citrus,Florida,12017,80,8 +2020-04-17,Citrus,Florida,12017,82,8 +2020-04-18,Citrus,Florida,12017,82,8 +2020-04-19,Citrus,Florida,12017,84,8 +2020-04-20,Citrus,Florida,12017,86,8 +2020-04-21,Citrus,Florida,12017,92,8 +2020-04-22,Citrus,Florida,12017,92,8 +2020-04-23,Citrus,Florida,12017,94,9 +2020-04-24,Citrus,Florida,12017,95,9 +2020-04-25,Citrus,Florida,12017,95,9 +2020-04-26,Citrus,Florida,12017,97,11 +2020-04-27,Citrus,Florida,12017,97,11 +2020-04-28,Citrus,Florida,12017,97,11 +2020-04-29,Citrus,Florida,12017,97,11 +2020-04-30,Citrus,Florida,12017,99,11 +2020-05-01,Citrus,Florida,12017,99,11 +2020-05-02,Citrus,Florida,12017,99,11 +2020-05-03,Citrus,Florida,12017,99,11 +2020-05-04,Citrus,Florida,12017,99,11 +2020-05-05,Citrus,Florida,12017,100,11 +2020-05-06,Citrus,Florida,12017,101,11 +2020-05-07,Citrus,Florida,12017,102,11 +2020-05-08,Citrus,Florida,12017,102,11 +2020-05-09,Citrus,Florida,12017,104,11 +2020-05-10,Citrus,Florida,12017,106,11 +2020-05-11,Citrus,Florida,12017,106,11 +2020-05-12,Citrus,Florida,12017,107,11 +2020-05-13,Citrus,Florida,12017,109,11 +2020-05-14,Citrus,Florida,12017,109,11 +2020-05-15,Citrus,Florida,12017,110,11 +2020-05-16,Citrus,Florida,12017,110,11 +2020-05-17,Citrus,Florida,12017,112,12 +2020-05-18,Citrus,Florida,12017,112,12 +2020-05-19,Citrus,Florida,12017,114,12 +2020-05-20,Citrus,Florida,12017,115,12 +2020-05-21,Citrus,Florida,12017,115,12 +2020-05-22,Citrus,Florida,12017,118,12 +2020-05-23,Citrus,Florida,12017,119,12 +2020-05-24,Citrus,Florida,12017,119,12 +2020-05-25,Citrus,Florida,12017,119,12 +2020-05-26,Citrus,Florida,12017,119,12 +2020-05-27,Citrus,Florida,12017,119,12 +2020-05-28,Citrus,Florida,12017,119,12 +2020-05-29,Citrus,Florida,12017,120,12 +2020-05-30,Citrus,Florida,12017,121,12 +2020-05-31,Citrus,Florida,12017,121,12 +2020-06-01,Citrus,Florida,12017,122,12 +2020-06-02,Citrus,Florida,12017,122,12 +2020-06-03,Citrus,Florida,12017,122,12 +2020-06-04,Citrus,Florida,12017,122,12 +2020-06-05,Citrus,Florida,12017,125,12 +2020-06-06,Citrus,Florida,12017,125,12 +2020-06-07,Citrus,Florida,12017,128,12 +2020-06-08,Citrus,Florida,12017,128,12 +2020-06-09,Citrus,Florida,12017,128,12 +2020-06-10,Citrus,Florida,12017,130,12 +2020-06-11,Citrus,Florida,12017,132,12 +2020-06-12,Citrus,Florida,12017,135,12 +2020-06-13,Citrus,Florida,12017,140,12 +2020-06-14,Citrus,Florida,12017,143,12 +2020-06-15,Citrus,Florida,12017,150,12 +2020-06-16,Citrus,Florida,12017,152,12 +2020-06-17,Citrus,Florida,12017,157,12 +2020-06-18,Citrus,Florida,12017,162,12 +2020-06-19,Citrus,Florida,12017,168,12 +2020-06-20,Citrus,Florida,12017,183,12 +2020-06-21,Citrus,Florida,12017,189,12 +2020-06-22,Citrus,Florida,12017,199,12 +2020-06-23,Citrus,Florida,12017,204,12 +2020-06-24,Citrus,Florida,12017,219,12 +2020-06-25,Citrus,Florida,12017,226,12 +2020-06-26,Citrus,Florida,12017,240,12 +2020-06-27,Citrus,Florida,12017,264,12 +2020-06-28,Citrus,Florida,12017,277,12 +2020-06-29,Citrus,Florida,12017,284,13 +2020-06-30,Citrus,Florida,12017,291,13 +2020-07-01,Citrus,Florida,12017,323,13 +2020-07-02,Citrus,Florida,12017,345,13 +2020-07-03,Citrus,Florida,12017,364,13 +2020-07-04,Citrus,Florida,12017,372,13 +2020-07-05,Citrus,Florida,12017,378,13 +2020-07-06,Citrus,Florida,12017,399,13 +2020-07-07,Citrus,Florida,12017,419,13 +2020-07-08,Citrus,Florida,12017,457,13 +2020-07-09,Citrus,Florida,12017,469,13 +2020-03-12,Clay,Florida,12019,1,0 +2020-03-13,Clay,Florida,12019,1,0 +2020-03-14,Clay,Florida,12019,1,0 +2020-03-15,Clay,Florida,12019,3,0 +2020-03-16,Clay,Florida,12019,3,0 +2020-03-17,Clay,Florida,12019,4,0 +2020-03-18,Clay,Florida,12019,4,1 +2020-03-19,Clay,Florida,12019,4,1 +2020-03-20,Clay,Florida,12019,4,1 +2020-03-21,Clay,Florida,12019,6,1 +2020-03-22,Clay,Florida,12019,7,1 +2020-03-23,Clay,Florida,12019,8,2 +2020-03-24,Clay,Florida,12019,10,2 +2020-03-25,Clay,Florida,12019,16,2 +2020-03-26,Clay,Florida,12019,20,4 +2020-03-27,Clay,Florida,12019,22,4 +2020-03-28,Clay,Florida,12019,26,4 +2020-03-29,Clay,Florida,12019,35,4 +2020-03-30,Clay,Florida,12019,34,5 +2020-03-31,Clay,Florida,12019,41,5 +2020-04-01,Clay,Florida,12019,53,5 +2020-04-02,Clay,Florida,12019,58,6 +2020-04-03,Clay,Florida,12019,69,6 +2020-04-04,Clay,Florida,12019,74,6 +2020-04-05,Clay,Florida,12019,79,6 +2020-04-06,Clay,Florida,12019,81,6 +2020-04-07,Clay,Florida,12019,88,7 +2020-04-08,Clay,Florida,12019,99,7 +2020-04-09,Clay,Florida,12019,110,7 +2020-04-10,Clay,Florida,12019,144,8 +2020-04-11,Clay,Florida,12019,161,8 +2020-04-12,Clay,Florida,12019,163,8 +2020-04-13,Clay,Florida,12019,165,9 +2020-04-14,Clay,Florida,12019,168,9 +2020-04-15,Clay,Florida,12019,170,9 +2020-04-16,Clay,Florida,12019,184,9 +2020-04-17,Clay,Florida,12019,216,9 +2020-04-18,Clay,Florida,12019,223,9 +2020-04-19,Clay,Florida,12019,247,11 +2020-04-20,Clay,Florida,12019,249,11 +2020-04-21,Clay,Florida,12019,256,11 +2020-04-22,Clay,Florida,12019,257,11 +2020-04-23,Clay,Florida,12019,264,12 +2020-04-24,Clay,Florida,12019,266,14 +2020-04-25,Clay,Florida,12019,267,14 +2020-04-26,Clay,Florida,12019,267,13 +2020-04-27,Clay,Florida,12019,271,14 +2020-04-28,Clay,Florida,12019,272,14 +2020-04-29,Clay,Florida,12019,272,15 +2020-04-30,Clay,Florida,12019,273,15 +2020-05-01,Clay,Florida,12019,276,16 +2020-05-02,Clay,Florida,12019,278,18 +2020-05-03,Clay,Florida,12019,279,18 +2020-05-04,Clay,Florida,12019,285,18 +2020-05-05,Clay,Florida,12019,287,18 +2020-05-06,Clay,Florida,12019,288,19 +2020-05-07,Clay,Florida,12019,292,19 +2020-05-08,Clay,Florida,12019,293,19 +2020-05-09,Clay,Florida,12019,299,19 +2020-05-10,Clay,Florida,12019,300,19 +2020-05-11,Clay,Florida,12019,302,21 +2020-05-12,Clay,Florida,12019,303,22 +2020-05-13,Clay,Florida,12019,303,22 +2020-05-14,Clay,Florida,12019,306,22 +2020-05-15,Clay,Florida,12019,308,23 +2020-05-16,Clay,Florida,12019,313,25 +2020-05-17,Clay,Florida,12019,317,25 +2020-05-18,Clay,Florida,12019,320,25 +2020-05-19,Clay,Florida,12019,321,25 +2020-05-20,Clay,Florida,12019,333,25 +2020-05-21,Clay,Florida,12019,351,25 +2020-05-22,Clay,Florida,12019,354,25 +2020-05-23,Clay,Florida,12019,354,27 +2020-05-24,Clay,Florida,12019,357,27 +2020-05-25,Clay,Florida,12019,362,27 +2020-05-26,Clay,Florida,12019,365,27 +2020-05-27,Clay,Florida,12019,366,28 +2020-05-28,Clay,Florida,12019,369,28 +2020-05-29,Clay,Florida,12019,374,28 +2020-05-30,Clay,Florida,12019,380,28 +2020-05-31,Clay,Florida,12019,382,28 +2020-06-01,Clay,Florida,12019,383,28 +2020-06-02,Clay,Florida,12019,387,30 +2020-06-03,Clay,Florida,12019,390,33 +2020-06-04,Clay,Florida,12019,394,32 +2020-06-05,Clay,Florida,12019,393,32 +2020-06-06,Clay,Florida,12019,396,32 +2020-06-07,Clay,Florida,12019,400,32 +2020-06-08,Clay,Florida,12019,405,32 +2020-06-09,Clay,Florida,12019,411,32 +2020-06-10,Clay,Florida,12019,420,32 +2020-06-11,Clay,Florida,12019,427,32 +2020-06-12,Clay,Florida,12019,429,32 +2020-06-13,Clay,Florida,12019,429,32 +2020-06-14,Clay,Florida,12019,435,32 +2020-06-15,Clay,Florida,12019,440,32 +2020-06-16,Clay,Florida,12019,443,32 +2020-06-17,Clay,Florida,12019,450,32 +2020-06-18,Clay,Florida,12019,456,32 +2020-06-19,Clay,Florida,12019,468,32 +2020-06-20,Clay,Florida,12019,481,32 +2020-06-21,Clay,Florida,12019,494,32 +2020-06-22,Clay,Florida,12019,519,32 +2020-06-23,Clay,Florida,12019,511,33 +2020-06-24,Clay,Florida,12019,523,33 +2020-06-25,Clay,Florida,12019,542,33 +2020-06-26,Clay,Florida,12019,580,34 +2020-06-27,Clay,Florida,12019,616,34 +2020-06-28,Clay,Florida,12019,659,34 +2020-06-29,Clay,Florida,12019,682,34 +2020-06-30,Clay,Florida,12019,713,34 +2020-07-01,Clay,Florida,12019,729,34 +2020-07-02,Clay,Florida,12019,801,34 +2020-07-03,Clay,Florida,12019,871,34 +2020-07-04,Clay,Florida,12019,936,34 +2020-07-05,Clay,Florida,12019,991,34 +2020-07-06,Clay,Florida,12019,1017,34 +2020-07-07,Clay,Florida,12019,1074,34 +2020-07-08,Clay,Florida,12019,1158,34 +2020-07-09,Clay,Florida,12019,1254,34 +2020-03-10,Collier,Florida,12021,3,0 +2020-03-11,Collier,Florida,12021,3,0 +2020-03-12,Collier,Florida,12021,3,0 +2020-03-13,Collier,Florida,12021,3,0 +2020-03-14,Collier,Florida,12021,3,0 +2020-03-15,Collier,Florida,12021,5,0 +2020-03-16,Collier,Florida,12021,6,0 +2020-03-17,Collier,Florida,12021,7,0 +2020-03-18,Collier,Florida,12021,13,0 +2020-03-19,Collier,Florida,12021,18,0 +2020-03-20,Collier,Florida,12021,25,0 +2020-03-21,Collier,Florida,12021,28,0 +2020-03-22,Collier,Florida,12021,33,0 +2020-03-23,Collier,Florida,12021,39,0 +2020-03-24,Collier,Florida,12021,41,0 +2020-03-25,Collier,Florida,12021,57,0 +2020-03-26,Collier,Florida,12021,67,0 +2020-03-27,Collier,Florida,12021,85,0 +2020-03-28,Collier,Florida,12021,95,0 +2020-03-29,Collier,Florida,12021,111,1 +2020-03-30,Collier,Florida,12021,127,1 +2020-03-31,Collier,Florida,12021,146,1 +2020-04-01,Collier,Florida,12021,158,1 +2020-04-02,Collier,Florida,12021,178,2 +2020-04-03,Collier,Florida,12021,203,2 +2020-04-04,Collier,Florida,12021,221,2 +2020-04-05,Collier,Florida,12021,231,2 +2020-04-06,Collier,Florida,12021,249,3 +2020-04-07,Collier,Florida,12021,271,3 +2020-04-08,Collier,Florida,12021,282,3 +2020-04-09,Collier,Florida,12021,303,3 +2020-04-10,Collier,Florida,12021,327,3 +2020-04-11,Collier,Florida,12021,352,4 +2020-04-12,Collier,Florida,12021,361,4 +2020-04-13,Collier,Florida,12021,376,5 +2020-04-14,Collier,Florida,12021,380,5 +2020-04-15,Collier,Florida,12021,396,5 +2020-04-16,Collier,Florida,12021,416,6 +2020-04-17,Collier,Florida,12021,445,8 +2020-04-18,Collier,Florida,12021,457,8 +2020-04-19,Collier,Florida,12021,463,8 +2020-04-20,Collier,Florida,12021,470,9 +2020-04-21,Collier,Florida,12021,477,10 +2020-04-22,Collier,Florida,12021,483,10 +2020-04-23,Collier,Florida,12021,507,14 +2020-04-24,Collier,Florida,12021,526,15 +2020-04-25,Collier,Florida,12021,535,15 +2020-04-26,Collier,Florida,12021,552,15 +2020-04-27,Collier,Florida,12021,562,15 +2020-04-28,Collier,Florida,12021,568,16 +2020-04-29,Collier,Florida,12021,581,17 +2020-04-30,Collier,Florida,12021,596,19 +2020-05-01,Collier,Florida,12021,610,21 +2020-05-02,Collier,Florida,12021,628,21 +2020-05-03,Collier,Florida,12021,640,21 +2020-05-04,Collier,Florida,12021,653,22 +2020-05-05,Collier,Florida,12021,656,25 +2020-05-06,Collier,Florida,12021,677,27 +2020-05-07,Collier,Florida,12021,705,27 +2020-05-08,Collier,Florida,12021,712,27 +2020-05-09,Collier,Florida,12021,734,27 +2020-05-10,Collier,Florida,12021,752,27 +2020-05-11,Collier,Florida,12021,766,28 +2020-05-12,Collier,Florida,12021,843,32 +2020-05-13,Collier,Florida,12021,864,34 +2020-05-14,Collier,Florida,12021,882,35 +2020-05-15,Collier,Florida,12021,915,37 +2020-05-16,Collier,Florida,12021,923,37 +2020-05-17,Collier,Florida,12021,948,37 +2020-05-18,Collier,Florida,12021,1006,37 +2020-05-19,Collier,Florida,12021,1030,40 +2020-05-20,Collier,Florida,12021,1058,40 +2020-05-21,Collier,Florida,12021,1112,41 +2020-05-22,Collier,Florida,12021,1160,42 +2020-05-23,Collier,Florida,12021,1195,45 +2020-05-24,Collier,Florida,12021,1251,45 +2020-05-25,Collier,Florida,12021,1282,46 +2020-05-26,Collier,Florida,12021,1305,46 +2020-05-27,Collier,Florida,12021,1334,46 +2020-05-28,Collier,Florida,12021,1401,49 +2020-05-29,Collier,Florida,12021,1454,49 +2020-05-30,Collier,Florida,12021,1514,49 +2020-05-31,Collier,Florida,12021,1539,49 +2020-06-01,Collier,Florida,12021,1580,49 +2020-06-02,Collier,Florida,12021,1605,49 +2020-06-03,Collier,Florida,12021,1679,49 +2020-06-04,Collier,Florida,12021,1814,53 +2020-06-05,Collier,Florida,12021,1874,55 +2020-06-06,Collier,Florida,12021,1968,56 +2020-06-07,Collier,Florida,12021,2039,56 +2020-06-08,Collier,Florida,12021,2070,57 +2020-06-09,Collier,Florida,12021,2128,57 +2020-06-10,Collier,Florida,12021,2230,57 +2020-06-11,Collier,Florida,12021,2291,59 +2020-06-12,Collier,Florida,12021,2364,59 +2020-06-13,Collier,Florida,12021,2435,60 +2020-06-14,Collier,Florida,12021,2526,60 +2020-06-15,Collier,Florida,12021,2592,60 +2020-06-16,Collier,Florida,12021,2729,60 +2020-06-17,Collier,Florida,12021,2817,60 +2020-06-18,Collier,Florida,12021,2883,61 +2020-06-19,Collier,Florida,12021,2992,61 +2020-06-20,Collier,Florida,12021,3097,64 +2020-06-21,Collier,Florida,12021,3159,64 +2020-06-22,Collier,Florida,12021,3206,64 +2020-06-23,Collier,Florida,12021,3375,65 +2020-06-24,Collier,Florida,12021,3456,67 +2020-06-25,Collier,Florida,12021,3521,70 +2020-06-26,Collier,Florida,12021,3778,70 +2020-06-27,Collier,Florida,12021,3966,70 +2020-06-28,Collier,Florida,12021,4087,71 +2020-06-29,Collier,Florida,12021,4147,71 +2020-06-30,Collier,Florida,12021,4225,74 +2020-07-01,Collier,Florida,12021,4376,81 +2020-07-02,Collier,Florida,12021,4539,82 +2020-07-03,Collier,Florida,12021,4701,85 +2020-07-04,Collier,Florida,12021,4880,85 +2020-07-05,Collier,Florida,12021,5019,85 +2020-07-06,Collier,Florida,12021,5076,85 +2020-07-07,Collier,Florida,12021,5201,85 +2020-07-08,Collier,Florida,12021,5433,85 +2020-07-09,Collier,Florida,12021,5577,85 +2020-03-22,Columbia,Florida,12023,2,0 +2020-03-23,Columbia,Florida,12023,2,0 +2020-03-24,Columbia,Florida,12023,3,0 +2020-03-25,Columbia,Florida,12023,3,0 +2020-03-26,Columbia,Florida,12023,3,0 +2020-03-27,Columbia,Florida,12023,3,0 +2020-03-28,Columbia,Florida,12023,3,0 +2020-03-29,Columbia,Florida,12023,3,0 +2020-03-30,Columbia,Florida,12023,3,0 +2020-03-31,Columbia,Florida,12023,3,0 +2020-04-01,Columbia,Florida,12023,3,0 +2020-04-02,Columbia,Florida,12023,4,0 +2020-04-03,Columbia,Florida,12023,4,0 +2020-04-04,Columbia,Florida,12023,10,0 +2020-04-05,Columbia,Florida,12023,13,0 +2020-04-06,Columbia,Florida,12023,15,0 +2020-04-07,Columbia,Florida,12023,16,0 +2020-04-08,Columbia,Florida,12023,16,0 +2020-04-09,Columbia,Florida,12023,18,0 +2020-04-10,Columbia,Florida,12023,23,0 +2020-04-11,Columbia,Florida,12023,25,0 +2020-04-12,Columbia,Florida,12023,26,0 +2020-04-13,Columbia,Florida,12023,27,0 +2020-04-14,Columbia,Florida,12023,28,0 +2020-04-15,Columbia,Florida,12023,34,0 +2020-04-16,Columbia,Florida,12023,35,0 +2020-04-17,Columbia,Florida,12023,35,0 +2020-04-18,Columbia,Florida,12023,36,0 +2020-04-19,Columbia,Florida,12023,39,0 +2020-04-20,Columbia,Florida,12023,40,0 +2020-04-21,Columbia,Florida,12023,43,0 +2020-04-22,Columbia,Florida,12023,42,0 +2020-04-23,Columbia,Florida,12023,46,0 +2020-04-24,Columbia,Florida,12023,46,0 +2020-04-25,Columbia,Florida,12023,47,0 +2020-04-26,Columbia,Florida,12023,49,0 +2020-04-27,Columbia,Florida,12023,53,0 +2020-04-28,Columbia,Florida,12023,55,2 +2020-04-29,Columbia,Florida,12023,57,2 +2020-04-30,Columbia,Florida,12023,58,2 +2020-05-01,Columbia,Florida,12023,64,2 +2020-05-02,Columbia,Florida,12023,68,2 +2020-05-03,Columbia,Florida,12023,92,2 +2020-05-04,Columbia,Florida,12023,96,2 +2020-05-05,Columbia,Florida,12023,96,2 +2020-05-06,Columbia,Florida,12023,96,2 +2020-05-07,Columbia,Florida,12023,101,2 +2020-05-08,Columbia,Florida,12023,102,2 +2020-05-09,Columbia,Florida,12023,102,2 +2020-05-10,Columbia,Florida,12023,103,2 +2020-05-11,Columbia,Florida,12023,103,2 +2020-05-12,Columbia,Florida,12023,105,2 +2020-05-13,Columbia,Florida,12023,107,2 +2020-05-14,Columbia,Florida,12023,107,2 +2020-05-15,Columbia,Florida,12023,108,2 +2020-05-16,Columbia,Florida,12023,108,2 +2020-05-17,Columbia,Florida,12023,111,2 +2020-05-18,Columbia,Florida,12023,113,2 +2020-05-19,Columbia,Florida,12023,113,2 +2020-05-20,Columbia,Florida,12023,115,2 +2020-05-21,Columbia,Florida,12023,119,2 +2020-05-22,Columbia,Florida,12023,121,2 +2020-05-23,Columbia,Florida,12023,125,2 +2020-05-24,Columbia,Florida,12023,130,2 +2020-05-25,Columbia,Florida,12023,131,2 +2020-05-26,Columbia,Florida,12023,132,2 +2020-05-27,Columbia,Florida,12023,135,2 +2020-05-28,Columbia,Florida,12023,136,2 +2020-05-29,Columbia,Florida,12023,140,2 +2020-05-30,Columbia,Florida,12023,144,2 +2020-05-31,Columbia,Florida,12023,144,2 +2020-06-01,Columbia,Florida,12023,148,2 +2020-06-02,Columbia,Florida,12023,147,2 +2020-06-03,Columbia,Florida,12023,153,2 +2020-06-04,Columbia,Florida,12023,160,2 +2020-06-05,Columbia,Florida,12023,167,2 +2020-06-06,Columbia,Florida,12023,171,2 +2020-06-07,Columbia,Florida,12023,171,2 +2020-06-08,Columbia,Florida,12023,171,2 +2020-06-09,Columbia,Florida,12023,174,2 +2020-06-10,Columbia,Florida,12023,175,2 +2020-06-11,Columbia,Florida,12023,177,2 +2020-06-12,Columbia,Florida,12023,177,2 +2020-06-13,Columbia,Florida,12023,177,2 +2020-06-14,Columbia,Florida,12023,182,2 +2020-06-15,Columbia,Florida,12023,183,2 +2020-06-16,Columbia,Florida,12023,187,2 +2020-06-17,Columbia,Florida,12023,202,3 +2020-06-18,Columbia,Florida,12023,205,3 +2020-06-19,Columbia,Florida,12023,205,3 +2020-06-20,Columbia,Florida,12023,219,3 +2020-06-21,Columbia,Florida,12023,227,3 +2020-06-22,Columbia,Florida,12023,232,3 +2020-06-23,Columbia,Florida,12023,233,3 +2020-06-24,Columbia,Florida,12023,243,3 +2020-06-25,Columbia,Florida,12023,246,3 +2020-06-26,Columbia,Florida,12023,250,3 +2020-06-27,Columbia,Florida,12023,261,3 +2020-06-28,Columbia,Florida,12023,269,3 +2020-06-29,Columbia,Florida,12023,281,3 +2020-06-30,Columbia,Florida,12023,287,3 +2020-07-01,Columbia,Florida,12023,296,3 +2020-07-02,Columbia,Florida,12023,316,3 +2020-07-03,Columbia,Florida,12023,331,3 +2020-07-04,Columbia,Florida,12023,348,3 +2020-07-05,Columbia,Florida,12023,361,3 +2020-07-06,Columbia,Florida,12023,364,4 +2020-07-07,Columbia,Florida,12023,377,4 +2020-07-08,Columbia,Florida,12023,392,4 +2020-07-09,Columbia,Florida,12023,421,4 +2020-03-22,DeSoto,Florida,12027,1,0 +2020-03-23,DeSoto,Florida,12027,1,0 +2020-03-24,DeSoto,Florida,12027,1,0 +2020-03-25,DeSoto,Florida,12027,4,0 +2020-03-26,DeSoto,Florida,12027,5,0 +2020-03-27,DeSoto,Florida,12027,6,0 +2020-03-28,DeSoto,Florida,12027,7,0 +2020-03-29,DeSoto,Florida,12027,7,0 +2020-03-30,DeSoto,Florida,12027,7,2 +2020-03-31,DeSoto,Florida,12027,7,1 +2020-04-01,DeSoto,Florida,12027,7,1 +2020-04-02,DeSoto,Florida,12027,8,1 +2020-04-03,DeSoto,Florida,12027,9,1 +2020-04-04,DeSoto,Florida,12027,11,1 +2020-04-05,DeSoto,Florida,12027,12,2 +2020-04-06,DeSoto,Florida,12027,14,3 +2020-04-07,DeSoto,Florida,12027,16,3 +2020-04-08,DeSoto,Florida,12027,19,3 +2020-04-09,DeSoto,Florida,12027,20,3 +2020-04-10,DeSoto,Florida,12027,20,3 +2020-04-11,DeSoto,Florida,12027,20,3 +2020-04-12,DeSoto,Florida,12027,20,3 +2020-04-13,DeSoto,Florida,12027,22,3 +2020-04-14,DeSoto,Florida,12027,22,3 +2020-04-15,DeSoto,Florida,12027,22,3 +2020-04-16,DeSoto,Florida,12027,22,3 +2020-04-17,DeSoto,Florida,12027,23,3 +2020-04-18,DeSoto,Florida,12027,23,4 +2020-04-19,DeSoto,Florida,12027,24,4 +2020-04-20,DeSoto,Florida,12027,24,4 +2020-04-21,DeSoto,Florida,12027,24,4 +2020-04-22,DeSoto,Florida,12027,24,4 +2020-04-23,DeSoto,Florida,12027,24,4 +2020-04-24,DeSoto,Florida,12027,24,4 +2020-04-25,DeSoto,Florida,12027,24,4 +2020-04-26,DeSoto,Florida,12027,24,4 +2020-04-27,DeSoto,Florida,12027,25,4 +2020-04-28,DeSoto,Florida,12027,26,4 +2020-04-29,DeSoto,Florida,12027,28,4 +2020-04-30,DeSoto,Florida,12027,29,4 +2020-05-01,DeSoto,Florida,12027,30,4 +2020-05-02,DeSoto,Florida,12027,31,4 +2020-05-03,DeSoto,Florida,12027,32,4 +2020-05-04,DeSoto,Florida,12027,39,4 +2020-05-05,DeSoto,Florida,12027,40,4 +2020-05-06,DeSoto,Florida,12027,42,4 +2020-05-07,DeSoto,Florida,12027,42,5 +2020-05-08,DeSoto,Florida,12027,42,5 +2020-05-09,DeSoto,Florida,12027,47,5 +2020-05-10,DeSoto,Florida,12027,47,5 +2020-05-11,DeSoto,Florida,12027,51,5 +2020-05-12,DeSoto,Florida,12027,52,6 +2020-05-13,DeSoto,Florida,12027,52,6 +2020-05-14,DeSoto,Florida,12027,58,6 +2020-05-15,DeSoto,Florida,12027,61,6 +2020-05-16,DeSoto,Florida,12027,61,6 +2020-05-17,DeSoto,Florida,12027,66,7 +2020-05-18,DeSoto,Florida,12027,68,7 +2020-05-19,DeSoto,Florida,12027,69,7 +2020-05-20,DeSoto,Florida,12027,80,7 +2020-05-21,DeSoto,Florida,12027,94,7 +2020-05-22,DeSoto,Florida,12027,97,8 +2020-05-23,DeSoto,Florida,12027,112,8 +2020-05-24,DeSoto,Florida,12027,115,8 +2020-05-25,DeSoto,Florida,12027,117,8 +2020-05-26,DeSoto,Florida,12027,121,8 +2020-05-27,DeSoto,Florida,12027,124,8 +2020-05-28,DeSoto,Florida,12027,132,8 +2020-05-29,DeSoto,Florida,12027,171,8 +2020-05-30,DeSoto,Florida,12027,173,7 +2020-05-31,DeSoto,Florida,12027,182,7 +2020-06-01,DeSoto,Florida,12027,182,7 +2020-06-02,DeSoto,Florida,12027,197,7 +2020-06-03,DeSoto,Florida,12027,205,7 +2020-06-04,DeSoto,Florida,12027,218,7 +2020-06-05,DeSoto,Florida,12027,245,7 +2020-06-06,DeSoto,Florida,12027,258,7 +2020-06-07,DeSoto,Florida,12027,268,7 +2020-06-08,DeSoto,Florida,12027,284,7 +2020-06-09,DeSoto,Florida,12027,296,7 +2020-06-10,DeSoto,Florida,12027,299,8 +2020-06-11,DeSoto,Florida,12027,304,10 +2020-06-12,DeSoto,Florida,12027,329,10 +2020-06-13,DeSoto,Florida,12027,348,10 +2020-06-14,DeSoto,Florida,12027,361,10 +2020-06-15,DeSoto,Florida,12027,387,10 +2020-06-16,DeSoto,Florida,12027,402,10 +2020-06-17,DeSoto,Florida,12027,406,10 +2020-06-18,DeSoto,Florida,12027,412,10 +2020-06-19,DeSoto,Florida,12027,431,10 +2020-06-20,DeSoto,Florida,12027,439,10 +2020-06-21,DeSoto,Florida,12027,450,10 +2020-06-22,DeSoto,Florida,12027,468,10 +2020-06-23,DeSoto,Florida,12027,487,10 +2020-06-24,DeSoto,Florida,12027,513,10 +2020-06-25,DeSoto,Florida,12027,521,10 +2020-06-26,DeSoto,Florida,12027,539,10 +2020-06-27,DeSoto,Florida,12027,574,10 +2020-06-28,DeSoto,Florida,12027,585,10 +2020-06-29,DeSoto,Florida,12027,600,10 +2020-06-30,DeSoto,Florida,12027,604,10 +2020-07-01,DeSoto,Florida,12027,634,10 +2020-07-02,DeSoto,Florida,12027,661,10 +2020-07-03,DeSoto,Florida,12027,676,10 +2020-07-04,DeSoto,Florida,12027,733,10 +2020-07-05,DeSoto,Florida,12027,748,10 +2020-07-06,DeSoto,Florida,12027,752,10 +2020-07-07,DeSoto,Florida,12027,760,10 +2020-07-08,DeSoto,Florida,12027,775,10 +2020-07-09,DeSoto,Florida,12027,799,11 +2020-04-04,Dixie,Florida,12029,1,0 +2020-04-05,Dixie,Florida,12029,1,0 +2020-04-06,Dixie,Florida,12029,1,0 +2020-04-07,Dixie,Florida,12029,1,0 +2020-04-08,Dixie,Florida,12029,1,0 +2020-04-09,Dixie,Florida,12029,1,0 +2020-04-10,Dixie,Florida,12029,1,0 +2020-04-11,Dixie,Florida,12029,2,0 +2020-04-12,Dixie,Florida,12029,2,0 +2020-04-13,Dixie,Florida,12029,2,0 +2020-04-14,Dixie,Florida,12029,2,0 +2020-04-15,Dixie,Florida,12029,3,0 +2020-04-16,Dixie,Florida,12029,3,0 +2020-04-17,Dixie,Florida,12029,3,0 +2020-04-18,Dixie,Florida,12029,3,0 +2020-04-19,Dixie,Florida,12029,3,0 +2020-04-20,Dixie,Florida,12029,4,0 +2020-04-21,Dixie,Florida,12029,4,0 +2020-04-22,Dixie,Florida,12029,4,0 +2020-04-23,Dixie,Florida,12029,4,0 +2020-04-24,Dixie,Florida,12029,5,0 +2020-04-25,Dixie,Florida,12029,6,0 +2020-04-26,Dixie,Florida,12029,5,0 +2020-04-27,Dixie,Florida,12029,5,0 +2020-04-28,Dixie,Florida,12029,6,0 +2020-04-29,Dixie,Florida,12029,6,0 +2020-04-30,Dixie,Florida,12029,7,0 +2020-05-01,Dixie,Florida,12029,7,0 +2020-05-02,Dixie,Florida,12029,7,0 +2020-05-03,Dixie,Florida,12029,9,0 +2020-05-04,Dixie,Florida,12029,10,0 +2020-05-05,Dixie,Florida,12029,10,0 +2020-05-06,Dixie,Florida,12029,10,0 +2020-05-07,Dixie,Florida,12029,11,0 +2020-05-08,Dixie,Florida,12029,12,0 +2020-05-09,Dixie,Florida,12029,13,0 +2020-05-10,Dixie,Florida,12029,13,0 +2020-05-11,Dixie,Florida,12029,13,0 +2020-05-12,Dixie,Florida,12029,14,0 +2020-05-13,Dixie,Florida,12029,15,0 +2020-05-14,Dixie,Florida,12029,18,0 +2020-05-15,Dixie,Florida,12029,22,0 +2020-05-16,Dixie,Florida,12029,22,0 +2020-05-17,Dixie,Florida,12029,22,0 +2020-05-18,Dixie,Florida,12029,25,0 +2020-05-19,Dixie,Florida,12029,26,1 +2020-05-20,Dixie,Florida,12029,26,1 +2020-05-21,Dixie,Florida,12029,31,1 +2020-05-22,Dixie,Florida,12029,33,1 +2020-05-23,Dixie,Florida,12029,38,1 +2020-05-24,Dixie,Florida,12029,41,1 +2020-05-25,Dixie,Florida,12029,43,1 +2020-05-26,Dixie,Florida,12029,44,1 +2020-05-27,Dixie,Florida,12029,46,1 +2020-05-28,Dixie,Florida,12029,46,2 +2020-05-29,Dixie,Florida,12029,49,2 +2020-05-30,Dixie,Florida,12029,49,2 +2020-05-31,Dixie,Florida,12029,51,2 +2020-06-01,Dixie,Florida,12029,54,2 +2020-06-02,Dixie,Florida,12029,54,2 +2020-06-03,Dixie,Florida,12029,55,2 +2020-06-04,Dixie,Florida,12029,56,2 +2020-06-05,Dixie,Florida,12029,58,2 +2020-06-06,Dixie,Florida,12029,58,2 +2020-06-07,Dixie,Florida,12029,58,2 +2020-06-08,Dixie,Florida,12029,60,2 +2020-06-09,Dixie,Florida,12029,60,2 +2020-06-10,Dixie,Florida,12029,60,2 +2020-06-11,Dixie,Florida,12029,60,3 +2020-06-12,Dixie,Florida,12029,60,3 +2020-06-13,Dixie,Florida,12029,60,3 +2020-06-14,Dixie,Florida,12029,60,3 +2020-06-15,Dixie,Florida,12029,60,3 +2020-06-16,Dixie,Florida,12029,60,3 +2020-06-17,Dixie,Florida,12029,60,3 +2020-06-18,Dixie,Florida,12029,60,3 +2020-06-19,Dixie,Florida,12029,61,3 +2020-06-20,Dixie,Florida,12029,61,3 +2020-06-21,Dixie,Florida,12029,61,3 +2020-06-22,Dixie,Florida,12029,61,3 +2020-06-23,Dixie,Florida,12029,62,3 +2020-06-24,Dixie,Florida,12029,62,3 +2020-06-25,Dixie,Florida,12029,63,4 +2020-06-26,Dixie,Florida,12029,63,4 +2020-06-27,Dixie,Florida,12029,65,4 +2020-06-28,Dixie,Florida,12029,65,4 +2020-06-29,Dixie,Florida,12029,65,4 +2020-06-30,Dixie,Florida,12029,68,4 +2020-07-01,Dixie,Florida,12029,69,4 +2020-07-02,Dixie,Florida,12029,69,4 +2020-07-03,Dixie,Florida,12029,72,4 +2020-07-04,Dixie,Florida,12029,75,4 +2020-07-05,Dixie,Florida,12029,78,4 +2020-07-06,Dixie,Florida,12029,80,4 +2020-07-07,Dixie,Florida,12029,84,4 +2020-07-08,Dixie,Florida,12029,90,4 +2020-07-09,Dixie,Florida,12029,95,4 +2020-03-12,Duval,Florida,12031,1,0 +2020-03-13,Duval,Florida,12031,1,0 +2020-03-14,Duval,Florida,12031,1,0 +2020-03-15,Duval,Florida,12031,4,0 +2020-03-16,Duval,Florida,12031,5,0 +2020-03-17,Duval,Florida,12031,10,0 +2020-03-18,Duval,Florida,12031,14,0 +2020-03-19,Duval,Florida,12031,15,1 +2020-03-20,Duval,Florida,12031,17,1 +2020-03-21,Duval,Florida,12031,25,2 +2020-03-22,Duval,Florida,12031,39,2 +2020-03-23,Duval,Florida,12031,50,3 +2020-03-24,Duval,Florida,12031,50,3 +2020-03-25,Duval,Florida,12031,60,3 +2020-03-26,Duval,Florida,12031,82,3 +2020-03-27,Duval,Florida,12031,99,3 +2020-03-28,Duval,Florida,12031,120,3 +2020-03-29,Duval,Florida,12031,142,3 +2020-03-30,Duval,Florida,12031,163,4 +2020-03-31,Duval,Florida,12031,207,4 +2020-04-01,Duval,Florida,12031,239,4 +2020-04-02,Duval,Florida,12031,286,9 +2020-04-03,Duval,Florida,12031,323,9 +2020-04-04,Duval,Florida,12031,387,9 +2020-04-05,Duval,Florida,12031,413,9 +2020-04-06,Duval,Florida,12031,478,9 +2020-04-07,Duval,Florida,12031,521,10 +2020-04-08,Duval,Florida,12031,557,10 +2020-04-09,Duval,Florida,12031,595,11 +2020-04-10,Duval,Florida,12031,618,11 +2020-04-11,Duval,Florida,12031,639,13 +2020-04-12,Duval,Florida,12031,668,13 +2020-04-13,Duval,Florida,12031,691,13 +2020-04-14,Duval,Florida,12031,718,14 +2020-04-15,Duval,Florida,12031,746,14 +2020-04-16,Duval,Florida,12031,776,14 +2020-04-17,Duval,Florida,12031,817,15 +2020-04-18,Duval,Florida,12031,835,15 +2020-04-19,Duval,Florida,12031,854,15 +2020-04-20,Duval,Florida,12031,896,16 +2020-04-21,Duval,Florida,12031,909,17 +2020-04-22,Duval,Florida,12031,925,17 +2020-04-23,Duval,Florida,12031,956,17 +2020-04-24,Duval,Florida,12031,955,18 +2020-04-25,Duval,Florida,12031,965,18 +2020-04-26,Duval,Florida,12031,984,18 +2020-04-27,Duval,Florida,12031,990,19 +2020-04-28,Duval,Florida,12031,1001,20 +2020-04-29,Duval,Florida,12031,1007,20 +2020-04-30,Duval,Florida,12031,1012,20 +2020-05-01,Duval,Florida,12031,1025,22 +2020-05-02,Duval,Florida,12031,1038,23 +2020-05-03,Duval,Florida,12031,1045,24 +2020-05-04,Duval,Florida,12031,1072,26 +2020-05-05,Duval,Florida,12031,1084,26 +2020-05-06,Duval,Florida,12031,1077,26 +2020-05-07,Duval,Florida,12031,1083,28 +2020-05-08,Duval,Florida,12031,1088,29 +2020-05-09,Duval,Florida,12031,1134,29 +2020-05-10,Duval,Florida,12031,1164,29 +2020-05-11,Duval,Florida,12031,1171,29 +2020-05-12,Duval,Florida,12031,1186,29 +2020-05-13,Duval,Florida,12031,1199,32 +2020-05-14,Duval,Florida,12031,1215,32 +2020-05-15,Duval,Florida,12031,1252,32 +2020-05-16,Duval,Florida,12031,1259,34 +2020-05-17,Duval,Florida,12031,1284,35 +2020-05-18,Duval,Florida,12031,1300,35 +2020-05-19,Duval,Florida,12031,1318,36 +2020-05-20,Duval,Florida,12031,1336,36 +2020-05-21,Duval,Florida,12031,1355,37 +2020-05-22,Duval,Florida,12031,1376,41 +2020-05-23,Duval,Florida,12031,1406,41 +2020-05-24,Duval,Florida,12031,1439,41 +2020-05-25,Duval,Florida,12031,1467,43 +2020-05-26,Duval,Florida,12031,1484,44 +2020-05-27,Duval,Florida,12031,1507,46 +2020-05-28,Duval,Florida,12031,1523,46 +2020-05-29,Duval,Florida,12031,1561,47 +2020-05-30,Duval,Florida,12031,1608,48 +2020-05-31,Duval,Florida,12031,1644,50 +2020-06-01,Duval,Florida,12031,1654,51 +2020-06-02,Duval,Florida,12031,1660,51 +2020-06-03,Duval,Florida,12031,1669,51 +2020-06-04,Duval,Florida,12031,1702,51 +2020-06-05,Duval,Florida,12031,1736,52 +2020-06-06,Duval,Florida,12031,1764,53 +2020-06-07,Duval,Florida,12031,1792,54 +2020-06-08,Duval,Florida,12031,1806,55 +2020-06-09,Duval,Florida,12031,1824,54 +2020-06-10,Duval,Florida,12031,1848,55 +2020-06-11,Duval,Florida,12031,1893,57 +2020-06-12,Duval,Florida,12031,1923,57 +2020-06-13,Duval,Florida,12031,1961,57 +2020-06-14,Duval,Florida,12031,1990,57 +2020-06-15,Duval,Florida,12031,2032,57 +2020-06-16,Duval,Florida,12031,2112,59 +2020-06-17,Duval,Florida,12031,2194,59 +2020-06-18,Duval,Florida,12031,2309,60 +2020-06-19,Duval,Florida,12031,2484,60 +2020-06-20,Duval,Florida,12031,2695,60 +2020-06-21,Duval,Florida,12031,2902,60 +2020-06-22,Duval,Florida,12031,3085,60 +2020-06-23,Duval,Florida,12031,3202,62 +2020-06-24,Duval,Florida,12031,3419,62 +2020-06-25,Duval,Florida,12031,3724,64 +2020-06-26,Duval,Florida,12031,4171,64 +2020-06-27,Duval,Florida,12031,4848,64 +2020-06-28,Duval,Florida,12031,5588,64 +2020-06-29,Duval,Florida,12031,5839,64 +2020-06-30,Duval,Florida,12031,6207,64 +2020-07-01,Duval,Florida,12031,6480,67 +2020-07-02,Duval,Florida,12031,7247,68 +2020-07-03,Duval,Florida,12031,7961,68 +2020-07-04,Duval,Florida,12031,8614,68 +2020-07-05,Duval,Florida,12031,9146,68 +2020-07-06,Duval,Florida,12031,9487,68 +2020-07-07,Duval,Florida,12031,9835,70 +2020-07-08,Duval,Florida,12031,10439,70 +2020-07-09,Duval,Florida,12031,11028,74 +2020-03-16,Escambia,Florida,12033,1,0 +2020-03-17,Escambia,Florida,12033,1,0 +2020-03-18,Escambia,Florida,12033,1,0 +2020-03-19,Escambia,Florida,12033,1,0 +2020-03-20,Escambia,Florida,12033,1,0 +2020-03-21,Escambia,Florida,12033,1,0 +2020-03-22,Escambia,Florida,12033,4,0 +2020-03-23,Escambia,Florida,12033,9,0 +2020-03-24,Escambia,Florida,12033,13,0 +2020-03-25,Escambia,Florida,12033,17,0 +2020-03-26,Escambia,Florida,12033,20,0 +2020-03-27,Escambia,Florida,12033,28,0 +2020-03-28,Escambia,Florida,12033,28,0 +2020-03-29,Escambia,Florida,12033,37,0 +2020-03-30,Escambia,Florida,12033,81,0 +2020-03-31,Escambia,Florida,12033,94,0 +2020-04-01,Escambia,Florida,12033,96,0 +2020-04-02,Escambia,Florida,12033,101,0 +2020-04-03,Escambia,Florida,12033,113,0 +2020-04-04,Escambia,Florida,12033,118,1 +2020-04-05,Escambia,Florida,12033,125,1 +2020-04-06,Escambia,Florida,12033,141,1 +2020-04-07,Escambia,Florida,12033,168,2 +2020-04-08,Escambia,Florida,12033,182,3 +2020-04-09,Escambia,Florida,12033,192,3 +2020-04-10,Escambia,Florida,12033,204,3 +2020-04-11,Escambia,Florida,12033,210,3 +2020-04-12,Escambia,Florida,12033,224,3 +2020-04-13,Escambia,Florida,12033,241,3 +2020-04-14,Escambia,Florida,12033,247,4 +2020-04-15,Escambia,Florida,12033,261,4 +2020-04-16,Escambia,Florida,12033,277,4 +2020-04-17,Escambia,Florida,12033,290,6 +2020-04-18,Escambia,Florida,12033,304,8 +2020-04-19,Escambia,Florida,12033,309,8 +2020-04-20,Escambia,Florida,12033,315,8 +2020-04-21,Escambia,Florida,12033,340,10 +2020-04-22,Escambia,Florida,12033,418,10 +2020-04-23,Escambia,Florida,12033,420,10 +2020-04-24,Escambia,Florida,12033,434,11 +2020-04-25,Escambia,Florida,12033,442,11 +2020-04-26,Escambia,Florida,12033,457,11 +2020-04-27,Escambia,Florida,12033,470,11 +2020-04-28,Escambia,Florida,12033,485,11 +2020-04-29,Escambia,Florida,12033,496,11 +2020-04-30,Escambia,Florida,12033,506,11 +2020-05-01,Escambia,Florida,12033,532,12 +2020-05-02,Escambia,Florida,12033,538,13 +2020-05-03,Escambia,Florida,12033,593,13 +2020-05-04,Escambia,Florida,12033,595,13 +2020-05-05,Escambia,Florida,12033,598,14 +2020-05-06,Escambia,Florida,12033,604,15 +2020-05-07,Escambia,Florida,12033,616,16 +2020-05-08,Escambia,Florida,12033,618,18 +2020-05-09,Escambia,Florida,12033,634,18 +2020-05-10,Escambia,Florida,12033,638,18 +2020-05-11,Escambia,Florida,12033,641,18 +2020-05-12,Escambia,Florida,12033,659,19 +2020-05-13,Escambia,Florida,12033,665,19 +2020-05-14,Escambia,Florida,12033,671,19 +2020-05-15,Escambia,Florida,12033,682,20 +2020-05-16,Escambia,Florida,12033,682,20 +2020-05-17,Escambia,Florida,12033,689,20 +2020-05-18,Escambia,Florida,12033,707,20 +2020-05-19,Escambia,Florida,12033,719,21 +2020-05-20,Escambia,Florida,12033,723,21 +2020-05-21,Escambia,Florida,12033,734,24 +2020-05-22,Escambia,Florida,12033,740,25 +2020-05-23,Escambia,Florida,12033,749,26 +2020-05-24,Escambia,Florida,12033,756,26 +2020-05-25,Escambia,Florida,12033,768,26 +2020-05-26,Escambia,Florida,12033,769,26 +2020-05-27,Escambia,Florida,12033,776,29 +2020-05-28,Escambia,Florida,12033,784,29 +2020-05-29,Escambia,Florida,12033,791,33 +2020-05-30,Escambia,Florida,12033,810,33 +2020-05-31,Escambia,Florida,12033,815,33 +2020-06-01,Escambia,Florida,12033,828,33 +2020-06-02,Escambia,Florida,12033,844,34 +2020-06-03,Escambia,Florida,12033,853,35 +2020-06-04,Escambia,Florida,12033,866,35 +2020-06-05,Escambia,Florida,12033,871,36 +2020-06-06,Escambia,Florida,12033,879,36 +2020-06-07,Escambia,Florida,12033,888,36 +2020-06-08,Escambia,Florida,12033,891,36 +2020-06-09,Escambia,Florida,12033,907,36 +2020-06-10,Escambia,Florida,12033,915,36 +2020-06-11,Escambia,Florida,12033,944,37 +2020-06-12,Escambia,Florida,12033,956,37 +2020-06-13,Escambia,Florida,12033,961,38 +2020-06-14,Escambia,Florida,12033,985,38 +2020-06-15,Escambia,Florida,12033,999,38 +2020-06-16,Escambia,Florida,12033,1020,38 +2020-06-17,Escambia,Florida,12033,1052,38 +2020-06-18,Escambia,Florida,12033,1089,40 +2020-06-19,Escambia,Florida,12033,1127,41 +2020-06-20,Escambia,Florida,12033,1170,41 +2020-06-21,Escambia,Florida,12033,1198,41 +2020-06-22,Escambia,Florida,12033,1202,41 +2020-06-23,Escambia,Florida,12033,1244,43 +2020-06-24,Escambia,Florida,12033,1312,43 +2020-06-25,Escambia,Florida,12033,1404,43 +2020-06-26,Escambia,Florida,12033,1559,44 +2020-06-27,Escambia,Florida,12033,1611,44 +2020-06-28,Escambia,Florida,12033,1660,44 +2020-06-29,Escambia,Florida,12033,1702,44 +2020-06-30,Escambia,Florida,12033,1952,45 +2020-07-01,Escambia,Florida,12033,2046,44 +2020-07-02,Escambia,Florida,12033,2240,45 +2020-07-03,Escambia,Florida,12033,2397,46 +2020-07-04,Escambia,Florida,12033,2597,47 +2020-07-05,Escambia,Florida,12033,2809,47 +2020-07-06,Escambia,Florida,12033,2942,47 +2020-07-07,Escambia,Florida,12033,3059,48 +2020-07-08,Escambia,Florida,12033,3188,51 +2020-07-09,Escambia,Florida,12033,3332,52 +2020-03-22,Flagler,Florida,12035,1,0 +2020-03-23,Flagler,Florida,12035,3,0 +2020-03-24,Flagler,Florida,12035,4,0 +2020-03-25,Flagler,Florida,12035,6,0 +2020-03-26,Flagler,Florida,12035,8,0 +2020-03-27,Flagler,Florida,12035,12,0 +2020-03-28,Flagler,Florida,12035,13,0 +2020-03-29,Flagler,Florida,12035,13,0 +2020-03-30,Flagler,Florida,12035,15,0 +2020-03-31,Flagler,Florida,12035,18,0 +2020-04-01,Flagler,Florida,12035,24,0 +2020-04-02,Flagler,Florida,12035,25,1 +2020-04-03,Flagler,Florida,12035,28,1 +2020-04-04,Flagler,Florida,12035,29,1 +2020-04-05,Flagler,Florida,12035,31,1 +2020-04-06,Flagler,Florida,12035,34,1 +2020-04-07,Flagler,Florida,12035,35,1 +2020-04-08,Flagler,Florida,12035,36,1 +2020-04-09,Flagler,Florida,12035,41,1 +2020-04-10,Flagler,Florida,12035,44,1 +2020-04-11,Flagler,Florida,12035,46,1 +2020-04-12,Flagler,Florida,12035,45,2 +2020-04-13,Flagler,Florida,12035,45,2 +2020-04-14,Flagler,Florida,12035,45,2 +2020-04-15,Flagler,Florida,12035,46,2 +2020-04-16,Flagler,Florida,12035,50,2 +2020-04-17,Flagler,Florida,12035,55,2 +2020-04-18,Flagler,Florida,12035,66,2 +2020-04-19,Flagler,Florida,12035,75,2 +2020-04-20,Flagler,Florida,12035,76,2 +2020-04-21,Flagler,Florida,12035,78,2 +2020-04-22,Flagler,Florida,12035,78,2 +2020-04-23,Flagler,Florida,12035,106,2 +2020-04-24,Flagler,Florida,12035,106,2 +2020-04-25,Flagler,Florida,12035,116,2 +2020-04-26,Flagler,Florida,12035,121,2 +2020-04-27,Flagler,Florida,12035,127,2 +2020-04-28,Flagler,Florida,12035,131,2 +2020-04-29,Flagler,Florida,12035,133,2 +2020-04-30,Flagler,Florida,12035,133,2 +2020-05-01,Flagler,Florida,12035,134,2 +2020-05-02,Flagler,Florida,12035,138,3 +2020-05-03,Flagler,Florida,12035,140,3 +2020-05-04,Flagler,Florida,12035,140,3 +2020-05-05,Flagler,Florida,12035,141,4 +2020-05-06,Flagler,Florida,12035,142,4 +2020-05-07,Flagler,Florida,12035,145,4 +2020-05-08,Flagler,Florida,12035,147,3 +2020-05-09,Flagler,Florida,12035,147,4 +2020-05-10,Flagler,Florida,12035,147,4 +2020-05-11,Flagler,Florida,12035,147,4 +2020-05-12,Flagler,Florida,12035,147,4 +2020-05-13,Flagler,Florida,12035,148,4 +2020-05-14,Flagler,Florida,12035,148,4 +2020-05-15,Flagler,Florida,12035,153,4 +2020-05-16,Flagler,Florida,12035,156,4 +2020-05-17,Flagler,Florida,12035,156,4 +2020-05-18,Flagler,Florida,12035,160,4 +2020-05-19,Flagler,Florida,12035,167,4 +2020-05-20,Flagler,Florida,12035,169,4 +2020-05-21,Flagler,Florida,12035,172,4 +2020-05-22,Flagler,Florida,12035,173,4 +2020-05-23,Flagler,Florida,12035,173,4 +2020-05-24,Flagler,Florida,12035,177,4 +2020-05-25,Flagler,Florida,12035,177,4 +2020-05-26,Flagler,Florida,12035,177,4 +2020-05-27,Flagler,Florida,12035,178,4 +2020-05-28,Flagler,Florida,12035,179,4 +2020-05-29,Flagler,Florida,12035,182,4 +2020-05-30,Flagler,Florida,12035,185,4 +2020-05-31,Flagler,Florida,12035,189,4 +2020-06-01,Flagler,Florida,12035,189,4 +2020-06-02,Flagler,Florida,12035,190,4 +2020-06-03,Flagler,Florida,12035,191,4 +2020-06-04,Flagler,Florida,12035,193,4 +2020-06-05,Flagler,Florida,12035,195,4 +2020-06-06,Flagler,Florida,12035,195,4 +2020-06-07,Flagler,Florida,12035,195,4 +2020-06-08,Flagler,Florida,12035,195,4 +2020-06-09,Flagler,Florida,12035,195,4 +2020-06-10,Flagler,Florida,12035,200,4 +2020-06-11,Flagler,Florida,12035,201,4 +2020-06-12,Flagler,Florida,12035,202,5 +2020-06-13,Flagler,Florida,12035,204,5 +2020-06-14,Flagler,Florida,12035,207,5 +2020-06-15,Flagler,Florida,12035,207,5 +2020-06-16,Flagler,Florida,12035,208,5 +2020-06-17,Flagler,Florida,12035,214,5 +2020-06-18,Flagler,Florida,12035,216,5 +2020-06-19,Flagler,Florida,12035,216,5 +2020-06-20,Flagler,Florida,12035,224,5 +2020-06-21,Flagler,Florida,12035,226,5 +2020-06-22,Flagler,Florida,12035,237,5 +2020-06-23,Flagler,Florida,12035,244,5 +2020-06-24,Flagler,Florida,12035,250,5 +2020-06-25,Flagler,Florida,12035,261,5 +2020-06-26,Flagler,Florida,12035,274,5 +2020-06-27,Flagler,Florida,12035,279,5 +2020-06-28,Flagler,Florida,12035,293,5 +2020-06-29,Flagler,Florida,12035,302,5 +2020-06-30,Flagler,Florida,12035,310,5 +2020-07-01,Flagler,Florida,12035,323,5 +2020-07-02,Flagler,Florida,12035,340,5 +2020-07-03,Flagler,Florida,12035,359,5 +2020-07-04,Flagler,Florida,12035,369,5 +2020-07-05,Flagler,Florida,12035,383,5 +2020-07-06,Flagler,Florida,12035,392,5 +2020-07-07,Flagler,Florida,12035,410,5 +2020-07-08,Flagler,Florida,12035,424,5 +2020-07-09,Flagler,Florida,12035,434,5 +2020-04-03,Franklin,Florida,12037,1,0 +2020-04-04,Franklin,Florida,12037,1,0 +2020-04-05,Franklin,Florida,12037,2,0 +2020-04-06,Franklin,Florida,12037,2,0 +2020-04-07,Franklin,Florida,12037,2,0 +2020-04-08,Franklin,Florida,12037,2,0 +2020-04-09,Franklin,Florida,12037,2,0 +2020-04-10,Franklin,Florida,12037,2,0 +2020-04-11,Franklin,Florida,12037,2,0 +2020-04-12,Franklin,Florida,12037,2,0 +2020-04-13,Franklin,Florida,12037,2,0 +2020-04-14,Franklin,Florida,12037,2,0 +2020-04-15,Franklin,Florida,12037,2,0 +2020-04-16,Franklin,Florida,12037,2,0 +2020-04-17,Franklin,Florida,12037,2,0 +2020-04-18,Franklin,Florida,12037,2,0 +2020-04-19,Franklin,Florida,12037,2,0 +2020-04-20,Franklin,Florida,12037,2,0 +2020-04-21,Franklin,Florida,12037,2,0 +2020-04-22,Franklin,Florida,12037,2,0 +2020-04-23,Franklin,Florida,12037,2,0 +2020-04-24,Franklin,Florida,12037,2,0 +2020-04-25,Franklin,Florida,12037,2,0 +2020-04-26,Franklin,Florida,12037,2,0 +2020-04-27,Franklin,Florida,12037,2,0 +2020-04-28,Franklin,Florida,12037,2,0 +2020-04-29,Franklin,Florida,12037,2,0 +2020-04-30,Franklin,Florida,12037,2,0 +2020-05-01,Franklin,Florida,12037,2,0 +2020-05-02,Franklin,Florida,12037,2,0 +2020-05-03,Franklin,Florida,12037,2,0 +2020-05-04,Franklin,Florida,12037,2,0 +2020-05-05,Franklin,Florida,12037,2,0 +2020-05-06,Franklin,Florida,12037,2,0 +2020-05-07,Franklin,Florida,12037,2,0 +2020-05-08,Franklin,Florida,12037,2,0 +2020-05-09,Franklin,Florida,12037,2,0 +2020-05-10,Franklin,Florida,12037,2,0 +2020-05-11,Franklin,Florida,12037,2,0 +2020-05-12,Franklin,Florida,12037,2,0 +2020-05-13,Franklin,Florida,12037,2,0 +2020-05-14,Franklin,Florida,12037,2,0 +2020-05-15,Franklin,Florida,12037,2,0 +2020-05-16,Franklin,Florida,12037,2,0 +2020-05-17,Franklin,Florida,12037,2,0 +2020-05-18,Franklin,Florida,12037,2,0 +2020-05-19,Franklin,Florida,12037,2,0 +2020-05-20,Franklin,Florida,12037,2,0 +2020-05-21,Franklin,Florida,12037,2,0 +2020-05-22,Franklin,Florida,12037,2,0 +2020-05-23,Franklin,Florida,12037,2,0 +2020-05-24,Franklin,Florida,12037,2,0 +2020-05-25,Franklin,Florida,12037,2,0 +2020-05-26,Franklin,Florida,12037,2,0 +2020-05-27,Franklin,Florida,12037,2,0 +2020-05-28,Franklin,Florida,12037,2,0 +2020-05-29,Franklin,Florida,12037,2,0 +2020-05-30,Franklin,Florida,12037,2,0 +2020-05-31,Franklin,Florida,12037,2,0 +2020-06-01,Franklin,Florida,12037,2,0 +2020-06-02,Franklin,Florida,12037,2,0 +2020-06-03,Franklin,Florida,12037,2,0 +2020-06-04,Franklin,Florida,12037,2,0 +2020-06-05,Franklin,Florida,12037,2,0 +2020-06-06,Franklin,Florida,12037,2,0 +2020-06-07,Franklin,Florida,12037,2,0 +2020-06-08,Franklin,Florida,12037,2,0 +2020-06-09,Franklin,Florida,12037,2,0 +2020-06-10,Franklin,Florida,12037,2,0 +2020-06-11,Franklin,Florida,12037,2,0 +2020-06-12,Franklin,Florida,12037,2,0 +2020-06-13,Franklin,Florida,12037,3,0 +2020-06-14,Franklin,Florida,12037,2,0 +2020-06-15,Franklin,Florida,12037,2,0 +2020-06-16,Franklin,Florida,12037,2,0 +2020-06-17,Franklin,Florida,12037,2,0 +2020-06-18,Franklin,Florida,12037,2,0 +2020-06-19,Franklin,Florida,12037,2,0 +2020-06-20,Franklin,Florida,12037,2,0 +2020-06-21,Franklin,Florida,12037,2,0 +2020-06-22,Franklin,Florida,12037,4,0 +2020-06-23,Franklin,Florida,12037,4,0 +2020-06-24,Franklin,Florida,12037,4,0 +2020-06-25,Franklin,Florida,12037,4,0 +2020-06-26,Franklin,Florida,12037,6,0 +2020-06-27,Franklin,Florida,12037,6,0 +2020-06-28,Franklin,Florida,12037,6,0 +2020-06-29,Franklin,Florida,12037,6,0 +2020-06-30,Franklin,Florida,12037,6,0 +2020-07-01,Franklin,Florida,12037,6,0 +2020-07-02,Franklin,Florida,12037,9,0 +2020-07-03,Franklin,Florida,12037,11,0 +2020-07-04,Franklin,Florida,12037,11,0 +2020-07-05,Franklin,Florida,12037,15,0 +2020-07-06,Franklin,Florida,12037,15,0 +2020-07-07,Franklin,Florida,12037,15,0 +2020-07-08,Franklin,Florida,12037,19,0 +2020-07-09,Franklin,Florida,12037,24,0 +2020-03-25,Gadsden,Florida,12039,1,0 +2020-03-26,Gadsden,Florida,12039,1,0 +2020-03-27,Gadsden,Florida,12039,1,0 +2020-03-28,Gadsden,Florida,12039,1,0 +2020-03-29,Gadsden,Florida,12039,1,0 +2020-03-30,Gadsden,Florida,12039,1,0 +2020-03-31,Gadsden,Florida,12039,1,0 +2020-04-01,Gadsden,Florida,12039,1,0 +2020-04-02,Gadsden,Florida,12039,1,0 +2020-04-03,Gadsden,Florida,12039,2,0 +2020-04-04,Gadsden,Florida,12039,3,0 +2020-04-05,Gadsden,Florida,12039,3,0 +2020-04-06,Gadsden,Florida,12039,4,0 +2020-04-07,Gadsden,Florida,12039,5,0 +2020-04-08,Gadsden,Florida,12039,8,0 +2020-04-09,Gadsden,Florida,12039,11,0 +2020-04-10,Gadsden,Florida,12039,13,0 +2020-04-11,Gadsden,Florida,12039,13,0 +2020-04-12,Gadsden,Florida,12039,16,0 +2020-04-13,Gadsden,Florida,12039,35,0 +2020-04-14,Gadsden,Florida,12039,37,0 +2020-04-15,Gadsden,Florida,12039,40,0 +2020-04-16,Gadsden,Florida,12039,43,0 +2020-04-17,Gadsden,Florida,12039,46,0 +2020-04-18,Gadsden,Florida,12039,47,0 +2020-04-19,Gadsden,Florida,12039,50,0 +2020-04-20,Gadsden,Florida,12039,56,0 +2020-04-21,Gadsden,Florida,12039,56,0 +2020-04-22,Gadsden,Florida,12039,57,0 +2020-04-23,Gadsden,Florida,12039,68,0 +2020-04-24,Gadsden,Florida,12039,78,0 +2020-04-25,Gadsden,Florida,12039,79,0 +2020-04-26,Gadsden,Florida,12039,80,0 +2020-04-27,Gadsden,Florida,12039,86,0 +2020-04-28,Gadsden,Florida,12039,93,0 +2020-04-29,Gadsden,Florida,12039,93,0 +2020-04-30,Gadsden,Florida,12039,94,0 +2020-05-01,Gadsden,Florida,12039,102,0 +2020-05-02,Gadsden,Florida,12039,104,0 +2020-05-03,Gadsden,Florida,12039,106,0 +2020-05-04,Gadsden,Florida,12039,112,0 +2020-05-05,Gadsden,Florida,12039,114,0 +2020-05-06,Gadsden,Florida,12039,119,0 +2020-05-07,Gadsden,Florida,12039,120,0 +2020-05-08,Gadsden,Florida,12039,122,0 +2020-05-09,Gadsden,Florida,12039,127,0 +2020-05-10,Gadsden,Florida,12039,127,0 +2020-05-11,Gadsden,Florida,12039,129,0 +2020-05-12,Gadsden,Florida,12039,136,0 +2020-05-13,Gadsden,Florida,12039,138,1 +2020-05-14,Gadsden,Florida,12039,139,1 +2020-05-15,Gadsden,Florida,12039,179,1 +2020-05-16,Gadsden,Florida,12039,211,1 +2020-05-17,Gadsden,Florida,12039,222,1 +2020-05-18,Gadsden,Florida,12039,239,1 +2020-05-19,Gadsden,Florida,12039,241,1 +2020-05-20,Gadsden,Florida,12039,244,1 +2020-05-21,Gadsden,Florida,12039,248,1 +2020-05-22,Gadsden,Florida,12039,251,1 +2020-05-23,Gadsden,Florida,12039,254,1 +2020-05-24,Gadsden,Florida,12039,254,1 +2020-05-25,Gadsden,Florida,12039,263,1 +2020-05-26,Gadsden,Florida,12039,265,1 +2020-05-27,Gadsden,Florida,12039,267,1 +2020-05-28,Gadsden,Florida,12039,267,1 +2020-05-29,Gadsden,Florida,12039,268,2 +2020-05-30,Gadsden,Florida,12039,268,2 +2020-05-31,Gadsden,Florida,12039,272,2 +2020-06-01,Gadsden,Florida,12039,275,2 +2020-06-02,Gadsden,Florida,12039,277,3 +2020-06-03,Gadsden,Florida,12039,284,3 +2020-06-04,Gadsden,Florida,12039,287,3 +2020-06-05,Gadsden,Florida,12039,288,4 +2020-06-06,Gadsden,Florida,12039,292,4 +2020-06-07,Gadsden,Florida,12039,293,4 +2020-06-08,Gadsden,Florida,12039,293,4 +2020-06-09,Gadsden,Florida,12039,295,4 +2020-06-10,Gadsden,Florida,12039,297,4 +2020-06-11,Gadsden,Florida,12039,299,4 +2020-06-12,Gadsden,Florida,12039,301,4 +2020-06-13,Gadsden,Florida,12039,300,4 +2020-06-14,Gadsden,Florida,12039,303,4 +2020-06-15,Gadsden,Florida,12039,304,4 +2020-06-16,Gadsden,Florida,12039,308,5 +2020-06-17,Gadsden,Florida,12039,311,5 +2020-06-18,Gadsden,Florida,12039,315,5 +2020-06-19,Gadsden,Florida,12039,318,6 +2020-06-20,Gadsden,Florida,12039,321,6 +2020-06-21,Gadsden,Florida,12039,321,6 +2020-06-22,Gadsden,Florida,12039,325,6 +2020-06-23,Gadsden,Florida,12039,328,6 +2020-06-24,Gadsden,Florida,12039,331,6 +2020-06-25,Gadsden,Florida,12039,336,6 +2020-06-26,Gadsden,Florida,12039,351,6 +2020-06-27,Gadsden,Florida,12039,364,7 +2020-06-28,Gadsden,Florida,12039,372,7 +2020-06-29,Gadsden,Florida,12039,375,7 +2020-06-30,Gadsden,Florida,12039,378,7 +2020-07-01,Gadsden,Florida,12039,388,7 +2020-07-02,Gadsden,Florida,12039,405,7 +2020-07-03,Gadsden,Florida,12039,427,7 +2020-07-04,Gadsden,Florida,12039,445,7 +2020-07-05,Gadsden,Florida,12039,467,7 +2020-07-06,Gadsden,Florida,12039,467,7 +2020-07-07,Gadsden,Florida,12039,473,7 +2020-07-08,Gadsden,Florida,12039,480,7 +2020-07-09,Gadsden,Florida,12039,494,7 +2020-04-07,Gilchrist,Florida,12041,1,0 +2020-04-08,Gilchrist,Florida,12041,2,0 +2020-04-09,Gilchrist,Florida,12041,3,0 +2020-04-10,Gilchrist,Florida,12041,4,0 +2020-04-11,Gilchrist,Florida,12041,4,0 +2020-04-12,Gilchrist,Florida,12041,4,0 +2020-04-13,Gilchrist,Florida,12041,4,0 +2020-04-14,Gilchrist,Florida,12041,6,0 +2020-04-15,Gilchrist,Florida,12041,6,0 +2020-04-16,Gilchrist,Florida,12041,4,0 +2020-04-17,Gilchrist,Florida,12041,4,0 +2020-04-18,Gilchrist,Florida,12041,4,0 +2020-04-19,Gilchrist,Florida,12041,4,0 +2020-04-20,Gilchrist,Florida,12041,4,0 +2020-04-21,Gilchrist,Florida,12041,4,0 +2020-04-22,Gilchrist,Florida,12041,4,0 +2020-04-23,Gilchrist,Florida,12041,4,0 +2020-04-24,Gilchrist,Florida,12041,4,0 +2020-04-25,Gilchrist,Florida,12041,4,0 +2020-04-26,Gilchrist,Florida,12041,4,0 +2020-04-27,Gilchrist,Florida,12041,4,0 +2020-04-28,Gilchrist,Florida,12041,4,0 +2020-04-29,Gilchrist,Florida,12041,4,0 +2020-04-30,Gilchrist,Florida,12041,5,0 +2020-05-01,Gilchrist,Florida,12041,5,0 +2020-05-02,Gilchrist,Florida,12041,5,0 +2020-05-03,Gilchrist,Florida,12041,6,0 +2020-05-04,Gilchrist,Florida,12041,6,0 +2020-05-05,Gilchrist,Florida,12041,6,0 +2020-05-06,Gilchrist,Florida,12041,6,0 +2020-05-07,Gilchrist,Florida,12041,6,0 +2020-05-08,Gilchrist,Florida,12041,6,0 +2020-05-09,Gilchrist,Florida,12041,6,0 +2020-05-10,Gilchrist,Florida,12041,6,0 +2020-05-11,Gilchrist,Florida,12041,6,0 +2020-05-12,Gilchrist,Florida,12041,6,0 +2020-05-13,Gilchrist,Florida,12041,7,0 +2020-05-14,Gilchrist,Florida,12041,7,0 +2020-05-15,Gilchrist,Florida,12041,7,0 +2020-05-16,Gilchrist,Florida,12041,7,0 +2020-05-17,Gilchrist,Florida,12041,7,0 +2020-05-18,Gilchrist,Florida,12041,7,0 +2020-05-19,Gilchrist,Florida,12041,8,0 +2020-05-20,Gilchrist,Florida,12041,8,0 +2020-05-21,Gilchrist,Florida,12041,8,0 +2020-05-22,Gilchrist,Florida,12041,10,0 +2020-05-23,Gilchrist,Florida,12041,10,0 +2020-05-24,Gilchrist,Florida,12041,11,0 +2020-05-25,Gilchrist,Florida,12041,12,0 +2020-05-26,Gilchrist,Florida,12041,12,0 +2020-05-27,Gilchrist,Florida,12041,12,0 +2020-05-28,Gilchrist,Florida,12041,12,0 +2020-05-29,Gilchrist,Florida,12041,12,0 +2020-05-30,Gilchrist,Florida,12041,13,0 +2020-05-31,Gilchrist,Florida,12041,12,0 +2020-06-01,Gilchrist,Florida,12041,15,0 +2020-06-02,Gilchrist,Florida,12041,15,0 +2020-06-03,Gilchrist,Florida,12041,15,0 +2020-06-04,Gilchrist,Florida,12041,17,0 +2020-06-05,Gilchrist,Florida,12041,19,0 +2020-06-06,Gilchrist,Florida,12041,19,0 +2020-06-07,Gilchrist,Florida,12041,20,0 +2020-06-08,Gilchrist,Florida,12041,19,0 +2020-06-09,Gilchrist,Florida,12041,19,0 +2020-06-10,Gilchrist,Florida,12041,19,0 +2020-06-11,Gilchrist,Florida,12041,20,0 +2020-06-12,Gilchrist,Florida,12041,22,0 +2020-06-13,Gilchrist,Florida,12041,26,0 +2020-06-14,Gilchrist,Florida,12041,26,0 +2020-06-15,Gilchrist,Florida,12041,26,0 +2020-06-16,Gilchrist,Florida,12041,73,0 +2020-06-17,Gilchrist,Florida,12041,73,0 +2020-06-18,Gilchrist,Florida,12041,74,0 +2020-06-19,Gilchrist,Florida,12041,75,0 +2020-06-20,Gilchrist,Florida,12041,75,0 +2020-06-21,Gilchrist,Florida,12041,75,0 +2020-06-22,Gilchrist,Florida,12041,86,0 +2020-06-23,Gilchrist,Florida,12041,86,0 +2020-06-24,Gilchrist,Florida,12041,88,0 +2020-06-25,Gilchrist,Florida,12041,88,0 +2020-06-26,Gilchrist,Florida,12041,89,0 +2020-06-27,Gilchrist,Florida,12041,94,0 +2020-06-28,Gilchrist,Florida,12041,97,0 +2020-06-29,Gilchrist,Florida,12041,96,0 +2020-06-30,Gilchrist,Florida,12041,97,0 +2020-07-01,Gilchrist,Florida,12041,102,0 +2020-07-02,Gilchrist,Florida,12041,106,0 +2020-07-03,Gilchrist,Florida,12041,109,0 +2020-07-04,Gilchrist,Florida,12041,112,0 +2020-07-05,Gilchrist,Florida,12041,114,0 +2020-07-06,Gilchrist,Florida,12041,116,0 +2020-07-07,Gilchrist,Florida,12041,122,0 +2020-07-08,Gilchrist,Florida,12041,124,0 +2020-07-09,Gilchrist,Florida,12041,129,0 +2020-03-29,Glades,Florida,12043,1,0 +2020-03-30,Glades,Florida,12043,3,0 +2020-03-31,Glades,Florida,12043,3,1 +2020-04-01,Glades,Florida,12043,3,1 +2020-04-02,Glades,Florida,12043,3,1 +2020-04-03,Glades,Florida,12043,3,1 +2020-04-04,Glades,Florida,12043,4,1 +2020-04-05,Glades,Florida,12043,4,1 +2020-04-06,Glades,Florida,12043,4,1 +2020-04-07,Glades,Florida,12043,4,1 +2020-04-08,Glades,Florida,12043,4,1 +2020-04-09,Glades,Florida,12043,4,1 +2020-04-10,Glades,Florida,12043,4,1 +2020-04-11,Glades,Florida,12043,4,1 +2020-04-12,Glades,Florida,12043,4,1 +2020-04-13,Glades,Florida,12043,5,1 +2020-04-14,Glades,Florida,12043,5,1 +2020-04-15,Glades,Florida,12043,5,1 +2020-04-16,Glades,Florida,12043,5,1 +2020-04-17,Glades,Florida,12043,5,1 +2020-04-18,Glades,Florida,12043,5,1 +2020-04-19,Glades,Florida,12043,5,1 +2020-04-20,Glades,Florida,12043,5,1 +2020-04-21,Glades,Florida,12043,5,1 +2020-04-22,Glades,Florida,12043,5,1 +2020-04-23,Glades,Florida,12043,5,1 +2020-04-24,Glades,Florida,12043,5,1 +2020-04-25,Glades,Florida,12043,5,1 +2020-04-26,Glades,Florida,12043,6,1 +2020-04-27,Glades,Florida,12043,6,1 +2020-04-28,Glades,Florida,12043,5,1 +2020-04-29,Glades,Florida,12043,6,1 +2020-04-30,Glades,Florida,12043,6,1 +2020-05-01,Glades,Florida,12043,6,1 +2020-05-02,Glades,Florida,12043,6,1 +2020-05-03,Glades,Florida,12043,6,1 +2020-05-04,Glades,Florida,12043,6,1 +2020-05-05,Glades,Florida,12043,6,1 +2020-05-06,Glades,Florida,12043,6,1 +2020-05-07,Glades,Florida,12043,6,1 +2020-05-08,Glades,Florida,12043,6,1 +2020-05-09,Glades,Florida,12043,7,1 +2020-05-10,Glades,Florida,12043,7,1 +2020-05-11,Glades,Florida,12043,7,1 +2020-05-12,Glades,Florida,12043,8,1 +2020-05-13,Glades,Florida,12043,8,1 +2020-05-14,Glades,Florida,12043,9,1 +2020-05-15,Glades,Florida,12043,10,1 +2020-05-16,Glades,Florida,12043,9,1 +2020-05-17,Glades,Florida,12043,9,1 +2020-05-18,Glades,Florida,12043,10,1 +2020-05-19,Glades,Florida,12043,13,1 +2020-05-20,Glades,Florida,12043,16,1 +2020-05-21,Glades,Florida,12043,19,1 +2020-05-22,Glades,Florida,12043,19,1 +2020-05-23,Glades,Florida,12043,20,1 +2020-05-24,Glades,Florida,12043,20,1 +2020-05-25,Glades,Florida,12043,20,1 +2020-05-26,Glades,Florida,12043,24,1 +2020-05-27,Glades,Florida,12043,24,1 +2020-05-28,Glades,Florida,12043,24,1 +2020-05-29,Glades,Florida,12043,27,1 +2020-05-30,Glades,Florida,12043,29,1 +2020-05-31,Glades,Florida,12043,30,1 +2020-06-01,Glades,Florida,12043,32,1 +2020-06-02,Glades,Florida,12043,61,1 +2020-06-03,Glades,Florida,12043,64,1 +2020-06-04,Glades,Florida,12043,70,1 +2020-06-05,Glades,Florida,12043,81,1 +2020-06-06,Glades,Florida,12043,83,1 +2020-06-07,Glades,Florida,12043,84,1 +2020-06-08,Glades,Florida,12043,85,1 +2020-06-09,Glades,Florida,12043,86,1 +2020-06-10,Glades,Florida,12043,104,1 +2020-06-11,Glades,Florida,12043,107,1 +2020-06-12,Glades,Florida,12043,109,1 +2020-06-13,Glades,Florida,12043,110,1 +2020-06-14,Glades,Florida,12043,114,1 +2020-06-15,Glades,Florida,12043,116,1 +2020-06-16,Glades,Florida,12043,118,1 +2020-06-17,Glades,Florida,12043,119,1 +2020-06-18,Glades,Florida,12043,121,1 +2020-06-19,Glades,Florida,12043,121,1 +2020-06-20,Glades,Florida,12043,121,1 +2020-06-21,Glades,Florida,12043,142,1 +2020-06-22,Glades,Florida,12043,142,1 +2020-06-23,Glades,Florida,12043,142,1 +2020-06-24,Glades,Florida,12043,143,1 +2020-06-25,Glades,Florida,12043,151,1 +2020-06-26,Glades,Florida,12043,154,1 +2020-06-27,Glades,Florida,12043,158,1 +2020-06-28,Glades,Florida,12043,161,1 +2020-06-29,Glades,Florida,12043,167,1 +2020-06-30,Glades,Florida,12043,175,1 +2020-07-01,Glades,Florida,12043,164,1 +2020-07-02,Glades,Florida,12043,167,1 +2020-07-03,Glades,Florida,12043,172,1 +2020-07-04,Glades,Florida,12043,174,1 +2020-07-05,Glades,Florida,12043,179,1 +2020-07-06,Glades,Florida,12043,188,1 +2020-07-07,Glades,Florida,12043,188,1 +2020-07-08,Glades,Florida,12043,189,1 +2020-07-09,Glades,Florida,12043,189,1 +2020-04-01,Gulf,Florida,12045,1,0 +2020-04-02,Gulf,Florida,12045,1,0 +2020-04-03,Gulf,Florida,12045,1,0 +2020-04-04,Gulf,Florida,12045,1,0 +2020-04-05,Gulf,Florida,12045,1,0 +2020-04-06,Gulf,Florida,12045,1,0 +2020-04-07,Gulf,Florida,12045,1,0 +2020-04-08,Gulf,Florida,12045,1,0 +2020-04-09,Gulf,Florida,12045,1,0 +2020-04-10,Gulf,Florida,12045,1,0 +2020-04-11,Gulf,Florida,12045,1,0 +2020-04-12,Gulf,Florida,12045,1,0 +2020-04-13,Gulf,Florida,12045,1,0 +2020-04-14,Gulf,Florida,12045,1,0 +2020-04-15,Gulf,Florida,12045,1,0 +2020-04-16,Gulf,Florida,12045,1,0 +2020-04-17,Gulf,Florida,12045,1,0 +2020-04-18,Gulf,Florida,12045,1,0 +2020-04-19,Gulf,Florida,12045,1,0 +2020-04-20,Gulf,Florida,12045,1,0 +2020-04-21,Gulf,Florida,12045,1,0 +2020-04-22,Gulf,Florida,12045,1,0 +2020-04-23,Gulf,Florida,12045,1,0 +2020-04-24,Gulf,Florida,12045,1,0 +2020-04-25,Gulf,Florida,12045,1,0 +2020-04-26,Gulf,Florida,12045,1,0 +2020-04-27,Gulf,Florida,12045,1,0 +2020-04-28,Gulf,Florida,12045,1,0 +2020-04-29,Gulf,Florida,12045,1,0 +2020-04-30,Gulf,Florida,12045,1,0 +2020-05-01,Gulf,Florida,12045,1,0 +2020-05-02,Gulf,Florida,12045,1,0 +2020-05-03,Gulf,Florida,12045,1,0 +2020-05-04,Gulf,Florida,12045,1,0 +2020-05-05,Gulf,Florida,12045,1,0 +2020-05-06,Gulf,Florida,12045,1,0 +2020-05-07,Gulf,Florida,12045,1,0 +2020-05-08,Gulf,Florida,12045,1,0 +2020-05-09,Gulf,Florida,12045,1,0 +2020-05-10,Gulf,Florida,12045,1,0 +2020-05-11,Gulf,Florida,12045,1,0 +2020-05-12,Gulf,Florida,12045,1,0 +2020-05-13,Gulf,Florida,12045,1,0 +2020-05-14,Gulf,Florida,12045,1,0 +2020-05-15,Gulf,Florida,12045,1,0 +2020-05-16,Gulf,Florida,12045,1,0 +2020-05-17,Gulf,Florida,12045,1,0 +2020-05-18,Gulf,Florida,12045,1,0 +2020-05-19,Gulf,Florida,12045,1,0 +2020-05-20,Gulf,Florida,12045,1,0 +2020-05-21,Gulf,Florida,12045,1,0 +2020-05-22,Gulf,Florida,12045,1,0 +2020-05-23,Gulf,Florida,12045,1,0 +2020-05-24,Gulf,Florida,12045,1,0 +2020-05-25,Gulf,Florida,12045,1,0 +2020-05-26,Gulf,Florida,12045,1,0 +2020-05-27,Gulf,Florida,12045,1,0 +2020-05-28,Gulf,Florida,12045,1,0 +2020-05-29,Gulf,Florida,12045,1,0 +2020-05-30,Gulf,Florida,12045,1,0 +2020-05-31,Gulf,Florida,12045,1,0 +2020-06-01,Gulf,Florida,12045,1,0 +2020-06-02,Gulf,Florida,12045,2,0 +2020-06-03,Gulf,Florida,12045,2,0 +2020-06-04,Gulf,Florida,12045,3,0 +2020-06-05,Gulf,Florida,12045,3,0 +2020-06-06,Gulf,Florida,12045,3,0 +2020-06-07,Gulf,Florida,12045,6,0 +2020-06-08,Gulf,Florida,12045,7,0 +2020-06-09,Gulf,Florida,12045,7,0 +2020-06-10,Gulf,Florida,12045,8,0 +2020-06-11,Gulf,Florida,12045,8,0 +2020-06-12,Gulf,Florida,12045,8,0 +2020-06-13,Gulf,Florida,12045,8,0 +2020-06-14,Gulf,Florida,12045,8,0 +2020-06-15,Gulf,Florida,12045,9,0 +2020-06-16,Gulf,Florida,12045,11,0 +2020-06-17,Gulf,Florida,12045,11,0 +2020-06-18,Gulf,Florida,12045,11,0 +2020-06-19,Gulf,Florida,12045,11,0 +2020-06-20,Gulf,Florida,12045,11,0 +2020-06-21,Gulf,Florida,12045,11,0 +2020-06-22,Gulf,Florida,12045,11,0 +2020-06-23,Gulf,Florida,12045,13,0 +2020-06-24,Gulf,Florida,12045,14,0 +2020-06-25,Gulf,Florida,12045,16,0 +2020-06-26,Gulf,Florida,12045,17,0 +2020-06-27,Gulf,Florida,12045,22,0 +2020-06-28,Gulf,Florida,12045,22,0 +2020-06-29,Gulf,Florida,12045,22,0 +2020-06-30,Gulf,Florida,12045,23,0 +2020-07-01,Gulf,Florida,12045,23,0 +2020-07-02,Gulf,Florida,12045,32,0 +2020-07-03,Gulf,Florida,12045,34,0 +2020-07-04,Gulf,Florida,12045,34,0 +2020-07-05,Gulf,Florida,12045,54,0 +2020-07-06,Gulf,Florida,12045,54,0 +2020-07-07,Gulf,Florida,12045,57,0 +2020-07-08,Gulf,Florida,12045,59,0 +2020-07-09,Gulf,Florida,12045,66,0 +2020-04-06,Hamilton,Florida,12047,1,0 +2020-04-07,Hamilton,Florida,12047,1,0 +2020-04-08,Hamilton,Florida,12047,1,0 +2020-04-09,Hamilton,Florida,12047,1,0 +2020-04-10,Hamilton,Florida,12047,2,0 +2020-04-11,Hamilton,Florida,12047,2,0 +2020-04-12,Hamilton,Florida,12047,2,0 +2020-04-13,Hamilton,Florida,12047,2,0 +2020-04-14,Hamilton,Florida,12047,2,0 +2020-04-15,Hamilton,Florida,12047,2,0 +2020-04-16,Hamilton,Florida,12047,2,0 +2020-04-17,Hamilton,Florida,12047,3,0 +2020-04-18,Hamilton,Florida,12047,3,0 +2020-04-19,Hamilton,Florida,12047,3,0 +2020-04-20,Hamilton,Florida,12047,3,0 +2020-04-21,Hamilton,Florida,12047,4,0 +2020-04-22,Hamilton,Florida,12047,5,0 +2020-04-23,Hamilton,Florida,12047,6,0 +2020-04-24,Hamilton,Florida,12047,6,0 +2020-04-25,Hamilton,Florida,12047,6,0 +2020-04-26,Hamilton,Florida,12047,6,0 +2020-04-27,Hamilton,Florida,12047,6,0 +2020-04-28,Hamilton,Florida,12047,6,0 +2020-04-29,Hamilton,Florida,12047,6,0 +2020-04-30,Hamilton,Florida,12047,6,0 +2020-05-01,Hamilton,Florida,12047,7,0 +2020-05-02,Hamilton,Florida,12047,7,0 +2020-05-03,Hamilton,Florida,12047,7,0 +2020-05-04,Hamilton,Florida,12047,7,0 +2020-05-05,Hamilton,Florida,12047,7,0 +2020-05-06,Hamilton,Florida,12047,7,0 +2020-05-07,Hamilton,Florida,12047,7,0 +2020-05-08,Hamilton,Florida,12047,8,0 +2020-05-09,Hamilton,Florida,12047,8,0 +2020-05-10,Hamilton,Florida,12047,18,0 +2020-05-11,Hamilton,Florida,12047,19,0 +2020-05-12,Hamilton,Florida,12047,19,0 +2020-05-13,Hamilton,Florida,12047,86,0 +2020-05-14,Hamilton,Florida,12047,134,0 +2020-05-15,Hamilton,Florida,12047,144,0 +2020-05-16,Hamilton,Florida,12047,144,0 +2020-05-17,Hamilton,Florida,12047,147,0 +2020-05-18,Hamilton,Florida,12047,147,0 +2020-05-19,Hamilton,Florida,12047,147,0 +2020-05-20,Hamilton,Florida,12047,153,0 +2020-05-21,Hamilton,Florida,12047,156,0 +2020-05-22,Hamilton,Florida,12047,159,0 +2020-05-23,Hamilton,Florida,12047,161,0 +2020-05-24,Hamilton,Florida,12047,194,0 +2020-05-25,Hamilton,Florida,12047,206,0 +2020-05-26,Hamilton,Florida,12047,206,0 +2020-05-27,Hamilton,Florida,12047,208,0 +2020-05-28,Hamilton,Florida,12047,209,0 +2020-05-29,Hamilton,Florida,12047,221,0 +2020-05-30,Hamilton,Florida,12047,230,0 +2020-05-31,Hamilton,Florida,12047,233,0 +2020-06-01,Hamilton,Florida,12047,239,0 +2020-06-02,Hamilton,Florida,12047,239,0 +2020-06-03,Hamilton,Florida,12047,250,0 +2020-06-04,Hamilton,Florida,12047,255,0 +2020-06-05,Hamilton,Florida,12047,261,0 +2020-06-06,Hamilton,Florida,12047,261,0 +2020-06-07,Hamilton,Florida,12047,263,0 +2020-06-08,Hamilton,Florida,12047,262,1 +2020-06-09,Hamilton,Florida,12047,263,1 +2020-06-10,Hamilton,Florida,12047,267,2 +2020-06-11,Hamilton,Florida,12047,268,2 +2020-06-12,Hamilton,Florida,12047,268,2 +2020-06-13,Hamilton,Florida,12047,271,2 +2020-06-14,Hamilton,Florida,12047,271,2 +2020-06-15,Hamilton,Florida,12047,272,2 +2020-06-16,Hamilton,Florida,12047,277,2 +2020-06-17,Hamilton,Florida,12047,279,2 +2020-06-18,Hamilton,Florida,12047,281,2 +2020-06-19,Hamilton,Florida,12047,285,2 +2020-06-20,Hamilton,Florida,12047,287,2 +2020-06-21,Hamilton,Florida,12047,289,2 +2020-06-22,Hamilton,Florida,12047,302,2 +2020-06-23,Hamilton,Florida,12047,304,2 +2020-06-24,Hamilton,Florida,12047,315,2 +2020-06-25,Hamilton,Florida,12047,317,2 +2020-06-26,Hamilton,Florida,12047,317,2 +2020-06-27,Hamilton,Florida,12047,322,2 +2020-06-28,Hamilton,Florida,12047,325,2 +2020-06-29,Hamilton,Florida,12047,327,2 +2020-06-30,Hamilton,Florida,12047,334,2 +2020-07-01,Hamilton,Florida,12047,345,2 +2020-07-02,Hamilton,Florida,12047,376,2 +2020-07-03,Hamilton,Florida,12047,380,2 +2020-07-04,Hamilton,Florida,12047,382,2 +2020-07-05,Hamilton,Florida,12047,384,2 +2020-07-06,Hamilton,Florida,12047,389,2 +2020-07-07,Hamilton,Florida,12047,392,2 +2020-07-08,Hamilton,Florida,12047,405,2 +2020-07-09,Hamilton,Florida,12047,409,2 +2020-04-01,Hardee,Florida,12049,1,0 +2020-04-02,Hardee,Florida,12049,1,0 +2020-04-03,Hardee,Florida,12049,1,0 +2020-04-04,Hardee,Florida,12049,1,0 +2020-04-05,Hardee,Florida,12049,2,0 +2020-04-06,Hardee,Florida,12049,2,0 +2020-04-07,Hardee,Florida,12049,2,0 +2020-04-08,Hardee,Florida,12049,2,0 +2020-04-09,Hardee,Florida,12049,3,0 +2020-04-10,Hardee,Florida,12049,3,0 +2020-04-11,Hardee,Florida,12049,3,0 +2020-04-12,Hardee,Florida,12049,3,0 +2020-04-13,Hardee,Florida,12049,3,0 +2020-04-14,Hardee,Florida,12049,3,0 +2020-04-15,Hardee,Florida,12049,3,0 +2020-04-16,Hardee,Florida,12049,4,0 +2020-04-17,Hardee,Florida,12049,4,0 +2020-04-18,Hardee,Florida,12049,4,0 +2020-04-19,Hardee,Florida,12049,4,0 +2020-04-20,Hardee,Florida,12049,4,0 +2020-04-21,Hardee,Florida,12049,4,0 +2020-04-22,Hardee,Florida,12049,4,0 +2020-04-23,Hardee,Florida,12049,5,0 +2020-04-24,Hardee,Florida,12049,9,0 +2020-04-25,Hardee,Florida,12049,10,0 +2020-04-26,Hardee,Florida,12049,10,0 +2020-04-27,Hardee,Florida,12049,13,0 +2020-04-28,Hardee,Florida,12049,14,0 +2020-04-29,Hardee,Florida,12049,16,0 +2020-04-30,Hardee,Florida,12049,18,0 +2020-05-01,Hardee,Florida,12049,22,0 +2020-05-02,Hardee,Florida,12049,29,0 +2020-05-03,Hardee,Florida,12049,32,0 +2020-05-04,Hardee,Florida,12049,33,0 +2020-05-05,Hardee,Florida,12049,34,0 +2020-05-06,Hardee,Florida,12049,34,0 +2020-05-07,Hardee,Florida,12049,35,0 +2020-05-08,Hardee,Florida,12049,35,0 +2020-05-09,Hardee,Florida,12049,36,0 +2020-05-10,Hardee,Florida,12049,36,0 +2020-05-11,Hardee,Florida,12049,36,0 +2020-05-12,Hardee,Florida,12049,36,0 +2020-05-13,Hardee,Florida,12049,37,0 +2020-05-14,Hardee,Florida,12049,39,0 +2020-05-15,Hardee,Florida,12049,39,0 +2020-05-16,Hardee,Florida,12049,39,0 +2020-05-17,Hardee,Florida,12049,40,0 +2020-05-18,Hardee,Florida,12049,42,0 +2020-05-19,Hardee,Florida,12049,44,0 +2020-05-20,Hardee,Florida,12049,47,0 +2020-05-21,Hardee,Florida,12049,54,0 +2020-05-22,Hardee,Florida,12049,60,0 +2020-05-23,Hardee,Florida,12049,63,0 +2020-05-24,Hardee,Florida,12049,77,0 +2020-05-25,Hardee,Florida,12049,85,0 +2020-05-26,Hardee,Florida,12049,87,0 +2020-05-27,Hardee,Florida,12049,88,0 +2020-05-28,Hardee,Florida,12049,88,0 +2020-05-29,Hardee,Florida,12049,91,0 +2020-05-30,Hardee,Florida,12049,93,0 +2020-05-31,Hardee,Florida,12049,99,0 +2020-06-01,Hardee,Florida,12049,101,0 +2020-06-02,Hardee,Florida,12049,105,0 +2020-06-03,Hardee,Florida,12049,111,0 +2020-06-04,Hardee,Florida,12049,118,0 +2020-06-05,Hardee,Florida,12049,131,0 +2020-06-06,Hardee,Florida,12049,140,0 +2020-06-07,Hardee,Florida,12049,145,0 +2020-06-08,Hardee,Florida,12049,151,0 +2020-06-09,Hardee,Florida,12049,153,0 +2020-06-10,Hardee,Florida,12049,160,0 +2020-06-11,Hardee,Florida,12049,164,0 +2020-06-12,Hardee,Florida,12049,177,0 +2020-06-13,Hardee,Florida,12049,189,0 +2020-06-14,Hardee,Florida,12049,196,0 +2020-06-15,Hardee,Florida,12049,205,0 +2020-06-16,Hardee,Florida,12049,213,1 +2020-06-17,Hardee,Florida,12049,221,1 +2020-06-18,Hardee,Florida,12049,228,1 +2020-06-19,Hardee,Florida,12049,244,1 +2020-06-20,Hardee,Florida,12049,272,1 +2020-06-21,Hardee,Florida,12049,289,1 +2020-06-22,Hardee,Florida,12049,305,1 +2020-06-23,Hardee,Florida,12049,318,2 +2020-06-24,Hardee,Florida,12049,334,2 +2020-06-25,Hardee,Florida,12049,340,2 +2020-06-26,Hardee,Florida,12049,373,3 +2020-06-27,Hardee,Florida,12049,403,3 +2020-06-28,Hardee,Florida,12049,411,3 +2020-06-29,Hardee,Florida,12049,426,3 +2020-06-30,Hardee,Florida,12049,430,3 +2020-07-01,Hardee,Florida,12049,440,3 +2020-07-02,Hardee,Florida,12049,468,3 +2020-07-03,Hardee,Florida,12049,496,3 +2020-07-04,Hardee,Florida,12049,504,3 +2020-07-05,Hardee,Florida,12049,506,3 +2020-07-06,Hardee,Florida,12049,509,3 +2020-07-07,Hardee,Florida,12049,517,3 +2020-07-08,Hardee,Florida,12049,536,3 +2020-07-09,Hardee,Florida,12049,548,3 +2020-03-28,Hendry,Florida,12051,1,0 +2020-03-29,Hendry,Florida,12051,2,0 +2020-03-30,Hendry,Florida,12051,3,0 +2020-03-31,Hendry,Florida,12051,4,0 +2020-04-01,Hendry,Florida,12051,4,0 +2020-04-02,Hendry,Florida,12051,4,0 +2020-04-03,Hendry,Florida,12051,5,0 +2020-04-04,Hendry,Florida,12051,6,0 +2020-04-05,Hendry,Florida,12051,7,0 +2020-04-06,Hendry,Florida,12051,9,0 +2020-04-07,Hendry,Florida,12051,9,0 +2020-04-08,Hendry,Florida,12051,11,0 +2020-04-09,Hendry,Florida,12051,13,0 +2020-04-10,Hendry,Florida,12051,15,0 +2020-04-11,Hendry,Florida,12051,16,0 +2020-04-12,Hendry,Florida,12051,20,0 +2020-04-13,Hendry,Florida,12051,22,0 +2020-04-14,Hendry,Florida,12051,23,0 +2020-04-15,Hendry,Florida,12051,26,0 +2020-04-16,Hendry,Florida,12051,27,0 +2020-04-17,Hendry,Florida,12051,31,0 +2020-04-18,Hendry,Florida,12051,39,0 +2020-04-19,Hendry,Florida,12051,41,0 +2020-04-20,Hendry,Florida,12051,44,1 +2020-04-21,Hendry,Florida,12051,46,1 +2020-04-22,Hendry,Florida,12051,52,1 +2020-04-23,Hendry,Florida,12051,59,2 +2020-04-24,Hendry,Florida,12051,64,2 +2020-04-25,Hendry,Florida,12051,64,2 +2020-04-26,Hendry,Florida,12051,65,2 +2020-04-27,Hendry,Florida,12051,68,2 +2020-04-28,Hendry,Florida,12051,72,2 +2020-04-29,Hendry,Florida,12051,80,3 +2020-04-30,Hendry,Florida,12051,83,3 +2020-05-01,Hendry,Florida,12051,92,3 +2020-05-02,Hendry,Florida,12051,96,4 +2020-05-03,Hendry,Florida,12051,101,4 +2020-05-04,Hendry,Florida,12051,111,4 +2020-05-05,Hendry,Florida,12051,115,5 +2020-05-06,Hendry,Florida,12051,120,5 +2020-05-07,Hendry,Florida,12051,129,5 +2020-05-08,Hendry,Florida,12051,133,5 +2020-05-09,Hendry,Florida,12051,136,5 +2020-05-10,Hendry,Florida,12051,145,5 +2020-05-11,Hendry,Florida,12051,151,6 +2020-05-12,Hendry,Florida,12051,159,6 +2020-05-13,Hendry,Florida,12051,165,6 +2020-05-14,Hendry,Florida,12051,176,11 +2020-05-15,Hendry,Florida,12051,180,11 +2020-05-16,Hendry,Florida,12051,205,12 +2020-05-17,Hendry,Florida,12051,211,12 +2020-05-18,Hendry,Florida,12051,222,12 +2020-05-19,Hendry,Florida,12051,224,12 +2020-05-20,Hendry,Florida,12051,228,12 +2020-05-21,Hendry,Florida,12051,240,12 +2020-05-22,Hendry,Florida,12051,250,12 +2020-05-23,Hendry,Florida,12051,249,12 +2020-05-24,Hendry,Florida,12051,281,12 +2020-05-25,Hendry,Florida,12051,321,12 +2020-05-26,Hendry,Florida,12051,337,12 +2020-05-27,Hendry,Florida,12051,339,12 +2020-05-28,Hendry,Florida,12051,354,13 +2020-05-29,Hendry,Florida,12051,387,14 +2020-05-30,Hendry,Florida,12051,405,14 +2020-05-31,Hendry,Florida,12051,415,14 +2020-06-01,Hendry,Florida,12051,431,15 +2020-06-02,Hendry,Florida,12051,446,16 +2020-06-03,Hendry,Florida,12051,476,17 +2020-06-04,Hendry,Florida,12051,501,17 +2020-06-05,Hendry,Florida,12051,521,17 +2020-06-06,Hendry,Florida,12051,552,18 +2020-06-07,Hendry,Florida,12051,558,18 +2020-06-08,Hendry,Florida,12051,565,18 +2020-06-09,Hendry,Florida,12051,572,19 +2020-06-10,Hendry,Florida,12051,580,19 +2020-06-11,Hendry,Florida,12051,590,19 +2020-06-12,Hendry,Florida,12051,597,19 +2020-06-13,Hendry,Florida,12051,617,20 +2020-06-14,Hendry,Florida,12051,638,20 +2020-06-15,Hendry,Florida,12051,650,20 +2020-06-16,Hendry,Florida,12051,659,20 +2020-06-17,Hendry,Florida,12051,675,21 +2020-06-18,Hendry,Florida,12051,700,21 +2020-06-19,Hendry,Florida,12051,724,22 +2020-06-20,Hendry,Florida,12051,747,22 +2020-06-21,Hendry,Florida,12051,759,22 +2020-06-22,Hendry,Florida,12051,763,22 +2020-06-23,Hendry,Florida,12051,780,24 +2020-06-24,Hendry,Florida,12051,796,24 +2020-06-25,Hendry,Florida,12051,810,24 +2020-06-26,Hendry,Florida,12051,851,24 +2020-06-27,Hendry,Florida,12051,895,25 +2020-06-28,Hendry,Florida,12051,923,25 +2020-06-29,Hendry,Florida,12051,938,25 +2020-06-30,Hendry,Florida,12051,953,25 +2020-07-01,Hendry,Florida,12051,980,25 +2020-07-02,Hendry,Florida,12051,993,25 +2020-07-03,Hendry,Florida,12051,1021,27 +2020-07-04,Hendry,Florida,12051,1052,27 +2020-07-05,Hendry,Florida,12051,1085,27 +2020-07-06,Hendry,Florida,12051,1101,27 +2020-07-07,Hendry,Florida,12051,1111,27 +2020-07-08,Hendry,Florida,12051,1129,27 +2020-07-09,Hendry,Florida,12051,1135,27 +2020-03-19,Hernando,Florida,12053,4,0 +2020-03-20,Hernando,Florida,12053,4,0 +2020-03-21,Hernando,Florida,12053,5,0 +2020-03-22,Hernando,Florida,12053,5,0 +2020-03-23,Hernando,Florida,12053,5,0 +2020-03-24,Hernando,Florida,12053,7,0 +2020-03-25,Hernando,Florida,12053,8,0 +2020-03-26,Hernando,Florida,12053,9,0 +2020-03-27,Hernando,Florida,12053,12,0 +2020-03-28,Hernando,Florida,12053,14,0 +2020-03-29,Hernando,Florida,12053,20,0 +2020-03-30,Hernando,Florida,12053,21,0 +2020-03-31,Hernando,Florida,12053,24,0 +2020-04-01,Hernando,Florida,12053,28,0 +2020-04-02,Hernando,Florida,12053,34,0 +2020-04-03,Hernando,Florida,12053,38,0 +2020-04-04,Hernando,Florida,12053,40,0 +2020-04-05,Hernando,Florida,12053,43,0 +2020-04-06,Hernando,Florida,12053,48,0 +2020-04-07,Hernando,Florida,12053,51,1 +2020-04-08,Hernando,Florida,12053,57,1 +2020-04-09,Hernando,Florida,12053,62,1 +2020-04-10,Hernando,Florida,12053,64,2 +2020-04-11,Hernando,Florida,12053,69,2 +2020-04-12,Hernando,Florida,12053,71,2 +2020-04-13,Hernando,Florida,12053,71,2 +2020-04-14,Hernando,Florida,12053,71,2 +2020-04-15,Hernando,Florida,12053,76,2 +2020-04-16,Hernando,Florida,12053,76,2 +2020-04-17,Hernando,Florida,12053,83,2 +2020-04-18,Hernando,Florida,12053,84,3 +2020-04-19,Hernando,Florida,12053,84,3 +2020-04-20,Hernando,Florida,12053,84,3 +2020-04-21,Hernando,Florida,12053,84,3 +2020-04-22,Hernando,Florida,12053,84,3 +2020-04-23,Hernando,Florida,12053,83,3 +2020-04-24,Hernando,Florida,12053,86,3 +2020-04-25,Hernando,Florida,12053,89,3 +2020-04-26,Hernando,Florida,12053,88,3 +2020-04-27,Hernando,Florida,12053,89,4 +2020-04-28,Hernando,Florida,12053,89,4 +2020-04-29,Hernando,Florida,12053,89,4 +2020-04-30,Hernando,Florida,12053,90,5 +2020-05-01,Hernando,Florida,12053,92,5 +2020-05-02,Hernando,Florida,12053,92,5 +2020-05-03,Hernando,Florida,12053,94,5 +2020-05-04,Hernando,Florida,12053,96,5 +2020-05-05,Hernando,Florida,12053,96,5 +2020-05-06,Hernando,Florida,12053,97,5 +2020-05-07,Hernando,Florida,12053,97,5 +2020-05-08,Hernando,Florida,12053,98,5 +2020-05-09,Hernando,Florida,12053,98,5 +2020-05-10,Hernando,Florida,12053,100,5 +2020-05-11,Hernando,Florida,12053,101,5 +2020-05-12,Hernando,Florida,12053,101,5 +2020-05-13,Hernando,Florida,12053,101,5 +2020-05-14,Hernando,Florida,12053,104,5 +2020-05-15,Hernando,Florida,12053,105,5 +2020-05-16,Hernando,Florida,12053,108,5 +2020-05-17,Hernando,Florida,12053,109,5 +2020-05-18,Hernando,Florida,12053,110,5 +2020-05-19,Hernando,Florida,12053,109,5 +2020-05-20,Hernando,Florida,12053,107,5 +2020-05-21,Hernando,Florida,12053,108,5 +2020-05-22,Hernando,Florida,12053,110,5 +2020-05-23,Hernando,Florida,12053,109,5 +2020-05-24,Hernando,Florida,12053,109,5 +2020-05-25,Hernando,Florida,12053,112,5 +2020-05-26,Hernando,Florida,12053,112,5 +2020-05-27,Hernando,Florida,12053,113,5 +2020-05-28,Hernando,Florida,12053,113,5 +2020-05-29,Hernando,Florida,12053,113,5 +2020-05-30,Hernando,Florida,12053,113,5 +2020-05-31,Hernando,Florida,12053,115,5 +2020-06-01,Hernando,Florida,12053,115,5 +2020-06-02,Hernando,Florida,12053,118,5 +2020-06-03,Hernando,Florida,12053,120,5 +2020-06-04,Hernando,Florida,12053,122,5 +2020-06-05,Hernando,Florida,12053,122,5 +2020-06-06,Hernando,Florida,12053,122,5 +2020-06-07,Hernando,Florida,12053,125,5 +2020-06-08,Hernando,Florida,12053,126,5 +2020-06-09,Hernando,Florida,12053,127,5 +2020-06-10,Hernando,Florida,12053,129,5 +2020-06-11,Hernando,Florida,12053,130,5 +2020-06-12,Hernando,Florida,12053,132,5 +2020-06-13,Hernando,Florida,12053,135,5 +2020-06-14,Hernando,Florida,12053,140,5 +2020-06-15,Hernando,Florida,12053,141,5 +2020-06-16,Hernando,Florida,12053,146,5 +2020-06-17,Hernando,Florida,12053,147,5 +2020-06-18,Hernando,Florida,12053,151,5 +2020-06-19,Hernando,Florida,12053,158,5 +2020-06-20,Hernando,Florida,12053,171,5 +2020-06-21,Hernando,Florida,12053,185,5 +2020-06-22,Hernando,Florida,12053,200,5 +2020-06-23,Hernando,Florida,12053,206,5 +2020-06-24,Hernando,Florida,12053,218,5 +2020-06-25,Hernando,Florida,12053,227,5 +2020-06-26,Hernando,Florida,12053,260,5 +2020-06-27,Hernando,Florida,12053,312,5 +2020-06-28,Hernando,Florida,12053,346,5 +2020-06-29,Hernando,Florida,12053,361,5 +2020-06-30,Hernando,Florida,12053,373,5 +2020-07-01,Hernando,Florida,12053,408,5 +2020-07-02,Hernando,Florida,12053,451,5 +2020-07-03,Hernando,Florida,12053,472,5 +2020-07-04,Hernando,Florida,12053,521,5 +2020-07-05,Hernando,Florida,12053,541,5 +2020-07-06,Hernando,Florida,12053,557,6 +2020-07-07,Hernando,Florida,12053,592,6 +2020-07-08,Hernando,Florida,12053,659,6 +2020-07-09,Hernando,Florida,12053,708,6 +2020-03-21,Highlands,Florida,12055,1,0 +2020-03-22,Highlands,Florida,12055,1,0 +2020-03-23,Highlands,Florida,12055,2,0 +2020-03-24,Highlands,Florida,12055,4,0 +2020-03-25,Highlands,Florida,12055,5,0 +2020-03-26,Highlands,Florida,12055,5,1 +2020-03-27,Highlands,Florida,12055,6,1 +2020-03-28,Highlands,Florida,12055,10,1 +2020-03-29,Highlands,Florida,12055,12,1 +2020-03-30,Highlands,Florida,12055,14,1 +2020-03-31,Highlands,Florida,12055,17,1 +2020-04-01,Highlands,Florida,12055,21,1 +2020-04-02,Highlands,Florida,12055,24,1 +2020-04-03,Highlands,Florida,12055,26,2 +2020-04-04,Highlands,Florida,12055,30,2 +2020-04-05,Highlands,Florida,12055,35,2 +2020-04-06,Highlands,Florida,12055,36,2 +2020-04-07,Highlands,Florida,12055,37,2 +2020-04-08,Highlands,Florida,12055,44,4 +2020-04-09,Highlands,Florida,12055,46,4 +2020-04-10,Highlands,Florida,12055,47,4 +2020-04-11,Highlands,Florida,12055,54,5 +2020-04-12,Highlands,Florida,12055,56,5 +2020-04-13,Highlands,Florida,12055,61,5 +2020-04-14,Highlands,Florida,12055,62,5 +2020-04-15,Highlands,Florida,12055,64,6 +2020-04-16,Highlands,Florida,12055,66,6 +2020-04-17,Highlands,Florida,12055,66,6 +2020-04-18,Highlands,Florida,12055,66,6 +2020-04-19,Highlands,Florida,12055,70,6 +2020-04-20,Highlands,Florida,12055,71,7 +2020-04-21,Highlands,Florida,12055,71,7 +2020-04-22,Highlands,Florida,12055,71,7 +2020-04-23,Highlands,Florida,12055,74,7 +2020-04-24,Highlands,Florida,12055,76,7 +2020-04-25,Highlands,Florida,12055,76,7 +2020-04-26,Highlands,Florida,12055,76,7 +2020-04-27,Highlands,Florida,12055,80,7 +2020-04-28,Highlands,Florida,12055,81,7 +2020-04-29,Highlands,Florida,12055,81,7 +2020-04-30,Highlands,Florida,12055,81,7 +2020-05-01,Highlands,Florida,12055,84,7 +2020-05-02,Highlands,Florida,12055,86,7 +2020-05-03,Highlands,Florida,12055,85,7 +2020-05-04,Highlands,Florida,12055,87,7 +2020-05-05,Highlands,Florida,12055,88,7 +2020-05-06,Highlands,Florida,12055,87,7 +2020-05-07,Highlands,Florida,12055,90,7 +2020-05-08,Highlands,Florida,12055,93,8 +2020-05-09,Highlands,Florida,12055,96,8 +2020-05-10,Highlands,Florida,12055,98,8 +2020-05-11,Highlands,Florida,12055,99,8 +2020-05-12,Highlands,Florida,12055,99,8 +2020-05-13,Highlands,Florida,12055,100,8 +2020-05-14,Highlands,Florida,12055,103,8 +2020-05-15,Highlands,Florida,12055,103,8 +2020-05-16,Highlands,Florida,12055,104,8 +2020-05-17,Highlands,Florida,12055,104,8 +2020-05-18,Highlands,Florida,12055,104,8 +2020-05-19,Highlands,Florida,12055,107,8 +2020-05-20,Highlands,Florida,12055,107,8 +2020-05-21,Highlands,Florida,12055,110,8 +2020-05-22,Highlands,Florida,12055,111,8 +2020-05-23,Highlands,Florida,12055,112,8 +2020-05-24,Highlands,Florida,12055,113,8 +2020-05-25,Highlands,Florida,12055,114,8 +2020-05-26,Highlands,Florida,12055,114,8 +2020-05-27,Highlands,Florida,12055,114,8 +2020-05-28,Highlands,Florida,12055,119,8 +2020-05-29,Highlands,Florida,12055,120,9 +2020-05-30,Highlands,Florida,12055,127,9 +2020-05-31,Highlands,Florida,12055,129,9 +2020-06-01,Highlands,Florida,12055,130,9 +2020-06-02,Highlands,Florida,12055,132,9 +2020-06-03,Highlands,Florida,12055,134,9 +2020-06-04,Highlands,Florida,12055,138,9 +2020-06-05,Highlands,Florida,12055,141,9 +2020-06-06,Highlands,Florida,12055,143,9 +2020-06-07,Highlands,Florida,12055,146,9 +2020-06-08,Highlands,Florida,12055,150,9 +2020-06-09,Highlands,Florida,12055,150,9 +2020-06-10,Highlands,Florida,12055,153,9 +2020-06-11,Highlands,Florida,12055,160,9 +2020-06-12,Highlands,Florida,12055,169,9 +2020-06-13,Highlands,Florida,12055,170,9 +2020-06-14,Highlands,Florida,12055,171,9 +2020-06-15,Highlands,Florida,12055,172,9 +2020-06-16,Highlands,Florida,12055,192,9 +2020-06-17,Highlands,Florida,12055,197,9 +2020-06-18,Highlands,Florida,12055,200,9 +2020-06-19,Highlands,Florida,12055,206,9 +2020-06-20,Highlands,Florida,12055,215,9 +2020-06-21,Highlands,Florida,12055,226,10 +2020-06-22,Highlands,Florida,12055,238,10 +2020-06-23,Highlands,Florida,12055,258,10 +2020-06-24,Highlands,Florida,12055,270,10 +2020-06-25,Highlands,Florida,12055,279,11 +2020-06-26,Highlands,Florida,12055,284,11 +2020-06-27,Highlands,Florida,12055,373,11 +2020-06-28,Highlands,Florida,12055,324,11 +2020-06-29,Highlands,Florida,12055,345,11 +2020-06-30,Highlands,Florida,12055,350,11 +2020-07-01,Highlands,Florida,12055,365,11 +2020-07-02,Highlands,Florida,12055,372,11 +2020-07-03,Highlands,Florida,12055,390,11 +2020-07-04,Highlands,Florida,12055,397,11 +2020-07-05,Highlands,Florida,12055,405,11 +2020-07-06,Highlands,Florida,12055,416,12 +2020-07-07,Highlands,Florida,12055,435,12 +2020-07-08,Highlands,Florida,12055,457,12 +2020-07-09,Highlands,Florida,12055,473,12 +2020-03-01,Hillsborough,Florida,12057,1,0 +2020-03-02,Hillsborough,Florida,12057,1,0 +2020-03-03,Hillsborough,Florida,12057,2,0 +2020-03-04,Hillsborough,Florida,12057,2,0 +2020-03-05,Hillsborough,Florida,12057,2,0 +2020-03-06,Hillsborough,Florida,12057,2,0 +2020-03-07,Hillsborough,Florida,12057,2,0 +2020-03-08,Hillsborough,Florida,12057,2,0 +2020-03-09,Hillsborough,Florida,12057,2,0 +2020-03-10,Hillsborough,Florida,12057,2,0 +2020-03-11,Hillsborough,Florida,12057,2,0 +2020-03-12,Hillsborough,Florida,12057,3,0 +2020-03-13,Hillsborough,Florida,12057,3,0 +2020-03-14,Hillsborough,Florida,12057,3,0 +2020-03-15,Hillsborough,Florida,12057,6,0 +2020-03-16,Hillsborough,Florida,12057,6,0 +2020-03-17,Hillsborough,Florida,12057,9,0 +2020-03-18,Hillsborough,Florida,12057,14,0 +2020-03-19,Hillsborough,Florida,12057,20,0 +2020-03-20,Hillsborough,Florida,12057,32,0 +2020-03-21,Hillsborough,Florida,12057,47,0 +2020-03-22,Hillsborough,Florida,12057,58,0 +2020-03-23,Hillsborough,Florida,12057,75,0 +2020-03-24,Hillsborough,Florida,12057,95,0 +2020-03-25,Hillsborough,Florida,12057,123,0 +2020-03-26,Hillsborough,Florida,12057,151,1 +2020-03-27,Hillsborough,Florida,12057,174,2 +2020-03-28,Hillsborough,Florida,12057,206,2 +2020-03-29,Hillsborough,Florida,12057,225,2 +2020-03-30,Hillsborough,Florida,12057,272,2 +2020-03-31,Hillsborough,Florida,12057,305,3 +2020-04-01,Hillsborough,Florida,12057,362,3 +2020-04-02,Hillsborough,Florida,12057,404,5 +2020-04-03,Hillsborough,Florida,12057,463,5 +2020-04-04,Hillsborough,Florida,12057,497,5 +2020-04-05,Hillsborough,Florida,12057,536,5 +2020-04-06,Hillsborough,Florida,12057,575,5 +2020-04-07,Hillsborough,Florida,12057,608,7 +2020-04-08,Hillsborough,Florida,12057,631,7 +2020-04-09,Hillsborough,Florida,12057,657,9 +2020-04-10,Hillsborough,Florida,12057,676,12 +2020-04-11,Hillsborough,Florida,12057,698,15 +2020-04-12,Hillsborough,Florida,12057,759,16 +2020-04-13,Hillsborough,Florida,12057,813,16 +2020-04-14,Hillsborough,Florida,12057,819,18 +2020-04-15,Hillsborough,Florida,12057,870,18 +2020-04-16,Hillsborough,Florida,12057,878,18 +2020-04-17,Hillsborough,Florida,12057,924,19 +2020-04-18,Hillsborough,Florida,12057,943,19 +2020-04-19,Hillsborough,Florida,12057,960,19 +2020-04-20,Hillsborough,Florida,12057,973,19 +2020-04-21,Hillsborough,Florida,12057,979,20 +2020-04-22,Hillsborough,Florida,12057,982,20 +2020-04-23,Hillsborough,Florida,12057,1008,21 +2020-04-24,Hillsborough,Florida,12057,1022,21 +2020-04-25,Hillsborough,Florida,12057,1041,21 +2020-04-26,Hillsborough,Florida,12057,1048,21 +2020-04-27,Hillsborough,Florida,12057,1062,21 +2020-04-28,Hillsborough,Florida,12057,1080,22 +2020-04-29,Hillsborough,Florida,12057,1105,23 +2020-04-30,Hillsborough,Florida,12057,1124,23 +2020-05-01,Hillsborough,Florida,12057,1163,24 +2020-05-02,Hillsborough,Florida,12057,1240,24 +2020-05-03,Hillsborough,Florida,12057,1281,27 +2020-05-04,Hillsborough,Florida,12057,1300,29 +2020-05-05,Hillsborough,Florida,12057,1324,32 +2020-05-06,Hillsborough,Florida,12057,1331,33 +2020-05-07,Hillsborough,Florida,12057,1364,36 +2020-05-08,Hillsborough,Florida,12057,1371,37 +2020-05-09,Hillsborough,Florida,12057,1400,37 +2020-05-10,Hillsborough,Florida,12057,1432,37 +2020-05-11,Hillsborough,Florida,12057,1448,38 +2020-05-12,Hillsborough,Florida,12057,1473,41 +2020-05-13,Hillsborough,Florida,12057,1494,44 +2020-05-14,Hillsborough,Florida,12057,1530,46 +2020-05-15,Hillsborough,Florida,12057,1568,47 +2020-05-16,Hillsborough,Florida,12057,1585,51 +2020-05-17,Hillsborough,Florida,12057,1614,53 +2020-05-18,Hillsborough,Florida,12057,1653,55 +2020-05-19,Hillsborough,Florida,12057,1670,60 +2020-05-20,Hillsborough,Florida,12057,1703,64 +2020-05-21,Hillsborough,Florida,12057,1767,64 +2020-05-22,Hillsborough,Florida,12057,1790,70 +2020-05-23,Hillsborough,Florida,12057,1823,72 +2020-05-24,Hillsborough,Florida,12057,1883,72 +2020-05-25,Hillsborough,Florida,12057,1939,72 +2020-05-26,Hillsborough,Florida,12057,1969,72 +2020-05-27,Hillsborough,Florida,12057,1995,72 +2020-05-28,Hillsborough,Florida,12057,2019,76 +2020-05-29,Hillsborough,Florida,12057,2069,79 +2020-05-30,Hillsborough,Florida,12057,2129,81 +2020-05-31,Hillsborough,Florida,12057,2201,81 +2020-06-01,Hillsborough,Florida,12057,2251,81 +2020-06-02,Hillsborough,Florida,12057,2285,81 +2020-06-03,Hillsborough,Florida,12057,2384,84 +2020-06-04,Hillsborough,Florida,12057,2479,85 +2020-06-05,Hillsborough,Florida,12057,2554,88 +2020-06-06,Hillsborough,Florida,12057,2643,90 +2020-06-07,Hillsborough,Florida,12057,2748,90 +2020-06-08,Hillsborough,Florida,12057,2861,91 +2020-06-09,Hillsborough,Florida,12057,2923,93 +2020-06-10,Hillsborough,Florida,12057,3027,94 +2020-06-11,Hillsborough,Florida,12057,3174,96 +2020-06-12,Hillsborough,Florida,12057,3295,99 +2020-06-13,Hillsborough,Florida,12057,3504,99 +2020-06-14,Hillsborough,Florida,12057,3613,99 +2020-06-15,Hillsborough,Florida,12057,3826,99 +2020-06-16,Hillsborough,Florida,12057,4029,103 +2020-06-17,Hillsborough,Florida,12057,4273,104 +2020-06-18,Hillsborough,Florida,12057,4610,105 +2020-06-19,Hillsborough,Florida,12057,4982,109 +2020-06-20,Hillsborough,Florida,12057,5319,114 +2020-06-21,Hillsborough,Florida,12057,5580,114 +2020-06-22,Hillsborough,Florida,12057,5973,115 +2020-06-23,Hillsborough,Florida,12057,6176,119 +2020-06-24,Hillsborough,Florida,12057,6892,121 +2020-06-25,Hillsborough,Florida,12057,7329,127 +2020-06-26,Hillsborough,Florida,12057,8018,132 +2020-06-27,Hillsborough,Florida,12057,9130,132 +2020-06-28,Hillsborough,Florida,12057,9918,132 +2020-06-29,Hillsborough,Florida,12057,10323,135 +2020-06-30,Hillsborough,Florida,12057,10752,138 +2020-07-01,Hillsborough,Florida,12057,11465,140 +2020-07-02,Hillsborough,Florida,12057,12376,145 +2020-07-03,Hillsborough,Florida,12057,13044,148 +2020-07-04,Hillsborough,Florida,12057,13700,150 +2020-07-05,Hillsborough,Florida,12057,14336,150 +2020-07-06,Hillsborough,Florida,12057,14677,158 +2020-07-07,Hillsborough,Florida,12057,15362,163 +2020-07-08,Hillsborough,Florida,12057,16099,163 +2020-07-09,Hillsborough,Florida,12057,16666,182 +2020-03-30,Holmes,Florida,12059,1,0 +2020-03-31,Holmes,Florida,12059,1,0 +2020-04-01,Holmes,Florida,12059,1,0 +2020-04-02,Holmes,Florida,12059,1,0 +2020-04-03,Holmes,Florida,12059,1,0 +2020-04-04,Holmes,Florida,12059,1,0 +2020-04-05,Holmes,Florida,12059,1,0 +2020-04-06,Holmes,Florida,12059,1,0 +2020-04-07,Holmes,Florida,12059,2,0 +2020-04-08,Holmes,Florida,12059,2,0 +2020-04-09,Holmes,Florida,12059,2,0 +2020-04-10,Holmes,Florida,12059,2,0 +2020-04-11,Holmes,Florida,12059,2,0 +2020-04-12,Holmes,Florida,12059,2,0 +2020-04-13,Holmes,Florida,12059,2,0 +2020-04-14,Holmes,Florida,12059,4,0 +2020-04-15,Holmes,Florida,12059,4,0 +2020-04-16,Holmes,Florida,12059,4,0 +2020-04-17,Holmes,Florida,12059,5,0 +2020-04-18,Holmes,Florida,12059,5,0 +2020-04-19,Holmes,Florida,12059,6,0 +2020-04-20,Holmes,Florida,12059,6,0 +2020-04-21,Holmes,Florida,12059,8,0 +2020-04-22,Holmes,Florida,12059,8,0 +2020-04-23,Holmes,Florida,12059,9,0 +2020-04-24,Holmes,Florida,12059,9,0 +2020-04-25,Holmes,Florida,12059,9,0 +2020-04-26,Holmes,Florida,12059,9,0 +2020-04-27,Holmes,Florida,12059,9,0 +2020-04-28,Holmes,Florida,12059,9,0 +2020-04-29,Holmes,Florida,12059,9,0 +2020-04-30,Holmes,Florida,12059,10,0 +2020-05-01,Holmes,Florida,12059,10,0 +2020-05-02,Holmes,Florida,12059,10,0 +2020-05-03,Holmes,Florida,12059,10,0 +2020-05-04,Holmes,Florida,12059,10,0 +2020-05-05,Holmes,Florida,12059,10,0 +2020-05-06,Holmes,Florida,12059,10,0 +2020-05-07,Holmes,Florida,12059,10,0 +2020-05-08,Holmes,Florida,12059,10,0 +2020-05-09,Holmes,Florida,12059,10,0 +2020-05-10,Holmes,Florida,12059,10,0 +2020-05-11,Holmes,Florida,12059,10,0 +2020-05-12,Holmes,Florida,12059,10,0 +2020-05-13,Holmes,Florida,12059,10,0 +2020-05-14,Holmes,Florida,12059,10,0 +2020-05-15,Holmes,Florida,12059,11,0 +2020-05-16,Holmes,Florida,12059,10,0 +2020-05-17,Holmes,Florida,12059,10,0 +2020-05-18,Holmes,Florida,12059,12,0 +2020-05-19,Holmes,Florida,12059,10,0 +2020-05-20,Holmes,Florida,12059,11,0 +2020-05-21,Holmes,Florida,12059,14,0 +2020-05-22,Holmes,Florida,12059,16,0 +2020-05-23,Holmes,Florida,12059,14,0 +2020-05-24,Holmes,Florida,12059,14,0 +2020-05-25,Holmes,Florida,12059,14,0 +2020-05-26,Holmes,Florida,12059,18,0 +2020-05-27,Holmes,Florida,12059,18,0 +2020-05-28,Holmes,Florida,12059,18,0 +2020-05-29,Holmes,Florida,12059,19,0 +2020-05-30,Holmes,Florida,12059,19,0 +2020-05-31,Holmes,Florida,12059,19,0 +2020-06-01,Holmes,Florida,12059,19,0 +2020-06-02,Holmes,Florida,12059,23,0 +2020-06-03,Holmes,Florida,12059,24,0 +2020-06-04,Holmes,Florida,12059,26,0 +2020-06-05,Holmes,Florida,12059,30,0 +2020-06-06,Holmes,Florida,12059,30,0 +2020-06-07,Holmes,Florida,12059,30,0 +2020-06-08,Holmes,Florida,12059,30,0 +2020-06-09,Holmes,Florida,12059,30,0 +2020-06-10,Holmes,Florida,12059,31,0 +2020-06-11,Holmes,Florida,12059,31,0 +2020-06-12,Holmes,Florida,12059,31,0 +2020-06-13,Holmes,Florida,12059,31,0 +2020-06-14,Holmes,Florida,12059,31,0 +2020-06-15,Holmes,Florida,12059,31,0 +2020-06-16,Holmes,Florida,12059,31,0 +2020-06-17,Holmes,Florida,12059,32,0 +2020-06-18,Holmes,Florida,12059,33,0 +2020-06-19,Holmes,Florida,12059,45,0 +2020-06-20,Holmes,Florida,12059,47,0 +2020-06-21,Holmes,Florida,12059,47,0 +2020-06-22,Holmes,Florida,12059,58,0 +2020-06-23,Holmes,Florida,12059,121,0 +2020-06-24,Holmes,Florida,12059,137,0 +2020-06-25,Holmes,Florida,12059,147,0 +2020-06-26,Holmes,Florida,12059,150,0 +2020-06-27,Holmes,Florida,12059,161,0 +2020-06-28,Holmes,Florida,12059,161,0 +2020-06-29,Holmes,Florida,12059,161,0 +2020-06-30,Holmes,Florida,12059,177,0 +2020-07-01,Holmes,Florida,12059,181,0 +2020-07-02,Holmes,Florida,12059,191,0 +2020-07-03,Holmes,Florida,12059,196,0 +2020-07-04,Holmes,Florida,12059,195,0 +2020-07-05,Holmes,Florida,12059,199,0 +2020-07-06,Holmes,Florida,12059,199,0 +2020-07-07,Holmes,Florida,12059,201,0 +2020-07-08,Holmes,Florida,12059,207,0 +2020-07-09,Holmes,Florida,12059,212,0 +2020-03-19,Indian River,Florida,12061,1,0 +2020-03-20,Indian River,Florida,12061,3,0 +2020-03-21,Indian River,Florida,12061,5,0 +2020-03-22,Indian River,Florida,12061,8,0 +2020-03-23,Indian River,Florida,12061,10,0 +2020-03-24,Indian River,Florida,12061,12,0 +2020-03-25,Indian River,Florida,12061,12,0 +2020-03-26,Indian River,Florida,12061,14,0 +2020-03-27,Indian River,Florida,12061,15,0 +2020-03-28,Indian River,Florida,12061,16,0 +2020-03-29,Indian River,Florida,12061,20,0 +2020-03-30,Indian River,Florida,12061,25,0 +2020-03-31,Indian River,Florida,12061,33,0 +2020-04-01,Indian River,Florida,12061,35,0 +2020-04-02,Indian River,Florida,12061,41,0 +2020-04-03,Indian River,Florida,12061,47,0 +2020-04-04,Indian River,Florida,12061,50,0 +2020-04-05,Indian River,Florida,12061,55,0 +2020-04-06,Indian River,Florida,12061,60,0 +2020-04-07,Indian River,Florida,12061,62,0 +2020-04-08,Indian River,Florida,12061,65,0 +2020-04-09,Indian River,Florida,12061,68,0 +2020-04-10,Indian River,Florida,12061,70,1 +2020-04-11,Indian River,Florida,12061,72,1 +2020-04-12,Indian River,Florida,12061,74,1 +2020-04-13,Indian River,Florida,12061,77,1 +2020-04-14,Indian River,Florida,12061,77,1 +2020-04-15,Indian River,Florida,12061,78,1 +2020-04-16,Indian River,Florida,12061,83,2 +2020-04-17,Indian River,Florida,12061,83,2 +2020-04-18,Indian River,Florida,12061,83,2 +2020-04-19,Indian River,Florida,12061,84,3 +2020-04-20,Indian River,Florida,12061,85,4 +2020-04-21,Indian River,Florida,12061,85,4 +2020-04-22,Indian River,Florida,12061,85,5 +2020-04-23,Indian River,Florida,12061,88,5 +2020-04-24,Indian River,Florida,12061,89,5 +2020-04-25,Indian River,Florida,12061,89,5 +2020-04-26,Indian River,Florida,12061,89,5 +2020-04-27,Indian River,Florida,12061,90,5 +2020-04-28,Indian River,Florida,12061,90,6 +2020-04-29,Indian River,Florida,12061,90,7 +2020-04-30,Indian River,Florida,12061,90,7 +2020-05-01,Indian River,Florida,12061,91,8 +2020-05-02,Indian River,Florida,12061,92,8 +2020-05-03,Indian River,Florida,12061,97,8 +2020-05-04,Indian River,Florida,12061,98,8 +2020-05-05,Indian River,Florida,12061,99,8 +2020-05-06,Indian River,Florida,12061,99,8 +2020-05-07,Indian River,Florida,12061,99,8 +2020-05-08,Indian River,Florida,12061,100,8 +2020-05-09,Indian River,Florida,12061,100,8 +2020-05-10,Indian River,Florida,12061,100,8 +2020-05-11,Indian River,Florida,12061,100,8 +2020-05-12,Indian River,Florida,12061,102,9 +2020-05-13,Indian River,Florida,12061,102,9 +2020-05-14,Indian River,Florida,12061,103,9 +2020-05-15,Indian River,Florida,12061,104,9 +2020-05-16,Indian River,Florida,12061,104,9 +2020-05-17,Indian River,Florida,12061,106,9 +2020-05-18,Indian River,Florida,12061,106,9 +2020-05-19,Indian River,Florida,12061,108,9 +2020-05-20,Indian River,Florida,12061,108,9 +2020-05-21,Indian River,Florida,12061,110,9 +2020-05-22,Indian River,Florida,12061,112,9 +2020-05-23,Indian River,Florida,12061,113,9 +2020-05-24,Indian River,Florida,12061,116,9 +2020-05-25,Indian River,Florida,12061,117,9 +2020-05-26,Indian River,Florida,12061,119,9 +2020-05-27,Indian River,Florida,12061,119,9 +2020-05-28,Indian River,Florida,12061,120,9 +2020-05-29,Indian River,Florida,12061,122,9 +2020-05-30,Indian River,Florida,12061,126,10 +2020-05-31,Indian River,Florida,12061,130,10 +2020-06-01,Indian River,Florida,12061,133,10 +2020-06-02,Indian River,Florida,12061,138,10 +2020-06-03,Indian River,Florida,12061,139,10 +2020-06-04,Indian River,Florida,12061,144,10 +2020-06-05,Indian River,Florida,12061,154,11 +2020-06-06,Indian River,Florida,12061,160,11 +2020-06-07,Indian River,Florida,12061,164,11 +2020-06-08,Indian River,Florida,12061,167,11 +2020-06-09,Indian River,Florida,12061,167,11 +2020-06-10,Indian River,Florida,12061,172,11 +2020-06-11,Indian River,Florida,12061,177,11 +2020-06-12,Indian River,Florida,12061,190,11 +2020-06-13,Indian River,Florida,12061,197,11 +2020-06-14,Indian River,Florida,12061,205,11 +2020-06-15,Indian River,Florida,12061,216,12 +2020-06-16,Indian River,Florida,12061,234,12 +2020-06-17,Indian River,Florida,12061,256,12 +2020-06-18,Indian River,Florida,12061,284,12 +2020-06-19,Indian River,Florida,12061,317,13 +2020-06-20,Indian River,Florida,12061,369,14 +2020-06-21,Indian River,Florida,12061,389,15 +2020-06-22,Indian River,Florida,12061,409,15 +2020-06-23,Indian River,Florida,12061,422,15 +2020-06-24,Indian River,Florida,12061,457,15 +2020-06-25,Indian River,Florida,12061,479,16 +2020-06-26,Indian River,Florida,12061,541,16 +2020-06-27,Indian River,Florida,12061,620,16 +2020-06-28,Indian River,Florida,12061,655,16 +2020-06-29,Indian River,Florida,12061,686,16 +2020-06-30,Indian River,Florida,12061,697,16 +2020-07-01,Indian River,Florida,12061,739,16 +2020-07-02,Indian River,Florida,12061,772,16 +2020-07-03,Indian River,Florida,12061,820,16 +2020-07-04,Indian River,Florida,12061,897,16 +2020-07-05,Indian River,Florida,12061,932,17 +2020-07-06,Indian River,Florida,12061,953,17 +2020-07-07,Indian River,Florida,12061,969,17 +2020-07-08,Indian River,Florida,12061,992,17 +2020-07-09,Indian River,Florida,12061,1045,18 +2020-03-19,Jackson,Florida,12063,1,0 +2020-03-20,Jackson,Florida,12063,1,0 +2020-03-21,Jackson,Florida,12063,1,0 +2020-03-22,Jackson,Florida,12063,1,0 +2020-03-23,Jackson,Florida,12063,1,0 +2020-03-24,Jackson,Florida,12063,1,0 +2020-03-25,Jackson,Florida,12063,1,0 +2020-03-26,Jackson,Florida,12063,1,0 +2020-03-27,Jackson,Florida,12063,1,0 +2020-03-28,Jackson,Florida,12063,1,0 +2020-03-29,Jackson,Florida,12063,2,0 +2020-03-30,Jackson,Florida,12063,2,0 +2020-03-31,Jackson,Florida,12063,2,0 +2020-04-01,Jackson,Florida,12063,4,0 +2020-04-02,Jackson,Florida,12063,4,0 +2020-04-03,Jackson,Florida,12063,4,0 +2020-04-04,Jackson,Florida,12063,4,0 +2020-04-05,Jackson,Florida,12063,4,0 +2020-04-06,Jackson,Florida,12063,4,0 +2020-04-07,Jackson,Florida,12063,4,0 +2020-04-08,Jackson,Florida,12063,4,0 +2020-04-09,Jackson,Florida,12063,5,0 +2020-04-10,Jackson,Florida,12063,5,0 +2020-04-11,Jackson,Florida,12063,6,0 +2020-04-12,Jackson,Florida,12063,6,0 +2020-04-13,Jackson,Florida,12063,6,0 +2020-04-14,Jackson,Florida,12063,6,0 +2020-04-15,Jackson,Florida,12063,6,0 +2020-04-16,Jackson,Florida,12063,8,0 +2020-04-17,Jackson,Florida,12063,8,0 +2020-04-18,Jackson,Florida,12063,8,0 +2020-04-19,Jackson,Florida,12063,8,0 +2020-04-20,Jackson,Florida,12063,9,0 +2020-04-21,Jackson,Florida,12063,11,0 +2020-04-22,Jackson,Florida,12063,11,0 +2020-04-23,Jackson,Florida,12063,13,0 +2020-04-24,Jackson,Florida,12063,13,0 +2020-04-25,Jackson,Florida,12063,13,0 +2020-04-26,Jackson,Florida,12063,13,0 +2020-04-27,Jackson,Florida,12063,13,0 +2020-04-28,Jackson,Florida,12063,13,0 +2020-04-29,Jackson,Florida,12063,14,0 +2020-04-30,Jackson,Florida,12063,14,0 +2020-05-01,Jackson,Florida,12063,14,0 +2020-05-02,Jackson,Florida,12063,14,0 +2020-05-03,Jackson,Florida,12063,15,0 +2020-05-04,Jackson,Florida,12063,15,0 +2020-05-05,Jackson,Florida,12063,15,0 +2020-05-06,Jackson,Florida,12063,23,0 +2020-05-07,Jackson,Florida,12063,31,0 +2020-05-08,Jackson,Florida,12063,74,0 +2020-05-09,Jackson,Florida,12063,72,0 +2020-05-10,Jackson,Florida,12063,91,0 +2020-05-11,Jackson,Florida,12063,97,0 +2020-05-12,Jackson,Florida,12063,131,0 +2020-05-13,Jackson,Florida,12063,106,0 +2020-05-14,Jackson,Florida,12063,105,0 +2020-05-15,Jackson,Florida,12063,125,0 +2020-05-16,Jackson,Florida,12063,126,0 +2020-05-17,Jackson,Florida,12063,129,0 +2020-05-18,Jackson,Florida,12063,131,0 +2020-05-19,Jackson,Florida,12063,148,0 +2020-05-20,Jackson,Florida,12063,171,0 +2020-05-21,Jackson,Florida,12063,173,0 +2020-05-22,Jackson,Florida,12063,219,0 +2020-05-23,Jackson,Florida,12063,225,0 +2020-05-24,Jackson,Florida,12063,230,0 +2020-05-25,Jackson,Florida,12063,238,0 +2020-05-26,Jackson,Florida,12063,239,0 +2020-05-27,Jackson,Florida,12063,240,0 +2020-05-28,Jackson,Florida,12063,241,0 +2020-05-29,Jackson,Florida,12063,248,1 +2020-05-30,Jackson,Florida,12063,249,1 +2020-05-31,Jackson,Florida,12063,251,1 +2020-06-01,Jackson,Florida,12063,256,1 +2020-06-02,Jackson,Florida,12063,266,1 +2020-06-03,Jackson,Florida,12063,269,1 +2020-06-04,Jackson,Florida,12063,290,1 +2020-06-05,Jackson,Florida,12063,298,1 +2020-06-06,Jackson,Florida,12063,298,1 +2020-06-07,Jackson,Florida,12063,308,1 +2020-06-08,Jackson,Florida,12063,309,1 +2020-06-09,Jackson,Florida,12063,310,1 +2020-06-10,Jackson,Florida,12063,311,1 +2020-06-11,Jackson,Florida,12063,315,1 +2020-06-12,Jackson,Florida,12063,316,1 +2020-06-13,Jackson,Florida,12063,318,1 +2020-06-14,Jackson,Florida,12063,319,1 +2020-06-15,Jackson,Florida,12063,320,1 +2020-06-16,Jackson,Florida,12063,326,1 +2020-06-17,Jackson,Florida,12063,329,2 +2020-06-18,Jackson,Florida,12063,327,2 +2020-06-19,Jackson,Florida,12063,329,2 +2020-06-20,Jackson,Florida,12063,330,2 +2020-06-21,Jackson,Florida,12063,333,2 +2020-06-22,Jackson,Florida,12063,338,2 +2020-06-23,Jackson,Florida,12063,341,2 +2020-06-24,Jackson,Florida,12063,342,2 +2020-06-25,Jackson,Florida,12063,347,2 +2020-06-26,Jackson,Florida,12063,350,2 +2020-06-27,Jackson,Florida,12063,353,2 +2020-06-28,Jackson,Florida,12063,359,2 +2020-06-29,Jackson,Florida,12063,359,2 +2020-06-30,Jackson,Florida,12063,363,2 +2020-07-01,Jackson,Florida,12063,365,2 +2020-07-02,Jackson,Florida,12063,381,2 +2020-07-03,Jackson,Florida,12063,394,2 +2020-07-04,Jackson,Florida,12063,401,2 +2020-07-05,Jackson,Florida,12063,406,2 +2020-07-06,Jackson,Florida,12063,411,2 +2020-07-07,Jackson,Florida,12063,415,2 +2020-07-08,Jackson,Florida,12063,504,2 +2020-07-09,Jackson,Florida,12063,517,2 +2020-04-04,Jefferson,Florida,12065,1,0 +2020-04-05,Jefferson,Florida,12065,1,0 +2020-04-06,Jefferson,Florida,12065,3,0 +2020-04-07,Jefferson,Florida,12065,4,0 +2020-04-08,Jefferson,Florida,12065,8,0 +2020-04-09,Jefferson,Florida,12065,9,0 +2020-04-10,Jefferson,Florida,12065,9,0 +2020-04-11,Jefferson,Florida,12065,9,0 +2020-04-12,Jefferson,Florida,12065,12,1 +2020-04-13,Jefferson,Florida,12065,12,1 +2020-04-14,Jefferson,Florida,12065,13,1 +2020-04-15,Jefferson,Florida,12065,22,1 +2020-04-16,Jefferson,Florida,12065,23,1 +2020-04-17,Jefferson,Florida,12065,23,1 +2020-04-18,Jefferson,Florida,12065,24,1 +2020-04-19,Jefferson,Florida,12065,26,1 +2020-04-20,Jefferson,Florida,12065,26,1 +2020-04-21,Jefferson,Florida,12065,26,1 +2020-04-22,Jefferson,Florida,12065,26,1 +2020-04-23,Jefferson,Florida,12065,26,1 +2020-04-24,Jefferson,Florida,12065,27,2 +2020-04-25,Jefferson,Florida,12065,27,2 +2020-04-26,Jefferson,Florida,12065,27,2 +2020-04-27,Jefferson,Florida,12065,28,2 +2020-04-28,Jefferson,Florida,12065,28,2 +2020-04-29,Jefferson,Florida,12065,28,2 +2020-04-30,Jefferson,Florida,12065,28,2 +2020-05-01,Jefferson,Florida,12065,28,2 +2020-05-02,Jefferson,Florida,12065,28,2 +2020-05-03,Jefferson,Florida,12065,28,2 +2020-05-04,Jefferson,Florida,12065,28,2 +2020-05-05,Jefferson,Florida,12065,28,2 +2020-05-06,Jefferson,Florida,12065,28,2 +2020-05-07,Jefferson,Florida,12065,28,2 +2020-05-08,Jefferson,Florida,12065,28,2 +2020-05-09,Jefferson,Florida,12065,28,2 +2020-05-10,Jefferson,Florida,12065,28,2 +2020-05-11,Jefferson,Florida,12065,28,2 +2020-05-12,Jefferson,Florida,12065,28,2 +2020-05-13,Jefferson,Florida,12065,28,2 +2020-05-14,Jefferson,Florida,12065,28,2 +2020-05-15,Jefferson,Florida,12065,28,2 +2020-05-16,Jefferson,Florida,12065,28,2 +2020-05-17,Jefferson,Florida,12065,28,2 +2020-05-18,Jefferson,Florida,12065,28,2 +2020-05-19,Jefferson,Florida,12065,28,2 +2020-05-20,Jefferson,Florida,12065,28,2 +2020-05-21,Jefferson,Florida,12065,30,2 +2020-05-22,Jefferson,Florida,12065,29,2 +2020-05-23,Jefferson,Florida,12065,29,3 +2020-05-24,Jefferson,Florida,12065,29,3 +2020-05-25,Jefferson,Florida,12065,29,3 +2020-05-26,Jefferson,Florida,12065,29,3 +2020-05-27,Jefferson,Florida,12065,29,3 +2020-05-28,Jefferson,Florida,12065,29,3 +2020-05-29,Jefferson,Florida,12065,29,3 +2020-05-30,Jefferson,Florida,12065,29,3 +2020-05-31,Jefferson,Florida,12065,29,3 +2020-06-01,Jefferson,Florida,12065,29,3 +2020-06-02,Jefferson,Florida,12065,29,3 +2020-06-03,Jefferson,Florida,12065,29,3 +2020-06-04,Jefferson,Florida,12065,29,3 +2020-06-05,Jefferson,Florida,12065,30,3 +2020-06-06,Jefferson,Florida,12065,31,3 +2020-06-07,Jefferson,Florida,12065,31,3 +2020-06-08,Jefferson,Florida,12065,31,3 +2020-06-09,Jefferson,Florida,12065,31,4 +2020-06-10,Jefferson,Florida,12065,31,4 +2020-06-11,Jefferson,Florida,12065,31,4 +2020-06-12,Jefferson,Florida,12065,31,4 +2020-06-13,Jefferson,Florida,12065,32,4 +2020-06-14,Jefferson,Florida,12065,32,4 +2020-06-15,Jefferson,Florida,12065,32,4 +2020-06-16,Jefferson,Florida,12065,33,4 +2020-06-17,Jefferson,Florida,12065,36,4 +2020-06-18,Jefferson,Florida,12065,36,4 +2020-06-19,Jefferson,Florida,12065,36,4 +2020-06-20,Jefferson,Florida,12065,36,4 +2020-06-21,Jefferson,Florida,12065,36,4 +2020-06-22,Jefferson,Florida,12065,36,4 +2020-06-23,Jefferson,Florida,12065,38,4 +2020-06-24,Jefferson,Florida,12065,38,4 +2020-06-25,Jefferson,Florida,12065,41,4 +2020-06-26,Jefferson,Florida,12065,41,4 +2020-06-27,Jefferson,Florida,12065,45,4 +2020-06-28,Jefferson,Florida,12065,47,4 +2020-06-29,Jefferson,Florida,12065,46,4 +2020-06-30,Jefferson,Florida,12065,49,4 +2020-07-01,Jefferson,Florida,12065,51,4 +2020-07-02,Jefferson,Florida,12065,57,4 +2020-07-03,Jefferson,Florida,12065,57,4 +2020-07-04,Jefferson,Florida,12065,58,4 +2020-07-05,Jefferson,Florida,12065,58,4 +2020-07-06,Jefferson,Florida,12065,65,4 +2020-07-07,Jefferson,Florida,12065,67,4 +2020-07-08,Jefferson,Florida,12065,69,4 +2020-07-09,Jefferson,Florida,12065,72,4 +2020-04-08,Lafayette,Florida,12067,1,0 +2020-04-09,Lafayette,Florida,12067,1,0 +2020-04-10,Lafayette,Florida,12067,1,0 +2020-04-11,Lafayette,Florida,12067,1,0 +2020-04-12,Lafayette,Florida,12067,1,0 +2020-04-13,Lafayette,Florida,12067,1,0 +2020-04-14,Lafayette,Florida,12067,1,0 +2020-04-15,Lafayette,Florida,12067,1,0 +2020-04-16,Lafayette,Florida,12067,1,0 +2020-04-17,Lafayette,Florida,12067,1,0 +2020-04-18,Lafayette,Florida,12067,1,0 +2020-04-19,Lafayette,Florida,12067,1,0 +2020-04-20,Lafayette,Florida,12067,1,0 +2020-04-21,Lafayette,Florida,12067,1,0 +2020-04-22,Lafayette,Florida,12067,1,0 +2020-04-23,Lafayette,Florida,12067,1,0 +2020-04-24,Lafayette,Florida,12067,1,0 +2020-04-25,Lafayette,Florida,12067,1,0 +2020-04-26,Lafayette,Florida,12067,1,0 +2020-04-27,Lafayette,Florida,12067,1,0 +2020-04-28,Lafayette,Florida,12067,1,0 +2020-04-29,Lafayette,Florida,12067,1,0 +2020-04-30,Lafayette,Florida,12067,1,0 +2020-05-01,Lafayette,Florida,12067,2,0 +2020-05-02,Lafayette,Florida,12067,2,0 +2020-05-03,Lafayette,Florida,12067,2,0 +2020-05-04,Lafayette,Florida,12067,2,0 +2020-05-05,Lafayette,Florida,12067,3,0 +2020-05-06,Lafayette,Florida,12067,3,0 +2020-05-07,Lafayette,Florida,12067,3,0 +2020-05-08,Lafayette,Florida,12067,3,0 +2020-05-09,Lafayette,Florida,12067,3,0 +2020-05-10,Lafayette,Florida,12067,3,0 +2020-05-11,Lafayette,Florida,12067,3,0 +2020-05-12,Lafayette,Florida,12067,5,0 +2020-05-13,Lafayette,Florida,12067,5,0 +2020-05-14,Lafayette,Florida,12067,5,0 +2020-05-15,Lafayette,Florida,12067,5,0 +2020-05-16,Lafayette,Florida,12067,6,0 +2020-05-17,Lafayette,Florida,12067,6,0 +2020-05-18,Lafayette,Florida,12067,6,0 +2020-05-19,Lafayette,Florida,12067,6,0 +2020-05-20,Lafayette,Florida,12067,6,0 +2020-05-21,Lafayette,Florida,12067,6,0 +2020-05-22,Lafayette,Florida,12067,7,0 +2020-05-23,Lafayette,Florida,12067,8,0 +2020-05-24,Lafayette,Florida,12067,8,0 +2020-05-25,Lafayette,Florida,12067,8,0 +2020-05-26,Lafayette,Florida,12067,8,0 +2020-05-27,Lafayette,Florida,12067,8,0 +2020-05-28,Lafayette,Florida,12067,8,0 +2020-05-29,Lafayette,Florida,12067,8,0 +2020-05-30,Lafayette,Florida,12067,8,0 +2020-05-31,Lafayette,Florida,12067,8,0 +2020-06-01,Lafayette,Florida,12067,8,0 +2020-06-02,Lafayette,Florida,12067,8,0 +2020-06-03,Lafayette,Florida,12067,8,0 +2020-06-04,Lafayette,Florida,12067,9,0 +2020-06-05,Lafayette,Florida,12067,10,0 +2020-06-06,Lafayette,Florida,12067,10,0 +2020-06-07,Lafayette,Florida,12067,10,0 +2020-06-08,Lafayette,Florida,12067,10,0 +2020-06-09,Lafayette,Florida,12067,13,0 +2020-06-10,Lafayette,Florida,12067,12,0 +2020-06-11,Lafayette,Florida,12067,12,0 +2020-06-12,Lafayette,Florida,12067,12,0 +2020-06-13,Lafayette,Florida,12067,12,0 +2020-06-14,Lafayette,Florida,12067,13,0 +2020-06-15,Lafayette,Florida,12067,13,0 +2020-06-16,Lafayette,Florida,12067,15,0 +2020-06-17,Lafayette,Florida,12067,15,0 +2020-06-18,Lafayette,Florida,12067,16,0 +2020-06-19,Lafayette,Florida,12067,18,0 +2020-06-20,Lafayette,Florida,12067,18,0 +2020-06-21,Lafayette,Florida,12067,19,0 +2020-06-22,Lafayette,Florida,12067,20,0 +2020-06-23,Lafayette,Florida,12067,20,0 +2020-06-24,Lafayette,Florida,12067,20,0 +2020-06-25,Lafayette,Florida,12067,22,0 +2020-06-26,Lafayette,Florida,12067,27,0 +2020-06-27,Lafayette,Florida,12067,31,0 +2020-06-28,Lafayette,Florida,12067,30,0 +2020-06-29,Lafayette,Florida,12067,31,0 +2020-06-30,Lafayette,Florida,12067,32,0 +2020-07-01,Lafayette,Florida,12067,32,0 +2020-07-02,Lafayette,Florida,12067,33,0 +2020-07-03,Lafayette,Florida,12067,34,0 +2020-07-04,Lafayette,Florida,12067,36,0 +2020-07-05,Lafayette,Florida,12067,36,0 +2020-07-06,Lafayette,Florida,12067,40,0 +2020-07-07,Lafayette,Florida,12067,42,0 +2020-07-08,Lafayette,Florida,12067,48,0 +2020-07-09,Lafayette,Florida,12067,49,0 +2020-03-16,Lake,Florida,12069,1,0 +2020-03-17,Lake,Florida,12069,1,0 +2020-03-18,Lake,Florida,12069,2,0 +2020-03-19,Lake,Florida,12069,3,0 +2020-03-20,Lake,Florida,12069,3,0 +2020-03-21,Lake,Florida,12069,6,0 +2020-03-22,Lake,Florida,12069,6,0 +2020-03-23,Lake,Florida,12069,9,0 +2020-03-24,Lake,Florida,12069,14,0 +2020-03-25,Lake,Florida,12069,22,0 +2020-03-26,Lake,Florida,12069,26,0 +2020-03-27,Lake,Florida,12069,32,0 +2020-03-28,Lake,Florida,12069,38,0 +2020-03-29,Lake,Florida,12069,44,0 +2020-03-30,Lake,Florida,12069,50,0 +2020-03-31,Lake,Florida,12069,66,0 +2020-04-01,Lake,Florida,12069,71,0 +2020-04-02,Lake,Florida,12069,82,2 +2020-04-03,Lake,Florida,12069,88,2 +2020-04-04,Lake,Florida,12069,95,2 +2020-04-05,Lake,Florida,12069,101,2 +2020-04-06,Lake,Florida,12069,107,2 +2020-04-07,Lake,Florida,12069,122,2 +2020-04-08,Lake,Florida,12069,139,2 +2020-04-09,Lake,Florida,12069,140,2 +2020-04-10,Lake,Florida,12069,149,3 +2020-04-11,Lake,Florida,12069,150,4 +2020-04-12,Lake,Florida,12069,150,4 +2020-04-13,Lake,Florida,12069,162,4 +2020-04-14,Lake,Florida,12069,169,4 +2020-04-15,Lake,Florida,12069,180,5 +2020-04-16,Lake,Florida,12069,186,5 +2020-04-17,Lake,Florida,12069,197,5 +2020-04-18,Lake,Florida,12069,203,6 +2020-04-19,Lake,Florida,12069,207,6 +2020-04-20,Lake,Florida,12069,211,7 +2020-04-21,Lake,Florida,12069,213,7 +2020-04-22,Lake,Florida,12069,213,7 +2020-04-23,Lake,Florida,12069,217,9 +2020-04-24,Lake,Florida,12069,219,10 +2020-04-25,Lake,Florida,12069,221,10 +2020-04-26,Lake,Florida,12069,222,10 +2020-04-27,Lake,Florida,12069,223,10 +2020-04-28,Lake,Florida,12069,226,10 +2020-04-29,Lake,Florida,12069,227,11 +2020-04-30,Lake,Florida,12069,227,12 +2020-05-01,Lake,Florida,12069,233,13 +2020-05-02,Lake,Florida,12069,234,13 +2020-05-03,Lake,Florida,12069,234,13 +2020-05-04,Lake,Florida,12069,235,13 +2020-05-05,Lake,Florida,12069,235,14 +2020-05-06,Lake,Florida,12069,236,14 +2020-05-07,Lake,Florida,12069,237,14 +2020-05-08,Lake,Florida,12069,237,14 +2020-05-09,Lake,Florida,12069,240,14 +2020-05-10,Lake,Florida,12069,242,14 +2020-05-11,Lake,Florida,12069,243,14 +2020-05-12,Lake,Florida,12069,246,14 +2020-05-13,Lake,Florida,12069,247,14 +2020-05-14,Lake,Florida,12069,248,14 +2020-05-15,Lake,Florida,12069,249,14 +2020-05-16,Lake,Florida,12069,250,14 +2020-05-17,Lake,Florida,12069,252,14 +2020-05-18,Lake,Florida,12069,254,14 +2020-05-19,Lake,Florida,12069,257,14 +2020-05-20,Lake,Florida,12069,260,14 +2020-05-21,Lake,Florida,12069,264,14 +2020-05-22,Lake,Florida,12069,266,15 +2020-05-23,Lake,Florida,12069,271,15 +2020-05-24,Lake,Florida,12069,273,15 +2020-05-25,Lake,Florida,12069,275,15 +2020-05-26,Lake,Florida,12069,277,15 +2020-05-27,Lake,Florida,12069,279,15 +2020-05-28,Lake,Florida,12069,280,15 +2020-05-29,Lake,Florida,12069,291,15 +2020-05-30,Lake,Florida,12069,298,15 +2020-05-31,Lake,Florida,12069,301,15 +2020-06-01,Lake,Florida,12069,304,15 +2020-06-02,Lake,Florida,12069,306,15 +2020-06-03,Lake,Florida,12069,309,15 +2020-06-04,Lake,Florida,12069,313,15 +2020-06-05,Lake,Florida,12069,317,15 +2020-06-06,Lake,Florida,12069,321,15 +2020-06-07,Lake,Florida,12069,329,15 +2020-06-08,Lake,Florida,12069,337,15 +2020-06-09,Lake,Florida,12069,339,15 +2020-06-10,Lake,Florida,12069,342,15 +2020-06-11,Lake,Florida,12069,355,15 +2020-06-12,Lake,Florida,12069,383,15 +2020-06-13,Lake,Florida,12069,452,16 +2020-06-14,Lake,Florida,12069,464,16 +2020-06-15,Lake,Florida,12069,482,16 +2020-06-16,Lake,Florida,12069,498,16 +2020-06-17,Lake,Florida,12069,552,16 +2020-06-18,Lake,Florida,12069,583,19 +2020-06-19,Lake,Florida,12069,646,19 +2020-06-20,Lake,Florida,12069,671,19 +2020-06-21,Lake,Florida,12069,733,19 +2020-06-22,Lake,Florida,12069,763,20 +2020-06-23,Lake,Florida,12069,795,21 +2020-06-24,Lake,Florida,12069,838,21 +2020-06-25,Lake,Florida,12069,881,21 +2020-06-26,Lake,Florida,12069,975,22 +2020-06-27,Lake,Florida,12069,1098,22 +2020-06-28,Lake,Florida,12069,1192,22 +2020-06-29,Lake,Florida,12069,1252,22 +2020-06-30,Lake,Florida,12069,1302,22 +2020-07-01,Lake,Florida,12069,1410,22 +2020-07-02,Lake,Florida,12069,1508,23 +2020-07-03,Lake,Florida,12069,1603,23 +2020-07-04,Lake,Florida,12069,1694,23 +2020-07-05,Lake,Florida,12069,1845,23 +2020-07-06,Lake,Florida,12069,1890,23 +2020-07-07,Lake,Florida,12069,1998,25 +2020-07-08,Lake,Florida,12069,2087,25 +2020-07-09,Lake,Florida,12069,2181,26 +2020-03-06,Lee,Florida,12071,1,1 +2020-03-07,Lee,Florida,12071,2,1 +2020-03-08,Lee,Florida,12071,2,1 +2020-03-09,Lee,Florida,12071,2,1 +2020-03-10,Lee,Florida,12071,2,1 +2020-03-11,Lee,Florida,12071,2,1 +2020-03-12,Lee,Florida,12071,4,1 +2020-03-13,Lee,Florida,12071,4,1 +2020-03-14,Lee,Florida,12071,4,2 +2020-03-15,Lee,Florida,12071,5,2 +2020-03-16,Lee,Florida,12071,5,2 +2020-03-17,Lee,Florida,12071,7,2 +2020-03-18,Lee,Florida,12071,11,2 +2020-03-19,Lee,Florida,12071,11,2 +2020-03-20,Lee,Florida,12071,14,2 +2020-03-21,Lee,Florida,12071,17,2 +2020-03-22,Lee,Florida,12071,26,2 +2020-03-23,Lee,Florida,12071,30,2 +2020-03-24,Lee,Florida,12071,34,3 +2020-03-25,Lee,Florida,12071,52,3 +2020-03-26,Lee,Florida,12071,66,3 +2020-03-27,Lee,Florida,12071,95,5 +2020-03-28,Lee,Florida,12071,119,6 +2020-03-29,Lee,Florida,12071,151,6 +2020-03-30,Lee,Florida,12071,170,6 +2020-03-31,Lee,Florida,12071,206,8 +2020-04-01,Lee,Florida,12071,235,10 +2020-04-02,Lee,Florida,12071,274,10 +2020-04-03,Lee,Florida,12071,303,11 +2020-04-04,Lee,Florida,12071,347,11 +2020-04-05,Lee,Florida,12071,378,11 +2020-04-06,Lee,Florida,12071,399,14 +2020-04-07,Lee,Florida,12071,438,14 +2020-04-08,Lee,Florida,12071,475,14 +2020-04-09,Lee,Florida,12071,521,14 +2020-04-10,Lee,Florida,12071,571,16 +2020-04-11,Lee,Florida,12071,597,16 +2020-04-12,Lee,Florida,12071,616,16 +2020-04-13,Lee,Florida,12071,641,18 +2020-04-14,Lee,Florida,12071,656,19 +2020-04-15,Lee,Florida,12071,677,23 +2020-04-16,Lee,Florida,12071,686,24 +2020-04-17,Lee,Florida,12071,720,25 +2020-04-18,Lee,Florida,12071,738,25 +2020-04-19,Lee,Florida,12071,768,27 +2020-04-20,Lee,Florida,12071,784,28 +2020-04-21,Lee,Florida,12071,794,29 +2020-04-22,Lee,Florida,12071,793,29 +2020-04-23,Lee,Florida,12071,886,32 +2020-04-24,Lee,Florida,12071,939,36 +2020-04-25,Lee,Florida,12071,943,36 +2020-04-26,Lee,Florida,12071,960,37 +2020-04-27,Lee,Florida,12071,970,37 +2020-04-28,Lee,Florida,12071,989,40 +2020-04-29,Lee,Florida,12071,1002,41 +2020-04-30,Lee,Florida,12071,1020,43 +2020-05-01,Lee,Florida,12071,1066,42 +2020-05-02,Lee,Florida,12071,1084,42 +2020-05-03,Lee,Florida,12071,1117,45 +2020-05-04,Lee,Florida,12071,1137,46 +2020-05-05,Lee,Florida,12071,1159,49 +2020-05-06,Lee,Florida,12071,1175,54 +2020-05-07,Lee,Florida,12071,1211,54 +2020-05-08,Lee,Florida,12071,1218,62 +2020-05-09,Lee,Florida,12071,1248,65 +2020-05-10,Lee,Florida,12071,1267,65 +2020-05-11,Lee,Florida,12071,1284,68 +2020-05-12,Lee,Florida,12071,1316,69 +2020-05-13,Lee,Florida,12071,1331,70 +2020-05-14,Lee,Florida,12071,1349,73 +2020-05-15,Lee,Florida,12071,1384,74 +2020-05-16,Lee,Florida,12071,1400,79 +2020-05-17,Lee,Florida,12071,1455,78 +2020-05-18,Lee,Florida,12071,1480,89 +2020-05-19,Lee,Florida,12071,1519,89 +2020-05-20,Lee,Florida,12071,1541,89 +2020-05-21,Lee,Florida,12071,1584,88 +2020-05-22,Lee,Florida,12071,1665,92 +2020-05-23,Lee,Florida,12071,1676,92 +2020-05-24,Lee,Florida,12071,1698,92 +2020-05-25,Lee,Florida,12071,1735,93 +2020-05-26,Lee,Florida,12071,1758,93 +2020-05-27,Lee,Florida,12071,1766,99 +2020-05-28,Lee,Florida,12071,1801,100 +2020-05-29,Lee,Florida,12071,1846,101 +2020-05-30,Lee,Florida,12071,1893,105 +2020-05-31,Lee,Florida,12071,1907,105 +2020-06-01,Lee,Florida,12071,1942,105 +2020-06-02,Lee,Florida,12071,1966,112 +2020-06-03,Lee,Florida,12071,2086,113 +2020-06-04,Lee,Florida,12071,2146,114 +2020-06-05,Lee,Florida,12071,2199,114 +2020-06-06,Lee,Florida,12071,2252,117 +2020-06-07,Lee,Florida,12071,2288,117 +2020-06-08,Lee,Florida,12071,2314,117 +2020-06-09,Lee,Florida,12071,2387,124 +2020-06-10,Lee,Florida,12071,2421,126 +2020-06-11,Lee,Florida,12071,2499,128 +2020-06-12,Lee,Florida,12071,2562,128 +2020-06-13,Lee,Florida,12071,2633,131 +2020-06-14,Lee,Florida,12071,2835,132 +2020-06-15,Lee,Florida,12071,2876,132 +2020-06-16,Lee,Florida,12071,3014,136 +2020-06-17,Lee,Florida,12071,3186,137 +2020-06-18,Lee,Florida,12071,3353,138 +2020-06-19,Lee,Florida,12071,3474,139 +2020-06-20,Lee,Florida,12071,3555,143 +2020-06-21,Lee,Florida,12071,3626,143 +2020-06-22,Lee,Florida,12071,3665,149 +2020-06-23,Lee,Florida,12071,3744,149 +2020-06-24,Lee,Florida,12071,3943,148 +2020-06-25,Lee,Florida,12071,4061,149 +2020-06-26,Lee,Florida,12071,4756,152 +2020-06-27,Lee,Florida,12071,4955,152 +2020-06-28,Lee,Florida,12071,5187,156 +2020-06-29,Lee,Florida,12071,5362,156 +2020-06-30,Lee,Florida,12071,5587,158 +2020-07-01,Lee,Florida,12071,5868,159 +2020-07-02,Lee,Florida,12071,6222,161 +2020-07-03,Lee,Florida,12071,6667,162 +2020-07-04,Lee,Florida,12071,7214,162 +2020-07-05,Lee,Florida,12071,7497,165 +2020-07-06,Lee,Florida,12071,7660,167 +2020-07-07,Lee,Florida,12071,7858,172 +2020-07-08,Lee,Florida,12071,8124,171 +2020-07-09,Lee,Florida,12071,8339,176 +2020-03-18,Leon,Florida,12073,1,0 +2020-03-19,Leon,Florida,12073,3,0 +2020-03-20,Leon,Florida,12073,4,0 +2020-03-21,Leon,Florida,12073,4,0 +2020-03-22,Leon,Florida,12073,4,0 +2020-03-23,Leon,Florida,12073,5,0 +2020-03-24,Leon,Florida,12073,6,0 +2020-03-25,Leon,Florida,12073,7,0 +2020-03-26,Leon,Florida,12073,12,0 +2020-03-27,Leon,Florida,12073,15,0 +2020-03-28,Leon,Florida,12073,17,0 +2020-03-29,Leon,Florida,12073,16,0 +2020-03-30,Leon,Florida,12073,21,0 +2020-03-31,Leon,Florida,12073,26,0 +2020-04-01,Leon,Florida,12073,32,0 +2020-04-02,Leon,Florida,12073,34,0 +2020-04-03,Leon,Florida,12073,38,0 +2020-04-04,Leon,Florida,12073,41,0 +2020-04-05,Leon,Florida,12073,41,0 +2020-04-06,Leon,Florida,12073,58,0 +2020-04-07,Leon,Florida,12073,67,0 +2020-04-08,Leon,Florida,12073,71,0 +2020-04-09,Leon,Florida,12073,77,0 +2020-04-10,Leon,Florida,12073,90,0 +2020-04-11,Leon,Florida,12073,112,0 +2020-04-12,Leon,Florida,12073,119,0 +2020-04-13,Leon,Florida,12073,149,0 +2020-04-14,Leon,Florida,12073,149,0 +2020-04-15,Leon,Florida,12073,155,0 +2020-04-16,Leon,Florida,12073,164,0 +2020-04-17,Leon,Florida,12073,173,1 +2020-04-18,Leon,Florida,12073,168,1 +2020-04-19,Leon,Florida,12073,175,1 +2020-04-20,Leon,Florida,12073,183,1 +2020-04-21,Leon,Florida,12073,185,1 +2020-04-22,Leon,Florida,12073,185,1 +2020-04-23,Leon,Florida,12073,190,2 +2020-04-24,Leon,Florida,12073,206,2 +2020-04-25,Leon,Florida,12073,207,2 +2020-04-26,Leon,Florida,12073,209,2 +2020-04-27,Leon,Florida,12073,211,3 +2020-04-28,Leon,Florida,12073,212,3 +2020-04-29,Leon,Florida,12073,213,3 +2020-04-30,Leon,Florida,12073,218,3 +2020-05-01,Leon,Florida,12073,225,3 +2020-05-02,Leon,Florida,12073,232,3 +2020-05-03,Leon,Florida,12073,233,4 +2020-05-04,Leon,Florida,12073,242,5 +2020-05-05,Leon,Florida,12073,242,5 +2020-05-06,Leon,Florida,12073,242,6 +2020-05-07,Leon,Florida,12073,248,6 +2020-05-08,Leon,Florida,12073,248,6 +2020-05-09,Leon,Florida,12073,251,6 +2020-05-10,Leon,Florida,12073,253,6 +2020-05-11,Leon,Florida,12073,253,6 +2020-05-12,Leon,Florida,12073,265,6 +2020-05-13,Leon,Florida,12073,270,6 +2020-05-14,Leon,Florida,12073,274,6 +2020-05-15,Leon,Florida,12073,275,6 +2020-05-16,Leon,Florida,12073,275,6 +2020-05-17,Leon,Florida,12073,279,6 +2020-05-18,Leon,Florida,12073,289,6 +2020-05-19,Leon,Florida,12073,303,6 +2020-05-20,Leon,Florida,12073,305,6 +2020-05-21,Leon,Florida,12073,319,6 +2020-05-22,Leon,Florida,12073,328,6 +2020-05-23,Leon,Florida,12073,329,6 +2020-05-24,Leon,Florida,12073,331,6 +2020-05-25,Leon,Florida,12073,371,6 +2020-05-26,Leon,Florida,12073,374,6 +2020-05-27,Leon,Florida,12073,376,6 +2020-05-28,Leon,Florida,12073,378,6 +2020-05-29,Leon,Florida,12073,400,6 +2020-05-30,Leon,Florida,12073,405,6 +2020-05-31,Leon,Florida,12073,403,7 +2020-06-01,Leon,Florida,12073,404,7 +2020-06-02,Leon,Florida,12073,410,7 +2020-06-03,Leon,Florida,12073,427,7 +2020-06-04,Leon,Florida,12073,431,7 +2020-06-05,Leon,Florida,12073,433,7 +2020-06-06,Leon,Florida,12073,437,7 +2020-06-07,Leon,Florida,12073,441,7 +2020-06-08,Leon,Florida,12073,442,7 +2020-06-09,Leon,Florida,12073,447,7 +2020-06-10,Leon,Florida,12073,450,8 +2020-06-11,Leon,Florida,12073,455,8 +2020-06-12,Leon,Florida,12073,463,8 +2020-06-13,Leon,Florida,12073,463,8 +2020-06-14,Leon,Florida,12073,468,8 +2020-06-15,Leon,Florida,12073,473,8 +2020-06-16,Leon,Florida,12073,482,8 +2020-06-17,Leon,Florida,12073,484,8 +2020-06-18,Leon,Florida,12073,494,8 +2020-06-19,Leon,Florida,12073,507,8 +2020-06-20,Leon,Florida,12073,556,8 +2020-06-21,Leon,Florida,12073,572,8 +2020-06-22,Leon,Florida,12073,586,8 +2020-06-23,Leon,Florida,12073,595,8 +2020-06-24,Leon,Florida,12073,613,8 +2020-06-25,Leon,Florida,12073,641,8 +2020-06-26,Leon,Florida,12073,694,8 +2020-06-27,Leon,Florida,12073,774,8 +2020-06-28,Leon,Florida,12073,950,8 +2020-06-29,Leon,Florida,12073,997,8 +2020-06-30,Leon,Florida,12073,1113,8 +2020-07-01,Leon,Florida,12073,1148,8 +2020-07-02,Leon,Florida,12073,1376,8 +2020-07-03,Leon,Florida,12073,1465,8 +2020-07-04,Leon,Florida,12073,1637,8 +2020-07-05,Leon,Florida,12073,1797,8 +2020-07-06,Leon,Florida,12073,1869,8 +2020-07-07,Leon,Florida,12073,1910,8 +2020-07-08,Leon,Florida,12073,1954,8 +2020-07-09,Leon,Florida,12073,2046,8 +2020-03-27,Levy,Florida,12075,1,0 +2020-03-28,Levy,Florida,12075,1,0 +2020-03-29,Levy,Florida,12075,2,0 +2020-03-30,Levy,Florida,12075,2,0 +2020-03-31,Levy,Florida,12075,2,0 +2020-04-01,Levy,Florida,12075,2,0 +2020-04-02,Levy,Florida,12075,2,0 +2020-04-03,Levy,Florida,12075,2,0 +2020-04-04,Levy,Florida,12075,2,0 +2020-04-05,Levy,Florida,12075,4,0 +2020-04-06,Levy,Florida,12075,4,0 +2020-04-07,Levy,Florida,12075,5,0 +2020-04-08,Levy,Florida,12075,6,0 +2020-04-09,Levy,Florida,12075,6,0 +2020-04-10,Levy,Florida,12075,6,0 +2020-04-11,Levy,Florida,12075,7,0 +2020-04-12,Levy,Florida,12075,8,0 +2020-04-13,Levy,Florida,12075,7,0 +2020-04-14,Levy,Florida,12075,7,0 +2020-04-15,Levy,Florida,12075,9,0 +2020-04-16,Levy,Florida,12075,9,0 +2020-04-17,Levy,Florida,12075,9,0 +2020-04-18,Levy,Florida,12075,11,0 +2020-04-19,Levy,Florida,12075,12,0 +2020-04-20,Levy,Florida,12075,12,0 +2020-04-21,Levy,Florida,12075,12,0 +2020-04-22,Levy,Florida,12075,13,0 +2020-04-23,Levy,Florida,12075,13,0 +2020-04-24,Levy,Florida,12075,13,0 +2020-04-25,Levy,Florida,12075,13,0 +2020-04-26,Levy,Florida,12075,13,0 +2020-04-27,Levy,Florida,12075,13,0 +2020-04-28,Levy,Florida,12075,18,0 +2020-04-29,Levy,Florida,12075,18,0 +2020-04-30,Levy,Florida,12075,19,0 +2020-05-01,Levy,Florida,12075,19,0 +2020-05-02,Levy,Florida,12075,19,0 +2020-05-03,Levy,Florida,12075,19,0 +2020-05-04,Levy,Florida,12075,20,0 +2020-05-05,Levy,Florida,12075,20,0 +2020-05-06,Levy,Florida,12075,20,0 +2020-05-07,Levy,Florida,12075,20,0 +2020-05-08,Levy,Florida,12075,20,0 +2020-05-09,Levy,Florida,12075,20,0 +2020-05-10,Levy,Florida,12075,20,0 +2020-05-11,Levy,Florida,12075,20,0 +2020-05-12,Levy,Florida,12075,22,0 +2020-05-13,Levy,Florida,12075,22,0 +2020-05-14,Levy,Florida,12075,22,0 +2020-05-15,Levy,Florida,12075,24,0 +2020-05-16,Levy,Florida,12075,24,0 +2020-05-17,Levy,Florida,12075,25,0 +2020-05-18,Levy,Florida,12075,25,0 +2020-05-19,Levy,Florida,12075,25,0 +2020-05-20,Levy,Florida,12075,27,0 +2020-05-21,Levy,Florida,12075,27,0 +2020-05-22,Levy,Florida,12075,27,0 +2020-05-23,Levy,Florida,12075,27,0 +2020-05-24,Levy,Florida,12075,27,0 +2020-05-25,Levy,Florida,12075,29,0 +2020-05-26,Levy,Florida,12075,30,0 +2020-05-27,Levy,Florida,12075,30,0 +2020-05-28,Levy,Florida,12075,30,0 +2020-05-29,Levy,Florida,12075,31,0 +2020-05-30,Levy,Florida,12075,31,1 +2020-05-31,Levy,Florida,12075,32,1 +2020-06-01,Levy,Florida,12075,34,1 +2020-06-02,Levy,Florida,12075,35,1 +2020-06-03,Levy,Florida,12075,35,1 +2020-06-04,Levy,Florida,12075,38,1 +2020-06-05,Levy,Florida,12075,55,1 +2020-06-06,Levy,Florida,12075,58,1 +2020-06-07,Levy,Florida,12075,60,1 +2020-06-08,Levy,Florida,12075,73,1 +2020-06-09,Levy,Florida,12075,90,1 +2020-06-10,Levy,Florida,12075,90,1 +2020-06-11,Levy,Florida,12075,95,1 +2020-06-12,Levy,Florida,12075,98,1 +2020-06-13,Levy,Florida,12075,100,1 +2020-06-14,Levy,Florida,12075,100,1 +2020-06-15,Levy,Florida,12075,101,1 +2020-06-16,Levy,Florida,12075,127,1 +2020-06-17,Levy,Florida,12075,131,1 +2020-06-18,Levy,Florida,12075,132,1 +2020-06-19,Levy,Florida,12075,137,1 +2020-06-20,Levy,Florida,12075,137,1 +2020-06-21,Levy,Florida,12075,139,1 +2020-06-22,Levy,Florida,12075,147,1 +2020-06-23,Levy,Florida,12075,151,1 +2020-06-24,Levy,Florida,12075,154,1 +2020-06-25,Levy,Florida,12075,157,1 +2020-06-26,Levy,Florida,12075,165,1 +2020-06-27,Levy,Florida,12075,168,1 +2020-06-28,Levy,Florida,12075,171,1 +2020-06-29,Levy,Florida,12075,173,1 +2020-06-30,Levy,Florida,12075,174,1 +2020-07-01,Levy,Florida,12075,181,1 +2020-07-02,Levy,Florida,12075,182,1 +2020-07-03,Levy,Florida,12075,192,1 +2020-07-04,Levy,Florida,12075,202,1 +2020-07-05,Levy,Florida,12075,210,1 +2020-07-06,Levy,Florida,12075,211,1 +2020-07-07,Levy,Florida,12075,218,1 +2020-07-08,Levy,Florida,12075,225,1 +2020-07-09,Levy,Florida,12075,235,1 +2020-04-10,Liberty,Florida,12077,1,0 +2020-04-11,Liberty,Florida,12077,1,0 +2020-04-12,Liberty,Florida,12077,1,0 +2020-04-13,Liberty,Florida,12077,2,0 +2020-04-14,Liberty,Florida,12077,2,0 +2020-04-15,Liberty,Florida,12077,2,0 +2020-04-16,Liberty,Florida,12077,2,0 +2020-04-17,Liberty,Florida,12077,2,0 +2020-04-18,Liberty,Florida,12077,2,0 +2020-04-19,Liberty,Florida,12077,2,0 +2020-04-20,Liberty,Florida,12077,2,0 +2020-04-21,Liberty,Florida,12077,2,0 +2020-04-22,Liberty,Florida,12077,2,0 +2020-04-23,Liberty,Florida,12077,2,0 +2020-04-24,Liberty,Florida,12077,2,0 +2020-04-25,Liberty,Florida,12077,2,0 +2020-04-26,Liberty,Florida,12077,2,0 +2020-04-27,Liberty,Florida,12077,2,0 +2020-04-28,Liberty,Florida,12077,2,0 +2020-04-29,Liberty,Florida,12077,3,0 +2020-04-30,Liberty,Florida,12077,3,0 +2020-05-01,Liberty,Florida,12077,6,0 +2020-05-02,Liberty,Florida,12077,8,0 +2020-05-03,Liberty,Florida,12077,60,0 +2020-05-04,Liberty,Florida,12077,60,0 +2020-05-05,Liberty,Florida,12077,60,0 +2020-05-06,Liberty,Florida,12077,70,0 +2020-05-07,Liberty,Florida,12077,114,0 +2020-05-08,Liberty,Florida,12077,196,0 +2020-05-09,Liberty,Florida,12077,196,0 +2020-05-10,Liberty,Florida,12077,198,0 +2020-05-11,Liberty,Florida,12077,198,0 +2020-05-12,Liberty,Florida,12077,198,0 +2020-05-13,Liberty,Florida,12077,198,0 +2020-05-14,Liberty,Florida,12077,199,0 +2020-05-15,Liberty,Florida,12077,199,0 +2020-05-16,Liberty,Florida,12077,199,0 +2020-05-17,Liberty,Florida,12077,199,0 +2020-05-18,Liberty,Florida,12077,199,0 +2020-05-19,Liberty,Florida,12077,199,0 +2020-05-20,Liberty,Florida,12077,199,0 +2020-05-21,Liberty,Florida,12077,199,0 +2020-05-22,Liberty,Florida,12077,204,0 +2020-05-23,Liberty,Florida,12077,204,0 +2020-05-24,Liberty,Florida,12077,206,0 +2020-05-25,Liberty,Florida,12077,209,0 +2020-05-26,Liberty,Florida,12077,209,0 +2020-05-27,Liberty,Florida,12077,209,0 +2020-05-28,Liberty,Florida,12077,209,0 +2020-05-29,Liberty,Florida,12077,213,0 +2020-05-30,Liberty,Florida,12077,213,0 +2020-05-31,Liberty,Florida,12077,213,0 +2020-06-01,Liberty,Florida,12077,213,0 +2020-06-02,Liberty,Florida,12077,213,1 +2020-06-03,Liberty,Florida,12077,218,1 +2020-06-04,Liberty,Florida,12077,218,1 +2020-06-05,Liberty,Florida,12077,218,1 +2020-06-06,Liberty,Florida,12077,218,1 +2020-06-07,Liberty,Florida,12077,218,1 +2020-06-08,Liberty,Florida,12077,218,1 +2020-06-09,Liberty,Florida,12077,218,1 +2020-06-10,Liberty,Florida,12077,218,1 +2020-06-11,Liberty,Florida,12077,218,1 +2020-06-12,Liberty,Florida,12077,218,1 +2020-06-13,Liberty,Florida,12077,218,1 +2020-06-14,Liberty,Florida,12077,219,1 +2020-06-15,Liberty,Florida,12077,220,1 +2020-06-16,Liberty,Florida,12077,220,1 +2020-06-17,Liberty,Florida,12077,220,1 +2020-06-18,Liberty,Florida,12077,220,1 +2020-06-19,Liberty,Florida,12077,220,1 +2020-06-20,Liberty,Florida,12077,220,1 +2020-06-21,Liberty,Florida,12077,221,1 +2020-06-22,Liberty,Florida,12077,221,1 +2020-06-23,Liberty,Florida,12077,220,1 +2020-06-24,Liberty,Florida,12077,220,1 +2020-06-25,Liberty,Florida,12077,220,1 +2020-06-26,Liberty,Florida,12077,220,1 +2020-06-27,Liberty,Florida,12077,221,1 +2020-06-28,Liberty,Florida,12077,221,1 +2020-06-29,Liberty,Florida,12077,222,1 +2020-06-30,Liberty,Florida,12077,222,1 +2020-07-01,Liberty,Florida,12077,222,1 +2020-07-02,Liberty,Florida,12077,230,1 +2020-07-03,Liberty,Florida,12077,238,1 +2020-07-04,Liberty,Florida,12077,238,1 +2020-07-05,Liberty,Florida,12077,244,1 +2020-07-06,Liberty,Florida,12077,244,1 +2020-07-07,Liberty,Florida,12077,245,1 +2020-07-08,Liberty,Florida,12077,249,1 +2020-07-09,Liberty,Florida,12077,257,1 +2020-04-01,Madison,Florida,12079,2,0 +2020-04-02,Madison,Florida,12079,2,0 +2020-04-03,Madison,Florida,12079,4,0 +2020-04-04,Madison,Florida,12079,6,0 +2020-04-05,Madison,Florida,12079,10,0 +2020-04-06,Madison,Florida,12079,11,0 +2020-04-07,Madison,Florida,12079,11,0 +2020-04-08,Madison,Florida,12079,12,0 +2020-04-09,Madison,Florida,12079,12,0 +2020-04-10,Madison,Florida,12079,14,0 +2020-04-11,Madison,Florida,12079,14,0 +2020-04-12,Madison,Florida,12079,14,0 +2020-04-13,Madison,Florida,12079,14,0 +2020-04-14,Madison,Florida,12079,14,0 +2020-04-15,Madison,Florida,12079,15,0 +2020-04-16,Madison,Florida,12079,16,0 +2020-04-17,Madison,Florida,12079,19,0 +2020-04-18,Madison,Florida,12079,20,0 +2020-04-19,Madison,Florida,12079,21,0 +2020-04-20,Madison,Florida,12079,23,1 +2020-04-21,Madison,Florida,12079,26,2 +2020-04-22,Madison,Florida,12079,35,2 +2020-04-23,Madison,Florida,12079,40,2 +2020-04-24,Madison,Florida,12079,41,2 +2020-04-25,Madison,Florida,12079,41,2 +2020-04-26,Madison,Florida,12079,43,2 +2020-04-27,Madison,Florida,12079,44,2 +2020-04-28,Madison,Florida,12079,49,2 +2020-04-29,Madison,Florida,12079,49,2 +2020-04-30,Madison,Florida,12079,55,2 +2020-05-01,Madison,Florida,12079,58,2 +2020-05-02,Madison,Florida,12079,58,2 +2020-05-03,Madison,Florida,12079,60,2 +2020-05-04,Madison,Florida,12079,61,2 +2020-05-05,Madison,Florida,12079,61,3 +2020-05-06,Madison,Florida,12079,61,3 +2020-05-07,Madison,Florida,12079,61,3 +2020-05-08,Madison,Florida,12079,61,3 +2020-05-09,Madison,Florida,12079,61,3 +2020-05-10,Madison,Florida,12079,61,3 +2020-05-11,Madison,Florida,12079,61,3 +2020-05-12,Madison,Florida,12079,61,3 +2020-05-13,Madison,Florida,12079,61,3 +2020-05-14,Madison,Florida,12079,62,3 +2020-05-15,Madison,Florida,12079,62,3 +2020-05-16,Madison,Florida,12079,62,3 +2020-05-17,Madison,Florida,12079,63,3 +2020-05-18,Madison,Florida,12079,64,3 +2020-05-19,Madison,Florida,12079,64,3 +2020-05-20,Madison,Florida,12079,66,3 +2020-05-21,Madison,Florida,12079,67,3 +2020-05-22,Madison,Florida,12079,66,3 +2020-05-23,Madison,Florida,12079,67,3 +2020-05-24,Madison,Florida,12079,68,3 +2020-05-25,Madison,Florida,12079,69,3 +2020-05-26,Madison,Florida,12079,69,3 +2020-05-27,Madison,Florida,12079,69,4 +2020-05-28,Madison,Florida,12079,69,4 +2020-05-29,Madison,Florida,12079,69,4 +2020-05-30,Madison,Florida,12079,69,4 +2020-05-31,Madison,Florida,12079,69,4 +2020-06-01,Madison,Florida,12079,69,4 +2020-06-02,Madison,Florida,12079,69,4 +2020-06-03,Madison,Florida,12079,69,4 +2020-06-04,Madison,Florida,12079,69,3 +2020-06-05,Madison,Florida,12079,72,3 +2020-06-06,Madison,Florida,12079,71,3 +2020-06-07,Madison,Florida,12079,71,3 +2020-06-08,Madison,Florida,12079,71,3 +2020-06-09,Madison,Florida,12079,71,3 +2020-06-10,Madison,Florida,12079,71,3 +2020-06-11,Madison,Florida,12079,75,3 +2020-06-12,Madison,Florida,12079,75,3 +2020-06-13,Madison,Florida,12079,76,3 +2020-06-14,Madison,Florida,12079,79,3 +2020-06-15,Madison,Florida,12079,82,3 +2020-06-16,Madison,Florida,12079,84,3 +2020-06-17,Madison,Florida,12079,86,3 +2020-06-18,Madison,Florida,12079,93,3 +2020-06-19,Madison,Florida,12079,98,3 +2020-06-20,Madison,Florida,12079,109,3 +2020-06-21,Madison,Florida,12079,123,3 +2020-06-22,Madison,Florida,12079,142,3 +2020-06-23,Madison,Florida,12079,143,3 +2020-06-24,Madison,Florida,12079,143,3 +2020-06-25,Madison,Florida,12079,156,3 +2020-06-26,Madison,Florida,12079,170,3 +2020-06-27,Madison,Florida,12079,179,3 +2020-06-28,Madison,Florida,12079,187,3 +2020-06-29,Madison,Florida,12079,191,3 +2020-06-30,Madison,Florida,12079,195,3 +2020-07-01,Madison,Florida,12079,200,3 +2020-07-02,Madison,Florida,12079,218,3 +2020-07-03,Madison,Florida,12079,220,3 +2020-07-04,Madison,Florida,12079,239,3 +2020-07-05,Madison,Florida,12079,247,3 +2020-07-06,Madison,Florida,12079,255,4 +2020-07-07,Madison,Florida,12079,265,4 +2020-07-08,Madison,Florida,12079,273,4 +2020-07-09,Madison,Florida,12079,283,4 +2020-03-01,Manatee,Florida,12081,1,0 +2020-03-02,Manatee,Florida,12081,1,0 +2020-03-03,Manatee,Florida,12081,1,0 +2020-03-04,Manatee,Florida,12081,1,0 +2020-03-05,Manatee,Florida,12081,1,0 +2020-03-06,Manatee,Florida,12081,1,0 +2020-03-07,Manatee,Florida,12081,2,0 +2020-03-08,Manatee,Florida,12081,2,0 +2020-03-09,Manatee,Florida,12081,2,0 +2020-03-10,Manatee,Florida,12081,2,0 +2020-03-11,Manatee,Florida,12081,2,0 +2020-03-12,Manatee,Florida,12081,2,0 +2020-03-13,Manatee,Florida,12081,4,0 +2020-03-14,Manatee,Florida,12081,4,0 +2020-03-15,Manatee,Florida,12081,4,0 +2020-03-16,Manatee,Florida,12081,5,0 +2020-03-17,Manatee,Florida,12081,7,1 +2020-03-18,Manatee,Florida,12081,8,1 +2020-03-19,Manatee,Florida,12081,9,1 +2020-03-20,Manatee,Florida,12081,10,1 +2020-03-21,Manatee,Florida,12081,13,1 +2020-03-22,Manatee,Florida,12081,13,1 +2020-03-23,Manatee,Florida,12081,15,1 +2020-03-24,Manatee,Florida,12081,16,1 +2020-03-25,Manatee,Florida,12081,26,1 +2020-03-26,Manatee,Florida,12081,25,1 +2020-03-27,Manatee,Florida,12081,29,1 +2020-03-28,Manatee,Florida,12081,32,1 +2020-03-29,Manatee,Florida,12081,38,1 +2020-03-30,Manatee,Florida,12081,42,1 +2020-03-31,Manatee,Florida,12081,53,2 +2020-04-01,Manatee,Florida,12081,70,3 +2020-04-02,Manatee,Florida,12081,89,3 +2020-04-03,Manatee,Florida,12081,104,3 +2020-04-04,Manatee,Florida,12081,129,3 +2020-04-05,Manatee,Florida,12081,136,3 +2020-04-06,Manatee,Florida,12081,145,5 +2020-04-07,Manatee,Florida,12081,164,7 +2020-04-08,Manatee,Florida,12081,172,8 +2020-04-09,Manatee,Florida,12081,179,11 +2020-04-10,Manatee,Florida,12081,200,13 +2020-04-11,Manatee,Florida,12081,221,13 +2020-04-12,Manatee,Florida,12081,236,13 +2020-04-13,Manatee,Florida,12081,252,15 +2020-04-14,Manatee,Florida,12081,261,19 +2020-04-15,Manatee,Florida,12081,277,19 +2020-04-16,Manatee,Florida,12081,309,20 +2020-04-17,Manatee,Florida,12081,326,29 +2020-04-18,Manatee,Florida,12081,362,31 +2020-04-19,Manatee,Florida,12081,417,31 +2020-04-20,Manatee,Florida,12081,433,33 +2020-04-21,Manatee,Florida,12081,443,34 +2020-04-22,Manatee,Florida,12081,445,34 +2020-04-23,Manatee,Florida,12081,473,39 +2020-04-24,Manatee,Florida,12081,491,42 +2020-04-25,Manatee,Florida,12081,497,42 +2020-04-26,Manatee,Florida,12081,508,42 +2020-04-27,Manatee,Florida,12081,533,42 +2020-04-28,Manatee,Florida,12081,563,46 +2020-04-29,Manatee,Florida,12081,567,49 +2020-04-30,Manatee,Florida,12081,580,55 +2020-05-01,Manatee,Florida,12081,591,57 +2020-05-02,Manatee,Florida,12081,607,59 +2020-05-03,Manatee,Florida,12081,619,59 +2020-05-04,Manatee,Florida,12081,636,59 +2020-05-05,Manatee,Florida,12081,684,61 +2020-05-06,Manatee,Florida,12081,722,64 +2020-05-07,Manatee,Florida,12081,737,68 +2020-05-08,Manatee,Florida,12081,742,72 +2020-05-09,Manatee,Florida,12081,756,74 +2020-05-10,Manatee,Florida,12081,776,74 +2020-05-11,Manatee,Florida,12081,783,74 +2020-05-12,Manatee,Florida,12081,795,74 +2020-05-13,Manatee,Florida,12081,806,75 +2020-05-14,Manatee,Florida,12081,813,78 +2020-05-15,Manatee,Florida,12081,826,79 +2020-05-16,Manatee,Florida,12081,834,81 +2020-05-17,Manatee,Florida,12081,849,81 +2020-05-18,Manatee,Florida,12081,867,81 +2020-05-19,Manatee,Florida,12081,888,82 +2020-05-20,Manatee,Florida,12081,893,84 +2020-05-21,Manatee,Florida,12081,933,88 +2020-05-22,Manatee,Florida,12081,946,90 +2020-05-23,Manatee,Florida,12081,958,91 +2020-05-24,Manatee,Florida,12081,975,91 +2020-05-25,Manatee,Florida,12081,988,91 +2020-05-26,Manatee,Florida,12081,990,91 +2020-05-27,Manatee,Florida,12081,996,93 +2020-05-28,Manatee,Florida,12081,1007,95 +2020-05-29,Manatee,Florida,12081,1022,96 +2020-05-30,Manatee,Florida,12081,1037,97 +2020-05-31,Manatee,Florida,12081,1045,97 +2020-06-01,Manatee,Florida,12081,1057,97 +2020-06-02,Manatee,Florida,12081,1074,98 +2020-06-03,Manatee,Florida,12081,1110,98 +2020-06-04,Manatee,Florida,12081,1134,100 +2020-06-05,Manatee,Florida,12081,1162,105 +2020-06-06,Manatee,Florida,12081,1177,105 +2020-06-07,Manatee,Florida,12081,1189,105 +2020-06-08,Manatee,Florida,12081,1219,105 +2020-06-09,Manatee,Florida,12081,1229,111 +2020-06-10,Manatee,Florida,12081,1245,112 +2020-06-11,Manatee,Florida,12081,1253,114 +2020-06-12,Manatee,Florida,12081,1309,114 +2020-06-13,Manatee,Florida,12081,1353,115 +2020-06-14,Manatee,Florida,12081,1377,115 +2020-06-15,Manatee,Florida,12081,1421,115 +2020-06-16,Manatee,Florida,12081,1483,116 +2020-06-17,Manatee,Florida,12081,1523,117 +2020-06-18,Manatee,Florida,12081,1548,122 +2020-06-19,Manatee,Florida,12081,1649,124 +2020-06-20,Manatee,Florida,12081,1786,126 +2020-06-21,Manatee,Florida,12081,1890,126 +2020-06-22,Manatee,Florida,12081,1977,126 +2020-06-23,Manatee,Florida,12081,2013,127 +2020-06-24,Manatee,Florida,12081,2132,127 +2020-06-25,Manatee,Florida,12081,2202,128 +2020-06-26,Manatee,Florida,12081,2368,128 +2020-06-27,Manatee,Florida,12081,2642,129 +2020-06-28,Manatee,Florida,12081,2737,130 +2020-06-29,Manatee,Florida,12081,2810,130 +2020-06-30,Manatee,Florida,12081,2856,130 +2020-07-01,Manatee,Florida,12081,3015,129 +2020-07-02,Manatee,Florida,12081,3175,130 +2020-07-03,Manatee,Florida,12081,3261,131 +2020-07-04,Manatee,Florida,12081,3554,131 +2020-07-05,Manatee,Florida,12081,3716,131 +2020-07-06,Manatee,Florida,12081,3785,132 +2020-07-07,Manatee,Florida,12081,3890,135 +2020-07-08,Manatee,Florida,12081,4080,135 +2020-07-09,Manatee,Florida,12081,4266,138 +2020-03-21,Marion,Florida,12083,2,0 +2020-03-22,Marion,Florida,12083,3,0 +2020-03-23,Marion,Florida,12083,4,0 +2020-03-24,Marion,Florida,12083,4,0 +2020-03-25,Marion,Florida,12083,5,0 +2020-03-26,Marion,Florida,12083,5,0 +2020-03-27,Marion,Florida,12083,9,0 +2020-03-28,Marion,Florida,12083,18,0 +2020-03-29,Marion,Florida,12083,22,0 +2020-03-30,Marion,Florida,12083,23,0 +2020-03-31,Marion,Florida,12083,28,0 +2020-04-01,Marion,Florida,12083,30,0 +2020-04-02,Marion,Florida,12083,33,0 +2020-04-03,Marion,Florida,12083,38,0 +2020-04-04,Marion,Florida,12083,42,0 +2020-04-05,Marion,Florida,12083,50,2 +2020-04-06,Marion,Florida,12083,55,2 +2020-04-07,Marion,Florida,12083,62,2 +2020-04-08,Marion,Florida,12083,68,2 +2020-04-09,Marion,Florida,12083,75,2 +2020-04-10,Marion,Florida,12083,83,2 +2020-04-11,Marion,Florida,12083,83,2 +2020-04-12,Marion,Florida,12083,93,3 +2020-04-13,Marion,Florida,12083,101,3 +2020-04-14,Marion,Florida,12083,104,3 +2020-04-15,Marion,Florida,12083,107,3 +2020-04-16,Marion,Florida,12083,112,3 +2020-04-17,Marion,Florida,12083,116,3 +2020-04-18,Marion,Florida,12083,118,3 +2020-04-19,Marion,Florida,12083,121,3 +2020-04-20,Marion,Florida,12083,129,3 +2020-04-21,Marion,Florida,12083,130,3 +2020-04-22,Marion,Florida,12083,130,3 +2020-04-23,Marion,Florida,12083,145,3 +2020-04-24,Marion,Florida,12083,148,4 +2020-04-25,Marion,Florida,12083,150,4 +2020-04-26,Marion,Florida,12083,151,4 +2020-04-27,Marion,Florida,12083,151,4 +2020-04-28,Marion,Florida,12083,160,4 +2020-04-29,Marion,Florida,12083,165,4 +2020-04-30,Marion,Florida,12083,175,4 +2020-05-01,Marion,Florida,12083,178,4 +2020-05-02,Marion,Florida,12083,182,5 +2020-05-03,Marion,Florida,12083,184,5 +2020-05-04,Marion,Florida,12083,184,5 +2020-05-05,Marion,Florida,12083,193,5 +2020-05-06,Marion,Florida,12083,196,5 +2020-05-07,Marion,Florida,12083,202,5 +2020-05-08,Marion,Florida,12083,202,5 +2020-05-09,Marion,Florida,12083,210,5 +2020-05-10,Marion,Florida,12083,208,5 +2020-05-11,Marion,Florida,12083,211,5 +2020-05-12,Marion,Florida,12083,213,5 +2020-05-13,Marion,Florida,12083,217,5 +2020-05-14,Marion,Florida,12083,217,5 +2020-05-15,Marion,Florida,12083,218,5 +2020-05-16,Marion,Florida,12083,220,5 +2020-05-17,Marion,Florida,12083,222,5 +2020-05-18,Marion,Florida,12083,223,5 +2020-05-19,Marion,Florida,12083,224,5 +2020-05-20,Marion,Florida,12083,228,5 +2020-05-21,Marion,Florida,12083,233,5 +2020-05-22,Marion,Florida,12083,233,5 +2020-05-23,Marion,Florida,12083,233,5 +2020-05-24,Marion,Florida,12083,237,5 +2020-05-25,Marion,Florida,12083,237,5 +2020-05-26,Marion,Florida,12083,240,5 +2020-05-27,Marion,Florida,12083,240,5 +2020-05-28,Marion,Florida,12083,241,5 +2020-05-29,Marion,Florida,12083,243,6 +2020-05-30,Marion,Florida,12083,244,7 +2020-05-31,Marion,Florida,12083,248,7 +2020-06-01,Marion,Florida,12083,250,7 +2020-06-02,Marion,Florida,12083,255,7 +2020-06-03,Marion,Florida,12083,257,7 +2020-06-04,Marion,Florida,12083,261,7 +2020-06-05,Marion,Florida,12083,272,8 +2020-06-06,Marion,Florida,12083,274,8 +2020-06-07,Marion,Florida,12083,279,8 +2020-06-08,Marion,Florida,12083,281,8 +2020-06-09,Marion,Florida,12083,284,8 +2020-06-10,Marion,Florida,12083,286,8 +2020-06-11,Marion,Florida,12083,292,8 +2020-06-12,Marion,Florida,12083,299,8 +2020-06-13,Marion,Florida,12083,310,8 +2020-06-14,Marion,Florida,12083,311,8 +2020-06-15,Marion,Florida,12083,315,8 +2020-06-16,Marion,Florida,12083,325,8 +2020-06-17,Marion,Florida,12083,331,8 +2020-06-18,Marion,Florida,12083,345,8 +2020-06-19,Marion,Florida,12083,365,10 +2020-06-20,Marion,Florida,12083,389,10 +2020-06-21,Marion,Florida,12083,395,10 +2020-06-22,Marion,Florida,12083,412,10 +2020-06-23,Marion,Florida,12083,424,10 +2020-06-24,Marion,Florida,12083,467,10 +2020-06-25,Marion,Florida,12083,493,10 +2020-06-26,Marion,Florida,12083,524,10 +2020-06-27,Marion,Florida,12083,598,10 +2020-06-28,Marion,Florida,12083,631,10 +2020-06-29,Marion,Florida,12083,655,10 +2020-06-30,Marion,Florida,12083,672,10 +2020-07-01,Marion,Florida,12083,727,10 +2020-07-02,Marion,Florida,12083,789,10 +2020-07-03,Marion,Florida,12083,817,12 +2020-07-04,Marion,Florida,12083,868,12 +2020-07-05,Marion,Florida,12083,927,12 +2020-07-06,Marion,Florida,12083,986,12 +2020-07-07,Marion,Florida,12083,1043,12 +2020-07-08,Marion,Florida,12083,1111,12 +2020-07-09,Marion,Florida,12083,1162,12 +2020-03-19,Martin,Florida,12085,1,0 +2020-03-20,Martin,Florida,12085,1,0 +2020-03-21,Martin,Florida,12085,1,0 +2020-03-22,Martin,Florida,12085,2,0 +2020-03-23,Martin,Florida,12085,4,0 +2020-03-24,Martin,Florida,12085,4,0 +2020-03-25,Martin,Florida,12085,7,0 +2020-03-26,Martin,Florida,12085,11,0 +2020-03-27,Martin,Florida,12085,17,0 +2020-03-28,Martin,Florida,12085,26,0 +2020-03-29,Martin,Florida,12085,27,0 +2020-03-30,Martin,Florida,12085,27,0 +2020-03-31,Martin,Florida,12085,28,0 +2020-04-01,Martin,Florida,12085,33,0 +2020-04-02,Martin,Florida,12085,34,0 +2020-04-03,Martin,Florida,12085,42,0 +2020-04-04,Martin,Florida,12085,53,0 +2020-04-05,Martin,Florida,12085,60,0 +2020-04-06,Martin,Florida,12085,85,0 +2020-04-07,Martin,Florida,12085,100,0 +2020-04-08,Martin,Florida,12085,108,1 +2020-04-09,Martin,Florida,12085,109,1 +2020-04-10,Martin,Florida,12085,115,3 +2020-04-11,Martin,Florida,12085,117,3 +2020-04-12,Martin,Florida,12085,122,3 +2020-04-13,Martin,Florida,12085,129,3 +2020-04-14,Martin,Florida,12085,135,4 +2020-04-15,Martin,Florida,12085,140,4 +2020-04-16,Martin,Florida,12085,142,4 +2020-04-17,Martin,Florida,12085,147,4 +2020-04-18,Martin,Florida,12085,148,4 +2020-04-19,Martin,Florida,12085,151,4 +2020-04-20,Martin,Florida,12085,155,4 +2020-04-21,Martin,Florida,12085,160,4 +2020-04-22,Martin,Florida,12085,161,4 +2020-04-23,Martin,Florida,12085,166,5 +2020-04-24,Martin,Florida,12085,169,5 +2020-04-25,Martin,Florida,12085,169,5 +2020-04-26,Martin,Florida,12085,174,5 +2020-04-27,Martin,Florida,12085,183,5 +2020-04-28,Martin,Florida,12085,185,5 +2020-04-29,Martin,Florida,12085,186,5 +2020-04-30,Martin,Florida,12085,191,6 +2020-05-01,Martin,Florida,12085,197,6 +2020-05-02,Martin,Florida,12085,199,6 +2020-05-03,Martin,Florida,12085,202,6 +2020-05-04,Martin,Florida,12085,215,6 +2020-05-05,Martin,Florida,12085,218,6 +2020-05-06,Martin,Florida,12085,224,6 +2020-05-07,Martin,Florida,12085,233,6 +2020-05-08,Martin,Florida,12085,243,6 +2020-05-09,Martin,Florida,12085,245,6 +2020-05-10,Martin,Florida,12085,255,6 +2020-05-11,Martin,Florida,12085,261,6 +2020-05-12,Martin,Florida,12085,274,6 +2020-05-13,Martin,Florida,12085,275,6 +2020-05-14,Martin,Florida,12085,281,6 +2020-05-15,Martin,Florida,12085,294,6 +2020-05-16,Martin,Florida,12085,296,6 +2020-05-17,Martin,Florida,12085,321,7 +2020-05-18,Martin,Florida,12085,371,7 +2020-05-19,Martin,Florida,12085,396,8 +2020-05-20,Martin,Florida,12085,419,8 +2020-05-21,Martin,Florida,12085,472,8 +2020-05-22,Martin,Florida,12085,476,9 +2020-05-23,Martin,Florida,12085,483,9 +2020-05-24,Martin,Florida,12085,494,9 +2020-05-25,Martin,Florida,12085,510,9 +2020-05-26,Martin,Florida,12085,535,9 +2020-05-27,Martin,Florida,12085,550,9 +2020-05-28,Martin,Florida,12085,557,9 +2020-05-29,Martin,Florida,12085,601,9 +2020-05-30,Martin,Florida,12085,626,9 +2020-05-31,Martin,Florida,12085,651,9 +2020-06-01,Martin,Florida,12085,652,9 +2020-06-02,Martin,Florida,12085,680,10 +2020-06-03,Martin,Florida,12085,729,10 +2020-06-04,Martin,Florida,12085,764,10 +2020-06-05,Martin,Florida,12085,810,12 +2020-06-06,Martin,Florida,12085,849,12 +2020-06-07,Martin,Florida,12085,907,13 +2020-06-08,Martin,Florida,12085,917,13 +2020-06-09,Martin,Florida,12085,934,15 +2020-06-10,Martin,Florida,12085,958,15 +2020-06-11,Martin,Florida,12085,1020,16 +2020-06-12,Martin,Florida,12085,1056,17 +2020-06-13,Martin,Florida,12085,1134,18 +2020-06-14,Martin,Florida,12085,1170,18 +2020-06-15,Martin,Florida,12085,1218,18 +2020-06-16,Martin,Florida,12085,1296,18 +2020-06-17,Martin,Florida,12085,1311,18 +2020-06-18,Martin,Florida,12085,1324,19 +2020-06-19,Martin,Florida,12085,1421,19 +2020-06-20,Martin,Florida,12085,1460,20 +2020-06-21,Martin,Florida,12085,1525,20 +2020-06-22,Martin,Florida,12085,1582,20 +2020-06-23,Martin,Florida,12085,1611,22 +2020-06-24,Martin,Florida,12085,1639,22 +2020-06-25,Martin,Florida,12085,1673,23 +2020-06-26,Martin,Florida,12085,1713,23 +2020-06-27,Martin,Florida,12085,1850,25 +2020-06-28,Martin,Florida,12085,1910,25 +2020-06-29,Martin,Florida,12085,1979,25 +2020-06-30,Martin,Florida,12085,2055,25 +2020-07-01,Martin,Florida,12085,2112,25 +2020-07-02,Martin,Florida,12085,2151,26 +2020-07-03,Martin,Florida,12085,2208,28 +2020-07-04,Martin,Florida,12085,2251,28 +2020-07-05,Martin,Florida,12085,2320,28 +2020-07-06,Martin,Florida,12085,2422,29 +2020-07-07,Martin,Florida,12085,2461,31 +2020-07-08,Martin,Florida,12085,2503,34 +2020-07-09,Martin,Florida,12085,2545,36 +2020-03-11,Miami-Dade,Florida,12086,1,0 +2020-03-12,Miami-Dade,Florida,12086,2,0 +2020-03-13,Miami-Dade,Florida,12086,8,0 +2020-03-14,Miami-Dade,Florida,12086,8,0 +2020-03-15,Miami-Dade,Florida,12086,13,0 +2020-03-16,Miami-Dade,Florida,12086,23,0 +2020-03-17,Miami-Dade,Florida,12086,43,0 +2020-03-18,Miami-Dade,Florida,12086,77,0 +2020-03-19,Miami-Dade,Florida,12086,101,0 +2020-03-20,Miami-Dade,Florida,12086,124,0 +2020-03-21,Miami-Dade,Florida,12086,170,0 +2020-03-22,Miami-Dade,Florida,12086,228,0 +2020-03-23,Miami-Dade,Florida,12086,277,0 +2020-03-24,Miami-Dade,Florida,12086,365,0 +2020-03-25,Miami-Dade,Florida,12086,489,0 +2020-03-26,Miami-Dade,Florida,12086,653,0 +2020-03-27,Miami-Dade,Florida,12086,869,2 +2020-03-28,Miami-Dade,Florida,12086,1121,3 +2020-03-29,Miami-Dade,Florida,12086,1471,3 +2020-03-30,Miami-Dade,Florida,12086,1700,4 +2020-03-31,Miami-Dade,Florida,12086,2123,7 +2020-04-01,Miami-Dade,Florida,12086,2415,11 +2020-04-02,Miami-Dade,Florida,12086,2885,20 +2020-04-03,Miami-Dade,Florida,12086,3363,25 +2020-04-04,Miami-Dade,Florida,12086,3889,31 +2020-04-05,Miami-Dade,Florida,12086,4145,31 +2020-04-06,Miami-Dade,Florida,12086,4670,41 +2020-04-07,Miami-Dade,Florida,12086,5125,47 +2020-04-08,Miami-Dade,Florida,12086,5460,50 +2020-04-09,Miami-Dade,Florida,12086,5897,66 +2020-04-10,Miami-Dade,Florida,12086,6299,84 +2020-04-11,Miami-Dade,Florida,12086,6757,93 +2020-04-12,Miami-Dade,Florida,12086,7057,97 +2020-04-13,Miami-Dade,Florida,12086,7458,109 +2020-04-14,Miami-Dade,Florida,12086,7711,143 +2020-04-15,Miami-Dade,Florida,12086,8066,155 +2020-04-16,Miami-Dade,Florida,12086,8325,183 +2020-04-17,Miami-Dade,Florida,12086,8823,195 +2020-04-18,Miami-Dade,Florida,12086,9044,198 +2020-04-19,Miami-Dade,Florida,12086,9353,207 +2020-04-20,Miami-Dade,Florida,12086,9656,223 +2020-04-21,Miami-Dade,Florida,12086,10055,233 +2020-04-22,Miami-Dade,Florida,12086,10152,240 +2020-04-23,Miami-Dade,Florida,12086,10587,270 +2020-04-24,Miami-Dade,Florida,12086,10925,287 +2020-04-25,Miami-Dade,Florida,12086,11004,295 +2020-04-26,Miami-Dade,Florida,12086,11350,301 +2020-04-27,Miami-Dade,Florida,12086,11569,302 +2020-04-28,Miami-Dade,Florida,12086,11830,324 +2020-04-29,Miami-Dade,Florida,12086,11926,338 +2020-04-30,Miami-Dade,Florida,12086,12063,352 +2020-05-01,Miami-Dade,Florida,12086,12388,358 +2020-05-02,Miami-Dade,Florida,12086,12631,367 +2020-05-03,Miami-Dade,Florida,12086,12774,369 +2020-05-04,Miami-Dade,Florida,12086,13091,378 +2020-05-05,Miami-Dade,Florida,12086,13223,407 +2020-05-06,Miami-Dade,Florida,12086,13370,432 +2020-05-07,Miami-Dade,Florida,12086,13584,454 +2020-05-08,Miami-Dade,Florida,12086,13663,468 +2020-05-09,Miami-Dade,Florida,12086,13840,482 +2020-05-10,Miami-Dade,Florida,12086,14006,487 +2020-05-11,Miami-Dade,Florida,12086,14166,490 +2020-05-12,Miami-Dade,Florida,12086,14384,505 +2020-05-13,Miami-Dade,Florida,12086,14467,518 +2020-05-14,Miami-Dade,Florida,12086,14741,535 +2020-05-15,Miami-Dade,Florida,12086,15010,548 +2020-05-16,Miami-Dade,Florida,12086,15365,559 +2020-05-17,Miami-Dade,Florida,12086,15657,561 +2020-05-18,Miami-Dade,Florida,12086,15863,566 +2020-05-19,Miami-Dade,Florida,12086,15941,578 +2020-05-20,Miami-Dade,Florida,12086,16033,578 +2020-05-21,Miami-Dade,Florida,12086,16366,602 +2020-05-22,Miami-Dade,Florida,12086,16521,614 +2020-05-23,Miami-Dade,Florida,12086,16693,629 +2020-05-24,Miami-Dade,Florida,12086,16844,631 +2020-05-25,Miami-Dade,Florida,12086,17040,633 +2020-05-26,Miami-Dade,Florida,12086,17167,633 +2020-05-27,Miami-Dade,Florida,12086,17224,655 +2020-05-28,Miami-Dade,Florida,12086,17395,669 +2020-05-29,Miami-Dade,Florida,12086,17640,685 +2020-05-30,Miami-Dade,Florida,12086,17825,700 +2020-05-31,Miami-Dade,Florida,12086,17999,700 +2020-06-01,Miami-Dade,Florida,12086,18138,702 +2020-06-02,Miami-Dade,Florida,12086,18223,722 +2020-06-03,Miami-Dade,Florida,12086,18455,731 +2020-06-04,Miami-Dade,Florida,12086,18778,746 +2020-06-05,Miami-Dade,Florida,12086,19055,760 +2020-06-06,Miami-Dade,Florida,12086,19298,765 +2020-06-07,Miami-Dade,Florida,12086,19546,765 +2020-06-08,Miami-Dade,Florida,12086,19755,767 +2020-06-09,Miami-Dade,Florida,12086,19979,774 +2020-06-10,Miami-Dade,Florida,12086,20276,784 +2020-06-11,Miami-Dade,Florida,12086,20547,798 +2020-06-12,Miami-Dade,Florida,12086,20871,809 +2020-06-13,Miami-Dade,Florida,12086,21632,822 +2020-06-14,Miami-Dade,Florida,12086,21916,825 +2020-06-15,Miami-Dade,Florida,12086,22196,826 +2020-06-16,Miami-Dade,Florida,12086,22740,847 +2020-06-17,Miami-Dade,Florida,12086,23272,850 +2020-06-18,Miami-Dade,Florida,12086,23853,859 +2020-06-19,Miami-Dade,Florida,12086,24375,864 +2020-06-20,Miami-Dade,Florida,12086,25079,874 +2020-06-21,Miami-Dade,Florida,12086,25789,884 +2020-06-22,Miami-Dade,Florida,12086,26238,884 +2020-06-23,Miami-Dade,Florida,12086,26821,902 +2020-06-24,Miami-Dade,Florida,12086,27778,926 +2020-06-25,Miami-Dade,Florida,12086,28663,935 +2020-06-26,Miami-Dade,Florida,12086,30195,946 +2020-06-27,Miami-Dade,Florida,12086,31561,947 +2020-06-28,Miami-Dade,Florida,12086,33713,953 +2020-06-29,Miami-Dade,Florida,12086,35221,975 +2020-06-30,Miami-Dade,Florida,12086,36819,991 +2020-07-01,Miami-Dade,Florida,12086,37960,1000 +2020-07-02,Miami-Dade,Florida,12086,40264,1018 +2020-07-03,Miami-Dade,Florida,12086,42310,1034 +2020-07-04,Miami-Dade,Florida,12086,44728,1038 +2020-07-05,Miami-Dade,Florida,12086,47010,1043 +2020-07-06,Miami-Dade,Florida,12086,48991,1051 +2020-07-07,Miami-Dade,Florida,12086,51057,1057 +2020-07-08,Miami-Dade,Florida,12086,53973,1068 +2020-07-09,Miami-Dade,Florida,12086,55960,1092 +2020-03-20,Monroe,Florida,12087,1,0 +2020-03-21,Monroe,Florida,12087,1,0 +2020-03-22,Monroe,Florida,12087,1,0 +2020-03-23,Monroe,Florida,12087,2,0 +2020-03-24,Monroe,Florida,12087,3,0 +2020-03-25,Monroe,Florida,12087,11,0 +2020-03-26,Monroe,Florida,12087,14,0 +2020-03-27,Monroe,Florida,12087,19,0 +2020-03-28,Monroe,Florida,12087,22,0 +2020-03-29,Monroe,Florida,12087,23,0 +2020-03-30,Monroe,Florida,12087,26,0 +2020-03-31,Monroe,Florida,12087,27,0 +2020-04-01,Monroe,Florida,12087,30,0 +2020-04-02,Monroe,Florida,12087,38,1 +2020-04-03,Monroe,Florida,12087,40,1 +2020-04-04,Monroe,Florida,12087,42,2 +2020-04-05,Monroe,Florida,12087,44,2 +2020-04-06,Monroe,Florida,12087,46,2 +2020-04-07,Monroe,Florida,12087,49,2 +2020-04-08,Monroe,Florida,12087,52,3 +2020-04-09,Monroe,Florida,12087,53,3 +2020-04-10,Monroe,Florida,12087,55,3 +2020-04-11,Monroe,Florida,12087,59,3 +2020-04-12,Monroe,Florida,12087,59,3 +2020-04-13,Monroe,Florida,12087,64,3 +2020-04-14,Monroe,Florida,12087,64,3 +2020-04-15,Monroe,Florida,12087,66,3 +2020-04-16,Monroe,Florida,12087,66,3 +2020-04-17,Monroe,Florida,12087,68,3 +2020-04-18,Monroe,Florida,12087,73,3 +2020-04-19,Monroe,Florida,12087,73,3 +2020-04-20,Monroe,Florida,12087,73,3 +2020-04-21,Monroe,Florida,12087,73,3 +2020-04-22,Monroe,Florida,12087,73,3 +2020-04-23,Monroe,Florida,12087,74,3 +2020-04-24,Monroe,Florida,12087,77,3 +2020-04-25,Monroe,Florida,12087,77,3 +2020-04-26,Monroe,Florida,12087,78,3 +2020-04-27,Monroe,Florida,12087,79,3 +2020-04-28,Monroe,Florida,12087,78,3 +2020-04-29,Monroe,Florida,12087,78,3 +2020-04-30,Monroe,Florida,12087,79,3 +2020-05-01,Monroe,Florida,12087,79,3 +2020-05-02,Monroe,Florida,12087,80,3 +2020-05-03,Monroe,Florida,12087,80,3 +2020-05-04,Monroe,Florida,12087,80,3 +2020-05-05,Monroe,Florida,12087,80,3 +2020-05-06,Monroe,Florida,12087,80,3 +2020-05-07,Monroe,Florida,12087,80,3 +2020-05-08,Monroe,Florida,12087,80,3 +2020-05-09,Monroe,Florida,12087,89,3 +2020-05-10,Monroe,Florida,12087,88,3 +2020-05-11,Monroe,Florida,12087,92,3 +2020-05-12,Monroe,Florida,12087,95,3 +2020-05-13,Monroe,Florida,12087,96,3 +2020-05-14,Monroe,Florida,12087,95,3 +2020-05-15,Monroe,Florida,12087,95,3 +2020-05-16,Monroe,Florida,12087,95,3 +2020-05-17,Monroe,Florida,12087,100,3 +2020-05-18,Monroe,Florida,12087,99,3 +2020-05-19,Monroe,Florida,12087,99,3 +2020-05-20,Monroe,Florida,12087,100,3 +2020-05-21,Monroe,Florida,12087,100,3 +2020-05-22,Monroe,Florida,12087,101,3 +2020-05-23,Monroe,Florida,12087,107,3 +2020-05-24,Monroe,Florida,12087,108,3 +2020-05-25,Monroe,Florida,12087,107,4 +2020-05-26,Monroe,Florida,12087,107,4 +2020-05-27,Monroe,Florida,12087,107,4 +2020-05-28,Monroe,Florida,12087,107,4 +2020-05-29,Monroe,Florida,12087,108,4 +2020-05-30,Monroe,Florida,12087,108,4 +2020-05-31,Monroe,Florida,12087,108,4 +2020-06-01,Monroe,Florida,12087,109,4 +2020-06-02,Monroe,Florida,12087,109,4 +2020-06-03,Monroe,Florida,12087,109,4 +2020-06-04,Monroe,Florida,12087,110,4 +2020-06-05,Monroe,Florida,12087,110,4 +2020-06-06,Monroe,Florida,12087,110,4 +2020-06-07,Monroe,Florida,12087,111,4 +2020-06-08,Monroe,Florida,12087,114,4 +2020-06-09,Monroe,Florida,12087,114,4 +2020-06-10,Monroe,Florida,12087,116,5 +2020-06-11,Monroe,Florida,12087,120,4 +2020-06-12,Monroe,Florida,12087,121,4 +2020-06-13,Monroe,Florida,12087,128,4 +2020-06-14,Monroe,Florida,12087,129,4 +2020-06-15,Monroe,Florida,12087,130,4 +2020-06-16,Monroe,Florida,12087,131,4 +2020-06-17,Monroe,Florida,12087,137,4 +2020-06-18,Monroe,Florida,12087,146,4 +2020-06-19,Monroe,Florida,12087,150,4 +2020-06-20,Monroe,Florida,12087,158,4 +2020-06-21,Monroe,Florida,12087,162,4 +2020-06-22,Monroe,Florida,12087,165,4 +2020-06-23,Monroe,Florida,12087,166,4 +2020-06-24,Monroe,Florida,12087,174,4 +2020-06-25,Monroe,Florida,12087,188,4 +2020-06-26,Monroe,Florida,12087,202,4 +2020-06-27,Monroe,Florida,12087,204,4 +2020-06-28,Monroe,Florida,12087,219,4 +2020-06-29,Monroe,Florida,12087,236,4 +2020-06-30,Monroe,Florida,12087,259,4 +2020-07-01,Monroe,Florida,12087,270,4 +2020-07-02,Monroe,Florida,12087,296,5 +2020-07-03,Monroe,Florida,12087,322,5 +2020-07-04,Monroe,Florida,12087,337,5 +2020-07-05,Monroe,Florida,12087,367,5 +2020-07-06,Monroe,Florida,12087,380,5 +2020-07-07,Monroe,Florida,12087,398,5 +2020-07-08,Monroe,Florida,12087,427,6 +2020-07-09,Monroe,Florida,12087,445,6 +2020-03-10,Nassau,Florida,12089,1,0 +2020-03-11,Nassau,Florida,12089,1,0 +2020-03-12,Nassau,Florida,12089,1,0 +2020-03-13,Nassau,Florida,12089,1,0 +2020-03-14,Nassau,Florida,12089,1,0 +2020-03-15,Nassau,Florida,12089,1,0 +2020-03-16,Nassau,Florida,12089,1,0 +2020-03-17,Nassau,Florida,12089,1,0 +2020-03-18,Nassau,Florida,12089,1,0 +2020-03-19,Nassau,Florida,12089,1,0 +2020-03-20,Nassau,Florida,12089,1,0 +2020-03-21,Nassau,Florida,12089,1,0 +2020-03-22,Nassau,Florida,12089,1,0 +2020-03-23,Nassau,Florida,12089,1,0 +2020-03-24,Nassau,Florida,12089,1,0 +2020-03-25,Nassau,Florida,12089,4,0 +2020-03-26,Nassau,Florida,12089,5,0 +2020-03-27,Nassau,Florida,12089,6,0 +2020-03-28,Nassau,Florida,12089,7,0 +2020-03-29,Nassau,Florida,12089,8,0 +2020-03-30,Nassau,Florida,12089,7,0 +2020-03-31,Nassau,Florida,12089,10,0 +2020-04-01,Nassau,Florida,12089,11,0 +2020-04-02,Nassau,Florida,12089,16,0 +2020-04-03,Nassau,Florida,12089,19,0 +2020-04-04,Nassau,Florida,12089,21,0 +2020-04-05,Nassau,Florida,12089,21,0 +2020-04-06,Nassau,Florida,12089,25,0 +2020-04-07,Nassau,Florida,12089,27,0 +2020-04-08,Nassau,Florida,12089,29,0 +2020-04-09,Nassau,Florida,12089,32,0 +2020-04-10,Nassau,Florida,12089,33,0 +2020-04-11,Nassau,Florida,12089,33,0 +2020-04-12,Nassau,Florida,12089,34,0 +2020-04-13,Nassau,Florida,12089,34,0 +2020-04-14,Nassau,Florida,12089,35,0 +2020-04-15,Nassau,Florida,12089,37,0 +2020-04-16,Nassau,Florida,12089,40,0 +2020-04-17,Nassau,Florida,12089,42,0 +2020-04-18,Nassau,Florida,12089,42,0 +2020-04-19,Nassau,Florida,12089,44,0 +2020-04-20,Nassau,Florida,12089,46,0 +2020-04-21,Nassau,Florida,12089,46,0 +2020-04-22,Nassau,Florida,12089,46,0 +2020-04-23,Nassau,Florida,12089,48,0 +2020-04-24,Nassau,Florida,12089,49,0 +2020-04-25,Nassau,Florida,12089,50,0 +2020-04-26,Nassau,Florida,12089,53,0 +2020-04-27,Nassau,Florida,12089,53,0 +2020-04-28,Nassau,Florida,12089,53,0 +2020-04-29,Nassau,Florida,12089,56,0 +2020-04-30,Nassau,Florida,12089,56,0 +2020-05-01,Nassau,Florida,12089,57,0 +2020-05-02,Nassau,Florida,12089,58,1 +2020-05-03,Nassau,Florida,12089,59,1 +2020-05-04,Nassau,Florida,12089,59,1 +2020-05-05,Nassau,Florida,12089,59,1 +2020-05-06,Nassau,Florida,12089,60,1 +2020-05-07,Nassau,Florida,12089,60,1 +2020-05-08,Nassau,Florida,12089,60,1 +2020-05-09,Nassau,Florida,12089,60,1 +2020-05-10,Nassau,Florida,12089,60,1 +2020-05-11,Nassau,Florida,12089,61,1 +2020-05-12,Nassau,Florida,12089,61,1 +2020-05-13,Nassau,Florida,12089,62,1 +2020-05-14,Nassau,Florida,12089,63,1 +2020-05-15,Nassau,Florida,12089,65,1 +2020-05-16,Nassau,Florida,12089,65,1 +2020-05-17,Nassau,Florida,12089,66,1 +2020-05-18,Nassau,Florida,12089,66,1 +2020-05-19,Nassau,Florida,12089,66,1 +2020-05-20,Nassau,Florida,12089,69,1 +2020-05-21,Nassau,Florida,12089,69,1 +2020-05-22,Nassau,Florida,12089,69,1 +2020-05-23,Nassau,Florida,12089,69,1 +2020-05-24,Nassau,Florida,12089,70,1 +2020-05-25,Nassau,Florida,12089,70,1 +2020-05-26,Nassau,Florida,12089,70,1 +2020-05-27,Nassau,Florida,12089,72,1 +2020-05-28,Nassau,Florida,12089,74,1 +2020-05-29,Nassau,Florida,12089,74,1 +2020-05-30,Nassau,Florida,12089,75,1 +2020-05-31,Nassau,Florida,12089,76,1 +2020-06-01,Nassau,Florida,12089,76,1 +2020-06-02,Nassau,Florida,12089,80,1 +2020-06-03,Nassau,Florida,12089,81,1 +2020-06-04,Nassau,Florida,12089,82,1 +2020-06-05,Nassau,Florida,12089,82,1 +2020-06-06,Nassau,Florida,12089,82,1 +2020-06-07,Nassau,Florida,12089,82,1 +2020-06-08,Nassau,Florida,12089,82,1 +2020-06-09,Nassau,Florida,12089,83,1 +2020-06-10,Nassau,Florida,12089,84,1 +2020-06-11,Nassau,Florida,12089,86,1 +2020-06-12,Nassau,Florida,12089,87,1 +2020-06-13,Nassau,Florida,12089,90,1 +2020-06-14,Nassau,Florida,12089,92,1 +2020-06-15,Nassau,Florida,12089,93,1 +2020-06-16,Nassau,Florida,12089,94,1 +2020-06-17,Nassau,Florida,12089,96,1 +2020-06-18,Nassau,Florida,12089,97,1 +2020-06-19,Nassau,Florida,12089,101,1 +2020-06-20,Nassau,Florida,12089,111,1 +2020-06-21,Nassau,Florida,12089,115,1 +2020-06-22,Nassau,Florida,12089,120,1 +2020-06-23,Nassau,Florida,12089,126,1 +2020-06-24,Nassau,Florida,12089,128,1 +2020-06-25,Nassau,Florida,12089,136,1 +2020-06-26,Nassau,Florida,12089,146,1 +2020-06-27,Nassau,Florida,12089,158,1 +2020-06-28,Nassau,Florida,12089,169,1 +2020-06-29,Nassau,Florida,12089,175,1 +2020-06-30,Nassau,Florida,12089,182,1 +2020-07-01,Nassau,Florida,12089,196,1 +2020-07-02,Nassau,Florida,12089,225,1 +2020-07-03,Nassau,Florida,12089,253,1 +2020-07-04,Nassau,Florida,12089,277,1 +2020-07-05,Nassau,Florida,12089,313,1 +2020-07-06,Nassau,Florida,12089,325,1 +2020-07-07,Nassau,Florida,12089,346,2 +2020-07-08,Nassau,Florida,12089,375,2 +2020-07-09,Nassau,Florida,12089,405,2 +2020-03-07,Okaloosa,Florida,12091,1,0 +2020-03-08,Okaloosa,Florida,12091,1,0 +2020-03-09,Okaloosa,Florida,12091,1,0 +2020-03-10,Okaloosa,Florida,12091,1,0 +2020-03-11,Okaloosa,Florida,12091,1,0 +2020-03-12,Okaloosa,Florida,12091,1,0 +2020-03-13,Okaloosa,Florida,12091,1,0 +2020-03-14,Okaloosa,Florida,12091,1,0 +2020-03-15,Okaloosa,Florida,12091,1,0 +2020-03-16,Okaloosa,Florida,12091,1,0 +2020-03-17,Okaloosa,Florida,12091,2,0 +2020-03-18,Okaloosa,Florida,12091,3,0 +2020-03-19,Okaloosa,Florida,12091,5,0 +2020-03-20,Okaloosa,Florida,12091,7,0 +2020-03-21,Okaloosa,Florida,12091,12,0 +2020-03-22,Okaloosa,Florida,12091,13,0 +2020-03-23,Okaloosa,Florida,12091,13,0 +2020-03-24,Okaloosa,Florida,12091,13,0 +2020-03-25,Okaloosa,Florida,12091,18,0 +2020-03-26,Okaloosa,Florida,12091,21,0 +2020-03-27,Okaloosa,Florida,12091,25,0 +2020-03-28,Okaloosa,Florida,12091,31,0 +2020-03-29,Okaloosa,Florida,12091,31,0 +2020-03-30,Okaloosa,Florida,12091,35,1 +2020-03-31,Okaloosa,Florida,12091,39,1 +2020-04-01,Okaloosa,Florida,12091,44,1 +2020-04-02,Okaloosa,Florida,12091,50,1 +2020-04-03,Okaloosa,Florida,12091,53,1 +2020-04-04,Okaloosa,Florida,12091,58,1 +2020-04-05,Okaloosa,Florida,12091,61,1 +2020-04-06,Okaloosa,Florida,12091,64,1 +2020-04-07,Okaloosa,Florida,12091,69,1 +2020-04-08,Okaloosa,Florida,12091,77,1 +2020-04-09,Okaloosa,Florida,12091,82,1 +2020-04-10,Okaloosa,Florida,12091,84,1 +2020-04-11,Okaloosa,Florida,12091,90,1 +2020-04-12,Okaloosa,Florida,12091,100,1 +2020-04-13,Okaloosa,Florida,12091,102,1 +2020-04-14,Okaloosa,Florida,12091,103,1 +2020-04-15,Okaloosa,Florida,12091,107,1 +2020-04-16,Okaloosa,Florida,12091,116,1 +2020-04-17,Okaloosa,Florida,12091,123,1 +2020-04-18,Okaloosa,Florida,12091,126,1 +2020-04-19,Okaloosa,Florida,12091,130,3 +2020-04-20,Okaloosa,Florida,12091,130,3 +2020-04-21,Okaloosa,Florida,12091,133,3 +2020-04-22,Okaloosa,Florida,12091,134,3 +2020-04-23,Okaloosa,Florida,12091,140,3 +2020-04-24,Okaloosa,Florida,12091,144,3 +2020-04-25,Okaloosa,Florida,12091,148,3 +2020-04-26,Okaloosa,Florida,12091,148,3 +2020-04-27,Okaloosa,Florida,12091,148,3 +2020-04-28,Okaloosa,Florida,12091,151,3 +2020-04-29,Okaloosa,Florida,12091,152,3 +2020-04-30,Okaloosa,Florida,12091,153,4 +2020-05-01,Okaloosa,Florida,12091,155,4 +2020-05-02,Okaloosa,Florida,12091,157,5 +2020-05-03,Okaloosa,Florida,12091,159,5 +2020-05-04,Okaloosa,Florida,12091,159,5 +2020-05-05,Okaloosa,Florida,12091,160,5 +2020-05-06,Okaloosa,Florida,12091,161,5 +2020-05-07,Okaloosa,Florida,12091,162,5 +2020-05-08,Okaloosa,Florida,12091,164,5 +2020-05-09,Okaloosa,Florida,12091,167,5 +2020-05-10,Okaloosa,Florida,12091,168,5 +2020-05-11,Okaloosa,Florida,12091,168,5 +2020-05-12,Okaloosa,Florida,12091,168,5 +2020-05-13,Okaloosa,Florida,12091,169,5 +2020-05-14,Okaloosa,Florida,12091,171,5 +2020-05-15,Okaloosa,Florida,12091,173,5 +2020-05-16,Okaloosa,Florida,12091,176,5 +2020-05-17,Okaloosa,Florida,12091,176,5 +2020-05-18,Okaloosa,Florida,12091,177,5 +2020-05-19,Okaloosa,Florida,12091,179,5 +2020-05-20,Okaloosa,Florida,12091,183,5 +2020-05-21,Okaloosa,Florida,12091,183,6 +2020-05-22,Okaloosa,Florida,12091,184,6 +2020-05-23,Okaloosa,Florida,12091,191,6 +2020-05-24,Okaloosa,Florida,12091,192,6 +2020-05-25,Okaloosa,Florida,12091,192,6 +2020-05-26,Okaloosa,Florida,12091,193,6 +2020-05-27,Okaloosa,Florida,12091,197,6 +2020-05-28,Okaloosa,Florida,12091,198,6 +2020-05-29,Okaloosa,Florida,12091,206,6 +2020-05-30,Okaloosa,Florida,12091,211,6 +2020-05-31,Okaloosa,Florida,12091,222,6 +2020-06-01,Okaloosa,Florida,12091,231,6 +2020-06-02,Okaloosa,Florida,12091,234,6 +2020-06-03,Okaloosa,Florida,12091,235,6 +2020-06-04,Okaloosa,Florida,12091,240,6 +2020-06-05,Okaloosa,Florida,12091,249,6 +2020-06-06,Okaloosa,Florida,12091,252,6 +2020-06-07,Okaloosa,Florida,12091,261,6 +2020-06-08,Okaloosa,Florida,12091,270,6 +2020-06-09,Okaloosa,Florida,12091,273,6 +2020-06-10,Okaloosa,Florida,12091,286,6 +2020-06-11,Okaloosa,Florida,12091,293,6 +2020-06-12,Okaloosa,Florida,12091,311,6 +2020-06-13,Okaloosa,Florida,12091,314,6 +2020-06-14,Okaloosa,Florida,12091,331,6 +2020-06-15,Okaloosa,Florida,12091,336,6 +2020-06-16,Okaloosa,Florida,12091,343,6 +2020-06-17,Okaloosa,Florida,12091,350,6 +2020-06-18,Okaloosa,Florida,12091,365,6 +2020-06-19,Okaloosa,Florida,12091,390,6 +2020-06-20,Okaloosa,Florida,12091,397,6 +2020-06-21,Okaloosa,Florida,12091,399,6 +2020-06-22,Okaloosa,Florida,12091,420,6 +2020-06-23,Okaloosa,Florida,12091,435,6 +2020-06-24,Okaloosa,Florida,12091,456,6 +2020-06-25,Okaloosa,Florida,12091,499,6 +2020-06-26,Okaloosa,Florida,12091,540,6 +2020-06-27,Okaloosa,Florida,12091,562,6 +2020-06-28,Okaloosa,Florida,12091,600,6 +2020-06-29,Okaloosa,Florida,12091,635,6 +2020-06-30,Okaloosa,Florida,12091,665,6 +2020-07-01,Okaloosa,Florida,12091,703,7 +2020-07-02,Okaloosa,Florida,12091,769,8 +2020-07-03,Okaloosa,Florida,12091,819,8 +2020-07-04,Okaloosa,Florida,12091,879,8 +2020-07-05,Okaloosa,Florida,12091,905,8 +2020-07-06,Okaloosa,Florida,12091,916,8 +2020-07-07,Okaloosa,Florida,12091,937,9 +2020-07-08,Okaloosa,Florida,12091,968,9 +2020-07-09,Okaloosa,Florida,12091,1014,10 +2020-04-01,Okeechobee,Florida,12093,1,0 +2020-04-02,Okeechobee,Florida,12093,1,0 +2020-04-03,Okeechobee,Florida,12093,2,0 +2020-04-04,Okeechobee,Florida,12093,3,0 +2020-04-05,Okeechobee,Florida,12093,3,0 +2020-04-06,Okeechobee,Florida,12093,4,0 +2020-04-07,Okeechobee,Florida,12093,5,0 +2020-04-08,Okeechobee,Florida,12093,5,0 +2020-04-09,Okeechobee,Florida,12093,5,0 +2020-04-10,Okeechobee,Florida,12093,5,0 +2020-04-11,Okeechobee,Florida,12093,5,0 +2020-04-12,Okeechobee,Florida,12093,5,0 +2020-04-13,Okeechobee,Florida,12093,5,0 +2020-04-14,Okeechobee,Florida,12093,5,0 +2020-04-15,Okeechobee,Florida,12093,5,0 +2020-04-16,Okeechobee,Florida,12093,5,0 +2020-04-17,Okeechobee,Florida,12093,5,0 +2020-04-18,Okeechobee,Florida,12093,6,0 +2020-04-19,Okeechobee,Florida,12093,7,0 +2020-04-20,Okeechobee,Florida,12093,7,0 +2020-04-21,Okeechobee,Florida,12093,8,0 +2020-04-22,Okeechobee,Florida,12093,8,0 +2020-04-23,Okeechobee,Florida,12093,9,0 +2020-04-24,Okeechobee,Florida,12093,9,0 +2020-04-25,Okeechobee,Florida,12093,9,0 +2020-04-26,Okeechobee,Florida,12093,9,0 +2020-04-27,Okeechobee,Florida,12093,10,0 +2020-04-28,Okeechobee,Florida,12093,10,0 +2020-04-29,Okeechobee,Florida,12093,10,0 +2020-04-30,Okeechobee,Florida,12093,11,0 +2020-05-01,Okeechobee,Florida,12093,12,0 +2020-05-02,Okeechobee,Florida,12093,13,0 +2020-05-03,Okeechobee,Florida,12093,14,0 +2020-05-04,Okeechobee,Florida,12093,18,0 +2020-05-05,Okeechobee,Florida,12093,18,0 +2020-05-06,Okeechobee,Florida,12093,18,0 +2020-05-07,Okeechobee,Florida,12093,22,0 +2020-05-08,Okeechobee,Florida,12093,23,0 +2020-05-09,Okeechobee,Florida,12093,23,0 +2020-05-10,Okeechobee,Florida,12093,28,0 +2020-05-11,Okeechobee,Florida,12093,28,0 +2020-05-12,Okeechobee,Florida,12093,28,0 +2020-05-13,Okeechobee,Florida,12093,25,0 +2020-05-14,Okeechobee,Florida,12093,32,0 +2020-05-15,Okeechobee,Florida,12093,33,0 +2020-05-16,Okeechobee,Florida,12093,34,0 +2020-05-17,Okeechobee,Florida,12093,35,0 +2020-05-18,Okeechobee,Florida,12093,43,0 +2020-05-19,Okeechobee,Florida,12093,45,0 +2020-05-20,Okeechobee,Florida,12093,49,0 +2020-05-21,Okeechobee,Florida,12093,51,0 +2020-05-22,Okeechobee,Florida,12093,55,0 +2020-05-23,Okeechobee,Florida,12093,57,0 +2020-05-24,Okeechobee,Florida,12093,60,0 +2020-05-25,Okeechobee,Florida,12093,64,0 +2020-05-26,Okeechobee,Florida,12093,67,0 +2020-05-27,Okeechobee,Florida,12093,67,0 +2020-05-28,Okeechobee,Florida,12093,68,0 +2020-05-29,Okeechobee,Florida,12093,70,0 +2020-05-30,Okeechobee,Florida,12093,76,0 +2020-05-31,Okeechobee,Florida,12093,83,0 +2020-06-01,Okeechobee,Florida,12093,84,0 +2020-06-02,Okeechobee,Florida,12093,85,0 +2020-06-03,Okeechobee,Florida,12093,97,0 +2020-06-04,Okeechobee,Florida,12093,104,0 +2020-06-05,Okeechobee,Florida,12093,122,0 +2020-06-06,Okeechobee,Florida,12093,125,0 +2020-06-07,Okeechobee,Florida,12093,138,0 +2020-06-08,Okeechobee,Florida,12093,138,0 +2020-06-09,Okeechobee,Florida,12093,143,0 +2020-06-10,Okeechobee,Florida,12093,149,0 +2020-06-11,Okeechobee,Florida,12093,154,0 +2020-06-12,Okeechobee,Florida,12093,158,0 +2020-06-13,Okeechobee,Florida,12093,166,0 +2020-06-14,Okeechobee,Florida,12093,183,0 +2020-06-15,Okeechobee,Florida,12093,189,0 +2020-06-16,Okeechobee,Florida,12093,195,0 +2020-06-17,Okeechobee,Florida,12093,200,0 +2020-06-18,Okeechobee,Florida,12093,207,0 +2020-06-19,Okeechobee,Florida,12093,230,0 +2020-06-20,Okeechobee,Florida,12093,240,0 +2020-06-21,Okeechobee,Florida,12093,245,0 +2020-06-22,Okeechobee,Florida,12093,250,0 +2020-06-23,Okeechobee,Florida,12093,256,0 +2020-06-24,Okeechobee,Florida,12093,276,0 +2020-06-25,Okeechobee,Florida,12093,289,0 +2020-06-26,Okeechobee,Florida,12093,307,0 +2020-06-27,Okeechobee,Florida,12093,333,0 +2020-06-28,Okeechobee,Florida,12093,343,0 +2020-06-29,Okeechobee,Florida,12093,360,0 +2020-06-30,Okeechobee,Florida,12093,377,0 +2020-07-01,Okeechobee,Florida,12093,383,0 +2020-07-02,Okeechobee,Florida,12093,390,0 +2020-07-03,Okeechobee,Florida,12093,402,0 +2020-07-04,Okeechobee,Florida,12093,413,0 +2020-07-05,Okeechobee,Florida,12093,423,0 +2020-07-06,Okeechobee,Florida,12093,439,0 +2020-07-07,Okeechobee,Florida,12093,451,0 +2020-07-08,Okeechobee,Florida,12093,452,0 +2020-07-09,Okeechobee,Florida,12093,459,0 +2020-03-13,Orange,Florida,12095,1,0 +2020-03-14,Orange,Florida,12095,1,0 +2020-03-15,Orange,Florida,12095,2,0 +2020-03-16,Orange,Florida,12095,4,1 +2020-03-17,Orange,Florida,12095,6,1 +2020-03-18,Orange,Florida,12095,11,1 +2020-03-19,Orange,Florida,12095,19,1 +2020-03-20,Orange,Florida,12095,23,1 +2020-03-21,Orange,Florida,12095,29,1 +2020-03-22,Orange,Florida,12095,32,1 +2020-03-23,Orange,Florida,12095,47,1 +2020-03-24,Orange,Florida,12095,50,1 +2020-03-25,Orange,Florida,12095,87,2 +2020-03-26,Orange,Florida,12095,118,3 +2020-03-27,Orange,Florida,12095,174,4 +2020-03-28,Orange,Florida,12095,213,4 +2020-03-29,Orange,Florida,12095,267,4 +2020-03-30,Orange,Florida,12095,299,4 +2020-03-31,Orange,Florida,12095,373,4 +2020-04-01,Orange,Florida,12095,458,3 +2020-04-02,Orange,Florida,12095,540,4 +2020-04-03,Orange,Florida,12095,601,6 +2020-04-04,Orange,Florida,12095,656,7 +2020-04-05,Orange,Florida,12095,712,7 +2020-04-06,Orange,Florida,12095,753,8 +2020-04-07,Orange,Florida,12095,767,9 +2020-04-08,Orange,Florida,12095,823,10 +2020-04-09,Orange,Florida,12095,859,12 +2020-04-10,Orange,Florida,12095,901,11 +2020-04-11,Orange,Florida,12095,922,12 +2020-04-12,Orange,Florida,12095,948,12 +2020-04-13,Orange,Florida,12095,1023,12 +2020-04-14,Orange,Florida,12095,1037,17 +2020-04-15,Orange,Florida,12095,1073,18 +2020-04-16,Orange,Florida,12095,1113,20 +2020-04-17,Orange,Florida,12095,1157,22 +2020-04-18,Orange,Florida,12095,1179,22 +2020-04-19,Orange,Florida,12095,1197,22 +2020-04-20,Orange,Florida,12095,1215,26 +2020-04-21,Orange,Florida,12095,1234,26 +2020-04-22,Orange,Florida,12095,1250,27 +2020-04-23,Orange,Florida,12095,1273,28 +2020-04-24,Orange,Florida,12095,1289,29 +2020-04-25,Orange,Florida,12095,1303,29 +2020-04-26,Orange,Florida,12095,1321,29 +2020-04-27,Orange,Florida,12095,1338,29 +2020-04-28,Orange,Florida,12095,1362,31 +2020-04-29,Orange,Florida,12095,1370,32 +2020-04-30,Orange,Florida,12095,1384,33 +2020-05-01,Orange,Florida,12095,1412,33 +2020-05-02,Orange,Florida,12095,1421,34 +2020-05-03,Orange,Florida,12095,1433,34 +2020-05-04,Orange,Florida,12095,1437,34 +2020-05-05,Orange,Florida,12095,1445,34 +2020-05-06,Orange,Florida,12095,1459,35 +2020-05-07,Orange,Florida,12095,1473,35 +2020-05-08,Orange,Florida,12095,1477,34 +2020-05-09,Orange,Florida,12095,1504,34 +2020-05-10,Orange,Florida,12095,1504,34 +2020-05-11,Orange,Florida,12095,1511,34 +2020-05-12,Orange,Florida,12095,1536,34 +2020-05-13,Orange,Florida,12095,1552,35 +2020-05-14,Orange,Florida,12095,1576,35 +2020-05-15,Orange,Florida,12095,1614,35 +2020-05-16,Orange,Florida,12095,1628,37 +2020-05-17,Orange,Florida,12095,1654,37 +2020-05-18,Orange,Florida,12095,1678,37 +2020-05-19,Orange,Florida,12095,1698,37 +2020-05-20,Orange,Florida,12095,1707,37 +2020-05-21,Orange,Florida,12095,1725,37 +2020-05-22,Orange,Florida,12095,1743,37 +2020-05-23,Orange,Florida,12095,1767,38 +2020-05-24,Orange,Florida,12095,1807,38 +2020-05-25,Orange,Florida,12095,1830,38 +2020-05-26,Orange,Florida,12095,1848,38 +2020-05-27,Orange,Florida,12095,1876,38 +2020-05-28,Orange,Florida,12095,1901,39 +2020-05-29,Orange,Florida,12095,1944,40 +2020-05-30,Orange,Florida,12095,1975,40 +2020-05-31,Orange,Florida,12095,2001,40 +2020-06-01,Orange,Florida,12095,2030,40 +2020-06-02,Orange,Florida,12095,2047,40 +2020-06-03,Orange,Florida,12095,2120,40 +2020-06-04,Orange,Florida,12095,2168,42 +2020-06-05,Orange,Florida,12095,2209,42 +2020-06-06,Orange,Florida,12095,2255,44 +2020-06-07,Orange,Florida,12095,2315,44 +2020-06-08,Orange,Florida,12095,2377,44 +2020-06-09,Orange,Florida,12095,2448,44 +2020-06-10,Orange,Florida,12095,2541,45 +2020-06-11,Orange,Florida,12095,2677,45 +2020-06-12,Orange,Florida,12095,2772,45 +2020-06-13,Orange,Florida,12095,2936,45 +2020-06-14,Orange,Florida,12095,3129,45 +2020-06-15,Orange,Florida,12095,3281,45 +2020-06-16,Orange,Florida,12095,3436,46 +2020-06-17,Orange,Florida,12095,3583,47 +2020-06-18,Orange,Florida,12095,3899,47 +2020-06-19,Orange,Florida,12095,4273,47 +2020-06-20,Orange,Florida,12095,4568,47 +2020-06-21,Orange,Florida,12095,4913,47 +2020-06-22,Orange,Florida,12095,5156,48 +2020-06-23,Orange,Florida,12095,5501,50 +2020-06-24,Orange,Florida,12095,6055,52 +2020-06-25,Orange,Florida,12095,6785,54 +2020-06-26,Orange,Florida,12095,7847,55 +2020-06-27,Orange,Florida,12095,8836,55 +2020-06-28,Orange,Florida,12095,9670,55 +2020-06-29,Orange,Florida,12095,10013,55 +2020-06-30,Orange,Florida,12095,10313,57 +2020-07-01,Orange,Florida,12095,10873,57 +2020-07-02,Orange,Florida,12095,11457,58 +2020-07-03,Orange,Florida,12095,12077,58 +2020-07-04,Orange,Florida,12095,13261,58 +2020-07-05,Orange,Florida,12095,14031,58 +2020-07-06,Orange,Florida,12095,14406,60 +2020-07-07,Orange,Florida,12095,14767,60 +2020-07-08,Orange,Florida,12095,15193,62 +2020-07-09,Orange,Florida,12095,15594,68 +2020-03-13,Osceola,Florida,12097,1,0 +2020-03-14,Osceola,Florida,12097,1,0 +2020-03-15,Osceola,Florida,12097,1,0 +2020-03-16,Osceola,Florida,12097,4,0 +2020-03-17,Osceola,Florida,12097,7,0 +2020-03-18,Osceola,Florida,12097,8,0 +2020-03-19,Osceola,Florida,12097,13,0 +2020-03-20,Osceola,Florida,12097,13,0 +2020-03-21,Osceola,Florida,12097,21,0 +2020-03-22,Osceola,Florida,12097,24,0 +2020-03-23,Osceola,Florida,12097,25,0 +2020-03-24,Osceola,Florida,12097,26,0 +2020-03-25,Osceola,Florida,12097,39,0 +2020-03-26,Osceola,Florida,12097,45,0 +2020-03-27,Osceola,Florida,12097,56,0 +2020-03-28,Osceola,Florida,12097,74,0 +2020-03-29,Osceola,Florida,12097,89,0 +2020-03-30,Osceola,Florida,12097,94,1 +2020-03-31,Osceola,Florida,12097,110,1 +2020-04-01,Osceola,Florida,12097,140,1 +2020-04-02,Osceola,Florida,12097,170,4 +2020-04-03,Osceola,Florida,12097,201,4 +2020-04-04,Osceola,Florida,12097,216,4 +2020-04-05,Osceola,Florida,12097,229,4 +2020-04-06,Osceola,Florida,12097,241,4 +2020-04-07,Osceola,Florida,12097,256,4 +2020-04-08,Osceola,Florida,12097,277,4 +2020-04-09,Osceola,Florida,12097,295,5 +2020-04-10,Osceola,Florida,12097,305,5 +2020-04-11,Osceola,Florida,12097,317,5 +2020-04-12,Osceola,Florida,12097,323,5 +2020-04-13,Osceola,Florida,12097,333,5 +2020-04-14,Osceola,Florida,12097,349,5 +2020-04-15,Osceola,Florida,12097,361,5 +2020-04-16,Osceola,Florida,12097,384,5 +2020-04-17,Osceola,Florida,12097,392,5 +2020-04-18,Osceola,Florida,12097,403,5 +2020-04-19,Osceola,Florida,12097,409,5 +2020-04-20,Osceola,Florida,12097,410,5 +2020-04-21,Osceola,Florida,12097,417,6 +2020-04-22,Osceola,Florida,12097,423,6 +2020-04-23,Osceola,Florida,12097,449,7 +2020-04-24,Osceola,Florida,12097,461,7 +2020-04-25,Osceola,Florida,12097,463,7 +2020-04-26,Osceola,Florida,12097,463,7 +2020-04-27,Osceola,Florida,12097,470,7 +2020-04-28,Osceola,Florida,12097,474,7 +2020-04-29,Osceola,Florida,12097,479,7 +2020-04-30,Osceola,Florida,12097,478,7 +2020-05-01,Osceola,Florida,12097,486,7 +2020-05-02,Osceola,Florida,12097,504,8 +2020-05-03,Osceola,Florida,12097,509,8 +2020-05-04,Osceola,Florida,12097,516,8 +2020-05-05,Osceola,Florida,12097,514,9 +2020-05-06,Osceola,Florida,12097,529,11 +2020-05-07,Osceola,Florida,12097,544,11 +2020-05-08,Osceola,Florida,12097,554,12 +2020-05-09,Osceola,Florida,12097,564,12 +2020-05-10,Osceola,Florida,12097,572,12 +2020-05-11,Osceola,Florida,12097,573,13 +2020-05-12,Osceola,Florida,12097,580,15 +2020-05-13,Osceola,Florida,12097,586,16 +2020-05-14,Osceola,Florida,12097,594,16 +2020-05-15,Osceola,Florida,12097,608,16 +2020-05-16,Osceola,Florida,12097,616,17 +2020-05-17,Osceola,Florida,12097,622,17 +2020-05-18,Osceola,Florida,12097,627,17 +2020-05-19,Osceola,Florida,12097,629,17 +2020-05-20,Osceola,Florida,12097,636,18 +2020-05-21,Osceola,Florida,12097,640,18 +2020-05-22,Osceola,Florida,12097,644,18 +2020-05-23,Osceola,Florida,12097,648,18 +2020-05-24,Osceola,Florida,12097,658,18 +2020-05-25,Osceola,Florida,12097,658,18 +2020-05-26,Osceola,Florida,12097,662,18 +2020-05-27,Osceola,Florida,12097,673,19 +2020-05-28,Osceola,Florida,12097,674,19 +2020-05-29,Osceola,Florida,12097,688,19 +2020-05-30,Osceola,Florida,12097,698,19 +2020-05-31,Osceola,Florida,12097,701,19 +2020-06-01,Osceola,Florida,12097,703,19 +2020-06-02,Osceola,Florida,12097,709,20 +2020-06-03,Osceola,Florida,12097,715,20 +2020-06-04,Osceola,Florida,12097,726,20 +2020-06-05,Osceola,Florida,12097,732,20 +2020-06-06,Osceola,Florida,12097,741,20 +2020-06-07,Osceola,Florida,12097,745,21 +2020-06-08,Osceola,Florida,12097,749,21 +2020-06-09,Osceola,Florida,12097,762,21 +2020-06-10,Osceola,Florida,12097,770,21 +2020-06-11,Osceola,Florida,12097,785,21 +2020-06-12,Osceola,Florida,12097,796,21 +2020-06-13,Osceola,Florida,12097,810,21 +2020-06-14,Osceola,Florida,12097,838,21 +2020-06-15,Osceola,Florida,12097,848,21 +2020-06-16,Osceola,Florida,12097,866,21 +2020-06-17,Osceola,Florida,12097,892,22 +2020-06-18,Osceola,Florida,12097,926,22 +2020-06-19,Osceola,Florida,12097,960,23 +2020-06-20,Osceola,Florida,12097,1007,23 +2020-06-21,Osceola,Florida,12097,1052,23 +2020-06-22,Osceola,Florida,12097,1080,23 +2020-06-23,Osceola,Florida,12097,1147,23 +2020-06-24,Osceola,Florida,12097,1222,24 +2020-06-25,Osceola,Florida,12097,1321,24 +2020-06-26,Osceola,Florida,12097,1485,24 +2020-06-27,Osceola,Florida,12097,1649,24 +2020-06-28,Osceola,Florida,12097,1833,24 +2020-06-29,Osceola,Florida,12097,1919,24 +2020-06-30,Osceola,Florida,12097,2026,24 +2020-07-01,Osceola,Florida,12097,2164,25 +2020-07-02,Osceola,Florida,12097,2349,26 +2020-07-03,Osceola,Florida,12097,2526,25 +2020-07-04,Osceola,Florida,12097,2781,26 +2020-07-05,Osceola,Florida,12097,2966,27 +2020-07-06,Osceola,Florida,12097,3068,29 +2020-07-07,Osceola,Florida,12097,3190,29 +2020-07-08,Osceola,Florida,12097,3302,30 +2020-07-09,Osceola,Florida,12097,3466,31 +2020-03-12,Palm Beach,Florida,12099,2,0 +2020-03-13,Palm Beach,Florida,12099,5,0 +2020-03-14,Palm Beach,Florida,12099,5,0 +2020-03-15,Palm Beach,Florida,12099,5,0 +2020-03-16,Palm Beach,Florida,12099,7,0 +2020-03-17,Palm Beach,Florida,12099,11,0 +2020-03-18,Palm Beach,Florida,12099,20,0 +2020-03-19,Palm Beach,Florida,12099,28,0 +2020-03-20,Palm Beach,Florida,12099,41,0 +2020-03-21,Palm Beach,Florida,12099,56,0 +2020-03-22,Palm Beach,Florida,12099,70,1 +2020-03-23,Palm Beach,Florida,12099,88,3 +2020-03-24,Palm Beach,Florida,12099,102,3 +2020-03-25,Palm Beach,Florida,12099,139,3 +2020-03-26,Palm Beach,Florida,12099,172,3 +2020-03-27,Palm Beach,Florida,12099,241,5 +2020-03-28,Palm Beach,Florida,12099,318,6 +2020-03-29,Palm Beach,Florida,12099,382,7 +2020-03-30,Palm Beach,Florida,12099,462,10 +2020-03-31,Palm Beach,Florida,12099,551,14 +2020-04-01,Palm Beach,Florida,12099,616,22 +2020-04-02,Palm Beach,Florida,12099,735,27 +2020-04-03,Palm Beach,Florida,12099,856,33 +2020-04-04,Palm Beach,Florida,12099,952,35 +2020-04-05,Palm Beach,Florida,12099,998,49 +2020-04-06,Palm Beach,Florida,12099,1080,51 +2020-04-07,Palm Beach,Florida,12099,1157,64 +2020-04-08,Palm Beach,Florida,12099,1222,69 +2020-04-09,Palm Beach,Florida,12099,1331,75 +2020-04-10,Palm Beach,Florida,12099,1429,79 +2020-04-11,Palm Beach,Florida,12099,1499,80 +2020-04-12,Palm Beach,Florida,12099,1644,81 +2020-04-13,Palm Beach,Florida,12099,1702,92 +2020-04-14,Palm Beach,Florida,12099,1738,103 +2020-04-15,Palm Beach,Florida,12099,1816,107 +2020-04-16,Palm Beach,Florida,12099,1865,112 +2020-04-17,Palm Beach,Florida,12099,2086,115 +2020-04-18,Palm Beach,Florida,12099,2136,114 +2020-04-19,Palm Beach,Florida,12099,2168,121 +2020-04-20,Palm Beach,Florida,12099,2258,122 +2020-04-21,Palm Beach,Florida,12099,2318,131 +2020-04-22,Palm Beach,Florida,12099,2401,131 +2020-04-23,Palm Beach,Florida,12099,2552,144 +2020-04-24,Palm Beach,Florida,12099,2598,155 +2020-04-25,Palm Beach,Florida,12099,2612,155 +2020-04-26,Palm Beach,Florida,12099,2695,155 +2020-04-27,Palm Beach,Florida,12099,2761,156 +2020-04-28,Palm Beach,Florida,12099,2875,173 +2020-04-29,Palm Beach,Florida,12099,2909,178 +2020-04-30,Palm Beach,Florida,12099,2961,186 +2020-05-01,Palm Beach,Florida,12099,3039,191 +2020-05-02,Palm Beach,Florida,12099,3078,195 +2020-05-03,Palm Beach,Florida,12099,3128,196 +2020-05-04,Palm Beach,Florida,12099,3309,196 +2020-05-05,Palm Beach,Florida,12099,3388,205 +2020-05-06,Palm Beach,Florida,12099,3478,215 +2020-05-07,Palm Beach,Florida,12099,3585,222 +2020-05-08,Palm Beach,Florida,12099,3613,229 +2020-05-09,Palm Beach,Florida,12099,3796,237 +2020-05-10,Palm Beach,Florida,12099,3868,237 +2020-05-11,Palm Beach,Florida,12099,3887,238 +2020-05-12,Palm Beach,Florida,12099,4091,245 +2020-05-13,Palm Beach,Florida,12099,4174,254 +2020-05-14,Palm Beach,Florida,12099,4276,263 +2020-05-15,Palm Beach,Florida,12099,4389,271 +2020-05-16,Palm Beach,Florida,12099,4438,275 +2020-05-17,Palm Beach,Florida,12099,4522,275 +2020-05-18,Palm Beach,Florida,12099,4656,275 +2020-05-19,Palm Beach,Florida,12099,4697,284 +2020-05-20,Palm Beach,Florida,12099,4774,291 +2020-05-21,Palm Beach,Florida,12099,4966,308 +2020-05-22,Palm Beach,Florida,12099,5070,311 +2020-05-23,Palm Beach,Florida,12099,5138,315 +2020-05-24,Palm Beach,Florida,12099,5199,315 +2020-05-25,Palm Beach,Florida,12099,5353,315 +2020-05-26,Palm Beach,Florida,12099,5427,315 +2020-05-27,Palm Beach,Florida,12099,5453,320 +2020-05-28,Palm Beach,Florida,12099,5539,327 +2020-05-29,Palm Beach,Florida,12099,5763,335 +2020-05-30,Palm Beach,Florida,12099,5896,337 +2020-05-31,Palm Beach,Florida,12099,5994,337 +2020-06-01,Palm Beach,Florida,12099,6133,337 +2020-06-02,Palm Beach,Florida,12099,6217,351 +2020-06-03,Palm Beach,Florida,12099,6475,359 +2020-06-04,Palm Beach,Florida,12099,6686,363 +2020-06-05,Palm Beach,Florida,12099,6857,367 +2020-06-06,Palm Beach,Florida,12099,7072,370 +2020-06-07,Palm Beach,Florida,12099,7228,372 +2020-06-08,Palm Beach,Florida,12099,7327,373 +2020-06-09,Palm Beach,Florida,12099,7516,388 +2020-06-10,Palm Beach,Florida,12099,7676,397 +2020-06-11,Palm Beach,Florida,12099,7885,407 +2020-06-12,Palm Beach,Florida,12099,8207,416 +2020-06-13,Palm Beach,Florida,12099,8440,425 +2020-06-14,Palm Beach,Florida,12099,8831,426 +2020-06-15,Palm Beach,Florida,12099,9013,429 +2020-06-16,Palm Beach,Florida,12099,9260,438 +2020-06-17,Palm Beach,Florida,12099,9470,444 +2020-06-18,Palm Beach,Florida,12099,9852,450 +2020-06-19,Palm Beach,Florida,12099,10114,464 +2020-06-20,Palm Beach,Florida,12099,10504,468 +2020-06-21,Palm Beach,Florida,12099,10752,468 +2020-06-22,Palm Beach,Florida,12099,10941,468 +2020-06-23,Palm Beach,Florida,12099,11178,476 +2020-06-24,Palm Beach,Florida,12099,11534,482 +2020-06-25,Palm Beach,Florida,12099,11838,486 +2020-06-26,Palm Beach,Florida,12099,12496,490 +2020-06-27,Palm Beach,Florida,12099,12926,492 +2020-06-28,Palm Beach,Florida,12099,13387,503 +2020-06-29,Palm Beach,Florida,12099,13709,503 +2020-06-30,Palm Beach,Florida,12099,14148,510 +2020-07-01,Palm Beach,Florida,12099,14445,512 +2020-07-02,Palm Beach,Florida,12099,14857,523 +2020-07-03,Palm Beach,Florida,12099,15322,536 +2020-07-04,Palm Beach,Florida,12099,16147,541 +2020-07-05,Palm Beach,Florida,12099,16834,542 +2020-07-06,Palm Beach,Florida,12099,17240,543 +2020-07-07,Palm Beach,Florida,12099,17636,563 +2020-07-08,Palm Beach,Florida,12099,18229,569 +2020-07-09,Palm Beach,Florida,12099,18654,578 +2020-03-10,Pasco,Florida,12101,1,0 +2020-03-11,Pasco,Florida,12101,1,0 +2020-03-12,Pasco,Florida,12101,1,0 +2020-03-13,Pasco,Florida,12101,1,0 +2020-03-14,Pasco,Florida,12101,1,0 +2020-03-15,Pasco,Florida,12101,2,0 +2020-03-16,Pasco,Florida,12101,2,0 +2020-03-17,Pasco,Florida,12101,2,0 +2020-03-18,Pasco,Florida,12101,3,0 +2020-03-19,Pasco,Florida,12101,5,0 +2020-03-20,Pasco,Florida,12101,6,0 +2020-03-21,Pasco,Florida,12101,8,0 +2020-03-22,Pasco,Florida,12101,11,1 +2020-03-23,Pasco,Florida,12101,14,1 +2020-03-24,Pasco,Florida,12101,16,1 +2020-03-25,Pasco,Florida,12101,18,1 +2020-03-26,Pasco,Florida,12101,21,1 +2020-03-27,Pasco,Florida,12101,25,1 +2020-03-28,Pasco,Florida,12101,34,2 +2020-03-29,Pasco,Florida,12101,35,2 +2020-03-30,Pasco,Florida,12101,38,2 +2020-03-31,Pasco,Florida,12101,40,2 +2020-04-01,Pasco,Florida,12101,51,2 +2020-04-02,Pasco,Florida,12101,66,2 +2020-04-03,Pasco,Florida,12101,77,2 +2020-04-04,Pasco,Florida,12101,90,2 +2020-04-05,Pasco,Florida,12101,102,2 +2020-04-06,Pasco,Florida,12101,114,2 +2020-04-07,Pasco,Florida,12101,122,2 +2020-04-08,Pasco,Florida,12101,127,2 +2020-04-09,Pasco,Florida,12101,139,2 +2020-04-10,Pasco,Florida,12101,143,2 +2020-04-11,Pasco,Florida,12101,150,2 +2020-04-12,Pasco,Florida,12101,160,3 +2020-04-13,Pasco,Florida,12101,169,3 +2020-04-14,Pasco,Florida,12101,177,3 +2020-04-15,Pasco,Florida,12101,186,3 +2020-04-16,Pasco,Florida,12101,190,3 +2020-04-17,Pasco,Florida,12101,192,3 +2020-04-18,Pasco,Florida,12101,198,3 +2020-04-19,Pasco,Florida,12101,205,3 +2020-04-20,Pasco,Florida,12101,209,3 +2020-04-21,Pasco,Florida,12101,213,3 +2020-04-22,Pasco,Florida,12101,218,3 +2020-04-23,Pasco,Florida,12101,221,3 +2020-04-24,Pasco,Florida,12101,230,4 +2020-04-25,Pasco,Florida,12101,233,4 +2020-04-26,Pasco,Florida,12101,232,4 +2020-04-27,Pasco,Florida,12101,237,5 +2020-04-28,Pasco,Florida,12101,239,6 +2020-04-29,Pasco,Florida,12101,241,6 +2020-04-30,Pasco,Florida,12101,249,7 +2020-05-01,Pasco,Florida,12101,252,8 +2020-05-02,Pasco,Florida,12101,275,8 +2020-05-03,Pasco,Florida,12101,278,8 +2020-05-04,Pasco,Florida,12101,282,8 +2020-05-05,Pasco,Florida,12101,284,8 +2020-05-06,Pasco,Florida,12101,285,8 +2020-05-07,Pasco,Florida,12101,289,9 +2020-05-08,Pasco,Florida,12101,291,9 +2020-05-09,Pasco,Florida,12101,293,9 +2020-05-10,Pasco,Florida,12101,297,9 +2020-05-11,Pasco,Florida,12101,300,9 +2020-05-12,Pasco,Florida,12101,302,9 +2020-05-13,Pasco,Florida,12101,306,9 +2020-05-14,Pasco,Florida,12101,308,9 +2020-05-15,Pasco,Florida,12101,313,9 +2020-05-16,Pasco,Florida,12101,314,9 +2020-05-17,Pasco,Florida,12101,316,9 +2020-05-18,Pasco,Florida,12101,319,9 +2020-05-19,Pasco,Florida,12101,327,12 +2020-05-20,Pasco,Florida,12101,328,12 +2020-05-21,Pasco,Florida,12101,335,12 +2020-05-22,Pasco,Florida,12101,338,12 +2020-05-23,Pasco,Florida,12101,341,12 +2020-05-24,Pasco,Florida,12101,349,12 +2020-05-25,Pasco,Florida,12101,360,12 +2020-05-26,Pasco,Florida,12101,369,13 +2020-05-27,Pasco,Florida,12101,373,12 +2020-05-28,Pasco,Florida,12101,375,13 +2020-05-29,Pasco,Florida,12101,377,13 +2020-05-30,Pasco,Florida,12101,381,13 +2020-05-31,Pasco,Florida,12101,386,13 +2020-06-01,Pasco,Florida,12101,388,13 +2020-06-02,Pasco,Florida,12101,394,15 +2020-06-03,Pasco,Florida,12101,398,15 +2020-06-04,Pasco,Florida,12101,405,15 +2020-06-05,Pasco,Florida,12101,416,15 +2020-06-06,Pasco,Florida,12101,419,15 +2020-06-07,Pasco,Florida,12101,424,15 +2020-06-08,Pasco,Florida,12101,434,15 +2020-06-09,Pasco,Florida,12101,442,15 +2020-06-10,Pasco,Florida,12101,457,15 +2020-06-11,Pasco,Florida,12101,473,15 +2020-06-12,Pasco,Florida,12101,484,15 +2020-06-13,Pasco,Florida,12101,500,15 +2020-06-14,Pasco,Florida,12101,521,15 +2020-06-15,Pasco,Florida,12101,543,15 +2020-06-16,Pasco,Florida,12101,560,16 +2020-06-17,Pasco,Florida,12101,583,16 +2020-06-18,Pasco,Florida,12101,627,16 +2020-06-19,Pasco,Florida,12101,686,16 +2020-06-20,Pasco,Florida,12101,750,17 +2020-06-21,Pasco,Florida,12101,809,17 +2020-06-22,Pasco,Florida,12101,872,17 +2020-06-23,Pasco,Florida,12101,954,17 +2020-06-24,Pasco,Florida,12101,1084,17 +2020-06-25,Pasco,Florida,12101,1170,17 +2020-06-26,Pasco,Florida,12101,1326,17 +2020-06-27,Pasco,Florida,12101,1630,17 +2020-06-28,Pasco,Florida,12101,1780,17 +2020-06-29,Pasco,Florida,12101,1909,17 +2020-06-30,Pasco,Florida,12101,1992,19 +2020-07-01,Pasco,Florida,12101,2133,21 +2020-07-02,Pasco,Florida,12101,2274,22 +2020-07-03,Pasco,Florida,12101,2443,23 +2020-07-04,Pasco,Florida,12101,2608,23 +2020-07-05,Pasco,Florida,12101,2757,24 +2020-07-06,Pasco,Florida,12101,2850,26 +2020-07-07,Pasco,Florida,12101,3004,26 +2020-07-08,Pasco,Florida,12101,3193,26 +2020-07-09,Pasco,Florida,12101,3330,27 +2020-03-10,Pinellas,Florida,12103,2,0 +2020-03-11,Pinellas,Florida,12103,2,0 +2020-03-12,Pinellas,Florida,12103,2,0 +2020-03-13,Pinellas,Florida,12103,2,0 +2020-03-14,Pinellas,Florida,12103,2,0 +2020-03-15,Pinellas,Florida,12103,2,0 +2020-03-16,Pinellas,Florida,12103,4,0 +2020-03-17,Pinellas,Florida,12103,4,0 +2020-03-18,Pinellas,Florida,12103,12,0 +2020-03-19,Pinellas,Florida,12103,16,0 +2020-03-20,Pinellas,Florida,12103,22,0 +2020-03-21,Pinellas,Florida,12103,29,0 +2020-03-22,Pinellas,Florida,12103,38,0 +2020-03-23,Pinellas,Florida,12103,41,0 +2020-03-24,Pinellas,Florida,12103,45,1 +2020-03-25,Pinellas,Florida,12103,54,1 +2020-03-26,Pinellas,Florida,12103,65,1 +2020-03-27,Pinellas,Florida,12103,82,1 +2020-03-28,Pinellas,Florida,12103,111,4 +2020-03-29,Pinellas,Florida,12103,116,5 +2020-03-30,Pinellas,Florida,12103,129,5 +2020-03-31,Pinellas,Florida,12103,167,5 +2020-04-01,Pinellas,Florida,12103,233,5 +2020-04-02,Pinellas,Florida,12103,273,6 +2020-04-03,Pinellas,Florida,12103,318,7 +2020-04-04,Pinellas,Florida,12103,342,7 +2020-04-05,Pinellas,Florida,12103,359,8 +2020-04-06,Pinellas,Florida,12103,372,8 +2020-04-07,Pinellas,Florida,12103,387,9 +2020-04-08,Pinellas,Florida,12103,395,10 +2020-04-09,Pinellas,Florida,12103,422,10 +2020-04-10,Pinellas,Florida,12103,431,12 +2020-04-11,Pinellas,Florida,12103,446,12 +2020-04-12,Pinellas,Florida,12103,455,13 +2020-04-13,Pinellas,Florida,12103,479,13 +2020-04-14,Pinellas,Florida,12103,494,14 +2020-04-15,Pinellas,Florida,12103,513,14 +2020-04-16,Pinellas,Florida,12103,530,14 +2020-04-17,Pinellas,Florida,12103,565,16 +2020-04-18,Pinellas,Florida,12103,587,16 +2020-04-19,Pinellas,Florida,12103,592,16 +2020-04-20,Pinellas,Florida,12103,607,16 +2020-04-21,Pinellas,Florida,12103,632,18 +2020-04-22,Pinellas,Florida,12103,638,19 +2020-04-23,Pinellas,Florida,12103,656,23 +2020-04-24,Pinellas,Florida,12103,673,24 +2020-04-25,Pinellas,Florida,12103,677,24 +2020-04-26,Pinellas,Florida,12103,687,24 +2020-04-27,Pinellas,Florida,12103,698,25 +2020-04-28,Pinellas,Florida,12103,709,31 +2020-04-29,Pinellas,Florida,12103,718,34 +2020-04-30,Pinellas,Florida,12103,729,37 +2020-05-01,Pinellas,Florida,12103,748,38 +2020-05-02,Pinellas,Florida,12103,757,41 +2020-05-03,Pinellas,Florida,12103,766,41 +2020-05-04,Pinellas,Florida,12103,784,42 +2020-05-05,Pinellas,Florida,12103,788,44 +2020-05-06,Pinellas,Florida,12103,801,50 +2020-05-07,Pinellas,Florida,12103,820,56 +2020-05-08,Pinellas,Florida,12103,828,59 +2020-05-09,Pinellas,Florida,12103,848,59 +2020-05-10,Pinellas,Florida,12103,861,60 +2020-05-11,Pinellas,Florida,12103,876,61 +2020-05-12,Pinellas,Florida,12103,909,62 +2020-05-13,Pinellas,Florida,12103,923,63 +2020-05-14,Pinellas,Florida,12103,962,65 +2020-05-15,Pinellas,Florida,12103,997,66 +2020-05-16,Pinellas,Florida,12103,1008,67 +2020-05-17,Pinellas,Florida,12103,1022,67 +2020-05-18,Pinellas,Florida,12103,1051,68 +2020-05-19,Pinellas,Florida,12103,1062,71 +2020-05-20,Pinellas,Florida,12103,1075,72 +2020-05-21,Pinellas,Florida,12103,1109,73 +2020-05-22,Pinellas,Florida,12103,1116,73 +2020-05-23,Pinellas,Florida,12103,1153,75 +2020-05-24,Pinellas,Florida,12103,1173,75 +2020-05-25,Pinellas,Florida,12103,1187,75 +2020-05-26,Pinellas,Florida,12103,1196,75 +2020-05-27,Pinellas,Florida,12103,1205,79 +2020-05-28,Pinellas,Florida,12103,1218,80 +2020-05-29,Pinellas,Florida,12103,1238,82 +2020-05-30,Pinellas,Florida,12103,1262,82 +2020-05-31,Pinellas,Florida,12103,1297,82 +2020-06-01,Pinellas,Florida,12103,1313,83 +2020-06-02,Pinellas,Florida,12103,1335,90 +2020-06-03,Pinellas,Florida,12103,1361,90 +2020-06-04,Pinellas,Florida,12103,1397,91 +2020-06-05,Pinellas,Florida,12103,1478,95 +2020-06-06,Pinellas,Florida,12103,1532,95 +2020-06-07,Pinellas,Florida,12103,1584,95 +2020-06-08,Pinellas,Florida,12103,1638,95 +2020-06-09,Pinellas,Florida,12103,1679,99 +2020-06-10,Pinellas,Florida,12103,1746,100 +2020-06-11,Pinellas,Florida,12103,1862,101 +2020-06-12,Pinellas,Florida,12103,1941,102 +2020-06-13,Pinellas,Florida,12103,2103,102 +2020-06-14,Pinellas,Florida,12103,2235,102 +2020-06-15,Pinellas,Florida,12103,2389,102 +2020-06-16,Pinellas,Florida,12103,2523,107 +2020-06-17,Pinellas,Florida,12103,2684,110 +2020-06-18,Pinellas,Florida,12103,2887,112 +2020-06-19,Pinellas,Florida,12103,3153,113 +2020-06-20,Pinellas,Florida,12103,3438,114 +2020-06-21,Pinellas,Florida,12103,3667,115 +2020-06-22,Pinellas,Florida,12103,3854,117 +2020-06-23,Pinellas,Florida,12103,4033,129 +2020-06-24,Pinellas,Florida,12103,4387,132 +2020-06-25,Pinellas,Florida,12103,4669,137 +2020-06-26,Pinellas,Florida,12103,5099,141 +2020-06-27,Pinellas,Florida,12103,5713,149 +2020-06-28,Pinellas,Florida,12103,6020,154 +2020-06-29,Pinellas,Florida,12103,6260,154 +2020-06-30,Pinellas,Florida,12103,6487,166 +2020-07-01,Pinellas,Florida,12103,6861,172 +2020-07-02,Pinellas,Florida,12103,7249,180 +2020-07-03,Pinellas,Florida,12103,7697,183 +2020-07-04,Pinellas,Florida,12103,8116,184 +2020-07-05,Pinellas,Florida,12103,8533,198 +2020-07-06,Pinellas,Florida,12103,8759,199 +2020-07-07,Pinellas,Florida,12103,9032,206 +2020-07-08,Pinellas,Florida,12103,9395,209 +2020-07-09,Pinellas,Florida,12103,9826,221 +2020-03-17,Polk,Florida,12105,1,0 +2020-03-18,Polk,Florida,12105,2,0 +2020-03-19,Polk,Florida,12105,4,0 +2020-03-20,Polk,Florida,12105,9,0 +2020-03-21,Polk,Florida,12105,10,0 +2020-03-22,Polk,Florida,12105,11,0 +2020-03-23,Polk,Florida,12105,13,0 +2020-03-24,Polk,Florida,12105,13,0 +2020-03-25,Polk,Florida,12105,15,0 +2020-03-26,Polk,Florida,12105,20,0 +2020-03-27,Polk,Florida,12105,28,0 +2020-03-28,Polk,Florida,12105,37,0 +2020-03-29,Polk,Florida,12105,46,0 +2020-03-30,Polk,Florida,12105,63,0 +2020-03-31,Polk,Florida,12105,73,1 +2020-04-01,Polk,Florida,12105,91,1 +2020-04-02,Polk,Florida,12105,103,2 +2020-04-03,Polk,Florida,12105,126,3 +2020-04-04,Polk,Florida,12105,142,4 +2020-04-05,Polk,Florida,12105,157,4 +2020-04-06,Polk,Florida,12105,180,5 +2020-04-07,Polk,Florida,12105,199,5 +2020-04-08,Polk,Florida,12105,206,6 +2020-04-09,Polk,Florida,12105,234,7 +2020-04-10,Polk,Florida,12105,241,8 +2020-04-11,Polk,Florida,12105,244,8 +2020-04-12,Polk,Florida,12105,254,8 +2020-04-13,Polk,Florida,12105,270,9 +2020-04-14,Polk,Florida,12105,279,10 +2020-04-15,Polk,Florida,12105,287,10 +2020-04-16,Polk,Florida,12105,304,11 +2020-04-17,Polk,Florida,12105,316,12 +2020-04-18,Polk,Florida,12105,320,12 +2020-04-19,Polk,Florida,12105,326,12 +2020-04-20,Polk,Florida,12105,335,14 +2020-04-21,Polk,Florida,12105,356,15 +2020-04-22,Polk,Florida,12105,361,15 +2020-04-23,Polk,Florida,12105,379,17 +2020-04-24,Polk,Florida,12105,393,18 +2020-04-25,Polk,Florida,12105,400,18 +2020-04-26,Polk,Florida,12105,410,18 +2020-04-27,Polk,Florida,12105,441,18 +2020-04-28,Polk,Florida,12105,457,20 +2020-04-29,Polk,Florida,12105,468,22 +2020-04-30,Polk,Florida,12105,483,23 +2020-05-01,Polk,Florida,12105,500,24 +2020-05-02,Polk,Florida,12105,514,26 +2020-05-03,Polk,Florida,12105,523,26 +2020-05-04,Polk,Florida,12105,536,26 +2020-05-05,Polk,Florida,12105,547,28 +2020-05-06,Polk,Florida,12105,564,30 +2020-05-07,Polk,Florida,12105,594,30 +2020-05-08,Polk,Florida,12105,601,31 +2020-05-09,Polk,Florida,12105,623,33 +2020-05-10,Polk,Florida,12105,636,33 +2020-05-11,Polk,Florida,12105,655,33 +2020-05-12,Polk,Florida,12105,675,35 +2020-05-13,Polk,Florida,12105,687,36 +2020-05-14,Polk,Florida,12105,698,37 +2020-05-15,Polk,Florida,12105,716,40 +2020-05-16,Polk,Florida,12105,722,41 +2020-05-17,Polk,Florida,12105,736,42 +2020-05-18,Polk,Florida,12105,746,43 +2020-05-19,Polk,Florida,12105,766,45 +2020-05-20,Polk,Florida,12105,786,45 +2020-05-21,Polk,Florida,12105,822,46 +2020-05-22,Polk,Florida,12105,840,49 +2020-05-23,Polk,Florida,12105,853,49 +2020-05-24,Polk,Florida,12105,869,49 +2020-05-25,Polk,Florida,12105,878,49 +2020-05-26,Polk,Florida,12105,891,50 +2020-05-27,Polk,Florida,12105,907,54 +2020-05-28,Polk,Florida,12105,939,54 +2020-05-29,Polk,Florida,12105,977,55 +2020-05-30,Polk,Florida,12105,1005,55 +2020-05-31,Polk,Florida,12105,1027,55 +2020-06-01,Polk,Florida,12105,1038,57 +2020-06-02,Polk,Florida,12105,1053,58 +2020-06-03,Polk,Florida,12105,1074,60 +2020-06-04,Polk,Florida,12105,1100,63 +2020-06-05,Polk,Florida,12105,1127,64 +2020-06-06,Polk,Florida,12105,1145,66 +2020-06-07,Polk,Florida,12105,1178,67 +2020-06-08,Polk,Florida,12105,1206,67 +2020-06-09,Polk,Florida,12105,1243,70 +2020-06-10,Polk,Florida,12105,1287,71 +2020-06-11,Polk,Florida,12105,1325,73 +2020-06-12,Polk,Florida,12105,1373,74 +2020-06-13,Polk,Florida,12105,1414,75 +2020-06-14,Polk,Florida,12105,1466,75 +2020-06-15,Polk,Florida,12105,1509,75 +2020-06-16,Polk,Florida,12105,1566,75 +2020-06-17,Polk,Florida,12105,1634,75 +2020-06-18,Polk,Florida,12105,1702,76 +2020-06-19,Polk,Florida,12105,1856,77 +2020-06-20,Polk,Florida,12105,1970,78 +2020-06-21,Polk,Florida,12105,2042,78 +2020-06-22,Polk,Florida,12105,2225,78 +2020-06-23,Polk,Florida,12105,2279,78 +2020-06-24,Polk,Florida,12105,2454,80 +2020-06-25,Polk,Florida,12105,2571,84 +2020-06-26,Polk,Florida,12105,2780,87 +2020-06-27,Polk,Florida,12105,3182,92 +2020-06-28,Polk,Florida,12105,3495,93 +2020-06-29,Polk,Florida,12105,3682,93 +2020-06-30,Polk,Florida,12105,3836,98 +2020-07-01,Polk,Florida,12105,4048,102 +2020-07-02,Polk,Florida,12105,4327,102 +2020-07-03,Polk,Florida,12105,4660,105 +2020-07-04,Polk,Florida,12105,4906,105 +2020-07-05,Polk,Florida,12105,5196,105 +2020-07-06,Polk,Florida,12105,5472,114 +2020-07-07,Polk,Florida,12105,5665,115 +2020-07-08,Polk,Florida,12105,5895,122 +2020-07-09,Polk,Florida,12105,6206,127 +2020-03-21,Putnam,Florida,12107,1,0 +2020-03-22,Putnam,Florida,12107,2,0 +2020-03-23,Putnam,Florida,12107,2,0 +2020-03-24,Putnam,Florida,12107,2,0 +2020-03-25,Putnam,Florida,12107,5,0 +2020-03-26,Putnam,Florida,12107,12,0 +2020-03-27,Putnam,Florida,12107,12,0 +2020-03-28,Putnam,Florida,12107,12,0 +2020-03-29,Putnam,Florida,12107,12,0 +2020-03-30,Putnam,Florida,12107,13,0 +2020-03-31,Putnam,Florida,12107,13,0 +2020-04-01,Putnam,Florida,12107,13,0 +2020-04-02,Putnam,Florida,12107,14,0 +2020-04-03,Putnam,Florida,12107,15,1 +2020-04-04,Putnam,Florida,12107,18,1 +2020-04-05,Putnam,Florida,12107,19,1 +2020-04-06,Putnam,Florida,12107,19,1 +2020-04-07,Putnam,Florida,12107,20,1 +2020-04-08,Putnam,Florida,12107,24,1 +2020-04-09,Putnam,Florida,12107,25,1 +2020-04-10,Putnam,Florida,12107,29,1 +2020-04-11,Putnam,Florida,12107,34,1 +2020-04-12,Putnam,Florida,12107,43,1 +2020-04-13,Putnam,Florida,12107,42,1 +2020-04-14,Putnam,Florida,12107,43,1 +2020-04-15,Putnam,Florida,12107,46,1 +2020-04-16,Putnam,Florida,12107,49,1 +2020-04-17,Putnam,Florida,12107,52,1 +2020-04-18,Putnam,Florida,12107,55,1 +2020-04-19,Putnam,Florida,12107,56,1 +2020-04-20,Putnam,Florida,12107,58,1 +2020-04-21,Putnam,Florida,12107,59,1 +2020-04-22,Putnam,Florida,12107,65,1 +2020-04-23,Putnam,Florida,12107,75,1 +2020-04-24,Putnam,Florida,12107,81,1 +2020-04-25,Putnam,Florida,12107,83,1 +2020-04-26,Putnam,Florida,12107,87,1 +2020-04-27,Putnam,Florida,12107,87,1 +2020-04-28,Putnam,Florida,12107,103,1 +2020-04-29,Putnam,Florida,12107,103,1 +2020-04-30,Putnam,Florida,12107,106,1 +2020-05-01,Putnam,Florida,12107,108,1 +2020-05-02,Putnam,Florida,12107,117,2 +2020-05-03,Putnam,Florida,12107,120,2 +2020-05-04,Putnam,Florida,12107,121,2 +2020-05-05,Putnam,Florida,12107,121,4 +2020-05-06,Putnam,Florida,12107,120,4 +2020-05-07,Putnam,Florida,12107,120,4 +2020-05-08,Putnam,Florida,12107,120,4 +2020-05-09,Putnam,Florida,12107,125,4 +2020-05-10,Putnam,Florida,12107,126,4 +2020-05-11,Putnam,Florida,12107,127,2 +2020-05-12,Putnam,Florida,12107,127,2 +2020-05-13,Putnam,Florida,12107,127,2 +2020-05-14,Putnam,Florida,12107,127,3 +2020-05-15,Putnam,Florida,12107,127,3 +2020-05-16,Putnam,Florida,12107,128,3 +2020-05-17,Putnam,Florida,12107,131,3 +2020-05-18,Putnam,Florida,12107,134,3 +2020-05-19,Putnam,Florida,12107,134,3 +2020-05-20,Putnam,Florida,12107,135,3 +2020-05-21,Putnam,Florida,12107,136,4 +2020-05-22,Putnam,Florida,12107,138,4 +2020-05-23,Putnam,Florida,12107,139,4 +2020-05-24,Putnam,Florida,12107,140,4 +2020-05-25,Putnam,Florida,12107,143,4 +2020-05-26,Putnam,Florida,12107,144,4 +2020-05-27,Putnam,Florida,12107,144,4 +2020-05-28,Putnam,Florida,12107,149,5 +2020-05-29,Putnam,Florida,12107,149,5 +2020-05-30,Putnam,Florida,12107,150,5 +2020-05-31,Putnam,Florida,12107,152,6 +2020-06-01,Putnam,Florida,12107,153,6 +2020-06-02,Putnam,Florida,12107,154,6 +2020-06-03,Putnam,Florida,12107,154,6 +2020-06-04,Putnam,Florida,12107,165,6 +2020-06-05,Putnam,Florida,12107,172,6 +2020-06-06,Putnam,Florida,12107,173,6 +2020-06-07,Putnam,Florida,12107,173,6 +2020-06-08,Putnam,Florida,12107,174,6 +2020-06-09,Putnam,Florida,12107,175,6 +2020-06-10,Putnam,Florida,12107,176,6 +2020-06-11,Putnam,Florida,12107,181,6 +2020-06-12,Putnam,Florida,12107,183,6 +2020-06-13,Putnam,Florida,12107,185,6 +2020-06-14,Putnam,Florida,12107,190,6 +2020-06-15,Putnam,Florida,12107,191,6 +2020-06-16,Putnam,Florida,12107,198,6 +2020-06-17,Putnam,Florida,12107,205,6 +2020-06-18,Putnam,Florida,12107,209,6 +2020-06-19,Putnam,Florida,12107,213,6 +2020-06-20,Putnam,Florida,12107,221,6 +2020-06-21,Putnam,Florida,12107,237,6 +2020-06-22,Putnam,Florida,12107,238,6 +2020-06-23,Putnam,Florida,12107,242,6 +2020-06-24,Putnam,Florida,12107,261,6 +2020-06-25,Putnam,Florida,12107,271,6 +2020-06-26,Putnam,Florida,12107,285,6 +2020-06-27,Putnam,Florida,12107,297,6 +2020-06-28,Putnam,Florida,12107,318,6 +2020-06-29,Putnam,Florida,12107,327,6 +2020-06-30,Putnam,Florida,12107,339,6 +2020-07-01,Putnam,Florida,12107,381,6 +2020-07-02,Putnam,Florida,12107,433,6 +2020-07-03,Putnam,Florida,12107,489,6 +2020-07-04,Putnam,Florida,12107,516,6 +2020-07-05,Putnam,Florida,12107,540,6 +2020-07-06,Putnam,Florida,12107,550,6 +2020-07-07,Putnam,Florida,12107,566,6 +2020-07-08,Putnam,Florida,12107,593,6 +2020-07-09,Putnam,Florida,12107,619,7 +2020-03-11,St. Johns,Florida,12109,1,0 +2020-03-12,St. Johns,Florida,12109,1,0 +2020-03-13,St. Johns,Florida,12109,1,0 +2020-03-14,St. Johns,Florida,12109,1,0 +2020-03-15,St. Johns,Florida,12109,2,0 +2020-03-16,St. Johns,Florida,12109,2,0 +2020-03-17,St. Johns,Florida,12109,3,0 +2020-03-18,St. Johns,Florida,12109,4,0 +2020-03-19,St. Johns,Florida,12109,4,0 +2020-03-20,St. Johns,Florida,12109,7,0 +2020-03-21,St. Johns,Florida,12109,9,0 +2020-03-22,St. Johns,Florida,12109,16,0 +2020-03-23,St. Johns,Florida,12109,18,1 +2020-03-24,St. Johns,Florida,12109,24,1 +2020-03-25,St. Johns,Florida,12109,28,1 +2020-03-26,St. Johns,Florida,12109,36,1 +2020-03-27,St. Johns,Florida,12109,42,2 +2020-03-28,St. Johns,Florida,12109,50,2 +2020-03-29,St. Johns,Florida,12109,59,2 +2020-03-30,St. Johns,Florida,12109,61,2 +2020-03-31,St. Johns,Florida,12109,79,2 +2020-04-01,St. Johns,Florida,12109,90,2 +2020-04-02,St. Johns,Florida,12109,102,2 +2020-04-03,St. Johns,Florida,12109,119,2 +2020-04-04,St. Johns,Florida,12109,132,2 +2020-04-05,St. Johns,Florida,12109,141,2 +2020-04-06,St. Johns,Florida,12109,147,2 +2020-04-07,St. Johns,Florida,12109,154,2 +2020-04-08,St. Johns,Florida,12109,156,2 +2020-04-09,St. Johns,Florida,12109,163,2 +2020-04-10,St. Johns,Florida,12109,165,2 +2020-04-11,St. Johns,Florida,12109,170,2 +2020-04-12,St. Johns,Florida,12109,173,2 +2020-04-13,St. Johns,Florida,12109,176,2 +2020-04-14,St. Johns,Florida,12109,177,2 +2020-04-15,St. Johns,Florida,12109,179,3 +2020-04-16,St. Johns,Florida,12109,182,3 +2020-04-17,St. Johns,Florida,12109,186,4 +2020-04-18,St. Johns,Florida,12109,188,4 +2020-04-19,St. Johns,Florida,12109,190,4 +2020-04-20,St. Johns,Florida,12109,192,4 +2020-04-21,St. Johns,Florida,12109,194,4 +2020-04-22,St. Johns,Florida,12109,195,4 +2020-04-23,St. Johns,Florida,12109,200,4 +2020-04-24,St. Johns,Florida,12109,203,4 +2020-04-25,St. Johns,Florida,12109,203,4 +2020-04-26,St. Johns,Florida,12109,204,4 +2020-04-27,St. Johns,Florida,12109,204,4 +2020-04-28,St. Johns,Florida,12109,207,4 +2020-04-29,St. Johns,Florida,12109,207,4 +2020-04-30,St. Johns,Florida,12109,208,4 +2020-05-01,St. Johns,Florida,12109,210,4 +2020-05-02,St. Johns,Florida,12109,212,4 +2020-05-03,St. Johns,Florida,12109,211,4 +2020-05-04,St. Johns,Florida,12109,211,4 +2020-05-05,St. Johns,Florida,12109,214,4 +2020-05-06,St. Johns,Florida,12109,216,4 +2020-05-07,St. Johns,Florida,12109,222,4 +2020-05-08,St. Johns,Florida,12109,223,4 +2020-05-09,St. Johns,Florida,12109,222,4 +2020-05-10,St. Johns,Florida,12109,222,4 +2020-05-11,St. Johns,Florida,12109,222,4 +2020-05-12,St. Johns,Florida,12109,223,4 +2020-05-13,St. Johns,Florida,12109,229,4 +2020-05-14,St. Johns,Florida,12109,231,5 +2020-05-15,St. Johns,Florida,12109,231,5 +2020-05-16,St. Johns,Florida,12109,231,5 +2020-05-17,St. Johns,Florida,12109,231,5 +2020-05-18,St. Johns,Florida,12109,232,5 +2020-05-19,St. Johns,Florida,12109,233,5 +2020-05-20,St. Johns,Florida,12109,233,5 +2020-05-21,St. Johns,Florida,12109,235,5 +2020-05-22,St. Johns,Florida,12109,236,5 +2020-05-23,St. Johns,Florida,12109,238,5 +2020-05-24,St. Johns,Florida,12109,239,5 +2020-05-25,St. Johns,Florida,12109,240,5 +2020-05-26,St. Johns,Florida,12109,241,5 +2020-05-27,St. Johns,Florida,12109,245,5 +2020-05-28,St. Johns,Florida,12109,247,5 +2020-05-29,St. Johns,Florida,12109,252,6 +2020-05-30,St. Johns,Florida,12109,256,6 +2020-05-31,St. Johns,Florida,12109,260,6 +2020-06-01,St. Johns,Florida,12109,260,6 +2020-06-02,St. Johns,Florida,12109,262,6 +2020-06-03,St. Johns,Florida,12109,269,6 +2020-06-04,St. Johns,Florida,12109,267,6 +2020-06-05,St. Johns,Florida,12109,270,6 +2020-06-06,St. Johns,Florida,12109,272,6 +2020-06-07,St. Johns,Florida,12109,279,6 +2020-06-08,St. Johns,Florida,12109,282,6 +2020-06-09,St. Johns,Florida,12109,287,6 +2020-06-10,St. Johns,Florida,12109,288,6 +2020-06-11,St. Johns,Florida,12109,287,6 +2020-06-12,St. Johns,Florida,12109,292,6 +2020-06-13,St. Johns,Florida,12109,298,6 +2020-06-14,St. Johns,Florida,12109,307,6 +2020-06-15,St. Johns,Florida,12109,315,6 +2020-06-16,St. Johns,Florida,12109,333,6 +2020-06-17,St. Johns,Florida,12109,347,6 +2020-06-18,St. Johns,Florida,12109,365,7 +2020-06-19,St. Johns,Florida,12109,398,7 +2020-06-20,St. Johns,Florida,12109,433,7 +2020-06-21,St. Johns,Florida,12109,461,7 +2020-06-22,St. Johns,Florida,12109,496,7 +2020-06-23,St. Johns,Florida,12109,510,7 +2020-06-24,St. Johns,Florida,12109,548,7 +2020-06-25,St. Johns,Florida,12109,599,7 +2020-06-26,St. Johns,Florida,12109,682,7 +2020-06-27,St. Johns,Florida,12109,756,7 +2020-06-28,St. Johns,Florida,12109,837,7 +2020-06-29,St. Johns,Florida,12109,895,7 +2020-06-30,St. Johns,Florida,12109,948,7 +2020-07-01,St. Johns,Florida,12109,989,7 +2020-07-02,St. Johns,Florida,12109,1088,8 +2020-07-03,St. Johns,Florida,12109,1188,8 +2020-07-04,St. Johns,Florida,12109,1259,8 +2020-07-05,St. Johns,Florida,12109,1325,8 +2020-07-06,St. Johns,Florida,12109,1383,8 +2020-07-07,St. Johns,Florida,12109,1433,8 +2020-07-08,St. Johns,Florida,12109,1517,9 +2020-07-09,St. Johns,Florida,12109,1632,9 +2020-03-21,St. Lucie,Florida,12111,1,0 +2020-03-22,St. Lucie,Florida,12111,3,0 +2020-03-23,St. Lucie,Florida,12111,5,0 +2020-03-24,St. Lucie,Florida,12111,6,0 +2020-03-25,St. Lucie,Florida,12111,9,0 +2020-03-26,St. Lucie,Florida,12111,11,0 +2020-03-27,St. Lucie,Florida,12111,17,1 +2020-03-28,St. Lucie,Florida,12111,22,2 +2020-03-29,St. Lucie,Florida,12111,24,2 +2020-03-30,St. Lucie,Florida,12111,31,2 +2020-03-31,St. Lucie,Florida,12111,38,2 +2020-04-01,St. Lucie,Florida,12111,47,2 +2020-04-02,St. Lucie,Florida,12111,48,3 +2020-04-03,St. Lucie,Florida,12111,60,3 +2020-04-04,St. Lucie,Florida,12111,76,3 +2020-04-05,St. Lucie,Florida,12111,82,3 +2020-04-06,St. Lucie,Florida,12111,107,5 +2020-04-07,St. Lucie,Florida,12111,122,6 +2020-04-08,St. Lucie,Florida,12111,129,6 +2020-04-09,St. Lucie,Florida,12111,137,6 +2020-04-10,St. Lucie,Florida,12111,146,6 +2020-04-11,St. Lucie,Florida,12111,149,6 +2020-04-12,St. Lucie,Florida,12111,152,6 +2020-04-13,St. Lucie,Florida,12111,161,7 +2020-04-14,St. Lucie,Florida,12111,165,8 +2020-04-15,St. Lucie,Florida,12111,172,8 +2020-04-16,St. Lucie,Florida,12111,186,9 +2020-04-17,St. Lucie,Florida,12111,191,11 +2020-04-18,St. Lucie,Florida,12111,196,13 +2020-04-19,St. Lucie,Florida,12111,202,15 +2020-04-20,St. Lucie,Florida,12111,204,15 +2020-04-21,St. Lucie,Florida,12111,206,16 +2020-04-22,St. Lucie,Florida,12111,207,16 +2020-04-23,St. Lucie,Florida,12111,220,17 +2020-04-24,St. Lucie,Florida,12111,223,19 +2020-04-25,St. Lucie,Florida,12111,225,19 +2020-04-26,St. Lucie,Florida,12111,228,19 +2020-04-27,St. Lucie,Florida,12111,236,20 +2020-04-28,St. Lucie,Florida,12111,239,22 +2020-04-29,St. Lucie,Florida,12111,239,22 +2020-04-30,St. Lucie,Florida,12111,247,22 +2020-05-01,St. Lucie,Florida,12111,249,23 +2020-05-02,St. Lucie,Florida,12111,254,24 +2020-05-03,St. Lucie,Florida,12111,257,24 +2020-05-04,St. Lucie,Florida,12111,260,25 +2020-05-05,St. Lucie,Florida,12111,260,25 +2020-05-06,St. Lucie,Florida,12111,265,25 +2020-05-07,St. Lucie,Florida,12111,271,25 +2020-05-08,St. Lucie,Florida,12111,275,25 +2020-05-09,St. Lucie,Florida,12111,280,25 +2020-05-10,St. Lucie,Florida,12111,282,25 +2020-05-11,St. Lucie,Florida,12111,284,25 +2020-05-12,St. Lucie,Florida,12111,290,26 +2020-05-13,St. Lucie,Florida,12111,299,26 +2020-05-14,St. Lucie,Florida,12111,301,26 +2020-05-15,St. Lucie,Florida,12111,313,27 +2020-05-16,St. Lucie,Florida,12111,316,27 +2020-05-17,St. Lucie,Florida,12111,323,27 +2020-05-18,St. Lucie,Florida,12111,334,27 +2020-05-19,St. Lucie,Florida,12111,337,28 +2020-05-20,St. Lucie,Florida,12111,336,28 +2020-05-21,St. Lucie,Florida,12111,349,28 +2020-05-22,St. Lucie,Florida,12111,363,28 +2020-05-23,St. Lucie,Florida,12111,386,28 +2020-05-24,St. Lucie,Florida,12111,391,28 +2020-05-25,St. Lucie,Florida,12111,404,29 +2020-05-26,St. Lucie,Florida,12111,413,29 +2020-05-27,St. Lucie,Florida,12111,420,29 +2020-05-28,St. Lucie,Florida,12111,424,30 +2020-05-29,St. Lucie,Florida,12111,449,30 +2020-05-30,St. Lucie,Florida,12111,463,30 +2020-05-31,St. Lucie,Florida,12111,471,30 +2020-06-01,St. Lucie,Florida,12111,473,30 +2020-06-02,St. Lucie,Florida,12111,492,31 +2020-06-03,St. Lucie,Florida,12111,508,31 +2020-06-04,St. Lucie,Florida,12111,535,31 +2020-06-05,St. Lucie,Florida,12111,561,31 +2020-06-06,St. Lucie,Florida,12111,607,31 +2020-06-07,St. Lucie,Florida,12111,627,31 +2020-06-08,St. Lucie,Florida,12111,654,31 +2020-06-09,St. Lucie,Florida,12111,669,31 +2020-06-10,St. Lucie,Florida,12111,696,31 +2020-06-11,St. Lucie,Florida,12111,760,33 +2020-06-12,St. Lucie,Florida,12111,793,33 +2020-06-13,St. Lucie,Florida,12111,830,35 +2020-06-14,St. Lucie,Florida,12111,883,36 +2020-06-15,St. Lucie,Florida,12111,926,36 +2020-06-16,St. Lucie,Florida,12111,981,38 +2020-06-17,St. Lucie,Florida,12111,1037,40 +2020-06-18,St. Lucie,Florida,12111,1057,40 +2020-06-19,St. Lucie,Florida,12111,1131,40 +2020-06-20,St. Lucie,Florida,12111,1169,41 +2020-06-21,St. Lucie,Florida,12111,1214,41 +2020-06-22,St. Lucie,Florida,12111,1226,41 +2020-06-23,St. Lucie,Florida,12111,1249,42 +2020-06-24,St. Lucie,Florida,12111,1333,43 +2020-06-25,St. Lucie,Florida,12111,1384,45 +2020-06-26,St. Lucie,Florida,12111,1441,45 +2020-06-27,St. Lucie,Florida,12111,1576,45 +2020-06-28,St. Lucie,Florida,12111,1652,45 +2020-06-29,St. Lucie,Florida,12111,1691,45 +2020-06-30,St. Lucie,Florida,12111,1724,47 +2020-07-01,St. Lucie,Florida,12111,1812,48 +2020-07-02,St. Lucie,Florida,12111,1876,49 +2020-07-03,St. Lucie,Florida,12111,1983,50 +2020-07-04,St. Lucie,Florida,12111,2109,50 +2020-07-05,St. Lucie,Florida,12111,2182,50 +2020-07-06,St. Lucie,Florida,12111,2264,53 +2020-07-07,St. Lucie,Florida,12111,2355,54 +2020-07-08,St. Lucie,Florida,12111,2433,59 +2020-07-09,St. Lucie,Florida,12111,2483,59 +2020-03-05,Santa Rosa,Florida,12113,1,0 +2020-03-06,Santa Rosa,Florida,12113,1,1 +2020-03-07,Santa Rosa,Florida,12113,1,1 +2020-03-08,Santa Rosa,Florida,12113,1,1 +2020-03-09,Santa Rosa,Florida,12113,1,1 +2020-03-10,Santa Rosa,Florida,12113,1,1 +2020-03-11,Santa Rosa,Florida,12113,1,1 +2020-03-12,Santa Rosa,Florida,12113,1,1 +2020-03-13,Santa Rosa,Florida,12113,1,1 +2020-03-14,Santa Rosa,Florida,12113,1,1 +2020-03-15,Santa Rosa,Florida,12113,1,1 +2020-03-16,Santa Rosa,Florida,12113,1,1 +2020-03-17,Santa Rosa,Florida,12113,1,1 +2020-03-18,Santa Rosa,Florida,12113,1,1 +2020-03-19,Santa Rosa,Florida,12113,1,1 +2020-03-20,Santa Rosa,Florida,12113,2,1 +2020-03-21,Santa Rosa,Florida,12113,2,1 +2020-03-22,Santa Rosa,Florida,12113,3,1 +2020-03-23,Santa Rosa,Florida,12113,4,1 +2020-03-24,Santa Rosa,Florida,12113,6,1 +2020-03-25,Santa Rosa,Florida,12113,8,1 +2020-03-26,Santa Rosa,Florida,12113,12,1 +2020-03-27,Santa Rosa,Florida,12113,13,1 +2020-03-28,Santa Rosa,Florida,12113,16,1 +2020-03-29,Santa Rosa,Florida,12113,21,2 +2020-03-30,Santa Rosa,Florida,12113,36,2 +2020-03-31,Santa Rosa,Florida,12113,44,2 +2020-04-01,Santa Rosa,Florida,12113,46,2 +2020-04-02,Santa Rosa,Florida,12113,47,2 +2020-04-03,Santa Rosa,Florida,12113,48,2 +2020-04-04,Santa Rosa,Florida,12113,50,2 +2020-04-05,Santa Rosa,Florida,12113,55,2 +2020-04-06,Santa Rosa,Florida,12113,64,2 +2020-04-07,Santa Rosa,Florida,12113,66,2 +2020-04-08,Santa Rosa,Florida,12113,70,2 +2020-04-09,Santa Rosa,Florida,12113,96,2 +2020-04-10,Santa Rosa,Florida,12113,105,3 +2020-04-11,Santa Rosa,Florida,12113,106,3 +2020-04-12,Santa Rosa,Florida,12113,109,4 +2020-04-13,Santa Rosa,Florida,12113,113,4 +2020-04-14,Santa Rosa,Florida,12113,114,4 +2020-04-15,Santa Rosa,Florida,12113,115,4 +2020-04-16,Santa Rosa,Florida,12113,118,5 +2020-04-17,Santa Rosa,Florida,12113,130,6 +2020-04-18,Santa Rosa,Florida,12113,133,6 +2020-04-19,Santa Rosa,Florida,12113,138,6 +2020-04-20,Santa Rosa,Florida,12113,140,6 +2020-04-21,Santa Rosa,Florida,12113,139,6 +2020-04-22,Santa Rosa,Florida,12113,144,6 +2020-04-23,Santa Rosa,Florida,12113,141,6 +2020-04-24,Santa Rosa,Florida,12113,143,6 +2020-04-25,Santa Rosa,Florida,12113,147,6 +2020-04-26,Santa Rosa,Florida,12113,149,6 +2020-04-27,Santa Rosa,Florida,12113,150,6 +2020-04-28,Santa Rosa,Florida,12113,151,7 +2020-04-29,Santa Rosa,Florida,12113,153,7 +2020-04-30,Santa Rosa,Florida,12113,154,7 +2020-05-01,Santa Rosa,Florida,12113,158,8 +2020-05-02,Santa Rosa,Florida,12113,157,8 +2020-05-03,Santa Rosa,Florida,12113,157,8 +2020-05-04,Santa Rosa,Florida,12113,158,8 +2020-05-05,Santa Rosa,Florida,12113,158,8 +2020-05-06,Santa Rosa,Florida,12113,158,8 +2020-05-07,Santa Rosa,Florida,12113,160,8 +2020-05-08,Santa Rosa,Florida,12113,162,9 +2020-05-09,Santa Rosa,Florida,12113,172,9 +2020-05-10,Santa Rosa,Florida,12113,173,9 +2020-05-11,Santa Rosa,Florida,12113,176,9 +2020-05-12,Santa Rosa,Florida,12113,179,9 +2020-05-13,Santa Rosa,Florida,12113,179,9 +2020-05-14,Santa Rosa,Florida,12113,180,9 +2020-05-15,Santa Rosa,Florida,12113,182,9 +2020-05-16,Santa Rosa,Florida,12113,182,9 +2020-05-17,Santa Rosa,Florida,12113,183,9 +2020-05-18,Santa Rosa,Florida,12113,185,9 +2020-05-19,Santa Rosa,Florida,12113,186,9 +2020-05-20,Santa Rosa,Florida,12113,197,9 +2020-05-21,Santa Rosa,Florida,12113,198,9 +2020-05-22,Santa Rosa,Florida,12113,202,9 +2020-05-23,Santa Rosa,Florida,12113,207,9 +2020-05-24,Santa Rosa,Florida,12113,207,9 +2020-05-25,Santa Rosa,Florida,12113,208,9 +2020-05-26,Santa Rosa,Florida,12113,209,9 +2020-05-27,Santa Rosa,Florida,12113,237,9 +2020-05-28,Santa Rosa,Florida,12113,237,9 +2020-05-29,Santa Rosa,Florida,12113,240,9 +2020-05-30,Santa Rosa,Florida,12113,242,9 +2020-05-31,Santa Rosa,Florida,12113,245,9 +2020-06-01,Santa Rosa,Florida,12113,247,9 +2020-06-02,Santa Rosa,Florida,12113,248,9 +2020-06-03,Santa Rosa,Florida,12113,250,9 +2020-06-04,Santa Rosa,Florida,12113,255,9 +2020-06-05,Santa Rosa,Florida,12113,256,9 +2020-06-06,Santa Rosa,Florida,12113,257,9 +2020-06-07,Santa Rosa,Florida,12113,258,9 +2020-06-08,Santa Rosa,Florida,12113,258,9 +2020-06-09,Santa Rosa,Florida,12113,261,9 +2020-06-10,Santa Rosa,Florida,12113,262,9 +2020-06-11,Santa Rosa,Florida,12113,273,9 +2020-06-12,Santa Rosa,Florida,12113,275,9 +2020-06-13,Santa Rosa,Florida,12113,285,9 +2020-06-14,Santa Rosa,Florida,12113,291,9 +2020-06-15,Santa Rosa,Florida,12113,293,9 +2020-06-16,Santa Rosa,Florida,12113,297,9 +2020-06-17,Santa Rosa,Florida,12113,305,9 +2020-06-18,Santa Rosa,Florida,12113,319,9 +2020-06-19,Santa Rosa,Florida,12113,330,9 +2020-06-20,Santa Rosa,Florida,12113,342,9 +2020-06-21,Santa Rosa,Florida,12113,344,9 +2020-06-22,Santa Rosa,Florida,12113,350,9 +2020-06-23,Santa Rosa,Florida,12113,355,9 +2020-06-24,Santa Rosa,Florida,12113,371,9 +2020-06-25,Santa Rosa,Florida,12113,411,9 +2020-06-26,Santa Rosa,Florida,12113,437,9 +2020-06-27,Santa Rosa,Florida,12113,442,9 +2020-06-28,Santa Rosa,Florida,12113,468,9 +2020-06-29,Santa Rosa,Florida,12113,482,9 +2020-06-30,Santa Rosa,Florida,12113,593,9 +2020-07-01,Santa Rosa,Florida,12113,617,9 +2020-07-02,Santa Rosa,Florida,12113,676,9 +2020-07-03,Santa Rosa,Florida,12113,743,9 +2020-07-04,Santa Rosa,Florida,12113,815,9 +2020-07-05,Santa Rosa,Florida,12113,867,9 +2020-07-06,Santa Rosa,Florida,12113,902,9 +2020-07-07,Santa Rosa,Florida,12113,941,9 +2020-07-08,Santa Rosa,Florida,12113,993,10 +2020-07-09,Santa Rosa,Florida,12113,1033,10 +2020-03-12,Sarasota,Florida,12115,2,0 +2020-03-13,Sarasota,Florida,12115,2,0 +2020-03-14,Sarasota,Florida,12115,2,0 +2020-03-15,Sarasota,Florida,12115,2,0 +2020-03-16,Sarasota,Florida,12115,3,0 +2020-03-17,Sarasota,Florida,12115,4,0 +2020-03-18,Sarasota,Florida,12115,4,0 +2020-03-19,Sarasota,Florida,12115,6,0 +2020-03-20,Sarasota,Florida,12115,8,0 +2020-03-21,Sarasota,Florida,12115,14,0 +2020-03-22,Sarasota,Florida,12115,17,0 +2020-03-23,Sarasota,Florida,12115,21,0 +2020-03-24,Sarasota,Florida,12115,26,0 +2020-03-25,Sarasota,Florida,12115,32,1 +2020-03-26,Sarasota,Florida,12115,34,2 +2020-03-27,Sarasota,Florida,12115,43,2 +2020-03-28,Sarasota,Florida,12115,50,2 +2020-03-29,Sarasota,Florida,12115,61,2 +2020-03-30,Sarasota,Florida,12115,67,2 +2020-03-31,Sarasota,Florida,12115,76,3 +2020-04-01,Sarasota,Florida,12115,99,3 +2020-04-02,Sarasota,Florida,12115,110,7 +2020-04-03,Sarasota,Florida,12115,124,7 +2020-04-04,Sarasota,Florida,12115,129,7 +2020-04-05,Sarasota,Florida,12115,140,7 +2020-04-06,Sarasota,Florida,12115,159,7 +2020-04-07,Sarasota,Florida,12115,173,7 +2020-04-08,Sarasota,Florida,12115,184,8 +2020-04-09,Sarasota,Florida,12115,201,10 +2020-04-10,Sarasota,Florida,12115,211,10 +2020-04-11,Sarasota,Florida,12115,223,12 +2020-04-12,Sarasota,Florida,12115,226,12 +2020-04-13,Sarasota,Florida,12115,230,14 +2020-04-14,Sarasota,Florida,12115,241,16 +2020-04-15,Sarasota,Florida,12115,253,17 +2020-04-16,Sarasota,Florida,12115,260,17 +2020-04-17,Sarasota,Florida,12115,274,22 +2020-04-18,Sarasota,Florida,12115,279,23 +2020-04-19,Sarasota,Florida,12115,284,23 +2020-04-20,Sarasota,Florida,12115,291,28 +2020-04-21,Sarasota,Florida,12115,297,30 +2020-04-22,Sarasota,Florida,12115,299,31 +2020-04-23,Sarasota,Florida,12115,310,32 +2020-04-24,Sarasota,Florida,12115,314,32 +2020-04-25,Sarasota,Florida,12115,318,32 +2020-04-26,Sarasota,Florida,12115,321,32 +2020-04-27,Sarasota,Florida,12115,323,32 +2020-04-28,Sarasota,Florida,12115,334,39 +2020-04-29,Sarasota,Florida,12115,338,42 +2020-04-30,Sarasota,Florida,12115,352,42 +2020-05-01,Sarasota,Florida,12115,365,44 +2020-05-02,Sarasota,Florida,12115,372,47 +2020-05-03,Sarasota,Florida,12115,377,47 +2020-05-04,Sarasota,Florida,12115,385,47 +2020-05-05,Sarasota,Florida,12115,395,48 +2020-05-06,Sarasota,Florida,12115,405,49 +2020-05-07,Sarasota,Florida,12115,412,51 +2020-05-08,Sarasota,Florida,12115,416,54 +2020-05-09,Sarasota,Florida,12115,418,57 +2020-05-10,Sarasota,Florida,12115,426,57 +2020-05-11,Sarasota,Florida,12115,430,57 +2020-05-12,Sarasota,Florida,12115,435,57 +2020-05-13,Sarasota,Florida,12115,440,57 +2020-05-14,Sarasota,Florida,12115,487,57 +2020-05-15,Sarasota,Florida,12115,496,58 +2020-05-16,Sarasota,Florida,12115,498,58 +2020-05-17,Sarasota,Florida,12115,508,58 +2020-05-18,Sarasota,Florida,12115,518,58 +2020-05-19,Sarasota,Florida,12115,533,63 +2020-05-20,Sarasota,Florida,12115,538,65 +2020-05-21,Sarasota,Florida,12115,550,67 +2020-05-22,Sarasota,Florida,12115,565,70 +2020-05-23,Sarasota,Florida,12115,576,73 +2020-05-24,Sarasota,Florida,12115,586,73 +2020-05-25,Sarasota,Florida,12115,590,73 +2020-05-26,Sarasota,Florida,12115,594,73 +2020-05-27,Sarasota,Florida,12115,598,76 +2020-05-28,Sarasota,Florida,12115,611,77 +2020-05-29,Sarasota,Florida,12115,622,77 +2020-05-30,Sarasota,Florida,12115,629,77 +2020-05-31,Sarasota,Florida,12115,635,77 +2020-06-01,Sarasota,Florida,12115,639,77 +2020-06-02,Sarasota,Florida,12115,647,80 +2020-06-03,Sarasota,Florida,12115,649,80 +2020-06-04,Sarasota,Florida,12115,652,82 +2020-06-05,Sarasota,Florida,12115,658,85 +2020-06-06,Sarasota,Florida,12115,669,85 +2020-06-07,Sarasota,Florida,12115,680,85 +2020-06-08,Sarasota,Florida,12115,686,85 +2020-06-09,Sarasota,Florida,12115,694,86 +2020-06-10,Sarasota,Florida,12115,705,88 +2020-06-11,Sarasota,Florida,12115,716,89 +2020-06-12,Sarasota,Florida,12115,724,89 +2020-06-13,Sarasota,Florida,12115,741,91 +2020-06-14,Sarasota,Florida,12115,767,91 +2020-06-15,Sarasota,Florida,12115,780,91 +2020-06-16,Sarasota,Florida,12115,789,92 +2020-06-17,Sarasota,Florida,12115,803,92 +2020-06-18,Sarasota,Florida,12115,833,92 +2020-06-19,Sarasota,Florida,12115,868,92 +2020-06-20,Sarasota,Florida,12115,926,94 +2020-06-21,Sarasota,Florida,12115,962,94 +2020-06-22,Sarasota,Florida,12115,992,94 +2020-06-23,Sarasota,Florida,12115,1031,95 +2020-06-24,Sarasota,Florida,12115,1091,95 +2020-06-25,Sarasota,Florida,12115,1139,96 +2020-06-26,Sarasota,Florida,12115,1245,96 +2020-06-27,Sarasota,Florida,12115,1341,96 +2020-06-28,Sarasota,Florida,12115,1401,96 +2020-06-29,Sarasota,Florida,12115,1447,96 +2020-06-30,Sarasota,Florida,12115,1482,97 +2020-07-01,Sarasota,Florida,12115,1601,97 +2020-07-02,Sarasota,Florida,12115,1707,98 +2020-07-03,Sarasota,Florida,12115,1814,98 +2020-07-04,Sarasota,Florida,12115,2059,98 +2020-07-05,Sarasota,Florida,12115,2160,98 +2020-07-06,Sarasota,Florida,12115,2191,98 +2020-07-07,Sarasota,Florida,12115,2249,98 +2020-07-08,Sarasota,Florida,12115,2334,98 +2020-07-09,Sarasota,Florida,12115,2431,100 +2020-03-12,Seminole,Florida,12117,1,0 +2020-03-13,Seminole,Florida,12117,1,0 +2020-03-14,Seminole,Florida,12117,1,0 +2020-03-15,Seminole,Florida,12117,1,0 +2020-03-16,Seminole,Florida,12117,4,0 +2020-03-17,Seminole,Florida,12117,4,0 +2020-03-18,Seminole,Florida,12117,7,0 +2020-03-19,Seminole,Florida,12117,13,0 +2020-03-20,Seminole,Florida,12117,13,0 +2020-03-21,Seminole,Florida,12117,13,0 +2020-03-22,Seminole,Florida,12117,19,0 +2020-03-23,Seminole,Florida,12117,22,0 +2020-03-24,Seminole,Florida,12117,25,0 +2020-03-25,Seminole,Florida,12117,32,0 +2020-03-26,Seminole,Florida,12117,40,0 +2020-03-27,Seminole,Florida,12117,54,0 +2020-03-28,Seminole,Florida,12117,68,0 +2020-03-29,Seminole,Florida,12117,81,0 +2020-03-30,Seminole,Florida,12117,88,0 +2020-03-31,Seminole,Florida,12117,103,0 +2020-04-01,Seminole,Florida,12117,128,0 +2020-04-02,Seminole,Florida,12117,145,0 +2020-04-03,Seminole,Florida,12117,163,0 +2020-04-04,Seminole,Florida,12117,178,1 +2020-04-05,Seminole,Florida,12117,191,1 +2020-04-06,Seminole,Florida,12117,195,1 +2020-04-07,Seminole,Florida,12117,202,1 +2020-04-08,Seminole,Florida,12117,218,1 +2020-04-09,Seminole,Florida,12117,229,1 +2020-04-10,Seminole,Florida,12117,238,2 +2020-04-11,Seminole,Florida,12117,242,2 +2020-04-12,Seminole,Florida,12117,255,2 +2020-04-13,Seminole,Florida,12117,268,2 +2020-04-14,Seminole,Florida,12117,275,2 +2020-04-15,Seminole,Florida,12117,284,2 +2020-04-16,Seminole,Florida,12117,306,3 +2020-04-17,Seminole,Florida,12117,313,4 +2020-04-18,Seminole,Florida,12117,315,4 +2020-04-19,Seminole,Florida,12117,320,5 +2020-04-20,Seminole,Florida,12117,325,5 +2020-04-21,Seminole,Florida,12117,328,6 +2020-04-22,Seminole,Florida,12117,332,6 +2020-04-23,Seminole,Florida,12117,340,7 +2020-04-24,Seminole,Florida,12117,348,8 +2020-04-25,Seminole,Florida,12117,351,8 +2020-04-26,Seminole,Florida,12117,357,8 +2020-04-27,Seminole,Florida,12117,367,8 +2020-04-28,Seminole,Florida,12117,374,8 +2020-04-29,Seminole,Florida,12117,373,8 +2020-04-30,Seminole,Florida,12117,379,8 +2020-05-01,Seminole,Florida,12117,385,8 +2020-05-02,Seminole,Florida,12117,395,8 +2020-05-03,Seminole,Florida,12117,394,8 +2020-05-04,Seminole,Florida,12117,396,8 +2020-05-05,Seminole,Florida,12117,403,8 +2020-05-06,Seminole,Florida,12117,408,8 +2020-05-07,Seminole,Florida,12117,410,8 +2020-05-08,Seminole,Florida,12117,410,10 +2020-05-09,Seminole,Florida,12117,411,11 +2020-05-10,Seminole,Florida,12117,415,11 +2020-05-11,Seminole,Florida,12117,415,11 +2020-05-12,Seminole,Florida,12117,418,11 +2020-05-13,Seminole,Florida,12117,422,11 +2020-05-14,Seminole,Florida,12117,426,11 +2020-05-15,Seminole,Florida,12117,429,11 +2020-05-16,Seminole,Florida,12117,431,12 +2020-05-17,Seminole,Florida,12117,432,12 +2020-05-18,Seminole,Florida,12117,435,12 +2020-05-19,Seminole,Florida,12117,442,12 +2020-05-20,Seminole,Florida,12117,444,13 +2020-05-21,Seminole,Florida,12117,445,12 +2020-05-22,Seminole,Florida,12117,449,12 +2020-05-23,Seminole,Florida,12117,454,12 +2020-05-24,Seminole,Florida,12117,459,12 +2020-05-25,Seminole,Florida,12117,461,12 +2020-05-26,Seminole,Florida,12117,465,12 +2020-05-27,Seminole,Florida,12117,471,12 +2020-05-28,Seminole,Florida,12117,474,12 +2020-05-29,Seminole,Florida,12117,481,12 +2020-05-30,Seminole,Florida,12117,484,12 +2020-05-31,Seminole,Florida,12117,490,12 +2020-06-01,Seminole,Florida,12117,491,12 +2020-06-02,Seminole,Florida,12117,493,12 +2020-06-03,Seminole,Florida,12117,505,12 +2020-06-04,Seminole,Florida,12117,512,12 +2020-06-05,Seminole,Florida,12117,515,12 +2020-06-06,Seminole,Florida,12117,521,12 +2020-06-07,Seminole,Florida,12117,532,12 +2020-06-08,Seminole,Florida,12117,542,12 +2020-06-09,Seminole,Florida,12117,556,12 +2020-06-10,Seminole,Florida,12117,585,12 +2020-06-11,Seminole,Florida,12117,621,12 +2020-06-12,Seminole,Florida,12117,663,12 +2020-06-13,Seminole,Florida,12117,709,13 +2020-06-14,Seminole,Florida,12117,759,13 +2020-06-15,Seminole,Florida,12117,790,13 +2020-06-16,Seminole,Florida,12117,836,13 +2020-06-17,Seminole,Florida,12117,876,13 +2020-06-18,Seminole,Florida,12117,976,14 +2020-06-19,Seminole,Florida,12117,1101,14 +2020-06-20,Seminole,Florida,12117,1189,14 +2020-06-21,Seminole,Florida,12117,1265,15 +2020-06-22,Seminole,Florida,12117,1361,16 +2020-06-23,Seminole,Florida,12117,1451,16 +2020-06-24,Seminole,Florida,12117,1624,16 +2020-06-25,Seminole,Florida,12117,1768,16 +2020-06-26,Seminole,Florida,12117,1966,16 +2020-06-27,Seminole,Florida,12117,2202,16 +2020-06-28,Seminole,Florida,12117,2366,16 +2020-06-29,Seminole,Florida,12117,2477,16 +2020-06-30,Seminole,Florida,12117,2566,16 +2020-07-01,Seminole,Florida,12117,2682,17 +2020-07-02,Seminole,Florida,12117,2837,17 +2020-07-03,Seminole,Florida,12117,2987,20 +2020-07-04,Seminole,Florida,12117,3205,20 +2020-07-05,Seminole,Florida,12117,3339,20 +2020-07-06,Seminole,Florida,12117,3430,20 +2020-07-07,Seminole,Florida,12117,3522,20 +2020-07-08,Seminole,Florida,12117,3652,20 +2020-07-09,Seminole,Florida,12117,3806,21 +2020-03-18,Sumter,Florida,12119,1,0 +2020-03-19,Sumter,Florida,12119,2,0 +2020-03-20,Sumter,Florida,12119,2,0 +2020-03-21,Sumter,Florida,12119,4,0 +2020-03-22,Sumter,Florida,12119,5,0 +2020-03-23,Sumter,Florida,12119,8,0 +2020-03-24,Sumter,Florida,12119,10,0 +2020-03-25,Sumter,Florida,12119,18,0 +2020-03-26,Sumter,Florida,12119,24,0 +2020-03-27,Sumter,Florida,12119,29,0 +2020-03-28,Sumter,Florida,12119,40,0 +2020-03-29,Sumter,Florida,12119,45,0 +2020-03-30,Sumter,Florida,12119,47,0 +2020-03-31,Sumter,Florida,12119,51,0 +2020-04-01,Sumter,Florida,12119,57,0 +2020-04-02,Sumter,Florida,12119,66,2 +2020-04-03,Sumter,Florida,12119,68,3 +2020-04-04,Sumter,Florida,12119,73,3 +2020-04-05,Sumter,Florida,12119,75,3 +2020-04-06,Sumter,Florida,12119,81,5 +2020-04-07,Sumter,Florida,12119,87,7 +2020-04-08,Sumter,Florida,12119,91,7 +2020-04-09,Sumter,Florida,12119,100,7 +2020-04-10,Sumter,Florida,12119,107,9 +2020-04-11,Sumter,Florida,12119,108,9 +2020-04-12,Sumter,Florida,12119,110,9 +2020-04-13,Sumter,Florida,12119,112,9 +2020-04-14,Sumter,Florida,12119,113,9 +2020-04-15,Sumter,Florida,12119,114,11 +2020-04-16,Sumter,Florida,12119,117,11 +2020-04-17,Sumter,Florida,12119,120,11 +2020-04-18,Sumter,Florida,12119,144,11 +2020-04-19,Sumter,Florida,12119,147,11 +2020-04-20,Sumter,Florida,12119,153,11 +2020-04-21,Sumter,Florida,12119,163,11 +2020-04-22,Sumter,Florida,12119,164,11 +2020-04-23,Sumter,Florida,12119,166,12 +2020-04-24,Sumter,Florida,12119,167,12 +2020-04-25,Sumter,Florida,12119,169,12 +2020-04-26,Sumter,Florida,12119,171,12 +2020-04-27,Sumter,Florida,12119,173,12 +2020-04-28,Sumter,Florida,12119,177,13 +2020-04-29,Sumter,Florida,12119,176,13 +2020-04-30,Sumter,Florida,12119,181,13 +2020-05-01,Sumter,Florida,12119,217,14 +2020-05-02,Sumter,Florida,12119,221,14 +2020-05-03,Sumter,Florida,12119,226,14 +2020-05-04,Sumter,Florida,12119,233,14 +2020-05-05,Sumter,Florida,12119,236,14 +2020-05-06,Sumter,Florida,12119,234,14 +2020-05-07,Sumter,Florida,12119,238,14 +2020-05-08,Sumter,Florida,12119,239,14 +2020-05-09,Sumter,Florida,12119,240,14 +2020-05-10,Sumter,Florida,12119,244,14 +2020-05-11,Sumter,Florida,12119,244,14 +2020-05-12,Sumter,Florida,12119,244,15 +2020-05-13,Sumter,Florida,12119,245,15 +2020-05-14,Sumter,Florida,12119,246,16 +2020-05-15,Sumter,Florida,12119,250,16 +2020-05-16,Sumter,Florida,12119,251,16 +2020-05-17,Sumter,Florida,12119,251,16 +2020-05-18,Sumter,Florida,12119,252,16 +2020-05-19,Sumter,Florida,12119,253,16 +2020-05-20,Sumter,Florida,12119,253,17 +2020-05-21,Sumter,Florida,12119,254,17 +2020-05-22,Sumter,Florida,12119,252,17 +2020-05-23,Sumter,Florida,12119,253,17 +2020-05-24,Sumter,Florida,12119,253,17 +2020-05-25,Sumter,Florida,12119,253,17 +2020-05-26,Sumter,Florida,12119,254,17 +2020-05-27,Sumter,Florida,12119,253,17 +2020-05-28,Sumter,Florida,12119,253,17 +2020-05-29,Sumter,Florida,12119,253,17 +2020-05-30,Sumter,Florida,12119,253,17 +2020-05-31,Sumter,Florida,12119,253,17 +2020-06-01,Sumter,Florida,12119,253,17 +2020-06-02,Sumter,Florida,12119,255,17 +2020-06-03,Sumter,Florida,12119,258,17 +2020-06-04,Sumter,Florida,12119,260,17 +2020-06-05,Sumter,Florida,12119,261,17 +2020-06-06,Sumter,Florida,12119,261,17 +2020-06-07,Sumter,Florida,12119,261,17 +2020-06-08,Sumter,Florida,12119,261,17 +2020-06-09,Sumter,Florida,12119,264,17 +2020-06-10,Sumter,Florida,12119,265,17 +2020-06-11,Sumter,Florida,12119,265,17 +2020-06-12,Sumter,Florida,12119,266,17 +2020-06-13,Sumter,Florida,12119,266,17 +2020-06-14,Sumter,Florida,12119,266,17 +2020-06-15,Sumter,Florida,12119,267,17 +2020-06-16,Sumter,Florida,12119,268,17 +2020-06-17,Sumter,Florida,12119,269,17 +2020-06-18,Sumter,Florida,12119,270,17 +2020-06-19,Sumter,Florida,12119,277,17 +2020-06-20,Sumter,Florida,12119,282,17 +2020-06-21,Sumter,Florida,12119,284,17 +2020-06-22,Sumter,Florida,12119,286,17 +2020-06-23,Sumter,Florida,12119,290,17 +2020-06-24,Sumter,Florida,12119,299,17 +2020-06-25,Sumter,Florida,12119,308,17 +2020-06-26,Sumter,Florida,12119,313,17 +2020-06-27,Sumter,Florida,12119,319,17 +2020-06-28,Sumter,Florida,12119,327,17 +2020-06-29,Sumter,Florida,12119,334,17 +2020-06-30,Sumter,Florida,12119,345,17 +2020-07-01,Sumter,Florida,12119,368,17 +2020-07-02,Sumter,Florida,12119,387,17 +2020-07-03,Sumter,Florida,12119,401,17 +2020-07-04,Sumter,Florida,12119,408,17 +2020-07-05,Sumter,Florida,12119,420,17 +2020-07-06,Sumter,Florida,12119,436,17 +2020-07-07,Sumter,Florida,12119,478,17 +2020-07-08,Sumter,Florida,12119,516,18 +2020-07-09,Sumter,Florida,12119,549,18 +2020-03-27,Suwannee,Florida,12121,1,0 +2020-03-28,Suwannee,Florida,12121,1,0 +2020-03-29,Suwannee,Florida,12121,2,0 +2020-03-30,Suwannee,Florida,12121,3,0 +2020-03-31,Suwannee,Florida,12121,3,0 +2020-04-01,Suwannee,Florida,12121,6,0 +2020-04-02,Suwannee,Florida,12121,7,0 +2020-04-03,Suwannee,Florida,12121,11,0 +2020-04-04,Suwannee,Florida,12121,17,0 +2020-04-05,Suwannee,Florida,12121,18,0 +2020-04-06,Suwannee,Florida,12121,31,0 +2020-04-07,Suwannee,Florida,12121,33,0 +2020-04-08,Suwannee,Florida,12121,47,0 +2020-04-09,Suwannee,Florida,12121,54,0 +2020-04-10,Suwannee,Florida,12121,59,0 +2020-04-11,Suwannee,Florida,12121,67,0 +2020-04-12,Suwannee,Florida,12121,67,0 +2020-04-13,Suwannee,Florida,12121,68,1 +2020-04-14,Suwannee,Florida,12121,75,3 +2020-04-15,Suwannee,Florida,12121,81,3 +2020-04-16,Suwannee,Florida,12121,83,5 +2020-04-17,Suwannee,Florida,12121,87,5 +2020-04-18,Suwannee,Florida,12121,90,6 +2020-04-19,Suwannee,Florida,12121,98,6 +2020-04-20,Suwannee,Florida,12121,98,8 +2020-04-21,Suwannee,Florida,12121,102,9 +2020-04-22,Suwannee,Florida,12121,104,9 +2020-04-23,Suwannee,Florida,12121,106,9 +2020-04-24,Suwannee,Florida,12121,107,10 +2020-04-25,Suwannee,Florida,12121,109,11 +2020-04-26,Suwannee,Florida,12121,116,11 +2020-04-27,Suwannee,Florida,12121,118,11 +2020-04-28,Suwannee,Florida,12121,128,14 +2020-04-29,Suwannee,Florida,12121,129,14 +2020-04-30,Suwannee,Florida,12121,130,14 +2020-05-01,Suwannee,Florida,12121,139,14 +2020-05-02,Suwannee,Florida,12121,141,16 +2020-05-03,Suwannee,Florida,12121,141,16 +2020-05-04,Suwannee,Florida,12121,141,16 +2020-05-05,Suwannee,Florida,12121,142,17 +2020-05-06,Suwannee,Florida,12121,143,17 +2020-05-07,Suwannee,Florida,12121,144,17 +2020-05-08,Suwannee,Florida,12121,145,18 +2020-05-09,Suwannee,Florida,12121,145,18 +2020-05-10,Suwannee,Florida,12121,146,18 +2020-05-11,Suwannee,Florida,12121,146,18 +2020-05-12,Suwannee,Florida,12121,148,18 +2020-05-13,Suwannee,Florida,12121,149,18 +2020-05-14,Suwannee,Florida,12121,151,18 +2020-05-15,Suwannee,Florida,12121,151,18 +2020-05-16,Suwannee,Florida,12121,153,18 +2020-05-17,Suwannee,Florida,12121,158,18 +2020-05-18,Suwannee,Florida,12121,160,18 +2020-05-19,Suwannee,Florida,12121,160,18 +2020-05-20,Suwannee,Florida,12121,160,18 +2020-05-21,Suwannee,Florida,12121,161,18 +2020-05-22,Suwannee,Florida,12121,164,18 +2020-05-23,Suwannee,Florida,12121,164,18 +2020-05-24,Suwannee,Florida,12121,165,18 +2020-05-25,Suwannee,Florida,12121,166,18 +2020-05-26,Suwannee,Florida,12121,165,18 +2020-05-27,Suwannee,Florida,12121,166,18 +2020-05-28,Suwannee,Florida,12121,166,18 +2020-05-29,Suwannee,Florida,12121,166,18 +2020-05-30,Suwannee,Florida,12121,167,18 +2020-05-31,Suwannee,Florida,12121,167,18 +2020-06-01,Suwannee,Florida,12121,168,18 +2020-06-02,Suwannee,Florida,12121,168,18 +2020-06-03,Suwannee,Florida,12121,170,18 +2020-06-04,Suwannee,Florida,12121,172,18 +2020-06-05,Suwannee,Florida,12121,174,18 +2020-06-06,Suwannee,Florida,12121,174,18 +2020-06-07,Suwannee,Florida,12121,175,18 +2020-06-08,Suwannee,Florida,12121,175,18 +2020-06-09,Suwannee,Florida,12121,176,18 +2020-06-10,Suwannee,Florida,12121,178,18 +2020-06-11,Suwannee,Florida,12121,182,18 +2020-06-12,Suwannee,Florida,12121,185,18 +2020-06-13,Suwannee,Florida,12121,186,18 +2020-06-14,Suwannee,Florida,12121,196,18 +2020-06-15,Suwannee,Florida,12121,200,18 +2020-06-16,Suwannee,Florida,12121,208,18 +2020-06-17,Suwannee,Florida,12121,217,18 +2020-06-18,Suwannee,Florida,12121,224,18 +2020-06-19,Suwannee,Florida,12121,229,18 +2020-06-20,Suwannee,Florida,12121,252,18 +2020-06-21,Suwannee,Florida,12121,310,18 +2020-06-22,Suwannee,Florida,12121,290,18 +2020-06-23,Suwannee,Florida,12121,339,19 +2020-06-24,Suwannee,Florida,12121,349,18 +2020-06-25,Suwannee,Florida,12121,360,19 +2020-06-26,Suwannee,Florida,12121,373,19 +2020-06-27,Suwannee,Florida,12121,393,20 +2020-06-28,Suwannee,Florida,12121,433,20 +2020-06-29,Suwannee,Florida,12121,439,20 +2020-06-30,Suwannee,Florida,12121,499,20 +2020-07-01,Suwannee,Florida,12121,532,21 +2020-07-02,Suwannee,Florida,12121,561,21 +2020-07-03,Suwannee,Florida,12121,581,21 +2020-07-04,Suwannee,Florida,12121,597,21 +2020-07-05,Suwannee,Florida,12121,614,21 +2020-07-06,Suwannee,Florida,12121,630,21 +2020-07-07,Suwannee,Florida,12121,646,21 +2020-07-08,Suwannee,Florida,12121,673,21 +2020-07-09,Suwannee,Florida,12121,686,21 +2020-04-07,Taylor,Florida,12123,1,0 +2020-04-08,Taylor,Florida,12123,1,0 +2020-04-09,Taylor,Florida,12123,1,0 +2020-04-10,Taylor,Florida,12123,1,0 +2020-04-11,Taylor,Florida,12123,1,0 +2020-04-12,Taylor,Florida,12123,1,0 +2020-04-13,Taylor,Florida,12123,1,0 +2020-04-14,Taylor,Florida,12123,1,0 +2020-04-15,Taylor,Florida,12123,1,0 +2020-04-16,Taylor,Florida,12123,1,0 +2020-04-17,Taylor,Florida,12123,1,0 +2020-04-18,Taylor,Florida,12123,1,0 +2020-04-19,Taylor,Florida,12123,1,0 +2020-04-20,Taylor,Florida,12123,2,0 +2020-04-21,Taylor,Florida,12123,2,0 +2020-04-22,Taylor,Florida,12123,2,0 +2020-04-23,Taylor,Florida,12123,3,0 +2020-04-24,Taylor,Florida,12123,3,0 +2020-04-25,Taylor,Florida,12123,3,0 +2020-04-26,Taylor,Florida,12123,3,0 +2020-04-27,Taylor,Florida,12123,3,0 +2020-04-28,Taylor,Florida,12123,3,0 +2020-04-29,Taylor,Florida,12123,3,0 +2020-04-30,Taylor,Florida,12123,3,0 +2020-05-01,Taylor,Florida,12123,3,0 +2020-05-02,Taylor,Florida,12123,3,0 +2020-05-03,Taylor,Florida,12123,3,0 +2020-05-04,Taylor,Florida,12123,3,0 +2020-05-05,Taylor,Florida,12123,3,0 +2020-05-06,Taylor,Florida,12123,3,0 +2020-05-07,Taylor,Florida,12123,3,0 +2020-05-08,Taylor,Florida,12123,3,0 +2020-05-09,Taylor,Florida,12123,3,0 +2020-05-10,Taylor,Florida,12123,3,0 +2020-05-11,Taylor,Florida,12123,3,0 +2020-05-12,Taylor,Florida,12123,3,0 +2020-05-13,Taylor,Florida,12123,3,0 +2020-05-14,Taylor,Florida,12123,3,0 +2020-05-15,Taylor,Florida,12123,3,0 +2020-05-16,Taylor,Florida,12123,3,0 +2020-05-17,Taylor,Florida,12123,3,0 +2020-05-18,Taylor,Florida,12123,5,0 +2020-05-19,Taylor,Florida,12123,5,0 +2020-05-20,Taylor,Florida,12123,5,0 +2020-05-21,Taylor,Florida,12123,8,0 +2020-05-22,Taylor,Florida,12123,10,0 +2020-05-23,Taylor,Florida,12123,11,0 +2020-05-24,Taylor,Florida,12123,12,0 +2020-05-25,Taylor,Florida,12123,14,0 +2020-05-26,Taylor,Florida,12123,14,0 +2020-05-27,Taylor,Florida,12123,14,0 +2020-05-28,Taylor,Florida,12123,16,0 +2020-05-29,Taylor,Florida,12123,19,0 +2020-05-30,Taylor,Florida,12123,20,0 +2020-05-31,Taylor,Florida,12123,22,0 +2020-06-01,Taylor,Florida,12123,22,0 +2020-06-02,Taylor,Florida,12123,22,0 +2020-06-03,Taylor,Florida,12123,24,0 +2020-06-04,Taylor,Florida,12123,26,0 +2020-06-05,Taylor,Florida,12123,27,0 +2020-06-06,Taylor,Florida,12123,45,0 +2020-06-07,Taylor,Florida,12123,46,0 +2020-06-08,Taylor,Florida,12123,48,0 +2020-06-09,Taylor,Florida,12123,48,0 +2020-06-10,Taylor,Florida,12123,47,0 +2020-06-11,Taylor,Florida,12123,51,0 +2020-06-12,Taylor,Florida,12123,52,0 +2020-06-13,Taylor,Florida,12123,53,0 +2020-06-14,Taylor,Florida,12123,54,0 +2020-06-15,Taylor,Florida,12123,59,0 +2020-06-16,Taylor,Florida,12123,60,0 +2020-06-17,Taylor,Florida,12123,62,0 +2020-06-18,Taylor,Florida,12123,62,0 +2020-06-19,Taylor,Florida,12123,62,0 +2020-06-20,Taylor,Florida,12123,63,0 +2020-06-21,Taylor,Florida,12123,65,0 +2020-06-22,Taylor,Florida,12123,68,0 +2020-06-23,Taylor,Florida,12123,69,0 +2020-06-24,Taylor,Florida,12123,70,0 +2020-06-25,Taylor,Florida,12123,70,0 +2020-06-26,Taylor,Florida,12123,71,0 +2020-06-27,Taylor,Florida,12123,73,0 +2020-06-28,Taylor,Florida,12123,74,0 +2020-06-29,Taylor,Florida,12123,76,0 +2020-06-30,Taylor,Florida,12123,79,0 +2020-07-01,Taylor,Florida,12123,80,1 +2020-07-02,Taylor,Florida,12123,85,1 +2020-07-03,Taylor,Florida,12123,91,1 +2020-07-04,Taylor,Florida,12123,97,1 +2020-07-05,Taylor,Florida,12123,99,1 +2020-07-06,Taylor,Florida,12123,101,1 +2020-07-07,Taylor,Florida,12123,102,1 +2020-07-08,Taylor,Florida,12123,109,1 +2020-07-09,Taylor,Florida,12123,116,1 +2020-03-31,Union,Florida,12125,1,0 +2020-04-01,Union,Florida,12125,1,0 +2020-04-02,Union,Florida,12125,1,0 +2020-04-03,Union,Florida,12125,1,0 +2020-04-04,Union,Florida,12125,1,0 +2020-04-05,Union,Florida,12125,2,0 +2020-04-06,Union,Florida,12125,2,0 +2020-04-07,Union,Florida,12125,2,0 +2020-04-08,Union,Florida,12125,2,0 +2020-04-09,Union,Florida,12125,2,0 +2020-04-10,Union,Florida,12125,2,0 +2020-04-11,Union,Florida,12125,2,0 +2020-04-12,Union,Florida,12125,2,0 +2020-04-13,Union,Florida,12125,2,0 +2020-04-14,Union,Florida,12125,2,0 +2020-04-15,Union,Florida,12125,2,0 +2020-04-16,Union,Florida,12125,2,0 +2020-04-17,Union,Florida,12125,2,0 +2020-04-18,Union,Florida,12125,2,0 +2020-04-19,Union,Florida,12125,3,0 +2020-04-20,Union,Florida,12125,2,0 +2020-04-21,Union,Florida,12125,3,0 +2020-04-22,Union,Florida,12125,3,0 +2020-04-23,Union,Florida,12125,3,0 +2020-04-24,Union,Florida,12125,4,0 +2020-04-25,Union,Florida,12125,4,0 +2020-04-26,Union,Florida,12125,4,0 +2020-04-27,Union,Florida,12125,4,0 +2020-04-28,Union,Florida,12125,4,0 +2020-04-29,Union,Florida,12125,4,0 +2020-04-30,Union,Florida,12125,4,0 +2020-05-01,Union,Florida,12125,5,0 +2020-05-02,Union,Florida,12125,5,0 +2020-05-03,Union,Florida,12125,5,0 +2020-05-04,Union,Florida,12125,5,0 +2020-05-05,Union,Florida,12125,5,0 +2020-05-06,Union,Florida,12125,5,0 +2020-05-07,Union,Florida,12125,5,0 +2020-05-08,Union,Florida,12125,5,0 +2020-05-09,Union,Florida,12125,6,0 +2020-05-10,Union,Florida,12125,6,0 +2020-05-11,Union,Florida,12125,7,0 +2020-05-12,Union,Florida,12125,7,0 +2020-05-13,Union,Florida,12125,10,0 +2020-05-14,Union,Florida,12125,14,0 +2020-05-15,Union,Florida,12125,14,0 +2020-05-16,Union,Florida,12125,20,0 +2020-05-17,Union,Florida,12125,25,0 +2020-05-18,Union,Florida,12125,25,0 +2020-05-19,Union,Florida,12125,26,0 +2020-05-20,Union,Florida,12125,26,0 +2020-05-21,Union,Florida,12125,28,0 +2020-05-22,Union,Florida,12125,28,0 +2020-05-23,Union,Florida,12125,29,0 +2020-05-24,Union,Florida,12125,30,0 +2020-05-25,Union,Florida,12125,30,0 +2020-05-26,Union,Florida,12125,31,0 +2020-05-27,Union,Florida,12125,31,0 +2020-05-28,Union,Florida,12125,31,0 +2020-05-29,Union,Florida,12125,31,1 +2020-05-30,Union,Florida,12125,31,1 +2020-05-31,Union,Florida,12125,32,1 +2020-06-01,Union,Florida,12125,32,1 +2020-06-02,Union,Florida,12125,33,1 +2020-06-03,Union,Florida,12125,33,1 +2020-06-04,Union,Florida,12125,34,1 +2020-06-05,Union,Florida,12125,34,1 +2020-06-06,Union,Florida,12125,36,1 +2020-06-07,Union,Florida,12125,38,1 +2020-06-08,Union,Florida,12125,38,1 +2020-06-09,Union,Florida,12125,38,1 +2020-06-10,Union,Florida,12125,38,1 +2020-06-11,Union,Florida,12125,38,1 +2020-06-12,Union,Florida,12125,38,1 +2020-06-13,Union,Florida,12125,39,1 +2020-06-14,Union,Florida,12125,38,1 +2020-06-15,Union,Florida,12125,38,1 +2020-06-16,Union,Florida,12125,38,1 +2020-06-17,Union,Florida,12125,38,1 +2020-06-18,Union,Florida,12125,38,1 +2020-06-19,Union,Florida,12125,39,2 +2020-06-20,Union,Florida,12125,40,2 +2020-06-21,Union,Florida,12125,41,2 +2020-06-22,Union,Florida,12125,42,2 +2020-06-23,Union,Florida,12125,43,2 +2020-06-24,Union,Florida,12125,44,2 +2020-06-25,Union,Florida,12125,46,2 +2020-06-26,Union,Florida,12125,48,2 +2020-06-27,Union,Florida,12125,58,2 +2020-06-28,Union,Florida,12125,61,2 +2020-06-29,Union,Florida,12125,61,2 +2020-06-30,Union,Florida,12125,62,2 +2020-07-01,Union,Florida,12125,62,2 +2020-07-02,Union,Florida,12125,71,2 +2020-07-03,Union,Florida,12125,74,2 +2020-07-04,Union,Florida,12125,82,2 +2020-07-05,Union,Florida,12125,85,2 +2020-07-06,Union,Florida,12125,89,2 +2020-07-07,Union,Florida,12125,92,2 +2020-07-08,Union,Florida,12125,99,2 +2020-07-09,Union,Florida,12125,101,2 +2020-03-07,Volusia,Florida,12127,1,0 +2020-03-08,Volusia,Florida,12127,1,0 +2020-03-09,Volusia,Florida,12127,2,0 +2020-03-10,Volusia,Florida,12127,2,0 +2020-03-11,Volusia,Florida,12127,2,0 +2020-03-12,Volusia,Florida,12127,3,0 +2020-03-13,Volusia,Florida,12127,4,0 +2020-03-14,Volusia,Florida,12127,4,0 +2020-03-15,Volusia,Florida,12127,5,0 +2020-03-16,Volusia,Florida,12127,7,0 +2020-03-17,Volusia,Florida,12127,9,0 +2020-03-18,Volusia,Florida,12127,9,0 +2020-03-19,Volusia,Florida,12127,9,0 +2020-03-20,Volusia,Florida,12127,10,0 +2020-03-21,Volusia,Florida,12127,11,0 +2020-03-22,Volusia,Florida,12127,14,0 +2020-03-23,Volusia,Florida,12127,16,0 +2020-03-24,Volusia,Florida,12127,19,0 +2020-03-25,Volusia,Florida,12127,28,0 +2020-03-26,Volusia,Florida,12127,34,0 +2020-03-27,Volusia,Florida,12127,43,0 +2020-03-28,Volusia,Florida,12127,44,1 +2020-03-29,Volusia,Florida,12127,60,1 +2020-03-30,Volusia,Florida,12127,69,1 +2020-03-31,Volusia,Florida,12127,80,1 +2020-04-01,Volusia,Florida,12127,93,1 +2020-04-02,Volusia,Florida,12127,102,1 +2020-04-03,Volusia,Florida,12127,125,1 +2020-04-04,Volusia,Florida,12127,134,2 +2020-04-05,Volusia,Florida,12127,151,2 +2020-04-06,Volusia,Florida,12127,153,3 +2020-04-07,Volusia,Florida,12127,163,3 +2020-04-08,Volusia,Florida,12127,165,3 +2020-04-09,Volusia,Florida,12127,179,5 +2020-04-10,Volusia,Florida,12127,190,6 +2020-04-11,Volusia,Florida,12127,195,7 +2020-04-12,Volusia,Florida,12127,201,7 +2020-04-13,Volusia,Florida,12127,216,7 +2020-04-14,Volusia,Florida,12127,226,7 +2020-04-15,Volusia,Florida,12127,243,8 +2020-04-16,Volusia,Florida,12127,255,9 +2020-04-17,Volusia,Florida,12127,270,9 +2020-04-18,Volusia,Florida,12127,291,10 +2020-04-19,Volusia,Florida,12127,333,10 +2020-04-20,Volusia,Florida,12127,342,10 +2020-04-21,Volusia,Florida,12127,366,13 +2020-04-22,Volusia,Florida,12127,375,13 +2020-04-23,Volusia,Florida,12127,420,14 +2020-04-24,Volusia,Florida,12127,428,15 +2020-04-25,Volusia,Florida,12127,432,15 +2020-04-26,Volusia,Florida,12127,434,17 +2020-04-27,Volusia,Florida,12127,440,18 +2020-04-28,Volusia,Florida,12127,445,18 +2020-04-29,Volusia,Florida,12127,448,20 +2020-04-30,Volusia,Florida,12127,452,21 +2020-05-01,Volusia,Florida,12127,500,21 +2020-05-02,Volusia,Florida,12127,509,25 +2020-05-03,Volusia,Florida,12127,513,26 +2020-05-04,Volusia,Florida,12127,514,26 +2020-05-05,Volusia,Florida,12127,521,27 +2020-05-06,Volusia,Florida,12127,526,27 +2020-05-07,Volusia,Florida,12127,534,27 +2020-05-08,Volusia,Florida,12127,537,28 +2020-05-09,Volusia,Florida,12127,540,28 +2020-05-10,Volusia,Florida,12127,548,28 +2020-05-11,Volusia,Florida,12127,551,29 +2020-05-12,Volusia,Florida,12127,557,30 +2020-05-13,Volusia,Florida,12127,566,30 +2020-05-14,Volusia,Florida,12127,576,30 +2020-05-15,Volusia,Florida,12127,590,30 +2020-05-16,Volusia,Florida,12127,591,30 +2020-05-17,Volusia,Florida,12127,594,30 +2020-05-18,Volusia,Florida,12127,605,30 +2020-05-19,Volusia,Florida,12127,612,30 +2020-05-20,Volusia,Florida,12127,618,33 +2020-05-21,Volusia,Florida,12127,630,35 +2020-05-22,Volusia,Florida,12127,640,36 +2020-05-23,Volusia,Florida,12127,655,36 +2020-05-24,Volusia,Florida,12127,663,37 +2020-05-25,Volusia,Florida,12127,673,37 +2020-05-26,Volusia,Florida,12127,680,37 +2020-05-27,Volusia,Florida,12127,683,37 +2020-05-28,Volusia,Florida,12127,709,37 +2020-05-29,Volusia,Florida,12127,725,37 +2020-05-30,Volusia,Florida,12127,730,38 +2020-05-31,Volusia,Florida,12127,736,38 +2020-06-01,Volusia,Florida,12127,741,38 +2020-06-02,Volusia,Florida,12127,752,39 +2020-06-03,Volusia,Florida,12127,771,41 +2020-06-04,Volusia,Florida,12127,784,41 +2020-06-05,Volusia,Florida,12127,791,44 +2020-06-06,Volusia,Florida,12127,804,44 +2020-06-07,Volusia,Florida,12127,819,44 +2020-06-08,Volusia,Florida,12127,829,45 +2020-06-09,Volusia,Florida,12127,837,46 +2020-06-10,Volusia,Florida,12127,849,46 +2020-06-11,Volusia,Florida,12127,860,46 +2020-06-12,Volusia,Florida,12127,884,46 +2020-06-13,Volusia,Florida,12127,914,47 +2020-06-14,Volusia,Florida,12127,928,47 +2020-06-15,Volusia,Florida,12127,946,48 +2020-06-16,Volusia,Florida,12127,969,49 +2020-06-17,Volusia,Florida,12127,995,50 +2020-06-18,Volusia,Florida,12127,1057,51 +2020-06-19,Volusia,Florida,12127,1117,53 +2020-06-20,Volusia,Florida,12127,1168,53 +2020-06-21,Volusia,Florida,12127,1218,53 +2020-06-22,Volusia,Florida,12127,1263,53 +2020-06-23,Volusia,Florida,12127,1301,53 +2020-06-24,Volusia,Florida,12127,1369,53 +2020-06-25,Volusia,Florida,12127,1464,53 +2020-06-26,Volusia,Florida,12127,1605,53 +2020-06-27,Volusia,Florida,12127,1745,54 +2020-06-28,Volusia,Florida,12127,1933,54 +2020-06-29,Volusia,Florida,12127,2024,56 +2020-06-30,Volusia,Florida,12127,2105,57 +2020-07-01,Volusia,Florida,12127,2219,58 +2020-07-02,Volusia,Florida,12127,2372,58 +2020-07-03,Volusia,Florida,12127,2496,58 +2020-07-04,Volusia,Florida,12127,2604,58 +2020-07-05,Volusia,Florida,12127,2685,58 +2020-07-06,Volusia,Florida,12127,2804,58 +2020-07-07,Volusia,Florida,12127,2951,59 +2020-07-08,Volusia,Florida,12127,3070,62 +2020-07-09,Volusia,Florida,12127,3234,67 +2020-03-29,Wakulla,Florida,12129,1,0 +2020-03-30,Wakulla,Florida,12129,1,0 +2020-03-31,Wakulla,Florida,12129,1,0 +2020-04-01,Wakulla,Florida,12129,2,0 +2020-04-02,Wakulla,Florida,12129,2,0 +2020-04-03,Wakulla,Florida,12129,3,0 +2020-04-04,Wakulla,Florida,12129,5,0 +2020-04-05,Wakulla,Florida,12129,6,0 +2020-04-06,Wakulla,Florida,12129,6,0 +2020-04-07,Wakulla,Florida,12129,6,0 +2020-04-08,Wakulla,Florida,12129,7,0 +2020-04-09,Wakulla,Florida,12129,7,0 +2020-04-10,Wakulla,Florida,12129,7,0 +2020-04-11,Wakulla,Florida,12129,7,0 +2020-04-12,Wakulla,Florida,12129,8,1 +2020-04-13,Wakulla,Florida,12129,12,1 +2020-04-14,Wakulla,Florida,12129,12,1 +2020-04-15,Wakulla,Florida,12129,13,1 +2020-04-16,Wakulla,Florida,12129,14,1 +2020-04-17,Wakulla,Florida,12129,14,1 +2020-04-18,Wakulla,Florida,12129,14,1 +2020-04-19,Wakulla,Florida,12129,14,1 +2020-04-20,Wakulla,Florida,12129,15,1 +2020-04-21,Wakulla,Florida,12129,15,1 +2020-04-22,Wakulla,Florida,12129,15,1 +2020-04-23,Wakulla,Florida,12129,17,1 +2020-04-24,Wakulla,Florida,12129,20,1 +2020-04-25,Wakulla,Florida,12129,20,1 +2020-04-26,Wakulla,Florida,12129,21,1 +2020-04-27,Wakulla,Florida,12129,22,1 +2020-04-28,Wakulla,Florida,12129,22,1 +2020-04-29,Wakulla,Florida,12129,22,1 +2020-04-30,Wakulla,Florida,12129,23,1 +2020-05-01,Wakulla,Florida,12129,24,1 +2020-05-02,Wakulla,Florida,12129,23,1 +2020-05-03,Wakulla,Florida,12129,24,1 +2020-05-04,Wakulla,Florida,12129,24,1 +2020-05-05,Wakulla,Florida,12129,29,1 +2020-05-06,Wakulla,Florida,12129,29,1 +2020-05-07,Wakulla,Florida,12129,29,1 +2020-05-08,Wakulla,Florida,12129,29,1 +2020-05-09,Wakulla,Florida,12129,29,1 +2020-05-10,Wakulla,Florida,12129,29,1 +2020-05-11,Wakulla,Florida,12129,29,1 +2020-05-12,Wakulla,Florida,12129,31,1 +2020-05-13,Wakulla,Florida,12129,31,1 +2020-05-14,Wakulla,Florida,12129,31,1 +2020-05-15,Wakulla,Florida,12129,31,1 +2020-05-16,Wakulla,Florida,12129,31,1 +2020-05-17,Wakulla,Florida,12129,32,1 +2020-05-18,Wakulla,Florida,12129,32,1 +2020-05-19,Wakulla,Florida,12129,32,1 +2020-05-20,Wakulla,Florida,12129,32,1 +2020-05-21,Wakulla,Florida,12129,32,1 +2020-05-22,Wakulla,Florida,12129,32,1 +2020-05-23,Wakulla,Florida,12129,32,1 +2020-05-24,Wakulla,Florida,12129,32,1 +2020-05-25,Wakulla,Florida,12129,32,1 +2020-05-26,Wakulla,Florida,12129,32,1 +2020-05-27,Wakulla,Florida,12129,32,1 +2020-05-28,Wakulla,Florida,12129,32,1 +2020-05-29,Wakulla,Florida,12129,33,1 +2020-05-30,Wakulla,Florida,12129,34,1 +2020-05-31,Wakulla,Florida,12129,34,1 +2020-06-01,Wakulla,Florida,12129,35,1 +2020-06-02,Wakulla,Florida,12129,35,1 +2020-06-03,Wakulla,Florida,12129,35,1 +2020-06-04,Wakulla,Florida,12129,35,1 +2020-06-05,Wakulla,Florida,12129,35,1 +2020-06-06,Wakulla,Florida,12129,35,1 +2020-06-07,Wakulla,Florida,12129,35,1 +2020-06-08,Wakulla,Florida,12129,35,1 +2020-06-09,Wakulla,Florida,12129,35,1 +2020-06-10,Wakulla,Florida,12129,35,1 +2020-06-11,Wakulla,Florida,12129,35,1 +2020-06-12,Wakulla,Florida,12129,35,1 +2020-06-13,Wakulla,Florida,12129,35,1 +2020-06-14,Wakulla,Florida,12129,35,1 +2020-06-15,Wakulla,Florida,12129,35,1 +2020-06-16,Wakulla,Florida,12129,35,1 +2020-06-17,Wakulla,Florida,12129,36,1 +2020-06-18,Wakulla,Florida,12129,37,1 +2020-06-19,Wakulla,Florida,12129,37,1 +2020-06-20,Wakulla,Florida,12129,38,1 +2020-06-21,Wakulla,Florida,12129,40,1 +2020-06-22,Wakulla,Florida,12129,40,1 +2020-06-23,Wakulla,Florida,12129,41,1 +2020-06-24,Wakulla,Florida,12129,41,1 +2020-06-25,Wakulla,Florida,12129,42,1 +2020-06-26,Wakulla,Florida,12129,46,1 +2020-06-27,Wakulla,Florida,12129,47,1 +2020-06-28,Wakulla,Florida,12129,54,1 +2020-06-29,Wakulla,Florida,12129,55,1 +2020-06-30,Wakulla,Florida,12129,60,1 +2020-07-01,Wakulla,Florida,12129,65,1 +2020-07-02,Wakulla,Florida,12129,71,1 +2020-07-03,Wakulla,Florida,12129,72,1 +2020-07-04,Wakulla,Florida,12129,84,1 +2020-07-05,Wakulla,Florida,12129,87,1 +2020-07-06,Wakulla,Florida,12129,90,1 +2020-07-07,Wakulla,Florida,12129,93,1 +2020-07-08,Wakulla,Florida,12129,94,1 +2020-07-09,Wakulla,Florida,12129,102,1 +2020-03-18,Walton,Florida,12131,1,0 +2020-03-19,Walton,Florida,12131,1,0 +2020-03-20,Walton,Florida,12131,3,0 +2020-03-21,Walton,Florida,12131,4,0 +2020-03-22,Walton,Florida,12131,4,0 +2020-03-23,Walton,Florida,12131,9,0 +2020-03-24,Walton,Florida,12131,10,0 +2020-03-25,Walton,Florida,12131,13,0 +2020-03-26,Walton,Florida,12131,13,0 +2020-03-27,Walton,Florida,12131,14,0 +2020-03-28,Walton,Florida,12131,15,0 +2020-03-29,Walton,Florida,12131,15,0 +2020-03-30,Walton,Florida,12131,16,0 +2020-03-31,Walton,Florida,12131,18,0 +2020-04-01,Walton,Florida,12131,18,0 +2020-04-02,Walton,Florida,12131,19,0 +2020-04-03,Walton,Florida,12131,19,0 +2020-04-04,Walton,Florida,12131,21,0 +2020-04-05,Walton,Florida,12131,23,0 +2020-04-06,Walton,Florida,12131,25,0 +2020-04-07,Walton,Florida,12131,26,0 +2020-04-08,Walton,Florida,12131,26,0 +2020-04-09,Walton,Florida,12131,26,0 +2020-04-10,Walton,Florida,12131,27,0 +2020-04-11,Walton,Florida,12131,30,0 +2020-04-12,Walton,Florida,12131,29,0 +2020-04-13,Walton,Florida,12131,29,0 +2020-04-14,Walton,Florida,12131,29,0 +2020-04-15,Walton,Florida,12131,29,0 +2020-04-16,Walton,Florida,12131,29,0 +2020-04-17,Walton,Florida,12131,31,0 +2020-04-18,Walton,Florida,12131,32,0 +2020-04-19,Walton,Florida,12131,32,0 +2020-04-20,Walton,Florida,12131,32,0 +2020-04-21,Walton,Florida,12131,32,0 +2020-04-22,Walton,Florida,12131,32,0 +2020-04-23,Walton,Florida,12131,34,0 +2020-04-24,Walton,Florida,12131,35,0 +2020-04-25,Walton,Florida,12131,35,0 +2020-04-26,Walton,Florida,12131,35,0 +2020-04-27,Walton,Florida,12131,35,0 +2020-04-28,Walton,Florida,12131,35,0 +2020-04-29,Walton,Florida,12131,35,0 +2020-04-30,Walton,Florida,12131,38,0 +2020-05-01,Walton,Florida,12131,38,0 +2020-05-02,Walton,Florida,12131,43,0 +2020-05-03,Walton,Florida,12131,49,0 +2020-05-04,Walton,Florida,12131,50,1 +2020-05-05,Walton,Florida,12131,50,1 +2020-05-06,Walton,Florida,12131,51,1 +2020-05-07,Walton,Florida,12131,50,1 +2020-05-08,Walton,Florida,12131,51,1 +2020-05-09,Walton,Florida,12131,55,2 +2020-05-10,Walton,Florida,12131,61,2 +2020-05-11,Walton,Florida,12131,65,2 +2020-05-12,Walton,Florida,12131,66,2 +2020-05-13,Walton,Florida,12131,68,2 +2020-05-14,Walton,Florida,12131,73,2 +2020-05-15,Walton,Florida,12131,76,2 +2020-05-16,Walton,Florida,12131,77,2 +2020-05-17,Walton,Florida,12131,77,2 +2020-05-18,Walton,Florida,12131,81,3 +2020-05-19,Walton,Florida,12131,91,5 +2020-05-20,Walton,Florida,12131,97,6 +2020-05-21,Walton,Florida,12131,97,7 +2020-05-22,Walton,Florida,12131,100,7 +2020-05-23,Walton,Florida,12131,103,7 +2020-05-24,Walton,Florida,12131,106,8 +2020-05-25,Walton,Florida,12131,108,8 +2020-05-26,Walton,Florida,12131,108,9 +2020-05-27,Walton,Florida,12131,109,9 +2020-05-28,Walton,Florida,12131,109,9 +2020-05-29,Walton,Florida,12131,114,9 +2020-05-30,Walton,Florida,12131,114,9 +2020-05-31,Walton,Florida,12131,117,9 +2020-06-01,Walton,Florida,12131,117,9 +2020-06-02,Walton,Florida,12131,118,9 +2020-06-03,Walton,Florida,12131,118,9 +2020-06-04,Walton,Florida,12131,120,9 +2020-06-05,Walton,Florida,12131,124,9 +2020-06-06,Walton,Florida,12131,130,9 +2020-06-07,Walton,Florida,12131,130,9 +2020-06-08,Walton,Florida,12131,131,9 +2020-06-09,Walton,Florida,12131,133,9 +2020-06-10,Walton,Florida,12131,135,9 +2020-06-11,Walton,Florida,12131,142,9 +2020-06-12,Walton,Florida,12131,145,9 +2020-06-13,Walton,Florida,12131,146,9 +2020-06-14,Walton,Florida,12131,148,9 +2020-06-15,Walton,Florida,12131,150,9 +2020-06-16,Walton,Florida,12131,152,9 +2020-06-17,Walton,Florida,12131,157,9 +2020-06-18,Walton,Florida,12131,157,9 +2020-06-19,Walton,Florida,12131,165,9 +2020-06-20,Walton,Florida,12131,174,9 +2020-06-21,Walton,Florida,12131,181,9 +2020-06-22,Walton,Florida,12131,186,9 +2020-06-23,Walton,Florida,12131,188,9 +2020-06-24,Walton,Florida,12131,198,9 +2020-06-25,Walton,Florida,12131,205,9 +2020-06-26,Walton,Florida,12131,206,9 +2020-06-27,Walton,Florida,12131,210,9 +2020-06-28,Walton,Florida,12131,211,9 +2020-06-29,Walton,Florida,12131,213,9 +2020-06-30,Walton,Florida,12131,245,9 +2020-07-01,Walton,Florida,12131,257,9 +2020-07-02,Walton,Florida,12131,291,9 +2020-07-03,Walton,Florida,12131,295,9 +2020-07-04,Walton,Florida,12131,305,9 +2020-07-05,Walton,Florida,12131,318,9 +2020-07-06,Walton,Florida,12131,324,9 +2020-07-07,Walton,Florida,12131,372,9 +2020-07-08,Walton,Florida,12131,395,9 +2020-07-09,Walton,Florida,12131,434,9 +2020-03-26,Washington,Florida,12133,1,0 +2020-03-27,Washington,Florida,12133,1,0 +2020-03-28,Washington,Florida,12133,1,0 +2020-03-29,Washington,Florida,12133,1,0 +2020-03-30,Washington,Florida,12133,1,0 +2020-03-31,Washington,Florida,12133,1,0 +2020-04-01,Washington,Florida,12133,1,0 +2020-04-02,Washington,Florida,12133,1,0 +2020-04-03,Washington,Florida,12133,1,0 +2020-04-04,Washington,Florida,12133,1,0 +2020-04-05,Washington,Florida,12133,1,0 +2020-04-06,Washington,Florida,12133,1,0 +2020-04-07,Washington,Florida,12133,2,0 +2020-04-08,Washington,Florida,12133,2,0 +2020-04-09,Washington,Florida,12133,3,0 +2020-04-10,Washington,Florida,12133,3,0 +2020-04-11,Washington,Florida,12133,5,0 +2020-04-12,Washington,Florida,12133,4,0 +2020-04-13,Washington,Florida,12133,4,0 +2020-04-14,Washington,Florida,12133,5,0 +2020-04-15,Washington,Florida,12133,5,0 +2020-04-16,Washington,Florida,12133,5,0 +2020-04-17,Washington,Florida,12133,6,0 +2020-04-18,Washington,Florida,12133,5,0 +2020-04-19,Washington,Florida,12133,6,0 +2020-04-20,Washington,Florida,12133,6,0 +2020-04-21,Washington,Florida,12133,9,0 +2020-04-22,Washington,Florida,12133,10,0 +2020-04-23,Washington,Florida,12133,10,0 +2020-04-24,Washington,Florida,12133,12,0 +2020-04-25,Washington,Florida,12133,12,0 +2020-04-26,Washington,Florida,12133,12,0 +2020-04-27,Washington,Florida,12133,12,0 +2020-04-28,Washington,Florida,12133,12,0 +2020-04-29,Washington,Florida,12133,12,0 +2020-04-30,Washington,Florida,12133,12,0 +2020-05-01,Washington,Florida,12133,12,0 +2020-05-02,Washington,Florida,12133,12,0 +2020-05-03,Washington,Florida,12133,12,0 +2020-05-04,Washington,Florida,12133,12,0 +2020-05-05,Washington,Florida,12133,12,0 +2020-05-06,Washington,Florida,12133,12,0 +2020-05-07,Washington,Florida,12133,12,0 +2020-05-08,Washington,Florida,12133,12,0 +2020-05-09,Washington,Florida,12133,12,0 +2020-05-10,Washington,Florida,12133,12,0 +2020-05-11,Washington,Florida,12133,12,0 +2020-05-12,Washington,Florida,12133,12,0 +2020-05-13,Washington,Florida,12133,12,0 +2020-05-14,Washington,Florida,12133,12,0 +2020-05-15,Washington,Florida,12133,14,0 +2020-05-16,Washington,Florida,12133,13,1 +2020-05-17,Washington,Florida,12133,13,1 +2020-05-18,Washington,Florida,12133,13,1 +2020-05-19,Washington,Florida,12133,14,1 +2020-05-20,Washington,Florida,12133,14,1 +2020-05-21,Washington,Florida,12133,19,1 +2020-05-22,Washington,Florida,12133,24,1 +2020-05-23,Washington,Florida,12133,26,1 +2020-05-24,Washington,Florida,12133,26,1 +2020-05-25,Washington,Florida,12133,45,1 +2020-05-26,Washington,Florida,12133,50,2 +2020-05-27,Washington,Florida,12133,51,2 +2020-05-28,Washington,Florida,12133,51,3 +2020-05-29,Washington,Florida,12133,54,4 +2020-05-30,Washington,Florida,12133,57,4 +2020-05-31,Washington,Florida,12133,57,4 +2020-06-01,Washington,Florida,12133,58,4 +2020-06-02,Washington,Florida,12133,66,4 +2020-06-03,Washington,Florida,12133,68,4 +2020-06-04,Washington,Florida,12133,74,4 +2020-06-05,Washington,Florida,12133,79,5 +2020-06-06,Washington,Florida,12133,83,6 +2020-06-07,Washington,Florida,12133,84,7 +2020-06-08,Washington,Florida,12133,84,7 +2020-06-09,Washington,Florida,12133,85,8 +2020-06-10,Washington,Florida,12133,85,8 +2020-06-11,Washington,Florida,12133,87,8 +2020-06-12,Washington,Florida,12133,87,9 +2020-06-13,Washington,Florida,12133,91,9 +2020-06-14,Washington,Florida,12133,92,9 +2020-06-15,Washington,Florida,12133,91,9 +2020-06-16,Washington,Florida,12133,94,9 +2020-06-17,Washington,Florida,12133,95,9 +2020-06-18,Washington,Florida,12133,95,9 +2020-06-19,Washington,Florida,12133,96,11 +2020-06-20,Washington,Florida,12133,96,11 +2020-06-21,Washington,Florida,12133,96,11 +2020-06-22,Washington,Florida,12133,96,11 +2020-06-23,Washington,Florida,12133,98,11 +2020-06-24,Washington,Florida,12133,101,11 +2020-06-25,Washington,Florida,12133,102,11 +2020-06-26,Washington,Florida,12133,101,12 +2020-06-27,Washington,Florida,12133,106,12 +2020-06-28,Washington,Florida,12133,110,12 +2020-06-29,Washington,Florida,12133,112,12 +2020-06-30,Washington,Florida,12133,113,12 +2020-07-01,Washington,Florida,12133,112,13 +2020-07-02,Washington,Florida,12133,117,13 +2020-07-03,Washington,Florida,12133,118,13 +2020-07-04,Washington,Florida,12133,120,13 +2020-07-05,Washington,Florida,12133,121,13 +2020-07-06,Washington,Florida,12133,121,13 +2020-07-07,Washington,Florida,12133,131,13 +2020-07-08,Washington,Florida,12133,136,13 +2020-07-09,Washington,Florida,12133,140,13 +2020-03-30,Appling,Georgia,13001,2,0 +2020-03-31,Appling,Georgia,13001,1,0 +2020-04-01,Appling,Georgia,13001,1,0 +2020-04-02,Appling,Georgia,13001,3,0 +2020-04-03,Appling,Georgia,13001,5,0 +2020-04-04,Appling,Georgia,13001,5,0 +2020-04-05,Appling,Georgia,13001,5,0 +2020-04-06,Appling,Georgia,13001,6,0 +2020-04-07,Appling,Georgia,13001,6,0 +2020-04-08,Appling,Georgia,13001,7,0 +2020-04-09,Appling,Georgia,13001,7,0 +2020-04-10,Appling,Georgia,13001,9,0 +2020-04-11,Appling,Georgia,13001,9,0 +2020-04-12,Appling,Georgia,13001,10,0 +2020-04-13,Appling,Georgia,13001,13,0 +2020-04-14,Appling,Georgia,13001,13,0 +2020-04-15,Appling,Georgia,13001,14,0 +2020-04-16,Appling,Georgia,13001,17,0 +2020-04-17,Appling,Georgia,13001,18,0 +2020-04-18,Appling,Georgia,13001,20,0 +2020-04-19,Appling,Georgia,13001,20,0 +2020-04-20,Appling,Georgia,13001,21,0 +2020-04-21,Appling,Georgia,13001,21,1 +2020-04-22,Appling,Georgia,13001,47,2 +2020-04-23,Appling,Georgia,13001,49,3 +2020-04-24,Appling,Georgia,13001,53,4 +2020-04-25,Appling,Georgia,13001,54,4 +2020-04-26,Appling,Georgia,13001,56,4 +2020-04-27,Appling,Georgia,13001,60,5 +2020-04-28,Appling,Georgia,13001,65,5 +2020-04-29,Appling,Georgia,13001,65,6 +2020-04-30,Appling,Georgia,13001,70,6 +2020-05-01,Appling,Georgia,13001,72,6 +2020-05-02,Appling,Georgia,13001,72,6 +2020-05-03,Appling,Georgia,13001,72,5 +2020-05-04,Appling,Georgia,13001,74,7 +2020-05-05,Appling,Georgia,13001,77,9 +2020-05-06,Appling,Georgia,13001,78,10 +2020-05-07,Appling,Georgia,13001,88,10 +2020-05-08,Appling,Georgia,13001,89,10 +2020-05-09,Appling,Georgia,13001,92,10 +2020-05-10,Appling,Georgia,13001,93,10 +2020-05-11,Appling,Georgia,13001,93,10 +2020-05-12,Appling,Georgia,13001,96,10 +2020-05-13,Appling,Georgia,13001,99,10 +2020-05-14,Appling,Georgia,13001,108,10 +2020-05-15,Appling,Georgia,13001,108,10 +2020-05-16,Appling,Georgia,13001,108,10 +2020-05-17,Appling,Georgia,13001,108,11 +2020-05-18,Appling,Georgia,13001,111,11 +2020-05-19,Appling,Georgia,13001,113,11 +2020-05-20,Appling,Georgia,13001,115,11 +2020-05-21,Appling,Georgia,13001,118,12 +2020-05-22,Appling,Georgia,13001,121,13 +2020-05-23,Appling,Georgia,13001,124,13 +2020-05-24,Appling,Georgia,13001,132,13 +2020-05-25,Appling,Georgia,13001,134,13 +2020-05-26,Appling,Georgia,13001,138,13 +2020-05-27,Appling,Georgia,13001,143,13 +2020-05-28,Appling,Georgia,13001,148,13 +2020-05-29,Appling,Georgia,13001,156,13 +2020-05-30,Appling,Georgia,13001,156,13 +2020-05-31,Appling,Georgia,13001,159,13 +2020-06-01,Appling,Georgia,13001,161,13 +2020-06-02,Appling,Georgia,13001,161,13 +2020-06-03,Appling,Georgia,13001,170,13 +2020-06-04,Appling,Georgia,13001,172,13 +2020-06-05,Appling,Georgia,13001,180,13 +2020-06-06,Appling,Georgia,13001,185,13 +2020-06-07,Appling,Georgia,13001,185,13 +2020-06-08,Appling,Georgia,13001,189,13 +2020-06-09,Appling,Georgia,13001,197,13 +2020-06-10,Appling,Georgia,13001,199,13 +2020-06-11,Appling,Georgia,13001,200,13 +2020-06-12,Appling,Georgia,13001,199,13 +2020-06-13,Appling,Georgia,13001,204,13 +2020-06-14,Appling,Georgia,13001,205,13 +2020-06-15,Appling,Georgia,13001,204,13 +2020-06-16,Appling,Georgia,13001,207,13 +2020-06-17,Appling,Georgia,13001,208,13 +2020-06-18,Appling,Georgia,13001,208,13 +2020-06-19,Appling,Georgia,13001,214,13 +2020-06-20,Appling,Georgia,13001,216,13 +2020-06-21,Appling,Georgia,13001,217,13 +2020-06-22,Appling,Georgia,13001,220,13 +2020-06-23,Appling,Georgia,13001,223,13 +2020-06-24,Appling,Georgia,13001,227,13 +2020-06-25,Appling,Georgia,13001,230,14 +2020-06-26,Appling,Georgia,13001,241,14 +2020-06-27,Appling,Georgia,13001,247,14 +2020-06-28,Appling,Georgia,13001,254,14 +2020-06-29,Appling,Georgia,13001,256,14 +2020-06-30,Appling,Georgia,13001,258,14 +2020-07-01,Appling,Georgia,13001,260,14 +2020-07-02,Appling,Georgia,13001,266,14 +2020-07-03,Appling,Georgia,13001,274,14 +2020-07-04,Appling,Georgia,13001,285,14 +2020-07-05,Appling,Georgia,13001,290,14 +2020-07-06,Appling,Georgia,13001,299,14 +2020-07-07,Appling,Georgia,13001,302,14 +2020-07-08,Appling,Georgia,13001,310,14 +2020-07-09,Appling,Georgia,13001,313,14 +2020-04-06,Atkinson,Georgia,13003,3,0 +2020-04-07,Atkinson,Georgia,13003,4,0 +2020-04-08,Atkinson,Georgia,13003,4,0 +2020-04-09,Atkinson,Georgia,13003,4,0 +2020-04-10,Atkinson,Georgia,13003,2,0 +2020-04-11,Atkinson,Georgia,13003,2,0 +2020-04-12,Atkinson,Georgia,13003,2,0 +2020-04-13,Atkinson,Georgia,13003,2,0 +2020-04-14,Atkinson,Georgia,13003,2,0 +2020-04-15,Atkinson,Georgia,13003,2,0 +2020-04-16,Atkinson,Georgia,13003,4,0 +2020-04-17,Atkinson,Georgia,13003,5,0 +2020-04-18,Atkinson,Georgia,13003,5,0 +2020-04-19,Atkinson,Georgia,13003,5,0 +2020-04-20,Atkinson,Georgia,13003,5,0 +2020-04-21,Atkinson,Georgia,13003,5,0 +2020-04-22,Atkinson,Georgia,13003,5,0 +2020-04-23,Atkinson,Georgia,13003,7,0 +2020-04-24,Atkinson,Georgia,13003,7,0 +2020-04-25,Atkinson,Georgia,13003,7,0 +2020-04-26,Atkinson,Georgia,13003,7,0 +2020-04-27,Atkinson,Georgia,13003,7,0 +2020-04-28,Atkinson,Georgia,13003,7,0 +2020-04-29,Atkinson,Georgia,13003,7,1 +2020-04-30,Atkinson,Georgia,13003,8,1 +2020-05-01,Atkinson,Georgia,13003,9,1 +2020-05-02,Atkinson,Georgia,13003,11,1 +2020-05-03,Atkinson,Georgia,13003,11,1 +2020-05-04,Atkinson,Georgia,13003,12,1 +2020-05-05,Atkinson,Georgia,13003,14,1 +2020-05-06,Atkinson,Georgia,13003,18,1 +2020-05-07,Atkinson,Georgia,13003,19,1 +2020-05-08,Atkinson,Georgia,13003,20,1 +2020-05-09,Atkinson,Georgia,13003,20,1 +2020-05-10,Atkinson,Georgia,13003,20,1 +2020-05-11,Atkinson,Georgia,13003,20,1 +2020-05-12,Atkinson,Georgia,13003,20,1 +2020-05-13,Atkinson,Georgia,13003,20,2 +2020-05-14,Atkinson,Georgia,13003,20,2 +2020-05-15,Atkinson,Georgia,13003,20,2 +2020-05-16,Atkinson,Georgia,13003,20,2 +2020-05-17,Atkinson,Georgia,13003,20,2 +2020-05-18,Atkinson,Georgia,13003,22,2 +2020-05-19,Atkinson,Georgia,13003,22,2 +2020-05-20,Atkinson,Georgia,13003,24,2 +2020-05-21,Atkinson,Georgia,13003,26,2 +2020-05-22,Atkinson,Georgia,13003,26,2 +2020-05-23,Atkinson,Georgia,13003,26,2 +2020-05-24,Atkinson,Georgia,13003,29,2 +2020-05-25,Atkinson,Georgia,13003,31,2 +2020-05-26,Atkinson,Georgia,13003,35,2 +2020-05-27,Atkinson,Georgia,13003,38,2 +2020-05-28,Atkinson,Georgia,13003,41,2 +2020-05-29,Atkinson,Georgia,13003,46,2 +2020-05-30,Atkinson,Georgia,13003,47,2 +2020-05-31,Atkinson,Georgia,13003,48,2 +2020-06-01,Atkinson,Georgia,13003,51,2 +2020-06-02,Atkinson,Georgia,13003,51,2 +2020-06-03,Atkinson,Georgia,13003,53,2 +2020-06-04,Atkinson,Georgia,13003,54,2 +2020-06-05,Atkinson,Georgia,13003,55,2 +2020-06-06,Atkinson,Georgia,13003,60,2 +2020-06-07,Atkinson,Georgia,13003,60,2 +2020-06-08,Atkinson,Georgia,13003,60,2 +2020-06-09,Atkinson,Georgia,13003,62,2 +2020-06-10,Atkinson,Georgia,13003,62,2 +2020-06-11,Atkinson,Georgia,13003,71,2 +2020-06-12,Atkinson,Georgia,13003,70,2 +2020-06-13,Atkinson,Georgia,13003,70,2 +2020-06-14,Atkinson,Georgia,13003,75,2 +2020-06-15,Atkinson,Georgia,13003,76,2 +2020-06-16,Atkinson,Georgia,13003,77,2 +2020-06-17,Atkinson,Georgia,13003,80,2 +2020-06-18,Atkinson,Georgia,13003,83,2 +2020-06-19,Atkinson,Georgia,13003,89,2 +2020-06-20,Atkinson,Georgia,13003,90,2 +2020-06-21,Atkinson,Georgia,13003,91,2 +2020-06-22,Atkinson,Georgia,13003,97,2 +2020-06-23,Atkinson,Georgia,13003,99,2 +2020-06-24,Atkinson,Georgia,13003,108,2 +2020-06-25,Atkinson,Georgia,13003,109,2 +2020-06-26,Atkinson,Georgia,13003,117,2 +2020-06-27,Atkinson,Georgia,13003,119,2 +2020-06-28,Atkinson,Georgia,13003,137,2 +2020-06-29,Atkinson,Georgia,13003,139,2 +2020-06-30,Atkinson,Georgia,13003,147,2 +2020-07-01,Atkinson,Georgia,13003,152,2 +2020-07-02,Atkinson,Georgia,13003,155,2 +2020-07-03,Atkinson,Georgia,13003,158,2 +2020-07-04,Atkinson,Georgia,13003,162,2 +2020-07-05,Atkinson,Georgia,13003,162,2 +2020-07-06,Atkinson,Georgia,13003,175,2 +2020-07-07,Atkinson,Georgia,13003,179,2 +2020-07-08,Atkinson,Georgia,13003,179,2 +2020-07-09,Atkinson,Georgia,13003,182,2 +2020-03-29,Bacon,Georgia,13005,1,0 +2020-03-30,Bacon,Georgia,13005,1,0 +2020-03-31,Bacon,Georgia,13005,5,0 +2020-04-01,Bacon,Georgia,13005,6,0 +2020-04-02,Bacon,Georgia,13005,6,0 +2020-04-03,Bacon,Georgia,13005,6,0 +2020-04-04,Bacon,Georgia,13005,6,0 +2020-04-05,Bacon,Georgia,13005,7,0 +2020-04-06,Bacon,Georgia,13005,10,0 +2020-04-07,Bacon,Georgia,13005,11,0 +2020-04-08,Bacon,Georgia,13005,13,0 +2020-04-09,Bacon,Georgia,13005,13,0 +2020-04-10,Bacon,Georgia,13005,14,0 +2020-04-11,Bacon,Georgia,13005,14,0 +2020-04-12,Bacon,Georgia,13005,14,0 +2020-04-13,Bacon,Georgia,13005,14,0 +2020-04-14,Bacon,Georgia,13005,14,0 +2020-04-15,Bacon,Georgia,13005,14,0 +2020-04-16,Bacon,Georgia,13005,17,1 +2020-04-17,Bacon,Georgia,13005,17,1 +2020-04-18,Bacon,Georgia,13005,18,1 +2020-04-19,Bacon,Georgia,13005,18,1 +2020-04-20,Bacon,Georgia,13005,19,1 +2020-04-21,Bacon,Georgia,13005,19,1 +2020-04-22,Bacon,Georgia,13005,20,1 +2020-04-23,Bacon,Georgia,13005,20,1 +2020-04-24,Bacon,Georgia,13005,20,1 +2020-04-25,Bacon,Georgia,13005,21,1 +2020-04-26,Bacon,Georgia,13005,21,1 +2020-04-27,Bacon,Georgia,13005,22,1 +2020-04-28,Bacon,Georgia,13005,22,1 +2020-04-29,Bacon,Georgia,13005,22,1 +2020-04-30,Bacon,Georgia,13005,24,1 +2020-05-01,Bacon,Georgia,13005,25,1 +2020-05-02,Bacon,Georgia,13005,26,1 +2020-05-03,Bacon,Georgia,13005,27,1 +2020-05-04,Bacon,Georgia,13005,28,1 +2020-05-05,Bacon,Georgia,13005,29,1 +2020-05-06,Bacon,Georgia,13005,29,1 +2020-05-07,Bacon,Georgia,13005,32,1 +2020-05-08,Bacon,Georgia,13005,35,1 +2020-05-09,Bacon,Georgia,13005,41,1 +2020-05-10,Bacon,Georgia,13005,43,1 +2020-05-11,Bacon,Georgia,13005,43,1 +2020-05-12,Bacon,Georgia,13005,51,2 +2020-05-13,Bacon,Georgia,13005,48,2 +2020-05-14,Bacon,Georgia,13005,51,2 +2020-05-15,Bacon,Georgia,13005,59,2 +2020-05-16,Bacon,Georgia,13005,59,2 +2020-05-17,Bacon,Georgia,13005,57,2 +2020-05-18,Bacon,Georgia,13005,61,2 +2020-05-19,Bacon,Georgia,13005,71,2 +2020-05-20,Bacon,Georgia,13005,68,2 +2020-05-21,Bacon,Georgia,13005,73,2 +2020-05-22,Bacon,Georgia,13005,73,2 +2020-05-23,Bacon,Georgia,13005,76,2 +2020-05-24,Bacon,Georgia,13005,75,2 +2020-05-25,Bacon,Georgia,13005,77,2 +2020-05-26,Bacon,Georgia,13005,80,2 +2020-05-27,Bacon,Georgia,13005,83,2 +2020-05-28,Bacon,Georgia,13005,91,3 +2020-05-29,Bacon,Georgia,13005,92,3 +2020-05-30,Bacon,Georgia,13005,108,3 +2020-05-31,Bacon,Georgia,13005,122,3 +2020-06-01,Bacon,Georgia,13005,129,3 +2020-06-02,Bacon,Georgia,13005,131,3 +2020-06-03,Bacon,Georgia,13005,136,3 +2020-06-04,Bacon,Georgia,13005,137,3 +2020-06-05,Bacon,Georgia,13005,141,3 +2020-06-06,Bacon,Georgia,13005,144,3 +2020-06-07,Bacon,Georgia,13005,144,3 +2020-06-08,Bacon,Georgia,13005,146,3 +2020-06-09,Bacon,Georgia,13005,152,3 +2020-06-10,Bacon,Georgia,13005,152,3 +2020-06-11,Bacon,Georgia,13005,164,3 +2020-06-12,Bacon,Georgia,13005,165,3 +2020-06-13,Bacon,Georgia,13005,174,3 +2020-06-14,Bacon,Georgia,13005,176,3 +2020-06-15,Bacon,Georgia,13005,177,3 +2020-06-16,Bacon,Georgia,13005,181,3 +2020-06-17,Bacon,Georgia,13005,179,3 +2020-06-18,Bacon,Georgia,13005,186,3 +2020-06-19,Bacon,Georgia,13005,194,3 +2020-06-20,Bacon,Georgia,13005,194,4 +2020-06-21,Bacon,Georgia,13005,196,4 +2020-06-22,Bacon,Georgia,13005,204,4 +2020-06-23,Bacon,Georgia,13005,207,4 +2020-06-24,Bacon,Georgia,13005,210,4 +2020-06-25,Bacon,Georgia,13005,210,4 +2020-06-26,Bacon,Georgia,13005,217,4 +2020-06-27,Bacon,Georgia,13005,226,4 +2020-06-28,Bacon,Georgia,13005,228,4 +2020-06-29,Bacon,Georgia,13005,229,4 +2020-06-30,Bacon,Georgia,13005,236,4 +2020-07-01,Bacon,Georgia,13005,244,4 +2020-07-02,Bacon,Georgia,13005,254,4 +2020-07-03,Bacon,Georgia,13005,274,4 +2020-07-04,Bacon,Georgia,13005,280,4 +2020-07-05,Bacon,Georgia,13005,281,4 +2020-07-06,Bacon,Georgia,13005,282,4 +2020-07-07,Bacon,Georgia,13005,283,4 +2020-07-08,Bacon,Georgia,13005,286,5 +2020-07-09,Bacon,Georgia,13005,289,5 +2020-03-24,Baker,Georgia,13007,3,1 +2020-03-25,Baker,Georgia,13007,3,1 +2020-03-26,Baker,Georgia,13007,1,1 +2020-03-27,Baker,Georgia,13007,1,1 +2020-03-28,Baker,Georgia,13007,1,1 +2020-03-29,Baker,Georgia,13007,1,1 +2020-03-30,Baker,Georgia,13007,1,1 +2020-03-31,Baker,Georgia,13007,4,1 +2020-04-01,Baker,Georgia,13007,4,1 +2020-04-02,Baker,Georgia,13007,4,1 +2020-04-03,Baker,Georgia,13007,4,1 +2020-04-04,Baker,Georgia,13007,5,1 +2020-04-05,Baker,Georgia,13007,5,1 +2020-04-06,Baker,Georgia,13007,5,1 +2020-04-07,Baker,Georgia,13007,10,2 +2020-04-08,Baker,Georgia,13007,9,2 +2020-04-09,Baker,Georgia,13007,11,2 +2020-04-10,Baker,Georgia,13007,11,2 +2020-04-11,Baker,Georgia,13007,13,2 +2020-04-12,Baker,Georgia,13007,14,2 +2020-04-13,Baker,Georgia,13007,16,2 +2020-04-14,Baker,Georgia,13007,16,2 +2020-04-15,Baker,Georgia,13007,17,2 +2020-04-16,Baker,Georgia,13007,18,2 +2020-04-17,Baker,Georgia,13007,16,2 +2020-04-18,Baker,Georgia,13007,16,2 +2020-04-19,Baker,Georgia,13007,17,2 +2020-04-20,Baker,Georgia,13007,20,2 +2020-04-21,Baker,Georgia,13007,20,2 +2020-04-22,Baker,Georgia,13007,18,2 +2020-04-23,Baker,Georgia,13007,19,2 +2020-04-24,Baker,Georgia,13007,19,2 +2020-04-25,Baker,Georgia,13007,19,2 +2020-04-26,Baker,Georgia,13007,19,2 +2020-04-27,Baker,Georgia,13007,21,2 +2020-04-28,Baker,Georgia,13007,21,2 +2020-04-29,Baker,Georgia,13007,22,2 +2020-04-30,Baker,Georgia,13007,23,2 +2020-05-01,Baker,Georgia,13007,23,2 +2020-05-02,Baker,Georgia,13007,23,2 +2020-05-03,Baker,Georgia,13007,23,2 +2020-05-04,Baker,Georgia,13007,26,2 +2020-05-05,Baker,Georgia,13007,26,2 +2020-05-06,Baker,Georgia,13007,28,2 +2020-05-07,Baker,Georgia,13007,29,2 +2020-05-08,Baker,Georgia,13007,31,2 +2020-05-09,Baker,Georgia,13007,31,2 +2020-05-10,Baker,Georgia,13007,31,2 +2020-05-11,Baker,Georgia,13007,33,2 +2020-05-12,Baker,Georgia,13007,34,2 +2020-05-13,Baker,Georgia,13007,34,2 +2020-05-14,Baker,Georgia,13007,33,2 +2020-05-15,Baker,Georgia,13007,33,2 +2020-05-16,Baker,Georgia,13007,33,2 +2020-05-17,Baker,Georgia,13007,33,2 +2020-05-18,Baker,Georgia,13007,33,2 +2020-05-19,Baker,Georgia,13007,32,2 +2020-05-20,Baker,Georgia,13007,32,2 +2020-05-21,Baker,Georgia,13007,32,1 +2020-05-22,Baker,Georgia,13007,32,1 +2020-05-23,Baker,Georgia,13007,33,2 +2020-05-24,Baker,Georgia,13007,33,2 +2020-05-25,Baker,Georgia,13007,33,2 +2020-05-26,Baker,Georgia,13007,36,2 +2020-05-27,Baker,Georgia,13007,34,2 +2020-05-28,Baker,Georgia,13007,34,2 +2020-05-29,Baker,Georgia,13007,34,2 +2020-05-30,Baker,Georgia,13007,34,2 +2020-05-31,Baker,Georgia,13007,34,2 +2020-06-01,Baker,Georgia,13007,35,3 +2020-06-02,Baker,Georgia,13007,34,2 +2020-06-03,Baker,Georgia,13007,34,2 +2020-06-04,Baker,Georgia,13007,35,3 +2020-06-05,Baker,Georgia,13007,35,3 +2020-06-06,Baker,Georgia,13007,36,3 +2020-06-07,Baker,Georgia,13007,36,3 +2020-06-08,Baker,Georgia,13007,37,3 +2020-06-09,Baker,Georgia,13007,37,3 +2020-06-10,Baker,Georgia,13007,37,3 +2020-06-11,Baker,Georgia,13007,37,3 +2020-06-12,Baker,Georgia,13007,37,3 +2020-06-13,Baker,Georgia,13007,37,3 +2020-06-14,Baker,Georgia,13007,37,3 +2020-06-15,Baker,Georgia,13007,37,3 +2020-06-16,Baker,Georgia,13007,36,3 +2020-06-17,Baker,Georgia,13007,37,4 +2020-06-18,Baker,Georgia,13007,36,3 +2020-06-19,Baker,Georgia,13007,36,3 +2020-06-20,Baker,Georgia,13007,36,3 +2020-06-21,Baker,Georgia,13007,36,3 +2020-06-22,Baker,Georgia,13007,36,3 +2020-06-23,Baker,Georgia,13007,36,3 +2020-06-24,Baker,Georgia,13007,37,3 +2020-06-25,Baker,Georgia,13007,37,3 +2020-06-26,Baker,Georgia,13007,43,3 +2020-06-27,Baker,Georgia,13007,43,3 +2020-06-28,Baker,Georgia,13007,43,3 +2020-06-29,Baker,Georgia,13007,43,3 +2020-06-30,Baker,Georgia,13007,43,3 +2020-07-01,Baker,Georgia,13007,43,3 +2020-07-02,Baker,Georgia,13007,43,3 +2020-07-03,Baker,Georgia,13007,43,3 +2020-07-04,Baker,Georgia,13007,43,3 +2020-07-05,Baker,Georgia,13007,44,3 +2020-07-06,Baker,Georgia,13007,44,3 +2020-07-07,Baker,Georgia,13007,44,3 +2020-07-08,Baker,Georgia,13007,43,3 +2020-07-09,Baker,Georgia,13007,43,3 +2020-03-21,Baldwin,Georgia,13009,2,0 +2020-03-22,Baldwin,Georgia,13009,2,0 +2020-03-23,Baldwin,Georgia,13009,2,0 +2020-03-24,Baldwin,Georgia,13009,2,0 +2020-03-25,Baldwin,Georgia,13009,2,0 +2020-03-26,Baldwin,Georgia,13009,2,0 +2020-03-27,Baldwin,Georgia,13009,2,0 +2020-03-28,Baldwin,Georgia,13009,2,0 +2020-03-29,Baldwin,Georgia,13009,2,0 +2020-03-30,Baldwin,Georgia,13009,3,1 +2020-03-31,Baldwin,Georgia,13009,5,1 +2020-04-01,Baldwin,Georgia,13009,7,1 +2020-04-02,Baldwin,Georgia,13009,7,1 +2020-04-03,Baldwin,Georgia,13009,11,1 +2020-04-04,Baldwin,Georgia,13009,11,1 +2020-04-05,Baldwin,Georgia,13009,15,1 +2020-04-06,Baldwin,Georgia,13009,20,1 +2020-04-07,Baldwin,Georgia,13009,27,1 +2020-04-08,Baldwin,Georgia,13009,30,1 +2020-04-09,Baldwin,Georgia,13009,32,1 +2020-04-10,Baldwin,Georgia,13009,35,1 +2020-04-11,Baldwin,Georgia,13009,47,1 +2020-04-12,Baldwin,Georgia,13009,53,2 +2020-04-13,Baldwin,Georgia,13009,54,2 +2020-04-14,Baldwin,Georgia,13009,69,2 +2020-04-15,Baldwin,Georgia,13009,93,2 +2020-04-16,Baldwin,Georgia,13009,100,2 +2020-04-17,Baldwin,Georgia,13009,112,2 +2020-04-18,Baldwin,Georgia,13009,108,2 +2020-04-19,Baldwin,Georgia,13009,112,3 +2020-04-20,Baldwin,Georgia,13009,130,4 +2020-04-21,Baldwin,Georgia,13009,135,4 +2020-04-22,Baldwin,Georgia,13009,155,4 +2020-04-23,Baldwin,Georgia,13009,161,4 +2020-04-24,Baldwin,Georgia,13009,169,5 +2020-04-25,Baldwin,Georgia,13009,180,6 +2020-04-26,Baldwin,Georgia,13009,181,6 +2020-04-27,Baldwin,Georgia,13009,193,6 +2020-04-28,Baldwin,Georgia,13009,205,6 +2020-04-29,Baldwin,Georgia,13009,210,8 +2020-04-30,Baldwin,Georgia,13009,215,8 +2020-05-01,Baldwin,Georgia,13009,226,8 +2020-05-02,Baldwin,Georgia,13009,229,8 +2020-05-03,Baldwin,Georgia,13009,233,8 +2020-05-04,Baldwin,Georgia,13009,239,9 +2020-05-05,Baldwin,Georgia,13009,260,10 +2020-05-06,Baldwin,Georgia,13009,263,10 +2020-05-07,Baldwin,Georgia,13009,270,10 +2020-05-08,Baldwin,Georgia,13009,271,12 +2020-05-09,Baldwin,Georgia,13009,270,12 +2020-05-10,Baldwin,Georgia,13009,271,12 +2020-05-11,Baldwin,Georgia,13009,275,13 +2020-05-12,Baldwin,Georgia,13009,276,12 +2020-05-13,Baldwin,Georgia,13009,277,12 +2020-05-14,Baldwin,Georgia,13009,280,12 +2020-05-15,Baldwin,Georgia,13009,282,12 +2020-05-16,Baldwin,Georgia,13009,284,12 +2020-05-17,Baldwin,Georgia,13009,287,14 +2020-05-18,Baldwin,Georgia,13009,290,14 +2020-05-19,Baldwin,Georgia,13009,292,14 +2020-05-20,Baldwin,Georgia,13009,296,14 +2020-05-21,Baldwin,Georgia,13009,299,16 +2020-05-22,Baldwin,Georgia,13009,329,19 +2020-05-23,Baldwin,Georgia,13009,329,24 +2020-05-24,Baldwin,Georgia,13009,331,24 +2020-05-25,Baldwin,Georgia,13009,330,25 +2020-05-26,Baldwin,Georgia,13009,335,25 +2020-05-27,Baldwin,Georgia,13009,337,26 +2020-05-28,Baldwin,Georgia,13009,342,26 +2020-05-29,Baldwin,Georgia,13009,348,26 +2020-05-30,Baldwin,Georgia,13009,343,26 +2020-05-31,Baldwin,Georgia,13009,345,26 +2020-06-01,Baldwin,Georgia,13009,349,26 +2020-06-02,Baldwin,Georgia,13009,350,26 +2020-06-03,Baldwin,Georgia,13009,352,27 +2020-06-04,Baldwin,Georgia,13009,380,27 +2020-06-05,Baldwin,Georgia,13009,387,27 +2020-06-06,Baldwin,Georgia,13009,387,27 +2020-06-07,Baldwin,Georgia,13009,388,27 +2020-06-08,Baldwin,Georgia,13009,388,29 +2020-06-09,Baldwin,Georgia,13009,393,29 +2020-06-10,Baldwin,Georgia,13009,407,30 +2020-06-11,Baldwin,Georgia,13009,414,30 +2020-06-12,Baldwin,Georgia,13009,421,30 +2020-06-13,Baldwin,Georgia,13009,423,31 +2020-06-14,Baldwin,Georgia,13009,426,31 +2020-06-15,Baldwin,Georgia,13009,429,32 +2020-06-16,Baldwin,Georgia,13009,430,32 +2020-06-17,Baldwin,Georgia,13009,431,33 +2020-06-18,Baldwin,Georgia,13009,433,33 +2020-06-19,Baldwin,Georgia,13009,435,33 +2020-06-20,Baldwin,Georgia,13009,441,33 +2020-06-21,Baldwin,Georgia,13009,444,33 +2020-06-22,Baldwin,Georgia,13009,450,33 +2020-06-23,Baldwin,Georgia,13009,457,32 +2020-06-24,Baldwin,Georgia,13009,463,32 +2020-06-25,Baldwin,Georgia,13009,465,33 +2020-06-26,Baldwin,Georgia,13009,470,33 +2020-06-27,Baldwin,Georgia,13009,476,33 +2020-06-28,Baldwin,Georgia,13009,479,33 +2020-06-29,Baldwin,Georgia,13009,483,33 +2020-06-30,Baldwin,Georgia,13009,499,34 +2020-07-01,Baldwin,Georgia,13009,517,34 +2020-07-02,Baldwin,Georgia,13009,543,34 +2020-07-03,Baldwin,Georgia,13009,554,34 +2020-07-04,Baldwin,Georgia,13009,564,34 +2020-07-05,Baldwin,Georgia,13009,566,34 +2020-07-06,Baldwin,Georgia,13009,570,34 +2020-07-07,Baldwin,Georgia,13009,582,34 +2020-07-08,Baldwin,Georgia,13009,612,34 +2020-07-09,Baldwin,Georgia,13009,617,34 +2020-03-30,Banks,Georgia,13011,1,0 +2020-03-31,Banks,Georgia,13011,3,0 +2020-04-01,Banks,Georgia,13011,3,0 +2020-04-02,Banks,Georgia,13011,3,0 +2020-04-03,Banks,Georgia,13011,3,0 +2020-04-04,Banks,Georgia,13011,3,0 +2020-04-05,Banks,Georgia,13011,3,0 +2020-04-06,Banks,Georgia,13011,2,0 +2020-04-07,Banks,Georgia,13011,4,0 +2020-04-08,Banks,Georgia,13011,4,0 +2020-04-09,Banks,Georgia,13011,5,0 +2020-04-10,Banks,Georgia,13011,7,0 +2020-04-11,Banks,Georgia,13011,7,0 +2020-04-12,Banks,Georgia,13011,7,0 +2020-04-13,Banks,Georgia,13011,7,0 +2020-04-14,Banks,Georgia,13011,8,0 +2020-04-15,Banks,Georgia,13011,9,0 +2020-04-16,Banks,Georgia,13011,13,0 +2020-04-17,Banks,Georgia,13011,13,0 +2020-04-18,Banks,Georgia,13011,13,0 +2020-04-19,Banks,Georgia,13011,14,0 +2020-04-20,Banks,Georgia,13011,15,0 +2020-04-21,Banks,Georgia,13011,16,0 +2020-04-22,Banks,Georgia,13011,16,0 +2020-04-23,Banks,Georgia,13011,17,0 +2020-04-24,Banks,Georgia,13011,18,0 +2020-04-25,Banks,Georgia,13011,18,0 +2020-04-26,Banks,Georgia,13011,18,0 +2020-04-27,Banks,Georgia,13011,17,0 +2020-04-28,Banks,Georgia,13011,18,0 +2020-04-29,Banks,Georgia,13011,20,0 +2020-04-30,Banks,Georgia,13011,24,0 +2020-05-01,Banks,Georgia,13011,25,0 +2020-05-02,Banks,Georgia,13011,31,0 +2020-05-03,Banks,Georgia,13011,31,0 +2020-05-04,Banks,Georgia,13011,29,0 +2020-05-05,Banks,Georgia,13011,29,0 +2020-05-06,Banks,Georgia,13011,32,0 +2020-05-07,Banks,Georgia,13011,35,0 +2020-05-08,Banks,Georgia,13011,35,0 +2020-05-09,Banks,Georgia,13011,36,0 +2020-05-10,Banks,Georgia,13011,36,0 +2020-05-11,Banks,Georgia,13011,36,0 +2020-05-12,Banks,Georgia,13011,38,0 +2020-05-13,Banks,Georgia,13011,39,0 +2020-05-14,Banks,Georgia,13011,41,0 +2020-05-15,Banks,Georgia,13011,43,0 +2020-05-16,Banks,Georgia,13011,43,0 +2020-05-17,Banks,Georgia,13011,43,0 +2020-05-18,Banks,Georgia,13011,43,0 +2020-05-19,Banks,Georgia,13011,46,0 +2020-05-20,Banks,Georgia,13011,46,0 +2020-05-21,Banks,Georgia,13011,68,0 +2020-05-22,Banks,Georgia,13011,73,0 +2020-05-23,Banks,Georgia,13011,73,0 +2020-05-24,Banks,Georgia,13011,73,0 +2020-05-25,Banks,Georgia,13011,73,0 +2020-05-26,Banks,Georgia,13011,80,0 +2020-05-27,Banks,Georgia,13011,88,0 +2020-05-28,Banks,Georgia,13011,92,0 +2020-05-29,Banks,Georgia,13011,88,1 +2020-05-30,Banks,Georgia,13011,88,1 +2020-05-31,Banks,Georgia,13011,88,1 +2020-06-01,Banks,Georgia,13011,92,1 +2020-06-02,Banks,Georgia,13011,93,1 +2020-06-03,Banks,Georgia,13011,86,1 +2020-06-04,Banks,Georgia,13011,87,1 +2020-06-05,Banks,Georgia,13011,88,1 +2020-06-06,Banks,Georgia,13011,88,1 +2020-06-07,Banks,Georgia,13011,90,1 +2020-06-08,Banks,Georgia,13011,92,1 +2020-06-09,Banks,Georgia,13011,99,1 +2020-06-10,Banks,Georgia,13011,100,1 +2020-06-11,Banks,Georgia,13011,103,1 +2020-06-12,Banks,Georgia,13011,107,1 +2020-06-13,Banks,Georgia,13011,108,1 +2020-06-14,Banks,Georgia,13011,108,1 +2020-06-15,Banks,Georgia,13011,109,1 +2020-06-16,Banks,Georgia,13011,110,1 +2020-06-17,Banks,Georgia,13011,108,0 +2020-06-18,Banks,Georgia,13011,111,0 +2020-06-19,Banks,Georgia,13011,113,0 +2020-06-20,Banks,Georgia,13011,114,0 +2020-06-21,Banks,Georgia,13011,114,0 +2020-06-22,Banks,Georgia,13011,114,0 +2020-06-23,Banks,Georgia,13011,116,0 +2020-06-24,Banks,Georgia,13011,122,0 +2020-06-25,Banks,Georgia,13011,124,0 +2020-06-26,Banks,Georgia,13011,128,0 +2020-06-27,Banks,Georgia,13011,129,0 +2020-06-28,Banks,Georgia,13011,130,0 +2020-06-29,Banks,Georgia,13011,130,0 +2020-06-30,Banks,Georgia,13011,133,0 +2020-07-01,Banks,Georgia,13011,138,0 +2020-07-02,Banks,Georgia,13011,140,1 +2020-07-03,Banks,Georgia,13011,141,1 +2020-07-04,Banks,Georgia,13011,142,1 +2020-07-05,Banks,Georgia,13011,144,1 +2020-07-06,Banks,Georgia,13011,146,2 +2020-07-07,Banks,Georgia,13011,143,1 +2020-07-08,Banks,Georgia,13011,146,1 +2020-07-09,Banks,Georgia,13011,147,1 +2020-03-22,Barrow,Georgia,13013,1,1 +2020-03-23,Barrow,Georgia,13013,1,1 +2020-03-24,Barrow,Georgia,13013,2,1 +2020-03-25,Barrow,Georgia,13013,2,1 +2020-03-26,Barrow,Georgia,13013,5,1 +2020-03-27,Barrow,Georgia,13013,7,1 +2020-03-28,Barrow,Georgia,13013,7,1 +2020-03-29,Barrow,Georgia,13013,6,1 +2020-03-30,Barrow,Georgia,13013,9,2 +2020-03-31,Barrow,Georgia,13013,19,2 +2020-04-01,Barrow,Georgia,13013,20,2 +2020-04-02,Barrow,Georgia,13013,20,2 +2020-04-03,Barrow,Georgia,13013,22,2 +2020-04-04,Barrow,Georgia,13013,25,2 +2020-04-05,Barrow,Georgia,13013,25,2 +2020-04-06,Barrow,Georgia,13013,29,3 +2020-04-07,Barrow,Georgia,13013,42,3 +2020-04-08,Barrow,Georgia,13013,46,3 +2020-04-09,Barrow,Georgia,13013,48,3 +2020-04-10,Barrow,Georgia,13013,51,3 +2020-04-11,Barrow,Georgia,13013,51,3 +2020-04-12,Barrow,Georgia,13013,55,3 +2020-04-13,Barrow,Georgia,13013,57,3 +2020-04-14,Barrow,Georgia,13013,65,3 +2020-04-15,Barrow,Georgia,13013,68,3 +2020-04-16,Barrow,Georgia,13013,81,3 +2020-04-17,Barrow,Georgia,13013,85,3 +2020-04-18,Barrow,Georgia,13013,87,3 +2020-04-19,Barrow,Georgia,13013,90,3 +2020-04-20,Barrow,Georgia,13013,93,3 +2020-04-21,Barrow,Georgia,13013,101,3 +2020-04-22,Barrow,Georgia,13013,103,3 +2020-04-23,Barrow,Georgia,13013,106,3 +2020-04-24,Barrow,Georgia,13013,111,3 +2020-04-25,Barrow,Georgia,13013,111,3 +2020-04-26,Barrow,Georgia,13013,108,3 +2020-04-27,Barrow,Georgia,13013,113,4 +2020-04-28,Barrow,Georgia,13013,125,4 +2020-04-29,Barrow,Georgia,13013,131,4 +2020-04-30,Barrow,Georgia,13013,133,4 +2020-05-01,Barrow,Georgia,13013,141,4 +2020-05-02,Barrow,Georgia,13013,155,4 +2020-05-03,Barrow,Georgia,13013,159,4 +2020-05-04,Barrow,Georgia,13013,167,4 +2020-05-05,Barrow,Georgia,13013,177,5 +2020-05-06,Barrow,Georgia,13013,197,5 +2020-05-07,Barrow,Georgia,13013,191,5 +2020-05-08,Barrow,Georgia,13013,192,5 +2020-05-09,Barrow,Georgia,13013,194,5 +2020-05-10,Barrow,Georgia,13013,193,5 +2020-05-11,Barrow,Georgia,13013,195,6 +2020-05-12,Barrow,Georgia,13013,232,7 +2020-05-13,Barrow,Georgia,13013,254,7 +2020-05-14,Barrow,Georgia,13013,255,7 +2020-05-15,Barrow,Georgia,13013,258,8 +2020-05-16,Barrow,Georgia,13013,258,8 +2020-05-17,Barrow,Georgia,13013,257,8 +2020-05-18,Barrow,Georgia,13013,263,8 +2020-05-19,Barrow,Georgia,13013,267,8 +2020-05-20,Barrow,Georgia,13013,272,8 +2020-05-21,Barrow,Georgia,13013,276,9 +2020-05-22,Barrow,Georgia,13013,281,11 +2020-05-23,Barrow,Georgia,13013,283,11 +2020-05-24,Barrow,Georgia,13013,283,11 +2020-05-25,Barrow,Georgia,13013,292,11 +2020-05-26,Barrow,Georgia,13013,307,11 +2020-05-27,Barrow,Georgia,13013,316,13 +2020-05-28,Barrow,Georgia,13013,321,13 +2020-05-29,Barrow,Georgia,13013,325,13 +2020-05-30,Barrow,Georgia,13013,326,14 +2020-05-31,Barrow,Georgia,13013,326,14 +2020-06-01,Barrow,Georgia,13013,333,17 +2020-06-02,Barrow,Georgia,13013,328,18 +2020-06-03,Barrow,Georgia,13013,333,18 +2020-06-04,Barrow,Georgia,13013,333,19 +2020-06-05,Barrow,Georgia,13013,341,20 +2020-06-06,Barrow,Georgia,13013,341,20 +2020-06-07,Barrow,Georgia,13013,342,20 +2020-06-08,Barrow,Georgia,13013,353,20 +2020-06-09,Barrow,Georgia,13013,356,20 +2020-06-10,Barrow,Georgia,13013,366,20 +2020-06-11,Barrow,Georgia,13013,377,21 +2020-06-12,Barrow,Georgia,13013,378,23 +2020-06-13,Barrow,Georgia,13013,382,23 +2020-06-14,Barrow,Georgia,13013,382,23 +2020-06-15,Barrow,Georgia,13013,388,23 +2020-06-16,Barrow,Georgia,13013,395,23 +2020-06-17,Barrow,Georgia,13013,401,25 +2020-06-18,Barrow,Georgia,13013,409,25 +2020-06-19,Barrow,Georgia,13013,414,25 +2020-06-20,Barrow,Georgia,13013,415,25 +2020-06-21,Barrow,Georgia,13013,416,25 +2020-06-22,Barrow,Georgia,13013,423,25 +2020-06-23,Barrow,Georgia,13013,432,25 +2020-06-24,Barrow,Georgia,13013,446,25 +2020-06-25,Barrow,Georgia,13013,452,25 +2020-06-26,Barrow,Georgia,13013,459,25 +2020-06-27,Barrow,Georgia,13013,466,25 +2020-06-28,Barrow,Georgia,13013,466,25 +2020-06-29,Barrow,Georgia,13013,485,25 +2020-06-30,Barrow,Georgia,13013,523,25 +2020-07-01,Barrow,Georgia,13013,532,25 +2020-07-02,Barrow,Georgia,13013,523,25 +2020-07-03,Barrow,Georgia,13013,531,25 +2020-07-04,Barrow,Georgia,13013,535,25 +2020-07-05,Barrow,Georgia,13013,535,25 +2020-07-06,Barrow,Georgia,13013,543,25 +2020-07-07,Barrow,Georgia,13013,562,25 +2020-07-08,Barrow,Georgia,13013,574,25 +2020-07-09,Barrow,Georgia,13013,589,25 +2020-03-11,Bartow,Georgia,13015,3,0 +2020-03-12,Bartow,Georgia,13015,3,0 +2020-03-13,Bartow,Georgia,13015,7,0 +2020-03-14,Bartow,Georgia,13015,7,0 +2020-03-15,Bartow,Georgia,13015,9,0 +2020-03-16,Bartow,Georgia,13015,9,0 +2020-03-17,Bartow,Georgia,13015,11,0 +2020-03-18,Bartow,Georgia,13015,20,0 +2020-03-19,Bartow,Georgia,13015,27,0 +2020-03-20,Bartow,Georgia,13015,54,0 +2020-03-21,Bartow,Georgia,13015,55,0 +2020-03-22,Bartow,Georgia,13015,56,1 +2020-03-23,Bartow,Georgia,13015,61,1 +2020-03-24,Bartow,Georgia,13015,76,1 +2020-03-25,Bartow,Georgia,13015,82,1 +2020-03-26,Bartow,Georgia,13015,93,1 +2020-03-27,Bartow,Georgia,13015,107,1 +2020-03-28,Bartow,Georgia,13015,117,1 +2020-03-29,Bartow,Georgia,13015,119,1 +2020-03-30,Bartow,Georgia,13015,125,1 +2020-03-31,Bartow,Georgia,13015,137,3 +2020-04-01,Bartow,Georgia,13015,147,4 +2020-04-02,Bartow,Georgia,13015,153,4 +2020-04-03,Bartow,Georgia,13015,159,6 +2020-04-04,Bartow,Georgia,13015,160,7 +2020-04-05,Bartow,Georgia,13015,160,7 +2020-04-06,Bartow,Georgia,13015,182,11 +2020-04-07,Bartow,Georgia,13015,191,12 +2020-04-08,Bartow,Georgia,13015,195,12 +2020-04-09,Bartow,Georgia,13015,203,15 +2020-04-10,Bartow,Georgia,13015,208,15 +2020-04-11,Bartow,Georgia,13015,211,15 +2020-04-12,Bartow,Georgia,13015,213,16 +2020-04-13,Bartow,Georgia,13015,223,17 +2020-04-14,Bartow,Georgia,13015,230,17 +2020-04-15,Bartow,Georgia,13015,237,20 +2020-04-16,Bartow,Georgia,13015,240,22 +2020-04-17,Bartow,Georgia,13015,245,22 +2020-04-18,Bartow,Georgia,13015,246,22 +2020-04-19,Bartow,Georgia,13015,250,22 +2020-04-20,Bartow,Georgia,13015,255,24 +2020-04-21,Bartow,Georgia,13015,256,27 +2020-04-22,Bartow,Georgia,13015,259,27 +2020-04-23,Bartow,Georgia,13015,264,27 +2020-04-24,Bartow,Georgia,13015,273,28 +2020-04-25,Bartow,Georgia,13015,283,28 +2020-04-26,Bartow,Georgia,13015,286,28 +2020-04-27,Bartow,Georgia,13015,289,29 +2020-04-28,Bartow,Georgia,13015,306,30 +2020-04-29,Bartow,Georgia,13015,309,30 +2020-04-30,Bartow,Georgia,13015,315,30 +2020-05-01,Bartow,Georgia,13015,323,31 +2020-05-02,Bartow,Georgia,13015,324,31 +2020-05-03,Bartow,Georgia,13015,325,31 +2020-05-04,Bartow,Georgia,13015,341,31 +2020-05-05,Bartow,Georgia,13015,351,31 +2020-05-06,Bartow,Georgia,13015,359,32 +2020-05-07,Bartow,Georgia,13015,359,31 +2020-05-08,Bartow,Georgia,13015,361,31 +2020-05-09,Bartow,Georgia,13015,361,31 +2020-05-10,Bartow,Georgia,13015,363,31 +2020-05-11,Bartow,Georgia,13015,364,33 +2020-05-12,Bartow,Georgia,13015,368,34 +2020-05-13,Bartow,Georgia,13015,377,35 +2020-05-14,Bartow,Georgia,13015,382,35 +2020-05-15,Bartow,Georgia,13015,385,35 +2020-05-16,Bartow,Georgia,13015,385,35 +2020-05-17,Bartow,Georgia,13015,384,35 +2020-05-18,Bartow,Georgia,13015,396,35 +2020-05-19,Bartow,Georgia,13015,410,35 +2020-05-20,Bartow,Georgia,13015,419,35 +2020-05-21,Bartow,Georgia,13015,424,36 +2020-05-22,Bartow,Georgia,13015,427,36 +2020-05-23,Bartow,Georgia,13015,444,36 +2020-05-24,Bartow,Georgia,13015,443,36 +2020-05-25,Bartow,Georgia,13015,443,36 +2020-05-26,Bartow,Georgia,13015,452,38 +2020-05-27,Bartow,Georgia,13015,458,38 +2020-05-28,Bartow,Georgia,13015,469,38 +2020-05-29,Bartow,Georgia,13015,477,38 +2020-05-30,Bartow,Georgia,13015,478,39 +2020-05-31,Bartow,Georgia,13015,478,39 +2020-06-01,Bartow,Georgia,13015,481,38 +2020-06-02,Bartow,Georgia,13015,485,38 +2020-06-03,Bartow,Georgia,13015,496,39 +2020-06-04,Bartow,Georgia,13015,504,39 +2020-06-05,Bartow,Georgia,13015,514,39 +2020-06-06,Bartow,Georgia,13015,521,39 +2020-06-07,Bartow,Georgia,13015,522,39 +2020-06-08,Bartow,Georgia,13015,523,39 +2020-06-09,Bartow,Georgia,13015,527,39 +2020-06-10,Bartow,Georgia,13015,530,39 +2020-06-11,Bartow,Georgia,13015,532,39 +2020-06-12,Bartow,Georgia,13015,539,39 +2020-06-13,Bartow,Georgia,13015,542,39 +2020-06-14,Bartow,Georgia,13015,543,39 +2020-06-15,Bartow,Georgia,13015,548,39 +2020-06-16,Bartow,Georgia,13015,562,39 +2020-06-17,Bartow,Georgia,13015,570,39 +2020-06-18,Bartow,Georgia,13015,573,39 +2020-06-19,Bartow,Georgia,13015,583,39 +2020-06-20,Bartow,Georgia,13015,587,39 +2020-06-21,Bartow,Georgia,13015,596,39 +2020-06-22,Bartow,Georgia,13015,604,39 +2020-06-23,Bartow,Georgia,13015,625,39 +2020-06-24,Bartow,Georgia,13015,633,39 +2020-06-25,Bartow,Georgia,13015,639,40 +2020-06-26,Bartow,Georgia,13015,645,41 +2020-06-27,Bartow,Georgia,13015,659,42 +2020-06-28,Bartow,Georgia,13015,671,42 +2020-06-29,Bartow,Georgia,13015,677,42 +2020-06-30,Bartow,Georgia,13015,688,42 +2020-07-01,Bartow,Georgia,13015,714,42 +2020-07-02,Bartow,Georgia,13015,727,42 +2020-07-03,Bartow,Georgia,13015,746,42 +2020-07-04,Bartow,Georgia,13015,765,42 +2020-07-05,Bartow,Georgia,13015,774,42 +2020-07-06,Bartow,Georgia,13015,788,42 +2020-07-07,Bartow,Georgia,13015,807,42 +2020-07-08,Bartow,Georgia,13015,844,42 +2020-07-09,Bartow,Georgia,13015,859,42 +2020-03-24,Ben Hill,Georgia,13017,1,0 +2020-03-25,Ben Hill,Georgia,13017,1,0 +2020-03-26,Ben Hill,Georgia,13017,1,0 +2020-03-27,Ben Hill,Georgia,13017,2,0 +2020-03-28,Ben Hill,Georgia,13017,2,0 +2020-03-29,Ben Hill,Georgia,13017,2,0 +2020-03-30,Ben Hill,Georgia,13017,3,0 +2020-03-31,Ben Hill,Georgia,13017,3,0 +2020-04-01,Ben Hill,Georgia,13017,3,0 +2020-04-02,Ben Hill,Georgia,13017,3,0 +2020-04-03,Ben Hill,Georgia,13017,3,0 +2020-04-04,Ben Hill,Georgia,13017,4,0 +2020-04-05,Ben Hill,Georgia,13017,4,0 +2020-04-06,Ben Hill,Georgia,13017,6,0 +2020-04-07,Ben Hill,Georgia,13017,6,0 +2020-04-08,Ben Hill,Georgia,13017,6,0 +2020-04-09,Ben Hill,Georgia,13017,7,0 +2020-04-10,Ben Hill,Georgia,13017,8,0 +2020-04-11,Ben Hill,Georgia,13017,8,0 +2020-04-12,Ben Hill,Georgia,13017,8,0 +2020-04-13,Ben Hill,Georgia,13017,9,0 +2020-04-14,Ben Hill,Georgia,13017,10,0 +2020-04-15,Ben Hill,Georgia,13017,10,0 +2020-04-16,Ben Hill,Georgia,13017,10,0 +2020-04-17,Ben Hill,Georgia,13017,13,0 +2020-04-18,Ben Hill,Georgia,13017,13,0 +2020-04-19,Ben Hill,Georgia,13017,15,0 +2020-04-20,Ben Hill,Georgia,13017,15,0 +2020-04-21,Ben Hill,Georgia,13017,19,0 +2020-04-22,Ben Hill,Georgia,13017,20,0 +2020-04-23,Ben Hill,Georgia,13017,21,0 +2020-04-24,Ben Hill,Georgia,13017,21,0 +2020-04-25,Ben Hill,Georgia,13017,23,0 +2020-04-26,Ben Hill,Georgia,13017,23,0 +2020-04-27,Ben Hill,Georgia,13017,24,0 +2020-04-28,Ben Hill,Georgia,13017,25,0 +2020-04-29,Ben Hill,Georgia,13017,25,0 +2020-04-30,Ben Hill,Georgia,13017,25,0 +2020-05-01,Ben Hill,Georgia,13017,26,0 +2020-05-02,Ben Hill,Georgia,13017,28,0 +2020-05-03,Ben Hill,Georgia,13017,29,0 +2020-05-04,Ben Hill,Georgia,13017,29,0 +2020-05-05,Ben Hill,Georgia,13017,29,0 +2020-05-06,Ben Hill,Georgia,13017,36,0 +2020-05-07,Ben Hill,Georgia,13017,38,0 +2020-05-08,Ben Hill,Georgia,13017,39,0 +2020-05-09,Ben Hill,Georgia,13017,39,0 +2020-05-10,Ben Hill,Georgia,13017,39,0 +2020-05-11,Ben Hill,Georgia,13017,40,0 +2020-05-12,Ben Hill,Georgia,13017,43,0 +2020-05-13,Ben Hill,Georgia,13017,43,0 +2020-05-14,Ben Hill,Georgia,13017,44,1 +2020-05-15,Ben Hill,Georgia,13017,45,1 +2020-05-16,Ben Hill,Georgia,13017,45,1 +2020-05-17,Ben Hill,Georgia,13017,45,1 +2020-05-18,Ben Hill,Georgia,13017,47,1 +2020-05-19,Ben Hill,Georgia,13017,48,1 +2020-05-20,Ben Hill,Georgia,13017,48,1 +2020-05-21,Ben Hill,Georgia,13017,53,1 +2020-05-22,Ben Hill,Georgia,13017,55,1 +2020-05-23,Ben Hill,Georgia,13017,56,1 +2020-05-24,Ben Hill,Georgia,13017,58,1 +2020-05-25,Ben Hill,Georgia,13017,61,1 +2020-05-26,Ben Hill,Georgia,13017,65,1 +2020-05-27,Ben Hill,Georgia,13017,69,1 +2020-05-28,Ben Hill,Georgia,13017,71,1 +2020-05-29,Ben Hill,Georgia,13017,72,1 +2020-05-30,Ben Hill,Georgia,13017,74,1 +2020-05-31,Ben Hill,Georgia,13017,74,1 +2020-06-01,Ben Hill,Georgia,13017,76,1 +2020-06-02,Ben Hill,Georgia,13017,77,1 +2020-06-03,Ben Hill,Georgia,13017,81,1 +2020-06-04,Ben Hill,Georgia,13017,84,1 +2020-06-05,Ben Hill,Georgia,13017,87,1 +2020-06-06,Ben Hill,Georgia,13017,90,1 +2020-06-07,Ben Hill,Georgia,13017,90,1 +2020-06-08,Ben Hill,Georgia,13017,93,1 +2020-06-09,Ben Hill,Georgia,13017,93,1 +2020-06-10,Ben Hill,Georgia,13017,96,1 +2020-06-11,Ben Hill,Georgia,13017,96,1 +2020-06-12,Ben Hill,Georgia,13017,98,1 +2020-06-13,Ben Hill,Georgia,13017,102,1 +2020-06-14,Ben Hill,Georgia,13017,104,1 +2020-06-15,Ben Hill,Georgia,13017,105,1 +2020-06-16,Ben Hill,Georgia,13017,104,1 +2020-06-17,Ben Hill,Georgia,13017,109,1 +2020-06-18,Ben Hill,Georgia,13017,113,1 +2020-06-19,Ben Hill,Georgia,13017,117,1 +2020-06-20,Ben Hill,Georgia,13017,119,1 +2020-06-21,Ben Hill,Georgia,13017,122,1 +2020-06-22,Ben Hill,Georgia,13017,125,1 +2020-06-23,Ben Hill,Georgia,13017,125,1 +2020-06-24,Ben Hill,Georgia,13017,132,1 +2020-06-25,Ben Hill,Georgia,13017,139,1 +2020-06-26,Ben Hill,Georgia,13017,143,1 +2020-06-27,Ben Hill,Georgia,13017,150,1 +2020-06-28,Ben Hill,Georgia,13017,156,1 +2020-06-29,Ben Hill,Georgia,13017,159,1 +2020-06-30,Ben Hill,Georgia,13017,165,1 +2020-07-01,Ben Hill,Georgia,13017,168,1 +2020-07-02,Ben Hill,Georgia,13017,174,1 +2020-07-03,Ben Hill,Georgia,13017,183,1 +2020-07-04,Ben Hill,Georgia,13017,184,1 +2020-07-05,Ben Hill,Georgia,13017,185,1 +2020-07-06,Ben Hill,Georgia,13017,186,1 +2020-07-07,Ben Hill,Georgia,13017,192,1 +2020-07-08,Ben Hill,Georgia,13017,195,1 +2020-07-09,Ben Hill,Georgia,13017,209,1 +2020-03-30,Berrien,Georgia,13019,1,0 +2020-03-31,Berrien,Georgia,13019,1,0 +2020-04-01,Berrien,Georgia,13019,2,0 +2020-04-02,Berrien,Georgia,13019,3,0 +2020-04-03,Berrien,Georgia,13019,3,0 +2020-04-04,Berrien,Georgia,13019,3,0 +2020-04-05,Berrien,Georgia,13019,3,0 +2020-04-06,Berrien,Georgia,13019,4,0 +2020-04-07,Berrien,Georgia,13019,4,0 +2020-04-08,Berrien,Georgia,13019,4,0 +2020-04-09,Berrien,Georgia,13019,6,0 +2020-04-10,Berrien,Georgia,13019,6,0 +2020-04-11,Berrien,Georgia,13019,6,0 +2020-04-12,Berrien,Georgia,13019,6,0 +2020-04-13,Berrien,Georgia,13019,6,0 +2020-04-14,Berrien,Georgia,13019,8,0 +2020-04-15,Berrien,Georgia,13019,8,0 +2020-04-16,Berrien,Georgia,13019,10,0 +2020-04-17,Berrien,Georgia,13019,10,0 +2020-04-18,Berrien,Georgia,13019,10,0 +2020-04-19,Berrien,Georgia,13019,10,0 +2020-04-20,Berrien,Georgia,13019,10,0 +2020-04-21,Berrien,Georgia,13019,10,0 +2020-04-22,Berrien,Georgia,13019,10,0 +2020-04-23,Berrien,Georgia,13019,12,0 +2020-04-24,Berrien,Georgia,13019,14,0 +2020-04-25,Berrien,Georgia,13019,16,0 +2020-04-26,Berrien,Georgia,13019,16,0 +2020-04-27,Berrien,Georgia,13019,15,0 +2020-04-28,Berrien,Georgia,13019,18,0 +2020-04-29,Berrien,Georgia,13019,18,0 +2020-04-30,Berrien,Georgia,13019,17,0 +2020-05-01,Berrien,Georgia,13019,17,0 +2020-05-02,Berrien,Georgia,13019,17,0 +2020-05-03,Berrien,Georgia,13019,17,0 +2020-05-04,Berrien,Georgia,13019,17,0 +2020-05-05,Berrien,Georgia,13019,17,0 +2020-05-06,Berrien,Georgia,13019,19,0 +2020-05-07,Berrien,Georgia,13019,19,0 +2020-05-08,Berrien,Georgia,13019,19,0 +2020-05-09,Berrien,Georgia,13019,19,0 +2020-05-10,Berrien,Georgia,13019,19,0 +2020-05-11,Berrien,Georgia,13019,19,0 +2020-05-12,Berrien,Georgia,13019,19,0 +2020-05-13,Berrien,Georgia,13019,19,0 +2020-05-14,Berrien,Georgia,13019,20,0 +2020-05-15,Berrien,Georgia,13019,20,0 +2020-05-16,Berrien,Georgia,13019,20,0 +2020-05-17,Berrien,Georgia,13019,20,0 +2020-05-18,Berrien,Georgia,13019,22,0 +2020-05-19,Berrien,Georgia,13019,23,0 +2020-05-20,Berrien,Georgia,13019,25,0 +2020-05-21,Berrien,Georgia,13019,30,0 +2020-05-22,Berrien,Georgia,13019,34,0 +2020-05-23,Berrien,Georgia,13019,34,0 +2020-05-24,Berrien,Georgia,13019,34,0 +2020-05-25,Berrien,Georgia,13019,37,0 +2020-05-26,Berrien,Georgia,13019,38,0 +2020-05-27,Berrien,Georgia,13019,39,0 +2020-05-28,Berrien,Georgia,13019,42,0 +2020-05-29,Berrien,Georgia,13019,46,0 +2020-05-30,Berrien,Georgia,13019,46,0 +2020-05-31,Berrien,Georgia,13019,46,0 +2020-06-01,Berrien,Georgia,13019,49,0 +2020-06-02,Berrien,Georgia,13019,49,0 +2020-06-03,Berrien,Georgia,13019,48,0 +2020-06-04,Berrien,Georgia,13019,51,0 +2020-06-05,Berrien,Georgia,13019,54,1 +2020-06-06,Berrien,Georgia,13019,55,1 +2020-06-07,Berrien,Georgia,13019,58,1 +2020-06-08,Berrien,Georgia,13019,59,1 +2020-06-09,Berrien,Georgia,13019,59,0 +2020-06-10,Berrien,Georgia,13019,59,0 +2020-06-11,Berrien,Georgia,13019,59,0 +2020-06-12,Berrien,Georgia,13019,62,0 +2020-06-13,Berrien,Georgia,13019,66,0 +2020-06-14,Berrien,Georgia,13019,68,0 +2020-06-15,Berrien,Georgia,13019,73,0 +2020-06-16,Berrien,Georgia,13019,77,0 +2020-06-17,Berrien,Georgia,13019,80,0 +2020-06-18,Berrien,Georgia,13019,83,0 +2020-06-19,Berrien,Georgia,13019,86,0 +2020-06-20,Berrien,Georgia,13019,89,0 +2020-06-21,Berrien,Georgia,13019,91,0 +2020-06-22,Berrien,Georgia,13019,95,0 +2020-06-23,Berrien,Georgia,13019,99,0 +2020-06-24,Berrien,Georgia,13019,102,0 +2020-06-25,Berrien,Georgia,13019,107,0 +2020-06-26,Berrien,Georgia,13019,109,0 +2020-06-27,Berrien,Georgia,13019,110,0 +2020-06-28,Berrien,Georgia,13019,113,0 +2020-06-29,Berrien,Georgia,13019,114,0 +2020-06-30,Berrien,Georgia,13019,116,0 +2020-07-01,Berrien,Georgia,13019,119,0 +2020-07-02,Berrien,Georgia,13019,121,0 +2020-07-03,Berrien,Georgia,13019,127,0 +2020-07-04,Berrien,Georgia,13019,130,0 +2020-07-05,Berrien,Georgia,13019,135,0 +2020-07-06,Berrien,Georgia,13019,141,0 +2020-07-07,Berrien,Georgia,13019,152,0 +2020-07-08,Berrien,Georgia,13019,154,0 +2020-07-09,Berrien,Georgia,13019,162,0 +2020-03-19,Bibb,Georgia,13021,1,0 +2020-03-20,Bibb,Georgia,13021,1,0 +2020-03-21,Bibb,Georgia,13021,1,0 +2020-03-22,Bibb,Georgia,13021,1,0 +2020-03-23,Bibb,Georgia,13021,2,0 +2020-03-24,Bibb,Georgia,13021,4,0 +2020-03-25,Bibb,Georgia,13021,6,0 +2020-03-26,Bibb,Georgia,13021,8,0 +2020-03-27,Bibb,Georgia,13021,11,0 +2020-03-28,Bibb,Georgia,13021,13,0 +2020-03-29,Bibb,Georgia,13021,14,0 +2020-03-30,Bibb,Georgia,13021,16,0 +2020-03-31,Bibb,Georgia,13021,20,0 +2020-04-01,Bibb,Georgia,13021,23,1 +2020-04-02,Bibb,Georgia,13021,25,1 +2020-04-03,Bibb,Georgia,13021,34,1 +2020-04-04,Bibb,Georgia,13021,36,1 +2020-04-05,Bibb,Georgia,13021,39,1 +2020-04-06,Bibb,Georgia,13021,42,1 +2020-04-07,Bibb,Georgia,13021,46,1 +2020-04-08,Bibb,Georgia,13021,51,1 +2020-04-09,Bibb,Georgia,13021,56,1 +2020-04-10,Bibb,Georgia,13021,58,1 +2020-04-11,Bibb,Georgia,13021,62,1 +2020-04-12,Bibb,Georgia,13021,70,1 +2020-04-13,Bibb,Georgia,13021,73,1 +2020-04-14,Bibb,Georgia,13021,91,1 +2020-04-15,Bibb,Georgia,13021,108,1 +2020-04-16,Bibb,Georgia,13021,179,1 +2020-04-17,Bibb,Georgia,13021,191,1 +2020-04-18,Bibb,Georgia,13021,193,1 +2020-04-19,Bibb,Georgia,13021,199,1 +2020-04-20,Bibb,Georgia,13021,203,1 +2020-04-21,Bibb,Georgia,13021,207,4 +2020-04-22,Bibb,Georgia,13021,224,4 +2020-04-23,Bibb,Georgia,13021,234,5 +2020-04-24,Bibb,Georgia,13021,244,5 +2020-04-25,Bibb,Georgia,13021,247,6 +2020-04-26,Bibb,Georgia,13021,248,6 +2020-04-27,Bibb,Georgia,13021,256,7 +2020-04-28,Bibb,Georgia,13021,292,8 +2020-04-29,Bibb,Georgia,13021,302,10 +2020-04-30,Bibb,Georgia,13021,306,10 +2020-05-01,Bibb,Georgia,13021,312,10 +2020-05-02,Bibb,Georgia,13021,319,11 +2020-05-03,Bibb,Georgia,13021,324,11 +2020-05-04,Bibb,Georgia,13021,346,12 +2020-05-05,Bibb,Georgia,13021,350,13 +2020-05-06,Bibb,Georgia,13021,367,14 +2020-05-07,Bibb,Georgia,13021,379,14 +2020-05-08,Bibb,Georgia,13021,384,15 +2020-05-09,Bibb,Georgia,13021,365,15 +2020-05-10,Bibb,Georgia,13021,367,15 +2020-05-11,Bibb,Georgia,13021,370,15 +2020-05-12,Bibb,Georgia,13021,376,14 +2020-05-13,Bibb,Georgia,13021,378,14 +2020-05-14,Bibb,Georgia,13021,384,16 +2020-05-15,Bibb,Georgia,13021,391,16 +2020-05-16,Bibb,Georgia,13021,394,15 +2020-05-17,Bibb,Georgia,13021,396,15 +2020-05-18,Bibb,Georgia,13021,397,17 +2020-05-19,Bibb,Georgia,13021,411,18 +2020-05-20,Bibb,Georgia,13021,408,18 +2020-05-21,Bibb,Georgia,13021,416,20 +2020-05-22,Bibb,Georgia,13021,423,20 +2020-05-23,Bibb,Georgia,13021,432,24 +2020-05-24,Bibb,Georgia,13021,433,24 +2020-05-25,Bibb,Georgia,13021,435,24 +2020-05-26,Bibb,Georgia,13021,436,24 +2020-05-27,Bibb,Georgia,13021,441,24 +2020-05-28,Bibb,Georgia,13021,444,25 +2020-05-29,Bibb,Georgia,13021,451,27 +2020-05-30,Bibb,Georgia,13021,454,27 +2020-05-31,Bibb,Georgia,13021,453,28 +2020-06-01,Bibb,Georgia,13021,467,28 +2020-06-02,Bibb,Georgia,13021,472,29 +2020-06-03,Bibb,Georgia,13021,481,29 +2020-06-04,Bibb,Georgia,13021,494,29 +2020-06-05,Bibb,Georgia,13021,502,30 +2020-06-06,Bibb,Georgia,13021,504,30 +2020-06-07,Bibb,Georgia,13021,503,30 +2020-06-08,Bibb,Georgia,13021,509,31 +2020-06-09,Bibb,Georgia,13021,511,31 +2020-06-10,Bibb,Georgia,13021,516,34 +2020-06-11,Bibb,Georgia,13021,525,34 +2020-06-12,Bibb,Georgia,13021,530,35 +2020-06-13,Bibb,Georgia,13021,533,35 +2020-06-14,Bibb,Georgia,13021,532,35 +2020-06-15,Bibb,Georgia,13021,542,36 +2020-06-16,Bibb,Georgia,13021,560,35 +2020-06-17,Bibb,Georgia,13021,570,36 +2020-06-18,Bibb,Georgia,13021,583,37 +2020-06-19,Bibb,Georgia,13021,590,37 +2020-06-20,Bibb,Georgia,13021,597,37 +2020-06-21,Bibb,Georgia,13021,601,37 +2020-06-22,Bibb,Georgia,13021,609,37 +2020-06-23,Bibb,Georgia,13021,627,37 +2020-06-24,Bibb,Georgia,13021,644,38 +2020-06-25,Bibb,Georgia,13021,664,38 +2020-06-26,Bibb,Georgia,13021,702,38 +2020-06-27,Bibb,Georgia,13021,724,38 +2020-06-28,Bibb,Georgia,13021,730,38 +2020-06-29,Bibb,Georgia,13021,775,38 +2020-06-30,Bibb,Georgia,13021,848,39 +2020-07-01,Bibb,Georgia,13021,922,40 +2020-07-02,Bibb,Georgia,13021,969,41 +2020-07-03,Bibb,Georgia,13021,1036,41 +2020-07-04,Bibb,Georgia,13021,1118,41 +2020-07-05,Bibb,Georgia,13021,1207,41 +2020-07-06,Bibb,Georgia,13021,1237,41 +2020-07-07,Bibb,Georgia,13021,1346,41 +2020-07-08,Bibb,Georgia,13021,1482,41 +2020-07-09,Bibb,Georgia,13021,1564,41 +2020-03-30,Bleckley,Georgia,13023,1,0 +2020-03-31,Bleckley,Georgia,13023,1,0 +2020-04-01,Bleckley,Georgia,13023,1,0 +2020-04-02,Bleckley,Georgia,13023,1,0 +2020-04-03,Bleckley,Georgia,13023,1,0 +2020-04-04,Bleckley,Georgia,13023,1,0 +2020-04-05,Bleckley,Georgia,13023,1,0 +2020-04-06,Bleckley,Georgia,13023,1,0 +2020-04-07,Bleckley,Georgia,13023,1,0 +2020-04-08,Bleckley,Georgia,13023,1,0 +2020-04-09,Bleckley,Georgia,13023,1,0 +2020-04-10,Bleckley,Georgia,13023,1,0 +2020-04-11,Bleckley,Georgia,13023,1,0 +2020-04-12,Bleckley,Georgia,13023,1,0 +2020-04-13,Bleckley,Georgia,13023,3,0 +2020-04-14,Bleckley,Georgia,13023,3,0 +2020-04-15,Bleckley,Georgia,13023,3,0 +2020-04-16,Bleckley,Georgia,13023,3,0 +2020-04-17,Bleckley,Georgia,13023,6,0 +2020-04-18,Bleckley,Georgia,13023,6,0 +2020-04-19,Bleckley,Georgia,13023,6,0 +2020-04-20,Bleckley,Georgia,13023,5,0 +2020-04-21,Bleckley,Georgia,13023,5,0 +2020-04-22,Bleckley,Georgia,13023,5,0 +2020-04-23,Bleckley,Georgia,13023,7,0 +2020-04-24,Bleckley,Georgia,13023,9,0 +2020-04-25,Bleckley,Georgia,13023,9,0 +2020-04-26,Bleckley,Georgia,13023,9,0 +2020-04-27,Bleckley,Georgia,13023,9,0 +2020-04-28,Bleckley,Georgia,13023,12,0 +2020-04-29,Bleckley,Georgia,13023,12,0 +2020-04-30,Bleckley,Georgia,13023,17,0 +2020-05-01,Bleckley,Georgia,13023,19,0 +2020-05-02,Bleckley,Georgia,13023,20,0 +2020-05-03,Bleckley,Georgia,13023,20,0 +2020-05-04,Bleckley,Georgia,13023,21,0 +2020-05-05,Bleckley,Georgia,13023,21,0 +2020-05-06,Bleckley,Georgia,13023,21,0 +2020-05-07,Bleckley,Georgia,13023,22,0 +2020-05-08,Bleckley,Georgia,13023,26,0 +2020-05-09,Bleckley,Georgia,13023,28,0 +2020-05-10,Bleckley,Georgia,13023,29,0 +2020-05-11,Bleckley,Georgia,13023,29,0 +2020-05-12,Bleckley,Georgia,13023,29,0 +2020-05-13,Bleckley,Georgia,13023,32,0 +2020-05-14,Bleckley,Georgia,13023,32,0 +2020-05-15,Bleckley,Georgia,13023,33,0 +2020-05-16,Bleckley,Georgia,13023,34,0 +2020-05-17,Bleckley,Georgia,13023,34,0 +2020-05-18,Bleckley,Georgia,13023,33,0 +2020-05-19,Bleckley,Georgia,13023,34,0 +2020-05-20,Bleckley,Georgia,13023,33,0 +2020-05-21,Bleckley,Georgia,13023,34,0 +2020-05-22,Bleckley,Georgia,13023,37,0 +2020-05-23,Bleckley,Georgia,13023,38,0 +2020-05-24,Bleckley,Georgia,13023,39,0 +2020-05-25,Bleckley,Georgia,13023,38,0 +2020-05-26,Bleckley,Georgia,13023,40,0 +2020-05-27,Bleckley,Georgia,13023,43,0 +2020-05-28,Bleckley,Georgia,13023,45,0 +2020-05-29,Bleckley,Georgia,13023,45,0 +2020-05-30,Bleckley,Georgia,13023,45,0 +2020-05-31,Bleckley,Georgia,13023,45,0 +2020-06-01,Bleckley,Georgia,13023,45,0 +2020-06-02,Bleckley,Georgia,13023,48,0 +2020-06-03,Bleckley,Georgia,13023,48,0 +2020-06-04,Bleckley,Georgia,13023,48,0 +2020-06-05,Bleckley,Georgia,13023,50,0 +2020-06-06,Bleckley,Georgia,13023,50,0 +2020-06-07,Bleckley,Georgia,13023,50,0 +2020-06-08,Bleckley,Georgia,13023,51,0 +2020-06-09,Bleckley,Georgia,13023,53,0 +2020-06-10,Bleckley,Georgia,13023,53,0 +2020-06-11,Bleckley,Georgia,13023,54,0 +2020-06-12,Bleckley,Georgia,13023,53,0 +2020-06-13,Bleckley,Georgia,13023,54,0 +2020-06-14,Bleckley,Georgia,13023,54,0 +2020-06-15,Bleckley,Georgia,13023,54,1 +2020-06-16,Bleckley,Georgia,13023,52,1 +2020-06-17,Bleckley,Georgia,13023,52,1 +2020-06-18,Bleckley,Georgia,13023,53,1 +2020-06-19,Bleckley,Georgia,13023,54,1 +2020-06-20,Bleckley,Georgia,13023,54,1 +2020-06-21,Bleckley,Georgia,13023,54,1 +2020-06-22,Bleckley,Georgia,13023,54,1 +2020-06-23,Bleckley,Georgia,13023,54,1 +2020-06-24,Bleckley,Georgia,13023,55,1 +2020-06-25,Bleckley,Georgia,13023,55,1 +2020-06-26,Bleckley,Georgia,13023,55,1 +2020-06-27,Bleckley,Georgia,13023,55,1 +2020-06-28,Bleckley,Georgia,13023,56,1 +2020-06-29,Bleckley,Georgia,13023,58,1 +2020-06-30,Bleckley,Georgia,13023,60,1 +2020-07-01,Bleckley,Georgia,13023,62,1 +2020-07-02,Bleckley,Georgia,13023,64,1 +2020-07-03,Bleckley,Georgia,13023,67,1 +2020-07-04,Bleckley,Georgia,13023,69,1 +2020-07-05,Bleckley,Georgia,13023,72,1 +2020-07-06,Bleckley,Georgia,13023,72,1 +2020-07-07,Bleckley,Georgia,13023,77,1 +2020-07-08,Bleckley,Georgia,13023,81,1 +2020-07-09,Bleckley,Georgia,13023,81,1 +2020-04-06,Brantley,Georgia,13025,3,0 +2020-04-07,Brantley,Georgia,13025,5,1 +2020-04-08,Brantley,Georgia,13025,5,1 +2020-04-09,Brantley,Georgia,13025,6,1 +2020-04-10,Brantley,Georgia,13025,7,1 +2020-04-11,Brantley,Georgia,13025,7,1 +2020-04-12,Brantley,Georgia,13025,8,1 +2020-04-13,Brantley,Georgia,13025,11,1 +2020-04-14,Brantley,Georgia,13025,12,1 +2020-04-15,Brantley,Georgia,13025,14,1 +2020-04-16,Brantley,Georgia,13025,16,1 +2020-04-17,Brantley,Georgia,13025,17,2 +2020-04-18,Brantley,Georgia,13025,18,2 +2020-04-19,Brantley,Georgia,13025,19,2 +2020-04-20,Brantley,Georgia,13025,20,2 +2020-04-21,Brantley,Georgia,13025,20,2 +2020-04-22,Brantley,Georgia,13025,20,2 +2020-04-23,Brantley,Georgia,13025,20,2 +2020-04-24,Brantley,Georgia,13025,20,2 +2020-04-25,Brantley,Georgia,13025,21,2 +2020-04-26,Brantley,Georgia,13025,21,2 +2020-04-27,Brantley,Georgia,13025,21,2 +2020-04-28,Brantley,Georgia,13025,22,2 +2020-04-29,Brantley,Georgia,13025,22,2 +2020-04-30,Brantley,Georgia,13025,23,2 +2020-05-01,Brantley,Georgia,13025,23,2 +2020-05-02,Brantley,Georgia,13025,23,2 +2020-05-03,Brantley,Georgia,13025,22,2 +2020-05-04,Brantley,Georgia,13025,22,2 +2020-05-05,Brantley,Georgia,13025,22,2 +2020-05-06,Brantley,Georgia,13025,22,2 +2020-05-07,Brantley,Georgia,13025,23,2 +2020-05-08,Brantley,Georgia,13025,23,2 +2020-05-09,Brantley,Georgia,13025,24,2 +2020-05-10,Brantley,Georgia,13025,25,2 +2020-05-11,Brantley,Georgia,13025,26,2 +2020-05-12,Brantley,Georgia,13025,27,2 +2020-05-13,Brantley,Georgia,13025,28,2 +2020-05-14,Brantley,Georgia,13025,28,2 +2020-05-15,Brantley,Georgia,13025,35,2 +2020-05-16,Brantley,Georgia,13025,38,2 +2020-05-17,Brantley,Georgia,13025,38,2 +2020-05-18,Brantley,Georgia,13025,39,2 +2020-05-19,Brantley,Georgia,13025,44,2 +2020-05-20,Brantley,Georgia,13025,46,2 +2020-05-21,Brantley,Georgia,13025,46,2 +2020-05-22,Brantley,Georgia,13025,48,2 +2020-05-23,Brantley,Georgia,13025,50,2 +2020-05-24,Brantley,Georgia,13025,51,2 +2020-05-25,Brantley,Georgia,13025,51,2 +2020-05-26,Brantley,Georgia,13025,50,2 +2020-05-27,Brantley,Georgia,13025,50,2 +2020-05-28,Brantley,Georgia,13025,51,2 +2020-05-29,Brantley,Georgia,13025,54,2 +2020-05-30,Brantley,Georgia,13025,56,2 +2020-05-31,Brantley,Georgia,13025,56,2 +2020-06-01,Brantley,Georgia,13025,57,2 +2020-06-02,Brantley,Georgia,13025,58,2 +2020-06-03,Brantley,Georgia,13025,59,2 +2020-06-04,Brantley,Georgia,13025,61,2 +2020-06-05,Brantley,Georgia,13025,62,2 +2020-06-06,Brantley,Georgia,13025,62,2 +2020-06-07,Brantley,Georgia,13025,62,2 +2020-06-08,Brantley,Georgia,13025,63,2 +2020-06-09,Brantley,Georgia,13025,63,2 +2020-06-10,Brantley,Georgia,13025,63,2 +2020-06-11,Brantley,Georgia,13025,64,2 +2020-06-12,Brantley,Georgia,13025,68,2 +2020-06-13,Brantley,Georgia,13025,68,2 +2020-06-14,Brantley,Georgia,13025,68,2 +2020-06-15,Brantley,Georgia,13025,69,2 +2020-06-16,Brantley,Georgia,13025,70,2 +2020-06-17,Brantley,Georgia,13025,71,2 +2020-06-18,Brantley,Georgia,13025,72,2 +2020-06-19,Brantley,Georgia,13025,73,2 +2020-06-20,Brantley,Georgia,13025,73,2 +2020-06-21,Brantley,Georgia,13025,73,2 +2020-06-22,Brantley,Georgia,13025,76,2 +2020-06-23,Brantley,Georgia,13025,78,2 +2020-06-24,Brantley,Georgia,13025,79,2 +2020-06-25,Brantley,Georgia,13025,82,2 +2020-06-26,Brantley,Georgia,13025,85,2 +2020-06-27,Brantley,Georgia,13025,85,2 +2020-06-28,Brantley,Georgia,13025,85,2 +2020-06-29,Brantley,Georgia,13025,85,2 +2020-06-30,Brantley,Georgia,13025,94,2 +2020-07-01,Brantley,Georgia,13025,96,2 +2020-07-02,Brantley,Georgia,13025,99,3 +2020-07-03,Brantley,Georgia,13025,104,3 +2020-07-04,Brantley,Georgia,13025,110,3 +2020-07-05,Brantley,Georgia,13025,110,3 +2020-07-06,Brantley,Georgia,13025,112,3 +2020-07-07,Brantley,Georgia,13025,115,3 +2020-07-08,Brantley,Georgia,13025,120,3 +2020-07-09,Brantley,Georgia,13025,122,3 +2020-03-29,Brooks,Georgia,13027,1,0 +2020-03-30,Brooks,Georgia,13027,1,0 +2020-03-31,Brooks,Georgia,13027,2,0 +2020-04-01,Brooks,Georgia,13027,2,0 +2020-04-02,Brooks,Georgia,13027,4,0 +2020-04-03,Brooks,Georgia,13027,5,0 +2020-04-04,Brooks,Georgia,13027,5,0 +2020-04-05,Brooks,Georgia,13027,6,0 +2020-04-06,Brooks,Georgia,13027,6,0 +2020-04-07,Brooks,Georgia,13027,6,0 +2020-04-08,Brooks,Georgia,13027,16,1 +2020-04-09,Brooks,Georgia,13027,17,1 +2020-04-10,Brooks,Georgia,13027,17,1 +2020-04-11,Brooks,Georgia,13027,18,1 +2020-04-12,Brooks,Georgia,13027,19,1 +2020-04-13,Brooks,Georgia,13027,19,1 +2020-04-14,Brooks,Georgia,13027,20,1 +2020-04-15,Brooks,Georgia,13027,21,2 +2020-04-16,Brooks,Georgia,13027,22,2 +2020-04-17,Brooks,Georgia,13027,23,5 +2020-04-18,Brooks,Georgia,13027,23,5 +2020-04-19,Brooks,Georgia,13027,23,5 +2020-04-20,Brooks,Georgia,13027,23,6 +2020-04-21,Brooks,Georgia,13027,33,6 +2020-04-22,Brooks,Georgia,13027,36,6 +2020-04-23,Brooks,Georgia,13027,37,6 +2020-04-24,Brooks,Georgia,13027,39,6 +2020-04-25,Brooks,Georgia,13027,39,6 +2020-04-26,Brooks,Georgia,13027,39,6 +2020-04-27,Brooks,Georgia,13027,52,6 +2020-04-28,Brooks,Georgia,13027,52,6 +2020-04-29,Brooks,Georgia,13027,55,6 +2020-04-30,Brooks,Georgia,13027,59,6 +2020-05-01,Brooks,Georgia,13027,59,6 +2020-05-02,Brooks,Georgia,13027,59,6 +2020-05-03,Brooks,Georgia,13027,60,6 +2020-05-04,Brooks,Georgia,13027,61,7 +2020-05-05,Brooks,Georgia,13027,63,7 +2020-05-06,Brooks,Georgia,13027,64,7 +2020-05-07,Brooks,Georgia,13027,64,7 +2020-05-08,Brooks,Georgia,13027,64,7 +2020-05-09,Brooks,Georgia,13027,64,7 +2020-05-10,Brooks,Georgia,13027,64,7 +2020-05-11,Brooks,Georgia,13027,64,7 +2020-05-12,Brooks,Georgia,13027,64,7 +2020-05-13,Brooks,Georgia,13027,64,7 +2020-05-14,Brooks,Georgia,13027,64,8 +2020-05-15,Brooks,Georgia,13027,64,8 +2020-05-16,Brooks,Georgia,13027,63,9 +2020-05-17,Brooks,Georgia,13027,63,9 +2020-05-18,Brooks,Georgia,13027,64,9 +2020-05-19,Brooks,Georgia,13027,66,9 +2020-05-20,Brooks,Georgia,13027,66,9 +2020-05-21,Brooks,Georgia,13027,66,9 +2020-05-22,Brooks,Georgia,13027,66,9 +2020-05-23,Brooks,Georgia,13027,66,9 +2020-05-24,Brooks,Georgia,13027,66,9 +2020-05-25,Brooks,Georgia,13027,67,9 +2020-05-26,Brooks,Georgia,13027,68,9 +2020-05-27,Brooks,Georgia,13027,68,9 +2020-05-28,Brooks,Georgia,13027,69,9 +2020-05-29,Brooks,Georgia,13027,68,8 +2020-05-30,Brooks,Georgia,13027,68,8 +2020-05-31,Brooks,Georgia,13027,68,8 +2020-06-01,Brooks,Georgia,13027,69,8 +2020-06-02,Brooks,Georgia,13027,70,8 +2020-06-03,Brooks,Georgia,13027,72,8 +2020-06-04,Brooks,Georgia,13027,76,8 +2020-06-05,Brooks,Georgia,13027,78,8 +2020-06-06,Brooks,Georgia,13027,79,8 +2020-06-07,Brooks,Georgia,13027,79,8 +2020-06-08,Brooks,Georgia,13027,83,8 +2020-06-09,Brooks,Georgia,13027,84,8 +2020-06-10,Brooks,Georgia,13027,87,10 +2020-06-11,Brooks,Georgia,13027,91,10 +2020-06-12,Brooks,Georgia,13027,93,10 +2020-06-13,Brooks,Georgia,13027,93,10 +2020-06-14,Brooks,Georgia,13027,96,10 +2020-06-15,Brooks,Georgia,13027,98,11 +2020-06-16,Brooks,Georgia,13027,99,11 +2020-06-17,Brooks,Georgia,13027,100,11 +2020-06-18,Brooks,Georgia,13027,106,11 +2020-06-19,Brooks,Georgia,13027,109,11 +2020-06-20,Brooks,Georgia,13027,112,11 +2020-06-21,Brooks,Georgia,13027,115,11 +2020-06-22,Brooks,Georgia,13027,119,11 +2020-06-23,Brooks,Georgia,13027,121,11 +2020-06-24,Brooks,Georgia,13027,123,11 +2020-06-25,Brooks,Georgia,13027,124,11 +2020-06-26,Brooks,Georgia,13027,141,11 +2020-06-27,Brooks,Georgia,13027,141,11 +2020-06-28,Brooks,Georgia,13027,143,11 +2020-06-29,Brooks,Georgia,13027,145,11 +2020-06-30,Brooks,Georgia,13027,154,11 +2020-07-01,Brooks,Georgia,13027,158,11 +2020-07-02,Brooks,Georgia,13027,158,11 +2020-07-03,Brooks,Georgia,13027,163,11 +2020-07-04,Brooks,Georgia,13027,177,11 +2020-07-05,Brooks,Georgia,13027,184,11 +2020-07-06,Brooks,Georgia,13027,189,11 +2020-07-07,Brooks,Georgia,13027,199,11 +2020-07-08,Brooks,Georgia,13027,202,11 +2020-07-09,Brooks,Georgia,13027,204,11 +2020-03-24,Bryan,Georgia,13029,2,0 +2020-03-25,Bryan,Georgia,13029,3,0 +2020-03-26,Bryan,Georgia,13029,3,0 +2020-03-27,Bryan,Georgia,13029,5,0 +2020-03-28,Bryan,Georgia,13029,7,0 +2020-03-29,Bryan,Georgia,13029,7,0 +2020-03-30,Bryan,Georgia,13029,7,0 +2020-03-31,Bryan,Georgia,13029,7,0 +2020-04-01,Bryan,Georgia,13029,9,1 +2020-04-02,Bryan,Georgia,13029,11,1 +2020-04-03,Bryan,Georgia,13029,15,1 +2020-04-04,Bryan,Georgia,13029,15,1 +2020-04-05,Bryan,Georgia,13029,17,1 +2020-04-06,Bryan,Georgia,13029,24,2 +2020-04-07,Bryan,Georgia,13029,26,2 +2020-04-08,Bryan,Georgia,13029,25,2 +2020-04-09,Bryan,Georgia,13029,28,2 +2020-04-10,Bryan,Georgia,13029,29,2 +2020-04-11,Bryan,Georgia,13029,28,1 +2020-04-12,Bryan,Georgia,13029,29,1 +2020-04-13,Bryan,Georgia,13029,30,2 +2020-04-14,Bryan,Georgia,13029,30,2 +2020-04-15,Bryan,Georgia,13029,30,2 +2020-04-16,Bryan,Georgia,13029,30,2 +2020-04-17,Bryan,Georgia,13029,31,2 +2020-04-18,Bryan,Georgia,13029,32,2 +2020-04-19,Bryan,Georgia,13029,33,2 +2020-04-20,Bryan,Georgia,13029,34,2 +2020-04-21,Bryan,Georgia,13029,34,2 +2020-04-22,Bryan,Georgia,13029,37,2 +2020-04-23,Bryan,Georgia,13029,43,2 +2020-04-24,Bryan,Georgia,13029,47,2 +2020-04-25,Bryan,Georgia,13029,47,2 +2020-04-26,Bryan,Georgia,13029,47,2 +2020-04-27,Bryan,Georgia,13029,48,2 +2020-04-28,Bryan,Georgia,13029,50,2 +2020-04-29,Bryan,Georgia,13029,51,2 +2020-04-30,Bryan,Georgia,13029,52,2 +2020-05-01,Bryan,Georgia,13029,54,3 +2020-05-02,Bryan,Georgia,13029,54,3 +2020-05-03,Bryan,Georgia,13029,54,3 +2020-05-04,Bryan,Georgia,13029,55,4 +2020-05-05,Bryan,Georgia,13029,56,4 +2020-05-06,Bryan,Georgia,13029,57,4 +2020-05-07,Bryan,Georgia,13029,57,4 +2020-05-08,Bryan,Georgia,13029,59,4 +2020-05-09,Bryan,Georgia,13029,59,4 +2020-05-10,Bryan,Georgia,13029,60,4 +2020-05-11,Bryan,Georgia,13029,60,4 +2020-05-12,Bryan,Georgia,13029,61,4 +2020-05-13,Bryan,Georgia,13029,61,4 +2020-05-14,Bryan,Georgia,13029,61,4 +2020-05-15,Bryan,Georgia,13029,61,4 +2020-05-16,Bryan,Georgia,13029,61,4 +2020-05-17,Bryan,Georgia,13029,61,4 +2020-05-18,Bryan,Georgia,13029,65,4 +2020-05-19,Bryan,Georgia,13029,66,5 +2020-05-20,Bryan,Georgia,13029,67,5 +2020-05-21,Bryan,Georgia,13029,67,5 +2020-05-22,Bryan,Georgia,13029,68,5 +2020-05-23,Bryan,Georgia,13029,69,5 +2020-05-24,Bryan,Georgia,13029,70,5 +2020-05-25,Bryan,Georgia,13029,70,5 +2020-05-26,Bryan,Georgia,13029,72,5 +2020-05-27,Bryan,Georgia,13029,73,5 +2020-05-28,Bryan,Georgia,13029,74,5 +2020-05-29,Bryan,Georgia,13029,74,5 +2020-05-30,Bryan,Georgia,13029,74,5 +2020-05-31,Bryan,Georgia,13029,74,5 +2020-06-01,Bryan,Georgia,13029,75,5 +2020-06-02,Bryan,Georgia,13029,75,5 +2020-06-03,Bryan,Georgia,13029,77,5 +2020-06-04,Bryan,Georgia,13029,78,5 +2020-06-05,Bryan,Georgia,13029,77,5 +2020-06-06,Bryan,Georgia,13029,77,5 +2020-06-07,Bryan,Georgia,13029,77,5 +2020-06-08,Bryan,Georgia,13029,78,5 +2020-06-09,Bryan,Georgia,13029,80,5 +2020-06-10,Bryan,Georgia,13029,80,5 +2020-06-11,Bryan,Georgia,13029,83,5 +2020-06-12,Bryan,Georgia,13029,83,5 +2020-06-13,Bryan,Georgia,13029,85,5 +2020-06-14,Bryan,Georgia,13029,86,5 +2020-06-15,Bryan,Georgia,13029,86,5 +2020-06-16,Bryan,Georgia,13029,87,5 +2020-06-17,Bryan,Georgia,13029,89,5 +2020-06-18,Bryan,Georgia,13029,90,5 +2020-06-19,Bryan,Georgia,13029,94,5 +2020-06-20,Bryan,Georgia,13029,94,5 +2020-06-21,Bryan,Georgia,13029,95,5 +2020-06-22,Bryan,Georgia,13029,101,5 +2020-06-23,Bryan,Georgia,13029,107,5 +2020-06-24,Bryan,Georgia,13029,108,5 +2020-06-25,Bryan,Georgia,13029,110,5 +2020-06-26,Bryan,Georgia,13029,115,5 +2020-06-27,Bryan,Georgia,13029,116,5 +2020-06-28,Bryan,Georgia,13029,116,5 +2020-06-29,Bryan,Georgia,13029,117,5 +2020-06-30,Bryan,Georgia,13029,127,5 +2020-07-01,Bryan,Georgia,13029,134,5 +2020-07-02,Bryan,Georgia,13029,142,5 +2020-07-03,Bryan,Georgia,13029,147,5 +2020-07-04,Bryan,Georgia,13029,163,5 +2020-07-05,Bryan,Georgia,13029,166,5 +2020-07-06,Bryan,Georgia,13029,173,5 +2020-07-07,Bryan,Georgia,13029,180,5 +2020-07-08,Bryan,Georgia,13029,200,5 +2020-07-09,Bryan,Georgia,13029,209,5 +2020-03-28,Bulloch,Georgia,13031,1,0 +2020-03-29,Bulloch,Georgia,13031,1,0 +2020-03-30,Bulloch,Georgia,13031,1,0 +2020-03-31,Bulloch,Georgia,13031,2,0 +2020-04-01,Bulloch,Georgia,13031,2,0 +2020-04-02,Bulloch,Georgia,13031,4,0 +2020-04-03,Bulloch,Georgia,13031,5,0 +2020-04-04,Bulloch,Georgia,13031,5,0 +2020-04-05,Bulloch,Georgia,13031,5,0 +2020-04-06,Bulloch,Georgia,13031,9,0 +2020-04-07,Bulloch,Georgia,13031,10,0 +2020-04-08,Bulloch,Georgia,13031,12,0 +2020-04-09,Bulloch,Georgia,13031,15,0 +2020-04-10,Bulloch,Georgia,13031,15,0 +2020-04-11,Bulloch,Georgia,13031,16,1 +2020-04-12,Bulloch,Georgia,13031,17,1 +2020-04-13,Bulloch,Georgia,13031,18,1 +2020-04-14,Bulloch,Georgia,13031,20,1 +2020-04-15,Bulloch,Georgia,13031,22,1 +2020-04-16,Bulloch,Georgia,13031,23,1 +2020-04-17,Bulloch,Georgia,13031,26,1 +2020-04-18,Bulloch,Georgia,13031,27,1 +2020-04-19,Bulloch,Georgia,13031,28,1 +2020-04-20,Bulloch,Georgia,13031,30,2 +2020-04-21,Bulloch,Georgia,13031,32,2 +2020-04-22,Bulloch,Georgia,13031,33,2 +2020-04-23,Bulloch,Georgia,13031,33,2 +2020-04-24,Bulloch,Georgia,13031,34,2 +2020-04-25,Bulloch,Georgia,13031,34,2 +2020-04-26,Bulloch,Georgia,13031,34,2 +2020-04-27,Bulloch,Georgia,13031,34,2 +2020-04-28,Bulloch,Georgia,13031,34,2 +2020-04-29,Bulloch,Georgia,13031,36,2 +2020-04-30,Bulloch,Georgia,13031,38,2 +2020-05-01,Bulloch,Georgia,13031,40,2 +2020-05-02,Bulloch,Georgia,13031,42,2 +2020-05-03,Bulloch,Georgia,13031,42,2 +2020-05-04,Bulloch,Georgia,13031,43,2 +2020-05-05,Bulloch,Georgia,13031,43,2 +2020-05-06,Bulloch,Georgia,13031,42,2 +2020-05-07,Bulloch,Georgia,13031,41,2 +2020-05-08,Bulloch,Georgia,13031,42,2 +2020-05-09,Bulloch,Georgia,13031,42,2 +2020-05-10,Bulloch,Georgia,13031,44,2 +2020-05-11,Bulloch,Georgia,13031,44,2 +2020-05-12,Bulloch,Georgia,13031,45,2 +2020-05-13,Bulloch,Georgia,13031,45,2 +2020-05-14,Bulloch,Georgia,13031,45,2 +2020-05-15,Bulloch,Georgia,13031,45,2 +2020-05-16,Bulloch,Georgia,13031,45,2 +2020-05-17,Bulloch,Georgia,13031,45,2 +2020-05-18,Bulloch,Georgia,13031,45,2 +2020-05-19,Bulloch,Georgia,13031,45,2 +2020-05-20,Bulloch,Georgia,13031,46,2 +2020-05-21,Bulloch,Georgia,13031,48,2 +2020-05-22,Bulloch,Georgia,13031,49,2 +2020-05-23,Bulloch,Georgia,13031,52,2 +2020-05-24,Bulloch,Georgia,13031,52,2 +2020-05-25,Bulloch,Georgia,13031,52,2 +2020-05-26,Bulloch,Georgia,13031,53,2 +2020-05-27,Bulloch,Georgia,13031,54,2 +2020-05-28,Bulloch,Georgia,13031,60,2 +2020-05-29,Bulloch,Georgia,13031,60,2 +2020-05-30,Bulloch,Georgia,13031,60,2 +2020-05-31,Bulloch,Georgia,13031,60,2 +2020-06-01,Bulloch,Georgia,13031,65,2 +2020-06-02,Bulloch,Georgia,13031,67,2 +2020-06-03,Bulloch,Georgia,13031,77,2 +2020-06-04,Bulloch,Georgia,13031,77,2 +2020-06-05,Bulloch,Georgia,13031,81,2 +2020-06-06,Bulloch,Georgia,13031,82,2 +2020-06-07,Bulloch,Georgia,13031,82,2 +2020-06-08,Bulloch,Georgia,13031,83,3 +2020-06-09,Bulloch,Georgia,13031,84,3 +2020-06-10,Bulloch,Georgia,13031,87,3 +2020-06-11,Bulloch,Georgia,13031,87,3 +2020-06-12,Bulloch,Georgia,13031,92,3 +2020-06-13,Bulloch,Georgia,13031,95,3 +2020-06-14,Bulloch,Georgia,13031,96,3 +2020-06-15,Bulloch,Georgia,13031,108,3 +2020-06-16,Bulloch,Georgia,13031,110,3 +2020-06-17,Bulloch,Georgia,13031,115,3 +2020-06-18,Bulloch,Georgia,13031,119,3 +2020-06-19,Bulloch,Georgia,13031,139,3 +2020-06-20,Bulloch,Georgia,13031,147,3 +2020-06-21,Bulloch,Georgia,13031,151,3 +2020-06-22,Bulloch,Georgia,13031,164,3 +2020-06-23,Bulloch,Georgia,13031,183,3 +2020-06-24,Bulloch,Georgia,13031,219,3 +2020-06-25,Bulloch,Georgia,13031,232,3 +2020-06-26,Bulloch,Georgia,13031,261,3 +2020-06-27,Bulloch,Georgia,13031,272,4 +2020-06-28,Bulloch,Georgia,13031,286,4 +2020-06-29,Bulloch,Georgia,13031,299,4 +2020-06-30,Bulloch,Georgia,13031,339,4 +2020-07-01,Bulloch,Georgia,13031,391,4 +2020-07-02,Bulloch,Georgia,13031,411,4 +2020-07-03,Bulloch,Georgia,13031,465,4 +2020-07-04,Bulloch,Georgia,13031,483,4 +2020-07-05,Bulloch,Georgia,13031,508,4 +2020-07-06,Bulloch,Georgia,13031,515,4 +2020-07-07,Bulloch,Georgia,13031,532,4 +2020-07-08,Bulloch,Georgia,13031,546,4 +2020-07-09,Bulloch,Georgia,13031,561,4 +2020-03-23,Burke,Georgia,13033,1,0 +2020-03-24,Burke,Georgia,13033,1,0 +2020-03-25,Burke,Georgia,13033,1,0 +2020-03-26,Burke,Georgia,13033,3,0 +2020-03-27,Burke,Georgia,13033,3,0 +2020-03-28,Burke,Georgia,13033,3,0 +2020-03-29,Burke,Georgia,13033,4,0 +2020-03-30,Burke,Georgia,13033,4,0 +2020-03-31,Burke,Georgia,13033,8,0 +2020-04-01,Burke,Georgia,13033,8,0 +2020-04-02,Burke,Georgia,13033,8,0 +2020-04-03,Burke,Georgia,13033,8,0 +2020-04-04,Burke,Georgia,13033,9,0 +2020-04-05,Burke,Georgia,13033,9,0 +2020-04-06,Burke,Georgia,13033,10,0 +2020-04-07,Burke,Georgia,13033,15,0 +2020-04-08,Burke,Georgia,13033,19,0 +2020-04-09,Burke,Georgia,13033,21,1 +2020-04-10,Burke,Georgia,13033,24,0 +2020-04-11,Burke,Georgia,13033,28,1 +2020-04-12,Burke,Georgia,13033,28,1 +2020-04-13,Burke,Georgia,13033,28,2 +2020-04-14,Burke,Georgia,13033,28,2 +2020-04-15,Burke,Georgia,13033,28,2 +2020-04-16,Burke,Georgia,13033,35,2 +2020-04-17,Burke,Georgia,13033,38,2 +2020-04-18,Burke,Georgia,13033,47,2 +2020-04-19,Burke,Georgia,13033,47,2 +2020-04-20,Burke,Georgia,13033,48,3 +2020-04-21,Burke,Georgia,13033,51,3 +2020-04-22,Burke,Georgia,13033,53,3 +2020-04-23,Burke,Georgia,13033,60,3 +2020-04-24,Burke,Georgia,13033,71,3 +2020-04-25,Burke,Georgia,13033,71,3 +2020-04-26,Burke,Georgia,13033,77,3 +2020-04-27,Burke,Georgia,13033,74,3 +2020-04-28,Burke,Georgia,13033,74,3 +2020-04-29,Burke,Georgia,13033,84,3 +2020-04-30,Burke,Georgia,13033,85,3 +2020-05-01,Burke,Georgia,13033,86,3 +2020-05-02,Burke,Georgia,13033,86,3 +2020-05-03,Burke,Georgia,13033,86,3 +2020-05-04,Burke,Georgia,13033,87,3 +2020-05-05,Burke,Georgia,13033,88,3 +2020-05-06,Burke,Georgia,13033,89,3 +2020-05-07,Burke,Georgia,13033,90,3 +2020-05-08,Burke,Georgia,13033,101,4 +2020-05-09,Burke,Georgia,13033,103,4 +2020-05-10,Burke,Georgia,13033,107,4 +2020-05-11,Burke,Georgia,13033,109,4 +2020-05-12,Burke,Georgia,13033,110,3 +2020-05-13,Burke,Georgia,13033,113,3 +2020-05-14,Burke,Georgia,13033,112,3 +2020-05-15,Burke,Georgia,13033,112,3 +2020-05-16,Burke,Georgia,13033,112,3 +2020-05-17,Burke,Georgia,13033,112,3 +2020-05-18,Burke,Georgia,13033,116,4 +2020-05-19,Burke,Georgia,13033,118,4 +2020-05-20,Burke,Georgia,13033,122,4 +2020-05-21,Burke,Georgia,13033,120,4 +2020-05-22,Burke,Georgia,13033,120,4 +2020-05-23,Burke,Georgia,13033,120,4 +2020-05-24,Burke,Georgia,13033,121,4 +2020-05-25,Burke,Georgia,13033,123,4 +2020-05-26,Burke,Georgia,13033,123,5 +2020-05-27,Burke,Georgia,13033,123,5 +2020-05-28,Burke,Georgia,13033,121,5 +2020-05-29,Burke,Georgia,13033,121,5 +2020-05-30,Burke,Georgia,13033,121,5 +2020-05-31,Burke,Georgia,13033,121,5 +2020-06-01,Burke,Georgia,13033,122,6 +2020-06-02,Burke,Georgia,13033,122,6 +2020-06-03,Burke,Georgia,13033,123,6 +2020-06-04,Burke,Georgia,13033,123,6 +2020-06-05,Burke,Georgia,13033,121,6 +2020-06-06,Burke,Georgia,13033,124,6 +2020-06-07,Burke,Georgia,13033,125,6 +2020-06-08,Burke,Georgia,13033,125,6 +2020-06-09,Burke,Georgia,13033,125,6 +2020-06-10,Burke,Georgia,13033,125,6 +2020-06-11,Burke,Georgia,13033,125,6 +2020-06-12,Burke,Georgia,13033,125,6 +2020-06-13,Burke,Georgia,13033,125,6 +2020-06-14,Burke,Georgia,13033,125,6 +2020-06-15,Burke,Georgia,13033,126,6 +2020-06-16,Burke,Georgia,13033,126,6 +2020-06-17,Burke,Georgia,13033,127,6 +2020-06-18,Burke,Georgia,13033,128,6 +2020-06-19,Burke,Georgia,13033,132,6 +2020-06-20,Burke,Georgia,13033,132,6 +2020-06-21,Burke,Georgia,13033,133,6 +2020-06-22,Burke,Georgia,13033,135,6 +2020-06-23,Burke,Georgia,13033,134,6 +2020-06-24,Burke,Georgia,13033,136,6 +2020-06-25,Burke,Georgia,13033,138,6 +2020-06-26,Burke,Georgia,13033,138,6 +2020-06-27,Burke,Georgia,13033,138,6 +2020-06-28,Burke,Georgia,13033,141,6 +2020-06-29,Burke,Georgia,13033,143,6 +2020-06-30,Burke,Georgia,13033,144,7 +2020-07-01,Burke,Georgia,13033,146,7 +2020-07-02,Burke,Georgia,13033,146,7 +2020-07-03,Burke,Georgia,13033,150,7 +2020-07-04,Burke,Georgia,13033,154,7 +2020-07-05,Burke,Georgia,13033,156,7 +2020-07-06,Burke,Georgia,13033,157,7 +2020-07-07,Burke,Georgia,13033,158,7 +2020-07-08,Burke,Georgia,13033,161,7 +2020-07-09,Burke,Georgia,13033,161,7 +2020-03-22,Butts,Georgia,13035,2,0 +2020-03-23,Butts,Georgia,13035,2,0 +2020-03-24,Butts,Georgia,13035,2,0 +2020-03-25,Butts,Georgia,13035,3,0 +2020-03-26,Butts,Georgia,13035,3,0 +2020-03-27,Butts,Georgia,13035,3,0 +2020-03-28,Butts,Georgia,13035,5,0 +2020-03-29,Butts,Georgia,13035,5,0 +2020-03-30,Butts,Georgia,13035,6,0 +2020-03-31,Butts,Georgia,13035,8,0 +2020-04-01,Butts,Georgia,13035,8,0 +2020-04-02,Butts,Georgia,13035,9,0 +2020-04-03,Butts,Georgia,13035,9,0 +2020-04-04,Butts,Georgia,13035,10,0 +2020-04-05,Butts,Georgia,13035,12,0 +2020-04-06,Butts,Georgia,13035,17,0 +2020-04-07,Butts,Georgia,13035,18,0 +2020-04-08,Butts,Georgia,13035,23,0 +2020-04-09,Butts,Georgia,13035,25,0 +2020-04-10,Butts,Georgia,13035,27,0 +2020-04-11,Butts,Georgia,13035,28,0 +2020-04-12,Butts,Georgia,13035,29,0 +2020-04-13,Butts,Georgia,13035,30,0 +2020-04-14,Butts,Georgia,13035,35,0 +2020-04-15,Butts,Georgia,13035,36,0 +2020-04-16,Butts,Georgia,13035,38,0 +2020-04-17,Butts,Georgia,13035,40,0 +2020-04-18,Butts,Georgia,13035,41,0 +2020-04-19,Butts,Georgia,13035,50,0 +2020-04-20,Butts,Georgia,13035,80,2 +2020-04-21,Butts,Georgia,13035,81,1 +2020-04-22,Butts,Georgia,13035,125,1 +2020-04-23,Butts,Georgia,13035,126,2 +2020-04-24,Butts,Georgia,13035,125,2 +2020-04-25,Butts,Georgia,13035,125,2 +2020-04-26,Butts,Georgia,13035,126,3 +2020-04-27,Butts,Georgia,13035,126,3 +2020-04-28,Butts,Georgia,13035,130,3 +2020-04-29,Butts,Georgia,13035,134,4 +2020-04-30,Butts,Georgia,13035,145,11 +2020-05-01,Butts,Georgia,13035,153,16 +2020-05-02,Butts,Georgia,13035,151,16 +2020-05-03,Butts,Georgia,13035,150,16 +2020-05-04,Butts,Georgia,13035,152,17 +2020-05-05,Butts,Georgia,13035,158,17 +2020-05-06,Butts,Georgia,13035,163,17 +2020-05-07,Butts,Georgia,13035,167,17 +2020-05-08,Butts,Georgia,13035,171,17 +2020-05-09,Butts,Georgia,13035,172,17 +2020-05-10,Butts,Georgia,13035,180,17 +2020-05-11,Butts,Georgia,13035,189,17 +2020-05-12,Butts,Georgia,13035,191,17 +2020-05-13,Butts,Georgia,13035,192,17 +2020-05-14,Butts,Georgia,13035,196,17 +2020-05-15,Butts,Georgia,13035,196,17 +2020-05-16,Butts,Georgia,13035,197,17 +2020-05-17,Butts,Georgia,13035,197,17 +2020-05-18,Butts,Georgia,13035,199,16 +2020-05-19,Butts,Georgia,13035,199,17 +2020-05-20,Butts,Georgia,13035,205,18 +2020-05-21,Butts,Georgia,13035,205,18 +2020-05-22,Butts,Georgia,13035,206,19 +2020-05-23,Butts,Georgia,13035,208,20 +2020-05-24,Butts,Georgia,13035,209,20 +2020-05-25,Butts,Georgia,13035,211,21 +2020-05-26,Butts,Georgia,13035,214,21 +2020-05-27,Butts,Georgia,13035,219,21 +2020-05-28,Butts,Georgia,13035,223,22 +2020-05-29,Butts,Georgia,13035,229,22 +2020-05-30,Butts,Georgia,13035,229,22 +2020-05-31,Butts,Georgia,13035,228,24 +2020-06-01,Butts,Georgia,13035,228,24 +2020-06-02,Butts,Georgia,13035,234,24 +2020-06-03,Butts,Georgia,13035,237,24 +2020-06-04,Butts,Georgia,13035,240,24 +2020-06-05,Butts,Georgia,13035,242,24 +2020-06-06,Butts,Georgia,13035,243,24 +2020-06-07,Butts,Georgia,13035,244,24 +2020-06-08,Butts,Georgia,13035,244,24 +2020-06-09,Butts,Georgia,13035,253,25 +2020-06-10,Butts,Georgia,13035,254,26 +2020-06-11,Butts,Georgia,13035,255,26 +2020-06-12,Butts,Georgia,13035,242,28 +2020-06-13,Butts,Georgia,13035,243,31 +2020-06-14,Butts,Georgia,13035,245,32 +2020-06-15,Butts,Georgia,13035,245,32 +2020-06-16,Butts,Georgia,13035,246,32 +2020-06-17,Butts,Georgia,13035,247,32 +2020-06-18,Butts,Georgia,13035,248,32 +2020-06-19,Butts,Georgia,13035,250,32 +2020-06-20,Butts,Georgia,13035,246,32 +2020-06-21,Butts,Georgia,13035,246,32 +2020-06-22,Butts,Georgia,13035,247,32 +2020-06-23,Butts,Georgia,13035,249,33 +2020-06-24,Butts,Georgia,13035,254,33 +2020-06-25,Butts,Georgia,13035,260,33 +2020-06-26,Butts,Georgia,13035,261,33 +2020-06-27,Butts,Georgia,13035,263,33 +2020-06-28,Butts,Georgia,13035,264,33 +2020-06-29,Butts,Georgia,13035,265,33 +2020-06-30,Butts,Georgia,13035,274,33 +2020-07-01,Butts,Georgia,13035,276,33 +2020-07-02,Butts,Georgia,13035,280,33 +2020-07-03,Butts,Georgia,13035,288,33 +2020-07-04,Butts,Georgia,13035,291,33 +2020-07-05,Butts,Georgia,13035,293,33 +2020-07-06,Butts,Georgia,13035,297,33 +2020-07-07,Butts,Georgia,13035,320,34 +2020-07-08,Butts,Georgia,13035,325,34 +2020-07-09,Butts,Georgia,13035,329,34 +2020-03-26,Calhoun,Georgia,13037,1,0 +2020-03-27,Calhoun,Georgia,13037,2,0 +2020-03-28,Calhoun,Georgia,13037,3,0 +2020-03-29,Calhoun,Georgia,13037,3,0 +2020-03-30,Calhoun,Georgia,13037,6,0 +2020-03-31,Calhoun,Georgia,13037,9,0 +2020-04-01,Calhoun,Georgia,13037,10,1 +2020-04-02,Calhoun,Georgia,13037,10,1 +2020-04-03,Calhoun,Georgia,13037,11,1 +2020-04-04,Calhoun,Georgia,13037,15,1 +2020-04-05,Calhoun,Georgia,13037,17,1 +2020-04-06,Calhoun,Georgia,13037,20,1 +2020-04-07,Calhoun,Georgia,13037,31,1 +2020-04-08,Calhoun,Georgia,13037,35,2 +2020-04-09,Calhoun,Georgia,13037,37,2 +2020-04-10,Calhoun,Georgia,13037,39,2 +2020-04-11,Calhoun,Georgia,13037,41,2 +2020-04-12,Calhoun,Georgia,13037,45,2 +2020-04-13,Calhoun,Georgia,13037,53,2 +2020-04-14,Calhoun,Georgia,13037,54,2 +2020-04-15,Calhoun,Georgia,13037,59,2 +2020-04-16,Calhoun,Georgia,13037,59,2 +2020-04-17,Calhoun,Georgia,13037,57,2 +2020-04-18,Calhoun,Georgia,13037,57,2 +2020-04-19,Calhoun,Georgia,13037,58,2 +2020-04-20,Calhoun,Georgia,13037,61,2 +2020-04-21,Calhoun,Georgia,13037,75,2 +2020-04-22,Calhoun,Georgia,13037,76,3 +2020-04-23,Calhoun,Georgia,13037,82,3 +2020-04-24,Calhoun,Georgia,13037,84,3 +2020-04-25,Calhoun,Georgia,13037,86,3 +2020-04-26,Calhoun,Georgia,13037,85,3 +2020-04-27,Calhoun,Georgia,13037,87,3 +2020-04-28,Calhoun,Georgia,13037,90,4 +2020-04-29,Calhoun,Georgia,13037,91,4 +2020-04-30,Calhoun,Georgia,13037,106,4 +2020-05-01,Calhoun,Georgia,13037,103,4 +2020-05-02,Calhoun,Georgia,13037,103,4 +2020-05-03,Calhoun,Georgia,13037,107,4 +2020-05-04,Calhoun,Georgia,13037,107,4 +2020-05-05,Calhoun,Georgia,13037,106,5 +2020-05-06,Calhoun,Georgia,13037,109,4 +2020-05-07,Calhoun,Georgia,13037,110,5 +2020-05-08,Calhoun,Georgia,13037,113,5 +2020-05-09,Calhoun,Georgia,13037,116,5 +2020-05-10,Calhoun,Georgia,13037,117,5 +2020-05-11,Calhoun,Georgia,13037,117,5 +2020-05-12,Calhoun,Georgia,13037,117,5 +2020-05-13,Calhoun,Georgia,13037,117,5 +2020-05-14,Calhoun,Georgia,13037,117,5 +2020-05-15,Calhoun,Georgia,13037,124,7 +2020-05-16,Calhoun,Georgia,13037,123,7 +2020-05-17,Calhoun,Georgia,13037,122,6 +2020-05-18,Calhoun,Georgia,13037,122,6 +2020-05-19,Calhoun,Georgia,13037,122,6 +2020-05-20,Calhoun,Georgia,13037,122,6 +2020-05-21,Calhoun,Georgia,13037,121,6 +2020-05-22,Calhoun,Georgia,13037,123,5 +2020-05-23,Calhoun,Georgia,13037,126,5 +2020-05-24,Calhoun,Georgia,13037,126,5 +2020-05-25,Calhoun,Georgia,13037,128,5 +2020-05-26,Calhoun,Georgia,13037,129,5 +2020-05-27,Calhoun,Georgia,13037,130,5 +2020-05-28,Calhoun,Georgia,13037,130,5 +2020-05-29,Calhoun,Georgia,13037,131,5 +2020-05-30,Calhoun,Georgia,13037,132,5 +2020-05-31,Calhoun,Georgia,13037,132,6 +2020-06-01,Calhoun,Georgia,13037,132,5 +2020-06-02,Calhoun,Georgia,13037,134,6 +2020-06-03,Calhoun,Georgia,13037,135,7 +2020-06-04,Calhoun,Georgia,13037,136,6 +2020-06-05,Calhoun,Georgia,13037,139,6 +2020-06-06,Calhoun,Georgia,13037,138,6 +2020-06-07,Calhoun,Georgia,13037,138,6 +2020-06-08,Calhoun,Georgia,13037,138,6 +2020-06-09,Calhoun,Georgia,13037,140,6 +2020-06-10,Calhoun,Georgia,13037,139,6 +2020-06-11,Calhoun,Georgia,13037,145,6 +2020-06-12,Calhoun,Georgia,13037,146,6 +2020-06-13,Calhoun,Georgia,13037,146,6 +2020-06-14,Calhoun,Georgia,13037,146,6 +2020-06-15,Calhoun,Georgia,13037,148,6 +2020-06-16,Calhoun,Georgia,13037,149,6 +2020-06-17,Calhoun,Georgia,13037,152,6 +2020-06-18,Calhoun,Georgia,13037,154,6 +2020-06-19,Calhoun,Georgia,13037,155,6 +2020-06-20,Calhoun,Georgia,13037,157,6 +2020-06-21,Calhoun,Georgia,13037,158,6 +2020-06-22,Calhoun,Georgia,13037,159,6 +2020-06-23,Calhoun,Georgia,13037,162,5 +2020-06-24,Calhoun,Georgia,13037,161,5 +2020-06-25,Calhoun,Georgia,13037,161,5 +2020-06-26,Calhoun,Georgia,13037,161,5 +2020-06-27,Calhoun,Georgia,13037,161,5 +2020-06-28,Calhoun,Georgia,13037,161,5 +2020-06-29,Calhoun,Georgia,13037,162,5 +2020-06-30,Calhoun,Georgia,13037,162,5 +2020-07-01,Calhoun,Georgia,13037,163,5 +2020-07-02,Calhoun,Georgia,13037,163,6 +2020-07-03,Calhoun,Georgia,13037,165,6 +2020-07-04,Calhoun,Georgia,13037,166,6 +2020-07-05,Calhoun,Georgia,13037,167,6 +2020-07-06,Calhoun,Georgia,13037,168,6 +2020-07-07,Calhoun,Georgia,13037,169,6 +2020-07-08,Calhoun,Georgia,13037,168,6 +2020-07-09,Calhoun,Georgia,13037,168,6 +2020-03-24,Camden,Georgia,13039,1,0 +2020-03-25,Camden,Georgia,13039,1,0 +2020-03-26,Camden,Georgia,13039,2,0 +2020-03-27,Camden,Georgia,13039,2,0 +2020-03-28,Camden,Georgia,13039,2,0 +2020-03-29,Camden,Georgia,13039,2,0 +2020-03-30,Camden,Georgia,13039,4,0 +2020-03-31,Camden,Georgia,13039,4,0 +2020-04-01,Camden,Georgia,13039,5,0 +2020-04-02,Camden,Georgia,13039,6,0 +2020-04-03,Camden,Georgia,13039,6,0 +2020-04-04,Camden,Georgia,13039,6,0 +2020-04-05,Camden,Georgia,13039,9,0 +2020-04-06,Camden,Georgia,13039,15,0 +2020-04-07,Camden,Georgia,13039,17,0 +2020-04-08,Camden,Georgia,13039,19,0 +2020-04-09,Camden,Georgia,13039,19,0 +2020-04-10,Camden,Georgia,13039,19,0 +2020-04-11,Camden,Georgia,13039,20,0 +2020-04-12,Camden,Georgia,13039,21,0 +2020-04-13,Camden,Georgia,13039,22,0 +2020-04-14,Camden,Georgia,13039,22,0 +2020-04-15,Camden,Georgia,13039,24,0 +2020-04-16,Camden,Georgia,13039,26,0 +2020-04-17,Camden,Georgia,13039,27,0 +2020-04-18,Camden,Georgia,13039,28,0 +2020-04-19,Camden,Georgia,13039,28,0 +2020-04-20,Camden,Georgia,13039,27,0 +2020-04-21,Camden,Georgia,13039,27,0 +2020-04-22,Camden,Georgia,13039,27,0 +2020-04-23,Camden,Georgia,13039,28,1 +2020-04-24,Camden,Georgia,13039,28,1 +2020-04-25,Camden,Georgia,13039,28,1 +2020-04-26,Camden,Georgia,13039,28,1 +2020-04-27,Camden,Georgia,13039,30,1 +2020-04-28,Camden,Georgia,13039,31,1 +2020-04-29,Camden,Georgia,13039,32,1 +2020-04-30,Camden,Georgia,13039,33,1 +2020-05-01,Camden,Georgia,13039,33,1 +2020-05-02,Camden,Georgia,13039,34,1 +2020-05-03,Camden,Georgia,13039,35,1 +2020-05-04,Camden,Georgia,13039,33,1 +2020-05-05,Camden,Georgia,13039,34,1 +2020-05-06,Camden,Georgia,13039,34,1 +2020-05-07,Camden,Georgia,13039,35,1 +2020-05-08,Camden,Georgia,13039,35,1 +2020-05-09,Camden,Georgia,13039,36,1 +2020-05-10,Camden,Georgia,13039,37,1 +2020-05-11,Camden,Georgia,13039,37,1 +2020-05-12,Camden,Georgia,13039,37,1 +2020-05-13,Camden,Georgia,13039,43,1 +2020-05-14,Camden,Georgia,13039,46,1 +2020-05-15,Camden,Georgia,13039,46,1 +2020-05-16,Camden,Georgia,13039,47,1 +2020-05-17,Camden,Georgia,13039,47,1 +2020-05-18,Camden,Georgia,13039,50,1 +2020-05-19,Camden,Georgia,13039,51,1 +2020-05-20,Camden,Georgia,13039,52,1 +2020-05-21,Camden,Georgia,13039,53,1 +2020-05-22,Camden,Georgia,13039,53,1 +2020-05-23,Camden,Georgia,13039,53,1 +2020-05-24,Camden,Georgia,13039,56,1 +2020-05-25,Camden,Georgia,13039,55,1 +2020-05-26,Camden,Georgia,13039,55,1 +2020-05-27,Camden,Georgia,13039,56,1 +2020-05-28,Camden,Georgia,13039,62,1 +2020-05-29,Camden,Georgia,13039,62,1 +2020-05-30,Camden,Georgia,13039,61,1 +2020-05-31,Camden,Georgia,13039,62,1 +2020-06-01,Camden,Georgia,13039,63,1 +2020-06-02,Camden,Georgia,13039,64,1 +2020-06-03,Camden,Georgia,13039,66,1 +2020-06-04,Camden,Georgia,13039,68,1 +2020-06-05,Camden,Georgia,13039,69,1 +2020-06-06,Camden,Georgia,13039,69,1 +2020-06-07,Camden,Georgia,13039,69,1 +2020-06-08,Camden,Georgia,13039,69,1 +2020-06-09,Camden,Georgia,13039,70,1 +2020-06-10,Camden,Georgia,13039,70,1 +2020-06-11,Camden,Georgia,13039,70,1 +2020-06-12,Camden,Georgia,13039,71,1 +2020-06-13,Camden,Georgia,13039,73,1 +2020-06-14,Camden,Georgia,13039,73,1 +2020-06-15,Camden,Georgia,13039,75,1 +2020-06-16,Camden,Georgia,13039,75,1 +2020-06-17,Camden,Georgia,13039,75,1 +2020-06-18,Camden,Georgia,13039,76,1 +2020-06-19,Camden,Georgia,13039,81,1 +2020-06-20,Camden,Georgia,13039,92,1 +2020-06-21,Camden,Georgia,13039,96,1 +2020-06-22,Camden,Georgia,13039,99,1 +2020-06-23,Camden,Georgia,13039,102,1 +2020-06-24,Camden,Georgia,13039,104,1 +2020-06-25,Camden,Georgia,13039,106,1 +2020-06-26,Camden,Georgia,13039,112,1 +2020-06-27,Camden,Georgia,13039,114,2 +2020-06-28,Camden,Georgia,13039,113,2 +2020-06-29,Camden,Georgia,13039,114,2 +2020-06-30,Camden,Georgia,13039,128,2 +2020-07-01,Camden,Georgia,13039,135,2 +2020-07-02,Camden,Georgia,13039,147,2 +2020-07-03,Camden,Georgia,13039,170,2 +2020-07-04,Camden,Georgia,13039,183,2 +2020-07-05,Camden,Georgia,13039,188,2 +2020-07-06,Camden,Georgia,13039,204,2 +2020-07-07,Camden,Georgia,13039,212,2 +2020-07-08,Camden,Georgia,13039,233,2 +2020-07-09,Camden,Georgia,13039,235,2 +2020-03-29,Candler,Georgia,13043,1,0 +2020-03-30,Candler,Georgia,13043,1,0 +2020-03-31,Candler,Georgia,13043,1,0 +2020-04-01,Candler,Georgia,13043,1,0 +2020-04-02,Candler,Georgia,13043,1,0 +2020-04-03,Candler,Georgia,13043,1,0 +2020-04-04,Candler,Georgia,13043,1,0 +2020-04-05,Candler,Georgia,13043,2,0 +2020-04-06,Candler,Georgia,13043,2,0 +2020-04-07,Candler,Georgia,13043,4,0 +2020-04-08,Candler,Georgia,13043,4,0 +2020-04-09,Candler,Georgia,13043,4,0 +2020-04-10,Candler,Georgia,13043,4,0 +2020-04-11,Candler,Georgia,13043,4,0 +2020-04-12,Candler,Georgia,13043,4,0 +2020-04-13,Candler,Georgia,13043,4,0 +2020-04-14,Candler,Georgia,13043,4,0 +2020-04-15,Candler,Georgia,13043,4,0 +2020-04-16,Candler,Georgia,13043,4,0 +2020-04-17,Candler,Georgia,13043,4,0 +2020-04-18,Candler,Georgia,13043,5,0 +2020-04-19,Candler,Georgia,13043,7,0 +2020-04-20,Candler,Georgia,13043,7,0 +2020-04-21,Candler,Georgia,13043,7,0 +2020-04-22,Candler,Georgia,13043,7,0 +2020-04-23,Candler,Georgia,13043,7,0 +2020-04-24,Candler,Georgia,13043,7,0 +2020-04-25,Candler,Georgia,13043,7,0 +2020-04-26,Candler,Georgia,13043,8,0 +2020-04-27,Candler,Georgia,13043,8,0 +2020-04-28,Candler,Georgia,13043,7,0 +2020-04-29,Candler,Georgia,13043,7,0 +2020-04-30,Candler,Georgia,13043,7,0 +2020-05-01,Candler,Georgia,13043,7,0 +2020-05-02,Candler,Georgia,13043,7,0 +2020-05-03,Candler,Georgia,13043,7,0 +2020-05-04,Candler,Georgia,13043,7,0 +2020-05-05,Candler,Georgia,13043,7,0 +2020-05-06,Candler,Georgia,13043,7,0 +2020-05-07,Candler,Georgia,13043,7,0 +2020-05-08,Candler,Georgia,13043,7,0 +2020-05-09,Candler,Georgia,13043,8,0 +2020-05-10,Candler,Georgia,13043,9,0 +2020-05-11,Candler,Georgia,13043,9,0 +2020-05-12,Candler,Georgia,13043,10,0 +2020-05-13,Candler,Georgia,13043,10,0 +2020-05-14,Candler,Georgia,13043,10,0 +2020-05-15,Candler,Georgia,13043,10,0 +2020-05-16,Candler,Georgia,13043,10,0 +2020-05-17,Candler,Georgia,13043,10,0 +2020-05-18,Candler,Georgia,13043,10,0 +2020-05-19,Candler,Georgia,13043,10,0 +2020-05-20,Candler,Georgia,13043,12,0 +2020-05-21,Candler,Georgia,13043,12,0 +2020-05-22,Candler,Georgia,13043,12,0 +2020-05-23,Candler,Georgia,13043,13,0 +2020-05-24,Candler,Georgia,13043,13,0 +2020-05-25,Candler,Georgia,13043,13,0 +2020-05-26,Candler,Georgia,13043,13,0 +2020-05-27,Candler,Georgia,13043,13,0 +2020-05-28,Candler,Georgia,13043,13,0 +2020-05-29,Candler,Georgia,13043,13,0 +2020-05-30,Candler,Georgia,13043,13,0 +2020-05-31,Candler,Georgia,13043,13,0 +2020-06-01,Candler,Georgia,13043,13,0 +2020-06-02,Candler,Georgia,13043,14,0 +2020-06-03,Candler,Georgia,13043,14,0 +2020-06-04,Candler,Georgia,13043,13,0 +2020-06-05,Candler,Georgia,13043,13,0 +2020-06-06,Candler,Georgia,13043,13,0 +2020-06-07,Candler,Georgia,13043,13,0 +2020-06-08,Candler,Georgia,13043,15,0 +2020-06-09,Candler,Georgia,13043,15,0 +2020-06-10,Candler,Georgia,13043,17,0 +2020-06-11,Candler,Georgia,13043,17,0 +2020-06-12,Candler,Georgia,13043,17,0 +2020-06-13,Candler,Georgia,13043,17,0 +2020-06-14,Candler,Georgia,13043,17,0 +2020-06-15,Candler,Georgia,13043,17,0 +2020-06-16,Candler,Georgia,13043,17,0 +2020-06-17,Candler,Georgia,13043,18,0 +2020-06-18,Candler,Georgia,13043,19,0 +2020-06-19,Candler,Georgia,13043,20,0 +2020-06-20,Candler,Georgia,13043,21,0 +2020-06-21,Candler,Georgia,13043,21,0 +2020-06-22,Candler,Georgia,13043,21,0 +2020-06-23,Candler,Georgia,13043,22,0 +2020-06-24,Candler,Georgia,13043,26,0 +2020-06-25,Candler,Georgia,13043,25,0 +2020-06-26,Candler,Georgia,13043,29,0 +2020-06-27,Candler,Georgia,13043,29,0 +2020-06-28,Candler,Georgia,13043,32,0 +2020-06-29,Candler,Georgia,13043,33,0 +2020-06-30,Candler,Georgia,13043,37,0 +2020-07-01,Candler,Georgia,13043,43,0 +2020-07-02,Candler,Georgia,13043,46,0 +2020-07-03,Candler,Georgia,13043,57,0 +2020-07-04,Candler,Georgia,13043,58,0 +2020-07-05,Candler,Georgia,13043,62,0 +2020-07-06,Candler,Georgia,13043,66,0 +2020-07-07,Candler,Georgia,13043,70,0 +2020-07-08,Candler,Georgia,13043,73,0 +2020-07-09,Candler,Georgia,13043,74,0 +2020-03-20,Carroll,Georgia,13045,14,0 +2020-03-21,Carroll,Georgia,13045,16,0 +2020-03-22,Carroll,Georgia,13045,16,0 +2020-03-23,Carroll,Georgia,13045,21,0 +2020-03-24,Carroll,Georgia,13045,26,0 +2020-03-25,Carroll,Georgia,13045,50,0 +2020-03-26,Carroll,Georgia,13045,52,0 +2020-03-27,Carroll,Georgia,13045,61,0 +2020-03-28,Carroll,Georgia,13045,64,0 +2020-03-29,Carroll,Georgia,13045,70,0 +2020-03-30,Carroll,Georgia,13045,97,1 +2020-03-31,Carroll,Georgia,13045,123,1 +2020-04-01,Carroll,Georgia,13045,133,2 +2020-04-02,Carroll,Georgia,13045,139,2 +2020-04-03,Carroll,Georgia,13045,147,2 +2020-04-04,Carroll,Georgia,13045,158,2 +2020-04-05,Carroll,Georgia,13045,158,2 +2020-04-06,Carroll,Georgia,13045,163,4 +2020-04-07,Carroll,Georgia,13045,183,4 +2020-04-08,Carroll,Georgia,13045,184,4 +2020-04-09,Carroll,Georgia,13045,195,5 +2020-04-10,Carroll,Georgia,13045,200,5 +2020-04-11,Carroll,Georgia,13045,204,5 +2020-04-12,Carroll,Georgia,13045,210,5 +2020-04-13,Carroll,Georgia,13045,229,5 +2020-04-14,Carroll,Georgia,13045,235,6 +2020-04-15,Carroll,Georgia,13045,242,7 +2020-04-16,Carroll,Georgia,13045,258,7 +2020-04-17,Carroll,Georgia,13045,261,8 +2020-04-18,Carroll,Georgia,13045,271,9 +2020-04-19,Carroll,Georgia,13045,282,9 +2020-04-20,Carroll,Georgia,13045,305,11 +2020-04-21,Carroll,Georgia,13045,313,11 +2020-04-22,Carroll,Georgia,13045,304,11 +2020-04-23,Carroll,Georgia,13045,314,11 +2020-04-24,Carroll,Georgia,13045,320,11 +2020-04-25,Carroll,Georgia,13045,325,11 +2020-04-26,Carroll,Georgia,13045,326,11 +2020-04-27,Carroll,Georgia,13045,329,13 +2020-04-28,Carroll,Georgia,13045,342,13 +2020-04-29,Carroll,Georgia,13045,348,14 +2020-04-30,Carroll,Georgia,13045,358,14 +2020-05-01,Carroll,Georgia,13045,375,14 +2020-05-02,Carroll,Georgia,13045,383,14 +2020-05-03,Carroll,Georgia,13045,386,14 +2020-05-04,Carroll,Georgia,13045,382,15 +2020-05-05,Carroll,Georgia,13045,387,15 +2020-05-06,Carroll,Georgia,13045,391,15 +2020-05-07,Carroll,Georgia,13045,389,16 +2020-05-08,Carroll,Georgia,13045,390,17 +2020-05-09,Carroll,Georgia,13045,393,17 +2020-05-10,Carroll,Georgia,13045,395,17 +2020-05-11,Carroll,Georgia,13045,395,18 +2020-05-12,Carroll,Georgia,13045,398,19 +2020-05-13,Carroll,Georgia,13045,397,19 +2020-05-14,Carroll,Georgia,13045,400,19 +2020-05-15,Carroll,Georgia,13045,408,20 +2020-05-16,Carroll,Georgia,13045,409,20 +2020-05-17,Carroll,Georgia,13045,406,20 +2020-05-18,Carroll,Georgia,13045,408,22 +2020-05-19,Carroll,Georgia,13045,418,21 +2020-05-20,Carroll,Georgia,13045,425,21 +2020-05-21,Carroll,Georgia,13045,437,24 +2020-05-22,Carroll,Georgia,13045,439,24 +2020-05-23,Carroll,Georgia,13045,440,24 +2020-05-24,Carroll,Georgia,13045,445,24 +2020-05-25,Carroll,Georgia,13045,472,24 +2020-05-26,Carroll,Georgia,13045,490,24 +2020-05-27,Carroll,Georgia,13045,512,25 +2020-05-28,Carroll,Georgia,13045,516,25 +2020-05-29,Carroll,Georgia,13045,517,24 +2020-05-30,Carroll,Georgia,13045,518,24 +2020-05-31,Carroll,Georgia,13045,525,24 +2020-06-01,Carroll,Georgia,13045,526,24 +2020-06-02,Carroll,Georgia,13045,524,24 +2020-06-03,Carroll,Georgia,13045,535,26 +2020-06-04,Carroll,Georgia,13045,568,28 +2020-06-05,Carroll,Georgia,13045,578,28 +2020-06-06,Carroll,Georgia,13045,580,28 +2020-06-07,Carroll,Georgia,13045,580,28 +2020-06-08,Carroll,Georgia,13045,585,28 +2020-06-09,Carroll,Georgia,13045,587,33 +2020-06-10,Carroll,Georgia,13045,591,36 +2020-06-11,Carroll,Georgia,13045,593,37 +2020-06-12,Carroll,Georgia,13045,602,37 +2020-06-13,Carroll,Georgia,13045,611,37 +2020-06-14,Carroll,Georgia,13045,614,37 +2020-06-15,Carroll,Georgia,13045,614,37 +2020-06-16,Carroll,Georgia,13045,619,39 +2020-06-17,Carroll,Georgia,13045,619,40 +2020-06-18,Carroll,Georgia,13045,621,40 +2020-06-19,Carroll,Georgia,13045,627,40 +2020-06-20,Carroll,Georgia,13045,622,39 +2020-06-21,Carroll,Georgia,13045,625,39 +2020-06-22,Carroll,Georgia,13045,635,39 +2020-06-23,Carroll,Georgia,13045,646,39 +2020-06-24,Carroll,Georgia,13045,650,39 +2020-06-25,Carroll,Georgia,13045,651,39 +2020-06-26,Carroll,Georgia,13045,658,39 +2020-06-27,Carroll,Georgia,13045,669,39 +2020-06-28,Carroll,Georgia,13045,673,39 +2020-06-29,Carroll,Georgia,13045,678,39 +2020-06-30,Carroll,Georgia,13045,704,39 +2020-07-01,Carroll,Georgia,13045,730,39 +2020-07-02,Carroll,Georgia,13045,741,40 +2020-07-03,Carroll,Georgia,13045,770,40 +2020-07-04,Carroll,Georgia,13045,813,40 +2020-07-05,Carroll,Georgia,13045,846,40 +2020-07-06,Carroll,Georgia,13045,864,40 +2020-07-07,Carroll,Georgia,13045,881,40 +2020-07-08,Carroll,Georgia,13045,916,40 +2020-07-09,Carroll,Georgia,13045,946,40 +2020-03-23,Catoosa,Georgia,13047,1,0 +2020-03-24,Catoosa,Georgia,13047,1,0 +2020-03-25,Catoosa,Georgia,13047,1,0 +2020-03-26,Catoosa,Georgia,13047,1,0 +2020-03-27,Catoosa,Georgia,13047,1,0 +2020-03-28,Catoosa,Georgia,13047,3,0 +2020-03-29,Catoosa,Georgia,13047,3,0 +2020-03-30,Catoosa,Georgia,13047,3,0 +2020-03-31,Catoosa,Georgia,13047,4,0 +2020-04-01,Catoosa,Georgia,13047,4,0 +2020-04-02,Catoosa,Georgia,13047,5,0 +2020-04-03,Catoosa,Georgia,13047,6,0 +2020-04-04,Catoosa,Georgia,13047,6,0 +2020-04-05,Catoosa,Georgia,13047,6,0 +2020-04-06,Catoosa,Georgia,13047,6,0 +2020-04-07,Catoosa,Georgia,13047,7,0 +2020-04-08,Catoosa,Georgia,13047,8,0 +2020-04-09,Catoosa,Georgia,13047,10,0 +2020-04-10,Catoosa,Georgia,13047,12,0 +2020-04-11,Catoosa,Georgia,13047,12,0 +2020-04-12,Catoosa,Georgia,13047,13,0 +2020-04-13,Catoosa,Georgia,13047,13,0 +2020-04-14,Catoosa,Georgia,13047,15,0 +2020-04-15,Catoosa,Georgia,13047,17,0 +2020-04-16,Catoosa,Georgia,13047,18,0 +2020-04-17,Catoosa,Georgia,13047,19,0 +2020-04-18,Catoosa,Georgia,13047,19,0 +2020-04-19,Catoosa,Georgia,13047,20,0 +2020-04-20,Catoosa,Georgia,13047,23,0 +2020-04-21,Catoosa,Georgia,13047,28,0 +2020-04-22,Catoosa,Georgia,13047,45,0 +2020-04-23,Catoosa,Georgia,13047,45,0 +2020-04-24,Catoosa,Georgia,13047,46,0 +2020-04-25,Catoosa,Georgia,13047,46,0 +2020-04-26,Catoosa,Georgia,13047,46,0 +2020-04-27,Catoosa,Georgia,13047,46,0 +2020-04-28,Catoosa,Georgia,13047,46,0 +2020-04-29,Catoosa,Georgia,13047,46,0 +2020-04-30,Catoosa,Georgia,13047,47,0 +2020-05-01,Catoosa,Georgia,13047,48,0 +2020-05-02,Catoosa,Georgia,13047,51,0 +2020-05-03,Catoosa,Georgia,13047,46,0 +2020-05-04,Catoosa,Georgia,13047,51,0 +2020-05-05,Catoosa,Georgia,13047,52,0 +2020-05-06,Catoosa,Georgia,13047,52,0 +2020-05-07,Catoosa,Georgia,13047,52,0 +2020-05-08,Catoosa,Georgia,13047,52,0 +2020-05-09,Catoosa,Georgia,13047,53,0 +2020-05-10,Catoosa,Georgia,13047,53,0 +2020-05-11,Catoosa,Georgia,13047,55,0 +2020-05-12,Catoosa,Georgia,13047,61,0 +2020-05-13,Catoosa,Georgia,13047,66,0 +2020-05-14,Catoosa,Georgia,13047,70,0 +2020-05-15,Catoosa,Georgia,13047,71,0 +2020-05-16,Catoosa,Georgia,13047,72,0 +2020-05-17,Catoosa,Georgia,13047,71,0 +2020-05-18,Catoosa,Georgia,13047,71,0 +2020-05-19,Catoosa,Georgia,13047,73,0 +2020-05-20,Catoosa,Georgia,13047,77,0 +2020-05-21,Catoosa,Georgia,13047,79,0 +2020-05-22,Catoosa,Georgia,13047,97,0 +2020-05-23,Catoosa,Georgia,13047,97,0 +2020-05-24,Catoosa,Georgia,13047,101,0 +2020-05-25,Catoosa,Georgia,13047,105,0 +2020-05-26,Catoosa,Georgia,13047,111,0 +2020-05-27,Catoosa,Georgia,13047,115,0 +2020-05-28,Catoosa,Georgia,13047,119,0 +2020-05-29,Catoosa,Georgia,13047,129,0 +2020-05-30,Catoosa,Georgia,13047,133,0 +2020-05-31,Catoosa,Georgia,13047,133,0 +2020-06-01,Catoosa,Georgia,13047,140,0 +2020-06-02,Catoosa,Georgia,13047,142,0 +2020-06-03,Catoosa,Georgia,13047,145,0 +2020-06-04,Catoosa,Georgia,13047,146,0 +2020-06-05,Catoosa,Georgia,13047,147,0 +2020-06-06,Catoosa,Georgia,13047,157,0 +2020-06-07,Catoosa,Georgia,13047,159,0 +2020-06-08,Catoosa,Georgia,13047,164,0 +2020-06-09,Catoosa,Georgia,13047,164,0 +2020-06-10,Catoosa,Georgia,13047,175,0 +2020-06-11,Catoosa,Georgia,13047,184,0 +2020-06-12,Catoosa,Georgia,13047,217,0 +2020-06-13,Catoosa,Georgia,13047,226,0 +2020-06-14,Catoosa,Georgia,13047,228,0 +2020-06-15,Catoosa,Georgia,13047,234,0 +2020-06-16,Catoosa,Georgia,13047,249,3 +2020-06-17,Catoosa,Georgia,13047,254,3 +2020-06-18,Catoosa,Georgia,13047,256,6 +2020-06-19,Catoosa,Georgia,13047,272,6 +2020-06-20,Catoosa,Georgia,13047,275,6 +2020-06-21,Catoosa,Georgia,13047,275,6 +2020-06-22,Catoosa,Georgia,13047,276,6 +2020-06-23,Catoosa,Georgia,13047,283,6 +2020-06-24,Catoosa,Georgia,13047,291,6 +2020-06-25,Catoosa,Georgia,13047,297,6 +2020-06-26,Catoosa,Georgia,13047,302,7 +2020-06-27,Catoosa,Georgia,13047,303,7 +2020-06-28,Catoosa,Georgia,13047,303,7 +2020-06-29,Catoosa,Georgia,13047,304,7 +2020-06-30,Catoosa,Georgia,13047,312,8 +2020-07-01,Catoosa,Georgia,13047,314,8 +2020-07-02,Catoosa,Georgia,13047,319,8 +2020-07-03,Catoosa,Georgia,13047,321,8 +2020-07-04,Catoosa,Georgia,13047,323,8 +2020-07-05,Catoosa,Georgia,13047,323,8 +2020-07-06,Catoosa,Georgia,13047,324,8 +2020-07-07,Catoosa,Georgia,13047,333,8 +2020-07-08,Catoosa,Georgia,13047,334,8 +2020-07-09,Catoosa,Georgia,13047,339,8 +2020-03-10,Charlton,Georgia,13049,1,0 +2020-03-11,Charlton,Georgia,13049,1,0 +2020-03-12,Charlton,Georgia,13049,1,0 +2020-03-13,Charlton,Georgia,13049,1,0 +2020-03-14,Charlton,Georgia,13049,1,0 +2020-03-15,Charlton,Georgia,13049,1,0 +2020-03-16,Charlton,Georgia,13049,1,0 +2020-03-17,Charlton,Georgia,13049,1,0 +2020-03-18,Charlton,Georgia,13049,1,0 +2020-03-19,Charlton,Georgia,13049,1,0 +2020-03-20,Charlton,Georgia,13049,1,0 +2020-03-21,Charlton,Georgia,13049,1,0 +2020-03-22,Charlton,Georgia,13049,1,0 +2020-03-23,Charlton,Georgia,13049,1,0 +2020-03-24,Charlton,Georgia,13049,1,0 +2020-03-25,Charlton,Georgia,13049,1,0 +2020-03-26,Charlton,Georgia,13049,1,0 +2020-03-27,Charlton,Georgia,13049,1,0 +2020-03-28,Charlton,Georgia,13049,1,0 +2020-03-29,Charlton,Georgia,13049,1,0 +2020-03-30,Charlton,Georgia,13049,1,0 +2020-03-31,Charlton,Georgia,13049,1,0 +2020-04-01,Charlton,Georgia,13049,1,0 +2020-04-02,Charlton,Georgia,13049,1,0 +2020-04-03,Charlton,Georgia,13049,1,0 +2020-04-04,Charlton,Georgia,13049,1,0 +2020-04-05,Charlton,Georgia,13049,2,0 +2020-04-06,Charlton,Georgia,13049,3,0 +2020-04-07,Charlton,Georgia,13049,3,0 +2020-04-08,Charlton,Georgia,13049,3,0 +2020-04-09,Charlton,Georgia,13049,2,0 +2020-04-10,Charlton,Georgia,13049,2,0 +2020-04-11,Charlton,Georgia,13049,2,0 +2020-04-12,Charlton,Georgia,13049,3,0 +2020-04-13,Charlton,Georgia,13049,4,0 +2020-04-14,Charlton,Georgia,13049,4,0 +2020-04-15,Charlton,Georgia,13049,5,0 +2020-04-16,Charlton,Georgia,13049,5,0 +2020-04-17,Charlton,Georgia,13049,5,0 +2020-04-18,Charlton,Georgia,13049,5,0 +2020-04-19,Charlton,Georgia,13049,6,0 +2020-04-20,Charlton,Georgia,13049,6,0 +2020-04-21,Charlton,Georgia,13049,7,0 +2020-04-22,Charlton,Georgia,13049,7,0 +2020-04-23,Charlton,Georgia,13049,7,0 +2020-04-24,Charlton,Georgia,13049,7,0 +2020-04-25,Charlton,Georgia,13049,7,0 +2020-04-26,Charlton,Georgia,13049,7,0 +2020-04-27,Charlton,Georgia,13049,8,0 +2020-04-28,Charlton,Georgia,13049,9,0 +2020-04-29,Charlton,Georgia,13049,8,0 +2020-04-30,Charlton,Georgia,13049,8,0 +2020-05-01,Charlton,Georgia,13049,11,0 +2020-05-02,Charlton,Georgia,13049,11,0 +2020-05-03,Charlton,Georgia,13049,12,0 +2020-05-04,Charlton,Georgia,13049,12,0 +2020-05-05,Charlton,Georgia,13049,13,0 +2020-05-06,Charlton,Georgia,13049,13,0 +2020-05-07,Charlton,Georgia,13049,14,0 +2020-05-08,Charlton,Georgia,13049,17,0 +2020-05-09,Charlton,Georgia,13049,17,0 +2020-05-10,Charlton,Georgia,13049,17,0 +2020-05-11,Charlton,Georgia,13049,17,1 +2020-05-12,Charlton,Georgia,13049,17,1 +2020-05-13,Charlton,Georgia,13049,19,1 +2020-05-14,Charlton,Georgia,13049,20,1 +2020-05-15,Charlton,Georgia,13049,26,1 +2020-05-16,Charlton,Georgia,13049,26,1 +2020-05-17,Charlton,Georgia,13049,26,1 +2020-05-18,Charlton,Georgia,13049,26,1 +2020-05-19,Charlton,Georgia,13049,29,1 +2020-05-20,Charlton,Georgia,13049,28,1 +2020-05-21,Charlton,Georgia,13049,28,1 +2020-05-22,Charlton,Georgia,13049,28,1 +2020-05-23,Charlton,Georgia,13049,29,1 +2020-05-24,Charlton,Georgia,13049,29,1 +2020-05-25,Charlton,Georgia,13049,29,1 +2020-05-26,Charlton,Georgia,13049,30,1 +2020-05-27,Charlton,Georgia,13049,33,1 +2020-05-28,Charlton,Georgia,13049,33,1 +2020-05-29,Charlton,Georgia,13049,32,1 +2020-05-30,Charlton,Georgia,13049,32,1 +2020-05-31,Charlton,Georgia,13049,32,1 +2020-06-01,Charlton,Georgia,13049,33,1 +2020-06-02,Charlton,Georgia,13049,33,1 +2020-06-03,Charlton,Georgia,13049,33,1 +2020-06-04,Charlton,Georgia,13049,32,1 +2020-06-05,Charlton,Georgia,13049,32,1 +2020-06-06,Charlton,Georgia,13049,32,1 +2020-06-07,Charlton,Georgia,13049,32,1 +2020-06-08,Charlton,Georgia,13049,34,1 +2020-06-09,Charlton,Georgia,13049,36,1 +2020-06-10,Charlton,Georgia,13049,36,1 +2020-06-11,Charlton,Georgia,13049,37,1 +2020-06-12,Charlton,Georgia,13049,38,1 +2020-06-13,Charlton,Georgia,13049,38,1 +2020-06-14,Charlton,Georgia,13049,38,1 +2020-06-15,Charlton,Georgia,13049,39,1 +2020-06-16,Charlton,Georgia,13049,37,2 +2020-06-17,Charlton,Georgia,13049,36,2 +2020-06-18,Charlton,Georgia,13049,36,2 +2020-06-19,Charlton,Georgia,13049,38,2 +2020-06-20,Charlton,Georgia,13049,38,2 +2020-06-21,Charlton,Georgia,13049,38,2 +2020-06-22,Charlton,Georgia,13049,41,2 +2020-06-23,Charlton,Georgia,13049,43,2 +2020-06-24,Charlton,Georgia,13049,43,2 +2020-06-25,Charlton,Georgia,13049,41,2 +2020-06-26,Charlton,Georgia,13049,43,2 +2020-06-27,Charlton,Georgia,13049,43,2 +2020-06-28,Charlton,Georgia,13049,45,2 +2020-06-29,Charlton,Georgia,13049,46,2 +2020-06-30,Charlton,Georgia,13049,51,2 +2020-07-01,Charlton,Georgia,13049,56,2 +2020-07-02,Charlton,Georgia,13049,58,2 +2020-07-03,Charlton,Georgia,13049,61,2 +2020-07-04,Charlton,Georgia,13049,65,2 +2020-07-05,Charlton,Georgia,13049,66,2 +2020-07-06,Charlton,Georgia,13049,70,2 +2020-07-07,Charlton,Georgia,13049,73,2 +2020-07-08,Charlton,Georgia,13049,76,2 +2020-07-09,Charlton,Georgia,13049,81,2 +2020-03-20,Chatham,Georgia,13051,2,0 +2020-03-21,Chatham,Georgia,13051,4,0 +2020-03-22,Chatham,Georgia,13051,4,0 +2020-03-23,Chatham,Georgia,13051,4,0 +2020-03-24,Chatham,Georgia,13051,7,0 +2020-03-25,Chatham,Georgia,13051,7,0 +2020-03-26,Chatham,Georgia,13051,9,0 +2020-03-27,Chatham,Georgia,13051,15,0 +2020-03-28,Chatham,Georgia,13051,15,0 +2020-03-29,Chatham,Georgia,13051,16,0 +2020-03-30,Chatham,Georgia,13051,19,2 +2020-03-31,Chatham,Georgia,13051,32,2 +2020-04-01,Chatham,Georgia,13051,39,2 +2020-04-02,Chatham,Georgia,13051,44,3 +2020-04-03,Chatham,Georgia,13051,65,3 +2020-04-04,Chatham,Georgia,13051,81,3 +2020-04-05,Chatham,Georgia,13051,90,3 +2020-04-06,Chatham,Georgia,13051,110,4 +2020-04-07,Chatham,Georgia,13051,120,4 +2020-04-08,Chatham,Georgia,13051,124,4 +2020-04-09,Chatham,Georgia,13051,131,4 +2020-04-10,Chatham,Georgia,13051,140,5 +2020-04-11,Chatham,Georgia,13051,146,5 +2020-04-12,Chatham,Georgia,13051,148,5 +2020-04-13,Chatham,Georgia,13051,154,5 +2020-04-14,Chatham,Georgia,13051,157,5 +2020-04-15,Chatham,Georgia,13051,160,5 +2020-04-16,Chatham,Georgia,13051,170,5 +2020-04-17,Chatham,Georgia,13051,174,5 +2020-04-18,Chatham,Georgia,13051,178,5 +2020-04-19,Chatham,Georgia,13051,178,5 +2020-04-20,Chatham,Georgia,13051,184,6 +2020-04-21,Chatham,Georgia,13051,185,6 +2020-04-22,Chatham,Georgia,13051,193,7 +2020-04-23,Chatham,Georgia,13051,199,6 +2020-04-24,Chatham,Georgia,13051,205,6 +2020-04-25,Chatham,Georgia,13051,206,6 +2020-04-26,Chatham,Georgia,13051,206,6 +2020-04-27,Chatham,Georgia,13051,208,7 +2020-04-28,Chatham,Georgia,13051,217,7 +2020-04-29,Chatham,Georgia,13051,221,9 +2020-04-30,Chatham,Georgia,13051,226,9 +2020-05-01,Chatham,Georgia,13051,230,9 +2020-05-02,Chatham,Georgia,13051,230,9 +2020-05-03,Chatham,Georgia,13051,237,9 +2020-05-04,Chatham,Georgia,13051,246,10 +2020-05-05,Chatham,Georgia,13051,267,12 +2020-05-06,Chatham,Georgia,13051,282,12 +2020-05-07,Chatham,Georgia,13051,285,12 +2020-05-08,Chatham,Georgia,13051,291,12 +2020-05-09,Chatham,Georgia,13051,299,12 +2020-05-10,Chatham,Georgia,13051,304,12 +2020-05-11,Chatham,Georgia,13051,311,13 +2020-05-12,Chatham,Georgia,13051,327,14 +2020-05-13,Chatham,Georgia,13051,337,14 +2020-05-14,Chatham,Georgia,13051,344,14 +2020-05-15,Chatham,Georgia,13051,353,14 +2020-05-16,Chatham,Georgia,13051,356,14 +2020-05-17,Chatham,Georgia,13051,354,14 +2020-05-18,Chatham,Georgia,13051,363,14 +2020-05-19,Chatham,Georgia,13051,379,16 +2020-05-20,Chatham,Georgia,13051,388,16 +2020-05-21,Chatham,Georgia,13051,406,18 +2020-05-22,Chatham,Georgia,13051,428,21 +2020-05-23,Chatham,Georgia,13051,435,21 +2020-05-24,Chatham,Georgia,13051,445,21 +2020-05-25,Chatham,Georgia,13051,448,21 +2020-05-26,Chatham,Georgia,13051,472,23 +2020-05-27,Chatham,Georgia,13051,476,23 +2020-05-28,Chatham,Georgia,13051,477,24 +2020-05-29,Chatham,Georgia,13051,491,24 +2020-05-30,Chatham,Georgia,13051,501,24 +2020-05-31,Chatham,Georgia,13051,501,24 +2020-06-01,Chatham,Georgia,13051,516,25 +2020-06-02,Chatham,Georgia,13051,518,26 +2020-06-03,Chatham,Georgia,13051,522,26 +2020-06-04,Chatham,Georgia,13051,525,27 +2020-06-05,Chatham,Georgia,13051,542,28 +2020-06-06,Chatham,Georgia,13051,545,27 +2020-06-07,Chatham,Georgia,13051,545,27 +2020-06-08,Chatham,Georgia,13051,552,28 +2020-06-09,Chatham,Georgia,13051,556,29 +2020-06-10,Chatham,Georgia,13051,562,29 +2020-06-11,Chatham,Georgia,13051,584,29 +2020-06-12,Chatham,Georgia,13051,597,29 +2020-06-13,Chatham,Georgia,13051,614,29 +2020-06-14,Chatham,Georgia,13051,616,29 +2020-06-15,Chatham,Georgia,13051,636,31 +2020-06-16,Chatham,Georgia,13051,651,30 +2020-06-17,Chatham,Georgia,13051,684,31 +2020-06-18,Chatham,Georgia,13051,685,31 +2020-06-19,Chatham,Georgia,13051,743,32 +2020-06-20,Chatham,Georgia,13051,760,32 +2020-06-21,Chatham,Georgia,13051,779,32 +2020-06-22,Chatham,Georgia,13051,807,33 +2020-06-23,Chatham,Georgia,13051,872,35 +2020-06-24,Chatham,Georgia,13051,935,35 +2020-06-25,Chatham,Georgia,13051,999,36 +2020-06-26,Chatham,Georgia,13051,1044,37 +2020-06-27,Chatham,Georgia,13051,1088,37 +2020-06-28,Chatham,Georgia,13051,1095,37 +2020-06-29,Chatham,Georgia,13051,1140,37 +2020-06-30,Chatham,Georgia,13051,1321,37 +2020-07-01,Chatham,Georgia,13051,1379,37 +2020-07-02,Chatham,Georgia,13051,1505,37 +2020-07-03,Chatham,Georgia,13051,1647,37 +2020-07-04,Chatham,Georgia,13051,1790,37 +2020-07-05,Chatham,Georgia,13051,1831,37 +2020-07-06,Chatham,Georgia,13051,1917,38 +2020-07-07,Chatham,Georgia,13051,1985,38 +2020-07-08,Chatham,Georgia,13051,2068,38 +2020-07-09,Chatham,Georgia,13051,2117,38 +2020-03-27,Chattahoochee,Georgia,13053,1,0 +2020-03-28,Chattahoochee,Georgia,13053,1,0 +2020-03-29,Chattahoochee,Georgia,13053,1,0 +2020-03-30,Chattahoochee,Georgia,13053,1,0 +2020-03-31,Chattahoochee,Georgia,13053,1,0 +2020-04-01,Chattahoochee,Georgia,13053,2,0 +2020-04-02,Chattahoochee,Georgia,13053,2,0 +2020-04-03,Chattahoochee,Georgia,13053,2,0 +2020-04-04,Chattahoochee,Georgia,13053,2,0 +2020-04-05,Chattahoochee,Georgia,13053,2,0 +2020-04-06,Chattahoochee,Georgia,13053,2,0 +2020-04-07,Chattahoochee,Georgia,13053,2,0 +2020-04-08,Chattahoochee,Georgia,13053,2,0 +2020-04-09,Chattahoochee,Georgia,13053,3,0 +2020-04-10,Chattahoochee,Georgia,13053,3,0 +2020-04-11,Chattahoochee,Georgia,13053,3,0 +2020-04-12,Chattahoochee,Georgia,13053,3,0 +2020-04-13,Chattahoochee,Georgia,13053,4,0 +2020-04-14,Chattahoochee,Georgia,13053,5,0 +2020-04-15,Chattahoochee,Georgia,13053,5,0 +2020-04-16,Chattahoochee,Georgia,13053,6,0 +2020-04-17,Chattahoochee,Georgia,13053,6,0 +2020-04-18,Chattahoochee,Georgia,13053,6,0 +2020-04-19,Chattahoochee,Georgia,13053,6,0 +2020-04-20,Chattahoochee,Georgia,13053,7,0 +2020-04-21,Chattahoochee,Georgia,13053,7,0 +2020-04-22,Chattahoochee,Georgia,13053,8,0 +2020-04-23,Chattahoochee,Georgia,13053,8,0 +2020-04-24,Chattahoochee,Georgia,13053,8,0 +2020-04-25,Chattahoochee,Georgia,13053,8,0 +2020-04-26,Chattahoochee,Georgia,13053,8,0 +2020-04-27,Chattahoochee,Georgia,13053,9,0 +2020-04-28,Chattahoochee,Georgia,13053,11,0 +2020-04-29,Chattahoochee,Georgia,13053,11,0 +2020-04-30,Chattahoochee,Georgia,13053,12,0 +2020-05-01,Chattahoochee,Georgia,13053,12,0 +2020-05-02,Chattahoochee,Georgia,13053,12,0 +2020-05-03,Chattahoochee,Georgia,13053,13,0 +2020-05-04,Chattahoochee,Georgia,13053,13,0 +2020-05-05,Chattahoochee,Georgia,13053,13,0 +2020-05-06,Chattahoochee,Georgia,13053,12,0 +2020-05-07,Chattahoochee,Georgia,13053,13,0 +2020-05-08,Chattahoochee,Georgia,13053,12,0 +2020-05-09,Chattahoochee,Georgia,13053,12,0 +2020-05-10,Chattahoochee,Georgia,13053,12,0 +2020-05-11,Chattahoochee,Georgia,13053,14,0 +2020-05-12,Chattahoochee,Georgia,13053,15,0 +2020-05-13,Chattahoochee,Georgia,13053,16,0 +2020-05-14,Chattahoochee,Georgia,13053,17,0 +2020-05-15,Chattahoochee,Georgia,13053,19,0 +2020-05-16,Chattahoochee,Georgia,13053,19,0 +2020-05-17,Chattahoochee,Georgia,13053,19,0 +2020-05-18,Chattahoochee,Georgia,13053,19,0 +2020-05-19,Chattahoochee,Georgia,13053,20,0 +2020-05-20,Chattahoochee,Georgia,13053,19,0 +2020-05-21,Chattahoochee,Georgia,13053,19,0 +2020-05-22,Chattahoochee,Georgia,13053,20,0 +2020-05-23,Chattahoochee,Georgia,13053,22,0 +2020-05-24,Chattahoochee,Georgia,13053,24,0 +2020-05-25,Chattahoochee,Georgia,13053,25,0 +2020-05-26,Chattahoochee,Georgia,13053,30,0 +2020-05-27,Chattahoochee,Georgia,13053,33,0 +2020-05-28,Chattahoochee,Georgia,13053,33,0 +2020-05-29,Chattahoochee,Georgia,13053,39,0 +2020-05-30,Chattahoochee,Georgia,13053,43,0 +2020-05-31,Chattahoochee,Georgia,13053,54,0 +2020-06-01,Chattahoochee,Georgia,13053,114,0 +2020-06-02,Chattahoochee,Georgia,13053,154,0 +2020-06-03,Chattahoochee,Georgia,13053,160,0 +2020-06-04,Chattahoochee,Georgia,13053,166,0 +2020-06-05,Chattahoochee,Georgia,13053,172,0 +2020-06-06,Chattahoochee,Georgia,13053,172,0 +2020-06-07,Chattahoochee,Georgia,13053,173,0 +2020-06-08,Chattahoochee,Georgia,13053,173,0 +2020-06-09,Chattahoochee,Georgia,13053,180,0 +2020-06-10,Chattahoochee,Georgia,13053,191,0 +2020-06-11,Chattahoochee,Georgia,13053,232,0 +2020-06-12,Chattahoochee,Georgia,13053,246,0 +2020-06-13,Chattahoochee,Georgia,13053,251,0 +2020-06-14,Chattahoochee,Georgia,13053,251,0 +2020-06-15,Chattahoochee,Georgia,13053,252,0 +2020-06-16,Chattahoochee,Georgia,13053,272,0 +2020-06-17,Chattahoochee,Georgia,13053,304,0 +2020-06-18,Chattahoochee,Georgia,13053,305,1 +2020-06-19,Chattahoochee,Georgia,13053,305,1 +2020-06-20,Chattahoochee,Georgia,13053,312,1 +2020-06-21,Chattahoochee,Georgia,13053,315,1 +2020-06-22,Chattahoochee,Georgia,13053,317,1 +2020-06-23,Chattahoochee,Georgia,13053,317,0 +2020-06-24,Chattahoochee,Georgia,13053,345,0 +2020-06-25,Chattahoochee,Georgia,13053,363,0 +2020-06-26,Chattahoochee,Georgia,13053,393,0 +2020-06-27,Chattahoochee,Georgia,13053,398,0 +2020-06-28,Chattahoochee,Georgia,13053,404,0 +2020-06-29,Chattahoochee,Georgia,13053,405,0 +2020-06-30,Chattahoochee,Georgia,13053,410,0 +2020-07-01,Chattahoochee,Georgia,13053,413,0 +2020-07-02,Chattahoochee,Georgia,13053,421,0 +2020-07-03,Chattahoochee,Georgia,13053,426,0 +2020-07-04,Chattahoochee,Georgia,13053,428,0 +2020-07-05,Chattahoochee,Georgia,13053,429,0 +2020-07-06,Chattahoochee,Georgia,13053,429,0 +2020-07-07,Chattahoochee,Georgia,13053,430,0 +2020-07-08,Chattahoochee,Georgia,13053,433,0 +2020-07-09,Chattahoochee,Georgia,13053,433,0 +2020-03-22,Chattooga,Georgia,13055,1,0 +2020-03-23,Chattooga,Georgia,13055,1,0 +2020-03-24,Chattooga,Georgia,13055,1,0 +2020-03-25,Chattooga,Georgia,13055,1,0 +2020-03-26,Chattooga,Georgia,13055,1,0 +2020-03-27,Chattooga,Georgia,13055,1,0 +2020-03-28,Chattooga,Georgia,13055,1,0 +2020-03-29,Chattooga,Georgia,13055,1,0 +2020-03-30,Chattooga,Georgia,13055,3,0 +2020-03-31,Chattooga,Georgia,13055,3,0 +2020-04-01,Chattooga,Georgia,13055,3,0 +2020-04-02,Chattooga,Georgia,13055,3,0 +2020-04-03,Chattooga,Georgia,13055,3,0 +2020-04-04,Chattooga,Georgia,13055,3,0 +2020-04-05,Chattooga,Georgia,13055,3,0 +2020-04-06,Chattooga,Georgia,13055,4,1 +2020-04-07,Chattooga,Georgia,13055,4,1 +2020-04-08,Chattooga,Georgia,13055,4,1 +2020-04-09,Chattooga,Georgia,13055,4,1 +2020-04-10,Chattooga,Georgia,13055,4,1 +2020-04-11,Chattooga,Georgia,13055,6,1 +2020-04-12,Chattooga,Georgia,13055,7,1 +2020-04-13,Chattooga,Georgia,13055,7,1 +2020-04-14,Chattooga,Georgia,13055,8,1 +2020-04-15,Chattooga,Georgia,13055,9,1 +2020-04-16,Chattooga,Georgia,13055,9,1 +2020-04-17,Chattooga,Georgia,13055,9,1 +2020-04-18,Chattooga,Georgia,13055,9,1 +2020-04-19,Chattooga,Georgia,13055,9,1 +2020-04-20,Chattooga,Georgia,13055,9,1 +2020-04-21,Chattooga,Georgia,13055,10,1 +2020-04-22,Chattooga,Georgia,13055,11,1 +2020-04-23,Chattooga,Georgia,13055,11,1 +2020-04-24,Chattooga,Georgia,13055,13,1 +2020-04-25,Chattooga,Georgia,13055,13,1 +2020-04-26,Chattooga,Georgia,13055,13,1 +2020-04-27,Chattooga,Georgia,13055,14,1 +2020-04-28,Chattooga,Georgia,13055,16,1 +2020-04-29,Chattooga,Georgia,13055,16,2 +2020-04-30,Chattooga,Georgia,13055,16,2 +2020-05-01,Chattooga,Georgia,13055,16,2 +2020-05-02,Chattooga,Georgia,13055,16,2 +2020-05-03,Chattooga,Georgia,13055,15,2 +2020-05-04,Chattooga,Georgia,13055,15,2 +2020-05-05,Chattooga,Georgia,13055,15,2 +2020-05-06,Chattooga,Georgia,13055,15,2 +2020-05-07,Chattooga,Georgia,13055,16,2 +2020-05-08,Chattooga,Georgia,13055,16,2 +2020-05-09,Chattooga,Georgia,13055,16,2 +2020-05-10,Chattooga,Georgia,13055,16,2 +2020-05-11,Chattooga,Georgia,13055,16,2 +2020-05-12,Chattooga,Georgia,13055,16,2 +2020-05-13,Chattooga,Georgia,13055,16,2 +2020-05-14,Chattooga,Georgia,13055,16,2 +2020-05-15,Chattooga,Georgia,13055,15,2 +2020-05-16,Chattooga,Georgia,13055,15,2 +2020-05-17,Chattooga,Georgia,13055,15,2 +2020-05-18,Chattooga,Georgia,13055,15,2 +2020-05-19,Chattooga,Georgia,13055,17,2 +2020-05-20,Chattooga,Georgia,13055,19,2 +2020-05-21,Chattooga,Georgia,13055,20,2 +2020-05-22,Chattooga,Georgia,13055,24,2 +2020-05-23,Chattooga,Georgia,13055,24,2 +2020-05-24,Chattooga,Georgia,13055,24,2 +2020-05-25,Chattooga,Georgia,13055,24,2 +2020-05-26,Chattooga,Georgia,13055,24,2 +2020-05-27,Chattooga,Georgia,13055,24,2 +2020-05-28,Chattooga,Georgia,13055,24,2 +2020-05-29,Chattooga,Georgia,13055,24,2 +2020-05-30,Chattooga,Georgia,13055,24,2 +2020-05-31,Chattooga,Georgia,13055,24,2 +2020-06-01,Chattooga,Georgia,13055,24,2 +2020-06-02,Chattooga,Georgia,13055,25,2 +2020-06-03,Chattooga,Georgia,13055,25,2 +2020-06-04,Chattooga,Georgia,13055,25,2 +2020-06-05,Chattooga,Georgia,13055,25,2 +2020-06-06,Chattooga,Georgia,13055,25,2 +2020-06-07,Chattooga,Georgia,13055,25,2 +2020-06-08,Chattooga,Georgia,13055,25,2 +2020-06-09,Chattooga,Georgia,13055,27,2 +2020-06-10,Chattooga,Georgia,13055,27,2 +2020-06-11,Chattooga,Georgia,13055,30,2 +2020-06-12,Chattooga,Georgia,13055,32,2 +2020-06-13,Chattooga,Georgia,13055,34,2 +2020-06-14,Chattooga,Georgia,13055,34,2 +2020-06-15,Chattooga,Georgia,13055,36,2 +2020-06-16,Chattooga,Georgia,13055,41,2 +2020-06-17,Chattooga,Georgia,13055,43,2 +2020-06-18,Chattooga,Georgia,13055,46,2 +2020-06-19,Chattooga,Georgia,13055,49,2 +2020-06-20,Chattooga,Georgia,13055,49,2 +2020-06-21,Chattooga,Georgia,13055,49,2 +2020-06-22,Chattooga,Georgia,13055,49,2 +2020-06-23,Chattooga,Georgia,13055,50,2 +2020-06-24,Chattooga,Georgia,13055,52,2 +2020-06-25,Chattooga,Georgia,13055,53,2 +2020-06-26,Chattooga,Georgia,13055,56,2 +2020-06-27,Chattooga,Georgia,13055,56,2 +2020-06-28,Chattooga,Georgia,13055,56,2 +2020-06-29,Chattooga,Georgia,13055,56,2 +2020-06-30,Chattooga,Georgia,13055,61,2 +2020-07-01,Chattooga,Georgia,13055,62,2 +2020-07-02,Chattooga,Georgia,13055,63,2 +2020-07-03,Chattooga,Georgia,13055,67,2 +2020-07-04,Chattooga,Georgia,13055,67,2 +2020-07-05,Chattooga,Georgia,13055,67,2 +2020-07-06,Chattooga,Georgia,13055,67,2 +2020-07-07,Chattooga,Georgia,13055,73,2 +2020-07-08,Chattooga,Georgia,13055,76,2 +2020-07-09,Chattooga,Georgia,13055,77,2 +2020-03-08,Cherokee,Georgia,13057,1,0 +2020-03-09,Cherokee,Georgia,13057,1,0 +2020-03-10,Cherokee,Georgia,13057,1,0 +2020-03-11,Cherokee,Georgia,13057,1,0 +2020-03-12,Cherokee,Georgia,13057,1,0 +2020-03-13,Cherokee,Georgia,13057,4,0 +2020-03-14,Cherokee,Georgia,13057,4,0 +2020-03-15,Cherokee,Georgia,13057,4,0 +2020-03-16,Cherokee,Georgia,13057,4,0 +2020-03-17,Cherokee,Georgia,13057,4,0 +2020-03-18,Cherokee,Georgia,13057,6,0 +2020-03-19,Cherokee,Georgia,13057,13,0 +2020-03-20,Cherokee,Georgia,13057,16,0 +2020-03-21,Cherokee,Georgia,13057,17,0 +2020-03-22,Cherokee,Georgia,13057,18,0 +2020-03-23,Cherokee,Georgia,13057,24,0 +2020-03-24,Cherokee,Georgia,13057,30,0 +2020-03-25,Cherokee,Georgia,13057,36,0 +2020-03-26,Cherokee,Georgia,13057,44,0 +2020-03-27,Cherokee,Georgia,13057,50,1 +2020-03-28,Cherokee,Georgia,13057,54,1 +2020-03-29,Cherokee,Georgia,13057,60,1 +2020-03-30,Cherokee,Georgia,13057,69,1 +2020-03-31,Cherokee,Georgia,13057,78,3 +2020-04-01,Cherokee,Georgia,13057,85,4 +2020-04-02,Cherokee,Georgia,13057,94,4 +2020-04-03,Cherokee,Georgia,13057,114,5 +2020-04-04,Cherokee,Georgia,13057,120,5 +2020-04-05,Cherokee,Georgia,13057,124,5 +2020-04-06,Cherokee,Georgia,13057,141,5 +2020-04-07,Cherokee,Georgia,13057,147,6 +2020-04-08,Cherokee,Georgia,13057,155,6 +2020-04-09,Cherokee,Georgia,13057,167,6 +2020-04-10,Cherokee,Georgia,13057,177,7 +2020-04-11,Cherokee,Georgia,13057,186,7 +2020-04-12,Cherokee,Georgia,13057,187,7 +2020-04-13,Cherokee,Georgia,13057,204,7 +2020-04-14,Cherokee,Georgia,13057,219,7 +2020-04-15,Cherokee,Georgia,13057,232,8 +2020-04-16,Cherokee,Georgia,13057,245,8 +2020-04-17,Cherokee,Georgia,13057,274,8 +2020-04-18,Cherokee,Georgia,13057,285,8 +2020-04-19,Cherokee,Georgia,13057,300,8 +2020-04-20,Cherokee,Georgia,13057,317,9 +2020-04-21,Cherokee,Georgia,13057,324,10 +2020-04-22,Cherokee,Georgia,13057,340,10 +2020-04-23,Cherokee,Georgia,13057,365,10 +2020-04-24,Cherokee,Georgia,13057,367,10 +2020-04-25,Cherokee,Georgia,13057,368,10 +2020-04-26,Cherokee,Georgia,13057,374,10 +2020-04-27,Cherokee,Georgia,13057,393,10 +2020-04-28,Cherokee,Georgia,13057,436,11 +2020-04-29,Cherokee,Georgia,13057,457,11 +2020-04-30,Cherokee,Georgia,13057,467,11 +2020-05-01,Cherokee,Georgia,13057,474,13 +2020-05-02,Cherokee,Georgia,13057,482,13 +2020-05-03,Cherokee,Georgia,13057,491,13 +2020-05-04,Cherokee,Georgia,13057,509,14 +2020-05-05,Cherokee,Georgia,13057,519,15 +2020-05-06,Cherokee,Georgia,13057,544,16 +2020-05-07,Cherokee,Georgia,13057,569,17 +2020-05-08,Cherokee,Georgia,13057,578,17 +2020-05-09,Cherokee,Georgia,13057,593,17 +2020-05-10,Cherokee,Georgia,13057,609,17 +2020-05-11,Cherokee,Georgia,13057,621,18 +2020-05-12,Cherokee,Georgia,13057,635,21 +2020-05-13,Cherokee,Georgia,13057,655,21 +2020-05-14,Cherokee,Georgia,13057,676,21 +2020-05-15,Cherokee,Georgia,13057,695,23 +2020-05-16,Cherokee,Georgia,13057,700,24 +2020-05-17,Cherokee,Georgia,13057,714,24 +2020-05-18,Cherokee,Georgia,13057,723,26 +2020-05-19,Cherokee,Georgia,13057,745,26 +2020-05-20,Cherokee,Georgia,13057,758,26 +2020-05-21,Cherokee,Georgia,13057,769,29 +2020-05-22,Cherokee,Georgia,13057,790,29 +2020-05-23,Cherokee,Georgia,13057,807,29 +2020-05-24,Cherokee,Georgia,13057,810,29 +2020-05-25,Cherokee,Georgia,13057,831,29 +2020-05-26,Cherokee,Georgia,13057,850,31 +2020-05-27,Cherokee,Georgia,13057,861,31 +2020-05-28,Cherokee,Georgia,13057,869,32 +2020-05-29,Cherokee,Georgia,13057,885,32 +2020-05-30,Cherokee,Georgia,13057,890,33 +2020-05-31,Cherokee,Georgia,13057,909,33 +2020-06-01,Cherokee,Georgia,13057,910,33 +2020-06-02,Cherokee,Georgia,13057,911,33 +2020-06-03,Cherokee,Georgia,13057,923,33 +2020-06-04,Cherokee,Georgia,13057,934,33 +2020-06-05,Cherokee,Georgia,13057,944,34 +2020-06-06,Cherokee,Georgia,13057,958,34 +2020-06-07,Cherokee,Georgia,13057,959,34 +2020-06-08,Cherokee,Georgia,13057,975,35 +2020-06-09,Cherokee,Georgia,13057,978,35 +2020-06-10,Cherokee,Georgia,13057,990,35 +2020-06-11,Cherokee,Georgia,13057,1000,37 +2020-06-12,Cherokee,Georgia,13057,1014,38 +2020-06-13,Cherokee,Georgia,13057,1017,38 +2020-06-14,Cherokee,Georgia,13057,1029,38 +2020-06-15,Cherokee,Georgia,13057,1040,38 +2020-06-16,Cherokee,Georgia,13057,1052,38 +2020-06-17,Cherokee,Georgia,13057,1058,39 +2020-06-18,Cherokee,Georgia,13057,1064,39 +2020-06-19,Cherokee,Georgia,13057,1079,39 +2020-06-20,Cherokee,Georgia,13057,1093,39 +2020-06-21,Cherokee,Georgia,13057,1099,39 +2020-06-22,Cherokee,Georgia,13057,1114,39 +2020-06-23,Cherokee,Georgia,13057,1126,41 +2020-06-24,Cherokee,Georgia,13057,1156,42 +2020-06-25,Cherokee,Georgia,13057,1177,44 +2020-06-26,Cherokee,Georgia,13057,1189,44 +2020-06-27,Cherokee,Georgia,13057,1219,44 +2020-06-28,Cherokee,Georgia,13057,1253,44 +2020-06-29,Cherokee,Georgia,13057,1283,44 +2020-06-30,Cherokee,Georgia,13057,1315,43 +2020-07-01,Cherokee,Georgia,13057,1348,43 +2020-07-02,Cherokee,Georgia,13057,1368,44 +2020-07-03,Cherokee,Georgia,13057,1399,44 +2020-07-04,Cherokee,Georgia,13057,1434,44 +2020-07-05,Cherokee,Georgia,13057,1460,44 +2020-07-06,Cherokee,Georgia,13057,1491,44 +2020-07-07,Cherokee,Georgia,13057,1551,45 +2020-07-08,Cherokee,Georgia,13057,1593,46 +2020-07-09,Cherokee,Georgia,13057,1621,46 +2020-03-15,Clarke,Georgia,13059,2,0 +2020-03-16,Clarke,Georgia,13059,3,0 +2020-03-17,Clarke,Georgia,13059,3,0 +2020-03-18,Clarke,Georgia,13059,4,0 +2020-03-19,Clarke,Georgia,13059,7,0 +2020-03-20,Clarke,Georgia,13059,9,0 +2020-03-21,Clarke,Georgia,13059,9,0 +2020-03-22,Clarke,Georgia,13059,10,0 +2020-03-23,Clarke,Georgia,13059,14,0 +2020-03-24,Clarke,Georgia,13059,17,0 +2020-03-25,Clarke,Georgia,13059,21,0 +2020-03-26,Clarke,Georgia,13059,29,0 +2020-03-27,Clarke,Georgia,13059,34,2 +2020-03-28,Clarke,Georgia,13059,35,2 +2020-03-29,Clarke,Georgia,13059,35,2 +2020-03-30,Clarke,Georgia,13059,47,5 +2020-03-31,Clarke,Georgia,13059,51,5 +2020-04-01,Clarke,Georgia,13059,54,7 +2020-04-02,Clarke,Georgia,13059,55,7 +2020-04-03,Clarke,Georgia,13059,59,8 +2020-04-04,Clarke,Georgia,13059,62,8 +2020-04-05,Clarke,Georgia,13059,62,8 +2020-04-06,Clarke,Georgia,13059,72,8 +2020-04-07,Clarke,Georgia,13059,78,9 +2020-04-08,Clarke,Georgia,13059,81,9 +2020-04-09,Clarke,Georgia,13059,82,10 +2020-04-10,Clarke,Georgia,13059,81,10 +2020-04-11,Clarke,Georgia,13059,82,11 +2020-04-12,Clarke,Georgia,13059,84,11 +2020-04-13,Clarke,Georgia,13059,88,12 +2020-04-14,Clarke,Georgia,13059,95,12 +2020-04-15,Clarke,Georgia,13059,102,12 +2020-04-16,Clarke,Georgia,13059,102,12 +2020-04-17,Clarke,Georgia,13059,106,13 +2020-04-18,Clarke,Georgia,13059,106,13 +2020-04-19,Clarke,Georgia,13059,110,13 +2020-04-20,Clarke,Georgia,13059,114,13 +2020-04-21,Clarke,Georgia,13059,116,13 +2020-04-22,Clarke,Georgia,13059,118,13 +2020-04-23,Clarke,Georgia,13059,122,13 +2020-04-24,Clarke,Georgia,13059,127,13 +2020-04-25,Clarke,Georgia,13059,127,13 +2020-04-26,Clarke,Georgia,13059,123,13 +2020-04-27,Clarke,Georgia,13059,140,13 +2020-04-28,Clarke,Georgia,13059,142,13 +2020-04-29,Clarke,Georgia,13059,144,13 +2020-04-30,Clarke,Georgia,13059,150,13 +2020-05-01,Clarke,Georgia,13059,155,13 +2020-05-02,Clarke,Georgia,13059,156,13 +2020-05-03,Clarke,Georgia,13059,156,13 +2020-05-04,Clarke,Georgia,13059,161,13 +2020-05-05,Clarke,Georgia,13059,167,13 +2020-05-06,Clarke,Georgia,13059,174,13 +2020-05-07,Clarke,Georgia,13059,176,13 +2020-05-08,Clarke,Georgia,13059,180,13 +2020-05-09,Clarke,Georgia,13059,182,13 +2020-05-10,Clarke,Georgia,13059,186,13 +2020-05-11,Clarke,Georgia,13059,188,13 +2020-05-12,Clarke,Georgia,13059,189,13 +2020-05-13,Clarke,Georgia,13059,190,13 +2020-05-14,Clarke,Georgia,13059,192,13 +2020-05-15,Clarke,Georgia,13059,197,13 +2020-05-16,Clarke,Georgia,13059,195,13 +2020-05-17,Clarke,Georgia,13059,194,13 +2020-05-18,Clarke,Georgia,13059,200,13 +2020-05-19,Clarke,Georgia,13059,200,13 +2020-05-20,Clarke,Georgia,13059,200,13 +2020-05-21,Clarke,Georgia,13059,208,13 +2020-05-22,Clarke,Georgia,13059,219,13 +2020-05-23,Clarke,Georgia,13059,222,13 +2020-05-24,Clarke,Georgia,13059,224,13 +2020-05-25,Clarke,Georgia,13059,232,13 +2020-05-26,Clarke,Georgia,13059,249,13 +2020-05-27,Clarke,Georgia,13059,259,13 +2020-05-28,Clarke,Georgia,13059,270,13 +2020-05-29,Clarke,Georgia,13059,279,13 +2020-05-30,Clarke,Georgia,13059,283,13 +2020-05-31,Clarke,Georgia,13059,283,13 +2020-06-01,Clarke,Georgia,13059,293,13 +2020-06-02,Clarke,Georgia,13059,295,14 +2020-06-03,Clarke,Georgia,13059,296,14 +2020-06-04,Clarke,Georgia,13059,299,15 +2020-06-05,Clarke,Georgia,13059,315,15 +2020-06-06,Clarke,Georgia,13059,318,15 +2020-06-07,Clarke,Georgia,13059,321,15 +2020-06-08,Clarke,Georgia,13059,325,15 +2020-06-09,Clarke,Georgia,13059,328,15 +2020-06-10,Clarke,Georgia,13059,331,15 +2020-06-11,Clarke,Georgia,13059,332,15 +2020-06-12,Clarke,Georgia,13059,338,15 +2020-06-13,Clarke,Georgia,13059,341,15 +2020-06-14,Clarke,Georgia,13059,342,15 +2020-06-15,Clarke,Georgia,13059,348,15 +2020-06-16,Clarke,Georgia,13059,353,15 +2020-06-17,Clarke,Georgia,13059,361,15 +2020-06-18,Clarke,Georgia,13059,363,15 +2020-06-19,Clarke,Georgia,13059,374,15 +2020-06-20,Clarke,Georgia,13059,376,15 +2020-06-21,Clarke,Georgia,13059,381,15 +2020-06-22,Clarke,Georgia,13059,391,15 +2020-06-23,Clarke,Georgia,13059,408,15 +2020-06-24,Clarke,Georgia,13059,419,15 +2020-06-25,Clarke,Georgia,13059,441,15 +2020-06-26,Clarke,Georgia,13059,463,15 +2020-06-27,Clarke,Georgia,13059,481,15 +2020-06-28,Clarke,Georgia,13059,485,15 +2020-06-29,Clarke,Georgia,13059,490,15 +2020-06-30,Clarke,Georgia,13059,531,15 +2020-07-01,Clarke,Georgia,13059,574,15 +2020-07-02,Clarke,Georgia,13059,607,15 +2020-07-03,Clarke,Georgia,13059,661,15 +2020-07-04,Clarke,Georgia,13059,690,15 +2020-07-05,Clarke,Georgia,13059,714,15 +2020-07-06,Clarke,Georgia,13059,738,15 +2020-07-07,Clarke,Georgia,13059,775,15 +2020-07-08,Clarke,Georgia,13059,804,15 +2020-07-09,Clarke,Georgia,13059,841,15 +2020-03-30,Clay,Georgia,13061,1,0 +2020-03-31,Clay,Georgia,13061,5,0 +2020-04-01,Clay,Georgia,13061,5,0 +2020-04-02,Clay,Georgia,13061,7,0 +2020-04-03,Clay,Georgia,13061,7,0 +2020-04-04,Clay,Georgia,13061,7,0 +2020-04-05,Clay,Georgia,13061,7,0 +2020-04-06,Clay,Georgia,13061,7,1 +2020-04-07,Clay,Georgia,13061,12,1 +2020-04-08,Clay,Georgia,13061,13,1 +2020-04-09,Clay,Georgia,13061,15,1 +2020-04-10,Clay,Georgia,13061,15,1 +2020-04-11,Clay,Georgia,13061,15,1 +2020-04-12,Clay,Georgia,13061,16,1 +2020-04-13,Clay,Georgia,13061,16,1 +2020-04-14,Clay,Georgia,13061,16,1 +2020-04-15,Clay,Georgia,13061,17,2 +2020-04-16,Clay,Georgia,13061,19,2 +2020-04-17,Clay,Georgia,13061,19,2 +2020-04-18,Clay,Georgia,13061,20,2 +2020-04-19,Clay,Georgia,13061,20,2 +2020-04-20,Clay,Georgia,13061,20,2 +2020-04-21,Clay,Georgia,13061,20,2 +2020-04-22,Clay,Georgia,13061,20,2 +2020-04-23,Clay,Georgia,13061,20,2 +2020-04-24,Clay,Georgia,13061,20,2 +2020-04-25,Clay,Georgia,13061,20,2 +2020-04-26,Clay,Georgia,13061,20,2 +2020-04-27,Clay,Georgia,13061,20,2 +2020-04-28,Clay,Georgia,13061,21,2 +2020-04-29,Clay,Georgia,13061,21,2 +2020-04-30,Clay,Georgia,13061,22,3 +2020-05-01,Clay,Georgia,13061,23,3 +2020-05-02,Clay,Georgia,13061,25,3 +2020-05-03,Clay,Georgia,13061,25,3 +2020-05-04,Clay,Georgia,13061,25,3 +2020-05-05,Clay,Georgia,13061,25,3 +2020-05-06,Clay,Georgia,13061,27,3 +2020-05-07,Clay,Georgia,13061,27,3 +2020-05-08,Clay,Georgia,13061,27,3 +2020-05-09,Clay,Georgia,13061,27,3 +2020-05-10,Clay,Georgia,13061,27,3 +2020-05-11,Clay,Georgia,13061,27,3 +2020-05-12,Clay,Georgia,13061,26,3 +2020-05-13,Clay,Georgia,13061,26,3 +2020-05-14,Clay,Georgia,13061,28,3 +2020-05-15,Clay,Georgia,13061,28,3 +2020-05-16,Clay,Georgia,13061,29,3 +2020-05-17,Clay,Georgia,13061,30,3 +2020-05-18,Clay,Georgia,13061,30,3 +2020-05-19,Clay,Georgia,13061,30,3 +2020-05-20,Clay,Georgia,13061,30,2 +2020-05-21,Clay,Georgia,13061,32,2 +2020-05-22,Clay,Georgia,13061,34,2 +2020-05-23,Clay,Georgia,13061,35,2 +2020-05-24,Clay,Georgia,13061,35,2 +2020-05-25,Clay,Georgia,13061,35,2 +2020-05-26,Clay,Georgia,13061,35,2 +2020-05-27,Clay,Georgia,13061,37,2 +2020-05-28,Clay,Georgia,13061,37,2 +2020-05-29,Clay,Georgia,13061,39,2 +2020-05-30,Clay,Georgia,13061,39,2 +2020-05-31,Clay,Georgia,13061,39,2 +2020-06-01,Clay,Georgia,13061,39,2 +2020-06-02,Clay,Georgia,13061,39,2 +2020-06-03,Clay,Georgia,13061,41,2 +2020-06-04,Clay,Georgia,13061,42,2 +2020-06-05,Clay,Georgia,13061,44,2 +2020-06-06,Clay,Georgia,13061,43,2 +2020-06-07,Clay,Georgia,13061,47,2 +2020-06-08,Clay,Georgia,13061,49,2 +2020-06-09,Clay,Georgia,13061,49,2 +2020-06-10,Clay,Georgia,13061,50,2 +2020-06-11,Clay,Georgia,13061,51,2 +2020-06-12,Clay,Georgia,13061,51,2 +2020-06-13,Clay,Georgia,13061,52,2 +2020-06-14,Clay,Georgia,13061,52,2 +2020-06-15,Clay,Georgia,13061,52,2 +2020-06-16,Clay,Georgia,13061,53,2 +2020-06-17,Clay,Georgia,13061,53,2 +2020-06-18,Clay,Georgia,13061,55,2 +2020-06-19,Clay,Georgia,13061,56,2 +2020-06-20,Clay,Georgia,13061,56,2 +2020-06-21,Clay,Georgia,13061,56,2 +2020-06-22,Clay,Georgia,13061,56,2 +2020-06-23,Clay,Georgia,13061,56,2 +2020-06-24,Clay,Georgia,13061,56,2 +2020-06-25,Clay,Georgia,13061,56,2 +2020-06-26,Clay,Georgia,13061,56,2 +2020-06-27,Clay,Georgia,13061,57,2 +2020-06-28,Clay,Georgia,13061,57,2 +2020-06-29,Clay,Georgia,13061,57,2 +2020-06-30,Clay,Georgia,13061,57,2 +2020-07-01,Clay,Georgia,13061,57,2 +2020-07-02,Clay,Georgia,13061,56,2 +2020-07-03,Clay,Georgia,13061,56,2 +2020-07-04,Clay,Georgia,13061,56,2 +2020-07-05,Clay,Georgia,13061,56,2 +2020-07-06,Clay,Georgia,13061,56,2 +2020-07-07,Clay,Georgia,13061,56,2 +2020-07-08,Clay,Georgia,13061,56,2 +2020-07-09,Clay,Georgia,13061,56,2 +2020-03-15,Clayton,Georgia,13063,2,0 +2020-03-16,Clayton,Georgia,13063,5,0 +2020-03-17,Clayton,Georgia,13063,5,0 +2020-03-18,Clayton,Georgia,13063,6,0 +2020-03-19,Clayton,Georgia,13063,6,0 +2020-03-20,Clayton,Georgia,13063,10,0 +2020-03-21,Clayton,Georgia,13063,12,0 +2020-03-22,Clayton,Georgia,13063,13,1 +2020-03-23,Clayton,Georgia,13063,19,1 +2020-03-24,Clayton,Georgia,13063,21,1 +2020-03-25,Clayton,Georgia,13063,29,1 +2020-03-26,Clayton,Georgia,13063,37,1 +2020-03-27,Clayton,Georgia,13063,53,1 +2020-03-28,Clayton,Georgia,13063,57,1 +2020-03-29,Clayton,Georgia,13063,59,1 +2020-03-30,Clayton,Georgia,13063,62,2 +2020-03-31,Clayton,Georgia,13063,112,3 +2020-04-01,Clayton,Georgia,13063,128,5 +2020-04-02,Clayton,Georgia,13063,165,6 +2020-04-03,Clayton,Georgia,13063,206,8 +2020-04-04,Clayton,Georgia,13063,235,9 +2020-04-05,Clayton,Georgia,13063,238,9 +2020-04-06,Clayton,Georgia,13063,254,9 +2020-04-07,Clayton,Georgia,13063,278,10 +2020-04-08,Clayton,Georgia,13063,289,10 +2020-04-09,Clayton,Georgia,13063,298,11 +2020-04-10,Clayton,Georgia,13063,328,11 +2020-04-11,Clayton,Georgia,13063,339,11 +2020-04-12,Clayton,Georgia,13063,372,11 +2020-04-13,Clayton,Georgia,13063,396,12 +2020-04-14,Clayton,Georgia,13063,435,12 +2020-04-15,Clayton,Georgia,13063,462,13 +2020-04-16,Clayton,Georgia,13063,473,13 +2020-04-17,Clayton,Georgia,13063,499,16 +2020-04-18,Clayton,Georgia,13063,505,17 +2020-04-19,Clayton,Georgia,13063,520,17 +2020-04-20,Clayton,Georgia,13063,540,20 +2020-04-21,Clayton,Georgia,13063,547,21 +2020-04-22,Clayton,Georgia,13063,549,21 +2020-04-23,Clayton,Georgia,13063,616,21 +2020-04-24,Clayton,Georgia,13063,629,21 +2020-04-25,Clayton,Georgia,13063,642,21 +2020-04-26,Clayton,Georgia,13063,641,21 +2020-04-27,Clayton,Georgia,13063,649,24 +2020-04-28,Clayton,Georgia,13063,672,24 +2020-04-29,Clayton,Georgia,13063,693,27 +2020-04-30,Clayton,Georgia,13063,716,30 +2020-05-01,Clayton,Georgia,13063,733,33 +2020-05-02,Clayton,Georgia,13063,777,33 +2020-05-03,Clayton,Georgia,13063,793,33 +2020-05-04,Clayton,Georgia,13063,804,32 +2020-05-05,Clayton,Georgia,13063,813,33 +2020-05-06,Clayton,Georgia,13063,849,33 +2020-05-07,Clayton,Georgia,13063,878,34 +2020-05-08,Clayton,Georgia,13063,888,34 +2020-05-09,Clayton,Georgia,13063,901,34 +2020-05-10,Clayton,Georgia,13063,921,34 +2020-05-11,Clayton,Georgia,13063,944,34 +2020-05-12,Clayton,Georgia,13063,951,35 +2020-05-13,Clayton,Georgia,13063,955,35 +2020-05-14,Clayton,Georgia,13063,983,36 +2020-05-15,Clayton,Georgia,13063,999,38 +2020-05-16,Clayton,Georgia,13063,1002,38 +2020-05-17,Clayton,Georgia,13063,1005,39 +2020-05-18,Clayton,Georgia,13063,1009,38 +2020-05-19,Clayton,Georgia,13063,1010,38 +2020-05-20,Clayton,Georgia,13063,1034,39 +2020-05-21,Clayton,Georgia,13063,1047,42 +2020-05-22,Clayton,Georgia,13063,1071,43 +2020-05-23,Clayton,Georgia,13063,1089,43 +2020-05-24,Clayton,Georgia,13063,1119,43 +2020-05-25,Clayton,Georgia,13063,1132,43 +2020-05-26,Clayton,Georgia,13063,1173,44 +2020-05-27,Clayton,Georgia,13063,1189,46 +2020-05-28,Clayton,Georgia,13063,1204,45 +2020-05-29,Clayton,Georgia,13063,1217,45 +2020-05-30,Clayton,Georgia,13063,1216,45 +2020-05-31,Clayton,Georgia,13063,1221,49 +2020-06-01,Clayton,Georgia,13063,1234,50 +2020-06-02,Clayton,Georgia,13063,1238,51 +2020-06-03,Clayton,Georgia,13063,1260,51 +2020-06-04,Clayton,Georgia,13063,1282,51 +2020-06-05,Clayton,Georgia,13063,1310,52 +2020-06-06,Clayton,Georgia,13063,1323,51 +2020-06-07,Clayton,Georgia,13063,1328,51 +2020-06-08,Clayton,Georgia,13063,1343,52 +2020-06-09,Clayton,Georgia,13063,1362,54 +2020-06-10,Clayton,Georgia,13063,1378,58 +2020-06-11,Clayton,Georgia,13063,1399,59 +2020-06-12,Clayton,Georgia,13063,1413,65 +2020-06-13,Clayton,Georgia,13063,1427,69 +2020-06-14,Clayton,Georgia,13063,1431,69 +2020-06-15,Clayton,Georgia,13063,1440,72 +2020-06-16,Clayton,Georgia,13063,1461,73 +2020-06-17,Clayton,Georgia,13063,1495,74 +2020-06-18,Clayton,Georgia,13063,1518,75 +2020-06-19,Clayton,Georgia,13063,1550,76 +2020-06-20,Clayton,Georgia,13063,1567,76 +2020-06-21,Clayton,Georgia,13063,1598,76 +2020-06-22,Clayton,Georgia,13063,1631,76 +2020-06-23,Clayton,Georgia,13063,1687,77 +2020-06-24,Clayton,Georgia,13063,1726,78 +2020-06-25,Clayton,Georgia,13063,1781,79 +2020-06-26,Clayton,Georgia,13063,1825,79 +2020-06-27,Clayton,Georgia,13063,1864,79 +2020-06-28,Clayton,Georgia,13063,1884,79 +2020-06-29,Clayton,Georgia,13063,1888,79 +2020-06-30,Clayton,Georgia,13063,1939,79 +2020-07-01,Clayton,Georgia,13063,2002,79 +2020-07-02,Clayton,Georgia,13063,2076,79 +2020-07-03,Clayton,Georgia,13063,2181,79 +2020-07-04,Clayton,Georgia,13063,2280,79 +2020-07-05,Clayton,Georgia,13063,2344,79 +2020-07-06,Clayton,Georgia,13063,2376,80 +2020-07-07,Clayton,Georgia,13063,2439,81 +2020-07-08,Clayton,Georgia,13063,2517,81 +2020-07-09,Clayton,Georgia,13063,2580,81 +2020-03-22,Clinch,Georgia,13065,1,0 +2020-03-23,Clinch,Georgia,13065,1,0 +2020-03-24,Clinch,Georgia,13065,1,0 +2020-03-25,Clinch,Georgia,13065,1,0 +2020-03-26,Clinch,Georgia,13065,1,0 +2020-03-27,Clinch,Georgia,13065,1,0 +2020-03-28,Clinch,Georgia,13065,1,0 +2020-03-29,Clinch,Georgia,13065,1,0 +2020-03-30,Clinch,Georgia,13065,1,0 +2020-03-31,Clinch,Georgia,13065,1,0 +2020-04-01,Clinch,Georgia,13065,1,0 +2020-04-02,Clinch,Georgia,13065,2,0 +2020-04-03,Clinch,Georgia,13065,2,0 +2020-04-04,Clinch,Georgia,13065,2,0 +2020-04-05,Clinch,Georgia,13065,2,0 +2020-04-06,Clinch,Georgia,13065,3,0 +2020-04-07,Clinch,Georgia,13065,3,0 +2020-04-08,Clinch,Georgia,13065,3,0 +2020-04-09,Clinch,Georgia,13065,3,0 +2020-04-10,Clinch,Georgia,13065,3,0 +2020-04-11,Clinch,Georgia,13065,3,0 +2020-04-12,Clinch,Georgia,13065,3,0 +2020-04-13,Clinch,Georgia,13065,6,0 +2020-04-14,Clinch,Georgia,13065,6,0 +2020-04-15,Clinch,Georgia,13065,7,0 +2020-04-16,Clinch,Georgia,13065,7,0 +2020-04-17,Clinch,Georgia,13065,7,0 +2020-04-18,Clinch,Georgia,13065,7,0 +2020-04-19,Clinch,Georgia,13065,7,0 +2020-04-20,Clinch,Georgia,13065,7,0 +2020-04-21,Clinch,Georgia,13065,7,0 +2020-04-22,Clinch,Georgia,13065,7,0 +2020-04-23,Clinch,Georgia,13065,7,0 +2020-04-24,Clinch,Georgia,13065,7,0 +2020-04-25,Clinch,Georgia,13065,7,0 +2020-04-26,Clinch,Georgia,13065,7,0 +2020-04-27,Clinch,Georgia,13065,7,0 +2020-04-28,Clinch,Georgia,13065,8,0 +2020-04-29,Clinch,Georgia,13065,8,0 +2020-04-30,Clinch,Georgia,13065,8,0 +2020-05-01,Clinch,Georgia,13065,8,0 +2020-05-02,Clinch,Georgia,13065,9,0 +2020-05-03,Clinch,Georgia,13065,9,0 +2020-05-04,Clinch,Georgia,13065,9,0 +2020-05-05,Clinch,Georgia,13065,15,0 +2020-05-06,Clinch,Georgia,13065,16,0 +2020-05-07,Clinch,Georgia,13065,16,0 +2020-05-08,Clinch,Georgia,13065,16,0 +2020-05-09,Clinch,Georgia,13065,17,0 +2020-05-10,Clinch,Georgia,13065,17,0 +2020-05-11,Clinch,Georgia,13065,29,0 +2020-05-12,Clinch,Georgia,13065,36,0 +2020-05-13,Clinch,Georgia,13065,36,0 +2020-05-14,Clinch,Georgia,13065,36,0 +2020-05-15,Clinch,Georgia,13065,40,1 +2020-05-16,Clinch,Georgia,13065,41,1 +2020-05-17,Clinch,Georgia,13065,41,1 +2020-05-18,Clinch,Georgia,13065,42,1 +2020-05-19,Clinch,Georgia,13065,45,1 +2020-05-20,Clinch,Georgia,13065,46,1 +2020-05-21,Clinch,Georgia,13065,46,1 +2020-05-22,Clinch,Georgia,13065,46,1 +2020-05-23,Clinch,Georgia,13065,47,1 +2020-05-24,Clinch,Georgia,13065,49,1 +2020-05-25,Clinch,Georgia,13065,56,1 +2020-05-26,Clinch,Georgia,13065,57,2 +2020-05-27,Clinch,Georgia,13065,57,2 +2020-05-28,Clinch,Georgia,13065,58,2 +2020-05-29,Clinch,Georgia,13065,58,2 +2020-05-30,Clinch,Georgia,13065,59,2 +2020-05-31,Clinch,Georgia,13065,59,2 +2020-06-01,Clinch,Georgia,13065,59,2 +2020-06-02,Clinch,Georgia,13065,59,2 +2020-06-03,Clinch,Georgia,13065,59,2 +2020-06-04,Clinch,Georgia,13065,65,2 +2020-06-05,Clinch,Georgia,13065,67,2 +2020-06-06,Clinch,Georgia,13065,69,2 +2020-06-07,Clinch,Georgia,13065,69,2 +2020-06-08,Clinch,Georgia,13065,70,2 +2020-06-09,Clinch,Georgia,13065,72,2 +2020-06-10,Clinch,Georgia,13065,72,2 +2020-06-11,Clinch,Georgia,13065,73,2 +2020-06-12,Clinch,Georgia,13065,75,2 +2020-06-13,Clinch,Georgia,13065,80,2 +2020-06-14,Clinch,Georgia,13065,80,2 +2020-06-15,Clinch,Georgia,13065,80,2 +2020-06-16,Clinch,Georgia,13065,80,2 +2020-06-17,Clinch,Georgia,13065,80,2 +2020-06-18,Clinch,Georgia,13065,83,2 +2020-06-19,Clinch,Georgia,13065,85,2 +2020-06-20,Clinch,Georgia,13065,85,2 +2020-06-21,Clinch,Georgia,13065,85,2 +2020-06-22,Clinch,Georgia,13065,86,2 +2020-06-23,Clinch,Georgia,13065,87,2 +2020-06-24,Clinch,Georgia,13065,97,3 +2020-06-25,Clinch,Georgia,13065,98,3 +2020-06-26,Clinch,Georgia,13065,100,3 +2020-06-27,Clinch,Georgia,13065,100,3 +2020-06-28,Clinch,Georgia,13065,103,3 +2020-06-29,Clinch,Georgia,13065,104,3 +2020-06-30,Clinch,Georgia,13065,108,3 +2020-07-01,Clinch,Georgia,13065,107,3 +2020-07-02,Clinch,Georgia,13065,108,3 +2020-07-03,Clinch,Georgia,13065,110,3 +2020-07-04,Clinch,Georgia,13065,112,3 +2020-07-05,Clinch,Georgia,13065,112,3 +2020-07-06,Clinch,Georgia,13065,114,3 +2020-07-07,Clinch,Georgia,13065,115,3 +2020-07-08,Clinch,Georgia,13065,115,3 +2020-07-09,Clinch,Georgia,13065,115,3 +2020-03-07,Cobb,Georgia,13067,1,0 +2020-03-08,Cobb,Georgia,13067,3,0 +2020-03-09,Cobb,Georgia,13067,4,0 +2020-03-10,Cobb,Georgia,13067,7,0 +2020-03-11,Cobb,Georgia,13067,8,0 +2020-03-12,Cobb,Georgia,13067,8,1 +2020-03-13,Cobb,Georgia,13067,8,1 +2020-03-14,Cobb,Georgia,13067,15,1 +2020-03-15,Cobb,Georgia,13067,19,1 +2020-03-16,Cobb,Georgia,13067,22,1 +2020-03-17,Cobb,Georgia,13067,25,1 +2020-03-18,Cobb,Georgia,13067,29,1 +2020-03-19,Cobb,Georgia,13067,38,1 +2020-03-20,Cobb,Georgia,13067,51,2 +2020-03-21,Cobb,Georgia,13067,56,5 +2020-03-22,Cobb,Georgia,13067,67,5 +2020-03-23,Cobb,Georgia,13067,79,5 +2020-03-24,Cobb,Georgia,13067,90,5 +2020-03-25,Cobb,Georgia,13067,109,5 +2020-03-26,Cobb,Georgia,13067,119,5 +2020-03-27,Cobb,Georgia,13067,163,5 +2020-03-28,Cobb,Georgia,13067,185,9 +2020-03-29,Cobb,Georgia,13067,228,9 +2020-03-30,Cobb,Georgia,13067,250,11 +2020-03-31,Cobb,Georgia,13067,287,13 +2020-04-01,Cobb,Georgia,13067,304,15 +2020-04-02,Cobb,Georgia,13067,341,17 +2020-04-03,Cobb,Georgia,13067,422,20 +2020-04-04,Cobb,Georgia,13067,453,23 +2020-04-05,Cobb,Georgia,13067,474,24 +2020-04-06,Cobb,Georgia,13067,517,26 +2020-04-07,Cobb,Georgia,13067,566,29 +2020-04-08,Cobb,Georgia,13067,608,29 +2020-04-09,Cobb,Georgia,13067,653,32 +2020-04-10,Cobb,Georgia,13067,681,33 +2020-04-11,Cobb,Georgia,13067,705,32 +2020-04-12,Cobb,Georgia,13067,728,35 +2020-04-13,Cobb,Georgia,13067,816,36 +2020-04-14,Cobb,Georgia,13067,895,41 +2020-04-15,Cobb,Georgia,13067,950,44 +2020-04-16,Cobb,Georgia,13067,1014,49 +2020-04-17,Cobb,Georgia,13067,1085,51 +2020-04-18,Cobb,Georgia,13067,1104,51 +2020-04-19,Cobb,Georgia,13067,1148,54 +2020-04-20,Cobb,Georgia,13067,1196,56 +2020-04-21,Cobb,Georgia,13067,1230,60 +2020-04-22,Cobb,Georgia,13067,1272,63 +2020-04-23,Cobb,Georgia,13067,1326,66 +2020-04-24,Cobb,Georgia,13067,1368,72 +2020-04-25,Cobb,Georgia,13067,1395,74 +2020-04-26,Cobb,Georgia,13067,1428,75 +2020-04-27,Cobb,Georgia,13067,1483,81 +2020-04-28,Cobb,Georgia,13067,1539,81 +2020-04-29,Cobb,Georgia,13067,1581,88 +2020-04-30,Cobb,Georgia,13067,1621,94 +2020-05-01,Cobb,Georgia,13067,1679,96 +2020-05-02,Cobb,Georgia,13067,1749,96 +2020-05-03,Cobb,Georgia,13067,1768,97 +2020-05-04,Cobb,Georgia,13067,1839,101 +2020-05-05,Cobb,Georgia,13067,1887,102 +2020-05-06,Cobb,Georgia,13067,1998,107 +2020-05-07,Cobb,Georgia,13067,2024,108 +2020-05-08,Cobb,Georgia,13067,2072,114 +2020-05-09,Cobb,Georgia,13067,2128,116 +2020-05-10,Cobb,Georgia,13067,2175,117 +2020-05-11,Cobb,Georgia,13067,2186,118 +2020-05-12,Cobb,Georgia,13067,2253,124 +2020-05-13,Cobb,Georgia,13067,2280,127 +2020-05-14,Cobb,Georgia,13067,2363,129 +2020-05-15,Cobb,Georgia,13067,2395,132 +2020-05-16,Cobb,Georgia,13067,2407,132 +2020-05-17,Cobb,Georgia,13067,2406,132 +2020-05-18,Cobb,Georgia,13067,2429,133 +2020-05-19,Cobb,Georgia,13067,2503,135 +2020-05-20,Cobb,Georgia,13067,2584,135 +2020-05-21,Cobb,Georgia,13067,2625,138 +2020-05-22,Cobb,Georgia,13067,2655,141 +2020-05-23,Cobb,Georgia,13067,2661,141 +2020-05-24,Cobb,Georgia,13067,2702,142 +2020-05-25,Cobb,Georgia,13067,2795,146 +2020-05-26,Cobb,Georgia,13067,2854,150 +2020-05-27,Cobb,Georgia,13067,2907,157 +2020-05-28,Cobb,Georgia,13067,2948,168 +2020-05-29,Cobb,Georgia,13067,2987,170 +2020-05-30,Cobb,Georgia,13067,3009,171 +2020-05-31,Cobb,Georgia,13067,3027,175 +2020-06-01,Cobb,Georgia,13067,3052,183 +2020-06-02,Cobb,Georgia,13067,3056,183 +2020-06-03,Cobb,Georgia,13067,3097,186 +2020-06-04,Cobb,Georgia,13067,3165,190 +2020-06-05,Cobb,Georgia,13067,3223,194 +2020-06-06,Cobb,Georgia,13067,3242,193 +2020-06-07,Cobb,Georgia,13067,3249,193 +2020-06-08,Cobb,Georgia,13067,3298,196 +2020-06-09,Cobb,Georgia,13067,3337,203 +2020-06-10,Cobb,Georgia,13067,3370,210 +2020-06-11,Cobb,Georgia,13067,3471,214 +2020-06-12,Cobb,Georgia,13067,3522,215 +2020-06-13,Cobb,Georgia,13067,3557,215 +2020-06-14,Cobb,Georgia,13067,3581,216 +2020-06-15,Cobb,Georgia,13067,3618,217 +2020-06-16,Cobb,Georgia,13067,3679,218 +2020-06-17,Cobb,Georgia,13067,3712,222 +2020-06-18,Cobb,Georgia,13067,3751,224 +2020-06-19,Cobb,Georgia,13067,3807,229 +2020-06-20,Cobb,Georgia,13067,3841,229 +2020-06-21,Cobb,Georgia,13067,3893,230 +2020-06-22,Cobb,Georgia,13067,3969,229 +2020-06-23,Cobb,Georgia,13067,4134,234 +2020-06-24,Cobb,Georgia,13067,4269,236 +2020-06-25,Cobb,Georgia,13067,4347,237 +2020-06-26,Cobb,Georgia,13067,4433,238 +2020-06-27,Cobb,Georgia,13067,4526,239 +2020-06-28,Cobb,Georgia,13067,4607,240 +2020-06-29,Cobb,Georgia,13067,4630,240 +2020-06-30,Cobb,Georgia,13067,4877,243 +2020-07-01,Cobb,Georgia,13067,5081,245 +2020-07-02,Cobb,Georgia,13067,5301,245 +2020-07-03,Cobb,Georgia,13067,5507,244 +2020-07-04,Cobb,Georgia,13067,5679,245 +2020-07-05,Cobb,Georgia,13067,5758,246 +2020-07-06,Cobb,Georgia,13067,5857,246 +2020-07-07,Cobb,Georgia,13067,6082,247 +2020-07-08,Cobb,Georgia,13067,6255,248 +2020-07-09,Cobb,Georgia,13067,6369,248 +2020-03-22,Coffee,Georgia,13069,1,0 +2020-03-23,Coffee,Georgia,13069,1,0 +2020-03-24,Coffee,Georgia,13069,2,0 +2020-03-25,Coffee,Georgia,13069,2,0 +2020-03-26,Coffee,Georgia,13069,2,0 +2020-03-27,Coffee,Georgia,13069,3,0 +2020-03-28,Coffee,Georgia,13069,7,0 +2020-03-29,Coffee,Georgia,13069,10,0 +2020-03-30,Coffee,Georgia,13069,10,0 +2020-03-31,Coffee,Georgia,13069,11,0 +2020-04-01,Coffee,Georgia,13069,11,0 +2020-04-02,Coffee,Georgia,13069,9,0 +2020-04-03,Coffee,Georgia,13069,15,0 +2020-04-04,Coffee,Georgia,13069,15,0 +2020-04-05,Coffee,Georgia,13069,15,0 +2020-04-06,Coffee,Georgia,13069,30,0 +2020-04-07,Coffee,Georgia,13069,41,2 +2020-04-08,Coffee,Georgia,13069,46,2 +2020-04-09,Coffee,Georgia,13069,50,2 +2020-04-10,Coffee,Georgia,13069,53,2 +2020-04-11,Coffee,Georgia,13069,53,2 +2020-04-12,Coffee,Georgia,13069,58,3 +2020-04-13,Coffee,Georgia,13069,60,3 +2020-04-14,Coffee,Georgia,13069,64,3 +2020-04-15,Coffee,Georgia,13069,65,3 +2020-04-16,Coffee,Georgia,13069,72,3 +2020-04-17,Coffee,Georgia,13069,74,3 +2020-04-18,Coffee,Georgia,13069,76,3 +2020-04-19,Coffee,Georgia,13069,79,4 +2020-04-20,Coffee,Georgia,13069,83,4 +2020-04-21,Coffee,Georgia,13069,83,4 +2020-04-22,Coffee,Georgia,13069,84,4 +2020-04-23,Coffee,Georgia,13069,91,4 +2020-04-24,Coffee,Georgia,13069,100,4 +2020-04-25,Coffee,Georgia,13069,103,4 +2020-04-26,Coffee,Georgia,13069,107,4 +2020-04-27,Coffee,Georgia,13069,109,4 +2020-04-28,Coffee,Georgia,13069,121,4 +2020-04-29,Coffee,Georgia,13069,127,6 +2020-04-30,Coffee,Georgia,13069,138,7 +2020-05-01,Coffee,Georgia,13069,141,7 +2020-05-02,Coffee,Georgia,13069,144,7 +2020-05-03,Coffee,Georgia,13069,146,7 +2020-05-04,Coffee,Georgia,13069,149,7 +2020-05-05,Coffee,Georgia,13069,155,8 +2020-05-06,Coffee,Georgia,13069,159,8 +2020-05-07,Coffee,Georgia,13069,165,8 +2020-05-08,Coffee,Georgia,13069,171,9 +2020-05-09,Coffee,Georgia,13069,175,9 +2020-05-10,Coffee,Georgia,13069,175,9 +2020-05-11,Coffee,Georgia,13069,177,10 +2020-05-12,Coffee,Georgia,13069,183,10 +2020-05-13,Coffee,Georgia,13069,187,11 +2020-05-14,Coffee,Georgia,13069,191,11 +2020-05-15,Coffee,Georgia,13069,192,11 +2020-05-16,Coffee,Georgia,13069,192,12 +2020-05-17,Coffee,Georgia,13069,193,12 +2020-05-18,Coffee,Georgia,13069,200,12 +2020-05-19,Coffee,Georgia,13069,209,12 +2020-05-20,Coffee,Georgia,13069,210,12 +2020-05-21,Coffee,Georgia,13069,218,13 +2020-05-22,Coffee,Georgia,13069,225,13 +2020-05-23,Coffee,Georgia,13069,227,13 +2020-05-24,Coffee,Georgia,13069,248,13 +2020-05-25,Coffee,Georgia,13069,250,13 +2020-05-26,Coffee,Georgia,13069,254,13 +2020-05-27,Coffee,Georgia,13069,262,13 +2020-05-28,Coffee,Georgia,13069,261,15 +2020-05-29,Coffee,Georgia,13069,265,15 +2020-05-30,Coffee,Georgia,13069,268,15 +2020-05-31,Coffee,Georgia,13069,271,15 +2020-06-01,Coffee,Georgia,13069,277,15 +2020-06-02,Coffee,Georgia,13069,277,15 +2020-06-03,Coffee,Georgia,13069,285,15 +2020-06-04,Coffee,Georgia,13069,289,15 +2020-06-05,Coffee,Georgia,13069,292,15 +2020-06-06,Coffee,Georgia,13069,299,14 +2020-06-07,Coffee,Georgia,13069,299,14 +2020-06-08,Coffee,Georgia,13069,300,14 +2020-06-09,Coffee,Georgia,13069,307,14 +2020-06-10,Coffee,Georgia,13069,310,14 +2020-06-11,Coffee,Georgia,13069,321,14 +2020-06-12,Coffee,Georgia,13069,328,14 +2020-06-13,Coffee,Georgia,13069,330,14 +2020-06-14,Coffee,Georgia,13069,344,14 +2020-06-15,Coffee,Georgia,13069,346,14 +2020-06-16,Coffee,Georgia,13069,359,14 +2020-06-17,Coffee,Georgia,13069,369,15 +2020-06-18,Coffee,Georgia,13069,380,15 +2020-06-19,Coffee,Georgia,13069,399,15 +2020-06-20,Coffee,Georgia,13069,406,15 +2020-06-21,Coffee,Georgia,13069,408,15 +2020-06-22,Coffee,Georgia,13069,418,15 +2020-06-23,Coffee,Georgia,13069,444,15 +2020-06-24,Coffee,Georgia,13069,474,15 +2020-06-25,Coffee,Georgia,13069,484,17 +2020-06-26,Coffee,Georgia,13069,484,17 +2020-06-27,Coffee,Georgia,13069,483,17 +2020-06-28,Coffee,Georgia,13069,532,17 +2020-06-29,Coffee,Georgia,13069,534,17 +2020-06-30,Coffee,Georgia,13069,540,17 +2020-07-01,Coffee,Georgia,13069,564,17 +2020-07-02,Coffee,Georgia,13069,580,17 +2020-07-03,Coffee,Georgia,13069,597,17 +2020-07-04,Coffee,Georgia,13069,613,17 +2020-07-05,Coffee,Georgia,13069,617,17 +2020-07-06,Coffee,Georgia,13069,630,17 +2020-07-07,Coffee,Georgia,13069,659,17 +2020-07-08,Coffee,Georgia,13069,666,17 +2020-07-09,Coffee,Georgia,13069,734,17 +2020-03-24,Colquitt,Georgia,13071,1,0 +2020-03-25,Colquitt,Georgia,13071,2,0 +2020-03-26,Colquitt,Georgia,13071,4,0 +2020-03-27,Colquitt,Georgia,13071,5,0 +2020-03-28,Colquitt,Georgia,13071,5,0 +2020-03-29,Colquitt,Georgia,13071,6,0 +2020-03-30,Colquitt,Georgia,13071,7,0 +2020-03-31,Colquitt,Georgia,13071,20,1 +2020-04-01,Colquitt,Georgia,13071,21,1 +2020-04-02,Colquitt,Georgia,13071,28,2 +2020-04-03,Colquitt,Georgia,13071,44,3 +2020-04-04,Colquitt,Georgia,13071,49,3 +2020-04-05,Colquitt,Georgia,13071,51,3 +2020-04-06,Colquitt,Georgia,13071,61,5 +2020-04-07,Colquitt,Georgia,13071,70,5 +2020-04-08,Colquitt,Georgia,13071,79,5 +2020-04-09,Colquitt,Georgia,13071,79,5 +2020-04-10,Colquitt,Georgia,13071,80,5 +2020-04-11,Colquitt,Georgia,13071,84,5 +2020-04-12,Colquitt,Georgia,13071,87,5 +2020-04-13,Colquitt,Georgia,13071,88,5 +2020-04-14,Colquitt,Georgia,13071,88,5 +2020-04-15,Colquitt,Georgia,13071,90,5 +2020-04-16,Colquitt,Georgia,13071,105,5 +2020-04-17,Colquitt,Georgia,13071,108,5 +2020-04-18,Colquitt,Georgia,13071,120,5 +2020-04-19,Colquitt,Georgia,13071,125,5 +2020-04-20,Colquitt,Georgia,13071,145,5 +2020-04-21,Colquitt,Georgia,13071,156,6 +2020-04-22,Colquitt,Georgia,13071,158,6 +2020-04-23,Colquitt,Georgia,13071,163,6 +2020-04-24,Colquitt,Georgia,13071,165,6 +2020-04-25,Colquitt,Georgia,13071,165,6 +2020-04-26,Colquitt,Georgia,13071,165,6 +2020-04-27,Colquitt,Georgia,13071,172,6 +2020-04-28,Colquitt,Georgia,13071,180,6 +2020-04-29,Colquitt,Georgia,13071,181,6 +2020-04-30,Colquitt,Georgia,13071,185,6 +2020-05-01,Colquitt,Georgia,13071,187,9 +2020-05-02,Colquitt,Georgia,13071,188,10 +2020-05-03,Colquitt,Georgia,13071,188,10 +2020-05-04,Colquitt,Georgia,13071,192,9 +2020-05-05,Colquitt,Georgia,13071,194,10 +2020-05-06,Colquitt,Georgia,13071,198,10 +2020-05-07,Colquitt,Georgia,13071,201,10 +2020-05-08,Colquitt,Georgia,13071,202,10 +2020-05-09,Colquitt,Georgia,13071,207,10 +2020-05-10,Colquitt,Georgia,13071,207,10 +2020-05-11,Colquitt,Georgia,13071,210,10 +2020-05-12,Colquitt,Georgia,13071,221,11 +2020-05-13,Colquitt,Georgia,13071,229,11 +2020-05-14,Colquitt,Georgia,13071,241,11 +2020-05-15,Colquitt,Georgia,13071,245,11 +2020-05-16,Colquitt,Georgia,13071,246,11 +2020-05-17,Colquitt,Georgia,13071,246,11 +2020-05-18,Colquitt,Georgia,13071,253,11 +2020-05-19,Colquitt,Georgia,13071,258,11 +2020-05-20,Colquitt,Georgia,13071,262,11 +2020-05-21,Colquitt,Georgia,13071,267,13 +2020-05-22,Colquitt,Georgia,13071,280,13 +2020-05-23,Colquitt,Georgia,13071,289,14 +2020-05-24,Colquitt,Georgia,13071,296,14 +2020-05-25,Colquitt,Georgia,13071,349,14 +2020-05-26,Colquitt,Georgia,13071,379,14 +2020-05-27,Colquitt,Georgia,13071,434,14 +2020-05-28,Colquitt,Georgia,13071,461,14 +2020-05-29,Colquitt,Georgia,13071,459,14 +2020-05-30,Colquitt,Georgia,13071,465,14 +2020-05-31,Colquitt,Georgia,13071,467,15 +2020-06-01,Colquitt,Georgia,13071,479,15 +2020-06-02,Colquitt,Georgia,13071,484,15 +2020-06-03,Colquitt,Georgia,13071,488,15 +2020-06-04,Colquitt,Georgia,13071,523,15 +2020-06-05,Colquitt,Georgia,13071,545,15 +2020-06-06,Colquitt,Georgia,13071,568,15 +2020-06-07,Colquitt,Georgia,13071,568,15 +2020-06-08,Colquitt,Georgia,13071,569,15 +2020-06-09,Colquitt,Georgia,13071,589,16 +2020-06-10,Colquitt,Georgia,13071,603,16 +2020-06-11,Colquitt,Georgia,13071,615,16 +2020-06-12,Colquitt,Georgia,13071,634,16 +2020-06-13,Colquitt,Georgia,13071,657,17 +2020-06-14,Colquitt,Georgia,13071,662,17 +2020-06-15,Colquitt,Georgia,13071,679,17 +2020-06-16,Colquitt,Georgia,13071,697,17 +2020-06-17,Colquitt,Georgia,13071,708,17 +2020-06-18,Colquitt,Georgia,13071,713,17 +2020-06-19,Colquitt,Georgia,13071,722,17 +2020-06-20,Colquitt,Georgia,13071,729,17 +2020-06-21,Colquitt,Georgia,13071,734,17 +2020-06-22,Colquitt,Georgia,13071,748,17 +2020-06-23,Colquitt,Georgia,13071,764,18 +2020-06-24,Colquitt,Georgia,13071,785,18 +2020-06-25,Colquitt,Georgia,13071,803,18 +2020-06-26,Colquitt,Georgia,13071,837,18 +2020-06-27,Colquitt,Georgia,13071,895,18 +2020-06-28,Colquitt,Georgia,13071,907,18 +2020-06-29,Colquitt,Georgia,13071,911,18 +2020-06-30,Colquitt,Georgia,13071,951,18 +2020-07-01,Colquitt,Georgia,13071,992,18 +2020-07-02,Colquitt,Georgia,13071,1016,18 +2020-07-03,Colquitt,Georgia,13071,1050,18 +2020-07-04,Colquitt,Georgia,13071,1085,18 +2020-07-05,Colquitt,Georgia,13071,1101,18 +2020-07-06,Colquitt,Georgia,13071,1108,18 +2020-07-07,Colquitt,Georgia,13071,1149,19 +2020-07-08,Colquitt,Georgia,13071,1180,19 +2020-07-09,Colquitt,Georgia,13071,1189,19 +2020-03-18,Columbia,Georgia,13073,1,0 +2020-03-19,Columbia,Georgia,13073,1,0 +2020-03-20,Columbia,Georgia,13073,1,0 +2020-03-21,Columbia,Georgia,13073,3,0 +2020-03-22,Columbia,Georgia,13073,3,0 +2020-03-23,Columbia,Georgia,13073,3,0 +2020-03-24,Columbia,Georgia,13073,6,0 +2020-03-25,Columbia,Georgia,13073,10,0 +2020-03-26,Columbia,Georgia,13073,10,0 +2020-03-27,Columbia,Georgia,13073,10,0 +2020-03-28,Columbia,Georgia,13073,12,0 +2020-03-29,Columbia,Georgia,13073,12,0 +2020-03-30,Columbia,Georgia,13073,14,0 +2020-03-31,Columbia,Georgia,13073,24,0 +2020-04-01,Columbia,Georgia,13073,24,0 +2020-04-02,Columbia,Georgia,13073,27,0 +2020-04-03,Columbia,Georgia,13073,33,0 +2020-04-04,Columbia,Georgia,13073,36,0 +2020-04-05,Columbia,Georgia,13073,36,0 +2020-04-06,Columbia,Georgia,13073,40,0 +2020-04-07,Columbia,Georgia,13073,46,0 +2020-04-08,Columbia,Georgia,13073,50,0 +2020-04-09,Columbia,Georgia,13073,58,0 +2020-04-10,Columbia,Georgia,13073,65,0 +2020-04-11,Columbia,Georgia,13073,68,0 +2020-04-12,Columbia,Georgia,13073,69,0 +2020-04-13,Columbia,Georgia,13073,71,0 +2020-04-14,Columbia,Georgia,13073,75,0 +2020-04-15,Columbia,Georgia,13073,79,0 +2020-04-16,Columbia,Georgia,13073,87,0 +2020-04-17,Columbia,Georgia,13073,91,1 +2020-04-18,Columbia,Georgia,13073,100,1 +2020-04-19,Columbia,Georgia,13073,101,1 +2020-04-20,Columbia,Georgia,13073,116,2 +2020-04-21,Columbia,Georgia,13073,122,2 +2020-04-22,Columbia,Georgia,13073,124,2 +2020-04-23,Columbia,Georgia,13073,129,2 +2020-04-24,Columbia,Georgia,13073,137,2 +2020-04-25,Columbia,Georgia,13073,138,2 +2020-04-26,Columbia,Georgia,13073,143,2 +2020-04-27,Columbia,Georgia,13073,144,2 +2020-04-28,Columbia,Georgia,13073,149,3 +2020-04-29,Columbia,Georgia,13073,156,4 +2020-04-30,Columbia,Georgia,13073,160,4 +2020-05-01,Columbia,Georgia,13073,162,4 +2020-05-02,Columbia,Georgia,13073,163,4 +2020-05-03,Columbia,Georgia,13073,164,4 +2020-05-04,Columbia,Georgia,13073,168,4 +2020-05-05,Columbia,Georgia,13073,169,5 +2020-05-06,Columbia,Georgia,13073,170,5 +2020-05-07,Columbia,Georgia,13073,170,5 +2020-05-08,Columbia,Georgia,13073,178,5 +2020-05-09,Columbia,Georgia,13073,179,5 +2020-05-10,Columbia,Georgia,13073,183,5 +2020-05-11,Columbia,Georgia,13073,183,5 +2020-05-12,Columbia,Georgia,13073,186,6 +2020-05-13,Columbia,Georgia,13073,191,6 +2020-05-14,Columbia,Georgia,13073,197,6 +2020-05-15,Columbia,Georgia,13073,202,6 +2020-05-16,Columbia,Georgia,13073,205,6 +2020-05-17,Columbia,Georgia,13073,205,6 +2020-05-18,Columbia,Georgia,13073,212,6 +2020-05-19,Columbia,Georgia,13073,212,6 +2020-05-20,Columbia,Georgia,13073,214,6 +2020-05-21,Columbia,Georgia,13073,224,6 +2020-05-22,Columbia,Georgia,13073,223,6 +2020-05-23,Columbia,Georgia,13073,223,6 +2020-05-24,Columbia,Georgia,13073,223,6 +2020-05-25,Columbia,Georgia,13073,224,6 +2020-05-26,Columbia,Georgia,13073,229,7 +2020-05-27,Columbia,Georgia,13073,237,7 +2020-05-28,Columbia,Georgia,13073,243,7 +2020-05-29,Columbia,Georgia,13073,248,7 +2020-05-30,Columbia,Georgia,13073,248,7 +2020-05-31,Columbia,Georgia,13073,248,7 +2020-06-01,Columbia,Georgia,13073,251,8 +2020-06-02,Columbia,Georgia,13073,251,8 +2020-06-03,Columbia,Georgia,13073,266,8 +2020-06-04,Columbia,Georgia,13073,266,8 +2020-06-05,Columbia,Georgia,13073,270,8 +2020-06-06,Columbia,Georgia,13073,274,8 +2020-06-07,Columbia,Georgia,13073,274,8 +2020-06-08,Columbia,Georgia,13073,278,8 +2020-06-09,Columbia,Georgia,13073,288,8 +2020-06-10,Columbia,Georgia,13073,289,8 +2020-06-11,Columbia,Georgia,13073,290,8 +2020-06-12,Columbia,Georgia,13073,295,8 +2020-06-13,Columbia,Georgia,13073,296,8 +2020-06-14,Columbia,Georgia,13073,300,8 +2020-06-15,Columbia,Georgia,13073,301,8 +2020-06-16,Columbia,Georgia,13073,305,8 +2020-06-17,Columbia,Georgia,13073,324,8 +2020-06-18,Columbia,Georgia,13073,329,8 +2020-06-19,Columbia,Georgia,13073,335,8 +2020-06-20,Columbia,Georgia,13073,339,8 +2020-06-21,Columbia,Georgia,13073,342,8 +2020-06-22,Columbia,Georgia,13073,345,8 +2020-06-23,Columbia,Georgia,13073,359,8 +2020-06-24,Columbia,Georgia,13073,367,9 +2020-06-25,Columbia,Georgia,13073,377,9 +2020-06-26,Columbia,Georgia,13073,392,9 +2020-06-27,Columbia,Georgia,13073,410,9 +2020-06-28,Columbia,Georgia,13073,422,9 +2020-06-29,Columbia,Georgia,13073,444,9 +2020-06-30,Columbia,Georgia,13073,470,9 +2020-07-01,Columbia,Georgia,13073,505,9 +2020-07-02,Columbia,Georgia,13073,531,9 +2020-07-03,Columbia,Georgia,13073,565,9 +2020-07-04,Columbia,Georgia,13073,602,9 +2020-07-05,Columbia,Georgia,13073,627,9 +2020-07-06,Columbia,Georgia,13073,637,9 +2020-07-07,Columbia,Georgia,13073,655,10 +2020-07-08,Columbia,Georgia,13073,690,12 +2020-07-09,Columbia,Georgia,13073,709,12 +2020-03-30,Cook,Georgia,13075,1,0 +2020-03-31,Cook,Georgia,13075,1,0 +2020-04-01,Cook,Georgia,13075,1,0 +2020-04-02,Cook,Georgia,13075,1,0 +2020-04-03,Cook,Georgia,13075,1,0 +2020-04-04,Cook,Georgia,13075,1,0 +2020-04-05,Cook,Georgia,13075,1,0 +2020-04-06,Cook,Georgia,13075,2,0 +2020-04-07,Cook,Georgia,13075,4,0 +2020-04-08,Cook,Georgia,13075,4,0 +2020-04-09,Cook,Georgia,13075,6,0 +2020-04-10,Cook,Georgia,13075,6,0 +2020-04-11,Cook,Georgia,13075,6,0 +2020-04-12,Cook,Georgia,13075,7,0 +2020-04-13,Cook,Georgia,13075,7,0 +2020-04-14,Cook,Georgia,13075,7,0 +2020-04-15,Cook,Georgia,13075,9,0 +2020-04-16,Cook,Georgia,13075,11,1 +2020-04-17,Cook,Georgia,13075,12,1 +2020-04-18,Cook,Georgia,13075,12,1 +2020-04-19,Cook,Georgia,13075,12,1 +2020-04-20,Cook,Georgia,13075,13,1 +2020-04-21,Cook,Georgia,13075,13,1 +2020-04-22,Cook,Georgia,13075,15,1 +2020-04-23,Cook,Georgia,13075,15,1 +2020-04-24,Cook,Georgia,13075,15,1 +2020-04-25,Cook,Georgia,13075,16,1 +2020-04-26,Cook,Georgia,13075,17,1 +2020-04-27,Cook,Georgia,13075,17,1 +2020-04-28,Cook,Georgia,13075,20,1 +2020-04-29,Cook,Georgia,13075,22,1 +2020-04-30,Cook,Georgia,13075,23,1 +2020-05-01,Cook,Georgia,13075,25,1 +2020-05-02,Cook,Georgia,13075,25,1 +2020-05-03,Cook,Georgia,13075,28,1 +2020-05-04,Cook,Georgia,13075,28,1 +2020-05-05,Cook,Georgia,13075,28,1 +2020-05-06,Cook,Georgia,13075,31,1 +2020-05-07,Cook,Georgia,13075,31,1 +2020-05-08,Cook,Georgia,13075,31,1 +2020-05-09,Cook,Georgia,13075,31,1 +2020-05-10,Cook,Georgia,13075,32,1 +2020-05-11,Cook,Georgia,13075,32,2 +2020-05-12,Cook,Georgia,13075,32,3 +2020-05-13,Cook,Georgia,13075,32,3 +2020-05-14,Cook,Georgia,13075,32,2 +2020-05-15,Cook,Georgia,13075,32,2 +2020-05-16,Cook,Georgia,13075,32,2 +2020-05-17,Cook,Georgia,13075,32,2 +2020-05-18,Cook,Georgia,13075,31,2 +2020-05-19,Cook,Georgia,13075,31,2 +2020-05-20,Cook,Georgia,13075,35,2 +2020-05-21,Cook,Georgia,13075,40,2 +2020-05-22,Cook,Georgia,13075,44,2 +2020-05-23,Cook,Georgia,13075,44,2 +2020-05-24,Cook,Georgia,13075,46,2 +2020-05-25,Cook,Georgia,13075,46,2 +2020-05-26,Cook,Georgia,13075,45,2 +2020-05-27,Cook,Georgia,13075,47,2 +2020-05-28,Cook,Georgia,13075,48,2 +2020-05-29,Cook,Georgia,13075,48,2 +2020-05-30,Cook,Georgia,13075,48,2 +2020-05-31,Cook,Georgia,13075,48,2 +2020-06-01,Cook,Georgia,13075,47,2 +2020-06-02,Cook,Georgia,13075,47,2 +2020-06-03,Cook,Georgia,13075,45,2 +2020-06-04,Cook,Georgia,13075,47,2 +2020-06-05,Cook,Georgia,13075,51,2 +2020-06-06,Cook,Georgia,13075,56,2 +2020-06-07,Cook,Georgia,13075,57,2 +2020-06-08,Cook,Georgia,13075,56,1 +2020-06-09,Cook,Georgia,13075,57,1 +2020-06-10,Cook,Georgia,13075,59,1 +2020-06-11,Cook,Georgia,13075,62,1 +2020-06-12,Cook,Georgia,13075,67,1 +2020-06-13,Cook,Georgia,13075,71,1 +2020-06-14,Cook,Georgia,13075,72,1 +2020-06-15,Cook,Georgia,13075,75,1 +2020-06-16,Cook,Georgia,13075,78,1 +2020-06-17,Cook,Georgia,13075,82,1 +2020-06-18,Cook,Georgia,13075,86,1 +2020-06-19,Cook,Georgia,13075,89,1 +2020-06-20,Cook,Georgia,13075,90,1 +2020-06-21,Cook,Georgia,13075,91,1 +2020-06-22,Cook,Georgia,13075,97,1 +2020-06-23,Cook,Georgia,13075,104,1 +2020-06-24,Cook,Georgia,13075,110,1 +2020-06-25,Cook,Georgia,13075,114,1 +2020-06-26,Cook,Georgia,13075,123,1 +2020-06-27,Cook,Georgia,13075,126,1 +2020-06-28,Cook,Georgia,13075,130,1 +2020-06-29,Cook,Georgia,13075,130,1 +2020-06-30,Cook,Georgia,13075,133,1 +2020-07-01,Cook,Georgia,13075,147,1 +2020-07-02,Cook,Georgia,13075,148,1 +2020-07-03,Cook,Georgia,13075,156,2 +2020-07-04,Cook,Georgia,13075,171,2 +2020-07-05,Cook,Georgia,13075,177,2 +2020-07-06,Cook,Georgia,13075,182,2 +2020-07-07,Cook,Georgia,13075,195,3 +2020-07-08,Cook,Georgia,13075,196,3 +2020-07-09,Cook,Georgia,13075,205,3 +2020-03-14,Coweta,Georgia,13077,2,0 +2020-03-15,Coweta,Georgia,13077,2,0 +2020-03-16,Coweta,Georgia,13077,2,0 +2020-03-17,Coweta,Georgia,13077,3,0 +2020-03-18,Coweta,Georgia,13077,3,0 +2020-03-19,Coweta,Georgia,13077,3,0 +2020-03-20,Coweta,Georgia,13077,6,0 +2020-03-21,Coweta,Georgia,13077,8,0 +2020-03-22,Coweta,Georgia,13077,9,0 +2020-03-23,Coweta,Georgia,13077,9,0 +2020-03-24,Coweta,Georgia,13077,10,2 +2020-03-25,Coweta,Georgia,13077,10,2 +2020-03-26,Coweta,Georgia,13077,14,2 +2020-03-27,Coweta,Georgia,13077,19,2 +2020-03-28,Coweta,Georgia,13077,20,2 +2020-03-29,Coweta,Georgia,13077,23,2 +2020-03-30,Coweta,Georgia,13077,37,2 +2020-03-31,Coweta,Georgia,13077,41,2 +2020-04-01,Coweta,Georgia,13077,42,2 +2020-04-02,Coweta,Georgia,13077,48,2 +2020-04-03,Coweta,Georgia,13077,56,2 +2020-04-04,Coweta,Georgia,13077,64,2 +2020-04-05,Coweta,Georgia,13077,67,2 +2020-04-06,Coweta,Georgia,13077,76,2 +2020-04-07,Coweta,Georgia,13077,80,2 +2020-04-08,Coweta,Georgia,13077,82,2 +2020-04-09,Coweta,Georgia,13077,87,2 +2020-04-10,Coweta,Georgia,13077,100,2 +2020-04-11,Coweta,Georgia,13077,101,2 +2020-04-12,Coweta,Georgia,13077,106,2 +2020-04-13,Coweta,Georgia,13077,121,2 +2020-04-14,Coweta,Georgia,13077,135,2 +2020-04-15,Coweta,Georgia,13077,138,3 +2020-04-16,Coweta,Georgia,13077,142,3 +2020-04-17,Coweta,Georgia,13077,153,3 +2020-04-18,Coweta,Georgia,13077,160,3 +2020-04-19,Coweta,Georgia,13077,164,3 +2020-04-20,Coweta,Georgia,13077,169,4 +2020-04-21,Coweta,Georgia,13077,169,4 +2020-04-22,Coweta,Georgia,13077,168,4 +2020-04-23,Coweta,Georgia,13077,177,4 +2020-04-24,Coweta,Georgia,13077,187,4 +2020-04-25,Coweta,Georgia,13077,187,4 +2020-04-26,Coweta,Georgia,13077,188,4 +2020-04-27,Coweta,Georgia,13077,190,4 +2020-04-28,Coweta,Georgia,13077,191,4 +2020-04-29,Coweta,Georgia,13077,195,4 +2020-04-30,Coweta,Georgia,13077,195,4 +2020-05-01,Coweta,Georgia,13077,211,4 +2020-05-02,Coweta,Georgia,13077,213,4 +2020-05-03,Coweta,Georgia,13077,230,4 +2020-05-04,Coweta,Georgia,13077,242,4 +2020-05-05,Coweta,Georgia,13077,244,4 +2020-05-06,Coweta,Georgia,13077,246,4 +2020-05-07,Coweta,Georgia,13077,257,4 +2020-05-08,Coweta,Georgia,13077,257,4 +2020-05-09,Coweta,Georgia,13077,265,4 +2020-05-10,Coweta,Georgia,13077,276,4 +2020-05-11,Coweta,Georgia,13077,278,4 +2020-05-12,Coweta,Georgia,13077,280,4 +2020-05-13,Coweta,Georgia,13077,280,4 +2020-05-14,Coweta,Georgia,13077,280,4 +2020-05-15,Coweta,Georgia,13077,282,4 +2020-05-16,Coweta,Georgia,13077,285,4 +2020-05-17,Coweta,Georgia,13077,284,4 +2020-05-18,Coweta,Georgia,13077,285,4 +2020-05-19,Coweta,Georgia,13077,287,4 +2020-05-20,Coweta,Georgia,13077,286,4 +2020-05-21,Coweta,Georgia,13077,303,7 +2020-05-22,Coweta,Georgia,13077,311,7 +2020-05-23,Coweta,Georgia,13077,316,8 +2020-05-24,Coweta,Georgia,13077,331,8 +2020-05-25,Coweta,Georgia,13077,376,8 +2020-05-26,Coweta,Georgia,13077,383,8 +2020-05-27,Coweta,Georgia,13077,397,8 +2020-05-28,Coweta,Georgia,13077,403,8 +2020-05-29,Coweta,Georgia,13077,414,8 +2020-05-30,Coweta,Georgia,13077,415,8 +2020-05-31,Coweta,Georgia,13077,417,9 +2020-06-01,Coweta,Georgia,13077,421,9 +2020-06-02,Coweta,Georgia,13077,422,9 +2020-06-03,Coweta,Georgia,13077,432,9 +2020-06-04,Coweta,Georgia,13077,440,9 +2020-06-05,Coweta,Georgia,13077,458,9 +2020-06-06,Coweta,Georgia,13077,463,9 +2020-06-07,Coweta,Georgia,13077,463,9 +2020-06-08,Coweta,Georgia,13077,468,9 +2020-06-09,Coweta,Georgia,13077,474,10 +2020-06-10,Coweta,Georgia,13077,476,10 +2020-06-11,Coweta,Georgia,13077,488,11 +2020-06-12,Coweta,Georgia,13077,507,11 +2020-06-13,Coweta,Georgia,13077,509,11 +2020-06-14,Coweta,Georgia,13077,511,11 +2020-06-15,Coweta,Georgia,13077,515,12 +2020-06-16,Coweta,Georgia,13077,519,12 +2020-06-17,Coweta,Georgia,13077,526,13 +2020-06-18,Coweta,Georgia,13077,538,14 +2020-06-19,Coweta,Georgia,13077,548,14 +2020-06-20,Coweta,Georgia,13077,545,14 +2020-06-21,Coweta,Georgia,13077,550,14 +2020-06-22,Coweta,Georgia,13077,554,14 +2020-06-23,Coweta,Georgia,13077,569,15 +2020-06-24,Coweta,Georgia,13077,599,15 +2020-06-25,Coweta,Georgia,13077,600,15 +2020-06-26,Coweta,Georgia,13077,615,15 +2020-06-27,Coweta,Georgia,13077,634,15 +2020-06-28,Coweta,Georgia,13077,643,15 +2020-06-29,Coweta,Georgia,13077,647,15 +2020-06-30,Coweta,Georgia,13077,667,15 +2020-07-01,Coweta,Georgia,13077,684,16 +2020-07-02,Coweta,Georgia,13077,708,16 +2020-07-03,Coweta,Georgia,13077,754,16 +2020-07-04,Coweta,Georgia,13077,766,16 +2020-07-05,Coweta,Georgia,13077,777,16 +2020-07-06,Coweta,Georgia,13077,787,16 +2020-07-07,Coweta,Georgia,13077,794,16 +2020-07-08,Coweta,Georgia,13077,806,16 +2020-07-09,Coweta,Georgia,13077,821,16 +2020-04-05,Crawford,Georgia,13079,1,0 +2020-04-06,Crawford,Georgia,13079,1,0 +2020-04-07,Crawford,Georgia,13079,1,0 +2020-04-08,Crawford,Georgia,13079,3,0 +2020-04-09,Crawford,Georgia,13079,3,0 +2020-04-10,Crawford,Georgia,13079,3,0 +2020-04-11,Crawford,Georgia,13079,3,0 +2020-04-12,Crawford,Georgia,13079,3,0 +2020-04-13,Crawford,Georgia,13079,3,0 +2020-04-14,Crawford,Georgia,13079,9,0 +2020-04-15,Crawford,Georgia,13079,10,0 +2020-04-16,Crawford,Georgia,13079,12,0 +2020-04-17,Crawford,Georgia,13079,13,0 +2020-04-18,Crawford,Georgia,13079,13,0 +2020-04-19,Crawford,Georgia,13079,13,0 +2020-04-20,Crawford,Georgia,13079,14,0 +2020-04-21,Crawford,Georgia,13079,14,0 +2020-04-22,Crawford,Georgia,13079,14,0 +2020-04-23,Crawford,Georgia,13079,14,0 +2020-04-24,Crawford,Georgia,13079,14,0 +2020-04-25,Crawford,Georgia,13079,14,0 +2020-04-26,Crawford,Georgia,13079,14,0 +2020-04-27,Crawford,Georgia,13079,14,0 +2020-04-28,Crawford,Georgia,13079,15,0 +2020-04-29,Crawford,Georgia,13079,15,0 +2020-04-30,Crawford,Georgia,13079,15,0 +2020-05-01,Crawford,Georgia,13079,17,0 +2020-05-02,Crawford,Georgia,13079,18,0 +2020-05-03,Crawford,Georgia,13079,18,0 +2020-05-04,Crawford,Georgia,13079,18,0 +2020-05-05,Crawford,Georgia,13079,19,0 +2020-05-06,Crawford,Georgia,13079,19,0 +2020-05-07,Crawford,Georgia,13079,19,0 +2020-05-08,Crawford,Georgia,13079,19,0 +2020-05-09,Crawford,Georgia,13079,19,0 +2020-05-10,Crawford,Georgia,13079,18,0 +2020-05-11,Crawford,Georgia,13079,18,0 +2020-05-12,Crawford,Georgia,13079,19,0 +2020-05-13,Crawford,Georgia,13079,19,0 +2020-05-14,Crawford,Georgia,13079,19,0 +2020-05-15,Crawford,Georgia,13079,19,0 +2020-05-16,Crawford,Georgia,13079,19,0 +2020-05-17,Crawford,Georgia,13079,19,0 +2020-05-18,Crawford,Georgia,13079,19,0 +2020-05-19,Crawford,Georgia,13079,24,0 +2020-05-20,Crawford,Georgia,13079,24,0 +2020-05-21,Crawford,Georgia,13079,23,0 +2020-05-22,Crawford,Georgia,13079,24,0 +2020-05-23,Crawford,Georgia,13079,25,0 +2020-05-24,Crawford,Georgia,13079,26,0 +2020-05-25,Crawford,Georgia,13079,26,0 +2020-05-26,Crawford,Georgia,13079,29,0 +2020-05-27,Crawford,Georgia,13079,28,0 +2020-05-28,Crawford,Georgia,13079,28,0 +2020-05-29,Crawford,Georgia,13079,28,0 +2020-05-30,Crawford,Georgia,13079,28,0 +2020-05-31,Crawford,Georgia,13079,28,0 +2020-06-01,Crawford,Georgia,13079,28,0 +2020-06-02,Crawford,Georgia,13079,28,0 +2020-06-03,Crawford,Georgia,13079,28,0 +2020-06-04,Crawford,Georgia,13079,28,0 +2020-06-05,Crawford,Georgia,13079,29,0 +2020-06-06,Crawford,Georgia,13079,29,0 +2020-06-07,Crawford,Georgia,13079,29,0 +2020-06-08,Crawford,Georgia,13079,29,0 +2020-06-09,Crawford,Georgia,13079,31,0 +2020-06-10,Crawford,Georgia,13079,31,0 +2020-06-11,Crawford,Georgia,13079,31,0 +2020-06-12,Crawford,Georgia,13079,31,0 +2020-06-13,Crawford,Georgia,13079,34,0 +2020-06-14,Crawford,Georgia,13079,32,0 +2020-06-15,Crawford,Georgia,13079,32,0 +2020-06-16,Crawford,Georgia,13079,32,0 +2020-06-17,Crawford,Georgia,13079,32,0 +2020-06-18,Crawford,Georgia,13079,32,0 +2020-06-19,Crawford,Georgia,13079,34,0 +2020-06-20,Crawford,Georgia,13079,36,0 +2020-06-21,Crawford,Georgia,13079,36,0 +2020-06-22,Crawford,Georgia,13079,36,0 +2020-06-23,Crawford,Georgia,13079,37,0 +2020-06-24,Crawford,Georgia,13079,39,0 +2020-06-25,Crawford,Georgia,13079,39,0 +2020-06-26,Crawford,Georgia,13079,39,0 +2020-06-27,Crawford,Georgia,13079,39,0 +2020-06-28,Crawford,Georgia,13079,39,0 +2020-06-29,Crawford,Georgia,13079,39,0 +2020-06-30,Crawford,Georgia,13079,42,0 +2020-07-01,Crawford,Georgia,13079,45,0 +2020-07-02,Crawford,Georgia,13079,49,0 +2020-07-03,Crawford,Georgia,13079,50,0 +2020-07-04,Crawford,Georgia,13079,50,0 +2020-07-05,Crawford,Georgia,13079,51,0 +2020-07-06,Crawford,Georgia,13079,54,0 +2020-07-07,Crawford,Georgia,13079,54,0 +2020-07-08,Crawford,Georgia,13079,54,0 +2020-07-09,Crawford,Georgia,13079,56,0 +2020-03-24,Crisp,Georgia,13081,3,0 +2020-03-25,Crisp,Georgia,13081,3,0 +2020-03-26,Crisp,Georgia,13081,4,0 +2020-03-27,Crisp,Georgia,13081,4,0 +2020-03-28,Crisp,Georgia,13081,6,0 +2020-03-29,Crisp,Georgia,13081,6,0 +2020-03-30,Crisp,Georgia,13081,8,0 +2020-03-31,Crisp,Georgia,13081,16,0 +2020-04-01,Crisp,Georgia,13081,19,0 +2020-04-02,Crisp,Georgia,13081,21,0 +2020-04-03,Crisp,Georgia,13081,24,0 +2020-04-04,Crisp,Georgia,13081,28,0 +2020-04-05,Crisp,Georgia,13081,28,0 +2020-04-06,Crisp,Georgia,13081,46,0 +2020-04-07,Crisp,Georgia,13081,46,0 +2020-04-08,Crisp,Georgia,13081,52,0 +2020-04-09,Crisp,Georgia,13081,60,0 +2020-04-10,Crisp,Georgia,13081,63,0 +2020-04-11,Crisp,Georgia,13081,67,0 +2020-04-12,Crisp,Georgia,13081,69,0 +2020-04-13,Crisp,Georgia,13081,79,1 +2020-04-14,Crisp,Georgia,13081,83,1 +2020-04-15,Crisp,Georgia,13081,93,1 +2020-04-16,Crisp,Georgia,13081,104,1 +2020-04-17,Crisp,Georgia,13081,113,2 +2020-04-18,Crisp,Georgia,13081,114,2 +2020-04-19,Crisp,Georgia,13081,118,2 +2020-04-20,Crisp,Georgia,13081,125,2 +2020-04-21,Crisp,Georgia,13081,125,2 +2020-04-22,Crisp,Georgia,13081,130,2 +2020-04-23,Crisp,Georgia,13081,141,2 +2020-04-24,Crisp,Georgia,13081,149,2 +2020-04-25,Crisp,Georgia,13081,151,2 +2020-04-26,Crisp,Georgia,13081,153,2 +2020-04-27,Crisp,Georgia,13081,157,3 +2020-04-28,Crisp,Georgia,13081,159,3 +2020-04-29,Crisp,Georgia,13081,163,3 +2020-04-30,Crisp,Georgia,13081,165,3 +2020-05-01,Crisp,Georgia,13081,167,3 +2020-05-02,Crisp,Georgia,13081,167,3 +2020-05-03,Crisp,Georgia,13081,168,3 +2020-05-04,Crisp,Georgia,13081,170,4 +2020-05-05,Crisp,Georgia,13081,175,6 +2020-05-06,Crisp,Georgia,13081,178,6 +2020-05-07,Crisp,Georgia,13081,181,6 +2020-05-08,Crisp,Georgia,13081,182,6 +2020-05-09,Crisp,Georgia,13081,182,6 +2020-05-10,Crisp,Georgia,13081,185,6 +2020-05-11,Crisp,Georgia,13081,185,7 +2020-05-12,Crisp,Georgia,13081,190,7 +2020-05-13,Crisp,Georgia,13081,191,7 +2020-05-14,Crisp,Georgia,13081,193,7 +2020-05-15,Crisp,Georgia,13081,193,7 +2020-05-16,Crisp,Georgia,13081,193,7 +2020-05-17,Crisp,Georgia,13081,193,7 +2020-05-18,Crisp,Georgia,13081,197,7 +2020-05-19,Crisp,Georgia,13081,200,7 +2020-05-20,Crisp,Georgia,13081,203,7 +2020-05-21,Crisp,Georgia,13081,204,7 +2020-05-22,Crisp,Georgia,13081,210,7 +2020-05-23,Crisp,Georgia,13081,211,7 +2020-05-24,Crisp,Georgia,13081,221,7 +2020-05-25,Crisp,Georgia,13081,223,7 +2020-05-26,Crisp,Georgia,13081,223,7 +2020-05-27,Crisp,Georgia,13081,226,7 +2020-05-28,Crisp,Georgia,13081,228,7 +2020-05-29,Crisp,Georgia,13081,231,7 +2020-05-30,Crisp,Georgia,13081,232,7 +2020-05-31,Crisp,Georgia,13081,232,7 +2020-06-01,Crisp,Georgia,13081,236,7 +2020-06-02,Crisp,Georgia,13081,237,7 +2020-06-03,Crisp,Georgia,13081,237,7 +2020-06-04,Crisp,Georgia,13081,238,8 +2020-06-05,Crisp,Georgia,13081,238,8 +2020-06-06,Crisp,Georgia,13081,238,8 +2020-06-07,Crisp,Georgia,13081,238,8 +2020-06-08,Crisp,Georgia,13081,239,8 +2020-06-09,Crisp,Georgia,13081,239,8 +2020-06-10,Crisp,Georgia,13081,240,10 +2020-06-11,Crisp,Georgia,13081,240,10 +2020-06-12,Crisp,Georgia,13081,241,10 +2020-06-13,Crisp,Georgia,13081,242,10 +2020-06-14,Crisp,Georgia,13081,242,10 +2020-06-15,Crisp,Georgia,13081,242,10 +2020-06-16,Crisp,Georgia,13081,246,11 +2020-06-17,Crisp,Georgia,13081,249,11 +2020-06-18,Crisp,Georgia,13081,255,11 +2020-06-19,Crisp,Georgia,13081,257,11 +2020-06-20,Crisp,Georgia,13081,257,11 +2020-06-21,Crisp,Georgia,13081,257,11 +2020-06-22,Crisp,Georgia,13081,258,11 +2020-06-23,Crisp,Georgia,13081,261,12 +2020-06-24,Crisp,Georgia,13081,261,12 +2020-06-25,Crisp,Georgia,13081,265,12 +2020-06-26,Crisp,Georgia,13081,266,12 +2020-06-27,Crisp,Georgia,13081,267,12 +2020-06-28,Crisp,Georgia,13081,268,12 +2020-06-29,Crisp,Georgia,13081,271,12 +2020-06-30,Crisp,Georgia,13081,273,12 +2020-07-01,Crisp,Georgia,13081,274,12 +2020-07-02,Crisp,Georgia,13081,276,12 +2020-07-03,Crisp,Georgia,13081,278,12 +2020-07-04,Crisp,Georgia,13081,287,12 +2020-07-05,Crisp,Georgia,13081,292,12 +2020-07-06,Crisp,Georgia,13081,295,12 +2020-07-07,Crisp,Georgia,13081,297,12 +2020-07-08,Crisp,Georgia,13081,300,12 +2020-07-09,Crisp,Georgia,13081,301,12 +2020-03-30,Dade,Georgia,13083,1,0 +2020-03-31,Dade,Georgia,13083,1,0 +2020-04-01,Dade,Georgia,13083,1,0 +2020-04-02,Dade,Georgia,13083,1,0 +2020-04-03,Dade,Georgia,13083,1,1 +2020-04-04,Dade,Georgia,13083,1,1 +2020-04-05,Dade,Georgia,13083,1,1 +2020-04-06,Dade,Georgia,13083,1,1 +2020-04-07,Dade,Georgia,13083,1,1 +2020-04-08,Dade,Georgia,13083,2,1 +2020-04-09,Dade,Georgia,13083,2,1 +2020-04-10,Dade,Georgia,13083,2,1 +2020-04-11,Dade,Georgia,13083,2,1 +2020-04-12,Dade,Georgia,13083,2,1 +2020-04-13,Dade,Georgia,13083,3,1 +2020-04-14,Dade,Georgia,13083,3,1 +2020-04-15,Dade,Georgia,13083,6,1 +2020-04-16,Dade,Georgia,13083,7,1 +2020-04-17,Dade,Georgia,13083,8,1 +2020-04-18,Dade,Georgia,13083,8,1 +2020-04-19,Dade,Georgia,13083,8,1 +2020-04-20,Dade,Georgia,13083,10,1 +2020-04-21,Dade,Georgia,13083,13,1 +2020-04-22,Dade,Georgia,13083,15,1 +2020-04-23,Dade,Georgia,13083,15,1 +2020-04-24,Dade,Georgia,13083,16,1 +2020-04-25,Dade,Georgia,13083,16,1 +2020-04-26,Dade,Georgia,13083,16,1 +2020-04-27,Dade,Georgia,13083,14,1 +2020-04-28,Dade,Georgia,13083,14,1 +2020-04-29,Dade,Georgia,13083,14,1 +2020-04-30,Dade,Georgia,13083,14,1 +2020-05-01,Dade,Georgia,13083,16,1 +2020-05-02,Dade,Georgia,13083,16,1 +2020-05-03,Dade,Georgia,13083,15,1 +2020-05-04,Dade,Georgia,13083,16,1 +2020-05-05,Dade,Georgia,13083,16,1 +2020-05-06,Dade,Georgia,13083,17,1 +2020-05-07,Dade,Georgia,13083,16,1 +2020-05-08,Dade,Georgia,13083,16,1 +2020-05-09,Dade,Georgia,13083,16,1 +2020-05-10,Dade,Georgia,13083,17,1 +2020-05-11,Dade,Georgia,13083,17,1 +2020-05-12,Dade,Georgia,13083,17,1 +2020-05-13,Dade,Georgia,13083,17,1 +2020-05-14,Dade,Georgia,13083,17,1 +2020-05-15,Dade,Georgia,13083,20,1 +2020-05-16,Dade,Georgia,13083,20,1 +2020-05-17,Dade,Georgia,13083,20,1 +2020-05-18,Dade,Georgia,13083,20,1 +2020-05-19,Dade,Georgia,13083,20,1 +2020-05-20,Dade,Georgia,13083,20,1 +2020-05-21,Dade,Georgia,13083,21,1 +2020-05-22,Dade,Georgia,13083,26,1 +2020-05-23,Dade,Georgia,13083,27,1 +2020-05-24,Dade,Georgia,13083,27,1 +2020-05-25,Dade,Georgia,13083,27,1 +2020-05-26,Dade,Georgia,13083,27,1 +2020-05-27,Dade,Georgia,13083,27,1 +2020-05-28,Dade,Georgia,13083,28,1 +2020-05-29,Dade,Georgia,13083,28,1 +2020-05-30,Dade,Georgia,13083,28,1 +2020-05-31,Dade,Georgia,13083,28,1 +2020-06-01,Dade,Georgia,13083,36,1 +2020-06-02,Dade,Georgia,13083,37,1 +2020-06-03,Dade,Georgia,13083,39,1 +2020-06-04,Dade,Georgia,13083,40,1 +2020-06-05,Dade,Georgia,13083,41,1 +2020-06-06,Dade,Georgia,13083,41,1 +2020-06-07,Dade,Georgia,13083,42,1 +2020-06-08,Dade,Georgia,13083,41,1 +2020-06-09,Dade,Georgia,13083,41,1 +2020-06-10,Dade,Georgia,13083,43,1 +2020-06-11,Dade,Georgia,13083,45,1 +2020-06-12,Dade,Georgia,13083,47,1 +2020-06-13,Dade,Georgia,13083,48,1 +2020-06-14,Dade,Georgia,13083,48,1 +2020-06-15,Dade,Georgia,13083,48,1 +2020-06-16,Dade,Georgia,13083,51,1 +2020-06-17,Dade,Georgia,13083,52,1 +2020-06-18,Dade,Georgia,13083,54,1 +2020-06-19,Dade,Georgia,13083,57,1 +2020-06-20,Dade,Georgia,13083,59,1 +2020-06-21,Dade,Georgia,13083,59,1 +2020-06-22,Dade,Georgia,13083,60,1 +2020-06-23,Dade,Georgia,13083,59,1 +2020-06-24,Dade,Georgia,13083,60,1 +2020-06-25,Dade,Georgia,13083,62,1 +2020-06-26,Dade,Georgia,13083,63,1 +2020-06-27,Dade,Georgia,13083,63,1 +2020-06-28,Dade,Georgia,13083,64,1 +2020-06-29,Dade,Georgia,13083,65,1 +2020-06-30,Dade,Georgia,13083,66,1 +2020-07-01,Dade,Georgia,13083,67,1 +2020-07-02,Dade,Georgia,13083,68,1 +2020-07-03,Dade,Georgia,13083,74,1 +2020-07-04,Dade,Georgia,13083,74,1 +2020-07-05,Dade,Georgia,13083,74,1 +2020-07-06,Dade,Georgia,13083,75,1 +2020-07-07,Dade,Georgia,13083,76,1 +2020-07-08,Dade,Georgia,13083,77,1 +2020-07-09,Dade,Georgia,13083,77,1 +2020-03-20,Dawson,Georgia,13085,1,0 +2020-03-21,Dawson,Georgia,13085,1,0 +2020-03-22,Dawson,Georgia,13085,1,0 +2020-03-23,Dawson,Georgia,13085,1,0 +2020-03-24,Dawson,Georgia,13085,1,0 +2020-03-25,Dawson,Georgia,13085,1,0 +2020-03-26,Dawson,Georgia,13085,3,0 +2020-03-27,Dawson,Georgia,13085,2,0 +2020-03-28,Dawson,Georgia,13085,2,0 +2020-03-29,Dawson,Georgia,13085,4,0 +2020-03-30,Dawson,Georgia,13085,7,0 +2020-03-31,Dawson,Georgia,13085,10,0 +2020-04-01,Dawson,Georgia,13085,11,0 +2020-04-02,Dawson,Georgia,13085,11,0 +2020-04-03,Dawson,Georgia,13085,13,0 +2020-04-04,Dawson,Georgia,13085,16,0 +2020-04-05,Dawson,Georgia,13085,16,0 +2020-04-06,Dawson,Georgia,13085,18,1 +2020-04-07,Dawson,Georgia,13085,20,1 +2020-04-08,Dawson,Georgia,13085,23,1 +2020-04-09,Dawson,Georgia,13085,24,1 +2020-04-10,Dawson,Georgia,13085,25,2 +2020-04-11,Dawson,Georgia,13085,25,2 +2020-04-12,Dawson,Georgia,13085,26,2 +2020-04-13,Dawson,Georgia,13085,32,2 +2020-04-14,Dawson,Georgia,13085,36,2 +2020-04-15,Dawson,Georgia,13085,37,2 +2020-04-16,Dawson,Georgia,13085,39,2 +2020-04-17,Dawson,Georgia,13085,42,1 +2020-04-18,Dawson,Georgia,13085,43,1 +2020-04-19,Dawson,Georgia,13085,44,1 +2020-04-20,Dawson,Georgia,13085,45,1 +2020-04-21,Dawson,Georgia,13085,45,1 +2020-04-22,Dawson,Georgia,13085,49,1 +2020-04-23,Dawson,Georgia,13085,50,1 +2020-04-24,Dawson,Georgia,13085,51,1 +2020-04-25,Dawson,Georgia,13085,51,1 +2020-04-26,Dawson,Georgia,13085,51,1 +2020-04-27,Dawson,Georgia,13085,53,1 +2020-04-28,Dawson,Georgia,13085,58,1 +2020-04-29,Dawson,Georgia,13085,60,1 +2020-04-30,Dawson,Georgia,13085,61,1 +2020-05-01,Dawson,Georgia,13085,61,1 +2020-05-02,Dawson,Georgia,13085,66,1 +2020-05-03,Dawson,Georgia,13085,66,1 +2020-05-04,Dawson,Georgia,13085,67,1 +2020-05-05,Dawson,Georgia,13085,67,1 +2020-05-06,Dawson,Georgia,13085,72,1 +2020-05-07,Dawson,Georgia,13085,73,1 +2020-05-08,Dawson,Georgia,13085,75,1 +2020-05-09,Dawson,Georgia,13085,75,1 +2020-05-10,Dawson,Georgia,13085,81,1 +2020-05-11,Dawson,Georgia,13085,81,1 +2020-05-12,Dawson,Georgia,13085,76,1 +2020-05-13,Dawson,Georgia,13085,81,1 +2020-05-14,Dawson,Georgia,13085,84,1 +2020-05-15,Dawson,Georgia,13085,84,1 +2020-05-16,Dawson,Georgia,13085,84,1 +2020-05-17,Dawson,Georgia,13085,83,1 +2020-05-18,Dawson,Georgia,13085,84,1 +2020-05-19,Dawson,Georgia,13085,86,1 +2020-05-20,Dawson,Georgia,13085,95,1 +2020-05-21,Dawson,Georgia,13085,99,2 +2020-05-22,Dawson,Georgia,13085,101,1 +2020-05-23,Dawson,Georgia,13085,101,1 +2020-05-24,Dawson,Georgia,13085,101,1 +2020-05-25,Dawson,Georgia,13085,103,1 +2020-05-26,Dawson,Georgia,13085,104,1 +2020-05-27,Dawson,Georgia,13085,108,1 +2020-05-28,Dawson,Georgia,13085,108,1 +2020-05-29,Dawson,Georgia,13085,109,1 +2020-05-30,Dawson,Georgia,13085,109,1 +2020-05-31,Dawson,Georgia,13085,109,1 +2020-06-01,Dawson,Georgia,13085,109,1 +2020-06-02,Dawson,Georgia,13085,109,1 +2020-06-03,Dawson,Georgia,13085,110,1 +2020-06-04,Dawson,Georgia,13085,110,1 +2020-06-05,Dawson,Georgia,13085,112,1 +2020-06-06,Dawson,Georgia,13085,113,1 +2020-06-07,Dawson,Georgia,13085,113,1 +2020-06-08,Dawson,Georgia,13085,114,1 +2020-06-09,Dawson,Georgia,13085,114,1 +2020-06-10,Dawson,Georgia,13085,116,2 +2020-06-11,Dawson,Georgia,13085,118,3 +2020-06-12,Dawson,Georgia,13085,118,3 +2020-06-13,Dawson,Georgia,13085,118,3 +2020-06-14,Dawson,Georgia,13085,118,3 +2020-06-15,Dawson,Georgia,13085,119,3 +2020-06-16,Dawson,Georgia,13085,121,3 +2020-06-17,Dawson,Georgia,13085,121,3 +2020-06-18,Dawson,Georgia,13085,123,3 +2020-06-19,Dawson,Georgia,13085,124,3 +2020-06-20,Dawson,Georgia,13085,124,3 +2020-06-21,Dawson,Georgia,13085,124,3 +2020-06-22,Dawson,Georgia,13085,124,3 +2020-06-23,Dawson,Georgia,13085,125,3 +2020-06-24,Dawson,Georgia,13085,127,3 +2020-06-25,Dawson,Georgia,13085,128,3 +2020-06-26,Dawson,Georgia,13085,131,3 +2020-06-27,Dawson,Georgia,13085,131,3 +2020-06-28,Dawson,Georgia,13085,133,3 +2020-06-29,Dawson,Georgia,13085,136,3 +2020-06-30,Dawson,Georgia,13085,141,3 +2020-07-01,Dawson,Georgia,13085,144,3 +2020-07-02,Dawson,Georgia,13085,146,3 +2020-07-03,Dawson,Georgia,13085,148,3 +2020-07-04,Dawson,Georgia,13085,153,3 +2020-07-05,Dawson,Georgia,13085,153,3 +2020-07-06,Dawson,Georgia,13085,153,3 +2020-07-07,Dawson,Georgia,13085,159,3 +2020-07-08,Dawson,Georgia,13085,162,3 +2020-07-09,Dawson,Georgia,13085,167,3 +2020-03-25,Decatur,Georgia,13087,1,0 +2020-03-26,Decatur,Georgia,13087,2,0 +2020-03-27,Decatur,Georgia,13087,3,0 +2020-03-28,Decatur,Georgia,13087,4,0 +2020-03-29,Decatur,Georgia,13087,4,0 +2020-03-30,Decatur,Georgia,13087,6,0 +2020-03-31,Decatur,Georgia,13087,8,0 +2020-04-01,Decatur,Georgia,13087,8,0 +2020-04-02,Decatur,Georgia,13087,10,0 +2020-04-03,Decatur,Georgia,13087,16,0 +2020-04-04,Decatur,Georgia,13087,16,0 +2020-04-05,Decatur,Georgia,13087,17,0 +2020-04-06,Decatur,Georgia,13087,13,0 +2020-04-07,Decatur,Georgia,13087,21,0 +2020-04-08,Decatur,Georgia,13087,22,0 +2020-04-09,Decatur,Georgia,13087,25,0 +2020-04-10,Decatur,Georgia,13087,27,0 +2020-04-11,Decatur,Georgia,13087,28,0 +2020-04-12,Decatur,Georgia,13087,29,0 +2020-04-13,Decatur,Georgia,13087,39,0 +2020-04-14,Decatur,Georgia,13087,46,0 +2020-04-15,Decatur,Georgia,13087,51,0 +2020-04-16,Decatur,Georgia,13087,55,0 +2020-04-17,Decatur,Georgia,13087,55,0 +2020-04-18,Decatur,Georgia,13087,55,0 +2020-04-19,Decatur,Georgia,13087,62,1 +2020-04-20,Decatur,Georgia,13087,60,1 +2020-04-21,Decatur,Georgia,13087,53,1 +2020-04-22,Decatur,Georgia,13087,50,1 +2020-04-23,Decatur,Georgia,13087,61,1 +2020-04-24,Decatur,Georgia,13087,59,1 +2020-04-25,Decatur,Georgia,13087,60,1 +2020-04-26,Decatur,Georgia,13087,60,1 +2020-04-27,Decatur,Georgia,13087,64,1 +2020-04-28,Decatur,Georgia,13087,66,1 +2020-04-29,Decatur,Georgia,13087,81,1 +2020-04-30,Decatur,Georgia,13087,83,1 +2020-05-01,Decatur,Georgia,13087,87,1 +2020-05-02,Decatur,Georgia,13087,90,1 +2020-05-03,Decatur,Georgia,13087,91,1 +2020-05-04,Decatur,Georgia,13087,94,1 +2020-05-05,Decatur,Georgia,13087,96,2 +2020-05-06,Decatur,Georgia,13087,105,2 +2020-05-07,Decatur,Georgia,13087,105,2 +2020-05-08,Decatur,Georgia,13087,109,2 +2020-05-09,Decatur,Georgia,13087,109,2 +2020-05-10,Decatur,Georgia,13087,109,2 +2020-05-11,Decatur,Georgia,13087,109,3 +2020-05-12,Decatur,Georgia,13087,113,3 +2020-05-13,Decatur,Georgia,13087,115,3 +2020-05-14,Decatur,Georgia,13087,115,3 +2020-05-15,Decatur,Georgia,13087,116,3 +2020-05-16,Decatur,Georgia,13087,116,3 +2020-05-17,Decatur,Georgia,13087,116,3 +2020-05-18,Decatur,Georgia,13087,128,4 +2020-05-19,Decatur,Georgia,13087,131,4 +2020-05-20,Decatur,Georgia,13087,140,4 +2020-05-21,Decatur,Georgia,13087,144,4 +2020-05-22,Decatur,Georgia,13087,145,4 +2020-05-23,Decatur,Georgia,13087,145,4 +2020-05-24,Decatur,Georgia,13087,146,4 +2020-05-25,Decatur,Georgia,13087,153,4 +2020-05-26,Decatur,Georgia,13087,156,4 +2020-05-27,Decatur,Georgia,13087,161,4 +2020-05-28,Decatur,Georgia,13087,181,4 +2020-05-29,Decatur,Georgia,13087,185,4 +2020-05-30,Decatur,Georgia,13087,186,4 +2020-05-31,Decatur,Georgia,13087,186,5 +2020-06-01,Decatur,Georgia,13087,194,5 +2020-06-02,Decatur,Georgia,13087,204,5 +2020-06-03,Decatur,Georgia,13087,206,5 +2020-06-04,Decatur,Georgia,13087,205,6 +2020-06-05,Decatur,Georgia,13087,207,6 +2020-06-06,Decatur,Georgia,13087,209,6 +2020-06-07,Decatur,Georgia,13087,209,6 +2020-06-08,Decatur,Georgia,13087,214,6 +2020-06-09,Decatur,Georgia,13087,218,6 +2020-06-10,Decatur,Georgia,13087,219,7 +2020-06-11,Decatur,Georgia,13087,219,7 +2020-06-12,Decatur,Georgia,13087,222,7 +2020-06-13,Decatur,Georgia,13087,223,7 +2020-06-14,Decatur,Georgia,13087,224,7 +2020-06-15,Decatur,Georgia,13087,224,8 +2020-06-16,Decatur,Georgia,13087,236,8 +2020-06-17,Decatur,Georgia,13087,235,8 +2020-06-18,Decatur,Georgia,13087,239,8 +2020-06-19,Decatur,Georgia,13087,242,8 +2020-06-20,Decatur,Georgia,13087,243,8 +2020-06-21,Decatur,Georgia,13087,243,8 +2020-06-22,Decatur,Georgia,13087,244,8 +2020-06-23,Decatur,Georgia,13087,245,8 +2020-06-24,Decatur,Georgia,13087,246,8 +2020-06-25,Decatur,Georgia,13087,248,8 +2020-06-26,Decatur,Georgia,13087,249,8 +2020-06-27,Decatur,Georgia,13087,249,8 +2020-06-28,Decatur,Georgia,13087,249,8 +2020-06-29,Decatur,Georgia,13087,250,8 +2020-06-30,Decatur,Georgia,13087,253,8 +2020-07-01,Decatur,Georgia,13087,253,8 +2020-07-02,Decatur,Georgia,13087,261,8 +2020-07-03,Decatur,Georgia,13087,262,8 +2020-07-04,Decatur,Georgia,13087,266,8 +2020-07-05,Decatur,Georgia,13087,268,8 +2020-07-06,Decatur,Georgia,13087,265,8 +2020-07-07,Decatur,Georgia,13087,268,8 +2020-07-08,Decatur,Georgia,13087,271,8 +2020-07-09,Decatur,Georgia,13087,282,8 +2020-03-09,DeKalb,Georgia,13089,2,0 +2020-03-10,DeKalb,Georgia,13089,2,0 +2020-03-11,DeKalb,Georgia,13089,4,0 +2020-03-12,DeKalb,Georgia,13089,4,0 +2020-03-13,DeKalb,Georgia,13089,4,0 +2020-03-14,DeKalb,Georgia,13089,8,0 +2020-03-15,DeKalb,Georgia,13089,10,0 +2020-03-16,DeKalb,Georgia,13089,10,0 +2020-03-17,DeKalb,Georgia,13089,15,0 +2020-03-18,DeKalb,Georgia,13089,18,0 +2020-03-19,DeKalb,Georgia,13089,22,0 +2020-03-20,DeKalb,Georgia,13089,40,0 +2020-03-21,DeKalb,Georgia,13089,42,0 +2020-03-22,DeKalb,Georgia,13089,53,0 +2020-03-23,DeKalb,Georgia,13089,74,0 +2020-03-24,DeKalb,Georgia,13089,107,0 +2020-03-25,DeKalb,Georgia,13089,125,0 +2020-03-26,DeKalb,Georgia,13089,137,0 +2020-03-27,DeKalb,Georgia,13089,219,2 +2020-03-28,DeKalb,Georgia,13089,246,3 +2020-03-29,DeKalb,Georgia,13089,273,3 +2020-03-30,DeKalb,Georgia,13089,294,3 +2020-03-31,DeKalb,Georgia,13089,360,4 +2020-04-01,DeKalb,Georgia,13089,360,4 +2020-04-02,DeKalb,Georgia,13089,409,8 +2020-04-03,DeKalb,Georgia,13089,483,8 +2020-04-04,DeKalb,Georgia,13089,539,9 +2020-04-05,DeKalb,Georgia,13089,549,9 +2020-04-06,DeKalb,Georgia,13089,600,11 +2020-04-07,DeKalb,Georgia,13089,673,11 +2020-04-08,DeKalb,Georgia,13089,732,12 +2020-04-09,DeKalb,Georgia,13089,766,13 +2020-04-10,DeKalb,Georgia,13089,826,13 +2020-04-11,DeKalb,Georgia,13089,848,14 +2020-04-12,DeKalb,Georgia,13089,893,14 +2020-04-13,DeKalb,Georgia,13089,1006,15 +2020-04-14,DeKalb,Georgia,13089,1144,15 +2020-04-15,DeKalb,Georgia,13089,1225,16 +2020-04-16,DeKalb,Georgia,13089,1260,21 +2020-04-17,DeKalb,Georgia,13089,1366,23 +2020-04-18,DeKalb,Georgia,13089,1408,24 +2020-04-19,DeKalb,Georgia,13089,1473,24 +2020-04-20,DeKalb,Georgia,13089,1520,26 +2020-04-21,DeKalb,Georgia,13089,1563,30 +2020-04-22,DeKalb,Georgia,13089,1609,31 +2020-04-23,DeKalb,Georgia,13089,1689,34 +2020-04-24,DeKalb,Georgia,13089,1721,36 +2020-04-25,DeKalb,Georgia,13089,1788,36 +2020-04-26,DeKalb,Georgia,13089,1800,36 +2020-04-27,DeKalb,Georgia,13089,1855,42 +2020-04-28,DeKalb,Georgia,13089,1907,44 +2020-04-29,DeKalb,Georgia,13089,1980,46 +2020-04-30,DeKalb,Georgia,13089,2027,47 +2020-05-01,DeKalb,Georgia,13089,2073,49 +2020-05-02,DeKalb,Georgia,13089,2148,52 +2020-05-03,DeKalb,Georgia,13089,2184,53 +2020-05-04,DeKalb,Georgia,13089,2255,57 +2020-05-05,DeKalb,Georgia,13089,2284,59 +2020-05-06,DeKalb,Georgia,13089,2357,61 +2020-05-07,DeKalb,Georgia,13089,2396,62 +2020-05-08,DeKalb,Georgia,13089,2445,69 +2020-05-09,DeKalb,Georgia,13089,2489,69 +2020-05-10,DeKalb,Georgia,13089,2536,69 +2020-05-11,DeKalb,Georgia,13089,2555,71 +2020-05-12,DeKalb,Georgia,13089,2605,72 +2020-05-13,DeKalb,Georgia,13089,2632,73 +2020-05-14,DeKalb,Georgia,13089,2664,75 +2020-05-15,DeKalb,Georgia,13089,2751,80 +2020-05-16,DeKalb,Georgia,13089,2800,81 +2020-05-17,DeKalb,Georgia,13089,2802,82 +2020-05-18,DeKalb,Georgia,13089,2856,86 +2020-05-19,DeKalb,Georgia,13089,2918,87 +2020-05-20,DeKalb,Georgia,13089,2979,88 +2020-05-21,DeKalb,Georgia,13089,3038,96 +2020-05-22,DeKalb,Georgia,13089,3080,100 +2020-05-23,DeKalb,Georgia,13089,3146,102 +2020-05-24,DeKalb,Georgia,13089,3257,102 +2020-05-25,DeKalb,Georgia,13089,3305,104 +2020-05-26,DeKalb,Georgia,13089,3421,107 +2020-05-27,DeKalb,Georgia,13089,3573,111 +2020-05-28,DeKalb,Georgia,13089,3635,112 +2020-05-29,DeKalb,Georgia,13089,3718,112 +2020-05-30,DeKalb,Georgia,13089,3731,112 +2020-05-31,DeKalb,Georgia,13089,3734,120 +2020-06-01,DeKalb,Georgia,13089,3795,121 +2020-06-02,DeKalb,Georgia,13089,3803,121 +2020-06-03,DeKalb,Georgia,13089,3874,122 +2020-06-04,DeKalb,Georgia,13089,3939,122 +2020-06-05,DeKalb,Georgia,13089,3986,124 +2020-06-06,DeKalb,Georgia,13089,4008,125 +2020-06-07,DeKalb,Georgia,13089,4012,125 +2020-06-08,DeKalb,Georgia,13089,4054,125 +2020-06-09,DeKalb,Georgia,13089,4120,135 +2020-06-10,DeKalb,Georgia,13089,4186,136 +2020-06-11,DeKalb,Georgia,13089,4229,139 +2020-06-12,DeKalb,Georgia,13089,4282,142 +2020-06-13,DeKalb,Georgia,13089,4303,145 +2020-06-14,DeKalb,Georgia,13089,4311,145 +2020-06-15,DeKalb,Georgia,13089,4355,148 +2020-06-16,DeKalb,Georgia,13089,4411,152 +2020-06-17,DeKalb,Georgia,13089,4489,155 +2020-06-18,DeKalb,Georgia,13089,4541,158 +2020-06-19,DeKalb,Georgia,13089,4637,164 +2020-06-20,DeKalb,Georgia,13089,4666,165 +2020-06-21,DeKalb,Georgia,13089,4694,165 +2020-06-22,DeKalb,Georgia,13089,4791,165 +2020-06-23,DeKalb,Georgia,13089,5042,166 +2020-06-24,DeKalb,Georgia,13089,5158,166 +2020-06-25,DeKalb,Georgia,13089,5258,168 +2020-06-26,DeKalb,Georgia,13089,5322,171 +2020-06-27,DeKalb,Georgia,13089,5404,171 +2020-06-28,DeKalb,Georgia,13089,5448,171 +2020-06-29,DeKalb,Georgia,13089,5469,171 +2020-06-30,DeKalb,Georgia,13089,5841,173 +2020-07-01,DeKalb,Georgia,13089,5959,173 +2020-07-02,DeKalb,Georgia,13089,6172,173 +2020-07-03,DeKalb,Georgia,13089,6381,173 +2020-07-04,DeKalb,Georgia,13089,6689,173 +2020-07-05,DeKalb,Georgia,13089,6905,173 +2020-07-06,DeKalb,Georgia,13089,7050,173 +2020-07-07,DeKalb,Georgia,13089,7158,173 +2020-07-08,DeKalb,Georgia,13089,7362,175 +2020-07-09,DeKalb,Georgia,13089,7472,175 +2020-03-25,Dodge,Georgia,13091,1,0 +2020-03-26,Dodge,Georgia,13091,1,0 +2020-03-27,Dodge,Georgia,13091,1,0 +2020-03-28,Dodge,Georgia,13091,1,0 +2020-03-29,Dodge,Georgia,13091,1,0 +2020-03-30,Dodge,Georgia,13091,2,0 +2020-03-31,Dodge,Georgia,13091,2,0 +2020-04-01,Dodge,Georgia,13091,3,0 +2020-04-02,Dodge,Georgia,13091,5,0 +2020-04-03,Dodge,Georgia,13091,5,0 +2020-04-04,Dodge,Georgia,13091,5,0 +2020-04-05,Dodge,Georgia,13091,6,0 +2020-04-06,Dodge,Georgia,13091,8,0 +2020-04-07,Dodge,Georgia,13091,8,0 +2020-04-08,Dodge,Georgia,13091,9,0 +2020-04-09,Dodge,Georgia,13091,9,0 +2020-04-10,Dodge,Georgia,13091,9,0 +2020-04-11,Dodge,Georgia,13091,11,0 +2020-04-12,Dodge,Georgia,13091,13,0 +2020-04-13,Dodge,Georgia,13091,15,0 +2020-04-14,Dodge,Georgia,13091,17,0 +2020-04-15,Dodge,Georgia,13091,18,0 +2020-04-16,Dodge,Georgia,13091,19,0 +2020-04-17,Dodge,Georgia,13091,19,0 +2020-04-18,Dodge,Georgia,13091,19,0 +2020-04-19,Dodge,Georgia,13091,19,0 +2020-04-20,Dodge,Georgia,13091,19,0 +2020-04-21,Dodge,Georgia,13091,19,0 +2020-04-22,Dodge,Georgia,13091,21,0 +2020-04-23,Dodge,Georgia,13091,22,0 +2020-04-24,Dodge,Georgia,13091,22,0 +2020-04-25,Dodge,Georgia,13091,23,0 +2020-04-26,Dodge,Georgia,13091,23,0 +2020-04-27,Dodge,Georgia,13091,24,1 +2020-04-28,Dodge,Georgia,13091,24,1 +2020-04-29,Dodge,Georgia,13091,25,1 +2020-04-30,Dodge,Georgia,13091,26,1 +2020-05-01,Dodge,Georgia,13091,28,1 +2020-05-02,Dodge,Georgia,13091,29,1 +2020-05-03,Dodge,Georgia,13091,29,1 +2020-05-04,Dodge,Georgia,13091,30,1 +2020-05-05,Dodge,Georgia,13091,31,1 +2020-05-06,Dodge,Georgia,13091,32,1 +2020-05-07,Dodge,Georgia,13091,31,1 +2020-05-08,Dodge,Georgia,13091,32,1 +2020-05-09,Dodge,Georgia,13091,32,1 +2020-05-10,Dodge,Georgia,13091,32,1 +2020-05-11,Dodge,Georgia,13091,34,1 +2020-05-12,Dodge,Georgia,13091,35,1 +2020-05-13,Dodge,Georgia,13091,36,1 +2020-05-14,Dodge,Georgia,13091,38,1 +2020-05-15,Dodge,Georgia,13091,38,2 +2020-05-16,Dodge,Georgia,13091,39,2 +2020-05-17,Dodge,Georgia,13091,38,2 +2020-05-18,Dodge,Georgia,13091,44,2 +2020-05-19,Dodge,Georgia,13091,44,2 +2020-05-20,Dodge,Georgia,13091,47,2 +2020-05-21,Dodge,Georgia,13091,47,2 +2020-05-22,Dodge,Georgia,13091,48,2 +2020-05-23,Dodge,Georgia,13091,48,2 +2020-05-24,Dodge,Georgia,13091,48,2 +2020-05-25,Dodge,Georgia,13091,48,2 +2020-05-26,Dodge,Georgia,13091,50,2 +2020-05-27,Dodge,Georgia,13091,50,2 +2020-05-28,Dodge,Georgia,13091,51,2 +2020-05-29,Dodge,Georgia,13091,51,2 +2020-05-30,Dodge,Georgia,13091,51,2 +2020-05-31,Dodge,Georgia,13091,51,2 +2020-06-01,Dodge,Georgia,13091,52,2 +2020-06-02,Dodge,Georgia,13091,52,2 +2020-06-03,Dodge,Georgia,13091,52,2 +2020-06-04,Dodge,Georgia,13091,52,2 +2020-06-05,Dodge,Georgia,13091,52,2 +2020-06-06,Dodge,Georgia,13091,53,2 +2020-06-07,Dodge,Georgia,13091,53,2 +2020-06-08,Dodge,Georgia,13091,53,2 +2020-06-09,Dodge,Georgia,13091,53,2 +2020-06-10,Dodge,Georgia,13091,53,2 +2020-06-11,Dodge,Georgia,13091,53,2 +2020-06-12,Dodge,Georgia,13091,54,2 +2020-06-13,Dodge,Georgia,13091,54,2 +2020-06-14,Dodge,Georgia,13091,54,2 +2020-06-15,Dodge,Georgia,13091,56,2 +2020-06-16,Dodge,Georgia,13091,59,2 +2020-06-17,Dodge,Georgia,13091,62,2 +2020-06-18,Dodge,Georgia,13091,62,2 +2020-06-19,Dodge,Georgia,13091,62,2 +2020-06-20,Dodge,Georgia,13091,67,2 +2020-06-21,Dodge,Georgia,13091,67,2 +2020-06-22,Dodge,Georgia,13091,67,2 +2020-06-23,Dodge,Georgia,13091,70,2 +2020-06-24,Dodge,Georgia,13091,71,2 +2020-06-25,Dodge,Georgia,13091,77,2 +2020-06-26,Dodge,Georgia,13091,84,2 +2020-06-27,Dodge,Georgia,13091,88,2 +2020-06-28,Dodge,Georgia,13091,92,2 +2020-06-29,Dodge,Georgia,13091,96,2 +2020-06-30,Dodge,Georgia,13091,100,2 +2020-07-01,Dodge,Georgia,13091,104,2 +2020-07-02,Dodge,Georgia,13091,107,2 +2020-07-03,Dodge,Georgia,13091,113,2 +2020-07-04,Dodge,Georgia,13091,113,2 +2020-07-05,Dodge,Georgia,13091,113,2 +2020-07-06,Dodge,Georgia,13091,113,2 +2020-07-07,Dodge,Georgia,13091,122,2 +2020-07-08,Dodge,Georgia,13091,127,2 +2020-07-09,Dodge,Georgia,13091,131,2 +2020-03-30,Dooly,Georgia,13093,3,0 +2020-03-31,Dooly,Georgia,13093,8,0 +2020-04-01,Dooly,Georgia,13093,10,0 +2020-04-02,Dooly,Georgia,13093,11,0 +2020-04-03,Dooly,Georgia,13093,12,0 +2020-04-04,Dooly,Georgia,13093,15,1 +2020-04-05,Dooly,Georgia,13093,15,1 +2020-04-06,Dooly,Georgia,13093,27,1 +2020-04-07,Dooly,Georgia,13093,27,1 +2020-04-08,Dooly,Georgia,13093,28,1 +2020-04-09,Dooly,Georgia,13093,35,1 +2020-04-10,Dooly,Georgia,13093,37,1 +2020-04-11,Dooly,Georgia,13093,40,1 +2020-04-12,Dooly,Georgia,13093,44,2 +2020-04-13,Dooly,Georgia,13093,51,2 +2020-04-14,Dooly,Georgia,13093,51,2 +2020-04-15,Dooly,Georgia,13093,55,4 +2020-04-16,Dooly,Georgia,13093,64,4 +2020-04-17,Dooly,Georgia,13093,69,4 +2020-04-18,Dooly,Georgia,13093,69,4 +2020-04-19,Dooly,Georgia,13093,70,5 +2020-04-20,Dooly,Georgia,13093,71,5 +2020-04-21,Dooly,Georgia,13093,73,6 +2020-04-22,Dooly,Georgia,13093,74,6 +2020-04-23,Dooly,Georgia,13093,81,7 +2020-04-24,Dooly,Georgia,13093,106,7 +2020-04-25,Dooly,Georgia,13093,108,7 +2020-04-26,Dooly,Georgia,13093,112,7 +2020-04-27,Dooly,Georgia,13093,119,8 +2020-04-28,Dooly,Georgia,13093,120,8 +2020-04-29,Dooly,Georgia,13093,123,9 +2020-04-30,Dooly,Georgia,13093,129,9 +2020-05-01,Dooly,Georgia,13093,129,9 +2020-05-02,Dooly,Georgia,13093,131,9 +2020-05-03,Dooly,Georgia,13093,132,9 +2020-05-04,Dooly,Georgia,13093,133,12 +2020-05-05,Dooly,Georgia,13093,132,11 +2020-05-06,Dooly,Georgia,13093,133,11 +2020-05-07,Dooly,Georgia,13093,137,12 +2020-05-08,Dooly,Georgia,13093,140,12 +2020-05-09,Dooly,Georgia,13093,142,12 +2020-05-10,Dooly,Georgia,13093,146,12 +2020-05-11,Dooly,Georgia,13093,146,12 +2020-05-12,Dooly,Georgia,13093,148,12 +2020-05-13,Dooly,Georgia,13093,151,12 +2020-05-14,Dooly,Georgia,13093,152,12 +2020-05-15,Dooly,Georgia,13093,155,12 +2020-05-16,Dooly,Georgia,13093,157,12 +2020-05-17,Dooly,Georgia,13093,157,12 +2020-05-18,Dooly,Georgia,13093,162,12 +2020-05-19,Dooly,Georgia,13093,162,12 +2020-05-20,Dooly,Georgia,13093,163,12 +2020-05-21,Dooly,Georgia,13093,164,12 +2020-05-22,Dooly,Georgia,13093,164,12 +2020-05-23,Dooly,Georgia,13093,165,12 +2020-05-24,Dooly,Georgia,13093,168,12 +2020-05-25,Dooly,Georgia,13093,172,12 +2020-05-26,Dooly,Georgia,13093,174,12 +2020-05-27,Dooly,Georgia,13093,176,12 +2020-05-28,Dooly,Georgia,13093,177,12 +2020-05-29,Dooly,Georgia,13093,179,12 +2020-05-30,Dooly,Georgia,13093,179,12 +2020-05-31,Dooly,Georgia,13093,179,12 +2020-06-01,Dooly,Georgia,13093,182,12 +2020-06-02,Dooly,Georgia,13093,183,12 +2020-06-03,Dooly,Georgia,13093,185,12 +2020-06-04,Dooly,Georgia,13093,186,12 +2020-06-05,Dooly,Georgia,13093,189,12 +2020-06-06,Dooly,Georgia,13093,190,12 +2020-06-07,Dooly,Georgia,13093,191,12 +2020-06-08,Dooly,Georgia,13093,191,12 +2020-06-09,Dooly,Georgia,13093,193,12 +2020-06-10,Dooly,Georgia,13093,196,12 +2020-06-11,Dooly,Georgia,13093,196,13 +2020-06-12,Dooly,Georgia,13093,197,13 +2020-06-13,Dooly,Georgia,13093,196,12 +2020-06-14,Dooly,Georgia,13093,196,12 +2020-06-15,Dooly,Georgia,13093,191,12 +2020-06-16,Dooly,Georgia,13093,193,12 +2020-06-17,Dooly,Georgia,13093,193,12 +2020-06-18,Dooly,Georgia,13093,194,12 +2020-06-19,Dooly,Georgia,13093,194,12 +2020-06-20,Dooly,Georgia,13093,194,12 +2020-06-21,Dooly,Georgia,13093,194,12 +2020-06-22,Dooly,Georgia,13093,194,12 +2020-06-23,Dooly,Georgia,13093,194,12 +2020-06-24,Dooly,Georgia,13093,195,12 +2020-06-25,Dooly,Georgia,13093,196,12 +2020-06-26,Dooly,Georgia,13093,197,12 +2020-06-27,Dooly,Georgia,13093,200,12 +2020-06-28,Dooly,Georgia,13093,200,12 +2020-06-29,Dooly,Georgia,13093,205,12 +2020-06-30,Dooly,Georgia,13093,210,12 +2020-07-01,Dooly,Georgia,13093,209,12 +2020-07-02,Dooly,Georgia,13093,210,12 +2020-07-03,Dooly,Georgia,13093,211,12 +2020-07-04,Dooly,Georgia,13093,212,12 +2020-07-05,Dooly,Georgia,13093,215,12 +2020-07-06,Dooly,Georgia,13093,214,12 +2020-07-07,Dooly,Georgia,13093,217,12 +2020-07-08,Dooly,Georgia,13093,217,12 +2020-07-09,Dooly,Georgia,13093,219,12 +2020-03-15,Dougherty,Georgia,13095,6,0 +2020-03-16,Dougherty,Georgia,13095,6,0 +2020-03-17,Dougherty,Georgia,13095,6,0 +2020-03-18,Dougherty,Georgia,13095,7,2 +2020-03-19,Dougherty,Georgia,13095,22,4 +2020-03-20,Dougherty,Georgia,13095,45,6 +2020-03-21,Dougherty,Georgia,13095,47,6 +2020-03-22,Dougherty,Georgia,13095,52,6 +2020-03-23,Dougherty,Georgia,13095,69,6 +2020-03-24,Dougherty,Georgia,13095,101,6 +2020-03-25,Dougherty,Georgia,13095,123,6 +2020-03-26,Dougherty,Georgia,13095,164,6 +2020-03-27,Dougherty,Georgia,13095,203,12 +2020-03-28,Dougherty,Georgia,13095,224,17 +2020-03-29,Dougherty,Georgia,13095,247,17 +2020-03-30,Dougherty,Georgia,13095,278,18 +2020-03-31,Dougherty,Georgia,13095,466,26 +2020-04-01,Dougherty,Georgia,13095,490,29 +2020-04-02,Dougherty,Georgia,13095,521,30 +2020-04-03,Dougherty,Georgia,13095,607,30 +2020-04-04,Dougherty,Georgia,13095,685,30 +2020-04-05,Dougherty,Georgia,13095,688,31 +2020-04-06,Dougherty,Georgia,13095,722,44 +2020-04-07,Dougherty,Georgia,13095,973,56 +2020-04-08,Dougherty,Georgia,13095,1001,62 +2020-04-09,Dougherty,Georgia,13095,1042,66 +2020-04-10,Dougherty,Georgia,13095,1072,68 +2020-04-11,Dougherty,Georgia,13095,1102,72 +2020-04-12,Dougherty,Georgia,13095,1178,72 +2020-04-13,Dougherty,Georgia,13095,1245,78 +2020-04-14,Dougherty,Georgia,13095,1297,78 +2020-04-15,Dougherty,Georgia,13095,1320,84 +2020-04-16,Dougherty,Georgia,13095,1358,88 +2020-04-17,Dougherty,Georgia,13095,1385,91 +2020-04-18,Dougherty,Georgia,13095,1409,91 +2020-04-19,Dougherty,Georgia,13095,1425,90 +2020-04-20,Dougherty,Georgia,13095,1436,98 +2020-04-21,Dougherty,Georgia,13095,1456,103 +2020-04-22,Dougherty,Georgia,13095,1479,106 +2020-04-23,Dougherty,Georgia,13095,1478,109 +2020-04-24,Dougherty,Georgia,13095,1465,108 +2020-04-25,Dougherty,Georgia,13095,1470,108 +2020-04-26,Dougherty,Georgia,13095,1470,108 +2020-04-27,Dougherty,Georgia,13095,1480,114 +2020-04-28,Dougherty,Georgia,13095,1493,118 +2020-04-29,Dougherty,Georgia,13095,1500,119 +2020-04-30,Dougherty,Georgia,13095,1506,120 +2020-05-01,Dougherty,Georgia,13095,1531,123 +2020-05-02,Dougherty,Georgia,13095,1534,124 +2020-05-03,Dougherty,Georgia,13095,1536,124 +2020-05-04,Dougherty,Georgia,13095,1543,125 +2020-05-05,Dougherty,Georgia,13095,1550,125 +2020-05-06,Dougherty,Georgia,13095,1555,126 +2020-05-07,Dougherty,Georgia,13095,1566,126 +2020-05-08,Dougherty,Georgia,13095,1583,126 +2020-05-09,Dougherty,Georgia,13095,1587,126 +2020-05-10,Dougherty,Georgia,13095,1593,126 +2020-05-11,Dougherty,Georgia,13095,1609,128 +2020-05-12,Dougherty,Georgia,13095,1643,129 +2020-05-13,Dougherty,Georgia,13095,1644,130 +2020-05-14,Dougherty,Georgia,13095,1643,132 +2020-05-15,Dougherty,Georgia,13095,1662,134 +2020-05-16,Dougherty,Georgia,13095,1662,134 +2020-05-17,Dougherty,Georgia,13095,1661,134 +2020-05-18,Dougherty,Georgia,13095,1664,135 +2020-05-19,Dougherty,Georgia,13095,1668,139 +2020-05-20,Dougherty,Georgia,13095,1672,139 +2020-05-21,Dougherty,Georgia,13095,1716,138 +2020-05-22,Dougherty,Georgia,13095,1723,138 +2020-05-23,Dougherty,Georgia,13095,1725,139 +2020-05-24,Dougherty,Georgia,13095,1727,139 +2020-05-25,Dougherty,Georgia,13095,1730,140 +2020-05-26,Dougherty,Georgia,13095,1774,142 +2020-05-27,Dougherty,Georgia,13095,1784,144 +2020-05-28,Dougherty,Georgia,13095,1764,144 +2020-05-29,Dougherty,Georgia,13095,1763,144 +2020-05-30,Dougherty,Georgia,13095,1770,145 +2020-05-31,Dougherty,Georgia,13095,1770,148 +2020-06-01,Dougherty,Georgia,13095,1780,149 +2020-06-02,Dougherty,Georgia,13095,1784,149 +2020-06-03,Dougherty,Georgia,13095,1790,149 +2020-06-04,Dougherty,Georgia,13095,1794,149 +2020-06-05,Dougherty,Georgia,13095,1796,149 +2020-06-06,Dougherty,Georgia,13095,1803,149 +2020-06-07,Dougherty,Georgia,13095,1803,149 +2020-06-08,Dougherty,Georgia,13095,1806,149 +2020-06-09,Dougherty,Georgia,13095,1818,149 +2020-06-10,Dougherty,Georgia,13095,1820,150 +2020-06-11,Dougherty,Georgia,13095,1827,150 +2020-06-12,Dougherty,Georgia,13095,1828,150 +2020-06-13,Dougherty,Georgia,13095,1833,150 +2020-06-14,Dougherty,Georgia,13095,1837,150 +2020-06-15,Dougherty,Georgia,13095,1839,150 +2020-06-16,Dougherty,Georgia,13095,1841,151 +2020-06-17,Dougherty,Georgia,13095,1845,151 +2020-06-18,Dougherty,Georgia,13095,1836,151 +2020-06-19,Dougherty,Georgia,13095,1844,151 +2020-06-20,Dougherty,Georgia,13095,1844,151 +2020-06-21,Dougherty,Georgia,13095,1848,151 +2020-06-22,Dougherty,Georgia,13095,1854,152 +2020-06-23,Dougherty,Georgia,13095,1865,153 +2020-06-24,Dougherty,Georgia,13095,1866,153 +2020-06-25,Dougherty,Georgia,13095,1870,154 +2020-06-26,Dougherty,Georgia,13095,1873,154 +2020-06-27,Dougherty,Georgia,13095,1883,154 +2020-06-28,Dougherty,Georgia,13095,1883,154 +2020-06-29,Dougherty,Georgia,13095,1887,154 +2020-06-30,Dougherty,Georgia,13095,1903,154 +2020-07-01,Dougherty,Georgia,13095,1914,155 +2020-07-02,Dougherty,Georgia,13095,1922,155 +2020-07-03,Dougherty,Georgia,13095,1939,155 +2020-07-04,Dougherty,Georgia,13095,1969,155 +2020-07-05,Dougherty,Georgia,13095,1991,155 +2020-07-06,Dougherty,Georgia,13095,2001,155 +2020-07-07,Dougherty,Georgia,13095,2030,155 +2020-07-08,Dougherty,Georgia,13095,2036,155 +2020-07-09,Dougherty,Georgia,13095,2042,155 +2020-03-20,Douglas,Georgia,13097,1,0 +2020-03-21,Douglas,Georgia,13097,4,0 +2020-03-22,Douglas,Georgia,13097,4,0 +2020-03-23,Douglas,Georgia,13097,7,0 +2020-03-24,Douglas,Georgia,13097,12,0 +2020-03-25,Douglas,Georgia,13097,18,0 +2020-03-26,Douglas,Georgia,13097,18,0 +2020-03-27,Douglas,Georgia,13097,32,1 +2020-03-28,Douglas,Georgia,13097,35,1 +2020-03-29,Douglas,Georgia,13097,38,1 +2020-03-30,Douglas,Georgia,13097,43,1 +2020-03-31,Douglas,Georgia,13097,51,1 +2020-04-01,Douglas,Georgia,13097,56,2 +2020-04-02,Douglas,Georgia,13097,66,3 +2020-04-03,Douglas,Georgia,13097,78,4 +2020-04-04,Douglas,Georgia,13097,84,4 +2020-04-05,Douglas,Georgia,13097,91,5 +2020-04-06,Douglas,Georgia,13097,105,5 +2020-04-07,Douglas,Georgia,13097,117,5 +2020-04-08,Douglas,Georgia,13097,124,5 +2020-04-09,Douglas,Georgia,13097,134,5 +2020-04-10,Douglas,Georgia,13097,148,5 +2020-04-11,Douglas,Georgia,13097,151,5 +2020-04-12,Douglas,Georgia,13097,159,5 +2020-04-13,Douglas,Georgia,13097,177,5 +2020-04-14,Douglas,Georgia,13097,189,6 +2020-04-15,Douglas,Georgia,13097,201,6 +2020-04-16,Douglas,Georgia,13097,209,6 +2020-04-17,Douglas,Georgia,13097,222,6 +2020-04-18,Douglas,Georgia,13097,229,6 +2020-04-19,Douglas,Georgia,13097,233,6 +2020-04-20,Douglas,Georgia,13097,243,6 +2020-04-21,Douglas,Georgia,13097,246,7 +2020-04-22,Douglas,Georgia,13097,259,8 +2020-04-23,Douglas,Georgia,13097,273,8 +2020-04-24,Douglas,Georgia,13097,276,8 +2020-04-25,Douglas,Georgia,13097,276,8 +2020-04-26,Douglas,Georgia,13097,278,8 +2020-04-27,Douglas,Georgia,13097,284,11 +2020-04-28,Douglas,Georgia,13097,300,11 +2020-04-29,Douglas,Georgia,13097,311,11 +2020-04-30,Douglas,Georgia,13097,319,11 +2020-05-01,Douglas,Georgia,13097,329,11 +2020-05-02,Douglas,Georgia,13097,335,11 +2020-05-03,Douglas,Georgia,13097,341,11 +2020-05-04,Douglas,Georgia,13097,343,11 +2020-05-05,Douglas,Georgia,13097,353,11 +2020-05-06,Douglas,Georgia,13097,363,11 +2020-05-07,Douglas,Georgia,13097,366,11 +2020-05-08,Douglas,Georgia,13097,398,11 +2020-05-09,Douglas,Georgia,13097,400,11 +2020-05-10,Douglas,Georgia,13097,414,11 +2020-05-11,Douglas,Georgia,13097,417,12 +2020-05-12,Douglas,Georgia,13097,417,12 +2020-05-13,Douglas,Georgia,13097,422,14 +2020-05-14,Douglas,Georgia,13097,429,14 +2020-05-15,Douglas,Georgia,13097,433,15 +2020-05-16,Douglas,Georgia,13097,438,15 +2020-05-17,Douglas,Georgia,13097,437,15 +2020-05-18,Douglas,Georgia,13097,439,18 +2020-05-19,Douglas,Georgia,13097,445,19 +2020-05-20,Douglas,Georgia,13097,452,19 +2020-05-21,Douglas,Georgia,13097,455,22 +2020-05-22,Douglas,Georgia,13097,478,22 +2020-05-23,Douglas,Georgia,13097,487,22 +2020-05-24,Douglas,Georgia,13097,490,22 +2020-05-25,Douglas,Georgia,13097,504,22 +2020-05-26,Douglas,Georgia,13097,517,23 +2020-05-27,Douglas,Georgia,13097,521,24 +2020-05-28,Douglas,Georgia,13097,528,24 +2020-05-29,Douglas,Georgia,13097,539,24 +2020-05-30,Douglas,Georgia,13097,539,25 +2020-05-31,Douglas,Georgia,13097,543,25 +2020-06-01,Douglas,Georgia,13097,546,25 +2020-06-02,Douglas,Georgia,13097,549,25 +2020-06-03,Douglas,Georgia,13097,556,25 +2020-06-04,Douglas,Georgia,13097,571,25 +2020-06-05,Douglas,Georgia,13097,583,25 +2020-06-06,Douglas,Georgia,13097,592,25 +2020-06-07,Douglas,Georgia,13097,592,25 +2020-06-08,Douglas,Georgia,13097,601,25 +2020-06-09,Douglas,Georgia,13097,612,27 +2020-06-10,Douglas,Georgia,13097,624,26 +2020-06-11,Douglas,Georgia,13097,634,27 +2020-06-12,Douglas,Georgia,13097,641,28 +2020-06-13,Douglas,Georgia,13097,651,28 +2020-06-14,Douglas,Georgia,13097,655,28 +2020-06-15,Douglas,Georgia,13097,660,28 +2020-06-16,Douglas,Georgia,13097,669,32 +2020-06-17,Douglas,Georgia,13097,682,33 +2020-06-18,Douglas,Georgia,13097,698,34 +2020-06-19,Douglas,Georgia,13097,708,34 +2020-06-20,Douglas,Georgia,13097,712,35 +2020-06-21,Douglas,Georgia,13097,724,35 +2020-06-22,Douglas,Georgia,13097,740,36 +2020-06-23,Douglas,Georgia,13097,778,35 +2020-06-24,Douglas,Georgia,13097,793,35 +2020-06-25,Douglas,Georgia,13097,821,35 +2020-06-26,Douglas,Georgia,13097,843,36 +2020-06-27,Douglas,Georgia,13097,864,36 +2020-06-28,Douglas,Georgia,13097,878,36 +2020-06-29,Douglas,Georgia,13097,879,36 +2020-06-30,Douglas,Georgia,13097,917,36 +2020-07-01,Douglas,Georgia,13097,971,36 +2020-07-02,Douglas,Georgia,13097,1021,36 +2020-07-03,Douglas,Georgia,13097,1041,36 +2020-07-04,Douglas,Georgia,13097,1079,36 +2020-07-05,Douglas,Georgia,13097,1101,36 +2020-07-06,Douglas,Georgia,13097,1137,37 +2020-07-07,Douglas,Georgia,13097,1179,37 +2020-07-08,Douglas,Georgia,13097,1230,37 +2020-07-09,Douglas,Georgia,13097,1259,37 +2020-03-19,Early,Georgia,13099,2,1 +2020-03-20,Early,Georgia,13099,2,1 +2020-03-21,Early,Georgia,13099,2,1 +2020-03-22,Early,Georgia,13099,2,1 +2020-03-23,Early,Georgia,13099,2,1 +2020-03-24,Early,Georgia,13099,5,1 +2020-03-25,Early,Georgia,13099,6,1 +2020-03-26,Early,Georgia,13099,7,1 +2020-03-27,Early,Georgia,13099,13,1 +2020-03-28,Early,Georgia,13099,16,1 +2020-03-29,Early,Georgia,13099,16,1 +2020-03-30,Early,Georgia,13099,20,2 +2020-03-31,Early,Georgia,13099,32,1 +2020-04-01,Early,Georgia,13099,34,1 +2020-04-02,Early,Georgia,13099,42,1 +2020-04-03,Early,Georgia,13099,61,1 +2020-04-04,Early,Georgia,13099,64,1 +2020-04-05,Early,Georgia,13099,70,1 +2020-04-06,Early,Georgia,13099,81,5 +2020-04-07,Early,Georgia,13099,96,5 +2020-04-08,Early,Georgia,13099,97,5 +2020-04-09,Early,Georgia,13099,105,5 +2020-04-10,Early,Georgia,13099,107,6 +2020-04-11,Early,Georgia,13099,120,6 +2020-04-12,Early,Georgia,13099,125,6 +2020-04-13,Early,Georgia,13099,128,6 +2020-04-14,Early,Georgia,13099,137,6 +2020-04-15,Early,Georgia,13099,145,6 +2020-04-16,Early,Georgia,13099,148,8 +2020-04-17,Early,Georgia,13099,163,8 +2020-04-18,Early,Georgia,13099,165,8 +2020-04-19,Early,Georgia,13099,170,8 +2020-04-20,Early,Georgia,13099,173,10 +2020-04-21,Early,Georgia,13099,174,10 +2020-04-22,Early,Georgia,13099,184,12 +2020-04-23,Early,Georgia,13099,185,15 +2020-04-24,Early,Georgia,13099,188,15 +2020-04-25,Early,Georgia,13099,194,15 +2020-04-26,Early,Georgia,13099,198,15 +2020-04-27,Early,Georgia,13099,202,15 +2020-04-28,Early,Georgia,13099,208,15 +2020-04-29,Early,Georgia,13099,214,21 +2020-04-30,Early,Georgia,13099,213,20 +2020-05-01,Early,Georgia,13099,214,20 +2020-05-02,Early,Georgia,13099,214,20 +2020-05-03,Early,Georgia,13099,219,20 +2020-05-04,Early,Georgia,13099,221,24 +2020-05-05,Early,Georgia,13099,222,27 +2020-05-06,Early,Georgia,13099,221,25 +2020-05-07,Early,Georgia,13099,224,26 +2020-05-08,Early,Georgia,13099,224,26 +2020-05-09,Early,Georgia,13099,226,26 +2020-05-10,Early,Georgia,13099,226,26 +2020-05-11,Early,Georgia,13099,226,26 +2020-05-12,Early,Georgia,13099,228,27 +2020-05-13,Early,Georgia,13099,229,29 +2020-05-14,Early,Georgia,13099,238,28 +2020-05-15,Early,Georgia,13099,233,28 +2020-05-16,Early,Georgia,13099,233,28 +2020-05-17,Early,Georgia,13099,233,28 +2020-05-18,Early,Georgia,13099,231,28 +2020-05-19,Early,Georgia,13099,234,28 +2020-05-20,Early,Georgia,13099,236,29 +2020-05-21,Early,Georgia,13099,235,29 +2020-05-22,Early,Georgia,13099,234,29 +2020-05-23,Early,Georgia,13099,236,29 +2020-05-24,Early,Georgia,13099,234,29 +2020-05-25,Early,Georgia,13099,235,29 +2020-05-26,Early,Georgia,13099,236,30 +2020-05-27,Early,Georgia,13099,239,30 +2020-05-28,Early,Georgia,13099,238,30 +2020-05-29,Early,Georgia,13099,238,31 +2020-05-30,Early,Georgia,13099,238,31 +2020-05-31,Early,Georgia,13099,238,31 +2020-06-01,Early,Georgia,13099,241,31 +2020-06-02,Early,Georgia,13099,244,31 +2020-06-03,Early,Georgia,13099,247,32 +2020-06-04,Early,Georgia,13099,247,32 +2020-06-05,Early,Georgia,13099,247,32 +2020-06-06,Early,Georgia,13099,250,32 +2020-06-07,Early,Georgia,13099,249,31 +2020-06-08,Early,Georgia,13099,249,31 +2020-06-09,Early,Georgia,13099,252,31 +2020-06-10,Early,Georgia,13099,253,31 +2020-06-11,Early,Georgia,13099,254,31 +2020-06-12,Early,Georgia,13099,254,31 +2020-06-13,Early,Georgia,13099,255,31 +2020-06-14,Early,Georgia,13099,255,31 +2020-06-15,Early,Georgia,13099,255,31 +2020-06-16,Early,Georgia,13099,255,31 +2020-06-17,Early,Georgia,13099,256,31 +2020-06-18,Early,Georgia,13099,252,31 +2020-06-19,Early,Georgia,13099,256,31 +2020-06-20,Early,Georgia,13099,256,31 +2020-06-21,Early,Georgia,13099,256,31 +2020-06-22,Early,Georgia,13099,255,31 +2020-06-23,Early,Georgia,13099,255,31 +2020-06-24,Early,Georgia,13099,257,31 +2020-06-25,Early,Georgia,13099,258,31 +2020-06-26,Early,Georgia,13099,259,31 +2020-06-27,Early,Georgia,13099,260,31 +2020-06-28,Early,Georgia,13099,260,31 +2020-06-29,Early,Georgia,13099,260,31 +2020-06-30,Early,Georgia,13099,260,31 +2020-07-01,Early,Georgia,13099,264,31 +2020-07-02,Early,Georgia,13099,267,31 +2020-07-03,Early,Georgia,13099,273,31 +2020-07-04,Early,Georgia,13099,275,31 +2020-07-05,Early,Georgia,13099,275,31 +2020-07-06,Early,Georgia,13099,281,31 +2020-07-07,Early,Georgia,13099,287,31 +2020-07-08,Early,Georgia,13099,290,31 +2020-07-09,Early,Georgia,13099,290,31 +2020-04-06,Echols,Georgia,13101,1,0 +2020-04-07,Echols,Georgia,13101,1,0 +2020-04-08,Echols,Georgia,13101,2,0 +2020-04-09,Echols,Georgia,13101,2,0 +2020-04-10,Echols,Georgia,13101,2,0 +2020-04-11,Echols,Georgia,13101,2,0 +2020-04-12,Echols,Georgia,13101,2,0 +2020-04-13,Echols,Georgia,13101,2,0 +2020-04-14,Echols,Georgia,13101,2,0 +2020-04-15,Echols,Georgia,13101,3,0 +2020-04-16,Echols,Georgia,13101,3,0 +2020-04-17,Echols,Georgia,13101,4,0 +2020-04-18,Echols,Georgia,13101,4,0 +2020-04-19,Echols,Georgia,13101,4,0 +2020-04-20,Echols,Georgia,13101,4,0 +2020-04-21,Echols,Georgia,13101,5,0 +2020-04-22,Echols,Georgia,13101,5,0 +2020-04-23,Echols,Georgia,13101,5,0 +2020-04-24,Echols,Georgia,13101,5,0 +2020-04-25,Echols,Georgia,13101,5,0 +2020-04-26,Echols,Georgia,13101,5,0 +2020-04-27,Echols,Georgia,13101,5,0 +2020-04-28,Echols,Georgia,13101,5,0 +2020-04-29,Echols,Georgia,13101,5,0 +2020-04-30,Echols,Georgia,13101,5,0 +2020-05-01,Echols,Georgia,13101,5,0 +2020-05-02,Echols,Georgia,13101,5,0 +2020-05-03,Echols,Georgia,13101,5,0 +2020-05-04,Echols,Georgia,13101,5,0 +2020-05-05,Echols,Georgia,13101,5,0 +2020-05-06,Echols,Georgia,13101,5,0 +2020-05-07,Echols,Georgia,13101,6,0 +2020-05-08,Echols,Georgia,13101,6,0 +2020-05-09,Echols,Georgia,13101,6,0 +2020-05-10,Echols,Georgia,13101,6,0 +2020-05-11,Echols,Georgia,13101,7,0 +2020-05-12,Echols,Georgia,13101,8,0 +2020-05-13,Echols,Georgia,13101,10,0 +2020-05-14,Echols,Georgia,13101,12,0 +2020-05-15,Echols,Georgia,13101,15,0 +2020-05-16,Echols,Georgia,13101,15,0 +2020-05-17,Echols,Georgia,13101,15,0 +2020-05-18,Echols,Georgia,13101,16,0 +2020-05-19,Echols,Georgia,13101,21,0 +2020-05-20,Echols,Georgia,13101,53,0 +2020-05-21,Echols,Georgia,13101,54,0 +2020-05-22,Echols,Georgia,13101,59,0 +2020-05-23,Echols,Georgia,13101,61,0 +2020-05-24,Echols,Georgia,13101,61,0 +2020-05-25,Echols,Georgia,13101,62,0 +2020-05-26,Echols,Georgia,13101,96,0 +2020-05-27,Echols,Georgia,13101,99,0 +2020-05-28,Echols,Georgia,13101,104,0 +2020-05-29,Echols,Georgia,13101,107,0 +2020-05-30,Echols,Georgia,13101,110,0 +2020-05-31,Echols,Georgia,13101,117,0 +2020-06-01,Echols,Georgia,13101,119,0 +2020-06-02,Echols,Georgia,13101,121,0 +2020-06-03,Echols,Georgia,13101,125,0 +2020-06-04,Echols,Georgia,13101,130,0 +2020-06-05,Echols,Georgia,13101,136,0 +2020-06-06,Echols,Georgia,13101,146,0 +2020-06-07,Echols,Georgia,13101,147,0 +2020-06-08,Echols,Georgia,13101,146,0 +2020-06-09,Echols,Georgia,13101,146,0 +2020-06-10,Echols,Georgia,13101,149,0 +2020-06-11,Echols,Georgia,13101,153,0 +2020-06-12,Echols,Georgia,13101,153,0 +2020-06-13,Echols,Georgia,13101,158,0 +2020-06-14,Echols,Georgia,13101,160,0 +2020-06-15,Echols,Georgia,13101,161,0 +2020-06-16,Echols,Georgia,13101,162,0 +2020-06-17,Echols,Georgia,13101,164,0 +2020-06-18,Echols,Georgia,13101,165,0 +2020-06-19,Echols,Georgia,13101,168,0 +2020-06-20,Echols,Georgia,13101,172,0 +2020-06-21,Echols,Georgia,13101,173,0 +2020-06-22,Echols,Georgia,13101,177,0 +2020-06-23,Echols,Georgia,13101,177,0 +2020-06-24,Echols,Georgia,13101,177,0 +2020-06-25,Echols,Georgia,13101,177,0 +2020-06-26,Echols,Georgia,13101,180,0 +2020-06-27,Echols,Georgia,13101,181,0 +2020-06-28,Echols,Georgia,13101,182,0 +2020-06-29,Echols,Georgia,13101,183,0 +2020-06-30,Echols,Georgia,13101,184,0 +2020-07-01,Echols,Georgia,13101,185,0 +2020-07-02,Echols,Georgia,13101,185,0 +2020-07-03,Echols,Georgia,13101,185,0 +2020-07-04,Echols,Georgia,13101,185,0 +2020-07-05,Echols,Georgia,13101,185,0 +2020-07-06,Echols,Georgia,13101,185,0 +2020-07-07,Echols,Georgia,13101,187,0 +2020-07-08,Echols,Georgia,13101,188,0 +2020-07-09,Echols,Georgia,13101,191,0 +2020-03-19,Effingham,Georgia,13103,1,0 +2020-03-20,Effingham,Georgia,13103,1,0 +2020-03-21,Effingham,Georgia,13103,1,0 +2020-03-22,Effingham,Georgia,13103,2,0 +2020-03-23,Effingham,Georgia,13103,2,0 +2020-03-24,Effingham,Georgia,13103,3,0 +2020-03-25,Effingham,Georgia,13103,3,0 +2020-03-26,Effingham,Georgia,13103,3,0 +2020-03-27,Effingham,Georgia,13103,4,0 +2020-03-28,Effingham,Georgia,13103,4,0 +2020-03-29,Effingham,Georgia,13103,4,0 +2020-03-30,Effingham,Georgia,13103,4,0 +2020-03-31,Effingham,Georgia,13103,5,0 +2020-04-01,Effingham,Georgia,13103,5,0 +2020-04-02,Effingham,Georgia,13103,6,0 +2020-04-03,Effingham,Georgia,13103,6,0 +2020-04-04,Effingham,Georgia,13103,9,0 +2020-04-05,Effingham,Georgia,13103,12,1 +2020-04-06,Effingham,Georgia,13103,14,1 +2020-04-07,Effingham,Georgia,13103,18,1 +2020-04-08,Effingham,Georgia,13103,19,1 +2020-04-09,Effingham,Georgia,13103,19,1 +2020-04-10,Effingham,Georgia,13103,20,1 +2020-04-11,Effingham,Georgia,13103,20,1 +2020-04-12,Effingham,Georgia,13103,22,1 +2020-04-13,Effingham,Georgia,13103,23,1 +2020-04-14,Effingham,Georgia,13103,25,1 +2020-04-15,Effingham,Georgia,13103,24,1 +2020-04-16,Effingham,Georgia,13103,24,1 +2020-04-17,Effingham,Georgia,13103,25,1 +2020-04-18,Effingham,Georgia,13103,25,1 +2020-04-19,Effingham,Georgia,13103,26,1 +2020-04-20,Effingham,Georgia,13103,27,1 +2020-04-21,Effingham,Georgia,13103,29,1 +2020-04-22,Effingham,Georgia,13103,30,1 +2020-04-23,Effingham,Georgia,13103,33,1 +2020-04-24,Effingham,Georgia,13103,34,1 +2020-04-25,Effingham,Georgia,13103,34,1 +2020-04-26,Effingham,Georgia,13103,34,1 +2020-04-27,Effingham,Georgia,13103,34,1 +2020-04-28,Effingham,Georgia,13103,34,1 +2020-04-29,Effingham,Georgia,13103,34,1 +2020-04-30,Effingham,Georgia,13103,35,1 +2020-05-01,Effingham,Georgia,13103,36,1 +2020-05-02,Effingham,Georgia,13103,36,1 +2020-05-03,Effingham,Georgia,13103,36,1 +2020-05-04,Effingham,Georgia,13103,36,1 +2020-05-05,Effingham,Georgia,13103,38,1 +2020-05-06,Effingham,Georgia,13103,38,1 +2020-05-07,Effingham,Georgia,13103,37,1 +2020-05-08,Effingham,Georgia,13103,37,1 +2020-05-09,Effingham,Georgia,13103,37,1 +2020-05-10,Effingham,Georgia,13103,38,1 +2020-05-11,Effingham,Georgia,13103,38,1 +2020-05-12,Effingham,Georgia,13103,38,1 +2020-05-13,Effingham,Georgia,13103,38,1 +2020-05-14,Effingham,Georgia,13103,38,1 +2020-05-15,Effingham,Georgia,13103,38,1 +2020-05-16,Effingham,Georgia,13103,42,1 +2020-05-17,Effingham,Georgia,13103,42,1 +2020-05-18,Effingham,Georgia,13103,45,1 +2020-05-19,Effingham,Georgia,13103,47,1 +2020-05-20,Effingham,Georgia,13103,48,1 +2020-05-21,Effingham,Georgia,13103,50,1 +2020-05-22,Effingham,Georgia,13103,61,1 +2020-05-23,Effingham,Georgia,13103,63,1 +2020-05-24,Effingham,Georgia,13103,63,1 +2020-05-25,Effingham,Georgia,13103,63,1 +2020-05-26,Effingham,Georgia,13103,75,1 +2020-05-27,Effingham,Georgia,13103,74,1 +2020-05-28,Effingham,Georgia,13103,75,1 +2020-05-29,Effingham,Georgia,13103,73,1 +2020-05-30,Effingham,Georgia,13103,73,1 +2020-05-31,Effingham,Georgia,13103,74,1 +2020-06-01,Effingham,Georgia,13103,74,1 +2020-06-02,Effingham,Georgia,13103,75,1 +2020-06-03,Effingham,Georgia,13103,75,1 +2020-06-04,Effingham,Georgia,13103,77,1 +2020-06-05,Effingham,Georgia,13103,78,1 +2020-06-06,Effingham,Georgia,13103,78,1 +2020-06-07,Effingham,Georgia,13103,78,1 +2020-06-08,Effingham,Georgia,13103,78,1 +2020-06-09,Effingham,Georgia,13103,81,1 +2020-06-10,Effingham,Georgia,13103,81,1 +2020-06-11,Effingham,Georgia,13103,84,1 +2020-06-12,Effingham,Georgia,13103,83,1 +2020-06-13,Effingham,Georgia,13103,86,1 +2020-06-14,Effingham,Georgia,13103,86,1 +2020-06-15,Effingham,Georgia,13103,86,1 +2020-06-16,Effingham,Georgia,13103,86,1 +2020-06-17,Effingham,Georgia,13103,88,1 +2020-06-18,Effingham,Georgia,13103,91,1 +2020-06-19,Effingham,Georgia,13103,95,1 +2020-06-20,Effingham,Georgia,13103,96,1 +2020-06-21,Effingham,Georgia,13103,98,1 +2020-06-22,Effingham,Georgia,13103,101,1 +2020-06-23,Effingham,Georgia,13103,111,1 +2020-06-24,Effingham,Georgia,13103,114,1 +2020-06-25,Effingham,Georgia,13103,117,1 +2020-06-26,Effingham,Georgia,13103,122,1 +2020-06-27,Effingham,Georgia,13103,123,1 +2020-06-28,Effingham,Georgia,13103,126,1 +2020-06-29,Effingham,Georgia,13103,131,1 +2020-06-30,Effingham,Georgia,13103,141,1 +2020-07-01,Effingham,Georgia,13103,148,1 +2020-07-02,Effingham,Georgia,13103,163,1 +2020-07-03,Effingham,Georgia,13103,175,1 +2020-07-04,Effingham,Georgia,13103,192,1 +2020-07-05,Effingham,Georgia,13103,200,1 +2020-07-06,Effingham,Georgia,13103,210,1 +2020-07-07,Effingham,Georgia,13103,216,1 +2020-07-08,Effingham,Georgia,13103,222,1 +2020-07-09,Effingham,Georgia,13103,224,1 +2020-04-03,Elbert,Georgia,13105,1,0 +2020-04-04,Elbert,Georgia,13105,1,0 +2020-04-05,Elbert,Georgia,13105,1,0 +2020-04-06,Elbert,Georgia,13105,2,0 +2020-04-07,Elbert,Georgia,13105,2,0 +2020-04-08,Elbert,Georgia,13105,3,0 +2020-04-09,Elbert,Georgia,13105,3,0 +2020-04-10,Elbert,Georgia,13105,3,0 +2020-04-11,Elbert,Georgia,13105,3,0 +2020-04-12,Elbert,Georgia,13105,3,0 +2020-04-13,Elbert,Georgia,13105,6,0 +2020-04-14,Elbert,Georgia,13105,6,0 +2020-04-15,Elbert,Georgia,13105,7,0 +2020-04-16,Elbert,Georgia,13105,7,0 +2020-04-17,Elbert,Georgia,13105,7,0 +2020-04-18,Elbert,Georgia,13105,7,0 +2020-04-19,Elbert,Georgia,13105,7,0 +2020-04-20,Elbert,Georgia,13105,7,0 +2020-04-21,Elbert,Georgia,13105,7,0 +2020-04-22,Elbert,Georgia,13105,10,0 +2020-04-23,Elbert,Georgia,13105,14,0 +2020-04-24,Elbert,Georgia,13105,15,0 +2020-04-25,Elbert,Georgia,13105,16,0 +2020-04-26,Elbert,Georgia,13105,19,0 +2020-04-27,Elbert,Georgia,13105,19,0 +2020-04-28,Elbert,Georgia,13105,19,0 +2020-04-29,Elbert,Georgia,13105,22,0 +2020-04-30,Elbert,Georgia,13105,23,0 +2020-05-01,Elbert,Georgia,13105,27,0 +2020-05-02,Elbert,Georgia,13105,29,0 +2020-05-03,Elbert,Georgia,13105,31,0 +2020-05-04,Elbert,Georgia,13105,31,0 +2020-05-05,Elbert,Georgia,13105,32,0 +2020-05-06,Elbert,Georgia,13105,33,0 +2020-05-07,Elbert,Georgia,13105,34,0 +2020-05-08,Elbert,Georgia,13105,37,0 +2020-05-09,Elbert,Georgia,13105,39,0 +2020-05-10,Elbert,Georgia,13105,42,0 +2020-05-11,Elbert,Georgia,13105,42,0 +2020-05-12,Elbert,Georgia,13105,43,0 +2020-05-13,Elbert,Georgia,13105,46,0 +2020-05-14,Elbert,Georgia,13105,46,0 +2020-05-15,Elbert,Georgia,13105,46,0 +2020-05-16,Elbert,Georgia,13105,46,0 +2020-05-17,Elbert,Georgia,13105,46,0 +2020-05-18,Elbert,Georgia,13105,48,0 +2020-05-19,Elbert,Georgia,13105,69,0 +2020-05-20,Elbert,Georgia,13105,69,0 +2020-05-21,Elbert,Georgia,13105,69,0 +2020-05-22,Elbert,Georgia,13105,71,0 +2020-05-23,Elbert,Georgia,13105,71,0 +2020-05-24,Elbert,Georgia,13105,71,0 +2020-05-25,Elbert,Georgia,13105,71,0 +2020-05-26,Elbert,Georgia,13105,73,0 +2020-05-27,Elbert,Georgia,13105,73,0 +2020-05-28,Elbert,Georgia,13105,73,0 +2020-05-29,Elbert,Georgia,13105,74,0 +2020-05-30,Elbert,Georgia,13105,75,0 +2020-05-31,Elbert,Georgia,13105,75,0 +2020-06-01,Elbert,Georgia,13105,75,0 +2020-06-02,Elbert,Georgia,13105,75,0 +2020-06-03,Elbert,Georgia,13105,75,0 +2020-06-04,Elbert,Georgia,13105,76,0 +2020-06-05,Elbert,Georgia,13105,77,0 +2020-06-06,Elbert,Georgia,13105,78,0 +2020-06-07,Elbert,Georgia,13105,79,0 +2020-06-08,Elbert,Georgia,13105,82,0 +2020-06-09,Elbert,Georgia,13105,82,0 +2020-06-10,Elbert,Georgia,13105,82,0 +2020-06-11,Elbert,Georgia,13105,83,0 +2020-06-12,Elbert,Georgia,13105,84,0 +2020-06-13,Elbert,Georgia,13105,85,0 +2020-06-14,Elbert,Georgia,13105,85,0 +2020-06-15,Elbert,Georgia,13105,86,0 +2020-06-16,Elbert,Georgia,13105,87,0 +2020-06-17,Elbert,Georgia,13105,87,0 +2020-06-18,Elbert,Georgia,13105,88,0 +2020-06-19,Elbert,Georgia,13105,89,0 +2020-06-20,Elbert,Georgia,13105,91,0 +2020-06-21,Elbert,Georgia,13105,92,0 +2020-06-22,Elbert,Georgia,13105,92,0 +2020-06-23,Elbert,Georgia,13105,94,0 +2020-06-24,Elbert,Georgia,13105,94,0 +2020-06-25,Elbert,Georgia,13105,94,0 +2020-06-26,Elbert,Georgia,13105,97,0 +2020-06-27,Elbert,Georgia,13105,97,0 +2020-06-28,Elbert,Georgia,13105,99,0 +2020-06-29,Elbert,Georgia,13105,100,0 +2020-06-30,Elbert,Georgia,13105,104,0 +2020-07-01,Elbert,Georgia,13105,106,0 +2020-07-02,Elbert,Georgia,13105,108,0 +2020-07-03,Elbert,Georgia,13105,110,0 +2020-07-04,Elbert,Georgia,13105,113,0 +2020-07-05,Elbert,Georgia,13105,115,0 +2020-07-06,Elbert,Georgia,13105,119,0 +2020-07-07,Elbert,Georgia,13105,135,0 +2020-07-08,Elbert,Georgia,13105,142,0 +2020-07-09,Elbert,Georgia,13105,143,0 +2020-03-31,Emanuel,Georgia,13107,1,0 +2020-04-01,Emanuel,Georgia,13107,1,0 +2020-04-02,Emanuel,Georgia,13107,1,0 +2020-04-03,Emanuel,Georgia,13107,1,0 +2020-04-04,Emanuel,Georgia,13107,1,0 +2020-04-05,Emanuel,Georgia,13107,1,0 +2020-04-06,Emanuel,Georgia,13107,2,0 +2020-04-07,Emanuel,Georgia,13107,3,0 +2020-04-08,Emanuel,Georgia,13107,5,0 +2020-04-09,Emanuel,Georgia,13107,7,0 +2020-04-10,Emanuel,Georgia,13107,7,0 +2020-04-11,Emanuel,Georgia,13107,7,0 +2020-04-12,Emanuel,Georgia,13107,8,0 +2020-04-13,Emanuel,Georgia,13107,9,0 +2020-04-14,Emanuel,Georgia,13107,9,0 +2020-04-15,Emanuel,Georgia,13107,9,0 +2020-04-16,Emanuel,Georgia,13107,12,0 +2020-04-17,Emanuel,Georgia,13107,12,0 +2020-04-18,Emanuel,Georgia,13107,12,0 +2020-04-19,Emanuel,Georgia,13107,13,0 +2020-04-20,Emanuel,Georgia,13107,14,0 +2020-04-21,Emanuel,Georgia,13107,15,0 +2020-04-22,Emanuel,Georgia,13107,15,0 +2020-04-23,Emanuel,Georgia,13107,17,0 +2020-04-24,Emanuel,Georgia,13107,19,0 +2020-04-25,Emanuel,Georgia,13107,19,0 +2020-04-26,Emanuel,Georgia,13107,19,0 +2020-04-27,Emanuel,Georgia,13107,20,0 +2020-04-28,Emanuel,Georgia,13107,20,0 +2020-04-29,Emanuel,Georgia,13107,21,0 +2020-04-30,Emanuel,Georgia,13107,21,0 +2020-05-01,Emanuel,Georgia,13107,21,0 +2020-05-02,Emanuel,Georgia,13107,21,0 +2020-05-03,Emanuel,Georgia,13107,21,0 +2020-05-04,Emanuel,Georgia,13107,22,0 +2020-05-05,Emanuel,Georgia,13107,22,0 +2020-05-06,Emanuel,Georgia,13107,22,0 +2020-05-07,Emanuel,Georgia,13107,23,0 +2020-05-08,Emanuel,Georgia,13107,23,1 +2020-05-09,Emanuel,Georgia,13107,23,1 +2020-05-10,Emanuel,Georgia,13107,24,1 +2020-05-11,Emanuel,Georgia,13107,24,1 +2020-05-12,Emanuel,Georgia,13107,24,1 +2020-05-13,Emanuel,Georgia,13107,25,1 +2020-05-14,Emanuel,Georgia,13107,25,1 +2020-05-15,Emanuel,Georgia,13107,25,1 +2020-05-16,Emanuel,Georgia,13107,26,1 +2020-05-17,Emanuel,Georgia,13107,26,1 +2020-05-18,Emanuel,Georgia,13107,26,1 +2020-05-19,Emanuel,Georgia,13107,26,2 +2020-05-20,Emanuel,Georgia,13107,26,2 +2020-05-21,Emanuel,Georgia,13107,26,2 +2020-05-22,Emanuel,Georgia,13107,26,2 +2020-05-23,Emanuel,Georgia,13107,26,2 +2020-05-24,Emanuel,Georgia,13107,26,2 +2020-05-25,Emanuel,Georgia,13107,27,2 +2020-05-26,Emanuel,Georgia,13107,26,2 +2020-05-27,Emanuel,Georgia,13107,27,2 +2020-05-28,Emanuel,Georgia,13107,27,2 +2020-05-29,Emanuel,Georgia,13107,27,2 +2020-05-30,Emanuel,Georgia,13107,27,2 +2020-05-31,Emanuel,Georgia,13107,27,2 +2020-06-01,Emanuel,Georgia,13107,27,2 +2020-06-02,Emanuel,Georgia,13107,27,2 +2020-06-03,Emanuel,Georgia,13107,28,2 +2020-06-04,Emanuel,Georgia,13107,28,2 +2020-06-05,Emanuel,Georgia,13107,30,2 +2020-06-06,Emanuel,Georgia,13107,29,2 +2020-06-07,Emanuel,Georgia,13107,31,2 +2020-06-08,Emanuel,Georgia,13107,31,2 +2020-06-09,Emanuel,Georgia,13107,33,2 +2020-06-10,Emanuel,Georgia,13107,34,2 +2020-06-11,Emanuel,Georgia,13107,36,2 +2020-06-12,Emanuel,Georgia,13107,38,2 +2020-06-13,Emanuel,Georgia,13107,42,2 +2020-06-14,Emanuel,Georgia,13107,42,2 +2020-06-15,Emanuel,Georgia,13107,53,2 +2020-06-16,Emanuel,Georgia,13107,47,2 +2020-06-17,Emanuel,Georgia,13107,47,2 +2020-06-18,Emanuel,Georgia,13107,52,2 +2020-06-19,Emanuel,Georgia,13107,55,2 +2020-06-20,Emanuel,Georgia,13107,59,2 +2020-06-21,Emanuel,Georgia,13107,64,2 +2020-06-22,Emanuel,Georgia,13107,66,2 +2020-06-23,Emanuel,Georgia,13107,72,3 +2020-06-24,Emanuel,Georgia,13107,78,3 +2020-06-25,Emanuel,Georgia,13107,87,3 +2020-06-26,Emanuel,Georgia,13107,95,3 +2020-06-27,Emanuel,Georgia,13107,101,3 +2020-06-28,Emanuel,Georgia,13107,105,3 +2020-06-29,Emanuel,Georgia,13107,106,3 +2020-06-30,Emanuel,Georgia,13107,116,3 +2020-07-01,Emanuel,Georgia,13107,118,3 +2020-07-02,Emanuel,Georgia,13107,120,3 +2020-07-03,Emanuel,Georgia,13107,130,3 +2020-07-04,Emanuel,Georgia,13107,139,3 +2020-07-05,Emanuel,Georgia,13107,146,3 +2020-07-06,Emanuel,Georgia,13107,150,3 +2020-07-07,Emanuel,Georgia,13107,176,3 +2020-07-08,Emanuel,Georgia,13107,178,3 +2020-07-09,Emanuel,Georgia,13107,181,3 +2020-04-12,Evans,Georgia,13109,1,0 +2020-04-13,Evans,Georgia,13109,2,0 +2020-04-14,Evans,Georgia,13109,2,0 +2020-04-15,Evans,Georgia,13109,2,0 +2020-04-16,Evans,Georgia,13109,2,0 +2020-04-17,Evans,Georgia,13109,2,0 +2020-04-18,Evans,Georgia,13109,2,0 +2020-04-19,Evans,Georgia,13109,2,0 +2020-04-20,Evans,Georgia,13109,3,0 +2020-04-21,Evans,Georgia,13109,4,0 +2020-04-22,Evans,Georgia,13109,4,0 +2020-04-23,Evans,Georgia,13109,4,0 +2020-04-24,Evans,Georgia,13109,4,0 +2020-04-25,Evans,Georgia,13109,4,0 +2020-04-26,Evans,Georgia,13109,4,0 +2020-04-27,Evans,Georgia,13109,4,0 +2020-04-28,Evans,Georgia,13109,4,0 +2020-04-29,Evans,Georgia,13109,4,0 +2020-04-30,Evans,Georgia,13109,4,0 +2020-05-01,Evans,Georgia,13109,5,0 +2020-05-02,Evans,Georgia,13109,5,0 +2020-05-03,Evans,Georgia,13109,5,0 +2020-05-04,Evans,Georgia,13109,5,0 +2020-05-05,Evans,Georgia,13109,5,0 +2020-05-06,Evans,Georgia,13109,5,0 +2020-05-07,Evans,Georgia,13109,5,0 +2020-05-08,Evans,Georgia,13109,5,0 +2020-05-09,Evans,Georgia,13109,5,0 +2020-05-10,Evans,Georgia,13109,5,0 +2020-05-11,Evans,Georgia,13109,5,0 +2020-05-12,Evans,Georgia,13109,5,0 +2020-05-13,Evans,Georgia,13109,4,0 +2020-05-14,Evans,Georgia,13109,4,0 +2020-05-15,Evans,Georgia,13109,4,0 +2020-05-16,Evans,Georgia,13109,4,0 +2020-05-17,Evans,Georgia,13109,4,0 +2020-05-18,Evans,Georgia,13109,5,0 +2020-05-19,Evans,Georgia,13109,5,0 +2020-05-20,Evans,Georgia,13109,5,0 +2020-05-21,Evans,Georgia,13109,5,0 +2020-05-22,Evans,Georgia,13109,5,0 +2020-05-23,Evans,Georgia,13109,5,0 +2020-05-24,Evans,Georgia,13109,5,0 +2020-05-25,Evans,Georgia,13109,5,0 +2020-05-26,Evans,Georgia,13109,5,0 +2020-05-27,Evans,Georgia,13109,5,0 +2020-05-28,Evans,Georgia,13109,5,0 +2020-05-29,Evans,Georgia,13109,5,0 +2020-05-30,Evans,Georgia,13109,5,0 +2020-05-31,Evans,Georgia,13109,5,0 +2020-06-01,Evans,Georgia,13109,5,0 +2020-06-02,Evans,Georgia,13109,5,0 +2020-06-03,Evans,Georgia,13109,5,0 +2020-06-04,Evans,Georgia,13109,6,0 +2020-06-05,Evans,Georgia,13109,6,0 +2020-06-06,Evans,Georgia,13109,6,0 +2020-06-07,Evans,Georgia,13109,6,0 +2020-06-08,Evans,Georgia,13109,6,0 +2020-06-09,Evans,Georgia,13109,6,0 +2020-06-10,Evans,Georgia,13109,6,0 +2020-06-11,Evans,Georgia,13109,7,0 +2020-06-12,Evans,Georgia,13109,7,0 +2020-06-13,Evans,Georgia,13109,7,0 +2020-06-14,Evans,Georgia,13109,7,0 +2020-06-15,Evans,Georgia,13109,8,0 +2020-06-16,Evans,Georgia,13109,10,0 +2020-06-17,Evans,Georgia,13109,11,0 +2020-06-18,Evans,Georgia,13109,12,0 +2020-06-19,Evans,Georgia,13109,15,0 +2020-06-20,Evans,Georgia,13109,16,0 +2020-06-21,Evans,Georgia,13109,16,0 +2020-06-22,Evans,Georgia,13109,17,0 +2020-06-23,Evans,Georgia,13109,16,0 +2020-06-24,Evans,Georgia,13109,17,0 +2020-06-25,Evans,Georgia,13109,17,0 +2020-06-26,Evans,Georgia,13109,18,0 +2020-06-27,Evans,Georgia,13109,18,0 +2020-06-28,Evans,Georgia,13109,19,0 +2020-06-29,Evans,Georgia,13109,19,0 +2020-06-30,Evans,Georgia,13109,23,0 +2020-07-01,Evans,Georgia,13109,25,0 +2020-07-02,Evans,Georgia,13109,28,0 +2020-07-03,Evans,Georgia,13109,30,0 +2020-07-04,Evans,Georgia,13109,30,0 +2020-07-05,Evans,Georgia,13109,30,0 +2020-07-06,Evans,Georgia,13109,30,0 +2020-07-07,Evans,Georgia,13109,33,0 +2020-07-08,Evans,Georgia,13109,34,0 +2020-07-09,Evans,Georgia,13109,38,0 +2020-03-24,Fannin,Georgia,13111,1,0 +2020-03-25,Fannin,Georgia,13111,1,0 +2020-03-26,Fannin,Georgia,13111,1,0 +2020-03-27,Fannin,Georgia,13111,3,0 +2020-03-28,Fannin,Georgia,13111,3,0 +2020-03-29,Fannin,Georgia,13111,3,0 +2020-03-30,Fannin,Georgia,13111,3,0 +2020-03-31,Fannin,Georgia,13111,4,0 +2020-04-01,Fannin,Georgia,13111,6,0 +2020-04-02,Fannin,Georgia,13111,8,0 +2020-04-03,Fannin,Georgia,13111,8,0 +2020-04-04,Fannin,Georgia,13111,8,0 +2020-04-05,Fannin,Georgia,13111,8,0 +2020-04-06,Fannin,Georgia,13111,10,0 +2020-04-07,Fannin,Georgia,13111,10,0 +2020-04-08,Fannin,Georgia,13111,9,0 +2020-04-09,Fannin,Georgia,13111,9,0 +2020-04-10,Fannin,Georgia,13111,9,0 +2020-04-11,Fannin,Georgia,13111,9,0 +2020-04-12,Fannin,Georgia,13111,9,0 +2020-04-13,Fannin,Georgia,13111,12,0 +2020-04-14,Fannin,Georgia,13111,13,0 +2020-04-15,Fannin,Georgia,13111,14,0 +2020-04-16,Fannin,Georgia,13111,14,0 +2020-04-17,Fannin,Georgia,13111,15,0 +2020-04-18,Fannin,Georgia,13111,15,0 +2020-04-19,Fannin,Georgia,13111,16,0 +2020-04-20,Fannin,Georgia,13111,19,1 +2020-04-21,Fannin,Georgia,13111,19,1 +2020-04-22,Fannin,Georgia,13111,20,0 +2020-04-23,Fannin,Georgia,13111,20,0 +2020-04-24,Fannin,Georgia,13111,21,0 +2020-04-25,Fannin,Georgia,13111,21,0 +2020-04-26,Fannin,Georgia,13111,23,0 +2020-04-27,Fannin,Georgia,13111,24,0 +2020-04-28,Fannin,Georgia,13111,27,1 +2020-04-29,Fannin,Georgia,13111,28,1 +2020-04-30,Fannin,Georgia,13111,29,1 +2020-05-01,Fannin,Georgia,13111,30,1 +2020-05-02,Fannin,Georgia,13111,31,1 +2020-05-03,Fannin,Georgia,13111,31,1 +2020-05-04,Fannin,Georgia,13111,32,1 +2020-05-05,Fannin,Georgia,13111,32,1 +2020-05-06,Fannin,Georgia,13111,33,1 +2020-05-07,Fannin,Georgia,13111,34,1 +2020-05-08,Fannin,Georgia,13111,34,1 +2020-05-09,Fannin,Georgia,13111,34,1 +2020-05-10,Fannin,Georgia,13111,34,1 +2020-05-11,Fannin,Georgia,13111,34,1 +2020-05-12,Fannin,Georgia,13111,35,1 +2020-05-13,Fannin,Georgia,13111,36,1 +2020-05-14,Fannin,Georgia,13111,36,1 +2020-05-15,Fannin,Georgia,13111,36,1 +2020-05-16,Fannin,Georgia,13111,36,1 +2020-05-17,Fannin,Georgia,13111,36,1 +2020-05-18,Fannin,Georgia,13111,38,1 +2020-05-19,Fannin,Georgia,13111,38,1 +2020-05-20,Fannin,Georgia,13111,39,1 +2020-05-21,Fannin,Georgia,13111,39,1 +2020-05-22,Fannin,Georgia,13111,39,1 +2020-05-23,Fannin,Georgia,13111,39,1 +2020-05-24,Fannin,Georgia,13111,40,1 +2020-05-25,Fannin,Georgia,13111,40,1 +2020-05-26,Fannin,Georgia,13111,40,1 +2020-05-27,Fannin,Georgia,13111,40,1 +2020-05-28,Fannin,Georgia,13111,41,1 +2020-05-29,Fannin,Georgia,13111,43,1 +2020-05-30,Fannin,Georgia,13111,43,1 +2020-05-31,Fannin,Georgia,13111,44,1 +2020-06-01,Fannin,Georgia,13111,46,1 +2020-06-02,Fannin,Georgia,13111,47,1 +2020-06-03,Fannin,Georgia,13111,49,1 +2020-06-04,Fannin,Georgia,13111,50,1 +2020-06-05,Fannin,Georgia,13111,49,1 +2020-06-06,Fannin,Georgia,13111,51,1 +2020-06-07,Fannin,Georgia,13111,52,1 +2020-06-08,Fannin,Georgia,13111,55,1 +2020-06-09,Fannin,Georgia,13111,57,1 +2020-06-10,Fannin,Georgia,13111,59,1 +2020-06-11,Fannin,Georgia,13111,63,1 +2020-06-12,Fannin,Georgia,13111,65,1 +2020-06-13,Fannin,Georgia,13111,65,1 +2020-06-14,Fannin,Georgia,13111,67,1 +2020-06-15,Fannin,Georgia,13111,67,1 +2020-06-16,Fannin,Georgia,13111,69,1 +2020-06-17,Fannin,Georgia,13111,70,1 +2020-06-18,Fannin,Georgia,13111,73,1 +2020-06-19,Fannin,Georgia,13111,74,1 +2020-06-20,Fannin,Georgia,13111,75,1 +2020-06-21,Fannin,Georgia,13111,75,1 +2020-06-22,Fannin,Georgia,13111,79,1 +2020-06-23,Fannin,Georgia,13111,82,1 +2020-06-24,Fannin,Georgia,13111,92,1 +2020-06-25,Fannin,Georgia,13111,94,1 +2020-06-26,Fannin,Georgia,13111,94,1 +2020-06-27,Fannin,Georgia,13111,94,1 +2020-06-28,Fannin,Georgia,13111,94,1 +2020-06-29,Fannin,Georgia,13111,94,1 +2020-06-30,Fannin,Georgia,13111,97,1 +2020-07-01,Fannin,Georgia,13111,101,1 +2020-07-02,Fannin,Georgia,13111,101,1 +2020-07-03,Fannin,Georgia,13111,104,1 +2020-07-04,Fannin,Georgia,13111,107,1 +2020-07-05,Fannin,Georgia,13111,107,1 +2020-07-06,Fannin,Georgia,13111,107,1 +2020-07-07,Fannin,Georgia,13111,109,1 +2020-07-08,Fannin,Georgia,13111,112,1 +2020-07-09,Fannin,Georgia,13111,115,1 +2020-03-09,Fayette,Georgia,13113,1,0 +2020-03-10,Fayette,Georgia,13113,1,0 +2020-03-11,Fayette,Georgia,13113,1,0 +2020-03-12,Fayette,Georgia,13113,1,0 +2020-03-13,Fayette,Georgia,13113,1,0 +2020-03-14,Fayette,Georgia,13113,4,0 +2020-03-15,Fayette,Georgia,13113,5,0 +2020-03-16,Fayette,Georgia,13113,5,0 +2020-03-17,Fayette,Georgia,13113,5,0 +2020-03-18,Fayette,Georgia,13113,7,0 +2020-03-19,Fayette,Georgia,13113,8,1 +2020-03-20,Fayette,Georgia,13113,8,1 +2020-03-21,Fayette,Georgia,13113,9,2 +2020-03-22,Fayette,Georgia,13113,9,2 +2020-03-23,Fayette,Georgia,13113,11,2 +2020-03-24,Fayette,Georgia,13113,12,2 +2020-03-25,Fayette,Georgia,13113,12,2 +2020-03-26,Fayette,Georgia,13113,14,2 +2020-03-27,Fayette,Georgia,13113,22,2 +2020-03-28,Fayette,Georgia,13113,26,3 +2020-03-29,Fayette,Georgia,13113,27,3 +2020-03-30,Fayette,Georgia,13113,42,3 +2020-03-31,Fayette,Georgia,13113,48,4 +2020-04-01,Fayette,Georgia,13113,48,4 +2020-04-02,Fayette,Georgia,13113,55,4 +2020-04-03,Fayette,Georgia,13113,61,4 +2020-04-04,Fayette,Georgia,13113,66,4 +2020-04-05,Fayette,Georgia,13113,67,4 +2020-04-06,Fayette,Georgia,13113,74,4 +2020-04-07,Fayette,Georgia,13113,81,4 +2020-04-08,Fayette,Georgia,13113,90,4 +2020-04-09,Fayette,Georgia,13113,93,4 +2020-04-10,Fayette,Georgia,13113,93,4 +2020-04-11,Fayette,Georgia,13113,99,4 +2020-04-12,Fayette,Georgia,13113,100,4 +2020-04-13,Fayette,Georgia,13113,106,5 +2020-04-14,Fayette,Georgia,13113,115,5 +2020-04-15,Fayette,Georgia,13113,122,5 +2020-04-16,Fayette,Georgia,13113,126,5 +2020-04-17,Fayette,Georgia,13113,134,5 +2020-04-18,Fayette,Georgia,13113,136,5 +2020-04-19,Fayette,Georgia,13113,139,5 +2020-04-20,Fayette,Georgia,13113,143,8 +2020-04-21,Fayette,Georgia,13113,144,8 +2020-04-22,Fayette,Georgia,13113,146,8 +2020-04-23,Fayette,Georgia,13113,156,8 +2020-04-24,Fayette,Georgia,13113,158,8 +2020-04-25,Fayette,Georgia,13113,161,8 +2020-04-26,Fayette,Georgia,13113,161,8 +2020-04-27,Fayette,Georgia,13113,169,8 +2020-04-28,Fayette,Georgia,13113,171,9 +2020-04-29,Fayette,Georgia,13113,176,10 +2020-04-30,Fayette,Georgia,13113,176,10 +2020-05-01,Fayette,Georgia,13113,178,10 +2020-05-02,Fayette,Georgia,13113,181,10 +2020-05-03,Fayette,Georgia,13113,183,10 +2020-05-04,Fayette,Georgia,13113,187,10 +2020-05-05,Fayette,Georgia,13113,189,10 +2020-05-06,Fayette,Georgia,13113,188,11 +2020-05-07,Fayette,Georgia,13113,191,12 +2020-05-08,Fayette,Georgia,13113,190,12 +2020-05-09,Fayette,Georgia,13113,195,12 +2020-05-10,Fayette,Georgia,13113,199,12 +2020-05-11,Fayette,Georgia,13113,201,12 +2020-05-12,Fayette,Georgia,13113,202,12 +2020-05-13,Fayette,Georgia,13113,202,12 +2020-05-14,Fayette,Georgia,13113,204,11 +2020-05-15,Fayette,Georgia,13113,205,11 +2020-05-16,Fayette,Georgia,13113,206,11 +2020-05-17,Fayette,Georgia,13113,207,11 +2020-05-18,Fayette,Georgia,13113,210,11 +2020-05-19,Fayette,Georgia,13113,212,11 +2020-05-20,Fayette,Georgia,13113,215,11 +2020-05-21,Fayette,Georgia,13113,212,11 +2020-05-22,Fayette,Georgia,13113,215,11 +2020-05-23,Fayette,Georgia,13113,219,11 +2020-05-24,Fayette,Georgia,13113,220,11 +2020-05-25,Fayette,Georgia,13113,221,13 +2020-05-26,Fayette,Georgia,13113,232,13 +2020-05-27,Fayette,Georgia,13113,235,13 +2020-05-28,Fayette,Georgia,13113,231,13 +2020-05-29,Fayette,Georgia,13113,234,13 +2020-05-30,Fayette,Georgia,13113,235,13 +2020-05-31,Fayette,Georgia,13113,235,13 +2020-06-01,Fayette,Georgia,13113,235,13 +2020-06-02,Fayette,Georgia,13113,237,13 +2020-06-03,Fayette,Georgia,13113,239,13 +2020-06-04,Fayette,Georgia,13113,241,13 +2020-06-05,Fayette,Georgia,13113,244,15 +2020-06-06,Fayette,Georgia,13113,245,15 +2020-06-07,Fayette,Georgia,13113,245,15 +2020-06-08,Fayette,Georgia,13113,247,15 +2020-06-09,Fayette,Georgia,13113,254,15 +2020-06-10,Fayette,Georgia,13113,254,14 +2020-06-11,Fayette,Georgia,13113,258,14 +2020-06-12,Fayette,Georgia,13113,259,14 +2020-06-13,Fayette,Georgia,13113,260,14 +2020-06-14,Fayette,Georgia,13113,261,14 +2020-06-15,Fayette,Georgia,13113,261,15 +2020-06-16,Fayette,Georgia,13113,270,16 +2020-06-17,Fayette,Georgia,13113,271,16 +2020-06-18,Fayette,Georgia,13113,271,16 +2020-06-19,Fayette,Georgia,13113,278,16 +2020-06-20,Fayette,Georgia,13113,279,16 +2020-06-21,Fayette,Georgia,13113,280,16 +2020-06-22,Fayette,Georgia,13113,292,16 +2020-06-23,Fayette,Georgia,13113,299,16 +2020-06-24,Fayette,Georgia,13113,305,16 +2020-06-25,Fayette,Georgia,13113,314,17 +2020-06-26,Fayette,Georgia,13113,322,17 +2020-06-27,Fayette,Georgia,13113,324,17 +2020-06-28,Fayette,Georgia,13113,326,17 +2020-06-29,Fayette,Georgia,13113,326,17 +2020-06-30,Fayette,Georgia,13113,341,17 +2020-07-01,Fayette,Georgia,13113,346,19 +2020-07-02,Fayette,Georgia,13113,363,19 +2020-07-03,Fayette,Georgia,13113,384,19 +2020-07-04,Fayette,Georgia,13113,408,19 +2020-07-05,Fayette,Georgia,13113,414,19 +2020-07-06,Fayette,Georgia,13113,422,19 +2020-07-07,Fayette,Georgia,13113,458,19 +2020-07-08,Fayette,Georgia,13113,472,19 +2020-07-09,Fayette,Georgia,13113,476,19 +2020-03-09,Floyd,Georgia,13115,1,0 +2020-03-10,Floyd,Georgia,13115,1,0 +2020-03-11,Floyd,Georgia,13115,2,0 +2020-03-12,Floyd,Georgia,13115,2,0 +2020-03-13,Floyd,Georgia,13115,2,0 +2020-03-14,Floyd,Georgia,13115,3,0 +2020-03-15,Floyd,Georgia,13115,4,0 +2020-03-16,Floyd,Georgia,13115,4,0 +2020-03-17,Floyd,Georgia,13115,5,0 +2020-03-18,Floyd,Georgia,13115,5,0 +2020-03-19,Floyd,Georgia,13115,6,1 +2020-03-20,Floyd,Georgia,13115,7,1 +2020-03-21,Floyd,Georgia,13115,8,1 +2020-03-22,Floyd,Georgia,13115,9,1 +2020-03-23,Floyd,Georgia,13115,10,1 +2020-03-24,Floyd,Georgia,13115,12,1 +2020-03-25,Floyd,Georgia,13115,14,1 +2020-03-26,Floyd,Georgia,13115,17,1 +2020-03-27,Floyd,Georgia,13115,26,1 +2020-03-28,Floyd,Georgia,13115,27,1 +2020-03-29,Floyd,Georgia,13115,28,2 +2020-03-30,Floyd,Georgia,13115,31,2 +2020-03-31,Floyd,Georgia,13115,50,2 +2020-04-01,Floyd,Georgia,13115,70,2 +2020-04-02,Floyd,Georgia,13115,78,2 +2020-04-03,Floyd,Georgia,13115,79,3 +2020-04-04,Floyd,Georgia,13115,80,3 +2020-04-05,Floyd,Georgia,13115,82,3 +2020-04-06,Floyd,Georgia,13115,89,3 +2020-04-07,Floyd,Georgia,13115,92,3 +2020-04-08,Floyd,Georgia,13115,97,3 +2020-04-09,Floyd,Georgia,13115,100,5 +2020-04-10,Floyd,Georgia,13115,104,5 +2020-04-11,Floyd,Georgia,13115,107,5 +2020-04-12,Floyd,Georgia,13115,108,5 +2020-04-13,Floyd,Georgia,13115,118,6 +2020-04-14,Floyd,Georgia,13115,120,6 +2020-04-15,Floyd,Georgia,13115,120,6 +2020-04-16,Floyd,Georgia,13115,122,6 +2020-04-17,Floyd,Georgia,13115,121,8 +2020-04-18,Floyd,Georgia,13115,122,8 +2020-04-19,Floyd,Georgia,13115,122,8 +2020-04-20,Floyd,Georgia,13115,126,9 +2020-04-21,Floyd,Georgia,13115,127,8 +2020-04-22,Floyd,Georgia,13115,128,8 +2020-04-23,Floyd,Georgia,13115,128,8 +2020-04-24,Floyd,Georgia,13115,131,10 +2020-04-25,Floyd,Georgia,13115,133,10 +2020-04-26,Floyd,Georgia,13115,133,10 +2020-04-27,Floyd,Georgia,13115,134,11 +2020-04-28,Floyd,Georgia,13115,137,11 +2020-04-29,Floyd,Georgia,13115,139,11 +2020-04-30,Floyd,Georgia,13115,144,11 +2020-05-01,Floyd,Georgia,13115,145,11 +2020-05-02,Floyd,Georgia,13115,145,11 +2020-05-03,Floyd,Georgia,13115,145,11 +2020-05-04,Floyd,Georgia,13115,150,11 +2020-05-05,Floyd,Georgia,13115,151,11 +2020-05-06,Floyd,Georgia,13115,152,11 +2020-05-07,Floyd,Georgia,13115,155,12 +2020-05-08,Floyd,Georgia,13115,155,12 +2020-05-09,Floyd,Georgia,13115,157,12 +2020-05-10,Floyd,Georgia,13115,157,12 +2020-05-11,Floyd,Georgia,13115,158,12 +2020-05-12,Floyd,Georgia,13115,160,12 +2020-05-13,Floyd,Georgia,13115,166,12 +2020-05-14,Floyd,Georgia,13115,169,12 +2020-05-15,Floyd,Georgia,13115,172,13 +2020-05-16,Floyd,Georgia,13115,180,13 +2020-05-17,Floyd,Georgia,13115,180,13 +2020-05-18,Floyd,Georgia,13115,187,13 +2020-05-19,Floyd,Georgia,13115,195,13 +2020-05-20,Floyd,Georgia,13115,208,13 +2020-05-21,Floyd,Georgia,13115,218,13 +2020-05-22,Floyd,Georgia,13115,224,14 +2020-05-23,Floyd,Georgia,13115,226,14 +2020-05-24,Floyd,Georgia,13115,227,14 +2020-05-25,Floyd,Georgia,13115,228,14 +2020-05-26,Floyd,Georgia,13115,243,15 +2020-05-27,Floyd,Georgia,13115,253,15 +2020-05-28,Floyd,Georgia,13115,258,15 +2020-05-29,Floyd,Georgia,13115,260,15 +2020-05-30,Floyd,Georgia,13115,263,15 +2020-05-31,Floyd,Georgia,13115,265,15 +2020-06-01,Floyd,Georgia,13115,268,15 +2020-06-02,Floyd,Georgia,13115,274,15 +2020-06-03,Floyd,Georgia,13115,281,15 +2020-06-04,Floyd,Georgia,13115,292,15 +2020-06-05,Floyd,Georgia,13115,311,15 +2020-06-06,Floyd,Georgia,13115,322,15 +2020-06-07,Floyd,Georgia,13115,323,15 +2020-06-08,Floyd,Georgia,13115,326,15 +2020-06-09,Floyd,Georgia,13115,335,15 +2020-06-10,Floyd,Georgia,13115,349,15 +2020-06-11,Floyd,Georgia,13115,356,15 +2020-06-12,Floyd,Georgia,13115,365,15 +2020-06-13,Floyd,Georgia,13115,367,15 +2020-06-14,Floyd,Georgia,13115,367,15 +2020-06-15,Floyd,Georgia,13115,371,15 +2020-06-16,Floyd,Georgia,13115,375,15 +2020-06-17,Floyd,Georgia,13115,380,15 +2020-06-18,Floyd,Georgia,13115,387,15 +2020-06-19,Floyd,Georgia,13115,399,15 +2020-06-20,Floyd,Georgia,13115,404,15 +2020-06-21,Floyd,Georgia,13115,414,15 +2020-06-22,Floyd,Georgia,13115,426,15 +2020-06-23,Floyd,Georgia,13115,433,15 +2020-06-24,Floyd,Georgia,13115,457,15 +2020-06-25,Floyd,Georgia,13115,466,15 +2020-06-26,Floyd,Georgia,13115,487,15 +2020-06-27,Floyd,Georgia,13115,493,15 +2020-06-28,Floyd,Georgia,13115,495,15 +2020-06-29,Floyd,Georgia,13115,502,15 +2020-06-30,Floyd,Georgia,13115,514,15 +2020-07-01,Floyd,Georgia,13115,539,15 +2020-07-02,Floyd,Georgia,13115,552,15 +2020-07-03,Floyd,Georgia,13115,582,15 +2020-07-04,Floyd,Georgia,13115,586,15 +2020-07-05,Floyd,Georgia,13115,588,15 +2020-07-06,Floyd,Georgia,13115,594,15 +2020-07-07,Floyd,Georgia,13115,629,15 +2020-07-08,Floyd,Georgia,13115,654,15 +2020-07-09,Floyd,Georgia,13115,670,15 +2020-03-16,Forsyth,Georgia,13117,1,0 +2020-03-17,Forsyth,Georgia,13117,1,0 +2020-03-18,Forsyth,Georgia,13117,2,0 +2020-03-19,Forsyth,Georgia,13117,3,0 +2020-03-20,Forsyth,Georgia,13117,3,0 +2020-03-21,Forsyth,Georgia,13117,4,0 +2020-03-22,Forsyth,Georgia,13117,5,0 +2020-03-23,Forsyth,Georgia,13117,7,0 +2020-03-24,Forsyth,Georgia,13117,8,1 +2020-03-25,Forsyth,Georgia,13117,10,1 +2020-03-26,Forsyth,Georgia,13117,15,1 +2020-03-27,Forsyth,Georgia,13117,21,1 +2020-03-28,Forsyth,Georgia,13117,22,1 +2020-03-29,Forsyth,Georgia,13117,28,1 +2020-03-30,Forsyth,Georgia,13117,36,1 +2020-03-31,Forsyth,Georgia,13117,47,1 +2020-04-01,Forsyth,Georgia,13117,50,1 +2020-04-02,Forsyth,Georgia,13117,53,1 +2020-04-03,Forsyth,Georgia,13117,61,1 +2020-04-04,Forsyth,Georgia,13117,71,1 +2020-04-05,Forsyth,Georgia,13117,73,1 +2020-04-06,Forsyth,Georgia,13117,85,1 +2020-04-07,Forsyth,Georgia,13117,99,1 +2020-04-08,Forsyth,Georgia,13117,98,2 +2020-04-09,Forsyth,Georgia,13117,109,2 +2020-04-10,Forsyth,Georgia,13117,119,4 +2020-04-11,Forsyth,Georgia,13117,128,5 +2020-04-12,Forsyth,Georgia,13117,133,5 +2020-04-13,Forsyth,Georgia,13117,143,5 +2020-04-14,Forsyth,Georgia,13117,153,5 +2020-04-15,Forsyth,Georgia,13117,157,5 +2020-04-16,Forsyth,Georgia,13117,169,5 +2020-04-17,Forsyth,Georgia,13117,185,6 +2020-04-18,Forsyth,Georgia,13117,197,7 +2020-04-19,Forsyth,Georgia,13117,202,7 +2020-04-20,Forsyth,Georgia,13117,211,7 +2020-04-21,Forsyth,Georgia,13117,216,8 +2020-04-22,Forsyth,Georgia,13117,227,8 +2020-04-23,Forsyth,Georgia,13117,235,8 +2020-04-24,Forsyth,Georgia,13117,241,8 +2020-04-25,Forsyth,Georgia,13117,249,8 +2020-04-26,Forsyth,Georgia,13117,252,8 +2020-04-27,Forsyth,Georgia,13117,271,8 +2020-04-28,Forsyth,Georgia,13117,284,9 +2020-04-29,Forsyth,Georgia,13117,292,9 +2020-04-30,Forsyth,Georgia,13117,299,9 +2020-05-01,Forsyth,Georgia,13117,309,10 +2020-05-02,Forsyth,Georgia,13117,331,10 +2020-05-03,Forsyth,Georgia,13117,332,10 +2020-05-04,Forsyth,Georgia,13117,341,10 +2020-05-05,Forsyth,Georgia,13117,347,10 +2020-05-06,Forsyth,Georgia,13117,356,10 +2020-05-07,Forsyth,Georgia,13117,361,10 +2020-05-08,Forsyth,Georgia,13117,364,10 +2020-05-09,Forsyth,Georgia,13117,366,10 +2020-05-10,Forsyth,Georgia,13117,388,10 +2020-05-11,Forsyth,Georgia,13117,391,10 +2020-05-12,Forsyth,Georgia,13117,386,11 +2020-05-13,Forsyth,Georgia,13117,393,11 +2020-05-14,Forsyth,Georgia,13117,395,11 +2020-05-15,Forsyth,Georgia,13117,397,11 +2020-05-16,Forsyth,Georgia,13117,398,11 +2020-05-17,Forsyth,Georgia,13117,399,11 +2020-05-18,Forsyth,Georgia,13117,405,11 +2020-05-19,Forsyth,Georgia,13117,412,11 +2020-05-20,Forsyth,Georgia,13117,434,11 +2020-05-21,Forsyth,Georgia,13117,443,12 +2020-05-22,Forsyth,Georgia,13117,444,12 +2020-05-23,Forsyth,Georgia,13117,446,12 +2020-05-24,Forsyth,Georgia,13117,449,12 +2020-05-25,Forsyth,Georgia,13117,480,12 +2020-05-26,Forsyth,Georgia,13117,492,13 +2020-05-27,Forsyth,Georgia,13117,502,13 +2020-05-28,Forsyth,Georgia,13117,507,12 +2020-05-29,Forsyth,Georgia,13117,512,12 +2020-05-30,Forsyth,Georgia,13117,512,12 +2020-05-31,Forsyth,Georgia,13117,512,12 +2020-06-01,Forsyth,Georgia,13117,523,12 +2020-06-02,Forsyth,Georgia,13117,532,12 +2020-06-03,Forsyth,Georgia,13117,534,12 +2020-06-04,Forsyth,Georgia,13117,535,12 +2020-06-05,Forsyth,Georgia,13117,541,12 +2020-06-06,Forsyth,Georgia,13117,546,12 +2020-06-07,Forsyth,Georgia,13117,546,12 +2020-06-08,Forsyth,Georgia,13117,556,12 +2020-06-09,Forsyth,Georgia,13117,575,12 +2020-06-10,Forsyth,Georgia,13117,579,12 +2020-06-11,Forsyth,Georgia,13117,579,13 +2020-06-12,Forsyth,Georgia,13117,589,13 +2020-06-13,Forsyth,Georgia,13117,594,13 +2020-06-14,Forsyth,Georgia,13117,595,13 +2020-06-15,Forsyth,Georgia,13117,598,13 +2020-06-16,Forsyth,Georgia,13117,603,13 +2020-06-17,Forsyth,Georgia,13117,616,13 +2020-06-18,Forsyth,Georgia,13117,627,14 +2020-06-19,Forsyth,Georgia,13117,638,14 +2020-06-20,Forsyth,Georgia,13117,642,14 +2020-06-21,Forsyth,Georgia,13117,650,14 +2020-06-22,Forsyth,Georgia,13117,660,14 +2020-06-23,Forsyth,Georgia,13117,694,14 +2020-06-24,Forsyth,Georgia,13117,721,14 +2020-06-25,Forsyth,Georgia,13117,737,15 +2020-06-26,Forsyth,Georgia,13117,756,15 +2020-06-27,Forsyth,Georgia,13117,778,15 +2020-06-28,Forsyth,Georgia,13117,788,15 +2020-06-29,Forsyth,Georgia,13117,792,15 +2020-06-30,Forsyth,Georgia,13117,828,15 +2020-07-01,Forsyth,Georgia,13117,851,15 +2020-07-02,Forsyth,Georgia,13117,871,15 +2020-07-03,Forsyth,Georgia,13117,903,15 +2020-07-04,Forsyth,Georgia,13117,934,15 +2020-07-05,Forsyth,Georgia,13117,944,15 +2020-07-06,Forsyth,Georgia,13117,959,15 +2020-07-07,Forsyth,Georgia,13117,1006,15 +2020-07-08,Forsyth,Georgia,13117,1042,15 +2020-07-09,Forsyth,Georgia,13117,1057,15 +2020-03-26,Franklin,Georgia,13119,1,0 +2020-03-27,Franklin,Georgia,13119,1,0 +2020-03-28,Franklin,Georgia,13119,2,0 +2020-03-29,Franklin,Georgia,13119,2,0 +2020-03-30,Franklin,Georgia,13119,4,0 +2020-03-31,Franklin,Georgia,13119,4,0 +2020-04-01,Franklin,Georgia,13119,5,0 +2020-04-02,Franklin,Georgia,13119,5,0 +2020-04-03,Franklin,Georgia,13119,5,0 +2020-04-04,Franklin,Georgia,13119,5,0 +2020-04-05,Franklin,Georgia,13119,5,0 +2020-04-06,Franklin,Georgia,13119,3,0 +2020-04-07,Franklin,Georgia,13119,3,0 +2020-04-08,Franklin,Georgia,13119,3,0 +2020-04-09,Franklin,Georgia,13119,3,0 +2020-04-10,Franklin,Georgia,13119,4,0 +2020-04-11,Franklin,Georgia,13119,4,0 +2020-04-12,Franklin,Georgia,13119,4,0 +2020-04-13,Franklin,Georgia,13119,4,0 +2020-04-14,Franklin,Georgia,13119,5,0 +2020-04-15,Franklin,Georgia,13119,7,0 +2020-04-16,Franklin,Georgia,13119,10,0 +2020-04-17,Franklin,Georgia,13119,10,0 +2020-04-18,Franklin,Georgia,13119,10,0 +2020-04-19,Franklin,Georgia,13119,10,0 +2020-04-20,Franklin,Georgia,13119,12,0 +2020-04-21,Franklin,Georgia,13119,12,0 +2020-04-22,Franklin,Georgia,13119,13,0 +2020-04-23,Franklin,Georgia,13119,16,0 +2020-04-24,Franklin,Georgia,13119,16,0 +2020-04-25,Franklin,Georgia,13119,17,0 +2020-04-26,Franklin,Georgia,13119,17,0 +2020-04-27,Franklin,Georgia,13119,17,0 +2020-04-28,Franklin,Georgia,13119,17,0 +2020-04-29,Franklin,Georgia,13119,17,0 +2020-04-30,Franklin,Georgia,13119,18,1 +2020-05-01,Franklin,Georgia,13119,19,1 +2020-05-02,Franklin,Georgia,13119,20,1 +2020-05-03,Franklin,Georgia,13119,21,1 +2020-05-04,Franklin,Georgia,13119,22,1 +2020-05-05,Franklin,Georgia,13119,23,1 +2020-05-06,Franklin,Georgia,13119,25,1 +2020-05-07,Franklin,Georgia,13119,25,1 +2020-05-08,Franklin,Georgia,13119,26,1 +2020-05-09,Franklin,Georgia,13119,26,1 +2020-05-10,Franklin,Georgia,13119,26,1 +2020-05-11,Franklin,Georgia,13119,26,1 +2020-05-12,Franklin,Georgia,13119,28,1 +2020-05-13,Franklin,Georgia,13119,29,1 +2020-05-14,Franklin,Georgia,13119,30,1 +2020-05-15,Franklin,Georgia,13119,31,1 +2020-05-16,Franklin,Georgia,13119,31,1 +2020-05-17,Franklin,Georgia,13119,33,1 +2020-05-18,Franklin,Georgia,13119,33,1 +2020-05-19,Franklin,Georgia,13119,33,1 +2020-05-20,Franklin,Georgia,13119,35,1 +2020-05-21,Franklin,Georgia,13119,35,1 +2020-05-22,Franklin,Georgia,13119,35,1 +2020-05-23,Franklin,Georgia,13119,36,1 +2020-05-24,Franklin,Georgia,13119,36,1 +2020-05-25,Franklin,Georgia,13119,39,1 +2020-05-26,Franklin,Georgia,13119,39,1 +2020-05-27,Franklin,Georgia,13119,41,1 +2020-05-28,Franklin,Georgia,13119,45,1 +2020-05-29,Franklin,Georgia,13119,46,1 +2020-05-30,Franklin,Georgia,13119,46,1 +2020-05-31,Franklin,Georgia,13119,46,1 +2020-06-01,Franklin,Georgia,13119,102,1 +2020-06-02,Franklin,Georgia,13119,104,1 +2020-06-03,Franklin,Georgia,13119,105,1 +2020-06-04,Franklin,Georgia,13119,123,1 +2020-06-05,Franklin,Georgia,13119,132,1 +2020-06-06,Franklin,Georgia,13119,132,1 +2020-06-07,Franklin,Georgia,13119,132,1 +2020-06-08,Franklin,Georgia,13119,134,1 +2020-06-09,Franklin,Georgia,13119,134,1 +2020-06-10,Franklin,Georgia,13119,134,1 +2020-06-11,Franklin,Georgia,13119,134,1 +2020-06-12,Franklin,Georgia,13119,137,1 +2020-06-13,Franklin,Georgia,13119,137,1 +2020-06-14,Franklin,Georgia,13119,138,1 +2020-06-15,Franklin,Georgia,13119,140,1 +2020-06-16,Franklin,Georgia,13119,142,1 +2020-06-17,Franklin,Georgia,13119,144,1 +2020-06-18,Franklin,Georgia,13119,146,1 +2020-06-19,Franklin,Georgia,13119,154,1 +2020-06-20,Franklin,Georgia,13119,156,1 +2020-06-21,Franklin,Georgia,13119,156,1 +2020-06-22,Franklin,Georgia,13119,158,1 +2020-06-23,Franklin,Georgia,13119,160,1 +2020-06-24,Franklin,Georgia,13119,168,1 +2020-06-25,Franklin,Georgia,13119,170,1 +2020-06-26,Franklin,Georgia,13119,172,1 +2020-06-27,Franklin,Georgia,13119,181,1 +2020-06-28,Franklin,Georgia,13119,187,1 +2020-06-29,Franklin,Georgia,13119,187,1 +2020-06-30,Franklin,Georgia,13119,193,1 +2020-07-01,Franklin,Georgia,13119,197,1 +2020-07-02,Franklin,Georgia,13119,198,1 +2020-07-03,Franklin,Georgia,13119,201,1 +2020-07-04,Franklin,Georgia,13119,217,1 +2020-07-05,Franklin,Georgia,13119,217,1 +2020-07-06,Franklin,Georgia,13119,217,1 +2020-07-07,Franklin,Georgia,13119,224,1 +2020-07-08,Franklin,Georgia,13119,234,1 +2020-07-09,Franklin,Georgia,13119,239,1 +2020-03-02,Fulton,Georgia,13121,2,0 +2020-03-03,Fulton,Georgia,13121,2,0 +2020-03-04,Fulton,Georgia,13121,2,0 +2020-03-05,Fulton,Georgia,13121,2,0 +2020-03-06,Fulton,Georgia,13121,2,0 +2020-03-07,Fulton,Georgia,13121,4,0 +2020-03-08,Fulton,Georgia,13121,5,0 +2020-03-09,Fulton,Georgia,13121,5,0 +2020-03-10,Fulton,Georgia,13121,6,0 +2020-03-11,Fulton,Georgia,13121,6,0 +2020-03-12,Fulton,Georgia,13121,6,0 +2020-03-13,Fulton,Georgia,13121,6,0 +2020-03-14,Fulton,Georgia,13121,13,0 +2020-03-15,Fulton,Georgia,13121,20,0 +2020-03-16,Fulton,Georgia,13121,27,0 +2020-03-17,Fulton,Georgia,13121,33,0 +2020-03-18,Fulton,Georgia,13121,49,0 +2020-03-19,Fulton,Georgia,13121,68,2 +2020-03-20,Fulton,Georgia,13121,95,2 +2020-03-21,Fulton,Georgia,13121,100,3 +2020-03-22,Fulton,Georgia,13121,111,3 +2020-03-23,Fulton,Georgia,13121,152,3 +2020-03-24,Fulton,Georgia,13121,191,4 +2020-03-25,Fulton,Georgia,13121,204,4 +2020-03-26,Fulton,Georgia,13121,231,4 +2020-03-27,Fulton,Georgia,13121,347,12 +2020-03-28,Fulton,Georgia,13121,378,13 +2020-03-29,Fulton,Georgia,13121,425,12 +2020-03-30,Fulton,Georgia,13121,503,16 +2020-03-31,Fulton,Georgia,13121,599,18 +2020-04-01,Fulton,Georgia,13121,638,20 +2020-04-02,Fulton,Georgia,13121,747,23 +2020-04-03,Fulton,Georgia,13121,910,26 +2020-04-04,Fulton,Georgia,13121,959,26 +2020-04-05,Fulton,Georgia,13121,970,28 +2020-04-06,Fulton,Georgia,13121,1053,32 +2020-04-07,Fulton,Georgia,13121,1185,39 +2020-04-08,Fulton,Georgia,13121,1261,42 +2020-04-09,Fulton,Georgia,13121,1336,48 +2020-04-10,Fulton,Georgia,13121,1417,50 +2020-04-11,Fulton,Georgia,13121,1446,50 +2020-04-12,Fulton,Georgia,13121,1495,50 +2020-04-13,Fulton,Georgia,13121,1635,52 +2020-04-14,Fulton,Georgia,13121,1812,60 +2020-04-15,Fulton,Georgia,13121,1902,63 +2020-04-16,Fulton,Georgia,13121,1945,66 +2020-04-17,Fulton,Georgia,13121,2037,74 +2020-04-18,Fulton,Georgia,13121,2065,74 +2020-04-19,Fulton,Georgia,13121,2131,75 +2020-04-20,Fulton,Georgia,13121,2198,80 +2020-04-21,Fulton,Georgia,13121,2206,83 +2020-04-22,Fulton,Georgia,13121,2255,85 +2020-04-23,Fulton,Georgia,13121,2436,88 +2020-04-24,Fulton,Georgia,13121,2500,91 +2020-04-25,Fulton,Georgia,13121,2543,91 +2020-04-26,Fulton,Georgia,13121,2545,94 +2020-04-27,Fulton,Georgia,13121,2680,103 +2020-04-28,Fulton,Georgia,13121,2753,108 +2020-04-29,Fulton,Georgia,13121,2785,116 +2020-04-30,Fulton,Georgia,13121,2821,118 +2020-05-01,Fulton,Georgia,13121,2880,122 +2020-05-02,Fulton,Georgia,13121,2928,122 +2020-05-03,Fulton,Georgia,13121,2981,124 +2020-05-04,Fulton,Georgia,13121,3057,129 +2020-05-05,Fulton,Georgia,13121,3165,130 +2020-05-06,Fulton,Georgia,13121,3250,135 +2020-05-07,Fulton,Georgia,13121,3260,137 +2020-05-08,Fulton,Georgia,13121,3317,144 +2020-05-09,Fulton,Georgia,13121,3385,144 +2020-05-10,Fulton,Georgia,13121,3509,144 +2020-05-11,Fulton,Georgia,13121,3516,145 +2020-05-12,Fulton,Georgia,13121,3595,149 +2020-05-13,Fulton,Georgia,13121,3614,152 +2020-05-14,Fulton,Georgia,13121,3625,159 +2020-05-15,Fulton,Georgia,13121,3703,164 +2020-05-16,Fulton,Georgia,13121,3749,165 +2020-05-17,Fulton,Georgia,13121,3759,165 +2020-05-18,Fulton,Georgia,13121,3751,171 +2020-05-19,Fulton,Georgia,13121,3795,174 +2020-05-20,Fulton,Georgia,13121,3793,174 +2020-05-21,Fulton,Georgia,13121,3872,190 +2020-05-22,Fulton,Georgia,13121,3931,196 +2020-05-23,Fulton,Georgia,13121,3977,197 +2020-05-24,Fulton,Georgia,13121,4054,196 +2020-05-25,Fulton,Georgia,13121,4080,199 +2020-05-26,Fulton,Georgia,13121,4230,209 +2020-05-27,Fulton,Georgia,13121,4309,214 +2020-05-28,Fulton,Georgia,13121,4367,224 +2020-05-29,Fulton,Georgia,13121,4490,229 +2020-05-30,Fulton,Georgia,13121,4507,230 +2020-05-31,Fulton,Georgia,13121,4524,235 +2020-06-01,Fulton,Georgia,13121,4621,241 +2020-06-02,Fulton,Georgia,13121,4638,242 +2020-06-03,Fulton,Georgia,13121,4688,244 +2020-06-04,Fulton,Georgia,13121,4724,250 +2020-06-05,Fulton,Georgia,13121,4790,250 +2020-06-06,Fulton,Georgia,13121,4822,252 +2020-06-07,Fulton,Georgia,13121,4823,252 +2020-06-08,Fulton,Georgia,13121,4887,256 +2020-06-09,Fulton,Georgia,13121,4925,272 +2020-06-10,Fulton,Georgia,13121,4989,273 +2020-06-11,Fulton,Georgia,13121,5031,273 +2020-06-12,Fulton,Georgia,13121,5069,280 +2020-06-13,Fulton,Georgia,13121,5100,284 +2020-06-14,Fulton,Georgia,13121,5106,285 +2020-06-15,Fulton,Georgia,13121,5157,290 +2020-06-16,Fulton,Georgia,13121,5148,295 +2020-06-17,Fulton,Georgia,13121,5292,299 +2020-06-18,Fulton,Georgia,13121,5325,301 +2020-06-19,Fulton,Georgia,13121,5400,304 +2020-06-20,Fulton,Georgia,13121,5444,304 +2020-06-21,Fulton,Georgia,13121,5496,304 +2020-06-22,Fulton,Georgia,13121,5705,304 +2020-06-23,Fulton,Georgia,13121,5885,302 +2020-06-24,Fulton,Georgia,13121,6052,302 +2020-06-25,Fulton,Georgia,13121,6163,309 +2020-06-26,Fulton,Georgia,13121,6350,311 +2020-06-27,Fulton,Georgia,13121,6506,311 +2020-06-28,Fulton,Georgia,13121,6610,311 +2020-06-29,Fulton,Georgia,13121,6648,312 +2020-06-30,Fulton,Georgia,13121,6965,312 +2020-07-01,Fulton,Georgia,13121,7277,314 +2020-07-02,Fulton,Georgia,13121,7527,314 +2020-07-03,Fulton,Georgia,13121,7913,314 +2020-07-04,Fulton,Georgia,13121,8433,314 +2020-07-05,Fulton,Georgia,13121,8652,314 +2020-07-06,Fulton,Georgia,13121,8883,316 +2020-07-07,Fulton,Georgia,13121,9066,316 +2020-07-08,Fulton,Georgia,13121,9358,319 +2020-07-09,Fulton,Georgia,13121,9586,319 +2020-03-30,Gilmer,Georgia,13123,1,0 +2020-03-31,Gilmer,Georgia,13123,1,0 +2020-04-01,Gilmer,Georgia,13123,1,0 +2020-04-02,Gilmer,Georgia,13123,1,0 +2020-04-03,Gilmer,Georgia,13123,1,0 +2020-04-04,Gilmer,Georgia,13123,1,0 +2020-04-05,Gilmer,Georgia,13123,1,0 +2020-04-06,Gilmer,Georgia,13123,2,0 +2020-04-07,Gilmer,Georgia,13123,3,0 +2020-04-08,Gilmer,Georgia,13123,4,0 +2020-04-09,Gilmer,Georgia,13123,4,0 +2020-04-10,Gilmer,Georgia,13123,6,0 +2020-04-11,Gilmer,Georgia,13123,6,0 +2020-04-12,Gilmer,Georgia,13123,7,0 +2020-04-13,Gilmer,Georgia,13123,7,0 +2020-04-14,Gilmer,Georgia,13123,7,0 +2020-04-15,Gilmer,Georgia,13123,7,0 +2020-04-16,Gilmer,Georgia,13123,8,0 +2020-04-17,Gilmer,Georgia,13123,10,0 +2020-04-18,Gilmer,Georgia,13123,11,0 +2020-04-19,Gilmer,Georgia,13123,12,0 +2020-04-20,Gilmer,Georgia,13123,15,0 +2020-04-21,Gilmer,Georgia,13123,19,0 +2020-04-22,Gilmer,Georgia,13123,20,0 +2020-04-23,Gilmer,Georgia,13123,28,0 +2020-04-24,Gilmer,Georgia,13123,31,0 +2020-04-25,Gilmer,Georgia,13123,36,0 +2020-04-26,Gilmer,Georgia,13123,46,0 +2020-04-27,Gilmer,Georgia,13123,54,0 +2020-04-28,Gilmer,Georgia,13123,57,0 +2020-04-29,Gilmer,Georgia,13123,65,0 +2020-04-30,Gilmer,Georgia,13123,69,0 +2020-05-01,Gilmer,Georgia,13123,69,0 +2020-05-02,Gilmer,Georgia,13123,73,0 +2020-05-03,Gilmer,Georgia,13123,73,0 +2020-05-04,Gilmer,Georgia,13123,77,0 +2020-05-05,Gilmer,Georgia,13123,77,0 +2020-05-06,Gilmer,Georgia,13123,83,0 +2020-05-07,Gilmer,Georgia,13123,89,0 +2020-05-08,Gilmer,Georgia,13123,89,0 +2020-05-09,Gilmer,Georgia,13123,95,0 +2020-05-10,Gilmer,Georgia,13123,97,0 +2020-05-11,Gilmer,Georgia,13123,98,0 +2020-05-12,Gilmer,Georgia,13123,99,1 +2020-05-13,Gilmer,Georgia,13123,102,1 +2020-05-14,Gilmer,Georgia,13123,105,0 +2020-05-15,Gilmer,Georgia,13123,105,0 +2020-05-16,Gilmer,Georgia,13123,107,0 +2020-05-17,Gilmer,Georgia,13123,109,0 +2020-05-18,Gilmer,Georgia,13123,111,0 +2020-05-19,Gilmer,Georgia,13123,116,0 +2020-05-20,Gilmer,Georgia,13123,117,0 +2020-05-21,Gilmer,Georgia,13123,123,0 +2020-05-22,Gilmer,Georgia,13123,126,0 +2020-05-23,Gilmer,Georgia,13123,134,0 +2020-05-24,Gilmer,Georgia,13123,135,0 +2020-05-25,Gilmer,Georgia,13123,137,0 +2020-05-26,Gilmer,Georgia,13123,139,0 +2020-05-27,Gilmer,Georgia,13123,145,0 +2020-05-28,Gilmer,Georgia,13123,148,0 +2020-05-29,Gilmer,Georgia,13123,147,0 +2020-05-30,Gilmer,Georgia,13123,149,0 +2020-05-31,Gilmer,Georgia,13123,153,0 +2020-06-01,Gilmer,Georgia,13123,155,0 +2020-06-02,Gilmer,Georgia,13123,156,1 +2020-06-03,Gilmer,Georgia,13123,157,1 +2020-06-04,Gilmer,Georgia,13123,158,1 +2020-06-05,Gilmer,Georgia,13123,159,1 +2020-06-06,Gilmer,Georgia,13123,160,1 +2020-06-07,Gilmer,Georgia,13123,160,1 +2020-06-08,Gilmer,Georgia,13123,160,1 +2020-06-09,Gilmer,Georgia,13123,161,1 +2020-06-10,Gilmer,Georgia,13123,166,1 +2020-06-11,Gilmer,Georgia,13123,167,1 +2020-06-12,Gilmer,Georgia,13123,169,1 +2020-06-13,Gilmer,Georgia,13123,168,1 +2020-06-14,Gilmer,Georgia,13123,168,1 +2020-06-15,Gilmer,Georgia,13123,170,1 +2020-06-16,Gilmer,Georgia,13123,172,2 +2020-06-17,Gilmer,Georgia,13123,176,2 +2020-06-18,Gilmer,Georgia,13123,175,2 +2020-06-19,Gilmer,Georgia,13123,177,2 +2020-06-20,Gilmer,Georgia,13123,177,2 +2020-06-21,Gilmer,Georgia,13123,178,2 +2020-06-22,Gilmer,Georgia,13123,178,2 +2020-06-23,Gilmer,Georgia,13123,176,2 +2020-06-24,Gilmer,Georgia,13123,180,2 +2020-06-25,Gilmer,Georgia,13123,181,2 +2020-06-26,Gilmer,Georgia,13123,181,2 +2020-06-27,Gilmer,Georgia,13123,181,2 +2020-06-28,Gilmer,Georgia,13123,181,2 +2020-06-29,Gilmer,Georgia,13123,185,2 +2020-06-30,Gilmer,Georgia,13123,184,2 +2020-07-01,Gilmer,Georgia,13123,189,2 +2020-07-02,Gilmer,Georgia,13123,191,2 +2020-07-03,Gilmer,Georgia,13123,193,2 +2020-07-04,Gilmer,Georgia,13123,195,2 +2020-07-05,Gilmer,Georgia,13123,196,2 +2020-07-06,Gilmer,Georgia,13123,196,2 +2020-07-07,Gilmer,Georgia,13123,197,2 +2020-07-08,Gilmer,Georgia,13123,202,2 +2020-07-09,Gilmer,Georgia,13123,216,2 +2020-05-07,Glascock,Georgia,13125,1,0 +2020-05-08,Glascock,Georgia,13125,1,0 +2020-05-09,Glascock,Georgia,13125,1,0 +2020-05-10,Glascock,Georgia,13125,1,0 +2020-05-11,Glascock,Georgia,13125,1,0 +2020-05-12,Glascock,Georgia,13125,1,0 +2020-05-13,Glascock,Georgia,13125,1,0 +2020-05-14,Glascock,Georgia,13125,1,0 +2020-05-15,Glascock,Georgia,13125,1,0 +2020-05-16,Glascock,Georgia,13125,1,0 +2020-05-17,Glascock,Georgia,13125,1,0 +2020-05-18,Glascock,Georgia,13125,1,0 +2020-05-19,Glascock,Georgia,13125,1,0 +2020-05-20,Glascock,Georgia,13125,1,0 +2020-05-21,Glascock,Georgia,13125,1,0 +2020-05-22,Glascock,Georgia,13125,1,0 +2020-05-23,Glascock,Georgia,13125,1,0 +2020-05-24,Glascock,Georgia,13125,1,0 +2020-05-25,Glascock,Georgia,13125,1,0 +2020-05-26,Glascock,Georgia,13125,1,0 +2020-05-27,Glascock,Georgia,13125,1,0 +2020-05-28,Glascock,Georgia,13125,1,0 +2020-05-29,Glascock,Georgia,13125,1,0 +2020-05-30,Glascock,Georgia,13125,1,0 +2020-05-31,Glascock,Georgia,13125,1,0 +2020-06-01,Glascock,Georgia,13125,1,0 +2020-06-02,Glascock,Georgia,13125,1,0 +2020-06-03,Glascock,Georgia,13125,1,0 +2020-06-04,Glascock,Georgia,13125,1,0 +2020-06-05,Glascock,Georgia,13125,1,0 +2020-06-06,Glascock,Georgia,13125,1,0 +2020-06-07,Glascock,Georgia,13125,1,0 +2020-06-08,Glascock,Georgia,13125,1,0 +2020-06-09,Glascock,Georgia,13125,1,0 +2020-06-10,Glascock,Georgia,13125,1,0 +2020-06-11,Glascock,Georgia,13125,1,0 +2020-06-12,Glascock,Georgia,13125,1,0 +2020-06-13,Glascock,Georgia,13125,1,0 +2020-06-14,Glascock,Georgia,13125,1,0 +2020-06-15,Glascock,Georgia,13125,1,0 +2020-06-16,Glascock,Georgia,13125,1,0 +2020-06-17,Glascock,Georgia,13125,2,0 +2020-06-18,Glascock,Georgia,13125,2,0 +2020-06-19,Glascock,Georgia,13125,2,0 +2020-06-20,Glascock,Georgia,13125,3,0 +2020-06-21,Glascock,Georgia,13125,3,0 +2020-06-22,Glascock,Georgia,13125,3,0 +2020-06-23,Glascock,Georgia,13125,3,0 +2020-06-24,Glascock,Georgia,13125,3,0 +2020-06-25,Glascock,Georgia,13125,3,0 +2020-06-26,Glascock,Georgia,13125,5,0 +2020-06-27,Glascock,Georgia,13125,5,0 +2020-06-28,Glascock,Georgia,13125,7,0 +2020-06-29,Glascock,Georgia,13125,8,0 +2020-06-30,Glascock,Georgia,13125,7,0 +2020-07-01,Glascock,Georgia,13125,7,0 +2020-07-02,Glascock,Georgia,13125,8,0 +2020-07-03,Glascock,Georgia,13125,10,0 +2020-07-04,Glascock,Georgia,13125,10,0 +2020-07-05,Glascock,Georgia,13125,10,0 +2020-07-06,Glascock,Georgia,13125,10,0 +2020-07-07,Glascock,Georgia,13125,13,0 +2020-07-08,Glascock,Georgia,13125,13,0 +2020-07-09,Glascock,Georgia,13125,13,0 +2020-03-19,Glynn,Georgia,13127,2,0 +2020-03-20,Glynn,Georgia,13127,2,0 +2020-03-21,Glynn,Georgia,13127,2,0 +2020-03-22,Glynn,Georgia,13127,4,0 +2020-03-23,Glynn,Georgia,13127,4,0 +2020-03-24,Glynn,Georgia,13127,5,0 +2020-03-25,Glynn,Georgia,13127,5,0 +2020-03-26,Glynn,Georgia,13127,6,0 +2020-03-27,Glynn,Georgia,13127,7,0 +2020-03-28,Glynn,Georgia,13127,7,0 +2020-03-29,Glynn,Georgia,13127,8,0 +2020-03-30,Glynn,Georgia,13127,17,0 +2020-03-31,Glynn,Georgia,13127,17,0 +2020-04-01,Glynn,Georgia,13127,19,0 +2020-04-02,Glynn,Georgia,13127,21,0 +2020-04-03,Glynn,Georgia,13127,23,0 +2020-04-04,Glynn,Georgia,13127,28,0 +2020-04-05,Glynn,Georgia,13127,29,0 +2020-04-06,Glynn,Georgia,13127,29,0 +2020-04-07,Glynn,Georgia,13127,30,0 +2020-04-08,Glynn,Georgia,13127,32,0 +2020-04-09,Glynn,Georgia,13127,31,0 +2020-04-10,Glynn,Georgia,13127,34,0 +2020-04-11,Glynn,Georgia,13127,33,0 +2020-04-12,Glynn,Georgia,13127,33,0 +2020-04-13,Glynn,Georgia,13127,38,0 +2020-04-14,Glynn,Georgia,13127,40,0 +2020-04-15,Glynn,Georgia,13127,43,0 +2020-04-16,Glynn,Georgia,13127,45,0 +2020-04-17,Glynn,Georgia,13127,46,0 +2020-04-18,Glynn,Georgia,13127,49,0 +2020-04-19,Glynn,Georgia,13127,49,0 +2020-04-20,Glynn,Georgia,13127,49,0 +2020-04-21,Glynn,Georgia,13127,49,0 +2020-04-22,Glynn,Georgia,13127,51,0 +2020-04-23,Glynn,Georgia,13127,51,1 +2020-04-24,Glynn,Georgia,13127,52,1 +2020-04-25,Glynn,Georgia,13127,51,1 +2020-04-26,Glynn,Georgia,13127,51,1 +2020-04-27,Glynn,Georgia,13127,51,1 +2020-04-28,Glynn,Georgia,13127,55,1 +2020-04-29,Glynn,Georgia,13127,55,1 +2020-04-30,Glynn,Georgia,13127,55,1 +2020-05-01,Glynn,Georgia,13127,58,1 +2020-05-02,Glynn,Georgia,13127,59,1 +2020-05-03,Glynn,Georgia,13127,59,1 +2020-05-04,Glynn,Georgia,13127,58,1 +2020-05-05,Glynn,Georgia,13127,59,1 +2020-05-06,Glynn,Georgia,13127,68,1 +2020-05-07,Glynn,Georgia,13127,71,1 +2020-05-08,Glynn,Georgia,13127,72,1 +2020-05-09,Glynn,Georgia,13127,72,1 +2020-05-10,Glynn,Georgia,13127,73,1 +2020-05-11,Glynn,Georgia,13127,73,1 +2020-05-12,Glynn,Georgia,13127,74,1 +2020-05-13,Glynn,Georgia,13127,75,1 +2020-05-14,Glynn,Georgia,13127,74,1 +2020-05-15,Glynn,Georgia,13127,77,1 +2020-05-16,Glynn,Georgia,13127,76,1 +2020-05-17,Glynn,Georgia,13127,75,1 +2020-05-18,Glynn,Georgia,13127,77,1 +2020-05-19,Glynn,Georgia,13127,79,1 +2020-05-20,Glynn,Georgia,13127,81,1 +2020-05-21,Glynn,Georgia,13127,83,1 +2020-05-22,Glynn,Georgia,13127,83,1 +2020-05-23,Glynn,Georgia,13127,85,1 +2020-05-24,Glynn,Georgia,13127,85,1 +2020-05-25,Glynn,Georgia,13127,87,1 +2020-05-26,Glynn,Georgia,13127,93,1 +2020-05-27,Glynn,Georgia,13127,102,1 +2020-05-28,Glynn,Georgia,13127,112,1 +2020-05-29,Glynn,Georgia,13127,115,1 +2020-05-30,Glynn,Georgia,13127,115,1 +2020-05-31,Glynn,Georgia,13127,115,1 +2020-06-01,Glynn,Georgia,13127,122,2 +2020-06-02,Glynn,Georgia,13127,133,2 +2020-06-03,Glynn,Georgia,13127,135,2 +2020-06-04,Glynn,Georgia,13127,139,2 +2020-06-05,Glynn,Georgia,13127,147,2 +2020-06-06,Glynn,Georgia,13127,154,2 +2020-06-07,Glynn,Georgia,13127,155,2 +2020-06-08,Glynn,Georgia,13127,157,2 +2020-06-09,Glynn,Georgia,13127,164,2 +2020-06-10,Glynn,Georgia,13127,166,2 +2020-06-11,Glynn,Georgia,13127,172,2 +2020-06-12,Glynn,Georgia,13127,177,2 +2020-06-13,Glynn,Georgia,13127,186,2 +2020-06-14,Glynn,Georgia,13127,189,2 +2020-06-15,Glynn,Georgia,13127,190,3 +2020-06-16,Glynn,Georgia,13127,196,3 +2020-06-17,Glynn,Georgia,13127,208,3 +2020-06-18,Glynn,Georgia,13127,214,3 +2020-06-19,Glynn,Georgia,13127,253,3 +2020-06-20,Glynn,Georgia,13127,265,3 +2020-06-21,Glynn,Georgia,13127,305,3 +2020-06-22,Glynn,Georgia,13127,308,3 +2020-06-23,Glynn,Georgia,13127,411,3 +2020-06-24,Glynn,Georgia,13127,404,3 +2020-06-25,Glynn,Georgia,13127,471,3 +2020-06-26,Glynn,Georgia,13127,505,3 +2020-06-27,Glynn,Georgia,13127,538,4 +2020-06-28,Glynn,Georgia,13127,533,4 +2020-06-29,Glynn,Georgia,13127,547,4 +2020-06-30,Glynn,Georgia,13127,788,6 +2020-07-01,Glynn,Georgia,13127,839,6 +2020-07-02,Glynn,Georgia,13127,972,6 +2020-07-03,Glynn,Georgia,13127,1040,6 +2020-07-04,Glynn,Georgia,13127,1118,6 +2020-07-05,Glynn,Georgia,13127,1162,6 +2020-07-06,Glynn,Georgia,13127,1221,6 +2020-07-07,Glynn,Georgia,13127,1231,6 +2020-07-08,Glynn,Georgia,13127,1322,8 +2020-07-09,Glynn,Georgia,13127,1332,9 +2020-03-13,Gordon,Georgia,13129,2,0 +2020-03-14,Gordon,Georgia,13129,2,0 +2020-03-15,Gordon,Georgia,13129,2,0 +2020-03-16,Gordon,Georgia,13129,2,0 +2020-03-17,Gordon,Georgia,13129,2,0 +2020-03-18,Gordon,Georgia,13129,3,0 +2020-03-19,Gordon,Georgia,13129,3,0 +2020-03-20,Gordon,Georgia,13129,3,0 +2020-03-21,Gordon,Georgia,13129,4,0 +2020-03-22,Gordon,Georgia,13129,4,0 +2020-03-23,Gordon,Georgia,13129,6,0 +2020-03-24,Gordon,Georgia,13129,8,1 +2020-03-25,Gordon,Georgia,13129,9,1 +2020-03-26,Gordon,Georgia,13129,9,1 +2020-03-27,Gordon,Georgia,13129,12,1 +2020-03-28,Gordon,Georgia,13129,14,1 +2020-03-29,Gordon,Georgia,13129,14,1 +2020-03-30,Gordon,Georgia,13129,15,1 +2020-03-31,Gordon,Georgia,13129,16,1 +2020-04-01,Gordon,Georgia,13129,18,1 +2020-04-02,Gordon,Georgia,13129,20,1 +2020-04-03,Gordon,Georgia,13129,21,2 +2020-04-04,Gordon,Georgia,13129,23,2 +2020-04-05,Gordon,Georgia,13129,23,2 +2020-04-06,Gordon,Georgia,13129,25,3 +2020-04-07,Gordon,Georgia,13129,25,3 +2020-04-08,Gordon,Georgia,13129,26,3 +2020-04-09,Gordon,Georgia,13129,27,3 +2020-04-10,Gordon,Georgia,13129,29,3 +2020-04-11,Gordon,Georgia,13129,33,3 +2020-04-12,Gordon,Georgia,13129,38,3 +2020-04-13,Gordon,Georgia,13129,41,3 +2020-04-14,Gordon,Georgia,13129,45,3 +2020-04-15,Gordon,Georgia,13129,48,5 +2020-04-16,Gordon,Georgia,13129,50,5 +2020-04-17,Gordon,Georgia,13129,55,5 +2020-04-18,Gordon,Georgia,13129,58,5 +2020-04-19,Gordon,Georgia,13129,64,5 +2020-04-20,Gordon,Georgia,13129,64,6 +2020-04-21,Gordon,Georgia,13129,67,7 +2020-04-22,Gordon,Georgia,13129,70,8 +2020-04-23,Gordon,Georgia,13129,73,10 +2020-04-24,Gordon,Georgia,13129,75,10 +2020-04-25,Gordon,Georgia,13129,81,10 +2020-04-26,Gordon,Georgia,13129,81,10 +2020-04-27,Gordon,Georgia,13129,81,12 +2020-04-28,Gordon,Georgia,13129,86,12 +2020-04-29,Gordon,Georgia,13129,91,12 +2020-04-30,Gordon,Georgia,13129,92,12 +2020-05-01,Gordon,Georgia,13129,113,12 +2020-05-02,Gordon,Georgia,13129,113,12 +2020-05-03,Gordon,Georgia,13129,113,12 +2020-05-04,Gordon,Georgia,13129,116,13 +2020-05-05,Gordon,Georgia,13129,117,13 +2020-05-06,Gordon,Georgia,13129,118,14 +2020-05-07,Gordon,Georgia,13129,120,15 +2020-05-08,Gordon,Georgia,13129,120,15 +2020-05-09,Gordon,Georgia,13129,121,15 +2020-05-10,Gordon,Georgia,13129,122,15 +2020-05-11,Gordon,Georgia,13129,124,16 +2020-05-12,Gordon,Georgia,13129,125,16 +2020-05-13,Gordon,Georgia,13129,124,16 +2020-05-14,Gordon,Georgia,13129,124,15 +2020-05-15,Gordon,Georgia,13129,125,15 +2020-05-16,Gordon,Georgia,13129,127,15 +2020-05-17,Gordon,Georgia,13129,128,15 +2020-05-18,Gordon,Georgia,13129,128,15 +2020-05-19,Gordon,Georgia,13129,132,15 +2020-05-20,Gordon,Georgia,13129,134,15 +2020-05-21,Gordon,Georgia,13129,135,15 +2020-05-22,Gordon,Georgia,13129,136,15 +2020-05-23,Gordon,Georgia,13129,138,15 +2020-05-24,Gordon,Georgia,13129,138,15 +2020-05-25,Gordon,Georgia,13129,138,15 +2020-05-26,Gordon,Georgia,13129,137,15 +2020-05-27,Gordon,Georgia,13129,142,15 +2020-05-28,Gordon,Georgia,13129,148,15 +2020-05-29,Gordon,Georgia,13129,152,15 +2020-05-30,Gordon,Georgia,13129,160,16 +2020-05-31,Gordon,Georgia,13129,163,16 +2020-06-01,Gordon,Georgia,13129,164,16 +2020-06-02,Gordon,Georgia,13129,166,16 +2020-06-03,Gordon,Georgia,13129,170,16 +2020-06-04,Gordon,Georgia,13129,181,16 +2020-06-05,Gordon,Georgia,13129,194,16 +2020-06-06,Gordon,Georgia,13129,195,16 +2020-06-07,Gordon,Georgia,13129,202,16 +2020-06-08,Gordon,Georgia,13129,203,16 +2020-06-09,Gordon,Georgia,13129,209,16 +2020-06-10,Gordon,Georgia,13129,219,17 +2020-06-11,Gordon,Georgia,13129,234,17 +2020-06-12,Gordon,Georgia,13129,240,18 +2020-06-13,Gordon,Georgia,13129,247,18 +2020-06-14,Gordon,Georgia,13129,253,18 +2020-06-15,Gordon,Georgia,13129,256,18 +2020-06-16,Gordon,Georgia,13129,260,18 +2020-06-17,Gordon,Georgia,13129,267,18 +2020-06-18,Gordon,Georgia,13129,273,18 +2020-06-19,Gordon,Georgia,13129,283,18 +2020-06-20,Gordon,Georgia,13129,287,18 +2020-06-21,Gordon,Georgia,13129,291,18 +2020-06-22,Gordon,Georgia,13129,298,18 +2020-06-23,Gordon,Georgia,13129,318,18 +2020-06-24,Gordon,Georgia,13129,325,18 +2020-06-25,Gordon,Georgia,13129,329,18 +2020-06-26,Gordon,Georgia,13129,337,18 +2020-06-27,Gordon,Georgia,13129,345,18 +2020-06-28,Gordon,Georgia,13129,351,18 +2020-06-29,Gordon,Georgia,13129,356,18 +2020-06-30,Gordon,Georgia,13129,380,18 +2020-07-01,Gordon,Georgia,13129,399,18 +2020-07-02,Gordon,Georgia,13129,411,18 +2020-07-03,Gordon,Georgia,13129,429,18 +2020-07-04,Gordon,Georgia,13129,436,18 +2020-07-05,Gordon,Georgia,13129,438,18 +2020-07-06,Gordon,Georgia,13129,446,18 +2020-07-07,Gordon,Georgia,13129,457,18 +2020-07-08,Gordon,Georgia,13129,470,18 +2020-07-09,Gordon,Georgia,13129,480,18 +2020-03-31,Grady,Georgia,13131,1,0 +2020-04-01,Grady,Georgia,13131,2,0 +2020-04-02,Grady,Georgia,13131,2,0 +2020-04-03,Grady,Georgia,13131,3,0 +2020-04-04,Grady,Georgia,13131,3,0 +2020-04-05,Grady,Georgia,13131,3,0 +2020-04-06,Grady,Georgia,13131,4,0 +2020-04-07,Grady,Georgia,13131,6,0 +2020-04-08,Grady,Georgia,13131,8,0 +2020-04-09,Grady,Georgia,13131,13,0 +2020-04-10,Grady,Georgia,13131,15,0 +2020-04-11,Grady,Georgia,13131,15,0 +2020-04-12,Grady,Georgia,13131,15,0 +2020-04-13,Grady,Georgia,13131,18,0 +2020-04-14,Grady,Georgia,13131,21,1 +2020-04-15,Grady,Georgia,13131,23,1 +2020-04-16,Grady,Georgia,13131,26,1 +2020-04-17,Grady,Georgia,13131,27,1 +2020-04-18,Grady,Georgia,13131,27,1 +2020-04-19,Grady,Georgia,13131,31,1 +2020-04-20,Grady,Georgia,13131,34,1 +2020-04-21,Grady,Georgia,13131,38,2 +2020-04-22,Grady,Georgia,13131,40,2 +2020-04-23,Grady,Georgia,13131,47,3 +2020-04-24,Grady,Georgia,13131,48,3 +2020-04-25,Grady,Georgia,13131,48,3 +2020-04-26,Grady,Georgia,13131,48,3 +2020-04-27,Grady,Georgia,13131,54,3 +2020-04-28,Grady,Georgia,13131,58,3 +2020-04-29,Grady,Georgia,13131,63,3 +2020-04-30,Grady,Georgia,13131,63,4 +2020-05-01,Grady,Georgia,13131,64,4 +2020-05-02,Grady,Georgia,13131,64,4 +2020-05-03,Grady,Georgia,13131,63,3 +2020-05-04,Grady,Georgia,13131,63,3 +2020-05-05,Grady,Georgia,13131,63,3 +2020-05-06,Grady,Georgia,13131,75,4 +2020-05-07,Grady,Georgia,13131,80,4 +2020-05-08,Grady,Georgia,13131,83,4 +2020-05-09,Grady,Georgia,13131,83,4 +2020-05-10,Grady,Georgia,13131,83,4 +2020-05-11,Grady,Georgia,13131,83,4 +2020-05-12,Grady,Georgia,13131,88,4 +2020-05-13,Grady,Georgia,13131,88,4 +2020-05-14,Grady,Georgia,13131,88,4 +2020-05-15,Grady,Georgia,13131,90,4 +2020-05-16,Grady,Georgia,13131,90,4 +2020-05-17,Grady,Georgia,13131,90,4 +2020-05-18,Grady,Georgia,13131,92,4 +2020-05-19,Grady,Georgia,13131,92,4 +2020-05-20,Grady,Georgia,13131,93,4 +2020-05-21,Grady,Georgia,13131,92,4 +2020-05-22,Grady,Georgia,13131,93,4 +2020-05-23,Grady,Georgia,13131,93,4 +2020-05-24,Grady,Georgia,13131,93,4 +2020-05-25,Grady,Georgia,13131,93,4 +2020-05-26,Grady,Georgia,13131,94,4 +2020-05-27,Grady,Georgia,13131,96,4 +2020-05-28,Grady,Georgia,13131,93,4 +2020-05-29,Grady,Georgia,13131,94,4 +2020-05-30,Grady,Georgia,13131,94,4 +2020-05-31,Grady,Georgia,13131,110,4 +2020-06-01,Grady,Georgia,13131,111,4 +2020-06-02,Grady,Georgia,13131,114,4 +2020-06-03,Grady,Georgia,13131,117,4 +2020-06-04,Grady,Georgia,13131,119,4 +2020-06-05,Grady,Georgia,13131,119,4 +2020-06-06,Grady,Georgia,13131,119,4 +2020-06-07,Grady,Georgia,13131,119,4 +2020-06-08,Grady,Georgia,13131,120,4 +2020-06-09,Grady,Georgia,13131,127,4 +2020-06-10,Grady,Georgia,13131,129,4 +2020-06-11,Grady,Georgia,13131,133,4 +2020-06-12,Grady,Georgia,13131,137,4 +2020-06-13,Grady,Georgia,13131,137,4 +2020-06-14,Grady,Georgia,13131,137,4 +2020-06-15,Grady,Georgia,13131,139,4 +2020-06-16,Grady,Georgia,13131,147,4 +2020-06-17,Grady,Georgia,13131,146,4 +2020-06-18,Grady,Georgia,13131,153,4 +2020-06-19,Grady,Georgia,13131,158,4 +2020-06-20,Grady,Georgia,13131,162,4 +2020-06-21,Grady,Georgia,13131,163,4 +2020-06-22,Grady,Georgia,13131,164,4 +2020-06-23,Grady,Georgia,13131,165,4 +2020-06-24,Grady,Georgia,13131,168,4 +2020-06-25,Grady,Georgia,13131,174,4 +2020-06-26,Grady,Georgia,13131,177,4 +2020-06-27,Grady,Georgia,13131,181,4 +2020-06-28,Grady,Georgia,13131,185,4 +2020-06-29,Grady,Georgia,13131,189,4 +2020-06-30,Grady,Georgia,13131,192,4 +2020-07-01,Grady,Georgia,13131,208,4 +2020-07-02,Grady,Georgia,13131,211,4 +2020-07-03,Grady,Georgia,13131,219,4 +2020-07-04,Grady,Georgia,13131,221,4 +2020-07-05,Grady,Georgia,13131,229,4 +2020-07-06,Grady,Georgia,13131,232,4 +2020-07-07,Grady,Georgia,13131,237,4 +2020-07-08,Grady,Georgia,13131,242,4 +2020-07-09,Grady,Georgia,13131,242,4 +2020-03-24,Greene,Georgia,13133,1,0 +2020-03-25,Greene,Georgia,13133,2,0 +2020-03-26,Greene,Georgia,13133,2,0 +2020-03-27,Greene,Georgia,13133,1,0 +2020-03-28,Greene,Georgia,13133,1,0 +2020-03-29,Greene,Georgia,13133,1,0 +2020-03-30,Greene,Georgia,13133,3,0 +2020-03-31,Greene,Georgia,13133,7,0 +2020-04-01,Greene,Georgia,13133,8,0 +2020-04-02,Greene,Georgia,13133,8,0 +2020-04-03,Greene,Georgia,13133,12,0 +2020-04-04,Greene,Georgia,13133,12,0 +2020-04-05,Greene,Georgia,13133,12,0 +2020-04-06,Greene,Georgia,13133,15,0 +2020-04-07,Greene,Georgia,13133,23,1 +2020-04-08,Greene,Georgia,13133,23,1 +2020-04-09,Greene,Georgia,13133,24,1 +2020-04-10,Greene,Georgia,13133,25,1 +2020-04-11,Greene,Georgia,13133,25,1 +2020-04-12,Greene,Georgia,13133,26,1 +2020-04-13,Greene,Georgia,13133,30,1 +2020-04-14,Greene,Georgia,13133,31,1 +2020-04-15,Greene,Georgia,13133,34,1 +2020-04-16,Greene,Georgia,13133,40,1 +2020-04-17,Greene,Georgia,13133,40,1 +2020-04-18,Greene,Georgia,13133,42,1 +2020-04-19,Greene,Georgia,13133,43,1 +2020-04-20,Greene,Georgia,13133,45,1 +2020-04-21,Greene,Georgia,13133,50,1 +2020-04-22,Greene,Georgia,13133,50,1 +2020-04-23,Greene,Georgia,13133,49,1 +2020-04-24,Greene,Georgia,13133,51,1 +2020-04-25,Greene,Georgia,13133,53,1 +2020-04-26,Greene,Georgia,13133,53,1 +2020-04-27,Greene,Georgia,13133,54,1 +2020-04-28,Greene,Georgia,13133,52,2 +2020-04-29,Greene,Georgia,13133,54,2 +2020-04-30,Greene,Georgia,13133,54,2 +2020-05-01,Greene,Georgia,13133,55,2 +2020-05-02,Greene,Georgia,13133,55,2 +2020-05-03,Greene,Georgia,13133,54,3 +2020-05-04,Greene,Georgia,13133,57,5 +2020-05-05,Greene,Georgia,13133,56,5 +2020-05-06,Greene,Georgia,13133,55,5 +2020-05-07,Greene,Georgia,13133,56,5 +2020-05-08,Greene,Georgia,13133,57,5 +2020-05-09,Greene,Georgia,13133,57,5 +2020-05-10,Greene,Georgia,13133,57,5 +2020-05-11,Greene,Georgia,13133,57,5 +2020-05-12,Greene,Georgia,13133,58,5 +2020-05-13,Greene,Georgia,13133,57,5 +2020-05-14,Greene,Georgia,13133,57,5 +2020-05-15,Greene,Georgia,13133,57,6 +2020-05-16,Greene,Georgia,13133,57,6 +2020-05-17,Greene,Georgia,13133,57,6 +2020-05-18,Greene,Georgia,13133,60,6 +2020-05-19,Greene,Georgia,13133,60,7 +2020-05-20,Greene,Georgia,13133,60,7 +2020-05-21,Greene,Georgia,13133,62,7 +2020-05-22,Greene,Georgia,13133,63,7 +2020-05-23,Greene,Georgia,13133,63,7 +2020-05-24,Greene,Georgia,13133,64,7 +2020-05-25,Greene,Georgia,13133,64,7 +2020-05-26,Greene,Georgia,13133,65,7 +2020-05-27,Greene,Georgia,13133,66,7 +2020-05-28,Greene,Georgia,13133,67,7 +2020-05-29,Greene,Georgia,13133,68,7 +2020-05-30,Greene,Georgia,13133,68,7 +2020-05-31,Greene,Georgia,13133,68,7 +2020-06-01,Greene,Georgia,13133,68,7 +2020-06-02,Greene,Georgia,13133,68,7 +2020-06-03,Greene,Georgia,13133,71,7 +2020-06-04,Greene,Georgia,13133,73,7 +2020-06-05,Greene,Georgia,13133,76,7 +2020-06-06,Greene,Georgia,13133,76,7 +2020-06-07,Greene,Georgia,13133,78,7 +2020-06-08,Greene,Georgia,13133,80,7 +2020-06-09,Greene,Georgia,13133,83,7 +2020-06-10,Greene,Georgia,13133,83,7 +2020-06-11,Greene,Georgia,13133,86,7 +2020-06-12,Greene,Georgia,13133,86,8 +2020-06-13,Greene,Georgia,13133,86,8 +2020-06-14,Greene,Georgia,13133,86,8 +2020-06-15,Greene,Georgia,13133,86,8 +2020-06-16,Greene,Georgia,13133,86,8 +2020-06-17,Greene,Georgia,13133,87,8 +2020-06-18,Greene,Georgia,13133,87,8 +2020-06-19,Greene,Georgia,13133,88,9 +2020-06-20,Greene,Georgia,13133,88,9 +2020-06-21,Greene,Georgia,13133,88,9 +2020-06-22,Greene,Georgia,13133,89,9 +2020-06-23,Greene,Georgia,13133,90,9 +2020-06-24,Greene,Georgia,13133,91,9 +2020-06-25,Greene,Georgia,13133,91,9 +2020-06-26,Greene,Georgia,13133,96,9 +2020-06-27,Greene,Georgia,13133,97,9 +2020-06-28,Greene,Georgia,13133,97,9 +2020-06-29,Greene,Georgia,13133,97,9 +2020-06-30,Greene,Georgia,13133,98,9 +2020-07-01,Greene,Georgia,13133,98,9 +2020-07-02,Greene,Georgia,13133,98,9 +2020-07-03,Greene,Georgia,13133,101,9 +2020-07-04,Greene,Georgia,13133,101,9 +2020-07-05,Greene,Georgia,13133,104,9 +2020-07-06,Greene,Georgia,13133,104,9 +2020-07-07,Greene,Georgia,13133,107,9 +2020-07-08,Greene,Georgia,13133,108,9 +2020-07-09,Greene,Georgia,13133,109,9 +2020-03-07,Gwinnett,Georgia,13135,1,0 +2020-03-08,Gwinnett,Georgia,13135,1,0 +2020-03-09,Gwinnett,Georgia,13135,2,0 +2020-03-10,Gwinnett,Georgia,13135,2,0 +2020-03-11,Gwinnett,Georgia,13135,2,0 +2020-03-12,Gwinnett,Georgia,13135,2,0 +2020-03-13,Gwinnett,Georgia,13135,2,0 +2020-03-14,Gwinnett,Georgia,13135,2,0 +2020-03-15,Gwinnett,Georgia,13135,4,0 +2020-03-16,Gwinnett,Georgia,13135,5,0 +2020-03-17,Gwinnett,Georgia,13135,7,0 +2020-03-18,Gwinnett,Georgia,13135,7,0 +2020-03-19,Gwinnett,Georgia,13135,12,0 +2020-03-20,Gwinnett,Georgia,13135,23,1 +2020-03-21,Gwinnett,Georgia,13135,23,1 +2020-03-22,Gwinnett,Georgia,13135,27,1 +2020-03-23,Gwinnett,Georgia,13135,35,1 +2020-03-24,Gwinnett,Georgia,13135,46,1 +2020-03-25,Gwinnett,Georgia,13135,69,1 +2020-03-26,Gwinnett,Georgia,13135,79,1 +2020-03-27,Gwinnett,Georgia,13135,121,1 +2020-03-28,Gwinnett,Georgia,13135,131,1 +2020-03-29,Gwinnett,Georgia,13135,145,1 +2020-03-30,Gwinnett,Georgia,13135,178,2 +2020-03-31,Gwinnett,Georgia,13135,242,2 +2020-04-01,Gwinnett,Georgia,13135,257,6 +2020-04-02,Gwinnett,Georgia,13135,303,8 +2020-04-03,Gwinnett,Georgia,13135,353,8 +2020-04-04,Gwinnett,Georgia,13135,400,8 +2020-04-05,Gwinnett,Georgia,13135,410,7 +2020-04-06,Gwinnett,Georgia,13135,455,10 +2020-04-07,Gwinnett,Georgia,13135,540,13 +2020-04-08,Gwinnett,Georgia,13135,586,17 +2020-04-09,Gwinnett,Georgia,13135,618,17 +2020-04-10,Gwinnett,Georgia,13135,669,17 +2020-04-11,Gwinnett,Georgia,13135,681,18 +2020-04-12,Gwinnett,Georgia,13135,701,19 +2020-04-13,Gwinnett,Georgia,13135,766,24 +2020-04-14,Gwinnett,Georgia,13135,815,29 +2020-04-15,Gwinnett,Georgia,13135,885,32 +2020-04-16,Gwinnett,Georgia,13135,917,32 +2020-04-17,Gwinnett,Georgia,13135,1037,36 +2020-04-18,Gwinnett,Georgia,13135,1059,36 +2020-04-19,Gwinnett,Georgia,13135,1124,38 +2020-04-20,Gwinnett,Georgia,13135,1181,42 +2020-04-21,Gwinnett,Georgia,13135,1238,44 +2020-04-22,Gwinnett,Georgia,13135,1273,46 +2020-04-23,Gwinnett,Georgia,13135,1351,46 +2020-04-24,Gwinnett,Georgia,13135,1382,46 +2020-04-25,Gwinnett,Georgia,13135,1460,46 +2020-04-26,Gwinnett,Georgia,13135,1504,47 +2020-04-27,Gwinnett,Georgia,13135,1545,52 +2020-04-28,Gwinnett,Georgia,13135,1620,54 +2020-04-29,Gwinnett,Georgia,13135,1744,55 +2020-04-30,Gwinnett,Georgia,13135,1793,57 +2020-05-01,Gwinnett,Georgia,13135,1848,58 +2020-05-02,Gwinnett,Georgia,13135,1934,58 +2020-05-03,Gwinnett,Georgia,13135,1980,58 +2020-05-04,Gwinnett,Georgia,13135,2057,65 +2020-05-05,Gwinnett,Georgia,13135,2102,77 +2020-05-06,Gwinnett,Georgia,13135,2222,81 +2020-05-07,Gwinnett,Georgia,13135,2254,84 +2020-05-08,Gwinnett,Georgia,13135,2322,87 +2020-05-09,Gwinnett,Georgia,13135,2403,87 +2020-05-10,Gwinnett,Georgia,13135,2447,87 +2020-05-11,Gwinnett,Georgia,13135,2475,92 +2020-05-12,Gwinnett,Georgia,13135,2495,101 +2020-05-13,Gwinnett,Georgia,13135,2510,101 +2020-05-14,Gwinnett,Georgia,13135,2552,101 +2020-05-15,Gwinnett,Georgia,13135,2597,101 +2020-05-16,Gwinnett,Georgia,13135,2597,102 +2020-05-17,Gwinnett,Georgia,13135,2594,102 +2020-05-18,Gwinnett,Georgia,13135,2680,105 +2020-05-19,Gwinnett,Georgia,13135,2771,114 +2020-05-20,Gwinnett,Georgia,13135,2820,117 +2020-05-21,Gwinnett,Georgia,13135,2882,121 +2020-05-22,Gwinnett,Georgia,13135,2961,121 +2020-05-23,Gwinnett,Georgia,13135,2997,121 +2020-05-24,Gwinnett,Georgia,13135,3056,122 +2020-05-25,Gwinnett,Georgia,13135,3198,121 +2020-05-26,Gwinnett,Georgia,13135,3307,125 +2020-05-27,Gwinnett,Georgia,13135,3480,126 +2020-05-28,Gwinnett,Georgia,13135,3619,127 +2020-05-29,Gwinnett,Georgia,13135,3733,126 +2020-05-30,Gwinnett,Georgia,13135,3769,127 +2020-05-31,Gwinnett,Georgia,13135,3780,128 +2020-06-01,Gwinnett,Georgia,13135,3870,132 +2020-06-02,Gwinnett,Georgia,13135,3891,133 +2020-06-03,Gwinnett,Georgia,13135,4063,135 +2020-06-04,Gwinnett,Georgia,13135,4267,135 +2020-06-05,Gwinnett,Georgia,13135,4372,136 +2020-06-06,Gwinnett,Georgia,13135,4433,137 +2020-06-07,Gwinnett,Georgia,13135,4440,137 +2020-06-08,Gwinnett,Georgia,13135,4598,139 +2020-06-09,Gwinnett,Georgia,13135,4692,143 +2020-06-10,Gwinnett,Georgia,13135,4808,142 +2020-06-11,Gwinnett,Georgia,13135,4980,150 +2020-06-12,Gwinnett,Georgia,13135,5089,152 +2020-06-13,Gwinnett,Georgia,13135,5141,152 +2020-06-14,Gwinnett,Georgia,13135,5172,152 +2020-06-15,Gwinnett,Georgia,13135,5308,155 +2020-06-16,Gwinnett,Georgia,13135,5451,156 +2020-06-17,Gwinnett,Georgia,13135,5658,158 +2020-06-18,Gwinnett,Georgia,13135,5753,159 +2020-06-19,Gwinnett,Georgia,13135,5958,161 +2020-06-20,Gwinnett,Georgia,13135,6043,162 +2020-06-21,Gwinnett,Georgia,13135,6151,162 +2020-06-22,Gwinnett,Georgia,13135,6407,162 +2020-06-23,Gwinnett,Georgia,13135,6636,163 +2020-06-24,Gwinnett,Georgia,13135,7036,164 +2020-06-25,Gwinnett,Georgia,13135,7223,167 +2020-06-26,Gwinnett,Georgia,13135,7463,168 +2020-06-27,Gwinnett,Georgia,13135,7604,169 +2020-06-28,Gwinnett,Georgia,13135,7685,169 +2020-06-29,Gwinnett,Georgia,13135,7755,170 +2020-06-30,Gwinnett,Georgia,13135,8082,170 +2020-07-01,Gwinnett,Georgia,13135,8362,173 +2020-07-02,Gwinnett,Georgia,13135,8619,173 +2020-07-03,Gwinnett,Georgia,13135,9085,173 +2020-07-04,Gwinnett,Georgia,13135,9482,173 +2020-07-05,Gwinnett,Georgia,13135,9645,173 +2020-07-06,Gwinnett,Georgia,13135,9787,174 +2020-07-07,Gwinnett,Georgia,13135,9972,174 +2020-07-08,Gwinnett,Georgia,13135,10237,175 +2020-07-09,Gwinnett,Georgia,13135,10415,175 +2020-03-27,Habersham,Georgia,13137,1,0 +2020-03-28,Habersham,Georgia,13137,1,0 +2020-03-29,Habersham,Georgia,13137,1,0 +2020-03-30,Habersham,Georgia,13137,1,0 +2020-03-31,Habersham,Georgia,13137,2,0 +2020-04-01,Habersham,Georgia,13137,2,0 +2020-04-02,Habersham,Georgia,13137,2,0 +2020-04-03,Habersham,Georgia,13137,2,0 +2020-04-04,Habersham,Georgia,13137,2,0 +2020-04-05,Habersham,Georgia,13137,2,0 +2020-04-06,Habersham,Georgia,13137,2,0 +2020-04-07,Habersham,Georgia,13137,7,0 +2020-04-08,Habersham,Georgia,13137,8,0 +2020-04-09,Habersham,Georgia,13137,11,0 +2020-04-10,Habersham,Georgia,13137,14,1 +2020-04-11,Habersham,Georgia,13137,14,1 +2020-04-12,Habersham,Georgia,13137,14,1 +2020-04-13,Habersham,Georgia,13137,19,1 +2020-04-14,Habersham,Georgia,13137,28,1 +2020-04-15,Habersham,Georgia,13137,44,2 +2020-04-16,Habersham,Georgia,13137,57,2 +2020-04-17,Habersham,Georgia,13137,72,2 +2020-04-18,Habersham,Georgia,13137,73,2 +2020-04-19,Habersham,Georgia,13137,75,2 +2020-04-20,Habersham,Georgia,13137,99,3 +2020-04-21,Habersham,Georgia,13137,112,2 +2020-04-22,Habersham,Georgia,13137,130,3 +2020-04-23,Habersham,Georgia,13137,149,3 +2020-04-24,Habersham,Georgia,13137,165,3 +2020-04-25,Habersham,Georgia,13137,170,3 +2020-04-26,Habersham,Georgia,13137,171,3 +2020-04-27,Habersham,Georgia,13137,193,4 +2020-04-28,Habersham,Georgia,13137,212,7 +2020-04-29,Habersham,Georgia,13137,245,7 +2020-04-30,Habersham,Georgia,13137,304,8 +2020-05-01,Habersham,Georgia,13137,327,8 +2020-05-02,Habersham,Georgia,13137,344,8 +2020-05-03,Habersham,Georgia,13137,343,8 +2020-05-04,Habersham,Georgia,13137,355,9 +2020-05-05,Habersham,Georgia,13137,362,11 +2020-05-06,Habersham,Georgia,13137,376,12 +2020-05-07,Habersham,Georgia,13137,382,15 +2020-05-08,Habersham,Georgia,13137,386,16 +2020-05-09,Habersham,Georgia,13137,386,16 +2020-05-10,Habersham,Georgia,13137,386,16 +2020-05-11,Habersham,Georgia,13137,386,16 +2020-05-12,Habersham,Georgia,13137,392,15 +2020-05-13,Habersham,Georgia,13137,398,15 +2020-05-14,Habersham,Georgia,13137,400,15 +2020-05-15,Habersham,Georgia,13137,411,16 +2020-05-16,Habersham,Georgia,13137,414,16 +2020-05-17,Habersham,Georgia,13137,420,16 +2020-05-18,Habersham,Georgia,13137,455,15 +2020-05-19,Habersham,Georgia,13137,457,14 +2020-05-20,Habersham,Georgia,13137,470,14 +2020-05-21,Habersham,Georgia,13137,473,18 +2020-05-22,Habersham,Georgia,13137,479,18 +2020-05-23,Habersham,Georgia,13137,488,19 +2020-05-24,Habersham,Georgia,13137,500,19 +2020-05-25,Habersham,Georgia,13137,502,19 +2020-05-26,Habersham,Georgia,13137,506,19 +2020-05-27,Habersham,Georgia,13137,511,19 +2020-05-28,Habersham,Georgia,13137,514,20 +2020-05-29,Habersham,Georgia,13137,519,20 +2020-05-30,Habersham,Georgia,13137,520,23 +2020-05-31,Habersham,Georgia,13137,520,23 +2020-06-01,Habersham,Georgia,13137,530,23 +2020-06-02,Habersham,Georgia,13137,530,23 +2020-06-03,Habersham,Georgia,13137,538,23 +2020-06-04,Habersham,Georgia,13137,545,24 +2020-06-05,Habersham,Georgia,13137,549,25 +2020-06-06,Habersham,Georgia,13137,556,25 +2020-06-07,Habersham,Georgia,13137,557,25 +2020-06-08,Habersham,Georgia,13137,562,26 +2020-06-09,Habersham,Georgia,13137,568,26 +2020-06-10,Habersham,Georgia,13137,572,26 +2020-06-11,Habersham,Georgia,13137,576,28 +2020-06-12,Habersham,Georgia,13137,581,29 +2020-06-13,Habersham,Georgia,13137,590,30 +2020-06-14,Habersham,Georgia,13137,593,30 +2020-06-15,Habersham,Georgia,13137,596,31 +2020-06-16,Habersham,Georgia,13137,600,31 +2020-06-17,Habersham,Georgia,13137,612,33 +2020-06-18,Habersham,Georgia,13137,624,33 +2020-06-19,Habersham,Georgia,13137,630,34 +2020-06-20,Habersham,Georgia,13137,635,34 +2020-06-21,Habersham,Georgia,13137,637,34 +2020-06-22,Habersham,Georgia,13137,639,34 +2020-06-23,Habersham,Georgia,13137,644,35 +2020-06-24,Habersham,Georgia,13137,647,35 +2020-06-25,Habersham,Georgia,13137,648,35 +2020-06-26,Habersham,Georgia,13137,656,35 +2020-06-27,Habersham,Georgia,13137,659,35 +2020-06-28,Habersham,Georgia,13137,662,35 +2020-06-29,Habersham,Georgia,13137,666,35 +2020-06-30,Habersham,Georgia,13137,678,35 +2020-07-01,Habersham,Georgia,13137,699,35 +2020-07-02,Habersham,Georgia,13137,705,36 +2020-07-03,Habersham,Georgia,13137,710,36 +2020-07-04,Habersham,Georgia,13137,714,36 +2020-07-05,Habersham,Georgia,13137,717,36 +2020-07-06,Habersham,Georgia,13137,717,36 +2020-07-07,Habersham,Georgia,13137,729,38 +2020-07-08,Habersham,Georgia,13137,738,38 +2020-07-09,Habersham,Georgia,13137,740,39 +2020-03-16,Hall,Georgia,13139,1,0 +2020-03-17,Hall,Georgia,13139,1,0 +2020-03-18,Hall,Georgia,13139,3,0 +2020-03-19,Hall,Georgia,13139,5,0 +2020-03-20,Hall,Georgia,13139,6,0 +2020-03-21,Hall,Georgia,13139,9,0 +2020-03-22,Hall,Georgia,13139,9,0 +2020-03-23,Hall,Georgia,13139,10,0 +2020-03-24,Hall,Georgia,13139,16,0 +2020-03-25,Hall,Georgia,13139,19,0 +2020-03-26,Hall,Georgia,13139,22,0 +2020-03-27,Hall,Georgia,13139,30,0 +2020-03-28,Hall,Georgia,13139,31,0 +2020-03-29,Hall,Georgia,13139,33,0 +2020-03-30,Hall,Georgia,13139,34,0 +2020-03-31,Hall,Georgia,13139,67,0 +2020-04-01,Hall,Georgia,13139,71,0 +2020-04-02,Hall,Georgia,13139,72,0 +2020-04-03,Hall,Georgia,13139,81,0 +2020-04-04,Hall,Georgia,13139,117,0 +2020-04-05,Hall,Georgia,13139,117,0 +2020-04-06,Hall,Georgia,13139,138,0 +2020-04-07,Hall,Georgia,13139,215,0 +2020-04-08,Hall,Georgia,13139,233,0 +2020-04-09,Hall,Georgia,13139,247,0 +2020-04-10,Hall,Georgia,13139,273,0 +2020-04-11,Hall,Georgia,13139,276,0 +2020-04-12,Hall,Georgia,13139,282,0 +2020-04-13,Hall,Georgia,13139,319,0 +2020-04-14,Hall,Georgia,13139,363,0 +2020-04-15,Hall,Georgia,13139,402,5 +2020-04-16,Hall,Georgia,13139,526,5 +2020-04-17,Hall,Georgia,13139,605,6 +2020-04-18,Hall,Georgia,13139,607,6 +2020-04-19,Hall,Georgia,13139,625,6 +2020-04-20,Hall,Georgia,13139,702,9 +2020-04-21,Hall,Georgia,13139,756,9 +2020-04-22,Hall,Georgia,13139,907,9 +2020-04-23,Hall,Georgia,13139,963,9 +2020-04-24,Hall,Georgia,13139,1022,9 +2020-04-25,Hall,Georgia,13139,1032,9 +2020-04-26,Hall,Georgia,13139,1033,11 +2020-04-27,Hall,Georgia,13139,1098,12 +2020-04-28,Hall,Georgia,13139,1185,16 +2020-04-29,Hall,Georgia,13139,1261,20 +2020-04-30,Hall,Georgia,13139,1346,21 +2020-05-01,Hall,Georgia,13139,1482,22 +2020-05-02,Hall,Georgia,13139,1694,22 +2020-05-03,Hall,Georgia,13139,1700,23 +2020-05-04,Hall,Georgia,13139,1776,23 +2020-05-05,Hall,Georgia,13139,1846,26 +2020-05-06,Hall,Georgia,13139,1914,27 +2020-05-07,Hall,Georgia,13139,1956,27 +2020-05-08,Hall,Georgia,13139,1997,28 +2020-05-09,Hall,Georgia,13139,2002,28 +2020-05-10,Hall,Georgia,13139,2012,28 +2020-05-11,Hall,Georgia,13139,2039,29 +2020-05-12,Hall,Georgia,13139,2060,35 +2020-05-13,Hall,Georgia,13139,2112,37 +2020-05-14,Hall,Georgia,13139,2125,40 +2020-05-15,Hall,Georgia,13139,2140,40 +2020-05-16,Hall,Georgia,13139,2146,40 +2020-05-17,Hall,Georgia,13139,2150,40 +2020-05-18,Hall,Georgia,13139,2164,42 +2020-05-19,Hall,Georgia,13139,2191,40 +2020-05-20,Hall,Georgia,13139,2230,40 +2020-05-21,Hall,Georgia,13139,2248,41 +2020-05-22,Hall,Georgia,13139,2269,41 +2020-05-23,Hall,Georgia,13139,2305,41 +2020-05-24,Hall,Georgia,13139,2322,41 +2020-05-25,Hall,Georgia,13139,2327,41 +2020-05-26,Hall,Georgia,13139,2378,41 +2020-05-27,Hall,Georgia,13139,2422,42 +2020-05-28,Hall,Georgia,13139,2450,46 +2020-05-29,Hall,Georgia,13139,2465,47 +2020-05-30,Hall,Georgia,13139,2467,47 +2020-05-31,Hall,Georgia,13139,2467,47 +2020-06-01,Hall,Georgia,13139,2507,49 +2020-06-02,Hall,Georgia,13139,2508,50 +2020-06-03,Hall,Georgia,13139,2539,50 +2020-06-04,Hall,Georgia,13139,2566,50 +2020-06-05,Hall,Georgia,13139,2596,50 +2020-06-06,Hall,Georgia,13139,2615,50 +2020-06-07,Hall,Georgia,13139,2616,50 +2020-06-08,Hall,Georgia,13139,2642,50 +2020-06-09,Hall,Georgia,13139,2664,51 +2020-06-10,Hall,Georgia,13139,2686,52 +2020-06-11,Hall,Georgia,13139,2699,54 +2020-06-12,Hall,Georgia,13139,2727,55 +2020-06-13,Hall,Georgia,13139,2740,55 +2020-06-14,Hall,Georgia,13139,2747,55 +2020-06-15,Hall,Georgia,13139,2755,55 +2020-06-16,Hall,Georgia,13139,2787,56 +2020-06-17,Hall,Georgia,13139,2822,58 +2020-06-18,Hall,Georgia,13139,2874,58 +2020-06-19,Hall,Georgia,13139,2901,58 +2020-06-20,Hall,Georgia,13139,2922,58 +2020-06-21,Hall,Georgia,13139,2935,58 +2020-06-22,Hall,Georgia,13139,2946,58 +2020-06-23,Hall,Georgia,13139,2982,58 +2020-06-24,Hall,Georgia,13139,3032,58 +2020-06-25,Hall,Georgia,13139,3048,59 +2020-06-26,Hall,Georgia,13139,3075,59 +2020-06-27,Hall,Georgia,13139,3101,59 +2020-06-28,Hall,Georgia,13139,3117,59 +2020-06-29,Hall,Georgia,13139,3138,59 +2020-06-30,Hall,Georgia,13139,3187,60 +2020-07-01,Hall,Georgia,13139,3252,60 +2020-07-02,Hall,Georgia,13139,3310,60 +2020-07-03,Hall,Georgia,13139,3357,60 +2020-07-04,Hall,Georgia,13139,3395,60 +2020-07-05,Hall,Georgia,13139,3404,60 +2020-07-06,Hall,Georgia,13139,3419,63 +2020-07-07,Hall,Georgia,13139,3475,62 +2020-07-08,Hall,Georgia,13139,3573,63 +2020-07-09,Hall,Georgia,13139,3620,63 +2020-04-07,Hancock,Georgia,13141,1,0 +2020-04-08,Hancock,Georgia,13141,1,0 +2020-04-09,Hancock,Georgia,13141,1,0 +2020-04-10,Hancock,Georgia,13141,1,0 +2020-04-11,Hancock,Georgia,13141,3,0 +2020-04-12,Hancock,Georgia,13141,3,0 +2020-04-13,Hancock,Georgia,13141,3,0 +2020-04-14,Hancock,Georgia,13141,5,0 +2020-04-15,Hancock,Georgia,13141,6,0 +2020-04-16,Hancock,Georgia,13141,6,0 +2020-04-17,Hancock,Georgia,13141,6,0 +2020-04-18,Hancock,Georgia,13141,7,0 +2020-04-19,Hancock,Georgia,13141,7,0 +2020-04-20,Hancock,Georgia,13141,10,0 +2020-04-21,Hancock,Georgia,13141,10,0 +2020-04-22,Hancock,Georgia,13141,11,0 +2020-04-23,Hancock,Georgia,13141,14,0 +2020-04-24,Hancock,Georgia,13141,16,0 +2020-04-25,Hancock,Georgia,13141,17,0 +2020-04-26,Hancock,Georgia,13141,18,0 +2020-04-27,Hancock,Georgia,13141,25,0 +2020-04-28,Hancock,Georgia,13141,37,1 +2020-04-29,Hancock,Georgia,13141,40,1 +2020-04-30,Hancock,Georgia,13141,47,2 +2020-05-01,Hancock,Georgia,13141,51,2 +2020-05-02,Hancock,Georgia,13141,58,2 +2020-05-03,Hancock,Georgia,13141,61,2 +2020-05-04,Hancock,Georgia,13141,64,2 +2020-05-05,Hancock,Georgia,13141,67,2 +2020-05-06,Hancock,Georgia,13141,110,2 +2020-05-07,Hancock,Georgia,13141,117,3 +2020-05-08,Hancock,Georgia,13141,119,3 +2020-05-09,Hancock,Georgia,13141,127,3 +2020-05-10,Hancock,Georgia,13141,128,3 +2020-05-11,Hancock,Georgia,13141,128,3 +2020-05-12,Hancock,Georgia,13141,138,4 +2020-05-13,Hancock,Georgia,13141,140,4 +2020-05-14,Hancock,Georgia,13141,142,4 +2020-05-15,Hancock,Georgia,13141,149,4 +2020-05-16,Hancock,Georgia,13141,149,4 +2020-05-17,Hancock,Georgia,13141,159,4 +2020-05-18,Hancock,Georgia,13141,161,5 +2020-05-19,Hancock,Georgia,13141,170,6 +2020-05-20,Hancock,Georgia,13141,169,15 +2020-05-21,Hancock,Georgia,13141,167,15 +2020-05-22,Hancock,Georgia,13141,175,17 +2020-05-23,Hancock,Georgia,13141,176,17 +2020-05-24,Hancock,Georgia,13141,191,21 +2020-05-25,Hancock,Georgia,13141,191,22 +2020-05-26,Hancock,Georgia,13141,192,22 +2020-05-27,Hancock,Georgia,13141,192,22 +2020-05-28,Hancock,Georgia,13141,194,22 +2020-05-29,Hancock,Georgia,13141,194,22 +2020-05-30,Hancock,Georgia,13141,194,23 +2020-05-31,Hancock,Georgia,13141,195,24 +2020-06-01,Hancock,Georgia,13141,197,25 +2020-06-02,Hancock,Georgia,13141,197,25 +2020-06-03,Hancock,Georgia,13141,197,25 +2020-06-04,Hancock,Georgia,13141,196,25 +2020-06-05,Hancock,Georgia,13141,196,25 +2020-06-06,Hancock,Georgia,13141,197,26 +2020-06-07,Hancock,Georgia,13141,199,26 +2020-06-08,Hancock,Georgia,13141,199,26 +2020-06-09,Hancock,Georgia,13141,200,29 +2020-06-10,Hancock,Georgia,13141,202,29 +2020-06-11,Hancock,Georgia,13141,201,29 +2020-06-12,Hancock,Georgia,13141,201,29 +2020-06-13,Hancock,Georgia,13141,201,30 +2020-06-14,Hancock,Georgia,13141,202,30 +2020-06-15,Hancock,Georgia,13141,202,30 +2020-06-16,Hancock,Georgia,13141,203,30 +2020-06-17,Hancock,Georgia,13141,203,30 +2020-06-18,Hancock,Georgia,13141,203,30 +2020-06-19,Hancock,Georgia,13141,203,31 +2020-06-20,Hancock,Georgia,13141,203,32 +2020-06-21,Hancock,Georgia,13141,206,32 +2020-06-22,Hancock,Georgia,13141,208,32 +2020-06-23,Hancock,Georgia,13141,208,32 +2020-06-24,Hancock,Georgia,13141,209,32 +2020-06-25,Hancock,Georgia,13141,209,32 +2020-06-26,Hancock,Georgia,13141,210,32 +2020-06-27,Hancock,Georgia,13141,210,32 +2020-06-28,Hancock,Georgia,13141,210,32 +2020-06-29,Hancock,Georgia,13141,210,32 +2020-06-30,Hancock,Georgia,13141,212,32 +2020-07-01,Hancock,Georgia,13141,217,32 +2020-07-02,Hancock,Georgia,13141,217,32 +2020-07-03,Hancock,Georgia,13141,219,32 +2020-07-04,Hancock,Georgia,13141,220,32 +2020-07-05,Hancock,Georgia,13141,220,32 +2020-07-06,Hancock,Georgia,13141,220,32 +2020-07-07,Hancock,Georgia,13141,222,32 +2020-07-08,Hancock,Georgia,13141,224,33 +2020-07-09,Hancock,Georgia,13141,225,33 +2020-03-26,Haralson,Georgia,13143,1,0 +2020-03-27,Haralson,Georgia,13143,1,0 +2020-03-28,Haralson,Georgia,13143,2,0 +2020-03-29,Haralson,Georgia,13143,2,0 +2020-03-30,Haralson,Georgia,13143,4,0 +2020-03-31,Haralson,Georgia,13143,5,0 +2020-04-01,Haralson,Georgia,13143,6,0 +2020-04-02,Haralson,Georgia,13143,6,0 +2020-04-03,Haralson,Georgia,13143,10,0 +2020-04-04,Haralson,Georgia,13143,10,0 +2020-04-05,Haralson,Georgia,13143,10,0 +2020-04-06,Haralson,Georgia,13143,14,0 +2020-04-07,Haralson,Georgia,13143,17,0 +2020-04-08,Haralson,Georgia,13143,15,0 +2020-04-09,Haralson,Georgia,13143,15,0 +2020-04-10,Haralson,Georgia,13143,15,0 +2020-04-11,Haralson,Georgia,13143,16,0 +2020-04-12,Haralson,Georgia,13143,16,0 +2020-04-13,Haralson,Georgia,13143,18,1 +2020-04-14,Haralson,Georgia,13143,19,1 +2020-04-15,Haralson,Georgia,13143,19,1 +2020-04-16,Haralson,Georgia,13143,19,1 +2020-04-17,Haralson,Georgia,13143,20,1 +2020-04-18,Haralson,Georgia,13143,20,1 +2020-04-19,Haralson,Georgia,13143,20,1 +2020-04-20,Haralson,Georgia,13143,22,1 +2020-04-21,Haralson,Georgia,13143,25,1 +2020-04-22,Haralson,Georgia,13143,25,1 +2020-04-23,Haralson,Georgia,13143,26,1 +2020-04-24,Haralson,Georgia,13143,26,1 +2020-04-25,Haralson,Georgia,13143,26,1 +2020-04-26,Haralson,Georgia,13143,26,1 +2020-04-27,Haralson,Georgia,13143,27,1 +2020-04-28,Haralson,Georgia,13143,28,1 +2020-04-29,Haralson,Georgia,13143,28,1 +2020-04-30,Haralson,Georgia,13143,27,1 +2020-05-01,Haralson,Georgia,13143,29,1 +2020-05-02,Haralson,Georgia,13143,29,1 +2020-05-03,Haralson,Georgia,13143,29,1 +2020-05-04,Haralson,Georgia,13143,29,1 +2020-05-05,Haralson,Georgia,13143,30,2 +2020-05-06,Haralson,Georgia,13143,31,2 +2020-05-07,Haralson,Georgia,13143,32,2 +2020-05-08,Haralson,Georgia,13143,32,2 +2020-05-09,Haralson,Georgia,13143,32,2 +2020-05-10,Haralson,Georgia,13143,32,2 +2020-05-11,Haralson,Georgia,13143,32,2 +2020-05-12,Haralson,Georgia,13143,33,2 +2020-05-13,Haralson,Georgia,13143,34,2 +2020-05-14,Haralson,Georgia,13143,34,2 +2020-05-15,Haralson,Georgia,13143,34,2 +2020-05-16,Haralson,Georgia,13143,34,2 +2020-05-17,Haralson,Georgia,13143,34,2 +2020-05-18,Haralson,Georgia,13143,34,2 +2020-05-19,Haralson,Georgia,13143,35,2 +2020-05-20,Haralson,Georgia,13143,35,2 +2020-05-21,Haralson,Georgia,13143,36,2 +2020-05-22,Haralson,Georgia,13143,36,2 +2020-05-23,Haralson,Georgia,13143,36,2 +2020-05-24,Haralson,Georgia,13143,36,2 +2020-05-25,Haralson,Georgia,13143,36,2 +2020-05-26,Haralson,Georgia,13143,40,2 +2020-05-27,Haralson,Georgia,13143,40,2 +2020-05-28,Haralson,Georgia,13143,42,2 +2020-05-29,Haralson,Georgia,13143,43,2 +2020-05-30,Haralson,Georgia,13143,43,2 +2020-05-31,Haralson,Georgia,13143,43,3 +2020-06-01,Haralson,Georgia,13143,45,3 +2020-06-02,Haralson,Georgia,13143,47,3 +2020-06-03,Haralson,Georgia,13143,49,4 +2020-06-04,Haralson,Georgia,13143,50,4 +2020-06-05,Haralson,Georgia,13143,51,4 +2020-06-06,Haralson,Georgia,13143,52,4 +2020-06-07,Haralson,Georgia,13143,52,4 +2020-06-08,Haralson,Georgia,13143,52,4 +2020-06-09,Haralson,Georgia,13143,54,4 +2020-06-10,Haralson,Georgia,13143,56,4 +2020-06-11,Haralson,Georgia,13143,56,4 +2020-06-12,Haralson,Georgia,13143,57,4 +2020-06-13,Haralson,Georgia,13143,57,4 +2020-06-14,Haralson,Georgia,13143,57,4 +2020-06-15,Haralson,Georgia,13143,57,4 +2020-06-16,Haralson,Georgia,13143,58,4 +2020-06-17,Haralson,Georgia,13143,61,4 +2020-06-18,Haralson,Georgia,13143,62,4 +2020-06-19,Haralson,Georgia,13143,62,4 +2020-06-20,Haralson,Georgia,13143,63,4 +2020-06-21,Haralson,Georgia,13143,64,4 +2020-06-22,Haralson,Georgia,13143,65,4 +2020-06-23,Haralson,Georgia,13143,66,4 +2020-06-24,Haralson,Georgia,13143,67,4 +2020-06-25,Haralson,Georgia,13143,67,5 +2020-06-26,Haralson,Georgia,13143,68,5 +2020-06-27,Haralson,Georgia,13143,68,5 +2020-06-28,Haralson,Georgia,13143,68,5 +2020-06-29,Haralson,Georgia,13143,68,5 +2020-06-30,Haralson,Georgia,13143,73,5 +2020-07-01,Haralson,Georgia,13143,76,5 +2020-07-02,Haralson,Georgia,13143,79,5 +2020-07-03,Haralson,Georgia,13143,83,5 +2020-07-04,Haralson,Georgia,13143,83,5 +2020-07-05,Haralson,Georgia,13143,85,5 +2020-07-06,Haralson,Georgia,13143,87,5 +2020-07-07,Haralson,Georgia,13143,87,5 +2020-07-08,Haralson,Georgia,13143,95,5 +2020-07-09,Haralson,Georgia,13143,101,5 +2020-03-23,Harris,Georgia,13145,1,0 +2020-03-24,Harris,Georgia,13145,1,0 +2020-03-25,Harris,Georgia,13145,1,0 +2020-03-26,Harris,Georgia,13145,1,0 +2020-03-27,Harris,Georgia,13145,1,0 +2020-03-28,Harris,Georgia,13145,2,0 +2020-03-29,Harris,Georgia,13145,3,0 +2020-03-30,Harris,Georgia,13145,4,0 +2020-03-31,Harris,Georgia,13145,3,0 +2020-04-01,Harris,Georgia,13145,3,0 +2020-04-02,Harris,Georgia,13145,5,0 +2020-04-03,Harris,Georgia,13145,6,0 +2020-04-04,Harris,Georgia,13145,6,0 +2020-04-05,Harris,Georgia,13145,7,0 +2020-04-06,Harris,Georgia,13145,10,0 +2020-04-07,Harris,Georgia,13145,12,0 +2020-04-08,Harris,Georgia,13145,15,0 +2020-04-09,Harris,Georgia,13145,17,1 +2020-04-10,Harris,Georgia,13145,19,1 +2020-04-11,Harris,Georgia,13145,19,1 +2020-04-12,Harris,Georgia,13145,20,1 +2020-04-13,Harris,Georgia,13145,22,1 +2020-04-14,Harris,Georgia,13145,23,1 +2020-04-15,Harris,Georgia,13145,27,1 +2020-04-16,Harris,Georgia,13145,34,1 +2020-04-17,Harris,Georgia,13145,36,2 +2020-04-18,Harris,Georgia,13145,39,2 +2020-04-19,Harris,Georgia,13145,42,2 +2020-04-20,Harris,Georgia,13145,45,2 +2020-04-21,Harris,Georgia,13145,44,2 +2020-04-22,Harris,Georgia,13145,49,2 +2020-04-23,Harris,Georgia,13145,55,2 +2020-04-24,Harris,Georgia,13145,55,2 +2020-04-25,Harris,Georgia,13145,55,2 +2020-04-26,Harris,Georgia,13145,56,2 +2020-04-27,Harris,Georgia,13145,57,2 +2020-04-28,Harris,Georgia,13145,57,2 +2020-04-29,Harris,Georgia,13145,59,2 +2020-04-30,Harris,Georgia,13145,60,2 +2020-05-01,Harris,Georgia,13145,61,2 +2020-05-02,Harris,Georgia,13145,61,2 +2020-05-03,Harris,Georgia,13145,61,2 +2020-05-04,Harris,Georgia,13145,59,2 +2020-05-05,Harris,Georgia,13145,60,2 +2020-05-06,Harris,Georgia,13145,60,2 +2020-05-07,Harris,Georgia,13145,61,2 +2020-05-08,Harris,Georgia,13145,62,2 +2020-05-09,Harris,Georgia,13145,65,2 +2020-05-10,Harris,Georgia,13145,66,2 +2020-05-11,Harris,Georgia,13145,67,2 +2020-05-12,Harris,Georgia,13145,68,2 +2020-05-13,Harris,Georgia,13145,73,2 +2020-05-14,Harris,Georgia,13145,74,2 +2020-05-15,Harris,Georgia,13145,75,3 +2020-05-16,Harris,Georgia,13145,75,3 +2020-05-17,Harris,Georgia,13145,74,3 +2020-05-18,Harris,Georgia,13145,74,3 +2020-05-19,Harris,Georgia,13145,74,3 +2020-05-20,Harris,Georgia,13145,75,4 +2020-05-21,Harris,Georgia,13145,78,4 +2020-05-22,Harris,Georgia,13145,79,4 +2020-05-23,Harris,Georgia,13145,80,4 +2020-05-24,Harris,Georgia,13145,83,4 +2020-05-25,Harris,Georgia,13145,83,4 +2020-05-26,Harris,Georgia,13145,84,4 +2020-05-27,Harris,Georgia,13145,88,5 +2020-05-28,Harris,Georgia,13145,89,5 +2020-05-29,Harris,Georgia,13145,91,5 +2020-05-30,Harris,Georgia,13145,91,5 +2020-05-31,Harris,Georgia,13145,91,5 +2020-06-01,Harris,Georgia,13145,101,6 +2020-06-02,Harris,Georgia,13145,102,6 +2020-06-03,Harris,Georgia,13145,111,6 +2020-06-04,Harris,Georgia,13145,120,6 +2020-06-05,Harris,Georgia,13145,119,6 +2020-06-06,Harris,Georgia,13145,125,6 +2020-06-07,Harris,Georgia,13145,125,6 +2020-06-08,Harris,Georgia,13145,130,6 +2020-06-09,Harris,Georgia,13145,143,6 +2020-06-10,Harris,Georgia,13145,173,6 +2020-06-11,Harris,Georgia,13145,185,6 +2020-06-12,Harris,Georgia,13145,190,6 +2020-06-13,Harris,Georgia,13145,196,6 +2020-06-14,Harris,Georgia,13145,201,6 +2020-06-15,Harris,Georgia,13145,203,6 +2020-06-16,Harris,Georgia,13145,210,6 +2020-06-17,Harris,Georgia,13145,226,6 +2020-06-18,Harris,Georgia,13145,232,8 +2020-06-19,Harris,Georgia,13145,240,8 +2020-06-20,Harris,Georgia,13145,240,8 +2020-06-21,Harris,Georgia,13145,243,8 +2020-06-22,Harris,Georgia,13145,252,8 +2020-06-23,Harris,Georgia,13145,269,8 +2020-06-24,Harris,Georgia,13145,281,9 +2020-06-25,Harris,Georgia,13145,286,9 +2020-06-26,Harris,Georgia,13145,296,9 +2020-06-27,Harris,Georgia,13145,304,9 +2020-06-28,Harris,Georgia,13145,306,9 +2020-06-29,Harris,Georgia,13145,307,9 +2020-06-30,Harris,Georgia,13145,324,9 +2020-07-01,Harris,Georgia,13145,336,9 +2020-07-02,Harris,Georgia,13145,341,9 +2020-07-03,Harris,Georgia,13145,359,10 +2020-07-04,Harris,Georgia,13145,369,10 +2020-07-05,Harris,Georgia,13145,374,11 +2020-07-06,Harris,Georgia,13145,383,11 +2020-07-07,Harris,Georgia,13145,386,11 +2020-07-08,Harris,Georgia,13145,401,11 +2020-07-09,Harris,Georgia,13145,410,12 +2020-03-27,Hart,Georgia,13147,1,0 +2020-03-28,Hart,Georgia,13147,1,0 +2020-03-29,Hart,Georgia,13147,1,0 +2020-03-30,Hart,Georgia,13147,2,0 +2020-03-31,Hart,Georgia,13147,4,0 +2020-04-01,Hart,Georgia,13147,4,0 +2020-04-02,Hart,Georgia,13147,3,0 +2020-04-03,Hart,Georgia,13147,3,0 +2020-04-04,Hart,Georgia,13147,3,0 +2020-04-05,Hart,Georgia,13147,3,0 +2020-04-06,Hart,Georgia,13147,3,0 +2020-04-07,Hart,Georgia,13147,3,0 +2020-04-08,Hart,Georgia,13147,3,0 +2020-04-09,Hart,Georgia,13147,3,0 +2020-04-10,Hart,Georgia,13147,3,0 +2020-04-11,Hart,Georgia,13147,3,0 +2020-04-12,Hart,Georgia,13147,3,0 +2020-04-13,Hart,Georgia,13147,5,0 +2020-04-14,Hart,Georgia,13147,5,0 +2020-04-15,Hart,Georgia,13147,5,0 +2020-04-16,Hart,Georgia,13147,5,0 +2020-04-17,Hart,Georgia,13147,5,0 +2020-04-18,Hart,Georgia,13147,5,0 +2020-04-19,Hart,Georgia,13147,6,0 +2020-04-20,Hart,Georgia,13147,6,0 +2020-04-21,Hart,Georgia,13147,6,0 +2020-04-22,Hart,Georgia,13147,6,0 +2020-04-23,Hart,Georgia,13147,6,0 +2020-04-24,Hart,Georgia,13147,6,0 +2020-04-25,Hart,Georgia,13147,6,0 +2020-04-26,Hart,Georgia,13147,6,0 +2020-04-27,Hart,Georgia,13147,9,0 +2020-04-28,Hart,Georgia,13147,9,0 +2020-04-29,Hart,Georgia,13147,10,0 +2020-04-30,Hart,Georgia,13147,10,0 +2020-05-01,Hart,Georgia,13147,11,0 +2020-05-02,Hart,Georgia,13147,11,0 +2020-05-03,Hart,Georgia,13147,11,0 +2020-05-04,Hart,Georgia,13147,12,0 +2020-05-05,Hart,Georgia,13147,13,0 +2020-05-06,Hart,Georgia,13147,15,0 +2020-05-07,Hart,Georgia,13147,15,0 +2020-05-08,Hart,Georgia,13147,15,0 +2020-05-09,Hart,Georgia,13147,16,0 +2020-05-10,Hart,Georgia,13147,17,0 +2020-05-11,Hart,Georgia,13147,18,0 +2020-05-12,Hart,Georgia,13147,18,0 +2020-05-13,Hart,Georgia,13147,19,0 +2020-05-14,Hart,Georgia,13147,19,0 +2020-05-15,Hart,Georgia,13147,19,0 +2020-05-16,Hart,Georgia,13147,19,0 +2020-05-17,Hart,Georgia,13147,20,0 +2020-05-18,Hart,Georgia,13147,22,0 +2020-05-19,Hart,Georgia,13147,24,0 +2020-05-20,Hart,Georgia,13147,26,0 +2020-05-21,Hart,Georgia,13147,26,0 +2020-05-22,Hart,Georgia,13147,26,0 +2020-05-23,Hart,Georgia,13147,26,0 +2020-05-24,Hart,Georgia,13147,26,0 +2020-05-25,Hart,Georgia,13147,26,0 +2020-05-26,Hart,Georgia,13147,26,0 +2020-05-27,Hart,Georgia,13147,26,0 +2020-05-28,Hart,Georgia,13147,28,0 +2020-05-29,Hart,Georgia,13147,28,0 +2020-05-30,Hart,Georgia,13147,30,0 +2020-05-31,Hart,Georgia,13147,30,0 +2020-06-01,Hart,Georgia,13147,33,0 +2020-06-02,Hart,Georgia,13147,33,0 +2020-06-03,Hart,Georgia,13147,34,0 +2020-06-04,Hart,Georgia,13147,36,0 +2020-06-05,Hart,Georgia,13147,39,0 +2020-06-06,Hart,Georgia,13147,39,0 +2020-06-07,Hart,Georgia,13147,39,0 +2020-06-08,Hart,Georgia,13147,40,0 +2020-06-09,Hart,Georgia,13147,39,0 +2020-06-10,Hart,Georgia,13147,39,0 +2020-06-11,Hart,Georgia,13147,39,0 +2020-06-12,Hart,Georgia,13147,41,0 +2020-06-13,Hart,Georgia,13147,41,0 +2020-06-14,Hart,Georgia,13147,43,0 +2020-06-15,Hart,Georgia,13147,44,0 +2020-06-16,Hart,Georgia,13147,44,0 +2020-06-17,Hart,Georgia,13147,44,0 +2020-06-18,Hart,Georgia,13147,46,0 +2020-06-19,Hart,Georgia,13147,47,0 +2020-06-20,Hart,Georgia,13147,48,0 +2020-06-21,Hart,Georgia,13147,48,0 +2020-06-22,Hart,Georgia,13147,50,0 +2020-06-23,Hart,Georgia,13147,50,0 +2020-06-24,Hart,Georgia,13147,52,0 +2020-06-25,Hart,Georgia,13147,52,0 +2020-06-26,Hart,Georgia,13147,53,0 +2020-06-27,Hart,Georgia,13147,55,0 +2020-06-28,Hart,Georgia,13147,56,0 +2020-06-29,Hart,Georgia,13147,56,0 +2020-06-30,Hart,Georgia,13147,59,0 +2020-07-01,Hart,Georgia,13147,60,0 +2020-07-02,Hart,Georgia,13147,67,0 +2020-07-03,Hart,Georgia,13147,69,0 +2020-07-04,Hart,Georgia,13147,80,0 +2020-07-05,Hart,Georgia,13147,83,0 +2020-07-06,Hart,Georgia,13147,87,0 +2020-07-07,Hart,Georgia,13147,88,0 +2020-07-08,Hart,Georgia,13147,91,0 +2020-07-09,Hart,Georgia,13147,92,0 +2020-03-20,Heard,Georgia,13149,1,0 +2020-03-21,Heard,Georgia,13149,1,0 +2020-03-22,Heard,Georgia,13149,1,0 +2020-03-23,Heard,Georgia,13149,1,0 +2020-03-24,Heard,Georgia,13149,1,1 +2020-03-25,Heard,Georgia,13149,1,1 +2020-03-26,Heard,Georgia,13149,1,1 +2020-03-27,Heard,Georgia,13149,1,1 +2020-03-28,Heard,Georgia,13149,1,1 +2020-03-29,Heard,Georgia,13149,1,1 +2020-03-30,Heard,Georgia,13149,1,1 +2020-03-31,Heard,Georgia,13149,1,1 +2020-04-01,Heard,Georgia,13149,2,1 +2020-04-02,Heard,Georgia,13149,2,1 +2020-04-03,Heard,Georgia,13149,2,1 +2020-04-04,Heard,Georgia,13149,2,1 +2020-04-05,Heard,Georgia,13149,2,1 +2020-04-06,Heard,Georgia,13149,2,1 +2020-04-07,Heard,Georgia,13149,3,1 +2020-04-08,Heard,Georgia,13149,2,0 +2020-04-09,Heard,Georgia,13149,3,1 +2020-04-10,Heard,Georgia,13149,3,1 +2020-04-11,Heard,Georgia,13149,4,1 +2020-04-12,Heard,Georgia,13149,4,1 +2020-04-13,Heard,Georgia,13149,4,1 +2020-04-14,Heard,Georgia,13149,5,1 +2020-04-15,Heard,Georgia,13149,5,1 +2020-04-16,Heard,Georgia,13149,5,1 +2020-04-17,Heard,Georgia,13149,5,1 +2020-04-18,Heard,Georgia,13149,7,1 +2020-04-19,Heard,Georgia,13149,7,1 +2020-04-20,Heard,Georgia,13149,7,1 +2020-04-21,Heard,Georgia,13149,8,1 +2020-04-22,Heard,Georgia,13149,8,1 +2020-04-23,Heard,Georgia,13149,9,1 +2020-04-24,Heard,Georgia,13149,9,1 +2020-04-25,Heard,Georgia,13149,9,1 +2020-04-26,Heard,Georgia,13149,9,1 +2020-04-27,Heard,Georgia,13149,10,1 +2020-04-28,Heard,Georgia,13149,10,1 +2020-04-29,Heard,Georgia,13149,9,1 +2020-04-30,Heard,Georgia,13149,10,1 +2020-05-01,Heard,Georgia,13149,11,1 +2020-05-02,Heard,Georgia,13149,11,1 +2020-05-03,Heard,Georgia,13149,14,1 +2020-05-04,Heard,Georgia,13149,13,1 +2020-05-05,Heard,Georgia,13149,14,1 +2020-05-06,Heard,Georgia,13149,14,1 +2020-05-07,Heard,Georgia,13149,14,1 +2020-05-08,Heard,Georgia,13149,14,1 +2020-05-09,Heard,Georgia,13149,14,1 +2020-05-10,Heard,Georgia,13149,14,1 +2020-05-11,Heard,Georgia,13149,15,1 +2020-05-12,Heard,Georgia,13149,17,1 +2020-05-13,Heard,Georgia,13149,17,1 +2020-05-14,Heard,Georgia,13149,17,1 +2020-05-15,Heard,Georgia,13149,17,1 +2020-05-16,Heard,Georgia,13149,17,1 +2020-05-17,Heard,Georgia,13149,17,1 +2020-05-18,Heard,Georgia,13149,17,1 +2020-05-19,Heard,Georgia,13149,20,1 +2020-05-20,Heard,Georgia,13149,23,1 +2020-05-21,Heard,Georgia,13149,24,2 +2020-05-22,Heard,Georgia,13149,26,2 +2020-05-23,Heard,Georgia,13149,26,2 +2020-05-24,Heard,Georgia,13149,26,2 +2020-05-25,Heard,Georgia,13149,28,2 +2020-05-26,Heard,Georgia,13149,28,2 +2020-05-27,Heard,Georgia,13149,30,2 +2020-05-28,Heard,Georgia,13149,32,2 +2020-05-29,Heard,Georgia,13149,32,2 +2020-05-30,Heard,Georgia,13149,33,2 +2020-05-31,Heard,Georgia,13149,34,2 +2020-06-01,Heard,Georgia,13149,34,2 +2020-06-02,Heard,Georgia,13149,35,2 +2020-06-03,Heard,Georgia,13149,35,2 +2020-06-04,Heard,Georgia,13149,37,3 +2020-06-05,Heard,Georgia,13149,36,3 +2020-06-06,Heard,Georgia,13149,36,3 +2020-06-07,Heard,Georgia,13149,36,3 +2020-06-08,Heard,Georgia,13149,36,3 +2020-06-09,Heard,Georgia,13149,37,3 +2020-06-10,Heard,Georgia,13149,39,3 +2020-06-11,Heard,Georgia,13149,41,3 +2020-06-12,Heard,Georgia,13149,42,3 +2020-06-13,Heard,Georgia,13149,42,3 +2020-06-14,Heard,Georgia,13149,43,3 +2020-06-15,Heard,Georgia,13149,43,3 +2020-06-16,Heard,Georgia,13149,45,3 +2020-06-17,Heard,Georgia,13149,45,3 +2020-06-18,Heard,Georgia,13149,45,3 +2020-06-19,Heard,Georgia,13149,45,3 +2020-06-20,Heard,Georgia,13149,45,3 +2020-06-21,Heard,Georgia,13149,45,3 +2020-06-22,Heard,Georgia,13149,46,3 +2020-06-23,Heard,Georgia,13149,47,3 +2020-06-24,Heard,Georgia,13149,47,3 +2020-06-25,Heard,Georgia,13149,47,3 +2020-06-26,Heard,Georgia,13149,47,3 +2020-06-27,Heard,Georgia,13149,48,3 +2020-06-28,Heard,Georgia,13149,48,3 +2020-06-29,Heard,Georgia,13149,48,3 +2020-06-30,Heard,Georgia,13149,48,3 +2020-07-01,Heard,Georgia,13149,51,3 +2020-07-02,Heard,Georgia,13149,54,3 +2020-07-03,Heard,Georgia,13149,57,3 +2020-07-04,Heard,Georgia,13149,63,3 +2020-07-05,Heard,Georgia,13149,64,3 +2020-07-06,Heard,Georgia,13149,66,3 +2020-07-07,Heard,Georgia,13149,72,3 +2020-07-08,Heard,Georgia,13149,75,3 +2020-07-09,Heard,Georgia,13149,79,3 +2020-03-13,Henry,Georgia,13151,1,0 +2020-03-14,Henry,Georgia,13151,1,0 +2020-03-15,Henry,Georgia,13151,1,0 +2020-03-16,Henry,Georgia,13151,2,0 +2020-03-17,Henry,Georgia,13151,2,0 +2020-03-18,Henry,Georgia,13151,2,0 +2020-03-19,Henry,Georgia,13151,3,0 +2020-03-20,Henry,Georgia,13151,6,0 +2020-03-21,Henry,Georgia,13151,7,1 +2020-03-22,Henry,Georgia,13151,7,1 +2020-03-23,Henry,Georgia,13151,9,1 +2020-03-24,Henry,Georgia,13151,13,1 +2020-03-25,Henry,Georgia,13151,20,1 +2020-03-26,Henry,Georgia,13151,29,1 +2020-03-27,Henry,Georgia,13151,44,1 +2020-03-28,Henry,Georgia,13151,50,1 +2020-03-29,Henry,Georgia,13151,56,2 +2020-03-30,Henry,Georgia,13151,68,2 +2020-03-31,Henry,Georgia,13151,86,2 +2020-04-01,Henry,Georgia,13151,95,2 +2020-04-02,Henry,Georgia,13151,115,2 +2020-04-03,Henry,Georgia,13151,143,3 +2020-04-04,Henry,Georgia,13151,167,3 +2020-04-05,Henry,Georgia,13151,168,3 +2020-04-06,Henry,Georgia,13151,181,3 +2020-04-07,Henry,Georgia,13151,208,3 +2020-04-08,Henry,Georgia,13151,219,3 +2020-04-09,Henry,Georgia,13151,233,3 +2020-04-10,Henry,Georgia,13151,249,3 +2020-04-11,Henry,Georgia,13151,254,3 +2020-04-12,Henry,Georgia,13151,263,3 +2020-04-13,Henry,Georgia,13151,289,4 +2020-04-14,Henry,Georgia,13151,306,4 +2020-04-15,Henry,Georgia,13151,328,5 +2020-04-16,Henry,Georgia,13151,330,5 +2020-04-17,Henry,Georgia,13151,350,7 +2020-04-18,Henry,Georgia,13151,355,7 +2020-04-19,Henry,Georgia,13151,371,7 +2020-04-20,Henry,Georgia,13151,382,11 +2020-04-21,Henry,Georgia,13151,384,10 +2020-04-22,Henry,Georgia,13151,386,10 +2020-04-23,Henry,Georgia,13151,413,10 +2020-04-24,Henry,Georgia,13151,419,10 +2020-04-25,Henry,Georgia,13151,436,10 +2020-04-26,Henry,Georgia,13151,451,10 +2020-04-27,Henry,Georgia,13151,464,11 +2020-04-28,Henry,Georgia,13151,488,11 +2020-04-29,Henry,Georgia,13151,495,12 +2020-04-30,Henry,Georgia,13151,492,12 +2020-05-01,Henry,Georgia,13151,492,13 +2020-05-02,Henry,Georgia,13151,512,13 +2020-05-03,Henry,Georgia,13151,520,13 +2020-05-04,Henry,Georgia,13151,520,13 +2020-05-05,Henry,Georgia,13151,527,14 +2020-05-06,Henry,Georgia,13151,546,14 +2020-05-07,Henry,Georgia,13151,558,14 +2020-05-08,Henry,Georgia,13151,566,14 +2020-05-09,Henry,Georgia,13151,593,14 +2020-05-10,Henry,Georgia,13151,604,14 +2020-05-11,Henry,Georgia,13151,610,14 +2020-05-12,Henry,Georgia,13151,614,15 +2020-05-13,Henry,Georgia,13151,615,16 +2020-05-14,Henry,Georgia,13151,621,17 +2020-05-15,Henry,Georgia,13151,628,18 +2020-05-16,Henry,Georgia,13151,630,18 +2020-05-17,Henry,Georgia,13151,627,18 +2020-05-18,Henry,Georgia,13151,627,18 +2020-05-19,Henry,Georgia,13151,611,19 +2020-05-20,Henry,Georgia,13151,615,20 +2020-05-21,Henry,Georgia,13151,623,20 +2020-05-22,Henry,Georgia,13151,627,20 +2020-05-23,Henry,Georgia,13151,626,19 +2020-05-24,Henry,Georgia,13151,632,19 +2020-05-25,Henry,Georgia,13151,641,19 +2020-05-26,Henry,Georgia,13151,655,20 +2020-05-27,Henry,Georgia,13151,672,22 +2020-05-28,Henry,Georgia,13151,672,22 +2020-05-29,Henry,Georgia,13151,686,22 +2020-05-30,Henry,Georgia,13151,688,22 +2020-05-31,Henry,Georgia,13151,690,23 +2020-06-01,Henry,Georgia,13151,693,23 +2020-06-02,Henry,Georgia,13151,695,23 +2020-06-03,Henry,Georgia,13151,716,23 +2020-06-04,Henry,Georgia,13151,742,23 +2020-06-05,Henry,Georgia,13151,751,22 +2020-06-06,Henry,Georgia,13151,756,22 +2020-06-07,Henry,Georgia,13151,756,22 +2020-06-08,Henry,Georgia,13151,767,22 +2020-06-09,Henry,Georgia,13151,779,22 +2020-06-10,Henry,Georgia,13151,787,24 +2020-06-11,Henry,Georgia,13151,810,25 +2020-06-12,Henry,Georgia,13151,829,28 +2020-06-13,Henry,Georgia,13151,839,29 +2020-06-14,Henry,Georgia,13151,841,29 +2020-06-15,Henry,Georgia,13151,852,30 +2020-06-16,Henry,Georgia,13151,856,31 +2020-06-17,Henry,Georgia,13151,886,31 +2020-06-18,Henry,Georgia,13151,905,31 +2020-06-19,Henry,Georgia,13151,920,31 +2020-06-20,Henry,Georgia,13151,930,31 +2020-06-21,Henry,Georgia,13151,945,31 +2020-06-22,Henry,Georgia,13151,964,31 +2020-06-23,Henry,Georgia,13151,1013,31 +2020-06-24,Henry,Georgia,13151,1062,31 +2020-06-25,Henry,Georgia,13151,1077,31 +2020-06-26,Henry,Georgia,13151,1093,33 +2020-06-27,Henry,Georgia,13151,1128,33 +2020-06-28,Henry,Georgia,13151,1141,33 +2020-06-29,Henry,Georgia,13151,1141,33 +2020-06-30,Henry,Georgia,13151,1203,33 +2020-07-01,Henry,Georgia,13151,1243,33 +2020-07-02,Henry,Georgia,13151,1285,33 +2020-07-03,Henry,Georgia,13151,1369,33 +2020-07-04,Henry,Georgia,13151,1415,33 +2020-07-05,Henry,Georgia,13151,1445,33 +2020-07-06,Henry,Georgia,13151,1460,33 +2020-07-07,Henry,Georgia,13151,1514,33 +2020-07-08,Henry,Georgia,13151,1568,33 +2020-07-09,Henry,Georgia,13151,1611,33 +2020-03-18,Houston,Georgia,13153,1,0 +2020-03-19,Houston,Georgia,13153,1,0 +2020-03-20,Houston,Georgia,13153,1,0 +2020-03-21,Houston,Georgia,13153,1,0 +2020-03-22,Houston,Georgia,13153,1,0 +2020-03-23,Houston,Georgia,13153,1,0 +2020-03-24,Houston,Georgia,13153,5,0 +2020-03-25,Houston,Georgia,13153,6,0 +2020-03-26,Houston,Georgia,13153,9,0 +2020-03-27,Houston,Georgia,13153,10,1 +2020-03-28,Houston,Georgia,13153,13,1 +2020-03-29,Houston,Georgia,13153,15,1 +2020-03-30,Houston,Georgia,13153,26,2 +2020-03-31,Houston,Georgia,13153,30,3 +2020-04-01,Houston,Georgia,13153,44,5 +2020-04-02,Houston,Georgia,13153,49,5 +2020-04-03,Houston,Georgia,13153,58,5 +2020-04-04,Houston,Georgia,13153,59,6 +2020-04-05,Houston,Georgia,13153,62,6 +2020-04-06,Houston,Georgia,13153,70,6 +2020-04-07,Houston,Georgia,13153,85,6 +2020-04-08,Houston,Georgia,13153,99,7 +2020-04-09,Houston,Georgia,13153,108,7 +2020-04-10,Houston,Georgia,13153,112,7 +2020-04-11,Houston,Georgia,13153,113,7 +2020-04-12,Houston,Georgia,13153,121,7 +2020-04-13,Houston,Georgia,13153,129,8 +2020-04-14,Houston,Georgia,13153,138,9 +2020-04-15,Houston,Georgia,13153,142,9 +2020-04-16,Houston,Georgia,13153,158,9 +2020-04-17,Houston,Georgia,13153,164,10 +2020-04-18,Houston,Georgia,13153,165,10 +2020-04-19,Houston,Georgia,13153,166,10 +2020-04-20,Houston,Georgia,13153,182,11 +2020-04-21,Houston,Georgia,13153,184,12 +2020-04-22,Houston,Georgia,13153,190,13 +2020-04-23,Houston,Georgia,13153,194,13 +2020-04-24,Houston,Georgia,13153,204,13 +2020-04-25,Houston,Georgia,13153,206,13 +2020-04-26,Houston,Georgia,13153,209,13 +2020-04-27,Houston,Georgia,13153,215,13 +2020-04-28,Houston,Georgia,13153,219,13 +2020-04-29,Houston,Georgia,13153,220,13 +2020-04-30,Houston,Georgia,13153,222,14 +2020-05-01,Houston,Georgia,13153,234,14 +2020-05-02,Houston,Georgia,13153,237,14 +2020-05-03,Houston,Georgia,13153,242,14 +2020-05-04,Houston,Georgia,13153,261,14 +2020-05-05,Houston,Georgia,13153,268,14 +2020-05-06,Houston,Georgia,13153,274,14 +2020-05-07,Houston,Georgia,13153,278,15 +2020-05-08,Houston,Georgia,13153,284,15 +2020-05-09,Houston,Georgia,13153,283,15 +2020-05-10,Houston,Georgia,13153,286,15 +2020-05-11,Houston,Georgia,13153,285,15 +2020-05-12,Houston,Georgia,13153,290,15 +2020-05-13,Houston,Georgia,13153,290,16 +2020-05-14,Houston,Georgia,13153,306,17 +2020-05-15,Houston,Georgia,13153,314,16 +2020-05-16,Houston,Georgia,13153,313,16 +2020-05-17,Houston,Georgia,13153,314,16 +2020-05-18,Houston,Georgia,13153,318,16 +2020-05-19,Houston,Georgia,13153,323,16 +2020-05-20,Houston,Georgia,13153,324,16 +2020-05-21,Houston,Georgia,13153,335,16 +2020-05-22,Houston,Georgia,13153,339,16 +2020-05-23,Houston,Georgia,13153,342,16 +2020-05-24,Houston,Georgia,13153,343,16 +2020-05-25,Houston,Georgia,13153,349,16 +2020-05-26,Houston,Georgia,13153,356,16 +2020-05-27,Houston,Georgia,13153,362,16 +2020-05-28,Houston,Georgia,13153,363,16 +2020-05-29,Houston,Georgia,13153,364,16 +2020-05-30,Houston,Georgia,13153,365,17 +2020-05-31,Houston,Georgia,13153,366,17 +2020-06-01,Houston,Georgia,13153,375,17 +2020-06-02,Houston,Georgia,13153,376,17 +2020-06-03,Houston,Georgia,13153,381,18 +2020-06-04,Houston,Georgia,13153,390,19 +2020-06-05,Houston,Georgia,13153,393,19 +2020-06-06,Houston,Georgia,13153,399,19 +2020-06-07,Houston,Georgia,13153,401,19 +2020-06-08,Houston,Georgia,13153,402,19 +2020-06-09,Houston,Georgia,13153,406,20 +2020-06-10,Houston,Georgia,13153,408,20 +2020-06-11,Houston,Georgia,13153,415,20 +2020-06-12,Houston,Georgia,13153,421,20 +2020-06-13,Houston,Georgia,13153,421,20 +2020-06-14,Houston,Georgia,13153,431,20 +2020-06-15,Houston,Georgia,13153,446,20 +2020-06-16,Houston,Georgia,13153,456,20 +2020-06-17,Houston,Georgia,13153,470,20 +2020-06-18,Houston,Georgia,13153,479,20 +2020-06-19,Houston,Georgia,13153,481,20 +2020-06-20,Houston,Georgia,13153,486,20 +2020-06-21,Houston,Georgia,13153,499,20 +2020-06-22,Houston,Georgia,13153,513,20 +2020-06-23,Houston,Georgia,13153,519,20 +2020-06-24,Houston,Georgia,13153,533,20 +2020-06-25,Houston,Georgia,13153,545,23 +2020-06-26,Houston,Georgia,13153,562,23 +2020-06-27,Houston,Georgia,13153,575,23 +2020-06-28,Houston,Georgia,13153,578,23 +2020-06-29,Houston,Georgia,13153,604,23 +2020-06-30,Houston,Georgia,13153,629,23 +2020-07-01,Houston,Georgia,13153,652,24 +2020-07-02,Houston,Georgia,13153,688,24 +2020-07-03,Houston,Georgia,13153,723,24 +2020-07-04,Houston,Georgia,13153,734,24 +2020-07-05,Houston,Georgia,13153,744,24 +2020-07-06,Houston,Georgia,13153,751,25 +2020-07-07,Houston,Georgia,13153,840,28 +2020-07-08,Houston,Georgia,13153,854,28 +2020-07-09,Houston,Georgia,13153,871,29 +2020-03-24,Irwin,Georgia,13155,1,0 +2020-03-25,Irwin,Georgia,13155,2,0 +2020-03-26,Irwin,Georgia,13155,3,0 +2020-03-27,Irwin,Georgia,13155,3,0 +2020-03-28,Irwin,Georgia,13155,3,0 +2020-03-29,Irwin,Georgia,13155,3,0 +2020-03-30,Irwin,Georgia,13155,3,0 +2020-03-31,Irwin,Georgia,13155,3,0 +2020-04-01,Irwin,Georgia,13155,5,0 +2020-04-02,Irwin,Georgia,13155,5,0 +2020-04-03,Irwin,Georgia,13155,6,0 +2020-04-04,Irwin,Georgia,13155,6,0 +2020-04-05,Irwin,Georgia,13155,6,0 +2020-04-06,Irwin,Georgia,13155,7,0 +2020-04-07,Irwin,Georgia,13155,9,0 +2020-04-08,Irwin,Georgia,13155,11,0 +2020-04-09,Irwin,Georgia,13155,11,0 +2020-04-10,Irwin,Georgia,13155,11,0 +2020-04-11,Irwin,Georgia,13155,11,0 +2020-04-12,Irwin,Georgia,13155,11,0 +2020-04-13,Irwin,Georgia,13155,12,0 +2020-04-14,Irwin,Georgia,13155,12,0 +2020-04-15,Irwin,Georgia,13155,12,0 +2020-04-16,Irwin,Georgia,13155,13,0 +2020-04-17,Irwin,Georgia,13155,15,0 +2020-04-18,Irwin,Georgia,13155,15,0 +2020-04-19,Irwin,Georgia,13155,15,0 +2020-04-20,Irwin,Georgia,13155,15,0 +2020-04-21,Irwin,Georgia,13155,15,0 +2020-04-22,Irwin,Georgia,13155,15,1 +2020-04-23,Irwin,Georgia,13155,17,1 +2020-04-24,Irwin,Georgia,13155,15,1 +2020-04-25,Irwin,Georgia,13155,15,1 +2020-04-26,Irwin,Georgia,13155,15,1 +2020-04-27,Irwin,Georgia,13155,15,1 +2020-04-28,Irwin,Georgia,13155,15,1 +2020-04-29,Irwin,Georgia,13155,15,1 +2020-04-30,Irwin,Georgia,13155,15,1 +2020-05-01,Irwin,Georgia,13155,15,1 +2020-05-02,Irwin,Georgia,13155,16,1 +2020-05-03,Irwin,Georgia,13155,16,1 +2020-05-04,Irwin,Georgia,13155,18,1 +2020-05-05,Irwin,Georgia,13155,19,1 +2020-05-06,Irwin,Georgia,13155,20,1 +2020-05-07,Irwin,Georgia,13155,21,1 +2020-05-08,Irwin,Georgia,13155,21,1 +2020-05-09,Irwin,Georgia,13155,21,1 +2020-05-10,Irwin,Georgia,13155,21,1 +2020-05-11,Irwin,Georgia,13155,22,1 +2020-05-12,Irwin,Georgia,13155,22,1 +2020-05-13,Irwin,Georgia,13155,22,1 +2020-05-14,Irwin,Georgia,13155,22,1 +2020-05-15,Irwin,Georgia,13155,22,1 +2020-05-16,Irwin,Georgia,13155,22,1 +2020-05-17,Irwin,Georgia,13155,22,1 +2020-05-18,Irwin,Georgia,13155,22,1 +2020-05-19,Irwin,Georgia,13155,22,1 +2020-05-20,Irwin,Georgia,13155,22,1 +2020-05-21,Irwin,Georgia,13155,23,1 +2020-05-22,Irwin,Georgia,13155,23,1 +2020-05-23,Irwin,Georgia,13155,23,1 +2020-05-24,Irwin,Georgia,13155,23,1 +2020-05-25,Irwin,Georgia,13155,24,1 +2020-05-26,Irwin,Georgia,13155,24,1 +2020-05-27,Irwin,Georgia,13155,24,1 +2020-05-28,Irwin,Georgia,13155,25,1 +2020-05-29,Irwin,Georgia,13155,29,1 +2020-05-30,Irwin,Georgia,13155,28,1 +2020-05-31,Irwin,Georgia,13155,28,1 +2020-06-01,Irwin,Georgia,13155,30,1 +2020-06-02,Irwin,Georgia,13155,30,1 +2020-06-03,Irwin,Georgia,13155,31,1 +2020-06-04,Irwin,Georgia,13155,33,1 +2020-06-05,Irwin,Georgia,13155,34,1 +2020-06-06,Irwin,Georgia,13155,34,1 +2020-06-07,Irwin,Georgia,13155,34,1 +2020-06-08,Irwin,Georgia,13155,34,1 +2020-06-09,Irwin,Georgia,13155,34,1 +2020-06-10,Irwin,Georgia,13155,34,1 +2020-06-11,Irwin,Georgia,13155,34,1 +2020-06-12,Irwin,Georgia,13155,34,1 +2020-06-13,Irwin,Georgia,13155,36,1 +2020-06-14,Irwin,Georgia,13155,38,1 +2020-06-15,Irwin,Georgia,13155,38,1 +2020-06-16,Irwin,Georgia,13155,38,1 +2020-06-17,Irwin,Georgia,13155,41,1 +2020-06-18,Irwin,Georgia,13155,42,1 +2020-06-19,Irwin,Georgia,13155,45,1 +2020-06-20,Irwin,Georgia,13155,45,1 +2020-06-21,Irwin,Georgia,13155,45,1 +2020-06-22,Irwin,Georgia,13155,46,1 +2020-06-23,Irwin,Georgia,13155,46,1 +2020-06-24,Irwin,Georgia,13155,47,1 +2020-06-25,Irwin,Georgia,13155,48,1 +2020-06-26,Irwin,Georgia,13155,50,1 +2020-06-27,Irwin,Georgia,13155,50,1 +2020-06-28,Irwin,Georgia,13155,56,1 +2020-06-29,Irwin,Georgia,13155,59,1 +2020-06-30,Irwin,Georgia,13155,64,1 +2020-07-01,Irwin,Georgia,13155,63,1 +2020-07-02,Irwin,Georgia,13155,65,1 +2020-07-03,Irwin,Georgia,13155,69,1 +2020-07-04,Irwin,Georgia,13155,75,1 +2020-07-05,Irwin,Georgia,13155,76,1 +2020-07-06,Irwin,Georgia,13155,76,1 +2020-07-07,Irwin,Georgia,13155,82,1 +2020-07-08,Irwin,Georgia,13155,84,1 +2020-07-09,Irwin,Georgia,13155,89,1 +2020-03-25,Jackson,Georgia,13157,1,0 +2020-03-26,Jackson,Georgia,13157,2,0 +2020-03-27,Jackson,Georgia,13157,2,0 +2020-03-28,Jackson,Georgia,13157,2,0 +2020-03-29,Jackson,Georgia,13157,2,0 +2020-03-30,Jackson,Georgia,13157,2,0 +2020-03-31,Jackson,Georgia,13157,8,0 +2020-04-01,Jackson,Georgia,13157,10,0 +2020-04-02,Jackson,Georgia,13157,11,0 +2020-04-03,Jackson,Georgia,13157,13,0 +2020-04-04,Jackson,Georgia,13157,15,0 +2020-04-05,Jackson,Georgia,13157,15,0 +2020-04-06,Jackson,Georgia,13157,18,0 +2020-04-07,Jackson,Georgia,13157,23,0 +2020-04-08,Jackson,Georgia,13157,23,1 +2020-04-09,Jackson,Georgia,13157,26,1 +2020-04-10,Jackson,Georgia,13157,26,1 +2020-04-11,Jackson,Georgia,13157,26,1 +2020-04-12,Jackson,Georgia,13157,27,1 +2020-04-13,Jackson,Georgia,13157,29,1 +2020-04-14,Jackson,Georgia,13157,32,1 +2020-04-15,Jackson,Georgia,13157,35,1 +2020-04-16,Jackson,Georgia,13157,43,1 +2020-04-17,Jackson,Georgia,13157,46,1 +2020-04-18,Jackson,Georgia,13157,47,1 +2020-04-19,Jackson,Georgia,13157,48,1 +2020-04-20,Jackson,Georgia,13157,55,1 +2020-04-21,Jackson,Georgia,13157,57,1 +2020-04-22,Jackson,Georgia,13157,63,1 +2020-04-23,Jackson,Georgia,13157,69,1 +2020-04-24,Jackson,Georgia,13157,75,1 +2020-04-25,Jackson,Georgia,13157,75,1 +2020-04-26,Jackson,Georgia,13157,73,1 +2020-04-27,Jackson,Georgia,13157,77,1 +2020-04-28,Jackson,Georgia,13157,78,1 +2020-04-29,Jackson,Georgia,13157,85,1 +2020-04-30,Jackson,Georgia,13157,94,2 +2020-05-01,Jackson,Georgia,13157,97,2 +2020-05-02,Jackson,Georgia,13157,108,2 +2020-05-03,Jackson,Georgia,13157,108,2 +2020-05-04,Jackson,Georgia,13157,111,2 +2020-05-05,Jackson,Georgia,13157,113,3 +2020-05-06,Jackson,Georgia,13157,117,3 +2020-05-07,Jackson,Georgia,13157,119,3 +2020-05-08,Jackson,Georgia,13157,122,3 +2020-05-09,Jackson,Georgia,13157,123,3 +2020-05-10,Jackson,Georgia,13157,123,3 +2020-05-11,Jackson,Georgia,13157,124,3 +2020-05-12,Jackson,Georgia,13157,125,3 +2020-05-13,Jackson,Georgia,13157,126,3 +2020-05-14,Jackson,Georgia,13157,126,3 +2020-05-15,Jackson,Georgia,13157,127,3 +2020-05-16,Jackson,Georgia,13157,127,3 +2020-05-17,Jackson,Georgia,13157,127,3 +2020-05-18,Jackson,Georgia,13157,132,3 +2020-05-19,Jackson,Georgia,13157,134,3 +2020-05-20,Jackson,Georgia,13157,137,3 +2020-05-21,Jackson,Georgia,13157,139,3 +2020-05-22,Jackson,Georgia,13157,145,4 +2020-05-23,Jackson,Georgia,13157,147,4 +2020-05-24,Jackson,Georgia,13157,147,4 +2020-05-25,Jackson,Georgia,13157,148,4 +2020-05-26,Jackson,Georgia,13157,153,5 +2020-05-27,Jackson,Georgia,13157,171,5 +2020-05-28,Jackson,Georgia,13157,175,5 +2020-05-29,Jackson,Georgia,13157,184,5 +2020-05-30,Jackson,Georgia,13157,184,5 +2020-05-31,Jackson,Georgia,13157,184,5 +2020-06-01,Jackson,Georgia,13157,195,6 +2020-06-02,Jackson,Georgia,13157,198,6 +2020-06-03,Jackson,Georgia,13157,199,6 +2020-06-04,Jackson,Georgia,13157,210,6 +2020-06-05,Jackson,Georgia,13157,221,7 +2020-06-06,Jackson,Georgia,13157,226,7 +2020-06-07,Jackson,Georgia,13157,226,7 +2020-06-08,Jackson,Georgia,13157,232,7 +2020-06-09,Jackson,Georgia,13157,237,7 +2020-06-10,Jackson,Georgia,13157,239,7 +2020-06-11,Jackson,Georgia,13157,247,7 +2020-06-12,Jackson,Georgia,13157,256,7 +2020-06-13,Jackson,Georgia,13157,260,7 +2020-06-14,Jackson,Georgia,13157,260,7 +2020-06-15,Jackson,Georgia,13157,262,7 +2020-06-16,Jackson,Georgia,13157,266,7 +2020-06-17,Jackson,Georgia,13157,276,7 +2020-06-18,Jackson,Georgia,13157,283,7 +2020-06-19,Jackson,Georgia,13157,294,7 +2020-06-20,Jackson,Georgia,13157,297,7 +2020-06-21,Jackson,Georgia,13157,300,7 +2020-06-22,Jackson,Georgia,13157,305,7 +2020-06-23,Jackson,Georgia,13157,314,7 +2020-06-24,Jackson,Georgia,13157,329,7 +2020-06-25,Jackson,Georgia,13157,337,9 +2020-06-26,Jackson,Georgia,13157,341,10 +2020-06-27,Jackson,Georgia,13157,347,10 +2020-06-28,Jackson,Georgia,13157,354,10 +2020-06-29,Jackson,Georgia,13157,355,10 +2020-06-30,Jackson,Georgia,13157,370,10 +2020-07-01,Jackson,Georgia,13157,390,10 +2020-07-02,Jackson,Georgia,13157,391,10 +2020-07-03,Jackson,Georgia,13157,411,10 +2020-07-04,Jackson,Georgia,13157,426,10 +2020-07-05,Jackson,Georgia,13157,434,10 +2020-07-06,Jackson,Georgia,13157,449,10 +2020-07-07,Jackson,Georgia,13157,461,10 +2020-07-08,Jackson,Georgia,13157,469,10 +2020-07-09,Jackson,Georgia,13157,483,10 +2020-03-24,Jasper,Georgia,13159,1,0 +2020-03-25,Jasper,Georgia,13159,2,0 +2020-03-26,Jasper,Georgia,13159,2,0 +2020-03-27,Jasper,Georgia,13159,2,0 +2020-03-28,Jasper,Georgia,13159,2,0 +2020-03-29,Jasper,Georgia,13159,2,0 +2020-03-30,Jasper,Georgia,13159,2,0 +2020-03-31,Jasper,Georgia,13159,2,0 +2020-04-01,Jasper,Georgia,13159,2,0 +2020-04-02,Jasper,Georgia,13159,2,0 +2020-04-03,Jasper,Georgia,13159,2,0 +2020-04-04,Jasper,Georgia,13159,4,0 +2020-04-05,Jasper,Georgia,13159,3,0 +2020-04-06,Jasper,Georgia,13159,4,0 +2020-04-07,Jasper,Georgia,13159,6,0 +2020-04-08,Jasper,Georgia,13159,5,0 +2020-04-09,Jasper,Georgia,13159,6,0 +2020-04-10,Jasper,Georgia,13159,6,0 +2020-04-11,Jasper,Georgia,13159,6,0 +2020-04-12,Jasper,Georgia,13159,8,0 +2020-04-13,Jasper,Georgia,13159,9,0 +2020-04-14,Jasper,Georgia,13159,9,0 +2020-04-15,Jasper,Georgia,13159,10,0 +2020-04-16,Jasper,Georgia,13159,10,0 +2020-04-17,Jasper,Georgia,13159,14,0 +2020-04-18,Jasper,Georgia,13159,15,0 +2020-04-19,Jasper,Georgia,13159,17,0 +2020-04-20,Jasper,Georgia,13159,17,0 +2020-04-21,Jasper,Georgia,13159,18,0 +2020-04-22,Jasper,Georgia,13159,18,0 +2020-04-23,Jasper,Georgia,13159,19,0 +2020-04-24,Jasper,Georgia,13159,20,0 +2020-04-25,Jasper,Georgia,13159,20,0 +2020-04-26,Jasper,Georgia,13159,20,0 +2020-04-27,Jasper,Georgia,13159,20,0 +2020-04-28,Jasper,Georgia,13159,22,0 +2020-04-29,Jasper,Georgia,13159,22,0 +2020-04-30,Jasper,Georgia,13159,21,0 +2020-05-01,Jasper,Georgia,13159,22,0 +2020-05-02,Jasper,Georgia,13159,23,0 +2020-05-03,Jasper,Georgia,13159,24,0 +2020-05-04,Jasper,Georgia,13159,25,0 +2020-05-05,Jasper,Georgia,13159,25,0 +2020-05-06,Jasper,Georgia,13159,26,0 +2020-05-07,Jasper,Georgia,13159,26,0 +2020-05-08,Jasper,Georgia,13159,26,0 +2020-05-09,Jasper,Georgia,13159,25,0 +2020-05-10,Jasper,Georgia,13159,25,0 +2020-05-11,Jasper,Georgia,13159,25,0 +2020-05-12,Jasper,Georgia,13159,26,0 +2020-05-13,Jasper,Georgia,13159,26,0 +2020-05-14,Jasper,Georgia,13159,26,0 +2020-05-15,Jasper,Georgia,13159,26,0 +2020-05-16,Jasper,Georgia,13159,26,0 +2020-05-17,Jasper,Georgia,13159,26,0 +2020-05-18,Jasper,Georgia,13159,26,0 +2020-05-19,Jasper,Georgia,13159,26,0 +2020-05-20,Jasper,Georgia,13159,26,0 +2020-05-21,Jasper,Georgia,13159,26,1 +2020-05-22,Jasper,Georgia,13159,31,1 +2020-05-23,Jasper,Georgia,13159,31,1 +2020-05-24,Jasper,Georgia,13159,31,1 +2020-05-25,Jasper,Georgia,13159,31,1 +2020-05-26,Jasper,Georgia,13159,32,1 +2020-05-27,Jasper,Georgia,13159,32,1 +2020-05-28,Jasper,Georgia,13159,32,1 +2020-05-29,Jasper,Georgia,13159,33,1 +2020-05-30,Jasper,Georgia,13159,36,1 +2020-05-31,Jasper,Georgia,13159,36,1 +2020-06-01,Jasper,Georgia,13159,40,1 +2020-06-02,Jasper,Georgia,13159,39,1 +2020-06-03,Jasper,Georgia,13159,40,1 +2020-06-04,Jasper,Georgia,13159,45,1 +2020-06-05,Jasper,Georgia,13159,46,1 +2020-06-06,Jasper,Georgia,13159,47,1 +2020-06-07,Jasper,Georgia,13159,48,1 +2020-06-08,Jasper,Georgia,13159,49,1 +2020-06-09,Jasper,Georgia,13159,51,1 +2020-06-10,Jasper,Georgia,13159,51,1 +2020-06-11,Jasper,Georgia,13159,55,1 +2020-06-12,Jasper,Georgia,13159,56,1 +2020-06-13,Jasper,Georgia,13159,56,1 +2020-06-14,Jasper,Georgia,13159,56,1 +2020-06-15,Jasper,Georgia,13159,56,1 +2020-06-16,Jasper,Georgia,13159,56,1 +2020-06-17,Jasper,Georgia,13159,59,1 +2020-06-18,Jasper,Georgia,13159,61,1 +2020-06-19,Jasper,Georgia,13159,61,1 +2020-06-20,Jasper,Georgia,13159,61,1 +2020-06-21,Jasper,Georgia,13159,61,1 +2020-06-22,Jasper,Georgia,13159,63,1 +2020-06-23,Jasper,Georgia,13159,65,1 +2020-06-24,Jasper,Georgia,13159,65,1 +2020-06-25,Jasper,Georgia,13159,64,1 +2020-06-26,Jasper,Georgia,13159,65,1 +2020-06-27,Jasper,Georgia,13159,67,1 +2020-06-28,Jasper,Georgia,13159,66,1 +2020-06-29,Jasper,Georgia,13159,66,1 +2020-06-30,Jasper,Georgia,13159,68,1 +2020-07-01,Jasper,Georgia,13159,69,1 +2020-07-02,Jasper,Georgia,13159,69,1 +2020-07-03,Jasper,Georgia,13159,76,1 +2020-07-04,Jasper,Georgia,13159,77,1 +2020-07-05,Jasper,Georgia,13159,77,1 +2020-07-06,Jasper,Georgia,13159,78,1 +2020-07-07,Jasper,Georgia,13159,79,1 +2020-07-08,Jasper,Georgia,13159,78,1 +2020-07-09,Jasper,Georgia,13159,83,1 +2020-04-06,Jeff Davis,Georgia,13161,1,0 +2020-04-07,Jeff Davis,Georgia,13161,1,0 +2020-04-08,Jeff Davis,Georgia,13161,1,0 +2020-04-09,Jeff Davis,Georgia,13161,1,0 +2020-04-10,Jeff Davis,Georgia,13161,1,0 +2020-04-11,Jeff Davis,Georgia,13161,1,0 +2020-04-12,Jeff Davis,Georgia,13161,1,0 +2020-04-13,Jeff Davis,Georgia,13161,1,0 +2020-04-14,Jeff Davis,Georgia,13161,1,0 +2020-04-15,Jeff Davis,Georgia,13161,2,0 +2020-04-16,Jeff Davis,Georgia,13161,3,0 +2020-04-17,Jeff Davis,Georgia,13161,5,0 +2020-04-18,Jeff Davis,Georgia,13161,5,0 +2020-04-19,Jeff Davis,Georgia,13161,7,0 +2020-04-20,Jeff Davis,Georgia,13161,7,1 +2020-04-21,Jeff Davis,Georgia,13161,7,1 +2020-04-22,Jeff Davis,Georgia,13161,7,1 +2020-04-23,Jeff Davis,Georgia,13161,9,1 +2020-04-24,Jeff Davis,Georgia,13161,10,1 +2020-04-25,Jeff Davis,Georgia,13161,11,1 +2020-04-26,Jeff Davis,Georgia,13161,11,1 +2020-04-27,Jeff Davis,Georgia,13161,14,1 +2020-04-28,Jeff Davis,Georgia,13161,14,1 +2020-04-29,Jeff Davis,Georgia,13161,15,1 +2020-04-30,Jeff Davis,Georgia,13161,17,1 +2020-05-01,Jeff Davis,Georgia,13161,20,1 +2020-05-02,Jeff Davis,Georgia,13161,20,1 +2020-05-03,Jeff Davis,Georgia,13161,22,1 +2020-05-04,Jeff Davis,Georgia,13161,22,1 +2020-05-05,Jeff Davis,Georgia,13161,22,1 +2020-05-06,Jeff Davis,Georgia,13161,22,1 +2020-05-07,Jeff Davis,Georgia,13161,22,1 +2020-05-08,Jeff Davis,Georgia,13161,24,1 +2020-05-09,Jeff Davis,Georgia,13161,24,1 +2020-05-10,Jeff Davis,Georgia,13161,24,1 +2020-05-11,Jeff Davis,Georgia,13161,24,1 +2020-05-12,Jeff Davis,Georgia,13161,24,1 +2020-05-13,Jeff Davis,Georgia,13161,24,1 +2020-05-14,Jeff Davis,Georgia,13161,24,1 +2020-05-15,Jeff Davis,Georgia,13161,24,1 +2020-05-16,Jeff Davis,Georgia,13161,24,1 +2020-05-17,Jeff Davis,Georgia,13161,24,1 +2020-05-18,Jeff Davis,Georgia,13161,25,1 +2020-05-19,Jeff Davis,Georgia,13161,26,1 +2020-05-20,Jeff Davis,Georgia,13161,26,1 +2020-05-21,Jeff Davis,Georgia,13161,29,1 +2020-05-22,Jeff Davis,Georgia,13161,31,1 +2020-05-23,Jeff Davis,Georgia,13161,31,1 +2020-05-24,Jeff Davis,Georgia,13161,33,1 +2020-05-25,Jeff Davis,Georgia,13161,34,1 +2020-05-26,Jeff Davis,Georgia,13161,34,1 +2020-05-27,Jeff Davis,Georgia,13161,35,1 +2020-05-28,Jeff Davis,Georgia,13161,38,1 +2020-05-29,Jeff Davis,Georgia,13161,38,1 +2020-05-30,Jeff Davis,Georgia,13161,38,1 +2020-05-31,Jeff Davis,Georgia,13161,37,1 +2020-06-01,Jeff Davis,Georgia,13161,37,1 +2020-06-02,Jeff Davis,Georgia,13161,37,1 +2020-06-03,Jeff Davis,Georgia,13161,38,1 +2020-06-04,Jeff Davis,Georgia,13161,38,1 +2020-06-05,Jeff Davis,Georgia,13161,38,1 +2020-06-06,Jeff Davis,Georgia,13161,45,1 +2020-06-07,Jeff Davis,Georgia,13161,46,1 +2020-06-08,Jeff Davis,Georgia,13161,46,1 +2020-06-09,Jeff Davis,Georgia,13161,48,1 +2020-06-10,Jeff Davis,Georgia,13161,49,1 +2020-06-11,Jeff Davis,Georgia,13161,51,1 +2020-06-12,Jeff Davis,Georgia,13161,52,2 +2020-06-13,Jeff Davis,Georgia,13161,54,2 +2020-06-14,Jeff Davis,Georgia,13161,54,2 +2020-06-15,Jeff Davis,Georgia,13161,55,2 +2020-06-16,Jeff Davis,Georgia,13161,62,2 +2020-06-17,Jeff Davis,Georgia,13161,64,2 +2020-06-18,Jeff Davis,Georgia,13161,66,2 +2020-06-19,Jeff Davis,Georgia,13161,71,2 +2020-06-20,Jeff Davis,Georgia,13161,72,2 +2020-06-21,Jeff Davis,Georgia,13161,73,2 +2020-06-22,Jeff Davis,Georgia,13161,75,2 +2020-06-23,Jeff Davis,Georgia,13161,76,2 +2020-06-24,Jeff Davis,Georgia,13161,76,2 +2020-06-25,Jeff Davis,Georgia,13161,77,2 +2020-06-26,Jeff Davis,Georgia,13161,78,2 +2020-06-27,Jeff Davis,Georgia,13161,79,2 +2020-06-28,Jeff Davis,Georgia,13161,99,2 +2020-06-29,Jeff Davis,Georgia,13161,104,2 +2020-06-30,Jeff Davis,Georgia,13161,110,2 +2020-07-01,Jeff Davis,Georgia,13161,112,2 +2020-07-02,Jeff Davis,Georgia,13161,114,3 +2020-07-03,Jeff Davis,Georgia,13161,120,3 +2020-07-04,Jeff Davis,Georgia,13161,126,3 +2020-07-05,Jeff Davis,Georgia,13161,126,3 +2020-07-06,Jeff Davis,Georgia,13161,129,3 +2020-07-07,Jeff Davis,Georgia,13161,135,3 +2020-07-08,Jeff Davis,Georgia,13161,136,3 +2020-07-09,Jeff Davis,Georgia,13161,142,3 +2020-03-30,Jefferson,Georgia,13163,1,0 +2020-03-31,Jefferson,Georgia,13163,2,0 +2020-04-01,Jefferson,Georgia,13163,2,0 +2020-04-02,Jefferson,Georgia,13163,2,0 +2020-04-03,Jefferson,Georgia,13163,2,0 +2020-04-04,Jefferson,Georgia,13163,3,0 +2020-04-05,Jefferson,Georgia,13163,3,0 +2020-04-06,Jefferson,Georgia,13163,3,0 +2020-04-07,Jefferson,Georgia,13163,4,0 +2020-04-08,Jefferson,Georgia,13163,4,0 +2020-04-09,Jefferson,Georgia,13163,4,1 +2020-04-10,Jefferson,Georgia,13163,6,1 +2020-04-11,Jefferson,Georgia,13163,6,1 +2020-04-12,Jefferson,Georgia,13163,6,1 +2020-04-13,Jefferson,Georgia,13163,7,1 +2020-04-14,Jefferson,Georgia,13163,7,1 +2020-04-15,Jefferson,Georgia,13163,9,1 +2020-04-16,Jefferson,Georgia,13163,11,1 +2020-04-17,Jefferson,Georgia,13163,11,1 +2020-04-18,Jefferson,Georgia,13163,11,1 +2020-04-19,Jefferson,Georgia,13163,11,1 +2020-04-20,Jefferson,Georgia,13163,11,1 +2020-04-21,Jefferson,Georgia,13163,11,1 +2020-04-22,Jefferson,Georgia,13163,11,1 +2020-04-23,Jefferson,Georgia,13163,12,1 +2020-04-24,Jefferson,Georgia,13163,13,1 +2020-04-25,Jefferson,Georgia,13163,13,1 +2020-04-26,Jefferson,Georgia,13163,14,1 +2020-04-27,Jefferson,Georgia,13163,14,1 +2020-04-28,Jefferson,Georgia,13163,14,1 +2020-04-29,Jefferson,Georgia,13163,14,1 +2020-04-30,Jefferson,Georgia,13163,14,1 +2020-05-01,Jefferson,Georgia,13163,14,1 +2020-05-02,Jefferson,Georgia,13163,15,1 +2020-05-03,Jefferson,Georgia,13163,15,1 +2020-05-04,Jefferson,Georgia,13163,15,1 +2020-05-05,Jefferson,Georgia,13163,16,1 +2020-05-06,Jefferson,Georgia,13163,17,1 +2020-05-07,Jefferson,Georgia,13163,17,1 +2020-05-08,Jefferson,Georgia,13163,17,1 +2020-05-09,Jefferson,Georgia,13163,17,1 +2020-05-10,Jefferson,Georgia,13163,17,1 +2020-05-11,Jefferson,Georgia,13163,17,1 +2020-05-12,Jefferson,Georgia,13163,18,1 +2020-05-13,Jefferson,Georgia,13163,19,1 +2020-05-14,Jefferson,Georgia,13163,22,1 +2020-05-15,Jefferson,Georgia,13163,22,1 +2020-05-16,Jefferson,Georgia,13163,22,1 +2020-05-17,Jefferson,Georgia,13163,22,1 +2020-05-18,Jefferson,Georgia,13163,23,1 +2020-05-19,Jefferson,Georgia,13163,25,1 +2020-05-20,Jefferson,Georgia,13163,26,1 +2020-05-21,Jefferson,Georgia,13163,26,1 +2020-05-22,Jefferson,Georgia,13163,26,1 +2020-05-23,Jefferson,Georgia,13163,26,1 +2020-05-24,Jefferson,Georgia,13163,26,1 +2020-05-25,Jefferson,Georgia,13163,29,1 +2020-05-26,Jefferson,Georgia,13163,30,1 +2020-05-27,Jefferson,Georgia,13163,32,1 +2020-05-28,Jefferson,Georgia,13163,33,1 +2020-05-29,Jefferson,Georgia,13163,36,1 +2020-05-30,Jefferson,Georgia,13163,41,1 +2020-05-31,Jefferson,Georgia,13163,43,1 +2020-06-01,Jefferson,Georgia,13163,43,1 +2020-06-02,Jefferson,Georgia,13163,44,1 +2020-06-03,Jefferson,Georgia,13163,46,1 +2020-06-04,Jefferson,Georgia,13163,47,1 +2020-06-05,Jefferson,Georgia,13163,49,1 +2020-06-06,Jefferson,Georgia,13163,50,1 +2020-06-07,Jefferson,Georgia,13163,50,1 +2020-06-08,Jefferson,Georgia,13163,51,1 +2020-06-09,Jefferson,Georgia,13163,52,1 +2020-06-10,Jefferson,Georgia,13163,52,1 +2020-06-11,Jefferson,Georgia,13163,52,1 +2020-06-12,Jefferson,Georgia,13163,52,1 +2020-06-13,Jefferson,Georgia,13163,54,1 +2020-06-14,Jefferson,Georgia,13163,54,1 +2020-06-15,Jefferson,Georgia,13163,56,1 +2020-06-16,Jefferson,Georgia,13163,58,1 +2020-06-17,Jefferson,Georgia,13163,61,1 +2020-06-18,Jefferson,Georgia,13163,63,1 +2020-06-19,Jefferson,Georgia,13163,66,1 +2020-06-20,Jefferson,Georgia,13163,67,1 +2020-06-21,Jefferson,Georgia,13163,67,1 +2020-06-22,Jefferson,Georgia,13163,70,1 +2020-06-23,Jefferson,Georgia,13163,73,1 +2020-06-24,Jefferson,Georgia,13163,74,1 +2020-06-25,Jefferson,Georgia,13163,80,1 +2020-06-26,Jefferson,Georgia,13163,86,1 +2020-06-27,Jefferson,Georgia,13163,86,1 +2020-06-28,Jefferson,Georgia,13163,88,1 +2020-06-29,Jefferson,Georgia,13163,95,1 +2020-06-30,Jefferson,Georgia,13163,98,1 +2020-07-01,Jefferson,Georgia,13163,109,1 +2020-07-02,Jefferson,Georgia,13163,117,1 +2020-07-03,Jefferson,Georgia,13163,128,1 +2020-07-04,Jefferson,Georgia,13163,134,1 +2020-07-05,Jefferson,Georgia,13163,139,1 +2020-07-06,Jefferson,Georgia,13163,141,2 +2020-07-07,Jefferson,Georgia,13163,155,2 +2020-07-08,Jefferson,Georgia,13163,159,2 +2020-07-09,Jefferson,Georgia,13163,164,2 +2020-03-28,Jenkins,Georgia,13165,1,0 +2020-03-29,Jenkins,Georgia,13165,1,0 +2020-03-30,Jenkins,Georgia,13165,1,0 +2020-03-31,Jenkins,Georgia,13165,1,0 +2020-04-01,Jenkins,Georgia,13165,1,0 +2020-04-02,Jenkins,Georgia,13165,1,0 +2020-04-03,Jenkins,Georgia,13165,2,0 +2020-04-04,Jenkins,Georgia,13165,2,0 +2020-04-05,Jenkins,Georgia,13165,2,0 +2020-04-06,Jenkins,Georgia,13165,4,0 +2020-04-07,Jenkins,Georgia,13165,7,0 +2020-04-08,Jenkins,Georgia,13165,7,1 +2020-04-09,Jenkins,Georgia,13165,8,1 +2020-04-10,Jenkins,Georgia,13165,9,1 +2020-04-11,Jenkins,Georgia,13165,9,1 +2020-04-12,Jenkins,Georgia,13165,9,1 +2020-04-13,Jenkins,Georgia,13165,11,1 +2020-04-14,Jenkins,Georgia,13165,11,1 +2020-04-15,Jenkins,Georgia,13165,12,1 +2020-04-16,Jenkins,Georgia,13165,12,1 +2020-04-17,Jenkins,Georgia,13165,12,1 +2020-04-18,Jenkins,Georgia,13165,12,1 +2020-04-19,Jenkins,Georgia,13165,12,1 +2020-04-20,Jenkins,Georgia,13165,13,1 +2020-04-21,Jenkins,Georgia,13165,13,1 +2020-04-22,Jenkins,Georgia,13165,14,1 +2020-04-23,Jenkins,Georgia,13165,15,1 +2020-04-24,Jenkins,Georgia,13165,15,1 +2020-04-25,Jenkins,Georgia,13165,16,1 +2020-04-26,Jenkins,Georgia,13165,16,1 +2020-04-27,Jenkins,Georgia,13165,16,1 +2020-04-28,Jenkins,Georgia,13165,16,1 +2020-04-29,Jenkins,Georgia,13165,16,1 +2020-04-30,Jenkins,Georgia,13165,16,1 +2020-05-01,Jenkins,Georgia,13165,16,1 +2020-05-02,Jenkins,Georgia,13165,16,1 +2020-05-03,Jenkins,Georgia,13165,17,1 +2020-05-04,Jenkins,Georgia,13165,17,1 +2020-05-05,Jenkins,Georgia,13165,17,1 +2020-05-06,Jenkins,Georgia,13165,17,1 +2020-05-07,Jenkins,Georgia,13165,17,1 +2020-05-08,Jenkins,Georgia,13165,17,1 +2020-05-09,Jenkins,Georgia,13165,17,1 +2020-05-10,Jenkins,Georgia,13165,17,1 +2020-05-11,Jenkins,Georgia,13165,17,1 +2020-05-12,Jenkins,Georgia,13165,18,1 +2020-05-13,Jenkins,Georgia,13165,16,1 +2020-05-14,Jenkins,Georgia,13165,16,1 +2020-05-15,Jenkins,Georgia,13165,16,1 +2020-05-16,Jenkins,Georgia,13165,16,1 +2020-05-17,Jenkins,Georgia,13165,16,1 +2020-05-18,Jenkins,Georgia,13165,16,1 +2020-05-19,Jenkins,Georgia,13165,16,1 +2020-05-20,Jenkins,Georgia,13165,16,1 +2020-05-21,Jenkins,Georgia,13165,17,1 +2020-05-22,Jenkins,Georgia,13165,18,1 +2020-05-23,Jenkins,Georgia,13165,18,1 +2020-05-24,Jenkins,Georgia,13165,18,1 +2020-05-25,Jenkins,Georgia,13165,18,1 +2020-05-26,Jenkins,Georgia,13165,18,1 +2020-05-27,Jenkins,Georgia,13165,19,1 +2020-05-28,Jenkins,Georgia,13165,19,1 +2020-05-29,Jenkins,Georgia,13165,19,1 +2020-05-30,Jenkins,Georgia,13165,19,1 +2020-05-31,Jenkins,Georgia,13165,19,1 +2020-06-01,Jenkins,Georgia,13165,20,1 +2020-06-02,Jenkins,Georgia,13165,21,1 +2020-06-03,Jenkins,Georgia,13165,21,1 +2020-06-04,Jenkins,Georgia,13165,22,1 +2020-06-05,Jenkins,Georgia,13165,26,1 +2020-06-06,Jenkins,Georgia,13165,27,2 +2020-06-07,Jenkins,Georgia,13165,27,2 +2020-06-08,Jenkins,Georgia,13165,29,2 +2020-06-09,Jenkins,Georgia,13165,33,2 +2020-06-10,Jenkins,Georgia,13165,40,5 +2020-06-11,Jenkins,Georgia,13165,44,6 +2020-06-12,Jenkins,Georgia,13165,44,6 +2020-06-13,Jenkins,Georgia,13165,44,6 +2020-06-14,Jenkins,Georgia,13165,45,6 +2020-06-15,Jenkins,Georgia,13165,45,6 +2020-06-16,Jenkins,Georgia,13165,47,7 +2020-06-17,Jenkins,Georgia,13165,49,7 +2020-06-18,Jenkins,Georgia,13165,62,9 +2020-06-19,Jenkins,Georgia,13165,72,9 +2020-06-20,Jenkins,Georgia,13165,72,9 +2020-06-21,Jenkins,Georgia,13165,73,9 +2020-06-22,Jenkins,Georgia,13165,75,9 +2020-06-23,Jenkins,Georgia,13165,78,9 +2020-06-24,Jenkins,Georgia,13165,87,9 +2020-06-25,Jenkins,Georgia,13165,94,11 +2020-06-26,Jenkins,Georgia,13165,94,11 +2020-06-27,Jenkins,Georgia,13165,94,11 +2020-06-28,Jenkins,Georgia,13165,95,11 +2020-06-29,Jenkins,Georgia,13165,96,11 +2020-06-30,Jenkins,Georgia,13165,104,11 +2020-07-01,Jenkins,Georgia,13165,109,11 +2020-07-02,Jenkins,Georgia,13165,117,12 +2020-07-03,Jenkins,Georgia,13165,120,12 +2020-07-04,Jenkins,Georgia,13165,121,12 +2020-07-05,Jenkins,Georgia,13165,122,12 +2020-07-06,Jenkins,Georgia,13165,122,12 +2020-07-07,Jenkins,Georgia,13165,127,12 +2020-07-08,Jenkins,Georgia,13165,132,12 +2020-07-09,Jenkins,Georgia,13165,135,12 +2020-03-30,Johnson,Georgia,13167,1,0 +2020-03-31,Johnson,Georgia,13167,1,0 +2020-04-01,Johnson,Georgia,13167,1,0 +2020-04-02,Johnson,Georgia,13167,1,0 +2020-04-03,Johnson,Georgia,13167,1,0 +2020-04-04,Johnson,Georgia,13167,2,0 +2020-04-05,Johnson,Georgia,13167,3,0 +2020-04-06,Johnson,Georgia,13167,5,0 +2020-04-07,Johnson,Georgia,13167,6,0 +2020-04-08,Johnson,Georgia,13167,13,0 +2020-04-09,Johnson,Georgia,13167,14,1 +2020-04-10,Johnson,Georgia,13167,15,1 +2020-04-11,Johnson,Georgia,13167,15,1 +2020-04-12,Johnson,Georgia,13167,19,1 +2020-04-13,Johnson,Georgia,13167,20,1 +2020-04-14,Johnson,Georgia,13167,20,1 +2020-04-15,Johnson,Georgia,13167,21,1 +2020-04-16,Johnson,Georgia,13167,33,1 +2020-04-17,Johnson,Georgia,13167,33,1 +2020-04-18,Johnson,Georgia,13167,33,1 +2020-04-19,Johnson,Georgia,13167,33,1 +2020-04-20,Johnson,Georgia,13167,34,1 +2020-04-21,Johnson,Georgia,13167,35,1 +2020-04-22,Johnson,Georgia,13167,37,1 +2020-04-23,Johnson,Georgia,13167,38,1 +2020-04-24,Johnson,Georgia,13167,36,1 +2020-04-25,Johnson,Georgia,13167,36,2 +2020-04-26,Johnson,Georgia,13167,36,2 +2020-04-27,Johnson,Georgia,13167,39,2 +2020-04-28,Johnson,Georgia,13167,39,2 +2020-04-29,Johnson,Georgia,13167,39,2 +2020-04-30,Johnson,Georgia,13167,49,2 +2020-05-01,Johnson,Georgia,13167,51,2 +2020-05-02,Johnson,Georgia,13167,59,2 +2020-05-03,Johnson,Georgia,13167,59,2 +2020-05-04,Johnson,Georgia,13167,63,2 +2020-05-05,Johnson,Georgia,13167,64,2 +2020-05-06,Johnson,Georgia,13167,64,2 +2020-05-07,Johnson,Georgia,13167,64,2 +2020-05-08,Johnson,Georgia,13167,63,2 +2020-05-09,Johnson,Georgia,13167,66,2 +2020-05-10,Johnson,Georgia,13167,66,2 +2020-05-11,Johnson,Georgia,13167,67,2 +2020-05-12,Johnson,Georgia,13167,69,2 +2020-05-13,Johnson,Georgia,13167,70,2 +2020-05-14,Johnson,Georgia,13167,70,2 +2020-05-15,Johnson,Georgia,13167,71,2 +2020-05-16,Johnson,Georgia,13167,71,2 +2020-05-17,Johnson,Georgia,13167,71,2 +2020-05-18,Johnson,Georgia,13167,74,2 +2020-05-19,Johnson,Georgia,13167,82,2 +2020-05-20,Johnson,Georgia,13167,78,2 +2020-05-21,Johnson,Georgia,13167,78,2 +2020-05-22,Johnson,Georgia,13167,78,2 +2020-05-23,Johnson,Georgia,13167,76,2 +2020-05-24,Johnson,Georgia,13167,76,2 +2020-05-25,Johnson,Georgia,13167,81,2 +2020-05-26,Johnson,Georgia,13167,82,2 +2020-05-27,Johnson,Georgia,13167,82,2 +2020-05-28,Johnson,Georgia,13167,82,2 +2020-05-29,Johnson,Georgia,13167,82,2 +2020-05-30,Johnson,Georgia,13167,82,2 +2020-05-31,Johnson,Georgia,13167,82,2 +2020-06-01,Johnson,Georgia,13167,83,2 +2020-06-02,Johnson,Georgia,13167,83,2 +2020-06-03,Johnson,Georgia,13167,82,2 +2020-06-04,Johnson,Georgia,13167,83,2 +2020-06-05,Johnson,Georgia,13167,82,2 +2020-06-06,Johnson,Georgia,13167,82,2 +2020-06-07,Johnson,Georgia,13167,82,2 +2020-06-08,Johnson,Georgia,13167,83,2 +2020-06-09,Johnson,Georgia,13167,83,2 +2020-06-10,Johnson,Georgia,13167,83,2 +2020-06-11,Johnson,Georgia,13167,83,2 +2020-06-12,Johnson,Georgia,13167,77,2 +2020-06-13,Johnson,Georgia,13167,77,2 +2020-06-14,Johnson,Georgia,13167,77,2 +2020-06-15,Johnson,Georgia,13167,77,2 +2020-06-16,Johnson,Georgia,13167,78,2 +2020-06-17,Johnson,Georgia,13167,78,2 +2020-06-18,Johnson,Georgia,13167,78,2 +2020-06-19,Johnson,Georgia,13167,80,2 +2020-06-20,Johnson,Georgia,13167,80,2 +2020-06-21,Johnson,Georgia,13167,80,2 +2020-06-22,Johnson,Georgia,13167,80,2 +2020-06-23,Johnson,Georgia,13167,81,2 +2020-06-24,Johnson,Georgia,13167,82,2 +2020-06-25,Johnson,Georgia,13167,84,2 +2020-06-26,Johnson,Georgia,13167,84,2 +2020-06-27,Johnson,Georgia,13167,85,2 +2020-06-28,Johnson,Georgia,13167,87,2 +2020-06-29,Johnson,Georgia,13167,88,2 +2020-06-30,Johnson,Georgia,13167,90,2 +2020-07-01,Johnson,Georgia,13167,90,2 +2020-07-02,Johnson,Georgia,13167,92,2 +2020-07-03,Johnson,Georgia,13167,100,2 +2020-07-04,Johnson,Georgia,13167,102,2 +2020-07-05,Johnson,Georgia,13167,102,2 +2020-07-06,Johnson,Georgia,13167,105,2 +2020-07-07,Johnson,Georgia,13167,111,2 +2020-07-08,Johnson,Georgia,13167,112,2 +2020-07-09,Johnson,Georgia,13167,113,2 +2020-03-25,Jones,Georgia,13169,1,0 +2020-03-26,Jones,Georgia,13169,1,0 +2020-03-27,Jones,Georgia,13169,2,0 +2020-03-28,Jones,Georgia,13169,2,0 +2020-03-29,Jones,Georgia,13169,2,0 +2020-03-30,Jones,Georgia,13169,2,0 +2020-03-31,Jones,Georgia,13169,3,0 +2020-04-01,Jones,Georgia,13169,4,0 +2020-04-02,Jones,Georgia,13169,5,0 +2020-04-03,Jones,Georgia,13169,6,0 +2020-04-04,Jones,Georgia,13169,6,0 +2020-04-05,Jones,Georgia,13169,6,0 +2020-04-06,Jones,Georgia,13169,6,0 +2020-04-07,Jones,Georgia,13169,7,0 +2020-04-08,Jones,Georgia,13169,7,0 +2020-04-09,Jones,Georgia,13169,9,0 +2020-04-10,Jones,Georgia,13169,10,0 +2020-04-11,Jones,Georgia,13169,11,0 +2020-04-12,Jones,Georgia,13169,12,0 +2020-04-13,Jones,Georgia,13169,12,0 +2020-04-14,Jones,Georgia,13169,14,0 +2020-04-15,Jones,Georgia,13169,15,0 +2020-04-16,Jones,Georgia,13169,15,0 +2020-04-17,Jones,Georgia,13169,16,0 +2020-04-18,Jones,Georgia,13169,16,0 +2020-04-19,Jones,Georgia,13169,17,0 +2020-04-20,Jones,Georgia,13169,20,0 +2020-04-21,Jones,Georgia,13169,21,0 +2020-04-22,Jones,Georgia,13169,22,0 +2020-04-23,Jones,Georgia,13169,24,0 +2020-04-24,Jones,Georgia,13169,24,0 +2020-04-25,Jones,Georgia,13169,26,0 +2020-04-26,Jones,Georgia,13169,26,0 +2020-04-27,Jones,Georgia,13169,27,0 +2020-04-28,Jones,Georgia,13169,28,0 +2020-04-29,Jones,Georgia,13169,28,0 +2020-04-30,Jones,Georgia,13169,28,0 +2020-05-01,Jones,Georgia,13169,29,0 +2020-05-02,Jones,Georgia,13169,29,0 +2020-05-03,Jones,Georgia,13169,29,0 +2020-05-04,Jones,Georgia,13169,29,0 +2020-05-05,Jones,Georgia,13169,31,0 +2020-05-06,Jones,Georgia,13169,31,0 +2020-05-07,Jones,Georgia,13169,30,0 +2020-05-08,Jones,Georgia,13169,31,0 +2020-05-09,Jones,Georgia,13169,30,0 +2020-05-10,Jones,Georgia,13169,31,0 +2020-05-11,Jones,Georgia,13169,30,0 +2020-05-12,Jones,Georgia,13169,30,0 +2020-05-13,Jones,Georgia,13169,30,0 +2020-05-14,Jones,Georgia,13169,30,0 +2020-05-15,Jones,Georgia,13169,30,0 +2020-05-16,Jones,Georgia,13169,30,0 +2020-05-17,Jones,Georgia,13169,30,0 +2020-05-18,Jones,Georgia,13169,30,0 +2020-05-19,Jones,Georgia,13169,31,0 +2020-05-20,Jones,Georgia,13169,32,0 +2020-05-21,Jones,Georgia,13169,32,0 +2020-05-22,Jones,Georgia,13169,32,0 +2020-05-23,Jones,Georgia,13169,33,0 +2020-05-24,Jones,Georgia,13169,34,0 +2020-05-25,Jones,Georgia,13169,34,0 +2020-05-26,Jones,Georgia,13169,34,0 +2020-05-27,Jones,Georgia,13169,34,0 +2020-05-28,Jones,Georgia,13169,35,0 +2020-05-29,Jones,Georgia,13169,35,0 +2020-05-30,Jones,Georgia,13169,37,0 +2020-05-31,Jones,Georgia,13169,37,0 +2020-06-01,Jones,Georgia,13169,40,0 +2020-06-02,Jones,Georgia,13169,40,0 +2020-06-03,Jones,Georgia,13169,44,0 +2020-06-04,Jones,Georgia,13169,48,0 +2020-06-05,Jones,Georgia,13169,49,0 +2020-06-06,Jones,Georgia,13169,49,0 +2020-06-07,Jones,Georgia,13169,49,0 +2020-06-08,Jones,Georgia,13169,49,0 +2020-06-09,Jones,Georgia,13169,49,0 +2020-06-10,Jones,Georgia,13169,50,0 +2020-06-11,Jones,Georgia,13169,50,0 +2020-06-12,Jones,Georgia,13169,50,0 +2020-06-13,Jones,Georgia,13169,51,0 +2020-06-14,Jones,Georgia,13169,51,0 +2020-06-15,Jones,Georgia,13169,51,0 +2020-06-16,Jones,Georgia,13169,51,0 +2020-06-17,Jones,Georgia,13169,51,0 +2020-06-18,Jones,Georgia,13169,51,0 +2020-06-19,Jones,Georgia,13169,51,0 +2020-06-20,Jones,Georgia,13169,51,0 +2020-06-21,Jones,Georgia,13169,51,0 +2020-06-22,Jones,Georgia,13169,51,0 +2020-06-23,Jones,Georgia,13169,51,0 +2020-06-24,Jones,Georgia,13169,52,0 +2020-06-25,Jones,Georgia,13169,52,0 +2020-06-26,Jones,Georgia,13169,61,0 +2020-06-27,Jones,Georgia,13169,61,0 +2020-06-28,Jones,Georgia,13169,62,0 +2020-06-29,Jones,Georgia,13169,62,0 +2020-06-30,Jones,Georgia,13169,73,0 +2020-07-01,Jones,Georgia,13169,77,0 +2020-07-02,Jones,Georgia,13169,95,0 +2020-07-03,Jones,Georgia,13169,98,0 +2020-07-04,Jones,Georgia,13169,101,0 +2020-07-05,Jones,Georgia,13169,103,0 +2020-07-06,Jones,Georgia,13169,104,0 +2020-07-07,Jones,Georgia,13169,114,0 +2020-07-08,Jones,Georgia,13169,123,0 +2020-07-09,Jones,Georgia,13169,130,0 +2020-03-20,Lamar,Georgia,13171,1,0 +2020-03-21,Lamar,Georgia,13171,1,0 +2020-03-22,Lamar,Georgia,13171,3,0 +2020-03-23,Lamar,Georgia,13171,3,0 +2020-03-24,Lamar,Georgia,13171,3,0 +2020-03-25,Lamar,Georgia,13171,3,0 +2020-03-26,Lamar,Georgia,13171,3,0 +2020-03-27,Lamar,Georgia,13171,3,0 +2020-03-28,Lamar,Georgia,13171,3,0 +2020-03-29,Lamar,Georgia,13171,3,0 +2020-03-30,Lamar,Georgia,13171,3,0 +2020-03-31,Lamar,Georgia,13171,3,0 +2020-04-01,Lamar,Georgia,13171,4,0 +2020-04-02,Lamar,Georgia,13171,6,0 +2020-04-03,Lamar,Georgia,13171,6,0 +2020-04-04,Lamar,Georgia,13171,7,0 +2020-04-05,Lamar,Georgia,13171,7,0 +2020-04-06,Lamar,Georgia,13171,15,0 +2020-04-07,Lamar,Georgia,13171,15,0 +2020-04-08,Lamar,Georgia,13171,15,0 +2020-04-09,Lamar,Georgia,13171,15,0 +2020-04-10,Lamar,Georgia,13171,15,0 +2020-04-11,Lamar,Georgia,13171,15,0 +2020-04-12,Lamar,Georgia,13171,17,0 +2020-04-13,Lamar,Georgia,13171,18,0 +2020-04-14,Lamar,Georgia,13171,20,0 +2020-04-15,Lamar,Georgia,13171,21,0 +2020-04-16,Lamar,Georgia,13171,21,0 +2020-04-17,Lamar,Georgia,13171,22,0 +2020-04-18,Lamar,Georgia,13171,24,0 +2020-04-19,Lamar,Georgia,13171,25,0 +2020-04-20,Lamar,Georgia,13171,27,0 +2020-04-21,Lamar,Georgia,13171,29,0 +2020-04-22,Lamar,Georgia,13171,28,0 +2020-04-23,Lamar,Georgia,13171,31,0 +2020-04-24,Lamar,Georgia,13171,31,0 +2020-04-25,Lamar,Georgia,13171,33,0 +2020-04-26,Lamar,Georgia,13171,33,0 +2020-04-27,Lamar,Georgia,13171,34,0 +2020-04-28,Lamar,Georgia,13171,35,2 +2020-04-29,Lamar,Georgia,13171,37,2 +2020-04-30,Lamar,Georgia,13171,38,1 +2020-05-01,Lamar,Georgia,13171,39,1 +2020-05-02,Lamar,Georgia,13171,40,1 +2020-05-03,Lamar,Georgia,13171,40,1 +2020-05-04,Lamar,Georgia,13171,39,1 +2020-05-05,Lamar,Georgia,13171,39,1 +2020-05-06,Lamar,Georgia,13171,39,1 +2020-05-07,Lamar,Georgia,13171,38,1 +2020-05-08,Lamar,Georgia,13171,39,1 +2020-05-09,Lamar,Georgia,13171,39,1 +2020-05-10,Lamar,Georgia,13171,40,1 +2020-05-11,Lamar,Georgia,13171,40,1 +2020-05-12,Lamar,Georgia,13171,40,1 +2020-05-13,Lamar,Georgia,13171,40,1 +2020-05-14,Lamar,Georgia,13171,41,1 +2020-05-15,Lamar,Georgia,13171,41,1 +2020-05-16,Lamar,Georgia,13171,41,1 +2020-05-17,Lamar,Georgia,13171,41,1 +2020-05-18,Lamar,Georgia,13171,41,1 +2020-05-19,Lamar,Georgia,13171,44,1 +2020-05-20,Lamar,Georgia,13171,44,1 +2020-05-21,Lamar,Georgia,13171,46,1 +2020-05-22,Lamar,Georgia,13171,50,1 +2020-05-23,Lamar,Georgia,13171,50,1 +2020-05-24,Lamar,Georgia,13171,51,1 +2020-05-25,Lamar,Georgia,13171,53,1 +2020-05-26,Lamar,Georgia,13171,57,1 +2020-05-27,Lamar,Georgia,13171,60,1 +2020-05-28,Lamar,Georgia,13171,66,1 +2020-05-29,Lamar,Georgia,13171,67,1 +2020-05-30,Lamar,Georgia,13171,67,2 +2020-05-31,Lamar,Georgia,13171,67,2 +2020-06-01,Lamar,Georgia,13171,71,2 +2020-06-02,Lamar,Georgia,13171,71,2 +2020-06-03,Lamar,Georgia,13171,73,2 +2020-06-04,Lamar,Georgia,13171,75,2 +2020-06-05,Lamar,Georgia,13171,76,3 +2020-06-06,Lamar,Georgia,13171,76,3 +2020-06-07,Lamar,Georgia,13171,76,3 +2020-06-08,Lamar,Georgia,13171,76,3 +2020-06-09,Lamar,Georgia,13171,76,4 +2020-06-10,Lamar,Georgia,13171,78,5 +2020-06-11,Lamar,Georgia,13171,79,5 +2020-06-12,Lamar,Georgia,13171,79,5 +2020-06-13,Lamar,Georgia,13171,79,5 +2020-06-14,Lamar,Georgia,13171,79,5 +2020-06-15,Lamar,Georgia,13171,79,5 +2020-06-16,Lamar,Georgia,13171,79,5 +2020-06-17,Lamar,Georgia,13171,84,5 +2020-06-18,Lamar,Georgia,13171,85,5 +2020-06-19,Lamar,Georgia,13171,86,5 +2020-06-20,Lamar,Georgia,13171,87,6 +2020-06-21,Lamar,Georgia,13171,87,6 +2020-06-22,Lamar,Georgia,13171,91,6 +2020-06-23,Lamar,Georgia,13171,95,6 +2020-06-24,Lamar,Georgia,13171,102,6 +2020-06-25,Lamar,Georgia,13171,107,6 +2020-06-26,Lamar,Georgia,13171,107,6 +2020-06-27,Lamar,Georgia,13171,110,6 +2020-06-28,Lamar,Georgia,13171,112,6 +2020-06-29,Lamar,Georgia,13171,112,6 +2020-06-30,Lamar,Georgia,13171,115,6 +2020-07-01,Lamar,Georgia,13171,121,6 +2020-07-02,Lamar,Georgia,13171,125,6 +2020-07-03,Lamar,Georgia,13171,128,6 +2020-07-04,Lamar,Georgia,13171,130,6 +2020-07-05,Lamar,Georgia,13171,130,6 +2020-07-06,Lamar,Georgia,13171,133,6 +2020-07-07,Lamar,Georgia,13171,136,6 +2020-07-08,Lamar,Georgia,13171,139,6 +2020-07-09,Lamar,Georgia,13171,140,6 +2020-04-01,Lanier,Georgia,13173,1,0 +2020-04-02,Lanier,Georgia,13173,1,0 +2020-04-03,Lanier,Georgia,13173,1,0 +2020-04-04,Lanier,Georgia,13173,1,0 +2020-04-05,Lanier,Georgia,13173,1,0 +2020-04-06,Lanier,Georgia,13173,5,0 +2020-04-07,Lanier,Georgia,13173,5,0 +2020-04-08,Lanier,Georgia,13173,5,0 +2020-04-09,Lanier,Georgia,13173,5,0 +2020-04-10,Lanier,Georgia,13173,5,0 +2020-04-11,Lanier,Georgia,13173,5,0 +2020-04-12,Lanier,Georgia,13173,5,0 +2020-04-13,Lanier,Georgia,13173,5,0 +2020-04-14,Lanier,Georgia,13173,5,1 +2020-04-15,Lanier,Georgia,13173,5,1 +2020-04-16,Lanier,Georgia,13173,6,1 +2020-04-17,Lanier,Georgia,13173,6,1 +2020-04-18,Lanier,Georgia,13173,6,1 +2020-04-19,Lanier,Georgia,13173,6,1 +2020-04-20,Lanier,Georgia,13173,7,1 +2020-04-21,Lanier,Georgia,13173,7,1 +2020-04-22,Lanier,Georgia,13173,7,1 +2020-04-23,Lanier,Georgia,13173,7,1 +2020-04-24,Lanier,Georgia,13173,8,1 +2020-04-25,Lanier,Georgia,13173,8,1 +2020-04-26,Lanier,Georgia,13173,8,1 +2020-04-27,Lanier,Georgia,13173,8,1 +2020-04-28,Lanier,Georgia,13173,8,1 +2020-04-29,Lanier,Georgia,13173,8,1 +2020-04-30,Lanier,Georgia,13173,8,1 +2020-05-01,Lanier,Georgia,13173,9,1 +2020-05-02,Lanier,Georgia,13173,9,1 +2020-05-03,Lanier,Georgia,13173,9,1 +2020-05-04,Lanier,Georgia,13173,10,1 +2020-05-05,Lanier,Georgia,13173,10,1 +2020-05-06,Lanier,Georgia,13173,10,1 +2020-05-07,Lanier,Georgia,13173,10,1 +2020-05-08,Lanier,Georgia,13173,10,2 +2020-05-09,Lanier,Georgia,13173,10,2 +2020-05-10,Lanier,Georgia,13173,11,2 +2020-05-11,Lanier,Georgia,13173,11,2 +2020-05-12,Lanier,Georgia,13173,11,2 +2020-05-13,Lanier,Georgia,13173,11,2 +2020-05-14,Lanier,Georgia,13173,11,2 +2020-05-15,Lanier,Georgia,13173,12,2 +2020-05-16,Lanier,Georgia,13173,12,2 +2020-05-17,Lanier,Georgia,13173,12,3 +2020-05-18,Lanier,Georgia,13173,11,2 +2020-05-19,Lanier,Georgia,13173,11,2 +2020-05-20,Lanier,Georgia,13173,12,2 +2020-05-21,Lanier,Georgia,13173,12,2 +2020-05-22,Lanier,Georgia,13173,12,2 +2020-05-23,Lanier,Georgia,13173,12,2 +2020-05-24,Lanier,Georgia,13173,12,2 +2020-05-25,Lanier,Georgia,13173,14,2 +2020-05-26,Lanier,Georgia,13173,16,2 +2020-05-27,Lanier,Georgia,13173,20,2 +2020-05-28,Lanier,Georgia,13173,20,2 +2020-05-29,Lanier,Georgia,13173,21,2 +2020-05-30,Lanier,Georgia,13173,21,2 +2020-05-31,Lanier,Georgia,13173,21,2 +2020-06-01,Lanier,Georgia,13173,25,2 +2020-06-02,Lanier,Georgia,13173,25,2 +2020-06-03,Lanier,Georgia,13173,24,2 +2020-06-04,Lanier,Georgia,13173,27,2 +2020-06-05,Lanier,Georgia,13173,27,2 +2020-06-06,Lanier,Georgia,13173,32,2 +2020-06-07,Lanier,Georgia,13173,32,2 +2020-06-08,Lanier,Georgia,13173,32,2 +2020-06-09,Lanier,Georgia,13173,34,2 +2020-06-10,Lanier,Georgia,13173,36,2 +2020-06-11,Lanier,Georgia,13173,36,2 +2020-06-12,Lanier,Georgia,13173,37,2 +2020-06-13,Lanier,Georgia,13173,96,2 +2020-06-14,Lanier,Georgia,13173,98,2 +2020-06-15,Lanier,Georgia,13173,98,2 +2020-06-16,Lanier,Georgia,13173,98,2 +2020-06-17,Lanier,Georgia,13173,102,2 +2020-06-18,Lanier,Georgia,13173,108,2 +2020-06-19,Lanier,Georgia,13173,111,2 +2020-06-20,Lanier,Georgia,13173,112,2 +2020-06-21,Lanier,Georgia,13173,114,2 +2020-06-22,Lanier,Georgia,13173,116,2 +2020-06-23,Lanier,Georgia,13173,116,3 +2020-06-24,Lanier,Georgia,13173,118,3 +2020-06-25,Lanier,Georgia,13173,122,3 +2020-06-26,Lanier,Georgia,13173,124,3 +2020-06-27,Lanier,Georgia,13173,127,3 +2020-06-28,Lanier,Georgia,13173,129,3 +2020-06-29,Lanier,Georgia,13173,129,3 +2020-06-30,Lanier,Georgia,13173,132,3 +2020-07-01,Lanier,Georgia,13173,137,3 +2020-07-02,Lanier,Georgia,13173,145,3 +2020-07-03,Lanier,Georgia,13173,145,3 +2020-07-04,Lanier,Georgia,13173,146,3 +2020-07-05,Lanier,Georgia,13173,152,3 +2020-07-06,Lanier,Georgia,13173,152,3 +2020-07-07,Lanier,Georgia,13173,153,3 +2020-07-08,Lanier,Georgia,13173,153,3 +2020-07-09,Lanier,Georgia,13173,160,3 +2020-03-19,Laurens,Georgia,13175,2,0 +2020-03-20,Laurens,Georgia,13175,2,0 +2020-03-21,Laurens,Georgia,13175,2,0 +2020-03-22,Laurens,Georgia,13175,2,0 +2020-03-23,Laurens,Georgia,13175,2,0 +2020-03-24,Laurens,Georgia,13175,6,0 +2020-03-25,Laurens,Georgia,13175,7,0 +2020-03-26,Laurens,Georgia,13175,8,0 +2020-03-27,Laurens,Georgia,13175,7,0 +2020-03-28,Laurens,Georgia,13175,9,0 +2020-03-29,Laurens,Georgia,13175,12,0 +2020-03-30,Laurens,Georgia,13175,13,0 +2020-03-31,Laurens,Georgia,13175,13,0 +2020-04-01,Laurens,Georgia,13175,14,0 +2020-04-02,Laurens,Georgia,13175,14,0 +2020-04-03,Laurens,Georgia,13175,15,0 +2020-04-04,Laurens,Georgia,13175,15,0 +2020-04-05,Laurens,Georgia,13175,15,0 +2020-04-06,Laurens,Georgia,13175,17,0 +2020-04-07,Laurens,Georgia,13175,24,0 +2020-04-08,Laurens,Georgia,13175,27,0 +2020-04-09,Laurens,Georgia,13175,27,0 +2020-04-10,Laurens,Georgia,13175,29,1 +2020-04-11,Laurens,Georgia,13175,31,1 +2020-04-12,Laurens,Georgia,13175,34,1 +2020-04-13,Laurens,Georgia,13175,35,1 +2020-04-14,Laurens,Georgia,13175,35,1 +2020-04-15,Laurens,Georgia,13175,35,1 +2020-04-16,Laurens,Georgia,13175,38,1 +2020-04-17,Laurens,Georgia,13175,39,1 +2020-04-18,Laurens,Georgia,13175,41,1 +2020-04-19,Laurens,Georgia,13175,43,1 +2020-04-20,Laurens,Georgia,13175,43,1 +2020-04-21,Laurens,Georgia,13175,43,1 +2020-04-22,Laurens,Georgia,13175,44,1 +2020-04-23,Laurens,Georgia,13175,46,1 +2020-04-24,Laurens,Georgia,13175,50,1 +2020-04-25,Laurens,Georgia,13175,52,1 +2020-04-26,Laurens,Georgia,13175,52,1 +2020-04-27,Laurens,Georgia,13175,54,1 +2020-04-28,Laurens,Georgia,13175,54,1 +2020-04-29,Laurens,Georgia,13175,54,1 +2020-04-30,Laurens,Georgia,13175,60,1 +2020-05-01,Laurens,Georgia,13175,62,1 +2020-05-02,Laurens,Georgia,13175,64,1 +2020-05-03,Laurens,Georgia,13175,64,1 +2020-05-04,Laurens,Georgia,13175,67,1 +2020-05-05,Laurens,Georgia,13175,68,1 +2020-05-06,Laurens,Georgia,13175,70,1 +2020-05-07,Laurens,Georgia,13175,72,1 +2020-05-08,Laurens,Georgia,13175,77,1 +2020-05-09,Laurens,Georgia,13175,80,1 +2020-05-10,Laurens,Georgia,13175,80,1 +2020-05-11,Laurens,Georgia,13175,82,1 +2020-05-12,Laurens,Georgia,13175,82,1 +2020-05-13,Laurens,Georgia,13175,85,1 +2020-05-14,Laurens,Georgia,13175,86,1 +2020-05-15,Laurens,Georgia,13175,87,1 +2020-05-16,Laurens,Georgia,13175,94,1 +2020-05-17,Laurens,Georgia,13175,94,1 +2020-05-18,Laurens,Georgia,13175,95,1 +2020-05-19,Laurens,Georgia,13175,98,1 +2020-05-20,Laurens,Georgia,13175,94,1 +2020-05-21,Laurens,Georgia,13175,95,1 +2020-05-22,Laurens,Georgia,13175,96,1 +2020-05-23,Laurens,Georgia,13175,100,1 +2020-05-24,Laurens,Georgia,13175,101,1 +2020-05-25,Laurens,Georgia,13175,104,1 +2020-05-26,Laurens,Georgia,13175,105,1 +2020-05-27,Laurens,Georgia,13175,104,1 +2020-05-28,Laurens,Georgia,13175,104,1 +2020-05-29,Laurens,Georgia,13175,103,1 +2020-05-30,Laurens,Georgia,13175,105,1 +2020-05-31,Laurens,Georgia,13175,106,1 +2020-06-01,Laurens,Georgia,13175,108,1 +2020-06-02,Laurens,Georgia,13175,108,1 +2020-06-03,Laurens,Georgia,13175,108,1 +2020-06-04,Laurens,Georgia,13175,108,1 +2020-06-05,Laurens,Georgia,13175,108,1 +2020-06-06,Laurens,Georgia,13175,109,1 +2020-06-07,Laurens,Georgia,13175,109,1 +2020-06-08,Laurens,Georgia,13175,112,1 +2020-06-09,Laurens,Georgia,13175,116,1 +2020-06-10,Laurens,Georgia,13175,116,1 +2020-06-11,Laurens,Georgia,13175,116,1 +2020-06-12,Laurens,Georgia,13175,113,1 +2020-06-13,Laurens,Georgia,13175,117,1 +2020-06-14,Laurens,Georgia,13175,117,1 +2020-06-15,Laurens,Georgia,13175,118,1 +2020-06-16,Laurens,Georgia,13175,118,1 +2020-06-17,Laurens,Georgia,13175,121,1 +2020-06-18,Laurens,Georgia,13175,125,1 +2020-06-19,Laurens,Georgia,13175,129,1 +2020-06-20,Laurens,Georgia,13175,131,1 +2020-06-21,Laurens,Georgia,13175,131,1 +2020-06-22,Laurens,Georgia,13175,133,1 +2020-06-23,Laurens,Georgia,13175,134,0 +2020-06-24,Laurens,Georgia,13175,140,0 +2020-06-25,Laurens,Georgia,13175,146,1 +2020-06-26,Laurens,Georgia,13175,147,1 +2020-06-27,Laurens,Georgia,13175,151,1 +2020-06-28,Laurens,Georgia,13175,156,1 +2020-06-29,Laurens,Georgia,13175,158,1 +2020-06-30,Laurens,Georgia,13175,167,1 +2020-07-01,Laurens,Georgia,13175,177,1 +2020-07-02,Laurens,Georgia,13175,202,1 +2020-07-03,Laurens,Georgia,13175,209,1 +2020-07-04,Laurens,Georgia,13175,220,1 +2020-07-05,Laurens,Georgia,13175,225,1 +2020-07-06,Laurens,Georgia,13175,231,1 +2020-07-07,Laurens,Georgia,13175,261,1 +2020-07-08,Laurens,Georgia,13175,279,1 +2020-07-09,Laurens,Georgia,13175,297,1 +2020-03-11,Lee,Georgia,13177,1,0 +2020-03-12,Lee,Georgia,13177,1,0 +2020-03-13,Lee,Georgia,13177,1,0 +2020-03-14,Lee,Georgia,13177,1,0 +2020-03-15,Lee,Georgia,13177,2,0 +2020-03-16,Lee,Georgia,13177,2,0 +2020-03-17,Lee,Georgia,13177,2,0 +2020-03-18,Lee,Georgia,13177,2,0 +2020-03-19,Lee,Georgia,13177,4,0 +2020-03-20,Lee,Georgia,13177,13,0 +2020-03-21,Lee,Georgia,13177,14,0 +2020-03-22,Lee,Georgia,13177,16,0 +2020-03-23,Lee,Georgia,13177,19,0 +2020-03-24,Lee,Georgia,13177,24,1 +2020-03-25,Lee,Georgia,13177,25,1 +2020-03-26,Lee,Georgia,13177,30,1 +2020-03-27,Lee,Georgia,13177,37,1 +2020-03-28,Lee,Georgia,13177,39,6 +2020-03-29,Lee,Georgia,13177,43,6 +2020-03-30,Lee,Georgia,13177,44,6 +2020-03-31,Lee,Georgia,13177,90,7 +2020-04-01,Lee,Georgia,13177,94,7 +2020-04-02,Lee,Georgia,13177,104,7 +2020-04-03,Lee,Georgia,13177,123,8 +2020-04-04,Lee,Georgia,13177,134,8 +2020-04-05,Lee,Georgia,13177,138,9 +2020-04-06,Lee,Georgia,13177,148,13 +2020-04-07,Lee,Georgia,13177,204,15 +2020-04-08,Lee,Georgia,13177,210,14 +2020-04-09,Lee,Georgia,13177,217,15 +2020-04-10,Lee,Georgia,13177,230,15 +2020-04-11,Lee,Georgia,13177,236,15 +2020-04-12,Lee,Georgia,13177,244,15 +2020-04-13,Lee,Georgia,13177,255,15 +2020-04-14,Lee,Georgia,13177,258,15 +2020-04-15,Lee,Georgia,13177,264,15 +2020-04-16,Lee,Georgia,13177,267,15 +2020-04-17,Lee,Georgia,13177,269,15 +2020-04-18,Lee,Georgia,13177,272,15 +2020-04-19,Lee,Georgia,13177,274,15 +2020-04-20,Lee,Georgia,13177,276,16 +2020-04-21,Lee,Georgia,13177,277,17 +2020-04-22,Lee,Georgia,13177,294,17 +2020-04-23,Lee,Georgia,13177,298,19 +2020-04-24,Lee,Georgia,13177,297,18 +2020-04-25,Lee,Georgia,13177,299,18 +2020-04-26,Lee,Georgia,13177,302,18 +2020-04-27,Lee,Georgia,13177,307,19 +2020-04-28,Lee,Georgia,13177,312,19 +2020-04-29,Lee,Georgia,13177,314,20 +2020-04-30,Lee,Georgia,13177,319,20 +2020-05-01,Lee,Georgia,13177,322,20 +2020-05-02,Lee,Georgia,13177,327,20 +2020-05-03,Lee,Georgia,13177,328,20 +2020-05-04,Lee,Georgia,13177,329,20 +2020-05-05,Lee,Georgia,13177,333,22 +2020-05-06,Lee,Georgia,13177,338,22 +2020-05-07,Lee,Georgia,13177,339,22 +2020-05-08,Lee,Georgia,13177,339,22 +2020-05-09,Lee,Georgia,13177,339,22 +2020-05-10,Lee,Georgia,13177,340,22 +2020-05-11,Lee,Georgia,13177,340,22 +2020-05-12,Lee,Georgia,13177,343,22 +2020-05-13,Lee,Georgia,13177,343,22 +2020-05-14,Lee,Georgia,13177,343,22 +2020-05-15,Lee,Georgia,13177,344,23 +2020-05-16,Lee,Georgia,13177,344,23 +2020-05-17,Lee,Georgia,13177,342,23 +2020-05-18,Lee,Georgia,13177,341,23 +2020-05-19,Lee,Georgia,13177,343,23 +2020-05-20,Lee,Georgia,13177,345,23 +2020-05-21,Lee,Georgia,13177,340,22 +2020-05-22,Lee,Georgia,13177,342,22 +2020-05-23,Lee,Georgia,13177,342,22 +2020-05-24,Lee,Georgia,13177,343,22 +2020-05-25,Lee,Georgia,13177,354,22 +2020-05-26,Lee,Georgia,13177,362,22 +2020-05-27,Lee,Georgia,13177,363,23 +2020-05-28,Lee,Georgia,13177,361,22 +2020-05-29,Lee,Georgia,13177,361,22 +2020-05-30,Lee,Georgia,13177,361,22 +2020-05-31,Lee,Georgia,13177,361,22 +2020-06-01,Lee,Georgia,13177,361,22 +2020-06-02,Lee,Georgia,13177,361,22 +2020-06-03,Lee,Georgia,13177,361,22 +2020-06-04,Lee,Georgia,13177,361,22 +2020-06-05,Lee,Georgia,13177,361,22 +2020-06-06,Lee,Georgia,13177,365,22 +2020-06-07,Lee,Georgia,13177,366,22 +2020-06-08,Lee,Georgia,13177,367,22 +2020-06-09,Lee,Georgia,13177,368,22 +2020-06-10,Lee,Georgia,13177,369,22 +2020-06-11,Lee,Georgia,13177,370,22 +2020-06-12,Lee,Georgia,13177,371,22 +2020-06-13,Lee,Georgia,13177,372,22 +2020-06-14,Lee,Georgia,13177,372,22 +2020-06-15,Lee,Georgia,13177,374,22 +2020-06-16,Lee,Georgia,13177,374,22 +2020-06-17,Lee,Georgia,13177,372,22 +2020-06-18,Lee,Georgia,13177,374,22 +2020-06-19,Lee,Georgia,13177,377,22 +2020-06-20,Lee,Georgia,13177,377,22 +2020-06-21,Lee,Georgia,13177,378,22 +2020-06-22,Lee,Georgia,13177,381,22 +2020-06-23,Lee,Georgia,13177,385,22 +2020-06-24,Lee,Georgia,13177,386,22 +2020-06-25,Lee,Georgia,13177,386,22 +2020-06-26,Lee,Georgia,13177,386,22 +2020-06-27,Lee,Georgia,13177,385,22 +2020-06-28,Lee,Georgia,13177,385,22 +2020-06-29,Lee,Georgia,13177,385,22 +2020-06-30,Lee,Georgia,13177,388,22 +2020-07-01,Lee,Georgia,13177,390,22 +2020-07-02,Lee,Georgia,13177,393,22 +2020-07-03,Lee,Georgia,13177,397,22 +2020-07-04,Lee,Georgia,13177,398,22 +2020-07-05,Lee,Georgia,13177,402,22 +2020-07-06,Lee,Georgia,13177,405,22 +2020-07-07,Lee,Georgia,13177,410,22 +2020-07-08,Lee,Georgia,13177,413,22 +2020-07-09,Lee,Georgia,13177,414,22 +2020-03-23,Liberty,Georgia,13179,1,0 +2020-03-24,Liberty,Georgia,13179,1,0 +2020-03-25,Liberty,Georgia,13179,1,0 +2020-03-26,Liberty,Georgia,13179,1,0 +2020-03-27,Liberty,Georgia,13179,1,0 +2020-03-28,Liberty,Georgia,13179,3,0 +2020-03-29,Liberty,Georgia,13179,3,0 +2020-03-30,Liberty,Georgia,13179,4,0 +2020-03-31,Liberty,Georgia,13179,5,0 +2020-04-01,Liberty,Georgia,13179,7,0 +2020-04-02,Liberty,Georgia,13179,7,0 +2020-04-03,Liberty,Georgia,13179,9,0 +2020-04-04,Liberty,Georgia,13179,10,0 +2020-04-05,Liberty,Georgia,13179,13,0 +2020-04-06,Liberty,Georgia,13179,12,0 +2020-04-07,Liberty,Georgia,13179,13,0 +2020-04-08,Liberty,Georgia,13179,13,0 +2020-04-09,Liberty,Georgia,13179,14,0 +2020-04-10,Liberty,Georgia,13179,16,0 +2020-04-11,Liberty,Georgia,13179,16,0 +2020-04-12,Liberty,Georgia,13179,17,0 +2020-04-13,Liberty,Georgia,13179,20,0 +2020-04-14,Liberty,Georgia,13179,21,0 +2020-04-15,Liberty,Georgia,13179,26,0 +2020-04-16,Liberty,Georgia,13179,26,0 +2020-04-17,Liberty,Georgia,13179,32,0 +2020-04-18,Liberty,Georgia,13179,32,0 +2020-04-19,Liberty,Georgia,13179,32,0 +2020-04-20,Liberty,Georgia,13179,34,0 +2020-04-21,Liberty,Georgia,13179,34,0 +2020-04-22,Liberty,Georgia,13179,34,0 +2020-04-23,Liberty,Georgia,13179,35,0 +2020-04-24,Liberty,Georgia,13179,35,0 +2020-04-25,Liberty,Georgia,13179,35,0 +2020-04-26,Liberty,Georgia,13179,35,0 +2020-04-27,Liberty,Georgia,13179,35,0 +2020-04-28,Liberty,Georgia,13179,37,0 +2020-04-29,Liberty,Georgia,13179,36,0 +2020-04-30,Liberty,Georgia,13179,37,0 +2020-05-01,Liberty,Georgia,13179,37,0 +2020-05-02,Liberty,Georgia,13179,37,0 +2020-05-03,Liberty,Georgia,13179,38,0 +2020-05-04,Liberty,Georgia,13179,37,0 +2020-05-05,Liberty,Georgia,13179,37,0 +2020-05-06,Liberty,Georgia,13179,39,0 +2020-05-07,Liberty,Georgia,13179,41,0 +2020-05-08,Liberty,Georgia,13179,43,0 +2020-05-09,Liberty,Georgia,13179,43,0 +2020-05-10,Liberty,Georgia,13179,44,0 +2020-05-11,Liberty,Georgia,13179,44,0 +2020-05-12,Liberty,Georgia,13179,44,0 +2020-05-13,Liberty,Georgia,13179,45,0 +2020-05-14,Liberty,Georgia,13179,45,0 +2020-05-15,Liberty,Georgia,13179,45,0 +2020-05-16,Liberty,Georgia,13179,46,0 +2020-05-17,Liberty,Georgia,13179,46,0 +2020-05-18,Liberty,Georgia,13179,47,0 +2020-05-19,Liberty,Georgia,13179,47,0 +2020-05-20,Liberty,Georgia,13179,47,0 +2020-05-21,Liberty,Georgia,13179,60,0 +2020-05-22,Liberty,Georgia,13179,63,0 +2020-05-23,Liberty,Georgia,13179,64,0 +2020-05-24,Liberty,Georgia,13179,65,0 +2020-05-25,Liberty,Georgia,13179,67,0 +2020-05-26,Liberty,Georgia,13179,68,0 +2020-05-27,Liberty,Georgia,13179,70,0 +2020-05-28,Liberty,Georgia,13179,72,0 +2020-05-29,Liberty,Georgia,13179,81,0 +2020-05-30,Liberty,Georgia,13179,82,0 +2020-05-31,Liberty,Georgia,13179,82,0 +2020-06-01,Liberty,Georgia,13179,82,0 +2020-06-02,Liberty,Georgia,13179,82,1 +2020-06-03,Liberty,Georgia,13179,83,1 +2020-06-04,Liberty,Georgia,13179,85,1 +2020-06-05,Liberty,Georgia,13179,87,1 +2020-06-06,Liberty,Georgia,13179,87,1 +2020-06-07,Liberty,Georgia,13179,87,1 +2020-06-08,Liberty,Georgia,13179,87,1 +2020-06-09,Liberty,Georgia,13179,86,1 +2020-06-10,Liberty,Georgia,13179,86,1 +2020-06-11,Liberty,Georgia,13179,86,1 +2020-06-12,Liberty,Georgia,13179,90,1 +2020-06-13,Liberty,Georgia,13179,95,1 +2020-06-14,Liberty,Georgia,13179,95,1 +2020-06-15,Liberty,Georgia,13179,95,1 +2020-06-16,Liberty,Georgia,13179,96,1 +2020-06-17,Liberty,Georgia,13179,97,1 +2020-06-18,Liberty,Georgia,13179,98,1 +2020-06-19,Liberty,Georgia,13179,100,1 +2020-06-20,Liberty,Georgia,13179,100,1 +2020-06-21,Liberty,Georgia,13179,101,1 +2020-06-22,Liberty,Georgia,13179,102,1 +2020-06-23,Liberty,Georgia,13179,110,1 +2020-06-24,Liberty,Georgia,13179,112,1 +2020-06-25,Liberty,Georgia,13179,112,1 +2020-06-26,Liberty,Georgia,13179,112,1 +2020-06-27,Liberty,Georgia,13179,114,1 +2020-06-28,Liberty,Georgia,13179,114,1 +2020-06-29,Liberty,Georgia,13179,114,1 +2020-06-30,Liberty,Georgia,13179,121,1 +2020-07-01,Liberty,Georgia,13179,127,1 +2020-07-02,Liberty,Georgia,13179,131,1 +2020-07-03,Liberty,Georgia,13179,139,1 +2020-07-04,Liberty,Georgia,13179,146,1 +2020-07-05,Liberty,Georgia,13179,157,1 +2020-07-06,Liberty,Georgia,13179,161,1 +2020-07-07,Liberty,Georgia,13179,168,1 +2020-07-08,Liberty,Georgia,13179,171,1 +2020-07-09,Liberty,Georgia,13179,178,1 +2020-03-20,Lincoln,Georgia,13181,1,0 +2020-03-21,Lincoln,Georgia,13181,1,0 +2020-03-22,Lincoln,Georgia,13181,1,0 +2020-03-23,Lincoln,Georgia,13181,1,0 +2020-03-24,Lincoln,Georgia,13181,1,0 +2020-03-25,Lincoln,Georgia,13181,1,0 +2020-03-26,Lincoln,Georgia,13181,3,0 +2020-03-27,Lincoln,Georgia,13181,3,0 +2020-03-28,Lincoln,Georgia,13181,3,0 +2020-03-29,Lincoln,Georgia,13181,3,0 +2020-03-30,Lincoln,Georgia,13181,4,0 +2020-03-31,Lincoln,Georgia,13181,4,0 +2020-04-01,Lincoln,Georgia,13181,4,0 +2020-04-02,Lincoln,Georgia,13181,5,0 +2020-04-03,Lincoln,Georgia,13181,5,0 +2020-04-04,Lincoln,Georgia,13181,5,0 +2020-04-05,Lincoln,Georgia,13181,5,0 +2020-04-06,Lincoln,Georgia,13181,5,0 +2020-04-07,Lincoln,Georgia,13181,6,0 +2020-04-08,Lincoln,Georgia,13181,6,0 +2020-04-09,Lincoln,Georgia,13181,6,0 +2020-04-10,Lincoln,Georgia,13181,7,0 +2020-04-11,Lincoln,Georgia,13181,8,0 +2020-04-12,Lincoln,Georgia,13181,9,0 +2020-04-13,Lincoln,Georgia,13181,9,0 +2020-04-14,Lincoln,Georgia,13181,9,0 +2020-04-15,Lincoln,Georgia,13181,9,0 +2020-04-16,Lincoln,Georgia,13181,9,0 +2020-04-17,Lincoln,Georgia,13181,9,0 +2020-04-18,Lincoln,Georgia,13181,9,0 +2020-04-19,Lincoln,Georgia,13181,9,0 +2020-04-20,Lincoln,Georgia,13181,9,0 +2020-04-21,Lincoln,Georgia,13181,10,0 +2020-04-22,Lincoln,Georgia,13181,10,0 +2020-04-23,Lincoln,Georgia,13181,10,0 +2020-04-24,Lincoln,Georgia,13181,10,0 +2020-04-25,Lincoln,Georgia,13181,10,0 +2020-04-26,Lincoln,Georgia,13181,10,0 +2020-04-27,Lincoln,Georgia,13181,10,0 +2020-04-28,Lincoln,Georgia,13181,12,0 +2020-04-29,Lincoln,Georgia,13181,12,0 +2020-04-30,Lincoln,Georgia,13181,12,0 +2020-05-01,Lincoln,Georgia,13181,12,0 +2020-05-02,Lincoln,Georgia,13181,12,0 +2020-05-03,Lincoln,Georgia,13181,12,0 +2020-05-04,Lincoln,Georgia,13181,12,0 +2020-05-05,Lincoln,Georgia,13181,12,0 +2020-05-06,Lincoln,Georgia,13181,12,0 +2020-05-07,Lincoln,Georgia,13181,12,0 +2020-05-08,Lincoln,Georgia,13181,12,0 +2020-05-09,Lincoln,Georgia,13181,12,0 +2020-05-10,Lincoln,Georgia,13181,12,0 +2020-05-11,Lincoln,Georgia,13181,12,0 +2020-05-12,Lincoln,Georgia,13181,12,0 +2020-05-13,Lincoln,Georgia,13181,12,0 +2020-05-14,Lincoln,Georgia,13181,12,0 +2020-05-15,Lincoln,Georgia,13181,12,0 +2020-05-16,Lincoln,Georgia,13181,12,0 +2020-05-17,Lincoln,Georgia,13181,12,0 +2020-05-18,Lincoln,Georgia,13181,13,1 +2020-05-19,Lincoln,Georgia,13181,13,1 +2020-05-20,Lincoln,Georgia,13181,15,1 +2020-05-21,Lincoln,Georgia,13181,15,1 +2020-05-22,Lincoln,Georgia,13181,15,0 +2020-05-23,Lincoln,Georgia,13181,15,0 +2020-05-24,Lincoln,Georgia,13181,15,0 +2020-05-25,Lincoln,Georgia,13181,15,0 +2020-05-26,Lincoln,Georgia,13181,16,0 +2020-05-27,Lincoln,Georgia,13181,16,0 +2020-05-28,Lincoln,Georgia,13181,16,0 +2020-05-29,Lincoln,Georgia,13181,16,0 +2020-05-30,Lincoln,Georgia,13181,16,0 +2020-05-31,Lincoln,Georgia,13181,16,0 +2020-06-01,Lincoln,Georgia,13181,16,0 +2020-06-02,Lincoln,Georgia,13181,16,0 +2020-06-03,Lincoln,Georgia,13181,16,1 +2020-06-04,Lincoln,Georgia,13181,16,0 +2020-06-05,Lincoln,Georgia,13181,16,0 +2020-06-06,Lincoln,Georgia,13181,16,0 +2020-06-07,Lincoln,Georgia,13181,16,1 +2020-06-08,Lincoln,Georgia,13181,16,1 +2020-06-09,Lincoln,Georgia,13181,16,1 +2020-06-10,Lincoln,Georgia,13181,17,1 +2020-06-11,Lincoln,Georgia,13181,17,1 +2020-06-12,Lincoln,Georgia,13181,17,1 +2020-06-13,Lincoln,Georgia,13181,17,1 +2020-06-14,Lincoln,Georgia,13181,17,1 +2020-06-15,Lincoln,Georgia,13181,18,1 +2020-06-16,Lincoln,Georgia,13181,18,1 +2020-06-17,Lincoln,Georgia,13181,18,1 +2020-06-18,Lincoln,Georgia,13181,18,1 +2020-06-19,Lincoln,Georgia,13181,19,1 +2020-06-20,Lincoln,Georgia,13181,21,1 +2020-06-21,Lincoln,Georgia,13181,22,1 +2020-06-22,Lincoln,Georgia,13181,24,1 +2020-06-23,Lincoln,Georgia,13181,25,1 +2020-06-24,Lincoln,Georgia,13181,30,1 +2020-06-25,Lincoln,Georgia,13181,30,1 +2020-06-26,Lincoln,Georgia,13181,32,1 +2020-06-27,Lincoln,Georgia,13181,33,1 +2020-06-28,Lincoln,Georgia,13181,36,1 +2020-06-29,Lincoln,Georgia,13181,36,1 +2020-06-30,Lincoln,Georgia,13181,37,1 +2020-07-01,Lincoln,Georgia,13181,38,1 +2020-07-02,Lincoln,Georgia,13181,40,1 +2020-07-03,Lincoln,Georgia,13181,41,1 +2020-07-04,Lincoln,Georgia,13181,51,1 +2020-07-05,Lincoln,Georgia,13181,51,1 +2020-07-06,Lincoln,Georgia,13181,51,1 +2020-07-07,Lincoln,Georgia,13181,53,1 +2020-07-08,Lincoln,Georgia,13181,53,1 +2020-07-09,Lincoln,Georgia,13181,56,1 +2020-03-25,Long,Georgia,13183,1,0 +2020-03-26,Long,Georgia,13183,1,0 +2020-03-27,Long,Georgia,13183,1,0 +2020-03-28,Long,Georgia,13183,1,0 +2020-03-29,Long,Georgia,13183,1,0 +2020-03-30,Long,Georgia,13183,1,0 +2020-03-31,Long,Georgia,13183,1,0 +2020-04-01,Long,Georgia,13183,1,0 +2020-04-02,Long,Georgia,13183,1,0 +2020-04-03,Long,Georgia,13183,1,0 +2020-04-04,Long,Georgia,13183,1,0 +2020-04-05,Long,Georgia,13183,1,0 +2020-04-06,Long,Georgia,13183,1,0 +2020-04-07,Long,Georgia,13183,1,0 +2020-04-08,Long,Georgia,13183,1,0 +2020-04-09,Long,Georgia,13183,1,0 +2020-04-10,Long,Georgia,13183,1,0 +2020-04-11,Long,Georgia,13183,1,0 +2020-04-12,Long,Georgia,13183,1,0 +2020-04-13,Long,Georgia,13183,1,0 +2020-04-14,Long,Georgia,13183,2,0 +2020-04-15,Long,Georgia,13183,2,0 +2020-04-16,Long,Georgia,13183,2,0 +2020-04-17,Long,Georgia,13183,2,0 +2020-04-18,Long,Georgia,13183,2,0 +2020-04-19,Long,Georgia,13183,2,0 +2020-04-20,Long,Georgia,13183,2,0 +2020-04-21,Long,Georgia,13183,2,0 +2020-04-22,Long,Georgia,13183,2,0 +2020-04-23,Long,Georgia,13183,2,0 +2020-04-24,Long,Georgia,13183,2,0 +2020-04-25,Long,Georgia,13183,3,0 +2020-04-26,Long,Georgia,13183,3,0 +2020-04-27,Long,Georgia,13183,4,0 +2020-04-28,Long,Georgia,13183,4,0 +2020-04-29,Long,Georgia,13183,4,0 +2020-04-30,Long,Georgia,13183,5,0 +2020-05-01,Long,Georgia,13183,5,0 +2020-05-02,Long,Georgia,13183,5,0 +2020-05-03,Long,Georgia,13183,5,0 +2020-05-04,Long,Georgia,13183,5,0 +2020-05-05,Long,Georgia,13183,5,0 +2020-05-06,Long,Georgia,13183,5,0 +2020-05-07,Long,Georgia,13183,5,0 +2020-05-08,Long,Georgia,13183,5,0 +2020-05-09,Long,Georgia,13183,5,0 +2020-05-10,Long,Georgia,13183,5,0 +2020-05-11,Long,Georgia,13183,5,0 +2020-05-12,Long,Georgia,13183,5,0 +2020-05-13,Long,Georgia,13183,5,0 +2020-05-14,Long,Georgia,13183,5,0 +2020-05-15,Long,Georgia,13183,6,0 +2020-05-16,Long,Georgia,13183,6,0 +2020-05-17,Long,Georgia,13183,6,0 +2020-05-18,Long,Georgia,13183,6,0 +2020-05-19,Long,Georgia,13183,6,0 +2020-05-20,Long,Georgia,13183,6,0 +2020-05-21,Long,Georgia,13183,12,1 +2020-05-22,Long,Georgia,13183,12,1 +2020-05-23,Long,Georgia,13183,12,1 +2020-05-24,Long,Georgia,13183,12,1 +2020-05-25,Long,Georgia,13183,12,1 +2020-05-26,Long,Georgia,13183,12,1 +2020-05-27,Long,Georgia,13183,15,1 +2020-05-28,Long,Georgia,13183,15,1 +2020-05-29,Long,Georgia,13183,15,1 +2020-05-30,Long,Georgia,13183,16,1 +2020-05-31,Long,Georgia,13183,16,1 +2020-06-01,Long,Georgia,13183,16,1 +2020-06-02,Long,Georgia,13183,16,1 +2020-06-03,Long,Georgia,13183,16,1 +2020-06-04,Long,Georgia,13183,16,1 +2020-06-05,Long,Georgia,13183,16,1 +2020-06-06,Long,Georgia,13183,16,1 +2020-06-07,Long,Georgia,13183,16,1 +2020-06-08,Long,Georgia,13183,17,1 +2020-06-09,Long,Georgia,13183,17,1 +2020-06-10,Long,Georgia,13183,18,1 +2020-06-11,Long,Georgia,13183,19,1 +2020-06-12,Long,Georgia,13183,19,1 +2020-06-13,Long,Georgia,13183,23,1 +2020-06-14,Long,Georgia,13183,24,1 +2020-06-15,Long,Georgia,13183,24,1 +2020-06-16,Long,Georgia,13183,25,1 +2020-06-17,Long,Georgia,13183,27,1 +2020-06-18,Long,Georgia,13183,27,1 +2020-06-19,Long,Georgia,13183,28,1 +2020-06-20,Long,Georgia,13183,28,1 +2020-06-21,Long,Georgia,13183,29,1 +2020-06-22,Long,Georgia,13183,32,1 +2020-06-23,Long,Georgia,13183,35,1 +2020-06-24,Long,Georgia,13183,33,1 +2020-06-25,Long,Georgia,13183,33,1 +2020-06-26,Long,Georgia,13183,36,1 +2020-06-27,Long,Georgia,13183,36,1 +2020-06-28,Long,Georgia,13183,37,1 +2020-06-29,Long,Georgia,13183,37,1 +2020-06-30,Long,Georgia,13183,43,1 +2020-07-01,Long,Georgia,13183,46,1 +2020-07-02,Long,Georgia,13183,51,1 +2020-07-03,Long,Georgia,13183,51,1 +2020-07-04,Long,Georgia,13183,54,1 +2020-07-05,Long,Georgia,13183,57,1 +2020-07-06,Long,Georgia,13183,57,1 +2020-07-07,Long,Georgia,13183,57,1 +2020-07-08,Long,Georgia,13183,58,1 +2020-07-09,Long,Georgia,13183,59,1 +2020-03-11,Lowndes,Georgia,13185,1,0 +2020-03-12,Lowndes,Georgia,13185,1,0 +2020-03-13,Lowndes,Georgia,13185,1,0 +2020-03-14,Lowndes,Georgia,13185,1,0 +2020-03-15,Lowndes,Georgia,13185,2,0 +2020-03-16,Lowndes,Georgia,13185,3,0 +2020-03-17,Lowndes,Georgia,13185,4,0 +2020-03-18,Lowndes,Georgia,13185,5,0 +2020-03-19,Lowndes,Georgia,13185,6,0 +2020-03-20,Lowndes,Georgia,13185,7,0 +2020-03-21,Lowndes,Georgia,13185,7,0 +2020-03-22,Lowndes,Georgia,13185,8,0 +2020-03-23,Lowndes,Georgia,13185,8,0 +2020-03-24,Lowndes,Georgia,13185,11,0 +2020-03-25,Lowndes,Georgia,13185,12,0 +2020-03-26,Lowndes,Georgia,13185,14,0 +2020-03-27,Lowndes,Georgia,13185,20,1 +2020-03-28,Lowndes,Georgia,13185,20,1 +2020-03-29,Lowndes,Georgia,13185,20,1 +2020-03-30,Lowndes,Georgia,13185,21,1 +2020-03-31,Lowndes,Georgia,13185,23,1 +2020-04-01,Lowndes,Georgia,13185,24,1 +2020-04-02,Lowndes,Georgia,13185,26,1 +2020-04-03,Lowndes,Georgia,13185,32,1 +2020-04-04,Lowndes,Georgia,13185,37,1 +2020-04-05,Lowndes,Georgia,13185,37,1 +2020-04-06,Lowndes,Georgia,13185,42,2 +2020-04-07,Lowndes,Georgia,13185,45,1 +2020-04-08,Lowndes,Georgia,13185,49,1 +2020-04-09,Lowndes,Georgia,13185,53,1 +2020-04-10,Lowndes,Georgia,13185,59,2 +2020-04-11,Lowndes,Georgia,13185,59,2 +2020-04-12,Lowndes,Georgia,13185,59,2 +2020-04-13,Lowndes,Georgia,13185,66,2 +2020-04-14,Lowndes,Georgia,13185,70,3 +2020-04-15,Lowndes,Georgia,13185,75,3 +2020-04-16,Lowndes,Georgia,13185,79,3 +2020-04-17,Lowndes,Georgia,13185,83,3 +2020-04-18,Lowndes,Georgia,13185,89,3 +2020-04-19,Lowndes,Georgia,13185,96,3 +2020-04-20,Lowndes,Georgia,13185,101,3 +2020-04-21,Lowndes,Georgia,13185,113,3 +2020-04-22,Lowndes,Georgia,13185,122,4 +2020-04-23,Lowndes,Georgia,13185,125,4 +2020-04-24,Lowndes,Georgia,13185,129,4 +2020-04-25,Lowndes,Georgia,13185,131,4 +2020-04-26,Lowndes,Georgia,13185,131,4 +2020-04-27,Lowndes,Georgia,13185,139,4 +2020-04-28,Lowndes,Georgia,13185,146,4 +2020-04-29,Lowndes,Georgia,13185,153,4 +2020-04-30,Lowndes,Georgia,13185,155,4 +2020-05-01,Lowndes,Georgia,13185,156,4 +2020-05-02,Lowndes,Georgia,13185,158,4 +2020-05-03,Lowndes,Georgia,13185,157,4 +2020-05-04,Lowndes,Georgia,13185,162,4 +2020-05-05,Lowndes,Georgia,13185,166,4 +2020-05-06,Lowndes,Georgia,13185,170,4 +2020-05-07,Lowndes,Georgia,13185,173,4 +2020-05-08,Lowndes,Georgia,13185,183,4 +2020-05-09,Lowndes,Georgia,13185,184,4 +2020-05-10,Lowndes,Georgia,13185,185,4 +2020-05-11,Lowndes,Georgia,13185,185,4 +2020-05-12,Lowndes,Georgia,13185,194,4 +2020-05-13,Lowndes,Georgia,13185,196,4 +2020-05-14,Lowndes,Georgia,13185,201,4 +2020-05-15,Lowndes,Georgia,13185,202,4 +2020-05-16,Lowndes,Georgia,13185,202,4 +2020-05-17,Lowndes,Georgia,13185,203,4 +2020-05-18,Lowndes,Georgia,13185,208,5 +2020-05-19,Lowndes,Georgia,13185,209,5 +2020-05-20,Lowndes,Georgia,13185,226,5 +2020-05-21,Lowndes,Georgia,13185,229,5 +2020-05-22,Lowndes,Georgia,13185,232,5 +2020-05-23,Lowndes,Georgia,13185,233,4 +2020-05-24,Lowndes,Georgia,13185,245,4 +2020-05-25,Lowndes,Georgia,13185,250,4 +2020-05-26,Lowndes,Georgia,13185,259,4 +2020-05-27,Lowndes,Georgia,13185,268,4 +2020-05-28,Lowndes,Georgia,13185,283,4 +2020-05-29,Lowndes,Georgia,13185,298,4 +2020-05-30,Lowndes,Georgia,13185,301,4 +2020-05-31,Lowndes,Georgia,13185,302,4 +2020-06-01,Lowndes,Georgia,13185,316,4 +2020-06-02,Lowndes,Georgia,13185,319,4 +2020-06-03,Lowndes,Georgia,13185,326,4 +2020-06-04,Lowndes,Georgia,13185,356,4 +2020-06-05,Lowndes,Georgia,13185,385,4 +2020-06-06,Lowndes,Georgia,13185,434,4 +2020-06-07,Lowndes,Georgia,13185,441,4 +2020-06-08,Lowndes,Georgia,13185,461,4 +2020-06-09,Lowndes,Georgia,13185,474,4 +2020-06-10,Lowndes,Georgia,13185,505,4 +2020-06-11,Lowndes,Georgia,13185,531,4 +2020-06-12,Lowndes,Georgia,13185,567,4 +2020-06-13,Lowndes,Georgia,13185,618,4 +2020-06-14,Lowndes,Georgia,13185,624,4 +2020-06-15,Lowndes,Georgia,13185,651,4 +2020-06-16,Lowndes,Georgia,13185,689,4 +2020-06-17,Lowndes,Georgia,13185,758,4 +2020-06-18,Lowndes,Georgia,13185,813,4 +2020-06-19,Lowndes,Georgia,13185,844,4 +2020-06-20,Lowndes,Georgia,13185,871,4 +2020-06-21,Lowndes,Georgia,13185,911,4 +2020-06-22,Lowndes,Georgia,13185,939,4 +2020-06-23,Lowndes,Georgia,13185,975,6 +2020-06-24,Lowndes,Georgia,13185,1017,7 +2020-06-25,Lowndes,Georgia,13185,1040,8 +2020-06-26,Lowndes,Georgia,13185,1087,9 +2020-06-27,Lowndes,Georgia,13185,1129,9 +2020-06-28,Lowndes,Georgia,13185,1136,9 +2020-06-29,Lowndes,Georgia,13185,1150,9 +2020-06-30,Lowndes,Georgia,13185,1199,11 +2020-07-01,Lowndes,Georgia,13185,1237,12 +2020-07-02,Lowndes,Georgia,13185,1263,12 +2020-07-03,Lowndes,Georgia,13185,1305,12 +2020-07-04,Lowndes,Georgia,13185,1328,12 +2020-07-05,Lowndes,Georgia,13185,1425,12 +2020-07-06,Lowndes,Georgia,13185,1485,12 +2020-07-07,Lowndes,Georgia,13185,1659,14 +2020-07-08,Lowndes,Georgia,13185,1698,14 +2020-07-09,Lowndes,Georgia,13185,1743,14 +2020-03-21,Lumpkin,Georgia,13187,1,0 +2020-03-22,Lumpkin,Georgia,13187,1,0 +2020-03-23,Lumpkin,Georgia,13187,2,0 +2020-03-24,Lumpkin,Georgia,13187,3,0 +2020-03-25,Lumpkin,Georgia,13187,3,0 +2020-03-26,Lumpkin,Georgia,13187,4,0 +2020-03-27,Lumpkin,Georgia,13187,4,0 +2020-03-28,Lumpkin,Georgia,13187,4,0 +2020-03-29,Lumpkin,Georgia,13187,4,0 +2020-03-30,Lumpkin,Georgia,13187,4,0 +2020-03-31,Lumpkin,Georgia,13187,7,0 +2020-04-01,Lumpkin,Georgia,13187,7,0 +2020-04-02,Lumpkin,Georgia,13187,7,0 +2020-04-03,Lumpkin,Georgia,13187,7,0 +2020-04-04,Lumpkin,Georgia,13187,9,0 +2020-04-05,Lumpkin,Georgia,13187,9,0 +2020-04-06,Lumpkin,Georgia,13187,9,0 +2020-04-07,Lumpkin,Georgia,13187,9,0 +2020-04-08,Lumpkin,Georgia,13187,9,0 +2020-04-09,Lumpkin,Georgia,13187,9,0 +2020-04-10,Lumpkin,Georgia,13187,9,0 +2020-04-11,Lumpkin,Georgia,13187,9,0 +2020-04-12,Lumpkin,Georgia,13187,9,0 +2020-04-13,Lumpkin,Georgia,13187,10,0 +2020-04-14,Lumpkin,Georgia,13187,11,0 +2020-04-15,Lumpkin,Georgia,13187,11,0 +2020-04-16,Lumpkin,Georgia,13187,19,0 +2020-04-17,Lumpkin,Georgia,13187,22,0 +2020-04-18,Lumpkin,Georgia,13187,22,0 +2020-04-19,Lumpkin,Georgia,13187,23,0 +2020-04-20,Lumpkin,Georgia,13187,24,0 +2020-04-21,Lumpkin,Georgia,13187,26,0 +2020-04-22,Lumpkin,Georgia,13187,26,0 +2020-04-23,Lumpkin,Georgia,13187,28,0 +2020-04-24,Lumpkin,Georgia,13187,29,0 +2020-04-25,Lumpkin,Georgia,13187,29,0 +2020-04-26,Lumpkin,Georgia,13187,29,0 +2020-04-27,Lumpkin,Georgia,13187,32,1 +2020-04-28,Lumpkin,Georgia,13187,38,1 +2020-04-29,Lumpkin,Georgia,13187,40,2 +2020-04-30,Lumpkin,Georgia,13187,45,2 +2020-05-01,Lumpkin,Georgia,13187,46,2 +2020-05-02,Lumpkin,Georgia,13187,63,2 +2020-05-03,Lumpkin,Georgia,13187,63,2 +2020-05-04,Lumpkin,Georgia,13187,67,2 +2020-05-05,Lumpkin,Georgia,13187,69,1 +2020-05-06,Lumpkin,Georgia,13187,72,1 +2020-05-07,Lumpkin,Georgia,13187,76,1 +2020-05-08,Lumpkin,Georgia,13187,76,1 +2020-05-09,Lumpkin,Georgia,13187,76,1 +2020-05-10,Lumpkin,Georgia,13187,76,1 +2020-05-11,Lumpkin,Georgia,13187,76,1 +2020-05-12,Lumpkin,Georgia,13187,77,1 +2020-05-13,Lumpkin,Georgia,13187,80,1 +2020-05-14,Lumpkin,Georgia,13187,82,1 +2020-05-15,Lumpkin,Georgia,13187,82,1 +2020-05-16,Lumpkin,Georgia,13187,82,1 +2020-05-17,Lumpkin,Georgia,13187,82,1 +2020-05-18,Lumpkin,Georgia,13187,83,1 +2020-05-19,Lumpkin,Georgia,13187,83,1 +2020-05-20,Lumpkin,Georgia,13187,88,1 +2020-05-21,Lumpkin,Georgia,13187,88,1 +2020-05-22,Lumpkin,Georgia,13187,88,1 +2020-05-23,Lumpkin,Georgia,13187,88,1 +2020-05-24,Lumpkin,Georgia,13187,88,1 +2020-05-25,Lumpkin,Georgia,13187,91,1 +2020-05-26,Lumpkin,Georgia,13187,91,1 +2020-05-27,Lumpkin,Georgia,13187,95,1 +2020-05-28,Lumpkin,Georgia,13187,95,1 +2020-05-29,Lumpkin,Georgia,13187,99,1 +2020-05-30,Lumpkin,Georgia,13187,99,1 +2020-05-31,Lumpkin,Georgia,13187,99,1 +2020-06-01,Lumpkin,Georgia,13187,99,1 +2020-06-02,Lumpkin,Georgia,13187,99,1 +2020-06-03,Lumpkin,Georgia,13187,101,1 +2020-06-04,Lumpkin,Georgia,13187,101,1 +2020-06-05,Lumpkin,Georgia,13187,102,1 +2020-06-06,Lumpkin,Georgia,13187,102,1 +2020-06-07,Lumpkin,Georgia,13187,102,1 +2020-06-08,Lumpkin,Georgia,13187,103,1 +2020-06-09,Lumpkin,Georgia,13187,103,1 +2020-06-10,Lumpkin,Georgia,13187,105,1 +2020-06-11,Lumpkin,Georgia,13187,106,1 +2020-06-12,Lumpkin,Georgia,13187,107,1 +2020-06-13,Lumpkin,Georgia,13187,107,1 +2020-06-14,Lumpkin,Georgia,13187,107,1 +2020-06-15,Lumpkin,Georgia,13187,107,1 +2020-06-16,Lumpkin,Georgia,13187,109,1 +2020-06-17,Lumpkin,Georgia,13187,110,1 +2020-06-18,Lumpkin,Georgia,13187,116,1 +2020-06-19,Lumpkin,Georgia,13187,117,2 +2020-06-20,Lumpkin,Georgia,13187,118,2 +2020-06-21,Lumpkin,Georgia,13187,118,2 +2020-06-22,Lumpkin,Georgia,13187,120,3 +2020-06-23,Lumpkin,Georgia,13187,121,3 +2020-06-24,Lumpkin,Georgia,13187,123,3 +2020-06-25,Lumpkin,Georgia,13187,126,3 +2020-06-26,Lumpkin,Georgia,13187,130,3 +2020-06-27,Lumpkin,Georgia,13187,134,3 +2020-06-28,Lumpkin,Georgia,13187,135,3 +2020-06-29,Lumpkin,Georgia,13187,138,3 +2020-06-30,Lumpkin,Georgia,13187,139,3 +2020-07-01,Lumpkin,Georgia,13187,140,3 +2020-07-02,Lumpkin,Georgia,13187,142,3 +2020-07-03,Lumpkin,Georgia,13187,145,3 +2020-07-04,Lumpkin,Georgia,13187,145,3 +2020-07-05,Lumpkin,Georgia,13187,145,3 +2020-07-06,Lumpkin,Georgia,13187,146,4 +2020-07-07,Lumpkin,Georgia,13187,148,4 +2020-07-08,Lumpkin,Georgia,13187,154,4 +2020-07-09,Lumpkin,Georgia,13187,158,4 +2020-03-26,McDuffie,Georgia,13189,1,0 +2020-03-27,McDuffie,Georgia,13189,1,0 +2020-03-28,McDuffie,Georgia,13189,1,0 +2020-03-29,McDuffie,Georgia,13189,1,0 +2020-03-30,McDuffie,Georgia,13189,2,0 +2020-03-31,McDuffie,Georgia,13189,3,0 +2020-04-01,McDuffie,Georgia,13189,3,0 +2020-04-02,McDuffie,Georgia,13189,4,1 +2020-04-03,McDuffie,Georgia,13189,5,1 +2020-04-04,McDuffie,Georgia,13189,6,1 +2020-04-05,McDuffie,Georgia,13189,6,1 +2020-04-06,McDuffie,Georgia,13189,8,1 +2020-04-07,McDuffie,Georgia,13189,16,2 +2020-04-08,McDuffie,Georgia,13189,17,1 +2020-04-09,McDuffie,Georgia,13189,18,2 +2020-04-10,McDuffie,Georgia,13189,19,2 +2020-04-11,McDuffie,Georgia,13189,20,2 +2020-04-12,McDuffie,Georgia,13189,23,2 +2020-04-13,McDuffie,Georgia,13189,28,2 +2020-04-14,McDuffie,Georgia,13189,30,2 +2020-04-15,McDuffie,Georgia,13189,31,2 +2020-04-16,McDuffie,Georgia,13189,35,2 +2020-04-17,McDuffie,Georgia,13189,35,2 +2020-04-18,McDuffie,Georgia,13189,37,2 +2020-04-19,McDuffie,Georgia,13189,37,2 +2020-04-20,McDuffie,Georgia,13189,37,3 +2020-04-21,McDuffie,Georgia,13189,37,3 +2020-04-22,McDuffie,Georgia,13189,37,4 +2020-04-23,McDuffie,Georgia,13189,39,4 +2020-04-24,McDuffie,Georgia,13189,39,4 +2020-04-25,McDuffie,Georgia,13189,43,4 +2020-04-26,McDuffie,Georgia,13189,43,4 +2020-04-27,McDuffie,Georgia,13189,44,4 +2020-04-28,McDuffie,Georgia,13189,44,4 +2020-04-29,McDuffie,Georgia,13189,45,4 +2020-04-30,McDuffie,Georgia,13189,45,4 +2020-05-01,McDuffie,Georgia,13189,45,4 +2020-05-02,McDuffie,Georgia,13189,45,4 +2020-05-03,McDuffie,Georgia,13189,45,4 +2020-05-04,McDuffie,Georgia,13189,47,4 +2020-05-05,McDuffie,Georgia,13189,49,4 +2020-05-06,McDuffie,Georgia,13189,50,4 +2020-05-07,McDuffie,Georgia,13189,50,4 +2020-05-08,McDuffie,Georgia,13189,50,4 +2020-05-09,McDuffie,Georgia,13189,50,4 +2020-05-10,McDuffie,Georgia,13189,51,4 +2020-05-11,McDuffie,Georgia,13189,51,4 +2020-05-12,McDuffie,Georgia,13189,52,4 +2020-05-13,McDuffie,Georgia,13189,53,4 +2020-05-14,McDuffie,Georgia,13189,53,4 +2020-05-15,McDuffie,Georgia,13189,53,4 +2020-05-16,McDuffie,Georgia,13189,55,4 +2020-05-17,McDuffie,Georgia,13189,55,5 +2020-05-18,McDuffie,Georgia,13189,55,5 +2020-05-19,McDuffie,Georgia,13189,55,5 +2020-05-20,McDuffie,Georgia,13189,57,5 +2020-05-21,McDuffie,Georgia,13189,60,5 +2020-05-22,McDuffie,Georgia,13189,62,5 +2020-05-23,McDuffie,Georgia,13189,62,5 +2020-05-24,McDuffie,Georgia,13189,62,5 +2020-05-25,McDuffie,Georgia,13189,63,5 +2020-05-26,McDuffie,Georgia,13189,65,5 +2020-05-27,McDuffie,Georgia,13189,65,5 +2020-05-28,McDuffie,Georgia,13189,67,5 +2020-05-29,McDuffie,Georgia,13189,67,5 +2020-05-30,McDuffie,Georgia,13189,67,5 +2020-05-31,McDuffie,Georgia,13189,67,5 +2020-06-01,McDuffie,Georgia,13189,67,5 +2020-06-02,McDuffie,Georgia,13189,67,5 +2020-06-03,McDuffie,Georgia,13189,69,5 +2020-06-04,McDuffie,Georgia,13189,70,5 +2020-06-05,McDuffie,Georgia,13189,72,5 +2020-06-06,McDuffie,Georgia,13189,72,5 +2020-06-07,McDuffie,Georgia,13189,72,5 +2020-06-08,McDuffie,Georgia,13189,72,5 +2020-06-09,McDuffie,Georgia,13189,73,5 +2020-06-10,McDuffie,Georgia,13189,73,5 +2020-06-11,McDuffie,Georgia,13189,73,5 +2020-06-12,McDuffie,Georgia,13189,73,5 +2020-06-13,McDuffie,Georgia,13189,73,5 +2020-06-14,McDuffie,Georgia,13189,74,5 +2020-06-15,McDuffie,Georgia,13189,74,5 +2020-06-16,McDuffie,Georgia,13189,75,5 +2020-06-17,McDuffie,Georgia,13189,76,5 +2020-06-18,McDuffie,Georgia,13189,76,5 +2020-06-19,McDuffie,Georgia,13189,78,5 +2020-06-20,McDuffie,Georgia,13189,78,5 +2020-06-21,McDuffie,Georgia,13189,78,5 +2020-06-22,McDuffie,Georgia,13189,78,5 +2020-06-23,McDuffie,Georgia,13189,81,5 +2020-06-24,McDuffie,Georgia,13189,84,5 +2020-06-25,McDuffie,Georgia,13189,84,6 +2020-06-26,McDuffie,Georgia,13189,87,6 +2020-06-27,McDuffie,Georgia,13189,89,6 +2020-06-28,McDuffie,Georgia,13189,89,6 +2020-06-29,McDuffie,Georgia,13189,91,6 +2020-06-30,McDuffie,Georgia,13189,92,6 +2020-07-01,McDuffie,Georgia,13189,101,6 +2020-07-02,McDuffie,Georgia,13189,102,7 +2020-07-03,McDuffie,Georgia,13189,114,7 +2020-07-04,McDuffie,Georgia,13189,120,7 +2020-07-05,McDuffie,Georgia,13189,125,7 +2020-07-06,McDuffie,Georgia,13189,126,7 +2020-07-07,McDuffie,Georgia,13189,129,7 +2020-07-08,McDuffie,Georgia,13189,132,7 +2020-07-09,McDuffie,Georgia,13189,136,7 +2020-03-30,McIntosh,Georgia,13191,1,0 +2020-03-31,McIntosh,Georgia,13191,1,0 +2020-04-01,McIntosh,Georgia,13191,1,0 +2020-04-02,McIntosh,Georgia,13191,1,0 +2020-04-03,McIntosh,Georgia,13191,2,0 +2020-04-04,McIntosh,Georgia,13191,2,0 +2020-04-05,McIntosh,Georgia,13191,2,0 +2020-04-06,McIntosh,Georgia,13191,2,0 +2020-04-07,McIntosh,Georgia,13191,3,0 +2020-04-08,McIntosh,Georgia,13191,3,0 +2020-04-09,McIntosh,Georgia,13191,3,0 +2020-04-10,McIntosh,Georgia,13191,3,0 +2020-04-11,McIntosh,Georgia,13191,3,0 +2020-04-12,McIntosh,Georgia,13191,3,0 +2020-04-13,McIntosh,Georgia,13191,3,0 +2020-04-14,McIntosh,Georgia,13191,3,0 +2020-04-15,McIntosh,Georgia,13191,3,0 +2020-04-16,McIntosh,Georgia,13191,4,0 +2020-04-17,McIntosh,Georgia,13191,4,0 +2020-04-18,McIntosh,Georgia,13191,4,0 +2020-04-19,McIntosh,Georgia,13191,4,0 +2020-04-20,McIntosh,Georgia,13191,4,0 +2020-04-21,McIntosh,Georgia,13191,4,0 +2020-04-22,McIntosh,Georgia,13191,4,0 +2020-04-23,McIntosh,Georgia,13191,4,0 +2020-04-24,McIntosh,Georgia,13191,4,0 +2020-04-25,McIntosh,Georgia,13191,4,0 +2020-04-26,McIntosh,Georgia,13191,4,0 +2020-04-27,McIntosh,Georgia,13191,4,0 +2020-04-28,McIntosh,Georgia,13191,4,0 +2020-04-29,McIntosh,Georgia,13191,4,0 +2020-04-30,McIntosh,Georgia,13191,4,0 +2020-05-01,McIntosh,Georgia,13191,6,0 +2020-05-02,McIntosh,Georgia,13191,6,0 +2020-05-03,McIntosh,Georgia,13191,6,0 +2020-05-04,McIntosh,Georgia,13191,6,0 +2020-05-05,McIntosh,Georgia,13191,5,0 +2020-05-06,McIntosh,Georgia,13191,5,0 +2020-05-07,McIntosh,Georgia,13191,6,0 +2020-05-08,McIntosh,Georgia,13191,6,0 +2020-05-09,McIntosh,Georgia,13191,7,0 +2020-05-10,McIntosh,Georgia,13191,7,0 +2020-05-11,McIntosh,Georgia,13191,7,0 +2020-05-12,McIntosh,Georgia,13191,8,0 +2020-05-13,McIntosh,Georgia,13191,9,0 +2020-05-14,McIntosh,Georgia,13191,9,0 +2020-05-15,McIntosh,Georgia,13191,9,0 +2020-05-16,McIntosh,Georgia,13191,10,0 +2020-05-17,McIntosh,Georgia,13191,10,0 +2020-05-18,McIntosh,Georgia,13191,10,0 +2020-05-19,McIntosh,Georgia,13191,11,0 +2020-05-20,McIntosh,Georgia,13191,11,0 +2020-05-21,McIntosh,Georgia,13191,11,0 +2020-05-22,McIntosh,Georgia,13191,11,0 +2020-05-23,McIntosh,Georgia,13191,11,0 +2020-05-24,McIntosh,Georgia,13191,12,0 +2020-05-25,McIntosh,Georgia,13191,12,0 +2020-05-26,McIntosh,Georgia,13191,12,0 +2020-05-27,McIntosh,Georgia,13191,12,0 +2020-05-28,McIntosh,Georgia,13191,16,0 +2020-05-29,McIntosh,Georgia,13191,16,0 +2020-05-30,McIntosh,Georgia,13191,16,1 +2020-05-31,McIntosh,Georgia,13191,16,1 +2020-06-01,McIntosh,Georgia,13191,16,1 +2020-06-02,McIntosh,Georgia,13191,16,1 +2020-06-03,McIntosh,Georgia,13191,16,1 +2020-06-04,McIntosh,Georgia,13191,15,1 +2020-06-05,McIntosh,Georgia,13191,15,1 +2020-06-06,McIntosh,Georgia,13191,15,1 +2020-06-07,McIntosh,Georgia,13191,15,1 +2020-06-08,McIntosh,Georgia,13191,15,1 +2020-06-09,McIntosh,Georgia,13191,15,1 +2020-06-10,McIntosh,Georgia,13191,16,1 +2020-06-11,McIntosh,Georgia,13191,16,1 +2020-06-12,McIntosh,Georgia,13191,17,1 +2020-06-13,McIntosh,Georgia,13191,19,1 +2020-06-14,McIntosh,Georgia,13191,19,1 +2020-06-15,McIntosh,Georgia,13191,19,1 +2020-06-16,McIntosh,Georgia,13191,19,1 +2020-06-17,McIntosh,Georgia,13191,19,1 +2020-06-18,McIntosh,Georgia,13191,20,1 +2020-06-19,McIntosh,Georgia,13191,22,1 +2020-06-20,McIntosh,Georgia,13191,23,1 +2020-06-21,McIntosh,Georgia,13191,25,1 +2020-06-22,McIntosh,Georgia,13191,25,1 +2020-06-23,McIntosh,Georgia,13191,27,1 +2020-06-24,McIntosh,Georgia,13191,27,1 +2020-06-25,McIntosh,Georgia,13191,29,1 +2020-06-26,McIntosh,Georgia,13191,29,1 +2020-06-27,McIntosh,Georgia,13191,30,1 +2020-06-28,McIntosh,Georgia,13191,30,1 +2020-06-29,McIntosh,Georgia,13191,31,1 +2020-06-30,McIntosh,Georgia,13191,41,1 +2020-07-01,McIntosh,Georgia,13191,43,1 +2020-07-02,McIntosh,Georgia,13191,48,1 +2020-07-03,McIntosh,Georgia,13191,55,1 +2020-07-04,McIntosh,Georgia,13191,62,1 +2020-07-05,McIntosh,Georgia,13191,63,1 +2020-07-06,McIntosh,Georgia,13191,67,1 +2020-07-07,McIntosh,Georgia,13191,68,1 +2020-07-08,McIntosh,Georgia,13191,71,1 +2020-07-09,McIntosh,Georgia,13191,71,1 +2020-03-24,Macon,Georgia,13193,1,0 +2020-03-25,Macon,Georgia,13193,1,0 +2020-03-26,Macon,Georgia,13193,1,0 +2020-03-27,Macon,Georgia,13193,1,0 +2020-03-28,Macon,Georgia,13193,1,0 +2020-03-29,Macon,Georgia,13193,1,0 +2020-03-30,Macon,Georgia,13193,1,0 +2020-03-31,Macon,Georgia,13193,2,0 +2020-04-01,Macon,Georgia,13193,3,0 +2020-04-02,Macon,Georgia,13193,2,0 +2020-04-03,Macon,Georgia,13193,2,0 +2020-04-04,Macon,Georgia,13193,4,0 +2020-04-05,Macon,Georgia,13193,4,0 +2020-04-06,Macon,Georgia,13193,5,0 +2020-04-07,Macon,Georgia,13193,10,0 +2020-04-08,Macon,Georgia,13193,12,0 +2020-04-09,Macon,Georgia,13193,16,0 +2020-04-10,Macon,Georgia,13193,18,0 +2020-04-11,Macon,Georgia,13193,19,0 +2020-04-12,Macon,Georgia,13193,23,0 +2020-04-13,Macon,Georgia,13193,29,0 +2020-04-14,Macon,Georgia,13193,47,0 +2020-04-15,Macon,Georgia,13193,37,0 +2020-04-16,Macon,Georgia,13193,42,0 +2020-04-17,Macon,Georgia,13193,46,0 +2020-04-18,Macon,Georgia,13193,48,0 +2020-04-19,Macon,Georgia,13193,50,0 +2020-04-20,Macon,Georgia,13193,53,1 +2020-04-21,Macon,Georgia,13193,55,1 +2020-04-22,Macon,Georgia,13193,59,2 +2020-04-23,Macon,Georgia,13193,66,2 +2020-04-24,Macon,Georgia,13193,67,3 +2020-04-25,Macon,Georgia,13193,68,3 +2020-04-26,Macon,Georgia,13193,70,3 +2020-04-27,Macon,Georgia,13193,73,3 +2020-04-28,Macon,Georgia,13193,75,3 +2020-04-29,Macon,Georgia,13193,74,3 +2020-04-30,Macon,Georgia,13193,79,3 +2020-05-01,Macon,Georgia,13193,81,3 +2020-05-02,Macon,Georgia,13193,81,3 +2020-05-03,Macon,Georgia,13193,81,3 +2020-05-04,Macon,Georgia,13193,81,3 +2020-05-05,Macon,Georgia,13193,81,3 +2020-05-06,Macon,Georgia,13193,81,3 +2020-05-07,Macon,Georgia,13193,81,3 +2020-05-08,Macon,Georgia,13193,81,4 +2020-05-09,Macon,Georgia,13193,82,4 +2020-05-10,Macon,Georgia,13193,85,4 +2020-05-11,Macon,Georgia,13193,84,5 +2020-05-12,Macon,Georgia,13193,85,5 +2020-05-13,Macon,Georgia,13193,88,5 +2020-05-14,Macon,Georgia,13193,89,5 +2020-05-15,Macon,Georgia,13193,90,5 +2020-05-16,Macon,Georgia,13193,90,5 +2020-05-17,Macon,Georgia,13193,91,5 +2020-05-18,Macon,Georgia,13193,93,6 +2020-05-19,Macon,Georgia,13193,93,6 +2020-05-20,Macon,Georgia,13193,95,6 +2020-05-21,Macon,Georgia,13193,94,6 +2020-05-22,Macon,Georgia,13193,96,6 +2020-05-23,Macon,Georgia,13193,95,6 +2020-05-24,Macon,Georgia,13193,95,6 +2020-05-25,Macon,Georgia,13193,95,6 +2020-05-26,Macon,Georgia,13193,98,6 +2020-05-27,Macon,Georgia,13193,99,6 +2020-05-28,Macon,Georgia,13193,99,6 +2020-05-29,Macon,Georgia,13193,100,6 +2020-05-30,Macon,Georgia,13193,101,6 +2020-05-31,Macon,Georgia,13193,101,6 +2020-06-01,Macon,Georgia,13193,102,6 +2020-06-02,Macon,Georgia,13193,102,6 +2020-06-03,Macon,Georgia,13193,104,6 +2020-06-04,Macon,Georgia,13193,104,6 +2020-06-05,Macon,Georgia,13193,106,6 +2020-06-06,Macon,Georgia,13193,105,6 +2020-06-07,Macon,Georgia,13193,106,6 +2020-06-08,Macon,Georgia,13193,106,7 +2020-06-09,Macon,Georgia,13193,106,7 +2020-06-10,Macon,Georgia,13193,106,7 +2020-06-11,Macon,Georgia,13193,106,7 +2020-06-12,Macon,Georgia,13193,106,7 +2020-06-13,Macon,Georgia,13193,109,8 +2020-06-14,Macon,Georgia,13193,110,8 +2020-06-15,Macon,Georgia,13193,116,8 +2020-06-16,Macon,Georgia,13193,112,8 +2020-06-17,Macon,Georgia,13193,112,8 +2020-06-18,Macon,Georgia,13193,112,8 +2020-06-19,Macon,Georgia,13193,112,8 +2020-06-20,Macon,Georgia,13193,112,9 +2020-06-21,Macon,Georgia,13193,112,9 +2020-06-22,Macon,Georgia,13193,112,9 +2020-06-23,Macon,Georgia,13193,111,9 +2020-06-24,Macon,Georgia,13193,112,9 +2020-06-25,Macon,Georgia,13193,113,9 +2020-06-26,Macon,Georgia,13193,113,9 +2020-06-27,Macon,Georgia,13193,113,9 +2020-06-28,Macon,Georgia,13193,113,9 +2020-06-29,Macon,Georgia,13193,113,9 +2020-06-30,Macon,Georgia,13193,115,9 +2020-07-01,Macon,Georgia,13193,116,9 +2020-07-02,Macon,Georgia,13193,118,9 +2020-07-03,Macon,Georgia,13193,119,9 +2020-07-04,Macon,Georgia,13193,119,9 +2020-07-05,Macon,Georgia,13193,119,9 +2020-07-06,Macon,Georgia,13193,120,9 +2020-07-07,Macon,Georgia,13193,121,9 +2020-07-08,Macon,Georgia,13193,131,9 +2020-07-09,Macon,Georgia,13193,132,9 +2020-03-23,Madison,Georgia,13195,1,0 +2020-03-24,Madison,Georgia,13195,1,0 +2020-03-25,Madison,Georgia,13195,2,0 +2020-03-26,Madison,Georgia,13195,3,0 +2020-03-27,Madison,Georgia,13195,3,0 +2020-03-28,Madison,Georgia,13195,3,0 +2020-03-29,Madison,Georgia,13195,3,0 +2020-03-30,Madison,Georgia,13195,3,1 +2020-03-31,Madison,Georgia,13195,3,1 +2020-04-01,Madison,Georgia,13195,3,1 +2020-04-02,Madison,Georgia,13195,5,1 +2020-04-03,Madison,Georgia,13195,7,1 +2020-04-04,Madison,Georgia,13195,7,1 +2020-04-05,Madison,Georgia,13195,7,1 +2020-04-06,Madison,Georgia,13195,9,1 +2020-04-07,Madison,Georgia,13195,9,1 +2020-04-08,Madison,Georgia,13195,10,1 +2020-04-09,Madison,Georgia,13195,10,1 +2020-04-10,Madison,Georgia,13195,10,1 +2020-04-11,Madison,Georgia,13195,10,1 +2020-04-12,Madison,Georgia,13195,10,1 +2020-04-13,Madison,Georgia,13195,11,1 +2020-04-14,Madison,Georgia,13195,12,1 +2020-04-15,Madison,Georgia,13195,13,1 +2020-04-16,Madison,Georgia,13195,14,1 +2020-04-17,Madison,Georgia,13195,14,1 +2020-04-18,Madison,Georgia,13195,14,1 +2020-04-19,Madison,Georgia,13195,14,1 +2020-04-20,Madison,Georgia,13195,15,1 +2020-04-21,Madison,Georgia,13195,17,1 +2020-04-22,Madison,Georgia,13195,18,1 +2020-04-23,Madison,Georgia,13195,19,1 +2020-04-24,Madison,Georgia,13195,21,1 +2020-04-25,Madison,Georgia,13195,23,1 +2020-04-26,Madison,Georgia,13195,22,1 +2020-04-27,Madison,Georgia,13195,22,1 +2020-04-28,Madison,Georgia,13195,23,1 +2020-04-29,Madison,Georgia,13195,24,1 +2020-04-30,Madison,Georgia,13195,24,1 +2020-05-01,Madison,Georgia,13195,24,1 +2020-05-02,Madison,Georgia,13195,24,1 +2020-05-03,Madison,Georgia,13195,25,1 +2020-05-04,Madison,Georgia,13195,26,1 +2020-05-05,Madison,Georgia,13195,27,1 +2020-05-06,Madison,Georgia,13195,27,1 +2020-05-07,Madison,Georgia,13195,28,1 +2020-05-08,Madison,Georgia,13195,28,1 +2020-05-09,Madison,Georgia,13195,29,1 +2020-05-10,Madison,Georgia,13195,29,1 +2020-05-11,Madison,Georgia,13195,29,1 +2020-05-12,Madison,Georgia,13195,29,1 +2020-05-13,Madison,Georgia,13195,29,1 +2020-05-14,Madison,Georgia,13195,29,1 +2020-05-15,Madison,Georgia,13195,29,1 +2020-05-16,Madison,Georgia,13195,29,1 +2020-05-17,Madison,Georgia,13195,29,1 +2020-05-18,Madison,Georgia,13195,29,1 +2020-05-19,Madison,Georgia,13195,30,1 +2020-05-20,Madison,Georgia,13195,32,1 +2020-05-21,Madison,Georgia,13195,32,1 +2020-05-22,Madison,Georgia,13195,32,1 +2020-05-23,Madison,Georgia,13195,37,1 +2020-05-24,Madison,Georgia,13195,38,1 +2020-05-25,Madison,Georgia,13195,39,1 +2020-05-26,Madison,Georgia,13195,41,1 +2020-05-27,Madison,Georgia,13195,44,1 +2020-05-28,Madison,Georgia,13195,49,1 +2020-05-29,Madison,Georgia,13195,54,1 +2020-05-30,Madison,Georgia,13195,54,1 +2020-05-31,Madison,Georgia,13195,54,1 +2020-06-01,Madison,Georgia,13195,55,1 +2020-06-02,Madison,Georgia,13195,56,1 +2020-06-03,Madison,Georgia,13195,59,1 +2020-06-04,Madison,Georgia,13195,61,1 +2020-06-05,Madison,Georgia,13195,65,1 +2020-06-06,Madison,Georgia,13195,65,1 +2020-06-07,Madison,Georgia,13195,65,1 +2020-06-08,Madison,Georgia,13195,65,1 +2020-06-09,Madison,Georgia,13195,66,2 +2020-06-10,Madison,Georgia,13195,67,2 +2020-06-11,Madison,Georgia,13195,68,2 +2020-06-12,Madison,Georgia,13195,72,2 +2020-06-13,Madison,Georgia,13195,73,2 +2020-06-14,Madison,Georgia,13195,73,2 +2020-06-15,Madison,Georgia,13195,73,2 +2020-06-16,Madison,Georgia,13195,74,2 +2020-06-17,Madison,Georgia,13195,75,2 +2020-06-18,Madison,Georgia,13195,75,2 +2020-06-19,Madison,Georgia,13195,77,4 +2020-06-20,Madison,Georgia,13195,77,4 +2020-06-21,Madison,Georgia,13195,78,4 +2020-06-22,Madison,Georgia,13195,78,4 +2020-06-23,Madison,Georgia,13195,78,4 +2020-06-24,Madison,Georgia,13195,83,4 +2020-06-25,Madison,Georgia,13195,86,4 +2020-06-26,Madison,Georgia,13195,86,4 +2020-06-27,Madison,Georgia,13195,87,4 +2020-06-28,Madison,Georgia,13195,89,4 +2020-06-29,Madison,Georgia,13195,89,4 +2020-06-30,Madison,Georgia,13195,92,4 +2020-07-01,Madison,Georgia,13195,101,4 +2020-07-02,Madison,Georgia,13195,103,4 +2020-07-03,Madison,Georgia,13195,108,4 +2020-07-04,Madison,Georgia,13195,114,4 +2020-07-05,Madison,Georgia,13195,122,4 +2020-07-06,Madison,Georgia,13195,126,4 +2020-07-07,Madison,Georgia,13195,128,4 +2020-07-08,Madison,Georgia,13195,136,4 +2020-07-09,Madison,Georgia,13195,143,4 +2020-04-03,Marion,Georgia,13197,1,0 +2020-04-04,Marion,Georgia,13197,2,0 +2020-04-05,Marion,Georgia,13197,2,0 +2020-04-06,Marion,Georgia,13197,2,0 +2020-04-07,Marion,Georgia,13197,4,0 +2020-04-08,Marion,Georgia,13197,7,0 +2020-04-09,Marion,Georgia,13197,8,0 +2020-04-10,Marion,Georgia,13197,10,0 +2020-04-11,Marion,Georgia,13197,10,0 +2020-04-12,Marion,Georgia,13197,10,0 +2020-04-13,Marion,Georgia,13197,15,0 +2020-04-14,Marion,Georgia,13197,17,0 +2020-04-15,Marion,Georgia,13197,17,0 +2020-04-16,Marion,Georgia,13197,20,0 +2020-04-17,Marion,Georgia,13197,26,1 +2020-04-18,Marion,Georgia,13197,26,1 +2020-04-19,Marion,Georgia,13197,28,1 +2020-04-20,Marion,Georgia,13197,29,1 +2020-04-21,Marion,Georgia,13197,29,1 +2020-04-22,Marion,Georgia,13197,33,1 +2020-04-23,Marion,Georgia,13197,34,1 +2020-04-24,Marion,Georgia,13197,35,1 +2020-04-25,Marion,Georgia,13197,38,1 +2020-04-26,Marion,Georgia,13197,38,1 +2020-04-27,Marion,Georgia,13197,40,1 +2020-04-28,Marion,Georgia,13197,40,1 +2020-04-29,Marion,Georgia,13197,41,1 +2020-04-30,Marion,Georgia,13197,42,1 +2020-05-01,Marion,Georgia,13197,42,1 +2020-05-02,Marion,Georgia,13197,42,1 +2020-05-03,Marion,Georgia,13197,40,1 +2020-05-04,Marion,Georgia,13197,39,1 +2020-05-05,Marion,Georgia,13197,37,1 +2020-05-06,Marion,Georgia,13197,37,1 +2020-05-07,Marion,Georgia,13197,37,1 +2020-05-08,Marion,Georgia,13197,39,1 +2020-05-09,Marion,Georgia,13197,39,1 +2020-05-10,Marion,Georgia,13197,40,1 +2020-05-11,Marion,Georgia,13197,40,1 +2020-05-12,Marion,Georgia,13197,38,1 +2020-05-13,Marion,Georgia,13197,38,1 +2020-05-14,Marion,Georgia,13197,38,1 +2020-05-15,Marion,Georgia,13197,39,1 +2020-05-16,Marion,Georgia,13197,39,1 +2020-05-17,Marion,Georgia,13197,40,2 +2020-05-18,Marion,Georgia,13197,46,2 +2020-05-19,Marion,Georgia,13197,47,2 +2020-05-20,Marion,Georgia,13197,47,2 +2020-05-21,Marion,Georgia,13197,48,2 +2020-05-22,Marion,Georgia,13197,48,2 +2020-05-23,Marion,Georgia,13197,49,2 +2020-05-24,Marion,Georgia,13197,49,2 +2020-05-25,Marion,Georgia,13197,49,2 +2020-05-26,Marion,Georgia,13197,49,2 +2020-05-27,Marion,Georgia,13197,52,2 +2020-05-28,Marion,Georgia,13197,53,2 +2020-05-29,Marion,Georgia,13197,57,2 +2020-05-30,Marion,Georgia,13197,57,2 +2020-05-31,Marion,Georgia,13197,57,2 +2020-06-01,Marion,Georgia,13197,57,2 +2020-06-02,Marion,Georgia,13197,59,2 +2020-06-03,Marion,Georgia,13197,59,2 +2020-06-04,Marion,Georgia,13197,59,2 +2020-06-05,Marion,Georgia,13197,59,2 +2020-06-06,Marion,Georgia,13197,59,2 +2020-06-07,Marion,Georgia,13197,59,2 +2020-06-08,Marion,Georgia,13197,59,2 +2020-06-09,Marion,Georgia,13197,59,2 +2020-06-10,Marion,Georgia,13197,59,2 +2020-06-11,Marion,Georgia,13197,61,2 +2020-06-12,Marion,Georgia,13197,61,2 +2020-06-13,Marion,Georgia,13197,62,2 +2020-06-14,Marion,Georgia,13197,62,2 +2020-06-15,Marion,Georgia,13197,62,2 +2020-06-16,Marion,Georgia,13197,63,2 +2020-06-17,Marion,Georgia,13197,66,2 +2020-06-18,Marion,Georgia,13197,68,3 +2020-06-19,Marion,Georgia,13197,69,3 +2020-06-20,Marion,Georgia,13197,73,3 +2020-06-21,Marion,Georgia,13197,74,3 +2020-06-22,Marion,Georgia,13197,75,3 +2020-06-23,Marion,Georgia,13197,78,3 +2020-06-24,Marion,Georgia,13197,77,2 +2020-06-25,Marion,Georgia,13197,77,2 +2020-06-26,Marion,Georgia,13197,77,2 +2020-06-27,Marion,Georgia,13197,78,2 +2020-06-28,Marion,Georgia,13197,78,2 +2020-06-29,Marion,Georgia,13197,78,2 +2020-06-30,Marion,Georgia,13197,79,2 +2020-07-01,Marion,Georgia,13197,82,2 +2020-07-02,Marion,Georgia,13197,83,2 +2020-07-03,Marion,Georgia,13197,86,2 +2020-07-04,Marion,Georgia,13197,87,2 +2020-07-05,Marion,Georgia,13197,87,2 +2020-07-06,Marion,Georgia,13197,87,2 +2020-07-07,Marion,Georgia,13197,86,2 +2020-07-08,Marion,Georgia,13197,88,2 +2020-07-09,Marion,Georgia,13197,88,2 +2020-03-24,Meriwether,Georgia,13199,1,0 +2020-03-25,Meriwether,Georgia,13199,1,0 +2020-03-26,Meriwether,Georgia,13199,3,0 +2020-03-27,Meriwether,Georgia,13199,3,0 +2020-03-28,Meriwether,Georgia,13199,3,0 +2020-03-29,Meriwether,Georgia,13199,5,0 +2020-03-30,Meriwether,Georgia,13199,6,0 +2020-03-31,Meriwether,Georgia,13199,6,0 +2020-04-01,Meriwether,Georgia,13199,7,0 +2020-04-02,Meriwether,Georgia,13199,9,0 +2020-04-03,Meriwether,Georgia,13199,10,0 +2020-04-04,Meriwether,Georgia,13199,11,0 +2020-04-05,Meriwether,Georgia,13199,11,0 +2020-04-06,Meriwether,Georgia,13199,15,0 +2020-04-07,Meriwether,Georgia,13199,20,0 +2020-04-08,Meriwether,Georgia,13199,18,0 +2020-04-09,Meriwether,Georgia,13199,18,0 +2020-04-10,Meriwether,Georgia,13199,19,0 +2020-04-11,Meriwether,Georgia,13199,23,0 +2020-04-12,Meriwether,Georgia,13199,23,0 +2020-04-13,Meriwether,Georgia,13199,23,0 +2020-04-14,Meriwether,Georgia,13199,24,0 +2020-04-15,Meriwether,Georgia,13199,28,0 +2020-04-16,Meriwether,Georgia,13199,35,0 +2020-04-17,Meriwether,Georgia,13199,40,0 +2020-04-18,Meriwether,Georgia,13199,40,0 +2020-04-19,Meriwether,Georgia,13199,42,0 +2020-04-20,Meriwether,Georgia,13199,46,0 +2020-04-21,Meriwether,Georgia,13199,47,0 +2020-04-22,Meriwether,Georgia,13199,48,0 +2020-04-23,Meriwether,Georgia,13199,49,0 +2020-04-24,Meriwether,Georgia,13199,49,0 +2020-04-25,Meriwether,Georgia,13199,49,0 +2020-04-26,Meriwether,Georgia,13199,49,0 +2020-04-27,Meriwether,Georgia,13199,49,0 +2020-04-28,Meriwether,Georgia,13199,53,1 +2020-04-29,Meriwether,Georgia,13199,54,1 +2020-04-30,Meriwether,Georgia,13199,54,1 +2020-05-01,Meriwether,Georgia,13199,54,0 +2020-05-02,Meriwether,Georgia,13199,54,0 +2020-05-03,Meriwether,Georgia,13199,54,0 +2020-05-04,Meriwether,Georgia,13199,56,1 +2020-05-05,Meriwether,Georgia,13199,57,1 +2020-05-06,Meriwether,Georgia,13199,59,1 +2020-05-07,Meriwether,Georgia,13199,61,1 +2020-05-08,Meriwether,Georgia,13199,62,1 +2020-05-09,Meriwether,Georgia,13199,65,1 +2020-05-10,Meriwether,Georgia,13199,65,1 +2020-05-11,Meriwether,Georgia,13199,66,1 +2020-05-12,Meriwether,Georgia,13199,66,1 +2020-05-13,Meriwether,Georgia,13199,68,1 +2020-05-14,Meriwether,Georgia,13199,72,1 +2020-05-15,Meriwether,Georgia,13199,73,1 +2020-05-16,Meriwether,Georgia,13199,72,1 +2020-05-17,Meriwether,Georgia,13199,72,1 +2020-05-18,Meriwether,Georgia,13199,70,1 +2020-05-19,Meriwether,Georgia,13199,70,1 +2020-05-20,Meriwether,Georgia,13199,73,1 +2020-05-21,Meriwether,Georgia,13199,76,2 +2020-05-22,Meriwether,Georgia,13199,78,2 +2020-05-23,Meriwether,Georgia,13199,78,2 +2020-05-24,Meriwether,Georgia,13199,78,2 +2020-05-25,Meriwether,Georgia,13199,78,2 +2020-05-26,Meriwether,Georgia,13199,78,2 +2020-05-27,Meriwether,Georgia,13199,81,2 +2020-05-28,Meriwether,Georgia,13199,82,2 +2020-05-29,Meriwether,Georgia,13199,84,2 +2020-05-30,Meriwether,Georgia,13199,85,2 +2020-05-31,Meriwether,Georgia,13199,85,2 +2020-06-01,Meriwether,Georgia,13199,86,2 +2020-06-02,Meriwether,Georgia,13199,87,2 +2020-06-03,Meriwether,Georgia,13199,95,2 +2020-06-04,Meriwether,Georgia,13199,99,2 +2020-06-05,Meriwether,Georgia,13199,105,2 +2020-06-06,Meriwether,Georgia,13199,106,2 +2020-06-07,Meriwether,Georgia,13199,106,2 +2020-06-08,Meriwether,Georgia,13199,109,2 +2020-06-09,Meriwether,Georgia,13199,110,2 +2020-06-10,Meriwether,Georgia,13199,114,2 +2020-06-11,Meriwether,Georgia,13199,119,2 +2020-06-12,Meriwether,Georgia,13199,123,2 +2020-06-13,Meriwether,Georgia,13199,125,3 +2020-06-14,Meriwether,Georgia,13199,125,3 +2020-06-15,Meriwether,Georgia,13199,127,3 +2020-06-16,Meriwether,Georgia,13199,133,3 +2020-06-17,Meriwether,Georgia,13199,135,3 +2020-06-18,Meriwether,Georgia,13199,139,3 +2020-06-19,Meriwether,Georgia,13199,144,2 +2020-06-20,Meriwether,Georgia,13199,148,2 +2020-06-21,Meriwether,Georgia,13199,149,2 +2020-06-22,Meriwether,Georgia,13199,154,2 +2020-06-23,Meriwether,Georgia,13199,160,2 +2020-06-24,Meriwether,Georgia,13199,165,2 +2020-06-25,Meriwether,Georgia,13199,167,2 +2020-06-26,Meriwether,Georgia,13199,174,2 +2020-06-27,Meriwether,Georgia,13199,175,2 +2020-06-28,Meriwether,Georgia,13199,177,2 +2020-06-29,Meriwether,Georgia,13199,177,2 +2020-06-30,Meriwether,Georgia,13199,183,2 +2020-07-01,Meriwether,Georgia,13199,187,3 +2020-07-02,Meriwether,Georgia,13199,195,3 +2020-07-03,Meriwether,Georgia,13199,204,3 +2020-07-04,Meriwether,Georgia,13199,213,3 +2020-07-05,Meriwether,Georgia,13199,216,3 +2020-07-06,Meriwether,Georgia,13199,218,3 +2020-07-07,Meriwether,Georgia,13199,225,3 +2020-07-08,Meriwether,Georgia,13199,230,3 +2020-07-09,Meriwether,Georgia,13199,233,3 +2020-03-20,Miller,Georgia,13201,1,0 +2020-03-21,Miller,Georgia,13201,1,0 +2020-03-22,Miller,Georgia,13201,1,0 +2020-03-23,Miller,Georgia,13201,1,0 +2020-03-24,Miller,Georgia,13201,1,0 +2020-03-25,Miller,Georgia,13201,2,0 +2020-03-26,Miller,Georgia,13201,2,0 +2020-03-27,Miller,Georgia,13201,3,0 +2020-03-28,Miller,Georgia,13201,4,0 +2020-03-29,Miller,Georgia,13201,4,0 +2020-03-30,Miller,Georgia,13201,5,0 +2020-03-31,Miller,Georgia,13201,4,0 +2020-04-01,Miller,Georgia,13201,4,0 +2020-04-02,Miller,Georgia,13201,4,0 +2020-04-03,Miller,Georgia,13201,11,0 +2020-04-04,Miller,Georgia,13201,10,0 +2020-04-05,Miller,Georgia,13201,14,0 +2020-04-06,Miller,Georgia,13201,15,0 +2020-04-07,Miller,Georgia,13201,11,0 +2020-04-08,Miller,Georgia,13201,9,0 +2020-04-09,Miller,Georgia,13201,9,0 +2020-04-10,Miller,Georgia,13201,10,0 +2020-04-11,Miller,Georgia,13201,10,0 +2020-04-12,Miller,Georgia,13201,11,0 +2020-04-13,Miller,Georgia,13201,13,0 +2020-04-14,Miller,Georgia,13201,15,0 +2020-04-15,Miller,Georgia,13201,19,0 +2020-04-16,Miller,Georgia,13201,20,0 +2020-04-17,Miller,Georgia,13201,20,0 +2020-04-18,Miller,Georgia,13201,20,0 +2020-04-19,Miller,Georgia,13201,22,0 +2020-04-20,Miller,Georgia,13201,23,0 +2020-04-21,Miller,Georgia,13201,23,0 +2020-04-22,Miller,Georgia,13201,24,0 +2020-04-23,Miller,Georgia,13201,26,0 +2020-04-24,Miller,Georgia,13201,24,0 +2020-04-25,Miller,Georgia,13201,28,0 +2020-04-26,Miller,Georgia,13201,29,0 +2020-04-27,Miller,Georgia,13201,29,0 +2020-04-28,Miller,Georgia,13201,31,0 +2020-04-29,Miller,Georgia,13201,31,0 +2020-04-30,Miller,Georgia,13201,33,0 +2020-05-01,Miller,Georgia,13201,33,0 +2020-05-02,Miller,Georgia,13201,33,0 +2020-05-03,Miller,Georgia,13201,33,0 +2020-05-04,Miller,Georgia,13201,32,0 +2020-05-05,Miller,Georgia,13201,32,0 +2020-05-06,Miller,Georgia,13201,30,0 +2020-05-07,Miller,Georgia,13201,30,0 +2020-05-08,Miller,Georgia,13201,31,0 +2020-05-09,Miller,Georgia,13201,32,0 +2020-05-10,Miller,Georgia,13201,32,0 +2020-05-11,Miller,Georgia,13201,34,0 +2020-05-12,Miller,Georgia,13201,34,0 +2020-05-13,Miller,Georgia,13201,35,0 +2020-05-14,Miller,Georgia,13201,36,0 +2020-05-15,Miller,Georgia,13201,38,0 +2020-05-16,Miller,Georgia,13201,38,0 +2020-05-17,Miller,Georgia,13201,37,0 +2020-05-18,Miller,Georgia,13201,36,0 +2020-05-19,Miller,Georgia,13201,36,0 +2020-05-20,Miller,Georgia,13201,36,0 +2020-05-21,Miller,Georgia,13201,37,0 +2020-05-22,Miller,Georgia,13201,38,0 +2020-05-23,Miller,Georgia,13201,38,0 +2020-05-24,Miller,Georgia,13201,38,0 +2020-05-25,Miller,Georgia,13201,38,0 +2020-05-26,Miller,Georgia,13201,39,0 +2020-05-27,Miller,Georgia,13201,40,0 +2020-05-28,Miller,Georgia,13201,41,0 +2020-05-29,Miller,Georgia,13201,41,0 +2020-05-30,Miller,Georgia,13201,41,0 +2020-05-31,Miller,Georgia,13201,41,0 +2020-06-01,Miller,Georgia,13201,42,0 +2020-06-02,Miller,Georgia,13201,42,0 +2020-06-03,Miller,Georgia,13201,42,0 +2020-06-04,Miller,Georgia,13201,42,0 +2020-06-05,Miller,Georgia,13201,42,0 +2020-06-06,Miller,Georgia,13201,42,0 +2020-06-07,Miller,Georgia,13201,42,0 +2020-06-08,Miller,Georgia,13201,42,0 +2020-06-09,Miller,Georgia,13201,43,0 +2020-06-10,Miller,Georgia,13201,45,0 +2020-06-11,Miller,Georgia,13201,45,0 +2020-06-12,Miller,Georgia,13201,45,0 +2020-06-13,Miller,Georgia,13201,45,0 +2020-06-14,Miller,Georgia,13201,45,0 +2020-06-15,Miller,Georgia,13201,45,0 +2020-06-16,Miller,Georgia,13201,45,0 +2020-06-17,Miller,Georgia,13201,45,0 +2020-06-18,Miller,Georgia,13201,45,0 +2020-06-19,Miller,Georgia,13201,45,0 +2020-06-20,Miller,Georgia,13201,45,0 +2020-06-21,Miller,Georgia,13201,45,0 +2020-06-22,Miller,Georgia,13201,45,0 +2020-06-23,Miller,Georgia,13201,45,0 +2020-06-24,Miller,Georgia,13201,45,0 +2020-06-25,Miller,Georgia,13201,45,0 +2020-06-26,Miller,Georgia,13201,47,0 +2020-06-27,Miller,Georgia,13201,47,0 +2020-06-28,Miller,Georgia,13201,47,0 +2020-06-29,Miller,Georgia,13201,47,0 +2020-06-30,Miller,Georgia,13201,47,0 +2020-07-01,Miller,Georgia,13201,49,0 +2020-07-02,Miller,Georgia,13201,49,0 +2020-07-03,Miller,Georgia,13201,50,0 +2020-07-04,Miller,Georgia,13201,51,0 +2020-07-05,Miller,Georgia,13201,52,0 +2020-07-06,Miller,Georgia,13201,52,0 +2020-07-07,Miller,Georgia,13201,53,0 +2020-07-08,Miller,Georgia,13201,53,0 +2020-07-09,Miller,Georgia,13201,55,0 +2020-03-24,Mitchell,Georgia,13205,4,0 +2020-03-25,Mitchell,Georgia,13205,4,0 +2020-03-26,Mitchell,Georgia,13205,10,0 +2020-03-27,Mitchell,Georgia,13205,14,0 +2020-03-28,Mitchell,Georgia,13205,15,0 +2020-03-29,Mitchell,Georgia,13205,15,0 +2020-03-30,Mitchell,Georgia,13205,16,1 +2020-03-31,Mitchell,Georgia,13205,34,1 +2020-04-01,Mitchell,Georgia,13205,39,1 +2020-04-02,Mitchell,Georgia,13205,40,1 +2020-04-03,Mitchell,Georgia,13205,46,1 +2020-04-04,Mitchell,Georgia,13205,53,1 +2020-04-05,Mitchell,Georgia,13205,56,1 +2020-04-06,Mitchell,Georgia,13205,59,10 +2020-04-07,Mitchell,Georgia,13205,100,11 +2020-04-08,Mitchell,Georgia,13205,113,12 +2020-04-09,Mitchell,Georgia,13205,118,13 +2020-04-10,Mitchell,Georgia,13205,135,13 +2020-04-11,Mitchell,Georgia,13205,136,13 +2020-04-12,Mitchell,Georgia,13205,138,14 +2020-04-13,Mitchell,Georgia,13205,150,16 +2020-04-14,Mitchell,Georgia,13205,164,19 +2020-04-15,Mitchell,Georgia,13205,176,20 +2020-04-16,Mitchell,Georgia,13205,193,22 +2020-04-17,Mitchell,Georgia,13205,209,23 +2020-04-18,Mitchell,Georgia,13205,212,23 +2020-04-19,Mitchell,Georgia,13205,203,23 +2020-04-20,Mitchell,Georgia,13205,210,23 +2020-04-21,Mitchell,Georgia,13205,254,23 +2020-04-22,Mitchell,Georgia,13205,280,23 +2020-04-23,Mitchell,Georgia,13205,290,24 +2020-04-24,Mitchell,Georgia,13205,288,24 +2020-04-25,Mitchell,Georgia,13205,287,25 +2020-04-26,Mitchell,Georgia,13205,290,26 +2020-04-27,Mitchell,Georgia,13205,290,28 +2020-04-28,Mitchell,Georgia,13205,293,29 +2020-04-29,Mitchell,Georgia,13205,304,30 +2020-04-30,Mitchell,Georgia,13205,310,30 +2020-05-01,Mitchell,Georgia,13205,318,31 +2020-05-02,Mitchell,Georgia,13205,319,31 +2020-05-03,Mitchell,Georgia,13205,319,31 +2020-05-04,Mitchell,Georgia,13205,326,33 +2020-05-05,Mitchell,Georgia,13205,331,33 +2020-05-06,Mitchell,Georgia,13205,336,31 +2020-05-07,Mitchell,Georgia,13205,340,31 +2020-05-08,Mitchell,Georgia,13205,341,31 +2020-05-09,Mitchell,Georgia,13205,350,31 +2020-05-10,Mitchell,Georgia,13205,352,31 +2020-05-11,Mitchell,Georgia,13205,352,32 +2020-05-12,Mitchell,Georgia,13205,357,32 +2020-05-13,Mitchell,Georgia,13205,381,32 +2020-05-14,Mitchell,Georgia,13205,387,32 +2020-05-15,Mitchell,Georgia,13205,388,32 +2020-05-16,Mitchell,Georgia,13205,388,32 +2020-05-17,Mitchell,Georgia,13205,388,32 +2020-05-18,Mitchell,Georgia,13205,389,32 +2020-05-19,Mitchell,Georgia,13205,394,32 +2020-05-20,Mitchell,Georgia,13205,396,32 +2020-05-21,Mitchell,Georgia,13205,399,32 +2020-05-22,Mitchell,Georgia,13205,397,32 +2020-05-23,Mitchell,Georgia,13205,399,32 +2020-05-24,Mitchell,Georgia,13205,399,32 +2020-05-25,Mitchell,Georgia,13205,399,32 +2020-05-26,Mitchell,Georgia,13205,399,32 +2020-05-27,Mitchell,Georgia,13205,412,32 +2020-05-28,Mitchell,Georgia,13205,409,32 +2020-05-29,Mitchell,Georgia,13205,408,32 +2020-05-30,Mitchell,Georgia,13205,408,32 +2020-05-31,Mitchell,Georgia,13205,409,32 +2020-06-01,Mitchell,Georgia,13205,413,32 +2020-06-02,Mitchell,Georgia,13205,413,32 +2020-06-03,Mitchell,Georgia,13205,415,32 +2020-06-04,Mitchell,Georgia,13205,416,32 +2020-06-05,Mitchell,Georgia,13205,416,34 +2020-06-06,Mitchell,Georgia,13205,417,34 +2020-06-07,Mitchell,Georgia,13205,417,34 +2020-06-08,Mitchell,Georgia,13205,419,34 +2020-06-09,Mitchell,Georgia,13205,425,36 +2020-06-10,Mitchell,Georgia,13205,425,36 +2020-06-11,Mitchell,Georgia,13205,427,37 +2020-06-12,Mitchell,Georgia,13205,427,37 +2020-06-13,Mitchell,Georgia,13205,428,37 +2020-06-14,Mitchell,Georgia,13205,431,37 +2020-06-15,Mitchell,Georgia,13205,432,37 +2020-06-16,Mitchell,Georgia,13205,433,38 +2020-06-17,Mitchell,Georgia,13205,433,38 +2020-06-18,Mitchell,Georgia,13205,432,39 +2020-06-19,Mitchell,Georgia,13205,432,38 +2020-06-20,Mitchell,Georgia,13205,433,38 +2020-06-21,Mitchell,Georgia,13205,434,38 +2020-06-22,Mitchell,Georgia,13205,436,38 +2020-06-23,Mitchell,Georgia,13205,440,38 +2020-06-24,Mitchell,Georgia,13205,442,38 +2020-06-25,Mitchell,Georgia,13205,443,38 +2020-06-26,Mitchell,Georgia,13205,443,38 +2020-06-27,Mitchell,Georgia,13205,444,38 +2020-06-28,Mitchell,Georgia,13205,444,38 +2020-06-29,Mitchell,Georgia,13205,446,38 +2020-06-30,Mitchell,Georgia,13205,450,38 +2020-07-01,Mitchell,Georgia,13205,451,38 +2020-07-02,Mitchell,Georgia,13205,451,38 +2020-07-03,Mitchell,Georgia,13205,452,38 +2020-07-04,Mitchell,Georgia,13205,455,38 +2020-07-05,Mitchell,Georgia,13205,459,38 +2020-07-06,Mitchell,Georgia,13205,459,38 +2020-07-07,Mitchell,Georgia,13205,468,39 +2020-07-08,Mitchell,Georgia,13205,475,39 +2020-07-09,Mitchell,Georgia,13205,477,40 +2020-03-20,Monroe,Georgia,13207,1,0 +2020-03-21,Monroe,Georgia,13207,1,0 +2020-03-22,Monroe,Georgia,13207,1,0 +2020-03-23,Monroe,Georgia,13207,1,0 +2020-03-24,Monroe,Georgia,13207,3,0 +2020-03-25,Monroe,Georgia,13207,3,0 +2020-03-26,Monroe,Georgia,13207,3,0 +2020-03-27,Monroe,Georgia,13207,3,0 +2020-03-28,Monroe,Georgia,13207,3,0 +2020-03-29,Monroe,Georgia,13207,3,0 +2020-03-30,Monroe,Georgia,13207,3,0 +2020-03-31,Monroe,Georgia,13207,5,0 +2020-04-01,Monroe,Georgia,13207,6,0 +2020-04-02,Monroe,Georgia,13207,6,0 +2020-04-03,Monroe,Georgia,13207,7,0 +2020-04-04,Monroe,Georgia,13207,7,1 +2020-04-05,Monroe,Georgia,13207,9,1 +2020-04-06,Monroe,Georgia,13207,10,1 +2020-04-07,Monroe,Georgia,13207,13,1 +2020-04-08,Monroe,Georgia,13207,12,1 +2020-04-09,Monroe,Georgia,13207,12,1 +2020-04-10,Monroe,Georgia,13207,12,1 +2020-04-11,Monroe,Georgia,13207,12,1 +2020-04-12,Monroe,Georgia,13207,12,1 +2020-04-13,Monroe,Georgia,13207,12,1 +2020-04-14,Monroe,Georgia,13207,13,1 +2020-04-15,Monroe,Georgia,13207,14,1 +2020-04-16,Monroe,Georgia,13207,15,1 +2020-04-17,Monroe,Georgia,13207,15,1 +2020-04-18,Monroe,Georgia,13207,15,1 +2020-04-19,Monroe,Georgia,13207,15,1 +2020-04-20,Monroe,Georgia,13207,15,1 +2020-04-21,Monroe,Georgia,13207,15,1 +2020-04-22,Monroe,Georgia,13207,15,1 +2020-04-23,Monroe,Georgia,13207,18,1 +2020-04-24,Monroe,Georgia,13207,19,1 +2020-04-25,Monroe,Georgia,13207,19,1 +2020-04-26,Monroe,Georgia,13207,20,1 +2020-04-27,Monroe,Georgia,13207,21,1 +2020-04-28,Monroe,Georgia,13207,22,1 +2020-04-29,Monroe,Georgia,13207,23,3 +2020-04-30,Monroe,Georgia,13207,23,3 +2020-05-01,Monroe,Georgia,13207,24,3 +2020-05-02,Monroe,Georgia,13207,24,3 +2020-05-03,Monroe,Georgia,13207,24,3 +2020-05-04,Monroe,Georgia,13207,25,3 +2020-05-05,Monroe,Georgia,13207,30,4 +2020-05-06,Monroe,Georgia,13207,33,4 +2020-05-07,Monroe,Georgia,13207,34,4 +2020-05-08,Monroe,Georgia,13207,34,4 +2020-05-09,Monroe,Georgia,13207,34,4 +2020-05-10,Monroe,Georgia,13207,34,4 +2020-05-11,Monroe,Georgia,13207,35,4 +2020-05-12,Monroe,Georgia,13207,44,4 +2020-05-13,Monroe,Georgia,13207,44,4 +2020-05-14,Monroe,Georgia,13207,45,4 +2020-05-15,Monroe,Georgia,13207,47,4 +2020-05-16,Monroe,Georgia,13207,95,5 +2020-05-17,Monroe,Georgia,13207,95,6 +2020-05-18,Monroe,Georgia,13207,95,7 +2020-05-19,Monroe,Georgia,13207,102,7 +2020-05-20,Monroe,Georgia,13207,108,7 +2020-05-21,Monroe,Georgia,13207,113,8 +2020-05-22,Monroe,Georgia,13207,114,8 +2020-05-23,Monroe,Georgia,13207,117,8 +2020-05-24,Monroe,Georgia,13207,117,8 +2020-05-25,Monroe,Georgia,13207,118,8 +2020-05-26,Monroe,Georgia,13207,119,8 +2020-05-27,Monroe,Georgia,13207,118,8 +2020-05-28,Monroe,Georgia,13207,119,8 +2020-05-29,Monroe,Georgia,13207,120,8 +2020-05-30,Monroe,Georgia,13207,120,8 +2020-05-31,Monroe,Georgia,13207,120,11 +2020-06-01,Monroe,Georgia,13207,121,11 +2020-06-02,Monroe,Georgia,13207,121,11 +2020-06-03,Monroe,Georgia,13207,124,11 +2020-06-04,Monroe,Georgia,13207,123,11 +2020-06-05,Monroe,Georgia,13207,123,11 +2020-06-06,Monroe,Georgia,13207,123,11 +2020-06-07,Monroe,Georgia,13207,123,11 +2020-06-08,Monroe,Georgia,13207,123,11 +2020-06-09,Monroe,Georgia,13207,124,12 +2020-06-10,Monroe,Georgia,13207,126,13 +2020-06-11,Monroe,Georgia,13207,126,14 +2020-06-12,Monroe,Georgia,13207,127,14 +2020-06-13,Monroe,Georgia,13207,127,14 +2020-06-14,Monroe,Georgia,13207,130,14 +2020-06-15,Monroe,Georgia,13207,131,14 +2020-06-16,Monroe,Georgia,13207,133,14 +2020-06-17,Monroe,Georgia,13207,135,15 +2020-06-18,Monroe,Georgia,13207,135,15 +2020-06-19,Monroe,Georgia,13207,135,15 +2020-06-20,Monroe,Georgia,13207,135,15 +2020-06-21,Monroe,Georgia,13207,135,15 +2020-06-22,Monroe,Georgia,13207,137,15 +2020-06-23,Monroe,Georgia,13207,138,16 +2020-06-24,Monroe,Georgia,13207,139,16 +2020-06-25,Monroe,Georgia,13207,142,16 +2020-06-26,Monroe,Georgia,13207,152,16 +2020-06-27,Monroe,Georgia,13207,154,16 +2020-06-28,Monroe,Georgia,13207,156,16 +2020-06-29,Monroe,Georgia,13207,156,17 +2020-06-30,Monroe,Georgia,13207,160,17 +2020-07-01,Monroe,Georgia,13207,165,17 +2020-07-02,Monroe,Georgia,13207,170,18 +2020-07-03,Monroe,Georgia,13207,188,18 +2020-07-04,Monroe,Georgia,13207,192,18 +2020-07-05,Monroe,Georgia,13207,198,18 +2020-07-06,Monroe,Georgia,13207,207,18 +2020-07-07,Monroe,Georgia,13207,213,18 +2020-07-08,Monroe,Georgia,13207,226,18 +2020-07-09,Monroe,Georgia,13207,226,19 +2020-04-11,Montgomery,Georgia,13209,2,0 +2020-04-12,Montgomery,Georgia,13209,2,0 +2020-04-13,Montgomery,Georgia,13209,2,0 +2020-04-14,Montgomery,Georgia,13209,2,0 +2020-04-15,Montgomery,Georgia,13209,2,0 +2020-04-16,Montgomery,Georgia,13209,2,0 +2020-04-17,Montgomery,Georgia,13209,2,0 +2020-04-18,Montgomery,Georgia,13209,2,0 +2020-04-19,Montgomery,Georgia,13209,2,0 +2020-04-20,Montgomery,Georgia,13209,2,0 +2020-04-21,Montgomery,Georgia,13209,2,0 +2020-04-22,Montgomery,Georgia,13209,2,0 +2020-04-23,Montgomery,Georgia,13209,2,0 +2020-04-24,Montgomery,Georgia,13209,2,0 +2020-04-25,Montgomery,Georgia,13209,2,0 +2020-04-26,Montgomery,Georgia,13209,2,0 +2020-04-27,Montgomery,Georgia,13209,2,0 +2020-04-28,Montgomery,Georgia,13209,2,0 +2020-04-29,Montgomery,Georgia,13209,2,0 +2020-04-30,Montgomery,Georgia,13209,2,0 +2020-05-01,Montgomery,Georgia,13209,3,0 +2020-05-02,Montgomery,Georgia,13209,2,0 +2020-05-03,Montgomery,Georgia,13209,2,0 +2020-05-04,Montgomery,Georgia,13209,2,0 +2020-05-05,Montgomery,Georgia,13209,2,0 +2020-05-06,Montgomery,Georgia,13209,2,0 +2020-05-07,Montgomery,Georgia,13209,2,0 +2020-05-08,Montgomery,Georgia,13209,4,0 +2020-05-09,Montgomery,Georgia,13209,4,0 +2020-05-10,Montgomery,Georgia,13209,4,0 +2020-05-11,Montgomery,Georgia,13209,4,0 +2020-05-12,Montgomery,Georgia,13209,5,0 +2020-05-13,Montgomery,Georgia,13209,5,0 +2020-05-14,Montgomery,Georgia,13209,5,0 +2020-05-15,Montgomery,Georgia,13209,8,0 +2020-05-16,Montgomery,Georgia,13209,8,0 +2020-05-17,Montgomery,Georgia,13209,8,0 +2020-05-18,Montgomery,Georgia,13209,8,0 +2020-05-19,Montgomery,Georgia,13209,8,0 +2020-05-20,Montgomery,Georgia,13209,8,0 +2020-05-21,Montgomery,Georgia,13209,8,0 +2020-05-22,Montgomery,Georgia,13209,8,0 +2020-05-23,Montgomery,Georgia,13209,9,0 +2020-05-24,Montgomery,Georgia,13209,9,0 +2020-05-25,Montgomery,Georgia,13209,10,0 +2020-05-26,Montgomery,Georgia,13209,9,0 +2020-05-27,Montgomery,Georgia,13209,9,0 +2020-05-28,Montgomery,Georgia,13209,9,0 +2020-05-29,Montgomery,Georgia,13209,9,0 +2020-05-30,Montgomery,Georgia,13209,9,0 +2020-05-31,Montgomery,Georgia,13209,9,0 +2020-06-01,Montgomery,Georgia,13209,10,0 +2020-06-02,Montgomery,Georgia,13209,11,0 +2020-06-03,Montgomery,Georgia,13209,13,0 +2020-06-04,Montgomery,Georgia,13209,11,0 +2020-06-05,Montgomery,Georgia,13209,12,0 +2020-06-06,Montgomery,Georgia,13209,13,0 +2020-06-07,Montgomery,Georgia,13209,13,0 +2020-06-08,Montgomery,Georgia,13209,13,0 +2020-06-09,Montgomery,Georgia,13209,14,0 +2020-06-10,Montgomery,Georgia,13209,17,0 +2020-06-11,Montgomery,Georgia,13209,19,0 +2020-06-12,Montgomery,Georgia,13209,19,0 +2020-06-13,Montgomery,Georgia,13209,21,0 +2020-06-14,Montgomery,Georgia,13209,21,0 +2020-06-15,Montgomery,Georgia,13209,21,0 +2020-06-16,Montgomery,Georgia,13209,22,0 +2020-06-17,Montgomery,Georgia,13209,23,0 +2020-06-18,Montgomery,Georgia,13209,24,0 +2020-06-19,Montgomery,Georgia,13209,24,0 +2020-06-20,Montgomery,Georgia,13209,26,0 +2020-06-21,Montgomery,Georgia,13209,26,0 +2020-06-22,Montgomery,Georgia,13209,27,0 +2020-06-23,Montgomery,Georgia,13209,28,0 +2020-06-24,Montgomery,Georgia,13209,28,0 +2020-06-25,Montgomery,Georgia,13209,28,0 +2020-06-26,Montgomery,Georgia,13209,31,0 +2020-06-27,Montgomery,Georgia,13209,31,0 +2020-06-28,Montgomery,Georgia,13209,31,0 +2020-06-29,Montgomery,Georgia,13209,31,0 +2020-06-30,Montgomery,Georgia,13209,31,0 +2020-07-01,Montgomery,Georgia,13209,32,0 +2020-07-02,Montgomery,Georgia,13209,32,0 +2020-07-03,Montgomery,Georgia,13209,33,0 +2020-07-04,Montgomery,Georgia,13209,33,0 +2020-07-05,Montgomery,Georgia,13209,33,0 +2020-07-06,Montgomery,Georgia,13209,33,0 +2020-07-07,Montgomery,Georgia,13209,41,0 +2020-07-08,Montgomery,Georgia,13209,45,0 +2020-07-09,Montgomery,Georgia,13209,48,0 +2020-03-23,Morgan,Georgia,13211,1,0 +2020-03-24,Morgan,Georgia,13211,1,0 +2020-03-25,Morgan,Georgia,13211,1,0 +2020-03-26,Morgan,Georgia,13211,1,0 +2020-03-27,Morgan,Georgia,13211,1,0 +2020-03-28,Morgan,Georgia,13211,1,0 +2020-03-29,Morgan,Georgia,13211,1,0 +2020-03-30,Morgan,Georgia,13211,1,0 +2020-03-31,Morgan,Georgia,13211,2,0 +2020-04-01,Morgan,Georgia,13211,2,0 +2020-04-02,Morgan,Georgia,13211,2,0 +2020-04-03,Morgan,Georgia,13211,2,0 +2020-04-04,Morgan,Georgia,13211,2,0 +2020-04-05,Morgan,Georgia,13211,2,0 +2020-04-06,Morgan,Georgia,13211,6,0 +2020-04-07,Morgan,Georgia,13211,10,0 +2020-04-08,Morgan,Georgia,13211,12,0 +2020-04-09,Morgan,Georgia,13211,13,0 +2020-04-10,Morgan,Georgia,13211,14,0 +2020-04-11,Morgan,Georgia,13211,14,0 +2020-04-12,Morgan,Georgia,13211,14,0 +2020-04-13,Morgan,Georgia,13211,15,0 +2020-04-14,Morgan,Georgia,13211,15,0 +2020-04-15,Morgan,Georgia,13211,17,0 +2020-04-16,Morgan,Georgia,13211,19,0 +2020-04-17,Morgan,Georgia,13211,19,0 +2020-04-18,Morgan,Georgia,13211,20,0 +2020-04-19,Morgan,Georgia,13211,22,0 +2020-04-20,Morgan,Georgia,13211,22,0 +2020-04-21,Morgan,Georgia,13211,23,0 +2020-04-22,Morgan,Georgia,13211,23,0 +2020-04-23,Morgan,Georgia,13211,25,0 +2020-04-24,Morgan,Georgia,13211,25,0 +2020-04-25,Morgan,Georgia,13211,24,0 +2020-04-26,Morgan,Georgia,13211,22,0 +2020-04-27,Morgan,Georgia,13211,25,0 +2020-04-28,Morgan,Georgia,13211,24,0 +2020-04-29,Morgan,Georgia,13211,28,0 +2020-04-30,Morgan,Georgia,13211,28,0 +2020-05-01,Morgan,Georgia,13211,27,0 +2020-05-02,Morgan,Georgia,13211,27,0 +2020-05-03,Morgan,Georgia,13211,28,0 +2020-05-04,Morgan,Georgia,13211,29,0 +2020-05-05,Morgan,Georgia,13211,30,0 +2020-05-06,Morgan,Georgia,13211,30,0 +2020-05-07,Morgan,Georgia,13211,30,0 +2020-05-08,Morgan,Georgia,13211,30,0 +2020-05-09,Morgan,Georgia,13211,32,0 +2020-05-10,Morgan,Georgia,13211,33,0 +2020-05-11,Morgan,Georgia,13211,33,0 +2020-05-12,Morgan,Georgia,13211,33,0 +2020-05-13,Morgan,Georgia,13211,33,0 +2020-05-14,Morgan,Georgia,13211,33,0 +2020-05-15,Morgan,Georgia,13211,33,0 +2020-05-16,Morgan,Georgia,13211,33,0 +2020-05-17,Morgan,Georgia,13211,33,0 +2020-05-18,Morgan,Georgia,13211,34,0 +2020-05-19,Morgan,Georgia,13211,34,0 +2020-05-20,Morgan,Georgia,13211,34,0 +2020-05-21,Morgan,Georgia,13211,34,0 +2020-05-22,Morgan,Georgia,13211,35,0 +2020-05-23,Morgan,Georgia,13211,36,0 +2020-05-24,Morgan,Georgia,13211,36,0 +2020-05-25,Morgan,Georgia,13211,37,0 +2020-05-26,Morgan,Georgia,13211,37,0 +2020-05-27,Morgan,Georgia,13211,37,0 +2020-05-28,Morgan,Georgia,13211,37,0 +2020-05-29,Morgan,Georgia,13211,37,0 +2020-05-30,Morgan,Georgia,13211,37,0 +2020-05-31,Morgan,Georgia,13211,37,0 +2020-06-01,Morgan,Georgia,13211,38,0 +2020-06-02,Morgan,Georgia,13211,38,0 +2020-06-03,Morgan,Georgia,13211,38,0 +2020-06-04,Morgan,Georgia,13211,38,0 +2020-06-05,Morgan,Georgia,13211,39,0 +2020-06-06,Morgan,Georgia,13211,39,0 +2020-06-07,Morgan,Georgia,13211,39,0 +2020-06-08,Morgan,Georgia,13211,39,0 +2020-06-09,Morgan,Georgia,13211,40,0 +2020-06-10,Morgan,Georgia,13211,40,0 +2020-06-11,Morgan,Georgia,13211,40,0 +2020-06-12,Morgan,Georgia,13211,40,0 +2020-06-13,Morgan,Georgia,13211,40,0 +2020-06-14,Morgan,Georgia,13211,40,0 +2020-06-15,Morgan,Georgia,13211,40,0 +2020-06-16,Morgan,Georgia,13211,41,0 +2020-06-17,Morgan,Georgia,13211,42,0 +2020-06-18,Morgan,Georgia,13211,42,0 +2020-06-19,Morgan,Georgia,13211,44,0 +2020-06-20,Morgan,Georgia,13211,44,0 +2020-06-21,Morgan,Georgia,13211,45,0 +2020-06-22,Morgan,Georgia,13211,45,0 +2020-06-23,Morgan,Georgia,13211,45,0 +2020-06-24,Morgan,Georgia,13211,45,0 +2020-06-25,Morgan,Georgia,13211,46,0 +2020-06-26,Morgan,Georgia,13211,46,0 +2020-06-27,Morgan,Georgia,13211,46,0 +2020-06-28,Morgan,Georgia,13211,49,0 +2020-06-29,Morgan,Georgia,13211,49,0 +2020-06-30,Morgan,Georgia,13211,52,0 +2020-07-01,Morgan,Georgia,13211,52,0 +2020-07-02,Morgan,Georgia,13211,54,0 +2020-07-03,Morgan,Georgia,13211,64,0 +2020-07-04,Morgan,Georgia,13211,65,0 +2020-07-05,Morgan,Georgia,13211,66,0 +2020-07-06,Morgan,Georgia,13211,66,0 +2020-07-07,Morgan,Georgia,13211,68,0 +2020-07-08,Morgan,Georgia,13211,67,0 +2020-07-09,Morgan,Georgia,13211,71,0 +2020-03-28,Murray,Georgia,13213,2,0 +2020-03-29,Murray,Georgia,13213,3,0 +2020-03-30,Murray,Georgia,13213,4,0 +2020-03-31,Murray,Georgia,13213,5,0 +2020-04-01,Murray,Georgia,13213,5,0 +2020-04-02,Murray,Georgia,13213,7,0 +2020-04-03,Murray,Georgia,13213,7,0 +2020-04-04,Murray,Georgia,13213,9,0 +2020-04-05,Murray,Georgia,13213,9,0 +2020-04-06,Murray,Georgia,13213,10,0 +2020-04-07,Murray,Georgia,13213,11,0 +2020-04-08,Murray,Georgia,13213,12,0 +2020-04-09,Murray,Georgia,13213,12,0 +2020-04-10,Murray,Georgia,13213,12,0 +2020-04-11,Murray,Georgia,13213,14,0 +2020-04-12,Murray,Georgia,13213,14,0 +2020-04-13,Murray,Georgia,13213,15,0 +2020-04-14,Murray,Georgia,13213,16,0 +2020-04-15,Murray,Georgia,13213,17,0 +2020-04-16,Murray,Georgia,13213,17,0 +2020-04-17,Murray,Georgia,13213,18,0 +2020-04-18,Murray,Georgia,13213,18,0 +2020-04-19,Murray,Georgia,13213,18,0 +2020-04-20,Murray,Georgia,13213,18,0 +2020-04-21,Murray,Georgia,13213,19,0 +2020-04-22,Murray,Georgia,13213,19,0 +2020-04-23,Murray,Georgia,13213,19,0 +2020-04-24,Murray,Georgia,13213,22,0 +2020-04-25,Murray,Georgia,13213,24,0 +2020-04-26,Murray,Georgia,13213,24,0 +2020-04-27,Murray,Georgia,13213,25,0 +2020-04-28,Murray,Georgia,13213,27,0 +2020-04-29,Murray,Georgia,13213,30,0 +2020-04-30,Murray,Georgia,13213,31,0 +2020-05-01,Murray,Georgia,13213,32,1 +2020-05-02,Murray,Georgia,13213,33,1 +2020-05-03,Murray,Georgia,13213,33,1 +2020-05-04,Murray,Georgia,13213,34,1 +2020-05-05,Murray,Georgia,13213,34,1 +2020-05-06,Murray,Georgia,13213,35,1 +2020-05-07,Murray,Georgia,13213,42,1 +2020-05-08,Murray,Georgia,13213,45,1 +2020-05-09,Murray,Georgia,13213,46,1 +2020-05-10,Murray,Georgia,13213,47,1 +2020-05-11,Murray,Georgia,13213,47,1 +2020-05-12,Murray,Georgia,13213,49,1 +2020-05-13,Murray,Georgia,13213,53,1 +2020-05-14,Murray,Georgia,13213,55,1 +2020-05-15,Murray,Georgia,13213,59,1 +2020-05-16,Murray,Georgia,13213,60,1 +2020-05-17,Murray,Georgia,13213,60,1 +2020-05-18,Murray,Georgia,13213,61,1 +2020-05-19,Murray,Georgia,13213,64,1 +2020-05-20,Murray,Georgia,13213,66,1 +2020-05-21,Murray,Georgia,13213,69,1 +2020-05-22,Murray,Georgia,13213,72,1 +2020-05-23,Murray,Georgia,13213,77,1 +2020-05-24,Murray,Georgia,13213,78,1 +2020-05-25,Murray,Georgia,13213,78,1 +2020-05-26,Murray,Georgia,13213,81,1 +2020-05-27,Murray,Georgia,13213,83,1 +2020-05-28,Murray,Georgia,13213,85,1 +2020-05-29,Murray,Georgia,13213,86,1 +2020-05-30,Murray,Georgia,13213,90,1 +2020-05-31,Murray,Georgia,13213,91,1 +2020-06-01,Murray,Georgia,13213,94,1 +2020-06-02,Murray,Georgia,13213,96,1 +2020-06-03,Murray,Georgia,13213,99,1 +2020-06-04,Murray,Georgia,13213,100,1 +2020-06-05,Murray,Georgia,13213,100,1 +2020-06-06,Murray,Georgia,13213,103,1 +2020-06-07,Murray,Georgia,13213,109,1 +2020-06-08,Murray,Georgia,13213,110,1 +2020-06-09,Murray,Georgia,13213,114,1 +2020-06-10,Murray,Georgia,13213,120,1 +2020-06-11,Murray,Georgia,13213,127,1 +2020-06-12,Murray,Georgia,13213,130,1 +2020-06-13,Murray,Georgia,13213,135,1 +2020-06-14,Murray,Georgia,13213,142,1 +2020-06-15,Murray,Georgia,13213,143,1 +2020-06-16,Murray,Georgia,13213,148,1 +2020-06-17,Murray,Georgia,13213,152,1 +2020-06-18,Murray,Georgia,13213,155,1 +2020-06-19,Murray,Georgia,13213,163,1 +2020-06-20,Murray,Georgia,13213,162,1 +2020-06-21,Murray,Georgia,13213,164,1 +2020-06-22,Murray,Georgia,13213,168,1 +2020-06-23,Murray,Georgia,13213,172,1 +2020-06-24,Murray,Georgia,13213,178,1 +2020-06-25,Murray,Georgia,13213,183,2 +2020-06-26,Murray,Georgia,13213,188,2 +2020-06-27,Murray,Georgia,13213,191,2 +2020-06-28,Murray,Georgia,13213,194,2 +2020-06-29,Murray,Georgia,13213,210,2 +2020-06-30,Murray,Georgia,13213,214,2 +2020-07-01,Murray,Georgia,13213,222,2 +2020-07-02,Murray,Georgia,13213,229,2 +2020-07-03,Murray,Georgia,13213,232,2 +2020-07-04,Murray,Georgia,13213,244,2 +2020-07-05,Murray,Georgia,13213,250,2 +2020-07-06,Murray,Georgia,13213,263,2 +2020-07-07,Murray,Georgia,13213,271,3 +2020-07-08,Murray,Georgia,13213,270,2 +2020-07-09,Murray,Georgia,13213,274,2 +2020-03-20,Muscogee,Georgia,13215,1,0 +2020-03-21,Muscogee,Georgia,13215,2,0 +2020-03-22,Muscogee,Georgia,13215,2,0 +2020-03-23,Muscogee,Georgia,13215,2,0 +2020-03-24,Muscogee,Georgia,13215,4,0 +2020-03-25,Muscogee,Georgia,13215,4,0 +2020-03-26,Muscogee,Georgia,13215,6,0 +2020-03-27,Muscogee,Georgia,13215,8,0 +2020-03-28,Muscogee,Georgia,13215,8,0 +2020-03-29,Muscogee,Georgia,13215,9,0 +2020-03-30,Muscogee,Georgia,13215,14,0 +2020-03-31,Muscogee,Georgia,13215,19,0 +2020-04-01,Muscogee,Georgia,13215,22,0 +2020-04-02,Muscogee,Georgia,13215,26,0 +2020-04-03,Muscogee,Georgia,13215,31,0 +2020-04-04,Muscogee,Georgia,13215,35,0 +2020-04-05,Muscogee,Georgia,13215,37,0 +2020-04-06,Muscogee,Georgia,13215,47,1 +2020-04-07,Muscogee,Georgia,13215,54,1 +2020-04-08,Muscogee,Georgia,13215,94,2 +2020-04-09,Muscogee,Georgia,13215,118,3 +2020-04-10,Muscogee,Georgia,13215,142,3 +2020-04-11,Muscogee,Georgia,13215,144,4 +2020-04-12,Muscogee,Georgia,13215,156,4 +2020-04-13,Muscogee,Georgia,13215,167,4 +2020-04-14,Muscogee,Georgia,13215,175,4 +2020-04-15,Muscogee,Georgia,13215,182,4 +2020-04-16,Muscogee,Georgia,13215,200,4 +2020-04-17,Muscogee,Georgia,13215,210,4 +2020-04-18,Muscogee,Georgia,13215,218,4 +2020-04-19,Muscogee,Georgia,13215,224,4 +2020-04-20,Muscogee,Georgia,13215,229,4 +2020-04-21,Muscogee,Georgia,13215,235,4 +2020-04-22,Muscogee,Georgia,13215,244,4 +2020-04-23,Muscogee,Georgia,13215,256,4 +2020-04-24,Muscogee,Georgia,13215,259,4 +2020-04-25,Muscogee,Georgia,13215,270,4 +2020-04-26,Muscogee,Georgia,13215,275,4 +2020-04-27,Muscogee,Georgia,13215,283,4 +2020-04-28,Muscogee,Georgia,13215,291,6 +2020-04-29,Muscogee,Georgia,13215,299,7 +2020-04-30,Muscogee,Georgia,13215,303,7 +2020-05-01,Muscogee,Georgia,13215,316,7 +2020-05-02,Muscogee,Georgia,13215,320,7 +2020-05-03,Muscogee,Georgia,13215,329,7 +2020-05-04,Muscogee,Georgia,13215,335,7 +2020-05-05,Muscogee,Georgia,13215,342,8 +2020-05-06,Muscogee,Georgia,13215,348,12 +2020-05-07,Muscogee,Georgia,13215,354,12 +2020-05-08,Muscogee,Georgia,13215,363,12 +2020-05-09,Muscogee,Georgia,13215,364,12 +2020-05-10,Muscogee,Georgia,13215,371,12 +2020-05-11,Muscogee,Georgia,13215,377,14 +2020-05-12,Muscogee,Georgia,13215,391,15 +2020-05-13,Muscogee,Georgia,13215,398,15 +2020-05-14,Muscogee,Georgia,13215,411,15 +2020-05-15,Muscogee,Georgia,13215,424,15 +2020-05-16,Muscogee,Georgia,13215,424,15 +2020-05-17,Muscogee,Georgia,13215,424,15 +2020-05-18,Muscogee,Georgia,13215,440,16 +2020-05-19,Muscogee,Georgia,13215,451,16 +2020-05-20,Muscogee,Georgia,13215,456,16 +2020-05-21,Muscogee,Georgia,13215,487,17 +2020-05-22,Muscogee,Georgia,13215,509,17 +2020-05-23,Muscogee,Georgia,13215,536,17 +2020-05-24,Muscogee,Georgia,13215,550,17 +2020-05-25,Muscogee,Georgia,13215,564,17 +2020-05-26,Muscogee,Georgia,13215,568,17 +2020-05-27,Muscogee,Georgia,13215,587,17 +2020-05-28,Muscogee,Georgia,13215,593,17 +2020-05-29,Muscogee,Georgia,13215,602,17 +2020-05-30,Muscogee,Georgia,13215,604,17 +2020-05-31,Muscogee,Georgia,13215,615,17 +2020-06-01,Muscogee,Georgia,13215,632,18 +2020-06-02,Muscogee,Georgia,13215,637,18 +2020-06-03,Muscogee,Georgia,13215,673,18 +2020-06-04,Muscogee,Georgia,13215,697,21 +2020-06-05,Muscogee,Georgia,13215,750,21 +2020-06-06,Muscogee,Georgia,13215,776,21 +2020-06-07,Muscogee,Georgia,13215,776,21 +2020-06-08,Muscogee,Georgia,13215,808,22 +2020-06-09,Muscogee,Georgia,13215,868,22 +2020-06-10,Muscogee,Georgia,13215,904,23 +2020-06-11,Muscogee,Georgia,13215,919,25 +2020-06-12,Muscogee,Georgia,13215,955,25 +2020-06-13,Muscogee,Georgia,13215,988,26 +2020-06-14,Muscogee,Georgia,13215,1006,26 +2020-06-15,Muscogee,Georgia,13215,1022,28 +2020-06-16,Muscogee,Georgia,13215,1078,29 +2020-06-17,Muscogee,Georgia,13215,1099,32 +2020-06-18,Muscogee,Georgia,13215,1113,33 +2020-06-19,Muscogee,Georgia,13215,1146,34 +2020-06-20,Muscogee,Georgia,13215,1147,34 +2020-06-21,Muscogee,Georgia,13215,1169,34 +2020-06-22,Muscogee,Georgia,13215,1213,34 +2020-06-23,Muscogee,Georgia,13215,1341,39 +2020-06-24,Muscogee,Georgia,13215,1392,39 +2020-06-25,Muscogee,Georgia,13215,1428,40 +2020-06-26,Muscogee,Georgia,13215,1454,43 +2020-06-27,Muscogee,Georgia,13215,1496,43 +2020-06-28,Muscogee,Georgia,13215,1520,43 +2020-06-29,Muscogee,Georgia,13215,1536,43 +2020-06-30,Muscogee,Georgia,13215,1679,47 +2020-07-01,Muscogee,Georgia,13215,1741,49 +2020-07-02,Muscogee,Georgia,13215,1833,50 +2020-07-03,Muscogee,Georgia,13215,1943,52 +2020-07-04,Muscogee,Georgia,13215,2055,52 +2020-07-05,Muscogee,Georgia,13215,2137,52 +2020-07-06,Muscogee,Georgia,13215,2166,52 +2020-07-07,Muscogee,Georgia,13215,2206,54 +2020-07-08,Muscogee,Georgia,13215,2344,55 +2020-07-09,Muscogee,Georgia,13215,2438,55 +2020-03-15,Newton,Georgia,13217,1,0 +2020-03-16,Newton,Georgia,13217,1,0 +2020-03-17,Newton,Georgia,13217,1,0 +2020-03-18,Newton,Georgia,13217,3,0 +2020-03-19,Newton,Georgia,13217,3,0 +2020-03-20,Newton,Georgia,13217,4,0 +2020-03-21,Newton,Georgia,13217,4,0 +2020-03-22,Newton,Georgia,13217,4,0 +2020-03-23,Newton,Georgia,13217,4,0 +2020-03-24,Newton,Georgia,13217,6,0 +2020-03-25,Newton,Georgia,13217,8,0 +2020-03-26,Newton,Georgia,13217,12,0 +2020-03-27,Newton,Georgia,13217,15,0 +2020-03-28,Newton,Georgia,13217,15,0 +2020-03-29,Newton,Georgia,13217,18,0 +2020-03-30,Newton,Georgia,13217,22,0 +2020-03-31,Newton,Georgia,13217,31,0 +2020-04-01,Newton,Georgia,13217,34,0 +2020-04-02,Newton,Georgia,13217,37,0 +2020-04-03,Newton,Georgia,13217,42,1 +2020-04-04,Newton,Georgia,13217,52,1 +2020-04-05,Newton,Georgia,13217,55,2 +2020-04-06,Newton,Georgia,13217,65,2 +2020-04-07,Newton,Georgia,13217,67,3 +2020-04-08,Newton,Georgia,13217,67,3 +2020-04-09,Newton,Georgia,13217,70,3 +2020-04-10,Newton,Georgia,13217,77,3 +2020-04-11,Newton,Georgia,13217,78,3 +2020-04-12,Newton,Georgia,13217,82,3 +2020-04-13,Newton,Georgia,13217,93,3 +2020-04-14,Newton,Georgia,13217,100,3 +2020-04-15,Newton,Georgia,13217,113,3 +2020-04-16,Newton,Georgia,13217,115,3 +2020-04-17,Newton,Georgia,13217,121,3 +2020-04-18,Newton,Georgia,13217,121,3 +2020-04-19,Newton,Georgia,13217,130,3 +2020-04-20,Newton,Georgia,13217,139,3 +2020-04-21,Newton,Georgia,13217,142,4 +2020-04-22,Newton,Georgia,13217,146,5 +2020-04-23,Newton,Georgia,13217,153,5 +2020-04-24,Newton,Georgia,13217,158,6 +2020-04-25,Newton,Georgia,13217,166,6 +2020-04-26,Newton,Georgia,13217,166,6 +2020-04-27,Newton,Georgia,13217,173,7 +2020-04-28,Newton,Georgia,13217,184,7 +2020-04-29,Newton,Georgia,13217,193,7 +2020-04-30,Newton,Georgia,13217,196,7 +2020-05-01,Newton,Georgia,13217,200,7 +2020-05-02,Newton,Georgia,13217,205,7 +2020-05-03,Newton,Georgia,13217,208,7 +2020-05-04,Newton,Georgia,13217,215,8 +2020-05-05,Newton,Georgia,13217,222,8 +2020-05-06,Newton,Georgia,13217,232,8 +2020-05-07,Newton,Georgia,13217,236,8 +2020-05-08,Newton,Georgia,13217,240,8 +2020-05-09,Newton,Georgia,13217,252,8 +2020-05-10,Newton,Georgia,13217,258,8 +2020-05-11,Newton,Georgia,13217,260,8 +2020-05-12,Newton,Georgia,13217,261,8 +2020-05-13,Newton,Georgia,13217,262,8 +2020-05-14,Newton,Georgia,13217,263,8 +2020-05-15,Newton,Georgia,13217,262,9 +2020-05-16,Newton,Georgia,13217,261,10 +2020-05-17,Newton,Georgia,13217,257,10 +2020-05-18,Newton,Georgia,13217,264,10 +2020-05-19,Newton,Georgia,13217,266,10 +2020-05-20,Newton,Georgia,13217,275,10 +2020-05-21,Newton,Georgia,13217,280,11 +2020-05-22,Newton,Georgia,13217,286,11 +2020-05-23,Newton,Georgia,13217,289,10 +2020-05-24,Newton,Georgia,13217,304,10 +2020-05-25,Newton,Georgia,13217,311,10 +2020-05-26,Newton,Georgia,13217,335,11 +2020-05-27,Newton,Georgia,13217,341,11 +2020-05-28,Newton,Georgia,13217,344,11 +2020-05-29,Newton,Georgia,13217,351,11 +2020-05-30,Newton,Georgia,13217,352,11 +2020-05-31,Newton,Georgia,13217,352,11 +2020-06-01,Newton,Georgia,13217,361,11 +2020-06-02,Newton,Georgia,13217,370,11 +2020-06-03,Newton,Georgia,13217,376,11 +2020-06-04,Newton,Georgia,13217,382,11 +2020-06-05,Newton,Georgia,13217,388,10 +2020-06-06,Newton,Georgia,13217,389,10 +2020-06-07,Newton,Georgia,13217,389,10 +2020-06-08,Newton,Georgia,13217,395,10 +2020-06-09,Newton,Georgia,13217,396,11 +2020-06-10,Newton,Georgia,13217,402,11 +2020-06-11,Newton,Georgia,13217,407,11 +2020-06-12,Newton,Georgia,13217,412,11 +2020-06-13,Newton,Georgia,13217,415,11 +2020-06-14,Newton,Georgia,13217,415,11 +2020-06-15,Newton,Georgia,13217,420,11 +2020-06-16,Newton,Georgia,13217,425,11 +2020-06-17,Newton,Georgia,13217,440,11 +2020-06-18,Newton,Georgia,13217,452,11 +2020-06-19,Newton,Georgia,13217,466,11 +2020-06-20,Newton,Georgia,13217,466,11 +2020-06-21,Newton,Georgia,13217,474,11 +2020-06-22,Newton,Georgia,13217,493,11 +2020-06-23,Newton,Georgia,13217,516,11 +2020-06-24,Newton,Georgia,13217,525,11 +2020-06-25,Newton,Georgia,13217,538,11 +2020-06-26,Newton,Georgia,13217,541,11 +2020-06-27,Newton,Georgia,13217,561,11 +2020-06-28,Newton,Georgia,13217,571,11 +2020-06-29,Newton,Georgia,13217,571,11 +2020-06-30,Newton,Georgia,13217,599,11 +2020-07-01,Newton,Georgia,13217,616,11 +2020-07-02,Newton,Georgia,13217,644,11 +2020-07-03,Newton,Georgia,13217,673,12 +2020-07-04,Newton,Georgia,13217,700,12 +2020-07-05,Newton,Georgia,13217,713,12 +2020-07-06,Newton,Georgia,13217,734,12 +2020-07-07,Newton,Georgia,13217,750,12 +2020-07-08,Newton,Georgia,13217,779,12 +2020-07-09,Newton,Georgia,13217,812,12 +2020-03-20,Oconee,Georgia,13219,1,0 +2020-03-21,Oconee,Georgia,13219,1,0 +2020-03-22,Oconee,Georgia,13219,2,0 +2020-03-23,Oconee,Georgia,13219,3,0 +2020-03-24,Oconee,Georgia,13219,5,0 +2020-03-25,Oconee,Georgia,13219,6,0 +2020-03-26,Oconee,Georgia,13219,7,0 +2020-03-27,Oconee,Georgia,13219,10,0 +2020-03-28,Oconee,Georgia,13219,10,0 +2020-03-29,Oconee,Georgia,13219,11,0 +2020-03-30,Oconee,Georgia,13219,12,0 +2020-03-31,Oconee,Georgia,13219,16,0 +2020-04-01,Oconee,Georgia,13219,17,0 +2020-04-02,Oconee,Georgia,13219,19,0 +2020-04-03,Oconee,Georgia,13219,21,0 +2020-04-04,Oconee,Georgia,13219,24,0 +2020-04-05,Oconee,Georgia,13219,24,0 +2020-04-06,Oconee,Georgia,13219,24,0 +2020-04-07,Oconee,Georgia,13219,33,1 +2020-04-08,Oconee,Georgia,13219,33,1 +2020-04-09,Oconee,Georgia,13219,34,1 +2020-04-10,Oconee,Georgia,13219,37,1 +2020-04-11,Oconee,Georgia,13219,36,0 +2020-04-12,Oconee,Georgia,13219,38,0 +2020-04-13,Oconee,Georgia,13219,39,0 +2020-04-14,Oconee,Georgia,13219,42,0 +2020-04-15,Oconee,Georgia,13219,44,0 +2020-04-16,Oconee,Georgia,13219,45,0 +2020-04-17,Oconee,Georgia,13219,48,0 +2020-04-18,Oconee,Georgia,13219,48,0 +2020-04-19,Oconee,Georgia,13219,50,0 +2020-04-20,Oconee,Georgia,13219,51,0 +2020-04-21,Oconee,Georgia,13219,53,0 +2020-04-22,Oconee,Georgia,13219,53,0 +2020-04-23,Oconee,Georgia,13219,54,0 +2020-04-24,Oconee,Georgia,13219,54,0 +2020-04-25,Oconee,Georgia,13219,55,0 +2020-04-26,Oconee,Georgia,13219,53,0 +2020-04-27,Oconee,Georgia,13219,57,0 +2020-04-28,Oconee,Georgia,13219,58,0 +2020-04-29,Oconee,Georgia,13219,59,0 +2020-04-30,Oconee,Georgia,13219,64,0 +2020-05-01,Oconee,Georgia,13219,66,0 +2020-05-02,Oconee,Georgia,13219,64,0 +2020-05-03,Oconee,Georgia,13219,65,0 +2020-05-04,Oconee,Georgia,13219,65,0 +2020-05-05,Oconee,Georgia,13219,66,0 +2020-05-06,Oconee,Georgia,13219,67,0 +2020-05-07,Oconee,Georgia,13219,66,0 +2020-05-08,Oconee,Georgia,13219,66,0 +2020-05-09,Oconee,Georgia,13219,66,0 +2020-05-10,Oconee,Georgia,13219,67,0 +2020-05-11,Oconee,Georgia,13219,66,0 +2020-05-12,Oconee,Georgia,13219,66,0 +2020-05-13,Oconee,Georgia,13219,66,0 +2020-05-14,Oconee,Georgia,13219,80,0 +2020-05-15,Oconee,Georgia,13219,80,2 +2020-05-16,Oconee,Georgia,13219,80,2 +2020-05-17,Oconee,Georgia,13219,79,2 +2020-05-18,Oconee,Georgia,13219,80,3 +2020-05-19,Oconee,Georgia,13219,81,3 +2020-05-20,Oconee,Georgia,13219,82,3 +2020-05-21,Oconee,Georgia,13219,103,3 +2020-05-22,Oconee,Georgia,13219,103,5 +2020-05-23,Oconee,Georgia,13219,103,5 +2020-05-24,Oconee,Georgia,13219,103,5 +2020-05-25,Oconee,Georgia,13219,105,5 +2020-05-26,Oconee,Georgia,13219,108,5 +2020-05-27,Oconee,Georgia,13219,109,5 +2020-05-28,Oconee,Georgia,13219,111,5 +2020-05-29,Oconee,Georgia,13219,116,5 +2020-05-30,Oconee,Georgia,13219,116,6 +2020-05-31,Oconee,Georgia,13219,116,6 +2020-06-01,Oconee,Georgia,13219,116,7 +2020-06-02,Oconee,Georgia,13219,116,8 +2020-06-03,Oconee,Georgia,13219,119,9 +2020-06-04,Oconee,Georgia,13219,120,9 +2020-06-05,Oconee,Georgia,13219,123,9 +2020-06-06,Oconee,Georgia,13219,123,9 +2020-06-07,Oconee,Georgia,13219,123,9 +2020-06-08,Oconee,Georgia,13219,125,9 +2020-06-09,Oconee,Georgia,13219,127,9 +2020-06-10,Oconee,Georgia,13219,127,9 +2020-06-11,Oconee,Georgia,13219,129,9 +2020-06-12,Oconee,Georgia,13219,128,9 +2020-06-13,Oconee,Georgia,13219,128,9 +2020-06-14,Oconee,Georgia,13219,128,9 +2020-06-15,Oconee,Georgia,13219,130,9 +2020-06-16,Oconee,Georgia,13219,130,9 +2020-06-17,Oconee,Georgia,13219,131,10 +2020-06-18,Oconee,Georgia,13219,131,10 +2020-06-19,Oconee,Georgia,13219,131,10 +2020-06-20,Oconee,Georgia,13219,132,10 +2020-06-21,Oconee,Georgia,13219,133,10 +2020-06-22,Oconee,Georgia,13219,134,10 +2020-06-23,Oconee,Georgia,13219,136,10 +2020-06-24,Oconee,Georgia,13219,138,10 +2020-06-25,Oconee,Georgia,13219,141,10 +2020-06-26,Oconee,Georgia,13219,141,10 +2020-06-27,Oconee,Georgia,13219,146,10 +2020-06-28,Oconee,Georgia,13219,146,10 +2020-06-29,Oconee,Georgia,13219,148,10 +2020-06-30,Oconee,Georgia,13219,154,10 +2020-07-01,Oconee,Georgia,13219,159,10 +2020-07-02,Oconee,Georgia,13219,161,10 +2020-07-03,Oconee,Georgia,13219,171,10 +2020-07-04,Oconee,Georgia,13219,177,10 +2020-07-05,Oconee,Georgia,13219,183,10 +2020-07-06,Oconee,Georgia,13219,190,10 +2020-07-07,Oconee,Georgia,13219,194,10 +2020-07-08,Oconee,Georgia,13219,200,11 +2020-07-09,Oconee,Georgia,13219,213,11 +2020-03-31,Oglethorpe,Georgia,13221,1,0 +2020-04-01,Oglethorpe,Georgia,13221,1,0 +2020-04-02,Oglethorpe,Georgia,13221,1,1 +2020-04-03,Oglethorpe,Georgia,13221,1,1 +2020-04-04,Oglethorpe,Georgia,13221,1,1 +2020-04-05,Oglethorpe,Georgia,13221,1,1 +2020-04-06,Oglethorpe,Georgia,13221,1,1 +2020-04-07,Oglethorpe,Georgia,13221,2,1 +2020-04-08,Oglethorpe,Georgia,13221,2,1 +2020-04-09,Oglethorpe,Georgia,13221,5,1 +2020-04-10,Oglethorpe,Georgia,13221,12,1 +2020-04-11,Oglethorpe,Georgia,13221,12,1 +2020-04-12,Oglethorpe,Georgia,13221,12,1 +2020-04-13,Oglethorpe,Georgia,13221,13,1 +2020-04-14,Oglethorpe,Georgia,13221,19,1 +2020-04-15,Oglethorpe,Georgia,13221,31,1 +2020-04-16,Oglethorpe,Georgia,13221,32,1 +2020-04-17,Oglethorpe,Georgia,13221,32,2 +2020-04-18,Oglethorpe,Georgia,13221,32,2 +2020-04-19,Oglethorpe,Georgia,13221,33,2 +2020-04-20,Oglethorpe,Georgia,13221,34,2 +2020-04-21,Oglethorpe,Georgia,13221,34,3 +2020-04-22,Oglethorpe,Georgia,13221,34,3 +2020-04-23,Oglethorpe,Georgia,13221,36,3 +2020-04-24,Oglethorpe,Georgia,13221,48,3 +2020-04-25,Oglethorpe,Georgia,13221,48,3 +2020-04-26,Oglethorpe,Georgia,13221,47,3 +2020-04-27,Oglethorpe,Georgia,13221,48,3 +2020-04-28,Oglethorpe,Georgia,13221,48,3 +2020-04-29,Oglethorpe,Georgia,13221,49,3 +2020-04-30,Oglethorpe,Georgia,13221,48,3 +2020-05-01,Oglethorpe,Georgia,13221,49,3 +2020-05-02,Oglethorpe,Georgia,13221,50,3 +2020-05-03,Oglethorpe,Georgia,13221,50,3 +2020-05-04,Oglethorpe,Georgia,13221,50,3 +2020-05-05,Oglethorpe,Georgia,13221,51,3 +2020-05-06,Oglethorpe,Georgia,13221,51,3 +2020-05-07,Oglethorpe,Georgia,13221,53,3 +2020-05-08,Oglethorpe,Georgia,13221,56,4 +2020-05-09,Oglethorpe,Georgia,13221,56,4 +2020-05-10,Oglethorpe,Georgia,13221,56,4 +2020-05-11,Oglethorpe,Georgia,13221,56,4 +2020-05-12,Oglethorpe,Georgia,13221,56,4 +2020-05-13,Oglethorpe,Georgia,13221,56,4 +2020-05-14,Oglethorpe,Georgia,13221,55,4 +2020-05-15,Oglethorpe,Georgia,13221,55,4 +2020-05-16,Oglethorpe,Georgia,13221,55,4 +2020-05-17,Oglethorpe,Georgia,13221,55,4 +2020-05-18,Oglethorpe,Georgia,13221,55,4 +2020-05-19,Oglethorpe,Georgia,13221,56,4 +2020-05-20,Oglethorpe,Georgia,13221,56,4 +2020-05-21,Oglethorpe,Georgia,13221,56,5 +2020-05-22,Oglethorpe,Georgia,13221,58,5 +2020-05-23,Oglethorpe,Georgia,13221,58,5 +2020-05-24,Oglethorpe,Georgia,13221,58,5 +2020-05-25,Oglethorpe,Georgia,13221,58,5 +2020-05-26,Oglethorpe,Georgia,13221,58,5 +2020-05-27,Oglethorpe,Georgia,13221,58,6 +2020-05-28,Oglethorpe,Georgia,13221,58,6 +2020-05-29,Oglethorpe,Georgia,13221,60,6 +2020-05-30,Oglethorpe,Georgia,13221,61,6 +2020-05-31,Oglethorpe,Georgia,13221,61,7 +2020-06-01,Oglethorpe,Georgia,13221,62,7 +2020-06-02,Oglethorpe,Georgia,13221,62,7 +2020-06-03,Oglethorpe,Georgia,13221,63,7 +2020-06-04,Oglethorpe,Georgia,13221,63,7 +2020-06-05,Oglethorpe,Georgia,13221,66,7 +2020-06-06,Oglethorpe,Georgia,13221,66,7 +2020-06-07,Oglethorpe,Georgia,13221,66,7 +2020-06-08,Oglethorpe,Georgia,13221,67,7 +2020-06-09,Oglethorpe,Georgia,13221,70,7 +2020-06-10,Oglethorpe,Georgia,13221,71,7 +2020-06-11,Oglethorpe,Georgia,13221,71,7 +2020-06-12,Oglethorpe,Georgia,13221,71,7 +2020-06-13,Oglethorpe,Georgia,13221,72,7 +2020-06-14,Oglethorpe,Georgia,13221,72,7 +2020-06-15,Oglethorpe,Georgia,13221,75,7 +2020-06-16,Oglethorpe,Georgia,13221,77,7 +2020-06-17,Oglethorpe,Georgia,13221,77,7 +2020-06-18,Oglethorpe,Georgia,13221,77,7 +2020-06-19,Oglethorpe,Georgia,13221,80,7 +2020-06-20,Oglethorpe,Georgia,13221,81,7 +2020-06-21,Oglethorpe,Georgia,13221,81,7 +2020-06-22,Oglethorpe,Georgia,13221,81,7 +2020-06-23,Oglethorpe,Georgia,13221,85,7 +2020-06-24,Oglethorpe,Georgia,13221,86,7 +2020-06-25,Oglethorpe,Georgia,13221,87,7 +2020-06-26,Oglethorpe,Georgia,13221,88,7 +2020-06-27,Oglethorpe,Georgia,13221,88,7 +2020-06-28,Oglethorpe,Georgia,13221,88,7 +2020-06-29,Oglethorpe,Georgia,13221,88,7 +2020-06-30,Oglethorpe,Georgia,13221,89,7 +2020-07-01,Oglethorpe,Georgia,13221,91,7 +2020-07-02,Oglethorpe,Georgia,13221,91,7 +2020-07-03,Oglethorpe,Georgia,13221,95,7 +2020-07-04,Oglethorpe,Georgia,13221,97,7 +2020-07-05,Oglethorpe,Georgia,13221,98,7 +2020-07-06,Oglethorpe,Georgia,13221,98,7 +2020-07-07,Oglethorpe,Georgia,13221,101,7 +2020-07-08,Oglethorpe,Georgia,13221,100,7 +2020-07-09,Oglethorpe,Georgia,13221,101,7 +2020-03-16,Paulding,Georgia,13223,1,0 +2020-03-17,Paulding,Georgia,13223,1,0 +2020-03-18,Paulding,Georgia,13223,3,0 +2020-03-19,Paulding,Georgia,13223,3,0 +2020-03-20,Paulding,Georgia,13223,3,0 +2020-03-21,Paulding,Georgia,13223,4,0 +2020-03-22,Paulding,Georgia,13223,4,0 +2020-03-23,Paulding,Georgia,13223,5,0 +2020-03-24,Paulding,Georgia,13223,6,0 +2020-03-25,Paulding,Georgia,13223,6,0 +2020-03-26,Paulding,Georgia,13223,7,0 +2020-03-27,Paulding,Georgia,13223,13,0 +2020-03-28,Paulding,Georgia,13223,20,0 +2020-03-29,Paulding,Georgia,13223,23,0 +2020-03-30,Paulding,Georgia,13223,26,0 +2020-03-31,Paulding,Georgia,13223,31,0 +2020-04-01,Paulding,Georgia,13223,33,0 +2020-04-02,Paulding,Georgia,13223,35,0 +2020-04-03,Paulding,Georgia,13223,46,0 +2020-04-04,Paulding,Georgia,13223,50,0 +2020-04-05,Paulding,Georgia,13223,51,0 +2020-04-06,Paulding,Georgia,13223,57,1 +2020-04-07,Paulding,Georgia,13223,62,1 +2020-04-08,Paulding,Georgia,13223,66,1 +2020-04-09,Paulding,Georgia,13223,69,2 +2020-04-10,Paulding,Georgia,13223,74,2 +2020-04-11,Paulding,Georgia,13223,79,2 +2020-04-12,Paulding,Georgia,13223,84,2 +2020-04-13,Paulding,Georgia,13223,100,4 +2020-04-14,Paulding,Georgia,13223,115,4 +2020-04-15,Paulding,Georgia,13223,118,5 +2020-04-16,Paulding,Georgia,13223,123,5 +2020-04-17,Paulding,Georgia,13223,132,5 +2020-04-18,Paulding,Georgia,13223,133,6 +2020-04-19,Paulding,Georgia,13223,137,7 +2020-04-20,Paulding,Georgia,13223,141,7 +2020-04-21,Paulding,Georgia,13223,141,7 +2020-04-22,Paulding,Georgia,13223,145,7 +2020-04-23,Paulding,Georgia,13223,148,7 +2020-04-24,Paulding,Georgia,13223,156,7 +2020-04-25,Paulding,Georgia,13223,159,7 +2020-04-26,Paulding,Georgia,13223,160,7 +2020-04-27,Paulding,Georgia,13223,166,7 +2020-04-28,Paulding,Georgia,13223,172,7 +2020-04-29,Paulding,Georgia,13223,176,8 +2020-04-30,Paulding,Georgia,13223,189,8 +2020-05-01,Paulding,Georgia,13223,190,8 +2020-05-02,Paulding,Georgia,13223,194,8 +2020-05-03,Paulding,Georgia,13223,195,8 +2020-05-04,Paulding,Georgia,13223,207,9 +2020-05-05,Paulding,Georgia,13223,209,9 +2020-05-06,Paulding,Georgia,13223,212,10 +2020-05-07,Paulding,Georgia,13223,218,10 +2020-05-08,Paulding,Georgia,13223,221,10 +2020-05-09,Paulding,Georgia,13223,222,10 +2020-05-10,Paulding,Georgia,13223,223,10 +2020-05-11,Paulding,Georgia,13223,226,10 +2020-05-12,Paulding,Georgia,13223,230,10 +2020-05-13,Paulding,Georgia,13223,234,10 +2020-05-14,Paulding,Georgia,13223,236,10 +2020-05-15,Paulding,Georgia,13223,240,10 +2020-05-16,Paulding,Georgia,13223,242,10 +2020-05-17,Paulding,Georgia,13223,240,10 +2020-05-18,Paulding,Georgia,13223,241,10 +2020-05-19,Paulding,Georgia,13223,247,10 +2020-05-20,Paulding,Georgia,13223,261,10 +2020-05-21,Paulding,Georgia,13223,264,11 +2020-05-22,Paulding,Georgia,13223,273,11 +2020-05-23,Paulding,Georgia,13223,275,11 +2020-05-24,Paulding,Georgia,13223,277,11 +2020-05-25,Paulding,Georgia,13223,291,11 +2020-05-26,Paulding,Georgia,13223,294,11 +2020-05-27,Paulding,Georgia,13223,305,11 +2020-05-28,Paulding,Georgia,13223,309,11 +2020-05-29,Paulding,Georgia,13223,320,11 +2020-05-30,Paulding,Georgia,13223,326,11 +2020-05-31,Paulding,Georgia,13223,328,11 +2020-06-01,Paulding,Georgia,13223,328,11 +2020-06-02,Paulding,Georgia,13223,330,11 +2020-06-03,Paulding,Georgia,13223,334,11 +2020-06-04,Paulding,Georgia,13223,340,11 +2020-06-05,Paulding,Georgia,13223,347,11 +2020-06-06,Paulding,Georgia,13223,351,11 +2020-06-07,Paulding,Georgia,13223,352,12 +2020-06-08,Paulding,Georgia,13223,354,13 +2020-06-09,Paulding,Georgia,13223,371,13 +2020-06-10,Paulding,Georgia,13223,382,13 +2020-06-11,Paulding,Georgia,13223,397,13 +2020-06-12,Paulding,Georgia,13223,401,13 +2020-06-13,Paulding,Georgia,13223,402,13 +2020-06-14,Paulding,Georgia,13223,405,13 +2020-06-15,Paulding,Georgia,13223,408,13 +2020-06-16,Paulding,Georgia,13223,415,13 +2020-06-17,Paulding,Georgia,13223,425,13 +2020-06-18,Paulding,Georgia,13223,437,14 +2020-06-19,Paulding,Georgia,13223,453,14 +2020-06-20,Paulding,Georgia,13223,460,14 +2020-06-21,Paulding,Georgia,13223,466,14 +2020-06-22,Paulding,Georgia,13223,470,13 +2020-06-23,Paulding,Georgia,13223,493,13 +2020-06-24,Paulding,Georgia,13223,505,15 +2020-06-25,Paulding,Georgia,13223,522,15 +2020-06-26,Paulding,Georgia,13223,538,15 +2020-06-27,Paulding,Georgia,13223,554,15 +2020-06-28,Paulding,Georgia,13223,560,15 +2020-06-29,Paulding,Georgia,13223,565,15 +2020-06-30,Paulding,Georgia,13223,583,15 +2020-07-01,Paulding,Georgia,13223,627,15 +2020-07-02,Paulding,Georgia,13223,638,16 +2020-07-03,Paulding,Georgia,13223,659,16 +2020-07-04,Paulding,Georgia,13223,671,16 +2020-07-05,Paulding,Georgia,13223,679,16 +2020-07-06,Paulding,Georgia,13223,697,16 +2020-07-07,Paulding,Georgia,13223,724,16 +2020-07-08,Paulding,Georgia,13223,765,16 +2020-07-09,Paulding,Georgia,13223,778,16 +2020-03-19,Peach,Georgia,13225,1,0 +2020-03-20,Peach,Georgia,13225,2,0 +2020-03-21,Peach,Georgia,13225,2,0 +2020-03-22,Peach,Georgia,13225,3,0 +2020-03-23,Peach,Georgia,13225,3,0 +2020-03-24,Peach,Georgia,13225,3,0 +2020-03-25,Peach,Georgia,13225,5,0 +2020-03-26,Peach,Georgia,13225,5,0 +2020-03-27,Peach,Georgia,13225,6,0 +2020-03-28,Peach,Georgia,13225,6,0 +2020-03-29,Peach,Georgia,13225,6,1 +2020-03-30,Peach,Georgia,13225,7,1 +2020-03-31,Peach,Georgia,13225,7,1 +2020-04-01,Peach,Georgia,13225,7,1 +2020-04-02,Peach,Georgia,13225,7,1 +2020-04-03,Peach,Georgia,13225,10,1 +2020-04-04,Peach,Georgia,13225,10,1 +2020-04-05,Peach,Georgia,13225,13,1 +2020-04-06,Peach,Georgia,13225,16,2 +2020-04-07,Peach,Georgia,13225,20,2 +2020-04-08,Peach,Georgia,13225,19,2 +2020-04-09,Peach,Georgia,13225,20,2 +2020-04-10,Peach,Georgia,13225,21,2 +2020-04-11,Peach,Georgia,13225,22,2 +2020-04-12,Peach,Georgia,13225,23,2 +2020-04-13,Peach,Georgia,13225,24,2 +2020-04-14,Peach,Georgia,13225,24,2 +2020-04-15,Peach,Georgia,13225,25,2 +2020-04-16,Peach,Georgia,13225,30,2 +2020-04-17,Peach,Georgia,13225,32,2 +2020-04-18,Peach,Georgia,13225,32,2 +2020-04-19,Peach,Georgia,13225,32,2 +2020-04-20,Peach,Georgia,13225,35,2 +2020-04-21,Peach,Georgia,13225,35,2 +2020-04-22,Peach,Georgia,13225,35,2 +2020-04-23,Peach,Georgia,13225,36,2 +2020-04-24,Peach,Georgia,13225,37,2 +2020-04-25,Peach,Georgia,13225,37,2 +2020-04-26,Peach,Georgia,13225,37,2 +2020-04-27,Peach,Georgia,13225,39,2 +2020-04-28,Peach,Georgia,13225,45,2 +2020-04-29,Peach,Georgia,13225,45,2 +2020-04-30,Peach,Georgia,13225,46,2 +2020-05-01,Peach,Georgia,13225,52,2 +2020-05-02,Peach,Georgia,13225,56,2 +2020-05-03,Peach,Georgia,13225,55,2 +2020-05-04,Peach,Georgia,13225,59,2 +2020-05-05,Peach,Georgia,13225,60,2 +2020-05-06,Peach,Georgia,13225,61,2 +2020-05-07,Peach,Georgia,13225,61,2 +2020-05-08,Peach,Georgia,13225,62,2 +2020-05-09,Peach,Georgia,13225,62,2 +2020-05-10,Peach,Georgia,13225,63,2 +2020-05-11,Peach,Georgia,13225,63,2 +2020-05-12,Peach,Georgia,13225,68,2 +2020-05-13,Peach,Georgia,13225,69,2 +2020-05-14,Peach,Georgia,13225,69,2 +2020-05-15,Peach,Georgia,13225,71,2 +2020-05-16,Peach,Georgia,13225,70,2 +2020-05-17,Peach,Georgia,13225,69,2 +2020-05-18,Peach,Georgia,13225,69,2 +2020-05-19,Peach,Georgia,13225,69,3 +2020-05-20,Peach,Georgia,13225,69,3 +2020-05-21,Peach,Georgia,13225,69,3 +2020-05-22,Peach,Georgia,13225,70,3 +2020-05-23,Peach,Georgia,13225,70,3 +2020-05-24,Peach,Georgia,13225,70,3 +2020-05-25,Peach,Georgia,13225,70,3 +2020-05-26,Peach,Georgia,13225,70,3 +2020-05-27,Peach,Georgia,13225,70,4 +2020-05-28,Peach,Georgia,13225,70,4 +2020-05-29,Peach,Georgia,13225,72,4 +2020-05-30,Peach,Georgia,13225,72,4 +2020-05-31,Peach,Georgia,13225,72,4 +2020-06-01,Peach,Georgia,13225,73,4 +2020-06-02,Peach,Georgia,13225,74,4 +2020-06-03,Peach,Georgia,13225,76,4 +2020-06-04,Peach,Georgia,13225,76,4 +2020-06-05,Peach,Georgia,13225,76,5 +2020-06-06,Peach,Georgia,13225,76,5 +2020-06-07,Peach,Georgia,13225,78,5 +2020-06-08,Peach,Georgia,13225,78,6 +2020-06-09,Peach,Georgia,13225,80,7 +2020-06-10,Peach,Georgia,13225,80,7 +2020-06-11,Peach,Georgia,13225,80,8 +2020-06-12,Peach,Georgia,13225,86,8 +2020-06-13,Peach,Georgia,13225,86,9 +2020-06-14,Peach,Georgia,13225,90,8 +2020-06-15,Peach,Georgia,13225,91,8 +2020-06-16,Peach,Georgia,13225,91,8 +2020-06-17,Peach,Georgia,13225,92,9 +2020-06-18,Peach,Georgia,13225,92,9 +2020-06-19,Peach,Georgia,13225,92,9 +2020-06-20,Peach,Georgia,13225,93,9 +2020-06-21,Peach,Georgia,13225,93,9 +2020-06-22,Peach,Georgia,13225,93,9 +2020-06-23,Peach,Georgia,13225,95,9 +2020-06-24,Peach,Georgia,13225,95,9 +2020-06-25,Peach,Georgia,13225,95,9 +2020-06-26,Peach,Georgia,13225,97,9 +2020-06-27,Peach,Georgia,13225,98,9 +2020-06-28,Peach,Georgia,13225,98,9 +2020-06-29,Peach,Georgia,13225,101,9 +2020-06-30,Peach,Georgia,13225,103,9 +2020-07-01,Peach,Georgia,13225,107,9 +2020-07-02,Peach,Georgia,13225,113,9 +2020-07-03,Peach,Georgia,13225,115,9 +2020-07-04,Peach,Georgia,13225,117,9 +2020-07-05,Peach,Georgia,13225,118,9 +2020-07-06,Peach,Georgia,13225,122,9 +2020-07-07,Peach,Georgia,13225,126,10 +2020-07-08,Peach,Georgia,13225,130,10 +2020-07-09,Peach,Georgia,13225,133,10 +2020-03-20,Pickens,Georgia,13227,2,0 +2020-03-21,Pickens,Georgia,13227,2,0 +2020-03-22,Pickens,Georgia,13227,2,0 +2020-03-23,Pickens,Georgia,13227,3,0 +2020-03-24,Pickens,Georgia,13227,4,0 +2020-03-25,Pickens,Georgia,13227,4,0 +2020-03-26,Pickens,Georgia,13227,4,0 +2020-03-27,Pickens,Georgia,13227,4,1 +2020-03-28,Pickens,Georgia,13227,5,1 +2020-03-29,Pickens,Georgia,13227,5,1 +2020-03-30,Pickens,Georgia,13227,6,1 +2020-03-31,Pickens,Georgia,13227,7,1 +2020-04-01,Pickens,Georgia,13227,7,1 +2020-04-02,Pickens,Georgia,13227,9,1 +2020-04-03,Pickens,Georgia,13227,9,1 +2020-04-04,Pickens,Georgia,13227,9,1 +2020-04-05,Pickens,Georgia,13227,9,1 +2020-04-06,Pickens,Georgia,13227,9,2 +2020-04-07,Pickens,Georgia,13227,10,2 +2020-04-08,Pickens,Georgia,13227,10,2 +2020-04-09,Pickens,Georgia,13227,10,2 +2020-04-10,Pickens,Georgia,13227,10,2 +2020-04-11,Pickens,Georgia,13227,11,2 +2020-04-12,Pickens,Georgia,13227,11,2 +2020-04-13,Pickens,Georgia,13227,11,2 +2020-04-14,Pickens,Georgia,13227,13,2 +2020-04-15,Pickens,Georgia,13227,14,2 +2020-04-16,Pickens,Georgia,13227,15,2 +2020-04-17,Pickens,Georgia,13227,16,2 +2020-04-18,Pickens,Georgia,13227,18,2 +2020-04-19,Pickens,Georgia,13227,18,2 +2020-04-20,Pickens,Georgia,13227,18,2 +2020-04-21,Pickens,Georgia,13227,18,2 +2020-04-22,Pickens,Georgia,13227,18,2 +2020-04-23,Pickens,Georgia,13227,19,2 +2020-04-24,Pickens,Georgia,13227,20,2 +2020-04-25,Pickens,Georgia,13227,20,2 +2020-04-26,Pickens,Georgia,13227,21,2 +2020-04-27,Pickens,Georgia,13227,21,2 +2020-04-28,Pickens,Georgia,13227,26,2 +2020-04-29,Pickens,Georgia,13227,26,2 +2020-04-30,Pickens,Georgia,13227,26,2 +2020-05-01,Pickens,Georgia,13227,25,2 +2020-05-02,Pickens,Georgia,13227,27,2 +2020-05-03,Pickens,Georgia,13227,29,2 +2020-05-04,Pickens,Georgia,13227,29,2 +2020-05-05,Pickens,Georgia,13227,28,2 +2020-05-06,Pickens,Georgia,13227,29,2 +2020-05-07,Pickens,Georgia,13227,31,2 +2020-05-08,Pickens,Georgia,13227,32,2 +2020-05-09,Pickens,Georgia,13227,33,2 +2020-05-10,Pickens,Georgia,13227,33,2 +2020-05-11,Pickens,Georgia,13227,33,2 +2020-05-12,Pickens,Georgia,13227,35,3 +2020-05-13,Pickens,Georgia,13227,36,3 +2020-05-14,Pickens,Georgia,13227,35,3 +2020-05-15,Pickens,Georgia,13227,35,3 +2020-05-16,Pickens,Georgia,13227,35,3 +2020-05-17,Pickens,Georgia,13227,35,3 +2020-05-18,Pickens,Georgia,13227,38,3 +2020-05-19,Pickens,Georgia,13227,39,3 +2020-05-20,Pickens,Georgia,13227,39,3 +2020-05-21,Pickens,Georgia,13227,40,3 +2020-05-22,Pickens,Georgia,13227,41,3 +2020-05-23,Pickens,Georgia,13227,43,3 +2020-05-24,Pickens,Georgia,13227,43,3 +2020-05-25,Pickens,Georgia,13227,43,3 +2020-05-26,Pickens,Georgia,13227,43,3 +2020-05-27,Pickens,Georgia,13227,43,3 +2020-05-28,Pickens,Georgia,13227,45,4 +2020-05-29,Pickens,Georgia,13227,47,3 +2020-05-30,Pickens,Georgia,13227,47,3 +2020-05-31,Pickens,Georgia,13227,48,3 +2020-06-01,Pickens,Georgia,13227,48,3 +2020-06-02,Pickens,Georgia,13227,48,3 +2020-06-03,Pickens,Georgia,13227,50,3 +2020-06-04,Pickens,Georgia,13227,50,4 +2020-06-05,Pickens,Georgia,13227,50,4 +2020-06-06,Pickens,Georgia,13227,51,4 +2020-06-07,Pickens,Georgia,13227,52,4 +2020-06-08,Pickens,Georgia,13227,52,4 +2020-06-09,Pickens,Georgia,13227,53,4 +2020-06-10,Pickens,Georgia,13227,57,4 +2020-06-11,Pickens,Georgia,13227,59,4 +2020-06-12,Pickens,Georgia,13227,59,4 +2020-06-13,Pickens,Georgia,13227,65,4 +2020-06-14,Pickens,Georgia,13227,65,4 +2020-06-15,Pickens,Georgia,13227,68,4 +2020-06-16,Pickens,Georgia,13227,71,4 +2020-06-17,Pickens,Georgia,13227,73,4 +2020-06-18,Pickens,Georgia,13227,75,4 +2020-06-19,Pickens,Georgia,13227,78,5 +2020-06-20,Pickens,Georgia,13227,78,5 +2020-06-21,Pickens,Georgia,13227,80,5 +2020-06-22,Pickens,Georgia,13227,80,5 +2020-06-23,Pickens,Georgia,13227,83,5 +2020-06-24,Pickens,Georgia,13227,84,5 +2020-06-25,Pickens,Georgia,13227,85,5 +2020-06-26,Pickens,Georgia,13227,85,5 +2020-06-27,Pickens,Georgia,13227,88,5 +2020-06-28,Pickens,Georgia,13227,89,5 +2020-06-29,Pickens,Georgia,13227,92,5 +2020-06-30,Pickens,Georgia,13227,93,5 +2020-07-01,Pickens,Georgia,13227,95,5 +2020-07-02,Pickens,Georgia,13227,95,5 +2020-07-03,Pickens,Georgia,13227,97,5 +2020-07-04,Pickens,Georgia,13227,98,5 +2020-07-05,Pickens,Georgia,13227,101,5 +2020-07-06,Pickens,Georgia,13227,101,5 +2020-07-07,Pickens,Georgia,13227,101,5 +2020-07-08,Pickens,Georgia,13227,107,5 +2020-07-09,Pickens,Georgia,13227,112,5 +2020-03-23,Pierce,Georgia,13229,1,0 +2020-03-24,Pierce,Georgia,13229,1,0 +2020-03-25,Pierce,Georgia,13229,1,0 +2020-03-26,Pierce,Georgia,13229,1,0 +2020-03-27,Pierce,Georgia,13229,1,0 +2020-03-28,Pierce,Georgia,13229,2,0 +2020-03-29,Pierce,Georgia,13229,2,0 +2020-03-30,Pierce,Georgia,13229,2,0 +2020-03-31,Pierce,Georgia,13229,3,0 +2020-04-01,Pierce,Georgia,13229,7,0 +2020-04-02,Pierce,Georgia,13229,10,0 +2020-04-03,Pierce,Georgia,13229,16,0 +2020-04-04,Pierce,Georgia,13229,16,0 +2020-04-05,Pierce,Georgia,13229,16,0 +2020-04-06,Pierce,Georgia,13229,23,0 +2020-04-07,Pierce,Georgia,13229,32,1 +2020-04-08,Pierce,Georgia,13229,39,1 +2020-04-09,Pierce,Georgia,13229,40,1 +2020-04-10,Pierce,Georgia,13229,43,2 +2020-04-11,Pierce,Georgia,13229,45,2 +2020-04-12,Pierce,Georgia,13229,45,2 +2020-04-13,Pierce,Georgia,13229,45,2 +2020-04-14,Pierce,Georgia,13229,47,2 +2020-04-15,Pierce,Georgia,13229,48,2 +2020-04-16,Pierce,Georgia,13229,49,2 +2020-04-17,Pierce,Georgia,13229,49,2 +2020-04-18,Pierce,Georgia,13229,51,2 +2020-04-19,Pierce,Georgia,13229,51,2 +2020-04-20,Pierce,Georgia,13229,51,2 +2020-04-21,Pierce,Georgia,13229,51,2 +2020-04-22,Pierce,Georgia,13229,51,2 +2020-04-23,Pierce,Georgia,13229,51,2 +2020-04-24,Pierce,Georgia,13229,52,2 +2020-04-25,Pierce,Georgia,13229,52,2 +2020-04-26,Pierce,Georgia,13229,52,2 +2020-04-27,Pierce,Georgia,13229,54,2 +2020-04-28,Pierce,Georgia,13229,54,3 +2020-04-29,Pierce,Georgia,13229,54,3 +2020-04-30,Pierce,Georgia,13229,55,3 +2020-05-01,Pierce,Georgia,13229,55,3 +2020-05-02,Pierce,Georgia,13229,52,3 +2020-05-03,Pierce,Georgia,13229,51,3 +2020-05-04,Pierce,Georgia,13229,53,3 +2020-05-05,Pierce,Georgia,13229,57,3 +2020-05-06,Pierce,Georgia,13229,58,3 +2020-05-07,Pierce,Georgia,13229,59,3 +2020-05-08,Pierce,Georgia,13229,59,3 +2020-05-09,Pierce,Georgia,13229,65,3 +2020-05-10,Pierce,Georgia,13229,67,3 +2020-05-11,Pierce,Georgia,13229,67,4 +2020-05-12,Pierce,Georgia,13229,68,4 +2020-05-13,Pierce,Georgia,13229,69,4 +2020-05-14,Pierce,Georgia,13229,69,4 +2020-05-15,Pierce,Georgia,13229,69,4 +2020-05-16,Pierce,Georgia,13229,70,4 +2020-05-17,Pierce,Georgia,13229,71,4 +2020-05-18,Pierce,Georgia,13229,75,4 +2020-05-19,Pierce,Georgia,13229,81,4 +2020-05-20,Pierce,Georgia,13229,84,4 +2020-05-21,Pierce,Georgia,13229,85,4 +2020-05-22,Pierce,Georgia,13229,88,3 +2020-05-23,Pierce,Georgia,13229,88,3 +2020-05-24,Pierce,Georgia,13229,89,3 +2020-05-25,Pierce,Georgia,13229,90,3 +2020-05-26,Pierce,Georgia,13229,91,3 +2020-05-27,Pierce,Georgia,13229,92,3 +2020-05-28,Pierce,Georgia,13229,97,3 +2020-05-29,Pierce,Georgia,13229,98,3 +2020-05-30,Pierce,Georgia,13229,99,3 +2020-05-31,Pierce,Georgia,13229,100,3 +2020-06-01,Pierce,Georgia,13229,99,3 +2020-06-02,Pierce,Georgia,13229,100,3 +2020-06-03,Pierce,Georgia,13229,105,3 +2020-06-04,Pierce,Georgia,13229,109,4 +2020-06-05,Pierce,Georgia,13229,114,4 +2020-06-06,Pierce,Georgia,13229,116,4 +2020-06-07,Pierce,Georgia,13229,117,4 +2020-06-08,Pierce,Georgia,13229,119,4 +2020-06-09,Pierce,Georgia,13229,121,4 +2020-06-10,Pierce,Georgia,13229,122,4 +2020-06-11,Pierce,Georgia,13229,125,4 +2020-06-12,Pierce,Georgia,13229,126,4 +2020-06-13,Pierce,Georgia,13229,128,4 +2020-06-14,Pierce,Georgia,13229,128,4 +2020-06-15,Pierce,Georgia,13229,131,4 +2020-06-16,Pierce,Georgia,13229,132,4 +2020-06-17,Pierce,Georgia,13229,132,4 +2020-06-18,Pierce,Georgia,13229,132,4 +2020-06-19,Pierce,Georgia,13229,134,4 +2020-06-20,Pierce,Georgia,13229,135,4 +2020-06-21,Pierce,Georgia,13229,137,4 +2020-06-22,Pierce,Georgia,13229,140,4 +2020-06-23,Pierce,Georgia,13229,143,4 +2020-06-24,Pierce,Georgia,13229,148,4 +2020-06-25,Pierce,Georgia,13229,155,4 +2020-06-26,Pierce,Georgia,13229,156,4 +2020-06-27,Pierce,Georgia,13229,158,4 +2020-06-28,Pierce,Georgia,13229,161,4 +2020-06-29,Pierce,Georgia,13229,162,4 +2020-06-30,Pierce,Georgia,13229,170,4 +2020-07-01,Pierce,Georgia,13229,174,5 +2020-07-02,Pierce,Georgia,13229,181,5 +2020-07-03,Pierce,Georgia,13229,187,5 +2020-07-04,Pierce,Georgia,13229,196,5 +2020-07-05,Pierce,Georgia,13229,199,5 +2020-07-06,Pierce,Georgia,13229,211,5 +2020-07-07,Pierce,Georgia,13229,217,5 +2020-07-08,Pierce,Georgia,13229,223,5 +2020-07-09,Pierce,Georgia,13229,230,5 +2020-03-28,Pike,Georgia,13231,1,0 +2020-03-29,Pike,Georgia,13231,2,0 +2020-03-30,Pike,Georgia,13231,2,0 +2020-03-31,Pike,Georgia,13231,2,0 +2020-04-01,Pike,Georgia,13231,2,0 +2020-04-02,Pike,Georgia,13231,2,0 +2020-04-03,Pike,Georgia,13231,4,0 +2020-04-04,Pike,Georgia,13231,5,0 +2020-04-05,Pike,Georgia,13231,5,0 +2020-04-06,Pike,Georgia,13231,9,0 +2020-04-07,Pike,Georgia,13231,10,0 +2020-04-08,Pike,Georgia,13231,11,0 +2020-04-09,Pike,Georgia,13231,12,0 +2020-04-10,Pike,Georgia,13231,15,0 +2020-04-11,Pike,Georgia,13231,16,0 +2020-04-12,Pike,Georgia,13231,16,0 +2020-04-13,Pike,Georgia,13231,19,0 +2020-04-14,Pike,Georgia,13231,22,0 +2020-04-15,Pike,Georgia,13231,25,1 +2020-04-16,Pike,Georgia,13231,28,1 +2020-04-17,Pike,Georgia,13231,29,1 +2020-04-18,Pike,Georgia,13231,30,1 +2020-04-19,Pike,Georgia,13231,33,1 +2020-04-20,Pike,Georgia,13231,33,2 +2020-04-21,Pike,Georgia,13231,34,2 +2020-04-22,Pike,Georgia,13231,35,2 +2020-04-23,Pike,Georgia,13231,38,2 +2020-04-24,Pike,Georgia,13231,38,2 +2020-04-25,Pike,Georgia,13231,39,2 +2020-04-26,Pike,Georgia,13231,39,2 +2020-04-27,Pike,Georgia,13231,38,2 +2020-04-28,Pike,Georgia,13231,39,2 +2020-04-29,Pike,Georgia,13231,39,2 +2020-04-30,Pike,Georgia,13231,40,2 +2020-05-01,Pike,Georgia,13231,40,2 +2020-05-02,Pike,Georgia,13231,40,2 +2020-05-03,Pike,Georgia,13231,40,2 +2020-05-04,Pike,Georgia,13231,40,2 +2020-05-05,Pike,Georgia,13231,40,2 +2020-05-06,Pike,Georgia,13231,40,2 +2020-05-07,Pike,Georgia,13231,41,2 +2020-05-08,Pike,Georgia,13231,41,2 +2020-05-09,Pike,Georgia,13231,41,2 +2020-05-10,Pike,Georgia,13231,44,2 +2020-05-11,Pike,Georgia,13231,44,2 +2020-05-12,Pike,Georgia,13231,47,2 +2020-05-13,Pike,Georgia,13231,45,2 +2020-05-14,Pike,Georgia,13231,44,2 +2020-05-15,Pike,Georgia,13231,44,2 +2020-05-16,Pike,Georgia,13231,44,2 +2020-05-17,Pike,Georgia,13231,44,2 +2020-05-18,Pike,Georgia,13231,44,2 +2020-05-19,Pike,Georgia,13231,44,2 +2020-05-20,Pike,Georgia,13231,45,2 +2020-05-21,Pike,Georgia,13231,45,2 +2020-05-22,Pike,Georgia,13231,48,2 +2020-05-23,Pike,Georgia,13231,48,2 +2020-05-24,Pike,Georgia,13231,49,2 +2020-05-25,Pike,Georgia,13231,50,2 +2020-05-26,Pike,Georgia,13231,52,2 +2020-05-27,Pike,Georgia,13231,54,2 +2020-05-28,Pike,Georgia,13231,54,2 +2020-05-29,Pike,Georgia,13231,54,2 +2020-05-30,Pike,Georgia,13231,54,2 +2020-05-31,Pike,Georgia,13231,54,2 +2020-06-01,Pike,Georgia,13231,54,3 +2020-06-02,Pike,Georgia,13231,54,3 +2020-06-03,Pike,Georgia,13231,56,3 +2020-06-04,Pike,Georgia,13231,57,3 +2020-06-05,Pike,Georgia,13231,59,3 +2020-06-06,Pike,Georgia,13231,60,3 +2020-06-07,Pike,Georgia,13231,61,3 +2020-06-08,Pike,Georgia,13231,62,3 +2020-06-09,Pike,Georgia,13231,64,3 +2020-06-10,Pike,Georgia,13231,65,3 +2020-06-11,Pike,Georgia,13231,65,3 +2020-06-12,Pike,Georgia,13231,66,3 +2020-06-13,Pike,Georgia,13231,69,3 +2020-06-14,Pike,Georgia,13231,69,3 +2020-06-15,Pike,Georgia,13231,70,3 +2020-06-16,Pike,Georgia,13231,71,4 +2020-06-17,Pike,Georgia,13231,76,3 +2020-06-18,Pike,Georgia,13231,76,3 +2020-06-19,Pike,Georgia,13231,81,3 +2020-06-20,Pike,Georgia,13231,81,3 +2020-06-21,Pike,Georgia,13231,81,3 +2020-06-22,Pike,Georgia,13231,81,3 +2020-06-23,Pike,Georgia,13231,84,3 +2020-06-24,Pike,Georgia,13231,86,3 +2020-06-25,Pike,Georgia,13231,87,3 +2020-06-26,Pike,Georgia,13231,87,3 +2020-06-27,Pike,Georgia,13231,87,3 +2020-06-28,Pike,Georgia,13231,87,3 +2020-06-29,Pike,Georgia,13231,88,3 +2020-06-30,Pike,Georgia,13231,90,3 +2020-07-01,Pike,Georgia,13231,90,3 +2020-07-02,Pike,Georgia,13231,91,3 +2020-07-03,Pike,Georgia,13231,97,3 +2020-07-04,Pike,Georgia,13231,102,3 +2020-07-05,Pike,Georgia,13231,103,3 +2020-07-06,Pike,Georgia,13231,104,3 +2020-07-07,Pike,Georgia,13231,105,3 +2020-07-08,Pike,Georgia,13231,108,3 +2020-07-09,Pike,Georgia,13231,110,3 +2020-03-06,Polk,Georgia,13233,1,0 +2020-03-07,Polk,Georgia,13233,1,0 +2020-03-08,Polk,Georgia,13233,1,0 +2020-03-09,Polk,Georgia,13233,1,0 +2020-03-10,Polk,Georgia,13233,1,0 +2020-03-11,Polk,Georgia,13233,1,0 +2020-03-12,Polk,Georgia,13233,1,0 +2020-03-13,Polk,Georgia,13233,1,0 +2020-03-14,Polk,Georgia,13233,1,0 +2020-03-15,Polk,Georgia,13233,1,0 +2020-03-16,Polk,Georgia,13233,1,0 +2020-03-17,Polk,Georgia,13233,1,0 +2020-03-18,Polk,Georgia,13233,1,0 +2020-03-19,Polk,Georgia,13233,1,0 +2020-03-20,Polk,Georgia,13233,3,0 +2020-03-21,Polk,Georgia,13233,4,0 +2020-03-22,Polk,Georgia,13233,4,0 +2020-03-23,Polk,Georgia,13233,4,0 +2020-03-24,Polk,Georgia,13233,8,0 +2020-03-25,Polk,Georgia,13233,9,0 +2020-03-26,Polk,Georgia,13233,10,0 +2020-03-27,Polk,Georgia,13233,10,0 +2020-03-28,Polk,Georgia,13233,10,0 +2020-03-29,Polk,Georgia,13233,10,0 +2020-03-30,Polk,Georgia,13233,14,0 +2020-03-31,Polk,Georgia,13233,15,0 +2020-04-01,Polk,Georgia,13233,16,0 +2020-04-02,Polk,Georgia,13233,16,0 +2020-04-03,Polk,Georgia,13233,18,0 +2020-04-04,Polk,Georgia,13233,18,0 +2020-04-05,Polk,Georgia,13233,18,0 +2020-04-06,Polk,Georgia,13233,20,0 +2020-04-07,Polk,Georgia,13233,20,0 +2020-04-08,Polk,Georgia,13233,22,0 +2020-04-09,Polk,Georgia,13233,22,0 +2020-04-10,Polk,Georgia,13233,21,0 +2020-04-11,Polk,Georgia,13233,22,0 +2020-04-12,Polk,Georgia,13233,25,0 +2020-04-13,Polk,Georgia,13233,25,0 +2020-04-14,Polk,Georgia,13233,25,0 +2020-04-15,Polk,Georgia,13233,27,0 +2020-04-16,Polk,Georgia,13233,28,0 +2020-04-17,Polk,Georgia,13233,29,0 +2020-04-18,Polk,Georgia,13233,29,0 +2020-04-19,Polk,Georgia,13233,30,0 +2020-04-20,Polk,Georgia,13233,36,0 +2020-04-21,Polk,Georgia,13233,36,0 +2020-04-22,Polk,Georgia,13233,36,0 +2020-04-23,Polk,Georgia,13233,36,0 +2020-04-24,Polk,Georgia,13233,42,0 +2020-04-25,Polk,Georgia,13233,45,0 +2020-04-26,Polk,Georgia,13233,46,0 +2020-04-27,Polk,Georgia,13233,49,0 +2020-04-28,Polk,Georgia,13233,53,0 +2020-04-29,Polk,Georgia,13233,57,0 +2020-04-30,Polk,Georgia,13233,57,0 +2020-05-01,Polk,Georgia,13233,59,0 +2020-05-02,Polk,Georgia,13233,59,0 +2020-05-03,Polk,Georgia,13233,59,0 +2020-05-04,Polk,Georgia,13233,60,0 +2020-05-05,Polk,Georgia,13233,61,0 +2020-05-06,Polk,Georgia,13233,63,0 +2020-05-07,Polk,Georgia,13233,64,0 +2020-05-08,Polk,Georgia,13233,65,0 +2020-05-09,Polk,Georgia,13233,65,0 +2020-05-10,Polk,Georgia,13233,66,0 +2020-05-11,Polk,Georgia,13233,66,0 +2020-05-12,Polk,Georgia,13233,69,0 +2020-05-13,Polk,Georgia,13233,69,0 +2020-05-14,Polk,Georgia,13233,71,0 +2020-05-15,Polk,Georgia,13233,78,0 +2020-05-16,Polk,Georgia,13233,79,0 +2020-05-17,Polk,Georgia,13233,79,0 +2020-05-18,Polk,Georgia,13233,80,0 +2020-05-19,Polk,Georgia,13233,80,0 +2020-05-20,Polk,Georgia,13233,86,0 +2020-05-21,Polk,Georgia,13233,87,0 +2020-05-22,Polk,Georgia,13233,93,0 +2020-05-23,Polk,Georgia,13233,96,0 +2020-05-24,Polk,Georgia,13233,95,0 +2020-05-25,Polk,Georgia,13233,97,0 +2020-05-26,Polk,Georgia,13233,101,1 +2020-05-27,Polk,Georgia,13233,107,1 +2020-05-28,Polk,Georgia,13233,113,1 +2020-05-29,Polk,Georgia,13233,118,1 +2020-05-30,Polk,Georgia,13233,118,1 +2020-05-31,Polk,Georgia,13233,118,1 +2020-06-01,Polk,Georgia,13233,124,1 +2020-06-02,Polk,Georgia,13233,126,1 +2020-06-03,Polk,Georgia,13233,131,1 +2020-06-04,Polk,Georgia,13233,138,1 +2020-06-05,Polk,Georgia,13233,139,1 +2020-06-06,Polk,Georgia,13233,139,1 +2020-06-07,Polk,Georgia,13233,140,1 +2020-06-08,Polk,Georgia,13233,145,1 +2020-06-09,Polk,Georgia,13233,152,1 +2020-06-10,Polk,Georgia,13233,154,1 +2020-06-11,Polk,Georgia,13233,157,1 +2020-06-12,Polk,Georgia,13233,162,1 +2020-06-13,Polk,Georgia,13233,164,1 +2020-06-14,Polk,Georgia,13233,164,1 +2020-06-15,Polk,Georgia,13233,165,1 +2020-06-16,Polk,Georgia,13233,167,1 +2020-06-17,Polk,Georgia,13233,174,1 +2020-06-18,Polk,Georgia,13233,175,1 +2020-06-19,Polk,Georgia,13233,178,1 +2020-06-20,Polk,Georgia,13233,178,1 +2020-06-21,Polk,Georgia,13233,178,1 +2020-06-22,Polk,Georgia,13233,184,1 +2020-06-23,Polk,Georgia,13233,188,1 +2020-06-24,Polk,Georgia,13233,192,1 +2020-06-25,Polk,Georgia,13233,197,1 +2020-06-26,Polk,Georgia,13233,200,1 +2020-06-27,Polk,Georgia,13233,203,1 +2020-06-28,Polk,Georgia,13233,205,1 +2020-06-29,Polk,Georgia,13233,206,1 +2020-06-30,Polk,Georgia,13233,205,2 +2020-07-01,Polk,Georgia,13233,208,2 +2020-07-02,Polk,Georgia,13233,209,1 +2020-07-03,Polk,Georgia,13233,224,1 +2020-07-04,Polk,Georgia,13233,231,1 +2020-07-05,Polk,Georgia,13233,234,1 +2020-07-06,Polk,Georgia,13233,233,1 +2020-07-07,Polk,Georgia,13233,254,1 +2020-07-08,Polk,Georgia,13233,274,1 +2020-07-09,Polk,Georgia,13233,283,1 +2020-03-24,Pulaski,Georgia,13235,1,0 +2020-03-25,Pulaski,Georgia,13235,1,0 +2020-03-26,Pulaski,Georgia,13235,1,0 +2020-03-27,Pulaski,Georgia,13235,2,0 +2020-03-28,Pulaski,Georgia,13235,3,0 +2020-03-29,Pulaski,Georgia,13235,3,0 +2020-03-30,Pulaski,Georgia,13235,3,0 +2020-03-31,Pulaski,Georgia,13235,3,0 +2020-04-01,Pulaski,Georgia,13235,4,0 +2020-04-02,Pulaski,Georgia,13235,5,0 +2020-04-03,Pulaski,Georgia,13235,5,0 +2020-04-04,Pulaski,Georgia,13235,7,0 +2020-04-05,Pulaski,Georgia,13235,6,0 +2020-04-06,Pulaski,Georgia,13235,8,0 +2020-04-07,Pulaski,Georgia,13235,8,0 +2020-04-08,Pulaski,Georgia,13235,9,0 +2020-04-09,Pulaski,Georgia,13235,9,0 +2020-04-10,Pulaski,Georgia,13235,9,0 +2020-04-11,Pulaski,Georgia,13235,9,0 +2020-04-12,Pulaski,Georgia,13235,9,0 +2020-04-13,Pulaski,Georgia,13235,11,1 +2020-04-14,Pulaski,Georgia,13235,11,1 +2020-04-15,Pulaski,Georgia,13235,11,1 +2020-04-16,Pulaski,Georgia,13235,16,1 +2020-04-17,Pulaski,Georgia,13235,16,1 +2020-04-18,Pulaski,Georgia,13235,16,1 +2020-04-19,Pulaski,Georgia,13235,18,1 +2020-04-20,Pulaski,Georgia,13235,17,1 +2020-04-21,Pulaski,Georgia,13235,17,1 +2020-04-22,Pulaski,Georgia,13235,17,1 +2020-04-23,Pulaski,Georgia,13235,20,1 +2020-04-24,Pulaski,Georgia,13235,20,1 +2020-04-25,Pulaski,Georgia,13235,20,1 +2020-04-26,Pulaski,Georgia,13235,20,1 +2020-04-27,Pulaski,Georgia,13235,24,1 +2020-04-28,Pulaski,Georgia,13235,25,1 +2020-04-29,Pulaski,Georgia,13235,27,1 +2020-04-30,Pulaski,Georgia,13235,30,1 +2020-05-01,Pulaski,Georgia,13235,31,1 +2020-05-02,Pulaski,Georgia,13235,31,1 +2020-05-03,Pulaski,Georgia,13235,32,1 +2020-05-04,Pulaski,Georgia,13235,33,1 +2020-05-05,Pulaski,Georgia,13235,33,1 +2020-05-06,Pulaski,Georgia,13235,33,1 +2020-05-07,Pulaski,Georgia,13235,34,1 +2020-05-08,Pulaski,Georgia,13235,33,1 +2020-05-09,Pulaski,Georgia,13235,34,1 +2020-05-10,Pulaski,Georgia,13235,34,1 +2020-05-11,Pulaski,Georgia,13235,34,1 +2020-05-12,Pulaski,Georgia,13235,34,1 +2020-05-13,Pulaski,Georgia,13235,34,1 +2020-05-14,Pulaski,Georgia,13235,38,1 +2020-05-15,Pulaski,Georgia,13235,36,1 +2020-05-16,Pulaski,Georgia,13235,36,1 +2020-05-17,Pulaski,Georgia,13235,36,2 +2020-05-18,Pulaski,Georgia,13235,36,2 +2020-05-19,Pulaski,Georgia,13235,36,2 +2020-05-20,Pulaski,Georgia,13235,35,2 +2020-05-21,Pulaski,Georgia,13235,38,2 +2020-05-22,Pulaski,Georgia,13235,38,2 +2020-05-23,Pulaski,Georgia,13235,39,2 +2020-05-24,Pulaski,Georgia,13235,39,2 +2020-05-25,Pulaski,Georgia,13235,39,2 +2020-05-26,Pulaski,Georgia,13235,39,2 +2020-05-27,Pulaski,Georgia,13235,39,2 +2020-05-28,Pulaski,Georgia,13235,40,2 +2020-05-29,Pulaski,Georgia,13235,42,2 +2020-05-30,Pulaski,Georgia,13235,42,2 +2020-05-31,Pulaski,Georgia,13235,42,2 +2020-06-01,Pulaski,Georgia,13235,42,2 +2020-06-02,Pulaski,Georgia,13235,42,2 +2020-06-03,Pulaski,Georgia,13235,43,2 +2020-06-04,Pulaski,Georgia,13235,43,2 +2020-06-05,Pulaski,Georgia,13235,43,2 +2020-06-06,Pulaski,Georgia,13235,43,2 +2020-06-07,Pulaski,Georgia,13235,43,2 +2020-06-08,Pulaski,Georgia,13235,45,2 +2020-06-09,Pulaski,Georgia,13235,46,2 +2020-06-10,Pulaski,Georgia,13235,46,2 +2020-06-11,Pulaski,Georgia,13235,46,2 +2020-06-12,Pulaski,Georgia,13235,46,2 +2020-06-13,Pulaski,Georgia,13235,46,2 +2020-06-14,Pulaski,Georgia,13235,46,2 +2020-06-15,Pulaski,Georgia,13235,46,2 +2020-06-16,Pulaski,Georgia,13235,46,2 +2020-06-17,Pulaski,Georgia,13235,46,2 +2020-06-18,Pulaski,Georgia,13235,46,2 +2020-06-19,Pulaski,Georgia,13235,46,2 +2020-06-20,Pulaski,Georgia,13235,46,2 +2020-06-21,Pulaski,Georgia,13235,46,2 +2020-06-22,Pulaski,Georgia,13235,46,2 +2020-06-23,Pulaski,Georgia,13235,48,2 +2020-06-24,Pulaski,Georgia,13235,47,2 +2020-06-25,Pulaski,Georgia,13235,47,2 +2020-06-26,Pulaski,Georgia,13235,48,2 +2020-06-27,Pulaski,Georgia,13235,49,2 +2020-06-28,Pulaski,Georgia,13235,49,2 +2020-06-29,Pulaski,Georgia,13235,49,2 +2020-06-30,Pulaski,Georgia,13235,50,2 +2020-07-01,Pulaski,Georgia,13235,50,2 +2020-07-02,Pulaski,Georgia,13235,51,2 +2020-07-03,Pulaski,Georgia,13235,51,2 +2020-07-04,Pulaski,Georgia,13235,53,2 +2020-07-05,Pulaski,Georgia,13235,54,2 +2020-07-06,Pulaski,Georgia,13235,55,2 +2020-07-07,Pulaski,Georgia,13235,57,2 +2020-07-08,Pulaski,Georgia,13235,57,2 +2020-07-09,Pulaski,Georgia,13235,57,2 +2020-04-01,Putnam,Georgia,13237,1,0 +2020-04-02,Putnam,Georgia,13237,2,0 +2020-04-03,Putnam,Georgia,13237,2,0 +2020-04-04,Putnam,Georgia,13237,2,0 +2020-04-05,Putnam,Georgia,13237,2,0 +2020-04-06,Putnam,Georgia,13237,3,0 +2020-04-07,Putnam,Georgia,13237,5,0 +2020-04-08,Putnam,Georgia,13237,5,0 +2020-04-09,Putnam,Georgia,13237,5,0 +2020-04-10,Putnam,Georgia,13237,5,0 +2020-04-11,Putnam,Georgia,13237,5,0 +2020-04-12,Putnam,Georgia,13237,6,0 +2020-04-13,Putnam,Georgia,13237,7,0 +2020-04-14,Putnam,Georgia,13237,12,0 +2020-04-15,Putnam,Georgia,13237,12,0 +2020-04-16,Putnam,Georgia,13237,14,0 +2020-04-17,Putnam,Georgia,13237,17,1 +2020-04-18,Putnam,Georgia,13237,19,1 +2020-04-19,Putnam,Georgia,13237,22,1 +2020-04-20,Putnam,Georgia,13237,25,2 +2020-04-21,Putnam,Georgia,13237,26,2 +2020-04-22,Putnam,Georgia,13237,27,2 +2020-04-23,Putnam,Georgia,13237,29,2 +2020-04-24,Putnam,Georgia,13237,31,3 +2020-04-25,Putnam,Georgia,13237,31,3 +2020-04-26,Putnam,Georgia,13237,31,3 +2020-04-27,Putnam,Georgia,13237,37,5 +2020-04-28,Putnam,Georgia,13237,37,5 +2020-04-29,Putnam,Georgia,13237,37,5 +2020-04-30,Putnam,Georgia,13237,40,5 +2020-05-01,Putnam,Georgia,13237,42,5 +2020-05-02,Putnam,Georgia,13237,42,5 +2020-05-03,Putnam,Georgia,13237,41,5 +2020-05-04,Putnam,Georgia,13237,46,5 +2020-05-05,Putnam,Georgia,13237,49,5 +2020-05-06,Putnam,Georgia,13237,50,5 +2020-05-07,Putnam,Georgia,13237,52,5 +2020-05-08,Putnam,Georgia,13237,54,6 +2020-05-09,Putnam,Georgia,13237,55,6 +2020-05-10,Putnam,Georgia,13237,55,6 +2020-05-11,Putnam,Georgia,13237,58,6 +2020-05-12,Putnam,Georgia,13237,59,6 +2020-05-13,Putnam,Georgia,13237,59,6 +2020-05-14,Putnam,Georgia,13237,60,6 +2020-05-15,Putnam,Georgia,13237,62,7 +2020-05-16,Putnam,Georgia,13237,77,7 +2020-05-17,Putnam,Georgia,13237,77,7 +2020-05-18,Putnam,Georgia,13237,79,7 +2020-05-19,Putnam,Georgia,13237,80,7 +2020-05-20,Putnam,Georgia,13237,83,7 +2020-05-21,Putnam,Georgia,13237,86,7 +2020-05-22,Putnam,Georgia,13237,84,8 +2020-05-23,Putnam,Georgia,13237,85,8 +2020-05-24,Putnam,Georgia,13237,87,8 +2020-05-25,Putnam,Georgia,13237,88,8 +2020-05-26,Putnam,Georgia,13237,88,8 +2020-05-27,Putnam,Georgia,13237,88,9 +2020-05-28,Putnam,Georgia,13237,88,9 +2020-05-29,Putnam,Georgia,13237,89,9 +2020-05-30,Putnam,Georgia,13237,90,9 +2020-05-31,Putnam,Georgia,13237,90,9 +2020-06-01,Putnam,Georgia,13237,93,9 +2020-06-02,Putnam,Georgia,13237,93,9 +2020-06-03,Putnam,Georgia,13237,95,9 +2020-06-04,Putnam,Georgia,13237,97,9 +2020-06-05,Putnam,Georgia,13237,99,9 +2020-06-06,Putnam,Georgia,13237,100,9 +2020-06-07,Putnam,Georgia,13237,100,9 +2020-06-08,Putnam,Georgia,13237,100,9 +2020-06-09,Putnam,Georgia,13237,103,10 +2020-06-10,Putnam,Georgia,13237,103,10 +2020-06-11,Putnam,Georgia,13237,104,10 +2020-06-12,Putnam,Georgia,13237,104,10 +2020-06-13,Putnam,Georgia,13237,109,11 +2020-06-14,Putnam,Georgia,13237,109,11 +2020-06-15,Putnam,Georgia,13237,112,12 +2020-06-16,Putnam,Georgia,13237,111,11 +2020-06-17,Putnam,Georgia,13237,112,11 +2020-06-18,Putnam,Georgia,13237,112,11 +2020-06-19,Putnam,Georgia,13237,113,11 +2020-06-20,Putnam,Georgia,13237,115,11 +2020-06-21,Putnam,Georgia,13237,120,11 +2020-06-22,Putnam,Georgia,13237,120,11 +2020-06-23,Putnam,Georgia,13237,123,11 +2020-06-24,Putnam,Georgia,13237,127,11 +2020-06-25,Putnam,Georgia,13237,128,12 +2020-06-26,Putnam,Georgia,13237,131,12 +2020-06-27,Putnam,Georgia,13237,136,12 +2020-06-28,Putnam,Georgia,13237,137,12 +2020-06-29,Putnam,Georgia,13237,142,12 +2020-06-30,Putnam,Georgia,13237,148,12 +2020-07-01,Putnam,Georgia,13237,157,12 +2020-07-02,Putnam,Georgia,13237,160,12 +2020-07-03,Putnam,Georgia,13237,165,12 +2020-07-04,Putnam,Georgia,13237,170,12 +2020-07-05,Putnam,Georgia,13237,181,12 +2020-07-06,Putnam,Georgia,13237,194,12 +2020-07-07,Putnam,Georgia,13237,199,12 +2020-07-08,Putnam,Georgia,13237,201,12 +2020-07-09,Putnam,Georgia,13237,197,12 +2020-04-03,Quitman,Georgia,13239,1,0 +2020-04-04,Quitman,Georgia,13239,1,0 +2020-04-05,Quitman,Georgia,13239,1,0 +2020-04-06,Quitman,Georgia,13239,1,0 +2020-04-07,Quitman,Georgia,13239,4,0 +2020-04-08,Quitman,Georgia,13239,4,0 +2020-04-09,Quitman,Georgia,13239,4,0 +2020-04-10,Quitman,Georgia,13239,3,0 +2020-04-11,Quitman,Georgia,13239,3,0 +2020-04-12,Quitman,Georgia,13239,3,0 +2020-04-13,Quitman,Georgia,13239,3,0 +2020-04-14,Quitman,Georgia,13239,3,0 +2020-04-15,Quitman,Georgia,13239,3,1 +2020-04-16,Quitman,Georgia,13239,3,1 +2020-04-17,Quitman,Georgia,13239,3,1 +2020-04-18,Quitman,Georgia,13239,3,1 +2020-04-19,Quitman,Georgia,13239,3,1 +2020-04-20,Quitman,Georgia,13239,3,1 +2020-04-21,Quitman,Georgia,13239,3,1 +2020-04-22,Quitman,Georgia,13239,3,1 +2020-04-23,Quitman,Georgia,13239,3,1 +2020-04-24,Quitman,Georgia,13239,3,1 +2020-04-25,Quitman,Georgia,13239,3,1 +2020-04-26,Quitman,Georgia,13239,3,1 +2020-04-27,Quitman,Georgia,13239,4,1 +2020-04-28,Quitman,Georgia,13239,5,1 +2020-04-29,Quitman,Georgia,13239,4,1 +2020-04-30,Quitman,Georgia,13239,4,1 +2020-05-01,Quitman,Georgia,13239,5,1 +2020-05-02,Quitman,Georgia,13239,5,1 +2020-05-03,Quitman,Georgia,13239,8,1 +2020-05-04,Quitman,Georgia,13239,6,1 +2020-05-05,Quitman,Georgia,13239,6,1 +2020-05-06,Quitman,Georgia,13239,6,1 +2020-05-07,Quitman,Georgia,13239,6,1 +2020-05-08,Quitman,Georgia,13239,6,1 +2020-05-09,Quitman,Georgia,13239,6,1 +2020-05-10,Quitman,Georgia,13239,6,1 +2020-05-11,Quitman,Georgia,13239,6,1 +2020-05-12,Quitman,Georgia,13239,7,1 +2020-05-13,Quitman,Georgia,13239,7,1 +2020-05-14,Quitman,Georgia,13239,7,1 +2020-05-15,Quitman,Georgia,13239,8,1 +2020-05-16,Quitman,Georgia,13239,8,1 +2020-05-17,Quitman,Georgia,13239,8,1 +2020-05-18,Quitman,Georgia,13239,8,1 +2020-05-19,Quitman,Georgia,13239,8,1 +2020-05-20,Quitman,Georgia,13239,8,1 +2020-05-21,Quitman,Georgia,13239,8,1 +2020-05-22,Quitman,Georgia,13239,10,1 +2020-05-23,Quitman,Georgia,13239,11,1 +2020-05-24,Quitman,Georgia,13239,11,1 +2020-05-25,Quitman,Georgia,13239,11,1 +2020-05-26,Quitman,Georgia,13239,12,1 +2020-05-27,Quitman,Georgia,13239,12,1 +2020-05-28,Quitman,Georgia,13239,12,1 +2020-05-29,Quitman,Georgia,13239,12,1 +2020-05-30,Quitman,Georgia,13239,12,1 +2020-05-31,Quitman,Georgia,13239,12,1 +2020-06-01,Quitman,Georgia,13239,12,1 +2020-06-02,Quitman,Georgia,13239,12,1 +2020-06-03,Quitman,Georgia,13239,14,1 +2020-06-04,Quitman,Georgia,13239,14,1 +2020-06-05,Quitman,Georgia,13239,14,1 +2020-06-06,Quitman,Georgia,13239,13,1 +2020-06-07,Quitman,Georgia,13239,14,1 +2020-06-08,Quitman,Georgia,13239,14,1 +2020-06-09,Quitman,Georgia,13239,14,1 +2020-06-10,Quitman,Georgia,13239,15,1 +2020-06-11,Quitman,Georgia,13239,15,1 +2020-06-12,Quitman,Georgia,13239,14,1 +2020-06-13,Quitman,Georgia,13239,14,1 +2020-06-14,Quitman,Georgia,13239,14,1 +2020-06-15,Quitman,Georgia,13239,14,1 +2020-06-16,Quitman,Georgia,13239,14,1 +2020-06-17,Quitman,Georgia,13239,14,1 +2020-06-18,Quitman,Georgia,13239,15,1 +2020-06-19,Quitman,Georgia,13239,15,1 +2020-06-20,Quitman,Georgia,13239,15,1 +2020-06-21,Quitman,Georgia,13239,15,1 +2020-06-22,Quitman,Georgia,13239,15,1 +2020-06-23,Quitman,Georgia,13239,15,1 +2020-06-24,Quitman,Georgia,13239,15,1 +2020-06-25,Quitman,Georgia,13239,15,1 +2020-06-26,Quitman,Georgia,13239,15,1 +2020-06-27,Quitman,Georgia,13239,15,1 +2020-06-28,Quitman,Georgia,13239,15,1 +2020-06-29,Quitman,Georgia,13239,15,1 +2020-06-30,Quitman,Georgia,13239,17,1 +2020-07-01,Quitman,Georgia,13239,17,1 +2020-07-02,Quitman,Georgia,13239,17,1 +2020-07-03,Quitman,Georgia,13239,17,1 +2020-07-04,Quitman,Georgia,13239,18,1 +2020-07-05,Quitman,Georgia,13239,18,1 +2020-07-06,Quitman,Georgia,13239,18,1 +2020-07-07,Quitman,Georgia,13239,19,1 +2020-07-08,Quitman,Georgia,13239,19,1 +2020-07-09,Quitman,Georgia,13239,20,1 +2020-03-31,Rabun,Georgia,13241,2,0 +2020-04-01,Rabun,Georgia,13241,2,0 +2020-04-02,Rabun,Georgia,13241,2,0 +2020-04-03,Rabun,Georgia,13241,2,0 +2020-04-04,Rabun,Georgia,13241,3,0 +2020-04-05,Rabun,Georgia,13241,3,0 +2020-04-06,Rabun,Georgia,13241,3,0 +2020-04-07,Rabun,Georgia,13241,5,0 +2020-04-08,Rabun,Georgia,13241,6,0 +2020-04-09,Rabun,Georgia,13241,6,0 +2020-04-10,Rabun,Georgia,13241,6,0 +2020-04-11,Rabun,Georgia,13241,6,0 +2020-04-12,Rabun,Georgia,13241,6,0 +2020-04-13,Rabun,Georgia,13241,7,0 +2020-04-14,Rabun,Georgia,13241,7,0 +2020-04-15,Rabun,Georgia,13241,7,0 +2020-04-16,Rabun,Georgia,13241,7,0 +2020-04-17,Rabun,Georgia,13241,7,0 +2020-04-18,Rabun,Georgia,13241,7,0 +2020-04-19,Rabun,Georgia,13241,7,0 +2020-04-20,Rabun,Georgia,13241,8,0 +2020-04-21,Rabun,Georgia,13241,8,0 +2020-04-22,Rabun,Georgia,13241,9,0 +2020-04-23,Rabun,Georgia,13241,9,0 +2020-04-24,Rabun,Georgia,13241,9,0 +2020-04-25,Rabun,Georgia,13241,9,0 +2020-04-26,Rabun,Georgia,13241,9,0 +2020-04-27,Rabun,Georgia,13241,10,0 +2020-04-28,Rabun,Georgia,13241,12,1 +2020-04-29,Rabun,Georgia,13241,12,0 +2020-04-30,Rabun,Georgia,13241,13,0 +2020-05-01,Rabun,Georgia,13241,14,0 +2020-05-02,Rabun,Georgia,13241,13,0 +2020-05-03,Rabun,Georgia,13241,13,0 +2020-05-04,Rabun,Georgia,13241,13,1 +2020-05-05,Rabun,Georgia,13241,13,1 +2020-05-06,Rabun,Georgia,13241,13,1 +2020-05-07,Rabun,Georgia,13241,13,1 +2020-05-08,Rabun,Georgia,13241,13,1 +2020-05-09,Rabun,Georgia,13241,14,1 +2020-05-10,Rabun,Georgia,13241,14,1 +2020-05-11,Rabun,Georgia,13241,14,1 +2020-05-12,Rabun,Georgia,13241,14,1 +2020-05-13,Rabun,Georgia,13241,14,1 +2020-05-14,Rabun,Georgia,13241,14,1 +2020-05-15,Rabun,Georgia,13241,14,1 +2020-05-16,Rabun,Georgia,13241,14,1 +2020-05-17,Rabun,Georgia,13241,15,2 +2020-05-18,Rabun,Georgia,13241,15,2 +2020-05-19,Rabun,Georgia,13241,15,1 +2020-05-20,Rabun,Georgia,13241,15,1 +2020-05-21,Rabun,Georgia,13241,15,1 +2020-05-22,Rabun,Georgia,13241,15,1 +2020-05-23,Rabun,Georgia,13241,15,1 +2020-05-24,Rabun,Georgia,13241,15,1 +2020-05-25,Rabun,Georgia,13241,15,1 +2020-05-26,Rabun,Georgia,13241,16,1 +2020-05-27,Rabun,Georgia,13241,17,1 +2020-05-28,Rabun,Georgia,13241,19,1 +2020-05-29,Rabun,Georgia,13241,20,1 +2020-05-30,Rabun,Georgia,13241,20,1 +2020-05-31,Rabun,Georgia,13241,20,1 +2020-06-01,Rabun,Georgia,13241,24,1 +2020-06-02,Rabun,Georgia,13241,23,1 +2020-06-03,Rabun,Georgia,13241,25,1 +2020-06-04,Rabun,Georgia,13241,25,1 +2020-06-05,Rabun,Georgia,13241,26,1 +2020-06-06,Rabun,Georgia,13241,26,1 +2020-06-07,Rabun,Georgia,13241,26,1 +2020-06-08,Rabun,Georgia,13241,26,1 +2020-06-09,Rabun,Georgia,13241,27,1 +2020-06-10,Rabun,Georgia,13241,28,1 +2020-06-11,Rabun,Georgia,13241,30,2 +2020-06-12,Rabun,Georgia,13241,30,2 +2020-06-13,Rabun,Georgia,13241,31,2 +2020-06-14,Rabun,Georgia,13241,31,2 +2020-06-15,Rabun,Georgia,13241,32,3 +2020-06-16,Rabun,Georgia,13241,33,3 +2020-06-17,Rabun,Georgia,13241,33,3 +2020-06-18,Rabun,Georgia,13241,33,4 +2020-06-19,Rabun,Georgia,13241,33,4 +2020-06-20,Rabun,Georgia,13241,35,4 +2020-06-21,Rabun,Georgia,13241,35,4 +2020-06-22,Rabun,Georgia,13241,35,4 +2020-06-23,Rabun,Georgia,13241,36,3 +2020-06-24,Rabun,Georgia,13241,40,3 +2020-06-25,Rabun,Georgia,13241,40,3 +2020-06-26,Rabun,Georgia,13241,39,3 +2020-06-27,Rabun,Georgia,13241,41,3 +2020-06-28,Rabun,Georgia,13241,41,3 +2020-06-29,Rabun,Georgia,13241,42,3 +2020-06-30,Rabun,Georgia,13241,42,3 +2020-07-01,Rabun,Georgia,13241,45,3 +2020-07-02,Rabun,Georgia,13241,50,3 +2020-07-03,Rabun,Georgia,13241,53,3 +2020-07-04,Rabun,Georgia,13241,57,3 +2020-07-05,Rabun,Georgia,13241,57,3 +2020-07-06,Rabun,Georgia,13241,57,3 +2020-07-07,Rabun,Georgia,13241,57,3 +2020-07-08,Rabun,Georgia,13241,59,3 +2020-07-09,Rabun,Georgia,13241,61,3 +2020-03-20,Randolph,Georgia,13243,1,0 +2020-03-21,Randolph,Georgia,13243,1,0 +2020-03-22,Randolph,Georgia,13243,1,0 +2020-03-23,Randolph,Georgia,13243,1,0 +2020-03-24,Randolph,Georgia,13243,1,0 +2020-03-25,Randolph,Georgia,13243,1,0 +2020-03-26,Randolph,Georgia,13243,2,0 +2020-03-27,Randolph,Georgia,13243,3,0 +2020-03-28,Randolph,Georgia,13243,3,0 +2020-03-29,Randolph,Georgia,13243,3,0 +2020-03-30,Randolph,Georgia,13243,3,0 +2020-03-31,Randolph,Georgia,13243,5,0 +2020-04-01,Randolph,Georgia,13243,5,0 +2020-04-02,Randolph,Georgia,13243,4,0 +2020-04-03,Randolph,Georgia,13243,11,0 +2020-04-04,Randolph,Georgia,13243,18,0 +2020-04-05,Randolph,Georgia,13243,18,0 +2020-04-06,Randolph,Georgia,13243,26,2 +2020-04-07,Randolph,Georgia,13243,83,4 +2020-04-08,Randolph,Georgia,13243,87,3 +2020-04-09,Randolph,Georgia,13243,95,4 +2020-04-10,Randolph,Georgia,13243,102,5 +2020-04-11,Randolph,Georgia,13243,103,5 +2020-04-12,Randolph,Georgia,13243,111,5 +2020-04-13,Randolph,Georgia,13243,122,6 +2020-04-14,Randolph,Georgia,13243,131,6 +2020-04-15,Randolph,Georgia,13243,131,7 +2020-04-16,Randolph,Georgia,13243,135,11 +2020-04-17,Randolph,Georgia,13243,140,12 +2020-04-18,Randolph,Georgia,13243,141,13 +2020-04-19,Randolph,Georgia,13243,144,13 +2020-04-20,Randolph,Georgia,13243,145,15 +2020-04-21,Randolph,Georgia,13243,146,16 +2020-04-22,Randolph,Georgia,13243,148,17 +2020-04-23,Randolph,Georgia,13243,149,18 +2020-04-24,Randolph,Georgia,13243,152,18 +2020-04-25,Randolph,Georgia,13243,153,19 +2020-04-26,Randolph,Georgia,13243,153,19 +2020-04-27,Randolph,Georgia,13243,156,19 +2020-04-28,Randolph,Georgia,13243,156,19 +2020-04-29,Randolph,Georgia,13243,159,19 +2020-04-30,Randolph,Georgia,13243,159,19 +2020-05-01,Randolph,Georgia,13243,162,19 +2020-05-02,Randolph,Georgia,13243,163,19 +2020-05-03,Randolph,Georgia,13243,163,19 +2020-05-04,Randolph,Georgia,13243,164,19 +2020-05-05,Randolph,Georgia,13243,165,20 +2020-05-06,Randolph,Georgia,13243,167,20 +2020-05-07,Randolph,Georgia,13243,167,20 +2020-05-08,Randolph,Georgia,13243,167,21 +2020-05-09,Randolph,Georgia,13243,168,21 +2020-05-10,Randolph,Georgia,13243,168,21 +2020-05-11,Randolph,Georgia,13243,168,21 +2020-05-12,Randolph,Georgia,13243,169,21 +2020-05-13,Randolph,Georgia,13243,169,21 +2020-05-14,Randolph,Georgia,13243,169,21 +2020-05-15,Randolph,Georgia,13243,169,21 +2020-05-16,Randolph,Georgia,13243,169,21 +2020-05-17,Randolph,Georgia,13243,169,21 +2020-05-18,Randolph,Georgia,13243,169,21 +2020-05-19,Randolph,Georgia,13243,169,21 +2020-05-20,Randolph,Georgia,13243,170,21 +2020-05-21,Randolph,Georgia,13243,170,20 +2020-05-22,Randolph,Georgia,13243,170,19 +2020-05-23,Randolph,Georgia,13243,170,19 +2020-05-24,Randolph,Georgia,13243,170,19 +2020-05-25,Randolph,Georgia,13243,174,19 +2020-05-26,Randolph,Georgia,13243,175,19 +2020-05-27,Randolph,Georgia,13243,176,19 +2020-05-28,Randolph,Georgia,13243,177,19 +2020-05-29,Randolph,Georgia,13243,179,19 +2020-05-30,Randolph,Georgia,13243,179,19 +2020-05-31,Randolph,Georgia,13243,179,19 +2020-06-01,Randolph,Georgia,13243,179,19 +2020-06-02,Randolph,Georgia,13243,179,19 +2020-06-03,Randolph,Georgia,13243,179,19 +2020-06-04,Randolph,Georgia,13243,181,19 +2020-06-05,Randolph,Georgia,13243,181,19 +2020-06-06,Randolph,Georgia,13243,183,19 +2020-06-07,Randolph,Georgia,13243,183,19 +2020-06-08,Randolph,Georgia,13243,183,19 +2020-06-09,Randolph,Georgia,13243,187,20 +2020-06-10,Randolph,Georgia,13243,186,20 +2020-06-11,Randolph,Georgia,13243,188,20 +2020-06-12,Randolph,Georgia,13243,190,21 +2020-06-13,Randolph,Georgia,13243,190,21 +2020-06-14,Randolph,Georgia,13243,190,21 +2020-06-15,Randolph,Georgia,13243,191,22 +2020-06-16,Randolph,Georgia,13243,191,23 +2020-06-17,Randolph,Georgia,13243,191,23 +2020-06-18,Randolph,Georgia,13243,193,23 +2020-06-19,Randolph,Georgia,13243,194,23 +2020-06-20,Randolph,Georgia,13243,194,23 +2020-06-21,Randolph,Georgia,13243,194,23 +2020-06-22,Randolph,Georgia,13243,195,23 +2020-06-23,Randolph,Georgia,13243,197,25 +2020-06-24,Randolph,Georgia,13243,198,25 +2020-06-25,Randolph,Georgia,13243,197,25 +2020-06-26,Randolph,Georgia,13243,197,25 +2020-06-27,Randolph,Georgia,13243,197,25 +2020-06-28,Randolph,Georgia,13243,197,25 +2020-06-29,Randolph,Georgia,13243,198,25 +2020-06-30,Randolph,Georgia,13243,197,25 +2020-07-01,Randolph,Georgia,13243,200,25 +2020-07-02,Randolph,Georgia,13243,200,25 +2020-07-03,Randolph,Georgia,13243,201,25 +2020-07-04,Randolph,Georgia,13243,201,25 +2020-07-05,Randolph,Georgia,13243,201,25 +2020-07-06,Randolph,Georgia,13243,204,25 +2020-07-07,Randolph,Georgia,13243,205,25 +2020-07-08,Randolph,Georgia,13243,204,25 +2020-07-09,Randolph,Georgia,13243,205,25 +2020-03-17,Richmond,Georgia,13245,1,0 +2020-03-18,Richmond,Georgia,13245,2,0 +2020-03-19,Richmond,Georgia,13245,3,0 +2020-03-20,Richmond,Georgia,13245,9,0 +2020-03-21,Richmond,Georgia,13245,10,0 +2020-03-22,Richmond,Georgia,13245,10,0 +2020-03-23,Richmond,Georgia,13245,11,0 +2020-03-24,Richmond,Georgia,13245,11,0 +2020-03-25,Richmond,Georgia,13245,11,0 +2020-03-26,Richmond,Georgia,13245,11,0 +2020-03-27,Richmond,Georgia,13245,11,0 +2020-03-28,Richmond,Georgia,13245,12,0 +2020-03-29,Richmond,Georgia,13245,12,0 +2020-03-30,Richmond,Georgia,13245,17,0 +2020-03-31,Richmond,Georgia,13245,40,0 +2020-04-01,Richmond,Georgia,13245,41,0 +2020-04-02,Richmond,Georgia,13245,42,1 +2020-04-03,Richmond,Georgia,13245,49,1 +2020-04-04,Richmond,Georgia,13245,51,1 +2020-04-05,Richmond,Georgia,13245,51,1 +2020-04-06,Richmond,Georgia,13245,56,1 +2020-04-07,Richmond,Georgia,13245,75,3 +2020-04-08,Richmond,Georgia,13245,79,3 +2020-04-09,Richmond,Georgia,13245,89,4 +2020-04-10,Richmond,Georgia,13245,134,4 +2020-04-11,Richmond,Georgia,13245,138,3 +2020-04-12,Richmond,Georgia,13245,144,4 +2020-04-13,Richmond,Georgia,13245,156,6 +2020-04-14,Richmond,Georgia,13245,162,7 +2020-04-15,Richmond,Georgia,13245,169,8 +2020-04-16,Richmond,Georgia,13245,231,9 +2020-04-17,Richmond,Georgia,13245,246,10 +2020-04-18,Richmond,Georgia,13245,262,10 +2020-04-19,Richmond,Georgia,13245,264,10 +2020-04-20,Richmond,Georgia,13245,283,11 +2020-04-21,Richmond,Georgia,13245,294,12 +2020-04-22,Richmond,Georgia,13245,313,13 +2020-04-23,Richmond,Georgia,13245,335,14 +2020-04-24,Richmond,Georgia,13245,353,14 +2020-04-25,Richmond,Georgia,13245,355,14 +2020-04-26,Richmond,Georgia,13245,360,14 +2020-04-27,Richmond,Georgia,13245,377,14 +2020-04-28,Richmond,Georgia,13245,382,14 +2020-04-29,Richmond,Georgia,13245,390,14 +2020-04-30,Richmond,Georgia,13245,406,15 +2020-05-01,Richmond,Georgia,13245,412,15 +2020-05-02,Richmond,Georgia,13245,415,16 +2020-05-03,Richmond,Georgia,13245,417,16 +2020-05-04,Richmond,Georgia,13245,422,15 +2020-05-05,Richmond,Georgia,13245,424,15 +2020-05-06,Richmond,Georgia,13245,429,15 +2020-05-07,Richmond,Georgia,13245,436,15 +2020-05-08,Richmond,Georgia,13245,444,16 +2020-05-09,Richmond,Georgia,13245,444,16 +2020-05-10,Richmond,Georgia,13245,447,16 +2020-05-11,Richmond,Georgia,13245,449,16 +2020-05-12,Richmond,Georgia,13245,469,17 +2020-05-13,Richmond,Georgia,13245,471,17 +2020-05-14,Richmond,Georgia,13245,480,17 +2020-05-15,Richmond,Georgia,13245,490,17 +2020-05-16,Richmond,Georgia,13245,490,17 +2020-05-17,Richmond,Georgia,13245,490,17 +2020-05-18,Richmond,Georgia,13245,491,17 +2020-05-19,Richmond,Georgia,13245,495,17 +2020-05-20,Richmond,Georgia,13245,501,17 +2020-05-21,Richmond,Georgia,13245,522,17 +2020-05-22,Richmond,Georgia,13245,523,18 +2020-05-23,Richmond,Georgia,13245,525,18 +2020-05-24,Richmond,Georgia,13245,527,18 +2020-05-25,Richmond,Georgia,13245,534,19 +2020-05-26,Richmond,Georgia,13245,553,19 +2020-05-27,Richmond,Georgia,13245,563,20 +2020-05-28,Richmond,Georgia,13245,576,22 +2020-05-29,Richmond,Georgia,13245,595,22 +2020-05-30,Richmond,Georgia,13245,595,22 +2020-05-31,Richmond,Georgia,13245,595,22 +2020-06-01,Richmond,Georgia,13245,599,25 +2020-06-02,Richmond,Georgia,13245,598,25 +2020-06-03,Richmond,Georgia,13245,606,25 +2020-06-04,Richmond,Georgia,13245,609,25 +2020-06-05,Richmond,Georgia,13245,619,27 +2020-06-06,Richmond,Georgia,13245,627,30 +2020-06-07,Richmond,Georgia,13245,627,30 +2020-06-08,Richmond,Georgia,13245,645,32 +2020-06-09,Richmond,Georgia,13245,652,34 +2020-06-10,Richmond,Georgia,13245,659,36 +2020-06-11,Richmond,Georgia,13245,658,35 +2020-06-12,Richmond,Georgia,13245,664,36 +2020-06-13,Richmond,Georgia,13245,666,36 +2020-06-14,Richmond,Georgia,13245,669,36 +2020-06-15,Richmond,Georgia,13245,682,38 +2020-06-16,Richmond,Georgia,13245,687,38 +2020-06-17,Richmond,Georgia,13245,703,40 +2020-06-18,Richmond,Georgia,13245,711,41 +2020-06-19,Richmond,Georgia,13245,736,42 +2020-06-20,Richmond,Georgia,13245,740,42 +2020-06-21,Richmond,Georgia,13245,746,42 +2020-06-22,Richmond,Georgia,13245,755,42 +2020-06-23,Richmond,Georgia,13245,776,48 +2020-06-24,Richmond,Georgia,13245,785,48 +2020-06-25,Richmond,Georgia,13245,802,48 +2020-06-26,Richmond,Georgia,13245,813,48 +2020-06-27,Richmond,Georgia,13245,822,48 +2020-06-28,Richmond,Georgia,13245,852,48 +2020-06-29,Richmond,Georgia,13245,896,48 +2020-06-30,Richmond,Georgia,13245,952,48 +2020-07-01,Richmond,Georgia,13245,1012,49 +2020-07-02,Richmond,Georgia,13245,1041,53 +2020-07-03,Richmond,Georgia,13245,1141,54 +2020-07-04,Richmond,Georgia,13245,1214,54 +2020-07-05,Richmond,Georgia,13245,1279,54 +2020-07-06,Richmond,Georgia,13245,1300,57 +2020-07-07,Richmond,Georgia,13245,1340,57 +2020-07-08,Richmond,Georgia,13245,1387,58 +2020-07-09,Richmond,Georgia,13245,1448,59 +2020-03-19,Rockdale,Georgia,13247,1,0 +2020-03-20,Rockdale,Georgia,13247,1,0 +2020-03-21,Rockdale,Georgia,13247,2,0 +2020-03-22,Rockdale,Georgia,13247,2,0 +2020-03-23,Rockdale,Georgia,13247,5,0 +2020-03-24,Rockdale,Georgia,13247,8,0 +2020-03-25,Rockdale,Georgia,13247,10,0 +2020-03-26,Rockdale,Georgia,13247,13,0 +2020-03-27,Rockdale,Georgia,13247,16,1 +2020-03-28,Rockdale,Georgia,13247,17,1 +2020-03-29,Rockdale,Georgia,13247,18,1 +2020-03-30,Rockdale,Georgia,13247,29,2 +2020-03-31,Rockdale,Georgia,13247,45,2 +2020-04-01,Rockdale,Georgia,13247,47,2 +2020-04-02,Rockdale,Georgia,13247,57,2 +2020-04-03,Rockdale,Georgia,13247,67,2 +2020-04-04,Rockdale,Georgia,13247,75,2 +2020-04-05,Rockdale,Georgia,13247,77,2 +2020-04-06,Rockdale,Georgia,13247,82,2 +2020-04-07,Rockdale,Georgia,13247,86,2 +2020-04-08,Rockdale,Georgia,13247,85,2 +2020-04-09,Rockdale,Georgia,13247,85,2 +2020-04-10,Rockdale,Georgia,13247,89,2 +2020-04-11,Rockdale,Georgia,13247,92,2 +2020-04-12,Rockdale,Georgia,13247,97,2 +2020-04-13,Rockdale,Georgia,13247,101,4 +2020-04-14,Rockdale,Georgia,13247,106,5 +2020-04-15,Rockdale,Georgia,13247,107,6 +2020-04-16,Rockdale,Georgia,13247,111,6 +2020-04-17,Rockdale,Georgia,13247,117,6 +2020-04-18,Rockdale,Georgia,13247,119,6 +2020-04-19,Rockdale,Georgia,13247,131,6 +2020-04-20,Rockdale,Georgia,13247,140,6 +2020-04-21,Rockdale,Georgia,13247,141,6 +2020-04-22,Rockdale,Georgia,13247,144,6 +2020-04-23,Rockdale,Georgia,13247,151,6 +2020-04-24,Rockdale,Georgia,13247,158,6 +2020-04-25,Rockdale,Georgia,13247,162,6 +2020-04-26,Rockdale,Georgia,13247,161,6 +2020-04-27,Rockdale,Georgia,13247,166,6 +2020-04-28,Rockdale,Georgia,13247,175,6 +2020-04-29,Rockdale,Georgia,13247,178,6 +2020-04-30,Rockdale,Georgia,13247,189,6 +2020-05-01,Rockdale,Georgia,13247,191,6 +2020-05-02,Rockdale,Georgia,13247,194,6 +2020-05-03,Rockdale,Georgia,13247,195,6 +2020-05-04,Rockdale,Georgia,13247,199,6 +2020-05-05,Rockdale,Georgia,13247,204,6 +2020-05-06,Rockdale,Georgia,13247,223,7 +2020-05-07,Rockdale,Georgia,13247,226,7 +2020-05-08,Rockdale,Georgia,13247,228,7 +2020-05-09,Rockdale,Georgia,13247,230,7 +2020-05-10,Rockdale,Georgia,13247,239,7 +2020-05-11,Rockdale,Georgia,13247,243,7 +2020-05-12,Rockdale,Georgia,13247,245,7 +2020-05-13,Rockdale,Georgia,13247,248,7 +2020-05-14,Rockdale,Georgia,13247,249,8 +2020-05-15,Rockdale,Georgia,13247,249,7 +2020-05-16,Rockdale,Georgia,13247,249,7 +2020-05-17,Rockdale,Georgia,13247,249,7 +2020-05-18,Rockdale,Georgia,13247,250,7 +2020-05-19,Rockdale,Georgia,13247,252,8 +2020-05-20,Rockdale,Georgia,13247,251,9 +2020-05-21,Rockdale,Georgia,13247,254,9 +2020-05-22,Rockdale,Georgia,13247,257,9 +2020-05-23,Rockdale,Georgia,13247,258,9 +2020-05-24,Rockdale,Georgia,13247,265,9 +2020-05-25,Rockdale,Georgia,13247,267,9 +2020-05-26,Rockdale,Georgia,13247,268,9 +2020-05-27,Rockdale,Georgia,13247,276,9 +2020-05-28,Rockdale,Georgia,13247,278,8 +2020-05-29,Rockdale,Georgia,13247,283,8 +2020-05-30,Rockdale,Georgia,13247,285,8 +2020-05-31,Rockdale,Georgia,13247,285,8 +2020-06-01,Rockdale,Georgia,13247,285,8 +2020-06-02,Rockdale,Georgia,13247,289,8 +2020-06-03,Rockdale,Georgia,13247,297,8 +2020-06-04,Rockdale,Georgia,13247,302,8 +2020-06-05,Rockdale,Georgia,13247,304,8 +2020-06-06,Rockdale,Georgia,13247,308,8 +2020-06-07,Rockdale,Georgia,13247,308,8 +2020-06-08,Rockdale,Georgia,13247,314,8 +2020-06-09,Rockdale,Georgia,13247,320,8 +2020-06-10,Rockdale,Georgia,13247,325,8 +2020-06-11,Rockdale,Georgia,13247,329,8 +2020-06-12,Rockdale,Georgia,13247,333,9 +2020-06-13,Rockdale,Georgia,13247,338,9 +2020-06-14,Rockdale,Georgia,13247,340,9 +2020-06-15,Rockdale,Georgia,13247,345,9 +2020-06-16,Rockdale,Georgia,13247,347,9 +2020-06-17,Rockdale,Georgia,13247,353,9 +2020-06-18,Rockdale,Georgia,13247,353,9 +2020-06-19,Rockdale,Georgia,13247,359,9 +2020-06-20,Rockdale,Georgia,13247,362,9 +2020-06-21,Rockdale,Georgia,13247,371,9 +2020-06-22,Rockdale,Georgia,13247,379,9 +2020-06-23,Rockdale,Georgia,13247,390,10 +2020-06-24,Rockdale,Georgia,13247,401,10 +2020-06-25,Rockdale,Georgia,13247,415,10 +2020-06-26,Rockdale,Georgia,13247,419,11 +2020-06-27,Rockdale,Georgia,13247,430,11 +2020-06-28,Rockdale,Georgia,13247,436,11 +2020-06-29,Rockdale,Georgia,13247,436,11 +2020-06-30,Rockdale,Georgia,13247,459,11 +2020-07-01,Rockdale,Georgia,13247,471,11 +2020-07-02,Rockdale,Georgia,13247,495,11 +2020-07-03,Rockdale,Georgia,13247,521,11 +2020-07-04,Rockdale,Georgia,13247,542,11 +2020-07-05,Rockdale,Georgia,13247,552,11 +2020-07-06,Rockdale,Georgia,13247,568,11 +2020-07-07,Rockdale,Georgia,13247,583,11 +2020-07-08,Rockdale,Georgia,13247,606,11 +2020-07-09,Rockdale,Georgia,13247,625,11 +2020-03-30,Schley,Georgia,13249,1,0 +2020-03-31,Schley,Georgia,13249,4,0 +2020-04-01,Schley,Georgia,13249,4,0 +2020-04-02,Schley,Georgia,13249,4,0 +2020-04-03,Schley,Georgia,13249,5,0 +2020-04-04,Schley,Georgia,13249,6,0 +2020-04-05,Schley,Georgia,13249,6,0 +2020-04-06,Schley,Georgia,13249,7,1 +2020-04-07,Schley,Georgia,13249,10,1 +2020-04-08,Schley,Georgia,13249,10,1 +2020-04-09,Schley,Georgia,13249,11,1 +2020-04-10,Schley,Georgia,13249,12,1 +2020-04-11,Schley,Georgia,13249,12,1 +2020-04-12,Schley,Georgia,13249,12,1 +2020-04-13,Schley,Georgia,13249,12,1 +2020-04-14,Schley,Georgia,13249,12,1 +2020-04-15,Schley,Georgia,13249,13,1 +2020-04-16,Schley,Georgia,13249,14,1 +2020-04-17,Schley,Georgia,13249,15,1 +2020-04-18,Schley,Georgia,13249,15,1 +2020-04-19,Schley,Georgia,13249,16,1 +2020-04-20,Schley,Georgia,13249,16,1 +2020-04-21,Schley,Georgia,13249,16,1 +2020-04-22,Schley,Georgia,13249,16,1 +2020-04-23,Schley,Georgia,13249,16,1 +2020-04-24,Schley,Georgia,13249,16,1 +2020-04-25,Schley,Georgia,13249,16,1 +2020-04-26,Schley,Georgia,13249,16,1 +2020-04-27,Schley,Georgia,13249,16,1 +2020-04-28,Schley,Georgia,13249,16,1 +2020-04-29,Schley,Georgia,13249,16,1 +2020-04-30,Schley,Georgia,13249,16,1 +2020-05-01,Schley,Georgia,13249,16,1 +2020-05-02,Schley,Georgia,13249,16,1 +2020-05-03,Schley,Georgia,13249,16,1 +2020-05-04,Schley,Georgia,13249,16,1 +2020-05-05,Schley,Georgia,13249,16,1 +2020-05-06,Schley,Georgia,13249,15,1 +2020-05-07,Schley,Georgia,13249,15,1 +2020-05-08,Schley,Georgia,13249,15,1 +2020-05-09,Schley,Georgia,13249,15,1 +2020-05-10,Schley,Georgia,13249,15,1 +2020-05-11,Schley,Georgia,13249,15,1 +2020-05-12,Schley,Georgia,13249,15,1 +2020-05-13,Schley,Georgia,13249,15,1 +2020-05-14,Schley,Georgia,13249,15,1 +2020-05-15,Schley,Georgia,13249,15,1 +2020-05-16,Schley,Georgia,13249,16,1 +2020-05-17,Schley,Georgia,13249,16,1 +2020-05-18,Schley,Georgia,13249,16,1 +2020-05-19,Schley,Georgia,13249,17,1 +2020-05-20,Schley,Georgia,13249,16,1 +2020-05-21,Schley,Georgia,13249,16,1 +2020-05-22,Schley,Georgia,13249,16,1 +2020-05-23,Schley,Georgia,13249,16,1 +2020-05-24,Schley,Georgia,13249,16,1 +2020-05-25,Schley,Georgia,13249,16,1 +2020-05-26,Schley,Georgia,13249,17,1 +2020-05-27,Schley,Georgia,13249,16,1 +2020-05-28,Schley,Georgia,13249,16,1 +2020-05-29,Schley,Georgia,13249,16,1 +2020-05-30,Schley,Georgia,13249,16,1 +2020-05-31,Schley,Georgia,13249,16,1 +2020-06-01,Schley,Georgia,13249,16,1 +2020-06-02,Schley,Georgia,13249,16,1 +2020-06-03,Schley,Georgia,13249,16,1 +2020-06-04,Schley,Georgia,13249,17,1 +2020-06-05,Schley,Georgia,13249,18,1 +2020-06-06,Schley,Georgia,13249,19,1 +2020-06-07,Schley,Georgia,13249,18,1 +2020-06-08,Schley,Georgia,13249,18,1 +2020-06-09,Schley,Georgia,13249,18,1 +2020-06-10,Schley,Georgia,13249,18,1 +2020-06-11,Schley,Georgia,13249,18,1 +2020-06-12,Schley,Georgia,13249,18,1 +2020-06-13,Schley,Georgia,13249,18,1 +2020-06-14,Schley,Georgia,13249,18,1 +2020-06-15,Schley,Georgia,13249,19,1 +2020-06-16,Schley,Georgia,13249,20,1 +2020-06-17,Schley,Georgia,13249,20,1 +2020-06-18,Schley,Georgia,13249,20,1 +2020-06-19,Schley,Georgia,13249,21,1 +2020-06-20,Schley,Georgia,13249,21,1 +2020-06-21,Schley,Georgia,13249,21,1 +2020-06-22,Schley,Georgia,13249,22,1 +2020-06-23,Schley,Georgia,13249,22,1 +2020-06-24,Schley,Georgia,13249,22,1 +2020-06-25,Schley,Georgia,13249,23,1 +2020-06-26,Schley,Georgia,13249,24,1 +2020-06-27,Schley,Georgia,13249,24,1 +2020-06-28,Schley,Georgia,13249,24,1 +2020-06-29,Schley,Georgia,13249,25,1 +2020-06-30,Schley,Georgia,13249,25,1 +2020-07-01,Schley,Georgia,13249,25,1 +2020-07-02,Schley,Georgia,13249,25,1 +2020-07-03,Schley,Georgia,13249,25,1 +2020-07-04,Schley,Georgia,13249,26,1 +2020-07-05,Schley,Georgia,13249,26,1 +2020-07-06,Schley,Georgia,13249,26,1 +2020-07-07,Schley,Georgia,13249,25,1 +2020-07-08,Schley,Georgia,13249,26,1 +2020-07-09,Schley,Georgia,13249,27,1 +2020-03-31,Screven,Georgia,13251,1,0 +2020-04-01,Screven,Georgia,13251,2,0 +2020-04-02,Screven,Georgia,13251,2,0 +2020-04-03,Screven,Georgia,13251,2,0 +2020-04-04,Screven,Georgia,13251,2,0 +2020-04-05,Screven,Georgia,13251,2,0 +2020-04-06,Screven,Georgia,13251,2,0 +2020-04-07,Screven,Georgia,13251,4,0 +2020-04-08,Screven,Georgia,13251,4,0 +2020-04-09,Screven,Georgia,13251,5,0 +2020-04-10,Screven,Georgia,13251,5,0 +2020-04-11,Screven,Georgia,13251,5,0 +2020-04-12,Screven,Georgia,13251,7,0 +2020-04-13,Screven,Georgia,13251,7,0 +2020-04-14,Screven,Georgia,13251,9,0 +2020-04-15,Screven,Georgia,13251,9,1 +2020-04-16,Screven,Georgia,13251,11,1 +2020-04-17,Screven,Georgia,13251,11,1 +2020-04-18,Screven,Georgia,13251,11,1 +2020-04-19,Screven,Georgia,13251,11,1 +2020-04-20,Screven,Georgia,13251,11,1 +2020-04-21,Screven,Georgia,13251,14,1 +2020-04-22,Screven,Georgia,13251,14,1 +2020-04-23,Screven,Georgia,13251,14,1 +2020-04-24,Screven,Georgia,13251,14,1 +2020-04-25,Screven,Georgia,13251,14,1 +2020-04-26,Screven,Georgia,13251,14,1 +2020-04-27,Screven,Georgia,13251,14,1 +2020-04-28,Screven,Georgia,13251,15,1 +2020-04-29,Screven,Georgia,13251,15,1 +2020-04-30,Screven,Georgia,13251,15,1 +2020-05-01,Screven,Georgia,13251,15,1 +2020-05-02,Screven,Georgia,13251,15,1 +2020-05-03,Screven,Georgia,13251,15,1 +2020-05-04,Screven,Georgia,13251,15,1 +2020-05-05,Screven,Georgia,13251,16,1 +2020-05-06,Screven,Georgia,13251,16,1 +2020-05-07,Screven,Georgia,13251,17,1 +2020-05-08,Screven,Georgia,13251,17,1 +2020-05-09,Screven,Georgia,13251,17,1 +2020-05-10,Screven,Georgia,13251,17,1 +2020-05-11,Screven,Georgia,13251,17,1 +2020-05-12,Screven,Georgia,13251,17,1 +2020-05-13,Screven,Georgia,13251,18,1 +2020-05-14,Screven,Georgia,13251,18,1 +2020-05-15,Screven,Georgia,13251,18,1 +2020-05-16,Screven,Georgia,13251,19,1 +2020-05-17,Screven,Georgia,13251,19,1 +2020-05-18,Screven,Georgia,13251,20,1 +2020-05-19,Screven,Georgia,13251,20,1 +2020-05-20,Screven,Georgia,13251,20,1 +2020-05-21,Screven,Georgia,13251,22,1 +2020-05-22,Screven,Georgia,13251,25,2 +2020-05-23,Screven,Georgia,13251,26,2 +2020-05-24,Screven,Georgia,13251,27,2 +2020-05-25,Screven,Georgia,13251,28,2 +2020-05-26,Screven,Georgia,13251,32,2 +2020-05-27,Screven,Georgia,13251,47,2 +2020-05-28,Screven,Georgia,13251,50,2 +2020-05-29,Screven,Georgia,13251,50,2 +2020-05-30,Screven,Georgia,13251,51,2 +2020-05-31,Screven,Georgia,13251,51,3 +2020-06-01,Screven,Georgia,13251,55,3 +2020-06-02,Screven,Georgia,13251,55,3 +2020-06-03,Screven,Georgia,13251,55,3 +2020-06-04,Screven,Georgia,13251,56,3 +2020-06-05,Screven,Georgia,13251,57,3 +2020-06-06,Screven,Georgia,13251,57,3 +2020-06-07,Screven,Georgia,13251,57,3 +2020-06-08,Screven,Georgia,13251,58,3 +2020-06-09,Screven,Georgia,13251,59,3 +2020-06-10,Screven,Georgia,13251,60,3 +2020-06-11,Screven,Georgia,13251,60,4 +2020-06-12,Screven,Georgia,13251,61,4 +2020-06-13,Screven,Georgia,13251,62,4 +2020-06-14,Screven,Georgia,13251,62,4 +2020-06-15,Screven,Georgia,13251,63,4 +2020-06-16,Screven,Georgia,13251,65,4 +2020-06-17,Screven,Georgia,13251,66,4 +2020-06-18,Screven,Georgia,13251,71,4 +2020-06-19,Screven,Georgia,13251,74,4 +2020-06-20,Screven,Georgia,13251,75,4 +2020-06-21,Screven,Georgia,13251,75,4 +2020-06-22,Screven,Georgia,13251,79,4 +2020-06-23,Screven,Georgia,13251,85,5 +2020-06-24,Screven,Georgia,13251,86,5 +2020-06-25,Screven,Georgia,13251,87,5 +2020-06-26,Screven,Georgia,13251,88,6 +2020-06-27,Screven,Georgia,13251,89,6 +2020-06-28,Screven,Georgia,13251,89,6 +2020-06-29,Screven,Georgia,13251,91,6 +2020-06-30,Screven,Georgia,13251,92,6 +2020-07-01,Screven,Georgia,13251,93,6 +2020-07-02,Screven,Georgia,13251,95,7 +2020-07-03,Screven,Georgia,13251,97,7 +2020-07-04,Screven,Georgia,13251,97,7 +2020-07-05,Screven,Georgia,13251,98,7 +2020-07-06,Screven,Georgia,13251,99,7 +2020-07-07,Screven,Georgia,13251,101,7 +2020-07-08,Screven,Georgia,13251,102,7 +2020-07-09,Screven,Georgia,13251,105,7 +2020-03-24,Seminole,Georgia,13253,2,0 +2020-03-25,Seminole,Georgia,13253,2,0 +2020-03-26,Seminole,Georgia,13253,2,0 +2020-03-27,Seminole,Georgia,13253,2,0 +2020-03-28,Seminole,Georgia,13253,3,0 +2020-03-29,Seminole,Georgia,13253,5,0 +2020-03-30,Seminole,Georgia,13253,7,0 +2020-03-31,Seminole,Georgia,13253,6,0 +2020-04-01,Seminole,Georgia,13253,6,0 +2020-04-02,Seminole,Georgia,13253,6,0 +2020-04-03,Seminole,Georgia,13253,8,0 +2020-04-04,Seminole,Georgia,13253,8,0 +2020-04-05,Seminole,Georgia,13253,9,0 +2020-04-06,Seminole,Georgia,13253,9,0 +2020-04-07,Seminole,Georgia,13253,13,0 +2020-04-08,Seminole,Georgia,13253,13,0 +2020-04-09,Seminole,Georgia,13253,13,0 +2020-04-10,Seminole,Georgia,13253,14,0 +2020-04-11,Seminole,Georgia,13253,14,0 +2020-04-12,Seminole,Georgia,13253,15,0 +2020-04-13,Seminole,Georgia,13253,16,1 +2020-04-14,Seminole,Georgia,13253,16,1 +2020-04-15,Seminole,Georgia,13253,19,1 +2020-04-16,Seminole,Georgia,13253,21,1 +2020-04-17,Seminole,Georgia,13253,20,2 +2020-04-18,Seminole,Georgia,13253,20,2 +2020-04-19,Seminole,Georgia,13253,22,2 +2020-04-20,Seminole,Georgia,13253,25,2 +2020-04-21,Seminole,Georgia,13253,26,2 +2020-04-22,Seminole,Georgia,13253,27,2 +2020-04-23,Seminole,Georgia,13253,27,2 +2020-04-24,Seminole,Georgia,13253,27,2 +2020-04-25,Seminole,Georgia,13253,27,2 +2020-04-26,Seminole,Georgia,13253,27,2 +2020-04-27,Seminole,Georgia,13253,29,2 +2020-04-28,Seminole,Georgia,13253,30,2 +2020-04-29,Seminole,Georgia,13253,30,2 +2020-04-30,Seminole,Georgia,13253,29,2 +2020-05-01,Seminole,Georgia,13253,30,2 +2020-05-02,Seminole,Georgia,13253,30,2 +2020-05-03,Seminole,Georgia,13253,31,2 +2020-05-04,Seminole,Georgia,13253,31,2 +2020-05-05,Seminole,Georgia,13253,31,2 +2020-05-06,Seminole,Georgia,13253,32,2 +2020-05-07,Seminole,Georgia,13253,33,2 +2020-05-08,Seminole,Georgia,13253,34,2 +2020-05-09,Seminole,Georgia,13253,34,2 +2020-05-10,Seminole,Georgia,13253,34,2 +2020-05-11,Seminole,Georgia,13253,34,2 +2020-05-12,Seminole,Georgia,13253,36,2 +2020-05-13,Seminole,Georgia,13253,39,2 +2020-05-14,Seminole,Georgia,13253,38,2 +2020-05-15,Seminole,Georgia,13253,40,2 +2020-05-16,Seminole,Georgia,13253,40,2 +2020-05-17,Seminole,Georgia,13253,40,2 +2020-05-18,Seminole,Georgia,13253,40,2 +2020-05-19,Seminole,Georgia,13253,41,2 +2020-05-20,Seminole,Georgia,13253,41,2 +2020-05-21,Seminole,Georgia,13253,42,2 +2020-05-22,Seminole,Georgia,13253,42,2 +2020-05-23,Seminole,Georgia,13253,42,2 +2020-05-24,Seminole,Georgia,13253,42,2 +2020-05-25,Seminole,Georgia,13253,43,2 +2020-05-26,Seminole,Georgia,13253,43,2 +2020-05-27,Seminole,Georgia,13253,43,2 +2020-05-28,Seminole,Georgia,13253,44,2 +2020-05-29,Seminole,Georgia,13253,44,2 +2020-05-30,Seminole,Georgia,13253,44,2 +2020-05-31,Seminole,Georgia,13253,44,2 +2020-06-01,Seminole,Georgia,13253,45,2 +2020-06-02,Seminole,Georgia,13253,45,2 +2020-06-03,Seminole,Georgia,13253,45,2 +2020-06-04,Seminole,Georgia,13253,45,2 +2020-06-05,Seminole,Georgia,13253,46,2 +2020-06-06,Seminole,Georgia,13253,46,2 +2020-06-07,Seminole,Georgia,13253,46,2 +2020-06-08,Seminole,Georgia,13253,46,2 +2020-06-09,Seminole,Georgia,13253,47,2 +2020-06-10,Seminole,Georgia,13253,47,2 +2020-06-11,Seminole,Georgia,13253,47,2 +2020-06-12,Seminole,Georgia,13253,48,2 +2020-06-13,Seminole,Georgia,13253,48,2 +2020-06-14,Seminole,Georgia,13253,48,2 +2020-06-15,Seminole,Georgia,13253,48,2 +2020-06-16,Seminole,Georgia,13253,48,2 +2020-06-17,Seminole,Georgia,13253,48,2 +2020-06-18,Seminole,Georgia,13253,48,2 +2020-06-19,Seminole,Georgia,13253,48,2 +2020-06-20,Seminole,Georgia,13253,48,2 +2020-06-21,Seminole,Georgia,13253,49,2 +2020-06-22,Seminole,Georgia,13253,48,2 +2020-06-23,Seminole,Georgia,13253,48,2 +2020-06-24,Seminole,Georgia,13253,48,2 +2020-06-25,Seminole,Georgia,13253,49,2 +2020-06-26,Seminole,Georgia,13253,50,2 +2020-06-27,Seminole,Georgia,13253,50,2 +2020-06-28,Seminole,Georgia,13253,50,2 +2020-06-29,Seminole,Georgia,13253,50,2 +2020-06-30,Seminole,Georgia,13253,51,2 +2020-07-01,Seminole,Georgia,13253,50,2 +2020-07-02,Seminole,Georgia,13253,50,2 +2020-07-03,Seminole,Georgia,13253,51,2 +2020-07-04,Seminole,Georgia,13253,51,2 +2020-07-05,Seminole,Georgia,13253,51,2 +2020-07-06,Seminole,Georgia,13253,54,2 +2020-07-07,Seminole,Georgia,13253,54,2 +2020-07-08,Seminole,Georgia,13253,54,2 +2020-07-09,Seminole,Georgia,13253,54,2 +2020-03-20,Spalding,Georgia,13255,2,0 +2020-03-21,Spalding,Georgia,13255,2,0 +2020-03-22,Spalding,Georgia,13255,2,0 +2020-03-23,Spalding,Georgia,13255,4,0 +2020-03-24,Spalding,Georgia,13255,5,0 +2020-03-25,Spalding,Georgia,13255,10,0 +2020-03-26,Spalding,Georgia,13255,11,0 +2020-03-27,Spalding,Georgia,13255,11,0 +2020-03-28,Spalding,Georgia,13255,11,0 +2020-03-29,Spalding,Georgia,13255,12,0 +2020-03-30,Spalding,Georgia,13255,14,0 +2020-03-31,Spalding,Georgia,13255,15,0 +2020-04-01,Spalding,Georgia,13255,17,1 +2020-04-02,Spalding,Georgia,13255,17,1 +2020-04-03,Spalding,Georgia,13255,23,1 +2020-04-04,Spalding,Georgia,13255,26,2 +2020-04-05,Spalding,Georgia,13255,26,2 +2020-04-06,Spalding,Georgia,13255,44,4 +2020-04-07,Spalding,Georgia,13255,54,4 +2020-04-08,Spalding,Georgia,13255,56,4 +2020-04-09,Spalding,Georgia,13255,60,4 +2020-04-10,Spalding,Georgia,13255,65,4 +2020-04-11,Spalding,Georgia,13255,69,4 +2020-04-12,Spalding,Georgia,13255,73,4 +2020-04-13,Spalding,Georgia,13255,78,4 +2020-04-14,Spalding,Georgia,13255,83,4 +2020-04-15,Spalding,Georgia,13255,96,5 +2020-04-16,Spalding,Georgia,13255,122,5 +2020-04-17,Spalding,Georgia,13255,124,7 +2020-04-18,Spalding,Georgia,13255,126,7 +2020-04-19,Spalding,Georgia,13255,128,7 +2020-04-20,Spalding,Georgia,13255,135,7 +2020-04-21,Spalding,Georgia,13255,136,8 +2020-04-22,Spalding,Georgia,13255,136,8 +2020-04-23,Spalding,Georgia,13255,140,8 +2020-04-24,Spalding,Georgia,13255,144,8 +2020-04-25,Spalding,Georgia,13255,189,8 +2020-04-26,Spalding,Georgia,13255,190,8 +2020-04-27,Spalding,Georgia,13255,197,8 +2020-04-28,Spalding,Georgia,13255,201,8 +2020-04-29,Spalding,Georgia,13255,205,9 +2020-04-30,Spalding,Georgia,13255,210,9 +2020-05-01,Spalding,Georgia,13255,214,10 +2020-05-02,Spalding,Georgia,13255,215,10 +2020-05-03,Spalding,Georgia,13255,219,10 +2020-05-04,Spalding,Georgia,13255,219,11 +2020-05-05,Spalding,Georgia,13255,222,11 +2020-05-06,Spalding,Georgia,13255,223,11 +2020-05-07,Spalding,Georgia,13255,224,11 +2020-05-08,Spalding,Georgia,13255,227,11 +2020-05-09,Spalding,Georgia,13255,232,11 +2020-05-10,Spalding,Georgia,13255,235,11 +2020-05-11,Spalding,Georgia,13255,237,11 +2020-05-12,Spalding,Georgia,13255,237,12 +2020-05-13,Spalding,Georgia,13255,236,12 +2020-05-14,Spalding,Georgia,13255,239,12 +2020-05-15,Spalding,Georgia,13255,239,15 +2020-05-16,Spalding,Georgia,13255,239,15 +2020-05-17,Spalding,Georgia,13255,239,15 +2020-05-18,Spalding,Georgia,13255,242,15 +2020-05-19,Spalding,Georgia,13255,246,14 +2020-05-20,Spalding,Georgia,13255,251,14 +2020-05-21,Spalding,Georgia,13255,246,14 +2020-05-22,Spalding,Georgia,13255,250,14 +2020-05-23,Spalding,Georgia,13255,253,14 +2020-05-24,Spalding,Georgia,13255,253,14 +2020-05-25,Spalding,Georgia,13255,259,17 +2020-05-26,Spalding,Georgia,13255,262,19 +2020-05-27,Spalding,Georgia,13255,264,20 +2020-05-28,Spalding,Georgia,13255,267,21 +2020-05-29,Spalding,Georgia,13255,275,21 +2020-05-30,Spalding,Georgia,13255,275,21 +2020-05-31,Spalding,Georgia,13255,275,22 +2020-06-01,Spalding,Georgia,13255,277,22 +2020-06-02,Spalding,Georgia,13255,277,22 +2020-06-03,Spalding,Georgia,13255,280,22 +2020-06-04,Spalding,Georgia,13255,281,22 +2020-06-05,Spalding,Georgia,13255,292,22 +2020-06-06,Spalding,Georgia,13255,294,21 +2020-06-07,Spalding,Georgia,13255,294,21 +2020-06-08,Spalding,Georgia,13255,296,21 +2020-06-09,Spalding,Georgia,13255,301,22 +2020-06-10,Spalding,Georgia,13255,302,23 +2020-06-11,Spalding,Georgia,13255,308,24 +2020-06-12,Spalding,Georgia,13255,309,24 +2020-06-13,Spalding,Georgia,13255,313,24 +2020-06-14,Spalding,Georgia,13255,314,24 +2020-06-15,Spalding,Georgia,13255,317,24 +2020-06-16,Spalding,Georgia,13255,326,25 +2020-06-17,Spalding,Georgia,13255,332,29 +2020-06-18,Spalding,Georgia,13255,336,31 +2020-06-19,Spalding,Georgia,13255,338,31 +2020-06-20,Spalding,Georgia,13255,337,31 +2020-06-21,Spalding,Georgia,13255,340,31 +2020-06-22,Spalding,Georgia,13255,343,31 +2020-06-23,Spalding,Georgia,13255,353,32 +2020-06-24,Spalding,Georgia,13255,361,32 +2020-06-25,Spalding,Georgia,13255,365,32 +2020-06-26,Spalding,Georgia,13255,368,32 +2020-06-27,Spalding,Georgia,13255,380,32 +2020-06-28,Spalding,Georgia,13255,383,32 +2020-06-29,Spalding,Georgia,13255,383,32 +2020-06-30,Spalding,Georgia,13255,400,32 +2020-07-01,Spalding,Georgia,13255,425,32 +2020-07-02,Spalding,Georgia,13255,441,32 +2020-07-03,Spalding,Georgia,13255,444,32 +2020-07-04,Spalding,Georgia,13255,459,32 +2020-07-05,Spalding,Georgia,13255,467,32 +2020-07-06,Spalding,Georgia,13255,476,32 +2020-07-07,Spalding,Georgia,13255,490,33 +2020-07-08,Spalding,Georgia,13255,515,33 +2020-07-09,Spalding,Georgia,13255,527,33 +2020-03-24,Stephens,Georgia,13257,2,0 +2020-03-25,Stephens,Georgia,13257,2,0 +2020-03-26,Stephens,Georgia,13257,2,0 +2020-03-27,Stephens,Georgia,13257,2,0 +2020-03-28,Stephens,Georgia,13257,3,0 +2020-03-29,Stephens,Georgia,13257,3,0 +2020-03-30,Stephens,Georgia,13257,3,0 +2020-03-31,Stephens,Georgia,13257,4,0 +2020-04-01,Stephens,Georgia,13257,5,0 +2020-04-02,Stephens,Georgia,13257,5,0 +2020-04-03,Stephens,Georgia,13257,5,0 +2020-04-04,Stephens,Georgia,13257,6,0 +2020-04-05,Stephens,Georgia,13257,6,0 +2020-04-06,Stephens,Georgia,13257,8,0 +2020-04-07,Stephens,Georgia,13257,13,0 +2020-04-08,Stephens,Georgia,13257,15,0 +2020-04-09,Stephens,Georgia,13257,15,0 +2020-04-10,Stephens,Georgia,13257,16,0 +2020-04-11,Stephens,Georgia,13257,17,0 +2020-04-12,Stephens,Georgia,13257,17,0 +2020-04-13,Stephens,Georgia,13257,20,0 +2020-04-14,Stephens,Georgia,13257,24,0 +2020-04-15,Stephens,Georgia,13257,24,0 +2020-04-16,Stephens,Georgia,13257,28,0 +2020-04-17,Stephens,Georgia,13257,30,1 +2020-04-18,Stephens,Georgia,13257,31,1 +2020-04-19,Stephens,Georgia,13257,35,1 +2020-04-20,Stephens,Georgia,13257,40,1 +2020-04-21,Stephens,Georgia,13257,41,1 +2020-04-22,Stephens,Georgia,13257,42,1 +2020-04-23,Stephens,Georgia,13257,48,1 +2020-04-24,Stephens,Georgia,13257,55,1 +2020-04-25,Stephens,Georgia,13257,56,1 +2020-04-26,Stephens,Georgia,13257,70,1 +2020-04-27,Stephens,Georgia,13257,73,1 +2020-04-28,Stephens,Georgia,13257,71,1 +2020-04-29,Stephens,Georgia,13257,73,1 +2020-04-30,Stephens,Georgia,13257,79,1 +2020-05-01,Stephens,Georgia,13257,81,1 +2020-05-02,Stephens,Georgia,13257,87,1 +2020-05-03,Stephens,Georgia,13257,87,1 +2020-05-04,Stephens,Georgia,13257,88,1 +2020-05-05,Stephens,Georgia,13257,86,1 +2020-05-06,Stephens,Georgia,13257,91,1 +2020-05-07,Stephens,Georgia,13257,91,1 +2020-05-08,Stephens,Georgia,13257,91,1 +2020-05-09,Stephens,Georgia,13257,91,1 +2020-05-10,Stephens,Georgia,13257,91,1 +2020-05-11,Stephens,Georgia,13257,92,1 +2020-05-12,Stephens,Georgia,13257,93,1 +2020-05-13,Stephens,Georgia,13257,94,1 +2020-05-14,Stephens,Georgia,13257,94,1 +2020-05-15,Stephens,Georgia,13257,97,1 +2020-05-16,Stephens,Georgia,13257,98,2 +2020-05-17,Stephens,Georgia,13257,107,2 +2020-05-18,Stephens,Georgia,13257,113,2 +2020-05-19,Stephens,Georgia,13257,114,2 +2020-05-20,Stephens,Georgia,13257,117,2 +2020-05-21,Stephens,Georgia,13257,121,2 +2020-05-22,Stephens,Georgia,13257,122,2 +2020-05-23,Stephens,Georgia,13257,123,2 +2020-05-24,Stephens,Georgia,13257,122,2 +2020-05-25,Stephens,Georgia,13257,123,2 +2020-05-26,Stephens,Georgia,13257,129,2 +2020-05-27,Stephens,Georgia,13257,132,2 +2020-05-28,Stephens,Georgia,13257,136,2 +2020-05-29,Stephens,Georgia,13257,138,2 +2020-05-30,Stephens,Georgia,13257,138,2 +2020-05-31,Stephens,Georgia,13257,139,2 +2020-06-01,Stephens,Georgia,13257,147,2 +2020-06-02,Stephens,Georgia,13257,147,2 +2020-06-03,Stephens,Georgia,13257,147,3 +2020-06-04,Stephens,Georgia,13257,144,3 +2020-06-05,Stephens,Georgia,13257,143,3 +2020-06-06,Stephens,Georgia,13257,144,3 +2020-06-07,Stephens,Georgia,13257,144,3 +2020-06-08,Stephens,Georgia,13257,145,3 +2020-06-09,Stephens,Georgia,13257,147,3 +2020-06-10,Stephens,Georgia,13257,147,3 +2020-06-11,Stephens,Georgia,13257,148,4 +2020-06-12,Stephens,Georgia,13257,152,4 +2020-06-13,Stephens,Georgia,13257,152,4 +2020-06-14,Stephens,Georgia,13257,152,4 +2020-06-15,Stephens,Georgia,13257,153,5 +2020-06-16,Stephens,Georgia,13257,158,6 +2020-06-17,Stephens,Georgia,13257,161,6 +2020-06-18,Stephens,Georgia,13257,160,5 +2020-06-19,Stephens,Georgia,13257,163,5 +2020-06-20,Stephens,Georgia,13257,165,5 +2020-06-21,Stephens,Georgia,13257,165,5 +2020-06-22,Stephens,Georgia,13257,165,5 +2020-06-23,Stephens,Georgia,13257,182,6 +2020-06-24,Stephens,Georgia,13257,184,6 +2020-06-25,Stephens,Georgia,13257,190,6 +2020-06-26,Stephens,Georgia,13257,194,6 +2020-06-27,Stephens,Georgia,13257,195,6 +2020-06-28,Stephens,Georgia,13257,212,6 +2020-06-29,Stephens,Georgia,13257,216,6 +2020-06-30,Stephens,Georgia,13257,224,6 +2020-07-01,Stephens,Georgia,13257,234,6 +2020-07-02,Stephens,Georgia,13257,240,6 +2020-07-03,Stephens,Georgia,13257,253,6 +2020-07-04,Stephens,Georgia,13257,261,6 +2020-07-05,Stephens,Georgia,13257,262,6 +2020-07-06,Stephens,Georgia,13257,262,6 +2020-07-07,Stephens,Georgia,13257,269,6 +2020-07-08,Stephens,Georgia,13257,280,6 +2020-07-09,Stephens,Georgia,13257,286,6 +2020-03-31,Stewart,Georgia,13259,1,0 +2020-04-01,Stewart,Georgia,13259,1,0 +2020-04-02,Stewart,Georgia,13259,1,0 +2020-04-03,Stewart,Georgia,13259,1,0 +2020-04-04,Stewart,Georgia,13259,1,0 +2020-04-05,Stewart,Georgia,13259,1,0 +2020-04-06,Stewart,Georgia,13259,3,0 +2020-04-07,Stewart,Georgia,13259,4,0 +2020-04-08,Stewart,Georgia,13259,4,0 +2020-04-09,Stewart,Georgia,13259,4,0 +2020-04-10,Stewart,Georgia,13259,6,0 +2020-04-11,Stewart,Georgia,13259,6,0 +2020-04-12,Stewart,Georgia,13259,7,0 +2020-04-13,Stewart,Georgia,13259,8,0 +2020-04-14,Stewart,Georgia,13259,8,0 +2020-04-15,Stewart,Georgia,13259,9,0 +2020-04-16,Stewart,Georgia,13259,12,0 +2020-04-17,Stewart,Georgia,13259,15,0 +2020-04-18,Stewart,Georgia,13259,15,0 +2020-04-19,Stewart,Georgia,13259,15,0 +2020-04-20,Stewart,Georgia,13259,17,0 +2020-04-21,Stewart,Georgia,13259,17,0 +2020-04-22,Stewart,Georgia,13259,18,0 +2020-04-23,Stewart,Georgia,13259,17,0 +2020-04-24,Stewart,Georgia,13259,17,0 +2020-04-25,Stewart,Georgia,13259,17,0 +2020-04-26,Stewart,Georgia,13259,17,0 +2020-04-27,Stewart,Georgia,13259,18,0 +2020-04-28,Stewart,Georgia,13259,21,0 +2020-04-29,Stewart,Georgia,13259,23,0 +2020-04-30,Stewart,Georgia,13259,24,0 +2020-05-01,Stewart,Georgia,13259,25,0 +2020-05-02,Stewart,Georgia,13259,25,0 +2020-05-03,Stewart,Georgia,13259,25,0 +2020-05-04,Stewart,Georgia,13259,25,0 +2020-05-05,Stewart,Georgia,13259,25,0 +2020-05-06,Stewart,Georgia,13259,26,0 +2020-05-07,Stewart,Georgia,13259,27,0 +2020-05-08,Stewart,Georgia,13259,30,0 +2020-05-09,Stewart,Georgia,13259,31,0 +2020-05-10,Stewart,Georgia,13259,31,0 +2020-05-11,Stewart,Georgia,13259,34,0 +2020-05-12,Stewart,Georgia,13259,35,0 +2020-05-13,Stewart,Georgia,13259,35,0 +2020-05-14,Stewart,Georgia,13259,37,0 +2020-05-15,Stewart,Georgia,13259,37,0 +2020-05-16,Stewart,Georgia,13259,37,0 +2020-05-17,Stewart,Georgia,13259,37,0 +2020-05-18,Stewart,Georgia,13259,39,0 +2020-05-19,Stewart,Georgia,13259,40,0 +2020-05-20,Stewart,Georgia,13259,40,0 +2020-05-21,Stewart,Georgia,13259,40,0 +2020-05-22,Stewart,Georgia,13259,40,0 +2020-05-23,Stewart,Georgia,13259,42,0 +2020-05-24,Stewart,Georgia,13259,42,0 +2020-05-25,Stewart,Georgia,13259,44,0 +2020-05-26,Stewart,Georgia,13259,46,0 +2020-05-27,Stewart,Georgia,13259,47,0 +2020-05-28,Stewart,Georgia,13259,51,1 +2020-05-29,Stewart,Georgia,13259,52,1 +2020-05-30,Stewart,Georgia,13259,52,1 +2020-05-31,Stewart,Georgia,13259,52,1 +2020-06-01,Stewart,Georgia,13259,52,1 +2020-06-02,Stewart,Georgia,13259,52,1 +2020-06-03,Stewart,Georgia,13259,53,1 +2020-06-04,Stewart,Georgia,13259,54,1 +2020-06-05,Stewart,Georgia,13259,55,1 +2020-06-06,Stewart,Georgia,13259,56,1 +2020-06-07,Stewart,Georgia,13259,57,1 +2020-06-08,Stewart,Georgia,13259,57,1 +2020-06-09,Stewart,Georgia,13259,58,1 +2020-06-10,Stewart,Georgia,13259,59,1 +2020-06-11,Stewart,Georgia,13259,60,1 +2020-06-12,Stewart,Georgia,13259,60,1 +2020-06-13,Stewart,Georgia,13259,62,1 +2020-06-14,Stewart,Georgia,13259,62,1 +2020-06-15,Stewart,Georgia,13259,63,1 +2020-06-16,Stewart,Georgia,13259,68,1 +2020-06-17,Stewart,Georgia,13259,70,1 +2020-06-18,Stewart,Georgia,13259,71,1 +2020-06-19,Stewart,Georgia,13259,82,1 +2020-06-20,Stewart,Georgia,13259,82,1 +2020-06-21,Stewart,Georgia,13259,82,1 +2020-06-22,Stewart,Georgia,13259,84,1 +2020-06-23,Stewart,Georgia,13259,92,3 +2020-06-24,Stewart,Georgia,13259,91,3 +2020-06-25,Stewart,Georgia,13259,106,3 +2020-06-26,Stewart,Georgia,13259,110,3 +2020-06-27,Stewart,Georgia,13259,111,3 +2020-06-28,Stewart,Georgia,13259,112,3 +2020-06-29,Stewart,Georgia,13259,113,3 +2020-06-30,Stewart,Georgia,13259,119,3 +2020-07-01,Stewart,Georgia,13259,129,3 +2020-07-02,Stewart,Georgia,13259,135,3 +2020-07-03,Stewart,Georgia,13259,177,3 +2020-07-04,Stewart,Georgia,13259,183,3 +2020-07-05,Stewart,Georgia,13259,184,3 +2020-07-06,Stewart,Georgia,13259,184,3 +2020-07-07,Stewart,Georgia,13259,204,3 +2020-07-08,Stewart,Georgia,13259,206,3 +2020-07-09,Stewart,Georgia,13259,207,3 +2020-03-20,Sumter,Georgia,13261,2,0 +2020-03-21,Sumter,Georgia,13261,2,0 +2020-03-22,Sumter,Georgia,13261,2,0 +2020-03-23,Sumter,Georgia,13261,2,0 +2020-03-24,Sumter,Georgia,13261,4,0 +2020-03-25,Sumter,Georgia,13261,5,0 +2020-03-26,Sumter,Georgia,13261,7,0 +2020-03-27,Sumter,Georgia,13261,10,0 +2020-03-28,Sumter,Georgia,13261,13,1 +2020-03-29,Sumter,Georgia,13261,15,1 +2020-03-30,Sumter,Georgia,13261,17,2 +2020-03-31,Sumter,Georgia,13261,35,2 +2020-04-01,Sumter,Georgia,13261,38,3 +2020-04-02,Sumter,Georgia,13261,48,3 +2020-04-03,Sumter,Georgia,13261,67,4 +2020-04-04,Sumter,Georgia,13261,83,4 +2020-04-05,Sumter,Georgia,13261,83,4 +2020-04-06,Sumter,Georgia,13261,90,4 +2020-04-07,Sumter,Georgia,13261,162,6 +2020-04-08,Sumter,Georgia,13261,180,5 +2020-04-09,Sumter,Georgia,13261,194,9 +2020-04-10,Sumter,Georgia,13261,216,9 +2020-04-11,Sumter,Georgia,13261,224,9 +2020-04-12,Sumter,Georgia,13261,239,9 +2020-04-13,Sumter,Georgia,13261,251,9 +2020-04-14,Sumter,Georgia,13261,269,12 +2020-04-15,Sumter,Georgia,13261,276,13 +2020-04-16,Sumter,Georgia,13261,292,14 +2020-04-17,Sumter,Georgia,13261,306,14 +2020-04-18,Sumter,Georgia,13261,314,14 +2020-04-19,Sumter,Georgia,13261,332,14 +2020-04-20,Sumter,Georgia,13261,332,18 +2020-04-21,Sumter,Georgia,13261,334,20 +2020-04-22,Sumter,Georgia,13261,341,20 +2020-04-23,Sumter,Georgia,13261,344,21 +2020-04-24,Sumter,Georgia,13261,348,21 +2020-04-25,Sumter,Georgia,13261,350,21 +2020-04-26,Sumter,Georgia,13261,356,21 +2020-04-27,Sumter,Georgia,13261,362,24 +2020-04-28,Sumter,Georgia,13261,370,26 +2020-04-29,Sumter,Georgia,13261,378,28 +2020-04-30,Sumter,Georgia,13261,381,28 +2020-05-01,Sumter,Georgia,13261,382,28 +2020-05-02,Sumter,Georgia,13261,385,28 +2020-05-03,Sumter,Georgia,13261,388,28 +2020-05-04,Sumter,Georgia,13261,391,29 +2020-05-05,Sumter,Georgia,13261,392,29 +2020-05-06,Sumter,Georgia,13261,385,29 +2020-05-07,Sumter,Georgia,13261,387,29 +2020-05-08,Sumter,Georgia,13261,391,32 +2020-05-09,Sumter,Georgia,13261,399,32 +2020-05-10,Sumter,Georgia,13261,400,32 +2020-05-11,Sumter,Georgia,13261,400,33 +2020-05-12,Sumter,Georgia,13261,406,35 +2020-05-13,Sumter,Georgia,13261,409,35 +2020-05-14,Sumter,Georgia,13261,412,38 +2020-05-15,Sumter,Georgia,13261,413,38 +2020-05-16,Sumter,Georgia,13261,415,39 +2020-05-17,Sumter,Georgia,13261,415,39 +2020-05-18,Sumter,Georgia,13261,419,39 +2020-05-19,Sumter,Georgia,13261,421,39 +2020-05-20,Sumter,Georgia,13261,425,40 +2020-05-21,Sumter,Georgia,13261,432,40 +2020-05-22,Sumter,Georgia,13261,436,40 +2020-05-23,Sumter,Georgia,13261,439,40 +2020-05-24,Sumter,Georgia,13261,445,40 +2020-05-25,Sumter,Georgia,13261,449,41 +2020-05-26,Sumter,Georgia,13261,454,41 +2020-05-27,Sumter,Georgia,13261,460,41 +2020-05-28,Sumter,Georgia,13261,466,41 +2020-05-29,Sumter,Georgia,13261,476,42 +2020-05-30,Sumter,Georgia,13261,475,43 +2020-05-31,Sumter,Georgia,13261,475,44 +2020-06-01,Sumter,Georgia,13261,487,44 +2020-06-02,Sumter,Georgia,13261,489,44 +2020-06-03,Sumter,Georgia,13261,490,44 +2020-06-04,Sumter,Georgia,13261,490,44 +2020-06-05,Sumter,Georgia,13261,493,45 +2020-06-06,Sumter,Georgia,13261,493,45 +2020-06-07,Sumter,Georgia,13261,494,45 +2020-06-08,Sumter,Georgia,13261,496,46 +2020-06-09,Sumter,Georgia,13261,498,48 +2020-06-10,Sumter,Georgia,13261,499,48 +2020-06-11,Sumter,Georgia,13261,502,49 +2020-06-12,Sumter,Georgia,13261,506,50 +2020-06-13,Sumter,Georgia,13261,506,50 +2020-06-14,Sumter,Georgia,13261,508,50 +2020-06-15,Sumter,Georgia,13261,512,50 +2020-06-16,Sumter,Georgia,13261,523,50 +2020-06-17,Sumter,Georgia,13261,526,49 +2020-06-18,Sumter,Georgia,13261,529,49 +2020-06-19,Sumter,Georgia,13261,531,49 +2020-06-20,Sumter,Georgia,13261,532,49 +2020-06-21,Sumter,Georgia,13261,532,49 +2020-06-22,Sumter,Georgia,13261,536,49 +2020-06-23,Sumter,Georgia,13261,540,50 +2020-06-24,Sumter,Georgia,13261,540,50 +2020-06-25,Sumter,Georgia,13261,542,50 +2020-06-26,Sumter,Georgia,13261,548,50 +2020-06-27,Sumter,Georgia,13261,550,50 +2020-06-28,Sumter,Georgia,13261,550,50 +2020-06-29,Sumter,Georgia,13261,551,50 +2020-06-30,Sumter,Georgia,13261,554,50 +2020-07-01,Sumter,Georgia,13261,557,50 +2020-07-02,Sumter,Georgia,13261,562,50 +2020-07-03,Sumter,Georgia,13261,565,50 +2020-07-04,Sumter,Georgia,13261,571,50 +2020-07-05,Sumter,Georgia,13261,574,50 +2020-07-06,Sumter,Georgia,13261,576,50 +2020-07-07,Sumter,Georgia,13261,580,50 +2020-07-08,Sumter,Georgia,13261,590,50 +2020-07-09,Sumter,Georgia,13261,598,50 +2020-03-30,Talbot,Georgia,13263,1,0 +2020-03-31,Talbot,Georgia,13263,1,0 +2020-04-01,Talbot,Georgia,13263,1,0 +2020-04-02,Talbot,Georgia,13263,1,0 +2020-04-03,Talbot,Georgia,13263,3,0 +2020-04-04,Talbot,Georgia,13263,3,0 +2020-04-05,Talbot,Georgia,13263,4,0 +2020-04-06,Talbot,Georgia,13263,5,0 +2020-04-07,Talbot,Georgia,13263,8,1 +2020-04-08,Talbot,Georgia,13263,7,1 +2020-04-09,Talbot,Georgia,13263,8,1 +2020-04-10,Talbot,Georgia,13263,9,1 +2020-04-11,Talbot,Georgia,13263,9,1 +2020-04-12,Talbot,Georgia,13263,9,1 +2020-04-13,Talbot,Georgia,13263,9,1 +2020-04-14,Talbot,Georgia,13263,10,1 +2020-04-15,Talbot,Georgia,13263,13,1 +2020-04-16,Talbot,Georgia,13263,15,1 +2020-04-17,Talbot,Georgia,13263,16,1 +2020-04-18,Talbot,Georgia,13263,16,1 +2020-04-19,Talbot,Georgia,13263,16,1 +2020-04-20,Talbot,Georgia,13263,19,1 +2020-04-21,Talbot,Georgia,13263,20,1 +2020-04-22,Talbot,Georgia,13263,21,1 +2020-04-23,Talbot,Georgia,13263,21,1 +2020-04-24,Talbot,Georgia,13263,21,1 +2020-04-25,Talbot,Georgia,13263,21,1 +2020-04-26,Talbot,Georgia,13263,21,1 +2020-04-27,Talbot,Georgia,13263,21,1 +2020-04-28,Talbot,Georgia,13263,22,1 +2020-04-29,Talbot,Georgia,13263,24,1 +2020-04-30,Talbot,Georgia,13263,26,1 +2020-05-01,Talbot,Georgia,13263,26,1 +2020-05-02,Talbot,Georgia,13263,26,1 +2020-05-03,Talbot,Georgia,13263,25,1 +2020-05-04,Talbot,Georgia,13263,25,1 +2020-05-05,Talbot,Georgia,13263,25,1 +2020-05-06,Talbot,Georgia,13263,24,1 +2020-05-07,Talbot,Georgia,13263,26,1 +2020-05-08,Talbot,Georgia,13263,26,1 +2020-05-09,Talbot,Georgia,13263,27,1 +2020-05-10,Talbot,Georgia,13263,27,1 +2020-05-11,Talbot,Georgia,13263,27,1 +2020-05-12,Talbot,Georgia,13263,27,1 +2020-05-13,Talbot,Georgia,13263,27,1 +2020-05-14,Talbot,Georgia,13263,27,1 +2020-05-15,Talbot,Georgia,13263,28,1 +2020-05-16,Talbot,Georgia,13263,28,1 +2020-05-17,Talbot,Georgia,13263,28,1 +2020-05-18,Talbot,Georgia,13263,30,1 +2020-05-19,Talbot,Georgia,13263,30,1 +2020-05-20,Talbot,Georgia,13263,31,1 +2020-05-21,Talbot,Georgia,13263,32,1 +2020-05-22,Talbot,Georgia,13263,34,1 +2020-05-23,Talbot,Georgia,13263,34,1 +2020-05-24,Talbot,Georgia,13263,35,1 +2020-05-25,Talbot,Georgia,13263,35,1 +2020-05-26,Talbot,Georgia,13263,37,1 +2020-05-27,Talbot,Georgia,13263,38,1 +2020-05-28,Talbot,Georgia,13263,38,1 +2020-05-29,Talbot,Georgia,13263,38,1 +2020-05-30,Talbot,Georgia,13263,38,1 +2020-05-31,Talbot,Georgia,13263,38,1 +2020-06-01,Talbot,Georgia,13263,39,2 +2020-06-02,Talbot,Georgia,13263,39,2 +2020-06-03,Talbot,Georgia,13263,40,2 +2020-06-04,Talbot,Georgia,13263,40,2 +2020-06-05,Talbot,Georgia,13263,40,2 +2020-06-06,Talbot,Georgia,13263,41,2 +2020-06-07,Talbot,Georgia,13263,41,2 +2020-06-08,Talbot,Georgia,13263,41,2 +2020-06-09,Talbot,Georgia,13263,43,2 +2020-06-10,Talbot,Georgia,13263,44,2 +2020-06-11,Talbot,Georgia,13263,45,2 +2020-06-12,Talbot,Georgia,13263,45,2 +2020-06-13,Talbot,Georgia,13263,45,2 +2020-06-14,Talbot,Georgia,13263,46,2 +2020-06-15,Talbot,Georgia,13263,47,2 +2020-06-16,Talbot,Georgia,13263,50,2 +2020-06-17,Talbot,Georgia,13263,52,2 +2020-06-18,Talbot,Georgia,13263,53,2 +2020-06-19,Talbot,Georgia,13263,53,2 +2020-06-20,Talbot,Georgia,13263,57,2 +2020-06-21,Talbot,Georgia,13263,58,2 +2020-06-22,Talbot,Georgia,13263,62,2 +2020-06-23,Talbot,Georgia,13263,64,2 +2020-06-24,Talbot,Georgia,13263,66,2 +2020-06-25,Talbot,Georgia,13263,66,2 +2020-06-26,Talbot,Georgia,13263,67,2 +2020-06-27,Talbot,Georgia,13263,68,2 +2020-06-28,Talbot,Georgia,13263,68,2 +2020-06-29,Talbot,Georgia,13263,69,2 +2020-06-30,Talbot,Georgia,13263,73,2 +2020-07-01,Talbot,Georgia,13263,73,2 +2020-07-02,Talbot,Georgia,13263,78,3 +2020-07-03,Talbot,Georgia,13263,80,3 +2020-07-04,Talbot,Georgia,13263,81,3 +2020-07-05,Talbot,Georgia,13263,82,3 +2020-07-06,Talbot,Georgia,13263,82,3 +2020-07-07,Talbot,Georgia,13263,88,3 +2020-07-08,Talbot,Georgia,13263,88,3 +2020-07-09,Talbot,Georgia,13263,88,3 +2020-05-03,Taliaferro,Georgia,13265,1,0 +2020-05-04,Taliaferro,Georgia,13265,1,0 +2020-05-05,Taliaferro,Georgia,13265,1,0 +2020-05-06,Taliaferro,Georgia,13265,1,0 +2020-05-07,Taliaferro,Georgia,13265,1,0 +2020-05-08,Taliaferro,Georgia,13265,1,0 +2020-05-09,Taliaferro,Georgia,13265,1,0 +2020-05-10,Taliaferro,Georgia,13265,1,0 +2020-05-11,Taliaferro,Georgia,13265,1,0 +2020-05-12,Taliaferro,Georgia,13265,1,0 +2020-05-13,Taliaferro,Georgia,13265,1,0 +2020-05-14,Taliaferro,Georgia,13265,1,0 +2020-05-15,Taliaferro,Georgia,13265,1,0 +2020-05-16,Taliaferro,Georgia,13265,1,0 +2020-05-17,Taliaferro,Georgia,13265,1,0 +2020-05-18,Taliaferro,Georgia,13265,1,0 +2020-05-19,Taliaferro,Georgia,13265,1,0 +2020-05-20,Taliaferro,Georgia,13265,1,0 +2020-05-21,Taliaferro,Georgia,13265,1,0 +2020-05-22,Taliaferro,Georgia,13265,1,0 +2020-05-23,Taliaferro,Georgia,13265,1,0 +2020-05-24,Taliaferro,Georgia,13265,1,0 +2020-05-25,Taliaferro,Georgia,13265,1,0 +2020-05-26,Taliaferro,Georgia,13265,1,0 +2020-05-27,Taliaferro,Georgia,13265,1,0 +2020-05-28,Taliaferro,Georgia,13265,1,0 +2020-05-29,Taliaferro,Georgia,13265,1,0 +2020-05-30,Taliaferro,Georgia,13265,1,0 +2020-05-31,Taliaferro,Georgia,13265,1,0 +2020-06-01,Taliaferro,Georgia,13265,1,0 +2020-06-02,Taliaferro,Georgia,13265,1,0 +2020-06-03,Taliaferro,Georgia,13265,1,0 +2020-06-04,Taliaferro,Georgia,13265,1,0 +2020-06-05,Taliaferro,Georgia,13265,1,0 +2020-06-06,Taliaferro,Georgia,13265,1,0 +2020-06-07,Taliaferro,Georgia,13265,1,0 +2020-06-08,Taliaferro,Georgia,13265,1,0 +2020-06-09,Taliaferro,Georgia,13265,1,0 +2020-06-10,Taliaferro,Georgia,13265,1,0 +2020-06-11,Taliaferro,Georgia,13265,1,0 +2020-06-12,Taliaferro,Georgia,13265,2,0 +2020-06-13,Taliaferro,Georgia,13265,2,0 +2020-06-14,Taliaferro,Georgia,13265,2,0 +2020-06-15,Taliaferro,Georgia,13265,2,0 +2020-06-16,Taliaferro,Georgia,13265,2,0 +2020-06-17,Taliaferro,Georgia,13265,2,0 +2020-06-18,Taliaferro,Georgia,13265,2,0 +2020-06-19,Taliaferro,Georgia,13265,2,0 +2020-06-20,Taliaferro,Georgia,13265,2,0 +2020-06-21,Taliaferro,Georgia,13265,2,0 +2020-06-22,Taliaferro,Georgia,13265,2,0 +2020-06-23,Taliaferro,Georgia,13265,2,0 +2020-06-24,Taliaferro,Georgia,13265,2,0 +2020-06-25,Taliaferro,Georgia,13265,2,0 +2020-06-26,Taliaferro,Georgia,13265,2,0 +2020-06-27,Taliaferro,Georgia,13265,2,0 +2020-06-28,Taliaferro,Georgia,13265,2,0 +2020-06-29,Taliaferro,Georgia,13265,2,0 +2020-06-30,Taliaferro,Georgia,13265,2,0 +2020-07-01,Taliaferro,Georgia,13265,2,0 +2020-07-02,Taliaferro,Georgia,13265,2,0 +2020-07-03,Taliaferro,Georgia,13265,2,0 +2020-07-04,Taliaferro,Georgia,13265,2,0 +2020-07-05,Taliaferro,Georgia,13265,2,0 +2020-07-06,Taliaferro,Georgia,13265,2,0 +2020-07-07,Taliaferro,Georgia,13265,2,0 +2020-07-08,Taliaferro,Georgia,13265,2,0 +2020-07-09,Taliaferro,Georgia,13265,2,0 +2020-03-22,Tattnall,Georgia,13267,1,0 +2020-03-23,Tattnall,Georgia,13267,1,0 +2020-03-24,Tattnall,Georgia,13267,1,0 +2020-03-25,Tattnall,Georgia,13267,1,0 +2020-03-26,Tattnall,Georgia,13267,2,0 +2020-03-27,Tattnall,Georgia,13267,2,0 +2020-03-28,Tattnall,Georgia,13267,2,0 +2020-03-29,Tattnall,Georgia,13267,2,0 +2020-03-30,Tattnall,Georgia,13267,2,0 +2020-03-31,Tattnall,Georgia,13267,2,0 +2020-04-01,Tattnall,Georgia,13267,2,0 +2020-04-02,Tattnall,Georgia,13267,2,0 +2020-04-03,Tattnall,Georgia,13267,3,0 +2020-04-04,Tattnall,Georgia,13267,3,0 +2020-04-05,Tattnall,Georgia,13267,3,0 +2020-04-06,Tattnall,Georgia,13267,3,0 +2020-04-07,Tattnall,Georgia,13267,3,0 +2020-04-08,Tattnall,Georgia,13267,3,0 +2020-04-09,Tattnall,Georgia,13267,3,0 +2020-04-10,Tattnall,Georgia,13267,3,0 +2020-04-11,Tattnall,Georgia,13267,3,0 +2020-04-12,Tattnall,Georgia,13267,5,0 +2020-04-13,Tattnall,Georgia,13267,5,0 +2020-04-14,Tattnall,Georgia,13267,5,0 +2020-04-15,Tattnall,Georgia,13267,5,0 +2020-04-16,Tattnall,Georgia,13267,5,0 +2020-04-17,Tattnall,Georgia,13267,5,0 +2020-04-18,Tattnall,Georgia,13267,5,0 +2020-04-19,Tattnall,Georgia,13267,5,0 +2020-04-20,Tattnall,Georgia,13267,5,0 +2020-04-21,Tattnall,Georgia,13267,5,0 +2020-04-22,Tattnall,Georgia,13267,6,0 +2020-04-23,Tattnall,Georgia,13267,6,0 +2020-04-24,Tattnall,Georgia,13267,6,0 +2020-04-25,Tattnall,Georgia,13267,6,0 +2020-04-26,Tattnall,Georgia,13267,7,0 +2020-04-27,Tattnall,Georgia,13267,7,0 +2020-04-28,Tattnall,Georgia,13267,8,0 +2020-04-29,Tattnall,Georgia,13267,10,0 +2020-04-30,Tattnall,Georgia,13267,10,0 +2020-05-01,Tattnall,Georgia,13267,9,0 +2020-05-02,Tattnall,Georgia,13267,9,0 +2020-05-03,Tattnall,Georgia,13267,9,0 +2020-05-04,Tattnall,Georgia,13267,9,0 +2020-05-05,Tattnall,Georgia,13267,9,0 +2020-05-06,Tattnall,Georgia,13267,9,0 +2020-05-07,Tattnall,Georgia,13267,9,0 +2020-05-08,Tattnall,Georgia,13267,9,0 +2020-05-09,Tattnall,Georgia,13267,9,0 +2020-05-10,Tattnall,Georgia,13267,9,0 +2020-05-11,Tattnall,Georgia,13267,9,0 +2020-05-12,Tattnall,Georgia,13267,10,0 +2020-05-13,Tattnall,Georgia,13267,10,0 +2020-05-14,Tattnall,Georgia,13267,11,0 +2020-05-15,Tattnall,Georgia,13267,11,0 +2020-05-16,Tattnall,Georgia,13267,11,0 +2020-05-17,Tattnall,Georgia,13267,11,0 +2020-05-18,Tattnall,Georgia,13267,12,0 +2020-05-19,Tattnall,Georgia,13267,13,0 +2020-05-20,Tattnall,Georgia,13267,13,0 +2020-05-21,Tattnall,Georgia,13267,13,0 +2020-05-22,Tattnall,Georgia,13267,13,0 +2020-05-23,Tattnall,Georgia,13267,14,0 +2020-05-24,Tattnall,Georgia,13267,15,0 +2020-05-25,Tattnall,Georgia,13267,15,0 +2020-05-26,Tattnall,Georgia,13267,19,0 +2020-05-27,Tattnall,Georgia,13267,19,0 +2020-05-28,Tattnall,Georgia,13267,20,0 +2020-05-29,Tattnall,Georgia,13267,23,0 +2020-05-30,Tattnall,Georgia,13267,23,0 +2020-05-31,Tattnall,Georgia,13267,27,0 +2020-06-01,Tattnall,Georgia,13267,27,0 +2020-06-02,Tattnall,Georgia,13267,27,0 +2020-06-03,Tattnall,Georgia,13267,29,0 +2020-06-04,Tattnall,Georgia,13267,29,0 +2020-06-05,Tattnall,Georgia,13267,30,0 +2020-06-06,Tattnall,Georgia,13267,30,0 +2020-06-07,Tattnall,Georgia,13267,30,0 +2020-06-08,Tattnall,Georgia,13267,32,0 +2020-06-09,Tattnall,Georgia,13267,34,0 +2020-06-10,Tattnall,Georgia,13267,35,0 +2020-06-11,Tattnall,Georgia,13267,37,0 +2020-06-12,Tattnall,Georgia,13267,38,0 +2020-06-13,Tattnall,Georgia,13267,46,0 +2020-06-14,Tattnall,Georgia,13267,46,0 +2020-06-15,Tattnall,Georgia,13267,56,0 +2020-06-16,Tattnall,Georgia,13267,58,0 +2020-06-17,Tattnall,Georgia,13267,61,0 +2020-06-18,Tattnall,Georgia,13267,69,0 +2020-06-19,Tattnall,Georgia,13267,77,0 +2020-06-20,Tattnall,Georgia,13267,80,0 +2020-06-21,Tattnall,Georgia,13267,80,0 +2020-06-22,Tattnall,Georgia,13267,88,0 +2020-06-23,Tattnall,Georgia,13267,92,0 +2020-06-24,Tattnall,Georgia,13267,100,0 +2020-06-25,Tattnall,Georgia,13267,103,0 +2020-06-26,Tattnall,Georgia,13267,109,0 +2020-06-27,Tattnall,Georgia,13267,119,0 +2020-06-28,Tattnall,Georgia,13267,128,0 +2020-06-29,Tattnall,Georgia,13267,130,0 +2020-06-30,Tattnall,Georgia,13267,138,0 +2020-07-01,Tattnall,Georgia,13267,141,0 +2020-07-02,Tattnall,Georgia,13267,142,0 +2020-07-03,Tattnall,Georgia,13267,148,0 +2020-07-04,Tattnall,Georgia,13267,156,0 +2020-07-05,Tattnall,Georgia,13267,158,0 +2020-07-06,Tattnall,Georgia,13267,161,0 +2020-07-07,Tattnall,Georgia,13267,164,0 +2020-07-08,Tattnall,Georgia,13267,167,0 +2020-07-09,Tattnall,Georgia,13267,174,0 +2020-03-25,Taylor,Georgia,13269,1,0 +2020-03-26,Taylor,Georgia,13269,1,0 +2020-03-27,Taylor,Georgia,13269,1,0 +2020-03-28,Taylor,Georgia,13269,1,0 +2020-03-29,Taylor,Georgia,13269,1,0 +2020-03-30,Taylor,Georgia,13269,2,0 +2020-03-31,Taylor,Georgia,13269,2,0 +2020-04-01,Taylor,Georgia,13269,2,0 +2020-04-02,Taylor,Georgia,13269,2,0 +2020-04-03,Taylor,Georgia,13269,2,0 +2020-04-04,Taylor,Georgia,13269,2,0 +2020-04-05,Taylor,Georgia,13269,2,0 +2020-04-06,Taylor,Georgia,13269,3,1 +2020-04-07,Taylor,Georgia,13269,4,1 +2020-04-08,Taylor,Georgia,13269,5,2 +2020-04-09,Taylor,Georgia,13269,5,2 +2020-04-10,Taylor,Georgia,13269,7,2 +2020-04-11,Taylor,Georgia,13269,7,2 +2020-04-12,Taylor,Georgia,13269,7,2 +2020-04-13,Taylor,Georgia,13269,9,2 +2020-04-14,Taylor,Georgia,13269,9,2 +2020-04-15,Taylor,Georgia,13269,9,2 +2020-04-16,Taylor,Georgia,13269,11,3 +2020-04-17,Taylor,Georgia,13269,10,2 +2020-04-18,Taylor,Georgia,13269,10,2 +2020-04-19,Taylor,Georgia,13269,11,2 +2020-04-20,Taylor,Georgia,13269,13,2 +2020-04-21,Taylor,Georgia,13269,13,2 +2020-04-22,Taylor,Georgia,13269,13,2 +2020-04-23,Taylor,Georgia,13269,14,2 +2020-04-24,Taylor,Georgia,13269,14,2 +2020-04-25,Taylor,Georgia,13269,16,2 +2020-04-26,Taylor,Georgia,13269,16,2 +2020-04-27,Taylor,Georgia,13269,17,2 +2020-04-28,Taylor,Georgia,13269,18,2 +2020-04-29,Taylor,Georgia,13269,17,2 +2020-04-30,Taylor,Georgia,13269,17,2 +2020-05-01,Taylor,Georgia,13269,17,2 +2020-05-02,Taylor,Georgia,13269,18,2 +2020-05-03,Taylor,Georgia,13269,18,2 +2020-05-04,Taylor,Georgia,13269,18,2 +2020-05-05,Taylor,Georgia,13269,18,2 +2020-05-06,Taylor,Georgia,13269,18,2 +2020-05-07,Taylor,Georgia,13269,18,2 +2020-05-08,Taylor,Georgia,13269,18,2 +2020-05-09,Taylor,Georgia,13269,18,2 +2020-05-10,Taylor,Georgia,13269,20,2 +2020-05-11,Taylor,Georgia,13269,21,2 +2020-05-12,Taylor,Georgia,13269,22,2 +2020-05-13,Taylor,Georgia,13269,22,2 +2020-05-14,Taylor,Georgia,13269,22,2 +2020-05-15,Taylor,Georgia,13269,22,2 +2020-05-16,Taylor,Georgia,13269,22,2 +2020-05-17,Taylor,Georgia,13269,22,2 +2020-05-18,Taylor,Georgia,13269,22,2 +2020-05-19,Taylor,Georgia,13269,22,2 +2020-05-20,Taylor,Georgia,13269,22,2 +2020-05-21,Taylor,Georgia,13269,21,2 +2020-05-22,Taylor,Georgia,13269,21,2 +2020-05-23,Taylor,Georgia,13269,21,2 +2020-05-24,Taylor,Georgia,13269,21,2 +2020-05-25,Taylor,Georgia,13269,21,2 +2020-05-26,Taylor,Georgia,13269,21,2 +2020-05-27,Taylor,Georgia,13269,21,2 +2020-05-28,Taylor,Georgia,13269,22,2 +2020-05-29,Taylor,Georgia,13269,22,2 +2020-05-30,Taylor,Georgia,13269,22,2 +2020-05-31,Taylor,Georgia,13269,22,2 +2020-06-01,Taylor,Georgia,13269,22,2 +2020-06-02,Taylor,Georgia,13269,22,2 +2020-06-03,Taylor,Georgia,13269,23,2 +2020-06-04,Taylor,Georgia,13269,23,2 +2020-06-05,Taylor,Georgia,13269,23,2 +2020-06-06,Taylor,Georgia,13269,23,2 +2020-06-07,Taylor,Georgia,13269,23,2 +2020-06-08,Taylor,Georgia,13269,23,2 +2020-06-09,Taylor,Georgia,13269,23,2 +2020-06-10,Taylor,Georgia,13269,24,2 +2020-06-11,Taylor,Georgia,13269,25,2 +2020-06-12,Taylor,Georgia,13269,25,2 +2020-06-13,Taylor,Georgia,13269,26,2 +2020-06-14,Taylor,Georgia,13269,26,2 +2020-06-15,Taylor,Georgia,13269,26,2 +2020-06-16,Taylor,Georgia,13269,26,2 +2020-06-17,Taylor,Georgia,13269,26,2 +2020-06-18,Taylor,Georgia,13269,27,2 +2020-06-19,Taylor,Georgia,13269,27,2 +2020-06-20,Taylor,Georgia,13269,27,2 +2020-06-21,Taylor,Georgia,13269,27,2 +2020-06-22,Taylor,Georgia,13269,26,2 +2020-06-23,Taylor,Georgia,13269,26,2 +2020-06-24,Taylor,Georgia,13269,26,2 +2020-06-25,Taylor,Georgia,13269,27,2 +2020-06-26,Taylor,Georgia,13269,27,2 +2020-06-27,Taylor,Georgia,13269,27,2 +2020-06-28,Taylor,Georgia,13269,27,2 +2020-06-29,Taylor,Georgia,13269,28,2 +2020-06-30,Taylor,Georgia,13269,28,2 +2020-07-01,Taylor,Georgia,13269,28,2 +2020-07-02,Taylor,Georgia,13269,29,2 +2020-07-03,Taylor,Georgia,13269,30,2 +2020-07-04,Taylor,Georgia,13269,31,2 +2020-07-05,Taylor,Georgia,13269,37,2 +2020-07-06,Taylor,Georgia,13269,38,2 +2020-07-07,Taylor,Georgia,13269,38,2 +2020-07-08,Taylor,Georgia,13269,39,2 +2020-07-09,Taylor,Georgia,13269,39,2 +2020-04-02,Telfair,Georgia,13271,2,0 +2020-04-03,Telfair,Georgia,13271,2,0 +2020-04-04,Telfair,Georgia,13271,4,0 +2020-04-05,Telfair,Georgia,13271,4,0 +2020-04-06,Telfair,Georgia,13271,4,0 +2020-04-07,Telfair,Georgia,13271,4,0 +2020-04-08,Telfair,Georgia,13271,6,0 +2020-04-09,Telfair,Georgia,13271,7,0 +2020-04-10,Telfair,Georgia,13271,9,0 +2020-04-11,Telfair,Georgia,13271,9,0 +2020-04-12,Telfair,Georgia,13271,9,0 +2020-04-13,Telfair,Georgia,13271,11,0 +2020-04-14,Telfair,Georgia,13271,11,0 +2020-04-15,Telfair,Georgia,13271,11,0 +2020-04-16,Telfair,Georgia,13271,13,0 +2020-04-17,Telfair,Georgia,13271,14,0 +2020-04-18,Telfair,Georgia,13271,14,0 +2020-04-19,Telfair,Georgia,13271,14,0 +2020-04-20,Telfair,Georgia,13271,15,0 +2020-04-21,Telfair,Georgia,13271,15,0 +2020-04-22,Telfair,Georgia,13271,17,0 +2020-04-23,Telfair,Georgia,13271,16,0 +2020-04-24,Telfair,Georgia,13271,20,0 +2020-04-25,Telfair,Georgia,13271,26,0 +2020-04-26,Telfair,Georgia,13271,26,0 +2020-04-27,Telfair,Georgia,13271,25,0 +2020-04-28,Telfair,Georgia,13271,25,0 +2020-04-29,Telfair,Georgia,13271,25,0 +2020-04-30,Telfair,Georgia,13271,27,0 +2020-05-01,Telfair,Georgia,13271,28,0 +2020-05-02,Telfair,Georgia,13271,28,0 +2020-05-03,Telfair,Georgia,13271,28,0 +2020-05-04,Telfair,Georgia,13271,28,0 +2020-05-05,Telfair,Georgia,13271,28,0 +2020-05-06,Telfair,Georgia,13271,28,0 +2020-05-07,Telfair,Georgia,13271,28,0 +2020-05-08,Telfair,Georgia,13271,28,0 +2020-05-09,Telfair,Georgia,13271,28,0 +2020-05-10,Telfair,Georgia,13271,28,0 +2020-05-11,Telfair,Georgia,13271,28,0 +2020-05-12,Telfair,Georgia,13271,28,0 +2020-05-13,Telfair,Georgia,13271,29,1 +2020-05-14,Telfair,Georgia,13271,29,1 +2020-05-15,Telfair,Georgia,13271,29,1 +2020-05-16,Telfair,Georgia,13271,29,1 +2020-05-17,Telfair,Georgia,13271,29,1 +2020-05-18,Telfair,Georgia,13271,30,1 +2020-05-19,Telfair,Georgia,13271,31,1 +2020-05-20,Telfair,Georgia,13271,29,1 +2020-05-21,Telfair,Georgia,13271,30,1 +2020-05-22,Telfair,Georgia,13271,32,1 +2020-05-23,Telfair,Georgia,13271,32,1 +2020-05-24,Telfair,Georgia,13271,32,1 +2020-05-25,Telfair,Georgia,13271,33,1 +2020-05-26,Telfair,Georgia,13271,34,1 +2020-05-27,Telfair,Georgia,13271,34,1 +2020-05-28,Telfair,Georgia,13271,36,1 +2020-05-29,Telfair,Georgia,13271,37,1 +2020-05-30,Telfair,Georgia,13271,37,1 +2020-05-31,Telfair,Georgia,13271,37,1 +2020-06-01,Telfair,Georgia,13271,37,1 +2020-06-02,Telfair,Georgia,13271,37,1 +2020-06-03,Telfair,Georgia,13271,37,1 +2020-06-04,Telfair,Georgia,13271,38,1 +2020-06-05,Telfair,Georgia,13271,38,1 +2020-06-06,Telfair,Georgia,13271,38,1 +2020-06-07,Telfair,Georgia,13271,38,1 +2020-06-08,Telfair,Georgia,13271,38,1 +2020-06-09,Telfair,Georgia,13271,39,1 +2020-06-10,Telfair,Georgia,13271,39,1 +2020-06-11,Telfair,Georgia,13271,45,1 +2020-06-12,Telfair,Georgia,13271,47,1 +2020-06-13,Telfair,Georgia,13271,51,1 +2020-06-14,Telfair,Georgia,13271,54,1 +2020-06-15,Telfair,Georgia,13271,54,2 +2020-06-16,Telfair,Georgia,13271,54,2 +2020-06-17,Telfair,Georgia,13271,58,2 +2020-06-18,Telfair,Georgia,13271,61,2 +2020-06-19,Telfair,Georgia,13271,63,2 +2020-06-20,Telfair,Georgia,13271,63,2 +2020-06-21,Telfair,Georgia,13271,64,2 +2020-06-22,Telfair,Georgia,13271,64,2 +2020-06-23,Telfair,Georgia,13271,65,2 +2020-06-24,Telfair,Georgia,13271,65,2 +2020-06-25,Telfair,Georgia,13271,74,3 +2020-06-26,Telfair,Georgia,13271,80,3 +2020-06-27,Telfair,Georgia,13271,89,3 +2020-06-28,Telfair,Georgia,13271,106,3 +2020-06-29,Telfair,Georgia,13271,112,3 +2020-06-30,Telfair,Georgia,13271,118,3 +2020-07-01,Telfair,Georgia,13271,120,3 +2020-07-02,Telfair,Georgia,13271,119,3 +2020-07-03,Telfair,Georgia,13271,125,3 +2020-07-04,Telfair,Georgia,13271,125,3 +2020-07-05,Telfair,Georgia,13271,126,3 +2020-07-06,Telfair,Georgia,13271,127,3 +2020-07-07,Telfair,Georgia,13271,131,3 +2020-07-08,Telfair,Georgia,13271,136,3 +2020-07-09,Telfair,Georgia,13271,137,3 +2020-03-20,Terrell,Georgia,13273,2,0 +2020-03-21,Terrell,Georgia,13273,2,0 +2020-03-22,Terrell,Georgia,13273,2,0 +2020-03-23,Terrell,Georgia,13273,2,0 +2020-03-24,Terrell,Georgia,13273,3,2 +2020-03-25,Terrell,Georgia,13273,4,2 +2020-03-26,Terrell,Georgia,13273,5,2 +2020-03-27,Terrell,Georgia,13273,6,2 +2020-03-28,Terrell,Georgia,13273,10,2 +2020-03-29,Terrell,Georgia,13273,10,2 +2020-03-30,Terrell,Georgia,13273,20,2 +2020-03-31,Terrell,Georgia,13273,40,2 +2020-04-01,Terrell,Georgia,13273,46,2 +2020-04-02,Terrell,Georgia,13273,47,2 +2020-04-03,Terrell,Georgia,13273,50,2 +2020-04-04,Terrell,Georgia,13273,57,2 +2020-04-05,Terrell,Georgia,13273,58,2 +2020-04-06,Terrell,Georgia,13273,66,8 +2020-04-07,Terrell,Georgia,13273,92,9 +2020-04-08,Terrell,Georgia,13273,95,9 +2020-04-09,Terrell,Georgia,13273,98,10 +2020-04-10,Terrell,Georgia,13273,103,10 +2020-04-11,Terrell,Georgia,13273,106,10 +2020-04-12,Terrell,Georgia,13273,109,10 +2020-04-13,Terrell,Georgia,13273,118,10 +2020-04-14,Terrell,Georgia,13273,134,11 +2020-04-15,Terrell,Georgia,13273,137,11 +2020-04-16,Terrell,Georgia,13273,137,12 +2020-04-17,Terrell,Georgia,13273,142,14 +2020-04-18,Terrell,Georgia,13273,146,14 +2020-04-19,Terrell,Georgia,13273,148,14 +2020-04-20,Terrell,Georgia,13273,150,18 +2020-04-21,Terrell,Georgia,13273,156,18 +2020-04-22,Terrell,Georgia,13273,159,18 +2020-04-23,Terrell,Georgia,13273,162,18 +2020-04-24,Terrell,Georgia,13273,165,17 +2020-04-25,Terrell,Georgia,13273,165,17 +2020-04-26,Terrell,Georgia,13273,165,17 +2020-04-27,Terrell,Georgia,13273,167,18 +2020-04-28,Terrell,Georgia,13273,170,18 +2020-04-29,Terrell,Georgia,13273,177,18 +2020-04-30,Terrell,Georgia,13273,183,19 +2020-05-01,Terrell,Georgia,13273,184,19 +2020-05-02,Terrell,Georgia,13273,185,19 +2020-05-03,Terrell,Georgia,13273,186,19 +2020-05-04,Terrell,Georgia,13273,189,21 +2020-05-05,Terrell,Georgia,13273,191,21 +2020-05-06,Terrell,Georgia,13273,193,21 +2020-05-07,Terrell,Georgia,13273,195,21 +2020-05-08,Terrell,Georgia,13273,198,21 +2020-05-09,Terrell,Georgia,13273,198,21 +2020-05-10,Terrell,Georgia,13273,198,21 +2020-05-11,Terrell,Georgia,13273,197,23 +2020-05-12,Terrell,Georgia,13273,198,24 +2020-05-13,Terrell,Georgia,13273,199,24 +2020-05-14,Terrell,Georgia,13273,199,24 +2020-05-15,Terrell,Georgia,13273,199,24 +2020-05-16,Terrell,Georgia,13273,199,24 +2020-05-17,Terrell,Georgia,13273,199,24 +2020-05-18,Terrell,Georgia,13273,199,24 +2020-05-19,Terrell,Georgia,13273,199,24 +2020-05-20,Terrell,Georgia,13273,203,24 +2020-05-21,Terrell,Georgia,13273,204,25 +2020-05-22,Terrell,Georgia,13273,209,26 +2020-05-23,Terrell,Georgia,13273,211,26 +2020-05-24,Terrell,Georgia,13273,211,26 +2020-05-25,Terrell,Georgia,13273,211,26 +2020-05-26,Terrell,Georgia,13273,213,26 +2020-05-27,Terrell,Georgia,13273,215,26 +2020-05-28,Terrell,Georgia,13273,213,26 +2020-05-29,Terrell,Georgia,13273,213,26 +2020-05-30,Terrell,Georgia,13273,213,26 +2020-05-31,Terrell,Georgia,13273,213,26 +2020-06-01,Terrell,Georgia,13273,213,26 +2020-06-02,Terrell,Georgia,13273,213,26 +2020-06-03,Terrell,Georgia,13273,215,26 +2020-06-04,Terrell,Georgia,13273,217,26 +2020-06-05,Terrell,Georgia,13273,217,26 +2020-06-06,Terrell,Georgia,13273,217,26 +2020-06-07,Terrell,Georgia,13273,217,26 +2020-06-08,Terrell,Georgia,13273,217,26 +2020-06-09,Terrell,Georgia,13273,217,26 +2020-06-10,Terrell,Georgia,13273,217,26 +2020-06-11,Terrell,Georgia,13273,218,26 +2020-06-12,Terrell,Georgia,13273,218,26 +2020-06-13,Terrell,Georgia,13273,218,26 +2020-06-14,Terrell,Georgia,13273,218,26 +2020-06-15,Terrell,Georgia,13273,218,26 +2020-06-16,Terrell,Georgia,13273,218,27 +2020-06-17,Terrell,Georgia,13273,220,27 +2020-06-18,Terrell,Georgia,13273,217,27 +2020-06-19,Terrell,Georgia,13273,217,27 +2020-06-20,Terrell,Georgia,13273,217,27 +2020-06-21,Terrell,Georgia,13273,218,27 +2020-06-22,Terrell,Georgia,13273,218,27 +2020-06-23,Terrell,Georgia,13273,219,27 +2020-06-24,Terrell,Georgia,13273,219,27 +2020-06-25,Terrell,Georgia,13273,222,27 +2020-06-26,Terrell,Georgia,13273,224,27 +2020-06-27,Terrell,Georgia,13273,224,27 +2020-06-28,Terrell,Georgia,13273,225,27 +2020-06-29,Terrell,Georgia,13273,225,27 +2020-06-30,Terrell,Georgia,13273,225,27 +2020-07-01,Terrell,Georgia,13273,227,27 +2020-07-02,Terrell,Georgia,13273,228,27 +2020-07-03,Terrell,Georgia,13273,231,27 +2020-07-04,Terrell,Georgia,13273,232,27 +2020-07-05,Terrell,Georgia,13273,232,27 +2020-07-06,Terrell,Georgia,13273,234,27 +2020-07-07,Terrell,Georgia,13273,236,28 +2020-07-08,Terrell,Georgia,13273,238,28 +2020-07-09,Terrell,Georgia,13273,238,28 +2020-03-25,Thomas,Georgia,13275,1,0 +2020-03-26,Thomas,Georgia,13275,1,0 +2020-03-27,Thomas,Georgia,13275,3,0 +2020-03-28,Thomas,Georgia,13275,7,0 +2020-03-29,Thomas,Georgia,13275,7,0 +2020-03-30,Thomas,Georgia,13275,7,0 +2020-03-31,Thomas,Georgia,13275,10,0 +2020-04-01,Thomas,Georgia,13275,14,0 +2020-04-02,Thomas,Georgia,13275,17,0 +2020-04-03,Thomas,Georgia,13275,26,0 +2020-04-04,Thomas,Georgia,13275,26,0 +2020-04-05,Thomas,Georgia,13275,28,0 +2020-04-06,Thomas,Georgia,13275,28,0 +2020-04-07,Thomas,Georgia,13275,42,2 +2020-04-08,Thomas,Georgia,13275,56,2 +2020-04-09,Thomas,Georgia,13275,72,3 +2020-04-10,Thomas,Georgia,13275,74,3 +2020-04-11,Thomas,Georgia,13275,76,3 +2020-04-12,Thomas,Georgia,13275,77,3 +2020-04-13,Thomas,Georgia,13275,78,4 +2020-04-14,Thomas,Georgia,13275,89,5 +2020-04-15,Thomas,Georgia,13275,109,9 +2020-04-16,Thomas,Georgia,13275,112,14 +2020-04-17,Thomas,Georgia,13275,115,13 +2020-04-18,Thomas,Georgia,13275,115,13 +2020-04-19,Thomas,Georgia,13275,125,13 +2020-04-20,Thomas,Georgia,13275,126,13 +2020-04-21,Thomas,Georgia,13275,143,14 +2020-04-22,Thomas,Georgia,13275,148,14 +2020-04-23,Thomas,Georgia,13275,158,16 +2020-04-24,Thomas,Georgia,13275,157,16 +2020-04-25,Thomas,Georgia,13275,157,16 +2020-04-26,Thomas,Georgia,13275,158,16 +2020-04-27,Thomas,Georgia,13275,162,16 +2020-04-28,Thomas,Georgia,13275,173,17 +2020-04-29,Thomas,Georgia,13275,178,19 +2020-04-30,Thomas,Georgia,13275,186,19 +2020-05-01,Thomas,Georgia,13275,190,19 +2020-05-02,Thomas,Georgia,13275,191,19 +2020-05-03,Thomas,Georgia,13275,191,19 +2020-05-04,Thomas,Georgia,13275,196,20 +2020-05-05,Thomas,Georgia,13275,204,20 +2020-05-06,Thomas,Georgia,13275,219,22 +2020-05-07,Thomas,Georgia,13275,227,22 +2020-05-08,Thomas,Georgia,13275,239,26 +2020-05-09,Thomas,Georgia,13275,242,26 +2020-05-10,Thomas,Georgia,13275,242,26 +2020-05-11,Thomas,Georgia,13275,249,26 +2020-05-12,Thomas,Georgia,13275,264,26 +2020-05-13,Thomas,Georgia,13275,267,28 +2020-05-14,Thomas,Georgia,13275,276,28 +2020-05-15,Thomas,Georgia,13275,281,29 +2020-05-16,Thomas,Georgia,13275,283,29 +2020-05-17,Thomas,Georgia,13275,283,29 +2020-05-18,Thomas,Georgia,13275,288,30 +2020-05-19,Thomas,Georgia,13275,289,30 +2020-05-20,Thomas,Georgia,13275,302,30 +2020-05-21,Thomas,Georgia,13275,304,30 +2020-05-22,Thomas,Georgia,13275,308,31 +2020-05-23,Thomas,Georgia,13275,309,31 +2020-05-24,Thomas,Georgia,13275,311,31 +2020-05-25,Thomas,Georgia,13275,313,31 +2020-05-26,Thomas,Georgia,13275,323,31 +2020-05-27,Thomas,Georgia,13275,324,31 +2020-05-28,Thomas,Georgia,13275,324,31 +2020-05-29,Thomas,Georgia,13275,324,31 +2020-05-30,Thomas,Georgia,13275,324,32 +2020-05-31,Thomas,Georgia,13275,324,32 +2020-06-01,Thomas,Georgia,13275,329,32 +2020-06-02,Thomas,Georgia,13275,332,32 +2020-06-03,Thomas,Georgia,13275,346,32 +2020-06-04,Thomas,Georgia,13275,349,32 +2020-06-05,Thomas,Georgia,13275,350,33 +2020-06-06,Thomas,Georgia,13275,353,33 +2020-06-07,Thomas,Georgia,13275,353,33 +2020-06-08,Thomas,Georgia,13275,357,33 +2020-06-09,Thomas,Georgia,13275,357,33 +2020-06-10,Thomas,Georgia,13275,356,33 +2020-06-11,Thomas,Georgia,13275,358,33 +2020-06-12,Thomas,Georgia,13275,359,33 +2020-06-13,Thomas,Georgia,13275,361,33 +2020-06-14,Thomas,Georgia,13275,362,33 +2020-06-15,Thomas,Georgia,13275,364,33 +2020-06-16,Thomas,Georgia,13275,365,33 +2020-06-17,Thomas,Georgia,13275,365,33 +2020-06-18,Thomas,Georgia,13275,366,33 +2020-06-19,Thomas,Georgia,13275,368,33 +2020-06-20,Thomas,Georgia,13275,371,33 +2020-06-21,Thomas,Georgia,13275,371,33 +2020-06-22,Thomas,Georgia,13275,372,33 +2020-06-23,Thomas,Georgia,13275,388,33 +2020-06-24,Thomas,Georgia,13275,394,33 +2020-06-25,Thomas,Georgia,13275,399,33 +2020-06-26,Thomas,Georgia,13275,408,32 +2020-06-27,Thomas,Georgia,13275,415,32 +2020-06-28,Thomas,Georgia,13275,417,32 +2020-06-29,Thomas,Georgia,13275,421,32 +2020-06-30,Thomas,Georgia,13275,435,32 +2020-07-01,Thomas,Georgia,13275,459,32 +2020-07-02,Thomas,Georgia,13275,468,32 +2020-07-03,Thomas,Georgia,13275,483,32 +2020-07-04,Thomas,Georgia,13275,492,32 +2020-07-05,Thomas,Georgia,13275,497,32 +2020-07-06,Thomas,Georgia,13275,500,32 +2020-07-07,Thomas,Georgia,13275,519,32 +2020-07-08,Thomas,Georgia,13275,533,32 +2020-07-09,Thomas,Georgia,13275,536,32 +2020-03-20,Tift,Georgia,13277,1,0 +2020-03-21,Tift,Georgia,13277,2,0 +2020-03-22,Tift,Georgia,13277,2,0 +2020-03-23,Tift,Georgia,13277,2,0 +2020-03-24,Tift,Georgia,13277,4,0 +2020-03-25,Tift,Georgia,13277,5,0 +2020-03-26,Tift,Georgia,13277,7,0 +2020-03-27,Tift,Georgia,13277,13,0 +2020-03-28,Tift,Georgia,13277,13,0 +2020-03-29,Tift,Georgia,13277,13,0 +2020-03-30,Tift,Georgia,13277,19,0 +2020-03-31,Tift,Georgia,13277,20,0 +2020-04-01,Tift,Georgia,13277,28,0 +2020-04-02,Tift,Georgia,13277,29,0 +2020-04-03,Tift,Georgia,13277,34,0 +2020-04-04,Tift,Georgia,13277,34,0 +2020-04-05,Tift,Georgia,13277,34,0 +2020-04-06,Tift,Georgia,13277,42,0 +2020-04-07,Tift,Georgia,13277,45,1 +2020-04-08,Tift,Georgia,13277,52,1 +2020-04-09,Tift,Georgia,13277,55,1 +2020-04-10,Tift,Georgia,13277,56,1 +2020-04-11,Tift,Georgia,13277,59,1 +2020-04-12,Tift,Georgia,13277,59,1 +2020-04-13,Tift,Georgia,13277,66,1 +2020-04-14,Tift,Georgia,13277,71,1 +2020-04-15,Tift,Georgia,13277,76,2 +2020-04-16,Tift,Georgia,13277,79,4 +2020-04-17,Tift,Georgia,13277,80,3 +2020-04-18,Tift,Georgia,13277,82,3 +2020-04-19,Tift,Georgia,13277,91,3 +2020-04-20,Tift,Georgia,13277,92,3 +2020-04-21,Tift,Georgia,13277,92,4 +2020-04-22,Tift,Georgia,13277,93,3 +2020-04-23,Tift,Georgia,13277,98,3 +2020-04-24,Tift,Georgia,13277,98,3 +2020-04-25,Tift,Georgia,13277,100,3 +2020-04-26,Tift,Georgia,13277,102,4 +2020-04-27,Tift,Georgia,13277,100,5 +2020-04-28,Tift,Georgia,13277,97,5 +2020-04-29,Tift,Georgia,13277,110,5 +2020-04-30,Tift,Georgia,13277,118,5 +2020-05-01,Tift,Georgia,13277,122,5 +2020-05-02,Tift,Georgia,13277,126,5 +2020-05-03,Tift,Georgia,13277,127,5 +2020-05-04,Tift,Georgia,13277,132,5 +2020-05-05,Tift,Georgia,13277,132,5 +2020-05-06,Tift,Georgia,13277,136,6 +2020-05-07,Tift,Georgia,13277,139,6 +2020-05-08,Tift,Georgia,13277,145,6 +2020-05-09,Tift,Georgia,13277,152,6 +2020-05-10,Tift,Georgia,13277,156,6 +2020-05-11,Tift,Georgia,13277,157,6 +2020-05-12,Tift,Georgia,13277,161,6 +2020-05-13,Tift,Georgia,13277,164,6 +2020-05-14,Tift,Georgia,13277,170,10 +2020-05-15,Tift,Georgia,13277,175,11 +2020-05-16,Tift,Georgia,13277,176,11 +2020-05-17,Tift,Georgia,13277,181,12 +2020-05-18,Tift,Georgia,13277,185,14 +2020-05-19,Tift,Georgia,13277,188,14 +2020-05-20,Tift,Georgia,13277,194,14 +2020-05-21,Tift,Georgia,13277,204,14 +2020-05-22,Tift,Georgia,13277,212,14 +2020-05-23,Tift,Georgia,13277,213,14 +2020-05-24,Tift,Georgia,13277,219,14 +2020-05-25,Tift,Georgia,13277,228,15 +2020-05-26,Tift,Georgia,13277,234,15 +2020-05-27,Tift,Georgia,13277,238,15 +2020-05-28,Tift,Georgia,13277,247,16 +2020-05-29,Tift,Georgia,13277,255,17 +2020-05-30,Tift,Georgia,13277,256,17 +2020-05-31,Tift,Georgia,13277,256,17 +2020-06-01,Tift,Georgia,13277,266,17 +2020-06-02,Tift,Georgia,13277,270,18 +2020-06-03,Tift,Georgia,13277,271,18 +2020-06-04,Tift,Georgia,13277,277,18 +2020-06-05,Tift,Georgia,13277,291,19 +2020-06-06,Tift,Georgia,13277,305,19 +2020-06-07,Tift,Georgia,13277,312,19 +2020-06-08,Tift,Georgia,13277,320,20 +2020-06-09,Tift,Georgia,13277,327,22 +2020-06-10,Tift,Georgia,13277,345,22 +2020-06-11,Tift,Georgia,13277,357,22 +2020-06-12,Tift,Georgia,13277,372,22 +2020-06-13,Tift,Georgia,13277,385,22 +2020-06-14,Tift,Georgia,13277,393,22 +2020-06-15,Tift,Georgia,13277,423,22 +2020-06-16,Tift,Georgia,13277,433,22 +2020-06-17,Tift,Georgia,13277,448,22 +2020-06-18,Tift,Georgia,13277,462,23 +2020-06-19,Tift,Georgia,13277,494,25 +2020-06-20,Tift,Georgia,13277,513,25 +2020-06-21,Tift,Georgia,13277,525,25 +2020-06-22,Tift,Georgia,13277,549,25 +2020-06-23,Tift,Georgia,13277,569,25 +2020-06-24,Tift,Georgia,13277,600,25 +2020-06-25,Tift,Georgia,13277,642,25 +2020-06-26,Tift,Georgia,13277,679,25 +2020-06-27,Tift,Georgia,13277,686,25 +2020-06-28,Tift,Georgia,13277,695,25 +2020-06-29,Tift,Georgia,13277,721,26 +2020-06-30,Tift,Georgia,13277,750,26 +2020-07-01,Tift,Georgia,13277,754,26 +2020-07-02,Tift,Georgia,13277,767,26 +2020-07-03,Tift,Georgia,13277,798,26 +2020-07-04,Tift,Georgia,13277,815,26 +2020-07-05,Tift,Georgia,13277,823,26 +2020-07-06,Tift,Georgia,13277,849,26 +2020-07-07,Tift,Georgia,13277,892,26 +2020-07-08,Tift,Georgia,13277,903,26 +2020-07-09,Tift,Georgia,13277,924,26 +2020-03-26,Toombs,Georgia,13279,1,0 +2020-03-27,Toombs,Georgia,13279,1,0 +2020-03-28,Toombs,Georgia,13279,1,0 +2020-03-29,Toombs,Georgia,13279,2,0 +2020-03-30,Toombs,Georgia,13279,2,0 +2020-03-31,Toombs,Georgia,13279,3,0 +2020-04-01,Toombs,Georgia,13279,3,0 +2020-04-02,Toombs,Georgia,13279,5,1 +2020-04-03,Toombs,Georgia,13279,5,1 +2020-04-04,Toombs,Georgia,13279,5,1 +2020-04-05,Toombs,Georgia,13279,5,1 +2020-04-06,Toombs,Georgia,13279,7,1 +2020-04-07,Toombs,Georgia,13279,8,1 +2020-04-08,Toombs,Georgia,13279,8,1 +2020-04-09,Toombs,Georgia,13279,11,1 +2020-04-10,Toombs,Georgia,13279,11,1 +2020-04-11,Toombs,Georgia,13279,11,1 +2020-04-12,Toombs,Georgia,13279,11,1 +2020-04-13,Toombs,Georgia,13279,12,1 +2020-04-14,Toombs,Georgia,13279,15,1 +2020-04-15,Toombs,Georgia,13279,17,1 +2020-04-16,Toombs,Georgia,13279,17,2 +2020-04-17,Toombs,Georgia,13279,19,2 +2020-04-18,Toombs,Georgia,13279,20,2 +2020-04-19,Toombs,Georgia,13279,20,2 +2020-04-20,Toombs,Georgia,13279,20,3 +2020-04-21,Toombs,Georgia,13279,21,3 +2020-04-22,Toombs,Georgia,13279,21,3 +2020-04-23,Toombs,Georgia,13279,23,3 +2020-04-24,Toombs,Georgia,13279,26,3 +2020-04-25,Toombs,Georgia,13279,27,3 +2020-04-26,Toombs,Georgia,13279,27,3 +2020-04-27,Toombs,Georgia,13279,28,3 +2020-04-28,Toombs,Georgia,13279,28,3 +2020-04-29,Toombs,Georgia,13279,30,3 +2020-04-30,Toombs,Georgia,13279,31,3 +2020-05-01,Toombs,Georgia,13279,31,3 +2020-05-02,Toombs,Georgia,13279,32,3 +2020-05-03,Toombs,Georgia,13279,34,3 +2020-05-04,Toombs,Georgia,13279,34,3 +2020-05-05,Toombs,Georgia,13279,35,3 +2020-05-06,Toombs,Georgia,13279,37,3 +2020-05-07,Toombs,Georgia,13279,38,3 +2020-05-08,Toombs,Georgia,13279,39,3 +2020-05-09,Toombs,Georgia,13279,40,3 +2020-05-10,Toombs,Georgia,13279,40,3 +2020-05-11,Toombs,Georgia,13279,40,4 +2020-05-12,Toombs,Georgia,13279,41,4 +2020-05-13,Toombs,Georgia,13279,41,4 +2020-05-14,Toombs,Georgia,13279,43,4 +2020-05-15,Toombs,Georgia,13279,43,4 +2020-05-16,Toombs,Georgia,13279,44,4 +2020-05-17,Toombs,Georgia,13279,44,4 +2020-05-18,Toombs,Georgia,13279,46,4 +2020-05-19,Toombs,Georgia,13279,46,4 +2020-05-20,Toombs,Georgia,13279,47,4 +2020-05-21,Toombs,Georgia,13279,48,4 +2020-05-22,Toombs,Georgia,13279,50,4 +2020-05-23,Toombs,Georgia,13279,50,4 +2020-05-24,Toombs,Georgia,13279,50,4 +2020-05-25,Toombs,Georgia,13279,50,4 +2020-05-26,Toombs,Georgia,13279,53,4 +2020-05-27,Toombs,Georgia,13279,54,4 +2020-05-28,Toombs,Georgia,13279,55,4 +2020-05-29,Toombs,Georgia,13279,56,4 +2020-05-30,Toombs,Georgia,13279,56,4 +2020-05-31,Toombs,Georgia,13279,56,4 +2020-06-01,Toombs,Georgia,13279,56,4 +2020-06-02,Toombs,Georgia,13279,56,4 +2020-06-03,Toombs,Georgia,13279,58,4 +2020-06-04,Toombs,Georgia,13279,60,4 +2020-06-05,Toombs,Georgia,13279,62,4 +2020-06-06,Toombs,Georgia,13279,62,4 +2020-06-07,Toombs,Georgia,13279,65,4 +2020-06-08,Toombs,Georgia,13279,68,4 +2020-06-09,Toombs,Georgia,13279,77,4 +2020-06-10,Toombs,Georgia,13279,83,4 +2020-06-11,Toombs,Georgia,13279,91,4 +2020-06-12,Toombs,Georgia,13279,96,4 +2020-06-13,Toombs,Georgia,13279,101,4 +2020-06-14,Toombs,Georgia,13279,102,4 +2020-06-15,Toombs,Georgia,13279,108,4 +2020-06-16,Toombs,Georgia,13279,126,5 +2020-06-17,Toombs,Georgia,13279,129,5 +2020-06-18,Toombs,Georgia,13279,137,5 +2020-06-19,Toombs,Georgia,13279,141,5 +2020-06-20,Toombs,Georgia,13279,143,5 +2020-06-21,Toombs,Georgia,13279,147,5 +2020-06-22,Toombs,Georgia,13279,163,5 +2020-06-23,Toombs,Georgia,13279,169,5 +2020-06-24,Toombs,Georgia,13279,207,5 +2020-06-25,Toombs,Georgia,13279,212,5 +2020-06-26,Toombs,Georgia,13279,221,5 +2020-06-27,Toombs,Georgia,13279,225,5 +2020-06-28,Toombs,Georgia,13279,230,5 +2020-06-29,Toombs,Georgia,13279,236,5 +2020-06-30,Toombs,Georgia,13279,244,5 +2020-07-01,Toombs,Georgia,13279,254,5 +2020-07-02,Toombs,Georgia,13279,256,5 +2020-07-03,Toombs,Georgia,13279,264,5 +2020-07-04,Toombs,Georgia,13279,271,5 +2020-07-05,Toombs,Georgia,13279,274,5 +2020-07-06,Toombs,Georgia,13279,276,5 +2020-07-07,Toombs,Georgia,13279,289,5 +2020-07-08,Toombs,Georgia,13279,296,5 +2020-07-09,Toombs,Georgia,13279,304,5 +2020-04-03,Towns,Georgia,13281,1,0 +2020-04-04,Towns,Georgia,13281,1,0 +2020-04-05,Towns,Georgia,13281,1,0 +2020-04-06,Towns,Georgia,13281,1,0 +2020-04-07,Towns,Georgia,13281,2,0 +2020-04-08,Towns,Georgia,13281,2,0 +2020-04-09,Towns,Georgia,13281,2,0 +2020-04-10,Towns,Georgia,13281,3,0 +2020-04-11,Towns,Georgia,13281,3,0 +2020-04-12,Towns,Georgia,13281,3,0 +2020-04-13,Towns,Georgia,13281,3,0 +2020-04-14,Towns,Georgia,13281,8,0 +2020-04-15,Towns,Georgia,13281,8,0 +2020-04-16,Towns,Georgia,13281,10,0 +2020-04-17,Towns,Georgia,13281,10,0 +2020-04-18,Towns,Georgia,13281,12,0 +2020-04-19,Towns,Georgia,13281,13,0 +2020-04-20,Towns,Georgia,13281,15,0 +2020-04-21,Towns,Georgia,13281,15,0 +2020-04-22,Towns,Georgia,13281,19,0 +2020-04-23,Towns,Georgia,13281,19,0 +2020-04-24,Towns,Georgia,13281,20,0 +2020-04-25,Towns,Georgia,13281,20,0 +2020-04-26,Towns,Georgia,13281,20,0 +2020-04-27,Towns,Georgia,13281,20,0 +2020-04-28,Towns,Georgia,13281,21,1 +2020-04-29,Towns,Georgia,13281,21,1 +2020-04-30,Towns,Georgia,13281,21,1 +2020-05-01,Towns,Georgia,13281,22,1 +2020-05-02,Towns,Georgia,13281,20,1 +2020-05-03,Towns,Georgia,13281,20,1 +2020-05-04,Towns,Georgia,13281,20,1 +2020-05-05,Towns,Georgia,13281,20,1 +2020-05-06,Towns,Georgia,13281,20,1 +2020-05-07,Towns,Georgia,13281,20,1 +2020-05-08,Towns,Georgia,13281,20,1 +2020-05-09,Towns,Georgia,13281,20,1 +2020-05-10,Towns,Georgia,13281,20,1 +2020-05-11,Towns,Georgia,13281,20,1 +2020-05-12,Towns,Georgia,13281,20,1 +2020-05-13,Towns,Georgia,13281,21,1 +2020-05-14,Towns,Georgia,13281,21,1 +2020-05-15,Towns,Georgia,13281,21,1 +2020-05-16,Towns,Georgia,13281,21,1 +2020-05-17,Towns,Georgia,13281,21,1 +2020-05-18,Towns,Georgia,13281,21,1 +2020-05-19,Towns,Georgia,13281,21,1 +2020-05-20,Towns,Georgia,13281,21,1 +2020-05-21,Towns,Georgia,13281,22,1 +2020-05-22,Towns,Georgia,13281,22,1 +2020-05-23,Towns,Georgia,13281,22,1 +2020-05-24,Towns,Georgia,13281,22,1 +2020-05-25,Towns,Georgia,13281,22,1 +2020-05-26,Towns,Georgia,13281,22,1 +2020-05-27,Towns,Georgia,13281,23,1 +2020-05-28,Towns,Georgia,13281,23,1 +2020-05-29,Towns,Georgia,13281,24,1 +2020-05-30,Towns,Georgia,13281,24,1 +2020-05-31,Towns,Georgia,13281,24,1 +2020-06-01,Towns,Georgia,13281,24,1 +2020-06-02,Towns,Georgia,13281,24,1 +2020-06-03,Towns,Georgia,13281,26,1 +2020-06-04,Towns,Georgia,13281,27,1 +2020-06-05,Towns,Georgia,13281,29,1 +2020-06-06,Towns,Georgia,13281,30,1 +2020-06-07,Towns,Georgia,13281,30,1 +2020-06-08,Towns,Georgia,13281,30,1 +2020-06-09,Towns,Georgia,13281,30,1 +2020-06-10,Towns,Georgia,13281,31,1 +2020-06-11,Towns,Georgia,13281,32,1 +2020-06-12,Towns,Georgia,13281,32,1 +2020-06-13,Towns,Georgia,13281,32,1 +2020-06-14,Towns,Georgia,13281,35,1 +2020-06-15,Towns,Georgia,13281,35,1 +2020-06-16,Towns,Georgia,13281,35,1 +2020-06-17,Towns,Georgia,13281,35,1 +2020-06-18,Towns,Georgia,13281,35,1 +2020-06-19,Towns,Georgia,13281,35,1 +2020-06-20,Towns,Georgia,13281,36,1 +2020-06-21,Towns,Georgia,13281,36,1 +2020-06-22,Towns,Georgia,13281,36,1 +2020-06-23,Towns,Georgia,13281,36,1 +2020-06-24,Towns,Georgia,13281,37,1 +2020-06-25,Towns,Georgia,13281,37,1 +2020-06-26,Towns,Georgia,13281,38,1 +2020-06-27,Towns,Georgia,13281,38,1 +2020-06-28,Towns,Georgia,13281,38,1 +2020-06-29,Towns,Georgia,13281,38,1 +2020-06-30,Towns,Georgia,13281,45,1 +2020-07-01,Towns,Georgia,13281,45,1 +2020-07-02,Towns,Georgia,13281,45,1 +2020-07-03,Towns,Georgia,13281,45,1 +2020-07-04,Towns,Georgia,13281,49,1 +2020-07-05,Towns,Georgia,13281,50,1 +2020-07-06,Towns,Georgia,13281,50,1 +2020-07-07,Towns,Georgia,13281,58,1 +2020-07-08,Towns,Georgia,13281,58,1 +2020-07-09,Towns,Georgia,13281,58,1 +2020-04-06,Treutlen,Georgia,13283,1,0 +2020-04-07,Treutlen,Georgia,13283,1,0 +2020-04-08,Treutlen,Georgia,13283,1,0 +2020-04-09,Treutlen,Georgia,13283,1,0 +2020-04-10,Treutlen,Georgia,13283,1,0 +2020-04-11,Treutlen,Georgia,13283,1,0 +2020-04-12,Treutlen,Georgia,13283,1,0 +2020-04-13,Treutlen,Georgia,13283,1,0 +2020-04-14,Treutlen,Georgia,13283,1,0 +2020-04-15,Treutlen,Georgia,13283,1,0 +2020-04-16,Treutlen,Georgia,13283,1,0 +2020-04-17,Treutlen,Georgia,13283,1,0 +2020-04-18,Treutlen,Georgia,13283,1,0 +2020-04-19,Treutlen,Georgia,13283,1,0 +2020-04-20,Treutlen,Georgia,13283,2,0 +2020-04-21,Treutlen,Georgia,13283,2,0 +2020-04-22,Treutlen,Georgia,13283,2,0 +2020-04-23,Treutlen,Georgia,13283,2,0 +2020-04-24,Treutlen,Georgia,13283,2,0 +2020-04-25,Treutlen,Georgia,13283,2,0 +2020-04-26,Treutlen,Georgia,13283,2,0 +2020-04-27,Treutlen,Georgia,13283,2,0 +2020-04-28,Treutlen,Georgia,13283,3,0 +2020-04-29,Treutlen,Georgia,13283,3,0 +2020-04-30,Treutlen,Georgia,13283,3,0 +2020-05-01,Treutlen,Georgia,13283,3,0 +2020-05-02,Treutlen,Georgia,13283,3,0 +2020-05-03,Treutlen,Georgia,13283,3,0 +2020-05-04,Treutlen,Georgia,13283,3,0 +2020-05-05,Treutlen,Georgia,13283,3,0 +2020-05-06,Treutlen,Georgia,13283,4,0 +2020-05-07,Treutlen,Georgia,13283,5,0 +2020-05-08,Treutlen,Georgia,13283,5,0 +2020-05-09,Treutlen,Georgia,13283,5,0 +2020-05-10,Treutlen,Georgia,13283,5,0 +2020-05-11,Treutlen,Georgia,13283,5,0 +2020-05-12,Treutlen,Georgia,13283,5,0 +2020-05-13,Treutlen,Georgia,13283,7,0 +2020-05-14,Treutlen,Georgia,13283,7,0 +2020-05-15,Treutlen,Georgia,13283,7,0 +2020-05-16,Treutlen,Georgia,13283,8,0 +2020-05-17,Treutlen,Georgia,13283,8,0 +2020-05-18,Treutlen,Georgia,13283,8,0 +2020-05-19,Treutlen,Georgia,13283,8,0 +2020-05-20,Treutlen,Georgia,13283,8,0 +2020-05-21,Treutlen,Georgia,13283,8,0 +2020-05-22,Treutlen,Georgia,13283,8,0 +2020-05-23,Treutlen,Georgia,13283,8,0 +2020-05-24,Treutlen,Georgia,13283,8,0 +2020-05-25,Treutlen,Georgia,13283,8,0 +2020-05-26,Treutlen,Georgia,13283,8,0 +2020-05-27,Treutlen,Georgia,13283,8,0 +2020-05-28,Treutlen,Georgia,13283,8,0 +2020-05-29,Treutlen,Georgia,13283,9,0 +2020-05-30,Treutlen,Georgia,13283,9,0 +2020-05-31,Treutlen,Georgia,13283,10,0 +2020-06-01,Treutlen,Georgia,13283,10,0 +2020-06-02,Treutlen,Georgia,13283,12,0 +2020-06-03,Treutlen,Georgia,13283,13,0 +2020-06-04,Treutlen,Georgia,13283,13,0 +2020-06-05,Treutlen,Georgia,13283,14,0 +2020-06-06,Treutlen,Georgia,13283,14,0 +2020-06-07,Treutlen,Georgia,13283,14,0 +2020-06-08,Treutlen,Georgia,13283,14,0 +2020-06-09,Treutlen,Georgia,13283,14,0 +2020-06-10,Treutlen,Georgia,13283,17,0 +2020-06-11,Treutlen,Georgia,13283,17,0 +2020-06-12,Treutlen,Georgia,13283,17,0 +2020-06-13,Treutlen,Georgia,13283,17,0 +2020-06-14,Treutlen,Georgia,13283,17,0 +2020-06-15,Treutlen,Georgia,13283,17,0 +2020-06-16,Treutlen,Georgia,13283,17,0 +2020-06-17,Treutlen,Georgia,13283,17,0 +2020-06-18,Treutlen,Georgia,13283,17,1 +2020-06-19,Treutlen,Georgia,13283,18,1 +2020-06-20,Treutlen,Georgia,13283,19,1 +2020-06-21,Treutlen,Georgia,13283,19,1 +2020-06-22,Treutlen,Georgia,13283,19,1 +2020-06-23,Treutlen,Georgia,13283,19,1 +2020-06-24,Treutlen,Georgia,13283,19,1 +2020-06-25,Treutlen,Georgia,13283,20,1 +2020-06-26,Treutlen,Georgia,13283,22,1 +2020-06-27,Treutlen,Georgia,13283,23,1 +2020-06-28,Treutlen,Georgia,13283,23,1 +2020-06-29,Treutlen,Georgia,13283,23,1 +2020-06-30,Treutlen,Georgia,13283,23,1 +2020-07-01,Treutlen,Georgia,13283,23,1 +2020-07-02,Treutlen,Georgia,13283,27,1 +2020-07-03,Treutlen,Georgia,13283,28,1 +2020-07-04,Treutlen,Georgia,13283,27,1 +2020-07-05,Treutlen,Georgia,13283,30,1 +2020-07-06,Treutlen,Georgia,13283,30,1 +2020-07-07,Treutlen,Georgia,13283,33,1 +2020-07-08,Treutlen,Georgia,13283,36,1 +2020-07-09,Treutlen,Georgia,13283,41,1 +2020-03-16,Troup,Georgia,13285,1,0 +2020-03-17,Troup,Georgia,13285,2,0 +2020-03-18,Troup,Georgia,13285,2,0 +2020-03-19,Troup,Georgia,13285,2,0 +2020-03-20,Troup,Georgia,13285,2,0 +2020-03-21,Troup,Georgia,13285,4,0 +2020-03-22,Troup,Georgia,13285,4,0 +2020-03-23,Troup,Georgia,13285,4,0 +2020-03-24,Troup,Georgia,13285,6,0 +2020-03-25,Troup,Georgia,13285,7,0 +2020-03-26,Troup,Georgia,13285,10,0 +2020-03-27,Troup,Georgia,13285,11,1 +2020-03-28,Troup,Georgia,13285,9,1 +2020-03-29,Troup,Georgia,13285,10,1 +2020-03-30,Troup,Georgia,13285,15,1 +2020-03-31,Troup,Georgia,13285,18,1 +2020-04-01,Troup,Georgia,13285,19,1 +2020-04-02,Troup,Georgia,13285,21,1 +2020-04-03,Troup,Georgia,13285,30,1 +2020-04-04,Troup,Georgia,13285,33,1 +2020-04-05,Troup,Georgia,13285,34,1 +2020-04-06,Troup,Georgia,13285,36,2 +2020-04-07,Troup,Georgia,13285,47,3 +2020-04-08,Troup,Georgia,13285,49,3 +2020-04-09,Troup,Georgia,13285,54,3 +2020-04-10,Troup,Georgia,13285,56,3 +2020-04-11,Troup,Georgia,13285,57,3 +2020-04-12,Troup,Georgia,13285,60,3 +2020-04-13,Troup,Georgia,13285,62,3 +2020-04-14,Troup,Georgia,13285,68,4 +2020-04-15,Troup,Georgia,13285,72,4 +2020-04-16,Troup,Georgia,13285,77,4 +2020-04-17,Troup,Georgia,13285,80,4 +2020-04-18,Troup,Georgia,13285,86,4 +2020-04-19,Troup,Georgia,13285,92,4 +2020-04-20,Troup,Georgia,13285,100,4 +2020-04-21,Troup,Georgia,13285,107,4 +2020-04-22,Troup,Georgia,13285,109,4 +2020-04-23,Troup,Georgia,13285,118,4 +2020-04-24,Troup,Georgia,13285,122,4 +2020-04-25,Troup,Georgia,13285,122,4 +2020-04-26,Troup,Georgia,13285,126,4 +2020-04-27,Troup,Georgia,13285,138,4 +2020-04-28,Troup,Georgia,13285,140,4 +2020-04-29,Troup,Georgia,13285,145,4 +2020-04-30,Troup,Georgia,13285,148,4 +2020-05-01,Troup,Georgia,13285,150,4 +2020-05-02,Troup,Georgia,13285,154,4 +2020-05-03,Troup,Georgia,13285,154,4 +2020-05-04,Troup,Georgia,13285,159,5 +2020-05-05,Troup,Georgia,13285,163,5 +2020-05-06,Troup,Georgia,13285,168,5 +2020-05-07,Troup,Georgia,13285,173,5 +2020-05-08,Troup,Georgia,13285,177,5 +2020-05-09,Troup,Georgia,13285,185,5 +2020-05-10,Troup,Georgia,13285,186,5 +2020-05-11,Troup,Georgia,13285,190,5 +2020-05-12,Troup,Georgia,13285,196,5 +2020-05-13,Troup,Georgia,13285,192,5 +2020-05-14,Troup,Georgia,13285,192,5 +2020-05-15,Troup,Georgia,13285,195,6 +2020-05-16,Troup,Georgia,13285,199,6 +2020-05-17,Troup,Georgia,13285,200,6 +2020-05-18,Troup,Georgia,13285,201,6 +2020-05-19,Troup,Georgia,13285,213,6 +2020-05-20,Troup,Georgia,13285,215,6 +2020-05-21,Troup,Georgia,13285,227,8 +2020-05-22,Troup,Georgia,13285,238,9 +2020-05-23,Troup,Georgia,13285,245,9 +2020-05-24,Troup,Georgia,13285,250,9 +2020-05-25,Troup,Georgia,13285,260,9 +2020-05-26,Troup,Georgia,13285,268,10 +2020-05-27,Troup,Georgia,13285,268,10 +2020-05-28,Troup,Georgia,13285,283,10 +2020-05-29,Troup,Georgia,13285,292,10 +2020-05-30,Troup,Georgia,13285,307,11 +2020-05-31,Troup,Georgia,13285,313,11 +2020-06-01,Troup,Georgia,13285,318,11 +2020-06-02,Troup,Georgia,13285,320,11 +2020-06-03,Troup,Georgia,13285,345,11 +2020-06-04,Troup,Georgia,13285,363,11 +2020-06-05,Troup,Georgia,13285,395,11 +2020-06-06,Troup,Georgia,13285,416,11 +2020-06-07,Troup,Georgia,13285,426,11 +2020-06-08,Troup,Georgia,13285,446,11 +2020-06-09,Troup,Georgia,13285,476,11 +2020-06-10,Troup,Georgia,13285,545,12 +2020-06-11,Troup,Georgia,13285,613,13 +2020-06-12,Troup,Georgia,13285,701,22 +2020-06-13,Troup,Georgia,13285,733,23 +2020-06-14,Troup,Georgia,13285,759,23 +2020-06-15,Troup,Georgia,13285,792,23 +2020-06-16,Troup,Georgia,13285,805,23 +2020-06-17,Troup,Georgia,13285,844,25 +2020-06-18,Troup,Georgia,13285,863,24 +2020-06-19,Troup,Georgia,13285,922,25 +2020-06-20,Troup,Georgia,13285,947,26 +2020-06-21,Troup,Georgia,13285,978,26 +2020-06-22,Troup,Georgia,13285,1027,28 +2020-06-23,Troup,Georgia,13285,1158,29 +2020-06-24,Troup,Georgia,13285,1209,29 +2020-06-25,Troup,Georgia,13285,1233,29 +2020-06-26,Troup,Georgia,13285,1277,31 +2020-06-27,Troup,Georgia,13285,1300,31 +2020-06-28,Troup,Georgia,13285,1335,31 +2020-06-29,Troup,Georgia,13285,1336,31 +2020-06-30,Troup,Georgia,13285,1398,32 +2020-07-01,Troup,Georgia,13285,1464,34 +2020-07-02,Troup,Georgia,13285,1516,35 +2020-07-03,Troup,Georgia,13285,1549,35 +2020-07-04,Troup,Georgia,13285,1582,35 +2020-07-05,Troup,Georgia,13285,1600,35 +2020-07-06,Troup,Georgia,13285,1627,35 +2020-07-07,Troup,Georgia,13285,1650,36 +2020-07-08,Troup,Georgia,13285,1678,36 +2020-07-09,Troup,Georgia,13285,1698,38 +2020-03-20,Turner,Georgia,13287,1,0 +2020-03-21,Turner,Georgia,13287,1,0 +2020-03-22,Turner,Georgia,13287,1,0 +2020-03-23,Turner,Georgia,13287,1,0 +2020-03-24,Turner,Georgia,13287,1,0 +2020-03-25,Turner,Georgia,13287,1,0 +2020-03-26,Turner,Georgia,13287,2,0 +2020-03-27,Turner,Georgia,13287,2,0 +2020-03-28,Turner,Georgia,13287,2,0 +2020-03-29,Turner,Georgia,13287,2,0 +2020-03-30,Turner,Georgia,13287,3,0 +2020-03-31,Turner,Georgia,13287,4,0 +2020-04-01,Turner,Georgia,13287,5,0 +2020-04-02,Turner,Georgia,13287,6,0 +2020-04-03,Turner,Georgia,13287,12,0 +2020-04-04,Turner,Georgia,13287,12,0 +2020-04-05,Turner,Georgia,13287,12,0 +2020-04-06,Turner,Georgia,13287,15,0 +2020-04-07,Turner,Georgia,13287,19,0 +2020-04-08,Turner,Georgia,13287,22,0 +2020-04-09,Turner,Georgia,13287,25,0 +2020-04-10,Turner,Georgia,13287,28,0 +2020-04-11,Turner,Georgia,13287,35,0 +2020-04-12,Turner,Georgia,13287,37,0 +2020-04-13,Turner,Georgia,13287,40,1 +2020-04-14,Turner,Georgia,13287,41,1 +2020-04-15,Turner,Georgia,13287,46,1 +2020-04-16,Turner,Georgia,13287,49,1 +2020-04-17,Turner,Georgia,13287,51,2 +2020-04-18,Turner,Georgia,13287,51,2 +2020-04-19,Turner,Georgia,13287,58,2 +2020-04-20,Turner,Georgia,13287,59,4 +2020-04-21,Turner,Georgia,13287,58,4 +2020-04-22,Turner,Georgia,13287,59,5 +2020-04-23,Turner,Georgia,13287,61,6 +2020-04-24,Turner,Georgia,13287,62,6 +2020-04-25,Turner,Georgia,13287,62,6 +2020-04-26,Turner,Georgia,13287,63,6 +2020-04-27,Turner,Georgia,13287,64,8 +2020-04-28,Turner,Georgia,13287,66,8 +2020-04-29,Turner,Georgia,13287,67,8 +2020-04-30,Turner,Georgia,13287,68,8 +2020-05-01,Turner,Georgia,13287,68,8 +2020-05-02,Turner,Georgia,13287,69,8 +2020-05-03,Turner,Georgia,13287,68,9 +2020-05-04,Turner,Georgia,13287,69,10 +2020-05-05,Turner,Georgia,13287,70,10 +2020-05-06,Turner,Georgia,13287,71,10 +2020-05-07,Turner,Georgia,13287,73,11 +2020-05-08,Turner,Georgia,13287,74,12 +2020-05-09,Turner,Georgia,13287,78,12 +2020-05-10,Turner,Georgia,13287,78,12 +2020-05-11,Turner,Georgia,13287,78,12 +2020-05-12,Turner,Georgia,13287,78,12 +2020-05-13,Turner,Georgia,13287,80,12 +2020-05-14,Turner,Georgia,13287,81,12 +2020-05-15,Turner,Georgia,13287,81,12 +2020-05-16,Turner,Georgia,13287,81,12 +2020-05-17,Turner,Georgia,13287,81,12 +2020-05-18,Turner,Georgia,13287,84,12 +2020-05-19,Turner,Georgia,13287,85,12 +2020-05-20,Turner,Georgia,13287,85,12 +2020-05-21,Turner,Georgia,13287,90,12 +2020-05-22,Turner,Georgia,13287,92,12 +2020-05-23,Turner,Georgia,13287,96,12 +2020-05-24,Turner,Georgia,13287,100,12 +2020-05-25,Turner,Georgia,13287,105,12 +2020-05-26,Turner,Georgia,13287,106,12 +2020-05-27,Turner,Georgia,13287,110,12 +2020-05-28,Turner,Georgia,13287,114,12 +2020-05-29,Turner,Georgia,13287,115,12 +2020-05-30,Turner,Georgia,13287,118,12 +2020-05-31,Turner,Georgia,13287,118,13 +2020-06-01,Turner,Georgia,13287,125,13 +2020-06-02,Turner,Georgia,13287,128,13 +2020-06-03,Turner,Georgia,13287,134,13 +2020-06-04,Turner,Georgia,13287,134,13 +2020-06-05,Turner,Georgia,13287,139,13 +2020-06-06,Turner,Georgia,13287,139,13 +2020-06-07,Turner,Georgia,13287,139,13 +2020-06-08,Turner,Georgia,13287,140,13 +2020-06-09,Turner,Georgia,13287,141,13 +2020-06-10,Turner,Georgia,13287,144,13 +2020-06-11,Turner,Georgia,13287,145,14 +2020-06-12,Turner,Georgia,13287,148,14 +2020-06-13,Turner,Georgia,13287,150,14 +2020-06-14,Turner,Georgia,13287,151,14 +2020-06-15,Turner,Georgia,13287,153,14 +2020-06-16,Turner,Georgia,13287,155,14 +2020-06-17,Turner,Georgia,13287,157,15 +2020-06-18,Turner,Georgia,13287,161,15 +2020-06-19,Turner,Georgia,13287,165,16 +2020-06-20,Turner,Georgia,13287,166,16 +2020-06-21,Turner,Georgia,13287,167,16 +2020-06-22,Turner,Georgia,13287,170,16 +2020-06-23,Turner,Georgia,13287,171,16 +2020-06-24,Turner,Georgia,13287,172,16 +2020-06-25,Turner,Georgia,13287,172,16 +2020-06-26,Turner,Georgia,13287,173,16 +2020-06-27,Turner,Georgia,13287,175,16 +2020-06-28,Turner,Georgia,13287,176,16 +2020-06-29,Turner,Georgia,13287,176,16 +2020-06-30,Turner,Georgia,13287,177,16 +2020-07-01,Turner,Georgia,13287,177,16 +2020-07-02,Turner,Georgia,13287,177,16 +2020-07-03,Turner,Georgia,13287,178,16 +2020-07-04,Turner,Georgia,13287,178,16 +2020-07-05,Turner,Georgia,13287,181,16 +2020-07-06,Turner,Georgia,13287,182,16 +2020-07-07,Turner,Georgia,13287,183,16 +2020-07-08,Turner,Georgia,13287,183,17 +2020-07-09,Turner,Georgia,13287,185,17 +2020-03-22,Twiggs,Georgia,13289,1,0 +2020-03-23,Twiggs,Georgia,13289,1,0 +2020-03-24,Twiggs,Georgia,13289,1,0 +2020-03-25,Twiggs,Georgia,13289,2,0 +2020-03-26,Twiggs,Georgia,13289,2,0 +2020-03-27,Twiggs,Georgia,13289,2,0 +2020-03-28,Twiggs,Georgia,13289,2,0 +2020-03-29,Twiggs,Georgia,13289,2,0 +2020-03-30,Twiggs,Georgia,13289,2,0 +2020-03-31,Twiggs,Georgia,13289,2,0 +2020-04-01,Twiggs,Georgia,13289,2,0 +2020-04-02,Twiggs,Georgia,13289,2,0 +2020-04-03,Twiggs,Georgia,13289,2,0 +2020-04-04,Twiggs,Georgia,13289,2,0 +2020-04-05,Twiggs,Georgia,13289,2,0 +2020-04-06,Twiggs,Georgia,13289,2,0 +2020-04-07,Twiggs,Georgia,13289,2,0 +2020-04-08,Twiggs,Georgia,13289,2,0 +2020-04-09,Twiggs,Georgia,13289,2,0 +2020-04-10,Twiggs,Georgia,13289,2,0 +2020-04-11,Twiggs,Georgia,13289,2,0 +2020-04-12,Twiggs,Georgia,13289,2,0 +2020-04-13,Twiggs,Georgia,13289,2,0 +2020-04-14,Twiggs,Georgia,13289,3,0 +2020-04-15,Twiggs,Georgia,13289,3,0 +2020-04-16,Twiggs,Georgia,13289,4,0 +2020-04-17,Twiggs,Georgia,13289,4,0 +2020-04-18,Twiggs,Georgia,13289,4,0 +2020-04-19,Twiggs,Georgia,13289,4,0 +2020-04-20,Twiggs,Georgia,13289,4,0 +2020-04-21,Twiggs,Georgia,13289,4,0 +2020-04-22,Twiggs,Georgia,13289,6,0 +2020-04-23,Twiggs,Georgia,13289,6,0 +2020-04-24,Twiggs,Georgia,13289,7,0 +2020-04-25,Twiggs,Georgia,13289,8,0 +2020-04-26,Twiggs,Georgia,13289,7,0 +2020-04-27,Twiggs,Georgia,13289,7,0 +2020-04-28,Twiggs,Georgia,13289,7,0 +2020-04-29,Twiggs,Georgia,13289,8,0 +2020-04-30,Twiggs,Georgia,13289,8,0 +2020-05-01,Twiggs,Georgia,13289,8,0 +2020-05-02,Twiggs,Georgia,13289,8,0 +2020-05-03,Twiggs,Georgia,13289,8,0 +2020-05-04,Twiggs,Georgia,13289,8,0 +2020-05-05,Twiggs,Georgia,13289,8,0 +2020-05-06,Twiggs,Georgia,13289,8,0 +2020-05-07,Twiggs,Georgia,13289,8,0 +2020-05-08,Twiggs,Georgia,13289,8,0 +2020-05-09,Twiggs,Georgia,13289,8,0 +2020-05-10,Twiggs,Georgia,13289,8,0 +2020-05-11,Twiggs,Georgia,13289,8,0 +2020-05-12,Twiggs,Georgia,13289,8,0 +2020-05-13,Twiggs,Georgia,13289,8,0 +2020-05-14,Twiggs,Georgia,13289,9,0 +2020-05-15,Twiggs,Georgia,13289,9,0 +2020-05-16,Twiggs,Georgia,13289,9,0 +2020-05-17,Twiggs,Georgia,13289,9,0 +2020-05-18,Twiggs,Georgia,13289,9,0 +2020-05-19,Twiggs,Georgia,13289,10,0 +2020-05-20,Twiggs,Georgia,13289,10,0 +2020-05-21,Twiggs,Georgia,13289,11,0 +2020-05-22,Twiggs,Georgia,13289,11,0 +2020-05-23,Twiggs,Georgia,13289,13,0 +2020-05-24,Twiggs,Georgia,13289,13,0 +2020-05-25,Twiggs,Georgia,13289,14,0 +2020-05-26,Twiggs,Georgia,13289,14,0 +2020-05-27,Twiggs,Georgia,13289,15,0 +2020-05-28,Twiggs,Georgia,13289,15,0 +2020-05-29,Twiggs,Georgia,13289,15,0 +2020-05-30,Twiggs,Georgia,13289,17,0 +2020-05-31,Twiggs,Georgia,13289,17,1 +2020-06-01,Twiggs,Georgia,13289,17,1 +2020-06-02,Twiggs,Georgia,13289,17,1 +2020-06-03,Twiggs,Georgia,13289,18,1 +2020-06-04,Twiggs,Georgia,13289,18,1 +2020-06-05,Twiggs,Georgia,13289,18,1 +2020-06-06,Twiggs,Georgia,13289,18,1 +2020-06-07,Twiggs,Georgia,13289,18,1 +2020-06-08,Twiggs,Georgia,13289,19,1 +2020-06-09,Twiggs,Georgia,13289,19,1 +2020-06-10,Twiggs,Georgia,13289,19,1 +2020-06-11,Twiggs,Georgia,13289,20,1 +2020-06-12,Twiggs,Georgia,13289,21,1 +2020-06-13,Twiggs,Georgia,13289,21,1 +2020-06-14,Twiggs,Georgia,13289,21,1 +2020-06-15,Twiggs,Georgia,13289,22,1 +2020-06-16,Twiggs,Georgia,13289,22,1 +2020-06-17,Twiggs,Georgia,13289,22,1 +2020-06-18,Twiggs,Georgia,13289,22,1 +2020-06-19,Twiggs,Georgia,13289,23,1 +2020-06-20,Twiggs,Georgia,13289,23,1 +2020-06-21,Twiggs,Georgia,13289,23,1 +2020-06-22,Twiggs,Georgia,13289,23,1 +2020-06-23,Twiggs,Georgia,13289,24,1 +2020-06-24,Twiggs,Georgia,13289,23,1 +2020-06-25,Twiggs,Georgia,13289,23,1 +2020-06-26,Twiggs,Georgia,13289,23,1 +2020-06-27,Twiggs,Georgia,13289,23,1 +2020-06-28,Twiggs,Georgia,13289,23,1 +2020-06-29,Twiggs,Georgia,13289,24,1 +2020-06-30,Twiggs,Georgia,13289,27,1 +2020-07-01,Twiggs,Georgia,13289,26,1 +2020-07-02,Twiggs,Georgia,13289,26,1 +2020-07-03,Twiggs,Georgia,13289,26,1 +2020-07-04,Twiggs,Georgia,13289,28,1 +2020-07-05,Twiggs,Georgia,13289,29,1 +2020-07-06,Twiggs,Georgia,13289,33,1 +2020-07-07,Twiggs,Georgia,13289,37,1 +2020-07-08,Twiggs,Georgia,13289,40,1 +2020-07-09,Twiggs,Georgia,13289,41,1 +2020-04-01,Union,Georgia,13291,1,0 +2020-04-02,Union,Georgia,13291,1,0 +2020-04-03,Union,Georgia,13291,1,0 +2020-04-04,Union,Georgia,13291,1,0 +2020-04-05,Union,Georgia,13291,1,0 +2020-04-06,Union,Georgia,13291,1,0 +2020-04-07,Union,Georgia,13291,4,0 +2020-04-08,Union,Georgia,13291,5,0 +2020-04-09,Union,Georgia,13291,5,1 +2020-04-10,Union,Georgia,13291,6,1 +2020-04-11,Union,Georgia,13291,7,1 +2020-04-12,Union,Georgia,13291,7,1 +2020-04-13,Union,Georgia,13291,7,1 +2020-04-14,Union,Georgia,13291,8,1 +2020-04-15,Union,Georgia,13291,8,1 +2020-04-16,Union,Georgia,13291,8,1 +2020-04-17,Union,Georgia,13291,10,1 +2020-04-18,Union,Georgia,13291,12,1 +2020-04-19,Union,Georgia,13291,14,1 +2020-04-20,Union,Georgia,13291,16,1 +2020-04-21,Union,Georgia,13291,15,1 +2020-04-22,Union,Georgia,13291,18,1 +2020-04-23,Union,Georgia,13291,25,1 +2020-04-24,Union,Georgia,13291,27,2 +2020-04-25,Union,Georgia,13291,28,2 +2020-04-26,Union,Georgia,13291,32,2 +2020-04-27,Union,Georgia,13291,32,2 +2020-04-28,Union,Georgia,13291,34,1 +2020-04-29,Union,Georgia,13291,33,1 +2020-04-30,Union,Georgia,13291,33,1 +2020-05-01,Union,Georgia,13291,33,1 +2020-05-02,Union,Georgia,13291,31,1 +2020-05-03,Union,Georgia,13291,31,1 +2020-05-04,Union,Georgia,13291,31,1 +2020-05-05,Union,Georgia,13291,32,1 +2020-05-06,Union,Georgia,13291,32,1 +2020-05-07,Union,Georgia,13291,33,1 +2020-05-08,Union,Georgia,13291,34,1 +2020-05-09,Union,Georgia,13291,34,1 +2020-05-10,Union,Georgia,13291,34,1 +2020-05-11,Union,Georgia,13291,35,1 +2020-05-12,Union,Georgia,13291,36,1 +2020-05-13,Union,Georgia,13291,36,1 +2020-05-14,Union,Georgia,13291,36,1 +2020-05-15,Union,Georgia,13291,36,1 +2020-05-16,Union,Georgia,13291,36,1 +2020-05-17,Union,Georgia,13291,36,1 +2020-05-18,Union,Georgia,13291,37,1 +2020-05-19,Union,Georgia,13291,37,1 +2020-05-20,Union,Georgia,13291,38,1 +2020-05-21,Union,Georgia,13291,39,1 +2020-05-22,Union,Georgia,13291,39,1 +2020-05-23,Union,Georgia,13291,39,1 +2020-05-24,Union,Georgia,13291,39,1 +2020-05-25,Union,Georgia,13291,39,1 +2020-05-26,Union,Georgia,13291,41,1 +2020-05-27,Union,Georgia,13291,44,1 +2020-05-28,Union,Georgia,13291,43,1 +2020-05-29,Union,Georgia,13291,44,1 +2020-05-30,Union,Georgia,13291,44,1 +2020-05-31,Union,Georgia,13291,46,1 +2020-06-01,Union,Georgia,13291,46,1 +2020-06-02,Union,Georgia,13291,46,1 +2020-06-03,Union,Georgia,13291,48,1 +2020-06-04,Union,Georgia,13291,48,1 +2020-06-05,Union,Georgia,13291,48,1 +2020-06-06,Union,Georgia,13291,49,1 +2020-06-07,Union,Georgia,13291,49,1 +2020-06-08,Union,Georgia,13291,49,1 +2020-06-09,Union,Georgia,13291,50,1 +2020-06-10,Union,Georgia,13291,51,2 +2020-06-11,Union,Georgia,13291,53,2 +2020-06-12,Union,Georgia,13291,53,2 +2020-06-13,Union,Georgia,13291,53,2 +2020-06-14,Union,Georgia,13291,53,2 +2020-06-15,Union,Georgia,13291,54,3 +2020-06-16,Union,Georgia,13291,55,3 +2020-06-17,Union,Georgia,13291,56,3 +2020-06-18,Union,Georgia,13291,56,3 +2020-06-19,Union,Georgia,13291,56,3 +2020-06-20,Union,Georgia,13291,56,3 +2020-06-21,Union,Georgia,13291,56,3 +2020-06-22,Union,Georgia,13291,56,3 +2020-06-23,Union,Georgia,13291,60,3 +2020-06-24,Union,Georgia,13291,62,3 +2020-06-25,Union,Georgia,13291,62,3 +2020-06-26,Union,Georgia,13291,67,3 +2020-06-27,Union,Georgia,13291,67,3 +2020-06-28,Union,Georgia,13291,68,3 +2020-06-29,Union,Georgia,13291,68,3 +2020-06-30,Union,Georgia,13291,71,3 +2020-07-01,Union,Georgia,13291,76,3 +2020-07-02,Union,Georgia,13291,75,3 +2020-07-03,Union,Georgia,13291,76,3 +2020-07-04,Union,Georgia,13291,78,3 +2020-07-05,Union,Georgia,13291,78,3 +2020-07-06,Union,Georgia,13291,78,3 +2020-07-07,Union,Georgia,13291,85,3 +2020-07-08,Union,Georgia,13291,89,3 +2020-07-09,Union,Georgia,13291,92,3 +2020-03-27,Upson,Georgia,13293,2,0 +2020-03-28,Upson,Georgia,13293,5,0 +2020-03-29,Upson,Georgia,13293,5,0 +2020-03-30,Upson,Georgia,13293,5,0 +2020-03-31,Upson,Georgia,13293,5,0 +2020-04-01,Upson,Georgia,13293,6,0 +2020-04-02,Upson,Georgia,13293,6,0 +2020-04-03,Upson,Georgia,13293,8,0 +2020-04-04,Upson,Georgia,13293,12,0 +2020-04-05,Upson,Georgia,13293,13,0 +2020-04-06,Upson,Georgia,13293,25,0 +2020-04-07,Upson,Georgia,13293,29,0 +2020-04-08,Upson,Georgia,13293,39,0 +2020-04-09,Upson,Georgia,13293,42,0 +2020-04-10,Upson,Georgia,13293,50,0 +2020-04-11,Upson,Georgia,13293,51,1 +2020-04-12,Upson,Georgia,13293,56,1 +2020-04-13,Upson,Georgia,13293,122,3 +2020-04-14,Upson,Georgia,13293,128,5 +2020-04-15,Upson,Georgia,13293,139,5 +2020-04-16,Upson,Georgia,13293,143,6 +2020-04-17,Upson,Georgia,13293,164,8 +2020-04-18,Upson,Georgia,13293,170,8 +2020-04-19,Upson,Georgia,13293,173,8 +2020-04-20,Upson,Georgia,13293,175,10 +2020-04-21,Upson,Georgia,13293,180,11 +2020-04-22,Upson,Georgia,13293,185,12 +2020-04-23,Upson,Georgia,13293,191,14 +2020-04-24,Upson,Georgia,13293,193,14 +2020-04-25,Upson,Georgia,13293,196,14 +2020-04-26,Upson,Georgia,13293,197,14 +2020-04-27,Upson,Georgia,13293,203,17 +2020-04-28,Upson,Georgia,13293,208,17 +2020-04-29,Upson,Georgia,13293,212,17 +2020-04-30,Upson,Georgia,13293,217,18 +2020-05-01,Upson,Georgia,13293,224,18 +2020-05-02,Upson,Georgia,13293,225,18 +2020-05-03,Upson,Georgia,13293,230,20 +2020-05-04,Upson,Georgia,13293,240,21 +2020-05-05,Upson,Georgia,13293,243,23 +2020-05-06,Upson,Georgia,13293,245,23 +2020-05-07,Upson,Georgia,13293,246,24 +2020-05-08,Upson,Georgia,13293,247,24 +2020-05-09,Upson,Georgia,13293,249,24 +2020-05-10,Upson,Georgia,13293,250,24 +2020-05-11,Upson,Georgia,13293,250,24 +2020-05-12,Upson,Georgia,13293,254,25 +2020-05-13,Upson,Georgia,13293,255,25 +2020-05-14,Upson,Georgia,13293,255,27 +2020-05-15,Upson,Georgia,13293,257,28 +2020-05-16,Upson,Georgia,13293,258,29 +2020-05-17,Upson,Georgia,13293,260,29 +2020-05-18,Upson,Georgia,13293,261,31 +2020-05-19,Upson,Georgia,13293,267,31 +2020-05-20,Upson,Georgia,13293,267,31 +2020-05-21,Upson,Georgia,13293,271,33 +2020-05-22,Upson,Georgia,13293,271,33 +2020-05-23,Upson,Georgia,13293,272,33 +2020-05-24,Upson,Georgia,13293,273,33 +2020-05-25,Upson,Georgia,13293,275,33 +2020-05-26,Upson,Georgia,13293,279,33 +2020-05-27,Upson,Georgia,13293,280,34 +2020-05-28,Upson,Georgia,13293,280,34 +2020-05-29,Upson,Georgia,13293,280,34 +2020-05-30,Upson,Georgia,13293,280,34 +2020-05-31,Upson,Georgia,13293,281,34 +2020-06-01,Upson,Georgia,13293,283,34 +2020-06-02,Upson,Georgia,13293,284,34 +2020-06-03,Upson,Georgia,13293,290,34 +2020-06-04,Upson,Georgia,13293,289,34 +2020-06-05,Upson,Georgia,13293,290,35 +2020-06-06,Upson,Georgia,13293,290,35 +2020-06-07,Upson,Georgia,13293,290,35 +2020-06-08,Upson,Georgia,13293,290,35 +2020-06-09,Upson,Georgia,13293,290,36 +2020-06-10,Upson,Georgia,13293,291,36 +2020-06-11,Upson,Georgia,13293,295,38 +2020-06-12,Upson,Georgia,13293,295,38 +2020-06-13,Upson,Georgia,13293,295,38 +2020-06-14,Upson,Georgia,13293,295,40 +2020-06-15,Upson,Georgia,13293,295,40 +2020-06-16,Upson,Georgia,13293,300,42 +2020-06-17,Upson,Georgia,13293,308,42 +2020-06-18,Upson,Georgia,13293,309,42 +2020-06-19,Upson,Georgia,13293,312,43 +2020-06-20,Upson,Georgia,13293,319,43 +2020-06-21,Upson,Georgia,13293,319,43 +2020-06-22,Upson,Georgia,13293,323,43 +2020-06-23,Upson,Georgia,13293,328,43 +2020-06-24,Upson,Georgia,13293,341,43 +2020-06-25,Upson,Georgia,13293,343,43 +2020-06-26,Upson,Georgia,13293,343,43 +2020-06-27,Upson,Georgia,13293,348,43 +2020-06-28,Upson,Georgia,13293,348,43 +2020-06-29,Upson,Georgia,13293,348,43 +2020-06-30,Upson,Georgia,13293,355,43 +2020-07-01,Upson,Georgia,13293,363,43 +2020-07-02,Upson,Georgia,13293,369,43 +2020-07-03,Upson,Georgia,13293,374,43 +2020-07-04,Upson,Georgia,13293,377,43 +2020-07-05,Upson,Georgia,13293,378,43 +2020-07-06,Upson,Georgia,13293,380,43 +2020-07-07,Upson,Georgia,13293,381,43 +2020-07-08,Upson,Georgia,13293,382,45 +2020-07-09,Upson,Georgia,13293,383,45 +2020-03-31,Walker,Georgia,13295,1,0 +2020-04-01,Walker,Georgia,13295,2,0 +2020-04-02,Walker,Georgia,13295,2,0 +2020-04-03,Walker,Georgia,13295,3,0 +2020-04-04,Walker,Georgia,13295,3,0 +2020-04-05,Walker,Georgia,13295,3,0 +2020-04-06,Walker,Georgia,13295,3,0 +2020-04-07,Walker,Georgia,13295,4,0 +2020-04-08,Walker,Georgia,13295,4,0 +2020-04-09,Walker,Georgia,13295,4,0 +2020-04-10,Walker,Georgia,13295,6,0 +2020-04-11,Walker,Georgia,13295,6,0 +2020-04-12,Walker,Georgia,13295,6,0 +2020-04-13,Walker,Georgia,13295,7,0 +2020-04-14,Walker,Georgia,13295,10,0 +2020-04-15,Walker,Georgia,13295,13,0 +2020-04-16,Walker,Georgia,13295,13,0 +2020-04-17,Walker,Georgia,13295,13,0 +2020-04-18,Walker,Georgia,13295,14,0 +2020-04-19,Walker,Georgia,13295,15,0 +2020-04-20,Walker,Georgia,13295,19,0 +2020-04-21,Walker,Georgia,13295,36,0 +2020-04-22,Walker,Georgia,13295,59,0 +2020-04-23,Walker,Georgia,13295,59,0 +2020-04-24,Walker,Georgia,13295,59,0 +2020-04-25,Walker,Georgia,13295,59,0 +2020-04-26,Walker,Georgia,13295,59,0 +2020-04-27,Walker,Georgia,13295,58,0 +2020-04-28,Walker,Georgia,13295,58,0 +2020-04-29,Walker,Georgia,13295,60,0 +2020-04-30,Walker,Georgia,13295,61,0 +2020-05-01,Walker,Georgia,13295,60,0 +2020-05-02,Walker,Georgia,13295,60,0 +2020-05-03,Walker,Georgia,13295,51,0 +2020-05-04,Walker,Georgia,13295,61,0 +2020-05-05,Walker,Georgia,13295,61,0 +2020-05-06,Walker,Georgia,13295,61,0 +2020-05-07,Walker,Georgia,13295,61,0 +2020-05-08,Walker,Georgia,13295,62,0 +2020-05-09,Walker,Georgia,13295,64,0 +2020-05-10,Walker,Georgia,13295,65,0 +2020-05-11,Walker,Georgia,13295,65,0 +2020-05-12,Walker,Georgia,13295,68,0 +2020-05-13,Walker,Georgia,13295,73,0 +2020-05-14,Walker,Georgia,13295,74,0 +2020-05-15,Walker,Georgia,13295,74,0 +2020-05-16,Walker,Georgia,13295,74,0 +2020-05-17,Walker,Georgia,13295,74,0 +2020-05-18,Walker,Georgia,13295,74,0 +2020-05-19,Walker,Georgia,13295,76,0 +2020-05-20,Walker,Georgia,13295,81,0 +2020-05-21,Walker,Georgia,13295,84,0 +2020-05-22,Walker,Georgia,13295,94,0 +2020-05-23,Walker,Georgia,13295,95,0 +2020-05-24,Walker,Georgia,13295,94,0 +2020-05-25,Walker,Georgia,13295,96,0 +2020-05-26,Walker,Georgia,13295,102,0 +2020-05-27,Walker,Georgia,13295,109,0 +2020-05-28,Walker,Georgia,13295,112,0 +2020-05-29,Walker,Georgia,13295,138,0 +2020-05-30,Walker,Georgia,13295,141,0 +2020-05-31,Walker,Georgia,13295,141,0 +2020-06-01,Walker,Georgia,13295,168,0 +2020-06-02,Walker,Georgia,13295,162,0 +2020-06-03,Walker,Georgia,13295,171,0 +2020-06-04,Walker,Georgia,13295,178,0 +2020-06-05,Walker,Georgia,13295,189,0 +2020-06-06,Walker,Georgia,13295,192,0 +2020-06-07,Walker,Georgia,13295,194,0 +2020-06-08,Walker,Georgia,13295,195,0 +2020-06-09,Walker,Georgia,13295,203,0 +2020-06-10,Walker,Georgia,13295,206,1 +2020-06-11,Walker,Georgia,13295,211,1 +2020-06-12,Walker,Georgia,13295,216,1 +2020-06-13,Walker,Georgia,13295,219,1 +2020-06-14,Walker,Georgia,13295,219,2 +2020-06-15,Walker,Georgia,13295,225,2 +2020-06-16,Walker,Georgia,13295,236,3 +2020-06-17,Walker,Georgia,13295,253,4 +2020-06-18,Walker,Georgia,13295,269,5 +2020-06-19,Walker,Georgia,13295,276,5 +2020-06-20,Walker,Georgia,13295,283,5 +2020-06-21,Walker,Georgia,13295,284,5 +2020-06-22,Walker,Georgia,13295,287,5 +2020-06-23,Walker,Georgia,13295,294,5 +2020-06-24,Walker,Georgia,13295,298,6 +2020-06-25,Walker,Georgia,13295,302,9 +2020-06-26,Walker,Georgia,13295,310,11 +2020-06-27,Walker,Georgia,13295,313,11 +2020-06-28,Walker,Georgia,13295,315,11 +2020-06-29,Walker,Georgia,13295,315,11 +2020-06-30,Walker,Georgia,13295,318,11 +2020-07-01,Walker,Georgia,13295,325,11 +2020-07-02,Walker,Georgia,13295,330,12 +2020-07-03,Walker,Georgia,13295,337,12 +2020-07-04,Walker,Georgia,13295,343,12 +2020-07-05,Walker,Georgia,13295,344,12 +2020-07-06,Walker,Georgia,13295,345,12 +2020-07-07,Walker,Georgia,13295,348,12 +2020-07-08,Walker,Georgia,13295,363,12 +2020-07-09,Walker,Georgia,13295,364,12 +2020-03-28,Walton,Georgia,13297,2,0 +2020-03-29,Walton,Georgia,13297,4,0 +2020-03-30,Walton,Georgia,13297,5,0 +2020-03-31,Walton,Georgia,13297,9,0 +2020-04-01,Walton,Georgia,13297,13,0 +2020-04-02,Walton,Georgia,13297,15,0 +2020-04-03,Walton,Georgia,13297,16,0 +2020-04-04,Walton,Georgia,13297,18,0 +2020-04-05,Walton,Georgia,13297,21,2 +2020-04-06,Walton,Georgia,13297,23,2 +2020-04-07,Walton,Georgia,13297,25,2 +2020-04-08,Walton,Georgia,13297,27,2 +2020-04-09,Walton,Georgia,13297,32,2 +2020-04-10,Walton,Georgia,13297,34,2 +2020-04-11,Walton,Georgia,13297,38,2 +2020-04-12,Walton,Georgia,13297,42,2 +2020-04-13,Walton,Georgia,13297,45,2 +2020-04-14,Walton,Georgia,13297,52,3 +2020-04-15,Walton,Georgia,13297,54,3 +2020-04-16,Walton,Georgia,13297,56,3 +2020-04-17,Walton,Georgia,13297,58,3 +2020-04-18,Walton,Georgia,13297,59,3 +2020-04-19,Walton,Georgia,13297,61,3 +2020-04-20,Walton,Georgia,13297,63,3 +2020-04-21,Walton,Georgia,13297,63,3 +2020-04-22,Walton,Georgia,13297,73,3 +2020-04-23,Walton,Georgia,13297,81,3 +2020-04-24,Walton,Georgia,13297,92,3 +2020-04-25,Walton,Georgia,13297,97,3 +2020-04-26,Walton,Georgia,13297,95,3 +2020-04-27,Walton,Georgia,13297,100,2 +2020-04-28,Walton,Georgia,13297,113,3 +2020-04-29,Walton,Georgia,13297,121,3 +2020-04-30,Walton,Georgia,13297,126,4 +2020-05-01,Walton,Georgia,13297,129,4 +2020-05-02,Walton,Georgia,13297,132,4 +2020-05-03,Walton,Georgia,13297,133,4 +2020-05-04,Walton,Georgia,13297,136,4 +2020-05-05,Walton,Georgia,13297,138,5 +2020-05-06,Walton,Georgia,13297,143,5 +2020-05-07,Walton,Georgia,13297,147,5 +2020-05-08,Walton,Georgia,13297,148,6 +2020-05-09,Walton,Georgia,13297,151,6 +2020-05-10,Walton,Georgia,13297,152,6 +2020-05-11,Walton,Georgia,13297,152,7 +2020-05-12,Walton,Georgia,13297,152,7 +2020-05-13,Walton,Georgia,13297,159,7 +2020-05-14,Walton,Georgia,13297,158,7 +2020-05-15,Walton,Georgia,13297,158,8 +2020-05-16,Walton,Georgia,13297,158,8 +2020-05-17,Walton,Georgia,13297,158,8 +2020-05-18,Walton,Georgia,13297,164,9 +2020-05-19,Walton,Georgia,13297,166,9 +2020-05-20,Walton,Georgia,13297,172,9 +2020-05-21,Walton,Georgia,13297,186,9 +2020-05-22,Walton,Georgia,13297,186,10 +2020-05-23,Walton,Georgia,13297,186,10 +2020-05-24,Walton,Georgia,13297,189,10 +2020-05-25,Walton,Georgia,13297,196,10 +2020-05-26,Walton,Georgia,13297,217,12 +2020-05-27,Walton,Georgia,13297,242,12 +2020-05-28,Walton,Georgia,13297,246,12 +2020-05-29,Walton,Georgia,13297,261,12 +2020-05-30,Walton,Georgia,13297,265,12 +2020-05-31,Walton,Georgia,13297,265,12 +2020-06-01,Walton,Georgia,13297,265,12 +2020-06-02,Walton,Georgia,13297,269,12 +2020-06-03,Walton,Georgia,13297,273,15 +2020-06-04,Walton,Georgia,13297,288,15 +2020-06-05,Walton,Georgia,13297,297,15 +2020-06-06,Walton,Georgia,13297,298,15 +2020-06-07,Walton,Georgia,13297,299,15 +2020-06-08,Walton,Georgia,13297,303,16 +2020-06-09,Walton,Georgia,13297,307,20 +2020-06-10,Walton,Georgia,13297,309,21 +2020-06-11,Walton,Georgia,13297,317,21 +2020-06-12,Walton,Georgia,13297,321,21 +2020-06-13,Walton,Georgia,13297,324,22 +2020-06-14,Walton,Georgia,13297,324,22 +2020-06-15,Walton,Georgia,13297,327,23 +2020-06-16,Walton,Georgia,13297,331,23 +2020-06-17,Walton,Georgia,13297,335,25 +2020-06-18,Walton,Georgia,13297,340,25 +2020-06-19,Walton,Georgia,13297,343,25 +2020-06-20,Walton,Georgia,13297,343,25 +2020-06-21,Walton,Georgia,13297,344,25 +2020-06-22,Walton,Georgia,13297,346,25 +2020-06-23,Walton,Georgia,13297,352,26 +2020-06-24,Walton,Georgia,13297,361,26 +2020-06-25,Walton,Georgia,13297,371,28 +2020-06-26,Walton,Georgia,13297,377,28 +2020-06-27,Walton,Georgia,13297,381,28 +2020-06-28,Walton,Georgia,13297,383,28 +2020-06-29,Walton,Georgia,13297,383,28 +2020-06-30,Walton,Georgia,13297,399,28 +2020-07-01,Walton,Georgia,13297,417,28 +2020-07-02,Walton,Georgia,13297,427,28 +2020-07-03,Walton,Georgia,13297,442,28 +2020-07-04,Walton,Georgia,13297,459,28 +2020-07-05,Walton,Georgia,13297,467,28 +2020-07-06,Walton,Georgia,13297,475,28 +2020-07-07,Walton,Georgia,13297,490,28 +2020-07-08,Walton,Georgia,13297,497,28 +2020-07-09,Walton,Georgia,13297,504,28 +2020-03-25,Ware,Georgia,13299,1,0 +2020-03-26,Ware,Georgia,13299,2,0 +2020-03-27,Ware,Georgia,13299,2,0 +2020-03-28,Ware,Georgia,13299,5,0 +2020-03-29,Ware,Georgia,13299,5,0 +2020-03-30,Ware,Georgia,13299,5,0 +2020-03-31,Ware,Georgia,13299,10,0 +2020-04-01,Ware,Georgia,13299,12,2 +2020-04-02,Ware,Georgia,13299,14,2 +2020-04-03,Ware,Georgia,13299,17,3 +2020-04-04,Ware,Georgia,13299,18,3 +2020-04-05,Ware,Georgia,13299,18,3 +2020-04-06,Ware,Georgia,13299,28,3 +2020-04-07,Ware,Georgia,13299,37,3 +2020-04-08,Ware,Georgia,13299,43,3 +2020-04-09,Ware,Georgia,13299,45,4 +2020-04-10,Ware,Georgia,13299,50,4 +2020-04-11,Ware,Georgia,13299,50,4 +2020-04-12,Ware,Georgia,13299,54,4 +2020-04-13,Ware,Georgia,13299,58,4 +2020-04-14,Ware,Georgia,13299,64,4 +2020-04-15,Ware,Georgia,13299,67,5 +2020-04-16,Ware,Georgia,13299,76,5 +2020-04-17,Ware,Georgia,13299,77,5 +2020-04-18,Ware,Georgia,13299,81,5 +2020-04-19,Ware,Georgia,13299,86,6 +2020-04-20,Ware,Georgia,13299,88,6 +2020-04-21,Ware,Georgia,13299,93,7 +2020-04-22,Ware,Georgia,13299,95,7 +2020-04-23,Ware,Georgia,13299,100,7 +2020-04-24,Ware,Georgia,13299,103,8 +2020-04-25,Ware,Georgia,13299,105,8 +2020-04-26,Ware,Georgia,13299,107,8 +2020-04-27,Ware,Georgia,13299,112,8 +2020-04-28,Ware,Georgia,13299,113,9 +2020-04-29,Ware,Georgia,13299,115,10 +2020-04-30,Ware,Georgia,13299,121,11 +2020-05-01,Ware,Georgia,13299,128,11 +2020-05-02,Ware,Georgia,13299,129,11 +2020-05-03,Ware,Georgia,13299,130,11 +2020-05-04,Ware,Georgia,13299,133,12 +2020-05-05,Ware,Georgia,13299,142,13 +2020-05-06,Ware,Georgia,13299,146,13 +2020-05-07,Ware,Georgia,13299,147,12 +2020-05-08,Ware,Georgia,13299,155,12 +2020-05-09,Ware,Georgia,13299,155,12 +2020-05-10,Ware,Georgia,13299,165,12 +2020-05-11,Ware,Georgia,13299,165,12 +2020-05-12,Ware,Georgia,13299,167,12 +2020-05-13,Ware,Georgia,13299,166,12 +2020-05-14,Ware,Georgia,13299,169,12 +2020-05-15,Ware,Georgia,13299,170,12 +2020-05-16,Ware,Georgia,13299,171,12 +2020-05-17,Ware,Georgia,13299,171,12 +2020-05-18,Ware,Georgia,13299,174,13 +2020-05-19,Ware,Georgia,13299,177,13 +2020-05-20,Ware,Georgia,13299,191,13 +2020-05-21,Ware,Georgia,13299,191,13 +2020-05-22,Ware,Georgia,13299,201,13 +2020-05-23,Ware,Georgia,13299,206,13 +2020-05-24,Ware,Georgia,13299,209,13 +2020-05-25,Ware,Georgia,13299,218,14 +2020-05-26,Ware,Georgia,13299,221,14 +2020-05-27,Ware,Georgia,13299,223,14 +2020-05-28,Ware,Georgia,13299,225,14 +2020-05-29,Ware,Georgia,13299,228,14 +2020-05-30,Ware,Georgia,13299,228,14 +2020-05-31,Ware,Georgia,13299,228,14 +2020-06-01,Ware,Georgia,13299,228,14 +2020-06-02,Ware,Georgia,13299,228,14 +2020-06-03,Ware,Georgia,13299,234,14 +2020-06-04,Ware,Georgia,13299,238,14 +2020-06-05,Ware,Georgia,13299,240,14 +2020-06-06,Ware,Georgia,13299,247,14 +2020-06-07,Ware,Georgia,13299,248,14 +2020-06-08,Ware,Georgia,13299,249,14 +2020-06-09,Ware,Georgia,13299,252,14 +2020-06-10,Ware,Georgia,13299,252,14 +2020-06-11,Ware,Georgia,13299,254,14 +2020-06-12,Ware,Georgia,13299,263,14 +2020-06-13,Ware,Georgia,13299,267,14 +2020-06-14,Ware,Georgia,13299,268,14 +2020-06-15,Ware,Georgia,13299,286,14 +2020-06-16,Ware,Georgia,13299,290,15 +2020-06-17,Ware,Georgia,13299,298,15 +2020-06-18,Ware,Georgia,13299,301,15 +2020-06-19,Ware,Georgia,13299,307,15 +2020-06-20,Ware,Georgia,13299,309,15 +2020-06-21,Ware,Georgia,13299,317,15 +2020-06-22,Ware,Georgia,13299,331,15 +2020-06-23,Ware,Georgia,13299,352,15 +2020-06-24,Ware,Georgia,13299,365,15 +2020-06-25,Ware,Georgia,13299,372,15 +2020-06-26,Ware,Georgia,13299,388,15 +2020-06-27,Ware,Georgia,13299,394,15 +2020-06-28,Ware,Georgia,13299,395,15 +2020-06-29,Ware,Georgia,13299,397,15 +2020-06-30,Ware,Georgia,13299,424,15 +2020-07-01,Ware,Georgia,13299,448,15 +2020-07-02,Ware,Georgia,13299,459,16 +2020-07-03,Ware,Georgia,13299,500,16 +2020-07-04,Ware,Georgia,13299,508,16 +2020-07-05,Ware,Georgia,13299,510,16 +2020-07-06,Ware,Georgia,13299,523,16 +2020-07-07,Ware,Georgia,13299,538,16 +2020-07-08,Ware,Georgia,13299,555,16 +2020-07-09,Ware,Georgia,13299,576,16 +2020-03-30,Warren,Georgia,13301,2,0 +2020-03-31,Warren,Georgia,13301,3,0 +2020-04-01,Warren,Georgia,13301,4,0 +2020-04-02,Warren,Georgia,13301,4,0 +2020-04-03,Warren,Georgia,13301,4,0 +2020-04-04,Warren,Georgia,13301,5,0 +2020-04-05,Warren,Georgia,13301,5,0 +2020-04-06,Warren,Georgia,13301,5,0 +2020-04-07,Warren,Georgia,13301,6,0 +2020-04-08,Warren,Georgia,13301,6,0 +2020-04-09,Warren,Georgia,13301,6,0 +2020-04-10,Warren,Georgia,13301,6,0 +2020-04-11,Warren,Georgia,13301,6,0 +2020-04-12,Warren,Georgia,13301,7,0 +2020-04-13,Warren,Georgia,13301,7,0 +2020-04-14,Warren,Georgia,13301,7,0 +2020-04-15,Warren,Georgia,13301,8,0 +2020-04-16,Warren,Georgia,13301,10,0 +2020-04-17,Warren,Georgia,13301,10,0 +2020-04-18,Warren,Georgia,13301,10,0 +2020-04-19,Warren,Georgia,13301,10,0 +2020-04-20,Warren,Georgia,13301,10,0 +2020-04-21,Warren,Georgia,13301,10,0 +2020-04-22,Warren,Georgia,13301,10,0 +2020-04-23,Warren,Georgia,13301,12,0 +2020-04-24,Warren,Georgia,13301,12,0 +2020-04-25,Warren,Georgia,13301,12,0 +2020-04-26,Warren,Georgia,13301,12,0 +2020-04-27,Warren,Georgia,13301,12,0 +2020-04-28,Warren,Georgia,13301,12,0 +2020-04-29,Warren,Georgia,13301,12,0 +2020-04-30,Warren,Georgia,13301,12,0 +2020-05-01,Warren,Georgia,13301,12,0 +2020-05-02,Warren,Georgia,13301,13,0 +2020-05-03,Warren,Georgia,13301,13,0 +2020-05-04,Warren,Georgia,13301,13,0 +2020-05-05,Warren,Georgia,13301,13,0 +2020-05-06,Warren,Georgia,13301,13,0 +2020-05-07,Warren,Georgia,13301,13,0 +2020-05-08,Warren,Georgia,13301,14,0 +2020-05-09,Warren,Georgia,13301,14,0 +2020-05-10,Warren,Georgia,13301,15,0 +2020-05-11,Warren,Georgia,13301,15,0 +2020-05-12,Warren,Georgia,13301,16,0 +2020-05-13,Warren,Georgia,13301,16,0 +2020-05-14,Warren,Georgia,13301,16,0 +2020-05-15,Warren,Georgia,13301,16,0 +2020-05-16,Warren,Georgia,13301,16,0 +2020-05-17,Warren,Georgia,13301,16,0 +2020-05-18,Warren,Georgia,13301,16,0 +2020-05-19,Warren,Georgia,13301,16,0 +2020-05-20,Warren,Georgia,13301,16,0 +2020-05-21,Warren,Georgia,13301,17,0 +2020-05-22,Warren,Georgia,13301,17,0 +2020-05-23,Warren,Georgia,13301,17,0 +2020-05-24,Warren,Georgia,13301,17,0 +2020-05-25,Warren,Georgia,13301,18,0 +2020-05-26,Warren,Georgia,13301,18,0 +2020-05-27,Warren,Georgia,13301,18,0 +2020-05-28,Warren,Georgia,13301,18,0 +2020-05-29,Warren,Georgia,13301,18,0 +2020-05-30,Warren,Georgia,13301,18,0 +2020-05-31,Warren,Georgia,13301,18,0 +2020-06-01,Warren,Georgia,13301,18,0 +2020-06-02,Warren,Georgia,13301,18,0 +2020-06-03,Warren,Georgia,13301,18,0 +2020-06-04,Warren,Georgia,13301,18,0 +2020-06-05,Warren,Georgia,13301,18,0 +2020-06-06,Warren,Georgia,13301,18,0 +2020-06-07,Warren,Georgia,13301,18,0 +2020-06-08,Warren,Georgia,13301,18,0 +2020-06-09,Warren,Georgia,13301,18,0 +2020-06-10,Warren,Georgia,13301,19,0 +2020-06-11,Warren,Georgia,13301,19,0 +2020-06-12,Warren,Georgia,13301,19,0 +2020-06-13,Warren,Georgia,13301,19,0 +2020-06-14,Warren,Georgia,13301,19,0 +2020-06-15,Warren,Georgia,13301,20,0 +2020-06-16,Warren,Georgia,13301,20,0 +2020-06-17,Warren,Georgia,13301,19,0 +2020-06-18,Warren,Georgia,13301,19,0 +2020-06-19,Warren,Georgia,13301,19,0 +2020-06-20,Warren,Georgia,13301,19,0 +2020-06-21,Warren,Georgia,13301,19,0 +2020-06-22,Warren,Georgia,13301,19,0 +2020-06-23,Warren,Georgia,13301,19,0 +2020-06-24,Warren,Georgia,13301,19,0 +2020-06-25,Warren,Georgia,13301,19,0 +2020-06-26,Warren,Georgia,13301,19,0 +2020-06-27,Warren,Georgia,13301,19,0 +2020-06-28,Warren,Georgia,13301,19,0 +2020-06-29,Warren,Georgia,13301,20,0 +2020-06-30,Warren,Georgia,13301,22,0 +2020-07-01,Warren,Georgia,13301,23,0 +2020-07-02,Warren,Georgia,13301,23,0 +2020-07-03,Warren,Georgia,13301,25,0 +2020-07-04,Warren,Georgia,13301,26,0 +2020-07-05,Warren,Georgia,13301,27,0 +2020-07-06,Warren,Georgia,13301,27,0 +2020-07-07,Warren,Georgia,13301,29,0 +2020-07-08,Warren,Georgia,13301,30,0 +2020-07-09,Warren,Georgia,13301,30,0 +2020-03-23,Washington,Georgia,13303,1,0 +2020-03-24,Washington,Georgia,13303,1,0 +2020-03-25,Washington,Georgia,13303,2,0 +2020-03-26,Washington,Georgia,13303,2,0 +2020-03-27,Washington,Georgia,13303,2,0 +2020-03-28,Washington,Georgia,13303,2,0 +2020-03-29,Washington,Georgia,13303,2,0 +2020-03-30,Washington,Georgia,13303,2,0 +2020-03-31,Washington,Georgia,13303,4,0 +2020-04-01,Washington,Georgia,13303,4,0 +2020-04-02,Washington,Georgia,13303,6,0 +2020-04-03,Washington,Georgia,13303,5,0 +2020-04-04,Washington,Georgia,13303,5,0 +2020-04-05,Washington,Georgia,13303,6,0 +2020-04-06,Washington,Georgia,13303,6,0 +2020-04-07,Washington,Georgia,13303,13,0 +2020-04-08,Washington,Georgia,13303,16,0 +2020-04-09,Washington,Georgia,13303,21,0 +2020-04-10,Washington,Georgia,13303,21,0 +2020-04-11,Washington,Georgia,13303,21,0 +2020-04-12,Washington,Georgia,13303,22,0 +2020-04-13,Washington,Georgia,13303,22,0 +2020-04-14,Washington,Georgia,13303,22,0 +2020-04-15,Washington,Georgia,13303,22,0 +2020-04-16,Washington,Georgia,13303,23,0 +2020-04-17,Washington,Georgia,13303,24,1 +2020-04-18,Washington,Georgia,13303,25,1 +2020-04-19,Washington,Georgia,13303,25,1 +2020-04-20,Washington,Georgia,13303,25,1 +2020-04-21,Washington,Georgia,13303,28,1 +2020-04-22,Washington,Georgia,13303,28,1 +2020-04-23,Washington,Georgia,13303,28,1 +2020-04-24,Washington,Georgia,13303,33,1 +2020-04-25,Washington,Georgia,13303,34,1 +2020-04-26,Washington,Georgia,13303,34,1 +2020-04-27,Washington,Georgia,13303,37,1 +2020-04-28,Washington,Georgia,13303,38,1 +2020-04-29,Washington,Georgia,13303,38,1 +2020-04-30,Washington,Georgia,13303,42,1 +2020-05-01,Washington,Georgia,13303,43,1 +2020-05-02,Washington,Georgia,13303,44,2 +2020-05-03,Washington,Georgia,13303,44,1 +2020-05-04,Washington,Georgia,13303,43,1 +2020-05-05,Washington,Georgia,13303,43,1 +2020-05-06,Washington,Georgia,13303,46,1 +2020-05-07,Washington,Georgia,13303,51,1 +2020-05-08,Washington,Georgia,13303,53,1 +2020-05-09,Washington,Georgia,13303,53,1 +2020-05-10,Washington,Georgia,13303,57,1 +2020-05-11,Washington,Georgia,13303,57,1 +2020-05-12,Washington,Georgia,13303,63,1 +2020-05-13,Washington,Georgia,13303,62,1 +2020-05-14,Washington,Georgia,13303,63,1 +2020-05-15,Washington,Georgia,13303,63,1 +2020-05-16,Washington,Georgia,13303,63,1 +2020-05-17,Washington,Georgia,13303,63,1 +2020-05-18,Washington,Georgia,13303,67,1 +2020-05-19,Washington,Georgia,13303,68,1 +2020-05-20,Washington,Georgia,13303,71,1 +2020-05-21,Washington,Georgia,13303,72,1 +2020-05-22,Washington,Georgia,13303,72,1 +2020-05-23,Washington,Georgia,13303,73,1 +2020-05-24,Washington,Georgia,13303,74,1 +2020-05-25,Washington,Georgia,13303,73,1 +2020-05-26,Washington,Georgia,13303,73,1 +2020-05-27,Washington,Georgia,13303,74,1 +2020-05-28,Washington,Georgia,13303,74,1 +2020-05-29,Washington,Georgia,13303,74,1 +2020-05-30,Washington,Georgia,13303,74,1 +2020-05-31,Washington,Georgia,13303,74,1 +2020-06-01,Washington,Georgia,13303,74,1 +2020-06-02,Washington,Georgia,13303,74,1 +2020-06-03,Washington,Georgia,13303,74,1 +2020-06-04,Washington,Georgia,13303,74,1 +2020-06-05,Washington,Georgia,13303,74,1 +2020-06-06,Washington,Georgia,13303,74,1 +2020-06-07,Washington,Georgia,13303,74,1 +2020-06-08,Washington,Georgia,13303,75,1 +2020-06-09,Washington,Georgia,13303,75,1 +2020-06-10,Washington,Georgia,13303,75,1 +2020-06-11,Washington,Georgia,13303,75,1 +2020-06-12,Washington,Georgia,13303,76,1 +2020-06-13,Washington,Georgia,13303,75,1 +2020-06-14,Washington,Georgia,13303,75,1 +2020-06-15,Washington,Georgia,13303,76,1 +2020-06-16,Washington,Georgia,13303,76,1 +2020-06-17,Washington,Georgia,13303,76,1 +2020-06-18,Washington,Georgia,13303,77,1 +2020-06-19,Washington,Georgia,13303,77,1 +2020-06-20,Washington,Georgia,13303,79,1 +2020-06-21,Washington,Georgia,13303,79,1 +2020-06-22,Washington,Georgia,13303,81,1 +2020-06-23,Washington,Georgia,13303,81,1 +2020-06-24,Washington,Georgia,13303,83,1 +2020-06-25,Washington,Georgia,13303,90,1 +2020-06-26,Washington,Georgia,13303,91,1 +2020-06-27,Washington,Georgia,13303,91,1 +2020-06-28,Washington,Georgia,13303,91,1 +2020-06-29,Washington,Georgia,13303,94,1 +2020-06-30,Washington,Georgia,13303,105,1 +2020-07-01,Washington,Georgia,13303,110,1 +2020-07-02,Washington,Georgia,13303,126,1 +2020-07-03,Washington,Georgia,13303,130,1 +2020-07-04,Washington,Georgia,13303,133,1 +2020-07-05,Washington,Georgia,13303,134,1 +2020-07-06,Washington,Georgia,13303,136,1 +2020-07-07,Washington,Georgia,13303,148,1 +2020-07-08,Washington,Georgia,13303,159,1 +2020-07-09,Washington,Georgia,13303,163,1 +2020-04-04,Wayne,Georgia,13305,1,0 +2020-04-05,Wayne,Georgia,13305,1,0 +2020-04-06,Wayne,Georgia,13305,2,0 +2020-04-07,Wayne,Georgia,13305,3,0 +2020-04-08,Wayne,Georgia,13305,3,0 +2020-04-09,Wayne,Georgia,13305,3,0 +2020-04-10,Wayne,Georgia,13305,4,0 +2020-04-11,Wayne,Georgia,13305,4,0 +2020-04-12,Wayne,Georgia,13305,4,0 +2020-04-13,Wayne,Georgia,13305,5,0 +2020-04-14,Wayne,Georgia,13305,6,0 +2020-04-15,Wayne,Georgia,13305,6,0 +2020-04-16,Wayne,Georgia,13305,7,0 +2020-04-17,Wayne,Georgia,13305,7,0 +2020-04-18,Wayne,Georgia,13305,7,0 +2020-04-19,Wayne,Georgia,13305,7,0 +2020-04-20,Wayne,Georgia,13305,8,0 +2020-04-21,Wayne,Georgia,13305,9,0 +2020-04-22,Wayne,Georgia,13305,10,0 +2020-04-23,Wayne,Georgia,13305,10,0 +2020-04-24,Wayne,Georgia,13305,11,0 +2020-04-25,Wayne,Georgia,13305,11,0 +2020-04-26,Wayne,Georgia,13305,11,0 +2020-04-27,Wayne,Georgia,13305,12,0 +2020-04-28,Wayne,Georgia,13305,12,0 +2020-04-29,Wayne,Georgia,13305,12,0 +2020-04-30,Wayne,Georgia,13305,13,0 +2020-05-01,Wayne,Georgia,13305,13,0 +2020-05-02,Wayne,Georgia,13305,13,0 +2020-05-03,Wayne,Georgia,13305,13,0 +2020-05-04,Wayne,Georgia,13305,13,0 +2020-05-05,Wayne,Georgia,13305,13,0 +2020-05-06,Wayne,Georgia,13305,13,0 +2020-05-07,Wayne,Georgia,13305,13,0 +2020-05-08,Wayne,Georgia,13305,13,0 +2020-05-09,Wayne,Georgia,13305,13,0 +2020-05-10,Wayne,Georgia,13305,13,0 +2020-05-11,Wayne,Georgia,13305,13,0 +2020-05-12,Wayne,Georgia,13305,13,0 +2020-05-13,Wayne,Georgia,13305,14,0 +2020-05-14,Wayne,Georgia,13305,14,0 +2020-05-15,Wayne,Georgia,13305,14,0 +2020-05-16,Wayne,Georgia,13305,14,0 +2020-05-17,Wayne,Georgia,13305,14,0 +2020-05-18,Wayne,Georgia,13305,14,0 +2020-05-19,Wayne,Georgia,13305,14,0 +2020-05-20,Wayne,Georgia,13305,15,0 +2020-05-21,Wayne,Georgia,13305,15,0 +2020-05-22,Wayne,Georgia,13305,15,0 +2020-05-23,Wayne,Georgia,13305,16,0 +2020-05-24,Wayne,Georgia,13305,16,0 +2020-05-25,Wayne,Georgia,13305,17,0 +2020-05-26,Wayne,Georgia,13305,17,0 +2020-05-27,Wayne,Georgia,13305,18,0 +2020-05-28,Wayne,Georgia,13305,18,0 +2020-05-29,Wayne,Georgia,13305,19,0 +2020-05-30,Wayne,Georgia,13305,20,0 +2020-05-31,Wayne,Georgia,13305,19,0 +2020-06-01,Wayne,Georgia,13305,20,0 +2020-06-02,Wayne,Georgia,13305,20,0 +2020-06-03,Wayne,Georgia,13305,22,0 +2020-06-04,Wayne,Georgia,13305,22,0 +2020-06-05,Wayne,Georgia,13305,23,0 +2020-06-06,Wayne,Georgia,13305,25,0 +2020-06-07,Wayne,Georgia,13305,25,0 +2020-06-08,Wayne,Georgia,13305,26,0 +2020-06-09,Wayne,Georgia,13305,30,0 +2020-06-10,Wayne,Georgia,13305,32,0 +2020-06-11,Wayne,Georgia,13305,33,0 +2020-06-12,Wayne,Georgia,13305,33,0 +2020-06-13,Wayne,Georgia,13305,35,0 +2020-06-14,Wayne,Georgia,13305,35,0 +2020-06-15,Wayne,Georgia,13305,39,0 +2020-06-16,Wayne,Georgia,13305,39,0 +2020-06-17,Wayne,Georgia,13305,41,0 +2020-06-18,Wayne,Georgia,13305,44,0 +2020-06-19,Wayne,Georgia,13305,44,0 +2020-06-20,Wayne,Georgia,13305,44,0 +2020-06-21,Wayne,Georgia,13305,46,0 +2020-06-22,Wayne,Georgia,13305,48,0 +2020-06-23,Wayne,Georgia,13305,49,0 +2020-06-24,Wayne,Georgia,13305,51,0 +2020-06-25,Wayne,Georgia,13305,52,0 +2020-06-26,Wayne,Georgia,13305,53,0 +2020-06-27,Wayne,Georgia,13305,55,0 +2020-06-28,Wayne,Georgia,13305,57,0 +2020-06-29,Wayne,Georgia,13305,59,0 +2020-06-30,Wayne,Georgia,13305,70,0 +2020-07-01,Wayne,Georgia,13305,77,0 +2020-07-02,Wayne,Georgia,13305,81,0 +2020-07-03,Wayne,Georgia,13305,90,0 +2020-07-04,Wayne,Georgia,13305,99,0 +2020-07-05,Wayne,Georgia,13305,103,0 +2020-07-06,Wayne,Georgia,13305,113,0 +2020-07-07,Wayne,Georgia,13305,119,0 +2020-07-08,Wayne,Georgia,13305,122,0 +2020-07-09,Wayne,Georgia,13305,134,0 +2020-03-31,Webster,Georgia,13307,1,0 +2020-04-01,Webster,Georgia,13307,1,0 +2020-04-02,Webster,Georgia,13307,1,0 +2020-04-03,Webster,Georgia,13307,1,0 +2020-04-04,Webster,Georgia,13307,1,0 +2020-04-05,Webster,Georgia,13307,2,0 +2020-04-06,Webster,Georgia,13307,4,0 +2020-04-07,Webster,Georgia,13307,4,0 +2020-04-08,Webster,Georgia,13307,3,0 +2020-04-09,Webster,Georgia,13307,3,0 +2020-04-10,Webster,Georgia,13307,3,0 +2020-04-11,Webster,Georgia,13307,3,0 +2020-04-12,Webster,Georgia,13307,3,0 +2020-04-13,Webster,Georgia,13307,3,0 +2020-04-14,Webster,Georgia,13307,3,0 +2020-04-15,Webster,Georgia,13307,3,0 +2020-04-16,Webster,Georgia,13307,4,0 +2020-04-17,Webster,Georgia,13307,5,0 +2020-04-18,Webster,Georgia,13307,5,0 +2020-04-19,Webster,Georgia,13307,5,0 +2020-04-20,Webster,Georgia,13307,6,0 +2020-04-21,Webster,Georgia,13307,7,0 +2020-04-22,Webster,Georgia,13307,7,0 +2020-04-23,Webster,Georgia,13307,7,0 +2020-04-24,Webster,Georgia,13307,7,0 +2020-04-25,Webster,Georgia,13307,7,0 +2020-04-26,Webster,Georgia,13307,8,1 +2020-04-27,Webster,Georgia,13307,10,2 +2020-04-28,Webster,Georgia,13307,10,2 +2020-04-29,Webster,Georgia,13307,10,2 +2020-04-30,Webster,Georgia,13307,10,2 +2020-05-01,Webster,Georgia,13307,10,2 +2020-05-02,Webster,Georgia,13307,10,2 +2020-05-03,Webster,Georgia,13307,10,2 +2020-05-04,Webster,Georgia,13307,10,2 +2020-05-05,Webster,Georgia,13307,10,2 +2020-05-06,Webster,Georgia,13307,10,2 +2020-05-07,Webster,Georgia,13307,10,2 +2020-05-08,Webster,Georgia,13307,10,2 +2020-05-09,Webster,Georgia,13307,10,2 +2020-05-10,Webster,Georgia,13307,10,2 +2020-05-11,Webster,Georgia,13307,10,2 +2020-05-12,Webster,Georgia,13307,11,2 +2020-05-13,Webster,Georgia,13307,11,2 +2020-05-14,Webster,Georgia,13307,11,1 +2020-05-15,Webster,Georgia,13307,11,1 +2020-05-16,Webster,Georgia,13307,11,1 +2020-05-17,Webster,Georgia,13307,11,1 +2020-05-18,Webster,Georgia,13307,11,1 +2020-05-19,Webster,Georgia,13307,11,1 +2020-05-20,Webster,Georgia,13307,11,1 +2020-05-21,Webster,Georgia,13307,11,1 +2020-05-22,Webster,Georgia,13307,11,1 +2020-05-23,Webster,Georgia,13307,11,1 +2020-05-24,Webster,Georgia,13307,11,1 +2020-05-25,Webster,Georgia,13307,11,1 +2020-05-26,Webster,Georgia,13307,11,1 +2020-05-27,Webster,Georgia,13307,11,1 +2020-05-28,Webster,Georgia,13307,11,1 +2020-05-29,Webster,Georgia,13307,12,1 +2020-05-30,Webster,Georgia,13307,12,1 +2020-05-31,Webster,Georgia,13307,13,1 +2020-06-01,Webster,Georgia,13307,13,1 +2020-06-02,Webster,Georgia,13307,13,1 +2020-06-03,Webster,Georgia,13307,13,1 +2020-06-04,Webster,Georgia,13307,13,1 +2020-06-05,Webster,Georgia,13307,14,1 +2020-06-06,Webster,Georgia,13307,14,1 +2020-06-07,Webster,Georgia,13307,14,1 +2020-06-08,Webster,Georgia,13307,14,1 +2020-06-09,Webster,Georgia,13307,14,1 +2020-06-10,Webster,Georgia,13307,14,1 +2020-06-11,Webster,Georgia,13307,14,1 +2020-06-12,Webster,Georgia,13307,14,1 +2020-06-13,Webster,Georgia,13307,14,1 +2020-06-14,Webster,Georgia,13307,14,1 +2020-06-15,Webster,Georgia,13307,15,1 +2020-06-16,Webster,Georgia,13307,15,1 +2020-06-17,Webster,Georgia,13307,16,1 +2020-06-18,Webster,Georgia,13307,17,1 +2020-06-19,Webster,Georgia,13307,17,1 +2020-06-20,Webster,Georgia,13307,17,1 +2020-06-21,Webster,Georgia,13307,17,1 +2020-06-22,Webster,Georgia,13307,17,1 +2020-06-23,Webster,Georgia,13307,18,1 +2020-06-24,Webster,Georgia,13307,18,1 +2020-06-25,Webster,Georgia,13307,20,1 +2020-06-26,Webster,Georgia,13307,20,1 +2020-06-27,Webster,Georgia,13307,21,1 +2020-06-28,Webster,Georgia,13307,21,1 +2020-06-29,Webster,Georgia,13307,21,1 +2020-06-30,Webster,Georgia,13307,22,1 +2020-07-01,Webster,Georgia,13307,22,1 +2020-07-02,Webster,Georgia,13307,23,2 +2020-07-03,Webster,Georgia,13307,23,2 +2020-07-04,Webster,Georgia,13307,24,2 +2020-07-05,Webster,Georgia,13307,24,2 +2020-07-06,Webster,Georgia,13307,24,2 +2020-07-07,Webster,Georgia,13307,24,2 +2020-07-08,Webster,Georgia,13307,27,2 +2020-07-09,Webster,Georgia,13307,31,2 +2020-03-28,Wheeler,Georgia,13309,1,0 +2020-03-29,Wheeler,Georgia,13309,1,0 +2020-03-30,Wheeler,Georgia,13309,1,0 +2020-03-31,Wheeler,Georgia,13309,1,0 +2020-04-01,Wheeler,Georgia,13309,1,0 +2020-04-02,Wheeler,Georgia,13309,1,0 +2020-04-03,Wheeler,Georgia,13309,1,0 +2020-04-04,Wheeler,Georgia,13309,1,0 +2020-04-05,Wheeler,Georgia,13309,1,0 +2020-04-06,Wheeler,Georgia,13309,1,0 +2020-04-07,Wheeler,Georgia,13309,1,0 +2020-04-08,Wheeler,Georgia,13309,1,0 +2020-04-09,Wheeler,Georgia,13309,2,0 +2020-04-10,Wheeler,Georgia,13309,2,0 +2020-04-11,Wheeler,Georgia,13309,2,0 +2020-04-12,Wheeler,Georgia,13309,2,0 +2020-04-13,Wheeler,Georgia,13309,3,0 +2020-04-14,Wheeler,Georgia,13309,3,0 +2020-04-15,Wheeler,Georgia,13309,3,0 +2020-04-16,Wheeler,Georgia,13309,3,0 +2020-04-17,Wheeler,Georgia,13309,3,0 +2020-04-18,Wheeler,Georgia,13309,3,0 +2020-04-19,Wheeler,Georgia,13309,3,0 +2020-04-20,Wheeler,Georgia,13309,3,0 +2020-04-21,Wheeler,Georgia,13309,3,0 +2020-04-22,Wheeler,Georgia,13309,3,0 +2020-04-23,Wheeler,Georgia,13309,3,0 +2020-04-24,Wheeler,Georgia,13309,3,0 +2020-04-25,Wheeler,Georgia,13309,3,0 +2020-04-26,Wheeler,Georgia,13309,3,0 +2020-04-27,Wheeler,Georgia,13309,4,0 +2020-04-28,Wheeler,Georgia,13309,4,0 +2020-04-29,Wheeler,Georgia,13309,4,0 +2020-04-30,Wheeler,Georgia,13309,4,0 +2020-05-01,Wheeler,Georgia,13309,5,0 +2020-05-02,Wheeler,Georgia,13309,5,0 +2020-05-03,Wheeler,Georgia,13309,5,0 +2020-05-04,Wheeler,Georgia,13309,5,0 +2020-05-05,Wheeler,Georgia,13309,5,0 +2020-05-06,Wheeler,Georgia,13309,5,0 +2020-05-07,Wheeler,Georgia,13309,5,0 +2020-05-08,Wheeler,Georgia,13309,5,0 +2020-05-09,Wheeler,Georgia,13309,5,0 +2020-05-10,Wheeler,Georgia,13309,5,0 +2020-05-11,Wheeler,Georgia,13309,5,0 +2020-05-12,Wheeler,Georgia,13309,6,0 +2020-05-13,Wheeler,Georgia,13309,6,0 +2020-05-14,Wheeler,Georgia,13309,9,0 +2020-05-15,Wheeler,Georgia,13309,7,0 +2020-05-16,Wheeler,Georgia,13309,7,0 +2020-05-17,Wheeler,Georgia,13309,7,0 +2020-05-18,Wheeler,Georgia,13309,7,0 +2020-05-19,Wheeler,Georgia,13309,7,0 +2020-05-20,Wheeler,Georgia,13309,10,0 +2020-05-21,Wheeler,Georgia,13309,9,0 +2020-05-22,Wheeler,Georgia,13309,9,0 +2020-05-23,Wheeler,Georgia,13309,9,0 +2020-05-24,Wheeler,Georgia,13309,9,0 +2020-05-25,Wheeler,Georgia,13309,9,0 +2020-05-26,Wheeler,Georgia,13309,9,0 +2020-05-27,Wheeler,Georgia,13309,9,0 +2020-05-28,Wheeler,Georgia,13309,13,0 +2020-05-29,Wheeler,Georgia,13309,13,0 +2020-05-30,Wheeler,Georgia,13309,13,0 +2020-05-31,Wheeler,Georgia,13309,13,0 +2020-06-01,Wheeler,Georgia,13309,13,0 +2020-06-02,Wheeler,Georgia,13309,13,0 +2020-06-03,Wheeler,Georgia,13309,13,0 +2020-06-04,Wheeler,Georgia,13309,13,0 +2020-06-05,Wheeler,Georgia,13309,13,0 +2020-06-06,Wheeler,Georgia,13309,14,0 +2020-06-07,Wheeler,Georgia,13309,14,0 +2020-06-08,Wheeler,Georgia,13309,14,0 +2020-06-09,Wheeler,Georgia,13309,14,0 +2020-06-10,Wheeler,Georgia,13309,15,0 +2020-06-11,Wheeler,Georgia,13309,15,0 +2020-06-12,Wheeler,Georgia,13309,16,0 +2020-06-13,Wheeler,Georgia,13309,23,0 +2020-06-14,Wheeler,Georgia,13309,27,0 +2020-06-15,Wheeler,Georgia,13309,28,0 +2020-06-16,Wheeler,Georgia,13309,30,0 +2020-06-17,Wheeler,Georgia,13309,28,0 +2020-06-18,Wheeler,Georgia,13309,33,0 +2020-06-19,Wheeler,Georgia,13309,34,0 +2020-06-20,Wheeler,Georgia,13309,35,0 +2020-06-21,Wheeler,Georgia,13309,35,0 +2020-06-22,Wheeler,Georgia,13309,38,0 +2020-06-23,Wheeler,Georgia,13309,41,0 +2020-06-24,Wheeler,Georgia,13309,41,0 +2020-06-25,Wheeler,Georgia,13309,42,0 +2020-06-26,Wheeler,Georgia,13309,43,0 +2020-06-27,Wheeler,Georgia,13309,43,0 +2020-06-28,Wheeler,Georgia,13309,45,0 +2020-06-29,Wheeler,Georgia,13309,48,0 +2020-06-30,Wheeler,Georgia,13309,49,0 +2020-07-01,Wheeler,Georgia,13309,49,0 +2020-07-02,Wheeler,Georgia,13309,53,0 +2020-07-03,Wheeler,Georgia,13309,53,0 +2020-07-04,Wheeler,Georgia,13309,54,0 +2020-07-05,Wheeler,Georgia,13309,55,0 +2020-07-06,Wheeler,Georgia,13309,55,0 +2020-07-07,Wheeler,Georgia,13309,56,0 +2020-07-08,Wheeler,Georgia,13309,56,0 +2020-07-09,Wheeler,Georgia,13309,56,0 +2020-03-25,White,Georgia,13311,1,0 +2020-03-26,White,Georgia,13311,1,0 +2020-03-27,White,Georgia,13311,1,0 +2020-03-28,White,Georgia,13311,1,0 +2020-03-29,White,Georgia,13311,1,0 +2020-03-30,White,Georgia,13311,1,0 +2020-03-31,White,Georgia,13311,3,0 +2020-04-01,White,Georgia,13311,3,0 +2020-04-02,White,Georgia,13311,3,0 +2020-04-03,White,Georgia,13311,3,0 +2020-04-04,White,Georgia,13311,4,0 +2020-04-05,White,Georgia,13311,4,0 +2020-04-06,White,Georgia,13311,4,0 +2020-04-07,White,Georgia,13311,10,0 +2020-04-08,White,Georgia,13311,11,0 +2020-04-09,White,Georgia,13311,11,0 +2020-04-10,White,Georgia,13311,11,0 +2020-04-11,White,Georgia,13311,11,0 +2020-04-12,White,Georgia,13311,11,0 +2020-04-13,White,Georgia,13311,11,0 +2020-04-14,White,Georgia,13311,14,0 +2020-04-15,White,Georgia,13311,14,0 +2020-04-16,White,Georgia,13311,20,0 +2020-04-17,White,Georgia,13311,20,0 +2020-04-18,White,Georgia,13311,20,0 +2020-04-19,White,Georgia,13311,20,0 +2020-04-20,White,Georgia,13311,30,0 +2020-04-21,White,Georgia,13311,32,0 +2020-04-22,White,Georgia,13311,33,0 +2020-04-23,White,Georgia,13311,36,0 +2020-04-24,White,Georgia,13311,38,0 +2020-04-25,White,Georgia,13311,38,0 +2020-04-26,White,Georgia,13311,38,0 +2020-04-27,White,Georgia,13311,48,0 +2020-04-28,White,Georgia,13311,56,0 +2020-04-29,White,Georgia,13311,59,0 +2020-04-30,White,Georgia,13311,61,0 +2020-05-01,White,Georgia,13311,63,0 +2020-05-02,White,Georgia,13311,78,0 +2020-05-03,White,Georgia,13311,78,0 +2020-05-04,White,Georgia,13311,79,0 +2020-05-05,White,Georgia,13311,83,1 +2020-05-06,White,Georgia,13311,83,1 +2020-05-07,White,Georgia,13311,87,2 +2020-05-08,White,Georgia,13311,86,1 +2020-05-09,White,Georgia,13311,88,1 +2020-05-10,White,Georgia,13311,88,1 +2020-05-11,White,Georgia,13311,88,1 +2020-05-12,White,Georgia,13311,88,1 +2020-05-13,White,Georgia,13311,88,1 +2020-05-14,White,Georgia,13311,88,2 +2020-05-15,White,Georgia,13311,89,2 +2020-05-16,White,Georgia,13311,89,2 +2020-05-17,White,Georgia,13311,89,2 +2020-05-18,White,Georgia,13311,87,3 +2020-05-19,White,Georgia,13311,90,3 +2020-05-20,White,Georgia,13311,91,3 +2020-05-21,White,Georgia,13311,91,3 +2020-05-22,White,Georgia,13311,92,3 +2020-05-23,White,Georgia,13311,93,3 +2020-05-24,White,Georgia,13311,94,3 +2020-05-25,White,Georgia,13311,94,3 +2020-05-26,White,Georgia,13311,95,3 +2020-05-27,White,Georgia,13311,98,3 +2020-05-28,White,Georgia,13311,99,3 +2020-05-29,White,Georgia,13311,101,3 +2020-05-30,White,Georgia,13311,101,3 +2020-05-31,White,Georgia,13311,101,3 +2020-06-01,White,Georgia,13311,103,3 +2020-06-02,White,Georgia,13311,103,3 +2020-06-03,White,Georgia,13311,105,3 +2020-06-04,White,Georgia,13311,110,3 +2020-06-05,White,Georgia,13311,111,3 +2020-06-06,White,Georgia,13311,113,3 +2020-06-07,White,Georgia,13311,113,3 +2020-06-08,White,Georgia,13311,114,3 +2020-06-09,White,Georgia,13311,117,3 +2020-06-10,White,Georgia,13311,117,3 +2020-06-11,White,Georgia,13311,122,3 +2020-06-12,White,Georgia,13311,124,3 +2020-06-13,White,Georgia,13311,124,3 +2020-06-14,White,Georgia,13311,124,3 +2020-06-15,White,Georgia,13311,124,4 +2020-06-16,White,Georgia,13311,124,4 +2020-06-17,White,Georgia,13311,124,4 +2020-06-18,White,Georgia,13311,125,4 +2020-06-19,White,Georgia,13311,128,4 +2020-06-20,White,Georgia,13311,129,4 +2020-06-21,White,Georgia,13311,129,4 +2020-06-22,White,Georgia,13311,129,4 +2020-06-23,White,Georgia,13311,132,4 +2020-06-24,White,Georgia,13311,134,4 +2020-06-25,White,Georgia,13311,134,4 +2020-06-26,White,Georgia,13311,136,4 +2020-06-27,White,Georgia,13311,139,4 +2020-06-28,White,Georgia,13311,139,4 +2020-06-29,White,Georgia,13311,140,4 +2020-06-30,White,Georgia,13311,142,4 +2020-07-01,White,Georgia,13311,143,4 +2020-07-02,White,Georgia,13311,145,4 +2020-07-03,White,Georgia,13311,147,4 +2020-07-04,White,Georgia,13311,150,4 +2020-07-05,White,Georgia,13311,151,4 +2020-07-06,White,Georgia,13311,151,4 +2020-07-07,White,Georgia,13311,152,4 +2020-07-08,White,Georgia,13311,159,4 +2020-07-09,White,Georgia,13311,159,4 +2020-03-17,Whitfield,Georgia,13313,1,0 +2020-03-18,Whitfield,Georgia,13313,1,0 +2020-03-19,Whitfield,Georgia,13313,1,0 +2020-03-20,Whitfield,Georgia,13313,1,0 +2020-03-21,Whitfield,Georgia,13313,1,0 +2020-03-22,Whitfield,Georgia,13313,2,0 +2020-03-23,Whitfield,Georgia,13313,2,0 +2020-03-24,Whitfield,Georgia,13313,2,0 +2020-03-25,Whitfield,Georgia,13313,4,0 +2020-03-26,Whitfield,Georgia,13313,6,0 +2020-03-27,Whitfield,Georgia,13313,6,0 +2020-03-28,Whitfield,Georgia,13313,6,0 +2020-03-29,Whitfield,Georgia,13313,8,2 +2020-03-30,Whitfield,Georgia,13313,8,1 +2020-03-31,Whitfield,Georgia,13313,10,1 +2020-04-01,Whitfield,Georgia,13313,14,1 +2020-04-02,Whitfield,Georgia,13313,14,1 +2020-04-03,Whitfield,Georgia,13313,15,1 +2020-04-04,Whitfield,Georgia,13313,16,1 +2020-04-05,Whitfield,Georgia,13313,16,1 +2020-04-06,Whitfield,Georgia,13313,18,1 +2020-04-07,Whitfield,Georgia,13313,21,2 +2020-04-08,Whitfield,Georgia,13313,19,3 +2020-04-09,Whitfield,Georgia,13313,21,3 +2020-04-10,Whitfield,Georgia,13313,24,3 +2020-04-11,Whitfield,Georgia,13313,24,3 +2020-04-12,Whitfield,Georgia,13313,24,3 +2020-04-13,Whitfield,Georgia,13313,28,3 +2020-04-14,Whitfield,Georgia,13313,29,3 +2020-04-15,Whitfield,Georgia,13313,32,3 +2020-04-16,Whitfield,Georgia,13313,34,3 +2020-04-17,Whitfield,Georgia,13313,41,3 +2020-04-18,Whitfield,Georgia,13313,43,3 +2020-04-19,Whitfield,Georgia,13313,43,3 +2020-04-20,Whitfield,Georgia,13313,45,4 +2020-04-21,Whitfield,Georgia,13313,46,4 +2020-04-22,Whitfield,Georgia,13313,53,4 +2020-04-23,Whitfield,Georgia,13313,59,4 +2020-04-24,Whitfield,Georgia,13313,62,4 +2020-04-25,Whitfield,Georgia,13313,63,4 +2020-04-26,Whitfield,Georgia,13313,63,4 +2020-04-27,Whitfield,Georgia,13313,69,4 +2020-04-28,Whitfield,Georgia,13313,75,4 +2020-04-29,Whitfield,Georgia,13313,79,4 +2020-04-30,Whitfield,Georgia,13313,106,4 +2020-05-01,Whitfield,Georgia,13313,111,4 +2020-05-02,Whitfield,Georgia,13313,118,4 +2020-05-03,Whitfield,Georgia,13313,120,5 +2020-05-04,Whitfield,Georgia,13313,126,6 +2020-05-05,Whitfield,Georgia,13313,131,6 +2020-05-06,Whitfield,Georgia,13313,135,6 +2020-05-07,Whitfield,Georgia,13313,141,6 +2020-05-08,Whitfield,Georgia,13313,140,6 +2020-05-09,Whitfield,Georgia,13313,149,6 +2020-05-10,Whitfield,Georgia,13313,154,6 +2020-05-11,Whitfield,Georgia,13313,157,6 +2020-05-12,Whitfield,Georgia,13313,171,6 +2020-05-13,Whitfield,Georgia,13313,173,6 +2020-05-14,Whitfield,Georgia,13313,175,6 +2020-05-15,Whitfield,Georgia,13313,177,6 +2020-05-16,Whitfield,Georgia,13313,180,6 +2020-05-17,Whitfield,Georgia,13313,180,6 +2020-05-18,Whitfield,Georgia,13313,188,7 +2020-05-19,Whitfield,Georgia,13313,194,7 +2020-05-20,Whitfield,Georgia,13313,206,7 +2020-05-21,Whitfield,Georgia,13313,220,7 +2020-05-22,Whitfield,Georgia,13313,249,7 +2020-05-23,Whitfield,Georgia,13313,270,7 +2020-05-24,Whitfield,Georgia,13313,279,7 +2020-05-25,Whitfield,Georgia,13313,283,7 +2020-05-26,Whitfield,Georgia,13313,303,7 +2020-05-27,Whitfield,Georgia,13313,311,7 +2020-05-28,Whitfield,Georgia,13313,322,7 +2020-05-29,Whitfield,Georgia,13313,331,7 +2020-05-30,Whitfield,Georgia,13313,351,7 +2020-05-31,Whitfield,Georgia,13313,374,7 +2020-06-01,Whitfield,Georgia,13313,391,7 +2020-06-02,Whitfield,Georgia,13313,391,7 +2020-06-03,Whitfield,Georgia,13313,408,7 +2020-06-04,Whitfield,Georgia,13313,427,7 +2020-06-05,Whitfield,Georgia,13313,438,7 +2020-06-06,Whitfield,Georgia,13313,462,7 +2020-06-07,Whitfield,Georgia,13313,494,7 +2020-06-08,Whitfield,Georgia,13313,504,9 +2020-06-09,Whitfield,Georgia,13313,509,9 +2020-06-10,Whitfield,Georgia,13313,520,9 +2020-06-11,Whitfield,Georgia,13313,539,9 +2020-06-12,Whitfield,Georgia,13313,562,10 +2020-06-13,Whitfield,Georgia,13313,575,10 +2020-06-14,Whitfield,Georgia,13313,589,10 +2020-06-15,Whitfield,Georgia,13313,618,10 +2020-06-16,Whitfield,Georgia,13313,637,10 +2020-06-17,Whitfield,Georgia,13313,668,10 +2020-06-18,Whitfield,Georgia,13313,692,10 +2020-06-19,Whitfield,Georgia,13313,726,10 +2020-06-20,Whitfield,Georgia,13313,741,10 +2020-06-21,Whitfield,Georgia,13313,763,10 +2020-06-22,Whitfield,Georgia,13313,800,10 +2020-06-23,Whitfield,Georgia,13313,819,10 +2020-06-24,Whitfield,Georgia,13313,846,10 +2020-06-25,Whitfield,Georgia,13313,890,10 +2020-06-26,Whitfield,Georgia,13313,917,10 +2020-06-27,Whitfield,Georgia,13313,976,10 +2020-06-28,Whitfield,Georgia,13313,1001,10 +2020-06-29,Whitfield,Georgia,13313,1055,10 +2020-06-30,Whitfield,Georgia,13313,1101,10 +2020-07-01,Whitfield,Georgia,13313,1152,10 +2020-07-02,Whitfield,Georgia,13313,1181,10 +2020-07-03,Whitfield,Georgia,13313,1218,12 +2020-07-04,Whitfield,Georgia,13313,1275,12 +2020-07-05,Whitfield,Georgia,13313,1326,13 +2020-07-06,Whitfield,Georgia,13313,1366,14 +2020-07-07,Whitfield,Georgia,13313,1464,15 +2020-07-08,Whitfield,Georgia,13313,1520,15 +2020-07-09,Whitfield,Georgia,13313,1610,15 +2020-03-31,Wilcox,Georgia,13315,1,0 +2020-04-01,Wilcox,Georgia,13315,1,0 +2020-04-02,Wilcox,Georgia,13315,1,0 +2020-04-03,Wilcox,Georgia,13315,1,0 +2020-04-04,Wilcox,Georgia,13315,2,0 +2020-04-05,Wilcox,Georgia,13315,1,0 +2020-04-06,Wilcox,Georgia,13315,2,0 +2020-04-07,Wilcox,Georgia,13315,2,0 +2020-04-08,Wilcox,Georgia,13315,2,0 +2020-04-09,Wilcox,Georgia,13315,5,0 +2020-04-10,Wilcox,Georgia,13315,5,0 +2020-04-11,Wilcox,Georgia,13315,5,0 +2020-04-12,Wilcox,Georgia,13315,24,0 +2020-04-13,Wilcox,Georgia,13315,24,0 +2020-04-14,Wilcox,Georgia,13315,28,0 +2020-04-15,Wilcox,Georgia,13315,30,0 +2020-04-16,Wilcox,Georgia,13315,34,0 +2020-04-17,Wilcox,Georgia,13315,38,0 +2020-04-18,Wilcox,Georgia,13315,42,2 +2020-04-19,Wilcox,Georgia,13315,44,4 +2020-04-20,Wilcox,Georgia,13315,44,4 +2020-04-21,Wilcox,Georgia,13315,45,6 +2020-04-22,Wilcox,Georgia,13315,51,6 +2020-04-23,Wilcox,Georgia,13315,64,6 +2020-04-24,Wilcox,Georgia,13315,68,6 +2020-04-25,Wilcox,Georgia,13315,68,6 +2020-04-26,Wilcox,Georgia,13315,68,6 +2020-04-27,Wilcox,Georgia,13315,72,7 +2020-04-28,Wilcox,Georgia,13315,89,8 +2020-04-29,Wilcox,Georgia,13315,88,9 +2020-04-30,Wilcox,Georgia,13315,90,9 +2020-05-01,Wilcox,Georgia,13315,90,9 +2020-05-02,Wilcox,Georgia,13315,90,9 +2020-05-03,Wilcox,Georgia,13315,90,9 +2020-05-04,Wilcox,Georgia,13315,90,10 +2020-05-05,Wilcox,Georgia,13315,90,10 +2020-05-06,Wilcox,Georgia,13315,90,12 +2020-05-07,Wilcox,Georgia,13315,92,12 +2020-05-08,Wilcox,Georgia,13315,94,12 +2020-05-09,Wilcox,Georgia,13315,95,12 +2020-05-10,Wilcox,Georgia,13315,95,12 +2020-05-11,Wilcox,Georgia,13315,95,12 +2020-05-12,Wilcox,Georgia,13315,95,12 +2020-05-13,Wilcox,Georgia,13315,99,12 +2020-05-14,Wilcox,Georgia,13315,98,12 +2020-05-15,Wilcox,Georgia,13315,95,12 +2020-05-16,Wilcox,Georgia,13315,95,12 +2020-05-17,Wilcox,Georgia,13315,95,12 +2020-05-18,Wilcox,Georgia,13315,95,12 +2020-05-19,Wilcox,Georgia,13315,97,12 +2020-05-20,Wilcox,Georgia,13315,98,12 +2020-05-21,Wilcox,Georgia,13315,98,13 +2020-05-22,Wilcox,Georgia,13315,98,13 +2020-05-23,Wilcox,Georgia,13315,98,13 +2020-05-24,Wilcox,Georgia,13315,98,13 +2020-05-25,Wilcox,Georgia,13315,98,13 +2020-05-26,Wilcox,Georgia,13315,105,13 +2020-05-27,Wilcox,Georgia,13315,105,13 +2020-05-28,Wilcox,Georgia,13315,106,13 +2020-05-29,Wilcox,Georgia,13315,109,13 +2020-05-30,Wilcox,Georgia,13315,111,13 +2020-05-31,Wilcox,Georgia,13315,111,13 +2020-06-01,Wilcox,Georgia,13315,116,13 +2020-06-02,Wilcox,Georgia,13315,117,13 +2020-06-03,Wilcox,Georgia,13315,117,13 +2020-06-04,Wilcox,Georgia,13315,117,13 +2020-06-05,Wilcox,Georgia,13315,117,13 +2020-06-06,Wilcox,Georgia,13315,117,13 +2020-06-07,Wilcox,Georgia,13315,117,13 +2020-06-08,Wilcox,Georgia,13315,117,14 +2020-06-09,Wilcox,Georgia,13315,117,14 +2020-06-10,Wilcox,Georgia,13315,118,14 +2020-06-11,Wilcox,Georgia,13315,118,14 +2020-06-12,Wilcox,Georgia,13315,117,14 +2020-06-13,Wilcox,Georgia,13315,118,14 +2020-06-14,Wilcox,Georgia,13315,118,14 +2020-06-15,Wilcox,Georgia,13315,118,14 +2020-06-16,Wilcox,Georgia,13315,119,14 +2020-06-17,Wilcox,Georgia,13315,119,14 +2020-06-18,Wilcox,Georgia,13315,120,15 +2020-06-19,Wilcox,Georgia,13315,120,15 +2020-06-20,Wilcox,Georgia,13315,121,15 +2020-06-21,Wilcox,Georgia,13315,121,15 +2020-06-22,Wilcox,Georgia,13315,122,15 +2020-06-23,Wilcox,Georgia,13315,122,15 +2020-06-24,Wilcox,Georgia,13315,123,15 +2020-06-25,Wilcox,Georgia,13315,123,15 +2020-06-26,Wilcox,Georgia,13315,125,15 +2020-06-27,Wilcox,Georgia,13315,126,15 +2020-06-28,Wilcox,Georgia,13315,126,15 +2020-06-29,Wilcox,Georgia,13315,127,15 +2020-06-30,Wilcox,Georgia,13315,126,15 +2020-07-01,Wilcox,Georgia,13315,127,15 +2020-07-02,Wilcox,Georgia,13315,131,15 +2020-07-03,Wilcox,Georgia,13315,131,15 +2020-07-04,Wilcox,Georgia,13315,131,15 +2020-07-05,Wilcox,Georgia,13315,131,15 +2020-07-06,Wilcox,Georgia,13315,132,15 +2020-07-07,Wilcox,Georgia,13315,132,15 +2020-07-08,Wilcox,Georgia,13315,132,15 +2020-07-09,Wilcox,Georgia,13315,132,15 +2020-03-25,Wilkes,Georgia,13317,1,0 +2020-03-26,Wilkes,Georgia,13317,1,0 +2020-03-27,Wilkes,Georgia,13317,1,0 +2020-03-28,Wilkes,Georgia,13317,1,0 +2020-03-29,Wilkes,Georgia,13317,1,0 +2020-03-30,Wilkes,Georgia,13317,2,0 +2020-03-31,Wilkes,Georgia,13317,2,0 +2020-04-01,Wilkes,Georgia,13317,2,0 +2020-04-02,Wilkes,Georgia,13317,2,0 +2020-04-03,Wilkes,Georgia,13317,3,0 +2020-04-04,Wilkes,Georgia,13317,3,0 +2020-04-05,Wilkes,Georgia,13317,3,0 +2020-04-06,Wilkes,Georgia,13317,4,0 +2020-04-07,Wilkes,Georgia,13317,5,0 +2020-04-08,Wilkes,Georgia,13317,5,0 +2020-04-09,Wilkes,Georgia,13317,6,0 +2020-04-10,Wilkes,Georgia,13317,6,0 +2020-04-11,Wilkes,Georgia,13317,6,0 +2020-04-12,Wilkes,Georgia,13317,6,0 +2020-04-13,Wilkes,Georgia,13317,7,0 +2020-04-14,Wilkes,Georgia,13317,8,0 +2020-04-15,Wilkes,Georgia,13317,9,0 +2020-04-16,Wilkes,Georgia,13317,11,0 +2020-04-17,Wilkes,Georgia,13317,11,0 +2020-04-18,Wilkes,Georgia,13317,12,0 +2020-04-19,Wilkes,Georgia,13317,18,0 +2020-04-20,Wilkes,Georgia,13317,18,0 +2020-04-21,Wilkes,Georgia,13317,19,0 +2020-04-22,Wilkes,Georgia,13317,21,0 +2020-04-23,Wilkes,Georgia,13317,22,0 +2020-04-24,Wilkes,Georgia,13317,22,0 +2020-04-25,Wilkes,Georgia,13317,22,0 +2020-04-26,Wilkes,Georgia,13317,23,0 +2020-04-27,Wilkes,Georgia,13317,23,0 +2020-04-28,Wilkes,Georgia,13317,24,0 +2020-04-29,Wilkes,Georgia,13317,24,0 +2020-04-30,Wilkes,Georgia,13317,25,0 +2020-05-01,Wilkes,Georgia,13317,25,0 +2020-05-02,Wilkes,Georgia,13317,25,0 +2020-05-03,Wilkes,Georgia,13317,25,0 +2020-05-04,Wilkes,Georgia,13317,25,0 +2020-05-05,Wilkes,Georgia,13317,26,0 +2020-05-06,Wilkes,Georgia,13317,26,0 +2020-05-07,Wilkes,Georgia,13317,26,0 +2020-05-08,Wilkes,Georgia,13317,26,0 +2020-05-09,Wilkes,Georgia,13317,27,0 +2020-05-10,Wilkes,Georgia,13317,27,0 +2020-05-11,Wilkes,Georgia,13317,27,0 +2020-05-12,Wilkes,Georgia,13317,27,0 +2020-05-13,Wilkes,Georgia,13317,27,1 +2020-05-14,Wilkes,Georgia,13317,28,1 +2020-05-15,Wilkes,Georgia,13317,28,1 +2020-05-16,Wilkes,Georgia,13317,28,1 +2020-05-17,Wilkes,Georgia,13317,28,1 +2020-05-18,Wilkes,Georgia,13317,30,1 +2020-05-19,Wilkes,Georgia,13317,30,1 +2020-05-20,Wilkes,Georgia,13317,30,1 +2020-05-21,Wilkes,Georgia,13317,30,1 +2020-05-22,Wilkes,Georgia,13317,32,1 +2020-05-23,Wilkes,Georgia,13317,32,1 +2020-05-24,Wilkes,Georgia,13317,32,1 +2020-05-25,Wilkes,Georgia,13317,32,1 +2020-05-26,Wilkes,Georgia,13317,33,1 +2020-05-27,Wilkes,Georgia,13317,33,1 +2020-05-28,Wilkes,Georgia,13317,33,1 +2020-05-29,Wilkes,Georgia,13317,33,1 +2020-05-30,Wilkes,Georgia,13317,33,1 +2020-05-31,Wilkes,Georgia,13317,33,1 +2020-06-01,Wilkes,Georgia,13317,33,1 +2020-06-02,Wilkes,Georgia,13317,33,1 +2020-06-03,Wilkes,Georgia,13317,34,1 +2020-06-04,Wilkes,Georgia,13317,34,1 +2020-06-05,Wilkes,Georgia,13317,34,1 +2020-06-06,Wilkes,Georgia,13317,34,1 +2020-06-07,Wilkes,Georgia,13317,34,1 +2020-06-08,Wilkes,Georgia,13317,34,1 +2020-06-09,Wilkes,Georgia,13317,34,1 +2020-06-10,Wilkes,Georgia,13317,34,1 +2020-06-11,Wilkes,Georgia,13317,35,1 +2020-06-12,Wilkes,Georgia,13317,35,1 +2020-06-13,Wilkes,Georgia,13317,36,1 +2020-06-14,Wilkes,Georgia,13317,36,1 +2020-06-15,Wilkes,Georgia,13317,39,1 +2020-06-16,Wilkes,Georgia,13317,41,1 +2020-06-17,Wilkes,Georgia,13317,42,1 +2020-06-18,Wilkes,Georgia,13317,42,1 +2020-06-19,Wilkes,Georgia,13317,43,1 +2020-06-20,Wilkes,Georgia,13317,43,1 +2020-06-21,Wilkes,Georgia,13317,43,1 +2020-06-22,Wilkes,Georgia,13317,49,1 +2020-06-23,Wilkes,Georgia,13317,49,1 +2020-06-24,Wilkes,Georgia,13317,50,1 +2020-06-25,Wilkes,Georgia,13317,52,1 +2020-06-26,Wilkes,Georgia,13317,52,1 +2020-06-27,Wilkes,Georgia,13317,52,1 +2020-06-28,Wilkes,Georgia,13317,53,1 +2020-06-29,Wilkes,Georgia,13317,54,1 +2020-06-30,Wilkes,Georgia,13317,56,1 +2020-07-01,Wilkes,Georgia,13317,57,1 +2020-07-02,Wilkes,Georgia,13317,59,1 +2020-07-03,Wilkes,Georgia,13317,61,1 +2020-07-04,Wilkes,Georgia,13317,74,1 +2020-07-05,Wilkes,Georgia,13317,76,1 +2020-07-06,Wilkes,Georgia,13317,79,1 +2020-07-07,Wilkes,Georgia,13317,85,1 +2020-07-08,Wilkes,Georgia,13317,87,1 +2020-07-09,Wilkes,Georgia,13317,87,1 +2020-03-31,Wilkinson,Georgia,13319,1,0 +2020-04-01,Wilkinson,Georgia,13319,1,0 +2020-04-02,Wilkinson,Georgia,13319,1,0 +2020-04-03,Wilkinson,Georgia,13319,1,0 +2020-04-04,Wilkinson,Georgia,13319,2,0 +2020-04-05,Wilkinson,Georgia,13319,2,0 +2020-04-06,Wilkinson,Georgia,13319,3,0 +2020-04-07,Wilkinson,Georgia,13319,3,0 +2020-04-08,Wilkinson,Georgia,13319,8,0 +2020-04-09,Wilkinson,Georgia,13319,8,0 +2020-04-10,Wilkinson,Georgia,13319,9,1 +2020-04-11,Wilkinson,Georgia,13319,10,1 +2020-04-12,Wilkinson,Georgia,13319,11,1 +2020-04-13,Wilkinson,Georgia,13319,11,1 +2020-04-14,Wilkinson,Georgia,13319,12,1 +2020-04-15,Wilkinson,Georgia,13319,14,1 +2020-04-16,Wilkinson,Georgia,13319,18,1 +2020-04-17,Wilkinson,Georgia,13319,20,1 +2020-04-18,Wilkinson,Georgia,13319,20,1 +2020-04-19,Wilkinson,Georgia,13319,20,1 +2020-04-20,Wilkinson,Georgia,13319,22,2 +2020-04-21,Wilkinson,Georgia,13319,22,2 +2020-04-22,Wilkinson,Georgia,13319,22,2 +2020-04-23,Wilkinson,Georgia,13319,27,2 +2020-04-24,Wilkinson,Georgia,13319,29,2 +2020-04-25,Wilkinson,Georgia,13319,30,2 +2020-04-26,Wilkinson,Georgia,13319,31,2 +2020-04-27,Wilkinson,Georgia,13319,32,2 +2020-04-28,Wilkinson,Georgia,13319,34,2 +2020-04-29,Wilkinson,Georgia,13319,35,2 +2020-04-30,Wilkinson,Georgia,13319,35,2 +2020-05-01,Wilkinson,Georgia,13319,35,2 +2020-05-02,Wilkinson,Georgia,13319,35,2 +2020-05-03,Wilkinson,Georgia,13319,35,2 +2020-05-04,Wilkinson,Georgia,13319,36,2 +2020-05-05,Wilkinson,Georgia,13319,35,2 +2020-05-06,Wilkinson,Georgia,13319,41,2 +2020-05-07,Wilkinson,Georgia,13319,40,2 +2020-05-08,Wilkinson,Georgia,13319,40,2 +2020-05-09,Wilkinson,Georgia,13319,39,2 +2020-05-10,Wilkinson,Georgia,13319,40,2 +2020-05-11,Wilkinson,Georgia,13319,40,3 +2020-05-12,Wilkinson,Georgia,13319,40,3 +2020-05-13,Wilkinson,Georgia,13319,40,3 +2020-05-14,Wilkinson,Georgia,13319,40,3 +2020-05-15,Wilkinson,Georgia,13319,42,3 +2020-05-16,Wilkinson,Georgia,13319,45,3 +2020-05-17,Wilkinson,Georgia,13319,45,3 +2020-05-18,Wilkinson,Georgia,13319,45,3 +2020-05-19,Wilkinson,Georgia,13319,46,3 +2020-05-20,Wilkinson,Georgia,13319,49,3 +2020-05-21,Wilkinson,Georgia,13319,61,3 +2020-05-22,Wilkinson,Georgia,13319,63,3 +2020-05-23,Wilkinson,Georgia,13319,64,4 +2020-05-24,Wilkinson,Georgia,13319,65,4 +2020-05-25,Wilkinson,Georgia,13319,65,4 +2020-05-26,Wilkinson,Georgia,13319,65,4 +2020-05-27,Wilkinson,Georgia,13319,70,4 +2020-05-28,Wilkinson,Georgia,13319,68,4 +2020-05-29,Wilkinson,Georgia,13319,69,5 +2020-05-30,Wilkinson,Georgia,13319,69,5 +2020-05-31,Wilkinson,Georgia,13319,69,6 +2020-06-01,Wilkinson,Georgia,13319,69,6 +2020-06-02,Wilkinson,Georgia,13319,70,7 +2020-06-03,Wilkinson,Georgia,13319,69,7 +2020-06-04,Wilkinson,Georgia,13319,70,7 +2020-06-05,Wilkinson,Georgia,13319,71,7 +2020-06-06,Wilkinson,Georgia,13319,71,7 +2020-06-07,Wilkinson,Georgia,13319,71,7 +2020-06-08,Wilkinson,Georgia,13319,71,7 +2020-06-09,Wilkinson,Georgia,13319,72,7 +2020-06-10,Wilkinson,Georgia,13319,71,7 +2020-06-11,Wilkinson,Georgia,13319,73,7 +2020-06-12,Wilkinson,Georgia,13319,73,7 +2020-06-13,Wilkinson,Georgia,13319,73,7 +2020-06-14,Wilkinson,Georgia,13319,73,7 +2020-06-15,Wilkinson,Georgia,13319,73,7 +2020-06-16,Wilkinson,Georgia,13319,74,7 +2020-06-17,Wilkinson,Georgia,13319,74,7 +2020-06-18,Wilkinson,Georgia,13319,74,7 +2020-06-19,Wilkinson,Georgia,13319,74,7 +2020-06-20,Wilkinson,Georgia,13319,73,7 +2020-06-21,Wilkinson,Georgia,13319,73,7 +2020-06-22,Wilkinson,Georgia,13319,74,7 +2020-06-23,Wilkinson,Georgia,13319,74,8 +2020-06-24,Wilkinson,Georgia,13319,74,8 +2020-06-25,Wilkinson,Georgia,13319,74,8 +2020-06-26,Wilkinson,Georgia,13319,74,8 +2020-06-27,Wilkinson,Georgia,13319,75,8 +2020-06-28,Wilkinson,Georgia,13319,75,8 +2020-06-29,Wilkinson,Georgia,13319,76,8 +2020-06-30,Wilkinson,Georgia,13319,76,8 +2020-07-01,Wilkinson,Georgia,13319,76,8 +2020-07-02,Wilkinson,Georgia,13319,78,8 +2020-07-03,Wilkinson,Georgia,13319,79,8 +2020-07-04,Wilkinson,Georgia,13319,82,8 +2020-07-05,Wilkinson,Georgia,13319,82,8 +2020-07-06,Wilkinson,Georgia,13319,83,8 +2020-07-07,Wilkinson,Georgia,13319,94,8 +2020-07-08,Wilkinson,Georgia,13319,100,9 +2020-07-09,Wilkinson,Georgia,13319,102,9 +2020-03-20,Worth,Georgia,13321,2,0 +2020-03-21,Worth,Georgia,13321,2,0 +2020-03-22,Worth,Georgia,13321,2,0 +2020-03-23,Worth,Georgia,13321,3,0 +2020-03-24,Worth,Georgia,13321,4,0 +2020-03-25,Worth,Georgia,13321,4,0 +2020-03-26,Worth,Georgia,13321,6,0 +2020-03-27,Worth,Georgia,13321,7,1 +2020-03-28,Worth,Georgia,13321,8,1 +2020-03-29,Worth,Georgia,13321,10,1 +2020-03-30,Worth,Georgia,13321,12,1 +2020-03-31,Worth,Georgia,13321,28,1 +2020-04-01,Worth,Georgia,13321,28,1 +2020-04-02,Worth,Georgia,13321,28,1 +2020-04-03,Worth,Georgia,13321,33,1 +2020-04-04,Worth,Georgia,13321,36,1 +2020-04-05,Worth,Georgia,13321,37,2 +2020-04-06,Worth,Georgia,13321,39,3 +2020-04-07,Worth,Georgia,13321,60,3 +2020-04-08,Worth,Georgia,13321,65,3 +2020-04-09,Worth,Georgia,13321,70,4 +2020-04-10,Worth,Georgia,13321,78,4 +2020-04-11,Worth,Georgia,13321,80,4 +2020-04-12,Worth,Georgia,13321,87,4 +2020-04-13,Worth,Georgia,13321,96,4 +2020-04-14,Worth,Georgia,13321,99,4 +2020-04-15,Worth,Georgia,13321,111,4 +2020-04-16,Worth,Georgia,13321,114,4 +2020-04-17,Worth,Georgia,13321,116,4 +2020-04-18,Worth,Georgia,13321,119,5 +2020-04-19,Worth,Georgia,13321,122,4 +2020-04-20,Worth,Georgia,13321,128,8 +2020-04-21,Worth,Georgia,13321,140,9 +2020-04-22,Worth,Georgia,13321,142,9 +2020-04-23,Worth,Georgia,13321,142,9 +2020-04-24,Worth,Georgia,13321,138,9 +2020-04-25,Worth,Georgia,13321,140,9 +2020-04-26,Worth,Georgia,13321,141,9 +2020-04-27,Worth,Georgia,13321,143,9 +2020-04-28,Worth,Georgia,13321,144,8 +2020-04-29,Worth,Georgia,13321,149,10 +2020-04-30,Worth,Georgia,13321,153,11 +2020-05-01,Worth,Georgia,13321,159,11 +2020-05-02,Worth,Georgia,13321,162,11 +2020-05-03,Worth,Georgia,13321,163,11 +2020-05-04,Worth,Georgia,13321,167,11 +2020-05-05,Worth,Georgia,13321,173,12 +2020-05-06,Worth,Georgia,13321,175,12 +2020-05-07,Worth,Georgia,13321,179,13 +2020-05-08,Worth,Georgia,13321,180,13 +2020-05-09,Worth,Georgia,13321,182,13 +2020-05-10,Worth,Georgia,13321,183,13 +2020-05-11,Worth,Georgia,13321,183,13 +2020-05-12,Worth,Georgia,13321,188,17 +2020-05-13,Worth,Georgia,13321,191,18 +2020-05-14,Worth,Georgia,13321,191,17 +2020-05-15,Worth,Georgia,13321,195,17 +2020-05-16,Worth,Georgia,13321,195,17 +2020-05-17,Worth,Georgia,13321,196,17 +2020-05-18,Worth,Georgia,13321,197,17 +2020-05-19,Worth,Georgia,13321,201,18 +2020-05-20,Worth,Georgia,13321,206,20 +2020-05-21,Worth,Georgia,13321,207,20 +2020-05-22,Worth,Georgia,13321,204,20 +2020-05-23,Worth,Georgia,13321,204,19 +2020-05-24,Worth,Georgia,13321,209,19 +2020-05-25,Worth,Georgia,13321,210,19 +2020-05-26,Worth,Georgia,13321,213,20 +2020-05-27,Worth,Georgia,13321,209,20 +2020-05-28,Worth,Georgia,13321,208,21 +2020-05-29,Worth,Georgia,13321,209,21 +2020-05-30,Worth,Georgia,13321,210,21 +2020-05-31,Worth,Georgia,13321,211,21 +2020-06-01,Worth,Georgia,13321,222,21 +2020-06-02,Worth,Georgia,13321,223,21 +2020-06-03,Worth,Georgia,13321,226,21 +2020-06-04,Worth,Georgia,13321,228,21 +2020-06-05,Worth,Georgia,13321,231,21 +2020-06-06,Worth,Georgia,13321,233,21 +2020-06-07,Worth,Georgia,13321,235,21 +2020-06-08,Worth,Georgia,13321,240,21 +2020-06-09,Worth,Georgia,13321,243,21 +2020-06-10,Worth,Georgia,13321,247,21 +2020-06-11,Worth,Georgia,13321,255,21 +2020-06-12,Worth,Georgia,13321,256,21 +2020-06-13,Worth,Georgia,13321,256,21 +2020-06-14,Worth,Georgia,13321,256,21 +2020-06-15,Worth,Georgia,13321,260,21 +2020-06-16,Worth,Georgia,13321,265,21 +2020-06-17,Worth,Georgia,13321,269,21 +2020-06-18,Worth,Georgia,13321,270,21 +2020-06-19,Worth,Georgia,13321,278,21 +2020-06-20,Worth,Georgia,13321,282,21 +2020-06-21,Worth,Georgia,13321,285,21 +2020-06-22,Worth,Georgia,13321,288,21 +2020-06-23,Worth,Georgia,13321,291,21 +2020-06-24,Worth,Georgia,13321,294,21 +2020-06-25,Worth,Georgia,13321,295,21 +2020-06-26,Worth,Georgia,13321,296,21 +2020-06-27,Worth,Georgia,13321,300,21 +2020-06-28,Worth,Georgia,13321,303,22 +2020-06-29,Worth,Georgia,13321,305,22 +2020-06-30,Worth,Georgia,13321,315,22 +2020-07-01,Worth,Georgia,13321,317,22 +2020-07-02,Worth,Georgia,13321,319,22 +2020-07-03,Worth,Georgia,13321,324,22 +2020-07-04,Worth,Georgia,13321,324,22 +2020-07-05,Worth,Georgia,13321,327,22 +2020-07-06,Worth,Georgia,13321,331,22 +2020-07-07,Worth,Georgia,13321,339,22 +2020-07-08,Worth,Georgia,13321,343,22 +2020-07-09,Worth,Georgia,13321,346,22 +2020-03-17,Hawaii,Hawaii,15001,1,0 +2020-03-18,Hawaii,Hawaii,15001,1,0 +2020-03-19,Hawaii,Hawaii,15001,1,0 +2020-03-20,Hawaii,Hawaii,15001,1,0 +2020-03-21,Hawaii,Hawaii,15001,3,0 +2020-03-22,Hawaii,Hawaii,15001,3,0 +2020-03-23,Hawaii,Hawaii,15001,5,0 +2020-03-24,Hawaii,Hawaii,15001,5,0 +2020-03-25,Hawaii,Hawaii,15001,5,0 +2020-03-26,Hawaii,Hawaii,15001,5,0 +2020-03-27,Hawaii,Hawaii,15001,7,0 +2020-03-28,Hawaii,Hawaii,15001,10,0 +2020-03-29,Hawaii,Hawaii,15001,12,0 +2020-03-30,Hawaii,Hawaii,15001,15,0 +2020-03-31,Hawaii,Hawaii,15001,15,0 +2020-04-01,Hawaii,Hawaii,15001,18,0 +2020-04-02,Hawaii,Hawaii,15001,18,0 +2020-04-03,Hawaii,Hawaii,15001,20,0 +2020-04-04,Hawaii,Hawaii,15001,22,0 +2020-04-05,Hawaii,Hawaii,15001,22,0 +2020-04-06,Hawaii,Hawaii,15001,23,0 +2020-04-07,Hawaii,Hawaii,15001,23,0 +2020-04-08,Hawaii,Hawaii,15001,26,0 +2020-04-09,Hawaii,Hawaii,15001,28,0 +2020-04-10,Hawaii,Hawaii,15001,31,0 +2020-04-11,Hawaii,Hawaii,15001,34,0 +2020-04-12,Hawaii,Hawaii,15001,39,0 +2020-04-13,Hawaii,Hawaii,15001,40,0 +2020-04-14,Hawaii,Hawaii,15001,41,0 +2020-04-15,Hawaii,Hawaii,15001,41,0 +2020-04-16,Hawaii,Hawaii,15001,41,0 +2020-04-17,Hawaii,Hawaii,15001,44,0 +2020-04-18,Hawaii,Hawaii,15001,61,0 +2020-04-19,Hawaii,Hawaii,15001,62,0 +2020-04-20,Hawaii,Hawaii,15001,64,0 +2020-04-21,Hawaii,Hawaii,15001,64,0 +2020-04-22,Hawaii,Hawaii,15001,67,0 +2020-04-23,Hawaii,Hawaii,15001,68,0 +2020-04-24,Hawaii,Hawaii,15001,69,0 +2020-04-25,Hawaii,Hawaii,15001,69,0 +2020-04-26,Hawaii,Hawaii,15001,70,0 +2020-04-27,Hawaii,Hawaii,15001,70,0 +2020-04-28,Hawaii,Hawaii,15001,70,0 +2020-04-29,Hawaii,Hawaii,15001,70,0 +2020-04-30,Hawaii,Hawaii,15001,73,0 +2020-05-01,Hawaii,Hawaii,15001,73,0 +2020-05-02,Hawaii,Hawaii,15001,73,0 +2020-05-03,Hawaii,Hawaii,15001,74,0 +2020-05-04,Hawaii,Hawaii,15001,75,0 +2020-05-05,Hawaii,Hawaii,15001,74,0 +2020-05-06,Hawaii,Hawaii,15001,74,0 +2020-05-07,Hawaii,Hawaii,15001,74,0 +2020-05-08,Hawaii,Hawaii,15001,74,0 +2020-05-09,Hawaii,Hawaii,15001,75,0 +2020-05-10,Hawaii,Hawaii,15001,75,0 +2020-05-11,Hawaii,Hawaii,15001,75,0 +2020-05-12,Hawaii,Hawaii,15001,75,0 +2020-05-13,Hawaii,Hawaii,15001,75,0 +2020-05-14,Hawaii,Hawaii,15001,75,0 +2020-05-15,Hawaii,Hawaii,15001,76,0 +2020-05-16,Hawaii,Hawaii,15001,76,0 +2020-05-17,Hawaii,Hawaii,15001,77,0 +2020-05-18,Hawaii,Hawaii,15001,77,0 +2020-05-19,Hawaii,Hawaii,15001,78,0 +2020-05-20,Hawaii,Hawaii,15001,79,0 +2020-05-21,Hawaii,Hawaii,15001,82,0 +2020-05-22,Hawaii,Hawaii,15001,81,0 +2020-05-23,Hawaii,Hawaii,15001,81,0 +2020-05-24,Hawaii,Hawaii,15001,81,0 +2020-05-25,Hawaii,Hawaii,15001,81,0 +2020-05-26,Hawaii,Hawaii,15001,81,0 +2020-05-27,Hawaii,Hawaii,15001,82,0 +2020-05-28,Hawaii,Hawaii,15001,82,0 +2020-05-29,Hawaii,Hawaii,15001,82,0 +2020-05-30,Hawaii,Hawaii,15001,81,0 +2020-05-31,Hawaii,Hawaii,15001,81,0 +2020-06-01,Hawaii,Hawaii,15001,81,0 +2020-06-02,Hawaii,Hawaii,15001,81,0 +2020-06-03,Hawaii,Hawaii,15001,81,0 +2020-06-04,Hawaii,Hawaii,15001,81,0 +2020-06-05,Hawaii,Hawaii,15001,81,0 +2020-06-06,Hawaii,Hawaii,15001,81,0 +2020-06-07,Hawaii,Hawaii,15001,81,0 +2020-06-08,Hawaii,Hawaii,15001,81,0 +2020-06-09,Hawaii,Hawaii,15001,81,0 +2020-06-10,Hawaii,Hawaii,15001,81,0 +2020-06-11,Hawaii,Hawaii,15001,81,0 +2020-06-12,Hawaii,Hawaii,15001,81,0 +2020-06-13,Hawaii,Hawaii,15001,81,0 +2020-06-14,Hawaii,Hawaii,15001,82,0 +2020-06-15,Hawaii,Hawaii,15001,82,0 +2020-06-16,Hawaii,Hawaii,15001,82,0 +2020-06-17,Hawaii,Hawaii,15001,83,0 +2020-06-18,Hawaii,Hawaii,15001,83,0 +2020-06-19,Hawaii,Hawaii,15001,83,0 +2020-06-20,Hawaii,Hawaii,15001,83,0 +2020-06-21,Hawaii,Hawaii,15001,85,0 +2020-06-22,Hawaii,Hawaii,15001,85,0 +2020-06-23,Hawaii,Hawaii,15001,85,0 +2020-06-24,Hawaii,Hawaii,15001,86,0 +2020-06-25,Hawaii,Hawaii,15001,86,0 +2020-06-26,Hawaii,Hawaii,15001,86,0 +2020-06-27,Hawaii,Hawaii,15001,86,0 +2020-06-28,Hawaii,Hawaii,15001,87,0 +2020-06-29,Hawaii,Hawaii,15001,87,0 +2020-06-30,Hawaii,Hawaii,15001,87,0 +2020-07-01,Hawaii,Hawaii,15001,87,0 +2020-07-02,Hawaii,Hawaii,15001,90,0 +2020-07-03,Hawaii,Hawaii,15001,91,0 +2020-07-04,Hawaii,Hawaii,15001,93,0 +2020-07-05,Hawaii,Hawaii,15001,93,0 +2020-07-06,Hawaii,Hawaii,15001,94,0 +2020-07-07,Hawaii,Hawaii,15001,95,0 +2020-07-08,Hawaii,Hawaii,15001,96,0 +2020-07-09,Hawaii,Hawaii,15001,97,0 +2020-03-06,Honolulu,Hawaii,15003,1,0 +2020-03-07,Honolulu,Hawaii,15003,1,0 +2020-03-08,Honolulu,Hawaii,15003,2,0 +2020-03-09,Honolulu,Hawaii,15003,2,0 +2020-03-10,Honolulu,Hawaii,15003,2,0 +2020-03-11,Honolulu,Hawaii,15003,2,0 +2020-03-12,Honolulu,Hawaii,15003,2,0 +2020-03-13,Honolulu,Hawaii,15003,2,0 +2020-03-14,Honolulu,Hawaii,15003,2,0 +2020-03-15,Honolulu,Hawaii,15003,4,0 +2020-03-16,Honolulu,Hawaii,15003,6,0 +2020-03-17,Honolulu,Hawaii,15003,8,0 +2020-03-18,Honolulu,Hawaii,15003,10,0 +2020-03-19,Honolulu,Hawaii,15003,18,0 +2020-03-20,Honolulu,Hawaii,15003,28,0 +2020-03-21,Honolulu,Hawaii,15003,35,0 +2020-03-22,Honolulu,Hawaii,15003,41,0 +2020-03-23,Honolulu,Hawaii,15003,53,0 +2020-03-24,Honolulu,Hawaii,15003,58,0 +2020-03-25,Honolulu,Hawaii,15003,68,0 +2020-03-26,Honolulu,Hawaii,15003,77,0 +2020-03-27,Honolulu,Hawaii,15003,87,0 +2020-03-28,Honolulu,Hawaii,15003,108,0 +2020-03-29,Honolulu,Hawaii,15003,119,0 +2020-03-30,Honolulu,Hawaii,15003,139,0 +2020-03-31,Honolulu,Hawaii,15003,157,1 +2020-04-01,Honolulu,Hawaii,15003,182,1 +2020-04-02,Honolulu,Hawaii,15003,206,2 +2020-04-03,Honolulu,Hawaii,15003,237,2 +2020-04-04,Honolulu,Hawaii,15003,266,2 +2020-04-05,Honolulu,Hawaii,15003,281,2 +2020-04-06,Honolulu,Hawaii,15003,292,4 +2020-04-07,Honolulu,Hawaii,15003,312,4 +2020-04-08,Honolulu,Hawaii,15003,328,4 +2020-04-09,Honolulu,Hawaii,15003,334,4 +2020-04-10,Honolulu,Hawaii,15003,343,5 +2020-04-11,Honolulu,Hawaii,15003,348,5 +2020-04-12,Honolulu,Hawaii,15003,350,6 +2020-04-13,Honolulu,Hawaii,15003,352,6 +2020-04-14,Honolulu,Hawaii,15003,358,6 +2020-04-15,Honolulu,Hawaii,15003,369,6 +2020-04-16,Honolulu,Hawaii,15003,373,6 +2020-04-17,Honolulu,Hawaii,15003,380,6 +2020-04-18,Honolulu,Hawaii,15003,382,6 +2020-04-19,Honolulu,Hawaii,15003,385,6 +2020-04-20,Honolulu,Hawaii,15003,385,6 +2020-04-21,Honolulu,Hawaii,15003,385,7 +2020-04-22,Honolulu,Hawaii,15003,388,7 +2020-04-23,Honolulu,Hawaii,15003,389,7 +2020-04-24,Honolulu,Hawaii,15003,392,8 +2020-04-25,Honolulu,Hawaii,15003,395,9 +2020-04-26,Honolulu,Hawaii,15003,396,9 +2020-04-27,Honolulu,Hawaii,15003,396,11 +2020-04-28,Honolulu,Hawaii,15003,396,11 +2020-04-29,Honolulu,Hawaii,15003,399,11 +2020-04-30,Honolulu,Hawaii,15003,399,11 +2020-05-01,Honolulu,Hawaii,15003,400,11 +2020-05-02,Honolulu,Hawaii,15003,400,11 +2020-05-03,Honolulu,Hawaii,15003,400,11 +2020-05-04,Honolulu,Hawaii,15003,400,11 +2020-05-05,Honolulu,Hawaii,15003,404,11 +2020-05-06,Honolulu,Hawaii,15003,405,11 +2020-05-07,Honolulu,Hawaii,15003,408,11 +2020-05-08,Honolulu,Hawaii,15003,408,11 +2020-05-09,Honolulu,Hawaii,15003,407,11 +2020-05-10,Honolulu,Hawaii,15003,408,11 +2020-05-11,Honolulu,Hawaii,15003,410,11 +2020-05-12,Honolulu,Hawaii,15003,411,11 +2020-05-13,Honolulu,Hawaii,15003,414,11 +2020-05-14,Honolulu,Hawaii,15003,414,11 +2020-05-15,Honolulu,Hawaii,15003,414,11 +2020-05-16,Honolulu,Hawaii,15003,415,11 +2020-05-17,Honolulu,Hawaii,15003,415,11 +2020-05-18,Honolulu,Hawaii,15003,415,11 +2020-05-19,Honolulu,Hawaii,15003,415,11 +2020-05-20,Honolulu,Hawaii,15003,416,11 +2020-05-21,Honolulu,Hawaii,15003,416,11 +2020-05-22,Honolulu,Hawaii,15003,414,11 +2020-05-23,Honolulu,Hawaii,15003,414,11 +2020-05-24,Honolulu,Hawaii,15003,414,11 +2020-05-25,Honolulu,Hawaii,15003,414,11 +2020-05-26,Honolulu,Hawaii,15003,414,11 +2020-05-27,Honolulu,Hawaii,15003,414,11 +2020-05-28,Honolulu,Hawaii,15003,417,11 +2020-05-29,Honolulu,Hawaii,15003,419,11 +2020-05-30,Honolulu,Hawaii,15003,421,11 +2020-05-31,Honolulu,Hawaii,15003,421,11 +2020-06-01,Honolulu,Hawaii,15003,421,11 +2020-06-02,Honolulu,Hawaii,15003,422,11 +2020-06-03,Honolulu,Hawaii,15003,423,11 +2020-06-04,Honolulu,Hawaii,15003,424,11 +2020-06-05,Honolulu,Hawaii,15003,431,11 +2020-06-06,Honolulu,Hawaii,15003,439,11 +2020-06-07,Honolulu,Hawaii,15003,441,11 +2020-06-08,Honolulu,Hawaii,15003,442,11 +2020-06-09,Honolulu,Hawaii,15003,448,11 +2020-06-10,Honolulu,Hawaii,15003,451,11 +2020-06-11,Honolulu,Hawaii,15003,458,11 +2020-06-12,Honolulu,Hawaii,15003,472,11 +2020-06-13,Honolulu,Hawaii,15003,489,11 +2020-06-14,Honolulu,Hawaii,15003,493,11 +2020-06-15,Honolulu,Hawaii,15003,501,11 +2020-06-16,Honolulu,Hawaii,15003,505,11 +2020-06-17,Honolulu,Hawaii,15003,508,11 +2020-06-18,Honolulu,Hawaii,15003,526,11 +2020-06-19,Honolulu,Hawaii,15003,551,11 +2020-06-20,Honolulu,Hawaii,15003,557,11 +2020-06-21,Honolulu,Hawaii,15003,566,11 +2020-06-22,Honolulu,Hawaii,15003,568,11 +2020-06-23,Honolulu,Hawaii,15003,571,11 +2020-06-24,Honolulu,Hawaii,15003,584,11 +2020-06-25,Honolulu,Hawaii,15003,595,11 +2020-06-26,Honolulu,Hawaii,15003,608,11 +2020-06-27,Honolulu,Hawaii,15003,613,12 +2020-06-28,Honolulu,Hawaii,15003,636,12 +2020-06-29,Honolulu,Hawaii,15003,638,12 +2020-06-30,Honolulu,Hawaii,15003,652,12 +2020-07-01,Honolulu,Hawaii,15003,659,12 +2020-07-02,Honolulu,Hawaii,15003,676,12 +2020-07-03,Honolulu,Hawaii,15003,701,13 +2020-07-04,Honolulu,Hawaii,15003,720,13 +2020-07-05,Honolulu,Hawaii,15003,744,13 +2020-07-06,Honolulu,Hawaii,15003,750,13 +2020-07-07,Honolulu,Hawaii,15003,788,13 +2020-07-08,Honolulu,Hawaii,15003,808,13 +2020-07-09,Honolulu,Hawaii,15003,842,13 +2020-03-14,Kauai,Hawaii,15007,2,0 +2020-03-15,Kauai,Hawaii,15007,2,0 +2020-03-16,Kauai,Hawaii,15007,2,0 +2020-03-17,Kauai,Hawaii,15007,2,0 +2020-03-18,Kauai,Hawaii,15007,2,0 +2020-03-19,Kauai,Hawaii,15007,2,0 +2020-03-20,Kauai,Hawaii,15007,3,0 +2020-03-21,Kauai,Hawaii,15007,3,0 +2020-03-22,Kauai,Hawaii,15007,3,0 +2020-03-23,Kauai,Hawaii,15007,3,0 +2020-03-24,Kauai,Hawaii,15007,3,0 +2020-03-25,Kauai,Hawaii,15007,5,0 +2020-03-26,Kauai,Hawaii,15007,5,0 +2020-03-27,Kauai,Hawaii,15007,5,0 +2020-03-28,Kauai,Hawaii,15007,11,0 +2020-03-29,Kauai,Hawaii,15007,12,0 +2020-03-30,Kauai,Hawaii,15007,12,0 +2020-03-31,Kauai,Hawaii,15007,12,0 +2020-04-01,Kauai,Hawaii,15007,12,0 +2020-04-02,Kauai,Hawaii,15007,12,0 +2020-04-03,Kauai,Hawaii,15007,13,0 +2020-04-04,Kauai,Hawaii,15007,15,0 +2020-04-05,Kauai,Hawaii,15007,16,0 +2020-04-06,Kauai,Hawaii,15007,17,0 +2020-04-07,Kauai,Hawaii,15007,18,0 +2020-04-08,Kauai,Hawaii,15007,18,0 +2020-04-09,Kauai,Hawaii,15007,18,0 +2020-04-10,Kauai,Hawaii,15007,19,0 +2020-04-11,Kauai,Hawaii,15007,19,0 +2020-04-12,Kauai,Hawaii,15007,21,0 +2020-04-13,Kauai,Hawaii,15007,21,0 +2020-04-14,Kauai,Hawaii,15007,21,0 +2020-04-15,Kauai,Hawaii,15007,21,0 +2020-04-16,Kauai,Hawaii,15007,21,0 +2020-04-17,Kauai,Hawaii,15007,21,0 +2020-04-18,Kauai,Hawaii,15007,21,0 +2020-04-19,Kauai,Hawaii,15007,21,0 +2020-04-20,Kauai,Hawaii,15007,21,0 +2020-04-21,Kauai,Hawaii,15007,21,0 +2020-04-22,Kauai,Hawaii,15007,21,0 +2020-04-23,Kauai,Hawaii,15007,21,0 +2020-04-24,Kauai,Hawaii,15007,21,0 +2020-04-25,Kauai,Hawaii,15007,21,0 +2020-04-26,Kauai,Hawaii,15007,21,0 +2020-04-27,Kauai,Hawaii,15007,21,0 +2020-04-28,Kauai,Hawaii,15007,21,0 +2020-04-29,Kauai,Hawaii,15007,21,0 +2020-04-30,Kauai,Hawaii,15007,21,0 +2020-05-01,Kauai,Hawaii,15007,21,0 +2020-05-02,Kauai,Hawaii,15007,21,0 +2020-05-03,Kauai,Hawaii,15007,21,0 +2020-05-04,Kauai,Hawaii,15007,21,0 +2020-05-05,Kauai,Hawaii,15007,21,0 +2020-05-06,Kauai,Hawaii,15007,21,0 +2020-05-07,Kauai,Hawaii,15007,21,0 +2020-05-08,Kauai,Hawaii,15007,21,0 +2020-05-09,Kauai,Hawaii,15007,21,0 +2020-05-10,Kauai,Hawaii,15007,21,0 +2020-05-11,Kauai,Hawaii,15007,21,0 +2020-05-12,Kauai,Hawaii,15007,21,0 +2020-05-13,Kauai,Hawaii,15007,21,0 +2020-05-14,Kauai,Hawaii,15007,21,0 +2020-05-15,Kauai,Hawaii,15007,21,0 +2020-05-16,Kauai,Hawaii,15007,21,0 +2020-05-17,Kauai,Hawaii,15007,21,0 +2020-05-18,Kauai,Hawaii,15007,21,0 +2020-05-19,Kauai,Hawaii,15007,21,0 +2020-05-20,Kauai,Hawaii,15007,21,0 +2020-05-21,Kauai,Hawaii,15007,21,0 +2020-05-22,Kauai,Hawaii,15007,20,0 +2020-05-23,Kauai,Hawaii,15007,20,0 +2020-05-24,Kauai,Hawaii,15007,20,0 +2020-05-25,Kauai,Hawaii,15007,20,0 +2020-05-26,Kauai,Hawaii,15007,20,0 +2020-05-27,Kauai,Hawaii,15007,20,0 +2020-05-28,Kauai,Hawaii,15007,20,0 +2020-05-29,Kauai,Hawaii,15007,20,0 +2020-05-30,Kauai,Hawaii,15007,20,0 +2020-05-31,Kauai,Hawaii,15007,20,0 +2020-06-01,Kauai,Hawaii,15007,20,0 +2020-06-02,Kauai,Hawaii,15007,20,0 +2020-06-03,Kauai,Hawaii,15007,20,0 +2020-06-04,Kauai,Hawaii,15007,20,0 +2020-06-05,Kauai,Hawaii,15007,21,0 +2020-06-06,Kauai,Hawaii,15007,21,0 +2020-06-07,Kauai,Hawaii,15007,21,0 +2020-06-08,Kauai,Hawaii,15007,21,0 +2020-06-09,Kauai,Hawaii,15007,21,0 +2020-06-10,Kauai,Hawaii,15007,21,0 +2020-06-11,Kauai,Hawaii,15007,21,0 +2020-06-12,Kauai,Hawaii,15007,21,0 +2020-06-13,Kauai,Hawaii,15007,21,0 +2020-06-14,Kauai,Hawaii,15007,21,0 +2020-06-15,Kauai,Hawaii,15007,21,0 +2020-06-16,Kauai,Hawaii,15007,21,0 +2020-06-17,Kauai,Hawaii,15007,21,0 +2020-06-18,Kauai,Hawaii,15007,21,0 +2020-06-19,Kauai,Hawaii,15007,22,0 +2020-06-20,Kauai,Hawaii,15007,29,0 +2020-06-21,Kauai,Hawaii,15007,29,0 +2020-06-22,Kauai,Hawaii,15007,29,0 +2020-06-23,Kauai,Hawaii,15007,29,0 +2020-06-24,Kauai,Hawaii,15007,29,0 +2020-06-25,Kauai,Hawaii,15007,33,0 +2020-06-26,Kauai,Hawaii,15007,34,0 +2020-06-27,Kauai,Hawaii,15007,35,0 +2020-06-28,Kauai,Hawaii,15007,37,0 +2020-06-29,Kauai,Hawaii,15007,37,0 +2020-06-30,Kauai,Hawaii,15007,38,0 +2020-07-01,Kauai,Hawaii,15007,38,0 +2020-07-02,Kauai,Hawaii,15007,38,0 +2020-07-03,Kauai,Hawaii,15007,38,0 +2020-07-04,Kauai,Hawaii,15007,40,0 +2020-07-05,Kauai,Hawaii,15007,40,0 +2020-07-06,Kauai,Hawaii,15007,40,0 +2020-07-07,Kauai,Hawaii,15007,42,0 +2020-07-08,Kauai,Hawaii,15007,42,0 +2020-07-09,Kauai,Hawaii,15007,43,0 +2020-03-15,Maui,Hawaii,15009,1,0 +2020-03-16,Maui,Hawaii,15009,2,0 +2020-03-17,Maui,Hawaii,15009,3,0 +2020-03-18,Maui,Hawaii,15009,3,0 +2020-03-19,Maui,Hawaii,15009,5,0 +2020-03-20,Maui,Hawaii,15009,5,0 +2020-03-21,Maui,Hawaii,15009,7,0 +2020-03-22,Maui,Hawaii,15009,9,0 +2020-03-23,Maui,Hawaii,15009,11,0 +2020-03-24,Maui,Hawaii,15009,11,0 +2020-03-25,Maui,Hawaii,15009,13,0 +2020-03-26,Maui,Hawaii,15009,14,0 +2020-03-27,Maui,Hawaii,15009,16,0 +2020-03-28,Maui,Hawaii,15009,16,0 +2020-03-29,Maui,Hawaii,15009,20,0 +2020-03-30,Maui,Hawaii,15009,25,0 +2020-03-31,Maui,Hawaii,15009,25,0 +2020-04-01,Maui,Hawaii,15009,26,0 +2020-04-02,Maui,Hawaii,15009,27,0 +2020-04-03,Maui,Hawaii,15009,36,0 +2020-04-04,Maui,Hawaii,15009,38,0 +2020-04-05,Maui,Hawaii,15009,43,0 +2020-04-06,Maui,Hawaii,15009,44,1 +2020-04-07,Maui,Hawaii,15009,48,1 +2020-04-08,Maui,Hawaii,15009,54,1 +2020-04-09,Maui,Hawaii,15009,57,2 +2020-04-10,Maui,Hawaii,15009,66,3 +2020-04-11,Maui,Hawaii,15009,80,3 +2020-04-12,Maui,Hawaii,15009,84,3 +2020-04-13,Maui,Hawaii,15009,86,3 +2020-04-14,Maui,Hawaii,15009,88,3 +2020-04-15,Maui,Hawaii,15009,92,3 +2020-04-16,Maui,Hawaii,15009,95,3 +2020-04-17,Maui,Hawaii,15009,102,3 +2020-04-18,Maui,Hawaii,15009,104,3 +2020-04-19,Maui,Hawaii,15009,106,4 +2020-04-20,Maui,Hawaii,15009,108,4 +2020-04-21,Maui,Hawaii,15009,110,5 +2020-04-22,Maui,Hawaii,15009,110,5 +2020-04-23,Maui,Hawaii,15009,112,5 +2020-04-24,Maui,Hawaii,15009,113,5 +2020-04-25,Maui,Hawaii,15009,112,5 +2020-04-26,Maui,Hawaii,15009,112,5 +2020-04-27,Maui,Hawaii,15009,113,5 +2020-04-28,Maui,Hawaii,15009,115,5 +2020-04-29,Maui,Hawaii,15009,115,5 +2020-04-30,Maui,Hawaii,15009,116,5 +2020-05-01,Maui,Hawaii,15009,116,5 +2020-05-02,Maui,Hawaii,15009,117,5 +2020-05-03,Maui,Hawaii,15009,116,6 +2020-05-04,Maui,Hawaii,15009,116,6 +2020-05-05,Maui,Hawaii,15009,116,6 +2020-05-06,Maui,Hawaii,15009,116,6 +2020-05-07,Maui,Hawaii,15009,116,6 +2020-05-08,Maui,Hawaii,15009,116,6 +2020-05-09,Maui,Hawaii,15009,117,6 +2020-05-10,Maui,Hawaii,15009,117,6 +2020-05-11,Maui,Hawaii,15009,117,6 +2020-05-12,Maui,Hawaii,15009,117,6 +2020-05-13,Maui,Hawaii,15009,117,6 +2020-05-14,Maui,Hawaii,15009,117,6 +2020-05-15,Maui,Hawaii,15009,117,6 +2020-05-16,Maui,Hawaii,15009,117,6 +2020-05-17,Maui,Hawaii,15009,117,6 +2020-05-18,Maui,Hawaii,15009,117,6 +2020-05-19,Maui,Hawaii,15009,117,6 +2020-05-20,Maui,Hawaii,15009,117,6 +2020-05-21,Maui,Hawaii,15009,118,6 +2020-05-22,Maui,Hawaii,15009,117,6 +2020-05-23,Maui,Hawaii,15009,118,6 +2020-05-24,Maui,Hawaii,15009,118,6 +2020-05-25,Maui,Hawaii,15009,118,6 +2020-05-26,Maui,Hawaii,15009,118,6 +2020-05-27,Maui,Hawaii,15009,118,6 +2020-05-28,Maui,Hawaii,15009,118,6 +2020-05-29,Maui,Hawaii,15009,118,6 +2020-05-30,Maui,Hawaii,15009,119,6 +2020-05-31,Maui,Hawaii,15009,120,6 +2020-06-01,Maui,Hawaii,15009,120,6 +2020-06-02,Maui,Hawaii,15009,120,6 +2020-06-03,Maui,Hawaii,15009,119,6 +2020-06-04,Maui,Hawaii,15009,119,6 +2020-06-05,Maui,Hawaii,15009,120,6 +2020-06-06,Maui,Hawaii,15009,120,6 +2020-06-07,Maui,Hawaii,15009,120,6 +2020-06-08,Maui,Hawaii,15009,120,6 +2020-06-09,Maui,Hawaii,15009,120,6 +2020-06-10,Maui,Hawaii,15009,120,6 +2020-06-11,Maui,Hawaii,15009,120,6 +2020-06-12,Maui,Hawaii,15009,120,6 +2020-06-13,Maui,Hawaii,15009,120,6 +2020-06-14,Maui,Hawaii,15009,120,6 +2020-06-15,Maui,Hawaii,15009,120,6 +2020-06-16,Maui,Hawaii,15009,120,6 +2020-06-17,Maui,Hawaii,15009,120,6 +2020-06-18,Maui,Hawaii,15009,120,6 +2020-06-19,Maui,Hawaii,15009,121,6 +2020-06-20,Maui,Hawaii,15009,122,6 +2020-06-21,Maui,Hawaii,15009,122,6 +2020-06-22,Maui,Hawaii,15009,122,6 +2020-06-23,Maui,Hawaii,15009,122,6 +2020-06-24,Maui,Hawaii,15009,122,6 +2020-06-25,Maui,Hawaii,15009,122,6 +2020-06-26,Maui,Hawaii,15009,122,6 +2020-06-27,Maui,Hawaii,15009,122,6 +2020-06-28,Maui,Hawaii,15009,123,6 +2020-06-29,Maui,Hawaii,15009,122,6 +2020-06-30,Maui,Hawaii,15009,123,6 +2020-07-01,Maui,Hawaii,15009,125,6 +2020-07-02,Maui,Hawaii,15009,125,6 +2020-07-03,Maui,Hawaii,15009,127,6 +2020-07-04,Maui,Hawaii,15009,128,6 +2020-07-05,Maui,Hawaii,15009,128,6 +2020-07-06,Maui,Hawaii,15009,128,6 +2020-07-07,Maui,Hawaii,15009,128,6 +2020-07-08,Maui,Hawaii,15009,130,6 +2020-07-09,Maui,Hawaii,15009,130,6 +2020-03-13,Ada,Idaho,16001,1,0 +2020-03-14,Ada,Idaho,16001,2,0 +2020-03-15,Ada,Idaho,16001,2,0 +2020-03-16,Ada,Idaho,16001,2,0 +2020-03-17,Ada,Idaho,16001,3,0 +2020-03-18,Ada,Idaho,16001,3,0 +2020-03-19,Ada,Idaho,16001,3,0 +2020-03-20,Ada,Idaho,16001,4,0 +2020-03-21,Ada,Idaho,16001,11,0 +2020-03-22,Ada,Idaho,16001,13,0 +2020-03-23,Ada,Idaho,16001,15,0 +2020-03-24,Ada,Idaho,16001,22,0 +2020-03-25,Ada,Idaho,16001,37,0 +2020-03-26,Ada,Idaho,16001,54,0 +2020-03-27,Ada,Idaho,16001,76,0 +2020-03-28,Ada,Idaho,16001,88,1 +2020-03-29,Ada,Idaho,16001,113,2 +2020-03-30,Ada,Idaho,16001,151,3 +2020-03-31,Ada,Idaho,16001,195,3 +2020-04-01,Ada,Idaho,16001,226,3 +2020-04-02,Ada,Idaho,16001,307,3 +2020-04-03,Ada,Idaho,16001,351,3 +2020-04-04,Ada,Idaho,16001,385,3 +2020-04-05,Ada,Idaho,16001,402,3 +2020-04-06,Ada,Idaho,16001,419,3 +2020-04-07,Ada,Idaho,16001,438,3 +2020-04-08,Ada,Idaho,16001,447,5 +2020-04-09,Ada,Idaho,16001,496,6 +2020-04-10,Ada,Idaho,16001,516,6 +2020-04-11,Ada,Idaho,16001,521,6 +2020-04-12,Ada,Idaho,16001,521,6 +2020-04-13,Ada,Idaho,16001,539,9 +2020-04-14,Ada,Idaho,16001,557,9 +2020-04-15,Ada,Idaho,16001,567,9 +2020-04-16,Ada,Idaho,16001,576,9 +2020-04-17,Ada,Idaho,16001,593,9 +2020-04-18,Ada,Idaho,16001,598,10 +2020-04-19,Ada,Idaho,16001,598,10 +2020-04-20,Ada,Idaho,16001,616,12 +2020-04-21,Ada,Idaho,16001,622,12 +2020-04-22,Ada,Idaho,16001,630,14 +2020-04-23,Ada,Idaho,16001,635,14 +2020-04-24,Ada,Idaho,16001,642,14 +2020-04-25,Ada,Idaho,16001,650,15 +2020-04-26,Ada,Idaho,16001,650,15 +2020-04-27,Ada,Idaho,16001,661,15 +2020-04-28,Ada,Idaho,16001,662,16 +2020-04-29,Ada,Idaho,16001,671,16 +2020-04-30,Ada,Idaho,16001,681,16 +2020-05-01,Ada,Idaho,16001,689,16 +2020-05-02,Ada,Idaho,16001,705,17 +2020-05-03,Ada,Idaho,16001,705,17 +2020-05-04,Ada,Idaho,16001,710,17 +2020-05-05,Ada,Idaho,16001,713,19 +2020-05-06,Ada,Idaho,16001,717,19 +2020-05-07,Ada,Idaho,16001,721,19 +2020-05-08,Ada,Idaho,16001,731,19 +2020-05-09,Ada,Idaho,16001,733,19 +2020-05-10,Ada,Idaho,16001,733,19 +2020-05-11,Ada,Idaho,16001,739,21 +2020-05-12,Ada,Idaho,16001,744,21 +2020-05-13,Ada,Idaho,16001,754,21 +2020-05-14,Ada,Idaho,16001,759,22 +2020-05-15,Ada,Idaho,16001,770,22 +2020-05-16,Ada,Idaho,16001,773,22 +2020-05-17,Ada,Idaho,16001,773,22 +2020-05-18,Ada,Idaho,16001,780,22 +2020-05-19,Ada,Idaho,16001,783,23 +2020-05-20,Ada,Idaho,16001,792,23 +2020-05-21,Ada,Idaho,16001,791,23 +2020-05-22,Ada,Idaho,16001,794,23 +2020-05-23,Ada,Idaho,16001,796,23 +2020-05-24,Ada,Idaho,16001,796,23 +2020-05-25,Ada,Idaho,16001,798,23 +2020-05-26,Ada,Idaho,16001,798,22 +2020-05-27,Ada,Idaho,16001,800,22 +2020-05-28,Ada,Idaho,16001,803,22 +2020-05-29,Ada,Idaho,16001,805,22 +2020-05-30,Ada,Idaho,16001,812,22 +2020-05-31,Ada,Idaho,16001,812,22 +2020-06-01,Ada,Idaho,16001,818,22 +2020-06-02,Ada,Idaho,16001,818,22 +2020-06-03,Ada,Idaho,16001,823,22 +2020-06-04,Ada,Idaho,16001,832,22 +2020-06-05,Ada,Idaho,16001,833,22 +2020-06-06,Ada,Idaho,16001,838,22 +2020-06-07,Ada,Idaho,16001,838,22 +2020-06-08,Ada,Idaho,16001,844,22 +2020-06-09,Ada,Idaho,16001,848,22 +2020-06-10,Ada,Idaho,16001,854,22 +2020-06-11,Ada,Idaho,16001,866,22 +2020-06-12,Ada,Idaho,16001,877,22 +2020-06-13,Ada,Idaho,16001,892,22 +2020-06-14,Ada,Idaho,16001,892,22 +2020-06-15,Ada,Idaho,16001,915,22 +2020-06-16,Ada,Idaho,16001,947,22 +2020-06-17,Ada,Idaho,16001,986,22 +2020-06-18,Ada,Idaho,16001,1043,22 +2020-06-19,Ada,Idaho,16001,1100,22 +2020-06-20,Ada,Idaho,16001,1166,22 +2020-06-21,Ada,Idaho,16001,1166,22 +2020-06-22,Ada,Idaho,16001,1307,22 +2020-06-23,Ada,Idaho,16001,1383,22 +2020-06-24,Ada,Idaho,16001,1484,23 +2020-06-25,Ada,Idaho,16001,1585,23 +2020-06-26,Ada,Idaho,16001,1752,23 +2020-06-27,Ada,Idaho,16001,1841,23 +2020-06-28,Ada,Idaho,16001,1841,23 +2020-06-29,Ada,Idaho,16001,2040,23 +2020-06-30,Ada,Idaho,16001,2169,23 +2020-07-01,Ada,Idaho,16001,2288,23 +2020-07-02,Ada,Idaho,16001,2367,23 +2020-07-03,Ada,Idaho,16001,2507,23 +2020-07-04,Ada,Idaho,16001,2631,23 +2020-07-05,Ada,Idaho,16001,2835,23 +2020-07-06,Ada,Idaho,16001,3073,23 +2020-07-07,Ada,Idaho,16001,3268,23 +2020-07-08,Ada,Idaho,16001,3431,23 +2020-07-09,Ada,Idaho,16001,3642,25 +2020-03-31,Adams,Idaho,16003,1,0 +2020-04-01,Adams,Idaho,16003,1,0 +2020-04-02,Adams,Idaho,16003,1,0 +2020-04-03,Adams,Idaho,16003,1,0 +2020-04-04,Adams,Idaho,16003,1,0 +2020-04-05,Adams,Idaho,16003,1,0 +2020-04-06,Adams,Idaho,16003,1,0 +2020-04-07,Adams,Idaho,16003,1,0 +2020-04-08,Adams,Idaho,16003,1,0 +2020-04-09,Adams,Idaho,16003,1,0 +2020-04-10,Adams,Idaho,16003,1,0 +2020-04-11,Adams,Idaho,16003,1,0 +2020-04-12,Adams,Idaho,16003,1,0 +2020-04-13,Adams,Idaho,16003,1,0 +2020-04-14,Adams,Idaho,16003,1,0 +2020-04-15,Adams,Idaho,16003,1,0 +2020-04-16,Adams,Idaho,16003,1,0 +2020-04-17,Adams,Idaho,16003,1,0 +2020-04-18,Adams,Idaho,16003,1,0 +2020-04-19,Adams,Idaho,16003,1,0 +2020-04-20,Adams,Idaho,16003,3,0 +2020-04-21,Adams,Idaho,16003,3,0 +2020-04-22,Adams,Idaho,16003,3,0 +2020-04-23,Adams,Idaho,16003,3,0 +2020-04-24,Adams,Idaho,16003,3,0 +2020-04-25,Adams,Idaho,16003,3,0 +2020-04-26,Adams,Idaho,16003,3,0 +2020-04-27,Adams,Idaho,16003,3,0 +2020-04-28,Adams,Idaho,16003,3,0 +2020-04-29,Adams,Idaho,16003,3,0 +2020-04-30,Adams,Idaho,16003,3,0 +2020-05-01,Adams,Idaho,16003,3,0 +2020-05-02,Adams,Idaho,16003,3,0 +2020-05-03,Adams,Idaho,16003,3,0 +2020-05-04,Adams,Idaho,16003,3,0 +2020-05-05,Adams,Idaho,16003,3,0 +2020-05-06,Adams,Idaho,16003,3,0 +2020-05-07,Adams,Idaho,16003,3,0 +2020-05-08,Adams,Idaho,16003,3,0 +2020-05-09,Adams,Idaho,16003,3,0 +2020-05-10,Adams,Idaho,16003,3,0 +2020-05-11,Adams,Idaho,16003,3,0 +2020-05-12,Adams,Idaho,16003,3,0 +2020-05-13,Adams,Idaho,16003,3,0 +2020-05-14,Adams,Idaho,16003,3,0 +2020-05-15,Adams,Idaho,16003,3,0 +2020-05-16,Adams,Idaho,16003,3,0 +2020-05-17,Adams,Idaho,16003,3,0 +2020-05-18,Adams,Idaho,16003,3,0 +2020-05-19,Adams,Idaho,16003,3,0 +2020-05-20,Adams,Idaho,16003,3,0 +2020-05-21,Adams,Idaho,16003,3,0 +2020-05-22,Adams,Idaho,16003,3,0 +2020-05-23,Adams,Idaho,16003,3,0 +2020-05-24,Adams,Idaho,16003,3,0 +2020-05-25,Adams,Idaho,16003,3,0 +2020-05-26,Adams,Idaho,16003,3,0 +2020-05-27,Adams,Idaho,16003,3,0 +2020-05-28,Adams,Idaho,16003,3,0 +2020-05-29,Adams,Idaho,16003,3,0 +2020-05-30,Adams,Idaho,16003,3,0 +2020-05-31,Adams,Idaho,16003,3,0 +2020-06-01,Adams,Idaho,16003,3,0 +2020-06-02,Adams,Idaho,16003,3,0 +2020-06-03,Adams,Idaho,16003,3,0 +2020-06-04,Adams,Idaho,16003,3,0 +2020-06-05,Adams,Idaho,16003,3,0 +2020-06-06,Adams,Idaho,16003,3,0 +2020-06-07,Adams,Idaho,16003,3,0 +2020-06-08,Adams,Idaho,16003,3,0 +2020-06-09,Adams,Idaho,16003,3,0 +2020-06-10,Adams,Idaho,16003,3,0 +2020-06-11,Adams,Idaho,16003,3,0 +2020-06-12,Adams,Idaho,16003,4,0 +2020-06-13,Adams,Idaho,16003,4,0 +2020-06-14,Adams,Idaho,16003,4,0 +2020-06-15,Adams,Idaho,16003,6,0 +2020-06-16,Adams,Idaho,16003,8,0 +2020-06-17,Adams,Idaho,16003,9,0 +2020-06-18,Adams,Idaho,16003,9,0 +2020-06-19,Adams,Idaho,16003,9,0 +2020-06-20,Adams,Idaho,16003,9,0 +2020-06-21,Adams,Idaho,16003,9,0 +2020-06-22,Adams,Idaho,16003,10,0 +2020-06-23,Adams,Idaho,16003,10,0 +2020-06-24,Adams,Idaho,16003,10,0 +2020-06-25,Adams,Idaho,16003,10,0 +2020-06-26,Adams,Idaho,16003,10,0 +2020-06-27,Adams,Idaho,16003,10,0 +2020-06-28,Adams,Idaho,16003,10,0 +2020-06-29,Adams,Idaho,16003,10,0 +2020-06-30,Adams,Idaho,16003,11,0 +2020-07-01,Adams,Idaho,16003,11,0 +2020-07-02,Adams,Idaho,16003,11,0 +2020-07-03,Adams,Idaho,16003,11,0 +2020-07-04,Adams,Idaho,16003,11,0 +2020-07-05,Adams,Idaho,16003,11,0 +2020-07-06,Adams,Idaho,16003,12,0 +2020-07-07,Adams,Idaho,16003,12,0 +2020-07-08,Adams,Idaho,16003,12,0 +2020-07-09,Adams,Idaho,16003,12,0 +2020-03-24,Bannock,Idaho,16005,2,0 +2020-03-25,Bannock,Idaho,16005,3,0 +2020-03-26,Bannock,Idaho,16005,2,0 +2020-03-27,Bannock,Idaho,16005,3,0 +2020-03-28,Bannock,Idaho,16005,3,0 +2020-03-29,Bannock,Idaho,16005,3,0 +2020-03-30,Bannock,Idaho,16005,3,0 +2020-03-31,Bannock,Idaho,16005,4,0 +2020-04-01,Bannock,Idaho,16005,4,0 +2020-04-02,Bannock,Idaho,16005,4,0 +2020-04-03,Bannock,Idaho,16005,5,0 +2020-04-04,Bannock,Idaho,16005,5,0 +2020-04-05,Bannock,Idaho,16005,5,0 +2020-04-06,Bannock,Idaho,16005,5,0 +2020-04-07,Bannock,Idaho,16005,5,0 +2020-04-08,Bannock,Idaho,16005,5,0 +2020-04-09,Bannock,Idaho,16005,5,0 +2020-04-10,Bannock,Idaho,16005,6,0 +2020-04-11,Bannock,Idaho,16005,6,0 +2020-04-12,Bannock,Idaho,16005,6,0 +2020-04-13,Bannock,Idaho,16005,6,0 +2020-04-14,Bannock,Idaho,16005,8,0 +2020-04-15,Bannock,Idaho,16005,8,0 +2020-04-16,Bannock,Idaho,16005,8,0 +2020-04-17,Bannock,Idaho,16005,8,0 +2020-04-18,Bannock,Idaho,16005,8,0 +2020-04-19,Bannock,Idaho,16005,8,0 +2020-04-20,Bannock,Idaho,16005,8,0 +2020-04-21,Bannock,Idaho,16005,8,0 +2020-04-22,Bannock,Idaho,16005,8,0 +2020-04-23,Bannock,Idaho,16005,8,0 +2020-04-24,Bannock,Idaho,16005,8,0 +2020-04-25,Bannock,Idaho,16005,8,0 +2020-04-26,Bannock,Idaho,16005,8,0 +2020-04-27,Bannock,Idaho,16005,8,0 +2020-04-28,Bannock,Idaho,16005,10,0 +2020-04-29,Bannock,Idaho,16005,11,0 +2020-04-30,Bannock,Idaho,16005,11,0 +2020-05-01,Bannock,Idaho,16005,11,0 +2020-05-02,Bannock,Idaho,16005,11,0 +2020-05-03,Bannock,Idaho,16005,11,0 +2020-05-04,Bannock,Idaho,16005,11,0 +2020-05-05,Bannock,Idaho,16005,11,0 +2020-05-06,Bannock,Idaho,16005,12,0 +2020-05-07,Bannock,Idaho,16005,12,0 +2020-05-08,Bannock,Idaho,16005,12,0 +2020-05-09,Bannock,Idaho,16005,12,0 +2020-05-10,Bannock,Idaho,16005,12,0 +2020-05-11,Bannock,Idaho,16005,13,0 +2020-05-12,Bannock,Idaho,16005,13,0 +2020-05-13,Bannock,Idaho,16005,13,0 +2020-05-14,Bannock,Idaho,16005,13,0 +2020-05-15,Bannock,Idaho,16005,14,0 +2020-05-16,Bannock,Idaho,16005,14,0 +2020-05-17,Bannock,Idaho,16005,14,0 +2020-05-18,Bannock,Idaho,16005,16,0 +2020-05-19,Bannock,Idaho,16005,16,0 +2020-05-20,Bannock,Idaho,16005,16,0 +2020-05-21,Bannock,Idaho,16005,16,0 +2020-05-22,Bannock,Idaho,16005,17,0 +2020-05-23,Bannock,Idaho,16005,18,0 +2020-05-24,Bannock,Idaho,16005,20,0 +2020-05-25,Bannock,Idaho,16005,20,0 +2020-05-26,Bannock,Idaho,16005,20,0 +2020-05-27,Bannock,Idaho,16005,20,0 +2020-05-28,Bannock,Idaho,16005,24,0 +2020-05-29,Bannock,Idaho,16005,27,0 +2020-05-30,Bannock,Idaho,16005,28,0 +2020-05-31,Bannock,Idaho,16005,31,0 +2020-06-01,Bannock,Idaho,16005,32,1 +2020-06-02,Bannock,Idaho,16005,34,1 +2020-06-03,Bannock,Idaho,16005,37,1 +2020-06-04,Bannock,Idaho,16005,38,1 +2020-06-05,Bannock,Idaho,16005,45,1 +2020-06-06,Bannock,Idaho,16005,47,1 +2020-06-07,Bannock,Idaho,16005,53,1 +2020-06-08,Bannock,Idaho,16005,53,1 +2020-06-09,Bannock,Idaho,16005,53,1 +2020-06-10,Bannock,Idaho,16005,53,1 +2020-06-11,Bannock,Idaho,16005,59,1 +2020-06-12,Bannock,Idaho,16005,59,1 +2020-06-13,Bannock,Idaho,16005,63,1 +2020-06-14,Bannock,Idaho,16005,67,1 +2020-06-15,Bannock,Idaho,16005,67,1 +2020-06-16,Bannock,Idaho,16005,67,1 +2020-06-17,Bannock,Idaho,16005,69,1 +2020-06-18,Bannock,Idaho,16005,74,1 +2020-06-19,Bannock,Idaho,16005,77,1 +2020-06-20,Bannock,Idaho,16005,79,1 +2020-06-21,Bannock,Idaho,16005,91,1 +2020-06-22,Bannock,Idaho,16005,91,1 +2020-06-23,Bannock,Idaho,16005,91,1 +2020-06-24,Bannock,Idaho,16005,91,1 +2020-06-25,Bannock,Idaho,16005,91,1 +2020-06-26,Bannock,Idaho,16005,95,1 +2020-06-27,Bannock,Idaho,16005,95,1 +2020-06-28,Bannock,Idaho,16005,101,1 +2020-06-29,Bannock,Idaho,16005,101,1 +2020-06-30,Bannock,Idaho,16005,102,1 +2020-07-01,Bannock,Idaho,16005,104,1 +2020-07-02,Bannock,Idaho,16005,119,1 +2020-07-03,Bannock,Idaho,16005,127,1 +2020-07-04,Bannock,Idaho,16005,127,1 +2020-07-05,Bannock,Idaho,16005,127,1 +2020-07-06,Bannock,Idaho,16005,135,1 +2020-07-07,Bannock,Idaho,16005,122,1 +2020-07-08,Bannock,Idaho,16005,129,1 +2020-07-09,Bannock,Idaho,16005,157,1 +2020-06-30,Bear Lake,Idaho,16007,1,0 +2020-07-01,Bear Lake,Idaho,16007,2,0 +2020-07-02,Bear Lake,Idaho,16007,2,0 +2020-07-03,Bear Lake,Idaho,16007,2,0 +2020-07-04,Bear Lake,Idaho,16007,2,0 +2020-07-05,Bear Lake,Idaho,16007,2,0 +2020-07-06,Bear Lake,Idaho,16007,2,0 +2020-07-07,Bear Lake,Idaho,16007,2,0 +2020-07-08,Bear Lake,Idaho,16007,2,0 +2020-07-09,Bear Lake,Idaho,16007,2,0 +2020-05-25,Benewah,Idaho,16009,1,0 +2020-05-26,Benewah,Idaho,16009,3,0 +2020-05-27,Benewah,Idaho,16009,7,0 +2020-05-28,Benewah,Idaho,16009,9,0 +2020-05-29,Benewah,Idaho,16009,8,0 +2020-05-30,Benewah,Idaho,16009,8,0 +2020-05-31,Benewah,Idaho,16009,8,0 +2020-06-01,Benewah,Idaho,16009,12,0 +2020-06-02,Benewah,Idaho,16009,12,0 +2020-06-03,Benewah,Idaho,16009,14,0 +2020-06-04,Benewah,Idaho,16009,17,0 +2020-06-05,Benewah,Idaho,16009,17,0 +2020-06-06,Benewah,Idaho,16009,18,0 +2020-06-07,Benewah,Idaho,16009,18,0 +2020-06-08,Benewah,Idaho,16009,18,0 +2020-06-09,Benewah,Idaho,16009,17,0 +2020-06-10,Benewah,Idaho,16009,19,0 +2020-06-11,Benewah,Idaho,16009,19,0 +2020-06-12,Benewah,Idaho,16009,19,0 +2020-06-13,Benewah,Idaho,16009,19,0 +2020-06-14,Benewah,Idaho,16009,19,0 +2020-06-15,Benewah,Idaho,16009,18,0 +2020-06-16,Benewah,Idaho,16009,19,0 +2020-06-17,Benewah,Idaho,16009,20,0 +2020-06-18,Benewah,Idaho,16009,20,0 +2020-06-19,Benewah,Idaho,16009,21,0 +2020-06-20,Benewah,Idaho,16009,21,0 +2020-06-21,Benewah,Idaho,16009,21,0 +2020-06-22,Benewah,Idaho,16009,21,0 +2020-06-23,Benewah,Idaho,16009,21,0 +2020-06-24,Benewah,Idaho,16009,21,0 +2020-06-25,Benewah,Idaho,16009,21,0 +2020-06-26,Benewah,Idaho,16009,21,0 +2020-06-27,Benewah,Idaho,16009,21,0 +2020-06-28,Benewah,Idaho,16009,21,0 +2020-06-29,Benewah,Idaho,16009,21,0 +2020-06-30,Benewah,Idaho,16009,21,0 +2020-07-01,Benewah,Idaho,16009,21,0 +2020-07-02,Benewah,Idaho,16009,21,0 +2020-07-03,Benewah,Idaho,16009,21,0 +2020-07-04,Benewah,Idaho,16009,23,0 +2020-07-05,Benewah,Idaho,16009,23,0 +2020-07-06,Benewah,Idaho,16009,23,0 +2020-07-07,Benewah,Idaho,16009,23,0 +2020-07-08,Benewah,Idaho,16009,23,0 +2020-07-09,Benewah,Idaho,16009,23,0 +2020-03-20,Bingham,Idaho,16011,1,0 +2020-03-21,Bingham,Idaho,16011,1,0 +2020-03-22,Bingham,Idaho,16011,1,0 +2020-03-23,Bingham,Idaho,16011,1,0 +2020-03-24,Bingham,Idaho,16011,1,0 +2020-03-25,Bingham,Idaho,16011,1,0 +2020-03-26,Bingham,Idaho,16011,1,0 +2020-03-27,Bingham,Idaho,16011,1,0 +2020-03-28,Bingham,Idaho,16011,1,0 +2020-03-29,Bingham,Idaho,16011,1,0 +2020-03-30,Bingham,Idaho,16011,1,0 +2020-03-31,Bingham,Idaho,16011,2,0 +2020-04-01,Bingham,Idaho,16011,2,0 +2020-04-02,Bingham,Idaho,16011,2,0 +2020-04-03,Bingham,Idaho,16011,2,0 +2020-04-04,Bingham,Idaho,16011,2,0 +2020-04-05,Bingham,Idaho,16011,2,0 +2020-04-06,Bingham,Idaho,16011,2,0 +2020-04-07,Bingham,Idaho,16011,2,0 +2020-04-08,Bingham,Idaho,16011,2,0 +2020-04-09,Bingham,Idaho,16011,2,0 +2020-04-10,Bingham,Idaho,16011,2,0 +2020-04-11,Bingham,Idaho,16011,2,0 +2020-04-12,Bingham,Idaho,16011,2,0 +2020-04-13,Bingham,Idaho,16011,2,0 +2020-04-14,Bingham,Idaho,16011,2,0 +2020-04-15,Bingham,Idaho,16011,2,0 +2020-04-16,Bingham,Idaho,16011,3,0 +2020-04-17,Bingham,Idaho,16011,3,0 +2020-04-18,Bingham,Idaho,16011,3,0 +2020-04-19,Bingham,Idaho,16011,3,0 +2020-04-20,Bingham,Idaho,16011,3,0 +2020-04-21,Bingham,Idaho,16011,3,0 +2020-04-22,Bingham,Idaho,16011,3,0 +2020-04-23,Bingham,Idaho,16011,3,0 +2020-04-24,Bingham,Idaho,16011,3,0 +2020-04-25,Bingham,Idaho,16011,3,0 +2020-04-26,Bingham,Idaho,16011,3,0 +2020-04-27,Bingham,Idaho,16011,3,0 +2020-04-28,Bingham,Idaho,16011,3,0 +2020-04-29,Bingham,Idaho,16011,4,0 +2020-04-30,Bingham,Idaho,16011,4,0 +2020-05-01,Bingham,Idaho,16011,4,0 +2020-05-02,Bingham,Idaho,16011,4,0 +2020-05-03,Bingham,Idaho,16011,4,0 +2020-05-04,Bingham,Idaho,16011,4,0 +2020-05-05,Bingham,Idaho,16011,4,0 +2020-05-06,Bingham,Idaho,16011,4,0 +2020-05-07,Bingham,Idaho,16011,4,0 +2020-05-08,Bingham,Idaho,16011,4,0 +2020-05-09,Bingham,Idaho,16011,4,0 +2020-05-10,Bingham,Idaho,16011,4,0 +2020-05-11,Bingham,Idaho,16011,4,0 +2020-05-12,Bingham,Idaho,16011,4,0 +2020-05-13,Bingham,Idaho,16011,6,0 +2020-05-14,Bingham,Idaho,16011,6,0 +2020-05-15,Bingham,Idaho,16011,6,0 +2020-05-16,Bingham,Idaho,16011,6,0 +2020-05-17,Bingham,Idaho,16011,6,0 +2020-05-18,Bingham,Idaho,16011,6,0 +2020-05-19,Bingham,Idaho,16011,6,0 +2020-05-20,Bingham,Idaho,16011,6,0 +2020-05-21,Bingham,Idaho,16011,6,0 +2020-05-22,Bingham,Idaho,16011,6,0 +2020-05-23,Bingham,Idaho,16011,6,0 +2020-05-24,Bingham,Idaho,16011,6,0 +2020-05-25,Bingham,Idaho,16011,6,0 +2020-05-26,Bingham,Idaho,16011,6,0 +2020-05-27,Bingham,Idaho,16011,6,0 +2020-05-28,Bingham,Idaho,16011,6,0 +2020-05-29,Bingham,Idaho,16011,6,0 +2020-05-30,Bingham,Idaho,16011,6,0 +2020-05-31,Bingham,Idaho,16011,7,0 +2020-06-01,Bingham,Idaho,16011,8,0 +2020-06-02,Bingham,Idaho,16011,8,0 +2020-06-03,Bingham,Idaho,16011,11,0 +2020-06-04,Bingham,Idaho,16011,12,0 +2020-06-05,Bingham,Idaho,16011,20,0 +2020-06-06,Bingham,Idaho,16011,20,0 +2020-06-07,Bingham,Idaho,16011,23,0 +2020-06-08,Bingham,Idaho,16011,23,0 +2020-06-09,Bingham,Idaho,16011,23,0 +2020-06-10,Bingham,Idaho,16011,23,0 +2020-06-11,Bingham,Idaho,16011,23,0 +2020-06-12,Bingham,Idaho,16011,23,0 +2020-06-13,Bingham,Idaho,16011,24,0 +2020-06-14,Bingham,Idaho,16011,26,0 +2020-06-15,Bingham,Idaho,16011,26,0 +2020-06-16,Bingham,Idaho,16011,26,0 +2020-06-17,Bingham,Idaho,16011,26,0 +2020-06-18,Bingham,Idaho,16011,27,0 +2020-06-19,Bingham,Idaho,16011,27,0 +2020-06-20,Bingham,Idaho,16011,30,0 +2020-06-21,Bingham,Idaho,16011,30,0 +2020-06-22,Bingham,Idaho,16011,32,0 +2020-06-23,Bingham,Idaho,16011,32,0 +2020-06-24,Bingham,Idaho,16011,33,0 +2020-06-25,Bingham,Idaho,16011,33,0 +2020-06-26,Bingham,Idaho,16011,33,0 +2020-06-27,Bingham,Idaho,16011,36,0 +2020-06-28,Bingham,Idaho,16011,40,0 +2020-06-29,Bingham,Idaho,16011,40,0 +2020-06-30,Bingham,Idaho,16011,40,0 +2020-07-01,Bingham,Idaho,16011,43,0 +2020-07-02,Bingham,Idaho,16011,61,1 +2020-07-03,Bingham,Idaho,16011,62,1 +2020-07-04,Bingham,Idaho,16011,62,1 +2020-07-05,Bingham,Idaho,16011,62,1 +2020-07-06,Bingham,Idaho,16011,71,1 +2020-07-07,Bingham,Idaho,16011,58,1 +2020-07-08,Bingham,Idaho,16011,62,1 +2020-07-09,Bingham,Idaho,16011,92,1 +2020-03-14,Blaine,Idaho,16013,2,0 +2020-03-15,Blaine,Idaho,16013,2,0 +2020-03-16,Blaine,Idaho,16013,2,0 +2020-03-17,Blaine,Idaho,16013,4,0 +2020-03-18,Blaine,Idaho,16013,5,0 +2020-03-19,Blaine,Idaho,16013,17,0 +2020-03-20,Blaine,Idaho,16013,19,0 +2020-03-21,Blaine,Idaho,16013,21,0 +2020-03-22,Blaine,Idaho,16013,21,0 +2020-03-23,Blaine,Idaho,16013,21,0 +2020-03-24,Blaine,Idaho,16013,33,0 +2020-03-25,Blaine,Idaho,16013,52,0 +2020-03-26,Blaine,Idaho,16013,82,2 +2020-03-27,Blaine,Idaho,16013,99,2 +2020-03-28,Blaine,Idaho,16013,114,2 +2020-03-29,Blaine,Idaho,16013,115,2 +2020-03-30,Blaine,Idaho,16013,148,2 +2020-03-31,Blaine,Idaho,16013,192,2 +2020-04-01,Blaine,Idaho,16013,265,2 +2020-04-02,Blaine,Idaho,16013,351,2 +2020-04-03,Blaine,Idaho,16013,405,2 +2020-04-04,Blaine,Idaho,16013,410,2 +2020-04-05,Blaine,Idaho,16013,410,2 +2020-04-06,Blaine,Idaho,16013,423,2 +2020-04-07,Blaine,Idaho,16013,428,4 +2020-04-08,Blaine,Idaho,16013,428,5 +2020-04-09,Blaine,Idaho,16013,446,5 +2020-04-10,Blaine,Idaho,16013,453,5 +2020-04-11,Blaine,Idaho,16013,455,5 +2020-04-12,Blaine,Idaho,16013,455,5 +2020-04-13,Blaine,Idaho,16013,463,5 +2020-04-14,Blaine,Idaho,16013,463,5 +2020-04-15,Blaine,Idaho,16013,469,5 +2020-04-16,Blaine,Idaho,16013,473,5 +2020-04-17,Blaine,Idaho,16013,475,5 +2020-04-18,Blaine,Idaho,16013,475,5 +2020-04-19,Blaine,Idaho,16013,476,5 +2020-04-20,Blaine,Idaho,16013,478,5 +2020-04-21,Blaine,Idaho,16013,480,5 +2020-04-22,Blaine,Idaho,16013,484,5 +2020-04-23,Blaine,Idaho,16013,485,5 +2020-04-24,Blaine,Idaho,16013,489,5 +2020-04-25,Blaine,Idaho,16013,490,5 +2020-04-26,Blaine,Idaho,16013,492,5 +2020-04-27,Blaine,Idaho,16013,493,5 +2020-04-28,Blaine,Idaho,16013,497,5 +2020-04-29,Blaine,Idaho,16013,498,5 +2020-04-30,Blaine,Idaho,16013,498,5 +2020-05-01,Blaine,Idaho,16013,497,5 +2020-05-02,Blaine,Idaho,16013,497,5 +2020-05-03,Blaine,Idaho,16013,497,5 +2020-05-04,Blaine,Idaho,16013,498,5 +2020-05-05,Blaine,Idaho,16013,499,5 +2020-05-06,Blaine,Idaho,16013,499,5 +2020-05-07,Blaine,Idaho,16013,499,5 +2020-05-08,Blaine,Idaho,16013,499,5 +2020-05-09,Blaine,Idaho,16013,503,5 +2020-05-10,Blaine,Idaho,16013,503,5 +2020-05-11,Blaine,Idaho,16013,506,5 +2020-05-12,Blaine,Idaho,16013,506,5 +2020-05-13,Blaine,Idaho,16013,507,5 +2020-05-14,Blaine,Idaho,16013,507,5 +2020-05-15,Blaine,Idaho,16013,508,5 +2020-05-16,Blaine,Idaho,16013,508,5 +2020-05-17,Blaine,Idaho,16013,508,5 +2020-05-18,Blaine,Idaho,16013,508,5 +2020-05-19,Blaine,Idaho,16013,509,5 +2020-05-20,Blaine,Idaho,16013,509,5 +2020-05-21,Blaine,Idaho,16013,510,5 +2020-05-22,Blaine,Idaho,16013,510,5 +2020-05-23,Blaine,Idaho,16013,510,5 +2020-05-24,Blaine,Idaho,16013,510,5 +2020-05-25,Blaine,Idaho,16013,510,5 +2020-05-26,Blaine,Idaho,16013,510,5 +2020-05-27,Blaine,Idaho,16013,512,5 +2020-05-28,Blaine,Idaho,16013,512,5 +2020-05-29,Blaine,Idaho,16013,512,5 +2020-05-30,Blaine,Idaho,16013,512,5 +2020-05-31,Blaine,Idaho,16013,512,5 +2020-06-01,Blaine,Idaho,16013,512,5 +2020-06-02,Blaine,Idaho,16013,512,5 +2020-06-03,Blaine,Idaho,16013,514,5 +2020-06-04,Blaine,Idaho,16013,514,5 +2020-06-05,Blaine,Idaho,16013,514,5 +2020-06-06,Blaine,Idaho,16013,514,5 +2020-06-07,Blaine,Idaho,16013,514,5 +2020-06-08,Blaine,Idaho,16013,514,5 +2020-06-09,Blaine,Idaho,16013,514,5 +2020-06-10,Blaine,Idaho,16013,515,5 +2020-06-11,Blaine,Idaho,16013,515,5 +2020-06-12,Blaine,Idaho,16013,515,5 +2020-06-13,Blaine,Idaho,16013,515,5 +2020-06-14,Blaine,Idaho,16013,515,5 +2020-06-15,Blaine,Idaho,16013,515,5 +2020-06-16,Blaine,Idaho,16013,515,5 +2020-06-17,Blaine,Idaho,16013,515,5 +2020-06-18,Blaine,Idaho,16013,517,5 +2020-06-19,Blaine,Idaho,16013,518,5 +2020-06-20,Blaine,Idaho,16013,519,5 +2020-06-21,Blaine,Idaho,16013,519,5 +2020-06-22,Blaine,Idaho,16013,520,5 +2020-06-23,Blaine,Idaho,16013,523,5 +2020-06-24,Blaine,Idaho,16013,524,5 +2020-06-25,Blaine,Idaho,16013,528,5 +2020-06-26,Blaine,Idaho,16013,529,5 +2020-06-27,Blaine,Idaho,16013,528,5 +2020-06-28,Blaine,Idaho,16013,528,5 +2020-06-29,Blaine,Idaho,16013,532,5 +2020-06-30,Blaine,Idaho,16013,535,5 +2020-07-01,Blaine,Idaho,16013,535,5 +2020-07-02,Blaine,Idaho,16013,538,5 +2020-07-03,Blaine,Idaho,16013,539,5 +2020-07-04,Blaine,Idaho,16013,539,5 +2020-07-05,Blaine,Idaho,16013,539,5 +2020-07-06,Blaine,Idaho,16013,542,5 +2020-07-07,Blaine,Idaho,16013,543,5 +2020-07-08,Blaine,Idaho,16013,544,5 +2020-07-09,Blaine,Idaho,16013,546,5 +2020-06-25,Boise,Idaho,16015,1,0 +2020-06-26,Boise,Idaho,16015,1,0 +2020-06-27,Boise,Idaho,16015,2,0 +2020-06-28,Boise,Idaho,16015,2,0 +2020-06-29,Boise,Idaho,16015,4,0 +2020-06-30,Boise,Idaho,16015,4,0 +2020-07-01,Boise,Idaho,16015,4,0 +2020-07-02,Boise,Idaho,16015,4,0 +2020-07-03,Boise,Idaho,16015,4,0 +2020-07-04,Boise,Idaho,16015,4,0 +2020-07-05,Boise,Idaho,16015,5,0 +2020-07-06,Boise,Idaho,16015,5,0 +2020-07-07,Boise,Idaho,16015,5,0 +2020-07-08,Boise,Idaho,16015,7,0 +2020-07-09,Boise,Idaho,16015,7,0 +2020-03-30,Bonner,Idaho,16017,1,0 +2020-03-31,Bonner,Idaho,16017,1,0 +2020-04-01,Bonner,Idaho,16017,1,0 +2020-04-02,Bonner,Idaho,16017,1,0 +2020-04-03,Bonner,Idaho,16017,2,0 +2020-04-04,Bonner,Idaho,16017,2,0 +2020-04-05,Bonner,Idaho,16017,2,0 +2020-04-06,Bonner,Idaho,16017,3,0 +2020-04-07,Bonner,Idaho,16017,3,0 +2020-04-08,Bonner,Idaho,16017,3,0 +2020-04-09,Bonner,Idaho,16017,3,0 +2020-04-10,Bonner,Idaho,16017,4,0 +2020-04-11,Bonner,Idaho,16017,4,0 +2020-04-12,Bonner,Idaho,16017,4,0 +2020-04-13,Bonner,Idaho,16017,4,0 +2020-04-14,Bonner,Idaho,16017,4,0 +2020-04-15,Bonner,Idaho,16017,4,0 +2020-04-16,Bonner,Idaho,16017,4,0 +2020-04-17,Bonner,Idaho,16017,4,0 +2020-04-18,Bonner,Idaho,16017,4,0 +2020-04-19,Bonner,Idaho,16017,4,0 +2020-04-20,Bonner,Idaho,16017,4,0 +2020-04-21,Bonner,Idaho,16017,4,0 +2020-04-22,Bonner,Idaho,16017,4,0 +2020-04-23,Bonner,Idaho,16017,4,0 +2020-04-24,Bonner,Idaho,16017,4,0 +2020-04-25,Bonner,Idaho,16017,4,0 +2020-04-26,Bonner,Idaho,16017,4,0 +2020-04-27,Bonner,Idaho,16017,4,0 +2020-04-28,Bonner,Idaho,16017,4,0 +2020-04-29,Bonner,Idaho,16017,4,0 +2020-04-30,Bonner,Idaho,16017,4,0 +2020-05-01,Bonner,Idaho,16017,4,0 +2020-05-02,Bonner,Idaho,16017,4,0 +2020-05-03,Bonner,Idaho,16017,4,0 +2020-05-04,Bonner,Idaho,16017,4,0 +2020-05-05,Bonner,Idaho,16017,4,0 +2020-05-06,Bonner,Idaho,16017,4,0 +2020-05-07,Bonner,Idaho,16017,4,0 +2020-05-08,Bonner,Idaho,16017,4,0 +2020-05-09,Bonner,Idaho,16017,4,0 +2020-05-10,Bonner,Idaho,16017,4,0 +2020-05-11,Bonner,Idaho,16017,4,0 +2020-05-12,Bonner,Idaho,16017,4,0 +2020-05-13,Bonner,Idaho,16017,4,0 +2020-05-14,Bonner,Idaho,16017,4,0 +2020-05-15,Bonner,Idaho,16017,4,0 +2020-05-16,Bonner,Idaho,16017,4,0 +2020-05-17,Bonner,Idaho,16017,4,0 +2020-05-18,Bonner,Idaho,16017,4,0 +2020-05-19,Bonner,Idaho,16017,4,0 +2020-05-20,Bonner,Idaho,16017,4,0 +2020-05-21,Bonner,Idaho,16017,4,0 +2020-05-22,Bonner,Idaho,16017,4,0 +2020-05-23,Bonner,Idaho,16017,4,0 +2020-05-24,Bonner,Idaho,16017,4,0 +2020-05-25,Bonner,Idaho,16017,4,0 +2020-05-26,Bonner,Idaho,16017,4,0 +2020-05-27,Bonner,Idaho,16017,4,0 +2020-05-28,Bonner,Idaho,16017,4,0 +2020-05-29,Bonner,Idaho,16017,6,0 +2020-05-30,Bonner,Idaho,16017,6,0 +2020-05-31,Bonner,Idaho,16017,6,0 +2020-06-01,Bonner,Idaho,16017,6,0 +2020-06-02,Bonner,Idaho,16017,6,0 +2020-06-03,Bonner,Idaho,16017,6,0 +2020-06-04,Bonner,Idaho,16017,6,0 +2020-06-05,Bonner,Idaho,16017,6,0 +2020-06-06,Bonner,Idaho,16017,6,0 +2020-06-07,Bonner,Idaho,16017,6,0 +2020-06-08,Bonner,Idaho,16017,6,0 +2020-06-09,Bonner,Idaho,16017,7,0 +2020-06-10,Bonner,Idaho,16017,7,0 +2020-06-11,Bonner,Idaho,16017,7,0 +2020-06-12,Bonner,Idaho,16017,7,0 +2020-06-13,Bonner,Idaho,16017,7,0 +2020-06-14,Bonner,Idaho,16017,7,0 +2020-06-15,Bonner,Idaho,16017,7,0 +2020-06-16,Bonner,Idaho,16017,7,0 +2020-06-17,Bonner,Idaho,16017,10,0 +2020-06-18,Bonner,Idaho,16017,10,0 +2020-06-19,Bonner,Idaho,16017,11,0 +2020-06-20,Bonner,Idaho,16017,12,0 +2020-06-21,Bonner,Idaho,16017,12,0 +2020-06-22,Bonner,Idaho,16017,15,0 +2020-06-23,Bonner,Idaho,16017,15,0 +2020-06-24,Bonner,Idaho,16017,19,0 +2020-06-25,Bonner,Idaho,16017,24,0 +2020-06-26,Bonner,Idaho,16017,24,0 +2020-06-27,Bonner,Idaho,16017,24,0 +2020-06-28,Bonner,Idaho,16017,24,0 +2020-06-29,Bonner,Idaho,16017,31,0 +2020-06-30,Bonner,Idaho,16017,32,0 +2020-07-01,Bonner,Idaho,16017,33,0 +2020-07-02,Bonner,Idaho,16017,34,0 +2020-07-03,Bonner,Idaho,16017,36,0 +2020-07-04,Bonner,Idaho,16017,38,0 +2020-07-05,Bonner,Idaho,16017,39,0 +2020-07-06,Bonner,Idaho,16017,40,0 +2020-07-07,Bonner,Idaho,16017,40,0 +2020-07-08,Bonner,Idaho,16017,45,0 +2020-07-09,Bonner,Idaho,16017,57,0 +2020-03-28,Bonneville,Idaho,16019,1,0 +2020-03-29,Bonneville,Idaho,16019,1,0 +2020-03-30,Bonneville,Idaho,16019,2,0 +2020-03-31,Bonneville,Idaho,16019,2,0 +2020-04-01,Bonneville,Idaho,16019,2,0 +2020-04-02,Bonneville,Idaho,16019,3,0 +2020-04-03,Bonneville,Idaho,16019,5,0 +2020-04-04,Bonneville,Idaho,16019,5,0 +2020-04-05,Bonneville,Idaho,16019,6,0 +2020-04-06,Bonneville,Idaho,16019,6,0 +2020-04-07,Bonneville,Idaho,16019,7,0 +2020-04-08,Bonneville,Idaho,16019,7,0 +2020-04-09,Bonneville,Idaho,16019,11,0 +2020-04-10,Bonneville,Idaho,16019,17,0 +2020-04-11,Bonneville,Idaho,16019,18,0 +2020-04-12,Bonneville,Idaho,16019,19,0 +2020-04-13,Bonneville,Idaho,16019,22,0 +2020-04-14,Bonneville,Idaho,16019,24,0 +2020-04-15,Bonneville,Idaho,16019,24,0 +2020-04-16,Bonneville,Idaho,16019,24,0 +2020-04-17,Bonneville,Idaho,16019,24,0 +2020-04-18,Bonneville,Idaho,16019,24,0 +2020-04-19,Bonneville,Idaho,16019,24,0 +2020-04-20,Bonneville,Idaho,16019,24,0 +2020-04-21,Bonneville,Idaho,16019,24,0 +2020-04-22,Bonneville,Idaho,16019,28,0 +2020-04-23,Bonneville,Idaho,16019,28,0 +2020-04-24,Bonneville,Idaho,16019,28,0 +2020-04-25,Bonneville,Idaho,16019,28,0 +2020-04-26,Bonneville,Idaho,16019,28,0 +2020-04-27,Bonneville,Idaho,16019,26,0 +2020-04-28,Bonneville,Idaho,16019,27,0 +2020-04-29,Bonneville,Idaho,16019,28,0 +2020-04-30,Bonneville,Idaho,16019,28,0 +2020-05-01,Bonneville,Idaho,16019,28,0 +2020-05-02,Bonneville,Idaho,16019,28,0 +2020-05-03,Bonneville,Idaho,16019,28,0 +2020-05-04,Bonneville,Idaho,16019,28,0 +2020-05-05,Bonneville,Idaho,16019,28,0 +2020-05-06,Bonneville,Idaho,16019,28,0 +2020-05-07,Bonneville,Idaho,16019,28,0 +2020-05-08,Bonneville,Idaho,16019,30,0 +2020-05-09,Bonneville,Idaho,16019,30,0 +2020-05-10,Bonneville,Idaho,16019,30,0 +2020-05-11,Bonneville,Idaho,16019,30,0 +2020-05-12,Bonneville,Idaho,16019,30,0 +2020-05-13,Bonneville,Idaho,16019,30,0 +2020-05-14,Bonneville,Idaho,16019,30,0 +2020-05-15,Bonneville,Idaho,16019,30,0 +2020-05-16,Bonneville,Idaho,16019,33,0 +2020-05-17,Bonneville,Idaho,16019,33,0 +2020-05-18,Bonneville,Idaho,16019,33,0 +2020-05-19,Bonneville,Idaho,16019,32,0 +2020-05-20,Bonneville,Idaho,16019,32,0 +2020-05-21,Bonneville,Idaho,16019,32,0 +2020-05-22,Bonneville,Idaho,16019,32,0 +2020-05-23,Bonneville,Idaho,16019,32,0 +2020-05-24,Bonneville,Idaho,16019,33,0 +2020-05-25,Bonneville,Idaho,16019,33,0 +2020-05-26,Bonneville,Idaho,16019,33,0 +2020-05-27,Bonneville,Idaho,16019,33,0 +2020-05-28,Bonneville,Idaho,16019,37,0 +2020-05-29,Bonneville,Idaho,16019,37,0 +2020-05-30,Bonneville,Idaho,16019,47,0 +2020-05-31,Bonneville,Idaho,16019,47,0 +2020-06-01,Bonneville,Idaho,16019,47,0 +2020-06-02,Bonneville,Idaho,16019,51,0 +2020-06-03,Bonneville,Idaho,16019,56,0 +2020-06-04,Bonneville,Idaho,16019,59,0 +2020-06-05,Bonneville,Idaho,16019,60,0 +2020-06-06,Bonneville,Idaho,16019,60,0 +2020-06-07,Bonneville,Idaho,16019,62,0 +2020-06-08,Bonneville,Idaho,16019,64,0 +2020-06-09,Bonneville,Idaho,16019,68,0 +2020-06-10,Bonneville,Idaho,16019,68,0 +2020-06-11,Bonneville,Idaho,16019,69,0 +2020-06-12,Bonneville,Idaho,16019,73,0 +2020-06-13,Bonneville,Idaho,16019,79,0 +2020-06-14,Bonneville,Idaho,16019,79,1 +2020-06-15,Bonneville,Idaho,16019,86,1 +2020-06-16,Bonneville,Idaho,16019,87,1 +2020-06-17,Bonneville,Idaho,16019,90,1 +2020-06-18,Bonneville,Idaho,16019,91,1 +2020-06-19,Bonneville,Idaho,16019,91,1 +2020-06-20,Bonneville,Idaho,16019,93,1 +2020-06-21,Bonneville,Idaho,16019,94,1 +2020-06-22,Bonneville,Idaho,16019,95,1 +2020-06-23,Bonneville,Idaho,16019,96,1 +2020-06-24,Bonneville,Idaho,16019,103,1 +2020-06-25,Bonneville,Idaho,16019,106,1 +2020-06-26,Bonneville,Idaho,16019,107,1 +2020-06-27,Bonneville,Idaho,16019,107,1 +2020-06-28,Bonneville,Idaho,16019,113,1 +2020-06-29,Bonneville,Idaho,16019,113,1 +2020-06-30,Bonneville,Idaho,16019,115,1 +2020-07-01,Bonneville,Idaho,16019,117,1 +2020-07-02,Bonneville,Idaho,16019,119,1 +2020-07-03,Bonneville,Idaho,16019,121,1 +2020-07-04,Bonneville,Idaho,16019,148,1 +2020-07-05,Bonneville,Idaho,16019,153,1 +2020-07-06,Bonneville,Idaho,16019,167,1 +2020-07-07,Bonneville,Idaho,16019,169,1 +2020-07-08,Bonneville,Idaho,16019,173,1 +2020-07-09,Bonneville,Idaho,16019,177,1 +2020-06-26,Boundary,Idaho,16021,1,0 +2020-06-27,Boundary,Idaho,16021,1,0 +2020-06-28,Boundary,Idaho,16021,1,0 +2020-06-29,Boundary,Idaho,16021,1,0 +2020-06-30,Boundary,Idaho,16021,1,0 +2020-07-01,Boundary,Idaho,16021,1,0 +2020-07-02,Boundary,Idaho,16021,1,0 +2020-07-03,Boundary,Idaho,16021,1,0 +2020-07-04,Boundary,Idaho,16021,1,0 +2020-07-05,Boundary,Idaho,16021,1,0 +2020-07-06,Boundary,Idaho,16021,1,0 +2020-07-07,Boundary,Idaho,16021,1,0 +2020-07-08,Boundary,Idaho,16021,2,0 +2020-07-09,Boundary,Idaho,16021,2,0 +2020-03-31,Camas,Idaho,16025,1,0 +2020-04-01,Camas,Idaho,16025,1,0 +2020-04-02,Camas,Idaho,16025,1,0 +2020-04-03,Camas,Idaho,16025,1,0 +2020-04-04,Camas,Idaho,16025,1,0 +2020-04-05,Camas,Idaho,16025,1,0 +2020-04-06,Camas,Idaho,16025,1,0 +2020-04-07,Camas,Idaho,16025,1,0 +2020-04-08,Camas,Idaho,16025,1,0 +2020-04-09,Camas,Idaho,16025,1,0 +2020-04-10,Camas,Idaho,16025,1,0 +2020-04-11,Camas,Idaho,16025,1,0 +2020-04-12,Camas,Idaho,16025,1,0 +2020-04-13,Camas,Idaho,16025,1,0 +2020-04-14,Camas,Idaho,16025,1,0 +2020-04-15,Camas,Idaho,16025,1,0 +2020-04-16,Camas,Idaho,16025,1,0 +2020-04-17,Camas,Idaho,16025,1,0 +2020-04-18,Camas,Idaho,16025,1,0 +2020-04-19,Camas,Idaho,16025,1,0 +2020-04-20,Camas,Idaho,16025,1,0 +2020-04-21,Camas,Idaho,16025,1,0 +2020-04-22,Camas,Idaho,16025,1,0 +2020-04-23,Camas,Idaho,16025,1,0 +2020-04-24,Camas,Idaho,16025,1,0 +2020-04-25,Camas,Idaho,16025,1,0 +2020-04-26,Camas,Idaho,16025,1,0 +2020-04-27,Camas,Idaho,16025,1,0 +2020-04-28,Camas,Idaho,16025,1,0 +2020-04-29,Camas,Idaho,16025,1,0 +2020-04-30,Camas,Idaho,16025,1,0 +2020-05-01,Camas,Idaho,16025,1,0 +2020-05-02,Camas,Idaho,16025,1,0 +2020-05-03,Camas,Idaho,16025,1,0 +2020-05-04,Camas,Idaho,16025,1,0 +2020-05-05,Camas,Idaho,16025,1,0 +2020-05-06,Camas,Idaho,16025,1,0 +2020-05-07,Camas,Idaho,16025,1,0 +2020-05-08,Camas,Idaho,16025,1,0 +2020-05-09,Camas,Idaho,16025,1,0 +2020-05-10,Camas,Idaho,16025,1,0 +2020-05-11,Camas,Idaho,16025,1,0 +2020-05-12,Camas,Idaho,16025,1,0 +2020-05-13,Camas,Idaho,16025,1,0 +2020-05-14,Camas,Idaho,16025,1,0 +2020-05-15,Camas,Idaho,16025,1,0 +2020-05-16,Camas,Idaho,16025,1,0 +2020-05-17,Camas,Idaho,16025,1,0 +2020-05-18,Camas,Idaho,16025,1,0 +2020-05-19,Camas,Idaho,16025,1,0 +2020-05-20,Camas,Idaho,16025,1,0 +2020-05-21,Camas,Idaho,16025,1,0 +2020-05-22,Camas,Idaho,16025,1,0 +2020-05-23,Camas,Idaho,16025,1,0 +2020-05-24,Camas,Idaho,16025,1,0 +2020-05-25,Camas,Idaho,16025,1,0 +2020-05-26,Camas,Idaho,16025,1,0 +2020-05-27,Camas,Idaho,16025,1,0 +2020-05-28,Camas,Idaho,16025,1,0 +2020-05-29,Camas,Idaho,16025,1,0 +2020-05-30,Camas,Idaho,16025,1,0 +2020-05-31,Camas,Idaho,16025,1,0 +2020-06-01,Camas,Idaho,16025,1,0 +2020-06-02,Camas,Idaho,16025,1,0 +2020-06-03,Camas,Idaho,16025,1,0 +2020-06-04,Camas,Idaho,16025,1,0 +2020-06-05,Camas,Idaho,16025,1,0 +2020-06-06,Camas,Idaho,16025,1,0 +2020-06-07,Camas,Idaho,16025,1,0 +2020-06-08,Camas,Idaho,16025,1,0 +2020-06-09,Camas,Idaho,16025,1,0 +2020-06-10,Camas,Idaho,16025,1,0 +2020-06-11,Camas,Idaho,16025,1,0 +2020-06-12,Camas,Idaho,16025,1,0 +2020-06-13,Camas,Idaho,16025,1,0 +2020-06-14,Camas,Idaho,16025,1,0 +2020-06-15,Camas,Idaho,16025,1,0 +2020-06-16,Camas,Idaho,16025,1,0 +2020-06-17,Camas,Idaho,16025,1,0 +2020-06-18,Camas,Idaho,16025,1,0 +2020-06-19,Camas,Idaho,16025,1,0 +2020-06-20,Camas,Idaho,16025,1,0 +2020-06-21,Camas,Idaho,16025,1,0 +2020-06-22,Camas,Idaho,16025,1,0 +2020-06-23,Camas,Idaho,16025,1,0 +2020-06-24,Camas,Idaho,16025,1,0 +2020-06-25,Camas,Idaho,16025,1,0 +2020-06-26,Camas,Idaho,16025,1,0 +2020-06-27,Camas,Idaho,16025,1,0 +2020-06-28,Camas,Idaho,16025,1,0 +2020-06-29,Camas,Idaho,16025,1,0 +2020-06-30,Camas,Idaho,16025,1,0 +2020-07-01,Camas,Idaho,16025,1,0 +2020-07-02,Camas,Idaho,16025,1,0 +2020-07-03,Camas,Idaho,16025,1,0 +2020-07-04,Camas,Idaho,16025,1,0 +2020-07-05,Camas,Idaho,16025,1,0 +2020-07-06,Camas,Idaho,16025,1,0 +2020-07-07,Camas,Idaho,16025,1,0 +2020-07-08,Camas,Idaho,16025,1,0 +2020-07-09,Camas,Idaho,16025,1,0 +2020-03-20,Canyon,Idaho,16027,1,0 +2020-03-21,Canyon,Idaho,16027,1,0 +2020-03-22,Canyon,Idaho,16027,3,0 +2020-03-23,Canyon,Idaho,16027,4,0 +2020-03-24,Canyon,Idaho,16027,5,0 +2020-03-25,Canyon,Idaho,16027,8,0 +2020-03-26,Canyon,Idaho,16027,22,1 +2020-03-27,Canyon,Idaho,16027,23,1 +2020-03-28,Canyon,Idaho,16027,22,1 +2020-03-29,Canyon,Idaho,16027,40,1 +2020-03-30,Canyon,Idaho,16027,48,1 +2020-03-31,Canyon,Idaho,16027,53,1 +2020-04-01,Canyon,Idaho,16027,68,1 +2020-04-02,Canyon,Idaho,16027,79,1 +2020-04-03,Canyon,Idaho,16027,89,1 +2020-04-04,Canyon,Idaho,16027,99,1 +2020-04-05,Canyon,Idaho,16027,101,1 +2020-04-06,Canyon,Idaho,16027,104,3 +2020-04-07,Canyon,Idaho,16027,114,3 +2020-04-08,Canyon,Idaho,16027,121,3 +2020-04-09,Canyon,Idaho,16027,139,4 +2020-04-10,Canyon,Idaho,16027,145,5 +2020-04-11,Canyon,Idaho,16027,146,5 +2020-04-12,Canyon,Idaho,16027,155,5 +2020-04-13,Canyon,Idaho,16027,161,5 +2020-04-14,Canyon,Idaho,16027,169,5 +2020-04-15,Canyon,Idaho,16027,181,5 +2020-04-16,Canyon,Idaho,16027,181,5 +2020-04-17,Canyon,Idaho,16027,187,5 +2020-04-18,Canyon,Idaho,16027,187,5 +2020-04-19,Canyon,Idaho,16027,187,5 +2020-04-20,Canyon,Idaho,16027,207,5 +2020-04-21,Canyon,Idaho,16027,212,6 +2020-04-22,Canyon,Idaho,16027,215,6 +2020-04-23,Canyon,Idaho,16027,222,6 +2020-04-24,Canyon,Idaho,16027,226,6 +2020-04-25,Canyon,Idaho,16027,231,6 +2020-04-26,Canyon,Idaho,16027,233,6 +2020-04-27,Canyon,Idaho,16027,238,6 +2020-04-28,Canyon,Idaho,16027,250,6 +2020-04-29,Canyon,Idaho,16027,252,6 +2020-04-30,Canyon,Idaho,16027,255,7 +2020-05-01,Canyon,Idaho,16027,259,7 +2020-05-02,Canyon,Idaho,16027,258,7 +2020-05-03,Canyon,Idaho,16027,258,7 +2020-05-04,Canyon,Idaho,16027,266,7 +2020-05-05,Canyon,Idaho,16027,266,7 +2020-05-06,Canyon,Idaho,16027,270,7 +2020-05-07,Canyon,Idaho,16027,272,6 +2020-05-08,Canyon,Idaho,16027,272,6 +2020-05-09,Canyon,Idaho,16027,272,6 +2020-05-10,Canyon,Idaho,16027,272,6 +2020-05-11,Canyon,Idaho,16027,274,6 +2020-05-12,Canyon,Idaho,16027,274,6 +2020-05-13,Canyon,Idaho,16027,275,6 +2020-05-14,Canyon,Idaho,16027,276,6 +2020-05-15,Canyon,Idaho,16027,277,6 +2020-05-16,Canyon,Idaho,16027,277,6 +2020-05-17,Canyon,Idaho,16027,277,6 +2020-05-18,Canyon,Idaho,16027,276,6 +2020-05-19,Canyon,Idaho,16027,280,6 +2020-05-20,Canyon,Idaho,16027,280,6 +2020-05-21,Canyon,Idaho,16027,283,6 +2020-05-22,Canyon,Idaho,16027,284,6 +2020-05-23,Canyon,Idaho,16027,284,6 +2020-05-24,Canyon,Idaho,16027,284,6 +2020-05-25,Canyon,Idaho,16027,284,6 +2020-05-26,Canyon,Idaho,16027,287,6 +2020-05-27,Canyon,Idaho,16027,291,6 +2020-05-28,Canyon,Idaho,16027,294,6 +2020-05-29,Canyon,Idaho,16027,300,6 +2020-05-30,Canyon,Idaho,16027,303,6 +2020-05-31,Canyon,Idaho,16027,303,6 +2020-06-01,Canyon,Idaho,16027,310,6 +2020-06-02,Canyon,Idaho,16027,310,6 +2020-06-03,Canyon,Idaho,16027,315,6 +2020-06-04,Canyon,Idaho,16027,322,6 +2020-06-05,Canyon,Idaho,16027,336,6 +2020-06-06,Canyon,Idaho,16027,340,6 +2020-06-07,Canyon,Idaho,16027,340,6 +2020-06-08,Canyon,Idaho,16027,345,6 +2020-06-09,Canyon,Idaho,16027,345,6 +2020-06-10,Canyon,Idaho,16027,351,6 +2020-06-11,Canyon,Idaho,16027,354,6 +2020-06-12,Canyon,Idaho,16027,356,6 +2020-06-13,Canyon,Idaho,16027,356,6 +2020-06-14,Canyon,Idaho,16027,356,6 +2020-06-15,Canyon,Idaho,16027,360,6 +2020-06-16,Canyon,Idaho,16027,367,6 +2020-06-17,Canyon,Idaho,16027,369,6 +2020-06-18,Canyon,Idaho,16027,376,6 +2020-06-19,Canyon,Idaho,16027,403,6 +2020-06-20,Canyon,Idaho,16027,433,6 +2020-06-21,Canyon,Idaho,16027,433,6 +2020-06-22,Canyon,Idaho,16027,470,6 +2020-06-23,Canyon,Idaho,16027,494,6 +2020-06-24,Canyon,Idaho,16027,546,6 +2020-06-25,Canyon,Idaho,16027,601,6 +2020-06-26,Canyon,Idaho,16027,652,6 +2020-06-27,Canyon,Idaho,16027,692,6 +2020-06-28,Canyon,Idaho,16027,692,6 +2020-06-29,Canyon,Idaho,16027,763,6 +2020-06-30,Canyon,Idaho,16027,856,6 +2020-07-01,Canyon,Idaho,16027,900,6 +2020-07-02,Canyon,Idaho,16027,980,6 +2020-07-03,Canyon,Idaho,16027,1092,6 +2020-07-04,Canyon,Idaho,16027,1253,6 +2020-07-05,Canyon,Idaho,16027,1346,6 +2020-07-06,Canyon,Idaho,16027,1399,6 +2020-07-07,Canyon,Idaho,16027,1485,6 +2020-07-08,Canyon,Idaho,16027,1561,9 +2020-07-09,Canyon,Idaho,16027,1665,10 +2020-04-04,Caribou,Idaho,16029,1,0 +2020-04-05,Caribou,Idaho,16029,1,0 +2020-04-06,Caribou,Idaho,16029,1,0 +2020-04-07,Caribou,Idaho,16029,1,0 +2020-04-08,Caribou,Idaho,16029,1,0 +2020-04-09,Caribou,Idaho,16029,1,0 +2020-04-10,Caribou,Idaho,16029,1,0 +2020-04-11,Caribou,Idaho,16029,1,0 +2020-04-12,Caribou,Idaho,16029,1,0 +2020-04-13,Caribou,Idaho,16029,1,0 +2020-04-14,Caribou,Idaho,16029,1,0 +2020-04-15,Caribou,Idaho,16029,1,0 +2020-04-16,Caribou,Idaho,16029,1,0 +2020-04-17,Caribou,Idaho,16029,1,0 +2020-04-18,Caribou,Idaho,16029,1,0 +2020-04-19,Caribou,Idaho,16029,1,0 +2020-04-20,Caribou,Idaho,16029,1,0 +2020-04-21,Caribou,Idaho,16029,1,0 +2020-04-22,Caribou,Idaho,16029,1,0 +2020-04-23,Caribou,Idaho,16029,1,0 +2020-04-24,Caribou,Idaho,16029,1,0 +2020-04-25,Caribou,Idaho,16029,1,0 +2020-04-26,Caribou,Idaho,16029,1,0 +2020-04-27,Caribou,Idaho,16029,1,0 +2020-04-28,Caribou,Idaho,16029,1,0 +2020-04-29,Caribou,Idaho,16029,1,0 +2020-04-30,Caribou,Idaho,16029,1,0 +2020-05-01,Caribou,Idaho,16029,1,0 +2020-05-02,Caribou,Idaho,16029,1,0 +2020-05-03,Caribou,Idaho,16029,1,0 +2020-05-04,Caribou,Idaho,16029,1,0 +2020-05-05,Caribou,Idaho,16029,1,0 +2020-05-06,Caribou,Idaho,16029,1,0 +2020-05-07,Caribou,Idaho,16029,1,0 +2020-05-08,Caribou,Idaho,16029,1,0 +2020-05-09,Caribou,Idaho,16029,1,0 +2020-05-10,Caribou,Idaho,16029,1,0 +2020-05-11,Caribou,Idaho,16029,1,0 +2020-05-12,Caribou,Idaho,16029,1,0 +2020-05-13,Caribou,Idaho,16029,1,0 +2020-05-14,Caribou,Idaho,16029,1,0 +2020-05-15,Caribou,Idaho,16029,1,0 +2020-05-16,Caribou,Idaho,16029,1,0 +2020-05-17,Caribou,Idaho,16029,1,0 +2020-05-18,Caribou,Idaho,16029,1,0 +2020-05-19,Caribou,Idaho,16029,1,0 +2020-05-20,Caribou,Idaho,16029,1,0 +2020-05-21,Caribou,Idaho,16029,1,0 +2020-05-22,Caribou,Idaho,16029,1,0 +2020-05-23,Caribou,Idaho,16029,1,0 +2020-05-24,Caribou,Idaho,16029,1,0 +2020-05-25,Caribou,Idaho,16029,1,0 +2020-05-26,Caribou,Idaho,16029,1,0 +2020-05-27,Caribou,Idaho,16029,1,0 +2020-05-28,Caribou,Idaho,16029,1,0 +2020-05-29,Caribou,Idaho,16029,1,0 +2020-05-30,Caribou,Idaho,16029,1,0 +2020-05-31,Caribou,Idaho,16029,1,0 +2020-06-01,Caribou,Idaho,16029,1,0 +2020-06-02,Caribou,Idaho,16029,1,0 +2020-06-03,Caribou,Idaho,16029,3,0 +2020-06-04,Caribou,Idaho,16029,3,0 +2020-06-05,Caribou,Idaho,16029,3,0 +2020-06-06,Caribou,Idaho,16029,3,0 +2020-06-07,Caribou,Idaho,16029,4,0 +2020-06-08,Caribou,Idaho,16029,4,0 +2020-06-09,Caribou,Idaho,16029,4,0 +2020-06-10,Caribou,Idaho,16029,4,0 +2020-06-11,Caribou,Idaho,16029,4,0 +2020-06-12,Caribou,Idaho,16029,4,0 +2020-06-13,Caribou,Idaho,16029,5,0 +2020-06-14,Caribou,Idaho,16029,6,0 +2020-06-15,Caribou,Idaho,16029,6,0 +2020-06-16,Caribou,Idaho,16029,6,0 +2020-06-17,Caribou,Idaho,16029,6,0 +2020-06-18,Caribou,Idaho,16029,8,0 +2020-06-19,Caribou,Idaho,16029,8,0 +2020-06-20,Caribou,Idaho,16029,8,0 +2020-06-21,Caribou,Idaho,16029,11,0 +2020-06-22,Caribou,Idaho,16029,11,0 +2020-06-23,Caribou,Idaho,16029,11,0 +2020-06-24,Caribou,Idaho,16029,11,0 +2020-06-25,Caribou,Idaho,16029,11,0 +2020-06-26,Caribou,Idaho,16029,11,0 +2020-06-27,Caribou,Idaho,16029,11,0 +2020-06-28,Caribou,Idaho,16029,16,0 +2020-06-29,Caribou,Idaho,16029,16,0 +2020-06-30,Caribou,Idaho,16029,16,0 +2020-07-01,Caribou,Idaho,16029,16,0 +2020-07-02,Caribou,Idaho,16029,16,0 +2020-07-03,Caribou,Idaho,16029,16,0 +2020-07-04,Caribou,Idaho,16029,16,0 +2020-07-05,Caribou,Idaho,16029,16,0 +2020-07-06,Caribou,Idaho,16029,17,0 +2020-07-07,Caribou,Idaho,16029,16,0 +2020-07-08,Caribou,Idaho,16029,16,0 +2020-07-09,Caribou,Idaho,16029,20,0 +2020-03-24,Cassia,Idaho,16031,1,0 +2020-03-25,Cassia,Idaho,16031,1,0 +2020-03-26,Cassia,Idaho,16031,1,0 +2020-03-27,Cassia,Idaho,16031,1,0 +2020-03-28,Cassia,Idaho,16031,1,0 +2020-03-29,Cassia,Idaho,16031,1,0 +2020-03-30,Cassia,Idaho,16031,1,0 +2020-03-31,Cassia,Idaho,16031,1,1 +2020-04-01,Cassia,Idaho,16031,1,1 +2020-04-02,Cassia,Idaho,16031,3,1 +2020-04-03,Cassia,Idaho,16031,4,1 +2020-04-04,Cassia,Idaho,16031,4,1 +2020-04-05,Cassia,Idaho,16031,4,1 +2020-04-06,Cassia,Idaho,16031,5,1 +2020-04-07,Cassia,Idaho,16031,5,1 +2020-04-08,Cassia,Idaho,16031,5,1 +2020-04-09,Cassia,Idaho,16031,6,1 +2020-04-10,Cassia,Idaho,16031,7,1 +2020-04-11,Cassia,Idaho,16031,7,1 +2020-04-12,Cassia,Idaho,16031,8,1 +2020-04-13,Cassia,Idaho,16031,9,1 +2020-04-14,Cassia,Idaho,16031,9,1 +2020-04-15,Cassia,Idaho,16031,9,1 +2020-04-16,Cassia,Idaho,16031,10,1 +2020-04-17,Cassia,Idaho,16031,10,1 +2020-04-18,Cassia,Idaho,16031,10,1 +2020-04-19,Cassia,Idaho,16031,10,1 +2020-04-20,Cassia,Idaho,16031,11,1 +2020-04-21,Cassia,Idaho,16031,11,1 +2020-04-22,Cassia,Idaho,16031,12,1 +2020-04-23,Cassia,Idaho,16031,12,1 +2020-04-24,Cassia,Idaho,16031,12,1 +2020-04-25,Cassia,Idaho,16031,12,1 +2020-04-26,Cassia,Idaho,16031,12,1 +2020-04-27,Cassia,Idaho,16031,12,1 +2020-04-28,Cassia,Idaho,16031,12,1 +2020-04-29,Cassia,Idaho,16031,12,1 +2020-04-30,Cassia,Idaho,16031,13,1 +2020-05-01,Cassia,Idaho,16031,13,1 +2020-05-02,Cassia,Idaho,16031,13,1 +2020-05-03,Cassia,Idaho,16031,13,1 +2020-05-04,Cassia,Idaho,16031,13,1 +2020-05-05,Cassia,Idaho,16031,13,1 +2020-05-06,Cassia,Idaho,16031,13,1 +2020-05-07,Cassia,Idaho,16031,13,1 +2020-05-08,Cassia,Idaho,16031,14,1 +2020-05-09,Cassia,Idaho,16031,15,1 +2020-05-10,Cassia,Idaho,16031,15,1 +2020-05-11,Cassia,Idaho,16031,15,1 +2020-05-12,Cassia,Idaho,16031,15,1 +2020-05-13,Cassia,Idaho,16031,16,1 +2020-05-14,Cassia,Idaho,16031,16,1 +2020-05-15,Cassia,Idaho,16031,16,1 +2020-05-16,Cassia,Idaho,16031,18,1 +2020-05-17,Cassia,Idaho,16031,18,1 +2020-05-18,Cassia,Idaho,16031,19,1 +2020-05-19,Cassia,Idaho,16031,19,1 +2020-05-20,Cassia,Idaho,16031,20,1 +2020-05-21,Cassia,Idaho,16031,21,1 +2020-05-22,Cassia,Idaho,16031,22,1 +2020-05-23,Cassia,Idaho,16031,28,1 +2020-05-24,Cassia,Idaho,16031,39,1 +2020-05-25,Cassia,Idaho,16031,39,1 +2020-05-26,Cassia,Idaho,16031,49,1 +2020-05-27,Cassia,Idaho,16031,50,1 +2020-05-28,Cassia,Idaho,16031,56,1 +2020-05-29,Cassia,Idaho,16031,62,1 +2020-05-30,Cassia,Idaho,16031,63,1 +2020-05-31,Cassia,Idaho,16031,63,1 +2020-06-01,Cassia,Idaho,16031,75,1 +2020-06-02,Cassia,Idaho,16031,85,1 +2020-06-03,Cassia,Idaho,16031,89,1 +2020-06-04,Cassia,Idaho,16031,102,1 +2020-06-05,Cassia,Idaho,16031,109,1 +2020-06-06,Cassia,Idaho,16031,112,1 +2020-06-07,Cassia,Idaho,16031,112,1 +2020-06-08,Cassia,Idaho,16031,117,1 +2020-06-09,Cassia,Idaho,16031,118,1 +2020-06-10,Cassia,Idaho,16031,123,1 +2020-06-11,Cassia,Idaho,16031,126,1 +2020-06-12,Cassia,Idaho,16031,131,1 +2020-06-13,Cassia,Idaho,16031,136,1 +2020-06-14,Cassia,Idaho,16031,136,1 +2020-06-15,Cassia,Idaho,16031,143,1 +2020-06-16,Cassia,Idaho,16031,149,1 +2020-06-17,Cassia,Idaho,16031,152,1 +2020-06-18,Cassia,Idaho,16031,158,1 +2020-06-19,Cassia,Idaho,16031,163,1 +2020-06-20,Cassia,Idaho,16031,167,1 +2020-06-21,Cassia,Idaho,16031,167,1 +2020-06-22,Cassia,Idaho,16031,173,1 +2020-06-23,Cassia,Idaho,16031,178,1 +2020-06-24,Cassia,Idaho,16031,191,1 +2020-06-25,Cassia,Idaho,16031,193,1 +2020-06-26,Cassia,Idaho,16031,200,1 +2020-06-27,Cassia,Idaho,16031,209,1 +2020-06-28,Cassia,Idaho,16031,209,1 +2020-06-29,Cassia,Idaho,16031,228,1 +2020-06-30,Cassia,Idaho,16031,240,1 +2020-07-01,Cassia,Idaho,16031,248,1 +2020-07-02,Cassia,Idaho,16031,260,1 +2020-07-03,Cassia,Idaho,16031,262,1 +2020-07-04,Cassia,Idaho,16031,262,1 +2020-07-05,Cassia,Idaho,16031,266,1 +2020-07-06,Cassia,Idaho,16031,285,1 +2020-07-07,Cassia,Idaho,16031,285,1 +2020-07-08,Cassia,Idaho,16031,297,1 +2020-07-09,Cassia,Idaho,16031,307,1 +2020-06-26,Clearwater,Idaho,16035,1,0 +2020-06-27,Clearwater,Idaho,16035,1,0 +2020-06-28,Clearwater,Idaho,16035,1,0 +2020-06-29,Clearwater,Idaho,16035,1,0 +2020-06-30,Clearwater,Idaho,16035,1,0 +2020-07-01,Clearwater,Idaho,16035,1,0 +2020-07-02,Clearwater,Idaho,16035,2,0 +2020-07-03,Clearwater,Idaho,16035,2,0 +2020-07-04,Clearwater,Idaho,16035,2,0 +2020-07-05,Clearwater,Idaho,16035,2,0 +2020-07-06,Clearwater,Idaho,16035,3,0 +2020-07-07,Clearwater,Idaho,16035,3,0 +2020-07-08,Clearwater,Idaho,16035,5,0 +2020-07-09,Clearwater,Idaho,16035,5,0 +2020-03-26,Custer,Idaho,16037,1,0 +2020-03-27,Custer,Idaho,16037,1,0 +2020-03-28,Custer,Idaho,16037,1,0 +2020-03-29,Custer,Idaho,16037,1,0 +2020-03-30,Custer,Idaho,16037,1,0 +2020-03-31,Custer,Idaho,16037,2,0 +2020-04-01,Custer,Idaho,16037,2,0 +2020-04-02,Custer,Idaho,16037,2,0 +2020-04-03,Custer,Idaho,16037,2,0 +2020-04-04,Custer,Idaho,16037,2,0 +2020-04-05,Custer,Idaho,16037,2,0 +2020-04-06,Custer,Idaho,16037,2,0 +2020-04-07,Custer,Idaho,16037,2,0 +2020-04-08,Custer,Idaho,16037,2,0 +2020-04-09,Custer,Idaho,16037,2,0 +2020-04-10,Custer,Idaho,16037,2,0 +2020-04-11,Custer,Idaho,16037,2,0 +2020-04-12,Custer,Idaho,16037,2,0 +2020-04-13,Custer,Idaho,16037,2,0 +2020-04-14,Custer,Idaho,16037,2,0 +2020-04-15,Custer,Idaho,16037,2,0 +2020-04-16,Custer,Idaho,16037,2,0 +2020-04-17,Custer,Idaho,16037,2,0 +2020-04-18,Custer,Idaho,16037,2,0 +2020-04-19,Custer,Idaho,16037,2,0 +2020-04-20,Custer,Idaho,16037,2,0 +2020-04-21,Custer,Idaho,16037,2,0 +2020-04-22,Custer,Idaho,16037,2,0 +2020-04-23,Custer,Idaho,16037,2,0 +2020-04-24,Custer,Idaho,16037,2,0 +2020-04-25,Custer,Idaho,16037,2,0 +2020-04-26,Custer,Idaho,16037,2,0 +2020-04-27,Custer,Idaho,16037,2,0 +2020-04-28,Custer,Idaho,16037,2,0 +2020-04-29,Custer,Idaho,16037,2,0 +2020-04-30,Custer,Idaho,16037,2,0 +2020-05-01,Custer,Idaho,16037,2,0 +2020-05-02,Custer,Idaho,16037,2,0 +2020-05-03,Custer,Idaho,16037,2,0 +2020-05-04,Custer,Idaho,16037,2,0 +2020-05-05,Custer,Idaho,16037,2,0 +2020-05-06,Custer,Idaho,16037,2,0 +2020-05-07,Custer,Idaho,16037,2,0 +2020-05-08,Custer,Idaho,16037,2,0 +2020-05-09,Custer,Idaho,16037,2,0 +2020-05-10,Custer,Idaho,16037,2,0 +2020-05-11,Custer,Idaho,16037,2,0 +2020-05-12,Custer,Idaho,16037,2,0 +2020-05-13,Custer,Idaho,16037,2,0 +2020-05-14,Custer,Idaho,16037,2,0 +2020-05-15,Custer,Idaho,16037,2,0 +2020-05-16,Custer,Idaho,16037,2,0 +2020-05-17,Custer,Idaho,16037,2,0 +2020-05-18,Custer,Idaho,16037,2,0 +2020-05-19,Custer,Idaho,16037,2,0 +2020-05-20,Custer,Idaho,16037,2,0 +2020-05-21,Custer,Idaho,16037,2,0 +2020-05-22,Custer,Idaho,16037,2,0 +2020-05-23,Custer,Idaho,16037,2,0 +2020-05-24,Custer,Idaho,16037,2,0 +2020-05-25,Custer,Idaho,16037,2,0 +2020-05-26,Custer,Idaho,16037,2,0 +2020-05-27,Custer,Idaho,16037,2,0 +2020-05-28,Custer,Idaho,16037,2,0 +2020-05-29,Custer,Idaho,16037,2,0 +2020-05-30,Custer,Idaho,16037,2,0 +2020-05-31,Custer,Idaho,16037,2,0 +2020-06-01,Custer,Idaho,16037,2,0 +2020-06-02,Custer,Idaho,16037,2,0 +2020-06-03,Custer,Idaho,16037,2,0 +2020-06-04,Custer,Idaho,16037,2,0 +2020-06-05,Custer,Idaho,16037,2,0 +2020-06-06,Custer,Idaho,16037,2,0 +2020-06-07,Custer,Idaho,16037,2,0 +2020-06-08,Custer,Idaho,16037,2,0 +2020-06-09,Custer,Idaho,16037,2,0 +2020-06-10,Custer,Idaho,16037,2,0 +2020-06-11,Custer,Idaho,16037,2,0 +2020-06-12,Custer,Idaho,16037,2,0 +2020-06-13,Custer,Idaho,16037,2,0 +2020-06-14,Custer,Idaho,16037,2,0 +2020-06-15,Custer,Idaho,16037,2,0 +2020-06-16,Custer,Idaho,16037,2,0 +2020-06-17,Custer,Idaho,16037,2,0 +2020-06-18,Custer,Idaho,16037,2,0 +2020-06-19,Custer,Idaho,16037,2,0 +2020-06-20,Custer,Idaho,16037,2,0 +2020-06-21,Custer,Idaho,16037,2,0 +2020-06-22,Custer,Idaho,16037,2,0 +2020-06-23,Custer,Idaho,16037,2,0 +2020-06-24,Custer,Idaho,16037,2,0 +2020-06-25,Custer,Idaho,16037,3,0 +2020-06-26,Custer,Idaho,16037,3,0 +2020-06-27,Custer,Idaho,16037,3,0 +2020-06-28,Custer,Idaho,16037,5,0 +2020-06-29,Custer,Idaho,16037,5,0 +2020-06-30,Custer,Idaho,16037,5,0 +2020-07-01,Custer,Idaho,16037,5,0 +2020-07-02,Custer,Idaho,16037,5,0 +2020-07-03,Custer,Idaho,16037,5,0 +2020-07-04,Custer,Idaho,16037,5,0 +2020-07-05,Custer,Idaho,16037,5,0 +2020-07-06,Custer,Idaho,16037,5,0 +2020-07-07,Custer,Idaho,16037,5,0 +2020-07-08,Custer,Idaho,16037,5,0 +2020-07-09,Custer,Idaho,16037,5,0 +2020-03-30,Elmore,Idaho,16039,1,0 +2020-03-31,Elmore,Idaho,16039,3,0 +2020-04-01,Elmore,Idaho,16039,3,0 +2020-04-02,Elmore,Idaho,16039,9,0 +2020-04-03,Elmore,Idaho,16039,10,0 +2020-04-04,Elmore,Idaho,16039,11,0 +2020-04-05,Elmore,Idaho,16039,11,0 +2020-04-06,Elmore,Idaho,16039,12,0 +2020-04-07,Elmore,Idaho,16039,14,0 +2020-04-08,Elmore,Idaho,16039,14,0 +2020-04-09,Elmore,Idaho,16039,16,0 +2020-04-10,Elmore,Idaho,16039,16,0 +2020-04-11,Elmore,Idaho,16039,16,0 +2020-04-12,Elmore,Idaho,16039,16,0 +2020-04-13,Elmore,Idaho,16039,16,0 +2020-04-14,Elmore,Idaho,16039,18,0 +2020-04-15,Elmore,Idaho,16039,18,0 +2020-04-16,Elmore,Idaho,16039,18,0 +2020-04-17,Elmore,Idaho,16039,21,0 +2020-04-18,Elmore,Idaho,16039,22,0 +2020-04-19,Elmore,Idaho,16039,22,0 +2020-04-20,Elmore,Idaho,16039,24,1 +2020-04-21,Elmore,Idaho,16039,25,1 +2020-04-22,Elmore,Idaho,16039,28,1 +2020-04-23,Elmore,Idaho,16039,32,1 +2020-04-24,Elmore,Idaho,16039,32,1 +2020-04-25,Elmore,Idaho,16039,29,2 +2020-04-26,Elmore,Idaho,16039,29,2 +2020-04-27,Elmore,Idaho,16039,29,2 +2020-04-28,Elmore,Idaho,16039,30,2 +2020-04-29,Elmore,Idaho,16039,30,2 +2020-04-30,Elmore,Idaho,16039,30,2 +2020-05-01,Elmore,Idaho,16039,30,2 +2020-05-02,Elmore,Idaho,16039,30,2 +2020-05-03,Elmore,Idaho,16039,30,2 +2020-05-04,Elmore,Idaho,16039,30,2 +2020-05-05,Elmore,Idaho,16039,30,2 +2020-05-06,Elmore,Idaho,16039,31,2 +2020-05-07,Elmore,Idaho,16039,31,2 +2020-05-08,Elmore,Idaho,16039,31,2 +2020-05-09,Elmore,Idaho,16039,31,2 +2020-05-10,Elmore,Idaho,16039,31,2 +2020-05-11,Elmore,Idaho,16039,31,2 +2020-05-12,Elmore,Idaho,16039,31,2 +2020-05-13,Elmore,Idaho,16039,31,2 +2020-05-14,Elmore,Idaho,16039,31,2 +2020-05-15,Elmore,Idaho,16039,31,2 +2020-05-16,Elmore,Idaho,16039,31,2 +2020-05-17,Elmore,Idaho,16039,31,2 +2020-05-18,Elmore,Idaho,16039,31,2 +2020-05-19,Elmore,Idaho,16039,31,2 +2020-05-20,Elmore,Idaho,16039,31,2 +2020-05-21,Elmore,Idaho,16039,31,2 +2020-05-22,Elmore,Idaho,16039,31,2 +2020-05-23,Elmore,Idaho,16039,31,2 +2020-05-24,Elmore,Idaho,16039,31,2 +2020-05-25,Elmore,Idaho,16039,31,2 +2020-05-26,Elmore,Idaho,16039,31,2 +2020-05-27,Elmore,Idaho,16039,31,2 +2020-05-28,Elmore,Idaho,16039,31,2 +2020-05-29,Elmore,Idaho,16039,31,2 +2020-05-30,Elmore,Idaho,16039,31,2 +2020-05-31,Elmore,Idaho,16039,31,2 +2020-06-01,Elmore,Idaho,16039,31,2 +2020-06-02,Elmore,Idaho,16039,31,2 +2020-06-03,Elmore,Idaho,16039,32,2 +2020-06-04,Elmore,Idaho,16039,32,2 +2020-06-05,Elmore,Idaho,16039,32,2 +2020-06-06,Elmore,Idaho,16039,32,2 +2020-06-07,Elmore,Idaho,16039,32,2 +2020-06-08,Elmore,Idaho,16039,32,2 +2020-06-09,Elmore,Idaho,16039,33,2 +2020-06-10,Elmore,Idaho,16039,33,2 +2020-06-11,Elmore,Idaho,16039,34,2 +2020-06-12,Elmore,Idaho,16039,34,2 +2020-06-13,Elmore,Idaho,16039,34,2 +2020-06-14,Elmore,Idaho,16039,34,2 +2020-06-15,Elmore,Idaho,16039,35,2 +2020-06-16,Elmore,Idaho,16039,37,2 +2020-06-17,Elmore,Idaho,16039,37,2 +2020-06-18,Elmore,Idaho,16039,37,2 +2020-06-19,Elmore,Idaho,16039,38,2 +2020-06-20,Elmore,Idaho,16039,39,2 +2020-06-21,Elmore,Idaho,16039,39,2 +2020-06-22,Elmore,Idaho,16039,42,2 +2020-06-23,Elmore,Idaho,16039,43,2 +2020-06-24,Elmore,Idaho,16039,47,2 +2020-06-25,Elmore,Idaho,16039,47,2 +2020-06-26,Elmore,Idaho,16039,50,2 +2020-06-27,Elmore,Idaho,16039,52,2 +2020-06-28,Elmore,Idaho,16039,52,2 +2020-06-29,Elmore,Idaho,16039,54,2 +2020-06-30,Elmore,Idaho,16039,60,2 +2020-07-01,Elmore,Idaho,16039,62,2 +2020-07-02,Elmore,Idaho,16039,63,2 +2020-07-03,Elmore,Idaho,16039,64,2 +2020-07-04,Elmore,Idaho,16039,64,2 +2020-07-05,Elmore,Idaho,16039,70,2 +2020-07-06,Elmore,Idaho,16039,70,2 +2020-07-07,Elmore,Idaho,16039,75,2 +2020-07-08,Elmore,Idaho,16039,80,2 +2020-07-09,Elmore,Idaho,16039,82,2 +2020-05-29,Franklin,Idaho,16041,1,0 +2020-05-30,Franklin,Idaho,16041,2,0 +2020-05-31,Franklin,Idaho,16041,2,0 +2020-06-01,Franklin,Idaho,16041,9,0 +2020-06-02,Franklin,Idaho,16041,9,0 +2020-06-03,Franklin,Idaho,16041,9,0 +2020-06-04,Franklin,Idaho,16041,9,0 +2020-06-05,Franklin,Idaho,16041,8,0 +2020-06-06,Franklin,Idaho,16041,9,0 +2020-06-07,Franklin,Idaho,16041,10,0 +2020-06-08,Franklin,Idaho,16041,10,0 +2020-06-09,Franklin,Idaho,16041,10,0 +2020-06-10,Franklin,Idaho,16041,10,0 +2020-06-11,Franklin,Idaho,16041,11,0 +2020-06-12,Franklin,Idaho,16041,12,0 +2020-06-13,Franklin,Idaho,16041,14,0 +2020-06-14,Franklin,Idaho,16041,18,0 +2020-06-15,Franklin,Idaho,16041,18,0 +2020-06-16,Franklin,Idaho,16041,18,0 +2020-06-17,Franklin,Idaho,16041,18,0 +2020-06-18,Franklin,Idaho,16041,18,0 +2020-06-19,Franklin,Idaho,16041,18,0 +2020-06-20,Franklin,Idaho,16041,19,0 +2020-06-21,Franklin,Idaho,16041,21,0 +2020-06-22,Franklin,Idaho,16041,21,0 +2020-06-23,Franklin,Idaho,16041,21,0 +2020-06-24,Franklin,Idaho,16041,21,0 +2020-06-25,Franklin,Idaho,16041,21,0 +2020-06-26,Franklin,Idaho,16041,23,0 +2020-06-27,Franklin,Idaho,16041,23,0 +2020-06-28,Franklin,Idaho,16041,26,0 +2020-06-29,Franklin,Idaho,16041,26,0 +2020-06-30,Franklin,Idaho,16041,26,0 +2020-07-01,Franklin,Idaho,16041,26,0 +2020-07-02,Franklin,Idaho,16041,28,0 +2020-07-03,Franklin,Idaho,16041,29,0 +2020-07-04,Franklin,Idaho,16041,29,0 +2020-07-05,Franklin,Idaho,16041,29,0 +2020-07-06,Franklin,Idaho,16041,32,0 +2020-07-07,Franklin,Idaho,16041,30,0 +2020-07-08,Franklin,Idaho,16041,30,0 +2020-07-09,Franklin,Idaho,16041,33,0 +2020-03-25,Fremont,Idaho,16043,1,0 +2020-03-26,Fremont,Idaho,16043,1,0 +2020-03-27,Fremont,Idaho,16043,1,0 +2020-03-28,Fremont,Idaho,16043,1,0 +2020-03-29,Fremont,Idaho,16043,1,0 +2020-03-30,Fremont,Idaho,16043,1,0 +2020-03-31,Fremont,Idaho,16043,1,0 +2020-04-01,Fremont,Idaho,16043,1,0 +2020-04-02,Fremont,Idaho,16043,1,0 +2020-04-03,Fremont,Idaho,16043,1,0 +2020-04-04,Fremont,Idaho,16043,1,0 +2020-04-05,Fremont,Idaho,16043,1,0 +2020-04-06,Fremont,Idaho,16043,2,0 +2020-04-07,Fremont,Idaho,16043,2,0 +2020-04-08,Fremont,Idaho,16043,2,0 +2020-04-09,Fremont,Idaho,16043,2,0 +2020-04-10,Fremont,Idaho,16043,2,0 +2020-04-11,Fremont,Idaho,16043,2,0 +2020-04-12,Fremont,Idaho,16043,2,0 +2020-04-13,Fremont,Idaho,16043,2,0 +2020-04-14,Fremont,Idaho,16043,2,0 +2020-04-15,Fremont,Idaho,16043,2,0 +2020-04-16,Fremont,Idaho,16043,2,0 +2020-04-17,Fremont,Idaho,16043,2,0 +2020-04-18,Fremont,Idaho,16043,2,0 +2020-04-19,Fremont,Idaho,16043,2,0 +2020-04-20,Fremont,Idaho,16043,2,0 +2020-04-21,Fremont,Idaho,16043,2,0 +2020-04-22,Fremont,Idaho,16043,2,0 +2020-04-23,Fremont,Idaho,16043,2,0 +2020-04-24,Fremont,Idaho,16043,2,0 +2020-04-25,Fremont,Idaho,16043,2,0 +2020-04-26,Fremont,Idaho,16043,2,0 +2020-04-27,Fremont,Idaho,16043,2,0 +2020-04-28,Fremont,Idaho,16043,2,0 +2020-04-29,Fremont,Idaho,16043,2,0 +2020-04-30,Fremont,Idaho,16043,2,0 +2020-05-01,Fremont,Idaho,16043,2,0 +2020-05-02,Fremont,Idaho,16043,2,0 +2020-05-03,Fremont,Idaho,16043,2,0 +2020-05-04,Fremont,Idaho,16043,2,0 +2020-05-05,Fremont,Idaho,16043,3,0 +2020-05-06,Fremont,Idaho,16043,3,0 +2020-05-07,Fremont,Idaho,16043,3,0 +2020-05-08,Fremont,Idaho,16043,3,0 +2020-05-09,Fremont,Idaho,16043,3,0 +2020-05-10,Fremont,Idaho,16043,3,0 +2020-05-11,Fremont,Idaho,16043,3,0 +2020-05-12,Fremont,Idaho,16043,3,0 +2020-05-13,Fremont,Idaho,16043,3,0 +2020-05-14,Fremont,Idaho,16043,3,0 +2020-05-15,Fremont,Idaho,16043,3,0 +2020-05-16,Fremont,Idaho,16043,3,0 +2020-05-17,Fremont,Idaho,16043,3,0 +2020-05-18,Fremont,Idaho,16043,3,0 +2020-05-19,Fremont,Idaho,16043,3,0 +2020-05-20,Fremont,Idaho,16043,3,0 +2020-05-21,Fremont,Idaho,16043,3,0 +2020-05-22,Fremont,Idaho,16043,3,0 +2020-05-23,Fremont,Idaho,16043,3,0 +2020-05-24,Fremont,Idaho,16043,3,0 +2020-05-25,Fremont,Idaho,16043,3,0 +2020-05-26,Fremont,Idaho,16043,3,0 +2020-05-27,Fremont,Idaho,16043,3,0 +2020-05-28,Fremont,Idaho,16043,3,0 +2020-05-29,Fremont,Idaho,16043,3,0 +2020-05-30,Fremont,Idaho,16043,3,0 +2020-05-31,Fremont,Idaho,16043,4,0 +2020-06-01,Fremont,Idaho,16043,4,0 +2020-06-02,Fremont,Idaho,16043,4,0 +2020-06-03,Fremont,Idaho,16043,4,0 +2020-06-04,Fremont,Idaho,16043,4,0 +2020-06-05,Fremont,Idaho,16043,4,0 +2020-06-06,Fremont,Idaho,16043,4,0 +2020-06-07,Fremont,Idaho,16043,4,0 +2020-06-08,Fremont,Idaho,16043,4,0 +2020-06-09,Fremont,Idaho,16043,4,0 +2020-06-10,Fremont,Idaho,16043,4,0 +2020-06-11,Fremont,Idaho,16043,4,0 +2020-06-12,Fremont,Idaho,16043,4,0 +2020-06-13,Fremont,Idaho,16043,4,0 +2020-06-14,Fremont,Idaho,16043,4,0 +2020-06-15,Fremont,Idaho,16043,4,0 +2020-06-16,Fremont,Idaho,16043,4,0 +2020-06-17,Fremont,Idaho,16043,4,0 +2020-06-18,Fremont,Idaho,16043,4,0 +2020-06-19,Fremont,Idaho,16043,4,0 +2020-06-20,Fremont,Idaho,16043,4,0 +2020-06-21,Fremont,Idaho,16043,4,0 +2020-06-22,Fremont,Idaho,16043,4,0 +2020-06-23,Fremont,Idaho,16043,4,0 +2020-06-24,Fremont,Idaho,16043,4,0 +2020-06-25,Fremont,Idaho,16043,4,0 +2020-06-26,Fremont,Idaho,16043,5,0 +2020-06-27,Fremont,Idaho,16043,5,0 +2020-06-28,Fremont,Idaho,16043,5,0 +2020-06-29,Fremont,Idaho,16043,6,0 +2020-06-30,Fremont,Idaho,16043,7,0 +2020-07-01,Fremont,Idaho,16043,7,0 +2020-07-02,Fremont,Idaho,16043,7,0 +2020-07-03,Fremont,Idaho,16043,7,0 +2020-07-04,Fremont,Idaho,16043,8,0 +2020-07-05,Fremont,Idaho,16043,8,0 +2020-07-06,Fremont,Idaho,16043,8,0 +2020-07-07,Fremont,Idaho,16043,8,0 +2020-07-08,Fremont,Idaho,16043,8,0 +2020-07-09,Fremont,Idaho,16043,10,0 +2020-03-27,Gem,Idaho,16045,1,0 +2020-03-28,Gem,Idaho,16045,1,0 +2020-03-29,Gem,Idaho,16045,3,0 +2020-03-30,Gem,Idaho,16045,3,0 +2020-03-31,Gem,Idaho,16045,4,0 +2020-04-01,Gem,Idaho,16045,4,0 +2020-04-02,Gem,Idaho,16045,6,0 +2020-04-03,Gem,Idaho,16045,7,0 +2020-04-04,Gem,Idaho,16045,7,0 +2020-04-05,Gem,Idaho,16045,7,0 +2020-04-06,Gem,Idaho,16045,8,0 +2020-04-07,Gem,Idaho,16045,8,0 +2020-04-08,Gem,Idaho,16045,8,0 +2020-04-09,Gem,Idaho,16045,8,0 +2020-04-10,Gem,Idaho,16045,9,0 +2020-04-11,Gem,Idaho,16045,9,0 +2020-04-12,Gem,Idaho,16045,9,0 +2020-04-13,Gem,Idaho,16045,10,0 +2020-04-14,Gem,Idaho,16045,10,0 +2020-04-15,Gem,Idaho,16045,10,0 +2020-04-16,Gem,Idaho,16045,10,0 +2020-04-17,Gem,Idaho,16045,10,0 +2020-04-18,Gem,Idaho,16045,10,0 +2020-04-19,Gem,Idaho,16045,10,0 +2020-04-20,Gem,Idaho,16045,10,0 +2020-04-21,Gem,Idaho,16045,10,0 +2020-04-22,Gem,Idaho,16045,10,0 +2020-04-23,Gem,Idaho,16045,11,0 +2020-04-24,Gem,Idaho,16045,11,0 +2020-04-25,Gem,Idaho,16045,12,0 +2020-04-26,Gem,Idaho,16045,12,0 +2020-04-27,Gem,Idaho,16045,12,0 +2020-04-28,Gem,Idaho,16045,12,0 +2020-04-29,Gem,Idaho,16045,12,0 +2020-04-30,Gem,Idaho,16045,13,0 +2020-05-01,Gem,Idaho,16045,13,0 +2020-05-02,Gem,Idaho,16045,13,0 +2020-05-03,Gem,Idaho,16045,13,0 +2020-05-04,Gem,Idaho,16045,14,0 +2020-05-05,Gem,Idaho,16045,14,0 +2020-05-06,Gem,Idaho,16045,14,0 +2020-05-07,Gem,Idaho,16045,14,0 +2020-05-08,Gem,Idaho,16045,16,0 +2020-05-09,Gem,Idaho,16045,16,0 +2020-05-10,Gem,Idaho,16045,16,0 +2020-05-11,Gem,Idaho,16045,16,0 +2020-05-12,Gem,Idaho,16045,16,0 +2020-05-13,Gem,Idaho,16045,16,0 +2020-05-14,Gem,Idaho,16045,16,0 +2020-05-15,Gem,Idaho,16045,16,0 +2020-05-16,Gem,Idaho,16045,16,0 +2020-05-17,Gem,Idaho,16045,16,0 +2020-05-18,Gem,Idaho,16045,16,0 +2020-05-19,Gem,Idaho,16045,16,0 +2020-05-20,Gem,Idaho,16045,16,0 +2020-05-21,Gem,Idaho,16045,17,0 +2020-05-22,Gem,Idaho,16045,17,0 +2020-05-23,Gem,Idaho,16045,17,0 +2020-05-24,Gem,Idaho,16045,17,0 +2020-05-25,Gem,Idaho,16045,17,0 +2020-05-26,Gem,Idaho,16045,17,0 +2020-05-27,Gem,Idaho,16045,17,0 +2020-05-28,Gem,Idaho,16045,17,0 +2020-05-29,Gem,Idaho,16045,17,0 +2020-05-30,Gem,Idaho,16045,17,0 +2020-05-31,Gem,Idaho,16045,17,0 +2020-06-01,Gem,Idaho,16045,17,0 +2020-06-02,Gem,Idaho,16045,17,0 +2020-06-03,Gem,Idaho,16045,17,0 +2020-06-04,Gem,Idaho,16045,17,0 +2020-06-05,Gem,Idaho,16045,17,0 +2020-06-06,Gem,Idaho,16045,17,0 +2020-06-07,Gem,Idaho,16045,17,0 +2020-06-08,Gem,Idaho,16045,17,0 +2020-06-09,Gem,Idaho,16045,17,0 +2020-06-10,Gem,Idaho,16045,17,0 +2020-06-11,Gem,Idaho,16045,17,0 +2020-06-12,Gem,Idaho,16045,17,0 +2020-06-13,Gem,Idaho,16045,17,0 +2020-06-14,Gem,Idaho,16045,17,0 +2020-06-15,Gem,Idaho,16045,17,0 +2020-06-16,Gem,Idaho,16045,17,0 +2020-06-17,Gem,Idaho,16045,17,0 +2020-06-18,Gem,Idaho,16045,17,0 +2020-06-19,Gem,Idaho,16045,17,0 +2020-06-20,Gem,Idaho,16045,18,0 +2020-06-21,Gem,Idaho,16045,18,0 +2020-06-22,Gem,Idaho,16045,19,0 +2020-06-23,Gem,Idaho,16045,19,0 +2020-06-24,Gem,Idaho,16045,19,0 +2020-06-25,Gem,Idaho,16045,20,0 +2020-06-26,Gem,Idaho,16045,21,0 +2020-06-27,Gem,Idaho,16045,20,0 +2020-06-28,Gem,Idaho,16045,21,0 +2020-06-29,Gem,Idaho,16045,23,0 +2020-06-30,Gem,Idaho,16045,26,0 +2020-07-01,Gem,Idaho,16045,26,0 +2020-07-02,Gem,Idaho,16045,28,0 +2020-07-03,Gem,Idaho,16045,34,0 +2020-07-04,Gem,Idaho,16045,39,0 +2020-07-05,Gem,Idaho,16045,39,0 +2020-07-06,Gem,Idaho,16045,39,0 +2020-07-07,Gem,Idaho,16045,39,0 +2020-07-08,Gem,Idaho,16045,42,0 +2020-07-09,Gem,Idaho,16045,44,0 +2020-04-01,Gooding,Idaho,16047,1,0 +2020-04-02,Gooding,Idaho,16047,1,0 +2020-04-03,Gooding,Idaho,16047,1,0 +2020-04-04,Gooding,Idaho,16047,1,0 +2020-04-05,Gooding,Idaho,16047,1,0 +2020-04-06,Gooding,Idaho,16047,3,0 +2020-04-07,Gooding,Idaho,16047,3,0 +2020-04-08,Gooding,Idaho,16047,4,0 +2020-04-09,Gooding,Idaho,16047,5,0 +2020-04-10,Gooding,Idaho,16047,5,0 +2020-04-11,Gooding,Idaho,16047,5,0 +2020-04-12,Gooding,Idaho,16047,5,0 +2020-04-13,Gooding,Idaho,16047,5,0 +2020-04-14,Gooding,Idaho,16047,5,0 +2020-04-15,Gooding,Idaho,16047,7,0 +2020-04-16,Gooding,Idaho,16047,7,0 +2020-04-17,Gooding,Idaho,16047,7,0 +2020-04-18,Gooding,Idaho,16047,8,0 +2020-04-19,Gooding,Idaho,16047,8,0 +2020-04-20,Gooding,Idaho,16047,8,0 +2020-04-21,Gooding,Idaho,16047,8,0 +2020-04-22,Gooding,Idaho,16047,8,0 +2020-04-23,Gooding,Idaho,16047,9,0 +2020-04-24,Gooding,Idaho,16047,9,0 +2020-04-25,Gooding,Idaho,16047,9,0 +2020-04-26,Gooding,Idaho,16047,9,0 +2020-04-27,Gooding,Idaho,16047,9,0 +2020-04-28,Gooding,Idaho,16047,9,0 +2020-04-29,Gooding,Idaho,16047,11,0 +2020-04-30,Gooding,Idaho,16047,12,0 +2020-05-01,Gooding,Idaho,16047,11,0 +2020-05-02,Gooding,Idaho,16047,12,0 +2020-05-03,Gooding,Idaho,16047,11,0 +2020-05-04,Gooding,Idaho,16047,13,0 +2020-05-05,Gooding,Idaho,16047,13,0 +2020-05-06,Gooding,Idaho,16047,14,0 +2020-05-07,Gooding,Idaho,16047,16,0 +2020-05-08,Gooding,Idaho,16047,16,0 +2020-05-09,Gooding,Idaho,16047,17,0 +2020-05-10,Gooding,Idaho,16047,17,0 +2020-05-11,Gooding,Idaho,16047,18,0 +2020-05-12,Gooding,Idaho,16047,20,0 +2020-05-13,Gooding,Idaho,16047,21,0 +2020-05-14,Gooding,Idaho,16047,22,0 +2020-05-15,Gooding,Idaho,16047,24,0 +2020-05-16,Gooding,Idaho,16047,25,0 +2020-05-17,Gooding,Idaho,16047,25,0 +2020-05-18,Gooding,Idaho,16047,26,0 +2020-05-19,Gooding,Idaho,16047,27,0 +2020-05-20,Gooding,Idaho,16047,29,0 +2020-05-21,Gooding,Idaho,16047,32,0 +2020-05-22,Gooding,Idaho,16047,35,0 +2020-05-23,Gooding,Idaho,16047,39,0 +2020-05-24,Gooding,Idaho,16047,39,0 +2020-05-25,Gooding,Idaho,16047,39,0 +2020-05-26,Gooding,Idaho,16047,40,0 +2020-05-27,Gooding,Idaho,16047,44,0 +2020-05-28,Gooding,Idaho,16047,46,0 +2020-05-29,Gooding,Idaho,16047,47,0 +2020-05-30,Gooding,Idaho,16047,47,0 +2020-05-31,Gooding,Idaho,16047,48,0 +2020-06-01,Gooding,Idaho,16047,49,0 +2020-06-02,Gooding,Idaho,16047,49,0 +2020-06-03,Gooding,Idaho,16047,50,0 +2020-06-04,Gooding,Idaho,16047,53,0 +2020-06-05,Gooding,Idaho,16047,55,0 +2020-06-06,Gooding,Idaho,16047,56,0 +2020-06-07,Gooding,Idaho,16047,56,0 +2020-06-08,Gooding,Idaho,16047,57,0 +2020-06-09,Gooding,Idaho,16047,57,0 +2020-06-10,Gooding,Idaho,16047,57,0 +2020-06-11,Gooding,Idaho,16047,58,0 +2020-06-12,Gooding,Idaho,16047,58,0 +2020-06-13,Gooding,Idaho,16047,59,0 +2020-06-14,Gooding,Idaho,16047,59,0 +2020-06-15,Gooding,Idaho,16047,59,1 +2020-06-16,Gooding,Idaho,16047,60,1 +2020-06-17,Gooding,Idaho,16047,60,1 +2020-06-18,Gooding,Idaho,16047,60,1 +2020-06-19,Gooding,Idaho,16047,60,1 +2020-06-20,Gooding,Idaho,16047,61,1 +2020-06-21,Gooding,Idaho,16047,61,1 +2020-06-22,Gooding,Idaho,16047,61,1 +2020-06-23,Gooding,Idaho,16047,61,1 +2020-06-24,Gooding,Idaho,16047,61,1 +2020-06-25,Gooding,Idaho,16047,62,1 +2020-06-26,Gooding,Idaho,16047,62,1 +2020-06-27,Gooding,Idaho,16047,62,1 +2020-06-28,Gooding,Idaho,16047,62,1 +2020-06-29,Gooding,Idaho,16047,64,0 +2020-06-30,Gooding,Idaho,16047,65,0 +2020-07-01,Gooding,Idaho,16047,65,0 +2020-07-02,Gooding,Idaho,16047,65,0 +2020-07-03,Gooding,Idaho,16047,66,0 +2020-07-04,Gooding,Idaho,16047,66,0 +2020-07-05,Gooding,Idaho,16047,66,0 +2020-07-06,Gooding,Idaho,16047,66,0 +2020-07-07,Gooding,Idaho,16047,68,0 +2020-07-08,Gooding,Idaho,16047,71,0 +2020-07-09,Gooding,Idaho,16047,79,0 +2020-03-25,Idaho,Idaho,16049,1,0 +2020-03-26,Idaho,Idaho,16049,1,0 +2020-03-27,Idaho,Idaho,16049,1,0 +2020-03-28,Idaho,Idaho,16049,1,0 +2020-03-29,Idaho,Idaho,16049,1,0 +2020-03-30,Idaho,Idaho,16049,1,0 +2020-03-31,Idaho,Idaho,16049,1,0 +2020-04-01,Idaho,Idaho,16049,2,0 +2020-04-02,Idaho,Idaho,16049,2,0 +2020-04-03,Idaho,Idaho,16049,2,0 +2020-04-04,Idaho,Idaho,16049,2,0 +2020-04-05,Idaho,Idaho,16049,2,0 +2020-04-06,Idaho,Idaho,16049,3,0 +2020-04-07,Idaho,Idaho,16049,3,0 +2020-04-08,Idaho,Idaho,16049,3,0 +2020-04-09,Idaho,Idaho,16049,3,0 +2020-04-10,Idaho,Idaho,16049,3,0 +2020-04-11,Idaho,Idaho,16049,3,0 +2020-04-12,Idaho,Idaho,16049,3,0 +2020-04-13,Idaho,Idaho,16049,3,0 +2020-04-14,Idaho,Idaho,16049,3,0 +2020-04-15,Idaho,Idaho,16049,3,0 +2020-04-16,Idaho,Idaho,16049,3,0 +2020-04-17,Idaho,Idaho,16049,3,0 +2020-04-18,Idaho,Idaho,16049,3,0 +2020-04-19,Idaho,Idaho,16049,3,0 +2020-04-20,Idaho,Idaho,16049,3,0 +2020-04-21,Idaho,Idaho,16049,3,0 +2020-04-22,Idaho,Idaho,16049,3,0 +2020-04-23,Idaho,Idaho,16049,3,0 +2020-04-24,Idaho,Idaho,16049,3,0 +2020-04-25,Idaho,Idaho,16049,3,0 +2020-04-26,Idaho,Idaho,16049,3,0 +2020-04-27,Idaho,Idaho,16049,3,0 +2020-04-28,Idaho,Idaho,16049,3,0 +2020-04-29,Idaho,Idaho,16049,3,0 +2020-04-30,Idaho,Idaho,16049,3,0 +2020-05-01,Idaho,Idaho,16049,3,0 +2020-05-02,Idaho,Idaho,16049,3,0 +2020-05-03,Idaho,Idaho,16049,3,0 +2020-05-04,Idaho,Idaho,16049,3,0 +2020-05-05,Idaho,Idaho,16049,3,0 +2020-05-06,Idaho,Idaho,16049,3,0 +2020-05-07,Idaho,Idaho,16049,3,0 +2020-05-08,Idaho,Idaho,16049,3,0 +2020-05-09,Idaho,Idaho,16049,3,0 +2020-05-10,Idaho,Idaho,16049,3,0 +2020-05-11,Idaho,Idaho,16049,3,0 +2020-05-12,Idaho,Idaho,16049,3,0 +2020-05-13,Idaho,Idaho,16049,3,0 +2020-05-14,Idaho,Idaho,16049,3,0 +2020-05-15,Idaho,Idaho,16049,3,0 +2020-05-16,Idaho,Idaho,16049,3,0 +2020-05-17,Idaho,Idaho,16049,3,0 +2020-05-18,Idaho,Idaho,16049,3,0 +2020-05-19,Idaho,Idaho,16049,3,0 +2020-05-20,Idaho,Idaho,16049,3,0 +2020-05-21,Idaho,Idaho,16049,3,0 +2020-05-22,Idaho,Idaho,16049,3,0 +2020-05-23,Idaho,Idaho,16049,3,0 +2020-05-24,Idaho,Idaho,16049,3,0 +2020-05-25,Idaho,Idaho,16049,3,0 +2020-05-26,Idaho,Idaho,16049,3,0 +2020-05-27,Idaho,Idaho,16049,3,0 +2020-05-28,Idaho,Idaho,16049,3,0 +2020-05-29,Idaho,Idaho,16049,3,0 +2020-05-30,Idaho,Idaho,16049,3,0 +2020-05-31,Idaho,Idaho,16049,3,0 +2020-06-01,Idaho,Idaho,16049,3,0 +2020-06-02,Idaho,Idaho,16049,3,0 +2020-06-03,Idaho,Idaho,16049,3,0 +2020-06-04,Idaho,Idaho,16049,3,0 +2020-06-05,Idaho,Idaho,16049,3,0 +2020-06-06,Idaho,Idaho,16049,3,0 +2020-06-07,Idaho,Idaho,16049,3,0 +2020-06-08,Idaho,Idaho,16049,3,0 +2020-06-09,Idaho,Idaho,16049,3,0 +2020-06-10,Idaho,Idaho,16049,3,0 +2020-06-11,Idaho,Idaho,16049,3,0 +2020-06-12,Idaho,Idaho,16049,3,0 +2020-06-13,Idaho,Idaho,16049,3,0 +2020-06-14,Idaho,Idaho,16049,3,0 +2020-06-15,Idaho,Idaho,16049,3,0 +2020-06-16,Idaho,Idaho,16049,3,0 +2020-06-17,Idaho,Idaho,16049,3,0 +2020-06-18,Idaho,Idaho,16049,3,0 +2020-06-19,Idaho,Idaho,16049,3,0 +2020-06-20,Idaho,Idaho,16049,3,0 +2020-06-21,Idaho,Idaho,16049,3,0 +2020-06-22,Idaho,Idaho,16049,3,0 +2020-06-23,Idaho,Idaho,16049,3,0 +2020-06-24,Idaho,Idaho,16049,3,0 +2020-06-25,Idaho,Idaho,16049,3,0 +2020-06-26,Idaho,Idaho,16049,3,0 +2020-06-27,Idaho,Idaho,16049,3,0 +2020-06-28,Idaho,Idaho,16049,3,0 +2020-06-29,Idaho,Idaho,16049,4,0 +2020-06-30,Idaho,Idaho,16049,4,0 +2020-07-01,Idaho,Idaho,16049,5,0 +2020-07-02,Idaho,Idaho,16049,5,0 +2020-07-03,Idaho,Idaho,16049,5,0 +2020-07-04,Idaho,Idaho,16049,5,0 +2020-07-05,Idaho,Idaho,16049,5,0 +2020-07-06,Idaho,Idaho,16049,9,0 +2020-07-07,Idaho,Idaho,16049,9,0 +2020-07-08,Idaho,Idaho,16049,11,0 +2020-07-09,Idaho,Idaho,16049,11,0 +2020-03-25,Jefferson,Idaho,16051,2,0 +2020-03-26,Jefferson,Idaho,16051,2,0 +2020-03-27,Jefferson,Idaho,16051,2,0 +2020-03-28,Jefferson,Idaho,16051,2,0 +2020-03-29,Jefferson,Idaho,16051,2,0 +2020-03-30,Jefferson,Idaho,16051,2,0 +2020-03-31,Jefferson,Idaho,16051,3,0 +2020-04-01,Jefferson,Idaho,16051,3,0 +2020-04-02,Jefferson,Idaho,16051,3,0 +2020-04-03,Jefferson,Idaho,16051,3,0 +2020-04-04,Jefferson,Idaho,16051,3,0 +2020-04-05,Jefferson,Idaho,16051,4,0 +2020-04-06,Jefferson,Idaho,16051,4,0 +2020-04-07,Jefferson,Idaho,16051,4,0 +2020-04-08,Jefferson,Idaho,16051,4,0 +2020-04-09,Jefferson,Idaho,16051,5,0 +2020-04-10,Jefferson,Idaho,16051,5,0 +2020-04-11,Jefferson,Idaho,16051,5,0 +2020-04-12,Jefferson,Idaho,16051,5,0 +2020-04-13,Jefferson,Idaho,16051,5,0 +2020-04-14,Jefferson,Idaho,16051,5,0 +2020-04-15,Jefferson,Idaho,16051,5,0 +2020-04-16,Jefferson,Idaho,16051,5,0 +2020-04-17,Jefferson,Idaho,16051,5,0 +2020-04-18,Jefferson,Idaho,16051,5,0 +2020-04-19,Jefferson,Idaho,16051,5,0 +2020-04-20,Jefferson,Idaho,16051,5,0 +2020-04-21,Jefferson,Idaho,16051,5,0 +2020-04-22,Jefferson,Idaho,16051,5,0 +2020-04-23,Jefferson,Idaho,16051,5,0 +2020-04-24,Jefferson,Idaho,16051,5,0 +2020-04-25,Jefferson,Idaho,16051,5,0 +2020-04-26,Jefferson,Idaho,16051,5,0 +2020-04-27,Jefferson,Idaho,16051,5,0 +2020-04-28,Jefferson,Idaho,16051,5,0 +2020-04-29,Jefferson,Idaho,16051,5,0 +2020-04-30,Jefferson,Idaho,16051,5,0 +2020-05-01,Jefferson,Idaho,16051,5,0 +2020-05-02,Jefferson,Idaho,16051,5,0 +2020-05-03,Jefferson,Idaho,16051,5,0 +2020-05-04,Jefferson,Idaho,16051,5,0 +2020-05-05,Jefferson,Idaho,16051,5,0 +2020-05-06,Jefferson,Idaho,16051,5,0 +2020-05-07,Jefferson,Idaho,16051,5,0 +2020-05-08,Jefferson,Idaho,16051,5,0 +2020-05-09,Jefferson,Idaho,16051,5,0 +2020-05-10,Jefferson,Idaho,16051,5,0 +2020-05-11,Jefferson,Idaho,16051,5,0 +2020-05-12,Jefferson,Idaho,16051,5,0 +2020-05-13,Jefferson,Idaho,16051,5,0 +2020-05-14,Jefferson,Idaho,16051,5,0 +2020-05-15,Jefferson,Idaho,16051,6,0 +2020-05-16,Jefferson,Idaho,16051,7,0 +2020-05-17,Jefferson,Idaho,16051,7,0 +2020-05-18,Jefferson,Idaho,16051,7,0 +2020-05-19,Jefferson,Idaho,16051,7,0 +2020-05-20,Jefferson,Idaho,16051,7,0 +2020-05-21,Jefferson,Idaho,16051,7,0 +2020-05-22,Jefferson,Idaho,16051,7,0 +2020-05-23,Jefferson,Idaho,16051,7,0 +2020-05-24,Jefferson,Idaho,16051,7,0 +2020-05-25,Jefferson,Idaho,16051,7,0 +2020-05-26,Jefferson,Idaho,16051,7,0 +2020-05-27,Jefferson,Idaho,16051,7,0 +2020-05-28,Jefferson,Idaho,16051,7,0 +2020-05-29,Jefferson,Idaho,16051,7,0 +2020-05-30,Jefferson,Idaho,16051,7,0 +2020-05-31,Jefferson,Idaho,16051,7,0 +2020-06-01,Jefferson,Idaho,16051,7,0 +2020-06-02,Jefferson,Idaho,16051,7,0 +2020-06-03,Jefferson,Idaho,16051,9,0 +2020-06-04,Jefferson,Idaho,16051,9,0 +2020-06-05,Jefferson,Idaho,16051,9,0 +2020-06-06,Jefferson,Idaho,16051,9,0 +2020-06-07,Jefferson,Idaho,16051,9,0 +2020-06-08,Jefferson,Idaho,16051,9,0 +2020-06-09,Jefferson,Idaho,16051,9,0 +2020-06-10,Jefferson,Idaho,16051,9,0 +2020-06-11,Jefferson,Idaho,16051,9,0 +2020-06-12,Jefferson,Idaho,16051,10,0 +2020-06-13,Jefferson,Idaho,16051,12,0 +2020-06-14,Jefferson,Idaho,16051,12,0 +2020-06-15,Jefferson,Idaho,16051,12,0 +2020-06-16,Jefferson,Idaho,16051,11,0 +2020-06-17,Jefferson,Idaho,16051,11,0 +2020-06-18,Jefferson,Idaho,16051,11,0 +2020-06-19,Jefferson,Idaho,16051,11,0 +2020-06-20,Jefferson,Idaho,16051,12,0 +2020-06-21,Jefferson,Idaho,16051,12,0 +2020-06-22,Jefferson,Idaho,16051,15,0 +2020-06-23,Jefferson,Idaho,16051,16,0 +2020-06-24,Jefferson,Idaho,16051,16,0 +2020-06-25,Jefferson,Idaho,16051,16,0 +2020-06-26,Jefferson,Idaho,16051,17,0 +2020-06-27,Jefferson,Idaho,16051,18,0 +2020-06-28,Jefferson,Idaho,16051,18,0 +2020-06-29,Jefferson,Idaho,16051,18,0 +2020-06-30,Jefferson,Idaho,16051,18,0 +2020-07-01,Jefferson,Idaho,16051,18,0 +2020-07-02,Jefferson,Idaho,16051,18,0 +2020-07-03,Jefferson,Idaho,16051,19,0 +2020-07-04,Jefferson,Idaho,16051,20,0 +2020-07-05,Jefferson,Idaho,16051,21,0 +2020-07-06,Jefferson,Idaho,16051,21,0 +2020-07-07,Jefferson,Idaho,16051,21,0 +2020-07-08,Jefferson,Idaho,16051,21,0 +2020-07-09,Jefferson,Idaho,16051,22,0 +2020-03-30,Jerome,Idaho,16053,1,0 +2020-03-31,Jerome,Idaho,16053,2,0 +2020-04-01,Jerome,Idaho,16053,4,0 +2020-04-02,Jerome,Idaho,16053,8,0 +2020-04-03,Jerome,Idaho,16053,11,0 +2020-04-04,Jerome,Idaho,16053,13,0 +2020-04-05,Jerome,Idaho,16053,13,0 +2020-04-06,Jerome,Idaho,16053,18,0 +2020-04-07,Jerome,Idaho,16053,18,0 +2020-04-08,Jerome,Idaho,16053,19,1 +2020-04-09,Jerome,Idaho,16053,24,2 +2020-04-10,Jerome,Idaho,16053,32,2 +2020-04-11,Jerome,Idaho,16053,33,2 +2020-04-12,Jerome,Idaho,16053,33,2 +2020-04-13,Jerome,Idaho,16053,34,2 +2020-04-14,Jerome,Idaho,16053,34,2 +2020-04-15,Jerome,Idaho,16053,38,2 +2020-04-16,Jerome,Idaho,16053,41,2 +2020-04-17,Jerome,Idaho,16053,44,2 +2020-04-18,Jerome,Idaho,16053,44,2 +2020-04-19,Jerome,Idaho,16053,44,2 +2020-04-20,Jerome,Idaho,16053,44,2 +2020-04-21,Jerome,Idaho,16053,44,2 +2020-04-22,Jerome,Idaho,16053,44,2 +2020-04-23,Jerome,Idaho,16053,44,2 +2020-04-24,Jerome,Idaho,16053,45,2 +2020-04-25,Jerome,Idaho,16053,46,2 +2020-04-26,Jerome,Idaho,16053,46,2 +2020-04-27,Jerome,Idaho,16053,46,2 +2020-04-28,Jerome,Idaho,16053,48,2 +2020-04-29,Jerome,Idaho,16053,51,2 +2020-04-30,Jerome,Idaho,16053,54,2 +2020-05-01,Jerome,Idaho,16053,54,2 +2020-05-02,Jerome,Idaho,16053,55,2 +2020-05-03,Jerome,Idaho,16053,55,2 +2020-05-04,Jerome,Idaho,16053,57,2 +2020-05-05,Jerome,Idaho,16053,61,2 +2020-05-06,Jerome,Idaho,16053,64,2 +2020-05-07,Jerome,Idaho,16053,65,2 +2020-05-08,Jerome,Idaho,16053,67,2 +2020-05-09,Jerome,Idaho,16053,71,2 +2020-05-10,Jerome,Idaho,16053,71,2 +2020-05-11,Jerome,Idaho,16053,75,2 +2020-05-12,Jerome,Idaho,16053,81,2 +2020-05-13,Jerome,Idaho,16053,84,2 +2020-05-14,Jerome,Idaho,16053,87,2 +2020-05-15,Jerome,Idaho,16053,88,2 +2020-05-16,Jerome,Idaho,16053,95,2 +2020-05-17,Jerome,Idaho,16053,95,2 +2020-05-18,Jerome,Idaho,16053,102,2 +2020-05-19,Jerome,Idaho,16053,105,2 +2020-05-20,Jerome,Idaho,16053,110,2 +2020-05-21,Jerome,Idaho,16053,114,2 +2020-05-22,Jerome,Idaho,16053,137,2 +2020-05-23,Jerome,Idaho,16053,145,2 +2020-05-24,Jerome,Idaho,16053,145,2 +2020-05-25,Jerome,Idaho,16053,145,2 +2020-05-26,Jerome,Idaho,16053,154,2 +2020-05-27,Jerome,Idaho,16053,156,2 +2020-05-28,Jerome,Idaho,16053,161,2 +2020-05-29,Jerome,Idaho,16053,165,2 +2020-05-30,Jerome,Idaho,16053,169,2 +2020-05-31,Jerome,Idaho,16053,172,2 +2020-06-01,Jerome,Idaho,16053,174,2 +2020-06-02,Jerome,Idaho,16053,175,2 +2020-06-03,Jerome,Idaho,16053,180,2 +2020-06-04,Jerome,Idaho,16053,191,2 +2020-06-05,Jerome,Idaho,16053,194,2 +2020-06-06,Jerome,Idaho,16053,194,2 +2020-06-07,Jerome,Idaho,16053,194,2 +2020-06-08,Jerome,Idaho,16053,198,2 +2020-06-09,Jerome,Idaho,16053,201,2 +2020-06-10,Jerome,Idaho,16053,202,2 +2020-06-11,Jerome,Idaho,16053,204,2 +2020-06-12,Jerome,Idaho,16053,205,3 +2020-06-13,Jerome,Idaho,16053,206,3 +2020-06-14,Jerome,Idaho,16053,206,3 +2020-06-15,Jerome,Idaho,16053,208,3 +2020-06-16,Jerome,Idaho,16053,211,3 +2020-06-17,Jerome,Idaho,16053,214,3 +2020-06-18,Jerome,Idaho,16053,216,3 +2020-06-19,Jerome,Idaho,16053,216,3 +2020-06-20,Jerome,Idaho,16053,216,3 +2020-06-21,Jerome,Idaho,16053,216,3 +2020-06-22,Jerome,Idaho,16053,225,3 +2020-06-23,Jerome,Idaho,16053,227,3 +2020-06-24,Jerome,Idaho,16053,232,3 +2020-06-25,Jerome,Idaho,16053,231,3 +2020-06-26,Jerome,Idaho,16053,232,3 +2020-06-27,Jerome,Idaho,16053,232,4 +2020-06-28,Jerome,Idaho,16053,232,4 +2020-06-29,Jerome,Idaho,16053,237,4 +2020-06-30,Jerome,Idaho,16053,239,5 +2020-07-01,Jerome,Idaho,16053,243,5 +2020-07-02,Jerome,Idaho,16053,244,5 +2020-07-03,Jerome,Idaho,16053,246,5 +2020-07-04,Jerome,Idaho,16053,247,5 +2020-07-05,Jerome,Idaho,16053,247,5 +2020-07-06,Jerome,Idaho,16053,251,5 +2020-07-07,Jerome,Idaho,16053,260,5 +2020-07-08,Jerome,Idaho,16053,270,5 +2020-07-09,Jerome,Idaho,16053,280,5 +2020-03-20,Kootenai,Idaho,16055,3,0 +2020-03-21,Kootenai,Idaho,16055,3,0 +2020-03-22,Kootenai,Idaho,16055,3,0 +2020-03-23,Kootenai,Idaho,16055,3,0 +2020-03-24,Kootenai,Idaho,16055,3,0 +2020-03-25,Kootenai,Idaho,16055,9,0 +2020-03-26,Kootenai,Idaho,16055,10,0 +2020-03-27,Kootenai,Idaho,16055,11,0 +2020-03-28,Kootenai,Idaho,16055,13,0 +2020-03-29,Kootenai,Idaho,16055,13,0 +2020-03-30,Kootenai,Idaho,16055,28,0 +2020-03-31,Kootenai,Idaho,16055,30,0 +2020-04-01,Kootenai,Idaho,16055,31,0 +2020-04-02,Kootenai,Idaho,16055,37,0 +2020-04-03,Kootenai,Idaho,16055,37,0 +2020-04-04,Kootenai,Idaho,16055,40,0 +2020-04-05,Kootenai,Idaho,16055,42,0 +2020-04-06,Kootenai,Idaho,16055,43,0 +2020-04-07,Kootenai,Idaho,16055,42,0 +2020-04-08,Kootenai,Idaho,16055,42,0 +2020-04-09,Kootenai,Idaho,16055,42,0 +2020-04-10,Kootenai,Idaho,16055,44,0 +2020-04-11,Kootenai,Idaho,16055,44,0 +2020-04-12,Kootenai,Idaho,16055,45,0 +2020-04-13,Kootenai,Idaho,16055,45,0 +2020-04-14,Kootenai,Idaho,16055,45,0 +2020-04-15,Kootenai,Idaho,16055,48,0 +2020-04-16,Kootenai,Idaho,16055,49,0 +2020-04-17,Kootenai,Idaho,16055,50,0 +2020-04-18,Kootenai,Idaho,16055,50,0 +2020-04-19,Kootenai,Idaho,16055,51,0 +2020-04-20,Kootenai,Idaho,16055,52,0 +2020-04-21,Kootenai,Idaho,16055,53,0 +2020-04-22,Kootenai,Idaho,16055,56,0 +2020-04-23,Kootenai,Idaho,16055,59,0 +2020-04-24,Kootenai,Idaho,16055,59,0 +2020-04-25,Kootenai,Idaho,16055,59,0 +2020-04-26,Kootenai,Idaho,16055,61,0 +2020-04-27,Kootenai,Idaho,16055,61,0 +2020-04-28,Kootenai,Idaho,16055,61,0 +2020-04-29,Kootenai,Idaho,16055,61,0 +2020-04-30,Kootenai,Idaho,16055,62,0 +2020-05-01,Kootenai,Idaho,16055,62,0 +2020-05-02,Kootenai,Idaho,16055,62,0 +2020-05-03,Kootenai,Idaho,16055,62,0 +2020-05-04,Kootenai,Idaho,16055,62,0 +2020-05-05,Kootenai,Idaho,16055,62,0 +2020-05-06,Kootenai,Idaho,16055,62,0 +2020-05-07,Kootenai,Idaho,16055,62,0 +2020-05-08,Kootenai,Idaho,16055,63,0 +2020-05-09,Kootenai,Idaho,16055,63,0 +2020-05-10,Kootenai,Idaho,16055,63,0 +2020-05-11,Kootenai,Idaho,16055,64,0 +2020-05-12,Kootenai,Idaho,16055,64,0 +2020-05-13,Kootenai,Idaho,16055,64,0 +2020-05-14,Kootenai,Idaho,16055,64,0 +2020-05-15,Kootenai,Idaho,16055,64,0 +2020-05-16,Kootenai,Idaho,16055,65,0 +2020-05-17,Kootenai,Idaho,16055,66,0 +2020-05-18,Kootenai,Idaho,16055,66,0 +2020-05-19,Kootenai,Idaho,16055,66,0 +2020-05-20,Kootenai,Idaho,16055,66,0 +2020-05-21,Kootenai,Idaho,16055,66,0 +2020-05-22,Kootenai,Idaho,16055,66,0 +2020-05-23,Kootenai,Idaho,16055,66,0 +2020-05-24,Kootenai,Idaho,16055,66,0 +2020-05-25,Kootenai,Idaho,16055,66,0 +2020-05-26,Kootenai,Idaho,16055,66,0 +2020-05-27,Kootenai,Idaho,16055,67,0 +2020-05-28,Kootenai,Idaho,16055,67,0 +2020-05-29,Kootenai,Idaho,16055,67,0 +2020-05-30,Kootenai,Idaho,16055,68,0 +2020-05-31,Kootenai,Idaho,16055,68,0 +2020-06-01,Kootenai,Idaho,16055,73,0 +2020-06-02,Kootenai,Idaho,16055,73,0 +2020-06-03,Kootenai,Idaho,16055,74,0 +2020-06-04,Kootenai,Idaho,16055,77,0 +2020-06-05,Kootenai,Idaho,16055,81,0 +2020-06-06,Kootenai,Idaho,16055,82,0 +2020-06-07,Kootenai,Idaho,16055,82,0 +2020-06-08,Kootenai,Idaho,16055,85,0 +2020-06-09,Kootenai,Idaho,16055,91,0 +2020-06-10,Kootenai,Idaho,16055,91,0 +2020-06-11,Kootenai,Idaho,16055,96,0 +2020-06-12,Kootenai,Idaho,16055,98,0 +2020-06-13,Kootenai,Idaho,16055,98,0 +2020-06-14,Kootenai,Idaho,16055,98,0 +2020-06-15,Kootenai,Idaho,16055,101,0 +2020-06-16,Kootenai,Idaho,16055,104,0 +2020-06-17,Kootenai,Idaho,16055,105,0 +2020-06-18,Kootenai,Idaho,16055,107,1 +2020-06-19,Kootenai,Idaho,16055,115,1 +2020-06-20,Kootenai,Idaho,16055,122,1 +2020-06-21,Kootenai,Idaho,16055,122,1 +2020-06-22,Kootenai,Idaho,16055,129,1 +2020-06-23,Kootenai,Idaho,16055,134,1 +2020-06-24,Kootenai,Idaho,16055,155,1 +2020-06-25,Kootenai,Idaho,16055,171,1 +2020-06-26,Kootenai,Idaho,16055,176,1 +2020-06-27,Kootenai,Idaho,16055,187,1 +2020-06-28,Kootenai,Idaho,16055,187,1 +2020-06-29,Kootenai,Idaho,16055,234,1 +2020-06-30,Kootenai,Idaho,16055,261,1 +2020-07-01,Kootenai,Idaho,16055,286,1 +2020-07-02,Kootenai,Idaho,16055,325,1 +2020-07-03,Kootenai,Idaho,16055,357,1 +2020-07-04,Kootenai,Idaho,16055,401,1 +2020-07-05,Kootenai,Idaho,16055,424,1 +2020-07-06,Kootenai,Idaho,16055,440,1 +2020-07-07,Kootenai,Idaho,16055,466,1 +2020-07-08,Kootenai,Idaho,16055,514,1 +2020-07-09,Kootenai,Idaho,16055,595,1 +2020-04-01,Latah,Idaho,16057,1,0 +2020-04-02,Latah,Idaho,16057,1,0 +2020-04-03,Latah,Idaho,16057,1,0 +2020-04-04,Latah,Idaho,16057,1,0 +2020-04-05,Latah,Idaho,16057,1,0 +2020-04-06,Latah,Idaho,16057,2,0 +2020-04-07,Latah,Idaho,16057,2,0 +2020-04-08,Latah,Idaho,16057,2,0 +2020-04-09,Latah,Idaho,16057,3,0 +2020-04-10,Latah,Idaho,16057,3,0 +2020-04-11,Latah,Idaho,16057,3,0 +2020-04-12,Latah,Idaho,16057,3,0 +2020-04-13,Latah,Idaho,16057,3,0 +2020-04-14,Latah,Idaho,16057,3,0 +2020-04-15,Latah,Idaho,16057,3,0 +2020-04-16,Latah,Idaho,16057,3,0 +2020-04-17,Latah,Idaho,16057,3,0 +2020-04-18,Latah,Idaho,16057,3,0 +2020-04-19,Latah,Idaho,16057,3,0 +2020-04-20,Latah,Idaho,16057,4,0 +2020-04-21,Latah,Idaho,16057,4,0 +2020-04-22,Latah,Idaho,16057,4,0 +2020-04-23,Latah,Idaho,16057,4,0 +2020-04-24,Latah,Idaho,16057,4,0 +2020-04-25,Latah,Idaho,16057,4,0 +2020-04-26,Latah,Idaho,16057,4,0 +2020-04-27,Latah,Idaho,16057,4,0 +2020-04-28,Latah,Idaho,16057,5,0 +2020-04-29,Latah,Idaho,16057,5,0 +2020-04-30,Latah,Idaho,16057,5,0 +2020-05-01,Latah,Idaho,16057,5,0 +2020-05-02,Latah,Idaho,16057,5,0 +2020-05-03,Latah,Idaho,16057,5,0 +2020-05-04,Latah,Idaho,16057,5,0 +2020-05-05,Latah,Idaho,16057,5,0 +2020-05-06,Latah,Idaho,16057,5,0 +2020-05-07,Latah,Idaho,16057,5,0 +2020-05-08,Latah,Idaho,16057,5,0 +2020-05-09,Latah,Idaho,16057,5,0 +2020-05-10,Latah,Idaho,16057,5,0 +2020-05-11,Latah,Idaho,16057,5,0 +2020-05-12,Latah,Idaho,16057,5,0 +2020-05-13,Latah,Idaho,16057,6,0 +2020-05-14,Latah,Idaho,16057,6,0 +2020-05-15,Latah,Idaho,16057,6,0 +2020-05-16,Latah,Idaho,16057,6,0 +2020-05-17,Latah,Idaho,16057,6,0 +2020-05-18,Latah,Idaho,16057,6,0 +2020-05-19,Latah,Idaho,16057,6,0 +2020-05-20,Latah,Idaho,16057,6,0 +2020-05-21,Latah,Idaho,16057,6,0 +2020-05-22,Latah,Idaho,16057,7,0 +2020-05-23,Latah,Idaho,16057,7,0 +2020-05-24,Latah,Idaho,16057,7,0 +2020-05-25,Latah,Idaho,16057,7,0 +2020-05-26,Latah,Idaho,16057,7,0 +2020-05-27,Latah,Idaho,16057,7,0 +2020-05-28,Latah,Idaho,16057,7,0 +2020-05-29,Latah,Idaho,16057,7,0 +2020-05-30,Latah,Idaho,16057,7,0 +2020-05-31,Latah,Idaho,16057,7,0 +2020-06-01,Latah,Idaho,16057,7,0 +2020-06-02,Latah,Idaho,16057,7,0 +2020-06-03,Latah,Idaho,16057,7,0 +2020-06-04,Latah,Idaho,16057,7,0 +2020-06-05,Latah,Idaho,16057,7,0 +2020-06-06,Latah,Idaho,16057,7,0 +2020-06-07,Latah,Idaho,16057,7,0 +2020-06-08,Latah,Idaho,16057,7,0 +2020-06-09,Latah,Idaho,16057,7,0 +2020-06-10,Latah,Idaho,16057,7,0 +2020-06-11,Latah,Idaho,16057,7,0 +2020-06-12,Latah,Idaho,16057,7,0 +2020-06-13,Latah,Idaho,16057,7,0 +2020-06-14,Latah,Idaho,16057,7,0 +2020-06-15,Latah,Idaho,16057,8,0 +2020-06-16,Latah,Idaho,16057,8,0 +2020-06-17,Latah,Idaho,16057,8,0 +2020-06-18,Latah,Idaho,16057,8,0 +2020-06-19,Latah,Idaho,16057,8,0 +2020-06-20,Latah,Idaho,16057,8,0 +2020-06-21,Latah,Idaho,16057,8,0 +2020-06-22,Latah,Idaho,16057,9,0 +2020-06-23,Latah,Idaho,16057,9,0 +2020-06-24,Latah,Idaho,16057,9,0 +2020-06-25,Latah,Idaho,16057,10,0 +2020-06-26,Latah,Idaho,16057,11,0 +2020-06-27,Latah,Idaho,16057,11,0 +2020-06-28,Latah,Idaho,16057,12,0 +2020-06-29,Latah,Idaho,16057,14,0 +2020-06-30,Latah,Idaho,16057,20,0 +2020-07-01,Latah,Idaho,16057,25,0 +2020-07-02,Latah,Idaho,16057,26,0 +2020-07-03,Latah,Idaho,16057,26,0 +2020-07-04,Latah,Idaho,16057,26,0 +2020-07-05,Latah,Idaho,16057,26,0 +2020-07-06,Latah,Idaho,16057,28,0 +2020-07-07,Latah,Idaho,16057,31,0 +2020-07-08,Latah,Idaho,16057,32,0 +2020-07-09,Latah,Idaho,16057,35,0 +2020-04-25,Lemhi,Idaho,16059,1,0 +2020-04-26,Lemhi,Idaho,16059,1,0 +2020-04-27,Lemhi,Idaho,16059,1,0 +2020-04-28,Lemhi,Idaho,16059,1,0 +2020-04-29,Lemhi,Idaho,16059,1,0 +2020-04-30,Lemhi,Idaho,16059,1,0 +2020-05-01,Lemhi,Idaho,16059,1,0 +2020-05-02,Lemhi,Idaho,16059,1,0 +2020-05-03,Lemhi,Idaho,16059,1,0 +2020-05-04,Lemhi,Idaho,16059,1,0 +2020-05-05,Lemhi,Idaho,16059,1,0 +2020-05-06,Lemhi,Idaho,16059,1,0 +2020-05-07,Lemhi,Idaho,16059,1,0 +2020-05-08,Lemhi,Idaho,16059,1,0 +2020-05-09,Lemhi,Idaho,16059,1,0 +2020-05-10,Lemhi,Idaho,16059,1,0 +2020-05-11,Lemhi,Idaho,16059,1,0 +2020-05-12,Lemhi,Idaho,16059,1,0 +2020-05-13,Lemhi,Idaho,16059,1,0 +2020-05-14,Lemhi,Idaho,16059,1,0 +2020-05-15,Lemhi,Idaho,16059,1,0 +2020-05-16,Lemhi,Idaho,16059,1,0 +2020-05-17,Lemhi,Idaho,16059,1,0 +2020-05-18,Lemhi,Idaho,16059,1,0 +2020-05-19,Lemhi,Idaho,16059,1,0 +2020-05-20,Lemhi,Idaho,16059,1,0 +2020-05-21,Lemhi,Idaho,16059,1,0 +2020-05-22,Lemhi,Idaho,16059,1,0 +2020-05-23,Lemhi,Idaho,16059,1,0 +2020-05-24,Lemhi,Idaho,16059,1,0 +2020-05-25,Lemhi,Idaho,16059,1,0 +2020-05-26,Lemhi,Idaho,16059,1,0 +2020-05-27,Lemhi,Idaho,16059,1,0 +2020-05-28,Lemhi,Idaho,16059,1,0 +2020-05-29,Lemhi,Idaho,16059,1,0 +2020-05-30,Lemhi,Idaho,16059,1,0 +2020-05-31,Lemhi,Idaho,16059,1,0 +2020-06-01,Lemhi,Idaho,16059,1,0 +2020-06-02,Lemhi,Idaho,16059,1,0 +2020-06-03,Lemhi,Idaho,16059,1,0 +2020-06-04,Lemhi,Idaho,16059,1,0 +2020-06-05,Lemhi,Idaho,16059,1,0 +2020-06-06,Lemhi,Idaho,16059,1,0 +2020-06-07,Lemhi,Idaho,16059,1,0 +2020-06-08,Lemhi,Idaho,16059,1,0 +2020-06-09,Lemhi,Idaho,16059,1,0 +2020-06-10,Lemhi,Idaho,16059,1,0 +2020-06-11,Lemhi,Idaho,16059,1,0 +2020-06-12,Lemhi,Idaho,16059,1,0 +2020-06-13,Lemhi,Idaho,16059,1,0 +2020-06-14,Lemhi,Idaho,16059,1,0 +2020-06-15,Lemhi,Idaho,16059,2,0 +2020-06-16,Lemhi,Idaho,16059,2,0 +2020-06-17,Lemhi,Idaho,16059,2,0 +2020-06-18,Lemhi,Idaho,16059,2,0 +2020-06-19,Lemhi,Idaho,16059,2,0 +2020-06-20,Lemhi,Idaho,16059,2,0 +2020-06-21,Lemhi,Idaho,16059,2,0 +2020-06-22,Lemhi,Idaho,16059,2,0 +2020-06-23,Lemhi,Idaho,16059,2,0 +2020-06-24,Lemhi,Idaho,16059,2,0 +2020-06-25,Lemhi,Idaho,16059,2,0 +2020-06-26,Lemhi,Idaho,16059,2,0 +2020-06-27,Lemhi,Idaho,16059,2,0 +2020-06-28,Lemhi,Idaho,16059,2,0 +2020-06-29,Lemhi,Idaho,16059,2,0 +2020-06-30,Lemhi,Idaho,16059,2,0 +2020-07-01,Lemhi,Idaho,16059,2,0 +2020-07-02,Lemhi,Idaho,16059,2,0 +2020-07-03,Lemhi,Idaho,16059,2,0 +2020-07-04,Lemhi,Idaho,16059,2,0 +2020-07-05,Lemhi,Idaho,16059,2,0 +2020-07-06,Lemhi,Idaho,16059,2,0 +2020-07-07,Lemhi,Idaho,16059,2,0 +2020-07-08,Lemhi,Idaho,16059,2,0 +2020-07-09,Lemhi,Idaho,16059,3,0 +2020-07-06,Lewis,Idaho,16061,1,0 +2020-07-07,Lewis,Idaho,16061,1,0 +2020-07-08,Lewis,Idaho,16061,1,0 +2020-03-28,Lincoln,Idaho,16063,1,0 +2020-03-29,Lincoln,Idaho,16063,1,0 +2020-03-30,Lincoln,Idaho,16063,1,0 +2020-03-31,Lincoln,Idaho,16063,2,0 +2020-04-01,Lincoln,Idaho,16063,5,0 +2020-04-02,Lincoln,Idaho,16063,5,0 +2020-04-03,Lincoln,Idaho,16063,7,0 +2020-04-04,Lincoln,Idaho,16063,9,0 +2020-04-05,Lincoln,Idaho,16063,9,0 +2020-04-06,Lincoln,Idaho,16063,12,0 +2020-04-07,Lincoln,Idaho,16063,12,0 +2020-04-08,Lincoln,Idaho,16063,12,0 +2020-04-09,Lincoln,Idaho,16063,14,0 +2020-04-10,Lincoln,Idaho,16063,14,0 +2020-04-11,Lincoln,Idaho,16063,14,0 +2020-04-12,Lincoln,Idaho,16063,15,0 +2020-04-13,Lincoln,Idaho,16063,15,0 +2020-04-14,Lincoln,Idaho,16063,15,0 +2020-04-15,Lincoln,Idaho,16063,15,0 +2020-04-16,Lincoln,Idaho,16063,15,0 +2020-04-17,Lincoln,Idaho,16063,16,0 +2020-04-18,Lincoln,Idaho,16063,17,0 +2020-04-19,Lincoln,Idaho,16063,17,0 +2020-04-20,Lincoln,Idaho,16063,17,0 +2020-04-21,Lincoln,Idaho,16063,18,0 +2020-04-22,Lincoln,Idaho,16063,20,0 +2020-04-23,Lincoln,Idaho,16063,21,0 +2020-04-24,Lincoln,Idaho,16063,21,0 +2020-04-25,Lincoln,Idaho,16063,22,0 +2020-04-26,Lincoln,Idaho,16063,22,0 +2020-04-27,Lincoln,Idaho,16063,23,0 +2020-04-28,Lincoln,Idaho,16063,24,0 +2020-04-29,Lincoln,Idaho,16063,27,0 +2020-04-30,Lincoln,Idaho,16063,27,0 +2020-05-01,Lincoln,Idaho,16063,27,0 +2020-05-02,Lincoln,Idaho,16063,29,0 +2020-05-03,Lincoln,Idaho,16063,29,0 +2020-05-04,Lincoln,Idaho,16063,29,0 +2020-05-05,Lincoln,Idaho,16063,29,0 +2020-05-06,Lincoln,Idaho,16063,29,0 +2020-05-07,Lincoln,Idaho,16063,29,0 +2020-05-08,Lincoln,Idaho,16063,29,0 +2020-05-09,Lincoln,Idaho,16063,29,0 +2020-05-10,Lincoln,Idaho,16063,29,0 +2020-05-11,Lincoln,Idaho,16063,29,0 +2020-05-12,Lincoln,Idaho,16063,29,0 +2020-05-13,Lincoln,Idaho,16063,29,0 +2020-05-14,Lincoln,Idaho,16063,29,0 +2020-05-15,Lincoln,Idaho,16063,29,0 +2020-05-16,Lincoln,Idaho,16063,29,0 +2020-05-17,Lincoln,Idaho,16063,29,0 +2020-05-18,Lincoln,Idaho,16063,29,0 +2020-05-19,Lincoln,Idaho,16063,29,0 +2020-05-20,Lincoln,Idaho,16063,29,0 +2020-05-21,Lincoln,Idaho,16063,29,0 +2020-05-22,Lincoln,Idaho,16063,30,0 +2020-05-23,Lincoln,Idaho,16063,30,0 +2020-05-24,Lincoln,Idaho,16063,30,0 +2020-05-25,Lincoln,Idaho,16063,30,0 +2020-05-26,Lincoln,Idaho,16063,32,0 +2020-05-27,Lincoln,Idaho,16063,33,0 +2020-05-28,Lincoln,Idaho,16063,33,0 +2020-05-29,Lincoln,Idaho,16063,33,0 +2020-05-30,Lincoln,Idaho,16063,33,0 +2020-05-31,Lincoln,Idaho,16063,33,0 +2020-06-01,Lincoln,Idaho,16063,33,0 +2020-06-02,Lincoln,Idaho,16063,33,0 +2020-06-03,Lincoln,Idaho,16063,33,0 +2020-06-04,Lincoln,Idaho,16063,33,0 +2020-06-05,Lincoln,Idaho,16063,33,0 +2020-06-06,Lincoln,Idaho,16063,34,0 +2020-06-07,Lincoln,Idaho,16063,34,0 +2020-06-08,Lincoln,Idaho,16063,34,0 +2020-06-09,Lincoln,Idaho,16063,34,0 +2020-06-10,Lincoln,Idaho,16063,34,0 +2020-06-11,Lincoln,Idaho,16063,35,0 +2020-06-12,Lincoln,Idaho,16063,35,0 +2020-06-13,Lincoln,Idaho,16063,35,0 +2020-06-14,Lincoln,Idaho,16063,35,0 +2020-06-15,Lincoln,Idaho,16063,35,0 +2020-06-16,Lincoln,Idaho,16063,35,0 +2020-06-17,Lincoln,Idaho,16063,35,0 +2020-06-18,Lincoln,Idaho,16063,35,0 +2020-06-19,Lincoln,Idaho,16063,35,0 +2020-06-20,Lincoln,Idaho,16063,35,0 +2020-06-21,Lincoln,Idaho,16063,35,0 +2020-06-22,Lincoln,Idaho,16063,35,0 +2020-06-23,Lincoln,Idaho,16063,36,0 +2020-06-24,Lincoln,Idaho,16063,36,0 +2020-06-25,Lincoln,Idaho,16063,36,0 +2020-06-26,Lincoln,Idaho,16063,36,0 +2020-06-27,Lincoln,Idaho,16063,36,0 +2020-06-28,Lincoln,Idaho,16063,36,0 +2020-06-29,Lincoln,Idaho,16063,36,0 +2020-06-30,Lincoln,Idaho,16063,36,0 +2020-07-01,Lincoln,Idaho,16063,36,0 +2020-07-02,Lincoln,Idaho,16063,36,0 +2020-07-03,Lincoln,Idaho,16063,36,0 +2020-07-04,Lincoln,Idaho,16063,36,0 +2020-07-05,Lincoln,Idaho,16063,36,0 +2020-07-06,Lincoln,Idaho,16063,36,0 +2020-07-07,Lincoln,Idaho,16063,37,0 +2020-07-08,Lincoln,Idaho,16063,38,0 +2020-07-09,Lincoln,Idaho,16063,40,0 +2020-03-17,Madison,Idaho,16065,1,0 +2020-03-18,Madison,Idaho,16065,1,0 +2020-03-19,Madison,Idaho,16065,1,0 +2020-03-20,Madison,Idaho,16065,1,0 +2020-03-21,Madison,Idaho,16065,2,0 +2020-03-22,Madison,Idaho,16065,2,0 +2020-03-23,Madison,Idaho,16065,2,0 +2020-03-24,Madison,Idaho,16065,2,0 +2020-03-25,Madison,Idaho,16065,2,0 +2020-03-26,Madison,Idaho,16065,2,0 +2020-03-27,Madison,Idaho,16065,2,0 +2020-03-28,Madison,Idaho,16065,2,0 +2020-03-29,Madison,Idaho,16065,2,0 +2020-03-30,Madison,Idaho,16065,2,0 +2020-03-31,Madison,Idaho,16065,4,0 +2020-04-01,Madison,Idaho,16065,4,0 +2020-04-02,Madison,Idaho,16065,4,0 +2020-04-03,Madison,Idaho,16065,4,0 +2020-04-04,Madison,Idaho,16065,4,0 +2020-04-05,Madison,Idaho,16065,4,0 +2020-04-06,Madison,Idaho,16065,4,0 +2020-04-07,Madison,Idaho,16065,4,0 +2020-04-08,Madison,Idaho,16065,4,0 +2020-04-09,Madison,Idaho,16065,7,0 +2020-04-10,Madison,Idaho,16065,9,0 +2020-04-11,Madison,Idaho,16065,8,0 +2020-04-12,Madison,Idaho,16065,8,0 +2020-04-13,Madison,Idaho,16065,8,0 +2020-04-14,Madison,Idaho,16065,8,0 +2020-04-15,Madison,Idaho,16065,8,0 +2020-04-16,Madison,Idaho,16065,8,0 +2020-04-17,Madison,Idaho,16065,8,0 +2020-04-18,Madison,Idaho,16065,8,0 +2020-04-19,Madison,Idaho,16065,8,0 +2020-04-20,Madison,Idaho,16065,8,0 +2020-04-21,Madison,Idaho,16065,8,0 +2020-04-22,Madison,Idaho,16065,8,0 +2020-04-23,Madison,Idaho,16065,8,0 +2020-04-24,Madison,Idaho,16065,8,0 +2020-04-25,Madison,Idaho,16065,8,0 +2020-04-26,Madison,Idaho,16065,8,0 +2020-04-27,Madison,Idaho,16065,9,0 +2020-04-28,Madison,Idaho,16065,9,0 +2020-04-29,Madison,Idaho,16065,10,0 +2020-04-30,Madison,Idaho,16065,11,0 +2020-05-01,Madison,Idaho,16065,11,0 +2020-05-02,Madison,Idaho,16065,12,0 +2020-05-03,Madison,Idaho,16065,12,0 +2020-05-04,Madison,Idaho,16065,12,0 +2020-05-05,Madison,Idaho,16065,13,0 +2020-05-06,Madison,Idaho,16065,13,0 +2020-05-07,Madison,Idaho,16065,16,0 +2020-05-08,Madison,Idaho,16065,16,0 +2020-05-09,Madison,Idaho,16065,17,0 +2020-05-10,Madison,Idaho,16065,19,0 +2020-05-11,Madison,Idaho,16065,19,0 +2020-05-12,Madison,Idaho,16065,19,0 +2020-05-13,Madison,Idaho,16065,19,0 +2020-05-14,Madison,Idaho,16065,19,0 +2020-05-15,Madison,Idaho,16065,18,0 +2020-05-16,Madison,Idaho,16065,19,0 +2020-05-17,Madison,Idaho,16065,20,0 +2020-05-18,Madison,Idaho,16065,20,0 +2020-05-19,Madison,Idaho,16065,20,0 +2020-05-20,Madison,Idaho,16065,20,0 +2020-05-21,Madison,Idaho,16065,20,0 +2020-05-22,Madison,Idaho,16065,20,0 +2020-05-23,Madison,Idaho,16065,20,0 +2020-05-24,Madison,Idaho,16065,20,0 +2020-05-25,Madison,Idaho,16065,21,0 +2020-05-26,Madison,Idaho,16065,21,0 +2020-05-27,Madison,Idaho,16065,21,0 +2020-05-28,Madison,Idaho,16065,21,0 +2020-05-29,Madison,Idaho,16065,21,0 +2020-05-30,Madison,Idaho,16065,21,0 +2020-05-31,Madison,Idaho,16065,22,0 +2020-06-01,Madison,Idaho,16065,22,0 +2020-06-02,Madison,Idaho,16065,22,0 +2020-06-03,Madison,Idaho,16065,25,0 +2020-06-04,Madison,Idaho,16065,25,0 +2020-06-05,Madison,Idaho,16065,27,0 +2020-06-06,Madison,Idaho,16065,27,0 +2020-06-07,Madison,Idaho,16065,27,0 +2020-06-08,Madison,Idaho,16065,27,0 +2020-06-09,Madison,Idaho,16065,27,0 +2020-06-10,Madison,Idaho,16065,27,0 +2020-06-11,Madison,Idaho,16065,28,0 +2020-06-12,Madison,Idaho,16065,29,0 +2020-06-13,Madison,Idaho,16065,29,0 +2020-06-14,Madison,Idaho,16065,30,0 +2020-06-15,Madison,Idaho,16065,30,0 +2020-06-16,Madison,Idaho,16065,30,0 +2020-06-17,Madison,Idaho,16065,30,0 +2020-06-18,Madison,Idaho,16065,30,0 +2020-06-19,Madison,Idaho,16065,30,0 +2020-06-20,Madison,Idaho,16065,30,0 +2020-06-21,Madison,Idaho,16065,31,0 +2020-06-22,Madison,Idaho,16065,31,0 +2020-06-23,Madison,Idaho,16065,31,0 +2020-06-24,Madison,Idaho,16065,31,0 +2020-06-25,Madison,Idaho,16065,31,0 +2020-06-26,Madison,Idaho,16065,31,0 +2020-06-27,Madison,Idaho,16065,33,0 +2020-06-28,Madison,Idaho,16065,34,0 +2020-06-29,Madison,Idaho,16065,36,0 +2020-06-30,Madison,Idaho,16065,35,0 +2020-07-01,Madison,Idaho,16065,35,0 +2020-07-02,Madison,Idaho,16065,35,0 +2020-07-03,Madison,Idaho,16065,37,0 +2020-07-04,Madison,Idaho,16065,41,0 +2020-07-05,Madison,Idaho,16065,44,0 +2020-07-06,Madison,Idaho,16065,47,0 +2020-07-07,Madison,Idaho,16065,48,0 +2020-07-08,Madison,Idaho,16065,54,0 +2020-07-09,Madison,Idaho,16065,54,0 +2020-03-30,Minidoka,Idaho,16067,1,0 +2020-03-31,Minidoka,Idaho,16067,1,0 +2020-04-01,Minidoka,Idaho,16067,1,0 +2020-04-02,Minidoka,Idaho,16067,1,0 +2020-04-03,Minidoka,Idaho,16067,1,0 +2020-04-04,Minidoka,Idaho,16067,3,0 +2020-04-05,Minidoka,Idaho,16067,3,0 +2020-04-06,Minidoka,Idaho,16067,3,0 +2020-04-07,Minidoka,Idaho,16067,3,0 +2020-04-08,Minidoka,Idaho,16067,3,0 +2020-04-09,Minidoka,Idaho,16067,7,0 +2020-04-10,Minidoka,Idaho,16067,8,0 +2020-04-11,Minidoka,Idaho,16067,8,0 +2020-04-12,Minidoka,Idaho,16067,9,0 +2020-04-13,Minidoka,Idaho,16067,9,0 +2020-04-14,Minidoka,Idaho,16067,9,0 +2020-04-15,Minidoka,Idaho,16067,9,0 +2020-04-16,Minidoka,Idaho,16067,9,0 +2020-04-17,Minidoka,Idaho,16067,10,0 +2020-04-18,Minidoka,Idaho,16067,10,0 +2020-04-19,Minidoka,Idaho,16067,10,0 +2020-04-20,Minidoka,Idaho,16067,10,0 +2020-04-21,Minidoka,Idaho,16067,10,0 +2020-04-22,Minidoka,Idaho,16067,10,0 +2020-04-23,Minidoka,Idaho,16067,10,0 +2020-04-24,Minidoka,Idaho,16067,10,0 +2020-04-25,Minidoka,Idaho,16067,10,0 +2020-04-26,Minidoka,Idaho,16067,10,0 +2020-04-27,Minidoka,Idaho,16067,10,0 +2020-04-28,Minidoka,Idaho,16067,11,0 +2020-04-29,Minidoka,Idaho,16067,11,0 +2020-04-30,Minidoka,Idaho,16067,11,0 +2020-05-01,Minidoka,Idaho,16067,10,0 +2020-05-02,Minidoka,Idaho,16067,11,0 +2020-05-03,Minidoka,Idaho,16067,10,0 +2020-05-04,Minidoka,Idaho,16067,11,0 +2020-05-05,Minidoka,Idaho,16067,11,0 +2020-05-06,Minidoka,Idaho,16067,11,0 +2020-05-07,Minidoka,Idaho,16067,11,0 +2020-05-08,Minidoka,Idaho,16067,11,0 +2020-05-09,Minidoka,Idaho,16067,11,0 +2020-05-10,Minidoka,Idaho,16067,11,0 +2020-05-11,Minidoka,Idaho,16067,11,0 +2020-05-12,Minidoka,Idaho,16067,12,0 +2020-05-13,Minidoka,Idaho,16067,13,0 +2020-05-14,Minidoka,Idaho,16067,15,0 +2020-05-15,Minidoka,Idaho,16067,15,0 +2020-05-16,Minidoka,Idaho,16067,15,0 +2020-05-17,Minidoka,Idaho,16067,15,0 +2020-05-18,Minidoka,Idaho,16067,15,0 +2020-05-19,Minidoka,Idaho,16067,18,0 +2020-05-20,Minidoka,Idaho,16067,20,0 +2020-05-21,Minidoka,Idaho,16067,25,0 +2020-05-22,Minidoka,Idaho,16067,26,0 +2020-05-23,Minidoka,Idaho,16067,29,0 +2020-05-24,Minidoka,Idaho,16067,36,0 +2020-05-25,Minidoka,Idaho,16067,36,0 +2020-05-26,Minidoka,Idaho,16067,40,0 +2020-05-27,Minidoka,Idaho,16067,43,0 +2020-05-28,Minidoka,Idaho,16067,45,0 +2020-05-29,Minidoka,Idaho,16067,46,0 +2020-05-30,Minidoka,Idaho,16067,50,0 +2020-05-31,Minidoka,Idaho,16067,50,0 +2020-06-01,Minidoka,Idaho,16067,56,0 +2020-06-02,Minidoka,Idaho,16067,58,0 +2020-06-03,Minidoka,Idaho,16067,61,0 +2020-06-04,Minidoka,Idaho,16067,66,0 +2020-06-05,Minidoka,Idaho,16067,71,0 +2020-06-06,Minidoka,Idaho,16067,72,0 +2020-06-07,Minidoka,Idaho,16067,72,0 +2020-06-08,Minidoka,Idaho,16067,78,0 +2020-06-09,Minidoka,Idaho,16067,80,0 +2020-06-10,Minidoka,Idaho,16067,85,0 +2020-06-11,Minidoka,Idaho,16067,87,0 +2020-06-12,Minidoka,Idaho,16067,98,0 +2020-06-13,Minidoka,Idaho,16067,101,0 +2020-06-14,Minidoka,Idaho,16067,101,0 +2020-06-15,Minidoka,Idaho,16067,103,0 +2020-06-16,Minidoka,Idaho,16067,103,0 +2020-06-17,Minidoka,Idaho,16067,109,0 +2020-06-18,Minidoka,Idaho,16067,113,0 +2020-06-19,Minidoka,Idaho,16067,115,0 +2020-06-20,Minidoka,Idaho,16067,115,0 +2020-06-21,Minidoka,Idaho,16067,115,0 +2020-06-22,Minidoka,Idaho,16067,124,0 +2020-06-23,Minidoka,Idaho,16067,130,0 +2020-06-24,Minidoka,Idaho,16067,136,0 +2020-06-25,Minidoka,Idaho,16067,138,0 +2020-06-26,Minidoka,Idaho,16067,148,0 +2020-06-27,Minidoka,Idaho,16067,153,0 +2020-06-28,Minidoka,Idaho,16067,153,0 +2020-06-29,Minidoka,Idaho,16067,175,0 +2020-06-30,Minidoka,Idaho,16067,185,0 +2020-07-01,Minidoka,Idaho,16067,188,0 +2020-07-02,Minidoka,Idaho,16067,201,0 +2020-07-03,Minidoka,Idaho,16067,201,0 +2020-07-04,Minidoka,Idaho,16067,202,0 +2020-07-05,Minidoka,Idaho,16067,208,0 +2020-07-06,Minidoka,Idaho,16067,222,0 +2020-07-07,Minidoka,Idaho,16067,227,0 +2020-07-08,Minidoka,Idaho,16067,238,0 +2020-07-09,Minidoka,Idaho,16067,250,0 +2020-03-25,Nez Perce,Idaho,16069,1,0 +2020-03-26,Nez Perce,Idaho,16069,4,0 +2020-03-27,Nez Perce,Idaho,16069,4,1 +2020-03-28,Nez Perce,Idaho,16069,4,1 +2020-03-29,Nez Perce,Idaho,16069,4,1 +2020-03-30,Nez Perce,Idaho,16069,7,1 +2020-03-31,Nez Perce,Idaho,16069,9,2 +2020-04-01,Nez Perce,Idaho,16069,10,2 +2020-04-02,Nez Perce,Idaho,16069,13,2 +2020-04-03,Nez Perce,Idaho,16069,13,2 +2020-04-04,Nez Perce,Idaho,16069,13,2 +2020-04-05,Nez Perce,Idaho,16069,13,2 +2020-04-06,Nez Perce,Idaho,16069,15,2 +2020-04-07,Nez Perce,Idaho,16069,17,2 +2020-04-08,Nez Perce,Idaho,16069,18,2 +2020-04-09,Nez Perce,Idaho,16069,21,5 +2020-04-10,Nez Perce,Idaho,16069,21,5 +2020-04-11,Nez Perce,Idaho,16069,21,5 +2020-04-12,Nez Perce,Idaho,16069,21,5 +2020-04-13,Nez Perce,Idaho,16069,23,6 +2020-04-14,Nez Perce,Idaho,16069,26,9 +2020-04-15,Nez Perce,Idaho,16069,27,10 +2020-04-16,Nez Perce,Idaho,16069,29,10 +2020-04-17,Nez Perce,Idaho,16069,30,11 +2020-04-18,Nez Perce,Idaho,16069,30,11 +2020-04-19,Nez Perce,Idaho,16069,30,11 +2020-04-20,Nez Perce,Idaho,16069,40,11 +2020-04-21,Nez Perce,Idaho,16069,44,12 +2020-04-22,Nez Perce,Idaho,16069,45,13 +2020-04-23,Nez Perce,Idaho,16069,55,13 +2020-04-24,Nez Perce,Idaho,16069,58,13 +2020-04-25,Nez Perce,Idaho,16069,58,13 +2020-04-26,Nez Perce,Idaho,16069,58,13 +2020-04-27,Nez Perce,Idaho,16069,59,15 +2020-04-28,Nez Perce,Idaho,16069,59,16 +2020-04-29,Nez Perce,Idaho,16069,60,16 +2020-04-30,Nez Perce,Idaho,16069,60,18 +2020-05-01,Nez Perce,Idaho,16069,60,18 +2020-05-02,Nez Perce,Idaho,16069,60,18 +2020-05-03,Nez Perce,Idaho,16069,60,18 +2020-05-04,Nez Perce,Idaho,16069,74,18 +2020-05-05,Nez Perce,Idaho,16069,74,18 +2020-05-06,Nez Perce,Idaho,16069,78,18 +2020-05-07,Nez Perce,Idaho,16069,78,19 +2020-05-08,Nez Perce,Idaho,16069,78,19 +2020-05-09,Nez Perce,Idaho,16069,78,19 +2020-05-10,Nez Perce,Idaho,16069,78,19 +2020-05-11,Nez Perce,Idaho,16069,78,19 +2020-05-12,Nez Perce,Idaho,16069,79,19 +2020-05-13,Nez Perce,Idaho,16069,79,19 +2020-05-14,Nez Perce,Idaho,16069,79,19 +2020-05-15,Nez Perce,Idaho,16069,79,19 +2020-05-16,Nez Perce,Idaho,16069,79,19 +2020-05-17,Nez Perce,Idaho,16069,79,19 +2020-05-18,Nez Perce,Idaho,16069,79,19 +2020-05-19,Nez Perce,Idaho,16069,79,19 +2020-05-20,Nez Perce,Idaho,16069,81,19 +2020-05-21,Nez Perce,Idaho,16069,81,19 +2020-05-22,Nez Perce,Idaho,16069,81,19 +2020-05-23,Nez Perce,Idaho,16069,81,19 +2020-05-24,Nez Perce,Idaho,16069,81,19 +2020-05-25,Nez Perce,Idaho,16069,81,19 +2020-05-26,Nez Perce,Idaho,16069,82,19 +2020-05-27,Nez Perce,Idaho,16069,82,19 +2020-05-28,Nez Perce,Idaho,16069,82,19 +2020-05-29,Nez Perce,Idaho,16069,82,19 +2020-05-30,Nez Perce,Idaho,16069,82,19 +2020-05-31,Nez Perce,Idaho,16069,82,19 +2020-06-01,Nez Perce,Idaho,16069,82,19 +2020-06-02,Nez Perce,Idaho,16069,82,19 +2020-06-03,Nez Perce,Idaho,16069,83,19 +2020-06-04,Nez Perce,Idaho,16069,83,19 +2020-06-05,Nez Perce,Idaho,16069,83,19 +2020-06-06,Nez Perce,Idaho,16069,83,19 +2020-06-07,Nez Perce,Idaho,16069,83,19 +2020-06-08,Nez Perce,Idaho,16069,83,19 +2020-06-09,Nez Perce,Idaho,16069,83,19 +2020-06-10,Nez Perce,Idaho,16069,84,19 +2020-06-11,Nez Perce,Idaho,16069,84,19 +2020-06-12,Nez Perce,Idaho,16069,84,19 +2020-06-13,Nez Perce,Idaho,16069,84,19 +2020-06-14,Nez Perce,Idaho,16069,84,19 +2020-06-15,Nez Perce,Idaho,16069,84,19 +2020-06-16,Nez Perce,Idaho,16069,84,19 +2020-06-17,Nez Perce,Idaho,16069,84,19 +2020-06-18,Nez Perce,Idaho,16069,84,19 +2020-06-19,Nez Perce,Idaho,16069,84,19 +2020-06-20,Nez Perce,Idaho,16069,84,19 +2020-06-21,Nez Perce,Idaho,16069,84,19 +2020-06-22,Nez Perce,Idaho,16069,89,19 +2020-06-23,Nez Perce,Idaho,16069,90,19 +2020-06-24,Nez Perce,Idaho,16069,91,19 +2020-06-25,Nez Perce,Idaho,16069,91,19 +2020-06-26,Nez Perce,Idaho,16069,93,19 +2020-06-27,Nez Perce,Idaho,16069,93,19 +2020-06-28,Nez Perce,Idaho,16069,93,19 +2020-06-29,Nez Perce,Idaho,16069,95,19 +2020-06-30,Nez Perce,Idaho,16069,96,19 +2020-07-01,Nez Perce,Idaho,16069,97,19 +2020-07-02,Nez Perce,Idaho,16069,98,19 +2020-07-03,Nez Perce,Idaho,16069,98,19 +2020-07-04,Nez Perce,Idaho,16069,98,19 +2020-07-05,Nez Perce,Idaho,16069,98,19 +2020-07-06,Nez Perce,Idaho,16069,104,19 +2020-07-07,Nez Perce,Idaho,16069,106,19 +2020-07-08,Nez Perce,Idaho,16069,107,19 +2020-07-09,Nez Perce,Idaho,16069,108,19 +2020-06-30,Oneida,Idaho,16071,2,0 +2020-07-01,Oneida,Idaho,16071,3,0 +2020-07-02,Oneida,Idaho,16071,4,0 +2020-07-03,Oneida,Idaho,16071,5,0 +2020-07-04,Oneida,Idaho,16071,5,0 +2020-07-05,Oneida,Idaho,16071,5,0 +2020-07-06,Oneida,Idaho,16071,5,0 +2020-07-07,Oneida,Idaho,16071,4,0 +2020-07-08,Oneida,Idaho,16071,4,0 +2020-07-09,Oneida,Idaho,16071,6,0 +2020-03-29,Owyhee,Idaho,16073,1,0 +2020-03-30,Owyhee,Idaho,16073,1,0 +2020-03-31,Owyhee,Idaho,16073,1,0 +2020-04-01,Owyhee,Idaho,16073,1,0 +2020-04-02,Owyhee,Idaho,16073,2,0 +2020-04-03,Owyhee,Idaho,16073,2,0 +2020-04-04,Owyhee,Idaho,16073,2,0 +2020-04-05,Owyhee,Idaho,16073,2,0 +2020-04-06,Owyhee,Idaho,16073,2,0 +2020-04-07,Owyhee,Idaho,16073,2,0 +2020-04-08,Owyhee,Idaho,16073,2,0 +2020-04-09,Owyhee,Idaho,16073,4,0 +2020-04-10,Owyhee,Idaho,16073,4,0 +2020-04-11,Owyhee,Idaho,16073,4,0 +2020-04-12,Owyhee,Idaho,16073,4,0 +2020-04-13,Owyhee,Idaho,16073,4,0 +2020-04-14,Owyhee,Idaho,16073,4,0 +2020-04-15,Owyhee,Idaho,16073,4,0 +2020-04-16,Owyhee,Idaho,16073,4,0 +2020-04-17,Owyhee,Idaho,16073,4,0 +2020-04-18,Owyhee,Idaho,16073,4,0 +2020-04-19,Owyhee,Idaho,16073,4,0 +2020-04-20,Owyhee,Idaho,16073,4,0 +2020-04-21,Owyhee,Idaho,16073,5,0 +2020-04-22,Owyhee,Idaho,16073,6,0 +2020-04-23,Owyhee,Idaho,16073,6,0 +2020-04-24,Owyhee,Idaho,16073,8,0 +2020-04-25,Owyhee,Idaho,16073,8,0 +2020-04-26,Owyhee,Idaho,16073,8,0 +2020-04-27,Owyhee,Idaho,16073,8,0 +2020-04-28,Owyhee,Idaho,16073,8,0 +2020-04-29,Owyhee,Idaho,16073,8,0 +2020-04-30,Owyhee,Idaho,16073,8,0 +2020-05-01,Owyhee,Idaho,16073,8,0 +2020-05-02,Owyhee,Idaho,16073,8,0 +2020-05-03,Owyhee,Idaho,16073,8,0 +2020-05-04,Owyhee,Idaho,16073,8,0 +2020-05-05,Owyhee,Idaho,16073,8,0 +2020-05-06,Owyhee,Idaho,16073,8,0 +2020-05-07,Owyhee,Idaho,16073,8,0 +2020-05-08,Owyhee,Idaho,16073,8,0 +2020-05-09,Owyhee,Idaho,16073,8,0 +2020-05-10,Owyhee,Idaho,16073,8,0 +2020-05-11,Owyhee,Idaho,16073,8,0 +2020-05-12,Owyhee,Idaho,16073,8,0 +2020-05-13,Owyhee,Idaho,16073,8,0 +2020-05-14,Owyhee,Idaho,16073,8,0 +2020-05-15,Owyhee,Idaho,16073,8,0 +2020-05-16,Owyhee,Idaho,16073,8,0 +2020-05-17,Owyhee,Idaho,16073,8,0 +2020-05-18,Owyhee,Idaho,16073,8,0 +2020-05-19,Owyhee,Idaho,16073,8,0 +2020-05-20,Owyhee,Idaho,16073,8,0 +2020-05-21,Owyhee,Idaho,16073,9,0 +2020-05-22,Owyhee,Idaho,16073,8,0 +2020-05-23,Owyhee,Idaho,16073,8,0 +2020-05-24,Owyhee,Idaho,16073,9,0 +2020-05-25,Owyhee,Idaho,16073,9,0 +2020-05-26,Owyhee,Idaho,16073,9,0 +2020-05-27,Owyhee,Idaho,16073,9,0 +2020-05-28,Owyhee,Idaho,16073,9,0 +2020-05-29,Owyhee,Idaho,16073,9,0 +2020-05-30,Owyhee,Idaho,16073,9,0 +2020-05-31,Owyhee,Idaho,16073,8,0 +2020-06-01,Owyhee,Idaho,16073,8,0 +2020-06-02,Owyhee,Idaho,16073,8,0 +2020-06-03,Owyhee,Idaho,16073,8,0 +2020-06-04,Owyhee,Idaho,16073,8,0 +2020-06-05,Owyhee,Idaho,16073,8,0 +2020-06-06,Owyhee,Idaho,16073,8,0 +2020-06-07,Owyhee,Idaho,16073,8,0 +2020-06-08,Owyhee,Idaho,16073,8,0 +2020-06-09,Owyhee,Idaho,16073,8,0 +2020-06-10,Owyhee,Idaho,16073,8,0 +2020-06-11,Owyhee,Idaho,16073,8,0 +2020-06-12,Owyhee,Idaho,16073,8,0 +2020-06-13,Owyhee,Idaho,16073,8,0 +2020-06-14,Owyhee,Idaho,16073,8,0 +2020-06-15,Owyhee,Idaho,16073,9,0 +2020-06-16,Owyhee,Idaho,16073,10,0 +2020-06-17,Owyhee,Idaho,16073,18,0 +2020-06-18,Owyhee,Idaho,16073,20,0 +2020-06-19,Owyhee,Idaho,16073,22,0 +2020-06-20,Owyhee,Idaho,16073,27,0 +2020-06-21,Owyhee,Idaho,16073,27,0 +2020-06-22,Owyhee,Idaho,16073,28,0 +2020-06-23,Owyhee,Idaho,16073,30,0 +2020-06-24,Owyhee,Idaho,16073,28,0 +2020-06-25,Owyhee,Idaho,16073,33,0 +2020-06-26,Owyhee,Idaho,16073,34,0 +2020-06-27,Owyhee,Idaho,16073,34,0 +2020-06-28,Owyhee,Idaho,16073,34,0 +2020-06-29,Owyhee,Idaho,16073,40,0 +2020-06-30,Owyhee,Idaho,16073,41,0 +2020-07-01,Owyhee,Idaho,16073,41,0 +2020-07-02,Owyhee,Idaho,16073,42,0 +2020-07-03,Owyhee,Idaho,16073,44,0 +2020-07-04,Owyhee,Idaho,16073,50,0 +2020-07-05,Owyhee,Idaho,16073,51,0 +2020-07-06,Owyhee,Idaho,16073,53,0 +2020-07-07,Owyhee,Idaho,16073,57,0 +2020-07-08,Owyhee,Idaho,16073,66,0 +2020-07-09,Owyhee,Idaho,16073,72,0 +2020-03-25,Payette,Idaho,16075,1,0 +2020-03-26,Payette,Idaho,16075,1,0 +2020-03-27,Payette,Idaho,16075,1,0 +2020-03-28,Payette,Idaho,16075,1,0 +2020-03-29,Payette,Idaho,16075,1,0 +2020-03-30,Payette,Idaho,16075,1,0 +2020-03-31,Payette,Idaho,16075,1,0 +2020-04-01,Payette,Idaho,16075,3,0 +2020-04-02,Payette,Idaho,16075,5,0 +2020-04-03,Payette,Idaho,16075,5,0 +2020-04-04,Payette,Idaho,16075,5,0 +2020-04-05,Payette,Idaho,16075,6,0 +2020-04-06,Payette,Idaho,16075,6,1 +2020-04-07,Payette,Idaho,16075,6,1 +2020-04-08,Payette,Idaho,16075,6,1 +2020-04-09,Payette,Idaho,16075,8,0 +2020-04-10,Payette,Idaho,16075,8,0 +2020-04-11,Payette,Idaho,16075,8,1 +2020-04-12,Payette,Idaho,16075,8,1 +2020-04-13,Payette,Idaho,16075,9,1 +2020-04-14,Payette,Idaho,16075,9,1 +2020-04-15,Payette,Idaho,16075,10,1 +2020-04-16,Payette,Idaho,16075,10,1 +2020-04-17,Payette,Idaho,16075,10,1 +2020-04-18,Payette,Idaho,16075,10,1 +2020-04-19,Payette,Idaho,16075,10,1 +2020-04-20,Payette,Idaho,16075,11,1 +2020-04-21,Payette,Idaho,16075,11,1 +2020-04-22,Payette,Idaho,16075,11,1 +2020-04-23,Payette,Idaho,16075,11,1 +2020-04-24,Payette,Idaho,16075,13,1 +2020-04-25,Payette,Idaho,16075,13,1 +2020-04-26,Payette,Idaho,16075,13,1 +2020-04-27,Payette,Idaho,16075,14,1 +2020-04-28,Payette,Idaho,16075,14,1 +2020-04-29,Payette,Idaho,16075,16,1 +2020-04-30,Payette,Idaho,16075,16,1 +2020-05-01,Payette,Idaho,16075,16,1 +2020-05-02,Payette,Idaho,16075,16,1 +2020-05-03,Payette,Idaho,16075,16,1 +2020-05-04,Payette,Idaho,16075,17,1 +2020-05-05,Payette,Idaho,16075,17,1 +2020-05-06,Payette,Idaho,16075,17,2 +2020-05-07,Payette,Idaho,16075,17,2 +2020-05-08,Payette,Idaho,16075,17,2 +2020-05-09,Payette,Idaho,16075,17,2 +2020-05-10,Payette,Idaho,16075,17,2 +2020-05-11,Payette,Idaho,16075,17,2 +2020-05-12,Payette,Idaho,16075,17,2 +2020-05-13,Payette,Idaho,16075,17,2 +2020-05-14,Payette,Idaho,16075,19,2 +2020-05-15,Payette,Idaho,16075,20,2 +2020-05-16,Payette,Idaho,16075,20,2 +2020-05-17,Payette,Idaho,16075,20,2 +2020-05-18,Payette,Idaho,16075,22,2 +2020-05-19,Payette,Idaho,16075,22,2 +2020-05-20,Payette,Idaho,16075,22,2 +2020-05-21,Payette,Idaho,16075,23,2 +2020-05-22,Payette,Idaho,16075,23,2 +2020-05-23,Payette,Idaho,16075,23,2 +2020-05-24,Payette,Idaho,16075,23,2 +2020-05-25,Payette,Idaho,16075,23,2 +2020-05-26,Payette,Idaho,16075,23,2 +2020-05-27,Payette,Idaho,16075,23,2 +2020-05-28,Payette,Idaho,16075,23,2 +2020-05-29,Payette,Idaho,16075,23,2 +2020-05-30,Payette,Idaho,16075,23,2 +2020-05-31,Payette,Idaho,16075,23,2 +2020-06-01,Payette,Idaho,16075,23,2 +2020-06-02,Payette,Idaho,16075,23,2 +2020-06-03,Payette,Idaho,16075,25,2 +2020-06-04,Payette,Idaho,16075,26,2 +2020-06-05,Payette,Idaho,16075,26,2 +2020-06-06,Payette,Idaho,16075,26,2 +2020-06-07,Payette,Idaho,16075,26,2 +2020-06-08,Payette,Idaho,16075,26,2 +2020-06-09,Payette,Idaho,16075,26,2 +2020-06-10,Payette,Idaho,16075,26,2 +2020-06-11,Payette,Idaho,16075,27,2 +2020-06-12,Payette,Idaho,16075,27,2 +2020-06-13,Payette,Idaho,16075,27,2 +2020-06-14,Payette,Idaho,16075,27,2 +2020-06-15,Payette,Idaho,16075,28,2 +2020-06-16,Payette,Idaho,16075,30,2 +2020-06-17,Payette,Idaho,16075,30,2 +2020-06-18,Payette,Idaho,16075,32,2 +2020-06-19,Payette,Idaho,16075,40,2 +2020-06-20,Payette,Idaho,16075,43,2 +2020-06-21,Payette,Idaho,16075,43,2 +2020-06-22,Payette,Idaho,16075,42,2 +2020-06-23,Payette,Idaho,16075,48,2 +2020-06-24,Payette,Idaho,16075,60,2 +2020-06-25,Payette,Idaho,16075,73,2 +2020-06-26,Payette,Idaho,16075,77,2 +2020-06-27,Payette,Idaho,16075,82,2 +2020-06-28,Payette,Idaho,16075,82,2 +2020-06-29,Payette,Idaho,16075,89,2 +2020-06-30,Payette,Idaho,16075,102,2 +2020-07-01,Payette,Idaho,16075,111,2 +2020-07-02,Payette,Idaho,16075,115,2 +2020-07-03,Payette,Idaho,16075,122,2 +2020-07-04,Payette,Idaho,16075,131,2 +2020-07-05,Payette,Idaho,16075,136,2 +2020-07-06,Payette,Idaho,16075,138,2 +2020-07-07,Payette,Idaho,16075,141,2 +2020-07-08,Payette,Idaho,16075,149,2 +2020-07-09,Payette,Idaho,16075,154,2 +2020-04-07,Power,Idaho,16077,2,0 +2020-04-08,Power,Idaho,16077,2,0 +2020-04-09,Power,Idaho,16077,2,0 +2020-04-10,Power,Idaho,16077,2,0 +2020-04-11,Power,Idaho,16077,2,0 +2020-04-12,Power,Idaho,16077,2,0 +2020-04-13,Power,Idaho,16077,2,0 +2020-04-14,Power,Idaho,16077,2,0 +2020-04-15,Power,Idaho,16077,2,0 +2020-04-16,Power,Idaho,16077,2,0 +2020-04-17,Power,Idaho,16077,2,0 +2020-04-18,Power,Idaho,16077,2,0 +2020-04-19,Power,Idaho,16077,2,0 +2020-04-20,Power,Idaho,16077,2,0 +2020-04-21,Power,Idaho,16077,2,0 +2020-04-22,Power,Idaho,16077,2,0 +2020-04-23,Power,Idaho,16077,2,0 +2020-04-24,Power,Idaho,16077,2,0 +2020-04-25,Power,Idaho,16077,2,0 +2020-04-26,Power,Idaho,16077,2,0 +2020-04-27,Power,Idaho,16077,2,0 +2020-04-28,Power,Idaho,16077,2,0 +2020-04-29,Power,Idaho,16077,2,0 +2020-04-30,Power,Idaho,16077,2,0 +2020-05-01,Power,Idaho,16077,2,0 +2020-05-02,Power,Idaho,16077,2,0 +2020-05-03,Power,Idaho,16077,2,0 +2020-05-04,Power,Idaho,16077,2,0 +2020-05-05,Power,Idaho,16077,2,0 +2020-05-06,Power,Idaho,16077,2,0 +2020-05-07,Power,Idaho,16077,2,0 +2020-05-08,Power,Idaho,16077,2,0 +2020-05-09,Power,Idaho,16077,2,0 +2020-05-10,Power,Idaho,16077,2,0 +2020-05-11,Power,Idaho,16077,2,0 +2020-05-12,Power,Idaho,16077,3,0 +2020-05-13,Power,Idaho,16077,3,0 +2020-05-14,Power,Idaho,16077,3,0 +2020-05-15,Power,Idaho,16077,3,0 +2020-05-16,Power,Idaho,16077,3,0 +2020-05-17,Power,Idaho,16077,3,0 +2020-05-18,Power,Idaho,16077,3,0 +2020-05-19,Power,Idaho,16077,3,0 +2020-05-20,Power,Idaho,16077,3,0 +2020-05-21,Power,Idaho,16077,3,0 +2020-05-22,Power,Idaho,16077,3,0 +2020-05-23,Power,Idaho,16077,3,0 +2020-05-24,Power,Idaho,16077,3,0 +2020-05-25,Power,Idaho,16077,3,0 +2020-05-26,Power,Idaho,16077,3,0 +2020-05-27,Power,Idaho,16077,3,0 +2020-05-28,Power,Idaho,16077,3,0 +2020-05-29,Power,Idaho,16077,4,0 +2020-05-30,Power,Idaho,16077,5,0 +2020-05-31,Power,Idaho,16077,6,0 +2020-06-01,Power,Idaho,16077,6,0 +2020-06-02,Power,Idaho,16077,6,0 +2020-06-03,Power,Idaho,16077,6,0 +2020-06-04,Power,Idaho,16077,6,0 +2020-06-05,Power,Idaho,16077,7,0 +2020-06-06,Power,Idaho,16077,7,0 +2020-06-07,Power,Idaho,16077,8,0 +2020-06-08,Power,Idaho,16077,8,0 +2020-06-09,Power,Idaho,16077,9,0 +2020-06-10,Power,Idaho,16077,9,0 +2020-06-11,Power,Idaho,16077,9,0 +2020-06-12,Power,Idaho,16077,9,0 +2020-06-13,Power,Idaho,16077,9,0 +2020-06-14,Power,Idaho,16077,10,0 +2020-06-15,Power,Idaho,16077,10,0 +2020-06-16,Power,Idaho,16077,10,0 +2020-06-17,Power,Idaho,16077,10,0 +2020-06-18,Power,Idaho,16077,14,0 +2020-06-19,Power,Idaho,16077,14,0 +2020-06-20,Power,Idaho,16077,14,0 +2020-06-21,Power,Idaho,16077,16,0 +2020-06-22,Power,Idaho,16077,16,0 +2020-06-23,Power,Idaho,16077,16,0 +2020-06-24,Power,Idaho,16077,16,0 +2020-06-25,Power,Idaho,16077,16,0 +2020-06-26,Power,Idaho,16077,16,0 +2020-06-27,Power,Idaho,16077,16,0 +2020-06-28,Power,Idaho,16077,18,0 +2020-06-29,Power,Idaho,16077,18,0 +2020-06-30,Power,Idaho,16077,18,0 +2020-07-01,Power,Idaho,16077,18,0 +2020-07-02,Power,Idaho,16077,19,0 +2020-07-03,Power,Idaho,16077,19,0 +2020-07-04,Power,Idaho,16077,19,0 +2020-07-05,Power,Idaho,16077,19,0 +2020-07-06,Power,Idaho,16077,21,0 +2020-07-07,Power,Idaho,16077,19,0 +2020-07-08,Power,Idaho,16077,19,0 +2020-07-09,Power,Idaho,16077,22,0 +2020-07-03,Shoshone,Idaho,16079,1,0 +2020-07-04,Shoshone,Idaho,16079,2,0 +2020-07-05,Shoshone,Idaho,16079,3,0 +2020-07-06,Shoshone,Idaho,16079,3,0 +2020-07-07,Shoshone,Idaho,16079,3,0 +2020-07-08,Shoshone,Idaho,16079,6,0 +2020-07-09,Shoshone,Idaho,16079,8,0 +2020-03-14,Teton,Idaho,16081,1,0 +2020-03-15,Teton,Idaho,16081,1,0 +2020-03-16,Teton,Idaho,16081,1,0 +2020-03-17,Teton,Idaho,16081,1,0 +2020-03-18,Teton,Idaho,16081,1,0 +2020-03-19,Teton,Idaho,16081,1,0 +2020-03-20,Teton,Idaho,16081,1,0 +2020-03-21,Teton,Idaho,16081,2,0 +2020-03-22,Teton,Idaho,16081,2,0 +2020-03-23,Teton,Idaho,16081,2,0 +2020-03-24,Teton,Idaho,16081,2,0 +2020-03-25,Teton,Idaho,16081,2,0 +2020-03-26,Teton,Idaho,16081,2,0 +2020-03-27,Teton,Idaho,16081,2,0 +2020-03-28,Teton,Idaho,16081,2,0 +2020-03-29,Teton,Idaho,16081,2,0 +2020-03-30,Teton,Idaho,16081,2,0 +2020-03-31,Teton,Idaho,16081,2,0 +2020-04-01,Teton,Idaho,16081,3,0 +2020-04-02,Teton,Idaho,16081,3,0 +2020-04-03,Teton,Idaho,16081,3,0 +2020-04-04,Teton,Idaho,16081,4,0 +2020-04-05,Teton,Idaho,16081,4,0 +2020-04-06,Teton,Idaho,16081,5,0 +2020-04-07,Teton,Idaho,16081,5,0 +2020-04-08,Teton,Idaho,16081,6,0 +2020-04-09,Teton,Idaho,16081,6,0 +2020-04-10,Teton,Idaho,16081,6,0 +2020-04-11,Teton,Idaho,16081,6,0 +2020-04-12,Teton,Idaho,16081,6,0 +2020-04-13,Teton,Idaho,16081,6,0 +2020-04-14,Teton,Idaho,16081,7,0 +2020-04-15,Teton,Idaho,16081,7,0 +2020-04-16,Teton,Idaho,16081,7,0 +2020-04-17,Teton,Idaho,16081,8,0 +2020-04-18,Teton,Idaho,16081,8,0 +2020-04-19,Teton,Idaho,16081,8,0 +2020-04-20,Teton,Idaho,16081,8,0 +2020-04-21,Teton,Idaho,16081,8,0 +2020-04-22,Teton,Idaho,16081,8,0 +2020-04-23,Teton,Idaho,16081,8,0 +2020-04-24,Teton,Idaho,16081,8,0 +2020-04-25,Teton,Idaho,16081,8,0 +2020-04-26,Teton,Idaho,16081,8,0 +2020-04-27,Teton,Idaho,16081,8,0 +2020-04-28,Teton,Idaho,16081,9,0 +2020-04-29,Teton,Idaho,16081,9,0 +2020-04-30,Teton,Idaho,16081,9,0 +2020-05-01,Teton,Idaho,16081,9,0 +2020-05-02,Teton,Idaho,16081,9,0 +2020-05-03,Teton,Idaho,16081,9,0 +2020-05-04,Teton,Idaho,16081,9,0 +2020-05-05,Teton,Idaho,16081,10,0 +2020-05-06,Teton,Idaho,16081,10,0 +2020-05-07,Teton,Idaho,16081,10,0 +2020-05-08,Teton,Idaho,16081,10,0 +2020-05-09,Teton,Idaho,16081,11,0 +2020-05-10,Teton,Idaho,16081,11,0 +2020-05-11,Teton,Idaho,16081,11,0 +2020-05-12,Teton,Idaho,16081,11,0 +2020-05-13,Teton,Idaho,16081,11,0 +2020-05-14,Teton,Idaho,16081,11,0 +2020-05-15,Teton,Idaho,16081,11,0 +2020-05-16,Teton,Idaho,16081,11,0 +2020-05-17,Teton,Idaho,16081,11,0 +2020-05-18,Teton,Idaho,16081,11,0 +2020-05-19,Teton,Idaho,16081,11,0 +2020-05-20,Teton,Idaho,16081,11,0 +2020-05-21,Teton,Idaho,16081,11,0 +2020-05-22,Teton,Idaho,16081,11,0 +2020-05-23,Teton,Idaho,16081,11,0 +2020-05-24,Teton,Idaho,16081,11,0 +2020-05-25,Teton,Idaho,16081,11,0 +2020-05-26,Teton,Idaho,16081,11,0 +2020-05-27,Teton,Idaho,16081,11,0 +2020-05-28,Teton,Idaho,16081,11,0 +2020-05-29,Teton,Idaho,16081,11,0 +2020-05-30,Teton,Idaho,16081,11,0 +2020-05-31,Teton,Idaho,16081,11,0 +2020-06-01,Teton,Idaho,16081,11,0 +2020-06-02,Teton,Idaho,16081,11,0 +2020-06-03,Teton,Idaho,16081,11,0 +2020-06-04,Teton,Idaho,16081,11,0 +2020-06-05,Teton,Idaho,16081,11,0 +2020-06-06,Teton,Idaho,16081,11,0 +2020-06-07,Teton,Idaho,16081,11,0 +2020-06-08,Teton,Idaho,16081,11,0 +2020-06-09,Teton,Idaho,16081,11,0 +2020-06-10,Teton,Idaho,16081,11,0 +2020-06-11,Teton,Idaho,16081,11,0 +2020-06-12,Teton,Idaho,16081,11,0 +2020-06-13,Teton,Idaho,16081,11,0 +2020-06-14,Teton,Idaho,16081,11,0 +2020-06-15,Teton,Idaho,16081,11,0 +2020-06-16,Teton,Idaho,16081,11,0 +2020-06-17,Teton,Idaho,16081,12,0 +2020-06-18,Teton,Idaho,16081,12,0 +2020-06-19,Teton,Idaho,16081,14,0 +2020-06-20,Teton,Idaho,16081,14,0 +2020-06-21,Teton,Idaho,16081,14,0 +2020-06-22,Teton,Idaho,16081,14,0 +2020-06-23,Teton,Idaho,16081,14,0 +2020-06-24,Teton,Idaho,16081,14,0 +2020-06-25,Teton,Idaho,16081,14,0 +2020-06-26,Teton,Idaho,16081,16,0 +2020-06-27,Teton,Idaho,16081,16,0 +2020-06-28,Teton,Idaho,16081,16,0 +2020-06-29,Teton,Idaho,16081,16,0 +2020-06-30,Teton,Idaho,16081,17,0 +2020-07-01,Teton,Idaho,16081,20,0 +2020-07-02,Teton,Idaho,16081,22,0 +2020-07-03,Teton,Idaho,16081,22,0 +2020-07-04,Teton,Idaho,16081,22,0 +2020-07-05,Teton,Idaho,16081,22,0 +2020-07-06,Teton,Idaho,16081,22,0 +2020-07-07,Teton,Idaho,16081,23,0 +2020-07-08,Teton,Idaho,16081,23,0 +2020-07-09,Teton,Idaho,16081,30,0 +2020-03-18,Twin Falls,Idaho,16083,1,0 +2020-03-19,Twin Falls,Idaho,16083,1,0 +2020-03-20,Twin Falls,Idaho,16083,1,0 +2020-03-21,Twin Falls,Idaho,16083,1,0 +2020-03-22,Twin Falls,Idaho,16083,1,0 +2020-03-23,Twin Falls,Idaho,16083,1,0 +2020-03-24,Twin Falls,Idaho,16083,1,0 +2020-03-25,Twin Falls,Idaho,16083,1,0 +2020-03-26,Twin Falls,Idaho,16083,1,0 +2020-03-27,Twin Falls,Idaho,16083,2,0 +2020-03-28,Twin Falls,Idaho,16083,2,0 +2020-03-29,Twin Falls,Idaho,16083,3,0 +2020-03-30,Twin Falls,Idaho,16083,5,0 +2020-03-31,Twin Falls,Idaho,16083,6,0 +2020-04-01,Twin Falls,Idaho,16083,17,0 +2020-04-02,Twin Falls,Idaho,16083,32,0 +2020-04-03,Twin Falls,Idaho,16083,33,1 +2020-04-04,Twin Falls,Idaho,16083,37,1 +2020-04-05,Twin Falls,Idaho,16083,37,1 +2020-04-06,Twin Falls,Idaho,16083,53,1 +2020-04-07,Twin Falls,Idaho,16083,53,1 +2020-04-08,Twin Falls,Idaho,16083,55,1 +2020-04-09,Twin Falls,Idaho,16083,73,1 +2020-04-10,Twin Falls,Idaho,16083,76,1 +2020-04-11,Twin Falls,Idaho,16083,80,2 +2020-04-12,Twin Falls,Idaho,16083,85,2 +2020-04-13,Twin Falls,Idaho,16083,86,4 +2020-04-14,Twin Falls,Idaho,16083,89,7 +2020-04-15,Twin Falls,Idaho,16083,99,8 +2020-04-16,Twin Falls,Idaho,16083,100,8 +2020-04-17,Twin Falls,Idaho,16083,110,9 +2020-04-18,Twin Falls,Idaho,16083,115,9 +2020-04-19,Twin Falls,Idaho,16083,117,10 +2020-04-20,Twin Falls,Idaho,16083,123,10 +2020-04-21,Twin Falls,Idaho,16083,132,11 +2020-04-22,Twin Falls,Idaho,16083,138,11 +2020-04-23,Twin Falls,Idaho,16083,139,11 +2020-04-24,Twin Falls,Idaho,16083,149,11 +2020-04-25,Twin Falls,Idaho,16083,152,11 +2020-04-26,Twin Falls,Idaho,16083,156,11 +2020-04-27,Twin Falls,Idaho,16083,157,11 +2020-04-28,Twin Falls,Idaho,16083,165,11 +2020-04-29,Twin Falls,Idaho,16083,170,11 +2020-04-30,Twin Falls,Idaho,16083,181,11 +2020-05-01,Twin Falls,Idaho,16083,191,11 +2020-05-02,Twin Falls,Idaho,16083,196,11 +2020-05-03,Twin Falls,Idaho,16083,196,11 +2020-05-04,Twin Falls,Idaho,16083,208,11 +2020-05-05,Twin Falls,Idaho,16083,218,11 +2020-05-06,Twin Falls,Idaho,16083,231,11 +2020-05-07,Twin Falls,Idaho,16083,239,11 +2020-05-08,Twin Falls,Idaho,16083,248,11 +2020-05-09,Twin Falls,Idaho,16083,259,11 +2020-05-10,Twin Falls,Idaho,16083,259,11 +2020-05-11,Twin Falls,Idaho,16083,269,11 +2020-05-12,Twin Falls,Idaho,16083,280,11 +2020-05-13,Twin Falls,Idaho,16083,288,11 +2020-05-14,Twin Falls,Idaho,16083,298,13 +2020-05-15,Twin Falls,Idaho,16083,310,14 +2020-05-16,Twin Falls,Idaho,16083,318,14 +2020-05-17,Twin Falls,Idaho,16083,318,14 +2020-05-18,Twin Falls,Idaho,16083,326,15 +2020-05-19,Twin Falls,Idaho,16083,332,17 +2020-05-20,Twin Falls,Idaho,16083,340,17 +2020-05-21,Twin Falls,Idaho,16083,348,17 +2020-05-22,Twin Falls,Idaho,16083,374,19 +2020-05-23,Twin Falls,Idaho,16083,381,19 +2020-05-24,Twin Falls,Idaho,16083,383,19 +2020-05-25,Twin Falls,Idaho,16083,393,19 +2020-05-26,Twin Falls,Idaho,16083,396,22 +2020-05-27,Twin Falls,Idaho,16083,404,23 +2020-05-28,Twin Falls,Idaho,16083,410,23 +2020-05-29,Twin Falls,Idaho,16083,416,23 +2020-05-30,Twin Falls,Idaho,16083,419,23 +2020-05-31,Twin Falls,Idaho,16083,424,23 +2020-06-01,Twin Falls,Idaho,16083,425,23 +2020-06-02,Twin Falls,Idaho,16083,428,23 +2020-06-03,Twin Falls,Idaho,16083,432,23 +2020-06-04,Twin Falls,Idaho,16083,435,23 +2020-06-05,Twin Falls,Idaho,16083,437,23 +2020-06-06,Twin Falls,Idaho,16083,445,23 +2020-06-07,Twin Falls,Idaho,16083,445,23 +2020-06-08,Twin Falls,Idaho,16083,456,23 +2020-06-09,Twin Falls,Idaho,16083,463,25 +2020-06-10,Twin Falls,Idaho,16083,469,25 +2020-06-11,Twin Falls,Idaho,16083,470,26 +2020-06-12,Twin Falls,Idaho,16083,480,26 +2020-06-13,Twin Falls,Idaho,16083,479,26 +2020-06-14,Twin Falls,Idaho,16083,480,26 +2020-06-15,Twin Falls,Idaho,16083,483,26 +2020-06-16,Twin Falls,Idaho,16083,489,26 +2020-06-17,Twin Falls,Idaho,16083,499,26 +2020-06-18,Twin Falls,Idaho,16083,504,26 +2020-06-19,Twin Falls,Idaho,16083,507,26 +2020-06-20,Twin Falls,Idaho,16083,511,26 +2020-06-21,Twin Falls,Idaho,16083,511,26 +2020-06-22,Twin Falls,Idaho,16083,518,26 +2020-06-23,Twin Falls,Idaho,16083,522,26 +2020-06-24,Twin Falls,Idaho,16083,532,26 +2020-06-25,Twin Falls,Idaho,16083,540,26 +2020-06-26,Twin Falls,Idaho,16083,546,26 +2020-06-27,Twin Falls,Idaho,16083,551,26 +2020-06-28,Twin Falls,Idaho,16083,551,25 +2020-06-29,Twin Falls,Idaho,16083,566,26 +2020-06-30,Twin Falls,Idaho,16083,599,26 +2020-07-01,Twin Falls,Idaho,16083,614,26 +2020-07-02,Twin Falls,Idaho,16083,642,26 +2020-07-03,Twin Falls,Idaho,16083,656,26 +2020-07-04,Twin Falls,Idaho,16083,662,26 +2020-07-05,Twin Falls,Idaho,16083,669,26 +2020-07-06,Twin Falls,Idaho,16083,685,26 +2020-07-07,Twin Falls,Idaho,16083,727,26 +2020-07-08,Twin Falls,Idaho,16083,756,26 +2020-07-09,Twin Falls,Idaho,16083,788,26 +2020-03-22,Valley,Idaho,16085,1,0 +2020-03-23,Valley,Idaho,16085,1,0 +2020-03-24,Valley,Idaho,16085,1,0 +2020-03-25,Valley,Idaho,16085,1,0 +2020-03-26,Valley,Idaho,16085,1,0 +2020-03-27,Valley,Idaho,16085,1,0 +2020-03-28,Valley,Idaho,16085,1,0 +2020-03-29,Valley,Idaho,16085,1,0 +2020-03-30,Valley,Idaho,16085,2,0 +2020-03-31,Valley,Idaho,16085,2,0 +2020-04-01,Valley,Idaho,16085,2,0 +2020-04-02,Valley,Idaho,16085,3,0 +2020-04-03,Valley,Idaho,16085,3,0 +2020-04-04,Valley,Idaho,16085,2,0 +2020-04-05,Valley,Idaho,16085,2,0 +2020-04-06,Valley,Idaho,16085,2,0 +2020-04-07,Valley,Idaho,16085,2,0 +2020-04-08,Valley,Idaho,16085,2,0 +2020-04-09,Valley,Idaho,16085,2,0 +2020-04-10,Valley,Idaho,16085,2,0 +2020-04-11,Valley,Idaho,16085,2,0 +2020-04-12,Valley,Idaho,16085,2,0 +2020-04-13,Valley,Idaho,16085,2,0 +2020-04-14,Valley,Idaho,16085,2,0 +2020-04-15,Valley,Idaho,16085,2,0 +2020-04-16,Valley,Idaho,16085,2,0 +2020-04-17,Valley,Idaho,16085,2,0 +2020-04-18,Valley,Idaho,16085,2,0 +2020-04-19,Valley,Idaho,16085,2,0 +2020-04-20,Valley,Idaho,16085,2,0 +2020-04-21,Valley,Idaho,16085,2,0 +2020-04-22,Valley,Idaho,16085,2,0 +2020-04-23,Valley,Idaho,16085,2,0 +2020-04-24,Valley,Idaho,16085,2,0 +2020-04-25,Valley,Idaho,16085,2,0 +2020-04-26,Valley,Idaho,16085,2,0 +2020-04-27,Valley,Idaho,16085,2,0 +2020-04-28,Valley,Idaho,16085,2,0 +2020-04-29,Valley,Idaho,16085,2,0 +2020-04-30,Valley,Idaho,16085,2,0 +2020-05-01,Valley,Idaho,16085,2,0 +2020-05-02,Valley,Idaho,16085,2,0 +2020-05-03,Valley,Idaho,16085,2,0 +2020-05-04,Valley,Idaho,16085,2,0 +2020-05-05,Valley,Idaho,16085,2,0 +2020-05-06,Valley,Idaho,16085,2,0 +2020-05-07,Valley,Idaho,16085,2,0 +2020-05-08,Valley,Idaho,16085,2,0 +2020-05-09,Valley,Idaho,16085,2,0 +2020-05-10,Valley,Idaho,16085,2,0 +2020-05-11,Valley,Idaho,16085,2,0 +2020-05-12,Valley,Idaho,16085,2,0 +2020-05-13,Valley,Idaho,16085,2,0 +2020-05-14,Valley,Idaho,16085,2,0 +2020-05-15,Valley,Idaho,16085,2,0 +2020-05-16,Valley,Idaho,16085,2,0 +2020-05-17,Valley,Idaho,16085,2,0 +2020-05-18,Valley,Idaho,16085,2,0 +2020-05-19,Valley,Idaho,16085,2,0 +2020-05-20,Valley,Idaho,16085,2,0 +2020-05-21,Valley,Idaho,16085,2,0 +2020-05-22,Valley,Idaho,16085,2,0 +2020-05-23,Valley,Idaho,16085,2,0 +2020-05-24,Valley,Idaho,16085,2,0 +2020-05-25,Valley,Idaho,16085,2,0 +2020-05-26,Valley,Idaho,16085,2,0 +2020-05-27,Valley,Idaho,16085,2,0 +2020-05-28,Valley,Idaho,16085,2,0 +2020-05-29,Valley,Idaho,16085,2,0 +2020-05-30,Valley,Idaho,16085,2,0 +2020-05-31,Valley,Idaho,16085,2,0 +2020-06-01,Valley,Idaho,16085,2,0 +2020-06-02,Valley,Idaho,16085,2,0 +2020-06-03,Valley,Idaho,16085,2,0 +2020-06-04,Valley,Idaho,16085,2,0 +2020-06-05,Valley,Idaho,16085,2,0 +2020-06-06,Valley,Idaho,16085,2,0 +2020-06-07,Valley,Idaho,16085,2,0 +2020-06-08,Valley,Idaho,16085,3,0 +2020-06-09,Valley,Idaho,16085,3,0 +2020-06-10,Valley,Idaho,16085,3,0 +2020-06-11,Valley,Idaho,16085,3,0 +2020-06-12,Valley,Idaho,16085,3,0 +2020-06-13,Valley,Idaho,16085,3,0 +2020-06-14,Valley,Idaho,16085,3,0 +2020-06-15,Valley,Idaho,16085,3,0 +2020-06-16,Valley,Idaho,16085,3,0 +2020-06-17,Valley,Idaho,16085,3,0 +2020-06-18,Valley,Idaho,16085,3,0 +2020-06-19,Valley,Idaho,16085,3,0 +2020-06-20,Valley,Idaho,16085,3,0 +2020-06-21,Valley,Idaho,16085,3,0 +2020-06-22,Valley,Idaho,16085,3,0 +2020-06-23,Valley,Idaho,16085,3,0 +2020-06-24,Valley,Idaho,16085,4,0 +2020-06-25,Valley,Idaho,16085,5,0 +2020-06-26,Valley,Idaho,16085,11,0 +2020-06-27,Valley,Idaho,16085,10,0 +2020-06-28,Valley,Idaho,16085,10,0 +2020-06-29,Valley,Idaho,16085,10,0 +2020-06-30,Valley,Idaho,16085,13,0 +2020-07-01,Valley,Idaho,16085,14,0 +2020-07-02,Valley,Idaho,16085,14,0 +2020-07-03,Valley,Idaho,16085,16,0 +2020-07-04,Valley,Idaho,16085,17,0 +2020-07-05,Valley,Idaho,16085,20,0 +2020-07-06,Valley,Idaho,16085,20,0 +2020-07-07,Valley,Idaho,16085,22,0 +2020-07-08,Valley,Idaho,16085,23,0 +2020-07-09,Valley,Idaho,16085,23,0 +2020-04-02,Washington,Idaho,16087,1,0 +2020-04-03,Washington,Idaho,16087,1,0 +2020-04-04,Washington,Idaho,16087,1,0 +2020-04-05,Washington,Idaho,16087,1,0 +2020-04-06,Washington,Idaho,16087,1,0 +2020-04-07,Washington,Idaho,16087,1,0 +2020-04-08,Washington,Idaho,16087,1,0 +2020-04-09,Washington,Idaho,16087,1,0 +2020-04-10,Washington,Idaho,16087,1,0 +2020-04-11,Washington,Idaho,16087,1,0 +2020-04-12,Washington,Idaho,16087,1,0 +2020-04-13,Washington,Idaho,16087,1,0 +2020-04-14,Washington,Idaho,16087,1,0 +2020-04-15,Washington,Idaho,16087,1,0 +2020-04-16,Washington,Idaho,16087,1,0 +2020-04-17,Washington,Idaho,16087,1,0 +2020-04-18,Washington,Idaho,16087,1,0 +2020-04-19,Washington,Idaho,16087,1,0 +2020-04-20,Washington,Idaho,16087,1,0 +2020-04-21,Washington,Idaho,16087,1,0 +2020-04-22,Washington,Idaho,16087,1,0 +2020-04-23,Washington,Idaho,16087,1,0 +2020-04-24,Washington,Idaho,16087,2,0 +2020-04-25,Washington,Idaho,16087,1,0 +2020-04-26,Washington,Idaho,16087,1,0 +2020-04-27,Washington,Idaho,16087,1,0 +2020-04-28,Washington,Idaho,16087,1,0 +2020-04-29,Washington,Idaho,16087,1,0 +2020-04-30,Washington,Idaho,16087,1,0 +2020-05-01,Washington,Idaho,16087,1,0 +2020-05-02,Washington,Idaho,16087,1,0 +2020-05-03,Washington,Idaho,16087,1,0 +2020-05-04,Washington,Idaho,16087,1,0 +2020-05-05,Washington,Idaho,16087,1,0 +2020-05-06,Washington,Idaho,16087,1,0 +2020-05-07,Washington,Idaho,16087,1,0 +2020-05-08,Washington,Idaho,16087,1,0 +2020-05-09,Washington,Idaho,16087,1,0 +2020-05-10,Washington,Idaho,16087,1,0 +2020-05-11,Washington,Idaho,16087,2,0 +2020-05-12,Washington,Idaho,16087,8,0 +2020-05-13,Washington,Idaho,16087,10,0 +2020-05-14,Washington,Idaho,16087,13,0 +2020-05-15,Washington,Idaho,16087,20,0 +2020-05-16,Washington,Idaho,16087,23,0 +2020-05-17,Washington,Idaho,16087,23,0 +2020-05-18,Washington,Idaho,16087,30,0 +2020-05-19,Washington,Idaho,16087,31,0 +2020-05-20,Washington,Idaho,16087,32,0 +2020-05-21,Washington,Idaho,16087,33,0 +2020-05-22,Washington,Idaho,16087,34,0 +2020-05-23,Washington,Idaho,16087,34,0 +2020-05-24,Washington,Idaho,16087,34,0 +2020-05-25,Washington,Idaho,16087,34,0 +2020-05-26,Washington,Idaho,16087,34,0 +2020-05-27,Washington,Idaho,16087,34,0 +2020-05-28,Washington,Idaho,16087,36,0 +2020-05-29,Washington,Idaho,16087,38,0 +2020-05-30,Washington,Idaho,16087,38,0 +2020-05-31,Washington,Idaho,16087,38,0 +2020-06-01,Washington,Idaho,16087,38,0 +2020-06-02,Washington,Idaho,16087,43,0 +2020-06-03,Washington,Idaho,16087,44,0 +2020-06-04,Washington,Idaho,16087,45,0 +2020-06-05,Washington,Idaho,16087,46,0 +2020-06-06,Washington,Idaho,16087,46,0 +2020-06-07,Washington,Idaho,16087,46,0 +2020-06-08,Washington,Idaho,16087,46,0 +2020-06-09,Washington,Idaho,16087,46,0 +2020-06-10,Washington,Idaho,16087,49,0 +2020-06-11,Washington,Idaho,16087,49,0 +2020-06-12,Washington,Idaho,16087,50,0 +2020-06-13,Washington,Idaho,16087,55,0 +2020-06-14,Washington,Idaho,16087,55,0 +2020-06-15,Washington,Idaho,16087,57,0 +2020-06-16,Washington,Idaho,16087,62,0 +2020-06-17,Washington,Idaho,16087,70,0 +2020-06-18,Washington,Idaho,16087,78,0 +2020-06-19,Washington,Idaho,16087,84,0 +2020-06-20,Washington,Idaho,16087,84,0 +2020-06-21,Washington,Idaho,16087,84,0 +2020-06-22,Washington,Idaho,16087,89,0 +2020-06-23,Washington,Idaho,16087,96,0 +2020-06-24,Washington,Idaho,16087,97,0 +2020-06-25,Washington,Idaho,16087,97,0 +2020-06-26,Washington,Idaho,16087,98,0 +2020-06-27,Washington,Idaho,16087,98,0 +2020-06-28,Washington,Idaho,16087,98,0 +2020-06-29,Washington,Idaho,16087,100,0 +2020-06-30,Washington,Idaho,16087,102,0 +2020-07-01,Washington,Idaho,16087,107,0 +2020-07-02,Washington,Idaho,16087,108,0 +2020-07-03,Washington,Idaho,16087,113,1 +2020-07-04,Washington,Idaho,16087,114,1 +2020-07-05,Washington,Idaho,16087,118,1 +2020-07-06,Washington,Idaho,16087,118,1 +2020-07-07,Washington,Idaho,16087,120,1 +2020-07-08,Washington,Idaho,16087,124,2 +2020-07-09,Washington,Idaho,16087,129,2 +2020-03-20,Adams,Illinois,17001,1,0 +2020-03-21,Adams,Illinois,17001,1,0 +2020-03-22,Adams,Illinois,17001,1,0 +2020-03-23,Adams,Illinois,17001,1,0 +2020-03-24,Adams,Illinois,17001,1,0 +2020-03-25,Adams,Illinois,17001,1,0 +2020-03-26,Adams,Illinois,17001,1,0 +2020-03-27,Adams,Illinois,17001,1,0 +2020-03-28,Adams,Illinois,17001,1,0 +2020-03-29,Adams,Illinois,17001,2,0 +2020-03-30,Adams,Illinois,17001,2,0 +2020-03-31,Adams,Illinois,17001,2,0 +2020-04-01,Adams,Illinois,17001,2,0 +2020-04-02,Adams,Illinois,17001,2,0 +2020-04-03,Adams,Illinois,17001,2,0 +2020-04-04,Adams,Illinois,17001,3,0 +2020-04-05,Adams,Illinois,17001,3,0 +2020-04-06,Adams,Illinois,17001,8,0 +2020-04-07,Adams,Illinois,17001,9,0 +2020-04-08,Adams,Illinois,17001,9,0 +2020-04-09,Adams,Illinois,17001,22,0 +2020-04-10,Adams,Illinois,17001,24,0 +2020-04-11,Adams,Illinois,17001,25,0 +2020-04-12,Adams,Illinois,17001,25,0 +2020-04-13,Adams,Illinois,17001,26,0 +2020-04-14,Adams,Illinois,17001,27,0 +2020-04-15,Adams,Illinois,17001,27,0 +2020-04-16,Adams,Illinois,17001,29,0 +2020-04-17,Adams,Illinois,17001,30,0 +2020-04-18,Adams,Illinois,17001,31,0 +2020-04-19,Adams,Illinois,17001,34,0 +2020-04-20,Adams,Illinois,17001,29,0 +2020-04-21,Adams,Illinois,17001,29,0 +2020-04-22,Adams,Illinois,17001,29,0 +2020-04-23,Adams,Illinois,17001,29,0 +2020-04-24,Adams,Illinois,17001,32,0 +2020-04-25,Adams,Illinois,17001,32,0 +2020-04-26,Adams,Illinois,17001,32,0 +2020-04-27,Adams,Illinois,17001,33,0 +2020-04-28,Adams,Illinois,17001,40,0 +2020-04-29,Adams,Illinois,17001,40,0 +2020-04-30,Adams,Illinois,17001,40,0 +2020-05-01,Adams,Illinois,17001,40,1 +2020-05-02,Adams,Illinois,17001,40,1 +2020-05-03,Adams,Illinois,17001,40,1 +2020-05-04,Adams,Illinois,17001,40,1 +2020-05-05,Adams,Illinois,17001,40,1 +2020-05-06,Adams,Illinois,17001,40,1 +2020-05-07,Adams,Illinois,17001,40,1 +2020-05-08,Adams,Illinois,17001,41,1 +2020-05-09,Adams,Illinois,17001,41,1 +2020-05-10,Adams,Illinois,17001,41,1 +2020-05-11,Adams,Illinois,17001,41,1 +2020-05-12,Adams,Illinois,17001,41,1 +2020-05-13,Adams,Illinois,17001,41,1 +2020-05-14,Adams,Illinois,17001,41,1 +2020-05-15,Adams,Illinois,17001,42,1 +2020-05-16,Adams,Illinois,17001,42,1 +2020-05-17,Adams,Illinois,17001,42,1 +2020-05-18,Adams,Illinois,17001,42,1 +2020-05-19,Adams,Illinois,17001,42,1 +2020-05-20,Adams,Illinois,17001,43,1 +2020-05-21,Adams,Illinois,17001,45,1 +2020-05-22,Adams,Illinois,17001,44,1 +2020-05-23,Adams,Illinois,17001,44,1 +2020-05-24,Adams,Illinois,17001,44,1 +2020-05-25,Adams,Illinois,17001,44,1 +2020-05-26,Adams,Illinois,17001,44,1 +2020-05-27,Adams,Illinois,17001,44,1 +2020-05-28,Adams,Illinois,17001,44,1 +2020-05-29,Adams,Illinois,17001,44,1 +2020-05-30,Adams,Illinois,17001,44,1 +2020-05-31,Adams,Illinois,17001,44,1 +2020-06-01,Adams,Illinois,17001,44,1 +2020-06-02,Adams,Illinois,17001,44,1 +2020-06-03,Adams,Illinois,17001,44,1 +2020-06-04,Adams,Illinois,17001,44,1 +2020-06-05,Adams,Illinois,17001,44,1 +2020-06-06,Adams,Illinois,17001,46,1 +2020-06-07,Adams,Illinois,17001,46,1 +2020-06-08,Adams,Illinois,17001,45,1 +2020-06-09,Adams,Illinois,17001,45,1 +2020-06-10,Adams,Illinois,17001,45,1 +2020-06-11,Adams,Illinois,17001,45,1 +2020-06-12,Adams,Illinois,17001,45,1 +2020-06-13,Adams,Illinois,17001,45,1 +2020-06-14,Adams,Illinois,17001,45,1 +2020-06-15,Adams,Illinois,17001,46,1 +2020-06-16,Adams,Illinois,17001,45,1 +2020-06-17,Adams,Illinois,17001,45,1 +2020-06-18,Adams,Illinois,17001,46,1 +2020-06-19,Adams,Illinois,17001,47,1 +2020-06-20,Adams,Illinois,17001,48,1 +2020-06-21,Adams,Illinois,17001,55,1 +2020-06-22,Adams,Illinois,17001,57,1 +2020-06-23,Adams,Illinois,17001,63,1 +2020-06-24,Adams,Illinois,17001,67,1 +2020-06-25,Adams,Illinois,17001,71,1 +2020-06-26,Adams,Illinois,17001,76,1 +2020-06-27,Adams,Illinois,17001,77,1 +2020-06-28,Adams,Illinois,17001,83,1 +2020-06-29,Adams,Illinois,17001,88,1 +2020-06-30,Adams,Illinois,17001,87,1 +2020-07-01,Adams,Illinois,17001,93,1 +2020-07-02,Adams,Illinois,17001,100,1 +2020-07-03,Adams,Illinois,17001,106,1 +2020-07-04,Adams,Illinois,17001,113,1 +2020-07-05,Adams,Illinois,17001,122,1 +2020-07-06,Adams,Illinois,17001,131,1 +2020-07-07,Adams,Illinois,17001,134,1 +2020-07-08,Adams,Illinois,17001,139,1 +2020-07-09,Adams,Illinois,17001,142,1 +2020-04-16,Alexander,Illinois,17003,1,0 +2020-04-17,Alexander,Illinois,17003,1,0 +2020-04-18,Alexander,Illinois,17003,1,0 +2020-04-19,Alexander,Illinois,17003,2,0 +2020-04-20,Alexander,Illinois,17003,2,0 +2020-04-21,Alexander,Illinois,17003,2,0 +2020-04-22,Alexander,Illinois,17003,2,0 +2020-04-23,Alexander,Illinois,17003,2,0 +2020-04-24,Alexander,Illinois,17003,2,0 +2020-04-25,Alexander,Illinois,17003,2,0 +2020-04-26,Alexander,Illinois,17003,3,0 +2020-04-27,Alexander,Illinois,17003,3,0 +2020-04-28,Alexander,Illinois,17003,3,0 +2020-04-29,Alexander,Illinois,17003,3,0 +2020-04-30,Alexander,Illinois,17003,3,0 +2020-05-01,Alexander,Illinois,17003,3,0 +2020-05-02,Alexander,Illinois,17003,4,0 +2020-05-03,Alexander,Illinois,17003,4,0 +2020-05-04,Alexander,Illinois,17003,4,0 +2020-05-05,Alexander,Illinois,17003,4,0 +2020-05-06,Alexander,Illinois,17003,6,0 +2020-05-07,Alexander,Illinois,17003,6,0 +2020-05-08,Alexander,Illinois,17003,6,0 +2020-05-09,Alexander,Illinois,17003,6,0 +2020-05-10,Alexander,Illinois,17003,7,0 +2020-05-11,Alexander,Illinois,17003,7,0 +2020-05-12,Alexander,Illinois,17003,8,0 +2020-05-13,Alexander,Illinois,17003,8,0 +2020-05-14,Alexander,Illinois,17003,8,0 +2020-05-15,Alexander,Illinois,17003,8,0 +2020-05-16,Alexander,Illinois,17003,8,0 +2020-05-17,Alexander,Illinois,17003,8,0 +2020-05-18,Alexander,Illinois,17003,8,0 +2020-05-19,Alexander,Illinois,17003,8,0 +2020-05-20,Alexander,Illinois,17003,8,0 +2020-05-21,Alexander,Illinois,17003,8,0 +2020-05-22,Alexander,Illinois,17003,8,0 +2020-05-23,Alexander,Illinois,17003,8,0 +2020-05-24,Alexander,Illinois,17003,8,0 +2020-05-25,Alexander,Illinois,17003,8,0 +2020-05-26,Alexander,Illinois,17003,8,0 +2020-05-27,Alexander,Illinois,17003,8,0 +2020-05-28,Alexander,Illinois,17003,8,0 +2020-05-29,Alexander,Illinois,17003,8,0 +2020-05-30,Alexander,Illinois,17003,8,0 +2020-05-31,Alexander,Illinois,17003,8,0 +2020-06-01,Alexander,Illinois,17003,8,0 +2020-06-02,Alexander,Illinois,17003,8,0 +2020-06-03,Alexander,Illinois,17003,12,0 +2020-06-04,Alexander,Illinois,17003,12,0 +2020-06-05,Alexander,Illinois,17003,14,0 +2020-06-06,Alexander,Illinois,17003,15,0 +2020-06-07,Alexander,Illinois,17003,16,0 +2020-06-08,Alexander,Illinois,17003,15,0 +2020-06-09,Alexander,Illinois,17003,15,0 +2020-06-10,Alexander,Illinois,17003,16,0 +2020-06-11,Alexander,Illinois,17003,16,0 +2020-06-12,Alexander,Illinois,17003,16,0 +2020-06-13,Alexander,Illinois,17003,17,0 +2020-06-14,Alexander,Illinois,17003,17,0 +2020-06-15,Alexander,Illinois,17003,17,0 +2020-06-16,Alexander,Illinois,17003,17,0 +2020-06-17,Alexander,Illinois,17003,17,0 +2020-06-18,Alexander,Illinois,17003,18,0 +2020-06-19,Alexander,Illinois,17003,18,0 +2020-06-20,Alexander,Illinois,17003,20,0 +2020-06-21,Alexander,Illinois,17003,20,0 +2020-06-22,Alexander,Illinois,17003,20,0 +2020-06-23,Alexander,Illinois,17003,20,0 +2020-06-24,Alexander,Illinois,17003,21,0 +2020-06-25,Alexander,Illinois,17003,21,0 +2020-06-26,Alexander,Illinois,17003,21,0 +2020-06-27,Alexander,Illinois,17003,22,0 +2020-06-28,Alexander,Illinois,17003,22,0 +2020-06-29,Alexander,Illinois,17003,22,0 +2020-06-30,Alexander,Illinois,17003,22,0 +2020-07-01,Alexander,Illinois,17003,22,0 +2020-07-02,Alexander,Illinois,17003,22,0 +2020-07-03,Alexander,Illinois,17003,22,0 +2020-07-04,Alexander,Illinois,17003,22,0 +2020-07-05,Alexander,Illinois,17003,22,0 +2020-07-06,Alexander,Illinois,17003,22,0 +2020-07-07,Alexander,Illinois,17003,22,0 +2020-07-08,Alexander,Illinois,17003,22,0 +2020-07-09,Alexander,Illinois,17003,22,0 +2020-03-29,Bond,Illinois,17005,1,0 +2020-03-30,Bond,Illinois,17005,2,0 +2020-03-31,Bond,Illinois,17005,2,0 +2020-04-01,Bond,Illinois,17005,2,0 +2020-04-02,Bond,Illinois,17005,3,0 +2020-04-03,Bond,Illinois,17005,3,0 +2020-04-04,Bond,Illinois,17005,3,0 +2020-04-05,Bond,Illinois,17005,3,0 +2020-04-06,Bond,Illinois,17005,3,0 +2020-04-07,Bond,Illinois,17005,3,0 +2020-04-08,Bond,Illinois,17005,3,0 +2020-04-09,Bond,Illinois,17005,4,0 +2020-04-10,Bond,Illinois,17005,4,0 +2020-04-11,Bond,Illinois,17005,4,0 +2020-04-12,Bond,Illinois,17005,4,0 +2020-04-13,Bond,Illinois,17005,4,0 +2020-04-14,Bond,Illinois,17005,4,0 +2020-04-15,Bond,Illinois,17005,4,0 +2020-04-16,Bond,Illinois,17005,4,1 +2020-04-17,Bond,Illinois,17005,4,1 +2020-04-18,Bond,Illinois,17005,4,1 +2020-04-19,Bond,Illinois,17005,4,1 +2020-04-20,Bond,Illinois,17005,4,1 +2020-04-21,Bond,Illinois,17005,4,1 +2020-04-22,Bond,Illinois,17005,4,1 +2020-04-23,Bond,Illinois,17005,4,1 +2020-04-24,Bond,Illinois,17005,4,1 +2020-04-25,Bond,Illinois,17005,5,1 +2020-04-26,Bond,Illinois,17005,5,1 +2020-04-27,Bond,Illinois,17005,5,1 +2020-04-28,Bond,Illinois,17005,5,1 +2020-04-29,Bond,Illinois,17005,6,1 +2020-04-30,Bond,Illinois,17005,6,1 +2020-05-01,Bond,Illinois,17005,6,1 +2020-05-02,Bond,Illinois,17005,6,1 +2020-05-03,Bond,Illinois,17005,6,1 +2020-05-04,Bond,Illinois,17005,6,1 +2020-05-05,Bond,Illinois,17005,7,1 +2020-05-06,Bond,Illinois,17005,8,1 +2020-05-07,Bond,Illinois,17005,8,1 +2020-05-08,Bond,Illinois,17005,8,1 +2020-05-09,Bond,Illinois,17005,8,1 +2020-05-10,Bond,Illinois,17005,8,1 +2020-05-11,Bond,Illinois,17005,9,1 +2020-05-12,Bond,Illinois,17005,9,1 +2020-05-13,Bond,Illinois,17005,10,1 +2020-05-14,Bond,Illinois,17005,10,1 +2020-05-15,Bond,Illinois,17005,11,1 +2020-05-16,Bond,Illinois,17005,11,1 +2020-05-17,Bond,Illinois,17005,11,1 +2020-05-18,Bond,Illinois,17005,11,1 +2020-05-19,Bond,Illinois,17005,12,1 +2020-05-20,Bond,Illinois,17005,12,1 +2020-05-21,Bond,Illinois,17005,12,1 +2020-05-22,Bond,Illinois,17005,10,1 +2020-05-23,Bond,Illinois,17005,10,1 +2020-05-24,Bond,Illinois,17005,10,1 +2020-05-25,Bond,Illinois,17005,10,1 +2020-05-26,Bond,Illinois,17005,10,1 +2020-05-27,Bond,Illinois,17005,10,1 +2020-05-28,Bond,Illinois,17005,12,1 +2020-05-29,Bond,Illinois,17005,12,1 +2020-05-30,Bond,Illinois,17005,12,1 +2020-05-31,Bond,Illinois,17005,12,1 +2020-06-01,Bond,Illinois,17005,12,1 +2020-06-02,Bond,Illinois,17005,12,1 +2020-06-03,Bond,Illinois,17005,12,1 +2020-06-04,Bond,Illinois,17005,12,1 +2020-06-05,Bond,Illinois,17005,12,1 +2020-06-06,Bond,Illinois,17005,12,1 +2020-06-07,Bond,Illinois,17005,12,1 +2020-06-08,Bond,Illinois,17005,12,1 +2020-06-09,Bond,Illinois,17005,12,1 +2020-06-10,Bond,Illinois,17005,12,1 +2020-06-11,Bond,Illinois,17005,12,1 +2020-06-12,Bond,Illinois,17005,12,1 +2020-06-13,Bond,Illinois,17005,12,1 +2020-06-14,Bond,Illinois,17005,12,1 +2020-06-15,Bond,Illinois,17005,12,1 +2020-06-16,Bond,Illinois,17005,12,1 +2020-06-17,Bond,Illinois,17005,12,1 +2020-06-18,Bond,Illinois,17005,12,1 +2020-06-19,Bond,Illinois,17005,12,1 +2020-06-20,Bond,Illinois,17005,12,1 +2020-06-21,Bond,Illinois,17005,12,1 +2020-06-22,Bond,Illinois,17005,12,1 +2020-06-23,Bond,Illinois,17005,12,1 +2020-06-24,Bond,Illinois,17005,12,1 +2020-06-25,Bond,Illinois,17005,12,1 +2020-06-26,Bond,Illinois,17005,12,1 +2020-06-27,Bond,Illinois,17005,13,1 +2020-06-28,Bond,Illinois,17005,13,1 +2020-06-29,Bond,Illinois,17005,13,1 +2020-06-30,Bond,Illinois,17005,13,1 +2020-07-01,Bond,Illinois,17005,13,1 +2020-07-02,Bond,Illinois,17005,13,1 +2020-07-03,Bond,Illinois,17005,13,1 +2020-07-04,Bond,Illinois,17005,16,1 +2020-07-05,Bond,Illinois,17005,16,1 +2020-07-06,Bond,Illinois,17005,16,1 +2020-07-07,Bond,Illinois,17005,17,1 +2020-07-08,Bond,Illinois,17005,17,1 +2020-07-09,Bond,Illinois,17005,19,1 +2020-04-05,Boone,Illinois,17007,3,0 +2020-04-06,Boone,Illinois,17007,4,0 +2020-04-07,Boone,Illinois,17007,6,0 +2020-04-08,Boone,Illinois,17007,7,1 +2020-04-09,Boone,Illinois,17007,7,1 +2020-04-10,Boone,Illinois,17007,7,1 +2020-04-11,Boone,Illinois,17007,7,1 +2020-04-12,Boone,Illinois,17007,11,1 +2020-04-13,Boone,Illinois,17007,13,1 +2020-04-14,Boone,Illinois,17007,13,1 +2020-04-15,Boone,Illinois,17007,16,1 +2020-04-16,Boone,Illinois,17007,18,1 +2020-04-17,Boone,Illinois,17007,21,2 +2020-04-18,Boone,Illinois,17007,29,2 +2020-04-19,Boone,Illinois,17007,30,2 +2020-04-20,Boone,Illinois,17007,33,3 +2020-04-21,Boone,Illinois,17007,35,6 +2020-04-22,Boone,Illinois,17007,41,6 +2020-04-23,Boone,Illinois,17007,54,7 +2020-04-24,Boone,Illinois,17007,60,8 +2020-04-25,Boone,Illinois,17007,71,8 +2020-04-26,Boone,Illinois,17007,76,8 +2020-04-27,Boone,Illinois,17007,79,9 +2020-04-28,Boone,Illinois,17007,81,9 +2020-04-29,Boone,Illinois,17007,89,9 +2020-04-30,Boone,Illinois,17007,98,9 +2020-05-01,Boone,Illinois,17007,113,9 +2020-05-02,Boone,Illinois,17007,129,11 +2020-05-03,Boone,Illinois,17007,138,11 +2020-05-04,Boone,Illinois,17007,144,11 +2020-05-05,Boone,Illinois,17007,146,11 +2020-05-06,Boone,Illinois,17007,155,11 +2020-05-07,Boone,Illinois,17007,168,11 +2020-05-08,Boone,Illinois,17007,177,12 +2020-05-09,Boone,Illinois,17007,185,11 +2020-05-10,Boone,Illinois,17007,193,11 +2020-05-11,Boone,Illinois,17007,206,12 +2020-05-12,Boone,Illinois,17007,244,13 +2020-05-13,Boone,Illinois,17007,253,13 +2020-05-14,Boone,Illinois,17007,268,13 +2020-05-15,Boone,Illinois,17007,274,14 +2020-05-16,Boone,Illinois,17007,282,14 +2020-05-17,Boone,Illinois,17007,290,14 +2020-05-18,Boone,Illinois,17007,307,14 +2020-05-19,Boone,Illinois,17007,314,14 +2020-05-20,Boone,Illinois,17007,324,14 +2020-05-21,Boone,Illinois,17007,343,15 +2020-05-22,Boone,Illinois,17007,368,16 +2020-05-23,Boone,Illinois,17007,389,16 +2020-05-24,Boone,Illinois,17007,393,16 +2020-05-25,Boone,Illinois,17007,397,16 +2020-05-26,Boone,Illinois,17007,407,16 +2020-05-27,Boone,Illinois,17007,410,16 +2020-05-28,Boone,Illinois,17007,424,16 +2020-05-29,Boone,Illinois,17007,428,17 +2020-05-30,Boone,Illinois,17007,441,17 +2020-05-31,Boone,Illinois,17007,452,17 +2020-06-01,Boone,Illinois,17007,463,17 +2020-06-02,Boone,Illinois,17007,476,17 +2020-06-03,Boone,Illinois,17007,481,17 +2020-06-04,Boone,Illinois,17007,488,17 +2020-06-05,Boone,Illinois,17007,498,17 +2020-06-06,Boone,Illinois,17007,500,18 +2020-06-07,Boone,Illinois,17007,504,18 +2020-06-08,Boone,Illinois,17007,506,18 +2020-06-09,Boone,Illinois,17007,507,18 +2020-06-10,Boone,Illinois,17007,511,18 +2020-06-11,Boone,Illinois,17007,515,18 +2020-06-12,Boone,Illinois,17007,518,18 +2020-06-13,Boone,Illinois,17007,520,19 +2020-06-14,Boone,Illinois,17007,524,19 +2020-06-15,Boone,Illinois,17007,525,19 +2020-06-16,Boone,Illinois,17007,537,19 +2020-06-17,Boone,Illinois,17007,542,19 +2020-06-18,Boone,Illinois,17007,546,19 +2020-06-19,Boone,Illinois,17007,551,19 +2020-06-20,Boone,Illinois,17007,554,20 +2020-06-21,Boone,Illinois,17007,555,20 +2020-06-22,Boone,Illinois,17007,556,20 +2020-06-23,Boone,Illinois,17007,562,21 +2020-06-24,Boone,Illinois,17007,560,21 +2020-06-25,Boone,Illinois,17007,567,21 +2020-06-26,Boone,Illinois,17007,568,21 +2020-06-27,Boone,Illinois,17007,572,21 +2020-06-28,Boone,Illinois,17007,577,21 +2020-06-29,Boone,Illinois,17007,579,21 +2020-06-30,Boone,Illinois,17007,586,21 +2020-07-01,Boone,Illinois,17007,595,21 +2020-07-02,Boone,Illinois,17007,595,21 +2020-07-03,Boone,Illinois,17007,602,21 +2020-07-04,Boone,Illinois,17007,608,21 +2020-07-05,Boone,Illinois,17007,608,21 +2020-07-06,Boone,Illinois,17007,610,21 +2020-07-07,Boone,Illinois,17007,617,21 +2020-07-08,Boone,Illinois,17007,623,21 +2020-07-09,Boone,Illinois,17007,629,21 +2020-05-01,Brown,Illinois,17009,1,0 +2020-05-02,Brown,Illinois,17009,1,0 +2020-05-03,Brown,Illinois,17009,1,0 +2020-05-04,Brown,Illinois,17009,2,0 +2020-05-05,Brown,Illinois,17009,2,0 +2020-05-06,Brown,Illinois,17009,6,0 +2020-05-07,Brown,Illinois,17009,6,0 +2020-05-08,Brown,Illinois,17009,6,0 +2020-05-09,Brown,Illinois,17009,8,0 +2020-05-10,Brown,Illinois,17009,8,0 +2020-05-11,Brown,Illinois,17009,9,0 +2020-05-12,Brown,Illinois,17009,9,0 +2020-05-13,Brown,Illinois,17009,9,0 +2020-05-14,Brown,Illinois,17009,9,0 +2020-05-15,Brown,Illinois,17009,9,0 +2020-05-16,Brown,Illinois,17009,10,0 +2020-05-17,Brown,Illinois,17009,10,0 +2020-05-18,Brown,Illinois,17009,11,0 +2020-05-19,Brown,Illinois,17009,10,0 +2020-05-20,Brown,Illinois,17009,10,0 +2020-05-21,Brown,Illinois,17009,10,0 +2020-05-22,Brown,Illinois,17009,10,0 +2020-05-23,Brown,Illinois,17009,10,0 +2020-05-24,Brown,Illinois,17009,10,0 +2020-05-25,Brown,Illinois,17009,10,0 +2020-05-26,Brown,Illinois,17009,10,0 +2020-05-27,Brown,Illinois,17009,10,0 +2020-05-28,Brown,Illinois,17009,10,0 +2020-05-29,Brown,Illinois,17009,10,0 +2020-05-30,Brown,Illinois,17009,10,0 +2020-05-31,Brown,Illinois,17009,10,0 +2020-06-01,Brown,Illinois,17009,10,0 +2020-06-02,Brown,Illinois,17009,10,0 +2020-06-03,Brown,Illinois,17009,10,0 +2020-06-04,Brown,Illinois,17009,10,0 +2020-06-05,Brown,Illinois,17009,10,0 +2020-06-06,Brown,Illinois,17009,10,0 +2020-06-07,Brown,Illinois,17009,10,0 +2020-06-08,Brown,Illinois,17009,10,0 +2020-06-09,Brown,Illinois,17009,10,0 +2020-06-10,Brown,Illinois,17009,10,0 +2020-06-11,Brown,Illinois,17009,10,0 +2020-06-12,Brown,Illinois,17009,10,0 +2020-06-13,Brown,Illinois,17009,10,0 +2020-06-14,Brown,Illinois,17009,10,0 +2020-06-15,Brown,Illinois,17009,10,0 +2020-06-16,Brown,Illinois,17009,10,0 +2020-06-17,Brown,Illinois,17009,10,0 +2020-06-18,Brown,Illinois,17009,10,0 +2020-06-19,Brown,Illinois,17009,10,0 +2020-06-20,Brown,Illinois,17009,10,0 +2020-06-21,Brown,Illinois,17009,10,0 +2020-06-22,Brown,Illinois,17009,10,0 +2020-06-23,Brown,Illinois,17009,10,0 +2020-06-24,Brown,Illinois,17009,10,0 +2020-06-25,Brown,Illinois,17009,10,0 +2020-06-26,Brown,Illinois,17009,10,0 +2020-06-27,Brown,Illinois,17009,10,0 +2020-06-28,Brown,Illinois,17009,10,0 +2020-06-29,Brown,Illinois,17009,10,0 +2020-06-30,Brown,Illinois,17009,10,0 +2020-07-01,Brown,Illinois,17009,10,0 +2020-07-02,Brown,Illinois,17009,10,0 +2020-07-03,Brown,Illinois,17009,10,0 +2020-07-04,Brown,Illinois,17009,10,0 +2020-07-05,Brown,Illinois,17009,10,0 +2020-07-06,Brown,Illinois,17009,10,0 +2020-07-07,Brown,Illinois,17009,10,0 +2020-07-08,Brown,Illinois,17009,10,0 +2020-07-09,Brown,Illinois,17009,10,0 +2020-03-27,Bureau,Illinois,17011,1,0 +2020-03-28,Bureau,Illinois,17011,1,0 +2020-03-29,Bureau,Illinois,17011,1,0 +2020-03-30,Bureau,Illinois,17011,1,0 +2020-03-31,Bureau,Illinois,17011,1,0 +2020-04-01,Bureau,Illinois,17011,2,0 +2020-04-02,Bureau,Illinois,17011,2,0 +2020-04-03,Bureau,Illinois,17011,2,0 +2020-04-04,Bureau,Illinois,17011,3,0 +2020-04-05,Bureau,Illinois,17011,3,0 +2020-04-06,Bureau,Illinois,17011,3,0 +2020-04-07,Bureau,Illinois,17011,4,0 +2020-04-08,Bureau,Illinois,17011,4,0 +2020-04-09,Bureau,Illinois,17011,4,0 +2020-04-10,Bureau,Illinois,17011,4,0 +2020-04-11,Bureau,Illinois,17011,5,0 +2020-04-12,Bureau,Illinois,17011,5,0 +2020-04-13,Bureau,Illinois,17011,6,0 +2020-04-14,Bureau,Illinois,17011,6,0 +2020-04-15,Bureau,Illinois,17011,7,0 +2020-04-16,Bureau,Illinois,17011,7,0 +2020-04-17,Bureau,Illinois,17011,7,0 +2020-04-18,Bureau,Illinois,17011,8,0 +2020-04-19,Bureau,Illinois,17011,8,0 +2020-04-20,Bureau,Illinois,17011,8,0 +2020-04-21,Bureau,Illinois,17011,8,0 +2020-04-22,Bureau,Illinois,17011,8,0 +2020-04-23,Bureau,Illinois,17011,8,0 +2020-04-24,Bureau,Illinois,17011,9,0 +2020-04-25,Bureau,Illinois,17011,9,0 +2020-04-26,Bureau,Illinois,17011,10,0 +2020-04-27,Bureau,Illinois,17011,10,0 +2020-04-28,Bureau,Illinois,17011,11,0 +2020-04-29,Bureau,Illinois,17011,10,0 +2020-04-30,Bureau,Illinois,17011,10,0 +2020-05-01,Bureau,Illinois,17011,10,0 +2020-05-02,Bureau,Illinois,17011,11,0 +2020-05-03,Bureau,Illinois,17011,12,0 +2020-05-04,Bureau,Illinois,17011,12,0 +2020-05-05,Bureau,Illinois,17011,12,1 +2020-05-06,Bureau,Illinois,17011,12,1 +2020-05-07,Bureau,Illinois,17011,12,1 +2020-05-08,Bureau,Illinois,17011,13,1 +2020-05-09,Bureau,Illinois,17011,12,1 +2020-05-10,Bureau,Illinois,17011,14,1 +2020-05-11,Bureau,Illinois,17011,14,1 +2020-05-12,Bureau,Illinois,17011,15,1 +2020-05-13,Bureau,Illinois,17011,15,1 +2020-05-14,Bureau,Illinois,17011,15,1 +2020-05-15,Bureau,Illinois,17011,15,1 +2020-05-16,Bureau,Illinois,17011,15,1 +2020-05-17,Bureau,Illinois,17011,15,1 +2020-05-18,Bureau,Illinois,17011,15,1 +2020-05-19,Bureau,Illinois,17011,15,1 +2020-05-20,Bureau,Illinois,17011,15,1 +2020-05-21,Bureau,Illinois,17011,15,1 +2020-05-22,Bureau,Illinois,17011,15,1 +2020-05-23,Bureau,Illinois,17011,15,1 +2020-05-24,Bureau,Illinois,17011,15,1 +2020-05-25,Bureau,Illinois,17011,15,1 +2020-05-26,Bureau,Illinois,17011,15,1 +2020-05-27,Bureau,Illinois,17011,15,1 +2020-05-28,Bureau,Illinois,17011,15,1 +2020-05-29,Bureau,Illinois,17011,15,1 +2020-05-30,Bureau,Illinois,17011,15,1 +2020-05-31,Bureau,Illinois,17011,15,1 +2020-06-01,Bureau,Illinois,17011,15,1 +2020-06-02,Bureau,Illinois,17011,15,1 +2020-06-03,Bureau,Illinois,17011,17,1 +2020-06-04,Bureau,Illinois,17011,17,1 +2020-06-05,Bureau,Illinois,17011,21,1 +2020-06-06,Bureau,Illinois,17011,21,1 +2020-06-07,Bureau,Illinois,17011,21,1 +2020-06-08,Bureau,Illinois,17011,21,1 +2020-06-09,Bureau,Illinois,17011,21,1 +2020-06-10,Bureau,Illinois,17011,22,1 +2020-06-11,Bureau,Illinois,17011,22,1 +2020-06-12,Bureau,Illinois,17011,22,1 +2020-06-13,Bureau,Illinois,17011,23,1 +2020-06-14,Bureau,Illinois,17011,23,1 +2020-06-15,Bureau,Illinois,17011,23,1 +2020-06-16,Bureau,Illinois,17011,24,1 +2020-06-17,Bureau,Illinois,17011,24,1 +2020-06-18,Bureau,Illinois,17011,24,1 +2020-06-19,Bureau,Illinois,17011,24,1 +2020-06-20,Bureau,Illinois,17011,24,1 +2020-06-21,Bureau,Illinois,17011,24,1 +2020-06-22,Bureau,Illinois,17011,24,1 +2020-06-23,Bureau,Illinois,17011,24,1 +2020-06-24,Bureau,Illinois,17011,24,1 +2020-06-25,Bureau,Illinois,17011,24,1 +2020-06-26,Bureau,Illinois,17011,24,1 +2020-06-27,Bureau,Illinois,17011,24,1 +2020-06-28,Bureau,Illinois,17011,25,1 +2020-06-29,Bureau,Illinois,17011,25,1 +2020-06-30,Bureau,Illinois,17011,29,2 +2020-07-01,Bureau,Illinois,17011,29,2 +2020-07-02,Bureau,Illinois,17011,29,2 +2020-07-03,Bureau,Illinois,17011,29,2 +2020-07-04,Bureau,Illinois,17011,30,2 +2020-07-05,Bureau,Illinois,17011,30,2 +2020-07-06,Bureau,Illinois,17011,30,2 +2020-07-07,Bureau,Illinois,17011,31,2 +2020-07-08,Bureau,Illinois,17011,31,2 +2020-07-09,Bureau,Illinois,17011,31,2 +2020-04-05,Calhoun,Illinois,17013,1,0 +2020-04-06,Calhoun,Illinois,17013,1,0 +2020-04-07,Calhoun,Illinois,17013,1,0 +2020-04-08,Calhoun,Illinois,17013,1,0 +2020-04-09,Calhoun,Illinois,17013,1,0 +2020-04-10,Calhoun,Illinois,17013,1,0 +2020-04-11,Calhoun,Illinois,17013,1,0 +2020-04-12,Calhoun,Illinois,17013,1,0 +2020-04-13,Calhoun,Illinois,17013,1,0 +2020-04-14,Calhoun,Illinois,17013,1,0 +2020-04-15,Calhoun,Illinois,17013,1,0 +2020-04-16,Calhoun,Illinois,17013,1,0 +2020-04-17,Calhoun,Illinois,17013,1,0 +2020-04-18,Calhoun,Illinois,17013,1,0 +2020-04-19,Calhoun,Illinois,17013,1,0 +2020-04-20,Calhoun,Illinois,17013,1,0 +2020-04-21,Calhoun,Illinois,17013,1,0 +2020-04-22,Calhoun,Illinois,17013,1,0 +2020-04-23,Calhoun,Illinois,17013,1,0 +2020-04-24,Calhoun,Illinois,17013,1,0 +2020-04-25,Calhoun,Illinois,17013,1,0 +2020-04-26,Calhoun,Illinois,17013,1,0 +2020-04-27,Calhoun,Illinois,17013,1,0 +2020-04-28,Calhoun,Illinois,17013,1,0 +2020-04-29,Calhoun,Illinois,17013,1,0 +2020-04-30,Calhoun,Illinois,17013,1,0 +2020-05-01,Calhoun,Illinois,17013,1,0 +2020-05-02,Calhoun,Illinois,17013,1,0 +2020-05-03,Calhoun,Illinois,17013,1,0 +2020-05-04,Calhoun,Illinois,17013,1,0 +2020-05-05,Calhoun,Illinois,17013,1,0 +2020-05-06,Calhoun,Illinois,17013,1,0 +2020-05-07,Calhoun,Illinois,17013,1,0 +2020-05-08,Calhoun,Illinois,17013,1,0 +2020-05-09,Calhoun,Illinois,17013,1,0 +2020-05-10,Calhoun,Illinois,17013,1,0 +2020-05-11,Calhoun,Illinois,17013,1,0 +2020-05-12,Calhoun,Illinois,17013,1,0 +2020-05-13,Calhoun,Illinois,17013,1,0 +2020-05-14,Calhoun,Illinois,17013,1,0 +2020-05-15,Calhoun,Illinois,17013,1,0 +2020-05-16,Calhoun,Illinois,17013,1,0 +2020-05-17,Calhoun,Illinois,17013,1,0 +2020-05-18,Calhoun,Illinois,17013,1,0 +2020-05-19,Calhoun,Illinois,17013,1,0 +2020-05-20,Calhoun,Illinois,17013,1,0 +2020-05-21,Calhoun,Illinois,17013,1,0 +2020-05-22,Calhoun,Illinois,17013,1,0 +2020-05-23,Calhoun,Illinois,17013,1,0 +2020-05-24,Calhoun,Illinois,17013,1,0 +2020-05-25,Calhoun,Illinois,17013,1,0 +2020-05-26,Calhoun,Illinois,17013,1,0 +2020-05-27,Calhoun,Illinois,17013,1,0 +2020-05-28,Calhoun,Illinois,17013,1,0 +2020-05-29,Calhoun,Illinois,17013,1,0 +2020-05-30,Calhoun,Illinois,17013,1,0 +2020-05-31,Calhoun,Illinois,17013,1,0 +2020-06-01,Calhoun,Illinois,17013,1,0 +2020-06-02,Calhoun,Illinois,17013,1,0 +2020-06-03,Calhoun,Illinois,17013,1,0 +2020-06-04,Calhoun,Illinois,17013,1,0 +2020-06-05,Calhoun,Illinois,17013,1,0 +2020-06-06,Calhoun,Illinois,17013,1,0 +2020-06-07,Calhoun,Illinois,17013,1,0 +2020-06-08,Calhoun,Illinois,17013,1,0 +2020-06-09,Calhoun,Illinois,17013,1,0 +2020-06-10,Calhoun,Illinois,17013,1,0 +2020-06-11,Calhoun,Illinois,17013,1,0 +2020-06-12,Calhoun,Illinois,17013,1,0 +2020-06-13,Calhoun,Illinois,17013,1,0 +2020-06-14,Calhoun,Illinois,17013,1,0 +2020-06-15,Calhoun,Illinois,17013,1,0 +2020-06-16,Calhoun,Illinois,17013,1,0 +2020-06-17,Calhoun,Illinois,17013,1,0 +2020-06-18,Calhoun,Illinois,17013,1,0 +2020-06-19,Calhoun,Illinois,17013,1,0 +2020-06-20,Calhoun,Illinois,17013,1,0 +2020-06-21,Calhoun,Illinois,17013,1,0 +2020-06-22,Calhoun,Illinois,17013,1,0 +2020-06-23,Calhoun,Illinois,17013,1,0 +2020-06-24,Calhoun,Illinois,17013,1,0 +2020-06-25,Calhoun,Illinois,17013,1,0 +2020-06-26,Calhoun,Illinois,17013,1,0 +2020-06-27,Calhoun,Illinois,17013,1,0 +2020-06-28,Calhoun,Illinois,17013,1,0 +2020-06-29,Calhoun,Illinois,17013,1,0 +2020-06-30,Calhoun,Illinois,17013,1,0 +2020-07-01,Calhoun,Illinois,17013,1,0 +2020-07-02,Calhoun,Illinois,17013,1,0 +2020-07-03,Calhoun,Illinois,17013,1,0 +2020-07-04,Calhoun,Illinois,17013,1,0 +2020-07-05,Calhoun,Illinois,17013,1,0 +2020-07-06,Calhoun,Illinois,17013,1,0 +2020-07-07,Calhoun,Illinois,17013,1,0 +2020-07-08,Calhoun,Illinois,17013,1,0 +2020-07-09,Calhoun,Illinois,17013,1,0 +2020-03-28,Carroll,Illinois,17015,1,0 +2020-03-29,Carroll,Illinois,17015,1,0 +2020-03-30,Carroll,Illinois,17015,1,1 +2020-03-31,Carroll,Illinois,17015,2,1 +2020-04-01,Carroll,Illinois,17015,3,1 +2020-04-02,Carroll,Illinois,17015,4,1 +2020-04-03,Carroll,Illinois,17015,4,1 +2020-04-04,Carroll,Illinois,17015,4,1 +2020-04-05,Carroll,Illinois,17015,4,1 +2020-04-06,Carroll,Illinois,17015,4,1 +2020-04-07,Carroll,Illinois,17015,5,1 +2020-04-08,Carroll,Illinois,17015,5,1 +2020-04-09,Carroll,Illinois,17015,5,1 +2020-04-10,Carroll,Illinois,17015,5,1 +2020-04-11,Carroll,Illinois,17015,5,1 +2020-04-12,Carroll,Illinois,17015,5,1 +2020-04-13,Carroll,Illinois,17015,5,1 +2020-04-14,Carroll,Illinois,17015,5,1 +2020-04-15,Carroll,Illinois,17015,5,1 +2020-04-16,Carroll,Illinois,17015,5,1 +2020-04-17,Carroll,Illinois,17015,5,1 +2020-04-18,Carroll,Illinois,17015,6,1 +2020-04-19,Carroll,Illinois,17015,6,1 +2020-04-20,Carroll,Illinois,17015,6,1 +2020-04-21,Carroll,Illinois,17015,7,2 +2020-04-22,Carroll,Illinois,17015,7,2 +2020-04-23,Carroll,Illinois,17015,7,2 +2020-04-24,Carroll,Illinois,17015,7,2 +2020-04-25,Carroll,Illinois,17015,9,2 +2020-04-26,Carroll,Illinois,17015,9,2 +2020-04-27,Carroll,Illinois,17015,9,2 +2020-04-28,Carroll,Illinois,17015,9,2 +2020-04-29,Carroll,Illinois,17015,9,2 +2020-04-30,Carroll,Illinois,17015,9,2 +2020-05-01,Carroll,Illinois,17015,9,2 +2020-05-02,Carroll,Illinois,17015,9,2 +2020-05-03,Carroll,Illinois,17015,10,2 +2020-05-04,Carroll,Illinois,17015,10,2 +2020-05-05,Carroll,Illinois,17015,10,2 +2020-05-06,Carroll,Illinois,17015,10,2 +2020-05-07,Carroll,Illinois,17015,10,2 +2020-05-08,Carroll,Illinois,17015,10,2 +2020-05-09,Carroll,Illinois,17015,10,2 +2020-05-10,Carroll,Illinois,17015,11,2 +2020-05-11,Carroll,Illinois,17015,11,2 +2020-05-12,Carroll,Illinois,17015,12,2 +2020-05-13,Carroll,Illinois,17015,12,2 +2020-05-14,Carroll,Illinois,17015,12,2 +2020-05-15,Carroll,Illinois,17015,12,2 +2020-05-16,Carroll,Illinois,17015,13,2 +2020-05-17,Carroll,Illinois,17015,14,2 +2020-05-18,Carroll,Illinois,17015,14,2 +2020-05-19,Carroll,Illinois,17015,14,2 +2020-05-20,Carroll,Illinois,17015,13,2 +2020-05-21,Carroll,Illinois,17015,13,2 +2020-05-22,Carroll,Illinois,17015,13,2 +2020-05-23,Carroll,Illinois,17015,13,2 +2020-05-24,Carroll,Illinois,17015,13,2 +2020-05-25,Carroll,Illinois,17015,13,2 +2020-05-26,Carroll,Illinois,17015,13,2 +2020-05-27,Carroll,Illinois,17015,14,2 +2020-05-28,Carroll,Illinois,17015,14,2 +2020-05-29,Carroll,Illinois,17015,14,2 +2020-05-30,Carroll,Illinois,17015,16,2 +2020-05-31,Carroll,Illinois,17015,15,2 +2020-06-01,Carroll,Illinois,17015,15,2 +2020-06-02,Carroll,Illinois,17015,15,2 +2020-06-03,Carroll,Illinois,17015,15,2 +2020-06-04,Carroll,Illinois,17015,15,2 +2020-06-05,Carroll,Illinois,17015,17,2 +2020-06-06,Carroll,Illinois,17015,17,2 +2020-06-07,Carroll,Illinois,17015,17,2 +2020-06-08,Carroll,Illinois,17015,18,2 +2020-06-09,Carroll,Illinois,17015,19,2 +2020-06-10,Carroll,Illinois,17015,19,2 +2020-06-11,Carroll,Illinois,17015,18,2 +2020-06-12,Carroll,Illinois,17015,18,2 +2020-06-13,Carroll,Illinois,17015,19,2 +2020-06-14,Carroll,Illinois,17015,19,2 +2020-06-15,Carroll,Illinois,17015,20,2 +2020-06-16,Carroll,Illinois,17015,20,2 +2020-06-17,Carroll,Illinois,17015,20,2 +2020-06-18,Carroll,Illinois,17015,18,2 +2020-06-19,Carroll,Illinois,17015,18,2 +2020-06-20,Carroll,Illinois,17015,18,2 +2020-06-21,Carroll,Illinois,17015,19,2 +2020-06-22,Carroll,Illinois,17015,19,2 +2020-06-23,Carroll,Illinois,17015,19,2 +2020-06-24,Carroll,Illinois,17015,21,2 +2020-06-25,Carroll,Illinois,17015,21,2 +2020-06-26,Carroll,Illinois,17015,21,2 +2020-06-27,Carroll,Illinois,17015,21,2 +2020-06-28,Carroll,Illinois,17015,21,2 +2020-06-29,Carroll,Illinois,17015,21,2 +2020-06-30,Carroll,Illinois,17015,21,2 +2020-07-01,Carroll,Illinois,17015,21,2 +2020-07-02,Carroll,Illinois,17015,21,2 +2020-07-03,Carroll,Illinois,17015,22,2 +2020-07-04,Carroll,Illinois,17015,22,2 +2020-07-05,Carroll,Illinois,17015,21,2 +2020-07-06,Carroll,Illinois,17015,21,2 +2020-07-07,Carroll,Illinois,17015,21,2 +2020-07-08,Carroll,Illinois,17015,21,2 +2020-07-09,Carroll,Illinois,17015,21,2 +2020-04-20,Cass,Illinois,17017,2,0 +2020-04-21,Cass,Illinois,17017,6,0 +2020-04-22,Cass,Illinois,17017,7,0 +2020-04-23,Cass,Illinois,17017,8,0 +2020-04-24,Cass,Illinois,17017,17,0 +2020-04-25,Cass,Illinois,17017,21,0 +2020-04-26,Cass,Illinois,17017,27,0 +2020-04-27,Cass,Illinois,17017,25,0 +2020-04-28,Cass,Illinois,17017,27,0 +2020-04-29,Cass,Illinois,17017,29,0 +2020-04-30,Cass,Illinois,17017,33,0 +2020-05-01,Cass,Illinois,17017,34,0 +2020-05-02,Cass,Illinois,17017,40,0 +2020-05-03,Cass,Illinois,17017,40,0 +2020-05-04,Cass,Illinois,17017,40,0 +2020-05-05,Cass,Illinois,17017,42,0 +2020-05-06,Cass,Illinois,17017,48,0 +2020-05-07,Cass,Illinois,17017,50,0 +2020-05-08,Cass,Illinois,17017,52,0 +2020-05-09,Cass,Illinois,17017,56,0 +2020-05-10,Cass,Illinois,17017,56,0 +2020-05-11,Cass,Illinois,17017,56,0 +2020-05-12,Cass,Illinois,17017,64,0 +2020-05-13,Cass,Illinois,17017,62,0 +2020-05-14,Cass,Illinois,17017,66,0 +2020-05-15,Cass,Illinois,17017,67,0 +2020-05-16,Cass,Illinois,17017,63,0 +2020-05-17,Cass,Illinois,17017,64,0 +2020-05-18,Cass,Illinois,17017,64,0 +2020-05-19,Cass,Illinois,17017,66,0 +2020-05-20,Cass,Illinois,17017,67,0 +2020-05-21,Cass,Illinois,17017,68,0 +2020-05-22,Cass,Illinois,17017,67,0 +2020-05-23,Cass,Illinois,17017,67,0 +2020-05-24,Cass,Illinois,17017,67,0 +2020-05-25,Cass,Illinois,17017,67,0 +2020-05-26,Cass,Illinois,17017,67,0 +2020-05-27,Cass,Illinois,17017,68,0 +2020-05-28,Cass,Illinois,17017,69,0 +2020-05-29,Cass,Illinois,17017,71,0 +2020-05-30,Cass,Illinois,17017,73,0 +2020-05-31,Cass,Illinois,17017,73,0 +2020-06-01,Cass,Illinois,17017,73,0 +2020-06-02,Cass,Illinois,17017,74,0 +2020-06-03,Cass,Illinois,17017,74,0 +2020-06-04,Cass,Illinois,17017,74,0 +2020-06-05,Cass,Illinois,17017,76,0 +2020-06-06,Cass,Illinois,17017,73,0 +2020-06-07,Cass,Illinois,17017,73,0 +2020-06-08,Cass,Illinois,17017,74,0 +2020-06-09,Cass,Illinois,17017,74,0 +2020-06-10,Cass,Illinois,17017,74,0 +2020-06-11,Cass,Illinois,17017,75,0 +2020-06-12,Cass,Illinois,17017,77,0 +2020-06-13,Cass,Illinois,17017,75,0 +2020-06-14,Cass,Illinois,17017,76,0 +2020-06-15,Cass,Illinois,17017,76,0 +2020-06-16,Cass,Illinois,17017,76,0 +2020-06-17,Cass,Illinois,17017,78,0 +2020-06-18,Cass,Illinois,17017,79,0 +2020-06-19,Cass,Illinois,17017,100,0 +2020-06-20,Cass,Illinois,17017,99,0 +2020-06-21,Cass,Illinois,17017,100,0 +2020-06-22,Cass,Illinois,17017,100,0 +2020-06-23,Cass,Illinois,17017,100,0 +2020-06-24,Cass,Illinois,17017,117,0 +2020-06-25,Cass,Illinois,17017,119,0 +2020-06-26,Cass,Illinois,17017,121,1 +2020-06-27,Cass,Illinois,17017,127,1 +2020-06-28,Cass,Illinois,17017,127,1 +2020-06-29,Cass,Illinois,17017,129,1 +2020-06-30,Cass,Illinois,17017,129,2 +2020-07-01,Cass,Illinois,17017,130,2 +2020-07-02,Cass,Illinois,17017,133,2 +2020-07-03,Cass,Illinois,17017,134,6 +2020-07-04,Cass,Illinois,17017,136,7 +2020-07-05,Cass,Illinois,17017,136,7 +2020-07-06,Cass,Illinois,17017,136,7 +2020-07-07,Cass,Illinois,17017,136,7 +2020-07-08,Cass,Illinois,17017,136,7 +2020-07-09,Cass,Illinois,17017,136,7 +2020-03-22,Champaign,Illinois,17019,2,0 +2020-03-23,Champaign,Illinois,17019,2,0 +2020-03-24,Champaign,Illinois,17019,2,0 +2020-03-25,Champaign,Illinois,17019,4,0 +2020-03-26,Champaign,Illinois,17019,8,0 +2020-03-27,Champaign,Illinois,17019,10,0 +2020-03-28,Champaign,Illinois,17019,15,0 +2020-03-29,Champaign,Illinois,17019,21,0 +2020-03-30,Champaign,Illinois,17019,23,0 +2020-03-31,Champaign,Illinois,17019,26,0 +2020-04-01,Champaign,Illinois,17019,33,0 +2020-04-02,Champaign,Illinois,17019,43,0 +2020-04-03,Champaign,Illinois,17019,51,0 +2020-04-04,Champaign,Illinois,17019,55,0 +2020-04-05,Champaign,Illinois,17019,55,0 +2020-04-06,Champaign,Illinois,17019,62,0 +2020-04-07,Champaign,Illinois,17019,65,1 +2020-04-08,Champaign,Illinois,17019,69,1 +2020-04-09,Champaign,Illinois,17019,72,1 +2020-04-10,Champaign,Illinois,17019,79,1 +2020-04-11,Champaign,Illinois,17019,85,2 +2020-04-12,Champaign,Illinois,17019,86,2 +2020-04-13,Champaign,Illinois,17019,87,2 +2020-04-14,Champaign,Illinois,17019,88,2 +2020-04-15,Champaign,Illinois,17019,90,2 +2020-04-16,Champaign,Illinois,17019,90,4 +2020-04-17,Champaign,Illinois,17019,92,4 +2020-04-18,Champaign,Illinois,17019,93,4 +2020-04-19,Champaign,Illinois,17019,95,4 +2020-04-20,Champaign,Illinois,17019,95,4 +2020-04-21,Champaign,Illinois,17019,97,4 +2020-04-22,Champaign,Illinois,17019,97,4 +2020-04-23,Champaign,Illinois,17019,99,5 +2020-04-24,Champaign,Illinois,17019,102,5 +2020-04-25,Champaign,Illinois,17019,102,5 +2020-04-26,Champaign,Illinois,17019,105,5 +2020-04-27,Champaign,Illinois,17019,107,6 +2020-04-28,Champaign,Illinois,17019,114,6 +2020-04-29,Champaign,Illinois,17019,120,6 +2020-04-30,Champaign,Illinois,17019,130,6 +2020-05-01,Champaign,Illinois,17019,143,6 +2020-05-02,Champaign,Illinois,17019,156,6 +2020-05-03,Champaign,Illinois,17019,177,6 +2020-05-04,Champaign,Illinois,17019,182,6 +2020-05-05,Champaign,Illinois,17019,212,6 +2020-05-06,Champaign,Illinois,17019,212,6 +2020-05-07,Champaign,Illinois,17019,229,6 +2020-05-08,Champaign,Illinois,17019,247,6 +2020-05-09,Champaign,Illinois,17019,256,6 +2020-05-10,Champaign,Illinois,17019,263,6 +2020-05-11,Champaign,Illinois,17019,279,6 +2020-05-12,Champaign,Illinois,17019,303,6 +2020-05-13,Champaign,Illinois,17019,318,6 +2020-05-14,Champaign,Illinois,17019,324,6 +2020-05-15,Champaign,Illinois,17019,344,7 +2020-05-16,Champaign,Illinois,17019,366,7 +2020-05-17,Champaign,Illinois,17019,401,7 +2020-05-18,Champaign,Illinois,17019,418,7 +2020-05-19,Champaign,Illinois,17019,435,7 +2020-05-20,Champaign,Illinois,17019,472,7 +2020-05-21,Champaign,Illinois,17019,496,7 +2020-05-22,Champaign,Illinois,17019,515,7 +2020-05-23,Champaign,Illinois,17019,547,7 +2020-05-24,Champaign,Illinois,17019,556,7 +2020-05-25,Champaign,Illinois,17019,564,7 +2020-05-26,Champaign,Illinois,17019,569,7 +2020-05-27,Champaign,Illinois,17019,583,7 +2020-05-28,Champaign,Illinois,17019,596,7 +2020-05-29,Champaign,Illinois,17019,617,7 +2020-05-30,Champaign,Illinois,17019,627,7 +2020-05-31,Champaign,Illinois,17019,640,7 +2020-06-01,Champaign,Illinois,17019,646,7 +2020-06-02,Champaign,Illinois,17019,654,7 +2020-06-03,Champaign,Illinois,17019,662,7 +2020-06-04,Champaign,Illinois,17019,671,7 +2020-06-05,Champaign,Illinois,17019,677,7 +2020-06-06,Champaign,Illinois,17019,684,8 +2020-06-07,Champaign,Illinois,17019,686,8 +2020-06-08,Champaign,Illinois,17019,691,8 +2020-06-09,Champaign,Illinois,17019,701,8 +2020-06-10,Champaign,Illinois,17019,703,9 +2020-06-11,Champaign,Illinois,17019,708,9 +2020-06-12,Champaign,Illinois,17019,724,9 +2020-06-13,Champaign,Illinois,17019,724,9 +2020-06-14,Champaign,Illinois,17019,737,9 +2020-06-15,Champaign,Illinois,17019,737,9 +2020-06-16,Champaign,Illinois,17019,749,9 +2020-06-17,Champaign,Illinois,17019,755,10 +2020-06-18,Champaign,Illinois,17019,761,11 +2020-06-19,Champaign,Illinois,17019,765,11 +2020-06-20,Champaign,Illinois,17019,770,12 +2020-06-21,Champaign,Illinois,17019,775,12 +2020-06-22,Champaign,Illinois,17019,781,12 +2020-06-23,Champaign,Illinois,17019,796,12 +2020-06-24,Champaign,Illinois,17019,806,12 +2020-06-25,Champaign,Illinois,17019,815,12 +2020-06-26,Champaign,Illinois,17019,832,12 +2020-06-27,Champaign,Illinois,17019,839,12 +2020-06-28,Champaign,Illinois,17019,847,12 +2020-06-29,Champaign,Illinois,17019,854,12 +2020-06-30,Champaign,Illinois,17019,866,12 +2020-07-01,Champaign,Illinois,17019,890,12 +2020-07-02,Champaign,Illinois,17019,905,12 +2020-07-03,Champaign,Illinois,17019,930,12 +2020-07-04,Champaign,Illinois,17019,939,13 +2020-07-05,Champaign,Illinois,17019,948,15 +2020-07-06,Champaign,Illinois,17019,960,15 +2020-07-07,Champaign,Illinois,17019,975,16 +2020-07-08,Champaign,Illinois,17019,992,17 +2020-07-09,Champaign,Illinois,17019,1010,17 +2020-03-20,Christian,Illinois,17021,1,0 +2020-03-21,Christian,Illinois,17021,1,0 +2020-03-22,Christian,Illinois,17021,1,0 +2020-03-23,Christian,Illinois,17021,1,0 +2020-03-24,Christian,Illinois,17021,1,0 +2020-03-25,Christian,Illinois,17021,1,0 +2020-03-26,Christian,Illinois,17021,1,0 +2020-03-27,Christian,Illinois,17021,1,0 +2020-03-28,Christian,Illinois,17021,1,0 +2020-03-29,Christian,Illinois,17021,19,0 +2020-03-30,Christian,Illinois,17021,19,0 +2020-03-31,Christian,Illinois,17021,14,0 +2020-04-01,Christian,Illinois,17021,14,0 +2020-04-02,Christian,Illinois,17021,15,1 +2020-04-03,Christian,Illinois,17021,17,2 +2020-04-04,Christian,Illinois,17021,18,3 +2020-04-05,Christian,Illinois,17021,21,3 +2020-04-06,Christian,Illinois,17021,22,3 +2020-04-07,Christian,Illinois,17021,24,4 +2020-04-08,Christian,Illinois,17021,24,4 +2020-04-09,Christian,Illinois,17021,24,4 +2020-04-10,Christian,Illinois,17021,24,4 +2020-04-11,Christian,Illinois,17021,24,4 +2020-04-12,Christian,Illinois,17021,24,4 +2020-04-13,Christian,Illinois,17021,25,4 +2020-04-14,Christian,Illinois,17021,25,5 +2020-04-15,Christian,Illinois,17021,25,5 +2020-04-16,Christian,Illinois,17021,25,5 +2020-04-17,Christian,Illinois,17021,25,5 +2020-04-18,Christian,Illinois,17021,25,5 +2020-04-19,Christian,Illinois,17021,25,5 +2020-04-20,Christian,Illinois,17021,27,5 +2020-04-21,Christian,Illinois,17021,26,5 +2020-04-22,Christian,Illinois,17021,26,5 +2020-04-23,Christian,Illinois,17021,26,5 +2020-04-24,Christian,Illinois,17021,27,5 +2020-04-25,Christian,Illinois,17021,28,5 +2020-04-26,Christian,Illinois,17021,28,5 +2020-04-27,Christian,Illinois,17021,28,5 +2020-04-28,Christian,Illinois,17021,28,5 +2020-04-29,Christian,Illinois,17021,30,5 +2020-04-30,Christian,Illinois,17021,30,5 +2020-05-01,Christian,Illinois,17021,29,5 +2020-05-02,Christian,Illinois,17021,28,5 +2020-05-03,Christian,Illinois,17021,28,5 +2020-05-04,Christian,Illinois,17021,28,5 +2020-05-05,Christian,Illinois,17021,28,5 +2020-05-06,Christian,Illinois,17021,28,5 +2020-05-07,Christian,Illinois,17021,27,5 +2020-05-08,Christian,Illinois,17021,29,5 +2020-05-09,Christian,Illinois,17021,29,5 +2020-05-10,Christian,Illinois,17021,29,5 +2020-05-11,Christian,Illinois,17021,29,5 +2020-05-12,Christian,Illinois,17021,30,5 +2020-05-13,Christian,Illinois,17021,30,5 +2020-05-14,Christian,Illinois,17021,30,5 +2020-05-15,Christian,Illinois,17021,30,5 +2020-05-16,Christian,Illinois,17021,30,5 +2020-05-17,Christian,Illinois,17021,31,5 +2020-05-18,Christian,Illinois,17021,32,5 +2020-05-19,Christian,Illinois,17021,32,5 +2020-05-20,Christian,Illinois,17021,32,5 +2020-05-21,Christian,Illinois,17021,32,5 +2020-05-22,Christian,Illinois,17021,32,5 +2020-05-23,Christian,Illinois,17021,33,5 +2020-05-24,Christian,Illinois,17021,33,5 +2020-05-25,Christian,Illinois,17021,33,5 +2020-05-26,Christian,Illinois,17021,33,5 +2020-05-27,Christian,Illinois,17021,33,5 +2020-05-28,Christian,Illinois,17021,33,5 +2020-05-29,Christian,Illinois,17021,33,5 +2020-05-30,Christian,Illinois,17021,35,5 +2020-05-31,Christian,Illinois,17021,35,5 +2020-06-01,Christian,Illinois,17021,35,5 +2020-06-02,Christian,Illinois,17021,35,5 +2020-06-03,Christian,Illinois,17021,35,5 +2020-06-04,Christian,Illinois,17021,35,5 +2020-06-05,Christian,Illinois,17021,35,5 +2020-06-06,Christian,Illinois,17021,35,5 +2020-06-07,Christian,Illinois,17021,35,5 +2020-06-08,Christian,Illinois,17021,35,5 +2020-06-09,Christian,Illinois,17021,35,5 +2020-06-10,Christian,Illinois,17021,35,5 +2020-06-11,Christian,Illinois,17021,35,5 +2020-06-12,Christian,Illinois,17021,35,5 +2020-06-13,Christian,Illinois,17021,35,5 +2020-06-14,Christian,Illinois,17021,37,5 +2020-06-15,Christian,Illinois,17021,39,5 +2020-06-16,Christian,Illinois,17021,39,5 +2020-06-17,Christian,Illinois,17021,39,5 +2020-06-18,Christian,Illinois,17021,42,5 +2020-06-19,Christian,Illinois,17021,42,5 +2020-06-20,Christian,Illinois,17021,42,5 +2020-06-21,Christian,Illinois,17021,42,5 +2020-06-22,Christian,Illinois,17021,42,5 +2020-06-23,Christian,Illinois,17021,42,5 +2020-06-24,Christian,Illinois,17021,42,5 +2020-06-25,Christian,Illinois,17021,42,5 +2020-06-26,Christian,Illinois,17021,42,5 +2020-06-27,Christian,Illinois,17021,43,5 +2020-06-28,Christian,Illinois,17021,43,5 +2020-06-29,Christian,Illinois,17021,43,5 +2020-06-30,Christian,Illinois,17021,43,5 +2020-07-01,Christian,Illinois,17021,43,5 +2020-07-02,Christian,Illinois,17021,45,5 +2020-07-03,Christian,Illinois,17021,45,5 +2020-07-04,Christian,Illinois,17021,45,5 +2020-07-05,Christian,Illinois,17021,45,5 +2020-07-06,Christian,Illinois,17021,47,5 +2020-07-07,Christian,Illinois,17021,47,5 +2020-07-08,Christian,Illinois,17021,47,5 +2020-07-09,Christian,Illinois,17021,48,5 +2020-03-30,Clark,Illinois,17023,1,0 +2020-03-31,Clark,Illinois,17023,1,0 +2020-04-01,Clark,Illinois,17023,1,0 +2020-04-02,Clark,Illinois,17023,2,0 +2020-04-03,Clark,Illinois,17023,2,0 +2020-04-04,Clark,Illinois,17023,2,0 +2020-04-05,Clark,Illinois,17023,2,0 +2020-04-06,Clark,Illinois,17023,2,0 +2020-04-07,Clark,Illinois,17023,4,0 +2020-04-08,Clark,Illinois,17023,4,0 +2020-04-09,Clark,Illinois,17023,4,0 +2020-04-10,Clark,Illinois,17023,4,0 +2020-04-11,Clark,Illinois,17023,4,0 +2020-04-12,Clark,Illinois,17023,4,0 +2020-04-13,Clark,Illinois,17023,4,0 +2020-04-14,Clark,Illinois,17023,4,0 +2020-04-15,Clark,Illinois,17023,4,0 +2020-04-16,Clark,Illinois,17023,4,0 +2020-04-17,Clark,Illinois,17023,4,0 +2020-04-18,Clark,Illinois,17023,4,0 +2020-04-19,Clark,Illinois,17023,4,0 +2020-04-20,Clark,Illinois,17023,4,0 +2020-04-21,Clark,Illinois,17023,4,0 +2020-04-22,Clark,Illinois,17023,4,0 +2020-04-23,Clark,Illinois,17023,4,0 +2020-04-24,Clark,Illinois,17023,4,0 +2020-04-25,Clark,Illinois,17023,4,0 +2020-04-26,Clark,Illinois,17023,4,0 +2020-04-27,Clark,Illinois,17023,4,0 +2020-04-28,Clark,Illinois,17023,5,0 +2020-04-29,Clark,Illinois,17023,5,0 +2020-04-30,Clark,Illinois,17023,5,0 +2020-05-01,Clark,Illinois,17023,5,0 +2020-05-02,Clark,Illinois,17023,6,0 +2020-05-03,Clark,Illinois,17023,5,0 +2020-05-04,Clark,Illinois,17023,5,0 +2020-05-05,Clark,Illinois,17023,5,0 +2020-05-06,Clark,Illinois,17023,5,0 +2020-05-07,Clark,Illinois,17023,5,0 +2020-05-08,Clark,Illinois,17023,5,0 +2020-05-09,Clark,Illinois,17023,7,0 +2020-05-10,Clark,Illinois,17023,8,0 +2020-05-11,Clark,Illinois,17023,8,0 +2020-05-12,Clark,Illinois,17023,8,0 +2020-05-13,Clark,Illinois,17023,8,0 +2020-05-14,Clark,Illinois,17023,9,0 +2020-05-15,Clark,Illinois,17023,9,0 +2020-05-16,Clark,Illinois,17023,9,0 +2020-05-17,Clark,Illinois,17023,9,0 +2020-05-18,Clark,Illinois,17023,9,0 +2020-05-19,Clark,Illinois,17023,9,0 +2020-05-20,Clark,Illinois,17023,9,0 +2020-05-21,Clark,Illinois,17023,9,0 +2020-05-22,Clark,Illinois,17023,10,0 +2020-05-23,Clark,Illinois,17023,10,0 +2020-05-24,Clark,Illinois,17023,10,0 +2020-05-25,Clark,Illinois,17023,10,0 +2020-05-26,Clark,Illinois,17023,10,0 +2020-05-27,Clark,Illinois,17023,10,0 +2020-05-28,Clark,Illinois,17023,11,0 +2020-05-29,Clark,Illinois,17023,11,0 +2020-05-30,Clark,Illinois,17023,11,0 +2020-05-31,Clark,Illinois,17023,11,0 +2020-06-01,Clark,Illinois,17023,11,0 +2020-06-02,Clark,Illinois,17023,11,0 +2020-06-03,Clark,Illinois,17023,11,0 +2020-06-04,Clark,Illinois,17023,11,0 +2020-06-05,Clark,Illinois,17023,11,0 +2020-06-06,Clark,Illinois,17023,11,0 +2020-06-07,Clark,Illinois,17023,11,0 +2020-06-08,Clark,Illinois,17023,12,0 +2020-06-09,Clark,Illinois,17023,12,0 +2020-06-10,Clark,Illinois,17023,12,0 +2020-06-11,Clark,Illinois,17023,12,0 +2020-06-12,Clark,Illinois,17023,12,0 +2020-06-13,Clark,Illinois,17023,12,0 +2020-06-14,Clark,Illinois,17023,13,0 +2020-06-15,Clark,Illinois,17023,13,0 +2020-06-16,Clark,Illinois,17023,13,0 +2020-06-17,Clark,Illinois,17023,13,0 +2020-06-18,Clark,Illinois,17023,13,0 +2020-06-19,Clark,Illinois,17023,13,0 +2020-06-20,Clark,Illinois,17023,13,0 +2020-06-21,Clark,Illinois,17023,13,0 +2020-06-22,Clark,Illinois,17023,14,0 +2020-06-23,Clark,Illinois,17023,14,0 +2020-06-24,Clark,Illinois,17023,14,0 +2020-06-25,Clark,Illinois,17023,14,0 +2020-06-26,Clark,Illinois,17023,14,0 +2020-06-27,Clark,Illinois,17023,14,0 +2020-06-28,Clark,Illinois,17023,15,0 +2020-06-29,Clark,Illinois,17023,15,0 +2020-06-30,Clark,Illinois,17023,14,0 +2020-07-01,Clark,Illinois,17023,14,0 +2020-07-02,Clark,Illinois,17023,14,0 +2020-07-03,Clark,Illinois,17023,15,0 +2020-07-04,Clark,Illinois,17023,15,0 +2020-07-05,Clark,Illinois,17023,15,0 +2020-07-06,Clark,Illinois,17023,15,0 +2020-07-07,Clark,Illinois,17023,15,0 +2020-07-08,Clark,Illinois,17023,18,0 +2020-07-09,Clark,Illinois,17023,21,0 +2020-04-14,Clay,Illinois,17025,1,0 +2020-04-15,Clay,Illinois,17025,1,0 +2020-04-16,Clay,Illinois,17025,1,0 +2020-04-17,Clay,Illinois,17025,1,0 +2020-04-18,Clay,Illinois,17025,1,0 +2020-04-19,Clay,Illinois,17025,1,0 +2020-04-20,Clay,Illinois,17025,1,0 +2020-04-21,Clay,Illinois,17025,1,0 +2020-04-22,Clay,Illinois,17025,2,0 +2020-04-23,Clay,Illinois,17025,2,0 +2020-04-24,Clay,Illinois,17025,2,0 +2020-04-25,Clay,Illinois,17025,2,0 +2020-04-26,Clay,Illinois,17025,2,0 +2020-04-27,Clay,Illinois,17025,2,0 +2020-04-28,Clay,Illinois,17025,2,0 +2020-04-29,Clay,Illinois,17025,2,0 +2020-04-30,Clay,Illinois,17025,2,0 +2020-05-01,Clay,Illinois,17025,2,0 +2020-05-02,Clay,Illinois,17025,2,0 +2020-05-03,Clay,Illinois,17025,2,0 +2020-05-04,Clay,Illinois,17025,2,0 +2020-05-05,Clay,Illinois,17025,2,0 +2020-05-06,Clay,Illinois,17025,2,0 +2020-05-07,Clay,Illinois,17025,2,0 +2020-05-08,Clay,Illinois,17025,2,0 +2020-05-09,Clay,Illinois,17025,2,0 +2020-05-10,Clay,Illinois,17025,2,0 +2020-05-11,Clay,Illinois,17025,2,0 +2020-05-12,Clay,Illinois,17025,2,0 +2020-05-13,Clay,Illinois,17025,2,0 +2020-05-14,Clay,Illinois,17025,2,0 +2020-05-15,Clay,Illinois,17025,2,0 +2020-05-16,Clay,Illinois,17025,2,0 +2020-05-17,Clay,Illinois,17025,2,0 +2020-05-18,Clay,Illinois,17025,2,0 +2020-05-19,Clay,Illinois,17025,3,0 +2020-05-20,Clay,Illinois,17025,2,0 +2020-05-21,Clay,Illinois,17025,2,0 +2020-05-22,Clay,Illinois,17025,2,0 +2020-05-23,Clay,Illinois,17025,2,0 +2020-05-24,Clay,Illinois,17025,2,0 +2020-05-25,Clay,Illinois,17025,2,0 +2020-05-26,Clay,Illinois,17025,2,0 +2020-05-27,Clay,Illinois,17025,2,0 +2020-05-28,Clay,Illinois,17025,2,0 +2020-05-29,Clay,Illinois,17025,2,0 +2020-05-30,Clay,Illinois,17025,2,0 +2020-05-31,Clay,Illinois,17025,2,0 +2020-06-01,Clay,Illinois,17025,2,0 +2020-06-02,Clay,Illinois,17025,2,0 +2020-06-03,Clay,Illinois,17025,2,0 +2020-06-04,Clay,Illinois,17025,2,0 +2020-06-05,Clay,Illinois,17025,2,0 +2020-06-06,Clay,Illinois,17025,2,0 +2020-06-07,Clay,Illinois,17025,2,0 +2020-06-08,Clay,Illinois,17025,2,0 +2020-06-09,Clay,Illinois,17025,2,0 +2020-06-10,Clay,Illinois,17025,2,0 +2020-06-11,Clay,Illinois,17025,2,0 +2020-06-12,Clay,Illinois,17025,2,0 +2020-06-13,Clay,Illinois,17025,2,0 +2020-06-14,Clay,Illinois,17025,2,0 +2020-06-15,Clay,Illinois,17025,2,0 +2020-06-16,Clay,Illinois,17025,2,0 +2020-06-17,Clay,Illinois,17025,2,0 +2020-06-18,Clay,Illinois,17025,3,0 +2020-06-19,Clay,Illinois,17025,2,0 +2020-06-20,Clay,Illinois,17025,2,0 +2020-06-21,Clay,Illinois,17025,2,0 +2020-06-22,Clay,Illinois,17025,2,0 +2020-06-23,Clay,Illinois,17025,2,0 +2020-06-24,Clay,Illinois,17025,2,0 +2020-06-25,Clay,Illinois,17025,2,0 +2020-06-26,Clay,Illinois,17025,2,0 +2020-06-27,Clay,Illinois,17025,2,0 +2020-06-28,Clay,Illinois,17025,2,0 +2020-06-29,Clay,Illinois,17025,2,0 +2020-06-30,Clay,Illinois,17025,2,0 +2020-07-01,Clay,Illinois,17025,2,0 +2020-07-02,Clay,Illinois,17025,2,0 +2020-07-03,Clay,Illinois,17025,2,0 +2020-07-04,Clay,Illinois,17025,2,0 +2020-07-05,Clay,Illinois,17025,2,0 +2020-07-06,Clay,Illinois,17025,2,0 +2020-07-07,Clay,Illinois,17025,2,0 +2020-07-08,Clay,Illinois,17025,2,0 +2020-07-09,Clay,Illinois,17025,2,0 +2020-03-15,Clinton,Illinois,17027,1,0 +2020-03-16,Clinton,Illinois,17027,1,0 +2020-03-17,Clinton,Illinois,17027,2,0 +2020-03-18,Clinton,Illinois,17027,3,0 +2020-03-19,Clinton,Illinois,17027,3,0 +2020-03-20,Clinton,Illinois,17027,3,0 +2020-03-21,Clinton,Illinois,17027,3,0 +2020-03-22,Clinton,Illinois,17027,3,0 +2020-03-23,Clinton,Illinois,17027,3,0 +2020-03-24,Clinton,Illinois,17027,3,0 +2020-03-25,Clinton,Illinois,17027,4,0 +2020-03-26,Clinton,Illinois,17027,5,0 +2020-03-27,Clinton,Illinois,17027,5,0 +2020-03-28,Clinton,Illinois,17027,5,0 +2020-03-29,Clinton,Illinois,17027,6,0 +2020-03-30,Clinton,Illinois,17027,6,0 +2020-03-31,Clinton,Illinois,17027,7,0 +2020-04-01,Clinton,Illinois,17027,8,0 +2020-04-02,Clinton,Illinois,17027,8,0 +2020-04-03,Clinton,Illinois,17027,8,0 +2020-04-04,Clinton,Illinois,17027,10,0 +2020-04-05,Clinton,Illinois,17027,10,0 +2020-04-06,Clinton,Illinois,17027,11,0 +2020-04-07,Clinton,Illinois,17027,11,0 +2020-04-08,Clinton,Illinois,17027,13,0 +2020-04-09,Clinton,Illinois,17027,31,0 +2020-04-10,Clinton,Illinois,17027,32,0 +2020-04-11,Clinton,Illinois,17027,37,0 +2020-04-12,Clinton,Illinois,17027,37,0 +2020-04-13,Clinton,Illinois,17027,38,0 +2020-04-14,Clinton,Illinois,17027,38,0 +2020-04-15,Clinton,Illinois,17027,39,0 +2020-04-16,Clinton,Illinois,17027,39,0 +2020-04-17,Clinton,Illinois,17027,42,0 +2020-04-18,Clinton,Illinois,17027,44,0 +2020-04-19,Clinton,Illinois,17027,45,0 +2020-04-20,Clinton,Illinois,17027,45,0 +2020-04-21,Clinton,Illinois,17027,46,0 +2020-04-22,Clinton,Illinois,17027,49,0 +2020-04-23,Clinton,Illinois,17027,51,0 +2020-04-24,Clinton,Illinois,17027,73,1 +2020-04-25,Clinton,Illinois,17027,82,1 +2020-04-26,Clinton,Illinois,17027,84,1 +2020-04-27,Clinton,Illinois,17027,85,1 +2020-04-28,Clinton,Illinois,17027,90,1 +2020-04-29,Clinton,Illinois,17027,101,1 +2020-04-30,Clinton,Illinois,17027,106,3 +2020-05-01,Clinton,Illinois,17027,110,4 +2020-05-02,Clinton,Illinois,17027,110,5 +2020-05-03,Clinton,Illinois,17027,112,5 +2020-05-04,Clinton,Illinois,17027,114,5 +2020-05-05,Clinton,Illinois,17027,115,7 +2020-05-06,Clinton,Illinois,17027,116,7 +2020-05-07,Clinton,Illinois,17027,122,8 +2020-05-08,Clinton,Illinois,17027,125,8 +2020-05-09,Clinton,Illinois,17027,126,10 +2020-05-10,Clinton,Illinois,17027,126,10 +2020-05-11,Clinton,Illinois,17027,127,10 +2020-05-12,Clinton,Illinois,17027,128,12 +2020-05-13,Clinton,Illinois,17027,142,13 +2020-05-14,Clinton,Illinois,17027,155,13 +2020-05-15,Clinton,Illinois,17027,159,13 +2020-05-16,Clinton,Illinois,17027,162,14 +2020-05-17,Clinton,Illinois,17027,161,14 +2020-05-18,Clinton,Illinois,17027,161,14 +2020-05-19,Clinton,Illinois,17027,165,14 +2020-05-20,Clinton,Illinois,17027,167,16 +2020-05-21,Clinton,Illinois,17027,169,16 +2020-05-22,Clinton,Illinois,17027,173,16 +2020-05-23,Clinton,Illinois,17027,176,16 +2020-05-24,Clinton,Illinois,17027,176,16 +2020-05-25,Clinton,Illinois,17027,177,16 +2020-05-26,Clinton,Illinois,17027,178,16 +2020-05-27,Clinton,Illinois,17027,178,17 +2020-05-28,Clinton,Illinois,17027,180,17 +2020-05-29,Clinton,Illinois,17027,181,17 +2020-05-30,Clinton,Illinois,17027,186,17 +2020-05-31,Clinton,Illinois,17027,186,17 +2020-06-01,Clinton,Illinois,17027,186,17 +2020-06-02,Clinton,Illinois,17027,188,17 +2020-06-03,Clinton,Illinois,17027,188,17 +2020-06-04,Clinton,Illinois,17027,189,17 +2020-06-05,Clinton,Illinois,17027,190,17 +2020-06-06,Clinton,Illinois,17027,193,17 +2020-06-07,Clinton,Illinois,17027,193,17 +2020-06-08,Clinton,Illinois,17027,193,17 +2020-06-09,Clinton,Illinois,17027,196,17 +2020-06-10,Clinton,Illinois,17027,197,17 +2020-06-11,Clinton,Illinois,17027,198,17 +2020-06-12,Clinton,Illinois,17027,203,17 +2020-06-13,Clinton,Illinois,17027,207,17 +2020-06-14,Clinton,Illinois,17027,209,17 +2020-06-15,Clinton,Illinois,17027,213,17 +2020-06-16,Clinton,Illinois,17027,214,17 +2020-06-17,Clinton,Illinois,17027,216,17 +2020-06-18,Clinton,Illinois,17027,220,17 +2020-06-19,Clinton,Illinois,17027,220,17 +2020-06-20,Clinton,Illinois,17027,223,17 +2020-06-21,Clinton,Illinois,17027,224,17 +2020-06-22,Clinton,Illinois,17027,224,17 +2020-06-23,Clinton,Illinois,17027,225,17 +2020-06-24,Clinton,Illinois,17027,224,17 +2020-06-25,Clinton,Illinois,17027,226,17 +2020-06-26,Clinton,Illinois,17027,229,17 +2020-06-27,Clinton,Illinois,17027,231,17 +2020-06-28,Clinton,Illinois,17027,233,17 +2020-06-29,Clinton,Illinois,17027,236,17 +2020-06-30,Clinton,Illinois,17027,236,17 +2020-07-01,Clinton,Illinois,17027,237,17 +2020-07-02,Clinton,Illinois,17027,239,17 +2020-07-03,Clinton,Illinois,17027,240,17 +2020-07-04,Clinton,Illinois,17027,241,17 +2020-07-05,Clinton,Illinois,17027,242,17 +2020-07-06,Clinton,Illinois,17027,242,17 +2020-07-07,Clinton,Illinois,17027,243,17 +2020-07-08,Clinton,Illinois,17027,244,17 +2020-07-09,Clinton,Illinois,17027,244,17 +2020-04-07,Coles,Illinois,17029,1,0 +2020-04-08,Coles,Illinois,17029,2,0 +2020-04-09,Coles,Illinois,17029,2,0 +2020-04-10,Coles,Illinois,17029,2,0 +2020-04-11,Coles,Illinois,17029,5,0 +2020-04-12,Coles,Illinois,17029,6,0 +2020-04-13,Coles,Illinois,17029,6,0 +2020-04-14,Coles,Illinois,17029,8,0 +2020-04-15,Coles,Illinois,17029,9,0 +2020-04-16,Coles,Illinois,17029,9,0 +2020-04-17,Coles,Illinois,17029,9,0 +2020-04-18,Coles,Illinois,17029,14,0 +2020-04-19,Coles,Illinois,17029,16,0 +2020-04-20,Coles,Illinois,17029,16,0 +2020-04-21,Coles,Illinois,17029,17,0 +2020-04-22,Coles,Illinois,17029,18,0 +2020-04-23,Coles,Illinois,17029,18,0 +2020-04-24,Coles,Illinois,17029,22,0 +2020-04-25,Coles,Illinois,17029,22,1 +2020-04-26,Coles,Illinois,17029,22,1 +2020-04-27,Coles,Illinois,17029,22,1 +2020-04-28,Coles,Illinois,17029,22,1 +2020-04-29,Coles,Illinois,17029,22,1 +2020-04-30,Coles,Illinois,17029,22,1 +2020-05-01,Coles,Illinois,17029,22,1 +2020-05-02,Coles,Illinois,17029,22,1 +2020-05-03,Coles,Illinois,17029,22,1 +2020-05-04,Coles,Illinois,17029,22,1 +2020-05-05,Coles,Illinois,17029,22,1 +2020-05-06,Coles,Illinois,17029,22,1 +2020-05-07,Coles,Illinois,17029,22,1 +2020-05-08,Coles,Illinois,17029,22,1 +2020-05-09,Coles,Illinois,17029,23,1 +2020-05-10,Coles,Illinois,17029,24,1 +2020-05-11,Coles,Illinois,17029,41,2 +2020-05-12,Coles,Illinois,17029,58,2 +2020-05-13,Coles,Illinois,17029,62,2 +2020-05-14,Coles,Illinois,17029,62,4 +2020-05-15,Coles,Illinois,17029,67,4 +2020-05-16,Coles,Illinois,17029,73,4 +2020-05-17,Coles,Illinois,17029,81,4 +2020-05-18,Coles,Illinois,17029,85,5 +2020-05-19,Coles,Illinois,17029,85,7 +2020-05-20,Coles,Illinois,17029,88,7 +2020-05-21,Coles,Illinois,17029,94,7 +2020-05-22,Coles,Illinois,17029,95,7 +2020-05-23,Coles,Illinois,17029,98,7 +2020-05-24,Coles,Illinois,17029,115,9 +2020-05-25,Coles,Illinois,17029,116,9 +2020-05-26,Coles,Illinois,17029,115,9 +2020-05-27,Coles,Illinois,17029,119,12 +2020-05-28,Coles,Illinois,17029,123,13 +2020-05-29,Coles,Illinois,17029,125,14 +2020-05-30,Coles,Illinois,17029,126,15 +2020-05-31,Coles,Illinois,17029,127,15 +2020-06-01,Coles,Illinois,17029,127,15 +2020-06-02,Coles,Illinois,17029,127,15 +2020-06-03,Coles,Illinois,17029,128,16 +2020-06-04,Coles,Illinois,17029,129,17 +2020-06-05,Coles,Illinois,17029,138,17 +2020-06-06,Coles,Illinois,17029,138,17 +2020-06-07,Coles,Illinois,17029,139,17 +2020-06-08,Coles,Illinois,17029,139,17 +2020-06-09,Coles,Illinois,17029,140,17 +2020-06-10,Coles,Illinois,17029,142,17 +2020-06-11,Coles,Illinois,17029,142,17 +2020-06-12,Coles,Illinois,17029,142,17 +2020-06-13,Coles,Illinois,17029,142,17 +2020-06-14,Coles,Illinois,17029,142,17 +2020-06-15,Coles,Illinois,17029,143,17 +2020-06-16,Coles,Illinois,17029,143,17 +2020-06-17,Coles,Illinois,17029,145,17 +2020-06-18,Coles,Illinois,17029,146,17 +2020-06-19,Coles,Illinois,17029,146,17 +2020-06-20,Coles,Illinois,17029,146,17 +2020-06-21,Coles,Illinois,17029,151,17 +2020-06-22,Coles,Illinois,17029,151,17 +2020-06-23,Coles,Illinois,17029,151,17 +2020-06-24,Coles,Illinois,17029,154,17 +2020-06-25,Coles,Illinois,17029,155,17 +2020-06-26,Coles,Illinois,17029,155,17 +2020-06-27,Coles,Illinois,17029,158,17 +2020-06-28,Coles,Illinois,17029,161,17 +2020-06-29,Coles,Illinois,17029,161,17 +2020-06-30,Coles,Illinois,17029,164,17 +2020-07-01,Coles,Illinois,17029,170,17 +2020-07-02,Coles,Illinois,17029,170,17 +2020-07-03,Coles,Illinois,17029,173,17 +2020-07-04,Coles,Illinois,17029,172,17 +2020-07-05,Coles,Illinois,17029,172,17 +2020-07-06,Coles,Illinois,17029,178,17 +2020-07-07,Coles,Illinois,17029,179,17 +2020-07-08,Coles,Illinois,17029,184,17 +2020-07-09,Coles,Illinois,17029,188,17 +2020-01-24,Cook,Illinois,17031,1,0 +2020-01-25,Cook,Illinois,17031,1,0 +2020-01-26,Cook,Illinois,17031,1,0 +2020-01-27,Cook,Illinois,17031,1,0 +2020-01-28,Cook,Illinois,17031,1,0 +2020-01-29,Cook,Illinois,17031,1,0 +2020-01-30,Cook,Illinois,17031,2,0 +2020-01-31,Cook,Illinois,17031,2,0 +2020-02-01,Cook,Illinois,17031,2,0 +2020-02-02,Cook,Illinois,17031,2,0 +2020-02-03,Cook,Illinois,17031,2,0 +2020-02-04,Cook,Illinois,17031,2,0 +2020-02-05,Cook,Illinois,17031,2,0 +2020-02-06,Cook,Illinois,17031,2,0 +2020-02-07,Cook,Illinois,17031,2,0 +2020-02-08,Cook,Illinois,17031,2,0 +2020-02-09,Cook,Illinois,17031,2,0 +2020-02-10,Cook,Illinois,17031,2,0 +2020-02-11,Cook,Illinois,17031,2,0 +2020-02-12,Cook,Illinois,17031,2,0 +2020-02-13,Cook,Illinois,17031,2,0 +2020-02-14,Cook,Illinois,17031,2,0 +2020-02-15,Cook,Illinois,17031,2,0 +2020-02-16,Cook,Illinois,17031,2,0 +2020-02-17,Cook,Illinois,17031,2,0 +2020-02-18,Cook,Illinois,17031,2,0 +2020-02-19,Cook,Illinois,17031,2,0 +2020-02-20,Cook,Illinois,17031,2,0 +2020-02-21,Cook,Illinois,17031,2,0 +2020-02-22,Cook,Illinois,17031,2,0 +2020-02-23,Cook,Illinois,17031,2,0 +2020-02-24,Cook,Illinois,17031,2,0 +2020-02-25,Cook,Illinois,17031,2,0 +2020-02-26,Cook,Illinois,17031,2,0 +2020-02-27,Cook,Illinois,17031,2,0 +2020-02-28,Cook,Illinois,17031,2,0 +2020-02-29,Cook,Illinois,17031,3,0 +2020-03-01,Cook,Illinois,17031,3,0 +2020-03-02,Cook,Illinois,17031,4,0 +2020-03-03,Cook,Illinois,17031,4,0 +2020-03-04,Cook,Illinois,17031,4,0 +2020-03-05,Cook,Illinois,17031,5,0 +2020-03-06,Cook,Illinois,17031,6,0 +2020-03-07,Cook,Illinois,17031,6,0 +2020-03-08,Cook,Illinois,17031,7,0 +2020-03-09,Cook,Illinois,17031,11,0 +2020-03-10,Cook,Illinois,17031,17,0 +2020-03-11,Cook,Illinois,17031,22,0 +2020-03-12,Cook,Illinois,17031,27,0 +2020-03-13,Cook,Illinois,17031,40,0 +2020-03-14,Cook,Illinois,17031,51,0 +2020-03-15,Cook,Illinois,17031,76,0 +2020-03-16,Cook,Illinois,17031,76,0 +2020-03-17,Cook,Illinois,17031,107,1 +2020-03-18,Cook,Illinois,17031,179,1 +2020-03-19,Cook,Illinois,17031,279,2 +2020-03-20,Cook,Illinois,17031,412,3 +2020-03-21,Cook,Illinois,17031,548,4 +2020-03-22,Cook,Illinois,17031,805,6 +2020-03-23,Cook,Illinois,17031,922,9 +2020-03-24,Cook,Illinois,17031,1194,12 +2020-03-25,Cook,Illinois,17031,1418,13 +2020-03-26,Cook,Illinois,17031,1904,18 +2020-03-27,Cook,Illinois,17031,2239,20 +2020-03-28,Cook,Illinois,17031,2613,28 +2020-03-29,Cook,Illinois,17031,3445,40 +2020-03-30,Cook,Illinois,17031,3727,44 +2020-03-31,Cook,Illinois,17031,4496,61 +2020-04-01,Cook,Illinois,17031,5152,95 +2020-04-02,Cook,Illinois,17031,5575,107 +2020-04-03,Cook,Illinois,17031,6473,141 +2020-04-04,Cook,Illinois,17031,7439,167 +2020-04-05,Cook,Illinois,17031,8043,186 +2020-04-06,Cook,Illinois,17031,8728,209 +2020-04-07,Cook,Illinois,17031,9509,249 +2020-04-08,Cook,Illinois,17031,10520,312 +2020-04-09,Cook,Illinois,17031,11415,351 +2020-04-10,Cook,Illinois,17031,12472,398 +2020-04-11,Cook,Illinois,17031,13417,453 +2020-04-12,Cook,Illinois,17031,14585,485 +2020-04-13,Cook,Illinois,17031,15474,543 +2020-04-14,Cook,Illinois,17031,16323,577 +2020-04-15,Cook,Illinois,17031,17306,630 +2020-04-16,Cook,Illinois,17031,18087,722 +2020-04-17,Cook,Illinois,17031,19391,760 +2020-04-18,Cook,Illinois,17031,20395,860 +2020-04-19,Cook,Illinois,17031,21272,877 +2020-04-20,Cook,Illinois,17031,22101,915 +2020-04-21,Cook,Illinois,17031,23181,1002 +2020-04-22,Cook,Illinois,17031,24546,1072 +2020-04-23,Cook,Illinois,17031,25811,1142 +2020-04-24,Cook,Illinois,17031,27616,1220 +2020-04-25,Cook,Illinois,17031,29058,1267 +2020-04-26,Cook,Illinois,17031,30574,1313 +2020-04-27,Cook,Illinois,17031,31953,1347 +2020-04-28,Cook,Illinois,17031,33449,1457 +2020-04-29,Cook,Illinois,17031,34880,1516 +2020-04-30,Cook,Illinois,17031,36513,1607 +2020-05-01,Cook,Illinois,17031,38668,1673 +2020-05-02,Cook,Illinois,17031,40227,1743 +2020-05-03,Cook,Illinois,17031,42324,1786 +2020-05-04,Cook,Illinois,17031,43715,1802 +2020-05-05,Cook,Illinois,17031,45223,1922 +2020-05-06,Cook,Illinois,17031,46689,2004 +2020-05-07,Cook,Illinois,17031,48341,2110 +2020-05-08,Cook,Illinois,17031,50236,2197 +2020-05-09,Cook,Illinois,17031,51674,2264 +2020-05-10,Cook,Illinois,17031,52655,2317 +2020-05-11,Cook,Illinois,17031,53381,2361 +2020-05-12,Cook,Illinois,17031,55470,2449 +2020-05-13,Cook,Illinois,17031,56406,2589 +2020-05-14,Cook,Illinois,17031,58457,2675 +2020-05-15,Cook,Illinois,17031,59905,2762 +2020-05-16,Cook,Illinois,17031,61212,2814 +2020-05-17,Cook,Illinois,17031,62218,2839 +2020-05-18,Cook,Illinois,17031,63690,2889 +2020-05-19,Cook,Illinois,17031,64691,2980 +2020-05-20,Cook,Illinois,17031,66213,3074 +2020-05-21,Cook,Illinois,17031,67551,3114 +2020-05-22,Cook,Illinois,17031,68949,3187 +2020-05-23,Cook,Illinois,17031,70417,3246 +2020-05-24,Cook,Illinois,17031,72010,3304 +2020-05-25,Cook,Illinois,17031,73097,3324 +2020-05-26,Cook,Illinois,17031,73819,3354 +2020-05-27,Cook,Illinois,17031,74521,3455 +2020-05-28,Cook,Illinois,17031,75306,3519 +2020-05-29,Cook,Illinois,17031,76266,3570 +2020-05-30,Cook,Illinois,17031,77119,3603 +2020-05-31,Cook,Illinois,17031,77925,3642 +2020-06-01,Cook,Illinois,17031,78495,3658 +2020-06-02,Cook,Illinois,17031,79673,3726 +2020-06-03,Cook,Illinois,17031,80204,3780 +2020-06-04,Cook,Illinois,17031,80713,3846 +2020-06-05,Cook,Illinois,17031,81344,3880 +2020-06-06,Cook,Illinois,17031,81924,3913 +2020-06-07,Cook,Illinois,17031,82427,3944 +2020-06-08,Cook,Illinois,17031,82819,3959 +2020-06-09,Cook,Illinois,17031,83271,4010 +2020-06-10,Cook,Illinois,17031,83585,4053 +2020-06-11,Cook,Illinois,17031,83978,4111 +2020-06-12,Cook,Illinois,17031,84249,4162 +2020-06-13,Cook,Illinois,17031,84581,4173 +2020-06-14,Cook,Illinois,17031,84906,4189 +2020-06-15,Cook,Illinois,17031,85184,4206 +2020-06-16,Cook,Illinois,17031,85538,4253 +2020-06-17,Cook,Illinois,17031,85858,4304 +2020-06-18,Cook,Illinois,17031,86179,4333 +2020-06-19,Cook,Illinois,17031,86551,4363 +2020-06-20,Cook,Illinois,17031,86885,4390 +2020-06-21,Cook,Illinois,17031,87177,4404 +2020-06-22,Cook,Illinois,17031,87424,4423 +2020-06-23,Cook,Illinois,17031,87784,4439 +2020-06-24,Cook,Illinois,17031,88138,4478 +2020-06-25,Cook,Illinois,17031,88650,4500 +2020-06-26,Cook,Illinois,17031,89068,4526 +2020-06-27,Cook,Illinois,17031,89407,4536 +2020-06-28,Cook,Illinois,17031,89755,4542 +2020-06-29,Cook,Illinois,17031,90122,4554 +2020-06-30,Cook,Illinois,17031,90536,4565 +2020-07-01,Cook,Illinois,17031,90911,4581 +2020-07-02,Cook,Illinois,17031,91381,4609 +2020-07-03,Cook,Illinois,17031,91774,4618 +2020-07-04,Cook,Illinois,17031,92240,4622 +2020-07-05,Cook,Illinois,17031,92532,4627 +2020-07-06,Cook,Illinois,17031,92781,4630 +2020-07-07,Cook,Illinois,17031,93053,4651 +2020-07-08,Cook,Illinois,17031,93496,4664 +2020-07-09,Cook,Illinois,17031,94005,4676 +2020-03-30,Crawford,Illinois,17033,1,0 +2020-03-31,Crawford,Illinois,17033,1,0 +2020-04-01,Crawford,Illinois,17033,1,0 +2020-04-02,Crawford,Illinois,17033,1,0 +2020-04-03,Crawford,Illinois,17033,1,0 +2020-04-04,Crawford,Illinois,17033,2,0 +2020-04-05,Crawford,Illinois,17033,3,0 +2020-04-06,Crawford,Illinois,17033,5,0 +2020-04-07,Crawford,Illinois,17033,4,0 +2020-04-08,Crawford,Illinois,17033,4,0 +2020-04-09,Crawford,Illinois,17033,4,0 +2020-04-10,Crawford,Illinois,17033,4,0 +2020-04-11,Crawford,Illinois,17033,4,0 +2020-04-12,Crawford,Illinois,17033,4,0 +2020-04-13,Crawford,Illinois,17033,4,0 +2020-04-14,Crawford,Illinois,17033,4,0 +2020-04-15,Crawford,Illinois,17033,4,0 +2020-04-16,Crawford,Illinois,17033,4,0 +2020-04-17,Crawford,Illinois,17033,4,0 +2020-04-18,Crawford,Illinois,17033,5,0 +2020-04-19,Crawford,Illinois,17033,4,0 +2020-04-20,Crawford,Illinois,17033,4,0 +2020-04-21,Crawford,Illinois,17033,7,0 +2020-04-22,Crawford,Illinois,17033,8,0 +2020-04-23,Crawford,Illinois,17033,10,0 +2020-04-24,Crawford,Illinois,17033,10,0 +2020-04-25,Crawford,Illinois,17033,10,0 +2020-04-26,Crawford,Illinois,17033,10,0 +2020-04-27,Crawford,Illinois,17033,10,0 +2020-04-28,Crawford,Illinois,17033,10,0 +2020-04-29,Crawford,Illinois,17033,10,0 +2020-04-30,Crawford,Illinois,17033,10,0 +2020-05-01,Crawford,Illinois,17033,10,0 +2020-05-02,Crawford,Illinois,17033,10,0 +2020-05-03,Crawford,Illinois,17033,10,0 +2020-05-04,Crawford,Illinois,17033,8,0 +2020-05-05,Crawford,Illinois,17033,8,0 +2020-05-06,Crawford,Illinois,17033,10,0 +2020-05-07,Crawford,Illinois,17033,10,0 +2020-05-08,Crawford,Illinois,17033,10,0 +2020-05-09,Crawford,Illinois,17033,10,0 +2020-05-10,Crawford,Illinois,17033,10,0 +2020-05-11,Crawford,Illinois,17033,10,0 +2020-05-12,Crawford,Illinois,17033,11,0 +2020-05-13,Crawford,Illinois,17033,11,0 +2020-05-14,Crawford,Illinois,17033,11,0 +2020-05-15,Crawford,Illinois,17033,11,0 +2020-05-16,Crawford,Illinois,17033,11,0 +2020-05-17,Crawford,Illinois,17033,11,0 +2020-05-18,Crawford,Illinois,17033,11,0 +2020-05-19,Crawford,Illinois,17033,11,0 +2020-05-20,Crawford,Illinois,17033,11,0 +2020-05-21,Crawford,Illinois,17033,11,0 +2020-05-22,Crawford,Illinois,17033,11,0 +2020-05-23,Crawford,Illinois,17033,11,0 +2020-05-24,Crawford,Illinois,17033,11,0 +2020-05-25,Crawford,Illinois,17033,11,0 +2020-05-26,Crawford,Illinois,17033,11,0 +2020-05-27,Crawford,Illinois,17033,11,0 +2020-05-28,Crawford,Illinois,17033,11,0 +2020-05-29,Crawford,Illinois,17033,11,0 +2020-05-30,Crawford,Illinois,17033,11,0 +2020-05-31,Crawford,Illinois,17033,11,0 +2020-06-01,Crawford,Illinois,17033,11,0 +2020-06-02,Crawford,Illinois,17033,12,0 +2020-06-03,Crawford,Illinois,17033,12,0 +2020-06-04,Crawford,Illinois,17033,11,0 +2020-06-05,Crawford,Illinois,17033,11,0 +2020-06-06,Crawford,Illinois,17033,11,0 +2020-06-07,Crawford,Illinois,17033,11,0 +2020-06-08,Crawford,Illinois,17033,11,0 +2020-06-09,Crawford,Illinois,17033,11,0 +2020-06-10,Crawford,Illinois,17033,11,0 +2020-06-11,Crawford,Illinois,17033,11,0 +2020-06-12,Crawford,Illinois,17033,13,0 +2020-06-13,Crawford,Illinois,17033,17,0 +2020-06-14,Crawford,Illinois,17033,17,0 +2020-06-15,Crawford,Illinois,17033,17,0 +2020-06-16,Crawford,Illinois,17033,17,0 +2020-06-17,Crawford,Illinois,17033,17,0 +2020-06-18,Crawford,Illinois,17033,17,0 +2020-06-19,Crawford,Illinois,17033,17,0 +2020-06-20,Crawford,Illinois,17033,17,0 +2020-06-21,Crawford,Illinois,17033,18,0 +2020-06-22,Crawford,Illinois,17033,18,0 +2020-06-23,Crawford,Illinois,17033,18,0 +2020-06-24,Crawford,Illinois,17033,18,0 +2020-06-25,Crawford,Illinois,17033,18,0 +2020-06-26,Crawford,Illinois,17033,18,0 +2020-06-27,Crawford,Illinois,17033,18,0 +2020-06-28,Crawford,Illinois,17033,18,0 +2020-06-29,Crawford,Illinois,17033,18,0 +2020-06-30,Crawford,Illinois,17033,18,0 +2020-07-01,Crawford,Illinois,17033,18,0 +2020-07-02,Crawford,Illinois,17033,18,0 +2020-07-03,Crawford,Illinois,17033,18,0 +2020-07-04,Crawford,Illinois,17033,18,0 +2020-07-05,Crawford,Illinois,17033,18,0 +2020-07-06,Crawford,Illinois,17033,18,0 +2020-07-07,Crawford,Illinois,17033,18,0 +2020-07-08,Crawford,Illinois,17033,18,0 +2020-07-09,Crawford,Illinois,17033,18,0 +2020-03-14,Cumberland,Illinois,17035,1,0 +2020-03-15,Cumberland,Illinois,17035,1,0 +2020-03-16,Cumberland,Illinois,17035,1,0 +2020-03-17,Cumberland,Illinois,17035,1,0 +2020-03-18,Cumberland,Illinois,17035,1,0 +2020-03-19,Cumberland,Illinois,17035,1,0 +2020-03-20,Cumberland,Illinois,17035,1,0 +2020-03-21,Cumberland,Illinois,17035,1,0 +2020-03-22,Cumberland,Illinois,17035,1,0 +2020-03-23,Cumberland,Illinois,17035,1,0 +2020-03-24,Cumberland,Illinois,17035,1,0 +2020-03-25,Cumberland,Illinois,17035,1,0 +2020-03-26,Cumberland,Illinois,17035,1,0 +2020-03-27,Cumberland,Illinois,17035,1,0 +2020-03-28,Cumberland,Illinois,17035,1,0 +2020-03-29,Cumberland,Illinois,17035,1,0 +2020-03-30,Cumberland,Illinois,17035,1,0 +2020-03-31,Cumberland,Illinois,17035,1,0 +2020-04-01,Cumberland,Illinois,17035,1,0 +2020-04-02,Cumberland,Illinois,17035,1,0 +2020-04-03,Cumberland,Illinois,17035,1,0 +2020-04-04,Cumberland,Illinois,17035,1,0 +2020-04-05,Cumberland,Illinois,17035,1,0 +2020-04-06,Cumberland,Illinois,17035,1,0 +2020-04-07,Cumberland,Illinois,17035,1,0 +2020-04-08,Cumberland,Illinois,17035,1,0 +2020-04-09,Cumberland,Illinois,17035,2,0 +2020-04-10,Cumberland,Illinois,17035,2,0 +2020-04-11,Cumberland,Illinois,17035,2,0 +2020-04-12,Cumberland,Illinois,17035,2,0 +2020-04-13,Cumberland,Illinois,17035,2,0 +2020-04-14,Cumberland,Illinois,17035,2,0 +2020-04-15,Cumberland,Illinois,17035,2,0 +2020-04-16,Cumberland,Illinois,17035,2,0 +2020-04-17,Cumberland,Illinois,17035,2,0 +2020-04-18,Cumberland,Illinois,17035,2,0 +2020-04-19,Cumberland,Illinois,17035,2,0 +2020-04-20,Cumberland,Illinois,17035,2,0 +2020-04-21,Cumberland,Illinois,17035,2,0 +2020-04-22,Cumberland,Illinois,17035,2,0 +2020-04-23,Cumberland,Illinois,17035,2,0 +2020-04-24,Cumberland,Illinois,17035,2,0 +2020-04-25,Cumberland,Illinois,17035,3,0 +2020-04-26,Cumberland,Illinois,17035,3,0 +2020-04-27,Cumberland,Illinois,17035,3,0 +2020-04-28,Cumberland,Illinois,17035,3,0 +2020-04-29,Cumberland,Illinois,17035,3,0 +2020-04-30,Cumberland,Illinois,17035,3,0 +2020-05-01,Cumberland,Illinois,17035,3,0 +2020-05-02,Cumberland,Illinois,17035,3,0 +2020-05-03,Cumberland,Illinois,17035,3,0 +2020-05-04,Cumberland,Illinois,17035,4,0 +2020-05-05,Cumberland,Illinois,17035,4,0 +2020-05-06,Cumberland,Illinois,17035,4,0 +2020-05-07,Cumberland,Illinois,17035,4,0 +2020-05-08,Cumberland,Illinois,17035,4,0 +2020-05-09,Cumberland,Illinois,17035,4,0 +2020-05-10,Cumberland,Illinois,17035,4,0 +2020-05-11,Cumberland,Illinois,17035,4,0 +2020-05-12,Cumberland,Illinois,17035,6,0 +2020-05-13,Cumberland,Illinois,17035,7,0 +2020-05-14,Cumberland,Illinois,17035,8,0 +2020-05-15,Cumberland,Illinois,17035,8,0 +2020-05-16,Cumberland,Illinois,17035,8,0 +2020-05-17,Cumberland,Illinois,17035,8,0 +2020-05-18,Cumberland,Illinois,17035,9,0 +2020-05-19,Cumberland,Illinois,17035,9,0 +2020-05-20,Cumberland,Illinois,17035,10,0 +2020-05-21,Cumberland,Illinois,17035,10,0 +2020-05-22,Cumberland,Illinois,17035,10,0 +2020-05-23,Cumberland,Illinois,17035,10,0 +2020-05-24,Cumberland,Illinois,17035,10,0 +2020-05-25,Cumberland,Illinois,17035,10,0 +2020-05-26,Cumberland,Illinois,17035,10,0 +2020-05-27,Cumberland,Illinois,17035,10,0 +2020-05-28,Cumberland,Illinois,17035,10,0 +2020-05-29,Cumberland,Illinois,17035,10,0 +2020-05-30,Cumberland,Illinois,17035,10,0 +2020-05-31,Cumberland,Illinois,17035,10,0 +2020-06-01,Cumberland,Illinois,17035,10,0 +2020-06-02,Cumberland,Illinois,17035,10,0 +2020-06-03,Cumberland,Illinois,17035,10,0 +2020-06-04,Cumberland,Illinois,17035,10,0 +2020-06-05,Cumberland,Illinois,17035,10,0 +2020-06-06,Cumberland,Illinois,17035,10,0 +2020-06-07,Cumberland,Illinois,17035,10,0 +2020-06-08,Cumberland,Illinois,17035,10,0 +2020-06-09,Cumberland,Illinois,17035,10,0 +2020-06-10,Cumberland,Illinois,17035,10,0 +2020-06-11,Cumberland,Illinois,17035,10,0 +2020-06-12,Cumberland,Illinois,17035,10,0 +2020-06-13,Cumberland,Illinois,17035,10,0 +2020-06-14,Cumberland,Illinois,17035,10,0 +2020-06-15,Cumberland,Illinois,17035,10,0 +2020-06-16,Cumberland,Illinois,17035,10,0 +2020-06-17,Cumberland,Illinois,17035,10,0 +2020-06-18,Cumberland,Illinois,17035,10,0 +2020-06-19,Cumberland,Illinois,17035,10,0 +2020-06-20,Cumberland,Illinois,17035,10,0 +2020-06-21,Cumberland,Illinois,17035,10,0 +2020-06-22,Cumberland,Illinois,17035,10,0 +2020-06-23,Cumberland,Illinois,17035,10,0 +2020-06-24,Cumberland,Illinois,17035,10,0 +2020-06-25,Cumberland,Illinois,17035,10,0 +2020-06-26,Cumberland,Illinois,17035,10,0 +2020-06-27,Cumberland,Illinois,17035,11,0 +2020-06-28,Cumberland,Illinois,17035,11,0 +2020-06-29,Cumberland,Illinois,17035,11,0 +2020-06-30,Cumberland,Illinois,17035,11,0 +2020-07-01,Cumberland,Illinois,17035,12,0 +2020-07-02,Cumberland,Illinois,17035,12,0 +2020-07-03,Cumberland,Illinois,17035,12,0 +2020-07-04,Cumberland,Illinois,17035,16,0 +2020-07-05,Cumberland,Illinois,17035,16,0 +2020-07-06,Cumberland,Illinois,17035,17,0 +2020-07-07,Cumberland,Illinois,17035,17,0 +2020-07-08,Cumberland,Illinois,17035,24,0 +2020-07-09,Cumberland,Illinois,17035,24,0 +2020-03-21,DeKalb,Illinois,17037,1,0 +2020-03-22,DeKalb,Illinois,17037,1,0 +2020-03-23,DeKalb,Illinois,17037,1,0 +2020-03-24,DeKalb,Illinois,17037,1,0 +2020-03-25,DeKalb,Illinois,17037,1,0 +2020-03-26,DeKalb,Illinois,17037,3,0 +2020-03-27,DeKalb,Illinois,17037,4,0 +2020-03-28,DeKalb,Illinois,17037,4,0 +2020-03-29,DeKalb,Illinois,17037,8,0 +2020-03-30,DeKalb,Illinois,17037,8,0 +2020-03-31,DeKalb,Illinois,17037,9,0 +2020-04-01,DeKalb,Illinois,17037,14,0 +2020-04-02,DeKalb,Illinois,17037,16,0 +2020-04-03,DeKalb,Illinois,17037,16,0 +2020-04-04,DeKalb,Illinois,17037,19,0 +2020-04-05,DeKalb,Illinois,17037,22,0 +2020-04-06,DeKalb,Illinois,17037,22,1 +2020-04-07,DeKalb,Illinois,17037,26,1 +2020-04-08,DeKalb,Illinois,17037,32,1 +2020-04-09,DeKalb,Illinois,17037,32,1 +2020-04-10,DeKalb,Illinois,17037,32,1 +2020-04-11,DeKalb,Illinois,17037,33,1 +2020-04-12,DeKalb,Illinois,17037,34,1 +2020-04-13,DeKalb,Illinois,17037,34,1 +2020-04-14,DeKalb,Illinois,17037,35,1 +2020-04-15,DeKalb,Illinois,17037,37,1 +2020-04-16,DeKalb,Illinois,17037,39,1 +2020-04-17,DeKalb,Illinois,17037,46,1 +2020-04-18,DeKalb,Illinois,17037,54,1 +2020-04-19,DeKalb,Illinois,17037,55,1 +2020-04-20,DeKalb,Illinois,17037,55,1 +2020-04-21,DeKalb,Illinois,17037,56,1 +2020-04-22,DeKalb,Illinois,17037,56,1 +2020-04-23,DeKalb,Illinois,17037,56,1 +2020-04-24,DeKalb,Illinois,17037,68,1 +2020-04-25,DeKalb,Illinois,17037,71,1 +2020-04-26,DeKalb,Illinois,17037,71,1 +2020-04-27,DeKalb,Illinois,17037,76,1 +2020-04-28,DeKalb,Illinois,17037,82,1 +2020-04-29,DeKalb,Illinois,17037,90,1 +2020-04-30,DeKalb,Illinois,17037,95,1 +2020-05-01,DeKalb,Illinois,17037,105,1 +2020-05-02,DeKalb,Illinois,17037,114,1 +2020-05-03,DeKalb,Illinois,17037,125,1 +2020-05-04,DeKalb,Illinois,17037,130,1 +2020-05-05,DeKalb,Illinois,17037,132,1 +2020-05-06,DeKalb,Illinois,17037,141,1 +2020-05-07,DeKalb,Illinois,17037,149,1 +2020-05-08,DeKalb,Illinois,17037,160,1 +2020-05-09,DeKalb,Illinois,17037,170,2 +2020-05-10,DeKalb,Illinois,17037,177,2 +2020-05-11,DeKalb,Illinois,17037,183,2 +2020-05-12,DeKalb,Illinois,17037,203,2 +2020-05-13,DeKalb,Illinois,17037,211,2 +2020-05-14,DeKalb,Illinois,17037,217,2 +2020-05-15,DeKalb,Illinois,17037,229,2 +2020-05-16,DeKalb,Illinois,17037,239,2 +2020-05-17,DeKalb,Illinois,17037,251,2 +2020-05-18,DeKalb,Illinois,17037,262,2 +2020-05-19,DeKalb,Illinois,17037,268,4 +2020-05-20,DeKalb,Illinois,17037,276,3 +2020-05-21,DeKalb,Illinois,17037,287,3 +2020-05-22,DeKalb,Illinois,17037,307,3 +2020-05-23,DeKalb,Illinois,17037,318,3 +2020-05-24,DeKalb,Illinois,17037,327,3 +2020-05-25,DeKalb,Illinois,17037,335,3 +2020-05-26,DeKalb,Illinois,17037,342,3 +2020-05-27,DeKalb,Illinois,17037,352,3 +2020-05-28,DeKalb,Illinois,17037,388,4 +2020-05-29,DeKalb,Illinois,17037,402,4 +2020-05-30,DeKalb,Illinois,17037,416,4 +2020-05-31,DeKalb,Illinois,17037,428,4 +2020-06-01,DeKalb,Illinois,17037,431,4 +2020-06-02,DeKalb,Illinois,17037,438,5 +2020-06-03,DeKalb,Illinois,17037,454,6 +2020-06-04,DeKalb,Illinois,17037,458,8 +2020-06-05,DeKalb,Illinois,17037,465,8 +2020-06-06,DeKalb,Illinois,17037,465,9 +2020-06-07,DeKalb,Illinois,17037,465,9 +2020-06-08,DeKalb,Illinois,17037,473,9 +2020-06-09,DeKalb,Illinois,17037,482,12 +2020-06-10,DeKalb,Illinois,17037,488,13 +2020-06-11,DeKalb,Illinois,17037,491,13 +2020-06-12,DeKalb,Illinois,17037,494,15 +2020-06-13,DeKalb,Illinois,17037,494,15 +2020-06-14,DeKalb,Illinois,17037,494,15 +2020-06-15,DeKalb,Illinois,17037,509,15 +2020-06-16,DeKalb,Illinois,17037,512,15 +2020-06-17,DeKalb,Illinois,17037,520,16 +2020-06-18,DeKalb,Illinois,17037,530,18 +2020-06-19,DeKalb,Illinois,17037,536,18 +2020-06-20,DeKalb,Illinois,17037,536,18 +2020-06-21,DeKalb,Illinois,17037,536,18 +2020-06-22,DeKalb,Illinois,17037,547,18 +2020-06-23,DeKalb,Illinois,17037,550,18 +2020-06-24,DeKalb,Illinois,17037,554,18 +2020-06-25,DeKalb,Illinois,17037,557,18 +2020-06-26,DeKalb,Illinois,17037,558,18 +2020-06-27,DeKalb,Illinois,17037,558,18 +2020-06-28,DeKalb,Illinois,17037,558,18 +2020-06-29,DeKalb,Illinois,17037,565,18 +2020-06-30,DeKalb,Illinois,17037,574,18 +2020-07-01,DeKalb,Illinois,17037,586,18 +2020-07-02,DeKalb,Illinois,17037,593,19 +2020-07-03,DeKalb,Illinois,17037,593,19 +2020-07-04,DeKalb,Illinois,17037,593,19 +2020-07-05,DeKalb,Illinois,17037,593,19 +2020-07-06,DeKalb,Illinois,17037,611,20 +2020-07-07,DeKalb,Illinois,17037,616,20 +2020-07-08,DeKalb,Illinois,17037,621,20 +2020-07-09,DeKalb,Illinois,17037,630,20 +2020-04-03,De Witt,Illinois,17039,1,0 +2020-04-04,De Witt,Illinois,17039,1,0 +2020-04-05,De Witt,Illinois,17039,2,0 +2020-04-06,De Witt,Illinois,17039,3,0 +2020-04-07,De Witt,Illinois,17039,2,0 +2020-04-08,De Witt,Illinois,17039,2,0 +2020-04-09,De Witt,Illinois,17039,2,0 +2020-04-10,De Witt,Illinois,17039,2,0 +2020-04-11,De Witt,Illinois,17039,2,0 +2020-04-12,De Witt,Illinois,17039,2,0 +2020-04-13,De Witt,Illinois,17039,2,0 +2020-04-14,De Witt,Illinois,17039,2,0 +2020-04-15,De Witt,Illinois,17039,2,0 +2020-04-16,De Witt,Illinois,17039,2,0 +2020-04-17,De Witt,Illinois,17039,2,0 +2020-04-18,De Witt,Illinois,17039,2,0 +2020-04-19,De Witt,Illinois,17039,2,0 +2020-04-20,De Witt,Illinois,17039,2,0 +2020-04-21,De Witt,Illinois,17039,2,0 +2020-04-22,De Witt,Illinois,17039,2,0 +2020-04-23,De Witt,Illinois,17039,2,0 +2020-04-24,De Witt,Illinois,17039,1,0 +2020-04-25,De Witt,Illinois,17039,1,0 +2020-04-26,De Witt,Illinois,17039,1,0 +2020-04-27,De Witt,Illinois,17039,1,0 +2020-04-28,De Witt,Illinois,17039,2,0 +2020-04-29,De Witt,Illinois,17039,3,0 +2020-04-30,De Witt,Illinois,17039,3,0 +2020-05-01,De Witt,Illinois,17039,3,0 +2020-05-02,De Witt,Illinois,17039,3,0 +2020-05-03,De Witt,Illinois,17039,3,0 +2020-05-04,De Witt,Illinois,17039,3,0 +2020-05-05,De Witt,Illinois,17039,3,0 +2020-05-06,De Witt,Illinois,17039,3,0 +2020-05-07,De Witt,Illinois,17039,3,0 +2020-05-08,De Witt,Illinois,17039,3,0 +2020-05-09,De Witt,Illinois,17039,3,0 +2020-05-10,De Witt,Illinois,17039,3,0 +2020-05-11,De Witt,Illinois,17039,3,0 +2020-05-12,De Witt,Illinois,17039,3,0 +2020-05-13,De Witt,Illinois,17039,3,0 +2020-05-14,De Witt,Illinois,17039,4,0 +2020-05-15,De Witt,Illinois,17039,4,0 +2020-05-16,De Witt,Illinois,17039,4,0 +2020-05-17,De Witt,Illinois,17039,4,0 +2020-05-18,De Witt,Illinois,17039,4,0 +2020-05-19,De Witt,Illinois,17039,4,0 +2020-05-20,De Witt,Illinois,17039,4,0 +2020-05-21,De Witt,Illinois,17039,4,0 +2020-05-22,De Witt,Illinois,17039,4,0 +2020-05-23,De Witt,Illinois,17039,4,0 +2020-05-24,De Witt,Illinois,17039,4,0 +2020-05-25,De Witt,Illinois,17039,4,0 +2020-05-26,De Witt,Illinois,17039,4,0 +2020-05-27,De Witt,Illinois,17039,4,0 +2020-05-28,De Witt,Illinois,17039,4,0 +2020-05-29,De Witt,Illinois,17039,4,0 +2020-05-30,De Witt,Illinois,17039,4,0 +2020-05-31,De Witt,Illinois,17039,4,0 +2020-06-01,De Witt,Illinois,17039,4,0 +2020-06-02,De Witt,Illinois,17039,4,0 +2020-06-03,De Witt,Illinois,17039,4,0 +2020-06-04,De Witt,Illinois,17039,4,0 +2020-06-05,De Witt,Illinois,17039,4,0 +2020-06-06,De Witt,Illinois,17039,4,0 +2020-06-07,De Witt,Illinois,17039,4,0 +2020-06-08,De Witt,Illinois,17039,4,0 +2020-06-09,De Witt,Illinois,17039,4,0 +2020-06-10,De Witt,Illinois,17039,4,0 +2020-06-11,De Witt,Illinois,17039,4,0 +2020-06-12,De Witt,Illinois,17039,4,0 +2020-06-13,De Witt,Illinois,17039,4,0 +2020-06-14,De Witt,Illinois,17039,4,0 +2020-06-15,De Witt,Illinois,17039,4,0 +2020-06-16,De Witt,Illinois,17039,4,0 +2020-06-17,De Witt,Illinois,17039,4,0 +2020-06-18,De Witt,Illinois,17039,4,0 +2020-06-19,De Witt,Illinois,17039,4,0 +2020-06-20,De Witt,Illinois,17039,4,0 +2020-06-21,De Witt,Illinois,17039,4,0 +2020-06-22,De Witt,Illinois,17039,4,0 +2020-06-23,De Witt,Illinois,17039,4,0 +2020-06-24,De Witt,Illinois,17039,4,0 +2020-06-25,De Witt,Illinois,17039,4,0 +2020-06-26,De Witt,Illinois,17039,4,0 +2020-06-27,De Witt,Illinois,17039,4,0 +2020-06-28,De Witt,Illinois,17039,4,0 +2020-06-29,De Witt,Illinois,17039,4,0 +2020-06-30,De Witt,Illinois,17039,6,0 +2020-07-01,De Witt,Illinois,17039,6,0 +2020-07-02,De Witt,Illinois,17039,6,0 +2020-07-03,De Witt,Illinois,17039,9,0 +2020-07-04,De Witt,Illinois,17039,11,0 +2020-07-05,De Witt,Illinois,17039,12,0 +2020-07-06,De Witt,Illinois,17039,12,0 +2020-07-07,De Witt,Illinois,17039,12,0 +2020-07-08,De Witt,Illinois,17039,16,0 +2020-07-09,De Witt,Illinois,17039,16,0 +2020-03-25,Douglas,Illinois,17041,1,0 +2020-03-26,Douglas,Illinois,17041,1,0 +2020-03-27,Douglas,Illinois,17041,1,0 +2020-03-28,Douglas,Illinois,17041,1,0 +2020-03-29,Douglas,Illinois,17041,1,0 +2020-03-30,Douglas,Illinois,17041,1,0 +2020-03-31,Douglas,Illinois,17041,3,0 +2020-04-01,Douglas,Illinois,17041,8,0 +2020-04-02,Douglas,Illinois,17041,8,0 +2020-04-03,Douglas,Illinois,17041,9,0 +2020-04-04,Douglas,Illinois,17041,9,0 +2020-04-05,Douglas,Illinois,17041,9,0 +2020-04-06,Douglas,Illinois,17041,10,0 +2020-04-07,Douglas,Illinois,17041,10,0 +2020-04-08,Douglas,Illinois,17041,10,0 +2020-04-09,Douglas,Illinois,17041,11,0 +2020-04-10,Douglas,Illinois,17041,11,0 +2020-04-11,Douglas,Illinois,17041,11,0 +2020-04-12,Douglas,Illinois,17041,11,0 +2020-04-13,Douglas,Illinois,17041,11,0 +2020-04-14,Douglas,Illinois,17041,11,0 +2020-04-15,Douglas,Illinois,17041,11,0 +2020-04-16,Douglas,Illinois,17041,12,0 +2020-04-17,Douglas,Illinois,17041,12,0 +2020-04-18,Douglas,Illinois,17041,12,0 +2020-04-19,Douglas,Illinois,17041,12,0 +2020-04-20,Douglas,Illinois,17041,12,0 +2020-04-21,Douglas,Illinois,17041,12,0 +2020-04-22,Douglas,Illinois,17041,12,0 +2020-04-23,Douglas,Illinois,17041,12,0 +2020-04-24,Douglas,Illinois,17041,12,0 +2020-04-25,Douglas,Illinois,17041,12,0 +2020-04-26,Douglas,Illinois,17041,13,0 +2020-04-27,Douglas,Illinois,17041,14,0 +2020-04-28,Douglas,Illinois,17041,14,0 +2020-04-29,Douglas,Illinois,17041,14,0 +2020-04-30,Douglas,Illinois,17041,14,0 +2020-05-01,Douglas,Illinois,17041,16,0 +2020-05-02,Douglas,Illinois,17041,19,0 +2020-05-03,Douglas,Illinois,17041,20,0 +2020-05-04,Douglas,Illinois,17041,20,0 +2020-05-05,Douglas,Illinois,17041,20,0 +2020-05-06,Douglas,Illinois,17041,20,0 +2020-05-07,Douglas,Illinois,17041,20,0 +2020-05-08,Douglas,Illinois,17041,20,0 +2020-05-09,Douglas,Illinois,17041,20,0 +2020-05-10,Douglas,Illinois,17041,20,0 +2020-05-11,Douglas,Illinois,17041,20,0 +2020-05-12,Douglas,Illinois,17041,20,0 +2020-05-13,Douglas,Illinois,17041,22,0 +2020-05-14,Douglas,Illinois,17041,22,0 +2020-05-15,Douglas,Illinois,17041,22,0 +2020-05-16,Douglas,Illinois,17041,23,0 +2020-05-17,Douglas,Illinois,17041,23,0 +2020-05-18,Douglas,Illinois,17041,26,0 +2020-05-19,Douglas,Illinois,17041,26,0 +2020-05-20,Douglas,Illinois,17041,26,0 +2020-05-21,Douglas,Illinois,17041,26,0 +2020-05-22,Douglas,Illinois,17041,27,0 +2020-05-23,Douglas,Illinois,17041,27,0 +2020-05-24,Douglas,Illinois,17041,28,0 +2020-05-25,Douglas,Illinois,17041,27,0 +2020-05-26,Douglas,Illinois,17041,28,0 +2020-05-27,Douglas,Illinois,17041,26,0 +2020-05-28,Douglas,Illinois,17041,26,0 +2020-05-29,Douglas,Illinois,17041,26,0 +2020-05-30,Douglas,Illinois,17041,27,0 +2020-05-31,Douglas,Illinois,17041,28,0 +2020-06-01,Douglas,Illinois,17041,28,0 +2020-06-02,Douglas,Illinois,17041,28,0 +2020-06-03,Douglas,Illinois,17041,28,0 +2020-06-04,Douglas,Illinois,17041,28,0 +2020-06-05,Douglas,Illinois,17041,28,0 +2020-06-06,Douglas,Illinois,17041,28,0 +2020-06-07,Douglas,Illinois,17041,28,0 +2020-06-08,Douglas,Illinois,17041,29,0 +2020-06-09,Douglas,Illinois,17041,29,0 +2020-06-10,Douglas,Illinois,17041,30,0 +2020-06-11,Douglas,Illinois,17041,30,0 +2020-06-12,Douglas,Illinois,17041,33,0 +2020-06-13,Douglas,Illinois,17041,35,0 +2020-06-14,Douglas,Illinois,17041,38,0 +2020-06-15,Douglas,Illinois,17041,38,0 +2020-06-16,Douglas,Illinois,17041,38,0 +2020-06-17,Douglas,Illinois,17041,39,0 +2020-06-18,Douglas,Illinois,17041,40,0 +2020-06-19,Douglas,Illinois,17041,42,0 +2020-06-20,Douglas,Illinois,17041,42,0 +2020-06-21,Douglas,Illinois,17041,42,0 +2020-06-22,Douglas,Illinois,17041,42,0 +2020-06-23,Douglas,Illinois,17041,42,0 +2020-06-24,Douglas,Illinois,17041,43,0 +2020-06-25,Douglas,Illinois,17041,45,0 +2020-06-26,Douglas,Illinois,17041,45,0 +2020-06-27,Douglas,Illinois,17041,47,0 +2020-06-28,Douglas,Illinois,17041,48,0 +2020-06-29,Douglas,Illinois,17041,50,0 +2020-06-30,Douglas,Illinois,17041,52,0 +2020-07-01,Douglas,Illinois,17041,52,0 +2020-07-02,Douglas,Illinois,17041,53,0 +2020-07-03,Douglas,Illinois,17041,54,0 +2020-07-04,Douglas,Illinois,17041,54,0 +2020-07-05,Douglas,Illinois,17041,54,0 +2020-07-06,Douglas,Illinois,17041,54,0 +2020-07-07,Douglas,Illinois,17041,54,0 +2020-07-08,Douglas,Illinois,17041,54,0 +2020-07-09,Douglas,Illinois,17041,55,0 +2020-03-14,DuPage,Illinois,17043,1,0 +2020-03-15,DuPage,Illinois,17043,1,0 +2020-03-16,DuPage,Illinois,17043,5,0 +2020-03-17,DuPage,Illinois,17043,26,0 +2020-03-18,DuPage,Illinois,17043,45,0 +2020-03-19,DuPage,Illinois,17043,54,0 +2020-03-20,DuPage,Illinois,17043,57,0 +2020-03-21,DuPage,Illinois,17043,68,0 +2020-03-22,DuPage,Illinois,17043,79,0 +2020-03-23,DuPage,Illinois,17043,95,0 +2020-03-24,DuPage,Illinois,17043,103,1 +2020-03-25,DuPage,Illinois,17043,131,1 +2020-03-26,DuPage,Illinois,17043,182,1 +2020-03-27,DuPage,Illinois,17043,199,6 +2020-03-28,DuPage,Illinois,17043,202,6 +2020-03-29,DuPage,Illinois,17043,274,7 +2020-03-30,DuPage,Illinois,17043,320,8 +2020-03-31,DuPage,Illinois,17043,356,10 +2020-04-01,DuPage,Illinois,17043,392,12 +2020-04-02,DuPage,Illinois,17043,448,14 +2020-04-03,DuPage,Illinois,17043,500,16 +2020-04-04,DuPage,Illinois,17043,590,18 +2020-04-05,DuPage,Illinois,17043,656,22 +2020-04-06,DuPage,Illinois,17043,715,22 +2020-04-07,DuPage,Illinois,17043,795,26 +2020-04-08,DuPage,Illinois,17043,875,30 +2020-04-09,DuPage,Illinois,17043,943,36 +2020-04-10,DuPage,Illinois,17043,1008,42 +2020-04-11,DuPage,Illinois,17043,1048,48 +2020-04-12,DuPage,Illinois,17043,1162,50 +2020-04-13,DuPage,Illinois,17043,1223,56 +2020-04-14,DuPage,Illinois,17043,1312,61 +2020-04-15,DuPage,Illinois,17043,1386,66 +2020-04-16,DuPage,Illinois,17043,1463,69 +2020-04-17,DuPage,Illinois,17043,1560,77 +2020-04-18,DuPage,Illinois,17043,1642,83 +2020-04-19,DuPage,Illinois,17043,1695,85 +2020-04-20,DuPage,Illinois,17043,1761,90 +2020-04-21,DuPage,Illinois,17043,1864,98 +2020-04-22,DuPage,Illinois,17043,1947,103 +2020-04-23,DuPage,Illinois,17043,2047,118 +2020-04-24,DuPage,Illinois,17043,2219,125 +2020-04-25,DuPage,Illinois,17043,2311,127 +2020-04-26,DuPage,Illinois,17043,2443,131 +2020-04-27,DuPage,Illinois,17043,2628,133 +2020-04-28,DuPage,Illinois,17043,2736,139 +2020-04-29,DuPage,Illinois,17043,2870,142 +2020-04-30,DuPage,Illinois,17043,3081,163 +2020-05-01,DuPage,Illinois,17043,3256,174 +2020-05-02,DuPage,Illinois,17043,3432,189 +2020-05-03,DuPage,Illinois,17043,3611,192 +2020-05-04,DuPage,Illinois,17043,3803,196 +2020-05-05,DuPage,Illinois,17043,3918,207 +2020-05-06,DuPage,Illinois,17043,4056,220 +2020-05-07,DuPage,Illinois,17043,4213,228 +2020-05-08,DuPage,Illinois,17043,4374,236 +2020-05-09,DuPage,Illinois,17043,4493,247 +2020-05-10,DuPage,Illinois,17043,4603,248 +2020-05-11,DuPage,Illinois,17043,4745,251 +2020-05-12,DuPage,Illinois,17043,5121,258 +2020-05-13,DuPage,Illinois,17043,5244,271 +2020-05-14,DuPage,Illinois,17043,5453,279 +2020-05-15,DuPage,Illinois,17043,5634,287 +2020-05-16,DuPage,Illinois,17043,5780,293 +2020-05-17,DuPage,Illinois,17043,5904,298 +2020-05-18,DuPage,Illinois,17043,6076,300 +2020-05-19,DuPage,Illinois,17043,6171,315 +2020-05-20,DuPage,Illinois,17043,6308,326 +2020-05-21,DuPage,Illinois,17043,6471,332 +2020-05-22,DuPage,Illinois,17043,6744,337 +2020-05-23,DuPage,Illinois,17043,6891,339 +2020-05-24,DuPage,Illinois,17043,7063,340 +2020-05-25,DuPage,Illinois,17043,7207,339 +2020-05-26,DuPage,Illinois,17043,7305,341 +2020-05-27,DuPage,Illinois,17043,7369,347 +2020-05-28,DuPage,Illinois,17043,7479,351 +2020-05-29,DuPage,Illinois,17043,7564,362 +2020-05-30,DuPage,Illinois,17043,7640,368 +2020-05-31,DuPage,Illinois,17043,7717,373 +2020-06-01,DuPage,Illinois,17043,7773,374 +2020-06-02,DuPage,Illinois,17043,7838,380 +2020-06-03,DuPage,Illinois,17043,7915,384 +2020-06-04,DuPage,Illinois,17043,7947,392 +2020-06-05,DuPage,Illinois,17043,8003,394 +2020-06-06,DuPage,Illinois,17043,8070,400 +2020-06-07,DuPage,Illinois,17043,8120,404 +2020-06-08,DuPage,Illinois,17043,8157,406 +2020-06-09,DuPage,Illinois,17043,8223,411 +2020-06-10,DuPage,Illinois,17043,8263,418 +2020-06-11,DuPage,Illinois,17043,8318,425 +2020-06-12,DuPage,Illinois,17043,8360,429 +2020-06-13,DuPage,Illinois,17043,8402,430 +2020-06-14,DuPage,Illinois,17043,8434,431 +2020-06-15,DuPage,Illinois,17043,8465,431 +2020-06-16,DuPage,Illinois,17043,8501,432 +2020-06-17,DuPage,Illinois,17043,8546,435 +2020-06-18,DuPage,Illinois,17043,8575,443 +2020-06-19,DuPage,Illinois,17043,8611,444 +2020-06-20,DuPage,Illinois,17043,8648,448 +2020-06-21,DuPage,Illinois,17043,8684,448 +2020-06-22,DuPage,Illinois,17043,8716,449 +2020-06-23,DuPage,Illinois,17043,8742,455 +2020-06-24,DuPage,Illinois,17043,8782,458 +2020-06-25,DuPage,Illinois,17043,8829,463 +2020-06-26,DuPage,Illinois,17043,8879,465 +2020-06-27,DuPage,Illinois,17043,8922,468 +2020-06-28,DuPage,Illinois,17043,8951,469 +2020-06-29,DuPage,Illinois,17043,8996,470 +2020-06-30,DuPage,Illinois,17043,9036,470 +2020-07-01,DuPage,Illinois,17043,9086,472 +2020-07-02,DuPage,Illinois,17043,9147,473 +2020-07-03,DuPage,Illinois,17043,9209,474 +2020-07-04,DuPage,Illinois,17043,9276,475 +2020-07-05,DuPage,Illinois,17043,9315,475 +2020-07-06,DuPage,Illinois,17043,9364,475 +2020-07-07,DuPage,Illinois,17043,9395,477 +2020-07-08,DuPage,Illinois,17043,9457,480 +2020-07-09,DuPage,Illinois,17043,9507,483 +2020-05-29,Edgar,Illinois,17045,1,0 +2020-05-30,Edgar,Illinois,17045,1,0 +2020-05-31,Edgar,Illinois,17045,1,0 +2020-06-01,Edgar,Illinois,17045,1,0 +2020-06-02,Edgar,Illinois,17045,1,0 +2020-06-03,Edgar,Illinois,17045,1,0 +2020-06-04,Edgar,Illinois,17045,1,0 +2020-06-05,Edgar,Illinois,17045,1,0 +2020-06-06,Edgar,Illinois,17045,1,0 +2020-06-07,Edgar,Illinois,17045,1,0 +2020-06-08,Edgar,Illinois,17045,1,0 +2020-06-09,Edgar,Illinois,17045,1,0 +2020-06-10,Edgar,Illinois,17045,1,0 +2020-06-11,Edgar,Illinois,17045,1,0 +2020-06-12,Edgar,Illinois,17045,1,0 +2020-06-13,Edgar,Illinois,17045,1,0 +2020-06-14,Edgar,Illinois,17045,1,0 +2020-06-15,Edgar,Illinois,17045,2,0 +2020-06-16,Edgar,Illinois,17045,2,0 +2020-06-17,Edgar,Illinois,17045,2,0 +2020-06-18,Edgar,Illinois,17045,3,0 +2020-06-19,Edgar,Illinois,17045,6,0 +2020-06-20,Edgar,Illinois,17045,6,0 +2020-06-21,Edgar,Illinois,17045,6,0 +2020-06-22,Edgar,Illinois,17045,7,0 +2020-06-23,Edgar,Illinois,17045,7,0 +2020-06-24,Edgar,Illinois,17045,7,0 +2020-06-25,Edgar,Illinois,17045,8,0 +2020-06-26,Edgar,Illinois,17045,8,0 +2020-06-27,Edgar,Illinois,17045,9,0 +2020-06-28,Edgar,Illinois,17045,9,0 +2020-06-29,Edgar,Illinois,17045,10,0 +2020-06-30,Edgar,Illinois,17045,10,0 +2020-07-01,Edgar,Illinois,17045,10,0 +2020-07-02,Edgar,Illinois,17045,10,0 +2020-07-03,Edgar,Illinois,17045,10,0 +2020-07-04,Edgar,Illinois,17045,10,0 +2020-07-05,Edgar,Illinois,17045,10,0 +2020-07-06,Edgar,Illinois,17045,10,0 +2020-07-07,Edgar,Illinois,17045,11,0 +2020-07-08,Edgar,Illinois,17045,16,0 +2020-07-09,Edgar,Illinois,17045,16,0 +2020-05-13,Edwards,Illinois,17047,2,0 +2020-05-14,Edwards,Illinois,17047,2,0 +2020-05-15,Edwards,Illinois,17047,2,0 +2020-05-16,Edwards,Illinois,17047,2,0 +2020-05-17,Edwards,Illinois,17047,2,0 +2020-05-18,Edwards,Illinois,17047,2,0 +2020-05-19,Edwards,Illinois,17047,2,0 +2020-05-20,Edwards,Illinois,17047,2,0 +2020-05-21,Edwards,Illinois,17047,2,0 +2020-05-22,Edwards,Illinois,17047,2,0 +2020-05-23,Edwards,Illinois,17047,2,0 +2020-05-24,Edwards,Illinois,17047,2,0 +2020-05-25,Edwards,Illinois,17047,2,0 +2020-05-26,Edwards,Illinois,17047,2,0 +2020-05-27,Edwards,Illinois,17047,2,0 +2020-05-28,Edwards,Illinois,17047,2,0 +2020-05-29,Edwards,Illinois,17047,2,0 +2020-05-30,Edwards,Illinois,17047,2,0 +2020-05-31,Edwards,Illinois,17047,2,0 +2020-06-01,Edwards,Illinois,17047,2,0 +2020-06-02,Edwards,Illinois,17047,2,0 +2020-06-03,Edwards,Illinois,17047,2,0 +2020-06-04,Edwards,Illinois,17047,2,0 +2020-06-05,Edwards,Illinois,17047,2,0 +2020-06-06,Edwards,Illinois,17047,2,0 +2020-06-07,Edwards,Illinois,17047,2,0 +2020-06-08,Edwards,Illinois,17047,2,0 +2020-06-09,Edwards,Illinois,17047,2,0 +2020-06-10,Edwards,Illinois,17047,2,0 +2020-06-11,Edwards,Illinois,17047,2,0 +2020-06-12,Edwards,Illinois,17047,2,0 +2020-06-13,Edwards,Illinois,17047,2,0 +2020-06-14,Edwards,Illinois,17047,2,0 +2020-06-15,Edwards,Illinois,17047,2,0 +2020-06-16,Edwards,Illinois,17047,2,0 +2020-06-17,Edwards,Illinois,17047,2,0 +2020-06-18,Edwards,Illinois,17047,2,0 +2020-06-19,Edwards,Illinois,17047,2,0 +2020-06-20,Edwards,Illinois,17047,2,0 +2020-06-21,Edwards,Illinois,17047,2,0 +2020-06-22,Edwards,Illinois,17047,2,0 +2020-06-23,Edwards,Illinois,17047,2,0 +2020-06-24,Edwards,Illinois,17047,2,0 +2020-06-25,Edwards,Illinois,17047,2,0 +2020-06-26,Edwards,Illinois,17047,2,0 +2020-06-27,Edwards,Illinois,17047,2,0 +2020-06-28,Edwards,Illinois,17047,2,0 +2020-06-29,Edwards,Illinois,17047,2,0 +2020-06-30,Edwards,Illinois,17047,2,0 +2020-07-01,Edwards,Illinois,17047,2,0 +2020-07-02,Edwards,Illinois,17047,2,0 +2020-07-03,Edwards,Illinois,17047,2,0 +2020-07-04,Edwards,Illinois,17047,2,0 +2020-07-05,Edwards,Illinois,17047,2,0 +2020-07-06,Edwards,Illinois,17047,2,0 +2020-07-07,Edwards,Illinois,17047,2,0 +2020-07-08,Edwards,Illinois,17047,2,0 +2020-07-09,Edwards,Illinois,17047,2,0 +2020-04-03,Effingham,Illinois,17049,1,0 +2020-04-04,Effingham,Illinois,17049,1,0 +2020-04-05,Effingham,Illinois,17049,1,0 +2020-04-06,Effingham,Illinois,17049,1,0 +2020-04-07,Effingham,Illinois,17049,1,0 +2020-04-08,Effingham,Illinois,17049,2,0 +2020-04-09,Effingham,Illinois,17049,3,1 +2020-04-10,Effingham,Illinois,17049,3,1 +2020-04-11,Effingham,Illinois,17049,3,1 +2020-04-12,Effingham,Illinois,17049,3,1 +2020-04-13,Effingham,Illinois,17049,3,1 +2020-04-14,Effingham,Illinois,17049,3,1 +2020-04-15,Effingham,Illinois,17049,3,1 +2020-04-16,Effingham,Illinois,17049,4,1 +2020-04-17,Effingham,Illinois,17049,3,1 +2020-04-18,Effingham,Illinois,17049,4,1 +2020-04-19,Effingham,Illinois,17049,4,1 +2020-04-20,Effingham,Illinois,17049,4,1 +2020-04-21,Effingham,Illinois,17049,5,1 +2020-04-22,Effingham,Illinois,17049,5,1 +2020-04-23,Effingham,Illinois,17049,5,1 +2020-04-24,Effingham,Illinois,17049,5,1 +2020-04-25,Effingham,Illinois,17049,5,1 +2020-04-26,Effingham,Illinois,17049,5,1 +2020-04-27,Effingham,Illinois,17049,5,1 +2020-04-28,Effingham,Illinois,17049,5,1 +2020-04-29,Effingham,Illinois,17049,6,1 +2020-04-30,Effingham,Illinois,17049,5,1 +2020-05-01,Effingham,Illinois,17049,5,1 +2020-05-02,Effingham,Illinois,17049,6,1 +2020-05-03,Effingham,Illinois,17049,6,1 +2020-05-04,Effingham,Illinois,17049,5,1 +2020-05-05,Effingham,Illinois,17049,5,1 +2020-05-06,Effingham,Illinois,17049,5,1 +2020-05-07,Effingham,Illinois,17049,5,1 +2020-05-08,Effingham,Illinois,17049,5,1 +2020-05-09,Effingham,Illinois,17049,6,1 +2020-05-10,Effingham,Illinois,17049,6,1 +2020-05-11,Effingham,Illinois,17049,6,1 +2020-05-12,Effingham,Illinois,17049,6,1 +2020-05-13,Effingham,Illinois,17049,6,1 +2020-05-14,Effingham,Illinois,17049,6,1 +2020-05-15,Effingham,Illinois,17049,6,1 +2020-05-16,Effingham,Illinois,17049,6,1 +2020-05-17,Effingham,Illinois,17049,6,1 +2020-05-18,Effingham,Illinois,17049,6,1 +2020-05-19,Effingham,Illinois,17049,6,1 +2020-05-20,Effingham,Illinois,17049,6,1 +2020-05-21,Effingham,Illinois,17049,6,1 +2020-05-22,Effingham,Illinois,17049,6,1 +2020-05-23,Effingham,Illinois,17049,6,1 +2020-05-24,Effingham,Illinois,17049,6,1 +2020-05-25,Effingham,Illinois,17049,6,1 +2020-05-26,Effingham,Illinois,17049,6,1 +2020-05-27,Effingham,Illinois,17049,6,1 +2020-05-28,Effingham,Illinois,17049,6,1 +2020-05-29,Effingham,Illinois,17049,7,1 +2020-05-30,Effingham,Illinois,17049,7,1 +2020-05-31,Effingham,Illinois,17049,7,1 +2020-06-01,Effingham,Illinois,17049,7,1 +2020-06-02,Effingham,Illinois,17049,7,1 +2020-06-03,Effingham,Illinois,17049,7,1 +2020-06-04,Effingham,Illinois,17049,7,1 +2020-06-05,Effingham,Illinois,17049,8,1 +2020-06-06,Effingham,Illinois,17049,8,1 +2020-06-07,Effingham,Illinois,17049,8,1 +2020-06-08,Effingham,Illinois,17049,8,1 +2020-06-09,Effingham,Illinois,17049,8,1 +2020-06-10,Effingham,Illinois,17049,8,1 +2020-06-11,Effingham,Illinois,17049,8,1 +2020-06-12,Effingham,Illinois,17049,8,1 +2020-06-13,Effingham,Illinois,17049,8,1 +2020-06-14,Effingham,Illinois,17049,8,1 +2020-06-15,Effingham,Illinois,17049,8,1 +2020-06-16,Effingham,Illinois,17049,9,1 +2020-06-17,Effingham,Illinois,17049,9,1 +2020-06-18,Effingham,Illinois,17049,12,1 +2020-06-19,Effingham,Illinois,17049,12,1 +2020-06-20,Effingham,Illinois,17049,12,1 +2020-06-21,Effingham,Illinois,17049,12,1 +2020-06-22,Effingham,Illinois,17049,12,1 +2020-06-23,Effingham,Illinois,17049,11,1 +2020-06-24,Effingham,Illinois,17049,12,1 +2020-06-25,Effingham,Illinois,17049,11,1 +2020-06-26,Effingham,Illinois,17049,11,1 +2020-06-27,Effingham,Illinois,17049,11,1 +2020-06-28,Effingham,Illinois,17049,11,1 +2020-06-29,Effingham,Illinois,17049,11,1 +2020-06-30,Effingham,Illinois,17049,12,1 +2020-07-01,Effingham,Illinois,17049,12,1 +2020-07-02,Effingham,Illinois,17049,12,1 +2020-07-03,Effingham,Illinois,17049,13,1 +2020-07-04,Effingham,Illinois,17049,17,1 +2020-07-05,Effingham,Illinois,17049,18,1 +2020-07-06,Effingham,Illinois,17049,19,1 +2020-07-07,Effingham,Illinois,17049,19,1 +2020-07-08,Effingham,Illinois,17049,19,1 +2020-07-09,Effingham,Illinois,17049,20,1 +2020-03-28,Fayette,Illinois,17051,1,0 +2020-03-29,Fayette,Illinois,17051,1,0 +2020-03-30,Fayette,Illinois,17051,1,0 +2020-03-31,Fayette,Illinois,17051,1,0 +2020-04-01,Fayette,Illinois,17051,2,0 +2020-04-02,Fayette,Illinois,17051,2,0 +2020-04-03,Fayette,Illinois,17051,2,0 +2020-04-04,Fayette,Illinois,17051,2,0 +2020-04-05,Fayette,Illinois,17051,2,0 +2020-04-06,Fayette,Illinois,17051,3,0 +2020-04-07,Fayette,Illinois,17051,3,0 +2020-04-08,Fayette,Illinois,17051,4,0 +2020-04-09,Fayette,Illinois,17051,7,0 +2020-04-10,Fayette,Illinois,17051,7,0 +2020-04-11,Fayette,Illinois,17051,9,0 +2020-04-12,Fayette,Illinois,17051,11,1 +2020-04-13,Fayette,Illinois,17051,11,2 +2020-04-14,Fayette,Illinois,17051,12,1 +2020-04-15,Fayette,Illinois,17051,12,1 +2020-04-16,Fayette,Illinois,17051,12,1 +2020-04-17,Fayette,Illinois,17051,12,1 +2020-04-18,Fayette,Illinois,17051,13,1 +2020-04-19,Fayette,Illinois,17051,15,1 +2020-04-20,Fayette,Illinois,17051,15,1 +2020-04-21,Fayette,Illinois,17051,15,1 +2020-04-22,Fayette,Illinois,17051,15,1 +2020-04-23,Fayette,Illinois,17051,15,2 +2020-04-24,Fayette,Illinois,17051,16,2 +2020-04-25,Fayette,Illinois,17051,16,2 +2020-04-26,Fayette,Illinois,17051,16,2 +2020-04-27,Fayette,Illinois,17051,16,2 +2020-04-28,Fayette,Illinois,17051,16,2 +2020-04-29,Fayette,Illinois,17051,16,2 +2020-04-30,Fayette,Illinois,17051,16,2 +2020-05-01,Fayette,Illinois,17051,16,2 +2020-05-02,Fayette,Illinois,17051,16,2 +2020-05-03,Fayette,Illinois,17051,16,2 +2020-05-04,Fayette,Illinois,17051,16,2 +2020-05-05,Fayette,Illinois,17051,16,2 +2020-05-06,Fayette,Illinois,17051,16,2 +2020-05-07,Fayette,Illinois,17051,17,2 +2020-05-08,Fayette,Illinois,17051,17,2 +2020-05-09,Fayette,Illinois,17051,17,2 +2020-05-10,Fayette,Illinois,17051,17,2 +2020-05-11,Fayette,Illinois,17051,17,2 +2020-05-12,Fayette,Illinois,17051,17,2 +2020-05-13,Fayette,Illinois,17051,17,2 +2020-05-14,Fayette,Illinois,17051,17,2 +2020-05-15,Fayette,Illinois,17051,19,2 +2020-05-16,Fayette,Illinois,17051,19,2 +2020-05-17,Fayette,Illinois,17051,19,2 +2020-05-18,Fayette,Illinois,17051,19,2 +2020-05-19,Fayette,Illinois,17051,19,2 +2020-05-20,Fayette,Illinois,17051,19,2 +2020-05-21,Fayette,Illinois,17051,19,2 +2020-05-22,Fayette,Illinois,17051,19,2 +2020-05-23,Fayette,Illinois,17051,20,2 +2020-05-24,Fayette,Illinois,17051,20,2 +2020-05-25,Fayette,Illinois,17051,20,2 +2020-05-26,Fayette,Illinois,17051,20,3 +2020-05-27,Fayette,Illinois,17051,20,3 +2020-05-28,Fayette,Illinois,17051,20,3 +2020-05-29,Fayette,Illinois,17051,20,3 +2020-05-30,Fayette,Illinois,17051,20,3 +2020-05-31,Fayette,Illinois,17051,21,3 +2020-06-01,Fayette,Illinois,17051,21,3 +2020-06-02,Fayette,Illinois,17051,21,3 +2020-06-03,Fayette,Illinois,17051,21,3 +2020-06-04,Fayette,Illinois,17051,21,3 +2020-06-05,Fayette,Illinois,17051,21,3 +2020-06-06,Fayette,Illinois,17051,21,3 +2020-06-07,Fayette,Illinois,17051,21,3 +2020-06-08,Fayette,Illinois,17051,21,3 +2020-06-09,Fayette,Illinois,17051,21,3 +2020-06-10,Fayette,Illinois,17051,22,3 +2020-06-11,Fayette,Illinois,17051,22,3 +2020-06-12,Fayette,Illinois,17051,22,3 +2020-06-13,Fayette,Illinois,17051,22,3 +2020-06-14,Fayette,Illinois,17051,22,3 +2020-06-15,Fayette,Illinois,17051,22,3 +2020-06-16,Fayette,Illinois,17051,22,3 +2020-06-17,Fayette,Illinois,17051,23,3 +2020-06-18,Fayette,Illinois,17051,23,3 +2020-06-19,Fayette,Illinois,17051,23,3 +2020-06-20,Fayette,Illinois,17051,23,3 +2020-06-21,Fayette,Illinois,17051,23,3 +2020-06-22,Fayette,Illinois,17051,23,3 +2020-06-23,Fayette,Illinois,17051,23,3 +2020-06-24,Fayette,Illinois,17051,23,3 +2020-06-25,Fayette,Illinois,17051,23,3 +2020-06-26,Fayette,Illinois,17051,23,3 +2020-06-27,Fayette,Illinois,17051,23,3 +2020-06-28,Fayette,Illinois,17051,23,3 +2020-06-29,Fayette,Illinois,17051,23,3 +2020-06-30,Fayette,Illinois,17051,23,3 +2020-07-01,Fayette,Illinois,17051,23,3 +2020-07-02,Fayette,Illinois,17051,23,3 +2020-07-03,Fayette,Illinois,17051,23,3 +2020-07-04,Fayette,Illinois,17051,23,3 +2020-07-05,Fayette,Illinois,17051,23,3 +2020-07-06,Fayette,Illinois,17051,23,3 +2020-07-07,Fayette,Illinois,17051,23,3 +2020-07-08,Fayette,Illinois,17051,24,3 +2020-07-09,Fayette,Illinois,17051,23,3 +2020-03-31,Ford,Illinois,17053,1,0 +2020-04-01,Ford,Illinois,17053,1,0 +2020-04-02,Ford,Illinois,17053,1,0 +2020-04-03,Ford,Illinois,17053,1,0 +2020-04-04,Ford,Illinois,17053,1,0 +2020-04-05,Ford,Illinois,17053,1,0 +2020-04-06,Ford,Illinois,17053,1,0 +2020-04-07,Ford,Illinois,17053,5,1 +2020-04-08,Ford,Illinois,17053,5,1 +2020-04-09,Ford,Illinois,17053,5,1 +2020-04-10,Ford,Illinois,17053,5,1 +2020-04-11,Ford,Illinois,17053,5,1 +2020-04-12,Ford,Illinois,17053,5,1 +2020-04-13,Ford,Illinois,17053,5,1 +2020-04-14,Ford,Illinois,17053,5,1 +2020-04-15,Ford,Illinois,17053,5,1 +2020-04-16,Ford,Illinois,17053,5,1 +2020-04-17,Ford,Illinois,17053,5,1 +2020-04-18,Ford,Illinois,17053,5,1 +2020-04-19,Ford,Illinois,17053,5,1 +2020-04-20,Ford,Illinois,17053,6,1 +2020-04-21,Ford,Illinois,17053,6,1 +2020-04-22,Ford,Illinois,17053,6,1 +2020-04-23,Ford,Illinois,17053,8,1 +2020-04-24,Ford,Illinois,17053,7,1 +2020-04-25,Ford,Illinois,17053,8,1 +2020-04-26,Ford,Illinois,17053,8,1 +2020-04-27,Ford,Illinois,17053,8,1 +2020-04-28,Ford,Illinois,17053,8,1 +2020-04-29,Ford,Illinois,17053,10,1 +2020-04-30,Ford,Illinois,17053,9,1 +2020-05-01,Ford,Illinois,17053,9,1 +2020-05-02,Ford,Illinois,17053,9,1 +2020-05-03,Ford,Illinois,17053,9,1 +2020-05-04,Ford,Illinois,17053,9,1 +2020-05-05,Ford,Illinois,17053,11,1 +2020-05-06,Ford,Illinois,17053,11,1 +2020-05-07,Ford,Illinois,17053,12,1 +2020-05-08,Ford,Illinois,17053,12,1 +2020-05-09,Ford,Illinois,17053,13,1 +2020-05-10,Ford,Illinois,17053,14,1 +2020-05-11,Ford,Illinois,17053,14,1 +2020-05-12,Ford,Illinois,17053,14,1 +2020-05-13,Ford,Illinois,17053,14,1 +2020-05-14,Ford,Illinois,17053,15,1 +2020-05-15,Ford,Illinois,17053,16,1 +2020-05-16,Ford,Illinois,17053,17,1 +2020-05-17,Ford,Illinois,17053,17,1 +2020-05-18,Ford,Illinois,17053,18,1 +2020-05-19,Ford,Illinois,17053,18,1 +2020-05-20,Ford,Illinois,17053,18,1 +2020-05-21,Ford,Illinois,17053,18,1 +2020-05-22,Ford,Illinois,17053,19,1 +2020-05-23,Ford,Illinois,17053,19,1 +2020-05-24,Ford,Illinois,17053,20,1 +2020-05-25,Ford,Illinois,17053,20,1 +2020-05-26,Ford,Illinois,17053,20,1 +2020-05-27,Ford,Illinois,17053,20,1 +2020-05-28,Ford,Illinois,17053,20,1 +2020-05-29,Ford,Illinois,17053,20,1 +2020-05-30,Ford,Illinois,17053,20,1 +2020-05-31,Ford,Illinois,17053,20,1 +2020-06-01,Ford,Illinois,17053,20,1 +2020-06-02,Ford,Illinois,17053,20,1 +2020-06-03,Ford,Illinois,17053,20,1 +2020-06-04,Ford,Illinois,17053,20,1 +2020-06-05,Ford,Illinois,17053,21,1 +2020-06-06,Ford,Illinois,17053,21,1 +2020-06-07,Ford,Illinois,17053,21,1 +2020-06-08,Ford,Illinois,17053,21,1 +2020-06-09,Ford,Illinois,17053,21,1 +2020-06-10,Ford,Illinois,17053,22,1 +2020-06-11,Ford,Illinois,17053,22,1 +2020-06-12,Ford,Illinois,17053,21,1 +2020-06-13,Ford,Illinois,17053,22,1 +2020-06-14,Ford,Illinois,17053,22,1 +2020-06-15,Ford,Illinois,17053,22,1 +2020-06-16,Ford,Illinois,17053,22,1 +2020-06-17,Ford,Illinois,17053,22,1 +2020-06-18,Ford,Illinois,17053,22,1 +2020-06-19,Ford,Illinois,17053,22,1 +2020-06-20,Ford,Illinois,17053,22,1 +2020-06-21,Ford,Illinois,17053,22,1 +2020-06-22,Ford,Illinois,17053,25,1 +2020-06-23,Ford,Illinois,17053,26,1 +2020-06-24,Ford,Illinois,17053,26,1 +2020-06-25,Ford,Illinois,17053,26,1 +2020-06-26,Ford,Illinois,17053,27,1 +2020-06-27,Ford,Illinois,17053,30,1 +2020-06-28,Ford,Illinois,17053,30,1 +2020-06-29,Ford,Illinois,17053,31,1 +2020-06-30,Ford,Illinois,17053,31,1 +2020-07-01,Ford,Illinois,17053,33,1 +2020-07-02,Ford,Illinois,17053,34,1 +2020-07-03,Ford,Illinois,17053,37,1 +2020-07-04,Ford,Illinois,17053,37,1 +2020-07-05,Ford,Illinois,17053,38,1 +2020-07-06,Ford,Illinois,17053,40,1 +2020-07-07,Ford,Illinois,17053,40,1 +2020-07-08,Ford,Illinois,17053,41,1 +2020-07-09,Ford,Illinois,17053,42,1 +2020-03-26,Franklin,Illinois,17055,1,0 +2020-03-27,Franklin,Illinois,17055,1,0 +2020-03-28,Franklin,Illinois,17055,1,0 +2020-03-29,Franklin,Illinois,17055,2,0 +2020-03-30,Franklin,Illinois,17055,1,0 +2020-03-31,Franklin,Illinois,17055,1,0 +2020-04-01,Franklin,Illinois,17055,1,0 +2020-04-02,Franklin,Illinois,17055,1,0 +2020-04-03,Franklin,Illinois,17055,1,0 +2020-04-04,Franklin,Illinois,17055,1,0 +2020-04-05,Franklin,Illinois,17055,1,0 +2020-04-06,Franklin,Illinois,17055,2,0 +2020-04-07,Franklin,Illinois,17055,2,0 +2020-04-08,Franklin,Illinois,17055,2,0 +2020-04-09,Franklin,Illinois,17055,2,0 +2020-04-10,Franklin,Illinois,17055,3,0 +2020-04-11,Franklin,Illinois,17055,3,0 +2020-04-12,Franklin,Illinois,17055,4,0 +2020-04-13,Franklin,Illinois,17055,4,0 +2020-04-14,Franklin,Illinois,17055,4,0 +2020-04-15,Franklin,Illinois,17055,4,0 +2020-04-16,Franklin,Illinois,17055,4,0 +2020-04-17,Franklin,Illinois,17055,5,0 +2020-04-18,Franklin,Illinois,17055,5,0 +2020-04-19,Franklin,Illinois,17055,5,0 +2020-04-20,Franklin,Illinois,17055,5,0 +2020-04-21,Franklin,Illinois,17055,6,0 +2020-04-22,Franklin,Illinois,17055,8,0 +2020-04-23,Franklin,Illinois,17055,8,0 +2020-04-24,Franklin,Illinois,17055,8,0 +2020-04-25,Franklin,Illinois,17055,8,0 +2020-04-26,Franklin,Illinois,17055,8,0 +2020-04-27,Franklin,Illinois,17055,8,0 +2020-04-28,Franklin,Illinois,17055,8,0 +2020-04-29,Franklin,Illinois,17055,8,0 +2020-04-30,Franklin,Illinois,17055,8,0 +2020-05-01,Franklin,Illinois,17055,8,0 +2020-05-02,Franklin,Illinois,17055,9,0 +2020-05-03,Franklin,Illinois,17055,10,0 +2020-05-04,Franklin,Illinois,17055,9,0 +2020-05-05,Franklin,Illinois,17055,10,0 +2020-05-06,Franklin,Illinois,17055,10,0 +2020-05-07,Franklin,Illinois,17055,10,0 +2020-05-08,Franklin,Illinois,17055,10,0 +2020-05-09,Franklin,Illinois,17055,10,0 +2020-05-10,Franklin,Illinois,17055,10,0 +2020-05-11,Franklin,Illinois,17055,10,0 +2020-05-12,Franklin,Illinois,17055,10,0 +2020-05-13,Franklin,Illinois,17055,12,0 +2020-05-14,Franklin,Illinois,17055,11,0 +2020-05-15,Franklin,Illinois,17055,11,0 +2020-05-16,Franklin,Illinois,17055,11,0 +2020-05-17,Franklin,Illinois,17055,11,0 +2020-05-18,Franklin,Illinois,17055,11,0 +2020-05-19,Franklin,Illinois,17055,11,0 +2020-05-20,Franklin,Illinois,17055,11,0 +2020-05-21,Franklin,Illinois,17055,11,0 +2020-05-22,Franklin,Illinois,17055,11,0 +2020-05-23,Franklin,Illinois,17055,11,0 +2020-05-24,Franklin,Illinois,17055,12,0 +2020-05-25,Franklin,Illinois,17055,12,0 +2020-05-26,Franklin,Illinois,17055,12,0 +2020-05-27,Franklin,Illinois,17055,12,0 +2020-05-28,Franklin,Illinois,17055,12,0 +2020-05-29,Franklin,Illinois,17055,12,0 +2020-05-30,Franklin,Illinois,17055,12,0 +2020-05-31,Franklin,Illinois,17055,12,0 +2020-06-01,Franklin,Illinois,17055,12,0 +2020-06-02,Franklin,Illinois,17055,12,0 +2020-06-03,Franklin,Illinois,17055,12,0 +2020-06-04,Franklin,Illinois,17055,12,0 +2020-06-05,Franklin,Illinois,17055,12,0 +2020-06-06,Franklin,Illinois,17055,12,0 +2020-06-07,Franklin,Illinois,17055,12,0 +2020-06-08,Franklin,Illinois,17055,12,0 +2020-06-09,Franklin,Illinois,17055,12,0 +2020-06-10,Franklin,Illinois,17055,12,0 +2020-06-11,Franklin,Illinois,17055,12,0 +2020-06-12,Franklin,Illinois,17055,12,0 +2020-06-13,Franklin,Illinois,17055,12,0 +2020-06-14,Franklin,Illinois,17055,12,0 +2020-06-15,Franklin,Illinois,17055,12,0 +2020-06-16,Franklin,Illinois,17055,12,0 +2020-06-17,Franklin,Illinois,17055,12,0 +2020-06-18,Franklin,Illinois,17055,12,0 +2020-06-19,Franklin,Illinois,17055,12,0 +2020-06-20,Franklin,Illinois,17055,12,0 +2020-06-21,Franklin,Illinois,17055,12,0 +2020-06-22,Franklin,Illinois,17055,12,0 +2020-06-23,Franklin,Illinois,17055,12,0 +2020-06-24,Franklin,Illinois,17055,12,0 +2020-06-25,Franklin,Illinois,17055,13,0 +2020-06-26,Franklin,Illinois,17055,13,0 +2020-06-27,Franklin,Illinois,17055,13,0 +2020-06-28,Franklin,Illinois,17055,13,0 +2020-06-29,Franklin,Illinois,17055,14,0 +2020-06-30,Franklin,Illinois,17055,14,0 +2020-07-01,Franklin,Illinois,17055,22,0 +2020-07-02,Franklin,Illinois,17055,27,0 +2020-07-03,Franklin,Illinois,17055,27,0 +2020-07-04,Franklin,Illinois,17055,28,0 +2020-07-05,Franklin,Illinois,17055,29,0 +2020-07-06,Franklin,Illinois,17055,31,0 +2020-07-07,Franklin,Illinois,17055,34,0 +2020-07-08,Franklin,Illinois,17055,36,0 +2020-07-09,Franklin,Illinois,17055,40,0 +2020-04-10,Fulton,Illinois,17057,2,0 +2020-04-11,Fulton,Illinois,17057,1,0 +2020-04-12,Fulton,Illinois,17057,1,0 +2020-04-13,Fulton,Illinois,17057,1,0 +2020-04-14,Fulton,Illinois,17057,1,0 +2020-04-15,Fulton,Illinois,17057,1,0 +2020-04-16,Fulton,Illinois,17057,1,0 +2020-04-17,Fulton,Illinois,17057,1,0 +2020-04-18,Fulton,Illinois,17057,1,0 +2020-04-19,Fulton,Illinois,17057,1,0 +2020-04-20,Fulton,Illinois,17057,1,0 +2020-04-21,Fulton,Illinois,17057,1,0 +2020-04-22,Fulton,Illinois,17057,1,0 +2020-04-23,Fulton,Illinois,17057,1,0 +2020-04-24,Fulton,Illinois,17057,3,0 +2020-04-25,Fulton,Illinois,17057,2,0 +2020-04-26,Fulton,Illinois,17057,3,0 +2020-04-27,Fulton,Illinois,17057,3,0 +2020-04-28,Fulton,Illinois,17057,3,0 +2020-04-29,Fulton,Illinois,17057,3,0 +2020-04-30,Fulton,Illinois,17057,3,0 +2020-05-01,Fulton,Illinois,17057,3,0 +2020-05-02,Fulton,Illinois,17057,3,0 +2020-05-03,Fulton,Illinois,17057,3,0 +2020-05-04,Fulton,Illinois,17057,4,1 +2020-05-05,Fulton,Illinois,17057,3,1 +2020-05-06,Fulton,Illinois,17057,3,0 +2020-05-07,Fulton,Illinois,17057,3,0 +2020-05-08,Fulton,Illinois,17057,3,0 +2020-05-09,Fulton,Illinois,17057,3,0 +2020-05-10,Fulton,Illinois,17057,3,0 +2020-05-11,Fulton,Illinois,17057,3,0 +2020-05-12,Fulton,Illinois,17057,3,0 +2020-05-13,Fulton,Illinois,17057,4,0 +2020-05-14,Fulton,Illinois,17057,6,0 +2020-05-15,Fulton,Illinois,17057,6,0 +2020-05-16,Fulton,Illinois,17057,7,0 +2020-05-17,Fulton,Illinois,17057,8,0 +2020-05-18,Fulton,Illinois,17057,8,0 +2020-05-19,Fulton,Illinois,17057,10,0 +2020-05-20,Fulton,Illinois,17057,10,0 +2020-05-21,Fulton,Illinois,17057,10,0 +2020-05-22,Fulton,Illinois,17057,10,0 +2020-05-23,Fulton,Illinois,17057,10,0 +2020-05-24,Fulton,Illinois,17057,11,0 +2020-05-25,Fulton,Illinois,17057,11,0 +2020-05-26,Fulton,Illinois,17057,11,0 +2020-05-27,Fulton,Illinois,17057,11,0 +2020-05-28,Fulton,Illinois,17057,11,0 +2020-05-29,Fulton,Illinois,17057,11,0 +2020-05-30,Fulton,Illinois,17057,11,0 +2020-05-31,Fulton,Illinois,17057,11,0 +2020-06-01,Fulton,Illinois,17057,11,0 +2020-06-02,Fulton,Illinois,17057,12,0 +2020-06-03,Fulton,Illinois,17057,12,0 +2020-06-04,Fulton,Illinois,17057,12,0 +2020-06-05,Fulton,Illinois,17057,12,0 +2020-06-06,Fulton,Illinois,17057,12,0 +2020-06-07,Fulton,Illinois,17057,12,0 +2020-06-08,Fulton,Illinois,17057,12,0 +2020-06-09,Fulton,Illinois,17057,12,0 +2020-06-10,Fulton,Illinois,17057,12,0 +2020-06-11,Fulton,Illinois,17057,12,0 +2020-06-12,Fulton,Illinois,17057,12,0 +2020-06-13,Fulton,Illinois,17057,12,0 +2020-06-14,Fulton,Illinois,17057,12,0 +2020-06-15,Fulton,Illinois,17057,12,0 +2020-06-16,Fulton,Illinois,17057,12,0 +2020-06-17,Fulton,Illinois,17057,11,0 +2020-06-18,Fulton,Illinois,17057,12,0 +2020-06-19,Fulton,Illinois,17057,12,0 +2020-06-20,Fulton,Illinois,17057,12,0 +2020-06-21,Fulton,Illinois,17057,12,0 +2020-06-22,Fulton,Illinois,17057,12,0 +2020-06-23,Fulton,Illinois,17057,13,0 +2020-06-24,Fulton,Illinois,17057,15,0 +2020-06-25,Fulton,Illinois,17057,15,0 +2020-06-26,Fulton,Illinois,17057,15,0 +2020-06-27,Fulton,Illinois,17057,15,0 +2020-06-28,Fulton,Illinois,17057,15,0 +2020-06-29,Fulton,Illinois,17057,15,0 +2020-06-30,Fulton,Illinois,17057,15,0 +2020-07-01,Fulton,Illinois,17057,15,0 +2020-07-02,Fulton,Illinois,17057,15,0 +2020-07-03,Fulton,Illinois,17057,15,0 +2020-07-04,Fulton,Illinois,17057,15,0 +2020-07-05,Fulton,Illinois,17057,16,0 +2020-07-06,Fulton,Illinois,17057,15,0 +2020-07-07,Fulton,Illinois,17057,15,0 +2020-07-08,Fulton,Illinois,17057,16,0 +2020-07-09,Fulton,Illinois,17057,16,0 +2020-04-05,Gallatin,Illinois,17059,1,0 +2020-04-06,Gallatin,Illinois,17059,1,0 +2020-04-07,Gallatin,Illinois,17059,1,0 +2020-04-08,Gallatin,Illinois,17059,1,0 +2020-04-09,Gallatin,Illinois,17059,1,0 +2020-04-10,Gallatin,Illinois,17059,1,0 +2020-04-11,Gallatin,Illinois,17059,1,0 +2020-04-12,Gallatin,Illinois,17059,1,0 +2020-04-13,Gallatin,Illinois,17059,1,0 +2020-04-14,Gallatin,Illinois,17059,2,0 +2020-04-15,Gallatin,Illinois,17059,2,0 +2020-04-16,Gallatin,Illinois,17059,2,0 +2020-04-17,Gallatin,Illinois,17059,2,0 +2020-04-18,Gallatin,Illinois,17059,2,0 +2020-04-19,Gallatin,Illinois,17059,2,0 +2020-04-20,Gallatin,Illinois,17059,2,0 +2020-04-21,Gallatin,Illinois,17059,2,0 +2020-04-22,Gallatin,Illinois,17059,2,0 +2020-04-23,Gallatin,Illinois,17059,2,0 +2020-04-24,Gallatin,Illinois,17059,2,0 +2020-04-25,Gallatin,Illinois,17059,2,0 +2020-04-26,Gallatin,Illinois,17059,2,0 +2020-04-27,Gallatin,Illinois,17059,2,0 +2020-04-28,Gallatin,Illinois,17059,2,0 +2020-04-29,Gallatin,Illinois,17059,2,0 +2020-04-30,Gallatin,Illinois,17059,2,0 +2020-05-01,Gallatin,Illinois,17059,2,0 +2020-05-02,Gallatin,Illinois,17059,2,0 +2020-05-03,Gallatin,Illinois,17059,2,0 +2020-05-04,Gallatin,Illinois,17059,2,0 +2020-05-05,Gallatin,Illinois,17059,2,0 +2020-05-06,Gallatin,Illinois,17059,2,0 +2020-05-07,Gallatin,Illinois,17059,2,0 +2020-05-08,Gallatin,Illinois,17059,2,0 +2020-05-09,Gallatin,Illinois,17059,2,0 +2020-05-10,Gallatin,Illinois,17059,2,0 +2020-05-11,Gallatin,Illinois,17059,2,0 +2020-05-12,Gallatin,Illinois,17059,2,0 +2020-05-13,Gallatin,Illinois,17059,2,0 +2020-05-14,Gallatin,Illinois,17059,2,0 +2020-05-15,Gallatin,Illinois,17059,2,0 +2020-05-16,Gallatin,Illinois,17059,2,0 +2020-05-17,Gallatin,Illinois,17059,2,0 +2020-05-18,Gallatin,Illinois,17059,2,0 +2020-05-19,Gallatin,Illinois,17059,2,0 +2020-05-20,Gallatin,Illinois,17059,2,0 +2020-05-21,Gallatin,Illinois,17059,2,0 +2020-05-22,Gallatin,Illinois,17059,2,0 +2020-05-23,Gallatin,Illinois,17059,2,0 +2020-05-24,Gallatin,Illinois,17059,2,0 +2020-05-25,Gallatin,Illinois,17059,2,0 +2020-05-26,Gallatin,Illinois,17059,2,0 +2020-05-27,Gallatin,Illinois,17059,2,0 +2020-05-28,Gallatin,Illinois,17059,2,0 +2020-05-29,Gallatin,Illinois,17059,2,0 +2020-05-30,Gallatin,Illinois,17059,2,0 +2020-05-31,Gallatin,Illinois,17059,2,0 +2020-06-01,Gallatin,Illinois,17059,2,0 +2020-06-02,Gallatin,Illinois,17059,2,0 +2020-06-03,Gallatin,Illinois,17059,2,0 +2020-06-04,Gallatin,Illinois,17059,2,0 +2020-06-05,Gallatin,Illinois,17059,2,0 +2020-06-06,Gallatin,Illinois,17059,2,0 +2020-06-07,Gallatin,Illinois,17059,2,0 +2020-06-08,Gallatin,Illinois,17059,2,0 +2020-06-09,Gallatin,Illinois,17059,2,0 +2020-06-10,Gallatin,Illinois,17059,2,0 +2020-06-11,Gallatin,Illinois,17059,2,0 +2020-06-12,Gallatin,Illinois,17059,2,0 +2020-06-13,Gallatin,Illinois,17059,2,0 +2020-06-14,Gallatin,Illinois,17059,2,0 +2020-06-15,Gallatin,Illinois,17059,2,0 +2020-06-16,Gallatin,Illinois,17059,2,0 +2020-06-17,Gallatin,Illinois,17059,2,0 +2020-06-18,Gallatin,Illinois,17059,2,0 +2020-06-19,Gallatin,Illinois,17059,2,0 +2020-06-20,Gallatin,Illinois,17059,2,0 +2020-06-21,Gallatin,Illinois,17059,2,0 +2020-06-22,Gallatin,Illinois,17059,2,0 +2020-06-23,Gallatin,Illinois,17059,2,0 +2020-06-24,Gallatin,Illinois,17059,2,0 +2020-06-25,Gallatin,Illinois,17059,2,0 +2020-06-26,Gallatin,Illinois,17059,2,0 +2020-06-27,Gallatin,Illinois,17059,2,0 +2020-06-28,Gallatin,Illinois,17059,2,0 +2020-06-29,Gallatin,Illinois,17059,2,0 +2020-06-30,Gallatin,Illinois,17059,2,0 +2020-07-01,Gallatin,Illinois,17059,2,0 +2020-07-02,Gallatin,Illinois,17059,2,0 +2020-07-03,Gallatin,Illinois,17059,2,0 +2020-07-04,Gallatin,Illinois,17059,2,0 +2020-07-05,Gallatin,Illinois,17059,2,0 +2020-07-06,Gallatin,Illinois,17059,3,0 +2020-07-07,Gallatin,Illinois,17059,4,0 +2020-07-08,Gallatin,Illinois,17059,4,0 +2020-07-09,Gallatin,Illinois,17059,4,0 +2020-04-10,Greene,Illinois,17061,2,0 +2020-04-11,Greene,Illinois,17061,1,0 +2020-04-12,Greene,Illinois,17061,1,0 +2020-04-13,Greene,Illinois,17061,1,0 +2020-04-14,Greene,Illinois,17061,1,0 +2020-04-15,Greene,Illinois,17061,1,0 +2020-04-16,Greene,Illinois,17061,1,0 +2020-04-17,Greene,Illinois,17061,1,0 +2020-04-18,Greene,Illinois,17061,1,0 +2020-04-19,Greene,Illinois,17061,1,0 +2020-04-20,Greene,Illinois,17061,1,0 +2020-04-21,Greene,Illinois,17061,1,0 +2020-04-22,Greene,Illinois,17061,2,0 +2020-04-23,Greene,Illinois,17061,2,0 +2020-04-24,Greene,Illinois,17061,2,0 +2020-04-25,Greene,Illinois,17061,2,0 +2020-04-26,Greene,Illinois,17061,2,0 +2020-04-27,Greene,Illinois,17061,2,0 +2020-04-28,Greene,Illinois,17061,3,0 +2020-04-29,Greene,Illinois,17061,3,0 +2020-04-30,Greene,Illinois,17061,3,0 +2020-05-01,Greene,Illinois,17061,3,0 +2020-05-02,Greene,Illinois,17061,3,0 +2020-05-03,Greene,Illinois,17061,3,0 +2020-05-04,Greene,Illinois,17061,3,0 +2020-05-05,Greene,Illinois,17061,3,0 +2020-05-06,Greene,Illinois,17061,3,0 +2020-05-07,Greene,Illinois,17061,3,0 +2020-05-08,Greene,Illinois,17061,4,0 +2020-05-09,Greene,Illinois,17061,4,0 +2020-05-10,Greene,Illinois,17061,4,0 +2020-05-11,Greene,Illinois,17061,4,0 +2020-05-12,Greene,Illinois,17061,4,0 +2020-05-13,Greene,Illinois,17061,4,0 +2020-05-14,Greene,Illinois,17061,4,0 +2020-05-15,Greene,Illinois,17061,4,0 +2020-05-16,Greene,Illinois,17061,4,0 +2020-05-17,Greene,Illinois,17061,4,0 +2020-05-18,Greene,Illinois,17061,4,0 +2020-05-19,Greene,Illinois,17061,4,0 +2020-05-20,Greene,Illinois,17061,5,0 +2020-05-21,Greene,Illinois,17061,5,0 +2020-05-22,Greene,Illinois,17061,5,0 +2020-05-23,Greene,Illinois,17061,5,0 +2020-05-24,Greene,Illinois,17061,5,0 +2020-05-25,Greene,Illinois,17061,5,0 +2020-05-26,Greene,Illinois,17061,5,0 +2020-05-27,Greene,Illinois,17061,5,0 +2020-05-28,Greene,Illinois,17061,5,0 +2020-05-29,Greene,Illinois,17061,5,0 +2020-05-30,Greene,Illinois,17061,5,0 +2020-05-31,Greene,Illinois,17061,5,0 +2020-06-01,Greene,Illinois,17061,5,0 +2020-06-02,Greene,Illinois,17061,5,0 +2020-06-03,Greene,Illinois,17061,6,0 +2020-06-04,Greene,Illinois,17061,6,0 +2020-06-05,Greene,Illinois,17061,6,0 +2020-06-06,Greene,Illinois,17061,6,0 +2020-06-07,Greene,Illinois,17061,6,0 +2020-06-08,Greene,Illinois,17061,6,0 +2020-06-09,Greene,Illinois,17061,7,0 +2020-06-10,Greene,Illinois,17061,7,0 +2020-06-11,Greene,Illinois,17061,7,0 +2020-06-12,Greene,Illinois,17061,7,0 +2020-06-13,Greene,Illinois,17061,7,0 +2020-06-14,Greene,Illinois,17061,7,0 +2020-06-15,Greene,Illinois,17061,7,0 +2020-06-16,Greene,Illinois,17061,8,0 +2020-06-17,Greene,Illinois,17061,8,0 +2020-06-18,Greene,Illinois,17061,8,0 +2020-06-19,Greene,Illinois,17061,8,0 +2020-06-20,Greene,Illinois,17061,8,0 +2020-06-21,Greene,Illinois,17061,8,0 +2020-06-22,Greene,Illinois,17061,8,0 +2020-06-23,Greene,Illinois,17061,9,0 +2020-06-24,Greene,Illinois,17061,9,0 +2020-06-25,Greene,Illinois,17061,9,0 +2020-06-26,Greene,Illinois,17061,9,0 +2020-06-27,Greene,Illinois,17061,9,0 +2020-06-28,Greene,Illinois,17061,9,0 +2020-06-29,Greene,Illinois,17061,9,0 +2020-06-30,Greene,Illinois,17061,9,0 +2020-07-01,Greene,Illinois,17061,9,0 +2020-07-02,Greene,Illinois,17061,9,0 +2020-07-03,Greene,Illinois,17061,9,0 +2020-07-04,Greene,Illinois,17061,9,0 +2020-07-05,Greene,Illinois,17061,9,0 +2020-07-06,Greene,Illinois,17061,9,0 +2020-07-07,Greene,Illinois,17061,8,0 +2020-07-08,Greene,Illinois,17061,8,0 +2020-07-09,Greene,Illinois,17061,8,0 +2020-03-24,Grundy,Illinois,17063,1,0 +2020-03-25,Grundy,Illinois,17063,1,0 +2020-03-26,Grundy,Illinois,17063,2,0 +2020-03-27,Grundy,Illinois,17063,2,0 +2020-03-28,Grundy,Illinois,17063,2,0 +2020-03-29,Grundy,Illinois,17063,3,0 +2020-03-30,Grundy,Illinois,17063,3,0 +2020-03-31,Grundy,Illinois,17063,4,0 +2020-04-01,Grundy,Illinois,17063,4,0 +2020-04-02,Grundy,Illinois,17063,5,0 +2020-04-03,Grundy,Illinois,17063,7,0 +2020-04-04,Grundy,Illinois,17063,9,0 +2020-04-05,Grundy,Illinois,17063,9,0 +2020-04-06,Grundy,Illinois,17063,9,0 +2020-04-07,Grundy,Illinois,17063,10,0 +2020-04-08,Grundy,Illinois,17063,12,0 +2020-04-09,Grundy,Illinois,17063,13,0 +2020-04-10,Grundy,Illinois,17063,15,0 +2020-04-11,Grundy,Illinois,17063,17,0 +2020-04-12,Grundy,Illinois,17063,21,0 +2020-04-13,Grundy,Illinois,17063,21,0 +2020-04-14,Grundy,Illinois,17063,24,0 +2020-04-15,Grundy,Illinois,17063,24,0 +2020-04-16,Grundy,Illinois,17063,24,0 +2020-04-17,Grundy,Illinois,17063,24,0 +2020-04-18,Grundy,Illinois,17063,26,0 +2020-04-19,Grundy,Illinois,17063,26,0 +2020-04-20,Grundy,Illinois,17063,26,0 +2020-04-21,Grundy,Illinois,17063,26,0 +2020-04-22,Grundy,Illinois,17063,26,0 +2020-04-23,Grundy,Illinois,17063,26,0 +2020-04-24,Grundy,Illinois,17063,28,0 +2020-04-25,Grundy,Illinois,17063,28,0 +2020-04-26,Grundy,Illinois,17063,30,0 +2020-04-27,Grundy,Illinois,17063,30,0 +2020-04-28,Grundy,Illinois,17063,30,0 +2020-04-29,Grundy,Illinois,17063,32,0 +2020-04-30,Grundy,Illinois,17063,35,0 +2020-05-01,Grundy,Illinois,17063,37,0 +2020-05-02,Grundy,Illinois,17063,41,0 +2020-05-03,Grundy,Illinois,17063,43,0 +2020-05-04,Grundy,Illinois,17063,46,0 +2020-05-05,Grundy,Illinois,17063,47,0 +2020-05-06,Grundy,Illinois,17063,48,0 +2020-05-07,Grundy,Illinois,17063,50,0 +2020-05-08,Grundy,Illinois,17063,55,1 +2020-05-09,Grundy,Illinois,17063,58,1 +2020-05-10,Grundy,Illinois,17063,58,1 +2020-05-11,Grundy,Illinois,17063,60,1 +2020-05-12,Grundy,Illinois,17063,61,1 +2020-05-13,Grundy,Illinois,17063,62,1 +2020-05-14,Grundy,Illinois,17063,65,1 +2020-05-15,Grundy,Illinois,17063,73,1 +2020-05-16,Grundy,Illinois,17063,73,1 +2020-05-17,Grundy,Illinois,17063,74,1 +2020-05-18,Grundy,Illinois,17063,75,1 +2020-05-19,Grundy,Illinois,17063,80,1 +2020-05-20,Grundy,Illinois,17063,83,2 +2020-05-21,Grundy,Illinois,17063,82,2 +2020-05-22,Grundy,Illinois,17063,84,2 +2020-05-23,Grundy,Illinois,17063,87,2 +2020-05-24,Grundy,Illinois,17063,89,2 +2020-05-25,Grundy,Illinois,17063,89,2 +2020-05-26,Grundy,Illinois,17063,89,2 +2020-05-27,Grundy,Illinois,17063,88,2 +2020-05-28,Grundy,Illinois,17063,95,2 +2020-05-29,Grundy,Illinois,17063,95,2 +2020-05-30,Grundy,Illinois,17063,98,2 +2020-05-31,Grundy,Illinois,17063,98,2 +2020-06-01,Grundy,Illinois,17063,99,2 +2020-06-02,Grundy,Illinois,17063,101,2 +2020-06-03,Grundy,Illinois,17063,104,2 +2020-06-04,Grundy,Illinois,17063,107,2 +2020-06-05,Grundy,Illinois,17063,111,2 +2020-06-06,Grundy,Illinois,17063,113,2 +2020-06-07,Grundy,Illinois,17063,114,2 +2020-06-08,Grundy,Illinois,17063,124,2 +2020-06-09,Grundy,Illinois,17063,124,2 +2020-06-10,Grundy,Illinois,17063,125,2 +2020-06-11,Grundy,Illinois,17063,126,2 +2020-06-12,Grundy,Illinois,17063,128,2 +2020-06-13,Grundy,Illinois,17063,129,2 +2020-06-14,Grundy,Illinois,17063,129,2 +2020-06-15,Grundy,Illinois,17063,129,2 +2020-06-16,Grundy,Illinois,17063,129,2 +2020-06-17,Grundy,Illinois,17063,133,2 +2020-06-18,Grundy,Illinois,17063,139,3 +2020-06-19,Grundy,Illinois,17063,140,3 +2020-06-20,Grundy,Illinois,17063,141,3 +2020-06-21,Grundy,Illinois,17063,142,3 +2020-06-22,Grundy,Illinois,17063,142,3 +2020-06-23,Grundy,Illinois,17063,143,3 +2020-06-24,Grundy,Illinois,17063,144,4 +2020-06-25,Grundy,Illinois,17063,145,4 +2020-06-26,Grundy,Illinois,17063,151,4 +2020-06-27,Grundy,Illinois,17063,160,4 +2020-06-28,Grundy,Illinois,17063,160,4 +2020-06-29,Grundy,Illinois,17063,160,4 +2020-06-30,Grundy,Illinois,17063,162,4 +2020-07-01,Grundy,Illinois,17063,167,4 +2020-07-02,Grundy,Illinois,17063,167,4 +2020-07-03,Grundy,Illinois,17063,169,5 +2020-07-04,Grundy,Illinois,17063,171,5 +2020-07-05,Grundy,Illinois,17063,173,5 +2020-07-06,Grundy,Illinois,17063,177,5 +2020-07-07,Grundy,Illinois,17063,176,5 +2020-07-08,Grundy,Illinois,17063,185,5 +2020-07-09,Grundy,Illinois,17063,187,5 +2020-04-18,Hamilton,Illinois,17065,1,0 +2020-04-19,Hamilton,Illinois,17065,1,0 +2020-04-20,Hamilton,Illinois,17065,1,0 +2020-04-21,Hamilton,Illinois,17065,2,0 +2020-04-22,Hamilton,Illinois,17065,2,0 +2020-04-23,Hamilton,Illinois,17065,2,0 +2020-04-24,Hamilton,Illinois,17065,2,0 +2020-04-25,Hamilton,Illinois,17065,2,0 +2020-04-26,Hamilton,Illinois,17065,2,0 +2020-04-27,Hamilton,Illinois,17065,2,0 +2020-04-28,Hamilton,Illinois,17065,2,0 +2020-04-29,Hamilton,Illinois,17065,2,0 +2020-04-30,Hamilton,Illinois,17065,2,0 +2020-05-01,Hamilton,Illinois,17065,2,0 +2020-05-02,Hamilton,Illinois,17065,2,0 +2020-05-03,Hamilton,Illinois,17065,2,0 +2020-05-04,Hamilton,Illinois,17065,2,0 +2020-05-05,Hamilton,Illinois,17065,2,0 +2020-05-06,Hamilton,Illinois,17065,2,0 +2020-05-07,Hamilton,Illinois,17065,2,0 +2020-05-08,Hamilton,Illinois,17065,2,0 +2020-05-09,Hamilton,Illinois,17065,2,0 +2020-05-10,Hamilton,Illinois,17065,2,0 +2020-05-11,Hamilton,Illinois,17065,3,0 +2020-05-12,Hamilton,Illinois,17065,2,0 +2020-05-13,Hamilton,Illinois,17065,2,0 +2020-05-14,Hamilton,Illinois,17065,2,0 +2020-05-15,Hamilton,Illinois,17065,2,0 +2020-05-16,Hamilton,Illinois,17065,2,0 +2020-05-17,Hamilton,Illinois,17065,2,0 +2020-05-18,Hamilton,Illinois,17065,2,0 +2020-05-19,Hamilton,Illinois,17065,2,0 +2020-05-20,Hamilton,Illinois,17065,2,0 +2020-05-21,Hamilton,Illinois,17065,2,0 +2020-05-22,Hamilton,Illinois,17065,2,0 +2020-05-23,Hamilton,Illinois,17065,2,0 +2020-05-24,Hamilton,Illinois,17065,2,0 +2020-05-25,Hamilton,Illinois,17065,2,0 +2020-05-26,Hamilton,Illinois,17065,2,0 +2020-05-27,Hamilton,Illinois,17065,2,0 +2020-05-28,Hamilton,Illinois,17065,2,0 +2020-05-29,Hamilton,Illinois,17065,2,0 +2020-05-30,Hamilton,Illinois,17065,2,0 +2020-05-31,Hamilton,Illinois,17065,2,0 +2020-06-01,Hamilton,Illinois,17065,2,0 +2020-06-02,Hamilton,Illinois,17065,2,0 +2020-06-03,Hamilton,Illinois,17065,2,0 +2020-06-04,Hamilton,Illinois,17065,2,0 +2020-06-05,Hamilton,Illinois,17065,2,0 +2020-06-06,Hamilton,Illinois,17065,2,0 +2020-06-07,Hamilton,Illinois,17065,2,0 +2020-06-08,Hamilton,Illinois,17065,2,0 +2020-06-09,Hamilton,Illinois,17065,2,0 +2020-06-10,Hamilton,Illinois,17065,2,0 +2020-06-11,Hamilton,Illinois,17065,2,0 +2020-06-12,Hamilton,Illinois,17065,2,0 +2020-06-13,Hamilton,Illinois,17065,2,0 +2020-06-14,Hamilton,Illinois,17065,2,0 +2020-06-15,Hamilton,Illinois,17065,2,0 +2020-06-16,Hamilton,Illinois,17065,2,0 +2020-06-17,Hamilton,Illinois,17065,2,0 +2020-06-18,Hamilton,Illinois,17065,2,0 +2020-06-19,Hamilton,Illinois,17065,2,0 +2020-06-20,Hamilton,Illinois,17065,2,0 +2020-06-21,Hamilton,Illinois,17065,2,0 +2020-06-22,Hamilton,Illinois,17065,2,0 +2020-06-23,Hamilton,Illinois,17065,2,0 +2020-06-24,Hamilton,Illinois,17065,2,0 +2020-06-25,Hamilton,Illinois,17065,2,0 +2020-06-26,Hamilton,Illinois,17065,3,0 +2020-06-27,Hamilton,Illinois,17065,4,0 +2020-06-28,Hamilton,Illinois,17065,4,0 +2020-06-29,Hamilton,Illinois,17065,4,0 +2020-06-30,Hamilton,Illinois,17065,5,0 +2020-07-01,Hamilton,Illinois,17065,5,0 +2020-07-02,Hamilton,Illinois,17065,5,0 +2020-07-03,Hamilton,Illinois,17065,5,0 +2020-07-04,Hamilton,Illinois,17065,5,0 +2020-07-05,Hamilton,Illinois,17065,6,0 +2020-07-06,Hamilton,Illinois,17065,6,0 +2020-07-07,Hamilton,Illinois,17065,6,0 +2020-07-08,Hamilton,Illinois,17065,6,0 +2020-07-09,Hamilton,Illinois,17065,7,0 +2020-04-08,Hancock,Illinois,17067,1,0 +2020-04-09,Hancock,Illinois,17067,1,0 +2020-04-10,Hancock,Illinois,17067,1,0 +2020-04-11,Hancock,Illinois,17067,1,0 +2020-04-12,Hancock,Illinois,17067,1,0 +2020-04-13,Hancock,Illinois,17067,1,0 +2020-04-14,Hancock,Illinois,17067,1,0 +2020-04-15,Hancock,Illinois,17067,3,0 +2020-04-16,Hancock,Illinois,17067,3,0 +2020-04-17,Hancock,Illinois,17067,3,0 +2020-04-18,Hancock,Illinois,17067,3,0 +2020-04-19,Hancock,Illinois,17067,3,0 +2020-04-20,Hancock,Illinois,17067,3,0 +2020-04-21,Hancock,Illinois,17067,4,0 +2020-04-22,Hancock,Illinois,17067,4,0 +2020-04-23,Hancock,Illinois,17067,4,0 +2020-04-24,Hancock,Illinois,17067,4,0 +2020-04-25,Hancock,Illinois,17067,4,0 +2020-04-26,Hancock,Illinois,17067,4,0 +2020-04-27,Hancock,Illinois,17067,5,0 +2020-04-28,Hancock,Illinois,17067,5,0 +2020-04-29,Hancock,Illinois,17067,5,0 +2020-04-30,Hancock,Illinois,17067,6,0 +2020-05-01,Hancock,Illinois,17067,6,0 +2020-05-02,Hancock,Illinois,17067,8,0 +2020-05-03,Hancock,Illinois,17067,8,0 +2020-05-04,Hancock,Illinois,17067,9,0 +2020-05-05,Hancock,Illinois,17067,9,0 +2020-05-06,Hancock,Illinois,17067,10,0 +2020-05-07,Hancock,Illinois,17067,10,0 +2020-05-08,Hancock,Illinois,17067,11,0 +2020-05-09,Hancock,Illinois,17067,11,0 +2020-05-10,Hancock,Illinois,17067,12,0 +2020-05-11,Hancock,Illinois,17067,12,0 +2020-05-12,Hancock,Illinois,17067,12,0 +2020-05-13,Hancock,Illinois,17067,12,0 +2020-05-14,Hancock,Illinois,17067,12,0 +2020-05-15,Hancock,Illinois,17067,12,0 +2020-05-16,Hancock,Illinois,17067,12,0 +2020-05-17,Hancock,Illinois,17067,12,0 +2020-05-18,Hancock,Illinois,17067,13,0 +2020-05-19,Hancock,Illinois,17067,12,0 +2020-05-20,Hancock,Illinois,17067,12,0 +2020-05-21,Hancock,Illinois,17067,13,0 +2020-05-22,Hancock,Illinois,17067,13,0 +2020-05-23,Hancock,Illinois,17067,13,0 +2020-05-24,Hancock,Illinois,17067,13,0 +2020-05-25,Hancock,Illinois,17067,13,0 +2020-05-26,Hancock,Illinois,17067,15,0 +2020-05-27,Hancock,Illinois,17067,15,0 +2020-05-28,Hancock,Illinois,17067,16,0 +2020-05-29,Hancock,Illinois,17067,16,0 +2020-05-30,Hancock,Illinois,17067,17,0 +2020-05-31,Hancock,Illinois,17067,17,0 +2020-06-01,Hancock,Illinois,17067,17,0 +2020-06-02,Hancock,Illinois,17067,17,1 +2020-06-03,Hancock,Illinois,17067,17,1 +2020-06-04,Hancock,Illinois,17067,17,1 +2020-06-05,Hancock,Illinois,17067,17,1 +2020-06-06,Hancock,Illinois,17067,17,1 +2020-06-07,Hancock,Illinois,17067,17,1 +2020-06-08,Hancock,Illinois,17067,18,1 +2020-06-09,Hancock,Illinois,17067,18,1 +2020-06-10,Hancock,Illinois,17067,18,1 +2020-06-11,Hancock,Illinois,17067,18,1 +2020-06-12,Hancock,Illinois,17067,18,1 +2020-06-13,Hancock,Illinois,17067,18,1 +2020-06-14,Hancock,Illinois,17067,18,1 +2020-06-15,Hancock,Illinois,17067,18,1 +2020-06-16,Hancock,Illinois,17067,18,1 +2020-06-17,Hancock,Illinois,17067,18,1 +2020-06-18,Hancock,Illinois,17067,18,1 +2020-06-19,Hancock,Illinois,17067,18,1 +2020-06-20,Hancock,Illinois,17067,18,1 +2020-06-21,Hancock,Illinois,17067,18,1 +2020-06-22,Hancock,Illinois,17067,18,1 +2020-06-23,Hancock,Illinois,17067,18,1 +2020-06-24,Hancock,Illinois,17067,18,1 +2020-06-25,Hancock,Illinois,17067,18,1 +2020-06-26,Hancock,Illinois,17067,18,1 +2020-06-27,Hancock,Illinois,17067,18,1 +2020-06-28,Hancock,Illinois,17067,18,1 +2020-06-29,Hancock,Illinois,17067,18,1 +2020-06-30,Hancock,Illinois,17067,18,1 +2020-07-01,Hancock,Illinois,17067,19,1 +2020-07-02,Hancock,Illinois,17067,19,1 +2020-07-03,Hancock,Illinois,17067,19,1 +2020-07-04,Hancock,Illinois,17067,19,1 +2020-07-05,Hancock,Illinois,17067,19,1 +2020-07-06,Hancock,Illinois,17067,19,1 +2020-07-07,Hancock,Illinois,17067,19,1 +2020-07-08,Hancock,Illinois,17067,19,1 +2020-07-09,Hancock,Illinois,17067,19,1 +2020-04-21,Hardin,Illinois,17069,1,0 +2020-04-22,Hardin,Illinois,17069,1,0 +2020-04-23,Hardin,Illinois,17069,1,0 +2020-04-24,Hardin,Illinois,17069,1,0 +2020-04-25,Hardin,Illinois,17069,1,0 +2020-04-26,Hardin,Illinois,17069,1,0 +2020-04-27,Hardin,Illinois,17069,1,0 +2020-04-28,Hardin,Illinois,17069,1,0 +2020-04-29,Hardin,Illinois,17069,1,0 +2020-04-30,Hardin,Illinois,17069,1,0 +2020-05-01,Hardin,Illinois,17069,1,0 +2020-05-02,Hardin,Illinois,17069,1,0 +2020-05-03,Hardin,Illinois,17069,1,0 +2020-05-04,Hardin,Illinois,17069,1,0 +2020-05-05,Hardin,Illinois,17069,1,0 +2020-05-06,Hardin,Illinois,17069,1,0 +2020-05-07,Hardin,Illinois,17069,1,0 +2020-05-08,Hardin,Illinois,17069,1,0 +2020-05-09,Hardin,Illinois,17069,1,0 +2020-05-10,Hardin,Illinois,17069,1,0 +2020-05-11,Hardin,Illinois,17069,1,0 +2020-05-12,Hardin,Illinois,17069,1,0 +2020-05-13,Hardin,Illinois,17069,1,0 +2020-05-14,Hardin,Illinois,17069,1,0 +2020-05-15,Hardin,Illinois,17069,1,0 +2020-05-16,Hardin,Illinois,17069,1,0 +2020-05-17,Hardin,Illinois,17069,1,0 +2020-05-18,Hardin,Illinois,17069,1,0 +2020-05-19,Hardin,Illinois,17069,1,0 +2020-05-20,Hardin,Illinois,17069,1,0 +2020-05-21,Hardin,Illinois,17069,1,0 +2020-05-22,Hardin,Illinois,17069,1,0 +2020-05-23,Hardin,Illinois,17069,1,0 +2020-05-24,Hardin,Illinois,17069,1,0 +2020-05-25,Hardin,Illinois,17069,1,0 +2020-05-26,Hardin,Illinois,17069,1,0 +2020-05-27,Hardin,Illinois,17069,1,0 +2020-05-28,Hardin,Illinois,17069,1,0 +2020-05-29,Hardin,Illinois,17069,1,0 +2020-05-30,Hardin,Illinois,17069,1,0 +2020-05-31,Hardin,Illinois,17069,1,0 +2020-06-01,Hardin,Illinois,17069,1,0 +2020-06-02,Hardin,Illinois,17069,1,0 +2020-06-03,Hardin,Illinois,17069,1,0 +2020-06-04,Hardin,Illinois,17069,1,0 +2020-06-05,Hardin,Illinois,17069,1,0 +2020-06-06,Hardin,Illinois,17069,1,0 +2020-06-07,Hardin,Illinois,17069,1,0 +2020-06-08,Hardin,Illinois,17069,1,0 +2020-06-09,Hardin,Illinois,17069,1,0 +2020-06-10,Hardin,Illinois,17069,1,0 +2020-06-11,Hardin,Illinois,17069,1,0 +2020-06-12,Hardin,Illinois,17069,1,0 +2020-06-13,Hardin,Illinois,17069,1,0 +2020-06-14,Hardin,Illinois,17069,1,0 +2020-06-15,Hardin,Illinois,17069,1,0 +2020-06-16,Hardin,Illinois,17069,1,0 +2020-06-17,Hardin,Illinois,17069,1,0 +2020-06-18,Hardin,Illinois,17069,1,0 +2020-06-19,Hardin,Illinois,17069,1,0 +2020-06-20,Hardin,Illinois,17069,1,0 +2020-06-21,Hardin,Illinois,17069,1,0 +2020-06-22,Hardin,Illinois,17069,1,0 +2020-06-23,Hardin,Illinois,17069,1,0 +2020-06-24,Hardin,Illinois,17069,1,0 +2020-06-25,Hardin,Illinois,17069,1,0 +2020-06-26,Hardin,Illinois,17069,1,0 +2020-06-27,Hardin,Illinois,17069,1,0 +2020-06-28,Hardin,Illinois,17069,1,0 +2020-06-29,Hardin,Illinois,17069,1,0 +2020-06-30,Hardin,Illinois,17069,1,0 +2020-07-01,Hardin,Illinois,17069,1,0 +2020-07-02,Hardin,Illinois,17069,1,0 +2020-07-03,Hardin,Illinois,17069,1,0 +2020-07-04,Hardin,Illinois,17069,1,0 +2020-07-05,Hardin,Illinois,17069,1,0 +2020-07-06,Hardin,Illinois,17069,1,0 +2020-07-07,Hardin,Illinois,17069,1,0 +2020-07-08,Hardin,Illinois,17069,1,0 +2020-07-09,Hardin,Illinois,17069,1,0 +2020-04-17,Henderson,Illinois,17071,1,0 +2020-04-18,Henderson,Illinois,17071,2,0 +2020-04-19,Henderson,Illinois,17071,2,0 +2020-04-20,Henderson,Illinois,17071,2,0 +2020-04-21,Henderson,Illinois,17071,2,0 +2020-04-22,Henderson,Illinois,17071,2,0 +2020-04-23,Henderson,Illinois,17071,3,0 +2020-04-24,Henderson,Illinois,17071,4,0 +2020-04-25,Henderson,Illinois,17071,4,0 +2020-04-26,Henderson,Illinois,17071,4,0 +2020-04-27,Henderson,Illinois,17071,4,0 +2020-04-28,Henderson,Illinois,17071,4,0 +2020-04-29,Henderson,Illinois,17071,4,0 +2020-04-30,Henderson,Illinois,17071,4,0 +2020-05-01,Henderson,Illinois,17071,5,0 +2020-05-02,Henderson,Illinois,17071,5,0 +2020-05-03,Henderson,Illinois,17071,5,0 +2020-05-04,Henderson,Illinois,17071,4,0 +2020-05-05,Henderson,Illinois,17071,4,0 +2020-05-06,Henderson,Illinois,17071,5,0 +2020-05-07,Henderson,Illinois,17071,5,0 +2020-05-08,Henderson,Illinois,17071,6,0 +2020-05-09,Henderson,Illinois,17071,6,0 +2020-05-10,Henderson,Illinois,17071,6,0 +2020-05-11,Henderson,Illinois,17071,6,0 +2020-05-12,Henderson,Illinois,17071,7,0 +2020-05-13,Henderson,Illinois,17071,7,0 +2020-05-14,Henderson,Illinois,17071,7,0 +2020-05-15,Henderson,Illinois,17071,7,0 +2020-05-16,Henderson,Illinois,17071,8,0 +2020-05-17,Henderson,Illinois,17071,8,0 +2020-05-18,Henderson,Illinois,17071,8,0 +2020-05-19,Henderson,Illinois,17071,8,0 +2020-05-20,Henderson,Illinois,17071,8,0 +2020-05-21,Henderson,Illinois,17071,8,0 +2020-05-22,Henderson,Illinois,17071,8,0 +2020-05-23,Henderson,Illinois,17071,8,0 +2020-05-24,Henderson,Illinois,17071,8,0 +2020-05-25,Henderson,Illinois,17071,8,0 +2020-05-26,Henderson,Illinois,17071,8,0 +2020-05-27,Henderson,Illinois,17071,8,0 +2020-05-28,Henderson,Illinois,17071,8,0 +2020-05-29,Henderson,Illinois,17071,8,0 +2020-05-30,Henderson,Illinois,17071,8,0 +2020-05-31,Henderson,Illinois,17071,8,0 +2020-06-01,Henderson,Illinois,17071,8,0 +2020-06-02,Henderson,Illinois,17071,8,0 +2020-06-03,Henderson,Illinois,17071,8,0 +2020-06-04,Henderson,Illinois,17071,8,0 +2020-06-05,Henderson,Illinois,17071,8,0 +2020-06-06,Henderson,Illinois,17071,8,0 +2020-06-07,Henderson,Illinois,17071,8,0 +2020-06-08,Henderson,Illinois,17071,8,0 +2020-06-09,Henderson,Illinois,17071,8,0 +2020-06-10,Henderson,Illinois,17071,8,0 +2020-06-11,Henderson,Illinois,17071,8,0 +2020-06-12,Henderson,Illinois,17071,8,0 +2020-06-13,Henderson,Illinois,17071,8,0 +2020-06-14,Henderson,Illinois,17071,8,0 +2020-06-15,Henderson,Illinois,17071,8,0 +2020-06-16,Henderson,Illinois,17071,8,0 +2020-06-17,Henderson,Illinois,17071,8,0 +2020-06-18,Henderson,Illinois,17071,8,0 +2020-06-19,Henderson,Illinois,17071,8,0 +2020-06-20,Henderson,Illinois,17071,8,0 +2020-06-21,Henderson,Illinois,17071,8,0 +2020-06-22,Henderson,Illinois,17071,8,0 +2020-06-23,Henderson,Illinois,17071,8,0 +2020-06-24,Henderson,Illinois,17071,8,0 +2020-06-25,Henderson,Illinois,17071,8,0 +2020-06-26,Henderson,Illinois,17071,8,0 +2020-06-27,Henderson,Illinois,17071,8,0 +2020-06-28,Henderson,Illinois,17071,8,0 +2020-06-29,Henderson,Illinois,17071,8,0 +2020-06-30,Henderson,Illinois,17071,8,0 +2020-07-01,Henderson,Illinois,17071,8,0 +2020-07-02,Henderson,Illinois,17071,8,0 +2020-07-03,Henderson,Illinois,17071,8,0 +2020-07-04,Henderson,Illinois,17071,8,0 +2020-07-05,Henderson,Illinois,17071,8,0 +2020-07-06,Henderson,Illinois,17071,8,0 +2020-07-07,Henderson,Illinois,17071,8,0 +2020-07-08,Henderson,Illinois,17071,8,0 +2020-07-09,Henderson,Illinois,17071,8,0 +2020-03-27,Henry,Illinois,17073,1,0 +2020-03-28,Henry,Illinois,17073,2,0 +2020-03-29,Henry,Illinois,17073,2,0 +2020-03-30,Henry,Illinois,17073,2,0 +2020-03-31,Henry,Illinois,17073,2,0 +2020-04-01,Henry,Illinois,17073,3,0 +2020-04-02,Henry,Illinois,17073,4,0 +2020-04-03,Henry,Illinois,17073,7,0 +2020-04-04,Henry,Illinois,17073,7,0 +2020-04-05,Henry,Illinois,17073,8,0 +2020-04-06,Henry,Illinois,17073,10,0 +2020-04-07,Henry,Illinois,17073,13,0 +2020-04-08,Henry,Illinois,17073,16,0 +2020-04-09,Henry,Illinois,17073,18,0 +2020-04-10,Henry,Illinois,17073,21,0 +2020-04-11,Henry,Illinois,17073,22,0 +2020-04-12,Henry,Illinois,17073,22,0 +2020-04-13,Henry,Illinois,17073,23,0 +2020-04-14,Henry,Illinois,17073,23,0 +2020-04-15,Henry,Illinois,17073,25,0 +2020-04-16,Henry,Illinois,17073,25,0 +2020-04-17,Henry,Illinois,17073,28,0 +2020-04-18,Henry,Illinois,17073,30,0 +2020-04-19,Henry,Illinois,17073,30,0 +2020-04-20,Henry,Illinois,17073,30,0 +2020-04-21,Henry,Illinois,17073,31,0 +2020-04-22,Henry,Illinois,17073,32,0 +2020-04-23,Henry,Illinois,17073,33,0 +2020-04-24,Henry,Illinois,17073,36,0 +2020-04-25,Henry,Illinois,17073,36,0 +2020-04-26,Henry,Illinois,17073,36,0 +2020-04-27,Henry,Illinois,17073,36,0 +2020-04-28,Henry,Illinois,17073,38,0 +2020-04-29,Henry,Illinois,17073,39,0 +2020-04-30,Henry,Illinois,17073,45,0 +2020-05-01,Henry,Illinois,17073,49,0 +2020-05-02,Henry,Illinois,17073,50,0 +2020-05-03,Henry,Illinois,17073,50,0 +2020-05-04,Henry,Illinois,17073,53,0 +2020-05-05,Henry,Illinois,17073,53,0 +2020-05-06,Henry,Illinois,17073,54,0 +2020-05-07,Henry,Illinois,17073,55,0 +2020-05-08,Henry,Illinois,17073,59,0 +2020-05-09,Henry,Illinois,17073,58,0 +2020-05-10,Henry,Illinois,17073,58,0 +2020-05-11,Henry,Illinois,17073,58,0 +2020-05-12,Henry,Illinois,17073,60,0 +2020-05-13,Henry,Illinois,17073,61,0 +2020-05-14,Henry,Illinois,17073,62,0 +2020-05-15,Henry,Illinois,17073,64,0 +2020-05-16,Henry,Illinois,17073,64,0 +2020-05-17,Henry,Illinois,17073,64,0 +2020-05-18,Henry,Illinois,17073,65,0 +2020-05-19,Henry,Illinois,17073,65,0 +2020-05-20,Henry,Illinois,17073,64,0 +2020-05-21,Henry,Illinois,17073,65,0 +2020-05-22,Henry,Illinois,17073,65,0 +2020-05-23,Henry,Illinois,17073,66,0 +2020-05-24,Henry,Illinois,17073,66,0 +2020-05-25,Henry,Illinois,17073,67,0 +2020-05-26,Henry,Illinois,17073,67,0 +2020-05-27,Henry,Illinois,17073,67,0 +2020-05-28,Henry,Illinois,17073,67,0 +2020-05-29,Henry,Illinois,17073,68,0 +2020-05-30,Henry,Illinois,17073,69,0 +2020-05-31,Henry,Illinois,17073,69,0 +2020-06-01,Henry,Illinois,17073,69,0 +2020-06-02,Henry,Illinois,17073,69,0 +2020-06-03,Henry,Illinois,17073,70,0 +2020-06-04,Henry,Illinois,17073,70,0 +2020-06-05,Henry,Illinois,17073,70,0 +2020-06-06,Henry,Illinois,17073,70,0 +2020-06-07,Henry,Illinois,17073,70,0 +2020-06-08,Henry,Illinois,17073,71,0 +2020-06-09,Henry,Illinois,17073,71,0 +2020-06-10,Henry,Illinois,17073,71,0 +2020-06-11,Henry,Illinois,17073,72,0 +2020-06-12,Henry,Illinois,17073,72,1 +2020-06-13,Henry,Illinois,17073,72,1 +2020-06-14,Henry,Illinois,17073,72,1 +2020-06-15,Henry,Illinois,17073,72,1 +2020-06-16,Henry,Illinois,17073,72,1 +2020-06-17,Henry,Illinois,17073,71,1 +2020-06-18,Henry,Illinois,17073,72,1 +2020-06-19,Henry,Illinois,17073,73,1 +2020-06-20,Henry,Illinois,17073,74,1 +2020-06-21,Henry,Illinois,17073,74,1 +2020-06-22,Henry,Illinois,17073,75,1 +2020-06-23,Henry,Illinois,17073,76,1 +2020-06-24,Henry,Illinois,17073,77,1 +2020-06-25,Henry,Illinois,17073,78,1 +2020-06-26,Henry,Illinois,17073,78,1 +2020-06-27,Henry,Illinois,17073,79,1 +2020-06-28,Henry,Illinois,17073,83,1 +2020-06-29,Henry,Illinois,17073,86,1 +2020-06-30,Henry,Illinois,17073,84,1 +2020-07-01,Henry,Illinois,17073,88,1 +2020-07-02,Henry,Illinois,17073,90,1 +2020-07-03,Henry,Illinois,17073,93,1 +2020-07-04,Henry,Illinois,17073,95,1 +2020-07-05,Henry,Illinois,17073,96,1 +2020-07-06,Henry,Illinois,17073,98,1 +2020-07-07,Henry,Illinois,17073,98,1 +2020-07-08,Henry,Illinois,17073,103,1 +2020-07-09,Henry,Illinois,17073,103,1 +2020-03-27,Iroquois,Illinois,17075,1,0 +2020-03-28,Iroquois,Illinois,17075,2,0 +2020-03-29,Iroquois,Illinois,17075,2,0 +2020-03-30,Iroquois,Illinois,17075,2,0 +2020-03-31,Iroquois,Illinois,17075,2,0 +2020-04-01,Iroquois,Illinois,17075,2,0 +2020-04-02,Iroquois,Illinois,17075,2,0 +2020-04-03,Iroquois,Illinois,17075,4,0 +2020-04-04,Iroquois,Illinois,17075,4,0 +2020-04-05,Iroquois,Illinois,17075,5,0 +2020-04-06,Iroquois,Illinois,17075,6,0 +2020-04-07,Iroquois,Illinois,17075,7,0 +2020-04-08,Iroquois,Illinois,17075,7,0 +2020-04-09,Iroquois,Illinois,17075,7,0 +2020-04-10,Iroquois,Illinois,17075,7,0 +2020-04-11,Iroquois,Illinois,17075,8,0 +2020-04-12,Iroquois,Illinois,17075,9,0 +2020-04-13,Iroquois,Illinois,17075,9,0 +2020-04-14,Iroquois,Illinois,17075,9,0 +2020-04-15,Iroquois,Illinois,17075,11,0 +2020-04-16,Iroquois,Illinois,17075,11,0 +2020-04-17,Iroquois,Illinois,17075,12,0 +2020-04-18,Iroquois,Illinois,17075,12,0 +2020-04-19,Iroquois,Illinois,17075,13,0 +2020-04-20,Iroquois,Illinois,17075,13,0 +2020-04-21,Iroquois,Illinois,17075,14,0 +2020-04-22,Iroquois,Illinois,17075,14,0 +2020-04-23,Iroquois,Illinois,17075,14,0 +2020-04-24,Iroquois,Illinois,17075,15,0 +2020-04-25,Iroquois,Illinois,17075,16,0 +2020-04-26,Iroquois,Illinois,17075,18,0 +2020-04-27,Iroquois,Illinois,17075,18,0 +2020-04-28,Iroquois,Illinois,17075,20,0 +2020-04-29,Iroquois,Illinois,17075,25,0 +2020-04-30,Iroquois,Illinois,17075,27,0 +2020-05-01,Iroquois,Illinois,17075,31,0 +2020-05-02,Iroquois,Illinois,17075,37,0 +2020-05-03,Iroquois,Illinois,17075,38,0 +2020-05-04,Iroquois,Illinois,17075,42,1 +2020-05-05,Iroquois,Illinois,17075,47,1 +2020-05-06,Iroquois,Illinois,17075,62,1 +2020-05-07,Iroquois,Illinois,17075,77,1 +2020-05-08,Iroquois,Illinois,17075,84,1 +2020-05-09,Iroquois,Illinois,17075,89,2 +2020-05-10,Iroquois,Illinois,17075,96,2 +2020-05-11,Iroquois,Illinois,17075,98,2 +2020-05-12,Iroquois,Illinois,17075,99,3 +2020-05-13,Iroquois,Illinois,17075,101,3 +2020-05-14,Iroquois,Illinois,17075,107,3 +2020-05-15,Iroquois,Illinois,17075,111,3 +2020-05-16,Iroquois,Illinois,17075,114,3 +2020-05-17,Iroquois,Illinois,17075,117,3 +2020-05-18,Iroquois,Illinois,17075,118,3 +2020-05-19,Iroquois,Illinois,17075,119,4 +2020-05-20,Iroquois,Illinois,17075,119,4 +2020-05-21,Iroquois,Illinois,17075,120,4 +2020-05-22,Iroquois,Illinois,17075,124,4 +2020-05-23,Iroquois,Illinois,17075,128,4 +2020-05-24,Iroquois,Illinois,17075,130,4 +2020-05-25,Iroquois,Illinois,17075,130,4 +2020-05-26,Iroquois,Illinois,17075,131,4 +2020-05-27,Iroquois,Illinois,17075,131,4 +2020-05-28,Iroquois,Illinois,17075,131,4 +2020-05-29,Iroquois,Illinois,17075,131,4 +2020-05-30,Iroquois,Illinois,17075,131,4 +2020-05-31,Iroquois,Illinois,17075,132,4 +2020-06-01,Iroquois,Illinois,17075,132,4 +2020-06-02,Iroquois,Illinois,17075,132,4 +2020-06-03,Iroquois,Illinois,17075,133,4 +2020-06-04,Iroquois,Illinois,17075,133,4 +2020-06-05,Iroquois,Illinois,17075,135,5 +2020-06-06,Iroquois,Illinois,17075,135,5 +2020-06-07,Iroquois,Illinois,17075,135,5 +2020-06-08,Iroquois,Illinois,17075,136,5 +2020-06-09,Iroquois,Illinois,17075,137,5 +2020-06-10,Iroquois,Illinois,17075,136,5 +2020-06-11,Iroquois,Illinois,17075,136,5 +2020-06-12,Iroquois,Illinois,17075,136,5 +2020-06-13,Iroquois,Illinois,17075,137,5 +2020-06-14,Iroquois,Illinois,17075,137,5 +2020-06-15,Iroquois,Illinois,17075,138,5 +2020-06-16,Iroquois,Illinois,17075,139,5 +2020-06-17,Iroquois,Illinois,17075,142,5 +2020-06-18,Iroquois,Illinois,17075,142,5 +2020-06-19,Iroquois,Illinois,17075,143,5 +2020-06-20,Iroquois,Illinois,17075,143,5 +2020-06-21,Iroquois,Illinois,17075,143,5 +2020-06-22,Iroquois,Illinois,17075,143,5 +2020-06-23,Iroquois,Illinois,17075,143,5 +2020-06-24,Iroquois,Illinois,17075,144,5 +2020-06-25,Iroquois,Illinois,17075,149,5 +2020-06-26,Iroquois,Illinois,17075,155,5 +2020-06-27,Iroquois,Illinois,17075,156,5 +2020-06-28,Iroquois,Illinois,17075,156,5 +2020-06-29,Iroquois,Illinois,17075,157,5 +2020-06-30,Iroquois,Illinois,17075,157,5 +2020-07-01,Iroquois,Illinois,17075,157,5 +2020-07-02,Iroquois,Illinois,17075,159,5 +2020-07-03,Iroquois,Illinois,17075,160,5 +2020-07-04,Iroquois,Illinois,17075,161,5 +2020-07-05,Iroquois,Illinois,17075,162,5 +2020-07-06,Iroquois,Illinois,17075,164,5 +2020-07-07,Iroquois,Illinois,17075,167,5 +2020-07-08,Iroquois,Illinois,17075,168,5 +2020-07-09,Iroquois,Illinois,17075,170,5 +2020-03-18,Jackson,Illinois,17077,1,0 +2020-03-19,Jackson,Illinois,17077,1,0 +2020-03-20,Jackson,Illinois,17077,1,0 +2020-03-21,Jackson,Illinois,17077,1,0 +2020-03-22,Jackson,Illinois,17077,1,0 +2020-03-23,Jackson,Illinois,17077,1,0 +2020-03-24,Jackson,Illinois,17077,1,0 +2020-03-25,Jackson,Illinois,17077,1,0 +2020-03-26,Jackson,Illinois,17077,1,0 +2020-03-27,Jackson,Illinois,17077,1,0 +2020-03-28,Jackson,Illinois,17077,3,0 +2020-03-29,Jackson,Illinois,17077,3,0 +2020-03-30,Jackson,Illinois,17077,4,0 +2020-03-31,Jackson,Illinois,17077,4,0 +2020-04-01,Jackson,Illinois,17077,4,0 +2020-04-02,Jackson,Illinois,17077,6,0 +2020-04-03,Jackson,Illinois,17077,8,0 +2020-04-04,Jackson,Illinois,17077,10,1 +2020-04-05,Jackson,Illinois,17077,12,1 +2020-04-06,Jackson,Illinois,17077,16,1 +2020-04-07,Jackson,Illinois,17077,21,1 +2020-04-08,Jackson,Illinois,17077,22,1 +2020-04-09,Jackson,Illinois,17077,26,2 +2020-04-10,Jackson,Illinois,17077,27,2 +2020-04-11,Jackson,Illinois,17077,30,2 +2020-04-12,Jackson,Illinois,17077,34,3 +2020-04-13,Jackson,Illinois,17077,34,3 +2020-04-14,Jackson,Illinois,17077,35,4 +2020-04-15,Jackson,Illinois,17077,39,4 +2020-04-16,Jackson,Illinois,17077,39,4 +2020-04-17,Jackson,Illinois,17077,40,4 +2020-04-18,Jackson,Illinois,17077,42,4 +2020-04-19,Jackson,Illinois,17077,42,5 +2020-04-20,Jackson,Illinois,17077,44,5 +2020-04-21,Jackson,Illinois,17077,48,6 +2020-04-22,Jackson,Illinois,17077,50,6 +2020-04-23,Jackson,Illinois,17077,53,7 +2020-04-24,Jackson,Illinois,17077,56,7 +2020-04-25,Jackson,Illinois,17077,56,7 +2020-04-26,Jackson,Illinois,17077,67,7 +2020-04-27,Jackson,Illinois,17077,68,7 +2020-04-28,Jackson,Illinois,17077,75,7 +2020-04-29,Jackson,Illinois,17077,82,7 +2020-04-30,Jackson,Illinois,17077,107,7 +2020-05-01,Jackson,Illinois,17077,120,9 +2020-05-02,Jackson,Illinois,17077,125,9 +2020-05-03,Jackson,Illinois,17077,139,9 +2020-05-04,Jackson,Illinois,17077,140,9 +2020-05-05,Jackson,Illinois,17077,146,9 +2020-05-06,Jackson,Illinois,17077,154,9 +2020-05-07,Jackson,Illinois,17077,157,10 +2020-05-08,Jackson,Illinois,17077,161,10 +2020-05-09,Jackson,Illinois,17077,162,10 +2020-05-10,Jackson,Illinois,17077,167,10 +2020-05-11,Jackson,Illinois,17077,166,10 +2020-05-12,Jackson,Illinois,17077,167,10 +2020-05-13,Jackson,Illinois,17077,171,10 +2020-05-14,Jackson,Illinois,17077,175,10 +2020-05-15,Jackson,Illinois,17077,177,10 +2020-05-16,Jackson,Illinois,17077,181,10 +2020-05-17,Jackson,Illinois,17077,181,10 +2020-05-18,Jackson,Illinois,17077,181,10 +2020-05-19,Jackson,Illinois,17077,186,10 +2020-05-20,Jackson,Illinois,17077,187,10 +2020-05-21,Jackson,Illinois,17077,192,10 +2020-05-22,Jackson,Illinois,17077,197,10 +2020-05-23,Jackson,Illinois,17077,207,10 +2020-05-24,Jackson,Illinois,17077,219,10 +2020-05-25,Jackson,Illinois,17077,228,10 +2020-05-26,Jackson,Illinois,17077,228,10 +2020-05-27,Jackson,Illinois,17077,242,10 +2020-05-28,Jackson,Illinois,17077,256,10 +2020-05-29,Jackson,Illinois,17077,268,10 +2020-05-30,Jackson,Illinois,17077,282,10 +2020-05-31,Jackson,Illinois,17077,286,10 +2020-06-01,Jackson,Illinois,17077,289,10 +2020-06-02,Jackson,Illinois,17077,289,10 +2020-06-03,Jackson,Illinois,17077,293,10 +2020-06-04,Jackson,Illinois,17077,296,10 +2020-06-05,Jackson,Illinois,17077,300,10 +2020-06-06,Jackson,Illinois,17077,300,11 +2020-06-07,Jackson,Illinois,17077,301,11 +2020-06-08,Jackson,Illinois,17077,301,11 +2020-06-09,Jackson,Illinois,17077,304,11 +2020-06-10,Jackson,Illinois,17077,307,11 +2020-06-11,Jackson,Illinois,17077,307,12 +2020-06-12,Jackson,Illinois,17077,311,12 +2020-06-13,Jackson,Illinois,17077,313,13 +2020-06-14,Jackson,Illinois,17077,315,13 +2020-06-15,Jackson,Illinois,17077,317,13 +2020-06-16,Jackson,Illinois,17077,320,15 +2020-06-17,Jackson,Illinois,17077,321,18 +2020-06-18,Jackson,Illinois,17077,321,18 +2020-06-19,Jackson,Illinois,17077,321,18 +2020-06-20,Jackson,Illinois,17077,322,18 +2020-06-21,Jackson,Illinois,17077,323,18 +2020-06-22,Jackson,Illinois,17077,324,18 +2020-06-23,Jackson,Illinois,17077,325,18 +2020-06-24,Jackson,Illinois,17077,325,19 +2020-06-25,Jackson,Illinois,17077,328,19 +2020-06-26,Jackson,Illinois,17077,329,19 +2020-06-27,Jackson,Illinois,17077,329,19 +2020-06-28,Jackson,Illinois,17077,329,19 +2020-06-29,Jackson,Illinois,17077,329,19 +2020-06-30,Jackson,Illinois,17077,332,19 +2020-07-01,Jackson,Illinois,17077,332,19 +2020-07-02,Jackson,Illinois,17077,333,19 +2020-07-03,Jackson,Illinois,17077,335,19 +2020-07-04,Jackson,Illinois,17077,336,19 +2020-07-05,Jackson,Illinois,17077,339,19 +2020-07-06,Jackson,Illinois,17077,340,19 +2020-07-07,Jackson,Illinois,17077,340,19 +2020-07-08,Jackson,Illinois,17077,343,19 +2020-07-09,Jackson,Illinois,17077,345,19 +2020-04-04,Jasper,Illinois,17079,2,0 +2020-04-05,Jasper,Illinois,17079,3,0 +2020-04-06,Jasper,Illinois,17079,4,0 +2020-04-07,Jasper,Illinois,17079,3,0 +2020-04-08,Jasper,Illinois,17079,3,0 +2020-04-09,Jasper,Illinois,17079,3,0 +2020-04-10,Jasper,Illinois,17079,3,0 +2020-04-11,Jasper,Illinois,17079,3,0 +2020-04-12,Jasper,Illinois,17079,3,0 +2020-04-13,Jasper,Illinois,17079,3,1 +2020-04-14,Jasper,Illinois,17079,3,1 +2020-04-15,Jasper,Illinois,17079,3,1 +2020-04-16,Jasper,Illinois,17079,3,1 +2020-04-17,Jasper,Illinois,17079,4,1 +2020-04-18,Jasper,Illinois,17079,7,1 +2020-04-19,Jasper,Illinois,17079,20,1 +2020-04-20,Jasper,Illinois,17079,20,2 +2020-04-21,Jasper,Illinois,17079,36,2 +2020-04-22,Jasper,Illinois,17079,36,2 +2020-04-23,Jasper,Illinois,17079,40,2 +2020-04-24,Jasper,Illinois,17079,41,2 +2020-04-25,Jasper,Illinois,17079,42,2 +2020-04-26,Jasper,Illinois,17079,41,2 +2020-04-27,Jasper,Illinois,17079,42,3 +2020-04-28,Jasper,Illinois,17079,44,3 +2020-04-29,Jasper,Illinois,17079,44,4 +2020-04-30,Jasper,Illinois,17079,44,5 +2020-05-01,Jasper,Illinois,17079,44,5 +2020-05-02,Jasper,Illinois,17079,45,5 +2020-05-03,Jasper,Illinois,17079,45,5 +2020-05-04,Jasper,Illinois,17079,48,5 +2020-05-05,Jasper,Illinois,17079,48,5 +2020-05-06,Jasper,Illinois,17079,46,5 +2020-05-07,Jasper,Illinois,17079,46,5 +2020-05-08,Jasper,Illinois,17079,46,6 +2020-05-09,Jasper,Illinois,17079,46,6 +2020-05-10,Jasper,Illinois,17079,46,6 +2020-05-11,Jasper,Illinois,17079,46,6 +2020-05-12,Jasper,Illinois,17079,46,6 +2020-05-13,Jasper,Illinois,17079,45,7 +2020-05-14,Jasper,Illinois,17079,45,7 +2020-05-15,Jasper,Illinois,17079,45,7 +2020-05-16,Jasper,Illinois,17079,46,8 +2020-05-17,Jasper,Illinois,17079,45,7 +2020-05-18,Jasper,Illinois,17079,45,7 +2020-05-19,Jasper,Illinois,17079,45,7 +2020-05-20,Jasper,Illinois,17079,45,7 +2020-05-21,Jasper,Illinois,17079,45,7 +2020-05-22,Jasper,Illinois,17079,45,7 +2020-05-23,Jasper,Illinois,17079,45,7 +2020-05-24,Jasper,Illinois,17079,45,7 +2020-05-25,Jasper,Illinois,17079,45,7 +2020-05-26,Jasper,Illinois,17079,45,7 +2020-05-27,Jasper,Illinois,17079,45,7 +2020-05-28,Jasper,Illinois,17079,45,7 +2020-05-29,Jasper,Illinois,17079,45,7 +2020-05-30,Jasper,Illinois,17079,45,7 +2020-05-31,Jasper,Illinois,17079,45,7 +2020-06-01,Jasper,Illinois,17079,45,7 +2020-06-02,Jasper,Illinois,17079,46,7 +2020-06-03,Jasper,Illinois,17079,46,7 +2020-06-04,Jasper,Illinois,17079,46,7 +2020-06-05,Jasper,Illinois,17079,46,7 +2020-06-06,Jasper,Illinois,17079,46,7 +2020-06-07,Jasper,Illinois,17079,46,7 +2020-06-08,Jasper,Illinois,17079,46,7 +2020-06-09,Jasper,Illinois,17079,46,7 +2020-06-10,Jasper,Illinois,17079,46,7 +2020-06-11,Jasper,Illinois,17079,46,7 +2020-06-12,Jasper,Illinois,17079,46,7 +2020-06-13,Jasper,Illinois,17079,46,7 +2020-06-14,Jasper,Illinois,17079,46,7 +2020-06-15,Jasper,Illinois,17079,46,7 +2020-06-16,Jasper,Illinois,17079,46,7 +2020-06-17,Jasper,Illinois,17079,46,7 +2020-06-18,Jasper,Illinois,17079,46,7 +2020-06-19,Jasper,Illinois,17079,46,7 +2020-06-20,Jasper,Illinois,17079,46,7 +2020-06-21,Jasper,Illinois,17079,46,7 +2020-06-22,Jasper,Illinois,17079,46,7 +2020-06-23,Jasper,Illinois,17079,46,7 +2020-06-24,Jasper,Illinois,17079,46,7 +2020-06-25,Jasper,Illinois,17079,46,7 +2020-06-26,Jasper,Illinois,17079,46,7 +2020-06-27,Jasper,Illinois,17079,46,7 +2020-06-28,Jasper,Illinois,17079,46,7 +2020-06-29,Jasper,Illinois,17079,46,7 +2020-06-30,Jasper,Illinois,17079,46,7 +2020-07-01,Jasper,Illinois,17079,46,7 +2020-07-02,Jasper,Illinois,17079,46,7 +2020-07-03,Jasper,Illinois,17079,47,7 +2020-07-04,Jasper,Illinois,17079,47,7 +2020-07-05,Jasper,Illinois,17079,47,7 +2020-07-06,Jasper,Illinois,17079,47,7 +2020-07-07,Jasper,Illinois,17079,47,7 +2020-07-08,Jasper,Illinois,17079,47,7 +2020-07-09,Jasper,Illinois,17079,47,7 +2020-04-06,Jefferson,Illinois,17081,1,0 +2020-04-07,Jefferson,Illinois,17081,3,0 +2020-04-08,Jefferson,Illinois,17081,3,0 +2020-04-09,Jefferson,Illinois,17081,3,0 +2020-04-10,Jefferson,Illinois,17081,5,0 +2020-04-11,Jefferson,Illinois,17081,6,0 +2020-04-12,Jefferson,Illinois,17081,7,0 +2020-04-13,Jefferson,Illinois,17081,8,0 +2020-04-14,Jefferson,Illinois,17081,8,0 +2020-04-15,Jefferson,Illinois,17081,9,0 +2020-04-16,Jefferson,Illinois,17081,10,0 +2020-04-17,Jefferson,Illinois,17081,11,0 +2020-04-18,Jefferson,Illinois,17081,12,0 +2020-04-19,Jefferson,Illinois,17081,31,0 +2020-04-20,Jefferson,Illinois,17081,32,0 +2020-04-21,Jefferson,Illinois,17081,34,0 +2020-04-22,Jefferson,Illinois,17081,75,1 +2020-04-23,Jefferson,Illinois,17081,77,1 +2020-04-24,Jefferson,Illinois,17081,80,2 +2020-04-25,Jefferson,Illinois,17081,80,2 +2020-04-26,Jefferson,Illinois,17081,83,5 +2020-04-27,Jefferson,Illinois,17081,83,8 +2020-04-28,Jefferson,Illinois,17081,81,9 +2020-04-29,Jefferson,Illinois,17081,80,11 +2020-04-30,Jefferson,Illinois,17081,83,12 +2020-05-01,Jefferson,Illinois,17081,85,12 +2020-05-02,Jefferson,Illinois,17081,84,14 +2020-05-03,Jefferson,Illinois,17081,86,15 +2020-05-04,Jefferson,Illinois,17081,87,15 +2020-05-05,Jefferson,Illinois,17081,86,15 +2020-05-06,Jefferson,Illinois,17081,86,15 +2020-05-07,Jefferson,Illinois,17081,88,15 +2020-05-08,Jefferson,Illinois,17081,89,15 +2020-05-09,Jefferson,Illinois,17081,94,15 +2020-05-10,Jefferson,Illinois,17081,97,15 +2020-05-11,Jefferson,Illinois,17081,94,15 +2020-05-12,Jefferson,Illinois,17081,95,15 +2020-05-13,Jefferson,Illinois,17081,97,16 +2020-05-14,Jefferson,Illinois,17081,98,17 +2020-05-15,Jefferson,Illinois,17081,98,17 +2020-05-16,Jefferson,Illinois,17081,98,17 +2020-05-17,Jefferson,Illinois,17081,98,17 +2020-05-18,Jefferson,Illinois,17081,99,17 +2020-05-19,Jefferson,Illinois,17081,100,17 +2020-05-20,Jefferson,Illinois,17081,100,17 +2020-05-21,Jefferson,Illinois,17081,99,16 +2020-05-22,Jefferson,Illinois,17081,99,16 +2020-05-23,Jefferson,Illinois,17081,100,16 +2020-05-24,Jefferson,Illinois,17081,101,16 +2020-05-25,Jefferson,Illinois,17081,101,16 +2020-05-26,Jefferson,Illinois,17081,101,16 +2020-05-27,Jefferson,Illinois,17081,101,16 +2020-05-28,Jefferson,Illinois,17081,101,16 +2020-05-29,Jefferson,Illinois,17081,101,16 +2020-05-30,Jefferson,Illinois,17081,101,16 +2020-05-31,Jefferson,Illinois,17081,101,16 +2020-06-01,Jefferson,Illinois,17081,101,16 +2020-06-02,Jefferson,Illinois,17081,101,16 +2020-06-03,Jefferson,Illinois,17081,101,16 +2020-06-04,Jefferson,Illinois,17081,101,16 +2020-06-05,Jefferson,Illinois,17081,101,16 +2020-06-06,Jefferson,Illinois,17081,101,16 +2020-06-07,Jefferson,Illinois,17081,101,16 +2020-06-08,Jefferson,Illinois,17081,101,16 +2020-06-09,Jefferson,Illinois,17081,101,16 +2020-06-10,Jefferson,Illinois,17081,101,16 +2020-06-11,Jefferson,Illinois,17081,101,16 +2020-06-12,Jefferson,Illinois,17081,103,16 +2020-06-13,Jefferson,Illinois,17081,103,16 +2020-06-14,Jefferson,Illinois,17081,104,16 +2020-06-15,Jefferson,Illinois,17081,104,16 +2020-06-16,Jefferson,Illinois,17081,104,16 +2020-06-17,Jefferson,Illinois,17081,104,16 +2020-06-18,Jefferson,Illinois,17081,104,16 +2020-06-19,Jefferson,Illinois,17081,104,16 +2020-06-20,Jefferson,Illinois,17081,104,16 +2020-06-21,Jefferson,Illinois,17081,104,16 +2020-06-22,Jefferson,Illinois,17081,104,16 +2020-06-23,Jefferson,Illinois,17081,104,17 +2020-06-24,Jefferson,Illinois,17081,107,17 +2020-06-25,Jefferson,Illinois,17081,105,17 +2020-06-26,Jefferson,Illinois,17081,105,17 +2020-06-27,Jefferson,Illinois,17081,106,17 +2020-06-28,Jefferson,Illinois,17081,106,17 +2020-06-29,Jefferson,Illinois,17081,107,17 +2020-06-30,Jefferson,Illinois,17081,107,17 +2020-07-01,Jefferson,Illinois,17081,107,17 +2020-07-02,Jefferson,Illinois,17081,107,17 +2020-07-03,Jefferson,Illinois,17081,106,17 +2020-07-04,Jefferson,Illinois,17081,106,17 +2020-07-05,Jefferson,Illinois,17081,107,17 +2020-07-06,Jefferson,Illinois,17081,107,17 +2020-07-07,Jefferson,Illinois,17081,107,17 +2020-07-08,Jefferson,Illinois,17081,111,17 +2020-07-09,Jefferson,Illinois,17081,113,17 +2020-04-03,Jersey,Illinois,17083,1,0 +2020-04-04,Jersey,Illinois,17083,1,0 +2020-04-05,Jersey,Illinois,17083,2,0 +2020-04-06,Jersey,Illinois,17083,3,0 +2020-04-07,Jersey,Illinois,17083,4,0 +2020-04-08,Jersey,Illinois,17083,5,0 +2020-04-09,Jersey,Illinois,17083,5,0 +2020-04-10,Jersey,Illinois,17083,6,0 +2020-04-11,Jersey,Illinois,17083,6,0 +2020-04-12,Jersey,Illinois,17083,6,0 +2020-04-13,Jersey,Illinois,17083,6,0 +2020-04-14,Jersey,Illinois,17083,6,0 +2020-04-15,Jersey,Illinois,17083,8,0 +2020-04-16,Jersey,Illinois,17083,8,0 +2020-04-17,Jersey,Illinois,17083,8,0 +2020-04-18,Jersey,Illinois,17083,8,0 +2020-04-19,Jersey,Illinois,17083,8,0 +2020-04-20,Jersey,Illinois,17083,8,0 +2020-04-21,Jersey,Illinois,17083,10,0 +2020-04-22,Jersey,Illinois,17083,10,0 +2020-04-23,Jersey,Illinois,17083,11,0 +2020-04-24,Jersey,Illinois,17083,12,0 +2020-04-25,Jersey,Illinois,17083,12,1 +2020-04-26,Jersey,Illinois,17083,12,1 +2020-04-27,Jersey,Illinois,17083,12,1 +2020-04-28,Jersey,Illinois,17083,12,1 +2020-04-29,Jersey,Illinois,17083,12,1 +2020-04-30,Jersey,Illinois,17083,12,1 +2020-05-01,Jersey,Illinois,17083,12,1 +2020-05-02,Jersey,Illinois,17083,13,1 +2020-05-03,Jersey,Illinois,17083,13,1 +2020-05-04,Jersey,Illinois,17083,14,1 +2020-05-05,Jersey,Illinois,17083,14,1 +2020-05-06,Jersey,Illinois,17083,15,1 +2020-05-07,Jersey,Illinois,17083,16,1 +2020-05-08,Jersey,Illinois,17083,16,1 +2020-05-09,Jersey,Illinois,17083,16,1 +2020-05-10,Jersey,Illinois,17083,17,1 +2020-05-11,Jersey,Illinois,17083,17,1 +2020-05-12,Jersey,Illinois,17083,17,1 +2020-05-13,Jersey,Illinois,17083,17,1 +2020-05-14,Jersey,Illinois,17083,18,1 +2020-05-15,Jersey,Illinois,17083,18,1 +2020-05-16,Jersey,Illinois,17083,18,1 +2020-05-17,Jersey,Illinois,17083,18,1 +2020-05-18,Jersey,Illinois,17083,19,1 +2020-05-19,Jersey,Illinois,17083,19,1 +2020-05-20,Jersey,Illinois,17083,20,1 +2020-05-21,Jersey,Illinois,17083,20,1 +2020-05-22,Jersey,Illinois,17083,20,1 +2020-05-23,Jersey,Illinois,17083,20,1 +2020-05-24,Jersey,Illinois,17083,20,1 +2020-05-25,Jersey,Illinois,17083,20,1 +2020-05-26,Jersey,Illinois,17083,20,1 +2020-05-27,Jersey,Illinois,17083,20,1 +2020-05-28,Jersey,Illinois,17083,20,1 +2020-05-29,Jersey,Illinois,17083,20,1 +2020-05-30,Jersey,Illinois,17083,20,1 +2020-05-31,Jersey,Illinois,17083,24,1 +2020-06-01,Jersey,Illinois,17083,24,1 +2020-06-02,Jersey,Illinois,17083,24,1 +2020-06-03,Jersey,Illinois,17083,24,1 +2020-06-04,Jersey,Illinois,17083,24,1 +2020-06-05,Jersey,Illinois,17083,24,1 +2020-06-06,Jersey,Illinois,17083,24,1 +2020-06-07,Jersey,Illinois,17083,26,1 +2020-06-08,Jersey,Illinois,17083,25,1 +2020-06-09,Jersey,Illinois,17083,26,1 +2020-06-10,Jersey,Illinois,17083,27,1 +2020-06-11,Jersey,Illinois,17083,28,1 +2020-06-12,Jersey,Illinois,17083,28,1 +2020-06-13,Jersey,Illinois,17083,28,1 +2020-06-14,Jersey,Illinois,17083,28,1 +2020-06-15,Jersey,Illinois,17083,28,1 +2020-06-16,Jersey,Illinois,17083,29,1 +2020-06-17,Jersey,Illinois,17083,29,1 +2020-06-18,Jersey,Illinois,17083,29,1 +2020-06-19,Jersey,Illinois,17083,29,1 +2020-06-20,Jersey,Illinois,17083,29,1 +2020-06-21,Jersey,Illinois,17083,31,1 +2020-06-22,Jersey,Illinois,17083,33,1 +2020-06-23,Jersey,Illinois,17083,32,1 +2020-06-24,Jersey,Illinois,17083,33,1 +2020-06-25,Jersey,Illinois,17083,34,1 +2020-06-26,Jersey,Illinois,17083,35,1 +2020-06-27,Jersey,Illinois,17083,35,1 +2020-06-28,Jersey,Illinois,17083,35,1 +2020-06-29,Jersey,Illinois,17083,35,1 +2020-06-30,Jersey,Illinois,17083,35,1 +2020-07-01,Jersey,Illinois,17083,35,1 +2020-07-02,Jersey,Illinois,17083,35,1 +2020-07-03,Jersey,Illinois,17083,35,1 +2020-07-04,Jersey,Illinois,17083,35,1 +2020-07-05,Jersey,Illinois,17083,35,1 +2020-07-06,Jersey,Illinois,17083,35,1 +2020-07-07,Jersey,Illinois,17083,36,1 +2020-07-08,Jersey,Illinois,17083,37,1 +2020-07-09,Jersey,Illinois,17083,38,1 +2020-03-22,Jo Daviess,Illinois,17085,1,0 +2020-03-23,Jo Daviess,Illinois,17085,1,0 +2020-03-24,Jo Daviess,Illinois,17085,1,0 +2020-03-25,Jo Daviess,Illinois,17085,1,0 +2020-03-26,Jo Daviess,Illinois,17085,1,0 +2020-03-27,Jo Daviess,Illinois,17085,1,0 +2020-03-28,Jo Daviess,Illinois,17085,1,0 +2020-03-29,Jo Daviess,Illinois,17085,1,0 +2020-03-30,Jo Daviess,Illinois,17085,1,0 +2020-03-31,Jo Daviess,Illinois,17085,1,0 +2020-04-01,Jo Daviess,Illinois,17085,3,0 +2020-04-02,Jo Daviess,Illinois,17085,3,0 +2020-04-03,Jo Daviess,Illinois,17085,4,0 +2020-04-04,Jo Daviess,Illinois,17085,4,0 +2020-04-05,Jo Daviess,Illinois,17085,5,0 +2020-04-06,Jo Daviess,Illinois,17085,6,0 +2020-04-07,Jo Daviess,Illinois,17085,6,0 +2020-04-08,Jo Daviess,Illinois,17085,8,0 +2020-04-09,Jo Daviess,Illinois,17085,9,0 +2020-04-10,Jo Daviess,Illinois,17085,10,0 +2020-04-11,Jo Daviess,Illinois,17085,10,0 +2020-04-12,Jo Daviess,Illinois,17085,11,0 +2020-04-13,Jo Daviess,Illinois,17085,11,0 +2020-04-14,Jo Daviess,Illinois,17085,11,0 +2020-04-15,Jo Daviess,Illinois,17085,11,0 +2020-04-16,Jo Daviess,Illinois,17085,11,0 +2020-04-17,Jo Daviess,Illinois,17085,11,0 +2020-04-18,Jo Daviess,Illinois,17085,12,0 +2020-04-19,Jo Daviess,Illinois,17085,12,0 +2020-04-20,Jo Daviess,Illinois,17085,12,0 +2020-04-21,Jo Daviess,Illinois,17085,11,0 +2020-04-22,Jo Daviess,Illinois,17085,11,0 +2020-04-23,Jo Daviess,Illinois,17085,11,0 +2020-04-24,Jo Daviess,Illinois,17085,11,0 +2020-04-25,Jo Daviess,Illinois,17085,11,0 +2020-04-26,Jo Daviess,Illinois,17085,11,0 +2020-04-27,Jo Daviess,Illinois,17085,11,0 +2020-04-28,Jo Daviess,Illinois,17085,11,0 +2020-04-29,Jo Daviess,Illinois,17085,12,0 +2020-04-30,Jo Daviess,Illinois,17085,13,0 +2020-05-01,Jo Daviess,Illinois,17085,13,0 +2020-05-02,Jo Daviess,Illinois,17085,13,0 +2020-05-03,Jo Daviess,Illinois,17085,13,0 +2020-05-04,Jo Daviess,Illinois,17085,14,0 +2020-05-05,Jo Daviess,Illinois,17085,14,0 +2020-05-06,Jo Daviess,Illinois,17085,14,0 +2020-05-07,Jo Daviess,Illinois,17085,14,0 +2020-05-08,Jo Daviess,Illinois,17085,16,0 +2020-05-09,Jo Daviess,Illinois,17085,18,0 +2020-05-10,Jo Daviess,Illinois,17085,18,0 +2020-05-11,Jo Daviess,Illinois,17085,18,0 +2020-05-12,Jo Daviess,Illinois,17085,18,0 +2020-05-13,Jo Daviess,Illinois,17085,19,1 +2020-05-14,Jo Daviess,Illinois,17085,18,0 +2020-05-15,Jo Daviess,Illinois,17085,18,0 +2020-05-16,Jo Daviess,Illinois,17085,18,0 +2020-05-17,Jo Daviess,Illinois,17085,18,0 +2020-05-18,Jo Daviess,Illinois,17085,19,0 +2020-05-19,Jo Daviess,Illinois,17085,21,0 +2020-05-20,Jo Daviess,Illinois,17085,22,0 +2020-05-21,Jo Daviess,Illinois,17085,23,0 +2020-05-22,Jo Daviess,Illinois,17085,24,0 +2020-05-23,Jo Daviess,Illinois,17085,26,0 +2020-05-24,Jo Daviess,Illinois,17085,26,0 +2020-05-25,Jo Daviess,Illinois,17085,27,0 +2020-05-26,Jo Daviess,Illinois,17085,27,0 +2020-05-27,Jo Daviess,Illinois,17085,31,0 +2020-05-28,Jo Daviess,Illinois,17085,32,0 +2020-05-29,Jo Daviess,Illinois,17085,32,0 +2020-05-30,Jo Daviess,Illinois,17085,32,0 +2020-05-31,Jo Daviess,Illinois,17085,32,0 +2020-06-01,Jo Daviess,Illinois,17085,32,0 +2020-06-02,Jo Daviess,Illinois,17085,32,0 +2020-06-03,Jo Daviess,Illinois,17085,32,0 +2020-06-04,Jo Daviess,Illinois,17085,32,1 +2020-06-05,Jo Daviess,Illinois,17085,32,1 +2020-06-06,Jo Daviess,Illinois,17085,33,1 +2020-06-07,Jo Daviess,Illinois,17085,33,1 +2020-06-08,Jo Daviess,Illinois,17085,34,1 +2020-06-09,Jo Daviess,Illinois,17085,33,1 +2020-06-10,Jo Daviess,Illinois,17085,33,1 +2020-06-11,Jo Daviess,Illinois,17085,34,1 +2020-06-12,Jo Daviess,Illinois,17085,34,1 +2020-06-13,Jo Daviess,Illinois,17085,34,1 +2020-06-14,Jo Daviess,Illinois,17085,34,1 +2020-06-15,Jo Daviess,Illinois,17085,34,1 +2020-06-16,Jo Daviess,Illinois,17085,35,1 +2020-06-17,Jo Daviess,Illinois,17085,35,1 +2020-06-18,Jo Daviess,Illinois,17085,35,1 +2020-06-19,Jo Daviess,Illinois,17085,35,1 +2020-06-20,Jo Daviess,Illinois,17085,38,1 +2020-06-21,Jo Daviess,Illinois,17085,38,1 +2020-06-22,Jo Daviess,Illinois,17085,38,1 +2020-06-23,Jo Daviess,Illinois,17085,38,1 +2020-06-24,Jo Daviess,Illinois,17085,39,1 +2020-06-25,Jo Daviess,Illinois,17085,39,1 +2020-06-26,Jo Daviess,Illinois,17085,40,1 +2020-06-27,Jo Daviess,Illinois,17085,40,1 +2020-06-28,Jo Daviess,Illinois,17085,42,1 +2020-06-29,Jo Daviess,Illinois,17085,42,1 +2020-06-30,Jo Daviess,Illinois,17085,42,1 +2020-07-01,Jo Daviess,Illinois,17085,44,1 +2020-07-02,Jo Daviess,Illinois,17085,45,1 +2020-07-03,Jo Daviess,Illinois,17085,46,1 +2020-07-04,Jo Daviess,Illinois,17085,45,1 +2020-07-05,Jo Daviess,Illinois,17085,46,1 +2020-07-06,Jo Daviess,Illinois,17085,47,1 +2020-07-07,Jo Daviess,Illinois,17085,47,1 +2020-07-08,Jo Daviess,Illinois,17085,49,1 +2020-07-09,Jo Daviess,Illinois,17085,49,1 +2020-04-13,Johnson,Illinois,17087,1,0 +2020-04-14,Johnson,Illinois,17087,1,0 +2020-04-15,Johnson,Illinois,17087,2,0 +2020-04-16,Johnson,Illinois,17087,2,0 +2020-04-17,Johnson,Illinois,17087,2,0 +2020-04-18,Johnson,Illinois,17087,2,0 +2020-04-19,Johnson,Illinois,17087,2,0 +2020-04-20,Johnson,Illinois,17087,2,0 +2020-04-21,Johnson,Illinois,17087,2,0 +2020-04-22,Johnson,Illinois,17087,3,0 +2020-04-23,Johnson,Illinois,17087,3,0 +2020-04-24,Johnson,Illinois,17087,3,0 +2020-04-25,Johnson,Illinois,17087,3,0 +2020-04-26,Johnson,Illinois,17087,4,0 +2020-04-27,Johnson,Illinois,17087,4,0 +2020-04-28,Johnson,Illinois,17087,4,0 +2020-04-29,Johnson,Illinois,17087,4,0 +2020-04-30,Johnson,Illinois,17087,4,0 +2020-05-01,Johnson,Illinois,17087,4,0 +2020-05-02,Johnson,Illinois,17087,4,0 +2020-05-03,Johnson,Illinois,17087,4,0 +2020-05-04,Johnson,Illinois,17087,4,0 +2020-05-05,Johnson,Illinois,17087,4,0 +2020-05-06,Johnson,Illinois,17087,4,0 +2020-05-07,Johnson,Illinois,17087,4,0 +2020-05-08,Johnson,Illinois,17087,4,0 +2020-05-09,Johnson,Illinois,17087,4,0 +2020-05-10,Johnson,Illinois,17087,4,0 +2020-05-11,Johnson,Illinois,17087,4,0 +2020-05-12,Johnson,Illinois,17087,4,0 +2020-05-13,Johnson,Illinois,17087,6,0 +2020-05-14,Johnson,Illinois,17087,6,0 +2020-05-15,Johnson,Illinois,17087,7,0 +2020-05-16,Johnson,Illinois,17087,7,0 +2020-05-17,Johnson,Illinois,17087,7,0 +2020-05-18,Johnson,Illinois,17087,7,0 +2020-05-19,Johnson,Illinois,17087,7,0 +2020-05-20,Johnson,Illinois,17087,7,0 +2020-05-21,Johnson,Illinois,17087,7,0 +2020-05-22,Johnson,Illinois,17087,7,0 +2020-05-23,Johnson,Illinois,17087,7,0 +2020-05-24,Johnson,Illinois,17087,7,0 +2020-05-25,Johnson,Illinois,17087,7,0 +2020-05-26,Johnson,Illinois,17087,7,0 +2020-05-27,Johnson,Illinois,17087,7,0 +2020-05-28,Johnson,Illinois,17087,7,0 +2020-05-29,Johnson,Illinois,17087,7,0 +2020-05-30,Johnson,Illinois,17087,8,0 +2020-05-31,Johnson,Illinois,17087,8,0 +2020-06-01,Johnson,Illinois,17087,9,0 +2020-06-02,Johnson,Illinois,17087,9,0 +2020-06-03,Johnson,Illinois,17087,10,0 +2020-06-04,Johnson,Illinois,17087,11,0 +2020-06-05,Johnson,Illinois,17087,11,0 +2020-06-06,Johnson,Illinois,17087,12,0 +2020-06-07,Johnson,Illinois,17087,12,0 +2020-06-08,Johnson,Illinois,17087,12,0 +2020-06-09,Johnson,Illinois,17087,13,0 +2020-06-10,Johnson,Illinois,17087,13,0 +2020-06-11,Johnson,Illinois,17087,14,0 +2020-06-12,Johnson,Illinois,17087,14,0 +2020-06-13,Johnson,Illinois,17087,19,0 +2020-06-14,Johnson,Illinois,17087,19,0 +2020-06-15,Johnson,Illinois,17087,19,0 +2020-06-16,Johnson,Illinois,17087,19,0 +2020-06-17,Johnson,Illinois,17087,20,0 +2020-06-18,Johnson,Illinois,17087,20,0 +2020-06-19,Johnson,Illinois,17087,20,0 +2020-06-20,Johnson,Illinois,17087,20,0 +2020-06-21,Johnson,Illinois,17087,20,0 +2020-06-22,Johnson,Illinois,17087,20,0 +2020-06-23,Johnson,Illinois,17087,20,0 +2020-06-24,Johnson,Illinois,17087,20,0 +2020-06-25,Johnson,Illinois,17087,20,0 +2020-06-26,Johnson,Illinois,17087,20,0 +2020-06-27,Johnson,Illinois,17087,20,0 +2020-06-28,Johnson,Illinois,17087,20,0 +2020-06-29,Johnson,Illinois,17087,20,0 +2020-06-30,Johnson,Illinois,17087,20,0 +2020-07-01,Johnson,Illinois,17087,20,0 +2020-07-02,Johnson,Illinois,17087,21,0 +2020-07-03,Johnson,Illinois,17087,21,0 +2020-07-04,Johnson,Illinois,17087,21,0 +2020-07-05,Johnson,Illinois,17087,21,0 +2020-07-06,Johnson,Illinois,17087,20,0 +2020-07-07,Johnson,Illinois,17087,20,0 +2020-07-08,Johnson,Illinois,17087,21,0 +2020-07-09,Johnson,Illinois,17087,23,0 +2020-03-10,Kane,Illinois,17089,1,0 +2020-03-11,Kane,Illinois,17089,1,0 +2020-03-12,Kane,Illinois,17089,2,0 +2020-03-13,Kane,Illinois,17089,2,0 +2020-03-14,Kane,Illinois,17089,3,0 +2020-03-15,Kane,Illinois,17089,3,0 +2020-03-16,Kane,Illinois,17089,3,0 +2020-03-17,Kane,Illinois,17089,3,0 +2020-03-18,Kane,Illinois,17089,4,0 +2020-03-19,Kane,Illinois,17089,6,0 +2020-03-20,Kane,Illinois,17089,8,0 +2020-03-21,Kane,Illinois,17089,8,0 +2020-03-22,Kane,Illinois,17089,13,0 +2020-03-23,Kane,Illinois,17089,23,0 +2020-03-24,Kane,Illinois,17089,24,0 +2020-03-25,Kane,Illinois,17089,38,1 +2020-03-26,Kane,Illinois,17089,57,1 +2020-03-27,Kane,Illinois,17089,77,2 +2020-03-28,Kane,Illinois,17089,90,4 +2020-03-29,Kane,Illinois,17089,100,7 +2020-03-30,Kane,Illinois,17089,113,7 +2020-03-31,Kane,Illinois,17089,128,7 +2020-04-01,Kane,Illinois,17089,142,8 +2020-04-02,Kane,Illinois,17089,154,8 +2020-04-03,Kane,Illinois,17089,176,9 +2020-04-04,Kane,Illinois,17089,207,12 +2020-04-05,Kane,Illinois,17089,220,15 +2020-04-06,Kane,Illinois,17089,234,15 +2020-04-07,Kane,Illinois,17089,255,18 +2020-04-08,Kane,Illinois,17089,296,19 +2020-04-09,Kane,Illinois,17089,318,20 +2020-04-10,Kane,Illinois,17089,339,22 +2020-04-11,Kane,Illinois,17089,376,22 +2020-04-12,Kane,Illinois,17089,403,23 +2020-04-13,Kane,Illinois,17089,421,24 +2020-04-14,Kane,Illinois,17089,448,24 +2020-04-15,Kane,Illinois,17089,463,24 +2020-04-16,Kane,Illinois,17089,490,25 +2020-04-17,Kane,Illinois,17089,538,28 +2020-04-18,Kane,Illinois,17089,582,30 +2020-04-19,Kane,Illinois,17089,605,30 +2020-04-20,Kane,Illinois,17089,638,31 +2020-04-21,Kane,Illinois,17089,684,33 +2020-04-22,Kane,Illinois,17089,764,37 +2020-04-23,Kane,Illinois,17089,863,39 +2020-04-24,Kane,Illinois,17089,962,39 +2020-04-25,Kane,Illinois,17089,1049,39 +2020-04-26,Kane,Illinois,17089,1109,39 +2020-04-27,Kane,Illinois,17089,1185,39 +2020-04-28,Kane,Illinois,17089,1308,41 +2020-04-29,Kane,Illinois,17089,1412,45 +2020-04-30,Kane,Illinois,17089,1526,48 +2020-05-01,Kane,Illinois,17089,1677,52 +2020-05-02,Kane,Illinois,17089,1803,57 +2020-05-03,Kane,Illinois,17089,1935,57 +2020-05-04,Kane,Illinois,17089,2115,57 +2020-05-05,Kane,Illinois,17089,2206,65 +2020-05-06,Kane,Illinois,17089,2331,74 +2020-05-07,Kane,Illinois,17089,2498,78 +2020-05-08,Kane,Illinois,17089,2668,84 +2020-05-09,Kane,Illinois,17089,2818,88 +2020-05-10,Kane,Illinois,17089,3003,89 +2020-05-11,Kane,Illinois,17089,3126,90 +2020-05-12,Kane,Illinois,17089,3592,93 +2020-05-13,Kane,Illinois,17089,3744,98 +2020-05-14,Kane,Illinois,17089,3995,104 +2020-05-15,Kane,Illinois,17089,4159,107 +2020-05-16,Kane,Illinois,17089,4263,109 +2020-05-17,Kane,Illinois,17089,4396,115 +2020-05-18,Kane,Illinois,17089,4584,115 +2020-05-19,Kane,Illinois,17089,4682,120 +2020-05-20,Kane,Illinois,17089,4813,136 +2020-05-21,Kane,Illinois,17089,4981,145 +2020-05-22,Kane,Illinois,17089,5327,150 +2020-05-23,Kane,Illinois,17089,5575,152 +2020-05-24,Kane,Illinois,17089,5703,152 +2020-05-25,Kane,Illinois,17089,5846,152 +2020-05-26,Kane,Illinois,17089,5920,155 +2020-05-27,Kane,Illinois,17089,6000,163 +2020-05-28,Kane,Illinois,17089,6145,167 +2020-05-29,Kane,Illinois,17089,6235,170 +2020-05-30,Kane,Illinois,17089,6327,176 +2020-05-31,Kane,Illinois,17089,6408,178 +2020-06-01,Kane,Illinois,17089,6461,178 +2020-06-02,Kane,Illinois,17089,6514,188 +2020-06-03,Kane,Illinois,17089,6590,194 +2020-06-04,Kane,Illinois,17089,6638,198 +2020-06-05,Kane,Illinois,17089,6736,207 +2020-06-06,Kane,Illinois,17089,6793,215 +2020-06-07,Kane,Illinois,17089,6859,215 +2020-06-08,Kane,Illinois,17089,6906,215 +2020-06-09,Kane,Illinois,17089,6956,221 +2020-06-10,Kane,Illinois,17089,6956,221 +2020-06-11,Kane,Illinois,17089,7053,227 +2020-06-12,Kane,Illinois,17089,7074,228 +2020-06-13,Kane,Illinois,17089,7126,230 +2020-06-14,Kane,Illinois,17089,7154,231 +2020-06-15,Kane,Illinois,17089,7175,234 +2020-06-16,Kane,Illinois,17089,7223,234 +2020-06-17,Kane,Illinois,17089,7246,240 +2020-06-18,Kane,Illinois,17089,7286,242 +2020-06-19,Kane,Illinois,17089,7342,245 +2020-06-20,Kane,Illinois,17089,7415,250 +2020-06-21,Kane,Illinois,17089,7461,251 +2020-06-22,Kane,Illinois,17089,7485,252 +2020-06-23,Kane,Illinois,17089,7514,254 +2020-06-24,Kane,Illinois,17089,7553,255 +2020-06-25,Kane,Illinois,17089,7597,257 +2020-06-26,Kane,Illinois,17089,7638,262 +2020-06-27,Kane,Illinois,17089,7656,265 +2020-06-28,Kane,Illinois,17089,7683,266 +2020-06-29,Kane,Illinois,17089,7729,266 +2020-06-30,Kane,Illinois,17089,7750,269 +2020-07-01,Kane,Illinois,17089,7792,272 +2020-07-02,Kane,Illinois,17089,7817,273 +2020-07-03,Kane,Illinois,17089,7858,275 +2020-07-04,Kane,Illinois,17089,7890,277 +2020-07-05,Kane,Illinois,17089,7917,277 +2020-07-06,Kane,Illinois,17089,7933,277 +2020-07-07,Kane,Illinois,17089,7964,277 +2020-07-08,Kane,Illinois,17089,7998,280 +2020-07-09,Kane,Illinois,17089,7998,281 +2020-03-18,Kankakee,Illinois,17091,1,0 +2020-03-19,Kankakee,Illinois,17091,1,0 +2020-03-20,Kankakee,Illinois,17091,1,0 +2020-03-21,Kankakee,Illinois,17091,2,0 +2020-03-22,Kankakee,Illinois,17091,2,0 +2020-03-23,Kankakee,Illinois,17091,3,0 +2020-03-24,Kankakee,Illinois,17091,4,0 +2020-03-25,Kankakee,Illinois,17091,6,0 +2020-03-26,Kankakee,Illinois,17091,15,0 +2020-03-27,Kankakee,Illinois,17091,17,0 +2020-03-28,Kankakee,Illinois,17091,27,0 +2020-03-29,Kankakee,Illinois,17091,38,0 +2020-03-30,Kankakee,Illinois,17091,38,0 +2020-03-31,Kankakee,Illinois,17091,47,0 +2020-04-01,Kankakee,Illinois,17091,57,0 +2020-04-02,Kankakee,Illinois,17091,59,2 +2020-04-03,Kankakee,Illinois,17091,68,3 +2020-04-04,Kankakee,Illinois,17091,74,5 +2020-04-05,Kankakee,Illinois,17091,76,6 +2020-04-06,Kankakee,Illinois,17091,90,5 +2020-04-07,Kankakee,Illinois,17091,128,6 +2020-04-08,Kankakee,Illinois,17091,145,6 +2020-04-09,Kankakee,Illinois,17091,156,7 +2020-04-10,Kankakee,Illinois,17091,167,10 +2020-04-11,Kankakee,Illinois,17091,185,10 +2020-04-12,Kankakee,Illinois,17091,204,10 +2020-04-13,Kankakee,Illinois,17091,210,10 +2020-04-14,Kankakee,Illinois,17091,228,12 +2020-04-15,Kankakee,Illinois,17091,228,12 +2020-04-16,Kankakee,Illinois,17091,252,13 +2020-04-17,Kankakee,Illinois,17091,260,13 +2020-04-18,Kankakee,Illinois,17091,272,16 +2020-04-19,Kankakee,Illinois,17091,275,18 +2020-04-20,Kankakee,Illinois,17091,278,18 +2020-04-21,Kankakee,Illinois,17091,278,19 +2020-04-22,Kankakee,Illinois,17091,285,19 +2020-04-23,Kankakee,Illinois,17091,289,22 +2020-04-24,Kankakee,Illinois,17091,297,26 +2020-04-25,Kankakee,Illinois,17091,299,26 +2020-04-26,Kankakee,Illinois,17091,304,26 +2020-04-27,Kankakee,Illinois,17091,309,26 +2020-04-28,Kankakee,Illinois,17091,313,27 +2020-04-29,Kankakee,Illinois,17091,326,27 +2020-04-30,Kankakee,Illinois,17091,338,28 +2020-05-01,Kankakee,Illinois,17091,350,28 +2020-05-02,Kankakee,Illinois,17091,358,28 +2020-05-03,Kankakee,Illinois,17091,358,28 +2020-05-04,Kankakee,Illinois,17091,383,28 +2020-05-05,Kankakee,Illinois,17091,393,30 +2020-05-06,Kankakee,Illinois,17091,416,30 +2020-05-07,Kankakee,Illinois,17091,428,31 +2020-05-08,Kankakee,Illinois,17091,458,31 +2020-05-09,Kankakee,Illinois,17091,479,32 +2020-05-10,Kankakee,Illinois,17091,540,32 +2020-05-11,Kankakee,Illinois,17091,753,33 +2020-05-12,Kankakee,Illinois,17091,809,33 +2020-05-13,Kankakee,Illinois,17091,835,36 +2020-05-14,Kankakee,Illinois,17091,874,36 +2020-05-15,Kankakee,Illinois,17091,893,37 +2020-05-16,Kankakee,Illinois,17091,893,37 +2020-05-17,Kankakee,Illinois,17091,893,37 +2020-05-18,Kankakee,Illinois,17091,957,40 +2020-05-19,Kankakee,Illinois,17091,967,43 +2020-05-20,Kankakee,Illinois,17091,992,46 +2020-05-21,Kankakee,Illinois,17091,1012,46 +2020-05-22,Kankakee,Illinois,17091,1041,47 +2020-05-23,Kankakee,Illinois,17091,1041,47 +2020-05-24,Kankakee,Illinois,17091,1041,47 +2020-05-25,Kankakee,Illinois,17091,1041,47 +2020-05-26,Kankakee,Illinois,17091,1096,53 +2020-05-27,Kankakee,Illinois,17091,1124,53 +2020-05-28,Kankakee,Illinois,17091,1137,53 +2020-05-29,Kankakee,Illinois,17091,1157,55 +2020-05-30,Kankakee,Illinois,17091,1157,55 +2020-05-31,Kankakee,Illinois,17091,1157,55 +2020-06-01,Kankakee,Illinois,17091,1186,58 +2020-06-02,Kankakee,Illinois,17091,1202,58 +2020-06-03,Kankakee,Illinois,17091,1202,58 +2020-06-04,Kankakee,Illinois,17091,1202,58 +2020-06-05,Kankakee,Illinois,17091,1211,58 +2020-06-06,Kankakee,Illinois,17091,1211,58 +2020-06-07,Kankakee,Illinois,17091,1211,58 +2020-06-08,Kankakee,Illinois,17091,1216,59 +2020-06-09,Kankakee,Illinois,17091,1217,59 +2020-06-10,Kankakee,Illinois,17091,1220,60 +2020-06-11,Kankakee,Illinois,17091,1223,61 +2020-06-12,Kankakee,Illinois,17091,1223,61 +2020-06-13,Kankakee,Illinois,17091,1224,61 +2020-06-14,Kankakee,Illinois,17091,1224,61 +2020-06-15,Kankakee,Illinois,17091,1228,61 +2020-06-16,Kankakee,Illinois,17091,1230,61 +2020-06-17,Kankakee,Illinois,17091,1232,61 +2020-06-18,Kankakee,Illinois,17091,1232,61 +2020-06-19,Kankakee,Illinois,17091,1234,61 +2020-06-20,Kankakee,Illinois,17091,1234,61 +2020-06-21,Kankakee,Illinois,17091,1234,61 +2020-06-22,Kankakee,Illinois,17091,1241,61 +2020-06-23,Kankakee,Illinois,17091,1246,62 +2020-06-24,Kankakee,Illinois,17091,1255,63 +2020-06-25,Kankakee,Illinois,17091,1300,63 +2020-06-26,Kankakee,Illinois,17091,1342,63 +2020-06-27,Kankakee,Illinois,17091,1342,64 +2020-06-28,Kankakee,Illinois,17091,1342,65 +2020-06-29,Kankakee,Illinois,17091,1350,65 +2020-06-30,Kankakee,Illinois,17091,1358,65 +2020-07-01,Kankakee,Illinois,17091,1367,65 +2020-07-02,Kankakee,Illinois,17091,1373,65 +2020-07-03,Kankakee,Illinois,17091,1373,65 +2020-07-04,Kankakee,Illinois,17091,1373,65 +2020-07-05,Kankakee,Illinois,17091,1373,65 +2020-07-06,Kankakee,Illinois,17091,1383,65 +2020-07-07,Kankakee,Illinois,17091,1390,65 +2020-07-08,Kankakee,Illinois,17091,1390,65 +2020-07-09,Kankakee,Illinois,17091,1438,65 +2020-03-18,Kendall,Illinois,17093,3,0 +2020-03-19,Kendall,Illinois,17093,3,0 +2020-03-20,Kendall,Illinois,17093,3,0 +2020-03-21,Kendall,Illinois,17093,3,0 +2020-03-22,Kendall,Illinois,17093,4,0 +2020-03-23,Kendall,Illinois,17093,4,0 +2020-03-24,Kendall,Illinois,17093,4,0 +2020-03-25,Kendall,Illinois,17093,6,0 +2020-03-26,Kendall,Illinois,17093,7,0 +2020-03-27,Kendall,Illinois,17093,8,0 +2020-03-28,Kendall,Illinois,17093,11,0 +2020-03-29,Kendall,Illinois,17093,15,1 +2020-03-30,Kendall,Illinois,17093,18,2 +2020-03-31,Kendall,Illinois,17093,19,2 +2020-04-01,Kendall,Illinois,17093,27,2 +2020-04-02,Kendall,Illinois,17093,36,2 +2020-04-03,Kendall,Illinois,17093,37,2 +2020-04-04,Kendall,Illinois,17093,47,2 +2020-04-05,Kendall,Illinois,17093,49,2 +2020-04-06,Kendall,Illinois,17093,55,2 +2020-04-07,Kendall,Illinois,17093,61,2 +2020-04-08,Kendall,Illinois,17093,79,2 +2020-04-09,Kendall,Illinois,17093,86,2 +2020-04-10,Kendall,Illinois,17093,92,2 +2020-04-11,Kendall,Illinois,17093,103,2 +2020-04-12,Kendall,Illinois,17093,105,2 +2020-04-13,Kendall,Illinois,17093,114,2 +2020-04-14,Kendall,Illinois,17093,114,2 +2020-04-15,Kendall,Illinois,17093,116,2 +2020-04-16,Kendall,Illinois,17093,119,2 +2020-04-17,Kendall,Illinois,17093,123,2 +2020-04-18,Kendall,Illinois,17093,135,3 +2020-04-19,Kendall,Illinois,17093,135,3 +2020-04-20,Kendall,Illinois,17093,138,3 +2020-04-21,Kendall,Illinois,17093,146,3 +2020-04-22,Kendall,Illinois,17093,157,4 +2020-04-23,Kendall,Illinois,17093,171,5 +2020-04-24,Kendall,Illinois,17093,191,5 +2020-04-25,Kendall,Illinois,17093,203,5 +2020-04-26,Kendall,Illinois,17093,208,5 +2020-04-27,Kendall,Illinois,17093,218,5 +2020-04-28,Kendall,Illinois,17093,235,5 +2020-04-29,Kendall,Illinois,17093,255,7 +2020-04-30,Kendall,Illinois,17093,266,7 +2020-05-01,Kendall,Illinois,17093,281,7 +2020-05-02,Kendall,Illinois,17093,291,9 +2020-05-03,Kendall,Illinois,17093,305,9 +2020-05-04,Kendall,Illinois,17093,326,9 +2020-05-05,Kendall,Illinois,17093,334,9 +2020-05-06,Kendall,Illinois,17093,346,10 +2020-05-07,Kendall,Illinois,17093,363,14 +2020-05-08,Kendall,Illinois,17093,373,14 +2020-05-09,Kendall,Illinois,17093,388,14 +2020-05-10,Kendall,Illinois,17093,421,14 +2020-05-11,Kendall,Illinois,17093,431,14 +2020-05-12,Kendall,Illinois,17093,477,16 +2020-05-13,Kendall,Illinois,17093,497,20 +2020-05-14,Kendall,Illinois,17093,518,20 +2020-05-15,Kendall,Illinois,17093,531,20 +2020-05-16,Kendall,Illinois,17093,559,20 +2020-05-17,Kendall,Illinois,17093,563,20 +2020-05-18,Kendall,Illinois,17093,579,22 +2020-05-19,Kendall,Illinois,17093,602,22 +2020-05-20,Kendall,Illinois,17093,635,22 +2020-05-21,Kendall,Illinois,17093,650,22 +2020-05-22,Kendall,Illinois,17093,680,22 +2020-05-23,Kendall,Illinois,17093,705,22 +2020-05-24,Kendall,Illinois,17093,709,22 +2020-05-25,Kendall,Illinois,17093,722,22 +2020-05-26,Kendall,Illinois,17093,754,22 +2020-05-27,Kendall,Illinois,17093,769,22 +2020-05-28,Kendall,Illinois,17093,781,22 +2020-05-29,Kendall,Illinois,17093,793,22 +2020-05-30,Kendall,Illinois,17093,793,22 +2020-05-31,Kendall,Illinois,17093,798,22 +2020-06-01,Kendall,Illinois,17093,832,22 +2020-06-02,Kendall,Illinois,17093,843,22 +2020-06-03,Kendall,Illinois,17093,853,22 +2020-06-04,Kendall,Illinois,17093,860,22 +2020-06-05,Kendall,Illinois,17093,868,22 +2020-06-06,Kendall,Illinois,17093,869,22 +2020-06-07,Kendall,Illinois,17093,869,22 +2020-06-08,Kendall,Illinois,17093,874,22 +2020-06-09,Kendall,Illinois,17093,886,22 +2020-06-10,Kendall,Illinois,17093,893,22 +2020-06-11,Kendall,Illinois,17093,898,22 +2020-06-12,Kendall,Illinois,17093,905,22 +2020-06-13,Kendall,Illinois,17093,906,22 +2020-06-14,Kendall,Illinois,17093,906,22 +2020-06-15,Kendall,Illinois,17093,911,22 +2020-06-16,Kendall,Illinois,17093,924,22 +2020-06-17,Kendall,Illinois,17093,928,22 +2020-06-18,Kendall,Illinois,17093,938,22 +2020-06-19,Kendall,Illinois,17093,943,22 +2020-06-20,Kendall,Illinois,17093,946,22 +2020-06-21,Kendall,Illinois,17093,946,22 +2020-06-22,Kendall,Illinois,17093,949,22 +2020-06-23,Kendall,Illinois,17093,966,22 +2020-06-24,Kendall,Illinois,17093,971,22 +2020-06-25,Kendall,Illinois,17093,982,22 +2020-06-26,Kendall,Illinois,17093,985,23 +2020-06-27,Kendall,Illinois,17093,990,23 +2020-06-28,Kendall,Illinois,17093,990,23 +2020-06-29,Kendall,Illinois,17093,1001,23 +2020-06-30,Kendall,Illinois,17093,1008,23 +2020-07-01,Kendall,Illinois,17093,1013,23 +2020-07-02,Kendall,Illinois,17093,1021,23 +2020-07-03,Kendall,Illinois,17093,1029,23 +2020-07-04,Kendall,Illinois,17093,1029,23 +2020-07-05,Kendall,Illinois,17093,1029,23 +2020-07-06,Kendall,Illinois,17093,1050,23 +2020-07-07,Kendall,Illinois,17093,1058,23 +2020-07-08,Kendall,Illinois,17093,1071,23 +2020-07-09,Kendall,Illinois,17093,1078,23 +2020-03-29,Knox,Illinois,17095,1,0 +2020-03-30,Knox,Illinois,17095,1,0 +2020-03-31,Knox,Illinois,17095,1,0 +2020-04-01,Knox,Illinois,17095,1,0 +2020-04-02,Knox,Illinois,17095,1,0 +2020-04-03,Knox,Illinois,17095,1,0 +2020-04-04,Knox,Illinois,17095,1,0 +2020-04-05,Knox,Illinois,17095,1,0 +2020-04-06,Knox,Illinois,17095,1,0 +2020-04-07,Knox,Illinois,17095,1,0 +2020-04-08,Knox,Illinois,17095,1,0 +2020-04-09,Knox,Illinois,17095,1,0 +2020-04-10,Knox,Illinois,17095,1,0 +2020-04-11,Knox,Illinois,17095,2,0 +2020-04-12,Knox,Illinois,17095,2,0 +2020-04-13,Knox,Illinois,17095,2,0 +2020-04-14,Knox,Illinois,17095,2,0 +2020-04-15,Knox,Illinois,17095,2,0 +2020-04-16,Knox,Illinois,17095,2,0 +2020-04-17,Knox,Illinois,17095,3,0 +2020-04-18,Knox,Illinois,17095,5,0 +2020-04-19,Knox,Illinois,17095,9,0 +2020-04-20,Knox,Illinois,17095,10,0 +2020-04-21,Knox,Illinois,17095,11,0 +2020-04-22,Knox,Illinois,17095,16,0 +2020-04-23,Knox,Illinois,17095,19,0 +2020-04-24,Knox,Illinois,17095,24,0 +2020-04-25,Knox,Illinois,17095,31,0 +2020-04-26,Knox,Illinois,17095,36,0 +2020-04-27,Knox,Illinois,17095,36,0 +2020-04-28,Knox,Illinois,17095,36,0 +2020-04-29,Knox,Illinois,17095,41,0 +2020-04-30,Knox,Illinois,17095,46,0 +2020-05-01,Knox,Illinois,17095,47,0 +2020-05-02,Knox,Illinois,17095,51,0 +2020-05-03,Knox,Illinois,17095,51,0 +2020-05-04,Knox,Illinois,17095,56,0 +2020-05-05,Knox,Illinois,17095,56,0 +2020-05-06,Knox,Illinois,17095,61,0 +2020-05-07,Knox,Illinois,17095,63,0 +2020-05-08,Knox,Illinois,17095,69,0 +2020-05-09,Knox,Illinois,17095,71,0 +2020-05-10,Knox,Illinois,17095,73,0 +2020-05-11,Knox,Illinois,17095,75,0 +2020-05-12,Knox,Illinois,17095,77,0 +2020-05-13,Knox,Illinois,17095,79,0 +2020-05-14,Knox,Illinois,17095,79,0 +2020-05-15,Knox,Illinois,17095,84,0 +2020-05-16,Knox,Illinois,17095,86,0 +2020-05-17,Knox,Illinois,17095,87,0 +2020-05-18,Knox,Illinois,17095,89,0 +2020-05-19,Knox,Illinois,17095,89,0 +2020-05-20,Knox,Illinois,17095,90,0 +2020-05-21,Knox,Illinois,17095,90,0 +2020-05-22,Knox,Illinois,17095,93,0 +2020-05-23,Knox,Illinois,17095,94,0 +2020-05-24,Knox,Illinois,17095,94,0 +2020-05-25,Knox,Illinois,17095,94,0 +2020-05-26,Knox,Illinois,17095,95,0 +2020-05-27,Knox,Illinois,17095,94,0 +2020-05-28,Knox,Illinois,17095,96,0 +2020-05-29,Knox,Illinois,17095,97,0 +2020-05-30,Knox,Illinois,17095,98,0 +2020-05-31,Knox,Illinois,17095,100,0 +2020-06-01,Knox,Illinois,17095,101,0 +2020-06-02,Knox,Illinois,17095,101,0 +2020-06-03,Knox,Illinois,17095,101,0 +2020-06-04,Knox,Illinois,17095,102,0 +2020-06-05,Knox,Illinois,17095,102,0 +2020-06-06,Knox,Illinois,17095,103,0 +2020-06-07,Knox,Illinois,17095,104,0 +2020-06-08,Knox,Illinois,17095,105,0 +2020-06-09,Knox,Illinois,17095,105,0 +2020-06-10,Knox,Illinois,17095,106,0 +2020-06-11,Knox,Illinois,17095,107,0 +2020-06-12,Knox,Illinois,17095,111,0 +2020-06-13,Knox,Illinois,17095,111,0 +2020-06-14,Knox,Illinois,17095,113,0 +2020-06-15,Knox,Illinois,17095,113,0 +2020-06-16,Knox,Illinois,17095,113,0 +2020-06-17,Knox,Illinois,17095,113,0 +2020-06-18,Knox,Illinois,17095,115,0 +2020-06-19,Knox,Illinois,17095,115,0 +2020-06-20,Knox,Illinois,17095,117,0 +2020-06-21,Knox,Illinois,17095,117,0 +2020-06-22,Knox,Illinois,17095,117,0 +2020-06-23,Knox,Illinois,17095,117,0 +2020-06-24,Knox,Illinois,17095,119,0 +2020-06-25,Knox,Illinois,17095,121,0 +2020-06-26,Knox,Illinois,17095,123,0 +2020-06-27,Knox,Illinois,17095,124,0 +2020-06-28,Knox,Illinois,17095,124,0 +2020-06-29,Knox,Illinois,17095,125,0 +2020-06-30,Knox,Illinois,17095,130,0 +2020-07-01,Knox,Illinois,17095,132,0 +2020-07-02,Knox,Illinois,17095,134,0 +2020-07-03,Knox,Illinois,17095,136,0 +2020-07-04,Knox,Illinois,17095,137,0 +2020-07-05,Knox,Illinois,17095,140,0 +2020-07-06,Knox,Illinois,17095,147,0 +2020-07-07,Knox,Illinois,17095,149,0 +2020-07-08,Knox,Illinois,17095,149,0 +2020-07-09,Knox,Illinois,17095,152,0 +2020-03-11,Lake,Illinois,17097,1,0 +2020-03-12,Lake,Illinois,17097,1,0 +2020-03-13,Lake,Illinois,17097,2,0 +2020-03-14,Lake,Illinois,17097,3,0 +2020-03-15,Lake,Illinois,17097,3,0 +2020-03-16,Lake,Illinois,17097,6,0 +2020-03-17,Lake,Illinois,17097,7,0 +2020-03-18,Lake,Illinois,17097,18,0 +2020-03-19,Lake,Illinois,17097,37,0 +2020-03-20,Lake,Illinois,17097,52,0 +2020-03-21,Lake,Illinois,17097,63,0 +2020-03-22,Lake,Illinois,17097,69,0 +2020-03-23,Lake,Illinois,17097,96,0 +2020-03-24,Lake,Illinois,17097,111,0 +2020-03-25,Lake,Illinois,17097,139,0 +2020-03-26,Lake,Illinois,17097,185,0 +2020-03-27,Lake,Illinois,17097,230,2 +2020-03-28,Lake,Illinois,17097,264,2 +2020-03-29,Lake,Illinois,17097,300,3 +2020-03-30,Lake,Illinois,17097,343,5 +2020-03-31,Lake,Illinois,17097,389,7 +2020-04-01,Lake,Illinois,17097,477,7 +2020-04-02,Lake,Illinois,17097,540,7 +2020-04-03,Lake,Illinois,17097,608,14 +2020-04-04,Lake,Illinois,17097,689,14 +2020-04-05,Lake,Illinois,17097,742,15 +2020-04-06,Lake,Illinois,17097,815,15 +2020-04-07,Lake,Illinois,17097,925,22 +2020-04-08,Lake,Illinois,17097,1041,23 +2020-04-09,Lake,Illinois,17097,1124,29 +2020-04-10,Lake,Illinois,17097,1230,34 +2020-04-11,Lake,Illinois,17097,1331,39 +2020-04-12,Lake,Illinois,17097,1445,42 +2020-04-13,Lake,Illinois,17097,1516,45 +2020-04-14,Lake,Illinois,17097,1621,58 +2020-04-15,Lake,Illinois,17097,1711,65 +2020-04-16,Lake,Illinois,17097,1767,70 +2020-04-17,Lake,Illinois,17097,1914,71 +2020-04-18,Lake,Illinois,17097,2073,75 +2020-04-19,Lake,Illinois,17097,2162,75 +2020-04-20,Lake,Illinois,17097,2216,82 +2020-04-21,Lake,Illinois,17097,2287,87 +2020-04-22,Lake,Illinois,17097,2379,89 +2020-04-23,Lake,Illinois,17097,2540,100 +2020-04-24,Lake,Illinois,17097,2717,105 +2020-04-25,Lake,Illinois,17097,2879,115 +2020-04-26,Lake,Illinois,17097,2990,118 +2020-04-27,Lake,Illinois,17097,3080,118 +2020-04-28,Lake,Illinois,17097,3192,123 +2020-04-29,Lake,Illinois,17097,3382,128 +2020-04-30,Lake,Illinois,17097,3509,138 +2020-05-01,Lake,Illinois,17097,3766,140 +2020-05-02,Lake,Illinois,17097,3975,141 +2020-05-03,Lake,Illinois,17097,4161,145 +2020-05-04,Lake,Illinois,17097,4252,151 +2020-05-05,Lake,Illinois,17097,4370,151 +2020-05-06,Lake,Illinois,17097,4529,162 +2020-05-07,Lake,Illinois,17097,4762,165 +2020-05-08,Lake,Illinois,17097,4985,170 +2020-05-09,Lake,Illinois,17097,5199,173 +2020-05-10,Lake,Illinois,17097,5245,173 +2020-05-11,Lake,Illinois,17097,5323,173 +2020-05-12,Lake,Illinois,17097,5662,185 +2020-05-13,Lake,Illinois,17097,5758,194 +2020-05-14,Lake,Illinois,17097,5992,202 +2020-05-15,Lake,Illinois,17097,6157,207 +2020-05-16,Lake,Illinois,17097,6382,209 +2020-05-17,Lake,Illinois,17097,6489,215 +2020-05-18,Lake,Illinois,17097,6645,215 +2020-05-19,Lake,Illinois,17097,6709,221 +2020-05-20,Lake,Illinois,17097,6905,231 +2020-05-21,Lake,Illinois,17097,7128,237 +2020-05-22,Lake,Illinois,17097,7291,249 +2020-05-23,Lake,Illinois,17097,7465,250 +2020-05-24,Lake,Illinois,17097,7615,250 +2020-05-25,Lake,Illinois,17097,7723,250 +2020-05-26,Lake,Illinois,17097,7767,250 +2020-05-27,Lake,Illinois,17097,7845,270 +2020-05-28,Lake,Illinois,17097,7933,281 +2020-05-29,Lake,Illinois,17097,8063,287 +2020-05-30,Lake,Illinois,17097,8238,288 +2020-05-31,Lake,Illinois,17097,8373,291 +2020-06-01,Lake,Illinois,17097,8456,292 +2020-06-02,Lake,Illinois,17097,8511,307 +2020-06-03,Lake,Illinois,17097,8562,315 +2020-06-04,Lake,Illinois,17097,8619,330 +2020-06-05,Lake,Illinois,17097,8683,334 +2020-06-06,Lake,Illinois,17097,8690,342 +2020-06-07,Lake,Illinois,17097,8768,344 +2020-06-08,Lake,Illinois,17097,8839,345 +2020-06-09,Lake,Illinois,17097,8890,356 +2020-06-10,Lake,Illinois,17097,8924,362 +2020-06-11,Lake,Illinois,17097,8962,367 +2020-06-12,Lake,Illinois,17097,9021,372 +2020-06-13,Lake,Illinois,17097,9033,374 +2020-06-14,Lake,Illinois,17097,9076,374 +2020-06-15,Lake,Illinois,17097,9123,375 +2020-06-16,Lake,Illinois,17097,9147,386 +2020-06-17,Lake,Illinois,17097,9154,389 +2020-06-18,Lake,Illinois,17097,9221,392 +2020-06-19,Lake,Illinois,17097,9244,395 +2020-06-20,Lake,Illinois,17097,9279,398 +2020-06-21,Lake,Illinois,17097,9326,401 +2020-06-22,Lake,Illinois,17097,9356,401 +2020-06-23,Lake,Illinois,17097,9411,405 +2020-06-24,Lake,Illinois,17097,9468,409 +2020-06-25,Lake,Illinois,17097,9514,411 +2020-06-26,Lake,Illinois,17097,9561,412 +2020-06-27,Lake,Illinois,17097,9608,414 +2020-06-28,Lake,Illinois,17097,9644,415 +2020-06-29,Lake,Illinois,17097,9695,415 +2020-06-30,Lake,Illinois,17097,9719,416 +2020-07-01,Lake,Illinois,17097,9761,418 +2020-07-02,Lake,Illinois,17097,9812,421 +2020-07-03,Lake,Illinois,17097,9864,421 +2020-07-04,Lake,Illinois,17097,9919,423 +2020-07-05,Lake,Illinois,17097,9954,423 +2020-07-06,Lake,Illinois,17097,10007,423 +2020-07-07,Lake,Illinois,17097,10044,425 +2020-07-08,Lake,Illinois,17097,10104,427 +2020-07-09,Lake,Illinois,17097,10185,427 +2020-03-18,LaSalle,Illinois,17099,1,0 +2020-03-19,LaSalle,Illinois,17099,1,0 +2020-03-20,LaSalle,Illinois,17099,1,0 +2020-03-21,LaSalle,Illinois,17099,1,0 +2020-03-22,LaSalle,Illinois,17099,1,0 +2020-03-23,LaSalle,Illinois,17099,2,0 +2020-03-24,LaSalle,Illinois,17099,3,0 +2020-03-25,LaSalle,Illinois,17099,3,0 +2020-03-26,LaSalle,Illinois,17099,3,0 +2020-03-27,LaSalle,Illinois,17099,3,0 +2020-03-28,LaSalle,Illinois,17099,4,1 +2020-03-29,LaSalle,Illinois,17099,4,2 +2020-03-30,LaSalle,Illinois,17099,5,2 +2020-03-31,LaSalle,Illinois,17099,6,1 +2020-04-01,LaSalle,Illinois,17099,6,1 +2020-04-02,LaSalle,Illinois,17099,6,1 +2020-04-03,LaSalle,Illinois,17099,6,1 +2020-04-04,LaSalle,Illinois,17099,7,1 +2020-04-05,LaSalle,Illinois,17099,8,1 +2020-04-06,LaSalle,Illinois,17099,11,1 +2020-04-07,LaSalle,Illinois,17099,15,1 +2020-04-08,LaSalle,Illinois,17099,17,1 +2020-04-09,LaSalle,Illinois,17099,17,1 +2020-04-10,LaSalle,Illinois,17099,19,1 +2020-04-11,LaSalle,Illinois,17099,18,1 +2020-04-12,LaSalle,Illinois,17099,20,1 +2020-04-13,LaSalle,Illinois,17099,21,1 +2020-04-14,LaSalle,Illinois,17099,23,1 +2020-04-15,LaSalle,Illinois,17099,24,1 +2020-04-16,LaSalle,Illinois,17099,25,1 +2020-04-17,LaSalle,Illinois,17099,27,1 +2020-04-18,LaSalle,Illinois,17099,27,1 +2020-04-19,LaSalle,Illinois,17099,28,1 +2020-04-20,LaSalle,Illinois,17099,30,1 +2020-04-21,LaSalle,Illinois,17099,33,1 +2020-04-22,LaSalle,Illinois,17099,38,1 +2020-04-23,LaSalle,Illinois,17099,39,1 +2020-04-24,LaSalle,Illinois,17099,42,1 +2020-04-25,LaSalle,Illinois,17099,43,1 +2020-04-26,LaSalle,Illinois,17099,44,1 +2020-04-27,LaSalle,Illinois,17099,46,1 +2020-04-28,LaSalle,Illinois,17099,49,1 +2020-04-29,LaSalle,Illinois,17099,49,1 +2020-04-30,LaSalle,Illinois,17099,53,1 +2020-05-01,LaSalle,Illinois,17099,54,1 +2020-05-02,LaSalle,Illinois,17099,65,1 +2020-05-03,LaSalle,Illinois,17099,67,1 +2020-05-04,LaSalle,Illinois,17099,70,1 +2020-05-05,LaSalle,Illinois,17099,69,1 +2020-05-06,LaSalle,Illinois,17099,84,2 +2020-05-07,LaSalle,Illinois,17099,91,2 +2020-05-08,LaSalle,Illinois,17099,93,3 +2020-05-09,LaSalle,Illinois,17099,102,5 +2020-05-10,LaSalle,Illinois,17099,105,5 +2020-05-11,LaSalle,Illinois,17099,105,5 +2020-05-12,LaSalle,Illinois,17099,106,5 +2020-05-13,LaSalle,Illinois,17099,111,5 +2020-05-14,LaSalle,Illinois,17099,113,5 +2020-05-15,LaSalle,Illinois,17099,117,7 +2020-05-16,LaSalle,Illinois,17099,121,8 +2020-05-17,LaSalle,Illinois,17099,120,8 +2020-05-18,LaSalle,Illinois,17099,121,8 +2020-05-19,LaSalle,Illinois,17099,121,8 +2020-05-20,LaSalle,Illinois,17099,130,8 +2020-05-21,LaSalle,Illinois,17099,129,8 +2020-05-22,LaSalle,Illinois,17099,130,10 +2020-05-23,LaSalle,Illinois,17099,134,10 +2020-05-24,LaSalle,Illinois,17099,139,10 +2020-05-25,LaSalle,Illinois,17099,140,12 +2020-05-26,LaSalle,Illinois,17099,140,13 +2020-05-27,LaSalle,Illinois,17099,140,13 +2020-05-28,LaSalle,Illinois,17099,141,13 +2020-05-29,LaSalle,Illinois,17099,147,13 +2020-05-30,LaSalle,Illinois,17099,150,13 +2020-05-31,LaSalle,Illinois,17099,153,13 +2020-06-01,LaSalle,Illinois,17099,153,13 +2020-06-02,LaSalle,Illinois,17099,154,14 +2020-06-03,LaSalle,Illinois,17099,157,14 +2020-06-04,LaSalle,Illinois,17099,159,16 +2020-06-05,LaSalle,Illinois,17099,160,16 +2020-06-06,LaSalle,Illinois,17099,160,16 +2020-06-07,LaSalle,Illinois,17099,164,16 +2020-06-08,LaSalle,Illinois,17099,166,16 +2020-06-09,LaSalle,Illinois,17099,168,16 +2020-06-10,LaSalle,Illinois,17099,172,16 +2020-06-11,LaSalle,Illinois,17099,175,16 +2020-06-12,LaSalle,Illinois,17099,177,16 +2020-06-13,LaSalle,Illinois,17099,177,16 +2020-06-14,LaSalle,Illinois,17099,178,16 +2020-06-15,LaSalle,Illinois,17099,181,16 +2020-06-16,LaSalle,Illinois,17099,183,16 +2020-06-17,LaSalle,Illinois,17099,183,16 +2020-06-18,LaSalle,Illinois,17099,189,16 +2020-06-19,LaSalle,Illinois,17099,188,16 +2020-06-20,LaSalle,Illinois,17099,188,16 +2020-06-21,LaSalle,Illinois,17099,190,16 +2020-06-22,LaSalle,Illinois,17099,190,16 +2020-06-23,LaSalle,Illinois,17099,191,16 +2020-06-24,LaSalle,Illinois,17099,195,16 +2020-06-25,LaSalle,Illinois,17099,199,17 +2020-06-26,LaSalle,Illinois,17099,201,17 +2020-06-27,LaSalle,Illinois,17099,205,17 +2020-06-28,LaSalle,Illinois,17099,205,17 +2020-06-29,LaSalle,Illinois,17099,208,17 +2020-06-30,LaSalle,Illinois,17099,216,17 +2020-07-01,LaSalle,Illinois,17099,219,17 +2020-07-02,LaSalle,Illinois,17099,220,17 +2020-07-03,LaSalle,Illinois,17099,224,17 +2020-07-04,LaSalle,Illinois,17099,225,17 +2020-07-05,LaSalle,Illinois,17099,226,17 +2020-07-06,LaSalle,Illinois,17099,228,17 +2020-07-07,LaSalle,Illinois,17099,233,17 +2020-07-08,LaSalle,Illinois,17099,237,17 +2020-07-09,LaSalle,Illinois,17099,239,17 +2020-04-07,Lawrence,Illinois,17101,2,0 +2020-04-08,Lawrence,Illinois,17101,2,0 +2020-04-09,Lawrence,Illinois,17101,2,0 +2020-04-10,Lawrence,Illinois,17101,2,0 +2020-04-11,Lawrence,Illinois,17101,2,0 +2020-04-12,Lawrence,Illinois,17101,2,0 +2020-04-13,Lawrence,Illinois,17101,2,0 +2020-04-14,Lawrence,Illinois,17101,2,0 +2020-04-15,Lawrence,Illinois,17101,2,0 +2020-04-16,Lawrence,Illinois,17101,2,0 +2020-04-17,Lawrence,Illinois,17101,2,0 +2020-04-18,Lawrence,Illinois,17101,2,0 +2020-04-19,Lawrence,Illinois,17101,2,0 +2020-04-20,Lawrence,Illinois,17101,2,0 +2020-04-21,Lawrence,Illinois,17101,2,0 +2020-04-22,Lawrence,Illinois,17101,2,0 +2020-04-23,Lawrence,Illinois,17101,2,0 +2020-04-24,Lawrence,Illinois,17101,2,0 +2020-04-25,Lawrence,Illinois,17101,3,0 +2020-04-26,Lawrence,Illinois,17101,3,0 +2020-04-27,Lawrence,Illinois,17101,3,0 +2020-04-28,Lawrence,Illinois,17101,3,0 +2020-04-29,Lawrence,Illinois,17101,3,0 +2020-04-30,Lawrence,Illinois,17101,3,0 +2020-05-01,Lawrence,Illinois,17101,3,0 +2020-05-02,Lawrence,Illinois,17101,3,0 +2020-05-03,Lawrence,Illinois,17101,4,0 +2020-05-04,Lawrence,Illinois,17101,4,0 +2020-05-05,Lawrence,Illinois,17101,3,0 +2020-05-06,Lawrence,Illinois,17101,3,0 +2020-05-07,Lawrence,Illinois,17101,3,0 +2020-05-08,Lawrence,Illinois,17101,3,0 +2020-05-09,Lawrence,Illinois,17101,4,0 +2020-05-10,Lawrence,Illinois,17101,4,0 +2020-05-11,Lawrence,Illinois,17101,4,0 +2020-05-12,Lawrence,Illinois,17101,3,0 +2020-05-13,Lawrence,Illinois,17101,4,0 +2020-05-14,Lawrence,Illinois,17101,4,0 +2020-05-15,Lawrence,Illinois,17101,4,0 +2020-05-16,Lawrence,Illinois,17101,4,0 +2020-05-17,Lawrence,Illinois,17101,4,0 +2020-05-18,Lawrence,Illinois,17101,4,0 +2020-05-19,Lawrence,Illinois,17101,4,0 +2020-05-20,Lawrence,Illinois,17101,4,0 +2020-05-21,Lawrence,Illinois,17101,4,0 +2020-05-22,Lawrence,Illinois,17101,4,0 +2020-05-23,Lawrence,Illinois,17101,4,0 +2020-05-24,Lawrence,Illinois,17101,4,0 +2020-05-25,Lawrence,Illinois,17101,4,0 +2020-05-26,Lawrence,Illinois,17101,4,0 +2020-05-27,Lawrence,Illinois,17101,4,0 +2020-05-28,Lawrence,Illinois,17101,4,0 +2020-05-29,Lawrence,Illinois,17101,4,0 +2020-05-30,Lawrence,Illinois,17101,4,0 +2020-05-31,Lawrence,Illinois,17101,4,0 +2020-06-01,Lawrence,Illinois,17101,4,0 +2020-06-02,Lawrence,Illinois,17101,4,0 +2020-06-03,Lawrence,Illinois,17101,4,0 +2020-06-04,Lawrence,Illinois,17101,4,0 +2020-06-05,Lawrence,Illinois,17101,4,0 +2020-06-06,Lawrence,Illinois,17101,4,0 +2020-06-07,Lawrence,Illinois,17101,4,0 +2020-06-08,Lawrence,Illinois,17101,4,0 +2020-06-09,Lawrence,Illinois,17101,4,0 +2020-06-10,Lawrence,Illinois,17101,4,0 +2020-06-11,Lawrence,Illinois,17101,4,0 +2020-06-12,Lawrence,Illinois,17101,4,0 +2020-06-13,Lawrence,Illinois,17101,4,0 +2020-06-14,Lawrence,Illinois,17101,4,0 +2020-06-15,Lawrence,Illinois,17101,4,0 +2020-06-16,Lawrence,Illinois,17101,4,0 +2020-06-17,Lawrence,Illinois,17101,4,0 +2020-06-18,Lawrence,Illinois,17101,5,0 +2020-06-19,Lawrence,Illinois,17101,5,0 +2020-06-20,Lawrence,Illinois,17101,5,0 +2020-06-21,Lawrence,Illinois,17101,5,0 +2020-06-22,Lawrence,Illinois,17101,5,0 +2020-06-23,Lawrence,Illinois,17101,5,0 +2020-06-24,Lawrence,Illinois,17101,6,0 +2020-06-25,Lawrence,Illinois,17101,6,0 +2020-06-26,Lawrence,Illinois,17101,6,0 +2020-06-27,Lawrence,Illinois,17101,7,0 +2020-06-28,Lawrence,Illinois,17101,7,0 +2020-06-29,Lawrence,Illinois,17101,7,0 +2020-06-30,Lawrence,Illinois,17101,7,0 +2020-07-01,Lawrence,Illinois,17101,7,0 +2020-07-02,Lawrence,Illinois,17101,7,0 +2020-07-03,Lawrence,Illinois,17101,7,0 +2020-07-04,Lawrence,Illinois,17101,7,0 +2020-07-05,Lawrence,Illinois,17101,7,0 +2020-07-06,Lawrence,Illinois,17101,7,0 +2020-07-07,Lawrence,Illinois,17101,8,0 +2020-07-08,Lawrence,Illinois,17101,8,0 +2020-07-09,Lawrence,Illinois,17101,8,0 +2020-04-04,Lee,Illinois,17103,2,0 +2020-04-05,Lee,Illinois,17103,2,0 +2020-04-06,Lee,Illinois,17103,2,0 +2020-04-07,Lee,Illinois,17103,3,0 +2020-04-08,Lee,Illinois,17103,6,0 +2020-04-09,Lee,Illinois,17103,9,0 +2020-04-10,Lee,Illinois,17103,12,0 +2020-04-11,Lee,Illinois,17103,12,0 +2020-04-12,Lee,Illinois,17103,13,0 +2020-04-13,Lee,Illinois,17103,14,0 +2020-04-14,Lee,Illinois,17103,13,0 +2020-04-15,Lee,Illinois,17103,15,0 +2020-04-16,Lee,Illinois,17103,15,0 +2020-04-17,Lee,Illinois,17103,17,0 +2020-04-18,Lee,Illinois,17103,17,0 +2020-04-19,Lee,Illinois,17103,17,0 +2020-04-20,Lee,Illinois,17103,17,0 +2020-04-21,Lee,Illinois,17103,17,0 +2020-04-22,Lee,Illinois,17103,18,0 +2020-04-23,Lee,Illinois,17103,18,0 +2020-04-24,Lee,Illinois,17103,18,0 +2020-04-25,Lee,Illinois,17103,19,0 +2020-04-26,Lee,Illinois,17103,19,0 +2020-04-27,Lee,Illinois,17103,20,0 +2020-04-28,Lee,Illinois,17103,22,0 +2020-04-29,Lee,Illinois,17103,23,0 +2020-04-30,Lee,Illinois,17103,24,0 +2020-05-01,Lee,Illinois,17103,23,0 +2020-05-02,Lee,Illinois,17103,23,0 +2020-05-03,Lee,Illinois,17103,25,0 +2020-05-04,Lee,Illinois,17103,25,0 +2020-05-05,Lee,Illinois,17103,41,0 +2020-05-06,Lee,Illinois,17103,49,0 +2020-05-07,Lee,Illinois,17103,51,0 +2020-05-08,Lee,Illinois,17103,63,0 +2020-05-09,Lee,Illinois,17103,63,0 +2020-05-10,Lee,Illinois,17103,63,0 +2020-05-11,Lee,Illinois,17103,63,0 +2020-05-12,Lee,Illinois,17103,69,0 +2020-05-13,Lee,Illinois,17103,70,0 +2020-05-14,Lee,Illinois,17103,70,1 +2020-05-15,Lee,Illinois,17103,73,1 +2020-05-16,Lee,Illinois,17103,74,1 +2020-05-17,Lee,Illinois,17103,74,1 +2020-05-18,Lee,Illinois,17103,74,1 +2020-05-19,Lee,Illinois,17103,75,1 +2020-05-20,Lee,Illinois,17103,75,1 +2020-05-21,Lee,Illinois,17103,75,1 +2020-05-22,Lee,Illinois,17103,75,1 +2020-05-23,Lee,Illinois,17103,76,1 +2020-05-24,Lee,Illinois,17103,77,1 +2020-05-25,Lee,Illinois,17103,77,1 +2020-05-26,Lee,Illinois,17103,76,1 +2020-05-27,Lee,Illinois,17103,76,1 +2020-05-28,Lee,Illinois,17103,79,1 +2020-05-29,Lee,Illinois,17103,79,1 +2020-05-30,Lee,Illinois,17103,81,1 +2020-05-31,Lee,Illinois,17103,81,1 +2020-06-01,Lee,Illinois,17103,81,1 +2020-06-02,Lee,Illinois,17103,82,1 +2020-06-03,Lee,Illinois,17103,82,1 +2020-06-04,Lee,Illinois,17103,82,1 +2020-06-05,Lee,Illinois,17103,82,1 +2020-06-06,Lee,Illinois,17103,88,1 +2020-06-07,Lee,Illinois,17103,89,1 +2020-06-08,Lee,Illinois,17103,89,1 +2020-06-09,Lee,Illinois,17103,89,1 +2020-06-10,Lee,Illinois,17103,89,1 +2020-06-11,Lee,Illinois,17103,88,1 +2020-06-12,Lee,Illinois,17103,88,1 +2020-06-13,Lee,Illinois,17103,88,1 +2020-06-14,Lee,Illinois,17103,89,1 +2020-06-15,Lee,Illinois,17103,89,1 +2020-06-16,Lee,Illinois,17103,89,1 +2020-06-17,Lee,Illinois,17103,90,1 +2020-06-18,Lee,Illinois,17103,90,1 +2020-06-19,Lee,Illinois,17103,94,1 +2020-06-20,Lee,Illinois,17103,94,1 +2020-06-21,Lee,Illinois,17103,96,1 +2020-06-22,Lee,Illinois,17103,96,2 +2020-06-23,Lee,Illinois,17103,96,2 +2020-06-24,Lee,Illinois,17103,96,2 +2020-06-25,Lee,Illinois,17103,96,2 +2020-06-26,Lee,Illinois,17103,96,2 +2020-06-27,Lee,Illinois,17103,97,2 +2020-06-28,Lee,Illinois,17103,97,2 +2020-06-29,Lee,Illinois,17103,97,2 +2020-06-30,Lee,Illinois,17103,97,2 +2020-07-01,Lee,Illinois,17103,97,2 +2020-07-02,Lee,Illinois,17103,98,2 +2020-07-03,Lee,Illinois,17103,98,2 +2020-07-04,Lee,Illinois,17103,101,2 +2020-07-05,Lee,Illinois,17103,101,2 +2020-07-06,Lee,Illinois,17103,103,2 +2020-07-07,Lee,Illinois,17103,104,2 +2020-07-08,Lee,Illinois,17103,104,2 +2020-07-09,Lee,Illinois,17103,104,2 +2020-03-22,Livingston,Illinois,17105,1,0 +2020-03-23,Livingston,Illinois,17105,1,0 +2020-03-24,Livingston,Illinois,17105,1,0 +2020-03-25,Livingston,Illinois,17105,1,0 +2020-03-26,Livingston,Illinois,17105,1,0 +2020-03-27,Livingston,Illinois,17105,2,0 +2020-03-28,Livingston,Illinois,17105,2,0 +2020-03-29,Livingston,Illinois,17105,2,0 +2020-03-30,Livingston,Illinois,17105,2,0 +2020-03-31,Livingston,Illinois,17105,3,0 +2020-04-01,Livingston,Illinois,17105,5,0 +2020-04-02,Livingston,Illinois,17105,5,0 +2020-04-03,Livingston,Illinois,17105,6,0 +2020-04-04,Livingston,Illinois,17105,6,0 +2020-04-05,Livingston,Illinois,17105,7,0 +2020-04-06,Livingston,Illinois,17105,9,0 +2020-04-07,Livingston,Illinois,17105,10,0 +2020-04-08,Livingston,Illinois,17105,10,0 +2020-04-09,Livingston,Illinois,17105,14,0 +2020-04-10,Livingston,Illinois,17105,14,0 +2020-04-11,Livingston,Illinois,17105,15,0 +2020-04-12,Livingston,Illinois,17105,16,0 +2020-04-13,Livingston,Illinois,17105,17,0 +2020-04-14,Livingston,Illinois,17105,17,0 +2020-04-15,Livingston,Illinois,17105,17,0 +2020-04-16,Livingston,Illinois,17105,17,0 +2020-04-17,Livingston,Illinois,17105,18,0 +2020-04-18,Livingston,Illinois,17105,17,0 +2020-04-19,Livingston,Illinois,17105,17,0 +2020-04-20,Livingston,Illinois,17105,17,1 +2020-04-21,Livingston,Illinois,17105,18,1 +2020-04-22,Livingston,Illinois,17105,18,1 +2020-04-23,Livingston,Illinois,17105,18,1 +2020-04-24,Livingston,Illinois,17105,18,1 +2020-04-25,Livingston,Illinois,17105,20,1 +2020-04-26,Livingston,Illinois,17105,20,1 +2020-04-27,Livingston,Illinois,17105,20,1 +2020-04-28,Livingston,Illinois,17105,20,1 +2020-04-29,Livingston,Illinois,17105,20,1 +2020-04-30,Livingston,Illinois,17105,20,1 +2020-05-01,Livingston,Illinois,17105,20,1 +2020-05-02,Livingston,Illinois,17105,21,1 +2020-05-03,Livingston,Illinois,17105,24,1 +2020-05-04,Livingston,Illinois,17105,23,1 +2020-05-05,Livingston,Illinois,17105,23,1 +2020-05-06,Livingston,Illinois,17105,23,1 +2020-05-07,Livingston,Illinois,17105,24,1 +2020-05-08,Livingston,Illinois,17105,24,1 +2020-05-09,Livingston,Illinois,17105,24,1 +2020-05-10,Livingston,Illinois,17105,24,1 +2020-05-11,Livingston,Illinois,17105,24,1 +2020-05-12,Livingston,Illinois,17105,25,1 +2020-05-13,Livingston,Illinois,17105,25,1 +2020-05-14,Livingston,Illinois,17105,25,1 +2020-05-15,Livingston,Illinois,17105,25,1 +2020-05-16,Livingston,Illinois,17105,25,1 +2020-05-17,Livingston,Illinois,17105,26,1 +2020-05-18,Livingston,Illinois,17105,27,1 +2020-05-19,Livingston,Illinois,17105,27,1 +2020-05-20,Livingston,Illinois,17105,28,1 +2020-05-21,Livingston,Illinois,17105,29,2 +2020-05-22,Livingston,Illinois,17105,30,2 +2020-05-23,Livingston,Illinois,17105,31,2 +2020-05-24,Livingston,Illinois,17105,31,2 +2020-05-25,Livingston,Illinois,17105,31,2 +2020-05-26,Livingston,Illinois,17105,31,2 +2020-05-27,Livingston,Illinois,17105,31,2 +2020-05-28,Livingston,Illinois,17105,32,2 +2020-05-29,Livingston,Illinois,17105,32,2 +2020-05-30,Livingston,Illinois,17105,34,2 +2020-05-31,Livingston,Illinois,17105,34,2 +2020-06-01,Livingston,Illinois,17105,34,2 +2020-06-02,Livingston,Illinois,17105,34,2 +2020-06-03,Livingston,Illinois,17105,36,2 +2020-06-04,Livingston,Illinois,17105,36,2 +2020-06-05,Livingston,Illinois,17105,36,2 +2020-06-06,Livingston,Illinois,17105,36,2 +2020-06-07,Livingston,Illinois,17105,36,2 +2020-06-08,Livingston,Illinois,17105,36,2 +2020-06-09,Livingston,Illinois,17105,36,2 +2020-06-10,Livingston,Illinois,17105,36,2 +2020-06-11,Livingston,Illinois,17105,36,2 +2020-06-12,Livingston,Illinois,17105,36,2 +2020-06-13,Livingston,Illinois,17105,37,2 +2020-06-14,Livingston,Illinois,17105,39,2 +2020-06-15,Livingston,Illinois,17105,37,2 +2020-06-16,Livingston,Illinois,17105,35,2 +2020-06-17,Livingston,Illinois,17105,35,2 +2020-06-18,Livingston,Illinois,17105,35,2 +2020-06-19,Livingston,Illinois,17105,36,2 +2020-06-20,Livingston,Illinois,17105,37,2 +2020-06-21,Livingston,Illinois,17105,37,2 +2020-06-22,Livingston,Illinois,17105,37,2 +2020-06-23,Livingston,Illinois,17105,38,2 +2020-06-24,Livingston,Illinois,17105,40,2 +2020-06-25,Livingston,Illinois,17105,40,2 +2020-06-26,Livingston,Illinois,17105,42,2 +2020-06-27,Livingston,Illinois,17105,42,2 +2020-06-28,Livingston,Illinois,17105,43,2 +2020-06-29,Livingston,Illinois,17105,43,2 +2020-06-30,Livingston,Illinois,17105,43,2 +2020-07-01,Livingston,Illinois,17105,45,2 +2020-07-02,Livingston,Illinois,17105,47,2 +2020-07-03,Livingston,Illinois,17105,50,2 +2020-07-04,Livingston,Illinois,17105,52,2 +2020-07-05,Livingston,Illinois,17105,52,2 +2020-07-06,Livingston,Illinois,17105,52,2 +2020-07-07,Livingston,Illinois,17105,53,2 +2020-07-08,Livingston,Illinois,17105,53,2 +2020-07-09,Livingston,Illinois,17105,54,2 +2020-04-02,Logan,Illinois,17107,1,0 +2020-04-03,Logan,Illinois,17107,1,0 +2020-04-04,Logan,Illinois,17107,1,0 +2020-04-05,Logan,Illinois,17107,1,0 +2020-04-06,Logan,Illinois,17107,1,0 +2020-04-07,Logan,Illinois,17107,2,0 +2020-04-08,Logan,Illinois,17107,3,0 +2020-04-09,Logan,Illinois,17107,3,0 +2020-04-10,Logan,Illinois,17107,3,0 +2020-04-11,Logan,Illinois,17107,3,0 +2020-04-12,Logan,Illinois,17107,3,0 +2020-04-13,Logan,Illinois,17107,4,0 +2020-04-14,Logan,Illinois,17107,4,0 +2020-04-15,Logan,Illinois,17107,4,0 +2020-04-16,Logan,Illinois,17107,5,0 +2020-04-17,Logan,Illinois,17107,4,0 +2020-04-18,Logan,Illinois,17107,4,0 +2020-04-19,Logan,Illinois,17107,4,0 +2020-04-20,Logan,Illinois,17107,4,0 +2020-04-21,Logan,Illinois,17107,4,0 +2020-04-22,Logan,Illinois,17107,4,0 +2020-04-23,Logan,Illinois,17107,4,0 +2020-04-24,Logan,Illinois,17107,4,0 +2020-04-25,Logan,Illinois,17107,4,0 +2020-04-26,Logan,Illinois,17107,4,0 +2020-04-27,Logan,Illinois,17107,4,0 +2020-04-28,Logan,Illinois,17107,7,0 +2020-04-29,Logan,Illinois,17107,7,0 +2020-04-30,Logan,Illinois,17107,7,0 +2020-05-01,Logan,Illinois,17107,7,0 +2020-05-02,Logan,Illinois,17107,7,0 +2020-05-03,Logan,Illinois,17107,7,0 +2020-05-04,Logan,Illinois,17107,7,0 +2020-05-05,Logan,Illinois,17107,7,0 +2020-05-06,Logan,Illinois,17107,7,0 +2020-05-07,Logan,Illinois,17107,7,0 +2020-05-08,Logan,Illinois,17107,9,0 +2020-05-09,Logan,Illinois,17107,9,0 +2020-05-10,Logan,Illinois,17107,9,0 +2020-05-11,Logan,Illinois,17107,9,0 +2020-05-12,Logan,Illinois,17107,9,0 +2020-05-13,Logan,Illinois,17107,11,0 +2020-05-14,Logan,Illinois,17107,10,0 +2020-05-15,Logan,Illinois,17107,10,0 +2020-05-16,Logan,Illinois,17107,10,0 +2020-05-17,Logan,Illinois,17107,10,0 +2020-05-18,Logan,Illinois,17107,10,0 +2020-05-19,Logan,Illinois,17107,10,0 +2020-05-20,Logan,Illinois,17107,10,0 +2020-05-21,Logan,Illinois,17107,10,0 +2020-05-22,Logan,Illinois,17107,10,0 +2020-05-23,Logan,Illinois,17107,10,0 +2020-05-24,Logan,Illinois,17107,10,0 +2020-05-25,Logan,Illinois,17107,10,0 +2020-05-26,Logan,Illinois,17107,10,0 +2020-05-27,Logan,Illinois,17107,10,0 +2020-05-28,Logan,Illinois,17107,10,0 +2020-05-29,Logan,Illinois,17107,10,0 +2020-05-30,Logan,Illinois,17107,10,0 +2020-05-31,Logan,Illinois,17107,10,0 +2020-06-01,Logan,Illinois,17107,11,0 +2020-06-02,Logan,Illinois,17107,11,0 +2020-06-03,Logan,Illinois,17107,11,0 +2020-06-04,Logan,Illinois,17107,11,0 +2020-06-05,Logan,Illinois,17107,11,0 +2020-06-06,Logan,Illinois,17107,10,0 +2020-06-07,Logan,Illinois,17107,10,0 +2020-06-08,Logan,Illinois,17107,10,0 +2020-06-09,Logan,Illinois,17107,10,0 +2020-06-10,Logan,Illinois,17107,10,0 +2020-06-11,Logan,Illinois,17107,10,0 +2020-06-12,Logan,Illinois,17107,10,0 +2020-06-13,Logan,Illinois,17107,10,0 +2020-06-14,Logan,Illinois,17107,11,0 +2020-06-15,Logan,Illinois,17107,11,0 +2020-06-16,Logan,Illinois,17107,11,0 +2020-06-17,Logan,Illinois,17107,11,0 +2020-06-18,Logan,Illinois,17107,11,0 +2020-06-19,Logan,Illinois,17107,12,0 +2020-06-20,Logan,Illinois,17107,13,0 +2020-06-21,Logan,Illinois,17107,13,0 +2020-06-22,Logan,Illinois,17107,13,0 +2020-06-23,Logan,Illinois,17107,13,0 +2020-06-24,Logan,Illinois,17107,13,0 +2020-06-25,Logan,Illinois,17107,13,0 +2020-06-26,Logan,Illinois,17107,13,0 +2020-06-27,Logan,Illinois,17107,13,0 +2020-06-28,Logan,Illinois,17107,13,0 +2020-06-29,Logan,Illinois,17107,13,0 +2020-06-30,Logan,Illinois,17107,14,0 +2020-07-01,Logan,Illinois,17107,15,0 +2020-07-02,Logan,Illinois,17107,15,0 +2020-07-03,Logan,Illinois,17107,16,0 +2020-07-04,Logan,Illinois,17107,17,0 +2020-07-05,Logan,Illinois,17107,18,0 +2020-07-06,Logan,Illinois,17107,18,0 +2020-07-07,Logan,Illinois,17107,18,0 +2020-07-08,Logan,Illinois,17107,18,0 +2020-07-09,Logan,Illinois,17107,18,0 +2020-04-11,McDonough,Illinois,17109,1,0 +2020-04-12,McDonough,Illinois,17109,1,0 +2020-04-13,McDonough,Illinois,17109,2,0 +2020-04-14,McDonough,Illinois,17109,2,0 +2020-04-15,McDonough,Illinois,17109,2,0 +2020-04-16,McDonough,Illinois,17109,3,0 +2020-04-17,McDonough,Illinois,17109,3,0 +2020-04-18,McDonough,Illinois,17109,3,0 +2020-04-19,McDonough,Illinois,17109,3,0 +2020-04-20,McDonough,Illinois,17109,3,0 +2020-04-21,McDonough,Illinois,17109,3,0 +2020-04-22,McDonough,Illinois,17109,4,0 +2020-04-23,McDonough,Illinois,17109,4,0 +2020-04-24,McDonough,Illinois,17109,5,0 +2020-04-25,McDonough,Illinois,17109,5,0 +2020-04-26,McDonough,Illinois,17109,6,0 +2020-04-27,McDonough,Illinois,17109,7,0 +2020-04-28,McDonough,Illinois,17109,12,0 +2020-04-29,McDonough,Illinois,17109,13,0 +2020-04-30,McDonough,Illinois,17109,18,0 +2020-05-01,McDonough,Illinois,17109,18,0 +2020-05-02,McDonough,Illinois,17109,26,1 +2020-05-03,McDonough,Illinois,17109,35,1 +2020-05-04,McDonough,Illinois,17109,36,1 +2020-05-05,McDonough,Illinois,17109,37,2 +2020-05-06,McDonough,Illinois,17109,42,2 +2020-05-07,McDonough,Illinois,17109,46,2 +2020-05-08,McDonough,Illinois,17109,48,2 +2020-05-09,McDonough,Illinois,17109,49,2 +2020-05-10,McDonough,Illinois,17109,49,2 +2020-05-11,McDonough,Illinois,17109,49,2 +2020-05-12,McDonough,Illinois,17109,52,2 +2020-05-13,McDonough,Illinois,17109,54,2 +2020-05-14,McDonough,Illinois,17109,58,2 +2020-05-15,McDonough,Illinois,17109,58,2 +2020-05-16,McDonough,Illinois,17109,61,2 +2020-05-17,McDonough,Illinois,17109,64,2 +2020-05-18,McDonough,Illinois,17109,64,2 +2020-05-19,McDonough,Illinois,17109,72,3 +2020-05-20,McDonough,Illinois,17109,73,4 +2020-05-21,McDonough,Illinois,17109,75,4 +2020-05-22,McDonough,Illinois,17109,75,4 +2020-05-23,McDonough,Illinois,17109,79,4 +2020-05-24,McDonough,Illinois,17109,80,4 +2020-05-25,McDonough,Illinois,17109,83,5 +2020-05-26,McDonough,Illinois,17109,83,5 +2020-05-27,McDonough,Illinois,17109,83,7 +2020-05-28,McDonough,Illinois,17109,84,7 +2020-05-29,McDonough,Illinois,17109,87,8 +2020-05-30,McDonough,Illinois,17109,87,11 +2020-05-31,McDonough,Illinois,17109,88,11 +2020-06-01,McDonough,Illinois,17109,89,11 +2020-06-02,McDonough,Illinois,17109,91,13 +2020-06-03,McDonough,Illinois,17109,94,13 +2020-06-04,McDonough,Illinois,17109,93,13 +2020-06-05,McDonough,Illinois,17109,91,13 +2020-06-06,McDonough,Illinois,17109,92,13 +2020-06-07,McDonough,Illinois,17109,92,13 +2020-06-08,McDonough,Illinois,17109,92,13 +2020-06-09,McDonough,Illinois,17109,92,15 +2020-06-10,McDonough,Illinois,17109,93,15 +2020-06-11,McDonough,Illinois,17109,97,15 +2020-06-12,McDonough,Illinois,17109,102,15 +2020-06-13,McDonough,Illinois,17109,104,15 +2020-06-14,McDonough,Illinois,17109,104,15 +2020-06-15,McDonough,Illinois,17109,103,15 +2020-06-16,McDonough,Illinois,17109,103,15 +2020-06-17,McDonough,Illinois,17109,100,15 +2020-06-18,McDonough,Illinois,17109,100,15 +2020-06-19,McDonough,Illinois,17109,101,15 +2020-06-20,McDonough,Illinois,17109,101,15 +2020-06-21,McDonough,Illinois,17109,101,15 +2020-06-22,McDonough,Illinois,17109,101,15 +2020-06-23,McDonough,Illinois,17109,101,15 +2020-06-24,McDonough,Illinois,17109,101,15 +2020-06-25,McDonough,Illinois,17109,101,15 +2020-06-26,McDonough,Illinois,17109,100,15 +2020-06-27,McDonough,Illinois,17109,100,15 +2020-06-28,McDonough,Illinois,17109,100,15 +2020-06-29,McDonough,Illinois,17109,100,15 +2020-06-30,McDonough,Illinois,17109,100,15 +2020-07-01,McDonough,Illinois,17109,101,15 +2020-07-02,McDonough,Illinois,17109,101,15 +2020-07-03,McDonough,Illinois,17109,102,15 +2020-07-04,McDonough,Illinois,17109,102,15 +2020-07-05,McDonough,Illinois,17109,102,15 +2020-07-06,McDonough,Illinois,17109,102,15 +2020-07-07,McDonough,Illinois,17109,102,15 +2020-07-08,McDonough,Illinois,17109,104,15 +2020-07-09,McDonough,Illinois,17109,103,15 +2020-03-10,McHenry,Illinois,17111,1,0 +2020-03-11,McHenry,Illinois,17111,1,0 +2020-03-12,McHenry,Illinois,17111,2,0 +2020-03-13,McHenry,Illinois,17111,2,0 +2020-03-14,McHenry,Illinois,17111,2,0 +2020-03-15,McHenry,Illinois,17111,2,0 +2020-03-16,McHenry,Illinois,17111,2,0 +2020-03-17,McHenry,Illinois,17111,2,0 +2020-03-18,McHenry,Illinois,17111,4,0 +2020-03-19,McHenry,Illinois,17111,6,0 +2020-03-20,McHenry,Illinois,17111,8,0 +2020-03-21,McHenry,Illinois,17111,11,0 +2020-03-22,McHenry,Illinois,17111,12,0 +2020-03-23,McHenry,Illinois,17111,12,0 +2020-03-24,McHenry,Illinois,17111,14,0 +2020-03-25,McHenry,Illinois,17111,19,0 +2020-03-26,McHenry,Illinois,17111,27,1 +2020-03-27,McHenry,Illinois,17111,45,1 +2020-03-28,McHenry,Illinois,17111,47,2 +2020-03-29,McHenry,Illinois,17111,52,2 +2020-03-30,McHenry,Illinois,17111,52,2 +2020-03-31,McHenry,Illinois,17111,63,2 +2020-04-01,McHenry,Illinois,17111,69,2 +2020-04-02,McHenry,Illinois,17111,81,3 +2020-04-03,McHenry,Illinois,17111,102,3 +2020-04-04,McHenry,Illinois,17111,122,3 +2020-04-05,McHenry,Illinois,17111,133,3 +2020-04-06,McHenry,Illinois,17111,144,3 +2020-04-07,McHenry,Illinois,17111,156,4 +2020-04-08,McHenry,Illinois,17111,180,5 +2020-04-09,McHenry,Illinois,17111,198,5 +2020-04-10,McHenry,Illinois,17111,206,5 +2020-04-11,McHenry,Illinois,17111,220,6 +2020-04-12,McHenry,Illinois,17111,235,6 +2020-04-13,McHenry,Illinois,17111,245,7 +2020-04-14,McHenry,Illinois,17111,257,8 +2020-04-15,McHenry,Illinois,17111,264,11 +2020-04-16,McHenry,Illinois,17111,279,13 +2020-04-17,McHenry,Illinois,17111,306,13 +2020-04-18,McHenry,Illinois,17111,340,17 +2020-04-19,McHenry,Illinois,17111,340,17 +2020-04-20,McHenry,Illinois,17111,351,17 +2020-04-21,McHenry,Illinois,17111,368,20 +2020-04-22,McHenry,Illinois,17111,399,22 +2020-04-23,McHenry,Illinois,17111,419,26 +2020-04-24,McHenry,Illinois,17111,459,27 +2020-04-25,McHenry,Illinois,17111,502,28 +2020-04-26,McHenry,Illinois,17111,513,28 +2020-04-27,McHenry,Illinois,17111,538,28 +2020-04-28,McHenry,Illinois,17111,552,31 +2020-04-29,McHenry,Illinois,17111,588,33 +2020-04-30,McHenry,Illinois,17111,621,34 +2020-05-01,McHenry,Illinois,17111,666,37 +2020-05-02,McHenry,Illinois,17111,693,38 +2020-05-03,McHenry,Illinois,17111,738,37 +2020-05-04,McHenry,Illinois,17111,790,38 +2020-05-05,McHenry,Illinois,17111,802,40 +2020-05-06,McHenry,Illinois,17111,814,42 +2020-05-07,McHenry,Illinois,17111,857,44 +2020-05-08,McHenry,Illinois,17111,897,48 +2020-05-09,McHenry,Illinois,17111,936,52 +2020-05-10,McHenry,Illinois,17111,945,51 +2020-05-11,McHenry,Illinois,17111,958,52 +2020-05-12,McHenry,Illinois,17111,1026,55 +2020-05-13,McHenry,Illinois,17111,1049,56 +2020-05-14,McHenry,Illinois,17111,1083,57 +2020-05-15,McHenry,Illinois,17111,1123,62 +2020-05-16,McHenry,Illinois,17111,1156,62 +2020-05-17,McHenry,Illinois,17111,1179,62 +2020-05-18,McHenry,Illinois,17111,1209,62 +2020-05-19,McHenry,Illinois,17111,1224,64 +2020-05-20,McHenry,Illinois,17111,1255,66 +2020-05-21,McHenry,Illinois,17111,1282,67 +2020-05-22,McHenry,Illinois,17111,1323,67 +2020-05-23,McHenry,Illinois,17111,1360,67 +2020-05-24,McHenry,Illinois,17111,1399,67 +2020-05-25,McHenry,Illinois,17111,1427,67 +2020-05-26,McHenry,Illinois,17111,1452,68 +2020-05-27,McHenry,Illinois,17111,1475,69 +2020-05-28,McHenry,Illinois,17111,1488,70 +2020-05-29,McHenry,Illinois,17111,1514,71 +2020-05-30,McHenry,Illinois,17111,1566,73 +2020-05-31,McHenry,Illinois,17111,1566,73 +2020-06-01,McHenry,Illinois,17111,1608,73 +2020-06-02,McHenry,Illinois,17111,1636,74 +2020-06-03,McHenry,Illinois,17111,1659,78 +2020-06-04,McHenry,Illinois,17111,1672,78 +2020-06-05,McHenry,Illinois,17111,1692,82 +2020-06-06,McHenry,Illinois,17111,1718,83 +2020-06-07,McHenry,Illinois,17111,1724,83 +2020-06-08,McHenry,Illinois,17111,1744,83 +2020-06-09,McHenry,Illinois,17111,1752,84 +2020-06-10,McHenry,Illinois,17111,1776,84 +2020-06-11,McHenry,Illinois,17111,1788,84 +2020-06-12,McHenry,Illinois,17111,1810,85 +2020-06-13,McHenry,Illinois,17111,1829,85 +2020-06-14,McHenry,Illinois,17111,1849,85 +2020-06-15,McHenry,Illinois,17111,1856,85 +2020-06-16,McHenry,Illinois,17111,1864,86 +2020-06-17,McHenry,Illinois,17111,1872,88 +2020-06-18,McHenry,Illinois,17111,1884,89 +2020-06-19,McHenry,Illinois,17111,1891,89 +2020-06-20,McHenry,Illinois,17111,1898,91 +2020-06-21,McHenry,Illinois,17111,1911,91 +2020-06-22,McHenry,Illinois,17111,1921,91 +2020-06-23,McHenry,Illinois,17111,1922,92 +2020-06-24,McHenry,Illinois,17111,1937,93 +2020-06-25,McHenry,Illinois,17111,1949,95 +2020-06-26,McHenry,Illinois,17111,1975,96 +2020-06-27,McHenry,Illinois,17111,1991,97 +2020-06-28,McHenry,Illinois,17111,1999,97 +2020-06-29,McHenry,Illinois,17111,2010,97 +2020-06-30,McHenry,Illinois,17111,2032,97 +2020-07-01,McHenry,Illinois,17111,2061,97 +2020-07-02,McHenry,Illinois,17111,2074,97 +2020-07-03,McHenry,Illinois,17111,2088,97 +2020-07-04,McHenry,Illinois,17111,2103,97 +2020-07-05,McHenry,Illinois,17111,2115,97 +2020-07-06,McHenry,Illinois,17111,2196,99 +2020-07-07,McHenry,Illinois,17111,2211,100 +2020-07-08,McHenry,Illinois,17111,2246,103 +2020-07-09,McHenry,Illinois,17111,2274,103 +2020-03-20,McLean,Illinois,17113,4,0 +2020-03-21,McLean,Illinois,17113,6,0 +2020-03-22,McLean,Illinois,17113,6,1 +2020-03-23,McLean,Illinois,17113,7,1 +2020-03-24,McLean,Illinois,17113,7,1 +2020-03-25,McLean,Illinois,17113,7,1 +2020-03-26,McLean,Illinois,17113,7,1 +2020-03-27,McLean,Illinois,17113,10,1 +2020-03-28,McLean,Illinois,17113,10,1 +2020-03-29,McLean,Illinois,17113,14,1 +2020-03-30,McLean,Illinois,17113,17,1 +2020-03-31,McLean,Illinois,17113,19,2 +2020-04-01,McLean,Illinois,17113,19,2 +2020-04-02,McLean,Illinois,17113,32,2 +2020-04-03,McLean,Illinois,17113,35,2 +2020-04-04,McLean,Illinois,17113,40,2 +2020-04-05,McLean,Illinois,17113,46,2 +2020-04-06,McLean,Illinois,17113,46,2 +2020-04-07,McLean,Illinois,17113,57,2 +2020-04-08,McLean,Illinois,17113,65,2 +2020-04-09,McLean,Illinois,17113,69,2 +2020-04-10,McLean,Illinois,17113,75,2 +2020-04-11,McLean,Illinois,17113,75,2 +2020-04-12,McLean,Illinois,17113,77,2 +2020-04-13,McLean,Illinois,17113,79,2 +2020-04-14,McLean,Illinois,17113,81,2 +2020-04-15,McLean,Illinois,17113,82,2 +2020-04-16,McLean,Illinois,17113,82,3 +2020-04-17,McLean,Illinois,17113,83,3 +2020-04-18,McLean,Illinois,17113,83,3 +2020-04-19,McLean,Illinois,17113,85,3 +2020-04-20,McLean,Illinois,17113,86,3 +2020-04-21,McLean,Illinois,17113,86,3 +2020-04-22,McLean,Illinois,17113,86,3 +2020-04-23,McLean,Illinois,17113,87,3 +2020-04-24,McLean,Illinois,17113,87,3 +2020-04-25,McLean,Illinois,17113,88,3 +2020-04-26,McLean,Illinois,17113,88,3 +2020-04-27,McLean,Illinois,17113,92,3 +2020-04-28,McLean,Illinois,17113,94,3 +2020-04-29,McLean,Illinois,17113,94,3 +2020-04-30,McLean,Illinois,17113,95,3 +2020-05-01,McLean,Illinois,17113,97,3 +2020-05-02,McLean,Illinois,17113,99,3 +2020-05-03,McLean,Illinois,17113,99,3 +2020-05-04,McLean,Illinois,17113,103,3 +2020-05-05,McLean,Illinois,17113,103,3 +2020-05-06,McLean,Illinois,17113,108,3 +2020-05-07,McLean,Illinois,17113,110,3 +2020-05-08,McLean,Illinois,17113,112,3 +2020-05-09,McLean,Illinois,17113,115,3 +2020-05-10,McLean,Illinois,17113,117,3 +2020-05-11,McLean,Illinois,17113,121,3 +2020-05-12,McLean,Illinois,17113,126,3 +2020-05-13,McLean,Illinois,17113,127,3 +2020-05-14,McLean,Illinois,17113,130,3 +2020-05-15,McLean,Illinois,17113,132,4 +2020-05-16,McLean,Illinois,17113,158,4 +2020-05-17,McLean,Illinois,17113,170,6 +2020-05-18,McLean,Illinois,17113,186,6 +2020-05-19,McLean,Illinois,17113,189,6 +2020-05-20,McLean,Illinois,17113,191,6 +2020-05-21,McLean,Illinois,17113,195,9 +2020-05-22,McLean,Illinois,17113,195,9 +2020-05-23,McLean,Illinois,17113,202,9 +2020-05-24,McLean,Illinois,17113,204,10 +2020-05-25,McLean,Illinois,17113,211,10 +2020-05-26,McLean,Illinois,17113,212,10 +2020-05-27,McLean,Illinois,17113,215,13 +2020-05-28,McLean,Illinois,17113,216,13 +2020-05-29,McLean,Illinois,17113,217,13 +2020-05-30,McLean,Illinois,17113,218,13 +2020-05-31,McLean,Illinois,17113,220,13 +2020-06-01,McLean,Illinois,17113,220,13 +2020-06-02,McLean,Illinois,17113,221,13 +2020-06-03,McLean,Illinois,17113,224,13 +2020-06-04,McLean,Illinois,17113,224,13 +2020-06-05,McLean,Illinois,17113,226,13 +2020-06-06,McLean,Illinois,17113,226,13 +2020-06-07,McLean,Illinois,17113,226,13 +2020-06-08,McLean,Illinois,17113,228,13 +2020-06-09,McLean,Illinois,17113,230,13 +2020-06-10,McLean,Illinois,17113,231,13 +2020-06-11,McLean,Illinois,17113,235,13 +2020-06-12,McLean,Illinois,17113,238,13 +2020-06-13,McLean,Illinois,17113,241,13 +2020-06-14,McLean,Illinois,17113,241,13 +2020-06-15,McLean,Illinois,17113,241,13 +2020-06-16,McLean,Illinois,17113,243,13 +2020-06-17,McLean,Illinois,17113,246,13 +2020-06-18,McLean,Illinois,17113,246,13 +2020-06-19,McLean,Illinois,17113,246,13 +2020-06-20,McLean,Illinois,17113,247,13 +2020-06-21,McLean,Illinois,17113,251,13 +2020-06-22,McLean,Illinois,17113,254,13 +2020-06-23,McLean,Illinois,17113,253,13 +2020-06-24,McLean,Illinois,17113,253,13 +2020-06-25,McLean,Illinois,17113,254,13 +2020-06-26,McLean,Illinois,17113,255,13 +2020-06-27,McLean,Illinois,17113,256,13 +2020-06-28,McLean,Illinois,17113,257,13 +2020-06-29,McLean,Illinois,17113,257,13 +2020-06-30,McLean,Illinois,17113,260,13 +2020-07-01,McLean,Illinois,17113,261,13 +2020-07-02,McLean,Illinois,17113,265,13 +2020-07-03,McLean,Illinois,17113,267,13 +2020-07-04,McLean,Illinois,17113,273,13 +2020-07-05,McLean,Illinois,17113,277,13 +2020-07-06,McLean,Illinois,17113,285,13 +2020-07-07,McLean,Illinois,17113,289,13 +2020-07-08,McLean,Illinois,17113,292,14 +2020-07-09,McLean,Illinois,17113,301,15 +2020-03-28,Macon,Illinois,17115,1,0 +2020-03-29,Macon,Illinois,17115,2,0 +2020-03-30,Macon,Illinois,17115,2,0 +2020-03-31,Macon,Illinois,17115,2,0 +2020-04-01,Macon,Illinois,17115,2,0 +2020-04-02,Macon,Illinois,17115,2,0 +2020-04-03,Macon,Illinois,17115,2,0 +2020-04-04,Macon,Illinois,17115,5,0 +2020-04-05,Macon,Illinois,17115,6,0 +2020-04-06,Macon,Illinois,17115,9,0 +2020-04-07,Macon,Illinois,17115,12,0 +2020-04-08,Macon,Illinois,17115,13,1 +2020-04-09,Macon,Illinois,17115,15,1 +2020-04-10,Macon,Illinois,17115,14,1 +2020-04-11,Macon,Illinois,17115,23,1 +2020-04-12,Macon,Illinois,17115,35,1 +2020-04-13,Macon,Illinois,17115,42,3 +2020-04-14,Macon,Illinois,17115,45,3 +2020-04-15,Macon,Illinois,17115,44,5 +2020-04-16,Macon,Illinois,17115,47,6 +2020-04-17,Macon,Illinois,17115,47,6 +2020-04-18,Macon,Illinois,17115,55,7 +2020-04-19,Macon,Illinois,17115,54,7 +2020-04-20,Macon,Illinois,17115,55,9 +2020-04-21,Macon,Illinois,17115,60,9 +2020-04-22,Macon,Illinois,17115,93,10 +2020-04-23,Macon,Illinois,17115,96,10 +2020-04-24,Macon,Illinois,17115,99,10 +2020-04-25,Macon,Illinois,17115,100,11 +2020-04-26,Macon,Illinois,17115,102,11 +2020-04-27,Macon,Illinois,17115,103,11 +2020-04-28,Macon,Illinois,17115,103,11 +2020-04-29,Macon,Illinois,17115,105,11 +2020-04-30,Macon,Illinois,17115,106,12 +2020-05-01,Macon,Illinois,17115,109,12 +2020-05-02,Macon,Illinois,17115,119,12 +2020-05-03,Macon,Illinois,17115,122,12 +2020-05-04,Macon,Illinois,17115,124,13 +2020-05-05,Macon,Illinois,17115,126,13 +2020-05-06,Macon,Illinois,17115,129,13 +2020-05-07,Macon,Illinois,17115,133,14 +2020-05-08,Macon,Illinois,17115,138,15 +2020-05-09,Macon,Illinois,17115,140,15 +2020-05-10,Macon,Illinois,17115,144,15 +2020-05-11,Macon,Illinois,17115,146,15 +2020-05-12,Macon,Illinois,17115,149,16 +2020-05-13,Macon,Illinois,17115,151,16 +2020-05-14,Macon,Illinois,17115,154,16 +2020-05-15,Macon,Illinois,17115,159,17 +2020-05-16,Macon,Illinois,17115,163,17 +2020-05-17,Macon,Illinois,17115,165,17 +2020-05-18,Macon,Illinois,17115,169,17 +2020-05-19,Macon,Illinois,17115,170,17 +2020-05-20,Macon,Illinois,17115,176,17 +2020-05-21,Macon,Illinois,17115,182,17 +2020-05-22,Macon,Illinois,17115,184,17 +2020-05-23,Macon,Illinois,17115,187,18 +2020-05-24,Macon,Illinois,17115,187,19 +2020-05-25,Macon,Illinois,17115,188,19 +2020-05-26,Macon,Illinois,17115,188,19 +2020-05-27,Macon,Illinois,17115,189,19 +2020-05-28,Macon,Illinois,17115,192,19 +2020-05-29,Macon,Illinois,17115,195,19 +2020-05-30,Macon,Illinois,17115,194,19 +2020-05-31,Macon,Illinois,17115,193,19 +2020-06-01,Macon,Illinois,17115,194,19 +2020-06-02,Macon,Illinois,17115,194,19 +2020-06-03,Macon,Illinois,17115,195,19 +2020-06-04,Macon,Illinois,17115,199,20 +2020-06-05,Macon,Illinois,17115,200,20 +2020-06-06,Macon,Illinois,17115,202,21 +2020-06-07,Macon,Illinois,17115,202,21 +2020-06-08,Macon,Illinois,17115,203,21 +2020-06-09,Macon,Illinois,17115,203,21 +2020-06-10,Macon,Illinois,17115,204,21 +2020-06-11,Macon,Illinois,17115,206,21 +2020-06-12,Macon,Illinois,17115,206,21 +2020-06-13,Macon,Illinois,17115,207,21 +2020-06-14,Macon,Illinois,17115,209,21 +2020-06-15,Macon,Illinois,17115,209,21 +2020-06-16,Macon,Illinois,17115,212,21 +2020-06-17,Macon,Illinois,17115,213,21 +2020-06-18,Macon,Illinois,17115,214,21 +2020-06-19,Macon,Illinois,17115,216,21 +2020-06-20,Macon,Illinois,17115,218,21 +2020-06-21,Macon,Illinois,17115,218,21 +2020-06-22,Macon,Illinois,17115,219,21 +2020-06-23,Macon,Illinois,17115,220,22 +2020-06-24,Macon,Illinois,17115,223,22 +2020-06-25,Macon,Illinois,17115,226,22 +2020-06-26,Macon,Illinois,17115,227,22 +2020-06-27,Macon,Illinois,17115,227,22 +2020-06-28,Macon,Illinois,17115,227,22 +2020-06-29,Macon,Illinois,17115,228,22 +2020-06-30,Macon,Illinois,17115,232,22 +2020-07-01,Macon,Illinois,17115,231,22 +2020-07-02,Macon,Illinois,17115,232,22 +2020-07-03,Macon,Illinois,17115,232,22 +2020-07-04,Macon,Illinois,17115,234,22 +2020-07-05,Macon,Illinois,17115,235,22 +2020-07-06,Macon,Illinois,17115,236,22 +2020-07-07,Macon,Illinois,17115,238,22 +2020-07-08,Macon,Illinois,17115,241,22 +2020-07-09,Macon,Illinois,17115,242,22 +2020-04-02,Macoupin,Illinois,17117,1,0 +2020-04-03,Macoupin,Illinois,17117,1,0 +2020-04-04,Macoupin,Illinois,17117,4,0 +2020-04-05,Macoupin,Illinois,17117,5,0 +2020-04-06,Macoupin,Illinois,17117,7,0 +2020-04-07,Macoupin,Illinois,17117,8,0 +2020-04-08,Macoupin,Illinois,17117,10,0 +2020-04-09,Macoupin,Illinois,17117,12,0 +2020-04-10,Macoupin,Illinois,17117,14,0 +2020-04-11,Macoupin,Illinois,17117,14,0 +2020-04-12,Macoupin,Illinois,17117,16,0 +2020-04-13,Macoupin,Illinois,17117,16,0 +2020-04-14,Macoupin,Illinois,17117,16,0 +2020-04-15,Macoupin,Illinois,17117,17,0 +2020-04-16,Macoupin,Illinois,17117,18,0 +2020-04-17,Macoupin,Illinois,17117,17,0 +2020-04-18,Macoupin,Illinois,17117,21,0 +2020-04-19,Macoupin,Illinois,17117,21,0 +2020-04-20,Macoupin,Illinois,17117,20,0 +2020-04-21,Macoupin,Illinois,17117,22,0 +2020-04-22,Macoupin,Illinois,17117,24,0 +2020-04-23,Macoupin,Illinois,17117,24,0 +2020-04-24,Macoupin,Illinois,17117,25,0 +2020-04-25,Macoupin,Illinois,17117,28,0 +2020-04-26,Macoupin,Illinois,17117,28,0 +2020-04-27,Macoupin,Illinois,17117,30,0 +2020-04-28,Macoupin,Illinois,17117,30,0 +2020-04-29,Macoupin,Illinois,17117,30,0 +2020-04-30,Macoupin,Illinois,17117,30,0 +2020-05-01,Macoupin,Illinois,17117,31,0 +2020-05-02,Macoupin,Illinois,17117,32,0 +2020-05-03,Macoupin,Illinois,17117,32,0 +2020-05-04,Macoupin,Illinois,17117,34,0 +2020-05-05,Macoupin,Illinois,17117,36,1 +2020-05-06,Macoupin,Illinois,17117,39,1 +2020-05-07,Macoupin,Illinois,17117,39,1 +2020-05-08,Macoupin,Illinois,17117,38,1 +2020-05-09,Macoupin,Illinois,17117,38,1 +2020-05-10,Macoupin,Illinois,17117,38,1 +2020-05-11,Macoupin,Illinois,17117,39,1 +2020-05-12,Macoupin,Illinois,17117,39,1 +2020-05-13,Macoupin,Illinois,17117,39,1 +2020-05-14,Macoupin,Illinois,17117,41,1 +2020-05-15,Macoupin,Illinois,17117,41,1 +2020-05-16,Macoupin,Illinois,17117,41,1 +2020-05-17,Macoupin,Illinois,17117,41,1 +2020-05-18,Macoupin,Illinois,17117,41,1 +2020-05-19,Macoupin,Illinois,17117,42,1 +2020-05-20,Macoupin,Illinois,17117,41,1 +2020-05-21,Macoupin,Illinois,17117,40,1 +2020-05-22,Macoupin,Illinois,17117,41,1 +2020-05-23,Macoupin,Illinois,17117,41,1 +2020-05-24,Macoupin,Illinois,17117,41,1 +2020-05-25,Macoupin,Illinois,17117,41,1 +2020-05-26,Macoupin,Illinois,17117,42,1 +2020-05-27,Macoupin,Illinois,17117,43,1 +2020-05-28,Macoupin,Illinois,17117,44,2 +2020-05-29,Macoupin,Illinois,17117,45,2 +2020-05-30,Macoupin,Illinois,17117,45,2 +2020-05-31,Macoupin,Illinois,17117,45,2 +2020-06-01,Macoupin,Illinois,17117,45,2 +2020-06-02,Macoupin,Illinois,17117,46,2 +2020-06-03,Macoupin,Illinois,17117,46,2 +2020-06-04,Macoupin,Illinois,17117,46,2 +2020-06-05,Macoupin,Illinois,17117,46,2 +2020-06-06,Macoupin,Illinois,17117,46,2 +2020-06-07,Macoupin,Illinois,17117,46,2 +2020-06-08,Macoupin,Illinois,17117,46,2 +2020-06-09,Macoupin,Illinois,17117,46,2 +2020-06-10,Macoupin,Illinois,17117,46,2 +2020-06-11,Macoupin,Illinois,17117,46,2 +2020-06-12,Macoupin,Illinois,17117,46,2 +2020-06-13,Macoupin,Illinois,17117,46,2 +2020-06-14,Macoupin,Illinois,17117,45,2 +2020-06-15,Macoupin,Illinois,17117,45,2 +2020-06-16,Macoupin,Illinois,17117,45,2 +2020-06-17,Macoupin,Illinois,17117,45,3 +2020-06-18,Macoupin,Illinois,17117,46,3 +2020-06-19,Macoupin,Illinois,17117,47,3 +2020-06-20,Macoupin,Illinois,17117,47,3 +2020-06-21,Macoupin,Illinois,17117,47,3 +2020-06-22,Macoupin,Illinois,17117,47,3 +2020-06-23,Macoupin,Illinois,17117,47,3 +2020-06-24,Macoupin,Illinois,17117,48,3 +2020-06-25,Macoupin,Illinois,17117,50,3 +2020-06-26,Macoupin,Illinois,17117,49,3 +2020-06-27,Macoupin,Illinois,17117,51,3 +2020-06-28,Macoupin,Illinois,17117,51,3 +2020-06-29,Macoupin,Illinois,17117,51,3 +2020-06-30,Macoupin,Illinois,17117,51,3 +2020-07-01,Macoupin,Illinois,17117,52,3 +2020-07-02,Macoupin,Illinois,17117,53,3 +2020-07-03,Macoupin,Illinois,17117,54,3 +2020-07-04,Macoupin,Illinois,17117,55,3 +2020-07-05,Macoupin,Illinois,17117,58,3 +2020-07-06,Macoupin,Illinois,17117,58,3 +2020-07-07,Macoupin,Illinois,17117,60,3 +2020-07-08,Macoupin,Illinois,17117,61,3 +2020-07-09,Macoupin,Illinois,17117,62,3 +2020-03-18,Madison,Illinois,17119,1,0 +2020-03-19,Madison,Illinois,17119,1,0 +2020-03-20,Madison,Illinois,17119,1,0 +2020-03-21,Madison,Illinois,17119,2,0 +2020-03-22,Madison,Illinois,17119,2,0 +2020-03-23,Madison,Illinois,17119,3,0 +2020-03-24,Madison,Illinois,17119,3,0 +2020-03-25,Madison,Illinois,17119,3,0 +2020-03-26,Madison,Illinois,17119,6,0 +2020-03-27,Madison,Illinois,17119,8,0 +2020-03-28,Madison,Illinois,17119,10,0 +2020-03-29,Madison,Illinois,17119,12,0 +2020-03-30,Madison,Illinois,17119,13,0 +2020-03-31,Madison,Illinois,17119,16,0 +2020-04-01,Madison,Illinois,17119,25,0 +2020-04-02,Madison,Illinois,17119,29,0 +2020-04-03,Madison,Illinois,17119,31,0 +2020-04-04,Madison,Illinois,17119,47,0 +2020-04-05,Madison,Illinois,17119,48,0 +2020-04-06,Madison,Illinois,17119,52,0 +2020-04-07,Madison,Illinois,17119,63,1 +2020-04-08,Madison,Illinois,17119,82,2 +2020-04-09,Madison,Illinois,17119,89,2 +2020-04-10,Madison,Illinois,17119,101,2 +2020-04-11,Madison,Illinois,17119,103,2 +2020-04-12,Madison,Illinois,17119,110,2 +2020-04-13,Madison,Illinois,17119,115,2 +2020-04-14,Madison,Illinois,17119,128,2 +2020-04-15,Madison,Illinois,17119,135,2 +2020-04-16,Madison,Illinois,17119,151,3 +2020-04-17,Madison,Illinois,17119,157,5 +2020-04-18,Madison,Illinois,17119,169,5 +2020-04-19,Madison,Illinois,17119,180,8 +2020-04-20,Madison,Illinois,17119,184,8 +2020-04-21,Madison,Illinois,17119,190,10 +2020-04-22,Madison,Illinois,17119,226,13 +2020-04-23,Madison,Illinois,17119,235,13 +2020-04-24,Madison,Illinois,17119,268,15 +2020-04-25,Madison,Illinois,17119,280,16 +2020-04-26,Madison,Illinois,17119,305,16 +2020-04-27,Madison,Illinois,17119,306,17 +2020-04-28,Madison,Illinois,17119,318,18 +2020-04-29,Madison,Illinois,17119,324,19 +2020-04-30,Madison,Illinois,17119,333,21 +2020-05-01,Madison,Illinois,17119,335,22 +2020-05-02,Madison,Illinois,17119,337,22 +2020-05-03,Madison,Illinois,17119,365,24 +2020-05-04,Madison,Illinois,17119,365,26 +2020-05-05,Madison,Illinois,17119,369,27 +2020-05-06,Madison,Illinois,17119,374,28 +2020-05-07,Madison,Illinois,17119,396,28 +2020-05-08,Madison,Illinois,17119,401,30 +2020-05-09,Madison,Illinois,17119,414,31 +2020-05-10,Madison,Illinois,17119,427,31 +2020-05-11,Madison,Illinois,17119,435,31 +2020-05-12,Madison,Illinois,17119,445,32 +2020-05-13,Madison,Illinois,17119,449,35 +2020-05-14,Madison,Illinois,17119,461,35 +2020-05-15,Madison,Illinois,17119,464,38 +2020-05-16,Madison,Illinois,17119,481,39 +2020-05-17,Madison,Illinois,17119,490,42 +2020-05-18,Madison,Illinois,17119,493,42 +2020-05-19,Madison,Illinois,17119,499,45 +2020-05-20,Madison,Illinois,17119,502,46 +2020-05-21,Madison,Illinois,17119,506,48 +2020-05-22,Madison,Illinois,17119,516,49 +2020-05-23,Madison,Illinois,17119,528,53 +2020-05-24,Madison,Illinois,17119,535,54 +2020-05-25,Madison,Illinois,17119,539,57 +2020-05-26,Madison,Illinois,17119,545,57 +2020-05-27,Madison,Illinois,17119,551,58 +2020-05-28,Madison,Illinois,17119,558,58 +2020-05-29,Madison,Illinois,17119,569,58 +2020-05-30,Madison,Illinois,17119,578,60 +2020-05-31,Madison,Illinois,17119,582,60 +2020-06-01,Madison,Illinois,17119,597,62 +2020-06-02,Madison,Illinois,17119,600,62 +2020-06-03,Madison,Illinois,17119,608,65 +2020-06-04,Madison,Illinois,17119,615,65 +2020-06-05,Madison,Illinois,17119,629,65 +2020-06-06,Madison,Illinois,17119,636,65 +2020-06-07,Madison,Illinois,17119,640,65 +2020-06-08,Madison,Illinois,17119,644,65 +2020-06-09,Madison,Illinois,17119,652,65 +2020-06-10,Madison,Illinois,17119,665,65 +2020-06-11,Madison,Illinois,17119,682,65 +2020-06-12,Madison,Illinois,17119,686,65 +2020-06-13,Madison,Illinois,17119,707,65 +2020-06-14,Madison,Illinois,17119,720,65 +2020-06-15,Madison,Illinois,17119,733,66 +2020-06-16,Madison,Illinois,17119,740,66 +2020-06-17,Madison,Illinois,17119,752,66 +2020-06-18,Madison,Illinois,17119,771,66 +2020-06-19,Madison,Illinois,17119,790,66 +2020-06-20,Madison,Illinois,17119,802,66 +2020-06-21,Madison,Illinois,17119,813,66 +2020-06-22,Madison,Illinois,17119,816,67 +2020-06-23,Madison,Illinois,17119,829,67 +2020-06-24,Madison,Illinois,17119,852,68 +2020-06-25,Madison,Illinois,17119,877,68 +2020-06-26,Madison,Illinois,17119,892,68 +2020-06-27,Madison,Illinois,17119,903,68 +2020-06-28,Madison,Illinois,17119,917,68 +2020-06-29,Madison,Illinois,17119,931,68 +2020-06-30,Madison,Illinois,17119,939,68 +2020-07-01,Madison,Illinois,17119,960,69 +2020-07-02,Madison,Illinois,17119,974,69 +2020-07-03,Madison,Illinois,17119,993,69 +2020-07-04,Madison,Illinois,17119,1007,69 +2020-07-05,Madison,Illinois,17119,1036,69 +2020-07-06,Madison,Illinois,17119,1043,70 +2020-07-07,Madison,Illinois,17119,1062,70 +2020-07-08,Madison,Illinois,17119,1090,70 +2020-07-09,Madison,Illinois,17119,1111,70 +2020-03-30,Marion,Illinois,17121,2,0 +2020-03-31,Marion,Illinois,17121,2,0 +2020-04-01,Marion,Illinois,17121,2,0 +2020-04-02,Marion,Illinois,17121,2,0 +2020-04-03,Marion,Illinois,17121,3,0 +2020-04-04,Marion,Illinois,17121,3,0 +2020-04-05,Marion,Illinois,17121,3,0 +2020-04-06,Marion,Illinois,17121,3,0 +2020-04-07,Marion,Illinois,17121,3,0 +2020-04-08,Marion,Illinois,17121,4,0 +2020-04-09,Marion,Illinois,17121,10,0 +2020-04-10,Marion,Illinois,17121,12,0 +2020-04-11,Marion,Illinois,17121,13,0 +2020-04-12,Marion,Illinois,17121,13,0 +2020-04-13,Marion,Illinois,17121,13,0 +2020-04-14,Marion,Illinois,17121,14,0 +2020-04-15,Marion,Illinois,17121,17,0 +2020-04-16,Marion,Illinois,17121,17,0 +2020-04-17,Marion,Illinois,17121,17,0 +2020-04-18,Marion,Illinois,17121,19,0 +2020-04-19,Marion,Illinois,17121,20,0 +2020-04-20,Marion,Illinois,17121,20,0 +2020-04-21,Marion,Illinois,17121,25,0 +2020-04-22,Marion,Illinois,17121,24,0 +2020-04-23,Marion,Illinois,17121,25,0 +2020-04-24,Marion,Illinois,17121,26,0 +2020-04-25,Marion,Illinois,17121,26,0 +2020-04-26,Marion,Illinois,17121,26,0 +2020-04-27,Marion,Illinois,17121,26,0 +2020-04-28,Marion,Illinois,17121,28,0 +2020-04-29,Marion,Illinois,17121,29,0 +2020-04-30,Marion,Illinois,17121,33,0 +2020-05-01,Marion,Illinois,17121,34,0 +2020-05-02,Marion,Illinois,17121,34,0 +2020-05-03,Marion,Illinois,17121,34,0 +2020-05-04,Marion,Illinois,17121,35,0 +2020-05-05,Marion,Illinois,17121,36,0 +2020-05-06,Marion,Illinois,17121,38,0 +2020-05-07,Marion,Illinois,17121,40,0 +2020-05-08,Marion,Illinois,17121,41,0 +2020-05-09,Marion,Illinois,17121,43,0 +2020-05-10,Marion,Illinois,17121,44,0 +2020-05-11,Marion,Illinois,17121,47,0 +2020-05-12,Marion,Illinois,17121,47,0 +2020-05-13,Marion,Illinois,17121,47,0 +2020-05-14,Marion,Illinois,17121,47,0 +2020-05-15,Marion,Illinois,17121,47,0 +2020-05-16,Marion,Illinois,17121,48,0 +2020-05-17,Marion,Illinois,17121,48,0 +2020-05-18,Marion,Illinois,17121,48,0 +2020-05-19,Marion,Illinois,17121,49,0 +2020-05-20,Marion,Illinois,17121,49,0 +2020-05-21,Marion,Illinois,17121,50,0 +2020-05-22,Marion,Illinois,17121,50,0 +2020-05-23,Marion,Illinois,17121,50,0 +2020-05-24,Marion,Illinois,17121,50,0 +2020-05-25,Marion,Illinois,17121,50,0 +2020-05-26,Marion,Illinois,17121,50,0 +2020-05-27,Marion,Illinois,17121,50,0 +2020-05-28,Marion,Illinois,17121,50,0 +2020-05-29,Marion,Illinois,17121,50,0 +2020-05-30,Marion,Illinois,17121,50,0 +2020-05-31,Marion,Illinois,17121,50,0 +2020-06-01,Marion,Illinois,17121,50,0 +2020-06-02,Marion,Illinois,17121,50,0 +2020-06-03,Marion,Illinois,17121,51,0 +2020-06-04,Marion,Illinois,17121,51,0 +2020-06-05,Marion,Illinois,17121,52,0 +2020-06-06,Marion,Illinois,17121,55,0 +2020-06-07,Marion,Illinois,17121,55,0 +2020-06-08,Marion,Illinois,17121,55,0 +2020-06-09,Marion,Illinois,17121,55,0 +2020-06-10,Marion,Illinois,17121,55,0 +2020-06-11,Marion,Illinois,17121,55,0 +2020-06-12,Marion,Illinois,17121,55,0 +2020-06-13,Marion,Illinois,17121,55,0 +2020-06-14,Marion,Illinois,17121,55,0 +2020-06-15,Marion,Illinois,17121,55,0 +2020-06-16,Marion,Illinois,17121,55,0 +2020-06-17,Marion,Illinois,17121,55,0 +2020-06-18,Marion,Illinois,17121,55,0 +2020-06-19,Marion,Illinois,17121,57,0 +2020-06-20,Marion,Illinois,17121,57,0 +2020-06-21,Marion,Illinois,17121,60,0 +2020-06-22,Marion,Illinois,17121,60,0 +2020-06-23,Marion,Illinois,17121,62,0 +2020-06-24,Marion,Illinois,17121,63,0 +2020-06-25,Marion,Illinois,17121,65,0 +2020-06-26,Marion,Illinois,17121,65,0 +2020-06-27,Marion,Illinois,17121,65,0 +2020-06-28,Marion,Illinois,17121,65,0 +2020-06-29,Marion,Illinois,17121,65,0 +2020-06-30,Marion,Illinois,17121,65,0 +2020-07-01,Marion,Illinois,17121,66,0 +2020-07-02,Marion,Illinois,17121,66,0 +2020-07-03,Marion,Illinois,17121,68,0 +2020-07-04,Marion,Illinois,17121,69,0 +2020-07-05,Marion,Illinois,17121,69,0 +2020-07-06,Marion,Illinois,17121,70,0 +2020-07-07,Marion,Illinois,17121,70,0 +2020-07-08,Marion,Illinois,17121,73,0 +2020-07-09,Marion,Illinois,17121,77,0 +2020-03-25,Marshall,Illinois,17123,1,0 +2020-03-26,Marshall,Illinois,17123,1,0 +2020-03-27,Marshall,Illinois,17123,1,0 +2020-03-28,Marshall,Illinois,17123,1,0 +2020-03-29,Marshall,Illinois,17123,1,0 +2020-03-30,Marshall,Illinois,17123,1,0 +2020-03-31,Marshall,Illinois,17123,1,0 +2020-04-01,Marshall,Illinois,17123,1,0 +2020-04-02,Marshall,Illinois,17123,1,0 +2020-04-03,Marshall,Illinois,17123,1,0 +2020-04-04,Marshall,Illinois,17123,1,0 +2020-04-05,Marshall,Illinois,17123,1,0 +2020-04-06,Marshall,Illinois,17123,1,0 +2020-04-07,Marshall,Illinois,17123,1,0 +2020-04-08,Marshall,Illinois,17123,1,0 +2020-04-09,Marshall,Illinois,17123,1,0 +2020-04-10,Marshall,Illinois,17123,1,0 +2020-04-11,Marshall,Illinois,17123,1,0 +2020-04-12,Marshall,Illinois,17123,1,0 +2020-04-13,Marshall,Illinois,17123,1,0 +2020-04-14,Marshall,Illinois,17123,2,0 +2020-04-15,Marshall,Illinois,17123,2,0 +2020-04-16,Marshall,Illinois,17123,2,0 +2020-04-17,Marshall,Illinois,17123,2,0 +2020-04-18,Marshall,Illinois,17123,3,0 +2020-04-19,Marshall,Illinois,17123,4,0 +2020-04-20,Marshall,Illinois,17123,4,0 +2020-04-21,Marshall,Illinois,17123,4,0 +2020-04-22,Marshall,Illinois,17123,4,0 +2020-04-23,Marshall,Illinois,17123,4,0 +2020-04-24,Marshall,Illinois,17123,4,0 +2020-04-25,Marshall,Illinois,17123,4,0 +2020-04-26,Marshall,Illinois,17123,4,0 +2020-04-27,Marshall,Illinois,17123,4,0 +2020-04-28,Marshall,Illinois,17123,4,0 +2020-04-29,Marshall,Illinois,17123,4,0 +2020-04-30,Marshall,Illinois,17123,4,0 +2020-05-01,Marshall,Illinois,17123,4,0 +2020-05-02,Marshall,Illinois,17123,4,0 +2020-05-03,Marshall,Illinois,17123,4,0 +2020-05-04,Marshall,Illinois,17123,4,0 +2020-05-05,Marshall,Illinois,17123,4,0 +2020-05-06,Marshall,Illinois,17123,4,0 +2020-05-07,Marshall,Illinois,17123,4,0 +2020-05-08,Marshall,Illinois,17123,4,0 +2020-05-09,Marshall,Illinois,17123,4,0 +2020-05-10,Marshall,Illinois,17123,4,0 +2020-05-11,Marshall,Illinois,17123,4,0 +2020-05-12,Marshall,Illinois,17123,4,0 +2020-05-13,Marshall,Illinois,17123,4,0 +2020-05-14,Marshall,Illinois,17123,4,0 +2020-05-15,Marshall,Illinois,17123,5,0 +2020-05-16,Marshall,Illinois,17123,5,0 +2020-05-17,Marshall,Illinois,17123,5,0 +2020-05-18,Marshall,Illinois,17123,5,0 +2020-05-19,Marshall,Illinois,17123,5,0 +2020-05-20,Marshall,Illinois,17123,5,0 +2020-05-21,Marshall,Illinois,17123,5,0 +2020-05-22,Marshall,Illinois,17123,5,0 +2020-05-23,Marshall,Illinois,17123,5,0 +2020-05-24,Marshall,Illinois,17123,5,0 +2020-05-25,Marshall,Illinois,17123,5,0 +2020-05-26,Marshall,Illinois,17123,5,0 +2020-05-27,Marshall,Illinois,17123,5,0 +2020-05-28,Marshall,Illinois,17123,5,0 +2020-05-29,Marshall,Illinois,17123,5,0 +2020-05-30,Marshall,Illinois,17123,5,0 +2020-05-31,Marshall,Illinois,17123,5,0 +2020-06-01,Marshall,Illinois,17123,5,0 +2020-06-02,Marshall,Illinois,17123,5,0 +2020-06-03,Marshall,Illinois,17123,5,0 +2020-06-04,Marshall,Illinois,17123,5,0 +2020-06-05,Marshall,Illinois,17123,5,0 +2020-06-06,Marshall,Illinois,17123,5,0 +2020-06-07,Marshall,Illinois,17123,5,0 +2020-06-08,Marshall,Illinois,17123,5,0 +2020-06-09,Marshall,Illinois,17123,5,0 +2020-06-10,Marshall,Illinois,17123,5,0 +2020-06-11,Marshall,Illinois,17123,5,0 +2020-06-12,Marshall,Illinois,17123,5,0 +2020-06-13,Marshall,Illinois,17123,5,0 +2020-06-14,Marshall,Illinois,17123,5,0 +2020-06-15,Marshall,Illinois,17123,5,0 +2020-06-16,Marshall,Illinois,17123,5,0 +2020-06-17,Marshall,Illinois,17123,5,0 +2020-06-18,Marshall,Illinois,17123,5,0 +2020-06-19,Marshall,Illinois,17123,6,0 +2020-06-20,Marshall,Illinois,17123,6,0 +2020-06-21,Marshall,Illinois,17123,6,0 +2020-06-22,Marshall,Illinois,17123,6,0 +2020-06-23,Marshall,Illinois,17123,6,0 +2020-06-24,Marshall,Illinois,17123,6,0 +2020-06-25,Marshall,Illinois,17123,7,0 +2020-06-26,Marshall,Illinois,17123,7,0 +2020-06-27,Marshall,Illinois,17123,8,0 +2020-06-28,Marshall,Illinois,17123,8,0 +2020-06-29,Marshall,Illinois,17123,8,0 +2020-06-30,Marshall,Illinois,17123,8,0 +2020-07-01,Marshall,Illinois,17123,8,0 +2020-07-02,Marshall,Illinois,17123,9,0 +2020-07-03,Marshall,Illinois,17123,9,0 +2020-07-04,Marshall,Illinois,17123,10,0 +2020-07-05,Marshall,Illinois,17123,10,0 +2020-07-06,Marshall,Illinois,17123,11,0 +2020-07-07,Marshall,Illinois,17123,12,0 +2020-07-08,Marshall,Illinois,17123,12,0 +2020-07-09,Marshall,Illinois,17123,12,0 +2020-04-04,Mason,Illinois,17125,1,0 +2020-04-05,Mason,Illinois,17125,1,0 +2020-04-06,Mason,Illinois,17125,1,0 +2020-04-07,Mason,Illinois,17125,3,0 +2020-04-08,Mason,Illinois,17125,3,0 +2020-04-09,Mason,Illinois,17125,3,0 +2020-04-10,Mason,Illinois,17125,3,0 +2020-04-11,Mason,Illinois,17125,3,0 +2020-04-12,Mason,Illinois,17125,3,0 +2020-04-13,Mason,Illinois,17125,3,0 +2020-04-14,Mason,Illinois,17125,3,0 +2020-04-15,Mason,Illinois,17125,3,0 +2020-04-16,Mason,Illinois,17125,4,0 +2020-04-17,Mason,Illinois,17125,4,0 +2020-04-18,Mason,Illinois,17125,4,0 +2020-04-19,Mason,Illinois,17125,4,0 +2020-04-20,Mason,Illinois,17125,5,0 +2020-04-21,Mason,Illinois,17125,5,0 +2020-04-22,Mason,Illinois,17125,6,0 +2020-04-23,Mason,Illinois,17125,6,0 +2020-04-24,Mason,Illinois,17125,6,0 +2020-04-25,Mason,Illinois,17125,6,0 +2020-04-26,Mason,Illinois,17125,6,0 +2020-04-27,Mason,Illinois,17125,7,0 +2020-04-28,Mason,Illinois,17125,10,0 +2020-04-29,Mason,Illinois,17125,11,0 +2020-04-30,Mason,Illinois,17125,12,0 +2020-05-01,Mason,Illinois,17125,12,0 +2020-05-02,Mason,Illinois,17125,12,0 +2020-05-03,Mason,Illinois,17125,13,0 +2020-05-04,Mason,Illinois,17125,14,0 +2020-05-05,Mason,Illinois,17125,14,0 +2020-05-06,Mason,Illinois,17125,15,0 +2020-05-07,Mason,Illinois,17125,15,0 +2020-05-08,Mason,Illinois,17125,15,0 +2020-05-09,Mason,Illinois,17125,15,0 +2020-05-10,Mason,Illinois,17125,15,0 +2020-05-11,Mason,Illinois,17125,15,0 +2020-05-12,Mason,Illinois,17125,15,0 +2020-05-13,Mason,Illinois,17125,15,0 +2020-05-14,Mason,Illinois,17125,16,0 +2020-05-15,Mason,Illinois,17125,16,0 +2020-05-16,Mason,Illinois,17125,16,0 +2020-05-17,Mason,Illinois,17125,16,0 +2020-05-18,Mason,Illinois,17125,16,0 +2020-05-19,Mason,Illinois,17125,16,0 +2020-05-20,Mason,Illinois,17125,16,0 +2020-05-21,Mason,Illinois,17125,16,0 +2020-05-22,Mason,Illinois,17125,16,0 +2020-05-23,Mason,Illinois,17125,17,0 +2020-05-24,Mason,Illinois,17125,17,0 +2020-05-25,Mason,Illinois,17125,17,0 +2020-05-26,Mason,Illinois,17125,17,0 +2020-05-27,Mason,Illinois,17125,17,0 +2020-05-28,Mason,Illinois,17125,18,0 +2020-05-29,Mason,Illinois,17125,18,0 +2020-05-30,Mason,Illinois,17125,18,0 +2020-05-31,Mason,Illinois,17125,18,0 +2020-06-01,Mason,Illinois,17125,18,0 +2020-06-02,Mason,Illinois,17125,18,0 +2020-06-03,Mason,Illinois,17125,18,0 +2020-06-04,Mason,Illinois,17125,18,0 +2020-06-05,Mason,Illinois,17125,18,0 +2020-06-06,Mason,Illinois,17125,18,0 +2020-06-07,Mason,Illinois,17125,18,0 +2020-06-08,Mason,Illinois,17125,18,0 +2020-06-09,Mason,Illinois,17125,18,0 +2020-06-10,Mason,Illinois,17125,18,0 +2020-06-11,Mason,Illinois,17125,18,0 +2020-06-12,Mason,Illinois,17125,18,0 +2020-06-13,Mason,Illinois,17125,18,0 +2020-06-14,Mason,Illinois,17125,18,0 +2020-06-15,Mason,Illinois,17125,18,0 +2020-06-16,Mason,Illinois,17125,18,0 +2020-06-17,Mason,Illinois,17125,18,0 +2020-06-18,Mason,Illinois,17125,18,0 +2020-06-19,Mason,Illinois,17125,19,0 +2020-06-20,Mason,Illinois,17125,19,0 +2020-06-21,Mason,Illinois,17125,19,0 +2020-06-22,Mason,Illinois,17125,19,0 +2020-06-23,Mason,Illinois,17125,19,0 +2020-06-24,Mason,Illinois,17125,21,0 +2020-06-25,Mason,Illinois,17125,21,0 +2020-06-26,Mason,Illinois,17125,22,0 +2020-06-27,Mason,Illinois,17125,22,0 +2020-06-28,Mason,Illinois,17125,22,0 +2020-06-29,Mason,Illinois,17125,22,0 +2020-06-30,Mason,Illinois,17125,22,0 +2020-07-01,Mason,Illinois,17125,22,0 +2020-07-02,Mason,Illinois,17125,22,0 +2020-07-03,Mason,Illinois,17125,22,0 +2020-07-04,Mason,Illinois,17125,22,0 +2020-07-05,Mason,Illinois,17125,22,0 +2020-07-06,Mason,Illinois,17125,23,0 +2020-07-07,Mason,Illinois,17125,23,0 +2020-07-08,Mason,Illinois,17125,23,0 +2020-07-09,Mason,Illinois,17125,23,0 +2020-04-01,Massac,Illinois,17127,1,0 +2020-04-02,Massac,Illinois,17127,1,0 +2020-04-03,Massac,Illinois,17127,1,0 +2020-04-04,Massac,Illinois,17127,1,0 +2020-04-05,Massac,Illinois,17127,2,0 +2020-04-06,Massac,Illinois,17127,2,0 +2020-04-07,Massac,Illinois,17127,2,0 +2020-04-08,Massac,Illinois,17127,2,0 +2020-04-09,Massac,Illinois,17127,2,0 +2020-04-10,Massac,Illinois,17127,2,0 +2020-04-11,Massac,Illinois,17127,2,0 +2020-04-12,Massac,Illinois,17127,2,0 +2020-04-13,Massac,Illinois,17127,2,0 +2020-04-14,Massac,Illinois,17127,3,0 +2020-04-15,Massac,Illinois,17127,3,0 +2020-04-16,Massac,Illinois,17127,4,0 +2020-04-17,Massac,Illinois,17127,3,0 +2020-04-18,Massac,Illinois,17127,3,0 +2020-04-19,Massac,Illinois,17127,3,0 +2020-04-20,Massac,Illinois,17127,3,0 +2020-04-21,Massac,Illinois,17127,3,0 +2020-04-22,Massac,Illinois,17127,3,0 +2020-04-23,Massac,Illinois,17127,3,0 +2020-04-24,Massac,Illinois,17127,3,0 +2020-04-25,Massac,Illinois,17127,3,0 +2020-04-26,Massac,Illinois,17127,4,0 +2020-04-27,Massac,Illinois,17127,4,0 +2020-04-28,Massac,Illinois,17127,4,0 +2020-04-29,Massac,Illinois,17127,4,0 +2020-04-30,Massac,Illinois,17127,4,0 +2020-05-01,Massac,Illinois,17127,4,0 +2020-05-02,Massac,Illinois,17127,4,0 +2020-05-03,Massac,Illinois,17127,4,0 +2020-05-04,Massac,Illinois,17127,4,0 +2020-05-05,Massac,Illinois,17127,4,0 +2020-05-06,Massac,Illinois,17127,4,0 +2020-05-07,Massac,Illinois,17127,5,0 +2020-05-08,Massac,Illinois,17127,6,0 +2020-05-09,Massac,Illinois,17127,6,0 +2020-05-10,Massac,Illinois,17127,6,0 +2020-05-11,Massac,Illinois,17127,6,0 +2020-05-12,Massac,Illinois,17127,6,0 +2020-05-13,Massac,Illinois,17127,6,0 +2020-05-14,Massac,Illinois,17127,6,0 +2020-05-15,Massac,Illinois,17127,6,0 +2020-05-16,Massac,Illinois,17127,6,0 +2020-05-17,Massac,Illinois,17127,6,0 +2020-05-18,Massac,Illinois,17127,6,0 +2020-05-19,Massac,Illinois,17127,6,0 +2020-05-20,Massac,Illinois,17127,6,0 +2020-05-21,Massac,Illinois,17127,6,0 +2020-05-22,Massac,Illinois,17127,7,0 +2020-05-23,Massac,Illinois,17127,7,0 +2020-05-24,Massac,Illinois,17127,7,0 +2020-05-25,Massac,Illinois,17127,7,0 +2020-05-26,Massac,Illinois,17127,7,0 +2020-05-27,Massac,Illinois,17127,7,0 +2020-05-28,Massac,Illinois,17127,7,0 +2020-05-29,Massac,Illinois,17127,7,0 +2020-05-30,Massac,Illinois,17127,7,0 +2020-05-31,Massac,Illinois,17127,7,0 +2020-06-01,Massac,Illinois,17127,7,0 +2020-06-02,Massac,Illinois,17127,7,0 +2020-06-03,Massac,Illinois,17127,7,0 +2020-06-04,Massac,Illinois,17127,7,0 +2020-06-05,Massac,Illinois,17127,7,0 +2020-06-06,Massac,Illinois,17127,7,0 +2020-06-07,Massac,Illinois,17127,7,0 +2020-06-08,Massac,Illinois,17127,7,0 +2020-06-09,Massac,Illinois,17127,7,0 +2020-06-10,Massac,Illinois,17127,7,0 +2020-06-11,Massac,Illinois,17127,7,0 +2020-06-12,Massac,Illinois,17127,7,0 +2020-06-13,Massac,Illinois,17127,7,0 +2020-06-14,Massac,Illinois,17127,7,0 +2020-06-15,Massac,Illinois,17127,7,0 +2020-06-16,Massac,Illinois,17127,7,0 +2020-06-17,Massac,Illinois,17127,7,0 +2020-06-18,Massac,Illinois,17127,7,0 +2020-06-19,Massac,Illinois,17127,7,0 +2020-06-20,Massac,Illinois,17127,7,0 +2020-06-21,Massac,Illinois,17127,7,0 +2020-06-22,Massac,Illinois,17127,7,0 +2020-06-23,Massac,Illinois,17127,7,0 +2020-06-24,Massac,Illinois,17127,8,0 +2020-06-25,Massac,Illinois,17127,8,0 +2020-06-26,Massac,Illinois,17127,9,0 +2020-06-27,Massac,Illinois,17127,10,0 +2020-06-28,Massac,Illinois,17127,11,0 +2020-06-29,Massac,Illinois,17127,11,0 +2020-06-30,Massac,Illinois,17127,11,0 +2020-07-01,Massac,Illinois,17127,13,0 +2020-07-02,Massac,Illinois,17127,14,0 +2020-07-03,Massac,Illinois,17127,15,0 +2020-07-04,Massac,Illinois,17127,15,0 +2020-07-05,Massac,Illinois,17127,15,0 +2020-07-06,Massac,Illinois,17127,15,0 +2020-07-07,Massac,Illinois,17127,15,0 +2020-07-08,Massac,Illinois,17127,15,0 +2020-07-09,Massac,Illinois,17127,15,0 +2020-03-29,Menard,Illinois,17129,1,0 +2020-03-30,Menard,Illinois,17129,1,0 +2020-03-31,Menard,Illinois,17129,1,0 +2020-04-01,Menard,Illinois,17129,1,0 +2020-04-02,Menard,Illinois,17129,1,0 +2020-04-03,Menard,Illinois,17129,1,0 +2020-04-04,Menard,Illinois,17129,1,0 +2020-04-05,Menard,Illinois,17129,1,0 +2020-04-06,Menard,Illinois,17129,2,0 +2020-04-07,Menard,Illinois,17129,2,0 +2020-04-08,Menard,Illinois,17129,2,0 +2020-04-09,Menard,Illinois,17129,2,0 +2020-04-10,Menard,Illinois,17129,2,0 +2020-04-11,Menard,Illinois,17129,2,0 +2020-04-12,Menard,Illinois,17129,2,0 +2020-04-13,Menard,Illinois,17129,2,0 +2020-04-14,Menard,Illinois,17129,2,0 +2020-04-15,Menard,Illinois,17129,2,0 +2020-04-16,Menard,Illinois,17129,2,0 +2020-04-17,Menard,Illinois,17129,2,0 +2020-04-18,Menard,Illinois,17129,3,0 +2020-04-19,Menard,Illinois,17129,3,0 +2020-04-20,Menard,Illinois,17129,3,0 +2020-04-21,Menard,Illinois,17129,3,0 +2020-04-22,Menard,Illinois,17129,4,0 +2020-04-23,Menard,Illinois,17129,4,0 +2020-04-24,Menard,Illinois,17129,4,0 +2020-04-25,Menard,Illinois,17129,4,0 +2020-04-26,Menard,Illinois,17129,4,0 +2020-04-27,Menard,Illinois,17129,4,0 +2020-04-28,Menard,Illinois,17129,7,0 +2020-04-29,Menard,Illinois,17129,7,0 +2020-04-30,Menard,Illinois,17129,8,0 +2020-05-01,Menard,Illinois,17129,9,0 +2020-05-02,Menard,Illinois,17129,12,0 +2020-05-03,Menard,Illinois,17129,15,0 +2020-05-04,Menard,Illinois,17129,14,0 +2020-05-05,Menard,Illinois,17129,15,0 +2020-05-06,Menard,Illinois,17129,16,0 +2020-05-07,Menard,Illinois,17129,17,0 +2020-05-08,Menard,Illinois,17129,17,0 +2020-05-09,Menard,Illinois,17129,17,0 +2020-05-10,Menard,Illinois,17129,17,0 +2020-05-11,Menard,Illinois,17129,17,0 +2020-05-12,Menard,Illinois,17129,17,0 +2020-05-13,Menard,Illinois,17129,17,0 +2020-05-14,Menard,Illinois,17129,17,0 +2020-05-15,Menard,Illinois,17129,17,0 +2020-05-16,Menard,Illinois,17129,18,0 +2020-05-17,Menard,Illinois,17129,17,0 +2020-05-18,Menard,Illinois,17129,17,0 +2020-05-19,Menard,Illinois,17129,17,0 +2020-05-20,Menard,Illinois,17129,17,0 +2020-05-21,Menard,Illinois,17129,17,0 +2020-05-22,Menard,Illinois,17129,17,0 +2020-05-23,Menard,Illinois,17129,17,0 +2020-05-24,Menard,Illinois,17129,17,0 +2020-05-25,Menard,Illinois,17129,17,0 +2020-05-26,Menard,Illinois,17129,17,0 +2020-05-27,Menard,Illinois,17129,17,0 +2020-05-28,Menard,Illinois,17129,19,0 +2020-05-29,Menard,Illinois,17129,21,0 +2020-05-30,Menard,Illinois,17129,20,0 +2020-05-31,Menard,Illinois,17129,20,0 +2020-06-01,Menard,Illinois,17129,20,0 +2020-06-02,Menard,Illinois,17129,20,0 +2020-06-03,Menard,Illinois,17129,20,0 +2020-06-04,Menard,Illinois,17129,20,0 +2020-06-05,Menard,Illinois,17129,22,0 +2020-06-06,Menard,Illinois,17129,22,0 +2020-06-07,Menard,Illinois,17129,22,0 +2020-06-08,Menard,Illinois,17129,22,0 +2020-06-09,Menard,Illinois,17129,22,0 +2020-06-10,Menard,Illinois,17129,22,0 +2020-06-11,Menard,Illinois,17129,22,0 +2020-06-12,Menard,Illinois,17129,22,0 +2020-06-13,Menard,Illinois,17129,22,0 +2020-06-14,Menard,Illinois,17129,22,0 +2020-06-15,Menard,Illinois,17129,23,0 +2020-06-16,Menard,Illinois,17129,23,0 +2020-06-17,Menard,Illinois,17129,23,0 +2020-06-18,Menard,Illinois,17129,23,0 +2020-06-19,Menard,Illinois,17129,23,0 +2020-06-20,Menard,Illinois,17129,23,0 +2020-06-21,Menard,Illinois,17129,23,0 +2020-06-22,Menard,Illinois,17129,23,0 +2020-06-23,Menard,Illinois,17129,23,0 +2020-06-24,Menard,Illinois,17129,23,0 +2020-06-25,Menard,Illinois,17129,23,0 +2020-06-26,Menard,Illinois,17129,23,0 +2020-06-27,Menard,Illinois,17129,24,0 +2020-06-28,Menard,Illinois,17129,24,0 +2020-06-29,Menard,Illinois,17129,24,0 +2020-06-30,Menard,Illinois,17129,25,0 +2020-07-01,Menard,Illinois,17129,25,0 +2020-07-02,Menard,Illinois,17129,25,0 +2020-07-03,Menard,Illinois,17129,24,0 +2020-07-04,Menard,Illinois,17129,24,0 +2020-07-05,Menard,Illinois,17129,24,0 +2020-07-06,Menard,Illinois,17129,25,0 +2020-07-07,Menard,Illinois,17129,26,0 +2020-07-08,Menard,Illinois,17129,26,0 +2020-07-09,Menard,Illinois,17129,28,0 +2020-04-02,Mercer,Illinois,17131,1,0 +2020-04-03,Mercer,Illinois,17131,1,0 +2020-04-04,Mercer,Illinois,17131,1,0 +2020-04-05,Mercer,Illinois,17131,2,0 +2020-04-06,Mercer,Illinois,17131,2,0 +2020-04-07,Mercer,Illinois,17131,2,0 +2020-04-08,Mercer,Illinois,17131,2,0 +2020-04-09,Mercer,Illinois,17131,2,0 +2020-04-10,Mercer,Illinois,17131,2,0 +2020-04-11,Mercer,Illinois,17131,2,0 +2020-04-12,Mercer,Illinois,17131,2,0 +2020-04-13,Mercer,Illinois,17131,2,0 +2020-04-14,Mercer,Illinois,17131,3,0 +2020-04-15,Mercer,Illinois,17131,3,0 +2020-04-16,Mercer,Illinois,17131,4,0 +2020-04-17,Mercer,Illinois,17131,4,0 +2020-04-18,Mercer,Illinois,17131,5,0 +2020-04-19,Mercer,Illinois,17131,5,0 +2020-04-20,Mercer,Illinois,17131,5,0 +2020-04-21,Mercer,Illinois,17131,5,0 +2020-04-22,Mercer,Illinois,17131,5,0 +2020-04-23,Mercer,Illinois,17131,6,0 +2020-04-24,Mercer,Illinois,17131,7,0 +2020-04-25,Mercer,Illinois,17131,7,0 +2020-04-26,Mercer,Illinois,17131,7,0 +2020-04-27,Mercer,Illinois,17131,7,0 +2020-04-28,Mercer,Illinois,17131,7,0 +2020-04-29,Mercer,Illinois,17131,7,0 +2020-04-30,Mercer,Illinois,17131,8,0 +2020-05-01,Mercer,Illinois,17131,8,0 +2020-05-02,Mercer,Illinois,17131,8,0 +2020-05-03,Mercer,Illinois,17131,8,0 +2020-05-04,Mercer,Illinois,17131,10,0 +2020-05-05,Mercer,Illinois,17131,10,0 +2020-05-06,Mercer,Illinois,17131,10,0 +2020-05-07,Mercer,Illinois,17131,11,0 +2020-05-08,Mercer,Illinois,17131,11,0 +2020-05-09,Mercer,Illinois,17131,11,0 +2020-05-10,Mercer,Illinois,17131,12,0 +2020-05-11,Mercer,Illinois,17131,12,0 +2020-05-12,Mercer,Illinois,17131,12,0 +2020-05-13,Mercer,Illinois,17131,12,0 +2020-05-14,Mercer,Illinois,17131,13,0 +2020-05-15,Mercer,Illinois,17131,14,0 +2020-05-16,Mercer,Illinois,17131,15,0 +2020-05-17,Mercer,Illinois,17131,14,0 +2020-05-18,Mercer,Illinois,17131,14,0 +2020-05-19,Mercer,Illinois,17131,14,0 +2020-05-20,Mercer,Illinois,17131,13,0 +2020-05-21,Mercer,Illinois,17131,14,0 +2020-05-22,Mercer,Illinois,17131,14,0 +2020-05-23,Mercer,Illinois,17131,14,0 +2020-05-24,Mercer,Illinois,17131,14,0 +2020-05-25,Mercer,Illinois,17131,15,0 +2020-05-26,Mercer,Illinois,17131,15,0 +2020-05-27,Mercer,Illinois,17131,16,0 +2020-05-28,Mercer,Illinois,17131,16,0 +2020-05-29,Mercer,Illinois,17131,17,0 +2020-05-30,Mercer,Illinois,17131,17,0 +2020-05-31,Mercer,Illinois,17131,17,0 +2020-06-01,Mercer,Illinois,17131,17,0 +2020-06-02,Mercer,Illinois,17131,17,0 +2020-06-03,Mercer,Illinois,17131,17,0 +2020-06-04,Mercer,Illinois,17131,18,0 +2020-06-05,Mercer,Illinois,17131,18,0 +2020-06-06,Mercer,Illinois,17131,18,0 +2020-06-07,Mercer,Illinois,17131,18,0 +2020-06-08,Mercer,Illinois,17131,18,0 +2020-06-09,Mercer,Illinois,17131,18,0 +2020-06-10,Mercer,Illinois,17131,18,0 +2020-06-11,Mercer,Illinois,17131,18,0 +2020-06-12,Mercer,Illinois,17131,18,0 +2020-06-13,Mercer,Illinois,17131,18,0 +2020-06-14,Mercer,Illinois,17131,19,0 +2020-06-15,Mercer,Illinois,17131,19,0 +2020-06-16,Mercer,Illinois,17131,19,0 +2020-06-17,Mercer,Illinois,17131,19,0 +2020-06-18,Mercer,Illinois,17131,19,0 +2020-06-19,Mercer,Illinois,17131,19,0 +2020-06-20,Mercer,Illinois,17131,19,0 +2020-06-21,Mercer,Illinois,17131,20,0 +2020-06-22,Mercer,Illinois,17131,20,0 +2020-06-23,Mercer,Illinois,17131,20,0 +2020-06-24,Mercer,Illinois,17131,20,0 +2020-06-25,Mercer,Illinois,17131,20,0 +2020-06-26,Mercer,Illinois,17131,20,0 +2020-06-27,Mercer,Illinois,17131,20,0 +2020-06-28,Mercer,Illinois,17131,19,0 +2020-06-29,Mercer,Illinois,17131,19,0 +2020-06-30,Mercer,Illinois,17131,20,0 +2020-07-01,Mercer,Illinois,17131,20,0 +2020-07-02,Mercer,Illinois,17131,20,0 +2020-07-03,Mercer,Illinois,17131,21,0 +2020-07-04,Mercer,Illinois,17131,23,0 +2020-07-05,Mercer,Illinois,17131,23,0 +2020-07-06,Mercer,Illinois,17131,25,0 +2020-07-07,Mercer,Illinois,17131,25,0 +2020-07-08,Mercer,Illinois,17131,25,0 +2020-07-09,Mercer,Illinois,17131,28,0 +2020-03-23,Monroe,Illinois,17133,1,0 +2020-03-24,Monroe,Illinois,17133,1,0 +2020-03-25,Monroe,Illinois,17133,2,0 +2020-03-26,Monroe,Illinois,17133,3,0 +2020-03-27,Monroe,Illinois,17133,3,0 +2020-03-28,Monroe,Illinois,17133,3,0 +2020-03-29,Monroe,Illinois,17133,3,0 +2020-03-30,Monroe,Illinois,17133,3,0 +2020-03-31,Monroe,Illinois,17133,3,0 +2020-04-01,Monroe,Illinois,17133,3,0 +2020-04-02,Monroe,Illinois,17133,4,0 +2020-04-03,Monroe,Illinois,17133,8,0 +2020-04-04,Monroe,Illinois,17133,9,0 +2020-04-05,Monroe,Illinois,17133,10,0 +2020-04-06,Monroe,Illinois,17133,11,0 +2020-04-07,Monroe,Illinois,17133,12,1 +2020-04-08,Monroe,Illinois,17133,20,1 +2020-04-09,Monroe,Illinois,17133,35,1 +2020-04-10,Monroe,Illinois,17133,42,1 +2020-04-11,Monroe,Illinois,17133,43,1 +2020-04-12,Monroe,Illinois,17133,46,1 +2020-04-13,Monroe,Illinois,17133,46,1 +2020-04-14,Monroe,Illinois,17133,47,3 +2020-04-15,Monroe,Illinois,17133,49,4 +2020-04-16,Monroe,Illinois,17133,50,5 +2020-04-17,Monroe,Illinois,17133,52,6 +2020-04-18,Monroe,Illinois,17133,52,7 +2020-04-19,Monroe,Illinois,17133,53,7 +2020-04-20,Monroe,Illinois,17133,54,7 +2020-04-21,Monroe,Illinois,17133,55,7 +2020-04-22,Monroe,Illinois,17133,58,8 +2020-04-23,Monroe,Illinois,17133,60,8 +2020-04-24,Monroe,Illinois,17133,62,8 +2020-04-25,Monroe,Illinois,17133,63,10 +2020-04-26,Monroe,Illinois,17133,64,10 +2020-04-27,Monroe,Illinois,17133,64,10 +2020-04-28,Monroe,Illinois,17133,67,10 +2020-04-29,Monroe,Illinois,17133,69,10 +2020-04-30,Monroe,Illinois,17133,70,10 +2020-05-01,Monroe,Illinois,17133,71,10 +2020-05-02,Monroe,Illinois,17133,71,10 +2020-05-03,Monroe,Illinois,17133,75,11 +2020-05-04,Monroe,Illinois,17133,73,12 +2020-05-05,Monroe,Illinois,17133,74,11 +2020-05-06,Monroe,Illinois,17133,74,11 +2020-05-07,Monroe,Illinois,17133,77,11 +2020-05-08,Monroe,Illinois,17133,79,11 +2020-05-09,Monroe,Illinois,17133,79,11 +2020-05-10,Monroe,Illinois,17133,79,11 +2020-05-11,Monroe,Illinois,17133,79,11 +2020-05-12,Monroe,Illinois,17133,81,11 +2020-05-13,Monroe,Illinois,17133,81,11 +2020-05-14,Monroe,Illinois,17133,82,11 +2020-05-15,Monroe,Illinois,17133,83,11 +2020-05-16,Monroe,Illinois,17133,86,11 +2020-05-17,Monroe,Illinois,17133,87,11 +2020-05-18,Monroe,Illinois,17133,89,11 +2020-05-19,Monroe,Illinois,17133,90,11 +2020-05-20,Monroe,Illinois,17133,90,11 +2020-05-21,Monroe,Illinois,17133,90,11 +2020-05-22,Monroe,Illinois,17133,91,11 +2020-05-23,Monroe,Illinois,17133,91,11 +2020-05-24,Monroe,Illinois,17133,91,11 +2020-05-25,Monroe,Illinois,17133,92,11 +2020-05-26,Monroe,Illinois,17133,92,11 +2020-05-27,Monroe,Illinois,17133,93,11 +2020-05-28,Monroe,Illinois,17133,93,11 +2020-05-29,Monroe,Illinois,17133,94,11 +2020-05-30,Monroe,Illinois,17133,95,11 +2020-05-31,Monroe,Illinois,17133,95,12 +2020-06-01,Monroe,Illinois,17133,96,12 +2020-06-02,Monroe,Illinois,17133,96,12 +2020-06-03,Monroe,Illinois,17133,97,12 +2020-06-04,Monroe,Illinois,17133,98,12 +2020-06-05,Monroe,Illinois,17133,100,12 +2020-06-06,Monroe,Illinois,17133,100,12 +2020-06-07,Monroe,Illinois,17133,101,12 +2020-06-08,Monroe,Illinois,17133,104,12 +2020-06-09,Monroe,Illinois,17133,105,12 +2020-06-10,Monroe,Illinois,17133,105,12 +2020-06-11,Monroe,Illinois,17133,105,12 +2020-06-12,Monroe,Illinois,17133,106,12 +2020-06-13,Monroe,Illinois,17133,109,12 +2020-06-14,Monroe,Illinois,17133,109,12 +2020-06-15,Monroe,Illinois,17133,112,12 +2020-06-16,Monroe,Illinois,17133,111,12 +2020-06-17,Monroe,Illinois,17133,109,12 +2020-06-18,Monroe,Illinois,17133,110,12 +2020-06-19,Monroe,Illinois,17133,111,12 +2020-06-20,Monroe,Illinois,17133,112,12 +2020-06-21,Monroe,Illinois,17133,113,12 +2020-06-22,Monroe,Illinois,17133,116,12 +2020-06-23,Monroe,Illinois,17133,116,12 +2020-06-24,Monroe,Illinois,17133,117,12 +2020-06-25,Monroe,Illinois,17133,118,13 +2020-06-26,Monroe,Illinois,17133,120,13 +2020-06-27,Monroe,Illinois,17133,123,13 +2020-06-28,Monroe,Illinois,17133,123,13 +2020-06-29,Monroe,Illinois,17133,126,13 +2020-06-30,Monroe,Illinois,17133,127,13 +2020-07-01,Monroe,Illinois,17133,127,13 +2020-07-02,Monroe,Illinois,17133,128,13 +2020-07-03,Monroe,Illinois,17133,129,13 +2020-07-04,Monroe,Illinois,17133,129,13 +2020-07-05,Monroe,Illinois,17133,130,13 +2020-07-06,Monroe,Illinois,17133,137,13 +2020-07-07,Monroe,Illinois,17133,137,13 +2020-07-08,Monroe,Illinois,17133,141,13 +2020-07-09,Monroe,Illinois,17133,147,13 +2020-03-29,Montgomery,Illinois,17135,1,0 +2020-03-30,Montgomery,Illinois,17135,1,0 +2020-03-31,Montgomery,Illinois,17135,2,0 +2020-04-01,Montgomery,Illinois,17135,2,0 +2020-04-02,Montgomery,Illinois,17135,2,0 +2020-04-03,Montgomery,Illinois,17135,2,0 +2020-04-04,Montgomery,Illinois,17135,2,0 +2020-04-05,Montgomery,Illinois,17135,3,1 +2020-04-06,Montgomery,Illinois,17135,2,0 +2020-04-07,Montgomery,Illinois,17135,2,0 +2020-04-08,Montgomery,Illinois,17135,4,1 +2020-04-09,Montgomery,Illinois,17135,6,1 +2020-04-10,Montgomery,Illinois,17135,8,0 +2020-04-11,Montgomery,Illinois,17135,8,0 +2020-04-12,Montgomery,Illinois,17135,8,0 +2020-04-13,Montgomery,Illinois,17135,9,0 +2020-04-14,Montgomery,Illinois,17135,9,0 +2020-04-15,Montgomery,Illinois,17135,9,0 +2020-04-16,Montgomery,Illinois,17135,9,0 +2020-04-17,Montgomery,Illinois,17135,11,0 +2020-04-18,Montgomery,Illinois,17135,13,0 +2020-04-19,Montgomery,Illinois,17135,14,0 +2020-04-20,Montgomery,Illinois,17135,16,0 +2020-04-21,Montgomery,Illinois,17135,17,0 +2020-04-22,Montgomery,Illinois,17135,21,0 +2020-04-23,Montgomery,Illinois,17135,21,0 +2020-04-24,Montgomery,Illinois,17135,23,0 +2020-04-25,Montgomery,Illinois,17135,23,0 +2020-04-26,Montgomery,Illinois,17135,23,0 +2020-04-27,Montgomery,Illinois,17135,23,0 +2020-04-28,Montgomery,Illinois,17135,24,0 +2020-04-29,Montgomery,Illinois,17135,25,0 +2020-04-30,Montgomery,Illinois,17135,26,0 +2020-05-01,Montgomery,Illinois,17135,26,0 +2020-05-02,Montgomery,Illinois,17135,27,0 +2020-05-03,Montgomery,Illinois,17135,28,0 +2020-05-04,Montgomery,Illinois,17135,29,0 +2020-05-05,Montgomery,Illinois,17135,30,0 +2020-05-06,Montgomery,Illinois,17135,33,0 +2020-05-07,Montgomery,Illinois,17135,33,0 +2020-05-08,Montgomery,Illinois,17135,34,0 +2020-05-09,Montgomery,Illinois,17135,34,0 +2020-05-10,Montgomery,Illinois,17135,34,0 +2020-05-11,Montgomery,Illinois,17135,34,0 +2020-05-12,Montgomery,Illinois,17135,34,0 +2020-05-13,Montgomery,Illinois,17135,34,0 +2020-05-14,Montgomery,Illinois,17135,36,0 +2020-05-15,Montgomery,Illinois,17135,36,0 +2020-05-16,Montgomery,Illinois,17135,37,0 +2020-05-17,Montgomery,Illinois,17135,38,0 +2020-05-18,Montgomery,Illinois,17135,39,0 +2020-05-19,Montgomery,Illinois,17135,39,0 +2020-05-20,Montgomery,Illinois,17135,39,0 +2020-05-21,Montgomery,Illinois,17135,38,0 +2020-05-22,Montgomery,Illinois,17135,38,0 +2020-05-23,Montgomery,Illinois,17135,38,0 +2020-05-24,Montgomery,Illinois,17135,39,0 +2020-05-25,Montgomery,Illinois,17135,39,0 +2020-05-26,Montgomery,Illinois,17135,39,0 +2020-05-27,Montgomery,Illinois,17135,39,0 +2020-05-28,Montgomery,Illinois,17135,39,0 +2020-05-29,Montgomery,Illinois,17135,39,0 +2020-05-30,Montgomery,Illinois,17135,39,0 +2020-05-31,Montgomery,Illinois,17135,39,0 +2020-06-01,Montgomery,Illinois,17135,39,0 +2020-06-02,Montgomery,Illinois,17135,40,0 +2020-06-03,Montgomery,Illinois,17135,40,0 +2020-06-04,Montgomery,Illinois,17135,41,0 +2020-06-05,Montgomery,Illinois,17135,41,0 +2020-06-06,Montgomery,Illinois,17135,41,0 +2020-06-07,Montgomery,Illinois,17135,41,0 +2020-06-08,Montgomery,Illinois,17135,41,0 +2020-06-09,Montgomery,Illinois,17135,41,0 +2020-06-10,Montgomery,Illinois,17135,41,0 +2020-06-11,Montgomery,Illinois,17135,41,0 +2020-06-12,Montgomery,Illinois,17135,41,0 +2020-06-13,Montgomery,Illinois,17135,41,0 +2020-06-14,Montgomery,Illinois,17135,41,0 +2020-06-15,Montgomery,Illinois,17135,42,0 +2020-06-16,Montgomery,Illinois,17135,42,0 +2020-06-17,Montgomery,Illinois,17135,41,0 +2020-06-18,Montgomery,Illinois,17135,41,0 +2020-06-19,Montgomery,Illinois,17135,42,0 +2020-06-20,Montgomery,Illinois,17135,41,0 +2020-06-21,Montgomery,Illinois,17135,41,0 +2020-06-22,Montgomery,Illinois,17135,41,0 +2020-06-23,Montgomery,Illinois,17135,41,0 +2020-06-24,Montgomery,Illinois,17135,41,0 +2020-06-25,Montgomery,Illinois,17135,41,0 +2020-06-26,Montgomery,Illinois,17135,41,0 +2020-06-27,Montgomery,Illinois,17135,41,0 +2020-06-28,Montgomery,Illinois,17135,41,0 +2020-06-29,Montgomery,Illinois,17135,42,0 +2020-06-30,Montgomery,Illinois,17135,44,0 +2020-07-01,Montgomery,Illinois,17135,44,0 +2020-07-02,Montgomery,Illinois,17135,45,0 +2020-07-03,Montgomery,Illinois,17135,46,0 +2020-07-04,Montgomery,Illinois,17135,48,0 +2020-07-05,Montgomery,Illinois,17135,48,0 +2020-07-06,Montgomery,Illinois,17135,49,0 +2020-07-07,Montgomery,Illinois,17135,56,0 +2020-07-08,Montgomery,Illinois,17135,59,0 +2020-07-09,Montgomery,Illinois,17135,64,0 +2020-03-25,Morgan,Illinois,17137,1,0 +2020-03-26,Morgan,Illinois,17137,1,0 +2020-03-27,Morgan,Illinois,17137,1,0 +2020-03-28,Morgan,Illinois,17137,3,0 +2020-03-29,Morgan,Illinois,17137,3,0 +2020-03-30,Morgan,Illinois,17137,4,1 +2020-03-31,Morgan,Illinois,17137,4,1 +2020-04-01,Morgan,Illinois,17137,5,1 +2020-04-02,Morgan,Illinois,17137,5,1 +2020-04-03,Morgan,Illinois,17137,5,1 +2020-04-04,Morgan,Illinois,17137,6,1 +2020-04-05,Morgan,Illinois,17137,6,1 +2020-04-06,Morgan,Illinois,17137,7,1 +2020-04-07,Morgan,Illinois,17137,8,1 +2020-04-08,Morgan,Illinois,17137,8,1 +2020-04-09,Morgan,Illinois,17137,10,1 +2020-04-10,Morgan,Illinois,17137,10,1 +2020-04-11,Morgan,Illinois,17137,10,1 +2020-04-12,Morgan,Illinois,17137,10,1 +2020-04-13,Morgan,Illinois,17137,10,1 +2020-04-14,Morgan,Illinois,17137,11,1 +2020-04-15,Morgan,Illinois,17137,10,1 +2020-04-16,Morgan,Illinois,17137,11,1 +2020-04-17,Morgan,Illinois,17137,12,1 +2020-04-18,Morgan,Illinois,17137,12,1 +2020-04-19,Morgan,Illinois,17137,12,1 +2020-04-20,Morgan,Illinois,17137,13,1 +2020-04-21,Morgan,Illinois,17137,13,1 +2020-04-22,Morgan,Illinois,17137,14,1 +2020-04-23,Morgan,Illinois,17137,14,1 +2020-04-24,Morgan,Illinois,17137,15,1 +2020-04-25,Morgan,Illinois,17137,15,1 +2020-04-26,Morgan,Illinois,17137,16,1 +2020-04-27,Morgan,Illinois,17137,18,1 +2020-04-28,Morgan,Illinois,17137,21,1 +2020-04-29,Morgan,Illinois,17137,22,1 +2020-04-30,Morgan,Illinois,17137,22,1 +2020-05-01,Morgan,Illinois,17137,24,1 +2020-05-02,Morgan,Illinois,17137,24,1 +2020-05-03,Morgan,Illinois,17137,24,1 +2020-05-04,Morgan,Illinois,17137,24,1 +2020-05-05,Morgan,Illinois,17137,26,1 +2020-05-06,Morgan,Illinois,17137,26,1 +2020-05-07,Morgan,Illinois,17137,27,1 +2020-05-08,Morgan,Illinois,17137,28,1 +2020-05-09,Morgan,Illinois,17137,30,1 +2020-05-10,Morgan,Illinois,17137,30,1 +2020-05-11,Morgan,Illinois,17137,30,1 +2020-05-12,Morgan,Illinois,17137,32,1 +2020-05-13,Morgan,Illinois,17137,33,1 +2020-05-14,Morgan,Illinois,17137,34,1 +2020-05-15,Morgan,Illinois,17137,35,1 +2020-05-16,Morgan,Illinois,17137,35,1 +2020-05-17,Morgan,Illinois,17137,36,1 +2020-05-18,Morgan,Illinois,17137,36,1 +2020-05-19,Morgan,Illinois,17137,35,1 +2020-05-20,Morgan,Illinois,17137,34,1 +2020-05-21,Morgan,Illinois,17137,34,1 +2020-05-22,Morgan,Illinois,17137,34,1 +2020-05-23,Morgan,Illinois,17137,34,1 +2020-05-24,Morgan,Illinois,17137,34,1 +2020-05-25,Morgan,Illinois,17137,34,1 +2020-05-26,Morgan,Illinois,17137,34,1 +2020-05-27,Morgan,Illinois,17137,34,1 +2020-05-28,Morgan,Illinois,17137,34,1 +2020-05-29,Morgan,Illinois,17137,35,1 +2020-05-30,Morgan,Illinois,17137,36,1 +2020-05-31,Morgan,Illinois,17137,36,1 +2020-06-01,Morgan,Illinois,17137,36,1 +2020-06-02,Morgan,Illinois,17137,38,1 +2020-06-03,Morgan,Illinois,17137,39,1 +2020-06-04,Morgan,Illinois,17137,42,1 +2020-06-05,Morgan,Illinois,17137,42,1 +2020-06-06,Morgan,Illinois,17137,46,1 +2020-06-07,Morgan,Illinois,17137,47,1 +2020-06-08,Morgan,Illinois,17137,47,1 +2020-06-09,Morgan,Illinois,17137,55,1 +2020-06-10,Morgan,Illinois,17137,56,1 +2020-06-11,Morgan,Illinois,17137,100,1 +2020-06-12,Morgan,Illinois,17137,105,2 +2020-06-13,Morgan,Illinois,17137,105,2 +2020-06-14,Morgan,Illinois,17137,106,2 +2020-06-15,Morgan,Illinois,17137,106,2 +2020-06-16,Morgan,Illinois,17137,108,2 +2020-06-17,Morgan,Illinois,17137,110,2 +2020-06-18,Morgan,Illinois,17137,118,2 +2020-06-19,Morgan,Illinois,17137,119,3 +2020-06-20,Morgan,Illinois,17137,119,3 +2020-06-21,Morgan,Illinois,17137,119,3 +2020-06-22,Morgan,Illinois,17137,119,3 +2020-06-23,Morgan,Illinois,17137,121,3 +2020-06-24,Morgan,Illinois,17137,123,3 +2020-06-25,Morgan,Illinois,17137,123,3 +2020-06-26,Morgan,Illinois,17137,124,3 +2020-06-27,Morgan,Illinois,17137,126,3 +2020-06-28,Morgan,Illinois,17137,126,3 +2020-06-29,Morgan,Illinois,17137,127,3 +2020-06-30,Morgan,Illinois,17137,128,3 +2020-07-01,Morgan,Illinois,17137,128,3 +2020-07-02,Morgan,Illinois,17137,129,3 +2020-07-03,Morgan,Illinois,17137,130,3 +2020-07-04,Morgan,Illinois,17137,130,3 +2020-07-05,Morgan,Illinois,17137,130,3 +2020-07-06,Morgan,Illinois,17137,130,3 +2020-07-07,Morgan,Illinois,17137,132,3 +2020-07-08,Morgan,Illinois,17137,132,3 +2020-07-09,Morgan,Illinois,17137,132,3 +2020-04-02,Moultrie,Illinois,17139,1,0 +2020-04-03,Moultrie,Illinois,17139,1,0 +2020-04-04,Moultrie,Illinois,17139,1,0 +2020-04-05,Moultrie,Illinois,17139,1,0 +2020-04-06,Moultrie,Illinois,17139,1,0 +2020-04-07,Moultrie,Illinois,17139,2,0 +2020-04-08,Moultrie,Illinois,17139,2,0 +2020-04-09,Moultrie,Illinois,17139,2,0 +2020-04-10,Moultrie,Illinois,17139,2,0 +2020-04-11,Moultrie,Illinois,17139,3,0 +2020-04-12,Moultrie,Illinois,17139,2,0 +2020-04-13,Moultrie,Illinois,17139,2,0 +2020-04-14,Moultrie,Illinois,17139,2,0 +2020-04-15,Moultrie,Illinois,17139,2,0 +2020-04-16,Moultrie,Illinois,17139,2,0 +2020-04-17,Moultrie,Illinois,17139,2,0 +2020-04-18,Moultrie,Illinois,17139,2,0 +2020-04-19,Moultrie,Illinois,17139,2,0 +2020-04-20,Moultrie,Illinois,17139,2,0 +2020-04-21,Moultrie,Illinois,17139,2,0 +2020-04-22,Moultrie,Illinois,17139,2,0 +2020-04-23,Moultrie,Illinois,17139,2,0 +2020-04-24,Moultrie,Illinois,17139,4,0 +2020-04-25,Moultrie,Illinois,17139,4,0 +2020-04-26,Moultrie,Illinois,17139,4,0 +2020-04-27,Moultrie,Illinois,17139,4,0 +2020-04-28,Moultrie,Illinois,17139,5,0 +2020-04-29,Moultrie,Illinois,17139,5,0 +2020-04-30,Moultrie,Illinois,17139,5,0 +2020-05-01,Moultrie,Illinois,17139,5,0 +2020-05-02,Moultrie,Illinois,17139,5,0 +2020-05-03,Moultrie,Illinois,17139,5,0 +2020-05-04,Moultrie,Illinois,17139,5,0 +2020-05-05,Moultrie,Illinois,17139,6,0 +2020-05-06,Moultrie,Illinois,17139,6,0 +2020-05-07,Moultrie,Illinois,17139,6,0 +2020-05-08,Moultrie,Illinois,17139,6,0 +2020-05-09,Moultrie,Illinois,17139,6,0 +2020-05-10,Moultrie,Illinois,17139,6,0 +2020-05-11,Moultrie,Illinois,17139,6,0 +2020-05-12,Moultrie,Illinois,17139,6,0 +2020-05-13,Moultrie,Illinois,17139,6,0 +2020-05-14,Moultrie,Illinois,17139,6,0 +2020-05-15,Moultrie,Illinois,17139,7,0 +2020-05-16,Moultrie,Illinois,17139,8,0 +2020-05-17,Moultrie,Illinois,17139,9,0 +2020-05-18,Moultrie,Illinois,17139,8,0 +2020-05-19,Moultrie,Illinois,17139,8,0 +2020-05-20,Moultrie,Illinois,17139,8,0 +2020-05-21,Moultrie,Illinois,17139,8,0 +2020-05-22,Moultrie,Illinois,17139,8,0 +2020-05-23,Moultrie,Illinois,17139,9,0 +2020-05-24,Moultrie,Illinois,17139,9,0 +2020-05-25,Moultrie,Illinois,17139,10,0 +2020-05-26,Moultrie,Illinois,17139,10,0 +2020-05-27,Moultrie,Illinois,17139,10,0 +2020-05-28,Moultrie,Illinois,17139,10,0 +2020-05-29,Moultrie,Illinois,17139,11,0 +2020-05-30,Moultrie,Illinois,17139,11,0 +2020-05-31,Moultrie,Illinois,17139,11,0 +2020-06-01,Moultrie,Illinois,17139,11,0 +2020-06-02,Moultrie,Illinois,17139,11,0 +2020-06-03,Moultrie,Illinois,17139,12,0 +2020-06-04,Moultrie,Illinois,17139,12,0 +2020-06-05,Moultrie,Illinois,17139,12,0 +2020-06-06,Moultrie,Illinois,17139,12,0 +2020-06-07,Moultrie,Illinois,17139,12,0 +2020-06-08,Moultrie,Illinois,17139,13,0 +2020-06-09,Moultrie,Illinois,17139,13,0 +2020-06-10,Moultrie,Illinois,17139,14,0 +2020-06-11,Moultrie,Illinois,17139,13,0 +2020-06-12,Moultrie,Illinois,17139,13,0 +2020-06-13,Moultrie,Illinois,17139,13,0 +2020-06-14,Moultrie,Illinois,17139,15,0 +2020-06-15,Moultrie,Illinois,17139,15,0 +2020-06-16,Moultrie,Illinois,17139,15,0 +2020-06-17,Moultrie,Illinois,17139,16,0 +2020-06-18,Moultrie,Illinois,17139,15,0 +2020-06-19,Moultrie,Illinois,17139,15,0 +2020-06-20,Moultrie,Illinois,17139,15,0 +2020-06-21,Moultrie,Illinois,17139,15,0 +2020-06-22,Moultrie,Illinois,17139,15,0 +2020-06-23,Moultrie,Illinois,17139,15,0 +2020-06-24,Moultrie,Illinois,17139,15,0 +2020-06-25,Moultrie,Illinois,17139,16,0 +2020-06-26,Moultrie,Illinois,17139,17,0 +2020-06-27,Moultrie,Illinois,17139,17,0 +2020-06-28,Moultrie,Illinois,17139,17,0 +2020-06-29,Moultrie,Illinois,17139,17,0 +2020-06-30,Moultrie,Illinois,17139,17,0 +2020-07-01,Moultrie,Illinois,17139,18,0 +2020-07-02,Moultrie,Illinois,17139,18,0 +2020-07-03,Moultrie,Illinois,17139,19,0 +2020-07-04,Moultrie,Illinois,17139,19,0 +2020-07-05,Moultrie,Illinois,17139,19,0 +2020-07-06,Moultrie,Illinois,17139,19,0 +2020-07-07,Moultrie,Illinois,17139,19,0 +2020-07-08,Moultrie,Illinois,17139,19,0 +2020-07-09,Moultrie,Illinois,17139,19,0 +2020-03-31,Ogle,Illinois,17141,1,0 +2020-04-01,Ogle,Illinois,17141,1,0 +2020-04-02,Ogle,Illinois,17141,1,0 +2020-04-03,Ogle,Illinois,17141,1,0 +2020-04-04,Ogle,Illinois,17141,4,0 +2020-04-05,Ogle,Illinois,17141,5,0 +2020-04-06,Ogle,Illinois,17141,7,0 +2020-04-07,Ogle,Illinois,17141,10,0 +2020-04-08,Ogle,Illinois,17141,12,0 +2020-04-09,Ogle,Illinois,17141,14,1 +2020-04-10,Ogle,Illinois,17141,16,1 +2020-04-11,Ogle,Illinois,17141,16,1 +2020-04-12,Ogle,Illinois,17141,18,1 +2020-04-13,Ogle,Illinois,17141,26,1 +2020-04-14,Ogle,Illinois,17141,26,1 +2020-04-15,Ogle,Illinois,17141,28,1 +2020-04-16,Ogle,Illinois,17141,29,1 +2020-04-17,Ogle,Illinois,17141,40,1 +2020-04-18,Ogle,Illinois,17141,48,1 +2020-04-19,Ogle,Illinois,17141,48,1 +2020-04-20,Ogle,Illinois,17141,58,1 +2020-04-21,Ogle,Illinois,17141,59,1 +2020-04-22,Ogle,Illinois,17141,71,1 +2020-04-23,Ogle,Illinois,17141,71,1 +2020-04-24,Ogle,Illinois,17141,75,1 +2020-04-25,Ogle,Illinois,17141,85,1 +2020-04-26,Ogle,Illinois,17141,87,1 +2020-04-27,Ogle,Illinois,17141,105,1 +2020-04-28,Ogle,Illinois,17141,110,1 +2020-04-29,Ogle,Illinois,17141,111,1 +2020-04-30,Ogle,Illinois,17141,119,1 +2020-05-01,Ogle,Illinois,17141,122,2 +2020-05-02,Ogle,Illinois,17141,122,2 +2020-05-03,Ogle,Illinois,17141,129,2 +2020-05-04,Ogle,Illinois,17141,132,3 +2020-05-05,Ogle,Illinois,17141,133,2 +2020-05-06,Ogle,Illinois,17141,137,2 +2020-05-07,Ogle,Illinois,17141,139,2 +2020-05-08,Ogle,Illinois,17141,141,2 +2020-05-09,Ogle,Illinois,17141,148,2 +2020-05-10,Ogle,Illinois,17141,149,2 +2020-05-11,Ogle,Illinois,17141,157,2 +2020-05-12,Ogle,Illinois,17141,171,2 +2020-05-13,Ogle,Illinois,17141,173,2 +2020-05-14,Ogle,Illinois,17141,174,2 +2020-05-15,Ogle,Illinois,17141,174,2 +2020-05-16,Ogle,Illinois,17141,174,2 +2020-05-17,Ogle,Illinois,17141,174,2 +2020-05-18,Ogle,Illinois,17141,180,2 +2020-05-19,Ogle,Illinois,17141,184,2 +2020-05-20,Ogle,Illinois,17141,184,2 +2020-05-21,Ogle,Illinois,17141,192,2 +2020-05-22,Ogle,Illinois,17141,193,2 +2020-05-23,Ogle,Illinois,17141,193,2 +2020-05-24,Ogle,Illinois,17141,193,2 +2020-05-25,Ogle,Illinois,17141,193,2 +2020-05-26,Ogle,Illinois,17141,202,2 +2020-05-27,Ogle,Illinois,17141,204,3 +2020-05-28,Ogle,Illinois,17141,208,3 +2020-05-29,Ogle,Illinois,17141,211,3 +2020-05-30,Ogle,Illinois,17141,211,3 +2020-05-31,Ogle,Illinois,17141,211,3 +2020-06-01,Ogle,Illinois,17141,218,4 +2020-06-02,Ogle,Illinois,17141,220,4 +2020-06-03,Ogle,Illinois,17141,223,4 +2020-06-04,Ogle,Illinois,17141,224,4 +2020-06-05,Ogle,Illinois,17141,225,4 +2020-06-06,Ogle,Illinois,17141,225,4 +2020-06-07,Ogle,Illinois,17141,225,4 +2020-06-08,Ogle,Illinois,17141,230,4 +2020-06-09,Ogle,Illinois,17141,231,4 +2020-06-10,Ogle,Illinois,17141,231,4 +2020-06-11,Ogle,Illinois,17141,231,4 +2020-06-12,Ogle,Illinois,17141,231,4 +2020-06-13,Ogle,Illinois,17141,231,4 +2020-06-14,Ogle,Illinois,17141,231,4 +2020-06-15,Ogle,Illinois,17141,234,4 +2020-06-16,Ogle,Illinois,17141,236,4 +2020-06-17,Ogle,Illinois,17141,237,4 +2020-06-18,Ogle,Illinois,17141,240,4 +2020-06-19,Ogle,Illinois,17141,241,4 +2020-06-20,Ogle,Illinois,17141,241,4 +2020-06-21,Ogle,Illinois,17141,241,4 +2020-06-22,Ogle,Illinois,17141,244,4 +2020-06-23,Ogle,Illinois,17141,245,4 +2020-06-24,Ogle,Illinois,17141,245,4 +2020-06-25,Ogle,Illinois,17141,251,4 +2020-06-26,Ogle,Illinois,17141,252,4 +2020-06-27,Ogle,Illinois,17141,252,4 +2020-06-28,Ogle,Illinois,17141,252,4 +2020-06-29,Ogle,Illinois,17141,256,4 +2020-06-30,Ogle,Illinois,17141,267,4 +2020-07-01,Ogle,Illinois,17141,273,4 +2020-07-02,Ogle,Illinois,17141,277,4 +2020-07-03,Ogle,Illinois,17141,277,4 +2020-07-04,Ogle,Illinois,17141,277,4 +2020-07-05,Ogle,Illinois,17141,277,4 +2020-07-06,Ogle,Illinois,17141,290,4 +2020-07-07,Ogle,Illinois,17141,291,4 +2020-07-08,Ogle,Illinois,17141,294,4 +2020-07-09,Ogle,Illinois,17141,305,4 +2020-03-16,Peoria,Illinois,17143,1,0 +2020-03-17,Peoria,Illinois,17143,1,0 +2020-03-18,Peoria,Illinois,17143,3,0 +2020-03-19,Peoria,Illinois,17143,3,0 +2020-03-20,Peoria,Illinois,17143,3,0 +2020-03-21,Peoria,Illinois,17143,3,0 +2020-03-22,Peoria,Illinois,17143,3,0 +2020-03-23,Peoria,Illinois,17143,3,0 +2020-03-24,Peoria,Illinois,17143,3,0 +2020-03-25,Peoria,Illinois,17143,4,0 +2020-03-26,Peoria,Illinois,17143,5,0 +2020-03-27,Peoria,Illinois,17143,6,0 +2020-03-28,Peoria,Illinois,17143,7,0 +2020-03-29,Peoria,Illinois,17143,8,0 +2020-03-30,Peoria,Illinois,17143,8,0 +2020-03-31,Peoria,Illinois,17143,8,0 +2020-04-01,Peoria,Illinois,17143,10,0 +2020-04-02,Peoria,Illinois,17143,11,0 +2020-04-03,Peoria,Illinois,17143,11,0 +2020-04-04,Peoria,Illinois,17143,11,0 +2020-04-05,Peoria,Illinois,17143,14,2 +2020-04-06,Peoria,Illinois,17143,12,1 +2020-04-07,Peoria,Illinois,17143,13,1 +2020-04-08,Peoria,Illinois,17143,16,1 +2020-04-09,Peoria,Illinois,17143,16,1 +2020-04-10,Peoria,Illinois,17143,20,1 +2020-04-11,Peoria,Illinois,17143,23,1 +2020-04-12,Peoria,Illinois,17143,27,1 +2020-04-13,Peoria,Illinois,17143,30,1 +2020-04-14,Peoria,Illinois,17143,31,1 +2020-04-15,Peoria,Illinois,17143,33,1 +2020-04-16,Peoria,Illinois,17143,34,1 +2020-04-17,Peoria,Illinois,17143,34,1 +2020-04-18,Peoria,Illinois,17143,37,2 +2020-04-19,Peoria,Illinois,17143,39,2 +2020-04-20,Peoria,Illinois,17143,43,2 +2020-04-21,Peoria,Illinois,17143,44,2 +2020-04-22,Peoria,Illinois,17143,46,2 +2020-04-23,Peoria,Illinois,17143,54,2 +2020-04-24,Peoria,Illinois,17143,56,2 +2020-04-25,Peoria,Illinois,17143,60,2 +2020-04-26,Peoria,Illinois,17143,65,2 +2020-04-27,Peoria,Illinois,17143,68,2 +2020-04-28,Peoria,Illinois,17143,78,2 +2020-04-29,Peoria,Illinois,17143,85,2 +2020-04-30,Peoria,Illinois,17143,86,3 +2020-05-01,Peoria,Illinois,17143,93,3 +2020-05-02,Peoria,Illinois,17143,101,3 +2020-05-03,Peoria,Illinois,17143,106,3 +2020-05-04,Peoria,Illinois,17143,107,3 +2020-05-05,Peoria,Illinois,17143,113,3 +2020-05-06,Peoria,Illinois,17143,126,4 +2020-05-07,Peoria,Illinois,17143,130,5 +2020-05-08,Peoria,Illinois,17143,132,5 +2020-05-09,Peoria,Illinois,17143,136,5 +2020-05-10,Peoria,Illinois,17143,139,5 +2020-05-11,Peoria,Illinois,17143,142,6 +2020-05-12,Peoria,Illinois,17143,145,6 +2020-05-13,Peoria,Illinois,17143,148,6 +2020-05-14,Peoria,Illinois,17143,151,6 +2020-05-15,Peoria,Illinois,17143,156,6 +2020-05-16,Peoria,Illinois,17143,156,6 +2020-05-17,Peoria,Illinois,17143,159,6 +2020-05-18,Peoria,Illinois,17143,160,6 +2020-05-19,Peoria,Illinois,17143,165,6 +2020-05-20,Peoria,Illinois,17143,167,6 +2020-05-21,Peoria,Illinois,17143,169,6 +2020-05-22,Peoria,Illinois,17143,176,7 +2020-05-23,Peoria,Illinois,17143,177,8 +2020-05-24,Peoria,Illinois,17143,178,8 +2020-05-25,Peoria,Illinois,17143,181,8 +2020-05-26,Peoria,Illinois,17143,186,8 +2020-05-27,Peoria,Illinois,17143,189,8 +2020-05-28,Peoria,Illinois,17143,192,8 +2020-05-29,Peoria,Illinois,17143,213,8 +2020-05-30,Peoria,Illinois,17143,225,8 +2020-05-31,Peoria,Illinois,17143,234,9 +2020-06-01,Peoria,Illinois,17143,241,9 +2020-06-02,Peoria,Illinois,17143,265,11 +2020-06-03,Peoria,Illinois,17143,275,11 +2020-06-04,Peoria,Illinois,17143,288,11 +2020-06-05,Peoria,Illinois,17143,301,11 +2020-06-06,Peoria,Illinois,17143,310,11 +2020-06-07,Peoria,Illinois,17143,315,11 +2020-06-08,Peoria,Illinois,17143,324,13 +2020-06-09,Peoria,Illinois,17143,328,16 +2020-06-10,Peoria,Illinois,17143,342,19 +2020-06-11,Peoria,Illinois,17143,354,19 +2020-06-12,Peoria,Illinois,17143,367,19 +2020-06-13,Peoria,Illinois,17143,386,20 +2020-06-14,Peoria,Illinois,17143,389,20 +2020-06-15,Peoria,Illinois,17143,395,20 +2020-06-16,Peoria,Illinois,17143,399,21 +2020-06-17,Peoria,Illinois,17143,406,21 +2020-06-18,Peoria,Illinois,17143,411,21 +2020-06-19,Peoria,Illinois,17143,419,23 +2020-06-20,Peoria,Illinois,17143,424,25 +2020-06-21,Peoria,Illinois,17143,428,25 +2020-06-22,Peoria,Illinois,17143,434,26 +2020-06-23,Peoria,Illinois,17143,446,26 +2020-06-24,Peoria,Illinois,17143,447,26 +2020-06-25,Peoria,Illinois,17143,459,27 +2020-06-26,Peoria,Illinois,17143,463,27 +2020-06-27,Peoria,Illinois,17143,468,27 +2020-06-28,Peoria,Illinois,17143,476,28 +2020-06-29,Peoria,Illinois,17143,487,28 +2020-06-30,Peoria,Illinois,17143,487,28 +2020-07-01,Peoria,Illinois,17143,499,28 +2020-07-02,Peoria,Illinois,17143,507,28 +2020-07-03,Peoria,Illinois,17143,546,28 +2020-07-04,Peoria,Illinois,17143,551,28 +2020-07-05,Peoria,Illinois,17143,559,28 +2020-07-06,Peoria,Illinois,17143,567,29 +2020-07-07,Peoria,Illinois,17143,574,29 +2020-07-08,Peoria,Illinois,17143,583,29 +2020-07-09,Peoria,Illinois,17143,609,29 +2020-04-11,Perry,Illinois,17145,1,0 +2020-04-12,Perry,Illinois,17145,1,0 +2020-04-13,Perry,Illinois,17145,1,0 +2020-04-14,Perry,Illinois,17145,1,0 +2020-04-15,Perry,Illinois,17145,1,0 +2020-04-16,Perry,Illinois,17145,1,0 +2020-04-17,Perry,Illinois,17145,1,0 +2020-04-18,Perry,Illinois,17145,1,0 +2020-04-19,Perry,Illinois,17145,1,0 +2020-04-20,Perry,Illinois,17145,1,0 +2020-04-21,Perry,Illinois,17145,1,0 +2020-04-22,Perry,Illinois,17145,2,0 +2020-04-23,Perry,Illinois,17145,3,0 +2020-04-24,Perry,Illinois,17145,3,0 +2020-04-25,Perry,Illinois,17145,7,0 +2020-04-26,Perry,Illinois,17145,8,0 +2020-04-27,Perry,Illinois,17145,9,0 +2020-04-28,Perry,Illinois,17145,13,0 +2020-04-29,Perry,Illinois,17145,18,0 +2020-04-30,Perry,Illinois,17145,21,0 +2020-05-01,Perry,Illinois,17145,24,0 +2020-05-02,Perry,Illinois,17145,31,0 +2020-05-03,Perry,Illinois,17145,34,0 +2020-05-04,Perry,Illinois,17145,34,0 +2020-05-05,Perry,Illinois,17145,32,0 +2020-05-06,Perry,Illinois,17145,35,0 +2020-05-07,Perry,Illinois,17145,36,0 +2020-05-08,Perry,Illinois,17145,36,0 +2020-05-09,Perry,Illinois,17145,36,0 +2020-05-10,Perry,Illinois,17145,38,0 +2020-05-11,Perry,Illinois,17145,38,0 +2020-05-12,Perry,Illinois,17145,38,0 +2020-05-13,Perry,Illinois,17145,38,0 +2020-05-14,Perry,Illinois,17145,38,0 +2020-05-15,Perry,Illinois,17145,38,0 +2020-05-16,Perry,Illinois,17145,38,0 +2020-05-17,Perry,Illinois,17145,39,0 +2020-05-18,Perry,Illinois,17145,39,0 +2020-05-19,Perry,Illinois,17145,40,0 +2020-05-20,Perry,Illinois,17145,40,0 +2020-05-21,Perry,Illinois,17145,40,0 +2020-05-22,Perry,Illinois,17145,40,0 +2020-05-23,Perry,Illinois,17145,40,0 +2020-05-24,Perry,Illinois,17145,41,0 +2020-05-25,Perry,Illinois,17145,41,0 +2020-05-26,Perry,Illinois,17145,41,0 +2020-05-27,Perry,Illinois,17145,41,0 +2020-05-28,Perry,Illinois,17145,41,0 +2020-05-29,Perry,Illinois,17145,42,0 +2020-05-30,Perry,Illinois,17145,42,0 +2020-05-31,Perry,Illinois,17145,41,0 +2020-06-01,Perry,Illinois,17145,41,0 +2020-06-02,Perry,Illinois,17145,41,0 +2020-06-03,Perry,Illinois,17145,42,0 +2020-06-04,Perry,Illinois,17145,42,0 +2020-06-05,Perry,Illinois,17145,42,0 +2020-06-06,Perry,Illinois,17145,42,0 +2020-06-07,Perry,Illinois,17145,42,0 +2020-06-08,Perry,Illinois,17145,42,0 +2020-06-09,Perry,Illinois,17145,42,0 +2020-06-10,Perry,Illinois,17145,43,0 +2020-06-11,Perry,Illinois,17145,43,0 +2020-06-12,Perry,Illinois,17145,43,0 +2020-06-13,Perry,Illinois,17145,43,0 +2020-06-14,Perry,Illinois,17145,44,0 +2020-06-15,Perry,Illinois,17145,44,0 +2020-06-16,Perry,Illinois,17145,44,0 +2020-06-17,Perry,Illinois,17145,44,0 +2020-06-18,Perry,Illinois,17145,44,0 +2020-06-19,Perry,Illinois,17145,44,0 +2020-06-20,Perry,Illinois,17145,44,0 +2020-06-21,Perry,Illinois,17145,44,0 +2020-06-22,Perry,Illinois,17145,44,0 +2020-06-23,Perry,Illinois,17145,44,0 +2020-06-24,Perry,Illinois,17145,46,0 +2020-06-25,Perry,Illinois,17145,46,0 +2020-06-26,Perry,Illinois,17145,47,0 +2020-06-27,Perry,Illinois,17145,49,0 +2020-06-28,Perry,Illinois,17145,49,0 +2020-06-29,Perry,Illinois,17145,50,1 +2020-06-30,Perry,Illinois,17145,51,1 +2020-07-01,Perry,Illinois,17145,54,1 +2020-07-02,Perry,Illinois,17145,54,1 +2020-07-03,Perry,Illinois,17145,56,1 +2020-07-04,Perry,Illinois,17145,56,1 +2020-07-05,Perry,Illinois,17145,57,1 +2020-07-06,Perry,Illinois,17145,58,1 +2020-07-07,Perry,Illinois,17145,58,1 +2020-07-08,Perry,Illinois,17145,59,1 +2020-07-09,Perry,Illinois,17145,60,1 +2020-04-02,Piatt,Illinois,17147,1,0 +2020-04-03,Piatt,Illinois,17147,1,0 +2020-04-04,Piatt,Illinois,17147,1,0 +2020-04-05,Piatt,Illinois,17147,1,0 +2020-04-06,Piatt,Illinois,17147,3,0 +2020-04-07,Piatt,Illinois,17147,4,0 +2020-04-08,Piatt,Illinois,17147,4,0 +2020-04-09,Piatt,Illinois,17147,5,0 +2020-04-10,Piatt,Illinois,17147,6,0 +2020-04-11,Piatt,Illinois,17147,6,0 +2020-04-12,Piatt,Illinois,17147,6,0 +2020-04-13,Piatt,Illinois,17147,6,0 +2020-04-14,Piatt,Illinois,17147,6,0 +2020-04-15,Piatt,Illinois,17147,6,0 +2020-04-16,Piatt,Illinois,17147,7,0 +2020-04-17,Piatt,Illinois,17147,7,0 +2020-04-18,Piatt,Illinois,17147,7,0 +2020-04-19,Piatt,Illinois,17147,7,0 +2020-04-20,Piatt,Illinois,17147,7,0 +2020-04-21,Piatt,Illinois,17147,7,0 +2020-04-22,Piatt,Illinois,17147,7,0 +2020-04-23,Piatt,Illinois,17147,7,0 +2020-04-24,Piatt,Illinois,17147,7,0 +2020-04-25,Piatt,Illinois,17147,7,0 +2020-04-26,Piatt,Illinois,17147,7,0 +2020-04-27,Piatt,Illinois,17147,7,0 +2020-04-28,Piatt,Illinois,17147,7,0 +2020-04-29,Piatt,Illinois,17147,7,0 +2020-04-30,Piatt,Illinois,17147,7,0 +2020-05-01,Piatt,Illinois,17147,7,0 +2020-05-02,Piatt,Illinois,17147,7,0 +2020-05-03,Piatt,Illinois,17147,7,0 +2020-05-04,Piatt,Illinois,17147,7,0 +2020-05-05,Piatt,Illinois,17147,7,0 +2020-05-06,Piatt,Illinois,17147,7,0 +2020-05-07,Piatt,Illinois,17147,7,0 +2020-05-08,Piatt,Illinois,17147,7,0 +2020-05-09,Piatt,Illinois,17147,7,0 +2020-05-10,Piatt,Illinois,17147,7,0 +2020-05-11,Piatt,Illinois,17147,7,0 +2020-05-12,Piatt,Illinois,17147,8,0 +2020-05-13,Piatt,Illinois,17147,8,0 +2020-05-14,Piatt,Illinois,17147,8,0 +2020-05-15,Piatt,Illinois,17147,8,0 +2020-05-16,Piatt,Illinois,17147,8,0 +2020-05-17,Piatt,Illinois,17147,9,0 +2020-05-18,Piatt,Illinois,17147,9,0 +2020-05-19,Piatt,Illinois,17147,9,0 +2020-05-20,Piatt,Illinois,17147,8,0 +2020-05-21,Piatt,Illinois,17147,9,0 +2020-05-22,Piatt,Illinois,17147,9,0 +2020-05-23,Piatt,Illinois,17147,10,0 +2020-05-24,Piatt,Illinois,17147,11,0 +2020-05-25,Piatt,Illinois,17147,11,0 +2020-05-26,Piatt,Illinois,17147,12,0 +2020-05-27,Piatt,Illinois,17147,12,0 +2020-05-28,Piatt,Illinois,17147,12,0 +2020-05-29,Piatt,Illinois,17147,12,0 +2020-05-30,Piatt,Illinois,17147,11,0 +2020-05-31,Piatt,Illinois,17147,11,0 +2020-06-01,Piatt,Illinois,17147,11,0 +2020-06-02,Piatt,Illinois,17147,11,0 +2020-06-03,Piatt,Illinois,17147,11,0 +2020-06-04,Piatt,Illinois,17147,11,0 +2020-06-05,Piatt,Illinois,17147,11,0 +2020-06-06,Piatt,Illinois,17147,11,0 +2020-06-07,Piatt,Illinois,17147,12,0 +2020-06-08,Piatt,Illinois,17147,12,0 +2020-06-09,Piatt,Illinois,17147,11,0 +2020-06-10,Piatt,Illinois,17147,11,0 +2020-06-11,Piatt,Illinois,17147,11,0 +2020-06-12,Piatt,Illinois,17147,11,0 +2020-06-13,Piatt,Illinois,17147,11,0 +2020-06-14,Piatt,Illinois,17147,11,0 +2020-06-15,Piatt,Illinois,17147,11,0 +2020-06-16,Piatt,Illinois,17147,11,0 +2020-06-17,Piatt,Illinois,17147,14,0 +2020-06-18,Piatt,Illinois,17147,17,0 +2020-06-19,Piatt,Illinois,17147,16,0 +2020-06-20,Piatt,Illinois,17147,16,0 +2020-06-21,Piatt,Illinois,17147,17,0 +2020-06-22,Piatt,Illinois,17147,18,0 +2020-06-23,Piatt,Illinois,17147,18,0 +2020-06-24,Piatt,Illinois,17147,17,0 +2020-06-25,Piatt,Illinois,17147,19,0 +2020-06-26,Piatt,Illinois,17147,19,0 +2020-06-27,Piatt,Illinois,17147,19,0 +2020-06-28,Piatt,Illinois,17147,19,0 +2020-06-29,Piatt,Illinois,17147,19,0 +2020-06-30,Piatt,Illinois,17147,19,0 +2020-07-01,Piatt,Illinois,17147,20,0 +2020-07-02,Piatt,Illinois,17147,20,0 +2020-07-03,Piatt,Illinois,17147,21,0 +2020-07-04,Piatt,Illinois,17147,20,0 +2020-07-05,Piatt,Illinois,17147,20,0 +2020-07-06,Piatt,Illinois,17147,20,0 +2020-07-07,Piatt,Illinois,17147,20,0 +2020-07-08,Piatt,Illinois,17147,20,0 +2020-07-09,Piatt,Illinois,17147,21,0 +2020-04-04,Pike,Illinois,17149,1,0 +2020-04-05,Pike,Illinois,17149,1,0 +2020-04-06,Pike,Illinois,17149,1,0 +2020-04-07,Pike,Illinois,17149,1,0 +2020-04-08,Pike,Illinois,17149,1,0 +2020-04-09,Pike,Illinois,17149,1,0 +2020-04-10,Pike,Illinois,17149,1,0 +2020-04-11,Pike,Illinois,17149,1,0 +2020-04-12,Pike,Illinois,17149,1,0 +2020-04-13,Pike,Illinois,17149,1,0 +2020-04-14,Pike,Illinois,17149,1,0 +2020-04-15,Pike,Illinois,17149,1,0 +2020-04-16,Pike,Illinois,17149,1,0 +2020-04-17,Pike,Illinois,17149,1,0 +2020-04-18,Pike,Illinois,17149,1,0 +2020-04-19,Pike,Illinois,17149,1,0 +2020-04-20,Pike,Illinois,17149,1,0 +2020-04-21,Pike,Illinois,17149,1,0 +2020-04-22,Pike,Illinois,17149,1,0 +2020-04-23,Pike,Illinois,17149,1,0 +2020-04-24,Pike,Illinois,17149,1,0 +2020-04-25,Pike,Illinois,17149,1,0 +2020-04-26,Pike,Illinois,17149,1,0 +2020-04-27,Pike,Illinois,17149,1,0 +2020-04-28,Pike,Illinois,17149,1,0 +2020-04-29,Pike,Illinois,17149,1,0 +2020-04-30,Pike,Illinois,17149,1,0 +2020-05-01,Pike,Illinois,17149,1,0 +2020-05-02,Pike,Illinois,17149,1,0 +2020-05-03,Pike,Illinois,17149,1,0 +2020-05-04,Pike,Illinois,17149,1,0 +2020-05-05,Pike,Illinois,17149,1,0 +2020-05-06,Pike,Illinois,17149,1,0 +2020-05-07,Pike,Illinois,17149,1,0 +2020-05-08,Pike,Illinois,17149,1,0 +2020-05-09,Pike,Illinois,17149,1,0 +2020-05-10,Pike,Illinois,17149,1,0 +2020-05-11,Pike,Illinois,17149,1,0 +2020-05-12,Pike,Illinois,17149,1,0 +2020-05-13,Pike,Illinois,17149,1,0 +2020-05-14,Pike,Illinois,17149,1,0 +2020-05-15,Pike,Illinois,17149,1,0 +2020-05-16,Pike,Illinois,17149,1,0 +2020-05-17,Pike,Illinois,17149,1,0 +2020-05-18,Pike,Illinois,17149,1,0 +2020-05-19,Pike,Illinois,17149,1,0 +2020-05-20,Pike,Illinois,17149,1,0 +2020-05-21,Pike,Illinois,17149,1,0 +2020-05-22,Pike,Illinois,17149,1,0 +2020-05-23,Pike,Illinois,17149,1,0 +2020-05-24,Pike,Illinois,17149,1,0 +2020-05-25,Pike,Illinois,17149,1,0 +2020-05-26,Pike,Illinois,17149,1,0 +2020-05-27,Pike,Illinois,17149,1,0 +2020-05-28,Pike,Illinois,17149,1,0 +2020-05-29,Pike,Illinois,17149,1,0 +2020-05-30,Pike,Illinois,17149,1,0 +2020-05-31,Pike,Illinois,17149,1,0 +2020-06-01,Pike,Illinois,17149,1,0 +2020-06-02,Pike,Illinois,17149,1,0 +2020-06-03,Pike,Illinois,17149,1,0 +2020-06-04,Pike,Illinois,17149,1,0 +2020-06-05,Pike,Illinois,17149,1,0 +2020-06-06,Pike,Illinois,17149,1,0 +2020-06-07,Pike,Illinois,17149,1,0 +2020-06-08,Pike,Illinois,17149,1,0 +2020-06-09,Pike,Illinois,17149,1,0 +2020-06-10,Pike,Illinois,17149,1,0 +2020-06-11,Pike,Illinois,17149,1,0 +2020-06-12,Pike,Illinois,17149,2,0 +2020-06-13,Pike,Illinois,17149,2,0 +2020-06-14,Pike,Illinois,17149,2,0 +2020-06-15,Pike,Illinois,17149,2,0 +2020-06-16,Pike,Illinois,17149,2,0 +2020-06-17,Pike,Illinois,17149,2,0 +2020-06-18,Pike,Illinois,17149,2,0 +2020-06-19,Pike,Illinois,17149,2,0 +2020-06-20,Pike,Illinois,17149,2,0 +2020-06-21,Pike,Illinois,17149,2,0 +2020-06-22,Pike,Illinois,17149,2,0 +2020-06-23,Pike,Illinois,17149,2,0 +2020-06-24,Pike,Illinois,17149,2,0 +2020-06-25,Pike,Illinois,17149,2,0 +2020-06-26,Pike,Illinois,17149,2,0 +2020-06-27,Pike,Illinois,17149,2,0 +2020-06-28,Pike,Illinois,17149,2,0 +2020-06-29,Pike,Illinois,17149,2,0 +2020-06-30,Pike,Illinois,17149,2,0 +2020-07-01,Pike,Illinois,17149,2,0 +2020-07-02,Pike,Illinois,17149,3,0 +2020-07-03,Pike,Illinois,17149,3,0 +2020-07-04,Pike,Illinois,17149,3,0 +2020-07-05,Pike,Illinois,17149,3,0 +2020-07-06,Pike,Illinois,17149,3,0 +2020-07-07,Pike,Illinois,17149,4,0 +2020-07-08,Pike,Illinois,17149,5,0 +2020-07-09,Pike,Illinois,17149,5,0 +2020-05-08,Pope,Illinois,17151,1,0 +2020-05-09,Pope,Illinois,17151,1,0 +2020-05-10,Pope,Illinois,17151,1,0 +2020-05-11,Pope,Illinois,17151,1,0 +2020-05-12,Pope,Illinois,17151,1,0 +2020-05-13,Pope,Illinois,17151,1,0 +2020-05-14,Pope,Illinois,17151,1,0 +2020-05-15,Pope,Illinois,17151,1,0 +2020-05-16,Pope,Illinois,17151,1,0 +2020-05-17,Pope,Illinois,17151,1,0 +2020-05-18,Pope,Illinois,17151,1,0 +2020-05-19,Pope,Illinois,17151,1,0 +2020-05-20,Pope,Illinois,17151,1,0 +2020-05-21,Pope,Illinois,17151,1,0 +2020-05-22,Pope,Illinois,17151,1,0 +2020-05-23,Pope,Illinois,17151,1,0 +2020-05-24,Pope,Illinois,17151,1,0 +2020-05-25,Pope,Illinois,17151,1,0 +2020-05-26,Pope,Illinois,17151,1,0 +2020-05-27,Pope,Illinois,17151,1,0 +2020-05-28,Pope,Illinois,17151,1,0 +2020-05-29,Pope,Illinois,17151,1,0 +2020-05-30,Pope,Illinois,17151,1,0 +2020-05-31,Pope,Illinois,17151,1,0 +2020-06-01,Pope,Illinois,17151,1,0 +2020-06-02,Pope,Illinois,17151,1,0 +2020-06-03,Pope,Illinois,17151,1,0 +2020-06-04,Pope,Illinois,17151,1,0 +2020-06-05,Pope,Illinois,17151,1,0 +2020-06-06,Pope,Illinois,17151,1,0 +2020-06-07,Pope,Illinois,17151,1,0 +2020-06-08,Pope,Illinois,17151,1,0 +2020-06-09,Pope,Illinois,17151,1,0 +2020-06-10,Pope,Illinois,17151,1,0 +2020-06-11,Pope,Illinois,17151,1,0 +2020-06-12,Pope,Illinois,17151,1,0 +2020-06-13,Pope,Illinois,17151,1,0 +2020-06-14,Pope,Illinois,17151,1,0 +2020-06-15,Pope,Illinois,17151,1,0 +2020-06-16,Pope,Illinois,17151,1,0 +2020-06-17,Pope,Illinois,17151,1,0 +2020-06-18,Pope,Illinois,17151,1,0 +2020-06-19,Pope,Illinois,17151,1,0 +2020-06-20,Pope,Illinois,17151,1,0 +2020-06-21,Pope,Illinois,17151,1,0 +2020-06-22,Pope,Illinois,17151,1,0 +2020-06-23,Pope,Illinois,17151,1,0 +2020-06-24,Pope,Illinois,17151,1,0 +2020-06-25,Pope,Illinois,17151,1,0 +2020-06-26,Pope,Illinois,17151,1,0 +2020-06-27,Pope,Illinois,17151,1,0 +2020-06-28,Pope,Illinois,17151,1,0 +2020-06-29,Pope,Illinois,17151,1,0 +2020-06-30,Pope,Illinois,17151,1,0 +2020-07-01,Pope,Illinois,17151,1,0 +2020-07-02,Pope,Illinois,17151,1,0 +2020-07-03,Pope,Illinois,17151,1,0 +2020-07-04,Pope,Illinois,17151,1,0 +2020-07-05,Pope,Illinois,17151,1,0 +2020-07-06,Pope,Illinois,17151,1,0 +2020-07-07,Pope,Illinois,17151,1,0 +2020-07-08,Pope,Illinois,17151,1,0 +2020-07-09,Pope,Illinois,17151,1,0 +2020-04-09,Pulaski,Illinois,17153,4,0 +2020-04-10,Pulaski,Illinois,17153,4,0 +2020-04-11,Pulaski,Illinois,17153,4,0 +2020-04-12,Pulaski,Illinois,17153,5,0 +2020-04-13,Pulaski,Illinois,17153,5,0 +2020-04-14,Pulaski,Illinois,17153,5,0 +2020-04-15,Pulaski,Illinois,17153,5,0 +2020-04-16,Pulaski,Illinois,17153,6,0 +2020-04-17,Pulaski,Illinois,17153,5,0 +2020-04-18,Pulaski,Illinois,17153,9,0 +2020-04-19,Pulaski,Illinois,17153,9,0 +2020-04-20,Pulaski,Illinois,17153,9,0 +2020-04-21,Pulaski,Illinois,17153,10,0 +2020-04-22,Pulaski,Illinois,17153,12,0 +2020-04-23,Pulaski,Illinois,17153,13,0 +2020-04-24,Pulaski,Illinois,17153,15,0 +2020-04-25,Pulaski,Illinois,17153,15,0 +2020-04-26,Pulaski,Illinois,17153,15,0 +2020-04-27,Pulaski,Illinois,17153,17,0 +2020-04-28,Pulaski,Illinois,17153,17,0 +2020-04-29,Pulaski,Illinois,17153,17,0 +2020-04-30,Pulaski,Illinois,17153,18,0 +2020-05-01,Pulaski,Illinois,17153,20,0 +2020-05-02,Pulaski,Illinois,17153,20,0 +2020-05-03,Pulaski,Illinois,17153,20,0 +2020-05-04,Pulaski,Illinois,17153,20,0 +2020-05-05,Pulaski,Illinois,17153,20,0 +2020-05-06,Pulaski,Illinois,17153,23,0 +2020-05-07,Pulaski,Illinois,17153,24,0 +2020-05-08,Pulaski,Illinois,17153,25,0 +2020-05-09,Pulaski,Illinois,17153,27,0 +2020-05-10,Pulaski,Illinois,17153,27,0 +2020-05-11,Pulaski,Illinois,17153,27,0 +2020-05-12,Pulaski,Illinois,17153,27,0 +2020-05-13,Pulaski,Illinois,17153,31,0 +2020-05-14,Pulaski,Illinois,17153,33,0 +2020-05-15,Pulaski,Illinois,17153,40,0 +2020-05-16,Pulaski,Illinois,17153,40,0 +2020-05-17,Pulaski,Illinois,17153,40,0 +2020-05-18,Pulaski,Illinois,17153,40,0 +2020-05-19,Pulaski,Illinois,17153,40,0 +2020-05-20,Pulaski,Illinois,17153,40,0 +2020-05-21,Pulaski,Illinois,17153,40,0 +2020-05-22,Pulaski,Illinois,17153,40,0 +2020-05-23,Pulaski,Illinois,17153,40,0 +2020-05-24,Pulaski,Illinois,17153,40,0 +2020-05-25,Pulaski,Illinois,17153,40,0 +2020-05-26,Pulaski,Illinois,17153,40,0 +2020-05-27,Pulaski,Illinois,17153,41,0 +2020-05-28,Pulaski,Illinois,17153,41,0 +2020-05-29,Pulaski,Illinois,17153,51,0 +2020-05-30,Pulaski,Illinois,17153,56,0 +2020-05-31,Pulaski,Illinois,17153,56,0 +2020-06-01,Pulaski,Illinois,17153,56,0 +2020-06-02,Pulaski,Illinois,17153,55,0 +2020-06-03,Pulaski,Illinois,17153,56,0 +2020-06-04,Pulaski,Illinois,17153,57,0 +2020-06-05,Pulaski,Illinois,17153,58,0 +2020-06-06,Pulaski,Illinois,17153,58,0 +2020-06-07,Pulaski,Illinois,17153,61,0 +2020-06-08,Pulaski,Illinois,17153,61,0 +2020-06-09,Pulaski,Illinois,17153,60,0 +2020-06-10,Pulaski,Illinois,17153,59,0 +2020-06-11,Pulaski,Illinois,17153,59,0 +2020-06-12,Pulaski,Illinois,17153,59,0 +2020-06-13,Pulaski,Illinois,17153,59,0 +2020-06-14,Pulaski,Illinois,17153,59,0 +2020-06-15,Pulaski,Illinois,17153,59,0 +2020-06-16,Pulaski,Illinois,17153,61,0 +2020-06-17,Pulaski,Illinois,17153,62,0 +2020-06-18,Pulaski,Illinois,17153,65,0 +2020-06-19,Pulaski,Illinois,17153,65,0 +2020-06-20,Pulaski,Illinois,17153,66,0 +2020-06-21,Pulaski,Illinois,17153,66,0 +2020-06-22,Pulaski,Illinois,17153,66,0 +2020-06-23,Pulaski,Illinois,17153,67,0 +2020-06-24,Pulaski,Illinois,17153,67,0 +2020-06-25,Pulaski,Illinois,17153,67,0 +2020-06-26,Pulaski,Illinois,17153,72,0 +2020-06-27,Pulaski,Illinois,17153,74,0 +2020-06-28,Pulaski,Illinois,17153,74,0 +2020-06-29,Pulaski,Illinois,17153,74,0 +2020-06-30,Pulaski,Illinois,17153,74,0 +2020-07-01,Pulaski,Illinois,17153,76,0 +2020-07-02,Pulaski,Illinois,17153,76,0 +2020-07-03,Pulaski,Illinois,17153,76,0 +2020-07-04,Pulaski,Illinois,17153,76,0 +2020-07-05,Pulaski,Illinois,17153,79,0 +2020-07-06,Pulaski,Illinois,17153,79,0 +2020-07-07,Pulaski,Illinois,17153,80,0 +2020-07-08,Pulaski,Illinois,17153,79,0 +2020-07-09,Pulaski,Illinois,17153,79,0 +2020-05-16,Putnam,Illinois,17155,2,0 +2020-05-17,Putnam,Illinois,17155,2,0 +2020-05-18,Putnam,Illinois,17155,1,0 +2020-05-19,Putnam,Illinois,17155,1,0 +2020-05-20,Putnam,Illinois,17155,1,0 +2020-05-21,Putnam,Illinois,17155,1,0 +2020-05-22,Putnam,Illinois,17155,1,0 +2020-05-23,Putnam,Illinois,17155,1,0 +2020-05-24,Putnam,Illinois,17155,1,0 +2020-05-25,Putnam,Illinois,17155,1,0 +2020-05-26,Putnam,Illinois,17155,1,0 +2020-05-27,Putnam,Illinois,17155,1,0 +2020-05-28,Putnam,Illinois,17155,1,0 +2020-05-29,Putnam,Illinois,17155,1,0 +2020-05-30,Putnam,Illinois,17155,1,0 +2020-05-31,Putnam,Illinois,17155,1,0 +2020-06-01,Putnam,Illinois,17155,1,0 +2020-06-02,Putnam,Illinois,17155,1,0 +2020-06-03,Putnam,Illinois,17155,1,0 +2020-06-04,Putnam,Illinois,17155,1,0 +2020-06-05,Putnam,Illinois,17155,1,0 +2020-06-06,Putnam,Illinois,17155,1,0 +2020-06-07,Putnam,Illinois,17155,1,0 +2020-06-08,Putnam,Illinois,17155,1,0 +2020-06-09,Putnam,Illinois,17155,1,0 +2020-06-10,Putnam,Illinois,17155,1,0 +2020-06-11,Putnam,Illinois,17155,1,0 +2020-06-12,Putnam,Illinois,17155,1,0 +2020-06-13,Putnam,Illinois,17155,1,0 +2020-06-14,Putnam,Illinois,17155,1,0 +2020-06-15,Putnam,Illinois,17155,1,0 +2020-06-16,Putnam,Illinois,17155,1,0 +2020-06-17,Putnam,Illinois,17155,1,0 +2020-06-18,Putnam,Illinois,17155,1,0 +2020-06-19,Putnam,Illinois,17155,1,0 +2020-06-20,Putnam,Illinois,17155,1,0 +2020-06-21,Putnam,Illinois,17155,1,0 +2020-06-22,Putnam,Illinois,17155,1,0 +2020-06-23,Putnam,Illinois,17155,1,0 +2020-06-24,Putnam,Illinois,17155,1,0 +2020-06-25,Putnam,Illinois,17155,1,0 +2020-06-26,Putnam,Illinois,17155,1,0 +2020-06-27,Putnam,Illinois,17155,1,0 +2020-06-28,Putnam,Illinois,17155,1,0 +2020-06-29,Putnam,Illinois,17155,1,0 +2020-06-30,Putnam,Illinois,17155,1,0 +2020-07-01,Putnam,Illinois,17155,1,0 +2020-07-02,Putnam,Illinois,17155,1,0 +2020-07-03,Putnam,Illinois,17155,1,0 +2020-07-04,Putnam,Illinois,17155,1,0 +2020-07-05,Putnam,Illinois,17155,1,0 +2020-07-06,Putnam,Illinois,17155,1,0 +2020-07-07,Putnam,Illinois,17155,1,0 +2020-07-08,Putnam,Illinois,17155,1,0 +2020-07-09,Putnam,Illinois,17155,1,0 +2020-03-30,Randolph,Illinois,17157,2,0 +2020-03-31,Randolph,Illinois,17157,3,0 +2020-04-01,Randolph,Illinois,17157,7,0 +2020-04-02,Randolph,Illinois,17157,8,0 +2020-04-03,Randolph,Illinois,17157,12,0 +2020-04-04,Randolph,Illinois,17157,20,0 +2020-04-05,Randolph,Illinois,17157,24,0 +2020-04-06,Randolph,Illinois,17157,27,0 +2020-04-07,Randolph,Illinois,17157,29,0 +2020-04-08,Randolph,Illinois,17157,31,0 +2020-04-09,Randolph,Illinois,17157,34,0 +2020-04-10,Randolph,Illinois,17157,35,0 +2020-04-11,Randolph,Illinois,17157,37,0 +2020-04-12,Randolph,Illinois,17157,40,0 +2020-04-13,Randolph,Illinois,17157,41,0 +2020-04-14,Randolph,Illinois,17157,41,0 +2020-04-15,Randolph,Illinois,17157,46,0 +2020-04-16,Randolph,Illinois,17157,46,0 +2020-04-17,Randolph,Illinois,17157,48,1 +2020-04-18,Randolph,Illinois,17157,54,1 +2020-04-19,Randolph,Illinois,17157,57,1 +2020-04-20,Randolph,Illinois,17157,58,1 +2020-04-21,Randolph,Illinois,17157,61,1 +2020-04-22,Randolph,Illinois,17157,63,1 +2020-04-23,Randolph,Illinois,17157,68,1 +2020-04-24,Randolph,Illinois,17157,79,1 +2020-04-25,Randolph,Illinois,17157,79,1 +2020-04-26,Randolph,Illinois,17157,104,1 +2020-04-27,Randolph,Illinois,17157,109,1 +2020-04-28,Randolph,Illinois,17157,126,1 +2020-04-29,Randolph,Illinois,17157,138,1 +2020-04-30,Randolph,Illinois,17157,156,1 +2020-05-01,Randolph,Illinois,17157,164,1 +2020-05-02,Randolph,Illinois,17157,166,1 +2020-05-03,Randolph,Illinois,17157,179,1 +2020-05-04,Randolph,Illinois,17157,182,1 +2020-05-05,Randolph,Illinois,17157,183,2 +2020-05-06,Randolph,Illinois,17157,203,2 +2020-05-07,Randolph,Illinois,17157,206,2 +2020-05-08,Randolph,Illinois,17157,211,2 +2020-05-09,Randolph,Illinois,17157,217,2 +2020-05-10,Randolph,Illinois,17157,220,2 +2020-05-11,Randolph,Illinois,17157,221,2 +2020-05-12,Randolph,Illinois,17157,222,3 +2020-05-13,Randolph,Illinois,17157,227,3 +2020-05-14,Randolph,Illinois,17157,233,3 +2020-05-15,Randolph,Illinois,17157,234,3 +2020-05-16,Randolph,Illinois,17157,236,3 +2020-05-17,Randolph,Illinois,17157,236,3 +2020-05-18,Randolph,Illinois,17157,237,3 +2020-05-19,Randolph,Illinois,17157,238,3 +2020-05-20,Randolph,Illinois,17157,246,3 +2020-05-21,Randolph,Illinois,17157,246,3 +2020-05-22,Randolph,Illinois,17157,251,3 +2020-05-23,Randolph,Illinois,17157,256,3 +2020-05-24,Randolph,Illinois,17157,258,3 +2020-05-25,Randolph,Illinois,17157,259,3 +2020-05-26,Randolph,Illinois,17157,259,3 +2020-05-27,Randolph,Illinois,17157,264,4 +2020-05-28,Randolph,Illinois,17157,267,4 +2020-05-29,Randolph,Illinois,17157,267,4 +2020-05-30,Randolph,Illinois,17157,269,4 +2020-05-31,Randolph,Illinois,17157,270,4 +2020-06-01,Randolph,Illinois,17157,269,4 +2020-06-02,Randolph,Illinois,17157,270,4 +2020-06-03,Randolph,Illinois,17157,271,4 +2020-06-04,Randolph,Illinois,17157,273,4 +2020-06-05,Randolph,Illinois,17157,273,4 +2020-06-06,Randolph,Illinois,17157,274,4 +2020-06-07,Randolph,Illinois,17157,274,4 +2020-06-08,Randolph,Illinois,17157,276,4 +2020-06-09,Randolph,Illinois,17157,276,5 +2020-06-10,Randolph,Illinois,17157,276,6 +2020-06-11,Randolph,Illinois,17157,276,7 +2020-06-12,Randolph,Illinois,17157,276,7 +2020-06-13,Randolph,Illinois,17157,278,7 +2020-06-14,Randolph,Illinois,17157,278,7 +2020-06-15,Randolph,Illinois,17157,278,7 +2020-06-16,Randolph,Illinois,17157,279,7 +2020-06-17,Randolph,Illinois,17157,279,7 +2020-06-18,Randolph,Illinois,17157,279,7 +2020-06-19,Randolph,Illinois,17157,278,7 +2020-06-20,Randolph,Illinois,17157,278,7 +2020-06-21,Randolph,Illinois,17157,278,7 +2020-06-22,Randolph,Illinois,17157,278,7 +2020-06-23,Randolph,Illinois,17157,278,7 +2020-06-24,Randolph,Illinois,17157,278,7 +2020-06-25,Randolph,Illinois,17157,278,7 +2020-06-26,Randolph,Illinois,17157,278,7 +2020-06-27,Randolph,Illinois,17157,279,7 +2020-06-28,Randolph,Illinois,17157,279,7 +2020-06-29,Randolph,Illinois,17157,281,7 +2020-06-30,Randolph,Illinois,17157,285,7 +2020-07-01,Randolph,Illinois,17157,287,7 +2020-07-02,Randolph,Illinois,17157,287,7 +2020-07-03,Randolph,Illinois,17157,287,7 +2020-07-04,Randolph,Illinois,17157,288,7 +2020-07-05,Randolph,Illinois,17157,288,7 +2020-07-06,Randolph,Illinois,17157,288,7 +2020-07-07,Randolph,Illinois,17157,288,7 +2020-07-08,Randolph,Illinois,17157,291,7 +2020-07-09,Randolph,Illinois,17157,292,7 +2020-04-07,Richland,Illinois,17159,1,0 +2020-04-08,Richland,Illinois,17159,1,0 +2020-04-09,Richland,Illinois,17159,1,0 +2020-04-10,Richland,Illinois,17159,1,0 +2020-04-11,Richland,Illinois,17159,1,0 +2020-04-12,Richland,Illinois,17159,1,0 +2020-04-13,Richland,Illinois,17159,1,0 +2020-04-14,Richland,Illinois,17159,1,0 +2020-04-15,Richland,Illinois,17159,1,0 +2020-04-16,Richland,Illinois,17159,1,0 +2020-04-17,Richland,Illinois,17159,2,0 +2020-04-18,Richland,Illinois,17159,2,0 +2020-04-19,Richland,Illinois,17159,2,0 +2020-04-20,Richland,Illinois,17159,2,0 +2020-04-21,Richland,Illinois,17159,2,0 +2020-04-22,Richland,Illinois,17159,2,0 +2020-04-23,Richland,Illinois,17159,2,0 +2020-04-24,Richland,Illinois,17159,3,0 +2020-04-25,Richland,Illinois,17159,3,0 +2020-04-26,Richland,Illinois,17159,3,0 +2020-04-27,Richland,Illinois,17159,3,0 +2020-04-28,Richland,Illinois,17159,3,0 +2020-04-29,Richland,Illinois,17159,3,0 +2020-04-30,Richland,Illinois,17159,3,0 +2020-05-01,Richland,Illinois,17159,3,0 +2020-05-02,Richland,Illinois,17159,3,0 +2020-05-03,Richland,Illinois,17159,3,0 +2020-05-04,Richland,Illinois,17159,3,0 +2020-05-05,Richland,Illinois,17159,3,0 +2020-05-06,Richland,Illinois,17159,3,0 +2020-05-07,Richland,Illinois,17159,3,0 +2020-05-08,Richland,Illinois,17159,3,0 +2020-05-09,Richland,Illinois,17159,3,0 +2020-05-10,Richland,Illinois,17159,3,0 +2020-05-11,Richland,Illinois,17159,3,0 +2020-05-12,Richland,Illinois,17159,3,0 +2020-05-13,Richland,Illinois,17159,3,0 +2020-05-14,Richland,Illinois,17159,3,0 +2020-05-15,Richland,Illinois,17159,3,0 +2020-05-16,Richland,Illinois,17159,3,0 +2020-05-17,Richland,Illinois,17159,3,0 +2020-05-18,Richland,Illinois,17159,3,0 +2020-05-19,Richland,Illinois,17159,3,0 +2020-05-20,Richland,Illinois,17159,3,0 +2020-05-21,Richland,Illinois,17159,3,0 +2020-05-22,Richland,Illinois,17159,3,0 +2020-05-23,Richland,Illinois,17159,3,0 +2020-05-24,Richland,Illinois,17159,3,0 +2020-05-25,Richland,Illinois,17159,3,0 +2020-05-26,Richland,Illinois,17159,3,0 +2020-05-27,Richland,Illinois,17159,3,0 +2020-05-28,Richland,Illinois,17159,3,0 +2020-05-29,Richland,Illinois,17159,3,0 +2020-05-30,Richland,Illinois,17159,3,0 +2020-05-31,Richland,Illinois,17159,3,0 +2020-06-01,Richland,Illinois,17159,3,0 +2020-06-02,Richland,Illinois,17159,3,0 +2020-06-03,Richland,Illinois,17159,3,0 +2020-06-04,Richland,Illinois,17159,4,0 +2020-06-05,Richland,Illinois,17159,4,0 +2020-06-06,Richland,Illinois,17159,4,0 +2020-06-07,Richland,Illinois,17159,4,0 +2020-06-08,Richland,Illinois,17159,4,0 +2020-06-09,Richland,Illinois,17159,4,0 +2020-06-10,Richland,Illinois,17159,4,0 +2020-06-11,Richland,Illinois,17159,4,0 +2020-06-12,Richland,Illinois,17159,4,0 +2020-06-13,Richland,Illinois,17159,4,0 +2020-06-14,Richland,Illinois,17159,4,0 +2020-06-15,Richland,Illinois,17159,4,0 +2020-06-16,Richland,Illinois,17159,4,0 +2020-06-17,Richland,Illinois,17159,4,0 +2020-06-18,Richland,Illinois,17159,4,0 +2020-06-19,Richland,Illinois,17159,4,0 +2020-06-20,Richland,Illinois,17159,4,0 +2020-06-21,Richland,Illinois,17159,4,0 +2020-06-22,Richland,Illinois,17159,4,0 +2020-06-23,Richland,Illinois,17159,4,0 +2020-06-24,Richland,Illinois,17159,4,0 +2020-06-25,Richland,Illinois,17159,4,0 +2020-06-26,Richland,Illinois,17159,4,0 +2020-06-27,Richland,Illinois,17159,4,0 +2020-06-28,Richland,Illinois,17159,4,0 +2020-06-29,Richland,Illinois,17159,4,0 +2020-06-30,Richland,Illinois,17159,4,0 +2020-07-01,Richland,Illinois,17159,4,0 +2020-07-02,Richland,Illinois,17159,4,0 +2020-07-03,Richland,Illinois,17159,4,0 +2020-07-04,Richland,Illinois,17159,4,0 +2020-07-05,Richland,Illinois,17159,4,0 +2020-07-06,Richland,Illinois,17159,4,0 +2020-07-07,Richland,Illinois,17159,7,0 +2020-07-08,Richland,Illinois,17159,7,0 +2020-07-09,Richland,Illinois,17159,8,0 +2020-03-22,Rock Island,Illinois,17161,1,0 +2020-03-23,Rock Island,Illinois,17161,1,0 +2020-03-24,Rock Island,Illinois,17161,1,0 +2020-03-25,Rock Island,Illinois,17161,3,0 +2020-03-26,Rock Island,Illinois,17161,4,0 +2020-03-27,Rock Island,Illinois,17161,4,0 +2020-03-28,Rock Island,Illinois,17161,4,0 +2020-03-29,Rock Island,Illinois,17161,5,0 +2020-03-30,Rock Island,Illinois,17161,8,0 +2020-03-31,Rock Island,Illinois,17161,11,0 +2020-04-01,Rock Island,Illinois,17161,17,0 +2020-04-02,Rock Island,Illinois,17161,21,0 +2020-04-03,Rock Island,Illinois,17161,24,0 +2020-04-04,Rock Island,Illinois,17161,29,0 +2020-04-05,Rock Island,Illinois,17161,40,0 +2020-04-06,Rock Island,Illinois,17161,47,0 +2020-04-07,Rock Island,Illinois,17161,54,1 +2020-04-08,Rock Island,Illinois,17161,67,1 +2020-04-09,Rock Island,Illinois,17161,73,3 +2020-04-10,Rock Island,Illinois,17161,80,3 +2020-04-11,Rock Island,Illinois,17161,84,3 +2020-04-12,Rock Island,Illinois,17161,91,3 +2020-04-13,Rock Island,Illinois,17161,105,3 +2020-04-14,Rock Island,Illinois,17161,113,3 +2020-04-15,Rock Island,Illinois,17161,138,4 +2020-04-16,Rock Island,Illinois,17161,154,4 +2020-04-17,Rock Island,Illinois,17161,167,4 +2020-04-18,Rock Island,Illinois,17161,187,4 +2020-04-19,Rock Island,Illinois,17161,188,4 +2020-04-20,Rock Island,Illinois,17161,211,4 +2020-04-21,Rock Island,Illinois,17161,217,5 +2020-04-22,Rock Island,Illinois,17161,242,6 +2020-04-23,Rock Island,Illinois,17161,247,6 +2020-04-24,Rock Island,Illinois,17161,270,6 +2020-04-25,Rock Island,Illinois,17161,293,6 +2020-04-26,Rock Island,Illinois,17161,304,7 +2020-04-27,Rock Island,Illinois,17161,323,8 +2020-04-28,Rock Island,Illinois,17161,342,9 +2020-04-29,Rock Island,Illinois,17161,369,9 +2020-04-30,Rock Island,Illinois,17161,377,9 +2020-05-01,Rock Island,Illinois,17161,389,9 +2020-05-02,Rock Island,Illinois,17161,412,9 +2020-05-03,Rock Island,Illinois,17161,436,9 +2020-05-04,Rock Island,Illinois,17161,452,9 +2020-05-05,Rock Island,Illinois,17161,454,12 +2020-05-06,Rock Island,Illinois,17161,465,14 +2020-05-07,Rock Island,Illinois,17161,477,15 +2020-05-08,Rock Island,Illinois,17161,498,15 +2020-05-09,Rock Island,Illinois,17161,507,16 +2020-05-10,Rock Island,Illinois,17161,515,16 +2020-05-11,Rock Island,Illinois,17161,517,16 +2020-05-12,Rock Island,Illinois,17161,530,17 +2020-05-13,Rock Island,Illinois,17161,538,17 +2020-05-14,Rock Island,Illinois,17161,543,17 +2020-05-15,Rock Island,Illinois,17161,563,18 +2020-05-16,Rock Island,Illinois,17161,570,18 +2020-05-17,Rock Island,Illinois,17161,577,18 +2020-05-18,Rock Island,Illinois,17161,590,18 +2020-05-19,Rock Island,Illinois,17161,594,21 +2020-05-20,Rock Island,Illinois,17161,600,21 +2020-05-21,Rock Island,Illinois,17161,652,25 +2020-05-22,Rock Island,Illinois,17161,665,25 +2020-05-23,Rock Island,Illinois,17161,671,25 +2020-05-24,Rock Island,Illinois,17161,675,25 +2020-05-25,Rock Island,Illinois,17161,680,25 +2020-05-26,Rock Island,Illinois,17161,684,26 +2020-05-27,Rock Island,Illinois,17161,686,26 +2020-05-28,Rock Island,Illinois,17161,686,26 +2020-05-29,Rock Island,Illinois,17161,691,27 +2020-05-30,Rock Island,Illinois,17161,695,27 +2020-05-31,Rock Island,Illinois,17161,698,27 +2020-06-01,Rock Island,Illinois,17161,700,27 +2020-06-02,Rock Island,Illinois,17161,717,27 +2020-06-03,Rock Island,Illinois,17161,722,27 +2020-06-04,Rock Island,Illinois,17161,725,28 +2020-06-05,Rock Island,Illinois,17161,731,28 +2020-06-06,Rock Island,Illinois,17161,739,28 +2020-06-07,Rock Island,Illinois,17161,742,28 +2020-06-08,Rock Island,Illinois,17161,746,28 +2020-06-09,Rock Island,Illinois,17161,746,28 +2020-06-10,Rock Island,Illinois,17161,753,28 +2020-06-11,Rock Island,Illinois,17161,763,28 +2020-06-12,Rock Island,Illinois,17161,770,28 +2020-06-13,Rock Island,Illinois,17161,778,28 +2020-06-14,Rock Island,Illinois,17161,779,28 +2020-06-15,Rock Island,Illinois,17161,782,28 +2020-06-16,Rock Island,Illinois,17161,783,28 +2020-06-17,Rock Island,Illinois,17161,786,28 +2020-06-18,Rock Island,Illinois,17161,791,28 +2020-06-19,Rock Island,Illinois,17161,793,28 +2020-06-20,Rock Island,Illinois,17161,796,28 +2020-06-21,Rock Island,Illinois,17161,807,28 +2020-06-22,Rock Island,Illinois,17161,812,28 +2020-06-23,Rock Island,Illinois,17161,822,28 +2020-06-24,Rock Island,Illinois,17161,833,28 +2020-06-25,Rock Island,Illinois,17161,841,28 +2020-06-26,Rock Island,Illinois,17161,861,28 +2020-06-27,Rock Island,Illinois,17161,913,28 +2020-06-28,Rock Island,Illinois,17161,924,28 +2020-06-29,Rock Island,Illinois,17161,935,29 +2020-06-30,Rock Island,Illinois,17161,947,29 +2020-07-01,Rock Island,Illinois,17161,975,29 +2020-07-02,Rock Island,Illinois,17161,995,29 +2020-07-03,Rock Island,Illinois,17161,1019,29 +2020-07-04,Rock Island,Illinois,17161,1043,29 +2020-07-05,Rock Island,Illinois,17161,1064,29 +2020-07-06,Rock Island,Illinois,17161,1086,30 +2020-07-07,Rock Island,Illinois,17161,1097,30 +2020-07-08,Rock Island,Illinois,17161,1122,30 +2020-07-09,Rock Island,Illinois,17161,1139,30 +2020-03-14,St. Clair,Illinois,17163,2,0 +2020-03-15,St. Clair,Illinois,17163,2,0 +2020-03-16,St. Clair,Illinois,17163,2,0 +2020-03-17,St. Clair,Illinois,17163,2,0 +2020-03-18,St. Clair,Illinois,17163,3,0 +2020-03-19,St. Clair,Illinois,17163,3,0 +2020-03-20,St. Clair,Illinois,17163,3,0 +2020-03-21,St. Clair,Illinois,17163,3,0 +2020-03-22,St. Clair,Illinois,17163,3,0 +2020-03-23,St. Clair,Illinois,17163,4,0 +2020-03-24,St. Clair,Illinois,17163,7,0 +2020-03-25,St. Clair,Illinois,17163,7,0 +2020-03-26,St. Clair,Illinois,17163,13,0 +2020-03-27,St. Clair,Illinois,17163,15,1 +2020-03-28,St. Clair,Illinois,17163,18,1 +2020-03-29,St. Clair,Illinois,17163,31,3 +2020-03-30,St. Clair,Illinois,17163,36,3 +2020-03-31,St. Clair,Illinois,17163,43,2 +2020-04-01,St. Clair,Illinois,17163,53,2 +2020-04-02,St. Clair,Illinois,17163,55,3 +2020-04-03,St. Clair,Illinois,17163,57,3 +2020-04-04,St. Clair,Illinois,17163,80,3 +2020-04-05,St. Clair,Illinois,17163,86,3 +2020-04-06,St. Clair,Illinois,17163,92,3 +2020-04-07,St. Clair,Illinois,17163,109,3 +2020-04-08,St. Clair,Illinois,17163,127,3 +2020-04-09,St. Clair,Illinois,17163,144,4 +2020-04-10,St. Clair,Illinois,17163,159,5 +2020-04-11,St. Clair,Illinois,17163,173,7 +2020-04-12,St. Clair,Illinois,17163,189,8 +2020-04-13,St. Clair,Illinois,17163,202,8 +2020-04-14,St. Clair,Illinois,17163,220,8 +2020-04-15,St. Clair,Illinois,17163,225,10 +2020-04-16,St. Clair,Illinois,17163,239,14 +2020-04-17,St. Clair,Illinois,17163,254,17 +2020-04-18,St. Clair,Illinois,17163,265,17 +2020-04-19,St. Clair,Illinois,17163,271,18 +2020-04-20,St. Clair,Illinois,17163,276,18 +2020-04-21,St. Clair,Illinois,17163,289,18 +2020-04-22,St. Clair,Illinois,17163,316,19 +2020-04-23,St. Clair,Illinois,17163,330,19 +2020-04-24,St. Clair,Illinois,17163,350,19 +2020-04-25,St. Clair,Illinois,17163,363,24 +2020-04-26,St. Clair,Illinois,17163,391,24 +2020-04-27,St. Clair,Illinois,17163,403,24 +2020-04-28,St. Clair,Illinois,17163,434,25 +2020-04-29,St. Clair,Illinois,17163,442,29 +2020-04-30,St. Clair,Illinois,17163,475,30 +2020-05-01,St. Clair,Illinois,17163,492,31 +2020-05-02,St. Clair,Illinois,17163,507,33 +2020-05-03,St. Clair,Illinois,17163,537,33 +2020-05-04,St. Clair,Illinois,17163,551,34 +2020-05-05,St. Clair,Illinois,17163,579,41 +2020-05-06,St. Clair,Illinois,17163,601,42 +2020-05-07,St. Clair,Illinois,17163,623,55 +2020-05-08,St. Clair,Illinois,17163,648,55 +2020-05-09,St. Clair,Illinois,17163,689,55 +2020-05-10,St. Clair,Illinois,17163,711,59 +2020-05-11,St. Clair,Illinois,17163,761,59 +2020-05-12,St. Clair,Illinois,17163,771,63 +2020-05-13,St. Clair,Illinois,17163,788,64 +2020-05-14,St. Clair,Illinois,17163,788,64 +2020-05-15,St. Clair,Illinois,17163,805,66 +2020-05-16,St. Clair,Illinois,17163,850,67 +2020-05-17,St. Clair,Illinois,17163,875,68 +2020-05-18,St. Clair,Illinois,17163,893,69 +2020-05-19,St. Clair,Illinois,17163,905,69 +2020-05-20,St. Clair,Illinois,17163,926,70 +2020-05-21,St. Clair,Illinois,17163,961,72 +2020-05-22,St. Clair,Illinois,17163,983,74 +2020-05-23,St. Clair,Illinois,17163,1016,79 +2020-05-24,St. Clair,Illinois,17163,1079,82 +2020-05-25,St. Clair,Illinois,17163,1097,82 +2020-05-26,St. Clair,Illinois,17163,1117,83 +2020-05-27,St. Clair,Illinois,17163,1117,83 +2020-05-28,St. Clair,Illinois,17163,1167,92 +2020-05-29,St. Clair,Illinois,17163,1198,94 +2020-05-30,St. Clair,Illinois,17163,1217,95 +2020-05-31,St. Clair,Illinois,17163,1230,96 +2020-06-01,St. Clair,Illinois,17163,1257,97 +2020-06-02,St. Clair,Illinois,17163,1299,98 +2020-06-03,St. Clair,Illinois,17163,1331,101 +2020-06-04,St. Clair,Illinois,17163,1362,102 +2020-06-05,St. Clair,Illinois,17163,1404,104 +2020-06-06,St. Clair,Illinois,17163,1440,105 +2020-06-07,St. Clair,Illinois,17163,1450,106 +2020-06-08,St. Clair,Illinois,17163,1467,109 +2020-06-09,St. Clair,Illinois,17163,1490,112 +2020-06-10,St. Clair,Illinois,17163,1490,112 +2020-06-11,St. Clair,Illinois,17163,1546,117 +2020-06-12,St. Clair,Illinois,17163,1569,123 +2020-06-13,St. Clair,Illinois,17163,1610,124 +2020-06-14,St. Clair,Illinois,17163,1626,126 +2020-06-15,St. Clair,Illinois,17163,1662,129 +2020-06-16,St. Clair,Illinois,17163,1668,130 +2020-06-17,St. Clair,Illinois,17163,1698,130 +2020-06-18,St. Clair,Illinois,17163,1716,131 +2020-06-19,St. Clair,Illinois,17163,1748,131 +2020-06-20,St. Clair,Illinois,17163,1772,131 +2020-06-21,St. Clair,Illinois,17163,1799,132 +2020-06-22,St. Clair,Illinois,17163,1799,132 +2020-06-23,St. Clair,Illinois,17163,1816,135 +2020-06-24,St. Clair,Illinois,17163,1869,136 +2020-06-25,St. Clair,Illinois,17163,1896,136 +2020-06-26,St. Clair,Illinois,17163,1921,136 +2020-06-27,St. Clair,Illinois,17163,1956,138 +2020-06-28,St. Clair,Illinois,17163,1956,138 +2020-06-29,St. Clair,Illinois,17163,2039,138 +2020-06-30,St. Clair,Illinois,17163,2086,138 +2020-07-01,St. Clair,Illinois,17163,2133,138 +2020-07-02,St. Clair,Illinois,17163,2167,139 +2020-07-03,St. Clair,Illinois,17163,2167,139 +2020-07-04,St. Clair,Illinois,17163,2208,140 +2020-07-05,St. Clair,Illinois,17163,2208,140 +2020-07-06,St. Clair,Illinois,17163,2208,140 +2020-07-07,St. Clair,Illinois,17163,2297,140 +2020-07-08,St. Clair,Illinois,17163,2297,143 +2020-07-09,St. Clair,Illinois,17163,2412,144 +2020-03-30,Saline,Illinois,17165,1,0 +2020-03-31,Saline,Illinois,17165,1,0 +2020-04-01,Saline,Illinois,17165,1,0 +2020-04-02,Saline,Illinois,17165,1,0 +2020-04-03,Saline,Illinois,17165,1,0 +2020-04-04,Saline,Illinois,17165,1,0 +2020-04-05,Saline,Illinois,17165,1,0 +2020-04-06,Saline,Illinois,17165,1,0 +2020-04-07,Saline,Illinois,17165,2,0 +2020-04-08,Saline,Illinois,17165,2,0 +2020-04-09,Saline,Illinois,17165,3,0 +2020-04-10,Saline,Illinois,17165,3,0 +2020-04-11,Saline,Illinois,17165,3,0 +2020-04-12,Saline,Illinois,17165,3,0 +2020-04-13,Saline,Illinois,17165,3,0 +2020-04-14,Saline,Illinois,17165,3,0 +2020-04-15,Saline,Illinois,17165,3,0 +2020-04-16,Saline,Illinois,17165,3,0 +2020-04-17,Saline,Illinois,17165,3,0 +2020-04-18,Saline,Illinois,17165,3,0 +2020-04-19,Saline,Illinois,17165,3,0 +2020-04-20,Saline,Illinois,17165,3,0 +2020-04-21,Saline,Illinois,17165,3,0 +2020-04-22,Saline,Illinois,17165,3,0 +2020-04-23,Saline,Illinois,17165,3,0 +2020-04-24,Saline,Illinois,17165,3,0 +2020-04-25,Saline,Illinois,17165,3,0 +2020-04-26,Saline,Illinois,17165,3,0 +2020-04-27,Saline,Illinois,17165,3,0 +2020-04-28,Saline,Illinois,17165,3,0 +2020-04-29,Saline,Illinois,17165,3,0 +2020-04-30,Saline,Illinois,17165,3,0 +2020-05-01,Saline,Illinois,17165,3,0 +2020-05-02,Saline,Illinois,17165,3,0 +2020-05-03,Saline,Illinois,17165,4,0 +2020-05-04,Saline,Illinois,17165,4,0 +2020-05-05,Saline,Illinois,17165,4,0 +2020-05-06,Saline,Illinois,17165,4,0 +2020-05-07,Saline,Illinois,17165,5,0 +2020-05-08,Saline,Illinois,17165,5,0 +2020-05-09,Saline,Illinois,17165,5,0 +2020-05-10,Saline,Illinois,17165,5,0 +2020-05-11,Saline,Illinois,17165,5,0 +2020-05-12,Saline,Illinois,17165,5,0 +2020-05-13,Saline,Illinois,17165,5,0 +2020-05-14,Saline,Illinois,17165,6,0 +2020-05-15,Saline,Illinois,17165,6,0 +2020-05-16,Saline,Illinois,17165,6,0 +2020-05-17,Saline,Illinois,17165,6,0 +2020-05-18,Saline,Illinois,17165,6,0 +2020-05-19,Saline,Illinois,17165,6,0 +2020-05-20,Saline,Illinois,17165,6,0 +2020-05-21,Saline,Illinois,17165,6,0 +2020-05-22,Saline,Illinois,17165,6,0 +2020-05-23,Saline,Illinois,17165,6,0 +2020-05-24,Saline,Illinois,17165,6,0 +2020-05-25,Saline,Illinois,17165,7,0 +2020-05-26,Saline,Illinois,17165,7,0 +2020-05-27,Saline,Illinois,17165,7,0 +2020-05-28,Saline,Illinois,17165,7,0 +2020-05-29,Saline,Illinois,17165,7,0 +2020-05-30,Saline,Illinois,17165,7,0 +2020-05-31,Saline,Illinois,17165,7,0 +2020-06-01,Saline,Illinois,17165,7,0 +2020-06-02,Saline,Illinois,17165,7,0 +2020-06-03,Saline,Illinois,17165,7,0 +2020-06-04,Saline,Illinois,17165,7,0 +2020-06-05,Saline,Illinois,17165,7,0 +2020-06-06,Saline,Illinois,17165,7,0 +2020-06-07,Saline,Illinois,17165,7,0 +2020-06-08,Saline,Illinois,17165,7,0 +2020-06-09,Saline,Illinois,17165,7,0 +2020-06-10,Saline,Illinois,17165,7,0 +2020-06-11,Saline,Illinois,17165,7,0 +2020-06-12,Saline,Illinois,17165,7,0 +2020-06-13,Saline,Illinois,17165,7,0 +2020-06-14,Saline,Illinois,17165,7,0 +2020-06-15,Saline,Illinois,17165,7,0 +2020-06-16,Saline,Illinois,17165,7,0 +2020-06-17,Saline,Illinois,17165,7,0 +2020-06-18,Saline,Illinois,17165,8,0 +2020-06-19,Saline,Illinois,17165,8,0 +2020-06-20,Saline,Illinois,17165,8,0 +2020-06-21,Saline,Illinois,17165,8,0 +2020-06-22,Saline,Illinois,17165,8,0 +2020-06-23,Saline,Illinois,17165,8,0 +2020-06-24,Saline,Illinois,17165,8,0 +2020-06-25,Saline,Illinois,17165,8,0 +2020-06-26,Saline,Illinois,17165,8,0 +2020-06-27,Saline,Illinois,17165,9,0 +2020-06-28,Saline,Illinois,17165,9,0 +2020-06-29,Saline,Illinois,17165,9,0 +2020-06-30,Saline,Illinois,17165,9,0 +2020-07-01,Saline,Illinois,17165,9,0 +2020-07-02,Saline,Illinois,17165,9,0 +2020-07-03,Saline,Illinois,17165,9,0 +2020-07-04,Saline,Illinois,17165,9,0 +2020-07-05,Saline,Illinois,17165,9,0 +2020-07-06,Saline,Illinois,17165,9,0 +2020-07-07,Saline,Illinois,17165,10,0 +2020-07-08,Saline,Illinois,17165,10,0 +2020-07-09,Saline,Illinois,17165,11,0 +2020-03-14,Sangamon,Illinois,17167,2,0 +2020-03-15,Sangamon,Illinois,17167,2,0 +2020-03-16,Sangamon,Illinois,17167,3,0 +2020-03-17,Sangamon,Illinois,17167,3,0 +2020-03-18,Sangamon,Illinois,17167,4,0 +2020-03-19,Sangamon,Illinois,17167,4,1 +2020-03-20,Sangamon,Illinois,17167,4,1 +2020-03-21,Sangamon,Illinois,17167,4,1 +2020-03-22,Sangamon,Illinois,17167,4,1 +2020-03-23,Sangamon,Illinois,17167,4,1 +2020-03-24,Sangamon,Illinois,17167,5,1 +2020-03-25,Sangamon,Illinois,17167,5,1 +2020-03-26,Sangamon,Illinois,17167,7,1 +2020-03-27,Sangamon,Illinois,17167,7,1 +2020-03-28,Sangamon,Illinois,17167,8,1 +2020-03-29,Sangamon,Illinois,17167,9,1 +2020-03-30,Sangamon,Illinois,17167,16,2 +2020-03-31,Sangamon,Illinois,17167,16,2 +2020-04-01,Sangamon,Illinois,17167,17,2 +2020-04-02,Sangamon,Illinois,17167,23,2 +2020-04-03,Sangamon,Illinois,17167,23,2 +2020-04-04,Sangamon,Illinois,17167,31,2 +2020-04-05,Sangamon,Illinois,17167,33,2 +2020-04-06,Sangamon,Illinois,17167,35,2 +2020-04-07,Sangamon,Illinois,17167,32,2 +2020-04-08,Sangamon,Illinois,17167,33,2 +2020-04-09,Sangamon,Illinois,17167,39,2 +2020-04-10,Sangamon,Illinois,17167,42,2 +2020-04-11,Sangamon,Illinois,17167,43,3 +2020-04-12,Sangamon,Illinois,17167,43,3 +2020-04-13,Sangamon,Illinois,17167,48,3 +2020-04-14,Sangamon,Illinois,17167,50,3 +2020-04-15,Sangamon,Illinois,17167,50,3 +2020-04-16,Sangamon,Illinois,17167,54,4 +2020-04-17,Sangamon,Illinois,17167,58,4 +2020-04-18,Sangamon,Illinois,17167,61,5 +2020-04-19,Sangamon,Illinois,17167,62,5 +2020-04-20,Sangamon,Illinois,17167,64,5 +2020-04-21,Sangamon,Illinois,17167,68,5 +2020-04-22,Sangamon,Illinois,17167,69,5 +2020-04-23,Sangamon,Illinois,17167,76,5 +2020-04-24,Sangamon,Illinois,17167,81,6 +2020-04-25,Sangamon,Illinois,17167,95,6 +2020-04-26,Sangamon,Illinois,17167,104,6 +2020-04-27,Sangamon,Illinois,17167,113,8 +2020-04-28,Sangamon,Illinois,17167,159,8 +2020-04-29,Sangamon,Illinois,17167,169,9 +2020-04-30,Sangamon,Illinois,17167,178,9 +2020-05-01,Sangamon,Illinois,17167,195,12 +2020-05-02,Sangamon,Illinois,17167,207,12 +2020-05-03,Sangamon,Illinois,17167,208,13 +2020-05-04,Sangamon,Illinois,17167,212,13 +2020-05-05,Sangamon,Illinois,17167,216,14 +2020-05-06,Sangamon,Illinois,17167,231,14 +2020-05-07,Sangamon,Illinois,17167,237,19 +2020-05-08,Sangamon,Illinois,17167,253,19 +2020-05-09,Sangamon,Illinois,17167,256,19 +2020-05-10,Sangamon,Illinois,17167,258,24 +2020-05-11,Sangamon,Illinois,17167,275,25 +2020-05-12,Sangamon,Illinois,17167,286,25 +2020-05-13,Sangamon,Illinois,17167,292,25 +2020-05-14,Sangamon,Illinois,17167,292,25 +2020-05-15,Sangamon,Illinois,17167,300,25 +2020-05-16,Sangamon,Illinois,17167,314,26 +2020-05-17,Sangamon,Illinois,17167,318,27 +2020-05-18,Sangamon,Illinois,17167,319,27 +2020-05-19,Sangamon,Illinois,17167,323,28 +2020-05-20,Sangamon,Illinois,17167,323,28 +2020-05-21,Sangamon,Illinois,17167,324,28 +2020-05-22,Sangamon,Illinois,17167,334,28 +2020-05-23,Sangamon,Illinois,17167,335,28 +2020-05-24,Sangamon,Illinois,17167,336,28 +2020-05-25,Sangamon,Illinois,17167,336,28 +2020-05-26,Sangamon,Illinois,17167,338,29 +2020-05-27,Sangamon,Illinois,17167,343,30 +2020-05-28,Sangamon,Illinois,17167,349,30 +2020-05-29,Sangamon,Illinois,17167,353,31 +2020-05-30,Sangamon,Illinois,17167,354,31 +2020-05-31,Sangamon,Illinois,17167,354,31 +2020-06-01,Sangamon,Illinois,17167,356,31 +2020-06-02,Sangamon,Illinois,17167,357,31 +2020-06-03,Sangamon,Illinois,17167,359,31 +2020-06-04,Sangamon,Illinois,17167,363,31 +2020-06-05,Sangamon,Illinois,17167,365,31 +2020-06-06,Sangamon,Illinois,17167,365,32 +2020-06-07,Sangamon,Illinois,17167,365,32 +2020-06-08,Sangamon,Illinois,17167,367,32 +2020-06-09,Sangamon,Illinois,17167,371,33 +2020-06-10,Sangamon,Illinois,17167,371,33 +2020-06-11,Sangamon,Illinois,17167,377,33 +2020-06-12,Sangamon,Illinois,17167,377,33 +2020-06-13,Sangamon,Illinois,17167,377,33 +2020-06-14,Sangamon,Illinois,17167,378,33 +2020-06-15,Sangamon,Illinois,17167,383,33 +2020-06-16,Sangamon,Illinois,17167,384,33 +2020-06-17,Sangamon,Illinois,17167,386,33 +2020-06-18,Sangamon,Illinois,17167,387,33 +2020-06-19,Sangamon,Illinois,17167,389,33 +2020-06-20,Sangamon,Illinois,17167,389,33 +2020-06-21,Sangamon,Illinois,17167,389,33 +2020-06-22,Sangamon,Illinois,17167,391,33 +2020-06-23,Sangamon,Illinois,17167,395,33 +2020-06-24,Sangamon,Illinois,17167,400,33 +2020-06-25,Sangamon,Illinois,17167,402,33 +2020-06-26,Sangamon,Illinois,17167,405,33 +2020-06-27,Sangamon,Illinois,17167,408,33 +2020-06-28,Sangamon,Illinois,17167,411,33 +2020-06-29,Sangamon,Illinois,17167,424,33 +2020-06-30,Sangamon,Illinois,17167,431,34 +2020-07-01,Sangamon,Illinois,17167,435,34 +2020-07-02,Sangamon,Illinois,17167,437,34 +2020-07-03,Sangamon,Illinois,17167,445,34 +2020-07-04,Sangamon,Illinois,17167,446,34 +2020-07-05,Sangamon,Illinois,17167,450,34 +2020-07-06,Sangamon,Illinois,17167,457,34 +2020-07-07,Sangamon,Illinois,17167,470,34 +2020-07-08,Sangamon,Illinois,17167,483,34 +2020-07-09,Sangamon,Illinois,17167,501,34 +2020-04-09,Schuyler,Illinois,17169,1,0 +2020-04-10,Schuyler,Illinois,17169,1,0 +2020-04-11,Schuyler,Illinois,17169,1,0 +2020-04-12,Schuyler,Illinois,17169,1,0 +2020-04-13,Schuyler,Illinois,17169,1,0 +2020-04-14,Schuyler,Illinois,17169,1,0 +2020-04-15,Schuyler,Illinois,17169,1,0 +2020-04-16,Schuyler,Illinois,17169,1,0 +2020-04-17,Schuyler,Illinois,17169,1,0 +2020-04-18,Schuyler,Illinois,17169,1,0 +2020-04-19,Schuyler,Illinois,17169,1,0 +2020-04-20,Schuyler,Illinois,17169,1,0 +2020-04-21,Schuyler,Illinois,17169,1,0 +2020-04-22,Schuyler,Illinois,17169,1,0 +2020-04-23,Schuyler,Illinois,17169,1,0 +2020-04-24,Schuyler,Illinois,17169,1,0 +2020-04-25,Schuyler,Illinois,17169,1,0 +2020-04-26,Schuyler,Illinois,17169,1,0 +2020-04-27,Schuyler,Illinois,17169,1,0 +2020-04-28,Schuyler,Illinois,17169,1,0 +2020-04-29,Schuyler,Illinois,17169,1,0 +2020-04-30,Schuyler,Illinois,17169,2,0 +2020-05-01,Schuyler,Illinois,17169,1,0 +2020-05-02,Schuyler,Illinois,17169,1,0 +2020-05-03,Schuyler,Illinois,17169,1,0 +2020-05-04,Schuyler,Illinois,17169,1,0 +2020-05-05,Schuyler,Illinois,17169,2,0 +2020-05-06,Schuyler,Illinois,17169,2,0 +2020-05-07,Schuyler,Illinois,17169,3,0 +2020-05-08,Schuyler,Illinois,17169,5,0 +2020-05-09,Schuyler,Illinois,17169,7,0 +2020-05-10,Schuyler,Illinois,17169,7,0 +2020-05-11,Schuyler,Illinois,17169,7,0 +2020-05-12,Schuyler,Illinois,17169,7,0 +2020-05-13,Schuyler,Illinois,17169,7,0 +2020-05-14,Schuyler,Illinois,17169,7,0 +2020-05-15,Schuyler,Illinois,17169,7,0 +2020-05-16,Schuyler,Illinois,17169,7,0 +2020-05-17,Schuyler,Illinois,17169,7,0 +2020-05-18,Schuyler,Illinois,17169,7,0 +2020-05-19,Schuyler,Illinois,17169,7,0 +2020-05-20,Schuyler,Illinois,17169,8,0 +2020-05-21,Schuyler,Illinois,17169,8,0 +2020-05-22,Schuyler,Illinois,17169,9,0 +2020-05-23,Schuyler,Illinois,17169,10,0 +2020-05-24,Schuyler,Illinois,17169,10,0 +2020-05-25,Schuyler,Illinois,17169,10,0 +2020-05-26,Schuyler,Illinois,17169,10,0 +2020-05-27,Schuyler,Illinois,17169,12,0 +2020-05-28,Schuyler,Illinois,17169,12,0 +2020-05-29,Schuyler,Illinois,17169,12,0 +2020-05-30,Schuyler,Illinois,17169,13,0 +2020-05-31,Schuyler,Illinois,17169,13,0 +2020-06-01,Schuyler,Illinois,17169,13,0 +2020-06-02,Schuyler,Illinois,17169,13,0 +2020-06-03,Schuyler,Illinois,17169,13,0 +2020-06-04,Schuyler,Illinois,17169,13,0 +2020-06-05,Schuyler,Illinois,17169,13,0 +2020-06-06,Schuyler,Illinois,17169,13,0 +2020-06-07,Schuyler,Illinois,17169,13,0 +2020-06-08,Schuyler,Illinois,17169,13,0 +2020-06-09,Schuyler,Illinois,17169,13,0 +2020-06-10,Schuyler,Illinois,17169,13,0 +2020-06-11,Schuyler,Illinois,17169,13,0 +2020-06-12,Schuyler,Illinois,17169,13,0 +2020-06-13,Schuyler,Illinois,17169,13,0 +2020-06-14,Schuyler,Illinois,17169,13,0 +2020-06-15,Schuyler,Illinois,17169,13,0 +2020-06-16,Schuyler,Illinois,17169,13,0 +2020-06-17,Schuyler,Illinois,17169,13,0 +2020-06-18,Schuyler,Illinois,17169,13,0 +2020-06-19,Schuyler,Illinois,17169,13,0 +2020-06-20,Schuyler,Illinois,17169,13,0 +2020-06-21,Schuyler,Illinois,17169,13,0 +2020-06-22,Schuyler,Illinois,17169,13,0 +2020-06-23,Schuyler,Illinois,17169,13,0 +2020-06-24,Schuyler,Illinois,17169,13,0 +2020-06-25,Schuyler,Illinois,17169,13,0 +2020-06-26,Schuyler,Illinois,17169,13,0 +2020-06-27,Schuyler,Illinois,17169,13,0 +2020-06-28,Schuyler,Illinois,17169,13,0 +2020-06-29,Schuyler,Illinois,17169,13,0 +2020-06-30,Schuyler,Illinois,17169,13,0 +2020-07-01,Schuyler,Illinois,17169,13,0 +2020-07-02,Schuyler,Illinois,17169,13,0 +2020-07-03,Schuyler,Illinois,17169,13,0 +2020-07-04,Schuyler,Illinois,17169,13,0 +2020-07-05,Schuyler,Illinois,17169,13,0 +2020-07-06,Schuyler,Illinois,17169,13,0 +2020-07-07,Schuyler,Illinois,17169,13,0 +2020-07-08,Schuyler,Illinois,17169,13,0 +2020-07-09,Schuyler,Illinois,17169,13,0 +2020-07-03,Scott,Illinois,17171,1,0 +2020-07-04,Scott,Illinois,17171,1,0 +2020-07-05,Scott,Illinois,17171,1,0 +2020-07-06,Scott,Illinois,17171,1,0 +2020-07-07,Scott,Illinois,17171,1,0 +2020-07-08,Scott,Illinois,17171,1,0 +2020-07-09,Scott,Illinois,17171,1,0 +2020-04-07,Shelby,Illinois,17173,2,0 +2020-04-08,Shelby,Illinois,17173,3,0 +2020-04-09,Shelby,Illinois,17173,3,0 +2020-04-10,Shelby,Illinois,17173,3,0 +2020-04-11,Shelby,Illinois,17173,3,0 +2020-04-12,Shelby,Illinois,17173,4,0 +2020-04-13,Shelby,Illinois,17173,4,0 +2020-04-14,Shelby,Illinois,17173,4,0 +2020-04-15,Shelby,Illinois,17173,4,0 +2020-04-16,Shelby,Illinois,17173,4,0 +2020-04-17,Shelby,Illinois,17173,4,0 +2020-04-18,Shelby,Illinois,17173,4,0 +2020-04-19,Shelby,Illinois,17173,4,0 +2020-04-20,Shelby,Illinois,17173,4,0 +2020-04-21,Shelby,Illinois,17173,4,0 +2020-04-22,Shelby,Illinois,17173,4,0 +2020-04-23,Shelby,Illinois,17173,5,0 +2020-04-24,Shelby,Illinois,17173,10,0 +2020-04-25,Shelby,Illinois,17173,9,0 +2020-04-26,Shelby,Illinois,17173,10,0 +2020-04-27,Shelby,Illinois,17173,10,0 +2020-04-28,Shelby,Illinois,17173,10,0 +2020-04-29,Shelby,Illinois,17173,10,1 +2020-04-30,Shelby,Illinois,17173,10,1 +2020-05-01,Shelby,Illinois,17173,10,1 +2020-05-02,Shelby,Illinois,17173,10,1 +2020-05-03,Shelby,Illinois,17173,10,1 +2020-05-04,Shelby,Illinois,17173,10,1 +2020-05-05,Shelby,Illinois,17173,10,1 +2020-05-06,Shelby,Illinois,17173,10,1 +2020-05-07,Shelby,Illinois,17173,10,1 +2020-05-08,Shelby,Illinois,17173,10,1 +2020-05-09,Shelby,Illinois,17173,10,1 +2020-05-10,Shelby,Illinois,17173,10,1 +2020-05-11,Shelby,Illinois,17173,10,1 +2020-05-12,Shelby,Illinois,17173,10,1 +2020-05-13,Shelby,Illinois,17173,10,1 +2020-05-14,Shelby,Illinois,17173,11,1 +2020-05-15,Shelby,Illinois,17173,12,1 +2020-05-16,Shelby,Illinois,17173,13,1 +2020-05-17,Shelby,Illinois,17173,13,1 +2020-05-18,Shelby,Illinois,17173,13,1 +2020-05-19,Shelby,Illinois,17173,15,1 +2020-05-20,Shelby,Illinois,17173,15,1 +2020-05-21,Shelby,Illinois,17173,15,1 +2020-05-22,Shelby,Illinois,17173,15,1 +2020-05-23,Shelby,Illinois,17173,16,1 +2020-05-24,Shelby,Illinois,17173,16,1 +2020-05-25,Shelby,Illinois,17173,16,1 +2020-05-26,Shelby,Illinois,17173,16,1 +2020-05-27,Shelby,Illinois,17173,16,1 +2020-05-28,Shelby,Illinois,17173,16,1 +2020-05-29,Shelby,Illinois,17173,16,1 +2020-05-30,Shelby,Illinois,17173,16,1 +2020-05-31,Shelby,Illinois,17173,16,1 +2020-06-01,Shelby,Illinois,17173,16,1 +2020-06-02,Shelby,Illinois,17173,16,1 +2020-06-03,Shelby,Illinois,17173,16,1 +2020-06-04,Shelby,Illinois,17173,16,1 +2020-06-05,Shelby,Illinois,17173,16,1 +2020-06-06,Shelby,Illinois,17173,16,1 +2020-06-07,Shelby,Illinois,17173,16,1 +2020-06-08,Shelby,Illinois,17173,16,1 +2020-06-09,Shelby,Illinois,17173,16,1 +2020-06-10,Shelby,Illinois,17173,16,1 +2020-06-11,Shelby,Illinois,17173,16,1 +2020-06-12,Shelby,Illinois,17173,16,1 +2020-06-13,Shelby,Illinois,17173,16,1 +2020-06-14,Shelby,Illinois,17173,16,1 +2020-06-15,Shelby,Illinois,17173,16,1 +2020-06-16,Shelby,Illinois,17173,16,1 +2020-06-17,Shelby,Illinois,17173,16,1 +2020-06-18,Shelby,Illinois,17173,16,1 +2020-06-19,Shelby,Illinois,17173,16,1 +2020-06-20,Shelby,Illinois,17173,16,1 +2020-06-21,Shelby,Illinois,17173,16,1 +2020-06-22,Shelby,Illinois,17173,16,1 +2020-06-23,Shelby,Illinois,17173,16,1 +2020-06-24,Shelby,Illinois,17173,16,1 +2020-06-25,Shelby,Illinois,17173,16,1 +2020-06-26,Shelby,Illinois,17173,16,1 +2020-06-27,Shelby,Illinois,17173,16,1 +2020-06-28,Shelby,Illinois,17173,18,1 +2020-06-29,Shelby,Illinois,17173,18,1 +2020-06-30,Shelby,Illinois,17173,18,1 +2020-07-01,Shelby,Illinois,17173,18,1 +2020-07-02,Shelby,Illinois,17173,18,1 +2020-07-03,Shelby,Illinois,17173,19,1 +2020-07-04,Shelby,Illinois,17173,19,1 +2020-07-05,Shelby,Illinois,17173,19,1 +2020-07-06,Shelby,Illinois,17173,19,1 +2020-07-07,Shelby,Illinois,17173,19,1 +2020-07-08,Shelby,Illinois,17173,19,1 +2020-07-09,Shelby,Illinois,17173,20,1 +2020-04-08,Stark,Illinois,17175,1,0 +2020-04-09,Stark,Illinois,17175,1,0 +2020-04-10,Stark,Illinois,17175,1,0 +2020-04-11,Stark,Illinois,17175,1,0 +2020-04-12,Stark,Illinois,17175,1,0 +2020-04-13,Stark,Illinois,17175,1,0 +2020-04-14,Stark,Illinois,17175,1,0 +2020-04-15,Stark,Illinois,17175,1,0 +2020-04-16,Stark,Illinois,17175,1,0 +2020-04-17,Stark,Illinois,17175,1,0 +2020-04-18,Stark,Illinois,17175,1,0 +2020-04-19,Stark,Illinois,17175,1,0 +2020-04-20,Stark,Illinois,17175,1,0 +2020-04-21,Stark,Illinois,17175,1,0 +2020-04-22,Stark,Illinois,17175,1,0 +2020-04-23,Stark,Illinois,17175,1,0 +2020-04-24,Stark,Illinois,17175,1,0 +2020-04-25,Stark,Illinois,17175,1,0 +2020-04-26,Stark,Illinois,17175,1,0 +2020-04-27,Stark,Illinois,17175,1,0 +2020-04-28,Stark,Illinois,17175,1,0 +2020-04-29,Stark,Illinois,17175,1,0 +2020-04-30,Stark,Illinois,17175,1,0 +2020-05-01,Stark,Illinois,17175,1,0 +2020-05-02,Stark,Illinois,17175,1,0 +2020-05-03,Stark,Illinois,17175,1,0 +2020-05-04,Stark,Illinois,17175,1,0 +2020-05-05,Stark,Illinois,17175,1,0 +2020-05-06,Stark,Illinois,17175,1,0 +2020-05-07,Stark,Illinois,17175,1,0 +2020-05-08,Stark,Illinois,17175,1,0 +2020-05-09,Stark,Illinois,17175,1,0 +2020-05-10,Stark,Illinois,17175,1,0 +2020-05-11,Stark,Illinois,17175,1,0 +2020-05-12,Stark,Illinois,17175,1,0 +2020-05-13,Stark,Illinois,17175,1,0 +2020-05-14,Stark,Illinois,17175,1,0 +2020-05-15,Stark,Illinois,17175,1,0 +2020-05-16,Stark,Illinois,17175,1,0 +2020-05-17,Stark,Illinois,17175,1,0 +2020-05-18,Stark,Illinois,17175,2,0 +2020-05-19,Stark,Illinois,17175,2,0 +2020-05-20,Stark,Illinois,17175,2,0 +2020-05-21,Stark,Illinois,17175,2,0 +2020-05-22,Stark,Illinois,17175,3,0 +2020-05-23,Stark,Illinois,17175,3,0 +2020-05-24,Stark,Illinois,17175,3,0 +2020-05-25,Stark,Illinois,17175,3,0 +2020-05-26,Stark,Illinois,17175,3,0 +2020-05-27,Stark,Illinois,17175,3,0 +2020-05-28,Stark,Illinois,17175,3,0 +2020-05-29,Stark,Illinois,17175,3,0 +2020-05-30,Stark,Illinois,17175,3,0 +2020-05-31,Stark,Illinois,17175,3,0 +2020-06-01,Stark,Illinois,17175,3,0 +2020-06-02,Stark,Illinois,17175,3,0 +2020-06-03,Stark,Illinois,17175,3,0 +2020-06-04,Stark,Illinois,17175,3,0 +2020-06-05,Stark,Illinois,17175,3,0 +2020-06-06,Stark,Illinois,17175,3,0 +2020-06-07,Stark,Illinois,17175,3,0 +2020-06-08,Stark,Illinois,17175,3,0 +2020-06-09,Stark,Illinois,17175,3,0 +2020-06-10,Stark,Illinois,17175,3,0 +2020-06-11,Stark,Illinois,17175,3,0 +2020-06-12,Stark,Illinois,17175,3,0 +2020-06-13,Stark,Illinois,17175,3,0 +2020-06-14,Stark,Illinois,17175,3,0 +2020-06-15,Stark,Illinois,17175,3,0 +2020-06-16,Stark,Illinois,17175,3,0 +2020-06-17,Stark,Illinois,17175,3,0 +2020-06-18,Stark,Illinois,17175,3,0 +2020-06-19,Stark,Illinois,17175,3,0 +2020-06-20,Stark,Illinois,17175,3,0 +2020-06-21,Stark,Illinois,17175,3,0 +2020-06-22,Stark,Illinois,17175,3,0 +2020-06-23,Stark,Illinois,17175,3,0 +2020-06-24,Stark,Illinois,17175,3,0 +2020-06-25,Stark,Illinois,17175,3,0 +2020-06-26,Stark,Illinois,17175,3,0 +2020-06-27,Stark,Illinois,17175,3,0 +2020-06-28,Stark,Illinois,17175,3,0 +2020-06-29,Stark,Illinois,17175,3,0 +2020-06-30,Stark,Illinois,17175,3,0 +2020-07-01,Stark,Illinois,17175,3,0 +2020-07-02,Stark,Illinois,17175,3,0 +2020-07-03,Stark,Illinois,17175,4,0 +2020-07-04,Stark,Illinois,17175,4,0 +2020-07-05,Stark,Illinois,17175,4,0 +2020-07-06,Stark,Illinois,17175,4,0 +2020-07-07,Stark,Illinois,17175,6,0 +2020-07-08,Stark,Illinois,17175,6,0 +2020-07-09,Stark,Illinois,17175,6,0 +2020-03-22,Stephenson,Illinois,17177,1,0 +2020-03-23,Stephenson,Illinois,17177,1,0 +2020-03-24,Stephenson,Illinois,17177,1,0 +2020-03-25,Stephenson,Illinois,17177,1,0 +2020-03-26,Stephenson,Illinois,17177,2,0 +2020-03-27,Stephenson,Illinois,17177,2,0 +2020-03-28,Stephenson,Illinois,17177,2,0 +2020-03-29,Stephenson,Illinois,17177,3,0 +2020-03-30,Stephenson,Illinois,17177,3,0 +2020-03-31,Stephenson,Illinois,17177,3,0 +2020-04-01,Stephenson,Illinois,17177,3,0 +2020-04-02,Stephenson,Illinois,17177,3,0 +2020-04-03,Stephenson,Illinois,17177,3,0 +2020-04-04,Stephenson,Illinois,17177,3,0 +2020-04-05,Stephenson,Illinois,17177,3,0 +2020-04-06,Stephenson,Illinois,17177,5,0 +2020-04-07,Stephenson,Illinois,17177,6,0 +2020-04-08,Stephenson,Illinois,17177,6,0 +2020-04-09,Stephenson,Illinois,17177,7,0 +2020-04-10,Stephenson,Illinois,17177,8,0 +2020-04-11,Stephenson,Illinois,17177,8,0 +2020-04-12,Stephenson,Illinois,17177,8,0 +2020-04-13,Stephenson,Illinois,17177,8,0 +2020-04-14,Stephenson,Illinois,17177,9,0 +2020-04-15,Stephenson,Illinois,17177,9,0 +2020-04-16,Stephenson,Illinois,17177,9,0 +2020-04-17,Stephenson,Illinois,17177,10,0 +2020-04-18,Stephenson,Illinois,17177,12,0 +2020-04-19,Stephenson,Illinois,17177,12,0 +2020-04-20,Stephenson,Illinois,17177,12,0 +2020-04-21,Stephenson,Illinois,17177,13,0 +2020-04-22,Stephenson,Illinois,17177,13,0 +2020-04-23,Stephenson,Illinois,17177,13,0 +2020-04-24,Stephenson,Illinois,17177,13,0 +2020-04-25,Stephenson,Illinois,17177,16,0 +2020-04-26,Stephenson,Illinois,17177,16,0 +2020-04-27,Stephenson,Illinois,17177,16,0 +2020-04-28,Stephenson,Illinois,17177,22,0 +2020-04-29,Stephenson,Illinois,17177,29,0 +2020-04-30,Stephenson,Illinois,17177,35,0 +2020-05-01,Stephenson,Illinois,17177,45,0 +2020-05-02,Stephenson,Illinois,17177,53,0 +2020-05-03,Stephenson,Illinois,17177,63,0 +2020-05-04,Stephenson,Illinois,17177,71,0 +2020-05-05,Stephenson,Illinois,17177,70,0 +2020-05-06,Stephenson,Illinois,17177,72,0 +2020-05-07,Stephenson,Illinois,17177,78,0 +2020-05-08,Stephenson,Illinois,17177,84,0 +2020-05-09,Stephenson,Illinois,17177,88,0 +2020-05-10,Stephenson,Illinois,17177,97,0 +2020-05-11,Stephenson,Illinois,17177,99,0 +2020-05-12,Stephenson,Illinois,17177,110,0 +2020-05-13,Stephenson,Illinois,17177,118,0 +2020-05-14,Stephenson,Illinois,17177,119,0 +2020-05-15,Stephenson,Illinois,17177,135,0 +2020-05-16,Stephenson,Illinois,17177,136,0 +2020-05-17,Stephenson,Illinois,17177,150,1 +2020-05-18,Stephenson,Illinois,17177,156,1 +2020-05-19,Stephenson,Illinois,17177,160,1 +2020-05-20,Stephenson,Illinois,17177,161,1 +2020-05-21,Stephenson,Illinois,17177,167,2 +2020-05-22,Stephenson,Illinois,17177,173,2 +2020-05-23,Stephenson,Illinois,17177,176,2 +2020-05-24,Stephenson,Illinois,17177,187,2 +2020-05-25,Stephenson,Illinois,17177,190,2 +2020-05-26,Stephenson,Illinois,17177,195,2 +2020-05-27,Stephenson,Illinois,17177,194,2 +2020-05-28,Stephenson,Illinois,17177,199,2 +2020-05-29,Stephenson,Illinois,17177,199,2 +2020-05-30,Stephenson,Illinois,17177,201,2 +2020-05-31,Stephenson,Illinois,17177,206,2 +2020-06-01,Stephenson,Illinois,17177,209,2 +2020-06-02,Stephenson,Illinois,17177,211,2 +2020-06-03,Stephenson,Illinois,17177,210,5 +2020-06-04,Stephenson,Illinois,17177,209,5 +2020-06-05,Stephenson,Illinois,17177,211,5 +2020-06-06,Stephenson,Illinois,17177,214,5 +2020-06-07,Stephenson,Illinois,17177,216,5 +2020-06-08,Stephenson,Illinois,17177,219,5 +2020-06-09,Stephenson,Illinois,17177,220,5 +2020-06-10,Stephenson,Illinois,17177,222,5 +2020-06-11,Stephenson,Illinois,17177,223,5 +2020-06-12,Stephenson,Illinois,17177,226,5 +2020-06-13,Stephenson,Illinois,17177,228,5 +2020-06-14,Stephenson,Illinois,17177,231,5 +2020-06-15,Stephenson,Illinois,17177,231,5 +2020-06-16,Stephenson,Illinois,17177,231,5 +2020-06-17,Stephenson,Illinois,17177,233,5 +2020-06-18,Stephenson,Illinois,17177,236,5 +2020-06-19,Stephenson,Illinois,17177,242,5 +2020-06-20,Stephenson,Illinois,17177,249,5 +2020-06-21,Stephenson,Illinois,17177,249,5 +2020-06-22,Stephenson,Illinois,17177,248,5 +2020-06-23,Stephenson,Illinois,17177,255,5 +2020-06-24,Stephenson,Illinois,17177,257,5 +2020-06-25,Stephenson,Illinois,17177,261,5 +2020-06-26,Stephenson,Illinois,17177,265,5 +2020-06-27,Stephenson,Illinois,17177,268,5 +2020-06-28,Stephenson,Illinois,17177,268,5 +2020-06-29,Stephenson,Illinois,17177,268,5 +2020-06-30,Stephenson,Illinois,17177,270,5 +2020-07-01,Stephenson,Illinois,17177,274,5 +2020-07-02,Stephenson,Illinois,17177,275,5 +2020-07-03,Stephenson,Illinois,17177,275,5 +2020-07-04,Stephenson,Illinois,17177,276,5 +2020-07-05,Stephenson,Illinois,17177,276,5 +2020-07-06,Stephenson,Illinois,17177,278,5 +2020-07-07,Stephenson,Illinois,17177,280,6 +2020-07-08,Stephenson,Illinois,17177,280,6 +2020-07-09,Stephenson,Illinois,17177,282,6 +2020-03-26,Tazewell,Illinois,17179,2,0 +2020-03-27,Tazewell,Illinois,17179,2,0 +2020-03-28,Tazewell,Illinois,17179,3,0 +2020-03-29,Tazewell,Illinois,17179,4,0 +2020-03-30,Tazewell,Illinois,17179,4,0 +2020-03-31,Tazewell,Illinois,17179,4,0 +2020-04-01,Tazewell,Illinois,17179,4,0 +2020-04-02,Tazewell,Illinois,17179,5,0 +2020-04-03,Tazewell,Illinois,17179,7,0 +2020-04-04,Tazewell,Illinois,17179,10,0 +2020-04-05,Tazewell,Illinois,17179,13,0 +2020-04-06,Tazewell,Illinois,17179,14,1 +2020-04-07,Tazewell,Illinois,17179,15,1 +2020-04-08,Tazewell,Illinois,17179,17,2 +2020-04-09,Tazewell,Illinois,17179,17,2 +2020-04-10,Tazewell,Illinois,17179,17,2 +2020-04-11,Tazewell,Illinois,17179,18,2 +2020-04-12,Tazewell,Illinois,17179,19,2 +2020-04-13,Tazewell,Illinois,17179,19,2 +2020-04-14,Tazewell,Illinois,17179,21,3 +2020-04-15,Tazewell,Illinois,17179,21,3 +2020-04-16,Tazewell,Illinois,17179,21,3 +2020-04-17,Tazewell,Illinois,17179,21,3 +2020-04-18,Tazewell,Illinois,17179,41,3 +2020-04-19,Tazewell,Illinois,17179,26,3 +2020-04-20,Tazewell,Illinois,17179,24,3 +2020-04-21,Tazewell,Illinois,17179,30,3 +2020-04-22,Tazewell,Illinois,17179,25,3 +2020-04-23,Tazewell,Illinois,17179,30,3 +2020-04-24,Tazewell,Illinois,17179,34,3 +2020-04-25,Tazewell,Illinois,17179,36,3 +2020-04-26,Tazewell,Illinois,17179,36,3 +2020-04-27,Tazewell,Illinois,17179,37,3 +2020-04-28,Tazewell,Illinois,17179,38,3 +2020-04-29,Tazewell,Illinois,17179,40,3 +2020-04-30,Tazewell,Illinois,17179,45,3 +2020-05-01,Tazewell,Illinois,17179,41,3 +2020-05-02,Tazewell,Illinois,17179,43,3 +2020-05-03,Tazewell,Illinois,17179,47,3 +2020-05-04,Tazewell,Illinois,17179,45,3 +2020-05-05,Tazewell,Illinois,17179,48,3 +2020-05-06,Tazewell,Illinois,17179,53,3 +2020-05-07,Tazewell,Illinois,17179,54,3 +2020-05-08,Tazewell,Illinois,17179,58,4 +2020-05-09,Tazewell,Illinois,17179,59,4 +2020-05-10,Tazewell,Illinois,17179,59,4 +2020-05-11,Tazewell,Illinois,17179,59,4 +2020-05-12,Tazewell,Illinois,17179,58,4 +2020-05-13,Tazewell,Illinois,17179,59,4 +2020-05-14,Tazewell,Illinois,17179,58,4 +2020-05-15,Tazewell,Illinois,17179,62,4 +2020-05-16,Tazewell,Illinois,17179,62,4 +2020-05-17,Tazewell,Illinois,17179,63,4 +2020-05-18,Tazewell,Illinois,17179,63,4 +2020-05-19,Tazewell,Illinois,17179,64,4 +2020-05-20,Tazewell,Illinois,17179,65,4 +2020-05-21,Tazewell,Illinois,17179,65,4 +2020-05-22,Tazewell,Illinois,17179,66,4 +2020-05-23,Tazewell,Illinois,17179,67,4 +2020-05-24,Tazewell,Illinois,17179,67,4 +2020-05-25,Tazewell,Illinois,17179,67,4 +2020-05-26,Tazewell,Illinois,17179,68,4 +2020-05-27,Tazewell,Illinois,17179,69,4 +2020-05-28,Tazewell,Illinois,17179,71,4 +2020-05-29,Tazewell,Illinois,17179,71,4 +2020-05-30,Tazewell,Illinois,17179,73,5 +2020-05-31,Tazewell,Illinois,17179,74,5 +2020-06-01,Tazewell,Illinois,17179,74,5 +2020-06-02,Tazewell,Illinois,17179,75,5 +2020-06-03,Tazewell,Illinois,17179,78,5 +2020-06-04,Tazewell,Illinois,17179,79,5 +2020-06-05,Tazewell,Illinois,17179,81,5 +2020-06-06,Tazewell,Illinois,17179,81,6 +2020-06-07,Tazewell,Illinois,17179,81,6 +2020-06-08,Tazewell,Illinois,17179,81,6 +2020-06-09,Tazewell,Illinois,17179,88,6 +2020-06-10,Tazewell,Illinois,17179,82,6 +2020-06-11,Tazewell,Illinois,17179,82,6 +2020-06-12,Tazewell,Illinois,17179,86,6 +2020-06-13,Tazewell,Illinois,17179,89,6 +2020-06-14,Tazewell,Illinois,17179,91,6 +2020-06-15,Tazewell,Illinois,17179,92,6 +2020-06-16,Tazewell,Illinois,17179,95,6 +2020-06-17,Tazewell,Illinois,17179,98,7 +2020-06-18,Tazewell,Illinois,17179,104,7 +2020-06-19,Tazewell,Illinois,17179,109,7 +2020-06-20,Tazewell,Illinois,17179,111,7 +2020-06-21,Tazewell,Illinois,17179,112,7 +2020-06-22,Tazewell,Illinois,17179,113,7 +2020-06-23,Tazewell,Illinois,17179,115,7 +2020-06-24,Tazewell,Illinois,17179,115,7 +2020-06-25,Tazewell,Illinois,17179,119,7 +2020-06-26,Tazewell,Illinois,17179,120,7 +2020-06-27,Tazewell,Illinois,17179,120,7 +2020-06-28,Tazewell,Illinois,17179,120,7 +2020-06-29,Tazewell,Illinois,17179,124,8 +2020-06-30,Tazewell,Illinois,17179,127,8 +2020-07-01,Tazewell,Illinois,17179,137,8 +2020-07-02,Tazewell,Illinois,17179,141,8 +2020-07-03,Tazewell,Illinois,17179,146,8 +2020-07-04,Tazewell,Illinois,17179,149,8 +2020-07-05,Tazewell,Illinois,17179,150,8 +2020-07-06,Tazewell,Illinois,17179,152,8 +2020-07-07,Tazewell,Illinois,17179,154,8 +2020-07-08,Tazewell,Illinois,17179,158,8 +2020-07-09,Tazewell,Illinois,17179,164,8 +2020-04-15,Union,Illinois,17181,3,0 +2020-04-16,Union,Illinois,17181,3,0 +2020-04-17,Union,Illinois,17181,4,0 +2020-04-18,Union,Illinois,17181,5,0 +2020-04-19,Union,Illinois,17181,5,0 +2020-04-20,Union,Illinois,17181,5,0 +2020-04-21,Union,Illinois,17181,5,0 +2020-04-22,Union,Illinois,17181,5,0 +2020-04-23,Union,Illinois,17181,6,0 +2020-04-24,Union,Illinois,17181,7,0 +2020-04-25,Union,Illinois,17181,7,0 +2020-04-26,Union,Illinois,17181,8,0 +2020-04-27,Union,Illinois,17181,8,0 +2020-04-28,Union,Illinois,17181,8,0 +2020-04-29,Union,Illinois,17181,11,0 +2020-04-30,Union,Illinois,17181,17,0 +2020-05-01,Union,Illinois,17181,19,0 +2020-05-02,Union,Illinois,17181,21,0 +2020-05-03,Union,Illinois,17181,28,0 +2020-05-04,Union,Illinois,17181,30,0 +2020-05-05,Union,Illinois,17181,32,1 +2020-05-06,Union,Illinois,17181,48,1 +2020-05-07,Union,Illinois,17181,52,1 +2020-05-08,Union,Illinois,17181,58,1 +2020-05-09,Union,Illinois,17181,62,1 +2020-05-10,Union,Illinois,17181,63,1 +2020-05-11,Union,Illinois,17181,63,1 +2020-05-12,Union,Illinois,17181,63,1 +2020-05-13,Union,Illinois,17181,105,1 +2020-05-14,Union,Illinois,17181,113,1 +2020-05-15,Union,Illinois,17181,117,4 +2020-05-16,Union,Illinois,17181,122,4 +2020-05-17,Union,Illinois,17181,122,4 +2020-05-18,Union,Illinois,17181,122,4 +2020-05-19,Union,Illinois,17181,122,4 +2020-05-20,Union,Illinois,17181,124,5 +2020-05-21,Union,Illinois,17181,124,5 +2020-05-22,Union,Illinois,17181,136,5 +2020-05-23,Union,Illinois,17181,138,5 +2020-05-24,Union,Illinois,17181,139,5 +2020-05-25,Union,Illinois,17181,141,7 +2020-05-26,Union,Illinois,17181,141,7 +2020-05-27,Union,Illinois,17181,143,7 +2020-05-28,Union,Illinois,17181,151,9 +2020-05-29,Union,Illinois,17181,151,9 +2020-05-30,Union,Illinois,17181,155,10 +2020-05-31,Union,Illinois,17181,154,11 +2020-06-01,Union,Illinois,17181,155,11 +2020-06-02,Union,Illinois,17181,157,11 +2020-06-03,Union,Illinois,17181,168,13 +2020-06-04,Union,Illinois,17181,171,14 +2020-06-05,Union,Illinois,17181,171,14 +2020-06-06,Union,Illinois,17181,170,14 +2020-06-07,Union,Illinois,17181,170,14 +2020-06-08,Union,Illinois,17181,170,14 +2020-06-09,Union,Illinois,17181,170,14 +2020-06-10,Union,Illinois,17181,172,15 +2020-06-11,Union,Illinois,17181,172,15 +2020-06-12,Union,Illinois,17181,172,17 +2020-06-13,Union,Illinois,17181,172,17 +2020-06-14,Union,Illinois,17181,174,17 +2020-06-15,Union,Illinois,17181,174,17 +2020-06-16,Union,Illinois,17181,174,17 +2020-06-17,Union,Illinois,17181,174,18 +2020-06-18,Union,Illinois,17181,174,18 +2020-06-19,Union,Illinois,17181,183,18 +2020-06-20,Union,Illinois,17181,182,18 +2020-06-21,Union,Illinois,17181,182,18 +2020-06-22,Union,Illinois,17181,182,18 +2020-06-23,Union,Illinois,17181,182,18 +2020-06-24,Union,Illinois,17181,182,18 +2020-06-25,Union,Illinois,17181,181,18 +2020-06-26,Union,Illinois,17181,183,18 +2020-06-27,Union,Illinois,17181,183,19 +2020-06-28,Union,Illinois,17181,184,19 +2020-06-29,Union,Illinois,17181,184,19 +2020-06-30,Union,Illinois,17181,188,19 +2020-07-01,Union,Illinois,17181,191,19 +2020-07-02,Union,Illinois,17181,193,19 +2020-07-03,Union,Illinois,17181,193,19 +2020-07-04,Union,Illinois,17181,194,19 +2020-07-05,Union,Illinois,17181,195,19 +2020-07-06,Union,Illinois,17181,196,19 +2020-07-07,Union,Illinois,17181,195,19 +2020-07-08,Union,Illinois,17181,195,19 +2020-07-09,Union,Illinois,17181,196,19 +2020-04-01,Vermilion,Illinois,17183,1,0 +2020-04-02,Vermilion,Illinois,17183,2,0 +2020-04-03,Vermilion,Illinois,17183,2,0 +2020-04-04,Vermilion,Illinois,17183,5,0 +2020-04-05,Vermilion,Illinois,17183,5,0 +2020-04-06,Vermilion,Illinois,17183,5,0 +2020-04-07,Vermilion,Illinois,17183,5,0 +2020-04-08,Vermilion,Illinois,17183,5,0 +2020-04-09,Vermilion,Illinois,17183,5,0 +2020-04-10,Vermilion,Illinois,17183,7,0 +2020-04-11,Vermilion,Illinois,17183,7,0 +2020-04-12,Vermilion,Illinois,17183,8,0 +2020-04-13,Vermilion,Illinois,17183,8,0 +2020-04-14,Vermilion,Illinois,17183,8,0 +2020-04-15,Vermilion,Illinois,17183,8,0 +2020-04-16,Vermilion,Illinois,17183,8,0 +2020-04-17,Vermilion,Illinois,17183,8,0 +2020-04-18,Vermilion,Illinois,17183,9,0 +2020-04-19,Vermilion,Illinois,17183,9,0 +2020-04-20,Vermilion,Illinois,17183,9,0 +2020-04-21,Vermilion,Illinois,17183,10,0 +2020-04-22,Vermilion,Illinois,17183,10,0 +2020-04-23,Vermilion,Illinois,17183,10,0 +2020-04-24,Vermilion,Illinois,17183,11,0 +2020-04-25,Vermilion,Illinois,17183,11,0 +2020-04-26,Vermilion,Illinois,17183,11,0 +2020-04-27,Vermilion,Illinois,17183,14,0 +2020-04-28,Vermilion,Illinois,17183,16,0 +2020-04-29,Vermilion,Illinois,17183,16,1 +2020-04-30,Vermilion,Illinois,17183,17,1 +2020-05-01,Vermilion,Illinois,17183,17,1 +2020-05-02,Vermilion,Illinois,17183,18,1 +2020-05-03,Vermilion,Illinois,17183,18,1 +2020-05-04,Vermilion,Illinois,17183,21,1 +2020-05-05,Vermilion,Illinois,17183,23,1 +2020-05-06,Vermilion,Illinois,17183,22,1 +2020-05-07,Vermilion,Illinois,17183,23,1 +2020-05-08,Vermilion,Illinois,17183,25,1 +2020-05-09,Vermilion,Illinois,17183,25,1 +2020-05-10,Vermilion,Illinois,17183,25,1 +2020-05-11,Vermilion,Illinois,17183,25,1 +2020-05-12,Vermilion,Illinois,17183,26,1 +2020-05-13,Vermilion,Illinois,17183,29,1 +2020-05-14,Vermilion,Illinois,17183,29,1 +2020-05-15,Vermilion,Illinois,17183,29,1 +2020-05-16,Vermilion,Illinois,17183,29,1 +2020-05-17,Vermilion,Illinois,17183,30,1 +2020-05-18,Vermilion,Illinois,17183,31,1 +2020-05-19,Vermilion,Illinois,17183,30,1 +2020-05-20,Vermilion,Illinois,17183,31,1 +2020-05-21,Vermilion,Illinois,17183,35,1 +2020-05-22,Vermilion,Illinois,17183,39,1 +2020-05-23,Vermilion,Illinois,17183,39,1 +2020-05-24,Vermilion,Illinois,17183,39,1 +2020-05-25,Vermilion,Illinois,17183,39,1 +2020-05-26,Vermilion,Illinois,17183,39,1 +2020-05-27,Vermilion,Illinois,17183,37,1 +2020-05-28,Vermilion,Illinois,17183,38,1 +2020-05-29,Vermilion,Illinois,17183,39,1 +2020-05-30,Vermilion,Illinois,17183,39,1 +2020-05-31,Vermilion,Illinois,17183,40,1 +2020-06-01,Vermilion,Illinois,17183,40,1 +2020-06-02,Vermilion,Illinois,17183,40,1 +2020-06-03,Vermilion,Illinois,17183,40,1 +2020-06-04,Vermilion,Illinois,17183,41,1 +2020-06-05,Vermilion,Illinois,17183,42,1 +2020-06-06,Vermilion,Illinois,17183,42,1 +2020-06-07,Vermilion,Illinois,17183,42,1 +2020-06-08,Vermilion,Illinois,17183,42,1 +2020-06-09,Vermilion,Illinois,17183,43,1 +2020-06-10,Vermilion,Illinois,17183,44,1 +2020-06-11,Vermilion,Illinois,17183,44,1 +2020-06-12,Vermilion,Illinois,17183,44,1 +2020-06-13,Vermilion,Illinois,17183,44,1 +2020-06-14,Vermilion,Illinois,17183,44,1 +2020-06-15,Vermilion,Illinois,17183,44,1 +2020-06-16,Vermilion,Illinois,17183,46,1 +2020-06-17,Vermilion,Illinois,17183,47,2 +2020-06-18,Vermilion,Illinois,17183,47,2 +2020-06-19,Vermilion,Illinois,17183,47,2 +2020-06-20,Vermilion,Illinois,17183,49,2 +2020-06-21,Vermilion,Illinois,17183,49,2 +2020-06-22,Vermilion,Illinois,17183,50,2 +2020-06-23,Vermilion,Illinois,17183,50,2 +2020-06-24,Vermilion,Illinois,17183,50,2 +2020-06-25,Vermilion,Illinois,17183,52,2 +2020-06-26,Vermilion,Illinois,17183,54,2 +2020-06-27,Vermilion,Illinois,17183,58,2 +2020-06-28,Vermilion,Illinois,17183,65,2 +2020-06-29,Vermilion,Illinois,17183,66,2 +2020-06-30,Vermilion,Illinois,17183,65,2 +2020-07-01,Vermilion,Illinois,17183,66,2 +2020-07-02,Vermilion,Illinois,17183,69,2 +2020-07-03,Vermilion,Illinois,17183,77,2 +2020-07-04,Vermilion,Illinois,17183,77,2 +2020-07-05,Vermilion,Illinois,17183,78,2 +2020-07-06,Vermilion,Illinois,17183,79,2 +2020-07-07,Vermilion,Illinois,17183,79,2 +2020-07-08,Vermilion,Illinois,17183,82,2 +2020-07-09,Vermilion,Illinois,17183,85,2 +2020-04-06,Wabash,Illinois,17185,1,0 +2020-04-07,Wabash,Illinois,17185,1,0 +2020-04-08,Wabash,Illinois,17185,1,0 +2020-04-09,Wabash,Illinois,17185,2,0 +2020-04-10,Wabash,Illinois,17185,2,0 +2020-04-11,Wabash,Illinois,17185,2,0 +2020-04-12,Wabash,Illinois,17185,2,0 +2020-04-13,Wabash,Illinois,17185,2,0 +2020-04-14,Wabash,Illinois,17185,2,0 +2020-04-15,Wabash,Illinois,17185,1,0 +2020-04-16,Wabash,Illinois,17185,1,0 +2020-04-17,Wabash,Illinois,17185,1,0 +2020-04-18,Wabash,Illinois,17185,1,0 +2020-04-19,Wabash,Illinois,17185,1,0 +2020-04-20,Wabash,Illinois,17185,1,0 +2020-04-21,Wabash,Illinois,17185,1,0 +2020-04-22,Wabash,Illinois,17185,1,0 +2020-04-23,Wabash,Illinois,17185,1,0 +2020-04-24,Wabash,Illinois,17185,1,0 +2020-04-25,Wabash,Illinois,17185,1,0 +2020-04-26,Wabash,Illinois,17185,1,0 +2020-04-27,Wabash,Illinois,17185,1,0 +2020-04-28,Wabash,Illinois,17185,1,0 +2020-04-29,Wabash,Illinois,17185,1,0 +2020-04-30,Wabash,Illinois,17185,1,0 +2020-05-01,Wabash,Illinois,17185,1,0 +2020-05-02,Wabash,Illinois,17185,1,0 +2020-05-03,Wabash,Illinois,17185,1,0 +2020-05-04,Wabash,Illinois,17185,1,0 +2020-05-05,Wabash,Illinois,17185,1,0 +2020-05-06,Wabash,Illinois,17185,1,0 +2020-05-07,Wabash,Illinois,17185,1,0 +2020-05-08,Wabash,Illinois,17185,1,0 +2020-05-09,Wabash,Illinois,17185,1,0 +2020-05-10,Wabash,Illinois,17185,1,0 +2020-05-11,Wabash,Illinois,17185,1,0 +2020-05-12,Wabash,Illinois,17185,1,0 +2020-05-13,Wabash,Illinois,17185,1,0 +2020-05-14,Wabash,Illinois,17185,1,0 +2020-05-15,Wabash,Illinois,17185,1,0 +2020-05-16,Wabash,Illinois,17185,1,0 +2020-05-17,Wabash,Illinois,17185,1,0 +2020-05-18,Wabash,Illinois,17185,1,0 +2020-05-19,Wabash,Illinois,17185,1,0 +2020-05-20,Wabash,Illinois,17185,1,0 +2020-05-21,Wabash,Illinois,17185,1,0 +2020-05-22,Wabash,Illinois,17185,1,0 +2020-05-23,Wabash,Illinois,17185,1,0 +2020-05-24,Wabash,Illinois,17185,1,0 +2020-05-25,Wabash,Illinois,17185,2,0 +2020-05-26,Wabash,Illinois,17185,2,0 +2020-05-27,Wabash,Illinois,17185,2,0 +2020-05-28,Wabash,Illinois,17185,2,0 +2020-05-29,Wabash,Illinois,17185,2,0 +2020-05-30,Wabash,Illinois,17185,2,0 +2020-05-31,Wabash,Illinois,17185,2,0 +2020-06-01,Wabash,Illinois,17185,5,0 +2020-06-02,Wabash,Illinois,17185,5,0 +2020-06-03,Wabash,Illinois,17185,5,0 +2020-06-04,Wabash,Illinois,17185,6,0 +2020-06-05,Wabash,Illinois,17185,6,0 +2020-06-06,Wabash,Illinois,17185,12,0 +2020-06-07,Wabash,Illinois,17185,12,0 +2020-06-08,Wabash,Illinois,17185,12,0 +2020-06-09,Wabash,Illinois,17185,12,0 +2020-06-10,Wabash,Illinois,17185,12,0 +2020-06-11,Wabash,Illinois,17185,12,0 +2020-06-12,Wabash,Illinois,17185,12,0 +2020-06-13,Wabash,Illinois,17185,12,0 +2020-06-14,Wabash,Illinois,17185,12,0 +2020-06-15,Wabash,Illinois,17185,13,0 +2020-06-16,Wabash,Illinois,17185,14,0 +2020-06-17,Wabash,Illinois,17185,14,0 +2020-06-18,Wabash,Illinois,17185,14,0 +2020-06-19,Wabash,Illinois,17185,15,0 +2020-06-20,Wabash,Illinois,17185,19,0 +2020-06-21,Wabash,Illinois,17185,22,0 +2020-06-22,Wabash,Illinois,17185,22,0 +2020-06-23,Wabash,Illinois,17185,22,0 +2020-06-24,Wabash,Illinois,17185,22,0 +2020-06-25,Wabash,Illinois,17185,22,0 +2020-06-26,Wabash,Illinois,17185,22,0 +2020-06-27,Wabash,Illinois,17185,22,0 +2020-06-28,Wabash,Illinois,17185,22,0 +2020-06-29,Wabash,Illinois,17185,22,0 +2020-06-30,Wabash,Illinois,17185,22,0 +2020-07-01,Wabash,Illinois,17185,22,0 +2020-07-02,Wabash,Illinois,17185,22,0 +2020-07-03,Wabash,Illinois,17185,22,0 +2020-07-04,Wabash,Illinois,17185,22,0 +2020-07-05,Wabash,Illinois,17185,23,0 +2020-07-06,Wabash,Illinois,17185,23,0 +2020-07-07,Wabash,Illinois,17185,23,0 +2020-07-08,Wabash,Illinois,17185,23,0 +2020-07-09,Wabash,Illinois,17185,23,0 +2020-04-11,Warren,Illinois,17187,1,0 +2020-04-12,Warren,Illinois,17187,2,0 +2020-04-13,Warren,Illinois,17187,2,0 +2020-04-14,Warren,Illinois,17187,2,0 +2020-04-15,Warren,Illinois,17187,2,0 +2020-04-16,Warren,Illinois,17187,2,0 +2020-04-17,Warren,Illinois,17187,2,0 +2020-04-18,Warren,Illinois,17187,4,0 +2020-04-19,Warren,Illinois,17187,13,0 +2020-04-20,Warren,Illinois,17187,15,0 +2020-04-21,Warren,Illinois,17187,15,0 +2020-04-22,Warren,Illinois,17187,19,0 +2020-04-23,Warren,Illinois,17187,31,0 +2020-04-24,Warren,Illinois,17187,37,0 +2020-04-25,Warren,Illinois,17187,44,0 +2020-04-26,Warren,Illinois,17187,49,0 +2020-04-27,Warren,Illinois,17187,50,0 +2020-04-28,Warren,Illinois,17187,53,0 +2020-04-29,Warren,Illinois,17187,56,0 +2020-04-30,Warren,Illinois,17187,62,0 +2020-05-01,Warren,Illinois,17187,70,0 +2020-05-02,Warren,Illinois,17187,75,0 +2020-05-03,Warren,Illinois,17187,78,0 +2020-05-04,Warren,Illinois,17187,85,0 +2020-05-05,Warren,Illinois,17187,85,0 +2020-05-06,Warren,Illinois,17187,88,0 +2020-05-07,Warren,Illinois,17187,92,0 +2020-05-08,Warren,Illinois,17187,93,0 +2020-05-09,Warren,Illinois,17187,97,0 +2020-05-10,Warren,Illinois,17187,102,0 +2020-05-11,Warren,Illinois,17187,104,0 +2020-05-12,Warren,Illinois,17187,106,0 +2020-05-13,Warren,Illinois,17187,105,0 +2020-05-14,Warren,Illinois,17187,105,0 +2020-05-15,Warren,Illinois,17187,105,0 +2020-05-16,Warren,Illinois,17187,106,0 +2020-05-17,Warren,Illinois,17187,108,0 +2020-05-18,Warren,Illinois,17187,109,0 +2020-05-19,Warren,Illinois,17187,110,0 +2020-05-20,Warren,Illinois,17187,110,0 +2020-05-21,Warren,Illinois,17187,110,0 +2020-05-22,Warren,Illinois,17187,112,0 +2020-05-23,Warren,Illinois,17187,114,0 +2020-05-24,Warren,Illinois,17187,114,0 +2020-05-25,Warren,Illinois,17187,114,0 +2020-05-26,Warren,Illinois,17187,114,0 +2020-05-27,Warren,Illinois,17187,113,0 +2020-05-28,Warren,Illinois,17187,113,0 +2020-05-29,Warren,Illinois,17187,113,0 +2020-05-30,Warren,Illinois,17187,115,0 +2020-05-31,Warren,Illinois,17187,117,0 +2020-06-01,Warren,Illinois,17187,117,0 +2020-06-02,Warren,Illinois,17187,117,0 +2020-06-03,Warren,Illinois,17187,118,0 +2020-06-04,Warren,Illinois,17187,120,0 +2020-06-05,Warren,Illinois,17187,122,0 +2020-06-06,Warren,Illinois,17187,125,0 +2020-06-07,Warren,Illinois,17187,126,0 +2020-06-08,Warren,Illinois,17187,127,0 +2020-06-09,Warren,Illinois,17187,127,0 +2020-06-10,Warren,Illinois,17187,127,0 +2020-06-11,Warren,Illinois,17187,127,0 +2020-06-12,Warren,Illinois,17187,127,0 +2020-06-13,Warren,Illinois,17187,127,0 +2020-06-14,Warren,Illinois,17187,127,0 +2020-06-15,Warren,Illinois,17187,127,0 +2020-06-16,Warren,Illinois,17187,127,0 +2020-06-17,Warren,Illinois,17187,127,0 +2020-06-18,Warren,Illinois,17187,127,0 +2020-06-19,Warren,Illinois,17187,127,0 +2020-06-20,Warren,Illinois,17187,128,0 +2020-06-21,Warren,Illinois,17187,129,0 +2020-06-22,Warren,Illinois,17187,129,0 +2020-06-23,Warren,Illinois,17187,129,0 +2020-06-24,Warren,Illinois,17187,130,0 +2020-06-25,Warren,Illinois,17187,131,0 +2020-06-26,Warren,Illinois,17187,133,0 +2020-06-27,Warren,Illinois,17187,133,0 +2020-06-28,Warren,Illinois,17187,135,0 +2020-06-29,Warren,Illinois,17187,135,0 +2020-06-30,Warren,Illinois,17187,136,0 +2020-07-01,Warren,Illinois,17187,138,0 +2020-07-02,Warren,Illinois,17187,139,0 +2020-07-03,Warren,Illinois,17187,143,0 +2020-07-04,Warren,Illinois,17187,143,0 +2020-07-05,Warren,Illinois,17187,143,0 +2020-07-06,Warren,Illinois,17187,145,0 +2020-07-07,Warren,Illinois,17187,147,0 +2020-07-08,Warren,Illinois,17187,147,0 +2020-07-09,Warren,Illinois,17187,147,0 +2020-03-18,Washington,Illinois,17189,1,0 +2020-03-19,Washington,Illinois,17189,1,0 +2020-03-20,Washington,Illinois,17189,1,0 +2020-03-21,Washington,Illinois,17189,1,0 +2020-03-22,Washington,Illinois,17189,1,0 +2020-03-23,Washington,Illinois,17189,1,0 +2020-03-24,Washington,Illinois,17189,1,0 +2020-03-25,Washington,Illinois,17189,1,0 +2020-03-26,Washington,Illinois,17189,1,0 +2020-03-27,Washington,Illinois,17189,1,0 +2020-03-28,Washington,Illinois,17189,1,0 +2020-03-29,Washington,Illinois,17189,1,0 +2020-03-30,Washington,Illinois,17189,1,0 +2020-03-31,Washington,Illinois,17189,1,0 +2020-04-01,Washington,Illinois,17189,1,0 +2020-04-02,Washington,Illinois,17189,1,0 +2020-04-03,Washington,Illinois,17189,1,0 +2020-04-04,Washington,Illinois,17189,1,0 +2020-04-05,Washington,Illinois,17189,1,0 +2020-04-06,Washington,Illinois,17189,2,0 +2020-04-07,Washington,Illinois,17189,2,0 +2020-04-08,Washington,Illinois,17189,2,0 +2020-04-09,Washington,Illinois,17189,2,0 +2020-04-10,Washington,Illinois,17189,2,0 +2020-04-11,Washington,Illinois,17189,2,0 +2020-04-12,Washington,Illinois,17189,2,0 +2020-04-13,Washington,Illinois,17189,2,0 +2020-04-14,Washington,Illinois,17189,2,0 +2020-04-15,Washington,Illinois,17189,3,0 +2020-04-16,Washington,Illinois,17189,4,0 +2020-04-17,Washington,Illinois,17189,5,0 +2020-04-18,Washington,Illinois,17189,6,0 +2020-04-19,Washington,Illinois,17189,7,0 +2020-04-20,Washington,Illinois,17189,7,0 +2020-04-21,Washington,Illinois,17189,7,0 +2020-04-22,Washington,Illinois,17189,7,0 +2020-04-23,Washington,Illinois,17189,7,0 +2020-04-24,Washington,Illinois,17189,7,0 +2020-04-25,Washington,Illinois,17189,7,0 +2020-04-26,Washington,Illinois,17189,8,0 +2020-04-27,Washington,Illinois,17189,8,0 +2020-04-28,Washington,Illinois,17189,8,0 +2020-04-29,Washington,Illinois,17189,10,0 +2020-04-30,Washington,Illinois,17189,10,0 +2020-05-01,Washington,Illinois,17189,10,0 +2020-05-02,Washington,Illinois,17189,13,0 +2020-05-03,Washington,Illinois,17189,13,0 +2020-05-04,Washington,Illinois,17189,13,0 +2020-05-05,Washington,Illinois,17189,14,0 +2020-05-06,Washington,Illinois,17189,15,0 +2020-05-07,Washington,Illinois,17189,14,0 +2020-05-08,Washington,Illinois,17189,14,0 +2020-05-09,Washington,Illinois,17189,15,0 +2020-05-10,Washington,Illinois,17189,15,0 +2020-05-11,Washington,Illinois,17189,17,0 +2020-05-12,Washington,Illinois,17189,17,0 +2020-05-13,Washington,Illinois,17189,17,0 +2020-05-14,Washington,Illinois,17189,17,0 +2020-05-15,Washington,Illinois,17189,17,0 +2020-05-16,Washington,Illinois,17189,17,0 +2020-05-17,Washington,Illinois,17189,17,0 +2020-05-18,Washington,Illinois,17189,17,0 +2020-05-19,Washington,Illinois,17189,18,0 +2020-05-20,Washington,Illinois,17189,18,0 +2020-05-21,Washington,Illinois,17189,18,0 +2020-05-22,Washington,Illinois,17189,18,0 +2020-05-23,Washington,Illinois,17189,18,0 +2020-05-24,Washington,Illinois,17189,18,0 +2020-05-25,Washington,Illinois,17189,18,0 +2020-05-26,Washington,Illinois,17189,18,0 +2020-05-27,Washington,Illinois,17189,18,0 +2020-05-28,Washington,Illinois,17189,18,0 +2020-05-29,Washington,Illinois,17189,18,0 +2020-05-30,Washington,Illinois,17189,18,0 +2020-05-31,Washington,Illinois,17189,18,0 +2020-06-01,Washington,Illinois,17189,18,0 +2020-06-02,Washington,Illinois,17189,18,0 +2020-06-03,Washington,Illinois,17189,19,0 +2020-06-04,Washington,Illinois,17189,19,0 +2020-06-05,Washington,Illinois,17189,19,0 +2020-06-06,Washington,Illinois,17189,20,0 +2020-06-07,Washington,Illinois,17189,20,0 +2020-06-08,Washington,Illinois,17189,20,0 +2020-06-09,Washington,Illinois,17189,19,0 +2020-06-10,Washington,Illinois,17189,19,0 +2020-06-11,Washington,Illinois,17189,19,0 +2020-06-12,Washington,Illinois,17189,19,0 +2020-06-13,Washington,Illinois,17189,19,0 +2020-06-14,Washington,Illinois,17189,19,0 +2020-06-15,Washington,Illinois,17189,19,0 +2020-06-16,Washington,Illinois,17189,19,0 +2020-06-17,Washington,Illinois,17189,19,0 +2020-06-18,Washington,Illinois,17189,19,0 +2020-06-19,Washington,Illinois,17189,19,0 +2020-06-20,Washington,Illinois,17189,19,0 +2020-06-21,Washington,Illinois,17189,19,0 +2020-06-22,Washington,Illinois,17189,19,0 +2020-06-23,Washington,Illinois,17189,19,0 +2020-06-24,Washington,Illinois,17189,19,0 +2020-06-25,Washington,Illinois,17189,19,0 +2020-06-26,Washington,Illinois,17189,19,0 +2020-06-27,Washington,Illinois,17189,19,0 +2020-06-28,Washington,Illinois,17189,19,0 +2020-06-29,Washington,Illinois,17189,19,0 +2020-06-30,Washington,Illinois,17189,19,0 +2020-07-01,Washington,Illinois,17189,20,0 +2020-07-02,Washington,Illinois,17189,20,0 +2020-07-03,Washington,Illinois,17189,21,0 +2020-07-04,Washington,Illinois,17189,21,0 +2020-07-05,Washington,Illinois,17189,21,0 +2020-07-06,Washington,Illinois,17189,21,0 +2020-07-07,Washington,Illinois,17189,24,0 +2020-07-08,Washington,Illinois,17189,25,0 +2020-07-09,Washington,Illinois,17189,25,0 +2020-04-17,Wayne,Illinois,17191,1,0 +2020-04-18,Wayne,Illinois,17191,1,0 +2020-04-19,Wayne,Illinois,17191,1,0 +2020-04-20,Wayne,Illinois,17191,1,0 +2020-04-21,Wayne,Illinois,17191,1,0 +2020-04-22,Wayne,Illinois,17191,1,0 +2020-04-23,Wayne,Illinois,17191,1,0 +2020-04-24,Wayne,Illinois,17191,2,0 +2020-04-25,Wayne,Illinois,17191,2,0 +2020-04-26,Wayne,Illinois,17191,2,0 +2020-04-27,Wayne,Illinois,17191,2,0 +2020-04-28,Wayne,Illinois,17191,2,0 +2020-04-29,Wayne,Illinois,17191,2,0 +2020-04-30,Wayne,Illinois,17191,2,0 +2020-05-01,Wayne,Illinois,17191,2,0 +2020-05-02,Wayne,Illinois,17191,2,0 +2020-05-03,Wayne,Illinois,17191,2,0 +2020-05-04,Wayne,Illinois,17191,2,0 +2020-05-05,Wayne,Illinois,17191,2,0 +2020-05-06,Wayne,Illinois,17191,2,0 +2020-05-07,Wayne,Illinois,17191,2,0 +2020-05-08,Wayne,Illinois,17191,3,0 +2020-05-09,Wayne,Illinois,17191,3,0 +2020-05-10,Wayne,Illinois,17191,3,0 +2020-05-11,Wayne,Illinois,17191,3,0 +2020-05-12,Wayne,Illinois,17191,3,0 +2020-05-13,Wayne,Illinois,17191,10,0 +2020-05-14,Wayne,Illinois,17191,11,1 +2020-05-15,Wayne,Illinois,17191,8,1 +2020-05-16,Wayne,Illinois,17191,8,1 +2020-05-17,Wayne,Illinois,17191,9,1 +2020-05-18,Wayne,Illinois,17191,9,1 +2020-05-19,Wayne,Illinois,17191,9,1 +2020-05-20,Wayne,Illinois,17191,9,1 +2020-05-21,Wayne,Illinois,17191,9,1 +2020-05-22,Wayne,Illinois,17191,9,1 +2020-05-23,Wayne,Illinois,17191,9,1 +2020-05-24,Wayne,Illinois,17191,9,1 +2020-05-25,Wayne,Illinois,17191,9,1 +2020-05-26,Wayne,Illinois,17191,9,1 +2020-05-27,Wayne,Illinois,17191,9,1 +2020-05-28,Wayne,Illinois,17191,9,1 +2020-05-29,Wayne,Illinois,17191,9,1 +2020-05-30,Wayne,Illinois,17191,9,1 +2020-05-31,Wayne,Illinois,17191,9,1 +2020-06-01,Wayne,Illinois,17191,9,1 +2020-06-02,Wayne,Illinois,17191,9,1 +2020-06-03,Wayne,Illinois,17191,9,1 +2020-06-04,Wayne,Illinois,17191,9,1 +2020-06-05,Wayne,Illinois,17191,9,1 +2020-06-06,Wayne,Illinois,17191,9,1 +2020-06-07,Wayne,Illinois,17191,9,1 +2020-06-08,Wayne,Illinois,17191,9,1 +2020-06-09,Wayne,Illinois,17191,9,1 +2020-06-10,Wayne,Illinois,17191,9,1 +2020-06-11,Wayne,Illinois,17191,9,1 +2020-06-12,Wayne,Illinois,17191,9,1 +2020-06-13,Wayne,Illinois,17191,9,1 +2020-06-14,Wayne,Illinois,17191,9,1 +2020-06-15,Wayne,Illinois,17191,9,1 +2020-06-16,Wayne,Illinois,17191,9,1 +2020-06-17,Wayne,Illinois,17191,9,1 +2020-06-18,Wayne,Illinois,17191,10,1 +2020-06-19,Wayne,Illinois,17191,11,1 +2020-06-20,Wayne,Illinois,17191,11,1 +2020-06-21,Wayne,Illinois,17191,11,1 +2020-06-22,Wayne,Illinois,17191,11,1 +2020-06-23,Wayne,Illinois,17191,11,1 +2020-06-24,Wayne,Illinois,17191,11,1 +2020-06-25,Wayne,Illinois,17191,12,1 +2020-06-26,Wayne,Illinois,17191,12,1 +2020-06-27,Wayne,Illinois,17191,12,1 +2020-06-28,Wayne,Illinois,17191,12,1 +2020-06-29,Wayne,Illinois,17191,13,1 +2020-06-30,Wayne,Illinois,17191,14,1 +2020-07-01,Wayne,Illinois,17191,14,1 +2020-07-02,Wayne,Illinois,17191,14,1 +2020-07-03,Wayne,Illinois,17191,14,1 +2020-07-04,Wayne,Illinois,17191,14,1 +2020-07-05,Wayne,Illinois,17191,14,1 +2020-07-06,Wayne,Illinois,17191,14,1 +2020-07-07,Wayne,Illinois,17191,15,1 +2020-07-08,Wayne,Illinois,17191,15,1 +2020-07-09,Wayne,Illinois,17191,15,1 +2020-04-20,White,Illinois,17193,1,0 +2020-04-21,White,Illinois,17193,1,0 +2020-04-22,White,Illinois,17193,1,0 +2020-04-23,White,Illinois,17193,1,0 +2020-04-24,White,Illinois,17193,1,0 +2020-04-25,White,Illinois,17193,1,0 +2020-04-26,White,Illinois,17193,1,0 +2020-04-27,White,Illinois,17193,1,0 +2020-04-28,White,Illinois,17193,2,0 +2020-04-29,White,Illinois,17193,2,0 +2020-04-30,White,Illinois,17193,2,0 +2020-05-01,White,Illinois,17193,2,0 +2020-05-02,White,Illinois,17193,2,0 +2020-05-03,White,Illinois,17193,2,0 +2020-05-04,White,Illinois,17193,2,0 +2020-05-05,White,Illinois,17193,2,0 +2020-05-06,White,Illinois,17193,2,0 +2020-05-07,White,Illinois,17193,2,0 +2020-05-08,White,Illinois,17193,2,0 +2020-05-09,White,Illinois,17193,2,0 +2020-05-10,White,Illinois,17193,2,0 +2020-05-11,White,Illinois,17193,2,0 +2020-05-12,White,Illinois,17193,2,0 +2020-05-13,White,Illinois,17193,2,0 +2020-05-14,White,Illinois,17193,2,0 +2020-05-15,White,Illinois,17193,2,0 +2020-05-16,White,Illinois,17193,2,0 +2020-05-17,White,Illinois,17193,2,0 +2020-05-18,White,Illinois,17193,2,0 +2020-05-19,White,Illinois,17193,2,0 +2020-05-20,White,Illinois,17193,2,0 +2020-05-21,White,Illinois,17193,2,0 +2020-05-22,White,Illinois,17193,2,0 +2020-05-23,White,Illinois,17193,2,0 +2020-05-24,White,Illinois,17193,2,0 +2020-05-25,White,Illinois,17193,2,0 +2020-05-26,White,Illinois,17193,2,0 +2020-05-27,White,Illinois,17193,2,0 +2020-05-28,White,Illinois,17193,2,0 +2020-05-29,White,Illinois,17193,2,0 +2020-05-30,White,Illinois,17193,2,0 +2020-05-31,White,Illinois,17193,2,0 +2020-06-01,White,Illinois,17193,2,0 +2020-06-02,White,Illinois,17193,2,0 +2020-06-03,White,Illinois,17193,2,0 +2020-06-04,White,Illinois,17193,2,0 +2020-06-05,White,Illinois,17193,2,0 +2020-06-06,White,Illinois,17193,2,0 +2020-06-07,White,Illinois,17193,2,0 +2020-06-08,White,Illinois,17193,2,0 +2020-06-09,White,Illinois,17193,2,0 +2020-06-10,White,Illinois,17193,2,0 +2020-06-11,White,Illinois,17193,2,0 +2020-06-12,White,Illinois,17193,2,0 +2020-06-13,White,Illinois,17193,3,0 +2020-06-14,White,Illinois,17193,3,0 +2020-06-15,White,Illinois,17193,3,0 +2020-06-16,White,Illinois,17193,3,0 +2020-06-17,White,Illinois,17193,3,0 +2020-06-18,White,Illinois,17193,3,0 +2020-06-19,White,Illinois,17193,3,0 +2020-06-20,White,Illinois,17193,3,0 +2020-06-21,White,Illinois,17193,3,0 +2020-06-22,White,Illinois,17193,3,0 +2020-06-23,White,Illinois,17193,3,0 +2020-06-24,White,Illinois,17193,3,0 +2020-06-25,White,Illinois,17193,4,0 +2020-06-26,White,Illinois,17193,4,0 +2020-06-27,White,Illinois,17193,4,0 +2020-06-28,White,Illinois,17193,4,0 +2020-06-29,White,Illinois,17193,4,0 +2020-06-30,White,Illinois,17193,4,0 +2020-07-01,White,Illinois,17193,5,0 +2020-07-02,White,Illinois,17193,5,0 +2020-07-03,White,Illinois,17193,6,0 +2020-07-04,White,Illinois,17193,6,0 +2020-07-05,White,Illinois,17193,8,0 +2020-07-06,White,Illinois,17193,8,0 +2020-07-07,White,Illinois,17193,8,0 +2020-07-08,White,Illinois,17193,9,0 +2020-07-09,White,Illinois,17193,8,0 +2020-03-15,Whiteside,Illinois,17195,1,0 +2020-03-16,Whiteside,Illinois,17195,1,0 +2020-03-17,Whiteside,Illinois,17195,1,0 +2020-03-18,Whiteside,Illinois,17195,1,0 +2020-03-19,Whiteside,Illinois,17195,1,0 +2020-03-20,Whiteside,Illinois,17195,1,0 +2020-03-21,Whiteside,Illinois,17195,1,0 +2020-03-22,Whiteside,Illinois,17195,1,0 +2020-03-23,Whiteside,Illinois,17195,1,0 +2020-03-24,Whiteside,Illinois,17195,1,0 +2020-03-25,Whiteside,Illinois,17195,1,0 +2020-03-26,Whiteside,Illinois,17195,1,0 +2020-03-27,Whiteside,Illinois,17195,2,0 +2020-03-28,Whiteside,Illinois,17195,2,0 +2020-03-29,Whiteside,Illinois,17195,3,0 +2020-03-30,Whiteside,Illinois,17195,4,0 +2020-03-31,Whiteside,Illinois,17195,5,1 +2020-04-01,Whiteside,Illinois,17195,5,1 +2020-04-02,Whiteside,Illinois,17195,6,1 +2020-04-03,Whiteside,Illinois,17195,9,1 +2020-04-04,Whiteside,Illinois,17195,15,1 +2020-04-05,Whiteside,Illinois,17195,18,1 +2020-04-06,Whiteside,Illinois,17195,18,1 +2020-04-07,Whiteside,Illinois,17195,21,1 +2020-04-08,Whiteside,Illinois,17195,21,1 +2020-04-09,Whiteside,Illinois,17195,23,1 +2020-04-10,Whiteside,Illinois,17195,24,1 +2020-04-11,Whiteside,Illinois,17195,25,1 +2020-04-12,Whiteside,Illinois,17195,26,1 +2020-04-13,Whiteside,Illinois,17195,28,1 +2020-04-14,Whiteside,Illinois,17195,30,3 +2020-04-15,Whiteside,Illinois,17195,29,3 +2020-04-16,Whiteside,Illinois,17195,30,3 +2020-04-17,Whiteside,Illinois,17195,31,3 +2020-04-18,Whiteside,Illinois,17195,36,3 +2020-04-19,Whiteside,Illinois,17195,36,3 +2020-04-20,Whiteside,Illinois,17195,41,3 +2020-04-21,Whiteside,Illinois,17195,42,3 +2020-04-22,Whiteside,Illinois,17195,45,3 +2020-04-23,Whiteside,Illinois,17195,49,3 +2020-04-24,Whiteside,Illinois,17195,53,4 +2020-04-25,Whiteside,Illinois,17195,59,5 +2020-04-26,Whiteside,Illinois,17195,62,5 +2020-04-27,Whiteside,Illinois,17195,67,5 +2020-04-28,Whiteside,Illinois,17195,76,5 +2020-04-29,Whiteside,Illinois,17195,75,5 +2020-04-30,Whiteside,Illinois,17195,84,6 +2020-05-01,Whiteside,Illinois,17195,87,6 +2020-05-02,Whiteside,Illinois,17195,92,6 +2020-05-03,Whiteside,Illinois,17195,92,6 +2020-05-04,Whiteside,Illinois,17195,92,6 +2020-05-05,Whiteside,Illinois,17195,94,6 +2020-05-06,Whiteside,Illinois,17195,98,6 +2020-05-07,Whiteside,Illinois,17195,99,7 +2020-05-08,Whiteside,Illinois,17195,101,7 +2020-05-09,Whiteside,Illinois,17195,102,7 +2020-05-10,Whiteside,Illinois,17195,104,8 +2020-05-11,Whiteside,Illinois,17195,110,8 +2020-05-12,Whiteside,Illinois,17195,111,8 +2020-05-13,Whiteside,Illinois,17195,112,8 +2020-05-14,Whiteside,Illinois,17195,112,8 +2020-05-15,Whiteside,Illinois,17195,113,8 +2020-05-16,Whiteside,Illinois,17195,119,9 +2020-05-17,Whiteside,Illinois,17195,122,9 +2020-05-18,Whiteside,Illinois,17195,123,9 +2020-05-19,Whiteside,Illinois,17195,126,9 +2020-05-20,Whiteside,Illinois,17195,131,10 +2020-05-21,Whiteside,Illinois,17195,133,10 +2020-05-22,Whiteside,Illinois,17195,133,10 +2020-05-23,Whiteside,Illinois,17195,135,10 +2020-05-24,Whiteside,Illinois,17195,135,10 +2020-05-25,Whiteside,Illinois,17195,135,10 +2020-05-26,Whiteside,Illinois,17195,135,10 +2020-05-27,Whiteside,Illinois,17195,135,11 +2020-05-28,Whiteside,Illinois,17195,136,12 +2020-05-29,Whiteside,Illinois,17195,140,12 +2020-05-30,Whiteside,Illinois,17195,140,12 +2020-05-31,Whiteside,Illinois,17195,143,13 +2020-06-01,Whiteside,Illinois,17195,143,13 +2020-06-02,Whiteside,Illinois,17195,144,13 +2020-06-03,Whiteside,Illinois,17195,145,13 +2020-06-04,Whiteside,Illinois,17195,147,13 +2020-06-05,Whiteside,Illinois,17195,153,13 +2020-06-06,Whiteside,Illinois,17195,157,13 +2020-06-07,Whiteside,Illinois,17195,157,13 +2020-06-08,Whiteside,Illinois,17195,157,13 +2020-06-09,Whiteside,Illinois,17195,157,13 +2020-06-10,Whiteside,Illinois,17195,157,13 +2020-06-11,Whiteside,Illinois,17195,158,14 +2020-06-12,Whiteside,Illinois,17195,161,14 +2020-06-13,Whiteside,Illinois,17195,162,15 +2020-06-14,Whiteside,Illinois,17195,163,15 +2020-06-15,Whiteside,Illinois,17195,163,15 +2020-06-16,Whiteside,Illinois,17195,163,15 +2020-06-17,Whiteside,Illinois,17195,163,15 +2020-06-18,Whiteside,Illinois,17195,163,15 +2020-06-19,Whiteside,Illinois,17195,171,15 +2020-06-20,Whiteside,Illinois,17195,171,15 +2020-06-21,Whiteside,Illinois,17195,172,15 +2020-06-22,Whiteside,Illinois,17195,173,15 +2020-06-23,Whiteside,Illinois,17195,176,15 +2020-06-24,Whiteside,Illinois,17195,178,15 +2020-06-25,Whiteside,Illinois,17195,178,15 +2020-06-26,Whiteside,Illinois,17195,180,15 +2020-06-27,Whiteside,Illinois,17195,183,15 +2020-06-28,Whiteside,Illinois,17195,183,15 +2020-06-29,Whiteside,Illinois,17195,183,15 +2020-06-30,Whiteside,Illinois,17195,186,15 +2020-07-01,Whiteside,Illinois,17195,191,15 +2020-07-02,Whiteside,Illinois,17195,191,15 +2020-07-03,Whiteside,Illinois,17195,192,15 +2020-07-04,Whiteside,Illinois,17195,193,15 +2020-07-05,Whiteside,Illinois,17195,195,15 +2020-07-06,Whiteside,Illinois,17195,196,15 +2020-07-07,Whiteside,Illinois,17195,200,15 +2020-07-08,Whiteside,Illinois,17195,199,15 +2020-07-09,Whiteside,Illinois,17195,203,15 +2020-03-16,Will,Illinois,17197,1,0 +2020-03-17,Will,Illinois,17197,2,0 +2020-03-18,Will,Illinois,17197,9,0 +2020-03-19,Will,Illinois,17197,11,1 +2020-03-20,Will,Illinois,17197,12,1 +2020-03-21,Will,Illinois,17197,12,1 +2020-03-22,Will,Illinois,17197,21,1 +2020-03-23,Will,Illinois,17197,24,1 +2020-03-24,Will,Illinois,17197,24,1 +2020-03-25,Will,Illinois,17197,50,2 +2020-03-26,Will,Illinois,17197,67,3 +2020-03-27,Will,Illinois,17197,104,3 +2020-03-28,Will,Illinois,17197,156,4 +2020-03-29,Will,Illinois,17197,192,4 +2020-03-30,Will,Illinois,17197,224,6 +2020-03-31,Will,Illinois,17197,228,8 +2020-04-01,Will,Illinois,17197,322,9 +2020-04-02,Will,Illinois,17197,384,9 +2020-04-03,Will,Illinois,17197,455,10 +2020-04-04,Will,Illinois,17197,606,11 +2020-04-05,Will,Illinois,17197,668,15 +2020-04-06,Will,Illinois,17197,697,19 +2020-04-07,Will,Illinois,17197,840,30 +2020-04-08,Will,Illinois,17197,914,35 +2020-04-09,Will,Illinois,17197,1012,46 +2020-04-10,Will,Illinois,17197,1077,52 +2020-04-11,Will,Illinois,17197,1126,56 +2020-04-12,Will,Illinois,17197,1228,60 +2020-04-13,Will,Illinois,17197,1283,63 +2020-04-14,Will,Illinois,17197,1350,77 +2020-04-15,Will,Illinois,17197,1433,81 +2020-04-16,Will,Illinois,17197,1494,88 +2020-04-17,Will,Illinois,17197,1566,92 +2020-04-18,Will,Illinois,17197,1603,97 +2020-04-19,Will,Illinois,17197,1643,101 +2020-04-20,Will,Illinois,17197,1692,102 +2020-04-21,Will,Illinois,17197,1736,105 +2020-04-22,Will,Illinois,17197,1820,110 +2020-04-23,Will,Illinois,17197,1885,119 +2020-04-24,Will,Illinois,17197,2009,125 +2020-04-25,Will,Illinois,17197,2060,131 +2020-04-26,Will,Illinois,17197,2126,133 +2020-04-27,Will,Illinois,17197,2173,136 +2020-04-28,Will,Illinois,17197,2254,145 +2020-04-29,Will,Illinois,17197,2369,148 +2020-04-30,Will,Illinois,17197,2492,151 +2020-05-01,Will,Illinois,17197,2617,158 +2020-05-02,Will,Illinois,17197,2796,164 +2020-05-03,Will,Illinois,17197,2868,165 +2020-05-04,Will,Illinois,17197,3066,169 +2020-05-05,Will,Illinois,17197,3150,178 +2020-05-06,Will,Illinois,17197,3332,189 +2020-05-07,Will,Illinois,17197,3434,195 +2020-05-08,Will,Illinois,17197,3561,199 +2020-05-09,Will,Illinois,17197,3636,202 +2020-05-10,Will,Illinois,17197,3684,202 +2020-05-11,Will,Illinois,17197,3740,202 +2020-05-12,Will,Illinois,17197,3896,210 +2020-05-13,Will,Illinois,17197,3973,214 +2020-05-14,Will,Illinois,17197,4090,231 +2020-05-15,Will,Illinois,17197,4277,237 +2020-05-16,Will,Illinois,17197,4312,240 +2020-05-17,Will,Illinois,17197,4388,240 +2020-05-18,Will,Illinois,17197,4508,240 +2020-05-19,Will,Illinois,17197,4577,244 +2020-05-20,Will,Illinois,17197,4718,248 +2020-05-21,Will,Illinois,17197,4811,252 +2020-05-22,Will,Illinois,17197,4966,255 +2020-05-23,Will,Illinois,17197,5012,257 +2020-05-24,Will,Illinois,17197,5117,257 +2020-05-25,Will,Illinois,17197,5188,258 +2020-05-26,Will,Illinois,17197,5255,259 +2020-05-27,Will,Illinois,17197,5301,264 +2020-05-28,Will,Illinois,17197,5356,268 +2020-05-29,Will,Illinois,17197,5459,269 +2020-05-30,Will,Illinois,17197,5510,273 +2020-05-31,Will,Illinois,17197,5566,276 +2020-06-01,Will,Illinois,17197,5641,279 +2020-06-02,Will,Illinois,17197,5649,280 +2020-06-03,Will,Illinois,17197,5730,283 +2020-06-04,Will,Illinois,17197,5752,286 +2020-06-05,Will,Illinois,17197,5799,285 +2020-06-06,Will,Illinois,17197,5858,285 +2020-06-07,Will,Illinois,17197,5890,288 +2020-06-08,Will,Illinois,17197,5942,289 +2020-06-09,Will,Illinois,17197,5961,295 +2020-06-10,Will,Illinois,17197,6025,296 +2020-06-11,Will,Illinois,17197,6051,297 +2020-06-12,Will,Illinois,17197,6100,300 +2020-06-13,Will,Illinois,17197,6106,301 +2020-06-14,Will,Illinois,17197,6140,302 +2020-06-15,Will,Illinois,17197,6158,302 +2020-06-16,Will,Illinois,17197,6207,303 +2020-06-17,Will,Illinois,17197,6222,308 +2020-06-18,Will,Illinois,17197,6258,310 +2020-06-19,Will,Illinois,17197,6301,310 +2020-06-20,Will,Illinois,17197,6317,310 +2020-06-21,Will,Illinois,17197,6367,310 +2020-06-22,Will,Illinois,17197,6398,310 +2020-06-23,Will,Illinois,17197,6446,310 +2020-06-24,Will,Illinois,17197,6480,315 +2020-06-25,Will,Illinois,17197,6504,316 +2020-06-26,Will,Illinois,17197,6542,316 +2020-06-27,Will,Illinois,17197,6577,316 +2020-06-28,Will,Illinois,17197,6608,319 +2020-06-29,Will,Illinois,17197,6635,319 +2020-06-30,Will,Illinois,17197,6686,321 +2020-07-01,Will,Illinois,17197,6744,320 +2020-07-02,Will,Illinois,17197,6801,321 +2020-07-03,Will,Illinois,17197,6839,320 +2020-07-04,Will,Illinois,17197,6883,320 +2020-07-05,Will,Illinois,17197,6923,320 +2020-07-06,Will,Illinois,17197,6957,320 +2020-07-07,Will,Illinois,17197,6996,322 +2020-07-08,Will,Illinois,17197,7077,323 +2020-07-09,Will,Illinois,17197,7137,323 +2020-03-18,Williamson,Illinois,17199,1,0 +2020-03-19,Williamson,Illinois,17199,1,0 +2020-03-20,Williamson,Illinois,17199,1,0 +2020-03-21,Williamson,Illinois,17199,1,0 +2020-03-22,Williamson,Illinois,17199,1,0 +2020-03-23,Williamson,Illinois,17199,1,0 +2020-03-24,Williamson,Illinois,17199,1,0 +2020-03-25,Williamson,Illinois,17199,1,0 +2020-03-26,Williamson,Illinois,17199,1,0 +2020-03-27,Williamson,Illinois,17199,1,0 +2020-03-28,Williamson,Illinois,17199,1,0 +2020-03-29,Williamson,Illinois,17199,1,0 +2020-03-30,Williamson,Illinois,17199,1,0 +2020-03-31,Williamson,Illinois,17199,1,0 +2020-04-01,Williamson,Illinois,17199,1,0 +2020-04-02,Williamson,Illinois,17199,1,0 +2020-04-03,Williamson,Illinois,17199,2,0 +2020-04-04,Williamson,Illinois,17199,3,0 +2020-04-05,Williamson,Illinois,17199,3,0 +2020-04-06,Williamson,Illinois,17199,3,0 +2020-04-07,Williamson,Illinois,17199,8,0 +2020-04-08,Williamson,Illinois,17199,9,0 +2020-04-09,Williamson,Illinois,17199,10,0 +2020-04-10,Williamson,Illinois,17199,10,0 +2020-04-11,Williamson,Illinois,17199,10,0 +2020-04-12,Williamson,Illinois,17199,10,0 +2020-04-13,Williamson,Illinois,17199,10,0 +2020-04-14,Williamson,Illinois,17199,10,0 +2020-04-15,Williamson,Illinois,17199,12,0 +2020-04-16,Williamson,Illinois,17199,12,0 +2020-04-17,Williamson,Illinois,17199,13,0 +2020-04-18,Williamson,Illinois,17199,13,0 +2020-04-19,Williamson,Illinois,17199,14,0 +2020-04-20,Williamson,Illinois,17199,15,0 +2020-04-21,Williamson,Illinois,17199,16,0 +2020-04-22,Williamson,Illinois,17199,17,0 +2020-04-23,Williamson,Illinois,17199,19,0 +2020-04-24,Williamson,Illinois,17199,22,0 +2020-04-25,Williamson,Illinois,17199,22,0 +2020-04-26,Williamson,Illinois,17199,25,0 +2020-04-27,Williamson,Illinois,17199,25,0 +2020-04-28,Williamson,Illinois,17199,28,0 +2020-04-29,Williamson,Illinois,17199,29,0 +2020-04-30,Williamson,Illinois,17199,31,0 +2020-05-01,Williamson,Illinois,17199,32,0 +2020-05-02,Williamson,Illinois,17199,32,0 +2020-05-03,Williamson,Illinois,17199,34,0 +2020-05-04,Williamson,Illinois,17199,35,0 +2020-05-05,Williamson,Illinois,17199,37,0 +2020-05-06,Williamson,Illinois,17199,40,0 +2020-05-07,Williamson,Illinois,17199,42,0 +2020-05-08,Williamson,Illinois,17199,44,1 +2020-05-09,Williamson,Illinois,17199,44,1 +2020-05-10,Williamson,Illinois,17199,44,1 +2020-05-11,Williamson,Illinois,17199,44,1 +2020-05-12,Williamson,Illinois,17199,44,1 +2020-05-13,Williamson,Illinois,17199,52,1 +2020-05-14,Williamson,Illinois,17199,52,1 +2020-05-15,Williamson,Illinois,17199,51,1 +2020-05-16,Williamson,Illinois,17199,52,1 +2020-05-17,Williamson,Illinois,17199,52,1 +2020-05-18,Williamson,Illinois,17199,52,1 +2020-05-19,Williamson,Illinois,17199,52,1 +2020-05-20,Williamson,Illinois,17199,55,1 +2020-05-21,Williamson,Illinois,17199,55,1 +2020-05-22,Williamson,Illinois,17199,54,1 +2020-05-23,Williamson,Illinois,17199,54,1 +2020-05-24,Williamson,Illinois,17199,55,1 +2020-05-25,Williamson,Illinois,17199,55,1 +2020-05-26,Williamson,Illinois,17199,54,1 +2020-05-27,Williamson,Illinois,17199,57,2 +2020-05-28,Williamson,Illinois,17199,60,2 +2020-05-29,Williamson,Illinois,17199,64,2 +2020-05-30,Williamson,Illinois,17199,66,1 +2020-05-31,Williamson,Illinois,17199,67,2 +2020-06-01,Williamson,Illinois,17199,67,2 +2020-06-02,Williamson,Illinois,17199,68,2 +2020-06-03,Williamson,Illinois,17199,71,2 +2020-06-04,Williamson,Illinois,17199,74,3 +2020-06-05,Williamson,Illinois,17199,75,3 +2020-06-06,Williamson,Illinois,17199,76,3 +2020-06-07,Williamson,Illinois,17199,76,3 +2020-06-08,Williamson,Illinois,17199,77,3 +2020-06-09,Williamson,Illinois,17199,81,3 +2020-06-10,Williamson,Illinois,17199,81,3 +2020-06-11,Williamson,Illinois,17199,81,3 +2020-06-12,Williamson,Illinois,17199,80,3 +2020-06-13,Williamson,Illinois,17199,82,3 +2020-06-14,Williamson,Illinois,17199,83,3 +2020-06-15,Williamson,Illinois,17199,86,3 +2020-06-16,Williamson,Illinois,17199,87,3 +2020-06-17,Williamson,Illinois,17199,89,3 +2020-06-18,Williamson,Illinois,17199,91,3 +2020-06-19,Williamson,Illinois,17199,91,4 +2020-06-20,Williamson,Illinois,17199,92,4 +2020-06-21,Williamson,Illinois,17199,93,4 +2020-06-22,Williamson,Illinois,17199,93,4 +2020-06-23,Williamson,Illinois,17199,95,4 +2020-06-24,Williamson,Illinois,17199,99,4 +2020-06-25,Williamson,Illinois,17199,102,4 +2020-06-26,Williamson,Illinois,17199,104,4 +2020-06-27,Williamson,Illinois,17199,106,4 +2020-06-28,Williamson,Illinois,17199,113,4 +2020-06-29,Williamson,Illinois,17199,114,4 +2020-06-30,Williamson,Illinois,17199,115,4 +2020-07-01,Williamson,Illinois,17199,120,4 +2020-07-02,Williamson,Illinois,17199,121,4 +2020-07-03,Williamson,Illinois,17199,122,4 +2020-07-04,Williamson,Illinois,17199,126,4 +2020-07-05,Williamson,Illinois,17199,132,4 +2020-07-06,Williamson,Illinois,17199,133,4 +2020-07-07,Williamson,Illinois,17199,133,4 +2020-07-08,Williamson,Illinois,17199,134,4 +2020-07-09,Williamson,Illinois,17199,139,4 +2020-03-15,Winnebago,Illinois,17201,1,0 +2020-03-16,Winnebago,Illinois,17201,1,0 +2020-03-17,Winnebago,Illinois,17201,1,0 +2020-03-18,Winnebago,Illinois,17201,1,0 +2020-03-19,Winnebago,Illinois,17201,1,0 +2020-03-20,Winnebago,Illinois,17201,2,0 +2020-03-21,Winnebago,Illinois,17201,4,0 +2020-03-22,Winnebago,Illinois,17201,4,0 +2020-03-23,Winnebago,Illinois,17201,5,0 +2020-03-24,Winnebago,Illinois,17201,5,0 +2020-03-25,Winnebago,Illinois,17201,7,0 +2020-03-26,Winnebago,Illinois,17201,8,0 +2020-03-27,Winnebago,Illinois,17201,8,0 +2020-03-28,Winnebago,Illinois,17201,9,0 +2020-03-29,Winnebago,Illinois,17201,12,0 +2020-03-30,Winnebago,Illinois,17201,13,0 +2020-03-31,Winnebago,Illinois,17201,15,0 +2020-04-01,Winnebago,Illinois,17201,18,1 +2020-04-02,Winnebago,Illinois,17201,24,1 +2020-04-03,Winnebago,Illinois,17201,28,1 +2020-04-04,Winnebago,Illinois,17201,36,1 +2020-04-05,Winnebago,Illinois,17201,42,1 +2020-04-06,Winnebago,Illinois,17201,49,1 +2020-04-07,Winnebago,Illinois,17201,59,3 +2020-04-08,Winnebago,Illinois,17201,63,3 +2020-04-09,Winnebago,Illinois,17201,66,3 +2020-04-10,Winnebago,Illinois,17201,77,7 +2020-04-11,Winnebago,Illinois,17201,80,7 +2020-04-12,Winnebago,Illinois,17201,94,7 +2020-04-13,Winnebago,Illinois,17201,99,4 +2020-04-14,Winnebago,Illinois,17201,101,7 +2020-04-15,Winnebago,Illinois,17201,119,8 +2020-04-16,Winnebago,Illinois,17201,121,8 +2020-04-17,Winnebago,Illinois,17201,145,8 +2020-04-18,Winnebago,Illinois,17201,172,9 +2020-04-19,Winnebago,Illinois,17201,178,9 +2020-04-20,Winnebago,Illinois,17201,195,9 +2020-04-21,Winnebago,Illinois,17201,207,11 +2020-04-22,Winnebago,Illinois,17201,238,11 +2020-04-23,Winnebago,Illinois,17201,252,12 +2020-04-24,Winnebago,Illinois,17201,279,12 +2020-04-25,Winnebago,Illinois,17201,302,14 +2020-04-26,Winnebago,Illinois,17201,318,14 +2020-04-27,Winnebago,Illinois,17201,343,14 +2020-04-28,Winnebago,Illinois,17201,365,14 +2020-04-29,Winnebago,Illinois,17201,392,14 +2020-04-30,Winnebago,Illinois,17201,442,14 +2020-05-01,Winnebago,Illinois,17201,485,14 +2020-05-02,Winnebago,Illinois,17201,521,18 +2020-05-03,Winnebago,Illinois,17201,579,19 +2020-05-04,Winnebago,Illinois,17201,638,21 +2020-05-05,Winnebago,Illinois,17201,649,22 +2020-05-06,Winnebago,Illinois,17201,696,22 +2020-05-07,Winnebago,Illinois,17201,759,26 +2020-05-08,Winnebago,Illinois,17201,830,26 +2020-05-09,Winnebago,Illinois,17201,877,26 +2020-05-10,Winnebago,Illinois,17201,917,26 +2020-05-11,Winnebago,Illinois,17201,932,26 +2020-05-12,Winnebago,Illinois,17201,1159,28 +2020-05-13,Winnebago,Illinois,17201,1208,39 +2020-05-14,Winnebago,Illinois,17201,1337,39 +2020-05-15,Winnebago,Illinois,17201,1390,39 +2020-05-16,Winnebago,Illinois,17201,1444,41 +2020-05-17,Winnebago,Illinois,17201,1501,41 +2020-05-18,Winnebago,Illinois,17201,1558,41 +2020-05-19,Winnebago,Illinois,17201,1588,44 +2020-05-20,Winnebago,Illinois,17201,1648,44 +2020-05-21,Winnebago,Illinois,17201,1684,52 +2020-05-22,Winnebago,Illinois,17201,1780,52 +2020-05-23,Winnebago,Illinois,17201,1838,52 +2020-05-24,Winnebago,Illinois,17201,1925,52 +2020-05-25,Winnebago,Illinois,17201,1953,52 +2020-05-26,Winnebago,Illinois,17201,1993,52 +2020-05-27,Winnebago,Illinois,17201,2001,54 +2020-05-28,Winnebago,Illinois,17201,2091,58 +2020-05-29,Winnebago,Illinois,17201,2156,59 +2020-05-30,Winnebago,Illinois,17201,2209,59 +2020-05-31,Winnebago,Illinois,17201,2251,59 +2020-06-01,Winnebago,Illinois,17201,2290,63 +2020-06-02,Winnebago,Illinois,17201,2313,63 +2020-06-03,Winnebago,Illinois,17201,2354,69 +2020-06-04,Winnebago,Illinois,17201,2421,69 +2020-06-05,Winnebago,Illinois,17201,2501,76 +2020-06-06,Winnebago,Illinois,17201,2528,76 +2020-06-07,Winnebago,Illinois,17201,2562,76 +2020-06-08,Winnebago,Illinois,17201,2594,76 +2020-06-09,Winnebago,Illinois,17201,2619,78 +2020-06-10,Winnebago,Illinois,17201,2634,78 +2020-06-11,Winnebago,Illinois,17201,2669,78 +2020-06-12,Winnebago,Illinois,17201,2701,79 +2020-06-13,Winnebago,Illinois,17201,2730,79 +2020-06-14,Winnebago,Illinois,17201,2765,79 +2020-06-15,Winnebago,Illinois,17201,2774,85 +2020-06-16,Winnebago,Illinois,17201,2785,85 +2020-06-17,Winnebago,Illinois,17201,2806,85 +2020-06-18,Winnebago,Illinois,17201,2824,85 +2020-06-19,Winnebago,Illinois,17201,2824,85 +2020-06-20,Winnebago,Illinois,17201,2849,85 +2020-06-21,Winnebago,Illinois,17201,2884,85 +2020-06-22,Winnebago,Illinois,17201,2903,85 +2020-06-23,Winnebago,Illinois,17201,2916,85 +2020-06-24,Winnebago,Illinois,17201,2933,88 +2020-06-25,Winnebago,Illinois,17201,2947,89 +2020-06-26,Winnebago,Illinois,17201,2959,90 +2020-06-27,Winnebago,Illinois,17201,2992,91 +2020-06-28,Winnebago,Illinois,17201,3004,92 +2020-06-29,Winnebago,Illinois,17201,3014,93 +2020-06-30,Winnebago,Illinois,17201,3030,94 +2020-07-01,Winnebago,Illinois,17201,3046,95 +2020-07-02,Winnebago,Illinois,17201,3054,96 +2020-07-03,Winnebago,Illinois,17201,3067,96 +2020-07-04,Winnebago,Illinois,17201,3084,96 +2020-07-05,Winnebago,Illinois,17201,3091,96 +2020-07-06,Winnebago,Illinois,17201,3109,96 +2020-07-07,Winnebago,Illinois,17201,3118,97 +2020-07-08,Winnebago,Illinois,17201,3131,101 +2020-07-09,Winnebago,Illinois,17201,3143,101 +2020-03-14,Woodford,Illinois,17203,1,0 +2020-03-15,Woodford,Illinois,17203,1,0 +2020-03-16,Woodford,Illinois,17203,1,0 +2020-03-17,Woodford,Illinois,17203,1,0 +2020-03-18,Woodford,Illinois,17203,2,0 +2020-03-19,Woodford,Illinois,17203,2,0 +2020-03-20,Woodford,Illinois,17203,2,0 +2020-03-21,Woodford,Illinois,17203,2,0 +2020-03-22,Woodford,Illinois,17203,2,0 +2020-03-23,Woodford,Illinois,17203,2,0 +2020-03-24,Woodford,Illinois,17203,3,0 +2020-03-25,Woodford,Illinois,17203,3,0 +2020-03-26,Woodford,Illinois,17203,3,0 +2020-03-27,Woodford,Illinois,17203,3,0 +2020-03-28,Woodford,Illinois,17203,3,0 +2020-03-29,Woodford,Illinois,17203,3,0 +2020-03-30,Woodford,Illinois,17203,3,0 +2020-03-31,Woodford,Illinois,17203,3,0 +2020-04-01,Woodford,Illinois,17203,3,0 +2020-04-02,Woodford,Illinois,17203,3,0 +2020-04-03,Woodford,Illinois,17203,4,0 +2020-04-04,Woodford,Illinois,17203,6,0 +2020-04-05,Woodford,Illinois,17203,6,0 +2020-04-06,Woodford,Illinois,17203,6,0 +2020-04-07,Woodford,Illinois,17203,7,0 +2020-04-08,Woodford,Illinois,17203,7,0 +2020-04-09,Woodford,Illinois,17203,7,0 +2020-04-10,Woodford,Illinois,17203,7,0 +2020-04-11,Woodford,Illinois,17203,7,0 +2020-04-12,Woodford,Illinois,17203,7,0 +2020-04-13,Woodford,Illinois,17203,9,0 +2020-04-14,Woodford,Illinois,17203,10,0 +2020-04-15,Woodford,Illinois,17203,11,0 +2020-04-16,Woodford,Illinois,17203,11,0 +2020-04-17,Woodford,Illinois,17203,11,0 +2020-04-18,Woodford,Illinois,17203,11,0 +2020-04-19,Woodford,Illinois,17203,11,0 +2020-04-20,Woodford,Illinois,17203,11,0 +2020-04-21,Woodford,Illinois,17203,11,1 +2020-04-22,Woodford,Illinois,17203,11,1 +2020-04-23,Woodford,Illinois,17203,11,1 +2020-04-24,Woodford,Illinois,17203,11,1 +2020-04-25,Woodford,Illinois,17203,11,1 +2020-04-26,Woodford,Illinois,17203,11,1 +2020-04-27,Woodford,Illinois,17203,11,1 +2020-04-28,Woodford,Illinois,17203,12,1 +2020-04-29,Woodford,Illinois,17203,12,1 +2020-04-30,Woodford,Illinois,17203,13,1 +2020-05-01,Woodford,Illinois,17203,14,1 +2020-05-02,Woodford,Illinois,17203,13,1 +2020-05-03,Woodford,Illinois,17203,13,1 +2020-05-04,Woodford,Illinois,17203,13,1 +2020-05-05,Woodford,Illinois,17203,13,1 +2020-05-06,Woodford,Illinois,17203,15,1 +2020-05-07,Woodford,Illinois,17203,15,1 +2020-05-08,Woodford,Illinois,17203,15,1 +2020-05-09,Woodford,Illinois,17203,15,1 +2020-05-10,Woodford,Illinois,17203,15,1 +2020-05-11,Woodford,Illinois,17203,15,1 +2020-05-12,Woodford,Illinois,17203,15,1 +2020-05-13,Woodford,Illinois,17203,15,1 +2020-05-14,Woodford,Illinois,17203,14,1 +2020-05-15,Woodford,Illinois,17203,14,1 +2020-05-16,Woodford,Illinois,17203,14,1 +2020-05-17,Woodford,Illinois,17203,14,1 +2020-05-18,Woodford,Illinois,17203,16,1 +2020-05-19,Woodford,Illinois,17203,16,1 +2020-05-20,Woodford,Illinois,17203,18,2 +2020-05-21,Woodford,Illinois,17203,18,2 +2020-05-22,Woodford,Illinois,17203,18,2 +2020-05-23,Woodford,Illinois,17203,18,2 +2020-05-24,Woodford,Illinois,17203,18,2 +2020-05-25,Woodford,Illinois,17203,18,2 +2020-05-26,Woodford,Illinois,17203,19,2 +2020-05-27,Woodford,Illinois,17203,19,2 +2020-05-28,Woodford,Illinois,17203,19,2 +2020-05-29,Woodford,Illinois,17203,19,2 +2020-05-30,Woodford,Illinois,17203,20,2 +2020-05-31,Woodford,Illinois,17203,21,2 +2020-06-01,Woodford,Illinois,17203,22,2 +2020-06-02,Woodford,Illinois,17203,22,2 +2020-06-03,Woodford,Illinois,17203,22,2 +2020-06-04,Woodford,Illinois,17203,22,2 +2020-06-05,Woodford,Illinois,17203,22,2 +2020-06-06,Woodford,Illinois,17203,22,2 +2020-06-07,Woodford,Illinois,17203,23,2 +2020-06-08,Woodford,Illinois,17203,23,2 +2020-06-09,Woodford,Illinois,17203,23,2 +2020-06-10,Woodford,Illinois,17203,23,2 +2020-06-11,Woodford,Illinois,17203,24,2 +2020-06-12,Woodford,Illinois,17203,24,2 +2020-06-13,Woodford,Illinois,17203,25,2 +2020-06-14,Woodford,Illinois,17203,25,2 +2020-06-15,Woodford,Illinois,17203,28,2 +2020-06-16,Woodford,Illinois,17203,29,2 +2020-06-17,Woodford,Illinois,17203,31,2 +2020-06-18,Woodford,Illinois,17203,31,2 +2020-06-19,Woodford,Illinois,17203,32,2 +2020-06-20,Woodford,Illinois,17203,33,2 +2020-06-21,Woodford,Illinois,17203,33,2 +2020-06-22,Woodford,Illinois,17203,33,2 +2020-06-23,Woodford,Illinois,17203,33,2 +2020-06-24,Woodford,Illinois,17203,33,2 +2020-06-25,Woodford,Illinois,17203,34,2 +2020-06-26,Woodford,Illinois,17203,34,2 +2020-06-27,Woodford,Illinois,17203,34,2 +2020-06-28,Woodford,Illinois,17203,34,2 +2020-06-29,Woodford,Illinois,17203,34,2 +2020-06-30,Woodford,Illinois,17203,34,2 +2020-07-01,Woodford,Illinois,17203,34,2 +2020-07-02,Woodford,Illinois,17203,35,2 +2020-07-03,Woodford,Illinois,17203,35,2 +2020-07-04,Woodford,Illinois,17203,35,2 +2020-07-05,Woodford,Illinois,17203,35,2 +2020-07-06,Woodford,Illinois,17203,36,2 +2020-07-07,Woodford,Illinois,17203,38,2 +2020-07-08,Woodford,Illinois,17203,39,2 +2020-07-09,Woodford,Illinois,17203,43,2 +2020-03-10,Adams,Indiana,18001,1,0 +2020-03-11,Adams,Indiana,18001,1,0 +2020-03-12,Adams,Indiana,18001,1,0 +2020-03-13,Adams,Indiana,18001,1,0 +2020-03-14,Adams,Indiana,18001,1,0 +2020-03-15,Adams,Indiana,18001,1,0 +2020-03-16,Adams,Indiana,18001,1,0 +2020-03-17,Adams,Indiana,18001,1,0 +2020-03-18,Adams,Indiana,18001,1,0 +2020-03-19,Adams,Indiana,18001,1,0 +2020-03-20,Adams,Indiana,18001,1,0 +2020-03-21,Adams,Indiana,18001,1,0 +2020-03-22,Adams,Indiana,18001,1,0 +2020-03-23,Adams,Indiana,18001,1,0 +2020-03-24,Adams,Indiana,18001,1,0 +2020-03-25,Adams,Indiana,18001,1,0 +2020-03-26,Adams,Indiana,18001,1,0 +2020-03-27,Adams,Indiana,18001,1,0 +2020-03-28,Adams,Indiana,18001,1,0 +2020-03-29,Adams,Indiana,18001,1,0 +2020-03-30,Adams,Indiana,18001,1,0 +2020-03-31,Adams,Indiana,18001,1,0 +2020-04-01,Adams,Indiana,18001,1,0 +2020-04-02,Adams,Indiana,18001,1,0 +2020-04-03,Adams,Indiana,18001,1,0 +2020-04-04,Adams,Indiana,18001,2,0 +2020-04-05,Adams,Indiana,18001,2,0 +2020-04-06,Adams,Indiana,18001,2,0 +2020-04-07,Adams,Indiana,18001,2,0 +2020-04-08,Adams,Indiana,18001,2,0 +2020-04-09,Adams,Indiana,18001,2,0 +2020-04-10,Adams,Indiana,18001,4,0 +2020-04-11,Adams,Indiana,18001,4,0 +2020-04-12,Adams,Indiana,18001,5,1 +2020-04-13,Adams,Indiana,18001,5,1 +2020-04-14,Adams,Indiana,18001,6,1 +2020-04-15,Adams,Indiana,18001,6,1 +2020-04-16,Adams,Indiana,18001,6,1 +2020-04-17,Adams,Indiana,18001,6,1 +2020-04-18,Adams,Indiana,18001,7,1 +2020-04-19,Adams,Indiana,18001,7,1 +2020-04-20,Adams,Indiana,18001,7,1 +2020-04-21,Adams,Indiana,18001,7,1 +2020-04-22,Adams,Indiana,18001,7,1 +2020-04-23,Adams,Indiana,18001,7,1 +2020-04-24,Adams,Indiana,18001,7,1 +2020-04-25,Adams,Indiana,18001,7,1 +2020-04-26,Adams,Indiana,18001,8,1 +2020-04-27,Adams,Indiana,18001,7,1 +2020-04-28,Adams,Indiana,18001,7,1 +2020-04-29,Adams,Indiana,18001,7,1 +2020-04-30,Adams,Indiana,18001,7,1 +2020-05-01,Adams,Indiana,18001,7,1 +2020-05-02,Adams,Indiana,18001,8,1 +2020-05-03,Adams,Indiana,18001,8,1 +2020-05-04,Adams,Indiana,18001,8,1 +2020-05-05,Adams,Indiana,18001,9,1 +2020-05-06,Adams,Indiana,18001,8,1 +2020-05-07,Adams,Indiana,18001,8,1 +2020-05-08,Adams,Indiana,18001,8,1 +2020-05-09,Adams,Indiana,18001,8,1 +2020-05-10,Adams,Indiana,18001,8,1 +2020-05-11,Adams,Indiana,18001,8,1 +2020-05-12,Adams,Indiana,18001,8,1 +2020-05-13,Adams,Indiana,18001,8,1 +2020-05-14,Adams,Indiana,18001,9,1 +2020-05-15,Adams,Indiana,18001,9,1 +2020-05-16,Adams,Indiana,18001,9,1 +2020-05-17,Adams,Indiana,18001,9,1 +2020-05-18,Adams,Indiana,18001,10,1 +2020-05-19,Adams,Indiana,18001,10,1 +2020-05-20,Adams,Indiana,18001,11,1 +2020-05-21,Adams,Indiana,18001,11,1 +2020-05-22,Adams,Indiana,18001,11,1 +2020-05-23,Adams,Indiana,18001,12,1 +2020-05-24,Adams,Indiana,18001,12,1 +2020-05-25,Adams,Indiana,18001,12,1 +2020-05-26,Adams,Indiana,18001,12,1 +2020-05-27,Adams,Indiana,18001,12,1 +2020-05-28,Adams,Indiana,18001,13,1 +2020-05-29,Adams,Indiana,18001,13,1 +2020-05-30,Adams,Indiana,18001,17,1 +2020-05-31,Adams,Indiana,18001,15,1 +2020-06-01,Adams,Indiana,18001,17,1 +2020-06-02,Adams,Indiana,18001,20,1 +2020-06-03,Adams,Indiana,18001,20,1 +2020-06-04,Adams,Indiana,18001,21,1 +2020-06-05,Adams,Indiana,18001,23,1 +2020-06-06,Adams,Indiana,18001,22,1 +2020-06-07,Adams,Indiana,18001,22,1 +2020-06-08,Adams,Indiana,18001,22,1 +2020-06-09,Adams,Indiana,18001,23,1 +2020-06-10,Adams,Indiana,18001,24,1 +2020-06-11,Adams,Indiana,18001,24,1 +2020-06-12,Adams,Indiana,18001,24,1 +2020-06-13,Adams,Indiana,18001,25,1 +2020-06-14,Adams,Indiana,18001,26,1 +2020-06-15,Adams,Indiana,18001,27,1 +2020-06-16,Adams,Indiana,18001,28,1 +2020-06-17,Adams,Indiana,18001,29,2 +2020-06-18,Adams,Indiana,18001,29,2 +2020-06-19,Adams,Indiana,18001,29,2 +2020-06-20,Adams,Indiana,18001,37,2 +2020-06-21,Adams,Indiana,18001,37,2 +2020-06-22,Adams,Indiana,18001,37,2 +2020-06-23,Adams,Indiana,18001,37,2 +2020-06-24,Adams,Indiana,18001,39,2 +2020-06-25,Adams,Indiana,18001,40,2 +2020-06-26,Adams,Indiana,18001,43,2 +2020-06-27,Adams,Indiana,18001,44,2 +2020-06-28,Adams,Indiana,18001,45,2 +2020-06-29,Adams,Indiana,18001,46,2 +2020-06-30,Adams,Indiana,18001,46,2 +2020-07-01,Adams,Indiana,18001,46,2 +2020-07-02,Adams,Indiana,18001,48,2 +2020-07-03,Adams,Indiana,18001,49,2 +2020-07-04,Adams,Indiana,18001,51,2 +2020-07-05,Adams,Indiana,18001,51,2 +2020-07-06,Adams,Indiana,18001,51,2 +2020-07-07,Adams,Indiana,18001,51,2 +2020-07-08,Adams,Indiana,18001,50,2 +2020-07-09,Adams,Indiana,18001,50,2 +2020-03-20,Allen,Indiana,18003,1,0 +2020-03-21,Allen,Indiana,18003,4,0 +2020-03-22,Allen,Indiana,18003,4,0 +2020-03-23,Allen,Indiana,18003,7,2 +2020-03-24,Allen,Indiana,18003,8,2 +2020-03-25,Allen,Indiana,18003,8,2 +2020-03-26,Allen,Indiana,18003,20,2 +2020-03-27,Allen,Indiana,18003,22,2 +2020-03-28,Allen,Indiana,18003,24,2 +2020-03-29,Allen,Indiana,18003,27,2 +2020-03-30,Allen,Indiana,18003,31,2 +2020-03-31,Allen,Indiana,18003,37,3 +2020-04-01,Allen,Indiana,18003,40,3 +2020-04-02,Allen,Indiana,18003,47,3 +2020-04-03,Allen,Indiana,18003,59,3 +2020-04-04,Allen,Indiana,18003,61,4 +2020-04-05,Allen,Indiana,18003,65,4 +2020-04-06,Allen,Indiana,18003,89,8 +2020-04-07,Allen,Indiana,18003,89,8 +2020-04-08,Allen,Indiana,18003,97,9 +2020-04-09,Allen,Indiana,18003,107,9 +2020-04-10,Allen,Indiana,18003,121,11 +2020-04-11,Allen,Indiana,18003,138,12 +2020-04-12,Allen,Indiana,18003,149,12 +2020-04-13,Allen,Indiana,18003,158,13 +2020-04-14,Allen,Indiana,18003,169,15 +2020-04-15,Allen,Indiana,18003,182,17 +2020-04-16,Allen,Indiana,18003,226,18 +2020-04-17,Allen,Indiana,18003,273,18 +2020-04-18,Allen,Indiana,18003,296,19 +2020-04-19,Allen,Indiana,18003,304,22 +2020-04-20,Allen,Indiana,18003,329,23 +2020-04-21,Allen,Indiana,18003,341,27 +2020-04-22,Allen,Indiana,18003,348,27 +2020-04-23,Allen,Indiana,18003,392,28 +2020-04-24,Allen,Indiana,18003,405,29 +2020-04-25,Allen,Indiana,18003,432,31 +2020-04-26,Allen,Indiana,18003,444,32 +2020-04-27,Allen,Indiana,18003,489,36 +2020-04-28,Allen,Indiana,18003,507,40 +2020-04-29,Allen,Indiana,18003,532,47 +2020-04-30,Allen,Indiana,18003,565,55 +2020-05-01,Allen,Indiana,18003,593,56 +2020-05-02,Allen,Indiana,18003,605,57 +2020-05-03,Allen,Indiana,18003,624,59 +2020-05-04,Allen,Indiana,18003,669,59 +2020-05-05,Allen,Indiana,18003,700,60 +2020-05-06,Allen,Indiana,18003,723,61 +2020-05-07,Allen,Indiana,18003,748,63 +2020-05-08,Allen,Indiana,18003,786,63 +2020-05-09,Allen,Indiana,18003,805,63 +2020-05-10,Allen,Indiana,18003,821,63 +2020-05-11,Allen,Indiana,18003,839,64 +2020-05-12,Allen,Indiana,18003,874,66 +2020-05-13,Allen,Indiana,18003,884,67 +2020-05-14,Allen,Indiana,18003,905,68 +2020-05-15,Allen,Indiana,18003,962,67 +2020-05-16,Allen,Indiana,18003,992,68 +2020-05-17,Allen,Indiana,18003,1003,68 +2020-05-18,Allen,Indiana,18003,1040,68 +2020-05-19,Allen,Indiana,18003,1060,72 +2020-05-20,Allen,Indiana,18003,1113,72 +2020-05-21,Allen,Indiana,18003,1146,72 +2020-05-22,Allen,Indiana,18003,1199,73 +2020-05-23,Allen,Indiana,18003,1221,73 +2020-05-24,Allen,Indiana,18003,1248,73 +2020-05-25,Allen,Indiana,18003,1285,74 +2020-05-26,Allen,Indiana,18003,1317,74 +2020-05-27,Allen,Indiana,18003,1361,74 +2020-05-28,Allen,Indiana,18003,1427,74 +2020-05-29,Allen,Indiana,18003,1459,76 +2020-05-30,Allen,Indiana,18003,1608,77 +2020-05-31,Allen,Indiana,18003,1626,77 +2020-06-01,Allen,Indiana,18003,1670,77 +2020-06-02,Allen,Indiana,18003,1719,78 +2020-06-03,Allen,Indiana,18003,1751,79 +2020-06-04,Allen,Indiana,18003,1762,80 +2020-06-05,Allen,Indiana,18003,1819,80 +2020-06-06,Allen,Indiana,18003,1860,81 +2020-06-07,Allen,Indiana,18003,1892,83 +2020-06-08,Allen,Indiana,18003,1905,86 +2020-06-09,Allen,Indiana,18003,1965,86 +2020-06-10,Allen,Indiana,18003,2023,86 +2020-06-11,Allen,Indiana,18003,2098,87 +2020-06-12,Allen,Indiana,18003,2136,88 +2020-06-13,Allen,Indiana,18003,2177,89 +2020-06-14,Allen,Indiana,18003,2204,89 +2020-06-15,Allen,Indiana,18003,2233,94 +2020-06-16,Allen,Indiana,18003,2271,97 +2020-06-17,Allen,Indiana,18003,2287,100 +2020-06-18,Allen,Indiana,18003,2334,101 +2020-06-19,Allen,Indiana,18003,2341,101 +2020-06-20,Allen,Indiana,18003,2382,101 +2020-06-21,Allen,Indiana,18003,2428,101 +2020-06-22,Allen,Indiana,18003,2442,105 +2020-06-23,Allen,Indiana,18003,2451,107 +2020-06-24,Allen,Indiana,18003,2485,107 +2020-06-25,Allen,Indiana,18003,2526,107 +2020-06-26,Allen,Indiana,18003,2566,110 +2020-06-27,Allen,Indiana,18003,2594,114 +2020-06-28,Allen,Indiana,18003,2617,114 +2020-06-29,Allen,Indiana,18003,2640,116 +2020-06-30,Allen,Indiana,18003,2668,120 +2020-07-01,Allen,Indiana,18003,2696,124 +2020-07-02,Allen,Indiana,18003,2714,127 +2020-07-03,Allen,Indiana,18003,2736,138 +2020-07-04,Allen,Indiana,18003,2756,139 +2020-07-05,Allen,Indiana,18003,2781,139 +2020-07-06,Allen,Indiana,18003,2817,142 +2020-07-07,Allen,Indiana,18003,2834,142 +2020-07-08,Allen,Indiana,18003,2854,143 +2020-07-09,Allen,Indiana,18003,2886,143 +2020-03-16,Bartholomew,Indiana,18005,1,0 +2020-03-17,Bartholomew,Indiana,18005,1,0 +2020-03-18,Bartholomew,Indiana,18005,1,0 +2020-03-19,Bartholomew,Indiana,18005,1,0 +2020-03-20,Bartholomew,Indiana,18005,1,0 +2020-03-21,Bartholomew,Indiana,18005,2,0 +2020-03-22,Bartholomew,Indiana,18005,5,0 +2020-03-23,Bartholomew,Indiana,18005,5,0 +2020-03-24,Bartholomew,Indiana,18005,5,0 +2020-03-25,Bartholomew,Indiana,18005,5,0 +2020-03-26,Bartholomew,Indiana,18005,6,0 +2020-03-27,Bartholomew,Indiana,18005,6,0 +2020-03-28,Bartholomew,Indiana,18005,7,0 +2020-03-29,Bartholomew,Indiana,18005,10,0 +2020-03-30,Bartholomew,Indiana,18005,10,0 +2020-03-31,Bartholomew,Indiana,18005,13,0 +2020-04-01,Bartholomew,Indiana,18005,13,0 +2020-04-02,Bartholomew,Indiana,18005,15,0 +2020-04-03,Bartholomew,Indiana,18005,23,0 +2020-04-04,Bartholomew,Indiana,18005,45,0 +2020-04-05,Bartholomew,Indiana,18005,54,0 +2020-04-06,Bartholomew,Indiana,18005,55,2 +2020-04-07,Bartholomew,Indiana,18005,56,5 +2020-04-08,Bartholomew,Indiana,18005,68,6 +2020-04-09,Bartholomew,Indiana,18005,85,6 +2020-04-10,Bartholomew,Indiana,18005,85,6 +2020-04-11,Bartholomew,Indiana,18005,110,6 +2020-04-12,Bartholomew,Indiana,18005,112,6 +2020-04-13,Bartholomew,Indiana,18005,112,6 +2020-04-14,Bartholomew,Indiana,18005,112,6 +2020-04-15,Bartholomew,Indiana,18005,115,6 +2020-04-16,Bartholomew,Indiana,18005,119,8 +2020-04-17,Bartholomew,Indiana,18005,133,9 +2020-04-18,Bartholomew,Indiana,18005,134,9 +2020-04-19,Bartholomew,Indiana,18005,139,9 +2020-04-20,Bartholomew,Indiana,18005,143,9 +2020-04-21,Bartholomew,Indiana,18005,143,10 +2020-04-22,Bartholomew,Indiana,18005,149,10 +2020-04-23,Bartholomew,Indiana,18005,166,11 +2020-04-24,Bartholomew,Indiana,18005,178,11 +2020-04-25,Bartholomew,Indiana,18005,201,13 +2020-04-26,Bartholomew,Indiana,18005,209,13 +2020-04-27,Bartholomew,Indiana,18005,235,13 +2020-04-28,Bartholomew,Indiana,18005,241,14 +2020-04-29,Bartholomew,Indiana,18005,244,15 +2020-04-30,Bartholomew,Indiana,18005,253,15 +2020-05-01,Bartholomew,Indiana,18005,264,15 +2020-05-02,Bartholomew,Indiana,18005,269,17 +2020-05-03,Bartholomew,Indiana,18005,271,17 +2020-05-04,Bartholomew,Indiana,18005,272,17 +2020-05-05,Bartholomew,Indiana,18005,300,20 +2020-05-06,Bartholomew,Indiana,18005,317,22 +2020-05-07,Bartholomew,Indiana,18005,319,24 +2020-05-08,Bartholomew,Indiana,18005,334,25 +2020-05-09,Bartholomew,Indiana,18005,345,26 +2020-05-10,Bartholomew,Indiana,18005,349,29 +2020-05-11,Bartholomew,Indiana,18005,363,29 +2020-05-12,Bartholomew,Indiana,18005,371,30 +2020-05-13,Bartholomew,Indiana,18005,374,30 +2020-05-14,Bartholomew,Indiana,18005,387,32 +2020-05-15,Bartholomew,Indiana,18005,398,33 +2020-05-16,Bartholomew,Indiana,18005,412,33 +2020-05-17,Bartholomew,Indiana,18005,424,33 +2020-05-18,Bartholomew,Indiana,18005,436,33 +2020-05-19,Bartholomew,Indiana,18005,442,34 +2020-05-20,Bartholomew,Indiana,18005,452,34 +2020-05-21,Bartholomew,Indiana,18005,456,36 +2020-05-22,Bartholomew,Indiana,18005,460,36 +2020-05-23,Bartholomew,Indiana,18005,471,36 +2020-05-24,Bartholomew,Indiana,18005,478,36 +2020-05-25,Bartholomew,Indiana,18005,484,36 +2020-05-26,Bartholomew,Indiana,18005,485,36 +2020-05-27,Bartholomew,Indiana,18005,490,37 +2020-05-28,Bartholomew,Indiana,18005,495,37 +2020-05-29,Bartholomew,Indiana,18005,505,37 +2020-05-30,Bartholomew,Indiana,18005,513,37 +2020-05-31,Bartholomew,Indiana,18005,516,38 +2020-06-01,Bartholomew,Indiana,18005,520,38 +2020-06-02,Bartholomew,Indiana,18005,526,41 +2020-06-03,Bartholomew,Indiana,18005,527,41 +2020-06-04,Bartholomew,Indiana,18005,532,42 +2020-06-05,Bartholomew,Indiana,18005,536,42 +2020-06-06,Bartholomew,Indiana,18005,537,43 +2020-06-07,Bartholomew,Indiana,18005,539,43 +2020-06-08,Bartholomew,Indiana,18005,541,43 +2020-06-09,Bartholomew,Indiana,18005,544,43 +2020-06-10,Bartholomew,Indiana,18005,545,43 +2020-06-11,Bartholomew,Indiana,18005,547,43 +2020-06-12,Bartholomew,Indiana,18005,552,44 +2020-06-13,Bartholomew,Indiana,18005,554,44 +2020-06-14,Bartholomew,Indiana,18005,556,44 +2020-06-15,Bartholomew,Indiana,18005,559,44 +2020-06-16,Bartholomew,Indiana,18005,563,45 +2020-06-17,Bartholomew,Indiana,18005,566,45 +2020-06-18,Bartholomew,Indiana,18005,567,45 +2020-06-19,Bartholomew,Indiana,18005,571,46 +2020-06-20,Bartholomew,Indiana,18005,570,46 +2020-06-21,Bartholomew,Indiana,18005,572,46 +2020-06-22,Bartholomew,Indiana,18005,571,46 +2020-06-23,Bartholomew,Indiana,18005,573,46 +2020-06-24,Bartholomew,Indiana,18005,573,46 +2020-06-25,Bartholomew,Indiana,18005,577,46 +2020-06-26,Bartholomew,Indiana,18005,580,46 +2020-06-27,Bartholomew,Indiana,18005,581,47 +2020-06-28,Bartholomew,Indiana,18005,582,47 +2020-06-29,Bartholomew,Indiana,18005,583,47 +2020-06-30,Bartholomew,Indiana,18005,583,47 +2020-07-01,Bartholomew,Indiana,18005,583,47 +2020-07-02,Bartholomew,Indiana,18005,585,47 +2020-07-03,Bartholomew,Indiana,18005,588,47 +2020-07-04,Bartholomew,Indiana,18005,588,47 +2020-07-05,Bartholomew,Indiana,18005,591,47 +2020-07-06,Bartholomew,Indiana,18005,592,47 +2020-07-07,Bartholomew,Indiana,18005,595,47 +2020-07-08,Bartholomew,Indiana,18005,597,48 +2020-07-09,Bartholomew,Indiana,18005,598,48 +2020-04-12,Benton,Indiana,18007,2,0 +2020-04-13,Benton,Indiana,18007,2,0 +2020-04-14,Benton,Indiana,18007,2,0 +2020-04-15,Benton,Indiana,18007,3,0 +2020-04-16,Benton,Indiana,18007,4,0 +2020-04-17,Benton,Indiana,18007,4,0 +2020-04-18,Benton,Indiana,18007,4,0 +2020-04-19,Benton,Indiana,18007,4,0 +2020-04-20,Benton,Indiana,18007,4,0 +2020-04-21,Benton,Indiana,18007,4,0 +2020-04-22,Benton,Indiana,18007,4,0 +2020-04-23,Benton,Indiana,18007,6,0 +2020-04-24,Benton,Indiana,18007,5,0 +2020-04-25,Benton,Indiana,18007,6,0 +2020-04-26,Benton,Indiana,18007,6,0 +2020-04-27,Benton,Indiana,18007,6,0 +2020-04-28,Benton,Indiana,18007,7,0 +2020-04-29,Benton,Indiana,18007,8,0 +2020-04-30,Benton,Indiana,18007,8,0 +2020-05-01,Benton,Indiana,18007,8,0 +2020-05-02,Benton,Indiana,18007,9,0 +2020-05-03,Benton,Indiana,18007,11,0 +2020-05-04,Benton,Indiana,18007,11,0 +2020-05-05,Benton,Indiana,18007,10,0 +2020-05-06,Benton,Indiana,18007,10,0 +2020-05-07,Benton,Indiana,18007,12,0 +2020-05-08,Benton,Indiana,18007,12,0 +2020-05-09,Benton,Indiana,18007,12,0 +2020-05-10,Benton,Indiana,18007,12,0 +2020-05-11,Benton,Indiana,18007,13,0 +2020-05-12,Benton,Indiana,18007,16,0 +2020-05-13,Benton,Indiana,18007,17,0 +2020-05-14,Benton,Indiana,18007,17,0 +2020-05-15,Benton,Indiana,18007,21,0 +2020-05-16,Benton,Indiana,18007,21,0 +2020-05-17,Benton,Indiana,18007,21,0 +2020-05-18,Benton,Indiana,18007,23,0 +2020-05-19,Benton,Indiana,18007,23,0 +2020-05-20,Benton,Indiana,18007,24,0 +2020-05-21,Benton,Indiana,18007,24,0 +2020-05-22,Benton,Indiana,18007,24,0 +2020-05-23,Benton,Indiana,18007,24,0 +2020-05-24,Benton,Indiana,18007,24,0 +2020-05-25,Benton,Indiana,18007,25,0 +2020-05-26,Benton,Indiana,18007,25,0 +2020-05-27,Benton,Indiana,18007,25,0 +2020-05-28,Benton,Indiana,18007,26,0 +2020-05-29,Benton,Indiana,18007,30,0 +2020-05-30,Benton,Indiana,18007,30,0 +2020-05-31,Benton,Indiana,18007,30,0 +2020-06-01,Benton,Indiana,18007,31,0 +2020-06-02,Benton,Indiana,18007,32,0 +2020-06-03,Benton,Indiana,18007,32,0 +2020-06-04,Benton,Indiana,18007,32,0 +2020-06-05,Benton,Indiana,18007,32,0 +2020-06-06,Benton,Indiana,18007,32,0 +2020-06-07,Benton,Indiana,18007,32,0 +2020-06-08,Benton,Indiana,18007,33,0 +2020-06-09,Benton,Indiana,18007,33,0 +2020-06-10,Benton,Indiana,18007,33,0 +2020-06-11,Benton,Indiana,18007,37,0 +2020-06-12,Benton,Indiana,18007,37,0 +2020-06-13,Benton,Indiana,18007,37,0 +2020-06-14,Benton,Indiana,18007,37,0 +2020-06-15,Benton,Indiana,18007,37,0 +2020-06-16,Benton,Indiana,18007,38,0 +2020-06-17,Benton,Indiana,18007,37,0 +2020-06-18,Benton,Indiana,18007,38,0 +2020-06-19,Benton,Indiana,18007,38,0 +2020-06-20,Benton,Indiana,18007,39,0 +2020-06-21,Benton,Indiana,18007,41,0 +2020-06-22,Benton,Indiana,18007,43,0 +2020-06-23,Benton,Indiana,18007,44,0 +2020-06-24,Benton,Indiana,18007,44,0 +2020-06-25,Benton,Indiana,18007,44,0 +2020-06-26,Benton,Indiana,18007,45,0 +2020-06-27,Benton,Indiana,18007,44,0 +2020-06-28,Benton,Indiana,18007,46,0 +2020-06-29,Benton,Indiana,18007,46,0 +2020-06-30,Benton,Indiana,18007,47,0 +2020-07-01,Benton,Indiana,18007,48,0 +2020-07-02,Benton,Indiana,18007,48,0 +2020-07-03,Benton,Indiana,18007,48,0 +2020-07-04,Benton,Indiana,18007,48,0 +2020-07-05,Benton,Indiana,18007,48,0 +2020-07-06,Benton,Indiana,18007,48,0 +2020-07-07,Benton,Indiana,18007,48,0 +2020-07-08,Benton,Indiana,18007,48,0 +2020-07-09,Benton,Indiana,18007,48,0 +2020-04-02,Blackford,Indiana,18009,1,0 +2020-04-03,Blackford,Indiana,18009,1,0 +2020-04-04,Blackford,Indiana,18009,2,0 +2020-04-05,Blackford,Indiana,18009,3,0 +2020-04-06,Blackford,Indiana,18009,4,0 +2020-04-07,Blackford,Indiana,18009,4,0 +2020-04-08,Blackford,Indiana,18009,4,0 +2020-04-09,Blackford,Indiana,18009,4,0 +2020-04-10,Blackford,Indiana,18009,4,0 +2020-04-11,Blackford,Indiana,18009,5,0 +2020-04-12,Blackford,Indiana,18009,5,0 +2020-04-13,Blackford,Indiana,18009,5,0 +2020-04-14,Blackford,Indiana,18009,6,0 +2020-04-15,Blackford,Indiana,18009,6,1 +2020-04-16,Blackford,Indiana,18009,6,1 +2020-04-17,Blackford,Indiana,18009,6,1 +2020-04-18,Blackford,Indiana,18009,6,1 +2020-04-19,Blackford,Indiana,18009,6,1 +2020-04-20,Blackford,Indiana,18009,6,1 +2020-04-21,Blackford,Indiana,18009,6,1 +2020-04-22,Blackford,Indiana,18009,6,1 +2020-04-23,Blackford,Indiana,18009,6,1 +2020-04-24,Blackford,Indiana,18009,7,1 +2020-04-25,Blackford,Indiana,18009,7,1 +2020-04-26,Blackford,Indiana,18009,7,1 +2020-04-27,Blackford,Indiana,18009,7,1 +2020-04-28,Blackford,Indiana,18009,7,1 +2020-04-29,Blackford,Indiana,18009,8,1 +2020-04-30,Blackford,Indiana,18009,8,1 +2020-05-01,Blackford,Indiana,18009,8,1 +2020-05-02,Blackford,Indiana,18009,9,1 +2020-05-03,Blackford,Indiana,18009,9,1 +2020-05-04,Blackford,Indiana,18009,9,1 +2020-05-05,Blackford,Indiana,18009,10,1 +2020-05-06,Blackford,Indiana,18009,12,1 +2020-05-07,Blackford,Indiana,18009,12,1 +2020-05-08,Blackford,Indiana,18009,13,1 +2020-05-09,Blackford,Indiana,18009,13,1 +2020-05-10,Blackford,Indiana,18009,14,1 +2020-05-11,Blackford,Indiana,18009,14,1 +2020-05-12,Blackford,Indiana,18009,14,1 +2020-05-13,Blackford,Indiana,18009,14,1 +2020-05-14,Blackford,Indiana,18009,14,1 +2020-05-15,Blackford,Indiana,18009,14,1 +2020-05-16,Blackford,Indiana,18009,14,1 +2020-05-17,Blackford,Indiana,18009,14,1 +2020-05-18,Blackford,Indiana,18009,15,1 +2020-05-19,Blackford,Indiana,18009,17,1 +2020-05-20,Blackford,Indiana,18009,16,1 +2020-05-21,Blackford,Indiana,18009,17,1 +2020-05-22,Blackford,Indiana,18009,19,1 +2020-05-23,Blackford,Indiana,18009,20,1 +2020-05-24,Blackford,Indiana,18009,21,1 +2020-05-25,Blackford,Indiana,18009,21,1 +2020-05-26,Blackford,Indiana,18009,22,1 +2020-05-27,Blackford,Indiana,18009,21,2 +2020-05-28,Blackford,Indiana,18009,23,2 +2020-05-29,Blackford,Indiana,18009,25,2 +2020-05-30,Blackford,Indiana,18009,26,2 +2020-05-31,Blackford,Indiana,18009,26,2 +2020-06-01,Blackford,Indiana,18009,27,2 +2020-06-02,Blackford,Indiana,18009,28,2 +2020-06-03,Blackford,Indiana,18009,28,2 +2020-06-04,Blackford,Indiana,18009,28,2 +2020-06-05,Blackford,Indiana,18009,28,2 +2020-06-06,Blackford,Indiana,18009,29,2 +2020-06-07,Blackford,Indiana,18009,29,2 +2020-06-08,Blackford,Indiana,18009,30,2 +2020-06-09,Blackford,Indiana,18009,30,2 +2020-06-10,Blackford,Indiana,18009,30,2 +2020-06-11,Blackford,Indiana,18009,30,2 +2020-06-12,Blackford,Indiana,18009,30,2 +2020-06-13,Blackford,Indiana,18009,30,2 +2020-06-14,Blackford,Indiana,18009,30,2 +2020-06-15,Blackford,Indiana,18009,30,2 +2020-06-16,Blackford,Indiana,18009,30,2 +2020-06-17,Blackford,Indiana,18009,32,2 +2020-06-18,Blackford,Indiana,18009,33,2 +2020-06-19,Blackford,Indiana,18009,33,2 +2020-06-20,Blackford,Indiana,18009,35,2 +2020-06-21,Blackford,Indiana,18009,35,2 +2020-06-22,Blackford,Indiana,18009,35,2 +2020-06-23,Blackford,Indiana,18009,36,2 +2020-06-24,Blackford,Indiana,18009,36,2 +2020-06-25,Blackford,Indiana,18009,36,2 +2020-06-26,Blackford,Indiana,18009,38,2 +2020-06-27,Blackford,Indiana,18009,38,2 +2020-06-28,Blackford,Indiana,18009,38,2 +2020-06-29,Blackford,Indiana,18009,38,2 +2020-06-30,Blackford,Indiana,18009,38,2 +2020-07-01,Blackford,Indiana,18009,40,2 +2020-07-02,Blackford,Indiana,18009,40,2 +2020-07-03,Blackford,Indiana,18009,41,2 +2020-07-04,Blackford,Indiana,18009,41,2 +2020-07-05,Blackford,Indiana,18009,41,2 +2020-07-06,Blackford,Indiana,18009,41,2 +2020-07-07,Blackford,Indiana,18009,43,2 +2020-07-08,Blackford,Indiana,18009,43,2 +2020-07-09,Blackford,Indiana,18009,43,2 +2020-03-10,Boone,Indiana,18011,1,0 +2020-03-11,Boone,Indiana,18011,1,0 +2020-03-12,Boone,Indiana,18011,1,0 +2020-03-13,Boone,Indiana,18011,1,0 +2020-03-14,Boone,Indiana,18011,1,0 +2020-03-15,Boone,Indiana,18011,1,0 +2020-03-16,Boone,Indiana,18011,1,0 +2020-03-17,Boone,Indiana,18011,1,0 +2020-03-18,Boone,Indiana,18011,1,0 +2020-03-19,Boone,Indiana,18011,1,0 +2020-03-20,Boone,Indiana,18011,2,0 +2020-03-21,Boone,Indiana,18011,2,0 +2020-03-22,Boone,Indiana,18011,3,0 +2020-03-23,Boone,Indiana,18011,3,0 +2020-03-24,Boone,Indiana,18011,3,0 +2020-03-25,Boone,Indiana,18011,4,0 +2020-03-26,Boone,Indiana,18011,7,0 +2020-03-27,Boone,Indiana,18011,7,0 +2020-03-28,Boone,Indiana,18011,8,0 +2020-03-29,Boone,Indiana,18011,13,0 +2020-03-30,Boone,Indiana,18011,20,0 +2020-03-31,Boone,Indiana,18011,22,0 +2020-04-01,Boone,Indiana,18011,29,0 +2020-04-02,Boone,Indiana,18011,32,0 +2020-04-03,Boone,Indiana,18011,38,0 +2020-04-04,Boone,Indiana,18011,50,0 +2020-04-05,Boone,Indiana,18011,58,2 +2020-04-06,Boone,Indiana,18011,65,2 +2020-04-07,Boone,Indiana,18011,75,2 +2020-04-08,Boone,Indiana,18011,77,3 +2020-04-09,Boone,Indiana,18011,85,3 +2020-04-10,Boone,Indiana,18011,91,3 +2020-04-11,Boone,Indiana,18011,104,3 +2020-04-12,Boone,Indiana,18011,110,3 +2020-04-13,Boone,Indiana,18011,110,3 +2020-04-14,Boone,Indiana,18011,126,4 +2020-04-15,Boone,Indiana,18011,130,5 +2020-04-16,Boone,Indiana,18011,137,6 +2020-04-17,Boone,Indiana,18011,147,9 +2020-04-18,Boone,Indiana,18011,154,11 +2020-04-19,Boone,Indiana,18011,156,11 +2020-04-20,Boone,Indiana,18011,157,11 +2020-04-21,Boone,Indiana,18011,164,20 +2020-04-22,Boone,Indiana,18011,169,21 +2020-04-23,Boone,Indiana,18011,176,22 +2020-04-24,Boone,Indiana,18011,181,22 +2020-04-25,Boone,Indiana,18011,186,22 +2020-04-26,Boone,Indiana,18011,186,23 +2020-04-27,Boone,Indiana,18011,187,23 +2020-04-28,Boone,Indiana,18011,189,23 +2020-04-29,Boone,Indiana,18011,190,23 +2020-04-30,Boone,Indiana,18011,194,23 +2020-05-01,Boone,Indiana,18011,194,26 +2020-05-02,Boone,Indiana,18011,203,26 +2020-05-03,Boone,Indiana,18011,203,26 +2020-05-04,Boone,Indiana,18011,204,27 +2020-05-05,Boone,Indiana,18011,217,29 +2020-05-06,Boone,Indiana,18011,217,29 +2020-05-07,Boone,Indiana,18011,222,30 +2020-05-08,Boone,Indiana,18011,228,30 +2020-05-09,Boone,Indiana,18011,233,33 +2020-05-10,Boone,Indiana,18011,237,34 +2020-05-11,Boone,Indiana,18011,240,34 +2020-05-12,Boone,Indiana,18011,254,34 +2020-05-13,Boone,Indiana,18011,254,34 +2020-05-14,Boone,Indiana,18011,267,34 +2020-05-15,Boone,Indiana,18011,270,34 +2020-05-16,Boone,Indiana,18011,274,35 +2020-05-17,Boone,Indiana,18011,276,35 +2020-05-18,Boone,Indiana,18011,278,36 +2020-05-19,Boone,Indiana,18011,280,37 +2020-05-20,Boone,Indiana,18011,282,37 +2020-05-21,Boone,Indiana,18011,295,38 +2020-05-22,Boone,Indiana,18011,297,38 +2020-05-23,Boone,Indiana,18011,298,38 +2020-05-24,Boone,Indiana,18011,300,38 +2020-05-25,Boone,Indiana,18011,301,38 +2020-05-26,Boone,Indiana,18011,307,38 +2020-05-27,Boone,Indiana,18011,312,38 +2020-05-28,Boone,Indiana,18011,324,38 +2020-05-29,Boone,Indiana,18011,327,38 +2020-05-30,Boone,Indiana,18011,333,38 +2020-05-31,Boone,Indiana,18011,332,38 +2020-06-01,Boone,Indiana,18011,332,38 +2020-06-02,Boone,Indiana,18011,333,38 +2020-06-03,Boone,Indiana,18011,335,38 +2020-06-04,Boone,Indiana,18011,341,38 +2020-06-05,Boone,Indiana,18011,341,39 +2020-06-06,Boone,Indiana,18011,345,39 +2020-06-07,Boone,Indiana,18011,348,39 +2020-06-08,Boone,Indiana,18011,349,39 +2020-06-09,Boone,Indiana,18011,355,39 +2020-06-10,Boone,Indiana,18011,357,39 +2020-06-11,Boone,Indiana,18011,365,39 +2020-06-12,Boone,Indiana,18011,375,39 +2020-06-13,Boone,Indiana,18011,376,40 +2020-06-14,Boone,Indiana,18011,378,40 +2020-06-15,Boone,Indiana,18011,404,41 +2020-06-16,Boone,Indiana,18011,400,41 +2020-06-17,Boone,Indiana,18011,401,42 +2020-06-18,Boone,Indiana,18011,398,42 +2020-06-19,Boone,Indiana,18011,399,42 +2020-06-20,Boone,Indiana,18011,406,43 +2020-06-21,Boone,Indiana,18011,408,43 +2020-06-22,Boone,Indiana,18011,411,43 +2020-06-23,Boone,Indiana,18011,414,44 +2020-06-24,Boone,Indiana,18011,418,44 +2020-06-25,Boone,Indiana,18011,420,44 +2020-06-26,Boone,Indiana,18011,424,44 +2020-06-27,Boone,Indiana,18011,427,44 +2020-06-28,Boone,Indiana,18011,429,44 +2020-06-29,Boone,Indiana,18011,434,44 +2020-06-30,Boone,Indiana,18011,439,45 +2020-07-01,Boone,Indiana,18011,440,45 +2020-07-02,Boone,Indiana,18011,445,46 +2020-07-03,Boone,Indiana,18011,452,46 +2020-07-04,Boone,Indiana,18011,455,46 +2020-07-05,Boone,Indiana,18011,460,46 +2020-07-06,Boone,Indiana,18011,463,46 +2020-07-07,Boone,Indiana,18011,467,46 +2020-07-08,Boone,Indiana,18011,472,46 +2020-07-09,Boone,Indiana,18011,477,47 +2020-03-24,Brown,Indiana,18013,1,0 +2020-03-25,Brown,Indiana,18013,1,0 +2020-03-26,Brown,Indiana,18013,1,0 +2020-03-27,Brown,Indiana,18013,2,0 +2020-03-28,Brown,Indiana,18013,2,0 +2020-03-29,Brown,Indiana,18013,3,0 +2020-03-30,Brown,Indiana,18013,3,0 +2020-03-31,Brown,Indiana,18013,3,0 +2020-04-01,Brown,Indiana,18013,3,0 +2020-04-02,Brown,Indiana,18013,3,0 +2020-04-03,Brown,Indiana,18013,3,0 +2020-04-04,Brown,Indiana,18013,4,0 +2020-04-05,Brown,Indiana,18013,5,0 +2020-04-06,Brown,Indiana,18013,7,0 +2020-04-07,Brown,Indiana,18013,8,1 +2020-04-08,Brown,Indiana,18013,9,1 +2020-04-09,Brown,Indiana,18013,9,1 +2020-04-10,Brown,Indiana,18013,9,1 +2020-04-11,Brown,Indiana,18013,12,1 +2020-04-12,Brown,Indiana,18013,12,1 +2020-04-13,Brown,Indiana,18013,12,1 +2020-04-14,Brown,Indiana,18013,13,1 +2020-04-15,Brown,Indiana,18013,14,1 +2020-04-16,Brown,Indiana,18013,14,1 +2020-04-17,Brown,Indiana,18013,14,1 +2020-04-18,Brown,Indiana,18013,14,1 +2020-04-19,Brown,Indiana,18013,14,1 +2020-04-20,Brown,Indiana,18013,14,1 +2020-04-21,Brown,Indiana,18013,14,1 +2020-04-22,Brown,Indiana,18013,14,1 +2020-04-23,Brown,Indiana,18013,15,1 +2020-04-24,Brown,Indiana,18013,15,1 +2020-04-25,Brown,Indiana,18013,15,1 +2020-04-26,Brown,Indiana,18013,15,1 +2020-04-27,Brown,Indiana,18013,15,1 +2020-04-28,Brown,Indiana,18013,15,1 +2020-04-29,Brown,Indiana,18013,15,1 +2020-04-30,Brown,Indiana,18013,15,1 +2020-05-01,Brown,Indiana,18013,16,1 +2020-05-02,Brown,Indiana,18013,17,1 +2020-05-03,Brown,Indiana,18013,18,1 +2020-05-04,Brown,Indiana,18013,18,1 +2020-05-05,Brown,Indiana,18013,18,1 +2020-05-06,Brown,Indiana,18013,21,1 +2020-05-07,Brown,Indiana,18013,25,1 +2020-05-08,Brown,Indiana,18013,25,1 +2020-05-09,Brown,Indiana,18013,25,1 +2020-05-10,Brown,Indiana,18013,26,1 +2020-05-11,Brown,Indiana,18013,26,1 +2020-05-12,Brown,Indiana,18013,28,1 +2020-05-13,Brown,Indiana,18013,28,1 +2020-05-14,Brown,Indiana,18013,29,1 +2020-05-15,Brown,Indiana,18013,29,1 +2020-05-16,Brown,Indiana,18013,30,1 +2020-05-17,Brown,Indiana,18013,31,1 +2020-05-18,Brown,Indiana,18013,32,1 +2020-05-19,Brown,Indiana,18013,31,1 +2020-05-20,Brown,Indiana,18013,31,1 +2020-05-21,Brown,Indiana,18013,32,1 +2020-05-22,Brown,Indiana,18013,33,1 +2020-05-23,Brown,Indiana,18013,33,1 +2020-05-24,Brown,Indiana,18013,33,1 +2020-05-25,Brown,Indiana,18013,33,1 +2020-05-26,Brown,Indiana,18013,33,1 +2020-05-27,Brown,Indiana,18013,33,1 +2020-05-28,Brown,Indiana,18013,33,1 +2020-05-29,Brown,Indiana,18013,33,1 +2020-05-30,Brown,Indiana,18013,33,1 +2020-05-31,Brown,Indiana,18013,33,1 +2020-06-01,Brown,Indiana,18013,33,1 +2020-06-02,Brown,Indiana,18013,33,1 +2020-06-03,Brown,Indiana,18013,33,1 +2020-06-04,Brown,Indiana,18013,33,1 +2020-06-05,Brown,Indiana,18013,33,1 +2020-06-06,Brown,Indiana,18013,34,1 +2020-06-07,Brown,Indiana,18013,34,1 +2020-06-08,Brown,Indiana,18013,34,1 +2020-06-09,Brown,Indiana,18013,35,1 +2020-06-10,Brown,Indiana,18013,35,1 +2020-06-11,Brown,Indiana,18013,35,1 +2020-06-12,Brown,Indiana,18013,36,1 +2020-06-13,Brown,Indiana,18013,36,1 +2020-06-14,Brown,Indiana,18013,36,1 +2020-06-15,Brown,Indiana,18013,36,1 +2020-06-16,Brown,Indiana,18013,36,1 +2020-06-17,Brown,Indiana,18013,36,1 +2020-06-18,Brown,Indiana,18013,37,1 +2020-06-19,Brown,Indiana,18013,37,1 +2020-06-20,Brown,Indiana,18013,37,1 +2020-06-21,Brown,Indiana,18013,37,1 +2020-06-22,Brown,Indiana,18013,37,1 +2020-06-23,Brown,Indiana,18013,37,1 +2020-06-24,Brown,Indiana,18013,37,1 +2020-06-25,Brown,Indiana,18013,37,1 +2020-06-26,Brown,Indiana,18013,37,1 +2020-06-27,Brown,Indiana,18013,37,1 +2020-06-28,Brown,Indiana,18013,38,1 +2020-06-29,Brown,Indiana,18013,38,1 +2020-06-30,Brown,Indiana,18013,38,1 +2020-07-01,Brown,Indiana,18013,38,1 +2020-07-02,Brown,Indiana,18013,38,1 +2020-07-03,Brown,Indiana,18013,38,1 +2020-07-04,Brown,Indiana,18013,38,1 +2020-07-05,Brown,Indiana,18013,39,1 +2020-07-06,Brown,Indiana,18013,39,1 +2020-07-07,Brown,Indiana,18013,39,1 +2020-07-08,Brown,Indiana,18013,42,1 +2020-07-09,Brown,Indiana,18013,42,1 +2020-03-27,Carroll,Indiana,18015,1,0 +2020-03-28,Carroll,Indiana,18015,1,0 +2020-03-29,Carroll,Indiana,18015,1,0 +2020-03-30,Carroll,Indiana,18015,2,0 +2020-03-31,Carroll,Indiana,18015,2,0 +2020-04-01,Carroll,Indiana,18015,2,0 +2020-04-02,Carroll,Indiana,18015,2,0 +2020-04-03,Carroll,Indiana,18015,2,0 +2020-04-04,Carroll,Indiana,18015,3,0 +2020-04-05,Carroll,Indiana,18015,3,0 +2020-04-06,Carroll,Indiana,18015,3,0 +2020-04-07,Carroll,Indiana,18015,3,0 +2020-04-08,Carroll,Indiana,18015,3,0 +2020-04-09,Carroll,Indiana,18015,3,0 +2020-04-10,Carroll,Indiana,18015,4,0 +2020-04-11,Carroll,Indiana,18015,5,0 +2020-04-12,Carroll,Indiana,18015,5,0 +2020-04-13,Carroll,Indiana,18015,5,0 +2020-04-14,Carroll,Indiana,18015,6,1 +2020-04-15,Carroll,Indiana,18015,6,1 +2020-04-16,Carroll,Indiana,18015,6,1 +2020-04-17,Carroll,Indiana,18015,6,1 +2020-04-18,Carroll,Indiana,18015,6,1 +2020-04-19,Carroll,Indiana,18015,6,1 +2020-04-20,Carroll,Indiana,18015,7,1 +2020-04-21,Carroll,Indiana,18015,8,1 +2020-04-22,Carroll,Indiana,18015,7,1 +2020-04-23,Carroll,Indiana,18015,7,1 +2020-04-24,Carroll,Indiana,18015,8,1 +2020-04-25,Carroll,Indiana,18015,9,1 +2020-04-26,Carroll,Indiana,18015,13,1 +2020-04-27,Carroll,Indiana,18015,18,1 +2020-04-28,Carroll,Indiana,18015,18,1 +2020-04-29,Carroll,Indiana,18015,21,1 +2020-04-30,Carroll,Indiana,18015,22,1 +2020-05-01,Carroll,Indiana,18015,24,1 +2020-05-02,Carroll,Indiana,18015,25,1 +2020-05-03,Carroll,Indiana,18015,41,1 +2020-05-04,Carroll,Indiana,18015,56,1 +2020-05-05,Carroll,Indiana,18015,63,1 +2020-05-06,Carroll,Indiana,18015,65,1 +2020-05-07,Carroll,Indiana,18015,66,1 +2020-05-08,Carroll,Indiana,18015,70,2 +2020-05-09,Carroll,Indiana,18015,71,2 +2020-05-10,Carroll,Indiana,18015,71,2 +2020-05-11,Carroll,Indiana,18015,71,2 +2020-05-12,Carroll,Indiana,18015,71,2 +2020-05-13,Carroll,Indiana,18015,73,2 +2020-05-14,Carroll,Indiana,18015,75,2 +2020-05-15,Carroll,Indiana,18015,77,2 +2020-05-16,Carroll,Indiana,18015,78,2 +2020-05-17,Carroll,Indiana,18015,79,2 +2020-05-18,Carroll,Indiana,18015,79,2 +2020-05-19,Carroll,Indiana,18015,79,2 +2020-05-20,Carroll,Indiana,18015,81,2 +2020-05-21,Carroll,Indiana,18015,85,2 +2020-05-22,Carroll,Indiana,18015,87,2 +2020-05-23,Carroll,Indiana,18015,88,2 +2020-05-24,Carroll,Indiana,18015,91,2 +2020-05-25,Carroll,Indiana,18015,92,2 +2020-05-26,Carroll,Indiana,18015,92,2 +2020-05-27,Carroll,Indiana,18015,93,2 +2020-05-28,Carroll,Indiana,18015,93,3 +2020-05-29,Carroll,Indiana,18015,92,2 +2020-05-30,Carroll,Indiana,18015,93,2 +2020-05-31,Carroll,Indiana,18015,93,2 +2020-06-01,Carroll,Indiana,18015,93,2 +2020-06-02,Carroll,Indiana,18015,93,3 +2020-06-03,Carroll,Indiana,18015,93,3 +2020-06-04,Carroll,Indiana,18015,94,3 +2020-06-05,Carroll,Indiana,18015,95,2 +2020-06-06,Carroll,Indiana,18015,96,2 +2020-06-07,Carroll,Indiana,18015,96,2 +2020-06-08,Carroll,Indiana,18015,96,2 +2020-06-09,Carroll,Indiana,18015,95,2 +2020-06-10,Carroll,Indiana,18015,96,2 +2020-06-11,Carroll,Indiana,18015,97,2 +2020-06-12,Carroll,Indiana,18015,98,2 +2020-06-13,Carroll,Indiana,18015,98,2 +2020-06-14,Carroll,Indiana,18015,99,2 +2020-06-15,Carroll,Indiana,18015,101,2 +2020-06-16,Carroll,Indiana,18015,102,2 +2020-06-17,Carroll,Indiana,18015,102,2 +2020-06-18,Carroll,Indiana,18015,103,2 +2020-06-19,Carroll,Indiana,18015,103,2 +2020-06-20,Carroll,Indiana,18015,103,2 +2020-06-21,Carroll,Indiana,18015,103,2 +2020-06-22,Carroll,Indiana,18015,103,2 +2020-06-23,Carroll,Indiana,18015,103,2 +2020-06-24,Carroll,Indiana,18015,103,2 +2020-06-25,Carroll,Indiana,18015,104,2 +2020-06-26,Carroll,Indiana,18015,109,2 +2020-06-27,Carroll,Indiana,18015,107,2 +2020-06-28,Carroll,Indiana,18015,107,2 +2020-06-29,Carroll,Indiana,18015,107,2 +2020-06-30,Carroll,Indiana,18015,108,2 +2020-07-01,Carroll,Indiana,18015,109,2 +2020-07-02,Carroll,Indiana,18015,109,2 +2020-07-03,Carroll,Indiana,18015,110,2 +2020-07-04,Carroll,Indiana,18015,110,2 +2020-07-05,Carroll,Indiana,18015,110,2 +2020-07-06,Carroll,Indiana,18015,110,2 +2020-07-07,Carroll,Indiana,18015,110,2 +2020-07-08,Carroll,Indiana,18015,110,2 +2020-07-09,Carroll,Indiana,18015,112,2 +2020-03-31,Cass,Indiana,18017,1,0 +2020-04-01,Cass,Indiana,18017,1,0 +2020-04-02,Cass,Indiana,18017,2,0 +2020-04-03,Cass,Indiana,18017,2,0 +2020-04-04,Cass,Indiana,18017,4,0 +2020-04-05,Cass,Indiana,18017,4,0 +2020-04-06,Cass,Indiana,18017,4,0 +2020-04-07,Cass,Indiana,18017,13,1 +2020-04-08,Cass,Indiana,18017,16,1 +2020-04-09,Cass,Indiana,18017,17,2 +2020-04-10,Cass,Indiana,18017,19,2 +2020-04-11,Cass,Indiana,18017,24,2 +2020-04-12,Cass,Indiana,18017,23,2 +2020-04-13,Cass,Indiana,18017,29,2 +2020-04-14,Cass,Indiana,18017,29,2 +2020-04-15,Cass,Indiana,18017,34,2 +2020-04-16,Cass,Indiana,18017,38,2 +2020-04-17,Cass,Indiana,18017,51,2 +2020-04-18,Cass,Indiana,18017,53,2 +2020-04-19,Cass,Indiana,18017,72,2 +2020-04-20,Cass,Indiana,18017,88,2 +2020-04-21,Cass,Indiana,18017,108,2 +2020-04-22,Cass,Indiana,18017,139,2 +2020-04-23,Cass,Indiana,18017,200,2 +2020-04-24,Cass,Indiana,18017,256,2 +2020-04-25,Cass,Indiana,18017,316,2 +2020-04-26,Cass,Indiana,18017,587,2 +2020-04-27,Cass,Indiana,18017,1026,2 +2020-04-28,Cass,Indiana,18017,1103,2 +2020-04-29,Cass,Indiana,18017,1127,4 +2020-04-30,Cass,Indiana,18017,1166,3 +2020-05-01,Cass,Indiana,18017,1216,3 +2020-05-02,Cass,Indiana,18017,1226,3 +2020-05-03,Cass,Indiana,18017,1295,3 +2020-05-04,Cass,Indiana,18017,1373,3 +2020-05-05,Cass,Indiana,18017,1408,3 +2020-05-06,Cass,Indiana,18017,1444,3 +2020-05-07,Cass,Indiana,18017,1471,3 +2020-05-08,Cass,Indiana,18017,1499,3 +2020-05-09,Cass,Indiana,18017,1509,3 +2020-05-10,Cass,Indiana,18017,1522,4 +2020-05-11,Cass,Indiana,18017,1526,4 +2020-05-12,Cass,Indiana,18017,1544,5 +2020-05-13,Cass,Indiana,18017,1546,5 +2020-05-14,Cass,Indiana,18017,1548,5 +2020-05-15,Cass,Indiana,18017,1553,6 +2020-05-16,Cass,Indiana,18017,1555,6 +2020-05-17,Cass,Indiana,18017,1555,6 +2020-05-18,Cass,Indiana,18017,1554,6 +2020-05-19,Cass,Indiana,18017,1562,7 +2020-05-20,Cass,Indiana,18017,1566,7 +2020-05-21,Cass,Indiana,18017,1574,7 +2020-05-22,Cass,Indiana,18017,1580,7 +2020-05-23,Cass,Indiana,18017,1581,7 +2020-05-24,Cass,Indiana,18017,1583,7 +2020-05-25,Cass,Indiana,18017,1584,7 +2020-05-26,Cass,Indiana,18017,1584,7 +2020-05-27,Cass,Indiana,18017,1588,8 +2020-05-28,Cass,Indiana,18017,1591,8 +2020-05-29,Cass,Indiana,18017,1591,8 +2020-05-30,Cass,Indiana,18017,1589,8 +2020-05-31,Cass,Indiana,18017,1589,8 +2020-06-01,Cass,Indiana,18017,1589,8 +2020-06-02,Cass,Indiana,18017,1594,8 +2020-06-03,Cass,Indiana,18017,1594,8 +2020-06-04,Cass,Indiana,18017,1594,8 +2020-06-05,Cass,Indiana,18017,1594,10 +2020-06-06,Cass,Indiana,18017,1595,10 +2020-06-07,Cass,Indiana,18017,1596,10 +2020-06-08,Cass,Indiana,18017,1596,10 +2020-06-09,Cass,Indiana,18017,1596,10 +2020-06-10,Cass,Indiana,18017,1595,10 +2020-06-11,Cass,Indiana,18017,1595,10 +2020-06-12,Cass,Indiana,18017,1599,10 +2020-06-13,Cass,Indiana,18017,1600,10 +2020-06-14,Cass,Indiana,18017,1604,10 +2020-06-15,Cass,Indiana,18017,1609,10 +2020-06-16,Cass,Indiana,18017,1611,10 +2020-06-17,Cass,Indiana,18017,1611,10 +2020-06-18,Cass,Indiana,18017,1612,10 +2020-06-19,Cass,Indiana,18017,1616,10 +2020-06-20,Cass,Indiana,18017,1627,10 +2020-06-21,Cass,Indiana,18017,1628,10 +2020-06-22,Cass,Indiana,18017,1628,10 +2020-06-23,Cass,Indiana,18017,1628,10 +2020-06-24,Cass,Indiana,18017,1628,10 +2020-06-25,Cass,Indiana,18017,1632,10 +2020-06-26,Cass,Indiana,18017,1641,10 +2020-06-27,Cass,Indiana,18017,1636,10 +2020-06-28,Cass,Indiana,18017,1638,10 +2020-06-29,Cass,Indiana,18017,1639,10 +2020-06-30,Cass,Indiana,18017,1639,10 +2020-07-01,Cass,Indiana,18017,1639,10 +2020-07-02,Cass,Indiana,18017,1639,10 +2020-07-03,Cass,Indiana,18017,1639,10 +2020-07-04,Cass,Indiana,18017,1641,10 +2020-07-05,Cass,Indiana,18017,1641,10 +2020-07-06,Cass,Indiana,18017,1641,10 +2020-07-07,Cass,Indiana,18017,1642,10 +2020-07-08,Cass,Indiana,18017,1645,10 +2020-07-09,Cass,Indiana,18017,1646,10 +2020-03-18,Clark,Indiana,18019,1,0 +2020-03-19,Clark,Indiana,18019,1,0 +2020-03-20,Clark,Indiana,18019,1,0 +2020-03-21,Clark,Indiana,18019,4,0 +2020-03-22,Clark,Indiana,18019,4,0 +2020-03-23,Clark,Indiana,18019,5,0 +2020-03-24,Clark,Indiana,18019,5,0 +2020-03-25,Clark,Indiana,18019,6,0 +2020-03-26,Clark,Indiana,18019,10,0 +2020-03-27,Clark,Indiana,18019,12,0 +2020-03-28,Clark,Indiana,18019,18,0 +2020-03-29,Clark,Indiana,18019,20,0 +2020-03-30,Clark,Indiana,18019,27,0 +2020-03-31,Clark,Indiana,18019,33,0 +2020-04-01,Clark,Indiana,18019,38,1 +2020-04-02,Clark,Indiana,18019,49,1 +2020-04-03,Clark,Indiana,18019,55,2 +2020-04-04,Clark,Indiana,18019,61,3 +2020-04-05,Clark,Indiana,18019,66,4 +2020-04-06,Clark,Indiana,18019,72,5 +2020-04-07,Clark,Indiana,18019,83,8 +2020-04-08,Clark,Indiana,18019,87,8 +2020-04-09,Clark,Indiana,18019,97,8 +2020-04-10,Clark,Indiana,18019,105,9 +2020-04-11,Clark,Indiana,18019,107,9 +2020-04-12,Clark,Indiana,18019,113,9 +2020-04-13,Clark,Indiana,18019,118,9 +2020-04-14,Clark,Indiana,18019,133,9 +2020-04-15,Clark,Indiana,18019,138,10 +2020-04-16,Clark,Indiana,18019,144,10 +2020-04-17,Clark,Indiana,18019,152,11 +2020-04-18,Clark,Indiana,18019,161,12 +2020-04-19,Clark,Indiana,18019,163,12 +2020-04-20,Clark,Indiana,18019,178,12 +2020-04-21,Clark,Indiana,18019,182,12 +2020-04-22,Clark,Indiana,18019,190,13 +2020-04-23,Clark,Indiana,18019,197,13 +2020-04-24,Clark,Indiana,18019,209,13 +2020-04-25,Clark,Indiana,18019,225,15 +2020-04-26,Clark,Indiana,18019,229,15 +2020-04-27,Clark,Indiana,18019,278,14 +2020-04-28,Clark,Indiana,18019,284,14 +2020-04-29,Clark,Indiana,18019,289,14 +2020-04-30,Clark,Indiana,18019,295,16 +2020-05-01,Clark,Indiana,18019,319,19 +2020-05-02,Clark,Indiana,18019,332,19 +2020-05-03,Clark,Indiana,18019,334,19 +2020-05-04,Clark,Indiana,18019,337,19 +2020-05-05,Clark,Indiana,18019,342,24 +2020-05-06,Clark,Indiana,18019,350,26 +2020-05-07,Clark,Indiana,18019,358,26 +2020-05-08,Clark,Indiana,18019,361,26 +2020-05-09,Clark,Indiana,18019,379,30 +2020-05-10,Clark,Indiana,18019,382,30 +2020-05-11,Clark,Indiana,18019,385,30 +2020-05-12,Clark,Indiana,18019,394,31 +2020-05-13,Clark,Indiana,18019,399,32 +2020-05-14,Clark,Indiana,18019,401,33 +2020-05-15,Clark,Indiana,18019,405,35 +2020-05-16,Clark,Indiana,18019,406,36 +2020-05-17,Clark,Indiana,18019,412,36 +2020-05-18,Clark,Indiana,18019,430,36 +2020-05-19,Clark,Indiana,18019,437,43 +2020-05-20,Clark,Indiana,18019,445,44 +2020-05-21,Clark,Indiana,18019,453,44 +2020-05-22,Clark,Indiana,18019,453,45 +2020-05-23,Clark,Indiana,18019,457,45 +2020-05-24,Clark,Indiana,18019,460,45 +2020-05-25,Clark,Indiana,18019,465,45 +2020-05-26,Clark,Indiana,18019,468,45 +2020-05-27,Clark,Indiana,18019,478,48 +2020-05-28,Clark,Indiana,18019,486,48 +2020-05-29,Clark,Indiana,18019,499,48 +2020-05-30,Clark,Indiana,18019,504,48 +2020-05-31,Clark,Indiana,18019,511,48 +2020-06-01,Clark,Indiana,18019,512,48 +2020-06-02,Clark,Indiana,18019,526,48 +2020-06-03,Clark,Indiana,18019,535,48 +2020-06-04,Clark,Indiana,18019,537,48 +2020-06-05,Clark,Indiana,18019,547,49 +2020-06-06,Clark,Indiana,18019,553,49 +2020-06-07,Clark,Indiana,18019,556,49 +2020-06-08,Clark,Indiana,18019,557,49 +2020-06-09,Clark,Indiana,18019,555,49 +2020-06-10,Clark,Indiana,18019,557,49 +2020-06-11,Clark,Indiana,18019,560,49 +2020-06-12,Clark,Indiana,18019,567,49 +2020-06-13,Clark,Indiana,18019,573,49 +2020-06-14,Clark,Indiana,18019,575,49 +2020-06-15,Clark,Indiana,18019,576,49 +2020-06-16,Clark,Indiana,18019,585,49 +2020-06-17,Clark,Indiana,18019,589,50 +2020-06-18,Clark,Indiana,18019,593,50 +2020-06-19,Clark,Indiana,18019,596,50 +2020-06-20,Clark,Indiana,18019,599,50 +2020-06-21,Clark,Indiana,18019,602,50 +2020-06-22,Clark,Indiana,18019,602,50 +2020-06-23,Clark,Indiana,18019,607,50 +2020-06-24,Clark,Indiana,18019,610,50 +2020-06-25,Clark,Indiana,18019,615,51 +2020-06-26,Clark,Indiana,18019,617,51 +2020-06-27,Clark,Indiana,18019,623,51 +2020-06-28,Clark,Indiana,18019,623,51 +2020-06-29,Clark,Indiana,18019,624,51 +2020-06-30,Clark,Indiana,18019,626,51 +2020-07-01,Clark,Indiana,18019,633,51 +2020-07-02,Clark,Indiana,18019,638,51 +2020-07-03,Clark,Indiana,18019,650,51 +2020-07-04,Clark,Indiana,18019,652,51 +2020-07-05,Clark,Indiana,18019,663,51 +2020-07-06,Clark,Indiana,18019,667,51 +2020-07-07,Clark,Indiana,18019,672,51 +2020-07-08,Clark,Indiana,18019,680,51 +2020-07-09,Clark,Indiana,18019,683,51 +2020-03-29,Clay,Indiana,18021,1,0 +2020-03-30,Clay,Indiana,18021,1,0 +2020-03-31,Clay,Indiana,18021,1,0 +2020-04-01,Clay,Indiana,18021,1,0 +2020-04-02,Clay,Indiana,18021,1,0 +2020-04-03,Clay,Indiana,18021,2,0 +2020-04-04,Clay,Indiana,18021,3,0 +2020-04-05,Clay,Indiana,18021,4,0 +2020-04-06,Clay,Indiana,18021,5,0 +2020-04-07,Clay,Indiana,18021,7,0 +2020-04-08,Clay,Indiana,18021,11,0 +2020-04-09,Clay,Indiana,18021,12,0 +2020-04-10,Clay,Indiana,18021,11,0 +2020-04-11,Clay,Indiana,18021,11,0 +2020-04-12,Clay,Indiana,18021,11,0 +2020-04-13,Clay,Indiana,18021,12,0 +2020-04-14,Clay,Indiana,18021,12,0 +2020-04-15,Clay,Indiana,18021,13,0 +2020-04-16,Clay,Indiana,18021,14,0 +2020-04-17,Clay,Indiana,18021,14,0 +2020-04-18,Clay,Indiana,18021,15,0 +2020-04-19,Clay,Indiana,18021,18,0 +2020-04-20,Clay,Indiana,18021,20,0 +2020-04-21,Clay,Indiana,18021,19,0 +2020-04-22,Clay,Indiana,18021,19,1 +2020-04-23,Clay,Indiana,18021,19,1 +2020-04-24,Clay,Indiana,18021,19,1 +2020-04-25,Clay,Indiana,18021,19,1 +2020-04-26,Clay,Indiana,18021,19,1 +2020-04-27,Clay,Indiana,18021,19,1 +2020-04-28,Clay,Indiana,18021,19,1 +2020-04-29,Clay,Indiana,18021,19,1 +2020-04-30,Clay,Indiana,18021,20,1 +2020-05-01,Clay,Indiana,18021,20,1 +2020-05-02,Clay,Indiana,18021,22,1 +2020-05-03,Clay,Indiana,18021,22,1 +2020-05-04,Clay,Indiana,18021,22,1 +2020-05-05,Clay,Indiana,18021,22,1 +2020-05-06,Clay,Indiana,18021,23,1 +2020-05-07,Clay,Indiana,18021,23,1 +2020-05-08,Clay,Indiana,18021,24,1 +2020-05-09,Clay,Indiana,18021,24,1 +2020-05-10,Clay,Indiana,18021,24,1 +2020-05-11,Clay,Indiana,18021,24,1 +2020-05-12,Clay,Indiana,18021,24,1 +2020-05-13,Clay,Indiana,18021,24,1 +2020-05-14,Clay,Indiana,18021,26,1 +2020-05-15,Clay,Indiana,18021,28,1 +2020-05-16,Clay,Indiana,18021,29,1 +2020-05-17,Clay,Indiana,18021,30,1 +2020-05-18,Clay,Indiana,18021,31,1 +2020-05-19,Clay,Indiana,18021,32,1 +2020-05-20,Clay,Indiana,18021,33,1 +2020-05-21,Clay,Indiana,18021,36,1 +2020-05-22,Clay,Indiana,18021,36,1 +2020-05-23,Clay,Indiana,18021,38,1 +2020-05-24,Clay,Indiana,18021,39,1 +2020-05-25,Clay,Indiana,18021,39,1 +2020-05-26,Clay,Indiana,18021,39,1 +2020-05-27,Clay,Indiana,18021,41,1 +2020-05-28,Clay,Indiana,18021,46,1 +2020-05-29,Clay,Indiana,18021,47,1 +2020-05-30,Clay,Indiana,18021,51,1 +2020-05-31,Clay,Indiana,18021,51,1 +2020-06-01,Clay,Indiana,18021,51,1 +2020-06-02,Clay,Indiana,18021,51,2 +2020-06-03,Clay,Indiana,18021,52,2 +2020-06-04,Clay,Indiana,18021,53,3 +2020-06-05,Clay,Indiana,18021,53,3 +2020-06-06,Clay,Indiana,18021,53,3 +2020-06-07,Clay,Indiana,18021,53,3 +2020-06-08,Clay,Indiana,18021,53,3 +2020-06-09,Clay,Indiana,18021,55,3 +2020-06-10,Clay,Indiana,18021,56,3 +2020-06-11,Clay,Indiana,18021,56,3 +2020-06-12,Clay,Indiana,18021,56,3 +2020-06-13,Clay,Indiana,18021,56,3 +2020-06-14,Clay,Indiana,18021,56,3 +2020-06-15,Clay,Indiana,18021,56,3 +2020-06-16,Clay,Indiana,18021,56,3 +2020-06-17,Clay,Indiana,18021,56,3 +2020-06-18,Clay,Indiana,18021,56,3 +2020-06-19,Clay,Indiana,18021,56,3 +2020-06-20,Clay,Indiana,18021,56,3 +2020-06-21,Clay,Indiana,18021,56,3 +2020-06-22,Clay,Indiana,18021,56,3 +2020-06-23,Clay,Indiana,18021,56,4 +2020-06-24,Clay,Indiana,18021,56,4 +2020-06-25,Clay,Indiana,18021,56,4 +2020-06-26,Clay,Indiana,18021,56,4 +2020-06-27,Clay,Indiana,18021,59,4 +2020-06-28,Clay,Indiana,18021,59,4 +2020-06-29,Clay,Indiana,18021,59,4 +2020-06-30,Clay,Indiana,18021,59,4 +2020-07-01,Clay,Indiana,18021,59,4 +2020-07-02,Clay,Indiana,18021,59,4 +2020-07-03,Clay,Indiana,18021,60,4 +2020-07-04,Clay,Indiana,18021,60,4 +2020-07-05,Clay,Indiana,18021,60,4 +2020-07-06,Clay,Indiana,18021,60,4 +2020-07-07,Clay,Indiana,18021,60,4 +2020-07-08,Clay,Indiana,18021,60,4 +2020-07-09,Clay,Indiana,18021,64,4 +2020-03-27,Clinton,Indiana,18023,1,0 +2020-03-28,Clinton,Indiana,18023,1,0 +2020-03-29,Clinton,Indiana,18023,1,0 +2020-03-30,Clinton,Indiana,18023,1,0 +2020-03-31,Clinton,Indiana,18023,1,0 +2020-04-01,Clinton,Indiana,18023,1,0 +2020-04-02,Clinton,Indiana,18023,1,0 +2020-04-03,Clinton,Indiana,18023,3,0 +2020-04-04,Clinton,Indiana,18023,3,0 +2020-04-05,Clinton,Indiana,18023,4,0 +2020-04-06,Clinton,Indiana,18023,4,0 +2020-04-07,Clinton,Indiana,18023,6,1 +2020-04-08,Clinton,Indiana,18023,9,1 +2020-04-09,Clinton,Indiana,18023,11,2 +2020-04-10,Clinton,Indiana,18023,12,2 +2020-04-11,Clinton,Indiana,18023,12,2 +2020-04-12,Clinton,Indiana,18023,12,2 +2020-04-13,Clinton,Indiana,18023,12,2 +2020-04-14,Clinton,Indiana,18023,13,2 +2020-04-15,Clinton,Indiana,18023,14,2 +2020-04-16,Clinton,Indiana,18023,15,2 +2020-04-17,Clinton,Indiana,18023,17,2 +2020-04-18,Clinton,Indiana,18023,17,2 +2020-04-19,Clinton,Indiana,18023,19,2 +2020-04-20,Clinton,Indiana,18023,20,2 +2020-04-21,Clinton,Indiana,18023,21,2 +2020-04-22,Clinton,Indiana,18023,21,2 +2020-04-23,Clinton,Indiana,18023,26,2 +2020-04-24,Clinton,Indiana,18023,27,2 +2020-04-25,Clinton,Indiana,18023,31,2 +2020-04-26,Clinton,Indiana,18023,32,2 +2020-04-27,Clinton,Indiana,18023,33,2 +2020-04-28,Clinton,Indiana,18023,36,2 +2020-04-29,Clinton,Indiana,18023,37,2 +2020-04-30,Clinton,Indiana,18023,39,2 +2020-05-01,Clinton,Indiana,18023,46,2 +2020-05-02,Clinton,Indiana,18023,48,2 +2020-05-03,Clinton,Indiana,18023,57,2 +2020-05-04,Clinton,Indiana,18023,65,2 +2020-05-05,Clinton,Indiana,18023,66,2 +2020-05-06,Clinton,Indiana,18023,71,2 +2020-05-07,Clinton,Indiana,18023,76,2 +2020-05-08,Clinton,Indiana,18023,81,2 +2020-05-09,Clinton,Indiana,18023,86,2 +2020-05-10,Clinton,Indiana,18023,89,2 +2020-05-11,Clinton,Indiana,18023,97,2 +2020-05-12,Clinton,Indiana,18023,101,2 +2020-05-13,Clinton,Indiana,18023,112,2 +2020-05-14,Clinton,Indiana,18023,117,2 +2020-05-15,Clinton,Indiana,18023,119,2 +2020-05-16,Clinton,Indiana,18023,127,2 +2020-05-17,Clinton,Indiana,18023,135,2 +2020-05-18,Clinton,Indiana,18023,143,2 +2020-05-19,Clinton,Indiana,18023,150,2 +2020-05-20,Clinton,Indiana,18023,164,2 +2020-05-21,Clinton,Indiana,18023,186,2 +2020-05-22,Clinton,Indiana,18023,195,2 +2020-05-23,Clinton,Indiana,18023,205,2 +2020-05-24,Clinton,Indiana,18023,209,2 +2020-05-25,Clinton,Indiana,18023,216,2 +2020-05-26,Clinton,Indiana,18023,223,2 +2020-05-27,Clinton,Indiana,18023,223,2 +2020-05-28,Clinton,Indiana,18023,223,2 +2020-05-29,Clinton,Indiana,18023,224,2 +2020-05-30,Clinton,Indiana,18023,228,2 +2020-05-31,Clinton,Indiana,18023,233,2 +2020-06-01,Clinton,Indiana,18023,234,2 +2020-06-02,Clinton,Indiana,18023,239,2 +2020-06-03,Clinton,Indiana,18023,241,2 +2020-06-04,Clinton,Indiana,18023,247,2 +2020-06-05,Clinton,Indiana,18023,248,2 +2020-06-06,Clinton,Indiana,18023,249,2 +2020-06-07,Clinton,Indiana,18023,252,2 +2020-06-08,Clinton,Indiana,18023,253,2 +2020-06-09,Clinton,Indiana,18023,251,2 +2020-06-10,Clinton,Indiana,18023,250,2 +2020-06-11,Clinton,Indiana,18023,252,2 +2020-06-12,Clinton,Indiana,18023,254,2 +2020-06-13,Clinton,Indiana,18023,259,2 +2020-06-14,Clinton,Indiana,18023,261,2 +2020-06-15,Clinton,Indiana,18023,263,2 +2020-06-16,Clinton,Indiana,18023,262,2 +2020-06-17,Clinton,Indiana,18023,263,2 +2020-06-18,Clinton,Indiana,18023,265,2 +2020-06-19,Clinton,Indiana,18023,269,2 +2020-06-20,Clinton,Indiana,18023,270,2 +2020-06-21,Clinton,Indiana,18023,274,2 +2020-06-22,Clinton,Indiana,18023,274,2 +2020-06-23,Clinton,Indiana,18023,274,2 +2020-06-24,Clinton,Indiana,18023,275,2 +2020-06-25,Clinton,Indiana,18023,275,2 +2020-06-26,Clinton,Indiana,18023,276,2 +2020-06-27,Clinton,Indiana,18023,277,2 +2020-06-28,Clinton,Indiana,18023,278,2 +2020-06-29,Clinton,Indiana,18023,279,2 +2020-06-30,Clinton,Indiana,18023,280,3 +2020-07-01,Clinton,Indiana,18023,280,3 +2020-07-02,Clinton,Indiana,18023,282,3 +2020-07-03,Clinton,Indiana,18023,286,3 +2020-07-04,Clinton,Indiana,18023,289,3 +2020-07-05,Clinton,Indiana,18023,290,3 +2020-07-06,Clinton,Indiana,18023,290,3 +2020-07-07,Clinton,Indiana,18023,290,3 +2020-07-08,Clinton,Indiana,18023,291,3 +2020-07-09,Clinton,Indiana,18023,289,3 +2020-03-28,Crawford,Indiana,18025,1,0 +2020-03-29,Crawford,Indiana,18025,1,0 +2020-03-30,Crawford,Indiana,18025,1,0 +2020-03-31,Crawford,Indiana,18025,1,0 +2020-04-01,Crawford,Indiana,18025,1,0 +2020-04-02,Crawford,Indiana,18025,1,0 +2020-04-03,Crawford,Indiana,18025,3,0 +2020-04-04,Crawford,Indiana,18025,5,0 +2020-04-05,Crawford,Indiana,18025,5,0 +2020-04-06,Crawford,Indiana,18025,6,0 +2020-04-07,Crawford,Indiana,18025,9,0 +2020-04-08,Crawford,Indiana,18025,11,0 +2020-04-09,Crawford,Indiana,18025,11,0 +2020-04-10,Crawford,Indiana,18025,12,0 +2020-04-11,Crawford,Indiana,18025,12,0 +2020-04-12,Crawford,Indiana,18025,13,1 +2020-04-13,Crawford,Indiana,18025,13,1 +2020-04-14,Crawford,Indiana,18025,13,1 +2020-04-15,Crawford,Indiana,18025,13,1 +2020-04-16,Crawford,Indiana,18025,13,1 +2020-04-17,Crawford,Indiana,18025,13,1 +2020-04-18,Crawford,Indiana,18025,13,1 +2020-04-19,Crawford,Indiana,18025,13,1 +2020-04-20,Crawford,Indiana,18025,14,1 +2020-04-21,Crawford,Indiana,18025,14,1 +2020-04-22,Crawford,Indiana,18025,14,1 +2020-04-23,Crawford,Indiana,18025,15,1 +2020-04-24,Crawford,Indiana,18025,17,1 +2020-04-25,Crawford,Indiana,18025,17,1 +2020-04-26,Crawford,Indiana,18025,17,1 +2020-04-27,Crawford,Indiana,18025,17,1 +2020-04-28,Crawford,Indiana,18025,17,1 +2020-04-29,Crawford,Indiana,18025,19,1 +2020-04-30,Crawford,Indiana,18025,19,1 +2020-05-01,Crawford,Indiana,18025,18,1 +2020-05-02,Crawford,Indiana,18025,19,1 +2020-05-03,Crawford,Indiana,18025,19,1 +2020-05-04,Crawford,Indiana,18025,19,1 +2020-05-05,Crawford,Indiana,18025,20,1 +2020-05-06,Crawford,Indiana,18025,20,1 +2020-05-07,Crawford,Indiana,18025,21,1 +2020-05-08,Crawford,Indiana,18025,21,1 +2020-05-09,Crawford,Indiana,18025,21,1 +2020-05-10,Crawford,Indiana,18025,21,1 +2020-05-11,Crawford,Indiana,18025,21,1 +2020-05-12,Crawford,Indiana,18025,21,1 +2020-05-13,Crawford,Indiana,18025,22,1 +2020-05-14,Crawford,Indiana,18025,22,1 +2020-05-15,Crawford,Indiana,18025,23,1 +2020-05-16,Crawford,Indiana,18025,23,1 +2020-05-17,Crawford,Indiana,18025,23,1 +2020-05-18,Crawford,Indiana,18025,23,1 +2020-05-19,Crawford,Indiana,18025,23,1 +2020-05-20,Crawford,Indiana,18025,23,1 +2020-05-21,Crawford,Indiana,18025,23,1 +2020-05-22,Crawford,Indiana,18025,24,1 +2020-05-23,Crawford,Indiana,18025,24,1 +2020-05-24,Crawford,Indiana,18025,24,1 +2020-05-25,Crawford,Indiana,18025,24,1 +2020-05-26,Crawford,Indiana,18025,24,1 +2020-05-27,Crawford,Indiana,18025,24,1 +2020-05-28,Crawford,Indiana,18025,24,1 +2020-05-29,Crawford,Indiana,18025,25,1 +2020-05-30,Crawford,Indiana,18025,25,1 +2020-05-31,Crawford,Indiana,18025,25,1 +2020-06-01,Crawford,Indiana,18025,25,1 +2020-06-02,Crawford,Indiana,18025,25,1 +2020-06-03,Crawford,Indiana,18025,25,1 +2020-06-04,Crawford,Indiana,18025,25,1 +2020-06-05,Crawford,Indiana,18025,26,1 +2020-06-06,Crawford,Indiana,18025,26,1 +2020-06-07,Crawford,Indiana,18025,26,1 +2020-06-08,Crawford,Indiana,18025,28,1 +2020-06-09,Crawford,Indiana,18025,28,1 +2020-06-10,Crawford,Indiana,18025,28,1 +2020-06-11,Crawford,Indiana,18025,28,1 +2020-06-12,Crawford,Indiana,18025,28,1 +2020-06-13,Crawford,Indiana,18025,28,1 +2020-06-14,Crawford,Indiana,18025,28,1 +2020-06-15,Crawford,Indiana,18025,28,1 +2020-06-16,Crawford,Indiana,18025,28,1 +2020-06-17,Crawford,Indiana,18025,28,1 +2020-06-18,Crawford,Indiana,18025,28,1 +2020-06-19,Crawford,Indiana,18025,28,1 +2020-06-20,Crawford,Indiana,18025,28,1 +2020-06-21,Crawford,Indiana,18025,28,1 +2020-06-22,Crawford,Indiana,18025,28,1 +2020-06-23,Crawford,Indiana,18025,28,1 +2020-06-24,Crawford,Indiana,18025,28,1 +2020-06-25,Crawford,Indiana,18025,28,1 +2020-06-26,Crawford,Indiana,18025,28,1 +2020-06-27,Crawford,Indiana,18025,28,1 +2020-06-28,Crawford,Indiana,18025,29,1 +2020-06-29,Crawford,Indiana,18025,29,1 +2020-06-30,Crawford,Indiana,18025,30,1 +2020-07-01,Crawford,Indiana,18025,30,1 +2020-07-02,Crawford,Indiana,18025,30,1 +2020-07-03,Crawford,Indiana,18025,30,1 +2020-07-04,Crawford,Indiana,18025,31,1 +2020-07-05,Crawford,Indiana,18025,33,1 +2020-07-06,Crawford,Indiana,18025,33,1 +2020-07-07,Crawford,Indiana,18025,33,1 +2020-07-08,Crawford,Indiana,18025,33,1 +2020-07-09,Crawford,Indiana,18025,33,1 +2020-04-05,Daviess,Indiana,18027,2,0 +2020-04-06,Daviess,Indiana,18027,2,0 +2020-04-07,Daviess,Indiana,18027,4,0 +2020-04-08,Daviess,Indiana,18027,5,1 +2020-04-09,Daviess,Indiana,18027,8,1 +2020-04-10,Daviess,Indiana,18027,9,1 +2020-04-11,Daviess,Indiana,18027,9,1 +2020-04-12,Daviess,Indiana,18027,10,1 +2020-04-13,Daviess,Indiana,18027,10,1 +2020-04-14,Daviess,Indiana,18027,12,1 +2020-04-15,Daviess,Indiana,18027,21,1 +2020-04-16,Daviess,Indiana,18027,24,1 +2020-04-17,Daviess,Indiana,18027,27,1 +2020-04-18,Daviess,Indiana,18027,29,2 +2020-04-19,Daviess,Indiana,18027,35,4 +2020-04-20,Daviess,Indiana,18027,35,4 +2020-04-21,Daviess,Indiana,18027,39,6 +2020-04-22,Daviess,Indiana,18027,39,7 +2020-04-23,Daviess,Indiana,18027,39,8 +2020-04-24,Daviess,Indiana,18027,43,9 +2020-04-25,Daviess,Indiana,18027,44,10 +2020-04-26,Daviess,Indiana,18027,45,11 +2020-04-27,Daviess,Indiana,18027,45,9 +2020-04-28,Daviess,Indiana,18027,47,12 +2020-04-29,Daviess,Indiana,18027,49,13 +2020-04-30,Daviess,Indiana,18027,49,13 +2020-05-01,Daviess,Indiana,18027,49,15 +2020-05-02,Daviess,Indiana,18027,52,16 +2020-05-03,Daviess,Indiana,18027,53,16 +2020-05-04,Daviess,Indiana,18027,54,17 +2020-05-05,Daviess,Indiana,18027,54,17 +2020-05-06,Daviess,Indiana,18027,54,17 +2020-05-07,Daviess,Indiana,18027,56,17 +2020-05-08,Daviess,Indiana,18027,56,17 +2020-05-09,Daviess,Indiana,18027,56,17 +2020-05-10,Daviess,Indiana,18027,56,17 +2020-05-11,Daviess,Indiana,18027,56,17 +2020-05-12,Daviess,Indiana,18027,57,17 +2020-05-13,Daviess,Indiana,18027,58,17 +2020-05-14,Daviess,Indiana,18027,59,17 +2020-05-15,Daviess,Indiana,18027,61,17 +2020-05-16,Daviess,Indiana,18027,63,17 +2020-05-17,Daviess,Indiana,18027,66,17 +2020-05-18,Daviess,Indiana,18027,73,17 +2020-05-19,Daviess,Indiana,18027,73,17 +2020-05-20,Daviess,Indiana,18027,73,17 +2020-05-21,Daviess,Indiana,18027,75,18 +2020-05-22,Daviess,Indiana,18027,75,18 +2020-05-23,Daviess,Indiana,18027,83,18 +2020-05-24,Daviess,Indiana,18027,83,18 +2020-05-25,Daviess,Indiana,18027,84,18 +2020-05-26,Daviess,Indiana,18027,84,18 +2020-05-27,Daviess,Indiana,18027,86,18 +2020-05-28,Daviess,Indiana,18027,86,18 +2020-05-29,Daviess,Indiana,18027,87,18 +2020-05-30,Daviess,Indiana,18027,87,18 +2020-05-31,Daviess,Indiana,18027,90,18 +2020-06-01,Daviess,Indiana,18027,94,18 +2020-06-02,Daviess,Indiana,18027,96,18 +2020-06-03,Daviess,Indiana,18027,97,18 +2020-06-04,Daviess,Indiana,18027,101,18 +2020-06-05,Daviess,Indiana,18027,106,18 +2020-06-06,Daviess,Indiana,18027,109,18 +2020-06-07,Daviess,Indiana,18027,109,18 +2020-06-08,Daviess,Indiana,18027,112,18 +2020-06-09,Daviess,Indiana,18027,113,18 +2020-06-10,Daviess,Indiana,18027,115,18 +2020-06-11,Daviess,Indiana,18027,118,18 +2020-06-12,Daviess,Indiana,18027,119,18 +2020-06-13,Daviess,Indiana,18027,119,18 +2020-06-14,Daviess,Indiana,18027,123,18 +2020-06-15,Daviess,Indiana,18027,125,18 +2020-06-16,Daviess,Indiana,18027,128,18 +2020-06-17,Daviess,Indiana,18027,130,18 +2020-06-18,Daviess,Indiana,18027,129,18 +2020-06-19,Daviess,Indiana,18027,131,18 +2020-06-20,Daviess,Indiana,18027,132,18 +2020-06-21,Daviess,Indiana,18027,134,18 +2020-06-22,Daviess,Indiana,18027,134,18 +2020-06-23,Daviess,Indiana,18027,134,18 +2020-06-24,Daviess,Indiana,18027,134,18 +2020-06-25,Daviess,Indiana,18027,134,18 +2020-06-26,Daviess,Indiana,18027,134,18 +2020-06-27,Daviess,Indiana,18027,135,18 +2020-06-28,Daviess,Indiana,18027,136,18 +2020-06-29,Daviess,Indiana,18027,137,18 +2020-06-30,Daviess,Indiana,18027,140,18 +2020-07-01,Daviess,Indiana,18027,141,18 +2020-07-02,Daviess,Indiana,18027,141,18 +2020-07-03,Daviess,Indiana,18027,143,18 +2020-07-04,Daviess,Indiana,18027,144,18 +2020-07-05,Daviess,Indiana,18027,145,19 +2020-07-06,Daviess,Indiana,18027,145,19 +2020-07-07,Daviess,Indiana,18027,149,19 +2020-07-08,Daviess,Indiana,18027,150,19 +2020-07-09,Daviess,Indiana,18027,152,19 +2020-03-24,Dearborn,Indiana,18029,2,0 +2020-03-25,Dearborn,Indiana,18029,2,0 +2020-03-26,Dearborn,Indiana,18029,3,0 +2020-03-27,Dearborn,Indiana,18029,4,1 +2020-03-28,Dearborn,Indiana,18029,8,1 +2020-03-29,Dearborn,Indiana,18029,10,1 +2020-03-30,Dearborn,Indiana,18029,10,1 +2020-03-31,Dearborn,Indiana,18029,14,1 +2020-04-01,Dearborn,Indiana,18029,17,1 +2020-04-02,Dearborn,Indiana,18029,22,1 +2020-04-03,Dearborn,Indiana,18029,25,1 +2020-04-04,Dearborn,Indiana,18029,30,1 +2020-04-05,Dearborn,Indiana,18029,33,1 +2020-04-06,Dearborn,Indiana,18029,38,1 +2020-04-07,Dearborn,Indiana,18029,41,1 +2020-04-08,Dearborn,Indiana,18029,47,2 +2020-04-09,Dearborn,Indiana,18029,52,2 +2020-04-10,Dearborn,Indiana,18029,59,3 +2020-04-11,Dearborn,Indiana,18029,59,3 +2020-04-12,Dearborn,Indiana,18029,60,3 +2020-04-13,Dearborn,Indiana,18029,60,3 +2020-04-14,Dearborn,Indiana,18029,60,4 +2020-04-15,Dearborn,Indiana,18029,61,4 +2020-04-16,Dearborn,Indiana,18029,61,4 +2020-04-17,Dearborn,Indiana,18029,63,5 +2020-04-18,Dearborn,Indiana,18029,65,5 +2020-04-19,Dearborn,Indiana,18029,68,5 +2020-04-20,Dearborn,Indiana,18029,68,5 +2020-04-21,Dearborn,Indiana,18029,70,5 +2020-04-22,Dearborn,Indiana,18029,72,5 +2020-04-23,Dearborn,Indiana,18029,75,5 +2020-04-24,Dearborn,Indiana,18029,77,5 +2020-04-25,Dearborn,Indiana,18029,84,5 +2020-04-26,Dearborn,Indiana,18029,84,5 +2020-04-27,Dearborn,Indiana,18029,85,6 +2020-04-28,Dearborn,Indiana,18029,90,6 +2020-04-29,Dearborn,Indiana,18029,103,6 +2020-04-30,Dearborn,Indiana,18029,104,6 +2020-05-01,Dearborn,Indiana,18029,117,6 +2020-05-02,Dearborn,Indiana,18029,119,8 +2020-05-03,Dearborn,Indiana,18029,135,9 +2020-05-04,Dearborn,Indiana,18029,137,10 +2020-05-05,Dearborn,Indiana,18029,138,11 +2020-05-06,Dearborn,Indiana,18029,140,13 +2020-05-07,Dearborn,Indiana,18029,145,13 +2020-05-08,Dearborn,Indiana,18029,146,13 +2020-05-09,Dearborn,Indiana,18029,148,13 +2020-05-10,Dearborn,Indiana,18029,150,13 +2020-05-11,Dearborn,Indiana,18029,151,13 +2020-05-12,Dearborn,Indiana,18029,154,17 +2020-05-13,Dearborn,Indiana,18029,154,17 +2020-05-14,Dearborn,Indiana,18029,154,17 +2020-05-15,Dearborn,Indiana,18029,157,18 +2020-05-16,Dearborn,Indiana,18029,157,18 +2020-05-17,Dearborn,Indiana,18029,158,19 +2020-05-18,Dearborn,Indiana,18029,158,19 +2020-05-19,Dearborn,Indiana,18029,158,19 +2020-05-20,Dearborn,Indiana,18029,158,21 +2020-05-21,Dearborn,Indiana,18029,160,21 +2020-05-22,Dearborn,Indiana,18029,161,21 +2020-05-23,Dearborn,Indiana,18029,162,21 +2020-05-24,Dearborn,Indiana,18029,162,21 +2020-05-25,Dearborn,Indiana,18029,162,21 +2020-05-26,Dearborn,Indiana,18029,164,21 +2020-05-27,Dearborn,Indiana,18029,164,21 +2020-05-28,Dearborn,Indiana,18029,166,22 +2020-05-29,Dearborn,Indiana,18029,167,22 +2020-05-30,Dearborn,Indiana,18029,169,22 +2020-05-31,Dearborn,Indiana,18029,169,22 +2020-06-01,Dearborn,Indiana,18029,169,22 +2020-06-02,Dearborn,Indiana,18029,171,22 +2020-06-03,Dearborn,Indiana,18029,172,22 +2020-06-04,Dearborn,Indiana,18029,172,23 +2020-06-05,Dearborn,Indiana,18029,173,23 +2020-06-06,Dearborn,Indiana,18029,174,23 +2020-06-07,Dearborn,Indiana,18029,176,23 +2020-06-08,Dearborn,Indiana,18029,176,23 +2020-06-09,Dearborn,Indiana,18029,176,23 +2020-06-10,Dearborn,Indiana,18029,176,23 +2020-06-11,Dearborn,Indiana,18029,178,23 +2020-06-12,Dearborn,Indiana,18029,180,23 +2020-06-13,Dearborn,Indiana,18029,180,23 +2020-06-14,Dearborn,Indiana,18029,180,23 +2020-06-15,Dearborn,Indiana,18029,180,23 +2020-06-16,Dearborn,Indiana,18029,181,23 +2020-06-17,Dearborn,Indiana,18029,181,23 +2020-06-18,Dearborn,Indiana,18029,182,23 +2020-06-19,Dearborn,Indiana,18029,185,23 +2020-06-20,Dearborn,Indiana,18029,187,23 +2020-06-21,Dearborn,Indiana,18029,190,23 +2020-06-22,Dearborn,Indiana,18029,190,23 +2020-06-23,Dearborn,Indiana,18029,191,23 +2020-06-24,Dearborn,Indiana,18029,191,24 +2020-06-25,Dearborn,Indiana,18029,194,23 +2020-06-26,Dearborn,Indiana,18029,196,23 +2020-06-27,Dearborn,Indiana,18029,198,23 +2020-06-28,Dearborn,Indiana,18029,199,23 +2020-06-29,Dearborn,Indiana,18029,200,23 +2020-06-30,Dearborn,Indiana,18029,204,23 +2020-07-01,Dearborn,Indiana,18029,205,23 +2020-07-02,Dearborn,Indiana,18029,207,23 +2020-07-03,Dearborn,Indiana,18029,228,24 +2020-07-04,Dearborn,Indiana,18029,229,24 +2020-07-05,Dearborn,Indiana,18029,237,24 +2020-07-06,Dearborn,Indiana,18029,239,24 +2020-07-07,Dearborn,Indiana,18029,234,24 +2020-07-08,Dearborn,Indiana,18029,239,24 +2020-07-09,Dearborn,Indiana,18029,248,24 +2020-03-24,Decatur,Indiana,18031,6,0 +2020-03-25,Decatur,Indiana,18031,7,0 +2020-03-26,Decatur,Indiana,18031,13,0 +2020-03-27,Decatur,Indiana,18031,26,0 +2020-03-28,Decatur,Indiana,18031,30,0 +2020-03-29,Decatur,Indiana,18031,40,0 +2020-03-30,Decatur,Indiana,18031,42,0 +2020-03-31,Decatur,Indiana,18031,47,1 +2020-04-01,Decatur,Indiana,18031,49,2 +2020-04-02,Decatur,Indiana,18031,60,4 +2020-04-03,Decatur,Indiana,18031,71,5 +2020-04-04,Decatur,Indiana,18031,80,5 +2020-04-05,Decatur,Indiana,18031,81,5 +2020-04-06,Decatur,Indiana,18031,91,6 +2020-04-07,Decatur,Indiana,18031,92,8 +2020-04-08,Decatur,Indiana,18031,101,8 +2020-04-09,Decatur,Indiana,18031,109,8 +2020-04-10,Decatur,Indiana,18031,120,10 +2020-04-11,Decatur,Indiana,18031,125,12 +2020-04-12,Decatur,Indiana,18031,129,12 +2020-04-13,Decatur,Indiana,18031,131,12 +2020-04-14,Decatur,Indiana,18031,156,13 +2020-04-15,Decatur,Indiana,18031,158,16 +2020-04-16,Decatur,Indiana,18031,163,17 +2020-04-17,Decatur,Indiana,18031,168,20 +2020-04-18,Decatur,Indiana,18031,169,20 +2020-04-19,Decatur,Indiana,18031,171,21 +2020-04-20,Decatur,Indiana,18031,171,21 +2020-04-21,Decatur,Indiana,18031,174,23 +2020-04-22,Decatur,Indiana,18031,181,24 +2020-04-23,Decatur,Indiana,18031,186,25 +2020-04-24,Decatur,Indiana,18031,195,27 +2020-04-25,Decatur,Indiana,18031,198,29 +2020-04-26,Decatur,Indiana,18031,198,30 +2020-04-27,Decatur,Indiana,18031,198,30 +2020-04-28,Decatur,Indiana,18031,199,30 +2020-04-29,Decatur,Indiana,18031,205,30 +2020-04-30,Decatur,Indiana,18031,206,31 +2020-05-01,Decatur,Indiana,18031,206,31 +2020-05-02,Decatur,Indiana,18031,208,31 +2020-05-03,Decatur,Indiana,18031,209,31 +2020-05-04,Decatur,Indiana,18031,209,31 +2020-05-05,Decatur,Indiana,18031,213,31 +2020-05-06,Decatur,Indiana,18031,214,31 +2020-05-07,Decatur,Indiana,18031,216,31 +2020-05-08,Decatur,Indiana,18031,218,31 +2020-05-09,Decatur,Indiana,18031,220,31 +2020-05-10,Decatur,Indiana,18031,220,31 +2020-05-11,Decatur,Indiana,18031,223,32 +2020-05-12,Decatur,Indiana,18031,224,32 +2020-05-13,Decatur,Indiana,18031,224,33 +2020-05-14,Decatur,Indiana,18031,225,34 +2020-05-15,Decatur,Indiana,18031,225,34 +2020-05-16,Decatur,Indiana,18031,226,34 +2020-05-17,Decatur,Indiana,18031,229,34 +2020-05-18,Decatur,Indiana,18031,229,34 +2020-05-19,Decatur,Indiana,18031,230,34 +2020-05-20,Decatur,Indiana,18031,230,34 +2020-05-21,Decatur,Indiana,18031,230,34 +2020-05-22,Decatur,Indiana,18031,230,34 +2020-05-23,Decatur,Indiana,18031,231,34 +2020-05-24,Decatur,Indiana,18031,232,34 +2020-05-25,Decatur,Indiana,18031,234,34 +2020-05-26,Decatur,Indiana,18031,234,34 +2020-05-27,Decatur,Indiana,18031,235,34 +2020-05-28,Decatur,Indiana,18031,236,34 +2020-05-29,Decatur,Indiana,18031,237,34 +2020-05-30,Decatur,Indiana,18031,237,34 +2020-05-31,Decatur,Indiana,18031,237,34 +2020-06-01,Decatur,Indiana,18031,237,34 +2020-06-02,Decatur,Indiana,18031,239,34 +2020-06-03,Decatur,Indiana,18031,244,34 +2020-06-04,Decatur,Indiana,18031,245,34 +2020-06-05,Decatur,Indiana,18031,245,35 +2020-06-06,Decatur,Indiana,18031,245,35 +2020-06-07,Decatur,Indiana,18031,245,35 +2020-06-08,Decatur,Indiana,18031,248,35 +2020-06-09,Decatur,Indiana,18031,250,35 +2020-06-10,Decatur,Indiana,18031,250,35 +2020-06-11,Decatur,Indiana,18031,250,35 +2020-06-12,Decatur,Indiana,18031,250,35 +2020-06-13,Decatur,Indiana,18031,251,35 +2020-06-14,Decatur,Indiana,18031,252,35 +2020-06-15,Decatur,Indiana,18031,252,35 +2020-06-16,Decatur,Indiana,18031,252,35 +2020-06-17,Decatur,Indiana,18031,253,35 +2020-06-18,Decatur,Indiana,18031,253,35 +2020-06-19,Decatur,Indiana,18031,253,35 +2020-06-20,Decatur,Indiana,18031,254,35 +2020-06-21,Decatur,Indiana,18031,254,35 +2020-06-22,Decatur,Indiana,18031,254,35 +2020-06-23,Decatur,Indiana,18031,254,35 +2020-06-24,Decatur,Indiana,18031,256,35 +2020-06-25,Decatur,Indiana,18031,256,35 +2020-06-26,Decatur,Indiana,18031,256,35 +2020-06-27,Decatur,Indiana,18031,256,35 +2020-06-28,Decatur,Indiana,18031,256,35 +2020-06-29,Decatur,Indiana,18031,257,35 +2020-06-30,Decatur,Indiana,18031,258,35 +2020-07-01,Decatur,Indiana,18031,262,35 +2020-07-02,Decatur,Indiana,18031,263,35 +2020-07-03,Decatur,Indiana,18031,265,35 +2020-07-04,Decatur,Indiana,18031,266,35 +2020-07-05,Decatur,Indiana,18031,267,35 +2020-07-06,Decatur,Indiana,18031,267,35 +2020-07-07,Decatur,Indiana,18031,272,35 +2020-07-08,Decatur,Indiana,18031,271,35 +2020-07-09,Decatur,Indiana,18031,272,35 +2020-03-25,DeKalb,Indiana,18033,1,0 +2020-03-26,DeKalb,Indiana,18033,1,0 +2020-03-27,DeKalb,Indiana,18033,1,0 +2020-03-28,DeKalb,Indiana,18033,1,0 +2020-03-29,DeKalb,Indiana,18033,1,0 +2020-03-30,DeKalb,Indiana,18033,1,0 +2020-03-31,DeKalb,Indiana,18033,1,0 +2020-04-01,DeKalb,Indiana,18033,2,0 +2020-04-02,DeKalb,Indiana,18033,2,0 +2020-04-03,DeKalb,Indiana,18033,3,0 +2020-04-04,DeKalb,Indiana,18033,3,0 +2020-04-05,DeKalb,Indiana,18033,4,0 +2020-04-06,DeKalb,Indiana,18033,4,0 +2020-04-07,DeKalb,Indiana,18033,4,0 +2020-04-08,DeKalb,Indiana,18033,4,0 +2020-04-09,DeKalb,Indiana,18033,5,0 +2020-04-10,DeKalb,Indiana,18033,5,0 +2020-04-11,DeKalb,Indiana,18033,5,0 +2020-04-12,DeKalb,Indiana,18033,5,0 +2020-04-13,DeKalb,Indiana,18033,6,0 +2020-04-14,DeKalb,Indiana,18033,6,0 +2020-04-15,DeKalb,Indiana,18033,6,1 +2020-04-16,DeKalb,Indiana,18033,10,1 +2020-04-17,DeKalb,Indiana,18033,11,1 +2020-04-18,DeKalb,Indiana,18033,13,1 +2020-04-19,DeKalb,Indiana,18033,13,1 +2020-04-20,DeKalb,Indiana,18033,14,2 +2020-04-21,DeKalb,Indiana,18033,14,2 +2020-04-22,DeKalb,Indiana,18033,14,2 +2020-04-23,DeKalb,Indiana,18033,15,2 +2020-04-24,DeKalb,Indiana,18033,15,2 +2020-04-25,DeKalb,Indiana,18033,16,2 +2020-04-26,DeKalb,Indiana,18033,16,2 +2020-04-27,DeKalb,Indiana,18033,16,2 +2020-04-28,DeKalb,Indiana,18033,17,2 +2020-04-29,DeKalb,Indiana,18033,19,2 +2020-04-30,DeKalb,Indiana,18033,21,2 +2020-05-01,DeKalb,Indiana,18033,21,2 +2020-05-02,DeKalb,Indiana,18033,22,2 +2020-05-03,DeKalb,Indiana,18033,23,2 +2020-05-04,DeKalb,Indiana,18033,23,2 +2020-05-05,DeKalb,Indiana,18033,23,2 +2020-05-06,DeKalb,Indiana,18033,24,2 +2020-05-07,DeKalb,Indiana,18033,24,2 +2020-05-08,DeKalb,Indiana,18033,24,2 +2020-05-09,DeKalb,Indiana,18033,24,2 +2020-05-10,DeKalb,Indiana,18033,24,2 +2020-05-11,DeKalb,Indiana,18033,24,2 +2020-05-12,DeKalb,Indiana,18033,25,2 +2020-05-13,DeKalb,Indiana,18033,25,2 +2020-05-14,DeKalb,Indiana,18033,26,2 +2020-05-15,DeKalb,Indiana,18033,26,2 +2020-05-16,DeKalb,Indiana,18033,26,2 +2020-05-17,DeKalb,Indiana,18033,27,2 +2020-05-18,DeKalb,Indiana,18033,26,2 +2020-05-19,DeKalb,Indiana,18033,27,2 +2020-05-20,DeKalb,Indiana,18033,27,2 +2020-05-21,DeKalb,Indiana,18033,27,2 +2020-05-22,DeKalb,Indiana,18033,27,2 +2020-05-23,DeKalb,Indiana,18033,29,2 +2020-05-24,DeKalb,Indiana,18033,29,2 +2020-05-25,DeKalb,Indiana,18033,30,2 +2020-05-26,DeKalb,Indiana,18033,32,2 +2020-05-27,DeKalb,Indiana,18033,34,2 +2020-05-28,DeKalb,Indiana,18033,34,2 +2020-05-29,DeKalb,Indiana,18033,34,2 +2020-05-30,DeKalb,Indiana,18033,38,2 +2020-05-31,DeKalb,Indiana,18033,38,2 +2020-06-01,DeKalb,Indiana,18033,38,2 +2020-06-02,DeKalb,Indiana,18033,38,2 +2020-06-03,DeKalb,Indiana,18033,44,2 +2020-06-04,DeKalb,Indiana,18033,45,2 +2020-06-05,DeKalb,Indiana,18033,46,2 +2020-06-06,DeKalb,Indiana,18033,56,2 +2020-06-07,DeKalb,Indiana,18033,68,2 +2020-06-08,DeKalb,Indiana,18033,70,2 +2020-06-09,DeKalb,Indiana,18033,80,2 +2020-06-10,DeKalb,Indiana,18033,85,2 +2020-06-11,DeKalb,Indiana,18033,95,3 +2020-06-12,DeKalb,Indiana,18033,96,3 +2020-06-13,DeKalb,Indiana,18033,104,3 +2020-06-14,DeKalb,Indiana,18033,111,3 +2020-06-15,DeKalb,Indiana,18033,122,4 +2020-06-16,DeKalb,Indiana,18033,124,4 +2020-06-17,DeKalb,Indiana,18033,124,4 +2020-06-18,DeKalb,Indiana,18033,130,4 +2020-06-19,DeKalb,Indiana,18033,134,4 +2020-06-20,DeKalb,Indiana,18033,140,4 +2020-06-21,DeKalb,Indiana,18033,140,4 +2020-06-22,DeKalb,Indiana,18033,140,5 +2020-06-23,DeKalb,Indiana,18033,140,5 +2020-06-24,DeKalb,Indiana,18033,141,5 +2020-06-25,DeKalb,Indiana,18033,147,5 +2020-06-26,DeKalb,Indiana,18033,149,5 +2020-06-27,DeKalb,Indiana,18033,152,5 +2020-06-28,DeKalb,Indiana,18033,156,5 +2020-06-29,DeKalb,Indiana,18033,157,5 +2020-06-30,DeKalb,Indiana,18033,158,5 +2020-07-01,DeKalb,Indiana,18033,160,5 +2020-07-02,DeKalb,Indiana,18033,160,5 +2020-07-03,DeKalb,Indiana,18033,160,5 +2020-07-04,DeKalb,Indiana,18033,161,5 +2020-07-05,DeKalb,Indiana,18033,163,5 +2020-07-06,DeKalb,Indiana,18033,163,5 +2020-07-07,DeKalb,Indiana,18033,164,5 +2020-07-08,DeKalb,Indiana,18033,164,5 +2020-07-09,DeKalb,Indiana,18033,164,5 +2020-03-21,Delaware,Indiana,18035,1,1 +2020-03-22,Delaware,Indiana,18035,2,1 +2020-03-23,Delaware,Indiana,18035,3,1 +2020-03-24,Delaware,Indiana,18035,4,1 +2020-03-25,Delaware,Indiana,18035,7,1 +2020-03-26,Delaware,Indiana,18035,7,1 +2020-03-27,Delaware,Indiana,18035,8,1 +2020-03-28,Delaware,Indiana,18035,8,1 +2020-03-29,Delaware,Indiana,18035,14,1 +2020-03-30,Delaware,Indiana,18035,15,1 +2020-03-31,Delaware,Indiana,18035,18,1 +2020-04-01,Delaware,Indiana,18035,22,1 +2020-04-02,Delaware,Indiana,18035,25,1 +2020-04-03,Delaware,Indiana,18035,30,1 +2020-04-04,Delaware,Indiana,18035,33,1 +2020-04-05,Delaware,Indiana,18035,37,1 +2020-04-06,Delaware,Indiana,18035,40,1 +2020-04-07,Delaware,Indiana,18035,40,1 +2020-04-08,Delaware,Indiana,18035,46,1 +2020-04-09,Delaware,Indiana,18035,49,1 +2020-04-10,Delaware,Indiana,18035,56,1 +2020-04-11,Delaware,Indiana,18035,63,2 +2020-04-12,Delaware,Indiana,18035,66,2 +2020-04-13,Delaware,Indiana,18035,69,2 +2020-04-14,Delaware,Indiana,18035,72,3 +2020-04-15,Delaware,Indiana,18035,77,4 +2020-04-16,Delaware,Indiana,18035,85,5 +2020-04-17,Delaware,Indiana,18035,91,5 +2020-04-18,Delaware,Indiana,18035,92,5 +2020-04-19,Delaware,Indiana,18035,110,6 +2020-04-20,Delaware,Indiana,18035,114,7 +2020-04-21,Delaware,Indiana,18035,116,9 +2020-04-22,Delaware,Indiana,18035,121,9 +2020-04-23,Delaware,Indiana,18035,126,10 +2020-04-24,Delaware,Indiana,18035,132,11 +2020-04-25,Delaware,Indiana,18035,144,11 +2020-04-26,Delaware,Indiana,18035,146,11 +2020-04-27,Delaware,Indiana,18035,147,13 +2020-04-28,Delaware,Indiana,18035,152,13 +2020-04-29,Delaware,Indiana,18035,156,13 +2020-04-30,Delaware,Indiana,18035,176,15 +2020-05-01,Delaware,Indiana,18035,182,15 +2020-05-02,Delaware,Indiana,18035,198,15 +2020-05-03,Delaware,Indiana,18035,200,15 +2020-05-04,Delaware,Indiana,18035,200,15 +2020-05-05,Delaware,Indiana,18035,209,15 +2020-05-06,Delaware,Indiana,18035,212,15 +2020-05-07,Delaware,Indiana,18035,213,15 +2020-05-08,Delaware,Indiana,18035,214,15 +2020-05-09,Delaware,Indiana,18035,219,15 +2020-05-10,Delaware,Indiana,18035,225,15 +2020-05-11,Delaware,Indiana,18035,229,19 +2020-05-12,Delaware,Indiana,18035,228,19 +2020-05-13,Delaware,Indiana,18035,230,19 +2020-05-14,Delaware,Indiana,18035,235,19 +2020-05-15,Delaware,Indiana,18035,254,20 +2020-05-16,Delaware,Indiana,18035,261,20 +2020-05-17,Delaware,Indiana,18035,277,22 +2020-05-18,Delaware,Indiana,18035,296,23 +2020-05-19,Delaware,Indiana,18035,297,23 +2020-05-20,Delaware,Indiana,18035,297,24 +2020-05-21,Delaware,Indiana,18035,319,25 +2020-05-22,Delaware,Indiana,18035,328,26 +2020-05-23,Delaware,Indiana,18035,340,27 +2020-05-24,Delaware,Indiana,18035,349,33 +2020-05-25,Delaware,Indiana,18035,354,34 +2020-05-26,Delaware,Indiana,18035,357,35 +2020-05-27,Delaware,Indiana,18035,360,37 +2020-05-28,Delaware,Indiana,18035,377,37 +2020-05-29,Delaware,Indiana,18035,378,37 +2020-05-30,Delaware,Indiana,18035,386,37 +2020-05-31,Delaware,Indiana,18035,386,38 +2020-06-01,Delaware,Indiana,18035,386,40 +2020-06-02,Delaware,Indiana,18035,386,41 +2020-06-03,Delaware,Indiana,18035,388,41 +2020-06-04,Delaware,Indiana,18035,390,41 +2020-06-05,Delaware,Indiana,18035,398,42 +2020-06-06,Delaware,Indiana,18035,400,42 +2020-06-07,Delaware,Indiana,18035,401,42 +2020-06-08,Delaware,Indiana,18035,401,42 +2020-06-09,Delaware,Indiana,18035,402,43 +2020-06-10,Delaware,Indiana,18035,401,44 +2020-06-11,Delaware,Indiana,18035,401,44 +2020-06-12,Delaware,Indiana,18035,401,44 +2020-06-13,Delaware,Indiana,18035,403,45 +2020-06-14,Delaware,Indiana,18035,404,45 +2020-06-15,Delaware,Indiana,18035,404,45 +2020-06-16,Delaware,Indiana,18035,404,45 +2020-06-17,Delaware,Indiana,18035,405,45 +2020-06-18,Delaware,Indiana,18035,407,45 +2020-06-19,Delaware,Indiana,18035,409,46 +2020-06-20,Delaware,Indiana,18035,410,47 +2020-06-21,Delaware,Indiana,18035,409,47 +2020-06-22,Delaware,Indiana,18035,409,48 +2020-06-23,Delaware,Indiana,18035,412,48 +2020-06-24,Delaware,Indiana,18035,414,48 +2020-06-25,Delaware,Indiana,18035,415,48 +2020-06-26,Delaware,Indiana,18035,416,48 +2020-06-27,Delaware,Indiana,18035,421,49 +2020-06-28,Delaware,Indiana,18035,424,49 +2020-06-29,Delaware,Indiana,18035,425,49 +2020-06-30,Delaware,Indiana,18035,427,49 +2020-07-01,Delaware,Indiana,18035,428,49 +2020-07-02,Delaware,Indiana,18035,431,50 +2020-07-03,Delaware,Indiana,18035,431,50 +2020-07-04,Delaware,Indiana,18035,433,51 +2020-07-05,Delaware,Indiana,18035,444,51 +2020-07-06,Delaware,Indiana,18035,447,51 +2020-07-07,Delaware,Indiana,18035,452,51 +2020-07-08,Delaware,Indiana,18035,454,53 +2020-07-09,Delaware,Indiana,18035,462,53 +2020-03-23,Dubois,Indiana,18037,1,0 +2020-03-24,Dubois,Indiana,18037,1,0 +2020-03-25,Dubois,Indiana,18037,1,0 +2020-03-26,Dubois,Indiana,18037,1,0 +2020-03-27,Dubois,Indiana,18037,1,0 +2020-03-28,Dubois,Indiana,18037,1,0 +2020-03-29,Dubois,Indiana,18037,2,0 +2020-03-30,Dubois,Indiana,18037,2,0 +2020-03-31,Dubois,Indiana,18037,3,0 +2020-04-01,Dubois,Indiana,18037,3,0 +2020-04-02,Dubois,Indiana,18037,3,0 +2020-04-03,Dubois,Indiana,18037,3,0 +2020-04-04,Dubois,Indiana,18037,4,0 +2020-04-05,Dubois,Indiana,18037,6,0 +2020-04-06,Dubois,Indiana,18037,7,0 +2020-04-07,Dubois,Indiana,18037,7,0 +2020-04-08,Dubois,Indiana,18037,9,0 +2020-04-09,Dubois,Indiana,18037,10,0 +2020-04-10,Dubois,Indiana,18037,10,0 +2020-04-11,Dubois,Indiana,18037,11,0 +2020-04-12,Dubois,Indiana,18037,13,0 +2020-04-13,Dubois,Indiana,18037,13,0 +2020-04-14,Dubois,Indiana,18037,13,0 +2020-04-15,Dubois,Indiana,18037,14,0 +2020-04-16,Dubois,Indiana,18037,14,0 +2020-04-17,Dubois,Indiana,18037,14,0 +2020-04-18,Dubois,Indiana,18037,14,0 +2020-04-19,Dubois,Indiana,18037,16,0 +2020-04-20,Dubois,Indiana,18037,16,0 +2020-04-21,Dubois,Indiana,18037,16,0 +2020-04-22,Dubois,Indiana,18037,16,0 +2020-04-23,Dubois,Indiana,18037,16,0 +2020-04-24,Dubois,Indiana,18037,17,0 +2020-04-25,Dubois,Indiana,18037,17,0 +2020-04-26,Dubois,Indiana,18037,17,0 +2020-04-27,Dubois,Indiana,18037,18,0 +2020-04-28,Dubois,Indiana,18037,19,0 +2020-04-29,Dubois,Indiana,18037,21,0 +2020-04-30,Dubois,Indiana,18037,23,0 +2020-05-01,Dubois,Indiana,18037,23,0 +2020-05-02,Dubois,Indiana,18037,24,0 +2020-05-03,Dubois,Indiana,18037,25,0 +2020-05-04,Dubois,Indiana,18037,25,0 +2020-05-05,Dubois,Indiana,18037,27,0 +2020-05-06,Dubois,Indiana,18037,30,0 +2020-05-07,Dubois,Indiana,18037,35,0 +2020-05-08,Dubois,Indiana,18037,38,0 +2020-05-09,Dubois,Indiana,18037,42,0 +2020-05-10,Dubois,Indiana,18037,45,0 +2020-05-11,Dubois,Indiana,18037,46,0 +2020-05-12,Dubois,Indiana,18037,59,1 +2020-05-13,Dubois,Indiana,18037,66,2 +2020-05-14,Dubois,Indiana,18037,69,2 +2020-05-15,Dubois,Indiana,18037,70,2 +2020-05-16,Dubois,Indiana,18037,85,2 +2020-05-17,Dubois,Indiana,18037,115,2 +2020-05-18,Dubois,Indiana,18037,161,2 +2020-05-19,Dubois,Indiana,18037,162,2 +2020-05-20,Dubois,Indiana,18037,162,2 +2020-05-21,Dubois,Indiana,18037,168,2 +2020-05-22,Dubois,Indiana,18037,171,2 +2020-05-23,Dubois,Indiana,18037,171,2 +2020-05-24,Dubois,Indiana,18037,178,2 +2020-05-25,Dubois,Indiana,18037,182,2 +2020-05-26,Dubois,Indiana,18037,185,2 +2020-05-27,Dubois,Indiana,18037,185,2 +2020-05-28,Dubois,Indiana,18037,190,3 +2020-05-29,Dubois,Indiana,18037,192,3 +2020-05-30,Dubois,Indiana,18037,199,3 +2020-05-31,Dubois,Indiana,18037,199,3 +2020-06-01,Dubois,Indiana,18037,199,3 +2020-06-02,Dubois,Indiana,18037,202,3 +2020-06-03,Dubois,Indiana,18037,205,3 +2020-06-04,Dubois,Indiana,18037,209,3 +2020-06-05,Dubois,Indiana,18037,211,3 +2020-06-06,Dubois,Indiana,18037,216,3 +2020-06-07,Dubois,Indiana,18037,228,4 +2020-06-08,Dubois,Indiana,18037,230,4 +2020-06-09,Dubois,Indiana,18037,231,4 +2020-06-10,Dubois,Indiana,18037,231,4 +2020-06-11,Dubois,Indiana,18037,233,4 +2020-06-12,Dubois,Indiana,18037,236,4 +2020-06-13,Dubois,Indiana,18037,238,4 +2020-06-14,Dubois,Indiana,18037,240,4 +2020-06-15,Dubois,Indiana,18037,241,4 +2020-06-16,Dubois,Indiana,18037,242,5 +2020-06-17,Dubois,Indiana,18037,243,5 +2020-06-18,Dubois,Indiana,18037,246,5 +2020-06-19,Dubois,Indiana,18037,249,6 +2020-06-20,Dubois,Indiana,18037,249,6 +2020-06-21,Dubois,Indiana,18037,251,6 +2020-06-22,Dubois,Indiana,18037,252,6 +2020-06-23,Dubois,Indiana,18037,251,6 +2020-06-24,Dubois,Indiana,18037,255,6 +2020-06-25,Dubois,Indiana,18037,255,6 +2020-06-26,Dubois,Indiana,18037,255,6 +2020-06-27,Dubois,Indiana,18037,256,6 +2020-06-28,Dubois,Indiana,18037,258,6 +2020-06-29,Dubois,Indiana,18037,258,6 +2020-06-30,Dubois,Indiana,18037,259,6 +2020-07-01,Dubois,Indiana,18037,260,6 +2020-07-02,Dubois,Indiana,18037,261,6 +2020-07-03,Dubois,Indiana,18037,264,6 +2020-07-04,Dubois,Indiana,18037,266,6 +2020-07-05,Dubois,Indiana,18037,273,6 +2020-07-06,Dubois,Indiana,18037,273,6 +2020-07-07,Dubois,Indiana,18037,283,6 +2020-07-08,Dubois,Indiana,18037,288,6 +2020-07-09,Dubois,Indiana,18037,290,6 +2020-03-21,Elkhart,Indiana,18039,1,0 +2020-03-22,Elkhart,Indiana,18039,1,0 +2020-03-23,Elkhart,Indiana,18039,4,0 +2020-03-24,Elkhart,Indiana,18039,4,0 +2020-03-25,Elkhart,Indiana,18039,5,0 +2020-03-26,Elkhart,Indiana,18039,7,0 +2020-03-27,Elkhart,Indiana,18039,9,0 +2020-03-28,Elkhart,Indiana,18039,11,0 +2020-03-29,Elkhart,Indiana,18039,12,0 +2020-03-30,Elkhart,Indiana,18039,12,0 +2020-03-31,Elkhart,Indiana,18039,20,1 +2020-04-01,Elkhart,Indiana,18039,23,2 +2020-04-02,Elkhart,Indiana,18039,27,3 +2020-04-03,Elkhart,Indiana,18039,29,3 +2020-04-04,Elkhart,Indiana,18039,31,3 +2020-04-05,Elkhart,Indiana,18039,35,3 +2020-04-06,Elkhart,Indiana,18039,36,3 +2020-04-07,Elkhart,Indiana,18039,43,3 +2020-04-08,Elkhart,Indiana,18039,46,3 +2020-04-09,Elkhart,Indiana,18039,56,3 +2020-04-10,Elkhart,Indiana,18039,61,3 +2020-04-11,Elkhart,Indiana,18039,71,3 +2020-04-12,Elkhart,Indiana,18039,83,3 +2020-04-13,Elkhart,Indiana,18039,89,3 +2020-04-14,Elkhart,Indiana,18039,100,3 +2020-04-15,Elkhart,Indiana,18039,105,3 +2020-04-16,Elkhart,Indiana,18039,123,3 +2020-04-17,Elkhart,Indiana,18039,130,3 +2020-04-18,Elkhart,Indiana,18039,148,3 +2020-04-19,Elkhart,Indiana,18039,152,3 +2020-04-20,Elkhart,Indiana,18039,164,3 +2020-04-21,Elkhart,Indiana,18039,179,3 +2020-04-22,Elkhart,Indiana,18039,185,3 +2020-04-23,Elkhart,Indiana,18039,196,4 +2020-04-24,Elkhart,Indiana,18039,211,4 +2020-04-25,Elkhart,Indiana,18039,238,4 +2020-04-26,Elkhart,Indiana,18039,245,4 +2020-04-27,Elkhart,Indiana,18039,247,5 +2020-04-28,Elkhart,Indiana,18039,269,7 +2020-04-29,Elkhart,Indiana,18039,281,7 +2020-04-30,Elkhart,Indiana,18039,287,7 +2020-05-01,Elkhart,Indiana,18039,296,9 +2020-05-02,Elkhart,Indiana,18039,298,9 +2020-05-03,Elkhart,Indiana,18039,314,12 +2020-05-04,Elkhart,Indiana,18039,324,13 +2020-05-05,Elkhart,Indiana,18039,345,13 +2020-05-06,Elkhart,Indiana,18039,364,16 +2020-05-07,Elkhart,Indiana,18039,390,16 +2020-05-08,Elkhart,Indiana,18039,413,16 +2020-05-09,Elkhart,Indiana,18039,439,18 +2020-05-10,Elkhart,Indiana,18039,487,18 +2020-05-11,Elkhart,Indiana,18039,497,18 +2020-05-12,Elkhart,Indiana,18039,528,21 +2020-05-13,Elkhart,Indiana,18039,552,21 +2020-05-14,Elkhart,Indiana,18039,592,22 +2020-05-15,Elkhart,Indiana,18039,612,22 +2020-05-16,Elkhart,Indiana,18039,641,23 +2020-05-17,Elkhart,Indiana,18039,671,23 +2020-05-18,Elkhart,Indiana,18039,690,23 +2020-05-19,Elkhart,Indiana,18039,738,25 +2020-05-20,Elkhart,Indiana,18039,782,27 +2020-05-21,Elkhart,Indiana,18039,849,28 +2020-05-22,Elkhart,Indiana,18039,908,28 +2020-05-23,Elkhart,Indiana,18039,943,28 +2020-05-24,Elkhart,Indiana,18039,996,28 +2020-05-25,Elkhart,Indiana,18039,1013,28 +2020-05-26,Elkhart,Indiana,18039,1063,30 +2020-05-27,Elkhart,Indiana,18039,1076,30 +2020-05-28,Elkhart,Indiana,18039,1107,30 +2020-05-29,Elkhart,Indiana,18039,1169,30 +2020-05-30,Elkhart,Indiana,18039,1268,30 +2020-05-31,Elkhart,Indiana,18039,1328,30 +2020-06-01,Elkhart,Indiana,18039,1328,30 +2020-06-02,Elkhart,Indiana,18039,1402,30 +2020-06-03,Elkhart,Indiana,18039,1456,31 +2020-06-04,Elkhart,Indiana,18039,1516,30 +2020-06-05,Elkhart,Indiana,18039,1611,30 +2020-06-06,Elkhart,Indiana,18039,1663,31 +2020-06-07,Elkhart,Indiana,18039,1743,31 +2020-06-08,Elkhart,Indiana,18039,1767,31 +2020-06-09,Elkhart,Indiana,18039,1826,31 +2020-06-10,Elkhart,Indiana,18039,1858,31 +2020-06-11,Elkhart,Indiana,18039,1902,32 +2020-06-12,Elkhart,Indiana,18039,1955,34 +2020-06-13,Elkhart,Indiana,18039,2075,34 +2020-06-14,Elkhart,Indiana,18039,2126,36 +2020-06-15,Elkhart,Indiana,18039,2213,36 +2020-06-16,Elkhart,Indiana,18039,2295,37 +2020-06-17,Elkhart,Indiana,18039,2330,37 +2020-06-18,Elkhart,Indiana,18039,2454,38 +2020-06-19,Elkhart,Indiana,18039,2532,41 +2020-06-20,Elkhart,Indiana,18039,2593,41 +2020-06-21,Elkhart,Indiana,18039,2658,41 +2020-06-22,Elkhart,Indiana,18039,2680,41 +2020-06-23,Elkhart,Indiana,18039,2721,42 +2020-06-24,Elkhart,Indiana,18039,2761,43 +2020-06-25,Elkhart,Indiana,18039,2862,44 +2020-06-26,Elkhart,Indiana,18039,2921,44 +2020-06-27,Elkhart,Indiana,18039,2988,45 +2020-06-28,Elkhart,Indiana,18039,3036,45 +2020-06-29,Elkhart,Indiana,18039,3063,45 +2020-06-30,Elkhart,Indiana,18039,3101,46 +2020-07-01,Elkhart,Indiana,18039,3146,47 +2020-07-02,Elkhart,Indiana,18039,3194,47 +2020-07-03,Elkhart,Indiana,18039,3225,47 +2020-07-04,Elkhart,Indiana,18039,3272,48 +2020-07-05,Elkhart,Indiana,18039,3346,50 +2020-07-06,Elkhart,Indiana,18039,3386,50 +2020-07-07,Elkhart,Indiana,18039,3405,55 +2020-07-08,Elkhart,Indiana,18039,3487,59 +2020-07-09,Elkhart,Indiana,18039,3517,61 +2020-03-18,Fayette,Indiana,18041,1,0 +2020-03-19,Fayette,Indiana,18041,1,0 +2020-03-20,Fayette,Indiana,18041,1,0 +2020-03-21,Fayette,Indiana,18041,1,0 +2020-03-22,Fayette,Indiana,18041,1,0 +2020-03-23,Fayette,Indiana,18041,1,0 +2020-03-24,Fayette,Indiana,18041,2,0 +2020-03-25,Fayette,Indiana,18041,3,0 +2020-03-26,Fayette,Indiana,18041,3,0 +2020-03-27,Fayette,Indiana,18041,3,0 +2020-03-28,Fayette,Indiana,18041,4,1 +2020-03-29,Fayette,Indiana,18041,5,1 +2020-03-30,Fayette,Indiana,18041,8,1 +2020-03-31,Fayette,Indiana,18041,9,1 +2020-04-01,Fayette,Indiana,18041,10,2 +2020-04-02,Fayette,Indiana,18041,11,2 +2020-04-03,Fayette,Indiana,18041,13,3 +2020-04-04,Fayette,Indiana,18041,14,3 +2020-04-05,Fayette,Indiana,18041,16,3 +2020-04-06,Fayette,Indiana,18041,16,3 +2020-04-07,Fayette,Indiana,18041,18,3 +2020-04-08,Fayette,Indiana,18041,18,3 +2020-04-09,Fayette,Indiana,18041,19,3 +2020-04-10,Fayette,Indiana,18041,19,3 +2020-04-11,Fayette,Indiana,18041,20,3 +2020-04-12,Fayette,Indiana,18041,20,3 +2020-04-13,Fayette,Indiana,18041,20,3 +2020-04-14,Fayette,Indiana,18041,20,3 +2020-04-15,Fayette,Indiana,18041,20,3 +2020-04-16,Fayette,Indiana,18041,20,3 +2020-04-17,Fayette,Indiana,18041,21,4 +2020-04-18,Fayette,Indiana,18041,21,4 +2020-04-19,Fayette,Indiana,18041,22,4 +2020-04-20,Fayette,Indiana,18041,22,4 +2020-04-21,Fayette,Indiana,18041,22,4 +2020-04-22,Fayette,Indiana,18041,26,4 +2020-04-23,Fayette,Indiana,18041,27,4 +2020-04-24,Fayette,Indiana,18041,28,4 +2020-04-25,Fayette,Indiana,18041,30,4 +2020-04-26,Fayette,Indiana,18041,30,4 +2020-04-27,Fayette,Indiana,18041,31,4 +2020-04-28,Fayette,Indiana,18041,33,4 +2020-04-29,Fayette,Indiana,18041,34,4 +2020-04-30,Fayette,Indiana,18041,36,4 +2020-05-01,Fayette,Indiana,18041,39,4 +2020-05-02,Fayette,Indiana,18041,39,4 +2020-05-03,Fayette,Indiana,18041,40,4 +2020-05-04,Fayette,Indiana,18041,45,4 +2020-05-05,Fayette,Indiana,18041,46,4 +2020-05-06,Fayette,Indiana,18041,51,4 +2020-05-07,Fayette,Indiana,18041,52,4 +2020-05-08,Fayette,Indiana,18041,54,4 +2020-05-09,Fayette,Indiana,18041,62,4 +2020-05-10,Fayette,Indiana,18041,62,4 +2020-05-11,Fayette,Indiana,18041,64,4 +2020-05-12,Fayette,Indiana,18041,65,4 +2020-05-13,Fayette,Indiana,18041,65,4 +2020-05-14,Fayette,Indiana,18041,66,4 +2020-05-15,Fayette,Indiana,18041,69,4 +2020-05-16,Fayette,Indiana,18041,69,4 +2020-05-17,Fayette,Indiana,18041,71,4 +2020-05-18,Fayette,Indiana,18041,71,4 +2020-05-19,Fayette,Indiana,18041,74,4 +2020-05-20,Fayette,Indiana,18041,75,4 +2020-05-21,Fayette,Indiana,18041,83,4 +2020-05-22,Fayette,Indiana,18041,83,4 +2020-05-23,Fayette,Indiana,18041,85,4 +2020-05-24,Fayette,Indiana,18041,98,4 +2020-05-25,Fayette,Indiana,18041,99,4 +2020-05-26,Fayette,Indiana,18041,102,4 +2020-05-27,Fayette,Indiana,18041,107,4 +2020-05-28,Fayette,Indiana,18041,110,7 +2020-05-29,Fayette,Indiana,18041,113,7 +2020-05-30,Fayette,Indiana,18041,114,7 +2020-05-31,Fayette,Indiana,18041,114,7 +2020-06-01,Fayette,Indiana,18041,115,7 +2020-06-02,Fayette,Indiana,18041,116,7 +2020-06-03,Fayette,Indiana,18041,117,7 +2020-06-04,Fayette,Indiana,18041,120,7 +2020-06-05,Fayette,Indiana,18041,120,7 +2020-06-06,Fayette,Indiana,18041,123,7 +2020-06-07,Fayette,Indiana,18041,123,7 +2020-06-08,Fayette,Indiana,18041,124,7 +2020-06-09,Fayette,Indiana,18041,124,7 +2020-06-10,Fayette,Indiana,18041,124,7 +2020-06-11,Fayette,Indiana,18041,126,7 +2020-06-12,Fayette,Indiana,18041,127,7 +2020-06-13,Fayette,Indiana,18041,129,7 +2020-06-14,Fayette,Indiana,18041,129,7 +2020-06-15,Fayette,Indiana,18041,130,7 +2020-06-16,Fayette,Indiana,18041,130,7 +2020-06-17,Fayette,Indiana,18041,131,7 +2020-06-18,Fayette,Indiana,18041,133,7 +2020-06-19,Fayette,Indiana,18041,133,7 +2020-06-20,Fayette,Indiana,18041,133,7 +2020-06-21,Fayette,Indiana,18041,133,7 +2020-06-22,Fayette,Indiana,18041,133,7 +2020-06-23,Fayette,Indiana,18041,134,7 +2020-06-24,Fayette,Indiana,18041,136,7 +2020-06-25,Fayette,Indiana,18041,138,7 +2020-06-26,Fayette,Indiana,18041,140,7 +2020-06-27,Fayette,Indiana,18041,144,7 +2020-06-28,Fayette,Indiana,18041,145,7 +2020-06-29,Fayette,Indiana,18041,145,7 +2020-06-30,Fayette,Indiana,18041,145,7 +2020-07-01,Fayette,Indiana,18041,146,7 +2020-07-02,Fayette,Indiana,18041,146,7 +2020-07-03,Fayette,Indiana,18041,148,7 +2020-07-04,Fayette,Indiana,18041,148,7 +2020-07-05,Fayette,Indiana,18041,149,7 +2020-07-06,Fayette,Indiana,18041,150,7 +2020-07-07,Fayette,Indiana,18041,152,7 +2020-07-08,Fayette,Indiana,18041,154,7 +2020-07-09,Fayette,Indiana,18041,155,7 +2020-03-16,Floyd,Indiana,18043,1,0 +2020-03-17,Floyd,Indiana,18043,1,0 +2020-03-18,Floyd,Indiana,18043,1,0 +2020-03-19,Floyd,Indiana,18043,1,0 +2020-03-20,Floyd,Indiana,18043,2,0 +2020-03-21,Floyd,Indiana,18043,2,0 +2020-03-22,Floyd,Indiana,18043,3,0 +2020-03-23,Floyd,Indiana,18043,4,0 +2020-03-24,Floyd,Indiana,18043,6,0 +2020-03-25,Floyd,Indiana,18043,6,0 +2020-03-26,Floyd,Indiana,18043,7,0 +2020-03-27,Floyd,Indiana,18043,11,0 +2020-03-28,Floyd,Indiana,18043,13,0 +2020-03-29,Floyd,Indiana,18043,14,0 +2020-03-30,Floyd,Indiana,18043,20,0 +2020-03-31,Floyd,Indiana,18043,21,0 +2020-04-01,Floyd,Indiana,18043,21,0 +2020-04-02,Floyd,Indiana,18043,34,0 +2020-04-03,Floyd,Indiana,18043,37,0 +2020-04-04,Floyd,Indiana,18043,41,0 +2020-04-05,Floyd,Indiana,18043,50,0 +2020-04-06,Floyd,Indiana,18043,58,1 +2020-04-07,Floyd,Indiana,18043,74,1 +2020-04-08,Floyd,Indiana,18043,77,3 +2020-04-09,Floyd,Indiana,18043,88,3 +2020-04-10,Floyd,Indiana,18043,93,3 +2020-04-11,Floyd,Indiana,18043,105,4 +2020-04-12,Floyd,Indiana,18043,107,4 +2020-04-13,Floyd,Indiana,18043,108,4 +2020-04-14,Floyd,Indiana,18043,111,5 +2020-04-15,Floyd,Indiana,18043,116,5 +2020-04-16,Floyd,Indiana,18043,125,5 +2020-04-17,Floyd,Indiana,18043,130,6 +2020-04-18,Floyd,Indiana,18043,137,7 +2020-04-19,Floyd,Indiana,18043,142,7 +2020-04-20,Floyd,Indiana,18043,143,8 +2020-04-21,Floyd,Indiana,18043,143,8 +2020-04-22,Floyd,Indiana,18043,150,10 +2020-04-23,Floyd,Indiana,18043,153,10 +2020-04-24,Floyd,Indiana,18043,163,11 +2020-04-25,Floyd,Indiana,18043,164,12 +2020-04-26,Floyd,Indiana,18043,165,13 +2020-04-27,Floyd,Indiana,18043,164,12 +2020-04-28,Floyd,Indiana,18043,173,13 +2020-04-29,Floyd,Indiana,18043,175,17 +2020-04-30,Floyd,Indiana,18043,179,17 +2020-05-01,Floyd,Indiana,18043,183,17 +2020-05-02,Floyd,Indiana,18043,201,18 +2020-05-03,Floyd,Indiana,18043,204,18 +2020-05-04,Floyd,Indiana,18043,205,19 +2020-05-05,Floyd,Indiana,18043,213,28 +2020-05-06,Floyd,Indiana,18043,219,28 +2020-05-07,Floyd,Indiana,18043,225,29 +2020-05-08,Floyd,Indiana,18043,227,29 +2020-05-09,Floyd,Indiana,18043,231,29 +2020-05-10,Floyd,Indiana,18043,233,29 +2020-05-11,Floyd,Indiana,18043,233,30 +2020-05-12,Floyd,Indiana,18043,239,31 +2020-05-13,Floyd,Indiana,18043,247,32 +2020-05-14,Floyd,Indiana,18043,251,33 +2020-05-15,Floyd,Indiana,18043,255,33 +2020-05-16,Floyd,Indiana,18043,299,39 +2020-05-17,Floyd,Indiana,18043,299,39 +2020-05-18,Floyd,Indiana,18043,303,39 +2020-05-19,Floyd,Indiana,18043,306,40 +2020-05-20,Floyd,Indiana,18043,308,40 +2020-05-21,Floyd,Indiana,18043,311,40 +2020-05-22,Floyd,Indiana,18043,313,40 +2020-05-23,Floyd,Indiana,18043,313,40 +2020-05-24,Floyd,Indiana,18043,314,40 +2020-05-25,Floyd,Indiana,18043,315,40 +2020-05-26,Floyd,Indiana,18043,316,40 +2020-05-27,Floyd,Indiana,18043,317,41 +2020-05-28,Floyd,Indiana,18043,319,41 +2020-05-29,Floyd,Indiana,18043,320,41 +2020-05-30,Floyd,Indiana,18043,320,41 +2020-05-31,Floyd,Indiana,18043,320,41 +2020-06-01,Floyd,Indiana,18043,320,41 +2020-06-02,Floyd,Indiana,18043,321,42 +2020-06-03,Floyd,Indiana,18043,323,42 +2020-06-04,Floyd,Indiana,18043,325,42 +2020-06-05,Floyd,Indiana,18043,321,43 +2020-06-06,Floyd,Indiana,18043,325,43 +2020-06-07,Floyd,Indiana,18043,328,43 +2020-06-08,Floyd,Indiana,18043,330,43 +2020-06-09,Floyd,Indiana,18043,329,44 +2020-06-10,Floyd,Indiana,18043,331,44 +2020-06-11,Floyd,Indiana,18043,334,44 +2020-06-12,Floyd,Indiana,18043,335,44 +2020-06-13,Floyd,Indiana,18043,335,44 +2020-06-14,Floyd,Indiana,18043,335,44 +2020-06-15,Floyd,Indiana,18043,337,44 +2020-06-16,Floyd,Indiana,18043,339,44 +2020-06-17,Floyd,Indiana,18043,340,44 +2020-06-18,Floyd,Indiana,18043,341,45 +2020-06-19,Floyd,Indiana,18043,344,45 +2020-06-20,Floyd,Indiana,18043,346,45 +2020-06-21,Floyd,Indiana,18043,346,45 +2020-06-22,Floyd,Indiana,18043,347,45 +2020-06-23,Floyd,Indiana,18043,349,45 +2020-06-24,Floyd,Indiana,18043,353,45 +2020-06-25,Floyd,Indiana,18043,352,45 +2020-06-26,Floyd,Indiana,18043,356,45 +2020-06-27,Floyd,Indiana,18043,359,46 +2020-06-28,Floyd,Indiana,18043,359,46 +2020-06-29,Floyd,Indiana,18043,360,46 +2020-06-30,Floyd,Indiana,18043,364,46 +2020-07-01,Floyd,Indiana,18043,365,46 +2020-07-02,Floyd,Indiana,18043,372,46 +2020-07-03,Floyd,Indiana,18043,373,46 +2020-07-04,Floyd,Indiana,18043,373,46 +2020-07-05,Floyd,Indiana,18043,381,46 +2020-07-06,Floyd,Indiana,18043,383,46 +2020-07-07,Floyd,Indiana,18043,384,46 +2020-07-08,Floyd,Indiana,18043,386,46 +2020-07-09,Floyd,Indiana,18043,393,46 +2020-03-26,Fountain,Indiana,18045,1,0 +2020-03-27,Fountain,Indiana,18045,1,0 +2020-03-28,Fountain,Indiana,18045,1,0 +2020-03-29,Fountain,Indiana,18045,1,0 +2020-03-30,Fountain,Indiana,18045,1,0 +2020-03-31,Fountain,Indiana,18045,1,0 +2020-04-01,Fountain,Indiana,18045,1,0 +2020-04-02,Fountain,Indiana,18045,2,1 +2020-04-03,Fountain,Indiana,18045,2,1 +2020-04-04,Fountain,Indiana,18045,2,1 +2020-04-05,Fountain,Indiana,18045,2,1 +2020-04-06,Fountain,Indiana,18045,2,1 +2020-04-07,Fountain,Indiana,18045,2,1 +2020-04-08,Fountain,Indiana,18045,2,1 +2020-04-09,Fountain,Indiana,18045,2,1 +2020-04-10,Fountain,Indiana,18045,3,1 +2020-04-11,Fountain,Indiana,18045,3,1 +2020-04-12,Fountain,Indiana,18045,3,1 +2020-04-13,Fountain,Indiana,18045,3,1 +2020-04-14,Fountain,Indiana,18045,3,1 +2020-04-15,Fountain,Indiana,18045,3,1 +2020-04-16,Fountain,Indiana,18045,4,2 +2020-04-17,Fountain,Indiana,18045,4,2 +2020-04-18,Fountain,Indiana,18045,5,2 +2020-04-19,Fountain,Indiana,18045,6,2 +2020-04-20,Fountain,Indiana,18045,8,2 +2020-04-21,Fountain,Indiana,18045,8,2 +2020-04-22,Fountain,Indiana,18045,8,2 +2020-04-23,Fountain,Indiana,18045,8,2 +2020-04-24,Fountain,Indiana,18045,9,2 +2020-04-25,Fountain,Indiana,18045,9,2 +2020-04-26,Fountain,Indiana,18045,9,2 +2020-04-27,Fountain,Indiana,18045,9,2 +2020-04-28,Fountain,Indiana,18045,10,2 +2020-04-29,Fountain,Indiana,18045,10,2 +2020-04-30,Fountain,Indiana,18045,11,2 +2020-05-01,Fountain,Indiana,18045,12,2 +2020-05-02,Fountain,Indiana,18045,12,2 +2020-05-03,Fountain,Indiana,18045,13,2 +2020-05-04,Fountain,Indiana,18045,14,2 +2020-05-05,Fountain,Indiana,18045,14,2 +2020-05-06,Fountain,Indiana,18045,14,2 +2020-05-07,Fountain,Indiana,18045,14,2 +2020-05-08,Fountain,Indiana,18045,14,2 +2020-05-09,Fountain,Indiana,18045,15,2 +2020-05-10,Fountain,Indiana,18045,16,2 +2020-05-11,Fountain,Indiana,18045,16,2 +2020-05-12,Fountain,Indiana,18045,16,2 +2020-05-13,Fountain,Indiana,18045,16,2 +2020-05-14,Fountain,Indiana,18045,16,2 +2020-05-15,Fountain,Indiana,18045,16,2 +2020-05-16,Fountain,Indiana,18045,18,2 +2020-05-17,Fountain,Indiana,18045,18,2 +2020-05-18,Fountain,Indiana,18045,18,2 +2020-05-19,Fountain,Indiana,18045,18,2 +2020-05-20,Fountain,Indiana,18045,18,2 +2020-05-21,Fountain,Indiana,18045,19,2 +2020-05-22,Fountain,Indiana,18045,17,2 +2020-05-23,Fountain,Indiana,18045,17,2 +2020-05-24,Fountain,Indiana,18045,17,2 +2020-05-25,Fountain,Indiana,18045,18,2 +2020-05-26,Fountain,Indiana,18045,18,2 +2020-05-27,Fountain,Indiana,18045,18,2 +2020-05-28,Fountain,Indiana,18045,18,2 +2020-05-29,Fountain,Indiana,18045,20,2 +2020-05-30,Fountain,Indiana,18045,21,2 +2020-05-31,Fountain,Indiana,18045,21,2 +2020-06-01,Fountain,Indiana,18045,21,2 +2020-06-02,Fountain,Indiana,18045,22,2 +2020-06-03,Fountain,Indiana,18045,22,2 +2020-06-04,Fountain,Indiana,18045,22,2 +2020-06-05,Fountain,Indiana,18045,22,2 +2020-06-06,Fountain,Indiana,18045,22,2 +2020-06-07,Fountain,Indiana,18045,23,2 +2020-06-08,Fountain,Indiana,18045,23,2 +2020-06-09,Fountain,Indiana,18045,23,2 +2020-06-10,Fountain,Indiana,18045,24,2 +2020-06-11,Fountain,Indiana,18045,23,2 +2020-06-12,Fountain,Indiana,18045,23,2 +2020-06-13,Fountain,Indiana,18045,23,2 +2020-06-14,Fountain,Indiana,18045,24,2 +2020-06-15,Fountain,Indiana,18045,24,2 +2020-06-16,Fountain,Indiana,18045,24,2 +2020-06-17,Fountain,Indiana,18045,24,2 +2020-06-18,Fountain,Indiana,18045,24,2 +2020-06-19,Fountain,Indiana,18045,24,2 +2020-06-20,Fountain,Indiana,18045,24,2 +2020-06-21,Fountain,Indiana,18045,24,2 +2020-06-22,Fountain,Indiana,18045,24,2 +2020-06-23,Fountain,Indiana,18045,24,2 +2020-06-24,Fountain,Indiana,18045,24,2 +2020-06-25,Fountain,Indiana,18045,25,2 +2020-06-26,Fountain,Indiana,18045,25,2 +2020-06-27,Fountain,Indiana,18045,26,2 +2020-06-28,Fountain,Indiana,18045,27,2 +2020-06-29,Fountain,Indiana,18045,28,2 +2020-06-30,Fountain,Indiana,18045,28,2 +2020-07-01,Fountain,Indiana,18045,29,2 +2020-07-02,Fountain,Indiana,18045,29,2 +2020-07-03,Fountain,Indiana,18045,30,2 +2020-07-04,Fountain,Indiana,18045,30,2 +2020-07-05,Fountain,Indiana,18045,31,2 +2020-07-06,Fountain,Indiana,18045,32,2 +2020-07-07,Fountain,Indiana,18045,32,2 +2020-07-08,Fountain,Indiana,18045,32,2 +2020-07-09,Fountain,Indiana,18045,33,2 +2020-03-17,Franklin,Indiana,18047,2,0 +2020-03-18,Franklin,Indiana,18047,2,0 +2020-03-19,Franklin,Indiana,18047,2,0 +2020-03-20,Franklin,Indiana,18047,2,0 +2020-03-21,Franklin,Indiana,18047,2,0 +2020-03-22,Franklin,Indiana,18047,4,0 +2020-03-23,Franklin,Indiana,18047,4,0 +2020-03-24,Franklin,Indiana,18047,7,0 +2020-03-25,Franklin,Indiana,18047,7,0 +2020-03-26,Franklin,Indiana,18047,13,1 +2020-03-27,Franklin,Indiana,18047,22,1 +2020-03-28,Franklin,Indiana,18047,23,2 +2020-03-29,Franklin,Indiana,18047,26,3 +2020-03-30,Franklin,Indiana,18047,28,4 +2020-03-31,Franklin,Indiana,18047,35,4 +2020-04-01,Franklin,Indiana,18047,39,5 +2020-04-02,Franklin,Indiana,18047,45,6 +2020-04-03,Franklin,Indiana,18047,48,6 +2020-04-04,Franklin,Indiana,18047,50,6 +2020-04-05,Franklin,Indiana,18047,53,6 +2020-04-06,Franklin,Indiana,18047,55,6 +2020-04-07,Franklin,Indiana,18047,60,7 +2020-04-08,Franklin,Indiana,18047,61,7 +2020-04-09,Franklin,Indiana,18047,64,7 +2020-04-10,Franklin,Indiana,18047,66,7 +2020-04-11,Franklin,Indiana,18047,67,7 +2020-04-12,Franklin,Indiana,18047,69,7 +2020-04-13,Franklin,Indiana,18047,69,7 +2020-04-14,Franklin,Indiana,18047,74,7 +2020-04-15,Franklin,Indiana,18047,75,7 +2020-04-16,Franklin,Indiana,18047,75,7 +2020-04-17,Franklin,Indiana,18047,87,7 +2020-04-18,Franklin,Indiana,18047,89,7 +2020-04-19,Franklin,Indiana,18047,89,7 +2020-04-20,Franklin,Indiana,18047,90,7 +2020-04-21,Franklin,Indiana,18047,91,7 +2020-04-22,Franklin,Indiana,18047,91,7 +2020-04-23,Franklin,Indiana,18047,92,7 +2020-04-24,Franklin,Indiana,18047,92,7 +2020-04-25,Franklin,Indiana,18047,94,7 +2020-04-26,Franklin,Indiana,18047,95,8 +2020-04-27,Franklin,Indiana,18047,94,7 +2020-04-28,Franklin,Indiana,18047,95,7 +2020-04-29,Franklin,Indiana,18047,96,7 +2020-04-30,Franklin,Indiana,18047,98,7 +2020-05-01,Franklin,Indiana,18047,98,7 +2020-05-02,Franklin,Indiana,18047,99,7 +2020-05-03,Franklin,Indiana,18047,99,7 +2020-05-04,Franklin,Indiana,18047,101,7 +2020-05-05,Franklin,Indiana,18047,101,7 +2020-05-06,Franklin,Indiana,18047,104,8 +2020-05-07,Franklin,Indiana,18047,104,8 +2020-05-08,Franklin,Indiana,18047,107,8 +2020-05-09,Franklin,Indiana,18047,107,8 +2020-05-10,Franklin,Indiana,18047,107,8 +2020-05-11,Franklin,Indiana,18047,109,8 +2020-05-12,Franklin,Indiana,18047,109,8 +2020-05-13,Franklin,Indiana,18047,109,8 +2020-05-14,Franklin,Indiana,18047,110,8 +2020-05-15,Franklin,Indiana,18047,111,8 +2020-05-16,Franklin,Indiana,18047,110,8 +2020-05-17,Franklin,Indiana,18047,110,8 +2020-05-18,Franklin,Indiana,18047,110,8 +2020-05-19,Franklin,Indiana,18047,111,8 +2020-05-20,Franklin,Indiana,18047,111,8 +2020-05-21,Franklin,Indiana,18047,111,8 +2020-05-22,Franklin,Indiana,18047,112,9 +2020-05-23,Franklin,Indiana,18047,112,9 +2020-05-24,Franklin,Indiana,18047,112,9 +2020-05-25,Franklin,Indiana,18047,112,9 +2020-05-26,Franklin,Indiana,18047,112,9 +2020-05-27,Franklin,Indiana,18047,112,9 +2020-05-28,Franklin,Indiana,18047,115,9 +2020-05-29,Franklin,Indiana,18047,115,9 +2020-05-30,Franklin,Indiana,18047,116,9 +2020-05-31,Franklin,Indiana,18047,116,9 +2020-06-01,Franklin,Indiana,18047,116,9 +2020-06-02,Franklin,Indiana,18047,116,9 +2020-06-03,Franklin,Indiana,18047,121,9 +2020-06-04,Franklin,Indiana,18047,123,9 +2020-06-05,Franklin,Indiana,18047,123,9 +2020-06-06,Franklin,Indiana,18047,124,9 +2020-06-07,Franklin,Indiana,18047,124,9 +2020-06-08,Franklin,Indiana,18047,124,9 +2020-06-09,Franklin,Indiana,18047,125,9 +2020-06-10,Franklin,Indiana,18047,126,9 +2020-06-11,Franklin,Indiana,18047,126,9 +2020-06-12,Franklin,Indiana,18047,126,9 +2020-06-13,Franklin,Indiana,18047,126,9 +2020-06-14,Franklin,Indiana,18047,127,9 +2020-06-15,Franklin,Indiana,18047,127,9 +2020-06-16,Franklin,Indiana,18047,127,9 +2020-06-17,Franklin,Indiana,18047,127,9 +2020-06-18,Franklin,Indiana,18047,127,9 +2020-06-19,Franklin,Indiana,18047,127,9 +2020-06-20,Franklin,Indiana,18047,127,9 +2020-06-21,Franklin,Indiana,18047,128,9 +2020-06-22,Franklin,Indiana,18047,128,9 +2020-06-23,Franklin,Indiana,18047,128,9 +2020-06-24,Franklin,Indiana,18047,128,9 +2020-06-25,Franklin,Indiana,18047,129,9 +2020-06-26,Franklin,Indiana,18047,131,9 +2020-06-27,Franklin,Indiana,18047,131,9 +2020-06-28,Franklin,Indiana,18047,131,9 +2020-06-29,Franklin,Indiana,18047,131,9 +2020-06-30,Franklin,Indiana,18047,131,9 +2020-07-01,Franklin,Indiana,18047,131,9 +2020-07-02,Franklin,Indiana,18047,131,9 +2020-07-03,Franklin,Indiana,18047,131,9 +2020-07-04,Franklin,Indiana,18047,131,9 +2020-07-05,Franklin,Indiana,18047,131,9 +2020-07-06,Franklin,Indiana,18047,132,9 +2020-07-07,Franklin,Indiana,18047,134,9 +2020-07-08,Franklin,Indiana,18047,134,9 +2020-07-09,Franklin,Indiana,18047,135,9 +2020-03-27,Fulton,Indiana,18049,1,0 +2020-03-28,Fulton,Indiana,18049,1,0 +2020-03-29,Fulton,Indiana,18049,1,0 +2020-03-30,Fulton,Indiana,18049,1,0 +2020-03-31,Fulton,Indiana,18049,1,0 +2020-04-01,Fulton,Indiana,18049,1,0 +2020-04-02,Fulton,Indiana,18049,1,0 +2020-04-03,Fulton,Indiana,18049,1,0 +2020-04-04,Fulton,Indiana,18049,2,0 +2020-04-05,Fulton,Indiana,18049,2,0 +2020-04-06,Fulton,Indiana,18049,3,0 +2020-04-07,Fulton,Indiana,18049,3,0 +2020-04-08,Fulton,Indiana,18049,3,0 +2020-04-09,Fulton,Indiana,18049,3,0 +2020-04-10,Fulton,Indiana,18049,3,0 +2020-04-11,Fulton,Indiana,18049,3,0 +2020-04-12,Fulton,Indiana,18049,3,0 +2020-04-13,Fulton,Indiana,18049,3,0 +2020-04-14,Fulton,Indiana,18049,3,0 +2020-04-15,Fulton,Indiana,18049,3,0 +2020-04-16,Fulton,Indiana,18049,3,0 +2020-04-17,Fulton,Indiana,18049,4,0 +2020-04-18,Fulton,Indiana,18049,5,0 +2020-04-19,Fulton,Indiana,18049,6,0 +2020-04-20,Fulton,Indiana,18049,6,0 +2020-04-21,Fulton,Indiana,18049,6,0 +2020-04-22,Fulton,Indiana,18049,6,0 +2020-04-23,Fulton,Indiana,18049,7,0 +2020-04-24,Fulton,Indiana,18049,7,0 +2020-04-25,Fulton,Indiana,18049,10,0 +2020-04-26,Fulton,Indiana,18049,13,0 +2020-04-27,Fulton,Indiana,18049,23,0 +2020-04-28,Fulton,Indiana,18049,26,0 +2020-04-29,Fulton,Indiana,18049,26,0 +2020-04-30,Fulton,Indiana,18049,27,1 +2020-05-01,Fulton,Indiana,18049,30,1 +2020-05-02,Fulton,Indiana,18049,31,1 +2020-05-03,Fulton,Indiana,18049,33,1 +2020-05-04,Fulton,Indiana,18049,33,1 +2020-05-05,Fulton,Indiana,18049,34,1 +2020-05-06,Fulton,Indiana,18049,34,1 +2020-05-07,Fulton,Indiana,18049,34,1 +2020-05-08,Fulton,Indiana,18049,34,1 +2020-05-09,Fulton,Indiana,18049,36,1 +2020-05-10,Fulton,Indiana,18049,36,1 +2020-05-11,Fulton,Indiana,18049,36,1 +2020-05-12,Fulton,Indiana,18049,37,1 +2020-05-13,Fulton,Indiana,18049,37,1 +2020-05-14,Fulton,Indiana,18049,39,1 +2020-05-15,Fulton,Indiana,18049,39,1 +2020-05-16,Fulton,Indiana,18049,42,1 +2020-05-17,Fulton,Indiana,18049,43,1 +2020-05-18,Fulton,Indiana,18049,44,1 +2020-05-19,Fulton,Indiana,18049,45,1 +2020-05-20,Fulton,Indiana,18049,47,1 +2020-05-21,Fulton,Indiana,18049,46,1 +2020-05-22,Fulton,Indiana,18049,46,1 +2020-05-23,Fulton,Indiana,18049,46,1 +2020-05-24,Fulton,Indiana,18049,46,1 +2020-05-25,Fulton,Indiana,18049,47,1 +2020-05-26,Fulton,Indiana,18049,47,1 +2020-05-27,Fulton,Indiana,18049,47,1 +2020-05-28,Fulton,Indiana,18049,47,1 +2020-05-29,Fulton,Indiana,18049,48,1 +2020-05-30,Fulton,Indiana,18049,49,1 +2020-05-31,Fulton,Indiana,18049,49,1 +2020-06-01,Fulton,Indiana,18049,49,1 +2020-06-02,Fulton,Indiana,18049,49,1 +2020-06-03,Fulton,Indiana,18049,50,1 +2020-06-04,Fulton,Indiana,18049,50,1 +2020-06-05,Fulton,Indiana,18049,51,1 +2020-06-06,Fulton,Indiana,18049,51,1 +2020-06-07,Fulton,Indiana,18049,51,1 +2020-06-08,Fulton,Indiana,18049,51,1 +2020-06-09,Fulton,Indiana,18049,51,1 +2020-06-10,Fulton,Indiana,18049,51,1 +2020-06-11,Fulton,Indiana,18049,52,1 +2020-06-12,Fulton,Indiana,18049,53,1 +2020-06-13,Fulton,Indiana,18049,53,1 +2020-06-14,Fulton,Indiana,18049,55,1 +2020-06-15,Fulton,Indiana,18049,55,1 +2020-06-16,Fulton,Indiana,18049,56,1 +2020-06-17,Fulton,Indiana,18049,56,1 +2020-06-18,Fulton,Indiana,18049,58,1 +2020-06-19,Fulton,Indiana,18049,60,1 +2020-06-20,Fulton,Indiana,18049,61,1 +2020-06-21,Fulton,Indiana,18049,62,1 +2020-06-22,Fulton,Indiana,18049,62,1 +2020-06-23,Fulton,Indiana,18049,63,1 +2020-06-24,Fulton,Indiana,18049,64,1 +2020-06-25,Fulton,Indiana,18049,64,1 +2020-06-26,Fulton,Indiana,18049,64,1 +2020-06-27,Fulton,Indiana,18049,65,1 +2020-06-28,Fulton,Indiana,18049,65,1 +2020-06-29,Fulton,Indiana,18049,65,1 +2020-06-30,Fulton,Indiana,18049,66,1 +2020-07-01,Fulton,Indiana,18049,66,1 +2020-07-02,Fulton,Indiana,18049,66,1 +2020-07-03,Fulton,Indiana,18049,68,1 +2020-07-04,Fulton,Indiana,18049,69,1 +2020-07-05,Fulton,Indiana,18049,70,1 +2020-07-06,Fulton,Indiana,18049,72,1 +2020-07-07,Fulton,Indiana,18049,71,1 +2020-07-08,Fulton,Indiana,18049,72,1 +2020-07-09,Fulton,Indiana,18049,73,1 +2020-03-24,Gibson,Indiana,18051,2,0 +2020-03-25,Gibson,Indiana,18051,2,0 +2020-03-26,Gibson,Indiana,18051,3,0 +2020-03-27,Gibson,Indiana,18051,3,0 +2020-03-28,Gibson,Indiana,18051,4,0 +2020-03-29,Gibson,Indiana,18051,4,0 +2020-03-30,Gibson,Indiana,18051,4,0 +2020-03-31,Gibson,Indiana,18051,4,0 +2020-04-01,Gibson,Indiana,18051,4,0 +2020-04-02,Gibson,Indiana,18051,4,0 +2020-04-03,Gibson,Indiana,18051,4,0 +2020-04-04,Gibson,Indiana,18051,4,0 +2020-04-05,Gibson,Indiana,18051,4,0 +2020-04-06,Gibson,Indiana,18051,4,0 +2020-04-07,Gibson,Indiana,18051,4,0 +2020-04-08,Gibson,Indiana,18051,4,0 +2020-04-09,Gibson,Indiana,18051,4,0 +2020-04-10,Gibson,Indiana,18051,4,0 +2020-04-11,Gibson,Indiana,18051,4,0 +2020-04-12,Gibson,Indiana,18051,4,0 +2020-04-13,Gibson,Indiana,18051,4,0 +2020-04-14,Gibson,Indiana,18051,4,0 +2020-04-15,Gibson,Indiana,18051,4,0 +2020-04-16,Gibson,Indiana,18051,4,0 +2020-04-17,Gibson,Indiana,18051,4,0 +2020-04-18,Gibson,Indiana,18051,5,0 +2020-04-19,Gibson,Indiana,18051,5,0 +2020-04-20,Gibson,Indiana,18051,5,0 +2020-04-21,Gibson,Indiana,18051,5,0 +2020-04-22,Gibson,Indiana,18051,5,0 +2020-04-23,Gibson,Indiana,18051,6,0 +2020-04-24,Gibson,Indiana,18051,6,0 +2020-04-25,Gibson,Indiana,18051,6,0 +2020-04-26,Gibson,Indiana,18051,6,0 +2020-04-27,Gibson,Indiana,18051,6,0 +2020-04-28,Gibson,Indiana,18051,6,0 +2020-04-29,Gibson,Indiana,18051,6,0 +2020-04-30,Gibson,Indiana,18051,7,0 +2020-05-01,Gibson,Indiana,18051,7,0 +2020-05-02,Gibson,Indiana,18051,7,0 +2020-05-03,Gibson,Indiana,18051,7,0 +2020-05-04,Gibson,Indiana,18051,7,0 +2020-05-05,Gibson,Indiana,18051,7,0 +2020-05-06,Gibson,Indiana,18051,7,0 +2020-05-07,Gibson,Indiana,18051,7,0 +2020-05-08,Gibson,Indiana,18051,7,0 +2020-05-09,Gibson,Indiana,18051,7,0 +2020-05-10,Gibson,Indiana,18051,8,0 +2020-05-11,Gibson,Indiana,18051,8,0 +2020-05-12,Gibson,Indiana,18051,8,0 +2020-05-13,Gibson,Indiana,18051,8,0 +2020-05-14,Gibson,Indiana,18051,8,0 +2020-05-15,Gibson,Indiana,18051,9,0 +2020-05-16,Gibson,Indiana,18051,10,0 +2020-05-17,Gibson,Indiana,18051,10,0 +2020-05-18,Gibson,Indiana,18051,10,0 +2020-05-19,Gibson,Indiana,18051,10,0 +2020-05-20,Gibson,Indiana,18051,11,0 +2020-05-21,Gibson,Indiana,18051,13,1 +2020-05-22,Gibson,Indiana,18051,13,1 +2020-05-23,Gibson,Indiana,18051,13,2 +2020-05-24,Gibson,Indiana,18051,13,2 +2020-05-25,Gibson,Indiana,18051,14,2 +2020-05-26,Gibson,Indiana,18051,14,2 +2020-05-27,Gibson,Indiana,18051,14,2 +2020-05-28,Gibson,Indiana,18051,14,2 +2020-05-29,Gibson,Indiana,18051,14,2 +2020-05-30,Gibson,Indiana,18051,15,2 +2020-05-31,Gibson,Indiana,18051,17,2 +2020-06-01,Gibson,Indiana,18051,17,2 +2020-06-02,Gibson,Indiana,18051,17,2 +2020-06-03,Gibson,Indiana,18051,18,2 +2020-06-04,Gibson,Indiana,18051,19,2 +2020-06-05,Gibson,Indiana,18051,20,2 +2020-06-06,Gibson,Indiana,18051,20,2 +2020-06-07,Gibson,Indiana,18051,20,2 +2020-06-08,Gibson,Indiana,18051,20,2 +2020-06-09,Gibson,Indiana,18051,21,2 +2020-06-10,Gibson,Indiana,18051,21,2 +2020-06-11,Gibson,Indiana,18051,22,2 +2020-06-12,Gibson,Indiana,18051,22,2 +2020-06-13,Gibson,Indiana,18051,22,2 +2020-06-14,Gibson,Indiana,18051,23,2 +2020-06-15,Gibson,Indiana,18051,24,2 +2020-06-16,Gibson,Indiana,18051,24,2 +2020-06-17,Gibson,Indiana,18051,24,2 +2020-06-18,Gibson,Indiana,18051,24,2 +2020-06-19,Gibson,Indiana,18051,25,2 +2020-06-20,Gibson,Indiana,18051,26,2 +2020-06-21,Gibson,Indiana,18051,27,2 +2020-06-22,Gibson,Indiana,18051,27,2 +2020-06-23,Gibson,Indiana,18051,27,2 +2020-06-24,Gibson,Indiana,18051,29,2 +2020-06-25,Gibson,Indiana,18051,29,2 +2020-06-26,Gibson,Indiana,18051,29,2 +2020-06-27,Gibson,Indiana,18051,31,2 +2020-06-28,Gibson,Indiana,18051,32,2 +2020-06-29,Gibson,Indiana,18051,36,2 +2020-06-30,Gibson,Indiana,18051,41,2 +2020-07-01,Gibson,Indiana,18051,44,2 +2020-07-02,Gibson,Indiana,18051,46,2 +2020-07-03,Gibson,Indiana,18051,59,2 +2020-07-04,Gibson,Indiana,18051,67,2 +2020-07-05,Gibson,Indiana,18051,80,2 +2020-07-06,Gibson,Indiana,18051,81,2 +2020-07-07,Gibson,Indiana,18051,87,2 +2020-07-08,Gibson,Indiana,18051,98,2 +2020-07-09,Gibson,Indiana,18051,103,2 +2020-03-20,Grant,Indiana,18053,1,0 +2020-03-21,Grant,Indiana,18053,1,0 +2020-03-22,Grant,Indiana,18053,2,0 +2020-03-23,Grant,Indiana,18053,3,0 +2020-03-24,Grant,Indiana,18053,3,0 +2020-03-25,Grant,Indiana,18053,3,0 +2020-03-26,Grant,Indiana,18053,3,0 +2020-03-27,Grant,Indiana,18053,5,0 +2020-03-28,Grant,Indiana,18053,5,0 +2020-03-29,Grant,Indiana,18053,7,0 +2020-03-30,Grant,Indiana,18053,7,0 +2020-03-31,Grant,Indiana,18053,7,0 +2020-04-01,Grant,Indiana,18053,9,0 +2020-04-02,Grant,Indiana,18053,11,0 +2020-04-03,Grant,Indiana,18053,12,0 +2020-04-04,Grant,Indiana,18053,16,1 +2020-04-05,Grant,Indiana,18053,19,3 +2020-04-06,Grant,Indiana,18053,21,3 +2020-04-07,Grant,Indiana,18053,21,3 +2020-04-08,Grant,Indiana,18053,23,3 +2020-04-09,Grant,Indiana,18053,27,3 +2020-04-10,Grant,Indiana,18053,33,3 +2020-04-11,Grant,Indiana,18053,36,3 +2020-04-12,Grant,Indiana,18053,37,3 +2020-04-13,Grant,Indiana,18053,38,3 +2020-04-14,Grant,Indiana,18053,41,3 +2020-04-15,Grant,Indiana,18053,42,3 +2020-04-16,Grant,Indiana,18053,46,3 +2020-04-17,Grant,Indiana,18053,48,3 +2020-04-18,Grant,Indiana,18053,56,3 +2020-04-19,Grant,Indiana,18053,76,4 +2020-04-20,Grant,Indiana,18053,79,4 +2020-04-21,Grant,Indiana,18053,100,5 +2020-04-22,Grant,Indiana,18053,105,5 +2020-04-23,Grant,Indiana,18053,106,6 +2020-04-24,Grant,Indiana,18053,119,8 +2020-04-25,Grant,Indiana,18053,120,8 +2020-04-26,Grant,Indiana,18053,122,8 +2020-04-27,Grant,Indiana,18053,126,9 +2020-04-28,Grant,Indiana,18053,129,10 +2020-04-29,Grant,Indiana,18053,131,11 +2020-04-30,Grant,Indiana,18053,140,12 +2020-05-01,Grant,Indiana,18053,149,12 +2020-05-02,Grant,Indiana,18053,154,14 +2020-05-03,Grant,Indiana,18053,155,14 +2020-05-04,Grant,Indiana,18053,158,14 +2020-05-05,Grant,Indiana,18053,159,14 +2020-05-06,Grant,Indiana,18053,162,15 +2020-05-07,Grant,Indiana,18053,165,15 +2020-05-08,Grant,Indiana,18053,170,16 +2020-05-09,Grant,Indiana,18053,172,17 +2020-05-10,Grant,Indiana,18053,172,17 +2020-05-11,Grant,Indiana,18053,172,18 +2020-05-12,Grant,Indiana,18053,178,18 +2020-05-13,Grant,Indiana,18053,178,19 +2020-05-14,Grant,Indiana,18053,181,19 +2020-05-15,Grant,Indiana,18053,183,19 +2020-05-16,Grant,Indiana,18053,192,20 +2020-05-17,Grant,Indiana,18053,194,20 +2020-05-18,Grant,Indiana,18053,197,20 +2020-05-19,Grant,Indiana,18053,201,21 +2020-05-20,Grant,Indiana,18053,204,22 +2020-05-21,Grant,Indiana,18053,211,22 +2020-05-22,Grant,Indiana,18053,214,22 +2020-05-23,Grant,Indiana,18053,221,22 +2020-05-24,Grant,Indiana,18053,226,22 +2020-05-25,Grant,Indiana,18053,230,22 +2020-05-26,Grant,Indiana,18053,237,23 +2020-05-27,Grant,Indiana,18053,244,23 +2020-05-28,Grant,Indiana,18053,247,23 +2020-05-29,Grant,Indiana,18053,259,23 +2020-05-30,Grant,Indiana,18053,266,24 +2020-05-31,Grant,Indiana,18053,269,24 +2020-06-01,Grant,Indiana,18053,271,25 +2020-06-02,Grant,Indiana,18053,280,25 +2020-06-03,Grant,Indiana,18053,282,25 +2020-06-04,Grant,Indiana,18053,286,26 +2020-06-05,Grant,Indiana,18053,291,26 +2020-06-06,Grant,Indiana,18053,298,26 +2020-06-07,Grant,Indiana,18053,298,26 +2020-06-08,Grant,Indiana,18053,303,26 +2020-06-09,Grant,Indiana,18053,309,26 +2020-06-10,Grant,Indiana,18053,311,26 +2020-06-11,Grant,Indiana,18053,317,27 +2020-06-12,Grant,Indiana,18053,320,27 +2020-06-13,Grant,Indiana,18053,326,27 +2020-06-14,Grant,Indiana,18053,328,27 +2020-06-15,Grant,Indiana,18053,329,27 +2020-06-16,Grant,Indiana,18053,331,27 +2020-06-17,Grant,Indiana,18053,334,27 +2020-06-18,Grant,Indiana,18053,341,27 +2020-06-19,Grant,Indiana,18053,347,28 +2020-06-20,Grant,Indiana,18053,352,28 +2020-06-21,Grant,Indiana,18053,354,28 +2020-06-22,Grant,Indiana,18053,354,29 +2020-06-23,Grant,Indiana,18053,361,29 +2020-06-24,Grant,Indiana,18053,364,29 +2020-06-25,Grant,Indiana,18053,364,29 +2020-06-26,Grant,Indiana,18053,371,29 +2020-06-27,Grant,Indiana,18053,368,29 +2020-06-28,Grant,Indiana,18053,373,29 +2020-06-29,Grant,Indiana,18053,374,29 +2020-06-30,Grant,Indiana,18053,376,29 +2020-07-01,Grant,Indiana,18053,385,29 +2020-07-02,Grant,Indiana,18053,387,29 +2020-07-03,Grant,Indiana,18053,391,29 +2020-07-04,Grant,Indiana,18053,398,29 +2020-07-05,Grant,Indiana,18053,401,29 +2020-07-06,Grant,Indiana,18053,402,29 +2020-07-07,Grant,Indiana,18053,405,29 +2020-07-08,Grant,Indiana,18053,414,29 +2020-07-09,Grant,Indiana,18053,421,29 +2020-03-29,Greene,Indiana,18055,1,0 +2020-03-30,Greene,Indiana,18055,1,0 +2020-03-31,Greene,Indiana,18055,2,0 +2020-04-01,Greene,Indiana,18055,3,0 +2020-04-02,Greene,Indiana,18055,8,0 +2020-04-03,Greene,Indiana,18055,9,0 +2020-04-04,Greene,Indiana,18055,9,0 +2020-04-05,Greene,Indiana,18055,10,0 +2020-04-06,Greene,Indiana,18055,11,0 +2020-04-07,Greene,Indiana,18055,11,0 +2020-04-08,Greene,Indiana,18055,12,0 +2020-04-09,Greene,Indiana,18055,12,0 +2020-04-10,Greene,Indiana,18055,14,1 +2020-04-11,Greene,Indiana,18055,15,2 +2020-04-12,Greene,Indiana,18055,20,2 +2020-04-13,Greene,Indiana,18055,26,2 +2020-04-14,Greene,Indiana,18055,26,2 +2020-04-15,Greene,Indiana,18055,29,3 +2020-04-16,Greene,Indiana,18055,37,3 +2020-04-17,Greene,Indiana,18055,38,4 +2020-04-18,Greene,Indiana,18055,43,4 +2020-04-19,Greene,Indiana,18055,43,4 +2020-04-20,Greene,Indiana,18055,43,5 +2020-04-21,Greene,Indiana,18055,45,5 +2020-04-22,Greene,Indiana,18055,45,5 +2020-04-23,Greene,Indiana,18055,45,5 +2020-04-24,Greene,Indiana,18055,46,5 +2020-04-25,Greene,Indiana,18055,48,6 +2020-04-26,Greene,Indiana,18055,49,7 +2020-04-27,Greene,Indiana,18055,48,6 +2020-04-28,Greene,Indiana,18055,50,7 +2020-04-29,Greene,Indiana,18055,58,8 +2020-04-30,Greene,Indiana,18055,59,8 +2020-05-01,Greene,Indiana,18055,93,8 +2020-05-02,Greene,Indiana,18055,98,8 +2020-05-03,Greene,Indiana,18055,99,8 +2020-05-04,Greene,Indiana,18055,99,8 +2020-05-05,Greene,Indiana,18055,100,9 +2020-05-06,Greene,Indiana,18055,105,10 +2020-05-07,Greene,Indiana,18055,136,11 +2020-05-08,Greene,Indiana,18055,150,11 +2020-05-09,Greene,Indiana,18055,151,11 +2020-05-10,Greene,Indiana,18055,151,13 +2020-05-11,Greene,Indiana,18055,151,17 +2020-05-12,Greene,Indiana,18055,155,19 +2020-05-13,Greene,Indiana,18055,155,20 +2020-05-14,Greene,Indiana,18055,157,20 +2020-05-15,Greene,Indiana,18055,158,20 +2020-05-16,Greene,Indiana,18055,158,23 +2020-05-17,Greene,Indiana,18055,162,24 +2020-05-18,Greene,Indiana,18055,164,24 +2020-05-19,Greene,Indiana,18055,165,24 +2020-05-20,Greene,Indiana,18055,166,24 +2020-05-21,Greene,Indiana,18055,169,24 +2020-05-22,Greene,Indiana,18055,171,25 +2020-05-23,Greene,Indiana,18055,171,26 +2020-05-24,Greene,Indiana,18055,171,26 +2020-05-25,Greene,Indiana,18055,171,26 +2020-05-26,Greene,Indiana,18055,171,27 +2020-05-27,Greene,Indiana,18055,172,27 +2020-05-28,Greene,Indiana,18055,172,27 +2020-05-29,Greene,Indiana,18055,172,27 +2020-05-30,Greene,Indiana,18055,173,27 +2020-05-31,Greene,Indiana,18055,173,27 +2020-06-01,Greene,Indiana,18055,173,28 +2020-06-02,Greene,Indiana,18055,173,28 +2020-06-03,Greene,Indiana,18055,175,28 +2020-06-04,Greene,Indiana,18055,176,28 +2020-06-05,Greene,Indiana,18055,176,29 +2020-06-06,Greene,Indiana,18055,178,30 +2020-06-07,Greene,Indiana,18055,179,30 +2020-06-08,Greene,Indiana,18055,179,31 +2020-06-09,Greene,Indiana,18055,179,31 +2020-06-10,Greene,Indiana,18055,182,31 +2020-06-11,Greene,Indiana,18055,182,31 +2020-06-12,Greene,Indiana,18055,182,31 +2020-06-13,Greene,Indiana,18055,182,31 +2020-06-14,Greene,Indiana,18055,184,32 +2020-06-15,Greene,Indiana,18055,186,32 +2020-06-16,Greene,Indiana,18055,186,32 +2020-06-17,Greene,Indiana,18055,187,32 +2020-06-18,Greene,Indiana,18055,187,32 +2020-06-19,Greene,Indiana,18055,188,32 +2020-06-20,Greene,Indiana,18055,189,32 +2020-06-21,Greene,Indiana,18055,189,32 +2020-06-22,Greene,Indiana,18055,189,32 +2020-06-23,Greene,Indiana,18055,189,32 +2020-06-24,Greene,Indiana,18055,189,32 +2020-06-25,Greene,Indiana,18055,189,32 +2020-06-26,Greene,Indiana,18055,190,32 +2020-06-27,Greene,Indiana,18055,188,34 +2020-06-28,Greene,Indiana,18055,188,34 +2020-06-29,Greene,Indiana,18055,188,34 +2020-06-30,Greene,Indiana,18055,189,34 +2020-07-01,Greene,Indiana,18055,189,34 +2020-07-02,Greene,Indiana,18055,189,35 +2020-07-03,Greene,Indiana,18055,189,35 +2020-07-04,Greene,Indiana,18055,190,35 +2020-07-05,Greene,Indiana,18055,193,35 +2020-07-06,Greene,Indiana,18055,194,35 +2020-07-07,Greene,Indiana,18055,195,35 +2020-07-08,Greene,Indiana,18055,195,35 +2020-07-09,Greene,Indiana,18055,196,35 +2020-03-15,Hamilton,Indiana,18057,1,0 +2020-03-16,Hamilton,Indiana,18057,1,0 +2020-03-17,Hamilton,Indiana,18057,1,0 +2020-03-18,Hamilton,Indiana,18057,2,0 +2020-03-19,Hamilton,Indiana,18057,2,0 +2020-03-20,Hamilton,Indiana,18057,5,0 +2020-03-21,Hamilton,Indiana,18057,10,0 +2020-03-22,Hamilton,Indiana,18057,18,0 +2020-03-23,Hamilton,Indiana,18057,21,0 +2020-03-24,Hamilton,Indiana,18057,25,0 +2020-03-25,Hamilton,Indiana,18057,30,0 +2020-03-26,Hamilton,Indiana,18057,40,0 +2020-03-27,Hamilton,Indiana,18057,53,0 +2020-03-28,Hamilton,Indiana,18057,64,0 +2020-03-29,Hamilton,Indiana,18057,83,0 +2020-03-30,Hamilton,Indiana,18057,106,0 +2020-03-31,Hamilton,Indiana,18057,127,0 +2020-04-01,Hamilton,Indiana,18057,179,4 +2020-04-02,Hamilton,Indiana,18057,207,4 +2020-04-03,Hamilton,Indiana,18057,220,4 +2020-04-04,Hamilton,Indiana,18057,265,4 +2020-04-05,Hamilton,Indiana,18057,300,5 +2020-04-06,Hamilton,Indiana,18057,335,5 +2020-04-07,Hamilton,Indiana,18057,363,10 +2020-04-08,Hamilton,Indiana,18057,392,15 +2020-04-09,Hamilton,Indiana,18057,395,16 +2020-04-10,Hamilton,Indiana,18057,431,19 +2020-04-11,Hamilton,Indiana,18057,444,23 +2020-04-12,Hamilton,Indiana,18057,479,24 +2020-04-13,Hamilton,Indiana,18057,491,25 +2020-04-14,Hamilton,Indiana,18057,500,28 +2020-04-15,Hamilton,Indiana,18057,511,28 +2020-04-16,Hamilton,Indiana,18057,521,30 +2020-04-17,Hamilton,Indiana,18057,543,32 +2020-04-18,Hamilton,Indiana,18057,564,36 +2020-04-19,Hamilton,Indiana,18057,584,36 +2020-04-20,Hamilton,Indiana,18057,599,36 +2020-04-21,Hamilton,Indiana,18057,617,40 +2020-04-22,Hamilton,Indiana,18057,626,42 +2020-04-23,Hamilton,Indiana,18057,649,43 +2020-04-24,Hamilton,Indiana,18057,675,46 +2020-04-25,Hamilton,Indiana,18057,704,52 +2020-04-26,Hamilton,Indiana,18057,709,53 +2020-04-27,Hamilton,Indiana,18057,725,53 +2020-04-28,Hamilton,Indiana,18057,735,60 +2020-04-29,Hamilton,Indiana,18057,752,62 +2020-04-30,Hamilton,Indiana,18057,762,64 +2020-05-01,Hamilton,Indiana,18057,802,70 +2020-05-02,Hamilton,Indiana,18057,818,71 +2020-05-03,Hamilton,Indiana,18057,832,72 +2020-05-04,Hamilton,Indiana,18057,853,75 +2020-05-05,Hamilton,Indiana,18057,867,77 +2020-05-06,Hamilton,Indiana,18057,890,80 +2020-05-07,Hamilton,Indiana,18057,903,82 +2020-05-08,Hamilton,Indiana,18057,913,82 +2020-05-09,Hamilton,Indiana,18057,930,84 +2020-05-10,Hamilton,Indiana,18057,935,84 +2020-05-11,Hamilton,Indiana,18057,946,86 +2020-05-12,Hamilton,Indiana,18057,966,88 +2020-05-13,Hamilton,Indiana,18057,970,88 +2020-05-14,Hamilton,Indiana,18057,978,88 +2020-05-15,Hamilton,Indiana,18057,987,91 +2020-05-16,Hamilton,Indiana,18057,1012,95 +2020-05-17,Hamilton,Indiana,18057,1032,95 +2020-05-18,Hamilton,Indiana,18057,1044,95 +2020-05-19,Hamilton,Indiana,18057,1055,97 +2020-05-20,Hamilton,Indiana,18057,1067,96 +2020-05-21,Hamilton,Indiana,18057,1084,96 +2020-05-22,Hamilton,Indiana,18057,1097,96 +2020-05-23,Hamilton,Indiana,18057,1105,96 +2020-05-24,Hamilton,Indiana,18057,1109,96 +2020-05-25,Hamilton,Indiana,18057,1112,97 +2020-05-26,Hamilton,Indiana,18057,1128,97 +2020-05-27,Hamilton,Indiana,18057,1136,96 +2020-05-28,Hamilton,Indiana,18057,1146,98 +2020-05-29,Hamilton,Indiana,18057,1170,99 +2020-05-30,Hamilton,Indiana,18057,1168,99 +2020-05-31,Hamilton,Indiana,18057,1173,99 +2020-06-01,Hamilton,Indiana,18057,1176,99 +2020-06-02,Hamilton,Indiana,18057,1184,99 +2020-06-03,Hamilton,Indiana,18057,1194,100 +2020-06-04,Hamilton,Indiana,18057,1197,100 +2020-06-05,Hamilton,Indiana,18057,1205,100 +2020-06-06,Hamilton,Indiana,18057,1217,100 +2020-06-07,Hamilton,Indiana,18057,1219,100 +2020-06-08,Hamilton,Indiana,18057,1223,100 +2020-06-09,Hamilton,Indiana,18057,1234,99 +2020-06-10,Hamilton,Indiana,18057,1255,100 +2020-06-11,Hamilton,Indiana,18057,1258,100 +2020-06-12,Hamilton,Indiana,18057,1263,101 +2020-06-13,Hamilton,Indiana,18057,1270,101 +2020-06-14,Hamilton,Indiana,18057,1290,101 +2020-06-15,Hamilton,Indiana,18057,1370,101 +2020-06-16,Hamilton,Indiana,18057,1381,101 +2020-06-17,Hamilton,Indiana,18057,1384,101 +2020-06-18,Hamilton,Indiana,18057,1362,101 +2020-06-19,Hamilton,Indiana,18057,1372,101 +2020-06-20,Hamilton,Indiana,18057,1378,102 +2020-06-21,Hamilton,Indiana,18057,1382,102 +2020-06-22,Hamilton,Indiana,18057,1387,102 +2020-06-23,Hamilton,Indiana,18057,1407,102 +2020-06-24,Hamilton,Indiana,18057,1412,102 +2020-06-25,Hamilton,Indiana,18057,1425,102 +2020-06-26,Hamilton,Indiana,18057,1431,102 +2020-06-27,Hamilton,Indiana,18057,1442,102 +2020-06-28,Hamilton,Indiana,18057,1448,102 +2020-06-29,Hamilton,Indiana,18057,1463,103 +2020-06-30,Hamilton,Indiana,18057,1478,105 +2020-07-01,Hamilton,Indiana,18057,1499,105 +2020-07-02,Hamilton,Indiana,18057,1517,105 +2020-07-03,Hamilton,Indiana,18057,1536,105 +2020-07-04,Hamilton,Indiana,18057,1560,105 +2020-07-05,Hamilton,Indiana,18057,1574,106 +2020-07-06,Hamilton,Indiana,18057,1589,106 +2020-07-07,Hamilton,Indiana,18057,1622,107 +2020-07-08,Hamilton,Indiana,18057,1632,107 +2020-07-09,Hamilton,Indiana,18057,1652,107 +2020-03-21,Hancock,Indiana,18059,1,0 +2020-03-22,Hancock,Indiana,18059,2,0 +2020-03-23,Hancock,Indiana,18059,3,0 +2020-03-24,Hancock,Indiana,18059,4,0 +2020-03-25,Hancock,Indiana,18059,8,1 +2020-03-26,Hancock,Indiana,18059,9,1 +2020-03-27,Hancock,Indiana,18059,14,1 +2020-03-28,Hancock,Indiana,18059,19,1 +2020-03-29,Hancock,Indiana,18059,22,1 +2020-03-30,Hancock,Indiana,18059,28,1 +2020-03-31,Hancock,Indiana,18059,26,2 +2020-04-01,Hancock,Indiana,18059,33,2 +2020-04-02,Hancock,Indiana,18059,37,2 +2020-04-03,Hancock,Indiana,18059,41,2 +2020-04-04,Hancock,Indiana,18059,57,2 +2020-04-05,Hancock,Indiana,18059,61,2 +2020-04-06,Hancock,Indiana,18059,72,2 +2020-04-07,Hancock,Indiana,18059,89,2 +2020-04-08,Hancock,Indiana,18059,99,2 +2020-04-09,Hancock,Indiana,18059,100,2 +2020-04-10,Hancock,Indiana,18059,109,4 +2020-04-11,Hancock,Indiana,18059,112,6 +2020-04-12,Hancock,Indiana,18059,118,6 +2020-04-13,Hancock,Indiana,18059,118,6 +2020-04-14,Hancock,Indiana,18059,122,7 +2020-04-15,Hancock,Indiana,18059,130,7 +2020-04-16,Hancock,Indiana,18059,128,7 +2020-04-17,Hancock,Indiana,18059,133,7 +2020-04-18,Hancock,Indiana,18059,136,7 +2020-04-19,Hancock,Indiana,18059,144,8 +2020-04-20,Hancock,Indiana,18059,152,8 +2020-04-21,Hancock,Indiana,18059,150,8 +2020-04-22,Hancock,Indiana,18059,152,8 +2020-04-23,Hancock,Indiana,18059,161,8 +2020-04-24,Hancock,Indiana,18059,172,8 +2020-04-25,Hancock,Indiana,18059,178,8 +2020-04-26,Hancock,Indiana,18059,179,8 +2020-04-27,Hancock,Indiana,18059,185,11 +2020-04-28,Hancock,Indiana,18059,206,11 +2020-04-29,Hancock,Indiana,18059,215,11 +2020-04-30,Hancock,Indiana,18059,220,11 +2020-05-01,Hancock,Indiana,18059,229,11 +2020-05-02,Hancock,Indiana,18059,231,12 +2020-05-03,Hancock,Indiana,18059,232,13 +2020-05-04,Hancock,Indiana,18059,233,13 +2020-05-05,Hancock,Indiana,18059,235,14 +2020-05-06,Hancock,Indiana,18059,239,16 +2020-05-07,Hancock,Indiana,18059,243,17 +2020-05-08,Hancock,Indiana,18059,248,18 +2020-05-09,Hancock,Indiana,18059,266,19 +2020-05-10,Hancock,Indiana,18059,266,19 +2020-05-11,Hancock,Indiana,18059,272,20 +2020-05-12,Hancock,Indiana,18059,272,20 +2020-05-13,Hancock,Indiana,18059,279,21 +2020-05-14,Hancock,Indiana,18059,281,21 +2020-05-15,Hancock,Indiana,18059,285,23 +2020-05-16,Hancock,Indiana,18059,290,24 +2020-05-17,Hancock,Indiana,18059,294,24 +2020-05-18,Hancock,Indiana,18059,295,24 +2020-05-19,Hancock,Indiana,18059,304,25 +2020-05-20,Hancock,Indiana,18059,306,27 +2020-05-21,Hancock,Indiana,18059,313,28 +2020-05-22,Hancock,Indiana,18059,316,28 +2020-05-23,Hancock,Indiana,18059,319,28 +2020-05-24,Hancock,Indiana,18059,321,28 +2020-05-25,Hancock,Indiana,18059,323,28 +2020-05-26,Hancock,Indiana,18059,325,28 +2020-05-27,Hancock,Indiana,18059,327,28 +2020-05-28,Hancock,Indiana,18059,331,28 +2020-05-29,Hancock,Indiana,18059,331,29 +2020-05-30,Hancock,Indiana,18059,335,28 +2020-05-31,Hancock,Indiana,18059,342,28 +2020-06-01,Hancock,Indiana,18059,344,28 +2020-06-02,Hancock,Indiana,18059,349,29 +2020-06-03,Hancock,Indiana,18059,353,29 +2020-06-04,Hancock,Indiana,18059,355,28 +2020-06-05,Hancock,Indiana,18059,358,28 +2020-06-06,Hancock,Indiana,18059,364,28 +2020-06-07,Hancock,Indiana,18059,366,28 +2020-06-08,Hancock,Indiana,18059,370,28 +2020-06-09,Hancock,Indiana,18059,371,29 +2020-06-10,Hancock,Indiana,18059,371,29 +2020-06-11,Hancock,Indiana,18059,371,29 +2020-06-12,Hancock,Indiana,18059,375,29 +2020-06-13,Hancock,Indiana,18059,378,30 +2020-06-14,Hancock,Indiana,18059,383,30 +2020-06-15,Hancock,Indiana,18059,390,30 +2020-06-16,Hancock,Indiana,18059,385,30 +2020-06-17,Hancock,Indiana,18059,386,31 +2020-06-18,Hancock,Indiana,18059,386,31 +2020-06-19,Hancock,Indiana,18059,389,32 +2020-06-20,Hancock,Indiana,18059,392,33 +2020-06-21,Hancock,Indiana,18059,395,34 +2020-06-22,Hancock,Indiana,18059,397,34 +2020-06-23,Hancock,Indiana,18059,397,35 +2020-06-24,Hancock,Indiana,18059,399,35 +2020-06-25,Hancock,Indiana,18059,402,36 +2020-06-26,Hancock,Indiana,18059,402,36 +2020-06-27,Hancock,Indiana,18059,409,36 +2020-06-28,Hancock,Indiana,18059,413,36 +2020-06-29,Hancock,Indiana,18059,418,36 +2020-06-30,Hancock,Indiana,18059,423,36 +2020-07-01,Hancock,Indiana,18059,434,36 +2020-07-02,Hancock,Indiana,18059,431,36 +2020-07-03,Hancock,Indiana,18059,442,36 +2020-07-04,Hancock,Indiana,18059,445,36 +2020-07-05,Hancock,Indiana,18059,453,36 +2020-07-06,Hancock,Indiana,18059,455,36 +2020-07-07,Hancock,Indiana,18059,454,36 +2020-07-08,Hancock,Indiana,18059,457,37 +2020-07-09,Hancock,Indiana,18059,462,37 +2020-03-21,Harrison,Indiana,18061,1,0 +2020-03-22,Harrison,Indiana,18061,1,0 +2020-03-23,Harrison,Indiana,18061,1,0 +2020-03-24,Harrison,Indiana,18061,1,0 +2020-03-25,Harrison,Indiana,18061,2,0 +2020-03-26,Harrison,Indiana,18061,2,0 +2020-03-27,Harrison,Indiana,18061,4,0 +2020-03-28,Harrison,Indiana,18061,7,0 +2020-03-29,Harrison,Indiana,18061,14,0 +2020-03-30,Harrison,Indiana,18061,15,0 +2020-03-31,Harrison,Indiana,18061,15,0 +2020-04-01,Harrison,Indiana,18061,15,0 +2020-04-02,Harrison,Indiana,18061,18,0 +2020-04-03,Harrison,Indiana,18061,23,1 +2020-04-04,Harrison,Indiana,18061,28,1 +2020-04-05,Harrison,Indiana,18061,33,1 +2020-04-06,Harrison,Indiana,18061,38,1 +2020-04-07,Harrison,Indiana,18061,48,1 +2020-04-08,Harrison,Indiana,18061,48,1 +2020-04-09,Harrison,Indiana,18061,51,1 +2020-04-10,Harrison,Indiana,18061,50,1 +2020-04-11,Harrison,Indiana,18061,54,2 +2020-04-12,Harrison,Indiana,18061,55,2 +2020-04-13,Harrison,Indiana,18061,58,2 +2020-04-14,Harrison,Indiana,18061,58,2 +2020-04-15,Harrison,Indiana,18061,59,2 +2020-04-16,Harrison,Indiana,18061,61,2 +2020-04-17,Harrison,Indiana,18061,65,2 +2020-04-18,Harrison,Indiana,18061,85,2 +2020-04-19,Harrison,Indiana,18061,87,2 +2020-04-20,Harrison,Indiana,18061,102,3 +2020-04-21,Harrison,Indiana,18061,104,3 +2020-04-22,Harrison,Indiana,18061,106,4 +2020-04-23,Harrison,Indiana,18061,109,5 +2020-04-24,Harrison,Indiana,18061,112,5 +2020-04-25,Harrison,Indiana,18061,116,5 +2020-04-26,Harrison,Indiana,18061,119,6 +2020-04-27,Harrison,Indiana,18061,122,6 +2020-04-28,Harrison,Indiana,18061,126,6 +2020-04-29,Harrison,Indiana,18061,128,8 +2020-04-30,Harrison,Indiana,18061,130,9 +2020-05-01,Harrison,Indiana,18061,130,9 +2020-05-02,Harrison,Indiana,18061,136,9 +2020-05-03,Harrison,Indiana,18061,139,9 +2020-05-04,Harrison,Indiana,18061,139,9 +2020-05-05,Harrison,Indiana,18061,139,10 +2020-05-06,Harrison,Indiana,18061,146,12 +2020-05-07,Harrison,Indiana,18061,151,12 +2020-05-08,Harrison,Indiana,18061,154,12 +2020-05-09,Harrison,Indiana,18061,157,12 +2020-05-10,Harrison,Indiana,18061,158,12 +2020-05-11,Harrison,Indiana,18061,161,13 +2020-05-12,Harrison,Indiana,18061,163,14 +2020-05-13,Harrison,Indiana,18061,166,14 +2020-05-14,Harrison,Indiana,18061,167,15 +2020-05-15,Harrison,Indiana,18061,169,16 +2020-05-16,Harrison,Indiana,18061,168,16 +2020-05-17,Harrison,Indiana,18061,171,16 +2020-05-18,Harrison,Indiana,18061,174,17 +2020-05-19,Harrison,Indiana,18061,175,19 +2020-05-20,Harrison,Indiana,18061,176,20 +2020-05-21,Harrison,Indiana,18061,179,21 +2020-05-22,Harrison,Indiana,18061,180,21 +2020-05-23,Harrison,Indiana,18061,184,22 +2020-05-24,Harrison,Indiana,18061,185,22 +2020-05-25,Harrison,Indiana,18061,186,22 +2020-05-26,Harrison,Indiana,18061,189,23 +2020-05-27,Harrison,Indiana,18061,190,23 +2020-05-28,Harrison,Indiana,18061,191,23 +2020-05-29,Harrison,Indiana,18061,194,23 +2020-05-30,Harrison,Indiana,18061,196,24 +2020-05-31,Harrison,Indiana,18061,196,24 +2020-06-01,Harrison,Indiana,18061,196,24 +2020-06-02,Harrison,Indiana,18061,198,24 +2020-06-03,Harrison,Indiana,18061,198,24 +2020-06-04,Harrison,Indiana,18061,197,24 +2020-06-05,Harrison,Indiana,18061,198,24 +2020-06-06,Harrison,Indiana,18061,198,24 +2020-06-07,Harrison,Indiana,18061,197,24 +2020-06-08,Harrison,Indiana,18061,199,24 +2020-06-09,Harrison,Indiana,18061,200,24 +2020-06-10,Harrison,Indiana,18061,200,24 +2020-06-11,Harrison,Indiana,18061,200,24 +2020-06-12,Harrison,Indiana,18061,200,24 +2020-06-13,Harrison,Indiana,18061,200,24 +2020-06-14,Harrison,Indiana,18061,200,24 +2020-06-15,Harrison,Indiana,18061,200,24 +2020-06-16,Harrison,Indiana,18061,201,24 +2020-06-17,Harrison,Indiana,18061,202,24 +2020-06-18,Harrison,Indiana,18061,203,24 +2020-06-19,Harrison,Indiana,18061,202,24 +2020-06-20,Harrison,Indiana,18061,202,24 +2020-06-21,Harrison,Indiana,18061,202,24 +2020-06-22,Harrison,Indiana,18061,202,24 +2020-06-23,Harrison,Indiana,18061,202,24 +2020-06-24,Harrison,Indiana,18061,203,24 +2020-06-25,Harrison,Indiana,18061,205,24 +2020-06-26,Harrison,Indiana,18061,205,24 +2020-06-27,Harrison,Indiana,18061,205,24 +2020-06-28,Harrison,Indiana,18061,207,24 +2020-06-29,Harrison,Indiana,18061,208,24 +2020-06-30,Harrison,Indiana,18061,210,24 +2020-07-01,Harrison,Indiana,18061,210,24 +2020-07-02,Harrison,Indiana,18061,210,24 +2020-07-03,Harrison,Indiana,18061,212,24 +2020-07-04,Harrison,Indiana,18061,214,24 +2020-07-05,Harrison,Indiana,18061,215,24 +2020-07-06,Harrison,Indiana,18061,220,24 +2020-07-07,Harrison,Indiana,18061,218,24 +2020-07-08,Harrison,Indiana,18061,218,24 +2020-07-09,Harrison,Indiana,18061,219,24 +2020-03-08,Hendricks,Indiana,18063,1,0 +2020-03-09,Hendricks,Indiana,18063,2,0 +2020-03-10,Hendricks,Indiana,18063,2,0 +2020-03-11,Hendricks,Indiana,18063,2,0 +2020-03-12,Hendricks,Indiana,18063,2,0 +2020-03-13,Hendricks,Indiana,18063,2,0 +2020-03-14,Hendricks,Indiana,18063,2,0 +2020-03-15,Hendricks,Indiana,18063,2,0 +2020-03-16,Hendricks,Indiana,18063,3,0 +2020-03-17,Hendricks,Indiana,18063,3,0 +2020-03-18,Hendricks,Indiana,18063,4,0 +2020-03-19,Hendricks,Indiana,18063,4,0 +2020-03-20,Hendricks,Indiana,18063,4,0 +2020-03-21,Hendricks,Indiana,18063,6,0 +2020-03-22,Hendricks,Indiana,18063,8,0 +2020-03-23,Hendricks,Indiana,18063,12,0 +2020-03-24,Hendricks,Indiana,18063,13,0 +2020-03-25,Hendricks,Indiana,18063,15,0 +2020-03-26,Hendricks,Indiana,18063,21,0 +2020-03-27,Hendricks,Indiana,18063,28,2 +2020-03-28,Hendricks,Indiana,18063,36,2 +2020-03-29,Hendricks,Indiana,18063,48,1 +2020-03-30,Hendricks,Indiana,18063,58,1 +2020-03-31,Hendricks,Indiana,18063,70,1 +2020-04-01,Hendricks,Indiana,18063,91,1 +2020-04-02,Hendricks,Indiana,18063,116,1 +2020-04-03,Hendricks,Indiana,18063,138,1 +2020-04-04,Hendricks,Indiana,18063,163,4 +2020-04-05,Hendricks,Indiana,18063,177,4 +2020-04-06,Hendricks,Indiana,18063,197,6 +2020-04-07,Hendricks,Indiana,18063,226,6 +2020-04-08,Hendricks,Indiana,18063,244,7 +2020-04-09,Hendricks,Indiana,18063,259,11 +2020-04-10,Hendricks,Indiana,18063,291,12 +2020-04-11,Hendricks,Indiana,18063,307,15 +2020-04-12,Hendricks,Indiana,18063,321,16 +2020-04-13,Hendricks,Indiana,18063,336,16 +2020-04-14,Hendricks,Indiana,18063,357,18 +2020-04-15,Hendricks,Indiana,18063,367,19 +2020-04-16,Hendricks,Indiana,18063,385,22 +2020-04-17,Hendricks,Indiana,18063,414,24 +2020-04-18,Hendricks,Indiana,18063,442,24 +2020-04-19,Hendricks,Indiana,18063,478,24 +2020-04-20,Hendricks,Indiana,18063,506,24 +2020-04-21,Hendricks,Indiana,18063,519,26 +2020-04-22,Hendricks,Indiana,18063,527,28 +2020-04-23,Hendricks,Indiana,18063,577,33 +2020-04-24,Hendricks,Indiana,18063,594,34 +2020-04-25,Hendricks,Indiana,18063,623,34 +2020-04-26,Hendricks,Indiana,18063,656,38 +2020-04-27,Hendricks,Indiana,18063,656,36 +2020-04-28,Hendricks,Indiana,18063,658,38 +2020-04-29,Hendricks,Indiana,18063,671,40 +2020-04-30,Hendricks,Indiana,18063,681,42 +2020-05-01,Hendricks,Indiana,18063,716,49 +2020-05-02,Hendricks,Indiana,18063,761,51 +2020-05-03,Hendricks,Indiana,18063,780,51 +2020-05-04,Hendricks,Indiana,18063,790,51 +2020-05-05,Hendricks,Indiana,18063,801,54 +2020-05-06,Hendricks,Indiana,18063,899,56 +2020-05-07,Hendricks,Indiana,18063,910,60 +2020-05-08,Hendricks,Indiana,18063,944,63 +2020-05-09,Hendricks,Indiana,18063,969,65 +2020-05-10,Hendricks,Indiana,18063,976,65 +2020-05-11,Hendricks,Indiana,18063,991,66 +2020-05-12,Hendricks,Indiana,18063,1003,68 +2020-05-13,Hendricks,Indiana,18063,1007,69 +2020-05-14,Hendricks,Indiana,18063,1015,70 +2020-05-15,Hendricks,Indiana,18063,1030,70 +2020-05-16,Hendricks,Indiana,18063,1038,73 +2020-05-17,Hendricks,Indiana,18063,1050,74 +2020-05-18,Hendricks,Indiana,18063,1057,74 +2020-05-19,Hendricks,Indiana,18063,1068,74 +2020-05-20,Hendricks,Indiana,18063,1079,74 +2020-05-21,Hendricks,Indiana,18063,1106,76 +2020-05-22,Hendricks,Indiana,18063,1114,76 +2020-05-23,Hendricks,Indiana,18063,1123,78 +2020-05-24,Hendricks,Indiana,18063,1137,78 +2020-05-25,Hendricks,Indiana,18063,1143,80 +2020-05-26,Hendricks,Indiana,18063,1150,80 +2020-05-27,Hendricks,Indiana,18063,1155,80 +2020-05-28,Hendricks,Indiana,18063,1162,81 +2020-05-29,Hendricks,Indiana,18063,1182,85 +2020-05-30,Hendricks,Indiana,18063,1187,85 +2020-05-31,Hendricks,Indiana,18063,1190,85 +2020-06-01,Hendricks,Indiana,18063,1192,85 +2020-06-02,Hendricks,Indiana,18063,1198,87 +2020-06-03,Hendricks,Indiana,18063,1201,88 +2020-06-04,Hendricks,Indiana,18063,1213,90 +2020-06-05,Hendricks,Indiana,18063,1225,92 +2020-06-06,Hendricks,Indiana,18063,1233,93 +2020-06-07,Hendricks,Indiana,18063,1239,93 +2020-06-08,Hendricks,Indiana,18063,1240,93 +2020-06-09,Hendricks,Indiana,18063,1245,96 +2020-06-10,Hendricks,Indiana,18063,1256,97 +2020-06-11,Hendricks,Indiana,18063,1268,100 +2020-06-12,Hendricks,Indiana,18063,1283,104 +2020-06-13,Hendricks,Indiana,18063,1288,104 +2020-06-14,Hendricks,Indiana,18063,1292,105 +2020-06-15,Hendricks,Indiana,18063,1298,106 +2020-06-16,Hendricks,Indiana,18063,1303,106 +2020-06-17,Hendricks,Indiana,18063,1305,107 +2020-06-18,Hendricks,Indiana,18063,1309,108 +2020-06-19,Hendricks,Indiana,18063,1319,109 +2020-06-20,Hendricks,Indiana,18063,1331,110 +2020-06-21,Hendricks,Indiana,18063,1342,110 +2020-06-22,Hendricks,Indiana,18063,1344,110 +2020-06-23,Hendricks,Indiana,18063,1351,110 +2020-06-24,Hendricks,Indiana,18063,1361,111 +2020-06-25,Hendricks,Indiana,18063,1370,113 +2020-06-26,Hendricks,Indiana,18063,1372,113 +2020-06-27,Hendricks,Indiana,18063,1380,115 +2020-06-28,Hendricks,Indiana,18063,1382,115 +2020-06-29,Hendricks,Indiana,18063,1385,115 +2020-06-30,Hendricks,Indiana,18063,1390,115 +2020-07-01,Hendricks,Indiana,18063,1390,115 +2020-07-02,Hendricks,Indiana,18063,1395,116 +2020-07-03,Hendricks,Indiana,18063,1410,116 +2020-07-04,Hendricks,Indiana,18063,1414,116 +2020-07-05,Hendricks,Indiana,18063,1427,116 +2020-07-06,Hendricks,Indiana,18063,1434,116 +2020-07-07,Hendricks,Indiana,18063,1438,116 +2020-07-08,Hendricks,Indiana,18063,1449,116 +2020-07-09,Hendricks,Indiana,18063,1463,116 +2020-03-27,Henry,Indiana,18065,1,0 +2020-03-28,Henry,Indiana,18065,1,0 +2020-03-29,Henry,Indiana,18065,2,0 +2020-03-30,Henry,Indiana,18065,2,0 +2020-03-31,Henry,Indiana,18065,1,0 +2020-04-01,Henry,Indiana,18065,4,0 +2020-04-02,Henry,Indiana,18065,6,0 +2020-04-03,Henry,Indiana,18065,7,0 +2020-04-04,Henry,Indiana,18065,8,0 +2020-04-05,Henry,Indiana,18065,11,0 +2020-04-06,Henry,Indiana,18065,13,0 +2020-04-07,Henry,Indiana,18065,16,0 +2020-04-08,Henry,Indiana,18065,19,0 +2020-04-09,Henry,Indiana,18065,19,0 +2020-04-10,Henry,Indiana,18065,20,0 +2020-04-11,Henry,Indiana,18065,22,0 +2020-04-12,Henry,Indiana,18065,23,0 +2020-04-13,Henry,Indiana,18065,23,0 +2020-04-14,Henry,Indiana,18065,22,0 +2020-04-15,Henry,Indiana,18065,23,1 +2020-04-16,Henry,Indiana,18065,24,1 +2020-04-17,Henry,Indiana,18065,26,1 +2020-04-18,Henry,Indiana,18065,29,1 +2020-04-19,Henry,Indiana,18065,31,1 +2020-04-20,Henry,Indiana,18065,31,1 +2020-04-21,Henry,Indiana,18065,29,1 +2020-04-22,Henry,Indiana,18065,30,1 +2020-04-23,Henry,Indiana,18065,31,1 +2020-04-24,Henry,Indiana,18065,32,1 +2020-04-25,Henry,Indiana,18065,33,1 +2020-04-26,Henry,Indiana,18065,34,1 +2020-04-27,Henry,Indiana,18065,35,1 +2020-04-28,Henry,Indiana,18065,37,1 +2020-04-29,Henry,Indiana,18065,38,1 +2020-04-30,Henry,Indiana,18065,40,1 +2020-05-01,Henry,Indiana,18065,42,1 +2020-05-02,Henry,Indiana,18065,45,1 +2020-05-03,Henry,Indiana,18065,46,1 +2020-05-04,Henry,Indiana,18065,50,1 +2020-05-05,Henry,Indiana,18065,49,2 +2020-05-06,Henry,Indiana,18065,49,2 +2020-05-07,Henry,Indiana,18065,61,2 +2020-05-08,Henry,Indiana,18065,73,2 +2020-05-09,Henry,Indiana,18065,75,2 +2020-05-10,Henry,Indiana,18065,84,2 +2020-05-11,Henry,Indiana,18065,88,2 +2020-05-12,Henry,Indiana,18065,95,2 +2020-05-13,Henry,Indiana,18065,100,2 +2020-05-14,Henry,Indiana,18065,103,2 +2020-05-15,Henry,Indiana,18065,110,2 +2020-05-16,Henry,Indiana,18065,126,3 +2020-05-17,Henry,Indiana,18065,128,3 +2020-05-18,Henry,Indiana,18065,131,3 +2020-05-19,Henry,Indiana,18065,140,4 +2020-05-20,Henry,Indiana,18065,142,4 +2020-05-21,Henry,Indiana,18065,155,4 +2020-05-22,Henry,Indiana,18065,156,5 +2020-05-23,Henry,Indiana,18065,158,6 +2020-05-24,Henry,Indiana,18065,159,6 +2020-05-25,Henry,Indiana,18065,162,7 +2020-05-26,Henry,Indiana,18065,164,9 +2020-05-27,Henry,Indiana,18065,174,9 +2020-05-28,Henry,Indiana,18065,173,10 +2020-05-29,Henry,Indiana,18065,173,10 +2020-05-30,Henry,Indiana,18065,176,11 +2020-05-31,Henry,Indiana,18065,186,11 +2020-06-01,Henry,Indiana,18065,188,11 +2020-06-02,Henry,Indiana,18065,188,12 +2020-06-03,Henry,Indiana,18065,188,12 +2020-06-04,Henry,Indiana,18065,188,12 +2020-06-05,Henry,Indiana,18065,189,12 +2020-06-06,Henry,Indiana,18065,190,12 +2020-06-07,Henry,Indiana,18065,192,12 +2020-06-08,Henry,Indiana,18065,193,12 +2020-06-09,Henry,Indiana,18065,194,12 +2020-06-10,Henry,Indiana,18065,196,13 +2020-06-11,Henry,Indiana,18065,204,13 +2020-06-12,Henry,Indiana,18065,205,14 +2020-06-13,Henry,Indiana,18065,205,14 +2020-06-14,Henry,Indiana,18065,207,14 +2020-06-15,Henry,Indiana,18065,208,14 +2020-06-16,Henry,Indiana,18065,208,14 +2020-06-17,Henry,Indiana,18065,209,15 +2020-06-18,Henry,Indiana,18065,209,15 +2020-06-19,Henry,Indiana,18065,210,15 +2020-06-20,Henry,Indiana,18065,211,15 +2020-06-21,Henry,Indiana,18065,214,15 +2020-06-22,Henry,Indiana,18065,215,15 +2020-06-23,Henry,Indiana,18065,216,15 +2020-06-24,Henry,Indiana,18065,216,15 +2020-06-25,Henry,Indiana,18065,220,15 +2020-06-26,Henry,Indiana,18065,221,15 +2020-06-27,Henry,Indiana,18065,221,15 +2020-06-28,Henry,Indiana,18065,225,15 +2020-06-29,Henry,Indiana,18065,237,15 +2020-06-30,Henry,Indiana,18065,240,15 +2020-07-01,Henry,Indiana,18065,240,15 +2020-07-02,Henry,Indiana,18065,241,15 +2020-07-03,Henry,Indiana,18065,248,15 +2020-07-04,Henry,Indiana,18065,263,15 +2020-07-05,Henry,Indiana,18065,268,15 +2020-07-06,Henry,Indiana,18065,279,15 +2020-07-07,Henry,Indiana,18065,285,16 +2020-07-08,Henry,Indiana,18065,287,16 +2020-07-09,Henry,Indiana,18065,298,16 +2020-03-11,Howard,Indiana,18067,1,0 +2020-03-12,Howard,Indiana,18067,1,0 +2020-03-13,Howard,Indiana,18067,1,0 +2020-03-14,Howard,Indiana,18067,1,0 +2020-03-15,Howard,Indiana,18067,1,0 +2020-03-16,Howard,Indiana,18067,2,0 +2020-03-17,Howard,Indiana,18067,2,0 +2020-03-18,Howard,Indiana,18067,2,0 +2020-03-19,Howard,Indiana,18067,5,0 +2020-03-20,Howard,Indiana,18067,5,0 +2020-03-21,Howard,Indiana,18067,5,0 +2020-03-22,Howard,Indiana,18067,6,0 +2020-03-23,Howard,Indiana,18067,6,0 +2020-03-24,Howard,Indiana,18067,6,0 +2020-03-25,Howard,Indiana,18067,6,1 +2020-03-26,Howard,Indiana,18067,6,1 +2020-03-27,Howard,Indiana,18067,7,1 +2020-03-28,Howard,Indiana,18067,9,1 +2020-03-29,Howard,Indiana,18067,13,2 +2020-03-30,Howard,Indiana,18067,15,2 +2020-03-31,Howard,Indiana,18067,17,2 +2020-04-01,Howard,Indiana,18067,21,2 +2020-04-02,Howard,Indiana,18067,25,3 +2020-04-03,Howard,Indiana,18067,26,3 +2020-04-04,Howard,Indiana,18067,28,3 +2020-04-05,Howard,Indiana,18067,28,3 +2020-04-06,Howard,Indiana,18067,33,3 +2020-04-07,Howard,Indiana,18067,38,5 +2020-04-08,Howard,Indiana,18067,45,5 +2020-04-09,Howard,Indiana,18067,43,5 +2020-04-10,Howard,Indiana,18067,47,5 +2020-04-11,Howard,Indiana,18067,47,5 +2020-04-12,Howard,Indiana,18067,49,5 +2020-04-13,Howard,Indiana,18067,51,5 +2020-04-14,Howard,Indiana,18067,51,5 +2020-04-15,Howard,Indiana,18067,61,5 +2020-04-16,Howard,Indiana,18067,62,5 +2020-04-17,Howard,Indiana,18067,62,5 +2020-04-18,Howard,Indiana,18067,69,5 +2020-04-19,Howard,Indiana,18067,69,5 +2020-04-20,Howard,Indiana,18067,73,5 +2020-04-21,Howard,Indiana,18067,72,5 +2020-04-22,Howard,Indiana,18067,76,5 +2020-04-23,Howard,Indiana,18067,77,5 +2020-04-24,Howard,Indiana,18067,82,5 +2020-04-25,Howard,Indiana,18067,84,6 +2020-04-26,Howard,Indiana,18067,118,6 +2020-04-27,Howard,Indiana,18067,153,6 +2020-04-28,Howard,Indiana,18067,159,6 +2020-04-29,Howard,Indiana,18067,170,6 +2020-04-30,Howard,Indiana,18067,173,6 +2020-05-01,Howard,Indiana,18067,177,8 +2020-05-02,Howard,Indiana,18067,186,10 +2020-05-03,Howard,Indiana,18067,192,10 +2020-05-04,Howard,Indiana,18067,203,10 +2020-05-05,Howard,Indiana,18067,212,10 +2020-05-06,Howard,Indiana,18067,221,10 +2020-05-07,Howard,Indiana,18067,226,10 +2020-05-08,Howard,Indiana,18067,235,10 +2020-05-09,Howard,Indiana,18067,243,10 +2020-05-10,Howard,Indiana,18067,246,10 +2020-05-11,Howard,Indiana,18067,257,10 +2020-05-12,Howard,Indiana,18067,261,10 +2020-05-13,Howard,Indiana,18067,259,10 +2020-05-14,Howard,Indiana,18067,261,11 +2020-05-15,Howard,Indiana,18067,264,12 +2020-05-16,Howard,Indiana,18067,287,12 +2020-05-17,Howard,Indiana,18067,287,12 +2020-05-18,Howard,Indiana,18067,299,13 +2020-05-19,Howard,Indiana,18067,306,15 +2020-05-20,Howard,Indiana,18067,334,18 +2020-05-21,Howard,Indiana,18067,339,18 +2020-05-22,Howard,Indiana,18067,342,18 +2020-05-23,Howard,Indiana,18067,347,18 +2020-05-24,Howard,Indiana,18067,348,18 +2020-05-25,Howard,Indiana,18067,359,19 +2020-05-26,Howard,Indiana,18067,368,20 +2020-05-27,Howard,Indiana,18067,380,22 +2020-05-28,Howard,Indiana,18067,382,26 +2020-05-29,Howard,Indiana,18067,399,28 +2020-05-30,Howard,Indiana,18067,408,30 +2020-05-31,Howard,Indiana,18067,412,30 +2020-06-01,Howard,Indiana,18067,419,30 +2020-06-02,Howard,Indiana,18067,433,36 +2020-06-03,Howard,Indiana,18067,441,36 +2020-06-04,Howard,Indiana,18067,444,38 +2020-06-05,Howard,Indiana,18067,446,38 +2020-06-06,Howard,Indiana,18067,448,39 +2020-06-07,Howard,Indiana,18067,448,39 +2020-06-08,Howard,Indiana,18067,450,40 +2020-06-09,Howard,Indiana,18067,454,44 +2020-06-10,Howard,Indiana,18067,456,45 +2020-06-11,Howard,Indiana,18067,459,47 +2020-06-12,Howard,Indiana,18067,463,47 +2020-06-13,Howard,Indiana,18067,468,48 +2020-06-14,Howard,Indiana,18067,474,48 +2020-06-15,Howard,Indiana,18067,477,48 +2020-06-16,Howard,Indiana,18067,481,50 +2020-06-17,Howard,Indiana,18067,484,50 +2020-06-18,Howard,Indiana,18067,497,50 +2020-06-19,Howard,Indiana,18067,499,51 +2020-06-20,Howard,Indiana,18067,502,51 +2020-06-21,Howard,Indiana,18067,504,51 +2020-06-22,Howard,Indiana,18067,505,52 +2020-06-23,Howard,Indiana,18067,506,53 +2020-06-24,Howard,Indiana,18067,514,53 +2020-06-25,Howard,Indiana,18067,529,53 +2020-06-26,Howard,Indiana,18067,532,54 +2020-06-27,Howard,Indiana,18067,541,58 +2020-06-28,Howard,Indiana,18067,542,58 +2020-06-29,Howard,Indiana,18067,543,58 +2020-06-30,Howard,Indiana,18067,547,59 +2020-07-01,Howard,Indiana,18067,548,59 +2020-07-02,Howard,Indiana,18067,555,60 +2020-07-03,Howard,Indiana,18067,565,60 +2020-07-04,Howard,Indiana,18067,570,60 +2020-07-05,Howard,Indiana,18067,580,60 +2020-07-06,Howard,Indiana,18067,582,60 +2020-07-07,Howard,Indiana,18067,585,60 +2020-07-08,Howard,Indiana,18067,585,61 +2020-07-09,Howard,Indiana,18067,587,61 +2020-03-27,Huntington,Indiana,18069,1,0 +2020-03-28,Huntington,Indiana,18069,1,0 +2020-03-29,Huntington,Indiana,18069,1,0 +2020-03-30,Huntington,Indiana,18069,2,0 +2020-03-31,Huntington,Indiana,18069,2,0 +2020-04-01,Huntington,Indiana,18069,2,0 +2020-04-02,Huntington,Indiana,18069,3,1 +2020-04-03,Huntington,Indiana,18069,3,1 +2020-04-04,Huntington,Indiana,18069,5,1 +2020-04-05,Huntington,Indiana,18069,4,1 +2020-04-06,Huntington,Indiana,18069,4,1 +2020-04-07,Huntington,Indiana,18069,6,1 +2020-04-08,Huntington,Indiana,18069,6,1 +2020-04-09,Huntington,Indiana,18069,6,1 +2020-04-10,Huntington,Indiana,18069,6,1 +2020-04-11,Huntington,Indiana,18069,6,1 +2020-04-12,Huntington,Indiana,18069,7,1 +2020-04-13,Huntington,Indiana,18069,6,1 +2020-04-14,Huntington,Indiana,18069,6,1 +2020-04-15,Huntington,Indiana,18069,6,1 +2020-04-16,Huntington,Indiana,18069,6,1 +2020-04-17,Huntington,Indiana,18069,6,1 +2020-04-18,Huntington,Indiana,18069,6,1 +2020-04-19,Huntington,Indiana,18069,6,1 +2020-04-20,Huntington,Indiana,18069,6,1 +2020-04-21,Huntington,Indiana,18069,6,1 +2020-04-22,Huntington,Indiana,18069,6,2 +2020-04-23,Huntington,Indiana,18069,6,2 +2020-04-24,Huntington,Indiana,18069,6,2 +2020-04-25,Huntington,Indiana,18069,6,2 +2020-04-26,Huntington,Indiana,18069,7,2 +2020-04-27,Huntington,Indiana,18069,9,2 +2020-04-28,Huntington,Indiana,18069,9,2 +2020-04-29,Huntington,Indiana,18069,9,2 +2020-04-30,Huntington,Indiana,18069,9,2 +2020-05-01,Huntington,Indiana,18069,9,2 +2020-05-02,Huntington,Indiana,18069,10,2 +2020-05-03,Huntington,Indiana,18069,11,2 +2020-05-04,Huntington,Indiana,18069,11,2 +2020-05-05,Huntington,Indiana,18069,11,2 +2020-05-06,Huntington,Indiana,18069,12,2 +2020-05-07,Huntington,Indiana,18069,12,2 +2020-05-08,Huntington,Indiana,18069,13,2 +2020-05-09,Huntington,Indiana,18069,13,2 +2020-05-10,Huntington,Indiana,18069,14,2 +2020-05-11,Huntington,Indiana,18069,14,2 +2020-05-12,Huntington,Indiana,18069,17,2 +2020-05-13,Huntington,Indiana,18069,17,2 +2020-05-14,Huntington,Indiana,18069,18,2 +2020-05-15,Huntington,Indiana,18069,19,2 +2020-05-16,Huntington,Indiana,18069,20,2 +2020-05-17,Huntington,Indiana,18069,21,2 +2020-05-18,Huntington,Indiana,18069,21,2 +2020-05-19,Huntington,Indiana,18069,20,2 +2020-05-20,Huntington,Indiana,18069,20,2 +2020-05-21,Huntington,Indiana,18069,20,2 +2020-05-22,Huntington,Indiana,18069,20,2 +2020-05-23,Huntington,Indiana,18069,22,2 +2020-05-24,Huntington,Indiana,18069,22,2 +2020-05-25,Huntington,Indiana,18069,26,2 +2020-05-26,Huntington,Indiana,18069,26,2 +2020-05-27,Huntington,Indiana,18069,26,2 +2020-05-28,Huntington,Indiana,18069,26,2 +2020-05-29,Huntington,Indiana,18069,27,2 +2020-05-30,Huntington,Indiana,18069,27,2 +2020-05-31,Huntington,Indiana,18069,28,2 +2020-06-01,Huntington,Indiana,18069,28,2 +2020-06-02,Huntington,Indiana,18069,28,2 +2020-06-03,Huntington,Indiana,18069,34,2 +2020-06-04,Huntington,Indiana,18069,38,2 +2020-06-05,Huntington,Indiana,18069,38,2 +2020-06-06,Huntington,Indiana,18069,39,2 +2020-06-07,Huntington,Indiana,18069,42,2 +2020-06-08,Huntington,Indiana,18069,44,2 +2020-06-09,Huntington,Indiana,18069,46,2 +2020-06-10,Huntington,Indiana,18069,49,2 +2020-06-11,Huntington,Indiana,18069,49,2 +2020-06-12,Huntington,Indiana,18069,49,2 +2020-06-13,Huntington,Indiana,18069,51,2 +2020-06-14,Huntington,Indiana,18069,51,2 +2020-06-15,Huntington,Indiana,18069,52,2 +2020-06-16,Huntington,Indiana,18069,55,2 +2020-06-17,Huntington,Indiana,18069,55,2 +2020-06-18,Huntington,Indiana,18069,57,2 +2020-06-19,Huntington,Indiana,18069,58,2 +2020-06-20,Huntington,Indiana,18069,57,2 +2020-06-21,Huntington,Indiana,18069,60,2 +2020-06-22,Huntington,Indiana,18069,61,2 +2020-06-23,Huntington,Indiana,18069,62,2 +2020-06-24,Huntington,Indiana,18069,63,2 +2020-06-25,Huntington,Indiana,18069,64,2 +2020-06-26,Huntington,Indiana,18069,65,2 +2020-06-27,Huntington,Indiana,18069,66,2 +2020-06-28,Huntington,Indiana,18069,67,2 +2020-06-29,Huntington,Indiana,18069,70,2 +2020-06-30,Huntington,Indiana,18069,70,2 +2020-07-01,Huntington,Indiana,18069,70,2 +2020-07-02,Huntington,Indiana,18069,70,2 +2020-07-03,Huntington,Indiana,18069,71,2 +2020-07-04,Huntington,Indiana,18069,74,2 +2020-07-05,Huntington,Indiana,18069,81,2 +2020-07-06,Huntington,Indiana,18069,81,2 +2020-07-07,Huntington,Indiana,18069,79,2 +2020-07-08,Huntington,Indiana,18069,79,2 +2020-07-09,Huntington,Indiana,18069,83,2 +2020-03-24,Jackson,Indiana,18071,1,0 +2020-03-25,Jackson,Indiana,18071,1,0 +2020-03-26,Jackson,Indiana,18071,2,0 +2020-03-27,Jackson,Indiana,18071,4,0 +2020-03-28,Jackson,Indiana,18071,7,0 +2020-03-29,Jackson,Indiana,18071,7,0 +2020-03-30,Jackson,Indiana,18071,8,0 +2020-03-31,Jackson,Indiana,18071,8,0 +2020-04-01,Jackson,Indiana,18071,10,0 +2020-04-02,Jackson,Indiana,18071,19,0 +2020-04-03,Jackson,Indiana,18071,25,0 +2020-04-04,Jackson,Indiana,18071,28,0 +2020-04-05,Jackson,Indiana,18071,36,0 +2020-04-06,Jackson,Indiana,18071,37,0 +2020-04-07,Jackson,Indiana,18071,40,0 +2020-04-08,Jackson,Indiana,18071,46,0 +2020-04-09,Jackson,Indiana,18071,53,0 +2020-04-10,Jackson,Indiana,18071,57,0 +2020-04-11,Jackson,Indiana,18071,64,0 +2020-04-12,Jackson,Indiana,18071,70,0 +2020-04-13,Jackson,Indiana,18071,70,0 +2020-04-14,Jackson,Indiana,18071,70,0 +2020-04-15,Jackson,Indiana,18071,74,0 +2020-04-16,Jackson,Indiana,18071,77,0 +2020-04-17,Jackson,Indiana,18071,77,0 +2020-04-18,Jackson,Indiana,18071,84,0 +2020-04-19,Jackson,Indiana,18071,90,0 +2020-04-20,Jackson,Indiana,18071,89,0 +2020-04-21,Jackson,Indiana,18071,98,0 +2020-04-22,Jackson,Indiana,18071,98,0 +2020-04-23,Jackson,Indiana,18071,101,0 +2020-04-24,Jackson,Indiana,18071,102,0 +2020-04-25,Jackson,Indiana,18071,109,0 +2020-04-26,Jackson,Indiana,18071,115,0 +2020-04-27,Jackson,Indiana,18071,119,0 +2020-04-28,Jackson,Indiana,18071,126,1 +2020-04-29,Jackson,Indiana,18071,129,1 +2020-04-30,Jackson,Indiana,18071,139,1 +2020-05-01,Jackson,Indiana,18071,158,1 +2020-05-02,Jackson,Indiana,18071,164,1 +2020-05-03,Jackson,Indiana,18071,166,1 +2020-05-04,Jackson,Indiana,18071,167,1 +2020-05-05,Jackson,Indiana,18071,185,1 +2020-05-06,Jackson,Indiana,18071,190,1 +2020-05-07,Jackson,Indiana,18071,221,1 +2020-05-08,Jackson,Indiana,18071,253,1 +2020-05-09,Jackson,Indiana,18071,276,1 +2020-05-10,Jackson,Indiana,18071,280,1 +2020-05-11,Jackson,Indiana,18071,284,1 +2020-05-12,Jackson,Indiana,18071,287,1 +2020-05-13,Jackson,Indiana,18071,301,1 +2020-05-14,Jackson,Indiana,18071,306,1 +2020-05-15,Jackson,Indiana,18071,315,1 +2020-05-16,Jackson,Indiana,18071,323,2 +2020-05-17,Jackson,Indiana,18071,330,2 +2020-05-18,Jackson,Indiana,18071,335,2 +2020-05-19,Jackson,Indiana,18071,340,2 +2020-05-20,Jackson,Indiana,18071,342,2 +2020-05-21,Jackson,Indiana,18071,349,2 +2020-05-22,Jackson,Indiana,18071,355,2 +2020-05-23,Jackson,Indiana,18071,357,2 +2020-05-24,Jackson,Indiana,18071,363,2 +2020-05-25,Jackson,Indiana,18071,365,2 +2020-05-26,Jackson,Indiana,18071,371,2 +2020-05-27,Jackson,Indiana,18071,372,2 +2020-05-28,Jackson,Indiana,18071,376,2 +2020-05-29,Jackson,Indiana,18071,383,2 +2020-05-30,Jackson,Indiana,18071,386,2 +2020-05-31,Jackson,Indiana,18071,393,2 +2020-06-01,Jackson,Indiana,18071,396,2 +2020-06-02,Jackson,Indiana,18071,398,3 +2020-06-03,Jackson,Indiana,18071,398,3 +2020-06-04,Jackson,Indiana,18071,403,3 +2020-06-05,Jackson,Indiana,18071,405,3 +2020-06-06,Jackson,Indiana,18071,405,3 +2020-06-07,Jackson,Indiana,18071,407,3 +2020-06-08,Jackson,Indiana,18071,408,3 +2020-06-09,Jackson,Indiana,18071,410,3 +2020-06-10,Jackson,Indiana,18071,411,3 +2020-06-11,Jackson,Indiana,18071,417,3 +2020-06-12,Jackson,Indiana,18071,418,3 +2020-06-13,Jackson,Indiana,18071,420,3 +2020-06-14,Jackson,Indiana,18071,420,3 +2020-06-15,Jackson,Indiana,18071,423,3 +2020-06-16,Jackson,Indiana,18071,425,3 +2020-06-17,Jackson,Indiana,18071,426,3 +2020-06-18,Jackson,Indiana,18071,432,4 +2020-06-19,Jackson,Indiana,18071,431,4 +2020-06-20,Jackson,Indiana,18071,432,4 +2020-06-21,Jackson,Indiana,18071,435,4 +2020-06-22,Jackson,Indiana,18071,434,4 +2020-06-23,Jackson,Indiana,18071,436,4 +2020-06-24,Jackson,Indiana,18071,437,4 +2020-06-25,Jackson,Indiana,18071,446,4 +2020-06-26,Jackson,Indiana,18071,447,4 +2020-06-27,Jackson,Indiana,18071,447,4 +2020-06-28,Jackson,Indiana,18071,450,4 +2020-06-29,Jackson,Indiana,18071,455,4 +2020-06-30,Jackson,Indiana,18071,458,4 +2020-07-01,Jackson,Indiana,18071,459,4 +2020-07-02,Jackson,Indiana,18071,462,4 +2020-07-03,Jackson,Indiana,18071,469,4 +2020-07-04,Jackson,Indiana,18071,473,4 +2020-07-05,Jackson,Indiana,18071,474,4 +2020-07-06,Jackson,Indiana,18071,476,4 +2020-07-07,Jackson,Indiana,18071,476,4 +2020-07-08,Jackson,Indiana,18071,477,4 +2020-07-09,Jackson,Indiana,18071,481,4 +2020-03-25,Jasper,Indiana,18073,1,0 +2020-03-26,Jasper,Indiana,18073,3,1 +2020-03-27,Jasper,Indiana,18073,4,1 +2020-03-28,Jasper,Indiana,18073,5,1 +2020-03-29,Jasper,Indiana,18073,6,1 +2020-03-30,Jasper,Indiana,18073,6,1 +2020-03-31,Jasper,Indiana,18073,8,1 +2020-04-01,Jasper,Indiana,18073,9,1 +2020-04-02,Jasper,Indiana,18073,11,1 +2020-04-03,Jasper,Indiana,18073,13,1 +2020-04-04,Jasper,Indiana,18073,15,1 +2020-04-05,Jasper,Indiana,18073,12,1 +2020-04-06,Jasper,Indiana,18073,15,1 +2020-04-07,Jasper,Indiana,18073,15,1 +2020-04-08,Jasper,Indiana,18073,14,1 +2020-04-09,Jasper,Indiana,18073,16,1 +2020-04-10,Jasper,Indiana,18073,15,1 +2020-04-11,Jasper,Indiana,18073,16,1 +2020-04-12,Jasper,Indiana,18073,17,1 +2020-04-13,Jasper,Indiana,18073,18,1 +2020-04-14,Jasper,Indiana,18073,18,1 +2020-04-15,Jasper,Indiana,18073,19,1 +2020-04-16,Jasper,Indiana,18073,19,1 +2020-04-17,Jasper,Indiana,18073,22,1 +2020-04-18,Jasper,Indiana,18073,21,1 +2020-04-19,Jasper,Indiana,18073,22,1 +2020-04-20,Jasper,Indiana,18073,25,1 +2020-04-21,Jasper,Indiana,18073,26,1 +2020-04-22,Jasper,Indiana,18073,24,1 +2020-04-23,Jasper,Indiana,18073,28,1 +2020-04-24,Jasper,Indiana,18073,35,1 +2020-04-25,Jasper,Indiana,18073,33,1 +2020-04-26,Jasper,Indiana,18073,29,1 +2020-04-27,Jasper,Indiana,18073,30,1 +2020-04-28,Jasper,Indiana,18073,32,1 +2020-04-29,Jasper,Indiana,18073,32,1 +2020-04-30,Jasper,Indiana,18073,34,1 +2020-05-01,Jasper,Indiana,18073,34,1 +2020-05-02,Jasper,Indiana,18073,34,1 +2020-05-03,Jasper,Indiana,18073,37,1 +2020-05-04,Jasper,Indiana,18073,37,1 +2020-05-05,Jasper,Indiana,18073,38,1 +2020-05-06,Jasper,Indiana,18073,38,1 +2020-05-07,Jasper,Indiana,18073,38,1 +2020-05-08,Jasper,Indiana,18073,37,1 +2020-05-09,Jasper,Indiana,18073,38,1 +2020-05-10,Jasper,Indiana,18073,40,1 +2020-05-11,Jasper,Indiana,18073,41,1 +2020-05-12,Jasper,Indiana,18073,40,1 +2020-05-13,Jasper,Indiana,18073,41,1 +2020-05-14,Jasper,Indiana,18073,41,1 +2020-05-15,Jasper,Indiana,18073,43,1 +2020-05-16,Jasper,Indiana,18073,44,1 +2020-05-17,Jasper,Indiana,18073,44,1 +2020-05-18,Jasper,Indiana,18073,44,1 +2020-05-19,Jasper,Indiana,18073,43,1 +2020-05-20,Jasper,Indiana,18073,49,1 +2020-05-21,Jasper,Indiana,18073,49,1 +2020-05-22,Jasper,Indiana,18073,51,1 +2020-05-23,Jasper,Indiana,18073,53,1 +2020-05-24,Jasper,Indiana,18073,55,1 +2020-05-25,Jasper,Indiana,18073,57,1 +2020-05-26,Jasper,Indiana,18073,59,1 +2020-05-27,Jasper,Indiana,18073,63,1 +2020-05-28,Jasper,Indiana,18073,67,1 +2020-05-29,Jasper,Indiana,18073,66,1 +2020-05-30,Jasper,Indiana,18073,67,1 +2020-05-31,Jasper,Indiana,18073,68,1 +2020-06-01,Jasper,Indiana,18073,69,1 +2020-06-02,Jasper,Indiana,18073,69,1 +2020-06-03,Jasper,Indiana,18073,71,1 +2020-06-04,Jasper,Indiana,18073,74,1 +2020-06-05,Jasper,Indiana,18073,75,1 +2020-06-06,Jasper,Indiana,18073,76,1 +2020-06-07,Jasper,Indiana,18073,76,1 +2020-06-08,Jasper,Indiana,18073,77,1 +2020-06-09,Jasper,Indiana,18073,81,1 +2020-06-10,Jasper,Indiana,18073,83,1 +2020-06-11,Jasper,Indiana,18073,82,1 +2020-06-12,Jasper,Indiana,18073,82,1 +2020-06-13,Jasper,Indiana,18073,83,1 +2020-06-14,Jasper,Indiana,18073,84,1 +2020-06-15,Jasper,Indiana,18073,85,1 +2020-06-16,Jasper,Indiana,18073,86,1 +2020-06-17,Jasper,Indiana,18073,87,1 +2020-06-18,Jasper,Indiana,18073,88,1 +2020-06-19,Jasper,Indiana,18073,90,1 +2020-06-20,Jasper,Indiana,18073,91,1 +2020-06-21,Jasper,Indiana,18073,92,1 +2020-06-22,Jasper,Indiana,18073,93,2 +2020-06-23,Jasper,Indiana,18073,94,2 +2020-06-24,Jasper,Indiana,18073,97,2 +2020-06-25,Jasper,Indiana,18073,101,2 +2020-06-26,Jasper,Indiana,18073,102,2 +2020-06-27,Jasper,Indiana,18073,103,2 +2020-06-28,Jasper,Indiana,18073,107,2 +2020-06-29,Jasper,Indiana,18073,108,2 +2020-06-30,Jasper,Indiana,18073,108,2 +2020-07-01,Jasper,Indiana,18073,110,2 +2020-07-02,Jasper,Indiana,18073,114,2 +2020-07-03,Jasper,Indiana,18073,115,2 +2020-07-04,Jasper,Indiana,18073,115,2 +2020-07-05,Jasper,Indiana,18073,122,2 +2020-07-06,Jasper,Indiana,18073,122,2 +2020-07-07,Jasper,Indiana,18073,122,2 +2020-07-08,Jasper,Indiana,18073,124,2 +2020-07-09,Jasper,Indiana,18073,126,2 +2020-04-01,Jay,Indiana,18075,1,0 +2020-04-02,Jay,Indiana,18075,1,0 +2020-04-03,Jay,Indiana,18075,2,0 +2020-04-04,Jay,Indiana,18075,2,0 +2020-04-05,Jay,Indiana,18075,3,0 +2020-04-06,Jay,Indiana,18075,3,0 +2020-04-07,Jay,Indiana,18075,3,0 +2020-04-08,Jay,Indiana,18075,3,0 +2020-04-09,Jay,Indiana,18075,4,0 +2020-04-10,Jay,Indiana,18075,4,0 +2020-04-11,Jay,Indiana,18075,4,0 +2020-04-12,Jay,Indiana,18075,4,0 +2020-04-13,Jay,Indiana,18075,7,0 +2020-04-14,Jay,Indiana,18075,7,0 +2020-04-15,Jay,Indiana,18075,7,0 +2020-04-16,Jay,Indiana,18075,7,0 +2020-04-17,Jay,Indiana,18075,8,0 +2020-04-18,Jay,Indiana,18075,8,0 +2020-04-19,Jay,Indiana,18075,9,0 +2020-04-20,Jay,Indiana,18075,10,0 +2020-04-21,Jay,Indiana,18075,10,0 +2020-04-22,Jay,Indiana,18075,10,0 +2020-04-23,Jay,Indiana,18075,11,0 +2020-04-24,Jay,Indiana,18075,11,0 +2020-04-25,Jay,Indiana,18075,12,0 +2020-04-26,Jay,Indiana,18075,12,0 +2020-04-27,Jay,Indiana,18075,13,0 +2020-04-28,Jay,Indiana,18075,13,0 +2020-04-29,Jay,Indiana,18075,15,0 +2020-04-30,Jay,Indiana,18075,16,0 +2020-05-01,Jay,Indiana,18075,17,0 +2020-05-02,Jay,Indiana,18075,17,0 +2020-05-03,Jay,Indiana,18075,17,0 +2020-05-04,Jay,Indiana,18075,19,0 +2020-05-05,Jay,Indiana,18075,19,0 +2020-05-06,Jay,Indiana,18075,19,0 +2020-05-07,Jay,Indiana,18075,19,0 +2020-05-08,Jay,Indiana,18075,19,0 +2020-05-09,Jay,Indiana,18075,22,0 +2020-05-10,Jay,Indiana,18075,23,0 +2020-05-11,Jay,Indiana,18075,23,0 +2020-05-12,Jay,Indiana,18075,23,0 +2020-05-13,Jay,Indiana,18075,23,0 +2020-05-14,Jay,Indiana,18075,24,0 +2020-05-15,Jay,Indiana,18075,26,0 +2020-05-16,Jay,Indiana,18075,29,0 +2020-05-17,Jay,Indiana,18075,30,0 +2020-05-18,Jay,Indiana,18075,33,0 +2020-05-19,Jay,Indiana,18075,33,0 +2020-05-20,Jay,Indiana,18075,33,0 +2020-05-21,Jay,Indiana,18075,34,0 +2020-05-22,Jay,Indiana,18075,40,0 +2020-05-23,Jay,Indiana,18075,43,0 +2020-05-24,Jay,Indiana,18075,45,0 +2020-05-25,Jay,Indiana,18075,45,0 +2020-05-26,Jay,Indiana,18075,46,0 +2020-05-27,Jay,Indiana,18075,48,0 +2020-05-28,Jay,Indiana,18075,51,0 +2020-05-29,Jay,Indiana,18075,52,0 +2020-05-30,Jay,Indiana,18075,52,0 +2020-05-31,Jay,Indiana,18075,54,0 +2020-06-01,Jay,Indiana,18075,55,0 +2020-06-02,Jay,Indiana,18075,55,0 +2020-06-03,Jay,Indiana,18075,55,0 +2020-06-04,Jay,Indiana,18075,56,0 +2020-06-05,Jay,Indiana,18075,60,0 +2020-06-06,Jay,Indiana,18075,60,0 +2020-06-07,Jay,Indiana,18075,60,0 +2020-06-08,Jay,Indiana,18075,61,0 +2020-06-09,Jay,Indiana,18075,61,0 +2020-06-10,Jay,Indiana,18075,61,0 +2020-06-11,Jay,Indiana,18075,62,0 +2020-06-12,Jay,Indiana,18075,62,0 +2020-06-13,Jay,Indiana,18075,63,0 +2020-06-14,Jay,Indiana,18075,64,0 +2020-06-15,Jay,Indiana,18075,64,0 +2020-06-16,Jay,Indiana,18075,64,0 +2020-06-17,Jay,Indiana,18075,66,0 +2020-06-18,Jay,Indiana,18075,66,0 +2020-06-19,Jay,Indiana,18075,65,0 +2020-06-20,Jay,Indiana,18075,66,0 +2020-06-21,Jay,Indiana,18075,66,0 +2020-06-22,Jay,Indiana,18075,68,0 +2020-06-23,Jay,Indiana,18075,69,0 +2020-06-24,Jay,Indiana,18075,70,0 +2020-06-25,Jay,Indiana,18075,70,0 +2020-06-26,Jay,Indiana,18075,70,0 +2020-06-27,Jay,Indiana,18075,70,0 +2020-06-28,Jay,Indiana,18075,70,0 +2020-06-29,Jay,Indiana,18075,71,0 +2020-06-30,Jay,Indiana,18075,72,0 +2020-07-01,Jay,Indiana,18075,72,0 +2020-07-02,Jay,Indiana,18075,72,0 +2020-07-03,Jay,Indiana,18075,73,0 +2020-07-04,Jay,Indiana,18075,73,0 +2020-07-05,Jay,Indiana,18075,73,0 +2020-07-06,Jay,Indiana,18075,73,0 +2020-07-07,Jay,Indiana,18075,73,0 +2020-07-08,Jay,Indiana,18075,73,0 +2020-07-09,Jay,Indiana,18075,73,0 +2020-03-31,Jefferson,Indiana,18077,1,0 +2020-04-01,Jefferson,Indiana,18077,1,0 +2020-04-02,Jefferson,Indiana,18077,3,0 +2020-04-03,Jefferson,Indiana,18077,5,0 +2020-04-04,Jefferson,Indiana,18077,5,0 +2020-04-05,Jefferson,Indiana,18077,5,0 +2020-04-06,Jefferson,Indiana,18077,6,0 +2020-04-07,Jefferson,Indiana,18077,6,0 +2020-04-08,Jefferson,Indiana,18077,7,0 +2020-04-09,Jefferson,Indiana,18077,10,0 +2020-04-10,Jefferson,Indiana,18077,10,0 +2020-04-11,Jefferson,Indiana,18077,13,0 +2020-04-12,Jefferson,Indiana,18077,12,0 +2020-04-13,Jefferson,Indiana,18077,12,0 +2020-04-14,Jefferson,Indiana,18077,16,0 +2020-04-15,Jefferson,Indiana,18077,15,0 +2020-04-16,Jefferson,Indiana,18077,15,0 +2020-04-17,Jefferson,Indiana,18077,18,0 +2020-04-18,Jefferson,Indiana,18077,18,0 +2020-04-19,Jefferson,Indiana,18077,18,0 +2020-04-20,Jefferson,Indiana,18077,20,0 +2020-04-21,Jefferson,Indiana,18077,21,0 +2020-04-22,Jefferson,Indiana,18077,21,0 +2020-04-23,Jefferson,Indiana,18077,23,0 +2020-04-24,Jefferson,Indiana,18077,23,0 +2020-04-25,Jefferson,Indiana,18077,23,0 +2020-04-26,Jefferson,Indiana,18077,23,0 +2020-04-27,Jefferson,Indiana,18077,27,0 +2020-04-28,Jefferson,Indiana,18077,27,0 +2020-04-29,Jefferson,Indiana,18077,27,0 +2020-04-30,Jefferson,Indiana,18077,27,0 +2020-05-01,Jefferson,Indiana,18077,30,0 +2020-05-02,Jefferson,Indiana,18077,31,0 +2020-05-03,Jefferson,Indiana,18077,31,0 +2020-05-04,Jefferson,Indiana,18077,31,0 +2020-05-05,Jefferson,Indiana,18077,31,0 +2020-05-06,Jefferson,Indiana,18077,31,0 +2020-05-07,Jefferson,Indiana,18077,33,0 +2020-05-08,Jefferson,Indiana,18077,35,0 +2020-05-09,Jefferson,Indiana,18077,35,0 +2020-05-10,Jefferson,Indiana,18077,36,0 +2020-05-11,Jefferson,Indiana,18077,36,0 +2020-05-12,Jefferson,Indiana,18077,36,0 +2020-05-13,Jefferson,Indiana,18077,36,0 +2020-05-14,Jefferson,Indiana,18077,36,1 +2020-05-15,Jefferson,Indiana,18077,36,1 +2020-05-16,Jefferson,Indiana,18077,35,1 +2020-05-17,Jefferson,Indiana,18077,36,1 +2020-05-18,Jefferson,Indiana,18077,40,1 +2020-05-19,Jefferson,Indiana,18077,41,1 +2020-05-20,Jefferson,Indiana,18077,42,1 +2020-05-21,Jefferson,Indiana,18077,42,1 +2020-05-22,Jefferson,Indiana,18077,42,1 +2020-05-23,Jefferson,Indiana,18077,42,1 +2020-05-24,Jefferson,Indiana,18077,42,1 +2020-05-25,Jefferson,Indiana,18077,42,1 +2020-05-26,Jefferson,Indiana,18077,42,1 +2020-05-27,Jefferson,Indiana,18077,43,1 +2020-05-28,Jefferson,Indiana,18077,44,1 +2020-05-29,Jefferson,Indiana,18077,44,1 +2020-05-30,Jefferson,Indiana,18077,46,1 +2020-05-31,Jefferson,Indiana,18077,46,1 +2020-06-01,Jefferson,Indiana,18077,46,1 +2020-06-02,Jefferson,Indiana,18077,47,1 +2020-06-03,Jefferson,Indiana,18077,48,1 +2020-06-04,Jefferson,Indiana,18077,50,1 +2020-06-05,Jefferson,Indiana,18077,50,1 +2020-06-06,Jefferson,Indiana,18077,50,1 +2020-06-07,Jefferson,Indiana,18077,50,1 +2020-06-08,Jefferson,Indiana,18077,52,1 +2020-06-09,Jefferson,Indiana,18077,53,1 +2020-06-10,Jefferson,Indiana,18077,52,1 +2020-06-11,Jefferson,Indiana,18077,52,1 +2020-06-12,Jefferson,Indiana,18077,53,1 +2020-06-13,Jefferson,Indiana,18077,54,1 +2020-06-14,Jefferson,Indiana,18077,54,1 +2020-06-15,Jefferson,Indiana,18077,54,1 +2020-06-16,Jefferson,Indiana,18077,54,1 +2020-06-17,Jefferson,Indiana,18077,55,1 +2020-06-18,Jefferson,Indiana,18077,56,1 +2020-06-19,Jefferson,Indiana,18077,56,1 +2020-06-20,Jefferson,Indiana,18077,57,1 +2020-06-21,Jefferson,Indiana,18077,57,1 +2020-06-22,Jefferson,Indiana,18077,57,1 +2020-06-23,Jefferson,Indiana,18077,59,1 +2020-06-24,Jefferson,Indiana,18077,59,1 +2020-06-25,Jefferson,Indiana,18077,59,1 +2020-06-26,Jefferson,Indiana,18077,59,1 +2020-06-27,Jefferson,Indiana,18077,63,1 +2020-06-28,Jefferson,Indiana,18077,64,1 +2020-06-29,Jefferson,Indiana,18077,64,1 +2020-06-30,Jefferson,Indiana,18077,65,1 +2020-07-01,Jefferson,Indiana,18077,66,1 +2020-07-02,Jefferson,Indiana,18077,67,1 +2020-07-03,Jefferson,Indiana,18077,71,1 +2020-07-04,Jefferson,Indiana,18077,73,2 +2020-07-05,Jefferson,Indiana,18077,73,2 +2020-07-06,Jefferson,Indiana,18077,73,2 +2020-07-07,Jefferson,Indiana,18077,73,2 +2020-07-08,Jefferson,Indiana,18077,77,2 +2020-07-09,Jefferson,Indiana,18077,79,2 +2020-03-18,Jennings,Indiana,18079,1,0 +2020-03-19,Jennings,Indiana,18079,1,0 +2020-03-20,Jennings,Indiana,18079,2,1 +2020-03-21,Jennings,Indiana,18079,2,1 +2020-03-22,Jennings,Indiana,18079,2,1 +2020-03-23,Jennings,Indiana,18079,3,1 +2020-03-24,Jennings,Indiana,18079,3,1 +2020-03-25,Jennings,Indiana,18079,4,1 +2020-03-26,Jennings,Indiana,18079,5,1 +2020-03-27,Jennings,Indiana,18079,6,1 +2020-03-28,Jennings,Indiana,18079,11,1 +2020-03-29,Jennings,Indiana,18079,14,1 +2020-03-30,Jennings,Indiana,18079,15,1 +2020-03-31,Jennings,Indiana,18079,16,1 +2020-04-01,Jennings,Indiana,18079,18,1 +2020-04-02,Jennings,Indiana,18079,24,1 +2020-04-03,Jennings,Indiana,18079,32,1 +2020-04-04,Jennings,Indiana,18079,37,2 +2020-04-05,Jennings,Indiana,18079,37,2 +2020-04-06,Jennings,Indiana,18079,39,2 +2020-04-07,Jennings,Indiana,18079,43,2 +2020-04-08,Jennings,Indiana,18079,44,2 +2020-04-09,Jennings,Indiana,18079,47,2 +2020-04-10,Jennings,Indiana,18079,48,2 +2020-04-11,Jennings,Indiana,18079,56,2 +2020-04-12,Jennings,Indiana,18079,58,2 +2020-04-13,Jennings,Indiana,18079,58,2 +2020-04-14,Jennings,Indiana,18079,60,2 +2020-04-15,Jennings,Indiana,18079,62,2 +2020-04-16,Jennings,Indiana,18079,65,2 +2020-04-17,Jennings,Indiana,18079,65,2 +2020-04-18,Jennings,Indiana,18079,65,3 +2020-04-19,Jennings,Indiana,18079,66,3 +2020-04-20,Jennings,Indiana,18079,66,3 +2020-04-21,Jennings,Indiana,18079,66,3 +2020-04-22,Jennings,Indiana,18079,66,3 +2020-04-23,Jennings,Indiana,18079,69,3 +2020-04-24,Jennings,Indiana,18079,70,3 +2020-04-25,Jennings,Indiana,18079,73,3 +2020-04-26,Jennings,Indiana,18079,74,3 +2020-04-27,Jennings,Indiana,18079,73,2 +2020-04-28,Jennings,Indiana,18079,73,3 +2020-04-29,Jennings,Indiana,18079,75,3 +2020-04-30,Jennings,Indiana,18079,77,4 +2020-05-01,Jennings,Indiana,18079,80,4 +2020-05-02,Jennings,Indiana,18079,83,5 +2020-05-03,Jennings,Indiana,18079,84,5 +2020-05-04,Jennings,Indiana,18079,84,5 +2020-05-05,Jennings,Indiana,18079,88,5 +2020-05-06,Jennings,Indiana,18079,89,5 +2020-05-07,Jennings,Indiana,18079,91,5 +2020-05-08,Jennings,Indiana,18079,95,5 +2020-05-09,Jennings,Indiana,18079,97,5 +2020-05-10,Jennings,Indiana,18079,98,5 +2020-05-11,Jennings,Indiana,18079,98,5 +2020-05-12,Jennings,Indiana,18079,100,5 +2020-05-13,Jennings,Indiana,18079,110,6 +2020-05-14,Jennings,Indiana,18079,111,6 +2020-05-15,Jennings,Indiana,18079,113,6 +2020-05-16,Jennings,Indiana,18079,114,6 +2020-05-17,Jennings,Indiana,18079,118,6 +2020-05-18,Jennings,Indiana,18079,118,6 +2020-05-19,Jennings,Indiana,18079,119,6 +2020-05-20,Jennings,Indiana,18079,123,6 +2020-05-21,Jennings,Indiana,18079,125,6 +2020-05-22,Jennings,Indiana,18079,127,6 +2020-05-23,Jennings,Indiana,18079,128,6 +2020-05-24,Jennings,Indiana,18079,128,6 +2020-05-25,Jennings,Indiana,18079,129,6 +2020-05-26,Jennings,Indiana,18079,129,6 +2020-05-27,Jennings,Indiana,18079,130,6 +2020-05-28,Jennings,Indiana,18079,131,6 +2020-05-29,Jennings,Indiana,18079,132,6 +2020-05-30,Jennings,Indiana,18079,132,6 +2020-05-31,Jennings,Indiana,18079,132,6 +2020-06-01,Jennings,Indiana,18079,132,6 +2020-06-02,Jennings,Indiana,18079,133,6 +2020-06-03,Jennings,Indiana,18079,133,6 +2020-06-04,Jennings,Indiana,18079,134,6 +2020-06-05,Jennings,Indiana,18079,134,6 +2020-06-06,Jennings,Indiana,18079,134,6 +2020-06-07,Jennings,Indiana,18079,134,6 +2020-06-08,Jennings,Indiana,18079,135,6 +2020-06-09,Jennings,Indiana,18079,135,6 +2020-06-10,Jennings,Indiana,18079,137,6 +2020-06-11,Jennings,Indiana,18079,138,6 +2020-06-12,Jennings,Indiana,18079,141,6 +2020-06-13,Jennings,Indiana,18079,142,6 +2020-06-14,Jennings,Indiana,18079,144,6 +2020-06-15,Jennings,Indiana,18079,144,6 +2020-06-16,Jennings,Indiana,18079,144,6 +2020-06-17,Jennings,Indiana,18079,144,6 +2020-06-18,Jennings,Indiana,18079,147,6 +2020-06-19,Jennings,Indiana,18079,160,6 +2020-06-20,Jennings,Indiana,18079,161,11 +2020-06-21,Jennings,Indiana,18079,163,11 +2020-06-22,Jennings,Indiana,18079,165,11 +2020-06-23,Jennings,Indiana,18079,166,11 +2020-06-24,Jennings,Indiana,18079,166,11 +2020-06-25,Jennings,Indiana,18079,166,11 +2020-06-26,Jennings,Indiana,18079,166,11 +2020-06-27,Jennings,Indiana,18079,170,11 +2020-06-28,Jennings,Indiana,18079,170,11 +2020-06-29,Jennings,Indiana,18079,172,11 +2020-06-30,Jennings,Indiana,18079,171,12 +2020-07-01,Jennings,Indiana,18079,171,13 +2020-07-02,Jennings,Indiana,18079,171,13 +2020-07-03,Jennings,Indiana,18079,173,13 +2020-07-04,Jennings,Indiana,18079,176,13 +2020-07-05,Jennings,Indiana,18079,178,13 +2020-07-06,Jennings,Indiana,18079,178,13 +2020-07-07,Jennings,Indiana,18079,178,14 +2020-07-08,Jennings,Indiana,18079,179,14 +2020-07-09,Jennings,Indiana,18079,181,14 +2020-03-11,Johnson,Indiana,18081,3,0 +2020-03-12,Johnson,Indiana,18081,3,0 +2020-03-13,Johnson,Indiana,18081,3,0 +2020-03-14,Johnson,Indiana,18081,3,0 +2020-03-15,Johnson,Indiana,18081,3,0 +2020-03-16,Johnson,Indiana,18081,3,0 +2020-03-17,Johnson,Indiana,18081,3,1 +2020-03-18,Johnson,Indiana,18081,3,1 +2020-03-19,Johnson,Indiana,18081,3,1 +2020-03-20,Johnson,Indiana,18081,4,1 +2020-03-21,Johnson,Indiana,18081,7,1 +2020-03-22,Johnson,Indiana,18081,12,1 +2020-03-23,Johnson,Indiana,18081,14,1 +2020-03-24,Johnson,Indiana,18081,18,3 +2020-03-25,Johnson,Indiana,18081,24,3 +2020-03-26,Johnson,Indiana,18081,36,3 +2020-03-27,Johnson,Indiana,18081,42,3 +2020-03-28,Johnson,Indiana,18081,52,3 +2020-03-29,Johnson,Indiana,18081,71,3 +2020-03-30,Johnson,Indiana,18081,81,3 +2020-03-31,Johnson,Indiana,18081,101,3 +2020-04-01,Johnson,Indiana,18081,118,3 +2020-04-02,Johnson,Indiana,18081,126,3 +2020-04-03,Johnson,Indiana,18081,136,4 +2020-04-04,Johnson,Indiana,18081,153,6 +2020-04-05,Johnson,Indiana,18081,167,6 +2020-04-06,Johnson,Indiana,18081,195,6 +2020-04-07,Johnson,Indiana,18081,212,7 +2020-04-08,Johnson,Indiana,18081,230,8 +2020-04-09,Johnson,Indiana,18081,248,11 +2020-04-10,Johnson,Indiana,18081,271,17 +2020-04-11,Johnson,Indiana,18081,288,20 +2020-04-12,Johnson,Indiana,18081,318,21 +2020-04-13,Johnson,Indiana,18081,328,21 +2020-04-14,Johnson,Indiana,18081,331,23 +2020-04-15,Johnson,Indiana,18081,349,27 +2020-04-16,Johnson,Indiana,18081,360,32 +2020-04-17,Johnson,Indiana,18081,373,32 +2020-04-18,Johnson,Indiana,18081,397,35 +2020-04-19,Johnson,Indiana,18081,415,36 +2020-04-20,Johnson,Indiana,18081,430,37 +2020-04-21,Johnson,Indiana,18081,455,43 +2020-04-22,Johnson,Indiana,18081,460,44 +2020-04-23,Johnson,Indiana,18081,482,47 +2020-04-24,Johnson,Indiana,18081,516,53 +2020-04-25,Johnson,Indiana,18081,535,55 +2020-04-26,Johnson,Indiana,18081,538,56 +2020-04-27,Johnson,Indiana,18081,543,53 +2020-04-28,Johnson,Indiana,18081,553,60 +2020-04-29,Johnson,Indiana,18081,570,66 +2020-04-30,Johnson,Indiana,18081,588,67 +2020-05-01,Johnson,Indiana,18081,625,72 +2020-05-02,Johnson,Indiana,18081,677,74 +2020-05-03,Johnson,Indiana,18081,715,77 +2020-05-04,Johnson,Indiana,18081,727,77 +2020-05-05,Johnson,Indiana,18081,739,80 +2020-05-06,Johnson,Indiana,18081,756,81 +2020-05-07,Johnson,Indiana,18081,768,81 +2020-05-08,Johnson,Indiana,18081,783,87 +2020-05-09,Johnson,Indiana,18081,805,89 +2020-05-10,Johnson,Indiana,18081,822,89 +2020-05-11,Johnson,Indiana,18081,842,94 +2020-05-12,Johnson,Indiana,18081,856,95 +2020-05-13,Johnson,Indiana,18081,858,96 +2020-05-14,Johnson,Indiana,18081,972,96 +2020-05-15,Johnson,Indiana,18081,983,98 +2020-05-16,Johnson,Indiana,18081,1004,99 +2020-05-17,Johnson,Indiana,18081,1016,99 +2020-05-18,Johnson,Indiana,18081,1026,99 +2020-05-19,Johnson,Indiana,18081,1041,102 +2020-05-20,Johnson,Indiana,18081,1053,104 +2020-05-21,Johnson,Indiana,18081,1074,107 +2020-05-22,Johnson,Indiana,18081,1077,107 +2020-05-23,Johnson,Indiana,18081,1090,107 +2020-05-24,Johnson,Indiana,18081,1105,109 +2020-05-25,Johnson,Indiana,18081,1107,109 +2020-05-26,Johnson,Indiana,18081,1111,109 +2020-05-27,Johnson,Indiana,18081,1119,111 +2020-05-28,Johnson,Indiana,18081,1121,113 +2020-05-29,Johnson,Indiana,18081,1121,115 +2020-05-30,Johnson,Indiana,18081,1125,115 +2020-05-31,Johnson,Indiana,18081,1133,115 +2020-06-01,Johnson,Indiana,18081,1142,115 +2020-06-02,Johnson,Indiana,18081,1144,118 +2020-06-03,Johnson,Indiana,18081,1147,118 +2020-06-04,Johnson,Indiana,18081,1148,120 +2020-06-05,Johnson,Indiana,18081,1152,121 +2020-06-06,Johnson,Indiana,18081,1156,122 +2020-06-07,Johnson,Indiana,18081,1160,122 +2020-06-08,Johnson,Indiana,18081,1166,122 +2020-06-09,Johnson,Indiana,18081,1172,122 +2020-06-10,Johnson,Indiana,18081,1183,122 +2020-06-11,Johnson,Indiana,18081,1185,122 +2020-06-12,Johnson,Indiana,18081,1188,122 +2020-06-13,Johnson,Indiana,18081,1196,122 +2020-06-14,Johnson,Indiana,18081,1196,122 +2020-06-15,Johnson,Indiana,18081,1200,122 +2020-06-16,Johnson,Indiana,18081,1202,123 +2020-06-17,Johnson,Indiana,18081,1205,123 +2020-06-18,Johnson,Indiana,18081,1213,124 +2020-06-19,Johnson,Indiana,18081,1213,124 +2020-06-20,Johnson,Indiana,18081,1217,125 +2020-06-21,Johnson,Indiana,18081,1228,125 +2020-06-22,Johnson,Indiana,18081,1228,125 +2020-06-23,Johnson,Indiana,18081,1233,125 +2020-06-24,Johnson,Indiana,18081,1233,125 +2020-06-25,Johnson,Indiana,18081,1233,125 +2020-06-26,Johnson,Indiana,18081,1240,125 +2020-06-27,Johnson,Indiana,18081,1248,125 +2020-06-28,Johnson,Indiana,18081,1255,125 +2020-06-29,Johnson,Indiana,18081,1259,125 +2020-06-30,Johnson,Indiana,18081,1260,126 +2020-07-01,Johnson,Indiana,18081,1263,126 +2020-07-02,Johnson,Indiana,18081,1272,126 +2020-07-03,Johnson,Indiana,18081,1283,126 +2020-07-04,Johnson,Indiana,18081,1285,126 +2020-07-05,Johnson,Indiana,18081,1307,126 +2020-07-06,Johnson,Indiana,18081,1317,126 +2020-07-07,Johnson,Indiana,18081,1317,125 +2020-07-08,Johnson,Indiana,18081,1326,126 +2020-07-09,Johnson,Indiana,18081,1336,126 +2020-03-29,Knox,Indiana,18083,2,0 +2020-03-30,Knox,Indiana,18083,2,0 +2020-03-31,Knox,Indiana,18083,2,0 +2020-04-01,Knox,Indiana,18083,3,0 +2020-04-02,Knox,Indiana,18083,4,0 +2020-04-03,Knox,Indiana,18083,4,0 +2020-04-04,Knox,Indiana,18083,5,0 +2020-04-05,Knox,Indiana,18083,7,0 +2020-04-06,Knox,Indiana,18083,8,0 +2020-04-07,Knox,Indiana,18083,9,0 +2020-04-08,Knox,Indiana,18083,10,0 +2020-04-09,Knox,Indiana,18083,10,0 +2020-04-10,Knox,Indiana,18083,13,0 +2020-04-11,Knox,Indiana,18083,13,0 +2020-04-12,Knox,Indiana,18083,15,0 +2020-04-13,Knox,Indiana,18083,15,0 +2020-04-14,Knox,Indiana,18083,15,0 +2020-04-15,Knox,Indiana,18083,16,0 +2020-04-16,Knox,Indiana,18083,16,0 +2020-04-17,Knox,Indiana,18083,16,0 +2020-04-18,Knox,Indiana,18083,17,0 +2020-04-19,Knox,Indiana,18083,18,0 +2020-04-20,Knox,Indiana,18083,18,0 +2020-04-21,Knox,Indiana,18083,18,0 +2020-04-22,Knox,Indiana,18083,18,0 +2020-04-23,Knox,Indiana,18083,18,0 +2020-04-24,Knox,Indiana,18083,19,0 +2020-04-25,Knox,Indiana,18083,20,0 +2020-04-26,Knox,Indiana,18083,20,0 +2020-04-27,Knox,Indiana,18083,20,0 +2020-04-28,Knox,Indiana,18083,20,0 +2020-04-29,Knox,Indiana,18083,20,0 +2020-04-30,Knox,Indiana,18083,20,0 +2020-05-01,Knox,Indiana,18083,20,0 +2020-05-02,Knox,Indiana,18083,21,0 +2020-05-03,Knox,Indiana,18083,21,0 +2020-05-04,Knox,Indiana,18083,21,0 +2020-05-05,Knox,Indiana,18083,21,0 +2020-05-06,Knox,Indiana,18083,21,0 +2020-05-07,Knox,Indiana,18083,21,0 +2020-05-08,Knox,Indiana,18083,21,0 +2020-05-09,Knox,Indiana,18083,21,0 +2020-05-10,Knox,Indiana,18083,22,0 +2020-05-11,Knox,Indiana,18083,22,0 +2020-05-12,Knox,Indiana,18083,22,0 +2020-05-13,Knox,Indiana,18083,23,0 +2020-05-14,Knox,Indiana,18083,23,0 +2020-05-15,Knox,Indiana,18083,23,0 +2020-05-16,Knox,Indiana,18083,23,0 +2020-05-17,Knox,Indiana,18083,23,0 +2020-05-18,Knox,Indiana,18083,23,0 +2020-05-19,Knox,Indiana,18083,23,0 +2020-05-20,Knox,Indiana,18083,24,0 +2020-05-21,Knox,Indiana,18083,24,0 +2020-05-22,Knox,Indiana,18083,24,0 +2020-05-23,Knox,Indiana,18083,25,0 +2020-05-24,Knox,Indiana,18083,25,0 +2020-05-25,Knox,Indiana,18083,25,0 +2020-05-26,Knox,Indiana,18083,26,0 +2020-05-27,Knox,Indiana,18083,26,0 +2020-05-28,Knox,Indiana,18083,26,0 +2020-05-29,Knox,Indiana,18083,30,0 +2020-05-30,Knox,Indiana,18083,29,0 +2020-05-31,Knox,Indiana,18083,29,0 +2020-06-01,Knox,Indiana,18083,29,0 +2020-06-02,Knox,Indiana,18083,30,0 +2020-06-03,Knox,Indiana,18083,32,0 +2020-06-04,Knox,Indiana,18083,32,0 +2020-06-05,Knox,Indiana,18083,32,0 +2020-06-06,Knox,Indiana,18083,33,0 +2020-06-07,Knox,Indiana,18083,33,0 +2020-06-08,Knox,Indiana,18083,34,0 +2020-06-09,Knox,Indiana,18083,34,0 +2020-06-10,Knox,Indiana,18083,34,0 +2020-06-11,Knox,Indiana,18083,35,0 +2020-06-12,Knox,Indiana,18083,35,0 +2020-06-13,Knox,Indiana,18083,36,0 +2020-06-14,Knox,Indiana,18083,36,0 +2020-06-15,Knox,Indiana,18083,36,0 +2020-06-16,Knox,Indiana,18083,38,0 +2020-06-17,Knox,Indiana,18083,39,0 +2020-06-18,Knox,Indiana,18083,41,0 +2020-06-19,Knox,Indiana,18083,41,0 +2020-06-20,Knox,Indiana,18083,42,0 +2020-06-21,Knox,Indiana,18083,45,0 +2020-06-22,Knox,Indiana,18083,47,0 +2020-06-23,Knox,Indiana,18083,48,0 +2020-06-24,Knox,Indiana,18083,48,0 +2020-06-25,Knox,Indiana,18083,55,0 +2020-06-26,Knox,Indiana,18083,54,0 +2020-06-27,Knox,Indiana,18083,57,0 +2020-06-28,Knox,Indiana,18083,59,0 +2020-06-29,Knox,Indiana,18083,60,0 +2020-06-30,Knox,Indiana,18083,63,0 +2020-07-01,Knox,Indiana,18083,63,0 +2020-07-02,Knox,Indiana,18083,64,0 +2020-07-03,Knox,Indiana,18083,64,0 +2020-07-04,Knox,Indiana,18083,65,0 +2020-07-05,Knox,Indiana,18083,65,0 +2020-07-06,Knox,Indiana,18083,65,0 +2020-07-07,Knox,Indiana,18083,65,0 +2020-07-08,Knox,Indiana,18083,65,0 +2020-07-09,Knox,Indiana,18083,66,0 +2020-03-27,Kosciusko,Indiana,18085,1,0 +2020-03-28,Kosciusko,Indiana,18085,2,0 +2020-03-29,Kosciusko,Indiana,18085,3,0 +2020-03-30,Kosciusko,Indiana,18085,4,0 +2020-03-31,Kosciusko,Indiana,18085,5,0 +2020-04-01,Kosciusko,Indiana,18085,5,0 +2020-04-02,Kosciusko,Indiana,18085,5,0 +2020-04-03,Kosciusko,Indiana,18085,8,0 +2020-04-04,Kosciusko,Indiana,18085,11,0 +2020-04-05,Kosciusko,Indiana,18085,12,0 +2020-04-06,Kosciusko,Indiana,18085,14,0 +2020-04-07,Kosciusko,Indiana,18085,14,0 +2020-04-08,Kosciusko,Indiana,18085,16,0 +2020-04-09,Kosciusko,Indiana,18085,16,1 +2020-04-10,Kosciusko,Indiana,18085,17,1 +2020-04-11,Kosciusko,Indiana,18085,17,1 +2020-04-12,Kosciusko,Indiana,18085,18,1 +2020-04-13,Kosciusko,Indiana,18085,18,1 +2020-04-14,Kosciusko,Indiana,18085,19,1 +2020-04-15,Kosciusko,Indiana,18085,19,1 +2020-04-16,Kosciusko,Indiana,18085,21,1 +2020-04-17,Kosciusko,Indiana,18085,23,2 +2020-04-18,Kosciusko,Indiana,18085,23,2 +2020-04-19,Kosciusko,Indiana,18085,23,2 +2020-04-20,Kosciusko,Indiana,18085,23,2 +2020-04-21,Kosciusko,Indiana,18085,23,2 +2020-04-22,Kosciusko,Indiana,18085,24,2 +2020-04-23,Kosciusko,Indiana,18085,25,2 +2020-04-24,Kosciusko,Indiana,18085,26,2 +2020-04-25,Kosciusko,Indiana,18085,28,2 +2020-04-26,Kosciusko,Indiana,18085,30,2 +2020-04-27,Kosciusko,Indiana,18085,30,2 +2020-04-28,Kosciusko,Indiana,18085,31,2 +2020-04-29,Kosciusko,Indiana,18085,34,2 +2020-04-30,Kosciusko,Indiana,18085,35,2 +2020-05-01,Kosciusko,Indiana,18085,37,2 +2020-05-02,Kosciusko,Indiana,18085,37,2 +2020-05-03,Kosciusko,Indiana,18085,37,2 +2020-05-04,Kosciusko,Indiana,18085,38,2 +2020-05-05,Kosciusko,Indiana,18085,39,2 +2020-05-06,Kosciusko,Indiana,18085,40,2 +2020-05-07,Kosciusko,Indiana,18085,40,2 +2020-05-08,Kosciusko,Indiana,18085,40,2 +2020-05-09,Kosciusko,Indiana,18085,40,2 +2020-05-10,Kosciusko,Indiana,18085,42,2 +2020-05-11,Kosciusko,Indiana,18085,46,2 +2020-05-12,Kosciusko,Indiana,18085,48,2 +2020-05-13,Kosciusko,Indiana,18085,49,2 +2020-05-14,Kosciusko,Indiana,18085,51,2 +2020-05-15,Kosciusko,Indiana,18085,56,2 +2020-05-16,Kosciusko,Indiana,18085,58,2 +2020-05-17,Kosciusko,Indiana,18085,57,2 +2020-05-18,Kosciusko,Indiana,18085,59,2 +2020-05-19,Kosciusko,Indiana,18085,62,2 +2020-05-20,Kosciusko,Indiana,18085,62,2 +2020-05-21,Kosciusko,Indiana,18085,63,2 +2020-05-22,Kosciusko,Indiana,18085,73,2 +2020-05-23,Kosciusko,Indiana,18085,73,2 +2020-05-24,Kosciusko,Indiana,18085,80,2 +2020-05-25,Kosciusko,Indiana,18085,88,2 +2020-05-26,Kosciusko,Indiana,18085,96,2 +2020-05-27,Kosciusko,Indiana,18085,99,2 +2020-05-28,Kosciusko,Indiana,18085,103,2 +2020-05-29,Kosciusko,Indiana,18085,113,2 +2020-05-30,Kosciusko,Indiana,18085,129,2 +2020-05-31,Kosciusko,Indiana,18085,137,2 +2020-06-01,Kosciusko,Indiana,18085,152,2 +2020-06-02,Kosciusko,Indiana,18085,158,2 +2020-06-03,Kosciusko,Indiana,18085,168,2 +2020-06-04,Kosciusko,Indiana,18085,181,3 +2020-06-05,Kosciusko,Indiana,18085,207,3 +2020-06-06,Kosciusko,Indiana,18085,211,3 +2020-06-07,Kosciusko,Indiana,18085,229,3 +2020-06-08,Kosciusko,Indiana,18085,234,3 +2020-06-09,Kosciusko,Indiana,18085,244,3 +2020-06-10,Kosciusko,Indiana,18085,254,3 +2020-06-11,Kosciusko,Indiana,18085,273,3 +2020-06-12,Kosciusko,Indiana,18085,279,3 +2020-06-13,Kosciusko,Indiana,18085,296,3 +2020-06-14,Kosciusko,Indiana,18085,308,3 +2020-06-15,Kosciusko,Indiana,18085,313,3 +2020-06-16,Kosciusko,Indiana,18085,332,3 +2020-06-17,Kosciusko,Indiana,18085,337,3 +2020-06-18,Kosciusko,Indiana,18085,358,3 +2020-06-19,Kosciusko,Indiana,18085,366,3 +2020-06-20,Kosciusko,Indiana,18085,378,3 +2020-06-21,Kosciusko,Indiana,18085,385,3 +2020-06-22,Kosciusko,Indiana,18085,394,3 +2020-06-23,Kosciusko,Indiana,18085,401,3 +2020-06-24,Kosciusko,Indiana,18085,410,3 +2020-06-25,Kosciusko,Indiana,18085,436,3 +2020-06-26,Kosciusko,Indiana,18085,442,3 +2020-06-27,Kosciusko,Indiana,18085,453,3 +2020-06-28,Kosciusko,Indiana,18085,472,3 +2020-06-29,Kosciusko,Indiana,18085,481,3 +2020-06-30,Kosciusko,Indiana,18085,488,3 +2020-07-01,Kosciusko,Indiana,18085,499,3 +2020-07-02,Kosciusko,Indiana,18085,504,4 +2020-07-03,Kosciusko,Indiana,18085,516,5 +2020-07-04,Kosciusko,Indiana,18085,539,5 +2020-07-05,Kosciusko,Indiana,18085,550,5 +2020-07-06,Kosciusko,Indiana,18085,554,5 +2020-07-07,Kosciusko,Indiana,18085,561,5 +2020-07-08,Kosciusko,Indiana,18085,567,5 +2020-07-09,Kosciusko,Indiana,18085,570,5 +2020-03-27,LaGrange,Indiana,18087,2,0 +2020-03-28,LaGrange,Indiana,18087,2,0 +2020-03-29,LaGrange,Indiana,18087,2,0 +2020-03-30,LaGrange,Indiana,18087,2,0 +2020-03-31,LaGrange,Indiana,18087,2,0 +2020-04-01,LaGrange,Indiana,18087,2,0 +2020-04-02,LaGrange,Indiana,18087,2,0 +2020-04-03,LaGrange,Indiana,18087,4,0 +2020-04-04,LaGrange,Indiana,18087,4,0 +2020-04-05,LaGrange,Indiana,18087,4,0 +2020-04-06,LaGrange,Indiana,18087,6,0 +2020-04-07,LaGrange,Indiana,18087,6,1 +2020-04-08,LaGrange,Indiana,18087,6,1 +2020-04-09,LaGrange,Indiana,18087,7,1 +2020-04-10,LaGrange,Indiana,18087,9,1 +2020-04-11,LaGrange,Indiana,18087,10,1 +2020-04-12,LaGrange,Indiana,18087,12,1 +2020-04-13,LaGrange,Indiana,18087,13,1 +2020-04-14,LaGrange,Indiana,18087,13,1 +2020-04-15,LaGrange,Indiana,18087,14,1 +2020-04-16,LaGrange,Indiana,18087,15,1 +2020-04-17,LaGrange,Indiana,18087,16,1 +2020-04-18,LaGrange,Indiana,18087,15,1 +2020-04-19,LaGrange,Indiana,18087,16,1 +2020-04-20,LaGrange,Indiana,18087,17,1 +2020-04-21,LaGrange,Indiana,18087,18,1 +2020-04-22,LaGrange,Indiana,18087,18,1 +2020-04-23,LaGrange,Indiana,18087,19,1 +2020-04-24,LaGrange,Indiana,18087,19,1 +2020-04-25,LaGrange,Indiana,18087,21,1 +2020-04-26,LaGrange,Indiana,18087,22,1 +2020-04-27,LaGrange,Indiana,18087,23,2 +2020-04-28,LaGrange,Indiana,18087,24,2 +2020-04-29,LaGrange,Indiana,18087,24,2 +2020-04-30,LaGrange,Indiana,18087,25,2 +2020-05-01,LaGrange,Indiana,18087,26,2 +2020-05-02,LaGrange,Indiana,18087,28,2 +2020-05-03,LaGrange,Indiana,18087,29,2 +2020-05-04,LaGrange,Indiana,18087,31,2 +2020-05-05,LaGrange,Indiana,18087,34,2 +2020-05-06,LaGrange,Indiana,18087,37,2 +2020-05-07,LaGrange,Indiana,18087,37,2 +2020-05-08,LaGrange,Indiana,18087,37,2 +2020-05-09,LaGrange,Indiana,18087,38,2 +2020-05-10,LaGrange,Indiana,18087,39,2 +2020-05-11,LaGrange,Indiana,18087,39,2 +2020-05-12,LaGrange,Indiana,18087,42,2 +2020-05-13,LaGrange,Indiana,18087,42,2 +2020-05-14,LaGrange,Indiana,18087,47,2 +2020-05-15,LaGrange,Indiana,18087,49,2 +2020-05-16,LaGrange,Indiana,18087,50,2 +2020-05-17,LaGrange,Indiana,18087,50,2 +2020-05-18,LaGrange,Indiana,18087,51,2 +2020-05-19,LaGrange,Indiana,18087,53,2 +2020-05-20,LaGrange,Indiana,18087,57,2 +2020-05-21,LaGrange,Indiana,18087,58,2 +2020-05-22,LaGrange,Indiana,18087,59,2 +2020-05-23,LaGrange,Indiana,18087,60,2 +2020-05-24,LaGrange,Indiana,18087,61,2 +2020-05-25,LaGrange,Indiana,18087,61,2 +2020-05-26,LaGrange,Indiana,18087,61,2 +2020-05-27,LaGrange,Indiana,18087,63,2 +2020-05-28,LaGrange,Indiana,18087,69,2 +2020-05-29,LaGrange,Indiana,18087,72,2 +2020-05-30,LaGrange,Indiana,18087,77,2 +2020-05-31,LaGrange,Indiana,18087,82,2 +2020-06-01,LaGrange,Indiana,18087,85,2 +2020-06-02,LaGrange,Indiana,18087,94,2 +2020-06-03,LaGrange,Indiana,18087,103,2 +2020-06-04,LaGrange,Indiana,18087,117,2 +2020-06-05,LaGrange,Indiana,18087,129,2 +2020-06-06,LaGrange,Indiana,18087,140,2 +2020-06-07,LaGrange,Indiana,18087,160,2 +2020-06-08,LaGrange,Indiana,18087,172,2 +2020-06-09,LaGrange,Indiana,18087,182,2 +2020-06-10,LaGrange,Indiana,18087,189,2 +2020-06-11,LaGrange,Indiana,18087,220,3 +2020-06-12,LaGrange,Indiana,18087,236,2 +2020-06-13,LaGrange,Indiana,18087,249,2 +2020-06-14,LaGrange,Indiana,18087,268,2 +2020-06-15,LaGrange,Indiana,18087,278,2 +2020-06-16,LaGrange,Indiana,18087,295,2 +2020-06-17,LaGrange,Indiana,18087,321,2 +2020-06-18,LaGrange,Indiana,18087,337,2 +2020-06-19,LaGrange,Indiana,18087,355,3 +2020-06-20,LaGrange,Indiana,18087,367,4 +2020-06-21,LaGrange,Indiana,18087,379,5 +2020-06-22,LaGrange,Indiana,18087,398,6 +2020-06-23,LaGrange,Indiana,18087,410,6 +2020-06-24,LaGrange,Indiana,18087,414,6 +2020-06-25,LaGrange,Indiana,18087,422,6 +2020-06-26,LaGrange,Indiana,18087,432,6 +2020-06-27,LaGrange,Indiana,18087,439,6 +2020-06-28,LaGrange,Indiana,18087,448,6 +2020-06-29,LaGrange,Indiana,18087,451,6 +2020-06-30,LaGrange,Indiana,18087,458,6 +2020-07-01,LaGrange,Indiana,18087,461,6 +2020-07-02,LaGrange,Indiana,18087,466,6 +2020-07-03,LaGrange,Indiana,18087,467,7 +2020-07-04,LaGrange,Indiana,18087,469,7 +2020-07-05,LaGrange,Indiana,18087,472,8 +2020-07-06,LaGrange,Indiana,18087,472,9 +2020-07-07,LaGrange,Indiana,18087,473,9 +2020-07-08,LaGrange,Indiana,18087,479,9 +2020-07-09,LaGrange,Indiana,18087,484,9 +2020-03-17,Lake,Indiana,18089,2,0 +2020-03-18,Lake,Indiana,18089,3,0 +2020-03-19,Lake,Indiana,18089,4,0 +2020-03-20,Lake,Indiana,18089,6,0 +2020-03-21,Lake,Indiana,18089,7,0 +2020-03-22,Lake,Indiana,18089,10,0 +2020-03-23,Lake,Indiana,18089,11,0 +2020-03-24,Lake,Indiana,18089,17,0 +2020-03-25,Lake,Indiana,18089,19,0 +2020-03-26,Lake,Indiana,18089,31,0 +2020-03-27,Lake,Indiana,18089,47,0 +2020-03-28,Lake,Indiana,18089,68,1 +2020-03-29,Lake,Indiana,18089,85,1 +2020-03-30,Lake,Indiana,18089,98,2 +2020-03-31,Lake,Indiana,18089,147,6 +2020-04-01,Lake,Indiana,18089,181,7 +2020-04-02,Lake,Indiana,18089,216,7 +2020-04-03,Lake,Indiana,18089,245,8 +2020-04-04,Lake,Indiana,18089,314,9 +2020-04-05,Lake,Indiana,18089,336,9 +2020-04-06,Lake,Indiana,18089,370,9 +2020-04-07,Lake,Indiana,18089,419,12 +2020-04-08,Lake,Indiana,18089,462,13 +2020-04-09,Lake,Indiana,18089,527,21 +2020-04-10,Lake,Indiana,18089,578,25 +2020-04-11,Lake,Indiana,18089,679,28 +2020-04-12,Lake,Indiana,18089,747,28 +2020-04-13,Lake,Indiana,18089,799,29 +2020-04-14,Lake,Indiana,18089,822,34 +2020-04-15,Lake,Indiana,18089,880,37 +2020-04-16,Lake,Indiana,18089,983,46 +2020-04-17,Lake,Indiana,18089,1032,48 +2020-04-18,Lake,Indiana,18089,1102,50 +2020-04-19,Lake,Indiana,18089,1112,52 +2020-04-20,Lake,Indiana,18089,1189,54 +2020-04-21,Lake,Indiana,18089,1235,62 +2020-04-22,Lake,Indiana,18089,1301,65 +2020-04-23,Lake,Indiana,18089,1358,69 +2020-04-24,Lake,Indiana,18089,1457,71 +2020-04-25,Lake,Indiana,18089,1528,76 +2020-04-26,Lake,Indiana,18089,1546,78 +2020-04-27,Lake,Indiana,18089,1602,75 +2020-04-28,Lake,Indiana,18089,1731,82 +2020-04-29,Lake,Indiana,18089,1806,88 +2020-04-30,Lake,Indiana,18089,1866,90 +2020-05-01,Lake,Indiana,18089,1952,101 +2020-05-02,Lake,Indiana,18089,2015,104 +2020-05-03,Lake,Indiana,18089,2058,104 +2020-05-04,Lake,Indiana,18089,2120,106 +2020-05-05,Lake,Indiana,18089,2184,112 +2020-05-06,Lake,Indiana,18089,2257,116 +2020-05-07,Lake,Indiana,18089,2312,121 +2020-05-08,Lake,Indiana,18089,2383,128 +2020-05-09,Lake,Indiana,18089,2416,132 +2020-05-10,Lake,Indiana,18089,2469,134 +2020-05-11,Lake,Indiana,18089,2516,135 +2020-05-12,Lake,Indiana,18089,2559,138 +2020-05-13,Lake,Indiana,18089,2614,142 +2020-05-14,Lake,Indiana,18089,2710,144 +2020-05-15,Lake,Indiana,18089,2773,146 +2020-05-16,Lake,Indiana,18089,2840,150 +2020-05-17,Lake,Indiana,18089,2871,150 +2020-05-18,Lake,Indiana,18089,2914,150 +2020-05-19,Lake,Indiana,18089,2974,154 +2020-05-20,Lake,Indiana,18089,3053,160 +2020-05-21,Lake,Indiana,18089,3116,174 +2020-05-22,Lake,Indiana,18089,3157,178 +2020-05-23,Lake,Indiana,18089,3220,179 +2020-05-24,Lake,Indiana,18089,3289,179 +2020-05-25,Lake,Indiana,18089,3328,179 +2020-05-26,Lake,Indiana,18089,3349,180 +2020-05-27,Lake,Indiana,18089,3378,182 +2020-05-28,Lake,Indiana,18089,3525,187 +2020-05-29,Lake,Indiana,18089,3571,198 +2020-05-30,Lake,Indiana,18089,3607,200 +2020-05-31,Lake,Indiana,18089,3650,204 +2020-06-01,Lake,Indiana,18089,3673,204 +2020-06-02,Lake,Indiana,18089,3723,214 +2020-06-03,Lake,Indiana,18089,3840,216 +2020-06-04,Lake,Indiana,18089,3867,217 +2020-06-05,Lake,Indiana,18089,3911,222 +2020-06-06,Lake,Indiana,18089,3950,225 +2020-06-07,Lake,Indiana,18089,3975,226 +2020-06-08,Lake,Indiana,18089,3994,230 +2020-06-09,Lake,Indiana,18089,4040,232 +2020-06-10,Lake,Indiana,18089,4068,234 +2020-06-11,Lake,Indiana,18089,4092,238 +2020-06-12,Lake,Indiana,18089,4116,239 +2020-06-13,Lake,Indiana,18089,4144,243 +2020-06-14,Lake,Indiana,18089,4168,245 +2020-06-15,Lake,Indiana,18089,4207,245 +2020-06-16,Lake,Indiana,18089,4246,245 +2020-06-17,Lake,Indiana,18089,4257,246 +2020-06-18,Lake,Indiana,18089,4332,247 +2020-06-19,Lake,Indiana,18089,4361,248 +2020-06-20,Lake,Indiana,18089,4392,249 +2020-06-21,Lake,Indiana,18089,4436,249 +2020-06-22,Lake,Indiana,18089,4473,250 +2020-06-23,Lake,Indiana,18089,4526,254 +2020-06-24,Lake,Indiana,18089,4562,254 +2020-06-25,Lake,Indiana,18089,4633,254 +2020-06-26,Lake,Indiana,18089,4687,254 +2020-06-27,Lake,Indiana,18089,4733,255 +2020-06-28,Lake,Indiana,18089,4778,255 +2020-06-29,Lake,Indiana,18089,4818,255 +2020-06-30,Lake,Indiana,18089,4884,255 +2020-07-01,Lake,Indiana,18089,4910,256 +2020-07-02,Lake,Indiana,18089,5023,257 +2020-07-03,Lake,Indiana,18089,5091,258 +2020-07-04,Lake,Indiana,18089,5142,258 +2020-07-05,Lake,Indiana,18089,5184,258 +2020-07-06,Lake,Indiana,18089,5219,258 +2020-07-07,Lake,Indiana,18089,5251,260 +2020-07-08,Lake,Indiana,18089,5315,262 +2020-07-09,Lake,Indiana,18089,5376,263 +2020-03-14,LaPorte,Indiana,18091,1,0 +2020-03-15,LaPorte,Indiana,18091,1,0 +2020-03-16,LaPorte,Indiana,18091,1,0 +2020-03-17,LaPorte,Indiana,18091,1,0 +2020-03-18,LaPorte,Indiana,18091,1,0 +2020-03-19,LaPorte,Indiana,18091,1,0 +2020-03-20,LaPorte,Indiana,18091,1,0 +2020-03-21,LaPorte,Indiana,18091,2,0 +2020-03-22,LaPorte,Indiana,18091,2,0 +2020-03-23,LaPorte,Indiana,18091,2,0 +2020-03-24,LaPorte,Indiana,18091,2,0 +2020-03-25,LaPorte,Indiana,18091,2,0 +2020-03-26,LaPorte,Indiana,18091,2,0 +2020-03-27,LaPorte,Indiana,18091,2,0 +2020-03-28,LaPorte,Indiana,18091,4,0 +2020-03-29,LaPorte,Indiana,18091,6,0 +2020-03-30,LaPorte,Indiana,18091,6,0 +2020-03-31,LaPorte,Indiana,18091,8,0 +2020-04-01,LaPorte,Indiana,18091,11,0 +2020-04-02,LaPorte,Indiana,18091,14,1 +2020-04-03,LaPorte,Indiana,18091,17,1 +2020-04-04,LaPorte,Indiana,18091,19,2 +2020-04-05,LaPorte,Indiana,18091,21,2 +2020-04-06,LaPorte,Indiana,18091,21,3 +2020-04-07,LaPorte,Indiana,18091,25,3 +2020-04-08,LaPorte,Indiana,18091,28,3 +2020-04-09,LaPorte,Indiana,18091,30,3 +2020-04-10,LaPorte,Indiana,18091,31,3 +2020-04-11,LaPorte,Indiana,18091,31,3 +2020-04-12,LaPorte,Indiana,18091,33,3 +2020-04-13,LaPorte,Indiana,18091,34,3 +2020-04-14,LaPorte,Indiana,18091,36,3 +2020-04-15,LaPorte,Indiana,18091,42,4 +2020-04-16,LaPorte,Indiana,18091,112,5 +2020-04-17,LaPorte,Indiana,18091,129,5 +2020-04-18,LaPorte,Indiana,18091,134,5 +2020-04-19,LaPorte,Indiana,18091,140,5 +2020-04-20,LaPorte,Indiana,18091,140,5 +2020-04-21,LaPorte,Indiana,18091,140,5 +2020-04-22,LaPorte,Indiana,18091,144,5 +2020-04-23,LaPorte,Indiana,18091,148,5 +2020-04-24,LaPorte,Indiana,18091,149,5 +2020-04-25,LaPorte,Indiana,18091,156,5 +2020-04-26,LaPorte,Indiana,18091,188,5 +2020-04-27,LaPorte,Indiana,18091,192,5 +2020-04-28,LaPorte,Indiana,18091,199,5 +2020-04-29,LaPorte,Indiana,18091,209,5 +2020-04-30,LaPorte,Indiana,18091,218,5 +2020-05-01,LaPorte,Indiana,18091,224,6 +2020-05-02,LaPorte,Indiana,18091,229,7 +2020-05-03,LaPorte,Indiana,18091,251,8 +2020-05-04,LaPorte,Indiana,18091,254,8 +2020-05-05,LaPorte,Indiana,18091,268,8 +2020-05-06,LaPorte,Indiana,18091,284,9 +2020-05-07,LaPorte,Indiana,18091,303,10 +2020-05-08,LaPorte,Indiana,18091,307,11 +2020-05-09,LaPorte,Indiana,18091,321,11 +2020-05-10,LaPorte,Indiana,18091,324,11 +2020-05-11,LaPorte,Indiana,18091,329,12 +2020-05-12,LaPorte,Indiana,18091,335,12 +2020-05-13,LaPorte,Indiana,18091,340,12 +2020-05-14,LaPorte,Indiana,18091,346,13 +2020-05-15,LaPorte,Indiana,18091,352,14 +2020-05-16,LaPorte,Indiana,18091,355,14 +2020-05-17,LaPorte,Indiana,18091,358,14 +2020-05-18,LaPorte,Indiana,18091,360,16 +2020-05-19,LaPorte,Indiana,18091,360,16 +2020-05-20,LaPorte,Indiana,18091,366,16 +2020-05-21,LaPorte,Indiana,18091,374,17 +2020-05-22,LaPorte,Indiana,18091,377,20 +2020-05-23,LaPorte,Indiana,18091,388,21 +2020-05-24,LaPorte,Indiana,18091,400,21 +2020-05-25,LaPorte,Indiana,18091,409,21 +2020-05-26,LaPorte,Indiana,18091,416,22 +2020-05-27,LaPorte,Indiana,18091,416,23 +2020-05-28,LaPorte,Indiana,18091,421,22 +2020-05-29,LaPorte,Indiana,18091,425,23 +2020-05-30,LaPorte,Indiana,18091,431,23 +2020-05-31,LaPorte,Indiana,18091,434,23 +2020-06-01,LaPorte,Indiana,18091,439,24 +2020-06-02,LaPorte,Indiana,18091,435,24 +2020-06-03,LaPorte,Indiana,18091,437,24 +2020-06-04,LaPorte,Indiana,18091,447,24 +2020-06-05,LaPorte,Indiana,18091,449,24 +2020-06-06,LaPorte,Indiana,18091,456,24 +2020-06-07,LaPorte,Indiana,18091,458,24 +2020-06-08,LaPorte,Indiana,18091,461,24 +2020-06-09,LaPorte,Indiana,18091,463,24 +2020-06-10,LaPorte,Indiana,18091,464,24 +2020-06-11,LaPorte,Indiana,18091,466,24 +2020-06-12,LaPorte,Indiana,18091,466,24 +2020-06-13,LaPorte,Indiana,18091,468,24 +2020-06-14,LaPorte,Indiana,18091,471,24 +2020-06-15,LaPorte,Indiana,18091,471,24 +2020-06-16,LaPorte,Indiana,18091,472,24 +2020-06-17,LaPorte,Indiana,18091,474,25 +2020-06-18,LaPorte,Indiana,18091,480,25 +2020-06-19,LaPorte,Indiana,18091,483,25 +2020-06-20,LaPorte,Indiana,18091,484,25 +2020-06-21,LaPorte,Indiana,18091,487,25 +2020-06-22,LaPorte,Indiana,18091,491,25 +2020-06-23,LaPorte,Indiana,18091,494,25 +2020-06-24,LaPorte,Indiana,18091,496,25 +2020-06-25,LaPorte,Indiana,18091,504,25 +2020-06-26,LaPorte,Indiana,18091,512,25 +2020-06-27,LaPorte,Indiana,18091,514,25 +2020-06-28,LaPorte,Indiana,18091,523,25 +2020-06-29,LaPorte,Indiana,18091,524,25 +2020-06-30,LaPorte,Indiana,18091,536,25 +2020-07-01,LaPorte,Indiana,18091,541,25 +2020-07-02,LaPorte,Indiana,18091,543,25 +2020-07-03,LaPorte,Indiana,18091,555,26 +2020-07-04,LaPorte,Indiana,18091,565,26 +2020-07-05,LaPorte,Indiana,18091,575,26 +2020-07-06,LaPorte,Indiana,18091,582,26 +2020-07-07,LaPorte,Indiana,18091,581,26 +2020-07-08,LaPorte,Indiana,18091,585,26 +2020-07-09,LaPorte,Indiana,18091,599,27 +2020-03-24,Lawrence,Indiana,18093,1,0 +2020-03-25,Lawrence,Indiana,18093,1,0 +2020-03-26,Lawrence,Indiana,18093,2,0 +2020-03-27,Lawrence,Indiana,18093,5,0 +2020-03-28,Lawrence,Indiana,18093,4,0 +2020-03-29,Lawrence,Indiana,18093,8,0 +2020-03-30,Lawrence,Indiana,18093,9,0 +2020-03-31,Lawrence,Indiana,18093,9,0 +2020-04-01,Lawrence,Indiana,18093,11,1 +2020-04-02,Lawrence,Indiana,18093,13,2 +2020-04-03,Lawrence,Indiana,18093,23,5 +2020-04-04,Lawrence,Indiana,18093,37,6 +2020-04-05,Lawrence,Indiana,18093,40,6 +2020-04-06,Lawrence,Indiana,18093,40,6 +2020-04-07,Lawrence,Indiana,18093,45,6 +2020-04-08,Lawrence,Indiana,18093,56,8 +2020-04-09,Lawrence,Indiana,18093,57,8 +2020-04-10,Lawrence,Indiana,18093,60,8 +2020-04-11,Lawrence,Indiana,18093,64,8 +2020-04-12,Lawrence,Indiana,18093,69,8 +2020-04-13,Lawrence,Indiana,18093,72,8 +2020-04-14,Lawrence,Indiana,18093,74,8 +2020-04-15,Lawrence,Indiana,18093,74,10 +2020-04-16,Lawrence,Indiana,18093,75,10 +2020-04-17,Lawrence,Indiana,18093,77,10 +2020-04-18,Lawrence,Indiana,18093,78,10 +2020-04-19,Lawrence,Indiana,18093,80,10 +2020-04-20,Lawrence,Indiana,18093,82,10 +2020-04-21,Lawrence,Indiana,18093,84,10 +2020-04-22,Lawrence,Indiana,18093,84,10 +2020-04-23,Lawrence,Indiana,18093,87,10 +2020-04-24,Lawrence,Indiana,18093,88,10 +2020-04-25,Lawrence,Indiana,18093,93,10 +2020-04-26,Lawrence,Indiana,18093,93,12 +2020-04-27,Lawrence,Indiana,18093,94,12 +2020-04-28,Lawrence,Indiana,18093,96,12 +2020-04-29,Lawrence,Indiana,18093,95,14 +2020-04-30,Lawrence,Indiana,18093,100,14 +2020-05-01,Lawrence,Indiana,18093,100,14 +2020-05-02,Lawrence,Indiana,18093,106,14 +2020-05-03,Lawrence,Indiana,18093,106,14 +2020-05-04,Lawrence,Indiana,18093,109,15 +2020-05-05,Lawrence,Indiana,18093,110,15 +2020-05-06,Lawrence,Indiana,18093,112,15 +2020-05-07,Lawrence,Indiana,18093,113,16 +2020-05-08,Lawrence,Indiana,18093,116,16 +2020-05-09,Lawrence,Indiana,18093,117,16 +2020-05-10,Lawrence,Indiana,18093,117,17 +2020-05-11,Lawrence,Indiana,18093,121,17 +2020-05-12,Lawrence,Indiana,18093,123,17 +2020-05-13,Lawrence,Indiana,18093,125,17 +2020-05-14,Lawrence,Indiana,18093,125,17 +2020-05-15,Lawrence,Indiana,18093,128,19 +2020-05-16,Lawrence,Indiana,18093,134,22 +2020-05-17,Lawrence,Indiana,18093,134,22 +2020-05-18,Lawrence,Indiana,18093,140,22 +2020-05-19,Lawrence,Indiana,18093,142,23 +2020-05-20,Lawrence,Indiana,18093,141,22 +2020-05-21,Lawrence,Indiana,18093,142,22 +2020-05-22,Lawrence,Indiana,18093,142,22 +2020-05-23,Lawrence,Indiana,18093,143,23 +2020-05-24,Lawrence,Indiana,18093,143,23 +2020-05-25,Lawrence,Indiana,18093,144,23 +2020-05-26,Lawrence,Indiana,18093,145,24 +2020-05-27,Lawrence,Indiana,18093,147,24 +2020-05-28,Lawrence,Indiana,18093,153,24 +2020-05-29,Lawrence,Indiana,18093,155,24 +2020-05-30,Lawrence,Indiana,18093,160,25 +2020-05-31,Lawrence,Indiana,18093,164,25 +2020-06-01,Lawrence,Indiana,18093,166,25 +2020-06-02,Lawrence,Indiana,18093,166,25 +2020-06-03,Lawrence,Indiana,18093,166,25 +2020-06-04,Lawrence,Indiana,18093,168,25 +2020-06-05,Lawrence,Indiana,18093,172,25 +2020-06-06,Lawrence,Indiana,18093,172,25 +2020-06-07,Lawrence,Indiana,18093,172,25 +2020-06-08,Lawrence,Indiana,18093,173,25 +2020-06-09,Lawrence,Indiana,18093,173,25 +2020-06-10,Lawrence,Indiana,18093,173,25 +2020-06-11,Lawrence,Indiana,18093,173,25 +2020-06-12,Lawrence,Indiana,18093,177,25 +2020-06-13,Lawrence,Indiana,18093,177,25 +2020-06-14,Lawrence,Indiana,18093,182,25 +2020-06-15,Lawrence,Indiana,18093,183,25 +2020-06-16,Lawrence,Indiana,18093,183,25 +2020-06-17,Lawrence,Indiana,18093,187,25 +2020-06-18,Lawrence,Indiana,18093,188,25 +2020-06-19,Lawrence,Indiana,18093,188,25 +2020-06-20,Lawrence,Indiana,18093,190,25 +2020-06-21,Lawrence,Indiana,18093,194,25 +2020-06-22,Lawrence,Indiana,18093,197,25 +2020-06-23,Lawrence,Indiana,18093,198,25 +2020-06-24,Lawrence,Indiana,18093,198,25 +2020-06-25,Lawrence,Indiana,18093,205,25 +2020-06-26,Lawrence,Indiana,18093,210,25 +2020-06-27,Lawrence,Indiana,18093,214,25 +2020-06-28,Lawrence,Indiana,18093,218,25 +2020-06-29,Lawrence,Indiana,18093,219,25 +2020-06-30,Lawrence,Indiana,18093,230,25 +2020-07-01,Lawrence,Indiana,18093,232,25 +2020-07-02,Lawrence,Indiana,18093,237,25 +2020-07-03,Lawrence,Indiana,18093,237,25 +2020-07-04,Lawrence,Indiana,18093,243,26 +2020-07-05,Lawrence,Indiana,18093,245,26 +2020-07-06,Lawrence,Indiana,18093,247,26 +2020-07-07,Lawrence,Indiana,18093,247,26 +2020-07-08,Lawrence,Indiana,18093,249,26 +2020-07-09,Lawrence,Indiana,18093,252,26 +2020-03-18,Madison,Indiana,18095,1,0 +2020-03-19,Madison,Indiana,18095,1,0 +2020-03-20,Madison,Indiana,18095,1,0 +2020-03-21,Madison,Indiana,18095,1,0 +2020-03-22,Madison,Indiana,18095,3,1 +2020-03-23,Madison,Indiana,18095,4,1 +2020-03-24,Madison,Indiana,18095,4,1 +2020-03-25,Madison,Indiana,18095,5,1 +2020-03-26,Madison,Indiana,18095,5,1 +2020-03-27,Madison,Indiana,18095,9,3 +2020-03-28,Madison,Indiana,18095,15,4 +2020-03-29,Madison,Indiana,18095,21,4 +2020-03-30,Madison,Indiana,18095,32,4 +2020-03-31,Madison,Indiana,18095,41,4 +2020-04-01,Madison,Indiana,18095,49,5 +2020-04-02,Madison,Indiana,18095,66,7 +2020-04-03,Madison,Indiana,18095,71,11 +2020-04-04,Madison,Indiana,18095,77,14 +2020-04-05,Madison,Indiana,18095,92,15 +2020-04-06,Madison,Indiana,18095,109,17 +2020-04-07,Madison,Indiana,18095,145,19 +2020-04-08,Madison,Indiana,18095,151,19 +2020-04-09,Madison,Indiana,18095,154,19 +2020-04-10,Madison,Indiana,18095,212,21 +2020-04-11,Madison,Indiana,18095,243,21 +2020-04-12,Madison,Indiana,18095,262,22 +2020-04-13,Madison,Indiana,18095,269,23 +2020-04-14,Madison,Indiana,18095,271,24 +2020-04-15,Madison,Indiana,18095,281,32 +2020-04-16,Madison,Indiana,18095,291,32 +2020-04-17,Madison,Indiana,18095,313,36 +2020-04-18,Madison,Indiana,18095,331,38 +2020-04-19,Madison,Indiana,18095,340,40 +2020-04-20,Madison,Indiana,18095,348,40 +2020-04-21,Madison,Indiana,18095,354,42 +2020-04-22,Madison,Indiana,18095,359,42 +2020-04-23,Madison,Indiana,18095,367,46 +2020-04-24,Madison,Indiana,18095,388,50 +2020-04-25,Madison,Indiana,18095,404,52 +2020-04-26,Madison,Indiana,18095,403,54 +2020-04-27,Madison,Indiana,18095,404,53 +2020-04-28,Madison,Indiana,18095,409,54 +2020-04-29,Madison,Indiana,18095,417,56 +2020-04-30,Madison,Indiana,18095,428,56 +2020-05-01,Madison,Indiana,18095,437,58 +2020-05-02,Madison,Indiana,18095,443,61 +2020-05-03,Madison,Indiana,18095,448,61 +2020-05-04,Madison,Indiana,18095,459,62 +2020-05-05,Madison,Indiana,18095,461,64 +2020-05-06,Madison,Indiana,18095,471,65 +2020-05-07,Madison,Indiana,18095,483,65 +2020-05-08,Madison,Indiana,18095,488,65 +2020-05-09,Madison,Indiana,18095,506,65 +2020-05-10,Madison,Indiana,18095,512,66 +2020-05-11,Madison,Indiana,18095,518,66 +2020-05-12,Madison,Indiana,18095,521,66 +2020-05-13,Madison,Indiana,18095,536,66 +2020-05-14,Madison,Indiana,18095,536,66 +2020-05-15,Madison,Indiana,18095,544,66 +2020-05-16,Madison,Indiana,18095,547,66 +2020-05-17,Madison,Indiana,18095,552,66 +2020-05-18,Madison,Indiana,18095,560,66 +2020-05-19,Madison,Indiana,18095,562,66 +2020-05-20,Madison,Indiana,18095,577,66 +2020-05-21,Madison,Indiana,18095,582,66 +2020-05-22,Madison,Indiana,18095,585,66 +2020-05-23,Madison,Indiana,18095,585,67 +2020-05-24,Madison,Indiana,18095,589,67 +2020-05-25,Madison,Indiana,18095,591,67 +2020-05-26,Madison,Indiana,18095,591,67 +2020-05-27,Madison,Indiana,18095,591,68 +2020-05-28,Madison,Indiana,18095,593,68 +2020-05-29,Madison,Indiana,18095,594,68 +2020-05-30,Madison,Indiana,18095,595,68 +2020-05-31,Madison,Indiana,18095,595,68 +2020-06-01,Madison,Indiana,18095,602,68 +2020-06-02,Madison,Indiana,18095,603,70 +2020-06-03,Madison,Indiana,18095,606,70 +2020-06-04,Madison,Indiana,18095,608,70 +2020-06-05,Madison,Indiana,18095,609,70 +2020-06-06,Madison,Indiana,18095,613,71 +2020-06-07,Madison,Indiana,18095,613,71 +2020-06-08,Madison,Indiana,18095,615,71 +2020-06-09,Madison,Indiana,18095,615,71 +2020-06-10,Madison,Indiana,18095,616,71 +2020-06-11,Madison,Indiana,18095,620,71 +2020-06-12,Madison,Indiana,18095,622,71 +2020-06-13,Madison,Indiana,18095,622,71 +2020-06-14,Madison,Indiana,18095,624,71 +2020-06-15,Madison,Indiana,18095,624,71 +2020-06-16,Madison,Indiana,18095,625,72 +2020-06-17,Madison,Indiana,18095,625,72 +2020-06-18,Madison,Indiana,18095,628,72 +2020-06-19,Madison,Indiana,18095,628,73 +2020-06-20,Madison,Indiana,18095,628,73 +2020-06-21,Madison,Indiana,18095,630,73 +2020-06-22,Madison,Indiana,18095,631,73 +2020-06-23,Madison,Indiana,18095,631,73 +2020-06-24,Madison,Indiana,18095,634,73 +2020-06-25,Madison,Indiana,18095,634,73 +2020-06-26,Madison,Indiana,18095,642,73 +2020-06-27,Madison,Indiana,18095,648,73 +2020-06-28,Madison,Indiana,18095,649,73 +2020-06-29,Madison,Indiana,18095,652,73 +2020-06-30,Madison,Indiana,18095,652,73 +2020-07-01,Madison,Indiana,18095,653,73 +2020-07-02,Madison,Indiana,18095,654,73 +2020-07-03,Madison,Indiana,18095,659,74 +2020-07-04,Madison,Indiana,18095,666,74 +2020-07-05,Madison,Indiana,18095,669,74 +2020-07-06,Madison,Indiana,18095,670,74 +2020-07-07,Madison,Indiana,18095,674,74 +2020-07-08,Madison,Indiana,18095,678,74 +2020-07-09,Madison,Indiana,18095,679,74 +2020-03-06,Marion,Indiana,18097,1,0 +2020-03-07,Marion,Indiana,18097,1,0 +2020-03-08,Marion,Indiana,18097,1,0 +2020-03-09,Marion,Indiana,18097,1,0 +2020-03-10,Marion,Indiana,18097,1,0 +2020-03-11,Marion,Indiana,18097,1,0 +2020-03-12,Marion,Indiana,18097,2,0 +2020-03-13,Marion,Indiana,18097,2,0 +2020-03-14,Marion,Indiana,18097,3,0 +2020-03-15,Marion,Indiana,18097,6,0 +2020-03-16,Marion,Indiana,18097,7,1 +2020-03-17,Marion,Indiana,18097,9,1 +2020-03-18,Marion,Indiana,18097,11,1 +2020-03-19,Marion,Indiana,18097,19,1 +2020-03-20,Marion,Indiana,18097,26,3 +2020-03-21,Marion,Indiana,18097,47,3 +2020-03-22,Marion,Indiana,18097,83,4 +2020-03-23,Marion,Indiana,18097,111,4 +2020-03-24,Marion,Indiana,18097,162,7 +2020-03-25,Marion,Indiana,18097,227,7 +2020-03-26,Marion,Indiana,18097,294,7 +2020-03-27,Marion,Indiana,18097,485,9 +2020-03-28,Marion,Indiana,18097,585,11 +2020-03-29,Marion,Indiana,18097,677,11 +2020-03-30,Marion,Indiana,18097,805,13 +2020-03-31,Marion,Indiana,18097,965,18 +2020-04-01,Marion,Indiana,18097,1119,23 +2020-04-02,Marion,Indiana,18097,1306,26 +2020-04-03,Marion,Indiana,18097,1431,35 +2020-04-04,Marion,Indiana,18097,1572,36 +2020-04-05,Marion,Indiana,18097,1764,41 +2020-04-06,Marion,Indiana,18097,1960,45 +2020-04-07,Marion,Indiana,18097,2147,54 +2020-04-08,Marion,Indiana,18097,2299,67 +2020-04-09,Marion,Indiana,18097,2426,92 +2020-04-10,Marion,Indiana,18097,2613,120 +2020-04-11,Marion,Indiana,18097,2755,131 +2020-04-12,Marion,Indiana,18097,2901,137 +2020-04-13,Marion,Indiana,18097,3028,139 +2020-04-14,Marion,Indiana,18097,3081,159 +2020-04-15,Marion,Indiana,18097,3224,175 +2020-04-16,Marion,Indiana,18097,3340,184 +2020-04-17,Marion,Indiana,18097,3538,202 +2020-04-18,Marion,Indiana,18097,3645,211 +2020-04-19,Marion,Indiana,18097,3911,214 +2020-04-20,Marion,Indiana,18097,4076,216 +2020-04-21,Marion,Indiana,18097,4201,231 +2020-04-22,Marion,Indiana,18097,4289,240 +2020-04-23,Marion,Indiana,18097,4437,255 +2020-04-24,Marion,Indiana,18097,4571,266 +2020-04-25,Marion,Indiana,18097,4763,283 +2020-04-26,Marion,Indiana,18097,4832,287 +2020-04-27,Marion,Indiana,18097,4967,289 +2020-04-28,Marion,Indiana,18097,5121,304 +2020-04-29,Marion,Indiana,18097,5340,329 +2020-04-30,Marion,Indiana,18097,5576,353 +2020-05-01,Marion,Indiana,18097,5801,364 +2020-05-02,Marion,Indiana,18097,6032,382 +2020-05-03,Marion,Indiana,18097,6225,385 +2020-05-04,Marion,Indiana,18097,6375,387 +2020-05-05,Marion,Indiana,18097,6469,398 +2020-05-06,Marion,Indiana,18097,6784,413 +2020-05-07,Marion,Indiana,18097,6978,425 +2020-05-08,Marion,Indiana,18097,7142,430 +2020-05-09,Marion,Indiana,18097,7314,444 +2020-05-10,Marion,Indiana,18097,7405,448 +2020-05-11,Marion,Indiana,18097,7580,455 +2020-05-12,Marion,Indiana,18097,7703,462 +2020-05-13,Marion,Indiana,18097,7779,473 +2020-05-14,Marion,Indiana,18097,7869,484 +2020-05-15,Marion,Indiana,18097,8082,500 +2020-05-16,Marion,Indiana,18097,8240,509 +2020-05-17,Marion,Indiana,18097,8392,512 +2020-05-18,Marion,Indiana,18097,8495,515 +2020-05-19,Marion,Indiana,18097,8632,532 +2020-05-20,Marion,Indiana,18097,8753,541 +2020-05-21,Marion,Indiana,18097,8912,554 +2020-05-22,Marion,Indiana,18097,9024,564 +2020-05-23,Marion,Indiana,18097,9138,569 +2020-05-24,Marion,Indiana,18097,9230,571 +2020-05-25,Marion,Indiana,18097,9287,571 +2020-05-26,Marion,Indiana,18097,9367,577 +2020-05-27,Marion,Indiana,18097,9471,584 +2020-05-28,Marion,Indiana,18097,9626,596 +2020-05-29,Marion,Indiana,18097,9720,609 +2020-05-30,Marion,Indiana,18097,9866,615 +2020-05-31,Marion,Indiana,18097,9958,617 +2020-06-01,Marion,Indiana,18097,10005,620 +2020-06-02,Marion,Indiana,18097,10089,637 +2020-06-03,Marion,Indiana,18097,10148,639 +2020-06-04,Marion,Indiana,18097,10207,644 +2020-06-05,Marion,Indiana,18097,10301,650 +2020-06-06,Marion,Indiana,18097,10390,663 +2020-06-07,Marion,Indiana,18097,10440,668 +2020-06-08,Marion,Indiana,18097,10471,669 +2020-06-09,Marion,Indiana,18097,10559,676 +2020-06-10,Marion,Indiana,18097,10581,680 +2020-06-11,Marion,Indiana,18097,10609,689 +2020-06-12,Marion,Indiana,18097,10694,689 +2020-06-13,Marion,Indiana,18097,10736,693 +2020-06-14,Marion,Indiana,18097,10779,694 +2020-06-15,Marion,Indiana,18097,10905,697 +2020-06-16,Marion,Indiana,18097,10950,699 +2020-06-17,Marion,Indiana,18097,10982,702 +2020-06-18,Marion,Indiana,18097,10973,706 +2020-06-19,Marion,Indiana,18097,11007,711 +2020-06-20,Marion,Indiana,18097,11026,713 +2020-06-21,Marion,Indiana,18097,11067,714 +2020-06-22,Marion,Indiana,18097,11083,715 +2020-06-23,Marion,Indiana,18097,11099,716 +2020-06-24,Marion,Indiana,18097,11118,720 +2020-06-25,Marion,Indiana,18097,11164,722 +2020-06-26,Marion,Indiana,18097,11226,723 +2020-06-27,Marion,Indiana,18097,11304,724 +2020-06-28,Marion,Indiana,18097,11358,724 +2020-06-29,Marion,Indiana,18097,11401,724 +2020-06-30,Marion,Indiana,18097,11451,726 +2020-07-01,Marion,Indiana,18097,11513,727 +2020-07-02,Marion,Indiana,18097,11560,727 +2020-07-03,Marion,Indiana,18097,11630,730 +2020-07-04,Marion,Indiana,18097,11678,730 +2020-07-05,Marion,Indiana,18097,11755,730 +2020-07-06,Marion,Indiana,18097,11814,731 +2020-07-07,Marion,Indiana,18097,11854,735 +2020-07-08,Marion,Indiana,18097,11891,735 +2020-07-09,Marion,Indiana,18097,11943,736 +2020-03-26,Marshall,Indiana,18099,1,0 +2020-03-27,Marshall,Indiana,18099,4,0 +2020-03-28,Marshall,Indiana,18099,3,0 +2020-03-29,Marshall,Indiana,18099,3,0 +2020-03-30,Marshall,Indiana,18099,3,0 +2020-03-31,Marshall,Indiana,18099,3,0 +2020-04-01,Marshall,Indiana,18099,3,0 +2020-04-02,Marshall,Indiana,18099,4,0 +2020-04-03,Marshall,Indiana,18099,4,0 +2020-04-04,Marshall,Indiana,18099,4,0 +2020-04-05,Marshall,Indiana,18099,6,0 +2020-04-06,Marshall,Indiana,18099,8,0 +2020-04-07,Marshall,Indiana,18099,10,0 +2020-04-08,Marshall,Indiana,18099,11,0 +2020-04-09,Marshall,Indiana,18099,11,0 +2020-04-10,Marshall,Indiana,18099,12,0 +2020-04-11,Marshall,Indiana,18099,14,0 +2020-04-12,Marshall,Indiana,18099,19,0 +2020-04-13,Marshall,Indiana,18099,17,0 +2020-04-14,Marshall,Indiana,18099,17,0 +2020-04-15,Marshall,Indiana,18099,19,0 +2020-04-16,Marshall,Indiana,18099,20,0 +2020-04-17,Marshall,Indiana,18099,22,0 +2020-04-18,Marshall,Indiana,18099,22,0 +2020-04-19,Marshall,Indiana,18099,23,0 +2020-04-20,Marshall,Indiana,18099,24,0 +2020-04-21,Marshall,Indiana,18099,24,0 +2020-04-22,Marshall,Indiana,18099,26,1 +2020-04-23,Marshall,Indiana,18099,25,1 +2020-04-24,Marshall,Indiana,18099,25,1 +2020-04-25,Marshall,Indiana,18099,26,1 +2020-04-26,Marshall,Indiana,18099,27,1 +2020-04-27,Marshall,Indiana,18099,29,1 +2020-04-28,Marshall,Indiana,18099,28,1 +2020-04-29,Marshall,Indiana,18099,28,1 +2020-04-30,Marshall,Indiana,18099,29,1 +2020-05-01,Marshall,Indiana,18099,30,1 +2020-05-02,Marshall,Indiana,18099,30,1 +2020-05-03,Marshall,Indiana,18099,31,1 +2020-05-04,Marshall,Indiana,18099,31,1 +2020-05-05,Marshall,Indiana,18099,32,1 +2020-05-06,Marshall,Indiana,18099,31,1 +2020-05-07,Marshall,Indiana,18099,31,1 +2020-05-08,Marshall,Indiana,18099,31,1 +2020-05-09,Marshall,Indiana,18099,32,1 +2020-05-10,Marshall,Indiana,18099,33,1 +2020-05-11,Marshall,Indiana,18099,34,1 +2020-05-12,Marshall,Indiana,18099,36,1 +2020-05-13,Marshall,Indiana,18099,37,1 +2020-05-14,Marshall,Indiana,18099,39,1 +2020-05-15,Marshall,Indiana,18099,39,1 +2020-05-16,Marshall,Indiana,18099,40,1 +2020-05-17,Marshall,Indiana,18099,43,1 +2020-05-18,Marshall,Indiana,18099,42,1 +2020-05-19,Marshall,Indiana,18099,44,1 +2020-05-20,Marshall,Indiana,18099,50,1 +2020-05-21,Marshall,Indiana,18099,51,1 +2020-05-22,Marshall,Indiana,18099,54,1 +2020-05-23,Marshall,Indiana,18099,61,1 +2020-05-24,Marshall,Indiana,18099,64,1 +2020-05-25,Marshall,Indiana,18099,64,1 +2020-05-26,Marshall,Indiana,18099,76,1 +2020-05-27,Marshall,Indiana,18099,80,1 +2020-05-28,Marshall,Indiana,18099,80,1 +2020-05-29,Marshall,Indiana,18099,90,1 +2020-05-30,Marshall,Indiana,18099,102,1 +2020-05-31,Marshall,Indiana,18099,108,2 +2020-06-01,Marshall,Indiana,18099,111,2 +2020-06-02,Marshall,Indiana,18099,128,2 +2020-06-03,Marshall,Indiana,18099,147,2 +2020-06-04,Marshall,Indiana,18099,178,2 +2020-06-05,Marshall,Indiana,18099,187,2 +2020-06-06,Marshall,Indiana,18099,196,2 +2020-06-07,Marshall,Indiana,18099,214,2 +2020-06-08,Marshall,Indiana,18099,227,2 +2020-06-09,Marshall,Indiana,18099,230,2 +2020-06-10,Marshall,Indiana,18099,247,2 +2020-06-11,Marshall,Indiana,18099,261,3 +2020-06-12,Marshall,Indiana,18099,276,3 +2020-06-13,Marshall,Indiana,18099,287,3 +2020-06-14,Marshall,Indiana,18099,301,3 +2020-06-15,Marshall,Indiana,18099,305,3 +2020-06-16,Marshall,Indiana,18099,315,3 +2020-06-17,Marshall,Indiana,18099,322,3 +2020-06-18,Marshall,Indiana,18099,338,3 +2020-06-19,Marshall,Indiana,18099,344,3 +2020-06-20,Marshall,Indiana,18099,347,3 +2020-06-21,Marshall,Indiana,18099,359,3 +2020-06-22,Marshall,Indiana,18099,365,3 +2020-06-23,Marshall,Indiana,18099,369,3 +2020-06-24,Marshall,Indiana,18099,374,3 +2020-06-25,Marshall,Indiana,18099,385,3 +2020-06-26,Marshall,Indiana,18099,393,3 +2020-06-27,Marshall,Indiana,18099,401,3 +2020-06-28,Marshall,Indiana,18099,403,3 +2020-06-29,Marshall,Indiana,18099,407,3 +2020-06-30,Marshall,Indiana,18099,409,3 +2020-07-01,Marshall,Indiana,18099,412,3 +2020-07-02,Marshall,Indiana,18099,418,3 +2020-07-03,Marshall,Indiana,18099,427,3 +2020-07-04,Marshall,Indiana,18099,482,3 +2020-07-05,Marshall,Indiana,18099,492,4 +2020-07-06,Marshall,Indiana,18099,490,4 +2020-07-07,Marshall,Indiana,18099,492,6 +2020-07-08,Marshall,Indiana,18099,501,6 +2020-07-09,Marshall,Indiana,18099,521,7 +2020-04-04,Martin,Indiana,18101,1,0 +2020-04-05,Martin,Indiana,18101,1,0 +2020-04-06,Martin,Indiana,18101,2,0 +2020-04-07,Martin,Indiana,18101,2,0 +2020-04-08,Martin,Indiana,18101,1,0 +2020-04-09,Martin,Indiana,18101,2,0 +2020-04-10,Martin,Indiana,18101,2,0 +2020-04-11,Martin,Indiana,18101,2,0 +2020-04-12,Martin,Indiana,18101,5,0 +2020-04-13,Martin,Indiana,18101,5,0 +2020-04-14,Martin,Indiana,18101,5,0 +2020-04-15,Martin,Indiana,18101,5,0 +2020-04-16,Martin,Indiana,18101,5,0 +2020-04-17,Martin,Indiana,18101,5,0 +2020-04-18,Martin,Indiana,18101,5,0 +2020-04-19,Martin,Indiana,18101,5,0 +2020-04-20,Martin,Indiana,18101,6,0 +2020-04-21,Martin,Indiana,18101,6,0 +2020-04-22,Martin,Indiana,18101,6,0 +2020-04-23,Martin,Indiana,18101,6,0 +2020-04-24,Martin,Indiana,18101,7,0 +2020-04-25,Martin,Indiana,18101,7,0 +2020-04-26,Martin,Indiana,18101,7,0 +2020-04-27,Martin,Indiana,18101,7,0 +2020-04-28,Martin,Indiana,18101,7,0 +2020-04-29,Martin,Indiana,18101,7,0 +2020-04-30,Martin,Indiana,18101,7,0 +2020-05-01,Martin,Indiana,18101,7,0 +2020-05-02,Martin,Indiana,18101,7,0 +2020-05-03,Martin,Indiana,18101,7,0 +2020-05-04,Martin,Indiana,18101,7,0 +2020-05-05,Martin,Indiana,18101,7,0 +2020-05-06,Martin,Indiana,18101,7,0 +2020-05-07,Martin,Indiana,18101,7,0 +2020-05-08,Martin,Indiana,18101,7,0 +2020-05-09,Martin,Indiana,18101,7,0 +2020-05-10,Martin,Indiana,18101,7,0 +2020-05-11,Martin,Indiana,18101,7,0 +2020-05-12,Martin,Indiana,18101,7,0 +2020-05-13,Martin,Indiana,18101,7,0 +2020-05-14,Martin,Indiana,18101,7,0 +2020-05-15,Martin,Indiana,18101,7,0 +2020-05-16,Martin,Indiana,18101,7,0 +2020-05-17,Martin,Indiana,18101,7,0 +2020-05-18,Martin,Indiana,18101,8,0 +2020-05-19,Martin,Indiana,18101,8,0 +2020-05-20,Martin,Indiana,18101,8,0 +2020-05-21,Martin,Indiana,18101,8,0 +2020-05-22,Martin,Indiana,18101,8,0 +2020-05-23,Martin,Indiana,18101,10,0 +2020-05-24,Martin,Indiana,18101,9,0 +2020-05-25,Martin,Indiana,18101,9,0 +2020-05-26,Martin,Indiana,18101,9,0 +2020-05-27,Martin,Indiana,18101,9,0 +2020-05-28,Martin,Indiana,18101,9,0 +2020-05-29,Martin,Indiana,18101,11,0 +2020-05-30,Martin,Indiana,18101,11,0 +2020-05-31,Martin,Indiana,18101,11,0 +2020-06-01,Martin,Indiana,18101,11,0 +2020-06-02,Martin,Indiana,18101,12,0 +2020-06-03,Martin,Indiana,18101,12,0 +2020-06-04,Martin,Indiana,18101,13,0 +2020-06-05,Martin,Indiana,18101,14,0 +2020-06-06,Martin,Indiana,18101,14,0 +2020-06-07,Martin,Indiana,18101,15,0 +2020-06-08,Martin,Indiana,18101,15,0 +2020-06-09,Martin,Indiana,18101,15,0 +2020-06-10,Martin,Indiana,18101,15,0 +2020-06-11,Martin,Indiana,18101,15,0 +2020-06-12,Martin,Indiana,18101,15,0 +2020-06-13,Martin,Indiana,18101,15,0 +2020-06-14,Martin,Indiana,18101,16,0 +2020-06-15,Martin,Indiana,18101,16,0 +2020-06-16,Martin,Indiana,18101,16,0 +2020-06-17,Martin,Indiana,18101,16,0 +2020-06-18,Martin,Indiana,18101,20,0 +2020-06-19,Martin,Indiana,18101,20,0 +2020-06-20,Martin,Indiana,18101,20,0 +2020-06-21,Martin,Indiana,18101,21,0 +2020-06-22,Martin,Indiana,18101,21,0 +2020-06-23,Martin,Indiana,18101,22,0 +2020-06-24,Martin,Indiana,18101,22,0 +2020-06-25,Martin,Indiana,18101,22,0 +2020-06-26,Martin,Indiana,18101,22,0 +2020-06-27,Martin,Indiana,18101,22,0 +2020-06-28,Martin,Indiana,18101,22,0 +2020-06-29,Martin,Indiana,18101,24,0 +2020-06-30,Martin,Indiana,18101,22,0 +2020-07-01,Martin,Indiana,18101,22,0 +2020-07-02,Martin,Indiana,18101,22,0 +2020-07-03,Martin,Indiana,18101,22,0 +2020-07-04,Martin,Indiana,18101,22,0 +2020-07-05,Martin,Indiana,18101,22,0 +2020-07-06,Martin,Indiana,18101,22,0 +2020-07-07,Martin,Indiana,18101,23,0 +2020-07-08,Martin,Indiana,18101,22,0 +2020-07-09,Martin,Indiana,18101,22,0 +2020-03-21,Miami,Indiana,18103,1,0 +2020-03-22,Miami,Indiana,18103,1,0 +2020-03-23,Miami,Indiana,18103,1,0 +2020-03-24,Miami,Indiana,18103,1,0 +2020-03-25,Miami,Indiana,18103,1,0 +2020-03-26,Miami,Indiana,18103,1,0 +2020-03-27,Miami,Indiana,18103,1,0 +2020-03-28,Miami,Indiana,18103,1,0 +2020-03-29,Miami,Indiana,18103,1,0 +2020-03-30,Miami,Indiana,18103,3,0 +2020-03-31,Miami,Indiana,18103,3,0 +2020-04-01,Miami,Indiana,18103,3,0 +2020-04-02,Miami,Indiana,18103,4,0 +2020-04-03,Miami,Indiana,18103,5,0 +2020-04-04,Miami,Indiana,18103,8,0 +2020-04-05,Miami,Indiana,18103,7,0 +2020-04-06,Miami,Indiana,18103,7,0 +2020-04-07,Miami,Indiana,18103,9,0 +2020-04-08,Miami,Indiana,18103,12,0 +2020-04-09,Miami,Indiana,18103,13,0 +2020-04-10,Miami,Indiana,18103,14,0 +2020-04-11,Miami,Indiana,18103,15,0 +2020-04-12,Miami,Indiana,18103,16,0 +2020-04-13,Miami,Indiana,18103,16,0 +2020-04-14,Miami,Indiana,18103,17,0 +2020-04-15,Miami,Indiana,18103,17,0 +2020-04-16,Miami,Indiana,18103,22,0 +2020-04-17,Miami,Indiana,18103,21,0 +2020-04-18,Miami,Indiana,18103,21,0 +2020-04-19,Miami,Indiana,18103,22,0 +2020-04-20,Miami,Indiana,18103,22,0 +2020-04-21,Miami,Indiana,18103,27,0 +2020-04-22,Miami,Indiana,18103,28,0 +2020-04-23,Miami,Indiana,18103,32,0 +2020-04-24,Miami,Indiana,18103,39,0 +2020-04-25,Miami,Indiana,18103,43,0 +2020-04-26,Miami,Indiana,18103,66,0 +2020-04-27,Miami,Indiana,18103,94,0 +2020-04-28,Miami,Indiana,18103,97,0 +2020-04-29,Miami,Indiana,18103,101,0 +2020-04-30,Miami,Indiana,18103,105,0 +2020-05-01,Miami,Indiana,18103,108,0 +2020-05-02,Miami,Indiana,18103,110,1 +2020-05-03,Miami,Indiana,18103,116,1 +2020-05-04,Miami,Indiana,18103,120,1 +2020-05-05,Miami,Indiana,18103,121,1 +2020-05-06,Miami,Indiana,18103,122,1 +2020-05-07,Miami,Indiana,18103,122,1 +2020-05-08,Miami,Indiana,18103,123,1 +2020-05-09,Miami,Indiana,18103,124,1 +2020-05-10,Miami,Indiana,18103,126,1 +2020-05-11,Miami,Indiana,18103,127,1 +2020-05-12,Miami,Indiana,18103,132,1 +2020-05-13,Miami,Indiana,18103,130,1 +2020-05-14,Miami,Indiana,18103,130,1 +2020-05-15,Miami,Indiana,18103,130,1 +2020-05-16,Miami,Indiana,18103,131,1 +2020-05-17,Miami,Indiana,18103,131,1 +2020-05-18,Miami,Indiana,18103,131,1 +2020-05-19,Miami,Indiana,18103,132,1 +2020-05-20,Miami,Indiana,18103,134,1 +2020-05-21,Miami,Indiana,18103,136,1 +2020-05-22,Miami,Indiana,18103,136,1 +2020-05-23,Miami,Indiana,18103,137,1 +2020-05-24,Miami,Indiana,18103,139,1 +2020-05-25,Miami,Indiana,18103,141,1 +2020-05-26,Miami,Indiana,18103,141,1 +2020-05-27,Miami,Indiana,18103,141,1 +2020-05-28,Miami,Indiana,18103,142,1 +2020-05-29,Miami,Indiana,18103,143,1 +2020-05-30,Miami,Indiana,18103,142,1 +2020-05-31,Miami,Indiana,18103,142,1 +2020-06-01,Miami,Indiana,18103,142,1 +2020-06-02,Miami,Indiana,18103,143,1 +2020-06-03,Miami,Indiana,18103,143,1 +2020-06-04,Miami,Indiana,18103,146,1 +2020-06-05,Miami,Indiana,18103,149,1 +2020-06-06,Miami,Indiana,18103,152,1 +2020-06-07,Miami,Indiana,18103,153,1 +2020-06-08,Miami,Indiana,18103,154,1 +2020-06-09,Miami,Indiana,18103,156,1 +2020-06-10,Miami,Indiana,18103,155,1 +2020-06-11,Miami,Indiana,18103,156,1 +2020-06-12,Miami,Indiana,18103,164,1 +2020-06-13,Miami,Indiana,18103,166,1 +2020-06-14,Miami,Indiana,18103,172,1 +2020-06-15,Miami,Indiana,18103,173,1 +2020-06-16,Miami,Indiana,18103,179,1 +2020-06-17,Miami,Indiana,18103,180,1 +2020-06-18,Miami,Indiana,18103,180,1 +2020-06-19,Miami,Indiana,18103,180,1 +2020-06-20,Miami,Indiana,18103,179,2 +2020-06-21,Miami,Indiana,18103,179,2 +2020-06-22,Miami,Indiana,18103,180,2 +2020-06-23,Miami,Indiana,18103,180,2 +2020-06-24,Miami,Indiana,18103,179,2 +2020-06-25,Miami,Indiana,18103,179,2 +2020-06-26,Miami,Indiana,18103,179,2 +2020-06-27,Miami,Indiana,18103,181,2 +2020-06-28,Miami,Indiana,18103,182,2 +2020-06-29,Miami,Indiana,18103,183,2 +2020-06-30,Miami,Indiana,18103,183,2 +2020-07-01,Miami,Indiana,18103,183,2 +2020-07-02,Miami,Indiana,18103,183,2 +2020-07-03,Miami,Indiana,18103,184,2 +2020-07-04,Miami,Indiana,18103,186,2 +2020-07-05,Miami,Indiana,18103,186,2 +2020-07-06,Miami,Indiana,18103,187,2 +2020-07-07,Miami,Indiana,18103,189,2 +2020-07-08,Miami,Indiana,18103,189,2 +2020-07-09,Miami,Indiana,18103,192,2 +2020-03-22,Monroe,Indiana,18105,1,0 +2020-03-23,Monroe,Indiana,18105,3,0 +2020-03-24,Monroe,Indiana,18105,3,0 +2020-03-25,Monroe,Indiana,18105,4,0 +2020-03-26,Monroe,Indiana,18105,6,0 +2020-03-27,Monroe,Indiana,18105,9,0 +2020-03-28,Monroe,Indiana,18105,16,0 +2020-03-29,Monroe,Indiana,18105,22,0 +2020-03-30,Monroe,Indiana,18105,26,0 +2020-03-31,Monroe,Indiana,18105,30,0 +2020-04-01,Monroe,Indiana,18105,33,0 +2020-04-02,Monroe,Indiana,18105,36,0 +2020-04-03,Monroe,Indiana,18105,40,0 +2020-04-04,Monroe,Indiana,18105,45,0 +2020-04-05,Monroe,Indiana,18105,48,0 +2020-04-06,Monroe,Indiana,18105,51,0 +2020-04-07,Monroe,Indiana,18105,54,0 +2020-04-08,Monroe,Indiana,18105,60,0 +2020-04-09,Monroe,Indiana,18105,61,0 +2020-04-10,Monroe,Indiana,18105,70,0 +2020-04-11,Monroe,Indiana,18105,75,0 +2020-04-12,Monroe,Indiana,18105,83,1 +2020-04-13,Monroe,Indiana,18105,87,1 +2020-04-14,Monroe,Indiana,18105,91,1 +2020-04-15,Monroe,Indiana,18105,95,2 +2020-04-16,Monroe,Indiana,18105,102,2 +2020-04-17,Monroe,Indiana,18105,108,3 +2020-04-18,Monroe,Indiana,18105,113,4 +2020-04-19,Monroe,Indiana,18105,114,4 +2020-04-20,Monroe,Indiana,18105,114,4 +2020-04-21,Monroe,Indiana,18105,115,5 +2020-04-22,Monroe,Indiana,18105,118,5 +2020-04-23,Monroe,Indiana,18105,118,6 +2020-04-24,Monroe,Indiana,18105,118,6 +2020-04-25,Monroe,Indiana,18105,120,6 +2020-04-26,Monroe,Indiana,18105,120,7 +2020-04-27,Monroe,Indiana,18105,120,7 +2020-04-28,Monroe,Indiana,18105,122,7 +2020-04-29,Monroe,Indiana,18105,122,8 +2020-04-30,Monroe,Indiana,18105,123,8 +2020-05-01,Monroe,Indiana,18105,126,8 +2020-05-02,Monroe,Indiana,18105,130,8 +2020-05-03,Monroe,Indiana,18105,130,8 +2020-05-04,Monroe,Indiana,18105,131,8 +2020-05-05,Monroe,Indiana,18105,132,8 +2020-05-06,Monroe,Indiana,18105,135,9 +2020-05-07,Monroe,Indiana,18105,137,9 +2020-05-08,Monroe,Indiana,18105,141,9 +2020-05-09,Monroe,Indiana,18105,142,9 +2020-05-10,Monroe,Indiana,18105,143,9 +2020-05-11,Monroe,Indiana,18105,145,9 +2020-05-12,Monroe,Indiana,18105,145,9 +2020-05-13,Monroe,Indiana,18105,145,10 +2020-05-14,Monroe,Indiana,18105,146,10 +2020-05-15,Monroe,Indiana,18105,144,9 +2020-05-16,Monroe,Indiana,18105,144,9 +2020-05-17,Monroe,Indiana,18105,150,9 +2020-05-18,Monroe,Indiana,18105,149,9 +2020-05-19,Monroe,Indiana,18105,152,9 +2020-05-20,Monroe,Indiana,18105,154,10 +2020-05-21,Monroe,Indiana,18105,156,10 +2020-05-22,Monroe,Indiana,18105,157,10 +2020-05-23,Monroe,Indiana,18105,158,10 +2020-05-24,Monroe,Indiana,18105,158,10 +2020-05-25,Monroe,Indiana,18105,160,10 +2020-05-26,Monroe,Indiana,18105,160,11 +2020-05-27,Monroe,Indiana,18105,162,11 +2020-05-28,Monroe,Indiana,18105,165,12 +2020-05-29,Monroe,Indiana,18105,166,12 +2020-05-30,Monroe,Indiana,18105,167,12 +2020-05-31,Monroe,Indiana,18105,166,12 +2020-06-01,Monroe,Indiana,18105,166,12 +2020-06-02,Monroe,Indiana,18105,170,13 +2020-06-03,Monroe,Indiana,18105,171,13 +2020-06-04,Monroe,Indiana,18105,172,14 +2020-06-05,Monroe,Indiana,18105,173,15 +2020-06-06,Monroe,Indiana,18105,176,17 +2020-06-07,Monroe,Indiana,18105,176,17 +2020-06-08,Monroe,Indiana,18105,178,17 +2020-06-09,Monroe,Indiana,18105,181,19 +2020-06-10,Monroe,Indiana,18105,183,19 +2020-06-11,Monroe,Indiana,18105,186,20 +2020-06-12,Monroe,Indiana,18105,187,20 +2020-06-13,Monroe,Indiana,18105,187,20 +2020-06-14,Monroe,Indiana,18105,189,20 +2020-06-15,Monroe,Indiana,18105,190,20 +2020-06-16,Monroe,Indiana,18105,192,20 +2020-06-17,Monroe,Indiana,18105,204,25 +2020-06-18,Monroe,Indiana,18105,205,25 +2020-06-19,Monroe,Indiana,18105,209,28 +2020-06-20,Monroe,Indiana,18105,210,28 +2020-06-21,Monroe,Indiana,18105,210,28 +2020-06-22,Monroe,Indiana,18105,211,28 +2020-06-23,Monroe,Indiana,18105,215,28 +2020-06-24,Monroe,Indiana,18105,216,28 +2020-06-25,Monroe,Indiana,18105,221,30 +2020-06-26,Monroe,Indiana,18105,223,30 +2020-06-27,Monroe,Indiana,18105,229,30 +2020-06-28,Monroe,Indiana,18105,235,30 +2020-06-29,Monroe,Indiana,18105,239,30 +2020-06-30,Monroe,Indiana,18105,246,30 +2020-07-01,Monroe,Indiana,18105,258,30 +2020-07-02,Monroe,Indiana,18105,265,30 +2020-07-03,Monroe,Indiana,18105,268,30 +2020-07-04,Monroe,Indiana,18105,278,30 +2020-07-05,Monroe,Indiana,18105,296,30 +2020-07-06,Monroe,Indiana,18105,302,30 +2020-07-07,Monroe,Indiana,18105,303,30 +2020-07-08,Monroe,Indiana,18105,311,30 +2020-07-09,Monroe,Indiana,18105,317,30 +2020-03-24,Montgomery,Indiana,18107,1,0 +2020-03-25,Montgomery,Indiana,18107,1,0 +2020-03-26,Montgomery,Indiana,18107,2,0 +2020-03-27,Montgomery,Indiana,18107,3,0 +2020-03-28,Montgomery,Indiana,18107,4,0 +2020-03-29,Montgomery,Indiana,18107,5,0 +2020-03-30,Montgomery,Indiana,18107,6,0 +2020-03-31,Montgomery,Indiana,18107,6,0 +2020-04-01,Montgomery,Indiana,18107,6,0 +2020-04-02,Montgomery,Indiana,18107,10,0 +2020-04-03,Montgomery,Indiana,18107,12,0 +2020-04-04,Montgomery,Indiana,18107,14,0 +2020-04-05,Montgomery,Indiana,18107,14,0 +2020-04-06,Montgomery,Indiana,18107,15,0 +2020-04-07,Montgomery,Indiana,18107,16,0 +2020-04-08,Montgomery,Indiana,18107,17,0 +2020-04-09,Montgomery,Indiana,18107,19,0 +2020-04-10,Montgomery,Indiana,18107,20,0 +2020-04-11,Montgomery,Indiana,18107,21,0 +2020-04-12,Montgomery,Indiana,18107,22,0 +2020-04-13,Montgomery,Indiana,18107,22,0 +2020-04-14,Montgomery,Indiana,18107,23,0 +2020-04-15,Montgomery,Indiana,18107,25,0 +2020-04-16,Montgomery,Indiana,18107,25,0 +2020-04-17,Montgomery,Indiana,18107,25,0 +2020-04-18,Montgomery,Indiana,18107,25,0 +2020-04-19,Montgomery,Indiana,18107,25,0 +2020-04-20,Montgomery,Indiana,18107,26,0 +2020-04-21,Montgomery,Indiana,18107,26,0 +2020-04-22,Montgomery,Indiana,18107,27,0 +2020-04-23,Montgomery,Indiana,18107,29,0 +2020-04-24,Montgomery,Indiana,18107,29,0 +2020-04-25,Montgomery,Indiana,18107,30,0 +2020-04-26,Montgomery,Indiana,18107,33,0 +2020-04-27,Montgomery,Indiana,18107,35,0 +2020-04-28,Montgomery,Indiana,18107,37,0 +2020-04-29,Montgomery,Indiana,18107,40,0 +2020-04-30,Montgomery,Indiana,18107,67,0 +2020-05-01,Montgomery,Indiana,18107,88,0 +2020-05-02,Montgomery,Indiana,18107,96,0 +2020-05-03,Montgomery,Indiana,18107,100,0 +2020-05-04,Montgomery,Indiana,18107,102,0 +2020-05-05,Montgomery,Indiana,18107,106,2 +2020-05-06,Montgomery,Indiana,18107,110,2 +2020-05-07,Montgomery,Indiana,18107,111,2 +2020-05-08,Montgomery,Indiana,18107,115,2 +2020-05-09,Montgomery,Indiana,18107,126,3 +2020-05-10,Montgomery,Indiana,18107,128,5 +2020-05-11,Montgomery,Indiana,18107,141,5 +2020-05-12,Montgomery,Indiana,18107,145,6 +2020-05-13,Montgomery,Indiana,18107,148,9 +2020-05-14,Montgomery,Indiana,18107,155,9 +2020-05-15,Montgomery,Indiana,18107,161,9 +2020-05-16,Montgomery,Indiana,18107,169,11 +2020-05-17,Montgomery,Indiana,18107,174,11 +2020-05-18,Montgomery,Indiana,18107,174,13 +2020-05-19,Montgomery,Indiana,18107,188,13 +2020-05-20,Montgomery,Indiana,18107,192,14 +2020-05-21,Montgomery,Indiana,18107,200,14 +2020-05-22,Montgomery,Indiana,18107,203,14 +2020-05-23,Montgomery,Indiana,18107,212,14 +2020-05-24,Montgomery,Indiana,18107,222,16 +2020-05-25,Montgomery,Indiana,18107,228,17 +2020-05-26,Montgomery,Indiana,18107,232,17 +2020-05-27,Montgomery,Indiana,18107,234,17 +2020-05-28,Montgomery,Indiana,18107,235,17 +2020-05-29,Montgomery,Indiana,18107,237,18 +2020-05-30,Montgomery,Indiana,18107,240,18 +2020-05-31,Montgomery,Indiana,18107,243,18 +2020-06-01,Montgomery,Indiana,18107,247,18 +2020-06-02,Montgomery,Indiana,18107,246,17 +2020-06-03,Montgomery,Indiana,18107,246,18 +2020-06-04,Montgomery,Indiana,18107,250,19 +2020-06-05,Montgomery,Indiana,18107,251,18 +2020-06-06,Montgomery,Indiana,18107,254,19 +2020-06-07,Montgomery,Indiana,18107,254,19 +2020-06-08,Montgomery,Indiana,18107,256,19 +2020-06-09,Montgomery,Indiana,18107,261,20 +2020-06-10,Montgomery,Indiana,18107,261,20 +2020-06-11,Montgomery,Indiana,18107,262,20 +2020-06-12,Montgomery,Indiana,18107,264,20 +2020-06-13,Montgomery,Indiana,18107,265,20 +2020-06-14,Montgomery,Indiana,18107,266,20 +2020-06-15,Montgomery,Indiana,18107,268,20 +2020-06-16,Montgomery,Indiana,18107,269,20 +2020-06-17,Montgomery,Indiana,18107,270,20 +2020-06-18,Montgomery,Indiana,18107,270,20 +2020-06-19,Montgomery,Indiana,18107,272,20 +2020-06-20,Montgomery,Indiana,18107,274,20 +2020-06-21,Montgomery,Indiana,18107,274,20 +2020-06-22,Montgomery,Indiana,18107,275,20 +2020-06-23,Montgomery,Indiana,18107,276,20 +2020-06-24,Montgomery,Indiana,18107,277,20 +2020-06-25,Montgomery,Indiana,18107,279,20 +2020-06-26,Montgomery,Indiana,18107,285,20 +2020-06-27,Montgomery,Indiana,18107,283,20 +2020-06-28,Montgomery,Indiana,18107,283,20 +2020-06-29,Montgomery,Indiana,18107,286,21 +2020-06-30,Montgomery,Indiana,18107,287,21 +2020-07-01,Montgomery,Indiana,18107,289,21 +2020-07-02,Montgomery,Indiana,18107,292,21 +2020-07-03,Montgomery,Indiana,18107,295,21 +2020-07-04,Montgomery,Indiana,18107,295,21 +2020-07-05,Montgomery,Indiana,18107,296,21 +2020-07-06,Montgomery,Indiana,18107,296,21 +2020-07-07,Montgomery,Indiana,18107,299,21 +2020-07-08,Montgomery,Indiana,18107,299,21 +2020-07-09,Montgomery,Indiana,18107,299,21 +2020-03-22,Morgan,Indiana,18109,1,0 +2020-03-23,Morgan,Indiana,18109,3,0 +2020-03-24,Morgan,Indiana,18109,3,0 +2020-03-25,Morgan,Indiana,18109,5,0 +2020-03-26,Morgan,Indiana,18109,7,0 +2020-03-27,Morgan,Indiana,18109,10,0 +2020-03-28,Morgan,Indiana,18109,14,0 +2020-03-29,Morgan,Indiana,18109,20,1 +2020-03-30,Morgan,Indiana,18109,23,1 +2020-03-31,Morgan,Indiana,18109,32,1 +2020-04-01,Morgan,Indiana,18109,41,1 +2020-04-02,Morgan,Indiana,18109,48,1 +2020-04-03,Morgan,Indiana,18109,52,1 +2020-04-04,Morgan,Indiana,18109,60,1 +2020-04-05,Morgan,Indiana,18109,65,1 +2020-04-06,Morgan,Indiana,18109,76,1 +2020-04-07,Morgan,Indiana,18109,79,1 +2020-04-08,Morgan,Indiana,18109,82,1 +2020-04-09,Morgan,Indiana,18109,83,3 +2020-04-10,Morgan,Indiana,18109,90,4 +2020-04-11,Morgan,Indiana,18109,95,4 +2020-04-12,Morgan,Indiana,18109,102,4 +2020-04-13,Morgan,Indiana,18109,104,4 +2020-04-14,Morgan,Indiana,18109,105,4 +2020-04-15,Morgan,Indiana,18109,106,4 +2020-04-16,Morgan,Indiana,18109,109,4 +2020-04-17,Morgan,Indiana,18109,112,4 +2020-04-18,Morgan,Indiana,18109,112,4 +2020-04-19,Morgan,Indiana,18109,117,4 +2020-04-20,Morgan,Indiana,18109,120,4 +2020-04-21,Morgan,Indiana,18109,125,4 +2020-04-22,Morgan,Indiana,18109,125,5 +2020-04-23,Morgan,Indiana,18109,126,5 +2020-04-24,Morgan,Indiana,18109,129,5 +2020-04-25,Morgan,Indiana,18109,134,4 +2020-04-26,Morgan,Indiana,18109,132,5 +2020-04-27,Morgan,Indiana,18109,133,4 +2020-04-28,Morgan,Indiana,18109,137,4 +2020-04-29,Morgan,Indiana,18109,142,5 +2020-04-30,Morgan,Indiana,18109,155,5 +2020-05-01,Morgan,Indiana,18109,159,6 +2020-05-02,Morgan,Indiana,18109,163,6 +2020-05-03,Morgan,Indiana,18109,166,7 +2020-05-04,Morgan,Indiana,18109,171,8 +2020-05-05,Morgan,Indiana,18109,174,8 +2020-05-06,Morgan,Indiana,18109,179,9 +2020-05-07,Morgan,Indiana,18109,186,9 +2020-05-08,Morgan,Indiana,18109,185,9 +2020-05-09,Morgan,Indiana,18109,197,9 +2020-05-10,Morgan,Indiana,18109,200,9 +2020-05-11,Morgan,Indiana,18109,211,9 +2020-05-12,Morgan,Indiana,18109,213,10 +2020-05-13,Morgan,Indiana,18109,229,14 +2020-05-14,Morgan,Indiana,18109,231,14 +2020-05-15,Morgan,Indiana,18109,247,16 +2020-05-16,Morgan,Indiana,18109,248,19 +2020-05-17,Morgan,Indiana,18109,251,21 +2020-05-18,Morgan,Indiana,18109,254,21 +2020-05-19,Morgan,Indiana,18109,257,23 +2020-05-20,Morgan,Indiana,18109,258,23 +2020-05-21,Morgan,Indiana,18109,259,24 +2020-05-22,Morgan,Indiana,18109,261,24 +2020-05-23,Morgan,Indiana,18109,265,26 +2020-05-24,Morgan,Indiana,18109,266,26 +2020-05-25,Morgan,Indiana,18109,269,26 +2020-05-26,Morgan,Indiana,18109,270,26 +2020-05-27,Morgan,Indiana,18109,278,26 +2020-05-28,Morgan,Indiana,18109,285,26 +2020-05-29,Morgan,Indiana,18109,286,26 +2020-05-30,Morgan,Indiana,18109,287,26 +2020-05-31,Morgan,Indiana,18109,286,26 +2020-06-01,Morgan,Indiana,18109,289,26 +2020-06-02,Morgan,Indiana,18109,290,26 +2020-06-03,Morgan,Indiana,18109,292,26 +2020-06-04,Morgan,Indiana,18109,293,28 +2020-06-05,Morgan,Indiana,18109,295,28 +2020-06-06,Morgan,Indiana,18109,296,30 +2020-06-07,Morgan,Indiana,18109,299,30 +2020-06-08,Morgan,Indiana,18109,300,30 +2020-06-09,Morgan,Indiana,18109,303,30 +2020-06-10,Morgan,Indiana,18109,303,30 +2020-06-11,Morgan,Indiana,18109,303,30 +2020-06-12,Morgan,Indiana,18109,305,30 +2020-06-13,Morgan,Indiana,18109,306,31 +2020-06-14,Morgan,Indiana,18109,307,31 +2020-06-15,Morgan,Indiana,18109,308,31 +2020-06-16,Morgan,Indiana,18109,309,31 +2020-06-17,Morgan,Indiana,18109,309,32 +2020-06-18,Morgan,Indiana,18109,310,32 +2020-06-19,Morgan,Indiana,18109,310,32 +2020-06-20,Morgan,Indiana,18109,313,32 +2020-06-21,Morgan,Indiana,18109,315,32 +2020-06-22,Morgan,Indiana,18109,314,32 +2020-06-23,Morgan,Indiana,18109,314,32 +2020-06-24,Morgan,Indiana,18109,317,33 +2020-06-25,Morgan,Indiana,18109,318,33 +2020-06-26,Morgan,Indiana,18109,319,34 +2020-06-27,Morgan,Indiana,18109,323,34 +2020-06-28,Morgan,Indiana,18109,324,34 +2020-06-29,Morgan,Indiana,18109,326,34 +2020-06-30,Morgan,Indiana,18109,328,34 +2020-07-01,Morgan,Indiana,18109,330,34 +2020-07-02,Morgan,Indiana,18109,333,34 +2020-07-03,Morgan,Indiana,18109,336,35 +2020-07-04,Morgan,Indiana,18109,338,34 +2020-07-05,Morgan,Indiana,18109,340,34 +2020-07-06,Morgan,Indiana,18109,340,34 +2020-07-07,Morgan,Indiana,18109,340,34 +2020-07-08,Morgan,Indiana,18109,338,34 +2020-07-09,Morgan,Indiana,18109,339,34 +2020-03-28,Newton,Indiana,18111,1,0 +2020-03-29,Newton,Indiana,18111,1,0 +2020-03-30,Newton,Indiana,18111,1,0 +2020-03-31,Newton,Indiana,18111,1,0 +2020-04-01,Newton,Indiana,18111,1,0 +2020-04-02,Newton,Indiana,18111,1,0 +2020-04-03,Newton,Indiana,18111,1,0 +2020-04-04,Newton,Indiana,18111,1,0 +2020-04-05,Newton,Indiana,18111,4,0 +2020-04-06,Newton,Indiana,18111,4,1 +2020-04-07,Newton,Indiana,18111,6,1 +2020-04-08,Newton,Indiana,18111,6,1 +2020-04-09,Newton,Indiana,18111,6,1 +2020-04-10,Newton,Indiana,18111,7,1 +2020-04-11,Newton,Indiana,18111,9,1 +2020-04-12,Newton,Indiana,18111,26,1 +2020-04-13,Newton,Indiana,18111,27,1 +2020-04-14,Newton,Indiana,18111,30,2 +2020-04-15,Newton,Indiana,18111,30,3 +2020-04-16,Newton,Indiana,18111,30,4 +2020-04-17,Newton,Indiana,18111,30,5 +2020-04-18,Newton,Indiana,18111,32,5 +2020-04-19,Newton,Indiana,18111,32,5 +2020-04-20,Newton,Indiana,18111,32,5 +2020-04-21,Newton,Indiana,18111,34,5 +2020-04-22,Newton,Indiana,18111,39,5 +2020-04-23,Newton,Indiana,18111,41,6 +2020-04-24,Newton,Indiana,18111,41,6 +2020-04-25,Newton,Indiana,18111,45,6 +2020-04-26,Newton,Indiana,18111,47,6 +2020-04-27,Newton,Indiana,18111,48,7 +2020-04-28,Newton,Indiana,18111,48,7 +2020-04-29,Newton,Indiana,18111,48,7 +2020-04-30,Newton,Indiana,18111,48,7 +2020-05-01,Newton,Indiana,18111,62,8 +2020-05-02,Newton,Indiana,18111,63,10 +2020-05-03,Newton,Indiana,18111,63,10 +2020-05-04,Newton,Indiana,18111,64,10 +2020-05-05,Newton,Indiana,18111,63,10 +2020-05-06,Newton,Indiana,18111,63,10 +2020-05-07,Newton,Indiana,18111,63,10 +2020-05-08,Newton,Indiana,18111,66,10 +2020-05-09,Newton,Indiana,18111,66,10 +2020-05-10,Newton,Indiana,18111,66,10 +2020-05-11,Newton,Indiana,18111,66,10 +2020-05-12,Newton,Indiana,18111,69,10 +2020-05-13,Newton,Indiana,18111,69,10 +2020-05-14,Newton,Indiana,18111,69,10 +2020-05-15,Newton,Indiana,18111,72,10 +2020-05-16,Newton,Indiana,18111,72,10 +2020-05-17,Newton,Indiana,18111,72,10 +2020-05-18,Newton,Indiana,18111,72,10 +2020-05-19,Newton,Indiana,18111,72,10 +2020-05-20,Newton,Indiana,18111,72,10 +2020-05-21,Newton,Indiana,18111,73,11 +2020-05-22,Newton,Indiana,18111,73,11 +2020-05-23,Newton,Indiana,18111,73,11 +2020-05-24,Newton,Indiana,18111,75,11 +2020-05-25,Newton,Indiana,18111,75,11 +2020-05-26,Newton,Indiana,18111,75,11 +2020-05-27,Newton,Indiana,18111,75,11 +2020-05-28,Newton,Indiana,18111,77,11 +2020-05-29,Newton,Indiana,18111,78,11 +2020-05-30,Newton,Indiana,18111,78,11 +2020-05-31,Newton,Indiana,18111,79,11 +2020-06-01,Newton,Indiana,18111,79,11 +2020-06-02,Newton,Indiana,18111,79,11 +2020-06-03,Newton,Indiana,18111,79,11 +2020-06-04,Newton,Indiana,18111,79,11 +2020-06-05,Newton,Indiana,18111,81,11 +2020-06-06,Newton,Indiana,18111,82,11 +2020-06-07,Newton,Indiana,18111,82,11 +2020-06-08,Newton,Indiana,18111,82,11 +2020-06-09,Newton,Indiana,18111,82,11 +2020-06-10,Newton,Indiana,18111,83,11 +2020-06-11,Newton,Indiana,18111,87,11 +2020-06-12,Newton,Indiana,18111,88,11 +2020-06-13,Newton,Indiana,18111,88,11 +2020-06-14,Newton,Indiana,18111,88,11 +2020-06-15,Newton,Indiana,18111,89,11 +2020-06-16,Newton,Indiana,18111,89,11 +2020-06-17,Newton,Indiana,18111,89,11 +2020-06-18,Newton,Indiana,18111,89,11 +2020-06-19,Newton,Indiana,18111,88,11 +2020-06-20,Newton,Indiana,18111,89,11 +2020-06-21,Newton,Indiana,18111,89,11 +2020-06-22,Newton,Indiana,18111,90,11 +2020-06-23,Newton,Indiana,18111,90,11 +2020-06-24,Newton,Indiana,18111,91,11 +2020-06-25,Newton,Indiana,18111,91,11 +2020-06-26,Newton,Indiana,18111,91,11 +2020-06-27,Newton,Indiana,18111,92,11 +2020-06-28,Newton,Indiana,18111,94,11 +2020-06-29,Newton,Indiana,18111,94,11 +2020-06-30,Newton,Indiana,18111,95,11 +2020-07-01,Newton,Indiana,18111,96,11 +2020-07-02,Newton,Indiana,18111,97,11 +2020-07-03,Newton,Indiana,18111,98,11 +2020-07-04,Newton,Indiana,18111,99,11 +2020-07-05,Newton,Indiana,18111,99,11 +2020-07-06,Newton,Indiana,18111,99,11 +2020-07-07,Newton,Indiana,18111,100,11 +2020-07-08,Newton,Indiana,18111,100,11 +2020-07-09,Newton,Indiana,18111,100,11 +2020-03-09,Noble,Indiana,18113,1,0 +2020-03-10,Noble,Indiana,18113,1,0 +2020-03-11,Noble,Indiana,18113,1,0 +2020-03-12,Noble,Indiana,18113,1,0 +2020-03-13,Noble,Indiana,18113,1,0 +2020-03-14,Noble,Indiana,18113,1,0 +2020-03-15,Noble,Indiana,18113,1,0 +2020-03-16,Noble,Indiana,18113,1,0 +2020-03-17,Noble,Indiana,18113,1,0 +2020-03-18,Noble,Indiana,18113,1,0 +2020-03-19,Noble,Indiana,18113,1,0 +2020-03-20,Noble,Indiana,18113,1,0 +2020-03-21,Noble,Indiana,18113,1,0 +2020-03-22,Noble,Indiana,18113,1,0 +2020-03-23,Noble,Indiana,18113,1,0 +2020-03-24,Noble,Indiana,18113,1,0 +2020-03-25,Noble,Indiana,18113,1,0 +2020-03-26,Noble,Indiana,18113,1,0 +2020-03-27,Noble,Indiana,18113,1,0 +2020-03-28,Noble,Indiana,18113,2,0 +2020-03-29,Noble,Indiana,18113,2,0 +2020-03-30,Noble,Indiana,18113,2,0 +2020-03-31,Noble,Indiana,18113,2,0 +2020-04-01,Noble,Indiana,18113,3,0 +2020-04-02,Noble,Indiana,18113,3,0 +2020-04-03,Noble,Indiana,18113,5,0 +2020-04-04,Noble,Indiana,18113,9,0 +2020-04-05,Noble,Indiana,18113,11,1 +2020-04-06,Noble,Indiana,18113,10,1 +2020-04-07,Noble,Indiana,18113,11,1 +2020-04-08,Noble,Indiana,18113,11,1 +2020-04-09,Noble,Indiana,18113,13,1 +2020-04-10,Noble,Indiana,18113,14,1 +2020-04-11,Noble,Indiana,18113,14,1 +2020-04-12,Noble,Indiana,18113,14,1 +2020-04-13,Noble,Indiana,18113,15,1 +2020-04-14,Noble,Indiana,18113,17,1 +2020-04-15,Noble,Indiana,18113,25,1 +2020-04-16,Noble,Indiana,18113,27,1 +2020-04-17,Noble,Indiana,18113,29,1 +2020-04-18,Noble,Indiana,18113,35,3 +2020-04-19,Noble,Indiana,18113,37,4 +2020-04-20,Noble,Indiana,18113,39,5 +2020-04-21,Noble,Indiana,18113,41,5 +2020-04-22,Noble,Indiana,18113,46,5 +2020-04-23,Noble,Indiana,18113,48,5 +2020-04-24,Noble,Indiana,18113,52,5 +2020-04-25,Noble,Indiana,18113,52,6 +2020-04-26,Noble,Indiana,18113,55,8 +2020-04-27,Noble,Indiana,18113,57,8 +2020-04-28,Noble,Indiana,18113,59,10 +2020-04-29,Noble,Indiana,18113,69,12 +2020-04-30,Noble,Indiana,18113,70,13 +2020-05-01,Noble,Indiana,18113,72,13 +2020-05-02,Noble,Indiana,18113,85,15 +2020-05-03,Noble,Indiana,18113,84,15 +2020-05-04,Noble,Indiana,18113,87,15 +2020-05-05,Noble,Indiana,18113,123,15 +2020-05-06,Noble,Indiana,18113,124,15 +2020-05-07,Noble,Indiana,18113,125,15 +2020-05-08,Noble,Indiana,18113,128,15 +2020-05-09,Noble,Indiana,18113,129,15 +2020-05-10,Noble,Indiana,18113,133,16 +2020-05-11,Noble,Indiana,18113,136,16 +2020-05-12,Noble,Indiana,18113,137,17 +2020-05-13,Noble,Indiana,18113,143,18 +2020-05-14,Noble,Indiana,18113,145,18 +2020-05-15,Noble,Indiana,18113,148,20 +2020-05-16,Noble,Indiana,18113,149,21 +2020-05-17,Noble,Indiana,18113,153,21 +2020-05-18,Noble,Indiana,18113,153,21 +2020-05-19,Noble,Indiana,18113,153,21 +2020-05-20,Noble,Indiana,18113,156,21 +2020-05-21,Noble,Indiana,18113,163,21 +2020-05-22,Noble,Indiana,18113,169,21 +2020-05-23,Noble,Indiana,18113,176,21 +2020-05-24,Noble,Indiana,18113,183,21 +2020-05-25,Noble,Indiana,18113,187,21 +2020-05-26,Noble,Indiana,18113,191,22 +2020-05-27,Noble,Indiana,18113,194,22 +2020-05-28,Noble,Indiana,18113,206,22 +2020-05-29,Noble,Indiana,18113,213,22 +2020-05-30,Noble,Indiana,18113,230,22 +2020-05-31,Noble,Indiana,18113,234,22 +2020-06-01,Noble,Indiana,18113,239,22 +2020-06-02,Noble,Indiana,18113,240,22 +2020-06-03,Noble,Indiana,18113,253,22 +2020-06-04,Noble,Indiana,18113,270,22 +2020-06-05,Noble,Indiana,18113,280,22 +2020-06-06,Noble,Indiana,18113,288,22 +2020-06-07,Noble,Indiana,18113,298,23 +2020-06-08,Noble,Indiana,18113,301,23 +2020-06-09,Noble,Indiana,18113,307,24 +2020-06-10,Noble,Indiana,18113,312,26 +2020-06-11,Noble,Indiana,18113,313,25 +2020-06-12,Noble,Indiana,18113,320,26 +2020-06-13,Noble,Indiana,18113,324,28 +2020-06-14,Noble,Indiana,18113,333,28 +2020-06-15,Noble,Indiana,18113,339,28 +2020-06-16,Noble,Indiana,18113,343,28 +2020-06-17,Noble,Indiana,18113,348,28 +2020-06-18,Noble,Indiana,18113,356,28 +2020-06-19,Noble,Indiana,18113,360,28 +2020-06-20,Noble,Indiana,18113,358,28 +2020-06-21,Noble,Indiana,18113,369,28 +2020-06-22,Noble,Indiana,18113,376,28 +2020-06-23,Noble,Indiana,18113,378,28 +2020-06-24,Noble,Indiana,18113,385,29 +2020-06-25,Noble,Indiana,18113,395,29 +2020-06-26,Noble,Indiana,18113,407,29 +2020-06-27,Noble,Indiana,18113,420,29 +2020-06-28,Noble,Indiana,18113,430,29 +2020-06-29,Noble,Indiana,18113,434,29 +2020-06-30,Noble,Indiana,18113,437,29 +2020-07-01,Noble,Indiana,18113,450,29 +2020-07-02,Noble,Indiana,18113,454,29 +2020-07-03,Noble,Indiana,18113,460,29 +2020-07-04,Noble,Indiana,18113,472,29 +2020-07-05,Noble,Indiana,18113,481,29 +2020-07-06,Noble,Indiana,18113,486,29 +2020-07-07,Noble,Indiana,18113,488,29 +2020-07-08,Noble,Indiana,18113,489,29 +2020-07-09,Noble,Indiana,18113,495,29 +2020-03-24,Ohio,Indiana,18115,1,0 +2020-03-25,Ohio,Indiana,18115,1,0 +2020-03-26,Ohio,Indiana,18115,1,0 +2020-03-27,Ohio,Indiana,18115,1,0 +2020-03-28,Ohio,Indiana,18115,1,0 +2020-03-29,Ohio,Indiana,18115,1,0 +2020-03-30,Ohio,Indiana,18115,1,0 +2020-03-31,Ohio,Indiana,18115,1,0 +2020-04-01,Ohio,Indiana,18115,1,0 +2020-04-02,Ohio,Indiana,18115,1,0 +2020-04-03,Ohio,Indiana,18115,1,0 +2020-04-04,Ohio,Indiana,18115,1,0 +2020-04-05,Ohio,Indiana,18115,1,0 +2020-04-06,Ohio,Indiana,18115,1,0 +2020-04-07,Ohio,Indiana,18115,1,0 +2020-04-08,Ohio,Indiana,18115,1,0 +2020-04-09,Ohio,Indiana,18115,1,0 +2020-04-10,Ohio,Indiana,18115,1,0 +2020-04-11,Ohio,Indiana,18115,1,0 +2020-04-12,Ohio,Indiana,18115,1,0 +2020-04-13,Ohio,Indiana,18115,1,0 +2020-04-14,Ohio,Indiana,18115,1,0 +2020-04-15,Ohio,Indiana,18115,1,0 +2020-04-16,Ohio,Indiana,18115,1,0 +2020-04-17,Ohio,Indiana,18115,1,0 +2020-04-18,Ohio,Indiana,18115,1,0 +2020-04-19,Ohio,Indiana,18115,1,0 +2020-04-20,Ohio,Indiana,18115,1,0 +2020-04-21,Ohio,Indiana,18115,2,0 +2020-04-22,Ohio,Indiana,18115,2,0 +2020-04-23,Ohio,Indiana,18115,3,0 +2020-04-24,Ohio,Indiana,18115,3,0 +2020-04-25,Ohio,Indiana,18115,3,0 +2020-04-26,Ohio,Indiana,18115,3,0 +2020-04-27,Ohio,Indiana,18115,3,0 +2020-04-28,Ohio,Indiana,18115,4,0 +2020-04-29,Ohio,Indiana,18115,4,0 +2020-04-30,Ohio,Indiana,18115,4,0 +2020-05-01,Ohio,Indiana,18115,4,0 +2020-05-02,Ohio,Indiana,18115,4,0 +2020-05-03,Ohio,Indiana,18115,5,0 +2020-05-04,Ohio,Indiana,18115,6,0 +2020-05-05,Ohio,Indiana,18115,6,0 +2020-05-06,Ohio,Indiana,18115,7,0 +2020-05-07,Ohio,Indiana,18115,7,0 +2020-05-08,Ohio,Indiana,18115,7,0 +2020-05-09,Ohio,Indiana,18115,9,0 +2020-05-10,Ohio,Indiana,18115,9,0 +2020-05-11,Ohio,Indiana,18115,9,0 +2020-05-12,Ohio,Indiana,18115,10,0 +2020-05-13,Ohio,Indiana,18115,11,0 +2020-05-14,Ohio,Indiana,18115,11,0 +2020-05-15,Ohio,Indiana,18115,11,0 +2020-05-16,Ohio,Indiana,18115,12,0 +2020-05-17,Ohio,Indiana,18115,12,0 +2020-05-18,Ohio,Indiana,18115,13,0 +2020-05-19,Ohio,Indiana,18115,13,0 +2020-05-20,Ohio,Indiana,18115,13,0 +2020-05-21,Ohio,Indiana,18115,13,0 +2020-05-22,Ohio,Indiana,18115,13,0 +2020-05-23,Ohio,Indiana,18115,13,0 +2020-05-24,Ohio,Indiana,18115,13,0 +2020-05-25,Ohio,Indiana,18115,13,0 +2020-05-26,Ohio,Indiana,18115,13,0 +2020-05-27,Ohio,Indiana,18115,13,0 +2020-05-28,Ohio,Indiana,18115,13,0 +2020-05-29,Ohio,Indiana,18115,13,0 +2020-05-30,Ohio,Indiana,18115,13,0 +2020-05-31,Ohio,Indiana,18115,13,0 +2020-06-01,Ohio,Indiana,18115,13,0 +2020-06-02,Ohio,Indiana,18115,13,0 +2020-06-03,Ohio,Indiana,18115,13,0 +2020-06-04,Ohio,Indiana,18115,13,0 +2020-06-05,Ohio,Indiana,18115,13,0 +2020-06-06,Ohio,Indiana,18115,13,0 +2020-06-07,Ohio,Indiana,18115,13,0 +2020-06-08,Ohio,Indiana,18115,13,0 +2020-06-09,Ohio,Indiana,18115,13,0 +2020-06-10,Ohio,Indiana,18115,13,0 +2020-06-11,Ohio,Indiana,18115,13,0 +2020-06-12,Ohio,Indiana,18115,13,0 +2020-06-13,Ohio,Indiana,18115,13,0 +2020-06-14,Ohio,Indiana,18115,13,0 +2020-06-15,Ohio,Indiana,18115,13,0 +2020-06-16,Ohio,Indiana,18115,13,0 +2020-06-17,Ohio,Indiana,18115,13,0 +2020-06-18,Ohio,Indiana,18115,13,0 +2020-06-19,Ohio,Indiana,18115,13,0 +2020-06-20,Ohio,Indiana,18115,13,0 +2020-06-21,Ohio,Indiana,18115,13,0 +2020-06-22,Ohio,Indiana,18115,13,0 +2020-06-23,Ohio,Indiana,18115,13,0 +2020-06-24,Ohio,Indiana,18115,13,0 +2020-06-25,Ohio,Indiana,18115,14,0 +2020-06-26,Ohio,Indiana,18115,14,0 +2020-06-27,Ohio,Indiana,18115,14,0 +2020-06-28,Ohio,Indiana,18115,14,0 +2020-06-29,Ohio,Indiana,18115,14,0 +2020-06-30,Ohio,Indiana,18115,14,0 +2020-07-01,Ohio,Indiana,18115,14,0 +2020-07-02,Ohio,Indiana,18115,14,0 +2020-07-03,Ohio,Indiana,18115,14,0 +2020-07-04,Ohio,Indiana,18115,14,0 +2020-07-05,Ohio,Indiana,18115,17,0 +2020-07-06,Ohio,Indiana,18115,17,0 +2020-07-07,Ohio,Indiana,18115,17,0 +2020-07-08,Ohio,Indiana,18115,18,0 +2020-07-09,Ohio,Indiana,18115,21,0 +2020-03-26,Orange,Indiana,18117,1,0 +2020-03-27,Orange,Indiana,18117,1,0 +2020-03-28,Orange,Indiana,18117,1,0 +2020-03-29,Orange,Indiana,18117,1,0 +2020-03-30,Orange,Indiana,18117,2,0 +2020-03-31,Orange,Indiana,18117,3,0 +2020-04-01,Orange,Indiana,18117,3,0 +2020-04-02,Orange,Indiana,18117,3,0 +2020-04-03,Orange,Indiana,18117,5,0 +2020-04-04,Orange,Indiana,18117,5,1 +2020-04-05,Orange,Indiana,18117,7,2 +2020-04-06,Orange,Indiana,18117,9,2 +2020-04-07,Orange,Indiana,18117,14,2 +2020-04-08,Orange,Indiana,18117,11,2 +2020-04-09,Orange,Indiana,18117,12,2 +2020-04-10,Orange,Indiana,18117,13,2 +2020-04-11,Orange,Indiana,18117,16,3 +2020-04-12,Orange,Indiana,18117,17,3 +2020-04-13,Orange,Indiana,18117,18,3 +2020-04-14,Orange,Indiana,18117,18,3 +2020-04-15,Orange,Indiana,18117,19,3 +2020-04-16,Orange,Indiana,18117,22,4 +2020-04-17,Orange,Indiana,18117,24,4 +2020-04-18,Orange,Indiana,18117,25,4 +2020-04-19,Orange,Indiana,18117,30,4 +2020-04-20,Orange,Indiana,18117,34,4 +2020-04-21,Orange,Indiana,18117,34,4 +2020-04-22,Orange,Indiana,18117,38,4 +2020-04-23,Orange,Indiana,18117,39,4 +2020-04-24,Orange,Indiana,18117,56,5 +2020-04-25,Orange,Indiana,18117,57,6 +2020-04-26,Orange,Indiana,18117,60,6 +2020-04-27,Orange,Indiana,18117,60,8 +2020-04-28,Orange,Indiana,18117,63,8 +2020-04-29,Orange,Indiana,18117,64,9 +2020-04-30,Orange,Indiana,18117,76,9 +2020-05-01,Orange,Indiana,18117,101,9 +2020-05-02,Orange,Indiana,18117,104,10 +2020-05-03,Orange,Indiana,18117,104,10 +2020-05-04,Orange,Indiana,18117,105,12 +2020-05-05,Orange,Indiana,18117,106,13 +2020-05-06,Orange,Indiana,18117,107,14 +2020-05-07,Orange,Indiana,18117,107,15 +2020-05-08,Orange,Indiana,18117,109,18 +2020-05-09,Orange,Indiana,18117,114,19 +2020-05-10,Orange,Indiana,18117,115,19 +2020-05-11,Orange,Indiana,18117,114,19 +2020-05-12,Orange,Indiana,18117,119,19 +2020-05-13,Orange,Indiana,18117,120,20 +2020-05-14,Orange,Indiana,18117,121,21 +2020-05-15,Orange,Indiana,18117,122,21 +2020-05-16,Orange,Indiana,18117,122,21 +2020-05-17,Orange,Indiana,18117,124,21 +2020-05-18,Orange,Indiana,18117,124,21 +2020-05-19,Orange,Indiana,18117,124,21 +2020-05-20,Orange,Indiana,18117,124,21 +2020-05-21,Orange,Indiana,18117,124,21 +2020-05-22,Orange,Indiana,18117,124,23 +2020-05-23,Orange,Indiana,18117,124,24 +2020-05-24,Orange,Indiana,18117,126,24 +2020-05-25,Orange,Indiana,18117,126,24 +2020-05-26,Orange,Indiana,18117,126,24 +2020-05-27,Orange,Indiana,18117,126,24 +2020-05-28,Orange,Indiana,18117,126,24 +2020-05-29,Orange,Indiana,18117,127,24 +2020-05-30,Orange,Indiana,18117,128,24 +2020-05-31,Orange,Indiana,18117,130,24 +2020-06-01,Orange,Indiana,18117,132,24 +2020-06-02,Orange,Indiana,18117,132,24 +2020-06-03,Orange,Indiana,18117,133,24 +2020-06-04,Orange,Indiana,18117,133,24 +2020-06-05,Orange,Indiana,18117,133,24 +2020-06-06,Orange,Indiana,18117,133,25 +2020-06-07,Orange,Indiana,18117,134,25 +2020-06-08,Orange,Indiana,18117,134,25 +2020-06-09,Orange,Indiana,18117,134,25 +2020-06-10,Orange,Indiana,18117,134,25 +2020-06-11,Orange,Indiana,18117,134,25 +2020-06-12,Orange,Indiana,18117,134,25 +2020-06-13,Orange,Indiana,18117,134,25 +2020-06-14,Orange,Indiana,18117,134,25 +2020-06-15,Orange,Indiana,18117,134,25 +2020-06-16,Orange,Indiana,18117,134,25 +2020-06-17,Orange,Indiana,18117,134,25 +2020-06-18,Orange,Indiana,18117,134,25 +2020-06-19,Orange,Indiana,18117,134,25 +2020-06-20,Orange,Indiana,18117,134,25 +2020-06-21,Orange,Indiana,18117,134,25 +2020-06-22,Orange,Indiana,18117,134,25 +2020-06-23,Orange,Indiana,18117,134,25 +2020-06-24,Orange,Indiana,18117,134,25 +2020-06-25,Orange,Indiana,18117,135,25 +2020-06-26,Orange,Indiana,18117,135,25 +2020-06-27,Orange,Indiana,18117,135,25 +2020-06-28,Orange,Indiana,18117,135,25 +2020-06-29,Orange,Indiana,18117,135,25 +2020-06-30,Orange,Indiana,18117,135,25 +2020-07-01,Orange,Indiana,18117,135,25 +2020-07-02,Orange,Indiana,18117,135,25 +2020-07-03,Orange,Indiana,18117,137,25 +2020-07-04,Orange,Indiana,18117,138,25 +2020-07-05,Orange,Indiana,18117,138,25 +2020-07-06,Orange,Indiana,18117,138,25 +2020-07-07,Orange,Indiana,18117,137,25 +2020-07-08,Orange,Indiana,18117,138,25 +2020-07-09,Orange,Indiana,18117,138,25 +2020-03-19,Owen,Indiana,18119,1,0 +2020-03-20,Owen,Indiana,18119,1,0 +2020-03-21,Owen,Indiana,18119,1,0 +2020-03-22,Owen,Indiana,18119,1,0 +2020-03-23,Owen,Indiana,18119,2,0 +2020-03-24,Owen,Indiana,18119,2,0 +2020-03-25,Owen,Indiana,18119,4,0 +2020-03-26,Owen,Indiana,18119,4,0 +2020-03-27,Owen,Indiana,18119,5,0 +2020-03-28,Owen,Indiana,18119,7,0 +2020-03-29,Owen,Indiana,18119,9,0 +2020-03-30,Owen,Indiana,18119,10,0 +2020-03-31,Owen,Indiana,18119,11,0 +2020-04-01,Owen,Indiana,18119,12,0 +2020-04-02,Owen,Indiana,18119,12,0 +2020-04-03,Owen,Indiana,18119,13,0 +2020-04-04,Owen,Indiana,18119,13,0 +2020-04-05,Owen,Indiana,18119,15,0 +2020-04-06,Owen,Indiana,18119,15,0 +2020-04-07,Owen,Indiana,18119,17,0 +2020-04-08,Owen,Indiana,18119,17,0 +2020-04-09,Owen,Indiana,18119,17,0 +2020-04-10,Owen,Indiana,18119,18,1 +2020-04-11,Owen,Indiana,18119,18,1 +2020-04-12,Owen,Indiana,18119,19,1 +2020-04-13,Owen,Indiana,18119,19,1 +2020-04-14,Owen,Indiana,18119,19,1 +2020-04-15,Owen,Indiana,18119,19,1 +2020-04-16,Owen,Indiana,18119,21,1 +2020-04-17,Owen,Indiana,18119,21,1 +2020-04-18,Owen,Indiana,18119,21,1 +2020-04-19,Owen,Indiana,18119,21,1 +2020-04-20,Owen,Indiana,18119,21,1 +2020-04-21,Owen,Indiana,18119,22,1 +2020-04-22,Owen,Indiana,18119,22,1 +2020-04-23,Owen,Indiana,18119,22,1 +2020-04-24,Owen,Indiana,18119,22,1 +2020-04-25,Owen,Indiana,18119,22,1 +2020-04-26,Owen,Indiana,18119,22,1 +2020-04-27,Owen,Indiana,18119,22,1 +2020-04-28,Owen,Indiana,18119,22,1 +2020-04-29,Owen,Indiana,18119,22,1 +2020-04-30,Owen,Indiana,18119,23,1 +2020-05-01,Owen,Indiana,18119,23,1 +2020-05-02,Owen,Indiana,18119,24,1 +2020-05-03,Owen,Indiana,18119,24,1 +2020-05-04,Owen,Indiana,18119,25,1 +2020-05-05,Owen,Indiana,18119,24,1 +2020-05-06,Owen,Indiana,18119,24,1 +2020-05-07,Owen,Indiana,18119,24,1 +2020-05-08,Owen,Indiana,18119,26,1 +2020-05-09,Owen,Indiana,18119,28,1 +2020-05-10,Owen,Indiana,18119,28,1 +2020-05-11,Owen,Indiana,18119,28,1 +2020-05-12,Owen,Indiana,18119,27,1 +2020-05-13,Owen,Indiana,18119,27,1 +2020-05-14,Owen,Indiana,18119,27,1 +2020-05-15,Owen,Indiana,18119,27,1 +2020-05-16,Owen,Indiana,18119,27,1 +2020-05-17,Owen,Indiana,18119,27,1 +2020-05-18,Owen,Indiana,18119,27,1 +2020-05-19,Owen,Indiana,18119,27,1 +2020-05-20,Owen,Indiana,18119,28,1 +2020-05-21,Owen,Indiana,18119,29,1 +2020-05-22,Owen,Indiana,18119,29,1 +2020-05-23,Owen,Indiana,18119,30,1 +2020-05-24,Owen,Indiana,18119,31,1 +2020-05-25,Owen,Indiana,18119,31,1 +2020-05-26,Owen,Indiana,18119,34,1 +2020-05-27,Owen,Indiana,18119,34,1 +2020-05-28,Owen,Indiana,18119,35,1 +2020-05-29,Owen,Indiana,18119,34,1 +2020-05-30,Owen,Indiana,18119,34,1 +2020-05-31,Owen,Indiana,18119,35,1 +2020-06-01,Owen,Indiana,18119,35,1 +2020-06-02,Owen,Indiana,18119,34,1 +2020-06-03,Owen,Indiana,18119,34,1 +2020-06-04,Owen,Indiana,18119,34,1 +2020-06-05,Owen,Indiana,18119,34,1 +2020-06-06,Owen,Indiana,18119,36,1 +2020-06-07,Owen,Indiana,18119,36,1 +2020-06-08,Owen,Indiana,18119,36,1 +2020-06-09,Owen,Indiana,18119,36,1 +2020-06-10,Owen,Indiana,18119,37,1 +2020-06-11,Owen,Indiana,18119,37,1 +2020-06-12,Owen,Indiana,18119,37,1 +2020-06-13,Owen,Indiana,18119,37,1 +2020-06-14,Owen,Indiana,18119,37,1 +2020-06-15,Owen,Indiana,18119,37,1 +2020-06-16,Owen,Indiana,18119,37,1 +2020-06-17,Owen,Indiana,18119,39,1 +2020-06-18,Owen,Indiana,18119,40,1 +2020-06-19,Owen,Indiana,18119,39,1 +2020-06-20,Owen,Indiana,18119,40,1 +2020-06-21,Owen,Indiana,18119,40,1 +2020-06-22,Owen,Indiana,18119,40,1 +2020-06-23,Owen,Indiana,18119,40,1 +2020-06-24,Owen,Indiana,18119,40,1 +2020-06-25,Owen,Indiana,18119,41,1 +2020-06-26,Owen,Indiana,18119,41,1 +2020-06-27,Owen,Indiana,18119,42,1 +2020-06-28,Owen,Indiana,18119,43,1 +2020-06-29,Owen,Indiana,18119,43,1 +2020-06-30,Owen,Indiana,18119,43,1 +2020-07-01,Owen,Indiana,18119,45,1 +2020-07-02,Owen,Indiana,18119,45,1 +2020-07-03,Owen,Indiana,18119,47,1 +2020-07-04,Owen,Indiana,18119,47,1 +2020-07-05,Owen,Indiana,18119,47,1 +2020-07-06,Owen,Indiana,18119,49,1 +2020-07-07,Owen,Indiana,18119,49,1 +2020-07-08,Owen,Indiana,18119,50,1 +2020-07-09,Owen,Indiana,18119,51,1 +2020-04-03,Parke,Indiana,18121,1,0 +2020-04-04,Parke,Indiana,18121,2,0 +2020-04-05,Parke,Indiana,18121,2,0 +2020-04-06,Parke,Indiana,18121,5,0 +2020-04-07,Parke,Indiana,18121,6,0 +2020-04-08,Parke,Indiana,18121,5,0 +2020-04-09,Parke,Indiana,18121,5,0 +2020-04-10,Parke,Indiana,18121,6,0 +2020-04-11,Parke,Indiana,18121,7,0 +2020-04-12,Parke,Indiana,18121,7,0 +2020-04-13,Parke,Indiana,18121,7,0 +2020-04-14,Parke,Indiana,18121,7,0 +2020-04-15,Parke,Indiana,18121,7,0 +2020-04-16,Parke,Indiana,18121,7,0 +2020-04-17,Parke,Indiana,18121,8,0 +2020-04-18,Parke,Indiana,18121,7,0 +2020-04-19,Parke,Indiana,18121,9,0 +2020-04-20,Parke,Indiana,18121,9,0 +2020-04-21,Parke,Indiana,18121,9,0 +2020-04-22,Parke,Indiana,18121,9,0 +2020-04-23,Parke,Indiana,18121,10,0 +2020-04-24,Parke,Indiana,18121,11,0 +2020-04-25,Parke,Indiana,18121,12,0 +2020-04-26,Parke,Indiana,18121,12,0 +2020-04-27,Parke,Indiana,18121,12,0 +2020-04-28,Parke,Indiana,18121,12,0 +2020-04-29,Parke,Indiana,18121,12,0 +2020-04-30,Parke,Indiana,18121,12,0 +2020-05-01,Parke,Indiana,18121,15,0 +2020-05-02,Parke,Indiana,18121,15,0 +2020-05-03,Parke,Indiana,18121,15,0 +2020-05-04,Parke,Indiana,18121,15,0 +2020-05-05,Parke,Indiana,18121,16,0 +2020-05-06,Parke,Indiana,18121,16,0 +2020-05-07,Parke,Indiana,18121,16,0 +2020-05-08,Parke,Indiana,18121,17,0 +2020-05-09,Parke,Indiana,18121,19,0 +2020-05-10,Parke,Indiana,18121,20,0 +2020-05-11,Parke,Indiana,18121,19,0 +2020-05-12,Parke,Indiana,18121,19,0 +2020-05-13,Parke,Indiana,18121,19,0 +2020-05-14,Parke,Indiana,18121,19,0 +2020-05-15,Parke,Indiana,18121,20,0 +2020-05-16,Parke,Indiana,18121,21,0 +2020-05-17,Parke,Indiana,18121,21,0 +2020-05-18,Parke,Indiana,18121,21,0 +2020-05-19,Parke,Indiana,18121,20,0 +2020-05-20,Parke,Indiana,18121,20,0 +2020-05-21,Parke,Indiana,18121,21,0 +2020-05-22,Parke,Indiana,18121,21,0 +2020-05-23,Parke,Indiana,18121,21,0 +2020-05-24,Parke,Indiana,18121,21,0 +2020-05-25,Parke,Indiana,18121,21,0 +2020-05-26,Parke,Indiana,18121,21,0 +2020-05-27,Parke,Indiana,18121,22,0 +2020-05-28,Parke,Indiana,18121,23,0 +2020-05-29,Parke,Indiana,18121,21,0 +2020-05-30,Parke,Indiana,18121,21,0 +2020-05-31,Parke,Indiana,18121,22,0 +2020-06-01,Parke,Indiana,18121,22,0 +2020-06-02,Parke,Indiana,18121,21,0 +2020-06-03,Parke,Indiana,18121,22,0 +2020-06-04,Parke,Indiana,18121,22,0 +2020-06-05,Parke,Indiana,18121,22,0 +2020-06-06,Parke,Indiana,18121,22,0 +2020-06-07,Parke,Indiana,18121,23,0 +2020-06-08,Parke,Indiana,18121,23,0 +2020-06-09,Parke,Indiana,18121,24,0 +2020-06-10,Parke,Indiana,18121,24,0 +2020-06-11,Parke,Indiana,18121,24,0 +2020-06-12,Parke,Indiana,18121,25,0 +2020-06-13,Parke,Indiana,18121,25,0 +2020-06-14,Parke,Indiana,18121,25,0 +2020-06-15,Parke,Indiana,18121,25,0 +2020-06-16,Parke,Indiana,18121,25,0 +2020-06-17,Parke,Indiana,18121,25,0 +2020-06-18,Parke,Indiana,18121,25,0 +2020-06-19,Parke,Indiana,18121,25,0 +2020-06-20,Parke,Indiana,18121,25,0 +2020-06-21,Parke,Indiana,18121,25,0 +2020-06-22,Parke,Indiana,18121,25,0 +2020-06-23,Parke,Indiana,18121,25,0 +2020-06-24,Parke,Indiana,18121,25,0 +2020-06-25,Parke,Indiana,18121,26,0 +2020-06-26,Parke,Indiana,18121,27,0 +2020-06-27,Parke,Indiana,18121,27,0 +2020-06-28,Parke,Indiana,18121,27,0 +2020-06-29,Parke,Indiana,18121,27,0 +2020-06-30,Parke,Indiana,18121,27,0 +2020-07-01,Parke,Indiana,18121,27,0 +2020-07-02,Parke,Indiana,18121,27,0 +2020-07-03,Parke,Indiana,18121,27,0 +2020-07-04,Parke,Indiana,18121,27,0 +2020-07-05,Parke,Indiana,18121,28,0 +2020-07-06,Parke,Indiana,18121,28,0 +2020-07-07,Parke,Indiana,18121,28,0 +2020-07-08,Parke,Indiana,18121,29,0 +2020-07-09,Parke,Indiana,18121,29,0 +2020-04-10,Perry,Indiana,18123,3,0 +2020-04-11,Perry,Indiana,18123,3,0 +2020-04-12,Perry,Indiana,18123,3,0 +2020-04-13,Perry,Indiana,18123,3,0 +2020-04-14,Perry,Indiana,18123,3,0 +2020-04-15,Perry,Indiana,18123,4,0 +2020-04-16,Perry,Indiana,18123,4,0 +2020-04-17,Perry,Indiana,18123,5,0 +2020-04-18,Perry,Indiana,18123,6,0 +2020-04-19,Perry,Indiana,18123,6,0 +2020-04-20,Perry,Indiana,18123,7,0 +2020-04-21,Perry,Indiana,18123,8,0 +2020-04-22,Perry,Indiana,18123,10,0 +2020-04-23,Perry,Indiana,18123,11,0 +2020-04-24,Perry,Indiana,18123,11,0 +2020-04-25,Perry,Indiana,18123,11,0 +2020-04-26,Perry,Indiana,18123,11,0 +2020-04-27,Perry,Indiana,18123,13,0 +2020-04-28,Perry,Indiana,18123,15,0 +2020-04-29,Perry,Indiana,18123,15,0 +2020-04-30,Perry,Indiana,18123,15,0 +2020-05-01,Perry,Indiana,18123,15,0 +2020-05-02,Perry,Indiana,18123,17,0 +2020-05-03,Perry,Indiana,18123,17,0 +2020-05-04,Perry,Indiana,18123,17,0 +2020-05-05,Perry,Indiana,18123,17,0 +2020-05-06,Perry,Indiana,18123,17,0 +2020-05-07,Perry,Indiana,18123,19,0 +2020-05-08,Perry,Indiana,18123,21,0 +2020-05-09,Perry,Indiana,18123,23,0 +2020-05-10,Perry,Indiana,18123,24,0 +2020-05-11,Perry,Indiana,18123,28,0 +2020-05-12,Perry,Indiana,18123,26,0 +2020-05-13,Perry,Indiana,18123,28,0 +2020-05-14,Perry,Indiana,18123,28,0 +2020-05-15,Perry,Indiana,18123,29,1 +2020-05-16,Perry,Indiana,18123,29,1 +2020-05-17,Perry,Indiana,18123,29,1 +2020-05-18,Perry,Indiana,18123,29,1 +2020-05-19,Perry,Indiana,18123,30,1 +2020-05-20,Perry,Indiana,18123,30,1 +2020-05-21,Perry,Indiana,18123,33,1 +2020-05-22,Perry,Indiana,18123,33,1 +2020-05-23,Perry,Indiana,18123,34,1 +2020-05-24,Perry,Indiana,18123,34,1 +2020-05-25,Perry,Indiana,18123,38,1 +2020-05-26,Perry,Indiana,18123,37,1 +2020-05-27,Perry,Indiana,18123,37,1 +2020-05-28,Perry,Indiana,18123,39,1 +2020-05-29,Perry,Indiana,18123,42,1 +2020-05-30,Perry,Indiana,18123,43,1 +2020-05-31,Perry,Indiana,18123,44,1 +2020-06-01,Perry,Indiana,18123,44,1 +2020-06-02,Perry,Indiana,18123,44,1 +2020-06-03,Perry,Indiana,18123,45,1 +2020-06-04,Perry,Indiana,18123,50,1 +2020-06-05,Perry,Indiana,18123,50,1 +2020-06-06,Perry,Indiana,18123,52,2 +2020-06-07,Perry,Indiana,18123,53,2 +2020-06-08,Perry,Indiana,18123,55,2 +2020-06-09,Perry,Indiana,18123,58,2 +2020-06-10,Perry,Indiana,18123,59,2 +2020-06-11,Perry,Indiana,18123,66,2 +2020-06-12,Perry,Indiana,18123,79,2 +2020-06-13,Perry,Indiana,18123,94,2 +2020-06-14,Perry,Indiana,18123,102,2 +2020-06-15,Perry,Indiana,18123,103,2 +2020-06-16,Perry,Indiana,18123,103,2 +2020-06-17,Perry,Indiana,18123,105,2 +2020-06-18,Perry,Indiana,18123,112,2 +2020-06-19,Perry,Indiana,18123,112,3 +2020-06-20,Perry,Indiana,18123,114,4 +2020-06-21,Perry,Indiana,18123,116,4 +2020-06-22,Perry,Indiana,18123,118,4 +2020-06-23,Perry,Indiana,18123,120,5 +2020-06-24,Perry,Indiana,18123,119,5 +2020-06-25,Perry,Indiana,18123,123,5 +2020-06-26,Perry,Indiana,18123,128,6 +2020-06-27,Perry,Indiana,18123,129,7 +2020-06-28,Perry,Indiana,18123,129,8 +2020-06-29,Perry,Indiana,18123,130,8 +2020-06-30,Perry,Indiana,18123,129,9 +2020-07-01,Perry,Indiana,18123,131,10 +2020-07-02,Perry,Indiana,18123,134,10 +2020-07-03,Perry,Indiana,18123,138,10 +2020-07-04,Perry,Indiana,18123,138,10 +2020-07-05,Perry,Indiana,18123,138,10 +2020-07-06,Perry,Indiana,18123,140,10 +2020-07-07,Perry,Indiana,18123,146,10 +2020-07-08,Perry,Indiana,18123,146,10 +2020-07-09,Perry,Indiana,18123,151,10 +2020-04-12,Pike,Indiana,18125,1,0 +2020-04-13,Pike,Indiana,18125,1,0 +2020-04-14,Pike,Indiana,18125,2,0 +2020-04-15,Pike,Indiana,18125,1,0 +2020-04-16,Pike,Indiana,18125,1,0 +2020-04-17,Pike,Indiana,18125,1,0 +2020-04-18,Pike,Indiana,18125,1,0 +2020-04-19,Pike,Indiana,18125,1,0 +2020-04-20,Pike,Indiana,18125,1,0 +2020-04-21,Pike,Indiana,18125,1,0 +2020-04-22,Pike,Indiana,18125,1,0 +2020-04-23,Pike,Indiana,18125,1,0 +2020-04-24,Pike,Indiana,18125,1,0 +2020-04-25,Pike,Indiana,18125,1,0 +2020-04-26,Pike,Indiana,18125,1,0 +2020-04-27,Pike,Indiana,18125,1,0 +2020-04-28,Pike,Indiana,18125,1,0 +2020-04-29,Pike,Indiana,18125,1,0 +2020-04-30,Pike,Indiana,18125,1,0 +2020-05-01,Pike,Indiana,18125,2,0 +2020-05-02,Pike,Indiana,18125,2,0 +2020-05-03,Pike,Indiana,18125,2,0 +2020-05-04,Pike,Indiana,18125,2,0 +2020-05-05,Pike,Indiana,18125,2,0 +2020-05-06,Pike,Indiana,18125,2,0 +2020-05-07,Pike,Indiana,18125,2,0 +2020-05-08,Pike,Indiana,18125,2,0 +2020-05-09,Pike,Indiana,18125,2,0 +2020-05-10,Pike,Indiana,18125,3,0 +2020-05-11,Pike,Indiana,18125,3,0 +2020-05-12,Pike,Indiana,18125,3,0 +2020-05-13,Pike,Indiana,18125,3,0 +2020-05-14,Pike,Indiana,18125,3,0 +2020-05-15,Pike,Indiana,18125,3,0 +2020-05-16,Pike,Indiana,18125,5,0 +2020-05-17,Pike,Indiana,18125,5,0 +2020-05-18,Pike,Indiana,18125,5,0 +2020-05-19,Pike,Indiana,18125,5,0 +2020-05-20,Pike,Indiana,18125,5,0 +2020-05-21,Pike,Indiana,18125,5,0 +2020-05-22,Pike,Indiana,18125,5,0 +2020-05-23,Pike,Indiana,18125,5,0 +2020-05-24,Pike,Indiana,18125,6,0 +2020-05-25,Pike,Indiana,18125,6,0 +2020-05-26,Pike,Indiana,18125,6,0 +2020-05-27,Pike,Indiana,18125,6,0 +2020-05-28,Pike,Indiana,18125,6,0 +2020-05-29,Pike,Indiana,18125,6,0 +2020-05-30,Pike,Indiana,18125,6,0 +2020-05-31,Pike,Indiana,18125,6,0 +2020-06-01,Pike,Indiana,18125,6,0 +2020-06-02,Pike,Indiana,18125,6,0 +2020-06-03,Pike,Indiana,18125,6,0 +2020-06-04,Pike,Indiana,18125,6,0 +2020-06-05,Pike,Indiana,18125,6,0 +2020-06-06,Pike,Indiana,18125,6,0 +2020-06-07,Pike,Indiana,18125,6,0 +2020-06-08,Pike,Indiana,18125,6,0 +2020-06-09,Pike,Indiana,18125,6,0 +2020-06-10,Pike,Indiana,18125,6,0 +2020-06-11,Pike,Indiana,18125,6,0 +2020-06-12,Pike,Indiana,18125,6,0 +2020-06-13,Pike,Indiana,18125,6,0 +2020-06-14,Pike,Indiana,18125,6,0 +2020-06-15,Pike,Indiana,18125,6,0 +2020-06-16,Pike,Indiana,18125,6,0 +2020-06-17,Pike,Indiana,18125,6,0 +2020-06-18,Pike,Indiana,18125,6,0 +2020-06-19,Pike,Indiana,18125,6,0 +2020-06-20,Pike,Indiana,18125,6,0 +2020-06-21,Pike,Indiana,18125,6,0 +2020-06-22,Pike,Indiana,18125,6,0 +2020-06-23,Pike,Indiana,18125,6,0 +2020-06-24,Pike,Indiana,18125,6,0 +2020-06-25,Pike,Indiana,18125,6,0 +2020-06-26,Pike,Indiana,18125,6,0 +2020-06-27,Pike,Indiana,18125,6,0 +2020-06-28,Pike,Indiana,18125,6,0 +2020-06-29,Pike,Indiana,18125,6,0 +2020-06-30,Pike,Indiana,18125,6,0 +2020-07-01,Pike,Indiana,18125,8,0 +2020-07-02,Pike,Indiana,18125,8,0 +2020-07-03,Pike,Indiana,18125,9,0 +2020-07-04,Pike,Indiana,18125,10,0 +2020-07-05,Pike,Indiana,18125,11,0 +2020-07-06,Pike,Indiana,18125,11,0 +2020-07-07,Pike,Indiana,18125,11,0 +2020-07-08,Pike,Indiana,18125,11,0 +2020-07-09,Pike,Indiana,18125,11,0 +2020-03-24,Porter,Indiana,18127,1,0 +2020-03-25,Porter,Indiana,18127,3,0 +2020-03-26,Porter,Indiana,18127,5,0 +2020-03-27,Porter,Indiana,18127,6,0 +2020-03-28,Porter,Indiana,18127,9,0 +2020-03-29,Porter,Indiana,18127,14,0 +2020-03-30,Porter,Indiana,18127,15,0 +2020-03-31,Porter,Indiana,18127,21,0 +2020-04-01,Porter,Indiana,18127,27,0 +2020-04-02,Porter,Indiana,18127,35,0 +2020-04-03,Porter,Indiana,18127,45,0 +2020-04-04,Porter,Indiana,18127,51,0 +2020-04-05,Porter,Indiana,18127,59,0 +2020-04-06,Porter,Indiana,18127,79,0 +2020-04-07,Porter,Indiana,18127,84,0 +2020-04-08,Porter,Indiana,18127,86,1 +2020-04-09,Porter,Indiana,18127,94,1 +2020-04-10,Porter,Indiana,18127,96,1 +2020-04-11,Porter,Indiana,18127,108,2 +2020-04-12,Porter,Indiana,18127,119,3 +2020-04-13,Porter,Indiana,18127,121,3 +2020-04-14,Porter,Indiana,18127,128,3 +2020-04-15,Porter,Indiana,18127,131,3 +2020-04-16,Porter,Indiana,18127,144,3 +2020-04-17,Porter,Indiana,18127,156,3 +2020-04-18,Porter,Indiana,18127,169,4 +2020-04-19,Porter,Indiana,18127,176,4 +2020-04-20,Porter,Indiana,18127,181,4 +2020-04-21,Porter,Indiana,18127,184,6 +2020-04-22,Porter,Indiana,18127,197,6 +2020-04-23,Porter,Indiana,18127,202,6 +2020-04-24,Porter,Indiana,18127,208,6 +2020-04-25,Porter,Indiana,18127,214,6 +2020-04-26,Porter,Indiana,18127,216,6 +2020-04-27,Porter,Indiana,18127,219,6 +2020-04-28,Porter,Indiana,18127,232,6 +2020-04-29,Porter,Indiana,18127,236,7 +2020-04-30,Porter,Indiana,18127,243,8 +2020-05-01,Porter,Indiana,18127,245,8 +2020-05-02,Porter,Indiana,18127,255,8 +2020-05-03,Porter,Indiana,18127,257,8 +2020-05-04,Porter,Indiana,18127,263,8 +2020-05-05,Porter,Indiana,18127,271,8 +2020-05-06,Porter,Indiana,18127,286,8 +2020-05-07,Porter,Indiana,18127,300,8 +2020-05-08,Porter,Indiana,18127,309,9 +2020-05-09,Porter,Indiana,18127,315,10 +2020-05-10,Porter,Indiana,18127,320,10 +2020-05-11,Porter,Indiana,18127,338,10 +2020-05-12,Porter,Indiana,18127,361,10 +2020-05-13,Porter,Indiana,18127,370,10 +2020-05-14,Porter,Indiana,18127,379,10 +2020-05-15,Porter,Indiana,18127,388,11 +2020-05-16,Porter,Indiana,18127,395,11 +2020-05-17,Porter,Indiana,18127,401,11 +2020-05-18,Porter,Indiana,18127,412,13 +2020-05-19,Porter,Indiana,18127,420,14 +2020-05-20,Porter,Indiana,18127,429,16 +2020-05-21,Porter,Indiana,18127,433,20 +2020-05-22,Porter,Indiana,18127,466,20 +2020-05-23,Porter,Indiana,18127,472,22 +2020-05-24,Porter,Indiana,18127,480,22 +2020-05-25,Porter,Indiana,18127,494,22 +2020-05-26,Porter,Indiana,18127,497,22 +2020-05-27,Porter,Indiana,18127,502,22 +2020-05-28,Porter,Indiana,18127,512,23 +2020-05-29,Porter,Indiana,18127,523,28 +2020-05-30,Porter,Indiana,18127,543,30 +2020-05-31,Porter,Indiana,18127,548,30 +2020-06-01,Porter,Indiana,18127,552,30 +2020-06-02,Porter,Indiana,18127,556,31 +2020-06-03,Porter,Indiana,18127,562,31 +2020-06-04,Porter,Indiana,18127,567,32 +2020-06-05,Porter,Indiana,18127,571,35 +2020-06-06,Porter,Indiana,18127,573,35 +2020-06-07,Porter,Indiana,18127,580,35 +2020-06-08,Porter,Indiana,18127,583,35 +2020-06-09,Porter,Indiana,18127,584,35 +2020-06-10,Porter,Indiana,18127,585,35 +2020-06-11,Porter,Indiana,18127,591,35 +2020-06-12,Porter,Indiana,18127,594,35 +2020-06-13,Porter,Indiana,18127,595,36 +2020-06-14,Porter,Indiana,18127,596,36 +2020-06-15,Porter,Indiana,18127,598,36 +2020-06-16,Porter,Indiana,18127,602,36 +2020-06-17,Porter,Indiana,18127,606,37 +2020-06-18,Porter,Indiana,18127,615,38 +2020-06-19,Porter,Indiana,18127,620,38 +2020-06-20,Porter,Indiana,18127,622,38 +2020-06-21,Porter,Indiana,18127,624,38 +2020-06-22,Porter,Indiana,18127,630,38 +2020-06-23,Porter,Indiana,18127,634,38 +2020-06-24,Porter,Indiana,18127,638,38 +2020-06-25,Porter,Indiana,18127,643,38 +2020-06-26,Porter,Indiana,18127,662,38 +2020-06-27,Porter,Indiana,18127,668,38 +2020-06-28,Porter,Indiana,18127,676,38 +2020-06-29,Porter,Indiana,18127,684,38 +2020-06-30,Porter,Indiana,18127,688,38 +2020-07-01,Porter,Indiana,18127,693,39 +2020-07-02,Porter,Indiana,18127,698,39 +2020-07-03,Porter,Indiana,18127,720,39 +2020-07-04,Porter,Indiana,18127,728,39 +2020-07-05,Porter,Indiana,18127,736,39 +2020-07-06,Porter,Indiana,18127,740,39 +2020-07-07,Porter,Indiana,18127,744,39 +2020-07-08,Porter,Indiana,18127,775,40 +2020-07-09,Porter,Indiana,18127,788,40 +2020-03-26,Posey,Indiana,18129,1,0 +2020-03-27,Posey,Indiana,18129,1,0 +2020-03-28,Posey,Indiana,18129,2,0 +2020-03-29,Posey,Indiana,18129,3,0 +2020-03-30,Posey,Indiana,18129,3,0 +2020-03-31,Posey,Indiana,18129,4,0 +2020-04-01,Posey,Indiana,18129,4,0 +2020-04-02,Posey,Indiana,18129,4,0 +2020-04-03,Posey,Indiana,18129,5,0 +2020-04-04,Posey,Indiana,18129,5,0 +2020-04-05,Posey,Indiana,18129,5,0 +2020-04-06,Posey,Indiana,18129,5,0 +2020-04-07,Posey,Indiana,18129,5,0 +2020-04-08,Posey,Indiana,18129,5,0 +2020-04-09,Posey,Indiana,18129,5,0 +2020-04-10,Posey,Indiana,18129,5,0 +2020-04-11,Posey,Indiana,18129,5,0 +2020-04-12,Posey,Indiana,18129,5,0 +2020-04-13,Posey,Indiana,18129,5,0 +2020-04-14,Posey,Indiana,18129,5,0 +2020-04-15,Posey,Indiana,18129,6,0 +2020-04-16,Posey,Indiana,18129,6,0 +2020-04-17,Posey,Indiana,18129,6,0 +2020-04-18,Posey,Indiana,18129,6,0 +2020-04-19,Posey,Indiana,18129,7,0 +2020-04-20,Posey,Indiana,18129,7,0 +2020-04-21,Posey,Indiana,18129,8,0 +2020-04-22,Posey,Indiana,18129,8,0 +2020-04-23,Posey,Indiana,18129,8,0 +2020-04-24,Posey,Indiana,18129,8,0 +2020-04-25,Posey,Indiana,18129,9,0 +2020-04-26,Posey,Indiana,18129,9,0 +2020-04-27,Posey,Indiana,18129,9,0 +2020-04-28,Posey,Indiana,18129,9,0 +2020-04-29,Posey,Indiana,18129,9,0 +2020-04-30,Posey,Indiana,18129,11,0 +2020-05-01,Posey,Indiana,18129,12,0 +2020-05-02,Posey,Indiana,18129,12,0 +2020-05-03,Posey,Indiana,18129,12,0 +2020-05-04,Posey,Indiana,18129,13,0 +2020-05-05,Posey,Indiana,18129,14,0 +2020-05-06,Posey,Indiana,18129,14,0 +2020-05-07,Posey,Indiana,18129,15,0 +2020-05-08,Posey,Indiana,18129,15,0 +2020-05-09,Posey,Indiana,18129,15,0 +2020-05-10,Posey,Indiana,18129,15,0 +2020-05-11,Posey,Indiana,18129,15,0 +2020-05-12,Posey,Indiana,18129,16,0 +2020-05-13,Posey,Indiana,18129,16,0 +2020-05-14,Posey,Indiana,18129,16,0 +2020-05-15,Posey,Indiana,18129,16,0 +2020-05-16,Posey,Indiana,18129,16,0 +2020-05-17,Posey,Indiana,18129,16,0 +2020-05-18,Posey,Indiana,18129,16,0 +2020-05-19,Posey,Indiana,18129,16,0 +2020-05-20,Posey,Indiana,18129,16,0 +2020-05-21,Posey,Indiana,18129,16,0 +2020-05-22,Posey,Indiana,18129,16,0 +2020-05-23,Posey,Indiana,18129,17,0 +2020-05-24,Posey,Indiana,18129,17,0 +2020-05-25,Posey,Indiana,18129,17,0 +2020-05-26,Posey,Indiana,18129,17,0 +2020-05-27,Posey,Indiana,18129,16,0 +2020-05-28,Posey,Indiana,18129,16,0 +2020-05-29,Posey,Indiana,18129,16,0 +2020-05-30,Posey,Indiana,18129,16,0 +2020-05-31,Posey,Indiana,18129,16,0 +2020-06-01,Posey,Indiana,18129,16,0 +2020-06-02,Posey,Indiana,18129,16,0 +2020-06-03,Posey,Indiana,18129,16,0 +2020-06-04,Posey,Indiana,18129,16,0 +2020-06-05,Posey,Indiana,18129,16,0 +2020-06-06,Posey,Indiana,18129,16,0 +2020-06-07,Posey,Indiana,18129,16,0 +2020-06-08,Posey,Indiana,18129,16,0 +2020-06-09,Posey,Indiana,18129,17,0 +2020-06-10,Posey,Indiana,18129,17,0 +2020-06-11,Posey,Indiana,18129,18,0 +2020-06-12,Posey,Indiana,18129,18,0 +2020-06-13,Posey,Indiana,18129,18,0 +2020-06-14,Posey,Indiana,18129,19,0 +2020-06-15,Posey,Indiana,18129,19,0 +2020-06-16,Posey,Indiana,18129,20,0 +2020-06-17,Posey,Indiana,18129,22,0 +2020-06-18,Posey,Indiana,18129,23,0 +2020-06-19,Posey,Indiana,18129,23,0 +2020-06-20,Posey,Indiana,18129,24,0 +2020-06-21,Posey,Indiana,18129,24,0 +2020-06-22,Posey,Indiana,18129,26,0 +2020-06-23,Posey,Indiana,18129,26,0 +2020-06-24,Posey,Indiana,18129,26,0 +2020-06-25,Posey,Indiana,18129,27,0 +2020-06-26,Posey,Indiana,18129,28,0 +2020-06-27,Posey,Indiana,18129,28,0 +2020-06-28,Posey,Indiana,18129,29,0 +2020-06-29,Posey,Indiana,18129,30,0 +2020-06-30,Posey,Indiana,18129,32,0 +2020-07-01,Posey,Indiana,18129,35,0 +2020-07-02,Posey,Indiana,18129,36,0 +2020-07-03,Posey,Indiana,18129,36,0 +2020-07-04,Posey,Indiana,18129,38,0 +2020-07-05,Posey,Indiana,18129,39,0 +2020-07-06,Posey,Indiana,18129,42,0 +2020-07-07,Posey,Indiana,18129,44,0 +2020-07-08,Posey,Indiana,18129,45,0 +2020-07-09,Posey,Indiana,18129,49,0 +2020-04-06,Pulaski,Indiana,18131,1,0 +2020-04-07,Pulaski,Indiana,18131,1,0 +2020-04-08,Pulaski,Indiana,18131,1,0 +2020-04-09,Pulaski,Indiana,18131,1,0 +2020-04-10,Pulaski,Indiana,18131,1,0 +2020-04-11,Pulaski,Indiana,18131,1,0 +2020-04-12,Pulaski,Indiana,18131,1,0 +2020-04-13,Pulaski,Indiana,18131,1,0 +2020-04-14,Pulaski,Indiana,18131,1,0 +2020-04-15,Pulaski,Indiana,18131,1,0 +2020-04-16,Pulaski,Indiana,18131,1,0 +2020-04-17,Pulaski,Indiana,18131,1,0 +2020-04-18,Pulaski,Indiana,18131,1,0 +2020-04-19,Pulaski,Indiana,18131,1,0 +2020-04-20,Pulaski,Indiana,18131,1,0 +2020-04-21,Pulaski,Indiana,18131,1,0 +2020-04-22,Pulaski,Indiana,18131,1,0 +2020-04-23,Pulaski,Indiana,18131,4,0 +2020-04-24,Pulaski,Indiana,18131,7,0 +2020-04-25,Pulaski,Indiana,18131,9,0 +2020-04-26,Pulaski,Indiana,18131,13,0 +2020-04-27,Pulaski,Indiana,18131,18,0 +2020-04-28,Pulaski,Indiana,18131,21,0 +2020-04-29,Pulaski,Indiana,18131,23,0 +2020-04-30,Pulaski,Indiana,18131,23,0 +2020-05-01,Pulaski,Indiana,18131,25,0 +2020-05-02,Pulaski,Indiana,18131,26,0 +2020-05-03,Pulaski,Indiana,18131,29,0 +2020-05-04,Pulaski,Indiana,18131,29,0 +2020-05-05,Pulaski,Indiana,18131,29,0 +2020-05-06,Pulaski,Indiana,18131,31,0 +2020-05-07,Pulaski,Indiana,18131,33,0 +2020-05-08,Pulaski,Indiana,18131,33,0 +2020-05-09,Pulaski,Indiana,18131,34,0 +2020-05-10,Pulaski,Indiana,18131,34,0 +2020-05-11,Pulaski,Indiana,18131,34,0 +2020-05-12,Pulaski,Indiana,18131,34,0 +2020-05-13,Pulaski,Indiana,18131,34,0 +2020-05-14,Pulaski,Indiana,18131,34,0 +2020-05-15,Pulaski,Indiana,18131,34,0 +2020-05-16,Pulaski,Indiana,18131,34,0 +2020-05-17,Pulaski,Indiana,18131,34,0 +2020-05-18,Pulaski,Indiana,18131,35,0 +2020-05-19,Pulaski,Indiana,18131,35,0 +2020-05-20,Pulaski,Indiana,18131,38,0 +2020-05-21,Pulaski,Indiana,18131,37,0 +2020-05-22,Pulaski,Indiana,18131,37,0 +2020-05-23,Pulaski,Indiana,18131,38,0 +2020-05-24,Pulaski,Indiana,18131,39,0 +2020-05-25,Pulaski,Indiana,18131,39,0 +2020-05-26,Pulaski,Indiana,18131,39,0 +2020-05-27,Pulaski,Indiana,18131,40,0 +2020-05-28,Pulaski,Indiana,18131,41,0 +2020-05-29,Pulaski,Indiana,18131,46,0 +2020-05-30,Pulaski,Indiana,18131,46,0 +2020-05-31,Pulaski,Indiana,18131,46,0 +2020-06-01,Pulaski,Indiana,18131,46,0 +2020-06-02,Pulaski,Indiana,18131,47,0 +2020-06-03,Pulaski,Indiana,18131,49,0 +2020-06-04,Pulaski,Indiana,18131,50,0 +2020-06-05,Pulaski,Indiana,18131,50,0 +2020-06-06,Pulaski,Indiana,18131,51,1 +2020-06-07,Pulaski,Indiana,18131,51,1 +2020-06-08,Pulaski,Indiana,18131,51,1 +2020-06-09,Pulaski,Indiana,18131,53,1 +2020-06-10,Pulaski,Indiana,18131,53,1 +2020-06-11,Pulaski,Indiana,18131,53,1 +2020-06-12,Pulaski,Indiana,18131,53,1 +2020-06-13,Pulaski,Indiana,18131,53,1 +2020-06-14,Pulaski,Indiana,18131,54,1 +2020-06-15,Pulaski,Indiana,18131,54,1 +2020-06-16,Pulaski,Indiana,18131,54,1 +2020-06-17,Pulaski,Indiana,18131,54,1 +2020-06-18,Pulaski,Indiana,18131,54,1 +2020-06-19,Pulaski,Indiana,18131,54,1 +2020-06-20,Pulaski,Indiana,18131,55,1 +2020-06-21,Pulaski,Indiana,18131,55,1 +2020-06-22,Pulaski,Indiana,18131,55,1 +2020-06-23,Pulaski,Indiana,18131,55,1 +2020-06-24,Pulaski,Indiana,18131,55,1 +2020-06-25,Pulaski,Indiana,18131,55,1 +2020-06-26,Pulaski,Indiana,18131,59,1 +2020-06-27,Pulaski,Indiana,18131,56,1 +2020-06-28,Pulaski,Indiana,18131,56,1 +2020-06-29,Pulaski,Indiana,18131,56,1 +2020-06-30,Pulaski,Indiana,18131,60,1 +2020-07-01,Pulaski,Indiana,18131,64,1 +2020-07-02,Pulaski,Indiana,18131,63,1 +2020-07-03,Pulaski,Indiana,18131,63,1 +2020-07-04,Pulaski,Indiana,18131,65,1 +2020-07-05,Pulaski,Indiana,18131,65,1 +2020-07-06,Pulaski,Indiana,18131,67,1 +2020-07-07,Pulaski,Indiana,18131,67,1 +2020-07-08,Pulaski,Indiana,18131,67,1 +2020-07-09,Pulaski,Indiana,18131,67,1 +2020-03-22,Putnam,Indiana,18133,1,0 +2020-03-23,Putnam,Indiana,18133,1,0 +2020-03-24,Putnam,Indiana,18133,1,0 +2020-03-25,Putnam,Indiana,18133,2,0 +2020-03-26,Putnam,Indiana,18133,2,1 +2020-03-27,Putnam,Indiana,18133,2,1 +2020-03-28,Putnam,Indiana,18133,5,1 +2020-03-29,Putnam,Indiana,18133,5,1 +2020-03-30,Putnam,Indiana,18133,7,1 +2020-03-31,Putnam,Indiana,18133,7,1 +2020-04-01,Putnam,Indiana,18133,11,1 +2020-04-02,Putnam,Indiana,18133,11,1 +2020-04-03,Putnam,Indiana,18133,13,1 +2020-04-04,Putnam,Indiana,18133,14,1 +2020-04-05,Putnam,Indiana,18133,17,1 +2020-04-06,Putnam,Indiana,18133,21,1 +2020-04-07,Putnam,Indiana,18133,25,1 +2020-04-08,Putnam,Indiana,18133,27,1 +2020-04-09,Putnam,Indiana,18133,30,2 +2020-04-10,Putnam,Indiana,18133,31,3 +2020-04-11,Putnam,Indiana,18133,32,2 +2020-04-12,Putnam,Indiana,18133,32,3 +2020-04-13,Putnam,Indiana,18133,33,3 +2020-04-14,Putnam,Indiana,18133,38,3 +2020-04-15,Putnam,Indiana,18133,42,3 +2020-04-16,Putnam,Indiana,18133,43,3 +2020-04-17,Putnam,Indiana,18133,47,4 +2020-04-18,Putnam,Indiana,18133,50,4 +2020-04-19,Putnam,Indiana,18133,51,4 +2020-04-20,Putnam,Indiana,18133,51,4 +2020-04-21,Putnam,Indiana,18133,54,4 +2020-04-22,Putnam,Indiana,18133,54,4 +2020-04-23,Putnam,Indiana,18133,55,4 +2020-04-24,Putnam,Indiana,18133,57,4 +2020-04-25,Putnam,Indiana,18133,59,4 +2020-04-26,Putnam,Indiana,18133,59,4 +2020-04-27,Putnam,Indiana,18133,59,4 +2020-04-28,Putnam,Indiana,18133,60,4 +2020-04-29,Putnam,Indiana,18133,64,4 +2020-04-30,Putnam,Indiana,18133,70,4 +2020-05-01,Putnam,Indiana,18133,75,4 +2020-05-02,Putnam,Indiana,18133,75,4 +2020-05-03,Putnam,Indiana,18133,80,4 +2020-05-04,Putnam,Indiana,18133,82,4 +2020-05-05,Putnam,Indiana,18133,85,5 +2020-05-06,Putnam,Indiana,18133,85,5 +2020-05-07,Putnam,Indiana,18133,84,5 +2020-05-08,Putnam,Indiana,18133,89,5 +2020-05-09,Putnam,Indiana,18133,90,5 +2020-05-10,Putnam,Indiana,18133,89,5 +2020-05-11,Putnam,Indiana,18133,94,5 +2020-05-12,Putnam,Indiana,18133,96,5 +2020-05-13,Putnam,Indiana,18133,97,5 +2020-05-14,Putnam,Indiana,18133,99,5 +2020-05-15,Putnam,Indiana,18133,100,5 +2020-05-16,Putnam,Indiana,18133,122,5 +2020-05-17,Putnam,Indiana,18133,125,5 +2020-05-18,Putnam,Indiana,18133,125,5 +2020-05-19,Putnam,Indiana,18133,128,6 +2020-05-20,Putnam,Indiana,18133,131,6 +2020-05-21,Putnam,Indiana,18133,132,6 +2020-05-22,Putnam,Indiana,18133,132,6 +2020-05-23,Putnam,Indiana,18133,134,7 +2020-05-24,Putnam,Indiana,18133,136,7 +2020-05-25,Putnam,Indiana,18133,138,7 +2020-05-26,Putnam,Indiana,18133,138,7 +2020-05-27,Putnam,Indiana,18133,139,7 +2020-05-28,Putnam,Indiana,18133,140,7 +2020-05-29,Putnam,Indiana,18133,141,7 +2020-05-30,Putnam,Indiana,18133,141,7 +2020-05-31,Putnam,Indiana,18133,142,7 +2020-06-01,Putnam,Indiana,18133,142,7 +2020-06-02,Putnam,Indiana,18133,142,7 +2020-06-03,Putnam,Indiana,18133,142,7 +2020-06-04,Putnam,Indiana,18133,147,7 +2020-06-05,Putnam,Indiana,18133,147,7 +2020-06-06,Putnam,Indiana,18133,147,7 +2020-06-07,Putnam,Indiana,18133,148,7 +2020-06-08,Putnam,Indiana,18133,149,7 +2020-06-09,Putnam,Indiana,18133,152,7 +2020-06-10,Putnam,Indiana,18133,153,8 +2020-06-11,Putnam,Indiana,18133,154,8 +2020-06-12,Putnam,Indiana,18133,157,8 +2020-06-13,Putnam,Indiana,18133,159,8 +2020-06-14,Putnam,Indiana,18133,160,8 +2020-06-15,Putnam,Indiana,18133,161,8 +2020-06-16,Putnam,Indiana,18133,164,8 +2020-06-17,Putnam,Indiana,18133,163,8 +2020-06-18,Putnam,Indiana,18133,164,8 +2020-06-19,Putnam,Indiana,18133,163,8 +2020-06-20,Putnam,Indiana,18133,163,8 +2020-06-21,Putnam,Indiana,18133,163,8 +2020-06-22,Putnam,Indiana,18133,164,8 +2020-06-23,Putnam,Indiana,18133,164,8 +2020-06-24,Putnam,Indiana,18133,164,8 +2020-06-25,Putnam,Indiana,18133,164,8 +2020-06-26,Putnam,Indiana,18133,167,8 +2020-06-27,Putnam,Indiana,18133,167,8 +2020-06-28,Putnam,Indiana,18133,167,8 +2020-06-29,Putnam,Indiana,18133,169,8 +2020-06-30,Putnam,Indiana,18133,170,8 +2020-07-01,Putnam,Indiana,18133,170,8 +2020-07-02,Putnam,Indiana,18133,170,8 +2020-07-03,Putnam,Indiana,18133,173,8 +2020-07-04,Putnam,Indiana,18133,173,8 +2020-07-05,Putnam,Indiana,18133,174,8 +2020-07-06,Putnam,Indiana,18133,174,8 +2020-07-07,Putnam,Indiana,18133,175,8 +2020-07-08,Putnam,Indiana,18133,175,8 +2020-07-09,Putnam,Indiana,18133,175,8 +2020-03-27,Randolph,Indiana,18135,1,0 +2020-03-28,Randolph,Indiana,18135,1,0 +2020-03-29,Randolph,Indiana,18135,1,0 +2020-03-30,Randolph,Indiana,18135,1,0 +2020-03-31,Randolph,Indiana,18135,3,0 +2020-04-01,Randolph,Indiana,18135,3,0 +2020-04-02,Randolph,Indiana,18135,3,0 +2020-04-03,Randolph,Indiana,18135,4,1 +2020-04-04,Randolph,Indiana,18135,5,1 +2020-04-05,Randolph,Indiana,18135,5,1 +2020-04-06,Randolph,Indiana,18135,5,1 +2020-04-07,Randolph,Indiana,18135,7,1 +2020-04-08,Randolph,Indiana,18135,7,1 +2020-04-09,Randolph,Indiana,18135,7,1 +2020-04-10,Randolph,Indiana,18135,8,1 +2020-04-11,Randolph,Indiana,18135,8,1 +2020-04-12,Randolph,Indiana,18135,10,1 +2020-04-13,Randolph,Indiana,18135,11,1 +2020-04-14,Randolph,Indiana,18135,11,1 +2020-04-15,Randolph,Indiana,18135,11,1 +2020-04-16,Randolph,Indiana,18135,10,1 +2020-04-17,Randolph,Indiana,18135,10,1 +2020-04-18,Randolph,Indiana,18135,12,1 +2020-04-19,Randolph,Indiana,18135,12,1 +2020-04-20,Randolph,Indiana,18135,12,1 +2020-04-21,Randolph,Indiana,18135,13,2 +2020-04-22,Randolph,Indiana,18135,13,2 +2020-04-23,Randolph,Indiana,18135,15,2 +2020-04-24,Randolph,Indiana,18135,14,2 +2020-04-25,Randolph,Indiana,18135,15,2 +2020-04-26,Randolph,Indiana,18135,15,2 +2020-04-27,Randolph,Indiana,18135,15,2 +2020-04-28,Randolph,Indiana,18135,17,2 +2020-04-29,Randolph,Indiana,18135,20,2 +2020-04-30,Randolph,Indiana,18135,21,2 +2020-05-01,Randolph,Indiana,18135,21,2 +2020-05-02,Randolph,Indiana,18135,23,2 +2020-05-03,Randolph,Indiana,18135,24,2 +2020-05-04,Randolph,Indiana,18135,25,2 +2020-05-05,Randolph,Indiana,18135,27,2 +2020-05-06,Randolph,Indiana,18135,29,2 +2020-05-07,Randolph,Indiana,18135,29,2 +2020-05-08,Randolph,Indiana,18135,35,2 +2020-05-09,Randolph,Indiana,18135,37,2 +2020-05-10,Randolph,Indiana,18135,37,2 +2020-05-11,Randolph,Indiana,18135,39,2 +2020-05-12,Randolph,Indiana,18135,40,2 +2020-05-13,Randolph,Indiana,18135,44,3 +2020-05-14,Randolph,Indiana,18135,45,3 +2020-05-15,Randolph,Indiana,18135,47,3 +2020-05-16,Randolph,Indiana,18135,48,3 +2020-05-17,Randolph,Indiana,18135,50,3 +2020-05-18,Randolph,Indiana,18135,50,3 +2020-05-19,Randolph,Indiana,18135,49,3 +2020-05-20,Randolph,Indiana,18135,49,3 +2020-05-21,Randolph,Indiana,18135,51,3 +2020-05-22,Randolph,Indiana,18135,56,3 +2020-05-23,Randolph,Indiana,18135,58,3 +2020-05-24,Randolph,Indiana,18135,59,3 +2020-05-25,Randolph,Indiana,18135,61,3 +2020-05-26,Randolph,Indiana,18135,64,3 +2020-05-27,Randolph,Indiana,18135,67,3 +2020-05-28,Randolph,Indiana,18135,67,3 +2020-05-29,Randolph,Indiana,18135,69,3 +2020-05-30,Randolph,Indiana,18135,70,3 +2020-05-31,Randolph,Indiana,18135,70,3 +2020-06-01,Randolph,Indiana,18135,71,3 +2020-06-02,Randolph,Indiana,18135,71,3 +2020-06-03,Randolph,Indiana,18135,73,3 +2020-06-04,Randolph,Indiana,18135,74,3 +2020-06-05,Randolph,Indiana,18135,74,3 +2020-06-06,Randolph,Indiana,18135,75,3 +2020-06-07,Randolph,Indiana,18135,77,3 +2020-06-08,Randolph,Indiana,18135,77,3 +2020-06-09,Randolph,Indiana,18135,79,3 +2020-06-10,Randolph,Indiana,18135,80,3 +2020-06-11,Randolph,Indiana,18135,85,3 +2020-06-12,Randolph,Indiana,18135,88,3 +2020-06-13,Randolph,Indiana,18135,90,3 +2020-06-14,Randolph,Indiana,18135,92,3 +2020-06-15,Randolph,Indiana,18135,93,3 +2020-06-16,Randolph,Indiana,18135,93,3 +2020-06-17,Randolph,Indiana,18135,93,3 +2020-06-18,Randolph,Indiana,18135,94,3 +2020-06-19,Randolph,Indiana,18135,96,3 +2020-06-20,Randolph,Indiana,18135,96,3 +2020-06-21,Randolph,Indiana,18135,96,3 +2020-06-22,Randolph,Indiana,18135,97,3 +2020-06-23,Randolph,Indiana,18135,99,4 +2020-06-24,Randolph,Indiana,18135,99,4 +2020-06-25,Randolph,Indiana,18135,99,4 +2020-06-26,Randolph,Indiana,18135,100,4 +2020-06-27,Randolph,Indiana,18135,100,4 +2020-06-28,Randolph,Indiana,18135,100,4 +2020-06-29,Randolph,Indiana,18135,100,4 +2020-06-30,Randolph,Indiana,18135,101,4 +2020-07-01,Randolph,Indiana,18135,101,4 +2020-07-02,Randolph,Indiana,18135,102,4 +2020-07-03,Randolph,Indiana,18135,103,4 +2020-07-04,Randolph,Indiana,18135,103,4 +2020-07-05,Randolph,Indiana,18135,104,4 +2020-07-06,Randolph,Indiana,18135,104,4 +2020-07-07,Randolph,Indiana,18135,105,4 +2020-07-08,Randolph,Indiana,18135,105,4 +2020-07-09,Randolph,Indiana,18135,105,4 +2020-03-22,Ripley,Indiana,18137,1,0 +2020-03-23,Ripley,Indiana,18137,1,0 +2020-03-24,Ripley,Indiana,18137,6,0 +2020-03-25,Ripley,Indiana,18137,7,0 +2020-03-26,Ripley,Indiana,18137,11,0 +2020-03-27,Ripley,Indiana,18137,14,0 +2020-03-28,Ripley,Indiana,18137,15,0 +2020-03-29,Ripley,Indiana,18137,19,0 +2020-03-30,Ripley,Indiana,18137,25,0 +2020-03-31,Ripley,Indiana,18137,31,1 +2020-04-01,Ripley,Indiana,18137,33,1 +2020-04-02,Ripley,Indiana,18137,39,1 +2020-04-03,Ripley,Indiana,18137,47,1 +2020-04-04,Ripley,Indiana,18137,51,2 +2020-04-05,Ripley,Indiana,18137,60,2 +2020-04-06,Ripley,Indiana,18137,70,2 +2020-04-07,Ripley,Indiana,18137,76,2 +2020-04-08,Ripley,Indiana,18137,76,3 +2020-04-09,Ripley,Indiana,18137,77,3 +2020-04-10,Ripley,Indiana,18137,79,3 +2020-04-11,Ripley,Indiana,18137,81,3 +2020-04-12,Ripley,Indiana,18137,84,3 +2020-04-13,Ripley,Indiana,18137,86,3 +2020-04-14,Ripley,Indiana,18137,89,3 +2020-04-15,Ripley,Indiana,18137,88,3 +2020-04-16,Ripley,Indiana,18137,89,3 +2020-04-17,Ripley,Indiana,18137,77,3 +2020-04-18,Ripley,Indiana,18137,80,3 +2020-04-19,Ripley,Indiana,18137,82,3 +2020-04-20,Ripley,Indiana,18137,82,3 +2020-04-21,Ripley,Indiana,18137,83,3 +2020-04-22,Ripley,Indiana,18137,86,3 +2020-04-23,Ripley,Indiana,18137,87,5 +2020-04-24,Ripley,Indiana,18137,87,5 +2020-04-25,Ripley,Indiana,18137,89,5 +2020-04-26,Ripley,Indiana,18137,89,5 +2020-04-27,Ripley,Indiana,18137,90,5 +2020-04-28,Ripley,Indiana,18137,91,5 +2020-04-29,Ripley,Indiana,18137,92,5 +2020-04-30,Ripley,Indiana,18137,92,5 +2020-05-01,Ripley,Indiana,18137,93,5 +2020-05-02,Ripley,Indiana,18137,94,6 +2020-05-03,Ripley,Indiana,18137,94,6 +2020-05-04,Ripley,Indiana,18137,97,6 +2020-05-05,Ripley,Indiana,18137,98,6 +2020-05-06,Ripley,Indiana,18137,99,6 +2020-05-07,Ripley,Indiana,18137,98,6 +2020-05-08,Ripley,Indiana,18137,98,6 +2020-05-09,Ripley,Indiana,18137,98,6 +2020-05-10,Ripley,Indiana,18137,101,6 +2020-05-11,Ripley,Indiana,18137,101,6 +2020-05-12,Ripley,Indiana,18137,104,6 +2020-05-13,Ripley,Indiana,18137,105,6 +2020-05-14,Ripley,Indiana,18137,105,6 +2020-05-15,Ripley,Indiana,18137,106,6 +2020-05-16,Ripley,Indiana,18137,107,6 +2020-05-17,Ripley,Indiana,18137,107,6 +2020-05-18,Ripley,Indiana,18137,108,6 +2020-05-19,Ripley,Indiana,18137,107,6 +2020-05-20,Ripley,Indiana,18137,107,6 +2020-05-21,Ripley,Indiana,18137,110,6 +2020-05-22,Ripley,Indiana,18137,110,6 +2020-05-23,Ripley,Indiana,18137,112,6 +2020-05-24,Ripley,Indiana,18137,112,6 +2020-05-25,Ripley,Indiana,18137,112,6 +2020-05-26,Ripley,Indiana,18137,112,6 +2020-05-27,Ripley,Indiana,18137,113,6 +2020-05-28,Ripley,Indiana,18137,110,6 +2020-05-29,Ripley,Indiana,18137,108,6 +2020-05-30,Ripley,Indiana,18137,108,6 +2020-05-31,Ripley,Indiana,18137,109,6 +2020-06-01,Ripley,Indiana,18137,109,6 +2020-06-02,Ripley,Indiana,18137,108,6 +2020-06-03,Ripley,Indiana,18137,108,6 +2020-06-04,Ripley,Indiana,18137,108,6 +2020-06-05,Ripley,Indiana,18137,108,6 +2020-06-06,Ripley,Indiana,18137,108,6 +2020-06-07,Ripley,Indiana,18137,108,6 +2020-06-08,Ripley,Indiana,18137,109,6 +2020-06-09,Ripley,Indiana,18137,110,6 +2020-06-10,Ripley,Indiana,18137,109,6 +2020-06-11,Ripley,Indiana,18137,109,6 +2020-06-12,Ripley,Indiana,18137,109,6 +2020-06-13,Ripley,Indiana,18137,109,6 +2020-06-14,Ripley,Indiana,18137,109,6 +2020-06-15,Ripley,Indiana,18137,109,6 +2020-06-16,Ripley,Indiana,18137,111,6 +2020-06-17,Ripley,Indiana,18137,111,6 +2020-06-18,Ripley,Indiana,18137,111,6 +2020-06-19,Ripley,Indiana,18137,111,7 +2020-06-20,Ripley,Indiana,18137,111,7 +2020-06-21,Ripley,Indiana,18137,112,7 +2020-06-22,Ripley,Indiana,18137,112,7 +2020-06-23,Ripley,Indiana,18137,112,7 +2020-06-24,Ripley,Indiana,18137,113,7 +2020-06-25,Ripley,Indiana,18137,111,7 +2020-06-26,Ripley,Indiana,18137,112,7 +2020-06-27,Ripley,Indiana,18137,112,7 +2020-06-28,Ripley,Indiana,18137,112,7 +2020-06-29,Ripley,Indiana,18137,112,7 +2020-06-30,Ripley,Indiana,18137,112,7 +2020-07-01,Ripley,Indiana,18137,112,7 +2020-07-02,Ripley,Indiana,18137,114,8 +2020-07-03,Ripley,Indiana,18137,114,7 +2020-07-04,Ripley,Indiana,18137,115,7 +2020-07-05,Ripley,Indiana,18137,116,7 +2020-07-06,Ripley,Indiana,18137,117,7 +2020-07-07,Ripley,Indiana,18137,122,7 +2020-07-08,Ripley,Indiana,18137,124,7 +2020-07-09,Ripley,Indiana,18137,124,7 +2020-03-25,Rush,Indiana,18139,1,0 +2020-03-26,Rush,Indiana,18139,1,0 +2020-03-27,Rush,Indiana,18139,3,0 +2020-03-28,Rush,Indiana,18139,2,0 +2020-03-29,Rush,Indiana,18139,2,0 +2020-03-30,Rush,Indiana,18139,4,0 +2020-03-31,Rush,Indiana,18139,4,0 +2020-04-01,Rush,Indiana,18139,5,0 +2020-04-02,Rush,Indiana,18139,7,0 +2020-04-03,Rush,Indiana,18139,8,1 +2020-04-04,Rush,Indiana,18139,10,1 +2020-04-05,Rush,Indiana,18139,10,1 +2020-04-06,Rush,Indiana,18139,12,1 +2020-04-07,Rush,Indiana,18139,14,1 +2020-04-08,Rush,Indiana,18139,14,1 +2020-04-09,Rush,Indiana,18139,14,1 +2020-04-10,Rush,Indiana,18139,12,1 +2020-04-11,Rush,Indiana,18139,13,1 +2020-04-12,Rush,Indiana,18139,15,1 +2020-04-13,Rush,Indiana,18139,17,1 +2020-04-14,Rush,Indiana,18139,16,1 +2020-04-15,Rush,Indiana,18139,17,1 +2020-04-16,Rush,Indiana,18139,17,1 +2020-04-17,Rush,Indiana,18139,20,1 +2020-04-18,Rush,Indiana,18139,19,1 +2020-04-19,Rush,Indiana,18139,18,1 +2020-04-20,Rush,Indiana,18139,21,1 +2020-04-21,Rush,Indiana,18139,22,1 +2020-04-22,Rush,Indiana,18139,22,1 +2020-04-23,Rush,Indiana,18139,22,1 +2020-04-24,Rush,Indiana,18139,27,1 +2020-04-25,Rush,Indiana,18139,29,1 +2020-04-26,Rush,Indiana,18139,30,1 +2020-04-27,Rush,Indiana,18139,31,1 +2020-04-28,Rush,Indiana,18139,34,1 +2020-04-29,Rush,Indiana,18139,35,1 +2020-04-30,Rush,Indiana,18139,37,1 +2020-05-01,Rush,Indiana,18139,38,1 +2020-05-02,Rush,Indiana,18139,39,1 +2020-05-03,Rush,Indiana,18139,40,1 +2020-05-04,Rush,Indiana,18139,41,1 +2020-05-05,Rush,Indiana,18139,43,2 +2020-05-06,Rush,Indiana,18139,47,2 +2020-05-07,Rush,Indiana,18139,47,2 +2020-05-08,Rush,Indiana,18139,47,2 +2020-05-09,Rush,Indiana,18139,48,2 +2020-05-10,Rush,Indiana,18139,48,2 +2020-05-11,Rush,Indiana,18139,48,2 +2020-05-12,Rush,Indiana,18139,49,2 +2020-05-13,Rush,Indiana,18139,49,2 +2020-05-14,Rush,Indiana,18139,51,2 +2020-05-15,Rush,Indiana,18139,53,2 +2020-05-16,Rush,Indiana,18139,53,2 +2020-05-17,Rush,Indiana,18139,54,2 +2020-05-18,Rush,Indiana,18139,55,2 +2020-05-19,Rush,Indiana,18139,55,2 +2020-05-20,Rush,Indiana,18139,55,2 +2020-05-21,Rush,Indiana,18139,57,2 +2020-05-22,Rush,Indiana,18139,58,2 +2020-05-23,Rush,Indiana,18139,59,2 +2020-05-24,Rush,Indiana,18139,59,2 +2020-05-25,Rush,Indiana,18139,59,2 +2020-05-26,Rush,Indiana,18139,59,2 +2020-05-27,Rush,Indiana,18139,59,2 +2020-05-28,Rush,Indiana,18139,59,2 +2020-05-29,Rush,Indiana,18139,61,2 +2020-05-30,Rush,Indiana,18139,61,2 +2020-05-31,Rush,Indiana,18139,62,2 +2020-06-01,Rush,Indiana,18139,62,2 +2020-06-02,Rush,Indiana,18139,64,3 +2020-06-03,Rush,Indiana,18139,66,3 +2020-06-04,Rush,Indiana,18139,67,3 +2020-06-05,Rush,Indiana,18139,67,3 +2020-06-06,Rush,Indiana,18139,65,3 +2020-06-07,Rush,Indiana,18139,65,3 +2020-06-08,Rush,Indiana,18139,65,3 +2020-06-09,Rush,Indiana,18139,67,3 +2020-06-10,Rush,Indiana,18139,67,3 +2020-06-11,Rush,Indiana,18139,67,3 +2020-06-12,Rush,Indiana,18139,66,3 +2020-06-13,Rush,Indiana,18139,67,3 +2020-06-14,Rush,Indiana,18139,67,3 +2020-06-15,Rush,Indiana,18139,68,3 +2020-06-16,Rush,Indiana,18139,68,3 +2020-06-17,Rush,Indiana,18139,68,3 +2020-06-18,Rush,Indiana,18139,70,3 +2020-06-19,Rush,Indiana,18139,71,3 +2020-06-20,Rush,Indiana,18139,71,3 +2020-06-21,Rush,Indiana,18139,72,3 +2020-06-22,Rush,Indiana,18139,72,3 +2020-06-23,Rush,Indiana,18139,73,3 +2020-06-24,Rush,Indiana,18139,74,3 +2020-06-25,Rush,Indiana,18139,74,3 +2020-06-26,Rush,Indiana,18139,77,3 +2020-06-27,Rush,Indiana,18139,77,3 +2020-06-28,Rush,Indiana,18139,77,3 +2020-06-29,Rush,Indiana,18139,77,3 +2020-06-30,Rush,Indiana,18139,80,3 +2020-07-01,Rush,Indiana,18139,81,3 +2020-07-02,Rush,Indiana,18139,80,3 +2020-07-03,Rush,Indiana,18139,80,3 +2020-07-04,Rush,Indiana,18139,80,3 +2020-07-05,Rush,Indiana,18139,82,3 +2020-07-06,Rush,Indiana,18139,82,3 +2020-07-07,Rush,Indiana,18139,82,3 +2020-07-08,Rush,Indiana,18139,83,3 +2020-07-09,Rush,Indiana,18139,85,3 +2020-03-11,St. Joseph,Indiana,18141,1,0 +2020-03-12,St. Joseph,Indiana,18141,1,0 +2020-03-13,St. Joseph,Indiana,18141,1,0 +2020-03-14,St. Joseph,Indiana,18141,1,0 +2020-03-15,St. Joseph,Indiana,18141,1,0 +2020-03-16,St. Joseph,Indiana,18141,1,0 +2020-03-17,St. Joseph,Indiana,18141,1,0 +2020-03-18,St. Joseph,Indiana,18141,1,0 +2020-03-19,St. Joseph,Indiana,18141,3,0 +2020-03-20,St. Joseph,Indiana,18141,6,0 +2020-03-21,St. Joseph,Indiana,18141,6,0 +2020-03-22,St. Joseph,Indiana,18141,8,0 +2020-03-23,St. Joseph,Indiana,18141,10,1 +2020-03-24,St. Joseph,Indiana,18141,16,1 +2020-03-25,St. Joseph,Indiana,18141,20,1 +2020-03-26,St. Joseph,Indiana,18141,22,2 +2020-03-27,St. Joseph,Indiana,18141,28,2 +2020-03-28,St. Joseph,Indiana,18141,32,2 +2020-03-29,St. Joseph,Indiana,18141,33,2 +2020-03-30,St. Joseph,Indiana,18141,37,2 +2020-03-31,St. Joseph,Indiana,18141,51,3 +2020-04-01,St. Joseph,Indiana,18141,60,4 +2020-04-02,St. Joseph,Indiana,18141,68,4 +2020-04-03,St. Joseph,Indiana,18141,75,4 +2020-04-04,St. Joseph,Indiana,18141,92,4 +2020-04-05,St. Joseph,Indiana,18141,105,4 +2020-04-06,St. Joseph,Indiana,18141,115,4 +2020-04-07,St. Joseph,Indiana,18141,132,4 +2020-04-08,St. Joseph,Indiana,18141,145,4 +2020-04-09,St. Joseph,Indiana,18141,153,5 +2020-04-10,St. Joseph,Indiana,18141,168,5 +2020-04-11,St. Joseph,Indiana,18141,189,6 +2020-04-12,St. Joseph,Indiana,18141,195,6 +2020-04-13,St. Joseph,Indiana,18141,197,6 +2020-04-14,St. Joseph,Indiana,18141,237,7 +2020-04-15,St. Joseph,Indiana,18141,276,8 +2020-04-16,St. Joseph,Indiana,18141,309,10 +2020-04-17,St. Joseph,Indiana,18141,361,10 +2020-04-18,St. Joseph,Indiana,18141,392,12 +2020-04-19,St. Joseph,Indiana,18141,406,12 +2020-04-20,St. Joseph,Indiana,18141,416,13 +2020-04-21,St. Joseph,Indiana,18141,446,13 +2020-04-22,St. Joseph,Indiana,18141,459,14 +2020-04-23,St. Joseph,Indiana,18141,481,15 +2020-04-24,St. Joseph,Indiana,18141,521,16 +2020-04-25,St. Joseph,Indiana,18141,559,16 +2020-04-26,St. Joseph,Indiana,18141,582,19 +2020-04-27,St. Joseph,Indiana,18141,592,20 +2020-04-28,St. Joseph,Indiana,18141,609,22 +2020-04-29,St. Joseph,Indiana,18141,627,22 +2020-04-30,St. Joseph,Indiana,18141,640,22 +2020-05-01,St. Joseph,Indiana,18141,648,24 +2020-05-02,St. Joseph,Indiana,18141,651,25 +2020-05-03,St. Joseph,Indiana,18141,664,25 +2020-05-04,St. Joseph,Indiana,18141,674,25 +2020-05-05,St. Joseph,Indiana,18141,693,26 +2020-05-06,St. Joseph,Indiana,18141,720,29 +2020-05-07,St. Joseph,Indiana,18141,736,29 +2020-05-08,St. Joseph,Indiana,18141,779,30 +2020-05-09,St. Joseph,Indiana,18141,792,30 +2020-05-10,St. Joseph,Indiana,18141,817,30 +2020-05-11,St. Joseph,Indiana,18141,836,31 +2020-05-12,St. Joseph,Indiana,18141,854,32 +2020-05-13,St. Joseph,Indiana,18141,864,33 +2020-05-14,St. Joseph,Indiana,18141,904,33 +2020-05-15,St. Joseph,Indiana,18141,929,33 +2020-05-16,St. Joseph,Indiana,18141,955,33 +2020-05-17,St. Joseph,Indiana,18141,979,33 +2020-05-18,St. Joseph,Indiana,18141,992,33 +2020-05-19,St. Joseph,Indiana,18141,1022,35 +2020-05-20,St. Joseph,Indiana,18141,1062,36 +2020-05-21,St. Joseph,Indiana,18141,1091,37 +2020-05-22,St. Joseph,Indiana,18141,1106,38 +2020-05-23,St. Joseph,Indiana,18141,1141,39 +2020-05-24,St. Joseph,Indiana,18141,1164,39 +2020-05-25,St. Joseph,Indiana,18141,1179,39 +2020-05-26,St. Joseph,Indiana,18141,1214,39 +2020-05-27,St. Joseph,Indiana,18141,1227,39 +2020-05-28,St. Joseph,Indiana,18141,1230,39 +2020-05-29,St. Joseph,Indiana,18141,1257,39 +2020-05-30,St. Joseph,Indiana,18141,1275,39 +2020-05-31,St. Joseph,Indiana,18141,1283,39 +2020-06-01,St. Joseph,Indiana,18141,1295,39 +2020-06-02,St. Joseph,Indiana,18141,1318,39 +2020-06-03,St. Joseph,Indiana,18141,1329,40 +2020-06-04,St. Joseph,Indiana,18141,1346,41 +2020-06-05,St. Joseph,Indiana,18141,1367,43 +2020-06-06,St. Joseph,Indiana,18141,1387,44 +2020-06-07,St. Joseph,Indiana,18141,1416,44 +2020-06-08,St. Joseph,Indiana,18141,1428,47 +2020-06-09,St. Joseph,Indiana,18141,1447,48 +2020-06-10,St. Joseph,Indiana,18141,1463,49 +2020-06-11,St. Joseph,Indiana,18141,1491,50 +2020-06-12,St. Joseph,Indiana,18141,1505,55 +2020-06-13,St. Joseph,Indiana,18141,1521,55 +2020-06-14,St. Joseph,Indiana,18141,1548,55 +2020-06-15,St. Joseph,Indiana,18141,1561,55 +2020-06-16,St. Joseph,Indiana,18141,1580,56 +2020-06-17,St. Joseph,Indiana,18141,1593,58 +2020-06-18,St. Joseph,Indiana,18141,1622,58 +2020-06-19,St. Joseph,Indiana,18141,1638,58 +2020-06-20,St. Joseph,Indiana,18141,1656,61 +2020-06-21,St. Joseph,Indiana,18141,1672,61 +2020-06-22,St. Joseph,Indiana,18141,1687,62 +2020-06-23,St. Joseph,Indiana,18141,1697,63 +2020-06-24,St. Joseph,Indiana,18141,1715,64 +2020-06-25,St. Joseph,Indiana,18141,1750,64 +2020-06-26,St. Joseph,Indiana,18141,1790,65 +2020-06-27,St. Joseph,Indiana,18141,1808,67 +2020-06-28,St. Joseph,Indiana,18141,1822,69 +2020-06-29,St. Joseph,Indiana,18141,1829,70 +2020-06-30,St. Joseph,Indiana,18141,1840,70 +2020-07-01,St. Joseph,Indiana,18141,1859,70 +2020-07-02,St. Joseph,Indiana,18141,1867,71 +2020-07-03,St. Joseph,Indiana,18141,1873,71 +2020-07-04,St. Joseph,Indiana,18141,1918,71 +2020-07-05,St. Joseph,Indiana,18141,1953,71 +2020-07-06,St. Joseph,Indiana,18141,1974,71 +2020-07-07,St. Joseph,Indiana,18141,1991,73 +2020-07-08,St. Joseph,Indiana,18141,2011,74 +2020-07-09,St. Joseph,Indiana,18141,2035,74 +2020-03-22,Scott,Indiana,18143,1,1 +2020-03-23,Scott,Indiana,18143,1,1 +2020-03-24,Scott,Indiana,18143,1,1 +2020-03-25,Scott,Indiana,18143,1,1 +2020-03-26,Scott,Indiana,18143,1,1 +2020-03-27,Scott,Indiana,18143,1,1 +2020-03-28,Scott,Indiana,18143,1,1 +2020-03-29,Scott,Indiana,18143,1,1 +2020-03-30,Scott,Indiana,18143,1,1 +2020-03-31,Scott,Indiana,18143,1,1 +2020-04-01,Scott,Indiana,18143,1,1 +2020-04-02,Scott,Indiana,18143,5,1 +2020-04-03,Scott,Indiana,18143,6,1 +2020-04-04,Scott,Indiana,18143,7,1 +2020-04-05,Scott,Indiana,18143,8,1 +2020-04-06,Scott,Indiana,18143,7,1 +2020-04-07,Scott,Indiana,18143,8,1 +2020-04-08,Scott,Indiana,18143,11,2 +2020-04-09,Scott,Indiana,18143,12,2 +2020-04-10,Scott,Indiana,18143,12,2 +2020-04-11,Scott,Indiana,18143,14,2 +2020-04-12,Scott,Indiana,18143,17,2 +2020-04-13,Scott,Indiana,18143,17,2 +2020-04-14,Scott,Indiana,18143,17,2 +2020-04-15,Scott,Indiana,18143,17,2 +2020-04-16,Scott,Indiana,18143,19,2 +2020-04-17,Scott,Indiana,18143,20,2 +2020-04-18,Scott,Indiana,18143,22,2 +2020-04-19,Scott,Indiana,18143,24,2 +2020-04-20,Scott,Indiana,18143,24,2 +2020-04-21,Scott,Indiana,18143,25,2 +2020-04-22,Scott,Indiana,18143,27,2 +2020-04-23,Scott,Indiana,18143,28,2 +2020-04-24,Scott,Indiana,18143,33,2 +2020-04-25,Scott,Indiana,18143,36,2 +2020-04-26,Scott,Indiana,18143,37,2 +2020-04-27,Scott,Indiana,18143,38,2 +2020-04-28,Scott,Indiana,18143,39,2 +2020-04-29,Scott,Indiana,18143,41,2 +2020-04-30,Scott,Indiana,18143,46,2 +2020-05-01,Scott,Indiana,18143,47,2 +2020-05-02,Scott,Indiana,18143,51,2 +2020-05-03,Scott,Indiana,18143,52,2 +2020-05-04,Scott,Indiana,18143,52,2 +2020-05-05,Scott,Indiana,18143,54,2 +2020-05-06,Scott,Indiana,18143,54,2 +2020-05-07,Scott,Indiana,18143,63,2 +2020-05-08,Scott,Indiana,18143,73,2 +2020-05-09,Scott,Indiana,18143,79,2 +2020-05-10,Scott,Indiana,18143,81,2 +2020-05-11,Scott,Indiana,18143,81,2 +2020-05-12,Scott,Indiana,18143,85,2 +2020-05-13,Scott,Indiana,18143,89,2 +2020-05-14,Scott,Indiana,18143,90,2 +2020-05-15,Scott,Indiana,18143,91,2 +2020-05-16,Scott,Indiana,18143,94,2 +2020-05-17,Scott,Indiana,18143,97,2 +2020-05-18,Scott,Indiana,18143,98,2 +2020-05-19,Scott,Indiana,18143,99,2 +2020-05-20,Scott,Indiana,18143,102,3 +2020-05-21,Scott,Indiana,18143,106,3 +2020-05-22,Scott,Indiana,18143,107,3 +2020-05-23,Scott,Indiana,18143,116,3 +2020-05-24,Scott,Indiana,18143,117,3 +2020-05-25,Scott,Indiana,18143,119,3 +2020-05-26,Scott,Indiana,18143,119,3 +2020-05-27,Scott,Indiana,18143,119,3 +2020-05-28,Scott,Indiana,18143,121,3 +2020-05-29,Scott,Indiana,18143,120,3 +2020-05-30,Scott,Indiana,18143,120,3 +2020-05-31,Scott,Indiana,18143,121,3 +2020-06-01,Scott,Indiana,18143,121,3 +2020-06-02,Scott,Indiana,18143,122,3 +2020-06-03,Scott,Indiana,18143,123,3 +2020-06-04,Scott,Indiana,18143,127,3 +2020-06-05,Scott,Indiana,18143,127,3 +2020-06-06,Scott,Indiana,18143,129,3 +2020-06-07,Scott,Indiana,18143,129,3 +2020-06-08,Scott,Indiana,18143,130,3 +2020-06-09,Scott,Indiana,18143,132,3 +2020-06-10,Scott,Indiana,18143,133,3 +2020-06-11,Scott,Indiana,18143,141,3 +2020-06-12,Scott,Indiana,18143,143,3 +2020-06-13,Scott,Indiana,18143,144,3 +2020-06-14,Scott,Indiana,18143,145,3 +2020-06-15,Scott,Indiana,18143,145,3 +2020-06-16,Scott,Indiana,18143,147,3 +2020-06-17,Scott,Indiana,18143,147,5 +2020-06-18,Scott,Indiana,18143,150,7 +2020-06-19,Scott,Indiana,18143,149,7 +2020-06-20,Scott,Indiana,18143,151,7 +2020-06-21,Scott,Indiana,18143,151,7 +2020-06-22,Scott,Indiana,18143,151,7 +2020-06-23,Scott,Indiana,18143,153,7 +2020-06-24,Scott,Indiana,18143,154,7 +2020-06-25,Scott,Indiana,18143,157,7 +2020-06-26,Scott,Indiana,18143,156,7 +2020-06-27,Scott,Indiana,18143,157,7 +2020-06-28,Scott,Indiana,18143,157,7 +2020-06-29,Scott,Indiana,18143,157,7 +2020-06-30,Scott,Indiana,18143,158,8 +2020-07-01,Scott,Indiana,18143,158,8 +2020-07-02,Scott,Indiana,18143,159,8 +2020-07-03,Scott,Indiana,18143,164,8 +2020-07-04,Scott,Indiana,18143,164,8 +2020-07-05,Scott,Indiana,18143,164,8 +2020-07-06,Scott,Indiana,18143,166,8 +2020-07-07,Scott,Indiana,18143,166,9 +2020-07-08,Scott,Indiana,18143,166,9 +2020-07-09,Scott,Indiana,18143,166,9 +2020-03-20,Shelby,Indiana,18145,1,0 +2020-03-21,Shelby,Indiana,18145,1,0 +2020-03-22,Shelby,Indiana,18145,1,0 +2020-03-23,Shelby,Indiana,18145,1,0 +2020-03-24,Shelby,Indiana,18145,1,0 +2020-03-25,Shelby,Indiana,18145,2,0 +2020-03-26,Shelby,Indiana,18145,2,0 +2020-03-27,Shelby,Indiana,18145,6,0 +2020-03-28,Shelby,Indiana,18145,10,0 +2020-03-29,Shelby,Indiana,18145,12,0 +2020-03-30,Shelby,Indiana,18145,13,0 +2020-03-31,Shelby,Indiana,18145,15,0 +2020-04-01,Shelby,Indiana,18145,19,0 +2020-04-02,Shelby,Indiana,18145,24,0 +2020-04-03,Shelby,Indiana,18145,26,0 +2020-04-04,Shelby,Indiana,18145,32,0 +2020-04-05,Shelby,Indiana,18145,37,0 +2020-04-06,Shelby,Indiana,18145,46,1 +2020-04-07,Shelby,Indiana,18145,52,1 +2020-04-08,Shelby,Indiana,18145,60,5 +2020-04-09,Shelby,Indiana,18145,65,6 +2020-04-10,Shelby,Indiana,18145,67,6 +2020-04-11,Shelby,Indiana,18145,73,7 +2020-04-12,Shelby,Indiana,18145,77,8 +2020-04-13,Shelby,Indiana,18145,81,9 +2020-04-14,Shelby,Indiana,18145,83,9 +2020-04-15,Shelby,Indiana,18145,85,9 +2020-04-16,Shelby,Indiana,18145,92,10 +2020-04-17,Shelby,Indiana,18145,103,10 +2020-04-18,Shelby,Indiana,18145,105,10 +2020-04-19,Shelby,Indiana,18145,111,10 +2020-04-20,Shelby,Indiana,18145,118,11 +2020-04-21,Shelby,Indiana,18145,127,13 +2020-04-22,Shelby,Indiana,18145,132,13 +2020-04-23,Shelby,Indiana,18145,153,13 +2020-04-24,Shelby,Indiana,18145,162,13 +2020-04-25,Shelby,Indiana,18145,184,13 +2020-04-26,Shelby,Indiana,18145,188,13 +2020-04-27,Shelby,Indiana,18145,192,15 +2020-04-28,Shelby,Indiana,18145,199,17 +2020-04-29,Shelby,Indiana,18145,203,19 +2020-04-30,Shelby,Indiana,18145,217,19 +2020-05-01,Shelby,Indiana,18145,230,19 +2020-05-02,Shelby,Indiana,18145,248,19 +2020-05-03,Shelby,Indiana,18145,252,19 +2020-05-04,Shelby,Indiana,18145,254,20 +2020-05-05,Shelby,Indiana,18145,275,21 +2020-05-06,Shelby,Indiana,18145,294,21 +2020-05-07,Shelby,Indiana,18145,300,22 +2020-05-08,Shelby,Indiana,18145,311,22 +2020-05-09,Shelby,Indiana,18145,319,23 +2020-05-10,Shelby,Indiana,18145,325,23 +2020-05-11,Shelby,Indiana,18145,336,23 +2020-05-12,Shelby,Indiana,18145,354,24 +2020-05-13,Shelby,Indiana,18145,357,26 +2020-05-14,Shelby,Indiana,18145,359,26 +2020-05-15,Shelby,Indiana,18145,384,27 +2020-05-16,Shelby,Indiana,18145,386,28 +2020-05-17,Shelby,Indiana,18145,393,28 +2020-05-18,Shelby,Indiana,18145,403,28 +2020-05-19,Shelby,Indiana,18145,417,28 +2020-05-20,Shelby,Indiana,18145,427,28 +2020-05-21,Shelby,Indiana,18145,441,28 +2020-05-22,Shelby,Indiana,18145,455,29 +2020-05-23,Shelby,Indiana,18145,457,29 +2020-05-24,Shelby,Indiana,18145,458,29 +2020-05-25,Shelby,Indiana,18145,460,29 +2020-05-26,Shelby,Indiana,18145,461,29 +2020-05-27,Shelby,Indiana,18145,472,29 +2020-05-28,Shelby,Indiana,18145,522,30 +2020-05-29,Shelby,Indiana,18145,535,30 +2020-05-30,Shelby,Indiana,18145,539,30 +2020-05-31,Shelby,Indiana,18145,541,30 +2020-06-01,Shelby,Indiana,18145,541,30 +2020-06-02,Shelby,Indiana,18145,553,30 +2020-06-03,Shelby,Indiana,18145,578,30 +2020-06-04,Shelby,Indiana,18145,579,30 +2020-06-05,Shelby,Indiana,18145,580,30 +2020-06-06,Shelby,Indiana,18145,580,30 +2020-06-07,Shelby,Indiana,18145,581,30 +2020-06-08,Shelby,Indiana,18145,584,30 +2020-06-09,Shelby,Indiana,18145,592,30 +2020-06-10,Shelby,Indiana,18145,594,30 +2020-06-11,Shelby,Indiana,18145,599,30 +2020-06-12,Shelby,Indiana,18145,598,30 +2020-06-13,Shelby,Indiana,18145,598,30 +2020-06-14,Shelby,Indiana,18145,598,30 +2020-06-15,Shelby,Indiana,18145,599,30 +2020-06-16,Shelby,Indiana,18145,601,31 +2020-06-17,Shelby,Indiana,18145,610,31 +2020-06-18,Shelby,Indiana,18145,613,32 +2020-06-19,Shelby,Indiana,18145,618,32 +2020-06-20,Shelby,Indiana,18145,617,32 +2020-06-21,Shelby,Indiana,18145,618,32 +2020-06-22,Shelby,Indiana,18145,617,32 +2020-06-23,Shelby,Indiana,18145,621,32 +2020-06-24,Shelby,Indiana,18145,622,31 +2020-06-25,Shelby,Indiana,18145,624,31 +2020-06-26,Shelby,Indiana,18145,627,32 +2020-06-27,Shelby,Indiana,18145,628,32 +2020-06-28,Shelby,Indiana,18145,631,32 +2020-06-29,Shelby,Indiana,18145,632,32 +2020-06-30,Shelby,Indiana,18145,637,32 +2020-07-01,Shelby,Indiana,18145,640,32 +2020-07-02,Shelby,Indiana,18145,642,32 +2020-07-03,Shelby,Indiana,18145,648,32 +2020-07-04,Shelby,Indiana,18145,651,32 +2020-07-05,Shelby,Indiana,18145,653,32 +2020-07-06,Shelby,Indiana,18145,654,32 +2020-07-07,Shelby,Indiana,18145,658,32 +2020-07-08,Shelby,Indiana,18145,665,32 +2020-07-09,Shelby,Indiana,18145,671,32 +2020-04-02,Spencer,Indiana,18147,1,0 +2020-04-03,Spencer,Indiana,18147,1,0 +2020-04-04,Spencer,Indiana,18147,1,0 +2020-04-05,Spencer,Indiana,18147,1,0 +2020-04-06,Spencer,Indiana,18147,1,0 +2020-04-07,Spencer,Indiana,18147,1,0 +2020-04-08,Spencer,Indiana,18147,1,0 +2020-04-09,Spencer,Indiana,18147,1,0 +2020-04-10,Spencer,Indiana,18147,1,0 +2020-04-11,Spencer,Indiana,18147,2,0 +2020-04-12,Spencer,Indiana,18147,3,0 +2020-04-13,Spencer,Indiana,18147,3,0 +2020-04-14,Spencer,Indiana,18147,3,0 +2020-04-15,Spencer,Indiana,18147,4,0 +2020-04-16,Spencer,Indiana,18147,4,0 +2020-04-17,Spencer,Indiana,18147,4,0 +2020-04-18,Spencer,Indiana,18147,4,0 +2020-04-19,Spencer,Indiana,18147,4,0 +2020-04-20,Spencer,Indiana,18147,4,0 +2020-04-21,Spencer,Indiana,18147,8,0 +2020-04-22,Spencer,Indiana,18147,8,0 +2020-04-23,Spencer,Indiana,18147,8,0 +2020-04-24,Spencer,Indiana,18147,8,0 +2020-04-25,Spencer,Indiana,18147,8,0 +2020-04-26,Spencer,Indiana,18147,8,0 +2020-04-27,Spencer,Indiana,18147,8,0 +2020-04-28,Spencer,Indiana,18147,8,0 +2020-04-29,Spencer,Indiana,18147,8,0 +2020-04-30,Spencer,Indiana,18147,8,0 +2020-05-01,Spencer,Indiana,18147,8,0 +2020-05-02,Spencer,Indiana,18147,8,1 +2020-05-03,Spencer,Indiana,18147,8,1 +2020-05-04,Spencer,Indiana,18147,8,1 +2020-05-05,Spencer,Indiana,18147,8,1 +2020-05-06,Spencer,Indiana,18147,9,1 +2020-05-07,Spencer,Indiana,18147,9,1 +2020-05-08,Spencer,Indiana,18147,10,1 +2020-05-09,Spencer,Indiana,18147,10,1 +2020-05-10,Spencer,Indiana,18147,10,1 +2020-05-11,Spencer,Indiana,18147,10,1 +2020-05-12,Spencer,Indiana,18147,10,1 +2020-05-13,Spencer,Indiana,18147,10,1 +2020-05-14,Spencer,Indiana,18147,10,1 +2020-05-15,Spencer,Indiana,18147,10,1 +2020-05-16,Spencer,Indiana,18147,11,1 +2020-05-17,Spencer,Indiana,18147,14,1 +2020-05-18,Spencer,Indiana,18147,15,1 +2020-05-19,Spencer,Indiana,18147,15,1 +2020-05-20,Spencer,Indiana,18147,16,1 +2020-05-21,Spencer,Indiana,18147,16,1 +2020-05-22,Spencer,Indiana,18147,17,1 +2020-05-23,Spencer,Indiana,18147,17,1 +2020-05-24,Spencer,Indiana,18147,17,1 +2020-05-25,Spencer,Indiana,18147,19,1 +2020-05-26,Spencer,Indiana,18147,20,1 +2020-05-27,Spencer,Indiana,18147,20,1 +2020-05-28,Spencer,Indiana,18147,22,1 +2020-05-29,Spencer,Indiana,18147,22,1 +2020-05-30,Spencer,Indiana,18147,23,1 +2020-05-31,Spencer,Indiana,18147,23,1 +2020-06-01,Spencer,Indiana,18147,23,1 +2020-06-02,Spencer,Indiana,18147,24,1 +2020-06-03,Spencer,Indiana,18147,24,1 +2020-06-04,Spencer,Indiana,18147,24,1 +2020-06-05,Spencer,Indiana,18147,25,1 +2020-06-06,Spencer,Indiana,18147,25,1 +2020-06-07,Spencer,Indiana,18147,25,1 +2020-06-08,Spencer,Indiana,18147,25,1 +2020-06-09,Spencer,Indiana,18147,25,1 +2020-06-10,Spencer,Indiana,18147,25,1 +2020-06-11,Spencer,Indiana,18147,25,1 +2020-06-12,Spencer,Indiana,18147,25,1 +2020-06-13,Spencer,Indiana,18147,25,1 +2020-06-14,Spencer,Indiana,18147,26,1 +2020-06-15,Spencer,Indiana,18147,26,1 +2020-06-16,Spencer,Indiana,18147,26,1 +2020-06-17,Spencer,Indiana,18147,26,1 +2020-06-18,Spencer,Indiana,18147,26,1 +2020-06-19,Spencer,Indiana,18147,27,1 +2020-06-20,Spencer,Indiana,18147,27,1 +2020-06-21,Spencer,Indiana,18147,27,1 +2020-06-22,Spencer,Indiana,18147,28,1 +2020-06-23,Spencer,Indiana,18147,28,1 +2020-06-24,Spencer,Indiana,18147,30,1 +2020-06-25,Spencer,Indiana,18147,31,1 +2020-06-26,Spencer,Indiana,18147,31,1 +2020-06-27,Spencer,Indiana,18147,33,1 +2020-06-28,Spencer,Indiana,18147,33,1 +2020-06-29,Spencer,Indiana,18147,33,1 +2020-06-30,Spencer,Indiana,18147,33,1 +2020-07-01,Spencer,Indiana,18147,34,1 +2020-07-02,Spencer,Indiana,18147,36,1 +2020-07-03,Spencer,Indiana,18147,38,1 +2020-07-04,Spencer,Indiana,18147,40,1 +2020-07-05,Spencer,Indiana,18147,41,1 +2020-07-06,Spencer,Indiana,18147,41,1 +2020-07-07,Spencer,Indiana,18147,44,1 +2020-07-08,Spencer,Indiana,18147,47,1 +2020-07-09,Spencer,Indiana,18147,49,1 +2020-03-24,Starke,Indiana,18149,1,0 +2020-03-25,Starke,Indiana,18149,1,0 +2020-03-26,Starke,Indiana,18149,1,0 +2020-03-27,Starke,Indiana,18149,1,0 +2020-03-28,Starke,Indiana,18149,1,0 +2020-03-29,Starke,Indiana,18149,1,0 +2020-03-30,Starke,Indiana,18149,1,0 +2020-03-31,Starke,Indiana,18149,1,0 +2020-04-01,Starke,Indiana,18149,1,0 +2020-04-02,Starke,Indiana,18149,2,0 +2020-04-03,Starke,Indiana,18149,2,0 +2020-04-04,Starke,Indiana,18149,2,0 +2020-04-05,Starke,Indiana,18149,3,0 +2020-04-06,Starke,Indiana,18149,4,0 +2020-04-07,Starke,Indiana,18149,5,0 +2020-04-08,Starke,Indiana,18149,6,0 +2020-04-09,Starke,Indiana,18149,6,0 +2020-04-10,Starke,Indiana,18149,8,0 +2020-04-11,Starke,Indiana,18149,8,0 +2020-04-12,Starke,Indiana,18149,9,0 +2020-04-13,Starke,Indiana,18149,9,1 +2020-04-14,Starke,Indiana,18149,10,1 +2020-04-15,Starke,Indiana,18149,10,1 +2020-04-16,Starke,Indiana,18149,10,1 +2020-04-17,Starke,Indiana,18149,10,1 +2020-04-18,Starke,Indiana,18149,11,1 +2020-04-19,Starke,Indiana,18149,11,1 +2020-04-20,Starke,Indiana,18149,11,1 +2020-04-21,Starke,Indiana,18149,12,1 +2020-04-22,Starke,Indiana,18149,12,1 +2020-04-23,Starke,Indiana,18149,14,1 +2020-04-24,Starke,Indiana,18149,14,1 +2020-04-25,Starke,Indiana,18149,14,1 +2020-04-26,Starke,Indiana,18149,16,1 +2020-04-27,Starke,Indiana,18149,16,1 +2020-04-28,Starke,Indiana,18149,16,1 +2020-04-29,Starke,Indiana,18149,17,1 +2020-04-30,Starke,Indiana,18149,17,1 +2020-05-01,Starke,Indiana,18149,17,1 +2020-05-02,Starke,Indiana,18149,17,2 +2020-05-03,Starke,Indiana,18149,18,2 +2020-05-04,Starke,Indiana,18149,18,2 +2020-05-05,Starke,Indiana,18149,18,2 +2020-05-06,Starke,Indiana,18149,18,2 +2020-05-07,Starke,Indiana,18149,20,2 +2020-05-08,Starke,Indiana,18149,22,2 +2020-05-09,Starke,Indiana,18149,22,2 +2020-05-10,Starke,Indiana,18149,22,2 +2020-05-11,Starke,Indiana,18149,22,2 +2020-05-12,Starke,Indiana,18149,24,2 +2020-05-13,Starke,Indiana,18149,25,2 +2020-05-14,Starke,Indiana,18149,25,2 +2020-05-15,Starke,Indiana,18149,27,2 +2020-05-16,Starke,Indiana,18149,28,2 +2020-05-17,Starke,Indiana,18149,29,2 +2020-05-18,Starke,Indiana,18149,29,2 +2020-05-19,Starke,Indiana,18149,28,2 +2020-05-20,Starke,Indiana,18149,29,3 +2020-05-21,Starke,Indiana,18149,30,3 +2020-05-22,Starke,Indiana,18149,31,3 +2020-05-23,Starke,Indiana,18149,31,3 +2020-05-24,Starke,Indiana,18149,32,3 +2020-05-25,Starke,Indiana,18149,32,3 +2020-05-26,Starke,Indiana,18149,32,3 +2020-05-27,Starke,Indiana,18149,32,3 +2020-05-28,Starke,Indiana,18149,33,3 +2020-05-29,Starke,Indiana,18149,37,3 +2020-05-30,Starke,Indiana,18149,40,3 +2020-05-31,Starke,Indiana,18149,40,3 +2020-06-01,Starke,Indiana,18149,40,3 +2020-06-02,Starke,Indiana,18149,40,3 +2020-06-03,Starke,Indiana,18149,40,3 +2020-06-04,Starke,Indiana,18149,40,3 +2020-06-05,Starke,Indiana,18149,43,3 +2020-06-06,Starke,Indiana,18149,46,3 +2020-06-07,Starke,Indiana,18149,47,3 +2020-06-08,Starke,Indiana,18149,47,3 +2020-06-09,Starke,Indiana,18149,47,3 +2020-06-10,Starke,Indiana,18149,48,3 +2020-06-11,Starke,Indiana,18149,49,3 +2020-06-12,Starke,Indiana,18149,49,3 +2020-06-13,Starke,Indiana,18149,52,3 +2020-06-14,Starke,Indiana,18149,52,3 +2020-06-15,Starke,Indiana,18149,53,3 +2020-06-16,Starke,Indiana,18149,55,3 +2020-06-17,Starke,Indiana,18149,57,4 +2020-06-18,Starke,Indiana,18149,60,4 +2020-06-19,Starke,Indiana,18149,60,4 +2020-06-20,Starke,Indiana,18149,60,4 +2020-06-21,Starke,Indiana,18149,62,4 +2020-06-22,Starke,Indiana,18149,62,4 +2020-06-23,Starke,Indiana,18149,63,4 +2020-06-24,Starke,Indiana,18149,64,4 +2020-06-25,Starke,Indiana,18149,65,4 +2020-06-26,Starke,Indiana,18149,65,4 +2020-06-27,Starke,Indiana,18149,67,4 +2020-06-28,Starke,Indiana,18149,68,4 +2020-06-29,Starke,Indiana,18149,69,4 +2020-06-30,Starke,Indiana,18149,70,4 +2020-07-01,Starke,Indiana,18149,75,4 +2020-07-02,Starke,Indiana,18149,79,4 +2020-07-03,Starke,Indiana,18149,87,4 +2020-07-04,Starke,Indiana,18149,94,4 +2020-07-05,Starke,Indiana,18149,95,4 +2020-07-06,Starke,Indiana,18149,95,4 +2020-07-07,Starke,Indiana,18149,95,4 +2020-07-08,Starke,Indiana,18149,96,4 +2020-07-09,Starke,Indiana,18149,98,4 +2020-03-29,Steuben,Indiana,18151,1,0 +2020-03-30,Steuben,Indiana,18151,1,0 +2020-03-31,Steuben,Indiana,18151,1,0 +2020-04-01,Steuben,Indiana,18151,2,0 +2020-04-02,Steuben,Indiana,18151,2,0 +2020-04-03,Steuben,Indiana,18151,2,0 +2020-04-04,Steuben,Indiana,18151,4,0 +2020-04-05,Steuben,Indiana,18151,6,0 +2020-04-06,Steuben,Indiana,18151,8,0 +2020-04-07,Steuben,Indiana,18151,9,0 +2020-04-08,Steuben,Indiana,18151,10,1 +2020-04-09,Steuben,Indiana,18151,12,1 +2020-04-10,Steuben,Indiana,18151,12,1 +2020-04-11,Steuben,Indiana,18151,12,1 +2020-04-12,Steuben,Indiana,18151,12,1 +2020-04-13,Steuben,Indiana,18151,12,1 +2020-04-14,Steuben,Indiana,18151,12,1 +2020-04-15,Steuben,Indiana,18151,13,1 +2020-04-16,Steuben,Indiana,18151,14,1 +2020-04-17,Steuben,Indiana,18151,16,1 +2020-04-18,Steuben,Indiana,18151,17,1 +2020-04-19,Steuben,Indiana,18151,17,1 +2020-04-20,Steuben,Indiana,18151,17,1 +2020-04-21,Steuben,Indiana,18151,17,1 +2020-04-22,Steuben,Indiana,18151,18,1 +2020-04-23,Steuben,Indiana,18151,18,1 +2020-04-24,Steuben,Indiana,18151,20,1 +2020-04-25,Steuben,Indiana,18151,21,1 +2020-04-26,Steuben,Indiana,18151,21,1 +2020-04-27,Steuben,Indiana,18151,21,1 +2020-04-28,Steuben,Indiana,18151,21,1 +2020-04-29,Steuben,Indiana,18151,22,1 +2020-04-30,Steuben,Indiana,18151,23,1 +2020-05-01,Steuben,Indiana,18151,25,1 +2020-05-02,Steuben,Indiana,18151,26,1 +2020-05-03,Steuben,Indiana,18151,26,1 +2020-05-04,Steuben,Indiana,18151,41,1 +2020-05-05,Steuben,Indiana,18151,51,1 +2020-05-06,Steuben,Indiana,18151,59,1 +2020-05-07,Steuben,Indiana,18151,61,1 +2020-05-08,Steuben,Indiana,18151,63,1 +2020-05-09,Steuben,Indiana,18151,62,2 +2020-05-10,Steuben,Indiana,18151,62,2 +2020-05-11,Steuben,Indiana,18151,62,2 +2020-05-12,Steuben,Indiana,18151,62,2 +2020-05-13,Steuben,Indiana,18151,64,2 +2020-05-14,Steuben,Indiana,18151,67,2 +2020-05-15,Steuben,Indiana,18151,66,2 +2020-05-16,Steuben,Indiana,18151,65,2 +2020-05-17,Steuben,Indiana,18151,65,2 +2020-05-18,Steuben,Indiana,18151,67,2 +2020-05-19,Steuben,Indiana,18151,69,2 +2020-05-20,Steuben,Indiana,18151,71,2 +2020-05-21,Steuben,Indiana,18151,73,2 +2020-05-22,Steuben,Indiana,18151,77,2 +2020-05-23,Steuben,Indiana,18151,76,2 +2020-05-24,Steuben,Indiana,18151,79,2 +2020-05-25,Steuben,Indiana,18151,79,2 +2020-05-26,Steuben,Indiana,18151,80,2 +2020-05-27,Steuben,Indiana,18151,80,2 +2020-05-28,Steuben,Indiana,18151,81,2 +2020-05-29,Steuben,Indiana,18151,81,2 +2020-05-30,Steuben,Indiana,18151,83,2 +2020-05-31,Steuben,Indiana,18151,83,2 +2020-06-01,Steuben,Indiana,18151,84,2 +2020-06-02,Steuben,Indiana,18151,85,2 +2020-06-03,Steuben,Indiana,18151,87,2 +2020-06-04,Steuben,Indiana,18151,88,2 +2020-06-05,Steuben,Indiana,18151,90,2 +2020-06-06,Steuben,Indiana,18151,90,2 +2020-06-07,Steuben,Indiana,18151,93,2 +2020-06-08,Steuben,Indiana,18151,95,2 +2020-06-09,Steuben,Indiana,18151,95,2 +2020-06-10,Steuben,Indiana,18151,98,2 +2020-06-11,Steuben,Indiana,18151,100,2 +2020-06-12,Steuben,Indiana,18151,102,2 +2020-06-13,Steuben,Indiana,18151,103,2 +2020-06-14,Steuben,Indiana,18151,105,2 +2020-06-15,Steuben,Indiana,18151,105,2 +2020-06-16,Steuben,Indiana,18151,106,2 +2020-06-17,Steuben,Indiana,18151,107,2 +2020-06-18,Steuben,Indiana,18151,107,2 +2020-06-19,Steuben,Indiana,18151,108,2 +2020-06-20,Steuben,Indiana,18151,108,2 +2020-06-21,Steuben,Indiana,18151,109,2 +2020-06-22,Steuben,Indiana,18151,110,2 +2020-06-23,Steuben,Indiana,18151,111,2 +2020-06-24,Steuben,Indiana,18151,112,2 +2020-06-25,Steuben,Indiana,18151,113,2 +2020-06-26,Steuben,Indiana,18151,116,2 +2020-06-27,Steuben,Indiana,18151,120,2 +2020-06-28,Steuben,Indiana,18151,120,2 +2020-06-29,Steuben,Indiana,18151,121,2 +2020-06-30,Steuben,Indiana,18151,123,2 +2020-07-01,Steuben,Indiana,18151,123,2 +2020-07-02,Steuben,Indiana,18151,124,2 +2020-07-03,Steuben,Indiana,18151,126,2 +2020-07-04,Steuben,Indiana,18151,128,2 +2020-07-05,Steuben,Indiana,18151,129,2 +2020-07-06,Steuben,Indiana,18151,129,2 +2020-07-07,Steuben,Indiana,18151,130,2 +2020-07-08,Steuben,Indiana,18151,130,2 +2020-07-09,Steuben,Indiana,18151,133,2 +2020-03-24,Sullivan,Indiana,18153,1,0 +2020-03-25,Sullivan,Indiana,18153,1,0 +2020-03-26,Sullivan,Indiana,18153,1,0 +2020-03-27,Sullivan,Indiana,18153,1,0 +2020-03-28,Sullivan,Indiana,18153,1,0 +2020-03-29,Sullivan,Indiana,18153,1,0 +2020-03-30,Sullivan,Indiana,18153,1,0 +2020-03-31,Sullivan,Indiana,18153,2,0 +2020-04-01,Sullivan,Indiana,18153,3,0 +2020-04-02,Sullivan,Indiana,18153,3,0 +2020-04-03,Sullivan,Indiana,18153,3,0 +2020-04-04,Sullivan,Indiana,18153,3,0 +2020-04-05,Sullivan,Indiana,18153,3,0 +2020-04-06,Sullivan,Indiana,18153,3,0 +2020-04-07,Sullivan,Indiana,18153,3,0 +2020-04-08,Sullivan,Indiana,18153,4,0 +2020-04-09,Sullivan,Indiana,18153,4,0 +2020-04-10,Sullivan,Indiana,18153,4,0 +2020-04-11,Sullivan,Indiana,18153,5,0 +2020-04-12,Sullivan,Indiana,18153,6,0 +2020-04-13,Sullivan,Indiana,18153,6,0 +2020-04-14,Sullivan,Indiana,18153,6,0 +2020-04-15,Sullivan,Indiana,18153,6,0 +2020-04-16,Sullivan,Indiana,18153,7,0 +2020-04-17,Sullivan,Indiana,18153,7,0 +2020-04-18,Sullivan,Indiana,18153,7,0 +2020-04-19,Sullivan,Indiana,18153,8,0 +2020-04-20,Sullivan,Indiana,18153,9,0 +2020-04-21,Sullivan,Indiana,18153,10,0 +2020-04-22,Sullivan,Indiana,18153,10,0 +2020-04-23,Sullivan,Indiana,18153,10,0 +2020-04-24,Sullivan,Indiana,18153,12,0 +2020-04-25,Sullivan,Indiana,18153,12,0 +2020-04-26,Sullivan,Indiana,18153,13,0 +2020-04-27,Sullivan,Indiana,18153,13,0 +2020-04-28,Sullivan,Indiana,18153,13,0 +2020-04-29,Sullivan,Indiana,18153,16,0 +2020-04-30,Sullivan,Indiana,18153,16,0 +2020-05-01,Sullivan,Indiana,18153,16,0 +2020-05-02,Sullivan,Indiana,18153,16,0 +2020-05-03,Sullivan,Indiana,18153,16,0 +2020-05-04,Sullivan,Indiana,18153,16,0 +2020-05-05,Sullivan,Indiana,18153,16,0 +2020-05-06,Sullivan,Indiana,18153,16,0 +2020-05-07,Sullivan,Indiana,18153,18,0 +2020-05-08,Sullivan,Indiana,18153,19,0 +2020-05-09,Sullivan,Indiana,18153,20,0 +2020-05-10,Sullivan,Indiana,18153,20,0 +2020-05-11,Sullivan,Indiana,18153,20,0 +2020-05-12,Sullivan,Indiana,18153,20,0 +2020-05-13,Sullivan,Indiana,18153,22,0 +2020-05-14,Sullivan,Indiana,18153,24,0 +2020-05-15,Sullivan,Indiana,18153,25,0 +2020-05-16,Sullivan,Indiana,18153,25,0 +2020-05-17,Sullivan,Indiana,18153,29,0 +2020-05-18,Sullivan,Indiana,18153,28,0 +2020-05-19,Sullivan,Indiana,18153,28,0 +2020-05-20,Sullivan,Indiana,18153,29,1 +2020-05-21,Sullivan,Indiana,18153,30,1 +2020-05-22,Sullivan,Indiana,18153,31,1 +2020-05-23,Sullivan,Indiana,18153,31,1 +2020-05-24,Sullivan,Indiana,18153,32,1 +2020-05-25,Sullivan,Indiana,18153,32,1 +2020-05-26,Sullivan,Indiana,18153,32,1 +2020-05-27,Sullivan,Indiana,18153,33,1 +2020-05-28,Sullivan,Indiana,18153,34,1 +2020-05-29,Sullivan,Indiana,18153,34,1 +2020-05-30,Sullivan,Indiana,18153,35,1 +2020-05-31,Sullivan,Indiana,18153,36,1 +2020-06-01,Sullivan,Indiana,18153,36,1 +2020-06-02,Sullivan,Indiana,18153,36,1 +2020-06-03,Sullivan,Indiana,18153,37,1 +2020-06-04,Sullivan,Indiana,18153,38,1 +2020-06-05,Sullivan,Indiana,18153,38,1 +2020-06-06,Sullivan,Indiana,18153,38,1 +2020-06-07,Sullivan,Indiana,18153,39,1 +2020-06-08,Sullivan,Indiana,18153,40,1 +2020-06-09,Sullivan,Indiana,18153,40,1 +2020-06-10,Sullivan,Indiana,18153,40,1 +2020-06-11,Sullivan,Indiana,18153,42,1 +2020-06-12,Sullivan,Indiana,18153,42,1 +2020-06-13,Sullivan,Indiana,18153,42,1 +2020-06-14,Sullivan,Indiana,18153,42,1 +2020-06-15,Sullivan,Indiana,18153,42,1 +2020-06-16,Sullivan,Indiana,18153,42,1 +2020-06-17,Sullivan,Indiana,18153,42,1 +2020-06-18,Sullivan,Indiana,18153,43,1 +2020-06-19,Sullivan,Indiana,18153,42,1 +2020-06-20,Sullivan,Indiana,18153,42,1 +2020-06-21,Sullivan,Indiana,18153,42,1 +2020-06-22,Sullivan,Indiana,18153,42,1 +2020-06-23,Sullivan,Indiana,18153,43,1 +2020-06-24,Sullivan,Indiana,18153,43,1 +2020-06-25,Sullivan,Indiana,18153,43,1 +2020-06-26,Sullivan,Indiana,18153,47,1 +2020-06-27,Sullivan,Indiana,18153,47,1 +2020-06-28,Sullivan,Indiana,18153,47,1 +2020-06-29,Sullivan,Indiana,18153,47,1 +2020-06-30,Sullivan,Indiana,18153,47,1 +2020-07-01,Sullivan,Indiana,18153,46,1 +2020-07-02,Sullivan,Indiana,18153,46,1 +2020-07-03,Sullivan,Indiana,18153,46,1 +2020-07-04,Sullivan,Indiana,18153,46,1 +2020-07-05,Sullivan,Indiana,18153,46,1 +2020-07-06,Sullivan,Indiana,18153,47,1 +2020-07-07,Sullivan,Indiana,18153,47,1 +2020-07-08,Sullivan,Indiana,18153,47,1 +2020-07-09,Sullivan,Indiana,18153,47,1 +2020-03-28,Switzerland,Indiana,18155,1,0 +2020-03-29,Switzerland,Indiana,18155,3,0 +2020-03-30,Switzerland,Indiana,18155,3,0 +2020-03-31,Switzerland,Indiana,18155,3,0 +2020-04-01,Switzerland,Indiana,18155,3,0 +2020-04-02,Switzerland,Indiana,18155,4,0 +2020-04-03,Switzerland,Indiana,18155,6,0 +2020-04-04,Switzerland,Indiana,18155,7,0 +2020-04-05,Switzerland,Indiana,18155,9,0 +2020-04-06,Switzerland,Indiana,18155,11,0 +2020-04-07,Switzerland,Indiana,18155,11,0 +2020-04-08,Switzerland,Indiana,18155,11,0 +2020-04-09,Switzerland,Indiana,18155,13,0 +2020-04-10,Switzerland,Indiana,18155,12,0 +2020-04-11,Switzerland,Indiana,18155,13,0 +2020-04-12,Switzerland,Indiana,18155,13,0 +2020-04-13,Switzerland,Indiana,18155,12,0 +2020-04-14,Switzerland,Indiana,18155,12,0 +2020-04-15,Switzerland,Indiana,18155,12,0 +2020-04-16,Switzerland,Indiana,18155,12,0 +2020-04-17,Switzerland,Indiana,18155,12,0 +2020-04-18,Switzerland,Indiana,18155,13,0 +2020-04-19,Switzerland,Indiana,18155,13,0 +2020-04-20,Switzerland,Indiana,18155,13,0 +2020-04-21,Switzerland,Indiana,18155,13,0 +2020-04-22,Switzerland,Indiana,18155,14,0 +2020-04-23,Switzerland,Indiana,18155,15,0 +2020-04-24,Switzerland,Indiana,18155,15,0 +2020-04-25,Switzerland,Indiana,18155,15,0 +2020-04-26,Switzerland,Indiana,18155,15,0 +2020-04-27,Switzerland,Indiana,18155,15,0 +2020-04-28,Switzerland,Indiana,18155,16,0 +2020-04-29,Switzerland,Indiana,18155,16,0 +2020-04-30,Switzerland,Indiana,18155,16,0 +2020-05-01,Switzerland,Indiana,18155,16,0 +2020-05-02,Switzerland,Indiana,18155,16,0 +2020-05-03,Switzerland,Indiana,18155,16,0 +2020-05-04,Switzerland,Indiana,18155,16,0 +2020-05-05,Switzerland,Indiana,18155,16,0 +2020-05-06,Switzerland,Indiana,18155,16,0 +2020-05-07,Switzerland,Indiana,18155,16,0 +2020-05-08,Switzerland,Indiana,18155,16,0 +2020-05-09,Switzerland,Indiana,18155,15,0 +2020-05-10,Switzerland,Indiana,18155,15,0 +2020-05-11,Switzerland,Indiana,18155,15,0 +2020-05-12,Switzerland,Indiana,18155,15,0 +2020-05-13,Switzerland,Indiana,18155,15,0 +2020-05-14,Switzerland,Indiana,18155,15,0 +2020-05-15,Switzerland,Indiana,18155,16,0 +2020-05-16,Switzerland,Indiana,18155,17,0 +2020-05-17,Switzerland,Indiana,18155,17,0 +2020-05-18,Switzerland,Indiana,18155,18,0 +2020-05-19,Switzerland,Indiana,18155,19,0 +2020-05-20,Switzerland,Indiana,18155,19,0 +2020-05-21,Switzerland,Indiana,18155,19,0 +2020-05-22,Switzerland,Indiana,18155,20,0 +2020-05-23,Switzerland,Indiana,18155,20,0 +2020-05-24,Switzerland,Indiana,18155,20,0 +2020-05-25,Switzerland,Indiana,18155,20,0 +2020-05-26,Switzerland,Indiana,18155,20,0 +2020-05-27,Switzerland,Indiana,18155,20,0 +2020-05-28,Switzerland,Indiana,18155,20,0 +2020-05-29,Switzerland,Indiana,18155,21,0 +2020-05-30,Switzerland,Indiana,18155,21,0 +2020-05-31,Switzerland,Indiana,18155,21,0 +2020-06-01,Switzerland,Indiana,18155,21,0 +2020-06-02,Switzerland,Indiana,18155,22,0 +2020-06-03,Switzerland,Indiana,18155,22,0 +2020-06-04,Switzerland,Indiana,18155,22,0 +2020-06-05,Switzerland,Indiana,18155,23,0 +2020-06-06,Switzerland,Indiana,18155,22,0 +2020-06-07,Switzerland,Indiana,18155,22,0 +2020-06-08,Switzerland,Indiana,18155,22,0 +2020-06-09,Switzerland,Indiana,18155,23,0 +2020-06-10,Switzerland,Indiana,18155,23,0 +2020-06-11,Switzerland,Indiana,18155,23,0 +2020-06-12,Switzerland,Indiana,18155,24,0 +2020-06-13,Switzerland,Indiana,18155,24,0 +2020-06-14,Switzerland,Indiana,18155,24,0 +2020-06-15,Switzerland,Indiana,18155,24,0 +2020-06-16,Switzerland,Indiana,18155,24,0 +2020-06-17,Switzerland,Indiana,18155,24,0 +2020-06-18,Switzerland,Indiana,18155,24,0 +2020-06-19,Switzerland,Indiana,18155,24,0 +2020-06-20,Switzerland,Indiana,18155,24,0 +2020-06-21,Switzerland,Indiana,18155,24,0 +2020-06-22,Switzerland,Indiana,18155,24,0 +2020-06-23,Switzerland,Indiana,18155,24,0 +2020-06-24,Switzerland,Indiana,18155,24,0 +2020-06-25,Switzerland,Indiana,18155,24,0 +2020-06-26,Switzerland,Indiana,18155,24,0 +2020-06-27,Switzerland,Indiana,18155,25,0 +2020-06-28,Switzerland,Indiana,18155,25,0 +2020-06-29,Switzerland,Indiana,18155,25,0 +2020-06-30,Switzerland,Indiana,18155,26,0 +2020-07-01,Switzerland,Indiana,18155,27,0 +2020-07-02,Switzerland,Indiana,18155,28,0 +2020-07-03,Switzerland,Indiana,18155,28,0 +2020-07-04,Switzerland,Indiana,18155,28,0 +2020-07-05,Switzerland,Indiana,18155,29,0 +2020-07-06,Switzerland,Indiana,18155,29,0 +2020-07-07,Switzerland,Indiana,18155,29,0 +2020-07-08,Switzerland,Indiana,18155,30,0 +2020-07-09,Switzerland,Indiana,18155,30,0 +2020-03-19,Tippecanoe,Indiana,18157,1,0 +2020-03-20,Tippecanoe,Indiana,18157,2,0 +2020-03-21,Tippecanoe,Indiana,18157,2,0 +2020-03-22,Tippecanoe,Indiana,18157,2,0 +2020-03-23,Tippecanoe,Indiana,18157,2,0 +2020-03-24,Tippecanoe,Indiana,18157,3,0 +2020-03-25,Tippecanoe,Indiana,18157,4,0 +2020-03-26,Tippecanoe,Indiana,18157,7,0 +2020-03-27,Tippecanoe,Indiana,18157,8,1 +2020-03-28,Tippecanoe,Indiana,18157,11,1 +2020-03-29,Tippecanoe,Indiana,18157,11,1 +2020-03-30,Tippecanoe,Indiana,18157,14,1 +2020-03-31,Tippecanoe,Indiana,18157,14,1 +2020-04-01,Tippecanoe,Indiana,18157,18,1 +2020-04-02,Tippecanoe,Indiana,18157,19,1 +2020-04-03,Tippecanoe,Indiana,18157,26,1 +2020-04-04,Tippecanoe,Indiana,18157,28,1 +2020-04-05,Tippecanoe,Indiana,18157,29,1 +2020-04-06,Tippecanoe,Indiana,18157,34,1 +2020-04-07,Tippecanoe,Indiana,18157,36,1 +2020-04-08,Tippecanoe,Indiana,18157,38,1 +2020-04-09,Tippecanoe,Indiana,18157,40,1 +2020-04-10,Tippecanoe,Indiana,18157,42,1 +2020-04-11,Tippecanoe,Indiana,18157,43,1 +2020-04-12,Tippecanoe,Indiana,18157,45,1 +2020-04-13,Tippecanoe,Indiana,18157,45,1 +2020-04-14,Tippecanoe,Indiana,18157,46,1 +2020-04-15,Tippecanoe,Indiana,18157,46,2 +2020-04-16,Tippecanoe,Indiana,18157,51,2 +2020-04-17,Tippecanoe,Indiana,18157,53,2 +2020-04-18,Tippecanoe,Indiana,18157,55,2 +2020-04-19,Tippecanoe,Indiana,18157,56,2 +2020-04-20,Tippecanoe,Indiana,18157,58,2 +2020-04-21,Tippecanoe,Indiana,18157,59,2 +2020-04-22,Tippecanoe,Indiana,18157,59,2 +2020-04-23,Tippecanoe,Indiana,18157,62,2 +2020-04-24,Tippecanoe,Indiana,18157,64,2 +2020-04-25,Tippecanoe,Indiana,18157,71,2 +2020-04-26,Tippecanoe,Indiana,18157,75,2 +2020-04-27,Tippecanoe,Indiana,18157,90,2 +2020-04-28,Tippecanoe,Indiana,18157,95,2 +2020-04-29,Tippecanoe,Indiana,18157,102,2 +2020-04-30,Tippecanoe,Indiana,18157,110,2 +2020-05-01,Tippecanoe,Indiana,18157,115,2 +2020-05-02,Tippecanoe,Indiana,18157,121,2 +2020-05-03,Tippecanoe,Indiana,18157,157,2 +2020-05-04,Tippecanoe,Indiana,18157,182,2 +2020-05-05,Tippecanoe,Indiana,18157,191,2 +2020-05-06,Tippecanoe,Indiana,18157,198,2 +2020-05-07,Tippecanoe,Indiana,18157,203,2 +2020-05-08,Tippecanoe,Indiana,18157,208,2 +2020-05-09,Tippecanoe,Indiana,18157,226,2 +2020-05-10,Tippecanoe,Indiana,18157,234,2 +2020-05-11,Tippecanoe,Indiana,18157,245,2 +2020-05-12,Tippecanoe,Indiana,18157,249,2 +2020-05-13,Tippecanoe,Indiana,18157,262,2 +2020-05-14,Tippecanoe,Indiana,18157,269,2 +2020-05-15,Tippecanoe,Indiana,18157,282,2 +2020-05-16,Tippecanoe,Indiana,18157,292,2 +2020-05-17,Tippecanoe,Indiana,18157,304,2 +2020-05-18,Tippecanoe,Indiana,18157,308,2 +2020-05-19,Tippecanoe,Indiana,18157,315,2 +2020-05-20,Tippecanoe,Indiana,18157,333,3 +2020-05-21,Tippecanoe,Indiana,18157,344,3 +2020-05-22,Tippecanoe,Indiana,18157,350,3 +2020-05-23,Tippecanoe,Indiana,18157,358,3 +2020-05-24,Tippecanoe,Indiana,18157,371,3 +2020-05-25,Tippecanoe,Indiana,18157,375,3 +2020-05-26,Tippecanoe,Indiana,18157,377,3 +2020-05-27,Tippecanoe,Indiana,18157,382,3 +2020-05-28,Tippecanoe,Indiana,18157,384,3 +2020-05-29,Tippecanoe,Indiana,18157,392,3 +2020-05-30,Tippecanoe,Indiana,18157,395,3 +2020-05-31,Tippecanoe,Indiana,18157,404,3 +2020-06-01,Tippecanoe,Indiana,18157,416,3 +2020-06-02,Tippecanoe,Indiana,18157,420,4 +2020-06-03,Tippecanoe,Indiana,18157,423,4 +2020-06-04,Tippecanoe,Indiana,18157,431,4 +2020-06-05,Tippecanoe,Indiana,18157,436,4 +2020-06-06,Tippecanoe,Indiana,18157,443,4 +2020-06-07,Tippecanoe,Indiana,18157,455,5 +2020-06-08,Tippecanoe,Indiana,18157,458,5 +2020-06-09,Tippecanoe,Indiana,18157,462,5 +2020-06-10,Tippecanoe,Indiana,18157,468,5 +2020-06-11,Tippecanoe,Indiana,18157,468,5 +2020-06-12,Tippecanoe,Indiana,18157,474,5 +2020-06-13,Tippecanoe,Indiana,18157,481,5 +2020-06-14,Tippecanoe,Indiana,18157,488,5 +2020-06-15,Tippecanoe,Indiana,18157,493,5 +2020-06-16,Tippecanoe,Indiana,18157,494,5 +2020-06-17,Tippecanoe,Indiana,18157,500,7 +2020-06-18,Tippecanoe,Indiana,18157,509,8 +2020-06-19,Tippecanoe,Indiana,18157,513,8 +2020-06-20,Tippecanoe,Indiana,18157,529,8 +2020-06-21,Tippecanoe,Indiana,18157,533,8 +2020-06-22,Tippecanoe,Indiana,18157,542,8 +2020-06-23,Tippecanoe,Indiana,18157,544,9 +2020-06-24,Tippecanoe,Indiana,18157,547,9 +2020-06-25,Tippecanoe,Indiana,18157,558,9 +2020-06-26,Tippecanoe,Indiana,18157,582,9 +2020-06-27,Tippecanoe,Indiana,18157,602,9 +2020-06-28,Tippecanoe,Indiana,18157,612,9 +2020-06-29,Tippecanoe,Indiana,18157,627,9 +2020-06-30,Tippecanoe,Indiana,18157,636,9 +2020-07-01,Tippecanoe,Indiana,18157,643,9 +2020-07-02,Tippecanoe,Indiana,18157,662,9 +2020-07-03,Tippecanoe,Indiana,18157,680,9 +2020-07-04,Tippecanoe,Indiana,18157,697,9 +2020-07-05,Tippecanoe,Indiana,18157,718,9 +2020-07-06,Tippecanoe,Indiana,18157,729,9 +2020-07-07,Tippecanoe,Indiana,18157,730,10 +2020-07-08,Tippecanoe,Indiana,18157,738,10 +2020-07-09,Tippecanoe,Indiana,18157,746,10 +2020-03-22,Tipton,Indiana,18159,1,0 +2020-03-23,Tipton,Indiana,18159,2,0 +2020-03-24,Tipton,Indiana,18159,2,0 +2020-03-25,Tipton,Indiana,18159,2,0 +2020-03-26,Tipton,Indiana,18159,2,0 +2020-03-27,Tipton,Indiana,18159,2,0 +2020-03-28,Tipton,Indiana,18159,2,0 +2020-03-29,Tipton,Indiana,18159,4,0 +2020-03-30,Tipton,Indiana,18159,4,0 +2020-03-31,Tipton,Indiana,18159,4,0 +2020-04-01,Tipton,Indiana,18159,5,0 +2020-04-02,Tipton,Indiana,18159,5,0 +2020-04-03,Tipton,Indiana,18159,5,0 +2020-04-04,Tipton,Indiana,18159,6,0 +2020-04-05,Tipton,Indiana,18159,6,0 +2020-04-06,Tipton,Indiana,18159,6,0 +2020-04-07,Tipton,Indiana,18159,8,0 +2020-04-08,Tipton,Indiana,18159,9,0 +2020-04-09,Tipton,Indiana,18159,9,0 +2020-04-10,Tipton,Indiana,18159,9,0 +2020-04-11,Tipton,Indiana,18159,9,0 +2020-04-12,Tipton,Indiana,18159,9,0 +2020-04-13,Tipton,Indiana,18159,10,0 +2020-04-14,Tipton,Indiana,18159,10,0 +2020-04-15,Tipton,Indiana,18159,10,0 +2020-04-16,Tipton,Indiana,18159,10,1 +2020-04-17,Tipton,Indiana,18159,10,1 +2020-04-18,Tipton,Indiana,18159,10,1 +2020-04-19,Tipton,Indiana,18159,13,1 +2020-04-20,Tipton,Indiana,18159,13,1 +2020-04-21,Tipton,Indiana,18159,14,1 +2020-04-22,Tipton,Indiana,18159,14,1 +2020-04-23,Tipton,Indiana,18159,14,1 +2020-04-24,Tipton,Indiana,18159,17,1 +2020-04-25,Tipton,Indiana,18159,17,1 +2020-04-26,Tipton,Indiana,18159,17,1 +2020-04-27,Tipton,Indiana,18159,18,1 +2020-04-28,Tipton,Indiana,18159,18,1 +2020-04-29,Tipton,Indiana,18159,18,1 +2020-04-30,Tipton,Indiana,18159,18,1 +2020-05-01,Tipton,Indiana,18159,20,1 +2020-05-02,Tipton,Indiana,18159,20,1 +2020-05-03,Tipton,Indiana,18159,20,1 +2020-05-04,Tipton,Indiana,18159,20,1 +2020-05-05,Tipton,Indiana,18159,20,1 +2020-05-06,Tipton,Indiana,18159,20,1 +2020-05-07,Tipton,Indiana,18159,20,1 +2020-05-08,Tipton,Indiana,18159,20,1 +2020-05-09,Tipton,Indiana,18159,21,1 +2020-05-10,Tipton,Indiana,18159,21,1 +2020-05-11,Tipton,Indiana,18159,21,1 +2020-05-12,Tipton,Indiana,18159,21,1 +2020-05-13,Tipton,Indiana,18159,21,1 +2020-05-14,Tipton,Indiana,18159,21,1 +2020-05-15,Tipton,Indiana,18159,21,1 +2020-05-16,Tipton,Indiana,18159,21,1 +2020-05-17,Tipton,Indiana,18159,21,1 +2020-05-18,Tipton,Indiana,18159,21,1 +2020-05-19,Tipton,Indiana,18159,21,1 +2020-05-20,Tipton,Indiana,18159,21,1 +2020-05-21,Tipton,Indiana,18159,21,1 +2020-05-22,Tipton,Indiana,18159,21,1 +2020-05-23,Tipton,Indiana,18159,22,1 +2020-05-24,Tipton,Indiana,18159,22,1 +2020-05-25,Tipton,Indiana,18159,22,1 +2020-05-26,Tipton,Indiana,18159,25,1 +2020-05-27,Tipton,Indiana,18159,25,2 +2020-05-28,Tipton,Indiana,18159,25,2 +2020-05-29,Tipton,Indiana,18159,26,2 +2020-05-30,Tipton,Indiana,18159,26,2 +2020-05-31,Tipton,Indiana,18159,26,2 +2020-06-01,Tipton,Indiana,18159,26,2 +2020-06-02,Tipton,Indiana,18159,26,2 +2020-06-03,Tipton,Indiana,18159,27,2 +2020-06-04,Tipton,Indiana,18159,27,2 +2020-06-05,Tipton,Indiana,18159,27,2 +2020-06-06,Tipton,Indiana,18159,27,2 +2020-06-07,Tipton,Indiana,18159,27,2 +2020-06-08,Tipton,Indiana,18159,27,2 +2020-06-09,Tipton,Indiana,18159,28,2 +2020-06-10,Tipton,Indiana,18159,28,2 +2020-06-11,Tipton,Indiana,18159,28,2 +2020-06-12,Tipton,Indiana,18159,28,2 +2020-06-13,Tipton,Indiana,18159,28,2 +2020-06-14,Tipton,Indiana,18159,29,2 +2020-06-15,Tipton,Indiana,18159,29,2 +2020-06-16,Tipton,Indiana,18159,29,2 +2020-06-17,Tipton,Indiana,18159,29,2 +2020-06-18,Tipton,Indiana,18159,29,2 +2020-06-19,Tipton,Indiana,18159,29,2 +2020-06-20,Tipton,Indiana,18159,29,2 +2020-06-21,Tipton,Indiana,18159,29,2 +2020-06-22,Tipton,Indiana,18159,29,2 +2020-06-23,Tipton,Indiana,18159,29,2 +2020-06-24,Tipton,Indiana,18159,29,2 +2020-06-25,Tipton,Indiana,18159,29,2 +2020-06-26,Tipton,Indiana,18159,30,2 +2020-06-27,Tipton,Indiana,18159,31,2 +2020-06-28,Tipton,Indiana,18159,31,2 +2020-06-29,Tipton,Indiana,18159,31,2 +2020-06-30,Tipton,Indiana,18159,31,2 +2020-07-01,Tipton,Indiana,18159,31,2 +2020-07-02,Tipton,Indiana,18159,31,2 +2020-07-03,Tipton,Indiana,18159,31,2 +2020-07-04,Tipton,Indiana,18159,31,2 +2020-07-05,Tipton,Indiana,18159,33,2 +2020-07-06,Tipton,Indiana,18159,33,2 +2020-07-07,Tipton,Indiana,18159,32,2 +2020-07-08,Tipton,Indiana,18159,32,2 +2020-07-09,Tipton,Indiana,18159,32,2 +2020-04-04,Union,Indiana,18161,2,0 +2020-04-05,Union,Indiana,18161,3,0 +2020-04-06,Union,Indiana,18161,3,0 +2020-04-07,Union,Indiana,18161,3,0 +2020-04-08,Union,Indiana,18161,5,0 +2020-04-09,Union,Indiana,18161,5,0 +2020-04-10,Union,Indiana,18161,5,0 +2020-04-11,Union,Indiana,18161,5,0 +2020-04-12,Union,Indiana,18161,5,0 +2020-04-13,Union,Indiana,18161,9,0 +2020-04-14,Union,Indiana,18161,6,0 +2020-04-15,Union,Indiana,18161,6,0 +2020-04-16,Union,Indiana,18161,6,0 +2020-04-17,Union,Indiana,18161,6,0 +2020-04-18,Union,Indiana,18161,6,0 +2020-04-19,Union,Indiana,18161,6,0 +2020-04-20,Union,Indiana,18161,6,0 +2020-04-21,Union,Indiana,18161,6,0 +2020-04-22,Union,Indiana,18161,6,0 +2020-04-23,Union,Indiana,18161,6,0 +2020-04-24,Union,Indiana,18161,6,0 +2020-04-25,Union,Indiana,18161,6,0 +2020-04-26,Union,Indiana,18161,6,0 +2020-04-27,Union,Indiana,18161,6,0 +2020-04-28,Union,Indiana,18161,8,0 +2020-04-29,Union,Indiana,18161,10,0 +2020-04-30,Union,Indiana,18161,10,0 +2020-05-01,Union,Indiana,18161,13,0 +2020-05-02,Union,Indiana,18161,13,0 +2020-05-03,Union,Indiana,18161,13,0 +2020-05-04,Union,Indiana,18161,14,0 +2020-05-05,Union,Indiana,18161,15,0 +2020-05-06,Union,Indiana,18161,16,0 +2020-05-07,Union,Indiana,18161,16,0 +2020-05-08,Union,Indiana,18161,19,0 +2020-05-09,Union,Indiana,18161,19,0 +2020-05-10,Union,Indiana,18161,19,0 +2020-05-11,Union,Indiana,18161,19,0 +2020-05-12,Union,Indiana,18161,19,0 +2020-05-13,Union,Indiana,18161,20,0 +2020-05-14,Union,Indiana,18161,20,0 +2020-05-15,Union,Indiana,18161,20,0 +2020-05-16,Union,Indiana,18161,20,0 +2020-05-17,Union,Indiana,18161,20,0 +2020-05-18,Union,Indiana,18161,20,0 +2020-05-19,Union,Indiana,18161,21,0 +2020-05-20,Union,Indiana,18161,21,0 +2020-05-21,Union,Indiana,18161,21,0 +2020-05-22,Union,Indiana,18161,21,0 +2020-05-23,Union,Indiana,18161,21,0 +2020-05-24,Union,Indiana,18161,21,0 +2020-05-25,Union,Indiana,18161,21,0 +2020-05-26,Union,Indiana,18161,21,0 +2020-05-27,Union,Indiana,18161,21,0 +2020-05-28,Union,Indiana,18161,21,0 +2020-05-29,Union,Indiana,18161,21,0 +2020-05-30,Union,Indiana,18161,22,0 +2020-05-31,Union,Indiana,18161,22,0 +2020-06-01,Union,Indiana,18161,22,0 +2020-06-02,Union,Indiana,18161,22,0 +2020-06-03,Union,Indiana,18161,22,0 +2020-06-04,Union,Indiana,18161,22,0 +2020-06-05,Union,Indiana,18161,23,0 +2020-06-06,Union,Indiana,18161,24,0 +2020-06-07,Union,Indiana,18161,26,0 +2020-06-08,Union,Indiana,18161,26,0 +2020-06-09,Union,Indiana,18161,26,0 +2020-06-10,Union,Indiana,18161,26,0 +2020-06-11,Union,Indiana,18161,26,0 +2020-06-12,Union,Indiana,18161,26,0 +2020-06-13,Union,Indiana,18161,26,0 +2020-06-14,Union,Indiana,18161,26,0 +2020-06-15,Union,Indiana,18161,26,0 +2020-06-16,Union,Indiana,18161,26,0 +2020-06-17,Union,Indiana,18161,27,0 +2020-06-18,Union,Indiana,18161,27,0 +2020-06-19,Union,Indiana,18161,27,0 +2020-06-20,Union,Indiana,18161,27,0 +2020-06-21,Union,Indiana,18161,27,0 +2020-06-22,Union,Indiana,18161,27,0 +2020-06-23,Union,Indiana,18161,27,0 +2020-06-24,Union,Indiana,18161,28,0 +2020-06-25,Union,Indiana,18161,29,0 +2020-06-26,Union,Indiana,18161,29,0 +2020-06-27,Union,Indiana,18161,29,0 +2020-06-28,Union,Indiana,18161,29,0 +2020-06-29,Union,Indiana,18161,29,0 +2020-06-30,Union,Indiana,18161,29,0 +2020-07-01,Union,Indiana,18161,29,0 +2020-07-02,Union,Indiana,18161,29,0 +2020-07-03,Union,Indiana,18161,29,0 +2020-07-04,Union,Indiana,18161,29,0 +2020-07-05,Union,Indiana,18161,29,0 +2020-07-06,Union,Indiana,18161,29,0 +2020-07-07,Union,Indiana,18161,29,0 +2020-07-08,Union,Indiana,18161,29,0 +2020-07-09,Union,Indiana,18161,30,0 +2020-03-20,Vanderburgh,Indiana,18163,1,0 +2020-03-21,Vanderburgh,Indiana,18163,1,0 +2020-03-22,Vanderburgh,Indiana,18163,1,0 +2020-03-23,Vanderburgh,Indiana,18163,1,0 +2020-03-24,Vanderburgh,Indiana,18163,1,0 +2020-03-25,Vanderburgh,Indiana,18163,1,0 +2020-03-26,Vanderburgh,Indiana,18163,4,0 +2020-03-27,Vanderburgh,Indiana,18163,6,0 +2020-03-28,Vanderburgh,Indiana,18163,10,0 +2020-03-29,Vanderburgh,Indiana,18163,17,0 +2020-03-30,Vanderburgh,Indiana,18163,17,0 +2020-03-31,Vanderburgh,Indiana,18163,18,0 +2020-04-01,Vanderburgh,Indiana,18163,18,0 +2020-04-02,Vanderburgh,Indiana,18163,23,0 +2020-04-03,Vanderburgh,Indiana,18163,33,0 +2020-04-04,Vanderburgh,Indiana,18163,35,0 +2020-04-05,Vanderburgh,Indiana,18163,37,0 +2020-04-06,Vanderburgh,Indiana,18163,40,0 +2020-04-07,Vanderburgh,Indiana,18163,41,1 +2020-04-08,Vanderburgh,Indiana,18163,41,1 +2020-04-09,Vanderburgh,Indiana,18163,49,1 +2020-04-10,Vanderburgh,Indiana,18163,53,1 +2020-04-11,Vanderburgh,Indiana,18163,53,1 +2020-04-12,Vanderburgh,Indiana,18163,56,1 +2020-04-13,Vanderburgh,Indiana,18163,57,1 +2020-04-14,Vanderburgh,Indiana,18163,60,1 +2020-04-15,Vanderburgh,Indiana,18163,65,1 +2020-04-16,Vanderburgh,Indiana,18163,71,1 +2020-04-17,Vanderburgh,Indiana,18163,76,1 +2020-04-18,Vanderburgh,Indiana,18163,80,1 +2020-04-19,Vanderburgh,Indiana,18163,85,1 +2020-04-20,Vanderburgh,Indiana,18163,87,1 +2020-04-21,Vanderburgh,Indiana,18163,88,1 +2020-04-22,Vanderburgh,Indiana,18163,96,1 +2020-04-23,Vanderburgh,Indiana,18163,104,1 +2020-04-24,Vanderburgh,Indiana,18163,104,1 +2020-04-25,Vanderburgh,Indiana,18163,113,1 +2020-04-26,Vanderburgh,Indiana,18163,117,1 +2020-04-27,Vanderburgh,Indiana,18163,119,2 +2020-04-28,Vanderburgh,Indiana,18163,126,1 +2020-04-29,Vanderburgh,Indiana,18163,131,1 +2020-04-30,Vanderburgh,Indiana,18163,135,1 +2020-05-01,Vanderburgh,Indiana,18163,143,1 +2020-05-02,Vanderburgh,Indiana,18163,147,1 +2020-05-03,Vanderburgh,Indiana,18163,151,1 +2020-05-04,Vanderburgh,Indiana,18163,150,1 +2020-05-05,Vanderburgh,Indiana,18163,153,2 +2020-05-06,Vanderburgh,Indiana,18163,163,2 +2020-05-07,Vanderburgh,Indiana,18163,169,2 +2020-05-08,Vanderburgh,Indiana,18163,175,2 +2020-05-09,Vanderburgh,Indiana,18163,182,2 +2020-05-10,Vanderburgh,Indiana,18163,185,2 +2020-05-11,Vanderburgh,Indiana,18163,189,2 +2020-05-12,Vanderburgh,Indiana,18163,195,2 +2020-05-13,Vanderburgh,Indiana,18163,195,2 +2020-05-14,Vanderburgh,Indiana,18163,196,2 +2020-05-15,Vanderburgh,Indiana,18163,203,2 +2020-05-16,Vanderburgh,Indiana,18163,203,2 +2020-05-17,Vanderburgh,Indiana,18163,209,2 +2020-05-18,Vanderburgh,Indiana,18163,222,2 +2020-05-19,Vanderburgh,Indiana,18163,226,3 +2020-05-20,Vanderburgh,Indiana,18163,227,2 +2020-05-21,Vanderburgh,Indiana,18163,231,2 +2020-05-22,Vanderburgh,Indiana,18163,233,2 +2020-05-23,Vanderburgh,Indiana,18163,243,2 +2020-05-24,Vanderburgh,Indiana,18163,245,2 +2020-05-25,Vanderburgh,Indiana,18163,251,2 +2020-05-26,Vanderburgh,Indiana,18163,251,2 +2020-05-27,Vanderburgh,Indiana,18163,256,2 +2020-05-28,Vanderburgh,Indiana,18163,262,2 +2020-05-29,Vanderburgh,Indiana,18163,268,2 +2020-05-30,Vanderburgh,Indiana,18163,269,2 +2020-05-31,Vanderburgh,Indiana,18163,277,2 +2020-06-01,Vanderburgh,Indiana,18163,285,2 +2020-06-02,Vanderburgh,Indiana,18163,287,2 +2020-06-03,Vanderburgh,Indiana,18163,293,2 +2020-06-04,Vanderburgh,Indiana,18163,292,2 +2020-06-05,Vanderburgh,Indiana,18163,294,3 +2020-06-06,Vanderburgh,Indiana,18163,302,4 +2020-06-07,Vanderburgh,Indiana,18163,304,4 +2020-06-08,Vanderburgh,Indiana,18163,306,4 +2020-06-09,Vanderburgh,Indiana,18163,311,4 +2020-06-10,Vanderburgh,Indiana,18163,316,4 +2020-06-11,Vanderburgh,Indiana,18163,319,4 +2020-06-12,Vanderburgh,Indiana,18163,324,4 +2020-06-13,Vanderburgh,Indiana,18163,326,4 +2020-06-14,Vanderburgh,Indiana,18163,329,5 +2020-06-15,Vanderburgh,Indiana,18163,333,5 +2020-06-16,Vanderburgh,Indiana,18163,332,5 +2020-06-17,Vanderburgh,Indiana,18163,338,5 +2020-06-18,Vanderburgh,Indiana,18163,339,5 +2020-06-19,Vanderburgh,Indiana,18163,340,6 +2020-06-20,Vanderburgh,Indiana,18163,344,6 +2020-06-21,Vanderburgh,Indiana,18163,345,6 +2020-06-22,Vanderburgh,Indiana,18163,346,6 +2020-06-23,Vanderburgh,Indiana,18163,350,6 +2020-06-24,Vanderburgh,Indiana,18163,362,6 +2020-06-25,Vanderburgh,Indiana,18163,372,6 +2020-06-26,Vanderburgh,Indiana,18163,379,6 +2020-06-27,Vanderburgh,Indiana,18163,391,6 +2020-06-28,Vanderburgh,Indiana,18163,403,6 +2020-06-29,Vanderburgh,Indiana,18163,410,6 +2020-06-30,Vanderburgh,Indiana,18163,416,6 +2020-07-01,Vanderburgh,Indiana,18163,433,6 +2020-07-02,Vanderburgh,Indiana,18163,460,6 +2020-07-03,Vanderburgh,Indiana,18163,483,6 +2020-07-04,Vanderburgh,Indiana,18163,505,6 +2020-07-05,Vanderburgh,Indiana,18163,525,6 +2020-07-06,Vanderburgh,Indiana,18163,551,6 +2020-07-07,Vanderburgh,Indiana,18163,573,6 +2020-07-08,Vanderburgh,Indiana,18163,590,6 +2020-07-09,Vanderburgh,Indiana,18163,632,6 +2020-03-28,Vermillion,Indiana,18165,1,0 +2020-03-29,Vermillion,Indiana,18165,1,0 +2020-03-30,Vermillion,Indiana,18165,1,0 +2020-03-31,Vermillion,Indiana,18165,1,0 +2020-04-01,Vermillion,Indiana,18165,1,0 +2020-04-02,Vermillion,Indiana,18165,1,0 +2020-04-03,Vermillion,Indiana,18165,2,0 +2020-04-04,Vermillion,Indiana,18165,2,0 +2020-04-05,Vermillion,Indiana,18165,2,0 +2020-04-06,Vermillion,Indiana,18165,2,0 +2020-04-07,Vermillion,Indiana,18165,2,0 +2020-04-08,Vermillion,Indiana,18165,2,0 +2020-04-09,Vermillion,Indiana,18165,3,0 +2020-04-10,Vermillion,Indiana,18165,3,0 +2020-04-11,Vermillion,Indiana,18165,3,0 +2020-04-12,Vermillion,Indiana,18165,3,0 +2020-04-13,Vermillion,Indiana,18165,3,0 +2020-04-14,Vermillion,Indiana,18165,3,0 +2020-04-15,Vermillion,Indiana,18165,4,0 +2020-04-16,Vermillion,Indiana,18165,4,0 +2020-04-17,Vermillion,Indiana,18165,5,0 +2020-04-18,Vermillion,Indiana,18165,5,0 +2020-04-19,Vermillion,Indiana,18165,6,0 +2020-04-20,Vermillion,Indiana,18165,6,0 +2020-04-21,Vermillion,Indiana,18165,6,0 +2020-04-22,Vermillion,Indiana,18165,7,0 +2020-04-23,Vermillion,Indiana,18165,7,0 +2020-04-24,Vermillion,Indiana,18165,7,0 +2020-04-25,Vermillion,Indiana,18165,7,0 +2020-04-26,Vermillion,Indiana,18165,7,0 +2020-04-27,Vermillion,Indiana,18165,7,0 +2020-04-28,Vermillion,Indiana,18165,8,0 +2020-04-29,Vermillion,Indiana,18165,8,0 +2020-04-30,Vermillion,Indiana,18165,8,0 +2020-05-01,Vermillion,Indiana,18165,8,0 +2020-05-02,Vermillion,Indiana,18165,8,0 +2020-05-03,Vermillion,Indiana,18165,8,0 +2020-05-04,Vermillion,Indiana,18165,8,0 +2020-05-05,Vermillion,Indiana,18165,8,0 +2020-05-06,Vermillion,Indiana,18165,8,0 +2020-05-07,Vermillion,Indiana,18165,8,0 +2020-05-08,Vermillion,Indiana,18165,8,0 +2020-05-09,Vermillion,Indiana,18165,8,0 +2020-05-10,Vermillion,Indiana,18165,8,0 +2020-05-11,Vermillion,Indiana,18165,8,0 +2020-05-12,Vermillion,Indiana,18165,8,0 +2020-05-13,Vermillion,Indiana,18165,8,0 +2020-05-14,Vermillion,Indiana,18165,8,0 +2020-05-15,Vermillion,Indiana,18165,8,0 +2020-05-16,Vermillion,Indiana,18165,8,0 +2020-05-17,Vermillion,Indiana,18165,8,0 +2020-05-18,Vermillion,Indiana,18165,8,0 +2020-05-19,Vermillion,Indiana,18165,8,0 +2020-05-20,Vermillion,Indiana,18165,9,0 +2020-05-21,Vermillion,Indiana,18165,9,0 +2020-05-22,Vermillion,Indiana,18165,9,0 +2020-05-23,Vermillion,Indiana,18165,9,0 +2020-05-24,Vermillion,Indiana,18165,10,0 +2020-05-25,Vermillion,Indiana,18165,10,0 +2020-05-26,Vermillion,Indiana,18165,10,0 +2020-05-27,Vermillion,Indiana,18165,11,0 +2020-05-28,Vermillion,Indiana,18165,11,0 +2020-05-29,Vermillion,Indiana,18165,11,0 +2020-05-30,Vermillion,Indiana,18165,11,0 +2020-05-31,Vermillion,Indiana,18165,11,0 +2020-06-01,Vermillion,Indiana,18165,11,0 +2020-06-02,Vermillion,Indiana,18165,11,0 +2020-06-03,Vermillion,Indiana,18165,11,0 +2020-06-04,Vermillion,Indiana,18165,11,0 +2020-06-05,Vermillion,Indiana,18165,11,0 +2020-06-06,Vermillion,Indiana,18165,11,0 +2020-06-07,Vermillion,Indiana,18165,11,0 +2020-06-08,Vermillion,Indiana,18165,11,0 +2020-06-09,Vermillion,Indiana,18165,11,0 +2020-06-10,Vermillion,Indiana,18165,11,0 +2020-06-11,Vermillion,Indiana,18165,11,0 +2020-06-12,Vermillion,Indiana,18165,12,0 +2020-06-13,Vermillion,Indiana,18165,12,0 +2020-06-14,Vermillion,Indiana,18165,12,0 +2020-06-15,Vermillion,Indiana,18165,12,0 +2020-06-16,Vermillion,Indiana,18165,13,0 +2020-06-17,Vermillion,Indiana,18165,13,0 +2020-06-18,Vermillion,Indiana,18165,14,0 +2020-06-19,Vermillion,Indiana,18165,14,0 +2020-06-20,Vermillion,Indiana,18165,14,0 +2020-06-21,Vermillion,Indiana,18165,14,0 +2020-06-22,Vermillion,Indiana,18165,14,0 +2020-06-23,Vermillion,Indiana,18165,14,0 +2020-06-24,Vermillion,Indiana,18165,14,0 +2020-06-25,Vermillion,Indiana,18165,14,0 +2020-06-26,Vermillion,Indiana,18165,14,0 +2020-06-27,Vermillion,Indiana,18165,14,0 +2020-06-28,Vermillion,Indiana,18165,14,0 +2020-06-29,Vermillion,Indiana,18165,14,0 +2020-06-30,Vermillion,Indiana,18165,14,0 +2020-07-01,Vermillion,Indiana,18165,14,0 +2020-07-02,Vermillion,Indiana,18165,14,0 +2020-07-03,Vermillion,Indiana,18165,14,0 +2020-07-04,Vermillion,Indiana,18165,15,0 +2020-07-05,Vermillion,Indiana,18165,15,0 +2020-07-06,Vermillion,Indiana,18165,15,0 +2020-07-07,Vermillion,Indiana,18165,15,0 +2020-07-08,Vermillion,Indiana,18165,15,0 +2020-07-09,Vermillion,Indiana,18165,18,0 +2020-03-20,Vigo,Indiana,18167,1,0 +2020-03-21,Vigo,Indiana,18167,2,0 +2020-03-22,Vigo,Indiana,18167,2,0 +2020-03-23,Vigo,Indiana,18167,2,0 +2020-03-24,Vigo,Indiana,18167,3,0 +2020-03-25,Vigo,Indiana,18167,3,0 +2020-03-26,Vigo,Indiana,18167,3,0 +2020-03-27,Vigo,Indiana,18167,4,1 +2020-03-28,Vigo,Indiana,18167,4,1 +2020-03-29,Vigo,Indiana,18167,7,1 +2020-03-30,Vigo,Indiana,18167,7,1 +2020-03-31,Vigo,Indiana,18167,10,2 +2020-04-01,Vigo,Indiana,18167,10,3 +2020-04-02,Vigo,Indiana,18167,11,3 +2020-04-03,Vigo,Indiana,18167,10,3 +2020-04-04,Vigo,Indiana,18167,11,3 +2020-04-05,Vigo,Indiana,18167,19,3 +2020-04-06,Vigo,Indiana,18167,26,3 +2020-04-07,Vigo,Indiana,18167,26,3 +2020-04-08,Vigo,Indiana,18167,33,3 +2020-04-09,Vigo,Indiana,18167,37,3 +2020-04-10,Vigo,Indiana,18167,41,3 +2020-04-11,Vigo,Indiana,18167,42,3 +2020-04-12,Vigo,Indiana,18167,43,3 +2020-04-13,Vigo,Indiana,18167,43,4 +2020-04-14,Vigo,Indiana,18167,43,4 +2020-04-15,Vigo,Indiana,18167,44,4 +2020-04-16,Vigo,Indiana,18167,47,4 +2020-04-17,Vigo,Indiana,18167,49,4 +2020-04-18,Vigo,Indiana,18167,52,5 +2020-04-19,Vigo,Indiana,18167,58,6 +2020-04-20,Vigo,Indiana,18167,59,6 +2020-04-21,Vigo,Indiana,18167,61,6 +2020-04-22,Vigo,Indiana,18167,61,6 +2020-04-23,Vigo,Indiana,18167,61,6 +2020-04-24,Vigo,Indiana,18167,63,6 +2020-04-25,Vigo,Indiana,18167,63,6 +2020-04-26,Vigo,Indiana,18167,63,6 +2020-04-27,Vigo,Indiana,18167,62,5 +2020-04-28,Vigo,Indiana,18167,62,5 +2020-04-29,Vigo,Indiana,18167,62,6 +2020-04-30,Vigo,Indiana,18167,64,6 +2020-05-01,Vigo,Indiana,18167,64,6 +2020-05-02,Vigo,Indiana,18167,67,6 +2020-05-03,Vigo,Indiana,18167,67,6 +2020-05-04,Vigo,Indiana,18167,69,6 +2020-05-05,Vigo,Indiana,18167,71,6 +2020-05-06,Vigo,Indiana,18167,73,6 +2020-05-07,Vigo,Indiana,18167,75,6 +2020-05-08,Vigo,Indiana,18167,74,6 +2020-05-09,Vigo,Indiana,18167,78,7 +2020-05-10,Vigo,Indiana,18167,81,7 +2020-05-11,Vigo,Indiana,18167,84,7 +2020-05-12,Vigo,Indiana,18167,87,7 +2020-05-13,Vigo,Indiana,18167,87,7 +2020-05-14,Vigo,Indiana,18167,99,7 +2020-05-15,Vigo,Indiana,18167,104,7 +2020-05-16,Vigo,Indiana,18167,107,7 +2020-05-17,Vigo,Indiana,18167,114,7 +2020-05-18,Vigo,Indiana,18167,119,7 +2020-05-19,Vigo,Indiana,18167,120,7 +2020-05-20,Vigo,Indiana,18167,127,8 +2020-05-21,Vigo,Indiana,18167,131,8 +2020-05-22,Vigo,Indiana,18167,132,8 +2020-05-23,Vigo,Indiana,18167,136,8 +2020-05-24,Vigo,Indiana,18167,142,8 +2020-05-25,Vigo,Indiana,18167,148,8 +2020-05-26,Vigo,Indiana,18167,148,8 +2020-05-27,Vigo,Indiana,18167,151,8 +2020-05-28,Vigo,Indiana,18167,154,9 +2020-05-29,Vigo,Indiana,18167,165,9 +2020-05-30,Vigo,Indiana,18167,169,9 +2020-05-31,Vigo,Indiana,18167,170,9 +2020-06-01,Vigo,Indiana,18167,170,9 +2020-06-02,Vigo,Indiana,18167,172,9 +2020-06-03,Vigo,Indiana,18167,176,9 +2020-06-04,Vigo,Indiana,18167,179,9 +2020-06-05,Vigo,Indiana,18167,183,9 +2020-06-06,Vigo,Indiana,18167,186,9 +2020-06-07,Vigo,Indiana,18167,195,9 +2020-06-08,Vigo,Indiana,18167,197,9 +2020-06-09,Vigo,Indiana,18167,198,9 +2020-06-10,Vigo,Indiana,18167,198,9 +2020-06-11,Vigo,Indiana,18167,199,9 +2020-06-12,Vigo,Indiana,18167,199,9 +2020-06-13,Vigo,Indiana,18167,199,9 +2020-06-14,Vigo,Indiana,18167,201,9 +2020-06-15,Vigo,Indiana,18167,201,9 +2020-06-16,Vigo,Indiana,18167,202,9 +2020-06-17,Vigo,Indiana,18167,203,9 +2020-06-18,Vigo,Indiana,18167,204,9 +2020-06-19,Vigo,Indiana,18167,208,9 +2020-06-20,Vigo,Indiana,18167,209,9 +2020-06-21,Vigo,Indiana,18167,211,9 +2020-06-22,Vigo,Indiana,18167,213,9 +2020-06-23,Vigo,Indiana,18167,213,9 +2020-06-24,Vigo,Indiana,18167,215,9 +2020-06-25,Vigo,Indiana,18167,215,9 +2020-06-26,Vigo,Indiana,18167,217,9 +2020-06-27,Vigo,Indiana,18167,220,9 +2020-06-28,Vigo,Indiana,18167,219,9 +2020-06-29,Vigo,Indiana,18167,221,9 +2020-06-30,Vigo,Indiana,18167,223,9 +2020-07-01,Vigo,Indiana,18167,225,9 +2020-07-02,Vigo,Indiana,18167,228,9 +2020-07-03,Vigo,Indiana,18167,229,9 +2020-07-04,Vigo,Indiana,18167,232,9 +2020-07-05,Vigo,Indiana,18167,235,9 +2020-07-06,Vigo,Indiana,18167,236,9 +2020-07-07,Vigo,Indiana,18167,237,9 +2020-07-08,Vigo,Indiana,18167,239,9 +2020-07-09,Vigo,Indiana,18167,241,9 +2020-03-28,Wabash,Indiana,18169,1,0 +2020-03-29,Wabash,Indiana,18169,1,0 +2020-03-30,Wabash,Indiana,18169,1,0 +2020-03-31,Wabash,Indiana,18169,1,0 +2020-04-01,Wabash,Indiana,18169,1,0 +2020-04-02,Wabash,Indiana,18169,1,0 +2020-04-03,Wabash,Indiana,18169,1,0 +2020-04-04,Wabash,Indiana,18169,1,0 +2020-04-05,Wabash,Indiana,18169,1,0 +2020-04-06,Wabash,Indiana,18169,3,0 +2020-04-07,Wabash,Indiana,18169,5,0 +2020-04-08,Wabash,Indiana,18169,5,0 +2020-04-09,Wabash,Indiana,18169,6,0 +2020-04-10,Wabash,Indiana,18169,7,0 +2020-04-11,Wabash,Indiana,18169,7,0 +2020-04-12,Wabash,Indiana,18169,7,0 +2020-04-13,Wabash,Indiana,18169,7,0 +2020-04-14,Wabash,Indiana,18169,7,0 +2020-04-15,Wabash,Indiana,18169,7,0 +2020-04-16,Wabash,Indiana,18169,8,0 +2020-04-17,Wabash,Indiana,18169,9,0 +2020-04-18,Wabash,Indiana,18169,9,0 +2020-04-19,Wabash,Indiana,18169,9,0 +2020-04-20,Wabash,Indiana,18169,10,0 +2020-04-21,Wabash,Indiana,18169,10,0 +2020-04-22,Wabash,Indiana,18169,10,1 +2020-04-23,Wabash,Indiana,18169,12,1 +2020-04-24,Wabash,Indiana,18169,12,1 +2020-04-25,Wabash,Indiana,18169,12,1 +2020-04-26,Wabash,Indiana,18169,19,1 +2020-04-27,Wabash,Indiana,18169,22,1 +2020-04-28,Wabash,Indiana,18169,28,1 +2020-04-29,Wabash,Indiana,18169,38,1 +2020-04-30,Wabash,Indiana,18169,42,1 +2020-05-01,Wabash,Indiana,18169,51,1 +2020-05-02,Wabash,Indiana,18169,55,1 +2020-05-03,Wabash,Indiana,18169,60,2 +2020-05-04,Wabash,Indiana,18169,63,2 +2020-05-05,Wabash,Indiana,18169,63,2 +2020-05-06,Wabash,Indiana,18169,63,2 +2020-05-07,Wabash,Indiana,18169,64,2 +2020-05-08,Wabash,Indiana,18169,64,2 +2020-05-09,Wabash,Indiana,18169,64,2 +2020-05-10,Wabash,Indiana,18169,64,2 +2020-05-11,Wabash,Indiana,18169,64,2 +2020-05-12,Wabash,Indiana,18169,67,2 +2020-05-13,Wabash,Indiana,18169,67,2 +2020-05-14,Wabash,Indiana,18169,68,2 +2020-05-15,Wabash,Indiana,18169,69,2 +2020-05-16,Wabash,Indiana,18169,71,2 +2020-05-17,Wabash,Indiana,18169,71,2 +2020-05-18,Wabash,Indiana,18169,71,2 +2020-05-19,Wabash,Indiana,18169,71,2 +2020-05-20,Wabash,Indiana,18169,71,2 +2020-05-21,Wabash,Indiana,18169,71,2 +2020-05-22,Wabash,Indiana,18169,71,2 +2020-05-23,Wabash,Indiana,18169,72,2 +2020-05-24,Wabash,Indiana,18169,72,2 +2020-05-25,Wabash,Indiana,18169,72,2 +2020-05-26,Wabash,Indiana,18169,72,2 +2020-05-27,Wabash,Indiana,18169,73,2 +2020-05-28,Wabash,Indiana,18169,74,2 +2020-05-29,Wabash,Indiana,18169,76,2 +2020-05-30,Wabash,Indiana,18169,77,2 +2020-05-31,Wabash,Indiana,18169,78,2 +2020-06-01,Wabash,Indiana,18169,79,2 +2020-06-02,Wabash,Indiana,18169,79,2 +2020-06-03,Wabash,Indiana,18169,80,2 +2020-06-04,Wabash,Indiana,18169,80,2 +2020-06-05,Wabash,Indiana,18169,81,2 +2020-06-06,Wabash,Indiana,18169,83,2 +2020-06-07,Wabash,Indiana,18169,83,2 +2020-06-08,Wabash,Indiana,18169,84,2 +2020-06-09,Wabash,Indiana,18169,87,2 +2020-06-10,Wabash,Indiana,18169,88,2 +2020-06-11,Wabash,Indiana,18169,89,2 +2020-06-12,Wabash,Indiana,18169,89,2 +2020-06-13,Wabash,Indiana,18169,89,2 +2020-06-14,Wabash,Indiana,18169,89,2 +2020-06-15,Wabash,Indiana,18169,89,2 +2020-06-16,Wabash,Indiana,18169,89,2 +2020-06-17,Wabash,Indiana,18169,90,2 +2020-06-18,Wabash,Indiana,18169,91,2 +2020-06-19,Wabash,Indiana,18169,91,2 +2020-06-20,Wabash,Indiana,18169,94,2 +2020-06-21,Wabash,Indiana,18169,95,2 +2020-06-22,Wabash,Indiana,18169,97,2 +2020-06-23,Wabash,Indiana,18169,97,2 +2020-06-24,Wabash,Indiana,18169,98,2 +2020-06-25,Wabash,Indiana,18169,101,2 +2020-06-26,Wabash,Indiana,18169,103,2 +2020-06-27,Wabash,Indiana,18169,107,2 +2020-06-28,Wabash,Indiana,18169,108,2 +2020-06-29,Wabash,Indiana,18169,108,2 +2020-06-30,Wabash,Indiana,18169,109,2 +2020-07-01,Wabash,Indiana,18169,109,2 +2020-07-02,Wabash,Indiana,18169,111,2 +2020-07-03,Wabash,Indiana,18169,112,2 +2020-07-04,Wabash,Indiana,18169,114,2 +2020-07-05,Wabash,Indiana,18169,114,2 +2020-07-06,Wabash,Indiana,18169,114,2 +2020-07-07,Wabash,Indiana,18169,115,2 +2020-07-08,Wabash,Indiana,18169,117,2 +2020-07-09,Wabash,Indiana,18169,118,2 +2020-03-26,Warren,Indiana,18171,1,0 +2020-03-27,Warren,Indiana,18171,1,0 +2020-03-28,Warren,Indiana,18171,1,0 +2020-03-29,Warren,Indiana,18171,2,0 +2020-03-30,Warren,Indiana,18171,2,0 +2020-03-31,Warren,Indiana,18171,2,1 +2020-04-01,Warren,Indiana,18171,2,1 +2020-04-02,Warren,Indiana,18171,2,1 +2020-04-03,Warren,Indiana,18171,2,1 +2020-04-04,Warren,Indiana,18171,2,1 +2020-04-05,Warren,Indiana,18171,2,1 +2020-04-06,Warren,Indiana,18171,2,1 +2020-04-07,Warren,Indiana,18171,2,1 +2020-04-08,Warren,Indiana,18171,2,1 +2020-04-09,Warren,Indiana,18171,2,1 +2020-04-10,Warren,Indiana,18171,2,1 +2020-04-11,Warren,Indiana,18171,2,1 +2020-04-12,Warren,Indiana,18171,3,1 +2020-04-13,Warren,Indiana,18171,3,1 +2020-04-14,Warren,Indiana,18171,3,1 +2020-04-15,Warren,Indiana,18171,3,1 +2020-04-16,Warren,Indiana,18171,5,1 +2020-04-17,Warren,Indiana,18171,5,1 +2020-04-18,Warren,Indiana,18171,6,1 +2020-04-19,Warren,Indiana,18171,7,1 +2020-04-20,Warren,Indiana,18171,7,1 +2020-04-21,Warren,Indiana,18171,7,1 +2020-04-22,Warren,Indiana,18171,7,1 +2020-04-23,Warren,Indiana,18171,8,1 +2020-04-24,Warren,Indiana,18171,11,1 +2020-04-25,Warren,Indiana,18171,11,1 +2020-04-26,Warren,Indiana,18171,11,1 +2020-04-27,Warren,Indiana,18171,11,1 +2020-04-28,Warren,Indiana,18171,11,1 +2020-04-29,Warren,Indiana,18171,11,1 +2020-04-30,Warren,Indiana,18171,11,1 +2020-05-01,Warren,Indiana,18171,11,1 +2020-05-02,Warren,Indiana,18171,12,1 +2020-05-03,Warren,Indiana,18171,12,1 +2020-05-04,Warren,Indiana,18171,12,1 +2020-05-05,Warren,Indiana,18171,13,1 +2020-05-06,Warren,Indiana,18171,13,1 +2020-05-07,Warren,Indiana,18171,13,1 +2020-05-08,Warren,Indiana,18171,13,1 +2020-05-09,Warren,Indiana,18171,13,1 +2020-05-10,Warren,Indiana,18171,13,1 +2020-05-11,Warren,Indiana,18171,13,1 +2020-05-12,Warren,Indiana,18171,13,1 +2020-05-13,Warren,Indiana,18171,13,1 +2020-05-14,Warren,Indiana,18171,13,1 +2020-05-15,Warren,Indiana,18171,13,1 +2020-05-16,Warren,Indiana,18171,13,1 +2020-05-17,Warren,Indiana,18171,13,1 +2020-05-18,Warren,Indiana,18171,13,1 +2020-05-19,Warren,Indiana,18171,13,1 +2020-05-20,Warren,Indiana,18171,13,1 +2020-05-21,Warren,Indiana,18171,13,1 +2020-05-22,Warren,Indiana,18171,13,1 +2020-05-23,Warren,Indiana,18171,13,1 +2020-05-24,Warren,Indiana,18171,13,1 +2020-05-25,Warren,Indiana,18171,13,1 +2020-05-26,Warren,Indiana,18171,13,1 +2020-05-27,Warren,Indiana,18171,13,1 +2020-05-28,Warren,Indiana,18171,13,1 +2020-05-29,Warren,Indiana,18171,13,1 +2020-05-30,Warren,Indiana,18171,13,1 +2020-05-31,Warren,Indiana,18171,13,1 +2020-06-01,Warren,Indiana,18171,13,1 +2020-06-02,Warren,Indiana,18171,13,1 +2020-06-03,Warren,Indiana,18171,13,1 +2020-06-04,Warren,Indiana,18171,13,1 +2020-06-05,Warren,Indiana,18171,14,1 +2020-06-06,Warren,Indiana,18171,14,1 +2020-06-07,Warren,Indiana,18171,14,1 +2020-06-08,Warren,Indiana,18171,14,1 +2020-06-09,Warren,Indiana,18171,14,1 +2020-06-10,Warren,Indiana,18171,14,1 +2020-06-11,Warren,Indiana,18171,15,1 +2020-06-12,Warren,Indiana,18171,15,1 +2020-06-13,Warren,Indiana,18171,15,1 +2020-06-14,Warren,Indiana,18171,15,1 +2020-06-15,Warren,Indiana,18171,15,1 +2020-06-16,Warren,Indiana,18171,15,1 +2020-06-17,Warren,Indiana,18171,16,1 +2020-06-18,Warren,Indiana,18171,15,1 +2020-06-19,Warren,Indiana,18171,15,1 +2020-06-20,Warren,Indiana,18171,15,1 +2020-06-21,Warren,Indiana,18171,15,1 +2020-06-22,Warren,Indiana,18171,15,1 +2020-06-23,Warren,Indiana,18171,15,1 +2020-06-24,Warren,Indiana,18171,15,1 +2020-06-25,Warren,Indiana,18171,15,1 +2020-06-26,Warren,Indiana,18171,15,1 +2020-06-27,Warren,Indiana,18171,15,1 +2020-06-28,Warren,Indiana,18171,15,1 +2020-06-29,Warren,Indiana,18171,15,1 +2020-06-30,Warren,Indiana,18171,15,1 +2020-07-01,Warren,Indiana,18171,15,1 +2020-07-02,Warren,Indiana,18171,15,1 +2020-07-03,Warren,Indiana,18171,15,1 +2020-07-04,Warren,Indiana,18171,15,1 +2020-07-05,Warren,Indiana,18171,15,1 +2020-07-06,Warren,Indiana,18171,15,1 +2020-07-07,Warren,Indiana,18171,15,1 +2020-07-08,Warren,Indiana,18171,15,1 +2020-07-09,Warren,Indiana,18171,16,1 +2020-03-24,Warrick,Indiana,18173,1,0 +2020-03-25,Warrick,Indiana,18173,1,0 +2020-03-26,Warrick,Indiana,18173,3,0 +2020-03-27,Warrick,Indiana,18173,3,0 +2020-03-28,Warrick,Indiana,18173,6,0 +2020-03-29,Warrick,Indiana,18173,8,0 +2020-03-30,Warrick,Indiana,18173,8,0 +2020-03-31,Warrick,Indiana,18173,8,0 +2020-04-01,Warrick,Indiana,18173,8,0 +2020-04-02,Warrick,Indiana,18173,8,0 +2020-04-03,Warrick,Indiana,18173,10,0 +2020-04-04,Warrick,Indiana,18173,12,0 +2020-04-05,Warrick,Indiana,18173,13,0 +2020-04-06,Warrick,Indiana,18173,19,0 +2020-04-07,Warrick,Indiana,18173,23,0 +2020-04-08,Warrick,Indiana,18173,26,0 +2020-04-09,Warrick,Indiana,18173,30,0 +2020-04-10,Warrick,Indiana,18173,33,2 +2020-04-11,Warrick,Indiana,18173,34,2 +2020-04-12,Warrick,Indiana,18173,36,2 +2020-04-13,Warrick,Indiana,18173,38,2 +2020-04-14,Warrick,Indiana,18173,39,2 +2020-04-15,Warrick,Indiana,18173,42,4 +2020-04-16,Warrick,Indiana,18173,52,5 +2020-04-17,Warrick,Indiana,18173,54,5 +2020-04-18,Warrick,Indiana,18173,56,5 +2020-04-19,Warrick,Indiana,18173,59,5 +2020-04-20,Warrick,Indiana,18173,60,5 +2020-04-21,Warrick,Indiana,18173,70,6 +2020-04-22,Warrick,Indiana,18173,69,9 +2020-04-23,Warrick,Indiana,18173,78,10 +2020-04-24,Warrick,Indiana,18173,79,12 +2020-04-25,Warrick,Indiana,18173,81,13 +2020-04-26,Warrick,Indiana,18173,83,13 +2020-04-27,Warrick,Indiana,18173,83,13 +2020-04-28,Warrick,Indiana,18173,84,14 +2020-04-29,Warrick,Indiana,18173,88,14 +2020-04-30,Warrick,Indiana,18173,96,14 +2020-05-01,Warrick,Indiana,18173,94,15 +2020-05-02,Warrick,Indiana,18173,101,16 +2020-05-03,Warrick,Indiana,18173,101,16 +2020-05-04,Warrick,Indiana,18173,103,16 +2020-05-05,Warrick,Indiana,18173,106,18 +2020-05-06,Warrick,Indiana,18173,110,18 +2020-05-07,Warrick,Indiana,18173,116,19 +2020-05-08,Warrick,Indiana,18173,119,19 +2020-05-09,Warrick,Indiana,18173,121,20 +2020-05-10,Warrick,Indiana,18173,123,20 +2020-05-11,Warrick,Indiana,18173,123,20 +2020-05-12,Warrick,Indiana,18173,129,21 +2020-05-13,Warrick,Indiana,18173,134,21 +2020-05-14,Warrick,Indiana,18173,141,22 +2020-05-15,Warrick,Indiana,18173,146,24 +2020-05-16,Warrick,Indiana,18173,149,25 +2020-05-17,Warrick,Indiana,18173,151,25 +2020-05-18,Warrick,Indiana,18173,152,25 +2020-05-19,Warrick,Indiana,18173,152,26 +2020-05-20,Warrick,Indiana,18173,155,27 +2020-05-21,Warrick,Indiana,18173,158,27 +2020-05-22,Warrick,Indiana,18173,159,27 +2020-05-23,Warrick,Indiana,18173,164,27 +2020-05-24,Warrick,Indiana,18173,165,27 +2020-05-25,Warrick,Indiana,18173,165,27 +2020-05-26,Warrick,Indiana,18173,165,27 +2020-05-27,Warrick,Indiana,18173,166,29 +2020-05-28,Warrick,Indiana,18173,166,29 +2020-05-29,Warrick,Indiana,18173,167,29 +2020-05-30,Warrick,Indiana,18173,167,29 +2020-05-31,Warrick,Indiana,18173,167,29 +2020-06-01,Warrick,Indiana,18173,167,29 +2020-06-02,Warrick,Indiana,18173,167,29 +2020-06-03,Warrick,Indiana,18173,168,29 +2020-06-04,Warrick,Indiana,18173,168,30 +2020-06-05,Warrick,Indiana,18173,168,30 +2020-06-06,Warrick,Indiana,18173,168,30 +2020-06-07,Warrick,Indiana,18173,168,30 +2020-06-08,Warrick,Indiana,18173,168,30 +2020-06-09,Warrick,Indiana,18173,169,30 +2020-06-10,Warrick,Indiana,18173,172,31 +2020-06-11,Warrick,Indiana,18173,172,31 +2020-06-12,Warrick,Indiana,18173,173,31 +2020-06-13,Warrick,Indiana,18173,174,31 +2020-06-14,Warrick,Indiana,18173,175,31 +2020-06-15,Warrick,Indiana,18173,177,31 +2020-06-16,Warrick,Indiana,18173,178,31 +2020-06-17,Warrick,Indiana,18173,178,31 +2020-06-18,Warrick,Indiana,18173,180,31 +2020-06-19,Warrick,Indiana,18173,180,31 +2020-06-20,Warrick,Indiana,18173,181,31 +2020-06-21,Warrick,Indiana,18173,182,31 +2020-06-22,Warrick,Indiana,18173,183,31 +2020-06-23,Warrick,Indiana,18173,184,31 +2020-06-24,Warrick,Indiana,18173,184,31 +2020-06-25,Warrick,Indiana,18173,184,31 +2020-06-26,Warrick,Indiana,18173,185,31 +2020-06-27,Warrick,Indiana,18173,187,31 +2020-06-28,Warrick,Indiana,18173,192,31 +2020-06-29,Warrick,Indiana,18173,196,31 +2020-06-30,Warrick,Indiana,18173,198,31 +2020-07-01,Warrick,Indiana,18173,203,31 +2020-07-02,Warrick,Indiana,18173,209,31 +2020-07-03,Warrick,Indiana,18173,212,31 +2020-07-04,Warrick,Indiana,18173,214,31 +2020-07-05,Warrick,Indiana,18173,216,31 +2020-07-06,Warrick,Indiana,18173,220,31 +2020-07-07,Warrick,Indiana,18173,223,31 +2020-07-08,Warrick,Indiana,18173,229,31 +2020-07-09,Warrick,Indiana,18173,234,31 +2020-03-21,Washington,Indiana,18175,1,0 +2020-03-22,Washington,Indiana,18175,2,0 +2020-03-23,Washington,Indiana,18175,2,0 +2020-03-24,Washington,Indiana,18175,2,0 +2020-03-25,Washington,Indiana,18175,2,0 +2020-03-26,Washington,Indiana,18175,3,0 +2020-03-27,Washington,Indiana,18175,4,0 +2020-03-28,Washington,Indiana,18175,4,0 +2020-03-29,Washington,Indiana,18175,5,0 +2020-03-30,Washington,Indiana,18175,6,0 +2020-03-31,Washington,Indiana,18175,6,0 +2020-04-01,Washington,Indiana,18175,9,0 +2020-04-02,Washington,Indiana,18175,12,0 +2020-04-03,Washington,Indiana,18175,14,0 +2020-04-04,Washington,Indiana,18175,16,0 +2020-04-05,Washington,Indiana,18175,18,0 +2020-04-06,Washington,Indiana,18175,18,0 +2020-04-07,Washington,Indiana,18175,20,0 +2020-04-08,Washington,Indiana,18175,21,0 +2020-04-09,Washington,Indiana,18175,23,0 +2020-04-10,Washington,Indiana,18175,23,0 +2020-04-11,Washington,Indiana,18175,23,0 +2020-04-12,Washington,Indiana,18175,25,0 +2020-04-13,Washington,Indiana,18175,26,0 +2020-04-14,Washington,Indiana,18175,26,0 +2020-04-15,Washington,Indiana,18175,27,0 +2020-04-16,Washington,Indiana,18175,28,0 +2020-04-17,Washington,Indiana,18175,27,0 +2020-04-18,Washington,Indiana,18175,28,0 +2020-04-19,Washington,Indiana,18175,29,0 +2020-04-20,Washington,Indiana,18175,31,0 +2020-04-21,Washington,Indiana,18175,31,0 +2020-04-22,Washington,Indiana,18175,31,0 +2020-04-23,Washington,Indiana,18175,33,0 +2020-04-24,Washington,Indiana,18175,36,0 +2020-04-25,Washington,Indiana,18175,40,0 +2020-04-26,Washington,Indiana,18175,40,0 +2020-04-27,Washington,Indiana,18175,40,0 +2020-04-28,Washington,Indiana,18175,41,0 +2020-04-29,Washington,Indiana,18175,41,0 +2020-04-30,Washington,Indiana,18175,43,0 +2020-05-01,Washington,Indiana,18175,44,0 +2020-05-02,Washington,Indiana,18175,44,0 +2020-05-03,Washington,Indiana,18175,45,0 +2020-05-04,Washington,Indiana,18175,45,0 +2020-05-05,Washington,Indiana,18175,45,0 +2020-05-06,Washington,Indiana,18175,45,1 +2020-05-07,Washington,Indiana,18175,45,1 +2020-05-08,Washington,Indiana,18175,45,1 +2020-05-09,Washington,Indiana,18175,48,1 +2020-05-10,Washington,Indiana,18175,48,1 +2020-05-11,Washington,Indiana,18175,48,1 +2020-05-12,Washington,Indiana,18175,48,1 +2020-05-13,Washington,Indiana,18175,49,1 +2020-05-14,Washington,Indiana,18175,50,1 +2020-05-15,Washington,Indiana,18175,50,1 +2020-05-16,Washington,Indiana,18175,50,1 +2020-05-17,Washington,Indiana,18175,50,1 +2020-05-18,Washington,Indiana,18175,50,1 +2020-05-19,Washington,Indiana,18175,50,1 +2020-05-20,Washington,Indiana,18175,52,1 +2020-05-21,Washington,Indiana,18175,52,1 +2020-05-22,Washington,Indiana,18175,52,1 +2020-05-23,Washington,Indiana,18175,52,1 +2020-05-24,Washington,Indiana,18175,52,1 +2020-05-25,Washington,Indiana,18175,52,1 +2020-05-26,Washington,Indiana,18175,52,1 +2020-05-27,Washington,Indiana,18175,52,1 +2020-05-28,Washington,Indiana,18175,51,1 +2020-05-29,Washington,Indiana,18175,52,1 +2020-05-30,Washington,Indiana,18175,52,1 +2020-05-31,Washington,Indiana,18175,52,1 +2020-06-01,Washington,Indiana,18175,52,1 +2020-06-02,Washington,Indiana,18175,51,1 +2020-06-03,Washington,Indiana,18175,51,1 +2020-06-04,Washington,Indiana,18175,50,1 +2020-06-05,Washington,Indiana,18175,50,1 +2020-06-06,Washington,Indiana,18175,51,1 +2020-06-07,Washington,Indiana,18175,51,1 +2020-06-08,Washington,Indiana,18175,52,1 +2020-06-09,Washington,Indiana,18175,52,1 +2020-06-10,Washington,Indiana,18175,56,1 +2020-06-11,Washington,Indiana,18175,56,1 +2020-06-12,Washington,Indiana,18175,56,1 +2020-06-13,Washington,Indiana,18175,56,1 +2020-06-14,Washington,Indiana,18175,57,1 +2020-06-15,Washington,Indiana,18175,58,1 +2020-06-16,Washington,Indiana,18175,58,1 +2020-06-17,Washington,Indiana,18175,59,1 +2020-06-18,Washington,Indiana,18175,60,1 +2020-06-19,Washington,Indiana,18175,61,1 +2020-06-20,Washington,Indiana,18175,61,1 +2020-06-21,Washington,Indiana,18175,62,1 +2020-06-22,Washington,Indiana,18175,62,1 +2020-06-23,Washington,Indiana,18175,62,1 +2020-06-24,Washington,Indiana,18175,62,1 +2020-06-25,Washington,Indiana,18175,62,1 +2020-06-26,Washington,Indiana,18175,63,1 +2020-06-27,Washington,Indiana,18175,63,1 +2020-06-28,Washington,Indiana,18175,63,1 +2020-06-29,Washington,Indiana,18175,63,1 +2020-06-30,Washington,Indiana,18175,64,1 +2020-07-01,Washington,Indiana,18175,64,1 +2020-07-02,Washington,Indiana,18175,65,1 +2020-07-03,Washington,Indiana,18175,66,1 +2020-07-04,Washington,Indiana,18175,68,1 +2020-07-05,Washington,Indiana,18175,67,1 +2020-07-06,Washington,Indiana,18175,67,1 +2020-07-07,Washington,Indiana,18175,67,1 +2020-07-08,Washington,Indiana,18175,67,1 +2020-07-09,Washington,Indiana,18175,67,1 +2020-03-19,Wayne,Indiana,18177,1,0 +2020-03-20,Wayne,Indiana,18177,1,0 +2020-03-21,Wayne,Indiana,18177,1,0 +2020-03-22,Wayne,Indiana,18177,1,0 +2020-03-23,Wayne,Indiana,18177,1,0 +2020-03-24,Wayne,Indiana,18177,1,0 +2020-03-25,Wayne,Indiana,18177,1,0 +2020-03-26,Wayne,Indiana,18177,1,0 +2020-03-27,Wayne,Indiana,18177,1,0 +2020-03-28,Wayne,Indiana,18177,1,0 +2020-03-29,Wayne,Indiana,18177,1,0 +2020-03-30,Wayne,Indiana,18177,1,0 +2020-03-31,Wayne,Indiana,18177,2,0 +2020-04-01,Wayne,Indiana,18177,3,0 +2020-04-02,Wayne,Indiana,18177,3,0 +2020-04-03,Wayne,Indiana,18177,6,0 +2020-04-04,Wayne,Indiana,18177,6,0 +2020-04-05,Wayne,Indiana,18177,8,0 +2020-04-06,Wayne,Indiana,18177,10,0 +2020-04-07,Wayne,Indiana,18177,13,1 +2020-04-08,Wayne,Indiana,18177,16,1 +2020-04-09,Wayne,Indiana,18177,16,1 +2020-04-10,Wayne,Indiana,18177,16,1 +2020-04-11,Wayne,Indiana,18177,17,1 +2020-04-12,Wayne,Indiana,18177,17,1 +2020-04-13,Wayne,Indiana,18177,19,1 +2020-04-14,Wayne,Indiana,18177,19,1 +2020-04-15,Wayne,Indiana,18177,20,1 +2020-04-16,Wayne,Indiana,18177,21,1 +2020-04-17,Wayne,Indiana,18177,22,2 +2020-04-18,Wayne,Indiana,18177,23,2 +2020-04-19,Wayne,Indiana,18177,27,2 +2020-04-20,Wayne,Indiana,18177,28,2 +2020-04-21,Wayne,Indiana,18177,30,2 +2020-04-22,Wayne,Indiana,18177,34,2 +2020-04-23,Wayne,Indiana,18177,35,2 +2020-04-24,Wayne,Indiana,18177,36,3 +2020-04-25,Wayne,Indiana,18177,36,3 +2020-04-26,Wayne,Indiana,18177,36,3 +2020-04-27,Wayne,Indiana,18177,38,3 +2020-04-28,Wayne,Indiana,18177,52,3 +2020-04-29,Wayne,Indiana,18177,70,3 +2020-04-30,Wayne,Indiana,18177,78,3 +2020-05-01,Wayne,Indiana,18177,90,3 +2020-05-02,Wayne,Indiana,18177,92,3 +2020-05-03,Wayne,Indiana,18177,93,3 +2020-05-04,Wayne,Indiana,18177,102,3 +2020-05-05,Wayne,Indiana,18177,114,3 +2020-05-06,Wayne,Indiana,18177,121,3 +2020-05-07,Wayne,Indiana,18177,126,3 +2020-05-08,Wayne,Indiana,18177,138,5 +2020-05-09,Wayne,Indiana,18177,149,5 +2020-05-10,Wayne,Indiana,18177,150,5 +2020-05-11,Wayne,Indiana,18177,150,5 +2020-05-12,Wayne,Indiana,18177,154,5 +2020-05-13,Wayne,Indiana,18177,157,5 +2020-05-14,Wayne,Indiana,18177,159,5 +2020-05-15,Wayne,Indiana,18177,166,5 +2020-05-16,Wayne,Indiana,18177,167,5 +2020-05-17,Wayne,Indiana,18177,170,5 +2020-05-18,Wayne,Indiana,18177,170,5 +2020-05-19,Wayne,Indiana,18177,188,5 +2020-05-20,Wayne,Indiana,18177,188,5 +2020-05-21,Wayne,Indiana,18177,189,5 +2020-05-22,Wayne,Indiana,18177,195,5 +2020-05-23,Wayne,Indiana,18177,206,5 +2020-05-24,Wayne,Indiana,18177,209,5 +2020-05-25,Wayne,Indiana,18177,209,5 +2020-05-26,Wayne,Indiana,18177,211,5 +2020-05-27,Wayne,Indiana,18177,221,5 +2020-05-28,Wayne,Indiana,18177,221,6 +2020-05-29,Wayne,Indiana,18177,223,6 +2020-05-30,Wayne,Indiana,18177,228,5 +2020-05-31,Wayne,Indiana,18177,232,5 +2020-06-01,Wayne,Indiana,18177,235,5 +2020-06-02,Wayne,Indiana,18177,237,5 +2020-06-03,Wayne,Indiana,18177,238,5 +2020-06-04,Wayne,Indiana,18177,241,6 +2020-06-05,Wayne,Indiana,18177,245,6 +2020-06-06,Wayne,Indiana,18177,248,6 +2020-06-07,Wayne,Indiana,18177,248,6 +2020-06-08,Wayne,Indiana,18177,248,6 +2020-06-09,Wayne,Indiana,18177,248,6 +2020-06-10,Wayne,Indiana,18177,251,6 +2020-06-11,Wayne,Indiana,18177,255,6 +2020-06-12,Wayne,Indiana,18177,259,6 +2020-06-13,Wayne,Indiana,18177,265,6 +2020-06-14,Wayne,Indiana,18177,270,6 +2020-06-15,Wayne,Indiana,18177,271,6 +2020-06-16,Wayne,Indiana,18177,270,6 +2020-06-17,Wayne,Indiana,18177,274,6 +2020-06-18,Wayne,Indiana,18177,275,6 +2020-06-19,Wayne,Indiana,18177,278,6 +2020-06-20,Wayne,Indiana,18177,278,6 +2020-06-21,Wayne,Indiana,18177,279,6 +2020-06-22,Wayne,Indiana,18177,281,6 +2020-06-23,Wayne,Indiana,18177,281,6 +2020-06-24,Wayne,Indiana,18177,290,6 +2020-06-25,Wayne,Indiana,18177,293,6 +2020-06-26,Wayne,Indiana,18177,297,6 +2020-06-27,Wayne,Indiana,18177,298,6 +2020-06-28,Wayne,Indiana,18177,302,6 +2020-06-29,Wayne,Indiana,18177,304,6 +2020-06-30,Wayne,Indiana,18177,305,6 +2020-07-01,Wayne,Indiana,18177,306,6 +2020-07-02,Wayne,Indiana,18177,307,6 +2020-07-03,Wayne,Indiana,18177,312,6 +2020-07-04,Wayne,Indiana,18177,314,6 +2020-07-05,Wayne,Indiana,18177,316,6 +2020-07-06,Wayne,Indiana,18177,318,6 +2020-07-07,Wayne,Indiana,18177,320,6 +2020-07-08,Wayne,Indiana,18177,321,6 +2020-07-09,Wayne,Indiana,18177,330,6 +2020-03-14,Wells,Indiana,18179,1,0 +2020-03-15,Wells,Indiana,18179,1,0 +2020-03-16,Wells,Indiana,18179,1,0 +2020-03-17,Wells,Indiana,18179,1,0 +2020-03-18,Wells,Indiana,18179,1,0 +2020-03-19,Wells,Indiana,18179,1,0 +2020-03-20,Wells,Indiana,18179,1,0 +2020-03-21,Wells,Indiana,18179,1,0 +2020-03-22,Wells,Indiana,18179,1,0 +2020-03-23,Wells,Indiana,18179,1,0 +2020-03-24,Wells,Indiana,18179,1,0 +2020-03-25,Wells,Indiana,18179,1,0 +2020-03-26,Wells,Indiana,18179,1,0 +2020-03-27,Wells,Indiana,18179,1,0 +2020-03-28,Wells,Indiana,18179,1,0 +2020-03-29,Wells,Indiana,18179,1,0 +2020-03-30,Wells,Indiana,18179,1,0 +2020-03-31,Wells,Indiana,18179,2,0 +2020-04-01,Wells,Indiana,18179,2,0 +2020-04-02,Wells,Indiana,18179,2,0 +2020-04-03,Wells,Indiana,18179,2,0 +2020-04-04,Wells,Indiana,18179,2,0 +2020-04-05,Wells,Indiana,18179,2,0 +2020-04-06,Wells,Indiana,18179,2,0 +2020-04-07,Wells,Indiana,18179,2,0 +2020-04-08,Wells,Indiana,18179,2,0 +2020-04-09,Wells,Indiana,18179,3,0 +2020-04-10,Wells,Indiana,18179,3,0 +2020-04-11,Wells,Indiana,18179,3,0 +2020-04-12,Wells,Indiana,18179,4,0 +2020-04-13,Wells,Indiana,18179,4,0 +2020-04-14,Wells,Indiana,18179,4,0 +2020-04-15,Wells,Indiana,18179,4,0 +2020-04-16,Wells,Indiana,18179,4,0 +2020-04-17,Wells,Indiana,18179,5,0 +2020-04-18,Wells,Indiana,18179,5,0 +2020-04-19,Wells,Indiana,18179,5,0 +2020-04-20,Wells,Indiana,18179,5,0 +2020-04-21,Wells,Indiana,18179,6,0 +2020-04-22,Wells,Indiana,18179,6,0 +2020-04-23,Wells,Indiana,18179,5,0 +2020-04-24,Wells,Indiana,18179,5,0 +2020-04-25,Wells,Indiana,18179,5,0 +2020-04-26,Wells,Indiana,18179,5,0 +2020-04-27,Wells,Indiana,18179,5,0 +2020-04-28,Wells,Indiana,18179,5,0 +2020-04-29,Wells,Indiana,18179,5,0 +2020-04-30,Wells,Indiana,18179,5,0 +2020-05-01,Wells,Indiana,18179,5,0 +2020-05-02,Wells,Indiana,18179,6,0 +2020-05-03,Wells,Indiana,18179,7,0 +2020-05-04,Wells,Indiana,18179,7,0 +2020-05-05,Wells,Indiana,18179,7,0 +2020-05-06,Wells,Indiana,18179,7,0 +2020-05-07,Wells,Indiana,18179,9,0 +2020-05-08,Wells,Indiana,18179,9,0 +2020-05-09,Wells,Indiana,18179,10,0 +2020-05-10,Wells,Indiana,18179,10,0 +2020-05-11,Wells,Indiana,18179,11,0 +2020-05-12,Wells,Indiana,18179,12,0 +2020-05-13,Wells,Indiana,18179,12,0 +2020-05-14,Wells,Indiana,18179,13,0 +2020-05-15,Wells,Indiana,18179,15,0 +2020-05-16,Wells,Indiana,18179,16,0 +2020-05-17,Wells,Indiana,18179,16,0 +2020-05-18,Wells,Indiana,18179,16,0 +2020-05-19,Wells,Indiana,18179,18,0 +2020-05-20,Wells,Indiana,18179,20,0 +2020-05-21,Wells,Indiana,18179,21,0 +2020-05-22,Wells,Indiana,18179,22,0 +2020-05-23,Wells,Indiana,18179,22,0 +2020-05-24,Wells,Indiana,18179,22,0 +2020-05-25,Wells,Indiana,18179,23,0 +2020-05-26,Wells,Indiana,18179,24,0 +2020-05-27,Wells,Indiana,18179,26,0 +2020-05-28,Wells,Indiana,18179,27,0 +2020-05-29,Wells,Indiana,18179,28,0 +2020-05-30,Wells,Indiana,18179,31,0 +2020-05-31,Wells,Indiana,18179,32,0 +2020-06-01,Wells,Indiana,18179,32,0 +2020-06-02,Wells,Indiana,18179,32,0 +2020-06-03,Wells,Indiana,18179,32,0 +2020-06-04,Wells,Indiana,18179,34,0 +2020-06-05,Wells,Indiana,18179,35,0 +2020-06-06,Wells,Indiana,18179,38,0 +2020-06-07,Wells,Indiana,18179,39,0 +2020-06-08,Wells,Indiana,18179,40,0 +2020-06-09,Wells,Indiana,18179,43,0 +2020-06-10,Wells,Indiana,18179,45,0 +2020-06-11,Wells,Indiana,18179,47,0 +2020-06-12,Wells,Indiana,18179,49,0 +2020-06-13,Wells,Indiana,18179,53,0 +2020-06-14,Wells,Indiana,18179,54,0 +2020-06-15,Wells,Indiana,18179,56,0 +2020-06-16,Wells,Indiana,18179,62,0 +2020-06-17,Wells,Indiana,18179,63,0 +2020-06-18,Wells,Indiana,18179,65,0 +2020-06-19,Wells,Indiana,18179,65,0 +2020-06-20,Wells,Indiana,18179,72,0 +2020-06-21,Wells,Indiana,18179,72,1 +2020-06-22,Wells,Indiana,18179,74,1 +2020-06-23,Wells,Indiana,18179,75,1 +2020-06-24,Wells,Indiana,18179,83,1 +2020-06-25,Wells,Indiana,18179,83,1 +2020-06-26,Wells,Indiana,18179,83,1 +2020-06-27,Wells,Indiana,18179,83,1 +2020-06-28,Wells,Indiana,18179,84,1 +2020-06-29,Wells,Indiana,18179,84,1 +2020-06-30,Wells,Indiana,18179,84,1 +2020-07-01,Wells,Indiana,18179,85,1 +2020-07-02,Wells,Indiana,18179,85,1 +2020-07-03,Wells,Indiana,18179,88,1 +2020-07-04,Wells,Indiana,18179,88,1 +2020-07-05,Wells,Indiana,18179,89,1 +2020-07-06,Wells,Indiana,18179,90,1 +2020-07-07,Wells,Indiana,18179,92,1 +2020-07-08,Wells,Indiana,18179,92,1 +2020-07-09,Wells,Indiana,18179,96,1 +2020-03-28,White,Indiana,18181,1,0 +2020-03-29,White,Indiana,18181,1,0 +2020-03-30,White,Indiana,18181,2,0 +2020-03-31,White,Indiana,18181,2,0 +2020-04-01,White,Indiana,18181,2,0 +2020-04-02,White,Indiana,18181,3,0 +2020-04-03,White,Indiana,18181,3,0 +2020-04-04,White,Indiana,18181,3,0 +2020-04-05,White,Indiana,18181,3,0 +2020-04-06,White,Indiana,18181,3,0 +2020-04-07,White,Indiana,18181,3,0 +2020-04-08,White,Indiana,18181,3,0 +2020-04-09,White,Indiana,18181,3,0 +2020-04-10,White,Indiana,18181,3,0 +2020-04-11,White,Indiana,18181,3,0 +2020-04-12,White,Indiana,18181,3,0 +2020-04-13,White,Indiana,18181,4,0 +2020-04-14,White,Indiana,18181,5,0 +2020-04-15,White,Indiana,18181,5,0 +2020-04-16,White,Indiana,18181,5,0 +2020-04-17,White,Indiana,18181,6,0 +2020-04-18,White,Indiana,18181,6,0 +2020-04-19,White,Indiana,18181,7,0 +2020-04-20,White,Indiana,18181,8,0 +2020-04-21,White,Indiana,18181,8,0 +2020-04-22,White,Indiana,18181,11,0 +2020-04-23,White,Indiana,18181,12,0 +2020-04-24,White,Indiana,18181,14,0 +2020-04-25,White,Indiana,18181,18,0 +2020-04-26,White,Indiana,18181,26,0 +2020-04-27,White,Indiana,18181,34,0 +2020-04-28,White,Indiana,18181,42,0 +2020-04-29,White,Indiana,18181,43,0 +2020-04-30,White,Indiana,18181,47,0 +2020-05-01,White,Indiana,18181,51,0 +2020-05-02,White,Indiana,18181,57,0 +2020-05-03,White,Indiana,18181,82,0 +2020-05-04,White,Indiana,18181,99,0 +2020-05-05,White,Indiana,18181,100,0 +2020-05-06,White,Indiana,18181,106,0 +2020-05-07,White,Indiana,18181,130,1 +2020-05-08,White,Indiana,18181,139,1 +2020-05-09,White,Indiana,18181,145,1 +2020-05-10,White,Indiana,18181,148,1 +2020-05-11,White,Indiana,18181,152,1 +2020-05-12,White,Indiana,18181,165,1 +2020-05-13,White,Indiana,18181,165,2 +2020-05-14,White,Indiana,18181,164,2 +2020-05-15,White,Indiana,18181,164,3 +2020-05-16,White,Indiana,18181,178,4 +2020-05-17,White,Indiana,18181,179,4 +2020-05-18,White,Indiana,18181,183,5 +2020-05-19,White,Indiana,18181,186,5 +2020-05-20,White,Indiana,18181,188,7 +2020-05-21,White,Indiana,18181,201,7 +2020-05-22,White,Indiana,18181,206,8 +2020-05-23,White,Indiana,18181,212,8 +2020-05-24,White,Indiana,18181,221,8 +2020-05-25,White,Indiana,18181,226,8 +2020-05-26,White,Indiana,18181,226,8 +2020-05-27,White,Indiana,18181,228,8 +2020-05-28,White,Indiana,18181,230,8 +2020-05-29,White,Indiana,18181,231,8 +2020-05-30,White,Indiana,18181,233,8 +2020-05-31,White,Indiana,18181,235,8 +2020-06-01,White,Indiana,18181,237,8 +2020-06-02,White,Indiana,18181,238,9 +2020-06-03,White,Indiana,18181,238,9 +2020-06-04,White,Indiana,18181,238,9 +2020-06-05,White,Indiana,18181,239,9 +2020-06-06,White,Indiana,18181,243,9 +2020-06-07,White,Indiana,18181,243,9 +2020-06-08,White,Indiana,18181,243,9 +2020-06-09,White,Indiana,18181,242,9 +2020-06-10,White,Indiana,18181,242,9 +2020-06-11,White,Indiana,18181,241,9 +2020-06-12,White,Indiana,18181,240,9 +2020-06-13,White,Indiana,18181,242,9 +2020-06-14,White,Indiana,18181,242,10 +2020-06-15,White,Indiana,18181,245,10 +2020-06-16,White,Indiana,18181,242,10 +2020-06-17,White,Indiana,18181,242,10 +2020-06-18,White,Indiana,18181,242,10 +2020-06-19,White,Indiana,18181,245,10 +2020-06-20,White,Indiana,18181,246,10 +2020-06-21,White,Indiana,18181,249,10 +2020-06-22,White,Indiana,18181,249,10 +2020-06-23,White,Indiana,18181,249,10 +2020-06-24,White,Indiana,18181,249,10 +2020-06-25,White,Indiana,18181,249,10 +2020-06-26,White,Indiana,18181,256,10 +2020-06-27,White,Indiana,18181,253,10 +2020-06-28,White,Indiana,18181,255,10 +2020-06-29,White,Indiana,18181,255,10 +2020-06-30,White,Indiana,18181,257,10 +2020-07-01,White,Indiana,18181,258,10 +2020-07-02,White,Indiana,18181,259,10 +2020-07-03,White,Indiana,18181,260,10 +2020-07-04,White,Indiana,18181,260,10 +2020-07-05,White,Indiana,18181,263,10 +2020-07-06,White,Indiana,18181,265,10 +2020-07-07,White,Indiana,18181,265,10 +2020-07-08,White,Indiana,18181,266,10 +2020-07-09,White,Indiana,18181,268,10 +2020-03-27,Whitley,Indiana,18183,1,0 +2020-03-28,Whitley,Indiana,18183,1,0 +2020-03-29,Whitley,Indiana,18183,1,0 +2020-03-30,Whitley,Indiana,18183,1,0 +2020-03-31,Whitley,Indiana,18183,2,0 +2020-04-01,Whitley,Indiana,18183,3,0 +2020-04-02,Whitley,Indiana,18183,3,0 +2020-04-03,Whitley,Indiana,18183,4,0 +2020-04-04,Whitley,Indiana,18183,5,0 +2020-04-05,Whitley,Indiana,18183,6,1 +2020-04-06,Whitley,Indiana,18183,8,1 +2020-04-07,Whitley,Indiana,18183,8,1 +2020-04-08,Whitley,Indiana,18183,8,1 +2020-04-09,Whitley,Indiana,18183,8,1 +2020-04-10,Whitley,Indiana,18183,10,1 +2020-04-11,Whitley,Indiana,18183,11,1 +2020-04-12,Whitley,Indiana,18183,12,1 +2020-04-13,Whitley,Indiana,18183,13,1 +2020-04-14,Whitley,Indiana,18183,14,1 +2020-04-15,Whitley,Indiana,18183,14,1 +2020-04-16,Whitley,Indiana,18183,15,1 +2020-04-17,Whitley,Indiana,18183,14,1 +2020-04-18,Whitley,Indiana,18183,15,1 +2020-04-19,Whitley,Indiana,18183,16,1 +2020-04-20,Whitley,Indiana,18183,16,1 +2020-04-21,Whitley,Indiana,18183,16,1 +2020-04-22,Whitley,Indiana,18183,16,1 +2020-04-23,Whitley,Indiana,18183,16,1 +2020-04-24,Whitley,Indiana,18183,16,1 +2020-04-25,Whitley,Indiana,18183,16,1 +2020-04-26,Whitley,Indiana,18183,16,1 +2020-04-27,Whitley,Indiana,18183,16,1 +2020-04-28,Whitley,Indiana,18183,16,1 +2020-04-29,Whitley,Indiana,18183,16,1 +2020-04-30,Whitley,Indiana,18183,19,1 +2020-05-01,Whitley,Indiana,18183,20,1 +2020-05-02,Whitley,Indiana,18183,21,1 +2020-05-03,Whitley,Indiana,18183,21,1 +2020-05-04,Whitley,Indiana,18183,21,1 +2020-05-05,Whitley,Indiana,18183,22,1 +2020-05-06,Whitley,Indiana,18183,22,1 +2020-05-07,Whitley,Indiana,18183,22,1 +2020-05-08,Whitley,Indiana,18183,22,1 +2020-05-09,Whitley,Indiana,18183,22,1 +2020-05-10,Whitley,Indiana,18183,22,1 +2020-05-11,Whitley,Indiana,18183,22,1 +2020-05-12,Whitley,Indiana,18183,23,1 +2020-05-13,Whitley,Indiana,18183,23,1 +2020-05-14,Whitley,Indiana,18183,27,1 +2020-05-15,Whitley,Indiana,18183,28,2 +2020-05-16,Whitley,Indiana,18183,28,2 +2020-05-17,Whitley,Indiana,18183,28,2 +2020-05-18,Whitley,Indiana,18183,28,2 +2020-05-19,Whitley,Indiana,18183,27,2 +2020-05-20,Whitley,Indiana,18183,28,2 +2020-05-21,Whitley,Indiana,18183,29,2 +2020-05-22,Whitley,Indiana,18183,31,2 +2020-05-23,Whitley,Indiana,18183,34,2 +2020-05-24,Whitley,Indiana,18183,34,2 +2020-05-25,Whitley,Indiana,18183,39,2 +2020-05-26,Whitley,Indiana,18183,40,2 +2020-05-27,Whitley,Indiana,18183,41,2 +2020-05-28,Whitley,Indiana,18183,38,3 +2020-05-29,Whitley,Indiana,18183,39,3 +2020-05-30,Whitley,Indiana,18183,41,3 +2020-05-31,Whitley,Indiana,18183,42,3 +2020-06-01,Whitley,Indiana,18183,43,3 +2020-06-02,Whitley,Indiana,18183,43,3 +2020-06-03,Whitley,Indiana,18183,44,3 +2020-06-04,Whitley,Indiana,18183,45,3 +2020-06-05,Whitley,Indiana,18183,45,3 +2020-06-06,Whitley,Indiana,18183,48,3 +2020-06-07,Whitley,Indiana,18183,50,3 +2020-06-08,Whitley,Indiana,18183,51,3 +2020-06-09,Whitley,Indiana,18183,55,3 +2020-06-10,Whitley,Indiana,18183,58,3 +2020-06-11,Whitley,Indiana,18183,62,3 +2020-06-12,Whitley,Indiana,18183,60,3 +2020-06-13,Whitley,Indiana,18183,61,3 +2020-06-14,Whitley,Indiana,18183,62,3 +2020-06-15,Whitley,Indiana,18183,64,3 +2020-06-16,Whitley,Indiana,18183,64,3 +2020-06-17,Whitley,Indiana,18183,65,3 +2020-06-18,Whitley,Indiana,18183,65,3 +2020-06-19,Whitley,Indiana,18183,69,4 +2020-06-20,Whitley,Indiana,18183,71,4 +2020-06-21,Whitley,Indiana,18183,71,4 +2020-06-22,Whitley,Indiana,18183,72,4 +2020-06-23,Whitley,Indiana,18183,71,4 +2020-06-24,Whitley,Indiana,18183,72,4 +2020-06-25,Whitley,Indiana,18183,74,4 +2020-06-26,Whitley,Indiana,18183,75,4 +2020-06-27,Whitley,Indiana,18183,77,4 +2020-06-28,Whitley,Indiana,18183,78,4 +2020-06-29,Whitley,Indiana,18183,79,4 +2020-06-30,Whitley,Indiana,18183,79,4 +2020-07-01,Whitley,Indiana,18183,81,4 +2020-07-02,Whitley,Indiana,18183,81,4 +2020-07-03,Whitley,Indiana,18183,88,4 +2020-07-04,Whitley,Indiana,18183,90,5 +2020-07-05,Whitley,Indiana,18183,92,5 +2020-07-06,Whitley,Indiana,18183,92,5 +2020-07-07,Whitley,Indiana,18183,96,5 +2020-07-08,Whitley,Indiana,18183,97,5 +2020-07-09,Whitley,Indiana,18183,99,5 +2020-03-17,Adair,Iowa,19001,1,0 +2020-03-18,Adair,Iowa,19001,1,0 +2020-03-19,Adair,Iowa,19001,1,0 +2020-03-20,Adair,Iowa,19001,1,0 +2020-03-21,Adair,Iowa,19001,1,0 +2020-03-22,Adair,Iowa,19001,1,0 +2020-03-23,Adair,Iowa,19001,1,0 +2020-03-24,Adair,Iowa,19001,1,0 +2020-03-25,Adair,Iowa,19001,1,0 +2020-03-26,Adair,Iowa,19001,1,0 +2020-03-27,Adair,Iowa,19001,1,0 +2020-03-28,Adair,Iowa,19001,1,0 +2020-03-29,Adair,Iowa,19001,1,0 +2020-03-30,Adair,Iowa,19001,1,0 +2020-03-31,Adair,Iowa,19001,1,0 +2020-04-01,Adair,Iowa,19001,1,0 +2020-04-02,Adair,Iowa,19001,1,0 +2020-04-03,Adair,Iowa,19001,1,0 +2020-04-04,Adair,Iowa,19001,1,0 +2020-04-05,Adair,Iowa,19001,1,0 +2020-04-06,Adair,Iowa,19001,1,0 +2020-04-07,Adair,Iowa,19001,1,0 +2020-04-08,Adair,Iowa,19001,1,0 +2020-04-09,Adair,Iowa,19001,1,0 +2020-04-10,Adair,Iowa,19001,1,0 +2020-04-11,Adair,Iowa,19001,1,0 +2020-04-12,Adair,Iowa,19001,1,0 +2020-04-13,Adair,Iowa,19001,1,0 +2020-04-14,Adair,Iowa,19001,1,0 +2020-04-15,Adair,Iowa,19001,1,0 +2020-04-16,Adair,Iowa,19001,1,0 +2020-04-17,Adair,Iowa,19001,1,0 +2020-04-18,Adair,Iowa,19001,1,0 +2020-04-19,Adair,Iowa,19001,1,0 +2020-04-20,Adair,Iowa,19001,1,0 +2020-04-21,Adair,Iowa,19001,1,0 +2020-04-22,Adair,Iowa,19001,1,0 +2020-04-23,Adair,Iowa,19001,1,0 +2020-04-24,Adair,Iowa,19001,1,0 +2020-04-25,Adair,Iowa,19001,1,0 +2020-04-26,Adair,Iowa,19001,1,0 +2020-04-27,Adair,Iowa,19001,1,0 +2020-04-28,Adair,Iowa,19001,1,0 +2020-04-29,Adair,Iowa,19001,1,0 +2020-04-30,Adair,Iowa,19001,1,0 +2020-05-01,Adair,Iowa,19001,1,0 +2020-05-02,Adair,Iowa,19001,1,0 +2020-05-03,Adair,Iowa,19001,1,0 +2020-05-04,Adair,Iowa,19001,1,0 +2020-05-05,Adair,Iowa,19001,2,0 +2020-05-06,Adair,Iowa,19001,3,0 +2020-05-07,Adair,Iowa,19001,3,0 +2020-05-08,Adair,Iowa,19001,3,0 +2020-05-09,Adair,Iowa,19001,3,0 +2020-05-10,Adair,Iowa,19001,3,0 +2020-05-11,Adair,Iowa,19001,3,0 +2020-05-12,Adair,Iowa,19001,3,0 +2020-05-13,Adair,Iowa,19001,4,0 +2020-05-14,Adair,Iowa,19001,4,0 +2020-05-15,Adair,Iowa,19001,4,0 +2020-05-16,Adair,Iowa,19001,4,0 +2020-05-17,Adair,Iowa,19001,5,0 +2020-05-18,Adair,Iowa,19001,6,0 +2020-05-19,Adair,Iowa,19001,6,0 +2020-05-20,Adair,Iowa,19001,6,0 +2020-05-21,Adair,Iowa,19001,6,0 +2020-05-22,Adair,Iowa,19001,6,0 +2020-05-23,Adair,Iowa,19001,6,0 +2020-05-24,Adair,Iowa,19001,8,0 +2020-05-25,Adair,Iowa,19001,8,0 +2020-05-26,Adair,Iowa,19001,7,0 +2020-05-27,Adair,Iowa,19001,8,0 +2020-05-28,Adair,Iowa,19001,8,0 +2020-05-29,Adair,Iowa,19001,9,0 +2020-05-30,Adair,Iowa,19001,9,0 +2020-05-31,Adair,Iowa,19001,9,0 +2020-06-01,Adair,Iowa,19001,9,0 +2020-06-02,Adair,Iowa,19001,9,0 +2020-06-03,Adair,Iowa,19001,9,0 +2020-06-04,Adair,Iowa,19001,9,0 +2020-06-05,Adair,Iowa,19001,9,0 +2020-06-06,Adair,Iowa,19001,9,0 +2020-06-07,Adair,Iowa,19001,9,0 +2020-06-08,Adair,Iowa,19001,9,0 +2020-06-09,Adair,Iowa,19001,10,0 +2020-06-10,Adair,Iowa,19001,10,0 +2020-06-11,Adair,Iowa,19001,11,0 +2020-06-12,Adair,Iowa,19001,11,0 +2020-06-13,Adair,Iowa,19001,11,0 +2020-06-14,Adair,Iowa,19001,11,0 +2020-06-15,Adair,Iowa,19001,11,0 +2020-06-16,Adair,Iowa,19001,12,0 +2020-06-17,Adair,Iowa,19001,12,0 +2020-06-18,Adair,Iowa,19001,12,0 +2020-06-19,Adair,Iowa,19001,12,0 +2020-06-20,Adair,Iowa,19001,12,0 +2020-06-21,Adair,Iowa,19001,12,0 +2020-06-22,Adair,Iowa,19001,12,0 +2020-06-23,Adair,Iowa,19001,12,0 +2020-06-24,Adair,Iowa,19001,13,0 +2020-06-25,Adair,Iowa,19001,14,0 +2020-06-26,Adair,Iowa,19001,14,0 +2020-06-27,Adair,Iowa,19001,14,0 +2020-06-28,Adair,Iowa,19001,15,0 +2020-06-29,Adair,Iowa,19001,15,0 +2020-06-30,Adair,Iowa,19001,15,0 +2020-07-01,Adair,Iowa,19001,15,0 +2020-07-02,Adair,Iowa,19001,15,0 +2020-07-03,Adair,Iowa,19001,15,0 +2020-07-04,Adair,Iowa,19001,15,0 +2020-07-05,Adair,Iowa,19001,16,0 +2020-07-06,Adair,Iowa,19001,16,0 +2020-07-07,Adair,Iowa,19001,16,0 +2020-07-08,Adair,Iowa,19001,17,0 +2020-07-09,Adair,Iowa,19001,16,0 +2020-05-17,Adams,Iowa,19003,1,0 +2020-05-18,Adams,Iowa,19003,1,0 +2020-05-19,Adams,Iowa,19003,1,0 +2020-05-20,Adams,Iowa,19003,3,0 +2020-05-21,Adams,Iowa,19003,3,0 +2020-05-22,Adams,Iowa,19003,4,0 +2020-05-23,Adams,Iowa,19003,4,0 +2020-05-24,Adams,Iowa,19003,5,0 +2020-05-25,Adams,Iowa,19003,5,0 +2020-05-26,Adams,Iowa,19003,6,0 +2020-05-27,Adams,Iowa,19003,7,0 +2020-05-28,Adams,Iowa,19003,7,0 +2020-05-29,Adams,Iowa,19003,7,0 +2020-05-30,Adams,Iowa,19003,7,0 +2020-05-31,Adams,Iowa,19003,7,0 +2020-06-01,Adams,Iowa,19003,7,0 +2020-06-02,Adams,Iowa,19003,7,0 +2020-06-03,Adams,Iowa,19003,7,0 +2020-06-04,Adams,Iowa,19003,7,0 +2020-06-05,Adams,Iowa,19003,7,0 +2020-06-06,Adams,Iowa,19003,7,0 +2020-06-07,Adams,Iowa,19003,7,0 +2020-06-08,Adams,Iowa,19003,7,0 +2020-06-09,Adams,Iowa,19003,7,0 +2020-06-10,Adams,Iowa,19003,7,0 +2020-06-11,Adams,Iowa,19003,7,0 +2020-06-12,Adams,Iowa,19003,7,0 +2020-06-13,Adams,Iowa,19003,7,0 +2020-06-14,Adams,Iowa,19003,7,0 +2020-06-15,Adams,Iowa,19003,8,0 +2020-06-16,Adams,Iowa,19003,8,0 +2020-06-17,Adams,Iowa,19003,8,0 +2020-06-18,Adams,Iowa,19003,7,0 +2020-06-19,Adams,Iowa,19003,7,0 +2020-06-20,Adams,Iowa,19003,7,0 +2020-06-21,Adams,Iowa,19003,7,0 +2020-06-22,Adams,Iowa,19003,7,0 +2020-06-23,Adams,Iowa,19003,7,0 +2020-06-24,Adams,Iowa,19003,7,0 +2020-06-25,Adams,Iowa,19003,7,0 +2020-06-26,Adams,Iowa,19003,8,0 +2020-06-27,Adams,Iowa,19003,8,0 +2020-06-28,Adams,Iowa,19003,8,0 +2020-06-29,Adams,Iowa,19003,8,0 +2020-06-30,Adams,Iowa,19003,8,0 +2020-07-01,Adams,Iowa,19003,8,0 +2020-07-02,Adams,Iowa,19003,8,0 +2020-07-03,Adams,Iowa,19003,8,0 +2020-07-04,Adams,Iowa,19003,8,0 +2020-07-05,Adams,Iowa,19003,8,0 +2020-07-06,Adams,Iowa,19003,8,0 +2020-07-07,Adams,Iowa,19003,8,0 +2020-07-08,Adams,Iowa,19003,8,0 +2020-07-09,Adams,Iowa,19003,8,0 +2020-03-15,Allamakee,Iowa,19005,2,0 +2020-03-16,Allamakee,Iowa,19005,2,0 +2020-03-17,Allamakee,Iowa,19005,2,0 +2020-03-18,Allamakee,Iowa,19005,2,0 +2020-03-19,Allamakee,Iowa,19005,2,0 +2020-03-20,Allamakee,Iowa,19005,3,0 +2020-03-21,Allamakee,Iowa,19005,5,0 +2020-03-22,Allamakee,Iowa,19005,5,0 +2020-03-23,Allamakee,Iowa,19005,6,0 +2020-03-24,Allamakee,Iowa,19005,6,0 +2020-03-25,Allamakee,Iowa,19005,7,0 +2020-03-26,Allamakee,Iowa,19005,7,0 +2020-03-27,Allamakee,Iowa,19005,7,1 +2020-03-28,Allamakee,Iowa,19005,7,1 +2020-03-29,Allamakee,Iowa,19005,7,1 +2020-03-30,Allamakee,Iowa,19005,7,1 +2020-03-31,Allamakee,Iowa,19005,7,1 +2020-04-01,Allamakee,Iowa,19005,7,1 +2020-04-02,Allamakee,Iowa,19005,15,1 +2020-04-03,Allamakee,Iowa,19005,16,1 +2020-04-04,Allamakee,Iowa,19005,16,1 +2020-04-05,Allamakee,Iowa,19005,17,1 +2020-04-06,Allamakee,Iowa,19005,18,1 +2020-04-07,Allamakee,Iowa,19005,17,1 +2020-04-08,Allamakee,Iowa,19005,19,1 +2020-04-09,Allamakee,Iowa,19005,19,1 +2020-04-10,Allamakee,Iowa,19005,20,1 +2020-04-11,Allamakee,Iowa,19005,21,1 +2020-04-12,Allamakee,Iowa,19005,21,1 +2020-04-13,Allamakee,Iowa,19005,23,1 +2020-04-14,Allamakee,Iowa,19005,24,1 +2020-04-15,Allamakee,Iowa,19005,24,2 +2020-04-16,Allamakee,Iowa,19005,26,3 +2020-04-17,Allamakee,Iowa,19005,27,3 +2020-04-18,Allamakee,Iowa,19005,34,3 +2020-04-19,Allamakee,Iowa,19005,36,3 +2020-04-20,Allamakee,Iowa,19005,40,3 +2020-04-21,Allamakee,Iowa,19005,44,3 +2020-04-22,Allamakee,Iowa,19005,45,3 +2020-04-23,Allamakee,Iowa,19005,46,3 +2020-04-24,Allamakee,Iowa,19005,50,3 +2020-04-25,Allamakee,Iowa,19005,56,3 +2020-04-26,Allamakee,Iowa,19005,68,3 +2020-04-27,Allamakee,Iowa,19005,72,3 +2020-04-28,Allamakee,Iowa,19005,86,3 +2020-04-29,Allamakee,Iowa,19005,88,3 +2020-04-30,Allamakee,Iowa,19005,89,3 +2020-05-01,Allamakee,Iowa,19005,90,3 +2020-05-02,Allamakee,Iowa,19005,93,3 +2020-05-03,Allamakee,Iowa,19005,98,3 +2020-05-04,Allamakee,Iowa,19005,99,3 +2020-05-05,Allamakee,Iowa,19005,98,4 +2020-05-06,Allamakee,Iowa,19005,98,4 +2020-05-07,Allamakee,Iowa,19005,99,4 +2020-05-08,Allamakee,Iowa,19005,101,4 +2020-05-09,Allamakee,Iowa,19005,101,4 +2020-05-10,Allamakee,Iowa,19005,111,4 +2020-05-11,Allamakee,Iowa,19005,112,4 +2020-05-12,Allamakee,Iowa,19005,113,4 +2020-05-13,Allamakee,Iowa,19005,113,4 +2020-05-14,Allamakee,Iowa,19005,115,4 +2020-05-15,Allamakee,Iowa,19005,116,4 +2020-05-16,Allamakee,Iowa,19005,116,4 +2020-05-17,Allamakee,Iowa,19005,114,4 +2020-05-18,Allamakee,Iowa,19005,114,4 +2020-05-19,Allamakee,Iowa,19005,115,4 +2020-05-20,Allamakee,Iowa,19005,116,4 +2020-05-21,Allamakee,Iowa,19005,118,4 +2020-05-22,Allamakee,Iowa,19005,118,4 +2020-05-23,Allamakee,Iowa,19005,118,4 +2020-05-24,Allamakee,Iowa,19005,118,4 +2020-05-25,Allamakee,Iowa,19005,118,4 +2020-05-26,Allamakee,Iowa,19005,119,4 +2020-05-27,Allamakee,Iowa,19005,119,4 +2020-05-28,Allamakee,Iowa,19005,120,4 +2020-05-29,Allamakee,Iowa,19005,120,4 +2020-05-30,Allamakee,Iowa,19005,120,4 +2020-05-31,Allamakee,Iowa,19005,121,4 +2020-06-01,Allamakee,Iowa,19005,120,4 +2020-06-02,Allamakee,Iowa,19005,120,4 +2020-06-03,Allamakee,Iowa,19005,120,4 +2020-06-04,Allamakee,Iowa,19005,120,4 +2020-06-05,Allamakee,Iowa,19005,120,4 +2020-06-06,Allamakee,Iowa,19005,120,4 +2020-06-07,Allamakee,Iowa,19005,120,4 +2020-06-08,Allamakee,Iowa,19005,120,4 +2020-06-09,Allamakee,Iowa,19005,120,4 +2020-06-10,Allamakee,Iowa,19005,121,4 +2020-06-11,Allamakee,Iowa,19005,121,4 +2020-06-12,Allamakee,Iowa,19005,121,4 +2020-06-13,Allamakee,Iowa,19005,121,4 +2020-06-14,Allamakee,Iowa,19005,121,4 +2020-06-15,Allamakee,Iowa,19005,121,4 +2020-06-16,Allamakee,Iowa,19005,121,4 +2020-06-17,Allamakee,Iowa,19005,121,4 +2020-06-18,Allamakee,Iowa,19005,121,4 +2020-06-19,Allamakee,Iowa,19005,121,4 +2020-06-20,Allamakee,Iowa,19005,121,4 +2020-06-21,Allamakee,Iowa,19005,121,4 +2020-06-22,Allamakee,Iowa,19005,122,4 +2020-06-23,Allamakee,Iowa,19005,122,4 +2020-06-24,Allamakee,Iowa,19005,121,4 +2020-06-25,Allamakee,Iowa,19005,122,4 +2020-06-26,Allamakee,Iowa,19005,122,4 +2020-06-27,Allamakee,Iowa,19005,123,4 +2020-06-28,Allamakee,Iowa,19005,123,4 +2020-06-29,Allamakee,Iowa,19005,123,4 +2020-06-30,Allamakee,Iowa,19005,125,4 +2020-07-01,Allamakee,Iowa,19005,126,4 +2020-07-02,Allamakee,Iowa,19005,126,4 +2020-07-03,Allamakee,Iowa,19005,126,4 +2020-07-04,Allamakee,Iowa,19005,128,4 +2020-07-05,Allamakee,Iowa,19005,128,4 +2020-07-06,Allamakee,Iowa,19005,131,4 +2020-07-07,Allamakee,Iowa,19005,133,4 +2020-07-08,Allamakee,Iowa,19005,135,4 +2020-07-09,Allamakee,Iowa,19005,135,4 +2020-03-26,Appanoose,Iowa,19007,1,0 +2020-03-27,Appanoose,Iowa,19007,1,0 +2020-03-28,Appanoose,Iowa,19007,1,0 +2020-03-29,Appanoose,Iowa,19007,1,0 +2020-03-30,Appanoose,Iowa,19007,1,0 +2020-03-31,Appanoose,Iowa,19007,1,0 +2020-04-01,Appanoose,Iowa,19007,1,0 +2020-04-02,Appanoose,Iowa,19007,1,0 +2020-04-03,Appanoose,Iowa,19007,1,0 +2020-04-04,Appanoose,Iowa,19007,1,0 +2020-04-05,Appanoose,Iowa,19007,1,1 +2020-04-06,Appanoose,Iowa,19007,1,1 +2020-04-07,Appanoose,Iowa,19007,1,1 +2020-04-08,Appanoose,Iowa,19007,1,1 +2020-04-09,Appanoose,Iowa,19007,1,1 +2020-04-10,Appanoose,Iowa,19007,1,1 +2020-04-11,Appanoose,Iowa,19007,1,1 +2020-04-12,Appanoose,Iowa,19007,1,1 +2020-04-13,Appanoose,Iowa,19007,1,1 +2020-04-14,Appanoose,Iowa,19007,1,1 +2020-04-15,Appanoose,Iowa,19007,1,1 +2020-04-16,Appanoose,Iowa,19007,2,1 +2020-04-17,Appanoose,Iowa,19007,2,1 +2020-04-18,Appanoose,Iowa,19007,2,2 +2020-04-19,Appanoose,Iowa,19007,2,2 +2020-04-20,Appanoose,Iowa,19007,2,2 +2020-04-21,Appanoose,Iowa,19007,2,2 +2020-04-22,Appanoose,Iowa,19007,2,2 +2020-04-23,Appanoose,Iowa,19007,2,2 +2020-04-24,Appanoose,Iowa,19007,2,2 +2020-04-25,Appanoose,Iowa,19007,2,2 +2020-04-26,Appanoose,Iowa,19007,2,2 +2020-04-27,Appanoose,Iowa,19007,2,2 +2020-04-28,Appanoose,Iowa,19007,2,2 +2020-04-29,Appanoose,Iowa,19007,2,2 +2020-04-30,Appanoose,Iowa,19007,2,2 +2020-05-01,Appanoose,Iowa,19007,3,2 +2020-05-02,Appanoose,Iowa,19007,3,2 +2020-05-03,Appanoose,Iowa,19007,3,2 +2020-05-04,Appanoose,Iowa,19007,4,3 +2020-05-05,Appanoose,Iowa,19007,4,3 +2020-05-06,Appanoose,Iowa,19007,4,3 +2020-05-07,Appanoose,Iowa,19007,6,3 +2020-05-08,Appanoose,Iowa,19007,6,3 +2020-05-09,Appanoose,Iowa,19007,6,3 +2020-05-10,Appanoose,Iowa,19007,6,3 +2020-05-11,Appanoose,Iowa,19007,6,3 +2020-05-12,Appanoose,Iowa,19007,7,3 +2020-05-13,Appanoose,Iowa,19007,7,3 +2020-05-14,Appanoose,Iowa,19007,7,3 +2020-05-15,Appanoose,Iowa,19007,7,3 +2020-05-16,Appanoose,Iowa,19007,7,3 +2020-05-17,Appanoose,Iowa,19007,8,3 +2020-05-18,Appanoose,Iowa,19007,8,3 +2020-05-19,Appanoose,Iowa,19007,8,3 +2020-05-20,Appanoose,Iowa,19007,8,3 +2020-05-21,Appanoose,Iowa,19007,8,3 +2020-05-22,Appanoose,Iowa,19007,8,3 +2020-05-23,Appanoose,Iowa,19007,8,3 +2020-05-24,Appanoose,Iowa,19007,12,3 +2020-05-25,Appanoose,Iowa,19007,12,3 +2020-05-26,Appanoose,Iowa,19007,13,3 +2020-05-27,Appanoose,Iowa,19007,13,3 +2020-05-28,Appanoose,Iowa,19007,14,3 +2020-05-29,Appanoose,Iowa,19007,14,3 +2020-05-30,Appanoose,Iowa,19007,15,3 +2020-05-31,Appanoose,Iowa,19007,15,3 +2020-06-01,Appanoose,Iowa,19007,14,3 +2020-06-02,Appanoose,Iowa,19007,14,3 +2020-06-03,Appanoose,Iowa,19007,14,3 +2020-06-04,Appanoose,Iowa,19007,17,3 +2020-06-05,Appanoose,Iowa,19007,17,3 +2020-06-06,Appanoose,Iowa,19007,17,3 +2020-06-07,Appanoose,Iowa,19007,17,3 +2020-06-08,Appanoose,Iowa,19007,16,3 +2020-06-09,Appanoose,Iowa,19007,16,3 +2020-06-10,Appanoose,Iowa,19007,16,3 +2020-06-11,Appanoose,Iowa,19007,16,3 +2020-06-12,Appanoose,Iowa,19007,16,3 +2020-06-13,Appanoose,Iowa,19007,16,3 +2020-06-14,Appanoose,Iowa,19007,17,3 +2020-06-15,Appanoose,Iowa,19007,17,3 +2020-06-16,Appanoose,Iowa,19007,17,3 +2020-06-17,Appanoose,Iowa,19007,17,3 +2020-06-18,Appanoose,Iowa,19007,18,3 +2020-06-19,Appanoose,Iowa,19007,18,3 +2020-06-20,Appanoose,Iowa,19007,18,3 +2020-06-21,Appanoose,Iowa,19007,20,3 +2020-06-22,Appanoose,Iowa,19007,20,3 +2020-06-23,Appanoose,Iowa,19007,20,3 +2020-06-24,Appanoose,Iowa,19007,20,3 +2020-06-25,Appanoose,Iowa,19007,20,3 +2020-06-26,Appanoose,Iowa,19007,20,3 +2020-06-27,Appanoose,Iowa,19007,20,3 +2020-06-28,Appanoose,Iowa,19007,20,3 +2020-06-29,Appanoose,Iowa,19007,20,3 +2020-06-30,Appanoose,Iowa,19007,20,3 +2020-07-01,Appanoose,Iowa,19007,20,3 +2020-07-02,Appanoose,Iowa,19007,20,3 +2020-07-03,Appanoose,Iowa,19007,20,3 +2020-07-04,Appanoose,Iowa,19007,20,3 +2020-07-05,Appanoose,Iowa,19007,20,3 +2020-07-06,Appanoose,Iowa,19007,21,3 +2020-07-07,Appanoose,Iowa,19007,21,3 +2020-07-08,Appanoose,Iowa,19007,21,3 +2020-07-09,Appanoose,Iowa,19007,21,3 +2020-03-30,Audubon,Iowa,19009,1,0 +2020-03-31,Audubon,Iowa,19009,1,0 +2020-04-01,Audubon,Iowa,19009,1,0 +2020-04-02,Audubon,Iowa,19009,1,0 +2020-04-03,Audubon,Iowa,19009,1,0 +2020-04-04,Audubon,Iowa,19009,1,0 +2020-04-05,Audubon,Iowa,19009,1,0 +2020-04-06,Audubon,Iowa,19009,1,0 +2020-04-07,Audubon,Iowa,19009,1,0 +2020-04-08,Audubon,Iowa,19009,1,0 +2020-04-09,Audubon,Iowa,19009,1,0 +2020-04-10,Audubon,Iowa,19009,1,0 +2020-04-11,Audubon,Iowa,19009,1,0 +2020-04-12,Audubon,Iowa,19009,1,0 +2020-04-13,Audubon,Iowa,19009,1,0 +2020-04-14,Audubon,Iowa,19009,1,0 +2020-04-15,Audubon,Iowa,19009,1,0 +2020-04-16,Audubon,Iowa,19009,1,0 +2020-04-17,Audubon,Iowa,19009,1,0 +2020-04-18,Audubon,Iowa,19009,1,0 +2020-04-19,Audubon,Iowa,19009,1,0 +2020-04-20,Audubon,Iowa,19009,1,0 +2020-04-21,Audubon,Iowa,19009,1,0 +2020-04-22,Audubon,Iowa,19009,1,0 +2020-04-23,Audubon,Iowa,19009,1,0 +2020-04-24,Audubon,Iowa,19009,1,0 +2020-04-25,Audubon,Iowa,19009,1,0 +2020-04-26,Audubon,Iowa,19009,1,0 +2020-04-27,Audubon,Iowa,19009,1,0 +2020-04-28,Audubon,Iowa,19009,1,0 +2020-04-29,Audubon,Iowa,19009,1,0 +2020-04-30,Audubon,Iowa,19009,1,0 +2020-05-01,Audubon,Iowa,19009,2,0 +2020-05-02,Audubon,Iowa,19009,2,0 +2020-05-03,Audubon,Iowa,19009,5,0 +2020-05-04,Audubon,Iowa,19009,5,0 +2020-05-05,Audubon,Iowa,19009,8,0 +2020-05-06,Audubon,Iowa,19009,8,0 +2020-05-07,Audubon,Iowa,19009,8,0 +2020-05-08,Audubon,Iowa,19009,9,0 +2020-05-09,Audubon,Iowa,19009,9,0 +2020-05-10,Audubon,Iowa,19009,10,0 +2020-05-11,Audubon,Iowa,19009,10,0 +2020-05-12,Audubon,Iowa,19009,10,1 +2020-05-13,Audubon,Iowa,19009,10,1 +2020-05-14,Audubon,Iowa,19009,11,1 +2020-05-15,Audubon,Iowa,19009,11,1 +2020-05-16,Audubon,Iowa,19009,11,1 +2020-05-17,Audubon,Iowa,19009,11,1 +2020-05-18,Audubon,Iowa,19009,11,1 +2020-05-19,Audubon,Iowa,19009,11,1 +2020-05-20,Audubon,Iowa,19009,11,1 +2020-05-21,Audubon,Iowa,19009,11,1 +2020-05-22,Audubon,Iowa,19009,11,1 +2020-05-23,Audubon,Iowa,19009,11,1 +2020-05-24,Audubon,Iowa,19009,11,1 +2020-05-25,Audubon,Iowa,19009,12,1 +2020-05-26,Audubon,Iowa,19009,12,1 +2020-05-27,Audubon,Iowa,19009,12,1 +2020-05-28,Audubon,Iowa,19009,12,1 +2020-05-29,Audubon,Iowa,19009,12,1 +2020-05-30,Audubon,Iowa,19009,12,1 +2020-05-31,Audubon,Iowa,19009,12,1 +2020-06-01,Audubon,Iowa,19009,12,1 +2020-06-02,Audubon,Iowa,19009,13,1 +2020-06-03,Audubon,Iowa,19009,13,1 +2020-06-04,Audubon,Iowa,19009,13,1 +2020-06-05,Audubon,Iowa,19009,13,1 +2020-06-06,Audubon,Iowa,19009,13,1 +2020-06-07,Audubon,Iowa,19009,13,1 +2020-06-08,Audubon,Iowa,19009,13,1 +2020-06-09,Audubon,Iowa,19009,13,1 +2020-06-10,Audubon,Iowa,19009,14,1 +2020-06-11,Audubon,Iowa,19009,13,1 +2020-06-12,Audubon,Iowa,19009,13,1 +2020-06-13,Audubon,Iowa,19009,13,1 +2020-06-14,Audubon,Iowa,19009,14,1 +2020-06-15,Audubon,Iowa,19009,14,1 +2020-06-16,Audubon,Iowa,19009,14,1 +2020-06-17,Audubon,Iowa,19009,14,1 +2020-06-18,Audubon,Iowa,19009,14,1 +2020-06-19,Audubon,Iowa,19009,15,1 +2020-06-20,Audubon,Iowa,19009,15,1 +2020-06-21,Audubon,Iowa,19009,15,1 +2020-06-22,Audubon,Iowa,19009,15,1 +2020-06-23,Audubon,Iowa,19009,15,1 +2020-06-24,Audubon,Iowa,19009,15,1 +2020-06-25,Audubon,Iowa,19009,16,1 +2020-06-26,Audubon,Iowa,19009,18,1 +2020-06-27,Audubon,Iowa,19009,17,1 +2020-06-28,Audubon,Iowa,19009,17,1 +2020-06-29,Audubon,Iowa,19009,17,1 +2020-06-30,Audubon,Iowa,19009,17,1 +2020-07-01,Audubon,Iowa,19009,16,1 +2020-07-02,Audubon,Iowa,19009,16,1 +2020-07-03,Audubon,Iowa,19009,16,1 +2020-07-04,Audubon,Iowa,19009,16,1 +2020-07-05,Audubon,Iowa,19009,16,1 +2020-07-06,Audubon,Iowa,19009,16,1 +2020-07-07,Audubon,Iowa,19009,16,1 +2020-07-08,Audubon,Iowa,19009,16,1 +2020-07-09,Audubon,Iowa,19009,16,1 +2020-03-25,Benton,Iowa,19011,2,0 +2020-03-26,Benton,Iowa,19011,2,0 +2020-03-27,Benton,Iowa,19011,3,0 +2020-03-28,Benton,Iowa,19011,4,0 +2020-03-29,Benton,Iowa,19011,4,0 +2020-03-30,Benton,Iowa,19011,7,0 +2020-03-31,Benton,Iowa,19011,7,0 +2020-04-01,Benton,Iowa,19011,7,0 +2020-04-02,Benton,Iowa,19011,7,0 +2020-04-03,Benton,Iowa,19011,7,0 +2020-04-04,Benton,Iowa,19011,7,0 +2020-04-05,Benton,Iowa,19011,9,0 +2020-04-06,Benton,Iowa,19011,10,0 +2020-04-07,Benton,Iowa,19011,11,1 +2020-04-08,Benton,Iowa,19011,12,1 +2020-04-09,Benton,Iowa,19011,15,1 +2020-04-10,Benton,Iowa,19011,15,1 +2020-04-11,Benton,Iowa,19011,16,1 +2020-04-12,Benton,Iowa,19011,17,1 +2020-04-13,Benton,Iowa,19011,20,1 +2020-04-14,Benton,Iowa,19011,20,1 +2020-04-15,Benton,Iowa,19011,19,1 +2020-04-16,Benton,Iowa,19011,20,1 +2020-04-17,Benton,Iowa,19011,21,1 +2020-04-18,Benton,Iowa,19011,21,1 +2020-04-19,Benton,Iowa,19011,23,1 +2020-04-20,Benton,Iowa,19011,23,1 +2020-04-21,Benton,Iowa,19011,24,1 +2020-04-22,Benton,Iowa,19011,24,1 +2020-04-23,Benton,Iowa,19011,24,1 +2020-04-24,Benton,Iowa,19011,25,1 +2020-04-25,Benton,Iowa,19011,26,1 +2020-04-26,Benton,Iowa,19011,27,1 +2020-04-27,Benton,Iowa,19011,27,1 +2020-04-28,Benton,Iowa,19011,30,1 +2020-04-29,Benton,Iowa,19011,30,1 +2020-04-30,Benton,Iowa,19011,31,1 +2020-05-01,Benton,Iowa,19011,31,1 +2020-05-02,Benton,Iowa,19011,32,1 +2020-05-03,Benton,Iowa,19011,33,1 +2020-05-04,Benton,Iowa,19011,34,1 +2020-05-05,Benton,Iowa,19011,34,1 +2020-05-06,Benton,Iowa,19011,34,1 +2020-05-07,Benton,Iowa,19011,35,1 +2020-05-08,Benton,Iowa,19011,34,1 +2020-05-09,Benton,Iowa,19011,34,1 +2020-05-10,Benton,Iowa,19011,35,1 +2020-05-11,Benton,Iowa,19011,35,1 +2020-05-12,Benton,Iowa,19011,35,1 +2020-05-13,Benton,Iowa,19011,35,1 +2020-05-14,Benton,Iowa,19011,36,1 +2020-05-15,Benton,Iowa,19011,37,1 +2020-05-16,Benton,Iowa,19011,36,1 +2020-05-17,Benton,Iowa,19011,36,1 +2020-05-18,Benton,Iowa,19011,36,1 +2020-05-19,Benton,Iowa,19011,36,1 +2020-05-20,Benton,Iowa,19011,36,1 +2020-05-21,Benton,Iowa,19011,37,1 +2020-05-22,Benton,Iowa,19011,37,1 +2020-05-23,Benton,Iowa,19011,37,1 +2020-05-24,Benton,Iowa,19011,37,1 +2020-05-25,Benton,Iowa,19011,37,1 +2020-05-26,Benton,Iowa,19011,39,1 +2020-05-27,Benton,Iowa,19011,39,1 +2020-05-28,Benton,Iowa,19011,40,1 +2020-05-29,Benton,Iowa,19011,40,1 +2020-05-30,Benton,Iowa,19011,42,1 +2020-05-31,Benton,Iowa,19011,43,1 +2020-06-01,Benton,Iowa,19011,43,1 +2020-06-02,Benton,Iowa,19011,43,1 +2020-06-03,Benton,Iowa,19011,44,1 +2020-06-04,Benton,Iowa,19011,43,1 +2020-06-05,Benton,Iowa,19011,43,1 +2020-06-06,Benton,Iowa,19011,44,1 +2020-06-07,Benton,Iowa,19011,45,1 +2020-06-08,Benton,Iowa,19011,46,1 +2020-06-09,Benton,Iowa,19011,46,1 +2020-06-10,Benton,Iowa,19011,46,1 +2020-06-11,Benton,Iowa,19011,46,1 +2020-06-12,Benton,Iowa,19011,46,1 +2020-06-13,Benton,Iowa,19011,46,1 +2020-06-14,Benton,Iowa,19011,46,1 +2020-06-15,Benton,Iowa,19011,46,1 +2020-06-16,Benton,Iowa,19011,46,1 +2020-06-17,Benton,Iowa,19011,49,1 +2020-06-18,Benton,Iowa,19011,50,1 +2020-06-19,Benton,Iowa,19011,50,1 +2020-06-20,Benton,Iowa,19011,51,1 +2020-06-21,Benton,Iowa,19011,52,1 +2020-06-22,Benton,Iowa,19011,52,1 +2020-06-23,Benton,Iowa,19011,52,1 +2020-06-24,Benton,Iowa,19011,53,1 +2020-06-25,Benton,Iowa,19011,55,1 +2020-06-26,Benton,Iowa,19011,55,1 +2020-06-27,Benton,Iowa,19011,55,1 +2020-06-28,Benton,Iowa,19011,56,1 +2020-06-29,Benton,Iowa,19011,58,1 +2020-06-30,Benton,Iowa,19011,58,1 +2020-07-01,Benton,Iowa,19011,59,1 +2020-07-02,Benton,Iowa,19011,62,1 +2020-07-03,Benton,Iowa,19011,63,1 +2020-07-04,Benton,Iowa,19011,65,1 +2020-07-05,Benton,Iowa,19011,68,1 +2020-07-06,Benton,Iowa,19011,68,1 +2020-07-07,Benton,Iowa,19011,68,1 +2020-07-08,Benton,Iowa,19011,69,1 +2020-07-09,Benton,Iowa,19011,72,1 +2020-03-17,Black Hawk,Iowa,19013,1,0 +2020-03-18,Black Hawk,Iowa,19013,1,0 +2020-03-19,Black Hawk,Iowa,19013,1,0 +2020-03-20,Black Hawk,Iowa,19013,1,0 +2020-03-21,Black Hawk,Iowa,19013,3,0 +2020-03-22,Black Hawk,Iowa,19013,3,0 +2020-03-23,Black Hawk,Iowa,19013,3,0 +2020-03-24,Black Hawk,Iowa,19013,4,0 +2020-03-25,Black Hawk,Iowa,19013,4,0 +2020-03-26,Black Hawk,Iowa,19013,5,0 +2020-03-27,Black Hawk,Iowa,19013,7,0 +2020-03-28,Black Hawk,Iowa,19013,6,0 +2020-03-29,Black Hawk,Iowa,19013,6,0 +2020-03-30,Black Hawk,Iowa,19013,6,0 +2020-03-31,Black Hawk,Iowa,19013,7,0 +2020-04-01,Black Hawk,Iowa,19013,7,0 +2020-04-02,Black Hawk,Iowa,19013,8,0 +2020-04-03,Black Hawk,Iowa,19013,8,0 +2020-04-04,Black Hawk,Iowa,19013,10,0 +2020-04-05,Black Hawk,Iowa,19013,12,0 +2020-04-06,Black Hawk,Iowa,19013,12,0 +2020-04-07,Black Hawk,Iowa,19013,15,0 +2020-04-08,Black Hawk,Iowa,19013,19,0 +2020-04-09,Black Hawk,Iowa,19013,21,0 +2020-04-10,Black Hawk,Iowa,19013,35,0 +2020-04-11,Black Hawk,Iowa,19013,41,0 +2020-04-12,Black Hawk,Iowa,19013,47,0 +2020-04-13,Black Hawk,Iowa,19013,62,0 +2020-04-14,Black Hawk,Iowa,19013,78,0 +2020-04-15,Black Hawk,Iowa,19013,85,0 +2020-04-16,Black Hawk,Iowa,19013,109,0 +2020-04-17,Black Hawk,Iowa,19013,138,1 +2020-04-18,Black Hawk,Iowa,19013,166,1 +2020-04-19,Black Hawk,Iowa,19013,192,1 +2020-04-20,Black Hawk,Iowa,19013,259,2 +2020-04-21,Black Hawk,Iowa,19013,366,2 +2020-04-22,Black Hawk,Iowa,19013,379,2 +2020-04-23,Black Hawk,Iowa,19013,420,4 +2020-04-24,Black Hawk,Iowa,19013,530,7 +2020-04-25,Black Hawk,Iowa,19013,692,8 +2020-04-26,Black Hawk,Iowa,19013,715,9 +2020-04-27,Black Hawk,Iowa,19013,844,11 +2020-04-28,Black Hawk,Iowa,19013,941,12 +2020-04-29,Black Hawk,Iowa,19013,1082,13 +2020-04-30,Black Hawk,Iowa,19013,1140,13 +2020-05-01,Black Hawk,Iowa,19013,1195,13 +2020-05-02,Black Hawk,Iowa,19013,1255,13 +2020-05-03,Black Hawk,Iowa,19013,1306,15 +2020-05-04,Black Hawk,Iowa,19013,1361,15 +2020-05-05,Black Hawk,Iowa,19013,1378,18 +2020-05-06,Black Hawk,Iowa,19013,1396,19 +2020-05-07,Black Hawk,Iowa,19013,1450,19 +2020-05-08,Black Hawk,Iowa,19013,1463,20 +2020-05-09,Black Hawk,Iowa,19013,1477,20 +2020-05-10,Black Hawk,Iowa,19013,1493,23 +2020-05-11,Black Hawk,Iowa,19013,1512,25 +2020-05-12,Black Hawk,Iowa,19013,1521,28 +2020-05-13,Black Hawk,Iowa,19013,1528,28 +2020-05-14,Black Hawk,Iowa,19013,1533,29 +2020-05-15,Black Hawk,Iowa,19013,1548,29 +2020-05-16,Black Hawk,Iowa,19013,1571,29 +2020-05-17,Black Hawk,Iowa,19013,1587,30 +2020-05-18,Black Hawk,Iowa,19013,1603,30 +2020-05-19,Black Hawk,Iowa,19013,1628,31 +2020-05-20,Black Hawk,Iowa,19013,1643,37 +2020-05-21,Black Hawk,Iowa,19013,1655,37 +2020-05-22,Black Hawk,Iowa,19013,1663,37 +2020-05-23,Black Hawk,Iowa,19013,1663,37 +2020-05-24,Black Hawk,Iowa,19013,1680,39 +2020-05-25,Black Hawk,Iowa,19013,1686,39 +2020-05-26,Black Hawk,Iowa,19013,1696,41 +2020-05-27,Black Hawk,Iowa,19013,1713,43 +2020-05-28,Black Hawk,Iowa,19013,1724,43 +2020-05-29,Black Hawk,Iowa,19013,1730,44 +2020-05-30,Black Hawk,Iowa,19013,1743,44 +2020-05-31,Black Hawk,Iowa,19013,1747,44 +2020-06-01,Black Hawk,Iowa,19013,1750,45 +2020-06-02,Black Hawk,Iowa,19013,1759,46 +2020-06-03,Black Hawk,Iowa,19013,1759,46 +2020-06-04,Black Hawk,Iowa,19013,1776,49 +2020-06-05,Black Hawk,Iowa,19013,1788,49 +2020-06-06,Black Hawk,Iowa,19013,1791,50 +2020-06-07,Black Hawk,Iowa,19013,1800,50 +2020-06-08,Black Hawk,Iowa,19013,1801,51 +2020-06-09,Black Hawk,Iowa,19013,1802,52 +2020-06-10,Black Hawk,Iowa,19013,1817,53 +2020-06-11,Black Hawk,Iowa,19013,1821,53 +2020-06-12,Black Hawk,Iowa,19013,1825,53 +2020-06-13,Black Hawk,Iowa,19013,1830,53 +2020-06-14,Black Hawk,Iowa,19013,1834,53 +2020-06-15,Black Hawk,Iowa,19013,1836,55 +2020-06-16,Black Hawk,Iowa,19013,1840,55 +2020-06-17,Black Hawk,Iowa,19013,1846,56 +2020-06-18,Black Hawk,Iowa,19013,1866,56 +2020-06-19,Black Hawk,Iowa,19013,1876,56 +2020-06-20,Black Hawk,Iowa,19013,1883,56 +2020-06-21,Black Hawk,Iowa,19013,1895,56 +2020-06-22,Black Hawk,Iowa,19013,1899,56 +2020-06-23,Black Hawk,Iowa,19013,1914,56 +2020-06-24,Black Hawk,Iowa,19013,1932,56 +2020-06-25,Black Hawk,Iowa,19013,1962,57 +2020-06-26,Black Hawk,Iowa,19013,2002,57 +2020-06-27,Black Hawk,Iowa,19013,2023,57 +2020-06-28,Black Hawk,Iowa,19013,2059,57 +2020-06-29,Black Hawk,Iowa,19013,2082,57 +2020-06-30,Black Hawk,Iowa,19013,2103,58 +2020-07-01,Black Hawk,Iowa,19013,2138,58 +2020-07-02,Black Hawk,Iowa,19013,2180,58 +2020-07-03,Black Hawk,Iowa,19013,2235,58 +2020-07-04,Black Hawk,Iowa,19013,2265,58 +2020-07-05,Black Hawk,Iowa,19013,2293,58 +2020-07-06,Black Hawk,Iowa,19013,2302,58 +2020-07-07,Black Hawk,Iowa,19013,2323,58 +2020-07-08,Black Hawk,Iowa,19013,2362,58 +2020-07-09,Black Hawk,Iowa,19013,2400,59 +2020-03-28,Boone,Iowa,19015,1,0 +2020-03-29,Boone,Iowa,19015,1,0 +2020-03-30,Boone,Iowa,19015,1,0 +2020-03-31,Boone,Iowa,19015,1,0 +2020-04-01,Boone,Iowa,19015,1,0 +2020-04-02,Boone,Iowa,19015,2,0 +2020-04-03,Boone,Iowa,19015,2,0 +2020-04-04,Boone,Iowa,19015,2,0 +2020-04-05,Boone,Iowa,19015,3,0 +2020-04-06,Boone,Iowa,19015,3,0 +2020-04-07,Boone,Iowa,19015,3,0 +2020-04-08,Boone,Iowa,19015,3,0 +2020-04-09,Boone,Iowa,19015,4,0 +2020-04-10,Boone,Iowa,19015,4,0 +2020-04-11,Boone,Iowa,19015,4,0 +2020-04-12,Boone,Iowa,19015,4,0 +2020-04-13,Boone,Iowa,19015,4,0 +2020-04-14,Boone,Iowa,19015,4,0 +2020-04-15,Boone,Iowa,19015,4,0 +2020-04-16,Boone,Iowa,19015,4,0 +2020-04-17,Boone,Iowa,19015,4,0 +2020-04-18,Boone,Iowa,19015,4,0 +2020-04-19,Boone,Iowa,19015,6,0 +2020-04-20,Boone,Iowa,19015,6,0 +2020-04-21,Boone,Iowa,19015,6,0 +2020-04-22,Boone,Iowa,19015,6,0 +2020-04-23,Boone,Iowa,19015,6,0 +2020-04-24,Boone,Iowa,19015,6,0 +2020-04-25,Boone,Iowa,19015,6,0 +2020-04-26,Boone,Iowa,19015,7,0 +2020-04-27,Boone,Iowa,19015,7,0 +2020-04-28,Boone,Iowa,19015,8,0 +2020-04-29,Boone,Iowa,19015,10,0 +2020-04-30,Boone,Iowa,19015,12,0 +2020-05-01,Boone,Iowa,19015,16,0 +2020-05-02,Boone,Iowa,19015,23,0 +2020-05-03,Boone,Iowa,19015,23,0 +2020-05-04,Boone,Iowa,19015,28,0 +2020-05-05,Boone,Iowa,19015,28,0 +2020-05-06,Boone,Iowa,19015,29,0 +2020-05-07,Boone,Iowa,19015,33,0 +2020-05-08,Boone,Iowa,19015,33,0 +2020-05-09,Boone,Iowa,19015,34,0 +2020-05-10,Boone,Iowa,19015,34,0 +2020-05-11,Boone,Iowa,19015,36,0 +2020-05-12,Boone,Iowa,19015,36,0 +2020-05-13,Boone,Iowa,19015,41,0 +2020-05-14,Boone,Iowa,19015,41,0 +2020-05-15,Boone,Iowa,19015,41,0 +2020-05-16,Boone,Iowa,19015,41,0 +2020-05-17,Boone,Iowa,19015,42,0 +2020-05-18,Boone,Iowa,19015,42,0 +2020-05-19,Boone,Iowa,19015,46,0 +2020-05-20,Boone,Iowa,19015,49,0 +2020-05-21,Boone,Iowa,19015,50,0 +2020-05-22,Boone,Iowa,19015,53,0 +2020-05-23,Boone,Iowa,19015,53,0 +2020-05-24,Boone,Iowa,19015,55,0 +2020-05-25,Boone,Iowa,19015,55,0 +2020-05-26,Boone,Iowa,19015,55,0 +2020-05-27,Boone,Iowa,19015,57,0 +2020-05-28,Boone,Iowa,19015,57,0 +2020-05-29,Boone,Iowa,19015,59,0 +2020-05-30,Boone,Iowa,19015,61,0 +2020-05-31,Boone,Iowa,19015,62,0 +2020-06-01,Boone,Iowa,19015,65,0 +2020-06-02,Boone,Iowa,19015,67,0 +2020-06-03,Boone,Iowa,19015,67,0 +2020-06-04,Boone,Iowa,19015,70,0 +2020-06-05,Boone,Iowa,19015,72,0 +2020-06-06,Boone,Iowa,19015,72,0 +2020-06-07,Boone,Iowa,19015,77,0 +2020-06-08,Boone,Iowa,19015,78,0 +2020-06-09,Boone,Iowa,19015,78,0 +2020-06-10,Boone,Iowa,19015,79,0 +2020-06-11,Boone,Iowa,19015,83,0 +2020-06-12,Boone,Iowa,19015,94,0 +2020-06-13,Boone,Iowa,19015,96,0 +2020-06-14,Boone,Iowa,19015,100,0 +2020-06-15,Boone,Iowa,19015,101,1 +2020-06-16,Boone,Iowa,19015,101,1 +2020-06-17,Boone,Iowa,19015,103,1 +2020-06-18,Boone,Iowa,19015,105,1 +2020-06-19,Boone,Iowa,19015,107,1 +2020-06-20,Boone,Iowa,19015,108,1 +2020-06-21,Boone,Iowa,19015,118,1 +2020-06-22,Boone,Iowa,19015,115,1 +2020-06-23,Boone,Iowa,19015,115,1 +2020-06-24,Boone,Iowa,19015,120,1 +2020-06-25,Boone,Iowa,19015,128,1 +2020-06-26,Boone,Iowa,19015,131,1 +2020-06-27,Boone,Iowa,19015,131,1 +2020-06-28,Boone,Iowa,19015,134,1 +2020-06-29,Boone,Iowa,19015,135,1 +2020-06-30,Boone,Iowa,19015,136,1 +2020-07-01,Boone,Iowa,19015,136,1 +2020-07-02,Boone,Iowa,19015,142,1 +2020-07-03,Boone,Iowa,19015,146,1 +2020-07-04,Boone,Iowa,19015,148,1 +2020-07-05,Boone,Iowa,19015,148,1 +2020-07-06,Boone,Iowa,19015,148,1 +2020-07-07,Boone,Iowa,19015,150,1 +2020-07-08,Boone,Iowa,19015,157,1 +2020-07-09,Boone,Iowa,19015,160,1 +2020-04-02,Bremer,Iowa,19017,1,0 +2020-04-03,Bremer,Iowa,19017,1,0 +2020-04-04,Bremer,Iowa,19017,2,0 +2020-04-05,Bremer,Iowa,19017,2,0 +2020-04-06,Bremer,Iowa,19017,2,0 +2020-04-07,Bremer,Iowa,19017,2,0 +2020-04-08,Bremer,Iowa,19017,2,0 +2020-04-09,Bremer,Iowa,19017,2,0 +2020-04-10,Bremer,Iowa,19017,2,0 +2020-04-11,Bremer,Iowa,19017,3,0 +2020-04-12,Bremer,Iowa,19017,3,0 +2020-04-13,Bremer,Iowa,19017,4,0 +2020-04-14,Bremer,Iowa,19017,9,0 +2020-04-15,Bremer,Iowa,19017,9,0 +2020-04-16,Bremer,Iowa,19017,10,0 +2020-04-17,Bremer,Iowa,19017,23,0 +2020-04-18,Bremer,Iowa,19017,26,0 +2020-04-19,Bremer,Iowa,19017,26,0 +2020-04-20,Bremer,Iowa,19017,28,0 +2020-04-21,Bremer,Iowa,19017,32,0 +2020-04-22,Bremer,Iowa,19017,33,0 +2020-04-23,Bremer,Iowa,19017,34,1 +2020-04-24,Bremer,Iowa,19017,35,2 +2020-04-25,Bremer,Iowa,19017,38,2 +2020-04-26,Bremer,Iowa,19017,41,2 +2020-04-27,Bremer,Iowa,19017,45,3 +2020-04-28,Bremer,Iowa,19017,48,3 +2020-04-29,Bremer,Iowa,19017,50,3 +2020-04-30,Bremer,Iowa,19017,51,3 +2020-05-01,Bremer,Iowa,19017,51,4 +2020-05-02,Bremer,Iowa,19017,52,4 +2020-05-03,Bremer,Iowa,19017,53,5 +2020-05-04,Bremer,Iowa,19017,55,5 +2020-05-05,Bremer,Iowa,19017,55,5 +2020-05-06,Bremer,Iowa,19017,55,5 +2020-05-07,Bremer,Iowa,19017,56,5 +2020-05-08,Bremer,Iowa,19017,57,5 +2020-05-09,Bremer,Iowa,19017,58,5 +2020-05-10,Bremer,Iowa,19017,58,5 +2020-05-11,Bremer,Iowa,19017,58,5 +2020-05-12,Bremer,Iowa,19017,60,5 +2020-05-13,Bremer,Iowa,19017,62,5 +2020-05-14,Bremer,Iowa,19017,62,5 +2020-05-15,Bremer,Iowa,19017,63,5 +2020-05-16,Bremer,Iowa,19017,64,5 +2020-05-17,Bremer,Iowa,19017,64,5 +2020-05-18,Bremer,Iowa,19017,64,5 +2020-05-19,Bremer,Iowa,19017,65,5 +2020-05-20,Bremer,Iowa,19017,65,5 +2020-05-21,Bremer,Iowa,19017,65,5 +2020-05-22,Bremer,Iowa,19017,66,5 +2020-05-23,Bremer,Iowa,19017,66,5 +2020-05-24,Bremer,Iowa,19017,67,6 +2020-05-25,Bremer,Iowa,19017,67,6 +2020-05-26,Bremer,Iowa,19017,67,6 +2020-05-27,Bremer,Iowa,19017,67,6 +2020-05-28,Bremer,Iowa,19017,67,6 +2020-05-29,Bremer,Iowa,19017,69,6 +2020-05-30,Bremer,Iowa,19017,69,6 +2020-05-31,Bremer,Iowa,19017,70,6 +2020-06-01,Bremer,Iowa,19017,69,6 +2020-06-02,Bremer,Iowa,19017,69,6 +2020-06-03,Bremer,Iowa,19017,70,6 +2020-06-04,Bremer,Iowa,19017,71,6 +2020-06-05,Bremer,Iowa,19017,71,6 +2020-06-06,Bremer,Iowa,19017,71,6 +2020-06-07,Bremer,Iowa,19017,74,6 +2020-06-08,Bremer,Iowa,19017,74,6 +2020-06-09,Bremer,Iowa,19017,74,6 +2020-06-10,Bremer,Iowa,19017,74,6 +2020-06-11,Bremer,Iowa,19017,74,6 +2020-06-12,Bremer,Iowa,19017,74,6 +2020-06-13,Bremer,Iowa,19017,74,6 +2020-06-14,Bremer,Iowa,19017,74,6 +2020-06-15,Bremer,Iowa,19017,74,6 +2020-06-16,Bremer,Iowa,19017,74,6 +2020-06-17,Bremer,Iowa,19017,78,6 +2020-06-18,Bremer,Iowa,19017,81,6 +2020-06-19,Bremer,Iowa,19017,81,6 +2020-06-20,Bremer,Iowa,19017,81,6 +2020-06-21,Bremer,Iowa,19017,82,6 +2020-06-22,Bremer,Iowa,19017,82,6 +2020-06-23,Bremer,Iowa,19017,85,6 +2020-06-24,Bremer,Iowa,19017,85,6 +2020-06-25,Bremer,Iowa,19017,86,6 +2020-06-26,Bremer,Iowa,19017,85,6 +2020-06-27,Bremer,Iowa,19017,85,6 +2020-06-28,Bremer,Iowa,19017,86,6 +2020-06-29,Bremer,Iowa,19017,87,6 +2020-06-30,Bremer,Iowa,19017,87,6 +2020-07-01,Bremer,Iowa,19017,88,6 +2020-07-02,Bremer,Iowa,19017,90,6 +2020-07-03,Bremer,Iowa,19017,92,6 +2020-07-04,Bremer,Iowa,19017,93,6 +2020-07-05,Bremer,Iowa,19017,94,6 +2020-07-06,Bremer,Iowa,19017,94,6 +2020-07-07,Bremer,Iowa,19017,95,7 +2020-07-08,Bremer,Iowa,19017,98,7 +2020-07-09,Bremer,Iowa,19017,102,7 +2020-03-24,Buchanan,Iowa,19019,1,0 +2020-03-25,Buchanan,Iowa,19019,1,0 +2020-03-26,Buchanan,Iowa,19019,1,0 +2020-03-27,Buchanan,Iowa,19019,1,0 +2020-03-28,Buchanan,Iowa,19019,2,0 +2020-03-29,Buchanan,Iowa,19019,2,0 +2020-03-30,Buchanan,Iowa,19019,2,0 +2020-03-31,Buchanan,Iowa,19019,2,0 +2020-04-01,Buchanan,Iowa,19019,2,0 +2020-04-02,Buchanan,Iowa,19019,3,0 +2020-04-03,Buchanan,Iowa,19019,3,0 +2020-04-04,Buchanan,Iowa,19019,3,0 +2020-04-05,Buchanan,Iowa,19019,5,0 +2020-04-06,Buchanan,Iowa,19019,5,0 +2020-04-07,Buchanan,Iowa,19019,5,0 +2020-04-08,Buchanan,Iowa,19019,5,0 +2020-04-09,Buchanan,Iowa,19019,6,0 +2020-04-10,Buchanan,Iowa,19019,6,0 +2020-04-11,Buchanan,Iowa,19019,6,0 +2020-04-12,Buchanan,Iowa,19019,7,0 +2020-04-13,Buchanan,Iowa,19019,8,0 +2020-04-14,Buchanan,Iowa,19019,8,0 +2020-04-15,Buchanan,Iowa,19019,8,0 +2020-04-16,Buchanan,Iowa,19019,8,0 +2020-04-17,Buchanan,Iowa,19019,8,0 +2020-04-18,Buchanan,Iowa,19019,8,0 +2020-04-19,Buchanan,Iowa,19019,8,0 +2020-04-20,Buchanan,Iowa,19019,11,0 +2020-04-21,Buchanan,Iowa,19019,11,0 +2020-04-22,Buchanan,Iowa,19019,11,0 +2020-04-23,Buchanan,Iowa,19019,11,0 +2020-04-24,Buchanan,Iowa,19019,13,0 +2020-04-25,Buchanan,Iowa,19019,12,0 +2020-04-26,Buchanan,Iowa,19019,12,0 +2020-04-27,Buchanan,Iowa,19019,12,0 +2020-04-28,Buchanan,Iowa,19019,14,0 +2020-04-29,Buchanan,Iowa,19019,16,0 +2020-04-30,Buchanan,Iowa,19019,17,0 +2020-05-01,Buchanan,Iowa,19019,18,0 +2020-05-02,Buchanan,Iowa,19019,19,0 +2020-05-03,Buchanan,Iowa,19019,20,0 +2020-05-04,Buchanan,Iowa,19019,20,0 +2020-05-05,Buchanan,Iowa,19019,22,0 +2020-05-06,Buchanan,Iowa,19019,22,0 +2020-05-07,Buchanan,Iowa,19019,22,0 +2020-05-08,Buchanan,Iowa,19019,23,0 +2020-05-09,Buchanan,Iowa,19019,23,0 +2020-05-10,Buchanan,Iowa,19019,23,0 +2020-05-11,Buchanan,Iowa,19019,23,0 +2020-05-12,Buchanan,Iowa,19019,23,0 +2020-05-13,Buchanan,Iowa,19019,24,0 +2020-05-14,Buchanan,Iowa,19019,24,0 +2020-05-15,Buchanan,Iowa,19019,26,0 +2020-05-16,Buchanan,Iowa,19019,26,0 +2020-05-17,Buchanan,Iowa,19019,26,0 +2020-05-18,Buchanan,Iowa,19019,26,0 +2020-05-19,Buchanan,Iowa,19019,26,0 +2020-05-20,Buchanan,Iowa,19019,29,0 +2020-05-21,Buchanan,Iowa,19019,30,0 +2020-05-22,Buchanan,Iowa,19019,31,0 +2020-05-23,Buchanan,Iowa,19019,31,0 +2020-05-24,Buchanan,Iowa,19019,32,0 +2020-05-25,Buchanan,Iowa,19019,32,0 +2020-05-26,Buchanan,Iowa,19019,31,0 +2020-05-27,Buchanan,Iowa,19019,31,0 +2020-05-28,Buchanan,Iowa,19019,32,0 +2020-05-29,Buchanan,Iowa,19019,32,0 +2020-05-30,Buchanan,Iowa,19019,33,0 +2020-05-31,Buchanan,Iowa,19019,33,0 +2020-06-01,Buchanan,Iowa,19019,33,0 +2020-06-02,Buchanan,Iowa,19019,33,0 +2020-06-03,Buchanan,Iowa,19019,33,0 +2020-06-04,Buchanan,Iowa,19019,33,0 +2020-06-05,Buchanan,Iowa,19019,34,1 +2020-06-06,Buchanan,Iowa,19019,34,1 +2020-06-07,Buchanan,Iowa,19019,34,1 +2020-06-08,Buchanan,Iowa,19019,34,1 +2020-06-09,Buchanan,Iowa,19019,34,1 +2020-06-10,Buchanan,Iowa,19019,34,1 +2020-06-11,Buchanan,Iowa,19019,34,1 +2020-06-12,Buchanan,Iowa,19019,34,1 +2020-06-13,Buchanan,Iowa,19019,35,1 +2020-06-14,Buchanan,Iowa,19019,35,1 +2020-06-15,Buchanan,Iowa,19019,35,1 +2020-06-16,Buchanan,Iowa,19019,35,1 +2020-06-17,Buchanan,Iowa,19019,35,1 +2020-06-18,Buchanan,Iowa,19019,36,1 +2020-06-19,Buchanan,Iowa,19019,37,1 +2020-06-20,Buchanan,Iowa,19019,37,1 +2020-06-21,Buchanan,Iowa,19019,37,1 +2020-06-22,Buchanan,Iowa,19019,38,1 +2020-06-23,Buchanan,Iowa,19019,40,1 +2020-06-24,Buchanan,Iowa,19019,42,1 +2020-06-25,Buchanan,Iowa,19019,41,1 +2020-06-26,Buchanan,Iowa,19019,42,1 +2020-06-27,Buchanan,Iowa,19019,42,1 +2020-06-28,Buchanan,Iowa,19019,43,1 +2020-06-29,Buchanan,Iowa,19019,44,1 +2020-06-30,Buchanan,Iowa,19019,45,1 +2020-07-01,Buchanan,Iowa,19019,47,1 +2020-07-02,Buchanan,Iowa,19019,51,1 +2020-07-03,Buchanan,Iowa,19019,50,1 +2020-07-04,Buchanan,Iowa,19019,50,1 +2020-07-05,Buchanan,Iowa,19019,54,1 +2020-07-06,Buchanan,Iowa,19019,55,1 +2020-07-07,Buchanan,Iowa,19019,60,1 +2020-07-08,Buchanan,Iowa,19019,60,1 +2020-07-09,Buchanan,Iowa,19019,61,1 +2020-04-07,Buena Vista,Iowa,19021,1,0 +2020-04-08,Buena Vista,Iowa,19021,1,0 +2020-04-09,Buena Vista,Iowa,19021,1,0 +2020-04-10,Buena Vista,Iowa,19021,1,0 +2020-04-11,Buena Vista,Iowa,19021,2,0 +2020-04-12,Buena Vista,Iowa,19021,2,0 +2020-04-13,Buena Vista,Iowa,19021,2,0 +2020-04-14,Buena Vista,Iowa,19021,2,0 +2020-04-15,Buena Vista,Iowa,19021,2,0 +2020-04-16,Buena Vista,Iowa,19021,2,0 +2020-04-17,Buena Vista,Iowa,19021,2,0 +2020-04-18,Buena Vista,Iowa,19021,2,0 +2020-04-19,Buena Vista,Iowa,19021,2,0 +2020-04-20,Buena Vista,Iowa,19021,2,0 +2020-04-21,Buena Vista,Iowa,19021,2,0 +2020-04-22,Buena Vista,Iowa,19021,2,0 +2020-04-23,Buena Vista,Iowa,19021,3,0 +2020-04-24,Buena Vista,Iowa,19021,3,0 +2020-04-25,Buena Vista,Iowa,19021,3,0 +2020-04-26,Buena Vista,Iowa,19021,4,0 +2020-04-27,Buena Vista,Iowa,19021,4,0 +2020-04-28,Buena Vista,Iowa,19021,4,0 +2020-04-29,Buena Vista,Iowa,19021,4,0 +2020-04-30,Buena Vista,Iowa,19021,4,0 +2020-05-01,Buena Vista,Iowa,19021,6,0 +2020-05-02,Buena Vista,Iowa,19021,5,0 +2020-05-03,Buena Vista,Iowa,19021,8,0 +2020-05-04,Buena Vista,Iowa,19021,11,0 +2020-05-05,Buena Vista,Iowa,19021,15,0 +2020-05-06,Buena Vista,Iowa,19021,16,0 +2020-05-07,Buena Vista,Iowa,19021,18,0 +2020-05-08,Buena Vista,Iowa,19021,32,0 +2020-05-09,Buena Vista,Iowa,19021,30,0 +2020-05-10,Buena Vista,Iowa,19021,31,0 +2020-05-11,Buena Vista,Iowa,19021,39,0 +2020-05-12,Buena Vista,Iowa,19021,41,0 +2020-05-13,Buena Vista,Iowa,19021,45,0 +2020-05-14,Buena Vista,Iowa,19021,74,0 +2020-05-15,Buena Vista,Iowa,19021,83,0 +2020-05-16,Buena Vista,Iowa,19021,82,0 +2020-05-17,Buena Vista,Iowa,19021,102,0 +2020-05-18,Buena Vista,Iowa,19021,113,0 +2020-05-19,Buena Vista,Iowa,19021,117,0 +2020-05-20,Buena Vista,Iowa,19021,130,0 +2020-05-21,Buena Vista,Iowa,19021,134,0 +2020-05-22,Buena Vista,Iowa,19021,140,0 +2020-05-23,Buena Vista,Iowa,19021,140,0 +2020-05-24,Buena Vista,Iowa,19021,239,0 +2020-05-25,Buena Vista,Iowa,19021,246,0 +2020-05-26,Buena Vista,Iowa,19021,496,0 +2020-05-27,Buena Vista,Iowa,19021,688,0 +2020-05-28,Buena Vista,Iowa,19021,707,0 +2020-05-29,Buena Vista,Iowa,19021,724,0 +2020-05-30,Buena Vista,Iowa,19021,743,0 +2020-05-31,Buena Vista,Iowa,19021,793,0 +2020-06-01,Buena Vista,Iowa,19021,814,1 +2020-06-02,Buena Vista,Iowa,19021,854,1 +2020-06-03,Buena Vista,Iowa,19021,951,1 +2020-06-04,Buena Vista,Iowa,19021,1024,2 +2020-06-05,Buena Vista,Iowa,19021,1091,2 +2020-06-06,Buena Vista,Iowa,19021,1115,2 +2020-06-07,Buena Vista,Iowa,19021,1154,2 +2020-06-08,Buena Vista,Iowa,19021,1221,4 +2020-06-09,Buena Vista,Iowa,19021,1261,4 +2020-06-10,Buena Vista,Iowa,19021,1359,4 +2020-06-11,Buena Vista,Iowa,19021,1430,4 +2020-06-12,Buena Vista,Iowa,19021,1488,6 +2020-06-13,Buena Vista,Iowa,19021,1567,6 +2020-06-14,Buena Vista,Iowa,19021,1588,6 +2020-06-15,Buena Vista,Iowa,19021,1595,7 +2020-06-16,Buena Vista,Iowa,19021,1602,10 +2020-06-17,Buena Vista,Iowa,19021,1620,10 +2020-06-18,Buena Vista,Iowa,19021,1627,10 +2020-06-19,Buena Vista,Iowa,19021,1640,10 +2020-06-20,Buena Vista,Iowa,19021,1649,10 +2020-06-21,Buena Vista,Iowa,19021,1667,10 +2020-06-22,Buena Vista,Iowa,19021,1669,10 +2020-06-23,Buena Vista,Iowa,19021,1670,10 +2020-06-24,Buena Vista,Iowa,19021,1675,10 +2020-06-25,Buena Vista,Iowa,19021,1677,11 +2020-06-26,Buena Vista,Iowa,19021,1687,11 +2020-06-27,Buena Vista,Iowa,19021,1689,11 +2020-06-28,Buena Vista,Iowa,19021,1692,11 +2020-06-29,Buena Vista,Iowa,19021,1694,11 +2020-06-30,Buena Vista,Iowa,19021,1695,11 +2020-07-01,Buena Vista,Iowa,19021,1699,11 +2020-07-02,Buena Vista,Iowa,19021,1705,11 +2020-07-03,Buena Vista,Iowa,19021,1709,11 +2020-07-04,Buena Vista,Iowa,19021,1711,11 +2020-07-05,Buena Vista,Iowa,19021,1712,11 +2020-07-06,Buena Vista,Iowa,19021,1714,11 +2020-07-07,Buena Vista,Iowa,19021,1719,11 +2020-07-08,Buena Vista,Iowa,19021,1724,11 +2020-07-09,Buena Vista,Iowa,19021,1727,11 +2020-03-27,Butler,Iowa,19023,1,0 +2020-03-28,Butler,Iowa,19023,1,0 +2020-03-29,Butler,Iowa,19023,1,0 +2020-03-30,Butler,Iowa,19023,1,0 +2020-03-31,Butler,Iowa,19023,1,0 +2020-04-01,Butler,Iowa,19023,1,0 +2020-04-02,Butler,Iowa,19023,1,0 +2020-04-03,Butler,Iowa,19023,1,0 +2020-04-04,Butler,Iowa,19023,1,0 +2020-04-05,Butler,Iowa,19023,1,0 +2020-04-06,Butler,Iowa,19023,1,0 +2020-04-07,Butler,Iowa,19023,1,0 +2020-04-08,Butler,Iowa,19023,1,0 +2020-04-09,Butler,Iowa,19023,1,0 +2020-04-10,Butler,Iowa,19023,1,0 +2020-04-11,Butler,Iowa,19023,1,0 +2020-04-12,Butler,Iowa,19023,1,0 +2020-04-13,Butler,Iowa,19023,1,0 +2020-04-14,Butler,Iowa,19023,1,0 +2020-04-15,Butler,Iowa,19023,1,0 +2020-04-16,Butler,Iowa,19023,1,0 +2020-04-17,Butler,Iowa,19023,1,0 +2020-04-18,Butler,Iowa,19023,1,0 +2020-04-19,Butler,Iowa,19023,1,0 +2020-04-20,Butler,Iowa,19023,1,0 +2020-04-21,Butler,Iowa,19023,2,0 +2020-04-22,Butler,Iowa,19023,2,0 +2020-04-23,Butler,Iowa,19023,2,0 +2020-04-24,Butler,Iowa,19023,2,0 +2020-04-25,Butler,Iowa,19023,4,0 +2020-04-26,Butler,Iowa,19023,4,0 +2020-04-27,Butler,Iowa,19023,8,0 +2020-04-28,Butler,Iowa,19023,8,0 +2020-04-29,Butler,Iowa,19023,8,0 +2020-04-30,Butler,Iowa,19023,9,0 +2020-05-01,Butler,Iowa,19023,9,0 +2020-05-02,Butler,Iowa,19023,9,0 +2020-05-03,Butler,Iowa,19023,9,0 +2020-05-04,Butler,Iowa,19023,9,0 +2020-05-05,Butler,Iowa,19023,10,0 +2020-05-06,Butler,Iowa,19023,10,0 +2020-05-07,Butler,Iowa,19023,11,0 +2020-05-08,Butler,Iowa,19023,12,0 +2020-05-09,Butler,Iowa,19023,12,0 +2020-05-10,Butler,Iowa,19023,12,0 +2020-05-11,Butler,Iowa,19023,12,0 +2020-05-12,Butler,Iowa,19023,12,0 +2020-05-13,Butler,Iowa,19023,12,0 +2020-05-14,Butler,Iowa,19023,13,0 +2020-05-15,Butler,Iowa,19023,13,0 +2020-05-16,Butler,Iowa,19023,13,0 +2020-05-17,Butler,Iowa,19023,14,0 +2020-05-18,Butler,Iowa,19023,14,0 +2020-05-19,Butler,Iowa,19023,14,0 +2020-05-20,Butler,Iowa,19023,14,0 +2020-05-21,Butler,Iowa,19023,14,0 +2020-05-22,Butler,Iowa,19023,15,0 +2020-05-23,Butler,Iowa,19023,15,0 +2020-05-24,Butler,Iowa,19023,15,0 +2020-05-25,Butler,Iowa,19023,15,0 +2020-05-26,Butler,Iowa,19023,15,0 +2020-05-27,Butler,Iowa,19023,15,0 +2020-05-28,Butler,Iowa,19023,15,0 +2020-05-29,Butler,Iowa,19023,15,0 +2020-05-30,Butler,Iowa,19023,15,1 +2020-05-31,Butler,Iowa,19023,16,1 +2020-06-01,Butler,Iowa,19023,17,1 +2020-06-02,Butler,Iowa,19023,16,1 +2020-06-03,Butler,Iowa,19023,17,1 +2020-06-04,Butler,Iowa,19023,16,1 +2020-06-05,Butler,Iowa,19023,16,1 +2020-06-06,Butler,Iowa,19023,16,1 +2020-06-07,Butler,Iowa,19023,16,1 +2020-06-08,Butler,Iowa,19023,16,1 +2020-06-09,Butler,Iowa,19023,16,2 +2020-06-10,Butler,Iowa,19023,19,2 +2020-06-11,Butler,Iowa,19023,19,2 +2020-06-12,Butler,Iowa,19023,19,2 +2020-06-13,Butler,Iowa,19023,22,2 +2020-06-14,Butler,Iowa,19023,23,2 +2020-06-15,Butler,Iowa,19023,23,2 +2020-06-16,Butler,Iowa,19023,24,2 +2020-06-17,Butler,Iowa,19023,28,2 +2020-06-18,Butler,Iowa,19023,31,2 +2020-06-19,Butler,Iowa,19023,32,2 +2020-06-20,Butler,Iowa,19023,33,2 +2020-06-21,Butler,Iowa,19023,35,2 +2020-06-22,Butler,Iowa,19023,35,2 +2020-06-23,Butler,Iowa,19023,36,2 +2020-06-24,Butler,Iowa,19023,37,2 +2020-06-25,Butler,Iowa,19023,40,2 +2020-06-26,Butler,Iowa,19023,41,2 +2020-06-27,Butler,Iowa,19023,41,2 +2020-06-28,Butler,Iowa,19023,42,2 +2020-06-29,Butler,Iowa,19023,45,2 +2020-06-30,Butler,Iowa,19023,46,2 +2020-07-01,Butler,Iowa,19023,47,2 +2020-07-02,Butler,Iowa,19023,52,2 +2020-07-03,Butler,Iowa,19023,52,2 +2020-07-04,Butler,Iowa,19023,53,2 +2020-07-05,Butler,Iowa,19023,56,2 +2020-07-06,Butler,Iowa,19023,57,2 +2020-07-07,Butler,Iowa,19023,59,2 +2020-07-08,Butler,Iowa,19023,60,2 +2020-07-09,Butler,Iowa,19023,60,2 +2020-05-01,Calhoun,Iowa,19025,1,0 +2020-05-02,Calhoun,Iowa,19025,1,0 +2020-05-03,Calhoun,Iowa,19025,1,0 +2020-05-04,Calhoun,Iowa,19025,1,0 +2020-05-05,Calhoun,Iowa,19025,1,0 +2020-05-06,Calhoun,Iowa,19025,1,0 +2020-05-07,Calhoun,Iowa,19025,1,0 +2020-05-08,Calhoun,Iowa,19025,1,0 +2020-05-09,Calhoun,Iowa,19025,1,0 +2020-05-10,Calhoun,Iowa,19025,1,0 +2020-05-11,Calhoun,Iowa,19025,1,0 +2020-05-12,Calhoun,Iowa,19025,1,0 +2020-05-13,Calhoun,Iowa,19025,1,0 +2020-05-14,Calhoun,Iowa,19025,1,0 +2020-05-15,Calhoun,Iowa,19025,1,0 +2020-05-16,Calhoun,Iowa,19025,1,0 +2020-05-17,Calhoun,Iowa,19025,1,0 +2020-05-18,Calhoun,Iowa,19025,1,0 +2020-05-19,Calhoun,Iowa,19025,2,0 +2020-05-20,Calhoun,Iowa,19025,2,0 +2020-05-21,Calhoun,Iowa,19025,2,0 +2020-05-22,Calhoun,Iowa,19025,2,0 +2020-05-23,Calhoun,Iowa,19025,2,0 +2020-05-24,Calhoun,Iowa,19025,2,0 +2020-05-25,Calhoun,Iowa,19025,3,0 +2020-05-26,Calhoun,Iowa,19025,2,0 +2020-05-27,Calhoun,Iowa,19025,2,0 +2020-05-28,Calhoun,Iowa,19025,2,0 +2020-05-29,Calhoun,Iowa,19025,2,0 +2020-05-30,Calhoun,Iowa,19025,2,0 +2020-05-31,Calhoun,Iowa,19025,2,0 +2020-06-01,Calhoun,Iowa,19025,2,0 +2020-06-02,Calhoun,Iowa,19025,3,0 +2020-06-03,Calhoun,Iowa,19025,5,0 +2020-06-04,Calhoun,Iowa,19025,8,0 +2020-06-05,Calhoun,Iowa,19025,11,0 +2020-06-06,Calhoun,Iowa,19025,12,0 +2020-06-07,Calhoun,Iowa,19025,14,0 +2020-06-08,Calhoun,Iowa,19025,13,0 +2020-06-09,Calhoun,Iowa,19025,14,0 +2020-06-10,Calhoun,Iowa,19025,16,0 +2020-06-11,Calhoun,Iowa,19025,17,0 +2020-06-12,Calhoun,Iowa,19025,19,0 +2020-06-13,Calhoun,Iowa,19025,20,0 +2020-06-14,Calhoun,Iowa,19025,23,0 +2020-06-15,Calhoun,Iowa,19025,24,0 +2020-06-16,Calhoun,Iowa,19025,24,0 +2020-06-17,Calhoun,Iowa,19025,25,0 +2020-06-18,Calhoun,Iowa,19025,25,0 +2020-06-19,Calhoun,Iowa,19025,25,0 +2020-06-20,Calhoun,Iowa,19025,25,0 +2020-06-21,Calhoun,Iowa,19025,25,0 +2020-06-22,Calhoun,Iowa,19025,25,0 +2020-06-23,Calhoun,Iowa,19025,26,0 +2020-06-24,Calhoun,Iowa,19025,29,0 +2020-06-25,Calhoun,Iowa,19025,30,0 +2020-06-26,Calhoun,Iowa,19025,35,0 +2020-06-27,Calhoun,Iowa,19025,39,0 +2020-06-28,Calhoun,Iowa,19025,41,0 +2020-06-29,Calhoun,Iowa,19025,44,1 +2020-06-30,Calhoun,Iowa,19025,45,2 +2020-07-01,Calhoun,Iowa,19025,47,2 +2020-07-02,Calhoun,Iowa,19025,48,2 +2020-07-03,Calhoun,Iowa,19025,48,2 +2020-07-04,Calhoun,Iowa,19025,49,2 +2020-07-05,Calhoun,Iowa,19025,50,2 +2020-07-06,Calhoun,Iowa,19025,53,2 +2020-07-07,Calhoun,Iowa,19025,54,2 +2020-07-08,Calhoun,Iowa,19025,56,2 +2020-07-09,Calhoun,Iowa,19025,58,2 +2020-03-12,Carroll,Iowa,19027,1,0 +2020-03-13,Carroll,Iowa,19027,1,0 +2020-03-14,Carroll,Iowa,19027,1,0 +2020-03-15,Carroll,Iowa,19027,1,0 +2020-03-16,Carroll,Iowa,19027,1,0 +2020-03-17,Carroll,Iowa,19027,1,0 +2020-03-18,Carroll,Iowa,19027,1,0 +2020-03-19,Carroll,Iowa,19027,1,0 +2020-03-20,Carroll,Iowa,19027,1,0 +2020-03-21,Carroll,Iowa,19027,1,0 +2020-03-22,Carroll,Iowa,19027,1,0 +2020-03-23,Carroll,Iowa,19027,1,0 +2020-03-24,Carroll,Iowa,19027,1,0 +2020-03-25,Carroll,Iowa,19027,1,0 +2020-03-26,Carroll,Iowa,19027,1,0 +2020-03-27,Carroll,Iowa,19027,1,0 +2020-03-28,Carroll,Iowa,19027,1,0 +2020-03-29,Carroll,Iowa,19027,1,0 +2020-03-30,Carroll,Iowa,19027,1,0 +2020-03-31,Carroll,Iowa,19027,1,0 +2020-04-01,Carroll,Iowa,19027,1,0 +2020-04-02,Carroll,Iowa,19027,1,0 +2020-04-03,Carroll,Iowa,19027,1,0 +2020-04-04,Carroll,Iowa,19027,1,0 +2020-04-05,Carroll,Iowa,19027,1,0 +2020-04-06,Carroll,Iowa,19027,1,0 +2020-04-07,Carroll,Iowa,19027,1,0 +2020-04-08,Carroll,Iowa,19027,1,0 +2020-04-09,Carroll,Iowa,19027,1,0 +2020-04-10,Carroll,Iowa,19027,1,0 +2020-04-11,Carroll,Iowa,19027,1,0 +2020-04-12,Carroll,Iowa,19027,1,0 +2020-04-13,Carroll,Iowa,19027,1,0 +2020-04-14,Carroll,Iowa,19027,1,0 +2020-04-15,Carroll,Iowa,19027,1,0 +2020-04-16,Carroll,Iowa,19027,1,0 +2020-04-17,Carroll,Iowa,19027,1,0 +2020-04-18,Carroll,Iowa,19027,1,0 +2020-04-19,Carroll,Iowa,19027,1,0 +2020-04-20,Carroll,Iowa,19027,1,0 +2020-04-21,Carroll,Iowa,19027,1,0 +2020-04-22,Carroll,Iowa,19027,1,0 +2020-04-23,Carroll,Iowa,19027,1,0 +2020-04-24,Carroll,Iowa,19027,1,0 +2020-04-25,Carroll,Iowa,19027,1,0 +2020-04-26,Carroll,Iowa,19027,1,0 +2020-04-27,Carroll,Iowa,19027,1,0 +2020-04-28,Carroll,Iowa,19027,1,0 +2020-04-29,Carroll,Iowa,19027,1,0 +2020-04-30,Carroll,Iowa,19027,2,0 +2020-05-01,Carroll,Iowa,19027,2,0 +2020-05-02,Carroll,Iowa,19027,3,0 +2020-05-03,Carroll,Iowa,19027,5,0 +2020-05-04,Carroll,Iowa,19027,5,0 +2020-05-05,Carroll,Iowa,19027,5,0 +2020-05-06,Carroll,Iowa,19027,5,0 +2020-05-07,Carroll,Iowa,19027,5,0 +2020-05-08,Carroll,Iowa,19027,6,0 +2020-05-09,Carroll,Iowa,19027,6,0 +2020-05-10,Carroll,Iowa,19027,6,0 +2020-05-11,Carroll,Iowa,19027,6,0 +2020-05-12,Carroll,Iowa,19027,6,0 +2020-05-13,Carroll,Iowa,19027,7,0 +2020-05-14,Carroll,Iowa,19027,8,0 +2020-05-15,Carroll,Iowa,19027,8,0 +2020-05-16,Carroll,Iowa,19027,8,0 +2020-05-17,Carroll,Iowa,19027,8,0 +2020-05-18,Carroll,Iowa,19027,8,0 +2020-05-19,Carroll,Iowa,19027,7,0 +2020-05-20,Carroll,Iowa,19027,7,0 +2020-05-21,Carroll,Iowa,19027,7,0 +2020-05-22,Carroll,Iowa,19027,8,0 +2020-05-23,Carroll,Iowa,19027,8,0 +2020-05-24,Carroll,Iowa,19027,9,0 +2020-05-25,Carroll,Iowa,19027,9,0 +2020-05-26,Carroll,Iowa,19027,9,0 +2020-05-27,Carroll,Iowa,19027,9,0 +2020-05-28,Carroll,Iowa,19027,9,0 +2020-05-29,Carroll,Iowa,19027,9,0 +2020-05-30,Carroll,Iowa,19027,9,0 +2020-05-31,Carroll,Iowa,19027,11,0 +2020-06-01,Carroll,Iowa,19027,12,0 +2020-06-02,Carroll,Iowa,19027,12,0 +2020-06-03,Carroll,Iowa,19027,13,0 +2020-06-04,Carroll,Iowa,19027,14,1 +2020-06-05,Carroll,Iowa,19027,15,1 +2020-06-06,Carroll,Iowa,19027,16,1 +2020-06-07,Carroll,Iowa,19027,17,1 +2020-06-08,Carroll,Iowa,19027,17,1 +2020-06-09,Carroll,Iowa,19027,17,1 +2020-06-10,Carroll,Iowa,19027,18,1 +2020-06-11,Carroll,Iowa,19027,20,1 +2020-06-12,Carroll,Iowa,19027,34,1 +2020-06-13,Carroll,Iowa,19027,41,1 +2020-06-14,Carroll,Iowa,19027,48,1 +2020-06-15,Carroll,Iowa,19027,48,1 +2020-06-16,Carroll,Iowa,19027,49,1 +2020-06-17,Carroll,Iowa,19027,63,1 +2020-06-18,Carroll,Iowa,19027,63,1 +2020-06-19,Carroll,Iowa,19027,66,1 +2020-06-20,Carroll,Iowa,19027,67,1 +2020-06-21,Carroll,Iowa,19027,70,1 +2020-06-22,Carroll,Iowa,19027,69,1 +2020-06-23,Carroll,Iowa,19027,69,1 +2020-06-24,Carroll,Iowa,19027,71,1 +2020-06-25,Carroll,Iowa,19027,73,1 +2020-06-26,Carroll,Iowa,19027,73,1 +2020-06-27,Carroll,Iowa,19027,76,1 +2020-06-28,Carroll,Iowa,19027,79,1 +2020-06-29,Carroll,Iowa,19027,82,1 +2020-06-30,Carroll,Iowa,19027,83,1 +2020-07-01,Carroll,Iowa,19027,87,1 +2020-07-02,Carroll,Iowa,19027,91,1 +2020-07-03,Carroll,Iowa,19027,93,1 +2020-07-04,Carroll,Iowa,19027,96,1 +2020-07-05,Carroll,Iowa,19027,99,1 +2020-07-06,Carroll,Iowa,19027,99,1 +2020-07-07,Carroll,Iowa,19027,99,1 +2020-07-08,Carroll,Iowa,19027,104,1 +2020-07-09,Carroll,Iowa,19027,104,1 +2020-04-13,Cass,Iowa,19029,1,0 +2020-04-14,Cass,Iowa,19029,1,0 +2020-04-15,Cass,Iowa,19029,1,0 +2020-04-16,Cass,Iowa,19029,1,0 +2020-04-17,Cass,Iowa,19029,1,0 +2020-04-18,Cass,Iowa,19029,1,0 +2020-04-19,Cass,Iowa,19029,1,0 +2020-04-20,Cass,Iowa,19029,1,0 +2020-04-21,Cass,Iowa,19029,1,0 +2020-04-22,Cass,Iowa,19029,1,0 +2020-04-23,Cass,Iowa,19029,1,0 +2020-04-24,Cass,Iowa,19029,1,0 +2020-04-25,Cass,Iowa,19029,1,0 +2020-04-26,Cass,Iowa,19029,1,0 +2020-04-27,Cass,Iowa,19029,1,0 +2020-04-28,Cass,Iowa,19029,1,0 +2020-04-29,Cass,Iowa,19029,1,0 +2020-04-30,Cass,Iowa,19029,1,0 +2020-05-01,Cass,Iowa,19029,1,0 +2020-05-02,Cass,Iowa,19029,1,0 +2020-05-03,Cass,Iowa,19029,1,0 +2020-05-04,Cass,Iowa,19029,1,0 +2020-05-05,Cass,Iowa,19029,1,0 +2020-05-06,Cass,Iowa,19029,1,0 +2020-05-07,Cass,Iowa,19029,1,0 +2020-05-08,Cass,Iowa,19029,1,0 +2020-05-09,Cass,Iowa,19029,1,0 +2020-05-10,Cass,Iowa,19029,1,0 +2020-05-11,Cass,Iowa,19029,1,0 +2020-05-12,Cass,Iowa,19029,1,0 +2020-05-13,Cass,Iowa,19029,1,0 +2020-05-14,Cass,Iowa,19029,1,0 +2020-05-15,Cass,Iowa,19029,1,0 +2020-05-16,Cass,Iowa,19029,1,0 +2020-05-17,Cass,Iowa,19029,2,0 +2020-05-18,Cass,Iowa,19029,2,0 +2020-05-19,Cass,Iowa,19029,2,0 +2020-05-20,Cass,Iowa,19029,4,0 +2020-05-21,Cass,Iowa,19029,6,0 +2020-05-22,Cass,Iowa,19029,6,0 +2020-05-23,Cass,Iowa,19029,6,0 +2020-05-24,Cass,Iowa,19029,11,0 +2020-05-25,Cass,Iowa,19029,11,0 +2020-05-26,Cass,Iowa,19029,11,0 +2020-05-27,Cass,Iowa,19029,11,0 +2020-05-28,Cass,Iowa,19029,11,0 +2020-05-29,Cass,Iowa,19029,12,0 +2020-05-30,Cass,Iowa,19029,12,0 +2020-05-31,Cass,Iowa,19029,12,0 +2020-06-01,Cass,Iowa,19029,12,0 +2020-06-02,Cass,Iowa,19029,12,0 +2020-06-03,Cass,Iowa,19029,12,0 +2020-06-04,Cass,Iowa,19029,12,0 +2020-06-05,Cass,Iowa,19029,13,0 +2020-06-06,Cass,Iowa,19029,13,0 +2020-06-07,Cass,Iowa,19029,13,0 +2020-06-08,Cass,Iowa,19029,13,0 +2020-06-09,Cass,Iowa,19029,13,0 +2020-06-10,Cass,Iowa,19029,13,0 +2020-06-11,Cass,Iowa,19029,13,0 +2020-06-12,Cass,Iowa,19029,13,0 +2020-06-13,Cass,Iowa,19029,14,0 +2020-06-14,Cass,Iowa,19029,14,0 +2020-06-15,Cass,Iowa,19029,14,0 +2020-06-16,Cass,Iowa,19029,14,0 +2020-06-17,Cass,Iowa,19029,14,0 +2020-06-18,Cass,Iowa,19029,16,0 +2020-06-19,Cass,Iowa,19029,16,0 +2020-06-20,Cass,Iowa,19029,16,0 +2020-06-21,Cass,Iowa,19029,16,0 +2020-06-22,Cass,Iowa,19029,16,0 +2020-06-23,Cass,Iowa,19029,16,0 +2020-06-24,Cass,Iowa,19029,16,0 +2020-06-25,Cass,Iowa,19029,16,0 +2020-06-26,Cass,Iowa,19029,16,0 +2020-06-27,Cass,Iowa,19029,17,0 +2020-06-28,Cass,Iowa,19029,17,0 +2020-06-29,Cass,Iowa,19029,17,0 +2020-06-30,Cass,Iowa,19029,17,0 +2020-07-01,Cass,Iowa,19029,17,0 +2020-07-02,Cass,Iowa,19029,21,0 +2020-07-03,Cass,Iowa,19029,21,0 +2020-07-04,Cass,Iowa,19029,22,0 +2020-07-05,Cass,Iowa,19029,22,0 +2020-07-06,Cass,Iowa,19029,23,0 +2020-07-07,Cass,Iowa,19029,24,0 +2020-07-08,Cass,Iowa,19029,24,0 +2020-07-09,Cass,Iowa,19029,27,0 +2020-03-24,Cedar,Iowa,19031,1,0 +2020-03-25,Cedar,Iowa,19031,1,0 +2020-03-26,Cedar,Iowa,19031,4,0 +2020-03-27,Cedar,Iowa,19031,5,0 +2020-03-28,Cedar,Iowa,19031,6,0 +2020-03-29,Cedar,Iowa,19031,7,0 +2020-03-30,Cedar,Iowa,19031,8,0 +2020-03-31,Cedar,Iowa,19031,9,0 +2020-04-01,Cedar,Iowa,19031,9,0 +2020-04-02,Cedar,Iowa,19031,11,0 +2020-04-03,Cedar,Iowa,19031,11,0 +2020-04-04,Cedar,Iowa,19031,11,0 +2020-04-05,Cedar,Iowa,19031,12,0 +2020-04-06,Cedar,Iowa,19031,13,0 +2020-04-07,Cedar,Iowa,19031,13,0 +2020-04-08,Cedar,Iowa,19031,18,0 +2020-04-09,Cedar,Iowa,19031,19,0 +2020-04-10,Cedar,Iowa,19031,20,0 +2020-04-11,Cedar,Iowa,19031,20,0 +2020-04-12,Cedar,Iowa,19031,20,0 +2020-04-13,Cedar,Iowa,19031,21,0 +2020-04-14,Cedar,Iowa,19031,21,0 +2020-04-15,Cedar,Iowa,19031,22,0 +2020-04-16,Cedar,Iowa,19031,23,0 +2020-04-17,Cedar,Iowa,19031,23,0 +2020-04-18,Cedar,Iowa,19031,25,0 +2020-04-19,Cedar,Iowa,19031,26,0 +2020-04-20,Cedar,Iowa,19031,26,0 +2020-04-21,Cedar,Iowa,19031,26,0 +2020-04-22,Cedar,Iowa,19031,27,0 +2020-04-23,Cedar,Iowa,19031,27,0 +2020-04-24,Cedar,Iowa,19031,28,0 +2020-04-25,Cedar,Iowa,19031,28,0 +2020-04-26,Cedar,Iowa,19031,28,0 +2020-04-27,Cedar,Iowa,19031,28,0 +2020-04-28,Cedar,Iowa,19031,29,0 +2020-04-29,Cedar,Iowa,19031,29,0 +2020-04-30,Cedar,Iowa,19031,29,0 +2020-05-01,Cedar,Iowa,19031,30,0 +2020-05-02,Cedar,Iowa,19031,31,0 +2020-05-03,Cedar,Iowa,19031,31,0 +2020-05-04,Cedar,Iowa,19031,33,0 +2020-05-05,Cedar,Iowa,19031,35,0 +2020-05-06,Cedar,Iowa,19031,38,0 +2020-05-07,Cedar,Iowa,19031,39,1 +2020-05-08,Cedar,Iowa,19031,39,1 +2020-05-09,Cedar,Iowa,19031,40,1 +2020-05-10,Cedar,Iowa,19031,42,1 +2020-05-11,Cedar,Iowa,19031,43,1 +2020-05-12,Cedar,Iowa,19031,44,1 +2020-05-13,Cedar,Iowa,19031,44,1 +2020-05-14,Cedar,Iowa,19031,43,1 +2020-05-15,Cedar,Iowa,19031,42,1 +2020-05-16,Cedar,Iowa,19031,42,1 +2020-05-17,Cedar,Iowa,19031,42,1 +2020-05-18,Cedar,Iowa,19031,42,1 +2020-05-19,Cedar,Iowa,19031,43,1 +2020-05-20,Cedar,Iowa,19031,44,1 +2020-05-21,Cedar,Iowa,19031,44,1 +2020-05-22,Cedar,Iowa,19031,44,1 +2020-05-23,Cedar,Iowa,19031,44,1 +2020-05-24,Cedar,Iowa,19031,45,1 +2020-05-25,Cedar,Iowa,19031,46,1 +2020-05-26,Cedar,Iowa,19031,46,1 +2020-05-27,Cedar,Iowa,19031,46,1 +2020-05-28,Cedar,Iowa,19031,46,1 +2020-05-29,Cedar,Iowa,19031,46,1 +2020-05-30,Cedar,Iowa,19031,46,1 +2020-05-31,Cedar,Iowa,19031,48,1 +2020-06-01,Cedar,Iowa,19031,49,1 +2020-06-02,Cedar,Iowa,19031,49,1 +2020-06-03,Cedar,Iowa,19031,49,1 +2020-06-04,Cedar,Iowa,19031,49,1 +2020-06-05,Cedar,Iowa,19031,50,1 +2020-06-06,Cedar,Iowa,19031,50,1 +2020-06-07,Cedar,Iowa,19031,50,1 +2020-06-08,Cedar,Iowa,19031,53,1 +2020-06-09,Cedar,Iowa,19031,52,1 +2020-06-10,Cedar,Iowa,19031,52,1 +2020-06-11,Cedar,Iowa,19031,52,1 +2020-06-12,Cedar,Iowa,19031,53,1 +2020-06-13,Cedar,Iowa,19031,54,1 +2020-06-14,Cedar,Iowa,19031,54,1 +2020-06-15,Cedar,Iowa,19031,54,1 +2020-06-16,Cedar,Iowa,19031,54,1 +2020-06-17,Cedar,Iowa,19031,54,1 +2020-06-18,Cedar,Iowa,19031,55,1 +2020-06-19,Cedar,Iowa,19031,56,1 +2020-06-20,Cedar,Iowa,19031,56,1 +2020-06-21,Cedar,Iowa,19031,60,1 +2020-06-22,Cedar,Iowa,19031,61,1 +2020-06-23,Cedar,Iowa,19031,62,1 +2020-06-24,Cedar,Iowa,19031,69,1 +2020-06-25,Cedar,Iowa,19031,68,1 +2020-06-26,Cedar,Iowa,19031,70,1 +2020-06-27,Cedar,Iowa,19031,71,1 +2020-06-28,Cedar,Iowa,19031,71,1 +2020-06-29,Cedar,Iowa,19031,75,1 +2020-06-30,Cedar,Iowa,19031,75,1 +2020-07-01,Cedar,Iowa,19031,78,1 +2020-07-02,Cedar,Iowa,19031,80,1 +2020-07-03,Cedar,Iowa,19031,81,1 +2020-07-04,Cedar,Iowa,19031,82,1 +2020-07-05,Cedar,Iowa,19031,84,1 +2020-07-06,Cedar,Iowa,19031,85,1 +2020-07-07,Cedar,Iowa,19031,85,1 +2020-07-08,Cedar,Iowa,19031,86,1 +2020-07-09,Cedar,Iowa,19031,89,1 +2020-03-22,Cerro Gordo,Iowa,19033,2,0 +2020-03-23,Cerro Gordo,Iowa,19033,2,0 +2020-03-24,Cerro Gordo,Iowa,19033,2,0 +2020-03-25,Cerro Gordo,Iowa,19033,2,0 +2020-03-26,Cerro Gordo,Iowa,19033,2,0 +2020-03-27,Cerro Gordo,Iowa,19033,3,0 +2020-03-28,Cerro Gordo,Iowa,19033,4,0 +2020-03-29,Cerro Gordo,Iowa,19033,6,0 +2020-03-30,Cerro Gordo,Iowa,19033,7,0 +2020-03-31,Cerro Gordo,Iowa,19033,7,0 +2020-04-01,Cerro Gordo,Iowa,19033,8,0 +2020-04-02,Cerro Gordo,Iowa,19033,10,0 +2020-04-03,Cerro Gordo,Iowa,19033,10,0 +2020-04-04,Cerro Gordo,Iowa,19033,10,0 +2020-04-05,Cerro Gordo,Iowa,19033,10,0 +2020-04-06,Cerro Gordo,Iowa,19033,12,0 +2020-04-07,Cerro Gordo,Iowa,19033,12,0 +2020-04-08,Cerro Gordo,Iowa,19033,12,0 +2020-04-09,Cerro Gordo,Iowa,19033,13,0 +2020-04-10,Cerro Gordo,Iowa,19033,13,0 +2020-04-11,Cerro Gordo,Iowa,19033,13,0 +2020-04-12,Cerro Gordo,Iowa,19033,13,0 +2020-04-13,Cerro Gordo,Iowa,19033,13,0 +2020-04-14,Cerro Gordo,Iowa,19033,14,0 +2020-04-15,Cerro Gordo,Iowa,19033,14,0 +2020-04-16,Cerro Gordo,Iowa,19033,14,0 +2020-04-17,Cerro Gordo,Iowa,19033,14,0 +2020-04-18,Cerro Gordo,Iowa,19033,14,0 +2020-04-19,Cerro Gordo,Iowa,19033,14,0 +2020-04-20,Cerro Gordo,Iowa,19033,14,0 +2020-04-21,Cerro Gordo,Iowa,19033,14,0 +2020-04-22,Cerro Gordo,Iowa,19033,14,0 +2020-04-23,Cerro Gordo,Iowa,19033,14,0 +2020-04-24,Cerro Gordo,Iowa,19033,14,0 +2020-04-25,Cerro Gordo,Iowa,19033,14,0 +2020-04-26,Cerro Gordo,Iowa,19033,14,0 +2020-04-27,Cerro Gordo,Iowa,19033,14,0 +2020-04-28,Cerro Gordo,Iowa,19033,14,0 +2020-04-29,Cerro Gordo,Iowa,19033,14,0 +2020-04-30,Cerro Gordo,Iowa,19033,14,0 +2020-05-01,Cerro Gordo,Iowa,19033,14,0 +2020-05-02,Cerro Gordo,Iowa,19033,14,0 +2020-05-03,Cerro Gordo,Iowa,19033,14,0 +2020-05-04,Cerro Gordo,Iowa,19033,14,0 +2020-05-05,Cerro Gordo,Iowa,19033,14,0 +2020-05-06,Cerro Gordo,Iowa,19033,14,0 +2020-05-07,Cerro Gordo,Iowa,19033,14,0 +2020-05-08,Cerro Gordo,Iowa,19033,14,0 +2020-05-09,Cerro Gordo,Iowa,19033,15,0 +2020-05-10,Cerro Gordo,Iowa,19033,14,0 +2020-05-11,Cerro Gordo,Iowa,19033,14,0 +2020-05-12,Cerro Gordo,Iowa,19033,14,0 +2020-05-13,Cerro Gordo,Iowa,19033,14,0 +2020-05-14,Cerro Gordo,Iowa,19033,15,0 +2020-05-15,Cerro Gordo,Iowa,19033,15,0 +2020-05-16,Cerro Gordo,Iowa,19033,17,0 +2020-05-17,Cerro Gordo,Iowa,19033,18,0 +2020-05-18,Cerro Gordo,Iowa,19033,18,0 +2020-05-19,Cerro Gordo,Iowa,19033,17,0 +2020-05-20,Cerro Gordo,Iowa,19033,20,0 +2020-05-21,Cerro Gordo,Iowa,19033,19,1 +2020-05-22,Cerro Gordo,Iowa,19033,20,1 +2020-05-23,Cerro Gordo,Iowa,19033,20,1 +2020-05-24,Cerro Gordo,Iowa,19033,22,1 +2020-05-25,Cerro Gordo,Iowa,19033,22,1 +2020-05-26,Cerro Gordo,Iowa,19033,22,1 +2020-05-27,Cerro Gordo,Iowa,19033,24,1 +2020-05-28,Cerro Gordo,Iowa,19033,25,1 +2020-05-29,Cerro Gordo,Iowa,19033,27,1 +2020-05-30,Cerro Gordo,Iowa,19033,29,1 +2020-05-31,Cerro Gordo,Iowa,19033,29,1 +2020-06-01,Cerro Gordo,Iowa,19033,29,1 +2020-06-02,Cerro Gordo,Iowa,19033,29,1 +2020-06-03,Cerro Gordo,Iowa,19033,30,1 +2020-06-04,Cerro Gordo,Iowa,19033,33,1 +2020-06-05,Cerro Gordo,Iowa,19033,34,1 +2020-06-06,Cerro Gordo,Iowa,19033,34,1 +2020-06-07,Cerro Gordo,Iowa,19033,34,1 +2020-06-08,Cerro Gordo,Iowa,19033,32,1 +2020-06-09,Cerro Gordo,Iowa,19033,32,1 +2020-06-10,Cerro Gordo,Iowa,19033,37,1 +2020-06-11,Cerro Gordo,Iowa,19033,39,1 +2020-06-12,Cerro Gordo,Iowa,19033,41,1 +2020-06-13,Cerro Gordo,Iowa,19033,42,1 +2020-06-14,Cerro Gordo,Iowa,19033,42,1 +2020-06-15,Cerro Gordo,Iowa,19033,44,1 +2020-06-16,Cerro Gordo,Iowa,19033,49,1 +2020-06-17,Cerro Gordo,Iowa,19033,49,1 +2020-06-18,Cerro Gordo,Iowa,19033,54,1 +2020-06-19,Cerro Gordo,Iowa,19033,57,1 +2020-06-20,Cerro Gordo,Iowa,19033,58,1 +2020-06-21,Cerro Gordo,Iowa,19033,59,1 +2020-06-22,Cerro Gordo,Iowa,19033,61,1 +2020-06-23,Cerro Gordo,Iowa,19033,62,1 +2020-06-24,Cerro Gordo,Iowa,19033,68,1 +2020-06-25,Cerro Gordo,Iowa,19033,70,1 +2020-06-26,Cerro Gordo,Iowa,19033,81,1 +2020-06-27,Cerro Gordo,Iowa,19033,86,1 +2020-06-28,Cerro Gordo,Iowa,19033,93,1 +2020-06-29,Cerro Gordo,Iowa,19033,99,1 +2020-06-30,Cerro Gordo,Iowa,19033,99,1 +2020-07-01,Cerro Gordo,Iowa,19033,105,1 +2020-07-02,Cerro Gordo,Iowa,19033,138,1 +2020-07-03,Cerro Gordo,Iowa,19033,150,1 +2020-07-04,Cerro Gordo,Iowa,19033,157,1 +2020-07-05,Cerro Gordo,Iowa,19033,179,1 +2020-07-06,Cerro Gordo,Iowa,19033,182,1 +2020-07-07,Cerro Gordo,Iowa,19033,190,1 +2020-07-08,Cerro Gordo,Iowa,19033,206,1 +2020-07-09,Cerro Gordo,Iowa,19033,224,1 +2020-04-21,Cherokee,Iowa,19035,1,0 +2020-04-22,Cherokee,Iowa,19035,1,0 +2020-04-23,Cherokee,Iowa,19035,1,0 +2020-04-24,Cherokee,Iowa,19035,2,0 +2020-04-25,Cherokee,Iowa,19035,2,0 +2020-04-26,Cherokee,Iowa,19035,2,0 +2020-04-27,Cherokee,Iowa,19035,2,0 +2020-04-28,Cherokee,Iowa,19035,2,0 +2020-04-29,Cherokee,Iowa,19035,2,0 +2020-04-30,Cherokee,Iowa,19035,2,0 +2020-05-01,Cherokee,Iowa,19035,2,0 +2020-05-02,Cherokee,Iowa,19035,3,0 +2020-05-03,Cherokee,Iowa,19035,4,0 +2020-05-04,Cherokee,Iowa,19035,4,0 +2020-05-05,Cherokee,Iowa,19035,4,0 +2020-05-06,Cherokee,Iowa,19035,4,0 +2020-05-07,Cherokee,Iowa,19035,4,0 +2020-05-08,Cherokee,Iowa,19035,4,0 +2020-05-09,Cherokee,Iowa,19035,4,0 +2020-05-10,Cherokee,Iowa,19035,4,0 +2020-05-11,Cherokee,Iowa,19035,6,0 +2020-05-12,Cherokee,Iowa,19035,6,0 +2020-05-13,Cherokee,Iowa,19035,6,0 +2020-05-14,Cherokee,Iowa,19035,6,0 +2020-05-15,Cherokee,Iowa,19035,8,0 +2020-05-16,Cherokee,Iowa,19035,9,0 +2020-05-17,Cherokee,Iowa,19035,9,0 +2020-05-18,Cherokee,Iowa,19035,9,0 +2020-05-19,Cherokee,Iowa,19035,9,0 +2020-05-20,Cherokee,Iowa,19035,10,0 +2020-05-21,Cherokee,Iowa,19035,10,0 +2020-05-22,Cherokee,Iowa,19035,10,0 +2020-05-23,Cherokee,Iowa,19035,10,0 +2020-05-24,Cherokee,Iowa,19035,16,0 +2020-05-25,Cherokee,Iowa,19035,18,0 +2020-05-26,Cherokee,Iowa,19035,21,0 +2020-05-27,Cherokee,Iowa,19035,23,0 +2020-05-28,Cherokee,Iowa,19035,24,0 +2020-05-29,Cherokee,Iowa,19035,27,0 +2020-05-30,Cherokee,Iowa,19035,28,0 +2020-05-31,Cherokee,Iowa,19035,31,0 +2020-06-01,Cherokee,Iowa,19035,31,0 +2020-06-02,Cherokee,Iowa,19035,32,0 +2020-06-03,Cherokee,Iowa,19035,36,0 +2020-06-04,Cherokee,Iowa,19035,41,0 +2020-06-05,Cherokee,Iowa,19035,41,0 +2020-06-06,Cherokee,Iowa,19035,46,0 +2020-06-07,Cherokee,Iowa,19035,46,0 +2020-06-08,Cherokee,Iowa,19035,46,0 +2020-06-09,Cherokee,Iowa,19035,49,0 +2020-06-10,Cherokee,Iowa,19035,52,0 +2020-06-11,Cherokee,Iowa,19035,55,0 +2020-06-12,Cherokee,Iowa,19035,56,0 +2020-06-13,Cherokee,Iowa,19035,58,0 +2020-06-14,Cherokee,Iowa,19035,59,0 +2020-06-15,Cherokee,Iowa,19035,59,0 +2020-06-16,Cherokee,Iowa,19035,60,0 +2020-06-17,Cherokee,Iowa,19035,62,0 +2020-06-18,Cherokee,Iowa,19035,65,0 +2020-06-19,Cherokee,Iowa,19035,65,0 +2020-06-20,Cherokee,Iowa,19035,65,0 +2020-06-21,Cherokee,Iowa,19035,66,0 +2020-06-22,Cherokee,Iowa,19035,67,0 +2020-06-23,Cherokee,Iowa,19035,68,0 +2020-06-24,Cherokee,Iowa,19035,69,0 +2020-06-25,Cherokee,Iowa,19035,68,0 +2020-06-26,Cherokee,Iowa,19035,69,0 +2020-06-27,Cherokee,Iowa,19035,69,0 +2020-06-28,Cherokee,Iowa,19035,71,0 +2020-06-29,Cherokee,Iowa,19035,71,0 +2020-06-30,Cherokee,Iowa,19035,72,0 +2020-07-01,Cherokee,Iowa,19035,74,0 +2020-07-02,Cherokee,Iowa,19035,75,1 +2020-07-03,Cherokee,Iowa,19035,75,1 +2020-07-04,Cherokee,Iowa,19035,75,1 +2020-07-05,Cherokee,Iowa,19035,75,1 +2020-07-06,Cherokee,Iowa,19035,75,1 +2020-07-07,Cherokee,Iowa,19035,76,1 +2020-07-08,Cherokee,Iowa,19035,79,1 +2020-07-09,Cherokee,Iowa,19035,81,1 +2020-04-06,Chickasaw,Iowa,19037,1,0 +2020-04-07,Chickasaw,Iowa,19037,1,0 +2020-04-08,Chickasaw,Iowa,19037,1,0 +2020-04-09,Chickasaw,Iowa,19037,2,0 +2020-04-10,Chickasaw,Iowa,19037,2,0 +2020-04-11,Chickasaw,Iowa,19037,2,0 +2020-04-12,Chickasaw,Iowa,19037,2,0 +2020-04-13,Chickasaw,Iowa,19037,2,0 +2020-04-14,Chickasaw,Iowa,19037,2,0 +2020-04-15,Chickasaw,Iowa,19037,2,0 +2020-04-16,Chickasaw,Iowa,19037,2,0 +2020-04-17,Chickasaw,Iowa,19037,2,0 +2020-04-18,Chickasaw,Iowa,19037,2,0 +2020-04-19,Chickasaw,Iowa,19037,3,0 +2020-04-20,Chickasaw,Iowa,19037,3,0 +2020-04-21,Chickasaw,Iowa,19037,3,0 +2020-04-22,Chickasaw,Iowa,19037,3,0 +2020-04-23,Chickasaw,Iowa,19037,3,0 +2020-04-24,Chickasaw,Iowa,19037,3,0 +2020-04-25,Chickasaw,Iowa,19037,4,0 +2020-04-26,Chickasaw,Iowa,19037,4,0 +2020-04-27,Chickasaw,Iowa,19037,4,0 +2020-04-28,Chickasaw,Iowa,19037,4,0 +2020-04-29,Chickasaw,Iowa,19037,5,0 +2020-04-30,Chickasaw,Iowa,19037,5,0 +2020-05-01,Chickasaw,Iowa,19037,5,0 +2020-05-02,Chickasaw,Iowa,19037,5,0 +2020-05-03,Chickasaw,Iowa,19037,5,0 +2020-05-04,Chickasaw,Iowa,19037,5,0 +2020-05-05,Chickasaw,Iowa,19037,6,0 +2020-05-06,Chickasaw,Iowa,19037,6,0 +2020-05-07,Chickasaw,Iowa,19037,6,0 +2020-05-08,Chickasaw,Iowa,19037,6,0 +2020-05-09,Chickasaw,Iowa,19037,6,0 +2020-05-10,Chickasaw,Iowa,19037,6,0 +2020-05-11,Chickasaw,Iowa,19037,7,0 +2020-05-12,Chickasaw,Iowa,19037,7,0 +2020-05-13,Chickasaw,Iowa,19037,7,0 +2020-05-14,Chickasaw,Iowa,19037,7,0 +2020-05-15,Chickasaw,Iowa,19037,7,0 +2020-05-16,Chickasaw,Iowa,19037,7,0 +2020-05-17,Chickasaw,Iowa,19037,7,0 +2020-05-18,Chickasaw,Iowa,19037,7,0 +2020-05-19,Chickasaw,Iowa,19037,7,0 +2020-05-20,Chickasaw,Iowa,19037,8,0 +2020-05-21,Chickasaw,Iowa,19037,8,0 +2020-05-22,Chickasaw,Iowa,19037,8,0 +2020-05-23,Chickasaw,Iowa,19037,8,0 +2020-05-24,Chickasaw,Iowa,19037,8,0 +2020-05-25,Chickasaw,Iowa,19037,8,0 +2020-05-26,Chickasaw,Iowa,19037,8,0 +2020-05-27,Chickasaw,Iowa,19037,8,0 +2020-05-28,Chickasaw,Iowa,19037,9,0 +2020-05-29,Chickasaw,Iowa,19037,10,0 +2020-05-30,Chickasaw,Iowa,19037,10,0 +2020-05-31,Chickasaw,Iowa,19037,10,0 +2020-06-01,Chickasaw,Iowa,19037,10,0 +2020-06-02,Chickasaw,Iowa,19037,12,0 +2020-06-03,Chickasaw,Iowa,19037,12,0 +2020-06-04,Chickasaw,Iowa,19037,13,0 +2020-06-05,Chickasaw,Iowa,19037,13,0 +2020-06-06,Chickasaw,Iowa,19037,13,0 +2020-06-07,Chickasaw,Iowa,19037,14,0 +2020-06-08,Chickasaw,Iowa,19037,15,0 +2020-06-09,Chickasaw,Iowa,19037,15,0 +2020-06-10,Chickasaw,Iowa,19037,15,0 +2020-06-11,Chickasaw,Iowa,19037,15,0 +2020-06-12,Chickasaw,Iowa,19037,15,0 +2020-06-13,Chickasaw,Iowa,19037,15,0 +2020-06-14,Chickasaw,Iowa,19037,15,0 +2020-06-15,Chickasaw,Iowa,19037,15,0 +2020-06-16,Chickasaw,Iowa,19037,15,0 +2020-06-17,Chickasaw,Iowa,19037,15,0 +2020-06-18,Chickasaw,Iowa,19037,16,0 +2020-06-19,Chickasaw,Iowa,19037,19,0 +2020-06-20,Chickasaw,Iowa,19037,19,0 +2020-06-21,Chickasaw,Iowa,19037,21,0 +2020-06-22,Chickasaw,Iowa,19037,20,0 +2020-06-23,Chickasaw,Iowa,19037,20,0 +2020-06-24,Chickasaw,Iowa,19037,21,0 +2020-06-25,Chickasaw,Iowa,19037,23,0 +2020-06-26,Chickasaw,Iowa,19037,24,0 +2020-06-27,Chickasaw,Iowa,19037,24,0 +2020-06-28,Chickasaw,Iowa,19037,24,0 +2020-06-29,Chickasaw,Iowa,19037,25,0 +2020-06-30,Chickasaw,Iowa,19037,25,0 +2020-07-01,Chickasaw,Iowa,19037,27,0 +2020-07-02,Chickasaw,Iowa,19037,27,0 +2020-07-03,Chickasaw,Iowa,19037,28,0 +2020-07-04,Chickasaw,Iowa,19037,28,0 +2020-07-05,Chickasaw,Iowa,19037,31,0 +2020-07-06,Chickasaw,Iowa,19037,29,0 +2020-07-07,Chickasaw,Iowa,19037,29,0 +2020-07-08,Chickasaw,Iowa,19037,29,0 +2020-07-09,Chickasaw,Iowa,19037,29,0 +2020-04-05,Clarke,Iowa,19039,1,0 +2020-04-06,Clarke,Iowa,19039,1,0 +2020-04-07,Clarke,Iowa,19039,1,0 +2020-04-08,Clarke,Iowa,19039,1,0 +2020-04-09,Clarke,Iowa,19039,1,0 +2020-04-10,Clarke,Iowa,19039,2,0 +2020-04-11,Clarke,Iowa,19039,2,0 +2020-04-12,Clarke,Iowa,19039,2,0 +2020-04-13,Clarke,Iowa,19039,2,0 +2020-04-14,Clarke,Iowa,19039,2,0 +2020-04-15,Clarke,Iowa,19039,2,0 +2020-04-16,Clarke,Iowa,19039,2,0 +2020-04-17,Clarke,Iowa,19039,2,0 +2020-04-18,Clarke,Iowa,19039,2,0 +2020-04-19,Clarke,Iowa,19039,2,0 +2020-04-20,Clarke,Iowa,19039,2,0 +2020-04-21,Clarke,Iowa,19039,2,0 +2020-04-22,Clarke,Iowa,19039,2,0 +2020-04-23,Clarke,Iowa,19039,2,0 +2020-04-24,Clarke,Iowa,19039,2,0 +2020-04-25,Clarke,Iowa,19039,2,0 +2020-04-26,Clarke,Iowa,19039,2,0 +2020-04-27,Clarke,Iowa,19039,2,0 +2020-04-28,Clarke,Iowa,19039,2,0 +2020-04-29,Clarke,Iowa,19039,2,0 +2020-04-30,Clarke,Iowa,19039,2,0 +2020-05-01,Clarke,Iowa,19039,2,0 +2020-05-02,Clarke,Iowa,19039,2,0 +2020-05-03,Clarke,Iowa,19039,3,0 +2020-05-04,Clarke,Iowa,19039,3,0 +2020-05-05,Clarke,Iowa,19039,3,0 +2020-05-06,Clarke,Iowa,19039,3,0 +2020-05-07,Clarke,Iowa,19039,4,0 +2020-05-08,Clarke,Iowa,19039,5,0 +2020-05-09,Clarke,Iowa,19039,5,0 +2020-05-10,Clarke,Iowa,19039,6,0 +2020-05-11,Clarke,Iowa,19039,8,0 +2020-05-12,Clarke,Iowa,19039,8,0 +2020-05-13,Clarke,Iowa,19039,9,0 +2020-05-14,Clarke,Iowa,19039,11,0 +2020-05-15,Clarke,Iowa,19039,11,0 +2020-05-16,Clarke,Iowa,19039,14,0 +2020-05-17,Clarke,Iowa,19039,17,0 +2020-05-18,Clarke,Iowa,19039,18,0 +2020-05-19,Clarke,Iowa,19039,23,0 +2020-05-20,Clarke,Iowa,19039,24,0 +2020-05-21,Clarke,Iowa,19039,25,0 +2020-05-22,Clarke,Iowa,19039,29,0 +2020-05-23,Clarke,Iowa,19039,29,0 +2020-05-24,Clarke,Iowa,19039,34,0 +2020-05-25,Clarke,Iowa,19039,34,0 +2020-05-26,Clarke,Iowa,19039,37,0 +2020-05-27,Clarke,Iowa,19039,44,0 +2020-05-28,Clarke,Iowa,19039,46,0 +2020-05-29,Clarke,Iowa,19039,50,0 +2020-05-30,Clarke,Iowa,19039,54,0 +2020-05-31,Clarke,Iowa,19039,55,0 +2020-06-01,Clarke,Iowa,19039,58,0 +2020-06-02,Clarke,Iowa,19039,62,0 +2020-06-03,Clarke,Iowa,19039,64,0 +2020-06-04,Clarke,Iowa,19039,67,0 +2020-06-05,Clarke,Iowa,19039,69,0 +2020-06-06,Clarke,Iowa,19039,71,1 +2020-06-07,Clarke,Iowa,19039,75,1 +2020-06-08,Clarke,Iowa,19039,76,1 +2020-06-09,Clarke,Iowa,19039,79,1 +2020-06-10,Clarke,Iowa,19039,83,1 +2020-06-11,Clarke,Iowa,19039,85,1 +2020-06-12,Clarke,Iowa,19039,86,1 +2020-06-13,Clarke,Iowa,19039,88,1 +2020-06-14,Clarke,Iowa,19039,89,1 +2020-06-15,Clarke,Iowa,19039,89,1 +2020-06-16,Clarke,Iowa,19039,89,1 +2020-06-17,Clarke,Iowa,19039,90,1 +2020-06-18,Clarke,Iowa,19039,96,2 +2020-06-19,Clarke,Iowa,19039,110,2 +2020-06-20,Clarke,Iowa,19039,111,2 +2020-06-21,Clarke,Iowa,19039,112,2 +2020-06-22,Clarke,Iowa,19039,111,2 +2020-06-23,Clarke,Iowa,19039,111,2 +2020-06-24,Clarke,Iowa,19039,112,2 +2020-06-25,Clarke,Iowa,19039,114,2 +2020-06-26,Clarke,Iowa,19039,114,2 +2020-06-27,Clarke,Iowa,19039,120,2 +2020-06-28,Clarke,Iowa,19039,123,2 +2020-06-29,Clarke,Iowa,19039,124,2 +2020-06-30,Clarke,Iowa,19039,125,2 +2020-07-01,Clarke,Iowa,19039,126,2 +2020-07-02,Clarke,Iowa,19039,127,2 +2020-07-03,Clarke,Iowa,19039,129,2 +2020-07-04,Clarke,Iowa,19039,132,2 +2020-07-05,Clarke,Iowa,19039,132,2 +2020-07-06,Clarke,Iowa,19039,132,2 +2020-07-07,Clarke,Iowa,19039,133,3 +2020-07-08,Clarke,Iowa,19039,134,3 +2020-07-09,Clarke,Iowa,19039,140,3 +2020-03-31,Clay,Iowa,19041,1,0 +2020-04-01,Clay,Iowa,19041,1,0 +2020-04-02,Clay,Iowa,19041,2,0 +2020-04-03,Clay,Iowa,19041,2,0 +2020-04-04,Clay,Iowa,19041,2,0 +2020-04-05,Clay,Iowa,19041,2,0 +2020-04-06,Clay,Iowa,19041,2,0 +2020-04-07,Clay,Iowa,19041,2,0 +2020-04-08,Clay,Iowa,19041,2,0 +2020-04-09,Clay,Iowa,19041,2,0 +2020-04-10,Clay,Iowa,19041,2,0 +2020-04-11,Clay,Iowa,19041,2,0 +2020-04-12,Clay,Iowa,19041,2,0 +2020-04-13,Clay,Iowa,19041,2,0 +2020-04-14,Clay,Iowa,19041,2,0 +2020-04-15,Clay,Iowa,19041,2,0 +2020-04-16,Clay,Iowa,19041,2,0 +2020-04-17,Clay,Iowa,19041,2,0 +2020-04-18,Clay,Iowa,19041,3,0 +2020-04-19,Clay,Iowa,19041,3,0 +2020-04-20,Clay,Iowa,19041,3,0 +2020-04-21,Clay,Iowa,19041,3,0 +2020-04-22,Clay,Iowa,19041,3,0 +2020-04-23,Clay,Iowa,19041,3,0 +2020-04-24,Clay,Iowa,19041,3,0 +2020-04-25,Clay,Iowa,19041,3,0 +2020-04-26,Clay,Iowa,19041,3,0 +2020-04-27,Clay,Iowa,19041,3,0 +2020-04-28,Clay,Iowa,19041,3,0 +2020-04-29,Clay,Iowa,19041,3,0 +2020-04-30,Clay,Iowa,19041,4,0 +2020-05-01,Clay,Iowa,19041,4,0 +2020-05-02,Clay,Iowa,19041,4,0 +2020-05-03,Clay,Iowa,19041,5,0 +2020-05-04,Clay,Iowa,19041,6,0 +2020-05-05,Clay,Iowa,19041,7,0 +2020-05-06,Clay,Iowa,19041,7,0 +2020-05-07,Clay,Iowa,19041,8,0 +2020-05-08,Clay,Iowa,19041,9,0 +2020-05-09,Clay,Iowa,19041,9,0 +2020-05-10,Clay,Iowa,19041,9,0 +2020-05-11,Clay,Iowa,19041,9,0 +2020-05-12,Clay,Iowa,19041,9,0 +2020-05-13,Clay,Iowa,19041,9,0 +2020-05-14,Clay,Iowa,19041,9,0 +2020-05-15,Clay,Iowa,19041,10,0 +2020-05-16,Clay,Iowa,19041,10,0 +2020-05-17,Clay,Iowa,19041,9,0 +2020-05-18,Clay,Iowa,19041,9,0 +2020-05-19,Clay,Iowa,19041,9,0 +2020-05-20,Clay,Iowa,19041,9,0 +2020-05-21,Clay,Iowa,19041,9,0 +2020-05-22,Clay,Iowa,19041,9,0 +2020-05-23,Clay,Iowa,19041,9,0 +2020-05-24,Clay,Iowa,19041,10,0 +2020-05-25,Clay,Iowa,19041,10,0 +2020-05-26,Clay,Iowa,19041,12,0 +2020-05-27,Clay,Iowa,19041,13,0 +2020-05-28,Clay,Iowa,19041,13,0 +2020-05-29,Clay,Iowa,19041,13,0 +2020-05-30,Clay,Iowa,19041,15,0 +2020-05-31,Clay,Iowa,19041,16,0 +2020-06-01,Clay,Iowa,19041,18,0 +2020-06-02,Clay,Iowa,19041,18,0 +2020-06-03,Clay,Iowa,19041,21,0 +2020-06-04,Clay,Iowa,19041,27,0 +2020-06-05,Clay,Iowa,19041,29,0 +2020-06-06,Clay,Iowa,19041,30,0 +2020-06-07,Clay,Iowa,19041,34,0 +2020-06-08,Clay,Iowa,19041,35,0 +2020-06-09,Clay,Iowa,19041,36,0 +2020-06-10,Clay,Iowa,19041,39,0 +2020-06-11,Clay,Iowa,19041,55,0 +2020-06-12,Clay,Iowa,19041,62,0 +2020-06-13,Clay,Iowa,19041,66,0 +2020-06-14,Clay,Iowa,19041,73,0 +2020-06-15,Clay,Iowa,19041,77,0 +2020-06-16,Clay,Iowa,19041,83,0 +2020-06-17,Clay,Iowa,19041,86,0 +2020-06-18,Clay,Iowa,19041,93,0 +2020-06-19,Clay,Iowa,19041,102,0 +2020-06-20,Clay,Iowa,19041,104,0 +2020-06-21,Clay,Iowa,19041,106,0 +2020-06-22,Clay,Iowa,19041,106,0 +2020-06-23,Clay,Iowa,19041,109,0 +2020-06-24,Clay,Iowa,19041,111,0 +2020-06-25,Clay,Iowa,19041,113,0 +2020-06-26,Clay,Iowa,19041,115,0 +2020-06-27,Clay,Iowa,19041,117,0 +2020-06-28,Clay,Iowa,19041,119,0 +2020-06-29,Clay,Iowa,19041,120,0 +2020-06-30,Clay,Iowa,19041,123,0 +2020-07-01,Clay,Iowa,19041,126,0 +2020-07-02,Clay,Iowa,19041,127,0 +2020-07-03,Clay,Iowa,19041,129,0 +2020-07-04,Clay,Iowa,19041,133,0 +2020-07-05,Clay,Iowa,19041,134,0 +2020-07-06,Clay,Iowa,19041,134,0 +2020-07-07,Clay,Iowa,19041,137,0 +2020-07-08,Clay,Iowa,19041,142,1 +2020-07-09,Clay,Iowa,19041,145,1 +2020-03-26,Clayton,Iowa,19043,1,0 +2020-03-27,Clayton,Iowa,19043,1,0 +2020-03-28,Clayton,Iowa,19043,1,0 +2020-03-29,Clayton,Iowa,19043,1,0 +2020-03-30,Clayton,Iowa,19043,1,0 +2020-03-31,Clayton,Iowa,19043,1,0 +2020-04-01,Clayton,Iowa,19043,2,0 +2020-04-02,Clayton,Iowa,19043,2,0 +2020-04-03,Clayton,Iowa,19043,3,0 +2020-04-04,Clayton,Iowa,19043,3,0 +2020-04-05,Clayton,Iowa,19043,4,0 +2020-04-06,Clayton,Iowa,19043,4,0 +2020-04-07,Clayton,Iowa,19043,5,0 +2020-04-08,Clayton,Iowa,19043,5,0 +2020-04-09,Clayton,Iowa,19043,5,0 +2020-04-10,Clayton,Iowa,19043,6,0 +2020-04-11,Clayton,Iowa,19043,7,0 +2020-04-12,Clayton,Iowa,19043,7,0 +2020-04-13,Clayton,Iowa,19043,7,0 +2020-04-14,Clayton,Iowa,19043,7,0 +2020-04-15,Clayton,Iowa,19043,7,1 +2020-04-16,Clayton,Iowa,19043,7,1 +2020-04-17,Clayton,Iowa,19043,7,1 +2020-04-18,Clayton,Iowa,19043,7,1 +2020-04-19,Clayton,Iowa,19043,7,1 +2020-04-20,Clayton,Iowa,19043,7,1 +2020-04-21,Clayton,Iowa,19043,8,1 +2020-04-22,Clayton,Iowa,19043,8,1 +2020-04-23,Clayton,Iowa,19043,8,1 +2020-04-24,Clayton,Iowa,19043,9,1 +2020-04-25,Clayton,Iowa,19043,11,1 +2020-04-26,Clayton,Iowa,19043,12,1 +2020-04-27,Clayton,Iowa,19043,13,1 +2020-04-28,Clayton,Iowa,19043,12,1 +2020-04-29,Clayton,Iowa,19043,12,1 +2020-04-30,Clayton,Iowa,19043,14,1 +2020-05-01,Clayton,Iowa,19043,17,1 +2020-05-02,Clayton,Iowa,19043,18,1 +2020-05-03,Clayton,Iowa,19043,15,1 +2020-05-04,Clayton,Iowa,19043,17,1 +2020-05-05,Clayton,Iowa,19043,18,1 +2020-05-06,Clayton,Iowa,19043,18,2 +2020-05-07,Clayton,Iowa,19043,19,2 +2020-05-08,Clayton,Iowa,19043,21,2 +2020-05-09,Clayton,Iowa,19043,22,2 +2020-05-10,Clayton,Iowa,19043,23,2 +2020-05-11,Clayton,Iowa,19043,23,2 +2020-05-12,Clayton,Iowa,19043,28,3 +2020-05-13,Clayton,Iowa,19043,28,3 +2020-05-14,Clayton,Iowa,19043,28,3 +2020-05-15,Clayton,Iowa,19043,28,3 +2020-05-16,Clayton,Iowa,19043,28,3 +2020-05-17,Clayton,Iowa,19043,28,3 +2020-05-18,Clayton,Iowa,19043,30,3 +2020-05-19,Clayton,Iowa,19043,30,3 +2020-05-20,Clayton,Iowa,19043,30,3 +2020-05-21,Clayton,Iowa,19043,30,3 +2020-05-22,Clayton,Iowa,19043,30,3 +2020-05-23,Clayton,Iowa,19043,30,3 +2020-05-24,Clayton,Iowa,19043,30,3 +2020-05-25,Clayton,Iowa,19043,30,3 +2020-05-26,Clayton,Iowa,19043,31,3 +2020-05-27,Clayton,Iowa,19043,31,3 +2020-05-28,Clayton,Iowa,19043,32,3 +2020-05-29,Clayton,Iowa,19043,33,3 +2020-05-30,Clayton,Iowa,19043,34,3 +2020-05-31,Clayton,Iowa,19043,35,3 +2020-06-01,Clayton,Iowa,19043,34,3 +2020-06-02,Clayton,Iowa,19043,34,3 +2020-06-03,Clayton,Iowa,19043,34,3 +2020-06-04,Clayton,Iowa,19043,34,3 +2020-06-05,Clayton,Iowa,19043,34,3 +2020-06-06,Clayton,Iowa,19043,34,3 +2020-06-07,Clayton,Iowa,19043,34,3 +2020-06-08,Clayton,Iowa,19043,34,3 +2020-06-09,Clayton,Iowa,19043,34,3 +2020-06-10,Clayton,Iowa,19043,34,3 +2020-06-11,Clayton,Iowa,19043,35,3 +2020-06-12,Clayton,Iowa,19043,35,3 +2020-06-13,Clayton,Iowa,19043,35,3 +2020-06-14,Clayton,Iowa,19043,35,3 +2020-06-15,Clayton,Iowa,19043,35,3 +2020-06-16,Clayton,Iowa,19043,35,3 +2020-06-17,Clayton,Iowa,19043,35,3 +2020-06-18,Clayton,Iowa,19043,35,3 +2020-06-19,Clayton,Iowa,19043,35,3 +2020-06-20,Clayton,Iowa,19043,35,3 +2020-06-21,Clayton,Iowa,19043,35,3 +2020-06-22,Clayton,Iowa,19043,35,3 +2020-06-23,Clayton,Iowa,19043,35,3 +2020-06-24,Clayton,Iowa,19043,35,3 +2020-06-25,Clayton,Iowa,19043,38,3 +2020-06-26,Clayton,Iowa,19043,36,3 +2020-06-27,Clayton,Iowa,19043,38,3 +2020-06-28,Clayton,Iowa,19043,39,3 +2020-06-29,Clayton,Iowa,19043,38,3 +2020-06-30,Clayton,Iowa,19043,39,3 +2020-07-01,Clayton,Iowa,19043,39,3 +2020-07-02,Clayton,Iowa,19043,39,3 +2020-07-03,Clayton,Iowa,19043,40,3 +2020-07-04,Clayton,Iowa,19043,43,3 +2020-07-05,Clayton,Iowa,19043,44,3 +2020-07-06,Clayton,Iowa,19043,44,3 +2020-07-07,Clayton,Iowa,19043,44,3 +2020-07-08,Clayton,Iowa,19043,46,3 +2020-07-09,Clayton,Iowa,19043,47,3 +2020-03-27,Clinton,Iowa,19045,1,0 +2020-03-28,Clinton,Iowa,19045,1,0 +2020-03-29,Clinton,Iowa,19045,1,0 +2020-03-30,Clinton,Iowa,19045,2,0 +2020-03-31,Clinton,Iowa,19045,5,0 +2020-04-01,Clinton,Iowa,19045,6,0 +2020-04-02,Clinton,Iowa,19045,9,0 +2020-04-03,Clinton,Iowa,19045,15,0 +2020-04-04,Clinton,Iowa,19045,15,0 +2020-04-05,Clinton,Iowa,19045,16,0 +2020-04-06,Clinton,Iowa,19045,17,0 +2020-04-07,Clinton,Iowa,19045,17,0 +2020-04-08,Clinton,Iowa,19045,19,0 +2020-04-09,Clinton,Iowa,19045,21,0 +2020-04-10,Clinton,Iowa,19045,24,0 +2020-04-11,Clinton,Iowa,19045,28,0 +2020-04-12,Clinton,Iowa,19045,29,0 +2020-04-13,Clinton,Iowa,19045,33,0 +2020-04-14,Clinton,Iowa,19045,36,0 +2020-04-15,Clinton,Iowa,19045,38,0 +2020-04-16,Clinton,Iowa,19045,39,0 +2020-04-17,Clinton,Iowa,19045,39,0 +2020-04-18,Clinton,Iowa,19045,40,0 +2020-04-19,Clinton,Iowa,19045,41,0 +2020-04-20,Clinton,Iowa,19045,42,0 +2020-04-21,Clinton,Iowa,19045,44,0 +2020-04-22,Clinton,Iowa,19045,44,0 +2020-04-23,Clinton,Iowa,19045,44,0 +2020-04-24,Clinton,Iowa,19045,47,0 +2020-04-25,Clinton,Iowa,19045,47,0 +2020-04-26,Clinton,Iowa,19045,47,1 +2020-04-27,Clinton,Iowa,19045,48,1 +2020-04-28,Clinton,Iowa,19045,48,1 +2020-04-29,Clinton,Iowa,19045,48,1 +2020-04-30,Clinton,Iowa,19045,48,1 +2020-05-01,Clinton,Iowa,19045,49,1 +2020-05-02,Clinton,Iowa,19045,50,1 +2020-05-03,Clinton,Iowa,19045,50,1 +2020-05-04,Clinton,Iowa,19045,50,1 +2020-05-05,Clinton,Iowa,19045,51,1 +2020-05-06,Clinton,Iowa,19045,51,1 +2020-05-07,Clinton,Iowa,19045,53,1 +2020-05-08,Clinton,Iowa,19045,53,1 +2020-05-09,Clinton,Iowa,19045,55,1 +2020-05-10,Clinton,Iowa,19045,56,1 +2020-05-11,Clinton,Iowa,19045,58,1 +2020-05-12,Clinton,Iowa,19045,58,1 +2020-05-13,Clinton,Iowa,19045,58,1 +2020-05-14,Clinton,Iowa,19045,60,1 +2020-05-15,Clinton,Iowa,19045,60,1 +2020-05-16,Clinton,Iowa,19045,60,1 +2020-05-17,Clinton,Iowa,19045,61,1 +2020-05-18,Clinton,Iowa,19045,61,1 +2020-05-19,Clinton,Iowa,19045,61,1 +2020-05-20,Clinton,Iowa,19045,61,1 +2020-05-21,Clinton,Iowa,19045,61,1 +2020-05-22,Clinton,Iowa,19045,61,1 +2020-05-23,Clinton,Iowa,19045,61,1 +2020-05-24,Clinton,Iowa,19045,60,1 +2020-05-25,Clinton,Iowa,19045,60,1 +2020-05-26,Clinton,Iowa,19045,60,1 +2020-05-27,Clinton,Iowa,19045,60,1 +2020-05-28,Clinton,Iowa,19045,60,1 +2020-05-29,Clinton,Iowa,19045,61,1 +2020-05-30,Clinton,Iowa,19045,61,1 +2020-05-31,Clinton,Iowa,19045,64,1 +2020-06-01,Clinton,Iowa,19045,64,1 +2020-06-02,Clinton,Iowa,19045,64,1 +2020-06-03,Clinton,Iowa,19045,65,1 +2020-06-04,Clinton,Iowa,19045,65,1 +2020-06-05,Clinton,Iowa,19045,65,1 +2020-06-06,Clinton,Iowa,19045,65,1 +2020-06-07,Clinton,Iowa,19045,67,1 +2020-06-08,Clinton,Iowa,19045,67,1 +2020-06-09,Clinton,Iowa,19045,67,1 +2020-06-10,Clinton,Iowa,19045,67,1 +2020-06-11,Clinton,Iowa,19045,67,1 +2020-06-12,Clinton,Iowa,19045,67,1 +2020-06-13,Clinton,Iowa,19045,67,1 +2020-06-14,Clinton,Iowa,19045,68,1 +2020-06-15,Clinton,Iowa,19045,68,1 +2020-06-16,Clinton,Iowa,19045,68,1 +2020-06-17,Clinton,Iowa,19045,70,1 +2020-06-18,Clinton,Iowa,19045,70,1 +2020-06-19,Clinton,Iowa,19045,72,1 +2020-06-20,Clinton,Iowa,19045,73,1 +2020-06-21,Clinton,Iowa,19045,75,1 +2020-06-22,Clinton,Iowa,19045,75,1 +2020-06-23,Clinton,Iowa,19045,75,1 +2020-06-24,Clinton,Iowa,19045,80,1 +2020-06-25,Clinton,Iowa,19045,83,1 +2020-06-26,Clinton,Iowa,19045,86,1 +2020-06-27,Clinton,Iowa,19045,87,1 +2020-06-28,Clinton,Iowa,19045,88,1 +2020-06-29,Clinton,Iowa,19045,92,1 +2020-06-30,Clinton,Iowa,19045,97,1 +2020-07-01,Clinton,Iowa,19045,99,1 +2020-07-02,Clinton,Iowa,19045,104,1 +2020-07-03,Clinton,Iowa,19045,107,1 +2020-07-04,Clinton,Iowa,19045,109,1 +2020-07-05,Clinton,Iowa,19045,113,1 +2020-07-06,Clinton,Iowa,19045,112,1 +2020-07-07,Clinton,Iowa,19045,113,1 +2020-07-08,Clinton,Iowa,19045,115,1 +2020-07-09,Clinton,Iowa,19045,121,1 +2020-03-30,Crawford,Iowa,19047,1,0 +2020-03-31,Crawford,Iowa,19047,1,0 +2020-04-01,Crawford,Iowa,19047,1,0 +2020-04-02,Crawford,Iowa,19047,1,0 +2020-04-03,Crawford,Iowa,19047,4,0 +2020-04-04,Crawford,Iowa,19047,4,0 +2020-04-05,Crawford,Iowa,19047,4,0 +2020-04-06,Crawford,Iowa,19047,5,0 +2020-04-07,Crawford,Iowa,19047,5,0 +2020-04-08,Crawford,Iowa,19047,6,0 +2020-04-09,Crawford,Iowa,19047,6,0 +2020-04-10,Crawford,Iowa,19047,6,0 +2020-04-11,Crawford,Iowa,19047,6,1 +2020-04-12,Crawford,Iowa,19047,6,1 +2020-04-13,Crawford,Iowa,19047,6,1 +2020-04-14,Crawford,Iowa,19047,6,1 +2020-04-15,Crawford,Iowa,19047,6,1 +2020-04-16,Crawford,Iowa,19047,6,1 +2020-04-17,Crawford,Iowa,19047,6,1 +2020-04-18,Crawford,Iowa,19047,6,1 +2020-04-19,Crawford,Iowa,19047,6,1 +2020-04-20,Crawford,Iowa,19047,6,1 +2020-04-21,Crawford,Iowa,19047,6,1 +2020-04-22,Crawford,Iowa,19047,6,1 +2020-04-23,Crawford,Iowa,19047,6,1 +2020-04-24,Crawford,Iowa,19047,8,1 +2020-04-25,Crawford,Iowa,19047,10,1 +2020-04-26,Crawford,Iowa,19047,14,1 +2020-04-27,Crawford,Iowa,19047,14,1 +2020-04-28,Crawford,Iowa,19047,19,1 +2020-04-29,Crawford,Iowa,19047,21,1 +2020-04-30,Crawford,Iowa,19047,21,1 +2020-05-01,Crawford,Iowa,19047,24,1 +2020-05-02,Crawford,Iowa,19047,31,1 +2020-05-03,Crawford,Iowa,19047,51,1 +2020-05-04,Crawford,Iowa,19047,78,1 +2020-05-05,Crawford,Iowa,19047,96,1 +2020-05-06,Crawford,Iowa,19047,103,1 +2020-05-07,Crawford,Iowa,19047,124,1 +2020-05-08,Crawford,Iowa,19047,149,1 +2020-05-09,Crawford,Iowa,19047,175,1 +2020-05-10,Crawford,Iowa,19047,176,1 +2020-05-11,Crawford,Iowa,19047,191,1 +2020-05-12,Crawford,Iowa,19047,197,1 +2020-05-13,Crawford,Iowa,19047,207,1 +2020-05-14,Crawford,Iowa,19047,300,1 +2020-05-15,Crawford,Iowa,19047,336,1 +2020-05-16,Crawford,Iowa,19047,348,1 +2020-05-17,Crawford,Iowa,19047,380,1 +2020-05-18,Crawford,Iowa,19047,384,1 +2020-05-19,Crawford,Iowa,19047,394,1 +2020-05-20,Crawford,Iowa,19047,420,1 +2020-05-21,Crawford,Iowa,19047,435,2 +2020-05-22,Crawford,Iowa,19047,445,2 +2020-05-23,Crawford,Iowa,19047,445,2 +2020-05-24,Crawford,Iowa,19047,484,2 +2020-05-25,Crawford,Iowa,19047,486,2 +2020-05-26,Crawford,Iowa,19047,487,2 +2020-05-27,Crawford,Iowa,19047,488,2 +2020-05-28,Crawford,Iowa,19047,495,2 +2020-05-29,Crawford,Iowa,19047,504,2 +2020-05-30,Crawford,Iowa,19047,517,2 +2020-05-31,Crawford,Iowa,19047,524,2 +2020-06-01,Crawford,Iowa,19047,528,2 +2020-06-02,Crawford,Iowa,19047,530,2 +2020-06-03,Crawford,Iowa,19047,543,2 +2020-06-04,Crawford,Iowa,19047,548,2 +2020-06-05,Crawford,Iowa,19047,557,2 +2020-06-06,Crawford,Iowa,19047,568,2 +2020-06-07,Crawford,Iowa,19047,573,2 +2020-06-08,Crawford,Iowa,19047,576,2 +2020-06-09,Crawford,Iowa,19047,583,2 +2020-06-10,Crawford,Iowa,19047,589,2 +2020-06-11,Crawford,Iowa,19047,592,2 +2020-06-12,Crawford,Iowa,19047,595,2 +2020-06-13,Crawford,Iowa,19047,614,2 +2020-06-14,Crawford,Iowa,19047,618,2 +2020-06-15,Crawford,Iowa,19047,622,2 +2020-06-16,Crawford,Iowa,19047,623,2 +2020-06-17,Crawford,Iowa,19047,630,2 +2020-06-18,Crawford,Iowa,19047,633,2 +2020-06-19,Crawford,Iowa,19047,635,2 +2020-06-20,Crawford,Iowa,19047,637,2 +2020-06-21,Crawford,Iowa,19047,640,2 +2020-06-22,Crawford,Iowa,19047,641,2 +2020-06-23,Crawford,Iowa,19047,642,2 +2020-06-24,Crawford,Iowa,19047,647,2 +2020-06-25,Crawford,Iowa,19047,650,2 +2020-06-26,Crawford,Iowa,19047,658,2 +2020-06-27,Crawford,Iowa,19047,659,2 +2020-06-28,Crawford,Iowa,19047,661,2 +2020-06-29,Crawford,Iowa,19047,667,2 +2020-06-30,Crawford,Iowa,19047,667,2 +2020-07-01,Crawford,Iowa,19047,667,2 +2020-07-02,Crawford,Iowa,19047,675,2 +2020-07-03,Crawford,Iowa,19047,675,2 +2020-07-04,Crawford,Iowa,19047,677,2 +2020-07-05,Crawford,Iowa,19047,678,2 +2020-07-06,Crawford,Iowa,19047,677,2 +2020-07-07,Crawford,Iowa,19047,678,3 +2020-07-08,Crawford,Iowa,19047,679,3 +2020-07-09,Crawford,Iowa,19047,679,3 +2020-03-14,Dallas,Iowa,19049,1,0 +2020-03-15,Dallas,Iowa,19049,1,0 +2020-03-16,Dallas,Iowa,19049,1,0 +2020-03-17,Dallas,Iowa,19049,3,0 +2020-03-18,Dallas,Iowa,19049,5,0 +2020-03-19,Dallas,Iowa,19049,5,0 +2020-03-20,Dallas,Iowa,19049,5,0 +2020-03-21,Dallas,Iowa,19049,5,0 +2020-03-22,Dallas,Iowa,19049,6,0 +2020-03-23,Dallas,Iowa,19049,6,0 +2020-03-24,Dallas,Iowa,19049,7,0 +2020-03-25,Dallas,Iowa,19049,7,0 +2020-03-26,Dallas,Iowa,19049,7,0 +2020-03-27,Dallas,Iowa,19049,9,0 +2020-03-28,Dallas,Iowa,19049,15,0 +2020-03-29,Dallas,Iowa,19049,17,0 +2020-03-30,Dallas,Iowa,19049,21,0 +2020-03-31,Dallas,Iowa,19049,25,0 +2020-04-01,Dallas,Iowa,19049,27,0 +2020-04-02,Dallas,Iowa,19049,31,0 +2020-04-03,Dallas,Iowa,19049,33,0 +2020-04-04,Dallas,Iowa,19049,33,0 +2020-04-05,Dallas,Iowa,19049,35,0 +2020-04-06,Dallas,Iowa,19049,35,0 +2020-04-07,Dallas,Iowa,19049,35,0 +2020-04-08,Dallas,Iowa,19049,35,0 +2020-04-09,Dallas,Iowa,19049,36,0 +2020-04-10,Dallas,Iowa,19049,36,0 +2020-04-11,Dallas,Iowa,19049,37,0 +2020-04-12,Dallas,Iowa,19049,37,0 +2020-04-13,Dallas,Iowa,19049,36,0 +2020-04-14,Dallas,Iowa,19049,37,0 +2020-04-15,Dallas,Iowa,19049,38,0 +2020-04-16,Dallas,Iowa,19049,42,0 +2020-04-17,Dallas,Iowa,19049,44,0 +2020-04-18,Dallas,Iowa,19049,45,0 +2020-04-19,Dallas,Iowa,19049,45,0 +2020-04-20,Dallas,Iowa,19049,52,0 +2020-04-21,Dallas,Iowa,19049,55,0 +2020-04-22,Dallas,Iowa,19049,59,0 +2020-04-23,Dallas,Iowa,19049,67,0 +2020-04-24,Dallas,Iowa,19049,99,0 +2020-04-25,Dallas,Iowa,19049,131,0 +2020-04-26,Dallas,Iowa,19049,169,0 +2020-04-27,Dallas,Iowa,19049,179,0 +2020-04-28,Dallas,Iowa,19049,198,0 +2020-04-29,Dallas,Iowa,19049,258,0 +2020-04-30,Dallas,Iowa,19049,318,0 +2020-05-01,Dallas,Iowa,19049,408,0 +2020-05-02,Dallas,Iowa,19049,515,0 +2020-05-03,Dallas,Iowa,19049,537,0 +2020-05-04,Dallas,Iowa,19049,578,1 +2020-05-05,Dallas,Iowa,19049,613,3 +2020-05-06,Dallas,Iowa,19049,626,3 +2020-05-07,Dallas,Iowa,19049,644,4 +2020-05-08,Dallas,Iowa,19049,654,5 +2020-05-09,Dallas,Iowa,19049,660,5 +2020-05-10,Dallas,Iowa,19049,676,6 +2020-05-11,Dallas,Iowa,19049,701,6 +2020-05-12,Dallas,Iowa,19049,712,7 +2020-05-13,Dallas,Iowa,19049,741,8 +2020-05-14,Dallas,Iowa,19049,755,9 +2020-05-15,Dallas,Iowa,19049,757,10 +2020-05-16,Dallas,Iowa,19049,773,10 +2020-05-17,Dallas,Iowa,19049,776,11 +2020-05-18,Dallas,Iowa,19049,788,11 +2020-05-19,Dallas,Iowa,19049,795,11 +2020-05-20,Dallas,Iowa,19049,807,12 +2020-05-21,Dallas,Iowa,19049,816,13 +2020-05-22,Dallas,Iowa,19049,821,14 +2020-05-23,Dallas,Iowa,19049,821,14 +2020-05-24,Dallas,Iowa,19049,853,14 +2020-05-25,Dallas,Iowa,19049,865,15 +2020-05-26,Dallas,Iowa,19049,864,17 +2020-05-27,Dallas,Iowa,19049,874,17 +2020-05-28,Dallas,Iowa,19049,879,17 +2020-05-29,Dallas,Iowa,19049,888,20 +2020-05-30,Dallas,Iowa,19049,900,20 +2020-05-31,Dallas,Iowa,19049,905,21 +2020-06-01,Dallas,Iowa,19049,916,24 +2020-06-02,Dallas,Iowa,19049,925,24 +2020-06-03,Dallas,Iowa,19049,929,24 +2020-06-04,Dallas,Iowa,19049,948,26 +2020-06-05,Dallas,Iowa,19049,958,26 +2020-06-06,Dallas,Iowa,19049,959,26 +2020-06-07,Dallas,Iowa,19049,959,26 +2020-06-08,Dallas,Iowa,19049,962,26 +2020-06-09,Dallas,Iowa,19049,969,26 +2020-06-10,Dallas,Iowa,19049,974,26 +2020-06-11,Dallas,Iowa,19049,986,26 +2020-06-12,Dallas,Iowa,19049,1005,26 +2020-06-13,Dallas,Iowa,19049,1019,26 +2020-06-14,Dallas,Iowa,19049,1026,26 +2020-06-15,Dallas,Iowa,19049,1029,26 +2020-06-16,Dallas,Iowa,19049,1031,28 +2020-06-17,Dallas,Iowa,19049,1046,29 +2020-06-18,Dallas,Iowa,19049,1051,28 +2020-06-19,Dallas,Iowa,19049,1064,28 +2020-06-20,Dallas,Iowa,19049,1067,29 +2020-06-21,Dallas,Iowa,19049,1073,29 +2020-06-22,Dallas,Iowa,19049,1081,29 +2020-06-23,Dallas,Iowa,19049,1084,29 +2020-06-24,Dallas,Iowa,19049,1091,29 +2020-06-25,Dallas,Iowa,19049,1115,29 +2020-06-26,Dallas,Iowa,19049,1126,29 +2020-06-27,Dallas,Iowa,19049,1151,29 +2020-06-28,Dallas,Iowa,19049,1172,29 +2020-06-29,Dallas,Iowa,19049,1173,29 +2020-06-30,Dallas,Iowa,19049,1176,29 +2020-07-01,Dallas,Iowa,19049,1197,29 +2020-07-02,Dallas,Iowa,19049,1223,29 +2020-07-03,Dallas,Iowa,19049,1249,29 +2020-07-04,Dallas,Iowa,19049,1267,29 +2020-07-05,Dallas,Iowa,19049,1284,29 +2020-07-06,Dallas,Iowa,19049,1280,29 +2020-07-07,Dallas,Iowa,19049,1291,29 +2020-07-08,Dallas,Iowa,19049,1300,31 +2020-07-09,Dallas,Iowa,19049,1335,31 +2020-04-29,Davis,Iowa,19051,1,0 +2020-04-30,Davis,Iowa,19051,1,0 +2020-05-01,Davis,Iowa,19051,1,0 +2020-05-02,Davis,Iowa,19051,1,0 +2020-05-03,Davis,Iowa,19051,1,0 +2020-05-04,Davis,Iowa,19051,2,0 +2020-05-05,Davis,Iowa,19051,4,0 +2020-05-06,Davis,Iowa,19051,5,0 +2020-05-07,Davis,Iowa,19051,7,0 +2020-05-08,Davis,Iowa,19051,8,0 +2020-05-09,Davis,Iowa,19051,9,0 +2020-05-10,Davis,Iowa,19051,9,0 +2020-05-11,Davis,Iowa,19051,11,0 +2020-05-12,Davis,Iowa,19051,11,0 +2020-05-13,Davis,Iowa,19051,12,0 +2020-05-14,Davis,Iowa,19051,13,0 +2020-05-15,Davis,Iowa,19051,13,0 +2020-05-16,Davis,Iowa,19051,13,0 +2020-05-17,Davis,Iowa,19051,13,0 +2020-05-18,Davis,Iowa,19051,13,0 +2020-05-19,Davis,Iowa,19051,13,0 +2020-05-20,Davis,Iowa,19051,14,0 +2020-05-21,Davis,Iowa,19051,15,0 +2020-05-22,Davis,Iowa,19051,17,0 +2020-05-23,Davis,Iowa,19051,17,0 +2020-05-24,Davis,Iowa,19051,20,0 +2020-05-25,Davis,Iowa,19051,20,0 +2020-05-26,Davis,Iowa,19051,20,0 +2020-05-27,Davis,Iowa,19051,20,0 +2020-05-28,Davis,Iowa,19051,20,0 +2020-05-29,Davis,Iowa,19051,21,0 +2020-05-30,Davis,Iowa,19051,21,0 +2020-05-31,Davis,Iowa,19051,22,0 +2020-06-01,Davis,Iowa,19051,24,0 +2020-06-02,Davis,Iowa,19051,25,0 +2020-06-03,Davis,Iowa,19051,27,0 +2020-06-04,Davis,Iowa,19051,28,0 +2020-06-05,Davis,Iowa,19051,28,0 +2020-06-06,Davis,Iowa,19051,28,0 +2020-06-07,Davis,Iowa,19051,29,0 +2020-06-08,Davis,Iowa,19051,29,1 +2020-06-09,Davis,Iowa,19051,29,1 +2020-06-10,Davis,Iowa,19051,30,1 +2020-06-11,Davis,Iowa,19051,31,1 +2020-06-12,Davis,Iowa,19051,33,1 +2020-06-13,Davis,Iowa,19051,33,1 +2020-06-14,Davis,Iowa,19051,34,1 +2020-06-15,Davis,Iowa,19051,34,1 +2020-06-16,Davis,Iowa,19051,34,1 +2020-06-17,Davis,Iowa,19051,34,1 +2020-06-18,Davis,Iowa,19051,36,1 +2020-06-19,Davis,Iowa,19051,36,1 +2020-06-20,Davis,Iowa,19051,36,1 +2020-06-21,Davis,Iowa,19051,36,1 +2020-06-22,Davis,Iowa,19051,36,1 +2020-06-23,Davis,Iowa,19051,36,1 +2020-06-24,Davis,Iowa,19051,36,1 +2020-06-25,Davis,Iowa,19051,36,1 +2020-06-26,Davis,Iowa,19051,36,1 +2020-06-27,Davis,Iowa,19051,37,1 +2020-06-28,Davis,Iowa,19051,37,1 +2020-06-29,Davis,Iowa,19051,37,1 +2020-06-30,Davis,Iowa,19051,37,1 +2020-07-01,Davis,Iowa,19051,38,1 +2020-07-02,Davis,Iowa,19051,39,1 +2020-07-03,Davis,Iowa,19051,39,1 +2020-07-04,Davis,Iowa,19051,40,1 +2020-07-05,Davis,Iowa,19051,40,1 +2020-07-06,Davis,Iowa,19051,41,1 +2020-07-07,Davis,Iowa,19051,41,1 +2020-07-08,Davis,Iowa,19051,42,1 +2020-07-09,Davis,Iowa,19051,42,1 +2020-05-27,Decatur,Iowa,19053,1,0 +2020-05-28,Decatur,Iowa,19053,1,0 +2020-05-29,Decatur,Iowa,19053,1,0 +2020-05-30,Decatur,Iowa,19053,1,0 +2020-05-31,Decatur,Iowa,19053,1,0 +2020-06-01,Decatur,Iowa,19053,1,0 +2020-06-02,Decatur,Iowa,19053,1,0 +2020-06-03,Decatur,Iowa,19053,1,0 +2020-06-04,Decatur,Iowa,19053,1,0 +2020-06-05,Decatur,Iowa,19053,2,0 +2020-06-06,Decatur,Iowa,19053,2,0 +2020-06-07,Decatur,Iowa,19053,2,0 +2020-06-08,Decatur,Iowa,19053,3,0 +2020-06-09,Decatur,Iowa,19053,3,0 +2020-06-10,Decatur,Iowa,19053,3,0 +2020-06-11,Decatur,Iowa,19053,3,0 +2020-06-12,Decatur,Iowa,19053,4,0 +2020-06-13,Decatur,Iowa,19053,4,0 +2020-06-14,Decatur,Iowa,19053,4,0 +2020-06-15,Decatur,Iowa,19053,8,0 +2020-06-16,Decatur,Iowa,19053,9,0 +2020-06-17,Decatur,Iowa,19053,8,0 +2020-06-18,Decatur,Iowa,19053,8,0 +2020-06-19,Decatur,Iowa,19053,9,0 +2020-06-20,Decatur,Iowa,19053,9,0 +2020-06-21,Decatur,Iowa,19053,9,0 +2020-06-22,Decatur,Iowa,19053,9,0 +2020-06-23,Decatur,Iowa,19053,9,0 +2020-06-24,Decatur,Iowa,19053,9,0 +2020-06-25,Decatur,Iowa,19053,9,0 +2020-06-26,Decatur,Iowa,19053,9,0 +2020-06-27,Decatur,Iowa,19053,9,0 +2020-06-28,Decatur,Iowa,19053,9,0 +2020-06-29,Decatur,Iowa,19053,9,0 +2020-06-30,Decatur,Iowa,19053,10,0 +2020-07-01,Decatur,Iowa,19053,10,0 +2020-07-02,Decatur,Iowa,19053,11,0 +2020-07-03,Decatur,Iowa,19053,11,0 +2020-07-04,Decatur,Iowa,19053,11,0 +2020-07-05,Decatur,Iowa,19053,11,0 +2020-07-06,Decatur,Iowa,19053,12,0 +2020-07-07,Decatur,Iowa,19053,12,0 +2020-07-08,Decatur,Iowa,19053,12,0 +2020-07-09,Decatur,Iowa,19053,12,0 +2020-04-07,Delaware,Iowa,19055,1,0 +2020-04-08,Delaware,Iowa,19055,1,0 +2020-04-09,Delaware,Iowa,19055,1,0 +2020-04-10,Delaware,Iowa,19055,1,0 +2020-04-11,Delaware,Iowa,19055,2,0 +2020-04-12,Delaware,Iowa,19055,2,0 +2020-04-13,Delaware,Iowa,19055,2,0 +2020-04-14,Delaware,Iowa,19055,2,0 +2020-04-15,Delaware,Iowa,19055,2,0 +2020-04-16,Delaware,Iowa,19055,2,0 +2020-04-17,Delaware,Iowa,19055,2,0 +2020-04-18,Delaware,Iowa,19055,2,0 +2020-04-19,Delaware,Iowa,19055,2,0 +2020-04-20,Delaware,Iowa,19055,2,0 +2020-04-21,Delaware,Iowa,19055,3,0 +2020-04-22,Delaware,Iowa,19055,3,0 +2020-04-23,Delaware,Iowa,19055,3,0 +2020-04-24,Delaware,Iowa,19055,3,0 +2020-04-25,Delaware,Iowa,19055,4,0 +2020-04-26,Delaware,Iowa,19055,4,0 +2020-04-27,Delaware,Iowa,19055,4,0 +2020-04-28,Delaware,Iowa,19055,4,0 +2020-04-29,Delaware,Iowa,19055,4,0 +2020-04-30,Delaware,Iowa,19055,8,0 +2020-05-01,Delaware,Iowa,19055,8,0 +2020-05-02,Delaware,Iowa,19055,10,0 +2020-05-03,Delaware,Iowa,19055,5,1 +2020-05-04,Delaware,Iowa,19055,5,1 +2020-05-05,Delaware,Iowa,19055,8,1 +2020-05-06,Delaware,Iowa,19055,8,1 +2020-05-07,Delaware,Iowa,19055,8,1 +2020-05-08,Delaware,Iowa,19055,7,1 +2020-05-09,Delaware,Iowa,19055,7,1 +2020-05-10,Delaware,Iowa,19055,9,1 +2020-05-11,Delaware,Iowa,19055,9,1 +2020-05-12,Delaware,Iowa,19055,10,1 +2020-05-13,Delaware,Iowa,19055,10,0 +2020-05-14,Delaware,Iowa,19055,11,0 +2020-05-15,Delaware,Iowa,19055,11,0 +2020-05-16,Delaware,Iowa,19055,12,0 +2020-05-17,Delaware,Iowa,19055,12,0 +2020-05-18,Delaware,Iowa,19055,12,0 +2020-05-19,Delaware,Iowa,19055,12,0 +2020-05-20,Delaware,Iowa,19055,13,0 +2020-05-21,Delaware,Iowa,19055,13,0 +2020-05-22,Delaware,Iowa,19055,14,0 +2020-05-23,Delaware,Iowa,19055,14,0 +2020-05-24,Delaware,Iowa,19055,15,0 +2020-05-25,Delaware,Iowa,19055,15,0 +2020-05-26,Delaware,Iowa,19055,15,0 +2020-05-27,Delaware,Iowa,19055,15,0 +2020-05-28,Delaware,Iowa,19055,15,0 +2020-05-29,Delaware,Iowa,19055,15,0 +2020-05-30,Delaware,Iowa,19055,15,0 +2020-05-31,Delaware,Iowa,19055,15,0 +2020-06-01,Delaware,Iowa,19055,17,1 +2020-06-02,Delaware,Iowa,19055,18,1 +2020-06-03,Delaware,Iowa,19055,19,1 +2020-06-04,Delaware,Iowa,19055,19,1 +2020-06-05,Delaware,Iowa,19055,19,1 +2020-06-06,Delaware,Iowa,19055,19,1 +2020-06-07,Delaware,Iowa,19055,20,1 +2020-06-08,Delaware,Iowa,19055,20,1 +2020-06-09,Delaware,Iowa,19055,20,1 +2020-06-10,Delaware,Iowa,19055,25,1 +2020-06-11,Delaware,Iowa,19055,26,1 +2020-06-12,Delaware,Iowa,19055,27,1 +2020-06-13,Delaware,Iowa,19055,27,1 +2020-06-14,Delaware,Iowa,19055,27,1 +2020-06-15,Delaware,Iowa,19055,27,1 +2020-06-16,Delaware,Iowa,19055,28,1 +2020-06-17,Delaware,Iowa,19055,29,1 +2020-06-18,Delaware,Iowa,19055,29,1 +2020-06-19,Delaware,Iowa,19055,32,1 +2020-06-20,Delaware,Iowa,19055,32,1 +2020-06-21,Delaware,Iowa,19055,33,1 +2020-06-22,Delaware,Iowa,19055,33,1 +2020-06-23,Delaware,Iowa,19055,34,1 +2020-06-24,Delaware,Iowa,19055,36,1 +2020-06-25,Delaware,Iowa,19055,36,1 +2020-06-26,Delaware,Iowa,19055,38,1 +2020-06-27,Delaware,Iowa,19055,40,1 +2020-06-28,Delaware,Iowa,19055,41,1 +2020-06-29,Delaware,Iowa,19055,40,1 +2020-06-30,Delaware,Iowa,19055,41,1 +2020-07-01,Delaware,Iowa,19055,46,1 +2020-07-02,Delaware,Iowa,19055,48,1 +2020-07-03,Delaware,Iowa,19055,48,1 +2020-07-04,Delaware,Iowa,19055,50,1 +2020-07-05,Delaware,Iowa,19055,51,1 +2020-07-06,Delaware,Iowa,19055,51,1 +2020-07-07,Delaware,Iowa,19055,51,1 +2020-07-08,Delaware,Iowa,19055,53,1 +2020-07-09,Delaware,Iowa,19055,54,1 +2020-03-26,Des Moines,Iowa,19057,1,0 +2020-03-27,Des Moines,Iowa,19057,1,0 +2020-03-28,Des Moines,Iowa,19057,1,0 +2020-03-29,Des Moines,Iowa,19057,1,0 +2020-03-30,Des Moines,Iowa,19057,1,0 +2020-03-31,Des Moines,Iowa,19057,1,0 +2020-04-01,Des Moines,Iowa,19057,2,0 +2020-04-02,Des Moines,Iowa,19057,1,0 +2020-04-03,Des Moines,Iowa,19057,1,0 +2020-04-04,Des Moines,Iowa,19057,1,0 +2020-04-05,Des Moines,Iowa,19057,1,0 +2020-04-06,Des Moines,Iowa,19057,1,0 +2020-04-07,Des Moines,Iowa,19057,3,0 +2020-04-08,Des Moines,Iowa,19057,3,0 +2020-04-09,Des Moines,Iowa,19057,3,0 +2020-04-10,Des Moines,Iowa,19057,3,0 +2020-04-11,Des Moines,Iowa,19057,3,0 +2020-04-12,Des Moines,Iowa,19057,4,0 +2020-04-13,Des Moines,Iowa,19057,5,0 +2020-04-14,Des Moines,Iowa,19057,7,0 +2020-04-15,Des Moines,Iowa,19057,7,0 +2020-04-16,Des Moines,Iowa,19057,7,0 +2020-04-17,Des Moines,Iowa,19057,8,0 +2020-04-18,Des Moines,Iowa,19057,8,0 +2020-04-19,Des Moines,Iowa,19057,12,0 +2020-04-20,Des Moines,Iowa,19057,14,0 +2020-04-21,Des Moines,Iowa,19057,14,0 +2020-04-22,Des Moines,Iowa,19057,14,0 +2020-04-23,Des Moines,Iowa,19057,14,0 +2020-04-24,Des Moines,Iowa,19057,15,0 +2020-04-25,Des Moines,Iowa,19057,17,0 +2020-04-26,Des Moines,Iowa,19057,17,1 +2020-04-27,Des Moines,Iowa,19057,17,1 +2020-04-28,Des Moines,Iowa,19057,17,1 +2020-04-29,Des Moines,Iowa,19057,17,1 +2020-04-30,Des Moines,Iowa,19057,16,1 +2020-05-01,Des Moines,Iowa,19057,16,1 +2020-05-02,Des Moines,Iowa,19057,16,1 +2020-05-03,Des Moines,Iowa,19057,18,1 +2020-05-04,Des Moines,Iowa,19057,19,1 +2020-05-05,Des Moines,Iowa,19057,21,1 +2020-05-06,Des Moines,Iowa,19057,24,1 +2020-05-07,Des Moines,Iowa,19057,29,1 +2020-05-08,Des Moines,Iowa,19057,31,1 +2020-05-09,Des Moines,Iowa,19057,37,1 +2020-05-10,Des Moines,Iowa,19057,39,1 +2020-05-11,Des Moines,Iowa,19057,40,1 +2020-05-12,Des Moines,Iowa,19057,43,1 +2020-05-13,Des Moines,Iowa,19057,44,1 +2020-05-14,Des Moines,Iowa,19057,46,1 +2020-05-15,Des Moines,Iowa,19057,39,1 +2020-05-16,Des Moines,Iowa,19057,37,1 +2020-05-17,Des Moines,Iowa,19057,37,1 +2020-05-18,Des Moines,Iowa,19057,39,1 +2020-05-19,Des Moines,Iowa,19057,39,1 +2020-05-20,Des Moines,Iowa,19057,49,1 +2020-05-21,Des Moines,Iowa,19057,51,1 +2020-05-22,Des Moines,Iowa,19057,54,1 +2020-05-23,Des Moines,Iowa,19057,54,1 +2020-05-24,Des Moines,Iowa,19057,54,1 +2020-05-25,Des Moines,Iowa,19057,56,1 +2020-05-26,Des Moines,Iowa,19057,56,1 +2020-05-27,Des Moines,Iowa,19057,57,1 +2020-05-28,Des Moines,Iowa,19057,59,1 +2020-05-29,Des Moines,Iowa,19057,62,1 +2020-05-30,Des Moines,Iowa,19057,62,1 +2020-05-31,Des Moines,Iowa,19057,65,1 +2020-06-01,Des Moines,Iowa,19057,66,1 +2020-06-02,Des Moines,Iowa,19057,66,1 +2020-06-03,Des Moines,Iowa,19057,66,1 +2020-06-04,Des Moines,Iowa,19057,67,1 +2020-06-05,Des Moines,Iowa,19057,68,2 +2020-06-06,Des Moines,Iowa,19057,68,2 +2020-06-07,Des Moines,Iowa,19057,70,2 +2020-06-08,Des Moines,Iowa,19057,68,2 +2020-06-09,Des Moines,Iowa,19057,68,2 +2020-06-10,Des Moines,Iowa,19057,68,2 +2020-06-11,Des Moines,Iowa,19057,67,2 +2020-06-12,Des Moines,Iowa,19057,68,2 +2020-06-13,Des Moines,Iowa,19057,67,2 +2020-06-14,Des Moines,Iowa,19057,68,2 +2020-06-15,Des Moines,Iowa,19057,66,2 +2020-06-16,Des Moines,Iowa,19057,66,2 +2020-06-17,Des Moines,Iowa,19057,66,2 +2020-06-18,Des Moines,Iowa,19057,66,2 +2020-06-19,Des Moines,Iowa,19057,74,2 +2020-06-20,Des Moines,Iowa,19057,74,2 +2020-06-21,Des Moines,Iowa,19057,76,2 +2020-06-22,Des Moines,Iowa,19057,78,2 +2020-06-23,Des Moines,Iowa,19057,78,2 +2020-06-24,Des Moines,Iowa,19057,79,2 +2020-06-25,Des Moines,Iowa,19057,81,2 +2020-06-26,Des Moines,Iowa,19057,82,2 +2020-06-27,Des Moines,Iowa,19057,83,2 +2020-06-28,Des Moines,Iowa,19057,84,2 +2020-06-29,Des Moines,Iowa,19057,84,2 +2020-06-30,Des Moines,Iowa,19057,84,3 +2020-07-01,Des Moines,Iowa,19057,85,3 +2020-07-02,Des Moines,Iowa,19057,86,2 +2020-07-03,Des Moines,Iowa,19057,88,2 +2020-07-04,Des Moines,Iowa,19057,88,2 +2020-07-05,Des Moines,Iowa,19057,90,2 +2020-07-06,Des Moines,Iowa,19057,92,2 +2020-07-07,Des Moines,Iowa,19057,91,2 +2020-07-08,Des Moines,Iowa,19057,95,2 +2020-07-09,Des Moines,Iowa,19057,95,2 +2020-03-27,Dickinson,Iowa,19059,1,0 +2020-03-28,Dickinson,Iowa,19059,1,0 +2020-03-29,Dickinson,Iowa,19059,1,0 +2020-03-30,Dickinson,Iowa,19059,1,0 +2020-03-31,Dickinson,Iowa,19059,1,0 +2020-04-01,Dickinson,Iowa,19059,1,0 +2020-04-02,Dickinson,Iowa,19059,1,0 +2020-04-03,Dickinson,Iowa,19059,1,0 +2020-04-04,Dickinson,Iowa,19059,1,0 +2020-04-05,Dickinson,Iowa,19059,1,0 +2020-04-06,Dickinson,Iowa,19059,1,0 +2020-04-07,Dickinson,Iowa,19059,1,0 +2020-04-08,Dickinson,Iowa,19059,1,0 +2020-04-09,Dickinson,Iowa,19059,1,0 +2020-04-10,Dickinson,Iowa,19059,1,0 +2020-04-11,Dickinson,Iowa,19059,1,0 +2020-04-12,Dickinson,Iowa,19059,1,0 +2020-04-13,Dickinson,Iowa,19059,1,0 +2020-04-14,Dickinson,Iowa,19059,1,0 +2020-04-15,Dickinson,Iowa,19059,1,0 +2020-04-16,Dickinson,Iowa,19059,1,0 +2020-04-17,Dickinson,Iowa,19059,1,0 +2020-04-18,Dickinson,Iowa,19059,1,0 +2020-04-19,Dickinson,Iowa,19059,1,0 +2020-04-20,Dickinson,Iowa,19059,1,0 +2020-04-21,Dickinson,Iowa,19059,2,0 +2020-04-22,Dickinson,Iowa,19059,3,0 +2020-04-23,Dickinson,Iowa,19059,3,0 +2020-04-24,Dickinson,Iowa,19059,4,0 +2020-04-25,Dickinson,Iowa,19059,5,0 +2020-04-26,Dickinson,Iowa,19059,5,0 +2020-04-27,Dickinson,Iowa,19059,5,0 +2020-04-28,Dickinson,Iowa,19059,6,0 +2020-04-29,Dickinson,Iowa,19059,6,0 +2020-04-30,Dickinson,Iowa,19059,6,0 +2020-05-01,Dickinson,Iowa,19059,6,0 +2020-05-02,Dickinson,Iowa,19059,6,0 +2020-05-03,Dickinson,Iowa,19059,6,0 +2020-05-04,Dickinson,Iowa,19059,6,0 +2020-05-05,Dickinson,Iowa,19059,6,0 +2020-05-06,Dickinson,Iowa,19059,6,0 +2020-05-07,Dickinson,Iowa,19059,6,0 +2020-05-08,Dickinson,Iowa,19059,6,0 +2020-05-09,Dickinson,Iowa,19059,6,0 +2020-05-10,Dickinson,Iowa,19059,6,0 +2020-05-11,Dickinson,Iowa,19059,6,0 +2020-05-12,Dickinson,Iowa,19059,6,0 +2020-05-13,Dickinson,Iowa,19059,6,0 +2020-05-14,Dickinson,Iowa,19059,6,0 +2020-05-15,Dickinson,Iowa,19059,6,0 +2020-05-16,Dickinson,Iowa,19059,6,0 +2020-05-17,Dickinson,Iowa,19059,6,0 +2020-05-18,Dickinson,Iowa,19059,6,0 +2020-05-19,Dickinson,Iowa,19059,7,0 +2020-05-20,Dickinson,Iowa,19059,8,0 +2020-05-21,Dickinson,Iowa,19059,8,0 +2020-05-22,Dickinson,Iowa,19059,8,0 +2020-05-23,Dickinson,Iowa,19059,8,0 +2020-05-24,Dickinson,Iowa,19059,8,0 +2020-05-25,Dickinson,Iowa,19059,9,0 +2020-05-26,Dickinson,Iowa,19059,9,0 +2020-05-27,Dickinson,Iowa,19059,16,0 +2020-05-28,Dickinson,Iowa,19059,18,0 +2020-05-29,Dickinson,Iowa,19059,19,0 +2020-05-30,Dickinson,Iowa,19059,20,0 +2020-05-31,Dickinson,Iowa,19059,21,0 +2020-06-01,Dickinson,Iowa,19059,23,0 +2020-06-02,Dickinson,Iowa,19059,25,0 +2020-06-03,Dickinson,Iowa,19059,27,0 +2020-06-04,Dickinson,Iowa,19059,34,0 +2020-06-05,Dickinson,Iowa,19059,38,0 +2020-06-06,Dickinson,Iowa,19059,41,0 +2020-06-07,Dickinson,Iowa,19059,52,0 +2020-06-08,Dickinson,Iowa,19059,61,0 +2020-06-09,Dickinson,Iowa,19059,66,0 +2020-06-10,Dickinson,Iowa,19059,90,0 +2020-06-11,Dickinson,Iowa,19059,110,0 +2020-06-12,Dickinson,Iowa,19059,122,0 +2020-06-13,Dickinson,Iowa,19059,131,0 +2020-06-14,Dickinson,Iowa,19059,133,0 +2020-06-15,Dickinson,Iowa,19059,153,0 +2020-06-16,Dickinson,Iowa,19059,166,1 +2020-06-17,Dickinson,Iowa,19059,174,1 +2020-06-18,Dickinson,Iowa,19059,184,1 +2020-06-19,Dickinson,Iowa,19059,192,1 +2020-06-20,Dickinson,Iowa,19059,195,2 +2020-06-21,Dickinson,Iowa,19059,201,2 +2020-06-22,Dickinson,Iowa,19059,207,2 +2020-06-23,Dickinson,Iowa,19059,212,2 +2020-06-24,Dickinson,Iowa,19059,222,2 +2020-06-25,Dickinson,Iowa,19059,232,2 +2020-06-26,Dickinson,Iowa,19059,235,2 +2020-06-27,Dickinson,Iowa,19059,236,2 +2020-06-28,Dickinson,Iowa,19059,237,2 +2020-06-29,Dickinson,Iowa,19059,240,2 +2020-06-30,Dickinson,Iowa,19059,241,2 +2020-07-01,Dickinson,Iowa,19059,250,2 +2020-07-02,Dickinson,Iowa,19059,259,2 +2020-07-03,Dickinson,Iowa,19059,261,2 +2020-07-04,Dickinson,Iowa,19059,267,2 +2020-07-05,Dickinson,Iowa,19059,267,2 +2020-07-06,Dickinson,Iowa,19059,266,3 +2020-07-07,Dickinson,Iowa,19059,266,3 +2020-07-08,Dickinson,Iowa,19059,283,3 +2020-07-09,Dickinson,Iowa,19059,286,3 +2020-03-19,Dubuque,Iowa,19061,1,0 +2020-03-20,Dubuque,Iowa,19061,1,0 +2020-03-21,Dubuque,Iowa,19061,2,0 +2020-03-22,Dubuque,Iowa,19061,4,0 +2020-03-23,Dubuque,Iowa,19061,6,0 +2020-03-24,Dubuque,Iowa,19061,6,1 +2020-03-25,Dubuque,Iowa,19061,6,1 +2020-03-26,Dubuque,Iowa,19061,6,1 +2020-03-27,Dubuque,Iowa,19061,8,1 +2020-03-28,Dubuque,Iowa,19061,12,1 +2020-03-29,Dubuque,Iowa,19061,16,1 +2020-03-30,Dubuque,Iowa,19061,21,1 +2020-03-31,Dubuque,Iowa,19061,21,1 +2020-04-01,Dubuque,Iowa,19061,22,1 +2020-04-02,Dubuque,Iowa,19061,22,1 +2020-04-03,Dubuque,Iowa,19061,23,1 +2020-04-04,Dubuque,Iowa,19061,24,1 +2020-04-05,Dubuque,Iowa,19061,24,1 +2020-04-06,Dubuque,Iowa,19061,25,1 +2020-04-07,Dubuque,Iowa,19061,28,1 +2020-04-08,Dubuque,Iowa,19061,28,1 +2020-04-09,Dubuque,Iowa,19061,31,1 +2020-04-10,Dubuque,Iowa,19061,32,1 +2020-04-11,Dubuque,Iowa,19061,32,1 +2020-04-12,Dubuque,Iowa,19061,35,1 +2020-04-13,Dubuque,Iowa,19061,35,1 +2020-04-14,Dubuque,Iowa,19061,35,1 +2020-04-15,Dubuque,Iowa,19061,37,1 +2020-04-16,Dubuque,Iowa,19061,39,1 +2020-04-17,Dubuque,Iowa,19061,40,1 +2020-04-18,Dubuque,Iowa,19061,43,1 +2020-04-19,Dubuque,Iowa,19061,44,1 +2020-04-20,Dubuque,Iowa,19061,46,1 +2020-04-21,Dubuque,Iowa,19061,48,1 +2020-04-22,Dubuque,Iowa,19061,49,1 +2020-04-23,Dubuque,Iowa,19061,52,1 +2020-04-24,Dubuque,Iowa,19061,62,1 +2020-04-25,Dubuque,Iowa,19061,70,1 +2020-04-26,Dubuque,Iowa,19061,80,1 +2020-04-27,Dubuque,Iowa,19061,87,2 +2020-04-28,Dubuque,Iowa,19061,88,2 +2020-04-29,Dubuque,Iowa,19061,97,3 +2020-04-30,Dubuque,Iowa,19061,102,4 +2020-05-01,Dubuque,Iowa,19061,109,4 +2020-05-02,Dubuque,Iowa,19061,125,4 +2020-05-03,Dubuque,Iowa,19061,136,5 +2020-05-04,Dubuque,Iowa,19061,152,5 +2020-05-05,Dubuque,Iowa,19061,156,5 +2020-05-06,Dubuque,Iowa,19061,162,5 +2020-05-07,Dubuque,Iowa,19061,175,5 +2020-05-08,Dubuque,Iowa,19061,181,6 +2020-05-09,Dubuque,Iowa,19061,188,6 +2020-05-10,Dubuque,Iowa,19061,191,7 +2020-05-11,Dubuque,Iowa,19061,197,7 +2020-05-12,Dubuque,Iowa,19061,203,7 +2020-05-13,Dubuque,Iowa,19061,235,9 +2020-05-14,Dubuque,Iowa,19061,238,10 +2020-05-15,Dubuque,Iowa,19061,249,10 +2020-05-16,Dubuque,Iowa,19061,258,10 +2020-05-17,Dubuque,Iowa,19061,264,10 +2020-05-18,Dubuque,Iowa,19061,276,10 +2020-05-19,Dubuque,Iowa,19061,286,10 +2020-05-20,Dubuque,Iowa,19061,297,13 +2020-05-21,Dubuque,Iowa,19061,300,14 +2020-05-22,Dubuque,Iowa,19061,307,16 +2020-05-23,Dubuque,Iowa,19061,307,16 +2020-05-24,Dubuque,Iowa,19061,321,16 +2020-05-25,Dubuque,Iowa,19061,324,16 +2020-05-26,Dubuque,Iowa,19061,325,16 +2020-05-27,Dubuque,Iowa,19061,331,16 +2020-05-28,Dubuque,Iowa,19061,338,18 +2020-05-29,Dubuque,Iowa,19061,344,18 +2020-05-30,Dubuque,Iowa,19061,343,18 +2020-05-31,Dubuque,Iowa,19061,344,18 +2020-06-01,Dubuque,Iowa,19061,347,19 +2020-06-02,Dubuque,Iowa,19061,350,21 +2020-06-03,Dubuque,Iowa,19061,352,21 +2020-06-04,Dubuque,Iowa,19061,356,21 +2020-06-05,Dubuque,Iowa,19061,360,21 +2020-06-06,Dubuque,Iowa,19061,362,21 +2020-06-07,Dubuque,Iowa,19061,364,21 +2020-06-08,Dubuque,Iowa,19061,370,21 +2020-06-09,Dubuque,Iowa,19061,372,21 +2020-06-10,Dubuque,Iowa,19061,371,21 +2020-06-11,Dubuque,Iowa,19061,378,21 +2020-06-12,Dubuque,Iowa,19061,383,21 +2020-06-13,Dubuque,Iowa,19061,384,21 +2020-06-14,Dubuque,Iowa,19061,384,21 +2020-06-15,Dubuque,Iowa,19061,388,22 +2020-06-16,Dubuque,Iowa,19061,391,22 +2020-06-17,Dubuque,Iowa,19061,395,22 +2020-06-18,Dubuque,Iowa,19061,398,22 +2020-06-19,Dubuque,Iowa,19061,412,22 +2020-06-20,Dubuque,Iowa,19061,411,22 +2020-06-21,Dubuque,Iowa,19061,417,22 +2020-06-22,Dubuque,Iowa,19061,424,22 +2020-06-23,Dubuque,Iowa,19061,454,22 +2020-06-24,Dubuque,Iowa,19061,469,22 +2020-06-25,Dubuque,Iowa,19061,483,22 +2020-06-26,Dubuque,Iowa,19061,491,22 +2020-06-27,Dubuque,Iowa,19061,497,22 +2020-06-28,Dubuque,Iowa,19061,500,22 +2020-06-29,Dubuque,Iowa,19061,501,22 +2020-06-30,Dubuque,Iowa,19061,523,22 +2020-07-01,Dubuque,Iowa,19061,546,22 +2020-07-02,Dubuque,Iowa,19061,609,22 +2020-07-03,Dubuque,Iowa,19061,627,22 +2020-07-04,Dubuque,Iowa,19061,685,22 +2020-07-05,Dubuque,Iowa,19061,700,22 +2020-07-06,Dubuque,Iowa,19061,702,22 +2020-07-07,Dubuque,Iowa,19061,742,22 +2020-07-08,Dubuque,Iowa,19061,773,22 +2020-07-09,Dubuque,Iowa,19061,835,22 +2020-05-13,Emmet,Iowa,19063,1,0 +2020-05-14,Emmet,Iowa,19063,1,0 +2020-05-15,Emmet,Iowa,19063,1,0 +2020-05-16,Emmet,Iowa,19063,1,0 +2020-05-17,Emmet,Iowa,19063,1,0 +2020-05-18,Emmet,Iowa,19063,1,0 +2020-05-19,Emmet,Iowa,19063,2,0 +2020-05-20,Emmet,Iowa,19063,6,0 +2020-05-21,Emmet,Iowa,19063,6,0 +2020-05-22,Emmet,Iowa,19063,7,0 +2020-05-23,Emmet,Iowa,19063,7,0 +2020-05-24,Emmet,Iowa,19063,7,0 +2020-05-25,Emmet,Iowa,19063,7,0 +2020-05-26,Emmet,Iowa,19063,7,0 +2020-05-27,Emmet,Iowa,19063,12,0 +2020-05-28,Emmet,Iowa,19063,13,0 +2020-05-29,Emmet,Iowa,19063,14,0 +2020-05-30,Emmet,Iowa,19063,14,0 +2020-05-31,Emmet,Iowa,19063,15,0 +2020-06-01,Emmet,Iowa,19063,17,0 +2020-06-02,Emmet,Iowa,19063,18,0 +2020-06-03,Emmet,Iowa,19063,19,0 +2020-06-04,Emmet,Iowa,19063,26,0 +2020-06-05,Emmet,Iowa,19063,27,0 +2020-06-06,Emmet,Iowa,19063,28,0 +2020-06-07,Emmet,Iowa,19063,31,0 +2020-06-08,Emmet,Iowa,19063,34,0 +2020-06-09,Emmet,Iowa,19063,34,0 +2020-06-10,Emmet,Iowa,19063,34,0 +2020-06-11,Emmet,Iowa,19063,35,0 +2020-06-12,Emmet,Iowa,19063,38,0 +2020-06-13,Emmet,Iowa,19063,38,0 +2020-06-14,Emmet,Iowa,19063,39,0 +2020-06-15,Emmet,Iowa,19063,41,0 +2020-06-16,Emmet,Iowa,19063,43,0 +2020-06-17,Emmet,Iowa,19063,45,0 +2020-06-18,Emmet,Iowa,19063,46,0 +2020-06-19,Emmet,Iowa,19063,48,0 +2020-06-20,Emmet,Iowa,19063,51,0 +2020-06-21,Emmet,Iowa,19063,58,0 +2020-06-22,Emmet,Iowa,19063,59,0 +2020-06-23,Emmet,Iowa,19063,63,0 +2020-06-24,Emmet,Iowa,19063,65,0 +2020-06-25,Emmet,Iowa,19063,66,0 +2020-06-26,Emmet,Iowa,19063,71,0 +2020-06-27,Emmet,Iowa,19063,75,0 +2020-06-28,Emmet,Iowa,19063,75,0 +2020-06-29,Emmet,Iowa,19063,75,0 +2020-06-30,Emmet,Iowa,19063,75,0 +2020-07-01,Emmet,Iowa,19063,75,0 +2020-07-02,Emmet,Iowa,19063,78,0 +2020-07-03,Emmet,Iowa,19063,80,0 +2020-07-04,Emmet,Iowa,19063,86,0 +2020-07-05,Emmet,Iowa,19063,87,0 +2020-07-06,Emmet,Iowa,19063,88,0 +2020-07-07,Emmet,Iowa,19063,87,0 +2020-07-08,Emmet,Iowa,19063,91,0 +2020-07-09,Emmet,Iowa,19063,92,0 +2020-03-21,Fayette,Iowa,19065,1,0 +2020-03-22,Fayette,Iowa,19065,1,0 +2020-03-23,Fayette,Iowa,19065,1,0 +2020-03-24,Fayette,Iowa,19065,1,0 +2020-03-25,Fayette,Iowa,19065,1,0 +2020-03-26,Fayette,Iowa,19065,1,0 +2020-03-27,Fayette,Iowa,19065,1,0 +2020-03-28,Fayette,Iowa,19065,2,0 +2020-03-29,Fayette,Iowa,19065,2,0 +2020-03-30,Fayette,Iowa,19065,2,0 +2020-03-31,Fayette,Iowa,19065,2,0 +2020-04-01,Fayette,Iowa,19065,2,0 +2020-04-02,Fayette,Iowa,19065,2,0 +2020-04-03,Fayette,Iowa,19065,3,0 +2020-04-04,Fayette,Iowa,19065,3,0 +2020-04-05,Fayette,Iowa,19065,3,0 +2020-04-06,Fayette,Iowa,19065,3,0 +2020-04-07,Fayette,Iowa,19065,3,0 +2020-04-08,Fayette,Iowa,19065,3,0 +2020-04-09,Fayette,Iowa,19065,3,0 +2020-04-10,Fayette,Iowa,19065,4,0 +2020-04-11,Fayette,Iowa,19065,4,0 +2020-04-12,Fayette,Iowa,19065,4,0 +2020-04-13,Fayette,Iowa,19065,5,0 +2020-04-14,Fayette,Iowa,19065,5,0 +2020-04-15,Fayette,Iowa,19065,5,0 +2020-04-16,Fayette,Iowa,19065,5,0 +2020-04-17,Fayette,Iowa,19065,6,0 +2020-04-18,Fayette,Iowa,19065,6,0 +2020-04-19,Fayette,Iowa,19065,6,0 +2020-04-20,Fayette,Iowa,19065,6,0 +2020-04-21,Fayette,Iowa,19065,7,0 +2020-04-22,Fayette,Iowa,19065,7,0 +2020-04-23,Fayette,Iowa,19065,7,0 +2020-04-24,Fayette,Iowa,19065,10,0 +2020-04-25,Fayette,Iowa,19065,12,0 +2020-04-26,Fayette,Iowa,19065,15,0 +2020-04-27,Fayette,Iowa,19065,16,0 +2020-04-28,Fayette,Iowa,19065,17,0 +2020-04-29,Fayette,Iowa,19065,20,0 +2020-04-30,Fayette,Iowa,19065,20,0 +2020-05-01,Fayette,Iowa,19065,21,0 +2020-05-02,Fayette,Iowa,19065,22,0 +2020-05-03,Fayette,Iowa,19065,22,0 +2020-05-04,Fayette,Iowa,19065,23,0 +2020-05-05,Fayette,Iowa,19065,23,0 +2020-05-06,Fayette,Iowa,19065,24,0 +2020-05-07,Fayette,Iowa,19065,24,0 +2020-05-08,Fayette,Iowa,19065,24,0 +2020-05-09,Fayette,Iowa,19065,24,0 +2020-05-10,Fayette,Iowa,19065,24,0 +2020-05-11,Fayette,Iowa,19065,24,0 +2020-05-12,Fayette,Iowa,19065,24,0 +2020-05-13,Fayette,Iowa,19065,24,0 +2020-05-14,Fayette,Iowa,19065,24,0 +2020-05-15,Fayette,Iowa,19065,25,0 +2020-05-16,Fayette,Iowa,19065,25,0 +2020-05-17,Fayette,Iowa,19065,25,0 +2020-05-18,Fayette,Iowa,19065,25,0 +2020-05-19,Fayette,Iowa,19065,25,0 +2020-05-20,Fayette,Iowa,19065,25,0 +2020-05-21,Fayette,Iowa,19065,25,0 +2020-05-22,Fayette,Iowa,19065,26,0 +2020-05-23,Fayette,Iowa,19065,26,0 +2020-05-24,Fayette,Iowa,19065,26,0 +2020-05-25,Fayette,Iowa,19065,26,0 +2020-05-26,Fayette,Iowa,19065,26,0 +2020-05-27,Fayette,Iowa,19065,26,0 +2020-05-28,Fayette,Iowa,19065,26,0 +2020-05-29,Fayette,Iowa,19065,26,0 +2020-05-30,Fayette,Iowa,19065,27,0 +2020-05-31,Fayette,Iowa,19065,27,0 +2020-06-01,Fayette,Iowa,19065,27,0 +2020-06-02,Fayette,Iowa,19065,27,0 +2020-06-03,Fayette,Iowa,19065,28,0 +2020-06-04,Fayette,Iowa,19065,28,0 +2020-06-05,Fayette,Iowa,19065,27,0 +2020-06-06,Fayette,Iowa,19065,27,0 +2020-06-07,Fayette,Iowa,19065,28,0 +2020-06-08,Fayette,Iowa,19065,28,0 +2020-06-09,Fayette,Iowa,19065,28,0 +2020-06-10,Fayette,Iowa,19065,28,0 +2020-06-11,Fayette,Iowa,19065,28,0 +2020-06-12,Fayette,Iowa,19065,28,0 +2020-06-13,Fayette,Iowa,19065,28,0 +2020-06-14,Fayette,Iowa,19065,28,0 +2020-06-15,Fayette,Iowa,19065,28,0 +2020-06-16,Fayette,Iowa,19065,28,0 +2020-06-17,Fayette,Iowa,19065,28,0 +2020-06-18,Fayette,Iowa,19065,28,0 +2020-06-19,Fayette,Iowa,19065,28,0 +2020-06-20,Fayette,Iowa,19065,28,0 +2020-06-21,Fayette,Iowa,19065,29,0 +2020-06-22,Fayette,Iowa,19065,29,0 +2020-06-23,Fayette,Iowa,19065,30,0 +2020-06-24,Fayette,Iowa,19065,30,0 +2020-06-25,Fayette,Iowa,19065,30,0 +2020-06-26,Fayette,Iowa,19065,30,0 +2020-06-27,Fayette,Iowa,19065,31,0 +2020-06-28,Fayette,Iowa,19065,31,0 +2020-06-29,Fayette,Iowa,19065,32,0 +2020-06-30,Fayette,Iowa,19065,33,0 +2020-07-01,Fayette,Iowa,19065,33,0 +2020-07-02,Fayette,Iowa,19065,34,0 +2020-07-03,Fayette,Iowa,19065,45,0 +2020-07-04,Fayette,Iowa,19065,48,0 +2020-07-05,Fayette,Iowa,19065,50,0 +2020-07-06,Fayette,Iowa,19065,51,0 +2020-07-07,Fayette,Iowa,19065,50,0 +2020-07-08,Fayette,Iowa,19065,52,0 +2020-07-09,Fayette,Iowa,19065,54,0 +2020-05-01,Floyd,Iowa,19067,1,0 +2020-05-02,Floyd,Iowa,19067,1,0 +2020-05-03,Floyd,Iowa,19067,1,0 +2020-05-04,Floyd,Iowa,19067,1,0 +2020-05-05,Floyd,Iowa,19067,1,0 +2020-05-06,Floyd,Iowa,19067,2,0 +2020-05-07,Floyd,Iowa,19067,2,0 +2020-05-08,Floyd,Iowa,19067,2,0 +2020-05-09,Floyd,Iowa,19067,3,0 +2020-05-10,Floyd,Iowa,19067,4,1 +2020-05-11,Floyd,Iowa,19067,5,1 +2020-05-12,Floyd,Iowa,19067,6,1 +2020-05-13,Floyd,Iowa,19067,9,1 +2020-05-14,Floyd,Iowa,19067,9,1 +2020-05-15,Floyd,Iowa,19067,10,1 +2020-05-16,Floyd,Iowa,19067,11,1 +2020-05-17,Floyd,Iowa,19067,11,1 +2020-05-18,Floyd,Iowa,19067,11,1 +2020-05-19,Floyd,Iowa,19067,11,1 +2020-05-20,Floyd,Iowa,19067,11,1 +2020-05-21,Floyd,Iowa,19067,15,1 +2020-05-22,Floyd,Iowa,19067,15,1 +2020-05-23,Floyd,Iowa,19067,15,1 +2020-05-24,Floyd,Iowa,19067,18,1 +2020-05-25,Floyd,Iowa,19067,18,1 +2020-05-26,Floyd,Iowa,19067,18,1 +2020-05-27,Floyd,Iowa,19067,18,1 +2020-05-28,Floyd,Iowa,19067,18,1 +2020-05-29,Floyd,Iowa,19067,19,1 +2020-05-30,Floyd,Iowa,19067,19,1 +2020-05-31,Floyd,Iowa,19067,19,1 +2020-06-01,Floyd,Iowa,19067,19,1 +2020-06-02,Floyd,Iowa,19067,19,1 +2020-06-03,Floyd,Iowa,19067,19,1 +2020-06-04,Floyd,Iowa,19067,19,1 +2020-06-05,Floyd,Iowa,19067,19,1 +2020-06-06,Floyd,Iowa,19067,19,1 +2020-06-07,Floyd,Iowa,19067,19,1 +2020-06-08,Floyd,Iowa,19067,19,1 +2020-06-09,Floyd,Iowa,19067,19,1 +2020-06-10,Floyd,Iowa,19067,19,1 +2020-06-11,Floyd,Iowa,19067,20,1 +2020-06-12,Floyd,Iowa,19067,20,1 +2020-06-13,Floyd,Iowa,19067,20,1 +2020-06-14,Floyd,Iowa,19067,20,1 +2020-06-15,Floyd,Iowa,19067,20,1 +2020-06-16,Floyd,Iowa,19067,21,1 +2020-06-17,Floyd,Iowa,19067,22,1 +2020-06-18,Floyd,Iowa,19067,26,1 +2020-06-19,Floyd,Iowa,19067,30,1 +2020-06-20,Floyd,Iowa,19067,32,1 +2020-06-21,Floyd,Iowa,19067,33,1 +2020-06-22,Floyd,Iowa,19067,37,1 +2020-06-23,Floyd,Iowa,19067,46,1 +2020-06-24,Floyd,Iowa,19067,50,1 +2020-06-25,Floyd,Iowa,19067,54,2 +2020-06-26,Floyd,Iowa,19067,61,2 +2020-06-27,Floyd,Iowa,19067,61,2 +2020-06-28,Floyd,Iowa,19067,64,2 +2020-06-29,Floyd,Iowa,19067,65,2 +2020-06-30,Floyd,Iowa,19067,65,2 +2020-07-01,Floyd,Iowa,19067,66,2 +2020-07-02,Floyd,Iowa,19067,68,2 +2020-07-03,Floyd,Iowa,19067,72,2 +2020-07-04,Floyd,Iowa,19067,72,2 +2020-07-05,Floyd,Iowa,19067,75,2 +2020-07-06,Floyd,Iowa,19067,73,2 +2020-07-07,Floyd,Iowa,19067,73,2 +2020-07-08,Floyd,Iowa,19067,75,2 +2020-07-09,Floyd,Iowa,19067,75,2 +2020-04-06,Franklin,Iowa,19069,1,0 +2020-04-07,Franklin,Iowa,19069,1,0 +2020-04-08,Franklin,Iowa,19069,1,0 +2020-04-09,Franklin,Iowa,19069,1,0 +2020-04-10,Franklin,Iowa,19069,1,0 +2020-04-11,Franklin,Iowa,19069,1,0 +2020-04-12,Franklin,Iowa,19069,1,0 +2020-04-13,Franklin,Iowa,19069,1,0 +2020-04-14,Franklin,Iowa,19069,1,0 +2020-04-15,Franklin,Iowa,19069,1,0 +2020-04-16,Franklin,Iowa,19069,1,0 +2020-04-17,Franklin,Iowa,19069,1,0 +2020-04-18,Franklin,Iowa,19069,1,0 +2020-04-19,Franklin,Iowa,19069,1,0 +2020-04-20,Franklin,Iowa,19069,1,0 +2020-04-21,Franklin,Iowa,19069,1,0 +2020-04-22,Franklin,Iowa,19069,1,0 +2020-04-23,Franklin,Iowa,19069,1,0 +2020-04-24,Franklin,Iowa,19069,1,0 +2020-04-25,Franklin,Iowa,19069,2,0 +2020-04-26,Franklin,Iowa,19069,2,0 +2020-04-27,Franklin,Iowa,19069,2,0 +2020-04-28,Franklin,Iowa,19069,2,0 +2020-04-29,Franklin,Iowa,19069,2,0 +2020-04-30,Franklin,Iowa,19069,2,0 +2020-05-01,Franklin,Iowa,19069,3,0 +2020-05-02,Franklin,Iowa,19069,3,0 +2020-05-03,Franklin,Iowa,19069,3,0 +2020-05-04,Franklin,Iowa,19069,3,0 +2020-05-05,Franklin,Iowa,19069,5,0 +2020-05-06,Franklin,Iowa,19069,6,0 +2020-05-07,Franklin,Iowa,19069,7,0 +2020-05-08,Franklin,Iowa,19069,7,0 +2020-05-09,Franklin,Iowa,19069,6,0 +2020-05-10,Franklin,Iowa,19069,6,0 +2020-05-11,Franklin,Iowa,19069,6,0 +2020-05-12,Franklin,Iowa,19069,7,0 +2020-05-13,Franklin,Iowa,19069,7,0 +2020-05-14,Franklin,Iowa,19069,7,0 +2020-05-15,Franklin,Iowa,19069,7,0 +2020-05-16,Franklin,Iowa,19069,7,0 +2020-05-17,Franklin,Iowa,19069,7,0 +2020-05-18,Franklin,Iowa,19069,7,0 +2020-05-19,Franklin,Iowa,19069,7,0 +2020-05-20,Franklin,Iowa,19069,7,0 +2020-05-21,Franklin,Iowa,19069,7,0 +2020-05-22,Franklin,Iowa,19069,7,0 +2020-05-23,Franklin,Iowa,19069,7,0 +2020-05-24,Franklin,Iowa,19069,8,0 +2020-05-25,Franklin,Iowa,19069,8,0 +2020-05-26,Franklin,Iowa,19069,8,0 +2020-05-27,Franklin,Iowa,19069,10,0 +2020-05-28,Franklin,Iowa,19069,11,0 +2020-05-29,Franklin,Iowa,19069,11,0 +2020-05-30,Franklin,Iowa,19069,13,0 +2020-05-31,Franklin,Iowa,19069,13,0 +2020-06-01,Franklin,Iowa,19069,14,0 +2020-06-02,Franklin,Iowa,19069,13,0 +2020-06-03,Franklin,Iowa,19069,15,0 +2020-06-04,Franklin,Iowa,19069,18,0 +2020-06-05,Franklin,Iowa,19069,21,0 +2020-06-06,Franklin,Iowa,19069,25,0 +2020-06-07,Franklin,Iowa,19069,30,0 +2020-06-08,Franklin,Iowa,19069,34,0 +2020-06-09,Franklin,Iowa,19069,37,0 +2020-06-10,Franklin,Iowa,19069,38,0 +2020-06-11,Franklin,Iowa,19069,43,0 +2020-06-12,Franklin,Iowa,19069,42,0 +2020-06-13,Franklin,Iowa,19069,44,0 +2020-06-14,Franklin,Iowa,19069,46,0 +2020-06-15,Franklin,Iowa,19069,49,0 +2020-06-16,Franklin,Iowa,19069,50,0 +2020-06-17,Franklin,Iowa,19069,51,0 +2020-06-18,Franklin,Iowa,19069,56,0 +2020-06-19,Franklin,Iowa,19069,61,0 +2020-06-20,Franklin,Iowa,19069,60,0 +2020-06-21,Franklin,Iowa,19069,63,0 +2020-06-22,Franklin,Iowa,19069,67,0 +2020-06-23,Franklin,Iowa,19069,66,0 +2020-06-24,Franklin,Iowa,19069,67,0 +2020-06-25,Franklin,Iowa,19069,68,0 +2020-06-26,Franklin,Iowa,19069,71,0 +2020-06-27,Franklin,Iowa,19069,71,0 +2020-06-28,Franklin,Iowa,19069,74,0 +2020-06-29,Franklin,Iowa,19069,74,0 +2020-06-30,Franklin,Iowa,19069,75,0 +2020-07-01,Franklin,Iowa,19069,78,0 +2020-07-02,Franklin,Iowa,19069,84,0 +2020-07-03,Franklin,Iowa,19069,85,0 +2020-07-04,Franklin,Iowa,19069,90,0 +2020-07-05,Franklin,Iowa,19069,90,0 +2020-07-06,Franklin,Iowa,19069,90,0 +2020-07-07,Franklin,Iowa,19069,95,0 +2020-07-08,Franklin,Iowa,19069,98,0 +2020-07-09,Franklin,Iowa,19069,99,0 +2020-05-08,Fremont,Iowa,19071,1,0 +2020-05-09,Fremont,Iowa,19071,1,0 +2020-05-10,Fremont,Iowa,19071,1,0 +2020-05-11,Fremont,Iowa,19071,1,0 +2020-05-12,Fremont,Iowa,19071,3,0 +2020-05-13,Fremont,Iowa,19071,3,0 +2020-05-14,Fremont,Iowa,19071,3,0 +2020-05-15,Fremont,Iowa,19071,3,0 +2020-05-16,Fremont,Iowa,19071,3,0 +2020-05-17,Fremont,Iowa,19071,3,0 +2020-05-18,Fremont,Iowa,19071,3,0 +2020-05-19,Fremont,Iowa,19071,4,0 +2020-05-20,Fremont,Iowa,19071,4,0 +2020-05-21,Fremont,Iowa,19071,4,0 +2020-05-22,Fremont,Iowa,19071,4,0 +2020-05-23,Fremont,Iowa,19071,4,0 +2020-05-24,Fremont,Iowa,19071,4,0 +2020-05-25,Fremont,Iowa,19071,4,0 +2020-05-26,Fremont,Iowa,19071,4,0 +2020-05-27,Fremont,Iowa,19071,4,0 +2020-05-28,Fremont,Iowa,19071,4,0 +2020-05-29,Fremont,Iowa,19071,4,0 +2020-05-30,Fremont,Iowa,19071,4,0 +2020-05-31,Fremont,Iowa,19071,4,0 +2020-06-01,Fremont,Iowa,19071,4,0 +2020-06-02,Fremont,Iowa,19071,4,0 +2020-06-03,Fremont,Iowa,19071,4,0 +2020-06-04,Fremont,Iowa,19071,4,0 +2020-06-05,Fremont,Iowa,19071,4,0 +2020-06-06,Fremont,Iowa,19071,4,0 +2020-06-07,Fremont,Iowa,19071,4,0 +2020-06-08,Fremont,Iowa,19071,4,0 +2020-06-09,Fremont,Iowa,19071,4,0 +2020-06-10,Fremont,Iowa,19071,4,0 +2020-06-11,Fremont,Iowa,19071,4,0 +2020-06-12,Fremont,Iowa,19071,4,0 +2020-06-13,Fremont,Iowa,19071,4,0 +2020-06-14,Fremont,Iowa,19071,4,0 +2020-06-15,Fremont,Iowa,19071,4,0 +2020-06-16,Fremont,Iowa,19071,4,0 +2020-06-17,Fremont,Iowa,19071,4,0 +2020-06-18,Fremont,Iowa,19071,4,0 +2020-06-19,Fremont,Iowa,19071,5,0 +2020-06-20,Fremont,Iowa,19071,4,0 +2020-06-21,Fremont,Iowa,19071,4,0 +2020-06-22,Fremont,Iowa,19071,4,0 +2020-06-23,Fremont,Iowa,19071,4,0 +2020-06-24,Fremont,Iowa,19071,5,0 +2020-06-25,Fremont,Iowa,19071,6,0 +2020-06-26,Fremont,Iowa,19071,6,0 +2020-06-27,Fremont,Iowa,19071,6,0 +2020-06-28,Fremont,Iowa,19071,7,0 +2020-06-29,Fremont,Iowa,19071,7,0 +2020-06-30,Fremont,Iowa,19071,7,0 +2020-07-01,Fremont,Iowa,19071,7,0 +2020-07-02,Fremont,Iowa,19071,7,0 +2020-07-03,Fremont,Iowa,19071,7,0 +2020-07-04,Fremont,Iowa,19071,7,0 +2020-07-05,Fremont,Iowa,19071,7,0 +2020-07-06,Fremont,Iowa,19071,7,0 +2020-07-07,Fremont,Iowa,19071,8,0 +2020-07-08,Fremont,Iowa,19071,8,0 +2020-07-09,Fremont,Iowa,19071,8,0 +2020-04-07,Greene,Iowa,19073,1,0 +2020-04-08,Greene,Iowa,19073,1,0 +2020-04-09,Greene,Iowa,19073,1,0 +2020-04-10,Greene,Iowa,19073,1,0 +2020-04-11,Greene,Iowa,19073,1,0 +2020-04-12,Greene,Iowa,19073,1,0 +2020-04-13,Greene,Iowa,19073,1,0 +2020-04-14,Greene,Iowa,19073,1,0 +2020-04-15,Greene,Iowa,19073,1,0 +2020-04-16,Greene,Iowa,19073,1,0 +2020-04-17,Greene,Iowa,19073,1,0 +2020-04-18,Greene,Iowa,19073,1,0 +2020-04-19,Greene,Iowa,19073,1,0 +2020-04-20,Greene,Iowa,19073,1,0 +2020-04-21,Greene,Iowa,19073,1,0 +2020-04-22,Greene,Iowa,19073,1,0 +2020-04-23,Greene,Iowa,19073,1,0 +2020-04-24,Greene,Iowa,19073,1,0 +2020-04-25,Greene,Iowa,19073,1,0 +2020-04-26,Greene,Iowa,19073,1,0 +2020-04-27,Greene,Iowa,19073,2,0 +2020-04-28,Greene,Iowa,19073,2,0 +2020-04-29,Greene,Iowa,19073,2,0 +2020-04-30,Greene,Iowa,19073,5,0 +2020-05-01,Greene,Iowa,19073,7,0 +2020-05-02,Greene,Iowa,19073,10,0 +2020-05-03,Greene,Iowa,19073,11,0 +2020-05-04,Greene,Iowa,19073,11,0 +2020-05-05,Greene,Iowa,19073,11,0 +2020-05-06,Greene,Iowa,19073,11,0 +2020-05-07,Greene,Iowa,19073,13,0 +2020-05-08,Greene,Iowa,19073,13,0 +2020-05-09,Greene,Iowa,19073,13,0 +2020-05-10,Greene,Iowa,19073,13,0 +2020-05-11,Greene,Iowa,19073,13,0 +2020-05-12,Greene,Iowa,19073,13,0 +2020-05-13,Greene,Iowa,19073,13,0 +2020-05-14,Greene,Iowa,19073,14,0 +2020-05-15,Greene,Iowa,19073,13,0 +2020-05-16,Greene,Iowa,19073,13,0 +2020-05-17,Greene,Iowa,19073,13,0 +2020-05-18,Greene,Iowa,19073,13,0 +2020-05-19,Greene,Iowa,19073,13,0 +2020-05-20,Greene,Iowa,19073,13,0 +2020-05-21,Greene,Iowa,19073,13,0 +2020-05-22,Greene,Iowa,19073,13,0 +2020-05-23,Greene,Iowa,19073,13,0 +2020-05-24,Greene,Iowa,19073,13,0 +2020-05-25,Greene,Iowa,19073,13,0 +2020-05-26,Greene,Iowa,19073,13,0 +2020-05-27,Greene,Iowa,19073,13,0 +2020-05-28,Greene,Iowa,19073,13,0 +2020-05-29,Greene,Iowa,19073,13,0 +2020-05-30,Greene,Iowa,19073,13,0 +2020-05-31,Greene,Iowa,19073,13,0 +2020-06-01,Greene,Iowa,19073,13,0 +2020-06-02,Greene,Iowa,19073,13,0 +2020-06-03,Greene,Iowa,19073,13,0 +2020-06-04,Greene,Iowa,19073,15,0 +2020-06-05,Greene,Iowa,19073,15,0 +2020-06-06,Greene,Iowa,19073,14,0 +2020-06-07,Greene,Iowa,19073,14,0 +2020-06-08,Greene,Iowa,19073,14,0 +2020-06-09,Greene,Iowa,19073,14,0 +2020-06-10,Greene,Iowa,19073,16,0 +2020-06-11,Greene,Iowa,19073,16,0 +2020-06-12,Greene,Iowa,19073,20,0 +2020-06-13,Greene,Iowa,19073,21,0 +2020-06-14,Greene,Iowa,19073,21,0 +2020-06-15,Greene,Iowa,19073,21,0 +2020-06-16,Greene,Iowa,19073,21,0 +2020-06-17,Greene,Iowa,19073,25,0 +2020-06-18,Greene,Iowa,19073,26,0 +2020-06-19,Greene,Iowa,19073,27,0 +2020-06-20,Greene,Iowa,19073,27,0 +2020-06-21,Greene,Iowa,19073,28,0 +2020-06-22,Greene,Iowa,19073,28,0 +2020-06-23,Greene,Iowa,19073,28,0 +2020-06-24,Greene,Iowa,19073,28,0 +2020-06-25,Greene,Iowa,19073,28,0 +2020-06-26,Greene,Iowa,19073,28,0 +2020-06-27,Greene,Iowa,19073,28,0 +2020-06-28,Greene,Iowa,19073,28,0 +2020-06-29,Greene,Iowa,19073,28,0 +2020-06-30,Greene,Iowa,19073,28,0 +2020-07-01,Greene,Iowa,19073,28,0 +2020-07-02,Greene,Iowa,19073,28,0 +2020-07-03,Greene,Iowa,19073,29,0 +2020-07-04,Greene,Iowa,19073,29,0 +2020-07-05,Greene,Iowa,19073,29,0 +2020-07-06,Greene,Iowa,19073,30,0 +2020-07-07,Greene,Iowa,19073,29,0 +2020-07-08,Greene,Iowa,19073,29,0 +2020-07-09,Greene,Iowa,19073,29,0 +2020-04-04,Grundy,Iowa,19075,1,0 +2020-04-05,Grundy,Iowa,19075,1,0 +2020-04-06,Grundy,Iowa,19075,1,0 +2020-04-07,Grundy,Iowa,19075,1,0 +2020-04-08,Grundy,Iowa,19075,1,0 +2020-04-09,Grundy,Iowa,19075,1,0 +2020-04-10,Grundy,Iowa,19075,1,0 +2020-04-11,Grundy,Iowa,19075,1,0 +2020-04-12,Grundy,Iowa,19075,1,0 +2020-04-13,Grundy,Iowa,19075,1,0 +2020-04-14,Grundy,Iowa,19075,1,0 +2020-04-15,Grundy,Iowa,19075,1,0 +2020-04-16,Grundy,Iowa,19075,1,0 +2020-04-17,Grundy,Iowa,19075,2,0 +2020-04-18,Grundy,Iowa,19075,2,0 +2020-04-19,Grundy,Iowa,19075,4,0 +2020-04-20,Grundy,Iowa,19075,5,0 +2020-04-21,Grundy,Iowa,19075,6,0 +2020-04-22,Grundy,Iowa,19075,6,0 +2020-04-23,Grundy,Iowa,19075,6,0 +2020-04-24,Grundy,Iowa,19075,7,0 +2020-04-25,Grundy,Iowa,19075,8,0 +2020-04-26,Grundy,Iowa,19075,8,0 +2020-04-27,Grundy,Iowa,19075,9,0 +2020-04-28,Grundy,Iowa,19075,11,0 +2020-04-29,Grundy,Iowa,19075,11,0 +2020-04-30,Grundy,Iowa,19075,11,0 +2020-05-01,Grundy,Iowa,19075,11,0 +2020-05-02,Grundy,Iowa,19075,15,0 +2020-05-03,Grundy,Iowa,19075,15,0 +2020-05-04,Grundy,Iowa,19075,16,0 +2020-05-05,Grundy,Iowa,19075,17,0 +2020-05-06,Grundy,Iowa,19075,17,0 +2020-05-07,Grundy,Iowa,19075,16,0 +2020-05-08,Grundy,Iowa,19075,17,0 +2020-05-09,Grundy,Iowa,19075,15,0 +2020-05-10,Grundy,Iowa,19075,15,0 +2020-05-11,Grundy,Iowa,19075,15,0 +2020-05-12,Grundy,Iowa,19075,16,0 +2020-05-13,Grundy,Iowa,19075,16,0 +2020-05-14,Grundy,Iowa,19075,18,0 +2020-05-15,Grundy,Iowa,19075,17,0 +2020-05-16,Grundy,Iowa,19075,17,0 +2020-05-17,Grundy,Iowa,19075,17,0 +2020-05-18,Grundy,Iowa,19075,17,0 +2020-05-19,Grundy,Iowa,19075,17,0 +2020-05-20,Grundy,Iowa,19075,19,0 +2020-05-21,Grundy,Iowa,19075,19,0 +2020-05-22,Grundy,Iowa,19075,20,0 +2020-05-23,Grundy,Iowa,19075,20,0 +2020-05-24,Grundy,Iowa,19075,19,0 +2020-05-25,Grundy,Iowa,19075,19,0 +2020-05-26,Grundy,Iowa,19075,19,0 +2020-05-27,Grundy,Iowa,19075,19,0 +2020-05-28,Grundy,Iowa,19075,19,0 +2020-05-29,Grundy,Iowa,19075,20,0 +2020-05-30,Grundy,Iowa,19075,20,0 +2020-05-31,Grundy,Iowa,19075,20,0 +2020-06-01,Grundy,Iowa,19075,20,0 +2020-06-02,Grundy,Iowa,19075,20,0 +2020-06-03,Grundy,Iowa,19075,20,0 +2020-06-04,Grundy,Iowa,19075,20,0 +2020-06-05,Grundy,Iowa,19075,20,0 +2020-06-06,Grundy,Iowa,19075,19,0 +2020-06-07,Grundy,Iowa,19075,19,0 +2020-06-08,Grundy,Iowa,19075,20,0 +2020-06-09,Grundy,Iowa,19075,20,0 +2020-06-10,Grundy,Iowa,19075,24,0 +2020-06-11,Grundy,Iowa,19075,23,0 +2020-06-12,Grundy,Iowa,19075,24,0 +2020-06-13,Grundy,Iowa,19075,23,0 +2020-06-14,Grundy,Iowa,19075,23,0 +2020-06-15,Grundy,Iowa,19075,23,0 +2020-06-16,Grundy,Iowa,19075,24,0 +2020-06-17,Grundy,Iowa,19075,25,0 +2020-06-18,Grundy,Iowa,19075,25,0 +2020-06-19,Grundy,Iowa,19075,26,0 +2020-06-20,Grundy,Iowa,19075,26,0 +2020-06-21,Grundy,Iowa,19075,26,0 +2020-06-22,Grundy,Iowa,19075,26,0 +2020-06-23,Grundy,Iowa,19075,26,0 +2020-06-24,Grundy,Iowa,19075,26,0 +2020-06-25,Grundy,Iowa,19075,27,0 +2020-06-26,Grundy,Iowa,19075,27,0 +2020-06-27,Grundy,Iowa,19075,27,0 +2020-06-28,Grundy,Iowa,19075,30,0 +2020-06-29,Grundy,Iowa,19075,33,0 +2020-06-30,Grundy,Iowa,19075,33,0 +2020-07-01,Grundy,Iowa,19075,34,0 +2020-07-02,Grundy,Iowa,19075,35,0 +2020-07-03,Grundy,Iowa,19075,36,0 +2020-07-04,Grundy,Iowa,19075,38,0 +2020-07-05,Grundy,Iowa,19075,39,0 +2020-07-06,Grundy,Iowa,19075,38,0 +2020-07-07,Grundy,Iowa,19075,40,0 +2020-07-08,Grundy,Iowa,19075,40,0 +2020-07-09,Grundy,Iowa,19075,43,0 +2020-03-30,Guthrie,Iowa,19077,1,0 +2020-03-31,Guthrie,Iowa,19077,1,0 +2020-04-01,Guthrie,Iowa,19077,1,0 +2020-04-02,Guthrie,Iowa,19077,1,0 +2020-04-03,Guthrie,Iowa,19077,1,0 +2020-04-04,Guthrie,Iowa,19077,1,0 +2020-04-05,Guthrie,Iowa,19077,1,0 +2020-04-06,Guthrie,Iowa,19077,1,0 +2020-04-07,Guthrie,Iowa,19077,1,0 +2020-04-08,Guthrie,Iowa,19077,1,0 +2020-04-09,Guthrie,Iowa,19077,1,0 +2020-04-10,Guthrie,Iowa,19077,1,0 +2020-04-11,Guthrie,Iowa,19077,1,0 +2020-04-12,Guthrie,Iowa,19077,1,0 +2020-04-13,Guthrie,Iowa,19077,1,0 +2020-04-14,Guthrie,Iowa,19077,1,0 +2020-04-15,Guthrie,Iowa,19077,3,0 +2020-04-16,Guthrie,Iowa,19077,3,0 +2020-04-17,Guthrie,Iowa,19077,3,0 +2020-04-18,Guthrie,Iowa,19077,4,0 +2020-04-19,Guthrie,Iowa,19077,4,0 +2020-04-20,Guthrie,Iowa,19077,4,0 +2020-04-21,Guthrie,Iowa,19077,4,0 +2020-04-22,Guthrie,Iowa,19077,4,0 +2020-04-23,Guthrie,Iowa,19077,5,0 +2020-04-24,Guthrie,Iowa,19077,5,0 +2020-04-25,Guthrie,Iowa,19077,6,0 +2020-04-26,Guthrie,Iowa,19077,6,0 +2020-04-27,Guthrie,Iowa,19077,6,0 +2020-04-28,Guthrie,Iowa,19077,6,0 +2020-04-29,Guthrie,Iowa,19077,10,0 +2020-04-30,Guthrie,Iowa,19077,12,0 +2020-05-01,Guthrie,Iowa,19077,13,0 +2020-05-02,Guthrie,Iowa,19077,19,0 +2020-05-03,Guthrie,Iowa,19077,22,0 +2020-05-04,Guthrie,Iowa,19077,29,0 +2020-05-05,Guthrie,Iowa,19077,31,0 +2020-05-06,Guthrie,Iowa,19077,31,0 +2020-05-07,Guthrie,Iowa,19077,32,0 +2020-05-08,Guthrie,Iowa,19077,32,0 +2020-05-09,Guthrie,Iowa,19077,33,0 +2020-05-10,Guthrie,Iowa,19077,33,0 +2020-05-11,Guthrie,Iowa,19077,35,0 +2020-05-12,Guthrie,Iowa,19077,35,1 +2020-05-13,Guthrie,Iowa,19077,36,2 +2020-05-14,Guthrie,Iowa,19077,36,2 +2020-05-15,Guthrie,Iowa,19077,37,2 +2020-05-16,Guthrie,Iowa,19077,37,2 +2020-05-17,Guthrie,Iowa,19077,37,2 +2020-05-18,Guthrie,Iowa,19077,38,2 +2020-05-19,Guthrie,Iowa,19077,40,3 +2020-05-20,Guthrie,Iowa,19077,41,3 +2020-05-21,Guthrie,Iowa,19077,42,3 +2020-05-22,Guthrie,Iowa,19077,42,3 +2020-05-23,Guthrie,Iowa,19077,42,3 +2020-05-24,Guthrie,Iowa,19077,43,3 +2020-05-25,Guthrie,Iowa,19077,43,3 +2020-05-26,Guthrie,Iowa,19077,43,3 +2020-05-27,Guthrie,Iowa,19077,45,3 +2020-05-28,Guthrie,Iowa,19077,46,3 +2020-05-29,Guthrie,Iowa,19077,50,3 +2020-05-30,Guthrie,Iowa,19077,50,3 +2020-05-31,Guthrie,Iowa,19077,51,3 +2020-06-01,Guthrie,Iowa,19077,53,3 +2020-06-02,Guthrie,Iowa,19077,53,3 +2020-06-03,Guthrie,Iowa,19077,53,3 +2020-06-04,Guthrie,Iowa,19077,54,3 +2020-06-05,Guthrie,Iowa,19077,55,3 +2020-06-06,Guthrie,Iowa,19077,55,3 +2020-06-07,Guthrie,Iowa,19077,55,3 +2020-06-08,Guthrie,Iowa,19077,55,3 +2020-06-09,Guthrie,Iowa,19077,55,3 +2020-06-10,Guthrie,Iowa,19077,55,3 +2020-06-11,Guthrie,Iowa,19077,56,3 +2020-06-12,Guthrie,Iowa,19077,57,3 +2020-06-13,Guthrie,Iowa,19077,58,3 +2020-06-14,Guthrie,Iowa,19077,58,3 +2020-06-15,Guthrie,Iowa,19077,59,3 +2020-06-16,Guthrie,Iowa,19077,59,3 +2020-06-17,Guthrie,Iowa,19077,60,3 +2020-06-18,Guthrie,Iowa,19077,61,4 +2020-06-19,Guthrie,Iowa,19077,61,4 +2020-06-20,Guthrie,Iowa,19077,61,4 +2020-06-21,Guthrie,Iowa,19077,62,4 +2020-06-22,Guthrie,Iowa,19077,63,4 +2020-06-23,Guthrie,Iowa,19077,63,4 +2020-06-24,Guthrie,Iowa,19077,63,4 +2020-06-25,Guthrie,Iowa,19077,64,4 +2020-06-26,Guthrie,Iowa,19077,64,4 +2020-06-27,Guthrie,Iowa,19077,64,4 +2020-06-28,Guthrie,Iowa,19077,64,4 +2020-06-29,Guthrie,Iowa,19077,64,4 +2020-06-30,Guthrie,Iowa,19077,64,4 +2020-07-01,Guthrie,Iowa,19077,64,4 +2020-07-02,Guthrie,Iowa,19077,64,4 +2020-07-03,Guthrie,Iowa,19077,65,4 +2020-07-04,Guthrie,Iowa,19077,66,4 +2020-07-05,Guthrie,Iowa,19077,66,4 +2020-07-06,Guthrie,Iowa,19077,66,4 +2020-07-07,Guthrie,Iowa,19077,68,4 +2020-07-08,Guthrie,Iowa,19077,69,4 +2020-07-09,Guthrie,Iowa,19077,72,4 +2020-04-05,Hamilton,Iowa,19079,1,0 +2020-04-06,Hamilton,Iowa,19079,1,0 +2020-04-07,Hamilton,Iowa,19079,2,0 +2020-04-08,Hamilton,Iowa,19079,2,0 +2020-04-09,Hamilton,Iowa,19079,2,0 +2020-04-10,Hamilton,Iowa,19079,2,0 +2020-04-11,Hamilton,Iowa,19079,2,0 +2020-04-12,Hamilton,Iowa,19079,2,0 +2020-04-13,Hamilton,Iowa,19079,2,0 +2020-04-14,Hamilton,Iowa,19079,2,0 +2020-04-15,Hamilton,Iowa,19079,2,0 +2020-04-16,Hamilton,Iowa,19079,2,0 +2020-04-17,Hamilton,Iowa,19079,2,0 +2020-04-18,Hamilton,Iowa,19079,2,0 +2020-04-19,Hamilton,Iowa,19079,2,0 +2020-04-20,Hamilton,Iowa,19079,2,0 +2020-04-21,Hamilton,Iowa,19079,2,0 +2020-04-22,Hamilton,Iowa,19079,2,0 +2020-04-23,Hamilton,Iowa,19079,3,0 +2020-04-24,Hamilton,Iowa,19079,7,0 +2020-04-25,Hamilton,Iowa,19079,7,0 +2020-04-26,Hamilton,Iowa,19079,7,0 +2020-04-27,Hamilton,Iowa,19079,7,0 +2020-04-28,Hamilton,Iowa,19079,7,0 +2020-04-29,Hamilton,Iowa,19079,7,0 +2020-04-30,Hamilton,Iowa,19079,7,0 +2020-05-01,Hamilton,Iowa,19079,7,0 +2020-05-02,Hamilton,Iowa,19079,7,0 +2020-05-03,Hamilton,Iowa,19079,7,0 +2020-05-04,Hamilton,Iowa,19079,7,0 +2020-05-05,Hamilton,Iowa,19079,7,0 +2020-05-06,Hamilton,Iowa,19079,7,0 +2020-05-07,Hamilton,Iowa,19079,9,0 +2020-05-08,Hamilton,Iowa,19079,9,0 +2020-05-09,Hamilton,Iowa,19079,9,0 +2020-05-10,Hamilton,Iowa,19079,10,0 +2020-05-11,Hamilton,Iowa,19079,11,0 +2020-05-12,Hamilton,Iowa,19079,11,0 +2020-05-13,Hamilton,Iowa,19079,11,0 +2020-05-14,Hamilton,Iowa,19079,11,0 +2020-05-15,Hamilton,Iowa,19079,11,0 +2020-05-16,Hamilton,Iowa,19079,11,0 +2020-05-17,Hamilton,Iowa,19079,11,0 +2020-05-18,Hamilton,Iowa,19079,11,0 +2020-05-19,Hamilton,Iowa,19079,11,0 +2020-05-20,Hamilton,Iowa,19079,13,0 +2020-05-21,Hamilton,Iowa,19079,15,0 +2020-05-22,Hamilton,Iowa,19079,15,0 +2020-05-23,Hamilton,Iowa,19079,15,0 +2020-05-24,Hamilton,Iowa,19079,26,0 +2020-05-25,Hamilton,Iowa,19079,26,0 +2020-05-26,Hamilton,Iowa,19079,25,0 +2020-05-27,Hamilton,Iowa,19079,29,0 +2020-05-28,Hamilton,Iowa,19079,29,0 +2020-05-29,Hamilton,Iowa,19079,33,0 +2020-05-30,Hamilton,Iowa,19079,35,0 +2020-05-31,Hamilton,Iowa,19079,37,0 +2020-06-01,Hamilton,Iowa,19079,44,0 +2020-06-02,Hamilton,Iowa,19079,44,0 +2020-06-03,Hamilton,Iowa,19079,45,0 +2020-06-04,Hamilton,Iowa,19079,62,0 +2020-06-05,Hamilton,Iowa,19079,77,0 +2020-06-06,Hamilton,Iowa,19079,81,0 +2020-06-07,Hamilton,Iowa,19079,83,0 +2020-06-08,Hamilton,Iowa,19079,91,0 +2020-06-09,Hamilton,Iowa,19079,97,0 +2020-06-10,Hamilton,Iowa,19079,106,0 +2020-06-11,Hamilton,Iowa,19079,107,0 +2020-06-12,Hamilton,Iowa,19079,112,0 +2020-06-13,Hamilton,Iowa,19079,118,0 +2020-06-14,Hamilton,Iowa,19079,119,0 +2020-06-15,Hamilton,Iowa,19079,124,0 +2020-06-16,Hamilton,Iowa,19079,129,0 +2020-06-17,Hamilton,Iowa,19079,131,0 +2020-06-18,Hamilton,Iowa,19079,144,0 +2020-06-19,Hamilton,Iowa,19079,149,0 +2020-06-20,Hamilton,Iowa,19079,152,0 +2020-06-21,Hamilton,Iowa,19079,158,0 +2020-06-22,Hamilton,Iowa,19079,168,0 +2020-06-23,Hamilton,Iowa,19079,170,0 +2020-06-24,Hamilton,Iowa,19079,173,0 +2020-06-25,Hamilton,Iowa,19079,178,0 +2020-06-26,Hamilton,Iowa,19079,179,0 +2020-06-27,Hamilton,Iowa,19079,182,0 +2020-06-28,Hamilton,Iowa,19079,182,0 +2020-06-29,Hamilton,Iowa,19079,184,1 +2020-06-30,Hamilton,Iowa,19079,185,1 +2020-07-01,Hamilton,Iowa,19079,185,1 +2020-07-02,Hamilton,Iowa,19079,187,1 +2020-07-03,Hamilton,Iowa,19079,187,1 +2020-07-04,Hamilton,Iowa,19079,187,1 +2020-07-05,Hamilton,Iowa,19079,188,1 +2020-07-06,Hamilton,Iowa,19079,189,1 +2020-07-07,Hamilton,Iowa,19079,189,1 +2020-07-08,Hamilton,Iowa,19079,192,1 +2020-07-09,Hamilton,Iowa,19079,194,1 +2020-03-23,Hancock,Iowa,19081,2,0 +2020-03-24,Hancock,Iowa,19081,2,0 +2020-03-25,Hancock,Iowa,19081,3,0 +2020-03-26,Hancock,Iowa,19081,3,0 +2020-03-27,Hancock,Iowa,19081,3,0 +2020-03-28,Hancock,Iowa,19081,3,0 +2020-03-29,Hancock,Iowa,19081,3,0 +2020-03-30,Hancock,Iowa,19081,3,0 +2020-03-31,Hancock,Iowa,19081,3,0 +2020-04-01,Hancock,Iowa,19081,3,0 +2020-04-02,Hancock,Iowa,19081,3,0 +2020-04-03,Hancock,Iowa,19081,3,0 +2020-04-04,Hancock,Iowa,19081,3,0 +2020-04-05,Hancock,Iowa,19081,3,0 +2020-04-06,Hancock,Iowa,19081,3,0 +2020-04-07,Hancock,Iowa,19081,3,0 +2020-04-08,Hancock,Iowa,19081,3,0 +2020-04-09,Hancock,Iowa,19081,3,0 +2020-04-10,Hancock,Iowa,19081,3,0 +2020-04-11,Hancock,Iowa,19081,3,0 +2020-04-12,Hancock,Iowa,19081,3,0 +2020-04-13,Hancock,Iowa,19081,3,0 +2020-04-14,Hancock,Iowa,19081,3,0 +2020-04-15,Hancock,Iowa,19081,3,0 +2020-04-16,Hancock,Iowa,19081,3,0 +2020-04-17,Hancock,Iowa,19081,3,0 +2020-04-18,Hancock,Iowa,19081,3,0 +2020-04-19,Hancock,Iowa,19081,3,0 +2020-04-20,Hancock,Iowa,19081,3,0 +2020-04-21,Hancock,Iowa,19081,3,0 +2020-04-22,Hancock,Iowa,19081,3,0 +2020-04-23,Hancock,Iowa,19081,3,0 +2020-04-24,Hancock,Iowa,19081,3,0 +2020-04-25,Hancock,Iowa,19081,3,0 +2020-04-26,Hancock,Iowa,19081,3,0 +2020-04-27,Hancock,Iowa,19081,3,0 +2020-04-28,Hancock,Iowa,19081,3,0 +2020-04-29,Hancock,Iowa,19081,3,0 +2020-04-30,Hancock,Iowa,19081,3,0 +2020-05-01,Hancock,Iowa,19081,3,0 +2020-05-02,Hancock,Iowa,19081,3,0 +2020-05-03,Hancock,Iowa,19081,3,0 +2020-05-04,Hancock,Iowa,19081,3,0 +2020-05-05,Hancock,Iowa,19081,3,0 +2020-05-06,Hancock,Iowa,19081,3,0 +2020-05-07,Hancock,Iowa,19081,3,0 +2020-05-08,Hancock,Iowa,19081,3,0 +2020-05-09,Hancock,Iowa,19081,3,0 +2020-05-10,Hancock,Iowa,19081,3,0 +2020-05-11,Hancock,Iowa,19081,3,0 +2020-05-12,Hancock,Iowa,19081,3,0 +2020-05-13,Hancock,Iowa,19081,3,0 +2020-05-14,Hancock,Iowa,19081,3,0 +2020-05-15,Hancock,Iowa,19081,3,0 +2020-05-16,Hancock,Iowa,19081,3,0 +2020-05-17,Hancock,Iowa,19081,5,0 +2020-05-18,Hancock,Iowa,19081,5,0 +2020-05-19,Hancock,Iowa,19081,5,0 +2020-05-20,Hancock,Iowa,19081,9,0 +2020-05-21,Hancock,Iowa,19081,10,0 +2020-05-22,Hancock,Iowa,19081,11,0 +2020-05-23,Hancock,Iowa,19081,11,0 +2020-05-24,Hancock,Iowa,19081,12,0 +2020-05-25,Hancock,Iowa,19081,13,0 +2020-05-26,Hancock,Iowa,19081,14,0 +2020-05-27,Hancock,Iowa,19081,15,0 +2020-05-28,Hancock,Iowa,19081,16,0 +2020-05-29,Hancock,Iowa,19081,16,0 +2020-05-30,Hancock,Iowa,19081,16,0 +2020-05-31,Hancock,Iowa,19081,16,0 +2020-06-01,Hancock,Iowa,19081,16,0 +2020-06-02,Hancock,Iowa,19081,16,0 +2020-06-03,Hancock,Iowa,19081,16,0 +2020-06-04,Hancock,Iowa,19081,16,0 +2020-06-05,Hancock,Iowa,19081,18,0 +2020-06-06,Hancock,Iowa,19081,19,0 +2020-06-07,Hancock,Iowa,19081,22,0 +2020-06-08,Hancock,Iowa,19081,22,0 +2020-06-09,Hancock,Iowa,19081,22,0 +2020-06-10,Hancock,Iowa,19081,25,0 +2020-06-11,Hancock,Iowa,19081,25,0 +2020-06-12,Hancock,Iowa,19081,26,0 +2020-06-13,Hancock,Iowa,19081,27,0 +2020-06-14,Hancock,Iowa,19081,29,0 +2020-06-15,Hancock,Iowa,19081,33,0 +2020-06-16,Hancock,Iowa,19081,31,0 +2020-06-17,Hancock,Iowa,19081,30,0 +2020-06-18,Hancock,Iowa,19081,34,0 +2020-06-19,Hancock,Iowa,19081,35,0 +2020-06-20,Hancock,Iowa,19081,36,0 +2020-06-21,Hancock,Iowa,19081,38,0 +2020-06-22,Hancock,Iowa,19081,38,0 +2020-06-23,Hancock,Iowa,19081,38,0 +2020-06-24,Hancock,Iowa,19081,40,0 +2020-06-25,Hancock,Iowa,19081,41,0 +2020-06-26,Hancock,Iowa,19081,43,0 +2020-06-27,Hancock,Iowa,19081,45,0 +2020-06-28,Hancock,Iowa,19081,45,0 +2020-06-29,Hancock,Iowa,19081,46,0 +2020-06-30,Hancock,Iowa,19081,47,0 +2020-07-01,Hancock,Iowa,19081,47,0 +2020-07-02,Hancock,Iowa,19081,49,0 +2020-07-03,Hancock,Iowa,19081,49,0 +2020-07-04,Hancock,Iowa,19081,52,0 +2020-07-05,Hancock,Iowa,19081,54,0 +2020-07-06,Hancock,Iowa,19081,54,1 +2020-07-07,Hancock,Iowa,19081,55,1 +2020-07-08,Hancock,Iowa,19081,54,1 +2020-07-09,Hancock,Iowa,19081,57,1 +2020-03-27,Hardin,Iowa,19083,1,0 +2020-03-28,Hardin,Iowa,19083,1,0 +2020-03-29,Hardin,Iowa,19083,1,0 +2020-03-30,Hardin,Iowa,19083,1,0 +2020-03-31,Hardin,Iowa,19083,1,0 +2020-04-01,Hardin,Iowa,19083,1,0 +2020-04-02,Hardin,Iowa,19083,1,0 +2020-04-03,Hardin,Iowa,19083,1,0 +2020-04-04,Hardin,Iowa,19083,1,0 +2020-04-05,Hardin,Iowa,19083,1,0 +2020-04-06,Hardin,Iowa,19083,1,0 +2020-04-07,Hardin,Iowa,19083,1,0 +2020-04-08,Hardin,Iowa,19083,1,0 +2020-04-09,Hardin,Iowa,19083,1,0 +2020-04-10,Hardin,Iowa,19083,1,0 +2020-04-11,Hardin,Iowa,19083,1,0 +2020-04-12,Hardin,Iowa,19083,1,0 +2020-04-13,Hardin,Iowa,19083,2,0 +2020-04-14,Hardin,Iowa,19083,2,0 +2020-04-15,Hardin,Iowa,19083,1,0 +2020-04-16,Hardin,Iowa,19083,1,0 +2020-04-17,Hardin,Iowa,19083,1,0 +2020-04-18,Hardin,Iowa,19083,2,0 +2020-04-19,Hardin,Iowa,19083,2,0 +2020-04-20,Hardin,Iowa,19083,3,0 +2020-04-21,Hardin,Iowa,19083,4,0 +2020-04-22,Hardin,Iowa,19083,4,0 +2020-04-23,Hardin,Iowa,19083,4,0 +2020-04-24,Hardin,Iowa,19083,4,0 +2020-04-25,Hardin,Iowa,19083,5,0 +2020-04-26,Hardin,Iowa,19083,6,0 +2020-04-27,Hardin,Iowa,19083,7,0 +2020-04-28,Hardin,Iowa,19083,7,0 +2020-04-29,Hardin,Iowa,19083,7,0 +2020-04-30,Hardin,Iowa,19083,8,0 +2020-05-01,Hardin,Iowa,19083,9,0 +2020-05-02,Hardin,Iowa,19083,9,0 +2020-05-03,Hardin,Iowa,19083,9,0 +2020-05-04,Hardin,Iowa,19083,9,0 +2020-05-05,Hardin,Iowa,19083,9,0 +2020-05-06,Hardin,Iowa,19083,9,0 +2020-05-07,Hardin,Iowa,19083,11,0 +2020-05-08,Hardin,Iowa,19083,12,0 +2020-05-09,Hardin,Iowa,19083,12,0 +2020-05-10,Hardin,Iowa,19083,12,0 +2020-05-11,Hardin,Iowa,19083,12,0 +2020-05-12,Hardin,Iowa,19083,12,0 +2020-05-13,Hardin,Iowa,19083,12,0 +2020-05-14,Hardin,Iowa,19083,11,0 +2020-05-15,Hardin,Iowa,19083,11,0 +2020-05-16,Hardin,Iowa,19083,12,0 +2020-05-17,Hardin,Iowa,19083,12,0 +2020-05-18,Hardin,Iowa,19083,12,0 +2020-05-19,Hardin,Iowa,19083,12,0 +2020-05-20,Hardin,Iowa,19083,13,0 +2020-05-21,Hardin,Iowa,19083,13,0 +2020-05-22,Hardin,Iowa,19083,13,0 +2020-05-23,Hardin,Iowa,19083,13,0 +2020-05-24,Hardin,Iowa,19083,13,0 +2020-05-25,Hardin,Iowa,19083,13,0 +2020-05-26,Hardin,Iowa,19083,13,0 +2020-05-27,Hardin,Iowa,19083,16,0 +2020-05-28,Hardin,Iowa,19083,16,0 +2020-05-29,Hardin,Iowa,19083,16,0 +2020-05-30,Hardin,Iowa,19083,17,0 +2020-05-31,Hardin,Iowa,19083,17,0 +2020-06-01,Hardin,Iowa,19083,17,0 +2020-06-02,Hardin,Iowa,19083,17,0 +2020-06-03,Hardin,Iowa,19083,19,0 +2020-06-04,Hardin,Iowa,19083,21,0 +2020-06-05,Hardin,Iowa,19083,29,0 +2020-06-06,Hardin,Iowa,19083,31,0 +2020-06-07,Hardin,Iowa,19083,33,0 +2020-06-08,Hardin,Iowa,19083,33,0 +2020-06-09,Hardin,Iowa,19083,33,0 +2020-06-10,Hardin,Iowa,19083,39,0 +2020-06-11,Hardin,Iowa,19083,42,0 +2020-06-12,Hardin,Iowa,19083,42,0 +2020-06-13,Hardin,Iowa,19083,43,0 +2020-06-14,Hardin,Iowa,19083,44,0 +2020-06-15,Hardin,Iowa,19083,45,0 +2020-06-16,Hardin,Iowa,19083,44,0 +2020-06-17,Hardin,Iowa,19083,46,0 +2020-06-18,Hardin,Iowa,19083,52,0 +2020-06-19,Hardin,Iowa,19083,52,0 +2020-06-20,Hardin,Iowa,19083,52,0 +2020-06-21,Hardin,Iowa,19083,53,0 +2020-06-22,Hardin,Iowa,19083,53,0 +2020-06-23,Hardin,Iowa,19083,54,0 +2020-06-24,Hardin,Iowa,19083,56,0 +2020-06-25,Hardin,Iowa,19083,58,0 +2020-06-26,Hardin,Iowa,19083,59,0 +2020-06-27,Hardin,Iowa,19083,62,0 +2020-06-28,Hardin,Iowa,19083,65,0 +2020-06-29,Hardin,Iowa,19083,66,0 +2020-06-30,Hardin,Iowa,19083,63,0 +2020-07-01,Hardin,Iowa,19083,63,0 +2020-07-02,Hardin,Iowa,19083,65,0 +2020-07-03,Hardin,Iowa,19083,70,0 +2020-07-04,Hardin,Iowa,19083,71,0 +2020-07-05,Hardin,Iowa,19083,75,0 +2020-07-06,Hardin,Iowa,19083,77,0 +2020-07-07,Hardin,Iowa,19083,81,0 +2020-07-08,Hardin,Iowa,19083,83,0 +2020-07-09,Hardin,Iowa,19083,88,0 +2020-03-13,Harrison,Iowa,19085,1,0 +2020-03-14,Harrison,Iowa,19085,1,0 +2020-03-15,Harrison,Iowa,19085,1,0 +2020-03-16,Harrison,Iowa,19085,1,0 +2020-03-17,Harrison,Iowa,19085,1,0 +2020-03-18,Harrison,Iowa,19085,1,0 +2020-03-19,Harrison,Iowa,19085,1,0 +2020-03-20,Harrison,Iowa,19085,1,0 +2020-03-21,Harrison,Iowa,19085,1,0 +2020-03-22,Harrison,Iowa,19085,3,0 +2020-03-23,Harrison,Iowa,19085,3,0 +2020-03-24,Harrison,Iowa,19085,3,0 +2020-03-25,Harrison,Iowa,19085,3,0 +2020-03-26,Harrison,Iowa,19085,3,0 +2020-03-27,Harrison,Iowa,19085,7,0 +2020-03-28,Harrison,Iowa,19085,8,0 +2020-03-29,Harrison,Iowa,19085,8,0 +2020-03-30,Harrison,Iowa,19085,8,0 +2020-03-31,Harrison,Iowa,19085,9,0 +2020-04-01,Harrison,Iowa,19085,10,0 +2020-04-02,Harrison,Iowa,19085,10,0 +2020-04-03,Harrison,Iowa,19085,10,0 +2020-04-04,Harrison,Iowa,19085,10,0 +2020-04-05,Harrison,Iowa,19085,10,0 +2020-04-06,Harrison,Iowa,19085,10,0 +2020-04-07,Harrison,Iowa,19085,10,0 +2020-04-08,Harrison,Iowa,19085,11,0 +2020-04-09,Harrison,Iowa,19085,11,0 +2020-04-10,Harrison,Iowa,19085,12,0 +2020-04-11,Harrison,Iowa,19085,12,0 +2020-04-12,Harrison,Iowa,19085,12,0 +2020-04-13,Harrison,Iowa,19085,12,0 +2020-04-14,Harrison,Iowa,19085,12,0 +2020-04-15,Harrison,Iowa,19085,12,0 +2020-04-16,Harrison,Iowa,19085,12,0 +2020-04-17,Harrison,Iowa,19085,12,0 +2020-04-18,Harrison,Iowa,19085,12,0 +2020-04-19,Harrison,Iowa,19085,13,0 +2020-04-20,Harrison,Iowa,19085,14,0 +2020-04-21,Harrison,Iowa,19085,14,0 +2020-04-22,Harrison,Iowa,19085,15,0 +2020-04-23,Harrison,Iowa,19085,15,0 +2020-04-24,Harrison,Iowa,19085,15,0 +2020-04-25,Harrison,Iowa,19085,15,0 +2020-04-26,Harrison,Iowa,19085,15,0 +2020-04-27,Harrison,Iowa,19085,15,0 +2020-04-28,Harrison,Iowa,19085,15,0 +2020-04-29,Harrison,Iowa,19085,16,0 +2020-04-30,Harrison,Iowa,19085,16,0 +2020-05-01,Harrison,Iowa,19085,16,0 +2020-05-02,Harrison,Iowa,19085,16,0 +2020-05-03,Harrison,Iowa,19085,16,0 +2020-05-04,Harrison,Iowa,19085,16,0 +2020-05-05,Harrison,Iowa,19085,17,0 +2020-05-06,Harrison,Iowa,19085,17,0 +2020-05-07,Harrison,Iowa,19085,17,0 +2020-05-08,Harrison,Iowa,19085,17,0 +2020-05-09,Harrison,Iowa,19085,17,0 +2020-05-10,Harrison,Iowa,19085,17,0 +2020-05-11,Harrison,Iowa,19085,17,0 +2020-05-12,Harrison,Iowa,19085,17,0 +2020-05-13,Harrison,Iowa,19085,17,0 +2020-05-14,Harrison,Iowa,19085,17,0 +2020-05-15,Harrison,Iowa,19085,17,0 +2020-05-16,Harrison,Iowa,19085,17,0 +2020-05-17,Harrison,Iowa,19085,17,0 +2020-05-18,Harrison,Iowa,19085,18,0 +2020-05-19,Harrison,Iowa,19085,18,0 +2020-05-20,Harrison,Iowa,19085,18,0 +2020-05-21,Harrison,Iowa,19085,18,0 +2020-05-22,Harrison,Iowa,19085,18,0 +2020-05-23,Harrison,Iowa,19085,18,0 +2020-05-24,Harrison,Iowa,19085,19,0 +2020-05-25,Harrison,Iowa,19085,19,0 +2020-05-26,Harrison,Iowa,19085,19,0 +2020-05-27,Harrison,Iowa,19085,19,0 +2020-05-28,Harrison,Iowa,19085,21,0 +2020-05-29,Harrison,Iowa,19085,21,0 +2020-05-30,Harrison,Iowa,19085,23,0 +2020-05-31,Harrison,Iowa,19085,23,0 +2020-06-01,Harrison,Iowa,19085,24,0 +2020-06-02,Harrison,Iowa,19085,25,0 +2020-06-03,Harrison,Iowa,19085,26,0 +2020-06-04,Harrison,Iowa,19085,26,0 +2020-06-05,Harrison,Iowa,19085,26,0 +2020-06-06,Harrison,Iowa,19085,26,0 +2020-06-07,Harrison,Iowa,19085,26,0 +2020-06-08,Harrison,Iowa,19085,27,0 +2020-06-09,Harrison,Iowa,19085,27,0 +2020-06-10,Harrison,Iowa,19085,30,0 +2020-06-11,Harrison,Iowa,19085,32,0 +2020-06-12,Harrison,Iowa,19085,33,0 +2020-06-13,Harrison,Iowa,19085,39,0 +2020-06-14,Harrison,Iowa,19085,39,0 +2020-06-15,Harrison,Iowa,19085,41,0 +2020-06-16,Harrison,Iowa,19085,40,0 +2020-06-17,Harrison,Iowa,19085,41,0 +2020-06-18,Harrison,Iowa,19085,41,0 +2020-06-19,Harrison,Iowa,19085,41,0 +2020-06-20,Harrison,Iowa,19085,41,0 +2020-06-21,Harrison,Iowa,19085,42,0 +2020-06-22,Harrison,Iowa,19085,44,0 +2020-06-23,Harrison,Iowa,19085,44,0 +2020-06-24,Harrison,Iowa,19085,46,0 +2020-06-25,Harrison,Iowa,19085,47,0 +2020-06-26,Harrison,Iowa,19085,48,0 +2020-06-27,Harrison,Iowa,19085,49,0 +2020-06-28,Harrison,Iowa,19085,49,0 +2020-06-29,Harrison,Iowa,19085,49,0 +2020-06-30,Harrison,Iowa,19085,51,0 +2020-07-01,Harrison,Iowa,19085,52,0 +2020-07-02,Harrison,Iowa,19085,53,0 +2020-07-03,Harrison,Iowa,19085,53,0 +2020-07-04,Harrison,Iowa,19085,53,0 +2020-07-05,Harrison,Iowa,19085,53,0 +2020-07-06,Harrison,Iowa,19085,54,0 +2020-07-07,Harrison,Iowa,19085,54,0 +2020-07-08,Harrison,Iowa,19085,54,0 +2020-07-09,Harrison,Iowa,19085,56,0 +2020-03-21,Henry,Iowa,19087,1,0 +2020-03-22,Henry,Iowa,19087,1,0 +2020-03-23,Henry,Iowa,19087,1,0 +2020-03-24,Henry,Iowa,19087,1,0 +2020-03-25,Henry,Iowa,19087,1,0 +2020-03-26,Henry,Iowa,19087,1,0 +2020-03-27,Henry,Iowa,19087,2,0 +2020-03-28,Henry,Iowa,19087,2,0 +2020-03-29,Henry,Iowa,19087,3,0 +2020-03-30,Henry,Iowa,19087,3,0 +2020-03-31,Henry,Iowa,19087,3,0 +2020-04-01,Henry,Iowa,19087,5,0 +2020-04-02,Henry,Iowa,19087,5,0 +2020-04-03,Henry,Iowa,19087,6,0 +2020-04-04,Henry,Iowa,19087,6,0 +2020-04-05,Henry,Iowa,19087,8,1 +2020-04-06,Henry,Iowa,19087,9,1 +2020-04-07,Henry,Iowa,19087,13,1 +2020-04-08,Henry,Iowa,19087,15,1 +2020-04-09,Henry,Iowa,19087,15,1 +2020-04-10,Henry,Iowa,19087,17,1 +2020-04-11,Henry,Iowa,19087,19,1 +2020-04-12,Henry,Iowa,19087,19,1 +2020-04-13,Henry,Iowa,19087,20,1 +2020-04-14,Henry,Iowa,19087,22,1 +2020-04-15,Henry,Iowa,19087,22,1 +2020-04-16,Henry,Iowa,19087,22,1 +2020-04-17,Henry,Iowa,19087,26,1 +2020-04-18,Henry,Iowa,19087,27,1 +2020-04-19,Henry,Iowa,19087,28,1 +2020-04-20,Henry,Iowa,19087,28,1 +2020-04-21,Henry,Iowa,19087,30,1 +2020-04-22,Henry,Iowa,19087,31,1 +2020-04-23,Henry,Iowa,19087,31,1 +2020-04-24,Henry,Iowa,19087,32,1 +2020-04-25,Henry,Iowa,19087,32,1 +2020-04-26,Henry,Iowa,19087,32,1 +2020-04-27,Henry,Iowa,19087,32,1 +2020-04-28,Henry,Iowa,19087,32,1 +2020-04-29,Henry,Iowa,19087,32,1 +2020-04-30,Henry,Iowa,19087,32,1 +2020-05-01,Henry,Iowa,19087,32,1 +2020-05-02,Henry,Iowa,19087,32,1 +2020-05-03,Henry,Iowa,19087,33,1 +2020-05-04,Henry,Iowa,19087,34,1 +2020-05-05,Henry,Iowa,19087,37,1 +2020-05-06,Henry,Iowa,19087,40,1 +2020-05-07,Henry,Iowa,19087,42,1 +2020-05-08,Henry,Iowa,19087,42,1 +2020-05-09,Henry,Iowa,19087,43,1 +2020-05-10,Henry,Iowa,19087,43,1 +2020-05-11,Henry,Iowa,19087,43,1 +2020-05-12,Henry,Iowa,19087,43,1 +2020-05-13,Henry,Iowa,19087,43,1 +2020-05-14,Henry,Iowa,19087,43,1 +2020-05-15,Henry,Iowa,19087,44,1 +2020-05-16,Henry,Iowa,19087,44,1 +2020-05-17,Henry,Iowa,19087,47,1 +2020-05-18,Henry,Iowa,19087,46,1 +2020-05-19,Henry,Iowa,19087,47,1 +2020-05-20,Henry,Iowa,19087,49,1 +2020-05-21,Henry,Iowa,19087,50,1 +2020-05-22,Henry,Iowa,19087,56,1 +2020-05-23,Henry,Iowa,19087,56,1 +2020-05-24,Henry,Iowa,19087,61,1 +2020-05-25,Henry,Iowa,19087,63,1 +2020-05-26,Henry,Iowa,19087,67,1 +2020-05-27,Henry,Iowa,19087,67,1 +2020-05-28,Henry,Iowa,19087,67,1 +2020-05-29,Henry,Iowa,19087,71,1 +2020-05-30,Henry,Iowa,19087,71,1 +2020-05-31,Henry,Iowa,19087,71,1 +2020-06-01,Henry,Iowa,19087,72,1 +2020-06-02,Henry,Iowa,19087,72,2 +2020-06-03,Henry,Iowa,19087,72,2 +2020-06-04,Henry,Iowa,19087,73,2 +2020-06-05,Henry,Iowa,19087,74,2 +2020-06-06,Henry,Iowa,19087,74,2 +2020-06-07,Henry,Iowa,19087,74,2 +2020-06-08,Henry,Iowa,19087,73,2 +2020-06-09,Henry,Iowa,19087,73,2 +2020-06-10,Henry,Iowa,19087,73,2 +2020-06-11,Henry,Iowa,19087,73,2 +2020-06-12,Henry,Iowa,19087,73,2 +2020-06-13,Henry,Iowa,19087,73,2 +2020-06-14,Henry,Iowa,19087,73,2 +2020-06-15,Henry,Iowa,19087,74,2 +2020-06-16,Henry,Iowa,19087,74,2 +2020-06-17,Henry,Iowa,19087,75,3 +2020-06-18,Henry,Iowa,19087,75,3 +2020-06-19,Henry,Iowa,19087,75,3 +2020-06-20,Henry,Iowa,19087,76,3 +2020-06-21,Henry,Iowa,19087,78,3 +2020-06-22,Henry,Iowa,19087,78,3 +2020-06-23,Henry,Iowa,19087,79,3 +2020-06-24,Henry,Iowa,19087,80,3 +2020-06-25,Henry,Iowa,19087,79,3 +2020-06-26,Henry,Iowa,19087,80,3 +2020-06-27,Henry,Iowa,19087,80,3 +2020-06-28,Henry,Iowa,19087,81,3 +2020-06-29,Henry,Iowa,19087,81,3 +2020-06-30,Henry,Iowa,19087,82,3 +2020-07-01,Henry,Iowa,19087,83,3 +2020-07-02,Henry,Iowa,19087,85,3 +2020-07-03,Henry,Iowa,19087,86,3 +2020-07-04,Henry,Iowa,19087,86,3 +2020-07-05,Henry,Iowa,19087,86,3 +2020-07-06,Henry,Iowa,19087,86,3 +2020-07-07,Henry,Iowa,19087,86,3 +2020-07-08,Henry,Iowa,19087,88,3 +2020-07-09,Henry,Iowa,19087,90,3 +2020-04-04,Howard,Iowa,19089,1,0 +2020-04-05,Howard,Iowa,19089,1,0 +2020-04-06,Howard,Iowa,19089,1,0 +2020-04-07,Howard,Iowa,19089,1,0 +2020-04-08,Howard,Iowa,19089,1,0 +2020-04-09,Howard,Iowa,19089,1,0 +2020-04-10,Howard,Iowa,19089,1,0 +2020-04-11,Howard,Iowa,19089,1,0 +2020-04-12,Howard,Iowa,19089,1,0 +2020-04-13,Howard,Iowa,19089,1,0 +2020-04-14,Howard,Iowa,19089,1,0 +2020-04-15,Howard,Iowa,19089,1,0 +2020-04-16,Howard,Iowa,19089,2,0 +2020-04-17,Howard,Iowa,19089,2,0 +2020-04-18,Howard,Iowa,19089,4,0 +2020-04-19,Howard,Iowa,19089,4,0 +2020-04-20,Howard,Iowa,19089,4,0 +2020-04-21,Howard,Iowa,19089,4,0 +2020-04-22,Howard,Iowa,19089,4,0 +2020-04-23,Howard,Iowa,19089,4,0 +2020-04-24,Howard,Iowa,19089,4,0 +2020-04-25,Howard,Iowa,19089,4,0 +2020-04-26,Howard,Iowa,19089,6,0 +2020-04-27,Howard,Iowa,19089,6,0 +2020-04-28,Howard,Iowa,19089,7,0 +2020-04-29,Howard,Iowa,19089,10,0 +2020-04-30,Howard,Iowa,19089,10,0 +2020-05-01,Howard,Iowa,19089,10,0 +2020-05-02,Howard,Iowa,19089,10,0 +2020-05-03,Howard,Iowa,19089,10,0 +2020-05-04,Howard,Iowa,19089,12,0 +2020-05-05,Howard,Iowa,19089,12,0 +2020-05-06,Howard,Iowa,19089,12,0 +2020-05-07,Howard,Iowa,19089,13,0 +2020-05-08,Howard,Iowa,19089,12,0 +2020-05-09,Howard,Iowa,19089,12,0 +2020-05-10,Howard,Iowa,19089,12,0 +2020-05-11,Howard,Iowa,19089,12,0 +2020-05-12,Howard,Iowa,19089,12,0 +2020-05-13,Howard,Iowa,19089,12,0 +2020-05-14,Howard,Iowa,19089,12,0 +2020-05-15,Howard,Iowa,19089,12,0 +2020-05-16,Howard,Iowa,19089,12,0 +2020-05-17,Howard,Iowa,19089,12,0 +2020-05-18,Howard,Iowa,19089,12,0 +2020-05-19,Howard,Iowa,19089,12,0 +2020-05-20,Howard,Iowa,19089,12,0 +2020-05-21,Howard,Iowa,19089,12,0 +2020-05-22,Howard,Iowa,19089,12,0 +2020-05-23,Howard,Iowa,19089,12,0 +2020-05-24,Howard,Iowa,19089,12,0 +2020-05-25,Howard,Iowa,19089,12,0 +2020-05-26,Howard,Iowa,19089,12,0 +2020-05-27,Howard,Iowa,19089,12,0 +2020-05-28,Howard,Iowa,19089,12,0 +2020-05-29,Howard,Iowa,19089,12,0 +2020-05-30,Howard,Iowa,19089,12,0 +2020-05-31,Howard,Iowa,19089,12,0 +2020-06-01,Howard,Iowa,19089,12,0 +2020-06-02,Howard,Iowa,19089,12,0 +2020-06-03,Howard,Iowa,19089,12,0 +2020-06-04,Howard,Iowa,19089,12,0 +2020-06-05,Howard,Iowa,19089,12,0 +2020-06-06,Howard,Iowa,19089,12,0 +2020-06-07,Howard,Iowa,19089,12,0 +2020-06-08,Howard,Iowa,19089,12,0 +2020-06-09,Howard,Iowa,19089,12,0 +2020-06-10,Howard,Iowa,19089,12,0 +2020-06-11,Howard,Iowa,19089,12,0 +2020-06-12,Howard,Iowa,19089,12,0 +2020-06-13,Howard,Iowa,19089,12,0 +2020-06-14,Howard,Iowa,19089,12,0 +2020-06-15,Howard,Iowa,19089,12,0 +2020-06-16,Howard,Iowa,19089,12,0 +2020-06-17,Howard,Iowa,19089,12,0 +2020-06-18,Howard,Iowa,19089,12,0 +2020-06-19,Howard,Iowa,19089,13,0 +2020-06-20,Howard,Iowa,19089,13,0 +2020-06-21,Howard,Iowa,19089,14,0 +2020-06-22,Howard,Iowa,19089,14,0 +2020-06-23,Howard,Iowa,19089,14,0 +2020-06-24,Howard,Iowa,19089,14,0 +2020-06-25,Howard,Iowa,19089,17,0 +2020-06-26,Howard,Iowa,19089,17,0 +2020-06-27,Howard,Iowa,19089,17,0 +2020-06-28,Howard,Iowa,19089,21,0 +2020-06-29,Howard,Iowa,19089,21,0 +2020-06-30,Howard,Iowa,19089,23,0 +2020-07-01,Howard,Iowa,19089,27,0 +2020-07-02,Howard,Iowa,19089,28,0 +2020-07-03,Howard,Iowa,19089,29,0 +2020-07-04,Howard,Iowa,19089,35,0 +2020-07-05,Howard,Iowa,19089,34,0 +2020-07-06,Howard,Iowa,19089,34,0 +2020-07-07,Howard,Iowa,19089,34,0 +2020-07-08,Howard,Iowa,19089,38,0 +2020-07-09,Howard,Iowa,19089,37,0 +2020-04-21,Humboldt,Iowa,19091,1,0 +2020-04-22,Humboldt,Iowa,19091,2,0 +2020-04-23,Humboldt,Iowa,19091,2,0 +2020-04-24,Humboldt,Iowa,19091,4,0 +2020-04-25,Humboldt,Iowa,19091,4,0 +2020-04-26,Humboldt,Iowa,19091,4,0 +2020-04-27,Humboldt,Iowa,19091,4,0 +2020-04-28,Humboldt,Iowa,19091,4,0 +2020-04-29,Humboldt,Iowa,19091,4,0 +2020-04-30,Humboldt,Iowa,19091,4,0 +2020-05-01,Humboldt,Iowa,19091,4,0 +2020-05-02,Humboldt,Iowa,19091,4,0 +2020-05-03,Humboldt,Iowa,19091,4,0 +2020-05-04,Humboldt,Iowa,19091,4,0 +2020-05-05,Humboldt,Iowa,19091,4,0 +2020-05-06,Humboldt,Iowa,19091,4,0 +2020-05-07,Humboldt,Iowa,19091,6,0 +2020-05-08,Humboldt,Iowa,19091,6,0 +2020-05-09,Humboldt,Iowa,19091,6,0 +2020-05-10,Humboldt,Iowa,19091,7,0 +2020-05-11,Humboldt,Iowa,19091,7,0 +2020-05-12,Humboldt,Iowa,19091,7,0 +2020-05-13,Humboldt,Iowa,19091,7,0 +2020-05-14,Humboldt,Iowa,19091,7,0 +2020-05-15,Humboldt,Iowa,19091,7,0 +2020-05-16,Humboldt,Iowa,19091,7,0 +2020-05-17,Humboldt,Iowa,19091,7,0 +2020-05-18,Humboldt,Iowa,19091,7,0 +2020-05-19,Humboldt,Iowa,19091,7,0 +2020-05-20,Humboldt,Iowa,19091,7,0 +2020-05-21,Humboldt,Iowa,19091,9,0 +2020-05-22,Humboldt,Iowa,19091,10,0 +2020-05-23,Humboldt,Iowa,19091,10,0 +2020-05-24,Humboldt,Iowa,19091,13,0 +2020-05-25,Humboldt,Iowa,19091,13,0 +2020-05-26,Humboldt,Iowa,19091,13,0 +2020-05-27,Humboldt,Iowa,19091,15,0 +2020-05-28,Humboldt,Iowa,19091,16,0 +2020-05-29,Humboldt,Iowa,19091,16,0 +2020-05-30,Humboldt,Iowa,19091,17,0 +2020-05-31,Humboldt,Iowa,19091,18,0 +2020-06-01,Humboldt,Iowa,19091,18,1 +2020-06-02,Humboldt,Iowa,19091,18,1 +2020-06-03,Humboldt,Iowa,19091,18,1 +2020-06-04,Humboldt,Iowa,19091,19,1 +2020-06-05,Humboldt,Iowa,19091,20,1 +2020-06-06,Humboldt,Iowa,19091,20,1 +2020-06-07,Humboldt,Iowa,19091,20,1 +2020-06-08,Humboldt,Iowa,19091,24,1 +2020-06-09,Humboldt,Iowa,19091,24,1 +2020-06-10,Humboldt,Iowa,19091,27,1 +2020-06-11,Humboldt,Iowa,19091,29,1 +2020-06-12,Humboldt,Iowa,19091,30,1 +2020-06-13,Humboldt,Iowa,19091,32,1 +2020-06-14,Humboldt,Iowa,19091,33,1 +2020-06-15,Humboldt,Iowa,19091,34,1 +2020-06-16,Humboldt,Iowa,19091,34,1 +2020-06-17,Humboldt,Iowa,19091,34,1 +2020-06-18,Humboldt,Iowa,19091,38,1 +2020-06-19,Humboldt,Iowa,19091,39,1 +2020-06-20,Humboldt,Iowa,19091,39,1 +2020-06-21,Humboldt,Iowa,19091,40,1 +2020-06-22,Humboldt,Iowa,19091,41,1 +2020-06-23,Humboldt,Iowa,19091,42,1 +2020-06-24,Humboldt,Iowa,19091,44,1 +2020-06-25,Humboldt,Iowa,19091,46,1 +2020-06-26,Humboldt,Iowa,19091,45,1 +2020-06-27,Humboldt,Iowa,19091,45,1 +2020-06-28,Humboldt,Iowa,19091,46,1 +2020-06-29,Humboldt,Iowa,19091,48,1 +2020-06-30,Humboldt,Iowa,19091,48,1 +2020-07-01,Humboldt,Iowa,19091,52,1 +2020-07-02,Humboldt,Iowa,19091,53,1 +2020-07-03,Humboldt,Iowa,19091,53,1 +2020-07-04,Humboldt,Iowa,19091,54,1 +2020-07-05,Humboldt,Iowa,19091,54,1 +2020-07-06,Humboldt,Iowa,19091,55,1 +2020-07-07,Humboldt,Iowa,19091,55,1 +2020-07-08,Humboldt,Iowa,19091,57,1 +2020-07-09,Humboldt,Iowa,19091,59,1 +2020-05-12,Ida,Iowa,19093,1,0 +2020-05-13,Ida,Iowa,19093,2,0 +2020-05-14,Ida,Iowa,19093,2,0 +2020-05-15,Ida,Iowa,19093,4,0 +2020-05-16,Ida,Iowa,19093,3,0 +2020-05-17,Ida,Iowa,19093,3,0 +2020-05-18,Ida,Iowa,19093,7,0 +2020-05-19,Ida,Iowa,19093,8,0 +2020-05-20,Ida,Iowa,19093,8,0 +2020-05-21,Ida,Iowa,19093,8,0 +2020-05-22,Ida,Iowa,19093,8,0 +2020-05-23,Ida,Iowa,19093,8,0 +2020-05-24,Ida,Iowa,19093,13,0 +2020-05-25,Ida,Iowa,19093,13,0 +2020-05-26,Ida,Iowa,19093,14,0 +2020-05-27,Ida,Iowa,19093,14,0 +2020-05-28,Ida,Iowa,19093,14,0 +2020-05-29,Ida,Iowa,19093,14,0 +2020-05-30,Ida,Iowa,19093,14,0 +2020-05-31,Ida,Iowa,19093,14,0 +2020-06-01,Ida,Iowa,19093,14,0 +2020-06-02,Ida,Iowa,19093,14,0 +2020-06-03,Ida,Iowa,19093,14,0 +2020-06-04,Ida,Iowa,19093,15,0 +2020-06-05,Ida,Iowa,19093,15,0 +2020-06-06,Ida,Iowa,19093,15,0 +2020-06-07,Ida,Iowa,19093,15,0 +2020-06-08,Ida,Iowa,19093,15,0 +2020-06-09,Ida,Iowa,19093,15,0 +2020-06-10,Ida,Iowa,19093,16,0 +2020-06-11,Ida,Iowa,19093,17,0 +2020-06-12,Ida,Iowa,19093,17,0 +2020-06-13,Ida,Iowa,19093,18,0 +2020-06-14,Ida,Iowa,19093,18,0 +2020-06-15,Ida,Iowa,19093,18,0 +2020-06-16,Ida,Iowa,19093,19,0 +2020-06-17,Ida,Iowa,19093,19,0 +2020-06-18,Ida,Iowa,19093,19,0 +2020-06-19,Ida,Iowa,19093,19,0 +2020-06-20,Ida,Iowa,19093,19,0 +2020-06-21,Ida,Iowa,19093,20,0 +2020-06-22,Ida,Iowa,19093,20,0 +2020-06-23,Ida,Iowa,19093,21,0 +2020-06-24,Ida,Iowa,19093,21,0 +2020-06-25,Ida,Iowa,19093,21,0 +2020-06-26,Ida,Iowa,19093,21,0 +2020-06-27,Ida,Iowa,19093,21,0 +2020-06-28,Ida,Iowa,19093,21,0 +2020-06-29,Ida,Iowa,19093,21,0 +2020-06-30,Ida,Iowa,19093,22,0 +2020-07-01,Ida,Iowa,19093,22,0 +2020-07-02,Ida,Iowa,19093,23,0 +2020-07-03,Ida,Iowa,19093,23,0 +2020-07-04,Ida,Iowa,19093,23,0 +2020-07-05,Ida,Iowa,19093,24,0 +2020-07-06,Ida,Iowa,19093,24,0 +2020-07-07,Ida,Iowa,19093,23,0 +2020-07-08,Ida,Iowa,19093,23,0 +2020-07-09,Ida,Iowa,19093,23,0 +2020-03-27,Iowa,Iowa,19095,1,0 +2020-03-28,Iowa,Iowa,19095,1,0 +2020-03-29,Iowa,Iowa,19095,2,0 +2020-03-30,Iowa,Iowa,19095,3,0 +2020-03-31,Iowa,Iowa,19095,4,0 +2020-04-01,Iowa,Iowa,19095,5,0 +2020-04-02,Iowa,Iowa,19095,5,0 +2020-04-03,Iowa,Iowa,19095,5,0 +2020-04-04,Iowa,Iowa,19095,6,0 +2020-04-05,Iowa,Iowa,19095,6,0 +2020-04-06,Iowa,Iowa,19095,6,0 +2020-04-07,Iowa,Iowa,19095,6,0 +2020-04-08,Iowa,Iowa,19095,6,0 +2020-04-09,Iowa,Iowa,19095,7,0 +2020-04-10,Iowa,Iowa,19095,7,0 +2020-04-11,Iowa,Iowa,19095,7,0 +2020-04-12,Iowa,Iowa,19095,7,0 +2020-04-13,Iowa,Iowa,19095,7,0 +2020-04-14,Iowa,Iowa,19095,7,0 +2020-04-15,Iowa,Iowa,19095,7,0 +2020-04-16,Iowa,Iowa,19095,8,0 +2020-04-17,Iowa,Iowa,19095,8,0 +2020-04-18,Iowa,Iowa,19095,10,0 +2020-04-19,Iowa,Iowa,19095,12,0 +2020-04-20,Iowa,Iowa,19095,13,0 +2020-04-21,Iowa,Iowa,19095,13,0 +2020-04-22,Iowa,Iowa,19095,13,0 +2020-04-23,Iowa,Iowa,19095,13,0 +2020-04-24,Iowa,Iowa,19095,14,0 +2020-04-25,Iowa,Iowa,19095,16,0 +2020-04-26,Iowa,Iowa,19095,17,0 +2020-04-27,Iowa,Iowa,19095,18,0 +2020-04-28,Iowa,Iowa,19095,19,0 +2020-04-29,Iowa,Iowa,19095,19,0 +2020-04-30,Iowa,Iowa,19095,19,0 +2020-05-01,Iowa,Iowa,19095,20,0 +2020-05-02,Iowa,Iowa,19095,20,0 +2020-05-03,Iowa,Iowa,19095,21,0 +2020-05-04,Iowa,Iowa,19095,22,0 +2020-05-05,Iowa,Iowa,19095,22,0 +2020-05-06,Iowa,Iowa,19095,24,0 +2020-05-07,Iowa,Iowa,19095,26,0 +2020-05-08,Iowa,Iowa,19095,27,0 +2020-05-09,Iowa,Iowa,19095,27,0 +2020-05-10,Iowa,Iowa,19095,24,0 +2020-05-11,Iowa,Iowa,19095,27,0 +2020-05-12,Iowa,Iowa,19095,26,0 +2020-05-13,Iowa,Iowa,19095,26,0 +2020-05-14,Iowa,Iowa,19095,28,0 +2020-05-15,Iowa,Iowa,19095,27,0 +2020-05-16,Iowa,Iowa,19095,28,0 +2020-05-17,Iowa,Iowa,19095,29,0 +2020-05-18,Iowa,Iowa,19095,29,0 +2020-05-19,Iowa,Iowa,19095,30,0 +2020-05-20,Iowa,Iowa,19095,32,0 +2020-05-21,Iowa,Iowa,19095,32,0 +2020-05-22,Iowa,Iowa,19095,32,0 +2020-05-23,Iowa,Iowa,19095,32,0 +2020-05-24,Iowa,Iowa,19095,33,0 +2020-05-25,Iowa,Iowa,19095,33,0 +2020-05-26,Iowa,Iowa,19095,33,0 +2020-05-27,Iowa,Iowa,19095,35,0 +2020-05-28,Iowa,Iowa,19095,33,0 +2020-05-29,Iowa,Iowa,19095,33,0 +2020-05-30,Iowa,Iowa,19095,33,0 +2020-05-31,Iowa,Iowa,19095,33,0 +2020-06-01,Iowa,Iowa,19095,33,0 +2020-06-02,Iowa,Iowa,19095,33,0 +2020-06-03,Iowa,Iowa,19095,33,0 +2020-06-04,Iowa,Iowa,19095,33,0 +2020-06-05,Iowa,Iowa,19095,33,0 +2020-06-06,Iowa,Iowa,19095,33,0 +2020-06-07,Iowa,Iowa,19095,33,0 +2020-06-08,Iowa,Iowa,19095,33,0 +2020-06-09,Iowa,Iowa,19095,33,0 +2020-06-10,Iowa,Iowa,19095,34,0 +2020-06-11,Iowa,Iowa,19095,34,0 +2020-06-12,Iowa,Iowa,19095,34,0 +2020-06-13,Iowa,Iowa,19095,34,0 +2020-06-14,Iowa,Iowa,19095,34,0 +2020-06-15,Iowa,Iowa,19095,34,0 +2020-06-16,Iowa,Iowa,19095,34,0 +2020-06-17,Iowa,Iowa,19095,35,0 +2020-06-18,Iowa,Iowa,19095,35,0 +2020-06-19,Iowa,Iowa,19095,35,0 +2020-06-20,Iowa,Iowa,19095,35,0 +2020-06-21,Iowa,Iowa,19095,39,0 +2020-06-22,Iowa,Iowa,19095,40,0 +2020-06-23,Iowa,Iowa,19095,40,0 +2020-06-24,Iowa,Iowa,19095,40,0 +2020-06-25,Iowa,Iowa,19095,41,0 +2020-06-26,Iowa,Iowa,19095,47,0 +2020-06-27,Iowa,Iowa,19095,47,0 +2020-06-28,Iowa,Iowa,19095,47,0 +2020-06-29,Iowa,Iowa,19095,47,0 +2020-06-30,Iowa,Iowa,19095,48,0 +2020-07-01,Iowa,Iowa,19095,50,0 +2020-07-02,Iowa,Iowa,19095,51,0 +2020-07-03,Iowa,Iowa,19095,51,0 +2020-07-04,Iowa,Iowa,19095,51,0 +2020-07-05,Iowa,Iowa,19095,51,0 +2020-07-06,Iowa,Iowa,19095,53,0 +2020-07-07,Iowa,Iowa,19095,53,0 +2020-07-08,Iowa,Iowa,19095,61,1 +2020-07-09,Iowa,Iowa,19095,62,1 +2020-03-30,Jackson,Iowa,19097,1,0 +2020-03-31,Jackson,Iowa,19097,1,0 +2020-04-01,Jackson,Iowa,19097,1,0 +2020-04-02,Jackson,Iowa,19097,1,0 +2020-04-03,Jackson,Iowa,19097,2,0 +2020-04-04,Jackson,Iowa,19097,3,0 +2020-04-05,Jackson,Iowa,19097,3,0 +2020-04-06,Jackson,Iowa,19097,4,0 +2020-04-07,Jackson,Iowa,19097,4,0 +2020-04-08,Jackson,Iowa,19097,4,0 +2020-04-09,Jackson,Iowa,19097,4,0 +2020-04-10,Jackson,Iowa,19097,4,0 +2020-04-11,Jackson,Iowa,19097,4,0 +2020-04-12,Jackson,Iowa,19097,4,0 +2020-04-13,Jackson,Iowa,19097,4,0 +2020-04-14,Jackson,Iowa,19097,4,0 +2020-04-15,Jackson,Iowa,19097,4,0 +2020-04-16,Jackson,Iowa,19097,4,0 +2020-04-17,Jackson,Iowa,19097,4,0 +2020-04-18,Jackson,Iowa,19097,4,0 +2020-04-19,Jackson,Iowa,19097,4,0 +2020-04-20,Jackson,Iowa,19097,5,0 +2020-04-21,Jackson,Iowa,19097,5,0 +2020-04-22,Jackson,Iowa,19097,5,0 +2020-04-23,Jackson,Iowa,19097,5,0 +2020-04-24,Jackson,Iowa,19097,5,0 +2020-04-25,Jackson,Iowa,19097,5,0 +2020-04-26,Jackson,Iowa,19097,5,0 +2020-04-27,Jackson,Iowa,19097,5,0 +2020-04-28,Jackson,Iowa,19097,5,0 +2020-04-29,Jackson,Iowa,19097,5,0 +2020-04-30,Jackson,Iowa,19097,5,0 +2020-05-01,Jackson,Iowa,19097,5,0 +2020-05-02,Jackson,Iowa,19097,5,0 +2020-05-03,Jackson,Iowa,19097,6,0 +2020-05-04,Jackson,Iowa,19097,5,0 +2020-05-05,Jackson,Iowa,19097,5,0 +2020-05-06,Jackson,Iowa,19097,5,0 +2020-05-07,Jackson,Iowa,19097,7,0 +2020-05-08,Jackson,Iowa,19097,7,0 +2020-05-09,Jackson,Iowa,19097,7,0 +2020-05-10,Jackson,Iowa,19097,7,0 +2020-05-11,Jackson,Iowa,19097,7,0 +2020-05-12,Jackson,Iowa,19097,7,0 +2020-05-13,Jackson,Iowa,19097,7,0 +2020-05-14,Jackson,Iowa,19097,7,0 +2020-05-15,Jackson,Iowa,19097,8,0 +2020-05-16,Jackson,Iowa,19097,8,0 +2020-05-17,Jackson,Iowa,19097,8,0 +2020-05-18,Jackson,Iowa,19097,8,0 +2020-05-19,Jackson,Iowa,19097,8,0 +2020-05-20,Jackson,Iowa,19097,8,0 +2020-05-21,Jackson,Iowa,19097,8,0 +2020-05-22,Jackson,Iowa,19097,9,0 +2020-05-23,Jackson,Iowa,19097,9,0 +2020-05-24,Jackson,Iowa,19097,11,0 +2020-05-25,Jackson,Iowa,19097,12,0 +2020-05-26,Jackson,Iowa,19097,12,0 +2020-05-27,Jackson,Iowa,19097,11,0 +2020-05-28,Jackson,Iowa,19097,12,0 +2020-05-29,Jackson,Iowa,19097,12,0 +2020-05-30,Jackson,Iowa,19097,12,0 +2020-05-31,Jackson,Iowa,19097,12,0 +2020-06-01,Jackson,Iowa,19097,12,0 +2020-06-02,Jackson,Iowa,19097,12,0 +2020-06-03,Jackson,Iowa,19097,13,0 +2020-06-04,Jackson,Iowa,19097,13,0 +2020-06-05,Jackson,Iowa,19097,14,0 +2020-06-06,Jackson,Iowa,19097,14,0 +2020-06-07,Jackson,Iowa,19097,14,0 +2020-06-08,Jackson,Iowa,19097,14,0 +2020-06-09,Jackson,Iowa,19097,14,0 +2020-06-10,Jackson,Iowa,19097,14,0 +2020-06-11,Jackson,Iowa,19097,14,0 +2020-06-12,Jackson,Iowa,19097,14,0 +2020-06-13,Jackson,Iowa,19097,14,0 +2020-06-14,Jackson,Iowa,19097,14,0 +2020-06-15,Jackson,Iowa,19097,14,0 +2020-06-16,Jackson,Iowa,19097,14,0 +2020-06-17,Jackson,Iowa,19097,14,0 +2020-06-18,Jackson,Iowa,19097,15,0 +2020-06-19,Jackson,Iowa,19097,15,0 +2020-06-20,Jackson,Iowa,19097,17,0 +2020-06-21,Jackson,Iowa,19097,19,0 +2020-06-22,Jackson,Iowa,19097,19,0 +2020-06-23,Jackson,Iowa,19097,19,0 +2020-06-24,Jackson,Iowa,19097,21,0 +2020-06-25,Jackson,Iowa,19097,21,0 +2020-06-26,Jackson,Iowa,19097,23,0 +2020-06-27,Jackson,Iowa,19097,23,0 +2020-06-28,Jackson,Iowa,19097,23,0 +2020-06-29,Jackson,Iowa,19097,23,0 +2020-06-30,Jackson,Iowa,19097,24,0 +2020-07-01,Jackson,Iowa,19097,26,0 +2020-07-02,Jackson,Iowa,19097,27,0 +2020-07-03,Jackson,Iowa,19097,27,0 +2020-07-04,Jackson,Iowa,19097,29,0 +2020-07-05,Jackson,Iowa,19097,32,0 +2020-07-06,Jackson,Iowa,19097,32,0 +2020-07-07,Jackson,Iowa,19097,34,0 +2020-07-08,Jackson,Iowa,19097,39,0 +2020-07-09,Jackson,Iowa,19097,48,0 +2020-03-24,Jasper,Iowa,19099,1,0 +2020-03-25,Jasper,Iowa,19099,1,0 +2020-03-26,Jasper,Iowa,19099,2,0 +2020-03-27,Jasper,Iowa,19099,2,0 +2020-03-28,Jasper,Iowa,19099,3,0 +2020-03-29,Jasper,Iowa,19099,4,0 +2020-03-30,Jasper,Iowa,19099,5,0 +2020-03-31,Jasper,Iowa,19099,6,0 +2020-04-01,Jasper,Iowa,19099,7,0 +2020-04-02,Jasper,Iowa,19099,7,0 +2020-04-03,Jasper,Iowa,19099,8,0 +2020-04-04,Jasper,Iowa,19099,8,0 +2020-04-05,Jasper,Iowa,19099,8,0 +2020-04-06,Jasper,Iowa,19099,8,0 +2020-04-07,Jasper,Iowa,19099,8,0 +2020-04-08,Jasper,Iowa,19099,8,0 +2020-04-09,Jasper,Iowa,19099,9,0 +2020-04-10,Jasper,Iowa,19099,10,0 +2020-04-11,Jasper,Iowa,19099,10,0 +2020-04-12,Jasper,Iowa,19099,11,0 +2020-04-13,Jasper,Iowa,19099,12,0 +2020-04-14,Jasper,Iowa,19099,15,0 +2020-04-15,Jasper,Iowa,19099,17,0 +2020-04-16,Jasper,Iowa,19099,23,0 +2020-04-17,Jasper,Iowa,19099,28,0 +2020-04-18,Jasper,Iowa,19099,33,0 +2020-04-19,Jasper,Iowa,19099,36,0 +2020-04-20,Jasper,Iowa,19099,42,0 +2020-04-21,Jasper,Iowa,19099,53,0 +2020-04-22,Jasper,Iowa,19099,53,0 +2020-04-23,Jasper,Iowa,19099,55,0 +2020-04-24,Jasper,Iowa,19099,73,0 +2020-04-25,Jasper,Iowa,19099,79,0 +2020-04-26,Jasper,Iowa,19099,83,0 +2020-04-27,Jasper,Iowa,19099,91,0 +2020-04-28,Jasper,Iowa,19099,109,0 +2020-04-29,Jasper,Iowa,19099,130,1 +2020-04-30,Jasper,Iowa,19099,130,1 +2020-05-01,Jasper,Iowa,19099,155,1 +2020-05-02,Jasper,Iowa,19099,175,1 +2020-05-03,Jasper,Iowa,19099,193,1 +2020-05-04,Jasper,Iowa,19099,210,2 +2020-05-05,Jasper,Iowa,19099,219,3 +2020-05-06,Jasper,Iowa,19099,220,5 +2020-05-07,Jasper,Iowa,19099,229,5 +2020-05-08,Jasper,Iowa,19099,235,6 +2020-05-09,Jasper,Iowa,19099,238,8 +2020-05-10,Jasper,Iowa,19099,238,8 +2020-05-11,Jasper,Iowa,19099,238,8 +2020-05-12,Jasper,Iowa,19099,239,8 +2020-05-13,Jasper,Iowa,19099,239,10 +2020-05-14,Jasper,Iowa,19099,240,11 +2020-05-15,Jasper,Iowa,19099,241,11 +2020-05-16,Jasper,Iowa,19099,242,12 +2020-05-17,Jasper,Iowa,19099,247,12 +2020-05-18,Jasper,Iowa,19099,249,13 +2020-05-19,Jasper,Iowa,19099,250,14 +2020-05-20,Jasper,Iowa,19099,251,14 +2020-05-21,Jasper,Iowa,19099,251,15 +2020-05-22,Jasper,Iowa,19099,250,15 +2020-05-23,Jasper,Iowa,19099,250,15 +2020-05-24,Jasper,Iowa,19099,256,16 +2020-05-25,Jasper,Iowa,19099,256,16 +2020-05-26,Jasper,Iowa,19099,257,16 +2020-05-27,Jasper,Iowa,19099,258,16 +2020-05-28,Jasper,Iowa,19099,260,16 +2020-05-29,Jasper,Iowa,19099,260,16 +2020-05-30,Jasper,Iowa,19099,261,16 +2020-05-31,Jasper,Iowa,19099,260,16 +2020-06-01,Jasper,Iowa,19099,260,17 +2020-06-02,Jasper,Iowa,19099,261,17 +2020-06-03,Jasper,Iowa,19099,263,17 +2020-06-04,Jasper,Iowa,19099,269,17 +2020-06-05,Jasper,Iowa,19099,269,17 +2020-06-06,Jasper,Iowa,19099,271,17 +2020-06-07,Jasper,Iowa,19099,274,17 +2020-06-08,Jasper,Iowa,19099,273,17 +2020-06-09,Jasper,Iowa,19099,275,17 +2020-06-10,Jasper,Iowa,19099,277,17 +2020-06-11,Jasper,Iowa,19099,278,17 +2020-06-12,Jasper,Iowa,19099,279,17 +2020-06-13,Jasper,Iowa,19099,280,17 +2020-06-14,Jasper,Iowa,19099,283,17 +2020-06-15,Jasper,Iowa,19099,282,17 +2020-06-16,Jasper,Iowa,19099,283,17 +2020-06-17,Jasper,Iowa,19099,287,17 +2020-06-18,Jasper,Iowa,19099,290,17 +2020-06-19,Jasper,Iowa,19099,290,17 +2020-06-20,Jasper,Iowa,19099,291,17 +2020-06-21,Jasper,Iowa,19099,296,17 +2020-06-22,Jasper,Iowa,19099,298,17 +2020-06-23,Jasper,Iowa,19099,304,17 +2020-06-24,Jasper,Iowa,19099,305,17 +2020-06-25,Jasper,Iowa,19099,305,17 +2020-06-26,Jasper,Iowa,19099,306,17 +2020-06-27,Jasper,Iowa,19099,309,17 +2020-06-28,Jasper,Iowa,19099,313,17 +2020-06-29,Jasper,Iowa,19099,315,17 +2020-06-30,Jasper,Iowa,19099,317,17 +2020-07-01,Jasper,Iowa,19099,318,17 +2020-07-02,Jasper,Iowa,19099,321,17 +2020-07-03,Jasper,Iowa,19099,321,17 +2020-07-04,Jasper,Iowa,19099,323,17 +2020-07-05,Jasper,Iowa,19099,324,17 +2020-07-06,Jasper,Iowa,19099,325,17 +2020-07-07,Jasper,Iowa,19099,325,17 +2020-07-08,Jasper,Iowa,19099,330,17 +2020-07-09,Jasper,Iowa,19099,332,17 +2020-04-02,Jefferson,Iowa,19101,1,0 +2020-04-03,Jefferson,Iowa,19101,2,0 +2020-04-04,Jefferson,Iowa,19101,3,0 +2020-04-05,Jefferson,Iowa,19101,3,0 +2020-04-06,Jefferson,Iowa,19101,3,0 +2020-04-07,Jefferson,Iowa,19101,3,0 +2020-04-08,Jefferson,Iowa,19101,3,0 +2020-04-09,Jefferson,Iowa,19101,3,0 +2020-04-10,Jefferson,Iowa,19101,3,0 +2020-04-11,Jefferson,Iowa,19101,4,0 +2020-04-12,Jefferson,Iowa,19101,4,0 +2020-04-13,Jefferson,Iowa,19101,4,0 +2020-04-14,Jefferson,Iowa,19101,4,0 +2020-04-15,Jefferson,Iowa,19101,4,0 +2020-04-16,Jefferson,Iowa,19101,4,0 +2020-04-17,Jefferson,Iowa,19101,4,0 +2020-04-18,Jefferson,Iowa,19101,4,0 +2020-04-19,Jefferson,Iowa,19101,4,0 +2020-04-20,Jefferson,Iowa,19101,6,0 +2020-04-21,Jefferson,Iowa,19101,7,0 +2020-04-22,Jefferson,Iowa,19101,7,0 +2020-04-23,Jefferson,Iowa,19101,7,0 +2020-04-24,Jefferson,Iowa,19101,6,0 +2020-04-25,Jefferson,Iowa,19101,6,0 +2020-04-26,Jefferson,Iowa,19101,6,0 +2020-04-27,Jefferson,Iowa,19101,6,0 +2020-04-28,Jefferson,Iowa,19101,6,0 +2020-04-29,Jefferson,Iowa,19101,6,0 +2020-04-30,Jefferson,Iowa,19101,6,0 +2020-05-01,Jefferson,Iowa,19101,6,0 +2020-05-02,Jefferson,Iowa,19101,6,0 +2020-05-03,Jefferson,Iowa,19101,6,0 +2020-05-04,Jefferson,Iowa,19101,6,0 +2020-05-05,Jefferson,Iowa,19101,6,0 +2020-05-06,Jefferson,Iowa,19101,6,0 +2020-05-07,Jefferson,Iowa,19101,6,0 +2020-05-08,Jefferson,Iowa,19101,6,0 +2020-05-09,Jefferson,Iowa,19101,6,0 +2020-05-10,Jefferson,Iowa,19101,6,0 +2020-05-11,Jefferson,Iowa,19101,7,0 +2020-05-12,Jefferson,Iowa,19101,8,0 +2020-05-13,Jefferson,Iowa,19101,9,0 +2020-05-14,Jefferson,Iowa,19101,9,0 +2020-05-15,Jefferson,Iowa,19101,10,0 +2020-05-16,Jefferson,Iowa,19101,12,0 +2020-05-17,Jefferson,Iowa,19101,12,0 +2020-05-18,Jefferson,Iowa,19101,12,0 +2020-05-19,Jefferson,Iowa,19101,12,0 +2020-05-20,Jefferson,Iowa,19101,13,0 +2020-05-21,Jefferson,Iowa,19101,14,0 +2020-05-22,Jefferson,Iowa,19101,14,0 +2020-05-23,Jefferson,Iowa,19101,14,0 +2020-05-24,Jefferson,Iowa,19101,15,0 +2020-05-25,Jefferson,Iowa,19101,18,0 +2020-05-26,Jefferson,Iowa,19101,18,0 +2020-05-27,Jefferson,Iowa,19101,19,0 +2020-05-28,Jefferson,Iowa,19101,20,0 +2020-05-29,Jefferson,Iowa,19101,21,0 +2020-05-30,Jefferson,Iowa,19101,26,0 +2020-05-31,Jefferson,Iowa,19101,29,0 +2020-06-01,Jefferson,Iowa,19101,30,0 +2020-06-02,Jefferson,Iowa,19101,34,0 +2020-06-03,Jefferson,Iowa,19101,33,0 +2020-06-04,Jefferson,Iowa,19101,35,0 +2020-06-05,Jefferson,Iowa,19101,36,0 +2020-06-06,Jefferson,Iowa,19101,36,0 +2020-06-07,Jefferson,Iowa,19101,37,0 +2020-06-08,Jefferson,Iowa,19101,38,0 +2020-06-09,Jefferson,Iowa,19101,40,0 +2020-06-10,Jefferson,Iowa,19101,43,0 +2020-06-11,Jefferson,Iowa,19101,43,0 +2020-06-12,Jefferson,Iowa,19101,44,0 +2020-06-13,Jefferson,Iowa,19101,45,0 +2020-06-14,Jefferson,Iowa,19101,45,0 +2020-06-15,Jefferson,Iowa,19101,48,0 +2020-06-16,Jefferson,Iowa,19101,46,0 +2020-06-17,Jefferson,Iowa,19101,46,0 +2020-06-18,Jefferson,Iowa,19101,46,0 +2020-06-19,Jefferson,Iowa,19101,46,0 +2020-06-20,Jefferson,Iowa,19101,46,0 +2020-06-21,Jefferson,Iowa,19101,47,0 +2020-06-22,Jefferson,Iowa,19101,49,0 +2020-06-23,Jefferson,Iowa,19101,49,0 +2020-06-24,Jefferson,Iowa,19101,49,0 +2020-06-25,Jefferson,Iowa,19101,50,0 +2020-06-26,Jefferson,Iowa,19101,50,0 +2020-06-27,Jefferson,Iowa,19101,50,0 +2020-06-28,Jefferson,Iowa,19101,50,0 +2020-06-29,Jefferson,Iowa,19101,52,0 +2020-06-30,Jefferson,Iowa,19101,53,0 +2020-07-01,Jefferson,Iowa,19101,55,0 +2020-07-02,Jefferson,Iowa,19101,58,0 +2020-07-03,Jefferson,Iowa,19101,59,0 +2020-07-04,Jefferson,Iowa,19101,60,0 +2020-07-05,Jefferson,Iowa,19101,64,0 +2020-07-06,Jefferson,Iowa,19101,64,0 +2020-07-07,Jefferson,Iowa,19101,62,0 +2020-07-08,Jefferson,Iowa,19101,62,0 +2020-07-09,Jefferson,Iowa,19101,62,0 +2020-03-08,Johnson,Iowa,19103,3,0 +2020-03-09,Johnson,Iowa,19103,7,0 +2020-03-10,Johnson,Iowa,19103,12,0 +2020-03-11,Johnson,Iowa,19103,13,0 +2020-03-12,Johnson,Iowa,19103,14,0 +2020-03-13,Johnson,Iowa,19103,14,0 +2020-03-14,Johnson,Iowa,19103,14,0 +2020-03-15,Johnson,Iowa,19103,15,0 +2020-03-16,Johnson,Iowa,19103,15,0 +2020-03-17,Johnson,Iowa,19103,18,0 +2020-03-18,Johnson,Iowa,19103,21,0 +2020-03-19,Johnson,Iowa,19103,22,0 +2020-03-20,Johnson,Iowa,19103,22,0 +2020-03-21,Johnson,Iowa,19103,27,0 +2020-03-22,Johnson,Iowa,19103,32,0 +2020-03-23,Johnson,Iowa,19103,35,0 +2020-03-24,Johnson,Iowa,19103,37,0 +2020-03-25,Johnson,Iowa,19103,43,0 +2020-03-26,Johnson,Iowa,19103,49,0 +2020-03-27,Johnson,Iowa,19103,58,0 +2020-03-28,Johnson,Iowa,19103,61,0 +2020-03-29,Johnson,Iowa,19103,65,0 +2020-03-30,Johnson,Iowa,19103,70,0 +2020-03-31,Johnson,Iowa,19103,73,0 +2020-04-01,Johnson,Iowa,19103,76,0 +2020-04-02,Johnson,Iowa,19103,80,0 +2020-04-03,Johnson,Iowa,19103,83,0 +2020-04-04,Johnson,Iowa,19103,96,0 +2020-04-05,Johnson,Iowa,19103,106,1 +2020-04-06,Johnson,Iowa,19103,118,1 +2020-04-07,Johnson,Iowa,19103,134,1 +2020-04-08,Johnson,Iowa,19103,147,1 +2020-04-09,Johnson,Iowa,19103,171,1 +2020-04-10,Johnson,Iowa,19103,185,1 +2020-04-11,Johnson,Iowa,19103,194,2 +2020-04-12,Johnson,Iowa,19103,203,2 +2020-04-13,Johnson,Iowa,19103,210,2 +2020-04-14,Johnson,Iowa,19103,216,2 +2020-04-15,Johnson,Iowa,19103,226,3 +2020-04-16,Johnson,Iowa,19103,234,3 +2020-04-17,Johnson,Iowa,19103,246,3 +2020-04-18,Johnson,Iowa,19103,265,3 +2020-04-19,Johnson,Iowa,19103,294,3 +2020-04-20,Johnson,Iowa,19103,311,3 +2020-04-21,Johnson,Iowa,19103,380,3 +2020-04-22,Johnson,Iowa,19103,396,3 +2020-04-23,Johnson,Iowa,19103,399,3 +2020-04-24,Johnson,Iowa,19103,418,3 +2020-04-25,Johnson,Iowa,19103,426,4 +2020-04-26,Johnson,Iowa,19103,434,6 +2020-04-27,Johnson,Iowa,19103,437,6 +2020-04-28,Johnson,Iowa,19103,448,6 +2020-04-29,Johnson,Iowa,19103,453,6 +2020-04-30,Johnson,Iowa,19103,461,6 +2020-05-01,Johnson,Iowa,19103,475,6 +2020-05-02,Johnson,Iowa,19103,487,6 +2020-05-03,Johnson,Iowa,19103,498,6 +2020-05-04,Johnson,Iowa,19103,505,6 +2020-05-05,Johnson,Iowa,19103,518,6 +2020-05-06,Johnson,Iowa,19103,530,6 +2020-05-07,Johnson,Iowa,19103,543,6 +2020-05-08,Johnson,Iowa,19103,546,6 +2020-05-09,Johnson,Iowa,19103,549,7 +2020-05-10,Johnson,Iowa,19103,551,7 +2020-05-11,Johnson,Iowa,19103,555,7 +2020-05-12,Johnson,Iowa,19103,559,7 +2020-05-13,Johnson,Iowa,19103,558,7 +2020-05-14,Johnson,Iowa,19103,562,7 +2020-05-15,Johnson,Iowa,19103,565,7 +2020-05-16,Johnson,Iowa,19103,567,7 +2020-05-17,Johnson,Iowa,19103,569,7 +2020-05-18,Johnson,Iowa,19103,574,7 +2020-05-19,Johnson,Iowa,19103,574,7 +2020-05-20,Johnson,Iowa,19103,579,7 +2020-05-21,Johnson,Iowa,19103,585,7 +2020-05-22,Johnson,Iowa,19103,591,7 +2020-05-23,Johnson,Iowa,19103,591,7 +2020-05-24,Johnson,Iowa,19103,599,7 +2020-05-25,Johnson,Iowa,19103,603,7 +2020-05-26,Johnson,Iowa,19103,605,7 +2020-05-27,Johnson,Iowa,19103,607,8 +2020-05-28,Johnson,Iowa,19103,607,8 +2020-05-29,Johnson,Iowa,19103,612,9 +2020-05-30,Johnson,Iowa,19103,614,9 +2020-05-31,Johnson,Iowa,19103,615,9 +2020-06-01,Johnson,Iowa,19103,614,9 +2020-06-02,Johnson,Iowa,19103,615,9 +2020-06-03,Johnson,Iowa,19103,616,9 +2020-06-04,Johnson,Iowa,19103,619,9 +2020-06-05,Johnson,Iowa,19103,622,8 +2020-06-06,Johnson,Iowa,19103,625,8 +2020-06-07,Johnson,Iowa,19103,626,8 +2020-06-08,Johnson,Iowa,19103,627,8 +2020-06-09,Johnson,Iowa,19103,630,8 +2020-06-10,Johnson,Iowa,19103,625,8 +2020-06-11,Johnson,Iowa,19103,630,8 +2020-06-12,Johnson,Iowa,19103,636,8 +2020-06-13,Johnson,Iowa,19103,638,8 +2020-06-14,Johnson,Iowa,19103,638,8 +2020-06-15,Johnson,Iowa,19103,644,8 +2020-06-16,Johnson,Iowa,19103,653,8 +2020-06-17,Johnson,Iowa,19103,674,8 +2020-06-18,Johnson,Iowa,19103,696,8 +2020-06-19,Johnson,Iowa,19103,721,8 +2020-06-20,Johnson,Iowa,19103,725,8 +2020-06-21,Johnson,Iowa,19103,760,8 +2020-06-22,Johnson,Iowa,19103,781,8 +2020-06-23,Johnson,Iowa,19103,811,8 +2020-06-24,Johnson,Iowa,19103,858,9 +2020-06-25,Johnson,Iowa,19103,914,9 +2020-06-26,Johnson,Iowa,19103,964,8 +2020-06-27,Johnson,Iowa,19103,1016,8 +2020-06-28,Johnson,Iowa,19103,1033,8 +2020-06-29,Johnson,Iowa,19103,1119,8 +2020-06-30,Johnson,Iowa,19103,1150,8 +2020-07-01,Johnson,Iowa,19103,1186,8 +2020-07-02,Johnson,Iowa,19103,1231,8 +2020-07-03,Johnson,Iowa,19103,1243,8 +2020-07-04,Johnson,Iowa,19103,1269,8 +2020-07-05,Johnson,Iowa,19103,1297,8 +2020-07-06,Johnson,Iowa,19103,1314,8 +2020-07-07,Johnson,Iowa,19103,1340,8 +2020-07-08,Johnson,Iowa,19103,1365,8 +2020-07-09,Johnson,Iowa,19103,1385,8 +2020-03-30,Jones,Iowa,19105,1,0 +2020-03-31,Jones,Iowa,19105,4,0 +2020-04-01,Jones,Iowa,19105,4,0 +2020-04-02,Jones,Iowa,19105,5,0 +2020-04-03,Jones,Iowa,19105,5,0 +2020-04-04,Jones,Iowa,19105,5,0 +2020-04-05,Jones,Iowa,19105,6,0 +2020-04-06,Jones,Iowa,19105,6,0 +2020-04-07,Jones,Iowa,19105,6,0 +2020-04-08,Jones,Iowa,19105,6,0 +2020-04-09,Jones,Iowa,19105,8,0 +2020-04-10,Jones,Iowa,19105,8,0 +2020-04-11,Jones,Iowa,19105,8,0 +2020-04-12,Jones,Iowa,19105,8,0 +2020-04-13,Jones,Iowa,19105,10,0 +2020-04-14,Jones,Iowa,19105,11,0 +2020-04-15,Jones,Iowa,19105,11,0 +2020-04-16,Jones,Iowa,19105,12,0 +2020-04-17,Jones,Iowa,19105,13,0 +2020-04-18,Jones,Iowa,19105,14,0 +2020-04-19,Jones,Iowa,19105,14,0 +2020-04-20,Jones,Iowa,19105,15,0 +2020-04-21,Jones,Iowa,19105,16,0 +2020-04-22,Jones,Iowa,19105,17,0 +2020-04-23,Jones,Iowa,19105,18,0 +2020-04-24,Jones,Iowa,19105,18,0 +2020-04-25,Jones,Iowa,19105,18,0 +2020-04-26,Jones,Iowa,19105,18,0 +2020-04-27,Jones,Iowa,19105,19,0 +2020-04-28,Jones,Iowa,19105,19,0 +2020-04-29,Jones,Iowa,19105,20,0 +2020-04-30,Jones,Iowa,19105,21,0 +2020-05-01,Jones,Iowa,19105,22,0 +2020-05-02,Jones,Iowa,19105,24,0 +2020-05-03,Jones,Iowa,19105,24,0 +2020-05-04,Jones,Iowa,19105,24,0 +2020-05-05,Jones,Iowa,19105,25,0 +2020-05-06,Jones,Iowa,19105,25,0 +2020-05-07,Jones,Iowa,19105,30,0 +2020-05-08,Jones,Iowa,19105,31,0 +2020-05-09,Jones,Iowa,19105,31,0 +2020-05-10,Jones,Iowa,19105,31,0 +2020-05-11,Jones,Iowa,19105,34,0 +2020-05-12,Jones,Iowa,19105,34,0 +2020-05-13,Jones,Iowa,19105,34,0 +2020-05-14,Jones,Iowa,19105,35,0 +2020-05-15,Jones,Iowa,19105,36,0 +2020-05-16,Jones,Iowa,19105,36,0 +2020-05-17,Jones,Iowa,19105,36,0 +2020-05-18,Jones,Iowa,19105,36,0 +2020-05-19,Jones,Iowa,19105,36,0 +2020-05-20,Jones,Iowa,19105,36,0 +2020-05-21,Jones,Iowa,19105,36,0 +2020-05-22,Jones,Iowa,19105,36,0 +2020-05-23,Jones,Iowa,19105,36,0 +2020-05-24,Jones,Iowa,19105,36,0 +2020-05-25,Jones,Iowa,19105,36,0 +2020-05-26,Jones,Iowa,19105,36,0 +2020-05-27,Jones,Iowa,19105,36,0 +2020-05-28,Jones,Iowa,19105,36,0 +2020-05-29,Jones,Iowa,19105,36,0 +2020-05-30,Jones,Iowa,19105,36,0 +2020-05-31,Jones,Iowa,19105,36,0 +2020-06-01,Jones,Iowa,19105,37,0 +2020-06-02,Jones,Iowa,19105,37,0 +2020-06-03,Jones,Iowa,19105,37,0 +2020-06-04,Jones,Iowa,19105,37,0 +2020-06-05,Jones,Iowa,19105,37,0 +2020-06-06,Jones,Iowa,19105,37,0 +2020-06-07,Jones,Iowa,19105,37,0 +2020-06-08,Jones,Iowa,19105,38,0 +2020-06-09,Jones,Iowa,19105,38,0 +2020-06-10,Jones,Iowa,19105,38,0 +2020-06-11,Jones,Iowa,19105,38,0 +2020-06-12,Jones,Iowa,19105,41,0 +2020-06-13,Jones,Iowa,19105,41,0 +2020-06-14,Jones,Iowa,19105,41,0 +2020-06-15,Jones,Iowa,19105,41,0 +2020-06-16,Jones,Iowa,19105,41,0 +2020-06-17,Jones,Iowa,19105,41,0 +2020-06-18,Jones,Iowa,19105,42,0 +2020-06-19,Jones,Iowa,19105,43,0 +2020-06-20,Jones,Iowa,19105,43,0 +2020-06-21,Jones,Iowa,19105,46,0 +2020-06-22,Jones,Iowa,19105,47,0 +2020-06-23,Jones,Iowa,19105,47,0 +2020-06-24,Jones,Iowa,19105,47,0 +2020-06-25,Jones,Iowa,19105,51,0 +2020-06-26,Jones,Iowa,19105,51,0 +2020-06-27,Jones,Iowa,19105,51,0 +2020-06-28,Jones,Iowa,19105,51,0 +2020-06-29,Jones,Iowa,19105,53,0 +2020-06-30,Jones,Iowa,19105,54,0 +2020-07-01,Jones,Iowa,19105,55,0 +2020-07-02,Jones,Iowa,19105,56,0 +2020-07-03,Jones,Iowa,19105,56,0 +2020-07-04,Jones,Iowa,19105,56,0 +2020-07-05,Jones,Iowa,19105,60,0 +2020-07-06,Jones,Iowa,19105,61,0 +2020-07-07,Jones,Iowa,19105,64,0 +2020-07-08,Jones,Iowa,19105,65,0 +2020-07-09,Jones,Iowa,19105,68,0 +2020-03-28,Keokuk,Iowa,19107,1,0 +2020-03-29,Keokuk,Iowa,19107,1,0 +2020-03-30,Keokuk,Iowa,19107,1,0 +2020-03-31,Keokuk,Iowa,19107,2,0 +2020-04-01,Keokuk,Iowa,19107,2,0 +2020-04-02,Keokuk,Iowa,19107,1,0 +2020-04-03,Keokuk,Iowa,19107,1,0 +2020-04-04,Keokuk,Iowa,19107,2,0 +2020-04-05,Keokuk,Iowa,19107,2,0 +2020-04-06,Keokuk,Iowa,19107,2,0 +2020-04-07,Keokuk,Iowa,19107,2,0 +2020-04-08,Keokuk,Iowa,19107,2,0 +2020-04-09,Keokuk,Iowa,19107,2,0 +2020-04-10,Keokuk,Iowa,19107,2,0 +2020-04-11,Keokuk,Iowa,19107,2,0 +2020-04-12,Keokuk,Iowa,19107,2,0 +2020-04-13,Keokuk,Iowa,19107,2,0 +2020-04-14,Keokuk,Iowa,19107,2,0 +2020-04-15,Keokuk,Iowa,19107,2,0 +2020-04-16,Keokuk,Iowa,19107,2,0 +2020-04-17,Keokuk,Iowa,19107,2,0 +2020-04-18,Keokuk,Iowa,19107,4,0 +2020-04-19,Keokuk,Iowa,19107,3,0 +2020-04-20,Keokuk,Iowa,19107,3,0 +2020-04-21,Keokuk,Iowa,19107,3,0 +2020-04-22,Keokuk,Iowa,19107,3,0 +2020-04-23,Keokuk,Iowa,19107,3,0 +2020-04-24,Keokuk,Iowa,19107,3,0 +2020-04-25,Keokuk,Iowa,19107,4,0 +2020-04-26,Keokuk,Iowa,19107,2,0 +2020-04-27,Keokuk,Iowa,19107,2,0 +2020-04-28,Keokuk,Iowa,19107,2,0 +2020-04-29,Keokuk,Iowa,19107,2,0 +2020-04-30,Keokuk,Iowa,19107,2,0 +2020-05-01,Keokuk,Iowa,19107,3,0 +2020-05-02,Keokuk,Iowa,19107,3,0 +2020-05-03,Keokuk,Iowa,19107,3,0 +2020-05-04,Keokuk,Iowa,19107,3,0 +2020-05-05,Keokuk,Iowa,19107,3,0 +2020-05-06,Keokuk,Iowa,19107,3,0 +2020-05-07,Keokuk,Iowa,19107,6,0 +2020-05-08,Keokuk,Iowa,19107,7,0 +2020-05-09,Keokuk,Iowa,19107,7,0 +2020-05-10,Keokuk,Iowa,19107,7,0 +2020-05-11,Keokuk,Iowa,19107,9,0 +2020-05-12,Keokuk,Iowa,19107,9,0 +2020-05-13,Keokuk,Iowa,19107,9,0 +2020-05-14,Keokuk,Iowa,19107,9,0 +2020-05-15,Keokuk,Iowa,19107,9,0 +2020-05-16,Keokuk,Iowa,19107,10,0 +2020-05-17,Keokuk,Iowa,19107,11,0 +2020-05-18,Keokuk,Iowa,19107,11,0 +2020-05-19,Keokuk,Iowa,19107,12,0 +2020-05-20,Keokuk,Iowa,19107,13,0 +2020-05-21,Keokuk,Iowa,19107,13,0 +2020-05-22,Keokuk,Iowa,19107,13,0 +2020-05-23,Keokuk,Iowa,19107,13,0 +2020-05-24,Keokuk,Iowa,19107,14,0 +2020-05-25,Keokuk,Iowa,19107,14,0 +2020-05-26,Keokuk,Iowa,19107,14,0 +2020-05-27,Keokuk,Iowa,19107,14,0 +2020-05-28,Keokuk,Iowa,19107,14,0 +2020-05-29,Keokuk,Iowa,19107,14,0 +2020-05-30,Keokuk,Iowa,19107,15,0 +2020-05-31,Keokuk,Iowa,19107,15,0 +2020-06-01,Keokuk,Iowa,19107,14,0 +2020-06-02,Keokuk,Iowa,19107,14,0 +2020-06-03,Keokuk,Iowa,19107,14,0 +2020-06-04,Keokuk,Iowa,19107,14,0 +2020-06-05,Keokuk,Iowa,19107,15,0 +2020-06-06,Keokuk,Iowa,19107,15,0 +2020-06-07,Keokuk,Iowa,19107,15,0 +2020-06-08,Keokuk,Iowa,19107,16,0 +2020-06-09,Keokuk,Iowa,19107,15,0 +2020-06-10,Keokuk,Iowa,19107,17,0 +2020-06-11,Keokuk,Iowa,19107,15,0 +2020-06-12,Keokuk,Iowa,19107,15,0 +2020-06-13,Keokuk,Iowa,19107,15,0 +2020-06-14,Keokuk,Iowa,19107,15,0 +2020-06-15,Keokuk,Iowa,19107,15,0 +2020-06-16,Keokuk,Iowa,19107,16,1 +2020-06-17,Keokuk,Iowa,19107,16,1 +2020-06-18,Keokuk,Iowa,19107,16,1 +2020-06-19,Keokuk,Iowa,19107,16,1 +2020-06-20,Keokuk,Iowa,19107,16,1 +2020-06-21,Keokuk,Iowa,19107,16,1 +2020-06-22,Keokuk,Iowa,19107,16,1 +2020-06-23,Keokuk,Iowa,19107,17,1 +2020-06-24,Keokuk,Iowa,19107,18,1 +2020-06-25,Keokuk,Iowa,19107,19,1 +2020-06-26,Keokuk,Iowa,19107,19,1 +2020-06-27,Keokuk,Iowa,19107,19,1 +2020-06-28,Keokuk,Iowa,19107,19,1 +2020-06-29,Keokuk,Iowa,19107,19,1 +2020-06-30,Keokuk,Iowa,19107,19,1 +2020-07-01,Keokuk,Iowa,19107,19,1 +2020-07-02,Keokuk,Iowa,19107,20,1 +2020-07-03,Keokuk,Iowa,19107,20,1 +2020-07-04,Keokuk,Iowa,19107,20,1 +2020-07-05,Keokuk,Iowa,19107,21,1 +2020-07-06,Keokuk,Iowa,19107,21,1 +2020-07-07,Keokuk,Iowa,19107,21,1 +2020-07-08,Keokuk,Iowa,19107,20,1 +2020-07-09,Keokuk,Iowa,19107,21,1 +2020-03-22,Kossuth,Iowa,19109,1,0 +2020-03-23,Kossuth,Iowa,19109,1,0 +2020-03-24,Kossuth,Iowa,19109,1,0 +2020-03-25,Kossuth,Iowa,19109,1,0 +2020-03-26,Kossuth,Iowa,19109,1,0 +2020-03-27,Kossuth,Iowa,19109,1,0 +2020-03-28,Kossuth,Iowa,19109,1,0 +2020-03-29,Kossuth,Iowa,19109,1,0 +2020-03-30,Kossuth,Iowa,19109,1,0 +2020-03-31,Kossuth,Iowa,19109,1,0 +2020-04-01,Kossuth,Iowa,19109,1,0 +2020-04-02,Kossuth,Iowa,19109,1,0 +2020-04-03,Kossuth,Iowa,19109,1,0 +2020-04-04,Kossuth,Iowa,19109,1,0 +2020-04-05,Kossuth,Iowa,19109,1,0 +2020-04-06,Kossuth,Iowa,19109,1,0 +2020-04-07,Kossuth,Iowa,19109,1,0 +2020-04-08,Kossuth,Iowa,19109,1,0 +2020-04-09,Kossuth,Iowa,19109,1,0 +2020-04-10,Kossuth,Iowa,19109,1,0 +2020-04-11,Kossuth,Iowa,19109,1,0 +2020-04-12,Kossuth,Iowa,19109,1,0 +2020-04-13,Kossuth,Iowa,19109,1,0 +2020-04-14,Kossuth,Iowa,19109,1,0 +2020-04-15,Kossuth,Iowa,19109,1,0 +2020-04-16,Kossuth,Iowa,19109,1,0 +2020-04-17,Kossuth,Iowa,19109,1,0 +2020-04-18,Kossuth,Iowa,19109,1,0 +2020-04-19,Kossuth,Iowa,19109,1,0 +2020-04-20,Kossuth,Iowa,19109,1,0 +2020-04-21,Kossuth,Iowa,19109,1,0 +2020-04-22,Kossuth,Iowa,19109,1,0 +2020-04-23,Kossuth,Iowa,19109,1,0 +2020-04-24,Kossuth,Iowa,19109,1,0 +2020-04-25,Kossuth,Iowa,19109,1,0 +2020-04-26,Kossuth,Iowa,19109,1,0 +2020-04-27,Kossuth,Iowa,19109,1,0 +2020-04-28,Kossuth,Iowa,19109,1,0 +2020-04-29,Kossuth,Iowa,19109,1,0 +2020-04-30,Kossuth,Iowa,19109,2,0 +2020-05-01,Kossuth,Iowa,19109,2,0 +2020-05-02,Kossuth,Iowa,19109,2,0 +2020-05-03,Kossuth,Iowa,19109,2,0 +2020-05-04,Kossuth,Iowa,19109,2,0 +2020-05-05,Kossuth,Iowa,19109,2,0 +2020-05-06,Kossuth,Iowa,19109,2,0 +2020-05-07,Kossuth,Iowa,19109,2,0 +2020-05-08,Kossuth,Iowa,19109,2,0 +2020-05-09,Kossuth,Iowa,19109,2,0 +2020-05-10,Kossuth,Iowa,19109,2,0 +2020-05-11,Kossuth,Iowa,19109,2,0 +2020-05-12,Kossuth,Iowa,19109,2,0 +2020-05-13,Kossuth,Iowa,19109,2,0 +2020-05-14,Kossuth,Iowa,19109,2,0 +2020-05-15,Kossuth,Iowa,19109,2,0 +2020-05-16,Kossuth,Iowa,19109,2,0 +2020-05-17,Kossuth,Iowa,19109,3,0 +2020-05-18,Kossuth,Iowa,19109,5,0 +2020-05-19,Kossuth,Iowa,19109,4,0 +2020-05-20,Kossuth,Iowa,19109,7,0 +2020-05-21,Kossuth,Iowa,19109,7,0 +2020-05-22,Kossuth,Iowa,19109,7,0 +2020-05-23,Kossuth,Iowa,19109,7,0 +2020-05-24,Kossuth,Iowa,19109,7,0 +2020-05-25,Kossuth,Iowa,19109,7,0 +2020-05-26,Kossuth,Iowa,19109,8,0 +2020-05-27,Kossuth,Iowa,19109,9,0 +2020-05-28,Kossuth,Iowa,19109,9,0 +2020-05-29,Kossuth,Iowa,19109,9,0 +2020-05-30,Kossuth,Iowa,19109,9,0 +2020-05-31,Kossuth,Iowa,19109,10,0 +2020-06-01,Kossuth,Iowa,19109,11,0 +2020-06-02,Kossuth,Iowa,19109,12,0 +2020-06-03,Kossuth,Iowa,19109,13,0 +2020-06-04,Kossuth,Iowa,19109,15,0 +2020-06-05,Kossuth,Iowa,19109,16,0 +2020-06-06,Kossuth,Iowa,19109,16,0 +2020-06-07,Kossuth,Iowa,19109,16,0 +2020-06-08,Kossuth,Iowa,19109,16,0 +2020-06-09,Kossuth,Iowa,19109,16,0 +2020-06-10,Kossuth,Iowa,19109,16,0 +2020-06-11,Kossuth,Iowa,19109,16,0 +2020-06-12,Kossuth,Iowa,19109,16,0 +2020-06-13,Kossuth,Iowa,19109,17,0 +2020-06-14,Kossuth,Iowa,19109,17,0 +2020-06-15,Kossuth,Iowa,19109,19,0 +2020-06-16,Kossuth,Iowa,19109,20,0 +2020-06-17,Kossuth,Iowa,19109,20,0 +2020-06-18,Kossuth,Iowa,19109,23,0 +2020-06-19,Kossuth,Iowa,19109,22,0 +2020-06-20,Kossuth,Iowa,19109,22,0 +2020-06-21,Kossuth,Iowa,19109,24,0 +2020-06-22,Kossuth,Iowa,19109,25,0 +2020-06-23,Kossuth,Iowa,19109,27,0 +2020-06-24,Kossuth,Iowa,19109,31,0 +2020-06-25,Kossuth,Iowa,19109,29,0 +2020-06-26,Kossuth,Iowa,19109,32,0 +2020-06-27,Kossuth,Iowa,19109,32,0 +2020-06-28,Kossuth,Iowa,19109,32,0 +2020-06-29,Kossuth,Iowa,19109,32,0 +2020-06-30,Kossuth,Iowa,19109,32,0 +2020-07-01,Kossuth,Iowa,19109,32,0 +2020-07-02,Kossuth,Iowa,19109,33,0 +2020-07-03,Kossuth,Iowa,19109,33,0 +2020-07-04,Kossuth,Iowa,19109,34,0 +2020-07-05,Kossuth,Iowa,19109,35,0 +2020-07-06,Kossuth,Iowa,19109,35,0 +2020-07-07,Kossuth,Iowa,19109,36,0 +2020-07-08,Kossuth,Iowa,19109,37,0 +2020-07-09,Kossuth,Iowa,19109,39,0 +2020-04-04,Lee,Iowa,19111,1,0 +2020-04-05,Lee,Iowa,19111,1,0 +2020-04-06,Lee,Iowa,19111,1,0 +2020-04-07,Lee,Iowa,19111,1,0 +2020-04-08,Lee,Iowa,19111,1,0 +2020-04-09,Lee,Iowa,19111,1,0 +2020-04-10,Lee,Iowa,19111,1,0 +2020-04-11,Lee,Iowa,19111,1,0 +2020-04-12,Lee,Iowa,19111,1,0 +2020-04-13,Lee,Iowa,19111,2,0 +2020-04-14,Lee,Iowa,19111,2,0 +2020-04-15,Lee,Iowa,19111,2,0 +2020-04-16,Lee,Iowa,19111,3,0 +2020-04-17,Lee,Iowa,19111,3,0 +2020-04-18,Lee,Iowa,19111,3,0 +2020-04-19,Lee,Iowa,19111,3,0 +2020-04-20,Lee,Iowa,19111,3,0 +2020-04-21,Lee,Iowa,19111,3,0 +2020-04-22,Lee,Iowa,19111,3,0 +2020-04-23,Lee,Iowa,19111,3,0 +2020-04-24,Lee,Iowa,19111,4,0 +2020-04-25,Lee,Iowa,19111,4,0 +2020-04-26,Lee,Iowa,19111,5,0 +2020-04-27,Lee,Iowa,19111,5,0 +2020-04-28,Lee,Iowa,19111,7,0 +2020-04-29,Lee,Iowa,19111,8,0 +2020-04-30,Lee,Iowa,19111,8,0 +2020-05-01,Lee,Iowa,19111,9,0 +2020-05-02,Lee,Iowa,19111,12,0 +2020-05-03,Lee,Iowa,19111,13,0 +2020-05-04,Lee,Iowa,19111,14,0 +2020-05-05,Lee,Iowa,19111,16,0 +2020-05-06,Lee,Iowa,19111,16,0 +2020-05-07,Lee,Iowa,19111,17,0 +2020-05-08,Lee,Iowa,19111,18,0 +2020-05-09,Lee,Iowa,19111,18,0 +2020-05-10,Lee,Iowa,19111,18,0 +2020-05-11,Lee,Iowa,19111,18,0 +2020-05-12,Lee,Iowa,19111,18,0 +2020-05-13,Lee,Iowa,19111,18,0 +2020-05-14,Lee,Iowa,19111,18,0 +2020-05-15,Lee,Iowa,19111,18,0 +2020-05-16,Lee,Iowa,19111,18,0 +2020-05-17,Lee,Iowa,19111,18,0 +2020-05-18,Lee,Iowa,19111,19,0 +2020-05-19,Lee,Iowa,19111,20,0 +2020-05-20,Lee,Iowa,19111,20,0 +2020-05-21,Lee,Iowa,19111,20,0 +2020-05-22,Lee,Iowa,19111,20,0 +2020-05-23,Lee,Iowa,19111,20,0 +2020-05-24,Lee,Iowa,19111,22,0 +2020-05-25,Lee,Iowa,19111,23,0 +2020-05-26,Lee,Iowa,19111,22,0 +2020-05-27,Lee,Iowa,19111,23,0 +2020-05-28,Lee,Iowa,19111,24,0 +2020-05-29,Lee,Iowa,19111,25,0 +2020-05-30,Lee,Iowa,19111,25,0 +2020-05-31,Lee,Iowa,19111,27,0 +2020-06-01,Lee,Iowa,19111,27,0 +2020-06-02,Lee,Iowa,19111,27,0 +2020-06-03,Lee,Iowa,19111,28,0 +2020-06-04,Lee,Iowa,19111,29,0 +2020-06-05,Lee,Iowa,19111,30,0 +2020-06-06,Lee,Iowa,19111,30,0 +2020-06-07,Lee,Iowa,19111,31,0 +2020-06-08,Lee,Iowa,19111,32,0 +2020-06-09,Lee,Iowa,19111,34,0 +2020-06-10,Lee,Iowa,19111,36,1 +2020-06-11,Lee,Iowa,19111,38,1 +2020-06-12,Lee,Iowa,19111,37,1 +2020-06-13,Lee,Iowa,19111,38,1 +2020-06-14,Lee,Iowa,19111,38,1 +2020-06-15,Lee,Iowa,19111,40,1 +2020-06-16,Lee,Iowa,19111,40,1 +2020-06-17,Lee,Iowa,19111,40,1 +2020-06-18,Lee,Iowa,19111,41,1 +2020-06-19,Lee,Iowa,19111,42,1 +2020-06-20,Lee,Iowa,19111,43,1 +2020-06-21,Lee,Iowa,19111,45,1 +2020-06-22,Lee,Iowa,19111,44,1 +2020-06-23,Lee,Iowa,19111,43,1 +2020-06-24,Lee,Iowa,19111,44,1 +2020-06-25,Lee,Iowa,19111,44,1 +2020-06-26,Lee,Iowa,19111,44,1 +2020-06-27,Lee,Iowa,19111,45,1 +2020-06-28,Lee,Iowa,19111,47,1 +2020-06-29,Lee,Iowa,19111,47,1 +2020-06-30,Lee,Iowa,19111,48,2 +2020-07-01,Lee,Iowa,19111,49,2 +2020-07-02,Lee,Iowa,19111,50,2 +2020-07-03,Lee,Iowa,19111,53,2 +2020-07-04,Lee,Iowa,19111,54,2 +2020-07-05,Lee,Iowa,19111,54,2 +2020-07-06,Lee,Iowa,19111,54,2 +2020-07-07,Lee,Iowa,19111,54,2 +2020-07-08,Lee,Iowa,19111,54,2 +2020-07-09,Lee,Iowa,19111,54,2 +2020-03-21,Linn,Iowa,19113,3,0 +2020-03-22,Linn,Iowa,19113,4,0 +2020-03-23,Linn,Iowa,19113,6,0 +2020-03-24,Linn,Iowa,19113,6,0 +2020-03-25,Linn,Iowa,19113,7,0 +2020-03-26,Linn,Iowa,19113,12,0 +2020-03-27,Linn,Iowa,19113,22,0 +2020-03-28,Linn,Iowa,19113,36,0 +2020-03-29,Linn,Iowa,19113,42,1 +2020-03-30,Linn,Iowa,19113,71,2 +2020-03-31,Linn,Iowa,19113,90,2 +2020-04-01,Linn,Iowa,19113,94,2 +2020-04-02,Linn,Iowa,19113,105,4 +2020-04-03,Linn,Iowa,19113,118,4 +2020-04-04,Linn,Iowa,19113,139,4 +2020-04-05,Linn,Iowa,19113,161,6 +2020-04-06,Linn,Iowa,19113,176,8 +2020-04-07,Linn,Iowa,19113,186,8 +2020-04-08,Linn,Iowa,19113,197,9 +2020-04-09,Linn,Iowa,19113,215,9 +2020-04-10,Linn,Iowa,19113,225,12 +2020-04-11,Linn,Iowa,19113,235,12 +2020-04-12,Linn,Iowa,19113,243,18 +2020-04-13,Linn,Iowa,19113,258,19 +2020-04-14,Linn,Iowa,19113,265,19 +2020-04-15,Linn,Iowa,19113,276,21 +2020-04-16,Linn,Iowa,19113,280,22 +2020-04-17,Linn,Iowa,19113,304,22 +2020-04-18,Linn,Iowa,19113,332,25 +2020-04-19,Linn,Iowa,19113,397,25 +2020-04-20,Linn,Iowa,19113,411,27 +2020-04-21,Linn,Iowa,19113,462,27 +2020-04-22,Linn,Iowa,19113,469,29 +2020-04-23,Linn,Iowa,19113,481,29 +2020-04-24,Linn,Iowa,19113,511,32 +2020-04-25,Linn,Iowa,19113,550,33 +2020-04-26,Linn,Iowa,19113,575,34 +2020-04-27,Linn,Iowa,19113,613,34 +2020-04-28,Linn,Iowa,19113,632,36 +2020-04-29,Linn,Iowa,19113,652,40 +2020-04-30,Linn,Iowa,19113,669,43 +2020-05-01,Linn,Iowa,19113,673,45 +2020-05-02,Linn,Iowa,19113,705,47 +2020-05-03,Linn,Iowa,19113,731,47 +2020-05-04,Linn,Iowa,19113,757,47 +2020-05-05,Linn,Iowa,19113,767,53 +2020-05-06,Linn,Iowa,19113,770,55 +2020-05-07,Linn,Iowa,19113,805,56 +2020-05-08,Linn,Iowa,19113,813,58 +2020-05-09,Linn,Iowa,19113,819,58 +2020-05-10,Linn,Iowa,19113,827,58 +2020-05-11,Linn,Iowa,19113,841,59 +2020-05-12,Linn,Iowa,19113,849,62 +2020-05-13,Linn,Iowa,19113,858,63 +2020-05-14,Linn,Iowa,19113,871,65 +2020-05-15,Linn,Iowa,19113,882,69 +2020-05-16,Linn,Iowa,19113,892,70 +2020-05-17,Linn,Iowa,19113,896,70 +2020-05-18,Linn,Iowa,19113,899,70 +2020-05-19,Linn,Iowa,19113,899,73 +2020-05-20,Linn,Iowa,19113,902,73 +2020-05-21,Linn,Iowa,19113,910,74 +2020-05-22,Linn,Iowa,19113,917,75 +2020-05-23,Linn,Iowa,19113,917,75 +2020-05-24,Linn,Iowa,19113,932,75 +2020-05-25,Linn,Iowa,19113,935,75 +2020-05-26,Linn,Iowa,19113,936,76 +2020-05-27,Linn,Iowa,19113,940,76 +2020-05-28,Linn,Iowa,19113,942,76 +2020-05-29,Linn,Iowa,19113,947,76 +2020-05-30,Linn,Iowa,19113,952,76 +2020-05-31,Linn,Iowa,19113,955,79 +2020-06-01,Linn,Iowa,19113,955,79 +2020-06-02,Linn,Iowa,19113,958,79 +2020-06-03,Linn,Iowa,19113,967,79 +2020-06-04,Linn,Iowa,19113,974,79 +2020-06-05,Linn,Iowa,19113,978,79 +2020-06-06,Linn,Iowa,19113,983,80 +2020-06-07,Linn,Iowa,19113,987,80 +2020-06-08,Linn,Iowa,19113,1000,80 +2020-06-09,Linn,Iowa,19113,1002,80 +2020-06-10,Linn,Iowa,19113,1007,80 +2020-06-11,Linn,Iowa,19113,1010,80 +2020-06-12,Linn,Iowa,19113,1014,80 +2020-06-13,Linn,Iowa,19113,1017,80 +2020-06-14,Linn,Iowa,19113,1018,80 +2020-06-15,Linn,Iowa,19113,1019,80 +2020-06-16,Linn,Iowa,19113,1023,80 +2020-06-17,Linn,Iowa,19113,1042,80 +2020-06-18,Linn,Iowa,19113,1051,80 +2020-06-19,Linn,Iowa,19113,1066,80 +2020-06-20,Linn,Iowa,19113,1077,80 +2020-06-21,Linn,Iowa,19113,1096,80 +2020-06-22,Linn,Iowa,19113,1103,80 +2020-06-23,Linn,Iowa,19113,1107,80 +2020-06-24,Linn,Iowa,19113,1126,80 +2020-06-25,Linn,Iowa,19113,1152,81 +2020-06-26,Linn,Iowa,19113,1161,82 +2020-06-27,Linn,Iowa,19113,1172,82 +2020-06-28,Linn,Iowa,19113,1181,82 +2020-06-29,Linn,Iowa,19113,1195,82 +2020-06-30,Linn,Iowa,19113,1203,82 +2020-07-01,Linn,Iowa,19113,1218,82 +2020-07-02,Linn,Iowa,19113,1238,82 +2020-07-03,Linn,Iowa,19113,1246,82 +2020-07-04,Linn,Iowa,19113,1267,82 +2020-07-05,Linn,Iowa,19113,1288,82 +2020-07-06,Linn,Iowa,19113,1296,82 +2020-07-07,Linn,Iowa,19113,1304,82 +2020-07-08,Linn,Iowa,19113,1324,82 +2020-07-09,Linn,Iowa,19113,1341,83 +2020-04-03,Louisa,Iowa,19115,1,0 +2020-04-04,Louisa,Iowa,19115,1,0 +2020-04-05,Louisa,Iowa,19115,6,0 +2020-04-06,Louisa,Iowa,19115,7,0 +2020-04-07,Louisa,Iowa,19115,20,0 +2020-04-08,Louisa,Iowa,19115,30,0 +2020-04-09,Louisa,Iowa,19115,41,0 +2020-04-10,Louisa,Iowa,19115,56,0 +2020-04-11,Louisa,Iowa,19115,70,0 +2020-04-12,Louisa,Iowa,19115,76,0 +2020-04-13,Louisa,Iowa,19115,79,0 +2020-04-14,Louisa,Iowa,19115,149,0 +2020-04-15,Louisa,Iowa,19115,166,0 +2020-04-16,Louisa,Iowa,19115,166,1 +2020-04-17,Louisa,Iowa,19115,169,1 +2020-04-18,Louisa,Iowa,19115,177,2 +2020-04-19,Louisa,Iowa,19115,213,2 +2020-04-20,Louisa,Iowa,19115,216,2 +2020-04-21,Louisa,Iowa,19115,243,2 +2020-04-22,Louisa,Iowa,19115,249,2 +2020-04-23,Louisa,Iowa,19115,252,2 +2020-04-24,Louisa,Iowa,19115,260,2 +2020-04-25,Louisa,Iowa,19115,262,2 +2020-04-26,Louisa,Iowa,19115,267,2 +2020-04-27,Louisa,Iowa,19115,267,2 +2020-04-28,Louisa,Iowa,19115,269,2 +2020-04-29,Louisa,Iowa,19115,269,2 +2020-04-30,Louisa,Iowa,19115,269,2 +2020-05-01,Louisa,Iowa,19115,274,2 +2020-05-02,Louisa,Iowa,19115,277,2 +2020-05-03,Louisa,Iowa,19115,277,2 +2020-05-04,Louisa,Iowa,19115,277,2 +2020-05-05,Louisa,Iowa,19115,279,2 +2020-05-06,Louisa,Iowa,19115,279,2 +2020-05-07,Louisa,Iowa,19115,280,2 +2020-05-08,Louisa,Iowa,19115,281,3 +2020-05-09,Louisa,Iowa,19115,282,3 +2020-05-10,Louisa,Iowa,19115,282,3 +2020-05-11,Louisa,Iowa,19115,285,3 +2020-05-12,Louisa,Iowa,19115,287,3 +2020-05-13,Louisa,Iowa,19115,289,3 +2020-05-14,Louisa,Iowa,19115,291,3 +2020-05-15,Louisa,Iowa,19115,304,3 +2020-05-16,Louisa,Iowa,19115,306,3 +2020-05-17,Louisa,Iowa,19115,307,3 +2020-05-18,Louisa,Iowa,19115,310,3 +2020-05-19,Louisa,Iowa,19115,315,4 +2020-05-20,Louisa,Iowa,19115,323,6 +2020-05-21,Louisa,Iowa,19115,326,6 +2020-05-22,Louisa,Iowa,19115,330,7 +2020-05-23,Louisa,Iowa,19115,330,7 +2020-05-24,Louisa,Iowa,19115,334,7 +2020-05-25,Louisa,Iowa,19115,335,7 +2020-05-26,Louisa,Iowa,19115,336,9 +2020-05-27,Louisa,Iowa,19115,336,10 +2020-05-28,Louisa,Iowa,19115,342,10 +2020-05-29,Louisa,Iowa,19115,341,11 +2020-05-30,Louisa,Iowa,19115,343,11 +2020-05-31,Louisa,Iowa,19115,344,11 +2020-06-01,Louisa,Iowa,19115,346,11 +2020-06-02,Louisa,Iowa,19115,346,11 +2020-06-03,Louisa,Iowa,19115,347,11 +2020-06-04,Louisa,Iowa,19115,350,11 +2020-06-05,Louisa,Iowa,19115,350,11 +2020-06-06,Louisa,Iowa,19115,350,11 +2020-06-07,Louisa,Iowa,19115,350,11 +2020-06-08,Louisa,Iowa,19115,350,11 +2020-06-09,Louisa,Iowa,19115,352,11 +2020-06-10,Louisa,Iowa,19115,354,11 +2020-06-11,Louisa,Iowa,19115,355,11 +2020-06-12,Louisa,Iowa,19115,355,11 +2020-06-13,Louisa,Iowa,19115,355,11 +2020-06-14,Louisa,Iowa,19115,355,11 +2020-06-15,Louisa,Iowa,19115,355,12 +2020-06-16,Louisa,Iowa,19115,355,12 +2020-06-17,Louisa,Iowa,19115,354,13 +2020-06-18,Louisa,Iowa,19115,354,13 +2020-06-19,Louisa,Iowa,19115,354,13 +2020-06-20,Louisa,Iowa,19115,354,13 +2020-06-21,Louisa,Iowa,19115,356,13 +2020-06-22,Louisa,Iowa,19115,355,13 +2020-06-23,Louisa,Iowa,19115,356,13 +2020-06-24,Louisa,Iowa,19115,355,13 +2020-06-25,Louisa,Iowa,19115,357,13 +2020-06-26,Louisa,Iowa,19115,358,13 +2020-06-27,Louisa,Iowa,19115,358,13 +2020-06-28,Louisa,Iowa,19115,359,13 +2020-06-29,Louisa,Iowa,19115,359,13 +2020-06-30,Louisa,Iowa,19115,360,13 +2020-07-01,Louisa,Iowa,19115,360,13 +2020-07-02,Louisa,Iowa,19115,360,13 +2020-07-03,Louisa,Iowa,19115,360,13 +2020-07-04,Louisa,Iowa,19115,360,13 +2020-07-05,Louisa,Iowa,19115,361,13 +2020-07-06,Louisa,Iowa,19115,362,13 +2020-07-07,Louisa,Iowa,19115,363,13 +2020-07-08,Louisa,Iowa,19115,363,13 +2020-07-09,Louisa,Iowa,19115,363,13 +2020-05-17,Lucas,Iowa,19117,1,0 +2020-05-18,Lucas,Iowa,19117,1,0 +2020-05-19,Lucas,Iowa,19117,2,0 +2020-05-20,Lucas,Iowa,19117,3,0 +2020-05-21,Lucas,Iowa,19117,3,0 +2020-05-22,Lucas,Iowa,19117,4,0 +2020-05-23,Lucas,Iowa,19117,4,0 +2020-05-24,Lucas,Iowa,19117,6,0 +2020-05-25,Lucas,Iowa,19117,6,0 +2020-05-26,Lucas,Iowa,19117,7,0 +2020-05-27,Lucas,Iowa,19117,8,0 +2020-05-28,Lucas,Iowa,19117,12,0 +2020-05-29,Lucas,Iowa,19117,16,0 +2020-05-30,Lucas,Iowa,19117,17,0 +2020-05-31,Lucas,Iowa,19117,17,0 +2020-06-01,Lucas,Iowa,19117,17,1 +2020-06-02,Lucas,Iowa,19117,19,1 +2020-06-03,Lucas,Iowa,19117,19,1 +2020-06-04,Lucas,Iowa,19117,22,2 +2020-06-05,Lucas,Iowa,19117,22,2 +2020-06-06,Lucas,Iowa,19117,22,2 +2020-06-07,Lucas,Iowa,19117,22,2 +2020-06-08,Lucas,Iowa,19117,22,2 +2020-06-09,Lucas,Iowa,19117,22,2 +2020-06-10,Lucas,Iowa,19117,22,2 +2020-06-11,Lucas,Iowa,19117,22,2 +2020-06-12,Lucas,Iowa,19117,23,3 +2020-06-13,Lucas,Iowa,19117,24,3 +2020-06-14,Lucas,Iowa,19117,24,3 +2020-06-15,Lucas,Iowa,19117,25,3 +2020-06-16,Lucas,Iowa,19117,25,3 +2020-06-17,Lucas,Iowa,19117,25,3 +2020-06-18,Lucas,Iowa,19117,26,3 +2020-06-19,Lucas,Iowa,19117,26,3 +2020-06-20,Lucas,Iowa,19117,26,3 +2020-06-21,Lucas,Iowa,19117,26,3 +2020-06-22,Lucas,Iowa,19117,26,3 +2020-06-23,Lucas,Iowa,19117,28,3 +2020-06-24,Lucas,Iowa,19117,29,3 +2020-06-25,Lucas,Iowa,19117,28,3 +2020-06-26,Lucas,Iowa,19117,29,3 +2020-06-27,Lucas,Iowa,19117,29,3 +2020-06-28,Lucas,Iowa,19117,29,4 +2020-06-29,Lucas,Iowa,19117,30,4 +2020-06-30,Lucas,Iowa,19117,30,4 +2020-07-01,Lucas,Iowa,19117,30,4 +2020-07-02,Lucas,Iowa,19117,30,4 +2020-07-03,Lucas,Iowa,19117,30,4 +2020-07-04,Lucas,Iowa,19117,30,4 +2020-07-05,Lucas,Iowa,19117,31,4 +2020-07-06,Lucas,Iowa,19117,31,4 +2020-07-07,Lucas,Iowa,19117,31,4 +2020-07-08,Lucas,Iowa,19117,31,4 +2020-07-09,Lucas,Iowa,19117,32,4 +2020-04-03,Lyon,Iowa,19119,1,0 +2020-04-04,Lyon,Iowa,19119,2,0 +2020-04-05,Lyon,Iowa,19119,2,0 +2020-04-06,Lyon,Iowa,19119,2,0 +2020-04-07,Lyon,Iowa,19119,2,0 +2020-04-08,Lyon,Iowa,19119,2,0 +2020-04-09,Lyon,Iowa,19119,2,0 +2020-04-10,Lyon,Iowa,19119,2,0 +2020-04-11,Lyon,Iowa,19119,2,0 +2020-04-12,Lyon,Iowa,19119,3,0 +2020-04-13,Lyon,Iowa,19119,4,0 +2020-04-14,Lyon,Iowa,19119,4,0 +2020-04-15,Lyon,Iowa,19119,4,0 +2020-04-16,Lyon,Iowa,19119,5,0 +2020-04-17,Lyon,Iowa,19119,5,0 +2020-04-18,Lyon,Iowa,19119,5,0 +2020-04-19,Lyon,Iowa,19119,5,0 +2020-04-20,Lyon,Iowa,19119,5,0 +2020-04-21,Lyon,Iowa,19119,5,0 +2020-04-22,Lyon,Iowa,19119,5,0 +2020-04-23,Lyon,Iowa,19119,5,0 +2020-04-24,Lyon,Iowa,19119,5,0 +2020-04-25,Lyon,Iowa,19119,6,0 +2020-04-26,Lyon,Iowa,19119,7,0 +2020-04-27,Lyon,Iowa,19119,9,0 +2020-04-28,Lyon,Iowa,19119,11,0 +2020-04-29,Lyon,Iowa,19119,11,0 +2020-04-30,Lyon,Iowa,19119,13,0 +2020-05-01,Lyon,Iowa,19119,13,0 +2020-05-02,Lyon,Iowa,19119,13,0 +2020-05-03,Lyon,Iowa,19119,14,0 +2020-05-04,Lyon,Iowa,19119,15,0 +2020-05-05,Lyon,Iowa,19119,15,0 +2020-05-06,Lyon,Iowa,19119,15,0 +2020-05-07,Lyon,Iowa,19119,15,0 +2020-05-08,Lyon,Iowa,19119,16,0 +2020-05-09,Lyon,Iowa,19119,16,0 +2020-05-10,Lyon,Iowa,19119,16,0 +2020-05-11,Lyon,Iowa,19119,16,0 +2020-05-12,Lyon,Iowa,19119,16,0 +2020-05-13,Lyon,Iowa,19119,16,0 +2020-05-14,Lyon,Iowa,19119,16,0 +2020-05-15,Lyon,Iowa,19119,16,0 +2020-05-16,Lyon,Iowa,19119,16,0 +2020-05-17,Lyon,Iowa,19119,19,0 +2020-05-18,Lyon,Iowa,19119,19,0 +2020-05-19,Lyon,Iowa,19119,19,0 +2020-05-20,Lyon,Iowa,19119,19,0 +2020-05-21,Lyon,Iowa,19119,19,0 +2020-05-22,Lyon,Iowa,19119,19,0 +2020-05-23,Lyon,Iowa,19119,19,0 +2020-05-24,Lyon,Iowa,19119,19,0 +2020-05-25,Lyon,Iowa,19119,19,0 +2020-05-26,Lyon,Iowa,19119,19,0 +2020-05-27,Lyon,Iowa,19119,19,0 +2020-05-28,Lyon,Iowa,19119,19,0 +2020-05-29,Lyon,Iowa,19119,20,0 +2020-05-30,Lyon,Iowa,19119,21,0 +2020-05-31,Lyon,Iowa,19119,24,0 +2020-06-01,Lyon,Iowa,19119,24,0 +2020-06-02,Lyon,Iowa,19119,24,0 +2020-06-03,Lyon,Iowa,19119,25,0 +2020-06-04,Lyon,Iowa,19119,24,0 +2020-06-05,Lyon,Iowa,19119,24,0 +2020-06-06,Lyon,Iowa,19119,25,0 +2020-06-07,Lyon,Iowa,19119,26,0 +2020-06-08,Lyon,Iowa,19119,26,0 +2020-06-09,Lyon,Iowa,19119,26,0 +2020-06-10,Lyon,Iowa,19119,26,0 +2020-06-11,Lyon,Iowa,19119,28,0 +2020-06-12,Lyon,Iowa,19119,30,0 +2020-06-13,Lyon,Iowa,19119,30,0 +2020-06-14,Lyon,Iowa,19119,31,0 +2020-06-15,Lyon,Iowa,19119,31,0 +2020-06-16,Lyon,Iowa,19119,31,0 +2020-06-17,Lyon,Iowa,19119,32,0 +2020-06-18,Lyon,Iowa,19119,32,0 +2020-06-19,Lyon,Iowa,19119,32,0 +2020-06-20,Lyon,Iowa,19119,32,0 +2020-06-21,Lyon,Iowa,19119,36,0 +2020-06-22,Lyon,Iowa,19119,36,0 +2020-06-23,Lyon,Iowa,19119,37,0 +2020-06-24,Lyon,Iowa,19119,37,0 +2020-06-25,Lyon,Iowa,19119,37,0 +2020-06-26,Lyon,Iowa,19119,38,0 +2020-06-27,Lyon,Iowa,19119,39,0 +2020-06-28,Lyon,Iowa,19119,39,0 +2020-06-29,Lyon,Iowa,19119,39,0 +2020-06-30,Lyon,Iowa,19119,40,0 +2020-07-01,Lyon,Iowa,19119,40,0 +2020-07-02,Lyon,Iowa,19119,40,0 +2020-07-03,Lyon,Iowa,19119,41,0 +2020-07-04,Lyon,Iowa,19119,43,0 +2020-07-05,Lyon,Iowa,19119,44,0 +2020-07-06,Lyon,Iowa,19119,45,0 +2020-07-07,Lyon,Iowa,19119,45,0 +2020-07-08,Lyon,Iowa,19119,47,0 +2020-07-09,Lyon,Iowa,19119,48,0 +2020-04-01,Madison,Iowa,19121,1,0 +2020-04-02,Madison,Iowa,19121,1,0 +2020-04-03,Madison,Iowa,19121,1,0 +2020-04-04,Madison,Iowa,19121,1,0 +2020-04-05,Madison,Iowa,19121,1,0 +2020-04-06,Madison,Iowa,19121,1,0 +2020-04-07,Madison,Iowa,19121,1,0 +2020-04-08,Madison,Iowa,19121,1,0 +2020-04-09,Madison,Iowa,19121,1,0 +2020-04-10,Madison,Iowa,19121,1,0 +2020-04-11,Madison,Iowa,19121,2,1 +2020-04-12,Madison,Iowa,19121,2,1 +2020-04-13,Madison,Iowa,19121,2,1 +2020-04-14,Madison,Iowa,19121,3,1 +2020-04-15,Madison,Iowa,19121,3,1 +2020-04-16,Madison,Iowa,19121,3,1 +2020-04-17,Madison,Iowa,19121,3,1 +2020-04-18,Madison,Iowa,19121,3,1 +2020-04-19,Madison,Iowa,19121,3,1 +2020-04-20,Madison,Iowa,19121,3,1 +2020-04-21,Madison,Iowa,19121,4,1 +2020-04-22,Madison,Iowa,19121,4,1 +2020-04-23,Madison,Iowa,19121,3,1 +2020-04-24,Madison,Iowa,19121,3,1 +2020-04-25,Madison,Iowa,19121,3,1 +2020-04-26,Madison,Iowa,19121,3,1 +2020-04-27,Madison,Iowa,19121,3,1 +2020-04-28,Madison,Iowa,19121,4,1 +2020-04-29,Madison,Iowa,19121,5,1 +2020-04-30,Madison,Iowa,19121,5,1 +2020-05-01,Madison,Iowa,19121,8,1 +2020-05-02,Madison,Iowa,19121,8,1 +2020-05-03,Madison,Iowa,19121,9,1 +2020-05-04,Madison,Iowa,19121,9,1 +2020-05-05,Madison,Iowa,19121,9,1 +2020-05-06,Madison,Iowa,19121,10,1 +2020-05-07,Madison,Iowa,19121,10,1 +2020-05-08,Madison,Iowa,19121,10,1 +2020-05-09,Madison,Iowa,19121,11,1 +2020-05-10,Madison,Iowa,19121,11,1 +2020-05-11,Madison,Iowa,19121,11,1 +2020-05-12,Madison,Iowa,19121,12,1 +2020-05-13,Madison,Iowa,19121,13,1 +2020-05-14,Madison,Iowa,19121,13,1 +2020-05-15,Madison,Iowa,19121,14,1 +2020-05-16,Madison,Iowa,19121,16,1 +2020-05-17,Madison,Iowa,19121,16,1 +2020-05-18,Madison,Iowa,19121,16,1 +2020-05-19,Madison,Iowa,19121,16,1 +2020-05-20,Madison,Iowa,19121,20,1 +2020-05-21,Madison,Iowa,19121,21,1 +2020-05-22,Madison,Iowa,19121,21,1 +2020-05-23,Madison,Iowa,19121,21,1 +2020-05-24,Madison,Iowa,19121,24,1 +2020-05-25,Madison,Iowa,19121,24,1 +2020-05-26,Madison,Iowa,19121,25,1 +2020-05-27,Madison,Iowa,19121,25,1 +2020-05-28,Madison,Iowa,19121,27,1 +2020-05-29,Madison,Iowa,19121,27,1 +2020-05-30,Madison,Iowa,19121,28,2 +2020-05-31,Madison,Iowa,19121,29,2 +2020-06-01,Madison,Iowa,19121,29,2 +2020-06-02,Madison,Iowa,19121,30,2 +2020-06-03,Madison,Iowa,19121,29,2 +2020-06-04,Madison,Iowa,19121,29,2 +2020-06-05,Madison,Iowa,19121,29,2 +2020-06-06,Madison,Iowa,19121,29,2 +2020-06-07,Madison,Iowa,19121,29,2 +2020-06-08,Madison,Iowa,19121,29,2 +2020-06-09,Madison,Iowa,19121,29,2 +2020-06-10,Madison,Iowa,19121,30,2 +2020-06-11,Madison,Iowa,19121,32,2 +2020-06-12,Madison,Iowa,19121,31,2 +2020-06-13,Madison,Iowa,19121,34,2 +2020-06-14,Madison,Iowa,19121,34,2 +2020-06-15,Madison,Iowa,19121,34,2 +2020-06-16,Madison,Iowa,19121,34,2 +2020-06-17,Madison,Iowa,19121,34,2 +2020-06-18,Madison,Iowa,19121,34,2 +2020-06-19,Madison,Iowa,19121,34,2 +2020-06-20,Madison,Iowa,19121,34,2 +2020-06-21,Madison,Iowa,19121,35,2 +2020-06-22,Madison,Iowa,19121,35,2 +2020-06-23,Madison,Iowa,19121,35,2 +2020-06-24,Madison,Iowa,19121,35,2 +2020-06-25,Madison,Iowa,19121,35,2 +2020-06-26,Madison,Iowa,19121,35,2 +2020-06-27,Madison,Iowa,19121,36,2 +2020-06-28,Madison,Iowa,19121,37,2 +2020-06-29,Madison,Iowa,19121,37,2 +2020-06-30,Madison,Iowa,19121,37,2 +2020-07-01,Madison,Iowa,19121,38,2 +2020-07-02,Madison,Iowa,19121,40,2 +2020-07-03,Madison,Iowa,19121,43,2 +2020-07-04,Madison,Iowa,19121,46,2 +2020-07-05,Madison,Iowa,19121,47,2 +2020-07-06,Madison,Iowa,19121,48,2 +2020-07-07,Madison,Iowa,19121,48,2 +2020-07-08,Madison,Iowa,19121,50,2 +2020-07-09,Madison,Iowa,19121,51,2 +2020-03-26,Mahaska,Iowa,19123,1,0 +2020-03-27,Mahaska,Iowa,19123,2,0 +2020-03-28,Mahaska,Iowa,19123,2,0 +2020-03-29,Mahaska,Iowa,19123,2,0 +2020-03-30,Mahaska,Iowa,19123,2,0 +2020-03-31,Mahaska,Iowa,19123,2,0 +2020-04-01,Mahaska,Iowa,19123,2,0 +2020-04-02,Mahaska,Iowa,19123,3,0 +2020-04-03,Mahaska,Iowa,19123,3,0 +2020-04-04,Mahaska,Iowa,19123,3,0 +2020-04-05,Mahaska,Iowa,19123,3,0 +2020-04-06,Mahaska,Iowa,19123,3,0 +2020-04-07,Mahaska,Iowa,19123,4,0 +2020-04-08,Mahaska,Iowa,19123,4,0 +2020-04-09,Mahaska,Iowa,19123,4,0 +2020-04-10,Mahaska,Iowa,19123,4,0 +2020-04-11,Mahaska,Iowa,19123,4,0 +2020-04-12,Mahaska,Iowa,19123,4,0 +2020-04-13,Mahaska,Iowa,19123,5,0 +2020-04-14,Mahaska,Iowa,19123,5,0 +2020-04-15,Mahaska,Iowa,19123,7,0 +2020-04-16,Mahaska,Iowa,19123,7,0 +2020-04-17,Mahaska,Iowa,19123,7,0 +2020-04-18,Mahaska,Iowa,19123,7,0 +2020-04-19,Mahaska,Iowa,19123,8,0 +2020-04-20,Mahaska,Iowa,19123,8,1 +2020-04-21,Mahaska,Iowa,19123,8,1 +2020-04-22,Mahaska,Iowa,19123,8,1 +2020-04-23,Mahaska,Iowa,19123,8,1 +2020-04-24,Mahaska,Iowa,19123,8,1 +2020-04-25,Mahaska,Iowa,19123,8,1 +2020-04-26,Mahaska,Iowa,19123,9,1 +2020-04-27,Mahaska,Iowa,19123,9,1 +2020-04-28,Mahaska,Iowa,19123,9,1 +2020-04-29,Mahaska,Iowa,19123,9,1 +2020-04-30,Mahaska,Iowa,19123,10,1 +2020-05-01,Mahaska,Iowa,19123,14,1 +2020-05-02,Mahaska,Iowa,19123,16,1 +2020-05-03,Mahaska,Iowa,19123,16,1 +2020-05-04,Mahaska,Iowa,19123,17,1 +2020-05-05,Mahaska,Iowa,19123,18,1 +2020-05-06,Mahaska,Iowa,19123,19,1 +2020-05-07,Mahaska,Iowa,19123,20,1 +2020-05-08,Mahaska,Iowa,19123,20,1 +2020-05-09,Mahaska,Iowa,19123,20,1 +2020-05-10,Mahaska,Iowa,19123,20,1 +2020-05-11,Mahaska,Iowa,19123,20,1 +2020-05-12,Mahaska,Iowa,19123,21,1 +2020-05-13,Mahaska,Iowa,19123,21,1 +2020-05-14,Mahaska,Iowa,19123,21,1 +2020-05-15,Mahaska,Iowa,19123,22,1 +2020-05-16,Mahaska,Iowa,19123,23,1 +2020-05-17,Mahaska,Iowa,19123,24,1 +2020-05-18,Mahaska,Iowa,19123,29,1 +2020-05-19,Mahaska,Iowa,19123,37,1 +2020-05-20,Mahaska,Iowa,19123,46,2 +2020-05-21,Mahaska,Iowa,19123,47,2 +2020-05-22,Mahaska,Iowa,19123,48,4 +2020-05-23,Mahaska,Iowa,19123,48,4 +2020-05-24,Mahaska,Iowa,19123,85,6 +2020-05-25,Mahaska,Iowa,19123,85,7 +2020-05-26,Mahaska,Iowa,19123,85,8 +2020-05-27,Mahaska,Iowa,19123,88,8 +2020-05-28,Mahaska,Iowa,19123,91,8 +2020-05-29,Mahaska,Iowa,19123,93,9 +2020-05-30,Mahaska,Iowa,19123,93,10 +2020-05-31,Mahaska,Iowa,19123,94,10 +2020-06-01,Mahaska,Iowa,19123,95,10 +2020-06-02,Mahaska,Iowa,19123,97,10 +2020-06-03,Mahaska,Iowa,19123,98,12 +2020-06-04,Mahaska,Iowa,19123,98,13 +2020-06-05,Mahaska,Iowa,19123,99,13 +2020-06-06,Mahaska,Iowa,19123,99,13 +2020-06-07,Mahaska,Iowa,19123,101,13 +2020-06-08,Mahaska,Iowa,19123,102,14 +2020-06-09,Mahaska,Iowa,19123,103,14 +2020-06-10,Mahaska,Iowa,19123,104,14 +2020-06-11,Mahaska,Iowa,19123,107,14 +2020-06-12,Mahaska,Iowa,19123,107,14 +2020-06-13,Mahaska,Iowa,19123,107,14 +2020-06-14,Mahaska,Iowa,19123,108,14 +2020-06-15,Mahaska,Iowa,19123,108,14 +2020-06-16,Mahaska,Iowa,19123,108,15 +2020-06-17,Mahaska,Iowa,19123,108,15 +2020-06-18,Mahaska,Iowa,19123,108,15 +2020-06-19,Mahaska,Iowa,19123,109,15 +2020-06-20,Mahaska,Iowa,19123,109,15 +2020-06-21,Mahaska,Iowa,19123,112,15 +2020-06-22,Mahaska,Iowa,19123,112,15 +2020-06-23,Mahaska,Iowa,19123,112,15 +2020-06-24,Mahaska,Iowa,19123,114,16 +2020-06-25,Mahaska,Iowa,19123,116,16 +2020-06-26,Mahaska,Iowa,19123,117,16 +2020-06-27,Mahaska,Iowa,19123,117,16 +2020-06-28,Mahaska,Iowa,19123,117,17 +2020-06-29,Mahaska,Iowa,19123,115,17 +2020-06-30,Mahaska,Iowa,19123,115,17 +2020-07-01,Mahaska,Iowa,19123,115,17 +2020-07-02,Mahaska,Iowa,19123,115,17 +2020-07-03,Mahaska,Iowa,19123,115,17 +2020-07-04,Mahaska,Iowa,19123,115,17 +2020-07-05,Mahaska,Iowa,19123,116,17 +2020-07-06,Mahaska,Iowa,19123,116,17 +2020-07-07,Mahaska,Iowa,19123,117,17 +2020-07-08,Mahaska,Iowa,19123,118,17 +2020-07-09,Mahaska,Iowa,19123,118,17 +2020-04-06,Marion,Iowa,19125,1,0 +2020-04-07,Marion,Iowa,19125,2,0 +2020-04-08,Marion,Iowa,19125,2,0 +2020-04-09,Marion,Iowa,19125,2,0 +2020-04-10,Marion,Iowa,19125,2,0 +2020-04-11,Marion,Iowa,19125,3,0 +2020-04-12,Marion,Iowa,19125,3,0 +2020-04-13,Marion,Iowa,19125,3,0 +2020-04-14,Marion,Iowa,19125,3,0 +2020-04-15,Marion,Iowa,19125,3,0 +2020-04-16,Marion,Iowa,19125,3,0 +2020-04-17,Marion,Iowa,19125,3,0 +2020-04-18,Marion,Iowa,19125,4,0 +2020-04-19,Marion,Iowa,19125,4,0 +2020-04-20,Marion,Iowa,19125,5,0 +2020-04-21,Marion,Iowa,19125,5,0 +2020-04-22,Marion,Iowa,19125,5,0 +2020-04-23,Marion,Iowa,19125,5,0 +2020-04-24,Marion,Iowa,19125,6,0 +2020-04-25,Marion,Iowa,19125,6,0 +2020-04-26,Marion,Iowa,19125,7,0 +2020-04-27,Marion,Iowa,19125,7,0 +2020-04-28,Marion,Iowa,19125,8,0 +2020-04-29,Marion,Iowa,19125,8,0 +2020-04-30,Marion,Iowa,19125,8,0 +2020-05-01,Marion,Iowa,19125,10,0 +2020-05-02,Marion,Iowa,19125,12,0 +2020-05-03,Marion,Iowa,19125,12,0 +2020-05-04,Marion,Iowa,19125,12,0 +2020-05-05,Marion,Iowa,19125,12,0 +2020-05-06,Marion,Iowa,19125,12,0 +2020-05-07,Marion,Iowa,19125,12,0 +2020-05-08,Marion,Iowa,19125,13,0 +2020-05-09,Marion,Iowa,19125,13,0 +2020-05-10,Marion,Iowa,19125,13,0 +2020-05-11,Marion,Iowa,19125,14,0 +2020-05-12,Marion,Iowa,19125,16,0 +2020-05-13,Marion,Iowa,19125,17,0 +2020-05-14,Marion,Iowa,19125,17,0 +2020-05-15,Marion,Iowa,19125,19,0 +2020-05-16,Marion,Iowa,19125,20,0 +2020-05-17,Marion,Iowa,19125,21,0 +2020-05-18,Marion,Iowa,19125,22,0 +2020-05-19,Marion,Iowa,19125,22,0 +2020-05-20,Marion,Iowa,19125,25,0 +2020-05-21,Marion,Iowa,19125,27,0 +2020-05-22,Marion,Iowa,19125,28,0 +2020-05-23,Marion,Iowa,19125,28,0 +2020-05-24,Marion,Iowa,19125,29,0 +2020-05-25,Marion,Iowa,19125,30,0 +2020-05-26,Marion,Iowa,19125,30,0 +2020-05-27,Marion,Iowa,19125,30,0 +2020-05-28,Marion,Iowa,19125,31,0 +2020-05-29,Marion,Iowa,19125,32,0 +2020-05-30,Marion,Iowa,19125,32,0 +2020-05-31,Marion,Iowa,19125,32,0 +2020-06-01,Marion,Iowa,19125,32,0 +2020-06-02,Marion,Iowa,19125,34,0 +2020-06-03,Marion,Iowa,19125,34,0 +2020-06-04,Marion,Iowa,19125,35,0 +2020-06-05,Marion,Iowa,19125,35,0 +2020-06-06,Marion,Iowa,19125,35,0 +2020-06-07,Marion,Iowa,19125,35,0 +2020-06-08,Marion,Iowa,19125,36,0 +2020-06-09,Marion,Iowa,19125,37,0 +2020-06-10,Marion,Iowa,19125,38,0 +2020-06-11,Marion,Iowa,19125,39,0 +2020-06-12,Marion,Iowa,19125,40,0 +2020-06-13,Marion,Iowa,19125,43,0 +2020-06-14,Marion,Iowa,19125,43,0 +2020-06-15,Marion,Iowa,19125,42,0 +2020-06-16,Marion,Iowa,19125,41,0 +2020-06-17,Marion,Iowa,19125,41,0 +2020-06-18,Marion,Iowa,19125,44,0 +2020-06-19,Marion,Iowa,19125,45,0 +2020-06-20,Marion,Iowa,19125,45,0 +2020-06-21,Marion,Iowa,19125,46,0 +2020-06-22,Marion,Iowa,19125,48,0 +2020-06-23,Marion,Iowa,19125,48,0 +2020-06-24,Marion,Iowa,19125,50,0 +2020-06-25,Marion,Iowa,19125,52,0 +2020-06-26,Marion,Iowa,19125,55,0 +2020-06-27,Marion,Iowa,19125,58,0 +2020-06-28,Marion,Iowa,19125,60,0 +2020-06-29,Marion,Iowa,19125,64,0 +2020-06-30,Marion,Iowa,19125,67,0 +2020-07-01,Marion,Iowa,19125,67,0 +2020-07-02,Marion,Iowa,19125,68,0 +2020-07-03,Marion,Iowa,19125,68,0 +2020-07-04,Marion,Iowa,19125,70,0 +2020-07-05,Marion,Iowa,19125,70,0 +2020-07-06,Marion,Iowa,19125,70,0 +2020-07-07,Marion,Iowa,19125,71,0 +2020-07-08,Marion,Iowa,19125,74,0 +2020-07-09,Marion,Iowa,19125,75,0 +2020-03-27,Marshall,Iowa,19127,1,0 +2020-03-28,Marshall,Iowa,19127,5,0 +2020-03-29,Marshall,Iowa,19127,6,0 +2020-03-30,Marshall,Iowa,19127,6,0 +2020-03-31,Marshall,Iowa,19127,8,0 +2020-04-01,Marshall,Iowa,19127,8,0 +2020-04-02,Marshall,Iowa,19127,9,0 +2020-04-03,Marshall,Iowa,19127,10,0 +2020-04-04,Marshall,Iowa,19127,10,0 +2020-04-05,Marshall,Iowa,19127,10,0 +2020-04-06,Marshall,Iowa,19127,12,0 +2020-04-07,Marshall,Iowa,19127,14,0 +2020-04-08,Marshall,Iowa,19127,15,0 +2020-04-09,Marshall,Iowa,19127,18,0 +2020-04-10,Marshall,Iowa,19127,20,0 +2020-04-11,Marshall,Iowa,19127,28,0 +2020-04-12,Marshall,Iowa,19127,31,0 +2020-04-13,Marshall,Iowa,19127,37,0 +2020-04-14,Marshall,Iowa,19127,42,0 +2020-04-15,Marshall,Iowa,19127,44,0 +2020-04-16,Marshall,Iowa,19127,49,0 +2020-04-17,Marshall,Iowa,19127,75,0 +2020-04-18,Marshall,Iowa,19127,83,0 +2020-04-19,Marshall,Iowa,19127,155,0 +2020-04-20,Marshall,Iowa,19127,173,0 +2020-04-21,Marshall,Iowa,19127,224,0 +2020-04-22,Marshall,Iowa,19127,239,0 +2020-04-23,Marshall,Iowa,19127,239,0 +2020-04-24,Marshall,Iowa,19127,271,0 +2020-04-25,Marshall,Iowa,19127,345,0 +2020-04-26,Marshall,Iowa,19127,380,0 +2020-04-27,Marshall,Iowa,19127,408,0 +2020-04-28,Marshall,Iowa,19127,434,0 +2020-04-29,Marshall,Iowa,19127,459,1 +2020-04-30,Marshall,Iowa,19127,467,2 +2020-05-01,Marshall,Iowa,19127,500,2 +2020-05-02,Marshall,Iowa,19127,545,2 +2020-05-03,Marshall,Iowa,19127,603,2 +2020-05-04,Marshall,Iowa,19127,630,2 +2020-05-05,Marshall,Iowa,19127,647,2 +2020-05-06,Marshall,Iowa,19127,655,3 +2020-05-07,Marshall,Iowa,19127,686,3 +2020-05-08,Marshall,Iowa,19127,701,3 +2020-05-09,Marshall,Iowa,19127,702,3 +2020-05-10,Marshall,Iowa,19127,721,3 +2020-05-11,Marshall,Iowa,19127,734,3 +2020-05-12,Marshall,Iowa,19127,738,3 +2020-05-13,Marshall,Iowa,19127,748,3 +2020-05-14,Marshall,Iowa,19127,759,5 +2020-05-15,Marshall,Iowa,19127,771,5 +2020-05-16,Marshall,Iowa,19127,778,5 +2020-05-17,Marshall,Iowa,19127,794,5 +2020-05-18,Marshall,Iowa,19127,804,5 +2020-05-19,Marshall,Iowa,19127,817,7 +2020-05-20,Marshall,Iowa,19127,834,7 +2020-05-21,Marshall,Iowa,19127,841,8 +2020-05-22,Marshall,Iowa,19127,854,10 +2020-05-23,Marshall,Iowa,19127,854,10 +2020-05-24,Marshall,Iowa,19127,867,11 +2020-05-25,Marshall,Iowa,19127,870,11 +2020-05-26,Marshall,Iowa,19127,875,13 +2020-05-27,Marshall,Iowa,19127,881,15 +2020-05-28,Marshall,Iowa,19127,884,16 +2020-05-29,Marshall,Iowa,19127,892,16 +2020-05-30,Marshall,Iowa,19127,892,16 +2020-05-31,Marshall,Iowa,19127,894,16 +2020-06-01,Marshall,Iowa,19127,897,16 +2020-06-02,Marshall,Iowa,19127,898,16 +2020-06-03,Marshall,Iowa,19127,901,18 +2020-06-04,Marshall,Iowa,19127,915,18 +2020-06-05,Marshall,Iowa,19127,918,18 +2020-06-06,Marshall,Iowa,19127,919,18 +2020-06-07,Marshall,Iowa,19127,926,18 +2020-06-08,Marshall,Iowa,19127,930,18 +2020-06-09,Marshall,Iowa,19127,931,18 +2020-06-10,Marshall,Iowa,19127,933,18 +2020-06-11,Marshall,Iowa,19127,938,18 +2020-06-12,Marshall,Iowa,19127,940,18 +2020-06-13,Marshall,Iowa,19127,941,18 +2020-06-14,Marshall,Iowa,19127,941,18 +2020-06-15,Marshall,Iowa,19127,941,18 +2020-06-16,Marshall,Iowa,19127,944,18 +2020-06-17,Marshall,Iowa,19127,949,18 +2020-06-18,Marshall,Iowa,19127,953,18 +2020-06-19,Marshall,Iowa,19127,967,18 +2020-06-20,Marshall,Iowa,19127,968,18 +2020-06-21,Marshall,Iowa,19127,974,18 +2020-06-22,Marshall,Iowa,19127,976,18 +2020-06-23,Marshall,Iowa,19127,978,18 +2020-06-24,Marshall,Iowa,19127,989,18 +2020-06-25,Marshall,Iowa,19127,994,18 +2020-06-26,Marshall,Iowa,19127,1005,18 +2020-06-27,Marshall,Iowa,19127,1009,18 +2020-06-28,Marshall,Iowa,19127,1009,18 +2020-06-29,Marshall,Iowa,19127,1012,18 +2020-06-30,Marshall,Iowa,19127,1012,18 +2020-07-01,Marshall,Iowa,19127,1017,18 +2020-07-02,Marshall,Iowa,19127,1035,19 +2020-07-03,Marshall,Iowa,19127,1041,19 +2020-07-04,Marshall,Iowa,19127,1044,19 +2020-07-05,Marshall,Iowa,19127,1050,19 +2020-07-06,Marshall,Iowa,19127,1049,19 +2020-07-07,Marshall,Iowa,19127,1060,19 +2020-07-08,Marshall,Iowa,19127,1063,19 +2020-07-09,Marshall,Iowa,19127,1068,19 +2020-04-04,Mills,Iowa,19129,1,0 +2020-04-05,Mills,Iowa,19129,1,0 +2020-04-06,Mills,Iowa,19129,1,0 +2020-04-07,Mills,Iowa,19129,1,0 +2020-04-08,Mills,Iowa,19129,1,0 +2020-04-09,Mills,Iowa,19129,1,0 +2020-04-10,Mills,Iowa,19129,1,0 +2020-04-11,Mills,Iowa,19129,1,0 +2020-04-12,Mills,Iowa,19129,1,0 +2020-04-13,Mills,Iowa,19129,2,0 +2020-04-14,Mills,Iowa,19129,2,0 +2020-04-15,Mills,Iowa,19129,2,0 +2020-04-16,Mills,Iowa,19129,2,0 +2020-04-17,Mills,Iowa,19129,2,0 +2020-04-18,Mills,Iowa,19129,2,0 +2020-04-19,Mills,Iowa,19129,2,0 +2020-04-20,Mills,Iowa,19129,2,0 +2020-04-21,Mills,Iowa,19129,2,0 +2020-04-22,Mills,Iowa,19129,2,0 +2020-04-23,Mills,Iowa,19129,2,0 +2020-04-24,Mills,Iowa,19129,2,0 +2020-04-25,Mills,Iowa,19129,2,0 +2020-04-26,Mills,Iowa,19129,2,0 +2020-04-27,Mills,Iowa,19129,3,0 +2020-04-28,Mills,Iowa,19129,2,0 +2020-04-29,Mills,Iowa,19129,2,0 +2020-04-30,Mills,Iowa,19129,2,0 +2020-05-01,Mills,Iowa,19129,2,0 +2020-05-02,Mills,Iowa,19129,3,0 +2020-05-03,Mills,Iowa,19129,3,0 +2020-05-04,Mills,Iowa,19129,3,0 +2020-05-05,Mills,Iowa,19129,3,0 +2020-05-06,Mills,Iowa,19129,5,0 +2020-05-07,Mills,Iowa,19129,5,0 +2020-05-08,Mills,Iowa,19129,7,0 +2020-05-09,Mills,Iowa,19129,8,0 +2020-05-10,Mills,Iowa,19129,8,0 +2020-05-11,Mills,Iowa,19129,8,0 +2020-05-12,Mills,Iowa,19129,9,0 +2020-05-13,Mills,Iowa,19129,9,0 +2020-05-14,Mills,Iowa,19129,9,0 +2020-05-15,Mills,Iowa,19129,9,0 +2020-05-16,Mills,Iowa,19129,10,0 +2020-05-17,Mills,Iowa,19129,10,0 +2020-05-18,Mills,Iowa,19129,12,0 +2020-05-19,Mills,Iowa,19129,12,0 +2020-05-20,Mills,Iowa,19129,13,0 +2020-05-21,Mills,Iowa,19129,13,0 +2020-05-22,Mills,Iowa,19129,14,0 +2020-05-23,Mills,Iowa,19129,14,0 +2020-05-24,Mills,Iowa,19129,14,0 +2020-05-25,Mills,Iowa,19129,16,0 +2020-05-26,Mills,Iowa,19129,16,0 +2020-05-27,Mills,Iowa,19129,16,0 +2020-05-28,Mills,Iowa,19129,16,0 +2020-05-29,Mills,Iowa,19129,16,0 +2020-05-30,Mills,Iowa,19129,19,0 +2020-05-31,Mills,Iowa,19129,19,0 +2020-06-01,Mills,Iowa,19129,19,0 +2020-06-02,Mills,Iowa,19129,19,0 +2020-06-03,Mills,Iowa,19129,20,0 +2020-06-04,Mills,Iowa,19129,20,0 +2020-06-05,Mills,Iowa,19129,20,0 +2020-06-06,Mills,Iowa,19129,20,0 +2020-06-07,Mills,Iowa,19129,21,0 +2020-06-08,Mills,Iowa,19129,21,0 +2020-06-09,Mills,Iowa,19129,21,0 +2020-06-10,Mills,Iowa,19129,21,0 +2020-06-11,Mills,Iowa,19129,22,0 +2020-06-12,Mills,Iowa,19129,22,0 +2020-06-13,Mills,Iowa,19129,23,0 +2020-06-14,Mills,Iowa,19129,24,0 +2020-06-15,Mills,Iowa,19129,24,0 +2020-06-16,Mills,Iowa,19129,24,0 +2020-06-17,Mills,Iowa,19129,25,0 +2020-06-18,Mills,Iowa,19129,26,0 +2020-06-19,Mills,Iowa,19129,30,0 +2020-06-20,Mills,Iowa,19129,29,0 +2020-06-21,Mills,Iowa,19129,31,0 +2020-06-22,Mills,Iowa,19129,31,0 +2020-06-23,Mills,Iowa,19129,31,0 +2020-06-24,Mills,Iowa,19129,31,0 +2020-06-25,Mills,Iowa,19129,32,0 +2020-06-26,Mills,Iowa,19129,32,0 +2020-06-27,Mills,Iowa,19129,32,0 +2020-06-28,Mills,Iowa,19129,32,0 +2020-06-29,Mills,Iowa,19129,32,0 +2020-06-30,Mills,Iowa,19129,34,0 +2020-07-01,Mills,Iowa,19129,34,0 +2020-07-02,Mills,Iowa,19129,36,0 +2020-07-03,Mills,Iowa,19129,36,0 +2020-07-04,Mills,Iowa,19129,36,0 +2020-07-05,Mills,Iowa,19129,37,0 +2020-07-06,Mills,Iowa,19129,37,0 +2020-07-07,Mills,Iowa,19129,39,0 +2020-07-08,Mills,Iowa,19129,43,0 +2020-07-09,Mills,Iowa,19129,46,0 +2020-04-01,Mitchell,Iowa,19131,2,0 +2020-04-02,Mitchell,Iowa,19131,2,0 +2020-04-03,Mitchell,Iowa,19131,2,0 +2020-04-04,Mitchell,Iowa,19131,2,0 +2020-04-05,Mitchell,Iowa,19131,2,0 +2020-04-06,Mitchell,Iowa,19131,2,0 +2020-04-07,Mitchell,Iowa,19131,2,0 +2020-04-08,Mitchell,Iowa,19131,2,0 +2020-04-09,Mitchell,Iowa,19131,2,0 +2020-04-10,Mitchell,Iowa,19131,2,0 +2020-04-11,Mitchell,Iowa,19131,2,0 +2020-04-12,Mitchell,Iowa,19131,2,0 +2020-04-13,Mitchell,Iowa,19131,2,0 +2020-04-14,Mitchell,Iowa,19131,2,0 +2020-04-15,Mitchell,Iowa,19131,2,0 +2020-04-16,Mitchell,Iowa,19131,2,0 +2020-04-17,Mitchell,Iowa,19131,2,0 +2020-04-18,Mitchell,Iowa,19131,2,0 +2020-04-19,Mitchell,Iowa,19131,2,0 +2020-04-20,Mitchell,Iowa,19131,2,0 +2020-04-21,Mitchell,Iowa,19131,2,0 +2020-04-22,Mitchell,Iowa,19131,2,0 +2020-04-23,Mitchell,Iowa,19131,2,0 +2020-04-24,Mitchell,Iowa,19131,2,0 +2020-04-25,Mitchell,Iowa,19131,2,0 +2020-04-26,Mitchell,Iowa,19131,2,0 +2020-04-27,Mitchell,Iowa,19131,2,0 +2020-04-28,Mitchell,Iowa,19131,2,0 +2020-04-29,Mitchell,Iowa,19131,2,0 +2020-04-30,Mitchell,Iowa,19131,2,0 +2020-05-01,Mitchell,Iowa,19131,3,0 +2020-05-02,Mitchell,Iowa,19131,3,0 +2020-05-03,Mitchell,Iowa,19131,3,0 +2020-05-04,Mitchell,Iowa,19131,3,0 +2020-05-05,Mitchell,Iowa,19131,3,0 +2020-05-06,Mitchell,Iowa,19131,3,0 +2020-05-07,Mitchell,Iowa,19131,3,0 +2020-05-08,Mitchell,Iowa,19131,3,0 +2020-05-09,Mitchell,Iowa,19131,3,0 +2020-05-10,Mitchell,Iowa,19131,3,0 +2020-05-11,Mitchell,Iowa,19131,3,0 +2020-05-12,Mitchell,Iowa,19131,3,0 +2020-05-13,Mitchell,Iowa,19131,3,0 +2020-05-14,Mitchell,Iowa,19131,3,0 +2020-05-15,Mitchell,Iowa,19131,4,0 +2020-05-16,Mitchell,Iowa,19131,4,0 +2020-05-17,Mitchell,Iowa,19131,4,0 +2020-05-18,Mitchell,Iowa,19131,4,0 +2020-05-19,Mitchell,Iowa,19131,4,0 +2020-05-20,Mitchell,Iowa,19131,4,0 +2020-05-21,Mitchell,Iowa,19131,5,0 +2020-05-22,Mitchell,Iowa,19131,5,0 +2020-05-23,Mitchell,Iowa,19131,5,0 +2020-05-24,Mitchell,Iowa,19131,4,0 +2020-05-25,Mitchell,Iowa,19131,4,0 +2020-05-26,Mitchell,Iowa,19131,4,0 +2020-05-27,Mitchell,Iowa,19131,5,0 +2020-05-28,Mitchell,Iowa,19131,5,0 +2020-05-29,Mitchell,Iowa,19131,4,0 +2020-05-30,Mitchell,Iowa,19131,4,0 +2020-05-31,Mitchell,Iowa,19131,4,0 +2020-06-01,Mitchell,Iowa,19131,4,0 +2020-06-02,Mitchell,Iowa,19131,4,0 +2020-06-03,Mitchell,Iowa,19131,4,0 +2020-06-04,Mitchell,Iowa,19131,4,0 +2020-06-05,Mitchell,Iowa,19131,4,0 +2020-06-06,Mitchell,Iowa,19131,4,0 +2020-06-07,Mitchell,Iowa,19131,4,0 +2020-06-08,Mitchell,Iowa,19131,5,0 +2020-06-09,Mitchell,Iowa,19131,5,0 +2020-06-10,Mitchell,Iowa,19131,6,0 +2020-06-11,Mitchell,Iowa,19131,6,0 +2020-06-12,Mitchell,Iowa,19131,6,0 +2020-06-13,Mitchell,Iowa,19131,7,0 +2020-06-14,Mitchell,Iowa,19131,7,0 +2020-06-15,Mitchell,Iowa,19131,8,0 +2020-06-16,Mitchell,Iowa,19131,8,0 +2020-06-17,Mitchell,Iowa,19131,9,0 +2020-06-18,Mitchell,Iowa,19131,8,0 +2020-06-19,Mitchell,Iowa,19131,9,0 +2020-06-20,Mitchell,Iowa,19131,8,0 +2020-06-21,Mitchell,Iowa,19131,8,0 +2020-06-22,Mitchell,Iowa,19131,9,0 +2020-06-23,Mitchell,Iowa,19131,9,0 +2020-06-24,Mitchell,Iowa,19131,9,0 +2020-06-25,Mitchell,Iowa,19131,15,0 +2020-06-26,Mitchell,Iowa,19131,16,0 +2020-06-27,Mitchell,Iowa,19131,16,0 +2020-06-28,Mitchell,Iowa,19131,21,0 +2020-06-29,Mitchell,Iowa,19131,22,0 +2020-06-30,Mitchell,Iowa,19131,24,0 +2020-07-01,Mitchell,Iowa,19131,28,0 +2020-07-02,Mitchell,Iowa,19131,34,0 +2020-07-03,Mitchell,Iowa,19131,37,0 +2020-07-04,Mitchell,Iowa,19131,37,0 +2020-07-05,Mitchell,Iowa,19131,37,0 +2020-07-06,Mitchell,Iowa,19131,39,0 +2020-07-07,Mitchell,Iowa,19131,41,0 +2020-07-08,Mitchell,Iowa,19131,41,0 +2020-07-09,Mitchell,Iowa,19131,43,0 +2020-03-26,Monona,Iowa,19133,1,0 +2020-03-27,Monona,Iowa,19133,2,0 +2020-03-28,Monona,Iowa,19133,2,0 +2020-03-29,Monona,Iowa,19133,2,0 +2020-03-30,Monona,Iowa,19133,5,0 +2020-03-31,Monona,Iowa,19133,5,0 +2020-04-01,Monona,Iowa,19133,5,0 +2020-04-02,Monona,Iowa,19133,5,0 +2020-04-03,Monona,Iowa,19133,6,0 +2020-04-04,Monona,Iowa,19133,6,0 +2020-04-05,Monona,Iowa,19133,6,0 +2020-04-06,Monona,Iowa,19133,6,0 +2020-04-07,Monona,Iowa,19133,6,0 +2020-04-08,Monona,Iowa,19133,6,0 +2020-04-09,Monona,Iowa,19133,6,0 +2020-04-10,Monona,Iowa,19133,6,0 +2020-04-11,Monona,Iowa,19133,6,0 +2020-04-12,Monona,Iowa,19133,6,0 +2020-04-13,Monona,Iowa,19133,6,0 +2020-04-14,Monona,Iowa,19133,6,0 +2020-04-15,Monona,Iowa,19133,6,0 +2020-04-16,Monona,Iowa,19133,6,0 +2020-04-17,Monona,Iowa,19133,6,0 +2020-04-18,Monona,Iowa,19133,6,0 +2020-04-19,Monona,Iowa,19133,6,0 +2020-04-20,Monona,Iowa,19133,7,0 +2020-04-21,Monona,Iowa,19133,7,0 +2020-04-22,Monona,Iowa,19133,7,0 +2020-04-23,Monona,Iowa,19133,7,0 +2020-04-24,Monona,Iowa,19133,7,0 +2020-04-25,Monona,Iowa,19133,7,0 +2020-04-26,Monona,Iowa,19133,7,0 +2020-04-27,Monona,Iowa,19133,7,0 +2020-04-28,Monona,Iowa,19133,7,0 +2020-04-29,Monona,Iowa,19133,7,0 +2020-04-30,Monona,Iowa,19133,7,0 +2020-05-01,Monona,Iowa,19133,9,0 +2020-05-02,Monona,Iowa,19133,10,0 +2020-05-03,Monona,Iowa,19133,10,0 +2020-05-04,Monona,Iowa,19133,10,0 +2020-05-05,Monona,Iowa,19133,10,0 +2020-05-06,Monona,Iowa,19133,11,0 +2020-05-07,Monona,Iowa,19133,11,0 +2020-05-08,Monona,Iowa,19133,11,0 +2020-05-09,Monona,Iowa,19133,12,0 +2020-05-10,Monona,Iowa,19133,12,0 +2020-05-11,Monona,Iowa,19133,12,0 +2020-05-12,Monona,Iowa,19133,13,0 +2020-05-13,Monona,Iowa,19133,13,0 +2020-05-14,Monona,Iowa,19133,14,0 +2020-05-15,Monona,Iowa,19133,15,0 +2020-05-16,Monona,Iowa,19133,15,0 +2020-05-17,Monona,Iowa,19133,15,0 +2020-05-18,Monona,Iowa,19133,15,0 +2020-05-19,Monona,Iowa,19133,16,0 +2020-05-20,Monona,Iowa,19133,18,0 +2020-05-21,Monona,Iowa,19133,19,0 +2020-05-22,Monona,Iowa,19133,19,0 +2020-05-23,Monona,Iowa,19133,19,0 +2020-05-24,Monona,Iowa,19133,24,0 +2020-05-25,Monona,Iowa,19133,24,0 +2020-05-26,Monona,Iowa,19133,24,0 +2020-05-27,Monona,Iowa,19133,24,0 +2020-05-28,Monona,Iowa,19133,24,0 +2020-05-29,Monona,Iowa,19133,24,0 +2020-05-30,Monona,Iowa,19133,24,0 +2020-05-31,Monona,Iowa,19133,25,0 +2020-06-01,Monona,Iowa,19133,25,0 +2020-06-02,Monona,Iowa,19133,25,0 +2020-06-03,Monona,Iowa,19133,25,0 +2020-06-04,Monona,Iowa,19133,25,0 +2020-06-05,Monona,Iowa,19133,27,0 +2020-06-06,Monona,Iowa,19133,27,0 +2020-06-07,Monona,Iowa,19133,27,0 +2020-06-08,Monona,Iowa,19133,27,0 +2020-06-09,Monona,Iowa,19133,28,0 +2020-06-10,Monona,Iowa,19133,29,0 +2020-06-11,Monona,Iowa,19133,29,0 +2020-06-12,Monona,Iowa,19133,32,0 +2020-06-13,Monona,Iowa,19133,43,0 +2020-06-14,Monona,Iowa,19133,43,0 +2020-06-15,Monona,Iowa,19133,49,0 +2020-06-16,Monona,Iowa,19133,49,0 +2020-06-17,Monona,Iowa,19133,53,0 +2020-06-18,Monona,Iowa,19133,56,0 +2020-06-19,Monona,Iowa,19133,56,0 +2020-06-20,Monona,Iowa,19133,57,0 +2020-06-21,Monona,Iowa,19133,59,0 +2020-06-22,Monona,Iowa,19133,59,0 +2020-06-23,Monona,Iowa,19133,63,0 +2020-06-24,Monona,Iowa,19133,65,0 +2020-06-25,Monona,Iowa,19133,66,0 +2020-06-26,Monona,Iowa,19133,67,0 +2020-06-27,Monona,Iowa,19133,67,0 +2020-06-28,Monona,Iowa,19133,69,0 +2020-06-29,Monona,Iowa,19133,70,0 +2020-06-30,Monona,Iowa,19133,70,0 +2020-07-01,Monona,Iowa,19133,71,0 +2020-07-02,Monona,Iowa,19133,74,0 +2020-07-03,Monona,Iowa,19133,74,0 +2020-07-04,Monona,Iowa,19133,76,0 +2020-07-05,Monona,Iowa,19133,76,0 +2020-07-06,Monona,Iowa,19133,77,0 +2020-07-07,Monona,Iowa,19133,77,0 +2020-07-08,Monona,Iowa,19133,77,0 +2020-07-09,Monona,Iowa,19133,77,0 +2020-05-03,Monroe,Iowa,19135,1,0 +2020-05-04,Monroe,Iowa,19135,1,0 +2020-05-05,Monroe,Iowa,19135,1,0 +2020-05-06,Monroe,Iowa,19135,1,0 +2020-05-07,Monroe,Iowa,19135,2,0 +2020-05-08,Monroe,Iowa,19135,2,0 +2020-05-09,Monroe,Iowa,19135,4,0 +2020-05-10,Monroe,Iowa,19135,4,0 +2020-05-11,Monroe,Iowa,19135,8,0 +2020-05-12,Monroe,Iowa,19135,7,0 +2020-05-13,Monroe,Iowa,19135,18,0 +2020-05-14,Monroe,Iowa,19135,18,0 +2020-05-15,Monroe,Iowa,19135,18,1 +2020-05-16,Monroe,Iowa,19135,19,1 +2020-05-17,Monroe,Iowa,19135,19,1 +2020-05-18,Monroe,Iowa,19135,22,1 +2020-05-19,Monroe,Iowa,19135,22,1 +2020-05-20,Monroe,Iowa,19135,22,2 +2020-05-21,Monroe,Iowa,19135,27,2 +2020-05-22,Monroe,Iowa,19135,30,3 +2020-05-23,Monroe,Iowa,19135,30,3 +2020-05-24,Monroe,Iowa,19135,33,4 +2020-05-25,Monroe,Iowa,19135,33,4 +2020-05-26,Monroe,Iowa,19135,35,4 +2020-05-27,Monroe,Iowa,19135,35,4 +2020-05-28,Monroe,Iowa,19135,38,5 +2020-05-29,Monroe,Iowa,19135,38,5 +2020-05-30,Monroe,Iowa,19135,38,5 +2020-05-31,Monroe,Iowa,19135,38,5 +2020-06-01,Monroe,Iowa,19135,38,5 +2020-06-02,Monroe,Iowa,19135,38,5 +2020-06-03,Monroe,Iowa,19135,38,5 +2020-06-04,Monroe,Iowa,19135,41,5 +2020-06-05,Monroe,Iowa,19135,42,6 +2020-06-06,Monroe,Iowa,19135,43,6 +2020-06-07,Monroe,Iowa,19135,43,6 +2020-06-08,Monroe,Iowa,19135,44,6 +2020-06-09,Monroe,Iowa,19135,46,6 +2020-06-10,Monroe,Iowa,19135,46,6 +2020-06-11,Monroe,Iowa,19135,46,6 +2020-06-12,Monroe,Iowa,19135,47,6 +2020-06-13,Monroe,Iowa,19135,47,6 +2020-06-14,Monroe,Iowa,19135,47,6 +2020-06-15,Monroe,Iowa,19135,47,6 +2020-06-16,Monroe,Iowa,19135,48,6 +2020-06-17,Monroe,Iowa,19135,48,6 +2020-06-18,Monroe,Iowa,19135,48,6 +2020-06-19,Monroe,Iowa,19135,49,6 +2020-06-20,Monroe,Iowa,19135,49,6 +2020-06-21,Monroe,Iowa,19135,49,6 +2020-06-22,Monroe,Iowa,19135,49,6 +2020-06-23,Monroe,Iowa,19135,49,6 +2020-06-24,Monroe,Iowa,19135,51,6 +2020-06-25,Monroe,Iowa,19135,50,6 +2020-06-26,Monroe,Iowa,19135,50,6 +2020-06-27,Monroe,Iowa,19135,50,6 +2020-06-28,Monroe,Iowa,19135,50,6 +2020-06-29,Monroe,Iowa,19135,50,6 +2020-06-30,Monroe,Iowa,19135,50,6 +2020-07-01,Monroe,Iowa,19135,50,6 +2020-07-02,Monroe,Iowa,19135,50,6 +2020-07-03,Monroe,Iowa,19135,50,6 +2020-07-04,Monroe,Iowa,19135,50,6 +2020-07-05,Monroe,Iowa,19135,51,6 +2020-07-06,Monroe,Iowa,19135,51,6 +2020-07-07,Monroe,Iowa,19135,51,7 +2020-07-08,Monroe,Iowa,19135,51,7 +2020-07-09,Monroe,Iowa,19135,51,7 +2020-03-27,Montgomery,Iowa,19137,1,0 +2020-03-28,Montgomery,Iowa,19137,1,0 +2020-03-29,Montgomery,Iowa,19137,1,0 +2020-03-30,Montgomery,Iowa,19137,1,0 +2020-03-31,Montgomery,Iowa,19137,1,0 +2020-04-01,Montgomery,Iowa,19137,1,0 +2020-04-02,Montgomery,Iowa,19137,1,0 +2020-04-03,Montgomery,Iowa,19137,1,0 +2020-04-04,Montgomery,Iowa,19137,1,0 +2020-04-05,Montgomery,Iowa,19137,1,0 +2020-04-06,Montgomery,Iowa,19137,1,0 +2020-04-07,Montgomery,Iowa,19137,1,0 +2020-04-08,Montgomery,Iowa,19137,1,0 +2020-04-09,Montgomery,Iowa,19137,1,0 +2020-04-10,Montgomery,Iowa,19137,1,0 +2020-04-11,Montgomery,Iowa,19137,1,0 +2020-04-12,Montgomery,Iowa,19137,1,0 +2020-04-13,Montgomery,Iowa,19137,1,0 +2020-04-14,Montgomery,Iowa,19137,1,0 +2020-04-15,Montgomery,Iowa,19137,1,0 +2020-04-16,Montgomery,Iowa,19137,1,0 +2020-04-17,Montgomery,Iowa,19137,1,0 +2020-04-18,Montgomery,Iowa,19137,1,0 +2020-04-19,Montgomery,Iowa,19137,1,0 +2020-04-20,Montgomery,Iowa,19137,1,0 +2020-04-21,Montgomery,Iowa,19137,1,0 +2020-04-22,Montgomery,Iowa,19137,1,0 +2020-04-23,Montgomery,Iowa,19137,1,0 +2020-04-24,Montgomery,Iowa,19137,1,0 +2020-04-25,Montgomery,Iowa,19137,1,0 +2020-04-26,Montgomery,Iowa,19137,1,0 +2020-04-27,Montgomery,Iowa,19137,1,0 +2020-04-28,Montgomery,Iowa,19137,1,0 +2020-04-29,Montgomery,Iowa,19137,1,0 +2020-04-30,Montgomery,Iowa,19137,1,0 +2020-05-01,Montgomery,Iowa,19137,1,0 +2020-05-02,Montgomery,Iowa,19137,1,0 +2020-05-03,Montgomery,Iowa,19137,1,0 +2020-05-04,Montgomery,Iowa,19137,1,0 +2020-05-05,Montgomery,Iowa,19137,1,0 +2020-05-06,Montgomery,Iowa,19137,1,0 +2020-05-07,Montgomery,Iowa,19137,2,0 +2020-05-08,Montgomery,Iowa,19137,3,0 +2020-05-09,Montgomery,Iowa,19137,4,0 +2020-05-10,Montgomery,Iowa,19137,4,0 +2020-05-11,Montgomery,Iowa,19137,4,0 +2020-05-12,Montgomery,Iowa,19137,5,0 +2020-05-13,Montgomery,Iowa,19137,5,0 +2020-05-14,Montgomery,Iowa,19137,5,0 +2020-05-15,Montgomery,Iowa,19137,5,0 +2020-05-16,Montgomery,Iowa,19137,6,0 +2020-05-17,Montgomery,Iowa,19137,6,0 +2020-05-18,Montgomery,Iowa,19137,5,0 +2020-05-19,Montgomery,Iowa,19137,5,0 +2020-05-20,Montgomery,Iowa,19137,5,0 +2020-05-21,Montgomery,Iowa,19137,5,0 +2020-05-22,Montgomery,Iowa,19137,5,0 +2020-05-23,Montgomery,Iowa,19137,5,0 +2020-05-24,Montgomery,Iowa,19137,6,0 +2020-05-25,Montgomery,Iowa,19137,6,0 +2020-05-26,Montgomery,Iowa,19137,6,0 +2020-05-27,Montgomery,Iowa,19137,6,0 +2020-05-28,Montgomery,Iowa,19137,6,0 +2020-05-29,Montgomery,Iowa,19137,6,0 +2020-05-30,Montgomery,Iowa,19137,7,0 +2020-05-31,Montgomery,Iowa,19137,7,0 +2020-06-01,Montgomery,Iowa,19137,8,0 +2020-06-02,Montgomery,Iowa,19137,8,0 +2020-06-03,Montgomery,Iowa,19137,8,1 +2020-06-04,Montgomery,Iowa,19137,10,1 +2020-06-05,Montgomery,Iowa,19137,9,2 +2020-06-06,Montgomery,Iowa,19137,9,2 +2020-06-07,Montgomery,Iowa,19137,9,2 +2020-06-08,Montgomery,Iowa,19137,9,2 +2020-06-09,Montgomery,Iowa,19137,9,2 +2020-06-10,Montgomery,Iowa,19137,9,2 +2020-06-11,Montgomery,Iowa,19137,9,2 +2020-06-12,Montgomery,Iowa,19137,9,2 +2020-06-13,Montgomery,Iowa,19137,9,2 +2020-06-14,Montgomery,Iowa,19137,9,2 +2020-06-15,Montgomery,Iowa,19137,9,2 +2020-06-16,Montgomery,Iowa,19137,9,2 +2020-06-17,Montgomery,Iowa,19137,9,2 +2020-06-18,Montgomery,Iowa,19137,9,2 +2020-06-19,Montgomery,Iowa,19137,10,2 +2020-06-20,Montgomery,Iowa,19137,10,2 +2020-06-21,Montgomery,Iowa,19137,10,2 +2020-06-22,Montgomery,Iowa,19137,10,2 +2020-06-23,Montgomery,Iowa,19137,10,2 +2020-06-24,Montgomery,Iowa,19137,10,2 +2020-06-25,Montgomery,Iowa,19137,10,2 +2020-06-26,Montgomery,Iowa,19137,10,2 +2020-06-27,Montgomery,Iowa,19137,10,2 +2020-06-28,Montgomery,Iowa,19137,10,2 +2020-06-29,Montgomery,Iowa,19137,10,2 +2020-06-30,Montgomery,Iowa,19137,10,2 +2020-07-01,Montgomery,Iowa,19137,10,2 +2020-07-02,Montgomery,Iowa,19137,10,2 +2020-07-03,Montgomery,Iowa,19137,10,2 +2020-07-04,Montgomery,Iowa,19137,10,2 +2020-07-05,Montgomery,Iowa,19137,10,2 +2020-07-06,Montgomery,Iowa,19137,10,2 +2020-07-07,Montgomery,Iowa,19137,10,2 +2020-07-08,Montgomery,Iowa,19137,10,2 +2020-07-09,Montgomery,Iowa,19137,11,2 +2020-03-19,Muscatine,Iowa,19139,1,0 +2020-03-20,Muscatine,Iowa,19139,1,0 +2020-03-21,Muscatine,Iowa,19139,2,0 +2020-03-22,Muscatine,Iowa,19139,2,0 +2020-03-23,Muscatine,Iowa,19139,3,0 +2020-03-24,Muscatine,Iowa,19139,5,0 +2020-03-25,Muscatine,Iowa,19139,6,0 +2020-03-26,Muscatine,Iowa,19139,6,0 +2020-03-27,Muscatine,Iowa,19139,8,0 +2020-03-28,Muscatine,Iowa,19139,10,0 +2020-03-29,Muscatine,Iowa,19139,10,0 +2020-03-30,Muscatine,Iowa,19139,13,0 +2020-03-31,Muscatine,Iowa,19139,16,1 +2020-04-01,Muscatine,Iowa,19139,18,1 +2020-04-02,Muscatine,Iowa,19139,19,1 +2020-04-03,Muscatine,Iowa,19139,22,1 +2020-04-04,Muscatine,Iowa,19139,27,1 +2020-04-05,Muscatine,Iowa,19139,33,1 +2020-04-06,Muscatine,Iowa,19139,41,1 +2020-04-07,Muscatine,Iowa,19139,51,1 +2020-04-08,Muscatine,Iowa,19139,61,1 +2020-04-09,Muscatine,Iowa,19139,70,1 +2020-04-10,Muscatine,Iowa,19139,80,1 +2020-04-11,Muscatine,Iowa,19139,91,1 +2020-04-12,Muscatine,Iowa,19139,96,1 +2020-04-13,Muscatine,Iowa,19139,102,2 +2020-04-14,Muscatine,Iowa,19139,122,2 +2020-04-15,Muscatine,Iowa,19139,133,2 +2020-04-16,Muscatine,Iowa,19139,148,2 +2020-04-17,Muscatine,Iowa,19139,163,2 +2020-04-18,Muscatine,Iowa,19139,176,3 +2020-04-19,Muscatine,Iowa,19139,207,4 +2020-04-20,Muscatine,Iowa,19139,218,4 +2020-04-21,Muscatine,Iowa,19139,230,4 +2020-04-22,Muscatine,Iowa,19139,240,6 +2020-04-23,Muscatine,Iowa,19139,252,7 +2020-04-24,Muscatine,Iowa,19139,270,7 +2020-04-25,Muscatine,Iowa,19139,295,7 +2020-04-26,Muscatine,Iowa,19139,305,7 +2020-04-27,Muscatine,Iowa,19139,311,7 +2020-04-28,Muscatine,Iowa,19139,319,8 +2020-04-29,Muscatine,Iowa,19139,329,9 +2020-04-30,Muscatine,Iowa,19139,336,14 +2020-05-01,Muscatine,Iowa,19139,346,16 +2020-05-02,Muscatine,Iowa,19139,360,16 +2020-05-03,Muscatine,Iowa,19139,372,16 +2020-05-04,Muscatine,Iowa,19139,387,16 +2020-05-05,Muscatine,Iowa,19139,415,16 +2020-05-06,Muscatine,Iowa,19139,435,17 +2020-05-07,Muscatine,Iowa,19139,441,17 +2020-05-08,Muscatine,Iowa,19139,446,18 +2020-05-09,Muscatine,Iowa,19139,471,19 +2020-05-10,Muscatine,Iowa,19139,488,22 +2020-05-11,Muscatine,Iowa,19139,495,23 +2020-05-12,Muscatine,Iowa,19139,502,24 +2020-05-13,Muscatine,Iowa,19139,513,27 +2020-05-14,Muscatine,Iowa,19139,515,28 +2020-05-15,Muscatine,Iowa,19139,519,29 +2020-05-16,Muscatine,Iowa,19139,524,32 +2020-05-17,Muscatine,Iowa,19139,532,33 +2020-05-18,Muscatine,Iowa,19139,532,33 +2020-05-19,Muscatine,Iowa,19139,531,33 +2020-05-20,Muscatine,Iowa,19139,538,35 +2020-05-21,Muscatine,Iowa,19139,540,35 +2020-05-22,Muscatine,Iowa,19139,540,38 +2020-05-23,Muscatine,Iowa,19139,540,38 +2020-05-24,Muscatine,Iowa,19139,544,39 +2020-05-25,Muscatine,Iowa,19139,545,39 +2020-05-26,Muscatine,Iowa,19139,545,40 +2020-05-27,Muscatine,Iowa,19139,549,41 +2020-05-28,Muscatine,Iowa,19139,549,41 +2020-05-29,Muscatine,Iowa,19139,554,41 +2020-05-30,Muscatine,Iowa,19139,557,41 +2020-05-31,Muscatine,Iowa,19139,557,41 +2020-06-01,Muscatine,Iowa,19139,557,41 +2020-06-02,Muscatine,Iowa,19139,559,41 +2020-06-03,Muscatine,Iowa,19139,564,41 +2020-06-04,Muscatine,Iowa,19139,566,41 +2020-06-05,Muscatine,Iowa,19139,567,41 +2020-06-06,Muscatine,Iowa,19139,569,41 +2020-06-07,Muscatine,Iowa,19139,566,41 +2020-06-08,Muscatine,Iowa,19139,566,41 +2020-06-09,Muscatine,Iowa,19139,567,42 +2020-06-10,Muscatine,Iowa,19139,569,43 +2020-06-11,Muscatine,Iowa,19139,569,43 +2020-06-12,Muscatine,Iowa,19139,572,43 +2020-06-13,Muscatine,Iowa,19139,574,43 +2020-06-14,Muscatine,Iowa,19139,574,43 +2020-06-15,Muscatine,Iowa,19139,574,43 +2020-06-16,Muscatine,Iowa,19139,573,43 +2020-06-17,Muscatine,Iowa,19139,577,43 +2020-06-18,Muscatine,Iowa,19139,578,43 +2020-06-19,Muscatine,Iowa,19139,581,43 +2020-06-20,Muscatine,Iowa,19139,581,43 +2020-06-21,Muscatine,Iowa,19139,584,43 +2020-06-22,Muscatine,Iowa,19139,586,43 +2020-06-23,Muscatine,Iowa,19139,590,43 +2020-06-24,Muscatine,Iowa,19139,595,43 +2020-06-25,Muscatine,Iowa,19139,597,44 +2020-06-26,Muscatine,Iowa,19139,600,44 +2020-06-27,Muscatine,Iowa,19139,603,44 +2020-06-28,Muscatine,Iowa,19139,606,44 +2020-06-29,Muscatine,Iowa,19139,611,44 +2020-06-30,Muscatine,Iowa,19139,619,44 +2020-07-01,Muscatine,Iowa,19139,622,44 +2020-07-02,Muscatine,Iowa,19139,624,44 +2020-07-03,Muscatine,Iowa,19139,624,44 +2020-07-04,Muscatine,Iowa,19139,629,44 +2020-07-05,Muscatine,Iowa,19139,638,44 +2020-07-06,Muscatine,Iowa,19139,644,44 +2020-07-07,Muscatine,Iowa,19139,649,44 +2020-07-08,Muscatine,Iowa,19139,675,44 +2020-07-09,Muscatine,Iowa,19139,684,44 +2020-04-02,O'Brien,Iowa,19141,2,0 +2020-04-03,O'Brien,Iowa,19141,3,0 +2020-04-04,O'Brien,Iowa,19141,3,0 +2020-04-05,O'Brien,Iowa,19141,3,0 +2020-04-06,O'Brien,Iowa,19141,3,0 +2020-04-07,O'Brien,Iowa,19141,3,0 +2020-04-08,O'Brien,Iowa,19141,3,0 +2020-04-09,O'Brien,Iowa,19141,3,0 +2020-04-10,O'Brien,Iowa,19141,3,0 +2020-04-11,O'Brien,Iowa,19141,3,0 +2020-04-12,O'Brien,Iowa,19141,3,0 +2020-04-13,O'Brien,Iowa,19141,3,0 +2020-04-14,O'Brien,Iowa,19141,3,0 +2020-04-15,O'Brien,Iowa,19141,3,0 +2020-04-16,O'Brien,Iowa,19141,3,0 +2020-04-17,O'Brien,Iowa,19141,3,0 +2020-04-18,O'Brien,Iowa,19141,3,0 +2020-04-19,O'Brien,Iowa,19141,3,0 +2020-04-20,O'Brien,Iowa,19141,3,0 +2020-04-21,O'Brien,Iowa,19141,3,0 +2020-04-22,O'Brien,Iowa,19141,3,0 +2020-04-23,O'Brien,Iowa,19141,3,0 +2020-04-24,O'Brien,Iowa,19141,5,0 +2020-04-25,O'Brien,Iowa,19141,4,0 +2020-04-26,O'Brien,Iowa,19141,5,0 +2020-04-27,O'Brien,Iowa,19141,6,0 +2020-04-28,O'Brien,Iowa,19141,7,0 +2020-04-29,O'Brien,Iowa,19141,7,0 +2020-04-30,O'Brien,Iowa,19141,8,0 +2020-05-01,O'Brien,Iowa,19141,9,0 +2020-05-02,O'Brien,Iowa,19141,10,0 +2020-05-03,O'Brien,Iowa,19141,11,0 +2020-05-04,O'Brien,Iowa,19141,11,0 +2020-05-05,O'Brien,Iowa,19141,11,0 +2020-05-06,O'Brien,Iowa,19141,11,0 +2020-05-07,O'Brien,Iowa,19141,13,0 +2020-05-08,O'Brien,Iowa,19141,13,0 +2020-05-09,O'Brien,Iowa,19141,15,0 +2020-05-10,O'Brien,Iowa,19141,15,0 +2020-05-11,O'Brien,Iowa,19141,16,0 +2020-05-12,O'Brien,Iowa,19141,18,0 +2020-05-13,O'Brien,Iowa,19141,19,0 +2020-05-14,O'Brien,Iowa,19141,21,0 +2020-05-15,O'Brien,Iowa,19141,20,0 +2020-05-16,O'Brien,Iowa,19141,22,0 +2020-05-17,O'Brien,Iowa,19141,22,0 +2020-05-18,O'Brien,Iowa,19141,22,0 +2020-05-19,O'Brien,Iowa,19141,21,0 +2020-05-20,O'Brien,Iowa,19141,23,0 +2020-05-21,O'Brien,Iowa,19141,24,0 +2020-05-22,O'Brien,Iowa,19141,24,0 +2020-05-23,O'Brien,Iowa,19141,24,0 +2020-05-24,O'Brien,Iowa,19141,24,0 +2020-05-25,O'Brien,Iowa,19141,24,0 +2020-05-26,O'Brien,Iowa,19141,27,0 +2020-05-27,O'Brien,Iowa,19141,27,0 +2020-05-28,O'Brien,Iowa,19141,28,0 +2020-05-29,O'Brien,Iowa,19141,29,0 +2020-05-30,O'Brien,Iowa,19141,28,0 +2020-05-31,O'Brien,Iowa,19141,31,0 +2020-06-01,O'Brien,Iowa,19141,32,0 +2020-06-02,O'Brien,Iowa,19141,33,0 +2020-06-03,O'Brien,Iowa,19141,37,0 +2020-06-04,O'Brien,Iowa,19141,40,0 +2020-06-05,O'Brien,Iowa,19141,44,0 +2020-06-06,O'Brien,Iowa,19141,46,0 +2020-06-07,O'Brien,Iowa,19141,51,0 +2020-06-08,O'Brien,Iowa,19141,54,0 +2020-06-09,O'Brien,Iowa,19141,55,1 +2020-06-10,O'Brien,Iowa,19141,60,1 +2020-06-11,O'Brien,Iowa,19141,62,1 +2020-06-12,O'Brien,Iowa,19141,64,1 +2020-06-13,O'Brien,Iowa,19141,64,1 +2020-06-14,O'Brien,Iowa,19141,65,1 +2020-06-15,O'Brien,Iowa,19141,66,1 +2020-06-16,O'Brien,Iowa,19141,67,1 +2020-06-17,O'Brien,Iowa,19141,69,1 +2020-06-18,O'Brien,Iowa,19141,69,1 +2020-06-19,O'Brien,Iowa,19141,70,1 +2020-06-20,O'Brien,Iowa,19141,70,1 +2020-06-21,O'Brien,Iowa,19141,72,1 +2020-06-22,O'Brien,Iowa,19141,73,1 +2020-06-23,O'Brien,Iowa,19141,74,1 +2020-06-24,O'Brien,Iowa,19141,79,1 +2020-06-25,O'Brien,Iowa,19141,78,1 +2020-06-26,O'Brien,Iowa,19141,80,1 +2020-06-27,O'Brien,Iowa,19141,80,1 +2020-06-28,O'Brien,Iowa,19141,80,1 +2020-06-29,O'Brien,Iowa,19141,81,1 +2020-06-30,O'Brien,Iowa,19141,83,1 +2020-07-01,O'Brien,Iowa,19141,85,1 +2020-07-02,O'Brien,Iowa,19141,86,1 +2020-07-03,O'Brien,Iowa,19141,86,1 +2020-07-04,O'Brien,Iowa,19141,87,1 +2020-07-05,O'Brien,Iowa,19141,88,1 +2020-07-06,O'Brien,Iowa,19141,88,1 +2020-07-07,O'Brien,Iowa,19141,89,1 +2020-07-08,O'Brien,Iowa,19141,91,1 +2020-07-09,O'Brien,Iowa,19141,92,1 +2020-04-10,Osceola,Iowa,19143,1,0 +2020-04-11,Osceola,Iowa,19143,1,0 +2020-04-12,Osceola,Iowa,19143,2,0 +2020-04-13,Osceola,Iowa,19143,2,0 +2020-04-14,Osceola,Iowa,19143,2,0 +2020-04-15,Osceola,Iowa,19143,2,0 +2020-04-16,Osceola,Iowa,19143,2,0 +2020-04-17,Osceola,Iowa,19143,2,0 +2020-04-18,Osceola,Iowa,19143,3,0 +2020-04-19,Osceola,Iowa,19143,3,0 +2020-04-20,Osceola,Iowa,19143,3,0 +2020-04-21,Osceola,Iowa,19143,4,0 +2020-04-22,Osceola,Iowa,19143,4,0 +2020-04-23,Osceola,Iowa,19143,6,0 +2020-04-24,Osceola,Iowa,19143,6,0 +2020-04-25,Osceola,Iowa,19143,7,0 +2020-04-26,Osceola,Iowa,19143,7,0 +2020-04-27,Osceola,Iowa,19143,8,0 +2020-04-28,Osceola,Iowa,19143,8,0 +2020-04-29,Osceola,Iowa,19143,8,0 +2020-04-30,Osceola,Iowa,19143,9,0 +2020-05-01,Osceola,Iowa,19143,10,0 +2020-05-02,Osceola,Iowa,19143,10,0 +2020-05-03,Osceola,Iowa,19143,13,0 +2020-05-04,Osceola,Iowa,19143,13,0 +2020-05-05,Osceola,Iowa,19143,13,0 +2020-05-06,Osceola,Iowa,19143,13,0 +2020-05-07,Osceola,Iowa,19143,17,0 +2020-05-08,Osceola,Iowa,19143,18,0 +2020-05-09,Osceola,Iowa,19143,19,0 +2020-05-10,Osceola,Iowa,19143,19,0 +2020-05-11,Osceola,Iowa,19143,20,0 +2020-05-12,Osceola,Iowa,19143,23,0 +2020-05-13,Osceola,Iowa,19143,23,0 +2020-05-14,Osceola,Iowa,19143,25,0 +2020-05-15,Osceola,Iowa,19143,25,0 +2020-05-16,Osceola,Iowa,19143,26,0 +2020-05-17,Osceola,Iowa,19143,26,0 +2020-05-18,Osceola,Iowa,19143,27,0 +2020-05-19,Osceola,Iowa,19143,28,0 +2020-05-20,Osceola,Iowa,19143,29,0 +2020-05-21,Osceola,Iowa,19143,30,0 +2020-05-22,Osceola,Iowa,19143,30,0 +2020-05-23,Osceola,Iowa,19143,30,0 +2020-05-24,Osceola,Iowa,19143,32,0 +2020-05-25,Osceola,Iowa,19143,32,0 +2020-05-26,Osceola,Iowa,19143,32,0 +2020-05-27,Osceola,Iowa,19143,31,0 +2020-05-28,Osceola,Iowa,19143,32,0 +2020-05-29,Osceola,Iowa,19143,32,0 +2020-05-30,Osceola,Iowa,19143,33,0 +2020-05-31,Osceola,Iowa,19143,33,0 +2020-06-01,Osceola,Iowa,19143,34,0 +2020-06-02,Osceola,Iowa,19143,34,0 +2020-06-03,Osceola,Iowa,19143,34,0 +2020-06-04,Osceola,Iowa,19143,35,0 +2020-06-05,Osceola,Iowa,19143,37,0 +2020-06-06,Osceola,Iowa,19143,37,0 +2020-06-07,Osceola,Iowa,19143,38,0 +2020-06-08,Osceola,Iowa,19143,41,0 +2020-06-09,Osceola,Iowa,19143,41,0 +2020-06-10,Osceola,Iowa,19143,53,0 +2020-06-11,Osceola,Iowa,19143,49,0 +2020-06-12,Osceola,Iowa,19143,49,0 +2020-06-13,Osceola,Iowa,19143,49,0 +2020-06-14,Osceola,Iowa,19143,49,0 +2020-06-15,Osceola,Iowa,19143,49,0 +2020-06-16,Osceola,Iowa,19143,49,0 +2020-06-17,Osceola,Iowa,19143,49,0 +2020-06-18,Osceola,Iowa,19143,49,0 +2020-06-19,Osceola,Iowa,19143,49,0 +2020-06-20,Osceola,Iowa,19143,49,0 +2020-06-21,Osceola,Iowa,19143,49,0 +2020-06-22,Osceola,Iowa,19143,49,0 +2020-06-23,Osceola,Iowa,19143,49,0 +2020-06-24,Osceola,Iowa,19143,49,0 +2020-06-25,Osceola,Iowa,19143,49,0 +2020-06-26,Osceola,Iowa,19143,49,0 +2020-06-27,Osceola,Iowa,19143,50,0 +2020-06-28,Osceola,Iowa,19143,51,0 +2020-06-29,Osceola,Iowa,19143,51,0 +2020-06-30,Osceola,Iowa,19143,52,0 +2020-07-01,Osceola,Iowa,19143,56,0 +2020-07-02,Osceola,Iowa,19143,58,0 +2020-07-03,Osceola,Iowa,19143,59,0 +2020-07-04,Osceola,Iowa,19143,60,0 +2020-07-05,Osceola,Iowa,19143,61,0 +2020-07-06,Osceola,Iowa,19143,62,0 +2020-07-07,Osceola,Iowa,19143,62,0 +2020-07-08,Osceola,Iowa,19143,64,0 +2020-07-09,Osceola,Iowa,19143,64,0 +2020-03-26,Page,Iowa,19145,1,0 +2020-03-27,Page,Iowa,19145,2,0 +2020-03-28,Page,Iowa,19145,2,0 +2020-03-29,Page,Iowa,19145,2,0 +2020-03-30,Page,Iowa,19145,2,0 +2020-03-31,Page,Iowa,19145,2,0 +2020-04-01,Page,Iowa,19145,2,0 +2020-04-02,Page,Iowa,19145,2,0 +2020-04-03,Page,Iowa,19145,2,0 +2020-04-04,Page,Iowa,19145,2,0 +2020-04-05,Page,Iowa,19145,2,0 +2020-04-06,Page,Iowa,19145,3,0 +2020-04-07,Page,Iowa,19145,3,0 +2020-04-08,Page,Iowa,19145,3,0 +2020-04-09,Page,Iowa,19145,3,0 +2020-04-10,Page,Iowa,19145,3,0 +2020-04-11,Page,Iowa,19145,3,0 +2020-04-12,Page,Iowa,19145,3,0 +2020-04-13,Page,Iowa,19145,3,0 +2020-04-14,Page,Iowa,19145,3,0 +2020-04-15,Page,Iowa,19145,3,0 +2020-04-16,Page,Iowa,19145,3,0 +2020-04-17,Page,Iowa,19145,3,0 +2020-04-18,Page,Iowa,19145,3,0 +2020-04-19,Page,Iowa,19145,4,0 +2020-04-20,Page,Iowa,19145,4,0 +2020-04-21,Page,Iowa,19145,4,0 +2020-04-22,Page,Iowa,19145,4,0 +2020-04-23,Page,Iowa,19145,5,0 +2020-04-24,Page,Iowa,19145,5,0 +2020-04-25,Page,Iowa,19145,5,0 +2020-04-26,Page,Iowa,19145,5,0 +2020-04-27,Page,Iowa,19145,5,0 +2020-04-28,Page,Iowa,19145,5,0 +2020-04-29,Page,Iowa,19145,5,0 +2020-04-30,Page,Iowa,19145,6,0 +2020-05-01,Page,Iowa,19145,7,0 +2020-05-02,Page,Iowa,19145,8,0 +2020-05-03,Page,Iowa,19145,8,0 +2020-05-04,Page,Iowa,19145,9,0 +2020-05-05,Page,Iowa,19145,9,0 +2020-05-06,Page,Iowa,19145,9,0 +2020-05-07,Page,Iowa,19145,9,0 +2020-05-08,Page,Iowa,19145,10,0 +2020-05-09,Page,Iowa,19145,9,0 +2020-05-10,Page,Iowa,19145,10,0 +2020-05-11,Page,Iowa,19145,10,0 +2020-05-12,Page,Iowa,19145,10,0 +2020-05-13,Page,Iowa,19145,10,0 +2020-05-14,Page,Iowa,19145,10,0 +2020-05-15,Page,Iowa,19145,10,0 +2020-05-16,Page,Iowa,19145,10,0 +2020-05-17,Page,Iowa,19145,10,0 +2020-05-18,Page,Iowa,19145,10,0 +2020-05-19,Page,Iowa,19145,10,0 +2020-05-20,Page,Iowa,19145,10,0 +2020-05-21,Page,Iowa,19145,10,0 +2020-05-22,Page,Iowa,19145,10,0 +2020-05-23,Page,Iowa,19145,10,0 +2020-05-24,Page,Iowa,19145,10,0 +2020-05-25,Page,Iowa,19145,10,0 +2020-05-26,Page,Iowa,19145,10,0 +2020-05-27,Page,Iowa,19145,11,0 +2020-05-28,Page,Iowa,19145,11,0 +2020-05-29,Page,Iowa,19145,11,0 +2020-05-30,Page,Iowa,19145,13,0 +2020-05-31,Page,Iowa,19145,13,0 +2020-06-01,Page,Iowa,19145,14,0 +2020-06-02,Page,Iowa,19145,14,0 +2020-06-03,Page,Iowa,19145,14,0 +2020-06-04,Page,Iowa,19145,14,0 +2020-06-05,Page,Iowa,19145,15,0 +2020-06-06,Page,Iowa,19145,16,0 +2020-06-07,Page,Iowa,19145,16,0 +2020-06-08,Page,Iowa,19145,16,0 +2020-06-09,Page,Iowa,19145,16,0 +2020-06-10,Page,Iowa,19145,16,0 +2020-06-11,Page,Iowa,19145,16,0 +2020-06-12,Page,Iowa,19145,16,0 +2020-06-13,Page,Iowa,19145,16,0 +2020-06-14,Page,Iowa,19145,16,0 +2020-06-15,Page,Iowa,19145,17,0 +2020-06-16,Page,Iowa,19145,17,0 +2020-06-17,Page,Iowa,19145,18,0 +2020-06-18,Page,Iowa,19145,18,0 +2020-06-19,Page,Iowa,19145,18,0 +2020-06-20,Page,Iowa,19145,18,0 +2020-06-21,Page,Iowa,19145,18,0 +2020-06-22,Page,Iowa,19145,18,0 +2020-06-23,Page,Iowa,19145,18,0 +2020-06-24,Page,Iowa,19145,18,0 +2020-06-25,Page,Iowa,19145,20,0 +2020-06-26,Page,Iowa,19145,20,0 +2020-06-27,Page,Iowa,19145,20,0 +2020-06-28,Page,Iowa,19145,20,0 +2020-06-29,Page,Iowa,19145,20,0 +2020-06-30,Page,Iowa,19145,20,0 +2020-07-01,Page,Iowa,19145,20,0 +2020-07-02,Page,Iowa,19145,20,0 +2020-07-03,Page,Iowa,19145,20,0 +2020-07-04,Page,Iowa,19145,20,0 +2020-07-05,Page,Iowa,19145,20,0 +2020-07-06,Page,Iowa,19145,21,0 +2020-07-07,Page,Iowa,19145,20,0 +2020-07-08,Page,Iowa,19145,20,0 +2020-07-09,Page,Iowa,19145,20,0 +2020-05-08,Palo Alto,Iowa,19147,1,0 +2020-05-09,Palo Alto,Iowa,19147,1,0 +2020-05-10,Palo Alto,Iowa,19147,1,0 +2020-05-11,Palo Alto,Iowa,19147,1,0 +2020-05-12,Palo Alto,Iowa,19147,1,0 +2020-05-13,Palo Alto,Iowa,19147,1,0 +2020-05-14,Palo Alto,Iowa,19147,1,0 +2020-05-15,Palo Alto,Iowa,19147,1,0 +2020-05-16,Palo Alto,Iowa,19147,2,0 +2020-05-17,Palo Alto,Iowa,19147,2,0 +2020-05-18,Palo Alto,Iowa,19147,2,0 +2020-05-19,Palo Alto,Iowa,19147,2,0 +2020-05-20,Palo Alto,Iowa,19147,2,0 +2020-05-21,Palo Alto,Iowa,19147,3,0 +2020-05-22,Palo Alto,Iowa,19147,3,0 +2020-05-23,Palo Alto,Iowa,19147,3,0 +2020-05-24,Palo Alto,Iowa,19147,3,0 +2020-05-25,Palo Alto,Iowa,19147,3,0 +2020-05-26,Palo Alto,Iowa,19147,3,0 +2020-05-27,Palo Alto,Iowa,19147,3,0 +2020-05-28,Palo Alto,Iowa,19147,3,0 +2020-05-29,Palo Alto,Iowa,19147,6,0 +2020-05-30,Palo Alto,Iowa,19147,6,0 +2020-05-31,Palo Alto,Iowa,19147,6,0 +2020-06-01,Palo Alto,Iowa,19147,7,0 +2020-06-02,Palo Alto,Iowa,19147,7,0 +2020-06-03,Palo Alto,Iowa,19147,7,0 +2020-06-04,Palo Alto,Iowa,19147,7,0 +2020-06-05,Palo Alto,Iowa,19147,7,0 +2020-06-06,Palo Alto,Iowa,19147,7,0 +2020-06-07,Palo Alto,Iowa,19147,7,0 +2020-06-08,Palo Alto,Iowa,19147,8,0 +2020-06-09,Palo Alto,Iowa,19147,9,0 +2020-06-10,Palo Alto,Iowa,19147,9,0 +2020-06-11,Palo Alto,Iowa,19147,13,0 +2020-06-12,Palo Alto,Iowa,19147,13,0 +2020-06-13,Palo Alto,Iowa,19147,13,0 +2020-06-14,Palo Alto,Iowa,19147,14,0 +2020-06-15,Palo Alto,Iowa,19147,16,0 +2020-06-16,Palo Alto,Iowa,19147,16,0 +2020-06-17,Palo Alto,Iowa,19147,16,0 +2020-06-18,Palo Alto,Iowa,19147,18,0 +2020-06-19,Palo Alto,Iowa,19147,20,0 +2020-06-20,Palo Alto,Iowa,19147,21,0 +2020-06-21,Palo Alto,Iowa,19147,22,0 +2020-06-22,Palo Alto,Iowa,19147,23,0 +2020-06-23,Palo Alto,Iowa,19147,23,0 +2020-06-24,Palo Alto,Iowa,19147,24,0 +2020-06-25,Palo Alto,Iowa,19147,24,0 +2020-06-26,Palo Alto,Iowa,19147,24,0 +2020-06-27,Palo Alto,Iowa,19147,26,0 +2020-06-28,Palo Alto,Iowa,19147,29,0 +2020-06-29,Palo Alto,Iowa,19147,30,0 +2020-06-30,Palo Alto,Iowa,19147,31,0 +2020-07-01,Palo Alto,Iowa,19147,31,0 +2020-07-02,Palo Alto,Iowa,19147,36,0 +2020-07-03,Palo Alto,Iowa,19147,36,0 +2020-07-04,Palo Alto,Iowa,19147,41,0 +2020-07-05,Palo Alto,Iowa,19147,41,0 +2020-07-06,Palo Alto,Iowa,19147,41,0 +2020-07-07,Palo Alto,Iowa,19147,41,0 +2020-07-08,Palo Alto,Iowa,19147,42,0 +2020-07-09,Palo Alto,Iowa,19147,46,0 +2020-04-03,Plymouth,Iowa,19149,1,0 +2020-04-04,Plymouth,Iowa,19149,3,0 +2020-04-05,Plymouth,Iowa,19149,4,0 +2020-04-06,Plymouth,Iowa,19149,4,0 +2020-04-07,Plymouth,Iowa,19149,4,0 +2020-04-08,Plymouth,Iowa,19149,4,0 +2020-04-09,Plymouth,Iowa,19149,4,0 +2020-04-10,Plymouth,Iowa,19149,4,0 +2020-04-11,Plymouth,Iowa,19149,4,0 +2020-04-12,Plymouth,Iowa,19149,4,0 +2020-04-13,Plymouth,Iowa,19149,4,0 +2020-04-14,Plymouth,Iowa,19149,4,0 +2020-04-15,Plymouth,Iowa,19149,4,0 +2020-04-16,Plymouth,Iowa,19149,5,0 +2020-04-17,Plymouth,Iowa,19149,6,0 +2020-04-18,Plymouth,Iowa,19149,8,0 +2020-04-19,Plymouth,Iowa,19149,8,0 +2020-04-20,Plymouth,Iowa,19149,8,0 +2020-04-21,Plymouth,Iowa,19149,9,0 +2020-04-22,Plymouth,Iowa,19149,9,0 +2020-04-23,Plymouth,Iowa,19149,9,0 +2020-04-24,Plymouth,Iowa,19149,8,0 +2020-04-25,Plymouth,Iowa,19149,11,0 +2020-04-26,Plymouth,Iowa,19149,11,0 +2020-04-27,Plymouth,Iowa,19149,10,0 +2020-04-28,Plymouth,Iowa,19149,12,0 +2020-04-29,Plymouth,Iowa,19149,12,0 +2020-04-30,Plymouth,Iowa,19149,12,0 +2020-05-01,Plymouth,Iowa,19149,14,0 +2020-05-02,Plymouth,Iowa,19149,17,0 +2020-05-03,Plymouth,Iowa,19149,23,0 +2020-05-04,Plymouth,Iowa,19149,27,0 +2020-05-05,Plymouth,Iowa,19149,33,0 +2020-05-06,Plymouth,Iowa,19149,34,0 +2020-05-07,Plymouth,Iowa,19149,44,0 +2020-05-08,Plymouth,Iowa,19149,48,0 +2020-05-09,Plymouth,Iowa,19149,51,0 +2020-05-10,Plymouth,Iowa,19149,59,0 +2020-05-11,Plymouth,Iowa,19149,62,0 +2020-05-12,Plymouth,Iowa,19149,67,0 +2020-05-13,Plymouth,Iowa,19149,71,0 +2020-05-14,Plymouth,Iowa,19149,74,0 +2020-05-15,Plymouth,Iowa,19149,78,0 +2020-05-16,Plymouth,Iowa,19149,82,0 +2020-05-17,Plymouth,Iowa,19149,83,0 +2020-05-18,Plymouth,Iowa,19149,86,0 +2020-05-19,Plymouth,Iowa,19149,89,0 +2020-05-20,Plymouth,Iowa,19149,94,0 +2020-05-21,Plymouth,Iowa,19149,98,0 +2020-05-22,Plymouth,Iowa,19149,102,0 +2020-05-23,Plymouth,Iowa,19149,102,0 +2020-05-24,Plymouth,Iowa,19149,112,0 +2020-05-25,Plymouth,Iowa,19149,117,0 +2020-05-26,Plymouth,Iowa,19149,118,1 +2020-05-27,Plymouth,Iowa,19149,119,1 +2020-05-28,Plymouth,Iowa,19149,120,1 +2020-05-29,Plymouth,Iowa,19149,127,2 +2020-05-30,Plymouth,Iowa,19149,129,2 +2020-05-31,Plymouth,Iowa,19149,133,2 +2020-06-01,Plymouth,Iowa,19149,134,2 +2020-06-02,Plymouth,Iowa,19149,135,2 +2020-06-03,Plymouth,Iowa,19149,141,2 +2020-06-04,Plymouth,Iowa,19149,149,2 +2020-06-05,Plymouth,Iowa,19149,156,2 +2020-06-06,Plymouth,Iowa,19149,156,2 +2020-06-07,Plymouth,Iowa,19149,163,2 +2020-06-08,Plymouth,Iowa,19149,172,4 +2020-06-09,Plymouth,Iowa,19149,172,4 +2020-06-10,Plymouth,Iowa,19149,179,4 +2020-06-11,Plymouth,Iowa,19149,188,4 +2020-06-12,Plymouth,Iowa,19149,196,4 +2020-06-13,Plymouth,Iowa,19149,196,4 +2020-06-14,Plymouth,Iowa,19149,200,4 +2020-06-15,Plymouth,Iowa,19149,201,4 +2020-06-16,Plymouth,Iowa,19149,204,4 +2020-06-17,Plymouth,Iowa,19149,209,4 +2020-06-18,Plymouth,Iowa,19149,216,4 +2020-06-19,Plymouth,Iowa,19149,230,4 +2020-06-20,Plymouth,Iowa,19149,230,4 +2020-06-21,Plymouth,Iowa,19149,247,4 +2020-06-22,Plymouth,Iowa,19149,249,4 +2020-06-23,Plymouth,Iowa,19149,253,4 +2020-06-24,Plymouth,Iowa,19149,260,4 +2020-06-25,Plymouth,Iowa,19149,272,4 +2020-06-26,Plymouth,Iowa,19149,283,4 +2020-06-27,Plymouth,Iowa,19149,288,4 +2020-06-28,Plymouth,Iowa,19149,291,4 +2020-06-29,Plymouth,Iowa,19149,297,4 +2020-06-30,Plymouth,Iowa,19149,303,4 +2020-07-01,Plymouth,Iowa,19149,308,4 +2020-07-02,Plymouth,Iowa,19149,313,4 +2020-07-03,Plymouth,Iowa,19149,313,5 +2020-07-04,Plymouth,Iowa,19149,316,5 +2020-07-05,Plymouth,Iowa,19149,322,5 +2020-07-06,Plymouth,Iowa,19149,321,5 +2020-07-07,Plymouth,Iowa,19149,324,5 +2020-07-08,Plymouth,Iowa,19149,328,5 +2020-07-09,Plymouth,Iowa,19149,336,5 +2020-04-27,Pocahontas,Iowa,19151,1,0 +2020-04-28,Pocahontas,Iowa,19151,1,0 +2020-04-29,Pocahontas,Iowa,19151,1,0 +2020-04-30,Pocahontas,Iowa,19151,1,0 +2020-05-01,Pocahontas,Iowa,19151,3,0 +2020-05-02,Pocahontas,Iowa,19151,3,0 +2020-05-03,Pocahontas,Iowa,19151,3,0 +2020-05-04,Pocahontas,Iowa,19151,3,0 +2020-05-05,Pocahontas,Iowa,19151,3,0 +2020-05-06,Pocahontas,Iowa,19151,3,0 +2020-05-07,Pocahontas,Iowa,19151,3,0 +2020-05-08,Pocahontas,Iowa,19151,3,0 +2020-05-09,Pocahontas,Iowa,19151,3,0 +2020-05-10,Pocahontas,Iowa,19151,3,0 +2020-05-11,Pocahontas,Iowa,19151,3,0 +2020-05-12,Pocahontas,Iowa,19151,3,0 +2020-05-13,Pocahontas,Iowa,19151,3,0 +2020-05-14,Pocahontas,Iowa,19151,3,0 +2020-05-15,Pocahontas,Iowa,19151,3,0 +2020-05-16,Pocahontas,Iowa,19151,3,0 +2020-05-17,Pocahontas,Iowa,19151,3,0 +2020-05-18,Pocahontas,Iowa,19151,3,0 +2020-05-19,Pocahontas,Iowa,19151,3,0 +2020-05-20,Pocahontas,Iowa,19151,3,0 +2020-05-21,Pocahontas,Iowa,19151,3,0 +2020-05-22,Pocahontas,Iowa,19151,3,0 +2020-05-23,Pocahontas,Iowa,19151,3,0 +2020-05-24,Pocahontas,Iowa,19151,4,0 +2020-05-25,Pocahontas,Iowa,19151,4,0 +2020-05-26,Pocahontas,Iowa,19151,6,0 +2020-05-27,Pocahontas,Iowa,19151,10,0 +2020-05-28,Pocahontas,Iowa,19151,10,0 +2020-05-29,Pocahontas,Iowa,19151,11,0 +2020-05-30,Pocahontas,Iowa,19151,11,0 +2020-05-31,Pocahontas,Iowa,19151,12,0 +2020-06-01,Pocahontas,Iowa,19151,13,0 +2020-06-02,Pocahontas,Iowa,19151,13,0 +2020-06-03,Pocahontas,Iowa,19151,14,0 +2020-06-04,Pocahontas,Iowa,19151,18,0 +2020-06-05,Pocahontas,Iowa,19151,20,0 +2020-06-06,Pocahontas,Iowa,19151,20,0 +2020-06-07,Pocahontas,Iowa,19151,20,0 +2020-06-08,Pocahontas,Iowa,19151,21,0 +2020-06-09,Pocahontas,Iowa,19151,21,0 +2020-06-10,Pocahontas,Iowa,19151,29,0 +2020-06-11,Pocahontas,Iowa,19151,30,0 +2020-06-12,Pocahontas,Iowa,19151,30,0 +2020-06-13,Pocahontas,Iowa,19151,30,0 +2020-06-14,Pocahontas,Iowa,19151,30,0 +2020-06-15,Pocahontas,Iowa,19151,30,0 +2020-06-16,Pocahontas,Iowa,19151,30,0 +2020-06-17,Pocahontas,Iowa,19151,32,0 +2020-06-18,Pocahontas,Iowa,19151,32,0 +2020-06-19,Pocahontas,Iowa,19151,36,0 +2020-06-20,Pocahontas,Iowa,19151,38,1 +2020-06-21,Pocahontas,Iowa,19151,38,1 +2020-06-22,Pocahontas,Iowa,19151,39,1 +2020-06-23,Pocahontas,Iowa,19151,39,1 +2020-06-24,Pocahontas,Iowa,19151,41,1 +2020-06-25,Pocahontas,Iowa,19151,46,1 +2020-06-26,Pocahontas,Iowa,19151,50,1 +2020-06-27,Pocahontas,Iowa,19151,66,1 +2020-06-28,Pocahontas,Iowa,19151,70,1 +2020-06-29,Pocahontas,Iowa,19151,73,1 +2020-06-30,Pocahontas,Iowa,19151,75,1 +2020-07-01,Pocahontas,Iowa,19151,88,1 +2020-07-02,Pocahontas,Iowa,19151,93,1 +2020-07-03,Pocahontas,Iowa,19151,93,1 +2020-07-04,Pocahontas,Iowa,19151,95,1 +2020-07-05,Pocahontas,Iowa,19151,96,1 +2020-07-06,Pocahontas,Iowa,19151,97,1 +2020-07-07,Pocahontas,Iowa,19151,98,1 +2020-07-08,Pocahontas,Iowa,19151,103,1 +2020-07-09,Pocahontas,Iowa,19151,104,1 +2020-03-15,Polk,Iowa,19153,1,0 +2020-03-16,Polk,Iowa,19153,1,0 +2020-03-17,Polk,Iowa,19153,1,0 +2020-03-18,Polk,Iowa,19153,3,0 +2020-03-19,Polk,Iowa,19153,6,0 +2020-03-20,Polk,Iowa,19153,6,0 +2020-03-21,Polk,Iowa,19153,10,0 +2020-03-22,Polk,Iowa,19153,10,0 +2020-03-23,Polk,Iowa,19153,12,0 +2020-03-24,Polk,Iowa,19153,17,0 +2020-03-25,Polk,Iowa,19153,20,0 +2020-03-26,Polk,Iowa,19153,24,0 +2020-03-27,Polk,Iowa,19153,28,0 +2020-03-28,Polk,Iowa,19153,40,0 +2020-03-29,Polk,Iowa,19153,50,0 +2020-03-30,Polk,Iowa,19153,61,0 +2020-03-31,Polk,Iowa,19153,76,0 +2020-04-01,Polk,Iowa,19153,81,1 +2020-04-02,Polk,Iowa,19153,87,1 +2020-04-03,Polk,Iowa,19153,100,1 +2020-04-04,Polk,Iowa,19153,109,1 +2020-04-05,Polk,Iowa,19153,122,5 +2020-04-06,Polk,Iowa,19153,125,5 +2020-04-07,Polk,Iowa,19153,127,5 +2020-04-08,Polk,Iowa,19153,134,5 +2020-04-09,Polk,Iowa,19153,140,5 +2020-04-10,Polk,Iowa,19153,147,5 +2020-04-11,Polk,Iowa,19153,163,5 +2020-04-12,Polk,Iowa,19153,177,5 +2020-04-13,Polk,Iowa,19153,195,5 +2020-04-14,Polk,Iowa,19153,213,5 +2020-04-15,Polk,Iowa,19153,224,7 +2020-04-16,Polk,Iowa,19153,256,10 +2020-04-17,Polk,Iowa,19153,277,10 +2020-04-18,Polk,Iowa,19153,293,13 +2020-04-19,Polk,Iowa,19153,333,13 +2020-04-20,Polk,Iowa,19153,387,13 +2020-04-21,Polk,Iowa,19153,415,15 +2020-04-22,Polk,Iowa,19153,438,16 +2020-04-23,Polk,Iowa,19153,486,20 +2020-04-24,Polk,Iowa,19153,575,22 +2020-04-25,Polk,Iowa,19153,660,24 +2020-04-26,Polk,Iowa,19153,732,24 +2020-04-27,Polk,Iowa,19153,756,27 +2020-04-28,Polk,Iowa,19153,813,31 +2020-04-29,Polk,Iowa,19153,905,32 +2020-04-30,Polk,Iowa,19153,985,35 +2020-05-01,Polk,Iowa,19153,1176,37 +2020-05-02,Polk,Iowa,19153,1350,38 +2020-05-03,Polk,Iowa,19153,1476,40 +2020-05-04,Polk,Iowa,19153,1661,40 +2020-05-05,Polk,Iowa,19153,1778,42 +2020-05-06,Polk,Iowa,19153,1875,45 +2020-05-07,Polk,Iowa,19153,2053,54 +2020-05-08,Polk,Iowa,19153,2150,54 +2020-05-09,Polk,Iowa,19153,2194,58 +2020-05-10,Polk,Iowa,19153,2238,60 +2020-05-11,Polk,Iowa,19153,2368,61 +2020-05-12,Polk,Iowa,19153,2447,64 +2020-05-13,Polk,Iowa,19153,2551,65 +2020-05-14,Polk,Iowa,19153,2634,67 +2020-05-15,Polk,Iowa,19153,2767,76 +2020-05-16,Polk,Iowa,19153,2845,78 +2020-05-17,Polk,Iowa,19153,2922,79 +2020-05-18,Polk,Iowa,19153,3001,81 +2020-05-19,Polk,Iowa,19153,3128,83 +2020-05-20,Polk,Iowa,19153,3298,90 +2020-05-21,Polk,Iowa,19153,3381,91 +2020-05-22,Polk,Iowa,19153,3525,105 +2020-05-23,Polk,Iowa,19153,3525,105 +2020-05-24,Polk,Iowa,19153,3744,108 +2020-05-25,Polk,Iowa,19153,3795,109 +2020-05-26,Polk,Iowa,19153,3833,112 +2020-05-27,Polk,Iowa,19153,3890,115 +2020-05-28,Polk,Iowa,19153,3959,119 +2020-05-29,Polk,Iowa,19153,4072,123 +2020-05-30,Polk,Iowa,19153,4189,125 +2020-05-31,Polk,Iowa,19153,4239,126 +2020-06-01,Polk,Iowa,19153,4269,133 +2020-06-02,Polk,Iowa,19153,4344,133 +2020-06-03,Polk,Iowa,19153,4418,134 +2020-06-04,Polk,Iowa,19153,4565,139 +2020-06-05,Polk,Iowa,19153,4650,142 +2020-06-06,Polk,Iowa,19153,4691,143 +2020-06-07,Polk,Iowa,19153,4750,144 +2020-06-08,Polk,Iowa,19153,4841,150 +2020-06-09,Polk,Iowa,19153,4868,151 +2020-06-10,Polk,Iowa,19153,4924,155 +2020-06-11,Polk,Iowa,19153,4991,156 +2020-06-12,Polk,Iowa,19153,5046,159 +2020-06-13,Polk,Iowa,19153,5119,160 +2020-06-14,Polk,Iowa,19153,5169,161 +2020-06-15,Polk,Iowa,19153,5180,163 +2020-06-16,Polk,Iowa,19153,5210,163 +2020-06-17,Polk,Iowa,19153,5276,164 +2020-06-18,Polk,Iowa,19153,5323,165 +2020-06-19,Polk,Iowa,19153,5410,165 +2020-06-20,Polk,Iowa,19153,5436,166 +2020-06-21,Polk,Iowa,19153,5508,167 +2020-06-22,Polk,Iowa,19153,5548,168 +2020-06-23,Polk,Iowa,19153,5582,169 +2020-06-24,Polk,Iowa,19153,5645,171 +2020-06-25,Polk,Iowa,19153,5738,174 +2020-06-26,Polk,Iowa,19153,5800,174 +2020-06-27,Polk,Iowa,19153,5881,174 +2020-06-28,Polk,Iowa,19153,5947,174 +2020-06-29,Polk,Iowa,19153,6007,177 +2020-06-30,Polk,Iowa,19153,6046,177 +2020-07-01,Polk,Iowa,19153,6139,178 +2020-07-02,Polk,Iowa,19153,6275,178 +2020-07-03,Polk,Iowa,19153,6366,179 +2020-07-04,Polk,Iowa,19153,6494,179 +2020-07-05,Polk,Iowa,19153,6614,179 +2020-07-06,Polk,Iowa,19153,6638,180 +2020-07-07,Polk,Iowa,19153,6739,181 +2020-07-08,Polk,Iowa,19153,6846,182 +2020-07-09,Polk,Iowa,19153,7002,182 +2020-03-09,Pottawattamie,Iowa,19155,1,0 +2020-03-10,Pottawattamie,Iowa,19155,1,0 +2020-03-11,Pottawattamie,Iowa,19155,1,0 +2020-03-12,Pottawattamie,Iowa,19155,1,0 +2020-03-13,Pottawattamie,Iowa,19155,1,0 +2020-03-14,Pottawattamie,Iowa,19155,1,0 +2020-03-15,Pottawattamie,Iowa,19155,1,0 +2020-03-16,Pottawattamie,Iowa,19155,1,0 +2020-03-17,Pottawattamie,Iowa,19155,1,0 +2020-03-18,Pottawattamie,Iowa,19155,1,0 +2020-03-19,Pottawattamie,Iowa,19155,1,0 +2020-03-20,Pottawattamie,Iowa,19155,1,0 +2020-03-21,Pottawattamie,Iowa,19155,2,0 +2020-03-22,Pottawattamie,Iowa,19155,2,0 +2020-03-23,Pottawattamie,Iowa,19155,2,0 +2020-03-24,Pottawattamie,Iowa,19155,2,0 +2020-03-25,Pottawattamie,Iowa,19155,4,0 +2020-03-26,Pottawattamie,Iowa,19155,3,0 +2020-03-27,Pottawattamie,Iowa,19155,3,0 +2020-03-28,Pottawattamie,Iowa,19155,3,0 +2020-03-29,Pottawattamie,Iowa,19155,3,0 +2020-03-30,Pottawattamie,Iowa,19155,3,0 +2020-03-31,Pottawattamie,Iowa,19155,5,0 +2020-04-01,Pottawattamie,Iowa,19155,5,0 +2020-04-02,Pottawattamie,Iowa,19155,5,0 +2020-04-03,Pottawattamie,Iowa,19155,6,0 +2020-04-04,Pottawattamie,Iowa,19155,8,0 +2020-04-05,Pottawattamie,Iowa,19155,7,0 +2020-04-06,Pottawattamie,Iowa,19155,8,0 +2020-04-07,Pottawattamie,Iowa,19155,9,0 +2020-04-08,Pottawattamie,Iowa,19155,11,0 +2020-04-09,Pottawattamie,Iowa,19155,11,0 +2020-04-10,Pottawattamie,Iowa,19155,12,0 +2020-04-11,Pottawattamie,Iowa,19155,12,0 +2020-04-12,Pottawattamie,Iowa,19155,12,0 +2020-04-13,Pottawattamie,Iowa,19155,12,1 +2020-04-14,Pottawattamie,Iowa,19155,14,1 +2020-04-15,Pottawattamie,Iowa,19155,14,1 +2020-04-16,Pottawattamie,Iowa,19155,15,1 +2020-04-17,Pottawattamie,Iowa,19155,18,1 +2020-04-18,Pottawattamie,Iowa,19155,18,1 +2020-04-19,Pottawattamie,Iowa,19155,18,1 +2020-04-20,Pottawattamie,Iowa,19155,18,1 +2020-04-21,Pottawattamie,Iowa,19155,18,1 +2020-04-22,Pottawattamie,Iowa,19155,18,1 +2020-04-23,Pottawattamie,Iowa,19155,18,1 +2020-04-24,Pottawattamie,Iowa,19155,20,1 +2020-04-25,Pottawattamie,Iowa,19155,20,1 +2020-04-26,Pottawattamie,Iowa,19155,25,1 +2020-04-27,Pottawattamie,Iowa,19155,27,1 +2020-04-28,Pottawattamie,Iowa,19155,28,1 +2020-04-29,Pottawattamie,Iowa,19155,30,2 +2020-04-30,Pottawattamie,Iowa,19155,33,2 +2020-05-01,Pottawattamie,Iowa,19155,37,2 +2020-05-02,Pottawattamie,Iowa,19155,41,2 +2020-05-03,Pottawattamie,Iowa,19155,44,2 +2020-05-04,Pottawattamie,Iowa,19155,49,2 +2020-05-05,Pottawattamie,Iowa,19155,61,2 +2020-05-06,Pottawattamie,Iowa,19155,63,2 +2020-05-07,Pottawattamie,Iowa,19155,71,2 +2020-05-08,Pottawattamie,Iowa,19155,76,2 +2020-05-09,Pottawattamie,Iowa,19155,82,2 +2020-05-10,Pottawattamie,Iowa,19155,85,2 +2020-05-11,Pottawattamie,Iowa,19155,86,2 +2020-05-12,Pottawattamie,Iowa,19155,91,2 +2020-05-13,Pottawattamie,Iowa,19155,105,2 +2020-05-14,Pottawattamie,Iowa,19155,138,2 +2020-05-15,Pottawattamie,Iowa,19155,151,2 +2020-05-16,Pottawattamie,Iowa,19155,150,2 +2020-05-17,Pottawattamie,Iowa,19155,161,2 +2020-05-18,Pottawattamie,Iowa,19155,170,2 +2020-05-19,Pottawattamie,Iowa,19155,174,2 +2020-05-20,Pottawattamie,Iowa,19155,185,3 +2020-05-21,Pottawattamie,Iowa,19155,190,5 +2020-05-22,Pottawattamie,Iowa,19155,198,5 +2020-05-23,Pottawattamie,Iowa,19155,198,5 +2020-05-24,Pottawattamie,Iowa,19155,210,6 +2020-05-25,Pottawattamie,Iowa,19155,215,7 +2020-05-26,Pottawattamie,Iowa,19155,220,7 +2020-05-27,Pottawattamie,Iowa,19155,228,7 +2020-05-28,Pottawattamie,Iowa,19155,234,8 +2020-05-29,Pottawattamie,Iowa,19155,245,8 +2020-05-30,Pottawattamie,Iowa,19155,259,8 +2020-05-31,Pottawattamie,Iowa,19155,264,8 +2020-06-01,Pottawattamie,Iowa,19155,270,8 +2020-06-02,Pottawattamie,Iowa,19155,274,8 +2020-06-03,Pottawattamie,Iowa,19155,300,10 +2020-06-04,Pottawattamie,Iowa,19155,315,10 +2020-06-05,Pottawattamie,Iowa,19155,333,10 +2020-06-06,Pottawattamie,Iowa,19155,341,10 +2020-06-07,Pottawattamie,Iowa,19155,355,10 +2020-06-08,Pottawattamie,Iowa,19155,382,10 +2020-06-09,Pottawattamie,Iowa,19155,389,10 +2020-06-10,Pottawattamie,Iowa,19155,439,10 +2020-06-11,Pottawattamie,Iowa,19155,466,10 +2020-06-12,Pottawattamie,Iowa,19155,489,10 +2020-06-13,Pottawattamie,Iowa,19155,503,10 +2020-06-14,Pottawattamie,Iowa,19155,507,11 +2020-06-15,Pottawattamie,Iowa,19155,514,11 +2020-06-16,Pottawattamie,Iowa,19155,517,11 +2020-06-17,Pottawattamie,Iowa,19155,541,11 +2020-06-18,Pottawattamie,Iowa,19155,553,11 +2020-06-19,Pottawattamie,Iowa,19155,579,11 +2020-06-20,Pottawattamie,Iowa,19155,587,11 +2020-06-21,Pottawattamie,Iowa,19155,620,11 +2020-06-22,Pottawattamie,Iowa,19155,629,11 +2020-06-23,Pottawattamie,Iowa,19155,626,11 +2020-06-24,Pottawattamie,Iowa,19155,643,11 +2020-06-25,Pottawattamie,Iowa,19155,655,11 +2020-06-26,Pottawattamie,Iowa,19155,663,11 +2020-06-27,Pottawattamie,Iowa,19155,669,11 +2020-06-28,Pottawattamie,Iowa,19155,674,11 +2020-06-29,Pottawattamie,Iowa,19155,683,11 +2020-06-30,Pottawattamie,Iowa,19155,692,11 +2020-07-01,Pottawattamie,Iowa,19155,707,11 +2020-07-02,Pottawattamie,Iowa,19155,719,11 +2020-07-03,Pottawattamie,Iowa,19155,719,11 +2020-07-04,Pottawattamie,Iowa,19155,721,11 +2020-07-05,Pottawattamie,Iowa,19155,728,11 +2020-07-06,Pottawattamie,Iowa,19155,737,12 +2020-07-07,Pottawattamie,Iowa,19155,745,12 +2020-07-08,Pottawattamie,Iowa,19155,758,12 +2020-07-09,Pottawattamie,Iowa,19155,784,12 +2020-03-22,Poweshiek,Iowa,19157,1,0 +2020-03-23,Poweshiek,Iowa,19157,1,0 +2020-03-24,Poweshiek,Iowa,19157,2,0 +2020-03-25,Poweshiek,Iowa,19157,4,0 +2020-03-26,Poweshiek,Iowa,19157,4,0 +2020-03-27,Poweshiek,Iowa,19157,4,1 +2020-03-28,Poweshiek,Iowa,19157,5,1 +2020-03-29,Poweshiek,Iowa,19157,5,1 +2020-03-30,Poweshiek,Iowa,19157,5,1 +2020-03-31,Poweshiek,Iowa,19157,5,1 +2020-04-01,Poweshiek,Iowa,19157,6,1 +2020-04-02,Poweshiek,Iowa,19157,6,1 +2020-04-03,Poweshiek,Iowa,19157,6,1 +2020-04-04,Poweshiek,Iowa,19157,6,1 +2020-04-05,Poweshiek,Iowa,19157,6,1 +2020-04-06,Poweshiek,Iowa,19157,6,1 +2020-04-07,Poweshiek,Iowa,19157,6,1 +2020-04-08,Poweshiek,Iowa,19157,6,1 +2020-04-09,Poweshiek,Iowa,19157,6,1 +2020-04-10,Poweshiek,Iowa,19157,6,1 +2020-04-11,Poweshiek,Iowa,19157,6,1 +2020-04-12,Poweshiek,Iowa,19157,6,1 +2020-04-13,Poweshiek,Iowa,19157,6,1 +2020-04-14,Poweshiek,Iowa,19157,6,1 +2020-04-15,Poweshiek,Iowa,19157,6,1 +2020-04-16,Poweshiek,Iowa,19157,7,1 +2020-04-17,Poweshiek,Iowa,19157,7,1 +2020-04-18,Poweshiek,Iowa,19157,8,1 +2020-04-19,Poweshiek,Iowa,19157,10,1 +2020-04-20,Poweshiek,Iowa,19157,13,1 +2020-04-21,Poweshiek,Iowa,19157,14,1 +2020-04-22,Poweshiek,Iowa,19157,14,1 +2020-04-23,Poweshiek,Iowa,19157,20,1 +2020-04-24,Poweshiek,Iowa,19157,39,1 +2020-04-25,Poweshiek,Iowa,19157,50,1 +2020-04-26,Poweshiek,Iowa,19157,50,1 +2020-04-27,Poweshiek,Iowa,19157,50,2 +2020-04-28,Poweshiek,Iowa,19157,50,2 +2020-04-29,Poweshiek,Iowa,19157,55,2 +2020-04-30,Poweshiek,Iowa,19157,56,2 +2020-05-01,Poweshiek,Iowa,19157,57,2 +2020-05-02,Poweshiek,Iowa,19157,61,2 +2020-05-03,Poweshiek,Iowa,19157,68,4 +2020-05-04,Poweshiek,Iowa,19157,73,5 +2020-05-05,Poweshiek,Iowa,19157,73,5 +2020-05-06,Poweshiek,Iowa,19157,73,5 +2020-05-07,Poweshiek,Iowa,19157,78,5 +2020-05-08,Poweshiek,Iowa,19157,78,5 +2020-05-09,Poweshiek,Iowa,19157,79,5 +2020-05-10,Poweshiek,Iowa,19157,79,5 +2020-05-11,Poweshiek,Iowa,19157,81,5 +2020-05-12,Poweshiek,Iowa,19157,81,7 +2020-05-13,Poweshiek,Iowa,19157,83,8 +2020-05-14,Poweshiek,Iowa,19157,83,8 +2020-05-15,Poweshiek,Iowa,19157,83,8 +2020-05-16,Poweshiek,Iowa,19157,85,8 +2020-05-17,Poweshiek,Iowa,19157,86,8 +2020-05-18,Poweshiek,Iowa,19157,86,8 +2020-05-19,Poweshiek,Iowa,19157,87,8 +2020-05-20,Poweshiek,Iowa,19157,89,8 +2020-05-21,Poweshiek,Iowa,19157,89,8 +2020-05-22,Poweshiek,Iowa,19157,88,8 +2020-05-23,Poweshiek,Iowa,19157,88,8 +2020-05-24,Poweshiek,Iowa,19157,88,8 +2020-05-25,Poweshiek,Iowa,19157,88,8 +2020-05-26,Poweshiek,Iowa,19157,88,8 +2020-05-27,Poweshiek,Iowa,19157,88,8 +2020-05-28,Poweshiek,Iowa,19157,89,8 +2020-05-29,Poweshiek,Iowa,19157,89,8 +2020-05-30,Poweshiek,Iowa,19157,90,8 +2020-05-31,Poweshiek,Iowa,19157,90,8 +2020-06-01,Poweshiek,Iowa,19157,90,8 +2020-06-02,Poweshiek,Iowa,19157,90,8 +2020-06-03,Poweshiek,Iowa,19157,91,8 +2020-06-04,Poweshiek,Iowa,19157,92,8 +2020-06-05,Poweshiek,Iowa,19157,92,8 +2020-06-06,Poweshiek,Iowa,19157,92,8 +2020-06-07,Poweshiek,Iowa,19157,93,8 +2020-06-08,Poweshiek,Iowa,19157,94,8 +2020-06-09,Poweshiek,Iowa,19157,94,8 +2020-06-10,Poweshiek,Iowa,19157,95,8 +2020-06-11,Poweshiek,Iowa,19157,95,8 +2020-06-12,Poweshiek,Iowa,19157,95,8 +2020-06-13,Poweshiek,Iowa,19157,95,8 +2020-06-14,Poweshiek,Iowa,19157,95,8 +2020-06-15,Poweshiek,Iowa,19157,95,8 +2020-06-16,Poweshiek,Iowa,19157,95,8 +2020-06-17,Poweshiek,Iowa,19157,95,8 +2020-06-18,Poweshiek,Iowa,19157,95,8 +2020-06-19,Poweshiek,Iowa,19157,95,8 +2020-06-20,Poweshiek,Iowa,19157,95,8 +2020-06-21,Poweshiek,Iowa,19157,96,8 +2020-06-22,Poweshiek,Iowa,19157,97,8 +2020-06-23,Poweshiek,Iowa,19157,97,8 +2020-06-24,Poweshiek,Iowa,19157,98,8 +2020-06-25,Poweshiek,Iowa,19157,101,8 +2020-06-26,Poweshiek,Iowa,19157,102,8 +2020-06-27,Poweshiek,Iowa,19157,104,8 +2020-06-28,Poweshiek,Iowa,19157,104,8 +2020-06-29,Poweshiek,Iowa,19157,104,8 +2020-06-30,Poweshiek,Iowa,19157,104,8 +2020-07-01,Poweshiek,Iowa,19157,104,8 +2020-07-02,Poweshiek,Iowa,19157,104,8 +2020-07-03,Poweshiek,Iowa,19157,104,8 +2020-07-04,Poweshiek,Iowa,19157,104,8 +2020-07-05,Poweshiek,Iowa,19157,105,8 +2020-07-06,Poweshiek,Iowa,19157,106,8 +2020-07-07,Poweshiek,Iowa,19157,107,8 +2020-07-08,Poweshiek,Iowa,19157,107,8 +2020-07-09,Poweshiek,Iowa,19157,109,8 +2020-05-19,Ringgold,Iowa,19159,1,0 +2020-05-20,Ringgold,Iowa,19159,1,0 +2020-05-21,Ringgold,Iowa,19159,1,0 +2020-05-22,Ringgold,Iowa,19159,2,0 +2020-05-23,Ringgold,Iowa,19159,2,0 +2020-05-24,Ringgold,Iowa,19159,4,0 +2020-05-25,Ringgold,Iowa,19159,4,0 +2020-05-26,Ringgold,Iowa,19159,4,0 +2020-05-27,Ringgold,Iowa,19159,4,0 +2020-05-28,Ringgold,Iowa,19159,4,0 +2020-05-29,Ringgold,Iowa,19159,4,0 +2020-05-30,Ringgold,Iowa,19159,4,0 +2020-05-31,Ringgold,Iowa,19159,4,0 +2020-06-01,Ringgold,Iowa,19159,4,0 +2020-06-02,Ringgold,Iowa,19159,4,0 +2020-06-03,Ringgold,Iowa,19159,4,0 +2020-06-04,Ringgold,Iowa,19159,4,0 +2020-06-05,Ringgold,Iowa,19159,4,0 +2020-06-06,Ringgold,Iowa,19159,4,0 +2020-06-07,Ringgold,Iowa,19159,4,0 +2020-06-08,Ringgold,Iowa,19159,6,0 +2020-06-09,Ringgold,Iowa,19159,6,0 +2020-06-10,Ringgold,Iowa,19159,7,0 +2020-06-11,Ringgold,Iowa,19159,8,0 +2020-06-12,Ringgold,Iowa,19159,8,0 +2020-06-13,Ringgold,Iowa,19159,8,0 +2020-06-14,Ringgold,Iowa,19159,8,0 +2020-06-15,Ringgold,Iowa,19159,8,0 +2020-06-16,Ringgold,Iowa,19159,9,0 +2020-06-17,Ringgold,Iowa,19159,10,0 +2020-06-18,Ringgold,Iowa,19159,10,0 +2020-06-19,Ringgold,Iowa,19159,11,0 +2020-06-20,Ringgold,Iowa,19159,11,0 +2020-06-21,Ringgold,Iowa,19159,11,0 +2020-06-22,Ringgold,Iowa,19159,11,0 +2020-06-23,Ringgold,Iowa,19159,12,0 +2020-06-24,Ringgold,Iowa,19159,12,0 +2020-06-25,Ringgold,Iowa,19159,12,0 +2020-06-26,Ringgold,Iowa,19159,12,0 +2020-06-27,Ringgold,Iowa,19159,13,0 +2020-06-28,Ringgold,Iowa,19159,13,0 +2020-06-29,Ringgold,Iowa,19159,14,0 +2020-06-30,Ringgold,Iowa,19159,14,0 +2020-07-01,Ringgold,Iowa,19159,15,0 +2020-07-02,Ringgold,Iowa,19159,15,0 +2020-07-03,Ringgold,Iowa,19159,15,0 +2020-07-04,Ringgold,Iowa,19159,15,0 +2020-07-05,Ringgold,Iowa,19159,15,0 +2020-07-06,Ringgold,Iowa,19159,16,0 +2020-07-07,Ringgold,Iowa,19159,15,0 +2020-07-08,Ringgold,Iowa,19159,15,0 +2020-07-09,Ringgold,Iowa,19159,15,1 +2020-05-01,Sac,Iowa,19161,1,0 +2020-05-02,Sac,Iowa,19161,1,0 +2020-05-03,Sac,Iowa,19161,1,0 +2020-05-04,Sac,Iowa,19161,1,0 +2020-05-05,Sac,Iowa,19161,1,0 +2020-05-06,Sac,Iowa,19161,2,0 +2020-05-07,Sac,Iowa,19161,2,0 +2020-05-08,Sac,Iowa,19161,2,0 +2020-05-09,Sac,Iowa,19161,2,0 +2020-05-10,Sac,Iowa,19161,2,0 +2020-05-11,Sac,Iowa,19161,3,0 +2020-05-12,Sac,Iowa,19161,2,0 +2020-05-13,Sac,Iowa,19161,3,0 +2020-05-14,Sac,Iowa,19161,4,0 +2020-05-15,Sac,Iowa,19161,4,0 +2020-05-16,Sac,Iowa,19161,4,0 +2020-05-17,Sac,Iowa,19161,4,0 +2020-05-18,Sac,Iowa,19161,5,0 +2020-05-19,Sac,Iowa,19161,6,0 +2020-05-20,Sac,Iowa,19161,7,0 +2020-05-21,Sac,Iowa,19161,8,0 +2020-05-22,Sac,Iowa,19161,8,0 +2020-05-23,Sac,Iowa,19161,8,0 +2020-05-24,Sac,Iowa,19161,13,0 +2020-05-25,Sac,Iowa,19161,13,0 +2020-05-26,Sac,Iowa,19161,15,0 +2020-05-27,Sac,Iowa,19161,17,0 +2020-05-28,Sac,Iowa,19161,17,0 +2020-05-29,Sac,Iowa,19161,18,0 +2020-05-30,Sac,Iowa,19161,18,0 +2020-05-31,Sac,Iowa,19161,19,0 +2020-06-01,Sac,Iowa,19161,20,0 +2020-06-02,Sac,Iowa,19161,21,0 +2020-06-03,Sac,Iowa,19161,26,0 +2020-06-04,Sac,Iowa,19161,28,0 +2020-06-05,Sac,Iowa,19161,29,0 +2020-06-06,Sac,Iowa,19161,30,0 +2020-06-07,Sac,Iowa,19161,31,0 +2020-06-08,Sac,Iowa,19161,31,0 +2020-06-09,Sac,Iowa,19161,34,0 +2020-06-10,Sac,Iowa,19161,34,0 +2020-06-11,Sac,Iowa,19161,36,0 +2020-06-12,Sac,Iowa,19161,37,0 +2020-06-13,Sac,Iowa,19161,37,0 +2020-06-14,Sac,Iowa,19161,38,0 +2020-06-15,Sac,Iowa,19161,38,0 +2020-06-16,Sac,Iowa,19161,38,0 +2020-06-17,Sac,Iowa,19161,41,0 +2020-06-18,Sac,Iowa,19161,41,0 +2020-06-19,Sac,Iowa,19161,43,0 +2020-06-20,Sac,Iowa,19161,44,0 +2020-06-21,Sac,Iowa,19161,47,0 +2020-06-22,Sac,Iowa,19161,47,0 +2020-06-23,Sac,Iowa,19161,48,0 +2020-06-24,Sac,Iowa,19161,50,0 +2020-06-25,Sac,Iowa,19161,50,0 +2020-06-26,Sac,Iowa,19161,56,0 +2020-06-27,Sac,Iowa,19161,58,0 +2020-06-28,Sac,Iowa,19161,60,0 +2020-06-29,Sac,Iowa,19161,62,0 +2020-06-30,Sac,Iowa,19161,63,0 +2020-07-01,Sac,Iowa,19161,63,0 +2020-07-02,Sac,Iowa,19161,63,0 +2020-07-03,Sac,Iowa,19161,63,0 +2020-07-04,Sac,Iowa,19161,63,0 +2020-07-05,Sac,Iowa,19161,64,0 +2020-07-06,Sac,Iowa,19161,64,0 +2020-07-07,Sac,Iowa,19161,64,0 +2020-07-08,Sac,Iowa,19161,65,0 +2020-07-09,Sac,Iowa,19161,65,0 +2020-03-22,Scott,Iowa,19163,1,0 +2020-03-23,Scott,Iowa,19163,1,0 +2020-03-24,Scott,Iowa,19163,1,0 +2020-03-25,Scott,Iowa,19163,3,0 +2020-03-26,Scott,Iowa,19163,7,0 +2020-03-27,Scott,Iowa,19163,7,0 +2020-03-28,Scott,Iowa,19163,10,0 +2020-03-29,Scott,Iowa,19163,10,0 +2020-03-30,Scott,Iowa,19163,16,0 +2020-03-31,Scott,Iowa,19163,18,0 +2020-04-01,Scott,Iowa,19163,21,0 +2020-04-02,Scott,Iowa,19163,25,0 +2020-04-03,Scott,Iowa,19163,31,0 +2020-04-04,Scott,Iowa,19163,38,0 +2020-04-05,Scott,Iowa,19163,41,1 +2020-04-06,Scott,Iowa,19163,52,1 +2020-04-07,Scott,Iowa,19163,66,1 +2020-04-08,Scott,Iowa,19163,77,1 +2020-04-09,Scott,Iowa,19163,88,1 +2020-04-10,Scott,Iowa,19163,99,1 +2020-04-11,Scott,Iowa,19163,111,1 +2020-04-12,Scott,Iowa,19163,115,1 +2020-04-13,Scott,Iowa,19163,118,1 +2020-04-14,Scott,Iowa,19163,124,1 +2020-04-15,Scott,Iowa,19163,129,2 +2020-04-16,Scott,Iowa,19163,146,2 +2020-04-17,Scott,Iowa,19163,155,3 +2020-04-18,Scott,Iowa,19163,159,3 +2020-04-19,Scott,Iowa,19163,160,3 +2020-04-20,Scott,Iowa,19163,172,3 +2020-04-21,Scott,Iowa,19163,180,3 +2020-04-22,Scott,Iowa,19163,183,3 +2020-04-23,Scott,Iowa,19163,189,3 +2020-04-24,Scott,Iowa,19163,197,4 +2020-04-25,Scott,Iowa,19163,207,5 +2020-04-26,Scott,Iowa,19163,209,5 +2020-04-27,Scott,Iowa,19163,216,5 +2020-04-28,Scott,Iowa,19163,218,5 +2020-04-29,Scott,Iowa,19163,222,5 +2020-04-30,Scott,Iowa,19163,226,6 +2020-05-01,Scott,Iowa,19163,230,7 +2020-05-02,Scott,Iowa,19163,236,7 +2020-05-03,Scott,Iowa,19163,241,7 +2020-05-04,Scott,Iowa,19163,245,7 +2020-05-05,Scott,Iowa,19163,255,7 +2020-05-06,Scott,Iowa,19163,260,7 +2020-05-07,Scott,Iowa,19163,274,7 +2020-05-08,Scott,Iowa,19163,276,8 +2020-05-09,Scott,Iowa,19163,279,8 +2020-05-10,Scott,Iowa,19163,280,8 +2020-05-11,Scott,Iowa,19163,286,8 +2020-05-12,Scott,Iowa,19163,286,8 +2020-05-13,Scott,Iowa,19163,291,8 +2020-05-14,Scott,Iowa,19163,293,8 +2020-05-15,Scott,Iowa,19163,297,8 +2020-05-16,Scott,Iowa,19163,301,8 +2020-05-17,Scott,Iowa,19163,307,8 +2020-05-18,Scott,Iowa,19163,309,8 +2020-05-19,Scott,Iowa,19163,309,8 +2020-05-20,Scott,Iowa,19163,320,8 +2020-05-21,Scott,Iowa,19163,323,9 +2020-05-22,Scott,Iowa,19163,329,9 +2020-05-23,Scott,Iowa,19163,329,9 +2020-05-24,Scott,Iowa,19163,334,9 +2020-05-25,Scott,Iowa,19163,338,9 +2020-05-26,Scott,Iowa,19163,341,9 +2020-05-27,Scott,Iowa,19163,348,10 +2020-05-28,Scott,Iowa,19163,355,10 +2020-05-29,Scott,Iowa,19163,358,10 +2020-05-30,Scott,Iowa,19163,359,10 +2020-05-31,Scott,Iowa,19163,361,10 +2020-06-01,Scott,Iowa,19163,362,10 +2020-06-02,Scott,Iowa,19163,364,10 +2020-06-03,Scott,Iowa,19163,369,10 +2020-06-04,Scott,Iowa,19163,382,10 +2020-06-05,Scott,Iowa,19163,385,10 +2020-06-06,Scott,Iowa,19163,386,10 +2020-06-07,Scott,Iowa,19163,388,10 +2020-06-08,Scott,Iowa,19163,393,10 +2020-06-09,Scott,Iowa,19163,393,10 +2020-06-10,Scott,Iowa,19163,398,10 +2020-06-11,Scott,Iowa,19163,400,10 +2020-06-12,Scott,Iowa,19163,404,10 +2020-06-13,Scott,Iowa,19163,407,10 +2020-06-14,Scott,Iowa,19163,406,10 +2020-06-15,Scott,Iowa,19163,407,10 +2020-06-16,Scott,Iowa,19163,409,10 +2020-06-17,Scott,Iowa,19163,417,10 +2020-06-18,Scott,Iowa,19163,421,10 +2020-06-19,Scott,Iowa,19163,431,10 +2020-06-20,Scott,Iowa,19163,435,10 +2020-06-21,Scott,Iowa,19163,447,10 +2020-06-22,Scott,Iowa,19163,451,10 +2020-06-23,Scott,Iowa,19163,460,10 +2020-06-24,Scott,Iowa,19163,488,10 +2020-06-25,Scott,Iowa,19163,516,10 +2020-06-26,Scott,Iowa,19163,561,10 +2020-06-27,Scott,Iowa,19163,580,10 +2020-06-28,Scott,Iowa,19163,598,10 +2020-06-29,Scott,Iowa,19163,618,10 +2020-06-30,Scott,Iowa,19163,639,10 +2020-07-01,Scott,Iowa,19163,673,10 +2020-07-02,Scott,Iowa,19163,704,10 +2020-07-03,Scott,Iowa,19163,748,10 +2020-07-04,Scott,Iowa,19163,786,10 +2020-07-05,Scott,Iowa,19163,799,10 +2020-07-06,Scott,Iowa,19163,816,10 +2020-07-07,Scott,Iowa,19163,845,10 +2020-07-08,Scott,Iowa,19163,896,10 +2020-07-09,Scott,Iowa,19163,935,10 +2020-03-28,Shelby,Iowa,19165,1,0 +2020-03-29,Shelby,Iowa,19165,1,0 +2020-03-30,Shelby,Iowa,19165,3,0 +2020-03-31,Shelby,Iowa,19165,3,0 +2020-04-01,Shelby,Iowa,19165,3,0 +2020-04-02,Shelby,Iowa,19165,3,0 +2020-04-03,Shelby,Iowa,19165,5,0 +2020-04-04,Shelby,Iowa,19165,5,0 +2020-04-05,Shelby,Iowa,19165,6,0 +2020-04-06,Shelby,Iowa,19165,6,0 +2020-04-07,Shelby,Iowa,19165,6,0 +2020-04-08,Shelby,Iowa,19165,6,0 +2020-04-09,Shelby,Iowa,19165,6,0 +2020-04-10,Shelby,Iowa,19165,6,0 +2020-04-11,Shelby,Iowa,19165,6,0 +2020-04-12,Shelby,Iowa,19165,6,0 +2020-04-13,Shelby,Iowa,19165,6,0 +2020-04-14,Shelby,Iowa,19165,6,0 +2020-04-15,Shelby,Iowa,19165,7,0 +2020-04-16,Shelby,Iowa,19165,7,0 +2020-04-17,Shelby,Iowa,19165,9,0 +2020-04-18,Shelby,Iowa,19165,9,0 +2020-04-19,Shelby,Iowa,19165,9,0 +2020-04-20,Shelby,Iowa,19165,9,0 +2020-04-21,Shelby,Iowa,19165,9,0 +2020-04-22,Shelby,Iowa,19165,9,0 +2020-04-23,Shelby,Iowa,19165,9,0 +2020-04-24,Shelby,Iowa,19165,9,0 +2020-04-25,Shelby,Iowa,19165,9,0 +2020-04-26,Shelby,Iowa,19165,9,0 +2020-04-27,Shelby,Iowa,19165,9,0 +2020-04-28,Shelby,Iowa,19165,9,0 +2020-04-29,Shelby,Iowa,19165,9,0 +2020-04-30,Shelby,Iowa,19165,9,0 +2020-05-01,Shelby,Iowa,19165,9,0 +2020-05-02,Shelby,Iowa,19165,9,0 +2020-05-03,Shelby,Iowa,19165,12,0 +2020-05-04,Shelby,Iowa,19165,12,0 +2020-05-05,Shelby,Iowa,19165,14,0 +2020-05-06,Shelby,Iowa,19165,13,0 +2020-05-07,Shelby,Iowa,19165,13,0 +2020-05-08,Shelby,Iowa,19165,16,0 +2020-05-09,Shelby,Iowa,19165,18,0 +2020-05-10,Shelby,Iowa,19165,19,0 +2020-05-11,Shelby,Iowa,19165,19,0 +2020-05-12,Shelby,Iowa,19165,21,0 +2020-05-13,Shelby,Iowa,19165,20,0 +2020-05-14,Shelby,Iowa,19165,20,0 +2020-05-15,Shelby,Iowa,19165,20,0 +2020-05-16,Shelby,Iowa,19165,20,0 +2020-05-17,Shelby,Iowa,19165,21,0 +2020-05-18,Shelby,Iowa,19165,23,0 +2020-05-19,Shelby,Iowa,19165,24,0 +2020-05-20,Shelby,Iowa,19165,25,0 +2020-05-21,Shelby,Iowa,19165,27,0 +2020-05-22,Shelby,Iowa,19165,28,0 +2020-05-23,Shelby,Iowa,19165,28,0 +2020-05-24,Shelby,Iowa,19165,31,0 +2020-05-25,Shelby,Iowa,19165,31,0 +2020-05-26,Shelby,Iowa,19165,32,0 +2020-05-27,Shelby,Iowa,19165,34,0 +2020-05-28,Shelby,Iowa,19165,34,0 +2020-05-29,Shelby,Iowa,19165,35,0 +2020-05-30,Shelby,Iowa,19165,37,0 +2020-05-31,Shelby,Iowa,19165,37,0 +2020-06-01,Shelby,Iowa,19165,37,0 +2020-06-02,Shelby,Iowa,19165,37,0 +2020-06-03,Shelby,Iowa,19165,37,0 +2020-06-04,Shelby,Iowa,19165,37,0 +2020-06-05,Shelby,Iowa,19165,38,0 +2020-06-06,Shelby,Iowa,19165,38,0 +2020-06-07,Shelby,Iowa,19165,38,0 +2020-06-08,Shelby,Iowa,19165,39,0 +2020-06-09,Shelby,Iowa,19165,40,0 +2020-06-10,Shelby,Iowa,19165,42,0 +2020-06-11,Shelby,Iowa,19165,45,0 +2020-06-12,Shelby,Iowa,19165,43,0 +2020-06-13,Shelby,Iowa,19165,47,0 +2020-06-14,Shelby,Iowa,19165,49,0 +2020-06-15,Shelby,Iowa,19165,49,0 +2020-06-16,Shelby,Iowa,19165,52,0 +2020-06-17,Shelby,Iowa,19165,56,0 +2020-06-18,Shelby,Iowa,19165,65,0 +2020-06-19,Shelby,Iowa,19165,71,0 +2020-06-20,Shelby,Iowa,19165,74,0 +2020-06-21,Shelby,Iowa,19165,79,0 +2020-06-22,Shelby,Iowa,19165,81,0 +2020-06-23,Shelby,Iowa,19165,85,0 +2020-06-24,Shelby,Iowa,19165,93,0 +2020-06-25,Shelby,Iowa,19165,95,0 +2020-06-26,Shelby,Iowa,19165,101,0 +2020-06-27,Shelby,Iowa,19165,102,0 +2020-06-28,Shelby,Iowa,19165,103,0 +2020-06-29,Shelby,Iowa,19165,103,0 +2020-06-30,Shelby,Iowa,19165,106,0 +2020-07-01,Shelby,Iowa,19165,107,0 +2020-07-02,Shelby,Iowa,19165,111,0 +2020-07-03,Shelby,Iowa,19165,114,0 +2020-07-04,Shelby,Iowa,19165,114,0 +2020-07-05,Shelby,Iowa,19165,113,0 +2020-07-06,Shelby,Iowa,19165,114,0 +2020-07-07,Shelby,Iowa,19165,117,0 +2020-07-08,Shelby,Iowa,19165,117,0 +2020-07-09,Shelby,Iowa,19165,118,0 +2020-03-22,Sioux,Iowa,19167,1,0 +2020-03-23,Sioux,Iowa,19167,1,0 +2020-03-24,Sioux,Iowa,19167,1,0 +2020-03-25,Sioux,Iowa,19167,1,0 +2020-03-26,Sioux,Iowa,19167,2,0 +2020-03-27,Sioux,Iowa,19167,2,0 +2020-03-28,Sioux,Iowa,19167,2,0 +2020-03-29,Sioux,Iowa,19167,2,0 +2020-03-30,Sioux,Iowa,19167,2,0 +2020-03-31,Sioux,Iowa,19167,4,0 +2020-04-01,Sioux,Iowa,19167,4,0 +2020-04-02,Sioux,Iowa,19167,4,0 +2020-04-03,Sioux,Iowa,19167,5,0 +2020-04-04,Sioux,Iowa,19167,7,0 +2020-04-05,Sioux,Iowa,19167,7,0 +2020-04-06,Sioux,Iowa,19167,7,0 +2020-04-07,Sioux,Iowa,19167,7,0 +2020-04-08,Sioux,Iowa,19167,7,0 +2020-04-09,Sioux,Iowa,19167,7,0 +2020-04-10,Sioux,Iowa,19167,7,0 +2020-04-11,Sioux,Iowa,19167,7,0 +2020-04-12,Sioux,Iowa,19167,7,0 +2020-04-13,Sioux,Iowa,19167,7,0 +2020-04-14,Sioux,Iowa,19167,7,0 +2020-04-15,Sioux,Iowa,19167,7,0 +2020-04-16,Sioux,Iowa,19167,7,0 +2020-04-17,Sioux,Iowa,19167,7,0 +2020-04-18,Sioux,Iowa,19167,7,0 +2020-04-19,Sioux,Iowa,19167,7,0 +2020-04-20,Sioux,Iowa,19167,7,0 +2020-04-21,Sioux,Iowa,19167,7,0 +2020-04-22,Sioux,Iowa,19167,7,0 +2020-04-23,Sioux,Iowa,19167,7,0 +2020-04-24,Sioux,Iowa,19167,7,0 +2020-04-25,Sioux,Iowa,19167,7,0 +2020-04-26,Sioux,Iowa,19167,7,0 +2020-04-27,Sioux,Iowa,19167,7,0 +2020-04-28,Sioux,Iowa,19167,8,0 +2020-04-29,Sioux,Iowa,19167,8,0 +2020-04-30,Sioux,Iowa,19167,9,0 +2020-05-01,Sioux,Iowa,19167,11,0 +2020-05-02,Sioux,Iowa,19167,11,0 +2020-05-03,Sioux,Iowa,19167,17,0 +2020-05-04,Sioux,Iowa,19167,23,0 +2020-05-05,Sioux,Iowa,19167,24,0 +2020-05-06,Sioux,Iowa,19167,25,0 +2020-05-07,Sioux,Iowa,19167,31,0 +2020-05-08,Sioux,Iowa,19167,37,0 +2020-05-09,Sioux,Iowa,19167,42,0 +2020-05-10,Sioux,Iowa,19167,84,0 +2020-05-11,Sioux,Iowa,19167,93,0 +2020-05-12,Sioux,Iowa,19167,100,0 +2020-05-13,Sioux,Iowa,19167,103,0 +2020-05-14,Sioux,Iowa,19167,111,0 +2020-05-15,Sioux,Iowa,19167,126,0 +2020-05-16,Sioux,Iowa,19167,131,0 +2020-05-17,Sioux,Iowa,19167,135,0 +2020-05-18,Sioux,Iowa,19167,139,0 +2020-05-19,Sioux,Iowa,19167,146,0 +2020-05-20,Sioux,Iowa,19167,177,0 +2020-05-21,Sioux,Iowa,19167,181,0 +2020-05-22,Sioux,Iowa,19167,188,0 +2020-05-23,Sioux,Iowa,19167,188,0 +2020-05-24,Sioux,Iowa,19167,206,0 +2020-05-25,Sioux,Iowa,19167,207,0 +2020-05-26,Sioux,Iowa,19167,210,0 +2020-05-27,Sioux,Iowa,19167,212,0 +2020-05-28,Sioux,Iowa,19167,213,0 +2020-05-29,Sioux,Iowa,19167,215,0 +2020-05-30,Sioux,Iowa,19167,219,0 +2020-05-31,Sioux,Iowa,19167,282,0 +2020-06-01,Sioux,Iowa,19167,284,0 +2020-06-02,Sioux,Iowa,19167,287,0 +2020-06-03,Sioux,Iowa,19167,290,0 +2020-06-04,Sioux,Iowa,19167,304,0 +2020-06-05,Sioux,Iowa,19167,309,0 +2020-06-06,Sioux,Iowa,19167,311,0 +2020-06-07,Sioux,Iowa,19167,320,0 +2020-06-08,Sioux,Iowa,19167,322,0 +2020-06-09,Sioux,Iowa,19167,323,0 +2020-06-10,Sioux,Iowa,19167,337,0 +2020-06-11,Sioux,Iowa,19167,344,0 +2020-06-12,Sioux,Iowa,19167,351,0 +2020-06-13,Sioux,Iowa,19167,354,0 +2020-06-14,Sioux,Iowa,19167,355,0 +2020-06-15,Sioux,Iowa,19167,361,0 +2020-06-16,Sioux,Iowa,19167,363,0 +2020-06-17,Sioux,Iowa,19167,371,0 +2020-06-18,Sioux,Iowa,19167,393,0 +2020-06-19,Sioux,Iowa,19167,409,0 +2020-06-20,Sioux,Iowa,19167,410,0 +2020-06-21,Sioux,Iowa,19167,423,0 +2020-06-22,Sioux,Iowa,19167,422,0 +2020-06-23,Sioux,Iowa,19167,423,0 +2020-06-24,Sioux,Iowa,19167,423,0 +2020-06-25,Sioux,Iowa,19167,435,0 +2020-06-26,Sioux,Iowa,19167,443,0 +2020-06-27,Sioux,Iowa,19167,445,0 +2020-06-28,Sioux,Iowa,19167,445,0 +2020-06-29,Sioux,Iowa,19167,450,0 +2020-06-30,Sioux,Iowa,19167,455,0 +2020-07-01,Sioux,Iowa,19167,458,0 +2020-07-02,Sioux,Iowa,19167,461,0 +2020-07-03,Sioux,Iowa,19167,461,0 +2020-07-04,Sioux,Iowa,19167,464,0 +2020-07-05,Sioux,Iowa,19167,472,0 +2020-07-06,Sioux,Iowa,19167,477,0 +2020-07-07,Sioux,Iowa,19167,481,0 +2020-07-08,Sioux,Iowa,19167,489,0 +2020-07-09,Sioux,Iowa,19167,494,0 +2020-03-21,Story,Iowa,19169,1,0 +2020-03-22,Story,Iowa,19169,1,0 +2020-03-23,Story,Iowa,19169,1,0 +2020-03-24,Story,Iowa,19169,2,0 +2020-03-25,Story,Iowa,19169,2,0 +2020-03-26,Story,Iowa,19169,2,0 +2020-03-27,Story,Iowa,19169,2,0 +2020-03-28,Story,Iowa,19169,2,0 +2020-03-29,Story,Iowa,19169,2,0 +2020-03-30,Story,Iowa,19169,2,0 +2020-03-31,Story,Iowa,19169,2,0 +2020-04-01,Story,Iowa,19169,4,0 +2020-04-02,Story,Iowa,19169,4,0 +2020-04-03,Story,Iowa,19169,5,0 +2020-04-04,Story,Iowa,19169,5,0 +2020-04-05,Story,Iowa,19169,5,0 +2020-04-06,Story,Iowa,19169,5,0 +2020-04-07,Story,Iowa,19169,6,0 +2020-04-08,Story,Iowa,19169,6,0 +2020-04-09,Story,Iowa,19169,7,0 +2020-04-10,Story,Iowa,19169,7,0 +2020-04-11,Story,Iowa,19169,7,0 +2020-04-12,Story,Iowa,19169,7,0 +2020-04-13,Story,Iowa,19169,8,0 +2020-04-14,Story,Iowa,19169,11,0 +2020-04-15,Story,Iowa,19169,11,0 +2020-04-16,Story,Iowa,19169,16,0 +2020-04-17,Story,Iowa,19169,17,0 +2020-04-18,Story,Iowa,19169,17,0 +2020-04-19,Story,Iowa,19169,18,0 +2020-04-20,Story,Iowa,19169,20,0 +2020-04-21,Story,Iowa,19169,19,0 +2020-04-22,Story,Iowa,19169,20,0 +2020-04-23,Story,Iowa,19169,22,0 +2020-04-24,Story,Iowa,19169,22,0 +2020-04-25,Story,Iowa,19169,22,0 +2020-04-26,Story,Iowa,19169,23,0 +2020-04-27,Story,Iowa,19169,25,0 +2020-04-28,Story,Iowa,19169,26,1 +2020-04-29,Story,Iowa,19169,27,1 +2020-04-30,Story,Iowa,19169,27,1 +2020-05-01,Story,Iowa,19169,31,1 +2020-05-02,Story,Iowa,19169,32,1 +2020-05-03,Story,Iowa,19169,33,1 +2020-05-04,Story,Iowa,19169,38,1 +2020-05-05,Story,Iowa,19169,39,1 +2020-05-06,Story,Iowa,19169,40,1 +2020-05-07,Story,Iowa,19169,52,1 +2020-05-08,Story,Iowa,19169,54,1 +2020-05-09,Story,Iowa,19169,55,1 +2020-05-10,Story,Iowa,19169,58,1 +2020-05-11,Story,Iowa,19169,61,1 +2020-05-12,Story,Iowa,19169,64,1 +2020-05-13,Story,Iowa,19169,65,1 +2020-05-14,Story,Iowa,19169,66,1 +2020-05-15,Story,Iowa,19169,73,1 +2020-05-16,Story,Iowa,19169,75,1 +2020-05-17,Story,Iowa,19169,75,1 +2020-05-18,Story,Iowa,19169,79,1 +2020-05-19,Story,Iowa,19169,81,1 +2020-05-20,Story,Iowa,19169,83,1 +2020-05-21,Story,Iowa,19169,86,1 +2020-05-22,Story,Iowa,19169,88,1 +2020-05-23,Story,Iowa,19169,88,1 +2020-05-24,Story,Iowa,19169,94,1 +2020-05-25,Story,Iowa,19169,95,1 +2020-05-26,Story,Iowa,19169,95,1 +2020-05-27,Story,Iowa,19169,97,1 +2020-05-28,Story,Iowa,19169,100,1 +2020-05-29,Story,Iowa,19169,106,1 +2020-05-30,Story,Iowa,19169,111,1 +2020-05-31,Story,Iowa,19169,116,1 +2020-06-01,Story,Iowa,19169,117,1 +2020-06-02,Story,Iowa,19169,118,1 +2020-06-03,Story,Iowa,19169,118,1 +2020-06-04,Story,Iowa,19169,128,1 +2020-06-05,Story,Iowa,19169,135,1 +2020-06-06,Story,Iowa,19169,145,1 +2020-06-07,Story,Iowa,19169,150,1 +2020-06-08,Story,Iowa,19169,156,2 +2020-06-09,Story,Iowa,19169,157,2 +2020-06-10,Story,Iowa,19169,177,2 +2020-06-11,Story,Iowa,19169,192,2 +2020-06-12,Story,Iowa,19169,216,2 +2020-06-13,Story,Iowa,19169,238,2 +2020-06-14,Story,Iowa,19169,248,2 +2020-06-15,Story,Iowa,19169,255,2 +2020-06-16,Story,Iowa,19169,281,3 +2020-06-17,Story,Iowa,19169,320,3 +2020-06-18,Story,Iowa,19169,343,3 +2020-06-19,Story,Iowa,19169,404,3 +2020-06-20,Story,Iowa,19169,420,3 +2020-06-21,Story,Iowa,19169,471,3 +2020-06-22,Story,Iowa,19169,486,3 +2020-06-23,Story,Iowa,19169,521,3 +2020-06-24,Story,Iowa,19169,558,3 +2020-06-25,Story,Iowa,19169,599,3 +2020-06-26,Story,Iowa,19169,631,3 +2020-06-27,Story,Iowa,19169,656,3 +2020-06-28,Story,Iowa,19169,673,3 +2020-06-29,Story,Iowa,19169,679,3 +2020-06-30,Story,Iowa,19169,699,3 +2020-07-01,Story,Iowa,19169,723,3 +2020-07-02,Story,Iowa,19169,746,3 +2020-07-03,Story,Iowa,19169,752,3 +2020-07-04,Story,Iowa,19169,764,3 +2020-07-05,Story,Iowa,19169,777,3 +2020-07-06,Story,Iowa,19169,779,3 +2020-07-07,Story,Iowa,19169,806,3 +2020-07-08,Story,Iowa,19169,822,4 +2020-07-09,Story,Iowa,19169,827,4 +2020-03-22,Tama,Iowa,19171,3,0 +2020-03-23,Tama,Iowa,19171,3,0 +2020-03-24,Tama,Iowa,19171,4,0 +2020-03-25,Tama,Iowa,19171,4,0 +2020-03-26,Tama,Iowa,19171,4,0 +2020-03-27,Tama,Iowa,19171,5,0 +2020-03-28,Tama,Iowa,19171,8,0 +2020-03-29,Tama,Iowa,19171,9,0 +2020-03-30,Tama,Iowa,19171,10,0 +2020-03-31,Tama,Iowa,19171,11,0 +2020-04-01,Tama,Iowa,19171,14,0 +2020-04-02,Tama,Iowa,19171,17,0 +2020-04-03,Tama,Iowa,19171,22,0 +2020-04-04,Tama,Iowa,19171,29,0 +2020-04-05,Tama,Iowa,19171,30,0 +2020-04-06,Tama,Iowa,19171,35,2 +2020-04-07,Tama,Iowa,19171,42,2 +2020-04-08,Tama,Iowa,19171,46,2 +2020-04-09,Tama,Iowa,19171,63,2 +2020-04-10,Tama,Iowa,19171,70,2 +2020-04-11,Tama,Iowa,19171,77,2 +2020-04-12,Tama,Iowa,19171,86,2 +2020-04-13,Tama,Iowa,19171,101,2 +2020-04-14,Tama,Iowa,19171,108,2 +2020-04-15,Tama,Iowa,19171,111,3 +2020-04-16,Tama,Iowa,19171,114,4 +2020-04-17,Tama,Iowa,19171,121,5 +2020-04-18,Tama,Iowa,19171,123,6 +2020-04-19,Tama,Iowa,19171,188,6 +2020-04-20,Tama,Iowa,19171,198,6 +2020-04-21,Tama,Iowa,19171,224,6 +2020-04-22,Tama,Iowa,19171,226,7 +2020-04-23,Tama,Iowa,19171,226,7 +2020-04-24,Tama,Iowa,19171,237,7 +2020-04-25,Tama,Iowa,19171,262,7 +2020-04-26,Tama,Iowa,19171,265,7 +2020-04-27,Tama,Iowa,19171,259,7 +2020-04-28,Tama,Iowa,19171,263,7 +2020-04-29,Tama,Iowa,19171,264,7 +2020-04-30,Tama,Iowa,19171,266,7 +2020-05-01,Tama,Iowa,19171,270,7 +2020-05-02,Tama,Iowa,19171,278,8 +2020-05-03,Tama,Iowa,19171,286,8 +2020-05-04,Tama,Iowa,19171,292,8 +2020-05-05,Tama,Iowa,19171,297,11 +2020-05-06,Tama,Iowa,19171,303,11 +2020-05-07,Tama,Iowa,19171,321,11 +2020-05-08,Tama,Iowa,19171,322,11 +2020-05-09,Tama,Iowa,19171,327,12 +2020-05-10,Tama,Iowa,19171,329,13 +2020-05-11,Tama,Iowa,19171,336,13 +2020-05-12,Tama,Iowa,19171,341,13 +2020-05-13,Tama,Iowa,19171,345,13 +2020-05-14,Tama,Iowa,19171,348,13 +2020-05-15,Tama,Iowa,19171,350,15 +2020-05-16,Tama,Iowa,19171,354,16 +2020-05-17,Tama,Iowa,19171,356,17 +2020-05-18,Tama,Iowa,19171,358,17 +2020-05-19,Tama,Iowa,19171,362,18 +2020-05-20,Tama,Iowa,19171,374,21 +2020-05-21,Tama,Iowa,19171,378,23 +2020-05-22,Tama,Iowa,19171,384,23 +2020-05-23,Tama,Iowa,19171,384,23 +2020-05-24,Tama,Iowa,19171,392,23 +2020-05-25,Tama,Iowa,19171,395,23 +2020-05-26,Tama,Iowa,19171,400,24 +2020-05-27,Tama,Iowa,19171,400,26 +2020-05-28,Tama,Iowa,19171,400,26 +2020-05-29,Tama,Iowa,19171,401,27 +2020-05-30,Tama,Iowa,19171,403,27 +2020-05-31,Tama,Iowa,19171,403,27 +2020-06-01,Tama,Iowa,19171,404,27 +2020-06-02,Tama,Iowa,19171,405,27 +2020-06-03,Tama,Iowa,19171,408,28 +2020-06-04,Tama,Iowa,19171,411,29 +2020-06-05,Tama,Iowa,19171,412,29 +2020-06-06,Tama,Iowa,19171,415,29 +2020-06-07,Tama,Iowa,19171,416,29 +2020-06-08,Tama,Iowa,19171,417,29 +2020-06-09,Tama,Iowa,19171,417,29 +2020-06-10,Tama,Iowa,19171,418,29 +2020-06-11,Tama,Iowa,19171,426,29 +2020-06-12,Tama,Iowa,19171,427,29 +2020-06-13,Tama,Iowa,19171,427,29 +2020-06-14,Tama,Iowa,19171,427,29 +2020-06-15,Tama,Iowa,19171,429,29 +2020-06-16,Tama,Iowa,19171,429,29 +2020-06-17,Tama,Iowa,19171,429,29 +2020-06-18,Tama,Iowa,19171,429,29 +2020-06-19,Tama,Iowa,19171,430,29 +2020-06-20,Tama,Iowa,19171,430,29 +2020-06-21,Tama,Iowa,19171,431,29 +2020-06-22,Tama,Iowa,19171,432,29 +2020-06-23,Tama,Iowa,19171,432,29 +2020-06-24,Tama,Iowa,19171,433,29 +2020-06-25,Tama,Iowa,19171,433,29 +2020-06-26,Tama,Iowa,19171,435,29 +2020-06-27,Tama,Iowa,19171,438,29 +2020-06-28,Tama,Iowa,19171,438,29 +2020-06-29,Tama,Iowa,19171,439,29 +2020-06-30,Tama,Iowa,19171,445,29 +2020-07-01,Tama,Iowa,19171,451,29 +2020-07-02,Tama,Iowa,19171,458,29 +2020-07-03,Tama,Iowa,19171,460,29 +2020-07-04,Tama,Iowa,19171,463,29 +2020-07-05,Tama,Iowa,19171,465,29 +2020-07-06,Tama,Iowa,19171,465,29 +2020-07-07,Tama,Iowa,19171,468,29 +2020-07-08,Tama,Iowa,19171,473,29 +2020-07-09,Tama,Iowa,19171,478,29 +2020-03-28,Taylor,Iowa,19173,1,0 +2020-03-29,Taylor,Iowa,19173,1,0 +2020-03-30,Taylor,Iowa,19173,1,0 +2020-03-31,Taylor,Iowa,19173,1,0 +2020-04-01,Taylor,Iowa,19173,1,0 +2020-04-02,Taylor,Iowa,19173,1,0 +2020-04-03,Taylor,Iowa,19173,1,0 +2020-04-04,Taylor,Iowa,19173,1,0 +2020-04-05,Taylor,Iowa,19173,1,0 +2020-04-06,Taylor,Iowa,19173,1,0 +2020-04-07,Taylor,Iowa,19173,1,0 +2020-04-08,Taylor,Iowa,19173,1,0 +2020-04-09,Taylor,Iowa,19173,1,0 +2020-04-10,Taylor,Iowa,19173,1,0 +2020-04-11,Taylor,Iowa,19173,1,0 +2020-04-12,Taylor,Iowa,19173,1,0 +2020-04-13,Taylor,Iowa,19173,1,0 +2020-04-14,Taylor,Iowa,19173,1,0 +2020-04-15,Taylor,Iowa,19173,1,0 +2020-04-16,Taylor,Iowa,19173,1,0 +2020-04-17,Taylor,Iowa,19173,1,0 +2020-04-18,Taylor,Iowa,19173,1,0 +2020-04-19,Taylor,Iowa,19173,1,0 +2020-04-20,Taylor,Iowa,19173,1,0 +2020-04-21,Taylor,Iowa,19173,1,0 +2020-04-22,Taylor,Iowa,19173,1,0 +2020-04-23,Taylor,Iowa,19173,1,0 +2020-04-24,Taylor,Iowa,19173,1,0 +2020-04-25,Taylor,Iowa,19173,1,0 +2020-04-26,Taylor,Iowa,19173,1,0 +2020-04-27,Taylor,Iowa,19173,1,0 +2020-04-28,Taylor,Iowa,19173,1,0 +2020-04-29,Taylor,Iowa,19173,1,0 +2020-04-30,Taylor,Iowa,19173,1,0 +2020-05-01,Taylor,Iowa,19173,1,0 +2020-05-02,Taylor,Iowa,19173,1,0 +2020-05-03,Taylor,Iowa,19173,1,0 +2020-05-04,Taylor,Iowa,19173,1,0 +2020-05-05,Taylor,Iowa,19173,1,0 +2020-05-06,Taylor,Iowa,19173,1,0 +2020-05-07,Taylor,Iowa,19173,1,0 +2020-05-08,Taylor,Iowa,19173,1,0 +2020-05-09,Taylor,Iowa,19173,1,0 +2020-05-10,Taylor,Iowa,19173,1,0 +2020-05-11,Taylor,Iowa,19173,1,0 +2020-05-12,Taylor,Iowa,19173,1,0 +2020-05-13,Taylor,Iowa,19173,1,0 +2020-05-14,Taylor,Iowa,19173,1,0 +2020-05-15,Taylor,Iowa,19173,1,0 +2020-05-16,Taylor,Iowa,19173,1,0 +2020-05-17,Taylor,Iowa,19173,2,0 +2020-05-18,Taylor,Iowa,19173,2,0 +2020-05-19,Taylor,Iowa,19173,3,0 +2020-05-20,Taylor,Iowa,19173,5,0 +2020-05-21,Taylor,Iowa,19173,5,0 +2020-05-22,Taylor,Iowa,19173,7,0 +2020-05-23,Taylor,Iowa,19173,7,0 +2020-05-24,Taylor,Iowa,19173,37,0 +2020-05-25,Taylor,Iowa,19173,39,0 +2020-05-26,Taylor,Iowa,19173,41,0 +2020-05-27,Taylor,Iowa,19173,49,0 +2020-05-28,Taylor,Iowa,19173,49,0 +2020-05-29,Taylor,Iowa,19173,51,0 +2020-05-30,Taylor,Iowa,19173,54,0 +2020-05-31,Taylor,Iowa,19173,56,0 +2020-06-01,Taylor,Iowa,19173,56,0 +2020-06-02,Taylor,Iowa,19173,58,0 +2020-06-03,Taylor,Iowa,19173,59,0 +2020-06-04,Taylor,Iowa,19173,64,0 +2020-06-05,Taylor,Iowa,19173,66,0 +2020-06-06,Taylor,Iowa,19173,66,0 +2020-06-07,Taylor,Iowa,19173,68,0 +2020-06-08,Taylor,Iowa,19173,68,0 +2020-06-09,Taylor,Iowa,19173,68,0 +2020-06-10,Taylor,Iowa,19173,70,0 +2020-06-11,Taylor,Iowa,19173,71,0 +2020-06-12,Taylor,Iowa,19173,72,0 +2020-06-13,Taylor,Iowa,19173,73,0 +2020-06-14,Taylor,Iowa,19173,73,0 +2020-06-15,Taylor,Iowa,19173,74,0 +2020-06-16,Taylor,Iowa,19173,74,0 +2020-06-17,Taylor,Iowa,19173,74,0 +2020-06-18,Taylor,Iowa,19173,75,0 +2020-06-19,Taylor,Iowa,19173,75,0 +2020-06-20,Taylor,Iowa,19173,75,0 +2020-06-21,Taylor,Iowa,19173,76,0 +2020-06-22,Taylor,Iowa,19173,76,0 +2020-06-23,Taylor,Iowa,19173,76,0 +2020-06-24,Taylor,Iowa,19173,76,0 +2020-06-25,Taylor,Iowa,19173,77,0 +2020-06-26,Taylor,Iowa,19173,77,0 +2020-06-27,Taylor,Iowa,19173,77,0 +2020-06-28,Taylor,Iowa,19173,77,0 +2020-06-29,Taylor,Iowa,19173,78,0 +2020-06-30,Taylor,Iowa,19173,79,0 +2020-07-01,Taylor,Iowa,19173,79,0 +2020-07-02,Taylor,Iowa,19173,79,0 +2020-07-03,Taylor,Iowa,19173,79,0 +2020-07-04,Taylor,Iowa,19173,79,0 +2020-07-05,Taylor,Iowa,19173,79,0 +2020-07-06,Taylor,Iowa,19173,79,0 +2020-07-07,Taylor,Iowa,19173,80,0 +2020-07-08,Taylor,Iowa,19173,81,0 +2020-07-09,Taylor,Iowa,19173,81,0 +2020-04-10,Union,Iowa,19175,1,0 +2020-04-11,Union,Iowa,19175,1,0 +2020-04-12,Union,Iowa,19175,1,0 +2020-04-13,Union,Iowa,19175,1,0 +2020-04-14,Union,Iowa,19175,1,0 +2020-04-15,Union,Iowa,19175,1,0 +2020-04-16,Union,Iowa,19175,1,0 +2020-04-17,Union,Iowa,19175,1,0 +2020-04-18,Union,Iowa,19175,1,0 +2020-04-19,Union,Iowa,19175,1,0 +2020-04-20,Union,Iowa,19175,1,0 +2020-04-21,Union,Iowa,19175,1,0 +2020-04-22,Union,Iowa,19175,1,0 +2020-04-23,Union,Iowa,19175,1,0 +2020-04-24,Union,Iowa,19175,1,0 +2020-04-25,Union,Iowa,19175,1,0 +2020-04-26,Union,Iowa,19175,1,0 +2020-04-27,Union,Iowa,19175,1,0 +2020-04-28,Union,Iowa,19175,1,0 +2020-04-29,Union,Iowa,19175,1,0 +2020-04-30,Union,Iowa,19175,1,0 +2020-05-01,Union,Iowa,19175,1,0 +2020-05-02,Union,Iowa,19175,1,0 +2020-05-03,Union,Iowa,19175,1,0 +2020-05-04,Union,Iowa,19175,1,0 +2020-05-05,Union,Iowa,19175,1,0 +2020-05-06,Union,Iowa,19175,1,0 +2020-05-07,Union,Iowa,19175,1,0 +2020-05-08,Union,Iowa,19175,1,0 +2020-05-09,Union,Iowa,19175,1,0 +2020-05-10,Union,Iowa,19175,1,0 +2020-05-11,Union,Iowa,19175,2,0 +2020-05-12,Union,Iowa,19175,2,0 +2020-05-13,Union,Iowa,19175,2,0 +2020-05-14,Union,Iowa,19175,1,0 +2020-05-15,Union,Iowa,19175,1,0 +2020-05-16,Union,Iowa,19175,2,0 +2020-05-17,Union,Iowa,19175,2,0 +2020-05-18,Union,Iowa,19175,2,0 +2020-05-19,Union,Iowa,19175,2,0 +2020-05-20,Union,Iowa,19175,5,0 +2020-05-21,Union,Iowa,19175,4,0 +2020-05-22,Union,Iowa,19175,5,0 +2020-05-23,Union,Iowa,19175,5,0 +2020-05-24,Union,Iowa,19175,7,0 +2020-05-25,Union,Iowa,19175,7,0 +2020-05-26,Union,Iowa,19175,6,0 +2020-05-27,Union,Iowa,19175,6,0 +2020-05-28,Union,Iowa,19175,7,0 +2020-05-29,Union,Iowa,19175,7,0 +2020-05-30,Union,Iowa,19175,7,0 +2020-05-31,Union,Iowa,19175,8,0 +2020-06-01,Union,Iowa,19175,9,0 +2020-06-02,Union,Iowa,19175,10,0 +2020-06-03,Union,Iowa,19175,9,0 +2020-06-04,Union,Iowa,19175,9,0 +2020-06-05,Union,Iowa,19175,10,0 +2020-06-06,Union,Iowa,19175,11,0 +2020-06-07,Union,Iowa,19175,11,0 +2020-06-08,Union,Iowa,19175,11,0 +2020-06-09,Union,Iowa,19175,11,0 +2020-06-10,Union,Iowa,19175,10,0 +2020-06-11,Union,Iowa,19175,10,0 +2020-06-12,Union,Iowa,19175,10,0 +2020-06-13,Union,Iowa,19175,10,0 +2020-06-14,Union,Iowa,19175,10,0 +2020-06-15,Union,Iowa,19175,10,0 +2020-06-16,Union,Iowa,19175,10,0 +2020-06-17,Union,Iowa,19175,11,0 +2020-06-18,Union,Iowa,19175,12,0 +2020-06-19,Union,Iowa,19175,12,0 +2020-06-20,Union,Iowa,19175,12,0 +2020-06-21,Union,Iowa,19175,13,0 +2020-06-22,Union,Iowa,19175,14,0 +2020-06-23,Union,Iowa,19175,14,0 +2020-06-24,Union,Iowa,19175,15,0 +2020-06-25,Union,Iowa,19175,17,0 +2020-06-26,Union,Iowa,19175,17,0 +2020-06-27,Union,Iowa,19175,24,0 +2020-06-28,Union,Iowa,19175,26,0 +2020-06-29,Union,Iowa,19175,25,0 +2020-06-30,Union,Iowa,19175,25,0 +2020-07-01,Union,Iowa,19175,27,0 +2020-07-02,Union,Iowa,19175,27,0 +2020-07-03,Union,Iowa,19175,27,0 +2020-07-04,Union,Iowa,19175,27,0 +2020-07-05,Union,Iowa,19175,28,0 +2020-07-06,Union,Iowa,19175,29,0 +2020-07-07,Union,Iowa,19175,34,0 +2020-07-08,Union,Iowa,19175,36,0 +2020-07-09,Union,Iowa,19175,37,0 +2020-03-30,Van Buren,Iowa,19177,1,0 +2020-03-31,Van Buren,Iowa,19177,1,0 +2020-04-01,Van Buren,Iowa,19177,2,0 +2020-04-02,Van Buren,Iowa,19177,3,0 +2020-04-03,Van Buren,Iowa,19177,5,0 +2020-04-04,Van Buren,Iowa,19177,6,0 +2020-04-05,Van Buren,Iowa,19177,6,0 +2020-04-06,Van Buren,Iowa,19177,6,0 +2020-04-07,Van Buren,Iowa,19177,6,0 +2020-04-08,Van Buren,Iowa,19177,6,0 +2020-04-09,Van Buren,Iowa,19177,6,0 +2020-04-10,Van Buren,Iowa,19177,6,0 +2020-04-11,Van Buren,Iowa,19177,6,0 +2020-04-12,Van Buren,Iowa,19177,6,0 +2020-04-13,Van Buren,Iowa,19177,8,0 +2020-04-14,Van Buren,Iowa,19177,8,0 +2020-04-15,Van Buren,Iowa,19177,8,0 +2020-04-16,Van Buren,Iowa,19177,8,0 +2020-04-17,Van Buren,Iowa,19177,8,0 +2020-04-18,Van Buren,Iowa,19177,8,0 +2020-04-19,Van Buren,Iowa,19177,8,0 +2020-04-20,Van Buren,Iowa,19177,8,0 +2020-04-21,Van Buren,Iowa,19177,8,0 +2020-04-22,Van Buren,Iowa,19177,8,0 +2020-04-23,Van Buren,Iowa,19177,8,0 +2020-04-24,Van Buren,Iowa,19177,8,0 +2020-04-25,Van Buren,Iowa,19177,8,0 +2020-04-26,Van Buren,Iowa,19177,8,0 +2020-04-27,Van Buren,Iowa,19177,8,0 +2020-04-28,Van Buren,Iowa,19177,8,0 +2020-04-29,Van Buren,Iowa,19177,8,0 +2020-04-30,Van Buren,Iowa,19177,8,0 +2020-05-01,Van Buren,Iowa,19177,8,0 +2020-05-02,Van Buren,Iowa,19177,8,0 +2020-05-03,Van Buren,Iowa,19177,8,0 +2020-05-04,Van Buren,Iowa,19177,8,0 +2020-05-05,Van Buren,Iowa,19177,8,0 +2020-05-06,Van Buren,Iowa,19177,8,0 +2020-05-07,Van Buren,Iowa,19177,8,0 +2020-05-08,Van Buren,Iowa,19177,8,0 +2020-05-09,Van Buren,Iowa,19177,8,0 +2020-05-10,Van Buren,Iowa,19177,8,0 +2020-05-11,Van Buren,Iowa,19177,8,0 +2020-05-12,Van Buren,Iowa,19177,8,0 +2020-05-13,Van Buren,Iowa,19177,8,0 +2020-05-14,Van Buren,Iowa,19177,8,0 +2020-05-15,Van Buren,Iowa,19177,8,0 +2020-05-16,Van Buren,Iowa,19177,8,0 +2020-05-17,Van Buren,Iowa,19177,8,0 +2020-05-18,Van Buren,Iowa,19177,8,0 +2020-05-19,Van Buren,Iowa,19177,8,0 +2020-05-20,Van Buren,Iowa,19177,8,0 +2020-05-21,Van Buren,Iowa,19177,8,0 +2020-05-22,Van Buren,Iowa,19177,8,0 +2020-05-23,Van Buren,Iowa,19177,8,0 +2020-05-24,Van Buren,Iowa,19177,10,0 +2020-05-25,Van Buren,Iowa,19177,10,0 +2020-05-26,Van Buren,Iowa,19177,9,0 +2020-05-27,Van Buren,Iowa,19177,9,0 +2020-05-28,Van Buren,Iowa,19177,9,0 +2020-05-29,Van Buren,Iowa,19177,9,0 +2020-05-30,Van Buren,Iowa,19177,9,0 +2020-05-31,Van Buren,Iowa,19177,9,0 +2020-06-01,Van Buren,Iowa,19177,9,0 +2020-06-02,Van Buren,Iowa,19177,9,0 +2020-06-03,Van Buren,Iowa,19177,9,0 +2020-06-04,Van Buren,Iowa,19177,9,0 +2020-06-05,Van Buren,Iowa,19177,9,0 +2020-06-06,Van Buren,Iowa,19177,9,0 +2020-06-07,Van Buren,Iowa,19177,10,0 +2020-06-08,Van Buren,Iowa,19177,10,0 +2020-06-09,Van Buren,Iowa,19177,10,0 +2020-06-10,Van Buren,Iowa,19177,11,0 +2020-06-11,Van Buren,Iowa,19177,11,0 +2020-06-12,Van Buren,Iowa,19177,11,0 +2020-06-13,Van Buren,Iowa,19177,11,0 +2020-06-14,Van Buren,Iowa,19177,11,0 +2020-06-15,Van Buren,Iowa,19177,11,0 +2020-06-16,Van Buren,Iowa,19177,12,0 +2020-06-17,Van Buren,Iowa,19177,11,0 +2020-06-18,Van Buren,Iowa,19177,11,0 +2020-06-19,Van Buren,Iowa,19177,11,0 +2020-06-20,Van Buren,Iowa,19177,12,0 +2020-06-21,Van Buren,Iowa,19177,12,0 +2020-06-22,Van Buren,Iowa,19177,14,0 +2020-06-23,Van Buren,Iowa,19177,16,0 +2020-06-24,Van Buren,Iowa,19177,17,0 +2020-06-25,Van Buren,Iowa,19177,17,0 +2020-06-26,Van Buren,Iowa,19177,18,0 +2020-06-27,Van Buren,Iowa,19177,18,0 +2020-06-28,Van Buren,Iowa,19177,18,0 +2020-06-29,Van Buren,Iowa,19177,19,0 +2020-06-30,Van Buren,Iowa,19177,19,0 +2020-07-01,Van Buren,Iowa,19177,20,0 +2020-07-02,Van Buren,Iowa,19177,19,0 +2020-07-03,Van Buren,Iowa,19177,19,0 +2020-07-04,Van Buren,Iowa,19177,20,0 +2020-07-05,Van Buren,Iowa,19177,21,0 +2020-07-06,Van Buren,Iowa,19177,22,0 +2020-07-07,Van Buren,Iowa,19177,21,0 +2020-07-08,Van Buren,Iowa,19177,21,0 +2020-07-09,Van Buren,Iowa,19177,21,0 +2020-03-23,Wapello,Iowa,19179,1,0 +2020-03-24,Wapello,Iowa,19179,1,0 +2020-03-25,Wapello,Iowa,19179,1,0 +2020-03-26,Wapello,Iowa,19179,1,0 +2020-03-27,Wapello,Iowa,19179,1,0 +2020-03-28,Wapello,Iowa,19179,1,0 +2020-03-29,Wapello,Iowa,19179,1,0 +2020-03-30,Wapello,Iowa,19179,1,0 +2020-03-31,Wapello,Iowa,19179,1,0 +2020-04-01,Wapello,Iowa,19179,1,0 +2020-04-02,Wapello,Iowa,19179,1,0 +2020-04-03,Wapello,Iowa,19179,1,0 +2020-04-04,Wapello,Iowa,19179,1,0 +2020-04-05,Wapello,Iowa,19179,1,0 +2020-04-06,Wapello,Iowa,19179,2,0 +2020-04-07,Wapello,Iowa,19179,2,0 +2020-04-08,Wapello,Iowa,19179,2,0 +2020-04-09,Wapello,Iowa,19179,2,0 +2020-04-10,Wapello,Iowa,19179,3,0 +2020-04-11,Wapello,Iowa,19179,4,0 +2020-04-12,Wapello,Iowa,19179,4,0 +2020-04-13,Wapello,Iowa,19179,6,0 +2020-04-14,Wapello,Iowa,19179,7,0 +2020-04-15,Wapello,Iowa,19179,7,0 +2020-04-16,Wapello,Iowa,19179,6,0 +2020-04-17,Wapello,Iowa,19179,6,0 +2020-04-18,Wapello,Iowa,19179,7,0 +2020-04-19,Wapello,Iowa,19179,7,0 +2020-04-20,Wapello,Iowa,19179,7,0 +2020-04-21,Wapello,Iowa,19179,7,0 +2020-04-22,Wapello,Iowa,19179,7,0 +2020-04-23,Wapello,Iowa,19179,7,0 +2020-04-24,Wapello,Iowa,19179,8,0 +2020-04-25,Wapello,Iowa,19179,8,0 +2020-04-26,Wapello,Iowa,19179,10,0 +2020-04-27,Wapello,Iowa,19179,10,0 +2020-04-28,Wapello,Iowa,19179,10,0 +2020-04-29,Wapello,Iowa,19179,10,0 +2020-04-30,Wapello,Iowa,19179,10,0 +2020-05-01,Wapello,Iowa,19179,17,0 +2020-05-02,Wapello,Iowa,19179,27,0 +2020-05-03,Wapello,Iowa,19179,61,0 +2020-05-04,Wapello,Iowa,19179,94,0 +2020-05-05,Wapello,Iowa,19179,108,0 +2020-05-06,Wapello,Iowa,19179,125,0 +2020-05-07,Wapello,Iowa,19179,165,0 +2020-05-08,Wapello,Iowa,19179,192,0 +2020-05-09,Wapello,Iowa,19179,212,0 +2020-05-10,Wapello,Iowa,19179,218,0 +2020-05-11,Wapello,Iowa,19179,259,0 +2020-05-12,Wapello,Iowa,19179,283,0 +2020-05-13,Wapello,Iowa,19179,306,2 +2020-05-14,Wapello,Iowa,19179,328,2 +2020-05-15,Wapello,Iowa,19179,350,2 +2020-05-16,Wapello,Iowa,19179,360,2 +2020-05-17,Wapello,Iowa,19179,379,2 +2020-05-18,Wapello,Iowa,19179,396,2 +2020-05-19,Wapello,Iowa,19179,405,2 +2020-05-20,Wapello,Iowa,19179,420,3 +2020-05-21,Wapello,Iowa,19179,450,3 +2020-05-22,Wapello,Iowa,19179,462,3 +2020-05-23,Wapello,Iowa,19179,462,3 +2020-05-24,Wapello,Iowa,19179,511,4 +2020-05-25,Wapello,Iowa,19179,514,4 +2020-05-26,Wapello,Iowa,19179,517,4 +2020-05-27,Wapello,Iowa,19179,540,4 +2020-05-28,Wapello,Iowa,19179,548,7 +2020-05-29,Wapello,Iowa,19179,556,8 +2020-05-30,Wapello,Iowa,19179,577,9 +2020-05-31,Wapello,Iowa,19179,595,10 +2020-06-01,Wapello,Iowa,19179,600,12 +2020-06-02,Wapello,Iowa,19179,610,13 +2020-06-03,Wapello,Iowa,19179,615,14 +2020-06-04,Wapello,Iowa,19179,630,14 +2020-06-05,Wapello,Iowa,19179,640,15 +2020-06-06,Wapello,Iowa,19179,641,16 +2020-06-07,Wapello,Iowa,19179,648,18 +2020-06-08,Wapello,Iowa,19179,654,21 +2020-06-09,Wapello,Iowa,19179,658,21 +2020-06-10,Wapello,Iowa,19179,660,23 +2020-06-11,Wapello,Iowa,19179,668,24 +2020-06-12,Wapello,Iowa,19179,672,26 +2020-06-13,Wapello,Iowa,19179,674,26 +2020-06-14,Wapello,Iowa,19179,675,26 +2020-06-15,Wapello,Iowa,19179,675,26 +2020-06-16,Wapello,Iowa,19179,677,26 +2020-06-17,Wapello,Iowa,19179,679,26 +2020-06-18,Wapello,Iowa,19179,681,26 +2020-06-19,Wapello,Iowa,19179,681,27 +2020-06-20,Wapello,Iowa,19179,682,27 +2020-06-21,Wapello,Iowa,19179,689,27 +2020-06-22,Wapello,Iowa,19179,689,27 +2020-06-23,Wapello,Iowa,19179,689,28 +2020-06-24,Wapello,Iowa,19179,692,28 +2020-06-25,Wapello,Iowa,19179,692,28 +2020-06-26,Wapello,Iowa,19179,694,29 +2020-06-27,Wapello,Iowa,19179,694,29 +2020-06-28,Wapello,Iowa,19179,696,29 +2020-06-29,Wapello,Iowa,19179,699,30 +2020-06-30,Wapello,Iowa,19179,700,30 +2020-07-01,Wapello,Iowa,19179,701,30 +2020-07-02,Wapello,Iowa,19179,702,30 +2020-07-03,Wapello,Iowa,19179,705,30 +2020-07-04,Wapello,Iowa,19179,707,30 +2020-07-05,Wapello,Iowa,19179,708,30 +2020-07-06,Wapello,Iowa,19179,708,30 +2020-07-07,Wapello,Iowa,19179,708,30 +2020-07-08,Wapello,Iowa,19179,712,31 +2020-07-09,Wapello,Iowa,19179,712,31 +2020-03-24,Warren,Iowa,19181,1,0 +2020-03-25,Warren,Iowa,19181,1,0 +2020-03-26,Warren,Iowa,19181,1,0 +2020-03-27,Warren,Iowa,19181,1,0 +2020-03-28,Warren,Iowa,19181,1,0 +2020-03-29,Warren,Iowa,19181,1,0 +2020-03-30,Warren,Iowa,19181,1,0 +2020-03-31,Warren,Iowa,19181,3,0 +2020-04-01,Warren,Iowa,19181,4,0 +2020-04-02,Warren,Iowa,19181,6,0 +2020-04-03,Warren,Iowa,19181,8,0 +2020-04-04,Warren,Iowa,19181,9,0 +2020-04-05,Warren,Iowa,19181,10,0 +2020-04-06,Warren,Iowa,19181,11,0 +2020-04-07,Warren,Iowa,19181,12,0 +2020-04-08,Warren,Iowa,19181,13,0 +2020-04-09,Warren,Iowa,19181,13,0 +2020-04-10,Warren,Iowa,19181,15,0 +2020-04-11,Warren,Iowa,19181,15,0 +2020-04-12,Warren,Iowa,19181,16,0 +2020-04-13,Warren,Iowa,19181,14,0 +2020-04-14,Warren,Iowa,19181,15,0 +2020-04-15,Warren,Iowa,19181,16,0 +2020-04-16,Warren,Iowa,19181,17,0 +2020-04-17,Warren,Iowa,19181,17,0 +2020-04-18,Warren,Iowa,19181,18,0 +2020-04-19,Warren,Iowa,19181,19,0 +2020-04-20,Warren,Iowa,19181,20,0 +2020-04-21,Warren,Iowa,19181,20,0 +2020-04-22,Warren,Iowa,19181,18,0 +2020-04-23,Warren,Iowa,19181,18,0 +2020-04-24,Warren,Iowa,19181,19,0 +2020-04-25,Warren,Iowa,19181,20,0 +2020-04-26,Warren,Iowa,19181,20,0 +2020-04-27,Warren,Iowa,19181,20,0 +2020-04-28,Warren,Iowa,19181,20,0 +2020-04-29,Warren,Iowa,19181,21,0 +2020-04-30,Warren,Iowa,19181,22,0 +2020-05-01,Warren,Iowa,19181,25,0 +2020-05-02,Warren,Iowa,19181,25,0 +2020-05-03,Warren,Iowa,19181,26,0 +2020-05-04,Warren,Iowa,19181,27,0 +2020-05-05,Warren,Iowa,19181,28,0 +2020-05-06,Warren,Iowa,19181,34,0 +2020-05-07,Warren,Iowa,19181,35,0 +2020-05-08,Warren,Iowa,19181,39,0 +2020-05-09,Warren,Iowa,19181,42,0 +2020-05-10,Warren,Iowa,19181,42,0 +2020-05-11,Warren,Iowa,19181,44,0 +2020-05-12,Warren,Iowa,19181,49,0 +2020-05-13,Warren,Iowa,19181,52,0 +2020-05-14,Warren,Iowa,19181,53,0 +2020-05-15,Warren,Iowa,19181,63,0 +2020-05-16,Warren,Iowa,19181,66,0 +2020-05-17,Warren,Iowa,19181,72,0 +2020-05-18,Warren,Iowa,19181,77,0 +2020-05-19,Warren,Iowa,19181,87,0 +2020-05-20,Warren,Iowa,19181,89,0 +2020-05-21,Warren,Iowa,19181,90,0 +2020-05-22,Warren,Iowa,19181,99,0 +2020-05-23,Warren,Iowa,19181,99,0 +2020-05-24,Warren,Iowa,19181,108,0 +2020-05-25,Warren,Iowa,19181,112,0 +2020-05-26,Warren,Iowa,19181,112,0 +2020-05-27,Warren,Iowa,19181,115,0 +2020-05-28,Warren,Iowa,19181,118,0 +2020-05-29,Warren,Iowa,19181,121,0 +2020-05-30,Warren,Iowa,19181,130,0 +2020-05-31,Warren,Iowa,19181,133,0 +2020-06-01,Warren,Iowa,19181,139,0 +2020-06-02,Warren,Iowa,19181,144,0 +2020-06-03,Warren,Iowa,19181,155,0 +2020-06-04,Warren,Iowa,19181,167,1 +2020-06-05,Warren,Iowa,19181,171,1 +2020-06-06,Warren,Iowa,19181,174,1 +2020-06-07,Warren,Iowa,19181,174,1 +2020-06-08,Warren,Iowa,19181,174,1 +2020-06-09,Warren,Iowa,19181,177,1 +2020-06-10,Warren,Iowa,19181,184,1 +2020-06-11,Warren,Iowa,19181,189,1 +2020-06-12,Warren,Iowa,19181,191,1 +2020-06-13,Warren,Iowa,19181,193,1 +2020-06-14,Warren,Iowa,19181,197,1 +2020-06-15,Warren,Iowa,19181,197,1 +2020-06-16,Warren,Iowa,19181,198,1 +2020-06-17,Warren,Iowa,19181,201,1 +2020-06-18,Warren,Iowa,19181,201,2 +2020-06-19,Warren,Iowa,19181,207,2 +2020-06-20,Warren,Iowa,19181,209,2 +2020-06-21,Warren,Iowa,19181,211,2 +2020-06-22,Warren,Iowa,19181,214,2 +2020-06-23,Warren,Iowa,19181,214,2 +2020-06-24,Warren,Iowa,19181,215,2 +2020-06-25,Warren,Iowa,19181,221,2 +2020-06-26,Warren,Iowa,19181,224,2 +2020-06-27,Warren,Iowa,19181,231,2 +2020-06-28,Warren,Iowa,19181,237,2 +2020-06-29,Warren,Iowa,19181,243,2 +2020-06-30,Warren,Iowa,19181,245,2 +2020-07-01,Warren,Iowa,19181,252,1 +2020-07-02,Warren,Iowa,19181,258,1 +2020-07-03,Warren,Iowa,19181,267,1 +2020-07-04,Warren,Iowa,19181,277,1 +2020-07-05,Warren,Iowa,19181,290,1 +2020-07-06,Warren,Iowa,19181,290,1 +2020-07-07,Warren,Iowa,19181,291,1 +2020-07-08,Warren,Iowa,19181,298,1 +2020-07-09,Warren,Iowa,19181,300,1 +2020-03-18,Washington,Iowa,19183,1,0 +2020-03-19,Washington,Iowa,19183,1,0 +2020-03-20,Washington,Iowa,19183,1,0 +2020-03-21,Washington,Iowa,19183,2,0 +2020-03-22,Washington,Iowa,19183,3,0 +2020-03-23,Washington,Iowa,19183,3,0 +2020-03-24,Washington,Iowa,19183,4,0 +2020-03-25,Washington,Iowa,19183,6,0 +2020-03-26,Washington,Iowa,19183,8,0 +2020-03-27,Washington,Iowa,19183,11,0 +2020-03-28,Washington,Iowa,19183,11,0 +2020-03-29,Washington,Iowa,19183,13,0 +2020-03-30,Washington,Iowa,19183,18,1 +2020-03-31,Washington,Iowa,19183,24,1 +2020-04-01,Washington,Iowa,19183,34,2 +2020-04-02,Washington,Iowa,19183,36,2 +2020-04-03,Washington,Iowa,19183,43,2 +2020-04-04,Washington,Iowa,19183,47,2 +2020-04-05,Washington,Iowa,19183,49,3 +2020-04-06,Washington,Iowa,19183,52,2 +2020-04-07,Washington,Iowa,19183,57,2 +2020-04-08,Washington,Iowa,19183,62,2 +2020-04-09,Washington,Iowa,19183,65,2 +2020-04-10,Washington,Iowa,19183,70,3 +2020-04-11,Washington,Iowa,19183,79,3 +2020-04-12,Washington,Iowa,19183,81,4 +2020-04-13,Washington,Iowa,19183,89,4 +2020-04-14,Washington,Iowa,19183,95,4 +2020-04-15,Washington,Iowa,19183,101,4 +2020-04-16,Washington,Iowa,19183,106,4 +2020-04-17,Washington,Iowa,19183,109,5 +2020-04-18,Washington,Iowa,19183,113,5 +2020-04-19,Washington,Iowa,19183,120,5 +2020-04-20,Washington,Iowa,19183,123,5 +2020-04-21,Washington,Iowa,19183,126,5 +2020-04-22,Washington,Iowa,19183,126,5 +2020-04-23,Washington,Iowa,19183,126,5 +2020-04-24,Washington,Iowa,19183,133,5 +2020-04-25,Washington,Iowa,19183,134,5 +2020-04-26,Washington,Iowa,19183,134,5 +2020-04-27,Washington,Iowa,19183,136,6 +2020-04-28,Washington,Iowa,19183,138,6 +2020-04-29,Washington,Iowa,19183,139,7 +2020-04-30,Washington,Iowa,19183,141,7 +2020-05-01,Washington,Iowa,19183,144,7 +2020-05-02,Washington,Iowa,19183,145,7 +2020-05-03,Washington,Iowa,19183,148,7 +2020-05-04,Washington,Iowa,19183,149,7 +2020-05-05,Washington,Iowa,19183,149,7 +2020-05-06,Washington,Iowa,19183,152,7 +2020-05-07,Washington,Iowa,19183,154,7 +2020-05-08,Washington,Iowa,19183,155,7 +2020-05-09,Washington,Iowa,19183,156,7 +2020-05-10,Washington,Iowa,19183,159,7 +2020-05-11,Washington,Iowa,19183,162,7 +2020-05-12,Washington,Iowa,19183,163,7 +2020-05-13,Washington,Iowa,19183,163,8 +2020-05-14,Washington,Iowa,19183,163,8 +2020-05-15,Washington,Iowa,19183,163,8 +2020-05-16,Washington,Iowa,19183,170,8 +2020-05-17,Washington,Iowa,19183,172,8 +2020-05-18,Washington,Iowa,19183,172,8 +2020-05-19,Washington,Iowa,19183,173,8 +2020-05-20,Washington,Iowa,19183,173,8 +2020-05-21,Washington,Iowa,19183,174,8 +2020-05-22,Washington,Iowa,19183,178,8 +2020-05-23,Washington,Iowa,19183,178,8 +2020-05-24,Washington,Iowa,19183,179,8 +2020-05-25,Washington,Iowa,19183,184,8 +2020-05-26,Washington,Iowa,19183,185,8 +2020-05-27,Washington,Iowa,19183,185,8 +2020-05-28,Washington,Iowa,19183,185,8 +2020-05-29,Washington,Iowa,19183,187,8 +2020-05-30,Washington,Iowa,19183,189,8 +2020-05-31,Washington,Iowa,19183,189,8 +2020-06-01,Washington,Iowa,19183,190,8 +2020-06-02,Washington,Iowa,19183,190,8 +2020-06-03,Washington,Iowa,19183,192,8 +2020-06-04,Washington,Iowa,19183,195,8 +2020-06-05,Washington,Iowa,19183,197,8 +2020-06-06,Washington,Iowa,19183,199,8 +2020-06-07,Washington,Iowa,19183,200,9 +2020-06-08,Washington,Iowa,19183,200,9 +2020-06-09,Washington,Iowa,19183,202,9 +2020-06-10,Washington,Iowa,19183,205,9 +2020-06-11,Washington,Iowa,19183,205,9 +2020-06-12,Washington,Iowa,19183,208,9 +2020-06-13,Washington,Iowa,19183,208,9 +2020-06-14,Washington,Iowa,19183,208,9 +2020-06-15,Washington,Iowa,19183,208,9 +2020-06-16,Washington,Iowa,19183,208,9 +2020-06-17,Washington,Iowa,19183,209,9 +2020-06-18,Washington,Iowa,19183,210,9 +2020-06-19,Washington,Iowa,19183,210,9 +2020-06-20,Washington,Iowa,19183,210,9 +2020-06-21,Washington,Iowa,19183,212,9 +2020-06-22,Washington,Iowa,19183,214,9 +2020-06-23,Washington,Iowa,19183,214,9 +2020-06-24,Washington,Iowa,19183,218,9 +2020-06-25,Washington,Iowa,19183,217,9 +2020-06-26,Washington,Iowa,19183,219,9 +2020-06-27,Washington,Iowa,19183,220,9 +2020-06-28,Washington,Iowa,19183,221,9 +2020-06-29,Washington,Iowa,19183,225,9 +2020-06-30,Washington,Iowa,19183,225,9 +2020-07-01,Washington,Iowa,19183,230,9 +2020-07-02,Washington,Iowa,19183,234,9 +2020-07-03,Washington,Iowa,19183,234,9 +2020-07-04,Washington,Iowa,19183,236,9 +2020-07-05,Washington,Iowa,19183,242,9 +2020-07-06,Washington,Iowa,19183,243,9 +2020-07-07,Washington,Iowa,19183,245,9 +2020-07-08,Washington,Iowa,19183,247,9 +2020-07-09,Washington,Iowa,19183,248,9 +2020-05-01,Wayne,Iowa,19185,1,0 +2020-05-02,Wayne,Iowa,19185,1,0 +2020-05-03,Wayne,Iowa,19185,1,0 +2020-05-04,Wayne,Iowa,19185,1,0 +2020-05-05,Wayne,Iowa,19185,1,0 +2020-05-06,Wayne,Iowa,19185,1,0 +2020-05-07,Wayne,Iowa,19185,1,0 +2020-05-08,Wayne,Iowa,19185,1,0 +2020-05-09,Wayne,Iowa,19185,1,0 +2020-05-10,Wayne,Iowa,19185,1,0 +2020-05-11,Wayne,Iowa,19185,1,0 +2020-05-12,Wayne,Iowa,19185,1,0 +2020-05-13,Wayne,Iowa,19185,1,0 +2020-05-14,Wayne,Iowa,19185,1,0 +2020-05-15,Wayne,Iowa,19185,1,0 +2020-05-16,Wayne,Iowa,19185,1,0 +2020-05-17,Wayne,Iowa,19185,1,0 +2020-05-18,Wayne,Iowa,19185,1,0 +2020-05-19,Wayne,Iowa,19185,1,0 +2020-05-20,Wayne,Iowa,19185,1,0 +2020-05-21,Wayne,Iowa,19185,1,0 +2020-05-22,Wayne,Iowa,19185,1,0 +2020-05-23,Wayne,Iowa,19185,1,0 +2020-05-24,Wayne,Iowa,19185,1,0 +2020-05-25,Wayne,Iowa,19185,1,0 +2020-05-26,Wayne,Iowa,19185,1,0 +2020-05-27,Wayne,Iowa,19185,1,0 +2020-05-28,Wayne,Iowa,19185,1,0 +2020-05-29,Wayne,Iowa,19185,1,0 +2020-05-30,Wayne,Iowa,19185,1,0 +2020-05-31,Wayne,Iowa,19185,1,0 +2020-06-01,Wayne,Iowa,19185,1,0 +2020-06-02,Wayne,Iowa,19185,1,0 +2020-06-03,Wayne,Iowa,19185,1,0 +2020-06-04,Wayne,Iowa,19185,1,0 +2020-06-05,Wayne,Iowa,19185,1,0 +2020-06-06,Wayne,Iowa,19185,2,0 +2020-06-07,Wayne,Iowa,19185,2,0 +2020-06-08,Wayne,Iowa,19185,2,0 +2020-06-09,Wayne,Iowa,19185,3,0 +2020-06-10,Wayne,Iowa,19185,4,0 +2020-06-11,Wayne,Iowa,19185,4,0 +2020-06-12,Wayne,Iowa,19185,4,0 +2020-06-13,Wayne,Iowa,19185,4,0 +2020-06-14,Wayne,Iowa,19185,4,0 +2020-06-15,Wayne,Iowa,19185,5,0 +2020-06-16,Wayne,Iowa,19185,5,0 +2020-06-17,Wayne,Iowa,19185,5,0 +2020-06-18,Wayne,Iowa,19185,5,0 +2020-06-19,Wayne,Iowa,19185,5,0 +2020-06-20,Wayne,Iowa,19185,5,0 +2020-06-21,Wayne,Iowa,19185,5,0 +2020-06-22,Wayne,Iowa,19185,5,0 +2020-06-23,Wayne,Iowa,19185,6,0 +2020-06-24,Wayne,Iowa,19185,7,0 +2020-06-25,Wayne,Iowa,19185,7,0 +2020-06-26,Wayne,Iowa,19185,7,0 +2020-06-27,Wayne,Iowa,19185,8,0 +2020-06-28,Wayne,Iowa,19185,8,0 +2020-06-29,Wayne,Iowa,19185,8,0 +2020-06-30,Wayne,Iowa,19185,8,0 +2020-07-01,Wayne,Iowa,19185,8,0 +2020-07-02,Wayne,Iowa,19185,9,0 +2020-07-03,Wayne,Iowa,19185,10,0 +2020-07-04,Wayne,Iowa,19185,10,0 +2020-07-05,Wayne,Iowa,19185,10,0 +2020-07-06,Wayne,Iowa,19185,10,0 +2020-07-07,Wayne,Iowa,19185,10,0 +2020-07-08,Wayne,Iowa,19185,10,0 +2020-07-09,Wayne,Iowa,19185,10,0 +2020-03-27,Webster,Iowa,19187,1,0 +2020-03-28,Webster,Iowa,19187,1,0 +2020-03-29,Webster,Iowa,19187,1,0 +2020-03-30,Webster,Iowa,19187,1,0 +2020-03-31,Webster,Iowa,19187,1,0 +2020-04-01,Webster,Iowa,19187,1,0 +2020-04-02,Webster,Iowa,19187,1,0 +2020-04-03,Webster,Iowa,19187,1,0 +2020-04-04,Webster,Iowa,19187,1,0 +2020-04-05,Webster,Iowa,19187,1,0 +2020-04-06,Webster,Iowa,19187,1,0 +2020-04-07,Webster,Iowa,19187,1,0 +2020-04-08,Webster,Iowa,19187,2,0 +2020-04-09,Webster,Iowa,19187,2,0 +2020-04-10,Webster,Iowa,19187,2,0 +2020-04-11,Webster,Iowa,19187,2,0 +2020-04-12,Webster,Iowa,19187,2,0 +2020-04-13,Webster,Iowa,19187,2,0 +2020-04-14,Webster,Iowa,19187,2,0 +2020-04-15,Webster,Iowa,19187,2,0 +2020-04-16,Webster,Iowa,19187,2,0 +2020-04-17,Webster,Iowa,19187,2,0 +2020-04-18,Webster,Iowa,19187,3,0 +2020-04-19,Webster,Iowa,19187,3,0 +2020-04-20,Webster,Iowa,19187,4,0 +2020-04-21,Webster,Iowa,19187,3,0 +2020-04-22,Webster,Iowa,19187,2,0 +2020-04-23,Webster,Iowa,19187,2,0 +2020-04-24,Webster,Iowa,19187,4,0 +2020-04-25,Webster,Iowa,19187,4,0 +2020-04-26,Webster,Iowa,19187,4,0 +2020-04-27,Webster,Iowa,19187,4,0 +2020-04-28,Webster,Iowa,19187,4,0 +2020-04-29,Webster,Iowa,19187,5,0 +2020-04-30,Webster,Iowa,19187,5,0 +2020-05-01,Webster,Iowa,19187,5,0 +2020-05-02,Webster,Iowa,19187,6,0 +2020-05-03,Webster,Iowa,19187,6,0 +2020-05-04,Webster,Iowa,19187,6,0 +2020-05-05,Webster,Iowa,19187,6,0 +2020-05-06,Webster,Iowa,19187,8,0 +2020-05-07,Webster,Iowa,19187,8,0 +2020-05-08,Webster,Iowa,19187,9,0 +2020-05-09,Webster,Iowa,19187,9,0 +2020-05-10,Webster,Iowa,19187,9,0 +2020-05-11,Webster,Iowa,19187,10,0 +2020-05-12,Webster,Iowa,19187,10,0 +2020-05-13,Webster,Iowa,19187,12,0 +2020-05-14,Webster,Iowa,19187,13,1 +2020-05-15,Webster,Iowa,19187,13,1 +2020-05-16,Webster,Iowa,19187,13,1 +2020-05-17,Webster,Iowa,19187,13,1 +2020-05-18,Webster,Iowa,19187,13,1 +2020-05-19,Webster,Iowa,19187,13,1 +2020-05-20,Webster,Iowa,19187,20,1 +2020-05-21,Webster,Iowa,19187,20,1 +2020-05-22,Webster,Iowa,19187,25,1 +2020-05-23,Webster,Iowa,19187,25,1 +2020-05-24,Webster,Iowa,19187,27,1 +2020-05-25,Webster,Iowa,19187,27,1 +2020-05-26,Webster,Iowa,19187,28,1 +2020-05-27,Webster,Iowa,19187,30,1 +2020-05-28,Webster,Iowa,19187,34,1 +2020-05-29,Webster,Iowa,19187,37,1 +2020-05-30,Webster,Iowa,19187,39,1 +2020-05-31,Webster,Iowa,19187,41,1 +2020-06-01,Webster,Iowa,19187,42,1 +2020-06-02,Webster,Iowa,19187,43,1 +2020-06-03,Webster,Iowa,19187,45,1 +2020-06-04,Webster,Iowa,19187,64,1 +2020-06-05,Webster,Iowa,19187,77,1 +2020-06-06,Webster,Iowa,19187,78,1 +2020-06-07,Webster,Iowa,19187,81,1 +2020-06-08,Webster,Iowa,19187,85,1 +2020-06-09,Webster,Iowa,19187,87,1 +2020-06-10,Webster,Iowa,19187,89,1 +2020-06-11,Webster,Iowa,19187,91,1 +2020-06-12,Webster,Iowa,19187,95,1 +2020-06-13,Webster,Iowa,19187,96,1 +2020-06-14,Webster,Iowa,19187,97,1 +2020-06-15,Webster,Iowa,19187,99,1 +2020-06-16,Webster,Iowa,19187,103,1 +2020-06-17,Webster,Iowa,19187,104,1 +2020-06-18,Webster,Iowa,19187,109,1 +2020-06-19,Webster,Iowa,19187,113,1 +2020-06-20,Webster,Iowa,19187,114,1 +2020-06-21,Webster,Iowa,19187,120,1 +2020-06-22,Webster,Iowa,19187,126,1 +2020-06-23,Webster,Iowa,19187,133,1 +2020-06-24,Webster,Iowa,19187,135,1 +2020-06-25,Webster,Iowa,19187,141,1 +2020-06-26,Webster,Iowa,19187,143,1 +2020-06-27,Webster,Iowa,19187,143,1 +2020-06-28,Webster,Iowa,19187,150,1 +2020-06-29,Webster,Iowa,19187,160,2 +2020-06-30,Webster,Iowa,19187,161,2 +2020-07-01,Webster,Iowa,19187,168,2 +2020-07-02,Webster,Iowa,19187,170,2 +2020-07-03,Webster,Iowa,19187,171,2 +2020-07-04,Webster,Iowa,19187,214,2 +2020-07-05,Webster,Iowa,19187,220,2 +2020-07-06,Webster,Iowa,19187,229,2 +2020-07-07,Webster,Iowa,19187,248,4 +2020-07-08,Webster,Iowa,19187,267,4 +2020-07-09,Webster,Iowa,19187,285,4 +2020-04-06,Winnebago,Iowa,19189,1,0 +2020-04-07,Winnebago,Iowa,19189,1,0 +2020-04-08,Winnebago,Iowa,19189,1,0 +2020-04-09,Winnebago,Iowa,19189,1,0 +2020-04-10,Winnebago,Iowa,19189,2,0 +2020-04-11,Winnebago,Iowa,19189,2,0 +2020-04-12,Winnebago,Iowa,19189,2,0 +2020-04-13,Winnebago,Iowa,19189,2,0 +2020-04-14,Winnebago,Iowa,19189,2,0 +2020-04-15,Winnebago,Iowa,19189,2,0 +2020-04-16,Winnebago,Iowa,19189,2,0 +2020-04-17,Winnebago,Iowa,19189,2,0 +2020-04-18,Winnebago,Iowa,19189,2,0 +2020-04-19,Winnebago,Iowa,19189,2,0 +2020-04-20,Winnebago,Iowa,19189,2,0 +2020-04-21,Winnebago,Iowa,19189,2,0 +2020-04-22,Winnebago,Iowa,19189,2,0 +2020-04-23,Winnebago,Iowa,19189,2,0 +2020-04-24,Winnebago,Iowa,19189,2,0 +2020-04-25,Winnebago,Iowa,19189,2,0 +2020-04-26,Winnebago,Iowa,19189,2,0 +2020-04-27,Winnebago,Iowa,19189,2,0 +2020-04-28,Winnebago,Iowa,19189,2,0 +2020-04-29,Winnebago,Iowa,19189,2,0 +2020-04-30,Winnebago,Iowa,19189,2,0 +2020-05-01,Winnebago,Iowa,19189,2,0 +2020-05-02,Winnebago,Iowa,19189,2,0 +2020-05-03,Winnebago,Iowa,19189,2,0 +2020-05-04,Winnebago,Iowa,19189,3,0 +2020-05-05,Winnebago,Iowa,19189,3,0 +2020-05-06,Winnebago,Iowa,19189,3,0 +2020-05-07,Winnebago,Iowa,19189,3,0 +2020-05-08,Winnebago,Iowa,19189,3,0 +2020-05-09,Winnebago,Iowa,19189,3,0 +2020-05-10,Winnebago,Iowa,19189,3,0 +2020-05-11,Winnebago,Iowa,19189,5,0 +2020-05-12,Winnebago,Iowa,19189,5,0 +2020-05-13,Winnebago,Iowa,19189,5,0 +2020-05-14,Winnebago,Iowa,19189,6,0 +2020-05-15,Winnebago,Iowa,19189,6,0 +2020-05-16,Winnebago,Iowa,19189,6,0 +2020-05-17,Winnebago,Iowa,19189,6,0 +2020-05-18,Winnebago,Iowa,19189,7,0 +2020-05-19,Winnebago,Iowa,19189,7,0 +2020-05-20,Winnebago,Iowa,19189,9,0 +2020-05-21,Winnebago,Iowa,19189,9,0 +2020-05-22,Winnebago,Iowa,19189,10,0 +2020-05-23,Winnebago,Iowa,19189,10,0 +2020-05-24,Winnebago,Iowa,19189,10,0 +2020-05-25,Winnebago,Iowa,19189,10,0 +2020-05-26,Winnebago,Iowa,19189,10,0 +2020-05-27,Winnebago,Iowa,19189,11,0 +2020-05-28,Winnebago,Iowa,19189,11,0 +2020-05-29,Winnebago,Iowa,19189,11,0 +2020-05-30,Winnebago,Iowa,19189,11,0 +2020-05-31,Winnebago,Iowa,19189,11,0 +2020-06-01,Winnebago,Iowa,19189,11,0 +2020-06-02,Winnebago,Iowa,19189,11,0 +2020-06-03,Winnebago,Iowa,19189,11,0 +2020-06-04,Winnebago,Iowa,19189,11,0 +2020-06-05,Winnebago,Iowa,19189,11,0 +2020-06-06,Winnebago,Iowa,19189,11,0 +2020-06-07,Winnebago,Iowa,19189,11,0 +2020-06-08,Winnebago,Iowa,19189,12,0 +2020-06-09,Winnebago,Iowa,19189,12,0 +2020-06-10,Winnebago,Iowa,19189,12,0 +2020-06-11,Winnebago,Iowa,19189,12,0 +2020-06-12,Winnebago,Iowa,19189,12,0 +2020-06-13,Winnebago,Iowa,19189,12,0 +2020-06-14,Winnebago,Iowa,19189,12,0 +2020-06-15,Winnebago,Iowa,19189,13,0 +2020-06-16,Winnebago,Iowa,19189,13,0 +2020-06-17,Winnebago,Iowa,19189,13,0 +2020-06-18,Winnebago,Iowa,19189,12,0 +2020-06-19,Winnebago,Iowa,19189,13,0 +2020-06-20,Winnebago,Iowa,19189,13,0 +2020-06-21,Winnebago,Iowa,19189,15,0 +2020-06-22,Winnebago,Iowa,19189,15,0 +2020-06-23,Winnebago,Iowa,19189,17,0 +2020-06-24,Winnebago,Iowa,19189,20,0 +2020-06-25,Winnebago,Iowa,19189,18,0 +2020-06-26,Winnebago,Iowa,19189,20,0 +2020-06-27,Winnebago,Iowa,19189,20,0 +2020-06-28,Winnebago,Iowa,19189,22,0 +2020-06-29,Winnebago,Iowa,19189,23,0 +2020-06-30,Winnebago,Iowa,19189,24,0 +2020-07-01,Winnebago,Iowa,19189,26,0 +2020-07-02,Winnebago,Iowa,19189,27,0 +2020-07-03,Winnebago,Iowa,19189,27,0 +2020-07-04,Winnebago,Iowa,19189,28,0 +2020-07-05,Winnebago,Iowa,19189,28,0 +2020-07-06,Winnebago,Iowa,19189,29,0 +2020-07-07,Winnebago,Iowa,19189,29,0 +2020-07-08,Winnebago,Iowa,19189,31,0 +2020-07-09,Winnebago,Iowa,19189,31,0 +2020-03-18,Winneshiek,Iowa,19191,1,0 +2020-03-19,Winneshiek,Iowa,19191,1,0 +2020-03-20,Winneshiek,Iowa,19191,1,0 +2020-03-21,Winneshiek,Iowa,19191,1,0 +2020-03-22,Winneshiek,Iowa,19191,1,0 +2020-03-23,Winneshiek,Iowa,19191,1,0 +2020-03-24,Winneshiek,Iowa,19191,1,0 +2020-03-25,Winneshiek,Iowa,19191,1,0 +2020-03-26,Winneshiek,Iowa,19191,1,0 +2020-03-27,Winneshiek,Iowa,19191,2,0 +2020-03-28,Winneshiek,Iowa,19191,2,0 +2020-03-29,Winneshiek,Iowa,19191,3,0 +2020-03-30,Winneshiek,Iowa,19191,3,0 +2020-03-31,Winneshiek,Iowa,19191,3,0 +2020-04-01,Winneshiek,Iowa,19191,3,0 +2020-04-02,Winneshiek,Iowa,19191,4,0 +2020-04-03,Winneshiek,Iowa,19191,4,0 +2020-04-04,Winneshiek,Iowa,19191,4,0 +2020-04-05,Winneshiek,Iowa,19191,4,0 +2020-04-06,Winneshiek,Iowa,19191,4,0 +2020-04-07,Winneshiek,Iowa,19191,4,0 +2020-04-08,Winneshiek,Iowa,19191,4,0 +2020-04-09,Winneshiek,Iowa,19191,5,0 +2020-04-10,Winneshiek,Iowa,19191,5,0 +2020-04-11,Winneshiek,Iowa,19191,5,0 +2020-04-12,Winneshiek,Iowa,19191,5,0 +2020-04-13,Winneshiek,Iowa,19191,5,0 +2020-04-14,Winneshiek,Iowa,19191,5,0 +2020-04-15,Winneshiek,Iowa,19191,5,0 +2020-04-16,Winneshiek,Iowa,19191,5,0 +2020-04-17,Winneshiek,Iowa,19191,5,0 +2020-04-18,Winneshiek,Iowa,19191,5,0 +2020-04-19,Winneshiek,Iowa,19191,6,0 +2020-04-20,Winneshiek,Iowa,19191,6,0 +2020-04-21,Winneshiek,Iowa,19191,7,0 +2020-04-22,Winneshiek,Iowa,19191,8,0 +2020-04-23,Winneshiek,Iowa,19191,9,0 +2020-04-24,Winneshiek,Iowa,19191,11,0 +2020-04-25,Winneshiek,Iowa,19191,12,0 +2020-04-26,Winneshiek,Iowa,19191,24,0 +2020-04-27,Winneshiek,Iowa,19191,24,0 +2020-04-28,Winneshiek,Iowa,19191,15,0 +2020-04-29,Winneshiek,Iowa,19191,15,0 +2020-04-30,Winneshiek,Iowa,19191,15,0 +2020-05-01,Winneshiek,Iowa,19191,17,0 +2020-05-02,Winneshiek,Iowa,19191,17,0 +2020-05-03,Winneshiek,Iowa,19191,18,0 +2020-05-04,Winneshiek,Iowa,19191,18,0 +2020-05-05,Winneshiek,Iowa,19191,18,0 +2020-05-06,Winneshiek,Iowa,19191,18,0 +2020-05-07,Winneshiek,Iowa,19191,18,0 +2020-05-08,Winneshiek,Iowa,19191,18,0 +2020-05-09,Winneshiek,Iowa,19191,18,0 +2020-05-10,Winneshiek,Iowa,19191,18,0 +2020-05-11,Winneshiek,Iowa,19191,18,0 +2020-05-12,Winneshiek,Iowa,19191,18,0 +2020-05-13,Winneshiek,Iowa,19191,18,0 +2020-05-14,Winneshiek,Iowa,19191,18,0 +2020-05-15,Winneshiek,Iowa,19191,18,0 +2020-05-16,Winneshiek,Iowa,19191,18,0 +2020-05-17,Winneshiek,Iowa,19191,18,0 +2020-05-18,Winneshiek,Iowa,19191,20,0 +2020-05-19,Winneshiek,Iowa,19191,21,0 +2020-05-20,Winneshiek,Iowa,19191,21,0 +2020-05-21,Winneshiek,Iowa,19191,21,0 +2020-05-22,Winneshiek,Iowa,19191,21,0 +2020-05-23,Winneshiek,Iowa,19191,21,0 +2020-05-24,Winneshiek,Iowa,19191,22,0 +2020-05-25,Winneshiek,Iowa,19191,23,0 +2020-05-26,Winneshiek,Iowa,19191,23,0 +2020-05-27,Winneshiek,Iowa,19191,23,0 +2020-05-28,Winneshiek,Iowa,19191,23,0 +2020-05-29,Winneshiek,Iowa,19191,23,0 +2020-05-30,Winneshiek,Iowa,19191,24,0 +2020-05-31,Winneshiek,Iowa,19191,24,0 +2020-06-01,Winneshiek,Iowa,19191,24,0 +2020-06-02,Winneshiek,Iowa,19191,24,0 +2020-06-03,Winneshiek,Iowa,19191,24,0 +2020-06-04,Winneshiek,Iowa,19191,24,0 +2020-06-05,Winneshiek,Iowa,19191,24,0 +2020-06-06,Winneshiek,Iowa,19191,24,0 +2020-06-07,Winneshiek,Iowa,19191,24,0 +2020-06-08,Winneshiek,Iowa,19191,24,0 +2020-06-09,Winneshiek,Iowa,19191,24,0 +2020-06-10,Winneshiek,Iowa,19191,25,0 +2020-06-11,Winneshiek,Iowa,19191,24,0 +2020-06-12,Winneshiek,Iowa,19191,24,0 +2020-06-13,Winneshiek,Iowa,19191,24,0 +2020-06-14,Winneshiek,Iowa,19191,24,0 +2020-06-15,Winneshiek,Iowa,19191,24,0 +2020-06-16,Winneshiek,Iowa,19191,24,0 +2020-06-17,Winneshiek,Iowa,19191,24,0 +2020-06-18,Winneshiek,Iowa,19191,24,0 +2020-06-19,Winneshiek,Iowa,19191,24,0 +2020-06-20,Winneshiek,Iowa,19191,24,0 +2020-06-21,Winneshiek,Iowa,19191,24,0 +2020-06-22,Winneshiek,Iowa,19191,24,0 +2020-06-23,Winneshiek,Iowa,19191,24,0 +2020-06-24,Winneshiek,Iowa,19191,25,0 +2020-06-25,Winneshiek,Iowa,19191,24,0 +2020-06-26,Winneshiek,Iowa,19191,24,0 +2020-06-27,Winneshiek,Iowa,19191,24,0 +2020-06-28,Winneshiek,Iowa,19191,27,0 +2020-06-29,Winneshiek,Iowa,19191,28,0 +2020-06-30,Winneshiek,Iowa,19191,31,0 +2020-07-01,Winneshiek,Iowa,19191,33,0 +2020-07-02,Winneshiek,Iowa,19191,36,0 +2020-07-03,Winneshiek,Iowa,19191,37,0 +2020-07-04,Winneshiek,Iowa,19191,38,0 +2020-07-05,Winneshiek,Iowa,19191,38,0 +2020-07-06,Winneshiek,Iowa,19191,39,0 +2020-07-07,Winneshiek,Iowa,19191,39,0 +2020-07-08,Winneshiek,Iowa,19191,43,0 +2020-07-09,Winneshiek,Iowa,19191,43,0 +2020-03-22,Woodbury,Iowa,19193,1,0 +2020-03-23,Woodbury,Iowa,19193,2,0 +2020-03-24,Woodbury,Iowa,19193,2,0 +2020-03-25,Woodbury,Iowa,19193,2,0 +2020-03-26,Woodbury,Iowa,19193,2,0 +2020-03-27,Woodbury,Iowa,19193,3,0 +2020-03-28,Woodbury,Iowa,19193,3,0 +2020-03-29,Woodbury,Iowa,19193,4,0 +2020-03-30,Woodbury,Iowa,19193,4,0 +2020-03-31,Woodbury,Iowa,19193,4,0 +2020-04-01,Woodbury,Iowa,19193,4,0 +2020-04-02,Woodbury,Iowa,19193,7,0 +2020-04-03,Woodbury,Iowa,19193,8,0 +2020-04-04,Woodbury,Iowa,19193,8,0 +2020-04-05,Woodbury,Iowa,19193,8,0 +2020-04-06,Woodbury,Iowa,19193,8,0 +2020-04-07,Woodbury,Iowa,19193,9,0 +2020-04-08,Woodbury,Iowa,19193,11,0 +2020-04-09,Woodbury,Iowa,19193,12,0 +2020-04-10,Woodbury,Iowa,19193,15,0 +2020-04-11,Woodbury,Iowa,19193,18,0 +2020-04-12,Woodbury,Iowa,19193,18,0 +2020-04-13,Woodbury,Iowa,19193,19,0 +2020-04-14,Woodbury,Iowa,19193,20,0 +2020-04-15,Woodbury,Iowa,19193,21,0 +2020-04-16,Woodbury,Iowa,19193,22,0 +2020-04-17,Woodbury,Iowa,19193,25,0 +2020-04-18,Woodbury,Iowa,19193,35,0 +2020-04-19,Woodbury,Iowa,19193,37,0 +2020-04-20,Woodbury,Iowa,19193,44,0 +2020-04-21,Woodbury,Iowa,19193,81,0 +2020-04-22,Woodbury,Iowa,19193,100,1 +2020-04-23,Woodbury,Iowa,19193,120,1 +2020-04-24,Woodbury,Iowa,19193,189,1 +2020-04-25,Woodbury,Iowa,19193,316,1 +2020-04-26,Woodbury,Iowa,19193,409,1 +2020-04-27,Woodbury,Iowa,19193,495,1 +2020-04-28,Woodbury,Iowa,19193,695,1 +2020-04-29,Woodbury,Iowa,19193,728,1 +2020-04-30,Woodbury,Iowa,19193,742,1 +2020-05-01,Woodbury,Iowa,19193,922,1 +2020-05-02,Woodbury,Iowa,19193,1074,2 +2020-05-03,Woodbury,Iowa,19193,1112,2 +2020-05-04,Woodbury,Iowa,19193,1152,2 +2020-05-05,Woodbury,Iowa,19193,1296,3 +2020-05-06,Woodbury,Iowa,19193,1323,4 +2020-05-07,Woodbury,Iowa,19193,1429,4 +2020-05-08,Woodbury,Iowa,19193,1532,7 +2020-05-09,Woodbury,Iowa,19193,1554,7 +2020-05-10,Woodbury,Iowa,19193,1627,8 +2020-05-11,Woodbury,Iowa,19193,1676,9 +2020-05-12,Woodbury,Iowa,19193,1988,11 +2020-05-13,Woodbury,Iowa,19193,2054,14 +2020-05-14,Woodbury,Iowa,19193,2078,14 +2020-05-15,Woodbury,Iowa,19193,2111,14 +2020-05-16,Woodbury,Iowa,19193,2157,16 +2020-05-17,Woodbury,Iowa,19193,2215,16 +2020-05-18,Woodbury,Iowa,19193,2278,17 +2020-05-19,Woodbury,Iowa,19193,2342,17 +2020-05-20,Woodbury,Iowa,19193,2406,22 +2020-05-21,Woodbury,Iowa,19193,2448,23 +2020-05-22,Woodbury,Iowa,19193,2468,23 +2020-05-23,Woodbury,Iowa,19193,2468,23 +2020-05-24,Woodbury,Iowa,19193,2594,24 +2020-05-25,Woodbury,Iowa,19193,2635,24 +2020-05-26,Woodbury,Iowa,19193,2644,28 +2020-05-27,Woodbury,Iowa,19193,2668,31 +2020-05-28,Woodbury,Iowa,19193,2678,33 +2020-05-29,Woodbury,Iowa,19193,2726,34 +2020-05-30,Woodbury,Iowa,19193,2745,34 +2020-05-31,Woodbury,Iowa,19193,2754,34 +2020-06-01,Woodbury,Iowa,19193,2768,36 +2020-06-02,Woodbury,Iowa,19193,2786,37 +2020-06-03,Woodbury,Iowa,19193,2819,37 +2020-06-04,Woodbury,Iowa,19193,2854,37 +2020-06-05,Woodbury,Iowa,19193,2887,37 +2020-06-06,Woodbury,Iowa,19193,2909,37 +2020-06-07,Woodbury,Iowa,19193,2927,37 +2020-06-08,Woodbury,Iowa,19193,2939,37 +2020-06-09,Woodbury,Iowa,19193,2947,38 +2020-06-10,Woodbury,Iowa,19193,2960,38 +2020-06-11,Woodbury,Iowa,19193,2973,39 +2020-06-12,Woodbury,Iowa,19193,2994,40 +2020-06-13,Woodbury,Iowa,19193,2999,40 +2020-06-14,Woodbury,Iowa,19193,3004,39 +2020-06-15,Woodbury,Iowa,19193,3011,40 +2020-06-16,Woodbury,Iowa,19193,3015,40 +2020-06-17,Woodbury,Iowa,19193,3029,42 +2020-06-18,Woodbury,Iowa,19193,3041,42 +2020-06-19,Woodbury,Iowa,19193,3054,42 +2020-06-20,Woodbury,Iowa,19193,3055,42 +2020-06-21,Woodbury,Iowa,19193,3068,42 +2020-06-22,Woodbury,Iowa,19193,3073,42 +2020-06-23,Woodbury,Iowa,19193,3083,43 +2020-06-24,Woodbury,Iowa,19193,3090,43 +2020-06-25,Woodbury,Iowa,19193,3106,43 +2020-06-26,Woodbury,Iowa,19193,3122,44 +2020-06-27,Woodbury,Iowa,19193,3133,44 +2020-06-28,Woodbury,Iowa,19193,3140,44 +2020-06-29,Woodbury,Iowa,19193,3152,43 +2020-06-30,Woodbury,Iowa,19193,3170,44 +2020-07-01,Woodbury,Iowa,19193,3184,44 +2020-07-02,Woodbury,Iowa,19193,3201,44 +2020-07-03,Woodbury,Iowa,19193,3207,44 +2020-07-04,Woodbury,Iowa,19193,3218,44 +2020-07-05,Woodbury,Iowa,19193,3245,44 +2020-07-06,Woodbury,Iowa,19193,3252,44 +2020-07-07,Woodbury,Iowa,19193,3260,44 +2020-07-08,Woodbury,Iowa,19193,3268,44 +2020-07-09,Woodbury,Iowa,19193,3290,44 +2020-04-08,Worth,Iowa,19195,1,0 +2020-04-09,Worth,Iowa,19195,1,0 +2020-04-10,Worth,Iowa,19195,1,0 +2020-04-11,Worth,Iowa,19195,1,0 +2020-04-12,Worth,Iowa,19195,1,0 +2020-04-13,Worth,Iowa,19195,1,0 +2020-04-14,Worth,Iowa,19195,1,0 +2020-04-15,Worth,Iowa,19195,1,0 +2020-04-16,Worth,Iowa,19195,1,0 +2020-04-17,Worth,Iowa,19195,1,0 +2020-04-18,Worth,Iowa,19195,1,0 +2020-04-19,Worth,Iowa,19195,1,0 +2020-04-20,Worth,Iowa,19195,1,0 +2020-04-21,Worth,Iowa,19195,1,0 +2020-04-22,Worth,Iowa,19195,1,0 +2020-04-23,Worth,Iowa,19195,1,0 +2020-04-24,Worth,Iowa,19195,1,0 +2020-04-25,Worth,Iowa,19195,1,0 +2020-04-26,Worth,Iowa,19195,1,0 +2020-04-27,Worth,Iowa,19195,1,0 +2020-04-28,Worth,Iowa,19195,1,0 +2020-04-29,Worth,Iowa,19195,1,0 +2020-04-30,Worth,Iowa,19195,1,0 +2020-05-01,Worth,Iowa,19195,1,0 +2020-05-02,Worth,Iowa,19195,1,0 +2020-05-03,Worth,Iowa,19195,1,0 +2020-05-04,Worth,Iowa,19195,1,0 +2020-05-05,Worth,Iowa,19195,1,0 +2020-05-06,Worth,Iowa,19195,1,0 +2020-05-07,Worth,Iowa,19195,1,0 +2020-05-08,Worth,Iowa,19195,1,0 +2020-05-09,Worth,Iowa,19195,1,0 +2020-05-10,Worth,Iowa,19195,2,0 +2020-05-11,Worth,Iowa,19195,2,0 +2020-05-12,Worth,Iowa,19195,2,0 +2020-05-13,Worth,Iowa,19195,2,0 +2020-05-14,Worth,Iowa,19195,2,0 +2020-05-15,Worth,Iowa,19195,2,0 +2020-05-16,Worth,Iowa,19195,3,0 +2020-05-17,Worth,Iowa,19195,3,0 +2020-05-18,Worth,Iowa,19195,3,0 +2020-05-19,Worth,Iowa,19195,3,0 +2020-05-20,Worth,Iowa,19195,3,0 +2020-05-21,Worth,Iowa,19195,3,0 +2020-05-22,Worth,Iowa,19195,3,0 +2020-05-23,Worth,Iowa,19195,3,0 +2020-05-24,Worth,Iowa,19195,3,0 +2020-05-25,Worth,Iowa,19195,3,0 +2020-05-26,Worth,Iowa,19195,3,0 +2020-05-27,Worth,Iowa,19195,3,0 +2020-05-28,Worth,Iowa,19195,3,0 +2020-05-29,Worth,Iowa,19195,3,0 +2020-05-30,Worth,Iowa,19195,3,0 +2020-05-31,Worth,Iowa,19195,3,0 +2020-06-01,Worth,Iowa,19195,3,0 +2020-06-02,Worth,Iowa,19195,3,0 +2020-06-03,Worth,Iowa,19195,3,0 +2020-06-04,Worth,Iowa,19195,3,0 +2020-06-05,Worth,Iowa,19195,3,0 +2020-06-06,Worth,Iowa,19195,3,0 +2020-06-07,Worth,Iowa,19195,3,0 +2020-06-08,Worth,Iowa,19195,4,0 +2020-06-09,Worth,Iowa,19195,3,0 +2020-06-10,Worth,Iowa,19195,3,0 +2020-06-11,Worth,Iowa,19195,4,0 +2020-06-12,Worth,Iowa,19195,4,0 +2020-06-13,Worth,Iowa,19195,4,0 +2020-06-14,Worth,Iowa,19195,4,0 +2020-06-15,Worth,Iowa,19195,5,0 +2020-06-16,Worth,Iowa,19195,5,0 +2020-06-17,Worth,Iowa,19195,5,0 +2020-06-18,Worth,Iowa,19195,6,0 +2020-06-19,Worth,Iowa,19195,6,0 +2020-06-20,Worth,Iowa,19195,6,0 +2020-06-21,Worth,Iowa,19195,6,0 +2020-06-22,Worth,Iowa,19195,8,0 +2020-06-23,Worth,Iowa,19195,8,0 +2020-06-24,Worth,Iowa,19195,8,0 +2020-06-25,Worth,Iowa,19195,8,0 +2020-06-26,Worth,Iowa,19195,9,0 +2020-06-27,Worth,Iowa,19195,11,0 +2020-06-28,Worth,Iowa,19195,12,0 +2020-06-29,Worth,Iowa,19195,13,0 +2020-06-30,Worth,Iowa,19195,14,0 +2020-07-01,Worth,Iowa,19195,14,0 +2020-07-02,Worth,Iowa,19195,15,0 +2020-07-03,Worth,Iowa,19195,17,0 +2020-07-04,Worth,Iowa,19195,19,0 +2020-07-05,Worth,Iowa,19195,19,0 +2020-07-06,Worth,Iowa,19195,20,0 +2020-07-07,Worth,Iowa,19195,20,0 +2020-07-08,Worth,Iowa,19195,21,0 +2020-07-09,Worth,Iowa,19195,21,0 +2020-03-27,Wright,Iowa,19197,1,0 +2020-03-28,Wright,Iowa,19197,1,0 +2020-03-29,Wright,Iowa,19197,1,0 +2020-03-30,Wright,Iowa,19197,1,0 +2020-03-31,Wright,Iowa,19197,1,0 +2020-04-01,Wright,Iowa,19197,1,0 +2020-04-02,Wright,Iowa,19197,1,0 +2020-04-03,Wright,Iowa,19197,1,0 +2020-04-04,Wright,Iowa,19197,1,0 +2020-04-05,Wright,Iowa,19197,1,0 +2020-04-06,Wright,Iowa,19197,1,0 +2020-04-07,Wright,Iowa,19197,1,0 +2020-04-08,Wright,Iowa,19197,1,0 +2020-04-09,Wright,Iowa,19197,1,0 +2020-04-10,Wright,Iowa,19197,1,0 +2020-04-11,Wright,Iowa,19197,1,0 +2020-04-12,Wright,Iowa,19197,1,0 +2020-04-13,Wright,Iowa,19197,1,0 +2020-04-14,Wright,Iowa,19197,1,0 +2020-04-15,Wright,Iowa,19197,1,0 +2020-04-16,Wright,Iowa,19197,1,0 +2020-04-17,Wright,Iowa,19197,1,0 +2020-04-18,Wright,Iowa,19197,1,0 +2020-04-19,Wright,Iowa,19197,1,0 +2020-04-20,Wright,Iowa,19197,1,0 +2020-04-21,Wright,Iowa,19197,2,0 +2020-04-22,Wright,Iowa,19197,2,0 +2020-04-23,Wright,Iowa,19197,2,0 +2020-04-24,Wright,Iowa,19197,2,0 +2020-04-25,Wright,Iowa,19197,2,0 +2020-04-26,Wright,Iowa,19197,2,0 +2020-04-27,Wright,Iowa,19197,2,0 +2020-04-28,Wright,Iowa,19197,2,0 +2020-04-29,Wright,Iowa,19197,4,0 +2020-04-30,Wright,Iowa,19197,3,0 +2020-05-01,Wright,Iowa,19197,3,0 +2020-05-02,Wright,Iowa,19197,3,0 +2020-05-03,Wright,Iowa,19197,3,0 +2020-05-04,Wright,Iowa,19197,3,0 +2020-05-05,Wright,Iowa,19197,4,0 +2020-05-06,Wright,Iowa,19197,5,0 +2020-05-07,Wright,Iowa,19197,5,0 +2020-05-08,Wright,Iowa,19197,6,0 +2020-05-09,Wright,Iowa,19197,6,0 +2020-05-10,Wright,Iowa,19197,6,0 +2020-05-11,Wright,Iowa,19197,6,0 +2020-05-12,Wright,Iowa,19197,6,0 +2020-05-13,Wright,Iowa,19197,6,0 +2020-05-14,Wright,Iowa,19197,6,0 +2020-05-15,Wright,Iowa,19197,7,0 +2020-05-16,Wright,Iowa,19197,8,0 +2020-05-17,Wright,Iowa,19197,14,0 +2020-05-18,Wright,Iowa,19197,20,0 +2020-05-19,Wright,Iowa,19197,24,0 +2020-05-20,Wright,Iowa,19197,65,0 +2020-05-21,Wright,Iowa,19197,73,0 +2020-05-22,Wright,Iowa,19197,85,0 +2020-05-23,Wright,Iowa,19197,85,0 +2020-05-24,Wright,Iowa,19197,117,0 +2020-05-25,Wright,Iowa,19197,123,0 +2020-05-26,Wright,Iowa,19197,124,0 +2020-05-27,Wright,Iowa,19197,134,0 +2020-05-28,Wright,Iowa,19197,145,0 +2020-05-29,Wright,Iowa,19197,161,0 +2020-05-30,Wright,Iowa,19197,167,0 +2020-05-31,Wright,Iowa,19197,169,0 +2020-06-01,Wright,Iowa,19197,181,0 +2020-06-02,Wright,Iowa,19197,188,0 +2020-06-03,Wright,Iowa,19197,195,0 +2020-06-04,Wright,Iowa,19197,213,0 +2020-06-05,Wright,Iowa,19197,223,0 +2020-06-06,Wright,Iowa,19197,236,0 +2020-06-07,Wright,Iowa,19197,243,0 +2020-06-08,Wright,Iowa,19197,244,0 +2020-06-09,Wright,Iowa,19197,247,0 +2020-06-10,Wright,Iowa,19197,266,0 +2020-06-11,Wright,Iowa,19197,272,0 +2020-06-12,Wright,Iowa,19197,280,0 +2020-06-13,Wright,Iowa,19197,285,0 +2020-06-14,Wright,Iowa,19197,287,0 +2020-06-15,Wright,Iowa,19197,294,0 +2020-06-16,Wright,Iowa,19197,292,0 +2020-06-17,Wright,Iowa,19197,292,0 +2020-06-18,Wright,Iowa,19197,310,0 +2020-06-19,Wright,Iowa,19197,318,0 +2020-06-20,Wright,Iowa,19197,322,0 +2020-06-21,Wright,Iowa,19197,332,0 +2020-06-22,Wright,Iowa,19197,338,0 +2020-06-23,Wright,Iowa,19197,341,0 +2020-06-24,Wright,Iowa,19197,353,0 +2020-06-25,Wright,Iowa,19197,355,0 +2020-06-26,Wright,Iowa,19197,361,0 +2020-06-27,Wright,Iowa,19197,362,0 +2020-06-28,Wright,Iowa,19197,366,0 +2020-06-29,Wright,Iowa,19197,370,0 +2020-06-30,Wright,Iowa,19197,370,0 +2020-07-01,Wright,Iowa,19197,375,0 +2020-07-02,Wright,Iowa,19197,377,1 +2020-07-03,Wright,Iowa,19197,377,1 +2020-07-04,Wright,Iowa,19197,380,1 +2020-07-05,Wright,Iowa,19197,384,1 +2020-07-06,Wright,Iowa,19197,386,1 +2020-07-07,Wright,Iowa,19197,385,1 +2020-07-08,Wright,Iowa,19197,388,1 +2020-07-09,Wright,Iowa,19197,389,1 +2020-06-15,Allen,Kansas,20001,1,0 +2020-06-16,Allen,Kansas,20001,1,0 +2020-06-17,Allen,Kansas,20001,1,0 +2020-06-18,Allen,Kansas,20001,1,0 +2020-06-19,Allen,Kansas,20001,1,0 +2020-06-20,Allen,Kansas,20001,1,0 +2020-06-21,Allen,Kansas,20001,1,0 +2020-06-22,Allen,Kansas,20001,1,0 +2020-06-23,Allen,Kansas,20001,1,0 +2020-06-24,Allen,Kansas,20001,1,0 +2020-06-25,Allen,Kansas,20001,1,0 +2020-06-26,Allen,Kansas,20001,4,0 +2020-06-27,Allen,Kansas,20001,4,0 +2020-06-28,Allen,Kansas,20001,5,0 +2020-06-29,Allen,Kansas,20001,5,0 +2020-06-30,Allen,Kansas,20001,5,0 +2020-07-01,Allen,Kansas,20001,5,0 +2020-07-02,Allen,Kansas,20001,5,0 +2020-07-03,Allen,Kansas,20001,5,0 +2020-07-04,Allen,Kansas,20001,5,0 +2020-07-05,Allen,Kansas,20001,5,0 +2020-07-06,Allen,Kansas,20001,5,0 +2020-07-07,Allen,Kansas,20001,5,0 +2020-07-08,Allen,Kansas,20001,5,0 +2020-07-09,Allen,Kansas,20001,5,0 +2020-05-09,Anderson,Kansas,20003,1,0 +2020-05-10,Anderson,Kansas,20003,1,0 +2020-05-11,Anderson,Kansas,20003,1,0 +2020-05-12,Anderson,Kansas,20003,1,0 +2020-05-13,Anderson,Kansas,20003,1,0 +2020-05-14,Anderson,Kansas,20003,1,0 +2020-05-15,Anderson,Kansas,20003,1,0 +2020-05-16,Anderson,Kansas,20003,1,0 +2020-05-17,Anderson,Kansas,20003,1,0 +2020-05-18,Anderson,Kansas,20003,1,0 +2020-05-19,Anderson,Kansas,20003,1,0 +2020-05-20,Anderson,Kansas,20003,1,0 +2020-05-21,Anderson,Kansas,20003,1,0 +2020-05-22,Anderson,Kansas,20003,1,0 +2020-05-23,Anderson,Kansas,20003,1,0 +2020-05-24,Anderson,Kansas,20003,1,0 +2020-05-25,Anderson,Kansas,20003,1,0 +2020-05-26,Anderson,Kansas,20003,1,0 +2020-05-27,Anderson,Kansas,20003,1,0 +2020-05-28,Anderson,Kansas,20003,1,0 +2020-05-29,Anderson,Kansas,20003,1,0 +2020-05-30,Anderson,Kansas,20003,1,0 +2020-05-31,Anderson,Kansas,20003,1,0 +2020-06-01,Anderson,Kansas,20003,1,0 +2020-06-02,Anderson,Kansas,20003,1,0 +2020-06-03,Anderson,Kansas,20003,1,0 +2020-06-04,Anderson,Kansas,20003,1,0 +2020-06-05,Anderson,Kansas,20003,1,0 +2020-06-06,Anderson,Kansas,20003,1,0 +2020-06-07,Anderson,Kansas,20003,1,0 +2020-06-08,Anderson,Kansas,20003,1,0 +2020-06-09,Anderson,Kansas,20003,1,0 +2020-06-10,Anderson,Kansas,20003,1,0 +2020-06-11,Anderson,Kansas,20003,1,0 +2020-06-12,Anderson,Kansas,20003,1,0 +2020-06-13,Anderson,Kansas,20003,1,0 +2020-06-14,Anderson,Kansas,20003,1,0 +2020-06-15,Anderson,Kansas,20003,2,0 +2020-06-16,Anderson,Kansas,20003,2,0 +2020-06-17,Anderson,Kansas,20003,3,0 +2020-06-18,Anderson,Kansas,20003,3,0 +2020-06-19,Anderson,Kansas,20003,3,0 +2020-06-20,Anderson,Kansas,20003,3,0 +2020-06-21,Anderson,Kansas,20003,3,0 +2020-06-22,Anderson,Kansas,20003,3,0 +2020-06-23,Anderson,Kansas,20003,3,0 +2020-06-24,Anderson,Kansas,20003,3,0 +2020-06-25,Anderson,Kansas,20003,3,0 +2020-06-26,Anderson,Kansas,20003,3,0 +2020-06-27,Anderson,Kansas,20003,3,0 +2020-06-28,Anderson,Kansas,20003,3,0 +2020-06-29,Anderson,Kansas,20003,4,0 +2020-06-30,Anderson,Kansas,20003,4,0 +2020-07-01,Anderson,Kansas,20003,4,0 +2020-07-02,Anderson,Kansas,20003,4,0 +2020-07-03,Anderson,Kansas,20003,4,0 +2020-07-04,Anderson,Kansas,20003,4,0 +2020-07-05,Anderson,Kansas,20003,4,0 +2020-07-06,Anderson,Kansas,20003,5,0 +2020-07-07,Anderson,Kansas,20003,5,0 +2020-07-08,Anderson,Kansas,20003,6,0 +2020-07-09,Anderson,Kansas,20003,6,0 +2020-03-30,Atchison,Kansas,20005,1,0 +2020-03-31,Atchison,Kansas,20005,1,0 +2020-04-01,Atchison,Kansas,20005,1,0 +2020-04-02,Atchison,Kansas,20005,1,0 +2020-04-03,Atchison,Kansas,20005,1,0 +2020-04-04,Atchison,Kansas,20005,2,0 +2020-04-05,Atchison,Kansas,20005,2,0 +2020-04-06,Atchison,Kansas,20005,2,0 +2020-04-07,Atchison,Kansas,20005,2,0 +2020-04-08,Atchison,Kansas,20005,2,0 +2020-04-09,Atchison,Kansas,20005,2,0 +2020-04-10,Atchison,Kansas,20005,2,0 +2020-04-11,Atchison,Kansas,20005,3,0 +2020-04-12,Atchison,Kansas,20005,3,0 +2020-04-13,Atchison,Kansas,20005,3,0 +2020-04-14,Atchison,Kansas,20005,3,0 +2020-04-15,Atchison,Kansas,20005,3,0 +2020-04-16,Atchison,Kansas,20005,3,0 +2020-04-17,Atchison,Kansas,20005,4,0 +2020-04-18,Atchison,Kansas,20005,4,0 +2020-04-19,Atchison,Kansas,20005,5,0 +2020-04-20,Atchison,Kansas,20005,6,0 +2020-04-21,Atchison,Kansas,20005,6,0 +2020-04-22,Atchison,Kansas,20005,6,0 +2020-04-23,Atchison,Kansas,20005,8,0 +2020-04-24,Atchison,Kansas,20005,8,0 +2020-04-25,Atchison,Kansas,20005,8,0 +2020-04-26,Atchison,Kansas,20005,9,0 +2020-04-27,Atchison,Kansas,20005,9,0 +2020-04-28,Atchison,Kansas,20005,9,0 +2020-04-29,Atchison,Kansas,20005,9,0 +2020-04-30,Atchison,Kansas,20005,9,0 +2020-05-01,Atchison,Kansas,20005,10,0 +2020-05-02,Atchison,Kansas,20005,10,0 +2020-05-03,Atchison,Kansas,20005,11,0 +2020-05-04,Atchison,Kansas,20005,11,0 +2020-05-05,Atchison,Kansas,20005,12,0 +2020-05-06,Atchison,Kansas,20005,12,0 +2020-05-07,Atchison,Kansas,20005,12,0 +2020-05-08,Atchison,Kansas,20005,12,0 +2020-05-09,Atchison,Kansas,20005,12,0 +2020-05-10,Atchison,Kansas,20005,13,0 +2020-05-11,Atchison,Kansas,20005,14,0 +2020-05-12,Atchison,Kansas,20005,14,0 +2020-05-13,Atchison,Kansas,20005,15,0 +2020-05-14,Atchison,Kansas,20005,15,0 +2020-05-15,Atchison,Kansas,20005,15,0 +2020-05-16,Atchison,Kansas,20005,15,0 +2020-05-17,Atchison,Kansas,20005,15,0 +2020-05-18,Atchison,Kansas,20005,15,0 +2020-05-19,Atchison,Kansas,20005,15,0 +2020-05-20,Atchison,Kansas,20005,15,0 +2020-05-21,Atchison,Kansas,20005,15,0 +2020-05-22,Atchison,Kansas,20005,17,0 +2020-05-23,Atchison,Kansas,20005,17,0 +2020-05-24,Atchison,Kansas,20005,17,0 +2020-05-25,Atchison,Kansas,20005,20,0 +2020-05-26,Atchison,Kansas,20005,20,0 +2020-05-27,Atchison,Kansas,20005,20,0 +2020-05-28,Atchison,Kansas,20005,20,0 +2020-05-29,Atchison,Kansas,20005,20,0 +2020-05-30,Atchison,Kansas,20005,20,0 +2020-05-31,Atchison,Kansas,20005,20,0 +2020-06-01,Atchison,Kansas,20005,22,0 +2020-06-02,Atchison,Kansas,20005,22,0 +2020-06-03,Atchison,Kansas,20005,22,0 +2020-06-04,Atchison,Kansas,20005,22,0 +2020-06-05,Atchison,Kansas,20005,23,0 +2020-06-06,Atchison,Kansas,20005,23,0 +2020-06-07,Atchison,Kansas,20005,23,0 +2020-06-08,Atchison,Kansas,20005,23,0 +2020-06-09,Atchison,Kansas,20005,23,0 +2020-06-10,Atchison,Kansas,20005,24,0 +2020-06-11,Atchison,Kansas,20005,24,0 +2020-06-12,Atchison,Kansas,20005,25,0 +2020-06-13,Atchison,Kansas,20005,25,0 +2020-06-14,Atchison,Kansas,20005,26,0 +2020-06-15,Atchison,Kansas,20005,26,0 +2020-06-16,Atchison,Kansas,20005,26,0 +2020-06-17,Atchison,Kansas,20005,26,0 +2020-06-18,Atchison,Kansas,20005,26,0 +2020-06-19,Atchison,Kansas,20005,26,0 +2020-06-20,Atchison,Kansas,20005,26,0 +2020-06-21,Atchison,Kansas,20005,26,0 +2020-06-22,Atchison,Kansas,20005,27,0 +2020-06-23,Atchison,Kansas,20005,27,0 +2020-06-24,Atchison,Kansas,20005,27,0 +2020-06-25,Atchison,Kansas,20005,27,0 +2020-06-26,Atchison,Kansas,20005,27,0 +2020-06-27,Atchison,Kansas,20005,27,0 +2020-06-28,Atchison,Kansas,20005,27,0 +2020-06-29,Atchison,Kansas,20005,32,0 +2020-06-30,Atchison,Kansas,20005,32,0 +2020-07-01,Atchison,Kansas,20005,34,0 +2020-07-02,Atchison,Kansas,20005,34,0 +2020-07-03,Atchison,Kansas,20005,38,0 +2020-07-04,Atchison,Kansas,20005,38,0 +2020-07-05,Atchison,Kansas,20005,38,0 +2020-07-06,Atchison,Kansas,20005,40,0 +2020-07-07,Atchison,Kansas,20005,40,0 +2020-07-08,Atchison,Kansas,20005,42,0 +2020-07-09,Atchison,Kansas,20005,42,0 +2020-04-07,Barber,Kansas,20007,1,0 +2020-04-08,Barber,Kansas,20007,1,0 +2020-04-09,Barber,Kansas,20007,1,0 +2020-04-10,Barber,Kansas,20007,1,0 +2020-04-11,Barber,Kansas,20007,1,0 +2020-04-12,Barber,Kansas,20007,1,0 +2020-04-13,Barber,Kansas,20007,1,0 +2020-04-14,Barber,Kansas,20007,1,0 +2020-04-15,Barber,Kansas,20007,1,0 +2020-04-16,Barber,Kansas,20007,1,0 +2020-04-17,Barber,Kansas,20007,1,0 +2020-04-18,Barber,Kansas,20007,1,0 +2020-04-19,Barber,Kansas,20007,1,0 +2020-04-20,Barber,Kansas,20007,1,0 +2020-04-21,Barber,Kansas,20007,1,0 +2020-04-22,Barber,Kansas,20007,1,0 +2020-04-23,Barber,Kansas,20007,1,0 +2020-04-24,Barber,Kansas,20007,1,0 +2020-04-25,Barber,Kansas,20007,1,0 +2020-04-26,Barber,Kansas,20007,1,0 +2020-04-27,Barber,Kansas,20007,1,0 +2020-04-28,Barber,Kansas,20007,1,0 +2020-04-29,Barber,Kansas,20007,1,0 +2020-04-30,Barber,Kansas,20007,1,0 +2020-05-01,Barber,Kansas,20007,1,0 +2020-05-02,Barber,Kansas,20007,1,0 +2020-05-03,Barber,Kansas,20007,1,0 +2020-05-04,Barber,Kansas,20007,1,0 +2020-05-05,Barber,Kansas,20007,1,0 +2020-05-06,Barber,Kansas,20007,1,0 +2020-05-07,Barber,Kansas,20007,1,0 +2020-05-08,Barber,Kansas,20007,1,0 +2020-05-09,Barber,Kansas,20007,1,0 +2020-05-10,Barber,Kansas,20007,1,0 +2020-05-11,Barber,Kansas,20007,1,0 +2020-05-12,Barber,Kansas,20007,1,0 +2020-05-13,Barber,Kansas,20007,1,0 +2020-05-14,Barber,Kansas,20007,1,0 +2020-05-15,Barber,Kansas,20007,1,0 +2020-05-16,Barber,Kansas,20007,1,0 +2020-05-17,Barber,Kansas,20007,1,0 +2020-05-18,Barber,Kansas,20007,1,0 +2020-05-19,Barber,Kansas,20007,1,0 +2020-05-20,Barber,Kansas,20007,1,0 +2020-05-21,Barber,Kansas,20007,1,0 +2020-05-22,Barber,Kansas,20007,1,0 +2020-05-23,Barber,Kansas,20007,1,0 +2020-05-24,Barber,Kansas,20007,1,0 +2020-05-25,Barber,Kansas,20007,1,0 +2020-05-26,Barber,Kansas,20007,1,0 +2020-05-27,Barber,Kansas,20007,1,0 +2020-05-28,Barber,Kansas,20007,1,0 +2020-05-29,Barber,Kansas,20007,1,0 +2020-05-30,Barber,Kansas,20007,1,0 +2020-05-31,Barber,Kansas,20007,1,0 +2020-06-01,Barber,Kansas,20007,1,0 +2020-06-02,Barber,Kansas,20007,1,0 +2020-06-03,Barber,Kansas,20007,1,0 +2020-06-04,Barber,Kansas,20007,1,0 +2020-06-05,Barber,Kansas,20007,1,0 +2020-06-06,Barber,Kansas,20007,1,0 +2020-06-07,Barber,Kansas,20007,1,0 +2020-06-08,Barber,Kansas,20007,1,0 +2020-06-09,Barber,Kansas,20007,1,0 +2020-06-10,Barber,Kansas,20007,1,0 +2020-06-11,Barber,Kansas,20007,1,0 +2020-06-12,Barber,Kansas,20007,1,0 +2020-06-13,Barber,Kansas,20007,1,0 +2020-06-14,Barber,Kansas,20007,1,0 +2020-06-15,Barber,Kansas,20007,1,0 +2020-06-16,Barber,Kansas,20007,1,0 +2020-06-17,Barber,Kansas,20007,1,0 +2020-06-18,Barber,Kansas,20007,1,0 +2020-06-19,Barber,Kansas,20007,1,0 +2020-06-20,Barber,Kansas,20007,1,0 +2020-06-21,Barber,Kansas,20007,1,0 +2020-06-22,Barber,Kansas,20007,1,0 +2020-06-23,Barber,Kansas,20007,1,0 +2020-06-24,Barber,Kansas,20007,1,0 +2020-06-25,Barber,Kansas,20007,1,0 +2020-06-26,Barber,Kansas,20007,1,0 +2020-06-27,Barber,Kansas,20007,1,0 +2020-06-28,Barber,Kansas,20007,1,0 +2020-06-29,Barber,Kansas,20007,1,0 +2020-06-30,Barber,Kansas,20007,1,0 +2020-07-01,Barber,Kansas,20007,1,0 +2020-07-02,Barber,Kansas,20007,1,0 +2020-07-03,Barber,Kansas,20007,2,0 +2020-07-04,Barber,Kansas,20007,2,0 +2020-07-05,Barber,Kansas,20007,2,0 +2020-07-06,Barber,Kansas,20007,2,0 +2020-07-07,Barber,Kansas,20007,2,0 +2020-07-08,Barber,Kansas,20007,2,0 +2020-07-09,Barber,Kansas,20007,2,0 +2020-03-31,Barton,Kansas,20009,1,0 +2020-04-01,Barton,Kansas,20009,2,0 +2020-04-02,Barton,Kansas,20009,2,0 +2020-04-03,Barton,Kansas,20009,3,0 +2020-04-04,Barton,Kansas,20009,3,0 +2020-04-05,Barton,Kansas,20009,3,0 +2020-04-06,Barton,Kansas,20009,3,0 +2020-04-07,Barton,Kansas,20009,3,0 +2020-04-08,Barton,Kansas,20009,4,0 +2020-04-09,Barton,Kansas,20009,4,0 +2020-04-10,Barton,Kansas,20009,4,0 +2020-04-11,Barton,Kansas,20009,5,0 +2020-04-12,Barton,Kansas,20009,5,0 +2020-04-13,Barton,Kansas,20009,5,0 +2020-04-14,Barton,Kansas,20009,5,0 +2020-04-15,Barton,Kansas,20009,5,0 +2020-04-16,Barton,Kansas,20009,5,0 +2020-04-17,Barton,Kansas,20009,5,0 +2020-04-18,Barton,Kansas,20009,6,0 +2020-04-19,Barton,Kansas,20009,6,0 +2020-04-20,Barton,Kansas,20009,7,0 +2020-04-21,Barton,Kansas,20009,8,0 +2020-04-22,Barton,Kansas,20009,8,0 +2020-04-23,Barton,Kansas,20009,9,0 +2020-04-24,Barton,Kansas,20009,9,0 +2020-04-25,Barton,Kansas,20009,9,0 +2020-04-26,Barton,Kansas,20009,9,0 +2020-04-27,Barton,Kansas,20009,9,0 +2020-04-28,Barton,Kansas,20009,9,0 +2020-04-29,Barton,Kansas,20009,9,0 +2020-04-30,Barton,Kansas,20009,9,0 +2020-05-01,Barton,Kansas,20009,9,0 +2020-05-02,Barton,Kansas,20009,9,0 +2020-05-03,Barton,Kansas,20009,9,0 +2020-05-04,Barton,Kansas,20009,9,0 +2020-05-05,Barton,Kansas,20009,9,0 +2020-05-06,Barton,Kansas,20009,9,1 +2020-05-07,Barton,Kansas,20009,10,1 +2020-05-08,Barton,Kansas,20009,14,1 +2020-05-09,Barton,Kansas,20009,19,1 +2020-05-10,Barton,Kansas,20009,21,1 +2020-05-11,Barton,Kansas,20009,22,1 +2020-05-12,Barton,Kansas,20009,23,1 +2020-05-13,Barton,Kansas,20009,23,1 +2020-05-14,Barton,Kansas,20009,28,1 +2020-05-15,Barton,Kansas,20009,28,1 +2020-05-16,Barton,Kansas,20009,30,1 +2020-05-17,Barton,Kansas,20009,31,1 +2020-05-18,Barton,Kansas,20009,31,1 +2020-05-19,Barton,Kansas,20009,31,1 +2020-05-20,Barton,Kansas,20009,32,1 +2020-05-21,Barton,Kansas,20009,32,1 +2020-05-22,Barton,Kansas,20009,36,1 +2020-05-23,Barton,Kansas,20009,45,1 +2020-05-24,Barton,Kansas,20009,45,1 +2020-05-25,Barton,Kansas,20009,45,1 +2020-05-26,Barton,Kansas,20009,45,1 +2020-05-27,Barton,Kansas,20009,45,1 +2020-05-28,Barton,Kansas,20009,45,1 +2020-05-29,Barton,Kansas,20009,45,1 +2020-05-30,Barton,Kansas,20009,45,1 +2020-05-31,Barton,Kansas,20009,45,1 +2020-06-01,Barton,Kansas,20009,44,1 +2020-06-02,Barton,Kansas,20009,44,1 +2020-06-03,Barton,Kansas,20009,44,1 +2020-06-04,Barton,Kansas,20009,44,1 +2020-06-05,Barton,Kansas,20009,44,2 +2020-06-06,Barton,Kansas,20009,45,2 +2020-06-07,Barton,Kansas,20009,45,2 +2020-06-08,Barton,Kansas,20009,46,2 +2020-06-09,Barton,Kansas,20009,47,2 +2020-06-10,Barton,Kansas,20009,47,2 +2020-06-11,Barton,Kansas,20009,47,2 +2020-06-12,Barton,Kansas,20009,48,2 +2020-06-13,Barton,Kansas,20009,48,2 +2020-06-14,Barton,Kansas,20009,48,2 +2020-06-15,Barton,Kansas,20009,49,2 +2020-06-16,Barton,Kansas,20009,49,2 +2020-06-17,Barton,Kansas,20009,51,2 +2020-06-18,Barton,Kansas,20009,51,2 +2020-06-19,Barton,Kansas,20009,52,2 +2020-06-20,Barton,Kansas,20009,52,2 +2020-06-21,Barton,Kansas,20009,54,2 +2020-06-22,Barton,Kansas,20009,54,2 +2020-06-23,Barton,Kansas,20009,54,2 +2020-06-24,Barton,Kansas,20009,54,2 +2020-06-25,Barton,Kansas,20009,55,2 +2020-06-26,Barton,Kansas,20009,55,2 +2020-06-27,Barton,Kansas,20009,55,2 +2020-06-28,Barton,Kansas,20009,55,2 +2020-06-29,Barton,Kansas,20009,56,2 +2020-06-30,Barton,Kansas,20009,56,2 +2020-07-01,Barton,Kansas,20009,57,2 +2020-07-02,Barton,Kansas,20009,57,2 +2020-07-03,Barton,Kansas,20009,57,2 +2020-07-04,Barton,Kansas,20009,57,2 +2020-07-05,Barton,Kansas,20009,57,2 +2020-07-06,Barton,Kansas,20009,57,2 +2020-07-07,Barton,Kansas,20009,57,2 +2020-07-08,Barton,Kansas,20009,58,2 +2020-07-09,Barton,Kansas,20009,62,2 +2020-03-23,Bourbon,Kansas,20011,1,0 +2020-03-24,Bourbon,Kansas,20011,1,0 +2020-03-25,Bourbon,Kansas,20011,1,0 +2020-03-26,Bourbon,Kansas,20011,1,0 +2020-03-27,Bourbon,Kansas,20011,3,0 +2020-03-28,Bourbon,Kansas,20011,3,0 +2020-03-29,Bourbon,Kansas,20011,3,0 +2020-03-30,Bourbon,Kansas,20011,3,0 +2020-03-31,Bourbon,Kansas,20011,3,0 +2020-04-01,Bourbon,Kansas,20011,3,0 +2020-04-02,Bourbon,Kansas,20011,3,0 +2020-04-03,Bourbon,Kansas,20011,3,0 +2020-04-04,Bourbon,Kansas,20011,4,0 +2020-04-05,Bourbon,Kansas,20011,6,0 +2020-04-06,Bourbon,Kansas,20011,6,0 +2020-04-07,Bourbon,Kansas,20011,6,1 +2020-04-08,Bourbon,Kansas,20011,6,1 +2020-04-09,Bourbon,Kansas,20011,6,1 +2020-04-10,Bourbon,Kansas,20011,6,1 +2020-04-11,Bourbon,Kansas,20011,6,1 +2020-04-12,Bourbon,Kansas,20011,6,1 +2020-04-13,Bourbon,Kansas,20011,6,1 +2020-04-14,Bourbon,Kansas,20011,6,1 +2020-04-15,Bourbon,Kansas,20011,6,1 +2020-04-16,Bourbon,Kansas,20011,6,1 +2020-04-17,Bourbon,Kansas,20011,6,1 +2020-04-18,Bourbon,Kansas,20011,6,1 +2020-04-19,Bourbon,Kansas,20011,6,1 +2020-04-20,Bourbon,Kansas,20011,6,1 +2020-04-21,Bourbon,Kansas,20011,6,1 +2020-04-22,Bourbon,Kansas,20011,6,1 +2020-04-23,Bourbon,Kansas,20011,6,1 +2020-04-24,Bourbon,Kansas,20011,6,1 +2020-04-25,Bourbon,Kansas,20011,6,1 +2020-04-26,Bourbon,Kansas,20011,6,1 +2020-04-27,Bourbon,Kansas,20011,6,1 +2020-04-28,Bourbon,Kansas,20011,6,1 +2020-04-29,Bourbon,Kansas,20011,6,1 +2020-04-30,Bourbon,Kansas,20011,6,1 +2020-05-01,Bourbon,Kansas,20011,6,1 +2020-05-02,Bourbon,Kansas,20011,6,1 +2020-05-03,Bourbon,Kansas,20011,6,1 +2020-05-04,Bourbon,Kansas,20011,6,1 +2020-05-05,Bourbon,Kansas,20011,6,1 +2020-05-06,Bourbon,Kansas,20011,6,1 +2020-05-07,Bourbon,Kansas,20011,6,1 +2020-05-08,Bourbon,Kansas,20011,6,1 +2020-05-09,Bourbon,Kansas,20011,6,1 +2020-05-10,Bourbon,Kansas,20011,6,1 +2020-05-11,Bourbon,Kansas,20011,6,1 +2020-05-12,Bourbon,Kansas,20011,6,1 +2020-05-13,Bourbon,Kansas,20011,6,1 +2020-05-14,Bourbon,Kansas,20011,6,1 +2020-05-15,Bourbon,Kansas,20011,6,1 +2020-05-16,Bourbon,Kansas,20011,6,1 +2020-05-17,Bourbon,Kansas,20011,6,1 +2020-05-18,Bourbon,Kansas,20011,6,1 +2020-05-19,Bourbon,Kansas,20011,6,1 +2020-05-20,Bourbon,Kansas,20011,7,1 +2020-05-21,Bourbon,Kansas,20011,7,1 +2020-05-22,Bourbon,Kansas,20011,7,1 +2020-05-23,Bourbon,Kansas,20011,7,1 +2020-05-24,Bourbon,Kansas,20011,7,1 +2020-05-25,Bourbon,Kansas,20011,7,1 +2020-05-26,Bourbon,Kansas,20011,7,1 +2020-05-27,Bourbon,Kansas,20011,8,1 +2020-05-28,Bourbon,Kansas,20011,8,1 +2020-05-29,Bourbon,Kansas,20011,8,1 +2020-05-30,Bourbon,Kansas,20011,8,1 +2020-05-31,Bourbon,Kansas,20011,8,1 +2020-06-01,Bourbon,Kansas,20011,8,1 +2020-06-02,Bourbon,Kansas,20011,8,1 +2020-06-03,Bourbon,Kansas,20011,8,1 +2020-06-04,Bourbon,Kansas,20011,8,1 +2020-06-05,Bourbon,Kansas,20011,8,1 +2020-06-06,Bourbon,Kansas,20011,8,1 +2020-06-07,Bourbon,Kansas,20011,8,1 +2020-06-08,Bourbon,Kansas,20011,8,1 +2020-06-09,Bourbon,Kansas,20011,8,1 +2020-06-10,Bourbon,Kansas,20011,8,1 +2020-06-11,Bourbon,Kansas,20011,8,1 +2020-06-12,Bourbon,Kansas,20011,8,1 +2020-06-13,Bourbon,Kansas,20011,8,1 +2020-06-14,Bourbon,Kansas,20011,8,1 +2020-06-15,Bourbon,Kansas,20011,8,1 +2020-06-16,Bourbon,Kansas,20011,8,1 +2020-06-17,Bourbon,Kansas,20011,9,1 +2020-06-18,Bourbon,Kansas,20011,9,1 +2020-06-19,Bourbon,Kansas,20011,9,1 +2020-06-20,Bourbon,Kansas,20011,9,1 +2020-06-21,Bourbon,Kansas,20011,9,1 +2020-06-22,Bourbon,Kansas,20011,10,1 +2020-06-23,Bourbon,Kansas,20011,10,1 +2020-06-24,Bourbon,Kansas,20011,12,1 +2020-06-25,Bourbon,Kansas,20011,12,1 +2020-06-26,Bourbon,Kansas,20011,16,1 +2020-06-27,Bourbon,Kansas,20011,16,1 +2020-06-28,Bourbon,Kansas,20011,16,1 +2020-06-29,Bourbon,Kansas,20011,19,1 +2020-06-30,Bourbon,Kansas,20011,19,1 +2020-07-01,Bourbon,Kansas,20011,27,1 +2020-07-02,Bourbon,Kansas,20011,27,1 +2020-07-03,Bourbon,Kansas,20011,28,1 +2020-07-04,Bourbon,Kansas,20011,28,1 +2020-07-05,Bourbon,Kansas,20011,28,1 +2020-07-06,Bourbon,Kansas,20011,35,1 +2020-07-07,Bourbon,Kansas,20011,35,1 +2020-07-08,Bourbon,Kansas,20011,36,1 +2020-07-09,Bourbon,Kansas,20011,36,1 +2020-05-04,Brown,Kansas,20013,1,0 +2020-05-05,Brown,Kansas,20013,1,0 +2020-05-06,Brown,Kansas,20013,1,0 +2020-05-07,Brown,Kansas,20013,1,0 +2020-05-08,Brown,Kansas,20013,1,0 +2020-05-09,Brown,Kansas,20013,1,0 +2020-05-10,Brown,Kansas,20013,1,0 +2020-05-11,Brown,Kansas,20013,1,0 +2020-05-12,Brown,Kansas,20013,1,0 +2020-05-13,Brown,Kansas,20013,1,0 +2020-05-14,Brown,Kansas,20013,1,0 +2020-05-15,Brown,Kansas,20013,3,0 +2020-05-16,Brown,Kansas,20013,3,0 +2020-05-17,Brown,Kansas,20013,3,0 +2020-05-18,Brown,Kansas,20013,5,0 +2020-05-19,Brown,Kansas,20013,5,0 +2020-05-20,Brown,Kansas,20013,5,0 +2020-05-21,Brown,Kansas,20013,5,0 +2020-05-22,Brown,Kansas,20013,5,0 +2020-05-23,Brown,Kansas,20013,5,0 +2020-05-24,Brown,Kansas,20013,5,0 +2020-05-25,Brown,Kansas,20013,6,0 +2020-05-26,Brown,Kansas,20013,6,0 +2020-05-27,Brown,Kansas,20013,6,0 +2020-05-28,Brown,Kansas,20013,6,0 +2020-05-29,Brown,Kansas,20013,6,0 +2020-05-30,Brown,Kansas,20013,6,0 +2020-05-31,Brown,Kansas,20013,6,0 +2020-06-01,Brown,Kansas,20013,6,0 +2020-06-02,Brown,Kansas,20013,6,0 +2020-06-03,Brown,Kansas,20013,6,0 +2020-06-04,Brown,Kansas,20013,6,0 +2020-06-05,Brown,Kansas,20013,7,0 +2020-06-06,Brown,Kansas,20013,7,0 +2020-06-07,Brown,Kansas,20013,7,0 +2020-06-08,Brown,Kansas,20013,9,0 +2020-06-09,Brown,Kansas,20013,9,0 +2020-06-10,Brown,Kansas,20013,9,0 +2020-06-11,Brown,Kansas,20013,9,0 +2020-06-12,Brown,Kansas,20013,10,0 +2020-06-13,Brown,Kansas,20013,10,0 +2020-06-14,Brown,Kansas,20013,10,0 +2020-06-15,Brown,Kansas,20013,10,0 +2020-06-16,Brown,Kansas,20013,10,0 +2020-06-17,Brown,Kansas,20013,10,0 +2020-06-18,Brown,Kansas,20013,10,0 +2020-06-19,Brown,Kansas,20013,11,0 +2020-06-20,Brown,Kansas,20013,11,0 +2020-06-21,Brown,Kansas,20013,11,0 +2020-06-22,Brown,Kansas,20013,11,0 +2020-06-23,Brown,Kansas,20013,11,0 +2020-06-24,Brown,Kansas,20013,11,0 +2020-06-25,Brown,Kansas,20013,11,0 +2020-06-26,Brown,Kansas,20013,11,0 +2020-06-27,Brown,Kansas,20013,11,0 +2020-06-28,Brown,Kansas,20013,11,0 +2020-06-29,Brown,Kansas,20013,11,0 +2020-06-30,Brown,Kansas,20013,11,0 +2020-07-01,Brown,Kansas,20013,11,0 +2020-07-02,Brown,Kansas,20013,11,0 +2020-07-03,Brown,Kansas,20013,12,0 +2020-07-04,Brown,Kansas,20013,12,0 +2020-07-05,Brown,Kansas,20013,12,0 +2020-07-06,Brown,Kansas,20013,12,0 +2020-07-07,Brown,Kansas,20013,12,0 +2020-07-08,Brown,Kansas,20013,12,0 +2020-07-09,Brown,Kansas,20013,12,0 +2020-03-13,Butler,Kansas,20015,1,0 +2020-03-14,Butler,Kansas,20015,1,0 +2020-03-15,Butler,Kansas,20015,1,0 +2020-03-16,Butler,Kansas,20015,1,0 +2020-03-17,Butler,Kansas,20015,1,0 +2020-03-18,Butler,Kansas,20015,1,0 +2020-03-19,Butler,Kansas,20015,1,0 +2020-03-20,Butler,Kansas,20015,2,0 +2020-03-21,Butler,Kansas,20015,2,0 +2020-03-22,Butler,Kansas,20015,3,0 +2020-03-23,Butler,Kansas,20015,3,0 +2020-03-24,Butler,Kansas,20015,3,0 +2020-03-25,Butler,Kansas,20015,3,0 +2020-03-26,Butler,Kansas,20015,3,0 +2020-03-27,Butler,Kansas,20015,3,0 +2020-03-28,Butler,Kansas,20015,3,0 +2020-03-29,Butler,Kansas,20015,3,0 +2020-03-30,Butler,Kansas,20015,3,0 +2020-03-31,Butler,Kansas,20015,3,0 +2020-04-01,Butler,Kansas,20015,5,0 +2020-04-02,Butler,Kansas,20015,7,0 +2020-04-03,Butler,Kansas,20015,7,0 +2020-04-04,Butler,Kansas,20015,8,0 +2020-04-05,Butler,Kansas,20015,8,0 +2020-04-06,Butler,Kansas,20015,8,0 +2020-04-07,Butler,Kansas,20015,8,0 +2020-04-08,Butler,Kansas,20015,8,0 +2020-04-09,Butler,Kansas,20015,8,0 +2020-04-10,Butler,Kansas,20015,8,0 +2020-04-11,Butler,Kansas,20015,8,0 +2020-04-12,Butler,Kansas,20015,8,0 +2020-04-13,Butler,Kansas,20015,9,0 +2020-04-14,Butler,Kansas,20015,9,0 +2020-04-15,Butler,Kansas,20015,10,0 +2020-04-16,Butler,Kansas,20015,10,0 +2020-04-17,Butler,Kansas,20015,12,0 +2020-04-18,Butler,Kansas,20015,12,0 +2020-04-19,Butler,Kansas,20015,12,0 +2020-04-20,Butler,Kansas,20015,12,0 +2020-04-21,Butler,Kansas,20015,12,0 +2020-04-22,Butler,Kansas,20015,13,0 +2020-04-23,Butler,Kansas,20015,13,0 +2020-04-24,Butler,Kansas,20015,13,0 +2020-04-25,Butler,Kansas,20015,13,0 +2020-04-26,Butler,Kansas,20015,13,0 +2020-04-27,Butler,Kansas,20015,14,0 +2020-04-28,Butler,Kansas,20015,15,0 +2020-04-29,Butler,Kansas,20015,16,0 +2020-04-30,Butler,Kansas,20015,16,0 +2020-05-01,Butler,Kansas,20015,16,0 +2020-05-02,Butler,Kansas,20015,16,0 +2020-05-03,Butler,Kansas,20015,16,0 +2020-05-04,Butler,Kansas,20015,16,0 +2020-05-05,Butler,Kansas,20015,16,0 +2020-05-06,Butler,Kansas,20015,16,0 +2020-05-07,Butler,Kansas,20015,16,0 +2020-05-08,Butler,Kansas,20015,15,0 +2020-05-09,Butler,Kansas,20015,15,0 +2020-05-10,Butler,Kansas,20015,17,0 +2020-05-11,Butler,Kansas,20015,18,0 +2020-05-12,Butler,Kansas,20015,18,0 +2020-05-13,Butler,Kansas,20015,19,0 +2020-05-14,Butler,Kansas,20015,19,0 +2020-05-15,Butler,Kansas,20015,22,0 +2020-05-16,Butler,Kansas,20015,22,0 +2020-05-17,Butler,Kansas,20015,22,0 +2020-05-18,Butler,Kansas,20015,23,0 +2020-05-19,Butler,Kansas,20015,23,0 +2020-05-20,Butler,Kansas,20015,23,0 +2020-05-21,Butler,Kansas,20015,24,0 +2020-05-22,Butler,Kansas,20015,26,0 +2020-05-23,Butler,Kansas,20015,27,0 +2020-05-24,Butler,Kansas,20015,30,0 +2020-05-25,Butler,Kansas,20015,30,0 +2020-05-26,Butler,Kansas,20015,31,0 +2020-05-27,Butler,Kansas,20015,31,0 +2020-05-28,Butler,Kansas,20015,33,0 +2020-05-29,Butler,Kansas,20015,34,0 +2020-05-30,Butler,Kansas,20015,34,0 +2020-05-31,Butler,Kansas,20015,35,0 +2020-06-01,Butler,Kansas,20015,37,0 +2020-06-02,Butler,Kansas,20015,38,0 +2020-06-03,Butler,Kansas,20015,39,0 +2020-06-04,Butler,Kansas,20015,39,0 +2020-06-05,Butler,Kansas,20015,40,0 +2020-06-06,Butler,Kansas,20015,40,0 +2020-06-07,Butler,Kansas,20015,40,0 +2020-06-08,Butler,Kansas,20015,40,0 +2020-06-09,Butler,Kansas,20015,40,0 +2020-06-10,Butler,Kansas,20015,40,0 +2020-06-11,Butler,Kansas,20015,40,0 +2020-06-12,Butler,Kansas,20015,41,0 +2020-06-13,Butler,Kansas,20015,41,0 +2020-06-14,Butler,Kansas,20015,41,0 +2020-06-15,Butler,Kansas,20015,41,0 +2020-06-16,Butler,Kansas,20015,41,0 +2020-06-17,Butler,Kansas,20015,42,0 +2020-06-18,Butler,Kansas,20015,43,0 +2020-06-19,Butler,Kansas,20015,49,0 +2020-06-20,Butler,Kansas,20015,49,0 +2020-06-21,Butler,Kansas,20015,49,0 +2020-06-22,Butler,Kansas,20015,51,0 +2020-06-23,Butler,Kansas,20015,51,0 +2020-06-24,Butler,Kansas,20015,52,0 +2020-06-25,Butler,Kansas,20015,55,0 +2020-06-26,Butler,Kansas,20015,55,0 +2020-06-27,Butler,Kansas,20015,55,0 +2020-06-28,Butler,Kansas,20015,55,0 +2020-06-29,Butler,Kansas,20015,58,0 +2020-06-30,Butler,Kansas,20015,60,0 +2020-07-01,Butler,Kansas,20015,61,0 +2020-07-02,Butler,Kansas,20015,64,0 +2020-07-03,Butler,Kansas,20015,64,0 +2020-07-04,Butler,Kansas,20015,71,0 +2020-07-05,Butler,Kansas,20015,71,0 +2020-07-06,Butler,Kansas,20015,71,0 +2020-07-07,Butler,Kansas,20015,76,0 +2020-07-08,Butler,Kansas,20015,82,0 +2020-07-09,Butler,Kansas,20015,82,0 +2020-04-17,Chase,Kansas,20017,1,0 +2020-04-18,Chase,Kansas,20017,1,0 +2020-04-19,Chase,Kansas,20017,1,0 +2020-04-20,Chase,Kansas,20017,1,0 +2020-04-21,Chase,Kansas,20017,1,0 +2020-04-22,Chase,Kansas,20017,1,0 +2020-04-23,Chase,Kansas,20017,1,0 +2020-04-24,Chase,Kansas,20017,1,0 +2020-04-25,Chase,Kansas,20017,1,0 +2020-04-26,Chase,Kansas,20017,1,0 +2020-04-27,Chase,Kansas,20017,1,0 +2020-04-28,Chase,Kansas,20017,1,0 +2020-04-29,Chase,Kansas,20017,1,0 +2020-04-30,Chase,Kansas,20017,1,0 +2020-05-01,Chase,Kansas,20017,1,0 +2020-05-02,Chase,Kansas,20017,1,0 +2020-05-03,Chase,Kansas,20017,1,0 +2020-05-04,Chase,Kansas,20017,1,0 +2020-05-05,Chase,Kansas,20017,1,0 +2020-05-06,Chase,Kansas,20017,3,0 +2020-05-07,Chase,Kansas,20017,3,0 +2020-05-08,Chase,Kansas,20017,3,0 +2020-05-09,Chase,Kansas,20017,3,0 +2020-05-10,Chase,Kansas,20017,3,0 +2020-05-11,Chase,Kansas,20017,3,0 +2020-05-12,Chase,Kansas,20017,3,0 +2020-05-13,Chase,Kansas,20017,3,0 +2020-05-14,Chase,Kansas,20017,3,0 +2020-05-15,Chase,Kansas,20017,3,0 +2020-05-16,Chase,Kansas,20017,3,0 +2020-05-17,Chase,Kansas,20017,3,0 +2020-05-18,Chase,Kansas,20017,3,0 +2020-05-19,Chase,Kansas,20017,3,0 +2020-05-20,Chase,Kansas,20017,3,0 +2020-05-21,Chase,Kansas,20017,3,0 +2020-05-22,Chase,Kansas,20017,3,0 +2020-05-23,Chase,Kansas,20017,3,0 +2020-05-24,Chase,Kansas,20017,3,0 +2020-05-25,Chase,Kansas,20017,4,0 +2020-05-26,Chase,Kansas,20017,4,0 +2020-05-27,Chase,Kansas,20017,4,0 +2020-05-28,Chase,Kansas,20017,4,0 +2020-05-29,Chase,Kansas,20017,4,0 +2020-05-30,Chase,Kansas,20017,4,0 +2020-05-31,Chase,Kansas,20017,4,0 +2020-06-01,Chase,Kansas,20017,4,0 +2020-06-02,Chase,Kansas,20017,4,0 +2020-06-03,Chase,Kansas,20017,4,0 +2020-06-04,Chase,Kansas,20017,4,0 +2020-06-05,Chase,Kansas,20017,4,0 +2020-06-06,Chase,Kansas,20017,4,0 +2020-06-07,Chase,Kansas,20017,4,0 +2020-06-08,Chase,Kansas,20017,4,0 +2020-06-09,Chase,Kansas,20017,4,0 +2020-06-10,Chase,Kansas,20017,4,0 +2020-06-11,Chase,Kansas,20017,4,0 +2020-06-12,Chase,Kansas,20017,4,0 +2020-06-13,Chase,Kansas,20017,4,0 +2020-06-14,Chase,Kansas,20017,3,0 +2020-06-15,Chase,Kansas,20017,3,0 +2020-06-16,Chase,Kansas,20017,3,0 +2020-06-17,Chase,Kansas,20017,3,0 +2020-06-18,Chase,Kansas,20017,3,0 +2020-06-19,Chase,Kansas,20017,4,0 +2020-06-20,Chase,Kansas,20017,4,0 +2020-06-21,Chase,Kansas,20017,4,0 +2020-06-22,Chase,Kansas,20017,4,0 +2020-06-23,Chase,Kansas,20017,4,0 +2020-06-24,Chase,Kansas,20017,4,0 +2020-06-25,Chase,Kansas,20017,4,0 +2020-06-26,Chase,Kansas,20017,4,0 +2020-06-27,Chase,Kansas,20017,4,0 +2020-06-28,Chase,Kansas,20017,4,0 +2020-06-29,Chase,Kansas,20017,4,0 +2020-06-30,Chase,Kansas,20017,4,0 +2020-07-01,Chase,Kansas,20017,4,0 +2020-07-02,Chase,Kansas,20017,4,0 +2020-07-03,Chase,Kansas,20017,5,0 +2020-07-04,Chase,Kansas,20017,5,0 +2020-07-05,Chase,Kansas,20017,5,0 +2020-07-06,Chase,Kansas,20017,5,0 +2020-07-07,Chase,Kansas,20017,5,0 +2020-07-08,Chase,Kansas,20017,5,0 +2020-07-09,Chase,Kansas,20017,5,0 +2020-03-31,Chautauqua,Kansas,20019,1,0 +2020-04-01,Chautauqua,Kansas,20019,1,0 +2020-04-02,Chautauqua,Kansas,20019,1,0 +2020-04-03,Chautauqua,Kansas,20019,2,0 +2020-04-04,Chautauqua,Kansas,20019,3,0 +2020-04-05,Chautauqua,Kansas,20019,3,0 +2020-04-06,Chautauqua,Kansas,20019,3,0 +2020-04-07,Chautauqua,Kansas,20019,3,0 +2020-04-08,Chautauqua,Kansas,20019,3,0 +2020-04-09,Chautauqua,Kansas,20019,3,0 +2020-04-10,Chautauqua,Kansas,20019,3,0 +2020-04-11,Chautauqua,Kansas,20019,3,0 +2020-04-12,Chautauqua,Kansas,20019,3,0 +2020-04-13,Chautauqua,Kansas,20019,3,0 +2020-04-14,Chautauqua,Kansas,20019,3,0 +2020-04-15,Chautauqua,Kansas,20019,3,0 +2020-04-16,Chautauqua,Kansas,20019,3,0 +2020-04-17,Chautauqua,Kansas,20019,3,0 +2020-04-18,Chautauqua,Kansas,20019,3,0 +2020-04-19,Chautauqua,Kansas,20019,3,0 +2020-04-20,Chautauqua,Kansas,20019,3,0 +2020-04-21,Chautauqua,Kansas,20019,3,0 +2020-04-22,Chautauqua,Kansas,20019,3,0 +2020-04-23,Chautauqua,Kansas,20019,3,0 +2020-04-24,Chautauqua,Kansas,20019,3,0 +2020-04-25,Chautauqua,Kansas,20019,3,0 +2020-04-26,Chautauqua,Kansas,20019,3,0 +2020-04-27,Chautauqua,Kansas,20019,3,0 +2020-04-28,Chautauqua,Kansas,20019,4,0 +2020-04-29,Chautauqua,Kansas,20019,4,0 +2020-04-30,Chautauqua,Kansas,20019,4,0 +2020-05-01,Chautauqua,Kansas,20019,4,0 +2020-05-02,Chautauqua,Kansas,20019,4,0 +2020-05-03,Chautauqua,Kansas,20019,4,0 +2020-05-04,Chautauqua,Kansas,20019,4,0 +2020-05-05,Chautauqua,Kansas,20019,4,0 +2020-05-06,Chautauqua,Kansas,20019,4,0 +2020-05-07,Chautauqua,Kansas,20019,4,0 +2020-05-08,Chautauqua,Kansas,20019,4,0 +2020-05-09,Chautauqua,Kansas,20019,4,0 +2020-05-10,Chautauqua,Kansas,20019,4,0 +2020-05-11,Chautauqua,Kansas,20019,4,0 +2020-05-12,Chautauqua,Kansas,20019,4,0 +2020-05-13,Chautauqua,Kansas,20019,4,0 +2020-05-14,Chautauqua,Kansas,20019,4,0 +2020-05-15,Chautauqua,Kansas,20019,4,0 +2020-05-16,Chautauqua,Kansas,20019,4,0 +2020-05-17,Chautauqua,Kansas,20019,4,0 +2020-05-18,Chautauqua,Kansas,20019,4,0 +2020-05-19,Chautauqua,Kansas,20019,4,0 +2020-05-20,Chautauqua,Kansas,20019,4,0 +2020-05-21,Chautauqua,Kansas,20019,4,0 +2020-05-22,Chautauqua,Kansas,20019,4,0 +2020-05-23,Chautauqua,Kansas,20019,4,0 +2020-05-24,Chautauqua,Kansas,20019,4,0 +2020-05-25,Chautauqua,Kansas,20019,4,0 +2020-05-26,Chautauqua,Kansas,20019,4,0 +2020-05-27,Chautauqua,Kansas,20019,4,0 +2020-05-28,Chautauqua,Kansas,20019,4,0 +2020-05-29,Chautauqua,Kansas,20019,4,0 +2020-05-30,Chautauqua,Kansas,20019,4,0 +2020-05-31,Chautauqua,Kansas,20019,4,0 +2020-06-01,Chautauqua,Kansas,20019,4,0 +2020-06-02,Chautauqua,Kansas,20019,4,0 +2020-06-03,Chautauqua,Kansas,20019,4,0 +2020-06-04,Chautauqua,Kansas,20019,4,0 +2020-06-05,Chautauqua,Kansas,20019,4,0 +2020-06-06,Chautauqua,Kansas,20019,4,0 +2020-06-07,Chautauqua,Kansas,20019,4,0 +2020-06-08,Chautauqua,Kansas,20019,4,0 +2020-06-09,Chautauqua,Kansas,20019,4,0 +2020-06-10,Chautauqua,Kansas,20019,4,0 +2020-06-11,Chautauqua,Kansas,20019,4,0 +2020-06-12,Chautauqua,Kansas,20019,4,0 +2020-06-13,Chautauqua,Kansas,20019,4,0 +2020-06-14,Chautauqua,Kansas,20019,4,0 +2020-06-15,Chautauqua,Kansas,20019,4,0 +2020-06-16,Chautauqua,Kansas,20019,4,0 +2020-06-17,Chautauqua,Kansas,20019,4,0 +2020-06-18,Chautauqua,Kansas,20019,4,0 +2020-06-19,Chautauqua,Kansas,20019,4,0 +2020-06-20,Chautauqua,Kansas,20019,4,0 +2020-06-21,Chautauqua,Kansas,20019,4,0 +2020-06-22,Chautauqua,Kansas,20019,4,0 +2020-06-23,Chautauqua,Kansas,20019,4,0 +2020-06-24,Chautauqua,Kansas,20019,4,0 +2020-06-25,Chautauqua,Kansas,20019,4,0 +2020-06-26,Chautauqua,Kansas,20019,4,0 +2020-06-27,Chautauqua,Kansas,20019,4,0 +2020-06-28,Chautauqua,Kansas,20019,4,0 +2020-06-29,Chautauqua,Kansas,20019,4,0 +2020-06-30,Chautauqua,Kansas,20019,4,0 +2020-07-01,Chautauqua,Kansas,20019,4,0 +2020-07-02,Chautauqua,Kansas,20019,4,0 +2020-07-03,Chautauqua,Kansas,20019,4,0 +2020-07-04,Chautauqua,Kansas,20019,4,0 +2020-07-05,Chautauqua,Kansas,20019,4,0 +2020-07-06,Chautauqua,Kansas,20019,4,0 +2020-07-07,Chautauqua,Kansas,20019,4,0 +2020-07-08,Chautauqua,Kansas,20019,5,0 +2020-07-09,Chautauqua,Kansas,20019,5,0 +2020-03-19,Cherokee,Kansas,20021,1,0 +2020-03-20,Cherokee,Kansas,20021,1,0 +2020-03-21,Cherokee,Kansas,20021,1,0 +2020-03-22,Cherokee,Kansas,20021,1,0 +2020-03-23,Cherokee,Kansas,20021,2,0 +2020-03-24,Cherokee,Kansas,20021,2,0 +2020-03-25,Cherokee,Kansas,20021,2,0 +2020-03-26,Cherokee,Kansas,20021,2,0 +2020-03-27,Cherokee,Kansas,20021,2,0 +2020-03-28,Cherokee,Kansas,20021,2,0 +2020-03-29,Cherokee,Kansas,20021,2,0 +2020-03-30,Cherokee,Kansas,20021,2,0 +2020-03-31,Cherokee,Kansas,20021,3,0 +2020-04-01,Cherokee,Kansas,20021,3,0 +2020-04-02,Cherokee,Kansas,20021,4,0 +2020-04-03,Cherokee,Kansas,20021,5,0 +2020-04-04,Cherokee,Kansas,20021,5,0 +2020-04-05,Cherokee,Kansas,20021,5,0 +2020-04-06,Cherokee,Kansas,20021,5,0 +2020-04-07,Cherokee,Kansas,20021,5,0 +2020-04-08,Cherokee,Kansas,20021,5,0 +2020-04-09,Cherokee,Kansas,20021,5,0 +2020-04-10,Cherokee,Kansas,20021,5,0 +2020-04-11,Cherokee,Kansas,20021,6,0 +2020-04-12,Cherokee,Kansas,20021,6,0 +2020-04-13,Cherokee,Kansas,20021,6,0 +2020-04-14,Cherokee,Kansas,20021,6,0 +2020-04-15,Cherokee,Kansas,20021,7,0 +2020-04-16,Cherokee,Kansas,20021,7,0 +2020-04-17,Cherokee,Kansas,20021,7,0 +2020-04-18,Cherokee,Kansas,20021,7,0 +2020-04-19,Cherokee,Kansas,20021,7,0 +2020-04-20,Cherokee,Kansas,20021,7,0 +2020-04-21,Cherokee,Kansas,20021,7,0 +2020-04-22,Cherokee,Kansas,20021,7,0 +2020-04-23,Cherokee,Kansas,20021,7,0 +2020-04-24,Cherokee,Kansas,20021,7,0 +2020-04-25,Cherokee,Kansas,20021,7,0 +2020-04-26,Cherokee,Kansas,20021,7,0 +2020-04-27,Cherokee,Kansas,20021,7,0 +2020-04-28,Cherokee,Kansas,20021,7,0 +2020-04-29,Cherokee,Kansas,20021,8,0 +2020-04-30,Cherokee,Kansas,20021,8,0 +2020-05-01,Cherokee,Kansas,20021,8,0 +2020-05-02,Cherokee,Kansas,20021,8,0 +2020-05-03,Cherokee,Kansas,20021,8,0 +2020-05-04,Cherokee,Kansas,20021,8,0 +2020-05-05,Cherokee,Kansas,20021,8,0 +2020-05-06,Cherokee,Kansas,20021,8,0 +2020-05-07,Cherokee,Kansas,20021,8,0 +2020-05-08,Cherokee,Kansas,20021,8,0 +2020-05-09,Cherokee,Kansas,20021,8,0 +2020-05-10,Cherokee,Kansas,20021,8,0 +2020-05-11,Cherokee,Kansas,20021,8,0 +2020-05-12,Cherokee,Kansas,20021,8,0 +2020-05-13,Cherokee,Kansas,20021,8,0 +2020-05-14,Cherokee,Kansas,20021,8,0 +2020-05-15,Cherokee,Kansas,20021,8,0 +2020-05-16,Cherokee,Kansas,20021,8,0 +2020-05-17,Cherokee,Kansas,20021,8,0 +2020-05-18,Cherokee,Kansas,20021,8,0 +2020-05-19,Cherokee,Kansas,20021,8,0 +2020-05-20,Cherokee,Kansas,20021,8,0 +2020-05-21,Cherokee,Kansas,20021,8,0 +2020-05-22,Cherokee,Kansas,20021,9,0 +2020-05-23,Cherokee,Kansas,20021,9,0 +2020-05-24,Cherokee,Kansas,20021,9,0 +2020-05-25,Cherokee,Kansas,20021,9,0 +2020-05-26,Cherokee,Kansas,20021,9,0 +2020-05-27,Cherokee,Kansas,20021,9,0 +2020-05-28,Cherokee,Kansas,20021,9,0 +2020-05-29,Cherokee,Kansas,20021,9,0 +2020-05-30,Cherokee,Kansas,20021,9,0 +2020-05-31,Cherokee,Kansas,20021,10,0 +2020-06-01,Cherokee,Kansas,20021,10,0 +2020-06-02,Cherokee,Kansas,20021,10,0 +2020-06-03,Cherokee,Kansas,20021,10,0 +2020-06-04,Cherokee,Kansas,20021,10,0 +2020-06-05,Cherokee,Kansas,20021,10,0 +2020-06-06,Cherokee,Kansas,20021,10,0 +2020-06-07,Cherokee,Kansas,20021,10,0 +2020-06-08,Cherokee,Kansas,20021,10,0 +2020-06-09,Cherokee,Kansas,20021,10,0 +2020-06-10,Cherokee,Kansas,20021,12,0 +2020-06-11,Cherokee,Kansas,20021,12,0 +2020-06-12,Cherokee,Kansas,20021,12,0 +2020-06-13,Cherokee,Kansas,20021,12,0 +2020-06-14,Cherokee,Kansas,20021,16,0 +2020-06-15,Cherokee,Kansas,20021,16,0 +2020-06-16,Cherokee,Kansas,20021,16,0 +2020-06-17,Cherokee,Kansas,20021,17,0 +2020-06-18,Cherokee,Kansas,20021,17,0 +2020-06-19,Cherokee,Kansas,20021,18,0 +2020-06-20,Cherokee,Kansas,20021,18,0 +2020-06-21,Cherokee,Kansas,20021,18,0 +2020-06-22,Cherokee,Kansas,20021,18,0 +2020-06-23,Cherokee,Kansas,20021,18,0 +2020-06-24,Cherokee,Kansas,20021,20,0 +2020-06-25,Cherokee,Kansas,20021,20,0 +2020-06-26,Cherokee,Kansas,20021,24,0 +2020-06-27,Cherokee,Kansas,20021,24,0 +2020-06-28,Cherokee,Kansas,20021,30,0 +2020-06-29,Cherokee,Kansas,20021,30,0 +2020-06-30,Cherokee,Kansas,20021,30,0 +2020-07-01,Cherokee,Kansas,20021,31,0 +2020-07-02,Cherokee,Kansas,20021,31,0 +2020-07-03,Cherokee,Kansas,20021,38,0 +2020-07-04,Cherokee,Kansas,20021,38,0 +2020-07-05,Cherokee,Kansas,20021,38,0 +2020-07-06,Cherokee,Kansas,20021,40,0 +2020-07-07,Cherokee,Kansas,20021,40,1 +2020-07-08,Cherokee,Kansas,20021,43,1 +2020-07-09,Cherokee,Kansas,20021,43,1 +2020-04-29,Cheyenne,Kansas,20023,1,0 +2020-04-30,Cheyenne,Kansas,20023,2,0 +2020-05-01,Cheyenne,Kansas,20023,2,0 +2020-05-02,Cheyenne,Kansas,20023,2,0 +2020-05-03,Cheyenne,Kansas,20023,2,0 +2020-05-04,Cheyenne,Kansas,20023,2,0 +2020-05-05,Cheyenne,Kansas,20023,2,0 +2020-05-06,Cheyenne,Kansas,20023,2,0 +2020-05-07,Cheyenne,Kansas,20023,2,0 +2020-05-08,Cheyenne,Kansas,20023,2,0 +2020-05-09,Cheyenne,Kansas,20023,2,0 +2020-05-10,Cheyenne,Kansas,20023,2,0 +2020-05-11,Cheyenne,Kansas,20023,2,0 +2020-05-12,Cheyenne,Kansas,20023,2,0 +2020-05-13,Cheyenne,Kansas,20023,2,0 +2020-05-14,Cheyenne,Kansas,20023,2,0 +2020-05-15,Cheyenne,Kansas,20023,2,0 +2020-05-16,Cheyenne,Kansas,20023,2,0 +2020-05-17,Cheyenne,Kansas,20023,2,0 +2020-05-18,Cheyenne,Kansas,20023,2,0 +2020-05-19,Cheyenne,Kansas,20023,2,0 +2020-05-20,Cheyenne,Kansas,20023,2,0 +2020-05-21,Cheyenne,Kansas,20023,2,0 +2020-05-22,Cheyenne,Kansas,20023,2,0 +2020-05-23,Cheyenne,Kansas,20023,2,0 +2020-05-24,Cheyenne,Kansas,20023,2,0 +2020-05-25,Cheyenne,Kansas,20023,2,0 +2020-05-26,Cheyenne,Kansas,20023,2,0 +2020-05-27,Cheyenne,Kansas,20023,2,0 +2020-05-28,Cheyenne,Kansas,20023,2,0 +2020-05-29,Cheyenne,Kansas,20023,2,0 +2020-05-30,Cheyenne,Kansas,20023,2,0 +2020-05-31,Cheyenne,Kansas,20023,2,0 +2020-06-01,Cheyenne,Kansas,20023,2,0 +2020-06-02,Cheyenne,Kansas,20023,2,0 +2020-06-03,Cheyenne,Kansas,20023,2,0 +2020-06-04,Cheyenne,Kansas,20023,2,0 +2020-06-05,Cheyenne,Kansas,20023,2,0 +2020-06-06,Cheyenne,Kansas,20023,2,0 +2020-06-07,Cheyenne,Kansas,20023,2,0 +2020-06-08,Cheyenne,Kansas,20023,2,0 +2020-06-09,Cheyenne,Kansas,20023,2,0 +2020-06-10,Cheyenne,Kansas,20023,2,0 +2020-06-11,Cheyenne,Kansas,20023,2,0 +2020-06-12,Cheyenne,Kansas,20023,2,0 +2020-06-13,Cheyenne,Kansas,20023,2,0 +2020-06-14,Cheyenne,Kansas,20023,2,0 +2020-06-15,Cheyenne,Kansas,20023,2,0 +2020-06-16,Cheyenne,Kansas,20023,2,0 +2020-06-17,Cheyenne,Kansas,20023,2,0 +2020-06-18,Cheyenne,Kansas,20023,2,0 +2020-06-19,Cheyenne,Kansas,20023,2,0 +2020-06-20,Cheyenne,Kansas,20023,2,0 +2020-06-21,Cheyenne,Kansas,20023,2,0 +2020-06-22,Cheyenne,Kansas,20023,2,0 +2020-06-23,Cheyenne,Kansas,20023,2,0 +2020-06-24,Cheyenne,Kansas,20023,2,0 +2020-06-25,Cheyenne,Kansas,20023,2,0 +2020-06-26,Cheyenne,Kansas,20023,2,0 +2020-06-27,Cheyenne,Kansas,20023,2,0 +2020-06-28,Cheyenne,Kansas,20023,2,0 +2020-06-29,Cheyenne,Kansas,20023,2,0 +2020-06-30,Cheyenne,Kansas,20023,2,0 +2020-07-01,Cheyenne,Kansas,20023,2,0 +2020-07-02,Cheyenne,Kansas,20023,2,0 +2020-07-03,Cheyenne,Kansas,20023,2,0 +2020-07-04,Cheyenne,Kansas,20023,2,0 +2020-07-05,Cheyenne,Kansas,20023,2,0 +2020-07-06,Cheyenne,Kansas,20023,2,0 +2020-07-07,Cheyenne,Kansas,20023,2,0 +2020-07-08,Cheyenne,Kansas,20023,2,0 +2020-07-09,Cheyenne,Kansas,20023,2,0 +2020-04-23,Clark,Kansas,20025,1,0 +2020-04-24,Clark,Kansas,20025,1,0 +2020-04-25,Clark,Kansas,20025,1,0 +2020-04-26,Clark,Kansas,20025,1,0 +2020-04-27,Clark,Kansas,20025,1,0 +2020-04-28,Clark,Kansas,20025,1,0 +2020-04-29,Clark,Kansas,20025,1,0 +2020-04-30,Clark,Kansas,20025,1,0 +2020-05-01,Clark,Kansas,20025,1,0 +2020-05-02,Clark,Kansas,20025,1,0 +2020-05-03,Clark,Kansas,20025,1,0 +2020-05-04,Clark,Kansas,20025,2,0 +2020-05-05,Clark,Kansas,20025,8,0 +2020-05-06,Clark,Kansas,20025,9,0 +2020-05-07,Clark,Kansas,20025,17,0 +2020-05-08,Clark,Kansas,20025,17,0 +2020-05-09,Clark,Kansas,20025,17,0 +2020-05-10,Clark,Kansas,20025,17,0 +2020-05-11,Clark,Kansas,20025,19,0 +2020-05-12,Clark,Kansas,20025,19,0 +2020-05-13,Clark,Kansas,20025,19,0 +2020-05-14,Clark,Kansas,20025,19,0 +2020-05-15,Clark,Kansas,20025,20,0 +2020-05-16,Clark,Kansas,20025,20,0 +2020-05-17,Clark,Kansas,20025,20,0 +2020-05-18,Clark,Kansas,20025,21,0 +2020-05-19,Clark,Kansas,20025,21,0 +2020-05-20,Clark,Kansas,20025,21,0 +2020-05-21,Clark,Kansas,20025,21,0 +2020-05-22,Clark,Kansas,20025,31,0 +2020-05-23,Clark,Kansas,20025,31,0 +2020-05-24,Clark,Kansas,20025,31,0 +2020-05-25,Clark,Kansas,20025,31,0 +2020-05-26,Clark,Kansas,20025,31,0 +2020-05-27,Clark,Kansas,20025,31,0 +2020-05-28,Clark,Kansas,20025,31,0 +2020-05-29,Clark,Kansas,20025,33,0 +2020-05-30,Clark,Kansas,20025,33,0 +2020-05-31,Clark,Kansas,20025,33,0 +2020-06-01,Clark,Kansas,20025,33,0 +2020-06-02,Clark,Kansas,20025,33,0 +2020-06-03,Clark,Kansas,20025,33,0 +2020-06-04,Clark,Kansas,20025,33,0 +2020-06-05,Clark,Kansas,20025,33,0 +2020-06-06,Clark,Kansas,20025,33,0 +2020-06-07,Clark,Kansas,20025,33,0 +2020-06-08,Clark,Kansas,20025,33,0 +2020-06-09,Clark,Kansas,20025,33,0 +2020-06-10,Clark,Kansas,20025,33,0 +2020-06-11,Clark,Kansas,20025,33,0 +2020-06-12,Clark,Kansas,20025,33,0 +2020-06-13,Clark,Kansas,20025,33,0 +2020-06-14,Clark,Kansas,20025,33,0 +2020-06-15,Clark,Kansas,20025,34,0 +2020-06-16,Clark,Kansas,20025,34,0 +2020-06-17,Clark,Kansas,20025,34,0 +2020-06-18,Clark,Kansas,20025,34,0 +2020-06-19,Clark,Kansas,20025,34,0 +2020-06-20,Clark,Kansas,20025,34,0 +2020-06-21,Clark,Kansas,20025,34,0 +2020-06-22,Clark,Kansas,20025,34,0 +2020-06-23,Clark,Kansas,20025,34,0 +2020-06-24,Clark,Kansas,20025,34,0 +2020-06-25,Clark,Kansas,20025,34,0 +2020-06-26,Clark,Kansas,20025,34,0 +2020-06-27,Clark,Kansas,20025,34,0 +2020-06-28,Clark,Kansas,20025,34,0 +2020-06-29,Clark,Kansas,20025,34,0 +2020-06-30,Clark,Kansas,20025,34,0 +2020-07-01,Clark,Kansas,20025,34,0 +2020-07-02,Clark,Kansas,20025,34,0 +2020-07-03,Clark,Kansas,20025,34,0 +2020-07-04,Clark,Kansas,20025,34,0 +2020-07-05,Clark,Kansas,20025,34,1 +2020-07-06,Clark,Kansas,20025,34,1 +2020-07-07,Clark,Kansas,20025,34,1 +2020-07-08,Clark,Kansas,20025,34,1 +2020-07-09,Clark,Kansas,20025,34,1 +2020-03-27,Clay,Kansas,20027,1,0 +2020-03-28,Clay,Kansas,20027,1,0 +2020-03-29,Clay,Kansas,20027,1,0 +2020-03-30,Clay,Kansas,20027,1,0 +2020-03-31,Clay,Kansas,20027,1,0 +2020-04-01,Clay,Kansas,20027,1,0 +2020-04-02,Clay,Kansas,20027,1,0 +2020-04-03,Clay,Kansas,20027,1,0 +2020-04-04,Clay,Kansas,20027,1,0 +2020-04-05,Clay,Kansas,20027,1,0 +2020-04-06,Clay,Kansas,20027,1,0 +2020-04-07,Clay,Kansas,20027,1,0 +2020-04-08,Clay,Kansas,20027,1,0 +2020-04-09,Clay,Kansas,20027,1,0 +2020-04-10,Clay,Kansas,20027,1,0 +2020-04-11,Clay,Kansas,20027,1,0 +2020-04-12,Clay,Kansas,20027,1,0 +2020-04-13,Clay,Kansas,20027,1,0 +2020-04-14,Clay,Kansas,20027,1,0 +2020-04-15,Clay,Kansas,20027,1,0 +2020-04-16,Clay,Kansas,20027,1,0 +2020-04-17,Clay,Kansas,20027,2,0 +2020-04-18,Clay,Kansas,20027,2,0 +2020-04-19,Clay,Kansas,20027,3,0 +2020-04-20,Clay,Kansas,20027,3,0 +2020-04-21,Clay,Kansas,20027,3,0 +2020-04-22,Clay,Kansas,20027,3,0 +2020-04-23,Clay,Kansas,20027,3,0 +2020-04-24,Clay,Kansas,20027,4,0 +2020-04-25,Clay,Kansas,20027,4,0 +2020-04-26,Clay,Kansas,20027,4,0 +2020-04-27,Clay,Kansas,20027,4,1 +2020-04-28,Clay,Kansas,20027,5,1 +2020-04-29,Clay,Kansas,20027,4,1 +2020-04-30,Clay,Kansas,20027,4,1 +2020-05-01,Clay,Kansas,20027,4,1 +2020-05-02,Clay,Kansas,20027,4,1 +2020-05-03,Clay,Kansas,20027,4,1 +2020-05-04,Clay,Kansas,20027,4,1 +2020-05-05,Clay,Kansas,20027,5,1 +2020-05-06,Clay,Kansas,20027,4,1 +2020-05-07,Clay,Kansas,20027,4,1 +2020-05-08,Clay,Kansas,20027,4,1 +2020-05-09,Clay,Kansas,20027,4,1 +2020-05-10,Clay,Kansas,20027,4,1 +2020-05-11,Clay,Kansas,20027,4,1 +2020-05-12,Clay,Kansas,20027,4,1 +2020-05-13,Clay,Kansas,20027,4,1 +2020-05-14,Clay,Kansas,20027,4,1 +2020-05-15,Clay,Kansas,20027,4,1 +2020-05-16,Clay,Kansas,20027,4,1 +2020-05-17,Clay,Kansas,20027,4,1 +2020-05-18,Clay,Kansas,20027,5,1 +2020-05-19,Clay,Kansas,20027,5,1 +2020-05-20,Clay,Kansas,20027,5,1 +2020-05-21,Clay,Kansas,20027,5,1 +2020-05-22,Clay,Kansas,20027,5,1 +2020-05-23,Clay,Kansas,20027,5,1 +2020-05-24,Clay,Kansas,20027,5,1 +2020-05-25,Clay,Kansas,20027,5,1 +2020-05-26,Clay,Kansas,20027,5,1 +2020-05-27,Clay,Kansas,20027,5,1 +2020-05-28,Clay,Kansas,20027,5,1 +2020-05-29,Clay,Kansas,20027,5,1 +2020-05-30,Clay,Kansas,20027,5,1 +2020-05-31,Clay,Kansas,20027,5,1 +2020-06-01,Clay,Kansas,20027,5,1 +2020-06-02,Clay,Kansas,20027,5,1 +2020-06-03,Clay,Kansas,20027,5,1 +2020-06-04,Clay,Kansas,20027,5,1 +2020-06-05,Clay,Kansas,20027,6,1 +2020-06-06,Clay,Kansas,20027,6,1 +2020-06-07,Clay,Kansas,20027,6,1 +2020-06-08,Clay,Kansas,20027,6,1 +2020-06-09,Clay,Kansas,20027,6,1 +2020-06-10,Clay,Kansas,20027,6,1 +2020-06-11,Clay,Kansas,20027,6,1 +2020-06-12,Clay,Kansas,20027,7,1 +2020-06-13,Clay,Kansas,20027,7,1 +2020-06-14,Clay,Kansas,20027,7,1 +2020-06-15,Clay,Kansas,20027,7,1 +2020-06-16,Clay,Kansas,20027,7,1 +2020-06-17,Clay,Kansas,20027,7,2 +2020-06-18,Clay,Kansas,20027,7,2 +2020-06-19,Clay,Kansas,20027,7,2 +2020-06-20,Clay,Kansas,20027,7,2 +2020-06-21,Clay,Kansas,20027,7,2 +2020-06-22,Clay,Kansas,20027,7,2 +2020-06-23,Clay,Kansas,20027,7,2 +2020-06-24,Clay,Kansas,20027,6,2 +2020-06-25,Clay,Kansas,20027,6,2 +2020-06-26,Clay,Kansas,20027,6,2 +2020-06-27,Clay,Kansas,20027,6,2 +2020-06-28,Clay,Kansas,20027,6,2 +2020-06-29,Clay,Kansas,20027,6,2 +2020-06-30,Clay,Kansas,20027,6,2 +2020-07-01,Clay,Kansas,20027,7,2 +2020-07-02,Clay,Kansas,20027,7,2 +2020-07-03,Clay,Kansas,20027,7,2 +2020-07-04,Clay,Kansas,20027,7,2 +2020-07-05,Clay,Kansas,20027,7,2 +2020-07-06,Clay,Kansas,20027,9,2 +2020-07-07,Clay,Kansas,20027,9,2 +2020-07-08,Clay,Kansas,20027,9,2 +2020-07-09,Clay,Kansas,20027,9,2 +2020-04-02,Cloud,Kansas,20029,1,0 +2020-04-03,Cloud,Kansas,20029,1,0 +2020-04-04,Cloud,Kansas,20029,1,0 +2020-04-05,Cloud,Kansas,20029,1,0 +2020-04-06,Cloud,Kansas,20029,1,0 +2020-04-07,Cloud,Kansas,20029,1,0 +2020-04-08,Cloud,Kansas,20029,3,0 +2020-04-09,Cloud,Kansas,20029,3,0 +2020-04-10,Cloud,Kansas,20029,3,0 +2020-04-11,Cloud,Kansas,20029,3,0 +2020-04-12,Cloud,Kansas,20029,3,0 +2020-04-13,Cloud,Kansas,20029,3,0 +2020-04-14,Cloud,Kansas,20029,3,0 +2020-04-15,Cloud,Kansas,20029,3,0 +2020-04-16,Cloud,Kansas,20029,3,0 +2020-04-17,Cloud,Kansas,20029,3,0 +2020-04-18,Cloud,Kansas,20029,3,0 +2020-04-19,Cloud,Kansas,20029,3,0 +2020-04-20,Cloud,Kansas,20029,3,0 +2020-04-21,Cloud,Kansas,20029,3,0 +2020-04-22,Cloud,Kansas,20029,3,0 +2020-04-23,Cloud,Kansas,20029,3,0 +2020-04-24,Cloud,Kansas,20029,3,0 +2020-04-25,Cloud,Kansas,20029,3,0 +2020-04-26,Cloud,Kansas,20029,3,0 +2020-04-27,Cloud,Kansas,20029,3,0 +2020-04-28,Cloud,Kansas,20029,3,0 +2020-04-29,Cloud,Kansas,20029,4,0 +2020-04-30,Cloud,Kansas,20029,4,0 +2020-05-01,Cloud,Kansas,20029,4,0 +2020-05-02,Cloud,Kansas,20029,4,0 +2020-05-03,Cloud,Kansas,20029,4,0 +2020-05-04,Cloud,Kansas,20029,4,0 +2020-05-05,Cloud,Kansas,20029,4,0 +2020-05-06,Cloud,Kansas,20029,4,0 +2020-05-07,Cloud,Kansas,20029,4,0 +2020-05-08,Cloud,Kansas,20029,4,0 +2020-05-09,Cloud,Kansas,20029,4,0 +2020-05-10,Cloud,Kansas,20029,4,0 +2020-05-11,Cloud,Kansas,20029,4,0 +2020-05-12,Cloud,Kansas,20029,4,0 +2020-05-13,Cloud,Kansas,20029,4,0 +2020-05-14,Cloud,Kansas,20029,4,0 +2020-05-15,Cloud,Kansas,20029,4,0 +2020-05-16,Cloud,Kansas,20029,4,0 +2020-05-17,Cloud,Kansas,20029,4,0 +2020-05-18,Cloud,Kansas,20029,4,0 +2020-05-19,Cloud,Kansas,20029,4,0 +2020-05-20,Cloud,Kansas,20029,4,0 +2020-05-21,Cloud,Kansas,20029,4,0 +2020-05-22,Cloud,Kansas,20029,4,0 +2020-05-23,Cloud,Kansas,20029,4,0 +2020-05-24,Cloud,Kansas,20029,4,0 +2020-05-25,Cloud,Kansas,20029,4,0 +2020-05-26,Cloud,Kansas,20029,4,0 +2020-05-27,Cloud,Kansas,20029,4,0 +2020-05-28,Cloud,Kansas,20029,4,0 +2020-05-29,Cloud,Kansas,20029,5,0 +2020-05-30,Cloud,Kansas,20029,5,0 +2020-05-31,Cloud,Kansas,20029,5,0 +2020-06-01,Cloud,Kansas,20029,5,0 +2020-06-02,Cloud,Kansas,20029,5,0 +2020-06-03,Cloud,Kansas,20029,5,0 +2020-06-04,Cloud,Kansas,20029,5,0 +2020-06-05,Cloud,Kansas,20029,5,0 +2020-06-06,Cloud,Kansas,20029,5,0 +2020-06-07,Cloud,Kansas,20029,5,0 +2020-06-08,Cloud,Kansas,20029,5,0 +2020-06-09,Cloud,Kansas,20029,5,0 +2020-06-10,Cloud,Kansas,20029,5,0 +2020-06-11,Cloud,Kansas,20029,5,0 +2020-06-12,Cloud,Kansas,20029,5,0 +2020-06-13,Cloud,Kansas,20029,5,0 +2020-06-14,Cloud,Kansas,20029,5,0 +2020-06-15,Cloud,Kansas,20029,5,0 +2020-06-16,Cloud,Kansas,20029,5,0 +2020-06-17,Cloud,Kansas,20029,6,0 +2020-06-18,Cloud,Kansas,20029,6,0 +2020-06-19,Cloud,Kansas,20029,7,0 +2020-06-20,Cloud,Kansas,20029,7,0 +2020-06-21,Cloud,Kansas,20029,7,0 +2020-06-22,Cloud,Kansas,20029,7,0 +2020-06-23,Cloud,Kansas,20029,7,0 +2020-06-24,Cloud,Kansas,20029,8,0 +2020-06-25,Cloud,Kansas,20029,8,0 +2020-06-26,Cloud,Kansas,20029,10,0 +2020-06-27,Cloud,Kansas,20029,10,0 +2020-06-28,Cloud,Kansas,20029,10,0 +2020-06-29,Cloud,Kansas,20029,18,0 +2020-06-30,Cloud,Kansas,20029,18,0 +2020-07-01,Cloud,Kansas,20029,18,0 +2020-07-02,Cloud,Kansas,20029,18,0 +2020-07-03,Cloud,Kansas,20029,21,0 +2020-07-04,Cloud,Kansas,20029,21,0 +2020-07-05,Cloud,Kansas,20029,21,0 +2020-07-06,Cloud,Kansas,20029,24,0 +2020-07-07,Cloud,Kansas,20029,24,0 +2020-07-08,Cloud,Kansas,20029,25,0 +2020-07-09,Cloud,Kansas,20029,25,0 +2020-03-27,Coffey,Kansas,20031,1,0 +2020-03-28,Coffey,Kansas,20031,8,0 +2020-03-29,Coffey,Kansas,20031,8,0 +2020-03-30,Coffey,Kansas,20031,10,0 +2020-03-31,Coffey,Kansas,20031,14,0 +2020-04-01,Coffey,Kansas,20031,16,0 +2020-04-02,Coffey,Kansas,20031,16,1 +2020-04-03,Coffey,Kansas,20031,18,1 +2020-04-04,Coffey,Kansas,20031,23,1 +2020-04-05,Coffey,Kansas,20031,24,0 +2020-04-06,Coffey,Kansas,20031,29,0 +2020-04-07,Coffey,Kansas,20031,32,0 +2020-04-08,Coffey,Kansas,20031,35,1 +2020-04-09,Coffey,Kansas,20031,36,1 +2020-04-10,Coffey,Kansas,20031,37,1 +2020-04-11,Coffey,Kansas,20031,38,1 +2020-04-12,Coffey,Kansas,20031,38,1 +2020-04-13,Coffey,Kansas,20031,40,3 +2020-04-14,Coffey,Kansas,20031,41,3 +2020-04-15,Coffey,Kansas,20031,45,6 +2020-04-16,Coffey,Kansas,20031,45,6 +2020-04-17,Coffey,Kansas,20031,45,6 +2020-04-18,Coffey,Kansas,20031,46,6 +2020-04-19,Coffey,Kansas,20031,47,6 +2020-04-20,Coffey,Kansas,20031,47,6 +2020-04-21,Coffey,Kansas,20031,47,6 +2020-04-22,Coffey,Kansas,20031,47,6 +2020-04-23,Coffey,Kansas,20031,48,6 +2020-04-24,Coffey,Kansas,20031,48,7 +2020-04-25,Coffey,Kansas,20031,48,7 +2020-04-26,Coffey,Kansas,20031,48,7 +2020-04-27,Coffey,Kansas,20031,48,7 +2020-04-28,Coffey,Kansas,20031,48,7 +2020-04-29,Coffey,Kansas,20031,48,7 +2020-04-30,Coffey,Kansas,20031,48,8 +2020-05-01,Coffey,Kansas,20031,48,8 +2020-05-02,Coffey,Kansas,20031,48,8 +2020-05-03,Coffey,Kansas,20031,49,8 +2020-05-04,Coffey,Kansas,20031,49,8 +2020-05-05,Coffey,Kansas,20031,49,8 +2020-05-06,Coffey,Kansas,20031,50,8 +2020-05-07,Coffey,Kansas,20031,50,8 +2020-05-08,Coffey,Kansas,20031,50,8 +2020-05-09,Coffey,Kansas,20031,50,8 +2020-05-10,Coffey,Kansas,20031,50,8 +2020-05-11,Coffey,Kansas,20031,50,8 +2020-05-12,Coffey,Kansas,20031,50,8 +2020-05-13,Coffey,Kansas,20031,50,8 +2020-05-14,Coffey,Kansas,20031,50,8 +2020-05-15,Coffey,Kansas,20031,50,8 +2020-05-16,Coffey,Kansas,20031,50,8 +2020-05-17,Coffey,Kansas,20031,50,8 +2020-05-18,Coffey,Kansas,20031,50,8 +2020-05-19,Coffey,Kansas,20031,50,8 +2020-05-20,Coffey,Kansas,20031,50,8 +2020-05-21,Coffey,Kansas,20031,50,8 +2020-05-22,Coffey,Kansas,20031,50,8 +2020-05-23,Coffey,Kansas,20031,50,8 +2020-05-24,Coffey,Kansas,20031,50,8 +2020-05-25,Coffey,Kansas,20031,50,8 +2020-05-26,Coffey,Kansas,20031,50,8 +2020-05-27,Coffey,Kansas,20031,50,8 +2020-05-28,Coffey,Kansas,20031,50,8 +2020-05-29,Coffey,Kansas,20031,50,8 +2020-05-30,Coffey,Kansas,20031,50,8 +2020-05-31,Coffey,Kansas,20031,50,8 +2020-06-01,Coffey,Kansas,20031,50,8 +2020-06-02,Coffey,Kansas,20031,50,8 +2020-06-03,Coffey,Kansas,20031,50,8 +2020-06-04,Coffey,Kansas,20031,50,8 +2020-06-05,Coffey,Kansas,20031,51,8 +2020-06-06,Coffey,Kansas,20031,51,8 +2020-06-07,Coffey,Kansas,20031,51,8 +2020-06-08,Coffey,Kansas,20031,52,8 +2020-06-09,Coffey,Kansas,20031,52,8 +2020-06-10,Coffey,Kansas,20031,52,8 +2020-06-11,Coffey,Kansas,20031,52,8 +2020-06-12,Coffey,Kansas,20031,52,8 +2020-06-13,Coffey,Kansas,20031,52,8 +2020-06-14,Coffey,Kansas,20031,52,8 +2020-06-15,Coffey,Kansas,20031,52,8 +2020-06-16,Coffey,Kansas,20031,52,8 +2020-06-17,Coffey,Kansas,20031,52,8 +2020-06-18,Coffey,Kansas,20031,52,8 +2020-06-19,Coffey,Kansas,20031,52,8 +2020-06-20,Coffey,Kansas,20031,52,8 +2020-06-21,Coffey,Kansas,20031,52,8 +2020-06-22,Coffey,Kansas,20031,53,8 +2020-06-23,Coffey,Kansas,20031,53,8 +2020-06-24,Coffey,Kansas,20031,53,8 +2020-06-25,Coffey,Kansas,20031,53,8 +2020-06-26,Coffey,Kansas,20031,53,8 +2020-06-27,Coffey,Kansas,20031,53,8 +2020-06-28,Coffey,Kansas,20031,53,8 +2020-06-29,Coffey,Kansas,20031,53,8 +2020-06-30,Coffey,Kansas,20031,53,8 +2020-07-01,Coffey,Kansas,20031,53,8 +2020-07-02,Coffey,Kansas,20031,53,8 +2020-07-03,Coffey,Kansas,20031,53,8 +2020-07-04,Coffey,Kansas,20031,53,8 +2020-07-05,Coffey,Kansas,20031,53,8 +2020-07-06,Coffey,Kansas,20031,53,8 +2020-07-07,Coffey,Kansas,20031,53,8 +2020-07-08,Coffey,Kansas,20031,53,8 +2020-07-09,Coffey,Kansas,20031,53,8 +2020-05-22,Comanche,Kansas,20033,1,0 +2020-05-23,Comanche,Kansas,20033,1,0 +2020-05-24,Comanche,Kansas,20033,1,0 +2020-05-25,Comanche,Kansas,20033,1,0 +2020-05-26,Comanche,Kansas,20033,1,0 +2020-05-27,Comanche,Kansas,20033,1,0 +2020-05-28,Comanche,Kansas,20033,1,0 +2020-05-29,Comanche,Kansas,20033,2,0 +2020-05-30,Comanche,Kansas,20033,2,0 +2020-05-31,Comanche,Kansas,20033,2,0 +2020-06-01,Comanche,Kansas,20033,2,0 +2020-06-02,Comanche,Kansas,20033,2,0 +2020-06-03,Comanche,Kansas,20033,2,0 +2020-06-04,Comanche,Kansas,20033,2,0 +2020-06-05,Comanche,Kansas,20033,2,0 +2020-06-06,Comanche,Kansas,20033,2,0 +2020-06-07,Comanche,Kansas,20033,2,0 +2020-06-08,Comanche,Kansas,20033,2,0 +2020-06-09,Comanche,Kansas,20033,2,0 +2020-06-10,Comanche,Kansas,20033,2,0 +2020-06-11,Comanche,Kansas,20033,2,0 +2020-06-12,Comanche,Kansas,20033,2,0 +2020-06-13,Comanche,Kansas,20033,2,0 +2020-06-14,Comanche,Kansas,20033,2,0 +2020-06-15,Comanche,Kansas,20033,2,0 +2020-06-16,Comanche,Kansas,20033,2,0 +2020-06-17,Comanche,Kansas,20033,2,0 +2020-06-18,Comanche,Kansas,20033,2,0 +2020-06-19,Comanche,Kansas,20033,2,0 +2020-06-20,Comanche,Kansas,20033,2,0 +2020-06-21,Comanche,Kansas,20033,2,0 +2020-06-22,Comanche,Kansas,20033,2,0 +2020-06-23,Comanche,Kansas,20033,2,0 +2020-06-24,Comanche,Kansas,20033,2,0 +2020-06-25,Comanche,Kansas,20033,2,0 +2020-06-26,Comanche,Kansas,20033,2,0 +2020-06-27,Comanche,Kansas,20033,2,0 +2020-06-28,Comanche,Kansas,20033,2,0 +2020-06-29,Comanche,Kansas,20033,2,0 +2020-06-30,Comanche,Kansas,20033,2,0 +2020-07-01,Comanche,Kansas,20033,2,0 +2020-07-02,Comanche,Kansas,20033,2,0 +2020-07-03,Comanche,Kansas,20033,2,0 +2020-07-04,Comanche,Kansas,20033,2,0 +2020-07-05,Comanche,Kansas,20033,2,0 +2020-07-06,Comanche,Kansas,20033,3,0 +2020-07-07,Comanche,Kansas,20033,3,0 +2020-07-08,Comanche,Kansas,20033,3,0 +2020-07-09,Comanche,Kansas,20033,3,0 +2020-04-02,Cowley,Kansas,20035,1,0 +2020-04-03,Cowley,Kansas,20035,1,0 +2020-04-04,Cowley,Kansas,20035,1,0 +2020-04-05,Cowley,Kansas,20035,1,0 +2020-04-06,Cowley,Kansas,20035,1,0 +2020-04-07,Cowley,Kansas,20035,1,0 +2020-04-08,Cowley,Kansas,20035,1,0 +2020-04-09,Cowley,Kansas,20035,2,1 +2020-04-10,Cowley,Kansas,20035,2,1 +2020-04-11,Cowley,Kansas,20035,2,1 +2020-04-12,Cowley,Kansas,20035,2,1 +2020-04-13,Cowley,Kansas,20035,2,1 +2020-04-14,Cowley,Kansas,20035,1,1 +2020-04-15,Cowley,Kansas,20035,1,1 +2020-04-16,Cowley,Kansas,20035,1,1 +2020-04-17,Cowley,Kansas,20035,1,1 +2020-04-18,Cowley,Kansas,20035,1,1 +2020-04-19,Cowley,Kansas,20035,1,1 +2020-04-20,Cowley,Kansas,20035,1,1 +2020-04-21,Cowley,Kansas,20035,1,1 +2020-04-22,Cowley,Kansas,20035,1,1 +2020-04-23,Cowley,Kansas,20035,1,1 +2020-04-24,Cowley,Kansas,20035,1,1 +2020-04-25,Cowley,Kansas,20035,1,1 +2020-04-26,Cowley,Kansas,20035,2,1 +2020-04-27,Cowley,Kansas,20035,3,1 +2020-04-28,Cowley,Kansas,20035,3,1 +2020-04-29,Cowley,Kansas,20035,3,1 +2020-04-30,Cowley,Kansas,20035,3,1 +2020-05-01,Cowley,Kansas,20035,3,1 +2020-05-02,Cowley,Kansas,20035,3,1 +2020-05-03,Cowley,Kansas,20035,3,1 +2020-05-04,Cowley,Kansas,20035,3,1 +2020-05-05,Cowley,Kansas,20035,3,1 +2020-05-06,Cowley,Kansas,20035,3,1 +2020-05-07,Cowley,Kansas,20035,3,1 +2020-05-08,Cowley,Kansas,20035,3,1 +2020-05-09,Cowley,Kansas,20035,3,1 +2020-05-10,Cowley,Kansas,20035,3,1 +2020-05-11,Cowley,Kansas,20035,3,1 +2020-05-12,Cowley,Kansas,20035,3,1 +2020-05-13,Cowley,Kansas,20035,3,1 +2020-05-14,Cowley,Kansas,20035,3,1 +2020-05-15,Cowley,Kansas,20035,3,1 +2020-05-16,Cowley,Kansas,20035,5,1 +2020-05-17,Cowley,Kansas,20035,5,1 +2020-05-18,Cowley,Kansas,20035,5,1 +2020-05-19,Cowley,Kansas,20035,4,1 +2020-05-20,Cowley,Kansas,20035,4,1 +2020-05-21,Cowley,Kansas,20035,4,1 +2020-05-22,Cowley,Kansas,20035,4,1 +2020-05-23,Cowley,Kansas,20035,4,1 +2020-05-24,Cowley,Kansas,20035,4,1 +2020-05-25,Cowley,Kansas,20035,4,1 +2020-05-26,Cowley,Kansas,20035,4,1 +2020-05-27,Cowley,Kansas,20035,4,1 +2020-05-28,Cowley,Kansas,20035,4,1 +2020-05-29,Cowley,Kansas,20035,5,1 +2020-05-30,Cowley,Kansas,20035,5,1 +2020-05-31,Cowley,Kansas,20035,5,1 +2020-06-01,Cowley,Kansas,20035,10,1 +2020-06-02,Cowley,Kansas,20035,10,1 +2020-06-03,Cowley,Kansas,20035,15,1 +2020-06-04,Cowley,Kansas,20035,15,1 +2020-06-05,Cowley,Kansas,20035,17,1 +2020-06-06,Cowley,Kansas,20035,17,1 +2020-06-07,Cowley,Kansas,20035,17,1 +2020-06-08,Cowley,Kansas,20035,26,1 +2020-06-09,Cowley,Kansas,20035,26,1 +2020-06-10,Cowley,Kansas,20035,27,1 +2020-06-11,Cowley,Kansas,20035,27,1 +2020-06-12,Cowley,Kansas,20035,39,1 +2020-06-13,Cowley,Kansas,20035,39,1 +2020-06-14,Cowley,Kansas,20035,39,1 +2020-06-15,Cowley,Kansas,20035,41,1 +2020-06-16,Cowley,Kansas,20035,41,1 +2020-06-17,Cowley,Kansas,20035,45,1 +2020-06-18,Cowley,Kansas,20035,45,1 +2020-06-19,Cowley,Kansas,20035,52,1 +2020-06-20,Cowley,Kansas,20035,52,1 +2020-06-21,Cowley,Kansas,20035,52,1 +2020-06-22,Cowley,Kansas,20035,59,1 +2020-06-23,Cowley,Kansas,20035,59,1 +2020-06-24,Cowley,Kansas,20035,61,1 +2020-06-25,Cowley,Kansas,20035,61,1 +2020-06-26,Cowley,Kansas,20035,66,1 +2020-06-27,Cowley,Kansas,20035,66,1 +2020-06-28,Cowley,Kansas,20035,66,1 +2020-06-29,Cowley,Kansas,20035,70,1 +2020-06-30,Cowley,Kansas,20035,70,1 +2020-07-01,Cowley,Kansas,20035,71,1 +2020-07-02,Cowley,Kansas,20035,71,1 +2020-07-03,Cowley,Kansas,20035,73,1 +2020-07-04,Cowley,Kansas,20035,73,1 +2020-07-05,Cowley,Kansas,20035,73,1 +2020-07-06,Cowley,Kansas,20035,76,1 +2020-07-07,Cowley,Kansas,20035,76,1 +2020-07-08,Cowley,Kansas,20035,77,1 +2020-07-09,Cowley,Kansas,20035,77,1 +2020-03-25,Crawford,Kansas,20037,1,0 +2020-03-26,Crawford,Kansas,20037,3,0 +2020-03-27,Crawford,Kansas,20037,3,0 +2020-03-28,Crawford,Kansas,20037,3,0 +2020-03-29,Crawford,Kansas,20037,4,0 +2020-03-30,Crawford,Kansas,20037,5,1 +2020-03-31,Crawford,Kansas,20037,5,1 +2020-04-01,Crawford,Kansas,20037,5,1 +2020-04-02,Crawford,Kansas,20037,6,1 +2020-04-03,Crawford,Kansas,20037,6,1 +2020-04-04,Crawford,Kansas,20037,6,1 +2020-04-05,Crawford,Kansas,20037,6,1 +2020-04-06,Crawford,Kansas,20037,6,1 +2020-04-07,Crawford,Kansas,20037,6,1 +2020-04-08,Crawford,Kansas,20037,6,1 +2020-04-09,Crawford,Kansas,20037,6,1 +2020-04-10,Crawford,Kansas,20037,6,1 +2020-04-11,Crawford,Kansas,20037,6,1 +2020-04-12,Crawford,Kansas,20037,6,1 +2020-04-13,Crawford,Kansas,20037,6,1 +2020-04-14,Crawford,Kansas,20037,6,1 +2020-04-15,Crawford,Kansas,20037,6,1 +2020-04-16,Crawford,Kansas,20037,6,1 +2020-04-17,Crawford,Kansas,20037,6,1 +2020-04-18,Crawford,Kansas,20037,6,1 +2020-04-19,Crawford,Kansas,20037,6,1 +2020-04-20,Crawford,Kansas,20037,6,1 +2020-04-21,Crawford,Kansas,20037,6,1 +2020-04-22,Crawford,Kansas,20037,6,1 +2020-04-23,Crawford,Kansas,20037,6,1 +2020-04-24,Crawford,Kansas,20037,6,1 +2020-04-25,Crawford,Kansas,20037,6,1 +2020-04-26,Crawford,Kansas,20037,6,1 +2020-04-27,Crawford,Kansas,20037,7,1 +2020-04-28,Crawford,Kansas,20037,7,1 +2020-04-29,Crawford,Kansas,20037,5,1 +2020-04-30,Crawford,Kansas,20037,5,1 +2020-05-01,Crawford,Kansas,20037,6,1 +2020-05-02,Crawford,Kansas,20037,6,1 +2020-05-03,Crawford,Kansas,20037,6,1 +2020-05-04,Crawford,Kansas,20037,6,1 +2020-05-05,Crawford,Kansas,20037,6,1 +2020-05-06,Crawford,Kansas,20037,6,1 +2020-05-07,Crawford,Kansas,20037,6,1 +2020-05-08,Crawford,Kansas,20037,6,1 +2020-05-09,Crawford,Kansas,20037,6,1 +2020-05-10,Crawford,Kansas,20037,6,1 +2020-05-11,Crawford,Kansas,20037,6,1 +2020-05-12,Crawford,Kansas,20037,6,1 +2020-05-13,Crawford,Kansas,20037,6,1 +2020-05-14,Crawford,Kansas,20037,6,1 +2020-05-15,Crawford,Kansas,20037,6,1 +2020-05-16,Crawford,Kansas,20037,6,1 +2020-05-17,Crawford,Kansas,20037,6,1 +2020-05-18,Crawford,Kansas,20037,6,1 +2020-05-19,Crawford,Kansas,20037,6,1 +2020-05-20,Crawford,Kansas,20037,7,1 +2020-05-21,Crawford,Kansas,20037,7,1 +2020-05-22,Crawford,Kansas,20037,6,1 +2020-05-23,Crawford,Kansas,20037,6,1 +2020-05-24,Crawford,Kansas,20037,6,1 +2020-05-25,Crawford,Kansas,20037,6,1 +2020-05-26,Crawford,Kansas,20037,6,1 +2020-05-27,Crawford,Kansas,20037,6,1 +2020-05-28,Crawford,Kansas,20037,6,1 +2020-05-29,Crawford,Kansas,20037,6,1 +2020-05-30,Crawford,Kansas,20037,6,1 +2020-05-31,Crawford,Kansas,20037,6,1 +2020-06-01,Crawford,Kansas,20037,6,1 +2020-06-02,Crawford,Kansas,20037,6,1 +2020-06-03,Crawford,Kansas,20037,6,1 +2020-06-04,Crawford,Kansas,20037,6,1 +2020-06-05,Crawford,Kansas,20037,6,1 +2020-06-06,Crawford,Kansas,20037,6,1 +2020-06-07,Crawford,Kansas,20037,6,1 +2020-06-08,Crawford,Kansas,20037,6,1 +2020-06-09,Crawford,Kansas,20037,6,1 +2020-06-10,Crawford,Kansas,20037,9,1 +2020-06-11,Crawford,Kansas,20037,9,1 +2020-06-12,Crawford,Kansas,20037,18,1 +2020-06-13,Crawford,Kansas,20037,18,1 +2020-06-14,Crawford,Kansas,20037,18,1 +2020-06-15,Crawford,Kansas,20037,96,1 +2020-06-16,Crawford,Kansas,20037,96,1 +2020-06-17,Crawford,Kansas,20037,156,1 +2020-06-18,Crawford,Kansas,20037,156,1 +2020-06-19,Crawford,Kansas,20037,167,1 +2020-06-20,Crawford,Kansas,20037,167,1 +2020-06-21,Crawford,Kansas,20037,167,1 +2020-06-22,Crawford,Kansas,20037,192,1 +2020-06-23,Crawford,Kansas,20037,192,1 +2020-06-24,Crawford,Kansas,20037,220,1 +2020-06-25,Crawford,Kansas,20037,220,1 +2020-06-26,Crawford,Kansas,20037,246,1 +2020-06-27,Crawford,Kansas,20037,246,1 +2020-06-28,Crawford,Kansas,20037,246,1 +2020-06-29,Crawford,Kansas,20037,256,1 +2020-06-30,Crawford,Kansas,20037,256,1 +2020-07-01,Crawford,Kansas,20037,263,1 +2020-07-02,Crawford,Kansas,20037,263,1 +2020-07-03,Crawford,Kansas,20037,267,1 +2020-07-04,Crawford,Kansas,20037,267,1 +2020-07-05,Crawford,Kansas,20037,267,1 +2020-07-06,Crawford,Kansas,20037,278,1 +2020-07-07,Crawford,Kansas,20037,278,1 +2020-07-08,Crawford,Kansas,20037,294,1 +2020-07-09,Crawford,Kansas,20037,294,1 +2020-04-14,Dickinson,Kansas,20041,1,0 +2020-04-15,Dickinson,Kansas,20041,1,0 +2020-04-16,Dickinson,Kansas,20041,1,0 +2020-04-17,Dickinson,Kansas,20041,1,0 +2020-04-18,Dickinson,Kansas,20041,1,0 +2020-04-19,Dickinson,Kansas,20041,1,0 +2020-04-20,Dickinson,Kansas,20041,1,0 +2020-04-21,Dickinson,Kansas,20041,1,0 +2020-04-22,Dickinson,Kansas,20041,1,0 +2020-04-23,Dickinson,Kansas,20041,1,0 +2020-04-24,Dickinson,Kansas,20041,1,0 +2020-04-25,Dickinson,Kansas,20041,1,0 +2020-04-26,Dickinson,Kansas,20041,2,0 +2020-04-27,Dickinson,Kansas,20041,2,0 +2020-04-28,Dickinson,Kansas,20041,2,0 +2020-04-29,Dickinson,Kansas,20041,2,0 +2020-04-30,Dickinson,Kansas,20041,2,0 +2020-05-01,Dickinson,Kansas,20041,2,0 +2020-05-02,Dickinson,Kansas,20041,2,0 +2020-05-03,Dickinson,Kansas,20041,2,0 +2020-05-04,Dickinson,Kansas,20041,2,0 +2020-05-05,Dickinson,Kansas,20041,2,0 +2020-05-06,Dickinson,Kansas,20041,2,0 +2020-05-07,Dickinson,Kansas,20041,2,0 +2020-05-08,Dickinson,Kansas,20041,2,0 +2020-05-09,Dickinson,Kansas,20041,2,0 +2020-05-10,Dickinson,Kansas,20041,2,0 +2020-05-11,Dickinson,Kansas,20041,2,0 +2020-05-12,Dickinson,Kansas,20041,2,0 +2020-05-13,Dickinson,Kansas,20041,2,0 +2020-05-14,Dickinson,Kansas,20041,2,0 +2020-05-15,Dickinson,Kansas,20041,2,0 +2020-05-16,Dickinson,Kansas,20041,2,0 +2020-05-17,Dickinson,Kansas,20041,2,0 +2020-05-18,Dickinson,Kansas,20041,2,0 +2020-05-19,Dickinson,Kansas,20041,2,0 +2020-05-20,Dickinson,Kansas,20041,2,0 +2020-05-21,Dickinson,Kansas,20041,2,0 +2020-05-22,Dickinson,Kansas,20041,4,0 +2020-05-23,Dickinson,Kansas,20041,4,0 +2020-05-24,Dickinson,Kansas,20041,4,0 +2020-05-25,Dickinson,Kansas,20041,3,0 +2020-05-26,Dickinson,Kansas,20041,3,0 +2020-05-27,Dickinson,Kansas,20041,3,0 +2020-05-28,Dickinson,Kansas,20041,3,0 +2020-05-29,Dickinson,Kansas,20041,3,0 +2020-05-30,Dickinson,Kansas,20041,3,0 +2020-05-31,Dickinson,Kansas,20041,3,0 +2020-06-01,Dickinson,Kansas,20041,4,0 +2020-06-02,Dickinson,Kansas,20041,4,0 +2020-06-03,Dickinson,Kansas,20041,5,0 +2020-06-04,Dickinson,Kansas,20041,5,0 +2020-06-05,Dickinson,Kansas,20041,5,0 +2020-06-06,Dickinson,Kansas,20041,5,0 +2020-06-07,Dickinson,Kansas,20041,5,0 +2020-06-08,Dickinson,Kansas,20041,5,0 +2020-06-09,Dickinson,Kansas,20041,5,0 +2020-06-10,Dickinson,Kansas,20041,6,0 +2020-06-11,Dickinson,Kansas,20041,6,0 +2020-06-12,Dickinson,Kansas,20041,6,0 +2020-06-13,Dickinson,Kansas,20041,6,0 +2020-06-14,Dickinson,Kansas,20041,6,0 +2020-06-15,Dickinson,Kansas,20041,6,0 +2020-06-16,Dickinson,Kansas,20041,6,0 +2020-06-17,Dickinson,Kansas,20041,6,0 +2020-06-18,Dickinson,Kansas,20041,6,0 +2020-06-19,Dickinson,Kansas,20041,8,0 +2020-06-20,Dickinson,Kansas,20041,8,0 +2020-06-21,Dickinson,Kansas,20041,8,0 +2020-06-22,Dickinson,Kansas,20041,6,0 +2020-06-23,Dickinson,Kansas,20041,6,0 +2020-06-24,Dickinson,Kansas,20041,8,0 +2020-06-25,Dickinson,Kansas,20041,8,0 +2020-06-26,Dickinson,Kansas,20041,8,0 +2020-06-27,Dickinson,Kansas,20041,8,0 +2020-06-28,Dickinson,Kansas,20041,8,0 +2020-06-29,Dickinson,Kansas,20041,8,0 +2020-06-30,Dickinson,Kansas,20041,8,0 +2020-07-01,Dickinson,Kansas,20041,8,0 +2020-07-02,Dickinson,Kansas,20041,8,0 +2020-07-03,Dickinson,Kansas,20041,8,0 +2020-07-04,Dickinson,Kansas,20041,8,0 +2020-07-05,Dickinson,Kansas,20041,8,1 +2020-07-06,Dickinson,Kansas,20041,10,1 +2020-07-07,Dickinson,Kansas,20041,10,1 +2020-07-08,Dickinson,Kansas,20041,12,1 +2020-07-09,Dickinson,Kansas,20041,12,1 +2020-03-24,Doniphan,Kansas,20043,1,0 +2020-03-25,Doniphan,Kansas,20043,1,0 +2020-03-26,Doniphan,Kansas,20043,1,0 +2020-03-27,Doniphan,Kansas,20043,1,0 +2020-03-28,Doniphan,Kansas,20043,1,0 +2020-03-29,Doniphan,Kansas,20043,1,0 +2020-03-30,Doniphan,Kansas,20043,1,0 +2020-03-31,Doniphan,Kansas,20043,1,0 +2020-04-01,Doniphan,Kansas,20043,1,0 +2020-04-02,Doniphan,Kansas,20043,1,0 +2020-04-03,Doniphan,Kansas,20043,1,0 +2020-04-04,Doniphan,Kansas,20043,1,0 +2020-04-05,Doniphan,Kansas,20043,1,0 +2020-04-06,Doniphan,Kansas,20043,1,0 +2020-04-07,Doniphan,Kansas,20043,1,0 +2020-04-08,Doniphan,Kansas,20043,1,0 +2020-04-09,Doniphan,Kansas,20043,1,0 +2020-04-10,Doniphan,Kansas,20043,1,0 +2020-04-11,Doniphan,Kansas,20043,1,0 +2020-04-12,Doniphan,Kansas,20043,1,0 +2020-04-13,Doniphan,Kansas,20043,1,0 +2020-04-14,Doniphan,Kansas,20043,1,0 +2020-04-15,Doniphan,Kansas,20043,1,0 +2020-04-16,Doniphan,Kansas,20043,1,0 +2020-04-17,Doniphan,Kansas,20043,1,0 +2020-04-18,Doniphan,Kansas,20043,1,0 +2020-04-19,Doniphan,Kansas,20043,1,0 +2020-04-20,Doniphan,Kansas,20043,1,0 +2020-04-21,Doniphan,Kansas,20043,1,0 +2020-04-22,Doniphan,Kansas,20043,3,0 +2020-04-23,Doniphan,Kansas,20043,3,0 +2020-04-24,Doniphan,Kansas,20043,3,0 +2020-04-25,Doniphan,Kansas,20043,3,0 +2020-04-26,Doniphan,Kansas,20043,3,0 +2020-04-27,Doniphan,Kansas,20043,3,0 +2020-04-28,Doniphan,Kansas,20043,3,0 +2020-04-29,Doniphan,Kansas,20043,3,0 +2020-04-30,Doniphan,Kansas,20043,3,0 +2020-05-01,Doniphan,Kansas,20043,3,0 +2020-05-02,Doniphan,Kansas,20043,4,0 +2020-05-03,Doniphan,Kansas,20043,4,0 +2020-05-04,Doniphan,Kansas,20043,4,0 +2020-05-05,Doniphan,Kansas,20043,4,0 +2020-05-06,Doniphan,Kansas,20043,4,0 +2020-05-07,Doniphan,Kansas,20043,7,0 +2020-05-08,Doniphan,Kansas,20043,7,0 +2020-05-09,Doniphan,Kansas,20043,7,0 +2020-05-10,Doniphan,Kansas,20043,8,0 +2020-05-11,Doniphan,Kansas,20043,8,0 +2020-05-12,Doniphan,Kansas,20043,8,0 +2020-05-13,Doniphan,Kansas,20043,9,0 +2020-05-14,Doniphan,Kansas,20043,9,0 +2020-05-15,Doniphan,Kansas,20043,9,0 +2020-05-16,Doniphan,Kansas,20043,9,0 +2020-05-17,Doniphan,Kansas,20043,9,0 +2020-05-18,Doniphan,Kansas,20043,9,0 +2020-05-19,Doniphan,Kansas,20043,9,0 +2020-05-20,Doniphan,Kansas,20043,9,0 +2020-05-21,Doniphan,Kansas,20043,9,0 +2020-05-22,Doniphan,Kansas,20043,11,0 +2020-05-23,Doniphan,Kansas,20043,11,0 +2020-05-24,Doniphan,Kansas,20043,11,0 +2020-05-25,Doniphan,Kansas,20043,12,0 +2020-05-26,Doniphan,Kansas,20043,12,0 +2020-05-27,Doniphan,Kansas,20043,12,0 +2020-05-28,Doniphan,Kansas,20043,12,0 +2020-05-29,Doniphan,Kansas,20043,13,0 +2020-05-30,Doniphan,Kansas,20043,13,0 +2020-05-31,Doniphan,Kansas,20043,13,0 +2020-06-01,Doniphan,Kansas,20043,17,0 +2020-06-02,Doniphan,Kansas,20043,17,0 +2020-06-03,Doniphan,Kansas,20043,18,0 +2020-06-04,Doniphan,Kansas,20043,18,0 +2020-06-05,Doniphan,Kansas,20043,18,0 +2020-06-06,Doniphan,Kansas,20043,18,0 +2020-06-07,Doniphan,Kansas,20043,18,0 +2020-06-08,Doniphan,Kansas,20043,20,0 +2020-06-09,Doniphan,Kansas,20043,20,0 +2020-06-10,Doniphan,Kansas,20043,20,0 +2020-06-11,Doniphan,Kansas,20043,20,0 +2020-06-12,Doniphan,Kansas,20043,20,0 +2020-06-13,Doniphan,Kansas,20043,20,0 +2020-06-14,Doniphan,Kansas,20043,20,0 +2020-06-15,Doniphan,Kansas,20043,20,0 +2020-06-16,Doniphan,Kansas,20043,20,0 +2020-06-17,Doniphan,Kansas,20043,24,0 +2020-06-18,Doniphan,Kansas,20043,24,0 +2020-06-19,Doniphan,Kansas,20043,23,0 +2020-06-20,Doniphan,Kansas,20043,23,0 +2020-06-21,Doniphan,Kansas,20043,23,0 +2020-06-22,Doniphan,Kansas,20043,25,0 +2020-06-23,Doniphan,Kansas,20043,25,0 +2020-06-24,Doniphan,Kansas,20043,25,0 +2020-06-25,Doniphan,Kansas,20043,25,0 +2020-06-26,Doniphan,Kansas,20043,26,0 +2020-06-27,Doniphan,Kansas,20043,26,0 +2020-06-28,Doniphan,Kansas,20043,26,0 +2020-06-29,Doniphan,Kansas,20043,26,0 +2020-06-30,Doniphan,Kansas,20043,26,0 +2020-07-01,Doniphan,Kansas,20043,26,0 +2020-07-02,Doniphan,Kansas,20043,26,0 +2020-07-03,Doniphan,Kansas,20043,26,0 +2020-07-04,Doniphan,Kansas,20043,26,0 +2020-07-05,Doniphan,Kansas,20043,26,0 +2020-07-06,Doniphan,Kansas,20043,27,0 +2020-07-07,Doniphan,Kansas,20043,27,0 +2020-07-08,Doniphan,Kansas,20043,27,0 +2020-07-09,Doniphan,Kansas,20043,27,0 +2020-03-17,Douglas,Kansas,20045,1,0 +2020-03-18,Douglas,Kansas,20045,1,0 +2020-03-19,Douglas,Kansas,20045,1,0 +2020-03-20,Douglas,Kansas,20045,1,0 +2020-03-21,Douglas,Kansas,20045,3,0 +2020-03-22,Douglas,Kansas,20045,4,0 +2020-03-23,Douglas,Kansas,20045,6,0 +2020-03-24,Douglas,Kansas,20045,6,0 +2020-03-25,Douglas,Kansas,20045,10,0 +2020-03-26,Douglas,Kansas,20045,13,0 +2020-03-27,Douglas,Kansas,20045,18,0 +2020-03-28,Douglas,Kansas,20045,23,0 +2020-03-29,Douglas,Kansas,20045,23,0 +2020-03-30,Douglas,Kansas,20045,23,0 +2020-03-31,Douglas,Kansas,20045,24,0 +2020-04-01,Douglas,Kansas,20045,30,0 +2020-04-02,Douglas,Kansas,20045,31,0 +2020-04-03,Douglas,Kansas,20045,31,0 +2020-04-04,Douglas,Kansas,20045,32,0 +2020-04-05,Douglas,Kansas,20045,33,0 +2020-04-06,Douglas,Kansas,20045,36,0 +2020-04-07,Douglas,Kansas,20045,38,0 +2020-04-08,Douglas,Kansas,20045,38,0 +2020-04-09,Douglas,Kansas,20045,38,0 +2020-04-10,Douglas,Kansas,20045,39,0 +2020-04-11,Douglas,Kansas,20045,39,0 +2020-04-12,Douglas,Kansas,20045,39,0 +2020-04-13,Douglas,Kansas,20045,40,0 +2020-04-14,Douglas,Kansas,20045,40,0 +2020-04-15,Douglas,Kansas,20045,41,0 +2020-04-16,Douglas,Kansas,20045,42,0 +2020-04-17,Douglas,Kansas,20045,42,0 +2020-04-18,Douglas,Kansas,20045,43,0 +2020-04-19,Douglas,Kansas,20045,43,0 +2020-04-20,Douglas,Kansas,20045,43,0 +2020-04-21,Douglas,Kansas,20045,43,0 +2020-04-22,Douglas,Kansas,20045,43,0 +2020-04-23,Douglas,Kansas,20045,44,0 +2020-04-24,Douglas,Kansas,20045,46,0 +2020-04-25,Douglas,Kansas,20045,48,0 +2020-04-26,Douglas,Kansas,20045,48,0 +2020-04-27,Douglas,Kansas,20045,49,0 +2020-04-28,Douglas,Kansas,20045,49,0 +2020-04-29,Douglas,Kansas,20045,49,0 +2020-04-30,Douglas,Kansas,20045,50,0 +2020-05-01,Douglas,Kansas,20045,51,0 +2020-05-02,Douglas,Kansas,20045,51,0 +2020-05-03,Douglas,Kansas,20045,51,0 +2020-05-04,Douglas,Kansas,20045,51,0 +2020-05-05,Douglas,Kansas,20045,51,0 +2020-05-06,Douglas,Kansas,20045,56,0 +2020-05-07,Douglas,Kansas,20045,56,0 +2020-05-08,Douglas,Kansas,20045,56,0 +2020-05-09,Douglas,Kansas,20045,56,0 +2020-05-10,Douglas,Kansas,20045,56,0 +2020-05-11,Douglas,Kansas,20045,57,0 +2020-05-12,Douglas,Kansas,20045,58,0 +2020-05-13,Douglas,Kansas,20045,58,0 +2020-05-14,Douglas,Kansas,20045,58,0 +2020-05-15,Douglas,Kansas,20045,58,0 +2020-05-16,Douglas,Kansas,20045,60,0 +2020-05-17,Douglas,Kansas,20045,60,0 +2020-05-18,Douglas,Kansas,20045,61,0 +2020-05-19,Douglas,Kansas,20045,62,0 +2020-05-20,Douglas,Kansas,20045,62,0 +2020-05-21,Douglas,Kansas,20045,62,0 +2020-05-22,Douglas,Kansas,20045,63,0 +2020-05-23,Douglas,Kansas,20045,63,0 +2020-05-24,Douglas,Kansas,20045,63,0 +2020-05-25,Douglas,Kansas,20045,63,0 +2020-05-26,Douglas,Kansas,20045,63,0 +2020-05-27,Douglas,Kansas,20045,63,0 +2020-05-28,Douglas,Kansas,20045,65,0 +2020-05-29,Douglas,Kansas,20045,66,0 +2020-05-30,Douglas,Kansas,20045,66,0 +2020-05-31,Douglas,Kansas,20045,66,0 +2020-06-01,Douglas,Kansas,20045,67,0 +2020-06-02,Douglas,Kansas,20045,67,0 +2020-06-03,Douglas,Kansas,20045,67,0 +2020-06-04,Douglas,Kansas,20045,69,0 +2020-06-05,Douglas,Kansas,20045,70,0 +2020-06-06,Douglas,Kansas,20045,70,0 +2020-06-07,Douglas,Kansas,20045,70,0 +2020-06-08,Douglas,Kansas,20045,74,0 +2020-06-09,Douglas,Kansas,20045,74,0 +2020-06-10,Douglas,Kansas,20045,78,0 +2020-06-11,Douglas,Kansas,20045,78,0 +2020-06-12,Douglas,Kansas,20045,82,0 +2020-06-13,Douglas,Kansas,20045,82,0 +2020-06-14,Douglas,Kansas,20045,82,0 +2020-06-15,Douglas,Kansas,20045,85,0 +2020-06-16,Douglas,Kansas,20045,85,0 +2020-06-17,Douglas,Kansas,20045,88,0 +2020-06-18,Douglas,Kansas,20045,88,0 +2020-06-19,Douglas,Kansas,20045,93,0 +2020-06-20,Douglas,Kansas,20045,93,0 +2020-06-21,Douglas,Kansas,20045,93,0 +2020-06-22,Douglas,Kansas,20045,103,0 +2020-06-23,Douglas,Kansas,20045,103,0 +2020-06-24,Douglas,Kansas,20045,106,0 +2020-06-25,Douglas,Kansas,20045,106,0 +2020-06-26,Douglas,Kansas,20045,124,0 +2020-06-27,Douglas,Kansas,20045,124,0 +2020-06-28,Douglas,Kansas,20045,124,0 +2020-06-29,Douglas,Kansas,20045,159,0 +2020-06-30,Douglas,Kansas,20045,159,0 +2020-07-01,Douglas,Kansas,20045,188,0 +2020-07-02,Douglas,Kansas,20045,190,0 +2020-07-03,Douglas,Kansas,20045,251,0 +2020-07-04,Douglas,Kansas,20045,251,0 +2020-07-05,Douglas,Kansas,20045,251,0 +2020-07-06,Douglas,Kansas,20045,354,0 +2020-07-07,Douglas,Kansas,20045,354,0 +2020-07-08,Douglas,Kansas,20045,377,0 +2020-07-09,Douglas,Kansas,20045,377,0 +2020-04-22,Edwards,Kansas,20047,1,0 +2020-04-23,Edwards,Kansas,20047,1,0 +2020-04-24,Edwards,Kansas,20047,1,0 +2020-04-25,Edwards,Kansas,20047,1,0 +2020-04-26,Edwards,Kansas,20047,1,0 +2020-04-27,Edwards,Kansas,20047,2,0 +2020-04-28,Edwards,Kansas,20047,2,0 +2020-04-29,Edwards,Kansas,20047,3,0 +2020-04-30,Edwards,Kansas,20047,3,0 +2020-05-01,Edwards,Kansas,20047,4,0 +2020-05-02,Edwards,Kansas,20047,4,0 +2020-05-03,Edwards,Kansas,20047,4,0 +2020-05-04,Edwards,Kansas,20047,4,0 +2020-05-05,Edwards,Kansas,20047,4,0 +2020-05-06,Edwards,Kansas,20047,4,0 +2020-05-07,Edwards,Kansas,20047,4,0 +2020-05-08,Edwards,Kansas,20047,4,0 +2020-05-09,Edwards,Kansas,20047,4,0 +2020-05-10,Edwards,Kansas,20047,4,0 +2020-05-11,Edwards,Kansas,20047,4,0 +2020-05-12,Edwards,Kansas,20047,4,0 +2020-05-13,Edwards,Kansas,20047,4,0 +2020-05-14,Edwards,Kansas,20047,4,0 +2020-05-15,Edwards,Kansas,20047,4,0 +2020-05-16,Edwards,Kansas,20047,4,0 +2020-05-17,Edwards,Kansas,20047,4,0 +2020-05-18,Edwards,Kansas,20047,5,0 +2020-05-19,Edwards,Kansas,20047,5,0 +2020-05-20,Edwards,Kansas,20047,5,0 +2020-05-21,Edwards,Kansas,20047,5,0 +2020-05-22,Edwards,Kansas,20047,5,0 +2020-05-23,Edwards,Kansas,20047,5,0 +2020-05-24,Edwards,Kansas,20047,5,0 +2020-05-25,Edwards,Kansas,20047,5,0 +2020-05-26,Edwards,Kansas,20047,5,0 +2020-05-27,Edwards,Kansas,20047,5,0 +2020-05-28,Edwards,Kansas,20047,5,0 +2020-05-29,Edwards,Kansas,20047,5,0 +2020-05-30,Edwards,Kansas,20047,5,0 +2020-05-31,Edwards,Kansas,20047,5,0 +2020-06-01,Edwards,Kansas,20047,5,0 +2020-06-02,Edwards,Kansas,20047,5,0 +2020-06-03,Edwards,Kansas,20047,5,0 +2020-06-04,Edwards,Kansas,20047,5,0 +2020-06-05,Edwards,Kansas,20047,5,0 +2020-06-06,Edwards,Kansas,20047,5,0 +2020-06-07,Edwards,Kansas,20047,5,0 +2020-06-08,Edwards,Kansas,20047,5,0 +2020-06-09,Edwards,Kansas,20047,5,0 +2020-06-10,Edwards,Kansas,20047,5,0 +2020-06-11,Edwards,Kansas,20047,5,0 +2020-06-12,Edwards,Kansas,20047,5,0 +2020-06-13,Edwards,Kansas,20047,5,0 +2020-06-14,Edwards,Kansas,20047,5,0 +2020-06-15,Edwards,Kansas,20047,5,0 +2020-06-16,Edwards,Kansas,20047,5,0 +2020-06-17,Edwards,Kansas,20047,5,0 +2020-06-18,Edwards,Kansas,20047,5,0 +2020-06-19,Edwards,Kansas,20047,6,0 +2020-06-20,Edwards,Kansas,20047,6,0 +2020-06-21,Edwards,Kansas,20047,6,0 +2020-06-22,Edwards,Kansas,20047,6,0 +2020-06-23,Edwards,Kansas,20047,6,0 +2020-06-24,Edwards,Kansas,20047,6,0 +2020-06-25,Edwards,Kansas,20047,6,0 +2020-06-26,Edwards,Kansas,20047,6,0 +2020-06-27,Edwards,Kansas,20047,6,0 +2020-06-28,Edwards,Kansas,20047,6,0 +2020-06-29,Edwards,Kansas,20047,6,0 +2020-06-30,Edwards,Kansas,20047,6,0 +2020-07-01,Edwards,Kansas,20047,7,0 +2020-07-02,Edwards,Kansas,20047,7,0 +2020-07-03,Edwards,Kansas,20047,7,0 +2020-07-04,Edwards,Kansas,20047,7,0 +2020-07-05,Edwards,Kansas,20047,7,0 +2020-07-06,Edwards,Kansas,20047,7,0 +2020-07-07,Edwards,Kansas,20047,7,0 +2020-07-08,Edwards,Kansas,20047,7,0 +2020-07-09,Edwards,Kansas,20047,7,0 +2020-06-26,Elk,Kansas,20049,1,0 +2020-06-27,Elk,Kansas,20049,1,0 +2020-06-28,Elk,Kansas,20049,1,0 +2020-06-29,Elk,Kansas,20049,1,0 +2020-06-30,Elk,Kansas,20049,1,0 +2020-07-01,Elk,Kansas,20049,1,0 +2020-07-02,Elk,Kansas,20049,1,0 +2020-07-03,Elk,Kansas,20049,1,0 +2020-07-04,Elk,Kansas,20049,1,0 +2020-07-05,Elk,Kansas,20049,1,0 +2020-07-06,Elk,Kansas,20049,1,0 +2020-07-07,Elk,Kansas,20049,1,0 +2020-07-08,Elk,Kansas,20049,1,0 +2020-07-09,Elk,Kansas,20049,1,0 +2020-04-11,Ellis,Kansas,20051,1,0 +2020-04-12,Ellis,Kansas,20051,1,0 +2020-04-13,Ellis,Kansas,20051,1,0 +2020-04-14,Ellis,Kansas,20051,4,0 +2020-04-15,Ellis,Kansas,20051,4,0 +2020-04-16,Ellis,Kansas,20051,4,0 +2020-04-17,Ellis,Kansas,20051,4,0 +2020-04-18,Ellis,Kansas,20051,4,0 +2020-04-19,Ellis,Kansas,20051,4,0 +2020-04-20,Ellis,Kansas,20051,4,0 +2020-04-21,Ellis,Kansas,20051,4,0 +2020-04-22,Ellis,Kansas,20051,8,0 +2020-04-23,Ellis,Kansas,20051,8,0 +2020-04-24,Ellis,Kansas,20051,8,0 +2020-04-25,Ellis,Kansas,20051,8,0 +2020-04-26,Ellis,Kansas,20051,8,0 +2020-04-27,Ellis,Kansas,20051,8,0 +2020-04-28,Ellis,Kansas,20051,8,0 +2020-04-29,Ellis,Kansas,20051,8,0 +2020-04-30,Ellis,Kansas,20051,8,0 +2020-05-01,Ellis,Kansas,20051,8,0 +2020-05-02,Ellis,Kansas,20051,8,0 +2020-05-03,Ellis,Kansas,20051,8,0 +2020-05-04,Ellis,Kansas,20051,8,0 +2020-05-05,Ellis,Kansas,20051,8,0 +2020-05-06,Ellis,Kansas,20051,8,0 +2020-05-07,Ellis,Kansas,20051,9,0 +2020-05-08,Ellis,Kansas,20051,9,0 +2020-05-09,Ellis,Kansas,20051,9,0 +2020-05-10,Ellis,Kansas,20051,9,0 +2020-05-11,Ellis,Kansas,20051,9,0 +2020-05-12,Ellis,Kansas,20051,9,0 +2020-05-13,Ellis,Kansas,20051,9,0 +2020-05-14,Ellis,Kansas,20051,9,0 +2020-05-15,Ellis,Kansas,20051,9,0 +2020-05-16,Ellis,Kansas,20051,9,0 +2020-05-17,Ellis,Kansas,20051,9,0 +2020-05-18,Ellis,Kansas,20051,9,0 +2020-05-19,Ellis,Kansas,20051,9,0 +2020-05-20,Ellis,Kansas,20051,9,0 +2020-05-21,Ellis,Kansas,20051,9,0 +2020-05-22,Ellis,Kansas,20051,9,0 +2020-05-23,Ellis,Kansas,20051,9,0 +2020-05-24,Ellis,Kansas,20051,9,0 +2020-05-25,Ellis,Kansas,20051,9,0 +2020-05-26,Ellis,Kansas,20051,9,0 +2020-05-27,Ellis,Kansas,20051,9,0 +2020-05-28,Ellis,Kansas,20051,9,0 +2020-05-29,Ellis,Kansas,20051,10,0 +2020-05-30,Ellis,Kansas,20051,10,0 +2020-05-31,Ellis,Kansas,20051,10,0 +2020-06-01,Ellis,Kansas,20051,10,0 +2020-06-02,Ellis,Kansas,20051,10,0 +2020-06-03,Ellis,Kansas,20051,11,0 +2020-06-04,Ellis,Kansas,20051,11,0 +2020-06-05,Ellis,Kansas,20051,12,0 +2020-06-06,Ellis,Kansas,20051,12,0 +2020-06-07,Ellis,Kansas,20051,12,0 +2020-06-08,Ellis,Kansas,20051,12,0 +2020-06-09,Ellis,Kansas,20051,12,0 +2020-06-10,Ellis,Kansas,20051,14,0 +2020-06-11,Ellis,Kansas,20051,14,0 +2020-06-12,Ellis,Kansas,20051,14,0 +2020-06-13,Ellis,Kansas,20051,14,0 +2020-06-14,Ellis,Kansas,20051,14,0 +2020-06-15,Ellis,Kansas,20051,15,0 +2020-06-16,Ellis,Kansas,20051,15,0 +2020-06-17,Ellis,Kansas,20051,15,0 +2020-06-18,Ellis,Kansas,20051,15,0 +2020-06-19,Ellis,Kansas,20051,16,0 +2020-06-20,Ellis,Kansas,20051,16,0 +2020-06-21,Ellis,Kansas,20051,16,0 +2020-06-22,Ellis,Kansas,20051,16,0 +2020-06-23,Ellis,Kansas,20051,16,0 +2020-06-24,Ellis,Kansas,20051,17,0 +2020-06-25,Ellis,Kansas,20051,17,0 +2020-06-26,Ellis,Kansas,20051,19,0 +2020-06-27,Ellis,Kansas,20051,19,0 +2020-06-28,Ellis,Kansas,20051,19,0 +2020-06-29,Ellis,Kansas,20051,21,0 +2020-06-30,Ellis,Kansas,20051,21,0 +2020-07-01,Ellis,Kansas,20051,25,0 +2020-07-02,Ellis,Kansas,20051,25,0 +2020-07-03,Ellis,Kansas,20051,27,0 +2020-07-04,Ellis,Kansas,20051,27,0 +2020-07-05,Ellis,Kansas,20051,27,0 +2020-07-06,Ellis,Kansas,20051,30,0 +2020-07-07,Ellis,Kansas,20051,30,0 +2020-07-08,Ellis,Kansas,20051,35,0 +2020-07-09,Ellis,Kansas,20051,35,0 +2020-05-04,Ellsworth,Kansas,20053,1,0 +2020-05-05,Ellsworth,Kansas,20053,1,0 +2020-05-06,Ellsworth,Kansas,20053,1,0 +2020-05-07,Ellsworth,Kansas,20053,1,0 +2020-05-08,Ellsworth,Kansas,20053,2,0 +2020-05-09,Ellsworth,Kansas,20053,2,0 +2020-05-10,Ellsworth,Kansas,20053,2,0 +2020-05-11,Ellsworth,Kansas,20053,2,0 +2020-05-12,Ellsworth,Kansas,20053,2,0 +2020-05-13,Ellsworth,Kansas,20053,2,0 +2020-05-14,Ellsworth,Kansas,20053,2,0 +2020-05-15,Ellsworth,Kansas,20053,2,0 +2020-05-16,Ellsworth,Kansas,20053,2,0 +2020-05-17,Ellsworth,Kansas,20053,2,0 +2020-05-18,Ellsworth,Kansas,20053,2,0 +2020-05-19,Ellsworth,Kansas,20053,2,0 +2020-05-20,Ellsworth,Kansas,20053,2,0 +2020-05-21,Ellsworth,Kansas,20053,2,0 +2020-05-22,Ellsworth,Kansas,20053,2,0 +2020-05-23,Ellsworth,Kansas,20053,2,0 +2020-05-24,Ellsworth,Kansas,20053,2,0 +2020-05-25,Ellsworth,Kansas,20053,2,0 +2020-05-26,Ellsworth,Kansas,20053,2,0 +2020-05-27,Ellsworth,Kansas,20053,2,0 +2020-05-28,Ellsworth,Kansas,20053,2,0 +2020-05-29,Ellsworth,Kansas,20053,2,0 +2020-05-30,Ellsworth,Kansas,20053,2,0 +2020-05-31,Ellsworth,Kansas,20053,2,0 +2020-06-01,Ellsworth,Kansas,20053,2,0 +2020-06-02,Ellsworth,Kansas,20053,2,0 +2020-06-03,Ellsworth,Kansas,20053,2,0 +2020-06-04,Ellsworth,Kansas,20053,2,0 +2020-06-05,Ellsworth,Kansas,20053,2,0 +2020-06-06,Ellsworth,Kansas,20053,2,0 +2020-06-07,Ellsworth,Kansas,20053,2,0 +2020-06-08,Ellsworth,Kansas,20053,2,0 +2020-06-09,Ellsworth,Kansas,20053,2,0 +2020-06-10,Ellsworth,Kansas,20053,3,0 +2020-06-11,Ellsworth,Kansas,20053,3,0 +2020-06-12,Ellsworth,Kansas,20053,3,0 +2020-06-13,Ellsworth,Kansas,20053,3,0 +2020-06-14,Ellsworth,Kansas,20053,3,0 +2020-06-15,Ellsworth,Kansas,20053,3,0 +2020-06-16,Ellsworth,Kansas,20053,3,0 +2020-06-17,Ellsworth,Kansas,20053,3,0 +2020-06-18,Ellsworth,Kansas,20053,3,0 +2020-06-19,Ellsworth,Kansas,20053,3,0 +2020-06-20,Ellsworth,Kansas,20053,3,0 +2020-06-21,Ellsworth,Kansas,20053,3,0 +2020-06-22,Ellsworth,Kansas,20053,3,0 +2020-06-23,Ellsworth,Kansas,20053,3,0 +2020-06-24,Ellsworth,Kansas,20053,3,0 +2020-06-25,Ellsworth,Kansas,20053,3,0 +2020-06-26,Ellsworth,Kansas,20053,3,0 +2020-06-27,Ellsworth,Kansas,20053,3,0 +2020-06-28,Ellsworth,Kansas,20053,3,0 +2020-06-29,Ellsworth,Kansas,20053,3,0 +2020-06-30,Ellsworth,Kansas,20053,3,0 +2020-07-01,Ellsworth,Kansas,20053,4,0 +2020-07-02,Ellsworth,Kansas,20053,4,0 +2020-07-03,Ellsworth,Kansas,20053,4,0 +2020-07-04,Ellsworth,Kansas,20053,4,0 +2020-07-05,Ellsworth,Kansas,20053,4,0 +2020-07-06,Ellsworth,Kansas,20053,10,0 +2020-07-07,Ellsworth,Kansas,20053,10,0 +2020-07-08,Ellsworth,Kansas,20053,11,0 +2020-07-09,Ellsworth,Kansas,20053,11,0 +2020-03-29,Finney,Kansas,20055,1,0 +2020-03-30,Finney,Kansas,20055,1,0 +2020-03-31,Finney,Kansas,20055,1,0 +2020-04-01,Finney,Kansas,20055,1,0 +2020-04-02,Finney,Kansas,20055,3,0 +2020-04-03,Finney,Kansas,20055,4,0 +2020-04-04,Finney,Kansas,20055,9,0 +2020-04-05,Finney,Kansas,20055,10,0 +2020-04-06,Finney,Kansas,20055,10,0 +2020-04-07,Finney,Kansas,20055,10,0 +2020-04-08,Finney,Kansas,20055,11,0 +2020-04-09,Finney,Kansas,20055,12,0 +2020-04-10,Finney,Kansas,20055,12,0 +2020-04-11,Finney,Kansas,20055,15,0 +2020-04-12,Finney,Kansas,20055,15,0 +2020-04-13,Finney,Kansas,20055,16,0 +2020-04-14,Finney,Kansas,20055,17,1 +2020-04-15,Finney,Kansas,20055,17,1 +2020-04-16,Finney,Kansas,20055,19,1 +2020-04-17,Finney,Kansas,20055,25,1 +2020-04-18,Finney,Kansas,20055,35,1 +2020-04-19,Finney,Kansas,20055,35,1 +2020-04-20,Finney,Kansas,20055,41,1 +2020-04-21,Finney,Kansas,20055,41,1 +2020-04-22,Finney,Kansas,20055,56,1 +2020-04-23,Finney,Kansas,20055,87,1 +2020-04-24,Finney,Kansas,20055,107,1 +2020-04-25,Finney,Kansas,20055,139,1 +2020-04-26,Finney,Kansas,20055,140,1 +2020-04-27,Finney,Kansas,20055,202,1 +2020-04-28,Finney,Kansas,20055,248,1 +2020-04-29,Finney,Kansas,20055,270,1 +2020-04-30,Finney,Kansas,20055,317,1 +2020-05-01,Finney,Kansas,20055,386,1 +2020-05-02,Finney,Kansas,20055,503,3 +2020-05-03,Finney,Kansas,20055,550,3 +2020-05-04,Finney,Kansas,20055,586,3 +2020-05-05,Finney,Kansas,20055,630,3 +2020-05-06,Finney,Kansas,20055,630,3 +2020-05-07,Finney,Kansas,20055,630,3 +2020-05-08,Finney,Kansas,20055,861,4 +2020-05-09,Finney,Kansas,20055,902,4 +2020-05-10,Finney,Kansas,20055,902,4 +2020-05-11,Finney,Kansas,20055,905,4 +2020-05-12,Finney,Kansas,20055,1031,4 +2020-05-13,Finney,Kansas,20055,1031,4 +2020-05-14,Finney,Kansas,20055,1101,5 +2020-05-15,Finney,Kansas,20055,1234,5 +2020-05-16,Finney,Kansas,20055,1234,5 +2020-05-17,Finney,Kansas,20055,1234,5 +2020-05-18,Finney,Kansas,20055,1316,6 +2020-05-19,Finney,Kansas,20055,1331,6 +2020-05-20,Finney,Kansas,20055,1363,6 +2020-05-21,Finney,Kansas,20055,1398,6 +2020-05-22,Finney,Kansas,20055,1418,6 +2020-05-23,Finney,Kansas,20055,1418,6 +2020-05-24,Finney,Kansas,20055,1418,6 +2020-05-25,Finney,Kansas,20055,1418,6 +2020-05-26,Finney,Kansas,20055,1451,8 +2020-05-27,Finney,Kansas,20055,1458,8 +2020-05-28,Finney,Kansas,20055,1466,8 +2020-05-29,Finney,Kansas,20055,1481,8 +2020-05-30,Finney,Kansas,20055,1481,8 +2020-05-31,Finney,Kansas,20055,1481,8 +2020-06-01,Finney,Kansas,20055,1502,8 +2020-06-02,Finney,Kansas,20055,1504,10 +2020-06-03,Finney,Kansas,20055,1518,10 +2020-06-04,Finney,Kansas,20055,1522,10 +2020-06-05,Finney,Kansas,20055,1526,10 +2020-06-06,Finney,Kansas,20055,1526,10 +2020-06-07,Finney,Kansas,20055,1526,10 +2020-06-08,Finney,Kansas,20055,1536,10 +2020-06-09,Finney,Kansas,20055,1536,10 +2020-06-10,Finney,Kansas,20055,1537,10 +2020-06-11,Finney,Kansas,20055,1537,10 +2020-06-12,Finney,Kansas,20055,1538,10 +2020-06-13,Finney,Kansas,20055,1538,10 +2020-06-14,Finney,Kansas,20055,1538,10 +2020-06-15,Finney,Kansas,20055,1540,10 +2020-06-16,Finney,Kansas,20055,1543,10 +2020-06-17,Finney,Kansas,20055,1545,10 +2020-06-18,Finney,Kansas,20055,1545,10 +2020-06-19,Finney,Kansas,20055,1546,10 +2020-06-20,Finney,Kansas,20055,1546,10 +2020-06-21,Finney,Kansas,20055,1546,10 +2020-06-22,Finney,Kansas,20055,1554,10 +2020-06-23,Finney,Kansas,20055,1558,10 +2020-06-24,Finney,Kansas,20055,1558,10 +2020-06-25,Finney,Kansas,20055,1562,10 +2020-06-26,Finney,Kansas,20055,1563,10 +2020-06-27,Finney,Kansas,20055,1563,10 +2020-06-28,Finney,Kansas,20055,1563,10 +2020-06-29,Finney,Kansas,20055,1563,10 +2020-06-30,Finney,Kansas,20055,1570,10 +2020-07-01,Finney,Kansas,20055,1574,10 +2020-07-02,Finney,Kansas,20055,1575,10 +2020-07-03,Finney,Kansas,20055,1575,10 +2020-07-04,Finney,Kansas,20055,1575,10 +2020-07-05,Finney,Kansas,20055,1575,10 +2020-07-06,Finney,Kansas,20055,1584,10 +2020-07-07,Finney,Kansas,20055,1584,10 +2020-07-08,Finney,Kansas,20055,1586,10 +2020-07-09,Finney,Kansas,20055,1595,10 +2020-03-17,Ford,Kansas,20057,1,0 +2020-03-18,Ford,Kansas,20057,1,0 +2020-03-19,Ford,Kansas,20057,1,0 +2020-03-20,Ford,Kansas,20057,1,0 +2020-03-21,Ford,Kansas,20057,1,0 +2020-03-22,Ford,Kansas,20057,1,0 +2020-03-23,Ford,Kansas,20057,1,0 +2020-03-24,Ford,Kansas,20057,1,0 +2020-03-25,Ford,Kansas,20057,1,0 +2020-03-26,Ford,Kansas,20057,1,0 +2020-03-27,Ford,Kansas,20057,1,0 +2020-03-28,Ford,Kansas,20057,1,0 +2020-03-29,Ford,Kansas,20057,1,0 +2020-03-30,Ford,Kansas,20057,1,0 +2020-03-31,Ford,Kansas,20057,1,0 +2020-04-01,Ford,Kansas,20057,1,0 +2020-04-02,Ford,Kansas,20057,1,0 +2020-04-03,Ford,Kansas,20057,2,0 +2020-04-04,Ford,Kansas,20057,2,0 +2020-04-05,Ford,Kansas,20057,1,0 +2020-04-06,Ford,Kansas,20057,1,0 +2020-04-07,Ford,Kansas,20057,2,0 +2020-04-08,Ford,Kansas,20057,2,0 +2020-04-09,Ford,Kansas,20057,2,0 +2020-04-10,Ford,Kansas,20057,3,0 +2020-04-11,Ford,Kansas,20057,5,0 +2020-04-12,Ford,Kansas,20057,13,0 +2020-04-13,Ford,Kansas,20057,16,0 +2020-04-14,Ford,Kansas,20057,18,0 +2020-04-15,Ford,Kansas,20057,32,0 +2020-04-16,Ford,Kansas,20057,51,0 +2020-04-17,Ford,Kansas,20057,85,0 +2020-04-18,Ford,Kansas,20057,107,0 +2020-04-19,Ford,Kansas,20057,127,0 +2020-04-20,Ford,Kansas,20057,181,0 +2020-04-21,Ford,Kansas,20057,188,0 +2020-04-22,Ford,Kansas,20057,209,0 +2020-04-23,Ford,Kansas,20057,289,0 +2020-04-24,Ford,Kansas,20057,350,0 +2020-04-25,Ford,Kansas,20057,420,0 +2020-04-26,Ford,Kansas,20057,459,0 +2020-04-27,Ford,Kansas,20057,516,0 +2020-04-28,Ford,Kansas,20057,544,0 +2020-04-29,Ford,Kansas,20057,601,0 +2020-04-30,Ford,Kansas,20057,675,0 +2020-05-01,Ford,Kansas,20057,702,0 +2020-05-02,Ford,Kansas,20057,770,0 +2020-05-03,Ford,Kansas,20057,815,0 +2020-05-04,Ford,Kansas,20057,832,2 +2020-05-05,Ford,Kansas,20057,869,2 +2020-05-06,Ford,Kansas,20057,880,2 +2020-05-07,Ford,Kansas,20057,933,2 +2020-05-08,Ford,Kansas,20057,1028,2 +2020-05-09,Ford,Kansas,20057,1064,2 +2020-05-10,Ford,Kansas,20057,1102,2 +2020-05-11,Ford,Kansas,20057,1135,2 +2020-05-12,Ford,Kansas,20057,1135,2 +2020-05-13,Ford,Kansas,20057,1233,2 +2020-05-14,Ford,Kansas,20057,1233,2 +2020-05-15,Ford,Kansas,20057,1299,2 +2020-05-16,Ford,Kansas,20057,1299,2 +2020-05-17,Ford,Kansas,20057,1299,2 +2020-05-18,Ford,Kansas,20057,1403,2 +2020-05-19,Ford,Kansas,20057,1404,2 +2020-05-20,Ford,Kansas,20057,1440,2 +2020-05-21,Ford,Kansas,20057,1440,2 +2020-05-22,Ford,Kansas,20057,1558,2 +2020-05-23,Ford,Kansas,20057,1558,2 +2020-05-24,Ford,Kansas,20057,1558,2 +2020-05-25,Ford,Kansas,20057,1607,2 +2020-05-26,Ford,Kansas,20057,1607,2 +2020-05-27,Ford,Kansas,20057,1628,2 +2020-05-28,Ford,Kansas,20057,1628,2 +2020-05-29,Ford,Kansas,20057,1738,2 +2020-05-30,Ford,Kansas,20057,1738,2 +2020-05-31,Ford,Kansas,20057,1738,2 +2020-06-01,Ford,Kansas,20057,1790,2 +2020-06-02,Ford,Kansas,20057,1790,10 +2020-06-03,Ford,Kansas,20057,1804,10 +2020-06-04,Ford,Kansas,20057,1804,10 +2020-06-05,Ford,Kansas,20057,1823,10 +2020-06-06,Ford,Kansas,20057,1823,10 +2020-06-07,Ford,Kansas,20057,1823,10 +2020-06-08,Ford,Kansas,20057,1856,10 +2020-06-09,Ford,Kansas,20057,1856,10 +2020-06-10,Ford,Kansas,20057,1852,10 +2020-06-11,Ford,Kansas,20057,1852,10 +2020-06-12,Ford,Kansas,20057,1857,10 +2020-06-13,Ford,Kansas,20057,1857,10 +2020-06-14,Ford,Kansas,20057,1857,10 +2020-06-15,Ford,Kansas,20057,1882,10 +2020-06-16,Ford,Kansas,20057,1882,10 +2020-06-17,Ford,Kansas,20057,1897,10 +2020-06-18,Ford,Kansas,20057,1897,10 +2020-06-19,Ford,Kansas,20057,1916,10 +2020-06-20,Ford,Kansas,20057,1916,10 +2020-06-21,Ford,Kansas,20057,1916,10 +2020-06-22,Ford,Kansas,20057,1926,10 +2020-06-23,Ford,Kansas,20057,1926,10 +2020-06-24,Ford,Kansas,20057,1963,10 +2020-06-25,Ford,Kansas,20057,1963,10 +2020-06-26,Ford,Kansas,20057,1983,10 +2020-06-27,Ford,Kansas,20057,1983,10 +2020-06-28,Ford,Kansas,20057,1983,10 +2020-06-29,Ford,Kansas,20057,2006,10 +2020-06-30,Ford,Kansas,20057,2006,10 +2020-07-01,Ford,Kansas,20057,2008,10 +2020-07-02,Ford,Kansas,20057,2008,10 +2020-07-03,Ford,Kansas,20057,2015,10 +2020-07-04,Ford,Kansas,20057,2015,10 +2020-07-05,Ford,Kansas,20057,2015,10 +2020-07-06,Ford,Kansas,20057,2016,10 +2020-07-07,Ford,Kansas,20057,2016,10 +2020-07-08,Ford,Kansas,20057,2021,10 +2020-07-09,Ford,Kansas,20057,2021,10 +2020-03-14,Franklin,Kansas,20059,1,0 +2020-03-15,Franklin,Kansas,20059,1,0 +2020-03-16,Franklin,Kansas,20059,1,0 +2020-03-17,Franklin,Kansas,20059,1,0 +2020-03-18,Franklin,Kansas,20059,1,0 +2020-03-19,Franklin,Kansas,20059,1,0 +2020-03-20,Franklin,Kansas,20059,1,0 +2020-03-21,Franklin,Kansas,20059,1,0 +2020-03-22,Franklin,Kansas,20059,1,0 +2020-03-23,Franklin,Kansas,20059,1,0 +2020-03-24,Franklin,Kansas,20059,1,0 +2020-03-25,Franklin,Kansas,20059,1,0 +2020-03-26,Franklin,Kansas,20059,1,0 +2020-03-27,Franklin,Kansas,20059,2,0 +2020-03-28,Franklin,Kansas,20059,6,0 +2020-03-29,Franklin,Kansas,20059,6,0 +2020-03-30,Franklin,Kansas,20059,6,0 +2020-03-31,Franklin,Kansas,20059,7,0 +2020-04-01,Franklin,Kansas,20059,7,0 +2020-04-02,Franklin,Kansas,20059,8,0 +2020-04-03,Franklin,Kansas,20059,9,0 +2020-04-04,Franklin,Kansas,20059,9,0 +2020-04-05,Franklin,Kansas,20059,9,0 +2020-04-06,Franklin,Kansas,20059,10,0 +2020-04-07,Franklin,Kansas,20059,10,0 +2020-04-08,Franklin,Kansas,20059,10,0 +2020-04-09,Franklin,Kansas,20059,10,0 +2020-04-10,Franklin,Kansas,20059,10,0 +2020-04-11,Franklin,Kansas,20059,12,0 +2020-04-12,Franklin,Kansas,20059,12,0 +2020-04-13,Franklin,Kansas,20059,12,0 +2020-04-14,Franklin,Kansas,20059,12,0 +2020-04-15,Franklin,Kansas,20059,12,0 +2020-04-16,Franklin,Kansas,20059,12,0 +2020-04-17,Franklin,Kansas,20059,12,0 +2020-04-18,Franklin,Kansas,20059,12,0 +2020-04-19,Franklin,Kansas,20059,12,0 +2020-04-20,Franklin,Kansas,20059,12,0 +2020-04-21,Franklin,Kansas,20059,12,0 +2020-04-22,Franklin,Kansas,20059,12,0 +2020-04-23,Franklin,Kansas,20059,12,0 +2020-04-24,Franklin,Kansas,20059,12,0 +2020-04-25,Franklin,Kansas,20059,12,0 +2020-04-26,Franklin,Kansas,20059,12,0 +2020-04-27,Franklin,Kansas,20059,12,0 +2020-04-28,Franklin,Kansas,20059,13,0 +2020-04-29,Franklin,Kansas,20059,13,0 +2020-04-30,Franklin,Kansas,20059,14,0 +2020-05-01,Franklin,Kansas,20059,14,0 +2020-05-02,Franklin,Kansas,20059,16,0 +2020-05-03,Franklin,Kansas,20059,17,0 +2020-05-04,Franklin,Kansas,20059,19,0 +2020-05-05,Franklin,Kansas,20059,19,0 +2020-05-06,Franklin,Kansas,20059,20,0 +2020-05-07,Franklin,Kansas,20059,20,0 +2020-05-08,Franklin,Kansas,20059,20,0 +2020-05-09,Franklin,Kansas,20059,20,0 +2020-05-10,Franklin,Kansas,20059,23,0 +2020-05-11,Franklin,Kansas,20059,26,0 +2020-05-12,Franklin,Kansas,20059,29,0 +2020-05-13,Franklin,Kansas,20059,30,0 +2020-05-14,Franklin,Kansas,20059,30,0 +2020-05-15,Franklin,Kansas,20059,32,0 +2020-05-16,Franklin,Kansas,20059,32,0 +2020-05-17,Franklin,Kansas,20059,32,0 +2020-05-18,Franklin,Kansas,20059,32,0 +2020-05-19,Franklin,Kansas,20059,32,0 +2020-05-20,Franklin,Kansas,20059,32,0 +2020-05-21,Franklin,Kansas,20059,32,0 +2020-05-22,Franklin,Kansas,20059,32,0 +2020-05-23,Franklin,Kansas,20059,32,0 +2020-05-24,Franklin,Kansas,20059,32,0 +2020-05-25,Franklin,Kansas,20059,33,0 +2020-05-26,Franklin,Kansas,20059,34,0 +2020-05-27,Franklin,Kansas,20059,34,0 +2020-05-28,Franklin,Kansas,20059,34,0 +2020-05-29,Franklin,Kansas,20059,34,0 +2020-05-30,Franklin,Kansas,20059,34,0 +2020-05-31,Franklin,Kansas,20059,35,0 +2020-06-01,Franklin,Kansas,20059,39,0 +2020-06-02,Franklin,Kansas,20059,39,0 +2020-06-03,Franklin,Kansas,20059,35,0 +2020-06-04,Franklin,Kansas,20059,35,0 +2020-06-05,Franklin,Kansas,20059,35,0 +2020-06-06,Franklin,Kansas,20059,35,0 +2020-06-07,Franklin,Kansas,20059,35,0 +2020-06-08,Franklin,Kansas,20059,38,0 +2020-06-09,Franklin,Kansas,20059,38,0 +2020-06-10,Franklin,Kansas,20059,49,0 +2020-06-11,Franklin,Kansas,20059,49,0 +2020-06-12,Franklin,Kansas,20059,49,0 +2020-06-13,Franklin,Kansas,20059,49,0 +2020-06-14,Franklin,Kansas,20059,49,0 +2020-06-15,Franklin,Kansas,20059,51,0 +2020-06-16,Franklin,Kansas,20059,51,0 +2020-06-17,Franklin,Kansas,20059,53,0 +2020-06-18,Franklin,Kansas,20059,53,0 +2020-06-19,Franklin,Kansas,20059,57,0 +2020-06-20,Franklin,Kansas,20059,57,0 +2020-06-21,Franklin,Kansas,20059,57,0 +2020-06-22,Franklin,Kansas,20059,65,0 +2020-06-23,Franklin,Kansas,20059,65,0 +2020-06-24,Franklin,Kansas,20059,66,0 +2020-06-25,Franklin,Kansas,20059,66,0 +2020-06-26,Franklin,Kansas,20059,67,0 +2020-06-27,Franklin,Kansas,20059,67,0 +2020-06-28,Franklin,Kansas,20059,67,0 +2020-06-29,Franklin,Kansas,20059,71,0 +2020-06-30,Franklin,Kansas,20059,71,0 +2020-07-01,Franklin,Kansas,20059,72,1 +2020-07-02,Franklin,Kansas,20059,77,1 +2020-07-03,Franklin,Kansas,20059,78,1 +2020-07-04,Franklin,Kansas,20059,78,1 +2020-07-05,Franklin,Kansas,20059,78,1 +2020-07-06,Franklin,Kansas,20059,81,1 +2020-07-07,Franklin,Kansas,20059,81,1 +2020-07-08,Franklin,Kansas,20059,90,1 +2020-07-09,Franklin,Kansas,20059,90,1 +2020-04-05,Geary,Kansas,20061,2,0 +2020-04-06,Geary,Kansas,20061,2,0 +2020-04-07,Geary,Kansas,20061,4,0 +2020-04-08,Geary,Kansas,20061,4,0 +2020-04-09,Geary,Kansas,20061,5,0 +2020-04-10,Geary,Kansas,20061,6,0 +2020-04-11,Geary,Kansas,20061,6,0 +2020-04-12,Geary,Kansas,20061,6,0 +2020-04-13,Geary,Kansas,20061,8,0 +2020-04-14,Geary,Kansas,20061,10,0 +2020-04-15,Geary,Kansas,20061,10,0 +2020-04-16,Geary,Kansas,20061,10,0 +2020-04-17,Geary,Kansas,20061,10,0 +2020-04-18,Geary,Kansas,20061,10,0 +2020-04-19,Geary,Kansas,20061,10,0 +2020-04-20,Geary,Kansas,20061,10,0 +2020-04-21,Geary,Kansas,20061,10,0 +2020-04-22,Geary,Kansas,20061,10,0 +2020-04-23,Geary,Kansas,20061,10,0 +2020-04-24,Geary,Kansas,20061,10,0 +2020-04-25,Geary,Kansas,20061,11,0 +2020-04-26,Geary,Kansas,20061,11,0 +2020-04-27,Geary,Kansas,20061,11,0 +2020-04-28,Geary,Kansas,20061,11,0 +2020-04-29,Geary,Kansas,20061,12,0 +2020-04-30,Geary,Kansas,20061,12,0 +2020-05-01,Geary,Kansas,20061,14,0 +2020-05-02,Geary,Kansas,20061,13,0 +2020-05-03,Geary,Kansas,20061,13,0 +2020-05-04,Geary,Kansas,20061,13,0 +2020-05-05,Geary,Kansas,20061,13,0 +2020-05-06,Geary,Kansas,20061,14,0 +2020-05-07,Geary,Kansas,20061,15,0 +2020-05-08,Geary,Kansas,20061,16,0 +2020-05-09,Geary,Kansas,20061,16,0 +2020-05-10,Geary,Kansas,20061,16,0 +2020-05-11,Geary,Kansas,20061,16,0 +2020-05-12,Geary,Kansas,20061,16,0 +2020-05-13,Geary,Kansas,20061,16,0 +2020-05-14,Geary,Kansas,20061,16,0 +2020-05-15,Geary,Kansas,20061,16,0 +2020-05-16,Geary,Kansas,20061,16,0 +2020-05-17,Geary,Kansas,20061,16,0 +2020-05-18,Geary,Kansas,20061,16,0 +2020-05-19,Geary,Kansas,20061,16,0 +2020-05-20,Geary,Kansas,20061,16,0 +2020-05-21,Geary,Kansas,20061,16,0 +2020-05-22,Geary,Kansas,20061,16,0 +2020-05-23,Geary,Kansas,20061,16,0 +2020-05-24,Geary,Kansas,20061,16,0 +2020-05-25,Geary,Kansas,20061,16,0 +2020-05-26,Geary,Kansas,20061,16,0 +2020-05-27,Geary,Kansas,20061,16,0 +2020-05-28,Geary,Kansas,20061,16,0 +2020-05-29,Geary,Kansas,20061,17,0 +2020-05-30,Geary,Kansas,20061,17,0 +2020-05-31,Geary,Kansas,20061,17,0 +2020-06-01,Geary,Kansas,20061,18,0 +2020-06-02,Geary,Kansas,20061,22,1 +2020-06-03,Geary,Kansas,20061,22,1 +2020-06-04,Geary,Kansas,20061,22,1 +2020-06-05,Geary,Kansas,20061,22,1 +2020-06-06,Geary,Kansas,20061,22,1 +2020-06-07,Geary,Kansas,20061,26,1 +2020-06-08,Geary,Kansas,20061,26,1 +2020-06-09,Geary,Kansas,20061,26,1 +2020-06-10,Geary,Kansas,20061,26,1 +2020-06-11,Geary,Kansas,20061,26,1 +2020-06-12,Geary,Kansas,20061,26,1 +2020-06-13,Geary,Kansas,20061,26,1 +2020-06-14,Geary,Kansas,20061,29,1 +2020-06-15,Geary,Kansas,20061,29,1 +2020-06-16,Geary,Kansas,20061,29,1 +2020-06-17,Geary,Kansas,20061,30,1 +2020-06-18,Geary,Kansas,20061,30,1 +2020-06-19,Geary,Kansas,20061,31,1 +2020-06-20,Geary,Kansas,20061,31,1 +2020-06-21,Geary,Kansas,20061,31,1 +2020-06-22,Geary,Kansas,20061,32,1 +2020-06-23,Geary,Kansas,20061,32,1 +2020-06-24,Geary,Kansas,20061,34,1 +2020-06-25,Geary,Kansas,20061,34,1 +2020-06-26,Geary,Kansas,20061,43,1 +2020-06-27,Geary,Kansas,20061,43,1 +2020-06-28,Geary,Kansas,20061,43,1 +2020-06-29,Geary,Kansas,20061,57,1 +2020-06-30,Geary,Kansas,20061,57,1 +2020-07-01,Geary,Kansas,20061,70,1 +2020-07-02,Geary,Kansas,20061,70,1 +2020-07-03,Geary,Kansas,20061,85,1 +2020-07-04,Geary,Kansas,20061,85,1 +2020-07-05,Geary,Kansas,20061,85,1 +2020-07-06,Geary,Kansas,20061,95,1 +2020-07-07,Geary,Kansas,20061,95,1 +2020-07-08,Geary,Kansas,20061,101,1 +2020-07-09,Geary,Kansas,20061,101,1 +2020-03-27,Gove,Kansas,20063,1,0 +2020-03-28,Gove,Kansas,20063,1,0 +2020-03-29,Gove,Kansas,20063,1,0 +2020-03-30,Gove,Kansas,20063,1,0 +2020-03-31,Gove,Kansas,20063,1,0 +2020-04-01,Gove,Kansas,20063,1,0 +2020-04-02,Gove,Kansas,20063,1,0 +2020-04-03,Gove,Kansas,20063,1,0 +2020-04-04,Gove,Kansas,20063,1,0 +2020-04-05,Gove,Kansas,20063,1,0 +2020-04-06,Gove,Kansas,20063,1,0 +2020-04-07,Gove,Kansas,20063,1,0 +2020-04-08,Gove,Kansas,20063,1,0 +2020-04-09,Gove,Kansas,20063,1,0 +2020-04-10,Gove,Kansas,20063,1,0 +2020-04-11,Gove,Kansas,20063,1,0 +2020-04-12,Gove,Kansas,20063,1,0 +2020-04-13,Gove,Kansas,20063,1,0 +2020-04-14,Gove,Kansas,20063,1,0 +2020-04-15,Gove,Kansas,20063,1,0 +2020-04-16,Gove,Kansas,20063,1,0 +2020-04-17,Gove,Kansas,20063,1,0 +2020-04-18,Gove,Kansas,20063,1,0 +2020-04-19,Gove,Kansas,20063,1,0 +2020-04-20,Gove,Kansas,20063,1,0 +2020-04-21,Gove,Kansas,20063,1,0 +2020-04-22,Gove,Kansas,20063,1,0 +2020-04-23,Gove,Kansas,20063,1,0 +2020-04-24,Gove,Kansas,20063,1,0 +2020-04-25,Gove,Kansas,20063,1,0 +2020-04-26,Gove,Kansas,20063,1,0 +2020-04-27,Gove,Kansas,20063,1,0 +2020-04-28,Gove,Kansas,20063,1,0 +2020-04-29,Gove,Kansas,20063,1,0 +2020-04-30,Gove,Kansas,20063,1,0 +2020-05-01,Gove,Kansas,20063,1,0 +2020-05-02,Gove,Kansas,20063,1,0 +2020-05-03,Gove,Kansas,20063,1,0 +2020-05-04,Gove,Kansas,20063,1,0 +2020-05-05,Gove,Kansas,20063,1,0 +2020-05-06,Gove,Kansas,20063,1,0 +2020-05-07,Gove,Kansas,20063,1,0 +2020-05-08,Gove,Kansas,20063,1,0 +2020-05-09,Gove,Kansas,20063,1,0 +2020-05-10,Gove,Kansas,20063,1,0 +2020-05-11,Gove,Kansas,20063,1,0 +2020-05-12,Gove,Kansas,20063,1,0 +2020-05-13,Gove,Kansas,20063,1,0 +2020-05-14,Gove,Kansas,20063,1,0 +2020-05-15,Gove,Kansas,20063,1,0 +2020-05-16,Gove,Kansas,20063,1,0 +2020-05-17,Gove,Kansas,20063,1,0 +2020-05-18,Gove,Kansas,20063,1,0 +2020-05-19,Gove,Kansas,20063,1,0 +2020-05-20,Gove,Kansas,20063,1,0 +2020-05-21,Gove,Kansas,20063,1,0 +2020-05-22,Gove,Kansas,20063,1,0 +2020-05-23,Gove,Kansas,20063,1,0 +2020-05-24,Gove,Kansas,20063,1,0 +2020-05-25,Gove,Kansas,20063,1,0 +2020-05-26,Gove,Kansas,20063,1,0 +2020-05-27,Gove,Kansas,20063,1,0 +2020-05-28,Gove,Kansas,20063,1,0 +2020-05-29,Gove,Kansas,20063,1,0 +2020-05-30,Gove,Kansas,20063,1,0 +2020-05-31,Gove,Kansas,20063,1,0 +2020-06-01,Gove,Kansas,20063,1,0 +2020-06-02,Gove,Kansas,20063,1,0 +2020-06-03,Gove,Kansas,20063,1,0 +2020-06-04,Gove,Kansas,20063,1,0 +2020-06-05,Gove,Kansas,20063,1,0 +2020-06-06,Gove,Kansas,20063,1,0 +2020-06-07,Gove,Kansas,20063,1,0 +2020-06-08,Gove,Kansas,20063,1,0 +2020-06-09,Gove,Kansas,20063,1,0 +2020-06-10,Gove,Kansas,20063,1,0 +2020-06-11,Gove,Kansas,20063,1,0 +2020-06-12,Gove,Kansas,20063,1,0 +2020-06-13,Gove,Kansas,20063,1,0 +2020-06-14,Gove,Kansas,20063,1,0 +2020-06-15,Gove,Kansas,20063,1,0 +2020-06-16,Gove,Kansas,20063,1,0 +2020-06-17,Gove,Kansas,20063,1,0 +2020-06-18,Gove,Kansas,20063,1,0 +2020-06-19,Gove,Kansas,20063,1,0 +2020-06-20,Gove,Kansas,20063,1,0 +2020-06-21,Gove,Kansas,20063,1,0 +2020-06-22,Gove,Kansas,20063,1,0 +2020-06-23,Gove,Kansas,20063,1,0 +2020-06-24,Gove,Kansas,20063,1,0 +2020-06-25,Gove,Kansas,20063,1,0 +2020-06-26,Gove,Kansas,20063,1,0 +2020-06-27,Gove,Kansas,20063,1,0 +2020-06-28,Gove,Kansas,20063,1,0 +2020-06-29,Gove,Kansas,20063,1,0 +2020-06-30,Gove,Kansas,20063,1,0 +2020-07-01,Gove,Kansas,20063,1,0 +2020-07-02,Gove,Kansas,20063,1,0 +2020-07-03,Gove,Kansas,20063,2,0 +2020-07-04,Gove,Kansas,20063,2,0 +2020-07-05,Gove,Kansas,20063,2,0 +2020-07-06,Gove,Kansas,20063,2,0 +2020-07-07,Gove,Kansas,20063,2,0 +2020-07-08,Gove,Kansas,20063,2,0 +2020-07-09,Gove,Kansas,20063,2,0 +2020-07-06,Graham,Kansas,20065,2,0 +2020-07-07,Graham,Kansas,20065,2,0 +2020-07-08,Graham,Kansas,20065,3,0 +2020-07-09,Graham,Kansas,20065,3,0 +2020-04-24,Grant,Kansas,20067,1,0 +2020-04-25,Grant,Kansas,20067,1,0 +2020-04-26,Grant,Kansas,20067,1,0 +2020-04-27,Grant,Kansas,20067,1,0 +2020-04-28,Grant,Kansas,20067,1,0 +2020-04-29,Grant,Kansas,20067,2,0 +2020-04-30,Grant,Kansas,20067,4,0 +2020-05-01,Grant,Kansas,20067,5,0 +2020-05-02,Grant,Kansas,20067,5,0 +2020-05-03,Grant,Kansas,20067,7,0 +2020-05-04,Grant,Kansas,20067,7,0 +2020-05-05,Grant,Kansas,20067,7,0 +2020-05-06,Grant,Kansas,20067,7,0 +2020-05-07,Grant,Kansas,20067,8,0 +2020-05-08,Grant,Kansas,20067,11,0 +2020-05-09,Grant,Kansas,20067,11,0 +2020-05-10,Grant,Kansas,20067,11,0 +2020-05-11,Grant,Kansas,20067,11,0 +2020-05-12,Grant,Kansas,20067,11,0 +2020-05-13,Grant,Kansas,20067,12,0 +2020-05-14,Grant,Kansas,20067,12,0 +2020-05-15,Grant,Kansas,20067,12,0 +2020-05-16,Grant,Kansas,20067,14,0 +2020-05-17,Grant,Kansas,20067,14,0 +2020-05-18,Grant,Kansas,20067,14,0 +2020-05-19,Grant,Kansas,20067,17,0 +2020-05-20,Grant,Kansas,20067,17,0 +2020-05-21,Grant,Kansas,20067,18,0 +2020-05-22,Grant,Kansas,20067,18,0 +2020-05-23,Grant,Kansas,20067,18,0 +2020-05-24,Grant,Kansas,20067,18,0 +2020-05-25,Grant,Kansas,20067,18,0 +2020-05-26,Grant,Kansas,20067,18,0 +2020-05-27,Grant,Kansas,20067,18,0 +2020-05-28,Grant,Kansas,20067,18,0 +2020-05-29,Grant,Kansas,20067,18,0 +2020-05-30,Grant,Kansas,20067,18,0 +2020-05-31,Grant,Kansas,20067,18,0 +2020-06-01,Grant,Kansas,20067,18,0 +2020-06-02,Grant,Kansas,20067,18,0 +2020-06-03,Grant,Kansas,20067,18,0 +2020-06-04,Grant,Kansas,20067,18,1 +2020-06-05,Grant,Kansas,20067,18,1 +2020-06-06,Grant,Kansas,20067,18,1 +2020-06-07,Grant,Kansas,20067,18,1 +2020-06-08,Grant,Kansas,20067,18,1 +2020-06-09,Grant,Kansas,20067,18,1 +2020-06-10,Grant,Kansas,20067,18,1 +2020-06-11,Grant,Kansas,20067,18,1 +2020-06-12,Grant,Kansas,20067,18,1 +2020-06-13,Grant,Kansas,20067,18,1 +2020-06-14,Grant,Kansas,20067,18,1 +2020-06-15,Grant,Kansas,20067,18,1 +2020-06-16,Grant,Kansas,20067,18,1 +2020-06-17,Grant,Kansas,20067,18,1 +2020-06-18,Grant,Kansas,20067,22,1 +2020-06-19,Grant,Kansas,20067,22,1 +2020-06-20,Grant,Kansas,20067,23,1 +2020-06-21,Grant,Kansas,20067,23,1 +2020-06-22,Grant,Kansas,20067,24,1 +2020-06-23,Grant,Kansas,20067,24,1 +2020-06-24,Grant,Kansas,20067,37,1 +2020-06-25,Grant,Kansas,20067,37,1 +2020-06-26,Grant,Kansas,20067,40,1 +2020-06-27,Grant,Kansas,20067,40,1 +2020-06-28,Grant,Kansas,20067,40,1 +2020-06-29,Grant,Kansas,20067,46,1 +2020-06-30,Grant,Kansas,20067,46,1 +2020-07-01,Grant,Kansas,20067,48,1 +2020-07-02,Grant,Kansas,20067,51,1 +2020-07-03,Grant,Kansas,20067,51,1 +2020-07-04,Grant,Kansas,20067,53,1 +2020-07-05,Grant,Kansas,20067,53,1 +2020-07-06,Grant,Kansas,20067,53,1 +2020-07-07,Grant,Kansas,20067,55,1 +2020-07-08,Grant,Kansas,20067,57,2 +2020-07-09,Grant,Kansas,20067,57,2 +2020-04-23,Gray,Kansas,20069,1,0 +2020-04-24,Gray,Kansas,20069,2,0 +2020-04-25,Gray,Kansas,20069,2,0 +2020-04-26,Gray,Kansas,20069,2,0 +2020-04-27,Gray,Kansas,20069,3,0 +2020-04-28,Gray,Kansas,20069,4,0 +2020-04-29,Gray,Kansas,20069,4,0 +2020-04-30,Gray,Kansas,20069,4,0 +2020-05-01,Gray,Kansas,20069,5,0 +2020-05-02,Gray,Kansas,20069,5,0 +2020-05-03,Gray,Kansas,20069,5,0 +2020-05-04,Gray,Kansas,20069,5,0 +2020-05-05,Gray,Kansas,20069,6,0 +2020-05-06,Gray,Kansas,20069,6,0 +2020-05-07,Gray,Kansas,20069,6,0 +2020-05-08,Gray,Kansas,20069,6,0 +2020-05-09,Gray,Kansas,20069,7,0 +2020-05-10,Gray,Kansas,20069,7,0 +2020-05-11,Gray,Kansas,20069,8,0 +2020-05-12,Gray,Kansas,20069,8,0 +2020-05-13,Gray,Kansas,20069,9,0 +2020-05-14,Gray,Kansas,20069,9,0 +2020-05-15,Gray,Kansas,20069,12,0 +2020-05-16,Gray,Kansas,20069,12,0 +2020-05-17,Gray,Kansas,20069,12,0 +2020-05-18,Gray,Kansas,20069,14,0 +2020-05-19,Gray,Kansas,20069,14,0 +2020-05-20,Gray,Kansas,20069,16,0 +2020-05-21,Gray,Kansas,20069,16,0 +2020-05-22,Gray,Kansas,20069,21,0 +2020-05-23,Gray,Kansas,20069,21,0 +2020-05-24,Gray,Kansas,20069,21,0 +2020-05-25,Gray,Kansas,20069,22,0 +2020-05-26,Gray,Kansas,20069,22,0 +2020-05-27,Gray,Kansas,20069,22,0 +2020-05-28,Gray,Kansas,20069,22,0 +2020-05-29,Gray,Kansas,20069,22,0 +2020-05-30,Gray,Kansas,20069,22,0 +2020-05-31,Gray,Kansas,20069,22,0 +2020-06-01,Gray,Kansas,20069,22,0 +2020-06-02,Gray,Kansas,20069,22,0 +2020-06-03,Gray,Kansas,20069,22,0 +2020-06-04,Gray,Kansas,20069,22,0 +2020-06-05,Gray,Kansas,20069,22,0 +2020-06-06,Gray,Kansas,20069,22,0 +2020-06-07,Gray,Kansas,20069,22,0 +2020-06-08,Gray,Kansas,20069,22,0 +2020-06-09,Gray,Kansas,20069,22,0 +2020-06-10,Gray,Kansas,20069,23,0 +2020-06-11,Gray,Kansas,20069,23,0 +2020-06-12,Gray,Kansas,20069,23,0 +2020-06-13,Gray,Kansas,20069,23,0 +2020-06-14,Gray,Kansas,20069,23,0 +2020-06-15,Gray,Kansas,20069,23,0 +2020-06-16,Gray,Kansas,20069,23,0 +2020-06-17,Gray,Kansas,20069,23,0 +2020-06-18,Gray,Kansas,20069,23,0 +2020-06-19,Gray,Kansas,20069,24,0 +2020-06-20,Gray,Kansas,20069,24,0 +2020-06-21,Gray,Kansas,20069,24,0 +2020-06-22,Gray,Kansas,20069,24,0 +2020-06-23,Gray,Kansas,20069,24,0 +2020-06-24,Gray,Kansas,20069,24,0 +2020-06-25,Gray,Kansas,20069,24,0 +2020-06-26,Gray,Kansas,20069,26,0 +2020-06-27,Gray,Kansas,20069,26,0 +2020-06-28,Gray,Kansas,20069,26,0 +2020-06-29,Gray,Kansas,20069,26,0 +2020-06-30,Gray,Kansas,20069,26,0 +2020-07-01,Gray,Kansas,20069,26,0 +2020-07-02,Gray,Kansas,20069,26,0 +2020-07-03,Gray,Kansas,20069,27,0 +2020-07-04,Gray,Kansas,20069,27,0 +2020-07-05,Gray,Kansas,20069,27,0 +2020-07-06,Gray,Kansas,20069,27,0 +2020-07-07,Gray,Kansas,20069,27,0 +2020-07-08,Gray,Kansas,20069,28,0 +2020-07-09,Gray,Kansas,20069,28,0 +2020-04-04,Greenwood,Kansas,20073,1,0 +2020-04-05,Greenwood,Kansas,20073,1,0 +2020-04-06,Greenwood,Kansas,20073,1,0 +2020-04-07,Greenwood,Kansas,20073,1,0 +2020-04-08,Greenwood,Kansas,20073,1,0 +2020-04-09,Greenwood,Kansas,20073,1,0 +2020-04-10,Greenwood,Kansas,20073,1,0 +2020-04-11,Greenwood,Kansas,20073,1,0 +2020-04-12,Greenwood,Kansas,20073,1,0 +2020-04-13,Greenwood,Kansas,20073,1,0 +2020-04-14,Greenwood,Kansas,20073,1,0 +2020-04-15,Greenwood,Kansas,20073,1,0 +2020-04-16,Greenwood,Kansas,20073,1,0 +2020-04-17,Greenwood,Kansas,20073,1,0 +2020-04-18,Greenwood,Kansas,20073,2,0 +2020-04-19,Greenwood,Kansas,20073,2,0 +2020-04-20,Greenwood,Kansas,20073,2,0 +2020-04-21,Greenwood,Kansas,20073,2,0 +2020-04-22,Greenwood,Kansas,20073,2,0 +2020-04-23,Greenwood,Kansas,20073,2,0 +2020-04-24,Greenwood,Kansas,20073,3,0 +2020-04-25,Greenwood,Kansas,20073,3,0 +2020-04-26,Greenwood,Kansas,20073,3,0 +2020-04-27,Greenwood,Kansas,20073,3,0 +2020-04-28,Greenwood,Kansas,20073,3,0 +2020-04-29,Greenwood,Kansas,20073,3,0 +2020-04-30,Greenwood,Kansas,20073,3,0 +2020-05-01,Greenwood,Kansas,20073,3,0 +2020-05-02,Greenwood,Kansas,20073,3,0 +2020-05-03,Greenwood,Kansas,20073,3,0 +2020-05-04,Greenwood,Kansas,20073,3,0 +2020-05-05,Greenwood,Kansas,20073,3,0 +2020-05-06,Greenwood,Kansas,20073,3,0 +2020-05-07,Greenwood,Kansas,20073,3,0 +2020-05-08,Greenwood,Kansas,20073,3,0 +2020-05-09,Greenwood,Kansas,20073,3,0 +2020-05-10,Greenwood,Kansas,20073,3,0 +2020-05-11,Greenwood,Kansas,20073,3,0 +2020-05-12,Greenwood,Kansas,20073,3,0 +2020-05-13,Greenwood,Kansas,20073,3,0 +2020-05-14,Greenwood,Kansas,20073,3,0 +2020-05-15,Greenwood,Kansas,20073,3,0 +2020-05-16,Greenwood,Kansas,20073,3,0 +2020-05-17,Greenwood,Kansas,20073,3,0 +2020-05-18,Greenwood,Kansas,20073,3,0 +2020-05-19,Greenwood,Kansas,20073,3,0 +2020-05-20,Greenwood,Kansas,20073,3,0 +2020-05-21,Greenwood,Kansas,20073,3,0 +2020-05-22,Greenwood,Kansas,20073,3,0 +2020-05-23,Greenwood,Kansas,20073,3,0 +2020-05-24,Greenwood,Kansas,20073,3,0 +2020-05-25,Greenwood,Kansas,20073,3,0 +2020-05-26,Greenwood,Kansas,20073,3,0 +2020-05-27,Greenwood,Kansas,20073,3,0 +2020-05-28,Greenwood,Kansas,20073,3,0 +2020-05-29,Greenwood,Kansas,20073,8,0 +2020-05-30,Greenwood,Kansas,20073,8,0 +2020-05-31,Greenwood,Kansas,20073,8,0 +2020-06-01,Greenwood,Kansas,20073,8,0 +2020-06-02,Greenwood,Kansas,20073,8,0 +2020-06-03,Greenwood,Kansas,20073,9,0 +2020-06-04,Greenwood,Kansas,20073,9,0 +2020-06-05,Greenwood,Kansas,20073,9,0 +2020-06-06,Greenwood,Kansas,20073,9,0 +2020-06-07,Greenwood,Kansas,20073,9,0 +2020-06-08,Greenwood,Kansas,20073,9,0 +2020-06-09,Greenwood,Kansas,20073,9,0 +2020-06-10,Greenwood,Kansas,20073,10,0 +2020-06-11,Greenwood,Kansas,20073,10,0 +2020-06-12,Greenwood,Kansas,20073,10,0 +2020-06-13,Greenwood,Kansas,20073,10,0 +2020-06-14,Greenwood,Kansas,20073,10,0 +2020-06-15,Greenwood,Kansas,20073,11,0 +2020-06-16,Greenwood,Kansas,20073,11,0 +2020-06-17,Greenwood,Kansas,20073,11,0 +2020-06-18,Greenwood,Kansas,20073,11,0 +2020-06-19,Greenwood,Kansas,20073,11,0 +2020-06-20,Greenwood,Kansas,20073,11,0 +2020-06-21,Greenwood,Kansas,20073,11,0 +2020-06-22,Greenwood,Kansas,20073,11,0 +2020-06-23,Greenwood,Kansas,20073,11,0 +2020-06-24,Greenwood,Kansas,20073,11,0 +2020-06-25,Greenwood,Kansas,20073,11,0 +2020-06-26,Greenwood,Kansas,20073,11,0 +2020-06-27,Greenwood,Kansas,20073,11,0 +2020-06-28,Greenwood,Kansas,20073,11,0 +2020-06-29,Greenwood,Kansas,20073,11,0 +2020-06-30,Greenwood,Kansas,20073,11,0 +2020-07-01,Greenwood,Kansas,20073,11,0 +2020-07-02,Greenwood,Kansas,20073,11,0 +2020-07-03,Greenwood,Kansas,20073,11,0 +2020-07-04,Greenwood,Kansas,20073,11,0 +2020-07-05,Greenwood,Kansas,20073,11,0 +2020-07-06,Greenwood,Kansas,20073,11,0 +2020-07-07,Greenwood,Kansas,20073,11,0 +2020-07-08,Greenwood,Kansas,20073,11,0 +2020-07-09,Greenwood,Kansas,20073,11,0 +2020-04-11,Hamilton,Kansas,20075,1,0 +2020-04-12,Hamilton,Kansas,20075,1,0 +2020-04-13,Hamilton,Kansas,20075,1,0 +2020-04-14,Hamilton,Kansas,20075,1,0 +2020-04-15,Hamilton,Kansas,20075,1,0 +2020-04-16,Hamilton,Kansas,20075,1,0 +2020-04-17,Hamilton,Kansas,20075,1,0 +2020-04-18,Hamilton,Kansas,20075,1,0 +2020-04-19,Hamilton,Kansas,20075,1,0 +2020-04-20,Hamilton,Kansas,20075,1,0 +2020-04-21,Hamilton,Kansas,20075,1,0 +2020-04-22,Hamilton,Kansas,20075,1,0 +2020-04-23,Hamilton,Kansas,20075,1,0 +2020-04-24,Hamilton,Kansas,20075,1,0 +2020-04-25,Hamilton,Kansas,20075,2,0 +2020-04-26,Hamilton,Kansas,20075,2,0 +2020-04-27,Hamilton,Kansas,20075,2,0 +2020-04-28,Hamilton,Kansas,20075,2,0 +2020-04-29,Hamilton,Kansas,20075,2,0 +2020-04-30,Hamilton,Kansas,20075,2,0 +2020-05-01,Hamilton,Kansas,20075,2,0 +2020-05-02,Hamilton,Kansas,20075,4,0 +2020-05-03,Hamilton,Kansas,20075,4,0 +2020-05-04,Hamilton,Kansas,20075,4,0 +2020-05-05,Hamilton,Kansas,20075,4,0 +2020-05-06,Hamilton,Kansas,20075,4,0 +2020-05-07,Hamilton,Kansas,20075,6,0 +2020-05-08,Hamilton,Kansas,20075,8,0 +2020-05-09,Hamilton,Kansas,20075,10,0 +2020-05-10,Hamilton,Kansas,20075,10,0 +2020-05-11,Hamilton,Kansas,20075,9,0 +2020-05-12,Hamilton,Kansas,20075,9,0 +2020-05-13,Hamilton,Kansas,20075,10,0 +2020-05-14,Hamilton,Kansas,20075,10,0 +2020-05-15,Hamilton,Kansas,20075,10,0 +2020-05-16,Hamilton,Kansas,20075,10,0 +2020-05-17,Hamilton,Kansas,20075,10,0 +2020-05-18,Hamilton,Kansas,20075,11,0 +2020-05-19,Hamilton,Kansas,20075,11,0 +2020-05-20,Hamilton,Kansas,20075,11,0 +2020-05-21,Hamilton,Kansas,20075,11,0 +2020-05-22,Hamilton,Kansas,20075,12,0 +2020-05-23,Hamilton,Kansas,20075,12,0 +2020-05-24,Hamilton,Kansas,20075,12,0 +2020-05-25,Hamilton,Kansas,20075,12,0 +2020-05-26,Hamilton,Kansas,20075,12,0 +2020-05-27,Hamilton,Kansas,20075,18,0 +2020-05-28,Hamilton,Kansas,20075,18,0 +2020-05-29,Hamilton,Kansas,20075,18,0 +2020-05-30,Hamilton,Kansas,20075,18,0 +2020-05-31,Hamilton,Kansas,20075,18,0 +2020-06-01,Hamilton,Kansas,20075,20,0 +2020-06-02,Hamilton,Kansas,20075,20,0 +2020-06-03,Hamilton,Kansas,20075,22,0 +2020-06-04,Hamilton,Kansas,20075,22,0 +2020-06-05,Hamilton,Kansas,20075,22,0 +2020-06-06,Hamilton,Kansas,20075,22,0 +2020-06-07,Hamilton,Kansas,20075,22,0 +2020-06-08,Hamilton,Kansas,20075,25,0 +2020-06-09,Hamilton,Kansas,20075,25,0 +2020-06-10,Hamilton,Kansas,20075,27,0 +2020-06-11,Hamilton,Kansas,20075,27,0 +2020-06-12,Hamilton,Kansas,20075,31,0 +2020-06-13,Hamilton,Kansas,20075,31,0 +2020-06-14,Hamilton,Kansas,20075,31,0 +2020-06-15,Hamilton,Kansas,20075,31,0 +2020-06-16,Hamilton,Kansas,20075,31,0 +2020-06-17,Hamilton,Kansas,20075,31,0 +2020-06-18,Hamilton,Kansas,20075,31,0 +2020-06-19,Hamilton,Kansas,20075,31,0 +2020-06-20,Hamilton,Kansas,20075,31,0 +2020-06-21,Hamilton,Kansas,20075,31,0 +2020-06-22,Hamilton,Kansas,20075,31,0 +2020-06-23,Hamilton,Kansas,20075,31,0 +2020-06-24,Hamilton,Kansas,20075,32,0 +2020-06-25,Hamilton,Kansas,20075,32,0 +2020-06-26,Hamilton,Kansas,20075,32,0 +2020-06-27,Hamilton,Kansas,20075,32,0 +2020-06-28,Hamilton,Kansas,20075,32,0 +2020-06-29,Hamilton,Kansas,20075,32,0 +2020-06-30,Hamilton,Kansas,20075,32,0 +2020-07-01,Hamilton,Kansas,20075,33,0 +2020-07-02,Hamilton,Kansas,20075,33,0 +2020-07-03,Hamilton,Kansas,20075,33,0 +2020-07-04,Hamilton,Kansas,20075,33,0 +2020-07-05,Hamilton,Kansas,20075,33,0 +2020-07-06,Hamilton,Kansas,20075,35,0 +2020-07-07,Hamilton,Kansas,20075,35,0 +2020-07-08,Hamilton,Kansas,20075,35,0 +2020-07-09,Hamilton,Kansas,20075,35,0 +2020-04-30,Harper,Kansas,20077,1,0 +2020-05-01,Harper,Kansas,20077,1,0 +2020-05-02,Harper,Kansas,20077,1,0 +2020-05-03,Harper,Kansas,20077,1,0 +2020-05-04,Harper,Kansas,20077,1,0 +2020-05-05,Harper,Kansas,20077,1,0 +2020-05-06,Harper,Kansas,20077,1,0 +2020-05-07,Harper,Kansas,20077,1,0 +2020-05-08,Harper,Kansas,20077,1,0 +2020-05-09,Harper,Kansas,20077,1,0 +2020-05-10,Harper,Kansas,20077,1,0 +2020-05-11,Harper,Kansas,20077,1,0 +2020-05-12,Harper,Kansas,20077,1,0 +2020-05-13,Harper,Kansas,20077,1,0 +2020-05-14,Harper,Kansas,20077,1,0 +2020-05-15,Harper,Kansas,20077,1,0 +2020-05-16,Harper,Kansas,20077,1,0 +2020-05-17,Harper,Kansas,20077,1,0 +2020-05-18,Harper,Kansas,20077,1,0 +2020-05-19,Harper,Kansas,20077,1,0 +2020-05-20,Harper,Kansas,20077,1,0 +2020-05-21,Harper,Kansas,20077,1,0 +2020-05-22,Harper,Kansas,20077,1,0 +2020-05-23,Harper,Kansas,20077,1,0 +2020-05-24,Harper,Kansas,20077,1,0 +2020-05-25,Harper,Kansas,20077,1,0 +2020-05-26,Harper,Kansas,20077,1,0 +2020-05-27,Harper,Kansas,20077,2,0 +2020-05-28,Harper,Kansas,20077,2,0 +2020-05-29,Harper,Kansas,20077,2,0 +2020-05-30,Harper,Kansas,20077,2,0 +2020-05-31,Harper,Kansas,20077,2,0 +2020-06-01,Harper,Kansas,20077,2,0 +2020-06-02,Harper,Kansas,20077,2,0 +2020-06-03,Harper,Kansas,20077,2,0 +2020-06-04,Harper,Kansas,20077,2,0 +2020-06-05,Harper,Kansas,20077,2,0 +2020-06-06,Harper,Kansas,20077,2,0 +2020-06-07,Harper,Kansas,20077,2,0 +2020-06-08,Harper,Kansas,20077,2,0 +2020-06-09,Harper,Kansas,20077,2,0 +2020-06-10,Harper,Kansas,20077,2,0 +2020-06-11,Harper,Kansas,20077,2,0 +2020-06-12,Harper,Kansas,20077,2,0 +2020-06-13,Harper,Kansas,20077,2,0 +2020-06-14,Harper,Kansas,20077,2,0 +2020-06-15,Harper,Kansas,20077,2,0 +2020-06-16,Harper,Kansas,20077,2,0 +2020-06-17,Harper,Kansas,20077,2,0 +2020-06-18,Harper,Kansas,20077,2,0 +2020-06-19,Harper,Kansas,20077,2,0 +2020-06-20,Harper,Kansas,20077,2,0 +2020-06-21,Harper,Kansas,20077,2,0 +2020-06-22,Harper,Kansas,20077,2,0 +2020-06-23,Harper,Kansas,20077,2,0 +2020-06-24,Harper,Kansas,20077,2,0 +2020-06-25,Harper,Kansas,20077,2,0 +2020-06-26,Harper,Kansas,20077,2,0 +2020-06-27,Harper,Kansas,20077,2,0 +2020-06-28,Harper,Kansas,20077,2,0 +2020-06-29,Harper,Kansas,20077,2,0 +2020-06-30,Harper,Kansas,20077,2,0 +2020-07-01,Harper,Kansas,20077,4,0 +2020-07-02,Harper,Kansas,20077,4,0 +2020-07-03,Harper,Kansas,20077,2,0 +2020-07-04,Harper,Kansas,20077,2,0 +2020-07-05,Harper,Kansas,20077,2,0 +2020-07-06,Harper,Kansas,20077,2,0 +2020-07-07,Harper,Kansas,20077,2,0 +2020-07-08,Harper,Kansas,20077,2,0 +2020-07-09,Harper,Kansas,20077,2,0 +2020-03-27,Harvey,Kansas,20079,1,0 +2020-03-28,Harvey,Kansas,20079,1,0 +2020-03-29,Harvey,Kansas,20079,1,0 +2020-03-30,Harvey,Kansas,20079,1,0 +2020-03-31,Harvey,Kansas,20079,1,0 +2020-04-01,Harvey,Kansas,20079,2,0 +2020-04-02,Harvey,Kansas,20079,2,0 +2020-04-03,Harvey,Kansas,20079,2,0 +2020-04-04,Harvey,Kansas,20079,2,0 +2020-04-05,Harvey,Kansas,20079,2,0 +2020-04-06,Harvey,Kansas,20079,3,0 +2020-04-07,Harvey,Kansas,20079,4,0 +2020-04-08,Harvey,Kansas,20079,4,0 +2020-04-09,Harvey,Kansas,20079,4,0 +2020-04-10,Harvey,Kansas,20079,4,0 +2020-04-11,Harvey,Kansas,20079,4,0 +2020-04-12,Harvey,Kansas,20079,4,0 +2020-04-13,Harvey,Kansas,20079,4,0 +2020-04-14,Harvey,Kansas,20079,5,0 +2020-04-15,Harvey,Kansas,20079,5,0 +2020-04-16,Harvey,Kansas,20079,5,0 +2020-04-17,Harvey,Kansas,20079,5,0 +2020-04-18,Harvey,Kansas,20079,5,0 +2020-04-19,Harvey,Kansas,20079,5,0 +2020-04-20,Harvey,Kansas,20079,5,0 +2020-04-21,Harvey,Kansas,20079,5,0 +2020-04-22,Harvey,Kansas,20079,5,0 +2020-04-23,Harvey,Kansas,20079,5,0 +2020-04-24,Harvey,Kansas,20079,5,0 +2020-04-25,Harvey,Kansas,20079,5,0 +2020-04-26,Harvey,Kansas,20079,5,0 +2020-04-27,Harvey,Kansas,20079,6,0 +2020-04-28,Harvey,Kansas,20079,6,0 +2020-04-29,Harvey,Kansas,20079,6,0 +2020-04-30,Harvey,Kansas,20079,7,0 +2020-05-01,Harvey,Kansas,20079,7,0 +2020-05-02,Harvey,Kansas,20079,8,0 +2020-05-03,Harvey,Kansas,20079,8,0 +2020-05-04,Harvey,Kansas,20079,8,0 +2020-05-05,Harvey,Kansas,20079,8,0 +2020-05-06,Harvey,Kansas,20079,9,0 +2020-05-07,Harvey,Kansas,20079,9,0 +2020-05-08,Harvey,Kansas,20079,9,0 +2020-05-09,Harvey,Kansas,20079,9,0 +2020-05-10,Harvey,Kansas,20079,10,0 +2020-05-11,Harvey,Kansas,20079,10,0 +2020-05-12,Harvey,Kansas,20079,13,0 +2020-05-13,Harvey,Kansas,20079,13,0 +2020-05-14,Harvey,Kansas,20079,13,0 +2020-05-15,Harvey,Kansas,20079,13,1 +2020-05-16,Harvey,Kansas,20079,14,1 +2020-05-17,Harvey,Kansas,20079,14,1 +2020-05-18,Harvey,Kansas,20079,14,1 +2020-05-19,Harvey,Kansas,20079,15,1 +2020-05-20,Harvey,Kansas,20079,15,2 +2020-05-21,Harvey,Kansas,20079,15,2 +2020-05-22,Harvey,Kansas,20079,15,2 +2020-05-23,Harvey,Kansas,20079,15,2 +2020-05-24,Harvey,Kansas,20079,15,2 +2020-05-25,Harvey,Kansas,20079,15,2 +2020-05-26,Harvey,Kansas,20079,15,2 +2020-05-27,Harvey,Kansas,20079,15,2 +2020-05-28,Harvey,Kansas,20079,15,2 +2020-05-29,Harvey,Kansas,20079,15,2 +2020-05-30,Harvey,Kansas,20079,15,2 +2020-05-31,Harvey,Kansas,20079,15,2 +2020-06-01,Harvey,Kansas,20079,15,2 +2020-06-02,Harvey,Kansas,20079,15,2 +2020-06-03,Harvey,Kansas,20079,15,2 +2020-06-04,Harvey,Kansas,20079,15,2 +2020-06-05,Harvey,Kansas,20079,15,2 +2020-06-06,Harvey,Kansas,20079,15,2 +2020-06-07,Harvey,Kansas,20079,15,2 +2020-06-08,Harvey,Kansas,20079,15,2 +2020-06-09,Harvey,Kansas,20079,15,2 +2020-06-10,Harvey,Kansas,20079,15,2 +2020-06-11,Harvey,Kansas,20079,15,2 +2020-06-12,Harvey,Kansas,20079,15,2 +2020-06-13,Harvey,Kansas,20079,15,2 +2020-06-14,Harvey,Kansas,20079,15,2 +2020-06-15,Harvey,Kansas,20079,15,2 +2020-06-16,Harvey,Kansas,20079,15,2 +2020-06-17,Harvey,Kansas,20079,15,2 +2020-06-18,Harvey,Kansas,20079,15,2 +2020-06-19,Harvey,Kansas,20079,15,2 +2020-06-20,Harvey,Kansas,20079,15,2 +2020-06-21,Harvey,Kansas,20079,15,2 +2020-06-22,Harvey,Kansas,20079,19,2 +2020-06-23,Harvey,Kansas,20079,19,2 +2020-06-24,Harvey,Kansas,20079,26,2 +2020-06-25,Harvey,Kansas,20079,26,2 +2020-06-26,Harvey,Kansas,20079,31,2 +2020-06-27,Harvey,Kansas,20079,31,2 +2020-06-28,Harvey,Kansas,20079,32,2 +2020-06-29,Harvey,Kansas,20079,39,2 +2020-06-30,Harvey,Kansas,20079,39,2 +2020-07-01,Harvey,Kansas,20079,39,2 +2020-07-02,Harvey,Kansas,20079,39,2 +2020-07-03,Harvey,Kansas,20079,45,2 +2020-07-04,Harvey,Kansas,20079,45,2 +2020-07-05,Harvey,Kansas,20079,45,2 +2020-07-06,Harvey,Kansas,20079,52,2 +2020-07-07,Harvey,Kansas,20079,52,2 +2020-07-08,Harvey,Kansas,20079,55,2 +2020-07-09,Harvey,Kansas,20079,55,2 +2020-04-20,Haskell,Kansas,20081,1,0 +2020-04-21,Haskell,Kansas,20081,1,0 +2020-04-22,Haskell,Kansas,20081,1,0 +2020-04-23,Haskell,Kansas,20081,6,0 +2020-04-24,Haskell,Kansas,20081,6,0 +2020-04-25,Haskell,Kansas,20081,7,0 +2020-04-26,Haskell,Kansas,20081,7,0 +2020-04-27,Haskell,Kansas,20081,7,0 +2020-04-28,Haskell,Kansas,20081,7,0 +2020-04-29,Haskell,Kansas,20081,7,0 +2020-04-30,Haskell,Kansas,20081,7,0 +2020-05-01,Haskell,Kansas,20081,7,0 +2020-05-02,Haskell,Kansas,20081,7,0 +2020-05-03,Haskell,Kansas,20081,7,0 +2020-05-04,Haskell,Kansas,20081,8,0 +2020-05-05,Haskell,Kansas,20081,8,0 +2020-05-06,Haskell,Kansas,20081,8,0 +2020-05-07,Haskell,Kansas,20081,9,0 +2020-05-08,Haskell,Kansas,20081,14,0 +2020-05-09,Haskell,Kansas,20081,15,0 +2020-05-10,Haskell,Kansas,20081,16,0 +2020-05-11,Haskell,Kansas,20081,16,0 +2020-05-12,Haskell,Kansas,20081,16,0 +2020-05-13,Haskell,Kansas,20081,16,0 +2020-05-14,Haskell,Kansas,20081,16,0 +2020-05-15,Haskell,Kansas,20081,16,0 +2020-05-16,Haskell,Kansas,20081,16,0 +2020-05-17,Haskell,Kansas,20081,16,0 +2020-05-18,Haskell,Kansas,20081,16,0 +2020-05-19,Haskell,Kansas,20081,16,0 +2020-05-20,Haskell,Kansas,20081,16,0 +2020-05-21,Haskell,Kansas,20081,16,0 +2020-05-22,Haskell,Kansas,20081,17,0 +2020-05-23,Haskell,Kansas,20081,17,0 +2020-05-24,Haskell,Kansas,20081,17,0 +2020-05-25,Haskell,Kansas,20081,18,0 +2020-05-26,Haskell,Kansas,20081,18,0 +2020-05-27,Haskell,Kansas,20081,18,0 +2020-05-28,Haskell,Kansas,20081,18,0 +2020-05-29,Haskell,Kansas,20081,21,0 +2020-05-30,Haskell,Kansas,20081,21,0 +2020-05-31,Haskell,Kansas,20081,21,0 +2020-06-01,Haskell,Kansas,20081,21,0 +2020-06-02,Haskell,Kansas,20081,21,0 +2020-06-03,Haskell,Kansas,20081,22,0 +2020-06-04,Haskell,Kansas,20081,22,0 +2020-06-05,Haskell,Kansas,20081,22,0 +2020-06-06,Haskell,Kansas,20081,22,0 +2020-06-07,Haskell,Kansas,20081,22,0 +2020-06-08,Haskell,Kansas,20081,22,0 +2020-06-09,Haskell,Kansas,20081,22,0 +2020-06-10,Haskell,Kansas,20081,22,0 +2020-06-11,Haskell,Kansas,20081,22,0 +2020-06-12,Haskell,Kansas,20081,22,0 +2020-06-13,Haskell,Kansas,20081,22,0 +2020-06-14,Haskell,Kansas,20081,22,0 +2020-06-15,Haskell,Kansas,20081,22,0 +2020-06-16,Haskell,Kansas,20081,22,0 +2020-06-17,Haskell,Kansas,20081,22,0 +2020-06-18,Haskell,Kansas,20081,22,0 +2020-06-19,Haskell,Kansas,20081,23,0 +2020-06-20,Haskell,Kansas,20081,23,0 +2020-06-21,Haskell,Kansas,20081,23,0 +2020-06-22,Haskell,Kansas,20081,23,0 +2020-06-23,Haskell,Kansas,20081,23,0 +2020-06-24,Haskell,Kansas,20081,23,0 +2020-06-25,Haskell,Kansas,20081,23,0 +2020-06-26,Haskell,Kansas,20081,23,0 +2020-06-27,Haskell,Kansas,20081,23,0 +2020-06-28,Haskell,Kansas,20081,23,0 +2020-06-29,Haskell,Kansas,20081,23,0 +2020-06-30,Haskell,Kansas,20081,23,0 +2020-07-01,Haskell,Kansas,20081,24,0 +2020-07-02,Haskell,Kansas,20081,24,0 +2020-07-03,Haskell,Kansas,20081,28,0 +2020-07-04,Haskell,Kansas,20081,28,0 +2020-07-05,Haskell,Kansas,20081,28,0 +2020-07-06,Haskell,Kansas,20081,30,0 +2020-07-07,Haskell,Kansas,20081,30,0 +2020-07-08,Haskell,Kansas,20081,30,0 +2020-07-09,Haskell,Kansas,20081,30,0 +2020-05-22,Hodgeman,Kansas,20083,1,0 +2020-05-23,Hodgeman,Kansas,20083,1,0 +2020-05-24,Hodgeman,Kansas,20083,1,0 +2020-05-25,Hodgeman,Kansas,20083,1,0 +2020-05-26,Hodgeman,Kansas,20083,1,0 +2020-05-27,Hodgeman,Kansas,20083,1,0 +2020-05-28,Hodgeman,Kansas,20083,1,0 +2020-05-29,Hodgeman,Kansas,20083,4,0 +2020-05-30,Hodgeman,Kansas,20083,4,0 +2020-05-31,Hodgeman,Kansas,20083,4,0 +2020-06-01,Hodgeman,Kansas,20083,5,0 +2020-06-02,Hodgeman,Kansas,20083,5,0 +2020-06-03,Hodgeman,Kansas,20083,5,0 +2020-06-04,Hodgeman,Kansas,20083,5,0 +2020-06-05,Hodgeman,Kansas,20083,5,0 +2020-06-06,Hodgeman,Kansas,20083,5,0 +2020-06-07,Hodgeman,Kansas,20083,5,0 +2020-06-08,Hodgeman,Kansas,20083,6,0 +2020-06-09,Hodgeman,Kansas,20083,6,0 +2020-06-10,Hodgeman,Kansas,20083,5,0 +2020-06-11,Hodgeman,Kansas,20083,5,0 +2020-06-12,Hodgeman,Kansas,20083,5,0 +2020-06-13,Hodgeman,Kansas,20083,5,0 +2020-06-14,Hodgeman,Kansas,20083,5,0 +2020-06-15,Hodgeman,Kansas,20083,6,0 +2020-06-16,Hodgeman,Kansas,20083,6,0 +2020-06-17,Hodgeman,Kansas,20083,7,0 +2020-06-18,Hodgeman,Kansas,20083,7,0 +2020-06-19,Hodgeman,Kansas,20083,8,0 +2020-06-20,Hodgeman,Kansas,20083,8,0 +2020-06-21,Hodgeman,Kansas,20083,8,0 +2020-06-22,Hodgeman,Kansas,20083,9,0 +2020-06-23,Hodgeman,Kansas,20083,9,0 +2020-06-24,Hodgeman,Kansas,20083,9,0 +2020-06-25,Hodgeman,Kansas,20083,9,0 +2020-06-26,Hodgeman,Kansas,20083,9,0 +2020-06-27,Hodgeman,Kansas,20083,9,0 +2020-06-28,Hodgeman,Kansas,20083,9,0 +2020-06-29,Hodgeman,Kansas,20083,9,0 +2020-06-30,Hodgeman,Kansas,20083,9,0 +2020-07-01,Hodgeman,Kansas,20083,9,0 +2020-07-02,Hodgeman,Kansas,20083,9,0 +2020-07-03,Hodgeman,Kansas,20083,9,0 +2020-07-04,Hodgeman,Kansas,20083,9,0 +2020-07-05,Hodgeman,Kansas,20083,9,0 +2020-07-06,Hodgeman,Kansas,20083,9,0 +2020-07-07,Hodgeman,Kansas,20083,9,0 +2020-07-08,Hodgeman,Kansas,20083,9,0 +2020-07-09,Hodgeman,Kansas,20083,9,0 +2020-03-22,Jackson,Kansas,20085,1,0 +2020-03-23,Jackson,Kansas,20085,1,0 +2020-03-24,Jackson,Kansas,20085,1,0 +2020-03-25,Jackson,Kansas,20085,1,0 +2020-03-26,Jackson,Kansas,20085,1,0 +2020-03-27,Jackson,Kansas,20085,1,0 +2020-03-28,Jackson,Kansas,20085,1,0 +2020-03-29,Jackson,Kansas,20085,1,0 +2020-03-30,Jackson,Kansas,20085,1,0 +2020-03-31,Jackson,Kansas,20085,1,0 +2020-04-01,Jackson,Kansas,20085,1,0 +2020-04-02,Jackson,Kansas,20085,1,0 +2020-04-03,Jackson,Kansas,20085,1,0 +2020-04-04,Jackson,Kansas,20085,1,0 +2020-04-05,Jackson,Kansas,20085,1,0 +2020-04-06,Jackson,Kansas,20085,1,0 +2020-04-07,Jackson,Kansas,20085,1,0 +2020-04-08,Jackson,Kansas,20085,1,0 +2020-04-09,Jackson,Kansas,20085,1,0 +2020-04-10,Jackson,Kansas,20085,1,0 +2020-04-11,Jackson,Kansas,20085,1,0 +2020-04-12,Jackson,Kansas,20085,1,0 +2020-04-13,Jackson,Kansas,20085,1,0 +2020-04-14,Jackson,Kansas,20085,1,0 +2020-04-15,Jackson,Kansas,20085,1,0 +2020-04-16,Jackson,Kansas,20085,1,0 +2020-04-17,Jackson,Kansas,20085,1,0 +2020-04-18,Jackson,Kansas,20085,1,0 +2020-04-19,Jackson,Kansas,20085,1,0 +2020-04-20,Jackson,Kansas,20085,1,0 +2020-04-21,Jackson,Kansas,20085,1,0 +2020-04-22,Jackson,Kansas,20085,1,0 +2020-04-23,Jackson,Kansas,20085,1,0 +2020-04-24,Jackson,Kansas,20085,1,0 +2020-04-25,Jackson,Kansas,20085,1,0 +2020-04-26,Jackson,Kansas,20085,2,0 +2020-04-27,Jackson,Kansas,20085,2,0 +2020-04-28,Jackson,Kansas,20085,2,0 +2020-04-29,Jackson,Kansas,20085,2,0 +2020-04-30,Jackson,Kansas,20085,2,0 +2020-05-01,Jackson,Kansas,20085,2,0 +2020-05-02,Jackson,Kansas,20085,2,0 +2020-05-03,Jackson,Kansas,20085,2,0 +2020-05-04,Jackson,Kansas,20085,2,0 +2020-05-05,Jackson,Kansas,20085,2,0 +2020-05-06,Jackson,Kansas,20085,2,0 +2020-05-07,Jackson,Kansas,20085,2,0 +2020-05-08,Jackson,Kansas,20085,2,0 +2020-05-09,Jackson,Kansas,20085,3,0 +2020-05-10,Jackson,Kansas,20085,4,0 +2020-05-11,Jackson,Kansas,20085,4,0 +2020-05-12,Jackson,Kansas,20085,7,0 +2020-05-13,Jackson,Kansas,20085,12,0 +2020-05-14,Jackson,Kansas,20085,12,0 +2020-05-15,Jackson,Kansas,20085,23,0 +2020-05-16,Jackson,Kansas,20085,24,0 +2020-05-17,Jackson,Kansas,20085,25,0 +2020-05-18,Jackson,Kansas,20085,28,0 +2020-05-19,Jackson,Kansas,20085,32,0 +2020-05-20,Jackson,Kansas,20085,33,0 +2020-05-21,Jackson,Kansas,20085,36,0 +2020-05-22,Jackson,Kansas,20085,84,0 +2020-05-23,Jackson,Kansas,20085,92,0 +2020-05-24,Jackson,Kansas,20085,92,0 +2020-05-25,Jackson,Kansas,20085,92,0 +2020-05-26,Jackson,Kansas,20085,93,0 +2020-05-27,Jackson,Kansas,20085,93,1 +2020-05-28,Jackson,Kansas,20085,93,1 +2020-05-29,Jackson,Kansas,20085,96,1 +2020-05-30,Jackson,Kansas,20085,96,1 +2020-05-31,Jackson,Kansas,20085,100,1 +2020-06-01,Jackson,Kansas,20085,100,1 +2020-06-02,Jackson,Kansas,20085,102,1 +2020-06-03,Jackson,Kansas,20085,102,1 +2020-06-04,Jackson,Kansas,20085,102,1 +2020-06-05,Jackson,Kansas,20085,103,1 +2020-06-06,Jackson,Kansas,20085,103,1 +2020-06-07,Jackson,Kansas,20085,103,1 +2020-06-08,Jackson,Kansas,20085,103,1 +2020-06-09,Jackson,Kansas,20085,103,1 +2020-06-10,Jackson,Kansas,20085,102,1 +2020-06-11,Jackson,Kansas,20085,102,1 +2020-06-12,Jackson,Kansas,20085,103,1 +2020-06-13,Jackson,Kansas,20085,103,1 +2020-06-14,Jackson,Kansas,20085,103,1 +2020-06-15,Jackson,Kansas,20085,103,1 +2020-06-16,Jackson,Kansas,20085,103,1 +2020-06-17,Jackson,Kansas,20085,103,1 +2020-06-18,Jackson,Kansas,20085,104,1 +2020-06-19,Jackson,Kansas,20085,104,1 +2020-06-20,Jackson,Kansas,20085,104,1 +2020-06-21,Jackson,Kansas,20085,104,1 +2020-06-22,Jackson,Kansas,20085,104,1 +2020-06-23,Jackson,Kansas,20085,105,1 +2020-06-24,Jackson,Kansas,20085,105,1 +2020-06-25,Jackson,Kansas,20085,105,1 +2020-06-26,Jackson,Kansas,20085,107,1 +2020-06-27,Jackson,Kansas,20085,107,1 +2020-06-28,Jackson,Kansas,20085,108,1 +2020-06-29,Jackson,Kansas,20085,109,1 +2020-06-30,Jackson,Kansas,20085,112,1 +2020-07-01,Jackson,Kansas,20085,113,1 +2020-07-02,Jackson,Kansas,20085,113,1 +2020-07-03,Jackson,Kansas,20085,115,1 +2020-07-04,Jackson,Kansas,20085,115,1 +2020-07-05,Jackson,Kansas,20085,115,1 +2020-07-06,Jackson,Kansas,20085,116,1 +2020-07-07,Jackson,Kansas,20085,117,1 +2020-07-08,Jackson,Kansas,20085,117,1 +2020-07-09,Jackson,Kansas,20085,117,1 +2020-03-26,Jefferson,Kansas,20087,1,0 +2020-03-27,Jefferson,Kansas,20087,1,0 +2020-03-28,Jefferson,Kansas,20087,1,0 +2020-03-29,Jefferson,Kansas,20087,1,0 +2020-03-30,Jefferson,Kansas,20087,1,0 +2020-03-31,Jefferson,Kansas,20087,1,0 +2020-04-01,Jefferson,Kansas,20087,1,0 +2020-04-02,Jefferson,Kansas,20087,1,0 +2020-04-03,Jefferson,Kansas,20087,2,0 +2020-04-04,Jefferson,Kansas,20087,2,0 +2020-04-05,Jefferson,Kansas,20087,2,0 +2020-04-06,Jefferson,Kansas,20087,3,0 +2020-04-07,Jefferson,Kansas,20087,3,0 +2020-04-08,Jefferson,Kansas,20087,5,0 +2020-04-09,Jefferson,Kansas,20087,5,0 +2020-04-10,Jefferson,Kansas,20087,5,0 +2020-04-11,Jefferson,Kansas,20087,5,0 +2020-04-12,Jefferson,Kansas,20087,5,0 +2020-04-13,Jefferson,Kansas,20087,5,0 +2020-04-14,Jefferson,Kansas,20087,5,0 +2020-04-15,Jefferson,Kansas,20087,5,0 +2020-04-16,Jefferson,Kansas,20087,5,0 +2020-04-17,Jefferson,Kansas,20087,6,0 +2020-04-18,Jefferson,Kansas,20087,5,0 +2020-04-19,Jefferson,Kansas,20087,5,0 +2020-04-20,Jefferson,Kansas,20087,6,0 +2020-04-21,Jefferson,Kansas,20087,6,0 +2020-04-22,Jefferson,Kansas,20087,6,0 +2020-04-23,Jefferson,Kansas,20087,7,0 +2020-04-24,Jefferson,Kansas,20087,8,0 +2020-04-25,Jefferson,Kansas,20087,8,0 +2020-04-26,Jefferson,Kansas,20087,8,0 +2020-04-27,Jefferson,Kansas,20087,8,0 +2020-04-28,Jefferson,Kansas,20087,8,0 +2020-04-29,Jefferson,Kansas,20087,9,0 +2020-04-30,Jefferson,Kansas,20087,9,0 +2020-05-01,Jefferson,Kansas,20087,9,0 +2020-05-02,Jefferson,Kansas,20087,10,0 +2020-05-03,Jefferson,Kansas,20087,10,0 +2020-05-04,Jefferson,Kansas,20087,10,0 +2020-05-05,Jefferson,Kansas,20087,10,0 +2020-05-06,Jefferson,Kansas,20087,11,0 +2020-05-07,Jefferson,Kansas,20087,12,0 +2020-05-08,Jefferson,Kansas,20087,12,0 +2020-05-09,Jefferson,Kansas,20087,12,0 +2020-05-10,Jefferson,Kansas,20087,12,0 +2020-05-11,Jefferson,Kansas,20087,13,0 +2020-05-12,Jefferson,Kansas,20087,13,0 +2020-05-13,Jefferson,Kansas,20087,16,0 +2020-05-14,Jefferson,Kansas,20087,16,0 +2020-05-15,Jefferson,Kansas,20087,18,0 +2020-05-16,Jefferson,Kansas,20087,18,0 +2020-05-17,Jefferson,Kansas,20087,18,0 +2020-05-18,Jefferson,Kansas,20087,20,0 +2020-05-19,Jefferson,Kansas,20087,20,0 +2020-05-20,Jefferson,Kansas,20087,21,0 +2020-05-21,Jefferson,Kansas,20087,21,0 +2020-05-22,Jefferson,Kansas,20087,21,0 +2020-05-23,Jefferson,Kansas,20087,21,0 +2020-05-24,Jefferson,Kansas,20087,21,0 +2020-05-25,Jefferson,Kansas,20087,22,0 +2020-05-26,Jefferson,Kansas,20087,22,0 +2020-05-27,Jefferson,Kansas,20087,22,0 +2020-05-28,Jefferson,Kansas,20087,22,0 +2020-05-29,Jefferson,Kansas,20087,22,0 +2020-05-30,Jefferson,Kansas,20087,22,0 +2020-05-31,Jefferson,Kansas,20087,22,0 +2020-06-01,Jefferson,Kansas,20087,22,0 +2020-06-02,Jefferson,Kansas,20087,22,0 +2020-06-03,Jefferson,Kansas,20087,22,0 +2020-06-04,Jefferson,Kansas,20087,22,0 +2020-06-05,Jefferson,Kansas,20087,22,0 +2020-06-06,Jefferson,Kansas,20087,22,0 +2020-06-07,Jefferson,Kansas,20087,22,0 +2020-06-08,Jefferson,Kansas,20087,23,0 +2020-06-09,Jefferson,Kansas,20087,23,0 +2020-06-10,Jefferson,Kansas,20087,23,0 +2020-06-11,Jefferson,Kansas,20087,23,0 +2020-06-12,Jefferson,Kansas,20087,23,0 +2020-06-13,Jefferson,Kansas,20087,23,0 +2020-06-14,Jefferson,Kansas,20087,23,0 +2020-06-15,Jefferson,Kansas,20087,23,0 +2020-06-16,Jefferson,Kansas,20087,23,0 +2020-06-17,Jefferson,Kansas,20087,23,0 +2020-06-18,Jefferson,Kansas,20087,23,0 +2020-06-19,Jefferson,Kansas,20087,23,0 +2020-06-20,Jefferson,Kansas,20087,23,0 +2020-06-21,Jefferson,Kansas,20087,23,0 +2020-06-22,Jefferson,Kansas,20087,23,0 +2020-06-23,Jefferson,Kansas,20087,23,0 +2020-06-24,Jefferson,Kansas,20087,25,0 +2020-06-25,Jefferson,Kansas,20087,25,0 +2020-06-26,Jefferson,Kansas,20087,26,0 +2020-06-27,Jefferson,Kansas,20087,26,0 +2020-06-28,Jefferson,Kansas,20087,26,0 +2020-06-29,Jefferson,Kansas,20087,25,0 +2020-06-30,Jefferson,Kansas,20087,25,0 +2020-07-01,Jefferson,Kansas,20087,25,0 +2020-07-02,Jefferson,Kansas,20087,25,0 +2020-07-03,Jefferson,Kansas,20087,28,0 +2020-07-04,Jefferson,Kansas,20087,28,0 +2020-07-05,Jefferson,Kansas,20087,28,0 +2020-07-06,Jefferson,Kansas,20087,31,0 +2020-07-07,Jefferson,Kansas,20087,31,0 +2020-07-08,Jefferson,Kansas,20087,33,0 +2020-07-09,Jefferson,Kansas,20087,33,0 +2020-04-04,Jewell,Kansas,20089,1,0 +2020-04-05,Jewell,Kansas,20089,1,0 +2020-04-06,Jewell,Kansas,20089,1,0 +2020-04-07,Jewell,Kansas,20089,1,0 +2020-04-08,Jewell,Kansas,20089,2,0 +2020-04-09,Jewell,Kansas,20089,2,0 +2020-04-10,Jewell,Kansas,20089,2,0 +2020-04-11,Jewell,Kansas,20089,3,0 +2020-04-12,Jewell,Kansas,20089,3,0 +2020-04-13,Jewell,Kansas,20089,3,0 +2020-04-14,Jewell,Kansas,20089,3,0 +2020-04-15,Jewell,Kansas,20089,3,0 +2020-04-16,Jewell,Kansas,20089,3,0 +2020-04-17,Jewell,Kansas,20089,3,0 +2020-04-18,Jewell,Kansas,20089,3,0 +2020-04-19,Jewell,Kansas,20089,4,0 +2020-04-20,Jewell,Kansas,20089,4,0 +2020-04-21,Jewell,Kansas,20089,4,0 +2020-04-22,Jewell,Kansas,20089,4,0 +2020-04-23,Jewell,Kansas,20089,4,0 +2020-04-24,Jewell,Kansas,20089,4,0 +2020-04-25,Jewell,Kansas,20089,4,0 +2020-04-26,Jewell,Kansas,20089,4,0 +2020-04-27,Jewell,Kansas,20089,4,0 +2020-04-28,Jewell,Kansas,20089,4,0 +2020-04-29,Jewell,Kansas,20089,4,0 +2020-04-30,Jewell,Kansas,20089,4,0 +2020-05-01,Jewell,Kansas,20089,4,0 +2020-05-02,Jewell,Kansas,20089,4,0 +2020-05-03,Jewell,Kansas,20089,4,0 +2020-05-04,Jewell,Kansas,20089,4,0 +2020-05-05,Jewell,Kansas,20089,4,0 +2020-05-06,Jewell,Kansas,20089,4,0 +2020-05-07,Jewell,Kansas,20089,4,0 +2020-05-08,Jewell,Kansas,20089,4,0 +2020-05-09,Jewell,Kansas,20089,4,0 +2020-05-10,Jewell,Kansas,20089,4,0 +2020-05-11,Jewell,Kansas,20089,4,0 +2020-05-12,Jewell,Kansas,20089,4,0 +2020-05-13,Jewell,Kansas,20089,4,0 +2020-05-14,Jewell,Kansas,20089,4,0 +2020-05-15,Jewell,Kansas,20089,4,0 +2020-05-16,Jewell,Kansas,20089,4,0 +2020-05-17,Jewell,Kansas,20089,4,0 +2020-05-18,Jewell,Kansas,20089,4,0 +2020-05-19,Jewell,Kansas,20089,4,0 +2020-05-20,Jewell,Kansas,20089,4,0 +2020-05-21,Jewell,Kansas,20089,4,0 +2020-05-22,Jewell,Kansas,20089,4,0 +2020-05-23,Jewell,Kansas,20089,4,0 +2020-05-24,Jewell,Kansas,20089,4,0 +2020-05-25,Jewell,Kansas,20089,4,0 +2020-05-26,Jewell,Kansas,20089,4,0 +2020-05-27,Jewell,Kansas,20089,4,0 +2020-05-28,Jewell,Kansas,20089,4,0 +2020-05-29,Jewell,Kansas,20089,4,0 +2020-05-30,Jewell,Kansas,20089,4,0 +2020-05-31,Jewell,Kansas,20089,4,0 +2020-06-01,Jewell,Kansas,20089,4,0 +2020-06-02,Jewell,Kansas,20089,4,0 +2020-06-03,Jewell,Kansas,20089,4,0 +2020-06-04,Jewell,Kansas,20089,4,0 +2020-06-05,Jewell,Kansas,20089,4,0 +2020-06-06,Jewell,Kansas,20089,4,0 +2020-06-07,Jewell,Kansas,20089,4,0 +2020-06-08,Jewell,Kansas,20089,4,0 +2020-06-09,Jewell,Kansas,20089,4,0 +2020-06-10,Jewell,Kansas,20089,4,0 +2020-06-11,Jewell,Kansas,20089,4,0 +2020-06-12,Jewell,Kansas,20089,4,0 +2020-06-13,Jewell,Kansas,20089,4,0 +2020-06-14,Jewell,Kansas,20089,4,0 +2020-06-15,Jewell,Kansas,20089,4,0 +2020-06-16,Jewell,Kansas,20089,4,0 +2020-06-17,Jewell,Kansas,20089,4,0 +2020-06-18,Jewell,Kansas,20089,4,0 +2020-06-19,Jewell,Kansas,20089,4,0 +2020-06-20,Jewell,Kansas,20089,4,0 +2020-06-21,Jewell,Kansas,20089,4,0 +2020-06-22,Jewell,Kansas,20089,4,0 +2020-06-23,Jewell,Kansas,20089,4,0 +2020-06-24,Jewell,Kansas,20089,4,0 +2020-06-25,Jewell,Kansas,20089,4,0 +2020-06-26,Jewell,Kansas,20089,4,0 +2020-06-27,Jewell,Kansas,20089,4,0 +2020-06-28,Jewell,Kansas,20089,4,0 +2020-06-29,Jewell,Kansas,20089,4,0 +2020-06-30,Jewell,Kansas,20089,4,0 +2020-07-01,Jewell,Kansas,20089,4,0 +2020-07-02,Jewell,Kansas,20089,4,0 +2020-07-03,Jewell,Kansas,20089,4,0 +2020-07-04,Jewell,Kansas,20089,4,0 +2020-07-05,Jewell,Kansas,20089,4,0 +2020-07-06,Jewell,Kansas,20089,4,0 +2020-07-07,Jewell,Kansas,20089,4,0 +2020-07-08,Jewell,Kansas,20089,4,0 +2020-07-09,Jewell,Kansas,20089,4,0 +2020-03-07,Johnson,Kansas,20091,1,0 +2020-03-08,Johnson,Kansas,20091,1,0 +2020-03-09,Johnson,Kansas,20091,1,0 +2020-03-10,Johnson,Kansas,20091,1,0 +2020-03-11,Johnson,Kansas,20091,1,0 +2020-03-12,Johnson,Kansas,20091,4,0 +2020-03-13,Johnson,Kansas,20091,4,0 +2020-03-14,Johnson,Kansas,20091,5,0 +2020-03-15,Johnson,Kansas,20091,6,0 +2020-03-16,Johnson,Kansas,20091,8,0 +2020-03-17,Johnson,Kansas,20091,10,0 +2020-03-18,Johnson,Kansas,20091,11,0 +2020-03-19,Johnson,Kansas,20091,16,0 +2020-03-20,Johnson,Kansas,20091,24,0 +2020-03-21,Johnson,Kansas,20091,25,1 +2020-03-22,Johnson,Kansas,20091,28,1 +2020-03-23,Johnson,Kansas,20091,32,1 +2020-03-24,Johnson,Kansas,20091,36,1 +2020-03-25,Johnson,Kansas,20091,46,1 +2020-03-26,Johnson,Kansas,20091,59,1 +2020-03-27,Johnson,Kansas,20091,66,1 +2020-03-28,Johnson,Kansas,20091,80,2 +2020-03-29,Johnson,Kansas,20091,108,2 +2020-03-30,Johnson,Kansas,20091,116,2 +2020-03-31,Johnson,Kansas,20091,134,3 +2020-04-01,Johnson,Kansas,20091,143,3 +2020-04-02,Johnson,Kansas,20091,161,4 +2020-04-03,Johnson,Kansas,20091,172,7 +2020-04-04,Johnson,Kansas,20091,185,7 +2020-04-05,Johnson,Kansas,20091,192,8 +2020-04-06,Johnson,Kansas,20091,213,9 +2020-04-07,Johnson,Kansas,20091,219,10 +2020-04-08,Johnson,Kansas,20091,244,11 +2020-04-09,Johnson,Kansas,20091,252,12 +2020-04-10,Johnson,Kansas,20091,263,12 +2020-04-11,Johnson,Kansas,20091,283,13 +2020-04-12,Johnson,Kansas,20091,300,14 +2020-04-13,Johnson,Kansas,20091,309,15 +2020-04-14,Johnson,Kansas,20091,323,16 +2020-04-15,Johnson,Kansas,20091,334,19 +2020-04-16,Johnson,Kansas,20091,343,22 +2020-04-17,Johnson,Kansas,20091,358,23 +2020-04-18,Johnson,Kansas,20091,369,25 +2020-04-19,Johnson,Kansas,20091,372,30 +2020-04-20,Johnson,Kansas,20091,377,30 +2020-04-21,Johnson,Kansas,20091,384,35 +2020-04-22,Johnson,Kansas,20091,396,36 +2020-04-23,Johnson,Kansas,20091,403,36 +2020-04-24,Johnson,Kansas,20091,417,37 +2020-04-25,Johnson,Kansas,20091,424,38 +2020-04-26,Johnson,Kansas,20091,430,38 +2020-04-27,Johnson,Kansas,20091,440,39 +2020-04-28,Johnson,Kansas,20091,446,40 +2020-04-29,Johnson,Kansas,20091,454,40 +2020-04-30,Johnson,Kansas,20091,464,40 +2020-05-01,Johnson,Kansas,20091,471,40 +2020-05-02,Johnson,Kansas,20091,486,41 +2020-05-03,Johnson,Kansas,20091,498,42 +2020-05-04,Johnson,Kansas,20091,504,45 +2020-05-05,Johnson,Kansas,20091,513,45 +2020-05-06,Johnson,Kansas,20091,521,45 +2020-05-07,Johnson,Kansas,20091,560,45 +2020-05-08,Johnson,Kansas,20091,583,47 +2020-05-09,Johnson,Kansas,20091,590,51 +2020-05-10,Johnson,Kansas,20091,598,51 +2020-05-11,Johnson,Kansas,20091,611,52 +2020-05-12,Johnson,Kansas,20091,611,54 +2020-05-13,Johnson,Kansas,20091,618,54 +2020-05-14,Johnson,Kansas,20091,619,54 +2020-05-15,Johnson,Kansas,20091,648,55 +2020-05-16,Johnson,Kansas,20091,648,56 +2020-05-17,Johnson,Kansas,20091,648,56 +2020-05-18,Johnson,Kansas,20091,666,56 +2020-05-19,Johnson,Kansas,20091,666,57 +2020-05-20,Johnson,Kansas,20091,696,58 +2020-05-21,Johnson,Kansas,20091,696,59 +2020-05-22,Johnson,Kansas,20091,711,60 +2020-05-23,Johnson,Kansas,20091,711,60 +2020-05-24,Johnson,Kansas,20091,711,60 +2020-05-25,Johnson,Kansas,20091,765,61 +2020-05-26,Johnson,Kansas,20091,765,61 +2020-05-27,Johnson,Kansas,20091,788,62 +2020-05-28,Johnson,Kansas,20091,788,62 +2020-05-29,Johnson,Kansas,20091,829,62 +2020-05-30,Johnson,Kansas,20091,829,62 +2020-05-31,Johnson,Kansas,20091,839,63 +2020-06-01,Johnson,Kansas,20091,877,63 +2020-06-02,Johnson,Kansas,20091,877,66 +2020-06-03,Johnson,Kansas,20091,893,66 +2020-06-04,Johnson,Kansas,20091,893,67 +2020-06-05,Johnson,Kansas,20091,939,68 +2020-06-06,Johnson,Kansas,20091,939,69 +2020-06-07,Johnson,Kansas,20091,940,69 +2020-06-08,Johnson,Kansas,20091,977,71 +2020-06-09,Johnson,Kansas,20091,977,71 +2020-06-10,Johnson,Kansas,20091,1003,71 +2020-06-11,Johnson,Kansas,20091,1003,71 +2020-06-12,Johnson,Kansas,20091,1045,71 +2020-06-13,Johnson,Kansas,20091,1045,71 +2020-06-14,Johnson,Kansas,20091,1061,71 +2020-06-15,Johnson,Kansas,20091,1106,72 +2020-06-16,Johnson,Kansas,20091,1106,72 +2020-06-17,Johnson,Kansas,20091,1139,73 +2020-06-18,Johnson,Kansas,20091,1150,76 +2020-06-19,Johnson,Kansas,20091,1229,77 +2020-06-20,Johnson,Kansas,20091,1236,79 +2020-06-21,Johnson,Kansas,20091,1257,80 +2020-06-22,Johnson,Kansas,20091,1310,80 +2020-06-23,Johnson,Kansas,20091,1316,81 +2020-06-24,Johnson,Kansas,20091,1409,81 +2020-06-25,Johnson,Kansas,20091,1427,81 +2020-06-26,Johnson,Kansas,20091,1545,83 +2020-06-27,Johnson,Kansas,20091,1550,85 +2020-06-28,Johnson,Kansas,20091,1613,86 +2020-06-29,Johnson,Kansas,20091,1722,86 +2020-06-30,Johnson,Kansas,20091,1722,86 +2020-07-01,Johnson,Kansas,20091,1870,87 +2020-07-02,Johnson,Kansas,20091,1870,88 +2020-07-03,Johnson,Kansas,20091,2066,88 +2020-07-04,Johnson,Kansas,20091,2111,88 +2020-07-05,Johnson,Kansas,20091,2205,89 +2020-07-06,Johnson,Kansas,20091,2349,90 +2020-07-07,Johnson,Kansas,20091,2356,91 +2020-07-08,Johnson,Kansas,20091,2565,91 +2020-07-09,Johnson,Kansas,20091,2633,92 +2020-04-12,Kearny,Kansas,20093,1,0 +2020-04-13,Kearny,Kansas,20093,1,0 +2020-04-14,Kearny,Kansas,20093,1,0 +2020-04-15,Kearny,Kansas,20093,1,0 +2020-04-16,Kearny,Kansas,20093,1,0 +2020-04-17,Kearny,Kansas,20093,1,0 +2020-04-18,Kearny,Kansas,20093,1,0 +2020-04-19,Kearny,Kansas,20093,1,0 +2020-04-20,Kearny,Kansas,20093,2,0 +2020-04-21,Kearny,Kansas,20093,2,0 +2020-04-22,Kearny,Kansas,20093,4,0 +2020-04-23,Kearny,Kansas,20093,8,0 +2020-04-24,Kearny,Kansas,20093,10,0 +2020-04-25,Kearny,Kansas,20093,10,0 +2020-04-26,Kearny,Kansas,20093,10,0 +2020-04-27,Kearny,Kansas,20093,12,0 +2020-04-28,Kearny,Kansas,20093,12,0 +2020-04-29,Kearny,Kansas,20093,13,0 +2020-04-30,Kearny,Kansas,20093,16,0 +2020-05-01,Kearny,Kansas,20093,19,0 +2020-05-02,Kearny,Kansas,20093,19,0 +2020-05-03,Kearny,Kansas,20093,19,0 +2020-05-04,Kearny,Kansas,20093,21,0 +2020-05-05,Kearny,Kansas,20093,23,0 +2020-05-06,Kearny,Kansas,20093,24,0 +2020-05-07,Kearny,Kansas,20093,26,0 +2020-05-08,Kearny,Kansas,20093,28,0 +2020-05-09,Kearny,Kansas,20093,30,0 +2020-05-10,Kearny,Kansas,20093,30,0 +2020-05-11,Kearny,Kansas,20093,30,0 +2020-05-12,Kearny,Kansas,20093,32,0 +2020-05-13,Kearny,Kansas,20093,34,0 +2020-05-14,Kearny,Kansas,20093,34,0 +2020-05-15,Kearny,Kansas,20093,36,0 +2020-05-16,Kearny,Kansas,20093,36,0 +2020-05-17,Kearny,Kansas,20093,36,0 +2020-05-18,Kearny,Kansas,20093,38,0 +2020-05-19,Kearny,Kansas,20093,40,1 +2020-05-20,Kearny,Kansas,20093,40,1 +2020-05-21,Kearny,Kansas,20093,40,1 +2020-05-22,Kearny,Kansas,20093,40,1 +2020-05-23,Kearny,Kansas,20093,40,1 +2020-05-24,Kearny,Kansas,20093,40,1 +2020-05-25,Kearny,Kansas,20093,40,1 +2020-05-26,Kearny,Kansas,20093,40,1 +2020-05-27,Kearny,Kansas,20093,44,1 +2020-05-28,Kearny,Kansas,20093,44,1 +2020-05-29,Kearny,Kansas,20093,45,1 +2020-05-30,Kearny,Kansas,20093,45,1 +2020-05-31,Kearny,Kansas,20093,45,1 +2020-06-01,Kearny,Kansas,20093,45,1 +2020-06-02,Kearny,Kansas,20093,45,1 +2020-06-03,Kearny,Kansas,20093,45,1 +2020-06-04,Kearny,Kansas,20093,45,1 +2020-06-05,Kearny,Kansas,20093,45,1 +2020-06-06,Kearny,Kansas,20093,45,1 +2020-06-07,Kearny,Kansas,20093,45,1 +2020-06-08,Kearny,Kansas,20093,46,1 +2020-06-09,Kearny,Kansas,20093,46,1 +2020-06-10,Kearny,Kansas,20093,46,1 +2020-06-11,Kearny,Kansas,20093,46,1 +2020-06-12,Kearny,Kansas,20093,46,1 +2020-06-13,Kearny,Kansas,20093,46,1 +2020-06-14,Kearny,Kansas,20093,46,1 +2020-06-15,Kearny,Kansas,20093,46,1 +2020-06-16,Kearny,Kansas,20093,46,1 +2020-06-17,Kearny,Kansas,20093,46,1 +2020-06-18,Kearny,Kansas,20093,46,1 +2020-06-19,Kearny,Kansas,20093,46,1 +2020-06-20,Kearny,Kansas,20093,46,1 +2020-06-21,Kearny,Kansas,20093,46,1 +2020-06-22,Kearny,Kansas,20093,48,1 +2020-06-23,Kearny,Kansas,20093,48,1 +2020-06-24,Kearny,Kansas,20093,47,1 +2020-06-25,Kearny,Kansas,20093,47,1 +2020-06-26,Kearny,Kansas,20093,48,1 +2020-06-27,Kearny,Kansas,20093,48,1 +2020-06-28,Kearny,Kansas,20093,48,1 +2020-06-29,Kearny,Kansas,20093,48,1 +2020-06-30,Kearny,Kansas,20093,48,1 +2020-07-01,Kearny,Kansas,20093,48,1 +2020-07-02,Kearny,Kansas,20093,48,1 +2020-07-03,Kearny,Kansas,20093,48,1 +2020-07-04,Kearny,Kansas,20093,48,1 +2020-07-05,Kearny,Kansas,20093,48,1 +2020-07-06,Kearny,Kansas,20093,48,1 +2020-07-07,Kearny,Kansas,20093,48,1 +2020-07-08,Kearny,Kansas,20093,48,1 +2020-07-09,Kearny,Kansas,20093,48,1 +2020-07-06,Kingman,Kansas,20095,1,0 +2020-07-07,Kingman,Kansas,20095,1,0 +2020-07-08,Kingman,Kansas,20095,1,0 +2020-07-09,Kingman,Kansas,20095,1,0 +2020-04-23,Kiowa,Kansas,20097,1,0 +2020-04-24,Kiowa,Kansas,20097,1,0 +2020-04-25,Kiowa,Kansas,20097,1,0 +2020-04-26,Kiowa,Kansas,20097,1,0 +2020-04-27,Kiowa,Kansas,20097,1,0 +2020-04-28,Kiowa,Kansas,20097,1,0 +2020-04-29,Kiowa,Kansas,20097,1,0 +2020-04-30,Kiowa,Kansas,20097,1,0 +2020-05-01,Kiowa,Kansas,20097,1,0 +2020-05-02,Kiowa,Kansas,20097,1,0 +2020-05-03,Kiowa,Kansas,20097,2,0 +2020-05-04,Kiowa,Kansas,20097,2,0 +2020-05-05,Kiowa,Kansas,20097,2,0 +2020-05-06,Kiowa,Kansas,20097,2,0 +2020-05-07,Kiowa,Kansas,20097,2,0 +2020-05-08,Kiowa,Kansas,20097,2,0 +2020-05-09,Kiowa,Kansas,20097,2,0 +2020-05-10,Kiowa,Kansas,20097,2,0 +2020-05-11,Kiowa,Kansas,20097,2,0 +2020-05-12,Kiowa,Kansas,20097,2,0 +2020-05-13,Kiowa,Kansas,20097,2,0 +2020-05-14,Kiowa,Kansas,20097,2,0 +2020-05-15,Kiowa,Kansas,20097,2,0 +2020-05-16,Kiowa,Kansas,20097,2,0 +2020-05-17,Kiowa,Kansas,20097,2,0 +2020-05-18,Kiowa,Kansas,20097,2,0 +2020-05-19,Kiowa,Kansas,20097,2,0 +2020-05-20,Kiowa,Kansas,20097,2,0 +2020-05-21,Kiowa,Kansas,20097,2,0 +2020-05-22,Kiowa,Kansas,20097,2,0 +2020-05-23,Kiowa,Kansas,20097,2,0 +2020-05-24,Kiowa,Kansas,20097,2,0 +2020-05-25,Kiowa,Kansas,20097,2,0 +2020-05-26,Kiowa,Kansas,20097,2,0 +2020-05-27,Kiowa,Kansas,20097,2,0 +2020-05-28,Kiowa,Kansas,20097,2,0 +2020-05-29,Kiowa,Kansas,20097,2,0 +2020-05-30,Kiowa,Kansas,20097,2,0 +2020-05-31,Kiowa,Kansas,20097,2,0 +2020-06-01,Kiowa,Kansas,20097,2,0 +2020-06-02,Kiowa,Kansas,20097,2,0 +2020-06-03,Kiowa,Kansas,20097,3,0 +2020-06-04,Kiowa,Kansas,20097,3,0 +2020-06-05,Kiowa,Kansas,20097,3,0 +2020-06-06,Kiowa,Kansas,20097,3,0 +2020-06-07,Kiowa,Kansas,20097,3,0 +2020-06-08,Kiowa,Kansas,20097,3,0 +2020-06-09,Kiowa,Kansas,20097,3,0 +2020-06-10,Kiowa,Kansas,20097,3,0 +2020-06-11,Kiowa,Kansas,20097,3,0 +2020-06-12,Kiowa,Kansas,20097,3,0 +2020-06-13,Kiowa,Kansas,20097,3,0 +2020-06-14,Kiowa,Kansas,20097,3,0 +2020-06-15,Kiowa,Kansas,20097,3,0 +2020-06-16,Kiowa,Kansas,20097,3,0 +2020-06-17,Kiowa,Kansas,20097,3,0 +2020-06-18,Kiowa,Kansas,20097,3,0 +2020-06-19,Kiowa,Kansas,20097,3,0 +2020-06-20,Kiowa,Kansas,20097,3,0 +2020-06-21,Kiowa,Kansas,20097,3,0 +2020-06-22,Kiowa,Kansas,20097,3,0 +2020-06-23,Kiowa,Kansas,20097,3,0 +2020-06-24,Kiowa,Kansas,20097,3,0 +2020-06-25,Kiowa,Kansas,20097,3,0 +2020-06-26,Kiowa,Kansas,20097,4,0 +2020-06-27,Kiowa,Kansas,20097,4,0 +2020-06-28,Kiowa,Kansas,20097,4,0 +2020-06-29,Kiowa,Kansas,20097,4,0 +2020-06-30,Kiowa,Kansas,20097,4,0 +2020-07-01,Kiowa,Kansas,20097,3,0 +2020-07-02,Kiowa,Kansas,20097,3,0 +2020-07-03,Kiowa,Kansas,20097,3,0 +2020-07-04,Kiowa,Kansas,20097,3,0 +2020-07-05,Kiowa,Kansas,20097,3,0 +2020-07-06,Kiowa,Kansas,20097,3,0 +2020-07-07,Kiowa,Kansas,20097,3,0 +2020-07-08,Kiowa,Kansas,20097,3,0 +2020-07-09,Kiowa,Kansas,20097,3,0 +2020-03-31,Labette,Kansas,20099,1,0 +2020-04-01,Labette,Kansas,20099,1,0 +2020-04-02,Labette,Kansas,20099,1,0 +2020-04-03,Labette,Kansas,20099,1,0 +2020-04-04,Labette,Kansas,20099,4,0 +2020-04-05,Labette,Kansas,20099,4,0 +2020-04-06,Labette,Kansas,20099,5,0 +2020-04-07,Labette,Kansas,20099,8,0 +2020-04-08,Labette,Kansas,20099,9,0 +2020-04-09,Labette,Kansas,20099,11,0 +2020-04-10,Labette,Kansas,20099,15,0 +2020-04-11,Labette,Kansas,20099,18,0 +2020-04-12,Labette,Kansas,20099,18,0 +2020-04-13,Labette,Kansas,20099,18,0 +2020-04-14,Labette,Kansas,20099,19,0 +2020-04-15,Labette,Kansas,20099,20,0 +2020-04-16,Labette,Kansas,20099,20,0 +2020-04-17,Labette,Kansas,20099,20,0 +2020-04-18,Labette,Kansas,20099,20,0 +2020-04-19,Labette,Kansas,20099,20,0 +2020-04-20,Labette,Kansas,20099,20,0 +2020-04-21,Labette,Kansas,20099,20,0 +2020-04-22,Labette,Kansas,20099,20,0 +2020-04-23,Labette,Kansas,20099,20,0 +2020-04-24,Labette,Kansas,20099,21,0 +2020-04-25,Labette,Kansas,20099,21,0 +2020-04-26,Labette,Kansas,20099,21,0 +2020-04-27,Labette,Kansas,20099,21,0 +2020-04-28,Labette,Kansas,20099,21,0 +2020-04-29,Labette,Kansas,20099,22,0 +2020-04-30,Labette,Kansas,20099,22,0 +2020-05-01,Labette,Kansas,20099,22,0 +2020-05-02,Labette,Kansas,20099,22,0 +2020-05-03,Labette,Kansas,20099,22,0 +2020-05-04,Labette,Kansas,20099,22,0 +2020-05-05,Labette,Kansas,20099,22,0 +2020-05-06,Labette,Kansas,20099,22,0 +2020-05-07,Labette,Kansas,20099,22,0 +2020-05-08,Labette,Kansas,20099,22,0 +2020-05-09,Labette,Kansas,20099,22,0 +2020-05-10,Labette,Kansas,20099,22,0 +2020-05-11,Labette,Kansas,20099,22,0 +2020-05-12,Labette,Kansas,20099,22,0 +2020-05-13,Labette,Kansas,20099,22,0 +2020-05-14,Labette,Kansas,20099,22,0 +2020-05-15,Labette,Kansas,20099,22,0 +2020-05-16,Labette,Kansas,20099,22,0 +2020-05-17,Labette,Kansas,20099,22,0 +2020-05-18,Labette,Kansas,20099,23,0 +2020-05-19,Labette,Kansas,20099,23,0 +2020-05-20,Labette,Kansas,20099,24,0 +2020-05-21,Labette,Kansas,20099,24,0 +2020-05-22,Labette,Kansas,20099,22,0 +2020-05-23,Labette,Kansas,20099,22,0 +2020-05-24,Labette,Kansas,20099,22,0 +2020-05-25,Labette,Kansas,20099,22,0 +2020-05-26,Labette,Kansas,20099,22,0 +2020-05-27,Labette,Kansas,20099,22,0 +2020-05-28,Labette,Kansas,20099,22,0 +2020-05-29,Labette,Kansas,20099,22,0 +2020-05-30,Labette,Kansas,20099,22,0 +2020-05-31,Labette,Kansas,20099,22,0 +2020-06-01,Labette,Kansas,20099,23,0 +2020-06-02,Labette,Kansas,20099,23,0 +2020-06-03,Labette,Kansas,20099,22,0 +2020-06-04,Labette,Kansas,20099,22,0 +2020-06-05,Labette,Kansas,20099,22,0 +2020-06-06,Labette,Kansas,20099,22,0 +2020-06-07,Labette,Kansas,20099,22,0 +2020-06-08,Labette,Kansas,20099,23,0 +2020-06-09,Labette,Kansas,20099,23,0 +2020-06-10,Labette,Kansas,20099,26,0 +2020-06-11,Labette,Kansas,20099,26,0 +2020-06-12,Labette,Kansas,20099,27,0 +2020-06-13,Labette,Kansas,20099,27,0 +2020-06-14,Labette,Kansas,20099,27,0 +2020-06-15,Labette,Kansas,20099,27,0 +2020-06-16,Labette,Kansas,20099,27,0 +2020-06-17,Labette,Kansas,20099,27,0 +2020-06-18,Labette,Kansas,20099,27,0 +2020-06-19,Labette,Kansas,20099,28,0 +2020-06-20,Labette,Kansas,20099,28,0 +2020-06-21,Labette,Kansas,20099,28,0 +2020-06-22,Labette,Kansas,20099,28,0 +2020-06-23,Labette,Kansas,20099,28,0 +2020-06-24,Labette,Kansas,20099,50,0 +2020-06-25,Labette,Kansas,20099,50,0 +2020-06-26,Labette,Kansas,20099,55,0 +2020-06-27,Labette,Kansas,20099,55,0 +2020-06-28,Labette,Kansas,20099,55,0 +2020-06-29,Labette,Kansas,20099,57,0 +2020-06-30,Labette,Kansas,20099,57,0 +2020-07-01,Labette,Kansas,20099,61,0 +2020-07-02,Labette,Kansas,20099,61,0 +2020-07-03,Labette,Kansas,20099,65,0 +2020-07-04,Labette,Kansas,20099,65,0 +2020-07-05,Labette,Kansas,20099,65,0 +2020-07-06,Labette,Kansas,20099,66,0 +2020-07-07,Labette,Kansas,20099,66,0 +2020-07-08,Labette,Kansas,20099,64,0 +2020-07-09,Labette,Kansas,20099,64,0 +2020-05-22,Lane,Kansas,20101,1,0 +2020-05-23,Lane,Kansas,20101,1,0 +2020-05-24,Lane,Kansas,20101,1,0 +2020-05-25,Lane,Kansas,20101,3,0 +2020-05-26,Lane,Kansas,20101,3,0 +2020-05-27,Lane,Kansas,20101,3,0 +2020-05-28,Lane,Kansas,20101,3,0 +2020-05-29,Lane,Kansas,20101,3,0 +2020-05-30,Lane,Kansas,20101,3,0 +2020-05-31,Lane,Kansas,20101,3,0 +2020-06-01,Lane,Kansas,20101,3,0 +2020-06-02,Lane,Kansas,20101,3,0 +2020-06-03,Lane,Kansas,20101,4,0 +2020-06-04,Lane,Kansas,20101,4,0 +2020-06-05,Lane,Kansas,20101,4,0 +2020-06-06,Lane,Kansas,20101,4,0 +2020-06-07,Lane,Kansas,20101,4,0 +2020-06-08,Lane,Kansas,20101,4,0 +2020-06-09,Lane,Kansas,20101,4,0 +2020-06-10,Lane,Kansas,20101,4,0 +2020-06-11,Lane,Kansas,20101,4,0 +2020-06-12,Lane,Kansas,20101,4,0 +2020-06-13,Lane,Kansas,20101,4,0 +2020-06-14,Lane,Kansas,20101,4,0 +2020-06-15,Lane,Kansas,20101,4,0 +2020-06-16,Lane,Kansas,20101,4,0 +2020-06-17,Lane,Kansas,20101,4,0 +2020-06-18,Lane,Kansas,20101,4,0 +2020-06-19,Lane,Kansas,20101,5,0 +2020-06-20,Lane,Kansas,20101,5,0 +2020-06-21,Lane,Kansas,20101,5,0 +2020-06-22,Lane,Kansas,20101,5,0 +2020-06-23,Lane,Kansas,20101,5,0 +2020-06-24,Lane,Kansas,20101,5,0 +2020-06-25,Lane,Kansas,20101,5,0 +2020-06-26,Lane,Kansas,20101,5,0 +2020-06-27,Lane,Kansas,20101,5,0 +2020-06-28,Lane,Kansas,20101,5,0 +2020-06-29,Lane,Kansas,20101,5,0 +2020-06-30,Lane,Kansas,20101,5,0 +2020-07-01,Lane,Kansas,20101,5,0 +2020-07-02,Lane,Kansas,20101,5,0 +2020-07-03,Lane,Kansas,20101,5,0 +2020-07-04,Lane,Kansas,20101,5,0 +2020-07-05,Lane,Kansas,20101,5,0 +2020-07-06,Lane,Kansas,20101,5,0 +2020-07-07,Lane,Kansas,20101,5,0 +2020-07-08,Lane,Kansas,20101,5,0 +2020-07-09,Lane,Kansas,20101,5,0 +2020-03-18,Leavenworth,Kansas,20103,2,0 +2020-03-19,Leavenworth,Kansas,20103,2,0 +2020-03-20,Leavenworth,Kansas,20103,4,0 +2020-03-21,Leavenworth,Kansas,20103,4,0 +2020-03-22,Leavenworth,Kansas,20103,4,0 +2020-03-23,Leavenworth,Kansas,20103,5,0 +2020-03-24,Leavenworth,Kansas,20103,7,0 +2020-03-25,Leavenworth,Kansas,20103,11,0 +2020-03-26,Leavenworth,Kansas,20103,12,0 +2020-03-27,Leavenworth,Kansas,20103,12,0 +2020-03-28,Leavenworth,Kansas,20103,15,0 +2020-03-29,Leavenworth,Kansas,20103,17,0 +2020-03-30,Leavenworth,Kansas,20103,20,0 +2020-03-31,Leavenworth,Kansas,20103,24,0 +2020-04-01,Leavenworth,Kansas,20103,25,0 +2020-04-02,Leavenworth,Kansas,20103,27,0 +2020-04-03,Leavenworth,Kansas,20103,31,1 +2020-04-04,Leavenworth,Kansas,20103,33,1 +2020-04-05,Leavenworth,Kansas,20103,38,1 +2020-04-06,Leavenworth,Kansas,20103,40,1 +2020-04-07,Leavenworth,Kansas,20103,43,1 +2020-04-08,Leavenworth,Kansas,20103,59,1 +2020-04-09,Leavenworth,Kansas,20103,61,1 +2020-04-10,Leavenworth,Kansas,20103,66,1 +2020-04-11,Leavenworth,Kansas,20103,75,1 +2020-04-12,Leavenworth,Kansas,20103,80,1 +2020-04-13,Leavenworth,Kansas,20103,87,1 +2020-04-14,Leavenworth,Kansas,20103,90,1 +2020-04-15,Leavenworth,Kansas,20103,93,1 +2020-04-16,Leavenworth,Kansas,20103,114,1 +2020-04-17,Leavenworth,Kansas,20103,117,2 +2020-04-18,Leavenworth,Kansas,20103,123,2 +2020-04-19,Leavenworth,Kansas,20103,128,2 +2020-04-20,Leavenworth,Kansas,20103,135,2 +2020-04-21,Leavenworth,Kansas,20103,136,3 +2020-04-22,Leavenworth,Kansas,20103,150,3 +2020-04-23,Leavenworth,Kansas,20103,154,3 +2020-04-24,Leavenworth,Kansas,20103,154,3 +2020-04-25,Leavenworth,Kansas,20103,169,3 +2020-04-26,Leavenworth,Kansas,20103,172,3 +2020-04-27,Leavenworth,Kansas,20103,184,4 +2020-04-28,Leavenworth,Kansas,20103,187,4 +2020-04-29,Leavenworth,Kansas,20103,196,4 +2020-04-30,Leavenworth,Kansas,20103,356,4 +2020-05-01,Leavenworth,Kansas,20103,372,5 +2020-05-02,Leavenworth,Kansas,20103,386,5 +2020-05-03,Leavenworth,Kansas,20103,498,5 +2020-05-04,Leavenworth,Kansas,20103,529,5 +2020-05-05,Leavenworth,Kansas,20103,602,6 +2020-05-06,Leavenworth,Kansas,20103,783,6 +2020-05-07,Leavenworth,Kansas,20103,887,6 +2020-05-08,Leavenworth,Kansas,20103,907,6 +2020-05-09,Leavenworth,Kansas,20103,910,6 +2020-05-10,Leavenworth,Kansas,20103,920,6 +2020-05-11,Leavenworth,Kansas,20103,939,6 +2020-05-12,Leavenworth,Kansas,20103,939,6 +2020-05-13,Leavenworth,Kansas,20103,952,6 +2020-05-14,Leavenworth,Kansas,20103,952,6 +2020-05-15,Leavenworth,Kansas,20103,957,6 +2020-05-16,Leavenworth,Kansas,20103,958,6 +2020-05-17,Leavenworth,Kansas,20103,958,6 +2020-05-18,Leavenworth,Kansas,20103,1051,6 +2020-05-19,Leavenworth,Kansas,20103,1053,7 +2020-05-20,Leavenworth,Kansas,20103,1058,7 +2020-05-21,Leavenworth,Kansas,20103,1062,7 +2020-05-22,Leavenworth,Kansas,20103,1069,7 +2020-05-23,Leavenworth,Kansas,20103,1069,7 +2020-05-24,Leavenworth,Kansas,20103,1069,7 +2020-05-25,Leavenworth,Kansas,20103,1067,7 +2020-05-26,Leavenworth,Kansas,20103,1070,7 +2020-05-27,Leavenworth,Kansas,20103,1074,7 +2020-05-28,Leavenworth,Kansas,20103,1074,7 +2020-05-29,Leavenworth,Kansas,20103,1082,7 +2020-05-30,Leavenworth,Kansas,20103,1082,7 +2020-05-31,Leavenworth,Kansas,20103,1082,7 +2020-06-01,Leavenworth,Kansas,20103,1093,7 +2020-06-02,Leavenworth,Kansas,20103,1095,7 +2020-06-03,Leavenworth,Kansas,20103,1098,7 +2020-06-04,Leavenworth,Kansas,20103,1099,7 +2020-06-05,Leavenworth,Kansas,20103,1100,7 +2020-06-06,Leavenworth,Kansas,20103,1100,7 +2020-06-07,Leavenworth,Kansas,20103,1100,7 +2020-06-08,Leavenworth,Kansas,20103,1103,7 +2020-06-09,Leavenworth,Kansas,20103,1103,7 +2020-06-10,Leavenworth,Kansas,20103,1103,7 +2020-06-11,Leavenworth,Kansas,20103,1105,7 +2020-06-12,Leavenworth,Kansas,20103,1106,7 +2020-06-13,Leavenworth,Kansas,20103,1106,7 +2020-06-14,Leavenworth,Kansas,20103,1106,7 +2020-06-15,Leavenworth,Kansas,20103,1109,7 +2020-06-16,Leavenworth,Kansas,20103,1111,7 +2020-06-17,Leavenworth,Kansas,20103,1118,7 +2020-06-18,Leavenworth,Kansas,20103,1120,7 +2020-06-19,Leavenworth,Kansas,20103,1122,7 +2020-06-20,Leavenworth,Kansas,20103,1122,7 +2020-06-21,Leavenworth,Kansas,20103,1122,7 +2020-06-22,Leavenworth,Kansas,20103,1132,7 +2020-06-23,Leavenworth,Kansas,20103,1132,7 +2020-06-24,Leavenworth,Kansas,20103,1137,7 +2020-06-25,Leavenworth,Kansas,20103,1137,7 +2020-06-26,Leavenworth,Kansas,20103,1146,7 +2020-06-27,Leavenworth,Kansas,20103,1146,7 +2020-06-28,Leavenworth,Kansas,20103,1146,7 +2020-06-29,Leavenworth,Kansas,20103,1162,7 +2020-06-30,Leavenworth,Kansas,20103,1162,7 +2020-07-01,Leavenworth,Kansas,20103,1173,7 +2020-07-02,Leavenworth,Kansas,20103,1173,7 +2020-07-03,Leavenworth,Kansas,20103,1183,7 +2020-07-04,Leavenworth,Kansas,20103,1183,7 +2020-07-05,Leavenworth,Kansas,20103,1183,7 +2020-07-06,Leavenworth,Kansas,20103,1194,7 +2020-07-07,Leavenworth,Kansas,20103,1194,7 +2020-07-08,Leavenworth,Kansas,20103,1200,7 +2020-07-09,Leavenworth,Kansas,20103,1200,7 +2020-03-19,Linn,Kansas,20107,1,0 +2020-03-20,Linn,Kansas,20107,1,0 +2020-03-21,Linn,Kansas,20107,1,0 +2020-03-22,Linn,Kansas,20107,1,0 +2020-03-23,Linn,Kansas,20107,2,0 +2020-03-24,Linn,Kansas,20107,2,0 +2020-03-25,Linn,Kansas,20107,2,0 +2020-03-26,Linn,Kansas,20107,4,0 +2020-03-27,Linn,Kansas,20107,4,0 +2020-03-28,Linn,Kansas,20107,4,0 +2020-03-29,Linn,Kansas,20107,5,0 +2020-03-30,Linn,Kansas,20107,5,0 +2020-03-31,Linn,Kansas,20107,5,0 +2020-04-01,Linn,Kansas,20107,5,0 +2020-04-02,Linn,Kansas,20107,5,0 +2020-04-03,Linn,Kansas,20107,5,0 +2020-04-04,Linn,Kansas,20107,6,0 +2020-04-05,Linn,Kansas,20107,6,0 +2020-04-06,Linn,Kansas,20107,6,0 +2020-04-07,Linn,Kansas,20107,6,0 +2020-04-08,Linn,Kansas,20107,6,0 +2020-04-09,Linn,Kansas,20107,6,0 +2020-04-10,Linn,Kansas,20107,6,0 +2020-04-11,Linn,Kansas,20107,6,0 +2020-04-12,Linn,Kansas,20107,6,0 +2020-04-13,Linn,Kansas,20107,6,0 +2020-04-14,Linn,Kansas,20107,6,0 +2020-04-15,Linn,Kansas,20107,6,0 +2020-04-16,Linn,Kansas,20107,6,0 +2020-04-17,Linn,Kansas,20107,6,0 +2020-04-18,Linn,Kansas,20107,6,0 +2020-04-19,Linn,Kansas,20107,6,0 +2020-04-20,Linn,Kansas,20107,6,0 +2020-04-21,Linn,Kansas,20107,6,0 +2020-04-22,Linn,Kansas,20107,6,0 +2020-04-23,Linn,Kansas,20107,6,0 +2020-04-24,Linn,Kansas,20107,6,0 +2020-04-25,Linn,Kansas,20107,6,0 +2020-04-26,Linn,Kansas,20107,6,0 +2020-04-27,Linn,Kansas,20107,6,0 +2020-04-28,Linn,Kansas,20107,6,0 +2020-04-29,Linn,Kansas,20107,6,0 +2020-04-30,Linn,Kansas,20107,6,0 +2020-05-01,Linn,Kansas,20107,6,0 +2020-05-02,Linn,Kansas,20107,6,0 +2020-05-03,Linn,Kansas,20107,6,0 +2020-05-04,Linn,Kansas,20107,6,0 +2020-05-05,Linn,Kansas,20107,6,0 +2020-05-06,Linn,Kansas,20107,6,0 +2020-05-07,Linn,Kansas,20107,6,0 +2020-05-08,Linn,Kansas,20107,6,0 +2020-05-09,Linn,Kansas,20107,6,0 +2020-05-10,Linn,Kansas,20107,6,0 +2020-05-11,Linn,Kansas,20107,6,0 +2020-05-12,Linn,Kansas,20107,6,0 +2020-05-13,Linn,Kansas,20107,6,0 +2020-05-14,Linn,Kansas,20107,6,0 +2020-05-15,Linn,Kansas,20107,6,0 +2020-05-16,Linn,Kansas,20107,6,0 +2020-05-17,Linn,Kansas,20107,6,0 +2020-05-18,Linn,Kansas,20107,7,0 +2020-05-19,Linn,Kansas,20107,7,0 +2020-05-20,Linn,Kansas,20107,7,0 +2020-05-21,Linn,Kansas,20107,7,0 +2020-05-22,Linn,Kansas,20107,7,0 +2020-05-23,Linn,Kansas,20107,7,0 +2020-05-24,Linn,Kansas,20107,7,0 +2020-05-25,Linn,Kansas,20107,7,0 +2020-05-26,Linn,Kansas,20107,7,0 +2020-05-27,Linn,Kansas,20107,8,0 +2020-05-28,Linn,Kansas,20107,8,0 +2020-05-29,Linn,Kansas,20107,10,0 +2020-05-30,Linn,Kansas,20107,10,0 +2020-05-31,Linn,Kansas,20107,10,0 +2020-06-01,Linn,Kansas,20107,10,0 +2020-06-02,Linn,Kansas,20107,10,0 +2020-06-03,Linn,Kansas,20107,10,0 +2020-06-04,Linn,Kansas,20107,10,0 +2020-06-05,Linn,Kansas,20107,10,0 +2020-06-06,Linn,Kansas,20107,10,0 +2020-06-07,Linn,Kansas,20107,10,0 +2020-06-08,Linn,Kansas,20107,11,0 +2020-06-09,Linn,Kansas,20107,11,0 +2020-06-10,Linn,Kansas,20107,11,0 +2020-06-11,Linn,Kansas,20107,11,0 +2020-06-12,Linn,Kansas,20107,11,0 +2020-06-13,Linn,Kansas,20107,11,0 +2020-06-14,Linn,Kansas,20107,11,0 +2020-06-15,Linn,Kansas,20107,13,0 +2020-06-16,Linn,Kansas,20107,13,0 +2020-06-17,Linn,Kansas,20107,13,0 +2020-06-18,Linn,Kansas,20107,13,0 +2020-06-19,Linn,Kansas,20107,13,0 +2020-06-20,Linn,Kansas,20107,13,0 +2020-06-21,Linn,Kansas,20107,13,0 +2020-06-22,Linn,Kansas,20107,13,0 +2020-06-23,Linn,Kansas,20107,13,0 +2020-06-24,Linn,Kansas,20107,13,0 +2020-06-25,Linn,Kansas,20107,13,0 +2020-06-26,Linn,Kansas,20107,14,0 +2020-06-27,Linn,Kansas,20107,14,0 +2020-06-28,Linn,Kansas,20107,14,0 +2020-06-29,Linn,Kansas,20107,15,0 +2020-06-30,Linn,Kansas,20107,15,0 +2020-07-01,Linn,Kansas,20107,15,0 +2020-07-02,Linn,Kansas,20107,15,0 +2020-07-03,Linn,Kansas,20107,16,0 +2020-07-04,Linn,Kansas,20107,16,0 +2020-07-05,Linn,Kansas,20107,16,0 +2020-07-06,Linn,Kansas,20107,17,0 +2020-07-07,Linn,Kansas,20107,17,0 +2020-07-08,Linn,Kansas,20107,16,0 +2020-07-09,Linn,Kansas,20107,16,0 +2020-06-24,Logan,Kansas,20109,1,0 +2020-06-25,Logan,Kansas,20109,1,0 +2020-06-26,Logan,Kansas,20109,1,0 +2020-06-27,Logan,Kansas,20109,1,0 +2020-06-28,Logan,Kansas,20109,1,0 +2020-06-29,Logan,Kansas,20109,1,0 +2020-06-30,Logan,Kansas,20109,1,0 +2020-07-01,Logan,Kansas,20109,1,0 +2020-07-02,Logan,Kansas,20109,1,0 +2020-07-03,Logan,Kansas,20109,1,0 +2020-07-04,Logan,Kansas,20109,1,0 +2020-07-05,Logan,Kansas,20109,1,0 +2020-07-06,Logan,Kansas,20109,1,0 +2020-07-07,Logan,Kansas,20109,1,0 +2020-07-08,Logan,Kansas,20109,1,0 +2020-07-09,Logan,Kansas,20109,1,0 +2020-03-23,Lyon,Kansas,20111,2,0 +2020-03-24,Lyon,Kansas,20111,2,0 +2020-03-25,Lyon,Kansas,20111,2,0 +2020-03-26,Lyon,Kansas,20111,3,0 +2020-03-27,Lyon,Kansas,20111,5,0 +2020-03-28,Lyon,Kansas,20111,5,0 +2020-03-29,Lyon,Kansas,20111,7,0 +2020-03-30,Lyon,Kansas,20111,9,0 +2020-03-31,Lyon,Kansas,20111,10,0 +2020-04-01,Lyon,Kansas,20111,12,0 +2020-04-02,Lyon,Kansas,20111,16,0 +2020-04-03,Lyon,Kansas,20111,17,0 +2020-04-04,Lyon,Kansas,20111,19,0 +2020-04-05,Lyon,Kansas,20111,23,0 +2020-04-06,Lyon,Kansas,20111,23,0 +2020-04-07,Lyon,Kansas,20111,24,0 +2020-04-08,Lyon,Kansas,20111,26,0 +2020-04-09,Lyon,Kansas,20111,26,0 +2020-04-10,Lyon,Kansas,20111,26,0 +2020-04-11,Lyon,Kansas,20111,27,0 +2020-04-12,Lyon,Kansas,20111,29,0 +2020-04-13,Lyon,Kansas,20111,29,0 +2020-04-14,Lyon,Kansas,20111,32,0 +2020-04-15,Lyon,Kansas,20111,32,0 +2020-04-16,Lyon,Kansas,20111,37,0 +2020-04-17,Lyon,Kansas,20111,47,0 +2020-04-18,Lyon,Kansas,20111,57,0 +2020-04-19,Lyon,Kansas,20111,71,1 +2020-04-20,Lyon,Kansas,20111,77,1 +2020-04-21,Lyon,Kansas,20111,110,1 +2020-04-22,Lyon,Kansas,20111,110,1 +2020-04-23,Lyon,Kansas,20111,158,1 +2020-04-24,Lyon,Kansas,20111,158,1 +2020-04-25,Lyon,Kansas,20111,158,1 +2020-04-26,Lyon,Kansas,20111,158,1 +2020-04-27,Lyon,Kansas,20111,177,1 +2020-04-28,Lyon,Kansas,20111,177,1 +2020-04-29,Lyon,Kansas,20111,184,1 +2020-04-30,Lyon,Kansas,20111,218,1 +2020-05-01,Lyon,Kansas,20111,218,1 +2020-05-02,Lyon,Kansas,20111,245,1 +2020-05-03,Lyon,Kansas,20111,248,1 +2020-05-04,Lyon,Kansas,20111,255,2 +2020-05-05,Lyon,Kansas,20111,265,2 +2020-05-06,Lyon,Kansas,20111,271,2 +2020-05-07,Lyon,Kansas,20111,311,2 +2020-05-08,Lyon,Kansas,20111,323,2 +2020-05-09,Lyon,Kansas,20111,326,2 +2020-05-10,Lyon,Kansas,20111,330,2 +2020-05-11,Lyon,Kansas,20111,334,2 +2020-05-12,Lyon,Kansas,20111,334,2 +2020-05-13,Lyon,Kansas,20111,336,2 +2020-05-14,Lyon,Kansas,20111,336,2 +2020-05-15,Lyon,Kansas,20111,355,3 +2020-05-16,Lyon,Kansas,20111,363,3 +2020-05-17,Lyon,Kansas,20111,363,3 +2020-05-18,Lyon,Kansas,20111,363,3 +2020-05-19,Lyon,Kansas,20111,369,3 +2020-05-20,Lyon,Kansas,20111,371,3 +2020-05-21,Lyon,Kansas,20111,375,3 +2020-05-22,Lyon,Kansas,20111,379,3 +2020-05-23,Lyon,Kansas,20111,379,3 +2020-05-24,Lyon,Kansas,20111,379,3 +2020-05-25,Lyon,Kansas,20111,379,3 +2020-05-26,Lyon,Kansas,20111,391,3 +2020-05-27,Lyon,Kansas,20111,393,3 +2020-05-28,Lyon,Kansas,20111,398,3 +2020-05-29,Lyon,Kansas,20111,408,3 +2020-05-30,Lyon,Kansas,20111,408,3 +2020-05-31,Lyon,Kansas,20111,408,3 +2020-06-01,Lyon,Kansas,20111,426,4 +2020-06-02,Lyon,Kansas,20111,430,5 +2020-06-03,Lyon,Kansas,20111,433,5 +2020-06-04,Lyon,Kansas,20111,438,6 +2020-06-05,Lyon,Kansas,20111,444,6 +2020-06-06,Lyon,Kansas,20111,444,6 +2020-06-07,Lyon,Kansas,20111,444,6 +2020-06-08,Lyon,Kansas,20111,458,6 +2020-06-09,Lyon,Kansas,20111,459,6 +2020-06-10,Lyon,Kansas,20111,459,6 +2020-06-11,Lyon,Kansas,20111,463,6 +2020-06-12,Lyon,Kansas,20111,465,6 +2020-06-13,Lyon,Kansas,20111,465,6 +2020-06-14,Lyon,Kansas,20111,465,6 +2020-06-15,Lyon,Kansas,20111,473,6 +2020-06-16,Lyon,Kansas,20111,476,6 +2020-06-17,Lyon,Kansas,20111,477,6 +2020-06-18,Lyon,Kansas,20111,480,6 +2020-06-19,Lyon,Kansas,20111,485,6 +2020-06-20,Lyon,Kansas,20111,485,6 +2020-06-21,Lyon,Kansas,20111,485,6 +2020-06-22,Lyon,Kansas,20111,487,7 +2020-06-23,Lyon,Kansas,20111,487,7 +2020-06-24,Lyon,Kansas,20111,489,7 +2020-06-25,Lyon,Kansas,20111,491,7 +2020-06-26,Lyon,Kansas,20111,493,7 +2020-06-27,Lyon,Kansas,20111,493,7 +2020-06-28,Lyon,Kansas,20111,493,7 +2020-06-29,Lyon,Kansas,20111,497,7 +2020-06-30,Lyon,Kansas,20111,497,7 +2020-07-01,Lyon,Kansas,20111,499,7 +2020-07-02,Lyon,Kansas,20111,502,7 +2020-07-03,Lyon,Kansas,20111,502,7 +2020-07-04,Lyon,Kansas,20111,502,7 +2020-07-05,Lyon,Kansas,20111,502,7 +2020-07-06,Lyon,Kansas,20111,510,7 +2020-07-07,Lyon,Kansas,20111,510,7 +2020-07-08,Lyon,Kansas,20111,511,7 +2020-07-09,Lyon,Kansas,20111,515,7 +2020-03-27,McPherson,Kansas,20113,1,0 +2020-03-28,McPherson,Kansas,20113,1,0 +2020-03-29,McPherson,Kansas,20113,3,0 +2020-03-30,McPherson,Kansas,20113,3,0 +2020-03-31,McPherson,Kansas,20113,3,0 +2020-04-01,McPherson,Kansas,20113,5,0 +2020-04-02,McPherson,Kansas,20113,5,0 +2020-04-03,McPherson,Kansas,20113,6,0 +2020-04-04,McPherson,Kansas,20113,8,0 +2020-04-05,McPherson,Kansas,20113,9,0 +2020-04-06,McPherson,Kansas,20113,9,0 +2020-04-07,McPherson,Kansas,20113,10,0 +2020-04-08,McPherson,Kansas,20113,12,0 +2020-04-09,McPherson,Kansas,20113,13,0 +2020-04-10,McPherson,Kansas,20113,13,0 +2020-04-11,McPherson,Kansas,20113,13,0 +2020-04-12,McPherson,Kansas,20113,13,0 +2020-04-13,McPherson,Kansas,20113,13,0 +2020-04-14,McPherson,Kansas,20113,14,0 +2020-04-15,McPherson,Kansas,20113,14,0 +2020-04-16,McPherson,Kansas,20113,15,0 +2020-04-17,McPherson,Kansas,20113,15,0 +2020-04-18,McPherson,Kansas,20113,15,0 +2020-04-19,McPherson,Kansas,20113,16,0 +2020-04-20,McPherson,Kansas,20113,17,0 +2020-04-21,McPherson,Kansas,20113,19,0 +2020-04-22,McPherson,Kansas,20113,19,0 +2020-04-23,McPherson,Kansas,20113,19,0 +2020-04-24,McPherson,Kansas,20113,20,0 +2020-04-25,McPherson,Kansas,20113,20,0 +2020-04-26,McPherson,Kansas,20113,20,0 +2020-04-27,McPherson,Kansas,20113,20,0 +2020-04-28,McPherson,Kansas,20113,20,0 +2020-04-29,McPherson,Kansas,20113,20,0 +2020-04-30,McPherson,Kansas,20113,22,0 +2020-05-01,McPherson,Kansas,20113,22,0 +2020-05-02,McPherson,Kansas,20113,22,0 +2020-05-03,McPherson,Kansas,20113,23,0 +2020-05-04,McPherson,Kansas,20113,23,0 +2020-05-05,McPherson,Kansas,20113,23,0 +2020-05-06,McPherson,Kansas,20113,25,0 +2020-05-07,McPherson,Kansas,20113,25,0 +2020-05-08,McPherson,Kansas,20113,25,0 +2020-05-09,McPherson,Kansas,20113,25,0 +2020-05-10,McPherson,Kansas,20113,25,0 +2020-05-11,McPherson,Kansas,20113,26,0 +2020-05-12,McPherson,Kansas,20113,26,0 +2020-05-13,McPherson,Kansas,20113,26,0 +2020-05-14,McPherson,Kansas,20113,26,0 +2020-05-15,McPherson,Kansas,20113,26,0 +2020-05-16,McPherson,Kansas,20113,26,0 +2020-05-17,McPherson,Kansas,20113,26,0 +2020-05-18,McPherson,Kansas,20113,26,0 +2020-05-19,McPherson,Kansas,20113,26,0 +2020-05-20,McPherson,Kansas,20113,27,0 +2020-05-21,McPherson,Kansas,20113,27,0 +2020-05-22,McPherson,Kansas,20113,27,0 +2020-05-23,McPherson,Kansas,20113,27,0 +2020-05-24,McPherson,Kansas,20113,27,0 +2020-05-25,McPherson,Kansas,20113,27,0 +2020-05-26,McPherson,Kansas,20113,27,0 +2020-05-27,McPherson,Kansas,20113,27,0 +2020-05-28,McPherson,Kansas,20113,27,0 +2020-05-29,McPherson,Kansas,20113,27,0 +2020-05-30,McPherson,Kansas,20113,27,0 +2020-05-31,McPherson,Kansas,20113,27,0 +2020-06-01,McPherson,Kansas,20113,28,0 +2020-06-02,McPherson,Kansas,20113,28,0 +2020-06-03,McPherson,Kansas,20113,29,0 +2020-06-04,McPherson,Kansas,20113,29,0 +2020-06-05,McPherson,Kansas,20113,30,0 +2020-06-06,McPherson,Kansas,20113,30,0 +2020-06-07,McPherson,Kansas,20113,33,0 +2020-06-08,McPherson,Kansas,20113,33,0 +2020-06-09,McPherson,Kansas,20113,38,0 +2020-06-10,McPherson,Kansas,20113,39,0 +2020-06-11,McPherson,Kansas,20113,39,0 +2020-06-12,McPherson,Kansas,20113,39,0 +2020-06-13,McPherson,Kansas,20113,39,0 +2020-06-14,McPherson,Kansas,20113,39,0 +2020-06-15,McPherson,Kansas,20113,40,0 +2020-06-16,McPherson,Kansas,20113,40,0 +2020-06-17,McPherson,Kansas,20113,41,0 +2020-06-18,McPherson,Kansas,20113,42,0 +2020-06-19,McPherson,Kansas,20113,42,0 +2020-06-20,McPherson,Kansas,20113,42,0 +2020-06-21,McPherson,Kansas,20113,42,0 +2020-06-22,McPherson,Kansas,20113,50,0 +2020-06-23,McPherson,Kansas,20113,50,0 +2020-06-24,McPherson,Kansas,20113,50,0 +2020-06-25,McPherson,Kansas,20113,50,0 +2020-06-26,McPherson,Kansas,20113,62,0 +2020-06-27,McPherson,Kansas,20113,62,0 +2020-06-28,McPherson,Kansas,20113,74,0 +2020-06-29,McPherson,Kansas,20113,74,0 +2020-06-30,McPherson,Kansas,20113,74,0 +2020-07-01,McPherson,Kansas,20113,77,0 +2020-07-02,McPherson,Kansas,20113,77,0 +2020-07-03,McPherson,Kansas,20113,81,0 +2020-07-04,McPherson,Kansas,20113,81,0 +2020-07-05,McPherson,Kansas,20113,81,0 +2020-07-06,McPherson,Kansas,20113,84,0 +2020-07-07,McPherson,Kansas,20113,84,0 +2020-07-08,McPherson,Kansas,20113,88,0 +2020-07-09,McPherson,Kansas,20113,88,0 +2020-04-03,Marion,Kansas,20115,1,0 +2020-04-04,Marion,Kansas,20115,2,0 +2020-04-05,Marion,Kansas,20115,2,0 +2020-04-06,Marion,Kansas,20115,3,0 +2020-04-07,Marion,Kansas,20115,3,0 +2020-04-08,Marion,Kansas,20115,3,0 +2020-04-09,Marion,Kansas,20115,3,0 +2020-04-10,Marion,Kansas,20115,3,0 +2020-04-11,Marion,Kansas,20115,3,0 +2020-04-12,Marion,Kansas,20115,3,0 +2020-04-13,Marion,Kansas,20115,4,0 +2020-04-14,Marion,Kansas,20115,5,0 +2020-04-15,Marion,Kansas,20115,5,0 +2020-04-16,Marion,Kansas,20115,5,0 +2020-04-17,Marion,Kansas,20115,5,0 +2020-04-18,Marion,Kansas,20115,5,0 +2020-04-19,Marion,Kansas,20115,5,0 +2020-04-20,Marion,Kansas,20115,5,0 +2020-04-21,Marion,Kansas,20115,5,0 +2020-04-22,Marion,Kansas,20115,5,0 +2020-04-23,Marion,Kansas,20115,5,0 +2020-04-24,Marion,Kansas,20115,5,0 +2020-04-25,Marion,Kansas,20115,5,0 +2020-04-26,Marion,Kansas,20115,5,0 +2020-04-27,Marion,Kansas,20115,5,1 +2020-04-28,Marion,Kansas,20115,5,1 +2020-04-29,Marion,Kansas,20115,5,1 +2020-04-30,Marion,Kansas,20115,5,1 +2020-05-01,Marion,Kansas,20115,5,1 +2020-05-02,Marion,Kansas,20115,5,1 +2020-05-03,Marion,Kansas,20115,5,1 +2020-05-04,Marion,Kansas,20115,5,1 +2020-05-05,Marion,Kansas,20115,5,1 +2020-05-06,Marion,Kansas,20115,5,1 +2020-05-07,Marion,Kansas,20115,6,1 +2020-05-08,Marion,Kansas,20115,6,1 +2020-05-09,Marion,Kansas,20115,6,1 +2020-05-10,Marion,Kansas,20115,6,1 +2020-05-11,Marion,Kansas,20115,7,1 +2020-05-12,Marion,Kansas,20115,7,1 +2020-05-13,Marion,Kansas,20115,7,1 +2020-05-14,Marion,Kansas,20115,7,1 +2020-05-15,Marion,Kansas,20115,7,1 +2020-05-16,Marion,Kansas,20115,7,1 +2020-05-17,Marion,Kansas,20115,7,1 +2020-05-18,Marion,Kansas,20115,7,1 +2020-05-19,Marion,Kansas,20115,7,1 +2020-05-20,Marion,Kansas,20115,8,1 +2020-05-21,Marion,Kansas,20115,8,1 +2020-05-22,Marion,Kansas,20115,7,1 +2020-05-23,Marion,Kansas,20115,7,1 +2020-05-24,Marion,Kansas,20115,7,1 +2020-05-25,Marion,Kansas,20115,7,1 +2020-05-26,Marion,Kansas,20115,7,1 +2020-05-27,Marion,Kansas,20115,7,1 +2020-05-28,Marion,Kansas,20115,7,1 +2020-05-29,Marion,Kansas,20115,7,1 +2020-05-30,Marion,Kansas,20115,7,1 +2020-05-31,Marion,Kansas,20115,7,1 +2020-06-01,Marion,Kansas,20115,7,1 +2020-06-02,Marion,Kansas,20115,7,1 +2020-06-03,Marion,Kansas,20115,7,1 +2020-06-04,Marion,Kansas,20115,7,1 +2020-06-05,Marion,Kansas,20115,7,1 +2020-06-06,Marion,Kansas,20115,7,1 +2020-06-07,Marion,Kansas,20115,7,1 +2020-06-08,Marion,Kansas,20115,7,1 +2020-06-09,Marion,Kansas,20115,7,1 +2020-06-10,Marion,Kansas,20115,7,1 +2020-06-11,Marion,Kansas,20115,7,1 +2020-06-12,Marion,Kansas,20115,7,1 +2020-06-13,Marion,Kansas,20115,7,1 +2020-06-14,Marion,Kansas,20115,7,1 +2020-06-15,Marion,Kansas,20115,7,1 +2020-06-16,Marion,Kansas,20115,7,1 +2020-06-17,Marion,Kansas,20115,7,1 +2020-06-18,Marion,Kansas,20115,7,1 +2020-06-19,Marion,Kansas,20115,7,1 +2020-06-20,Marion,Kansas,20115,7,1 +2020-06-21,Marion,Kansas,20115,7,1 +2020-06-22,Marion,Kansas,20115,9,1 +2020-06-23,Marion,Kansas,20115,9,1 +2020-06-24,Marion,Kansas,20115,9,1 +2020-06-25,Marion,Kansas,20115,9,1 +2020-06-26,Marion,Kansas,20115,10,1 +2020-06-27,Marion,Kansas,20115,10,1 +2020-06-28,Marion,Kansas,20115,10,1 +2020-06-29,Marion,Kansas,20115,11,1 +2020-06-30,Marion,Kansas,20115,11,1 +2020-07-01,Marion,Kansas,20115,11,1 +2020-07-02,Marion,Kansas,20115,11,1 +2020-07-03,Marion,Kansas,20115,12,1 +2020-07-04,Marion,Kansas,20115,12,1 +2020-07-05,Marion,Kansas,20115,12,1 +2020-07-06,Marion,Kansas,20115,12,1 +2020-07-07,Marion,Kansas,20115,12,1 +2020-07-08,Marion,Kansas,20115,15,1 +2020-07-09,Marion,Kansas,20115,15,1 +2020-06-24,Marshall,Kansas,20117,1,0 +2020-06-25,Marshall,Kansas,20117,1,0 +2020-06-26,Marshall,Kansas,20117,1,0 +2020-06-27,Marshall,Kansas,20117,1,0 +2020-06-28,Marshall,Kansas,20117,1,0 +2020-06-29,Marshall,Kansas,20117,1,0 +2020-06-30,Marshall,Kansas,20117,1,0 +2020-07-01,Marshall,Kansas,20117,1,0 +2020-07-02,Marshall,Kansas,20117,1,0 +2020-07-03,Marshall,Kansas,20117,2,0 +2020-07-04,Marshall,Kansas,20117,2,0 +2020-07-05,Marshall,Kansas,20117,2,0 +2020-07-06,Marshall,Kansas,20117,2,0 +2020-07-07,Marshall,Kansas,20117,2,0 +2020-07-08,Marshall,Kansas,20117,2,0 +2020-07-09,Marshall,Kansas,20117,2,0 +2020-04-24,Meade,Kansas,20119,1,0 +2020-04-25,Meade,Kansas,20119,1,0 +2020-04-26,Meade,Kansas,20119,2,0 +2020-04-27,Meade,Kansas,20119,2,0 +2020-04-28,Meade,Kansas,20119,2,0 +2020-04-29,Meade,Kansas,20119,3,0 +2020-04-30,Meade,Kansas,20119,5,0 +2020-05-01,Meade,Kansas,20119,6,0 +2020-05-02,Meade,Kansas,20119,10,0 +2020-05-03,Meade,Kansas,20119,10,0 +2020-05-04,Meade,Kansas,20119,11,0 +2020-05-05,Meade,Kansas,20119,12,0 +2020-05-06,Meade,Kansas,20119,13,0 +2020-05-07,Meade,Kansas,20119,16,0 +2020-05-08,Meade,Kansas,20119,21,0 +2020-05-09,Meade,Kansas,20119,21,0 +2020-05-10,Meade,Kansas,20119,21,0 +2020-05-11,Meade,Kansas,20119,22,0 +2020-05-12,Meade,Kansas,20119,22,0 +2020-05-13,Meade,Kansas,20119,22,0 +2020-05-14,Meade,Kansas,20119,22,0 +2020-05-15,Meade,Kansas,20119,22,0 +2020-05-16,Meade,Kansas,20119,22,0 +2020-05-17,Meade,Kansas,20119,22,0 +2020-05-18,Meade,Kansas,20119,22,0 +2020-05-19,Meade,Kansas,20119,22,0 +2020-05-20,Meade,Kansas,20119,22,0 +2020-05-21,Meade,Kansas,20119,22,0 +2020-05-22,Meade,Kansas,20119,24,0 +2020-05-23,Meade,Kansas,20119,24,0 +2020-05-24,Meade,Kansas,20119,24,0 +2020-05-25,Meade,Kansas,20119,24,0 +2020-05-26,Meade,Kansas,20119,24,0 +2020-05-27,Meade,Kansas,20119,26,0 +2020-05-28,Meade,Kansas,20119,26,0 +2020-05-29,Meade,Kansas,20119,29,0 +2020-05-30,Meade,Kansas,20119,29,0 +2020-05-31,Meade,Kansas,20119,29,0 +2020-06-01,Meade,Kansas,20119,31,0 +2020-06-02,Meade,Kansas,20119,31,0 +2020-06-03,Meade,Kansas,20119,31,0 +2020-06-04,Meade,Kansas,20119,31,0 +2020-06-05,Meade,Kansas,20119,30,0 +2020-06-06,Meade,Kansas,20119,30,0 +2020-06-07,Meade,Kansas,20119,30,0 +2020-06-08,Meade,Kansas,20119,30,0 +2020-06-09,Meade,Kansas,20119,30,0 +2020-06-10,Meade,Kansas,20119,30,0 +2020-06-11,Meade,Kansas,20119,30,0 +2020-06-12,Meade,Kansas,20119,30,0 +2020-06-13,Meade,Kansas,20119,30,0 +2020-06-14,Meade,Kansas,20119,30,0 +2020-06-15,Meade,Kansas,20119,30,0 +2020-06-16,Meade,Kansas,20119,30,0 +2020-06-17,Meade,Kansas,20119,30,0 +2020-06-18,Meade,Kansas,20119,30,0 +2020-06-19,Meade,Kansas,20119,30,0 +2020-06-20,Meade,Kansas,20119,30,0 +2020-06-21,Meade,Kansas,20119,30,0 +2020-06-22,Meade,Kansas,20119,30,0 +2020-06-23,Meade,Kansas,20119,30,0 +2020-06-24,Meade,Kansas,20119,30,0 +2020-06-25,Meade,Kansas,20119,30,0 +2020-06-26,Meade,Kansas,20119,30,0 +2020-06-27,Meade,Kansas,20119,30,0 +2020-06-28,Meade,Kansas,20119,30,0 +2020-06-29,Meade,Kansas,20119,30,0 +2020-06-30,Meade,Kansas,20119,30,0 +2020-07-01,Meade,Kansas,20119,30,0 +2020-07-02,Meade,Kansas,20119,30,0 +2020-07-03,Meade,Kansas,20119,30,0 +2020-07-04,Meade,Kansas,20119,30,0 +2020-07-05,Meade,Kansas,20119,30,0 +2020-07-06,Meade,Kansas,20119,30,0 +2020-07-07,Meade,Kansas,20119,30,0 +2020-07-08,Meade,Kansas,20119,30,0 +2020-07-09,Meade,Kansas,20119,30,0 +2020-03-28,Miami,Kansas,20121,1,0 +2020-03-29,Miami,Kansas,20121,1,0 +2020-03-30,Miami,Kansas,20121,1,0 +2020-03-31,Miami,Kansas,20121,1,0 +2020-04-01,Miami,Kansas,20121,1,0 +2020-04-02,Miami,Kansas,20121,1,0 +2020-04-03,Miami,Kansas,20121,1,0 +2020-04-04,Miami,Kansas,20121,2,0 +2020-04-05,Miami,Kansas,20121,2,0 +2020-04-06,Miami,Kansas,20121,2,0 +2020-04-07,Miami,Kansas,20121,3,0 +2020-04-08,Miami,Kansas,20121,3,0 +2020-04-09,Miami,Kansas,20121,3,0 +2020-04-10,Miami,Kansas,20121,3,0 +2020-04-11,Miami,Kansas,20121,3,0 +2020-04-12,Miami,Kansas,20121,3,0 +2020-04-13,Miami,Kansas,20121,3,0 +2020-04-14,Miami,Kansas,20121,5,0 +2020-04-15,Miami,Kansas,20121,5,0 +2020-04-16,Miami,Kansas,20121,5,0 +2020-04-17,Miami,Kansas,20121,4,0 +2020-04-18,Miami,Kansas,20121,4,0 +2020-04-19,Miami,Kansas,20121,4,0 +2020-04-20,Miami,Kansas,20121,4,0 +2020-04-21,Miami,Kansas,20121,4,0 +2020-04-22,Miami,Kansas,20121,4,0 +2020-04-23,Miami,Kansas,20121,4,0 +2020-04-24,Miami,Kansas,20121,4,0 +2020-04-25,Miami,Kansas,20121,5,0 +2020-04-26,Miami,Kansas,20121,5,0 +2020-04-27,Miami,Kansas,20121,5,0 +2020-04-28,Miami,Kansas,20121,5,0 +2020-04-29,Miami,Kansas,20121,5,0 +2020-04-30,Miami,Kansas,20121,5,0 +2020-05-01,Miami,Kansas,20121,5,0 +2020-05-02,Miami,Kansas,20121,5,0 +2020-05-03,Miami,Kansas,20121,5,0 +2020-05-04,Miami,Kansas,20121,5,0 +2020-05-05,Miami,Kansas,20121,5,0 +2020-05-06,Miami,Kansas,20121,5,0 +2020-05-07,Miami,Kansas,20121,5,0 +2020-05-08,Miami,Kansas,20121,5,0 +2020-05-09,Miami,Kansas,20121,6,0 +2020-05-10,Miami,Kansas,20121,6,0 +2020-05-11,Miami,Kansas,20121,6,0 +2020-05-12,Miami,Kansas,20121,6,0 +2020-05-13,Miami,Kansas,20121,6,0 +2020-05-14,Miami,Kansas,20121,6,0 +2020-05-15,Miami,Kansas,20121,6,0 +2020-05-16,Miami,Kansas,20121,6,0 +2020-05-17,Miami,Kansas,20121,6,0 +2020-05-18,Miami,Kansas,20121,6,0 +2020-05-19,Miami,Kansas,20121,6,0 +2020-05-20,Miami,Kansas,20121,6,0 +2020-05-21,Miami,Kansas,20121,6,0 +2020-05-22,Miami,Kansas,20121,6,0 +2020-05-23,Miami,Kansas,20121,6,0 +2020-05-24,Miami,Kansas,20121,6,0 +2020-05-25,Miami,Kansas,20121,7,0 +2020-05-26,Miami,Kansas,20121,7,0 +2020-05-27,Miami,Kansas,20121,7,0 +2020-05-28,Miami,Kansas,20121,7,0 +2020-05-29,Miami,Kansas,20121,7,0 +2020-05-30,Miami,Kansas,20121,7,0 +2020-05-31,Miami,Kansas,20121,7,0 +2020-06-01,Miami,Kansas,20121,7,0 +2020-06-02,Miami,Kansas,20121,7,0 +2020-06-03,Miami,Kansas,20121,8,0 +2020-06-04,Miami,Kansas,20121,8,0 +2020-06-05,Miami,Kansas,20121,7,0 +2020-06-06,Miami,Kansas,20121,7,0 +2020-06-07,Miami,Kansas,20121,7,0 +2020-06-08,Miami,Kansas,20121,7,0 +2020-06-09,Miami,Kansas,20121,7,0 +2020-06-10,Miami,Kansas,20121,7,0 +2020-06-11,Miami,Kansas,20121,7,0 +2020-06-12,Miami,Kansas,20121,9,0 +2020-06-13,Miami,Kansas,20121,9,0 +2020-06-14,Miami,Kansas,20121,9,0 +2020-06-15,Miami,Kansas,20121,14,0 +2020-06-16,Miami,Kansas,20121,14,0 +2020-06-17,Miami,Kansas,20121,14,0 +2020-06-18,Miami,Kansas,20121,14,0 +2020-06-19,Miami,Kansas,20121,16,0 +2020-06-20,Miami,Kansas,20121,16,0 +2020-06-21,Miami,Kansas,20121,16,0 +2020-06-22,Miami,Kansas,20121,18,0 +2020-06-23,Miami,Kansas,20121,18,0 +2020-06-24,Miami,Kansas,20121,18,0 +2020-06-25,Miami,Kansas,20121,18,0 +2020-06-26,Miami,Kansas,20121,24,0 +2020-06-27,Miami,Kansas,20121,26,0 +2020-06-28,Miami,Kansas,20121,26,0 +2020-06-29,Miami,Kansas,20121,31,0 +2020-06-30,Miami,Kansas,20121,31,0 +2020-07-01,Miami,Kansas,20121,34,0 +2020-07-02,Miami,Kansas,20121,34,0 +2020-07-03,Miami,Kansas,20121,39,0 +2020-07-04,Miami,Kansas,20121,39,0 +2020-07-05,Miami,Kansas,20121,39,0 +2020-07-06,Miami,Kansas,20121,46,0 +2020-07-07,Miami,Kansas,20121,46,0 +2020-07-08,Miami,Kansas,20121,52,0 +2020-07-09,Miami,Kansas,20121,52,0 +2020-03-22,Mitchell,Kansas,20123,1,0 +2020-03-23,Mitchell,Kansas,20123,3,0 +2020-03-24,Mitchell,Kansas,20123,3,0 +2020-03-25,Mitchell,Kansas,20123,3,0 +2020-03-26,Mitchell,Kansas,20123,3,0 +2020-03-27,Mitchell,Kansas,20123,3,0 +2020-03-28,Mitchell,Kansas,20123,3,0 +2020-03-29,Mitchell,Kansas,20123,3,0 +2020-03-30,Mitchell,Kansas,20123,3,0 +2020-03-31,Mitchell,Kansas,20123,3,0 +2020-04-01,Mitchell,Kansas,20123,3,0 +2020-04-02,Mitchell,Kansas,20123,2,0 +2020-04-03,Mitchell,Kansas,20123,2,0 +2020-04-04,Mitchell,Kansas,20123,2,0 +2020-04-05,Mitchell,Kansas,20123,2,0 +2020-04-06,Mitchell,Kansas,20123,2,0 +2020-04-07,Mitchell,Kansas,20123,2,0 +2020-04-08,Mitchell,Kansas,20123,2,0 +2020-04-09,Mitchell,Kansas,20123,2,0 +2020-04-10,Mitchell,Kansas,20123,2,0 +2020-04-11,Mitchell,Kansas,20123,2,0 +2020-04-12,Mitchell,Kansas,20123,2,0 +2020-04-13,Mitchell,Kansas,20123,2,0 +2020-04-14,Mitchell,Kansas,20123,2,0 +2020-04-15,Mitchell,Kansas,20123,2,0 +2020-04-16,Mitchell,Kansas,20123,2,0 +2020-04-17,Mitchell,Kansas,20123,2,0 +2020-04-18,Mitchell,Kansas,20123,2,0 +2020-04-19,Mitchell,Kansas,20123,2,0 +2020-04-20,Mitchell,Kansas,20123,2,0 +2020-04-21,Mitchell,Kansas,20123,2,0 +2020-04-22,Mitchell,Kansas,20123,2,0 +2020-04-23,Mitchell,Kansas,20123,2,0 +2020-04-24,Mitchell,Kansas,20123,2,0 +2020-04-25,Mitchell,Kansas,20123,2,0 +2020-04-26,Mitchell,Kansas,20123,2,0 +2020-04-27,Mitchell,Kansas,20123,2,0 +2020-04-28,Mitchell,Kansas,20123,2,0 +2020-04-29,Mitchell,Kansas,20123,3,0 +2020-04-30,Mitchell,Kansas,20123,3,0 +2020-05-01,Mitchell,Kansas,20123,3,0 +2020-05-02,Mitchell,Kansas,20123,3,0 +2020-05-03,Mitchell,Kansas,20123,3,0 +2020-05-04,Mitchell,Kansas,20123,3,0 +2020-05-05,Mitchell,Kansas,20123,3,0 +2020-05-06,Mitchell,Kansas,20123,3,0 +2020-05-07,Mitchell,Kansas,20123,3,0 +2020-05-08,Mitchell,Kansas,20123,3,0 +2020-05-09,Mitchell,Kansas,20123,3,0 +2020-05-10,Mitchell,Kansas,20123,3,0 +2020-05-11,Mitchell,Kansas,20123,3,0 +2020-05-12,Mitchell,Kansas,20123,3,0 +2020-05-13,Mitchell,Kansas,20123,3,0 +2020-05-14,Mitchell,Kansas,20123,3,0 +2020-05-15,Mitchell,Kansas,20123,3,0 +2020-05-16,Mitchell,Kansas,20123,3,0 +2020-05-17,Mitchell,Kansas,20123,3,0 +2020-05-18,Mitchell,Kansas,20123,3,0 +2020-05-19,Mitchell,Kansas,20123,3,0 +2020-05-20,Mitchell,Kansas,20123,3,0 +2020-05-21,Mitchell,Kansas,20123,3,0 +2020-05-22,Mitchell,Kansas,20123,3,0 +2020-05-23,Mitchell,Kansas,20123,3,0 +2020-05-24,Mitchell,Kansas,20123,3,0 +2020-05-25,Mitchell,Kansas,20123,3,0 +2020-05-26,Mitchell,Kansas,20123,3,0 +2020-05-27,Mitchell,Kansas,20123,3,0 +2020-05-28,Mitchell,Kansas,20123,3,0 +2020-05-29,Mitchell,Kansas,20123,4,0 +2020-05-30,Mitchell,Kansas,20123,4,0 +2020-05-31,Mitchell,Kansas,20123,4,0 +2020-06-01,Mitchell,Kansas,20123,4,0 +2020-06-02,Mitchell,Kansas,20123,4,0 +2020-06-03,Mitchell,Kansas,20123,4,0 +2020-06-04,Mitchell,Kansas,20123,4,0 +2020-06-05,Mitchell,Kansas,20123,4,0 +2020-06-06,Mitchell,Kansas,20123,4,0 +2020-06-07,Mitchell,Kansas,20123,4,0 +2020-06-08,Mitchell,Kansas,20123,4,0 +2020-06-09,Mitchell,Kansas,20123,4,0 +2020-06-10,Mitchell,Kansas,20123,4,0 +2020-06-11,Mitchell,Kansas,20123,4,0 +2020-06-12,Mitchell,Kansas,20123,4,0 +2020-06-13,Mitchell,Kansas,20123,4,0 +2020-06-14,Mitchell,Kansas,20123,4,0 +2020-06-15,Mitchell,Kansas,20123,4,0 +2020-06-16,Mitchell,Kansas,20123,4,0 +2020-06-17,Mitchell,Kansas,20123,4,0 +2020-06-18,Mitchell,Kansas,20123,4,0 +2020-06-19,Mitchell,Kansas,20123,4,0 +2020-06-20,Mitchell,Kansas,20123,4,0 +2020-06-21,Mitchell,Kansas,20123,4,0 +2020-06-22,Mitchell,Kansas,20123,4,0 +2020-06-23,Mitchell,Kansas,20123,4,0 +2020-06-24,Mitchell,Kansas,20123,4,0 +2020-06-25,Mitchell,Kansas,20123,4,0 +2020-06-26,Mitchell,Kansas,20123,4,0 +2020-06-27,Mitchell,Kansas,20123,4,0 +2020-06-28,Mitchell,Kansas,20123,4,0 +2020-06-29,Mitchell,Kansas,20123,4,0 +2020-06-30,Mitchell,Kansas,20123,4,0 +2020-07-01,Mitchell,Kansas,20123,4,0 +2020-07-02,Mitchell,Kansas,20123,4,0 +2020-07-03,Mitchell,Kansas,20123,4,0 +2020-07-04,Mitchell,Kansas,20123,4,0 +2020-07-05,Mitchell,Kansas,20123,4,0 +2020-07-06,Mitchell,Kansas,20123,4,0 +2020-07-07,Mitchell,Kansas,20123,4,0 +2020-07-08,Mitchell,Kansas,20123,5,0 +2020-07-09,Mitchell,Kansas,20123,5,0 +2020-03-29,Montgomery,Kansas,20125,3,0 +2020-03-30,Montgomery,Kansas,20125,4,0 +2020-03-31,Montgomery,Kansas,20125,5,0 +2020-04-01,Montgomery,Kansas,20125,6,0 +2020-04-02,Montgomery,Kansas,20125,6,0 +2020-04-03,Montgomery,Kansas,20125,6,0 +2020-04-04,Montgomery,Kansas,20125,6,2 +2020-04-05,Montgomery,Kansas,20125,8,2 +2020-04-06,Montgomery,Kansas,20125,9,2 +2020-04-07,Montgomery,Kansas,20125,9,2 +2020-04-08,Montgomery,Kansas,20125,11,2 +2020-04-09,Montgomery,Kansas,20125,11,2 +2020-04-10,Montgomery,Kansas,20125,12,2 +2020-04-11,Montgomery,Kansas,20125,14,2 +2020-04-12,Montgomery,Kansas,20125,11,2 +2020-04-13,Montgomery,Kansas,20125,11,2 +2020-04-14,Montgomery,Kansas,20125,11,2 +2020-04-15,Montgomery,Kansas,20125,11,2 +2020-04-16,Montgomery,Kansas,20125,11,2 +2020-04-17,Montgomery,Kansas,20125,12,2 +2020-04-18,Montgomery,Kansas,20125,12,2 +2020-04-19,Montgomery,Kansas,20125,12,2 +2020-04-20,Montgomery,Kansas,20125,12,2 +2020-04-21,Montgomery,Kansas,20125,12,2 +2020-04-22,Montgomery,Kansas,20125,13,2 +2020-04-23,Montgomery,Kansas,20125,13,2 +2020-04-24,Montgomery,Kansas,20125,13,2 +2020-04-25,Montgomery,Kansas,20125,14,2 +2020-04-26,Montgomery,Kansas,20125,16,2 +2020-04-27,Montgomery,Kansas,20125,16,2 +2020-04-28,Montgomery,Kansas,20125,16,2 +2020-04-29,Montgomery,Kansas,20125,16,2 +2020-04-30,Montgomery,Kansas,20125,17,2 +2020-05-01,Montgomery,Kansas,20125,17,2 +2020-05-02,Montgomery,Kansas,20125,17,2 +2020-05-03,Montgomery,Kansas,20125,18,2 +2020-05-04,Montgomery,Kansas,20125,19,2 +2020-05-05,Montgomery,Kansas,20125,19,2 +2020-05-06,Montgomery,Kansas,20125,19,2 +2020-05-07,Montgomery,Kansas,20125,19,2 +2020-05-08,Montgomery,Kansas,20125,21,2 +2020-05-09,Montgomery,Kansas,20125,21,2 +2020-05-10,Montgomery,Kansas,20125,21,2 +2020-05-11,Montgomery,Kansas,20125,21,2 +2020-05-12,Montgomery,Kansas,20125,21,2 +2020-05-13,Montgomery,Kansas,20125,20,2 +2020-05-14,Montgomery,Kansas,20125,20,2 +2020-05-15,Montgomery,Kansas,20125,20,2 +2020-05-16,Montgomery,Kansas,20125,20,2 +2020-05-17,Montgomery,Kansas,20125,20,2 +2020-05-18,Montgomery,Kansas,20125,20,2 +2020-05-19,Montgomery,Kansas,20125,20,2 +2020-05-20,Montgomery,Kansas,20125,20,2 +2020-05-21,Montgomery,Kansas,20125,20,2 +2020-05-22,Montgomery,Kansas,20125,20,2 +2020-05-23,Montgomery,Kansas,20125,20,2 +2020-05-24,Montgomery,Kansas,20125,20,2 +2020-05-25,Montgomery,Kansas,20125,20,2 +2020-05-26,Montgomery,Kansas,20125,20,2 +2020-05-27,Montgomery,Kansas,20125,20,2 +2020-05-28,Montgomery,Kansas,20125,20,2 +2020-05-29,Montgomery,Kansas,20125,20,2 +2020-05-30,Montgomery,Kansas,20125,20,2 +2020-05-31,Montgomery,Kansas,20125,20,2 +2020-06-01,Montgomery,Kansas,20125,20,2 +2020-06-02,Montgomery,Kansas,20125,20,2 +2020-06-03,Montgomery,Kansas,20125,20,2 +2020-06-04,Montgomery,Kansas,20125,20,2 +2020-06-05,Montgomery,Kansas,20125,20,2 +2020-06-06,Montgomery,Kansas,20125,20,2 +2020-06-07,Montgomery,Kansas,20125,20,2 +2020-06-08,Montgomery,Kansas,20125,20,2 +2020-06-09,Montgomery,Kansas,20125,20,2 +2020-06-10,Montgomery,Kansas,20125,20,2 +2020-06-11,Montgomery,Kansas,20125,20,2 +2020-06-12,Montgomery,Kansas,20125,21,2 +2020-06-13,Montgomery,Kansas,20125,21,2 +2020-06-14,Montgomery,Kansas,20125,21,2 +2020-06-15,Montgomery,Kansas,20125,22,2 +2020-06-16,Montgomery,Kansas,20125,22,2 +2020-06-17,Montgomery,Kansas,20125,23,2 +2020-06-18,Montgomery,Kansas,20125,23,2 +2020-06-19,Montgomery,Kansas,20125,25,3 +2020-06-20,Montgomery,Kansas,20125,25,3 +2020-06-21,Montgomery,Kansas,20125,25,3 +2020-06-22,Montgomery,Kansas,20125,25,3 +2020-06-23,Montgomery,Kansas,20125,25,3 +2020-06-24,Montgomery,Kansas,20125,25,3 +2020-06-25,Montgomery,Kansas,20125,25,3 +2020-06-26,Montgomery,Kansas,20125,29,3 +2020-06-27,Montgomery,Kansas,20125,29,3 +2020-06-28,Montgomery,Kansas,20125,29,3 +2020-06-29,Montgomery,Kansas,20125,36,3 +2020-06-30,Montgomery,Kansas,20125,36,3 +2020-07-01,Montgomery,Kansas,20125,36,3 +2020-07-02,Montgomery,Kansas,20125,36,3 +2020-07-03,Montgomery,Kansas,20125,41,3 +2020-07-04,Montgomery,Kansas,20125,41,3 +2020-07-05,Montgomery,Kansas,20125,41,3 +2020-07-06,Montgomery,Kansas,20125,49,3 +2020-07-07,Montgomery,Kansas,20125,49,3 +2020-07-08,Montgomery,Kansas,20125,53,3 +2020-07-09,Montgomery,Kansas,20125,53,3 +2020-03-19,Morris,Kansas,20127,2,0 +2020-03-20,Morris,Kansas,20127,2,0 +2020-03-21,Morris,Kansas,20127,2,0 +2020-03-22,Morris,Kansas,20127,2,0 +2020-03-23,Morris,Kansas,20127,2,0 +2020-03-24,Morris,Kansas,20127,2,0 +2020-03-25,Morris,Kansas,20127,2,0 +2020-03-26,Morris,Kansas,20127,2,0 +2020-03-27,Morris,Kansas,20127,2,0 +2020-03-28,Morris,Kansas,20127,2,0 +2020-03-29,Morris,Kansas,20127,2,0 +2020-03-30,Morris,Kansas,20127,2,0 +2020-03-31,Morris,Kansas,20127,2,0 +2020-04-01,Morris,Kansas,20127,2,0 +2020-04-02,Morris,Kansas,20127,2,0 +2020-04-03,Morris,Kansas,20127,2,0 +2020-04-04,Morris,Kansas,20127,2,0 +2020-04-05,Morris,Kansas,20127,2,0 +2020-04-06,Morris,Kansas,20127,2,0 +2020-04-07,Morris,Kansas,20127,2,0 +2020-04-08,Morris,Kansas,20127,2,0 +2020-04-09,Morris,Kansas,20127,2,0 +2020-04-10,Morris,Kansas,20127,2,0 +2020-04-11,Morris,Kansas,20127,2,0 +2020-04-12,Morris,Kansas,20127,2,0 +2020-04-13,Morris,Kansas,20127,2,0 +2020-04-14,Morris,Kansas,20127,2,0 +2020-04-15,Morris,Kansas,20127,2,0 +2020-04-16,Morris,Kansas,20127,2,0 +2020-04-17,Morris,Kansas,20127,2,0 +2020-04-18,Morris,Kansas,20127,2,0 +2020-04-19,Morris,Kansas,20127,2,0 +2020-04-20,Morris,Kansas,20127,2,0 +2020-04-21,Morris,Kansas,20127,2,0 +2020-04-22,Morris,Kansas,20127,2,0 +2020-04-23,Morris,Kansas,20127,3,0 +2020-04-24,Morris,Kansas,20127,3,0 +2020-04-25,Morris,Kansas,20127,3,0 +2020-04-26,Morris,Kansas,20127,3,0 +2020-04-27,Morris,Kansas,20127,3,0 +2020-04-28,Morris,Kansas,20127,3,0 +2020-04-29,Morris,Kansas,20127,3,0 +2020-04-30,Morris,Kansas,20127,3,0 +2020-05-01,Morris,Kansas,20127,3,0 +2020-05-02,Morris,Kansas,20127,3,0 +2020-05-03,Morris,Kansas,20127,3,0 +2020-05-04,Morris,Kansas,20127,3,0 +2020-05-05,Morris,Kansas,20127,3,0 +2020-05-06,Morris,Kansas,20127,3,0 +2020-05-07,Morris,Kansas,20127,3,0 +2020-05-08,Morris,Kansas,20127,3,0 +2020-05-09,Morris,Kansas,20127,3,0 +2020-05-10,Morris,Kansas,20127,3,0 +2020-05-11,Morris,Kansas,20127,3,0 +2020-05-12,Morris,Kansas,20127,3,0 +2020-05-13,Morris,Kansas,20127,3,0 +2020-05-14,Morris,Kansas,20127,3,0 +2020-05-15,Morris,Kansas,20127,3,0 +2020-05-16,Morris,Kansas,20127,3,0 +2020-05-17,Morris,Kansas,20127,3,0 +2020-05-18,Morris,Kansas,20127,3,0 +2020-05-19,Morris,Kansas,20127,3,0 +2020-05-20,Morris,Kansas,20127,3,0 +2020-05-21,Morris,Kansas,20127,3,0 +2020-05-22,Morris,Kansas,20127,3,0 +2020-05-23,Morris,Kansas,20127,3,0 +2020-05-24,Morris,Kansas,20127,3,0 +2020-05-25,Morris,Kansas,20127,4,0 +2020-05-26,Morris,Kansas,20127,4,0 +2020-05-27,Morris,Kansas,20127,5,0 +2020-05-28,Morris,Kansas,20127,5,0 +2020-05-29,Morris,Kansas,20127,5,0 +2020-05-30,Morris,Kansas,20127,5,0 +2020-05-31,Morris,Kansas,20127,5,0 +2020-06-01,Morris,Kansas,20127,5,0 +2020-06-02,Morris,Kansas,20127,5,0 +2020-06-03,Morris,Kansas,20127,5,0 +2020-06-04,Morris,Kansas,20127,5,0 +2020-06-05,Morris,Kansas,20127,5,0 +2020-06-06,Morris,Kansas,20127,5,0 +2020-06-07,Morris,Kansas,20127,5,0 +2020-06-08,Morris,Kansas,20127,5,0 +2020-06-09,Morris,Kansas,20127,5,0 +2020-06-10,Morris,Kansas,20127,5,0 +2020-06-11,Morris,Kansas,20127,5,0 +2020-06-12,Morris,Kansas,20127,5,0 +2020-06-13,Morris,Kansas,20127,5,0 +2020-06-14,Morris,Kansas,20127,5,0 +2020-06-15,Morris,Kansas,20127,5,0 +2020-06-16,Morris,Kansas,20127,5,0 +2020-06-17,Morris,Kansas,20127,5,0 +2020-06-18,Morris,Kansas,20127,5,0 +2020-06-19,Morris,Kansas,20127,5,0 +2020-06-20,Morris,Kansas,20127,5,0 +2020-06-21,Morris,Kansas,20127,5,0 +2020-06-22,Morris,Kansas,20127,5,0 +2020-06-23,Morris,Kansas,20127,5,0 +2020-06-24,Morris,Kansas,20127,5,0 +2020-06-25,Morris,Kansas,20127,5,0 +2020-06-26,Morris,Kansas,20127,5,0 +2020-06-27,Morris,Kansas,20127,5,0 +2020-06-28,Morris,Kansas,20127,5,0 +2020-06-29,Morris,Kansas,20127,5,0 +2020-06-30,Morris,Kansas,20127,5,0 +2020-07-01,Morris,Kansas,20127,5,0 +2020-07-02,Morris,Kansas,20127,5,0 +2020-07-03,Morris,Kansas,20127,5,0 +2020-07-04,Morris,Kansas,20127,5,0 +2020-07-05,Morris,Kansas,20127,5,0 +2020-07-06,Morris,Kansas,20127,5,0 +2020-07-07,Morris,Kansas,20127,5,0 +2020-07-08,Morris,Kansas,20127,5,0 +2020-07-09,Morris,Kansas,20127,5,0 +2020-04-06,Morton,Kansas,20129,1,0 +2020-04-07,Morton,Kansas,20129,1,0 +2020-04-08,Morton,Kansas,20129,1,0 +2020-04-09,Morton,Kansas,20129,1,0 +2020-04-10,Morton,Kansas,20129,1,0 +2020-04-11,Morton,Kansas,20129,1,0 +2020-04-12,Morton,Kansas,20129,1,0 +2020-04-13,Morton,Kansas,20129,1,0 +2020-04-14,Morton,Kansas,20129,1,0 +2020-04-15,Morton,Kansas,20129,1,0 +2020-04-16,Morton,Kansas,20129,2,0 +2020-04-17,Morton,Kansas,20129,2,0 +2020-04-18,Morton,Kansas,20129,2,0 +2020-04-19,Morton,Kansas,20129,2,0 +2020-04-20,Morton,Kansas,20129,2,0 +2020-04-21,Morton,Kansas,20129,2,0 +2020-04-22,Morton,Kansas,20129,2,0 +2020-04-23,Morton,Kansas,20129,2,0 +2020-04-24,Morton,Kansas,20129,2,0 +2020-04-25,Morton,Kansas,20129,2,0 +2020-04-26,Morton,Kansas,20129,2,0 +2020-04-27,Morton,Kansas,20129,3,0 +2020-04-28,Morton,Kansas,20129,3,0 +2020-04-29,Morton,Kansas,20129,3,0 +2020-04-30,Morton,Kansas,20129,3,0 +2020-05-01,Morton,Kansas,20129,3,0 +2020-05-02,Morton,Kansas,20129,3,0 +2020-05-03,Morton,Kansas,20129,3,0 +2020-05-04,Morton,Kansas,20129,3,0 +2020-05-05,Morton,Kansas,20129,3,0 +2020-05-06,Morton,Kansas,20129,3,0 +2020-05-07,Morton,Kansas,20129,3,0 +2020-05-08,Morton,Kansas,20129,3,0 +2020-05-09,Morton,Kansas,20129,3,0 +2020-05-10,Morton,Kansas,20129,3,0 +2020-05-11,Morton,Kansas,20129,4,0 +2020-05-12,Morton,Kansas,20129,4,0 +2020-05-13,Morton,Kansas,20129,4,0 +2020-05-14,Morton,Kansas,20129,4,0 +2020-05-15,Morton,Kansas,20129,4,0 +2020-05-16,Morton,Kansas,20129,4,0 +2020-05-17,Morton,Kansas,20129,4,0 +2020-05-18,Morton,Kansas,20129,4,0 +2020-05-19,Morton,Kansas,20129,4,0 +2020-05-20,Morton,Kansas,20129,4,0 +2020-05-21,Morton,Kansas,20129,4,0 +2020-05-22,Morton,Kansas,20129,4,0 +2020-05-23,Morton,Kansas,20129,4,0 +2020-05-24,Morton,Kansas,20129,4,0 +2020-05-25,Morton,Kansas,20129,4,0 +2020-05-26,Morton,Kansas,20129,4,0 +2020-05-27,Morton,Kansas,20129,4,0 +2020-05-28,Morton,Kansas,20129,4,0 +2020-05-29,Morton,Kansas,20129,5,0 +2020-05-30,Morton,Kansas,20129,5,0 +2020-05-31,Morton,Kansas,20129,5,0 +2020-06-01,Morton,Kansas,20129,6,0 +2020-06-02,Morton,Kansas,20129,6,0 +2020-06-03,Morton,Kansas,20129,6,0 +2020-06-04,Morton,Kansas,20129,6,0 +2020-06-05,Morton,Kansas,20129,6,0 +2020-06-06,Morton,Kansas,20129,6,0 +2020-06-07,Morton,Kansas,20129,6,0 +2020-06-08,Morton,Kansas,20129,6,0 +2020-06-09,Morton,Kansas,20129,6,0 +2020-06-10,Morton,Kansas,20129,6,0 +2020-06-11,Morton,Kansas,20129,6,0 +2020-06-12,Morton,Kansas,20129,6,0 +2020-06-13,Morton,Kansas,20129,6,0 +2020-06-14,Morton,Kansas,20129,6,0 +2020-06-15,Morton,Kansas,20129,6,0 +2020-06-16,Morton,Kansas,20129,6,0 +2020-06-17,Morton,Kansas,20129,6,0 +2020-06-18,Morton,Kansas,20129,6,0 +2020-06-19,Morton,Kansas,20129,6,0 +2020-06-20,Morton,Kansas,20129,6,0 +2020-06-21,Morton,Kansas,20129,6,0 +2020-06-22,Morton,Kansas,20129,6,0 +2020-06-23,Morton,Kansas,20129,6,0 +2020-06-24,Morton,Kansas,20129,6,0 +2020-06-25,Morton,Kansas,20129,6,0 +2020-06-26,Morton,Kansas,20129,7,0 +2020-06-27,Morton,Kansas,20129,7,0 +2020-06-28,Morton,Kansas,20129,7,2 +2020-06-29,Morton,Kansas,20129,7,2 +2020-06-30,Morton,Kansas,20129,7,2 +2020-07-01,Morton,Kansas,20129,7,2 +2020-07-02,Morton,Kansas,20129,7,2 +2020-07-03,Morton,Kansas,20129,7,2 +2020-07-04,Morton,Kansas,20129,7,2 +2020-07-05,Morton,Kansas,20129,7,2 +2020-07-06,Morton,Kansas,20129,7,2 +2020-07-07,Morton,Kansas,20129,7,2 +2020-07-08,Morton,Kansas,20129,7,2 +2020-07-09,Morton,Kansas,20129,7,2 +2020-04-28,Nemaha,Kansas,20131,1,0 +2020-04-29,Nemaha,Kansas,20131,1,0 +2020-04-30,Nemaha,Kansas,20131,1,0 +2020-05-01,Nemaha,Kansas,20131,1,0 +2020-05-02,Nemaha,Kansas,20131,1,0 +2020-05-03,Nemaha,Kansas,20131,1,0 +2020-05-04,Nemaha,Kansas,20131,1,0 +2020-05-05,Nemaha,Kansas,20131,1,0 +2020-05-06,Nemaha,Kansas,20131,1,0 +2020-05-07,Nemaha,Kansas,20131,1,0 +2020-05-08,Nemaha,Kansas,20131,1,0 +2020-05-09,Nemaha,Kansas,20131,1,0 +2020-05-10,Nemaha,Kansas,20131,1,0 +2020-05-11,Nemaha,Kansas,20131,1,0 +2020-05-12,Nemaha,Kansas,20131,1,0 +2020-05-13,Nemaha,Kansas,20131,1,0 +2020-05-14,Nemaha,Kansas,20131,1,0 +2020-05-15,Nemaha,Kansas,20131,1,0 +2020-05-16,Nemaha,Kansas,20131,1,0 +2020-05-17,Nemaha,Kansas,20131,1,0 +2020-05-18,Nemaha,Kansas,20131,3,0 +2020-05-19,Nemaha,Kansas,20131,3,0 +2020-05-20,Nemaha,Kansas,20131,5,0 +2020-05-21,Nemaha,Kansas,20131,5,0 +2020-05-22,Nemaha,Kansas,20131,9,0 +2020-05-23,Nemaha,Kansas,20131,9,0 +2020-05-24,Nemaha,Kansas,20131,9,0 +2020-05-25,Nemaha,Kansas,20131,13,0 +2020-05-26,Nemaha,Kansas,20131,13,0 +2020-05-27,Nemaha,Kansas,20131,14,0 +2020-05-28,Nemaha,Kansas,20131,14,0 +2020-05-29,Nemaha,Kansas,20131,15,0 +2020-05-30,Nemaha,Kansas,20131,15,0 +2020-05-31,Nemaha,Kansas,20131,15,0 +2020-06-01,Nemaha,Kansas,20131,16,0 +2020-06-02,Nemaha,Kansas,20131,16,0 +2020-06-03,Nemaha,Kansas,20131,19,0 +2020-06-04,Nemaha,Kansas,20131,19,0 +2020-06-05,Nemaha,Kansas,20131,19,0 +2020-06-06,Nemaha,Kansas,20131,19,0 +2020-06-07,Nemaha,Kansas,20131,19,0 +2020-06-08,Nemaha,Kansas,20131,19,0 +2020-06-09,Nemaha,Kansas,20131,19,0 +2020-06-10,Nemaha,Kansas,20131,19,0 +2020-06-11,Nemaha,Kansas,20131,19,0 +2020-06-12,Nemaha,Kansas,20131,20,0 +2020-06-13,Nemaha,Kansas,20131,20,0 +2020-06-14,Nemaha,Kansas,20131,20,0 +2020-06-15,Nemaha,Kansas,20131,21,0 +2020-06-16,Nemaha,Kansas,20131,21,0 +2020-06-17,Nemaha,Kansas,20131,21,0 +2020-06-18,Nemaha,Kansas,20131,21,0 +2020-06-19,Nemaha,Kansas,20131,22,0 +2020-06-20,Nemaha,Kansas,20131,22,0 +2020-06-21,Nemaha,Kansas,20131,22,0 +2020-06-22,Nemaha,Kansas,20131,23,0 +2020-06-23,Nemaha,Kansas,20131,23,0 +2020-06-24,Nemaha,Kansas,20131,23,0 +2020-06-25,Nemaha,Kansas,20131,23,0 +2020-06-26,Nemaha,Kansas,20131,24,0 +2020-06-27,Nemaha,Kansas,20131,24,0 +2020-06-28,Nemaha,Kansas,20131,24,0 +2020-06-29,Nemaha,Kansas,20131,24,0 +2020-06-30,Nemaha,Kansas,20131,24,0 +2020-07-01,Nemaha,Kansas,20131,28,0 +2020-07-02,Nemaha,Kansas,20131,28,0 +2020-07-03,Nemaha,Kansas,20131,27,0 +2020-07-04,Nemaha,Kansas,20131,27,0 +2020-07-05,Nemaha,Kansas,20131,27,0 +2020-07-06,Nemaha,Kansas,20131,28,0 +2020-07-07,Nemaha,Kansas,20131,28,0 +2020-07-08,Nemaha,Kansas,20131,29,0 +2020-07-09,Nemaha,Kansas,20131,29,0 +2020-03-25,Neosho,Kansas,20133,1,0 +2020-03-26,Neosho,Kansas,20133,1,0 +2020-03-27,Neosho,Kansas,20133,1,0 +2020-03-28,Neosho,Kansas,20133,1,0 +2020-03-29,Neosho,Kansas,20133,1,0 +2020-03-30,Neosho,Kansas,20133,1,0 +2020-03-31,Neosho,Kansas,20133,1,0 +2020-04-01,Neosho,Kansas,20133,1,0 +2020-04-02,Neosho,Kansas,20133,1,0 +2020-04-03,Neosho,Kansas,20133,1,0 +2020-04-04,Neosho,Kansas,20133,1,0 +2020-04-05,Neosho,Kansas,20133,1,0 +2020-04-06,Neosho,Kansas,20133,1,0 +2020-04-07,Neosho,Kansas,20133,1,0 +2020-04-08,Neosho,Kansas,20133,1,0 +2020-04-09,Neosho,Kansas,20133,1,0 +2020-04-10,Neosho,Kansas,20133,1,0 +2020-04-11,Neosho,Kansas,20133,2,0 +2020-04-12,Neosho,Kansas,20133,2,0 +2020-04-13,Neosho,Kansas,20133,2,0 +2020-04-14,Neosho,Kansas,20133,2,0 +2020-04-15,Neosho,Kansas,20133,2,0 +2020-04-16,Neosho,Kansas,20133,2,0 +2020-04-17,Neosho,Kansas,20133,2,0 +2020-04-18,Neosho,Kansas,20133,2,0 +2020-04-19,Neosho,Kansas,20133,2,0 +2020-04-20,Neosho,Kansas,20133,2,0 +2020-04-21,Neosho,Kansas,20133,2,0 +2020-04-22,Neosho,Kansas,20133,2,0 +2020-04-23,Neosho,Kansas,20133,2,0 +2020-04-24,Neosho,Kansas,20133,2,0 +2020-04-25,Neosho,Kansas,20133,2,0 +2020-04-26,Neosho,Kansas,20133,2,0 +2020-04-27,Neosho,Kansas,20133,2,0 +2020-04-28,Neosho,Kansas,20133,2,0 +2020-04-29,Neosho,Kansas,20133,3,0 +2020-04-30,Neosho,Kansas,20133,3,0 +2020-05-01,Neosho,Kansas,20133,3,0 +2020-05-02,Neosho,Kansas,20133,3,0 +2020-05-03,Neosho,Kansas,20133,3,0 +2020-05-04,Neosho,Kansas,20133,3,0 +2020-05-05,Neosho,Kansas,20133,3,0 +2020-05-06,Neosho,Kansas,20133,3,0 +2020-05-07,Neosho,Kansas,20133,3,0 +2020-05-08,Neosho,Kansas,20133,2,0 +2020-05-09,Neosho,Kansas,20133,2,0 +2020-05-10,Neosho,Kansas,20133,2,0 +2020-05-11,Neosho,Kansas,20133,2,0 +2020-05-12,Neosho,Kansas,20133,2,0 +2020-05-13,Neosho,Kansas,20133,2,0 +2020-05-14,Neosho,Kansas,20133,2,0 +2020-05-15,Neosho,Kansas,20133,2,0 +2020-05-16,Neosho,Kansas,20133,2,0 +2020-05-17,Neosho,Kansas,20133,2,0 +2020-05-18,Neosho,Kansas,20133,2,0 +2020-05-19,Neosho,Kansas,20133,2,0 +2020-05-20,Neosho,Kansas,20133,2,0 +2020-05-21,Neosho,Kansas,20133,2,0 +2020-05-22,Neosho,Kansas,20133,3,0 +2020-05-23,Neosho,Kansas,20133,3,0 +2020-05-24,Neosho,Kansas,20133,3,0 +2020-05-25,Neosho,Kansas,20133,2,0 +2020-05-26,Neosho,Kansas,20133,2,0 +2020-05-27,Neosho,Kansas,20133,2,0 +2020-05-28,Neosho,Kansas,20133,2,0 +2020-05-29,Neosho,Kansas,20133,2,0 +2020-05-30,Neosho,Kansas,20133,2,0 +2020-05-31,Neosho,Kansas,20133,2,0 +2020-06-01,Neosho,Kansas,20133,2,0 +2020-06-02,Neosho,Kansas,20133,2,0 +2020-06-03,Neosho,Kansas,20133,2,0 +2020-06-04,Neosho,Kansas,20133,2,0 +2020-06-05,Neosho,Kansas,20133,2,0 +2020-06-06,Neosho,Kansas,20133,2,0 +2020-06-07,Neosho,Kansas,20133,2,0 +2020-06-08,Neosho,Kansas,20133,3,0 +2020-06-09,Neosho,Kansas,20133,3,0 +2020-06-10,Neosho,Kansas,20133,4,0 +2020-06-11,Neosho,Kansas,20133,4,0 +2020-06-12,Neosho,Kansas,20133,6,0 +2020-06-13,Neosho,Kansas,20133,6,0 +2020-06-14,Neosho,Kansas,20133,6,0 +2020-06-15,Neosho,Kansas,20133,8,0 +2020-06-16,Neosho,Kansas,20133,8,0 +2020-06-17,Neosho,Kansas,20133,10,0 +2020-06-18,Neosho,Kansas,20133,10,0 +2020-06-19,Neosho,Kansas,20133,15,0 +2020-06-20,Neosho,Kansas,20133,15,0 +2020-06-21,Neosho,Kansas,20133,15,0 +2020-06-22,Neosho,Kansas,20133,17,0 +2020-06-23,Neosho,Kansas,20133,17,0 +2020-06-24,Neosho,Kansas,20133,17,0 +2020-06-25,Neosho,Kansas,20133,17,0 +2020-06-26,Neosho,Kansas,20133,23,0 +2020-06-27,Neosho,Kansas,20133,23,0 +2020-06-28,Neosho,Kansas,20133,23,0 +2020-06-29,Neosho,Kansas,20133,29,0 +2020-06-30,Neosho,Kansas,20133,29,0 +2020-07-01,Neosho,Kansas,20133,30,0 +2020-07-02,Neosho,Kansas,20133,30,0 +2020-07-03,Neosho,Kansas,20133,33,0 +2020-07-04,Neosho,Kansas,20133,33,0 +2020-07-05,Neosho,Kansas,20133,33,0 +2020-07-06,Neosho,Kansas,20133,35,0 +2020-07-07,Neosho,Kansas,20133,35,0 +2020-07-08,Neosho,Kansas,20133,34,0 +2020-07-09,Neosho,Kansas,20133,34,0 +2020-05-18,Ness,Kansas,20135,1,0 +2020-05-19,Ness,Kansas,20135,1,0 +2020-05-20,Ness,Kansas,20135,1,0 +2020-05-21,Ness,Kansas,20135,1,0 +2020-05-22,Ness,Kansas,20135,1,0 +2020-05-23,Ness,Kansas,20135,1,0 +2020-05-24,Ness,Kansas,20135,1,0 +2020-05-25,Ness,Kansas,20135,1,0 +2020-05-26,Ness,Kansas,20135,1,0 +2020-05-27,Ness,Kansas,20135,1,0 +2020-05-28,Ness,Kansas,20135,1,0 +2020-05-29,Ness,Kansas,20135,1,0 +2020-05-30,Ness,Kansas,20135,1,0 +2020-05-31,Ness,Kansas,20135,1,0 +2020-06-01,Ness,Kansas,20135,3,0 +2020-06-02,Ness,Kansas,20135,3,0 +2020-06-03,Ness,Kansas,20135,3,0 +2020-06-04,Ness,Kansas,20135,3,0 +2020-06-05,Ness,Kansas,20135,4,0 +2020-06-06,Ness,Kansas,20135,4,0 +2020-06-07,Ness,Kansas,20135,4,0 +2020-06-08,Ness,Kansas,20135,4,0 +2020-06-09,Ness,Kansas,20135,4,0 +2020-06-10,Ness,Kansas,20135,4,0 +2020-06-11,Ness,Kansas,20135,4,0 +2020-06-12,Ness,Kansas,20135,4,0 +2020-06-13,Ness,Kansas,20135,4,0 +2020-06-14,Ness,Kansas,20135,4,0 +2020-06-15,Ness,Kansas,20135,4,0 +2020-06-16,Ness,Kansas,20135,4,0 +2020-06-17,Ness,Kansas,20135,4,0 +2020-06-18,Ness,Kansas,20135,4,0 +2020-06-19,Ness,Kansas,20135,4,0 +2020-06-20,Ness,Kansas,20135,4,0 +2020-06-21,Ness,Kansas,20135,4,0 +2020-06-22,Ness,Kansas,20135,4,0 +2020-06-23,Ness,Kansas,20135,4,0 +2020-06-24,Ness,Kansas,20135,4,0 +2020-06-25,Ness,Kansas,20135,4,0 +2020-06-26,Ness,Kansas,20135,4,0 +2020-06-27,Ness,Kansas,20135,4,0 +2020-06-28,Ness,Kansas,20135,4,0 +2020-06-29,Ness,Kansas,20135,4,0 +2020-06-30,Ness,Kansas,20135,4,0 +2020-07-01,Ness,Kansas,20135,4,0 +2020-07-02,Ness,Kansas,20135,4,0 +2020-07-03,Ness,Kansas,20135,4,0 +2020-07-04,Ness,Kansas,20135,4,0 +2020-07-05,Ness,Kansas,20135,4,0 +2020-07-06,Ness,Kansas,20135,4,0 +2020-07-07,Ness,Kansas,20135,4,0 +2020-07-08,Ness,Kansas,20135,4,0 +2020-07-09,Ness,Kansas,20135,4,0 +2020-05-01,Norton,Kansas,20137,1,0 +2020-05-02,Norton,Kansas,20137,1,0 +2020-05-03,Norton,Kansas,20137,2,0 +2020-05-04,Norton,Kansas,20137,2,0 +2020-05-05,Norton,Kansas,20137,2,0 +2020-05-06,Norton,Kansas,20137,2,0 +2020-05-07,Norton,Kansas,20137,2,0 +2020-05-08,Norton,Kansas,20137,2,0 +2020-05-09,Norton,Kansas,20137,2,0 +2020-05-10,Norton,Kansas,20137,2,0 +2020-05-11,Norton,Kansas,20137,2,0 +2020-05-12,Norton,Kansas,20137,2,0 +2020-05-13,Norton,Kansas,20137,2,0 +2020-05-14,Norton,Kansas,20137,2,0 +2020-05-15,Norton,Kansas,20137,2,0 +2020-05-16,Norton,Kansas,20137,2,0 +2020-05-17,Norton,Kansas,20137,2,0 +2020-05-18,Norton,Kansas,20137,2,0 +2020-05-19,Norton,Kansas,20137,2,0 +2020-05-20,Norton,Kansas,20137,2,0 +2020-05-21,Norton,Kansas,20137,2,0 +2020-05-22,Norton,Kansas,20137,2,0 +2020-05-23,Norton,Kansas,20137,2,0 +2020-05-24,Norton,Kansas,20137,2,0 +2020-05-25,Norton,Kansas,20137,2,0 +2020-05-26,Norton,Kansas,20137,2,0 +2020-05-27,Norton,Kansas,20137,2,0 +2020-05-28,Norton,Kansas,20137,2,0 +2020-05-29,Norton,Kansas,20137,2,0 +2020-05-30,Norton,Kansas,20137,2,0 +2020-05-31,Norton,Kansas,20137,2,0 +2020-06-01,Norton,Kansas,20137,2,0 +2020-06-02,Norton,Kansas,20137,2,0 +2020-06-03,Norton,Kansas,20137,2,0 +2020-06-04,Norton,Kansas,20137,2,0 +2020-06-05,Norton,Kansas,20137,2,0 +2020-06-06,Norton,Kansas,20137,2,0 +2020-06-07,Norton,Kansas,20137,2,0 +2020-06-08,Norton,Kansas,20137,2,0 +2020-06-09,Norton,Kansas,20137,2,0 +2020-06-10,Norton,Kansas,20137,3,0 +2020-06-11,Norton,Kansas,20137,3,0 +2020-06-12,Norton,Kansas,20137,3,0 +2020-06-13,Norton,Kansas,20137,3,0 +2020-06-14,Norton,Kansas,20137,3,0 +2020-06-15,Norton,Kansas,20137,3,0 +2020-06-16,Norton,Kansas,20137,3,0 +2020-06-17,Norton,Kansas,20137,3,0 +2020-06-18,Norton,Kansas,20137,3,0 +2020-06-19,Norton,Kansas,20137,3,0 +2020-06-20,Norton,Kansas,20137,3,0 +2020-06-21,Norton,Kansas,20137,3,0 +2020-06-22,Norton,Kansas,20137,3,0 +2020-06-23,Norton,Kansas,20137,3,0 +2020-06-24,Norton,Kansas,20137,3,0 +2020-06-25,Norton,Kansas,20137,3,0 +2020-06-26,Norton,Kansas,20137,3,0 +2020-06-27,Norton,Kansas,20137,3,0 +2020-06-28,Norton,Kansas,20137,3,0 +2020-06-29,Norton,Kansas,20137,4,0 +2020-06-30,Norton,Kansas,20137,4,0 +2020-07-01,Norton,Kansas,20137,4,0 +2020-07-02,Norton,Kansas,20137,4,0 +2020-07-03,Norton,Kansas,20137,6,0 +2020-07-04,Norton,Kansas,20137,6,0 +2020-07-05,Norton,Kansas,20137,6,0 +2020-07-06,Norton,Kansas,20137,10,0 +2020-07-07,Norton,Kansas,20137,10,0 +2020-07-08,Norton,Kansas,20137,11,0 +2020-07-09,Norton,Kansas,20137,11,0 +2020-03-27,Osage,Kansas,20139,1,0 +2020-03-28,Osage,Kansas,20139,1,0 +2020-03-29,Osage,Kansas,20139,1,0 +2020-03-30,Osage,Kansas,20139,2,0 +2020-03-31,Osage,Kansas,20139,3,0 +2020-04-01,Osage,Kansas,20139,3,0 +2020-04-02,Osage,Kansas,20139,3,0 +2020-04-03,Osage,Kansas,20139,3,0 +2020-04-04,Osage,Kansas,20139,3,0 +2020-04-05,Osage,Kansas,20139,3,0 +2020-04-06,Osage,Kansas,20139,3,0 +2020-04-07,Osage,Kansas,20139,3,0 +2020-04-08,Osage,Kansas,20139,3,0 +2020-04-09,Osage,Kansas,20139,3,0 +2020-04-10,Osage,Kansas,20139,3,0 +2020-04-11,Osage,Kansas,20139,3,0 +2020-04-12,Osage,Kansas,20139,4,0 +2020-04-13,Osage,Kansas,20139,4,0 +2020-04-14,Osage,Kansas,20139,4,0 +2020-04-15,Osage,Kansas,20139,4,0 +2020-04-16,Osage,Kansas,20139,4,0 +2020-04-17,Osage,Kansas,20139,4,0 +2020-04-18,Osage,Kansas,20139,4,0 +2020-04-19,Osage,Kansas,20139,4,0 +2020-04-20,Osage,Kansas,20139,4,0 +2020-04-21,Osage,Kansas,20139,4,0 +2020-04-22,Osage,Kansas,20139,5,0 +2020-04-23,Osage,Kansas,20139,5,0 +2020-04-24,Osage,Kansas,20139,5,0 +2020-04-25,Osage,Kansas,20139,5,0 +2020-04-26,Osage,Kansas,20139,5,0 +2020-04-27,Osage,Kansas,20139,5,0 +2020-04-28,Osage,Kansas,20139,5,0 +2020-04-29,Osage,Kansas,20139,5,0 +2020-04-30,Osage,Kansas,20139,5,0 +2020-05-01,Osage,Kansas,20139,5,0 +2020-05-02,Osage,Kansas,20139,5,0 +2020-05-03,Osage,Kansas,20139,5,0 +2020-05-04,Osage,Kansas,20139,5,0 +2020-05-05,Osage,Kansas,20139,5,0 +2020-05-06,Osage,Kansas,20139,5,0 +2020-05-07,Osage,Kansas,20139,5,0 +2020-05-08,Osage,Kansas,20139,5,0 +2020-05-09,Osage,Kansas,20139,5,0 +2020-05-10,Osage,Kansas,20139,5,0 +2020-05-11,Osage,Kansas,20139,6,0 +2020-05-12,Osage,Kansas,20139,6,0 +2020-05-13,Osage,Kansas,20139,6,0 +2020-05-14,Osage,Kansas,20139,6,0 +2020-05-15,Osage,Kansas,20139,6,0 +2020-05-16,Osage,Kansas,20139,6,0 +2020-05-17,Osage,Kansas,20139,6,0 +2020-05-18,Osage,Kansas,20139,7,0 +2020-05-19,Osage,Kansas,20139,7,0 +2020-05-20,Osage,Kansas,20139,7,0 +2020-05-21,Osage,Kansas,20139,7,0 +2020-05-22,Osage,Kansas,20139,7,0 +2020-05-23,Osage,Kansas,20139,7,0 +2020-05-24,Osage,Kansas,20139,7,0 +2020-05-25,Osage,Kansas,20139,7,0 +2020-05-26,Osage,Kansas,20139,7,0 +2020-05-27,Osage,Kansas,20139,7,0 +2020-05-28,Osage,Kansas,20139,7,0 +2020-05-29,Osage,Kansas,20139,7,0 +2020-05-30,Osage,Kansas,20139,7,0 +2020-05-31,Osage,Kansas,20139,7,0 +2020-06-01,Osage,Kansas,20139,7,0 +2020-06-02,Osage,Kansas,20139,7,0 +2020-06-03,Osage,Kansas,20139,8,0 +2020-06-04,Osage,Kansas,20139,8,0 +2020-06-05,Osage,Kansas,20139,9,0 +2020-06-06,Osage,Kansas,20139,9,0 +2020-06-07,Osage,Kansas,20139,9,0 +2020-06-08,Osage,Kansas,20139,9,0 +2020-06-09,Osage,Kansas,20139,9,0 +2020-06-10,Osage,Kansas,20139,10,0 +2020-06-11,Osage,Kansas,20139,10,0 +2020-06-12,Osage,Kansas,20139,10,0 +2020-06-13,Osage,Kansas,20139,10,0 +2020-06-14,Osage,Kansas,20139,10,0 +2020-06-15,Osage,Kansas,20139,10,0 +2020-06-16,Osage,Kansas,20139,10,0 +2020-06-17,Osage,Kansas,20139,10,0 +2020-06-18,Osage,Kansas,20139,10,0 +2020-06-19,Osage,Kansas,20139,10,0 +2020-06-20,Osage,Kansas,20139,10,0 +2020-06-21,Osage,Kansas,20139,10,0 +2020-06-22,Osage,Kansas,20139,10,0 +2020-06-23,Osage,Kansas,20139,10,0 +2020-06-24,Osage,Kansas,20139,10,0 +2020-06-25,Osage,Kansas,20139,10,0 +2020-06-26,Osage,Kansas,20139,11,0 +2020-06-27,Osage,Kansas,20139,11,0 +2020-06-28,Osage,Kansas,20139,11,0 +2020-06-29,Osage,Kansas,20139,13,0 +2020-06-30,Osage,Kansas,20139,13,0 +2020-07-01,Osage,Kansas,20139,13,0 +2020-07-02,Osage,Kansas,20139,13,0 +2020-07-03,Osage,Kansas,20139,15,0 +2020-07-04,Osage,Kansas,20139,15,0 +2020-07-05,Osage,Kansas,20139,15,0 +2020-07-06,Osage,Kansas,20139,18,0 +2020-07-07,Osage,Kansas,20139,18,0 +2020-07-08,Osage,Kansas,20139,22,0 +2020-07-09,Osage,Kansas,20139,22,0 +2020-04-03,Osborne,Kansas,20141,1,0 +2020-04-04,Osborne,Kansas,20141,2,0 +2020-04-05,Osborne,Kansas,20141,2,0 +2020-04-06,Osborne,Kansas,20141,2,0 +2020-04-07,Osborne,Kansas,20141,2,0 +2020-04-08,Osborne,Kansas,20141,2,0 +2020-04-09,Osborne,Kansas,20141,2,0 +2020-04-10,Osborne,Kansas,20141,2,0 +2020-04-11,Osborne,Kansas,20141,2,0 +2020-04-12,Osborne,Kansas,20141,2,0 +2020-04-13,Osborne,Kansas,20141,2,0 +2020-04-14,Osborne,Kansas,20141,2,0 +2020-04-15,Osborne,Kansas,20141,2,0 +2020-04-16,Osborne,Kansas,20141,2,0 +2020-04-17,Osborne,Kansas,20141,2,0 +2020-04-18,Osborne,Kansas,20141,2,0 +2020-04-19,Osborne,Kansas,20141,2,0 +2020-04-20,Osborne,Kansas,20141,2,0 +2020-04-21,Osborne,Kansas,20141,2,0 +2020-04-22,Osborne,Kansas,20141,2,0 +2020-04-23,Osborne,Kansas,20141,2,0 +2020-04-24,Osborne,Kansas,20141,2,0 +2020-04-25,Osborne,Kansas,20141,2,0 +2020-04-26,Osborne,Kansas,20141,2,0 +2020-04-27,Osborne,Kansas,20141,2,0 +2020-04-28,Osborne,Kansas,20141,2,0 +2020-04-29,Osborne,Kansas,20141,2,0 +2020-04-30,Osborne,Kansas,20141,2,0 +2020-05-01,Osborne,Kansas,20141,2,0 +2020-05-02,Osborne,Kansas,20141,2,0 +2020-05-03,Osborne,Kansas,20141,2,0 +2020-05-04,Osborne,Kansas,20141,2,0 +2020-05-05,Osborne,Kansas,20141,2,0 +2020-05-06,Osborne,Kansas,20141,2,0 +2020-05-07,Osborne,Kansas,20141,2,0 +2020-05-08,Osborne,Kansas,20141,2,0 +2020-05-09,Osborne,Kansas,20141,2,0 +2020-05-10,Osborne,Kansas,20141,2,0 +2020-05-11,Osborne,Kansas,20141,2,0 +2020-05-12,Osborne,Kansas,20141,2,0 +2020-05-13,Osborne,Kansas,20141,2,0 +2020-05-14,Osborne,Kansas,20141,2,0 +2020-05-15,Osborne,Kansas,20141,2,0 +2020-05-16,Osborne,Kansas,20141,2,0 +2020-05-17,Osborne,Kansas,20141,2,0 +2020-05-18,Osborne,Kansas,20141,2,0 +2020-05-19,Osborne,Kansas,20141,2,0 +2020-05-20,Osborne,Kansas,20141,2,0 +2020-05-21,Osborne,Kansas,20141,2,0 +2020-05-22,Osborne,Kansas,20141,2,0 +2020-05-23,Osborne,Kansas,20141,2,0 +2020-05-24,Osborne,Kansas,20141,2,0 +2020-05-25,Osborne,Kansas,20141,2,0 +2020-05-26,Osborne,Kansas,20141,2,0 +2020-05-27,Osborne,Kansas,20141,2,0 +2020-05-28,Osborne,Kansas,20141,2,0 +2020-05-29,Osborne,Kansas,20141,2,0 +2020-05-30,Osborne,Kansas,20141,2,0 +2020-05-31,Osborne,Kansas,20141,2,0 +2020-06-01,Osborne,Kansas,20141,2,0 +2020-06-02,Osborne,Kansas,20141,2,0 +2020-06-03,Osborne,Kansas,20141,2,0 +2020-06-04,Osborne,Kansas,20141,2,0 +2020-06-05,Osborne,Kansas,20141,2,0 +2020-06-06,Osborne,Kansas,20141,2,0 +2020-06-07,Osborne,Kansas,20141,2,0 +2020-06-08,Osborne,Kansas,20141,2,0 +2020-06-09,Osborne,Kansas,20141,2,0 +2020-06-10,Osborne,Kansas,20141,2,0 +2020-06-11,Osborne,Kansas,20141,2,0 +2020-06-12,Osborne,Kansas,20141,2,0 +2020-06-13,Osborne,Kansas,20141,2,0 +2020-06-14,Osborne,Kansas,20141,2,0 +2020-06-15,Osborne,Kansas,20141,2,0 +2020-06-16,Osborne,Kansas,20141,2,0 +2020-06-17,Osborne,Kansas,20141,2,0 +2020-06-18,Osborne,Kansas,20141,2,0 +2020-06-19,Osborne,Kansas,20141,2,0 +2020-06-20,Osborne,Kansas,20141,2,0 +2020-06-21,Osborne,Kansas,20141,2,0 +2020-06-22,Osborne,Kansas,20141,2,0 +2020-06-23,Osborne,Kansas,20141,2,0 +2020-06-24,Osborne,Kansas,20141,2,0 +2020-06-25,Osborne,Kansas,20141,2,0 +2020-06-26,Osborne,Kansas,20141,2,0 +2020-06-27,Osborne,Kansas,20141,2,0 +2020-06-28,Osborne,Kansas,20141,2,0 +2020-06-29,Osborne,Kansas,20141,2,0 +2020-06-30,Osborne,Kansas,20141,2,0 +2020-07-01,Osborne,Kansas,20141,2,0 +2020-07-02,Osborne,Kansas,20141,2,0 +2020-07-03,Osborne,Kansas,20141,2,0 +2020-07-04,Osborne,Kansas,20141,2,0 +2020-07-05,Osborne,Kansas,20141,2,0 +2020-07-06,Osborne,Kansas,20141,3,0 +2020-07-07,Osborne,Kansas,20141,3,0 +2020-07-08,Osborne,Kansas,20141,3,0 +2020-07-09,Osborne,Kansas,20141,3,0 +2020-03-27,Ottawa,Kansas,20143,1,0 +2020-03-28,Ottawa,Kansas,20143,1,0 +2020-03-29,Ottawa,Kansas,20143,1,0 +2020-03-30,Ottawa,Kansas,20143,1,0 +2020-03-31,Ottawa,Kansas,20143,1,0 +2020-04-01,Ottawa,Kansas,20143,1,0 +2020-04-02,Ottawa,Kansas,20143,1,0 +2020-04-03,Ottawa,Kansas,20143,1,0 +2020-04-04,Ottawa,Kansas,20143,2,0 +2020-04-05,Ottawa,Kansas,20143,3,0 +2020-04-06,Ottawa,Kansas,20143,3,0 +2020-04-07,Ottawa,Kansas,20143,3,0 +2020-04-08,Ottawa,Kansas,20143,3,0 +2020-04-09,Ottawa,Kansas,20143,3,0 +2020-04-10,Ottawa,Kansas,20143,3,0 +2020-04-11,Ottawa,Kansas,20143,3,0 +2020-04-12,Ottawa,Kansas,20143,3,0 +2020-04-13,Ottawa,Kansas,20143,3,0 +2020-04-14,Ottawa,Kansas,20143,3,0 +2020-04-15,Ottawa,Kansas,20143,3,0 +2020-04-16,Ottawa,Kansas,20143,3,0 +2020-04-17,Ottawa,Kansas,20143,3,0 +2020-04-18,Ottawa,Kansas,20143,3,0 +2020-04-19,Ottawa,Kansas,20143,3,0 +2020-04-20,Ottawa,Kansas,20143,3,0 +2020-04-21,Ottawa,Kansas,20143,3,0 +2020-04-22,Ottawa,Kansas,20143,3,0 +2020-04-23,Ottawa,Kansas,20143,3,0 +2020-04-24,Ottawa,Kansas,20143,3,0 +2020-04-25,Ottawa,Kansas,20143,3,0 +2020-04-26,Ottawa,Kansas,20143,3,0 +2020-04-27,Ottawa,Kansas,20143,3,0 +2020-04-28,Ottawa,Kansas,20143,3,0 +2020-04-29,Ottawa,Kansas,20143,4,0 +2020-04-30,Ottawa,Kansas,20143,4,0 +2020-05-01,Ottawa,Kansas,20143,4,0 +2020-05-02,Ottawa,Kansas,20143,4,0 +2020-05-03,Ottawa,Kansas,20143,4,0 +2020-05-04,Ottawa,Kansas,20143,4,0 +2020-05-05,Ottawa,Kansas,20143,4,0 +2020-05-06,Ottawa,Kansas,20143,4,0 +2020-05-07,Ottawa,Kansas,20143,4,0 +2020-05-08,Ottawa,Kansas,20143,4,0 +2020-05-09,Ottawa,Kansas,20143,4,0 +2020-05-10,Ottawa,Kansas,20143,4,0 +2020-05-11,Ottawa,Kansas,20143,4,0 +2020-05-12,Ottawa,Kansas,20143,4,0 +2020-05-13,Ottawa,Kansas,20143,4,0 +2020-05-14,Ottawa,Kansas,20143,4,0 +2020-05-15,Ottawa,Kansas,20143,4,0 +2020-05-16,Ottawa,Kansas,20143,4,0 +2020-05-17,Ottawa,Kansas,20143,4,0 +2020-05-18,Ottawa,Kansas,20143,4,0 +2020-05-19,Ottawa,Kansas,20143,4,0 +2020-05-20,Ottawa,Kansas,20143,4,0 +2020-05-21,Ottawa,Kansas,20143,4,0 +2020-05-22,Ottawa,Kansas,20143,4,0 +2020-05-23,Ottawa,Kansas,20143,4,0 +2020-05-24,Ottawa,Kansas,20143,4,0 +2020-05-25,Ottawa,Kansas,20143,4,0 +2020-05-26,Ottawa,Kansas,20143,4,0 +2020-05-27,Ottawa,Kansas,20143,4,0 +2020-05-28,Ottawa,Kansas,20143,4,0 +2020-05-29,Ottawa,Kansas,20143,4,0 +2020-05-30,Ottawa,Kansas,20143,4,0 +2020-05-31,Ottawa,Kansas,20143,4,0 +2020-06-01,Ottawa,Kansas,20143,4,0 +2020-06-02,Ottawa,Kansas,20143,4,0 +2020-06-03,Ottawa,Kansas,20143,4,0 +2020-06-04,Ottawa,Kansas,20143,4,0 +2020-06-05,Ottawa,Kansas,20143,4,0 +2020-06-06,Ottawa,Kansas,20143,4,0 +2020-06-07,Ottawa,Kansas,20143,4,0 +2020-06-08,Ottawa,Kansas,20143,4,0 +2020-06-09,Ottawa,Kansas,20143,4,0 +2020-06-10,Ottawa,Kansas,20143,4,0 +2020-06-11,Ottawa,Kansas,20143,4,0 +2020-06-12,Ottawa,Kansas,20143,4,0 +2020-06-13,Ottawa,Kansas,20143,4,0 +2020-06-14,Ottawa,Kansas,20143,4,0 +2020-06-15,Ottawa,Kansas,20143,4,0 +2020-06-16,Ottawa,Kansas,20143,4,0 +2020-06-17,Ottawa,Kansas,20143,4,0 +2020-06-18,Ottawa,Kansas,20143,4,0 +2020-06-19,Ottawa,Kansas,20143,4,0 +2020-06-20,Ottawa,Kansas,20143,4,0 +2020-06-21,Ottawa,Kansas,20143,4,0 +2020-06-22,Ottawa,Kansas,20143,4,0 +2020-06-23,Ottawa,Kansas,20143,4,0 +2020-06-24,Ottawa,Kansas,20143,4,0 +2020-06-25,Ottawa,Kansas,20143,4,0 +2020-06-26,Ottawa,Kansas,20143,5,0 +2020-06-27,Ottawa,Kansas,20143,5,0 +2020-06-28,Ottawa,Kansas,20143,5,0 +2020-06-29,Ottawa,Kansas,20143,6,0 +2020-06-30,Ottawa,Kansas,20143,6,0 +2020-07-01,Ottawa,Kansas,20143,6,0 +2020-07-02,Ottawa,Kansas,20143,6,0 +2020-07-03,Ottawa,Kansas,20143,8,0 +2020-07-04,Ottawa,Kansas,20143,8,0 +2020-07-05,Ottawa,Kansas,20143,8,0 +2020-07-06,Ottawa,Kansas,20143,10,0 +2020-07-07,Ottawa,Kansas,20143,10,0 +2020-07-08,Ottawa,Kansas,20143,12,0 +2020-07-09,Ottawa,Kansas,20143,12,0 +2020-06-03,Pawnee,Kansas,20145,2,0 +2020-06-04,Pawnee,Kansas,20145,2,0 +2020-06-05,Pawnee,Kansas,20145,2,0 +2020-06-06,Pawnee,Kansas,20145,2,0 +2020-06-07,Pawnee,Kansas,20145,2,0 +2020-06-08,Pawnee,Kansas,20145,4,0 +2020-06-09,Pawnee,Kansas,20145,4,0 +2020-06-10,Pawnee,Kansas,20145,3,0 +2020-06-11,Pawnee,Kansas,20145,3,0 +2020-06-12,Pawnee,Kansas,20145,3,0 +2020-06-13,Pawnee,Kansas,20145,3,0 +2020-06-14,Pawnee,Kansas,20145,3,0 +2020-06-15,Pawnee,Kansas,20145,3,0 +2020-06-16,Pawnee,Kansas,20145,3,0 +2020-06-17,Pawnee,Kansas,20145,3,0 +2020-06-18,Pawnee,Kansas,20145,3,0 +2020-06-19,Pawnee,Kansas,20145,3,0 +2020-06-20,Pawnee,Kansas,20145,3,0 +2020-06-21,Pawnee,Kansas,20145,3,0 +2020-06-22,Pawnee,Kansas,20145,3,0 +2020-06-23,Pawnee,Kansas,20145,3,0 +2020-06-24,Pawnee,Kansas,20145,3,0 +2020-06-25,Pawnee,Kansas,20145,3,0 +2020-06-26,Pawnee,Kansas,20145,3,0 +2020-06-27,Pawnee,Kansas,20145,3,0 +2020-06-28,Pawnee,Kansas,20145,3,0 +2020-06-29,Pawnee,Kansas,20145,3,0 +2020-06-30,Pawnee,Kansas,20145,3,0 +2020-07-01,Pawnee,Kansas,20145,3,0 +2020-07-02,Pawnee,Kansas,20145,3,0 +2020-07-03,Pawnee,Kansas,20145,3,0 +2020-07-04,Pawnee,Kansas,20145,3,0 +2020-07-05,Pawnee,Kansas,20145,3,0 +2020-07-06,Pawnee,Kansas,20145,3,0 +2020-07-07,Pawnee,Kansas,20145,3,0 +2020-07-08,Pawnee,Kansas,20145,4,0 +2020-07-09,Pawnee,Kansas,20145,4,0 +2020-04-11,Phillips,Kansas,20147,1,0 +2020-04-12,Phillips,Kansas,20147,1,0 +2020-04-13,Phillips,Kansas,20147,1,0 +2020-04-14,Phillips,Kansas,20147,1,0 +2020-04-15,Phillips,Kansas,20147,1,0 +2020-04-16,Phillips,Kansas,20147,1,0 +2020-04-17,Phillips,Kansas,20147,1,0 +2020-04-18,Phillips,Kansas,20147,1,0 +2020-04-19,Phillips,Kansas,20147,1,0 +2020-04-20,Phillips,Kansas,20147,1,0 +2020-04-21,Phillips,Kansas,20147,1,0 +2020-04-22,Phillips,Kansas,20147,1,0 +2020-04-23,Phillips,Kansas,20147,1,0 +2020-04-24,Phillips,Kansas,20147,1,0 +2020-04-25,Phillips,Kansas,20147,1,0 +2020-04-26,Phillips,Kansas,20147,1,0 +2020-04-27,Phillips,Kansas,20147,1,0 +2020-04-28,Phillips,Kansas,20147,1,0 +2020-04-29,Phillips,Kansas,20147,1,0 +2020-04-30,Phillips,Kansas,20147,1,0 +2020-05-01,Phillips,Kansas,20147,1,0 +2020-05-02,Phillips,Kansas,20147,1,0 +2020-05-03,Phillips,Kansas,20147,1,0 +2020-05-04,Phillips,Kansas,20147,1,0 +2020-05-05,Phillips,Kansas,20147,1,0 +2020-05-06,Phillips,Kansas,20147,1,0 +2020-05-07,Phillips,Kansas,20147,1,0 +2020-05-08,Phillips,Kansas,20147,1,0 +2020-05-09,Phillips,Kansas,20147,1,0 +2020-05-10,Phillips,Kansas,20147,1,0 +2020-05-11,Phillips,Kansas,20147,1,0 +2020-05-12,Phillips,Kansas,20147,1,0 +2020-05-13,Phillips,Kansas,20147,1,0 +2020-05-14,Phillips,Kansas,20147,1,0 +2020-05-15,Phillips,Kansas,20147,2,0 +2020-05-16,Phillips,Kansas,20147,2,0 +2020-05-17,Phillips,Kansas,20147,2,0 +2020-05-18,Phillips,Kansas,20147,2,0 +2020-05-19,Phillips,Kansas,20147,2,0 +2020-05-20,Phillips,Kansas,20147,2,0 +2020-05-21,Phillips,Kansas,20147,2,0 +2020-05-22,Phillips,Kansas,20147,2,0 +2020-05-23,Phillips,Kansas,20147,2,0 +2020-05-24,Phillips,Kansas,20147,2,0 +2020-05-25,Phillips,Kansas,20147,2,0 +2020-05-26,Phillips,Kansas,20147,2,0 +2020-05-27,Phillips,Kansas,20147,2,0 +2020-05-28,Phillips,Kansas,20147,2,0 +2020-05-29,Phillips,Kansas,20147,2,0 +2020-05-30,Phillips,Kansas,20147,2,0 +2020-05-31,Phillips,Kansas,20147,2,0 +2020-06-01,Phillips,Kansas,20147,2,0 +2020-06-02,Phillips,Kansas,20147,2,0 +2020-06-03,Phillips,Kansas,20147,2,0 +2020-06-04,Phillips,Kansas,20147,2,0 +2020-06-05,Phillips,Kansas,20147,2,0 +2020-06-06,Phillips,Kansas,20147,2,0 +2020-06-07,Phillips,Kansas,20147,2,0 +2020-06-08,Phillips,Kansas,20147,2,0 +2020-06-09,Phillips,Kansas,20147,2,0 +2020-06-10,Phillips,Kansas,20147,2,0 +2020-06-11,Phillips,Kansas,20147,2,0 +2020-06-12,Phillips,Kansas,20147,2,0 +2020-06-13,Phillips,Kansas,20147,2,0 +2020-06-14,Phillips,Kansas,20147,2,0 +2020-06-15,Phillips,Kansas,20147,2,0 +2020-06-16,Phillips,Kansas,20147,2,0 +2020-06-17,Phillips,Kansas,20147,2,0 +2020-06-18,Phillips,Kansas,20147,2,0 +2020-06-19,Phillips,Kansas,20147,2,0 +2020-06-20,Phillips,Kansas,20147,2,0 +2020-06-21,Phillips,Kansas,20147,2,0 +2020-06-22,Phillips,Kansas,20147,3,0 +2020-06-23,Phillips,Kansas,20147,3,0 +2020-06-24,Phillips,Kansas,20147,3,0 +2020-06-25,Phillips,Kansas,20147,3,0 +2020-06-26,Phillips,Kansas,20147,3,0 +2020-06-27,Phillips,Kansas,20147,3,0 +2020-06-28,Phillips,Kansas,20147,3,0 +2020-06-29,Phillips,Kansas,20147,3,0 +2020-06-30,Phillips,Kansas,20147,3,0 +2020-07-01,Phillips,Kansas,20147,3,0 +2020-07-02,Phillips,Kansas,20147,3,0 +2020-07-03,Phillips,Kansas,20147,10,0 +2020-07-04,Phillips,Kansas,20147,10,0 +2020-07-05,Phillips,Kansas,20147,10,0 +2020-07-06,Phillips,Kansas,20147,27,0 +2020-07-07,Phillips,Kansas,20147,27,0 +2020-07-08,Phillips,Kansas,20147,27,0 +2020-07-09,Phillips,Kansas,20147,27,0 +2020-03-24,Pottawatomie,Kansas,20149,1,0 +2020-03-25,Pottawatomie,Kansas,20149,1,0 +2020-03-26,Pottawatomie,Kansas,20149,1,0 +2020-03-27,Pottawatomie,Kansas,20149,1,0 +2020-03-28,Pottawatomie,Kansas,20149,1,0 +2020-03-29,Pottawatomie,Kansas,20149,1,0 +2020-03-30,Pottawatomie,Kansas,20149,1,0 +2020-03-31,Pottawatomie,Kansas,20149,2,0 +2020-04-01,Pottawatomie,Kansas,20149,2,0 +2020-04-02,Pottawatomie,Kansas,20149,2,0 +2020-04-03,Pottawatomie,Kansas,20149,2,0 +2020-04-04,Pottawatomie,Kansas,20149,2,0 +2020-04-05,Pottawatomie,Kansas,20149,2,0 +2020-04-06,Pottawatomie,Kansas,20149,3,0 +2020-04-07,Pottawatomie,Kansas,20149,3,0 +2020-04-08,Pottawatomie,Kansas,20149,5,0 +2020-04-09,Pottawatomie,Kansas,20149,5,0 +2020-04-10,Pottawatomie,Kansas,20149,5,0 +2020-04-11,Pottawatomie,Kansas,20149,5,0 +2020-04-12,Pottawatomie,Kansas,20149,5,0 +2020-04-13,Pottawatomie,Kansas,20149,5,0 +2020-04-14,Pottawatomie,Kansas,20149,5,0 +2020-04-15,Pottawatomie,Kansas,20149,5,0 +2020-04-16,Pottawatomie,Kansas,20149,5,0 +2020-04-17,Pottawatomie,Kansas,20149,5,0 +2020-04-18,Pottawatomie,Kansas,20149,6,0 +2020-04-19,Pottawatomie,Kansas,20149,6,0 +2020-04-20,Pottawatomie,Kansas,20149,6,0 +2020-04-21,Pottawatomie,Kansas,20149,6,0 +2020-04-22,Pottawatomie,Kansas,20149,6,0 +2020-04-23,Pottawatomie,Kansas,20149,7,0 +2020-04-24,Pottawatomie,Kansas,20149,8,0 +2020-04-25,Pottawatomie,Kansas,20149,9,0 +2020-04-26,Pottawatomie,Kansas,20149,9,0 +2020-04-27,Pottawatomie,Kansas,20149,9,0 +2020-04-28,Pottawatomie,Kansas,20149,9,0 +2020-04-29,Pottawatomie,Kansas,20149,9,0 +2020-04-30,Pottawatomie,Kansas,20149,13,0 +2020-05-01,Pottawatomie,Kansas,20149,13,0 +2020-05-02,Pottawatomie,Kansas,20149,13,0 +2020-05-03,Pottawatomie,Kansas,20149,15,0 +2020-05-04,Pottawatomie,Kansas,20149,15,0 +2020-05-05,Pottawatomie,Kansas,20149,15,0 +2020-05-06,Pottawatomie,Kansas,20149,15,0 +2020-05-07,Pottawatomie,Kansas,20149,16,0 +2020-05-08,Pottawatomie,Kansas,20149,17,0 +2020-05-09,Pottawatomie,Kansas,20149,18,0 +2020-05-10,Pottawatomie,Kansas,20149,21,0 +2020-05-11,Pottawatomie,Kansas,20149,21,0 +2020-05-12,Pottawatomie,Kansas,20149,21,0 +2020-05-13,Pottawatomie,Kansas,20149,21,0 +2020-05-14,Pottawatomie,Kansas,20149,21,0 +2020-05-15,Pottawatomie,Kansas,20149,22,0 +2020-05-16,Pottawatomie,Kansas,20149,22,0 +2020-05-17,Pottawatomie,Kansas,20149,22,0 +2020-05-18,Pottawatomie,Kansas,20149,23,0 +2020-05-19,Pottawatomie,Kansas,20149,23,0 +2020-05-20,Pottawatomie,Kansas,20149,24,0 +2020-05-21,Pottawatomie,Kansas,20149,24,0 +2020-05-22,Pottawatomie,Kansas,20149,24,0 +2020-05-23,Pottawatomie,Kansas,20149,24,0 +2020-05-24,Pottawatomie,Kansas,20149,24,0 +2020-05-25,Pottawatomie,Kansas,20149,25,0 +2020-05-26,Pottawatomie,Kansas,20149,25,0 +2020-05-27,Pottawatomie,Kansas,20149,25,0 +2020-05-28,Pottawatomie,Kansas,20149,25,0 +2020-05-29,Pottawatomie,Kansas,20149,27,0 +2020-05-30,Pottawatomie,Kansas,20149,27,0 +2020-05-31,Pottawatomie,Kansas,20149,27,0 +2020-06-01,Pottawatomie,Kansas,20149,27,0 +2020-06-02,Pottawatomie,Kansas,20149,27,0 +2020-06-03,Pottawatomie,Kansas,20149,29,0 +2020-06-04,Pottawatomie,Kansas,20149,29,0 +2020-06-05,Pottawatomie,Kansas,20149,30,0 +2020-06-06,Pottawatomie,Kansas,20149,30,0 +2020-06-07,Pottawatomie,Kansas,20149,30,0 +2020-06-08,Pottawatomie,Kansas,20149,31,0 +2020-06-09,Pottawatomie,Kansas,20149,31,0 +2020-06-10,Pottawatomie,Kansas,20149,34,0 +2020-06-11,Pottawatomie,Kansas,20149,34,0 +2020-06-12,Pottawatomie,Kansas,20149,35,0 +2020-06-13,Pottawatomie,Kansas,20149,35,0 +2020-06-14,Pottawatomie,Kansas,20149,36,0 +2020-06-15,Pottawatomie,Kansas,20149,38,0 +2020-06-16,Pottawatomie,Kansas,20149,38,0 +2020-06-17,Pottawatomie,Kansas,20149,40,0 +2020-06-18,Pottawatomie,Kansas,20149,40,0 +2020-06-19,Pottawatomie,Kansas,20149,47,0 +2020-06-20,Pottawatomie,Kansas,20149,47,0 +2020-06-21,Pottawatomie,Kansas,20149,47,0 +2020-06-22,Pottawatomie,Kansas,20149,51,0 +2020-06-23,Pottawatomie,Kansas,20149,51,0 +2020-06-24,Pottawatomie,Kansas,20149,54,0 +2020-06-25,Pottawatomie,Kansas,20149,54,0 +2020-06-26,Pottawatomie,Kansas,20149,62,0 +2020-06-27,Pottawatomie,Kansas,20149,62,0 +2020-06-28,Pottawatomie,Kansas,20149,62,0 +2020-06-29,Pottawatomie,Kansas,20149,69,0 +2020-06-30,Pottawatomie,Kansas,20149,69,0 +2020-07-01,Pottawatomie,Kansas,20149,74,0 +2020-07-02,Pottawatomie,Kansas,20149,74,0 +2020-07-03,Pottawatomie,Kansas,20149,79,0 +2020-07-04,Pottawatomie,Kansas,20149,79,0 +2020-07-05,Pottawatomie,Kansas,20149,79,0 +2020-07-06,Pottawatomie,Kansas,20149,82,0 +2020-07-07,Pottawatomie,Kansas,20149,82,0 +2020-07-08,Pottawatomie,Kansas,20149,83,0 +2020-07-09,Pottawatomie,Kansas,20149,83,0 +2020-04-01,Pratt,Kansas,20151,1,0 +2020-04-02,Pratt,Kansas,20151,1,0 +2020-04-03,Pratt,Kansas,20151,1,0 +2020-04-04,Pratt,Kansas,20151,1,0 +2020-04-05,Pratt,Kansas,20151,1,0 +2020-04-06,Pratt,Kansas,20151,1,0 +2020-04-07,Pratt,Kansas,20151,1,0 +2020-04-08,Pratt,Kansas,20151,1,0 +2020-04-09,Pratt,Kansas,20151,1,0 +2020-04-10,Pratt,Kansas,20151,1,0 +2020-04-11,Pratt,Kansas,20151,1,0 +2020-04-12,Pratt,Kansas,20151,1,0 +2020-04-13,Pratt,Kansas,20151,1,0 +2020-04-14,Pratt,Kansas,20151,1,0 +2020-04-15,Pratt,Kansas,20151,1,0 +2020-04-16,Pratt,Kansas,20151,1,0 +2020-04-17,Pratt,Kansas,20151,1,0 +2020-04-18,Pratt,Kansas,20151,1,0 +2020-04-19,Pratt,Kansas,20151,1,0 +2020-04-20,Pratt,Kansas,20151,1,0 +2020-04-21,Pratt,Kansas,20151,1,0 +2020-04-22,Pratt,Kansas,20151,1,0 +2020-04-23,Pratt,Kansas,20151,1,0 +2020-04-24,Pratt,Kansas,20151,1,0 +2020-04-25,Pratt,Kansas,20151,1,0 +2020-04-26,Pratt,Kansas,20151,1,0 +2020-04-27,Pratt,Kansas,20151,1,0 +2020-04-28,Pratt,Kansas,20151,1,0 +2020-04-29,Pratt,Kansas,20151,1,0 +2020-04-30,Pratt,Kansas,20151,1,0 +2020-05-01,Pratt,Kansas,20151,1,0 +2020-05-02,Pratt,Kansas,20151,1,0 +2020-05-03,Pratt,Kansas,20151,1,0 +2020-05-04,Pratt,Kansas,20151,1,0 +2020-05-05,Pratt,Kansas,20151,1,0 +2020-05-06,Pratt,Kansas,20151,1,0 +2020-05-07,Pratt,Kansas,20151,1,0 +2020-05-08,Pratt,Kansas,20151,1,0 +2020-05-09,Pratt,Kansas,20151,1,0 +2020-05-10,Pratt,Kansas,20151,1,0 +2020-05-11,Pratt,Kansas,20151,1,0 +2020-05-12,Pratt,Kansas,20151,1,0 +2020-05-13,Pratt,Kansas,20151,1,0 +2020-05-14,Pratt,Kansas,20151,1,0 +2020-05-15,Pratt,Kansas,20151,1,0 +2020-05-16,Pratt,Kansas,20151,1,0 +2020-05-17,Pratt,Kansas,20151,1,0 +2020-05-18,Pratt,Kansas,20151,1,0 +2020-05-19,Pratt,Kansas,20151,1,0 +2020-05-20,Pratt,Kansas,20151,1,0 +2020-05-21,Pratt,Kansas,20151,1,0 +2020-05-22,Pratt,Kansas,20151,1,0 +2020-05-23,Pratt,Kansas,20151,1,0 +2020-05-24,Pratt,Kansas,20151,1,0 +2020-05-25,Pratt,Kansas,20151,1,0 +2020-05-26,Pratt,Kansas,20151,1,0 +2020-05-27,Pratt,Kansas,20151,1,0 +2020-05-28,Pratt,Kansas,20151,1,0 +2020-05-29,Pratt,Kansas,20151,2,0 +2020-05-30,Pratt,Kansas,20151,2,0 +2020-05-31,Pratt,Kansas,20151,2,0 +2020-06-01,Pratt,Kansas,20151,2,0 +2020-06-02,Pratt,Kansas,20151,2,0 +2020-06-03,Pratt,Kansas,20151,2,0 +2020-06-04,Pratt,Kansas,20151,2,0 +2020-06-05,Pratt,Kansas,20151,2,0 +2020-06-06,Pratt,Kansas,20151,2,0 +2020-06-07,Pratt,Kansas,20151,2,0 +2020-06-08,Pratt,Kansas,20151,2,0 +2020-06-09,Pratt,Kansas,20151,2,0 +2020-06-10,Pratt,Kansas,20151,2,0 +2020-06-11,Pratt,Kansas,20151,2,0 +2020-06-12,Pratt,Kansas,20151,2,0 +2020-06-13,Pratt,Kansas,20151,2,0 +2020-06-14,Pratt,Kansas,20151,2,0 +2020-06-15,Pratt,Kansas,20151,2,0 +2020-06-16,Pratt,Kansas,20151,2,0 +2020-06-17,Pratt,Kansas,20151,6,0 +2020-06-18,Pratt,Kansas,20151,6,0 +2020-06-19,Pratt,Kansas,20151,6,0 +2020-06-20,Pratt,Kansas,20151,6,0 +2020-06-21,Pratt,Kansas,20151,6,0 +2020-06-22,Pratt,Kansas,20151,6,0 +2020-06-23,Pratt,Kansas,20151,6,0 +2020-06-24,Pratt,Kansas,20151,6,0 +2020-06-25,Pratt,Kansas,20151,6,0 +2020-06-26,Pratt,Kansas,20151,6,0 +2020-06-27,Pratt,Kansas,20151,6,0 +2020-06-28,Pratt,Kansas,20151,11,0 +2020-06-29,Pratt,Kansas,20151,11,0 +2020-06-30,Pratt,Kansas,20151,11,0 +2020-07-01,Pratt,Kansas,20151,12,0 +2020-07-02,Pratt,Kansas,20151,12,0 +2020-07-03,Pratt,Kansas,20151,11,0 +2020-07-04,Pratt,Kansas,20151,11,0 +2020-07-05,Pratt,Kansas,20151,11,0 +2020-07-06,Pratt,Kansas,20151,11,0 +2020-07-07,Pratt,Kansas,20151,11,0 +2020-07-08,Pratt,Kansas,20151,12,0 +2020-07-09,Pratt,Kansas,20151,12,0 +2020-03-20,Reno,Kansas,20155,1,0 +2020-03-21,Reno,Kansas,20155,1,0 +2020-03-22,Reno,Kansas,20155,2,0 +2020-03-23,Reno,Kansas,20155,2,0 +2020-03-24,Reno,Kansas,20155,2,0 +2020-03-25,Reno,Kansas,20155,2,0 +2020-03-26,Reno,Kansas,20155,4,0 +2020-03-27,Reno,Kansas,20155,5,0 +2020-03-28,Reno,Kansas,20155,5,0 +2020-03-29,Reno,Kansas,20155,7,0 +2020-03-30,Reno,Kansas,20155,7,0 +2020-03-31,Reno,Kansas,20155,7,0 +2020-04-01,Reno,Kansas,20155,8,0 +2020-04-02,Reno,Kansas,20155,8,0 +2020-04-03,Reno,Kansas,20155,9,0 +2020-04-04,Reno,Kansas,20155,9,0 +2020-04-05,Reno,Kansas,20155,10,0 +2020-04-06,Reno,Kansas,20155,10,0 +2020-04-07,Reno,Kansas,20155,10,0 +2020-04-08,Reno,Kansas,20155,11,0 +2020-04-09,Reno,Kansas,20155,11,0 +2020-04-10,Reno,Kansas,20155,11,0 +2020-04-11,Reno,Kansas,20155,11,0 +2020-04-12,Reno,Kansas,20155,11,0 +2020-04-13,Reno,Kansas,20155,13,0 +2020-04-14,Reno,Kansas,20155,14,0 +2020-04-15,Reno,Kansas,20155,14,0 +2020-04-16,Reno,Kansas,20155,14,0 +2020-04-17,Reno,Kansas,20155,14,0 +2020-04-18,Reno,Kansas,20155,14,0 +2020-04-19,Reno,Kansas,20155,14,0 +2020-04-20,Reno,Kansas,20155,14,0 +2020-04-21,Reno,Kansas,20155,15,0 +2020-04-22,Reno,Kansas,20155,15,0 +2020-04-23,Reno,Kansas,20155,16,0 +2020-04-24,Reno,Kansas,20155,16,0 +2020-04-25,Reno,Kansas,20155,21,0 +2020-04-26,Reno,Kansas,20155,23,0 +2020-04-27,Reno,Kansas,20155,27,0 +2020-04-28,Reno,Kansas,20155,27,0 +2020-04-29,Reno,Kansas,20155,32,0 +2020-04-30,Reno,Kansas,20155,34,0 +2020-05-01,Reno,Kansas,20155,36,0 +2020-05-02,Reno,Kansas,20155,38,0 +2020-05-03,Reno,Kansas,20155,40,0 +2020-05-04,Reno,Kansas,20155,40,0 +2020-05-05,Reno,Kansas,20155,40,0 +2020-05-06,Reno,Kansas,20155,40,0 +2020-05-07,Reno,Kansas,20155,44,0 +2020-05-08,Reno,Kansas,20155,52,0 +2020-05-09,Reno,Kansas,20155,52,0 +2020-05-10,Reno,Kansas,20155,53,0 +2020-05-11,Reno,Kansas,20155,52,0 +2020-05-12,Reno,Kansas,20155,52,0 +2020-05-13,Reno,Kansas,20155,51,0 +2020-05-14,Reno,Kansas,20155,51,0 +2020-05-15,Reno,Kansas,20155,51,0 +2020-05-16,Reno,Kansas,20155,51,0 +2020-05-17,Reno,Kansas,20155,51,0 +2020-05-18,Reno,Kansas,20155,51,0 +2020-05-19,Reno,Kansas,20155,51,0 +2020-05-20,Reno,Kansas,20155,51,0 +2020-05-21,Reno,Kansas,20155,51,0 +2020-05-22,Reno,Kansas,20155,51,0 +2020-05-23,Reno,Kansas,20155,51,0 +2020-05-24,Reno,Kansas,20155,51,0 +2020-05-25,Reno,Kansas,20155,52,0 +2020-05-26,Reno,Kansas,20155,52,0 +2020-05-27,Reno,Kansas,20155,51,0 +2020-05-28,Reno,Kansas,20155,51,0 +2020-05-29,Reno,Kansas,20155,51,0 +2020-05-30,Reno,Kansas,20155,51,0 +2020-05-31,Reno,Kansas,20155,51,0 +2020-06-01,Reno,Kansas,20155,51,0 +2020-06-02,Reno,Kansas,20155,51,0 +2020-06-03,Reno,Kansas,20155,51,0 +2020-06-04,Reno,Kansas,20155,51,0 +2020-06-05,Reno,Kansas,20155,53,0 +2020-06-06,Reno,Kansas,20155,53,0 +2020-06-07,Reno,Kansas,20155,53,0 +2020-06-08,Reno,Kansas,20155,54,0 +2020-06-09,Reno,Kansas,20155,54,0 +2020-06-10,Reno,Kansas,20155,55,0 +2020-06-11,Reno,Kansas,20155,55,0 +2020-06-12,Reno,Kansas,20155,56,0 +2020-06-13,Reno,Kansas,20155,56,0 +2020-06-14,Reno,Kansas,20155,56,0 +2020-06-15,Reno,Kansas,20155,57,0 +2020-06-16,Reno,Kansas,20155,57,0 +2020-06-17,Reno,Kansas,20155,58,0 +2020-06-18,Reno,Kansas,20155,58,0 +2020-06-19,Reno,Kansas,20155,58,0 +2020-06-20,Reno,Kansas,20155,58,0 +2020-06-21,Reno,Kansas,20155,58,0 +2020-06-22,Reno,Kansas,20155,63,0 +2020-06-23,Reno,Kansas,20155,63,0 +2020-06-24,Reno,Kansas,20155,67,0 +2020-06-25,Reno,Kansas,20155,67,0 +2020-06-26,Reno,Kansas,20155,69,0 +2020-06-27,Reno,Kansas,20155,69,0 +2020-06-28,Reno,Kansas,20155,69,0 +2020-06-29,Reno,Kansas,20155,74,0 +2020-06-30,Reno,Kansas,20155,74,0 +2020-07-01,Reno,Kansas,20155,74,0 +2020-07-02,Reno,Kansas,20155,74,0 +2020-07-03,Reno,Kansas,20155,84,0 +2020-07-04,Reno,Kansas,20155,84,0 +2020-07-05,Reno,Kansas,20155,84,0 +2020-07-06,Reno,Kansas,20155,96,0 +2020-07-07,Reno,Kansas,20155,96,0 +2020-07-08,Reno,Kansas,20155,101,0 +2020-07-09,Reno,Kansas,20155,103,0 +2020-04-05,Republic,Kansas,20157,1,0 +2020-04-06,Republic,Kansas,20157,1,0 +2020-04-07,Republic,Kansas,20157,2,0 +2020-04-08,Republic,Kansas,20157,3,0 +2020-04-09,Republic,Kansas,20157,3,0 +2020-04-10,Republic,Kansas,20157,4,0 +2020-04-11,Republic,Kansas,20157,4,0 +2020-04-12,Republic,Kansas,20157,4,0 +2020-04-13,Republic,Kansas,20157,4,0 +2020-04-14,Republic,Kansas,20157,4,0 +2020-04-15,Republic,Kansas,20157,4,0 +2020-04-16,Republic,Kansas,20157,4,0 +2020-04-17,Republic,Kansas,20157,4,0 +2020-04-18,Republic,Kansas,20157,4,0 +2020-04-19,Republic,Kansas,20157,4,0 +2020-04-20,Republic,Kansas,20157,4,0 +2020-04-21,Republic,Kansas,20157,4,0 +2020-04-22,Republic,Kansas,20157,4,0 +2020-04-23,Republic,Kansas,20157,4,0 +2020-04-24,Republic,Kansas,20157,4,0 +2020-04-25,Republic,Kansas,20157,4,0 +2020-04-26,Republic,Kansas,20157,4,0 +2020-04-27,Republic,Kansas,20157,4,0 +2020-04-28,Republic,Kansas,20157,4,0 +2020-04-29,Republic,Kansas,20157,4,0 +2020-04-30,Republic,Kansas,20157,4,0 +2020-05-01,Republic,Kansas,20157,4,0 +2020-05-02,Republic,Kansas,20157,4,0 +2020-05-03,Republic,Kansas,20157,4,0 +2020-05-04,Republic,Kansas,20157,4,0 +2020-05-05,Republic,Kansas,20157,4,0 +2020-05-06,Republic,Kansas,20157,4,0 +2020-05-07,Republic,Kansas,20157,4,0 +2020-05-08,Republic,Kansas,20157,4,0 +2020-05-09,Republic,Kansas,20157,4,0 +2020-05-10,Republic,Kansas,20157,4,0 +2020-05-11,Republic,Kansas,20157,4,0 +2020-05-12,Republic,Kansas,20157,4,0 +2020-05-13,Republic,Kansas,20157,4,0 +2020-05-14,Republic,Kansas,20157,4,0 +2020-05-15,Republic,Kansas,20157,4,0 +2020-05-16,Republic,Kansas,20157,4,0 +2020-05-17,Republic,Kansas,20157,4,0 +2020-05-18,Republic,Kansas,20157,4,0 +2020-05-19,Republic,Kansas,20157,4,0 +2020-05-20,Republic,Kansas,20157,4,0 +2020-05-21,Republic,Kansas,20157,4,0 +2020-05-22,Republic,Kansas,20157,4,0 +2020-05-23,Republic,Kansas,20157,4,0 +2020-05-24,Republic,Kansas,20157,4,0 +2020-05-25,Republic,Kansas,20157,4,0 +2020-05-26,Republic,Kansas,20157,4,0 +2020-05-27,Republic,Kansas,20157,4,0 +2020-05-28,Republic,Kansas,20157,4,0 +2020-05-29,Republic,Kansas,20157,4,0 +2020-05-30,Republic,Kansas,20157,4,0 +2020-05-31,Republic,Kansas,20157,4,0 +2020-06-01,Republic,Kansas,20157,4,0 +2020-06-02,Republic,Kansas,20157,4,0 +2020-06-03,Republic,Kansas,20157,4,0 +2020-06-04,Republic,Kansas,20157,4,0 +2020-06-05,Republic,Kansas,20157,4,0 +2020-06-06,Republic,Kansas,20157,4,0 +2020-06-07,Republic,Kansas,20157,4,0 +2020-06-08,Republic,Kansas,20157,4,0 +2020-06-09,Republic,Kansas,20157,4,0 +2020-06-10,Republic,Kansas,20157,4,0 +2020-06-11,Republic,Kansas,20157,4,0 +2020-06-12,Republic,Kansas,20157,4,0 +2020-06-13,Republic,Kansas,20157,4,0 +2020-06-14,Republic,Kansas,20157,4,0 +2020-06-15,Republic,Kansas,20157,4,0 +2020-06-16,Republic,Kansas,20157,4,0 +2020-06-17,Republic,Kansas,20157,4,0 +2020-06-18,Republic,Kansas,20157,4,0 +2020-06-19,Republic,Kansas,20157,4,0 +2020-06-20,Republic,Kansas,20157,4,0 +2020-06-21,Republic,Kansas,20157,4,0 +2020-06-22,Republic,Kansas,20157,4,0 +2020-06-23,Republic,Kansas,20157,4,0 +2020-06-24,Republic,Kansas,20157,4,0 +2020-06-25,Republic,Kansas,20157,4,0 +2020-06-26,Republic,Kansas,20157,7,0 +2020-06-27,Republic,Kansas,20157,7,0 +2020-06-28,Republic,Kansas,20157,9,0 +2020-06-29,Republic,Kansas,20157,9,0 +2020-06-30,Republic,Kansas,20157,9,0 +2020-07-01,Republic,Kansas,20157,9,0 +2020-07-02,Republic,Kansas,20157,9,0 +2020-07-03,Republic,Kansas,20157,9,0 +2020-07-04,Republic,Kansas,20157,9,0 +2020-07-05,Republic,Kansas,20157,9,0 +2020-07-06,Republic,Kansas,20157,9,0 +2020-07-07,Republic,Kansas,20157,9,0 +2020-07-08,Republic,Kansas,20157,11,0 +2020-07-09,Republic,Kansas,20157,11,0 +2020-04-23,Rice,Kansas,20159,1,0 +2020-04-24,Rice,Kansas,20159,2,0 +2020-04-25,Rice,Kansas,20159,3,0 +2020-04-26,Rice,Kansas,20159,3,0 +2020-04-27,Rice,Kansas,20159,3,0 +2020-04-28,Rice,Kansas,20159,3,0 +2020-04-29,Rice,Kansas,20159,3,0 +2020-04-30,Rice,Kansas,20159,3,0 +2020-05-01,Rice,Kansas,20159,3,0 +2020-05-02,Rice,Kansas,20159,3,0 +2020-05-03,Rice,Kansas,20159,3,0 +2020-05-04,Rice,Kansas,20159,3,0 +2020-05-05,Rice,Kansas,20159,3,0 +2020-05-06,Rice,Kansas,20159,3,0 +2020-05-07,Rice,Kansas,20159,3,0 +2020-05-08,Rice,Kansas,20159,3,0 +2020-05-09,Rice,Kansas,20159,3,0 +2020-05-10,Rice,Kansas,20159,3,0 +2020-05-11,Rice,Kansas,20159,3,0 +2020-05-12,Rice,Kansas,20159,3,0 +2020-05-13,Rice,Kansas,20159,4,0 +2020-05-14,Rice,Kansas,20159,4,0 +2020-05-15,Rice,Kansas,20159,4,0 +2020-05-16,Rice,Kansas,20159,4,0 +2020-05-17,Rice,Kansas,20159,4,0 +2020-05-18,Rice,Kansas,20159,4,0 +2020-05-19,Rice,Kansas,20159,4,0 +2020-05-20,Rice,Kansas,20159,4,0 +2020-05-21,Rice,Kansas,20159,4,0 +2020-05-22,Rice,Kansas,20159,4,0 +2020-05-23,Rice,Kansas,20159,4,0 +2020-05-24,Rice,Kansas,20159,4,0 +2020-05-25,Rice,Kansas,20159,4,0 +2020-05-26,Rice,Kansas,20159,4,0 +2020-05-27,Rice,Kansas,20159,4,0 +2020-05-28,Rice,Kansas,20159,4,0 +2020-05-29,Rice,Kansas,20159,4,0 +2020-05-30,Rice,Kansas,20159,4,0 +2020-05-31,Rice,Kansas,20159,4,0 +2020-06-01,Rice,Kansas,20159,4,0 +2020-06-02,Rice,Kansas,20159,4,0 +2020-06-03,Rice,Kansas,20159,4,0 +2020-06-04,Rice,Kansas,20159,4,0 +2020-06-05,Rice,Kansas,20159,4,0 +2020-06-06,Rice,Kansas,20159,4,0 +2020-06-07,Rice,Kansas,20159,4,0 +2020-06-08,Rice,Kansas,20159,4,0 +2020-06-09,Rice,Kansas,20159,4,0 +2020-06-10,Rice,Kansas,20159,4,0 +2020-06-11,Rice,Kansas,20159,4,0 +2020-06-12,Rice,Kansas,20159,4,0 +2020-06-13,Rice,Kansas,20159,4,0 +2020-06-14,Rice,Kansas,20159,4,0 +2020-06-15,Rice,Kansas,20159,4,0 +2020-06-16,Rice,Kansas,20159,4,0 +2020-06-17,Rice,Kansas,20159,4,0 +2020-06-18,Rice,Kansas,20159,4,0 +2020-06-19,Rice,Kansas,20159,4,0 +2020-06-20,Rice,Kansas,20159,4,0 +2020-06-21,Rice,Kansas,20159,4,0 +2020-06-22,Rice,Kansas,20159,4,0 +2020-06-23,Rice,Kansas,20159,4,0 +2020-06-24,Rice,Kansas,20159,4,0 +2020-06-25,Rice,Kansas,20159,4,0 +2020-06-26,Rice,Kansas,20159,4,0 +2020-06-27,Rice,Kansas,20159,4,0 +2020-06-28,Rice,Kansas,20159,4,0 +2020-06-29,Rice,Kansas,20159,4,0 +2020-06-30,Rice,Kansas,20159,4,0 +2020-07-01,Rice,Kansas,20159,4,0 +2020-07-02,Rice,Kansas,20159,4,0 +2020-07-03,Rice,Kansas,20159,4,0 +2020-07-04,Rice,Kansas,20159,4,0 +2020-07-05,Rice,Kansas,20159,4,0 +2020-07-06,Rice,Kansas,20159,4,0 +2020-07-07,Rice,Kansas,20159,4,0 +2020-07-08,Rice,Kansas,20159,4,0 +2020-07-09,Rice,Kansas,20159,4,0 +2020-03-20,Riley,Kansas,20161,1,0 +2020-03-21,Riley,Kansas,20161,1,0 +2020-03-22,Riley,Kansas,20161,1,0 +2020-03-23,Riley,Kansas,20161,1,0 +2020-03-24,Riley,Kansas,20161,1,0 +2020-03-25,Riley,Kansas,20161,1,0 +2020-03-26,Riley,Kansas,20161,1,0 +2020-03-27,Riley,Kansas,20161,2,0 +2020-03-28,Riley,Kansas,20161,2,0 +2020-03-29,Riley,Kansas,20161,2,0 +2020-03-30,Riley,Kansas,20161,2,0 +2020-03-31,Riley,Kansas,20161,2,0 +2020-04-01,Riley,Kansas,20161,5,0 +2020-04-02,Riley,Kansas,20161,6,0 +2020-04-03,Riley,Kansas,20161,11,0 +2020-04-04,Riley,Kansas,20161,11,0 +2020-04-05,Riley,Kansas,20161,13,0 +2020-04-06,Riley,Kansas,20161,14,0 +2020-04-07,Riley,Kansas,20161,17,0 +2020-04-08,Riley,Kansas,20161,19,0 +2020-04-09,Riley,Kansas,20161,20,0 +2020-04-10,Riley,Kansas,20161,20,0 +2020-04-11,Riley,Kansas,20161,20,0 +2020-04-12,Riley,Kansas,20161,20,0 +2020-04-13,Riley,Kansas,20161,21,0 +2020-04-14,Riley,Kansas,20161,23,0 +2020-04-15,Riley,Kansas,20161,23,0 +2020-04-16,Riley,Kansas,20161,24,0 +2020-04-17,Riley,Kansas,20161,27,0 +2020-04-18,Riley,Kansas,20161,27,0 +2020-04-19,Riley,Kansas,20161,27,0 +2020-04-20,Riley,Kansas,20161,29,0 +2020-04-21,Riley,Kansas,20161,29,0 +2020-04-22,Riley,Kansas,20161,31,0 +2020-04-23,Riley,Kansas,20161,33,0 +2020-04-24,Riley,Kansas,20161,33,0 +2020-04-25,Riley,Kansas,20161,43,0 +2020-04-26,Riley,Kansas,20161,44,0 +2020-04-27,Riley,Kansas,20161,45,0 +2020-04-28,Riley,Kansas,20161,46,0 +2020-04-29,Riley,Kansas,20161,46,0 +2020-04-30,Riley,Kansas,20161,46,0 +2020-05-01,Riley,Kansas,20161,48,0 +2020-05-02,Riley,Kansas,20161,52,0 +2020-05-03,Riley,Kansas,20161,54,0 +2020-05-04,Riley,Kansas,20161,55,0 +2020-05-05,Riley,Kansas,20161,55,0 +2020-05-06,Riley,Kansas,20161,55,0 +2020-05-07,Riley,Kansas,20161,56,0 +2020-05-08,Riley,Kansas,20161,56,0 +2020-05-09,Riley,Kansas,20161,57,0 +2020-05-10,Riley,Kansas,20161,58,0 +2020-05-11,Riley,Kansas,20161,58,0 +2020-05-12,Riley,Kansas,20161,58,1 +2020-05-13,Riley,Kansas,20161,60,1 +2020-05-14,Riley,Kansas,20161,60,1 +2020-05-15,Riley,Kansas,20161,61,1 +2020-05-16,Riley,Kansas,20161,61,1 +2020-05-17,Riley,Kansas,20161,61,1 +2020-05-18,Riley,Kansas,20161,62,1 +2020-05-19,Riley,Kansas,20161,62,1 +2020-05-20,Riley,Kansas,20161,60,1 +2020-05-21,Riley,Kansas,20161,60,1 +2020-05-22,Riley,Kansas,20161,61,1 +2020-05-23,Riley,Kansas,20161,61,1 +2020-05-24,Riley,Kansas,20161,61,1 +2020-05-25,Riley,Kansas,20161,62,1 +2020-05-26,Riley,Kansas,20161,63,1 +2020-05-27,Riley,Kansas,20161,64,1 +2020-05-28,Riley,Kansas,20161,64,1 +2020-05-29,Riley,Kansas,20161,64,1 +2020-05-30,Riley,Kansas,20161,64,1 +2020-05-31,Riley,Kansas,20161,64,1 +2020-06-01,Riley,Kansas,20161,66,1 +2020-06-02,Riley,Kansas,20161,66,1 +2020-06-03,Riley,Kansas,20161,67,1 +2020-06-04,Riley,Kansas,20161,67,1 +2020-06-05,Riley,Kansas,20161,68,1 +2020-06-06,Riley,Kansas,20161,68,1 +2020-06-07,Riley,Kansas,20161,68,1 +2020-06-08,Riley,Kansas,20161,71,1 +2020-06-09,Riley,Kansas,20161,71,1 +2020-06-10,Riley,Kansas,20161,71,3 +2020-06-11,Riley,Kansas,20161,71,3 +2020-06-12,Riley,Kansas,20161,74,3 +2020-06-13,Riley,Kansas,20161,74,3 +2020-06-14,Riley,Kansas,20161,74,3 +2020-06-15,Riley,Kansas,20161,80,3 +2020-06-16,Riley,Kansas,20161,80,3 +2020-06-17,Riley,Kansas,20161,91,3 +2020-06-18,Riley,Kansas,20161,91,3 +2020-06-19,Riley,Kansas,20161,103,3 +2020-06-20,Riley,Kansas,20161,103,3 +2020-06-21,Riley,Kansas,20161,103,3 +2020-06-22,Riley,Kansas,20161,132,3 +2020-06-23,Riley,Kansas,20161,132,3 +2020-06-24,Riley,Kansas,20161,156,3 +2020-06-25,Riley,Kansas,20161,156,3 +2020-06-26,Riley,Kansas,20161,183,3 +2020-06-27,Riley,Kansas,20161,183,3 +2020-06-28,Riley,Kansas,20161,183,3 +2020-06-29,Riley,Kansas,20161,222,3 +2020-06-30,Riley,Kansas,20161,233,3 +2020-07-01,Riley,Kansas,20161,242,3 +2020-07-02,Riley,Kansas,20161,261,3 +2020-07-03,Riley,Kansas,20161,261,3 +2020-07-04,Riley,Kansas,20161,261,3 +2020-07-05,Riley,Kansas,20161,261,3 +2020-07-06,Riley,Kansas,20161,309,3 +2020-07-07,Riley,Kansas,20161,317,3 +2020-07-08,Riley,Kansas,20161,325,3 +2020-07-09,Riley,Kansas,20161,332,3 +2020-04-07,Rooks,Kansas,20163,1,0 +2020-04-08,Rooks,Kansas,20163,2,0 +2020-04-09,Rooks,Kansas,20163,2,0 +2020-04-10,Rooks,Kansas,20163,2,0 +2020-04-11,Rooks,Kansas,20163,2,0 +2020-04-12,Rooks,Kansas,20163,2,0 +2020-04-13,Rooks,Kansas,20163,2,0 +2020-04-14,Rooks,Kansas,20163,2,0 +2020-04-15,Rooks,Kansas,20163,2,0 +2020-04-16,Rooks,Kansas,20163,3,0 +2020-04-17,Rooks,Kansas,20163,3,0 +2020-04-18,Rooks,Kansas,20163,4,0 +2020-04-19,Rooks,Kansas,20163,4,0 +2020-04-20,Rooks,Kansas,20163,4,0 +2020-04-21,Rooks,Kansas,20163,4,0 +2020-04-22,Rooks,Kansas,20163,4,0 +2020-04-23,Rooks,Kansas,20163,4,0 +2020-04-24,Rooks,Kansas,20163,4,0 +2020-04-25,Rooks,Kansas,20163,5,0 +2020-04-26,Rooks,Kansas,20163,6,0 +2020-04-27,Rooks,Kansas,20163,6,0 +2020-04-28,Rooks,Kansas,20163,6,0 +2020-04-29,Rooks,Kansas,20163,6,0 +2020-04-30,Rooks,Kansas,20163,6,0 +2020-05-01,Rooks,Kansas,20163,6,0 +2020-05-02,Rooks,Kansas,20163,6,0 +2020-05-03,Rooks,Kansas,20163,6,0 +2020-05-04,Rooks,Kansas,20163,6,0 +2020-05-05,Rooks,Kansas,20163,6,0 +2020-05-06,Rooks,Kansas,20163,6,0 +2020-05-07,Rooks,Kansas,20163,6,0 +2020-05-08,Rooks,Kansas,20163,6,0 +2020-05-09,Rooks,Kansas,20163,6,0 +2020-05-10,Rooks,Kansas,20163,6,0 +2020-05-11,Rooks,Kansas,20163,7,0 +2020-05-12,Rooks,Kansas,20163,7,0 +2020-05-13,Rooks,Kansas,20163,7,0 +2020-05-14,Rooks,Kansas,20163,7,0 +2020-05-15,Rooks,Kansas,20163,7,0 +2020-05-16,Rooks,Kansas,20163,7,0 +2020-05-17,Rooks,Kansas,20163,7,0 +2020-05-18,Rooks,Kansas,20163,7,0 +2020-05-19,Rooks,Kansas,20163,7,0 +2020-05-20,Rooks,Kansas,20163,7,0 +2020-05-21,Rooks,Kansas,20163,7,0 +2020-05-22,Rooks,Kansas,20163,7,0 +2020-05-23,Rooks,Kansas,20163,7,0 +2020-05-24,Rooks,Kansas,20163,7,0 +2020-05-25,Rooks,Kansas,20163,7,0 +2020-05-26,Rooks,Kansas,20163,7,0 +2020-05-27,Rooks,Kansas,20163,7,0 +2020-05-28,Rooks,Kansas,20163,7,0 +2020-05-29,Rooks,Kansas,20163,7,0 +2020-05-30,Rooks,Kansas,20163,7,0 +2020-05-31,Rooks,Kansas,20163,7,0 +2020-06-01,Rooks,Kansas,20163,7,0 +2020-06-02,Rooks,Kansas,20163,7,0 +2020-06-03,Rooks,Kansas,20163,7,0 +2020-06-04,Rooks,Kansas,20163,7,0 +2020-06-05,Rooks,Kansas,20163,8,0 +2020-06-06,Rooks,Kansas,20163,8,0 +2020-06-07,Rooks,Kansas,20163,8,0 +2020-06-08,Rooks,Kansas,20163,7,0 +2020-06-09,Rooks,Kansas,20163,7,0 +2020-06-10,Rooks,Kansas,20163,7,0 +2020-06-11,Rooks,Kansas,20163,7,0 +2020-06-12,Rooks,Kansas,20163,7,0 +2020-06-13,Rooks,Kansas,20163,7,0 +2020-06-14,Rooks,Kansas,20163,7,0 +2020-06-15,Rooks,Kansas,20163,7,0 +2020-06-16,Rooks,Kansas,20163,7,0 +2020-06-17,Rooks,Kansas,20163,7,0 +2020-06-18,Rooks,Kansas,20163,7,0 +2020-06-19,Rooks,Kansas,20163,7,0 +2020-06-20,Rooks,Kansas,20163,7,0 +2020-06-21,Rooks,Kansas,20163,7,0 +2020-06-22,Rooks,Kansas,20163,7,0 +2020-06-23,Rooks,Kansas,20163,7,0 +2020-06-24,Rooks,Kansas,20163,7,0 +2020-06-25,Rooks,Kansas,20163,7,0 +2020-06-26,Rooks,Kansas,20163,7,0 +2020-06-27,Rooks,Kansas,20163,7,0 +2020-06-28,Rooks,Kansas,20163,8,0 +2020-06-29,Rooks,Kansas,20163,8,0 +2020-06-30,Rooks,Kansas,20163,8,0 +2020-07-01,Rooks,Kansas,20163,8,0 +2020-07-02,Rooks,Kansas,20163,8,0 +2020-07-03,Rooks,Kansas,20163,8,0 +2020-07-04,Rooks,Kansas,20163,8,0 +2020-07-05,Rooks,Kansas,20163,8,0 +2020-07-06,Rooks,Kansas,20163,8,0 +2020-07-07,Rooks,Kansas,20163,8,0 +2020-07-08,Rooks,Kansas,20163,9,0 +2020-07-09,Rooks,Kansas,20163,9,0 +2020-06-29,Rush,Kansas,20165,1,0 +2020-06-30,Rush,Kansas,20165,1,0 +2020-07-01,Rush,Kansas,20165,1,0 +2020-07-02,Rush,Kansas,20165,1,0 +2020-07-03,Rush,Kansas,20165,1,0 +2020-07-04,Rush,Kansas,20165,1,0 +2020-07-05,Rush,Kansas,20165,1,0 +2020-07-06,Rush,Kansas,20165,1,0 +2020-07-07,Rush,Kansas,20165,1,0 +2020-07-08,Rush,Kansas,20165,2,0 +2020-07-09,Rush,Kansas,20165,2,0 +2020-03-30,Saline,Kansas,20169,1,0 +2020-03-31,Saline,Kansas,20169,1,0 +2020-04-01,Saline,Kansas,20169,1,0 +2020-04-02,Saline,Kansas,20169,3,0 +2020-04-03,Saline,Kansas,20169,4,0 +2020-04-04,Saline,Kansas,20169,4,0 +2020-04-05,Saline,Kansas,20169,5,1 +2020-04-06,Saline,Kansas,20169,7,1 +2020-04-07,Saline,Kansas,20169,7,1 +2020-04-08,Saline,Kansas,20169,7,1 +2020-04-09,Saline,Kansas,20169,8,1 +2020-04-10,Saline,Kansas,20169,8,1 +2020-04-11,Saline,Kansas,20169,8,1 +2020-04-12,Saline,Kansas,20169,9,1 +2020-04-13,Saline,Kansas,20169,10,2 +2020-04-14,Saline,Kansas,20169,13,2 +2020-04-15,Saline,Kansas,20169,13,2 +2020-04-16,Saline,Kansas,20169,15,2 +2020-04-17,Saline,Kansas,20169,15,2 +2020-04-18,Saline,Kansas,20169,15,2 +2020-04-19,Saline,Kansas,20169,15,2 +2020-04-20,Saline,Kansas,20169,17,2 +2020-04-21,Saline,Kansas,20169,17,2 +2020-04-22,Saline,Kansas,20169,17,2 +2020-04-23,Saline,Kansas,20169,17,2 +2020-04-24,Saline,Kansas,20169,18,2 +2020-04-25,Saline,Kansas,20169,19,2 +2020-04-26,Saline,Kansas,20169,19,2 +2020-04-27,Saline,Kansas,20169,19,2 +2020-04-28,Saline,Kansas,20169,20,2 +2020-04-29,Saline,Kansas,20169,20,2 +2020-04-30,Saline,Kansas,20169,21,2 +2020-05-01,Saline,Kansas,20169,21,2 +2020-05-02,Saline,Kansas,20169,21,2 +2020-05-03,Saline,Kansas,20169,21,2 +2020-05-04,Saline,Kansas,20169,21,2 +2020-05-05,Saline,Kansas,20169,21,2 +2020-05-06,Saline,Kansas,20169,21,2 +2020-05-07,Saline,Kansas,20169,23,2 +2020-05-08,Saline,Kansas,20169,23,2 +2020-05-09,Saline,Kansas,20169,23,2 +2020-05-10,Saline,Kansas,20169,23,2 +2020-05-11,Saline,Kansas,20169,25,2 +2020-05-12,Saline,Kansas,20169,27,2 +2020-05-13,Saline,Kansas,20169,27,2 +2020-05-14,Saline,Kansas,20169,27,2 +2020-05-15,Saline,Kansas,20169,28,2 +2020-05-16,Saline,Kansas,20169,28,2 +2020-05-17,Saline,Kansas,20169,28,2 +2020-05-18,Saline,Kansas,20169,28,2 +2020-05-19,Saline,Kansas,20169,28,2 +2020-05-20,Saline,Kansas,20169,28,2 +2020-05-21,Saline,Kansas,20169,28,2 +2020-05-22,Saline,Kansas,20169,28,2 +2020-05-23,Saline,Kansas,20169,28,2 +2020-05-24,Saline,Kansas,20169,28,2 +2020-05-25,Saline,Kansas,20169,28,2 +2020-05-26,Saline,Kansas,20169,28,2 +2020-05-27,Saline,Kansas,20169,28,2 +2020-05-28,Saline,Kansas,20169,29,2 +2020-05-29,Saline,Kansas,20169,29,2 +2020-05-30,Saline,Kansas,20169,29,2 +2020-05-31,Saline,Kansas,20169,29,2 +2020-06-01,Saline,Kansas,20169,29,2 +2020-06-02,Saline,Kansas,20169,30,2 +2020-06-03,Saline,Kansas,20169,30,2 +2020-06-04,Saline,Kansas,20169,30,2 +2020-06-05,Saline,Kansas,20169,31,2 +2020-06-06,Saline,Kansas,20169,31,2 +2020-06-07,Saline,Kansas,20169,31,2 +2020-06-08,Saline,Kansas,20169,31,2 +2020-06-09,Saline,Kansas,20169,31,2 +2020-06-10,Saline,Kansas,20169,32,2 +2020-06-11,Saline,Kansas,20169,32,2 +2020-06-12,Saline,Kansas,20169,33,2 +2020-06-13,Saline,Kansas,20169,33,2 +2020-06-14,Saline,Kansas,20169,33,2 +2020-06-15,Saline,Kansas,20169,37,2 +2020-06-16,Saline,Kansas,20169,37,2 +2020-06-17,Saline,Kansas,20169,38,2 +2020-06-18,Saline,Kansas,20169,38,2 +2020-06-19,Saline,Kansas,20169,45,2 +2020-06-20,Saline,Kansas,20169,45,2 +2020-06-21,Saline,Kansas,20169,45,2 +2020-06-22,Saline,Kansas,20169,50,2 +2020-06-23,Saline,Kansas,20169,55,2 +2020-06-24,Saline,Kansas,20169,77,2 +2020-06-25,Saline,Kansas,20169,77,2 +2020-06-26,Saline,Kansas,20169,98,2 +2020-06-27,Saline,Kansas,20169,98,2 +2020-06-28,Saline,Kansas,20169,98,2 +2020-06-29,Saline,Kansas,20169,110,2 +2020-06-30,Saline,Kansas,20169,110,2 +2020-07-01,Saline,Kansas,20169,110,2 +2020-07-02,Saline,Kansas,20169,110,2 +2020-07-03,Saline,Kansas,20169,130,2 +2020-07-04,Saline,Kansas,20169,145,2 +2020-07-05,Saline,Kansas,20169,145,2 +2020-07-06,Saline,Kansas,20169,173,2 +2020-07-07,Saline,Kansas,20169,173,2 +2020-07-08,Saline,Kansas,20169,190,2 +2020-07-09,Saline,Kansas,20169,190,2 +2020-04-07,Scott,Kansas,20171,1,0 +2020-04-08,Scott,Kansas,20171,1,0 +2020-04-09,Scott,Kansas,20171,1,0 +2020-04-10,Scott,Kansas,20171,2,0 +2020-04-11,Scott,Kansas,20171,2,0 +2020-04-12,Scott,Kansas,20171,2,0 +2020-04-13,Scott,Kansas,20171,2,0 +2020-04-14,Scott,Kansas,20171,2,0 +2020-04-15,Scott,Kansas,20171,2,0 +2020-04-16,Scott,Kansas,20171,2,0 +2020-04-17,Scott,Kansas,20171,1,0 +2020-04-18,Scott,Kansas,20171,1,0 +2020-04-19,Scott,Kansas,20171,1,0 +2020-04-20,Scott,Kansas,20171,1,0 +2020-04-21,Scott,Kansas,20171,1,0 +2020-04-22,Scott,Kansas,20171,1,0 +2020-04-23,Scott,Kansas,20171,1,0 +2020-04-24,Scott,Kansas,20171,1,0 +2020-04-25,Scott,Kansas,20171,1,0 +2020-04-26,Scott,Kansas,20171,1,0 +2020-04-27,Scott,Kansas,20171,1,0 +2020-04-28,Scott,Kansas,20171,1,0 +2020-04-29,Scott,Kansas,20171,1,0 +2020-04-30,Scott,Kansas,20171,1,0 +2020-05-01,Scott,Kansas,20171,1,0 +2020-05-02,Scott,Kansas,20171,1,0 +2020-05-03,Scott,Kansas,20171,1,0 +2020-05-04,Scott,Kansas,20171,1,0 +2020-05-05,Scott,Kansas,20171,2,0 +2020-05-06,Scott,Kansas,20171,2,0 +2020-05-07,Scott,Kansas,20171,2,0 +2020-05-08,Scott,Kansas,20171,3,0 +2020-05-09,Scott,Kansas,20171,3,0 +2020-05-10,Scott,Kansas,20171,3,0 +2020-05-11,Scott,Kansas,20171,4,0 +2020-05-12,Scott,Kansas,20171,4,0 +2020-05-13,Scott,Kansas,20171,6,0 +2020-05-14,Scott,Kansas,20171,6,0 +2020-05-15,Scott,Kansas,20171,7,0 +2020-05-16,Scott,Kansas,20171,7,0 +2020-05-17,Scott,Kansas,20171,7,0 +2020-05-18,Scott,Kansas,20171,12,0 +2020-05-19,Scott,Kansas,20171,12,0 +2020-05-20,Scott,Kansas,20171,12,0 +2020-05-21,Scott,Kansas,20171,12,0 +2020-05-22,Scott,Kansas,20171,13,0 +2020-05-23,Scott,Kansas,20171,13,0 +2020-05-24,Scott,Kansas,20171,13,0 +2020-05-25,Scott,Kansas,20171,13,0 +2020-05-26,Scott,Kansas,20171,13,0 +2020-05-27,Scott,Kansas,20171,13,0 +2020-05-28,Scott,Kansas,20171,13,0 +2020-05-29,Scott,Kansas,20171,13,0 +2020-05-30,Scott,Kansas,20171,13,0 +2020-05-31,Scott,Kansas,20171,13,0 +2020-06-01,Scott,Kansas,20171,14,0 +2020-06-02,Scott,Kansas,20171,14,0 +2020-06-03,Scott,Kansas,20171,14,0 +2020-06-04,Scott,Kansas,20171,14,0 +2020-06-05,Scott,Kansas,20171,14,0 +2020-06-06,Scott,Kansas,20171,14,0 +2020-06-07,Scott,Kansas,20171,14,0 +2020-06-08,Scott,Kansas,20171,15,0 +2020-06-09,Scott,Kansas,20171,15,0 +2020-06-10,Scott,Kansas,20171,15,0 +2020-06-11,Scott,Kansas,20171,15,0 +2020-06-12,Scott,Kansas,20171,15,0 +2020-06-13,Scott,Kansas,20171,15,0 +2020-06-14,Scott,Kansas,20171,15,0 +2020-06-15,Scott,Kansas,20171,16,0 +2020-06-16,Scott,Kansas,20171,16,0 +2020-06-17,Scott,Kansas,20171,16,0 +2020-06-18,Scott,Kansas,20171,16,0 +2020-06-19,Scott,Kansas,20171,16,0 +2020-06-20,Scott,Kansas,20171,16,0 +2020-06-21,Scott,Kansas,20171,16,0 +2020-06-22,Scott,Kansas,20171,16,0 +2020-06-23,Scott,Kansas,20171,16,0 +2020-06-24,Scott,Kansas,20171,16,0 +2020-06-25,Scott,Kansas,20171,16,0 +2020-06-26,Scott,Kansas,20171,16,0 +2020-06-27,Scott,Kansas,20171,16,0 +2020-06-28,Scott,Kansas,20171,16,0 +2020-06-29,Scott,Kansas,20171,17,0 +2020-06-30,Scott,Kansas,20171,17,0 +2020-07-01,Scott,Kansas,20171,16,0 +2020-07-02,Scott,Kansas,20171,16,0 +2020-07-03,Scott,Kansas,20171,16,0 +2020-07-04,Scott,Kansas,20171,16,0 +2020-07-05,Scott,Kansas,20171,16,0 +2020-07-06,Scott,Kansas,20171,16,0 +2020-07-07,Scott,Kansas,20171,16,0 +2020-07-08,Scott,Kansas,20171,16,0 +2020-07-09,Scott,Kansas,20171,16,0 +2020-03-19,Sedgwick,Kansas,20173,1,0 +2020-03-20,Sedgwick,Kansas,20173,1,0 +2020-03-21,Sedgwick,Kansas,20173,2,0 +2020-03-22,Sedgwick,Kansas,20173,2,0 +2020-03-23,Sedgwick,Kansas,20173,2,0 +2020-03-24,Sedgwick,Kansas,20173,7,0 +2020-03-25,Sedgwick,Kansas,20173,11,0 +2020-03-26,Sedgwick,Kansas,20173,16,0 +2020-03-27,Sedgwick,Kansas,20173,20,0 +2020-03-28,Sedgwick,Kansas,20173,33,0 +2020-03-29,Sedgwick,Kansas,20173,42,0 +2020-03-30,Sedgwick,Kansas,20173,49,1 +2020-03-31,Sedgwick,Kansas,20173,58,1 +2020-04-01,Sedgwick,Kansas,20173,64,1 +2020-04-02,Sedgwick,Kansas,20173,79,1 +2020-04-03,Sedgwick,Kansas,20173,85,1 +2020-04-04,Sedgwick,Kansas,20173,97,1 +2020-04-05,Sedgwick,Kansas,20173,108,1 +2020-04-06,Sedgwick,Kansas,20173,124,1 +2020-04-07,Sedgwick,Kansas,20173,134,1 +2020-04-08,Sedgwick,Kansas,20173,154,2 +2020-04-09,Sedgwick,Kansas,20173,161,2 +2020-04-10,Sedgwick,Kansas,20173,172,2 +2020-04-11,Sedgwick,Kansas,20173,191,2 +2020-04-12,Sedgwick,Kansas,20173,194,2 +2020-04-13,Sedgwick,Kansas,20173,200,2 +2020-04-14,Sedgwick,Kansas,20173,205,3 +2020-04-15,Sedgwick,Kansas,20173,209,3 +2020-04-16,Sedgwick,Kansas,20173,217,3 +2020-04-17,Sedgwick,Kansas,20173,231,3 +2020-04-18,Sedgwick,Kansas,20173,232,3 +2020-04-19,Sedgwick,Kansas,20173,242,4 +2020-04-20,Sedgwick,Kansas,20173,248,4 +2020-04-21,Sedgwick,Kansas,20173,251,4 +2020-04-22,Sedgwick,Kansas,20173,265,5 +2020-04-23,Sedgwick,Kansas,20173,314,5 +2020-04-24,Sedgwick,Kansas,20173,323,6 +2020-04-25,Sedgwick,Kansas,20173,334,6 +2020-04-26,Sedgwick,Kansas,20173,338,6 +2020-04-27,Sedgwick,Kansas,20173,339,6 +2020-04-28,Sedgwick,Kansas,20173,354,6 +2020-04-29,Sedgwick,Kansas,20173,366,9 +2020-04-30,Sedgwick,Kansas,20173,402,9 +2020-05-01,Sedgwick,Kansas,20173,408,11 +2020-05-02,Sedgwick,Kansas,20173,418,12 +2020-05-03,Sedgwick,Kansas,20173,426,13 +2020-05-04,Sedgwick,Kansas,20173,436,13 +2020-05-05,Sedgwick,Kansas,20173,439,15 +2020-05-06,Sedgwick,Kansas,20173,441,17 +2020-05-07,Sedgwick,Kansas,20173,454,18 +2020-05-08,Sedgwick,Kansas,20173,457,18 +2020-05-09,Sedgwick,Kansas,20173,458,19 +2020-05-10,Sedgwick,Kansas,20173,468,19 +2020-05-11,Sedgwick,Kansas,20173,469,19 +2020-05-12,Sedgwick,Kansas,20173,471,20 +2020-05-13,Sedgwick,Kansas,20173,507,20 +2020-05-14,Sedgwick,Kansas,20173,527,20 +2020-05-15,Sedgwick,Kansas,20173,530,20 +2020-05-16,Sedgwick,Kansas,20173,534,20 +2020-05-17,Sedgwick,Kansas,20173,535,20 +2020-05-18,Sedgwick,Kansas,20173,536,20 +2020-05-19,Sedgwick,Kansas,20173,538,20 +2020-05-20,Sedgwick,Kansas,20173,539,20 +2020-05-21,Sedgwick,Kansas,20173,542,21 +2020-05-22,Sedgwick,Kansas,20173,545,21 +2020-05-23,Sedgwick,Kansas,20173,553,21 +2020-05-24,Sedgwick,Kansas,20173,556,21 +2020-05-25,Sedgwick,Kansas,20173,559,21 +2020-05-26,Sedgwick,Kansas,20173,560,21 +2020-05-27,Sedgwick,Kansas,20173,564,21 +2020-05-28,Sedgwick,Kansas,20173,573,21 +2020-05-29,Sedgwick,Kansas,20173,575,21 +2020-05-30,Sedgwick,Kansas,20173,580,21 +2020-05-31,Sedgwick,Kansas,20173,585,21 +2020-06-01,Sedgwick,Kansas,20173,601,21 +2020-06-02,Sedgwick,Kansas,20173,604,21 +2020-06-03,Sedgwick,Kansas,20173,616,21 +2020-06-04,Sedgwick,Kansas,20173,625,21 +2020-06-05,Sedgwick,Kansas,20173,635,21 +2020-06-06,Sedgwick,Kansas,20173,640,21 +2020-06-07,Sedgwick,Kansas,20173,654,21 +2020-06-08,Sedgwick,Kansas,20173,660,22 +2020-06-09,Sedgwick,Kansas,20173,689,22 +2020-06-10,Sedgwick,Kansas,20173,710,22 +2020-06-11,Sedgwick,Kansas,20173,717,23 +2020-06-12,Sedgwick,Kansas,20173,728,23 +2020-06-13,Sedgwick,Kansas,20173,739,25 +2020-06-14,Sedgwick,Kansas,20173,745,25 +2020-06-15,Sedgwick,Kansas,20173,764,25 +2020-06-16,Sedgwick,Kansas,20173,791,25 +2020-06-17,Sedgwick,Kansas,20173,810,25 +2020-06-18,Sedgwick,Kansas,20173,821,25 +2020-06-19,Sedgwick,Kansas,20173,846,25 +2020-06-20,Sedgwick,Kansas,20173,867,25 +2020-06-21,Sedgwick,Kansas,20173,882,25 +2020-06-22,Sedgwick,Kansas,20173,896,25 +2020-06-23,Sedgwick,Kansas,20173,937,26 +2020-06-24,Sedgwick,Kansas,20173,974,26 +2020-06-25,Sedgwick,Kansas,20173,1001,28 +2020-06-26,Sedgwick,Kansas,20173,1072,28 +2020-06-27,Sedgwick,Kansas,20173,1072,28 +2020-06-28,Sedgwick,Kansas,20173,1120,28 +2020-06-29,Sedgwick,Kansas,20173,1260,28 +2020-06-30,Sedgwick,Kansas,20173,1260,28 +2020-07-01,Sedgwick,Kansas,20173,1368,28 +2020-07-02,Sedgwick,Kansas,20173,1368,28 +2020-07-03,Sedgwick,Kansas,20173,1564,28 +2020-07-04,Sedgwick,Kansas,20173,1564,28 +2020-07-05,Sedgwick,Kansas,20173,1564,28 +2020-07-06,Sedgwick,Kansas,20173,1750,28 +2020-07-07,Sedgwick,Kansas,20173,1750,28 +2020-07-08,Sedgwick,Kansas,20173,1922,28 +2020-07-09,Sedgwick,Kansas,20173,1922,28 +2020-04-07,Seward,Kansas,20175,1,0 +2020-04-08,Seward,Kansas,20175,3,0 +2020-04-09,Seward,Kansas,20175,3,0 +2020-04-10,Seward,Kansas,20175,3,0 +2020-04-11,Seward,Kansas,20175,5,0 +2020-04-12,Seward,Kansas,20175,5,0 +2020-04-13,Seward,Kansas,20175,6,0 +2020-04-14,Seward,Kansas,20175,6,0 +2020-04-15,Seward,Kansas,20175,7,0 +2020-04-16,Seward,Kansas,20175,10,0 +2020-04-17,Seward,Kansas,20175,24,0 +2020-04-18,Seward,Kansas,20175,35,0 +2020-04-19,Seward,Kansas,20175,47,0 +2020-04-20,Seward,Kansas,20175,77,0 +2020-04-21,Seward,Kansas,20175,96,0 +2020-04-22,Seward,Kansas,20175,142,0 +2020-04-23,Seward,Kansas,20175,195,0 +2020-04-24,Seward,Kansas,20175,249,0 +2020-04-25,Seward,Kansas,20175,307,0 +2020-04-26,Seward,Kansas,20175,336,0 +2020-04-27,Seward,Kansas,20175,349,0 +2020-04-28,Seward,Kansas,20175,422,0 +2020-04-29,Seward,Kansas,20175,460,0 +2020-04-30,Seward,Kansas,20175,500,0 +2020-05-01,Seward,Kansas,20175,514,0 +2020-05-02,Seward,Kansas,20175,539,0 +2020-05-03,Seward,Kansas,20175,547,0 +2020-05-04,Seward,Kansas,20175,580,0 +2020-05-05,Seward,Kansas,20175,606,0 +2020-05-06,Seward,Kansas,20175,626,0 +2020-05-07,Seward,Kansas,20175,647,0 +2020-05-08,Seward,Kansas,20175,668,0 +2020-05-09,Seward,Kansas,20175,681,0 +2020-05-10,Seward,Kansas,20175,686,0 +2020-05-11,Seward,Kansas,20175,693,0 +2020-05-12,Seward,Kansas,20175,727,0 +2020-05-13,Seward,Kansas,20175,732,0 +2020-05-14,Seward,Kansas,20175,732,0 +2020-05-15,Seward,Kansas,20175,758,1 +2020-05-16,Seward,Kansas,20175,758,1 +2020-05-17,Seward,Kansas,20175,758,1 +2020-05-18,Seward,Kansas,20175,780,1 +2020-05-19,Seward,Kansas,20175,780,1 +2020-05-20,Seward,Kansas,20175,799,1 +2020-05-21,Seward,Kansas,20175,817,1 +2020-05-22,Seward,Kansas,20175,821,1 +2020-05-23,Seward,Kansas,20175,821,1 +2020-05-24,Seward,Kansas,20175,821,1 +2020-05-25,Seward,Kansas,20175,822,1 +2020-05-26,Seward,Kansas,20175,837,1 +2020-05-27,Seward,Kansas,20175,849,2 +2020-05-28,Seward,Kansas,20175,849,2 +2020-05-29,Seward,Kansas,20175,883,2 +2020-05-30,Seward,Kansas,20175,883,2 +2020-05-31,Seward,Kansas,20175,883,2 +2020-06-01,Seward,Kansas,20175,879,2 +2020-06-02,Seward,Kansas,20175,883,2 +2020-06-03,Seward,Kansas,20175,888,2 +2020-06-04,Seward,Kansas,20175,891,2 +2020-06-05,Seward,Kansas,20175,891,2 +2020-06-06,Seward,Kansas,20175,891,2 +2020-06-07,Seward,Kansas,20175,891,2 +2020-06-08,Seward,Kansas,20175,900,2 +2020-06-09,Seward,Kansas,20175,904,2 +2020-06-10,Seward,Kansas,20175,917,2 +2020-06-11,Seward,Kansas,20175,917,2 +2020-06-12,Seward,Kansas,20175,924,2 +2020-06-13,Seward,Kansas,20175,924,2 +2020-06-14,Seward,Kansas,20175,924,2 +2020-06-15,Seward,Kansas,20175,934,2 +2020-06-16,Seward,Kansas,20175,934,2 +2020-06-17,Seward,Kansas,20175,934,2 +2020-06-18,Seward,Kansas,20175,940,2 +2020-06-19,Seward,Kansas,20175,955,2 +2020-06-20,Seward,Kansas,20175,955,2 +2020-06-21,Seward,Kansas,20175,955,2 +2020-06-22,Seward,Kansas,20175,968,2 +2020-06-23,Seward,Kansas,20175,968,2 +2020-06-24,Seward,Kansas,20175,991,2 +2020-06-25,Seward,Kansas,20175,991,2 +2020-06-26,Seward,Kansas,20175,1001,2 +2020-06-27,Seward,Kansas,20175,1001,2 +2020-06-28,Seward,Kansas,20175,1001,2 +2020-06-29,Seward,Kansas,20175,1011,2 +2020-06-30,Seward,Kansas,20175,1011,2 +2020-07-01,Seward,Kansas,20175,1019,2 +2020-07-02,Seward,Kansas,20175,1019,2 +2020-07-03,Seward,Kansas,20175,1033,2 +2020-07-04,Seward,Kansas,20175,1033,2 +2020-07-05,Seward,Kansas,20175,1033,2 +2020-07-06,Seward,Kansas,20175,1045,2 +2020-07-07,Seward,Kansas,20175,1045,2 +2020-07-08,Seward,Kansas,20175,1048,2 +2020-07-09,Seward,Kansas,20175,1048,2 +2020-03-25,Shawnee,Kansas,20177,3,0 +2020-03-26,Shawnee,Kansas,20177,4,0 +2020-03-27,Shawnee,Kansas,20177,5,0 +2020-03-28,Shawnee,Kansas,20177,7,1 +2020-03-29,Shawnee,Kansas,20177,13,1 +2020-03-30,Shawnee,Kansas,20177,14,1 +2020-03-31,Shawnee,Kansas,20177,17,1 +2020-04-01,Shawnee,Kansas,20177,18,2 +2020-04-02,Shawnee,Kansas,20177,20,2 +2020-04-03,Shawnee,Kansas,20177,24,2 +2020-04-04,Shawnee,Kansas,20177,27,2 +2020-04-05,Shawnee,Kansas,20177,38,3 +2020-04-06,Shawnee,Kansas,20177,40,3 +2020-04-07,Shawnee,Kansas,20177,43,3 +2020-04-08,Shawnee,Kansas,20177,53,3 +2020-04-09,Shawnee,Kansas,20177,56,3 +2020-04-10,Shawnee,Kansas,20177,59,3 +2020-04-11,Shawnee,Kansas,20177,73,3 +2020-04-12,Shawnee,Kansas,20177,75,4 +2020-04-13,Shawnee,Kansas,20177,78,5 +2020-04-14,Shawnee,Kansas,20177,80,5 +2020-04-15,Shawnee,Kansas,20177,82,5 +2020-04-16,Shawnee,Kansas,20177,82,5 +2020-04-17,Shawnee,Kansas,20177,90,5 +2020-04-18,Shawnee,Kansas,20177,90,5 +2020-04-19,Shawnee,Kansas,20177,91,5 +2020-04-20,Shawnee,Kansas,20177,91,5 +2020-04-21,Shawnee,Kansas,20177,94,5 +2020-04-22,Shawnee,Kansas,20177,95,5 +2020-04-23,Shawnee,Kansas,20177,98,5 +2020-04-24,Shawnee,Kansas,20177,100,5 +2020-04-25,Shawnee,Kansas,20177,100,5 +2020-04-26,Shawnee,Kansas,20177,101,5 +2020-04-27,Shawnee,Kansas,20177,106,5 +2020-04-28,Shawnee,Kansas,20177,108,5 +2020-04-29,Shawnee,Kansas,20177,112,5 +2020-04-30,Shawnee,Kansas,20177,117,5 +2020-05-01,Shawnee,Kansas,20177,121,5 +2020-05-02,Shawnee,Kansas,20177,126,5 +2020-05-03,Shawnee,Kansas,20177,127,5 +2020-05-04,Shawnee,Kansas,20177,128,5 +2020-05-05,Shawnee,Kansas,20177,133,5 +2020-05-06,Shawnee,Kansas,20177,137,5 +2020-05-07,Shawnee,Kansas,20177,140,5 +2020-05-08,Shawnee,Kansas,20177,149,5 +2020-05-09,Shawnee,Kansas,20177,160,5 +2020-05-10,Shawnee,Kansas,20177,160,5 +2020-05-11,Shawnee,Kansas,20177,166,5 +2020-05-12,Shawnee,Kansas,20177,173,5 +2020-05-13,Shawnee,Kansas,20177,178,5 +2020-05-14,Shawnee,Kansas,20177,179,5 +2020-05-15,Shawnee,Kansas,20177,184,5 +2020-05-16,Shawnee,Kansas,20177,185,5 +2020-05-17,Shawnee,Kansas,20177,185,5 +2020-05-18,Shawnee,Kansas,20177,198,5 +2020-05-19,Shawnee,Kansas,20177,199,5 +2020-05-20,Shawnee,Kansas,20177,217,6 +2020-05-21,Shawnee,Kansas,20177,234,6 +2020-05-22,Shawnee,Kansas,20177,249,6 +2020-05-23,Shawnee,Kansas,20177,254,6 +2020-05-24,Shawnee,Kansas,20177,254,6 +2020-05-25,Shawnee,Kansas,20177,265,6 +2020-05-26,Shawnee,Kansas,20177,269,7 +2020-05-27,Shawnee,Kansas,20177,272,7 +2020-05-28,Shawnee,Kansas,20177,272,7 +2020-05-29,Shawnee,Kansas,20177,294,7 +2020-05-30,Shawnee,Kansas,20177,300,7 +2020-05-31,Shawnee,Kansas,20177,300,7 +2020-06-01,Shawnee,Kansas,20177,328,7 +2020-06-02,Shawnee,Kansas,20177,328,7 +2020-06-03,Shawnee,Kansas,20177,336,7 +2020-06-04,Shawnee,Kansas,20177,348,7 +2020-06-05,Shawnee,Kansas,20177,369,7 +2020-06-06,Shawnee,Kansas,20177,372,7 +2020-06-07,Shawnee,Kansas,20177,372,7 +2020-06-08,Shawnee,Kansas,20177,384,7 +2020-06-09,Shawnee,Kansas,20177,394,7 +2020-06-10,Shawnee,Kansas,20177,409,8 +2020-06-11,Shawnee,Kansas,20177,420,8 +2020-06-12,Shawnee,Kansas,20177,439,8 +2020-06-13,Shawnee,Kansas,20177,439,8 +2020-06-14,Shawnee,Kansas,20177,439,8 +2020-06-15,Shawnee,Kansas,20177,461,9 +2020-06-16,Shawnee,Kansas,20177,461,9 +2020-06-17,Shawnee,Kansas,20177,465,9 +2020-06-18,Shawnee,Kansas,20177,469,9 +2020-06-19,Shawnee,Kansas,20177,485,9 +2020-06-20,Shawnee,Kansas,20177,491,9 +2020-06-21,Shawnee,Kansas,20177,491,9 +2020-06-22,Shawnee,Kansas,20177,515,9 +2020-06-23,Shawnee,Kansas,20177,515,9 +2020-06-24,Shawnee,Kansas,20177,543,9 +2020-06-25,Shawnee,Kansas,20177,546,9 +2020-06-26,Shawnee,Kansas,20177,576,9 +2020-06-27,Shawnee,Kansas,20177,596,9 +2020-06-28,Shawnee,Kansas,20177,596,9 +2020-06-29,Shawnee,Kansas,20177,630,11 +2020-06-30,Shawnee,Kansas,20177,646,11 +2020-07-01,Shawnee,Kansas,20177,670,12 +2020-07-02,Shawnee,Kansas,20177,709,13 +2020-07-03,Shawnee,Kansas,20177,759,13 +2020-07-04,Shawnee,Kansas,20177,759,13 +2020-07-05,Shawnee,Kansas,20177,759,13 +2020-07-06,Shawnee,Kansas,20177,825,13 +2020-07-07,Shawnee,Kansas,20177,844,13 +2020-07-08,Shawnee,Kansas,20177,890,13 +2020-07-09,Shawnee,Kansas,20177,918,13 +2020-04-19,Sheridan,Kansas,20179,1,0 +2020-04-20,Sheridan,Kansas,20179,1,0 +2020-04-21,Sheridan,Kansas,20179,1,0 +2020-04-22,Sheridan,Kansas,20179,1,0 +2020-04-23,Sheridan,Kansas,20179,2,0 +2020-04-24,Sheridan,Kansas,20179,2,0 +2020-04-25,Sheridan,Kansas,20179,2,0 +2020-04-26,Sheridan,Kansas,20179,2,0 +2020-04-27,Sheridan,Kansas,20179,2,0 +2020-04-28,Sheridan,Kansas,20179,2,0 +2020-04-29,Sheridan,Kansas,20179,2,0 +2020-04-30,Sheridan,Kansas,20179,2,0 +2020-05-01,Sheridan,Kansas,20179,2,0 +2020-05-02,Sheridan,Kansas,20179,2,0 +2020-05-03,Sheridan,Kansas,20179,2,0 +2020-05-04,Sheridan,Kansas,20179,2,0 +2020-05-05,Sheridan,Kansas,20179,2,0 +2020-05-06,Sheridan,Kansas,20179,2,0 +2020-05-07,Sheridan,Kansas,20179,2,0 +2020-05-08,Sheridan,Kansas,20179,2,0 +2020-05-09,Sheridan,Kansas,20179,2,0 +2020-05-10,Sheridan,Kansas,20179,2,0 +2020-05-11,Sheridan,Kansas,20179,2,0 +2020-05-12,Sheridan,Kansas,20179,2,0 +2020-05-13,Sheridan,Kansas,20179,2,0 +2020-05-14,Sheridan,Kansas,20179,2,0 +2020-05-15,Sheridan,Kansas,20179,2,0 +2020-05-16,Sheridan,Kansas,20179,2,0 +2020-05-17,Sheridan,Kansas,20179,2,0 +2020-05-18,Sheridan,Kansas,20179,2,0 +2020-05-19,Sheridan,Kansas,20179,2,0 +2020-05-20,Sheridan,Kansas,20179,2,0 +2020-05-21,Sheridan,Kansas,20179,2,0 +2020-05-22,Sheridan,Kansas,20179,2,0 +2020-05-23,Sheridan,Kansas,20179,2,0 +2020-05-24,Sheridan,Kansas,20179,2,0 +2020-05-25,Sheridan,Kansas,20179,2,0 +2020-05-26,Sheridan,Kansas,20179,2,0 +2020-05-27,Sheridan,Kansas,20179,2,0 +2020-05-28,Sheridan,Kansas,20179,2,0 +2020-05-29,Sheridan,Kansas,20179,2,0 +2020-05-30,Sheridan,Kansas,20179,2,0 +2020-05-31,Sheridan,Kansas,20179,2,0 +2020-06-01,Sheridan,Kansas,20179,2,0 +2020-06-02,Sheridan,Kansas,20179,2,0 +2020-06-03,Sheridan,Kansas,20179,2,0 +2020-06-04,Sheridan,Kansas,20179,2,0 +2020-06-05,Sheridan,Kansas,20179,2,0 +2020-06-06,Sheridan,Kansas,20179,2,0 +2020-06-07,Sheridan,Kansas,20179,2,0 +2020-06-08,Sheridan,Kansas,20179,2,0 +2020-06-09,Sheridan,Kansas,20179,2,0 +2020-06-10,Sheridan,Kansas,20179,2,0 +2020-06-11,Sheridan,Kansas,20179,2,0 +2020-06-12,Sheridan,Kansas,20179,2,0 +2020-06-13,Sheridan,Kansas,20179,2,0 +2020-06-14,Sheridan,Kansas,20179,2,0 +2020-06-15,Sheridan,Kansas,20179,2,0 +2020-06-16,Sheridan,Kansas,20179,2,0 +2020-06-17,Sheridan,Kansas,20179,3,0 +2020-06-18,Sheridan,Kansas,20179,3,0 +2020-06-19,Sheridan,Kansas,20179,3,0 +2020-06-20,Sheridan,Kansas,20179,3,0 +2020-06-21,Sheridan,Kansas,20179,3,0 +2020-06-22,Sheridan,Kansas,20179,3,0 +2020-06-23,Sheridan,Kansas,20179,3,0 +2020-06-24,Sheridan,Kansas,20179,3,0 +2020-06-25,Sheridan,Kansas,20179,3,0 +2020-06-26,Sheridan,Kansas,20179,3,0 +2020-06-27,Sheridan,Kansas,20179,3,0 +2020-06-28,Sheridan,Kansas,20179,4,0 +2020-06-29,Sheridan,Kansas,20179,4,0 +2020-06-30,Sheridan,Kansas,20179,4,0 +2020-07-01,Sheridan,Kansas,20179,5,0 +2020-07-02,Sheridan,Kansas,20179,5,0 +2020-07-03,Sheridan,Kansas,20179,5,0 +2020-07-04,Sheridan,Kansas,20179,5,0 +2020-07-05,Sheridan,Kansas,20179,5,0 +2020-07-06,Sheridan,Kansas,20179,5,0 +2020-07-07,Sheridan,Kansas,20179,5,0 +2020-07-08,Sheridan,Kansas,20179,5,0 +2020-07-09,Sheridan,Kansas,20179,5,0 +2020-04-17,Sherman,Kansas,20181,1,0 +2020-04-18,Sherman,Kansas,20181,1,0 +2020-04-19,Sherman,Kansas,20181,1,0 +2020-04-20,Sherman,Kansas,20181,1,0 +2020-04-21,Sherman,Kansas,20181,1,0 +2020-04-22,Sherman,Kansas,20181,1,0 +2020-04-23,Sherman,Kansas,20181,1,0 +2020-04-24,Sherman,Kansas,20181,3,0 +2020-04-25,Sherman,Kansas,20181,3,0 +2020-04-26,Sherman,Kansas,20181,3,0 +2020-04-27,Sherman,Kansas,20181,3,0 +2020-04-28,Sherman,Kansas,20181,3,0 +2020-04-29,Sherman,Kansas,20181,3,0 +2020-04-30,Sherman,Kansas,20181,4,0 +2020-05-01,Sherman,Kansas,20181,4,0 +2020-05-02,Sherman,Kansas,20181,5,0 +2020-05-03,Sherman,Kansas,20181,5,0 +2020-05-04,Sherman,Kansas,20181,5,0 +2020-05-05,Sherman,Kansas,20181,5,0 +2020-05-06,Sherman,Kansas,20181,5,0 +2020-05-07,Sherman,Kansas,20181,5,0 +2020-05-08,Sherman,Kansas,20181,5,0 +2020-05-09,Sherman,Kansas,20181,5,0 +2020-05-10,Sherman,Kansas,20181,5,0 +2020-05-11,Sherman,Kansas,20181,5,0 +2020-05-12,Sherman,Kansas,20181,5,0 +2020-05-13,Sherman,Kansas,20181,5,0 +2020-05-14,Sherman,Kansas,20181,5,0 +2020-05-15,Sherman,Kansas,20181,5,0 +2020-05-16,Sherman,Kansas,20181,5,0 +2020-05-17,Sherman,Kansas,20181,5,0 +2020-05-18,Sherman,Kansas,20181,6,0 +2020-05-19,Sherman,Kansas,20181,6,0 +2020-05-20,Sherman,Kansas,20181,6,0 +2020-05-21,Sherman,Kansas,20181,6,0 +2020-05-22,Sherman,Kansas,20181,6,0 +2020-05-23,Sherman,Kansas,20181,6,0 +2020-05-24,Sherman,Kansas,20181,6,0 +2020-05-25,Sherman,Kansas,20181,6,0 +2020-05-26,Sherman,Kansas,20181,6,0 +2020-05-27,Sherman,Kansas,20181,6,0 +2020-05-28,Sherman,Kansas,20181,6,0 +2020-05-29,Sherman,Kansas,20181,7,0 +2020-05-30,Sherman,Kansas,20181,7,0 +2020-05-31,Sherman,Kansas,20181,7,0 +2020-06-01,Sherman,Kansas,20181,7,0 +2020-06-02,Sherman,Kansas,20181,7,0 +2020-06-03,Sherman,Kansas,20181,7,0 +2020-06-04,Sherman,Kansas,20181,7,0 +2020-06-05,Sherman,Kansas,20181,7,0 +2020-06-06,Sherman,Kansas,20181,7,0 +2020-06-07,Sherman,Kansas,20181,7,0 +2020-06-08,Sherman,Kansas,20181,7,0 +2020-06-09,Sherman,Kansas,20181,7,0 +2020-06-10,Sherman,Kansas,20181,7,0 +2020-06-11,Sherman,Kansas,20181,7,0 +2020-06-12,Sherman,Kansas,20181,7,0 +2020-06-13,Sherman,Kansas,20181,7,0 +2020-06-14,Sherman,Kansas,20181,7,0 +2020-06-15,Sherman,Kansas,20181,7,0 +2020-06-16,Sherman,Kansas,20181,7,0 +2020-06-17,Sherman,Kansas,20181,7,0 +2020-06-18,Sherman,Kansas,20181,7,0 +2020-06-19,Sherman,Kansas,20181,7,0 +2020-06-20,Sherman,Kansas,20181,7,0 +2020-06-21,Sherman,Kansas,20181,7,0 +2020-06-22,Sherman,Kansas,20181,7,0 +2020-06-23,Sherman,Kansas,20181,7,0 +2020-06-24,Sherman,Kansas,20181,7,0 +2020-06-25,Sherman,Kansas,20181,7,0 +2020-06-26,Sherman,Kansas,20181,7,0 +2020-06-27,Sherman,Kansas,20181,7,0 +2020-06-28,Sherman,Kansas,20181,7,0 +2020-06-29,Sherman,Kansas,20181,7,0 +2020-06-30,Sherman,Kansas,20181,7,0 +2020-07-01,Sherman,Kansas,20181,7,0 +2020-07-02,Sherman,Kansas,20181,7,0 +2020-07-03,Sherman,Kansas,20181,7,0 +2020-07-04,Sherman,Kansas,20181,7,0 +2020-07-05,Sherman,Kansas,20181,7,0 +2020-07-06,Sherman,Kansas,20181,7,0 +2020-07-07,Sherman,Kansas,20181,7,0 +2020-07-08,Sherman,Kansas,20181,7,0 +2020-07-09,Sherman,Kansas,20181,7,0 +2020-04-15,Smith,Kansas,20183,1,0 +2020-04-16,Smith,Kansas,20183,1,0 +2020-04-17,Smith,Kansas,20183,2,0 +2020-04-18,Smith,Kansas,20183,2,0 +2020-04-19,Smith,Kansas,20183,2,0 +2020-04-20,Smith,Kansas,20183,2,0 +2020-04-21,Smith,Kansas,20183,2,0 +2020-04-22,Smith,Kansas,20183,2,0 +2020-04-23,Smith,Kansas,20183,2,0 +2020-04-24,Smith,Kansas,20183,2,0 +2020-04-25,Smith,Kansas,20183,2,0 +2020-04-26,Smith,Kansas,20183,2,0 +2020-04-27,Smith,Kansas,20183,2,0 +2020-04-28,Smith,Kansas,20183,2,0 +2020-04-29,Smith,Kansas,20183,2,0 +2020-04-30,Smith,Kansas,20183,2,0 +2020-05-01,Smith,Kansas,20183,2,0 +2020-05-02,Smith,Kansas,20183,2,0 +2020-05-03,Smith,Kansas,20183,2,0 +2020-05-04,Smith,Kansas,20183,2,0 +2020-05-05,Smith,Kansas,20183,2,0 +2020-05-06,Smith,Kansas,20183,2,0 +2020-05-07,Smith,Kansas,20183,2,0 +2020-05-08,Smith,Kansas,20183,2,0 +2020-05-09,Smith,Kansas,20183,2,0 +2020-05-10,Smith,Kansas,20183,2,0 +2020-05-11,Smith,Kansas,20183,2,0 +2020-05-12,Smith,Kansas,20183,2,0 +2020-05-13,Smith,Kansas,20183,2,0 +2020-05-14,Smith,Kansas,20183,2,0 +2020-05-15,Smith,Kansas,20183,2,0 +2020-05-16,Smith,Kansas,20183,2,0 +2020-05-17,Smith,Kansas,20183,2,0 +2020-05-18,Smith,Kansas,20183,2,0 +2020-05-19,Smith,Kansas,20183,2,0 +2020-05-20,Smith,Kansas,20183,2,0 +2020-05-21,Smith,Kansas,20183,2,0 +2020-05-22,Smith,Kansas,20183,2,0 +2020-05-23,Smith,Kansas,20183,2,0 +2020-05-24,Smith,Kansas,20183,2,0 +2020-05-25,Smith,Kansas,20183,2,0 +2020-05-26,Smith,Kansas,20183,2,0 +2020-05-27,Smith,Kansas,20183,2,0 +2020-05-28,Smith,Kansas,20183,2,0 +2020-05-29,Smith,Kansas,20183,2,0 +2020-05-30,Smith,Kansas,20183,2,0 +2020-05-31,Smith,Kansas,20183,2,0 +2020-06-01,Smith,Kansas,20183,2,0 +2020-06-02,Smith,Kansas,20183,2,0 +2020-06-03,Smith,Kansas,20183,2,0 +2020-06-04,Smith,Kansas,20183,2,0 +2020-06-05,Smith,Kansas,20183,2,0 +2020-06-06,Smith,Kansas,20183,2,0 +2020-06-07,Smith,Kansas,20183,2,0 +2020-06-08,Smith,Kansas,20183,2,0 +2020-06-09,Smith,Kansas,20183,2,0 +2020-06-10,Smith,Kansas,20183,2,0 +2020-06-11,Smith,Kansas,20183,2,0 +2020-06-12,Smith,Kansas,20183,2,0 +2020-06-13,Smith,Kansas,20183,2,0 +2020-06-14,Smith,Kansas,20183,2,0 +2020-06-15,Smith,Kansas,20183,3,0 +2020-06-16,Smith,Kansas,20183,3,0 +2020-06-17,Smith,Kansas,20183,3,0 +2020-06-18,Smith,Kansas,20183,3,0 +2020-06-19,Smith,Kansas,20183,3,0 +2020-06-20,Smith,Kansas,20183,3,0 +2020-06-21,Smith,Kansas,20183,3,0 +2020-06-22,Smith,Kansas,20183,3,0 +2020-06-23,Smith,Kansas,20183,3,0 +2020-06-24,Smith,Kansas,20183,3,0 +2020-06-25,Smith,Kansas,20183,3,0 +2020-06-26,Smith,Kansas,20183,3,0 +2020-06-27,Smith,Kansas,20183,3,0 +2020-06-28,Smith,Kansas,20183,3,0 +2020-06-29,Smith,Kansas,20183,3,0 +2020-06-30,Smith,Kansas,20183,3,0 +2020-07-01,Smith,Kansas,20183,3,0 +2020-07-02,Smith,Kansas,20183,3,0 +2020-07-03,Smith,Kansas,20183,3,0 +2020-07-04,Smith,Kansas,20183,3,0 +2020-07-05,Smith,Kansas,20183,3,0 +2020-07-06,Smith,Kansas,20183,3,0 +2020-07-07,Smith,Kansas,20183,3,0 +2020-07-08,Smith,Kansas,20183,3,0 +2020-07-09,Smith,Kansas,20183,3,0 +2020-03-29,Stafford,Kansas,20185,1,0 +2020-03-30,Stafford,Kansas,20185,1,0 +2020-03-31,Stafford,Kansas,20185,1,0 +2020-04-01,Stafford,Kansas,20185,1,0 +2020-04-02,Stafford,Kansas,20185,1,0 +2020-04-03,Stafford,Kansas,20185,1,0 +2020-04-04,Stafford,Kansas,20185,1,0 +2020-04-05,Stafford,Kansas,20185,1,0 +2020-04-06,Stafford,Kansas,20185,1,0 +2020-04-07,Stafford,Kansas,20185,1,0 +2020-04-08,Stafford,Kansas,20185,1,0 +2020-04-09,Stafford,Kansas,20185,1,0 +2020-04-10,Stafford,Kansas,20185,1,0 +2020-04-11,Stafford,Kansas,20185,1,0 +2020-04-12,Stafford,Kansas,20185,1,0 +2020-04-13,Stafford,Kansas,20185,1,0 +2020-04-14,Stafford,Kansas,20185,1,0 +2020-04-15,Stafford,Kansas,20185,1,0 +2020-04-16,Stafford,Kansas,20185,1,0 +2020-04-17,Stafford,Kansas,20185,1,0 +2020-04-18,Stafford,Kansas,20185,1,0 +2020-04-19,Stafford,Kansas,20185,1,0 +2020-04-20,Stafford,Kansas,20185,1,0 +2020-04-21,Stafford,Kansas,20185,1,0 +2020-04-22,Stafford,Kansas,20185,1,0 +2020-04-23,Stafford,Kansas,20185,1,0 +2020-04-24,Stafford,Kansas,20185,1,0 +2020-04-25,Stafford,Kansas,20185,1,0 +2020-04-26,Stafford,Kansas,20185,1,0 +2020-04-27,Stafford,Kansas,20185,1,0 +2020-04-28,Stafford,Kansas,20185,1,0 +2020-04-29,Stafford,Kansas,20185,1,0 +2020-04-30,Stafford,Kansas,20185,1,0 +2020-05-01,Stafford,Kansas,20185,1,0 +2020-05-02,Stafford,Kansas,20185,1,0 +2020-05-03,Stafford,Kansas,20185,1,0 +2020-05-04,Stafford,Kansas,20185,1,0 +2020-05-05,Stafford,Kansas,20185,1,0 +2020-05-06,Stafford,Kansas,20185,1,0 +2020-05-07,Stafford,Kansas,20185,1,0 +2020-05-08,Stafford,Kansas,20185,1,0 +2020-05-09,Stafford,Kansas,20185,1,0 +2020-05-10,Stafford,Kansas,20185,1,0 +2020-05-11,Stafford,Kansas,20185,1,0 +2020-05-12,Stafford,Kansas,20185,1,0 +2020-05-13,Stafford,Kansas,20185,1,0 +2020-05-14,Stafford,Kansas,20185,1,0 +2020-05-15,Stafford,Kansas,20185,1,0 +2020-05-16,Stafford,Kansas,20185,1,0 +2020-05-17,Stafford,Kansas,20185,1,0 +2020-05-18,Stafford,Kansas,20185,1,0 +2020-05-19,Stafford,Kansas,20185,1,0 +2020-05-20,Stafford,Kansas,20185,1,0 +2020-05-21,Stafford,Kansas,20185,1,0 +2020-05-22,Stafford,Kansas,20185,1,0 +2020-05-23,Stafford,Kansas,20185,1,0 +2020-05-24,Stafford,Kansas,20185,1,0 +2020-05-25,Stafford,Kansas,20185,1,0 +2020-05-26,Stafford,Kansas,20185,1,0 +2020-05-27,Stafford,Kansas,20185,1,0 +2020-05-28,Stafford,Kansas,20185,1,0 +2020-05-29,Stafford,Kansas,20185,1,0 +2020-05-30,Stafford,Kansas,20185,1,0 +2020-05-31,Stafford,Kansas,20185,1,0 +2020-06-01,Stafford,Kansas,20185,1,0 +2020-06-02,Stafford,Kansas,20185,1,0 +2020-06-03,Stafford,Kansas,20185,1,0 +2020-06-04,Stafford,Kansas,20185,1,0 +2020-06-05,Stafford,Kansas,20185,1,0 +2020-06-06,Stafford,Kansas,20185,1,0 +2020-06-07,Stafford,Kansas,20185,1,0 +2020-06-08,Stafford,Kansas,20185,1,0 +2020-06-09,Stafford,Kansas,20185,1,0 +2020-06-10,Stafford,Kansas,20185,1,0 +2020-06-11,Stafford,Kansas,20185,1,0 +2020-06-12,Stafford,Kansas,20185,1,0 +2020-06-13,Stafford,Kansas,20185,1,0 +2020-06-14,Stafford,Kansas,20185,1,0 +2020-06-15,Stafford,Kansas,20185,1,0 +2020-06-16,Stafford,Kansas,20185,1,0 +2020-06-17,Stafford,Kansas,20185,1,0 +2020-06-18,Stafford,Kansas,20185,1,0 +2020-06-19,Stafford,Kansas,20185,1,0 +2020-06-20,Stafford,Kansas,20185,1,0 +2020-06-21,Stafford,Kansas,20185,1,0 +2020-06-22,Stafford,Kansas,20185,1,0 +2020-06-23,Stafford,Kansas,20185,1,0 +2020-06-24,Stafford,Kansas,20185,1,0 +2020-06-25,Stafford,Kansas,20185,1,0 +2020-06-26,Stafford,Kansas,20185,1,0 +2020-06-27,Stafford,Kansas,20185,1,0 +2020-06-28,Stafford,Kansas,20185,1,0 +2020-06-29,Stafford,Kansas,20185,1,0 +2020-06-30,Stafford,Kansas,20185,1,0 +2020-07-01,Stafford,Kansas,20185,1,0 +2020-07-02,Stafford,Kansas,20185,1,0 +2020-07-03,Stafford,Kansas,20185,1,0 +2020-07-04,Stafford,Kansas,20185,1,0 +2020-07-05,Stafford,Kansas,20185,1,0 +2020-07-06,Stafford,Kansas,20185,1,0 +2020-07-07,Stafford,Kansas,20185,1,0 +2020-07-08,Stafford,Kansas,20185,1,0 +2020-07-09,Stafford,Kansas,20185,1,0 +2020-04-12,Stanton,Kansas,20187,1,0 +2020-04-13,Stanton,Kansas,20187,2,0 +2020-04-14,Stanton,Kansas,20187,2,0 +2020-04-15,Stanton,Kansas,20187,2,0 +2020-04-16,Stanton,Kansas,20187,2,0 +2020-04-17,Stanton,Kansas,20187,3,0 +2020-04-18,Stanton,Kansas,20187,3,0 +2020-04-19,Stanton,Kansas,20187,3,0 +2020-04-20,Stanton,Kansas,20187,3,0 +2020-04-21,Stanton,Kansas,20187,3,0 +2020-04-22,Stanton,Kansas,20187,3,0 +2020-04-23,Stanton,Kansas,20187,3,0 +2020-04-24,Stanton,Kansas,20187,4,0 +2020-04-25,Stanton,Kansas,20187,4,0 +2020-04-26,Stanton,Kansas,20187,4,0 +2020-04-27,Stanton,Kansas,20187,4,0 +2020-04-28,Stanton,Kansas,20187,4,0 +2020-04-29,Stanton,Kansas,20187,5,0 +2020-04-30,Stanton,Kansas,20187,5,0 +2020-05-01,Stanton,Kansas,20187,5,0 +2020-05-02,Stanton,Kansas,20187,5,0 +2020-05-03,Stanton,Kansas,20187,5,0 +2020-05-04,Stanton,Kansas,20187,7,0 +2020-05-05,Stanton,Kansas,20187,7,0 +2020-05-06,Stanton,Kansas,20187,7,0 +2020-05-07,Stanton,Kansas,20187,7,0 +2020-05-08,Stanton,Kansas,20187,7,0 +2020-05-09,Stanton,Kansas,20187,7,0 +2020-05-10,Stanton,Kansas,20187,7,0 +2020-05-11,Stanton,Kansas,20187,7,0 +2020-05-12,Stanton,Kansas,20187,7,0 +2020-05-13,Stanton,Kansas,20187,8,0 +2020-05-14,Stanton,Kansas,20187,8,0 +2020-05-15,Stanton,Kansas,20187,8,0 +2020-05-16,Stanton,Kansas,20187,8,0 +2020-05-17,Stanton,Kansas,20187,8,0 +2020-05-18,Stanton,Kansas,20187,8,0 +2020-05-19,Stanton,Kansas,20187,8,0 +2020-05-20,Stanton,Kansas,20187,8,0 +2020-05-21,Stanton,Kansas,20187,8,0 +2020-05-22,Stanton,Kansas,20187,8,0 +2020-05-23,Stanton,Kansas,20187,8,0 +2020-05-24,Stanton,Kansas,20187,8,0 +2020-05-25,Stanton,Kansas,20187,8,0 +2020-05-26,Stanton,Kansas,20187,8,0 +2020-05-27,Stanton,Kansas,20187,9,0 +2020-05-28,Stanton,Kansas,20187,9,0 +2020-05-29,Stanton,Kansas,20187,9,0 +2020-05-30,Stanton,Kansas,20187,9,0 +2020-05-31,Stanton,Kansas,20187,9,0 +2020-06-01,Stanton,Kansas,20187,10,0 +2020-06-02,Stanton,Kansas,20187,10,0 +2020-06-03,Stanton,Kansas,20187,9,0 +2020-06-04,Stanton,Kansas,20187,9,0 +2020-06-05,Stanton,Kansas,20187,9,0 +2020-06-06,Stanton,Kansas,20187,9,0 +2020-06-07,Stanton,Kansas,20187,9,0 +2020-06-08,Stanton,Kansas,20187,9,0 +2020-06-09,Stanton,Kansas,20187,9,0 +2020-06-10,Stanton,Kansas,20187,9,0 +2020-06-11,Stanton,Kansas,20187,9,0 +2020-06-12,Stanton,Kansas,20187,9,0 +2020-06-13,Stanton,Kansas,20187,9,0 +2020-06-14,Stanton,Kansas,20187,9,0 +2020-06-15,Stanton,Kansas,20187,9,0 +2020-06-16,Stanton,Kansas,20187,9,0 +2020-06-17,Stanton,Kansas,20187,9,0 +2020-06-18,Stanton,Kansas,20187,9,0 +2020-06-19,Stanton,Kansas,20187,9,0 +2020-06-20,Stanton,Kansas,20187,9,0 +2020-06-21,Stanton,Kansas,20187,9,0 +2020-06-22,Stanton,Kansas,20187,10,0 +2020-06-23,Stanton,Kansas,20187,10,0 +2020-06-24,Stanton,Kansas,20187,10,0 +2020-06-25,Stanton,Kansas,20187,10,0 +2020-06-26,Stanton,Kansas,20187,10,0 +2020-06-27,Stanton,Kansas,20187,10,0 +2020-06-28,Stanton,Kansas,20187,10,0 +2020-06-29,Stanton,Kansas,20187,10,0 +2020-06-30,Stanton,Kansas,20187,10,0 +2020-07-01,Stanton,Kansas,20187,10,0 +2020-07-02,Stanton,Kansas,20187,10,0 +2020-07-03,Stanton,Kansas,20187,11,0 +2020-07-04,Stanton,Kansas,20187,11,0 +2020-07-05,Stanton,Kansas,20187,11,0 +2020-07-06,Stanton,Kansas,20187,12,0 +2020-07-07,Stanton,Kansas,20187,12,0 +2020-07-08,Stanton,Kansas,20187,12,0 +2020-07-09,Stanton,Kansas,20187,12,0 +2020-03-29,Stevens,Kansas,20189,1,0 +2020-03-30,Stevens,Kansas,20189,2,0 +2020-03-31,Stevens,Kansas,20189,2,0 +2020-04-01,Stevens,Kansas,20189,2,0 +2020-04-02,Stevens,Kansas,20189,1,0 +2020-04-03,Stevens,Kansas,20189,1,0 +2020-04-04,Stevens,Kansas,20189,1,0 +2020-04-05,Stevens,Kansas,20189,1,0 +2020-04-06,Stevens,Kansas,20189,1,0 +2020-04-07,Stevens,Kansas,20189,1,0 +2020-04-08,Stevens,Kansas,20189,1,0 +2020-04-09,Stevens,Kansas,20189,1,0 +2020-04-10,Stevens,Kansas,20189,1,0 +2020-04-11,Stevens,Kansas,20189,2,0 +2020-04-12,Stevens,Kansas,20189,2,0 +2020-04-13,Stevens,Kansas,20189,2,0 +2020-04-14,Stevens,Kansas,20189,2,0 +2020-04-15,Stevens,Kansas,20189,2,0 +2020-04-16,Stevens,Kansas,20189,3,0 +2020-04-17,Stevens,Kansas,20189,3,0 +2020-04-18,Stevens,Kansas,20189,3,0 +2020-04-19,Stevens,Kansas,20189,4,0 +2020-04-20,Stevens,Kansas,20189,4,0 +2020-04-21,Stevens,Kansas,20189,4,0 +2020-04-22,Stevens,Kansas,20189,4,0 +2020-04-23,Stevens,Kansas,20189,6,0 +2020-04-24,Stevens,Kansas,20189,6,0 +2020-04-25,Stevens,Kansas,20189,6,0 +2020-04-26,Stevens,Kansas,20189,6,0 +2020-04-27,Stevens,Kansas,20189,7,0 +2020-04-28,Stevens,Kansas,20189,8,0 +2020-04-29,Stevens,Kansas,20189,8,0 +2020-04-30,Stevens,Kansas,20189,9,0 +2020-05-01,Stevens,Kansas,20189,9,0 +2020-05-02,Stevens,Kansas,20189,10,0 +2020-05-03,Stevens,Kansas,20189,11,0 +2020-05-04,Stevens,Kansas,20189,12,0 +2020-05-05,Stevens,Kansas,20189,12,0 +2020-05-06,Stevens,Kansas,20189,12,0 +2020-05-07,Stevens,Kansas,20189,14,0 +2020-05-08,Stevens,Kansas,20189,14,0 +2020-05-09,Stevens,Kansas,20189,17,0 +2020-05-10,Stevens,Kansas,20189,17,0 +2020-05-11,Stevens,Kansas,20189,18,0 +2020-05-12,Stevens,Kansas,20189,18,0 +2020-05-13,Stevens,Kansas,20189,18,0 +2020-05-14,Stevens,Kansas,20189,18,0 +2020-05-15,Stevens,Kansas,20189,26,0 +2020-05-16,Stevens,Kansas,20189,26,0 +2020-05-17,Stevens,Kansas,20189,26,0 +2020-05-18,Stevens,Kansas,20189,26,0 +2020-05-19,Stevens,Kansas,20189,26,0 +2020-05-20,Stevens,Kansas,20189,26,0 +2020-05-21,Stevens,Kansas,20189,26,0 +2020-05-22,Stevens,Kansas,20189,26,0 +2020-05-23,Stevens,Kansas,20189,27,0 +2020-05-24,Stevens,Kansas,20189,28,0 +2020-05-25,Stevens,Kansas,20189,28,0 +2020-05-26,Stevens,Kansas,20189,28,0 +2020-05-27,Stevens,Kansas,20189,28,0 +2020-05-28,Stevens,Kansas,20189,28,0 +2020-05-29,Stevens,Kansas,20189,29,0 +2020-05-30,Stevens,Kansas,20189,31,0 +2020-05-31,Stevens,Kansas,20189,30,0 +2020-06-01,Stevens,Kansas,20189,30,0 +2020-06-02,Stevens,Kansas,20189,30,0 +2020-06-03,Stevens,Kansas,20189,30,0 +2020-06-04,Stevens,Kansas,20189,30,0 +2020-06-05,Stevens,Kansas,20189,30,0 +2020-06-06,Stevens,Kansas,20189,30,0 +2020-06-07,Stevens,Kansas,20189,30,0 +2020-06-08,Stevens,Kansas,20189,30,0 +2020-06-09,Stevens,Kansas,20189,30,0 +2020-06-10,Stevens,Kansas,20189,31,0 +2020-06-11,Stevens,Kansas,20189,31,0 +2020-06-12,Stevens,Kansas,20189,31,0 +2020-06-13,Stevens,Kansas,20189,31,0 +2020-06-14,Stevens,Kansas,20189,31,0 +2020-06-15,Stevens,Kansas,20189,30,0 +2020-06-16,Stevens,Kansas,20189,30,0 +2020-06-17,Stevens,Kansas,20189,30,0 +2020-06-18,Stevens,Kansas,20189,30,0 +2020-06-19,Stevens,Kansas,20189,30,0 +2020-06-20,Stevens,Kansas,20189,30,0 +2020-06-21,Stevens,Kansas,20189,30,0 +2020-06-22,Stevens,Kansas,20189,30,0 +2020-06-23,Stevens,Kansas,20189,30,0 +2020-06-24,Stevens,Kansas,20189,30,0 +2020-06-25,Stevens,Kansas,20189,30,0 +2020-06-26,Stevens,Kansas,20189,31,0 +2020-06-27,Stevens,Kansas,20189,31,0 +2020-06-28,Stevens,Kansas,20189,31,0 +2020-06-29,Stevens,Kansas,20189,31,0 +2020-06-30,Stevens,Kansas,20189,31,0 +2020-07-01,Stevens,Kansas,20189,32,0 +2020-07-02,Stevens,Kansas,20189,32,0 +2020-07-03,Stevens,Kansas,20189,32,0 +2020-07-04,Stevens,Kansas,20189,32,0 +2020-07-05,Stevens,Kansas,20189,32,0 +2020-07-06,Stevens,Kansas,20189,32,0 +2020-07-07,Stevens,Kansas,20189,32,0 +2020-07-08,Stevens,Kansas,20189,33,0 +2020-07-09,Stevens,Kansas,20189,33,0 +2020-03-26,Sumner,Kansas,20191,1,0 +2020-03-27,Sumner,Kansas,20191,1,0 +2020-03-28,Sumner,Kansas,20191,1,0 +2020-03-29,Sumner,Kansas,20191,1,0 +2020-03-30,Sumner,Kansas,20191,1,0 +2020-03-31,Sumner,Kansas,20191,1,0 +2020-04-01,Sumner,Kansas,20191,1,0 +2020-04-02,Sumner,Kansas,20191,1,0 +2020-04-03,Sumner,Kansas,20191,2,0 +2020-04-04,Sumner,Kansas,20191,2,0 +2020-04-05,Sumner,Kansas,20191,2,0 +2020-04-06,Sumner,Kansas,20191,2,0 +2020-04-07,Sumner,Kansas,20191,2,0 +2020-04-08,Sumner,Kansas,20191,2,0 +2020-04-09,Sumner,Kansas,20191,2,1 +2020-04-10,Sumner,Kansas,20191,2,1 +2020-04-11,Sumner,Kansas,20191,2,1 +2020-04-12,Sumner,Kansas,20191,2,1 +2020-04-13,Sumner,Kansas,20191,2,1 +2020-04-14,Sumner,Kansas,20191,2,1 +2020-04-15,Sumner,Kansas,20191,2,1 +2020-04-16,Sumner,Kansas,20191,3,1 +2020-04-17,Sumner,Kansas,20191,3,1 +2020-04-18,Sumner,Kansas,20191,3,1 +2020-04-19,Sumner,Kansas,20191,3,1 +2020-04-20,Sumner,Kansas,20191,3,1 +2020-04-21,Sumner,Kansas,20191,3,1 +2020-04-22,Sumner,Kansas,20191,3,1 +2020-04-23,Sumner,Kansas,20191,3,1 +2020-04-24,Sumner,Kansas,20191,3,1 +2020-04-25,Sumner,Kansas,20191,3,1 +2020-04-26,Sumner,Kansas,20191,3,1 +2020-04-27,Sumner,Kansas,20191,3,1 +2020-04-28,Sumner,Kansas,20191,3,1 +2020-04-29,Sumner,Kansas,20191,3,1 +2020-04-30,Sumner,Kansas,20191,3,1 +2020-05-01,Sumner,Kansas,20191,3,1 +2020-05-02,Sumner,Kansas,20191,3,1 +2020-05-03,Sumner,Kansas,20191,4,1 +2020-05-04,Sumner,Kansas,20191,4,1 +2020-05-05,Sumner,Kansas,20191,4,1 +2020-05-06,Sumner,Kansas,20191,4,1 +2020-05-07,Sumner,Kansas,20191,4,1 +2020-05-08,Sumner,Kansas,20191,4,1 +2020-05-09,Sumner,Kansas,20191,4,1 +2020-05-10,Sumner,Kansas,20191,4,1 +2020-05-11,Sumner,Kansas,20191,4,1 +2020-05-12,Sumner,Kansas,20191,5,1 +2020-05-13,Sumner,Kansas,20191,5,1 +2020-05-14,Sumner,Kansas,20191,5,1 +2020-05-15,Sumner,Kansas,20191,6,1 +2020-05-16,Sumner,Kansas,20191,6,1 +2020-05-17,Sumner,Kansas,20191,6,1 +2020-05-18,Sumner,Kansas,20191,6,1 +2020-05-19,Sumner,Kansas,20191,6,1 +2020-05-20,Sumner,Kansas,20191,6,1 +2020-05-21,Sumner,Kansas,20191,6,1 +2020-05-22,Sumner,Kansas,20191,6,1 +2020-05-23,Sumner,Kansas,20191,6,1 +2020-05-24,Sumner,Kansas,20191,6,1 +2020-05-25,Sumner,Kansas,20191,6,1 +2020-05-26,Sumner,Kansas,20191,6,1 +2020-05-27,Sumner,Kansas,20191,6,1 +2020-05-28,Sumner,Kansas,20191,6,1 +2020-05-29,Sumner,Kansas,20191,8,1 +2020-05-30,Sumner,Kansas,20191,8,1 +2020-05-31,Sumner,Kansas,20191,8,1 +2020-06-01,Sumner,Kansas,20191,8,1 +2020-06-02,Sumner,Kansas,20191,8,1 +2020-06-03,Sumner,Kansas,20191,8,1 +2020-06-04,Sumner,Kansas,20191,8,1 +2020-06-05,Sumner,Kansas,20191,8,1 +2020-06-06,Sumner,Kansas,20191,8,1 +2020-06-07,Sumner,Kansas,20191,8,1 +2020-06-08,Sumner,Kansas,20191,8,1 +2020-06-09,Sumner,Kansas,20191,8,1 +2020-06-10,Sumner,Kansas,20191,10,1 +2020-06-11,Sumner,Kansas,20191,10,1 +2020-06-12,Sumner,Kansas,20191,9,1 +2020-06-13,Sumner,Kansas,20191,9,1 +2020-06-14,Sumner,Kansas,20191,9,1 +2020-06-15,Sumner,Kansas,20191,9,1 +2020-06-16,Sumner,Kansas,20191,9,1 +2020-06-17,Sumner,Kansas,20191,9,1 +2020-06-18,Sumner,Kansas,20191,9,1 +2020-06-19,Sumner,Kansas,20191,9,1 +2020-06-20,Sumner,Kansas,20191,9,1 +2020-06-21,Sumner,Kansas,20191,9,1 +2020-06-22,Sumner,Kansas,20191,10,1 +2020-06-23,Sumner,Kansas,20191,10,1 +2020-06-24,Sumner,Kansas,20191,10,1 +2020-06-25,Sumner,Kansas,20191,10,1 +2020-06-26,Sumner,Kansas,20191,11,1 +2020-06-27,Sumner,Kansas,20191,11,1 +2020-06-28,Sumner,Kansas,20191,11,1 +2020-06-29,Sumner,Kansas,20191,11,1 +2020-06-30,Sumner,Kansas,20191,11,1 +2020-07-01,Sumner,Kansas,20191,13,1 +2020-07-02,Sumner,Kansas,20191,13,1 +2020-07-03,Sumner,Kansas,20191,13,1 +2020-07-04,Sumner,Kansas,20191,13,1 +2020-07-05,Sumner,Kansas,20191,13,1 +2020-07-06,Sumner,Kansas,20191,16,1 +2020-07-07,Sumner,Kansas,20191,16,1 +2020-07-08,Sumner,Kansas,20191,17,1 +2020-07-09,Sumner,Kansas,20191,17,1 +2020-06-22,Thomas,Kansas,20193,10,0 +2020-06-23,Thomas,Kansas,20193,10,0 +2020-06-24,Thomas,Kansas,20193,14,0 +2020-06-25,Thomas,Kansas,20193,14,0 +2020-06-26,Thomas,Kansas,20193,15,0 +2020-06-27,Thomas,Kansas,20193,15,0 +2020-06-28,Thomas,Kansas,20193,15,0 +2020-06-29,Thomas,Kansas,20193,15,0 +2020-06-30,Thomas,Kansas,20193,15,0 +2020-07-01,Thomas,Kansas,20193,15,0 +2020-07-02,Thomas,Kansas,20193,15,0 +2020-07-03,Thomas,Kansas,20193,15,0 +2020-07-04,Thomas,Kansas,20193,15,0 +2020-07-05,Thomas,Kansas,20193,15,0 +2020-07-06,Thomas,Kansas,20193,16,0 +2020-07-07,Thomas,Kansas,20193,16,0 +2020-07-08,Thomas,Kansas,20193,17,0 +2020-07-09,Thomas,Kansas,20193,17,0 +2020-05-22,Trego,Kansas,20195,1,0 +2020-05-23,Trego,Kansas,20195,1,0 +2020-05-24,Trego,Kansas,20195,1,0 +2020-05-25,Trego,Kansas,20195,1,0 +2020-05-26,Trego,Kansas,20195,1,0 +2020-05-27,Trego,Kansas,20195,1,0 +2020-05-28,Trego,Kansas,20195,1,0 +2020-05-29,Trego,Kansas,20195,1,0 +2020-05-30,Trego,Kansas,20195,1,0 +2020-05-31,Trego,Kansas,20195,1,0 +2020-06-01,Trego,Kansas,20195,1,0 +2020-06-02,Trego,Kansas,20195,1,0 +2020-06-03,Trego,Kansas,20195,1,0 +2020-06-04,Trego,Kansas,20195,1,0 +2020-06-05,Trego,Kansas,20195,1,0 +2020-06-06,Trego,Kansas,20195,1,0 +2020-06-07,Trego,Kansas,20195,1,0 +2020-06-08,Trego,Kansas,20195,1,0 +2020-06-09,Trego,Kansas,20195,1,0 +2020-06-10,Trego,Kansas,20195,1,0 +2020-06-11,Trego,Kansas,20195,1,0 +2020-06-12,Trego,Kansas,20195,1,0 +2020-06-13,Trego,Kansas,20195,1,0 +2020-06-14,Trego,Kansas,20195,1,0 +2020-06-15,Trego,Kansas,20195,1,0 +2020-06-16,Trego,Kansas,20195,1,0 +2020-06-17,Trego,Kansas,20195,1,0 +2020-06-18,Trego,Kansas,20195,1,0 +2020-06-19,Trego,Kansas,20195,1,0 +2020-06-20,Trego,Kansas,20195,1,0 +2020-06-21,Trego,Kansas,20195,1,0 +2020-06-22,Trego,Kansas,20195,1,0 +2020-06-23,Trego,Kansas,20195,1,0 +2020-06-24,Trego,Kansas,20195,1,0 +2020-06-25,Trego,Kansas,20195,1,0 +2020-06-26,Trego,Kansas,20195,1,0 +2020-06-27,Trego,Kansas,20195,1,0 +2020-06-28,Trego,Kansas,20195,1,0 +2020-06-29,Trego,Kansas,20195,1,0 +2020-06-30,Trego,Kansas,20195,1,0 +2020-07-01,Trego,Kansas,20195,1,0 +2020-07-02,Trego,Kansas,20195,1,0 +2020-07-03,Trego,Kansas,20195,1,0 +2020-07-04,Trego,Kansas,20195,1,0 +2020-07-05,Trego,Kansas,20195,1,0 +2020-07-06,Trego,Kansas,20195,1,0 +2020-07-07,Trego,Kansas,20195,1,0 +2020-07-08,Trego,Kansas,20195,2,0 +2020-07-09,Trego,Kansas,20195,2,0 +2020-04-05,Wabaunsee,Kansas,20197,1,0 +2020-04-06,Wabaunsee,Kansas,20197,1,0 +2020-04-07,Wabaunsee,Kansas,20197,1,0 +2020-04-08,Wabaunsee,Kansas,20197,1,0 +2020-04-09,Wabaunsee,Kansas,20197,1,0 +2020-04-10,Wabaunsee,Kansas,20197,1,0 +2020-04-11,Wabaunsee,Kansas,20197,1,0 +2020-04-12,Wabaunsee,Kansas,20197,1,0 +2020-04-13,Wabaunsee,Kansas,20197,1,0 +2020-04-14,Wabaunsee,Kansas,20197,1,0 +2020-04-15,Wabaunsee,Kansas,20197,1,0 +2020-04-16,Wabaunsee,Kansas,20197,1,0 +2020-04-17,Wabaunsee,Kansas,20197,1,0 +2020-04-18,Wabaunsee,Kansas,20197,1,0 +2020-04-19,Wabaunsee,Kansas,20197,1,0 +2020-04-20,Wabaunsee,Kansas,20197,1,0 +2020-04-21,Wabaunsee,Kansas,20197,1,0 +2020-04-22,Wabaunsee,Kansas,20197,3,0 +2020-04-23,Wabaunsee,Kansas,20197,6,0 +2020-04-24,Wabaunsee,Kansas,20197,6,0 +2020-04-25,Wabaunsee,Kansas,20197,10,0 +2020-04-26,Wabaunsee,Kansas,20197,13,0 +2020-04-27,Wabaunsee,Kansas,20197,15,0 +2020-04-28,Wabaunsee,Kansas,20197,15,0 +2020-04-29,Wabaunsee,Kansas,20197,18,0 +2020-04-30,Wabaunsee,Kansas,20197,21,0 +2020-05-01,Wabaunsee,Kansas,20197,22,0 +2020-05-02,Wabaunsee,Kansas,20197,23,0 +2020-05-03,Wabaunsee,Kansas,20197,24,0 +2020-05-04,Wabaunsee,Kansas,20197,25,0 +2020-05-05,Wabaunsee,Kansas,20197,26,0 +2020-05-06,Wabaunsee,Kansas,20197,27,0 +2020-05-07,Wabaunsee,Kansas,20197,27,0 +2020-05-08,Wabaunsee,Kansas,20197,27,0 +2020-05-09,Wabaunsee,Kansas,20197,27,0 +2020-05-10,Wabaunsee,Kansas,20197,27,0 +2020-05-11,Wabaunsee,Kansas,20197,27,0 +2020-05-12,Wabaunsee,Kansas,20197,27,0 +2020-05-13,Wabaunsee,Kansas,20197,27,0 +2020-05-14,Wabaunsee,Kansas,20197,27,0 +2020-05-15,Wabaunsee,Kansas,20197,28,0 +2020-05-16,Wabaunsee,Kansas,20197,28,0 +2020-05-17,Wabaunsee,Kansas,20197,28,0 +2020-05-18,Wabaunsee,Kansas,20197,28,0 +2020-05-19,Wabaunsee,Kansas,20197,28,0 +2020-05-20,Wabaunsee,Kansas,20197,29,0 +2020-05-21,Wabaunsee,Kansas,20197,29,0 +2020-05-22,Wabaunsee,Kansas,20197,29,0 +2020-05-23,Wabaunsee,Kansas,20197,29,0 +2020-05-24,Wabaunsee,Kansas,20197,29,0 +2020-05-25,Wabaunsee,Kansas,20197,30,0 +2020-05-26,Wabaunsee,Kansas,20197,30,0 +2020-05-27,Wabaunsee,Kansas,20197,31,0 +2020-05-28,Wabaunsee,Kansas,20197,31,0 +2020-05-29,Wabaunsee,Kansas,20197,31,0 +2020-05-30,Wabaunsee,Kansas,20197,31,0 +2020-05-31,Wabaunsee,Kansas,20197,31,0 +2020-06-01,Wabaunsee,Kansas,20197,31,0 +2020-06-02,Wabaunsee,Kansas,20197,31,0 +2020-06-03,Wabaunsee,Kansas,20197,31,0 +2020-06-04,Wabaunsee,Kansas,20197,31,0 +2020-06-05,Wabaunsee,Kansas,20197,31,0 +2020-06-06,Wabaunsee,Kansas,20197,31,0 +2020-06-07,Wabaunsee,Kansas,20197,31,0 +2020-06-08,Wabaunsee,Kansas,20197,31,0 +2020-06-09,Wabaunsee,Kansas,20197,31,0 +2020-06-10,Wabaunsee,Kansas,20197,31,0 +2020-06-11,Wabaunsee,Kansas,20197,31,0 +2020-06-12,Wabaunsee,Kansas,20197,31,0 +2020-06-13,Wabaunsee,Kansas,20197,31,0 +2020-06-14,Wabaunsee,Kansas,20197,31,0 +2020-06-15,Wabaunsee,Kansas,20197,31,0 +2020-06-16,Wabaunsee,Kansas,20197,31,0 +2020-06-17,Wabaunsee,Kansas,20197,32,0 +2020-06-18,Wabaunsee,Kansas,20197,32,0 +2020-06-19,Wabaunsee,Kansas,20197,32,0 +2020-06-20,Wabaunsee,Kansas,20197,32,0 +2020-06-21,Wabaunsee,Kansas,20197,32,0 +2020-06-22,Wabaunsee,Kansas,20197,32,0 +2020-06-23,Wabaunsee,Kansas,20197,32,0 +2020-06-24,Wabaunsee,Kansas,20197,33,0 +2020-06-25,Wabaunsee,Kansas,20197,33,0 +2020-06-26,Wabaunsee,Kansas,20197,34,0 +2020-06-27,Wabaunsee,Kansas,20197,34,0 +2020-06-28,Wabaunsee,Kansas,20197,34,0 +2020-06-29,Wabaunsee,Kansas,20197,35,0 +2020-06-30,Wabaunsee,Kansas,20197,35,0 +2020-07-01,Wabaunsee,Kansas,20197,35,0 +2020-07-02,Wabaunsee,Kansas,20197,35,0 +2020-07-03,Wabaunsee,Kansas,20197,36,0 +2020-07-04,Wabaunsee,Kansas,20197,36,0 +2020-07-05,Wabaunsee,Kansas,20197,36,0 +2020-07-06,Wabaunsee,Kansas,20197,36,0 +2020-07-07,Wabaunsee,Kansas,20197,36,0 +2020-07-08,Wabaunsee,Kansas,20197,38,0 +2020-07-09,Wabaunsee,Kansas,20197,38,0 +2020-06-10,Washington,Kansas,20201,1,0 +2020-06-11,Washington,Kansas,20201,1,0 +2020-06-12,Washington,Kansas,20201,1,0 +2020-06-13,Washington,Kansas,20201,1,0 +2020-06-14,Washington,Kansas,20201,1,0 +2020-06-15,Washington,Kansas,20201,1,0 +2020-06-16,Washington,Kansas,20201,1,0 +2020-06-17,Washington,Kansas,20201,1,0 +2020-06-18,Washington,Kansas,20201,1,0 +2020-06-19,Washington,Kansas,20201,1,0 +2020-06-20,Washington,Kansas,20201,1,0 +2020-06-21,Washington,Kansas,20201,1,0 +2020-06-22,Washington,Kansas,20201,1,0 +2020-06-23,Washington,Kansas,20201,1,0 +2020-06-24,Washington,Kansas,20201,1,0 +2020-06-25,Washington,Kansas,20201,1,0 +2020-06-26,Washington,Kansas,20201,1,0 +2020-06-27,Washington,Kansas,20201,1,0 +2020-06-28,Washington,Kansas,20201,1,0 +2020-06-29,Washington,Kansas,20201,1,0 +2020-06-30,Washington,Kansas,20201,1,0 +2020-07-01,Washington,Kansas,20201,1,0 +2020-07-02,Washington,Kansas,20201,1,0 +2020-07-03,Washington,Kansas,20201,1,0 +2020-07-04,Washington,Kansas,20201,1,0 +2020-07-05,Washington,Kansas,20201,1,0 +2020-07-06,Washington,Kansas,20201,1,0 +2020-07-07,Washington,Kansas,20201,1,0 +2020-07-08,Washington,Kansas,20201,1,0 +2020-07-09,Washington,Kansas,20201,1,0 +2020-04-17,Wilson,Kansas,20205,1,0 +2020-04-18,Wilson,Kansas,20205,1,0 +2020-04-19,Wilson,Kansas,20205,1,0 +2020-04-20,Wilson,Kansas,20205,1,0 +2020-04-21,Wilson,Kansas,20205,1,0 +2020-04-22,Wilson,Kansas,20205,1,0 +2020-04-23,Wilson,Kansas,20205,1,0 +2020-04-24,Wilson,Kansas,20205,1,0 +2020-04-25,Wilson,Kansas,20205,1,0 +2020-04-26,Wilson,Kansas,20205,1,0 +2020-04-27,Wilson,Kansas,20205,1,0 +2020-04-28,Wilson,Kansas,20205,1,0 +2020-04-29,Wilson,Kansas,20205,1,0 +2020-04-30,Wilson,Kansas,20205,1,0 +2020-05-01,Wilson,Kansas,20205,1,0 +2020-05-02,Wilson,Kansas,20205,1,0 +2020-05-03,Wilson,Kansas,20205,1,0 +2020-05-04,Wilson,Kansas,20205,1,0 +2020-05-05,Wilson,Kansas,20205,1,0 +2020-05-06,Wilson,Kansas,20205,1,0 +2020-05-07,Wilson,Kansas,20205,1,0 +2020-05-08,Wilson,Kansas,20205,1,0 +2020-05-09,Wilson,Kansas,20205,1,0 +2020-05-10,Wilson,Kansas,20205,1,0 +2020-05-11,Wilson,Kansas,20205,1,0 +2020-05-12,Wilson,Kansas,20205,1,0 +2020-05-13,Wilson,Kansas,20205,1,0 +2020-05-14,Wilson,Kansas,20205,1,0 +2020-05-15,Wilson,Kansas,20205,1,0 +2020-05-16,Wilson,Kansas,20205,1,0 +2020-05-17,Wilson,Kansas,20205,1,0 +2020-05-18,Wilson,Kansas,20205,1,0 +2020-05-19,Wilson,Kansas,20205,1,0 +2020-05-20,Wilson,Kansas,20205,1,0 +2020-05-21,Wilson,Kansas,20205,1,0 +2020-05-22,Wilson,Kansas,20205,1,0 +2020-05-23,Wilson,Kansas,20205,1,0 +2020-05-24,Wilson,Kansas,20205,1,0 +2020-05-25,Wilson,Kansas,20205,1,0 +2020-05-26,Wilson,Kansas,20205,1,0 +2020-05-27,Wilson,Kansas,20205,1,0 +2020-05-28,Wilson,Kansas,20205,1,0 +2020-05-29,Wilson,Kansas,20205,1,0 +2020-05-30,Wilson,Kansas,20205,1,0 +2020-05-31,Wilson,Kansas,20205,1,0 +2020-06-01,Wilson,Kansas,20205,1,0 +2020-06-02,Wilson,Kansas,20205,1,0 +2020-06-03,Wilson,Kansas,20205,1,0 +2020-06-04,Wilson,Kansas,20205,1,0 +2020-06-05,Wilson,Kansas,20205,1,0 +2020-06-06,Wilson,Kansas,20205,1,0 +2020-06-07,Wilson,Kansas,20205,1,0 +2020-06-08,Wilson,Kansas,20205,1,0 +2020-06-09,Wilson,Kansas,20205,1,0 +2020-06-10,Wilson,Kansas,20205,1,0 +2020-06-11,Wilson,Kansas,20205,1,0 +2020-06-12,Wilson,Kansas,20205,1,0 +2020-06-13,Wilson,Kansas,20205,1,0 +2020-06-14,Wilson,Kansas,20205,1,0 +2020-06-15,Wilson,Kansas,20205,1,0 +2020-06-16,Wilson,Kansas,20205,1,0 +2020-06-17,Wilson,Kansas,20205,1,0 +2020-06-18,Wilson,Kansas,20205,1,0 +2020-06-19,Wilson,Kansas,20205,1,0 +2020-06-20,Wilson,Kansas,20205,1,0 +2020-06-21,Wilson,Kansas,20205,1,0 +2020-06-22,Wilson,Kansas,20205,1,0 +2020-06-23,Wilson,Kansas,20205,1,0 +2020-06-24,Wilson,Kansas,20205,1,0 +2020-06-25,Wilson,Kansas,20205,1,0 +2020-06-26,Wilson,Kansas,20205,1,0 +2020-06-27,Wilson,Kansas,20205,1,0 +2020-06-28,Wilson,Kansas,20205,1,0 +2020-06-29,Wilson,Kansas,20205,1,0 +2020-06-30,Wilson,Kansas,20205,1,0 +2020-07-01,Wilson,Kansas,20205,2,0 +2020-07-02,Wilson,Kansas,20205,2,0 +2020-07-03,Wilson,Kansas,20205,3,0 +2020-07-04,Wilson,Kansas,20205,3,0 +2020-07-05,Wilson,Kansas,20205,3,0 +2020-07-06,Wilson,Kansas,20205,4,0 +2020-07-07,Wilson,Kansas,20205,4,0 +2020-07-08,Wilson,Kansas,20205,4,0 +2020-07-09,Wilson,Kansas,20205,4,0 +2020-03-24,Woodson,Kansas,20207,1,0 +2020-03-25,Woodson,Kansas,20207,1,0 +2020-03-26,Woodson,Kansas,20207,1,0 +2020-03-27,Woodson,Kansas,20207,1,0 +2020-03-28,Woodson,Kansas,20207,1,0 +2020-03-29,Woodson,Kansas,20207,1,0 +2020-03-30,Woodson,Kansas,20207,1,0 +2020-03-31,Woodson,Kansas,20207,2,0 +2020-04-01,Woodson,Kansas,20207,3,0 +2020-04-02,Woodson,Kansas,20207,3,0 +2020-04-03,Woodson,Kansas,20207,3,0 +2020-04-04,Woodson,Kansas,20207,3,0 +2020-04-05,Woodson,Kansas,20207,4,0 +2020-04-06,Woodson,Kansas,20207,4,0 +2020-04-07,Woodson,Kansas,20207,4,0 +2020-04-08,Woodson,Kansas,20207,4,0 +2020-04-09,Woodson,Kansas,20207,4,0 +2020-04-10,Woodson,Kansas,20207,4,0 +2020-04-11,Woodson,Kansas,20207,4,0 +2020-04-12,Woodson,Kansas,20207,4,0 +2020-04-13,Woodson,Kansas,20207,4,0 +2020-04-14,Woodson,Kansas,20207,4,0 +2020-04-15,Woodson,Kansas,20207,5,0 +2020-04-16,Woodson,Kansas,20207,5,0 +2020-04-17,Woodson,Kansas,20207,5,0 +2020-04-18,Woodson,Kansas,20207,5,0 +2020-04-19,Woodson,Kansas,20207,5,0 +2020-04-20,Woodson,Kansas,20207,5,0 +2020-04-21,Woodson,Kansas,20207,5,0 +2020-04-22,Woodson,Kansas,20207,5,0 +2020-04-23,Woodson,Kansas,20207,5,0 +2020-04-24,Woodson,Kansas,20207,5,0 +2020-04-25,Woodson,Kansas,20207,5,0 +2020-04-26,Woodson,Kansas,20207,5,0 +2020-04-27,Woodson,Kansas,20207,5,0 +2020-04-28,Woodson,Kansas,20207,5,0 +2020-04-29,Woodson,Kansas,20207,5,0 +2020-04-30,Woodson,Kansas,20207,5,0 +2020-05-01,Woodson,Kansas,20207,6,0 +2020-05-02,Woodson,Kansas,20207,6,0 +2020-05-03,Woodson,Kansas,20207,6,0 +2020-05-04,Woodson,Kansas,20207,6,0 +2020-05-05,Woodson,Kansas,20207,6,0 +2020-05-06,Woodson,Kansas,20207,6,0 +2020-05-07,Woodson,Kansas,20207,6,0 +2020-05-08,Woodson,Kansas,20207,6,0 +2020-05-09,Woodson,Kansas,20207,6,0 +2020-05-10,Woodson,Kansas,20207,6,0 +2020-05-11,Woodson,Kansas,20207,6,0 +2020-05-12,Woodson,Kansas,20207,6,0 +2020-05-13,Woodson,Kansas,20207,6,0 +2020-05-14,Woodson,Kansas,20207,6,0 +2020-05-15,Woodson,Kansas,20207,6,0 +2020-05-16,Woodson,Kansas,20207,6,0 +2020-05-17,Woodson,Kansas,20207,6,0 +2020-05-18,Woodson,Kansas,20207,6,0 +2020-05-19,Woodson,Kansas,20207,6,0 +2020-05-20,Woodson,Kansas,20207,6,0 +2020-05-21,Woodson,Kansas,20207,6,0 +2020-05-22,Woodson,Kansas,20207,6,0 +2020-05-23,Woodson,Kansas,20207,6,0 +2020-05-24,Woodson,Kansas,20207,6,0 +2020-05-25,Woodson,Kansas,20207,6,0 +2020-05-26,Woodson,Kansas,20207,6,0 +2020-05-27,Woodson,Kansas,20207,6,0 +2020-05-28,Woodson,Kansas,20207,6,0 +2020-05-29,Woodson,Kansas,20207,6,0 +2020-05-30,Woodson,Kansas,20207,6,0 +2020-05-31,Woodson,Kansas,20207,6,0 +2020-06-01,Woodson,Kansas,20207,6,0 +2020-06-02,Woodson,Kansas,20207,6,0 +2020-06-03,Woodson,Kansas,20207,6,0 +2020-06-04,Woodson,Kansas,20207,6,0 +2020-06-05,Woodson,Kansas,20207,6,0 +2020-06-06,Woodson,Kansas,20207,6,0 +2020-06-07,Woodson,Kansas,20207,6,0 +2020-06-08,Woodson,Kansas,20207,6,0 +2020-06-09,Woodson,Kansas,20207,6,0 +2020-06-10,Woodson,Kansas,20207,6,0 +2020-06-11,Woodson,Kansas,20207,6,0 +2020-06-12,Woodson,Kansas,20207,6,0 +2020-06-13,Woodson,Kansas,20207,6,0 +2020-06-14,Woodson,Kansas,20207,6,0 +2020-06-15,Woodson,Kansas,20207,6,0 +2020-06-16,Woodson,Kansas,20207,6,0 +2020-06-17,Woodson,Kansas,20207,6,0 +2020-06-18,Woodson,Kansas,20207,6,0 +2020-06-19,Woodson,Kansas,20207,6,0 +2020-06-20,Woodson,Kansas,20207,6,0 +2020-06-21,Woodson,Kansas,20207,6,0 +2020-06-22,Woodson,Kansas,20207,6,0 +2020-06-23,Woodson,Kansas,20207,6,0 +2020-06-24,Woodson,Kansas,20207,6,0 +2020-06-25,Woodson,Kansas,20207,6,0 +2020-06-26,Woodson,Kansas,20207,6,0 +2020-06-27,Woodson,Kansas,20207,6,0 +2020-06-28,Woodson,Kansas,20207,6,0 +2020-06-29,Woodson,Kansas,20207,8,0 +2020-06-30,Woodson,Kansas,20207,8,0 +2020-07-01,Woodson,Kansas,20207,8,0 +2020-07-02,Woodson,Kansas,20207,8,0 +2020-07-03,Woodson,Kansas,20207,9,0 +2020-07-04,Woodson,Kansas,20207,9,0 +2020-07-05,Woodson,Kansas,20207,9,0 +2020-07-06,Woodson,Kansas,20207,9,0 +2020-07-07,Woodson,Kansas,20207,9,0 +2020-07-08,Woodson,Kansas,20207,9,0 +2020-07-09,Woodson,Kansas,20207,9,0 +2020-03-12,Wyandotte,Kansas,20209,1,1 +2020-03-13,Wyandotte,Kansas,20209,1,1 +2020-03-14,Wyandotte,Kansas,20209,1,1 +2020-03-15,Wyandotte,Kansas,20209,1,1 +2020-03-16,Wyandotte,Kansas,20209,1,1 +2020-03-17,Wyandotte,Kansas,20209,3,1 +2020-03-18,Wyandotte,Kansas,20209,5,1 +2020-03-19,Wyandotte,Kansas,20209,8,1 +2020-03-20,Wyandotte,Kansas,20209,9,1 +2020-03-21,Wyandotte,Kansas,20209,13,1 +2020-03-22,Wyandotte,Kansas,20209,14,1 +2020-03-23,Wyandotte,Kansas,20209,16,1 +2020-03-24,Wyandotte,Kansas,20209,22,2 +2020-03-25,Wyandotte,Kansas,20209,27,2 +2020-03-26,Wyandotte,Kansas,20209,34,2 +2020-03-27,Wyandotte,Kansas,20209,43,3 +2020-03-28,Wyandotte,Kansas,20209,53,3 +2020-03-29,Wyandotte,Kansas,20209,55,4 +2020-03-30,Wyandotte,Kansas,20209,67,4 +2020-03-31,Wyandotte,Kansas,20209,79,4 +2020-04-01,Wyandotte,Kansas,20209,93,4 +2020-04-02,Wyandotte,Kansas,20209,106,5 +2020-04-03,Wyandotte,Kansas,20209,131,6 +2020-04-04,Wyandotte,Kansas,20209,149,6 +2020-04-05,Wyandotte,Kansas,20209,161,6 +2020-04-06,Wyandotte,Kansas,20209,186,7 +2020-04-07,Wyandotte,Kansas,20209,192,10 +2020-04-08,Wyandotte,Kansas,20209,245,13 +2020-04-09,Wyandotte,Kansas,20209,277,16 +2020-04-10,Wyandotte,Kansas,20209,300,20 +2020-04-11,Wyandotte,Kansas,20209,315,24 +2020-04-12,Wyandotte,Kansas,20209,332,24 +2020-04-13,Wyandotte,Kansas,20209,337,29 +2020-04-14,Wyandotte,Kansas,20209,345,30 +2020-04-15,Wyandotte,Kansas,20209,363,31 +2020-04-16,Wyandotte,Kansas,20209,379,34 +2020-04-17,Wyandotte,Kansas,20209,400,35 +2020-04-18,Wyandotte,Kansas,20209,412,35 +2020-04-19,Wyandotte,Kansas,20209,417,37 +2020-04-20,Wyandotte,Kansas,20209,426,44 +2020-04-21,Wyandotte,Kansas,20209,433,44 +2020-04-22,Wyandotte,Kansas,20209,471,46 +2020-04-23,Wyandotte,Kansas,20209,501,47 +2020-04-24,Wyandotte,Kansas,20209,539,49 +2020-04-25,Wyandotte,Kansas,20209,565,50 +2020-04-26,Wyandotte,Kansas,20209,575,51 +2020-04-27,Wyandotte,Kansas,20209,587,53 +2020-04-28,Wyandotte,Kansas,20209,599,53 +2020-04-29,Wyandotte,Kansas,20209,632,55 +2020-04-30,Wyandotte,Kansas,20209,693,55 +2020-05-01,Wyandotte,Kansas,20209,736,55 +2020-05-02,Wyandotte,Kansas,20209,789,55 +2020-05-03,Wyandotte,Kansas,20209,849,55 +2020-05-04,Wyandotte,Kansas,20209,901,61 +2020-05-05,Wyandotte,Kansas,20209,922,64 +2020-05-06,Wyandotte,Kansas,20209,939,64 +2020-05-07,Wyandotte,Kansas,20209,978,64 +2020-05-08,Wyandotte,Kansas,20209,1042,64 +2020-05-09,Wyandotte,Kansas,20209,1080,64 +2020-05-10,Wyandotte,Kansas,20209,1110,64 +2020-05-11,Wyandotte,Kansas,20209,1121,65 +2020-05-12,Wyandotte,Kansas,20209,1127,65 +2020-05-13,Wyandotte,Kansas,20209,1140,66 +2020-05-14,Wyandotte,Kansas,20209,1159,67 +2020-05-15,Wyandotte,Kansas,20209,1170,69 +2020-05-16,Wyandotte,Kansas,20209,1199,70 +2020-05-17,Wyandotte,Kansas,20209,1203,70 +2020-05-18,Wyandotte,Kansas,20209,1212,70 +2020-05-19,Wyandotte,Kansas,20209,1224,70 +2020-05-20,Wyandotte,Kansas,20209,1242,71 +2020-05-21,Wyandotte,Kansas,20209,1266,71 +2020-05-22,Wyandotte,Kansas,20209,1289,71 +2020-05-23,Wyandotte,Kansas,20209,1308,71 +2020-05-24,Wyandotte,Kansas,20209,1317,71 +2020-05-25,Wyandotte,Kansas,20209,1318,71 +2020-05-26,Wyandotte,Kansas,20209,1326,71 +2020-05-27,Wyandotte,Kansas,20209,1332,71 +2020-05-28,Wyandotte,Kansas,20209,1365,73 +2020-05-29,Wyandotte,Kansas,20209,1396,73 +2020-05-30,Wyandotte,Kansas,20209,1404,73 +2020-05-31,Wyandotte,Kansas,20209,1414,74 +2020-06-01,Wyandotte,Kansas,20209,1425,74 +2020-06-02,Wyandotte,Kansas,20209,1442,74 +2020-06-03,Wyandotte,Kansas,20209,1485,74 +2020-06-04,Wyandotte,Kansas,20209,1500,74 +2020-06-05,Wyandotte,Kansas,20209,1537,75 +2020-06-06,Wyandotte,Kansas,20209,1552,75 +2020-06-07,Wyandotte,Kansas,20209,1562,75 +2020-06-08,Wyandotte,Kansas,20209,1575,75 +2020-06-09,Wyandotte,Kansas,20209,1587,76 +2020-06-10,Wyandotte,Kansas,20209,1617,76 +2020-06-11,Wyandotte,Kansas,20209,1646,76 +2020-06-12,Wyandotte,Kansas,20209,1679,76 +2020-06-13,Wyandotte,Kansas,20209,1711,76 +2020-06-14,Wyandotte,Kansas,20209,1733,76 +2020-06-15,Wyandotte,Kansas,20209,1750,76 +2020-06-16,Wyandotte,Kansas,20209,1768,76 +2020-06-17,Wyandotte,Kansas,20209,1812,76 +2020-06-18,Wyandotte,Kansas,20209,1853,77 +2020-06-19,Wyandotte,Kansas,20209,1890,77 +2020-06-20,Wyandotte,Kansas,20209,1905,78 +2020-06-21,Wyandotte,Kansas,20209,1907,78 +2020-06-22,Wyandotte,Kansas,20209,1956,78 +2020-06-23,Wyandotte,Kansas,20209,1982,78 +2020-06-24,Wyandotte,Kansas,20209,2060,78 +2020-06-25,Wyandotte,Kansas,20209,2099,78 +2020-06-26,Wyandotte,Kansas,20209,2165,79 +2020-06-27,Wyandotte,Kansas,20209,2176,80 +2020-06-28,Wyandotte,Kansas,20209,2284,80 +2020-06-29,Wyandotte,Kansas,20209,2303,82 +2020-06-30,Wyandotte,Kansas,20209,2325,82 +2020-07-01,Wyandotte,Kansas,20209,2420,83 +2020-07-02,Wyandotte,Kansas,20209,2429,83 +2020-07-03,Wyandotte,Kansas,20209,2553,84 +2020-07-04,Wyandotte,Kansas,20209,2634,85 +2020-07-05,Wyandotte,Kansas,20209,2664,85 +2020-07-06,Wyandotte,Kansas,20209,2695,85 +2020-07-07,Wyandotte,Kansas,20209,2728,85 +2020-07-08,Wyandotte,Kansas,20209,2781,85 +2020-07-09,Wyandotte,Kansas,20209,2883,87 +2020-04-05,Adair,Kentucky,21001,3,0 +2020-04-06,Adair,Kentucky,21001,3,0 +2020-04-07,Adair,Kentucky,21001,4,1 +2020-04-08,Adair,Kentucky,21001,4,1 +2020-04-09,Adair,Kentucky,21001,9,1 +2020-04-10,Adair,Kentucky,21001,10,1 +2020-04-11,Adair,Kentucky,21001,11,1 +2020-04-12,Adair,Kentucky,21001,43,1 +2020-04-13,Adair,Kentucky,21001,43,1 +2020-04-14,Adair,Kentucky,21001,44,2 +2020-04-15,Adair,Kentucky,21001,45,2 +2020-04-16,Adair,Kentucky,21001,46,3 +2020-04-17,Adair,Kentucky,21001,46,3 +2020-04-18,Adair,Kentucky,21001,47,3 +2020-04-19,Adair,Kentucky,21001,53,3 +2020-04-20,Adair,Kentucky,21001,54,4 +2020-04-21,Adair,Kentucky,21001,53,4 +2020-04-22,Adair,Kentucky,21001,60,4 +2020-04-23,Adair,Kentucky,21001,64,5 +2020-04-24,Adair,Kentucky,21001,80,6 +2020-04-25,Adair,Kentucky,21001,83,7 +2020-04-26,Adair,Kentucky,21001,83,9 +2020-04-27,Adair,Kentucky,21001,83,9 +2020-04-28,Adair,Kentucky,21001,79,10 +2020-04-29,Adair,Kentucky,21001,79,10 +2020-04-30,Adair,Kentucky,21001,81,10 +2020-05-01,Adair,Kentucky,21001,81,11 +2020-05-02,Adair,Kentucky,21001,81,11 +2020-05-03,Adair,Kentucky,21001,81,13 +2020-05-04,Adair,Kentucky,21001,81,13 +2020-05-05,Adair,Kentucky,21001,81,13 +2020-05-06,Adair,Kentucky,21001,82,13 +2020-05-07,Adair,Kentucky,21001,84,13 +2020-05-08,Adair,Kentucky,21001,84,13 +2020-05-09,Adair,Kentucky,21001,86,13 +2020-05-10,Adair,Kentucky,21001,86,13 +2020-05-11,Adair,Kentucky,21001,88,13 +2020-05-12,Adair,Kentucky,21001,88,13 +2020-05-13,Adair,Kentucky,21001,88,13 +2020-05-14,Adair,Kentucky,21001,91,14 +2020-05-15,Adair,Kentucky,21001,92,14 +2020-05-16,Adair,Kentucky,21001,92,14 +2020-05-17,Adair,Kentucky,21001,92,14 +2020-05-18,Adair,Kentucky,21001,95,14 +2020-05-19,Adair,Kentucky,21001,94,17 +2020-05-20,Adair,Kentucky,21001,94,17 +2020-05-21,Adair,Kentucky,21001,95,18 +2020-05-22,Adair,Kentucky,21001,96,18 +2020-05-23,Adair,Kentucky,21001,96,18 +2020-05-24,Adair,Kentucky,21001,96,18 +2020-05-25,Adair,Kentucky,21001,96,18 +2020-05-26,Adair,Kentucky,21001,96,19 +2020-05-27,Adair,Kentucky,21001,96,19 +2020-05-28,Adair,Kentucky,21001,96,19 +2020-05-29,Adair,Kentucky,21001,97,19 +2020-05-30,Adair,Kentucky,21001,97,19 +2020-05-31,Adair,Kentucky,21001,97,19 +2020-06-01,Adair,Kentucky,21001,97,19 +2020-06-02,Adair,Kentucky,21001,97,19 +2020-06-03,Adair,Kentucky,21001,97,19 +2020-06-04,Adair,Kentucky,21001,97,19 +2020-06-05,Adair,Kentucky,21001,98,19 +2020-06-06,Adair,Kentucky,21001,99,19 +2020-06-07,Adair,Kentucky,21001,99,19 +2020-06-08,Adair,Kentucky,21001,100,19 +2020-06-09,Adair,Kentucky,21001,101,19 +2020-06-10,Adair,Kentucky,21001,101,19 +2020-06-11,Adair,Kentucky,21001,101,19 +2020-06-12,Adair,Kentucky,21001,101,19 +2020-06-13,Adair,Kentucky,21001,101,19 +2020-06-14,Adair,Kentucky,21001,101,19 +2020-06-15,Adair,Kentucky,21001,102,19 +2020-06-16,Adair,Kentucky,21001,102,19 +2020-06-17,Adair,Kentucky,21001,104,19 +2020-06-18,Adair,Kentucky,21001,106,19 +2020-06-19,Adair,Kentucky,21001,107,19 +2020-06-20,Adair,Kentucky,21001,107,19 +2020-06-21,Adair,Kentucky,21001,107,19 +2020-06-22,Adair,Kentucky,21001,108,19 +2020-06-23,Adair,Kentucky,21001,108,19 +2020-06-24,Adair,Kentucky,21001,109,19 +2020-06-25,Adair,Kentucky,21001,110,19 +2020-06-26,Adair,Kentucky,21001,111,19 +2020-06-27,Adair,Kentucky,21001,115,19 +2020-06-28,Adair,Kentucky,21001,116,19 +2020-06-29,Adair,Kentucky,21001,118,19 +2020-06-30,Adair,Kentucky,21001,120,19 +2020-07-01,Adair,Kentucky,21001,126,19 +2020-07-02,Adair,Kentucky,21001,127,19 +2020-07-03,Adair,Kentucky,21001,127,19 +2020-07-04,Adair,Kentucky,21001,130,19 +2020-07-05,Adair,Kentucky,21001,131,19 +2020-07-06,Adair,Kentucky,21001,136,19 +2020-07-07,Adair,Kentucky,21001,139,19 +2020-07-08,Adair,Kentucky,21001,139,19 +2020-07-09,Adair,Kentucky,21001,145,19 +2020-03-22,Allen,Kentucky,21003,1,0 +2020-03-23,Allen,Kentucky,21003,1,0 +2020-03-24,Allen,Kentucky,21003,1,0 +2020-03-25,Allen,Kentucky,21003,1,0 +2020-03-26,Allen,Kentucky,21003,1,0 +2020-03-27,Allen,Kentucky,21003,1,0 +2020-03-28,Allen,Kentucky,21003,1,0 +2020-03-29,Allen,Kentucky,21003,1,0 +2020-03-30,Allen,Kentucky,21003,1,0 +2020-03-31,Allen,Kentucky,21003,1,0 +2020-04-01,Allen,Kentucky,21003,1,0 +2020-04-02,Allen,Kentucky,21003,1,0 +2020-04-03,Allen,Kentucky,21003,1,0 +2020-04-04,Allen,Kentucky,21003,1,0 +2020-04-05,Allen,Kentucky,21003,3,0 +2020-04-06,Allen,Kentucky,21003,3,0 +2020-04-07,Allen,Kentucky,21003,3,0 +2020-04-08,Allen,Kentucky,21003,3,0 +2020-04-09,Allen,Kentucky,21003,4,0 +2020-04-10,Allen,Kentucky,21003,4,0 +2020-04-11,Allen,Kentucky,21003,4,0 +2020-04-12,Allen,Kentucky,21003,2,0 +2020-04-13,Allen,Kentucky,21003,2,0 +2020-04-14,Allen,Kentucky,21003,2,0 +2020-04-15,Allen,Kentucky,21003,3,0 +2020-04-16,Allen,Kentucky,21003,3,0 +2020-04-17,Allen,Kentucky,21003,4,0 +2020-04-18,Allen,Kentucky,21003,4,0 +2020-04-19,Allen,Kentucky,21003,4,0 +2020-04-20,Allen,Kentucky,21003,4,0 +2020-04-21,Allen,Kentucky,21003,4,0 +2020-04-22,Allen,Kentucky,21003,5,0 +2020-04-23,Allen,Kentucky,21003,5,0 +2020-04-24,Allen,Kentucky,21003,6,0 +2020-04-25,Allen,Kentucky,21003,7,0 +2020-04-26,Allen,Kentucky,21003,7,0 +2020-04-27,Allen,Kentucky,21003,8,0 +2020-04-28,Allen,Kentucky,21003,9,0 +2020-04-29,Allen,Kentucky,21003,12,0 +2020-04-30,Allen,Kentucky,21003,13,0 +2020-05-01,Allen,Kentucky,21003,14,0 +2020-05-02,Allen,Kentucky,21003,14,0 +2020-05-03,Allen,Kentucky,21003,14,0 +2020-05-04,Allen,Kentucky,21003,14,0 +2020-05-05,Allen,Kentucky,21003,16,0 +2020-05-06,Allen,Kentucky,21003,19,0 +2020-05-07,Allen,Kentucky,21003,25,0 +2020-05-08,Allen,Kentucky,21003,25,0 +2020-05-09,Allen,Kentucky,21003,25,0 +2020-05-10,Allen,Kentucky,21003,25,0 +2020-05-11,Allen,Kentucky,21003,29,1 +2020-05-12,Allen,Kentucky,21003,30,1 +2020-05-13,Allen,Kentucky,21003,30,1 +2020-05-14,Allen,Kentucky,21003,33,1 +2020-05-15,Allen,Kentucky,21003,37,1 +2020-05-16,Allen,Kentucky,21003,39,2 +2020-05-17,Allen,Kentucky,21003,40,2 +2020-05-18,Allen,Kentucky,21003,40,2 +2020-05-19,Allen,Kentucky,21003,41,2 +2020-05-20,Allen,Kentucky,21003,43,2 +2020-05-21,Allen,Kentucky,21003,44,2 +2020-05-22,Allen,Kentucky,21003,44,2 +2020-05-23,Allen,Kentucky,21003,47,2 +2020-05-24,Allen,Kentucky,21003,52,2 +2020-05-25,Allen,Kentucky,21003,52,2 +2020-05-26,Allen,Kentucky,21003,56,3 +2020-05-27,Allen,Kentucky,21003,56,3 +2020-05-28,Allen,Kentucky,21003,63,3 +2020-05-29,Allen,Kentucky,21003,70,3 +2020-05-30,Allen,Kentucky,21003,70,3 +2020-05-31,Allen,Kentucky,21003,88,3 +2020-06-01,Allen,Kentucky,21003,93,3 +2020-06-02,Allen,Kentucky,21003,92,3 +2020-06-03,Allen,Kentucky,21003,96,3 +2020-06-04,Allen,Kentucky,21003,100,3 +2020-06-05,Allen,Kentucky,21003,102,3 +2020-06-06,Allen,Kentucky,21003,102,3 +2020-06-07,Allen,Kentucky,21003,111,4 +2020-06-08,Allen,Kentucky,21003,116,4 +2020-06-09,Allen,Kentucky,21003,118,4 +2020-06-10,Allen,Kentucky,21003,120,4 +2020-06-11,Allen,Kentucky,21003,123,4 +2020-06-12,Allen,Kentucky,21003,130,4 +2020-06-13,Allen,Kentucky,21003,133,4 +2020-06-14,Allen,Kentucky,21003,133,4 +2020-06-15,Allen,Kentucky,21003,136,4 +2020-06-16,Allen,Kentucky,21003,138,4 +2020-06-17,Allen,Kentucky,21003,138,4 +2020-06-18,Allen,Kentucky,21003,145,4 +2020-06-19,Allen,Kentucky,21003,145,4 +2020-06-20,Allen,Kentucky,21003,152,4 +2020-06-21,Allen,Kentucky,21003,152,5 +2020-06-22,Allen,Kentucky,21003,154,5 +2020-06-23,Allen,Kentucky,21003,156,5 +2020-06-24,Allen,Kentucky,21003,158,5 +2020-06-25,Allen,Kentucky,21003,162,5 +2020-06-26,Allen,Kentucky,21003,164,6 +2020-06-27,Allen,Kentucky,21003,165,6 +2020-06-28,Allen,Kentucky,21003,165,6 +2020-06-29,Allen,Kentucky,21003,165,7 +2020-06-30,Allen,Kentucky,21003,168,7 +2020-07-01,Allen,Kentucky,21003,170,7 +2020-07-02,Allen,Kentucky,21003,171,7 +2020-07-03,Allen,Kentucky,21003,174,7 +2020-07-04,Allen,Kentucky,21003,174,7 +2020-07-05,Allen,Kentucky,21003,174,7 +2020-07-06,Allen,Kentucky,21003,177,7 +2020-07-07,Allen,Kentucky,21003,180,7 +2020-07-08,Allen,Kentucky,21003,181,7 +2020-07-09,Allen,Kentucky,21003,183,7 +2020-03-21,Anderson,Kentucky,21005,1,1 +2020-03-22,Anderson,Kentucky,21005,1,1 +2020-03-23,Anderson,Kentucky,21005,2,1 +2020-03-24,Anderson,Kentucky,21005,2,1 +2020-03-25,Anderson,Kentucky,21005,2,1 +2020-03-26,Anderson,Kentucky,21005,2,1 +2020-03-27,Anderson,Kentucky,21005,2,1 +2020-03-28,Anderson,Kentucky,21005,2,1 +2020-03-29,Anderson,Kentucky,21005,2,1 +2020-03-30,Anderson,Kentucky,21005,2,1 +2020-03-31,Anderson,Kentucky,21005,2,1 +2020-04-01,Anderson,Kentucky,21005,3,1 +2020-04-02,Anderson,Kentucky,21005,3,1 +2020-04-03,Anderson,Kentucky,21005,3,1 +2020-04-04,Anderson,Kentucky,21005,3,1 +2020-04-05,Anderson,Kentucky,21005,3,1 +2020-04-06,Anderson,Kentucky,21005,3,1 +2020-04-07,Anderson,Kentucky,21005,3,1 +2020-04-08,Anderson,Kentucky,21005,3,1 +2020-04-09,Anderson,Kentucky,21005,3,1 +2020-04-10,Anderson,Kentucky,21005,3,1 +2020-04-11,Anderson,Kentucky,21005,3,1 +2020-04-12,Anderson,Kentucky,21005,3,1 +2020-04-13,Anderson,Kentucky,21005,3,1 +2020-04-14,Anderson,Kentucky,21005,4,1 +2020-04-15,Anderson,Kentucky,21005,4,1 +2020-04-16,Anderson,Kentucky,21005,5,1 +2020-04-17,Anderson,Kentucky,21005,5,1 +2020-04-18,Anderson,Kentucky,21005,7,1 +2020-04-19,Anderson,Kentucky,21005,7,1 +2020-04-20,Anderson,Kentucky,21005,7,1 +2020-04-21,Anderson,Kentucky,21005,7,1 +2020-04-22,Anderson,Kentucky,21005,7,1 +2020-04-23,Anderson,Kentucky,21005,7,1 +2020-04-24,Anderson,Kentucky,21005,7,1 +2020-04-25,Anderson,Kentucky,21005,7,1 +2020-04-26,Anderson,Kentucky,21005,8,1 +2020-04-27,Anderson,Kentucky,21005,8,1 +2020-04-28,Anderson,Kentucky,21005,8,1 +2020-04-29,Anderson,Kentucky,21005,8,1 +2020-04-30,Anderson,Kentucky,21005,8,1 +2020-05-01,Anderson,Kentucky,21005,8,1 +2020-05-02,Anderson,Kentucky,21005,8,1 +2020-05-03,Anderson,Kentucky,21005,9,1 +2020-05-04,Anderson,Kentucky,21005,9,1 +2020-05-05,Anderson,Kentucky,21005,9,1 +2020-05-06,Anderson,Kentucky,21005,9,1 +2020-05-07,Anderson,Kentucky,21005,9,1 +2020-05-08,Anderson,Kentucky,21005,9,1 +2020-05-09,Anderson,Kentucky,21005,9,1 +2020-05-10,Anderson,Kentucky,21005,9,1 +2020-05-11,Anderson,Kentucky,21005,9,1 +2020-05-12,Anderson,Kentucky,21005,10,1 +2020-05-13,Anderson,Kentucky,21005,10,1 +2020-05-14,Anderson,Kentucky,21005,10,1 +2020-05-15,Anderson,Kentucky,21005,10,1 +2020-05-16,Anderson,Kentucky,21005,10,1 +2020-05-17,Anderson,Kentucky,21005,10,1 +2020-05-18,Anderson,Kentucky,21005,13,1 +2020-05-19,Anderson,Kentucky,21005,13,1 +2020-05-20,Anderson,Kentucky,21005,15,1 +2020-05-21,Anderson,Kentucky,21005,15,1 +2020-05-22,Anderson,Kentucky,21005,15,1 +2020-05-23,Anderson,Kentucky,21005,15,1 +2020-05-24,Anderson,Kentucky,21005,15,1 +2020-05-25,Anderson,Kentucky,21005,15,1 +2020-05-26,Anderson,Kentucky,21005,15,1 +2020-05-27,Anderson,Kentucky,21005,15,1 +2020-05-28,Anderson,Kentucky,21005,16,1 +2020-05-29,Anderson,Kentucky,21005,18,1 +2020-05-30,Anderson,Kentucky,21005,18,1 +2020-05-31,Anderson,Kentucky,21005,18,1 +2020-06-01,Anderson,Kentucky,21005,20,1 +2020-06-02,Anderson,Kentucky,21005,22,1 +2020-06-03,Anderson,Kentucky,21005,21,1 +2020-06-04,Anderson,Kentucky,21005,21,1 +2020-06-05,Anderson,Kentucky,21005,22,1 +2020-06-06,Anderson,Kentucky,21005,25,1 +2020-06-07,Anderson,Kentucky,21005,25,1 +2020-06-08,Anderson,Kentucky,21005,25,1 +2020-06-09,Anderson,Kentucky,21005,25,1 +2020-06-10,Anderson,Kentucky,21005,25,1 +2020-06-11,Anderson,Kentucky,21005,25,1 +2020-06-12,Anderson,Kentucky,21005,25,1 +2020-06-13,Anderson,Kentucky,21005,25,1 +2020-06-14,Anderson,Kentucky,21005,25,1 +2020-06-15,Anderson,Kentucky,21005,25,1 +2020-06-16,Anderson,Kentucky,21005,25,1 +2020-06-17,Anderson,Kentucky,21005,27,1 +2020-06-18,Anderson,Kentucky,21005,27,1 +2020-06-19,Anderson,Kentucky,21005,27,1 +2020-06-20,Anderson,Kentucky,21005,27,1 +2020-06-21,Anderson,Kentucky,21005,27,1 +2020-06-22,Anderson,Kentucky,21005,27,1 +2020-06-23,Anderson,Kentucky,21005,26,1 +2020-06-24,Anderson,Kentucky,21005,26,1 +2020-06-25,Anderson,Kentucky,21005,26,1 +2020-06-26,Anderson,Kentucky,21005,26,1 +2020-06-27,Anderson,Kentucky,21005,26,1 +2020-06-28,Anderson,Kentucky,21005,26,1 +2020-06-29,Anderson,Kentucky,21005,26,1 +2020-06-30,Anderson,Kentucky,21005,26,1 +2020-07-01,Anderson,Kentucky,21005,26,1 +2020-07-02,Anderson,Kentucky,21005,27,1 +2020-07-03,Anderson,Kentucky,21005,29,1 +2020-07-04,Anderson,Kentucky,21005,29,1 +2020-07-05,Anderson,Kentucky,21005,29,1 +2020-07-06,Anderson,Kentucky,21005,29,1 +2020-07-07,Anderson,Kentucky,21005,29,1 +2020-07-08,Anderson,Kentucky,21005,30,1 +2020-07-09,Anderson,Kentucky,21005,30,1 +2020-04-08,Ballard,Kentucky,21007,1,0 +2020-04-09,Ballard,Kentucky,21007,1,0 +2020-04-10,Ballard,Kentucky,21007,1,0 +2020-04-11,Ballard,Kentucky,21007,1,0 +2020-04-12,Ballard,Kentucky,21007,2,0 +2020-04-13,Ballard,Kentucky,21007,2,0 +2020-04-14,Ballard,Kentucky,21007,2,0 +2020-04-15,Ballard,Kentucky,21007,3,0 +2020-04-16,Ballard,Kentucky,21007,4,0 +2020-04-17,Ballard,Kentucky,21007,4,0 +2020-04-18,Ballard,Kentucky,21007,3,0 +2020-04-19,Ballard,Kentucky,21007,4,0 +2020-04-20,Ballard,Kentucky,21007,4,0 +2020-04-21,Ballard,Kentucky,21007,4,0 +2020-04-22,Ballard,Kentucky,21007,4,0 +2020-04-23,Ballard,Kentucky,21007,4,0 +2020-04-24,Ballard,Kentucky,21007,5,0 +2020-04-25,Ballard,Kentucky,21007,5,0 +2020-04-26,Ballard,Kentucky,21007,7,0 +2020-04-27,Ballard,Kentucky,21007,7,0 +2020-04-28,Ballard,Kentucky,21007,9,0 +2020-04-29,Ballard,Kentucky,21007,9,0 +2020-04-30,Ballard,Kentucky,21007,9,0 +2020-05-01,Ballard,Kentucky,21007,10,0 +2020-05-02,Ballard,Kentucky,21007,10,0 +2020-05-03,Ballard,Kentucky,21007,10,0 +2020-05-04,Ballard,Kentucky,21007,8,0 +2020-05-05,Ballard,Kentucky,21007,8,0 +2020-05-06,Ballard,Kentucky,21007,8,0 +2020-05-07,Ballard,Kentucky,21007,8,0 +2020-05-08,Ballard,Kentucky,21007,8,0 +2020-05-09,Ballard,Kentucky,21007,8,0 +2020-05-10,Ballard,Kentucky,21007,8,0 +2020-05-11,Ballard,Kentucky,21007,8,0 +2020-05-12,Ballard,Kentucky,21007,8,0 +2020-05-13,Ballard,Kentucky,21007,8,0 +2020-05-14,Ballard,Kentucky,21007,10,0 +2020-05-15,Ballard,Kentucky,21007,10,0 +2020-05-16,Ballard,Kentucky,21007,10,0 +2020-05-17,Ballard,Kentucky,21007,10,0 +2020-05-18,Ballard,Kentucky,21007,10,0 +2020-05-19,Ballard,Kentucky,21007,10,0 +2020-05-20,Ballard,Kentucky,21007,10,0 +2020-05-21,Ballard,Kentucky,21007,10,0 +2020-05-22,Ballard,Kentucky,21007,10,0 +2020-05-23,Ballard,Kentucky,21007,10,0 +2020-05-24,Ballard,Kentucky,21007,10,0 +2020-05-25,Ballard,Kentucky,21007,10,0 +2020-05-26,Ballard,Kentucky,21007,10,0 +2020-05-27,Ballard,Kentucky,21007,10,0 +2020-05-28,Ballard,Kentucky,21007,10,0 +2020-05-29,Ballard,Kentucky,21007,10,0 +2020-05-30,Ballard,Kentucky,21007,12,0 +2020-05-31,Ballard,Kentucky,21007,12,0 +2020-06-01,Ballard,Kentucky,21007,12,0 +2020-06-02,Ballard,Kentucky,21007,12,0 +2020-06-03,Ballard,Kentucky,21007,12,0 +2020-06-04,Ballard,Kentucky,21007,12,0 +2020-06-05,Ballard,Kentucky,21007,12,0 +2020-06-06,Ballard,Kentucky,21007,13,0 +2020-06-07,Ballard,Kentucky,21007,13,0 +2020-06-08,Ballard,Kentucky,21007,13,0 +2020-06-09,Ballard,Kentucky,21007,13,0 +2020-06-10,Ballard,Kentucky,21007,13,0 +2020-06-11,Ballard,Kentucky,21007,13,0 +2020-06-12,Ballard,Kentucky,21007,14,0 +2020-06-13,Ballard,Kentucky,21007,14,0 +2020-06-14,Ballard,Kentucky,21007,15,0 +2020-06-15,Ballard,Kentucky,21007,15,0 +2020-06-16,Ballard,Kentucky,21007,15,0 +2020-06-17,Ballard,Kentucky,21007,15,0 +2020-06-18,Ballard,Kentucky,21007,15,0 +2020-06-19,Ballard,Kentucky,21007,15,0 +2020-06-20,Ballard,Kentucky,21007,15,0 +2020-06-21,Ballard,Kentucky,21007,15,0 +2020-06-22,Ballard,Kentucky,21007,15,0 +2020-06-23,Ballard,Kentucky,21007,15,0 +2020-06-24,Ballard,Kentucky,21007,15,0 +2020-06-25,Ballard,Kentucky,21007,15,0 +2020-06-26,Ballard,Kentucky,21007,15,0 +2020-06-27,Ballard,Kentucky,21007,15,0 +2020-06-28,Ballard,Kentucky,21007,15,0 +2020-06-29,Ballard,Kentucky,21007,15,0 +2020-06-30,Ballard,Kentucky,21007,15,0 +2020-07-01,Ballard,Kentucky,21007,15,0 +2020-07-02,Ballard,Kentucky,21007,15,0 +2020-07-03,Ballard,Kentucky,21007,15,0 +2020-07-04,Ballard,Kentucky,21007,15,0 +2020-07-05,Ballard,Kentucky,21007,15,0 +2020-07-06,Ballard,Kentucky,21007,16,0 +2020-07-07,Ballard,Kentucky,21007,15,0 +2020-07-08,Ballard,Kentucky,21007,15,0 +2020-07-09,Ballard,Kentucky,21007,15,0 +2020-03-31,Barren,Kentucky,21009,1,0 +2020-04-01,Barren,Kentucky,21009,1,0 +2020-04-02,Barren,Kentucky,21009,2,0 +2020-04-03,Barren,Kentucky,21009,2,0 +2020-04-04,Barren,Kentucky,21009,2,0 +2020-04-05,Barren,Kentucky,21009,1,0 +2020-04-06,Barren,Kentucky,21009,1,0 +2020-04-07,Barren,Kentucky,21009,2,0 +2020-04-08,Barren,Kentucky,21009,2,0 +2020-04-09,Barren,Kentucky,21009,3,0 +2020-04-10,Barren,Kentucky,21009,3,0 +2020-04-11,Barren,Kentucky,21009,5,0 +2020-04-12,Barren,Kentucky,21009,5,0 +2020-04-13,Barren,Kentucky,21009,5,0 +2020-04-14,Barren,Kentucky,21009,6,0 +2020-04-15,Barren,Kentucky,21009,7,0 +2020-04-16,Barren,Kentucky,21009,7,0 +2020-04-17,Barren,Kentucky,21009,7,0 +2020-04-18,Barren,Kentucky,21009,7,0 +2020-04-19,Barren,Kentucky,21009,7,0 +2020-04-20,Barren,Kentucky,21009,7,0 +2020-04-21,Barren,Kentucky,21009,9,0 +2020-04-22,Barren,Kentucky,21009,9,0 +2020-04-23,Barren,Kentucky,21009,9,0 +2020-04-24,Barren,Kentucky,21009,9,0 +2020-04-25,Barren,Kentucky,21009,13,0 +2020-04-26,Barren,Kentucky,21009,13,0 +2020-04-27,Barren,Kentucky,21009,15,0 +2020-04-28,Barren,Kentucky,21009,15,0 +2020-04-29,Barren,Kentucky,21009,16,0 +2020-04-30,Barren,Kentucky,21009,17,0 +2020-05-01,Barren,Kentucky,21009,17,0 +2020-05-02,Barren,Kentucky,21009,17,0 +2020-05-03,Barren,Kentucky,21009,18,0 +2020-05-04,Barren,Kentucky,21009,20,0 +2020-05-05,Barren,Kentucky,21009,22,0 +2020-05-06,Barren,Kentucky,21009,22,0 +2020-05-07,Barren,Kentucky,21009,24,0 +2020-05-08,Barren,Kentucky,21009,24,0 +2020-05-09,Barren,Kentucky,21009,28,0 +2020-05-10,Barren,Kentucky,21009,28,0 +2020-05-11,Barren,Kentucky,21009,28,0 +2020-05-12,Barren,Kentucky,21009,30,0 +2020-05-13,Barren,Kentucky,21009,30,0 +2020-05-14,Barren,Kentucky,21009,34,0 +2020-05-15,Barren,Kentucky,21009,34,0 +2020-05-16,Barren,Kentucky,21009,34,0 +2020-05-17,Barren,Kentucky,21009,34,0 +2020-05-18,Barren,Kentucky,21009,34,0 +2020-05-19,Barren,Kentucky,21009,34,0 +2020-05-20,Barren,Kentucky,21009,38,0 +2020-05-21,Barren,Kentucky,21009,38,0 +2020-05-22,Barren,Kentucky,21009,40,1 +2020-05-23,Barren,Kentucky,21009,42,1 +2020-05-24,Barren,Kentucky,21009,42,1 +2020-05-25,Barren,Kentucky,21009,42,1 +2020-05-26,Barren,Kentucky,21009,43,1 +2020-05-27,Barren,Kentucky,21009,44,1 +2020-05-28,Barren,Kentucky,21009,44,1 +2020-05-29,Barren,Kentucky,21009,45,1 +2020-05-30,Barren,Kentucky,21009,45,1 +2020-05-31,Barren,Kentucky,21009,45,1 +2020-06-01,Barren,Kentucky,21009,47,1 +2020-06-02,Barren,Kentucky,21009,49,1 +2020-06-03,Barren,Kentucky,21009,49,1 +2020-06-04,Barren,Kentucky,21009,50,1 +2020-06-05,Barren,Kentucky,21009,53,1 +2020-06-06,Barren,Kentucky,21009,53,1 +2020-06-07,Barren,Kentucky,21009,53,1 +2020-06-08,Barren,Kentucky,21009,55,1 +2020-06-09,Barren,Kentucky,21009,56,2 +2020-06-10,Barren,Kentucky,21009,59,2 +2020-06-11,Barren,Kentucky,21009,59,2 +2020-06-12,Barren,Kentucky,21009,61,2 +2020-06-13,Barren,Kentucky,21009,65,2 +2020-06-14,Barren,Kentucky,21009,65,2 +2020-06-15,Barren,Kentucky,21009,66,2 +2020-06-16,Barren,Kentucky,21009,66,2 +2020-06-17,Barren,Kentucky,21009,67,2 +2020-06-18,Barren,Kentucky,21009,68,2 +2020-06-19,Barren,Kentucky,21009,70,2 +2020-06-20,Barren,Kentucky,21009,70,2 +2020-06-21,Barren,Kentucky,21009,71,2 +2020-06-22,Barren,Kentucky,21009,71,2 +2020-06-23,Barren,Kentucky,21009,74,2 +2020-06-24,Barren,Kentucky,21009,76,2 +2020-06-25,Barren,Kentucky,21009,82,2 +2020-06-26,Barren,Kentucky,21009,84,2 +2020-06-27,Barren,Kentucky,21009,84,2 +2020-06-28,Barren,Kentucky,21009,84,2 +2020-06-29,Barren,Kentucky,21009,85,2 +2020-06-30,Barren,Kentucky,21009,86,2 +2020-07-01,Barren,Kentucky,21009,86,2 +2020-07-02,Barren,Kentucky,21009,90,2 +2020-07-03,Barren,Kentucky,21009,92,2 +2020-07-04,Barren,Kentucky,21009,92,2 +2020-07-05,Barren,Kentucky,21009,92,2 +2020-07-06,Barren,Kentucky,21009,97,2 +2020-07-07,Barren,Kentucky,21009,99,2 +2020-07-08,Barren,Kentucky,21009,104,2 +2020-07-09,Barren,Kentucky,21009,110,2 +2020-04-02,Bath,Kentucky,21011,1,0 +2020-04-03,Bath,Kentucky,21011,1,0 +2020-04-04,Bath,Kentucky,21011,1,0 +2020-04-05,Bath,Kentucky,21011,1,0 +2020-04-06,Bath,Kentucky,21011,1,0 +2020-04-07,Bath,Kentucky,21011,1,0 +2020-04-08,Bath,Kentucky,21011,1,0 +2020-04-09,Bath,Kentucky,21011,1,0 +2020-04-10,Bath,Kentucky,21011,1,0 +2020-04-11,Bath,Kentucky,21011,2,0 +2020-04-12,Bath,Kentucky,21011,3,0 +2020-04-13,Bath,Kentucky,21011,3,0 +2020-04-14,Bath,Kentucky,21011,3,0 +2020-04-15,Bath,Kentucky,21011,3,0 +2020-04-16,Bath,Kentucky,21011,3,0 +2020-04-17,Bath,Kentucky,21011,3,0 +2020-04-18,Bath,Kentucky,21011,3,0 +2020-04-19,Bath,Kentucky,21011,3,0 +2020-04-20,Bath,Kentucky,21011,3,0 +2020-04-21,Bath,Kentucky,21011,3,0 +2020-04-22,Bath,Kentucky,21011,3,0 +2020-04-23,Bath,Kentucky,21011,3,0 +2020-04-24,Bath,Kentucky,21011,3,0 +2020-04-25,Bath,Kentucky,21011,4,0 +2020-04-26,Bath,Kentucky,21011,4,0 +2020-04-27,Bath,Kentucky,21011,4,0 +2020-04-28,Bath,Kentucky,21011,4,0 +2020-04-29,Bath,Kentucky,21011,4,0 +2020-04-30,Bath,Kentucky,21011,4,1 +2020-05-01,Bath,Kentucky,21011,4,1 +2020-05-02,Bath,Kentucky,21011,4,1 +2020-05-03,Bath,Kentucky,21011,4,1 +2020-05-04,Bath,Kentucky,21011,4,1 +2020-05-05,Bath,Kentucky,21011,4,1 +2020-05-06,Bath,Kentucky,21011,4,1 +2020-05-07,Bath,Kentucky,21011,4,1 +2020-05-08,Bath,Kentucky,21011,4,1 +2020-05-09,Bath,Kentucky,21011,5,1 +2020-05-10,Bath,Kentucky,21011,5,1 +2020-05-11,Bath,Kentucky,21011,6,1 +2020-05-12,Bath,Kentucky,21011,7,1 +2020-05-13,Bath,Kentucky,21011,7,1 +2020-05-14,Bath,Kentucky,21011,7,1 +2020-05-15,Bath,Kentucky,21011,7,1 +2020-05-16,Bath,Kentucky,21011,7,1 +2020-05-17,Bath,Kentucky,21011,7,1 +2020-05-18,Bath,Kentucky,21011,7,1 +2020-05-19,Bath,Kentucky,21011,7,1 +2020-05-20,Bath,Kentucky,21011,7,1 +2020-05-21,Bath,Kentucky,21011,8,1 +2020-05-22,Bath,Kentucky,21011,8,1 +2020-05-23,Bath,Kentucky,21011,8,1 +2020-05-24,Bath,Kentucky,21011,8,1 +2020-05-25,Bath,Kentucky,21011,8,1 +2020-05-26,Bath,Kentucky,21011,8,1 +2020-05-27,Bath,Kentucky,21011,8,1 +2020-05-28,Bath,Kentucky,21011,8,1 +2020-05-29,Bath,Kentucky,21011,9,1 +2020-05-30,Bath,Kentucky,21011,9,1 +2020-05-31,Bath,Kentucky,21011,9,1 +2020-06-01,Bath,Kentucky,21011,9,1 +2020-06-02,Bath,Kentucky,21011,9,1 +2020-06-03,Bath,Kentucky,21011,9,1 +2020-06-04,Bath,Kentucky,21011,9,1 +2020-06-05,Bath,Kentucky,21011,9,1 +2020-06-06,Bath,Kentucky,21011,9,1 +2020-06-07,Bath,Kentucky,21011,9,1 +2020-06-08,Bath,Kentucky,21011,9,1 +2020-06-09,Bath,Kentucky,21011,9,1 +2020-06-10,Bath,Kentucky,21011,9,1 +2020-06-11,Bath,Kentucky,21011,9,1 +2020-06-12,Bath,Kentucky,21011,10,1 +2020-06-13,Bath,Kentucky,21011,10,1 +2020-06-14,Bath,Kentucky,21011,10,1 +2020-06-15,Bath,Kentucky,21011,10,1 +2020-06-16,Bath,Kentucky,21011,10,1 +2020-06-17,Bath,Kentucky,21011,10,1 +2020-06-18,Bath,Kentucky,21011,10,1 +2020-06-19,Bath,Kentucky,21011,10,1 +2020-06-20,Bath,Kentucky,21011,10,1 +2020-06-21,Bath,Kentucky,21011,10,1 +2020-06-22,Bath,Kentucky,21011,10,1 +2020-06-23,Bath,Kentucky,21011,11,1 +2020-06-24,Bath,Kentucky,21011,11,1 +2020-06-25,Bath,Kentucky,21011,11,1 +2020-06-26,Bath,Kentucky,21011,12,1 +2020-06-27,Bath,Kentucky,21011,13,1 +2020-06-28,Bath,Kentucky,21011,13,1 +2020-06-29,Bath,Kentucky,21011,13,1 +2020-06-30,Bath,Kentucky,21011,15,1 +2020-07-01,Bath,Kentucky,21011,15,1 +2020-07-02,Bath,Kentucky,21011,15,1 +2020-07-03,Bath,Kentucky,21011,18,1 +2020-07-04,Bath,Kentucky,21011,18,1 +2020-07-05,Bath,Kentucky,21011,18,1 +2020-07-06,Bath,Kentucky,21011,18,1 +2020-07-07,Bath,Kentucky,21011,18,1 +2020-07-08,Bath,Kentucky,21011,18,1 +2020-07-09,Bath,Kentucky,21011,18,1 +2020-05-18,Bell,Kentucky,21013,1,0 +2020-05-19,Bell,Kentucky,21013,1,0 +2020-05-20,Bell,Kentucky,21013,1,0 +2020-05-21,Bell,Kentucky,21013,1,0 +2020-05-22,Bell,Kentucky,21013,1,0 +2020-05-23,Bell,Kentucky,21013,1,0 +2020-05-24,Bell,Kentucky,21013,1,0 +2020-05-25,Bell,Kentucky,21013,1,0 +2020-05-26,Bell,Kentucky,21013,1,0 +2020-05-27,Bell,Kentucky,21013,1,0 +2020-05-28,Bell,Kentucky,21013,1,0 +2020-05-29,Bell,Kentucky,21013,1,0 +2020-05-30,Bell,Kentucky,21013,1,0 +2020-05-31,Bell,Kentucky,21013,1,0 +2020-06-01,Bell,Kentucky,21013,1,0 +2020-06-02,Bell,Kentucky,21013,1,0 +2020-06-03,Bell,Kentucky,21013,1,0 +2020-06-04,Bell,Kentucky,21013,2,0 +2020-06-05,Bell,Kentucky,21013,2,0 +2020-06-06,Bell,Kentucky,21013,2,0 +2020-06-07,Bell,Kentucky,21013,2,0 +2020-06-08,Bell,Kentucky,21013,2,0 +2020-06-09,Bell,Kentucky,21013,3,0 +2020-06-10,Bell,Kentucky,21013,3,0 +2020-06-11,Bell,Kentucky,21013,3,0 +2020-06-12,Bell,Kentucky,21013,3,0 +2020-06-13,Bell,Kentucky,21013,4,0 +2020-06-14,Bell,Kentucky,21013,4,0 +2020-06-15,Bell,Kentucky,21013,4,0 +2020-06-16,Bell,Kentucky,21013,4,0 +2020-06-17,Bell,Kentucky,21013,4,0 +2020-06-18,Bell,Kentucky,21013,4,0 +2020-06-19,Bell,Kentucky,21013,4,0 +2020-06-20,Bell,Kentucky,21013,4,0 +2020-06-21,Bell,Kentucky,21013,5,0 +2020-06-22,Bell,Kentucky,21013,5,0 +2020-06-23,Bell,Kentucky,21013,6,0 +2020-06-24,Bell,Kentucky,21013,6,0 +2020-06-25,Bell,Kentucky,21013,6,0 +2020-06-26,Bell,Kentucky,21013,7,0 +2020-06-27,Bell,Kentucky,21013,8,0 +2020-06-28,Bell,Kentucky,21013,8,0 +2020-06-29,Bell,Kentucky,21013,8,0 +2020-06-30,Bell,Kentucky,21013,8,0 +2020-07-01,Bell,Kentucky,21013,8,0 +2020-07-02,Bell,Kentucky,21013,9,0 +2020-07-03,Bell,Kentucky,21013,13,0 +2020-07-04,Bell,Kentucky,21013,13,0 +2020-07-05,Bell,Kentucky,21013,13,0 +2020-07-06,Bell,Kentucky,21013,21,0 +2020-07-07,Bell,Kentucky,21013,43,0 +2020-07-08,Bell,Kentucky,21013,57,0 +2020-07-09,Bell,Kentucky,21013,69,0 +2020-03-26,Boone,Kentucky,21015,2,0 +2020-03-27,Boone,Kentucky,21015,3,0 +2020-03-28,Boone,Kentucky,21015,4,0 +2020-03-29,Boone,Kentucky,21015,4,0 +2020-03-30,Boone,Kentucky,21015,5,0 +2020-03-31,Boone,Kentucky,21015,5,0 +2020-04-01,Boone,Kentucky,21015,5,0 +2020-04-02,Boone,Kentucky,21015,5,0 +2020-04-03,Boone,Kentucky,21015,5,0 +2020-04-04,Boone,Kentucky,21015,6,1 +2020-04-05,Boone,Kentucky,21015,27,1 +2020-04-06,Boone,Kentucky,21015,27,1 +2020-04-07,Boone,Kentucky,21015,34,1 +2020-04-08,Boone,Kentucky,21015,34,1 +2020-04-09,Boone,Kentucky,21015,46,1 +2020-04-10,Boone,Kentucky,21015,48,1 +2020-04-11,Boone,Kentucky,21015,48,2 +2020-04-12,Boone,Kentucky,21015,54,2 +2020-04-13,Boone,Kentucky,21015,58,2 +2020-04-14,Boone,Kentucky,21015,61,2 +2020-04-15,Boone,Kentucky,21015,65,2 +2020-04-16,Boone,Kentucky,21015,67,2 +2020-04-17,Boone,Kentucky,21015,73,2 +2020-04-18,Boone,Kentucky,21015,74,2 +2020-04-19,Boone,Kentucky,21015,81,2 +2020-04-20,Boone,Kentucky,21015,81,2 +2020-04-21,Boone,Kentucky,21015,86,2 +2020-04-22,Boone,Kentucky,21015,93,2 +2020-04-23,Boone,Kentucky,21015,94,2 +2020-04-24,Boone,Kentucky,21015,98,2 +2020-04-25,Boone,Kentucky,21015,103,2 +2020-04-26,Boone,Kentucky,21015,113,2 +2020-04-27,Boone,Kentucky,21015,116,2 +2020-04-28,Boone,Kentucky,21015,125,2 +2020-04-29,Boone,Kentucky,21015,125,2 +2020-04-30,Boone,Kentucky,21015,138,2 +2020-05-01,Boone,Kentucky,21015,144,2 +2020-05-02,Boone,Kentucky,21015,144,2 +2020-05-03,Boone,Kentucky,21015,170,2 +2020-05-04,Boone,Kentucky,21015,172,4 +2020-05-05,Boone,Kentucky,21015,191,4 +2020-05-06,Boone,Kentucky,21015,196,4 +2020-05-07,Boone,Kentucky,21015,197,4 +2020-05-08,Boone,Kentucky,21015,203,4 +2020-05-09,Boone,Kentucky,21015,213,4 +2020-05-10,Boone,Kentucky,21015,218,4 +2020-05-11,Boone,Kentucky,21015,232,5 +2020-05-12,Boone,Kentucky,21015,250,8 +2020-05-13,Boone,Kentucky,21015,268,8 +2020-05-14,Boone,Kentucky,21015,283,8 +2020-05-15,Boone,Kentucky,21015,312,8 +2020-05-16,Boone,Kentucky,21015,326,8 +2020-05-17,Boone,Kentucky,21015,342,8 +2020-05-18,Boone,Kentucky,21015,355,10 +2020-05-19,Boone,Kentucky,21015,361,11 +2020-05-20,Boone,Kentucky,21015,363,11 +2020-05-21,Boone,Kentucky,21015,368,11 +2020-05-22,Boone,Kentucky,21015,379,11 +2020-05-23,Boone,Kentucky,21015,401,11 +2020-05-24,Boone,Kentucky,21015,401,11 +2020-05-25,Boone,Kentucky,21015,401,11 +2020-05-26,Boone,Kentucky,21015,425,11 +2020-05-27,Boone,Kentucky,21015,429,17 +2020-05-28,Boone,Kentucky,21015,435,17 +2020-05-29,Boone,Kentucky,21015,447,17 +2020-05-30,Boone,Kentucky,21015,458,17 +2020-05-31,Boone,Kentucky,21015,462,17 +2020-06-01,Boone,Kentucky,21015,466,17 +2020-06-02,Boone,Kentucky,21015,469,17 +2020-06-03,Boone,Kentucky,21015,492,18 +2020-06-04,Boone,Kentucky,21015,505,18 +2020-06-05,Boone,Kentucky,21015,508,18 +2020-06-06,Boone,Kentucky,21015,516,18 +2020-06-07,Boone,Kentucky,21015,516,18 +2020-06-08,Boone,Kentucky,21015,522,18 +2020-06-09,Boone,Kentucky,21015,527,18 +2020-06-10,Boone,Kentucky,21015,532,18 +2020-06-11,Boone,Kentucky,21015,535,21 +2020-06-12,Boone,Kentucky,21015,538,21 +2020-06-13,Boone,Kentucky,21015,539,21 +2020-06-14,Boone,Kentucky,21015,539,21 +2020-06-15,Boone,Kentucky,21015,541,21 +2020-06-16,Boone,Kentucky,21015,541,23 +2020-06-17,Boone,Kentucky,21015,552,23 +2020-06-18,Boone,Kentucky,21015,557,23 +2020-06-19,Boone,Kentucky,21015,567,23 +2020-06-20,Boone,Kentucky,21015,567,23 +2020-06-21,Boone,Kentucky,21015,570,23 +2020-06-22,Boone,Kentucky,21015,575,23 +2020-06-23,Boone,Kentucky,21015,579,23 +2020-06-24,Boone,Kentucky,21015,587,23 +2020-06-25,Boone,Kentucky,21015,588,23 +2020-06-26,Boone,Kentucky,21015,590,23 +2020-06-27,Boone,Kentucky,21015,594,23 +2020-06-28,Boone,Kentucky,21015,594,23 +2020-06-29,Boone,Kentucky,21015,594,23 +2020-06-30,Boone,Kentucky,21015,597,23 +2020-07-01,Boone,Kentucky,21015,602,23 +2020-07-02,Boone,Kentucky,21015,606,23 +2020-07-03,Boone,Kentucky,21015,615,23 +2020-07-04,Boone,Kentucky,21015,615,23 +2020-07-05,Boone,Kentucky,21015,615,23 +2020-07-06,Boone,Kentucky,21015,646,23 +2020-07-07,Boone,Kentucky,21015,660,23 +2020-07-08,Boone,Kentucky,21015,672,23 +2020-07-09,Boone,Kentucky,21015,683,23 +2020-03-14,Bourbon,Kentucky,21017,1,0 +2020-03-15,Bourbon,Kentucky,21017,1,0 +2020-03-16,Bourbon,Kentucky,21017,1,1 +2020-03-17,Bourbon,Kentucky,21017,1,1 +2020-03-18,Bourbon,Kentucky,21017,2,1 +2020-03-19,Bourbon,Kentucky,21017,2,1 +2020-03-20,Bourbon,Kentucky,21017,2,1 +2020-03-21,Bourbon,Kentucky,21017,2,1 +2020-03-22,Bourbon,Kentucky,21017,2,1 +2020-03-23,Bourbon,Kentucky,21017,2,1 +2020-03-24,Bourbon,Kentucky,21017,2,1 +2020-03-25,Bourbon,Kentucky,21017,2,1 +2020-03-26,Bourbon,Kentucky,21017,2,1 +2020-03-27,Bourbon,Kentucky,21017,2,1 +2020-03-28,Bourbon,Kentucky,21017,2,1 +2020-03-29,Bourbon,Kentucky,21017,2,1 +2020-03-30,Bourbon,Kentucky,21017,2,1 +2020-03-31,Bourbon,Kentucky,21017,4,1 +2020-04-01,Bourbon,Kentucky,21017,6,1 +2020-04-02,Bourbon,Kentucky,21017,6,1 +2020-04-03,Bourbon,Kentucky,21017,6,1 +2020-04-04,Bourbon,Kentucky,21017,6,1 +2020-04-05,Bourbon,Kentucky,21017,4,1 +2020-04-06,Bourbon,Kentucky,21017,4,1 +2020-04-07,Bourbon,Kentucky,21017,4,1 +2020-04-08,Bourbon,Kentucky,21017,4,1 +2020-04-09,Bourbon,Kentucky,21017,4,1 +2020-04-10,Bourbon,Kentucky,21017,4,1 +2020-04-11,Bourbon,Kentucky,21017,4,1 +2020-04-12,Bourbon,Kentucky,21017,4,1 +2020-04-13,Bourbon,Kentucky,21017,4,1 +2020-04-14,Bourbon,Kentucky,21017,4,1 +2020-04-15,Bourbon,Kentucky,21017,4,1 +2020-04-16,Bourbon,Kentucky,21017,7,1 +2020-04-17,Bourbon,Kentucky,21017,5,1 +2020-04-18,Bourbon,Kentucky,21017,7,1 +2020-04-19,Bourbon,Kentucky,21017,8,1 +2020-04-20,Bourbon,Kentucky,21017,8,1 +2020-04-21,Bourbon,Kentucky,21017,7,1 +2020-04-22,Bourbon,Kentucky,21017,7,1 +2020-04-23,Bourbon,Kentucky,21017,8,1 +2020-04-24,Bourbon,Kentucky,21017,8,1 +2020-04-25,Bourbon,Kentucky,21017,8,1 +2020-04-26,Bourbon,Kentucky,21017,8,1 +2020-04-27,Bourbon,Kentucky,21017,8,1 +2020-04-28,Bourbon,Kentucky,21017,8,1 +2020-04-29,Bourbon,Kentucky,21017,8,1 +2020-04-30,Bourbon,Kentucky,21017,8,1 +2020-05-01,Bourbon,Kentucky,21017,8,1 +2020-05-02,Bourbon,Kentucky,21017,8,1 +2020-05-03,Bourbon,Kentucky,21017,8,1 +2020-05-04,Bourbon,Kentucky,21017,9,1 +2020-05-05,Bourbon,Kentucky,21017,9,1 +2020-05-06,Bourbon,Kentucky,21017,9,1 +2020-05-07,Bourbon,Kentucky,21017,9,1 +2020-05-08,Bourbon,Kentucky,21017,8,1 +2020-05-09,Bourbon,Kentucky,21017,8,1 +2020-05-10,Bourbon,Kentucky,21017,8,1 +2020-05-11,Bourbon,Kentucky,21017,8,1 +2020-05-12,Bourbon,Kentucky,21017,8,1 +2020-05-13,Bourbon,Kentucky,21017,8,1 +2020-05-14,Bourbon,Kentucky,21017,8,1 +2020-05-15,Bourbon,Kentucky,21017,8,1 +2020-05-16,Bourbon,Kentucky,21017,8,1 +2020-05-17,Bourbon,Kentucky,21017,9,1 +2020-05-18,Bourbon,Kentucky,21017,9,1 +2020-05-19,Bourbon,Kentucky,21017,9,1 +2020-05-20,Bourbon,Kentucky,21017,9,1 +2020-05-21,Bourbon,Kentucky,21017,9,1 +2020-05-22,Bourbon,Kentucky,21017,9,1 +2020-05-23,Bourbon,Kentucky,21017,9,1 +2020-05-24,Bourbon,Kentucky,21017,9,1 +2020-05-25,Bourbon,Kentucky,21017,9,1 +2020-05-26,Bourbon,Kentucky,21017,9,1 +2020-05-27,Bourbon,Kentucky,21017,10,1 +2020-05-28,Bourbon,Kentucky,21017,10,1 +2020-05-29,Bourbon,Kentucky,21017,10,1 +2020-05-30,Bourbon,Kentucky,21017,11,1 +2020-05-31,Bourbon,Kentucky,21017,11,1 +2020-06-01,Bourbon,Kentucky,21017,11,1 +2020-06-02,Bourbon,Kentucky,21017,11,1 +2020-06-03,Bourbon,Kentucky,21017,11,1 +2020-06-04,Bourbon,Kentucky,21017,12,1 +2020-06-05,Bourbon,Kentucky,21017,12,1 +2020-06-06,Bourbon,Kentucky,21017,14,1 +2020-06-07,Bourbon,Kentucky,21017,19,1 +2020-06-08,Bourbon,Kentucky,21017,19,1 +2020-06-09,Bourbon,Kentucky,21017,21,1 +2020-06-10,Bourbon,Kentucky,21017,22,1 +2020-06-11,Bourbon,Kentucky,21017,22,1 +2020-06-12,Bourbon,Kentucky,21017,22,1 +2020-06-13,Bourbon,Kentucky,21017,24,1 +2020-06-14,Bourbon,Kentucky,21017,24,1 +2020-06-15,Bourbon,Kentucky,21017,25,1 +2020-06-16,Bourbon,Kentucky,21017,25,1 +2020-06-17,Bourbon,Kentucky,21017,26,1 +2020-06-18,Bourbon,Kentucky,21017,26,1 +2020-06-19,Bourbon,Kentucky,21017,26,1 +2020-06-20,Bourbon,Kentucky,21017,27,1 +2020-06-21,Bourbon,Kentucky,21017,27,1 +2020-06-22,Bourbon,Kentucky,21017,27,1 +2020-06-23,Bourbon,Kentucky,21017,27,1 +2020-06-24,Bourbon,Kentucky,21017,27,1 +2020-06-25,Bourbon,Kentucky,21017,29,1 +2020-06-26,Bourbon,Kentucky,21017,29,1 +2020-06-27,Bourbon,Kentucky,21017,30,1 +2020-06-28,Bourbon,Kentucky,21017,30,1 +2020-06-29,Bourbon,Kentucky,21017,30,1 +2020-06-30,Bourbon,Kentucky,21017,31,1 +2020-07-01,Bourbon,Kentucky,21017,32,1 +2020-07-02,Bourbon,Kentucky,21017,33,1 +2020-07-03,Bourbon,Kentucky,21017,34,1 +2020-07-04,Bourbon,Kentucky,21017,34,1 +2020-07-05,Bourbon,Kentucky,21017,34,1 +2020-07-06,Bourbon,Kentucky,21017,35,1 +2020-07-07,Bourbon,Kentucky,21017,35,1 +2020-07-08,Bourbon,Kentucky,21017,37,1 +2020-07-09,Bourbon,Kentucky,21017,38,1 +2020-03-29,Boyd,Kentucky,21019,4,0 +2020-03-30,Boyd,Kentucky,21019,4,0 +2020-03-31,Boyd,Kentucky,21019,4,0 +2020-04-01,Boyd,Kentucky,21019,4,0 +2020-04-02,Boyd,Kentucky,21019,5,1 +2020-04-03,Boyd,Kentucky,21019,5,1 +2020-04-04,Boyd,Kentucky,21019,5,1 +2020-04-05,Boyd,Kentucky,21019,20,1 +2020-04-06,Boyd,Kentucky,21019,20,1 +2020-04-07,Boyd,Kentucky,21019,20,2 +2020-04-08,Boyd,Kentucky,21019,20,2 +2020-04-09,Boyd,Kentucky,21019,22,2 +2020-04-10,Boyd,Kentucky,21019,22,2 +2020-04-11,Boyd,Kentucky,21019,26,2 +2020-04-12,Boyd,Kentucky,21019,23,2 +2020-04-13,Boyd,Kentucky,21019,23,2 +2020-04-14,Boyd,Kentucky,21019,24,2 +2020-04-15,Boyd,Kentucky,21019,27,2 +2020-04-16,Boyd,Kentucky,21019,27,2 +2020-04-17,Boyd,Kentucky,21019,29,2 +2020-04-18,Boyd,Kentucky,21019,29,2 +2020-04-19,Boyd,Kentucky,21019,29,2 +2020-04-20,Boyd,Kentucky,21019,29,2 +2020-04-21,Boyd,Kentucky,21019,29,2 +2020-04-22,Boyd,Kentucky,21019,30,3 +2020-04-23,Boyd,Kentucky,21019,30,3 +2020-04-24,Boyd,Kentucky,21019,31,3 +2020-04-25,Boyd,Kentucky,21019,33,3 +2020-04-26,Boyd,Kentucky,21019,33,3 +2020-04-27,Boyd,Kentucky,21019,33,3 +2020-04-28,Boyd,Kentucky,21019,33,3 +2020-04-29,Boyd,Kentucky,21019,33,3 +2020-04-30,Boyd,Kentucky,21019,33,3 +2020-05-01,Boyd,Kentucky,21019,33,3 +2020-05-02,Boyd,Kentucky,21019,33,3 +2020-05-03,Boyd,Kentucky,21019,33,3 +2020-05-04,Boyd,Kentucky,21019,31,3 +2020-05-05,Boyd,Kentucky,21019,31,3 +2020-05-06,Boyd,Kentucky,21019,31,3 +2020-05-07,Boyd,Kentucky,21019,32,3 +2020-05-08,Boyd,Kentucky,21019,32,3 +2020-05-09,Boyd,Kentucky,21019,32,3 +2020-05-10,Boyd,Kentucky,21019,32,3 +2020-05-11,Boyd,Kentucky,21019,33,3 +2020-05-12,Boyd,Kentucky,21019,37,3 +2020-05-13,Boyd,Kentucky,21019,37,3 +2020-05-14,Boyd,Kentucky,21019,38,3 +2020-05-15,Boyd,Kentucky,21019,38,3 +2020-05-16,Boyd,Kentucky,21019,38,3 +2020-05-17,Boyd,Kentucky,21019,38,3 +2020-05-18,Boyd,Kentucky,21019,39,3 +2020-05-19,Boyd,Kentucky,21019,39,3 +2020-05-20,Boyd,Kentucky,21019,39,3 +2020-05-21,Boyd,Kentucky,21019,39,3 +2020-05-22,Boyd,Kentucky,21019,39,3 +2020-05-23,Boyd,Kentucky,21019,39,3 +2020-05-24,Boyd,Kentucky,21019,39,3 +2020-05-25,Boyd,Kentucky,21019,39,3 +2020-05-26,Boyd,Kentucky,21019,39,3 +2020-05-27,Boyd,Kentucky,21019,39,3 +2020-05-28,Boyd,Kentucky,21019,39,3 +2020-05-29,Boyd,Kentucky,21019,39,3 +2020-05-30,Boyd,Kentucky,21019,39,3 +2020-05-31,Boyd,Kentucky,21019,39,3 +2020-06-01,Boyd,Kentucky,21019,40,3 +2020-06-02,Boyd,Kentucky,21019,40,3 +2020-06-03,Boyd,Kentucky,21019,40,3 +2020-06-04,Boyd,Kentucky,21019,41,3 +2020-06-05,Boyd,Kentucky,21019,42,3 +2020-06-06,Boyd,Kentucky,21019,42,3 +2020-06-07,Boyd,Kentucky,21019,42,3 +2020-06-08,Boyd,Kentucky,21019,42,3 +2020-06-09,Boyd,Kentucky,21019,43,3 +2020-06-10,Boyd,Kentucky,21019,43,3 +2020-06-11,Boyd,Kentucky,21019,43,3 +2020-06-12,Boyd,Kentucky,21019,43,3 +2020-06-13,Boyd,Kentucky,21019,44,3 +2020-06-14,Boyd,Kentucky,21019,44,3 +2020-06-15,Boyd,Kentucky,21019,44,3 +2020-06-16,Boyd,Kentucky,21019,44,3 +2020-06-17,Boyd,Kentucky,21019,44,3 +2020-06-18,Boyd,Kentucky,21019,45,3 +2020-06-19,Boyd,Kentucky,21019,47,3 +2020-06-20,Boyd,Kentucky,21019,48,3 +2020-06-21,Boyd,Kentucky,21019,49,3 +2020-06-22,Boyd,Kentucky,21019,49,3 +2020-06-23,Boyd,Kentucky,21019,49,3 +2020-06-24,Boyd,Kentucky,21019,54,3 +2020-06-25,Boyd,Kentucky,21019,55,3 +2020-06-26,Boyd,Kentucky,21019,59,3 +2020-06-27,Boyd,Kentucky,21019,60,3 +2020-06-28,Boyd,Kentucky,21019,61,3 +2020-06-29,Boyd,Kentucky,21019,61,3 +2020-06-30,Boyd,Kentucky,21019,62,3 +2020-07-01,Boyd,Kentucky,21019,62,3 +2020-07-02,Boyd,Kentucky,21019,64,3 +2020-07-03,Boyd,Kentucky,21019,67,3 +2020-07-04,Boyd,Kentucky,21019,67,3 +2020-07-05,Boyd,Kentucky,21019,67,3 +2020-07-06,Boyd,Kentucky,21019,69,3 +2020-07-07,Boyd,Kentucky,21019,71,3 +2020-07-08,Boyd,Kentucky,21019,71,3 +2020-07-09,Boyd,Kentucky,21019,73,3 +2020-03-28,Boyle,Kentucky,21021,1,0 +2020-03-29,Boyle,Kentucky,21021,1,0 +2020-03-30,Boyle,Kentucky,21021,1,0 +2020-03-31,Boyle,Kentucky,21021,1,0 +2020-04-01,Boyle,Kentucky,21021,1,0 +2020-04-02,Boyle,Kentucky,21021,2,0 +2020-04-03,Boyle,Kentucky,21021,2,0 +2020-04-04,Boyle,Kentucky,21021,2,0 +2020-04-05,Boyle,Kentucky,21021,8,0 +2020-04-06,Boyle,Kentucky,21021,8,0 +2020-04-07,Boyle,Kentucky,21021,8,0 +2020-04-08,Boyle,Kentucky,21021,8,0 +2020-04-09,Boyle,Kentucky,21021,13,0 +2020-04-10,Boyle,Kentucky,21021,13,0 +2020-04-11,Boyle,Kentucky,21021,13,0 +2020-04-12,Boyle,Kentucky,21021,13,0 +2020-04-13,Boyle,Kentucky,21021,14,0 +2020-04-14,Boyle,Kentucky,21021,13,0 +2020-04-15,Boyle,Kentucky,21021,13,0 +2020-04-16,Boyle,Kentucky,21021,13,0 +2020-04-17,Boyle,Kentucky,21021,14,0 +2020-04-18,Boyle,Kentucky,21021,14,0 +2020-04-19,Boyle,Kentucky,21021,14,0 +2020-04-20,Boyle,Kentucky,21021,14,0 +2020-04-21,Boyle,Kentucky,21021,14,0 +2020-04-22,Boyle,Kentucky,21021,14,0 +2020-04-23,Boyle,Kentucky,21021,18,0 +2020-04-24,Boyle,Kentucky,21021,18,0 +2020-04-25,Boyle,Kentucky,21021,18,0 +2020-04-26,Boyle,Kentucky,21021,18,0 +2020-04-27,Boyle,Kentucky,21021,18,0 +2020-04-28,Boyle,Kentucky,21021,18,0 +2020-04-29,Boyle,Kentucky,21021,18,0 +2020-04-30,Boyle,Kentucky,21021,18,0 +2020-05-01,Boyle,Kentucky,21021,18,0 +2020-05-02,Boyle,Kentucky,21021,18,0 +2020-05-03,Boyle,Kentucky,21021,18,0 +2020-05-04,Boyle,Kentucky,21021,19,0 +2020-05-05,Boyle,Kentucky,21021,19,0 +2020-05-06,Boyle,Kentucky,21021,19,0 +2020-05-07,Boyle,Kentucky,21021,19,0 +2020-05-08,Boyle,Kentucky,21021,16,0 +2020-05-09,Boyle,Kentucky,21021,17,0 +2020-05-10,Boyle,Kentucky,21021,17,0 +2020-05-11,Boyle,Kentucky,21021,17,0 +2020-05-12,Boyle,Kentucky,21021,17,0 +2020-05-13,Boyle,Kentucky,21021,17,0 +2020-05-14,Boyle,Kentucky,21021,18,0 +2020-05-15,Boyle,Kentucky,21021,18,0 +2020-05-16,Boyle,Kentucky,21021,19,0 +2020-05-17,Boyle,Kentucky,21021,19,0 +2020-05-18,Boyle,Kentucky,21021,19,0 +2020-05-19,Boyle,Kentucky,21021,19,0 +2020-05-20,Boyle,Kentucky,21021,20,0 +2020-05-21,Boyle,Kentucky,21021,20,0 +2020-05-22,Boyle,Kentucky,21021,20,0 +2020-05-23,Boyle,Kentucky,21021,20,0 +2020-05-24,Boyle,Kentucky,21021,20,0 +2020-05-25,Boyle,Kentucky,21021,20,0 +2020-05-26,Boyle,Kentucky,21021,22,0 +2020-05-27,Boyle,Kentucky,21021,23,0 +2020-05-28,Boyle,Kentucky,21021,23,0 +2020-05-29,Boyle,Kentucky,21021,23,0 +2020-05-30,Boyle,Kentucky,21021,25,0 +2020-05-31,Boyle,Kentucky,21021,25,0 +2020-06-01,Boyle,Kentucky,21021,25,0 +2020-06-02,Boyle,Kentucky,21021,26,0 +2020-06-03,Boyle,Kentucky,21021,26,0 +2020-06-04,Boyle,Kentucky,21021,28,0 +2020-06-05,Boyle,Kentucky,21021,28,0 +2020-06-06,Boyle,Kentucky,21021,28,0 +2020-06-07,Boyle,Kentucky,21021,28,0 +2020-06-08,Boyle,Kentucky,21021,28,0 +2020-06-09,Boyle,Kentucky,21021,28,0 +2020-06-10,Boyle,Kentucky,21021,28,0 +2020-06-11,Boyle,Kentucky,21021,28,0 +2020-06-12,Boyle,Kentucky,21021,28,0 +2020-06-13,Boyle,Kentucky,21021,30,0 +2020-06-14,Boyle,Kentucky,21021,30,0 +2020-06-15,Boyle,Kentucky,21021,30,0 +2020-06-16,Boyle,Kentucky,21021,30,0 +2020-06-17,Boyle,Kentucky,21021,30,0 +2020-06-18,Boyle,Kentucky,21021,31,0 +2020-06-19,Boyle,Kentucky,21021,31,0 +2020-06-20,Boyle,Kentucky,21021,31,0 +2020-06-21,Boyle,Kentucky,21021,32,0 +2020-06-22,Boyle,Kentucky,21021,34,0 +2020-06-23,Boyle,Kentucky,21021,36,0 +2020-06-24,Boyle,Kentucky,21021,37,0 +2020-06-25,Boyle,Kentucky,21021,38,0 +2020-06-26,Boyle,Kentucky,21021,38,0 +2020-06-27,Boyle,Kentucky,21021,38,0 +2020-06-28,Boyle,Kentucky,21021,38,0 +2020-06-29,Boyle,Kentucky,21021,38,0 +2020-06-30,Boyle,Kentucky,21021,38,0 +2020-07-01,Boyle,Kentucky,21021,39,0 +2020-07-02,Boyle,Kentucky,21021,40,0 +2020-07-03,Boyle,Kentucky,21021,40,0 +2020-07-04,Boyle,Kentucky,21021,40,0 +2020-07-05,Boyle,Kentucky,21021,40,0 +2020-07-06,Boyle,Kentucky,21021,43,0 +2020-07-07,Boyle,Kentucky,21021,43,0 +2020-07-08,Boyle,Kentucky,21021,43,0 +2020-07-09,Boyle,Kentucky,21021,43,0 +2020-03-28,Bracken,Kentucky,21023,1,0 +2020-03-29,Bracken,Kentucky,21023,1,0 +2020-03-30,Bracken,Kentucky,21023,1,0 +2020-03-31,Bracken,Kentucky,21023,1,0 +2020-04-01,Bracken,Kentucky,21023,1,0 +2020-04-02,Bracken,Kentucky,21023,1,0 +2020-04-03,Bracken,Kentucky,21023,1,0 +2020-04-04,Bracken,Kentucky,21023,1,0 +2020-04-05,Bracken,Kentucky,21023,1,0 +2020-04-06,Bracken,Kentucky,21023,1,0 +2020-04-07,Bracken,Kentucky,21023,1,0 +2020-04-08,Bracken,Kentucky,21023,1,0 +2020-04-09,Bracken,Kentucky,21023,1,0 +2020-04-10,Bracken,Kentucky,21023,3,0 +2020-04-11,Bracken,Kentucky,21023,6,0 +2020-04-12,Bracken,Kentucky,21023,5,0 +2020-04-13,Bracken,Kentucky,21023,5,0 +2020-04-14,Bracken,Kentucky,21023,5,0 +2020-04-15,Bracken,Kentucky,21023,6,0 +2020-04-16,Bracken,Kentucky,21023,7,0 +2020-04-17,Bracken,Kentucky,21023,7,0 +2020-04-18,Bracken,Kentucky,21023,7,0 +2020-04-19,Bracken,Kentucky,21023,7,0 +2020-04-20,Bracken,Kentucky,21023,7,0 +2020-04-21,Bracken,Kentucky,21023,7,0 +2020-04-22,Bracken,Kentucky,21023,7,0 +2020-04-23,Bracken,Kentucky,21023,7,0 +2020-04-24,Bracken,Kentucky,21023,7,0 +2020-04-25,Bracken,Kentucky,21023,7,0 +2020-04-26,Bracken,Kentucky,21023,7,0 +2020-04-27,Bracken,Kentucky,21023,7,0 +2020-04-28,Bracken,Kentucky,21023,7,0 +2020-04-29,Bracken,Kentucky,21023,7,0 +2020-04-30,Bracken,Kentucky,21023,7,0 +2020-05-01,Bracken,Kentucky,21023,9,0 +2020-05-02,Bracken,Kentucky,21023,9,0 +2020-05-03,Bracken,Kentucky,21023,9,0 +2020-05-04,Bracken,Kentucky,21023,9,0 +2020-05-05,Bracken,Kentucky,21023,9,0 +2020-05-06,Bracken,Kentucky,21023,9,0 +2020-05-07,Bracken,Kentucky,21023,10,0 +2020-05-08,Bracken,Kentucky,21023,10,0 +2020-05-09,Bracken,Kentucky,21023,9,0 +2020-05-10,Bracken,Kentucky,21023,9,0 +2020-05-11,Bracken,Kentucky,21023,9,0 +2020-05-12,Bracken,Kentucky,21023,9,0 +2020-05-13,Bracken,Kentucky,21023,9,0 +2020-05-14,Bracken,Kentucky,21023,9,0 +2020-05-15,Bracken,Kentucky,21023,9,0 +2020-05-16,Bracken,Kentucky,21023,9,0 +2020-05-17,Bracken,Kentucky,21023,9,0 +2020-05-18,Bracken,Kentucky,21023,10,0 +2020-05-19,Bracken,Kentucky,21023,10,0 +2020-05-20,Bracken,Kentucky,21023,10,0 +2020-05-21,Bracken,Kentucky,21023,10,0 +2020-05-22,Bracken,Kentucky,21023,11,0 +2020-05-23,Bracken,Kentucky,21023,11,0 +2020-05-24,Bracken,Kentucky,21023,11,0 +2020-05-25,Bracken,Kentucky,21023,11,0 +2020-05-26,Bracken,Kentucky,21023,11,0 +2020-05-27,Bracken,Kentucky,21023,11,0 +2020-05-28,Bracken,Kentucky,21023,11,0 +2020-05-29,Bracken,Kentucky,21023,11,0 +2020-05-30,Bracken,Kentucky,21023,12,0 +2020-05-31,Bracken,Kentucky,21023,12,0 +2020-06-01,Bracken,Kentucky,21023,13,0 +2020-06-02,Bracken,Kentucky,21023,13,0 +2020-06-03,Bracken,Kentucky,21023,13,0 +2020-06-04,Bracken,Kentucky,21023,13,0 +2020-06-05,Bracken,Kentucky,21023,14,0 +2020-06-06,Bracken,Kentucky,21023,14,0 +2020-06-07,Bracken,Kentucky,21023,14,0 +2020-06-08,Bracken,Kentucky,21023,14,0 +2020-06-09,Bracken,Kentucky,21023,14,0 +2020-06-10,Bracken,Kentucky,21023,14,0 +2020-06-11,Bracken,Kentucky,21023,14,0 +2020-06-12,Bracken,Kentucky,21023,14,0 +2020-06-13,Bracken,Kentucky,21023,14,0 +2020-06-14,Bracken,Kentucky,21023,14,0 +2020-06-15,Bracken,Kentucky,21023,14,0 +2020-06-16,Bracken,Kentucky,21023,14,0 +2020-06-17,Bracken,Kentucky,21023,14,0 +2020-06-18,Bracken,Kentucky,21023,15,0 +2020-06-19,Bracken,Kentucky,21023,15,0 +2020-06-20,Bracken,Kentucky,21023,16,0 +2020-06-21,Bracken,Kentucky,21023,16,0 +2020-06-22,Bracken,Kentucky,21023,16,0 +2020-06-23,Bracken,Kentucky,21023,17,0 +2020-06-24,Bracken,Kentucky,21023,17,0 +2020-06-25,Bracken,Kentucky,21023,17,0 +2020-06-26,Bracken,Kentucky,21023,17,0 +2020-06-27,Bracken,Kentucky,21023,17,0 +2020-06-28,Bracken,Kentucky,21023,17,0 +2020-06-29,Bracken,Kentucky,21023,17,0 +2020-06-30,Bracken,Kentucky,21023,17,0 +2020-07-01,Bracken,Kentucky,21023,17,0 +2020-07-02,Bracken,Kentucky,21023,17,0 +2020-07-03,Bracken,Kentucky,21023,17,0 +2020-07-04,Bracken,Kentucky,21023,17,0 +2020-07-05,Bracken,Kentucky,21023,17,0 +2020-07-06,Bracken,Kentucky,21023,17,0 +2020-07-07,Bracken,Kentucky,21023,17,0 +2020-07-08,Bracken,Kentucky,21023,17,0 +2020-07-09,Bracken,Kentucky,21023,17,0 +2020-03-22,Breathitt,Kentucky,21025,1,0 +2020-03-23,Breathitt,Kentucky,21025,2,0 +2020-03-24,Breathitt,Kentucky,21025,2,0 +2020-03-25,Breathitt,Kentucky,21025,2,0 +2020-03-26,Breathitt,Kentucky,21025,2,0 +2020-03-27,Breathitt,Kentucky,21025,2,0 +2020-03-28,Breathitt,Kentucky,21025,2,0 +2020-03-29,Breathitt,Kentucky,21025,2,0 +2020-03-30,Breathitt,Kentucky,21025,2,0 +2020-03-31,Breathitt,Kentucky,21025,2,0 +2020-04-01,Breathitt,Kentucky,21025,3,0 +2020-04-02,Breathitt,Kentucky,21025,3,0 +2020-04-03,Breathitt,Kentucky,21025,3,0 +2020-04-04,Breathitt,Kentucky,21025,3,0 +2020-04-05,Breathitt,Kentucky,21025,2,0 +2020-04-06,Breathitt,Kentucky,21025,2,0 +2020-04-07,Breathitt,Kentucky,21025,2,0 +2020-04-08,Breathitt,Kentucky,21025,2,0 +2020-04-09,Breathitt,Kentucky,21025,2,0 +2020-04-10,Breathitt,Kentucky,21025,2,0 +2020-04-11,Breathitt,Kentucky,21025,2,0 +2020-04-12,Breathitt,Kentucky,21025,3,0 +2020-04-13,Breathitt,Kentucky,21025,3,0 +2020-04-14,Breathitt,Kentucky,21025,3,0 +2020-04-15,Breathitt,Kentucky,21025,3,0 +2020-04-16,Breathitt,Kentucky,21025,3,0 +2020-04-17,Breathitt,Kentucky,21025,3,0 +2020-04-18,Breathitt,Kentucky,21025,3,0 +2020-04-19,Breathitt,Kentucky,21025,3,0 +2020-04-20,Breathitt,Kentucky,21025,3,0 +2020-04-21,Breathitt,Kentucky,21025,3,0 +2020-04-22,Breathitt,Kentucky,21025,3,0 +2020-04-23,Breathitt,Kentucky,21025,3,0 +2020-04-24,Breathitt,Kentucky,21025,3,0 +2020-04-25,Breathitt,Kentucky,21025,3,0 +2020-04-26,Breathitt,Kentucky,21025,3,0 +2020-04-27,Breathitt,Kentucky,21025,3,0 +2020-04-28,Breathitt,Kentucky,21025,3,0 +2020-04-29,Breathitt,Kentucky,21025,3,0 +2020-04-30,Breathitt,Kentucky,21025,3,0 +2020-05-01,Breathitt,Kentucky,21025,3,0 +2020-05-02,Breathitt,Kentucky,21025,3,0 +2020-05-03,Breathitt,Kentucky,21025,3,0 +2020-05-04,Breathitt,Kentucky,21025,3,0 +2020-05-05,Breathitt,Kentucky,21025,3,0 +2020-05-06,Breathitt,Kentucky,21025,3,0 +2020-05-07,Breathitt,Kentucky,21025,3,0 +2020-05-08,Breathitt,Kentucky,21025,2,0 +2020-05-09,Breathitt,Kentucky,21025,2,0 +2020-05-10,Breathitt,Kentucky,21025,2,0 +2020-05-11,Breathitt,Kentucky,21025,2,0 +2020-05-12,Breathitt,Kentucky,21025,2,0 +2020-05-13,Breathitt,Kentucky,21025,2,0 +2020-05-14,Breathitt,Kentucky,21025,2,0 +2020-05-15,Breathitt,Kentucky,21025,2,0 +2020-05-16,Breathitt,Kentucky,21025,3,0 +2020-05-17,Breathitt,Kentucky,21025,3,0 +2020-05-18,Breathitt,Kentucky,21025,3,0 +2020-05-19,Breathitt,Kentucky,21025,3,0 +2020-05-20,Breathitt,Kentucky,21025,3,0 +2020-05-21,Breathitt,Kentucky,21025,3,0 +2020-05-22,Breathitt,Kentucky,21025,3,0 +2020-05-23,Breathitt,Kentucky,21025,3,0 +2020-05-24,Breathitt,Kentucky,21025,3,0 +2020-05-25,Breathitt,Kentucky,21025,3,0 +2020-05-26,Breathitt,Kentucky,21025,3,0 +2020-05-27,Breathitt,Kentucky,21025,3,0 +2020-05-28,Breathitt,Kentucky,21025,3,0 +2020-05-29,Breathitt,Kentucky,21025,3,0 +2020-05-30,Breathitt,Kentucky,21025,3,0 +2020-05-31,Breathitt,Kentucky,21025,3,0 +2020-06-01,Breathitt,Kentucky,21025,3,0 +2020-06-02,Breathitt,Kentucky,21025,3,0 +2020-06-03,Breathitt,Kentucky,21025,3,0 +2020-06-04,Breathitt,Kentucky,21025,3,0 +2020-06-05,Breathitt,Kentucky,21025,3,0 +2020-06-06,Breathitt,Kentucky,21025,3,0 +2020-06-07,Breathitt,Kentucky,21025,3,0 +2020-06-08,Breathitt,Kentucky,21025,3,0 +2020-06-09,Breathitt,Kentucky,21025,3,0 +2020-06-10,Breathitt,Kentucky,21025,3,0 +2020-06-11,Breathitt,Kentucky,21025,3,0 +2020-06-12,Breathitt,Kentucky,21025,3,0 +2020-06-13,Breathitt,Kentucky,21025,3,0 +2020-06-14,Breathitt,Kentucky,21025,3,0 +2020-06-15,Breathitt,Kentucky,21025,4,0 +2020-06-16,Breathitt,Kentucky,21025,4,0 +2020-06-17,Breathitt,Kentucky,21025,4,0 +2020-06-18,Breathitt,Kentucky,21025,4,0 +2020-06-19,Breathitt,Kentucky,21025,4,0 +2020-06-20,Breathitt,Kentucky,21025,4,0 +2020-06-21,Breathitt,Kentucky,21025,4,0 +2020-06-22,Breathitt,Kentucky,21025,4,0 +2020-06-23,Breathitt,Kentucky,21025,4,0 +2020-06-24,Breathitt,Kentucky,21025,6,0 +2020-06-25,Breathitt,Kentucky,21025,7,0 +2020-06-26,Breathitt,Kentucky,21025,8,0 +2020-06-27,Breathitt,Kentucky,21025,8,0 +2020-06-28,Breathitt,Kentucky,21025,8,0 +2020-06-29,Breathitt,Kentucky,21025,8,0 +2020-06-30,Breathitt,Kentucky,21025,8,0 +2020-07-01,Breathitt,Kentucky,21025,8,0 +2020-07-02,Breathitt,Kentucky,21025,8,0 +2020-07-03,Breathitt,Kentucky,21025,9,0 +2020-07-04,Breathitt,Kentucky,21025,9,0 +2020-07-05,Breathitt,Kentucky,21025,9,0 +2020-07-06,Breathitt,Kentucky,21025,10,0 +2020-07-07,Breathitt,Kentucky,21025,12,0 +2020-07-08,Breathitt,Kentucky,21025,12,0 +2020-07-09,Breathitt,Kentucky,21025,12,0 +2020-03-28,Breckinridge,Kentucky,21027,2,0 +2020-03-29,Breckinridge,Kentucky,21027,2,0 +2020-03-30,Breckinridge,Kentucky,21027,2,0 +2020-03-31,Breckinridge,Kentucky,21027,2,0 +2020-04-01,Breckinridge,Kentucky,21027,2,0 +2020-04-02,Breckinridge,Kentucky,21027,2,0 +2020-04-03,Breckinridge,Kentucky,21027,2,0 +2020-04-04,Breckinridge,Kentucky,21027,2,0 +2020-04-05,Breckinridge,Kentucky,21027,2,0 +2020-04-06,Breckinridge,Kentucky,21027,2,0 +2020-04-07,Breckinridge,Kentucky,21027,3,0 +2020-04-08,Breckinridge,Kentucky,21027,3,0 +2020-04-09,Breckinridge,Kentucky,21027,3,0 +2020-04-10,Breckinridge,Kentucky,21027,3,0 +2020-04-11,Breckinridge,Kentucky,21027,3,0 +2020-04-12,Breckinridge,Kentucky,21027,3,0 +2020-04-13,Breckinridge,Kentucky,21027,3,0 +2020-04-14,Breckinridge,Kentucky,21027,3,0 +2020-04-15,Breckinridge,Kentucky,21027,4,0 +2020-04-16,Breckinridge,Kentucky,21027,4,0 +2020-04-17,Breckinridge,Kentucky,21027,5,0 +2020-04-18,Breckinridge,Kentucky,21027,6,0 +2020-04-19,Breckinridge,Kentucky,21027,6,0 +2020-04-20,Breckinridge,Kentucky,21027,6,0 +2020-04-21,Breckinridge,Kentucky,21027,6,0 +2020-04-22,Breckinridge,Kentucky,21027,6,0 +2020-04-23,Breckinridge,Kentucky,21027,6,0 +2020-04-24,Breckinridge,Kentucky,21027,7,0 +2020-04-25,Breckinridge,Kentucky,21027,7,0 +2020-04-26,Breckinridge,Kentucky,21027,8,0 +2020-04-27,Breckinridge,Kentucky,21027,8,0 +2020-04-28,Breckinridge,Kentucky,21027,8,0 +2020-04-29,Breckinridge,Kentucky,21027,9,0 +2020-04-30,Breckinridge,Kentucky,21027,9,0 +2020-05-01,Breckinridge,Kentucky,21027,9,0 +2020-05-02,Breckinridge,Kentucky,21027,9,0 +2020-05-03,Breckinridge,Kentucky,21027,9,0 +2020-05-04,Breckinridge,Kentucky,21027,9,0 +2020-05-05,Breckinridge,Kentucky,21027,9,0 +2020-05-06,Breckinridge,Kentucky,21027,11,0 +2020-05-07,Breckinridge,Kentucky,21027,11,0 +2020-05-08,Breckinridge,Kentucky,21027,13,0 +2020-05-09,Breckinridge,Kentucky,21027,13,0 +2020-05-10,Breckinridge,Kentucky,21027,13,0 +2020-05-11,Breckinridge,Kentucky,21027,13,0 +2020-05-12,Breckinridge,Kentucky,21027,13,0 +2020-05-13,Breckinridge,Kentucky,21027,13,0 +2020-05-14,Breckinridge,Kentucky,21027,14,0 +2020-05-15,Breckinridge,Kentucky,21027,14,0 +2020-05-16,Breckinridge,Kentucky,21027,14,0 +2020-05-17,Breckinridge,Kentucky,21027,14,0 +2020-05-18,Breckinridge,Kentucky,21027,14,0 +2020-05-19,Breckinridge,Kentucky,21027,15,1 +2020-05-20,Breckinridge,Kentucky,21027,17,2 +2020-05-21,Breckinridge,Kentucky,21027,16,2 +2020-05-22,Breckinridge,Kentucky,21027,16,2 +2020-05-23,Breckinridge,Kentucky,21027,16,2 +2020-05-24,Breckinridge,Kentucky,21027,16,2 +2020-05-25,Breckinridge,Kentucky,21027,16,2 +2020-05-26,Breckinridge,Kentucky,21027,16,2 +2020-05-27,Breckinridge,Kentucky,21027,17,2 +2020-05-28,Breckinridge,Kentucky,21027,17,2 +2020-05-29,Breckinridge,Kentucky,21027,17,2 +2020-05-30,Breckinridge,Kentucky,21027,17,2 +2020-05-31,Breckinridge,Kentucky,21027,17,2 +2020-06-01,Breckinridge,Kentucky,21027,17,2 +2020-06-02,Breckinridge,Kentucky,21027,17,2 +2020-06-03,Breckinridge,Kentucky,21027,17,2 +2020-06-04,Breckinridge,Kentucky,21027,17,2 +2020-06-05,Breckinridge,Kentucky,21027,19,2 +2020-06-06,Breckinridge,Kentucky,21027,19,2 +2020-06-07,Breckinridge,Kentucky,21027,19,2 +2020-06-08,Breckinridge,Kentucky,21027,19,2 +2020-06-09,Breckinridge,Kentucky,21027,19,2 +2020-06-10,Breckinridge,Kentucky,21027,19,2 +2020-06-11,Breckinridge,Kentucky,21027,20,2 +2020-06-12,Breckinridge,Kentucky,21027,21,2 +2020-06-13,Breckinridge,Kentucky,21027,23,2 +2020-06-14,Breckinridge,Kentucky,21027,23,2 +2020-06-15,Breckinridge,Kentucky,21027,23,2 +2020-06-16,Breckinridge,Kentucky,21027,23,2 +2020-06-17,Breckinridge,Kentucky,21027,23,2 +2020-06-18,Breckinridge,Kentucky,21027,23,2 +2020-06-19,Breckinridge,Kentucky,21027,23,2 +2020-06-20,Breckinridge,Kentucky,21027,24,2 +2020-06-21,Breckinridge,Kentucky,21027,24,2 +2020-06-22,Breckinridge,Kentucky,21027,24,2 +2020-06-23,Breckinridge,Kentucky,21027,24,2 +2020-06-24,Breckinridge,Kentucky,21027,24,2 +2020-06-25,Breckinridge,Kentucky,21027,24,2 +2020-06-26,Breckinridge,Kentucky,21027,24,2 +2020-06-27,Breckinridge,Kentucky,21027,24,2 +2020-06-28,Breckinridge,Kentucky,21027,24,2 +2020-06-29,Breckinridge,Kentucky,21027,24,2 +2020-06-30,Breckinridge,Kentucky,21027,24,2 +2020-07-01,Breckinridge,Kentucky,21027,24,2 +2020-07-02,Breckinridge,Kentucky,21027,24,2 +2020-07-03,Breckinridge,Kentucky,21027,25,2 +2020-07-04,Breckinridge,Kentucky,21027,25,2 +2020-07-05,Breckinridge,Kentucky,21027,25,2 +2020-07-06,Breckinridge,Kentucky,21027,28,2 +2020-07-07,Breckinridge,Kentucky,21027,28,2 +2020-07-08,Breckinridge,Kentucky,21027,28,2 +2020-07-09,Breckinridge,Kentucky,21027,28,2 +2020-03-27,Bullitt,Kentucky,21029,2,0 +2020-03-28,Bullitt,Kentucky,21029,2,0 +2020-03-29,Bullitt,Kentucky,21029,2,0 +2020-03-30,Bullitt,Kentucky,21029,5,0 +2020-03-31,Bullitt,Kentucky,21029,6,1 +2020-04-01,Bullitt,Kentucky,21029,6,1 +2020-04-02,Bullitt,Kentucky,21029,6,1 +2020-04-03,Bullitt,Kentucky,21029,6,1 +2020-04-04,Bullitt,Kentucky,21029,7,2 +2020-04-05,Bullitt,Kentucky,21029,12,2 +2020-04-06,Bullitt,Kentucky,21029,12,2 +2020-04-07,Bullitt,Kentucky,21029,13,2 +2020-04-08,Bullitt,Kentucky,21029,14,2 +2020-04-09,Bullitt,Kentucky,21029,21,2 +2020-04-10,Bullitt,Kentucky,21029,21,2 +2020-04-11,Bullitt,Kentucky,21029,27,2 +2020-04-12,Bullitt,Kentucky,21029,28,2 +2020-04-13,Bullitt,Kentucky,21029,34,2 +2020-04-14,Bullitt,Kentucky,21029,34,2 +2020-04-15,Bullitt,Kentucky,21029,32,2 +2020-04-16,Bullitt,Kentucky,21029,32,2 +2020-04-17,Bullitt,Kentucky,21029,32,2 +2020-04-18,Bullitt,Kentucky,21029,33,2 +2020-04-19,Bullitt,Kentucky,21029,35,2 +2020-04-20,Bullitt,Kentucky,21029,35,2 +2020-04-21,Bullitt,Kentucky,21029,39,2 +2020-04-22,Bullitt,Kentucky,21029,39,2 +2020-04-23,Bullitt,Kentucky,21029,40,2 +2020-04-24,Bullitt,Kentucky,21029,40,2 +2020-04-25,Bullitt,Kentucky,21029,43,2 +2020-04-26,Bullitt,Kentucky,21029,48,2 +2020-04-27,Bullitt,Kentucky,21029,50,2 +2020-04-28,Bullitt,Kentucky,21029,51,2 +2020-04-29,Bullitt,Kentucky,21029,51,2 +2020-04-30,Bullitt,Kentucky,21029,53,2 +2020-05-01,Bullitt,Kentucky,21029,55,2 +2020-05-02,Bullitt,Kentucky,21029,57,2 +2020-05-03,Bullitt,Kentucky,21029,57,2 +2020-05-04,Bullitt,Kentucky,21029,69,2 +2020-05-05,Bullitt,Kentucky,21029,69,2 +2020-05-06,Bullitt,Kentucky,21029,72,2 +2020-05-07,Bullitt,Kentucky,21029,74,2 +2020-05-08,Bullitt,Kentucky,21029,79,3 +2020-05-09,Bullitt,Kentucky,21029,82,3 +2020-05-10,Bullitt,Kentucky,21029,82,3 +2020-05-11,Bullitt,Kentucky,21029,83,4 +2020-05-12,Bullitt,Kentucky,21029,86,4 +2020-05-13,Bullitt,Kentucky,21029,86,4 +2020-05-14,Bullitt,Kentucky,21029,89,4 +2020-05-15,Bullitt,Kentucky,21029,92,4 +2020-05-16,Bullitt,Kentucky,21029,93,4 +2020-05-17,Bullitt,Kentucky,21029,93,4 +2020-05-18,Bullitt,Kentucky,21029,98,4 +2020-05-19,Bullitt,Kentucky,21029,99,4 +2020-05-20,Bullitt,Kentucky,21029,101,4 +2020-05-21,Bullitt,Kentucky,21029,101,4 +2020-05-22,Bullitt,Kentucky,21029,101,4 +2020-05-23,Bullitt,Kentucky,21029,104,4 +2020-05-24,Bullitt,Kentucky,21029,104,4 +2020-05-25,Bullitt,Kentucky,21029,104,4 +2020-05-26,Bullitt,Kentucky,21029,105,4 +2020-05-27,Bullitt,Kentucky,21029,109,4 +2020-05-28,Bullitt,Kentucky,21029,109,4 +2020-05-29,Bullitt,Kentucky,21029,111,4 +2020-05-30,Bullitt,Kentucky,21029,111,4 +2020-05-31,Bullitt,Kentucky,21029,114,4 +2020-06-01,Bullitt,Kentucky,21029,115,4 +2020-06-02,Bullitt,Kentucky,21029,119,4 +2020-06-03,Bullitt,Kentucky,21029,119,4 +2020-06-04,Bullitt,Kentucky,21029,119,4 +2020-06-05,Bullitt,Kentucky,21029,119,4 +2020-06-06,Bullitt,Kentucky,21029,121,4 +2020-06-07,Bullitt,Kentucky,21029,121,4 +2020-06-08,Bullitt,Kentucky,21029,123,4 +2020-06-09,Bullitt,Kentucky,21029,124,4 +2020-06-10,Bullitt,Kentucky,21029,127,4 +2020-06-11,Bullitt,Kentucky,21029,127,4 +2020-06-12,Bullitt,Kentucky,21029,128,4 +2020-06-13,Bullitt,Kentucky,21029,131,4 +2020-06-14,Bullitt,Kentucky,21029,131,4 +2020-06-15,Bullitt,Kentucky,21029,135,4 +2020-06-16,Bullitt,Kentucky,21029,135,4 +2020-06-17,Bullitt,Kentucky,21029,136,4 +2020-06-18,Bullitt,Kentucky,21029,138,5 +2020-06-19,Bullitt,Kentucky,21029,141,4 +2020-06-20,Bullitt,Kentucky,21029,144,4 +2020-06-21,Bullitt,Kentucky,21029,144,4 +2020-06-22,Bullitt,Kentucky,21029,145,4 +2020-06-23,Bullitt,Kentucky,21029,148,4 +2020-06-24,Bullitt,Kentucky,21029,148,4 +2020-06-25,Bullitt,Kentucky,21029,148,4 +2020-06-26,Bullitt,Kentucky,21029,149,4 +2020-06-27,Bullitt,Kentucky,21029,148,4 +2020-06-28,Bullitt,Kentucky,21029,149,4 +2020-06-29,Bullitt,Kentucky,21029,149,4 +2020-06-30,Bullitt,Kentucky,21029,150,4 +2020-07-01,Bullitt,Kentucky,21029,151,4 +2020-07-02,Bullitt,Kentucky,21029,152,4 +2020-07-03,Bullitt,Kentucky,21029,154,4 +2020-07-04,Bullitt,Kentucky,21029,154,4 +2020-07-05,Bullitt,Kentucky,21029,154,4 +2020-07-06,Bullitt,Kentucky,21029,159,4 +2020-07-07,Bullitt,Kentucky,21029,165,4 +2020-07-08,Bullitt,Kentucky,21029,166,4 +2020-07-09,Bullitt,Kentucky,21029,166,4 +2020-03-28,Butler,Kentucky,21031,1,0 +2020-03-29,Butler,Kentucky,21031,1,0 +2020-03-30,Butler,Kentucky,21031,1,0 +2020-03-31,Butler,Kentucky,21031,1,0 +2020-04-01,Butler,Kentucky,21031,1,0 +2020-04-02,Butler,Kentucky,21031,1,0 +2020-04-03,Butler,Kentucky,21031,1,0 +2020-04-04,Butler,Kentucky,21031,1,0 +2020-04-05,Butler,Kentucky,21031,1,0 +2020-04-06,Butler,Kentucky,21031,1,0 +2020-04-07,Butler,Kentucky,21031,2,0 +2020-04-08,Butler,Kentucky,21031,2,0 +2020-04-09,Butler,Kentucky,21031,2,0 +2020-04-10,Butler,Kentucky,21031,8,1 +2020-04-11,Butler,Kentucky,21031,11,1 +2020-04-12,Butler,Kentucky,21031,11,1 +2020-04-13,Butler,Kentucky,21031,22,1 +2020-04-14,Butler,Kentucky,21031,45,1 +2020-04-15,Butler,Kentucky,21031,50,3 +2020-04-16,Butler,Kentucky,21031,52,3 +2020-04-17,Butler,Kentucky,21031,52,3 +2020-04-18,Butler,Kentucky,21031,62,3 +2020-04-19,Butler,Kentucky,21031,73,3 +2020-04-20,Butler,Kentucky,21031,73,3 +2020-04-21,Butler,Kentucky,21031,74,3 +2020-04-22,Butler,Kentucky,21031,91,3 +2020-04-23,Butler,Kentucky,21031,92,3 +2020-04-24,Butler,Kentucky,21031,98,3 +2020-04-25,Butler,Kentucky,21031,103,3 +2020-04-26,Butler,Kentucky,21031,104,3 +2020-04-27,Butler,Kentucky,21031,104,3 +2020-04-28,Butler,Kentucky,21031,113,3 +2020-04-29,Butler,Kentucky,21031,114,3 +2020-04-30,Butler,Kentucky,21031,116,3 +2020-05-01,Butler,Kentucky,21031,141,4 +2020-05-02,Butler,Kentucky,21031,141,5 +2020-05-03,Butler,Kentucky,21031,143,5 +2020-05-04,Butler,Kentucky,21031,167,5 +2020-05-05,Butler,Kentucky,21031,181,5 +2020-05-06,Butler,Kentucky,21031,183,5 +2020-05-07,Butler,Kentucky,21031,188,6 +2020-05-08,Butler,Kentucky,21031,192,6 +2020-05-09,Butler,Kentucky,21031,195,6 +2020-05-10,Butler,Kentucky,21031,195,6 +2020-05-11,Butler,Kentucky,21031,201,6 +2020-05-12,Butler,Kentucky,21031,200,6 +2020-05-13,Butler,Kentucky,21031,200,6 +2020-05-14,Butler,Kentucky,21031,205,6 +2020-05-15,Butler,Kentucky,21031,212,6 +2020-05-16,Butler,Kentucky,21031,217,6 +2020-05-17,Butler,Kentucky,21031,217,6 +2020-05-18,Butler,Kentucky,21031,217,6 +2020-05-19,Butler,Kentucky,21031,217,6 +2020-05-20,Butler,Kentucky,21031,217,6 +2020-05-21,Butler,Kentucky,21031,218,6 +2020-05-22,Butler,Kentucky,21031,219,6 +2020-05-23,Butler,Kentucky,21031,218,6 +2020-05-24,Butler,Kentucky,21031,218,6 +2020-05-25,Butler,Kentucky,21031,218,6 +2020-05-26,Butler,Kentucky,21031,224,6 +2020-05-27,Butler,Kentucky,21031,226,6 +2020-05-28,Butler,Kentucky,21031,227,7 +2020-05-29,Butler,Kentucky,21031,228,13 +2020-05-30,Butler,Kentucky,21031,228,13 +2020-05-31,Butler,Kentucky,21031,228,13 +2020-06-01,Butler,Kentucky,21031,232,13 +2020-06-02,Butler,Kentucky,21031,232,13 +2020-06-03,Butler,Kentucky,21031,235,13 +2020-06-04,Butler,Kentucky,21031,235,13 +2020-06-05,Butler,Kentucky,21031,236,13 +2020-06-06,Butler,Kentucky,21031,237,13 +2020-06-07,Butler,Kentucky,21031,237,13 +2020-06-08,Butler,Kentucky,21031,238,13 +2020-06-09,Butler,Kentucky,21031,239,13 +2020-06-10,Butler,Kentucky,21031,240,13 +2020-06-11,Butler,Kentucky,21031,240,13 +2020-06-12,Butler,Kentucky,21031,243,13 +2020-06-13,Butler,Kentucky,21031,243,13 +2020-06-14,Butler,Kentucky,21031,243,13 +2020-06-15,Butler,Kentucky,21031,244,13 +2020-06-16,Butler,Kentucky,21031,244,13 +2020-06-17,Butler,Kentucky,21031,246,13 +2020-06-18,Butler,Kentucky,21031,246,13 +2020-06-19,Butler,Kentucky,21031,247,13 +2020-06-20,Butler,Kentucky,21031,246,13 +2020-06-21,Butler,Kentucky,21031,246,14 +2020-06-22,Butler,Kentucky,21031,246,14 +2020-06-23,Butler,Kentucky,21031,246,14 +2020-06-24,Butler,Kentucky,21031,247,14 +2020-06-25,Butler,Kentucky,21031,247,14 +2020-06-26,Butler,Kentucky,21031,247,14 +2020-06-27,Butler,Kentucky,21031,252,14 +2020-06-28,Butler,Kentucky,21031,253,14 +2020-06-29,Butler,Kentucky,21031,255,14 +2020-06-30,Butler,Kentucky,21031,256,14 +2020-07-01,Butler,Kentucky,21031,257,14 +2020-07-02,Butler,Kentucky,21031,256,14 +2020-07-03,Butler,Kentucky,21031,257,14 +2020-07-04,Butler,Kentucky,21031,257,14 +2020-07-05,Butler,Kentucky,21031,257,14 +2020-07-06,Butler,Kentucky,21031,258,14 +2020-07-07,Butler,Kentucky,21031,260,14 +2020-07-08,Butler,Kentucky,21031,262,14 +2020-07-09,Butler,Kentucky,21031,262,14 +2020-04-04,Caldwell,Kentucky,21033,1,0 +2020-04-05,Caldwell,Kentucky,21033,3,0 +2020-04-06,Caldwell,Kentucky,21033,3,0 +2020-04-07,Caldwell,Kentucky,21033,4,0 +2020-04-08,Caldwell,Kentucky,21033,5,0 +2020-04-09,Caldwell,Kentucky,21033,6,0 +2020-04-10,Caldwell,Kentucky,21033,6,0 +2020-04-11,Caldwell,Kentucky,21033,10,0 +2020-04-12,Caldwell,Kentucky,21033,9,0 +2020-04-13,Caldwell,Kentucky,21033,9,0 +2020-04-14,Caldwell,Kentucky,21033,10,0 +2020-04-15,Caldwell,Kentucky,21033,10,0 +2020-04-16,Caldwell,Kentucky,21033,10,0 +2020-04-17,Caldwell,Kentucky,21033,11,0 +2020-04-18,Caldwell,Kentucky,21033,11,0 +2020-04-19,Caldwell,Kentucky,21033,11,0 +2020-04-20,Caldwell,Kentucky,21033,11,0 +2020-04-21,Caldwell,Kentucky,21033,12,0 +2020-04-22,Caldwell,Kentucky,21033,12,0 +2020-04-23,Caldwell,Kentucky,21033,12,0 +2020-04-24,Caldwell,Kentucky,21033,13,0 +2020-04-25,Caldwell,Kentucky,21033,13,0 +2020-04-26,Caldwell,Kentucky,21033,13,0 +2020-04-27,Caldwell,Kentucky,21033,13,0 +2020-04-28,Caldwell,Kentucky,21033,13,0 +2020-04-29,Caldwell,Kentucky,21033,13,0 +2020-04-30,Caldwell,Kentucky,21033,13,0 +2020-05-01,Caldwell,Kentucky,21033,13,0 +2020-05-02,Caldwell,Kentucky,21033,13,0 +2020-05-03,Caldwell,Kentucky,21033,13,0 +2020-05-04,Caldwell,Kentucky,21033,12,0 +2020-05-05,Caldwell,Kentucky,21033,12,0 +2020-05-06,Caldwell,Kentucky,21033,12,0 +2020-05-07,Caldwell,Kentucky,21033,12,0 +2020-05-08,Caldwell,Kentucky,21033,12,0 +2020-05-09,Caldwell,Kentucky,21033,12,0 +2020-05-10,Caldwell,Kentucky,21033,12,0 +2020-05-11,Caldwell,Kentucky,21033,12,0 +2020-05-12,Caldwell,Kentucky,21033,12,0 +2020-05-13,Caldwell,Kentucky,21033,12,0 +2020-05-14,Caldwell,Kentucky,21033,12,0 +2020-05-15,Caldwell,Kentucky,21033,12,0 +2020-05-16,Caldwell,Kentucky,21033,12,0 +2020-05-17,Caldwell,Kentucky,21033,12,0 +2020-05-18,Caldwell,Kentucky,21033,12,0 +2020-05-19,Caldwell,Kentucky,21033,12,0 +2020-05-20,Caldwell,Kentucky,21033,12,0 +2020-05-21,Caldwell,Kentucky,21033,12,0 +2020-05-22,Caldwell,Kentucky,21033,12,0 +2020-05-23,Caldwell,Kentucky,21033,12,0 +2020-05-24,Caldwell,Kentucky,21033,12,0 +2020-05-25,Caldwell,Kentucky,21033,12,0 +2020-05-26,Caldwell,Kentucky,21033,12,0 +2020-05-27,Caldwell,Kentucky,21033,12,0 +2020-05-28,Caldwell,Kentucky,21033,12,0 +2020-05-29,Caldwell,Kentucky,21033,12,0 +2020-05-30,Caldwell,Kentucky,21033,12,0 +2020-05-31,Caldwell,Kentucky,21033,12,0 +2020-06-01,Caldwell,Kentucky,21033,12,0 +2020-06-02,Caldwell,Kentucky,21033,12,0 +2020-06-03,Caldwell,Kentucky,21033,12,0 +2020-06-04,Caldwell,Kentucky,21033,12,0 +2020-06-05,Caldwell,Kentucky,21033,12,0 +2020-06-06,Caldwell,Kentucky,21033,12,0 +2020-06-07,Caldwell,Kentucky,21033,12,0 +2020-06-08,Caldwell,Kentucky,21033,12,0 +2020-06-09,Caldwell,Kentucky,21033,12,0 +2020-06-10,Caldwell,Kentucky,21033,12,0 +2020-06-11,Caldwell,Kentucky,21033,12,0 +2020-06-12,Caldwell,Kentucky,21033,12,0 +2020-06-13,Caldwell,Kentucky,21033,12,0 +2020-06-14,Caldwell,Kentucky,21033,12,0 +2020-06-15,Caldwell,Kentucky,21033,12,0 +2020-06-16,Caldwell,Kentucky,21033,12,0 +2020-06-17,Caldwell,Kentucky,21033,12,0 +2020-06-18,Caldwell,Kentucky,21033,12,0 +2020-06-19,Caldwell,Kentucky,21033,12,0 +2020-06-20,Caldwell,Kentucky,21033,12,0 +2020-06-21,Caldwell,Kentucky,21033,13,0 +2020-06-22,Caldwell,Kentucky,21033,13,0 +2020-06-23,Caldwell,Kentucky,21033,13,0 +2020-06-24,Caldwell,Kentucky,21033,13,0 +2020-06-25,Caldwell,Kentucky,21033,13,0 +2020-06-26,Caldwell,Kentucky,21033,13,0 +2020-06-27,Caldwell,Kentucky,21033,13,0 +2020-06-28,Caldwell,Kentucky,21033,13,0 +2020-06-29,Caldwell,Kentucky,21033,13,0 +2020-06-30,Caldwell,Kentucky,21033,15,0 +2020-07-01,Caldwell,Kentucky,21033,15,0 +2020-07-02,Caldwell,Kentucky,21033,15,0 +2020-07-03,Caldwell,Kentucky,21033,15,0 +2020-07-04,Caldwell,Kentucky,21033,15,0 +2020-07-05,Caldwell,Kentucky,21033,15,0 +2020-07-06,Caldwell,Kentucky,21033,17,0 +2020-07-07,Caldwell,Kentucky,21033,17,0 +2020-07-08,Caldwell,Kentucky,21033,21,0 +2020-07-09,Caldwell,Kentucky,21033,29,0 +2020-03-20,Calloway,Kentucky,21035,1,0 +2020-03-21,Calloway,Kentucky,21035,1,0 +2020-03-22,Calloway,Kentucky,21035,1,0 +2020-03-23,Calloway,Kentucky,21035,1,0 +2020-03-24,Calloway,Kentucky,21035,1,0 +2020-03-25,Calloway,Kentucky,21035,1,0 +2020-03-26,Calloway,Kentucky,21035,2,0 +2020-03-27,Calloway,Kentucky,21035,2,0 +2020-03-28,Calloway,Kentucky,21035,2,0 +2020-03-29,Calloway,Kentucky,21035,3,0 +2020-03-30,Calloway,Kentucky,21035,3,0 +2020-03-31,Calloway,Kentucky,21035,3,0 +2020-04-01,Calloway,Kentucky,21035,4,0 +2020-04-02,Calloway,Kentucky,21035,5,0 +2020-04-03,Calloway,Kentucky,21035,5,0 +2020-04-04,Calloway,Kentucky,21035,5,0 +2020-04-05,Calloway,Kentucky,21035,5,0 +2020-04-06,Calloway,Kentucky,21035,5,0 +2020-04-07,Calloway,Kentucky,21035,8,1 +2020-04-08,Calloway,Kentucky,21035,8,1 +2020-04-09,Calloway,Kentucky,21035,8,1 +2020-04-10,Calloway,Kentucky,21035,11,1 +2020-04-11,Calloway,Kentucky,21035,14,1 +2020-04-12,Calloway,Kentucky,21035,15,1 +2020-04-13,Calloway,Kentucky,21035,16,1 +2020-04-14,Calloway,Kentucky,21035,15,1 +2020-04-15,Calloway,Kentucky,21035,19,1 +2020-04-16,Calloway,Kentucky,21035,22,1 +2020-04-17,Calloway,Kentucky,21035,22,1 +2020-04-18,Calloway,Kentucky,21035,21,1 +2020-04-19,Calloway,Kentucky,21035,21,1 +2020-04-20,Calloway,Kentucky,21035,21,1 +2020-04-21,Calloway,Kentucky,21035,22,1 +2020-04-22,Calloway,Kentucky,21035,22,1 +2020-04-23,Calloway,Kentucky,21035,24,1 +2020-04-24,Calloway,Kentucky,21035,26,1 +2020-04-25,Calloway,Kentucky,21035,29,1 +2020-04-26,Calloway,Kentucky,21035,31,1 +2020-04-27,Calloway,Kentucky,21035,31,1 +2020-04-28,Calloway,Kentucky,21035,31,1 +2020-04-29,Calloway,Kentucky,21035,31,1 +2020-04-30,Calloway,Kentucky,21035,34,1 +2020-05-01,Calloway,Kentucky,21035,34,1 +2020-05-02,Calloway,Kentucky,21035,34,1 +2020-05-03,Calloway,Kentucky,21035,35,1 +2020-05-04,Calloway,Kentucky,21035,35,1 +2020-05-05,Calloway,Kentucky,21035,35,1 +2020-05-06,Calloway,Kentucky,21035,35,1 +2020-05-07,Calloway,Kentucky,21035,35,1 +2020-05-08,Calloway,Kentucky,21035,36,1 +2020-05-09,Calloway,Kentucky,21035,37,1 +2020-05-10,Calloway,Kentucky,21035,37,1 +2020-05-11,Calloway,Kentucky,21035,40,1 +2020-05-12,Calloway,Kentucky,21035,43,1 +2020-05-13,Calloway,Kentucky,21035,43,1 +2020-05-14,Calloway,Kentucky,21035,44,1 +2020-05-15,Calloway,Kentucky,21035,44,1 +2020-05-16,Calloway,Kentucky,21035,46,1 +2020-05-17,Calloway,Kentucky,21035,46,1 +2020-05-18,Calloway,Kentucky,21035,46,1 +2020-05-19,Calloway,Kentucky,21035,47,1 +2020-05-20,Calloway,Kentucky,21035,48,1 +2020-05-21,Calloway,Kentucky,21035,49,1 +2020-05-22,Calloway,Kentucky,21035,49,1 +2020-05-23,Calloway,Kentucky,21035,49,1 +2020-05-24,Calloway,Kentucky,21035,49,1 +2020-05-25,Calloway,Kentucky,21035,49,1 +2020-05-26,Calloway,Kentucky,21035,48,1 +2020-05-27,Calloway,Kentucky,21035,48,1 +2020-05-28,Calloway,Kentucky,21035,48,1 +2020-05-29,Calloway,Kentucky,21035,50,1 +2020-05-30,Calloway,Kentucky,21035,50,1 +2020-05-31,Calloway,Kentucky,21035,50,1 +2020-06-01,Calloway,Kentucky,21035,52,1 +2020-06-02,Calloway,Kentucky,21035,52,1 +2020-06-03,Calloway,Kentucky,21035,53,1 +2020-06-04,Calloway,Kentucky,21035,53,1 +2020-06-05,Calloway,Kentucky,21035,54,1 +2020-06-06,Calloway,Kentucky,21035,55,1 +2020-06-07,Calloway,Kentucky,21035,55,1 +2020-06-08,Calloway,Kentucky,21035,55,1 +2020-06-09,Calloway,Kentucky,21035,56,1 +2020-06-10,Calloway,Kentucky,21035,56,1 +2020-06-11,Calloway,Kentucky,21035,57,1 +2020-06-12,Calloway,Kentucky,21035,57,1 +2020-06-13,Calloway,Kentucky,21035,57,1 +2020-06-14,Calloway,Kentucky,21035,57,1 +2020-06-15,Calloway,Kentucky,21035,60,1 +2020-06-16,Calloway,Kentucky,21035,60,1 +2020-06-17,Calloway,Kentucky,21035,61,1 +2020-06-18,Calloway,Kentucky,21035,63,1 +2020-06-19,Calloway,Kentucky,21035,63,1 +2020-06-20,Calloway,Kentucky,21035,65,1 +2020-06-21,Calloway,Kentucky,21035,66,1 +2020-06-22,Calloway,Kentucky,21035,68,1 +2020-06-23,Calloway,Kentucky,21035,71,1 +2020-06-24,Calloway,Kentucky,21035,71,1 +2020-06-25,Calloway,Kentucky,21035,75,1 +2020-06-26,Calloway,Kentucky,21035,78,1 +2020-06-27,Calloway,Kentucky,21035,79,1 +2020-06-28,Calloway,Kentucky,21035,79,1 +2020-06-29,Calloway,Kentucky,21035,79,1 +2020-06-30,Calloway,Kentucky,21035,81,1 +2020-07-01,Calloway,Kentucky,21035,82,1 +2020-07-02,Calloway,Kentucky,21035,85,1 +2020-07-03,Calloway,Kentucky,21035,86,1 +2020-07-04,Calloway,Kentucky,21035,86,1 +2020-07-05,Calloway,Kentucky,21035,86,1 +2020-07-06,Calloway,Kentucky,21035,93,1 +2020-07-07,Calloway,Kentucky,21035,94,1 +2020-07-08,Calloway,Kentucky,21035,98,1 +2020-07-09,Calloway,Kentucky,21035,102,1 +2020-03-27,Campbell,Kentucky,21037,2,0 +2020-03-28,Campbell,Kentucky,21037,3,0 +2020-03-29,Campbell,Kentucky,21037,4,0 +2020-03-30,Campbell,Kentucky,21037,5,0 +2020-03-31,Campbell,Kentucky,21037,6,0 +2020-04-01,Campbell,Kentucky,21037,6,0 +2020-04-02,Campbell,Kentucky,21037,7,0 +2020-04-03,Campbell,Kentucky,21037,7,0 +2020-04-04,Campbell,Kentucky,21037,7,0 +2020-04-05,Campbell,Kentucky,21037,27,1 +2020-04-06,Campbell,Kentucky,21037,27,1 +2020-04-07,Campbell,Kentucky,21037,37,3 +2020-04-08,Campbell,Kentucky,21037,37,3 +2020-04-09,Campbell,Kentucky,21037,41,3 +2020-04-10,Campbell,Kentucky,21037,42,3 +2020-04-11,Campbell,Kentucky,21037,47,3 +2020-04-12,Campbell,Kentucky,21037,45,3 +2020-04-13,Campbell,Kentucky,21037,45,3 +2020-04-14,Campbell,Kentucky,21037,50,5 +2020-04-15,Campbell,Kentucky,21037,51,5 +2020-04-16,Campbell,Kentucky,21037,53,5 +2020-04-17,Campbell,Kentucky,21037,55,6 +2020-04-18,Campbell,Kentucky,21037,55,6 +2020-04-19,Campbell,Kentucky,21037,56,6 +2020-04-20,Campbell,Kentucky,21037,58,6 +2020-04-21,Campbell,Kentucky,21037,60,6 +2020-04-22,Campbell,Kentucky,21037,64,7 +2020-04-23,Campbell,Kentucky,21037,66,7 +2020-04-24,Campbell,Kentucky,21037,70,7 +2020-04-25,Campbell,Kentucky,21037,73,7 +2020-04-26,Campbell,Kentucky,21037,79,7 +2020-04-27,Campbell,Kentucky,21037,81,7 +2020-04-28,Campbell,Kentucky,21037,85,9 +2020-04-29,Campbell,Kentucky,21037,86,9 +2020-04-30,Campbell,Kentucky,21037,89,9 +2020-05-01,Campbell,Kentucky,21037,92,9 +2020-05-02,Campbell,Kentucky,21037,92,9 +2020-05-03,Campbell,Kentucky,21037,95,9 +2020-05-04,Campbell,Kentucky,21037,97,9 +2020-05-05,Campbell,Kentucky,21037,103,9 +2020-05-06,Campbell,Kentucky,21037,107,9 +2020-05-07,Campbell,Kentucky,21037,110,9 +2020-05-08,Campbell,Kentucky,21037,114,9 +2020-05-09,Campbell,Kentucky,21037,115,9 +2020-05-10,Campbell,Kentucky,21037,115,9 +2020-05-11,Campbell,Kentucky,21037,118,9 +2020-05-12,Campbell,Kentucky,21037,120,9 +2020-05-13,Campbell,Kentucky,21037,120,9 +2020-05-14,Campbell,Kentucky,21037,128,10 +2020-05-15,Campbell,Kentucky,21037,129,10 +2020-05-16,Campbell,Kentucky,21037,131,10 +2020-05-17,Campbell,Kentucky,21037,131,10 +2020-05-18,Campbell,Kentucky,21037,134,10 +2020-05-19,Campbell,Kentucky,21037,135,11 +2020-05-20,Campbell,Kentucky,21037,137,11 +2020-05-21,Campbell,Kentucky,21037,141,11 +2020-05-22,Campbell,Kentucky,21037,144,11 +2020-05-23,Campbell,Kentucky,21037,149,11 +2020-05-24,Campbell,Kentucky,21037,149,11 +2020-05-25,Campbell,Kentucky,21037,149,11 +2020-05-26,Campbell,Kentucky,21037,152,11 +2020-05-27,Campbell,Kentucky,21037,153,11 +2020-05-28,Campbell,Kentucky,21037,159,11 +2020-05-29,Campbell,Kentucky,21037,167,11 +2020-05-30,Campbell,Kentucky,21037,173,11 +2020-05-31,Campbell,Kentucky,21037,173,11 +2020-06-01,Campbell,Kentucky,21037,182,12 +2020-06-02,Campbell,Kentucky,21037,185,12 +2020-06-03,Campbell,Kentucky,21037,191,12 +2020-06-04,Campbell,Kentucky,21037,194,12 +2020-06-05,Campbell,Kentucky,21037,194,12 +2020-06-06,Campbell,Kentucky,21037,196,12 +2020-06-07,Campbell,Kentucky,21037,196,12 +2020-06-08,Campbell,Kentucky,21037,198,12 +2020-06-09,Campbell,Kentucky,21037,197,12 +2020-06-10,Campbell,Kentucky,21037,198,12 +2020-06-11,Campbell,Kentucky,21037,201,12 +2020-06-12,Campbell,Kentucky,21037,201,12 +2020-06-13,Campbell,Kentucky,21037,207,12 +2020-06-14,Campbell,Kentucky,21037,207,12 +2020-06-15,Campbell,Kentucky,21037,207,12 +2020-06-16,Campbell,Kentucky,21037,207,12 +2020-06-17,Campbell,Kentucky,21037,212,12 +2020-06-18,Campbell,Kentucky,21037,213,12 +2020-06-19,Campbell,Kentucky,21037,219,12 +2020-06-20,Campbell,Kentucky,21037,225,12 +2020-06-21,Campbell,Kentucky,21037,227,12 +2020-06-22,Campbell,Kentucky,21037,232,12 +2020-06-23,Campbell,Kentucky,21037,234,12 +2020-06-24,Campbell,Kentucky,21037,236,12 +2020-06-25,Campbell,Kentucky,21037,238,12 +2020-06-26,Campbell,Kentucky,21037,242,12 +2020-06-27,Campbell,Kentucky,21037,246,12 +2020-06-28,Campbell,Kentucky,21037,248,12 +2020-06-29,Campbell,Kentucky,21037,249,13 +2020-06-30,Campbell,Kentucky,21037,259,13 +2020-07-01,Campbell,Kentucky,21037,266,13 +2020-07-02,Campbell,Kentucky,21037,270,13 +2020-07-03,Campbell,Kentucky,21037,270,13 +2020-07-04,Campbell,Kentucky,21037,274,13 +2020-07-05,Campbell,Kentucky,21037,274,13 +2020-07-06,Campbell,Kentucky,21037,293,13 +2020-07-07,Campbell,Kentucky,21037,299,13 +2020-07-08,Campbell,Kentucky,21037,303,13 +2020-07-09,Campbell,Kentucky,21037,307,13 +2020-04-23,Carlisle,Kentucky,21039,1,0 +2020-04-24,Carlisle,Kentucky,21039,1,0 +2020-04-25,Carlisle,Kentucky,21039,1,0 +2020-04-26,Carlisle,Kentucky,21039,1,0 +2020-04-27,Carlisle,Kentucky,21039,2,0 +2020-04-28,Carlisle,Kentucky,21039,2,0 +2020-04-29,Carlisle,Kentucky,21039,2,0 +2020-04-30,Carlisle,Kentucky,21039,2,0 +2020-05-01,Carlisle,Kentucky,21039,2,1 +2020-05-02,Carlisle,Kentucky,21039,2,1 +2020-05-03,Carlisle,Kentucky,21039,2,1 +2020-05-04,Carlisle,Kentucky,21039,2,1 +2020-05-05,Carlisle,Kentucky,21039,2,1 +2020-05-06,Carlisle,Kentucky,21039,2,1 +2020-05-07,Carlisle,Kentucky,21039,2,1 +2020-05-08,Carlisle,Kentucky,21039,3,1 +2020-05-09,Carlisle,Kentucky,21039,3,1 +2020-05-10,Carlisle,Kentucky,21039,3,1 +2020-05-11,Carlisle,Kentucky,21039,3,1 +2020-05-12,Carlisle,Kentucky,21039,3,1 +2020-05-13,Carlisle,Kentucky,21039,3,1 +2020-05-14,Carlisle,Kentucky,21039,3,1 +2020-05-15,Carlisle,Kentucky,21039,3,1 +2020-05-16,Carlisle,Kentucky,21039,3,1 +2020-05-17,Carlisle,Kentucky,21039,3,1 +2020-05-18,Carlisle,Kentucky,21039,3,1 +2020-05-19,Carlisle,Kentucky,21039,3,1 +2020-05-20,Carlisle,Kentucky,21039,3,1 +2020-05-21,Carlisle,Kentucky,21039,5,1 +2020-05-22,Carlisle,Kentucky,21039,5,1 +2020-05-23,Carlisle,Kentucky,21039,5,1 +2020-05-24,Carlisle,Kentucky,21039,5,1 +2020-05-25,Carlisle,Kentucky,21039,5,1 +2020-05-26,Carlisle,Kentucky,21039,5,1 +2020-05-27,Carlisle,Kentucky,21039,5,1 +2020-05-28,Carlisle,Kentucky,21039,5,1 +2020-05-29,Carlisle,Kentucky,21039,5,1 +2020-05-30,Carlisle,Kentucky,21039,5,1 +2020-05-31,Carlisle,Kentucky,21039,5,1 +2020-06-01,Carlisle,Kentucky,21039,5,1 +2020-06-02,Carlisle,Kentucky,21039,5,1 +2020-06-03,Carlisle,Kentucky,21039,5,1 +2020-06-04,Carlisle,Kentucky,21039,5,1 +2020-06-05,Carlisle,Kentucky,21039,5,1 +2020-06-06,Carlisle,Kentucky,21039,5,1 +2020-06-07,Carlisle,Kentucky,21039,5,1 +2020-06-08,Carlisle,Kentucky,21039,5,1 +2020-06-09,Carlisle,Kentucky,21039,5,1 +2020-06-10,Carlisle,Kentucky,21039,5,1 +2020-06-11,Carlisle,Kentucky,21039,5,1 +2020-06-12,Carlisle,Kentucky,21039,5,1 +2020-06-13,Carlisle,Kentucky,21039,5,1 +2020-06-14,Carlisle,Kentucky,21039,5,1 +2020-06-15,Carlisle,Kentucky,21039,5,1 +2020-06-16,Carlisle,Kentucky,21039,5,1 +2020-06-17,Carlisle,Kentucky,21039,5,1 +2020-06-18,Carlisle,Kentucky,21039,5,1 +2020-06-19,Carlisle,Kentucky,21039,5,1 +2020-06-20,Carlisle,Kentucky,21039,5,1 +2020-06-21,Carlisle,Kentucky,21039,5,1 +2020-06-22,Carlisle,Kentucky,21039,5,1 +2020-06-23,Carlisle,Kentucky,21039,5,1 +2020-06-24,Carlisle,Kentucky,21039,5,1 +2020-06-25,Carlisle,Kentucky,21039,5,1 +2020-06-26,Carlisle,Kentucky,21039,5,1 +2020-06-27,Carlisle,Kentucky,21039,5,1 +2020-06-28,Carlisle,Kentucky,21039,5,1 +2020-06-29,Carlisle,Kentucky,21039,5,1 +2020-06-30,Carlisle,Kentucky,21039,5,1 +2020-07-01,Carlisle,Kentucky,21039,5,1 +2020-07-02,Carlisle,Kentucky,21039,5,1 +2020-07-03,Carlisle,Kentucky,21039,5,1 +2020-07-04,Carlisle,Kentucky,21039,5,1 +2020-07-05,Carlisle,Kentucky,21039,5,1 +2020-07-06,Carlisle,Kentucky,21039,7,1 +2020-07-07,Carlisle,Kentucky,21039,7,1 +2020-07-08,Carlisle,Kentucky,21039,7,1 +2020-07-09,Carlisle,Kentucky,21039,9,1 +2020-03-28,Carroll,Kentucky,21041,1,0 +2020-03-29,Carroll,Kentucky,21041,1,0 +2020-03-30,Carroll,Kentucky,21041,1,0 +2020-03-31,Carroll,Kentucky,21041,2,0 +2020-04-01,Carroll,Kentucky,21041,2,0 +2020-04-02,Carroll,Kentucky,21041,2,0 +2020-04-03,Carroll,Kentucky,21041,2,0 +2020-04-04,Carroll,Kentucky,21041,2,0 +2020-04-05,Carroll,Kentucky,21041,2,0 +2020-04-06,Carroll,Kentucky,21041,2,0 +2020-04-07,Carroll,Kentucky,21041,2,0 +2020-04-08,Carroll,Kentucky,21041,2,0 +2020-04-09,Carroll,Kentucky,21041,2,0 +2020-04-10,Carroll,Kentucky,21041,2,0 +2020-04-11,Carroll,Kentucky,21041,2,0 +2020-04-12,Carroll,Kentucky,21041,2,0 +2020-04-13,Carroll,Kentucky,21041,2,0 +2020-04-14,Carroll,Kentucky,21041,2,0 +2020-04-15,Carroll,Kentucky,21041,2,0 +2020-04-16,Carroll,Kentucky,21041,2,0 +2020-04-17,Carroll,Kentucky,21041,2,0 +2020-04-18,Carroll,Kentucky,21041,2,0 +2020-04-19,Carroll,Kentucky,21041,2,0 +2020-04-20,Carroll,Kentucky,21041,2,0 +2020-04-21,Carroll,Kentucky,21041,2,0 +2020-04-22,Carroll,Kentucky,21041,2,0 +2020-04-23,Carroll,Kentucky,21041,2,0 +2020-04-24,Carroll,Kentucky,21041,2,0 +2020-04-25,Carroll,Kentucky,21041,2,0 +2020-04-26,Carroll,Kentucky,21041,2,0 +2020-04-27,Carroll,Kentucky,21041,2,0 +2020-04-28,Carroll,Kentucky,21041,2,0 +2020-04-29,Carroll,Kentucky,21041,2,0 +2020-04-30,Carroll,Kentucky,21041,2,0 +2020-05-01,Carroll,Kentucky,21041,2,0 +2020-05-02,Carroll,Kentucky,21041,2,0 +2020-05-03,Carroll,Kentucky,21041,2,0 +2020-05-04,Carroll,Kentucky,21041,2,0 +2020-05-05,Carroll,Kentucky,21041,2,0 +2020-05-06,Carroll,Kentucky,21041,2,0 +2020-05-07,Carroll,Kentucky,21041,2,0 +2020-05-08,Carroll,Kentucky,21041,2,0 +2020-05-09,Carroll,Kentucky,21041,2,0 +2020-05-10,Carroll,Kentucky,21041,2,0 +2020-05-11,Carroll,Kentucky,21041,2,0 +2020-05-12,Carroll,Kentucky,21041,2,0 +2020-05-13,Carroll,Kentucky,21041,2,0 +2020-05-14,Carroll,Kentucky,21041,2,0 +2020-05-15,Carroll,Kentucky,21041,2,0 +2020-05-16,Carroll,Kentucky,21041,2,0 +2020-05-17,Carroll,Kentucky,21041,2,0 +2020-05-18,Carroll,Kentucky,21041,3,0 +2020-05-19,Carroll,Kentucky,21041,3,0 +2020-05-20,Carroll,Kentucky,21041,4,0 +2020-05-21,Carroll,Kentucky,21041,6,0 +2020-05-22,Carroll,Kentucky,21041,6,0 +2020-05-23,Carroll,Kentucky,21041,7,0 +2020-05-24,Carroll,Kentucky,21041,7,0 +2020-05-25,Carroll,Kentucky,21041,7,0 +2020-05-26,Carroll,Kentucky,21041,7,0 +2020-05-27,Carroll,Kentucky,21041,7,0 +2020-05-28,Carroll,Kentucky,21041,10,0 +2020-05-29,Carroll,Kentucky,21041,11,0 +2020-05-30,Carroll,Kentucky,21041,12,0 +2020-05-31,Carroll,Kentucky,21041,12,0 +2020-06-01,Carroll,Kentucky,21041,14,0 +2020-06-02,Carroll,Kentucky,21041,14,0 +2020-06-03,Carroll,Kentucky,21041,14,0 +2020-06-04,Carroll,Kentucky,21041,15,0 +2020-06-05,Carroll,Kentucky,21041,15,0 +2020-06-06,Carroll,Kentucky,21041,15,0 +2020-06-07,Carroll,Kentucky,21041,15,0 +2020-06-08,Carroll,Kentucky,21041,15,0 +2020-06-09,Carroll,Kentucky,21041,16,0 +2020-06-10,Carroll,Kentucky,21041,16,0 +2020-06-11,Carroll,Kentucky,21041,16,0 +2020-06-12,Carroll,Kentucky,21041,16,0 +2020-06-13,Carroll,Kentucky,21041,17,0 +2020-06-14,Carroll,Kentucky,21041,17,0 +2020-06-15,Carroll,Kentucky,21041,17,0 +2020-06-16,Carroll,Kentucky,21041,17,0 +2020-06-17,Carroll,Kentucky,21041,25,0 +2020-06-18,Carroll,Kentucky,21041,26,0 +2020-06-19,Carroll,Kentucky,21041,26,0 +2020-06-20,Carroll,Kentucky,21041,29,0 +2020-06-21,Carroll,Kentucky,21041,29,0 +2020-06-22,Carroll,Kentucky,21041,29,0 +2020-06-23,Carroll,Kentucky,21041,30,0 +2020-06-24,Carroll,Kentucky,21041,30,0 +2020-06-25,Carroll,Kentucky,21041,30,0 +2020-06-26,Carroll,Kentucky,21041,35,0 +2020-06-27,Carroll,Kentucky,21041,37,0 +2020-06-28,Carroll,Kentucky,21041,37,0 +2020-06-29,Carroll,Kentucky,21041,37,0 +2020-06-30,Carroll,Kentucky,21041,37,0 +2020-07-01,Carroll,Kentucky,21041,37,0 +2020-07-02,Carroll,Kentucky,21041,37,1 +2020-07-03,Carroll,Kentucky,21041,42,1 +2020-07-04,Carroll,Kentucky,21041,42,1 +2020-07-05,Carroll,Kentucky,21041,42,1 +2020-07-06,Carroll,Kentucky,21041,61,1 +2020-07-07,Carroll,Kentucky,21041,63,1 +2020-07-08,Carroll,Kentucky,21041,63,1 +2020-07-09,Carroll,Kentucky,21041,65,1 +2020-04-05,Carter,Kentucky,21043,1,0 +2020-04-06,Carter,Kentucky,21043,1,0 +2020-04-07,Carter,Kentucky,21043,1,0 +2020-04-08,Carter,Kentucky,21043,1,0 +2020-04-09,Carter,Kentucky,21043,1,0 +2020-04-10,Carter,Kentucky,21043,1,0 +2020-04-11,Carter,Kentucky,21043,1,0 +2020-04-12,Carter,Kentucky,21043,3,0 +2020-04-13,Carter,Kentucky,21043,3,0 +2020-04-14,Carter,Kentucky,21043,3,0 +2020-04-15,Carter,Kentucky,21043,5,0 +2020-04-16,Carter,Kentucky,21043,5,0 +2020-04-17,Carter,Kentucky,21043,5,0 +2020-04-18,Carter,Kentucky,21043,4,0 +2020-04-19,Carter,Kentucky,21043,4,0 +2020-04-20,Carter,Kentucky,21043,4,0 +2020-04-21,Carter,Kentucky,21043,4,0 +2020-04-22,Carter,Kentucky,21043,4,0 +2020-04-23,Carter,Kentucky,21043,4,0 +2020-04-24,Carter,Kentucky,21043,4,0 +2020-04-25,Carter,Kentucky,21043,4,0 +2020-04-26,Carter,Kentucky,21043,4,0 +2020-04-27,Carter,Kentucky,21043,4,0 +2020-04-28,Carter,Kentucky,21043,5,0 +2020-04-29,Carter,Kentucky,21043,5,0 +2020-04-30,Carter,Kentucky,21043,5,0 +2020-05-01,Carter,Kentucky,21043,5,0 +2020-05-02,Carter,Kentucky,21043,5,0 +2020-05-03,Carter,Kentucky,21043,6,0 +2020-05-04,Carter,Kentucky,21043,6,0 +2020-05-05,Carter,Kentucky,21043,6,0 +2020-05-06,Carter,Kentucky,21043,6,0 +2020-05-07,Carter,Kentucky,21043,6,0 +2020-05-08,Carter,Kentucky,21043,6,0 +2020-05-09,Carter,Kentucky,21043,6,0 +2020-05-10,Carter,Kentucky,21043,6,0 +2020-05-11,Carter,Kentucky,21043,6,0 +2020-05-12,Carter,Kentucky,21043,7,0 +2020-05-13,Carter,Kentucky,21043,7,0 +2020-05-14,Carter,Kentucky,21043,7,0 +2020-05-15,Carter,Kentucky,21043,8,0 +2020-05-16,Carter,Kentucky,21043,8,0 +2020-05-17,Carter,Kentucky,21043,8,0 +2020-05-18,Carter,Kentucky,21043,8,0 +2020-05-19,Carter,Kentucky,21043,9,0 +2020-05-20,Carter,Kentucky,21043,9,0 +2020-05-21,Carter,Kentucky,21043,9,0 +2020-05-22,Carter,Kentucky,21043,9,0 +2020-05-23,Carter,Kentucky,21043,9,0 +2020-05-24,Carter,Kentucky,21043,9,0 +2020-05-25,Carter,Kentucky,21043,9,0 +2020-05-26,Carter,Kentucky,21043,9,0 +2020-05-27,Carter,Kentucky,21043,9,0 +2020-05-28,Carter,Kentucky,21043,9,0 +2020-05-29,Carter,Kentucky,21043,9,0 +2020-05-30,Carter,Kentucky,21043,11,0 +2020-05-31,Carter,Kentucky,21043,11,0 +2020-06-01,Carter,Kentucky,21043,12,0 +2020-06-02,Carter,Kentucky,21043,12,0 +2020-06-03,Carter,Kentucky,21043,14,0 +2020-06-04,Carter,Kentucky,21043,14,0 +2020-06-05,Carter,Kentucky,21043,14,0 +2020-06-06,Carter,Kentucky,21043,17,0 +2020-06-07,Carter,Kentucky,21043,17,0 +2020-06-08,Carter,Kentucky,21043,17,0 +2020-06-09,Carter,Kentucky,21043,17,0 +2020-06-10,Carter,Kentucky,21043,17,0 +2020-06-11,Carter,Kentucky,21043,17,0 +2020-06-12,Carter,Kentucky,21043,17,0 +2020-06-13,Carter,Kentucky,21043,18,0 +2020-06-14,Carter,Kentucky,21043,18,0 +2020-06-15,Carter,Kentucky,21043,18,0 +2020-06-16,Carter,Kentucky,21043,18,0 +2020-06-17,Carter,Kentucky,21043,21,0 +2020-06-18,Carter,Kentucky,21043,20,0 +2020-06-19,Carter,Kentucky,21043,21,0 +2020-06-20,Carter,Kentucky,21043,21,0 +2020-06-21,Carter,Kentucky,21043,21,0 +2020-06-22,Carter,Kentucky,21043,21,0 +2020-06-23,Carter,Kentucky,21043,21,0 +2020-06-24,Carter,Kentucky,21043,21,0 +2020-06-25,Carter,Kentucky,21043,22,0 +2020-06-26,Carter,Kentucky,21043,22,0 +2020-06-27,Carter,Kentucky,21043,22,0 +2020-06-28,Carter,Kentucky,21043,22,0 +2020-06-29,Carter,Kentucky,21043,22,0 +2020-06-30,Carter,Kentucky,21043,23,0 +2020-07-01,Carter,Kentucky,21043,25,0 +2020-07-02,Carter,Kentucky,21043,26,0 +2020-07-03,Carter,Kentucky,21043,29,0 +2020-07-04,Carter,Kentucky,21043,29,0 +2020-07-05,Carter,Kentucky,21043,29,0 +2020-07-06,Carter,Kentucky,21043,31,0 +2020-07-07,Carter,Kentucky,21043,32,0 +2020-07-08,Carter,Kentucky,21043,32,0 +2020-07-09,Carter,Kentucky,21043,32,0 +2020-04-14,Casey,Kentucky,21045,1,0 +2020-04-15,Casey,Kentucky,21045,1,0 +2020-04-16,Casey,Kentucky,21045,1,0 +2020-04-17,Casey,Kentucky,21045,1,0 +2020-04-18,Casey,Kentucky,21045,1,0 +2020-04-19,Casey,Kentucky,21045,1,0 +2020-04-20,Casey,Kentucky,21045,1,0 +2020-04-21,Casey,Kentucky,21045,1,0 +2020-04-22,Casey,Kentucky,21045,1,0 +2020-04-23,Casey,Kentucky,21045,1,0 +2020-04-24,Casey,Kentucky,21045,1,0 +2020-04-25,Casey,Kentucky,21045,1,0 +2020-04-26,Casey,Kentucky,21045,1,0 +2020-04-27,Casey,Kentucky,21045,1,0 +2020-04-28,Casey,Kentucky,21045,1,0 +2020-04-29,Casey,Kentucky,21045,1,0 +2020-04-30,Casey,Kentucky,21045,1,0 +2020-05-01,Casey,Kentucky,21045,1,0 +2020-05-02,Casey,Kentucky,21045,1,0 +2020-05-03,Casey,Kentucky,21045,1,0 +2020-05-04,Casey,Kentucky,21045,1,0 +2020-05-05,Casey,Kentucky,21045,1,0 +2020-05-06,Casey,Kentucky,21045,1,0 +2020-05-07,Casey,Kentucky,21045,1,0 +2020-05-08,Casey,Kentucky,21045,1,0 +2020-05-09,Casey,Kentucky,21045,1,0 +2020-05-10,Casey,Kentucky,21045,1,0 +2020-05-11,Casey,Kentucky,21045,1,0 +2020-05-12,Casey,Kentucky,21045,1,0 +2020-05-13,Casey,Kentucky,21045,1,0 +2020-05-14,Casey,Kentucky,21045,2,0 +2020-05-15,Casey,Kentucky,21045,2,0 +2020-05-16,Casey,Kentucky,21045,2,0 +2020-05-17,Casey,Kentucky,21045,2,0 +2020-05-18,Casey,Kentucky,21045,2,0 +2020-05-19,Casey,Kentucky,21045,2,0 +2020-05-20,Casey,Kentucky,21045,2,0 +2020-05-21,Casey,Kentucky,21045,2,0 +2020-05-22,Casey,Kentucky,21045,2,0 +2020-05-23,Casey,Kentucky,21045,2,0 +2020-05-24,Casey,Kentucky,21045,2,0 +2020-05-25,Casey,Kentucky,21045,2,0 +2020-05-26,Casey,Kentucky,21045,2,0 +2020-05-27,Casey,Kentucky,21045,2,0 +2020-05-28,Casey,Kentucky,21045,2,0 +2020-05-29,Casey,Kentucky,21045,3,0 +2020-05-30,Casey,Kentucky,21045,3,0 +2020-05-31,Casey,Kentucky,21045,3,0 +2020-06-01,Casey,Kentucky,21045,3,0 +2020-06-02,Casey,Kentucky,21045,3,0 +2020-06-03,Casey,Kentucky,21045,5,0 +2020-06-04,Casey,Kentucky,21045,5,0 +2020-06-05,Casey,Kentucky,21045,8,0 +2020-06-06,Casey,Kentucky,21045,8,0 +2020-06-07,Casey,Kentucky,21045,8,0 +2020-06-08,Casey,Kentucky,21045,8,0 +2020-06-09,Casey,Kentucky,21045,8,0 +2020-06-10,Casey,Kentucky,21045,10,0 +2020-06-11,Casey,Kentucky,21045,10,0 +2020-06-12,Casey,Kentucky,21045,10,0 +2020-06-13,Casey,Kentucky,21045,10,0 +2020-06-14,Casey,Kentucky,21045,10,0 +2020-06-15,Casey,Kentucky,21045,10,0 +2020-06-16,Casey,Kentucky,21045,10,0 +2020-06-17,Casey,Kentucky,21045,10,0 +2020-06-18,Casey,Kentucky,21045,11,0 +2020-06-19,Casey,Kentucky,21045,11,0 +2020-06-20,Casey,Kentucky,21045,13,0 +2020-06-21,Casey,Kentucky,21045,13,0 +2020-06-22,Casey,Kentucky,21045,13,0 +2020-06-23,Casey,Kentucky,21045,13,0 +2020-06-24,Casey,Kentucky,21045,13,0 +2020-06-25,Casey,Kentucky,21045,14,0 +2020-06-26,Casey,Kentucky,21045,15,0 +2020-06-27,Casey,Kentucky,21045,15,0 +2020-06-28,Casey,Kentucky,21045,15,0 +2020-06-29,Casey,Kentucky,21045,18,0 +2020-06-30,Casey,Kentucky,21045,19,0 +2020-07-01,Casey,Kentucky,21045,19,0 +2020-07-02,Casey,Kentucky,21045,19,0 +2020-07-03,Casey,Kentucky,21045,21,0 +2020-07-04,Casey,Kentucky,21045,21,0 +2020-07-05,Casey,Kentucky,21045,21,0 +2020-07-06,Casey,Kentucky,21045,38,0 +2020-07-07,Casey,Kentucky,21045,40,1 +2020-07-08,Casey,Kentucky,21045,41,1 +2020-07-09,Casey,Kentucky,21045,55,1 +2020-03-19,Christian,Kentucky,21047,1,0 +2020-03-20,Christian,Kentucky,21047,1,0 +2020-03-21,Christian,Kentucky,21047,1,0 +2020-03-22,Christian,Kentucky,21047,2,0 +2020-03-23,Christian,Kentucky,21047,2,0 +2020-03-24,Christian,Kentucky,21047,3,0 +2020-03-25,Christian,Kentucky,21047,3,0 +2020-03-26,Christian,Kentucky,21047,5,0 +2020-03-27,Christian,Kentucky,21047,6,0 +2020-03-28,Christian,Kentucky,21047,6,0 +2020-03-29,Christian,Kentucky,21047,6,0 +2020-03-30,Christian,Kentucky,21047,7,0 +2020-03-31,Christian,Kentucky,21047,8,0 +2020-04-01,Christian,Kentucky,21047,9,0 +2020-04-02,Christian,Kentucky,21047,15,0 +2020-04-03,Christian,Kentucky,21047,15,0 +2020-04-04,Christian,Kentucky,21047,18,0 +2020-04-05,Christian,Kentucky,21047,23,0 +2020-04-06,Christian,Kentucky,21047,23,0 +2020-04-07,Christian,Kentucky,21047,33,0 +2020-04-08,Christian,Kentucky,21047,45,0 +2020-04-09,Christian,Kentucky,21047,45,0 +2020-04-10,Christian,Kentucky,21047,54,3 +2020-04-11,Christian,Kentucky,21047,62,3 +2020-04-12,Christian,Kentucky,21047,67,3 +2020-04-13,Christian,Kentucky,21047,69,3 +2020-04-14,Christian,Kentucky,21047,71,3 +2020-04-15,Christian,Kentucky,21047,73,3 +2020-04-16,Christian,Kentucky,21047,73,3 +2020-04-17,Christian,Kentucky,21047,81,3 +2020-04-18,Christian,Kentucky,21047,81,3 +2020-04-19,Christian,Kentucky,21047,81,3 +2020-04-20,Christian,Kentucky,21047,81,3 +2020-04-21,Christian,Kentucky,21047,84,3 +2020-04-22,Christian,Kentucky,21047,86,3 +2020-04-23,Christian,Kentucky,21047,86,3 +2020-04-24,Christian,Kentucky,21047,86,3 +2020-04-25,Christian,Kentucky,21047,86,3 +2020-04-26,Christian,Kentucky,21047,85,3 +2020-04-27,Christian,Kentucky,21047,86,3 +2020-04-28,Christian,Kentucky,21047,88,3 +2020-04-29,Christian,Kentucky,21047,88,3 +2020-04-30,Christian,Kentucky,21047,88,3 +2020-05-01,Christian,Kentucky,21047,88,3 +2020-05-02,Christian,Kentucky,21047,88,3 +2020-05-03,Christian,Kentucky,21047,90,3 +2020-05-04,Christian,Kentucky,21047,90,3 +2020-05-05,Christian,Kentucky,21047,91,3 +2020-05-06,Christian,Kentucky,21047,92,3 +2020-05-07,Christian,Kentucky,21047,92,3 +2020-05-08,Christian,Kentucky,21047,93,3 +2020-05-09,Christian,Kentucky,21047,93,3 +2020-05-10,Christian,Kentucky,21047,93,3 +2020-05-11,Christian,Kentucky,21047,95,3 +2020-05-12,Christian,Kentucky,21047,95,3 +2020-05-13,Christian,Kentucky,21047,95,3 +2020-05-14,Christian,Kentucky,21047,95,3 +2020-05-15,Christian,Kentucky,21047,95,3 +2020-05-16,Christian,Kentucky,21047,97,3 +2020-05-17,Christian,Kentucky,21047,97,3 +2020-05-18,Christian,Kentucky,21047,97,3 +2020-05-19,Christian,Kentucky,21047,98,3 +2020-05-20,Christian,Kentucky,21047,98,3 +2020-05-21,Christian,Kentucky,21047,98,3 +2020-05-22,Christian,Kentucky,21047,101,3 +2020-05-23,Christian,Kentucky,21047,103,3 +2020-05-24,Christian,Kentucky,21047,111,3 +2020-05-25,Christian,Kentucky,21047,111,3 +2020-05-26,Christian,Kentucky,21047,111,3 +2020-05-27,Christian,Kentucky,21047,111,3 +2020-05-28,Christian,Kentucky,21047,111,3 +2020-05-29,Christian,Kentucky,21047,111,3 +2020-05-30,Christian,Kentucky,21047,111,3 +2020-05-31,Christian,Kentucky,21047,119,3 +2020-06-01,Christian,Kentucky,21047,119,3 +2020-06-02,Christian,Kentucky,21047,119,3 +2020-06-03,Christian,Kentucky,21047,119,3 +2020-06-04,Christian,Kentucky,21047,119,3 +2020-06-05,Christian,Kentucky,21047,123,3 +2020-06-06,Christian,Kentucky,21047,127,3 +2020-06-07,Christian,Kentucky,21047,142,3 +2020-06-08,Christian,Kentucky,21047,147,3 +2020-06-09,Christian,Kentucky,21047,148,3 +2020-06-10,Christian,Kentucky,21047,150,3 +2020-06-11,Christian,Kentucky,21047,150,3 +2020-06-12,Christian,Kentucky,21047,152,3 +2020-06-13,Christian,Kentucky,21047,155,3 +2020-06-14,Christian,Kentucky,21047,155,3 +2020-06-15,Christian,Kentucky,21047,159,3 +2020-06-16,Christian,Kentucky,21047,160,3 +2020-06-17,Christian,Kentucky,21047,166,3 +2020-06-18,Christian,Kentucky,21047,166,3 +2020-06-19,Christian,Kentucky,21047,167,3 +2020-06-20,Christian,Kentucky,21047,167,3 +2020-06-21,Christian,Kentucky,21047,174,3 +2020-06-22,Christian,Kentucky,21047,178,3 +2020-06-23,Christian,Kentucky,21047,179,3 +2020-06-24,Christian,Kentucky,21047,183,3 +2020-06-25,Christian,Kentucky,21047,225,4 +2020-06-26,Christian,Kentucky,21047,226,4 +2020-06-27,Christian,Kentucky,21047,226,4 +2020-06-28,Christian,Kentucky,21047,226,4 +2020-06-29,Christian,Kentucky,21047,237,4 +2020-06-30,Christian,Kentucky,21047,248,4 +2020-07-01,Christian,Kentucky,21047,249,4 +2020-07-02,Christian,Kentucky,21047,257,4 +2020-07-03,Christian,Kentucky,21047,262,4 +2020-07-04,Christian,Kentucky,21047,265,4 +2020-07-05,Christian,Kentucky,21047,265,4 +2020-07-06,Christian,Kentucky,21047,266,4 +2020-07-07,Christian,Kentucky,21047,267,4 +2020-07-08,Christian,Kentucky,21047,286,4 +2020-07-09,Christian,Kentucky,21047,297,4 +2020-03-15,Clark,Kentucky,21049,1,0 +2020-03-16,Clark,Kentucky,21049,1,0 +2020-03-17,Clark,Kentucky,21049,1,0 +2020-03-18,Clark,Kentucky,21049,2,0 +2020-03-19,Clark,Kentucky,21049,2,0 +2020-03-20,Clark,Kentucky,21049,2,0 +2020-03-21,Clark,Kentucky,21049,2,0 +2020-03-22,Clark,Kentucky,21049,2,0 +2020-03-23,Clark,Kentucky,21049,3,0 +2020-03-24,Clark,Kentucky,21049,3,0 +2020-03-25,Clark,Kentucky,21049,3,0 +2020-03-26,Clark,Kentucky,21049,5,0 +2020-03-27,Clark,Kentucky,21049,5,0 +2020-03-28,Clark,Kentucky,21049,6,0 +2020-03-29,Clark,Kentucky,21049,6,0 +2020-03-30,Clark,Kentucky,21049,7,0 +2020-03-31,Clark,Kentucky,21049,8,0 +2020-04-01,Clark,Kentucky,21049,10,0 +2020-04-02,Clark,Kentucky,21049,11,0 +2020-04-03,Clark,Kentucky,21049,11,0 +2020-04-04,Clark,Kentucky,21049,11,0 +2020-04-05,Clark,Kentucky,21049,11,0 +2020-04-06,Clark,Kentucky,21049,11,0 +2020-04-07,Clark,Kentucky,21049,11,0 +2020-04-08,Clark,Kentucky,21049,11,0 +2020-04-09,Clark,Kentucky,21049,11,0 +2020-04-10,Clark,Kentucky,21049,14,0 +2020-04-11,Clark,Kentucky,21049,17,0 +2020-04-12,Clark,Kentucky,21049,18,0 +2020-04-13,Clark,Kentucky,21049,18,0 +2020-04-14,Clark,Kentucky,21049,18,0 +2020-04-15,Clark,Kentucky,21049,18,0 +2020-04-16,Clark,Kentucky,21049,18,0 +2020-04-17,Clark,Kentucky,21049,18,0 +2020-04-18,Clark,Kentucky,21049,18,0 +2020-04-19,Clark,Kentucky,21049,18,0 +2020-04-20,Clark,Kentucky,21049,18,0 +2020-04-21,Clark,Kentucky,21049,19,0 +2020-04-22,Clark,Kentucky,21049,19,0 +2020-04-23,Clark,Kentucky,21049,19,0 +2020-04-24,Clark,Kentucky,21049,19,0 +2020-04-25,Clark,Kentucky,21049,19,0 +2020-04-26,Clark,Kentucky,21049,19,0 +2020-04-27,Clark,Kentucky,21049,19,0 +2020-04-28,Clark,Kentucky,21049,19,0 +2020-04-29,Clark,Kentucky,21049,20,0 +2020-04-30,Clark,Kentucky,21049,21,0 +2020-05-01,Clark,Kentucky,21049,21,0 +2020-05-02,Clark,Kentucky,21049,21,0 +2020-05-03,Clark,Kentucky,21049,21,0 +2020-05-04,Clark,Kentucky,21049,20,0 +2020-05-05,Clark,Kentucky,21049,20,0 +2020-05-06,Clark,Kentucky,21049,20,0 +2020-05-07,Clark,Kentucky,21049,20,0 +2020-05-08,Clark,Kentucky,21049,20,0 +2020-05-09,Clark,Kentucky,21049,20,0 +2020-05-10,Clark,Kentucky,21049,20,0 +2020-05-11,Clark,Kentucky,21049,20,0 +2020-05-12,Clark,Kentucky,21049,20,0 +2020-05-13,Clark,Kentucky,21049,20,0 +2020-05-14,Clark,Kentucky,21049,20,0 +2020-05-15,Clark,Kentucky,21049,20,0 +2020-05-16,Clark,Kentucky,21049,20,0 +2020-05-17,Clark,Kentucky,21049,20,0 +2020-05-18,Clark,Kentucky,21049,21,0 +2020-05-19,Clark,Kentucky,21049,21,0 +2020-05-20,Clark,Kentucky,21049,35,0 +2020-05-21,Clark,Kentucky,21049,36,0 +2020-05-22,Clark,Kentucky,21049,37,0 +2020-05-23,Clark,Kentucky,21049,37,0 +2020-05-24,Clark,Kentucky,21049,37,0 +2020-05-25,Clark,Kentucky,21049,37,0 +2020-05-26,Clark,Kentucky,21049,38,0 +2020-05-27,Clark,Kentucky,21049,38,0 +2020-05-28,Clark,Kentucky,21049,38,0 +2020-05-29,Clark,Kentucky,21049,39,0 +2020-05-30,Clark,Kentucky,21049,41,0 +2020-05-31,Clark,Kentucky,21049,41,0 +2020-06-01,Clark,Kentucky,21049,42,0 +2020-06-02,Clark,Kentucky,21049,42,0 +2020-06-03,Clark,Kentucky,21049,43,0 +2020-06-04,Clark,Kentucky,21049,53,0 +2020-06-05,Clark,Kentucky,21049,58,0 +2020-06-06,Clark,Kentucky,21049,58,0 +2020-06-07,Clark,Kentucky,21049,58,0 +2020-06-08,Clark,Kentucky,21049,59,0 +2020-06-09,Clark,Kentucky,21049,60,0 +2020-06-10,Clark,Kentucky,21049,62,0 +2020-06-11,Clark,Kentucky,21049,63,0 +2020-06-12,Clark,Kentucky,21049,68,0 +2020-06-13,Clark,Kentucky,21049,73,0 +2020-06-14,Clark,Kentucky,21049,73,0 +2020-06-15,Clark,Kentucky,21049,77,0 +2020-06-16,Clark,Kentucky,21049,77,0 +2020-06-17,Clark,Kentucky,21049,78,0 +2020-06-18,Clark,Kentucky,21049,79,0 +2020-06-19,Clark,Kentucky,21049,80,0 +2020-06-20,Clark,Kentucky,21049,84,0 +2020-06-21,Clark,Kentucky,21049,87,0 +2020-06-22,Clark,Kentucky,21049,89,0 +2020-06-23,Clark,Kentucky,21049,91,4 +2020-06-24,Clark,Kentucky,21049,94,4 +2020-06-25,Clark,Kentucky,21049,96,4 +2020-06-26,Clark,Kentucky,21049,96,5 +2020-06-27,Clark,Kentucky,21049,98,5 +2020-06-28,Clark,Kentucky,21049,98,5 +2020-06-29,Clark,Kentucky,21049,98,5 +2020-06-30,Clark,Kentucky,21049,98,5 +2020-07-01,Clark,Kentucky,21049,98,5 +2020-07-02,Clark,Kentucky,21049,98,5 +2020-07-03,Clark,Kentucky,21049,99,5 +2020-07-04,Clark,Kentucky,21049,99,5 +2020-07-05,Clark,Kentucky,21049,99,5 +2020-07-06,Clark,Kentucky,21049,102,5 +2020-07-07,Clark,Kentucky,21049,103,5 +2020-07-08,Clark,Kentucky,21049,104,5 +2020-07-09,Clark,Kentucky,21049,104,6 +2020-04-19,Clay,Kentucky,21051,1,0 +2020-04-20,Clay,Kentucky,21051,1,0 +2020-04-21,Clay,Kentucky,21051,1,0 +2020-04-22,Clay,Kentucky,21051,1,0 +2020-04-23,Clay,Kentucky,21051,1,0 +2020-04-24,Clay,Kentucky,21051,1,0 +2020-04-25,Clay,Kentucky,21051,1,0 +2020-04-26,Clay,Kentucky,21051,1,0 +2020-04-27,Clay,Kentucky,21051,1,0 +2020-04-28,Clay,Kentucky,21051,1,0 +2020-04-29,Clay,Kentucky,21051,1,0 +2020-04-30,Clay,Kentucky,21051,1,0 +2020-05-01,Clay,Kentucky,21051,1,0 +2020-05-02,Clay,Kentucky,21051,1,0 +2020-05-03,Clay,Kentucky,21051,1,0 +2020-05-04,Clay,Kentucky,21051,1,0 +2020-05-05,Clay,Kentucky,21051,1,0 +2020-05-06,Clay,Kentucky,21051,1,0 +2020-05-07,Clay,Kentucky,21051,1,0 +2020-05-08,Clay,Kentucky,21051,2,0 +2020-05-09,Clay,Kentucky,21051,2,0 +2020-05-10,Clay,Kentucky,21051,2,0 +2020-05-11,Clay,Kentucky,21051,2,0 +2020-05-12,Clay,Kentucky,21051,2,0 +2020-05-13,Clay,Kentucky,21051,2,0 +2020-05-14,Clay,Kentucky,21051,2,0 +2020-05-15,Clay,Kentucky,21051,2,0 +2020-05-16,Clay,Kentucky,21051,2,0 +2020-05-17,Clay,Kentucky,21051,2,0 +2020-05-18,Clay,Kentucky,21051,2,0 +2020-05-19,Clay,Kentucky,21051,3,0 +2020-05-20,Clay,Kentucky,21051,3,0 +2020-05-21,Clay,Kentucky,21051,3,0 +2020-05-22,Clay,Kentucky,21051,3,0 +2020-05-23,Clay,Kentucky,21051,4,0 +2020-05-24,Clay,Kentucky,21051,4,0 +2020-05-25,Clay,Kentucky,21051,4,0 +2020-05-26,Clay,Kentucky,21051,7,0 +2020-05-27,Clay,Kentucky,21051,7,0 +2020-05-28,Clay,Kentucky,21051,7,0 +2020-05-29,Clay,Kentucky,21051,7,0 +2020-05-30,Clay,Kentucky,21051,7,0 +2020-05-31,Clay,Kentucky,21051,7,0 +2020-06-01,Clay,Kentucky,21051,7,0 +2020-06-02,Clay,Kentucky,21051,7,1 +2020-06-03,Clay,Kentucky,21051,7,1 +2020-06-04,Clay,Kentucky,21051,7,1 +2020-06-05,Clay,Kentucky,21051,8,1 +2020-06-06,Clay,Kentucky,21051,8,2 +2020-06-07,Clay,Kentucky,21051,8,2 +2020-06-08,Clay,Kentucky,21051,10,2 +2020-06-09,Clay,Kentucky,21051,10,2 +2020-06-10,Clay,Kentucky,21051,12,2 +2020-06-11,Clay,Kentucky,21051,12,2 +2020-06-12,Clay,Kentucky,21051,12,2 +2020-06-13,Clay,Kentucky,21051,13,2 +2020-06-14,Clay,Kentucky,21051,13,2 +2020-06-15,Clay,Kentucky,21051,17,2 +2020-06-16,Clay,Kentucky,21051,17,2 +2020-06-17,Clay,Kentucky,21051,23,3 +2020-06-18,Clay,Kentucky,21051,27,3 +2020-06-19,Clay,Kentucky,21051,30,3 +2020-06-20,Clay,Kentucky,21051,31,3 +2020-06-21,Clay,Kentucky,21051,32,3 +2020-06-22,Clay,Kentucky,21051,32,3 +2020-06-23,Clay,Kentucky,21051,37,3 +2020-06-24,Clay,Kentucky,21051,39,3 +2020-06-25,Clay,Kentucky,21051,44,3 +2020-06-26,Clay,Kentucky,21051,46,3 +2020-06-27,Clay,Kentucky,21051,53,3 +2020-06-28,Clay,Kentucky,21051,53,3 +2020-06-29,Clay,Kentucky,21051,53,3 +2020-06-30,Clay,Kentucky,21051,59,3 +2020-07-01,Clay,Kentucky,21051,62,3 +2020-07-02,Clay,Kentucky,21051,64,3 +2020-07-03,Clay,Kentucky,21051,68,3 +2020-07-04,Clay,Kentucky,21051,68,3 +2020-07-05,Clay,Kentucky,21051,68,3 +2020-07-06,Clay,Kentucky,21051,72,3 +2020-07-07,Clay,Kentucky,21051,76,3 +2020-07-08,Clay,Kentucky,21051,79,3 +2020-07-09,Clay,Kentucky,21051,80,3 +2020-04-04,Clinton,Kentucky,21053,1,0 +2020-04-05,Clinton,Kentucky,21053,1,0 +2020-04-06,Clinton,Kentucky,21053,1,0 +2020-04-07,Clinton,Kentucky,21053,1,0 +2020-04-08,Clinton,Kentucky,21053,1,0 +2020-04-09,Clinton,Kentucky,21053,1,0 +2020-04-10,Clinton,Kentucky,21053,3,0 +2020-04-11,Clinton,Kentucky,21053,3,0 +2020-04-12,Clinton,Kentucky,21053,2,0 +2020-04-13,Clinton,Kentucky,21053,2,0 +2020-04-14,Clinton,Kentucky,21053,2,0 +2020-04-15,Clinton,Kentucky,21053,2,0 +2020-04-16,Clinton,Kentucky,21053,2,0 +2020-04-17,Clinton,Kentucky,21053,2,0 +2020-04-18,Clinton,Kentucky,21053,2,0 +2020-04-19,Clinton,Kentucky,21053,2,0 +2020-04-20,Clinton,Kentucky,21053,2,0 +2020-04-21,Clinton,Kentucky,21053,2,0 +2020-04-22,Clinton,Kentucky,21053,2,0 +2020-04-23,Clinton,Kentucky,21053,2,0 +2020-04-24,Clinton,Kentucky,21053,2,0 +2020-04-25,Clinton,Kentucky,21053,2,0 +2020-04-26,Clinton,Kentucky,21053,2,0 +2020-04-27,Clinton,Kentucky,21053,2,0 +2020-04-28,Clinton,Kentucky,21053,3,0 +2020-04-29,Clinton,Kentucky,21053,3,0 +2020-04-30,Clinton,Kentucky,21053,3,0 +2020-05-01,Clinton,Kentucky,21053,3,0 +2020-05-02,Clinton,Kentucky,21053,3,0 +2020-05-03,Clinton,Kentucky,21053,3,0 +2020-05-04,Clinton,Kentucky,21053,3,0 +2020-05-05,Clinton,Kentucky,21053,3,0 +2020-05-06,Clinton,Kentucky,21053,3,0 +2020-05-07,Clinton,Kentucky,21053,3,0 +2020-05-08,Clinton,Kentucky,21053,3,0 +2020-05-09,Clinton,Kentucky,21053,3,0 +2020-05-10,Clinton,Kentucky,21053,3,0 +2020-05-11,Clinton,Kentucky,21053,3,0 +2020-05-12,Clinton,Kentucky,21053,3,0 +2020-05-13,Clinton,Kentucky,21053,3,0 +2020-05-14,Clinton,Kentucky,21053,3,0 +2020-05-15,Clinton,Kentucky,21053,3,0 +2020-05-16,Clinton,Kentucky,21053,3,0 +2020-05-17,Clinton,Kentucky,21053,3,0 +2020-05-18,Clinton,Kentucky,21053,3,0 +2020-05-19,Clinton,Kentucky,21053,3,0 +2020-05-20,Clinton,Kentucky,21053,3,0 +2020-05-21,Clinton,Kentucky,21053,3,0 +2020-05-22,Clinton,Kentucky,21053,3,0 +2020-05-23,Clinton,Kentucky,21053,3,0 +2020-05-24,Clinton,Kentucky,21053,3,0 +2020-05-25,Clinton,Kentucky,21053,3,0 +2020-05-26,Clinton,Kentucky,21053,3,0 +2020-05-27,Clinton,Kentucky,21053,3,0 +2020-05-28,Clinton,Kentucky,21053,3,0 +2020-05-29,Clinton,Kentucky,21053,3,0 +2020-05-30,Clinton,Kentucky,21053,3,0 +2020-05-31,Clinton,Kentucky,21053,3,0 +2020-06-01,Clinton,Kentucky,21053,4,0 +2020-06-02,Clinton,Kentucky,21053,4,0 +2020-06-03,Clinton,Kentucky,21053,4,0 +2020-06-04,Clinton,Kentucky,21053,5,0 +2020-06-05,Clinton,Kentucky,21053,5,0 +2020-06-06,Clinton,Kentucky,21053,5,0 +2020-06-07,Clinton,Kentucky,21053,5,0 +2020-06-08,Clinton,Kentucky,21053,5,0 +2020-06-09,Clinton,Kentucky,21053,5,0 +2020-06-10,Clinton,Kentucky,21053,5,0 +2020-06-11,Clinton,Kentucky,21053,5,0 +2020-06-12,Clinton,Kentucky,21053,5,0 +2020-06-13,Clinton,Kentucky,21053,5,0 +2020-06-14,Clinton,Kentucky,21053,5,0 +2020-06-15,Clinton,Kentucky,21053,5,0 +2020-06-16,Clinton,Kentucky,21053,5,0 +2020-06-17,Clinton,Kentucky,21053,5,0 +2020-06-18,Clinton,Kentucky,21053,5,0 +2020-06-19,Clinton,Kentucky,21053,5,0 +2020-06-20,Clinton,Kentucky,21053,5,0 +2020-06-21,Clinton,Kentucky,21053,5,0 +2020-06-22,Clinton,Kentucky,21053,5,0 +2020-06-23,Clinton,Kentucky,21053,5,0 +2020-06-24,Clinton,Kentucky,21053,5,0 +2020-06-25,Clinton,Kentucky,21053,5,0 +2020-06-26,Clinton,Kentucky,21053,5,0 +2020-06-27,Clinton,Kentucky,21053,5,0 +2020-06-28,Clinton,Kentucky,21053,5,0 +2020-06-29,Clinton,Kentucky,21053,5,0 +2020-06-30,Clinton,Kentucky,21053,5,0 +2020-07-01,Clinton,Kentucky,21053,5,0 +2020-07-02,Clinton,Kentucky,21053,5,0 +2020-07-03,Clinton,Kentucky,21053,5,0 +2020-07-04,Clinton,Kentucky,21053,5,0 +2020-07-05,Clinton,Kentucky,21053,5,0 +2020-07-06,Clinton,Kentucky,21053,7,0 +2020-07-07,Clinton,Kentucky,21053,7,0 +2020-07-08,Clinton,Kentucky,21053,8,0 +2020-07-09,Clinton,Kentucky,21053,8,0 +2020-04-02,Crittenden,Kentucky,21055,1,0 +2020-04-03,Crittenden,Kentucky,21055,1,0 +2020-04-04,Crittenden,Kentucky,21055,1,0 +2020-04-05,Crittenden,Kentucky,21055,1,0 +2020-04-06,Crittenden,Kentucky,21055,1,0 +2020-04-07,Crittenden,Kentucky,21055,2,0 +2020-04-08,Crittenden,Kentucky,21055,3,0 +2020-04-09,Crittenden,Kentucky,21055,3,0 +2020-04-10,Crittenden,Kentucky,21055,3,0 +2020-04-11,Crittenden,Kentucky,21055,3,0 +2020-04-12,Crittenden,Kentucky,21055,3,0 +2020-04-13,Crittenden,Kentucky,21055,3,0 +2020-04-14,Crittenden,Kentucky,21055,3,0 +2020-04-15,Crittenden,Kentucky,21055,3,0 +2020-04-16,Crittenden,Kentucky,21055,3,0 +2020-04-17,Crittenden,Kentucky,21055,3,0 +2020-04-18,Crittenden,Kentucky,21055,3,0 +2020-04-19,Crittenden,Kentucky,21055,3,0 +2020-04-20,Crittenden,Kentucky,21055,3,1 +2020-04-21,Crittenden,Kentucky,21055,3,1 +2020-04-22,Crittenden,Kentucky,21055,3,1 +2020-04-23,Crittenden,Kentucky,21055,3,1 +2020-04-24,Crittenden,Kentucky,21055,3,1 +2020-04-25,Crittenden,Kentucky,21055,3,1 +2020-04-26,Crittenden,Kentucky,21055,3,1 +2020-04-27,Crittenden,Kentucky,21055,3,1 +2020-04-28,Crittenden,Kentucky,21055,4,1 +2020-04-29,Crittenden,Kentucky,21055,4,1 +2020-04-30,Crittenden,Kentucky,21055,4,1 +2020-05-01,Crittenden,Kentucky,21055,4,1 +2020-05-02,Crittenden,Kentucky,21055,4,1 +2020-05-03,Crittenden,Kentucky,21055,4,1 +2020-05-04,Crittenden,Kentucky,21055,4,1 +2020-05-05,Crittenden,Kentucky,21055,4,1 +2020-05-06,Crittenden,Kentucky,21055,4,1 +2020-05-07,Crittenden,Kentucky,21055,4,1 +2020-05-08,Crittenden,Kentucky,21055,4,1 +2020-05-09,Crittenden,Kentucky,21055,4,1 +2020-05-10,Crittenden,Kentucky,21055,4,1 +2020-05-11,Crittenden,Kentucky,21055,4,1 +2020-05-12,Crittenden,Kentucky,21055,4,1 +2020-05-13,Crittenden,Kentucky,21055,4,1 +2020-05-14,Crittenden,Kentucky,21055,4,1 +2020-05-15,Crittenden,Kentucky,21055,4,1 +2020-05-16,Crittenden,Kentucky,21055,4,1 +2020-05-17,Crittenden,Kentucky,21055,4,1 +2020-05-18,Crittenden,Kentucky,21055,4,1 +2020-05-19,Crittenden,Kentucky,21055,4,1 +2020-05-20,Crittenden,Kentucky,21055,4,1 +2020-05-21,Crittenden,Kentucky,21055,4,1 +2020-05-22,Crittenden,Kentucky,21055,5,1 +2020-05-23,Crittenden,Kentucky,21055,5,1 +2020-05-24,Crittenden,Kentucky,21055,5,1 +2020-05-25,Crittenden,Kentucky,21055,5,1 +2020-05-26,Crittenden,Kentucky,21055,5,1 +2020-05-27,Crittenden,Kentucky,21055,5,1 +2020-05-28,Crittenden,Kentucky,21055,5,1 +2020-05-29,Crittenden,Kentucky,21055,6,1 +2020-05-30,Crittenden,Kentucky,21055,6,1 +2020-05-31,Crittenden,Kentucky,21055,6,1 +2020-06-01,Crittenden,Kentucky,21055,6,1 +2020-06-02,Crittenden,Kentucky,21055,7,1 +2020-06-03,Crittenden,Kentucky,21055,7,1 +2020-06-04,Crittenden,Kentucky,21055,7,1 +2020-06-05,Crittenden,Kentucky,21055,7,1 +2020-06-06,Crittenden,Kentucky,21055,7,1 +2020-06-07,Crittenden,Kentucky,21055,7,1 +2020-06-08,Crittenden,Kentucky,21055,7,1 +2020-06-09,Crittenden,Kentucky,21055,7,1 +2020-06-10,Crittenden,Kentucky,21055,7,1 +2020-06-11,Crittenden,Kentucky,21055,7,1 +2020-06-12,Crittenden,Kentucky,21055,7,1 +2020-06-13,Crittenden,Kentucky,21055,7,1 +2020-06-14,Crittenden,Kentucky,21055,7,1 +2020-06-15,Crittenden,Kentucky,21055,7,1 +2020-06-16,Crittenden,Kentucky,21055,7,1 +2020-06-17,Crittenden,Kentucky,21055,7,1 +2020-06-18,Crittenden,Kentucky,21055,7,1 +2020-06-19,Crittenden,Kentucky,21055,7,1 +2020-06-20,Crittenden,Kentucky,21055,7,1 +2020-06-21,Crittenden,Kentucky,21055,7,1 +2020-06-22,Crittenden,Kentucky,21055,7,1 +2020-06-23,Crittenden,Kentucky,21055,8,1 +2020-06-24,Crittenden,Kentucky,21055,8,1 +2020-06-25,Crittenden,Kentucky,21055,8,1 +2020-06-26,Crittenden,Kentucky,21055,8,1 +2020-06-27,Crittenden,Kentucky,21055,8,1 +2020-06-28,Crittenden,Kentucky,21055,8,1 +2020-06-29,Crittenden,Kentucky,21055,8,1 +2020-06-30,Crittenden,Kentucky,21055,9,1 +2020-07-01,Crittenden,Kentucky,21055,9,1 +2020-07-02,Crittenden,Kentucky,21055,9,1 +2020-07-03,Crittenden,Kentucky,21055,9,1 +2020-07-04,Crittenden,Kentucky,21055,9,1 +2020-07-05,Crittenden,Kentucky,21055,9,1 +2020-07-06,Crittenden,Kentucky,21055,9,1 +2020-07-07,Crittenden,Kentucky,21055,9,1 +2020-07-08,Crittenden,Kentucky,21055,10,1 +2020-07-09,Crittenden,Kentucky,21055,11,1 +2020-04-02,Cumberland,Kentucky,21057,1,0 +2020-04-03,Cumberland,Kentucky,21057,1,0 +2020-04-04,Cumberland,Kentucky,21057,1,0 +2020-04-05,Cumberland,Kentucky,21057,1,0 +2020-04-06,Cumberland,Kentucky,21057,1,0 +2020-04-07,Cumberland,Kentucky,21057,1,0 +2020-04-08,Cumberland,Kentucky,21057,1,0 +2020-04-09,Cumberland,Kentucky,21057,1,0 +2020-04-10,Cumberland,Kentucky,21057,3,0 +2020-04-11,Cumberland,Kentucky,21057,3,0 +2020-04-12,Cumberland,Kentucky,21057,2,0 +2020-04-13,Cumberland,Kentucky,21057,2,0 +2020-04-14,Cumberland,Kentucky,21057,2,0 +2020-04-15,Cumberland,Kentucky,21057,2,0 +2020-04-16,Cumberland,Kentucky,21057,2,0 +2020-04-17,Cumberland,Kentucky,21057,2,0 +2020-04-18,Cumberland,Kentucky,21057,2,0 +2020-04-19,Cumberland,Kentucky,21057,3,0 +2020-04-20,Cumberland,Kentucky,21057,3,0 +2020-04-21,Cumberland,Kentucky,21057,3,0 +2020-04-22,Cumberland,Kentucky,21057,4,0 +2020-04-23,Cumberland,Kentucky,21057,4,0 +2020-04-24,Cumberland,Kentucky,21057,4,0 +2020-04-25,Cumberland,Kentucky,21057,4,0 +2020-04-26,Cumberland,Kentucky,21057,5,0 +2020-04-27,Cumberland,Kentucky,21057,5,0 +2020-04-28,Cumberland,Kentucky,21057,5,0 +2020-04-29,Cumberland,Kentucky,21057,5,0 +2020-04-30,Cumberland,Kentucky,21057,5,0 +2020-05-01,Cumberland,Kentucky,21057,5,0 +2020-05-02,Cumberland,Kentucky,21057,5,0 +2020-05-03,Cumberland,Kentucky,21057,5,0 +2020-05-04,Cumberland,Kentucky,21057,5,0 +2020-05-05,Cumberland,Kentucky,21057,5,0 +2020-05-06,Cumberland,Kentucky,21057,5,0 +2020-05-07,Cumberland,Kentucky,21057,5,0 +2020-05-08,Cumberland,Kentucky,21057,5,0 +2020-05-09,Cumberland,Kentucky,21057,5,0 +2020-05-10,Cumberland,Kentucky,21057,5,0 +2020-05-11,Cumberland,Kentucky,21057,5,0 +2020-05-12,Cumberland,Kentucky,21057,5,0 +2020-05-13,Cumberland,Kentucky,21057,5,0 +2020-05-14,Cumberland,Kentucky,21057,5,0 +2020-05-15,Cumberland,Kentucky,21057,5,0 +2020-05-16,Cumberland,Kentucky,21057,5,0 +2020-05-17,Cumberland,Kentucky,21057,5,0 +2020-05-18,Cumberland,Kentucky,21057,5,0 +2020-05-19,Cumberland,Kentucky,21057,5,0 +2020-05-20,Cumberland,Kentucky,21057,5,0 +2020-05-21,Cumberland,Kentucky,21057,5,0 +2020-05-22,Cumberland,Kentucky,21057,5,0 +2020-05-23,Cumberland,Kentucky,21057,5,0 +2020-05-24,Cumberland,Kentucky,21057,5,0 +2020-05-25,Cumberland,Kentucky,21057,5,0 +2020-05-26,Cumberland,Kentucky,21057,5,0 +2020-05-27,Cumberland,Kentucky,21057,5,0 +2020-05-28,Cumberland,Kentucky,21057,5,0 +2020-05-29,Cumberland,Kentucky,21057,5,0 +2020-05-30,Cumberland,Kentucky,21057,5,0 +2020-05-31,Cumberland,Kentucky,21057,5,0 +2020-06-01,Cumberland,Kentucky,21057,5,0 +2020-06-02,Cumberland,Kentucky,21057,5,0 +2020-06-03,Cumberland,Kentucky,21057,5,0 +2020-06-04,Cumberland,Kentucky,21057,5,0 +2020-06-05,Cumberland,Kentucky,21057,5,0 +2020-06-06,Cumberland,Kentucky,21057,5,0 +2020-06-07,Cumberland,Kentucky,21057,5,0 +2020-06-08,Cumberland,Kentucky,21057,5,0 +2020-06-09,Cumberland,Kentucky,21057,5,0 +2020-06-10,Cumberland,Kentucky,21057,5,0 +2020-06-11,Cumberland,Kentucky,21057,5,0 +2020-06-12,Cumberland,Kentucky,21057,5,0 +2020-06-13,Cumberland,Kentucky,21057,5,0 +2020-06-14,Cumberland,Kentucky,21057,5,0 +2020-06-15,Cumberland,Kentucky,21057,5,0 +2020-06-16,Cumberland,Kentucky,21057,5,0 +2020-06-17,Cumberland,Kentucky,21057,5,0 +2020-06-18,Cumberland,Kentucky,21057,5,0 +2020-06-19,Cumberland,Kentucky,21057,5,0 +2020-06-20,Cumberland,Kentucky,21057,5,0 +2020-06-21,Cumberland,Kentucky,21057,6,0 +2020-06-22,Cumberland,Kentucky,21057,6,0 +2020-06-23,Cumberland,Kentucky,21057,6,0 +2020-06-24,Cumberland,Kentucky,21057,6,0 +2020-06-25,Cumberland,Kentucky,21057,6,0 +2020-06-26,Cumberland,Kentucky,21057,6,0 +2020-06-27,Cumberland,Kentucky,21057,6,0 +2020-06-28,Cumberland,Kentucky,21057,6,0 +2020-06-29,Cumberland,Kentucky,21057,6,0 +2020-06-30,Cumberland,Kentucky,21057,6,0 +2020-07-01,Cumberland,Kentucky,21057,6,0 +2020-07-02,Cumberland,Kentucky,21057,6,0 +2020-07-03,Cumberland,Kentucky,21057,6,0 +2020-07-04,Cumberland,Kentucky,21057,6,0 +2020-07-05,Cumberland,Kentucky,21057,6,0 +2020-07-06,Cumberland,Kentucky,21057,6,0 +2020-07-07,Cumberland,Kentucky,21057,6,0 +2020-07-08,Cumberland,Kentucky,21057,6,0 +2020-07-09,Cumberland,Kentucky,21057,7,0 +2020-03-19,Daviess,Kentucky,21059,1,0 +2020-03-20,Daviess,Kentucky,21059,1,0 +2020-03-21,Daviess,Kentucky,21059,4,0 +2020-03-22,Daviess,Kentucky,21059,6,0 +2020-03-23,Daviess,Kentucky,21059,10,0 +2020-03-24,Daviess,Kentucky,21059,12,0 +2020-03-25,Daviess,Kentucky,21059,13,0 +2020-03-26,Daviess,Kentucky,21059,14,0 +2020-03-27,Daviess,Kentucky,21059,15,0 +2020-03-28,Daviess,Kentucky,21059,20,0 +2020-03-29,Daviess,Kentucky,21059,20,0 +2020-03-30,Daviess,Kentucky,21059,20,0 +2020-03-31,Daviess,Kentucky,21059,34,1 +2020-04-01,Daviess,Kentucky,21059,42,2 +2020-04-02,Daviess,Kentucky,21059,44,2 +2020-04-03,Daviess,Kentucky,21059,44,2 +2020-04-04,Daviess,Kentucky,21059,47,2 +2020-04-05,Daviess,Kentucky,21059,58,2 +2020-04-06,Daviess,Kentucky,21059,58,2 +2020-04-07,Daviess,Kentucky,21059,63,2 +2020-04-08,Daviess,Kentucky,21059,63,2 +2020-04-09,Daviess,Kentucky,21059,72,2 +2020-04-10,Daviess,Kentucky,21059,79,2 +2020-04-11,Daviess,Kentucky,21059,81,3 +2020-04-12,Daviess,Kentucky,21059,86,3 +2020-04-13,Daviess,Kentucky,21059,87,3 +2020-04-14,Daviess,Kentucky,21059,90,3 +2020-04-15,Daviess,Kentucky,21059,100,3 +2020-04-16,Daviess,Kentucky,21059,106,3 +2020-04-17,Daviess,Kentucky,21059,105,3 +2020-04-18,Daviess,Kentucky,21059,109,3 +2020-04-19,Daviess,Kentucky,21059,125,3 +2020-04-20,Daviess,Kentucky,21059,130,3 +2020-04-21,Daviess,Kentucky,21059,125,3 +2020-04-22,Daviess,Kentucky,21059,134,3 +2020-04-23,Daviess,Kentucky,21059,146,6 +2020-04-24,Daviess,Kentucky,21059,146,6 +2020-04-25,Daviess,Kentucky,21059,147,6 +2020-04-26,Daviess,Kentucky,21059,161,6 +2020-04-27,Daviess,Kentucky,21059,161,6 +2020-04-28,Daviess,Kentucky,21059,169,6 +2020-04-29,Daviess,Kentucky,21059,182,3 +2020-04-30,Daviess,Kentucky,21059,188,4 +2020-05-01,Daviess,Kentucky,21059,194,4 +2020-05-02,Daviess,Kentucky,21059,194,4 +2020-05-03,Daviess,Kentucky,21059,228,4 +2020-05-04,Daviess,Kentucky,21059,228,4 +2020-05-05,Daviess,Kentucky,21059,242,4 +2020-05-06,Daviess,Kentucky,21059,248,4 +2020-05-07,Daviess,Kentucky,21059,258,4 +2020-05-08,Daviess,Kentucky,21059,260,4 +2020-05-09,Daviess,Kentucky,21059,265,4 +2020-05-10,Daviess,Kentucky,21059,266,4 +2020-05-11,Daviess,Kentucky,21059,270,4 +2020-05-12,Daviess,Kentucky,21059,274,4 +2020-05-13,Daviess,Kentucky,21059,274,4 +2020-05-14,Daviess,Kentucky,21059,277,4 +2020-05-15,Daviess,Kentucky,21059,287,4 +2020-05-16,Daviess,Kentucky,21059,287,4 +2020-05-17,Daviess,Kentucky,21059,287,4 +2020-05-18,Daviess,Kentucky,21059,293,4 +2020-05-19,Daviess,Kentucky,21059,296,6 +2020-05-20,Daviess,Kentucky,21059,296,6 +2020-05-21,Daviess,Kentucky,21059,299,6 +2020-05-22,Daviess,Kentucky,21059,300,6 +2020-05-23,Daviess,Kentucky,21059,305,6 +2020-05-24,Daviess,Kentucky,21059,305,6 +2020-05-25,Daviess,Kentucky,21059,305,6 +2020-05-26,Daviess,Kentucky,21059,308,6 +2020-05-27,Daviess,Kentucky,21059,312,6 +2020-05-28,Daviess,Kentucky,21059,313,6 +2020-05-29,Daviess,Kentucky,21059,316,6 +2020-05-30,Daviess,Kentucky,21059,317,6 +2020-05-31,Daviess,Kentucky,21059,317,6 +2020-06-01,Daviess,Kentucky,21059,324,6 +2020-06-02,Daviess,Kentucky,21059,325,6 +2020-06-03,Daviess,Kentucky,21059,330,6 +2020-06-04,Daviess,Kentucky,21059,337,6 +2020-06-05,Daviess,Kentucky,21059,339,7 +2020-06-06,Daviess,Kentucky,21059,340,7 +2020-06-07,Daviess,Kentucky,21059,340,7 +2020-06-08,Daviess,Kentucky,21059,342,8 +2020-06-09,Daviess,Kentucky,21059,341,8 +2020-06-10,Daviess,Kentucky,21059,344,8 +2020-06-11,Daviess,Kentucky,21059,347,8 +2020-06-12,Daviess,Kentucky,21059,350,8 +2020-06-13,Daviess,Kentucky,21059,353,8 +2020-06-14,Daviess,Kentucky,21059,353,8 +2020-06-15,Daviess,Kentucky,21059,360,8 +2020-06-16,Daviess,Kentucky,21059,360,8 +2020-06-17,Daviess,Kentucky,21059,368,8 +2020-06-18,Daviess,Kentucky,21059,370,8 +2020-06-19,Daviess,Kentucky,21059,376,8 +2020-06-20,Daviess,Kentucky,21059,376,8 +2020-06-21,Daviess,Kentucky,21059,382,8 +2020-06-22,Daviess,Kentucky,21059,386,8 +2020-06-23,Daviess,Kentucky,21059,404,8 +2020-06-24,Daviess,Kentucky,21059,407,8 +2020-06-25,Daviess,Kentucky,21059,414,8 +2020-06-26,Daviess,Kentucky,21059,421,8 +2020-06-27,Daviess,Kentucky,21059,428,8 +2020-06-28,Daviess,Kentucky,21059,428,8 +2020-06-29,Daviess,Kentucky,21059,431,8 +2020-06-30,Daviess,Kentucky,21059,433,8 +2020-07-01,Daviess,Kentucky,21059,435,8 +2020-07-02,Daviess,Kentucky,21059,440,8 +2020-07-03,Daviess,Kentucky,21059,452,8 +2020-07-04,Daviess,Kentucky,21059,452,8 +2020-07-05,Daviess,Kentucky,21059,452,8 +2020-07-06,Daviess,Kentucky,21059,458,8 +2020-07-07,Daviess,Kentucky,21059,467,8 +2020-07-08,Daviess,Kentucky,21059,469,8 +2020-07-09,Daviess,Kentucky,21059,483,8 +2020-03-31,Edmonson,Kentucky,21061,2,0 +2020-04-01,Edmonson,Kentucky,21061,2,0 +2020-04-02,Edmonson,Kentucky,21061,4,0 +2020-04-03,Edmonson,Kentucky,21061,4,0 +2020-04-04,Edmonson,Kentucky,21061,4,0 +2020-04-05,Edmonson,Kentucky,21061,5,0 +2020-04-06,Edmonson,Kentucky,21061,5,0 +2020-04-07,Edmonson,Kentucky,21061,6,0 +2020-04-08,Edmonson,Kentucky,21061,6,0 +2020-04-09,Edmonson,Kentucky,21061,6,0 +2020-04-10,Edmonson,Kentucky,21061,6,0 +2020-04-11,Edmonson,Kentucky,21061,6,0 +2020-04-12,Edmonson,Kentucky,21061,6,0 +2020-04-13,Edmonson,Kentucky,21061,6,0 +2020-04-14,Edmonson,Kentucky,21061,7,0 +2020-04-15,Edmonson,Kentucky,21061,7,0 +2020-04-16,Edmonson,Kentucky,21061,7,0 +2020-04-17,Edmonson,Kentucky,21061,7,0 +2020-04-18,Edmonson,Kentucky,21061,7,0 +2020-04-19,Edmonson,Kentucky,21061,7,0 +2020-04-20,Edmonson,Kentucky,21061,7,0 +2020-04-21,Edmonson,Kentucky,21061,8,0 +2020-04-22,Edmonson,Kentucky,21061,8,0 +2020-04-23,Edmonson,Kentucky,21061,9,0 +2020-04-24,Edmonson,Kentucky,21061,11,0 +2020-04-25,Edmonson,Kentucky,21061,13,0 +2020-04-26,Edmonson,Kentucky,21061,15,0 +2020-04-27,Edmonson,Kentucky,21061,17,0 +2020-04-28,Edmonson,Kentucky,21061,17,0 +2020-04-29,Edmonson,Kentucky,21061,19,0 +2020-04-30,Edmonson,Kentucky,21061,26,0 +2020-05-01,Edmonson,Kentucky,21061,26,0 +2020-05-02,Edmonson,Kentucky,21061,32,0 +2020-05-03,Edmonson,Kentucky,21061,32,0 +2020-05-04,Edmonson,Kentucky,21061,32,0 +2020-05-05,Edmonson,Kentucky,21061,36,0 +2020-05-06,Edmonson,Kentucky,21061,38,0 +2020-05-07,Edmonson,Kentucky,21061,42,6 +2020-05-08,Edmonson,Kentucky,21061,45,6 +2020-05-09,Edmonson,Kentucky,21061,45,6 +2020-05-10,Edmonson,Kentucky,21061,45,6 +2020-05-11,Edmonson,Kentucky,21061,45,6 +2020-05-12,Edmonson,Kentucky,21061,45,6 +2020-05-13,Edmonson,Kentucky,21061,45,6 +2020-05-14,Edmonson,Kentucky,21061,46,6 +2020-05-15,Edmonson,Kentucky,21061,49,6 +2020-05-16,Edmonson,Kentucky,21061,50,6 +2020-05-17,Edmonson,Kentucky,21061,50,6 +2020-05-18,Edmonson,Kentucky,21061,50,6 +2020-05-19,Edmonson,Kentucky,21061,50,9 +2020-05-20,Edmonson,Kentucky,21061,51,9 +2020-05-21,Edmonson,Kentucky,21061,51,9 +2020-05-22,Edmonson,Kentucky,21061,53,9 +2020-05-23,Edmonson,Kentucky,21061,54,9 +2020-05-24,Edmonson,Kentucky,21061,54,9 +2020-05-25,Edmonson,Kentucky,21061,54,9 +2020-05-26,Edmonson,Kentucky,21061,56,9 +2020-05-27,Edmonson,Kentucky,21061,56,9 +2020-05-28,Edmonson,Kentucky,21061,56,9 +2020-05-29,Edmonson,Kentucky,21061,56,9 +2020-05-30,Edmonson,Kentucky,21061,56,9 +2020-05-31,Edmonson,Kentucky,21061,60,9 +2020-06-01,Edmonson,Kentucky,21061,60,9 +2020-06-02,Edmonson,Kentucky,21061,60,9 +2020-06-03,Edmonson,Kentucky,21061,60,11 +2020-06-04,Edmonson,Kentucky,21061,60,11 +2020-06-05,Edmonson,Kentucky,21061,60,11 +2020-06-06,Edmonson,Kentucky,21061,60,11 +2020-06-07,Edmonson,Kentucky,21061,60,11 +2020-06-08,Edmonson,Kentucky,21061,65,11 +2020-06-09,Edmonson,Kentucky,21061,67,11 +2020-06-10,Edmonson,Kentucky,21061,67,11 +2020-06-11,Edmonson,Kentucky,21061,68,11 +2020-06-12,Edmonson,Kentucky,21061,70,11 +2020-06-13,Edmonson,Kentucky,21061,70,11 +2020-06-14,Edmonson,Kentucky,21061,70,11 +2020-06-15,Edmonson,Kentucky,21061,73,11 +2020-06-16,Edmonson,Kentucky,21061,75,11 +2020-06-17,Edmonson,Kentucky,21061,77,11 +2020-06-18,Edmonson,Kentucky,21061,77,11 +2020-06-19,Edmonson,Kentucky,21061,77,11 +2020-06-20,Edmonson,Kentucky,21061,77,11 +2020-06-21,Edmonson,Kentucky,21061,77,11 +2020-06-22,Edmonson,Kentucky,21061,78,11 +2020-06-23,Edmonson,Kentucky,21061,79,11 +2020-06-24,Edmonson,Kentucky,21061,79,11 +2020-06-25,Edmonson,Kentucky,21061,79,11 +2020-06-26,Edmonson,Kentucky,21061,79,11 +2020-06-27,Edmonson,Kentucky,21061,79,11 +2020-06-28,Edmonson,Kentucky,21061,79,11 +2020-06-29,Edmonson,Kentucky,21061,81,11 +2020-06-30,Edmonson,Kentucky,21061,81,11 +2020-07-01,Edmonson,Kentucky,21061,83,11 +2020-07-02,Edmonson,Kentucky,21061,84,11 +2020-07-03,Edmonson,Kentucky,21061,84,11 +2020-07-04,Edmonson,Kentucky,21061,84,11 +2020-07-05,Edmonson,Kentucky,21061,84,11 +2020-07-06,Edmonson,Kentucky,21061,84,11 +2020-07-07,Edmonson,Kentucky,21061,84,11 +2020-07-08,Edmonson,Kentucky,21061,84,12 +2020-07-09,Edmonson,Kentucky,21061,84,12 +2020-05-20,Elliott,Kentucky,21063,1,0 +2020-05-21,Elliott,Kentucky,21063,1,0 +2020-05-22,Elliott,Kentucky,21063,1,0 +2020-05-23,Elliott,Kentucky,21063,1,0 +2020-05-24,Elliott,Kentucky,21063,1,0 +2020-05-25,Elliott,Kentucky,21063,1,0 +2020-05-26,Elliott,Kentucky,21063,1,0 +2020-05-27,Elliott,Kentucky,21063,1,0 +2020-05-28,Elliott,Kentucky,21063,1,0 +2020-05-29,Elliott,Kentucky,21063,1,0 +2020-05-30,Elliott,Kentucky,21063,1,0 +2020-05-31,Elliott,Kentucky,21063,1,0 +2020-06-01,Elliott,Kentucky,21063,1,0 +2020-06-02,Elliott,Kentucky,21063,1,0 +2020-06-03,Elliott,Kentucky,21063,1,0 +2020-06-04,Elliott,Kentucky,21063,1,0 +2020-06-05,Elliott,Kentucky,21063,1,0 +2020-06-06,Elliott,Kentucky,21063,1,0 +2020-06-07,Elliott,Kentucky,21063,1,0 +2020-06-08,Elliott,Kentucky,21063,1,0 +2020-06-09,Elliott,Kentucky,21063,1,0 +2020-06-10,Elliott,Kentucky,21063,1,0 +2020-06-11,Elliott,Kentucky,21063,1,0 +2020-06-12,Elliott,Kentucky,21063,1,0 +2020-06-13,Elliott,Kentucky,21063,1,0 +2020-06-14,Elliott,Kentucky,21063,1,0 +2020-06-15,Elliott,Kentucky,21063,2,0 +2020-06-16,Elliott,Kentucky,21063,2,0 +2020-06-17,Elliott,Kentucky,21063,2,0 +2020-06-18,Elliott,Kentucky,21063,2,0 +2020-06-19,Elliott,Kentucky,21063,2,0 +2020-06-20,Elliott,Kentucky,21063,2,0 +2020-06-21,Elliott,Kentucky,21063,2,0 +2020-06-22,Elliott,Kentucky,21063,2,0 +2020-06-23,Elliott,Kentucky,21063,2,0 +2020-06-24,Elliott,Kentucky,21063,3,0 +2020-06-25,Elliott,Kentucky,21063,3,0 +2020-06-26,Elliott,Kentucky,21063,3,0 +2020-06-27,Elliott,Kentucky,21063,3,0 +2020-06-28,Elliott,Kentucky,21063,3,0 +2020-06-29,Elliott,Kentucky,21063,3,0 +2020-06-30,Elliott,Kentucky,21063,3,0 +2020-07-01,Elliott,Kentucky,21063,3,0 +2020-07-02,Elliott,Kentucky,21063,3,0 +2020-07-03,Elliott,Kentucky,21063,3,0 +2020-07-04,Elliott,Kentucky,21063,3,0 +2020-07-05,Elliott,Kentucky,21063,3,0 +2020-07-06,Elliott,Kentucky,21063,3,0 +2020-07-07,Elliott,Kentucky,21063,3,0 +2020-07-08,Elliott,Kentucky,21063,3,0 +2020-07-09,Elliott,Kentucky,21063,3,0 +2020-06-02,Estill,Kentucky,21065,1,0 +2020-06-03,Estill,Kentucky,21065,1,0 +2020-06-04,Estill,Kentucky,21065,1,0 +2020-06-05,Estill,Kentucky,21065,1,0 +2020-06-06,Estill,Kentucky,21065,1,0 +2020-06-07,Estill,Kentucky,21065,1,0 +2020-06-08,Estill,Kentucky,21065,1,0 +2020-06-09,Estill,Kentucky,21065,1,0 +2020-06-10,Estill,Kentucky,21065,1,0 +2020-06-11,Estill,Kentucky,21065,2,0 +2020-06-12,Estill,Kentucky,21065,3,0 +2020-06-13,Estill,Kentucky,21065,5,0 +2020-06-14,Estill,Kentucky,21065,5,0 +2020-06-15,Estill,Kentucky,21065,5,0 +2020-06-16,Estill,Kentucky,21065,5,0 +2020-06-17,Estill,Kentucky,21065,5,0 +2020-06-18,Estill,Kentucky,21065,5,0 +2020-06-19,Estill,Kentucky,21065,5,0 +2020-06-20,Estill,Kentucky,21065,5,0 +2020-06-21,Estill,Kentucky,21065,5,0 +2020-06-22,Estill,Kentucky,21065,5,0 +2020-06-23,Estill,Kentucky,21065,5,0 +2020-06-24,Estill,Kentucky,21065,5,0 +2020-06-25,Estill,Kentucky,21065,4,0 +2020-06-26,Estill,Kentucky,21065,4,0 +2020-06-27,Estill,Kentucky,21065,4,0 +2020-06-28,Estill,Kentucky,21065,4,0 +2020-06-29,Estill,Kentucky,21065,4,0 +2020-06-30,Estill,Kentucky,21065,4,0 +2020-07-01,Estill,Kentucky,21065,4,0 +2020-07-02,Estill,Kentucky,21065,4,0 +2020-07-03,Estill,Kentucky,21065,4,0 +2020-07-04,Estill,Kentucky,21065,4,0 +2020-07-05,Estill,Kentucky,21065,4,0 +2020-07-06,Estill,Kentucky,21065,4,0 +2020-07-07,Estill,Kentucky,21065,4,0 +2020-07-08,Estill,Kentucky,21065,5,0 +2020-07-09,Estill,Kentucky,21065,5,0 +2020-03-06,Fayette,Kentucky,21067,1,0 +2020-03-07,Fayette,Kentucky,21067,1,0 +2020-03-08,Fayette,Kentucky,21067,2,0 +2020-03-09,Fayette,Kentucky,21067,3,0 +2020-03-10,Fayette,Kentucky,21067,3,0 +2020-03-11,Fayette,Kentucky,21067,3,0 +2020-03-12,Fayette,Kentucky,21067,4,0 +2020-03-13,Fayette,Kentucky,21067,4,0 +2020-03-14,Fayette,Kentucky,21067,5,0 +2020-03-15,Fayette,Kentucky,21067,5,0 +2020-03-16,Fayette,Kentucky,21067,5,0 +2020-03-17,Fayette,Kentucky,21067,5,0 +2020-03-18,Fayette,Kentucky,21067,6,0 +2020-03-19,Fayette,Kentucky,21067,7,0 +2020-03-20,Fayette,Kentucky,21067,10,0 +2020-03-21,Fayette,Kentucky,21067,13,0 +2020-03-22,Fayette,Kentucky,21067,14,0 +2020-03-23,Fayette,Kentucky,21067,14,0 +2020-03-24,Fayette,Kentucky,21067,20,0 +2020-03-25,Fayette,Kentucky,21067,24,0 +2020-03-26,Fayette,Kentucky,21067,33,0 +2020-03-27,Fayette,Kentucky,21067,37,1 +2020-03-28,Fayette,Kentucky,21067,60,1 +2020-03-29,Fayette,Kentucky,21067,75,1 +2020-03-30,Fayette,Kentucky,21067,83,1 +2020-03-31,Fayette,Kentucky,21067,106,2 +2020-04-01,Fayette,Kentucky,21067,118,2 +2020-04-02,Fayette,Kentucky,21067,124,8 +2020-04-03,Fayette,Kentucky,21067,124,8 +2020-04-04,Fayette,Kentucky,21067,125,9 +2020-04-05,Fayette,Kentucky,21067,153,6 +2020-04-06,Fayette,Kentucky,21067,153,6 +2020-04-07,Fayette,Kentucky,21067,170,7 +2020-04-08,Fayette,Kentucky,21067,170,7 +2020-04-09,Fayette,Kentucky,21067,174,7 +2020-04-10,Fayette,Kentucky,21067,174,7 +2020-04-11,Fayette,Kentucky,21067,179,7 +2020-04-12,Fayette,Kentucky,21067,194,7 +2020-04-13,Fayette,Kentucky,21067,197,7 +2020-04-14,Fayette,Kentucky,21067,206,7 +2020-04-15,Fayette,Kentucky,21067,212,7 +2020-04-16,Fayette,Kentucky,21067,213,7 +2020-04-17,Fayette,Kentucky,21067,214,7 +2020-04-18,Fayette,Kentucky,21067,218,7 +2020-04-19,Fayette,Kentucky,21067,221,7 +2020-04-20,Fayette,Kentucky,21067,221,7 +2020-04-21,Fayette,Kentucky,21067,222,7 +2020-04-22,Fayette,Kentucky,21067,223,8 +2020-04-23,Fayette,Kentucky,21067,223,8 +2020-04-24,Fayette,Kentucky,21067,226,8 +2020-04-25,Fayette,Kentucky,21067,235,8 +2020-04-26,Fayette,Kentucky,21067,238,8 +2020-04-27,Fayette,Kentucky,21067,239,9 +2020-04-28,Fayette,Kentucky,21067,242,10 +2020-04-29,Fayette,Kentucky,21067,246,9 +2020-04-30,Fayette,Kentucky,21067,248,9 +2020-05-01,Fayette,Kentucky,21067,254,9 +2020-05-02,Fayette,Kentucky,21067,254,9 +2020-05-03,Fayette,Kentucky,21067,292,9 +2020-05-04,Fayette,Kentucky,21067,295,9 +2020-05-05,Fayette,Kentucky,21067,298,9 +2020-05-06,Fayette,Kentucky,21067,320,9 +2020-05-07,Fayette,Kentucky,21067,336,9 +2020-05-08,Fayette,Kentucky,21067,361,9 +2020-05-09,Fayette,Kentucky,21067,386,9 +2020-05-10,Fayette,Kentucky,21067,389,9 +2020-05-11,Fayette,Kentucky,21067,411,10 +2020-05-12,Fayette,Kentucky,21067,426,10 +2020-05-13,Fayette,Kentucky,21067,457,10 +2020-05-14,Fayette,Kentucky,21067,529,10 +2020-05-15,Fayette,Kentucky,21067,532,12 +2020-05-16,Fayette,Kentucky,21067,550,12 +2020-05-17,Fayette,Kentucky,21067,550,12 +2020-05-18,Fayette,Kentucky,21067,564,12 +2020-05-19,Fayette,Kentucky,21067,596,12 +2020-05-20,Fayette,Kentucky,21067,591,12 +2020-05-21,Fayette,Kentucky,21067,596,13 +2020-05-22,Fayette,Kentucky,21067,603,13 +2020-05-23,Fayette,Kentucky,21067,619,13 +2020-05-24,Fayette,Kentucky,21067,619,13 +2020-05-25,Fayette,Kentucky,21067,619,13 +2020-05-26,Fayette,Kentucky,21067,644,13 +2020-05-27,Fayette,Kentucky,21067,650,13 +2020-05-28,Fayette,Kentucky,21067,673,13 +2020-05-29,Fayette,Kentucky,21067,702,13 +2020-05-30,Fayette,Kentucky,21067,714,13 +2020-05-31,Fayette,Kentucky,21067,714,13 +2020-06-01,Fayette,Kentucky,21067,760,13 +2020-06-02,Fayette,Kentucky,21067,781,13 +2020-06-03,Fayette,Kentucky,21067,803,13 +2020-06-04,Fayette,Kentucky,21067,812,13 +2020-06-05,Fayette,Kentucky,21067,847,14 +2020-06-06,Fayette,Kentucky,21067,872,14 +2020-06-07,Fayette,Kentucky,21067,872,14 +2020-06-08,Fayette,Kentucky,21067,928,14 +2020-06-09,Fayette,Kentucky,21067,947,14 +2020-06-10,Fayette,Kentucky,21067,978,14 +2020-06-11,Fayette,Kentucky,21067,1008,15 +2020-06-12,Fayette,Kentucky,21067,1041,17 +2020-06-13,Fayette,Kentucky,21067,1075,17 +2020-06-14,Fayette,Kentucky,21067,1075,17 +2020-06-15,Fayette,Kentucky,21067,1129,20 +2020-06-16,Fayette,Kentucky,21067,1146,20 +2020-06-17,Fayette,Kentucky,21067,1158,20 +2020-06-18,Fayette,Kentucky,21067,1194,21 +2020-06-19,Fayette,Kentucky,21067,1214,21 +2020-06-20,Fayette,Kentucky,21067,1235,21 +2020-06-21,Fayette,Kentucky,21067,1235,21 +2020-06-22,Fayette,Kentucky,21067,1284,21 +2020-06-23,Fayette,Kentucky,21067,1307,22 +2020-06-24,Fayette,Kentucky,21067,1334,22 +2020-06-25,Fayette,Kentucky,21067,1374,23 +2020-06-26,Fayette,Kentucky,21067,1398,24 +2020-06-27,Fayette,Kentucky,21067,1439,24 +2020-06-28,Fayette,Kentucky,21067,1439,24 +2020-06-29,Fayette,Kentucky,21067,1491,27 +2020-06-30,Fayette,Kentucky,21067,1514,28 +2020-07-01,Fayette,Kentucky,21067,1553,29 +2020-07-02,Fayette,Kentucky,21067,1599,29 +2020-07-03,Fayette,Kentucky,21067,1637,30 +2020-07-04,Fayette,Kentucky,21067,1661,30 +2020-07-05,Fayette,Kentucky,21067,1661,30 +2020-07-06,Fayette,Kentucky,21067,1713,31 +2020-07-07,Fayette,Kentucky,21067,1775,32 +2020-07-08,Fayette,Kentucky,21067,1800,32 +2020-07-09,Fayette,Kentucky,21067,1839,32 +2020-04-11,Fleming,Kentucky,21069,1,0 +2020-04-12,Fleming,Kentucky,21069,2,0 +2020-04-13,Fleming,Kentucky,21069,2,0 +2020-04-14,Fleming,Kentucky,21069,2,0 +2020-04-15,Fleming,Kentucky,21069,2,0 +2020-04-16,Fleming,Kentucky,21069,2,0 +2020-04-17,Fleming,Kentucky,21069,2,0 +2020-04-18,Fleming,Kentucky,21069,2,0 +2020-04-19,Fleming,Kentucky,21069,2,0 +2020-04-20,Fleming,Kentucky,21069,2,0 +2020-04-21,Fleming,Kentucky,21069,2,0 +2020-04-22,Fleming,Kentucky,21069,2,0 +2020-04-23,Fleming,Kentucky,21069,2,0 +2020-04-24,Fleming,Kentucky,21069,2,0 +2020-04-25,Fleming,Kentucky,21069,2,0 +2020-04-26,Fleming,Kentucky,21069,2,0 +2020-04-27,Fleming,Kentucky,21069,2,0 +2020-04-28,Fleming,Kentucky,21069,2,0 +2020-04-29,Fleming,Kentucky,21069,2,0 +2020-04-30,Fleming,Kentucky,21069,2,0 +2020-05-01,Fleming,Kentucky,21069,2,0 +2020-05-02,Fleming,Kentucky,21069,2,0 +2020-05-03,Fleming,Kentucky,21069,2,0 +2020-05-04,Fleming,Kentucky,21069,2,0 +2020-05-05,Fleming,Kentucky,21069,2,0 +2020-05-06,Fleming,Kentucky,21069,2,0 +2020-05-07,Fleming,Kentucky,21069,2,0 +2020-05-08,Fleming,Kentucky,21069,2,0 +2020-05-09,Fleming,Kentucky,21069,1,0 +2020-05-10,Fleming,Kentucky,21069,1,0 +2020-05-11,Fleming,Kentucky,21069,1,0 +2020-05-12,Fleming,Kentucky,21069,1,0 +2020-05-13,Fleming,Kentucky,21069,1,0 +2020-05-14,Fleming,Kentucky,21069,2,0 +2020-05-15,Fleming,Kentucky,21069,2,0 +2020-05-16,Fleming,Kentucky,21069,2,0 +2020-05-17,Fleming,Kentucky,21069,2,0 +2020-05-18,Fleming,Kentucky,21069,3,0 +2020-05-19,Fleming,Kentucky,21069,3,0 +2020-05-20,Fleming,Kentucky,21069,2,0 +2020-05-21,Fleming,Kentucky,21069,2,0 +2020-05-22,Fleming,Kentucky,21069,2,0 +2020-05-23,Fleming,Kentucky,21069,2,0 +2020-05-24,Fleming,Kentucky,21069,2,0 +2020-05-25,Fleming,Kentucky,21069,2,0 +2020-05-26,Fleming,Kentucky,21069,3,0 +2020-05-27,Fleming,Kentucky,21069,3,0 +2020-05-28,Fleming,Kentucky,21069,3,0 +2020-05-29,Fleming,Kentucky,21069,3,0 +2020-05-30,Fleming,Kentucky,21069,3,0 +2020-05-31,Fleming,Kentucky,21069,3,0 +2020-06-01,Fleming,Kentucky,21069,3,0 +2020-06-02,Fleming,Kentucky,21069,3,0 +2020-06-03,Fleming,Kentucky,21069,2,0 +2020-06-04,Fleming,Kentucky,21069,2,0 +2020-06-05,Fleming,Kentucky,21069,2,0 +2020-06-06,Fleming,Kentucky,21069,2,0 +2020-06-07,Fleming,Kentucky,21069,2,0 +2020-06-08,Fleming,Kentucky,21069,2,0 +2020-06-09,Fleming,Kentucky,21069,2,0 +2020-06-10,Fleming,Kentucky,21069,2,0 +2020-06-11,Fleming,Kentucky,21069,2,0 +2020-06-12,Fleming,Kentucky,21069,4,0 +2020-06-13,Fleming,Kentucky,21069,4,0 +2020-06-14,Fleming,Kentucky,21069,4,0 +2020-06-15,Fleming,Kentucky,21069,6,0 +2020-06-16,Fleming,Kentucky,21069,6,0 +2020-06-17,Fleming,Kentucky,21069,9,0 +2020-06-18,Fleming,Kentucky,21069,10,0 +2020-06-19,Fleming,Kentucky,21069,12,0 +2020-06-20,Fleming,Kentucky,21069,12,0 +2020-06-21,Fleming,Kentucky,21069,12,0 +2020-06-22,Fleming,Kentucky,21069,12,0 +2020-06-23,Fleming,Kentucky,21069,13,0 +2020-06-24,Fleming,Kentucky,21069,14,0 +2020-06-25,Fleming,Kentucky,21069,14,0 +2020-06-26,Fleming,Kentucky,21069,15,0 +2020-06-27,Fleming,Kentucky,21069,17,0 +2020-06-28,Fleming,Kentucky,21069,18,0 +2020-06-29,Fleming,Kentucky,21069,18,0 +2020-06-30,Fleming,Kentucky,21069,20,0 +2020-07-01,Fleming,Kentucky,21069,21,0 +2020-07-02,Fleming,Kentucky,21069,21,0 +2020-07-03,Fleming,Kentucky,21069,21,0 +2020-07-04,Fleming,Kentucky,21069,21,0 +2020-07-05,Fleming,Kentucky,21069,21,0 +2020-07-06,Fleming,Kentucky,21069,25,0 +2020-07-07,Fleming,Kentucky,21069,25,0 +2020-07-08,Fleming,Kentucky,21069,25,0 +2020-07-09,Fleming,Kentucky,21069,25,0 +2020-03-28,Floyd,Kentucky,21071,1,0 +2020-03-29,Floyd,Kentucky,21071,1,0 +2020-03-30,Floyd,Kentucky,21071,1,0 +2020-03-31,Floyd,Kentucky,21071,1,0 +2020-04-01,Floyd,Kentucky,21071,1,0 +2020-04-02,Floyd,Kentucky,21071,1,0 +2020-04-03,Floyd,Kentucky,21071,1,0 +2020-04-04,Floyd,Kentucky,21071,1,0 +2020-04-05,Floyd,Kentucky,21071,1,0 +2020-04-06,Floyd,Kentucky,21071,1,0 +2020-04-07,Floyd,Kentucky,21071,1,0 +2020-04-08,Floyd,Kentucky,21071,1,0 +2020-04-09,Floyd,Kentucky,21071,1,0 +2020-04-10,Floyd,Kentucky,21071,1,0 +2020-04-11,Floyd,Kentucky,21071,1,0 +2020-04-12,Floyd,Kentucky,21071,1,0 +2020-04-13,Floyd,Kentucky,21071,1,0 +2020-04-14,Floyd,Kentucky,21071,1,0 +2020-04-15,Floyd,Kentucky,21071,1,0 +2020-04-16,Floyd,Kentucky,21071,4,0 +2020-04-17,Floyd,Kentucky,21071,4,0 +2020-04-18,Floyd,Kentucky,21071,4,0 +2020-04-19,Floyd,Kentucky,21071,4,0 +2020-04-20,Floyd,Kentucky,21071,4,0 +2020-04-21,Floyd,Kentucky,21071,4,0 +2020-04-22,Floyd,Kentucky,21071,4,0 +2020-04-23,Floyd,Kentucky,21071,4,0 +2020-04-24,Floyd,Kentucky,21071,6,0 +2020-04-25,Floyd,Kentucky,21071,6,0 +2020-04-26,Floyd,Kentucky,21071,10,0 +2020-04-27,Floyd,Kentucky,21071,10,0 +2020-04-28,Floyd,Kentucky,21071,12,0 +2020-04-29,Floyd,Kentucky,21071,13,0 +2020-04-30,Floyd,Kentucky,21071,13,0 +2020-05-01,Floyd,Kentucky,21071,14,0 +2020-05-02,Floyd,Kentucky,21071,14,0 +2020-05-03,Floyd,Kentucky,21071,14,0 +2020-05-04,Floyd,Kentucky,21071,12,0 +2020-05-05,Floyd,Kentucky,21071,12,0 +2020-05-06,Floyd,Kentucky,21071,12,0 +2020-05-07,Floyd,Kentucky,21071,13,0 +2020-05-08,Floyd,Kentucky,21071,15,0 +2020-05-09,Floyd,Kentucky,21071,15,0 +2020-05-10,Floyd,Kentucky,21071,15,0 +2020-05-11,Floyd,Kentucky,21071,15,0 +2020-05-12,Floyd,Kentucky,21071,15,0 +2020-05-13,Floyd,Kentucky,21071,15,0 +2020-05-14,Floyd,Kentucky,21071,18,0 +2020-05-15,Floyd,Kentucky,21071,18,0 +2020-05-16,Floyd,Kentucky,21071,18,0 +2020-05-17,Floyd,Kentucky,21071,18,0 +2020-05-18,Floyd,Kentucky,21071,18,0 +2020-05-19,Floyd,Kentucky,21071,18,0 +2020-05-20,Floyd,Kentucky,21071,18,0 +2020-05-21,Floyd,Kentucky,21071,18,0 +2020-05-22,Floyd,Kentucky,21071,18,0 +2020-05-23,Floyd,Kentucky,21071,18,0 +2020-05-24,Floyd,Kentucky,21071,18,0 +2020-05-25,Floyd,Kentucky,21071,18,0 +2020-05-26,Floyd,Kentucky,21071,18,0 +2020-05-27,Floyd,Kentucky,21071,18,0 +2020-05-28,Floyd,Kentucky,21071,18,0 +2020-05-29,Floyd,Kentucky,21071,18,0 +2020-05-30,Floyd,Kentucky,21071,18,0 +2020-05-31,Floyd,Kentucky,21071,18,0 +2020-06-01,Floyd,Kentucky,21071,18,0 +2020-06-02,Floyd,Kentucky,21071,18,0 +2020-06-03,Floyd,Kentucky,21071,18,0 +2020-06-04,Floyd,Kentucky,21071,18,0 +2020-06-05,Floyd,Kentucky,21071,18,0 +2020-06-06,Floyd,Kentucky,21071,18,0 +2020-06-07,Floyd,Kentucky,21071,18,0 +2020-06-08,Floyd,Kentucky,21071,18,0 +2020-06-09,Floyd,Kentucky,21071,18,0 +2020-06-10,Floyd,Kentucky,21071,18,0 +2020-06-11,Floyd,Kentucky,21071,18,0 +2020-06-12,Floyd,Kentucky,21071,18,0 +2020-06-13,Floyd,Kentucky,21071,19,0 +2020-06-14,Floyd,Kentucky,21071,19,0 +2020-06-15,Floyd,Kentucky,21071,19,0 +2020-06-16,Floyd,Kentucky,21071,19,0 +2020-06-17,Floyd,Kentucky,21071,22,0 +2020-06-18,Floyd,Kentucky,21071,22,0 +2020-06-19,Floyd,Kentucky,21071,25,0 +2020-06-20,Floyd,Kentucky,21071,26,0 +2020-06-21,Floyd,Kentucky,21071,26,0 +2020-06-22,Floyd,Kentucky,21071,26,0 +2020-06-23,Floyd,Kentucky,21071,26,0 +2020-06-24,Floyd,Kentucky,21071,26,0 +2020-06-25,Floyd,Kentucky,21071,26,0 +2020-06-26,Floyd,Kentucky,21071,26,0 +2020-06-27,Floyd,Kentucky,21071,27,0 +2020-06-28,Floyd,Kentucky,21071,27,0 +2020-06-29,Floyd,Kentucky,21071,27,0 +2020-06-30,Floyd,Kentucky,21071,29,0 +2020-07-01,Floyd,Kentucky,21071,29,0 +2020-07-02,Floyd,Kentucky,21071,31,0 +2020-07-03,Floyd,Kentucky,21071,32,0 +2020-07-04,Floyd,Kentucky,21071,32,0 +2020-07-05,Floyd,Kentucky,21071,32,0 +2020-07-06,Floyd,Kentucky,21071,35,0 +2020-07-07,Floyd,Kentucky,21071,37,0 +2020-07-08,Floyd,Kentucky,21071,38,0 +2020-07-09,Floyd,Kentucky,21071,38,0 +2020-03-18,Franklin,Kentucky,21073,1,0 +2020-03-19,Franklin,Kentucky,21073,1,0 +2020-03-20,Franklin,Kentucky,21073,1,0 +2020-03-21,Franklin,Kentucky,21073,1,0 +2020-03-22,Franklin,Kentucky,21073,1,0 +2020-03-23,Franklin,Kentucky,21073,2,0 +2020-03-24,Franklin,Kentucky,21073,2,0 +2020-03-25,Franklin,Kentucky,21073,3,0 +2020-03-26,Franklin,Kentucky,21073,3,0 +2020-03-27,Franklin,Kentucky,21073,3,0 +2020-03-28,Franklin,Kentucky,21073,2,0 +2020-03-29,Franklin,Kentucky,21073,3,0 +2020-03-30,Franklin,Kentucky,21073,3,0 +2020-03-31,Franklin,Kentucky,21073,6,0 +2020-04-01,Franklin,Kentucky,21073,7,0 +2020-04-02,Franklin,Kentucky,21073,7,0 +2020-04-03,Franklin,Kentucky,21073,7,0 +2020-04-04,Franklin,Kentucky,21073,8,0 +2020-04-05,Franklin,Kentucky,21073,8,0 +2020-04-06,Franklin,Kentucky,21073,8,0 +2020-04-07,Franklin,Kentucky,21073,9,0 +2020-04-08,Franklin,Kentucky,21073,10,0 +2020-04-09,Franklin,Kentucky,21073,10,0 +2020-04-10,Franklin,Kentucky,21073,10,0 +2020-04-11,Franklin,Kentucky,21073,10,0 +2020-04-12,Franklin,Kentucky,21073,10,0 +2020-04-13,Franklin,Kentucky,21073,11,0 +2020-04-14,Franklin,Kentucky,21073,11,0 +2020-04-15,Franklin,Kentucky,21073,11,0 +2020-04-16,Franklin,Kentucky,21073,11,0 +2020-04-17,Franklin,Kentucky,21073,12,0 +2020-04-18,Franklin,Kentucky,21073,21,0 +2020-04-19,Franklin,Kentucky,21073,21,0 +2020-04-20,Franklin,Kentucky,21073,21,0 +2020-04-21,Franklin,Kentucky,21073,13,0 +2020-04-22,Franklin,Kentucky,21073,14,0 +2020-04-23,Franklin,Kentucky,21073,14,0 +2020-04-24,Franklin,Kentucky,21073,15,0 +2020-04-25,Franklin,Kentucky,21073,15,0 +2020-04-26,Franklin,Kentucky,21073,16,0 +2020-04-27,Franklin,Kentucky,21073,16,0 +2020-04-28,Franklin,Kentucky,21073,16,0 +2020-04-29,Franklin,Kentucky,21073,16,0 +2020-04-30,Franklin,Kentucky,21073,16,0 +2020-05-01,Franklin,Kentucky,21073,16,0 +2020-05-02,Franklin,Kentucky,21073,16,0 +2020-05-03,Franklin,Kentucky,21073,17,0 +2020-05-04,Franklin,Kentucky,21073,17,0 +2020-05-05,Franklin,Kentucky,21073,17,0 +2020-05-06,Franklin,Kentucky,21073,17,0 +2020-05-07,Franklin,Kentucky,21073,17,0 +2020-05-08,Franklin,Kentucky,21073,16,0 +2020-05-09,Franklin,Kentucky,21073,17,0 +2020-05-10,Franklin,Kentucky,21073,17,0 +2020-05-11,Franklin,Kentucky,21073,17,0 +2020-05-12,Franklin,Kentucky,21073,18,0 +2020-05-13,Franklin,Kentucky,21073,18,0 +2020-05-14,Franklin,Kentucky,21073,18,0 +2020-05-15,Franklin,Kentucky,21073,18,0 +2020-05-16,Franklin,Kentucky,21073,20,0 +2020-05-17,Franklin,Kentucky,21073,20,0 +2020-05-18,Franklin,Kentucky,21073,18,0 +2020-05-19,Franklin,Kentucky,21073,20,0 +2020-05-20,Franklin,Kentucky,21073,22,0 +2020-05-21,Franklin,Kentucky,21073,24,0 +2020-05-22,Franklin,Kentucky,21073,24,0 +2020-05-23,Franklin,Kentucky,21073,24,0 +2020-05-24,Franklin,Kentucky,21073,24,0 +2020-05-25,Franklin,Kentucky,21073,24,0 +2020-05-26,Franklin,Kentucky,21073,25,0 +2020-05-27,Franklin,Kentucky,21073,25,0 +2020-05-28,Franklin,Kentucky,21073,28,0 +2020-05-29,Franklin,Kentucky,21073,35,0 +2020-05-30,Franklin,Kentucky,21073,38,0 +2020-05-31,Franklin,Kentucky,21073,38,0 +2020-06-01,Franklin,Kentucky,21073,38,0 +2020-06-02,Franklin,Kentucky,21073,55,0 +2020-06-03,Franklin,Kentucky,21073,63,0 +2020-06-04,Franklin,Kentucky,21073,68,1 +2020-06-05,Franklin,Kentucky,21073,73,2 +2020-06-06,Franklin,Kentucky,21073,77,2 +2020-06-07,Franklin,Kentucky,21073,77,2 +2020-06-08,Franklin,Kentucky,21073,81,2 +2020-06-09,Franklin,Kentucky,21073,84,2 +2020-06-10,Franklin,Kentucky,21073,88,2 +2020-06-11,Franklin,Kentucky,21073,88,2 +2020-06-12,Franklin,Kentucky,21073,92,2 +2020-06-13,Franklin,Kentucky,21073,96,2 +2020-06-14,Franklin,Kentucky,21073,96,2 +2020-06-15,Franklin,Kentucky,21073,98,2 +2020-06-16,Franklin,Kentucky,21073,98,2 +2020-06-17,Franklin,Kentucky,21073,105,2 +2020-06-18,Franklin,Kentucky,21073,108,2 +2020-06-19,Franklin,Kentucky,21073,108,3 +2020-06-20,Franklin,Kentucky,21073,109,3 +2020-06-21,Franklin,Kentucky,21073,109,3 +2020-06-22,Franklin,Kentucky,21073,112,3 +2020-06-23,Franklin,Kentucky,21073,120,3 +2020-06-24,Franklin,Kentucky,21073,120,3 +2020-06-25,Franklin,Kentucky,21073,123,3 +2020-06-26,Franklin,Kentucky,21073,123,3 +2020-06-27,Franklin,Kentucky,21073,128,3 +2020-06-28,Franklin,Kentucky,21073,128,4 +2020-06-29,Franklin,Kentucky,21073,128,4 +2020-06-30,Franklin,Kentucky,21073,135,4 +2020-07-01,Franklin,Kentucky,21073,138,4 +2020-07-02,Franklin,Kentucky,21073,140,4 +2020-07-03,Franklin,Kentucky,21073,144,4 +2020-07-04,Franklin,Kentucky,21073,144,4 +2020-07-05,Franklin,Kentucky,21073,144,4 +2020-07-06,Franklin,Kentucky,21073,146,4 +2020-07-07,Franklin,Kentucky,21073,149,4 +2020-07-08,Franklin,Kentucky,21073,153,4 +2020-07-09,Franklin,Kentucky,21073,156,4 +2020-04-19,Fulton,Kentucky,21075,1,0 +2020-04-20,Fulton,Kentucky,21075,1,0 +2020-04-21,Fulton,Kentucky,21075,1,0 +2020-04-22,Fulton,Kentucky,21075,1,0 +2020-04-23,Fulton,Kentucky,21075,1,0 +2020-04-24,Fulton,Kentucky,21075,1,0 +2020-04-25,Fulton,Kentucky,21075,1,0 +2020-04-26,Fulton,Kentucky,21075,1,0 +2020-04-27,Fulton,Kentucky,21075,1,0 +2020-04-28,Fulton,Kentucky,21075,1,0 +2020-04-29,Fulton,Kentucky,21075,1,0 +2020-04-30,Fulton,Kentucky,21075,2,0 +2020-05-01,Fulton,Kentucky,21075,2,0 +2020-05-02,Fulton,Kentucky,21075,2,0 +2020-05-03,Fulton,Kentucky,21075,2,0 +2020-05-04,Fulton,Kentucky,21075,1,0 +2020-05-05,Fulton,Kentucky,21075,1,0 +2020-05-06,Fulton,Kentucky,21075,1,0 +2020-05-07,Fulton,Kentucky,21075,1,0 +2020-05-08,Fulton,Kentucky,21075,1,0 +2020-05-09,Fulton,Kentucky,21075,1,0 +2020-05-10,Fulton,Kentucky,21075,1,0 +2020-05-11,Fulton,Kentucky,21075,1,0 +2020-05-12,Fulton,Kentucky,21075,1,0 +2020-05-13,Fulton,Kentucky,21075,1,0 +2020-05-14,Fulton,Kentucky,21075,1,0 +2020-05-15,Fulton,Kentucky,21075,1,0 +2020-05-16,Fulton,Kentucky,21075,1,0 +2020-05-17,Fulton,Kentucky,21075,1,0 +2020-05-18,Fulton,Kentucky,21075,2,0 +2020-05-19,Fulton,Kentucky,21075,2,0 +2020-05-20,Fulton,Kentucky,21075,2,0 +2020-05-21,Fulton,Kentucky,21075,3,0 +2020-05-22,Fulton,Kentucky,21075,3,0 +2020-05-23,Fulton,Kentucky,21075,3,0 +2020-05-24,Fulton,Kentucky,21075,3,0 +2020-05-25,Fulton,Kentucky,21075,3,0 +2020-05-26,Fulton,Kentucky,21075,3,0 +2020-05-27,Fulton,Kentucky,21075,4,0 +2020-05-28,Fulton,Kentucky,21075,5,0 +2020-05-29,Fulton,Kentucky,21075,6,0 +2020-05-30,Fulton,Kentucky,21075,7,0 +2020-05-31,Fulton,Kentucky,21075,7,0 +2020-06-01,Fulton,Kentucky,21075,7,0 +2020-06-02,Fulton,Kentucky,21075,7,0 +2020-06-03,Fulton,Kentucky,21075,8,0 +2020-06-04,Fulton,Kentucky,21075,8,0 +2020-06-05,Fulton,Kentucky,21075,10,0 +2020-06-06,Fulton,Kentucky,21075,11,0 +2020-06-07,Fulton,Kentucky,21075,11,0 +2020-06-08,Fulton,Kentucky,21075,12,0 +2020-06-09,Fulton,Kentucky,21075,12,0 +2020-06-10,Fulton,Kentucky,21075,12,0 +2020-06-11,Fulton,Kentucky,21075,12,0 +2020-06-12,Fulton,Kentucky,21075,12,0 +2020-06-13,Fulton,Kentucky,21075,12,0 +2020-06-14,Fulton,Kentucky,21075,12,0 +2020-06-15,Fulton,Kentucky,21075,12,0 +2020-06-16,Fulton,Kentucky,21075,12,0 +2020-06-17,Fulton,Kentucky,21075,12,0 +2020-06-18,Fulton,Kentucky,21075,14,0 +2020-06-19,Fulton,Kentucky,21075,15,0 +2020-06-20,Fulton,Kentucky,21075,15,0 +2020-06-21,Fulton,Kentucky,21075,15,0 +2020-06-22,Fulton,Kentucky,21075,16,0 +2020-06-23,Fulton,Kentucky,21075,16,0 +2020-06-24,Fulton,Kentucky,21075,16,0 +2020-06-25,Fulton,Kentucky,21075,18,0 +2020-06-26,Fulton,Kentucky,21075,19,0 +2020-06-27,Fulton,Kentucky,21075,21,0 +2020-06-28,Fulton,Kentucky,21075,21,0 +2020-06-29,Fulton,Kentucky,21075,23,0 +2020-06-30,Fulton,Kentucky,21075,23,0 +2020-07-01,Fulton,Kentucky,21075,23,0 +2020-07-02,Fulton,Kentucky,21075,23,0 +2020-07-03,Fulton,Kentucky,21075,24,0 +2020-07-04,Fulton,Kentucky,21075,24,0 +2020-07-05,Fulton,Kentucky,21075,24,0 +2020-07-06,Fulton,Kentucky,21075,24,0 +2020-07-07,Fulton,Kentucky,21075,24,0 +2020-07-08,Fulton,Kentucky,21075,24,1 +2020-07-09,Fulton,Kentucky,21075,25,1 +2020-04-11,Gallatin,Kentucky,21077,1,0 +2020-04-12,Gallatin,Kentucky,21077,1,0 +2020-04-13,Gallatin,Kentucky,21077,1,0 +2020-04-14,Gallatin,Kentucky,21077,1,0 +2020-04-15,Gallatin,Kentucky,21077,1,0 +2020-04-16,Gallatin,Kentucky,21077,1,0 +2020-04-17,Gallatin,Kentucky,21077,1,0 +2020-04-18,Gallatin,Kentucky,21077,1,0 +2020-04-19,Gallatin,Kentucky,21077,1,0 +2020-04-20,Gallatin,Kentucky,21077,1,0 +2020-04-21,Gallatin,Kentucky,21077,1,0 +2020-04-22,Gallatin,Kentucky,21077,1,0 +2020-04-23,Gallatin,Kentucky,21077,1,0 +2020-04-24,Gallatin,Kentucky,21077,1,0 +2020-04-25,Gallatin,Kentucky,21077,1,0 +2020-04-26,Gallatin,Kentucky,21077,1,0 +2020-04-27,Gallatin,Kentucky,21077,1,0 +2020-04-28,Gallatin,Kentucky,21077,1,0 +2020-04-29,Gallatin,Kentucky,21077,1,0 +2020-04-30,Gallatin,Kentucky,21077,1,0 +2020-05-01,Gallatin,Kentucky,21077,1,0 +2020-05-02,Gallatin,Kentucky,21077,1,0 +2020-05-03,Gallatin,Kentucky,21077,1,0 +2020-05-04,Gallatin,Kentucky,21077,1,0 +2020-05-05,Gallatin,Kentucky,21077,1,0 +2020-05-06,Gallatin,Kentucky,21077,1,0 +2020-05-07,Gallatin,Kentucky,21077,1,0 +2020-05-08,Gallatin,Kentucky,21077,1,0 +2020-05-09,Gallatin,Kentucky,21077,1,0 +2020-05-10,Gallatin,Kentucky,21077,1,0 +2020-05-11,Gallatin,Kentucky,21077,1,0 +2020-05-12,Gallatin,Kentucky,21077,1,0 +2020-05-13,Gallatin,Kentucky,21077,1,0 +2020-05-14,Gallatin,Kentucky,21077,2,0 +2020-05-15,Gallatin,Kentucky,21077,2,0 +2020-05-16,Gallatin,Kentucky,21077,2,0 +2020-05-17,Gallatin,Kentucky,21077,2,0 +2020-05-18,Gallatin,Kentucky,21077,3,0 +2020-05-19,Gallatin,Kentucky,21077,3,0 +2020-05-20,Gallatin,Kentucky,21077,3,0 +2020-05-21,Gallatin,Kentucky,21077,3,0 +2020-05-22,Gallatin,Kentucky,21077,5,0 +2020-05-23,Gallatin,Kentucky,21077,8,0 +2020-05-24,Gallatin,Kentucky,21077,8,0 +2020-05-25,Gallatin,Kentucky,21077,8,0 +2020-05-26,Gallatin,Kentucky,21077,8,0 +2020-05-27,Gallatin,Kentucky,21077,12,0 +2020-05-28,Gallatin,Kentucky,21077,15,0 +2020-05-29,Gallatin,Kentucky,21077,33,2 +2020-05-30,Gallatin,Kentucky,21077,36,3 +2020-05-31,Gallatin,Kentucky,21077,36,3 +2020-06-01,Gallatin,Kentucky,21077,37,4 +2020-06-02,Gallatin,Kentucky,21077,43,4 +2020-06-03,Gallatin,Kentucky,21077,46,5 +2020-06-04,Gallatin,Kentucky,21077,46,5 +2020-06-05,Gallatin,Kentucky,21077,46,5 +2020-06-06,Gallatin,Kentucky,21077,46,5 +2020-06-07,Gallatin,Kentucky,21077,46,5 +2020-06-08,Gallatin,Kentucky,21077,46,5 +2020-06-09,Gallatin,Kentucky,21077,49,6 +2020-06-10,Gallatin,Kentucky,21077,51,6 +2020-06-11,Gallatin,Kentucky,21077,51,7 +2020-06-12,Gallatin,Kentucky,21077,51,7 +2020-06-13,Gallatin,Kentucky,21077,57,7 +2020-06-14,Gallatin,Kentucky,21077,57,7 +2020-06-15,Gallatin,Kentucky,21077,57,7 +2020-06-16,Gallatin,Kentucky,21077,57,7 +2020-06-17,Gallatin,Kentucky,21077,57,7 +2020-06-18,Gallatin,Kentucky,21077,57,7 +2020-06-19,Gallatin,Kentucky,21077,57,7 +2020-06-20,Gallatin,Kentucky,21077,57,7 +2020-06-21,Gallatin,Kentucky,21077,57,7 +2020-06-22,Gallatin,Kentucky,21077,57,7 +2020-06-23,Gallatin,Kentucky,21077,58,7 +2020-06-24,Gallatin,Kentucky,21077,58,7 +2020-06-25,Gallatin,Kentucky,21077,58,7 +2020-06-26,Gallatin,Kentucky,21077,59,7 +2020-06-27,Gallatin,Kentucky,21077,61,7 +2020-06-28,Gallatin,Kentucky,21077,61,7 +2020-06-29,Gallatin,Kentucky,21077,61,7 +2020-06-30,Gallatin,Kentucky,21077,61,7 +2020-07-01,Gallatin,Kentucky,21077,65,7 +2020-07-02,Gallatin,Kentucky,21077,65,8 +2020-07-03,Gallatin,Kentucky,21077,65,8 +2020-07-04,Gallatin,Kentucky,21077,65,8 +2020-07-05,Gallatin,Kentucky,21077,65,8 +2020-07-06,Gallatin,Kentucky,21077,65,8 +2020-07-07,Gallatin,Kentucky,21077,65,8 +2020-07-08,Gallatin,Kentucky,21077,66,8 +2020-07-09,Gallatin,Kentucky,21077,67,8 +2020-04-14,Garrard,Kentucky,21079,1,0 +2020-04-15,Garrard,Kentucky,21079,3,0 +2020-04-16,Garrard,Kentucky,21079,3,0 +2020-04-17,Garrard,Kentucky,21079,3,0 +2020-04-18,Garrard,Kentucky,21079,1,0 +2020-04-19,Garrard,Kentucky,21079,1,0 +2020-04-20,Garrard,Kentucky,21079,1,0 +2020-04-21,Garrard,Kentucky,21079,1,0 +2020-04-22,Garrard,Kentucky,21079,1,0 +2020-04-23,Garrard,Kentucky,21079,1,0 +2020-04-24,Garrard,Kentucky,21079,1,0 +2020-04-25,Garrard,Kentucky,21079,2,0 +2020-04-26,Garrard,Kentucky,21079,2,0 +2020-04-27,Garrard,Kentucky,21079,2,0 +2020-04-28,Garrard,Kentucky,21079,2,0 +2020-04-29,Garrard,Kentucky,21079,2,0 +2020-04-30,Garrard,Kentucky,21079,2,0 +2020-05-01,Garrard,Kentucky,21079,2,0 +2020-05-02,Garrard,Kentucky,21079,2,0 +2020-05-03,Garrard,Kentucky,21079,2,0 +2020-05-04,Garrard,Kentucky,21079,2,0 +2020-05-05,Garrard,Kentucky,21079,2,0 +2020-05-06,Garrard,Kentucky,21079,2,0 +2020-05-07,Garrard,Kentucky,21079,2,0 +2020-05-08,Garrard,Kentucky,21079,3,0 +2020-05-09,Garrard,Kentucky,21079,3,0 +2020-05-10,Garrard,Kentucky,21079,3,0 +2020-05-11,Garrard,Kentucky,21079,3,0 +2020-05-12,Garrard,Kentucky,21079,4,0 +2020-05-13,Garrard,Kentucky,21079,4,0 +2020-05-14,Garrard,Kentucky,21079,4,0 +2020-05-15,Garrard,Kentucky,21079,4,0 +2020-05-16,Garrard,Kentucky,21079,4,0 +2020-05-17,Garrard,Kentucky,21079,4,0 +2020-05-18,Garrard,Kentucky,21079,4,0 +2020-05-19,Garrard,Kentucky,21079,4,0 +2020-05-20,Garrard,Kentucky,21079,4,0 +2020-05-21,Garrard,Kentucky,21079,4,0 +2020-05-22,Garrard,Kentucky,21079,4,0 +2020-05-23,Garrard,Kentucky,21079,4,0 +2020-05-24,Garrard,Kentucky,21079,4,0 +2020-05-25,Garrard,Kentucky,21079,4,0 +2020-05-26,Garrard,Kentucky,21079,5,0 +2020-05-27,Garrard,Kentucky,21079,5,0 +2020-05-28,Garrard,Kentucky,21079,5,0 +2020-05-29,Garrard,Kentucky,21079,5,0 +2020-05-30,Garrard,Kentucky,21079,5,0 +2020-05-31,Garrard,Kentucky,21079,5,0 +2020-06-01,Garrard,Kentucky,21079,5,0 +2020-06-02,Garrard,Kentucky,21079,5,0 +2020-06-03,Garrard,Kentucky,21079,5,0 +2020-06-04,Garrard,Kentucky,21079,5,0 +2020-06-05,Garrard,Kentucky,21079,5,0 +2020-06-06,Garrard,Kentucky,21079,5,0 +2020-06-07,Garrard,Kentucky,21079,5,0 +2020-06-08,Garrard,Kentucky,21079,5,0 +2020-06-09,Garrard,Kentucky,21079,6,0 +2020-06-10,Garrard,Kentucky,21079,6,0 +2020-06-11,Garrard,Kentucky,21079,9,0 +2020-06-12,Garrard,Kentucky,21079,9,0 +2020-06-13,Garrard,Kentucky,21079,10,0 +2020-06-14,Garrard,Kentucky,21079,10,0 +2020-06-15,Garrard,Kentucky,21079,11,0 +2020-06-16,Garrard,Kentucky,21079,11,0 +2020-06-17,Garrard,Kentucky,21079,13,0 +2020-06-18,Garrard,Kentucky,21079,14,0 +2020-06-19,Garrard,Kentucky,21079,16,0 +2020-06-20,Garrard,Kentucky,21079,16,0 +2020-06-21,Garrard,Kentucky,21079,16,0 +2020-06-22,Garrard,Kentucky,21079,16,0 +2020-06-23,Garrard,Kentucky,21079,16,0 +2020-06-24,Garrard,Kentucky,21079,16,0 +2020-06-25,Garrard,Kentucky,21079,17,0 +2020-06-26,Garrard,Kentucky,21079,17,0 +2020-06-27,Garrard,Kentucky,21079,19,0 +2020-06-28,Garrard,Kentucky,21079,20,0 +2020-06-29,Garrard,Kentucky,21079,21,0 +2020-06-30,Garrard,Kentucky,21079,23,0 +2020-07-01,Garrard,Kentucky,21079,24,0 +2020-07-02,Garrard,Kentucky,21079,25,0 +2020-07-03,Garrard,Kentucky,21079,26,0 +2020-07-04,Garrard,Kentucky,21079,26,0 +2020-07-05,Garrard,Kentucky,21079,26,0 +2020-07-06,Garrard,Kentucky,21079,28,0 +2020-07-07,Garrard,Kentucky,21079,29,0 +2020-07-08,Garrard,Kentucky,21079,32,0 +2020-07-09,Garrard,Kentucky,21079,33,0 +2020-03-28,Grant,Kentucky,21081,1,0 +2020-03-29,Grant,Kentucky,21081,1,0 +2020-03-30,Grant,Kentucky,21081,1,0 +2020-03-31,Grant,Kentucky,21081,1,0 +2020-04-01,Grant,Kentucky,21081,1,0 +2020-04-02,Grant,Kentucky,21081,2,1 +2020-04-03,Grant,Kentucky,21081,2,1 +2020-04-04,Grant,Kentucky,21081,2,1 +2020-04-05,Grant,Kentucky,21081,5,1 +2020-04-06,Grant,Kentucky,21081,5,1 +2020-04-07,Grant,Kentucky,21081,9,1 +2020-04-08,Grant,Kentucky,21081,9,1 +2020-04-09,Grant,Kentucky,21081,11,1 +2020-04-10,Grant,Kentucky,21081,11,1 +2020-04-11,Grant,Kentucky,21081,13,1 +2020-04-12,Grant,Kentucky,21081,12,1 +2020-04-13,Grant,Kentucky,21081,14,1 +2020-04-14,Grant,Kentucky,21081,14,1 +2020-04-15,Grant,Kentucky,21081,16,1 +2020-04-16,Grant,Kentucky,21081,16,1 +2020-04-17,Grant,Kentucky,21081,16,1 +2020-04-18,Grant,Kentucky,21081,16,1 +2020-04-19,Grant,Kentucky,21081,16,1 +2020-04-20,Grant,Kentucky,21081,16,1 +2020-04-21,Grant,Kentucky,21081,17,2 +2020-04-22,Grant,Kentucky,21081,19,3 +2020-04-23,Grant,Kentucky,21081,18,3 +2020-04-24,Grant,Kentucky,21081,18,3 +2020-04-25,Grant,Kentucky,21081,18,3 +2020-04-26,Grant,Kentucky,21081,18,3 +2020-04-27,Grant,Kentucky,21081,18,3 +2020-04-28,Grant,Kentucky,21081,20,3 +2020-04-29,Grant,Kentucky,21081,20,3 +2020-04-30,Grant,Kentucky,21081,21,3 +2020-05-01,Grant,Kentucky,21081,21,3 +2020-05-02,Grant,Kentucky,21081,24,3 +2020-05-03,Grant,Kentucky,21081,25,3 +2020-05-04,Grant,Kentucky,21081,25,3 +2020-05-05,Grant,Kentucky,21081,26,3 +2020-05-06,Grant,Kentucky,21081,27,3 +2020-05-07,Grant,Kentucky,21081,27,3 +2020-05-08,Grant,Kentucky,21081,29,3 +2020-05-09,Grant,Kentucky,21081,30,3 +2020-05-10,Grant,Kentucky,21081,30,3 +2020-05-11,Grant,Kentucky,21081,31,3 +2020-05-12,Grant,Kentucky,21081,31,3 +2020-05-13,Grant,Kentucky,21081,31,3 +2020-05-14,Grant,Kentucky,21081,31,3 +2020-05-15,Grant,Kentucky,21081,32,3 +2020-05-16,Grant,Kentucky,21081,32,3 +2020-05-17,Grant,Kentucky,21081,32,3 +2020-05-18,Grant,Kentucky,21081,35,3 +2020-05-19,Grant,Kentucky,21081,35,3 +2020-05-20,Grant,Kentucky,21081,36,3 +2020-05-21,Grant,Kentucky,21081,36,3 +2020-05-22,Grant,Kentucky,21081,36,3 +2020-05-23,Grant,Kentucky,21081,37,3 +2020-05-24,Grant,Kentucky,21081,37,3 +2020-05-25,Grant,Kentucky,21081,37,3 +2020-05-26,Grant,Kentucky,21081,39,3 +2020-05-27,Grant,Kentucky,21081,39,4 +2020-05-28,Grant,Kentucky,21081,42,4 +2020-05-29,Grant,Kentucky,21081,44,4 +2020-05-30,Grant,Kentucky,21081,44,4 +2020-05-31,Grant,Kentucky,21081,44,4 +2020-06-01,Grant,Kentucky,21081,44,4 +2020-06-02,Grant,Kentucky,21081,45,4 +2020-06-03,Grant,Kentucky,21081,46,4 +2020-06-04,Grant,Kentucky,21081,47,4 +2020-06-05,Grant,Kentucky,21081,47,4 +2020-06-06,Grant,Kentucky,21081,47,4 +2020-06-07,Grant,Kentucky,21081,49,4 +2020-06-08,Grant,Kentucky,21081,51,4 +2020-06-09,Grant,Kentucky,21081,51,4 +2020-06-10,Grant,Kentucky,21081,51,4 +2020-06-11,Grant,Kentucky,21081,51,4 +2020-06-12,Grant,Kentucky,21081,52,4 +2020-06-13,Grant,Kentucky,21081,53,4 +2020-06-14,Grant,Kentucky,21081,53,4 +2020-06-15,Grant,Kentucky,21081,53,4 +2020-06-16,Grant,Kentucky,21081,53,4 +2020-06-17,Grant,Kentucky,21081,53,4 +2020-06-18,Grant,Kentucky,21081,53,4 +2020-06-19,Grant,Kentucky,21081,53,4 +2020-06-20,Grant,Kentucky,21081,53,4 +2020-06-21,Grant,Kentucky,21081,53,4 +2020-06-22,Grant,Kentucky,21081,53,4 +2020-06-23,Grant,Kentucky,21081,54,4 +2020-06-24,Grant,Kentucky,21081,55,4 +2020-06-25,Grant,Kentucky,21081,57,4 +2020-06-26,Grant,Kentucky,21081,57,4 +2020-06-27,Grant,Kentucky,21081,57,4 +2020-06-28,Grant,Kentucky,21081,57,4 +2020-06-29,Grant,Kentucky,21081,57,4 +2020-06-30,Grant,Kentucky,21081,57,4 +2020-07-01,Grant,Kentucky,21081,59,4 +2020-07-02,Grant,Kentucky,21081,60,4 +2020-07-03,Grant,Kentucky,21081,60,4 +2020-07-04,Grant,Kentucky,21081,60,4 +2020-07-05,Grant,Kentucky,21081,60,4 +2020-07-06,Grant,Kentucky,21081,60,4 +2020-07-07,Grant,Kentucky,21081,61,4 +2020-07-08,Grant,Kentucky,21081,62,4 +2020-07-09,Grant,Kentucky,21081,62,4 +2020-03-31,Graves,Kentucky,21083,1,0 +2020-04-01,Graves,Kentucky,21083,1,0 +2020-04-02,Graves,Kentucky,21083,1,0 +2020-04-03,Graves,Kentucky,21083,1,0 +2020-04-04,Graves,Kentucky,21083,1,0 +2020-04-05,Graves,Kentucky,21083,2,0 +2020-04-06,Graves,Kentucky,21083,2,0 +2020-04-07,Graves,Kentucky,21083,3,0 +2020-04-08,Graves,Kentucky,21083,5,0 +2020-04-09,Graves,Kentucky,21083,5,0 +2020-04-10,Graves,Kentucky,21083,5,0 +2020-04-11,Graves,Kentucky,21083,9,0 +2020-04-12,Graves,Kentucky,21083,10,0 +2020-04-13,Graves,Kentucky,21083,13,0 +2020-04-14,Graves,Kentucky,21083,16,0 +2020-04-15,Graves,Kentucky,21083,19,0 +2020-04-16,Graves,Kentucky,21083,24,1 +2020-04-17,Graves,Kentucky,21083,28,2 +2020-04-18,Graves,Kentucky,21083,41,2 +2020-04-19,Graves,Kentucky,21083,51,3 +2020-04-20,Graves,Kentucky,21083,63,3 +2020-04-21,Graves,Kentucky,21083,68,6 +2020-04-22,Graves,Kentucky,21083,84,7 +2020-04-23,Graves,Kentucky,21083,84,7 +2020-04-24,Graves,Kentucky,21083,89,10 +2020-04-25,Graves,Kentucky,21083,109,11 +2020-04-26,Graves,Kentucky,21083,114,11 +2020-04-27,Graves,Kentucky,21083,119,11 +2020-04-28,Graves,Kentucky,21083,122,13 +2020-04-29,Graves,Kentucky,21083,124,13 +2020-04-30,Graves,Kentucky,21083,131,13 +2020-05-01,Graves,Kentucky,21083,137,14 +2020-05-02,Graves,Kentucky,21083,137,14 +2020-05-03,Graves,Kentucky,21083,138,14 +2020-05-04,Graves,Kentucky,21083,141,14 +2020-05-05,Graves,Kentucky,21083,143,14 +2020-05-06,Graves,Kentucky,21083,142,14 +2020-05-07,Graves,Kentucky,21083,145,14 +2020-05-08,Graves,Kentucky,21083,146,14 +2020-05-09,Graves,Kentucky,21083,148,18 +2020-05-10,Graves,Kentucky,21083,148,18 +2020-05-11,Graves,Kentucky,21083,149,18 +2020-05-12,Graves,Kentucky,21083,149,18 +2020-05-13,Graves,Kentucky,21083,149,18 +2020-05-14,Graves,Kentucky,21083,152,18 +2020-05-15,Graves,Kentucky,21083,152,18 +2020-05-16,Graves,Kentucky,21083,152,18 +2020-05-17,Graves,Kentucky,21083,152,18 +2020-05-18,Graves,Kentucky,21083,154,18 +2020-05-19,Graves,Kentucky,21083,154,18 +2020-05-20,Graves,Kentucky,21083,152,19 +2020-05-21,Graves,Kentucky,21083,152,19 +2020-05-22,Graves,Kentucky,21083,152,19 +2020-05-23,Graves,Kentucky,21083,157,19 +2020-05-24,Graves,Kentucky,21083,157,19 +2020-05-25,Graves,Kentucky,21083,157,19 +2020-05-26,Graves,Kentucky,21083,157,19 +2020-05-27,Graves,Kentucky,21083,159,19 +2020-05-28,Graves,Kentucky,21083,159,19 +2020-05-29,Graves,Kentucky,21083,162,19 +2020-05-30,Graves,Kentucky,21083,165,19 +2020-05-31,Graves,Kentucky,21083,165,19 +2020-06-01,Graves,Kentucky,21083,166,19 +2020-06-02,Graves,Kentucky,21083,167,19 +2020-06-03,Graves,Kentucky,21083,166,19 +2020-06-04,Graves,Kentucky,21083,166,19 +2020-06-05,Graves,Kentucky,21083,166,20 +2020-06-06,Graves,Kentucky,21083,166,20 +2020-06-07,Graves,Kentucky,21083,166,20 +2020-06-08,Graves,Kentucky,21083,166,20 +2020-06-09,Graves,Kentucky,21083,167,20 +2020-06-10,Graves,Kentucky,21083,167,20 +2020-06-11,Graves,Kentucky,21083,167,20 +2020-06-12,Graves,Kentucky,21083,168,20 +2020-06-13,Graves,Kentucky,21083,173,20 +2020-06-14,Graves,Kentucky,21083,173,20 +2020-06-15,Graves,Kentucky,21083,175,20 +2020-06-16,Graves,Kentucky,21083,175,20 +2020-06-17,Graves,Kentucky,21083,176,20 +2020-06-18,Graves,Kentucky,21083,180,20 +2020-06-19,Graves,Kentucky,21083,183,20 +2020-06-20,Graves,Kentucky,21083,183,20 +2020-06-21,Graves,Kentucky,21083,183,20 +2020-06-22,Graves,Kentucky,21083,185,20 +2020-06-23,Graves,Kentucky,21083,185,21 +2020-06-24,Graves,Kentucky,21083,188,21 +2020-06-25,Graves,Kentucky,21083,190,21 +2020-06-26,Graves,Kentucky,21083,192,21 +2020-06-27,Graves,Kentucky,21083,196,21 +2020-06-28,Graves,Kentucky,21083,199,21 +2020-06-29,Graves,Kentucky,21083,200,21 +2020-06-30,Graves,Kentucky,21083,206,21 +2020-07-01,Graves,Kentucky,21083,207,21 +2020-07-02,Graves,Kentucky,21083,214,21 +2020-07-03,Graves,Kentucky,21083,219,21 +2020-07-04,Graves,Kentucky,21083,219,21 +2020-07-05,Graves,Kentucky,21083,219,21 +2020-07-06,Graves,Kentucky,21083,231,21 +2020-07-07,Graves,Kentucky,21083,233,21 +2020-07-08,Graves,Kentucky,21083,246,21 +2020-07-09,Graves,Kentucky,21083,250,21 +2020-03-25,Grayson,Kentucky,21085,2,0 +2020-03-26,Grayson,Kentucky,21085,2,0 +2020-03-27,Grayson,Kentucky,21085,2,0 +2020-03-28,Grayson,Kentucky,21085,2,0 +2020-03-29,Grayson,Kentucky,21085,2,0 +2020-03-30,Grayson,Kentucky,21085,2,0 +2020-03-31,Grayson,Kentucky,21085,2,0 +2020-04-01,Grayson,Kentucky,21085,2,0 +2020-04-02,Grayson,Kentucky,21085,2,0 +2020-04-03,Grayson,Kentucky,21085,2,0 +2020-04-04,Grayson,Kentucky,21085,2,0 +2020-04-05,Grayson,Kentucky,21085,2,0 +2020-04-06,Grayson,Kentucky,21085,2,0 +2020-04-07,Grayson,Kentucky,21085,2,0 +2020-04-08,Grayson,Kentucky,21085,2,0 +2020-04-09,Grayson,Kentucky,21085,2,0 +2020-04-10,Grayson,Kentucky,21085,3,0 +2020-04-11,Grayson,Kentucky,21085,4,0 +2020-04-12,Grayson,Kentucky,21085,4,0 +2020-04-13,Grayson,Kentucky,21085,5,0 +2020-04-14,Grayson,Kentucky,21085,5,0 +2020-04-15,Grayson,Kentucky,21085,5,0 +2020-04-16,Grayson,Kentucky,21085,6,0 +2020-04-17,Grayson,Kentucky,21085,8,0 +2020-04-18,Grayson,Kentucky,21085,12,1 +2020-04-19,Grayson,Kentucky,21085,14,1 +2020-04-20,Grayson,Kentucky,21085,16,1 +2020-04-21,Grayson,Kentucky,21085,16,1 +2020-04-22,Grayson,Kentucky,21085,23,1 +2020-04-23,Grayson,Kentucky,21085,25,1 +2020-04-24,Grayson,Kentucky,21085,37,1 +2020-04-25,Grayson,Kentucky,21085,42,1 +2020-04-26,Grayson,Kentucky,21085,60,1 +2020-04-27,Grayson,Kentucky,21085,60,1 +2020-04-28,Grayson,Kentucky,21085,60,1 +2020-04-29,Grayson,Kentucky,21085,62,3 +2020-04-30,Grayson,Kentucky,21085,65,5 +2020-05-01,Grayson,Kentucky,21085,69,5 +2020-05-02,Grayson,Kentucky,21085,69,5 +2020-05-03,Grayson,Kentucky,21085,79,5 +2020-05-04,Grayson,Kentucky,21085,84,5 +2020-05-05,Grayson,Kentucky,21085,91,5 +2020-05-06,Grayson,Kentucky,21085,90,5 +2020-05-07,Grayson,Kentucky,21085,93,6 +2020-05-08,Grayson,Kentucky,21085,93,6 +2020-05-09,Grayson,Kentucky,21085,95,6 +2020-05-10,Grayson,Kentucky,21085,95,6 +2020-05-11,Grayson,Kentucky,21085,98,6 +2020-05-12,Grayson,Kentucky,21085,99,6 +2020-05-13,Grayson,Kentucky,21085,99,6 +2020-05-14,Grayson,Kentucky,21085,101,8 +2020-05-15,Grayson,Kentucky,21085,103,8 +2020-05-16,Grayson,Kentucky,21085,103,8 +2020-05-17,Grayson,Kentucky,21085,103,8 +2020-05-18,Grayson,Kentucky,21085,107,8 +2020-05-19,Grayson,Kentucky,21085,109,8 +2020-05-20,Grayson,Kentucky,21085,110,8 +2020-05-21,Grayson,Kentucky,21085,119,8 +2020-05-22,Grayson,Kentucky,21085,120,8 +2020-05-23,Grayson,Kentucky,21085,121,8 +2020-05-24,Grayson,Kentucky,21085,121,8 +2020-05-25,Grayson,Kentucky,21085,121,8 +2020-05-26,Grayson,Kentucky,21085,124,8 +2020-05-27,Grayson,Kentucky,21085,124,8 +2020-05-28,Grayson,Kentucky,21085,124,8 +2020-05-29,Grayson,Kentucky,21085,124,8 +2020-05-30,Grayson,Kentucky,21085,124,8 +2020-05-31,Grayson,Kentucky,21085,124,8 +2020-06-01,Grayson,Kentucky,21085,126,9 +2020-06-02,Grayson,Kentucky,21085,126,9 +2020-06-03,Grayson,Kentucky,21085,127,9 +2020-06-04,Grayson,Kentucky,21085,132,10 +2020-06-05,Grayson,Kentucky,21085,134,10 +2020-06-06,Grayson,Kentucky,21085,135,10 +2020-06-07,Grayson,Kentucky,21085,135,10 +2020-06-08,Grayson,Kentucky,21085,135,10 +2020-06-09,Grayson,Kentucky,21085,135,10 +2020-06-10,Grayson,Kentucky,21085,135,10 +2020-06-11,Grayson,Kentucky,21085,135,10 +2020-06-12,Grayson,Kentucky,21085,136,10 +2020-06-13,Grayson,Kentucky,21085,137,11 +2020-06-14,Grayson,Kentucky,21085,137,11 +2020-06-15,Grayson,Kentucky,21085,137,11 +2020-06-16,Grayson,Kentucky,21085,137,11 +2020-06-17,Grayson,Kentucky,21085,137,11 +2020-06-18,Grayson,Kentucky,21085,137,10 +2020-06-19,Grayson,Kentucky,21085,137,10 +2020-06-20,Grayson,Kentucky,21085,137,10 +2020-06-21,Grayson,Kentucky,21085,137,10 +2020-06-22,Grayson,Kentucky,21085,137,10 +2020-06-23,Grayson,Kentucky,21085,137,10 +2020-06-24,Grayson,Kentucky,21085,137,10 +2020-06-25,Grayson,Kentucky,21085,137,10 +2020-06-26,Grayson,Kentucky,21085,137,10 +2020-06-27,Grayson,Kentucky,21085,137,10 +2020-06-28,Grayson,Kentucky,21085,137,10 +2020-06-29,Grayson,Kentucky,21085,137,10 +2020-06-30,Grayson,Kentucky,21085,138,10 +2020-07-01,Grayson,Kentucky,21085,138,10 +2020-07-02,Grayson,Kentucky,21085,139,11 +2020-07-03,Grayson,Kentucky,21085,140,11 +2020-07-04,Grayson,Kentucky,21085,140,11 +2020-07-05,Grayson,Kentucky,21085,140,11 +2020-07-06,Grayson,Kentucky,21085,140,11 +2020-07-07,Grayson,Kentucky,21085,140,11 +2020-07-08,Grayson,Kentucky,21085,140,11 +2020-07-09,Grayson,Kentucky,21085,143,11 +2020-04-07,Green,Kentucky,21087,1,0 +2020-04-08,Green,Kentucky,21087,2,0 +2020-04-09,Green,Kentucky,21087,2,0 +2020-04-10,Green,Kentucky,21087,2,0 +2020-04-11,Green,Kentucky,21087,2,0 +2020-04-12,Green,Kentucky,21087,1,0 +2020-04-13,Green,Kentucky,21087,1,0 +2020-04-14,Green,Kentucky,21087,1,0 +2020-04-15,Green,Kentucky,21087,1,0 +2020-04-16,Green,Kentucky,21087,1,0 +2020-04-17,Green,Kentucky,21087,1,0 +2020-04-18,Green,Kentucky,21087,1,0 +2020-04-19,Green,Kentucky,21087,1,0 +2020-04-20,Green,Kentucky,21087,1,0 +2020-04-21,Green,Kentucky,21087,1,0 +2020-04-22,Green,Kentucky,21087,1,0 +2020-04-23,Green,Kentucky,21087,1,0 +2020-04-24,Green,Kentucky,21087,1,0 +2020-04-25,Green,Kentucky,21087,1,0 +2020-04-26,Green,Kentucky,21087,1,0 +2020-04-27,Green,Kentucky,21087,1,0 +2020-04-28,Green,Kentucky,21087,1,0 +2020-04-29,Green,Kentucky,21087,1,0 +2020-04-30,Green,Kentucky,21087,1,0 +2020-05-01,Green,Kentucky,21087,1,0 +2020-05-02,Green,Kentucky,21087,1,0 +2020-05-03,Green,Kentucky,21087,1,0 +2020-05-04,Green,Kentucky,21087,1,0 +2020-05-05,Green,Kentucky,21087,1,0 +2020-05-06,Green,Kentucky,21087,1,0 +2020-05-07,Green,Kentucky,21087,1,0 +2020-05-08,Green,Kentucky,21087,1,0 +2020-05-09,Green,Kentucky,21087,1,0 +2020-05-10,Green,Kentucky,21087,1,0 +2020-05-11,Green,Kentucky,21087,1,0 +2020-05-12,Green,Kentucky,21087,1,0 +2020-05-13,Green,Kentucky,21087,1,0 +2020-05-14,Green,Kentucky,21087,1,0 +2020-05-15,Green,Kentucky,21087,1,0 +2020-05-16,Green,Kentucky,21087,1,0 +2020-05-17,Green,Kentucky,21087,1,0 +2020-05-18,Green,Kentucky,21087,1,0 +2020-05-19,Green,Kentucky,21087,1,0 +2020-05-20,Green,Kentucky,21087,1,0 +2020-05-21,Green,Kentucky,21087,1,0 +2020-05-22,Green,Kentucky,21087,1,0 +2020-05-23,Green,Kentucky,21087,1,0 +2020-05-24,Green,Kentucky,21087,1,0 +2020-05-25,Green,Kentucky,21087,1,0 +2020-05-26,Green,Kentucky,21087,1,0 +2020-05-27,Green,Kentucky,21087,1,0 +2020-05-28,Green,Kentucky,21087,1,0 +2020-05-29,Green,Kentucky,21087,1,0 +2020-05-30,Green,Kentucky,21087,1,0 +2020-05-31,Green,Kentucky,21087,1,0 +2020-06-01,Green,Kentucky,21087,1,0 +2020-06-02,Green,Kentucky,21087,1,0 +2020-06-03,Green,Kentucky,21087,1,0 +2020-06-04,Green,Kentucky,21087,2,0 +2020-06-05,Green,Kentucky,21087,2,0 +2020-06-06,Green,Kentucky,21087,2,0 +2020-06-07,Green,Kentucky,21087,2,0 +2020-06-08,Green,Kentucky,21087,2,0 +2020-06-09,Green,Kentucky,21087,2,0 +2020-06-10,Green,Kentucky,21087,2,0 +2020-06-11,Green,Kentucky,21087,2,0 +2020-06-12,Green,Kentucky,21087,2,0 +2020-06-13,Green,Kentucky,21087,3,0 +2020-06-14,Green,Kentucky,21087,3,0 +2020-06-15,Green,Kentucky,21087,3,0 +2020-06-16,Green,Kentucky,21087,3,0 +2020-06-17,Green,Kentucky,21087,3,1 +2020-06-18,Green,Kentucky,21087,3,1 +2020-06-19,Green,Kentucky,21087,4,1 +2020-06-20,Green,Kentucky,21087,6,1 +2020-06-21,Green,Kentucky,21087,6,1 +2020-06-22,Green,Kentucky,21087,6,1 +2020-06-23,Green,Kentucky,21087,4,1 +2020-06-24,Green,Kentucky,21087,4,1 +2020-06-25,Green,Kentucky,21087,4,1 +2020-06-26,Green,Kentucky,21087,4,1 +2020-06-27,Green,Kentucky,21087,4,1 +2020-06-28,Green,Kentucky,21087,4,1 +2020-06-29,Green,Kentucky,21087,4,1 +2020-06-30,Green,Kentucky,21087,4,1 +2020-07-01,Green,Kentucky,21087,5,1 +2020-07-02,Green,Kentucky,21087,5,1 +2020-07-03,Green,Kentucky,21087,5,1 +2020-07-04,Green,Kentucky,21087,5,1 +2020-07-05,Green,Kentucky,21087,5,1 +2020-07-06,Green,Kentucky,21087,8,1 +2020-07-07,Green,Kentucky,21087,9,1 +2020-07-08,Green,Kentucky,21087,10,1 +2020-07-09,Green,Kentucky,21087,11,1 +2020-04-05,Greenup,Kentucky,21089,1,0 +2020-04-06,Greenup,Kentucky,21089,1,0 +2020-04-07,Greenup,Kentucky,21089,2,0 +2020-04-08,Greenup,Kentucky,21089,2,0 +2020-04-09,Greenup,Kentucky,21089,2,0 +2020-04-10,Greenup,Kentucky,21089,2,0 +2020-04-11,Greenup,Kentucky,21089,5,0 +2020-04-12,Greenup,Kentucky,21089,5,0 +2020-04-13,Greenup,Kentucky,21089,5,0 +2020-04-14,Greenup,Kentucky,21089,7,0 +2020-04-15,Greenup,Kentucky,21089,7,0 +2020-04-16,Greenup,Kentucky,21089,11,0 +2020-04-17,Greenup,Kentucky,21089,10,0 +2020-04-18,Greenup,Kentucky,21089,10,0 +2020-04-19,Greenup,Kentucky,21089,10,0 +2020-04-20,Greenup,Kentucky,21089,10,0 +2020-04-21,Greenup,Kentucky,21089,10,0 +2020-04-22,Greenup,Kentucky,21089,10,0 +2020-04-23,Greenup,Kentucky,21089,10,0 +2020-04-24,Greenup,Kentucky,21089,10,0 +2020-04-25,Greenup,Kentucky,21089,11,0 +2020-04-26,Greenup,Kentucky,21089,11,0 +2020-04-27,Greenup,Kentucky,21089,11,0 +2020-04-28,Greenup,Kentucky,21089,11,0 +2020-04-29,Greenup,Kentucky,21089,11,0 +2020-04-30,Greenup,Kentucky,21089,11,0 +2020-05-01,Greenup,Kentucky,21089,11,0 +2020-05-02,Greenup,Kentucky,21089,11,0 +2020-05-03,Greenup,Kentucky,21089,12,0 +2020-05-04,Greenup,Kentucky,21089,12,0 +2020-05-05,Greenup,Kentucky,21089,12,0 +2020-05-06,Greenup,Kentucky,21089,12,0 +2020-05-07,Greenup,Kentucky,21089,12,0 +2020-05-08,Greenup,Kentucky,21089,12,0 +2020-05-09,Greenup,Kentucky,21089,12,0 +2020-05-10,Greenup,Kentucky,21089,12,0 +2020-05-11,Greenup,Kentucky,21089,13,0 +2020-05-12,Greenup,Kentucky,21089,13,0 +2020-05-13,Greenup,Kentucky,21089,13,0 +2020-05-14,Greenup,Kentucky,21089,13,0 +2020-05-15,Greenup,Kentucky,21089,13,0 +2020-05-16,Greenup,Kentucky,21089,13,0 +2020-05-17,Greenup,Kentucky,21089,13,0 +2020-05-18,Greenup,Kentucky,21089,13,0 +2020-05-19,Greenup,Kentucky,21089,13,0 +2020-05-20,Greenup,Kentucky,21089,13,0 +2020-05-21,Greenup,Kentucky,21089,13,0 +2020-05-22,Greenup,Kentucky,21089,13,0 +2020-05-23,Greenup,Kentucky,21089,13,0 +2020-05-24,Greenup,Kentucky,21089,13,0 +2020-05-25,Greenup,Kentucky,21089,13,0 +2020-05-26,Greenup,Kentucky,21089,13,0 +2020-05-27,Greenup,Kentucky,21089,14,0 +2020-05-28,Greenup,Kentucky,21089,14,0 +2020-05-29,Greenup,Kentucky,21089,14,0 +2020-05-30,Greenup,Kentucky,21089,14,0 +2020-05-31,Greenup,Kentucky,21089,14,0 +2020-06-01,Greenup,Kentucky,21089,14,0 +2020-06-02,Greenup,Kentucky,21089,14,0 +2020-06-03,Greenup,Kentucky,21089,14,0 +2020-06-04,Greenup,Kentucky,21089,14,0 +2020-06-05,Greenup,Kentucky,21089,14,0 +2020-06-06,Greenup,Kentucky,21089,14,0 +2020-06-07,Greenup,Kentucky,21089,14,0 +2020-06-08,Greenup,Kentucky,21089,14,0 +2020-06-09,Greenup,Kentucky,21089,14,0 +2020-06-10,Greenup,Kentucky,21089,14,0 +2020-06-11,Greenup,Kentucky,21089,14,0 +2020-06-12,Greenup,Kentucky,21089,14,0 +2020-06-13,Greenup,Kentucky,21089,16,0 +2020-06-14,Greenup,Kentucky,21089,16,0 +2020-06-15,Greenup,Kentucky,21089,16,0 +2020-06-16,Greenup,Kentucky,21089,16,0 +2020-06-17,Greenup,Kentucky,21089,16,0 +2020-06-18,Greenup,Kentucky,21089,16,0 +2020-06-19,Greenup,Kentucky,21089,16,0 +2020-06-20,Greenup,Kentucky,21089,16,0 +2020-06-21,Greenup,Kentucky,21089,19,0 +2020-06-22,Greenup,Kentucky,21089,20,0 +2020-06-23,Greenup,Kentucky,21089,21,0 +2020-06-24,Greenup,Kentucky,21089,22,0 +2020-06-25,Greenup,Kentucky,21089,28,0 +2020-06-26,Greenup,Kentucky,21089,28,0 +2020-06-27,Greenup,Kentucky,21089,28,0 +2020-06-28,Greenup,Kentucky,21089,28,0 +2020-06-29,Greenup,Kentucky,21089,28,0 +2020-06-30,Greenup,Kentucky,21089,28,0 +2020-07-01,Greenup,Kentucky,21089,28,0 +2020-07-02,Greenup,Kentucky,21089,30,0 +2020-07-03,Greenup,Kentucky,21089,33,0 +2020-07-04,Greenup,Kentucky,21089,33,0 +2020-07-05,Greenup,Kentucky,21089,33,0 +2020-07-06,Greenup,Kentucky,21089,36,0 +2020-07-07,Greenup,Kentucky,21089,40,0 +2020-07-08,Greenup,Kentucky,21089,40,0 +2020-07-09,Greenup,Kentucky,21089,40,0 +2020-03-31,Hancock,Kentucky,21091,1,0 +2020-04-01,Hancock,Kentucky,21091,1,0 +2020-04-02,Hancock,Kentucky,21091,1,0 +2020-04-03,Hancock,Kentucky,21091,1,0 +2020-04-04,Hancock,Kentucky,21091,1,0 +2020-04-05,Hancock,Kentucky,21091,2,0 +2020-04-06,Hancock,Kentucky,21091,2,0 +2020-04-07,Hancock,Kentucky,21091,2,0 +2020-04-08,Hancock,Kentucky,21091,2,0 +2020-04-09,Hancock,Kentucky,21091,2,0 +2020-04-10,Hancock,Kentucky,21091,2,0 +2020-04-11,Hancock,Kentucky,21091,2,0 +2020-04-12,Hancock,Kentucky,21091,2,0 +2020-04-13,Hancock,Kentucky,21091,2,0 +2020-04-14,Hancock,Kentucky,21091,2,0 +2020-04-15,Hancock,Kentucky,21091,2,0 +2020-04-16,Hancock,Kentucky,21091,6,0 +2020-04-17,Hancock,Kentucky,21091,6,0 +2020-04-18,Hancock,Kentucky,21091,6,0 +2020-04-19,Hancock,Kentucky,21091,6,0 +2020-04-20,Hancock,Kentucky,21091,6,0 +2020-04-21,Hancock,Kentucky,21091,6,0 +2020-04-22,Hancock,Kentucky,21091,6,0 +2020-04-23,Hancock,Kentucky,21091,6,0 +2020-04-24,Hancock,Kentucky,21091,6,0 +2020-04-25,Hancock,Kentucky,21091,6,0 +2020-04-26,Hancock,Kentucky,21091,6,0 +2020-04-27,Hancock,Kentucky,21091,6,0 +2020-04-28,Hancock,Kentucky,21091,6,0 +2020-04-29,Hancock,Kentucky,21091,6,0 +2020-04-30,Hancock,Kentucky,21091,6,0 +2020-05-01,Hancock,Kentucky,21091,6,0 +2020-05-02,Hancock,Kentucky,21091,6,0 +2020-05-03,Hancock,Kentucky,21091,6,0 +2020-05-04,Hancock,Kentucky,21091,6,0 +2020-05-05,Hancock,Kentucky,21091,6,0 +2020-05-06,Hancock,Kentucky,21091,6,0 +2020-05-07,Hancock,Kentucky,21091,6,0 +2020-05-08,Hancock,Kentucky,21091,6,0 +2020-05-09,Hancock,Kentucky,21091,6,0 +2020-05-10,Hancock,Kentucky,21091,6,0 +2020-05-11,Hancock,Kentucky,21091,6,0 +2020-05-12,Hancock,Kentucky,21091,6,0 +2020-05-13,Hancock,Kentucky,21091,6,0 +2020-05-14,Hancock,Kentucky,21091,7,0 +2020-05-15,Hancock,Kentucky,21091,7,0 +2020-05-16,Hancock,Kentucky,21091,7,0 +2020-05-17,Hancock,Kentucky,21091,7,0 +2020-05-18,Hancock,Kentucky,21091,7,0 +2020-05-19,Hancock,Kentucky,21091,7,0 +2020-05-20,Hancock,Kentucky,21091,7,0 +2020-05-21,Hancock,Kentucky,21091,7,0 +2020-05-22,Hancock,Kentucky,21091,7,0 +2020-05-23,Hancock,Kentucky,21091,7,0 +2020-05-24,Hancock,Kentucky,21091,7,0 +2020-05-25,Hancock,Kentucky,21091,7,0 +2020-05-26,Hancock,Kentucky,21091,7,0 +2020-05-27,Hancock,Kentucky,21091,7,0 +2020-05-28,Hancock,Kentucky,21091,7,0 +2020-05-29,Hancock,Kentucky,21091,7,0 +2020-05-30,Hancock,Kentucky,21091,8,0 +2020-05-31,Hancock,Kentucky,21091,8,0 +2020-06-01,Hancock,Kentucky,21091,8,0 +2020-06-02,Hancock,Kentucky,21091,8,0 +2020-06-03,Hancock,Kentucky,21091,8,0 +2020-06-04,Hancock,Kentucky,21091,8,0 +2020-06-05,Hancock,Kentucky,21091,9,0 +2020-06-06,Hancock,Kentucky,21091,9,0 +2020-06-07,Hancock,Kentucky,21091,9,0 +2020-06-08,Hancock,Kentucky,21091,9,0 +2020-06-09,Hancock,Kentucky,21091,9,0 +2020-06-10,Hancock,Kentucky,21091,9,0 +2020-06-11,Hancock,Kentucky,21091,10,0 +2020-06-12,Hancock,Kentucky,21091,11,0 +2020-06-13,Hancock,Kentucky,21091,11,0 +2020-06-14,Hancock,Kentucky,21091,12,0 +2020-06-15,Hancock,Kentucky,21091,12,0 +2020-06-16,Hancock,Kentucky,21091,12,0 +2020-06-17,Hancock,Kentucky,21091,13,0 +2020-06-18,Hancock,Kentucky,21091,13,0 +2020-06-19,Hancock,Kentucky,21091,14,0 +2020-06-20,Hancock,Kentucky,21091,14,0 +2020-06-21,Hancock,Kentucky,21091,14,0 +2020-06-22,Hancock,Kentucky,21091,14,0 +2020-06-23,Hancock,Kentucky,21091,15,0 +2020-06-24,Hancock,Kentucky,21091,15,0 +2020-06-25,Hancock,Kentucky,21091,16,0 +2020-06-26,Hancock,Kentucky,21091,17,0 +2020-06-27,Hancock,Kentucky,21091,18,0 +2020-06-28,Hancock,Kentucky,21091,18,0 +2020-06-29,Hancock,Kentucky,21091,18,0 +2020-06-30,Hancock,Kentucky,21091,18,0 +2020-07-01,Hancock,Kentucky,21091,18,0 +2020-07-02,Hancock,Kentucky,21091,19,0 +2020-07-03,Hancock,Kentucky,21091,19,0 +2020-07-04,Hancock,Kentucky,21091,19,0 +2020-07-05,Hancock,Kentucky,21091,19,0 +2020-07-06,Hancock,Kentucky,21091,19,0 +2020-07-07,Hancock,Kentucky,21091,19,0 +2020-07-08,Hancock,Kentucky,21091,22,0 +2020-07-09,Hancock,Kentucky,21091,22,0 +2020-03-22,Hardin,Kentucky,21093,1,0 +2020-03-23,Hardin,Kentucky,21093,2,0 +2020-03-24,Hardin,Kentucky,21093,2,0 +2020-03-25,Hardin,Kentucky,21093,2,0 +2020-03-26,Hardin,Kentucky,21093,2,0 +2020-03-27,Hardin,Kentucky,21093,5,0 +2020-03-28,Hardin,Kentucky,21093,5,0 +2020-03-29,Hardin,Kentucky,21093,5,0 +2020-03-30,Hardin,Kentucky,21093,5,0 +2020-03-31,Hardin,Kentucky,21093,6,0 +2020-04-01,Hardin,Kentucky,21093,7,0 +2020-04-02,Hardin,Kentucky,21093,7,0 +2020-04-03,Hardin,Kentucky,21093,7,0 +2020-04-04,Hardin,Kentucky,21093,10,0 +2020-04-05,Hardin,Kentucky,21093,10,0 +2020-04-06,Hardin,Kentucky,21093,10,0 +2020-04-07,Hardin,Kentucky,21093,10,0 +2020-04-08,Hardin,Kentucky,21093,11,0 +2020-04-09,Hardin,Kentucky,21093,11,0 +2020-04-10,Hardin,Kentucky,21093,17,0 +2020-04-11,Hardin,Kentucky,21093,21,0 +2020-04-12,Hardin,Kentucky,21093,24,0 +2020-04-13,Hardin,Kentucky,21093,24,0 +2020-04-14,Hardin,Kentucky,21093,26,0 +2020-04-15,Hardin,Kentucky,21093,27,0 +2020-04-16,Hardin,Kentucky,21093,27,0 +2020-04-17,Hardin,Kentucky,21093,29,0 +2020-04-18,Hardin,Kentucky,21093,29,0 +2020-04-19,Hardin,Kentucky,21093,29,0 +2020-04-20,Hardin,Kentucky,21093,29,0 +2020-04-21,Hardin,Kentucky,21093,30,0 +2020-04-22,Hardin,Kentucky,21093,32,0 +2020-04-23,Hardin,Kentucky,21093,32,0 +2020-04-24,Hardin,Kentucky,21093,32,0 +2020-04-25,Hardin,Kentucky,21093,34,0 +2020-04-26,Hardin,Kentucky,21093,35,0 +2020-04-27,Hardin,Kentucky,21093,37,0 +2020-04-28,Hardin,Kentucky,21093,37,0 +2020-04-29,Hardin,Kentucky,21093,37,0 +2020-04-30,Hardin,Kentucky,21093,40,0 +2020-05-01,Hardin,Kentucky,21093,44,0 +2020-05-02,Hardin,Kentucky,21093,44,0 +2020-05-03,Hardin,Kentucky,21093,48,0 +2020-05-04,Hardin,Kentucky,21093,49,1 +2020-05-05,Hardin,Kentucky,21093,52,1 +2020-05-06,Hardin,Kentucky,21093,55,1 +2020-05-07,Hardin,Kentucky,21093,56,2 +2020-05-08,Hardin,Kentucky,21093,61,2 +2020-05-09,Hardin,Kentucky,21093,61,2 +2020-05-10,Hardin,Kentucky,21093,61,2 +2020-05-11,Hardin,Kentucky,21093,61,2 +2020-05-12,Hardin,Kentucky,21093,63,2 +2020-05-13,Hardin,Kentucky,21093,63,2 +2020-05-14,Hardin,Kentucky,21093,72,2 +2020-05-15,Hardin,Kentucky,21093,71,2 +2020-05-16,Hardin,Kentucky,21093,73,2 +2020-05-17,Hardin,Kentucky,21093,73,2 +2020-05-18,Hardin,Kentucky,21093,84,2 +2020-05-19,Hardin,Kentucky,21093,85,2 +2020-05-20,Hardin,Kentucky,21093,88,2 +2020-05-21,Hardin,Kentucky,21093,88,2 +2020-05-22,Hardin,Kentucky,21093,90,2 +2020-05-23,Hardin,Kentucky,21093,96,2 +2020-05-24,Hardin,Kentucky,21093,96,2 +2020-05-25,Hardin,Kentucky,21093,96,2 +2020-05-26,Hardin,Kentucky,21093,97,2 +2020-05-27,Hardin,Kentucky,21093,98,2 +2020-05-28,Hardin,Kentucky,21093,99,2 +2020-05-29,Hardin,Kentucky,21093,100,2 +2020-05-30,Hardin,Kentucky,21093,102,2 +2020-05-31,Hardin,Kentucky,21093,102,2 +2020-06-01,Hardin,Kentucky,21093,103,2 +2020-06-02,Hardin,Kentucky,21093,106,2 +2020-06-03,Hardin,Kentucky,21093,109,2 +2020-06-04,Hardin,Kentucky,21093,111,2 +2020-06-05,Hardin,Kentucky,21093,119,2 +2020-06-06,Hardin,Kentucky,21093,120,2 +2020-06-07,Hardin,Kentucky,21093,120,2 +2020-06-08,Hardin,Kentucky,21093,120,4 +2020-06-09,Hardin,Kentucky,21093,122,4 +2020-06-10,Hardin,Kentucky,21093,125,4 +2020-06-11,Hardin,Kentucky,21093,127,4 +2020-06-12,Hardin,Kentucky,21093,133,4 +2020-06-13,Hardin,Kentucky,21093,133,4 +2020-06-14,Hardin,Kentucky,21093,133,4 +2020-06-15,Hardin,Kentucky,21093,133,5 +2020-06-16,Hardin,Kentucky,21093,133,5 +2020-06-17,Hardin,Kentucky,21093,135,5 +2020-06-18,Hardin,Kentucky,21093,135,5 +2020-06-19,Hardin,Kentucky,21093,135,5 +2020-06-20,Hardin,Kentucky,21093,134,5 +2020-06-21,Hardin,Kentucky,21093,134,5 +2020-06-22,Hardin,Kentucky,21093,134,5 +2020-06-23,Hardin,Kentucky,21093,134,5 +2020-06-24,Hardin,Kentucky,21093,136,5 +2020-06-25,Hardin,Kentucky,21093,138,5 +2020-06-26,Hardin,Kentucky,21093,140,5 +2020-06-27,Hardin,Kentucky,21093,145,5 +2020-06-28,Hardin,Kentucky,21093,145,5 +2020-06-29,Hardin,Kentucky,21093,146,5 +2020-06-30,Hardin,Kentucky,21093,161,6 +2020-07-01,Hardin,Kentucky,21093,165,6 +2020-07-02,Hardin,Kentucky,21093,171,6 +2020-07-03,Hardin,Kentucky,21093,177,6 +2020-07-04,Hardin,Kentucky,21093,177,6 +2020-07-05,Hardin,Kentucky,21093,177,6 +2020-07-06,Hardin,Kentucky,21093,208,6 +2020-07-07,Hardin,Kentucky,21093,221,6 +2020-07-08,Hardin,Kentucky,21093,223,6 +2020-07-09,Hardin,Kentucky,21093,236,6 +2020-05-07,Harlan,Kentucky,21095,1,0 +2020-05-08,Harlan,Kentucky,21095,1,0 +2020-05-09,Harlan,Kentucky,21095,1,0 +2020-05-10,Harlan,Kentucky,21095,1,0 +2020-05-11,Harlan,Kentucky,21095,1,0 +2020-05-12,Harlan,Kentucky,21095,1,0 +2020-05-13,Harlan,Kentucky,21095,1,0 +2020-05-14,Harlan,Kentucky,21095,1,0 +2020-05-15,Harlan,Kentucky,21095,1,0 +2020-05-16,Harlan,Kentucky,21095,1,0 +2020-05-17,Harlan,Kentucky,21095,1,0 +2020-05-18,Harlan,Kentucky,21095,1,0 +2020-05-19,Harlan,Kentucky,21095,1,0 +2020-05-20,Harlan,Kentucky,21095,1,0 +2020-05-21,Harlan,Kentucky,21095,1,0 +2020-05-22,Harlan,Kentucky,21095,1,0 +2020-05-23,Harlan,Kentucky,21095,1,0 +2020-05-24,Harlan,Kentucky,21095,1,0 +2020-05-25,Harlan,Kentucky,21095,1,0 +2020-05-26,Harlan,Kentucky,21095,1,0 +2020-05-27,Harlan,Kentucky,21095,1,0 +2020-05-28,Harlan,Kentucky,21095,1,0 +2020-05-29,Harlan,Kentucky,21095,1,0 +2020-05-30,Harlan,Kentucky,21095,1,0 +2020-05-31,Harlan,Kentucky,21095,1,0 +2020-06-01,Harlan,Kentucky,21095,4,0 +2020-06-02,Harlan,Kentucky,21095,4,0 +2020-06-03,Harlan,Kentucky,21095,4,0 +2020-06-04,Harlan,Kentucky,21095,4,0 +2020-06-05,Harlan,Kentucky,21095,4,0 +2020-06-06,Harlan,Kentucky,21095,4,0 +2020-06-07,Harlan,Kentucky,21095,4,0 +2020-06-08,Harlan,Kentucky,21095,8,0 +2020-06-09,Harlan,Kentucky,21095,8,0 +2020-06-10,Harlan,Kentucky,21095,8,0 +2020-06-11,Harlan,Kentucky,21095,8,0 +2020-06-12,Harlan,Kentucky,21095,8,0 +2020-06-13,Harlan,Kentucky,21095,11,0 +2020-06-14,Harlan,Kentucky,21095,11,0 +2020-06-15,Harlan,Kentucky,21095,13,0 +2020-06-16,Harlan,Kentucky,21095,13,0 +2020-06-17,Harlan,Kentucky,21095,15,0 +2020-06-18,Harlan,Kentucky,21095,15,0 +2020-06-19,Harlan,Kentucky,21095,16,1 +2020-06-20,Harlan,Kentucky,21095,16,1 +2020-06-21,Harlan,Kentucky,21095,17,1 +2020-06-22,Harlan,Kentucky,21095,17,1 +2020-06-23,Harlan,Kentucky,21095,18,2 +2020-06-24,Harlan,Kentucky,21095,18,2 +2020-06-25,Harlan,Kentucky,21095,18,2 +2020-06-26,Harlan,Kentucky,21095,18,2 +2020-06-27,Harlan,Kentucky,21095,21,2 +2020-06-28,Harlan,Kentucky,21095,22,2 +2020-06-29,Harlan,Kentucky,21095,23,2 +2020-06-30,Harlan,Kentucky,21095,23,2 +2020-07-01,Harlan,Kentucky,21095,24,2 +2020-07-02,Harlan,Kentucky,21095,26,2 +2020-07-03,Harlan,Kentucky,21095,27,2 +2020-07-04,Harlan,Kentucky,21095,27,2 +2020-07-05,Harlan,Kentucky,21095,27,2 +2020-07-06,Harlan,Kentucky,21095,31,2 +2020-07-07,Harlan,Kentucky,21095,32,2 +2020-07-08,Harlan,Kentucky,21095,33,2 +2020-07-09,Harlan,Kentucky,21095,33,2 +2020-03-08,Harrison,Kentucky,21097,1,0 +2020-03-09,Harrison,Kentucky,21097,1,0 +2020-03-10,Harrison,Kentucky,21097,3,0 +2020-03-11,Harrison,Kentucky,21097,3,0 +2020-03-12,Harrison,Kentucky,21097,4,0 +2020-03-13,Harrison,Kentucky,21097,4,0 +2020-03-14,Harrison,Kentucky,21097,6,0 +2020-03-15,Harrison,Kentucky,21097,6,0 +2020-03-16,Harrison,Kentucky,21097,6,0 +2020-03-17,Harrison,Kentucky,21097,6,0 +2020-03-18,Harrison,Kentucky,21097,7,0 +2020-03-19,Harrison,Kentucky,21097,9,0 +2020-03-20,Harrison,Kentucky,21097,9,0 +2020-03-21,Harrison,Kentucky,21097,10,0 +2020-03-22,Harrison,Kentucky,21097,10,0 +2020-03-23,Harrison,Kentucky,21097,11,0 +2020-03-24,Harrison,Kentucky,21097,11,0 +2020-03-25,Harrison,Kentucky,21097,11,0 +2020-03-26,Harrison,Kentucky,21097,11,0 +2020-03-27,Harrison,Kentucky,21097,11,0 +2020-03-28,Harrison,Kentucky,21097,11,0 +2020-03-29,Harrison,Kentucky,21097,11,0 +2020-03-30,Harrison,Kentucky,21097,11,0 +2020-03-31,Harrison,Kentucky,21097,11,0 +2020-04-01,Harrison,Kentucky,21097,11,0 +2020-04-02,Harrison,Kentucky,21097,11,0 +2020-04-03,Harrison,Kentucky,21097,11,0 +2020-04-04,Harrison,Kentucky,21097,11,0 +2020-04-05,Harrison,Kentucky,21097,13,0 +2020-04-06,Harrison,Kentucky,21097,13,0 +2020-04-07,Harrison,Kentucky,21097,13,0 +2020-04-08,Harrison,Kentucky,21097,14,0 +2020-04-09,Harrison,Kentucky,21097,14,0 +2020-04-10,Harrison,Kentucky,21097,14,0 +2020-04-11,Harrison,Kentucky,21097,14,0 +2020-04-12,Harrison,Kentucky,21097,15,0 +2020-04-13,Harrison,Kentucky,21097,15,0 +2020-04-14,Harrison,Kentucky,21097,16,0 +2020-04-15,Harrison,Kentucky,21097,16,0 +2020-04-16,Harrison,Kentucky,21097,16,0 +2020-04-17,Harrison,Kentucky,21097,16,0 +2020-04-18,Harrison,Kentucky,21097,16,0 +2020-04-19,Harrison,Kentucky,21097,16,0 +2020-04-20,Harrison,Kentucky,21097,16,0 +2020-04-21,Harrison,Kentucky,21097,17,0 +2020-04-22,Harrison,Kentucky,21097,17,0 +2020-04-23,Harrison,Kentucky,21097,17,0 +2020-04-24,Harrison,Kentucky,21097,18,0 +2020-04-25,Harrison,Kentucky,21097,18,0 +2020-04-26,Harrison,Kentucky,21097,18,0 +2020-04-27,Harrison,Kentucky,21097,18,0 +2020-04-28,Harrison,Kentucky,21097,17,0 +2020-04-29,Harrison,Kentucky,21097,17,0 +2020-04-30,Harrison,Kentucky,21097,17,0 +2020-05-01,Harrison,Kentucky,21097,17,0 +2020-05-02,Harrison,Kentucky,21097,17,0 +2020-05-03,Harrison,Kentucky,21097,17,0 +2020-05-04,Harrison,Kentucky,21097,18,0 +2020-05-05,Harrison,Kentucky,21097,18,0 +2020-05-06,Harrison,Kentucky,21097,18,0 +2020-05-07,Harrison,Kentucky,21097,18,0 +2020-05-08,Harrison,Kentucky,21097,18,0 +2020-05-09,Harrison,Kentucky,21097,19,0 +2020-05-10,Harrison,Kentucky,21097,19,0 +2020-05-11,Harrison,Kentucky,21097,19,0 +2020-05-12,Harrison,Kentucky,21097,19,0 +2020-05-13,Harrison,Kentucky,21097,19,0 +2020-05-14,Harrison,Kentucky,21097,19,0 +2020-05-15,Harrison,Kentucky,21097,19,0 +2020-05-16,Harrison,Kentucky,21097,19,0 +2020-05-17,Harrison,Kentucky,21097,19,0 +2020-05-18,Harrison,Kentucky,21097,19,0 +2020-05-19,Harrison,Kentucky,21097,19,0 +2020-05-20,Harrison,Kentucky,21097,19,0 +2020-05-21,Harrison,Kentucky,21097,19,0 +2020-05-22,Harrison,Kentucky,21097,19,0 +2020-05-23,Harrison,Kentucky,21097,19,0 +2020-05-24,Harrison,Kentucky,21097,19,0 +2020-05-25,Harrison,Kentucky,21097,19,0 +2020-05-26,Harrison,Kentucky,21097,19,0 +2020-05-27,Harrison,Kentucky,21097,19,0 +2020-05-28,Harrison,Kentucky,21097,19,0 +2020-05-29,Harrison,Kentucky,21097,19,0 +2020-05-30,Harrison,Kentucky,21097,19,0 +2020-05-31,Harrison,Kentucky,21097,19,0 +2020-06-01,Harrison,Kentucky,21097,21,0 +2020-06-02,Harrison,Kentucky,21097,23,0 +2020-06-03,Harrison,Kentucky,21097,23,0 +2020-06-04,Harrison,Kentucky,21097,27,0 +2020-06-05,Harrison,Kentucky,21097,28,0 +2020-06-06,Harrison,Kentucky,21097,28,0 +2020-06-07,Harrison,Kentucky,21097,28,0 +2020-06-08,Harrison,Kentucky,21097,56,0 +2020-06-09,Harrison,Kentucky,21097,56,0 +2020-06-10,Harrison,Kentucky,21097,56,0 +2020-06-11,Harrison,Kentucky,21097,56,0 +2020-06-12,Harrison,Kentucky,21097,56,0 +2020-06-13,Harrison,Kentucky,21097,56,0 +2020-06-14,Harrison,Kentucky,21097,56,0 +2020-06-15,Harrison,Kentucky,21097,56,0 +2020-06-16,Harrison,Kentucky,21097,56,0 +2020-06-17,Harrison,Kentucky,21097,56,0 +2020-06-18,Harrison,Kentucky,21097,56,0 +2020-06-19,Harrison,Kentucky,21097,56,0 +2020-06-20,Harrison,Kentucky,21097,58,0 +2020-06-21,Harrison,Kentucky,21097,59,0 +2020-06-22,Harrison,Kentucky,21097,59,0 +2020-06-23,Harrison,Kentucky,21097,65,0 +2020-06-24,Harrison,Kentucky,21097,65,0 +2020-06-25,Harrison,Kentucky,21097,66,0 +2020-06-26,Harrison,Kentucky,21097,66,0 +2020-06-27,Harrison,Kentucky,21097,68,0 +2020-06-28,Harrison,Kentucky,21097,68,0 +2020-06-29,Harrison,Kentucky,21097,68,0 +2020-06-30,Harrison,Kentucky,21097,70,0 +2020-07-01,Harrison,Kentucky,21097,73,0 +2020-07-02,Harrison,Kentucky,21097,73,0 +2020-07-03,Harrison,Kentucky,21097,74,0 +2020-07-04,Harrison,Kentucky,21097,74,0 +2020-07-05,Harrison,Kentucky,21097,74,0 +2020-07-06,Harrison,Kentucky,21097,79,0 +2020-07-07,Harrison,Kentucky,21097,79,0 +2020-07-08,Harrison,Kentucky,21097,81,0 +2020-07-09,Harrison,Kentucky,21097,81,0 +2020-04-07,Hart,Kentucky,21099,1,0 +2020-04-08,Hart,Kentucky,21099,1,0 +2020-04-09,Hart,Kentucky,21099,1,0 +2020-04-10,Hart,Kentucky,21099,1,0 +2020-04-11,Hart,Kentucky,21099,1,0 +2020-04-12,Hart,Kentucky,21099,1,0 +2020-04-13,Hart,Kentucky,21099,1,0 +2020-04-14,Hart,Kentucky,21099,1,0 +2020-04-15,Hart,Kentucky,21099,1,0 +2020-04-16,Hart,Kentucky,21099,1,0 +2020-04-17,Hart,Kentucky,21099,2,0 +2020-04-18,Hart,Kentucky,21099,2,0 +2020-04-19,Hart,Kentucky,21099,2,0 +2020-04-20,Hart,Kentucky,21099,2,0 +2020-04-21,Hart,Kentucky,21099,3,0 +2020-04-22,Hart,Kentucky,21099,3,0 +2020-04-23,Hart,Kentucky,21099,3,0 +2020-04-24,Hart,Kentucky,21099,3,0 +2020-04-25,Hart,Kentucky,21099,3,0 +2020-04-26,Hart,Kentucky,21099,3,0 +2020-04-27,Hart,Kentucky,21099,3,0 +2020-04-28,Hart,Kentucky,21099,5,0 +2020-04-29,Hart,Kentucky,21099,5,0 +2020-04-30,Hart,Kentucky,21099,5,0 +2020-05-01,Hart,Kentucky,21099,5,0 +2020-05-02,Hart,Kentucky,21099,8,0 +2020-05-03,Hart,Kentucky,21099,8,0 +2020-05-04,Hart,Kentucky,21099,8,0 +2020-05-05,Hart,Kentucky,21099,8,0 +2020-05-06,Hart,Kentucky,21099,8,0 +2020-05-07,Hart,Kentucky,21099,11,0 +2020-05-08,Hart,Kentucky,21099,8,0 +2020-05-09,Hart,Kentucky,21099,8,0 +2020-05-10,Hart,Kentucky,21099,8,0 +2020-05-11,Hart,Kentucky,21099,8,0 +2020-05-12,Hart,Kentucky,21099,16,0 +2020-05-13,Hart,Kentucky,21099,16,0 +2020-05-14,Hart,Kentucky,21099,19,0 +2020-05-15,Hart,Kentucky,21099,19,0 +2020-05-16,Hart,Kentucky,21099,19,0 +2020-05-17,Hart,Kentucky,21099,19,0 +2020-05-18,Hart,Kentucky,21099,19,0 +2020-05-19,Hart,Kentucky,21099,20,0 +2020-05-20,Hart,Kentucky,21099,20,0 +2020-05-21,Hart,Kentucky,21099,20,0 +2020-05-22,Hart,Kentucky,21099,21,0 +2020-05-23,Hart,Kentucky,21099,21,0 +2020-05-24,Hart,Kentucky,21099,21,0 +2020-05-25,Hart,Kentucky,21099,21,0 +2020-05-26,Hart,Kentucky,21099,24,0 +2020-05-27,Hart,Kentucky,21099,24,0 +2020-05-28,Hart,Kentucky,21099,26,0 +2020-05-29,Hart,Kentucky,21099,26,0 +2020-05-30,Hart,Kentucky,21099,26,0 +2020-05-31,Hart,Kentucky,21099,26,0 +2020-06-01,Hart,Kentucky,21099,28,0 +2020-06-02,Hart,Kentucky,21099,28,0 +2020-06-03,Hart,Kentucky,21099,28,0 +2020-06-04,Hart,Kentucky,21099,29,0 +2020-06-05,Hart,Kentucky,21099,31,0 +2020-06-06,Hart,Kentucky,21099,31,0 +2020-06-07,Hart,Kentucky,21099,31,0 +2020-06-08,Hart,Kentucky,21099,31,0 +2020-06-09,Hart,Kentucky,21099,31,0 +2020-06-10,Hart,Kentucky,21099,32,0 +2020-06-11,Hart,Kentucky,21099,36,0 +2020-06-12,Hart,Kentucky,21099,36,0 +2020-06-13,Hart,Kentucky,21099,36,0 +2020-06-14,Hart,Kentucky,21099,36,0 +2020-06-15,Hart,Kentucky,21099,36,0 +2020-06-16,Hart,Kentucky,21099,36,0 +2020-06-17,Hart,Kentucky,21099,37,0 +2020-06-18,Hart,Kentucky,21099,39,0 +2020-06-19,Hart,Kentucky,21099,42,0 +2020-06-20,Hart,Kentucky,21099,42,0 +2020-06-21,Hart,Kentucky,21099,42,0 +2020-06-22,Hart,Kentucky,21099,43,0 +2020-06-23,Hart,Kentucky,21099,44,0 +2020-06-24,Hart,Kentucky,21099,46,0 +2020-06-25,Hart,Kentucky,21099,46,0 +2020-06-26,Hart,Kentucky,21099,46,0 +2020-06-27,Hart,Kentucky,21099,46,0 +2020-06-28,Hart,Kentucky,21099,46,0 +2020-06-29,Hart,Kentucky,21099,47,0 +2020-06-30,Hart,Kentucky,21099,47,0 +2020-07-01,Hart,Kentucky,21099,48,0 +2020-07-02,Hart,Kentucky,21099,49,0 +2020-07-03,Hart,Kentucky,21099,49,0 +2020-07-04,Hart,Kentucky,21099,49,0 +2020-07-05,Hart,Kentucky,21099,49,0 +2020-07-06,Hart,Kentucky,21099,49,0 +2020-07-07,Hart,Kentucky,21099,49,0 +2020-07-08,Hart,Kentucky,21099,50,0 +2020-07-09,Hart,Kentucky,21099,50,0 +2020-03-19,Henderson,Kentucky,21101,1,0 +2020-03-20,Henderson,Kentucky,21101,2,0 +2020-03-21,Henderson,Kentucky,21101,3,0 +2020-03-22,Henderson,Kentucky,21101,5,0 +2020-03-23,Henderson,Kentucky,21101,5,0 +2020-03-24,Henderson,Kentucky,21101,5,0 +2020-03-25,Henderson,Kentucky,21101,5,0 +2020-03-26,Henderson,Kentucky,21101,5,0 +2020-03-27,Henderson,Kentucky,21101,5,0 +2020-03-28,Henderson,Kentucky,21101,5,0 +2020-03-29,Henderson,Kentucky,21101,5,0 +2020-03-30,Henderson,Kentucky,21101,5,0 +2020-03-31,Henderson,Kentucky,21101,5,0 +2020-04-01,Henderson,Kentucky,21101,7,0 +2020-04-02,Henderson,Kentucky,21101,7,0 +2020-04-03,Henderson,Kentucky,21101,7,0 +2020-04-04,Henderson,Kentucky,21101,9,0 +2020-04-05,Henderson,Kentucky,21101,15,0 +2020-04-06,Henderson,Kentucky,21101,15,0 +2020-04-07,Henderson,Kentucky,21101,20,0 +2020-04-08,Henderson,Kentucky,21101,20,0 +2020-04-09,Henderson,Kentucky,21101,23,0 +2020-04-10,Henderson,Kentucky,21101,23,0 +2020-04-11,Henderson,Kentucky,21101,29,0 +2020-04-12,Henderson,Kentucky,21101,23,0 +2020-04-13,Henderson,Kentucky,21101,23,0 +2020-04-14,Henderson,Kentucky,21101,24,0 +2020-04-15,Henderson,Kentucky,21101,26,0 +2020-04-16,Henderson,Kentucky,21101,28,0 +2020-04-17,Henderson,Kentucky,21101,30,0 +2020-04-18,Henderson,Kentucky,21101,30,0 +2020-04-19,Henderson,Kentucky,21101,36,0 +2020-04-20,Henderson,Kentucky,21101,36,0 +2020-04-21,Henderson,Kentucky,21101,43,0 +2020-04-22,Henderson,Kentucky,21101,43,0 +2020-04-23,Henderson,Kentucky,21101,47,1 +2020-04-24,Henderson,Kentucky,21101,47,1 +2020-04-25,Henderson,Kentucky,21101,47,1 +2020-04-26,Henderson,Kentucky,21101,58,1 +2020-04-27,Henderson,Kentucky,21101,58,1 +2020-04-28,Henderson,Kentucky,21101,63,1 +2020-04-29,Henderson,Kentucky,21101,63,1 +2020-04-30,Henderson,Kentucky,21101,63,1 +2020-05-01,Henderson,Kentucky,21101,63,1 +2020-05-02,Henderson,Kentucky,21101,63,1 +2020-05-03,Henderson,Kentucky,21101,65,1 +2020-05-04,Henderson,Kentucky,21101,72,1 +2020-05-05,Henderson,Kentucky,21101,74,2 +2020-05-06,Henderson,Kentucky,21101,76,2 +2020-05-07,Henderson,Kentucky,21101,79,2 +2020-05-08,Henderson,Kentucky,21101,79,2 +2020-05-09,Henderson,Kentucky,21101,81,2 +2020-05-10,Henderson,Kentucky,21101,82,2 +2020-05-11,Henderson,Kentucky,21101,82,3 +2020-05-12,Henderson,Kentucky,21101,86,3 +2020-05-13,Henderson,Kentucky,21101,87,3 +2020-05-14,Henderson,Kentucky,21101,89,3 +2020-05-15,Henderson,Kentucky,21101,93,3 +2020-05-16,Henderson,Kentucky,21101,95,3 +2020-05-17,Henderson,Kentucky,21101,95,3 +2020-05-18,Henderson,Kentucky,21101,95,3 +2020-05-19,Henderson,Kentucky,21101,97,4 +2020-05-20,Henderson,Kentucky,21101,98,4 +2020-05-21,Henderson,Kentucky,21101,101,4 +2020-05-22,Henderson,Kentucky,21101,103,4 +2020-05-23,Henderson,Kentucky,21101,103,4 +2020-05-24,Henderson,Kentucky,21101,104,4 +2020-05-25,Henderson,Kentucky,21101,104,4 +2020-05-26,Henderson,Kentucky,21101,104,4 +2020-05-27,Henderson,Kentucky,21101,109,4 +2020-05-28,Henderson,Kentucky,21101,112,4 +2020-05-29,Henderson,Kentucky,21101,115,4 +2020-05-30,Henderson,Kentucky,21101,116,4 +2020-05-31,Henderson,Kentucky,21101,116,4 +2020-06-01,Henderson,Kentucky,21101,118,4 +2020-06-02,Henderson,Kentucky,21101,119,4 +2020-06-03,Henderson,Kentucky,21101,120,4 +2020-06-04,Henderson,Kentucky,21101,121,4 +2020-06-05,Henderson,Kentucky,21101,121,4 +2020-06-06,Henderson,Kentucky,21101,121,4 +2020-06-07,Henderson,Kentucky,21101,121,4 +2020-06-08,Henderson,Kentucky,21101,121,4 +2020-06-09,Henderson,Kentucky,21101,121,4 +2020-06-10,Henderson,Kentucky,21101,122,4 +2020-06-11,Henderson,Kentucky,21101,126,4 +2020-06-12,Henderson,Kentucky,21101,131,4 +2020-06-13,Henderson,Kentucky,21101,131,4 +2020-06-14,Henderson,Kentucky,21101,138,4 +2020-06-15,Henderson,Kentucky,21101,138,4 +2020-06-16,Henderson,Kentucky,21101,142,4 +2020-06-17,Henderson,Kentucky,21101,147,4 +2020-06-18,Henderson,Kentucky,21101,150,4 +2020-06-19,Henderson,Kentucky,21101,151,4 +2020-06-20,Henderson,Kentucky,21101,151,4 +2020-06-21,Henderson,Kentucky,21101,152,4 +2020-06-22,Henderson,Kentucky,21101,152,4 +2020-06-23,Henderson,Kentucky,21101,155,4 +2020-06-24,Henderson,Kentucky,21101,155,4 +2020-06-25,Henderson,Kentucky,21101,155,4 +2020-06-26,Henderson,Kentucky,21101,155,4 +2020-06-27,Henderson,Kentucky,21101,161,4 +2020-06-28,Henderson,Kentucky,21101,161,4 +2020-06-29,Henderson,Kentucky,21101,163,4 +2020-06-30,Henderson,Kentucky,21101,165,4 +2020-07-01,Henderson,Kentucky,21101,165,4 +2020-07-02,Henderson,Kentucky,21101,166,4 +2020-07-03,Henderson,Kentucky,21101,170,4 +2020-07-04,Henderson,Kentucky,21101,170,4 +2020-07-05,Henderson,Kentucky,21101,170,4 +2020-07-06,Henderson,Kentucky,21101,174,4 +2020-07-07,Henderson,Kentucky,21101,180,4 +2020-07-08,Henderson,Kentucky,21101,182,4 +2020-07-09,Henderson,Kentucky,21101,194,4 +2020-03-31,Henry,Kentucky,21103,1,0 +2020-04-01,Henry,Kentucky,21103,1,0 +2020-04-02,Henry,Kentucky,21103,1,0 +2020-04-03,Henry,Kentucky,21103,1,0 +2020-04-04,Henry,Kentucky,21103,1,0 +2020-04-05,Henry,Kentucky,21103,2,0 +2020-04-06,Henry,Kentucky,21103,2,0 +2020-04-07,Henry,Kentucky,21103,2,0 +2020-04-08,Henry,Kentucky,21103,3,0 +2020-04-09,Henry,Kentucky,21103,3,0 +2020-04-10,Henry,Kentucky,21103,3,0 +2020-04-11,Henry,Kentucky,21103,4,0 +2020-04-12,Henry,Kentucky,21103,4,0 +2020-04-13,Henry,Kentucky,21103,4,0 +2020-04-14,Henry,Kentucky,21103,3,0 +2020-04-15,Henry,Kentucky,21103,3,0 +2020-04-16,Henry,Kentucky,21103,3,0 +2020-04-17,Henry,Kentucky,21103,3,0 +2020-04-18,Henry,Kentucky,21103,3,0 +2020-04-19,Henry,Kentucky,21103,4,0 +2020-04-20,Henry,Kentucky,21103,4,0 +2020-04-21,Henry,Kentucky,21103,3,0 +2020-04-22,Henry,Kentucky,21103,3,0 +2020-04-23,Henry,Kentucky,21103,3,0 +2020-04-24,Henry,Kentucky,21103,3,0 +2020-04-25,Henry,Kentucky,21103,4,0 +2020-04-26,Henry,Kentucky,21103,6,0 +2020-04-27,Henry,Kentucky,21103,6,0 +2020-04-28,Henry,Kentucky,21103,6,0 +2020-04-29,Henry,Kentucky,21103,6,0 +2020-04-30,Henry,Kentucky,21103,6,0 +2020-05-01,Henry,Kentucky,21103,6,0 +2020-05-02,Henry,Kentucky,21103,6,0 +2020-05-03,Henry,Kentucky,21103,8,0 +2020-05-04,Henry,Kentucky,21103,8,0 +2020-05-05,Henry,Kentucky,21103,8,0 +2020-05-06,Henry,Kentucky,21103,8,0 +2020-05-07,Henry,Kentucky,21103,8,0 +2020-05-08,Henry,Kentucky,21103,8,0 +2020-05-09,Henry,Kentucky,21103,9,0 +2020-05-10,Henry,Kentucky,21103,9,0 +2020-05-11,Henry,Kentucky,21103,10,0 +2020-05-12,Henry,Kentucky,21103,10,0 +2020-05-13,Henry,Kentucky,21103,10,0 +2020-05-14,Henry,Kentucky,21103,11,0 +2020-05-15,Henry,Kentucky,21103,12,0 +2020-05-16,Henry,Kentucky,21103,12,0 +2020-05-17,Henry,Kentucky,21103,12,0 +2020-05-18,Henry,Kentucky,21103,12,0 +2020-05-19,Henry,Kentucky,21103,13,0 +2020-05-20,Henry,Kentucky,21103,13,0 +2020-05-21,Henry,Kentucky,21103,13,0 +2020-05-22,Henry,Kentucky,21103,14,0 +2020-05-23,Henry,Kentucky,21103,14,0 +2020-05-24,Henry,Kentucky,21103,14,0 +2020-05-25,Henry,Kentucky,21103,14,0 +2020-05-26,Henry,Kentucky,21103,18,0 +2020-05-27,Henry,Kentucky,21103,19,0 +2020-05-28,Henry,Kentucky,21103,19,0 +2020-05-29,Henry,Kentucky,21103,19,0 +2020-05-30,Henry,Kentucky,21103,22,0 +2020-05-31,Henry,Kentucky,21103,22,0 +2020-06-01,Henry,Kentucky,21103,22,0 +2020-06-02,Henry,Kentucky,21103,22,0 +2020-06-03,Henry,Kentucky,21103,22,0 +2020-06-04,Henry,Kentucky,21103,22,0 +2020-06-05,Henry,Kentucky,21103,23,0 +2020-06-06,Henry,Kentucky,21103,24,0 +2020-06-07,Henry,Kentucky,21103,24,0 +2020-06-08,Henry,Kentucky,21103,24,0 +2020-06-09,Henry,Kentucky,21103,24,1 +2020-06-10,Henry,Kentucky,21103,24,1 +2020-06-11,Henry,Kentucky,21103,24,1 +2020-06-12,Henry,Kentucky,21103,25,1 +2020-06-13,Henry,Kentucky,21103,26,1 +2020-06-14,Henry,Kentucky,21103,26,1 +2020-06-15,Henry,Kentucky,21103,26,2 +2020-06-16,Henry,Kentucky,21103,26,2 +2020-06-17,Henry,Kentucky,21103,27,2 +2020-06-18,Henry,Kentucky,21103,28,2 +2020-06-19,Henry,Kentucky,21103,28,2 +2020-06-20,Henry,Kentucky,21103,28,2 +2020-06-21,Henry,Kentucky,21103,29,2 +2020-06-22,Henry,Kentucky,21103,29,2 +2020-06-23,Henry,Kentucky,21103,30,2 +2020-06-24,Henry,Kentucky,21103,31,2 +2020-06-25,Henry,Kentucky,21103,32,2 +2020-06-26,Henry,Kentucky,21103,33,2 +2020-06-27,Henry,Kentucky,21103,33,2 +2020-06-28,Henry,Kentucky,21103,33,2 +2020-06-29,Henry,Kentucky,21103,33,2 +2020-06-30,Henry,Kentucky,21103,33,2 +2020-07-01,Henry,Kentucky,21103,35,2 +2020-07-02,Henry,Kentucky,21103,36,2 +2020-07-03,Henry,Kentucky,21103,36,2 +2020-07-04,Henry,Kentucky,21103,36,2 +2020-07-05,Henry,Kentucky,21103,36,2 +2020-07-06,Henry,Kentucky,21103,38,2 +2020-07-07,Henry,Kentucky,21103,39,2 +2020-07-08,Henry,Kentucky,21103,40,2 +2020-07-09,Henry,Kentucky,21103,41,2 +2020-04-21,Hickman,Kentucky,21105,1,0 +2020-04-22,Hickman,Kentucky,21105,1,0 +2020-04-23,Hickman,Kentucky,21105,2,0 +2020-04-24,Hickman,Kentucky,21105,2,0 +2020-04-25,Hickman,Kentucky,21105,2,0 +2020-04-26,Hickman,Kentucky,21105,2,0 +2020-04-27,Hickman,Kentucky,21105,2,0 +2020-04-28,Hickman,Kentucky,21105,1,0 +2020-04-29,Hickman,Kentucky,21105,1,0 +2020-04-30,Hickman,Kentucky,21105,1,0 +2020-05-01,Hickman,Kentucky,21105,1,0 +2020-05-02,Hickman,Kentucky,21105,1,0 +2020-05-03,Hickman,Kentucky,21105,1,0 +2020-05-04,Hickman,Kentucky,21105,4,0 +2020-05-05,Hickman,Kentucky,21105,5,0 +2020-05-06,Hickman,Kentucky,21105,5,0 +2020-05-07,Hickman,Kentucky,21105,5,0 +2020-05-08,Hickman,Kentucky,21105,5,0 +2020-05-09,Hickman,Kentucky,21105,5,0 +2020-05-10,Hickman,Kentucky,21105,5,0 +2020-05-11,Hickman,Kentucky,21105,5,0 +2020-05-12,Hickman,Kentucky,21105,5,0 +2020-05-13,Hickman,Kentucky,21105,5,0 +2020-05-14,Hickman,Kentucky,21105,5,0 +2020-05-15,Hickman,Kentucky,21105,5,0 +2020-05-16,Hickman,Kentucky,21105,5,0 +2020-05-17,Hickman,Kentucky,21105,5,0 +2020-05-18,Hickman,Kentucky,21105,5,0 +2020-05-19,Hickman,Kentucky,21105,5,0 +2020-05-20,Hickman,Kentucky,21105,5,0 +2020-05-21,Hickman,Kentucky,21105,5,0 +2020-05-22,Hickman,Kentucky,21105,5,0 +2020-05-23,Hickman,Kentucky,21105,5,0 +2020-05-24,Hickman,Kentucky,21105,5,0 +2020-05-25,Hickman,Kentucky,21105,5,0 +2020-05-26,Hickman,Kentucky,21105,5,0 +2020-05-27,Hickman,Kentucky,21105,5,0 +2020-05-28,Hickman,Kentucky,21105,5,0 +2020-05-29,Hickman,Kentucky,21105,5,0 +2020-05-30,Hickman,Kentucky,21105,5,0 +2020-05-31,Hickman,Kentucky,21105,5,0 +2020-06-01,Hickman,Kentucky,21105,5,0 +2020-06-02,Hickman,Kentucky,21105,5,0 +2020-06-03,Hickman,Kentucky,21105,5,0 +2020-06-04,Hickman,Kentucky,21105,5,0 +2020-06-05,Hickman,Kentucky,21105,5,0 +2020-06-06,Hickman,Kentucky,21105,5,0 +2020-06-07,Hickman,Kentucky,21105,5,0 +2020-06-08,Hickman,Kentucky,21105,5,0 +2020-06-09,Hickman,Kentucky,21105,5,0 +2020-06-10,Hickman,Kentucky,21105,5,0 +2020-06-11,Hickman,Kentucky,21105,5,0 +2020-06-12,Hickman,Kentucky,21105,5,0 +2020-06-13,Hickman,Kentucky,21105,5,0 +2020-06-14,Hickman,Kentucky,21105,5,0 +2020-06-15,Hickman,Kentucky,21105,5,0 +2020-06-16,Hickman,Kentucky,21105,5,0 +2020-06-17,Hickman,Kentucky,21105,5,0 +2020-06-18,Hickman,Kentucky,21105,5,0 +2020-06-19,Hickman,Kentucky,21105,5,0 +2020-06-20,Hickman,Kentucky,21105,5,0 +2020-06-21,Hickman,Kentucky,21105,5,0 +2020-06-22,Hickman,Kentucky,21105,5,0 +2020-06-23,Hickman,Kentucky,21105,5,0 +2020-06-24,Hickman,Kentucky,21105,5,0 +2020-06-25,Hickman,Kentucky,21105,5,0 +2020-06-26,Hickman,Kentucky,21105,5,0 +2020-06-27,Hickman,Kentucky,21105,5,0 +2020-06-28,Hickman,Kentucky,21105,5,0 +2020-06-29,Hickman,Kentucky,21105,5,0 +2020-06-30,Hickman,Kentucky,21105,5,0 +2020-07-01,Hickman,Kentucky,21105,5,0 +2020-07-02,Hickman,Kentucky,21105,5,0 +2020-07-03,Hickman,Kentucky,21105,5,0 +2020-07-04,Hickman,Kentucky,21105,5,0 +2020-07-05,Hickman,Kentucky,21105,5,0 +2020-07-06,Hickman,Kentucky,21105,7,0 +2020-07-07,Hickman,Kentucky,21105,7,0 +2020-07-08,Hickman,Kentucky,21105,7,0 +2020-07-09,Hickman,Kentucky,21105,7,0 +2020-03-26,Hopkins,Kentucky,21107,1,0 +2020-03-27,Hopkins,Kentucky,21107,1,1 +2020-03-28,Hopkins,Kentucky,21107,2,1 +2020-03-29,Hopkins,Kentucky,21107,7,1 +2020-03-30,Hopkins,Kentucky,21107,11,1 +2020-03-31,Hopkins,Kentucky,21107,21,1 +2020-04-01,Hopkins,Kentucky,21107,21,2 +2020-04-02,Hopkins,Kentucky,21107,21,2 +2020-04-03,Hopkins,Kentucky,21107,21,2 +2020-04-04,Hopkins,Kentucky,21107,26,2 +2020-04-05,Hopkins,Kentucky,21107,33,3 +2020-04-06,Hopkins,Kentucky,21107,33,3 +2020-04-07,Hopkins,Kentucky,21107,38,3 +2020-04-08,Hopkins,Kentucky,21107,57,3 +2020-04-09,Hopkins,Kentucky,21107,78,7 +2020-04-10,Hopkins,Kentucky,21107,84,8 +2020-04-11,Hopkins,Kentucky,21107,88,8 +2020-04-12,Hopkins,Kentucky,21107,86,9 +2020-04-13,Hopkins,Kentucky,21107,88,9 +2020-04-14,Hopkins,Kentucky,21107,92,9 +2020-04-15,Hopkins,Kentucky,21107,102,10 +2020-04-16,Hopkins,Kentucky,21107,111,10 +2020-04-17,Hopkins,Kentucky,21107,117,10 +2020-04-18,Hopkins,Kentucky,21107,117,10 +2020-04-19,Hopkins,Kentucky,21107,118,11 +2020-04-20,Hopkins,Kentucky,21107,118,12 +2020-04-21,Hopkins,Kentucky,21107,159,18 +2020-04-22,Hopkins,Kentucky,21107,159,18 +2020-04-23,Hopkins,Kentucky,21107,170,18 +2020-04-24,Hopkins,Kentucky,21107,171,20 +2020-04-25,Hopkins,Kentucky,21107,175,20 +2020-04-26,Hopkins,Kentucky,21107,184,20 +2020-04-27,Hopkins,Kentucky,21107,188,22 +2020-04-28,Hopkins,Kentucky,21107,192,24 +2020-04-29,Hopkins,Kentucky,21107,193,23 +2020-04-30,Hopkins,Kentucky,21107,197,23 +2020-05-01,Hopkins,Kentucky,21107,201,23 +2020-05-02,Hopkins,Kentucky,21107,201,23 +2020-05-03,Hopkins,Kentucky,21107,207,23 +2020-05-04,Hopkins,Kentucky,21107,207,23 +2020-05-05,Hopkins,Kentucky,21107,207,24 +2020-05-06,Hopkins,Kentucky,21107,211,24 +2020-05-07,Hopkins,Kentucky,21107,212,24 +2020-05-08,Hopkins,Kentucky,21107,213,25 +2020-05-09,Hopkins,Kentucky,21107,214,25 +2020-05-10,Hopkins,Kentucky,21107,214,25 +2020-05-11,Hopkins,Kentucky,21107,215,27 +2020-05-12,Hopkins,Kentucky,21107,216,28 +2020-05-13,Hopkins,Kentucky,21107,217,28 +2020-05-14,Hopkins,Kentucky,21107,218,28 +2020-05-15,Hopkins,Kentucky,21107,217,28 +2020-05-16,Hopkins,Kentucky,21107,217,28 +2020-05-17,Hopkins,Kentucky,21107,217,28 +2020-05-18,Hopkins,Kentucky,21107,217,28 +2020-05-19,Hopkins,Kentucky,21107,217,28 +2020-05-20,Hopkins,Kentucky,21107,218,28 +2020-05-21,Hopkins,Kentucky,21107,218,28 +2020-05-22,Hopkins,Kentucky,21107,220,29 +2020-05-23,Hopkins,Kentucky,21107,220,29 +2020-05-24,Hopkins,Kentucky,21107,220,29 +2020-05-25,Hopkins,Kentucky,21107,220,29 +2020-05-26,Hopkins,Kentucky,21107,220,29 +2020-05-27,Hopkins,Kentucky,21107,220,30 +2020-05-28,Hopkins,Kentucky,21107,222,30 +2020-05-29,Hopkins,Kentucky,21107,222,30 +2020-05-30,Hopkins,Kentucky,21107,222,31 +2020-05-31,Hopkins,Kentucky,21107,222,31 +2020-06-01,Hopkins,Kentucky,21107,223,31 +2020-06-02,Hopkins,Kentucky,21107,223,31 +2020-06-03,Hopkins,Kentucky,21107,225,32 +2020-06-04,Hopkins,Kentucky,21107,225,32 +2020-06-05,Hopkins,Kentucky,21107,225,32 +2020-06-06,Hopkins,Kentucky,21107,225,32 +2020-06-07,Hopkins,Kentucky,21107,225,32 +2020-06-08,Hopkins,Kentucky,21107,225,32 +2020-06-09,Hopkins,Kentucky,21107,225,32 +2020-06-10,Hopkins,Kentucky,21107,226,32 +2020-06-11,Hopkins,Kentucky,21107,226,32 +2020-06-12,Hopkins,Kentucky,21107,226,32 +2020-06-13,Hopkins,Kentucky,21107,229,32 +2020-06-14,Hopkins,Kentucky,21107,229,32 +2020-06-15,Hopkins,Kentucky,21107,230,32 +2020-06-16,Hopkins,Kentucky,21107,230,33 +2020-06-17,Hopkins,Kentucky,21107,232,33 +2020-06-18,Hopkins,Kentucky,21107,231,33 +2020-06-19,Hopkins,Kentucky,21107,232,34 +2020-06-20,Hopkins,Kentucky,21107,233,34 +2020-06-21,Hopkins,Kentucky,21107,234,34 +2020-06-22,Hopkins,Kentucky,21107,234,34 +2020-06-23,Hopkins,Kentucky,21107,241,34 +2020-06-24,Hopkins,Kentucky,21107,242,34 +2020-06-25,Hopkins,Kentucky,21107,243,34 +2020-06-26,Hopkins,Kentucky,21107,248,34 +2020-06-27,Hopkins,Kentucky,21107,251,34 +2020-06-28,Hopkins,Kentucky,21107,251,34 +2020-06-29,Hopkins,Kentucky,21107,251,34 +2020-06-30,Hopkins,Kentucky,21107,255,34 +2020-07-01,Hopkins,Kentucky,21107,256,34 +2020-07-02,Hopkins,Kentucky,21107,263,34 +2020-07-03,Hopkins,Kentucky,21107,266,34 +2020-07-04,Hopkins,Kentucky,21107,266,34 +2020-07-05,Hopkins,Kentucky,21107,266,34 +2020-07-06,Hopkins,Kentucky,21107,272,35 +2020-07-07,Hopkins,Kentucky,21107,279,35 +2020-07-08,Hopkins,Kentucky,21107,285,35 +2020-07-09,Hopkins,Kentucky,21107,292,35 +2020-04-08,Jackson,Kentucky,21109,3,0 +2020-04-09,Jackson,Kentucky,21109,3,0 +2020-04-10,Jackson,Kentucky,21109,3,0 +2020-04-11,Jackson,Kentucky,21109,5,0 +2020-04-12,Jackson,Kentucky,21109,12,0 +2020-04-13,Jackson,Kentucky,21109,12,0 +2020-04-14,Jackson,Kentucky,21109,23,1 +2020-04-15,Jackson,Kentucky,21109,26,1 +2020-04-16,Jackson,Kentucky,21109,37,2 +2020-04-17,Jackson,Kentucky,21109,43,2 +2020-04-18,Jackson,Kentucky,21109,43,2 +2020-04-19,Jackson,Kentucky,21109,55,3 +2020-04-20,Jackson,Kentucky,21109,57,3 +2020-04-21,Jackson,Kentucky,21109,57,4 +2020-04-22,Jackson,Kentucky,21109,57,4 +2020-04-23,Jackson,Kentucky,21109,58,4 +2020-04-24,Jackson,Kentucky,21109,58,5 +2020-04-25,Jackson,Kentucky,21109,58,5 +2020-04-26,Jackson,Kentucky,21109,60,6 +2020-04-27,Jackson,Kentucky,21109,60,6 +2020-04-28,Jackson,Kentucky,21109,59,6 +2020-04-29,Jackson,Kentucky,21109,59,7 +2020-04-30,Jackson,Kentucky,21109,59,7 +2020-05-01,Jackson,Kentucky,21109,59,8 +2020-05-02,Jackson,Kentucky,21109,59,8 +2020-05-03,Jackson,Kentucky,21109,59,8 +2020-05-04,Jackson,Kentucky,21109,59,8 +2020-05-05,Jackson,Kentucky,21109,60,10 +2020-05-06,Jackson,Kentucky,21109,60,12 +2020-05-07,Jackson,Kentucky,21109,60,12 +2020-05-08,Jackson,Kentucky,21109,56,12 +2020-05-09,Jackson,Kentucky,21109,56,12 +2020-05-10,Jackson,Kentucky,21109,56,12 +2020-05-11,Jackson,Kentucky,21109,56,12 +2020-05-12,Jackson,Kentucky,21109,56,12 +2020-05-13,Jackson,Kentucky,21109,56,12 +2020-05-14,Jackson,Kentucky,21109,57,12 +2020-05-15,Jackson,Kentucky,21109,57,12 +2020-05-16,Jackson,Kentucky,21109,57,12 +2020-05-17,Jackson,Kentucky,21109,57,12 +2020-05-18,Jackson,Kentucky,21109,57,12 +2020-05-19,Jackson,Kentucky,21109,57,12 +2020-05-20,Jackson,Kentucky,21109,59,12 +2020-05-21,Jackson,Kentucky,21109,60,13 +2020-05-22,Jackson,Kentucky,21109,60,13 +2020-05-23,Jackson,Kentucky,21109,60,13 +2020-05-24,Jackson,Kentucky,21109,60,13 +2020-05-25,Jackson,Kentucky,21109,60,13 +2020-05-26,Jackson,Kentucky,21109,61,13 +2020-05-27,Jackson,Kentucky,21109,61,13 +2020-05-28,Jackson,Kentucky,21109,61,13 +2020-05-29,Jackson,Kentucky,21109,61,13 +2020-05-30,Jackson,Kentucky,21109,61,13 +2020-05-31,Jackson,Kentucky,21109,61,13 +2020-06-01,Jackson,Kentucky,21109,61,13 +2020-06-02,Jackson,Kentucky,21109,61,13 +2020-06-03,Jackson,Kentucky,21109,61,13 +2020-06-04,Jackson,Kentucky,21109,61,13 +2020-06-05,Jackson,Kentucky,21109,61,13 +2020-06-06,Jackson,Kentucky,21109,61,13 +2020-06-07,Jackson,Kentucky,21109,61,13 +2020-06-08,Jackson,Kentucky,21109,61,13 +2020-06-09,Jackson,Kentucky,21109,61,13 +2020-06-10,Jackson,Kentucky,21109,61,13 +2020-06-11,Jackson,Kentucky,21109,62,13 +2020-06-12,Jackson,Kentucky,21109,63,13 +2020-06-13,Jackson,Kentucky,21109,63,13 +2020-06-14,Jackson,Kentucky,21109,63,13 +2020-06-15,Jackson,Kentucky,21109,63,13 +2020-06-16,Jackson,Kentucky,21109,63,13 +2020-06-17,Jackson,Kentucky,21109,74,13 +2020-06-18,Jackson,Kentucky,21109,81,13 +2020-06-19,Jackson,Kentucky,21109,85,13 +2020-06-20,Jackson,Kentucky,21109,90,13 +2020-06-21,Jackson,Kentucky,21109,90,13 +2020-06-22,Jackson,Kentucky,21109,90,13 +2020-06-23,Jackson,Kentucky,21109,92,13 +2020-06-24,Jackson,Kentucky,21109,94,13 +2020-06-25,Jackson,Kentucky,21109,96,13 +2020-06-26,Jackson,Kentucky,21109,100,13 +2020-06-27,Jackson,Kentucky,21109,104,13 +2020-06-28,Jackson,Kentucky,21109,104,13 +2020-06-29,Jackson,Kentucky,21109,104,13 +2020-06-30,Jackson,Kentucky,21109,108,13 +2020-07-01,Jackson,Kentucky,21109,109,14 +2020-07-02,Jackson,Kentucky,21109,113,14 +2020-07-03,Jackson,Kentucky,21109,114,14 +2020-07-04,Jackson,Kentucky,21109,114,14 +2020-07-05,Jackson,Kentucky,21109,114,14 +2020-07-06,Jackson,Kentucky,21109,115,14 +2020-07-07,Jackson,Kentucky,21109,115,14 +2020-07-08,Jackson,Kentucky,21109,115,14 +2020-07-09,Jackson,Kentucky,21109,115,14 +2020-03-08,Jefferson,Kentucky,21111,1,0 +2020-03-09,Jefferson,Kentucky,21111,1,0 +2020-03-10,Jefferson,Kentucky,21111,1,0 +2020-03-11,Jefferson,Kentucky,21111,1,0 +2020-03-12,Jefferson,Kentucky,21111,2,0 +2020-03-13,Jefferson,Kentucky,21111,2,0 +2020-03-14,Jefferson,Kentucky,21111,4,0 +2020-03-15,Jefferson,Kentucky,21111,6,0 +2020-03-16,Jefferson,Kentucky,21111,7,0 +2020-03-17,Jefferson,Kentucky,21111,9,0 +2020-03-18,Jefferson,Kentucky,21111,11,0 +2020-03-19,Jefferson,Kentucky,21111,14,1 +2020-03-20,Jefferson,Kentucky,21111,23,1 +2020-03-21,Jefferson,Kentucky,21111,25,1 +2020-03-22,Jefferson,Kentucky,21111,26,1 +2020-03-23,Jefferson,Kentucky,21111,31,1 +2020-03-24,Jefferson,Kentucky,21111,40,1 +2020-03-25,Jefferson,Kentucky,21111,43,3 +2020-03-26,Jefferson,Kentucky,21111,57,3 +2020-03-27,Jefferson,Kentucky,21111,76,4 +2020-03-28,Jefferson,Kentucky,21111,99,4 +2020-03-29,Jefferson,Kentucky,21111,108,4 +2020-03-30,Jefferson,Kentucky,21111,125,4 +2020-03-31,Jefferson,Kentucky,21111,190,8 +2020-04-01,Jefferson,Kentucky,21111,221,8 +2020-04-02,Jefferson,Kentucky,21111,249,12 +2020-04-03,Jefferson,Kentucky,21111,249,12 +2020-04-04,Jefferson,Kentucky,21111,294,12 +2020-04-05,Jefferson,Kentucky,21111,304,12 +2020-04-06,Jefferson,Kentucky,21111,313,20 +2020-04-07,Jefferson,Kentucky,21111,402,27 +2020-04-08,Jefferson,Kentucky,21111,402,27 +2020-04-09,Jefferson,Kentucky,21111,436,33 +2020-04-10,Jefferson,Kentucky,21111,495,39 +2020-04-11,Jefferson,Kentucky,21111,495,40 +2020-04-12,Jefferson,Kentucky,21111,503,41 +2020-04-13,Jefferson,Kentucky,21111,531,46 +2020-04-14,Jefferson,Kentucky,21111,573,49 +2020-04-15,Jefferson,Kentucky,21111,582,53 +2020-04-16,Jefferson,Kentucky,21111,600,56 +2020-04-17,Jefferson,Kentucky,21111,600,60 +2020-04-18,Jefferson,Kentucky,21111,689,63 +2020-04-19,Jefferson,Kentucky,21111,814,64 +2020-04-20,Jefferson,Kentucky,21111,867,67 +2020-04-21,Jefferson,Kentucky,21111,925,70 +2020-04-22,Jefferson,Kentucky,21111,954,76 +2020-04-23,Jefferson,Kentucky,21111,1008,78 +2020-04-24,Jefferson,Kentucky,21111,1121,78 +2020-04-25,Jefferson,Kentucky,21111,1121,81 +2020-04-26,Jefferson,Kentucky,21111,1121,81 +2020-04-27,Jefferson,Kentucky,21111,1140,83 +2020-04-28,Jefferson,Kentucky,21111,1224,85 +2020-04-29,Jefferson,Kentucky,21111,1281,90 +2020-04-30,Jefferson,Kentucky,21111,1307,91 +2020-05-01,Jefferson,Kentucky,21111,1352,93 +2020-05-02,Jefferson,Kentucky,21111,1365,96 +2020-05-03,Jefferson,Kentucky,21111,1403,96 +2020-05-04,Jefferson,Kentucky,21111,1419,101 +2020-05-05,Jefferson,Kentucky,21111,1497,108 +2020-05-06,Jefferson,Kentucky,21111,1535,108 +2020-05-07,Jefferson,Kentucky,21111,1578,113 +2020-05-08,Jefferson,Kentucky,21111,1610,113 +2020-05-09,Jefferson,Kentucky,21111,1642,117 +2020-05-10,Jefferson,Kentucky,21111,1642,117 +2020-05-11,Jefferson,Kentucky,21111,1691,119 +2020-05-12,Jefferson,Kentucky,21111,1808,123 +2020-05-13,Jefferson,Kentucky,21111,1788,124 +2020-05-14,Jefferson,Kentucky,21111,1822,126 +2020-05-15,Jefferson,Kentucky,21111,1864,126 +2020-05-16,Jefferson,Kentucky,21111,1922,127 +2020-05-17,Jefferson,Kentucky,21111,1922,127 +2020-05-18,Jefferson,Kentucky,21111,2009,129 +2020-05-19,Jefferson,Kentucky,21111,2067,132 +2020-05-20,Jefferson,Kentucky,21111,2105,140 +2020-05-21,Jefferson,Kentucky,21111,2144,144 +2020-05-22,Jefferson,Kentucky,21111,2233,146 +2020-05-23,Jefferson,Kentucky,21111,2249,147 +2020-05-24,Jefferson,Kentucky,21111,2249,147 +2020-05-25,Jefferson,Kentucky,21111,2307,152 +2020-05-26,Jefferson,Kentucky,21111,2376,154 +2020-05-27,Jefferson,Kentucky,21111,2427,157 +2020-05-28,Jefferson,Kentucky,21111,2485,159 +2020-05-29,Jefferson,Kentucky,21111,2485,159 +2020-05-30,Jefferson,Kentucky,21111,2555,161 +2020-05-31,Jefferson,Kentucky,21111,2555,161 +2020-06-01,Jefferson,Kentucky,21111,2555,161 +2020-06-02,Jefferson,Kentucky,21111,2566,164 +2020-06-03,Jefferson,Kentucky,21111,2612,164 +2020-06-04,Jefferson,Kentucky,21111,2760,172 +2020-06-05,Jefferson,Kentucky,21111,2843,174 +2020-06-06,Jefferson,Kentucky,21111,3043,177 +2020-06-07,Jefferson,Kentucky,21111,3043,177 +2020-06-08,Jefferson,Kentucky,21111,3104,179 +2020-06-09,Jefferson,Kentucky,21111,3186,179 +2020-06-10,Jefferson,Kentucky,21111,3226,180 +2020-06-11,Jefferson,Kentucky,21111,3229,189 +2020-06-12,Jefferson,Kentucky,21111,3278,199 +2020-06-13,Jefferson,Kentucky,21111,3323,199 +2020-06-14,Jefferson,Kentucky,21111,3323,199 +2020-06-15,Jefferson,Kentucky,21111,3363,188 +2020-06-16,Jefferson,Kentucky,21111,3363,191 +2020-06-17,Jefferson,Kentucky,21111,3451,194 +2020-06-18,Jefferson,Kentucky,21111,3481,196 +2020-06-19,Jefferson,Kentucky,21111,3528,196 +2020-06-20,Jefferson,Kentucky,21111,3561,196 +2020-06-21,Jefferson,Kentucky,21111,3582,196 +2020-06-22,Jefferson,Kentucky,21111,3609,196 +2020-06-23,Jefferson,Kentucky,21111,3651,198 +2020-06-24,Jefferson,Kentucky,21111,3682,199 +2020-06-25,Jefferson,Kentucky,21111,3714,201 +2020-06-26,Jefferson,Kentucky,21111,3765,201 +2020-06-27,Jefferson,Kentucky,21111,3820,201 +2020-06-28,Jefferson,Kentucky,21111,3829,201 +2020-06-29,Jefferson,Kentucky,21111,3852,203 +2020-06-30,Jefferson,Kentucky,21111,3901,205 +2020-07-01,Jefferson,Kentucky,21111,3942,209 +2020-07-02,Jefferson,Kentucky,21111,3991,211 +2020-07-03,Jefferson,Kentucky,21111,4034,211 +2020-07-04,Jefferson,Kentucky,21111,4034,211 +2020-07-05,Jefferson,Kentucky,21111,4034,211 +2020-07-06,Jefferson,Kentucky,21111,4173,217 +2020-07-07,Jefferson,Kentucky,21111,4233,218 +2020-07-08,Jefferson,Kentucky,21111,4323,219 +2020-07-09,Jefferson,Kentucky,21111,4395,219 +2020-03-22,Jessamine,Kentucky,21113,1,0 +2020-03-23,Jessamine,Kentucky,21113,1,0 +2020-03-24,Jessamine,Kentucky,21113,2,0 +2020-03-25,Jessamine,Kentucky,21113,3,0 +2020-03-26,Jessamine,Kentucky,21113,7,0 +2020-03-27,Jessamine,Kentucky,21113,10,0 +2020-03-28,Jessamine,Kentucky,21113,10,0 +2020-03-29,Jessamine,Kentucky,21113,10,0 +2020-03-30,Jessamine,Kentucky,21113,11,0 +2020-03-31,Jessamine,Kentucky,21113,14,0 +2020-04-01,Jessamine,Kentucky,21113,15,0 +2020-04-02,Jessamine,Kentucky,21113,15,0 +2020-04-03,Jessamine,Kentucky,21113,15,0 +2020-04-04,Jessamine,Kentucky,21113,15,0 +2020-04-05,Jessamine,Kentucky,21113,15,0 +2020-04-06,Jessamine,Kentucky,21113,15,0 +2020-04-07,Jessamine,Kentucky,21113,16,0 +2020-04-08,Jessamine,Kentucky,21113,18,0 +2020-04-09,Jessamine,Kentucky,21113,18,0 +2020-04-10,Jessamine,Kentucky,21113,23,0 +2020-04-11,Jessamine,Kentucky,21113,26,0 +2020-04-12,Jessamine,Kentucky,21113,27,0 +2020-04-13,Jessamine,Kentucky,21113,28,0 +2020-04-14,Jessamine,Kentucky,21113,29,0 +2020-04-15,Jessamine,Kentucky,21113,29,0 +2020-04-16,Jessamine,Kentucky,21113,30,0 +2020-04-17,Jessamine,Kentucky,21113,31,0 +2020-04-18,Jessamine,Kentucky,21113,33,0 +2020-04-19,Jessamine,Kentucky,21113,32,0 +2020-04-20,Jessamine,Kentucky,21113,32,0 +2020-04-21,Jessamine,Kentucky,21113,32,0 +2020-04-22,Jessamine,Kentucky,21113,32,0 +2020-04-23,Jessamine,Kentucky,21113,32,0 +2020-04-24,Jessamine,Kentucky,21113,32,0 +2020-04-25,Jessamine,Kentucky,21113,32,0 +2020-04-26,Jessamine,Kentucky,21113,34,0 +2020-04-27,Jessamine,Kentucky,21113,34,0 +2020-04-28,Jessamine,Kentucky,21113,37,0 +2020-04-29,Jessamine,Kentucky,21113,40,0 +2020-04-30,Jessamine,Kentucky,21113,41,0 +2020-05-01,Jessamine,Kentucky,21113,41,0 +2020-05-02,Jessamine,Kentucky,21113,41,0 +2020-05-03,Jessamine,Kentucky,21113,41,0 +2020-05-04,Jessamine,Kentucky,21113,40,0 +2020-05-05,Jessamine,Kentucky,21113,40,0 +2020-05-06,Jessamine,Kentucky,21113,40,0 +2020-05-07,Jessamine,Kentucky,21113,40,0 +2020-05-08,Jessamine,Kentucky,21113,41,0 +2020-05-09,Jessamine,Kentucky,21113,46,0 +2020-05-10,Jessamine,Kentucky,21113,46,0 +2020-05-11,Jessamine,Kentucky,21113,47,0 +2020-05-12,Jessamine,Kentucky,21113,49,0 +2020-05-13,Jessamine,Kentucky,21113,49,0 +2020-05-14,Jessamine,Kentucky,21113,50,0 +2020-05-15,Jessamine,Kentucky,21113,50,0 +2020-05-16,Jessamine,Kentucky,21113,50,0 +2020-05-17,Jessamine,Kentucky,21113,50,0 +2020-05-18,Jessamine,Kentucky,21113,52,0 +2020-05-19,Jessamine,Kentucky,21113,51,0 +2020-05-20,Jessamine,Kentucky,21113,51,0 +2020-05-21,Jessamine,Kentucky,21113,50,0 +2020-05-22,Jessamine,Kentucky,21113,50,0 +2020-05-23,Jessamine,Kentucky,21113,51,0 +2020-05-24,Jessamine,Kentucky,21113,51,0 +2020-05-25,Jessamine,Kentucky,21113,51,0 +2020-05-26,Jessamine,Kentucky,21113,55,0 +2020-05-27,Jessamine,Kentucky,21113,56,0 +2020-05-28,Jessamine,Kentucky,21113,56,0 +2020-05-29,Jessamine,Kentucky,21113,57,0 +2020-05-30,Jessamine,Kentucky,21113,62,0 +2020-05-31,Jessamine,Kentucky,21113,62,0 +2020-06-01,Jessamine,Kentucky,21113,65,0 +2020-06-02,Jessamine,Kentucky,21113,68,0 +2020-06-03,Jessamine,Kentucky,21113,67,0 +2020-06-04,Jessamine,Kentucky,21113,67,0 +2020-06-05,Jessamine,Kentucky,21113,69,0 +2020-06-06,Jessamine,Kentucky,21113,73,0 +2020-06-07,Jessamine,Kentucky,21113,73,0 +2020-06-08,Jessamine,Kentucky,21113,77,0 +2020-06-09,Jessamine,Kentucky,21113,77,0 +2020-06-10,Jessamine,Kentucky,21113,80,0 +2020-06-11,Jessamine,Kentucky,21113,79,0 +2020-06-12,Jessamine,Kentucky,21113,79,0 +2020-06-13,Jessamine,Kentucky,21113,82,0 +2020-06-14,Jessamine,Kentucky,21113,82,0 +2020-06-15,Jessamine,Kentucky,21113,83,0 +2020-06-16,Jessamine,Kentucky,21113,85,0 +2020-06-17,Jessamine,Kentucky,21113,88,0 +2020-06-18,Jessamine,Kentucky,21113,91,0 +2020-06-19,Jessamine,Kentucky,21113,95,0 +2020-06-20,Jessamine,Kentucky,21113,96,0 +2020-06-21,Jessamine,Kentucky,21113,98,0 +2020-06-22,Jessamine,Kentucky,21113,99,0 +2020-06-23,Jessamine,Kentucky,21113,100,0 +2020-06-24,Jessamine,Kentucky,21113,100,0 +2020-06-25,Jessamine,Kentucky,21113,102,0 +2020-06-26,Jessamine,Kentucky,21113,103,0 +2020-06-27,Jessamine,Kentucky,21113,105,0 +2020-06-28,Jessamine,Kentucky,21113,105,0 +2020-06-29,Jessamine,Kentucky,21113,106,0 +2020-06-30,Jessamine,Kentucky,21113,106,0 +2020-07-01,Jessamine,Kentucky,21113,108,0 +2020-07-02,Jessamine,Kentucky,21113,111,0 +2020-07-03,Jessamine,Kentucky,21113,111,0 +2020-07-04,Jessamine,Kentucky,21113,115,0 +2020-07-05,Jessamine,Kentucky,21113,116,0 +2020-07-06,Jessamine,Kentucky,21113,120,0 +2020-07-07,Jessamine,Kentucky,21113,122,0 +2020-07-08,Jessamine,Kentucky,21113,124,0 +2020-07-09,Jessamine,Kentucky,21113,125,0 +2020-04-05,Johnson,Kentucky,21115,1,0 +2020-04-06,Johnson,Kentucky,21115,1,0 +2020-04-07,Johnson,Kentucky,21115,1,0 +2020-04-08,Johnson,Kentucky,21115,1,0 +2020-04-09,Johnson,Kentucky,21115,1,0 +2020-04-10,Johnson,Kentucky,21115,1,0 +2020-04-11,Johnson,Kentucky,21115,1,0 +2020-04-12,Johnson,Kentucky,21115,1,0 +2020-04-13,Johnson,Kentucky,21115,1,0 +2020-04-14,Johnson,Kentucky,21115,1,0 +2020-04-15,Johnson,Kentucky,21115,1,0 +2020-04-16,Johnson,Kentucky,21115,1,0 +2020-04-17,Johnson,Kentucky,21115,1,0 +2020-04-18,Johnson,Kentucky,21115,1,0 +2020-04-19,Johnson,Kentucky,21115,1,0 +2020-04-20,Johnson,Kentucky,21115,1,0 +2020-04-21,Johnson,Kentucky,21115,1,0 +2020-04-22,Johnson,Kentucky,21115,1,0 +2020-04-23,Johnson,Kentucky,21115,1,0 +2020-04-24,Johnson,Kentucky,21115,1,0 +2020-04-25,Johnson,Kentucky,21115,1,0 +2020-04-26,Johnson,Kentucky,21115,2,0 +2020-04-27,Johnson,Kentucky,21115,2,0 +2020-04-28,Johnson,Kentucky,21115,3,0 +2020-04-29,Johnson,Kentucky,21115,3,0 +2020-04-30,Johnson,Kentucky,21115,3,0 +2020-05-01,Johnson,Kentucky,21115,3,0 +2020-05-02,Johnson,Kentucky,21115,3,0 +2020-05-03,Johnson,Kentucky,21115,3,0 +2020-05-04,Johnson,Kentucky,21115,3,0 +2020-05-05,Johnson,Kentucky,21115,3,0 +2020-05-06,Johnson,Kentucky,21115,3,0 +2020-05-07,Johnson,Kentucky,21115,4,0 +2020-05-08,Johnson,Kentucky,21115,4,0 +2020-05-09,Johnson,Kentucky,21115,5,0 +2020-05-10,Johnson,Kentucky,21115,5,0 +2020-05-11,Johnson,Kentucky,21115,5,0 +2020-05-12,Johnson,Kentucky,21115,5,0 +2020-05-13,Johnson,Kentucky,21115,5,0 +2020-05-14,Johnson,Kentucky,21115,5,0 +2020-05-15,Johnson,Kentucky,21115,5,0 +2020-05-16,Johnson,Kentucky,21115,5,0 +2020-05-17,Johnson,Kentucky,21115,5,0 +2020-05-18,Johnson,Kentucky,21115,5,0 +2020-05-19,Johnson,Kentucky,21115,5,0 +2020-05-20,Johnson,Kentucky,21115,5,0 +2020-05-21,Johnson,Kentucky,21115,5,0 +2020-05-22,Johnson,Kentucky,21115,5,0 +2020-05-23,Johnson,Kentucky,21115,5,0 +2020-05-24,Johnson,Kentucky,21115,5,0 +2020-05-25,Johnson,Kentucky,21115,5,0 +2020-05-26,Johnson,Kentucky,21115,5,0 +2020-05-27,Johnson,Kentucky,21115,5,0 +2020-05-28,Johnson,Kentucky,21115,5,0 +2020-05-29,Johnson,Kentucky,21115,5,0 +2020-05-30,Johnson,Kentucky,21115,5,0 +2020-05-31,Johnson,Kentucky,21115,5,0 +2020-06-01,Johnson,Kentucky,21115,5,0 +2020-06-02,Johnson,Kentucky,21115,5,0 +2020-06-03,Johnson,Kentucky,21115,5,0 +2020-06-04,Johnson,Kentucky,21115,5,0 +2020-06-05,Johnson,Kentucky,21115,5,0 +2020-06-06,Johnson,Kentucky,21115,5,0 +2020-06-07,Johnson,Kentucky,21115,5,0 +2020-06-08,Johnson,Kentucky,21115,5,0 +2020-06-09,Johnson,Kentucky,21115,5,0 +2020-06-10,Johnson,Kentucky,21115,5,0 +2020-06-11,Johnson,Kentucky,21115,5,0 +2020-06-12,Johnson,Kentucky,21115,5,0 +2020-06-13,Johnson,Kentucky,21115,6,0 +2020-06-14,Johnson,Kentucky,21115,6,0 +2020-06-15,Johnson,Kentucky,21115,6,0 +2020-06-16,Johnson,Kentucky,21115,6,0 +2020-06-17,Johnson,Kentucky,21115,7,0 +2020-06-18,Johnson,Kentucky,21115,7,0 +2020-06-19,Johnson,Kentucky,21115,8,0 +2020-06-20,Johnson,Kentucky,21115,9,0 +2020-06-21,Johnson,Kentucky,21115,9,0 +2020-06-22,Johnson,Kentucky,21115,10,0 +2020-06-23,Johnson,Kentucky,21115,10,0 +2020-06-24,Johnson,Kentucky,21115,10,0 +2020-06-25,Johnson,Kentucky,21115,10,0 +2020-06-26,Johnson,Kentucky,21115,10,0 +2020-06-27,Johnson,Kentucky,21115,10,0 +2020-06-28,Johnson,Kentucky,21115,10,0 +2020-06-29,Johnson,Kentucky,21115,10,0 +2020-06-30,Johnson,Kentucky,21115,10,0 +2020-07-01,Johnson,Kentucky,21115,9,0 +2020-07-02,Johnson,Kentucky,21115,9,0 +2020-07-03,Johnson,Kentucky,21115,10,0 +2020-07-04,Johnson,Kentucky,21115,10,0 +2020-07-05,Johnson,Kentucky,21115,10,0 +2020-07-06,Johnson,Kentucky,21115,10,0 +2020-07-07,Johnson,Kentucky,21115,10,0 +2020-07-08,Johnson,Kentucky,21115,10,0 +2020-07-09,Johnson,Kentucky,21115,10,0 +2020-03-18,Kenton,Kentucky,21117,1,0 +2020-03-19,Kenton,Kentucky,21117,1,0 +2020-03-20,Kenton,Kentucky,21117,1,0 +2020-03-21,Kenton,Kentucky,21117,3,0 +2020-03-22,Kenton,Kentucky,21117,7,0 +2020-03-23,Kenton,Kentucky,21117,7,0 +2020-03-24,Kenton,Kentucky,21117,8,0 +2020-03-25,Kenton,Kentucky,21117,12,0 +2020-03-26,Kenton,Kentucky,21117,12,0 +2020-03-27,Kenton,Kentucky,21117,15,0 +2020-03-28,Kenton,Kentucky,21117,18,1 +2020-03-29,Kenton,Kentucky,21117,19,1 +2020-03-30,Kenton,Kentucky,21117,20,2 +2020-03-31,Kenton,Kentucky,21117,21,2 +2020-04-01,Kenton,Kentucky,21117,26,2 +2020-04-02,Kenton,Kentucky,21117,31,3 +2020-04-03,Kenton,Kentucky,21117,31,3 +2020-04-04,Kenton,Kentucky,21117,32,3 +2020-04-05,Kenton,Kentucky,21117,54,3 +2020-04-06,Kenton,Kentucky,21117,54,3 +2020-04-07,Kenton,Kentucky,21117,75,8 +2020-04-08,Kenton,Kentucky,21117,75,8 +2020-04-09,Kenton,Kentucky,21117,80,8 +2020-04-10,Kenton,Kentucky,21117,80,8 +2020-04-11,Kenton,Kentucky,21117,91,8 +2020-04-12,Kenton,Kentucky,21117,95,8 +2020-04-13,Kenton,Kentucky,21117,99,8 +2020-04-14,Kenton,Kentucky,21117,106,10 +2020-04-15,Kenton,Kentucky,21117,107,10 +2020-04-16,Kenton,Kentucky,21117,112,10 +2020-04-17,Kenton,Kentucky,21117,121,11 +2020-04-18,Kenton,Kentucky,21117,128,11 +2020-04-19,Kenton,Kentucky,21117,149,11 +2020-04-20,Kenton,Kentucky,21117,156,11 +2020-04-21,Kenton,Kentucky,21117,169,13 +2020-04-22,Kenton,Kentucky,21117,179,15 +2020-04-23,Kenton,Kentucky,21117,214,16 +2020-04-24,Kenton,Kentucky,21117,223,16 +2020-04-25,Kenton,Kentucky,21117,226,16 +2020-04-26,Kenton,Kentucky,21117,227,16 +2020-04-27,Kenton,Kentucky,21117,230,16 +2020-04-28,Kenton,Kentucky,21117,247,20 +2020-04-29,Kenton,Kentucky,21117,248,20 +2020-04-30,Kenton,Kentucky,21117,276,20 +2020-05-01,Kenton,Kentucky,21117,286,20 +2020-05-02,Kenton,Kentucky,21117,292,20 +2020-05-03,Kenton,Kentucky,21117,308,20 +2020-05-04,Kenton,Kentucky,21117,317,24 +2020-05-05,Kenton,Kentucky,21117,340,24 +2020-05-06,Kenton,Kentucky,21117,353,26 +2020-05-07,Kenton,Kentucky,21117,360,26 +2020-05-08,Kenton,Kentucky,21117,372,26 +2020-05-09,Kenton,Kentucky,21117,383,26 +2020-05-10,Kenton,Kentucky,21117,383,26 +2020-05-11,Kenton,Kentucky,21117,401,30 +2020-05-12,Kenton,Kentucky,21117,408,30 +2020-05-13,Kenton,Kentucky,21117,408,30 +2020-05-14,Kenton,Kentucky,21117,432,30 +2020-05-15,Kenton,Kentucky,21117,437,30 +2020-05-16,Kenton,Kentucky,21117,444,30 +2020-05-17,Kenton,Kentucky,21117,444,30 +2020-05-18,Kenton,Kentucky,21117,472,32 +2020-05-19,Kenton,Kentucky,21117,479,32 +2020-05-20,Kenton,Kentucky,21117,486,32 +2020-05-21,Kenton,Kentucky,21117,503,32 +2020-05-22,Kenton,Kentucky,21117,520,32 +2020-05-23,Kenton,Kentucky,21117,527,32 +2020-05-24,Kenton,Kentucky,21117,527,32 +2020-05-25,Kenton,Kentucky,21117,527,32 +2020-05-26,Kenton,Kentucky,21117,537,32 +2020-05-27,Kenton,Kentucky,21117,543,33 +2020-05-28,Kenton,Kentucky,21117,547,33 +2020-05-29,Kenton,Kentucky,21117,566,33 +2020-05-30,Kenton,Kentucky,21117,585,33 +2020-05-31,Kenton,Kentucky,21117,585,33 +2020-06-01,Kenton,Kentucky,21117,608,34 +2020-06-02,Kenton,Kentucky,21117,614,34 +2020-06-03,Kenton,Kentucky,21117,638,35 +2020-06-04,Kenton,Kentucky,21117,653,35 +2020-06-05,Kenton,Kentucky,21117,663,35 +2020-06-06,Kenton,Kentucky,21117,671,35 +2020-06-07,Kenton,Kentucky,21117,671,35 +2020-06-08,Kenton,Kentucky,21117,680,35 +2020-06-09,Kenton,Kentucky,21117,680,35 +2020-06-10,Kenton,Kentucky,21117,681,35 +2020-06-11,Kenton,Kentucky,21117,683,37 +2020-06-12,Kenton,Kentucky,21117,681,37 +2020-06-13,Kenton,Kentucky,21117,690,37 +2020-06-14,Kenton,Kentucky,21117,690,37 +2020-06-15,Kenton,Kentucky,21117,690,37 +2020-06-16,Kenton,Kentucky,21117,690,37 +2020-06-17,Kenton,Kentucky,21117,699,37 +2020-06-18,Kenton,Kentucky,21117,706,37 +2020-06-19,Kenton,Kentucky,21117,709,37 +2020-06-20,Kenton,Kentucky,21117,717,37 +2020-06-21,Kenton,Kentucky,21117,723,37 +2020-06-22,Kenton,Kentucky,21117,726,37 +2020-06-23,Kenton,Kentucky,21117,735,37 +2020-06-24,Kenton,Kentucky,21117,744,37 +2020-06-25,Kenton,Kentucky,21117,759,37 +2020-06-26,Kenton,Kentucky,21117,777,37 +2020-06-27,Kenton,Kentucky,21117,785,37 +2020-06-28,Kenton,Kentucky,21117,787,37 +2020-06-29,Kenton,Kentucky,21117,787,37 +2020-06-30,Kenton,Kentucky,21117,794,37 +2020-07-01,Kenton,Kentucky,21117,800,37 +2020-07-02,Kenton,Kentucky,21117,807,37 +2020-07-03,Kenton,Kentucky,21117,814,37 +2020-07-04,Kenton,Kentucky,21117,814,37 +2020-07-05,Kenton,Kentucky,21117,814,37 +2020-07-06,Kenton,Kentucky,21117,833,38 +2020-07-07,Kenton,Kentucky,21117,844,38 +2020-07-08,Kenton,Kentucky,21117,852,38 +2020-07-09,Kenton,Kentucky,21117,857,38 +2020-04-11,Knott,Kentucky,21119,1,0 +2020-04-12,Knott,Kentucky,21119,1,0 +2020-04-13,Knott,Kentucky,21119,1,0 +2020-04-14,Knott,Kentucky,21119,1,0 +2020-04-15,Knott,Kentucky,21119,1,0 +2020-04-16,Knott,Kentucky,21119,1,0 +2020-04-17,Knott,Kentucky,21119,2,0 +2020-04-18,Knott,Kentucky,21119,3,0 +2020-04-19,Knott,Kentucky,21119,3,0 +2020-04-20,Knott,Kentucky,21119,3,0 +2020-04-21,Knott,Kentucky,21119,3,0 +2020-04-22,Knott,Kentucky,21119,4,0 +2020-04-23,Knott,Kentucky,21119,4,0 +2020-04-24,Knott,Kentucky,21119,4,0 +2020-04-25,Knott,Kentucky,21119,4,0 +2020-04-26,Knott,Kentucky,21119,4,0 +2020-04-27,Knott,Kentucky,21119,4,0 +2020-04-28,Knott,Kentucky,21119,3,0 +2020-04-29,Knott,Kentucky,21119,3,0 +2020-04-30,Knott,Kentucky,21119,4,0 +2020-05-01,Knott,Kentucky,21119,4,0 +2020-05-02,Knott,Kentucky,21119,4,0 +2020-05-03,Knott,Kentucky,21119,4,0 +2020-05-04,Knott,Kentucky,21119,4,0 +2020-05-05,Knott,Kentucky,21119,4,0 +2020-05-06,Knott,Kentucky,21119,4,0 +2020-05-07,Knott,Kentucky,21119,4,0 +2020-05-08,Knott,Kentucky,21119,4,0 +2020-05-09,Knott,Kentucky,21119,4,0 +2020-05-10,Knott,Kentucky,21119,4,0 +2020-05-11,Knott,Kentucky,21119,4,0 +2020-05-12,Knott,Kentucky,21119,4,0 +2020-05-13,Knott,Kentucky,21119,4,0 +2020-05-14,Knott,Kentucky,21119,4,0 +2020-05-15,Knott,Kentucky,21119,4,0 +2020-05-16,Knott,Kentucky,21119,4,0 +2020-05-17,Knott,Kentucky,21119,4,0 +2020-05-18,Knott,Kentucky,21119,4,0 +2020-05-19,Knott,Kentucky,21119,4,0 +2020-05-20,Knott,Kentucky,21119,4,0 +2020-05-21,Knott,Kentucky,21119,4,0 +2020-05-22,Knott,Kentucky,21119,4,0 +2020-05-23,Knott,Kentucky,21119,4,0 +2020-05-24,Knott,Kentucky,21119,4,0 +2020-05-25,Knott,Kentucky,21119,4,0 +2020-05-26,Knott,Kentucky,21119,4,0 +2020-05-27,Knott,Kentucky,21119,4,0 +2020-05-28,Knott,Kentucky,21119,4,0 +2020-05-29,Knott,Kentucky,21119,4,0 +2020-05-30,Knott,Kentucky,21119,4,0 +2020-05-31,Knott,Kentucky,21119,4,0 +2020-06-01,Knott,Kentucky,21119,4,0 +2020-06-02,Knott,Kentucky,21119,4,0 +2020-06-03,Knott,Kentucky,21119,4,0 +2020-06-04,Knott,Kentucky,21119,4,0 +2020-06-05,Knott,Kentucky,21119,4,0 +2020-06-06,Knott,Kentucky,21119,4,0 +2020-06-07,Knott,Kentucky,21119,4,0 +2020-06-08,Knott,Kentucky,21119,4,0 +2020-06-09,Knott,Kentucky,21119,4,0 +2020-06-10,Knott,Kentucky,21119,4,0 +2020-06-11,Knott,Kentucky,21119,4,0 +2020-06-12,Knott,Kentucky,21119,4,0 +2020-06-13,Knott,Kentucky,21119,4,0 +2020-06-14,Knott,Kentucky,21119,4,0 +2020-06-15,Knott,Kentucky,21119,4,0 +2020-06-16,Knott,Kentucky,21119,4,0 +2020-06-17,Knott,Kentucky,21119,4,0 +2020-06-18,Knott,Kentucky,21119,4,0 +2020-06-19,Knott,Kentucky,21119,4,0 +2020-06-20,Knott,Kentucky,21119,4,0 +2020-06-21,Knott,Kentucky,21119,4,0 +2020-06-22,Knott,Kentucky,21119,4,0 +2020-06-23,Knott,Kentucky,21119,4,0 +2020-06-24,Knott,Kentucky,21119,5,0 +2020-06-25,Knott,Kentucky,21119,7,0 +2020-06-26,Knott,Kentucky,21119,7,0 +2020-06-27,Knott,Kentucky,21119,7,0 +2020-06-28,Knott,Kentucky,21119,7,0 +2020-06-29,Knott,Kentucky,21119,7,0 +2020-06-30,Knott,Kentucky,21119,7,0 +2020-07-01,Knott,Kentucky,21119,8,0 +2020-07-02,Knott,Kentucky,21119,10,0 +2020-07-03,Knott,Kentucky,21119,11,0 +2020-07-04,Knott,Kentucky,21119,11,0 +2020-07-05,Knott,Kentucky,21119,11,0 +2020-07-06,Knott,Kentucky,21119,11,0 +2020-07-07,Knott,Kentucky,21119,12,0 +2020-07-08,Knott,Kentucky,21119,14,0 +2020-07-09,Knott,Kentucky,21119,14,0 +2020-04-09,Knox,Kentucky,21121,1,0 +2020-04-10,Knox,Kentucky,21121,1,0 +2020-04-11,Knox,Kentucky,21121,1,0 +2020-04-12,Knox,Kentucky,21121,1,0 +2020-04-13,Knox,Kentucky,21121,1,0 +2020-04-14,Knox,Kentucky,21121,1,0 +2020-04-15,Knox,Kentucky,21121,1,0 +2020-04-16,Knox,Kentucky,21121,3,0 +2020-04-17,Knox,Kentucky,21121,4,0 +2020-04-18,Knox,Kentucky,21121,4,0 +2020-04-19,Knox,Kentucky,21121,5,0 +2020-04-20,Knox,Kentucky,21121,5,0 +2020-04-21,Knox,Kentucky,21121,5,0 +2020-04-22,Knox,Kentucky,21121,5,0 +2020-04-23,Knox,Kentucky,21121,5,0 +2020-04-24,Knox,Kentucky,21121,5,0 +2020-04-25,Knox,Kentucky,21121,5,0 +2020-04-26,Knox,Kentucky,21121,5,0 +2020-04-27,Knox,Kentucky,21121,6,0 +2020-04-28,Knox,Kentucky,21121,6,0 +2020-04-29,Knox,Kentucky,21121,6,0 +2020-04-30,Knox,Kentucky,21121,6,0 +2020-05-01,Knox,Kentucky,21121,6,0 +2020-05-02,Knox,Kentucky,21121,6,0 +2020-05-03,Knox,Kentucky,21121,6,0 +2020-05-04,Knox,Kentucky,21121,6,0 +2020-05-05,Knox,Kentucky,21121,8,0 +2020-05-06,Knox,Kentucky,21121,6,0 +2020-05-07,Knox,Kentucky,21121,6,0 +2020-05-08,Knox,Kentucky,21121,6,0 +2020-05-09,Knox,Kentucky,21121,7,0 +2020-05-10,Knox,Kentucky,21121,7,0 +2020-05-11,Knox,Kentucky,21121,7,0 +2020-05-12,Knox,Kentucky,21121,7,0 +2020-05-13,Knox,Kentucky,21121,7,0 +2020-05-14,Knox,Kentucky,21121,7,0 +2020-05-15,Knox,Kentucky,21121,7,0 +2020-05-16,Knox,Kentucky,21121,8,0 +2020-05-17,Knox,Kentucky,21121,8,0 +2020-05-18,Knox,Kentucky,21121,8,0 +2020-05-19,Knox,Kentucky,21121,8,0 +2020-05-20,Knox,Kentucky,21121,8,0 +2020-05-21,Knox,Kentucky,21121,8,0 +2020-05-22,Knox,Kentucky,21121,8,0 +2020-05-23,Knox,Kentucky,21121,8,0 +2020-05-24,Knox,Kentucky,21121,8,0 +2020-05-25,Knox,Kentucky,21121,8,0 +2020-05-26,Knox,Kentucky,21121,8,0 +2020-05-27,Knox,Kentucky,21121,8,0 +2020-05-28,Knox,Kentucky,21121,8,0 +2020-05-29,Knox,Kentucky,21121,8,0 +2020-05-30,Knox,Kentucky,21121,8,0 +2020-05-31,Knox,Kentucky,21121,8,0 +2020-06-01,Knox,Kentucky,21121,8,0 +2020-06-02,Knox,Kentucky,21121,10,0 +2020-06-03,Knox,Kentucky,21121,10,0 +2020-06-04,Knox,Kentucky,21121,10,0 +2020-06-05,Knox,Kentucky,21121,10,0 +2020-06-06,Knox,Kentucky,21121,10,0 +2020-06-07,Knox,Kentucky,21121,10,0 +2020-06-08,Knox,Kentucky,21121,10,0 +2020-06-09,Knox,Kentucky,21121,10,0 +2020-06-10,Knox,Kentucky,21121,10,0 +2020-06-11,Knox,Kentucky,21121,10,0 +2020-06-12,Knox,Kentucky,21121,10,0 +2020-06-13,Knox,Kentucky,21121,11,0 +2020-06-14,Knox,Kentucky,21121,11,0 +2020-06-15,Knox,Kentucky,21121,11,0 +2020-06-16,Knox,Kentucky,21121,11,0 +2020-06-17,Knox,Kentucky,21121,12,0 +2020-06-18,Knox,Kentucky,21121,12,0 +2020-06-19,Knox,Kentucky,21121,13,0 +2020-06-20,Knox,Kentucky,21121,13,0 +2020-06-21,Knox,Kentucky,21121,13,0 +2020-06-22,Knox,Kentucky,21121,13,0 +2020-06-23,Knox,Kentucky,21121,15,0 +2020-06-24,Knox,Kentucky,21121,16,0 +2020-06-25,Knox,Kentucky,21121,16,0 +2020-06-26,Knox,Kentucky,21121,20,0 +2020-06-27,Knox,Kentucky,21121,63,0 +2020-06-28,Knox,Kentucky,21121,63,0 +2020-06-29,Knox,Kentucky,21121,64,0 +2020-06-30,Knox,Kentucky,21121,66,0 +2020-07-01,Knox,Kentucky,21121,69,0 +2020-07-02,Knox,Kentucky,21121,71,0 +2020-07-03,Knox,Kentucky,21121,73,0 +2020-07-04,Knox,Kentucky,21121,73,0 +2020-07-05,Knox,Kentucky,21121,73,0 +2020-07-06,Knox,Kentucky,21121,80,0 +2020-07-07,Knox,Kentucky,21121,81,4 +2020-07-08,Knox,Kentucky,21121,88,4 +2020-07-09,Knox,Kentucky,21121,88,5 +2020-03-27,Larue,Kentucky,21123,1,0 +2020-03-28,Larue,Kentucky,21123,1,0 +2020-03-29,Larue,Kentucky,21123,1,0 +2020-03-30,Larue,Kentucky,21123,1,0 +2020-03-31,Larue,Kentucky,21123,2,0 +2020-04-01,Larue,Kentucky,21123,2,0 +2020-04-02,Larue,Kentucky,21123,2,0 +2020-04-03,Larue,Kentucky,21123,2,0 +2020-04-04,Larue,Kentucky,21123,2,0 +2020-04-05,Larue,Kentucky,21123,3,0 +2020-04-06,Larue,Kentucky,21123,3,0 +2020-04-07,Larue,Kentucky,21123,3,0 +2020-04-08,Larue,Kentucky,21123,3,0 +2020-04-09,Larue,Kentucky,21123,3,0 +2020-04-10,Larue,Kentucky,21123,3,0 +2020-04-11,Larue,Kentucky,21123,3,0 +2020-04-12,Larue,Kentucky,21123,3,0 +2020-04-13,Larue,Kentucky,21123,3,0 +2020-04-14,Larue,Kentucky,21123,4,0 +2020-04-15,Larue,Kentucky,21123,4,0 +2020-04-16,Larue,Kentucky,21123,4,0 +2020-04-17,Larue,Kentucky,21123,5,0 +2020-04-18,Larue,Kentucky,21123,5,0 +2020-04-19,Larue,Kentucky,21123,5,0 +2020-04-20,Larue,Kentucky,21123,5,0 +2020-04-21,Larue,Kentucky,21123,5,0 +2020-04-22,Larue,Kentucky,21123,5,0 +2020-04-23,Larue,Kentucky,21123,5,0 +2020-04-24,Larue,Kentucky,21123,5,0 +2020-04-25,Larue,Kentucky,21123,5,0 +2020-04-26,Larue,Kentucky,21123,5,0 +2020-04-27,Larue,Kentucky,21123,5,0 +2020-04-28,Larue,Kentucky,21123,5,0 +2020-04-29,Larue,Kentucky,21123,5,0 +2020-04-30,Larue,Kentucky,21123,5,0 +2020-05-01,Larue,Kentucky,21123,5,0 +2020-05-02,Larue,Kentucky,21123,5,0 +2020-05-03,Larue,Kentucky,21123,5,0 +2020-05-04,Larue,Kentucky,21123,5,0 +2020-05-05,Larue,Kentucky,21123,5,0 +2020-05-06,Larue,Kentucky,21123,6,0 +2020-05-07,Larue,Kentucky,21123,6,0 +2020-05-08,Larue,Kentucky,21123,6,0 +2020-05-09,Larue,Kentucky,21123,6,0 +2020-05-10,Larue,Kentucky,21123,6,0 +2020-05-11,Larue,Kentucky,21123,6,0 +2020-05-12,Larue,Kentucky,21123,6,0 +2020-05-13,Larue,Kentucky,21123,6,0 +2020-05-14,Larue,Kentucky,21123,6,0 +2020-05-15,Larue,Kentucky,21123,6,0 +2020-05-16,Larue,Kentucky,21123,6,0 +2020-05-17,Larue,Kentucky,21123,6,0 +2020-05-18,Larue,Kentucky,21123,6,0 +2020-05-19,Larue,Kentucky,21123,6,0 +2020-05-20,Larue,Kentucky,21123,6,0 +2020-05-21,Larue,Kentucky,21123,6,0 +2020-05-22,Larue,Kentucky,21123,6,0 +2020-05-23,Larue,Kentucky,21123,7,0 +2020-05-24,Larue,Kentucky,21123,7,0 +2020-05-25,Larue,Kentucky,21123,7,0 +2020-05-26,Larue,Kentucky,21123,7,0 +2020-05-27,Larue,Kentucky,21123,7,0 +2020-05-28,Larue,Kentucky,21123,7,0 +2020-05-29,Larue,Kentucky,21123,7,0 +2020-05-30,Larue,Kentucky,21123,8,0 +2020-05-31,Larue,Kentucky,21123,8,0 +2020-06-01,Larue,Kentucky,21123,8,0 +2020-06-02,Larue,Kentucky,21123,8,0 +2020-06-03,Larue,Kentucky,21123,8,0 +2020-06-04,Larue,Kentucky,21123,9,0 +2020-06-05,Larue,Kentucky,21123,9,0 +2020-06-06,Larue,Kentucky,21123,11,0 +2020-06-07,Larue,Kentucky,21123,11,0 +2020-06-08,Larue,Kentucky,21123,12,0 +2020-06-09,Larue,Kentucky,21123,12,1 +2020-06-10,Larue,Kentucky,21123,13,1 +2020-06-11,Larue,Kentucky,21123,15,1 +2020-06-12,Larue,Kentucky,21123,15,1 +2020-06-13,Larue,Kentucky,21123,15,1 +2020-06-14,Larue,Kentucky,21123,15,1 +2020-06-15,Larue,Kentucky,21123,15,1 +2020-06-16,Larue,Kentucky,21123,15,1 +2020-06-17,Larue,Kentucky,21123,15,1 +2020-06-18,Larue,Kentucky,21123,15,1 +2020-06-19,Larue,Kentucky,21123,15,1 +2020-06-20,Larue,Kentucky,21123,15,1 +2020-06-21,Larue,Kentucky,21123,15,1 +2020-06-22,Larue,Kentucky,21123,15,1 +2020-06-23,Larue,Kentucky,21123,15,1 +2020-06-24,Larue,Kentucky,21123,15,1 +2020-06-25,Larue,Kentucky,21123,15,1 +2020-06-26,Larue,Kentucky,21123,15,1 +2020-06-27,Larue,Kentucky,21123,15,1 +2020-06-28,Larue,Kentucky,21123,15,1 +2020-06-29,Larue,Kentucky,21123,16,1 +2020-06-30,Larue,Kentucky,21123,17,1 +2020-07-01,Larue,Kentucky,21123,17,1 +2020-07-02,Larue,Kentucky,21123,17,1 +2020-07-03,Larue,Kentucky,21123,17,1 +2020-07-04,Larue,Kentucky,21123,17,1 +2020-07-05,Larue,Kentucky,21123,17,1 +2020-07-06,Larue,Kentucky,21123,19,1 +2020-07-07,Larue,Kentucky,21123,20,1 +2020-07-08,Larue,Kentucky,21123,20,1 +2020-07-09,Larue,Kentucky,21123,20,1 +2020-03-25,Laurel,Kentucky,21125,1,0 +2020-03-26,Laurel,Kentucky,21125,1,0 +2020-03-27,Laurel,Kentucky,21125,1,0 +2020-03-28,Laurel,Kentucky,21125,1,0 +2020-03-29,Laurel,Kentucky,21125,1,0 +2020-03-30,Laurel,Kentucky,21125,1,0 +2020-03-31,Laurel,Kentucky,21125,2,0 +2020-04-01,Laurel,Kentucky,21125,2,0 +2020-04-02,Laurel,Kentucky,21125,2,0 +2020-04-03,Laurel,Kentucky,21125,2,0 +2020-04-04,Laurel,Kentucky,21125,2,0 +2020-04-05,Laurel,Kentucky,21125,2,0 +2020-04-06,Laurel,Kentucky,21125,2,0 +2020-04-07,Laurel,Kentucky,21125,3,0 +2020-04-08,Laurel,Kentucky,21125,3,0 +2020-04-09,Laurel,Kentucky,21125,3,0 +2020-04-10,Laurel,Kentucky,21125,6,0 +2020-04-11,Laurel,Kentucky,21125,9,0 +2020-04-12,Laurel,Kentucky,21125,8,0 +2020-04-13,Laurel,Kentucky,21125,9,2 +2020-04-14,Laurel,Kentucky,21125,11,2 +2020-04-15,Laurel,Kentucky,21125,12,2 +2020-04-16,Laurel,Kentucky,21125,12,2 +2020-04-17,Laurel,Kentucky,21125,13,2 +2020-04-18,Laurel,Kentucky,21125,13,2 +2020-04-19,Laurel,Kentucky,21125,13,2 +2020-04-20,Laurel,Kentucky,21125,13,2 +2020-04-21,Laurel,Kentucky,21125,14,2 +2020-04-22,Laurel,Kentucky,21125,14,2 +2020-04-23,Laurel,Kentucky,21125,14,2 +2020-04-24,Laurel,Kentucky,21125,14,2 +2020-04-25,Laurel,Kentucky,21125,14,2 +2020-04-26,Laurel,Kentucky,21125,14,2 +2020-04-27,Laurel,Kentucky,21125,14,2 +2020-04-28,Laurel,Kentucky,21125,14,2 +2020-04-29,Laurel,Kentucky,21125,15,2 +2020-04-30,Laurel,Kentucky,21125,17,2 +2020-05-01,Laurel,Kentucky,21125,17,2 +2020-05-02,Laurel,Kentucky,21125,17,2 +2020-05-03,Laurel,Kentucky,21125,17,2 +2020-05-04,Laurel,Kentucky,21125,17,2 +2020-05-05,Laurel,Kentucky,21125,19,2 +2020-05-06,Laurel,Kentucky,21125,20,2 +2020-05-07,Laurel,Kentucky,21125,20,2 +2020-05-08,Laurel,Kentucky,21125,21,2 +2020-05-09,Laurel,Kentucky,21125,22,2 +2020-05-10,Laurel,Kentucky,21125,22,2 +2020-05-11,Laurel,Kentucky,21125,21,2 +2020-05-12,Laurel,Kentucky,21125,21,2 +2020-05-13,Laurel,Kentucky,21125,21,2 +2020-05-14,Laurel,Kentucky,21125,21,2 +2020-05-15,Laurel,Kentucky,21125,21,2 +2020-05-16,Laurel,Kentucky,21125,21,2 +2020-05-17,Laurel,Kentucky,21125,21,2 +2020-05-18,Laurel,Kentucky,21125,21,2 +2020-05-19,Laurel,Kentucky,21125,21,2 +2020-05-20,Laurel,Kentucky,21125,21,2 +2020-05-21,Laurel,Kentucky,21125,21,2 +2020-05-22,Laurel,Kentucky,21125,21,2 +2020-05-23,Laurel,Kentucky,21125,21,2 +2020-05-24,Laurel,Kentucky,21125,21,2 +2020-05-25,Laurel,Kentucky,21125,21,2 +2020-05-26,Laurel,Kentucky,21125,21,2 +2020-05-27,Laurel,Kentucky,21125,21,2 +2020-05-28,Laurel,Kentucky,21125,21,2 +2020-05-29,Laurel,Kentucky,21125,21,2 +2020-05-30,Laurel,Kentucky,21125,21,2 +2020-05-31,Laurel,Kentucky,21125,21,2 +2020-06-01,Laurel,Kentucky,21125,21,2 +2020-06-02,Laurel,Kentucky,21125,21,2 +2020-06-03,Laurel,Kentucky,21125,21,2 +2020-06-04,Laurel,Kentucky,21125,21,2 +2020-06-05,Laurel,Kentucky,21125,21,2 +2020-06-06,Laurel,Kentucky,21125,21,2 +2020-06-07,Laurel,Kentucky,21125,21,2 +2020-06-08,Laurel,Kentucky,21125,22,2 +2020-06-09,Laurel,Kentucky,21125,22,2 +2020-06-10,Laurel,Kentucky,21125,22,2 +2020-06-11,Laurel,Kentucky,21125,22,2 +2020-06-12,Laurel,Kentucky,21125,25,2 +2020-06-13,Laurel,Kentucky,21125,29,2 +2020-06-14,Laurel,Kentucky,21125,29,2 +2020-06-15,Laurel,Kentucky,21125,30,2 +2020-06-16,Laurel,Kentucky,21125,30,2 +2020-06-17,Laurel,Kentucky,21125,47,2 +2020-06-18,Laurel,Kentucky,21125,48,2 +2020-06-19,Laurel,Kentucky,21125,52,2 +2020-06-20,Laurel,Kentucky,21125,54,2 +2020-06-21,Laurel,Kentucky,21125,55,2 +2020-06-22,Laurel,Kentucky,21125,55,2 +2020-06-23,Laurel,Kentucky,21125,57,2 +2020-06-24,Laurel,Kentucky,21125,63,3 +2020-06-25,Laurel,Kentucky,21125,71,3 +2020-06-26,Laurel,Kentucky,21125,79,3 +2020-06-27,Laurel,Kentucky,21125,84,3 +2020-06-28,Laurel,Kentucky,21125,85,3 +2020-06-29,Laurel,Kentucky,21125,90,3 +2020-06-30,Laurel,Kentucky,21125,102,3 +2020-07-01,Laurel,Kentucky,21125,111,3 +2020-07-02,Laurel,Kentucky,21125,114,3 +2020-07-03,Laurel,Kentucky,21125,124,3 +2020-07-04,Laurel,Kentucky,21125,124,3 +2020-07-05,Laurel,Kentucky,21125,124,3 +2020-07-06,Laurel,Kentucky,21125,133,3 +2020-07-07,Laurel,Kentucky,21125,143,3 +2020-07-08,Laurel,Kentucky,21125,158,3 +2020-07-09,Laurel,Kentucky,21125,165,3 +2020-03-31,Lawrence,Kentucky,21127,1,0 +2020-04-01,Lawrence,Kentucky,21127,1,0 +2020-04-02,Lawrence,Kentucky,21127,1,0 +2020-04-03,Lawrence,Kentucky,21127,1,0 +2020-04-04,Lawrence,Kentucky,21127,1,0 +2020-04-05,Lawrence,Kentucky,21127,1,0 +2020-04-06,Lawrence,Kentucky,21127,1,0 +2020-04-07,Lawrence,Kentucky,21127,1,0 +2020-04-08,Lawrence,Kentucky,21127,1,0 +2020-04-09,Lawrence,Kentucky,21127,1,0 +2020-04-10,Lawrence,Kentucky,21127,1,0 +2020-04-11,Lawrence,Kentucky,21127,1,0 +2020-04-12,Lawrence,Kentucky,21127,1,0 +2020-04-13,Lawrence,Kentucky,21127,1,0 +2020-04-14,Lawrence,Kentucky,21127,1,0 +2020-04-15,Lawrence,Kentucky,21127,1,0 +2020-04-16,Lawrence,Kentucky,21127,1,0 +2020-04-17,Lawrence,Kentucky,21127,1,0 +2020-04-18,Lawrence,Kentucky,21127,1,0 +2020-04-19,Lawrence,Kentucky,21127,1,0 +2020-04-20,Lawrence,Kentucky,21127,1,0 +2020-04-21,Lawrence,Kentucky,21127,1,0 +2020-04-22,Lawrence,Kentucky,21127,1,0 +2020-04-23,Lawrence,Kentucky,21127,1,0 +2020-04-24,Lawrence,Kentucky,21127,1,0 +2020-04-25,Lawrence,Kentucky,21127,1,0 +2020-04-26,Lawrence,Kentucky,21127,1,0 +2020-04-27,Lawrence,Kentucky,21127,1,0 +2020-04-28,Lawrence,Kentucky,21127,1,0 +2020-04-29,Lawrence,Kentucky,21127,1,0 +2020-04-30,Lawrence,Kentucky,21127,1,0 +2020-05-01,Lawrence,Kentucky,21127,1,0 +2020-05-02,Lawrence,Kentucky,21127,1,0 +2020-05-03,Lawrence,Kentucky,21127,1,0 +2020-05-04,Lawrence,Kentucky,21127,1,0 +2020-05-05,Lawrence,Kentucky,21127,1,0 +2020-05-06,Lawrence,Kentucky,21127,1,0 +2020-05-07,Lawrence,Kentucky,21127,1,0 +2020-05-08,Lawrence,Kentucky,21127,1,0 +2020-05-09,Lawrence,Kentucky,21127,1,0 +2020-05-10,Lawrence,Kentucky,21127,1,0 +2020-05-11,Lawrence,Kentucky,21127,1,0 +2020-05-12,Lawrence,Kentucky,21127,1,0 +2020-05-13,Lawrence,Kentucky,21127,1,0 +2020-05-14,Lawrence,Kentucky,21127,2,0 +2020-05-15,Lawrence,Kentucky,21127,2,0 +2020-05-16,Lawrence,Kentucky,21127,2,0 +2020-05-17,Lawrence,Kentucky,21127,2,0 +2020-05-18,Lawrence,Kentucky,21127,2,0 +2020-05-19,Lawrence,Kentucky,21127,2,0 +2020-05-20,Lawrence,Kentucky,21127,2,0 +2020-05-21,Lawrence,Kentucky,21127,2,0 +2020-05-22,Lawrence,Kentucky,21127,2,0 +2020-05-23,Lawrence,Kentucky,21127,2,0 +2020-05-24,Lawrence,Kentucky,21127,2,0 +2020-05-25,Lawrence,Kentucky,21127,2,0 +2020-05-26,Lawrence,Kentucky,21127,2,0 +2020-05-27,Lawrence,Kentucky,21127,2,0 +2020-05-28,Lawrence,Kentucky,21127,2,0 +2020-05-29,Lawrence,Kentucky,21127,2,0 +2020-05-30,Lawrence,Kentucky,21127,2,0 +2020-05-31,Lawrence,Kentucky,21127,2,0 +2020-06-01,Lawrence,Kentucky,21127,3,0 +2020-06-02,Lawrence,Kentucky,21127,4,0 +2020-06-03,Lawrence,Kentucky,21127,4,0 +2020-06-04,Lawrence,Kentucky,21127,4,0 +2020-06-05,Lawrence,Kentucky,21127,5,0 +2020-06-06,Lawrence,Kentucky,21127,5,0 +2020-06-07,Lawrence,Kentucky,21127,5,0 +2020-06-08,Lawrence,Kentucky,21127,5,0 +2020-06-09,Lawrence,Kentucky,21127,5,0 +2020-06-10,Lawrence,Kentucky,21127,5,0 +2020-06-11,Lawrence,Kentucky,21127,5,0 +2020-06-12,Lawrence,Kentucky,21127,5,0 +2020-06-13,Lawrence,Kentucky,21127,5,0 +2020-06-14,Lawrence,Kentucky,21127,5,0 +2020-06-15,Lawrence,Kentucky,21127,5,0 +2020-06-16,Lawrence,Kentucky,21127,5,0 +2020-06-17,Lawrence,Kentucky,21127,5,0 +2020-06-18,Lawrence,Kentucky,21127,5,0 +2020-06-19,Lawrence,Kentucky,21127,5,0 +2020-06-20,Lawrence,Kentucky,21127,5,0 +2020-06-21,Lawrence,Kentucky,21127,5,0 +2020-06-22,Lawrence,Kentucky,21127,5,0 +2020-06-23,Lawrence,Kentucky,21127,5,0 +2020-06-24,Lawrence,Kentucky,21127,5,0 +2020-06-25,Lawrence,Kentucky,21127,5,0 +2020-06-26,Lawrence,Kentucky,21127,6,0 +2020-06-27,Lawrence,Kentucky,21127,6,0 +2020-06-28,Lawrence,Kentucky,21127,7,0 +2020-06-29,Lawrence,Kentucky,21127,7,0 +2020-06-30,Lawrence,Kentucky,21127,8,0 +2020-07-01,Lawrence,Kentucky,21127,8,0 +2020-07-02,Lawrence,Kentucky,21127,8,0 +2020-07-03,Lawrence,Kentucky,21127,9,0 +2020-07-04,Lawrence,Kentucky,21127,9,0 +2020-07-05,Lawrence,Kentucky,21127,9,0 +2020-07-06,Lawrence,Kentucky,21127,10,0 +2020-07-07,Lawrence,Kentucky,21127,11,0 +2020-07-08,Lawrence,Kentucky,21127,11,0 +2020-07-09,Lawrence,Kentucky,21127,11,0 +2020-05-28,Lee,Kentucky,21129,1,0 +2020-05-29,Lee,Kentucky,21129,1,0 +2020-05-30,Lee,Kentucky,21129,1,0 +2020-05-31,Lee,Kentucky,21129,1,0 +2020-06-01,Lee,Kentucky,21129,1,0 +2020-06-02,Lee,Kentucky,21129,1,0 +2020-06-03,Lee,Kentucky,21129,1,0 +2020-06-04,Lee,Kentucky,21129,1,0 +2020-06-05,Lee,Kentucky,21129,1,0 +2020-06-06,Lee,Kentucky,21129,1,0 +2020-06-07,Lee,Kentucky,21129,1,0 +2020-06-08,Lee,Kentucky,21129,1,0 +2020-06-09,Lee,Kentucky,21129,1,0 +2020-06-10,Lee,Kentucky,21129,1,0 +2020-06-11,Lee,Kentucky,21129,1,0 +2020-06-12,Lee,Kentucky,21129,1,0 +2020-06-13,Lee,Kentucky,21129,1,0 +2020-06-14,Lee,Kentucky,21129,1,0 +2020-06-15,Lee,Kentucky,21129,1,0 +2020-06-16,Lee,Kentucky,21129,1,0 +2020-06-17,Lee,Kentucky,21129,1,0 +2020-06-18,Lee,Kentucky,21129,1,0 +2020-06-19,Lee,Kentucky,21129,1,0 +2020-06-20,Lee,Kentucky,21129,1,0 +2020-06-21,Lee,Kentucky,21129,1,0 +2020-06-22,Lee,Kentucky,21129,1,0 +2020-06-23,Lee,Kentucky,21129,1,0 +2020-06-24,Lee,Kentucky,21129,1,0 +2020-06-25,Lee,Kentucky,21129,1,0 +2020-06-26,Lee,Kentucky,21129,1,0 +2020-06-27,Lee,Kentucky,21129,1,0 +2020-06-28,Lee,Kentucky,21129,1,0 +2020-06-29,Lee,Kentucky,21129,1,0 +2020-06-30,Lee,Kentucky,21129,1,0 +2020-07-01,Lee,Kentucky,21129,1,0 +2020-07-02,Lee,Kentucky,21129,1,0 +2020-07-03,Lee,Kentucky,21129,1,0 +2020-07-04,Lee,Kentucky,21129,1,0 +2020-07-05,Lee,Kentucky,21129,1,0 +2020-07-06,Lee,Kentucky,21129,1,0 +2020-07-07,Lee,Kentucky,21129,1,0 +2020-07-08,Lee,Kentucky,21129,1,0 +2020-07-09,Lee,Kentucky,21129,1,0 +2020-04-05,Leslie,Kentucky,21131,1,0 +2020-04-06,Leslie,Kentucky,21131,1,0 +2020-04-07,Leslie,Kentucky,21131,1,0 +2020-04-08,Leslie,Kentucky,21131,1,0 +2020-04-09,Leslie,Kentucky,21131,1,0 +2020-04-10,Leslie,Kentucky,21131,1,0 +2020-04-11,Leslie,Kentucky,21131,1,0 +2020-04-12,Leslie,Kentucky,21131,1,0 +2020-04-13,Leslie,Kentucky,21131,1,0 +2020-04-14,Leslie,Kentucky,21131,2,0 +2020-04-15,Leslie,Kentucky,21131,2,0 +2020-04-16,Leslie,Kentucky,21131,2,0 +2020-04-17,Leslie,Kentucky,21131,2,0 +2020-04-18,Leslie,Kentucky,21131,2,0 +2020-04-19,Leslie,Kentucky,21131,2,0 +2020-04-20,Leslie,Kentucky,21131,2,0 +2020-04-21,Leslie,Kentucky,21131,2,0 +2020-04-22,Leslie,Kentucky,21131,2,0 +2020-04-23,Leslie,Kentucky,21131,2,0 +2020-04-24,Leslie,Kentucky,21131,2,0 +2020-04-25,Leslie,Kentucky,21131,2,0 +2020-04-26,Leslie,Kentucky,21131,2,0 +2020-04-27,Leslie,Kentucky,21131,2,0 +2020-04-28,Leslie,Kentucky,21131,2,0 +2020-04-29,Leslie,Kentucky,21131,2,0 +2020-04-30,Leslie,Kentucky,21131,4,0 +2020-05-01,Leslie,Kentucky,21131,4,0 +2020-05-02,Leslie,Kentucky,21131,4,0 +2020-05-03,Leslie,Kentucky,21131,4,0 +2020-05-04,Leslie,Kentucky,21131,4,0 +2020-05-05,Leslie,Kentucky,21131,4,0 +2020-05-06,Leslie,Kentucky,21131,4,0 +2020-05-07,Leslie,Kentucky,21131,4,0 +2020-05-08,Leslie,Kentucky,21131,5,0 +2020-05-09,Leslie,Kentucky,21131,5,0 +2020-05-10,Leslie,Kentucky,21131,5,0 +2020-05-11,Leslie,Kentucky,21131,5,0 +2020-05-12,Leslie,Kentucky,21131,5,0 +2020-05-13,Leslie,Kentucky,21131,5,0 +2020-05-14,Leslie,Kentucky,21131,6,0 +2020-05-15,Leslie,Kentucky,21131,6,0 +2020-05-16,Leslie,Kentucky,21131,6,0 +2020-05-17,Leslie,Kentucky,21131,6,0 +2020-05-18,Leslie,Kentucky,21131,6,0 +2020-05-19,Leslie,Kentucky,21131,6,0 +2020-05-20,Leslie,Kentucky,21131,6,0 +2020-05-21,Leslie,Kentucky,21131,6,0 +2020-05-22,Leslie,Kentucky,21131,6,0 +2020-05-23,Leslie,Kentucky,21131,6,0 +2020-05-24,Leslie,Kentucky,21131,6,0 +2020-05-25,Leslie,Kentucky,21131,6,0 +2020-05-26,Leslie,Kentucky,21131,6,0 +2020-05-27,Leslie,Kentucky,21131,6,0 +2020-05-28,Leslie,Kentucky,21131,6,0 +2020-05-29,Leslie,Kentucky,21131,6,0 +2020-05-30,Leslie,Kentucky,21131,6,0 +2020-05-31,Leslie,Kentucky,21131,6,0 +2020-06-01,Leslie,Kentucky,21131,6,0 +2020-06-02,Leslie,Kentucky,21131,6,0 +2020-06-03,Leslie,Kentucky,21131,6,0 +2020-06-04,Leslie,Kentucky,21131,6,0 +2020-06-05,Leslie,Kentucky,21131,6,0 +2020-06-06,Leslie,Kentucky,21131,6,0 +2020-06-07,Leslie,Kentucky,21131,6,0 +2020-06-08,Leslie,Kentucky,21131,6,0 +2020-06-09,Leslie,Kentucky,21131,6,0 +2020-06-10,Leslie,Kentucky,21131,6,0 +2020-06-11,Leslie,Kentucky,21131,6,0 +2020-06-12,Leslie,Kentucky,21131,6,0 +2020-06-13,Leslie,Kentucky,21131,6,0 +2020-06-14,Leslie,Kentucky,21131,6,0 +2020-06-15,Leslie,Kentucky,21131,6,0 +2020-06-16,Leslie,Kentucky,21131,6,0 +2020-06-17,Leslie,Kentucky,21131,7,0 +2020-06-18,Leslie,Kentucky,21131,7,0 +2020-06-19,Leslie,Kentucky,21131,7,0 +2020-06-20,Leslie,Kentucky,21131,7,0 +2020-06-21,Leslie,Kentucky,21131,7,0 +2020-06-22,Leslie,Kentucky,21131,8,0 +2020-06-23,Leslie,Kentucky,21131,8,0 +2020-06-24,Leslie,Kentucky,21131,8,0 +2020-06-25,Leslie,Kentucky,21131,8,0 +2020-06-26,Leslie,Kentucky,21131,8,0 +2020-06-27,Leslie,Kentucky,21131,8,0 +2020-06-28,Leslie,Kentucky,21131,8,0 +2020-06-29,Leslie,Kentucky,21131,8,0 +2020-06-30,Leslie,Kentucky,21131,8,0 +2020-07-01,Leslie,Kentucky,21131,8,0 +2020-07-02,Leslie,Kentucky,21131,9,0 +2020-07-03,Leslie,Kentucky,21131,10,0 +2020-07-04,Leslie,Kentucky,21131,10,0 +2020-07-05,Leslie,Kentucky,21131,10,0 +2020-07-06,Leslie,Kentucky,21131,10,0 +2020-07-07,Leslie,Kentucky,21131,10,0 +2020-07-08,Leslie,Kentucky,21131,11,0 +2020-07-09,Leslie,Kentucky,21131,11,0 +2020-04-05,Letcher,Kentucky,21133,1,0 +2020-04-06,Letcher,Kentucky,21133,1,0 +2020-04-07,Letcher,Kentucky,21133,1,0 +2020-04-08,Letcher,Kentucky,21133,1,0 +2020-04-09,Letcher,Kentucky,21133,1,0 +2020-04-10,Letcher,Kentucky,21133,1,0 +2020-04-11,Letcher,Kentucky,21133,1,0 +2020-04-12,Letcher,Kentucky,21133,1,0 +2020-04-13,Letcher,Kentucky,21133,1,0 +2020-04-14,Letcher,Kentucky,21133,1,0 +2020-04-15,Letcher,Kentucky,21133,1,0 +2020-04-16,Letcher,Kentucky,21133,1,0 +2020-04-17,Letcher,Kentucky,21133,1,0 +2020-04-18,Letcher,Kentucky,21133,1,0 +2020-04-19,Letcher,Kentucky,21133,1,0 +2020-04-20,Letcher,Kentucky,21133,1,0 +2020-04-21,Letcher,Kentucky,21133,1,0 +2020-04-22,Letcher,Kentucky,21133,1,0 +2020-04-23,Letcher,Kentucky,21133,1,0 +2020-04-24,Letcher,Kentucky,21133,1,0 +2020-04-25,Letcher,Kentucky,21133,1,0 +2020-04-26,Letcher,Kentucky,21133,2,0 +2020-04-27,Letcher,Kentucky,21133,2,0 +2020-04-28,Letcher,Kentucky,21133,2,0 +2020-04-29,Letcher,Kentucky,21133,2,0 +2020-04-30,Letcher,Kentucky,21133,2,0 +2020-05-01,Letcher,Kentucky,21133,2,0 +2020-05-02,Letcher,Kentucky,21133,2,0 +2020-05-03,Letcher,Kentucky,21133,3,0 +2020-05-04,Letcher,Kentucky,21133,3,0 +2020-05-05,Letcher,Kentucky,21133,3,0 +2020-05-06,Letcher,Kentucky,21133,3,0 +2020-05-07,Letcher,Kentucky,21133,3,0 +2020-05-08,Letcher,Kentucky,21133,3,0 +2020-05-09,Letcher,Kentucky,21133,3,0 +2020-05-10,Letcher,Kentucky,21133,3,0 +2020-05-11,Letcher,Kentucky,21133,3,0 +2020-05-12,Letcher,Kentucky,21133,3,0 +2020-05-13,Letcher,Kentucky,21133,3,0 +2020-05-14,Letcher,Kentucky,21133,5,0 +2020-05-15,Letcher,Kentucky,21133,5,0 +2020-05-16,Letcher,Kentucky,21133,5,0 +2020-05-17,Letcher,Kentucky,21133,5,0 +2020-05-18,Letcher,Kentucky,21133,5,0 +2020-05-19,Letcher,Kentucky,21133,5,0 +2020-05-20,Letcher,Kentucky,21133,5,0 +2020-05-21,Letcher,Kentucky,21133,5,0 +2020-05-22,Letcher,Kentucky,21133,5,0 +2020-05-23,Letcher,Kentucky,21133,5,0 +2020-05-24,Letcher,Kentucky,21133,5,0 +2020-05-25,Letcher,Kentucky,21133,5,0 +2020-05-26,Letcher,Kentucky,21133,5,0 +2020-05-27,Letcher,Kentucky,21133,5,0 +2020-05-28,Letcher,Kentucky,21133,5,0 +2020-05-29,Letcher,Kentucky,21133,5,0 +2020-05-30,Letcher,Kentucky,21133,5,0 +2020-05-31,Letcher,Kentucky,21133,5,0 +2020-06-01,Letcher,Kentucky,21133,5,0 +2020-06-02,Letcher,Kentucky,21133,5,0 +2020-06-03,Letcher,Kentucky,21133,5,0 +2020-06-04,Letcher,Kentucky,21133,5,0 +2020-06-05,Letcher,Kentucky,21133,5,0 +2020-06-06,Letcher,Kentucky,21133,5,0 +2020-06-07,Letcher,Kentucky,21133,5,0 +2020-06-08,Letcher,Kentucky,21133,4,0 +2020-06-09,Letcher,Kentucky,21133,4,0 +2020-06-10,Letcher,Kentucky,21133,4,0 +2020-06-11,Letcher,Kentucky,21133,4,0 +2020-06-12,Letcher,Kentucky,21133,4,0 +2020-06-13,Letcher,Kentucky,21133,4,0 +2020-06-14,Letcher,Kentucky,21133,8,0 +2020-06-15,Letcher,Kentucky,21133,8,0 +2020-06-16,Letcher,Kentucky,21133,8,0 +2020-06-17,Letcher,Kentucky,21133,8,0 +2020-06-18,Letcher,Kentucky,21133,8,0 +2020-06-19,Letcher,Kentucky,21133,8,0 +2020-06-20,Letcher,Kentucky,21133,8,0 +2020-06-21,Letcher,Kentucky,21133,8,0 +2020-06-22,Letcher,Kentucky,21133,8,0 +2020-06-23,Letcher,Kentucky,21133,13,0 +2020-06-24,Letcher,Kentucky,21133,13,0 +2020-06-25,Letcher,Kentucky,21133,14,0 +2020-06-26,Letcher,Kentucky,21133,14,0 +2020-06-27,Letcher,Kentucky,21133,15,0 +2020-06-28,Letcher,Kentucky,21133,15,0 +2020-06-29,Letcher,Kentucky,21133,15,0 +2020-06-30,Letcher,Kentucky,21133,14,0 +2020-07-01,Letcher,Kentucky,21133,14,0 +2020-07-02,Letcher,Kentucky,21133,14,0 +2020-07-03,Letcher,Kentucky,21133,14,0 +2020-07-04,Letcher,Kentucky,21133,14,0 +2020-07-05,Letcher,Kentucky,21133,14,0 +2020-07-06,Letcher,Kentucky,21133,15,0 +2020-07-07,Letcher,Kentucky,21133,17,0 +2020-07-08,Letcher,Kentucky,21133,18,0 +2020-07-09,Letcher,Kentucky,21133,18,0 +2020-03-29,Lewis,Kentucky,21135,1,0 +2020-03-30,Lewis,Kentucky,21135,1,0 +2020-03-31,Lewis,Kentucky,21135,1,0 +2020-04-01,Lewis,Kentucky,21135,1,0 +2020-04-02,Lewis,Kentucky,21135,1,0 +2020-04-03,Lewis,Kentucky,21135,1,0 +2020-04-04,Lewis,Kentucky,21135,2,0 +2020-04-05,Lewis,Kentucky,21135,2,0 +2020-04-06,Lewis,Kentucky,21135,2,0 +2020-04-07,Lewis,Kentucky,21135,2,0 +2020-04-08,Lewis,Kentucky,21135,2,0 +2020-04-09,Lewis,Kentucky,21135,2,0 +2020-04-10,Lewis,Kentucky,21135,2,0 +2020-04-11,Lewis,Kentucky,21135,2,0 +2020-04-12,Lewis,Kentucky,21135,2,0 +2020-04-13,Lewis,Kentucky,21135,2,0 +2020-04-14,Lewis,Kentucky,21135,2,0 +2020-04-15,Lewis,Kentucky,21135,2,0 +2020-04-16,Lewis,Kentucky,21135,2,0 +2020-04-17,Lewis,Kentucky,21135,2,0 +2020-04-18,Lewis,Kentucky,21135,2,0 +2020-04-19,Lewis,Kentucky,21135,3,0 +2020-04-20,Lewis,Kentucky,21135,3,0 +2020-04-21,Lewis,Kentucky,21135,2,0 +2020-04-22,Lewis,Kentucky,21135,3,0 +2020-04-23,Lewis,Kentucky,21135,3,0 +2020-04-24,Lewis,Kentucky,21135,3,0 +2020-04-25,Lewis,Kentucky,21135,3,0 +2020-04-26,Lewis,Kentucky,21135,3,0 +2020-04-27,Lewis,Kentucky,21135,3,0 +2020-04-28,Lewis,Kentucky,21135,3,0 +2020-04-29,Lewis,Kentucky,21135,3,0 +2020-04-30,Lewis,Kentucky,21135,3,0 +2020-05-01,Lewis,Kentucky,21135,3,0 +2020-05-02,Lewis,Kentucky,21135,3,0 +2020-05-03,Lewis,Kentucky,21135,3,0 +2020-05-04,Lewis,Kentucky,21135,3,0 +2020-05-05,Lewis,Kentucky,21135,3,0 +2020-05-06,Lewis,Kentucky,21135,3,0 +2020-05-07,Lewis,Kentucky,21135,3,0 +2020-05-08,Lewis,Kentucky,21135,5,0 +2020-05-09,Lewis,Kentucky,21135,5,0 +2020-05-10,Lewis,Kentucky,21135,5,0 +2020-05-11,Lewis,Kentucky,21135,6,0 +2020-05-12,Lewis,Kentucky,21135,6,0 +2020-05-13,Lewis,Kentucky,21135,6,0 +2020-05-14,Lewis,Kentucky,21135,8,0 +2020-05-15,Lewis,Kentucky,21135,8,0 +2020-05-16,Lewis,Kentucky,21135,8,0 +2020-05-17,Lewis,Kentucky,21135,8,0 +2020-05-18,Lewis,Kentucky,21135,8,0 +2020-05-19,Lewis,Kentucky,21135,8,0 +2020-05-20,Lewis,Kentucky,21135,8,0 +2020-05-21,Lewis,Kentucky,21135,8,0 +2020-05-22,Lewis,Kentucky,21135,8,0 +2020-05-23,Lewis,Kentucky,21135,8,0 +2020-05-24,Lewis,Kentucky,21135,8,0 +2020-05-25,Lewis,Kentucky,21135,8,0 +2020-05-26,Lewis,Kentucky,21135,8,0 +2020-05-27,Lewis,Kentucky,21135,8,0 +2020-05-28,Lewis,Kentucky,21135,8,0 +2020-05-29,Lewis,Kentucky,21135,8,0 +2020-05-30,Lewis,Kentucky,21135,8,0 +2020-05-31,Lewis,Kentucky,21135,8,0 +2020-06-01,Lewis,Kentucky,21135,8,0 +2020-06-02,Lewis,Kentucky,21135,8,0 +2020-06-03,Lewis,Kentucky,21135,8,0 +2020-06-04,Lewis,Kentucky,21135,8,0 +2020-06-05,Lewis,Kentucky,21135,8,0 +2020-06-06,Lewis,Kentucky,21135,8,0 +2020-06-07,Lewis,Kentucky,21135,8,0 +2020-06-08,Lewis,Kentucky,21135,8,0 +2020-06-09,Lewis,Kentucky,21135,8,0 +2020-06-10,Lewis,Kentucky,21135,8,0 +2020-06-11,Lewis,Kentucky,21135,8,0 +2020-06-12,Lewis,Kentucky,21135,9,0 +2020-06-13,Lewis,Kentucky,21135,13,0 +2020-06-14,Lewis,Kentucky,21135,13,0 +2020-06-15,Lewis,Kentucky,21135,14,0 +2020-06-16,Lewis,Kentucky,21135,14,0 +2020-06-17,Lewis,Kentucky,21135,15,0 +2020-06-18,Lewis,Kentucky,21135,16,0 +2020-06-19,Lewis,Kentucky,21135,16,0 +2020-06-20,Lewis,Kentucky,21135,16,0 +2020-06-21,Lewis,Kentucky,21135,17,0 +2020-06-22,Lewis,Kentucky,21135,17,0 +2020-06-23,Lewis,Kentucky,21135,16,0 +2020-06-24,Lewis,Kentucky,21135,16,0 +2020-06-25,Lewis,Kentucky,21135,18,0 +2020-06-26,Lewis,Kentucky,21135,18,0 +2020-06-27,Lewis,Kentucky,21135,21,0 +2020-06-28,Lewis,Kentucky,21135,21,0 +2020-06-29,Lewis,Kentucky,21135,22,0 +2020-06-30,Lewis,Kentucky,21135,23,0 +2020-07-01,Lewis,Kentucky,21135,22,0 +2020-07-02,Lewis,Kentucky,21135,22,0 +2020-07-03,Lewis,Kentucky,21135,22,0 +2020-07-04,Lewis,Kentucky,21135,22,0 +2020-07-05,Lewis,Kentucky,21135,22,0 +2020-07-06,Lewis,Kentucky,21135,22,0 +2020-07-07,Lewis,Kentucky,21135,22,0 +2020-07-08,Lewis,Kentucky,21135,22,0 +2020-07-09,Lewis,Kentucky,21135,22,0 +2020-04-02,Lincoln,Kentucky,21137,1,0 +2020-04-03,Lincoln,Kentucky,21137,1,0 +2020-04-04,Lincoln,Kentucky,21137,1,0 +2020-04-05,Lincoln,Kentucky,21137,1,0 +2020-04-06,Lincoln,Kentucky,21137,1,0 +2020-04-07,Lincoln,Kentucky,21137,1,0 +2020-04-08,Lincoln,Kentucky,21137,1,0 +2020-04-09,Lincoln,Kentucky,21137,1,0 +2020-04-10,Lincoln,Kentucky,21137,1,0 +2020-04-11,Lincoln,Kentucky,21137,1,0 +2020-04-12,Lincoln,Kentucky,21137,1,0 +2020-04-13,Lincoln,Kentucky,21137,1,0 +2020-04-14,Lincoln,Kentucky,21137,1,0 +2020-04-15,Lincoln,Kentucky,21137,2,1 +2020-04-16,Lincoln,Kentucky,21137,3,1 +2020-04-17,Lincoln,Kentucky,21137,4,1 +2020-04-18,Lincoln,Kentucky,21137,4,1 +2020-04-19,Lincoln,Kentucky,21137,4,1 +2020-04-20,Lincoln,Kentucky,21137,4,1 +2020-04-21,Lincoln,Kentucky,21137,4,1 +2020-04-22,Lincoln,Kentucky,21137,4,1 +2020-04-23,Lincoln,Kentucky,21137,4,1 +2020-04-24,Lincoln,Kentucky,21137,4,1 +2020-04-25,Lincoln,Kentucky,21137,4,1 +2020-04-26,Lincoln,Kentucky,21137,4,1 +2020-04-27,Lincoln,Kentucky,21137,4,1 +2020-04-28,Lincoln,Kentucky,21137,5,1 +2020-04-29,Lincoln,Kentucky,21137,5,1 +2020-04-30,Lincoln,Kentucky,21137,5,1 +2020-05-01,Lincoln,Kentucky,21137,5,1 +2020-05-02,Lincoln,Kentucky,21137,5,1 +2020-05-03,Lincoln,Kentucky,21137,5,1 +2020-05-04,Lincoln,Kentucky,21137,5,1 +2020-05-05,Lincoln,Kentucky,21137,5,1 +2020-05-06,Lincoln,Kentucky,21137,6,1 +2020-05-07,Lincoln,Kentucky,21137,6,1 +2020-05-08,Lincoln,Kentucky,21137,5,1 +2020-05-09,Lincoln,Kentucky,21137,5,1 +2020-05-10,Lincoln,Kentucky,21137,5,1 +2020-05-11,Lincoln,Kentucky,21137,5,1 +2020-05-12,Lincoln,Kentucky,21137,5,1 +2020-05-13,Lincoln,Kentucky,21137,5,1 +2020-05-14,Lincoln,Kentucky,21137,5,1 +2020-05-15,Lincoln,Kentucky,21137,7,1 +2020-05-16,Lincoln,Kentucky,21137,7,1 +2020-05-17,Lincoln,Kentucky,21137,7,1 +2020-05-18,Lincoln,Kentucky,21137,7,1 +2020-05-19,Lincoln,Kentucky,21137,7,1 +2020-05-20,Lincoln,Kentucky,21137,7,1 +2020-05-21,Lincoln,Kentucky,21137,8,1 +2020-05-22,Lincoln,Kentucky,21137,8,1 +2020-05-23,Lincoln,Kentucky,21137,8,1 +2020-05-24,Lincoln,Kentucky,21137,8,1 +2020-05-25,Lincoln,Kentucky,21137,8,1 +2020-05-26,Lincoln,Kentucky,21137,8,1 +2020-05-27,Lincoln,Kentucky,21137,8,1 +2020-05-28,Lincoln,Kentucky,21137,8,1 +2020-05-29,Lincoln,Kentucky,21137,8,1 +2020-05-30,Lincoln,Kentucky,21137,8,1 +2020-05-31,Lincoln,Kentucky,21137,8,1 +2020-06-01,Lincoln,Kentucky,21137,8,1 +2020-06-02,Lincoln,Kentucky,21137,8,1 +2020-06-03,Lincoln,Kentucky,21137,8,1 +2020-06-04,Lincoln,Kentucky,21137,9,1 +2020-06-05,Lincoln,Kentucky,21137,11,1 +2020-06-06,Lincoln,Kentucky,21137,11,1 +2020-06-07,Lincoln,Kentucky,21137,11,1 +2020-06-08,Lincoln,Kentucky,21137,11,1 +2020-06-09,Lincoln,Kentucky,21137,14,1 +2020-06-10,Lincoln,Kentucky,21137,14,1 +2020-06-11,Lincoln,Kentucky,21137,14,1 +2020-06-12,Lincoln,Kentucky,21137,15,1 +2020-06-13,Lincoln,Kentucky,21137,15,1 +2020-06-14,Lincoln,Kentucky,21137,15,1 +2020-06-15,Lincoln,Kentucky,21137,15,1 +2020-06-16,Lincoln,Kentucky,21137,15,1 +2020-06-17,Lincoln,Kentucky,21137,15,1 +2020-06-18,Lincoln,Kentucky,21137,15,1 +2020-06-19,Lincoln,Kentucky,21137,17,1 +2020-06-20,Lincoln,Kentucky,21137,17,1 +2020-06-21,Lincoln,Kentucky,21137,18,1 +2020-06-22,Lincoln,Kentucky,21137,20,1 +2020-06-23,Lincoln,Kentucky,21137,21,1 +2020-06-24,Lincoln,Kentucky,21137,21,1 +2020-06-25,Lincoln,Kentucky,21137,24,1 +2020-06-26,Lincoln,Kentucky,21137,24,1 +2020-06-27,Lincoln,Kentucky,21137,25,1 +2020-06-28,Lincoln,Kentucky,21137,25,1 +2020-06-29,Lincoln,Kentucky,21137,25,1 +2020-06-30,Lincoln,Kentucky,21137,28,1 +2020-07-01,Lincoln,Kentucky,21137,28,1 +2020-07-02,Lincoln,Kentucky,21137,29,1 +2020-07-03,Lincoln,Kentucky,21137,30,1 +2020-07-04,Lincoln,Kentucky,21137,30,1 +2020-07-05,Lincoln,Kentucky,21137,30,1 +2020-07-06,Lincoln,Kentucky,21137,36,1 +2020-07-07,Lincoln,Kentucky,21137,39,1 +2020-07-08,Lincoln,Kentucky,21137,42,1 +2020-07-09,Lincoln,Kentucky,21137,42,1 +2020-04-14,Livingston,Kentucky,21139,1,0 +2020-04-15,Livingston,Kentucky,21139,1,0 +2020-04-16,Livingston,Kentucky,21139,1,0 +2020-04-17,Livingston,Kentucky,21139,1,0 +2020-04-18,Livingston,Kentucky,21139,1,0 +2020-04-19,Livingston,Kentucky,21139,1,0 +2020-04-20,Livingston,Kentucky,21139,1,0 +2020-04-21,Livingston,Kentucky,21139,1,0 +2020-04-22,Livingston,Kentucky,21139,1,0 +2020-04-23,Livingston,Kentucky,21139,1,0 +2020-04-24,Livingston,Kentucky,21139,1,0 +2020-04-25,Livingston,Kentucky,21139,1,0 +2020-04-26,Livingston,Kentucky,21139,1,0 +2020-04-27,Livingston,Kentucky,21139,4,0 +2020-04-28,Livingston,Kentucky,21139,4,0 +2020-04-29,Livingston,Kentucky,21139,4,0 +2020-04-30,Livingston,Kentucky,21139,4,0 +2020-05-01,Livingston,Kentucky,21139,5,0 +2020-05-02,Livingston,Kentucky,21139,5,0 +2020-05-03,Livingston,Kentucky,21139,6,0 +2020-05-04,Livingston,Kentucky,21139,6,0 +2020-05-05,Livingston,Kentucky,21139,6,0 +2020-05-06,Livingston,Kentucky,21139,6,0 +2020-05-07,Livingston,Kentucky,21139,6,0 +2020-05-08,Livingston,Kentucky,21139,6,0 +2020-05-09,Livingston,Kentucky,21139,6,0 +2020-05-10,Livingston,Kentucky,21139,6,0 +2020-05-11,Livingston,Kentucky,21139,6,0 +2020-05-12,Livingston,Kentucky,21139,7,0 +2020-05-13,Livingston,Kentucky,21139,7,0 +2020-05-14,Livingston,Kentucky,21139,7,0 +2020-05-15,Livingston,Kentucky,21139,7,0 +2020-05-16,Livingston,Kentucky,21139,7,0 +2020-05-17,Livingston,Kentucky,21139,7,0 +2020-05-18,Livingston,Kentucky,21139,7,0 +2020-05-19,Livingston,Kentucky,21139,7,0 +2020-05-20,Livingston,Kentucky,21139,7,0 +2020-05-21,Livingston,Kentucky,21139,8,0 +2020-05-22,Livingston,Kentucky,21139,8,0 +2020-05-23,Livingston,Kentucky,21139,8,0 +2020-05-24,Livingston,Kentucky,21139,8,0 +2020-05-25,Livingston,Kentucky,21139,8,0 +2020-05-26,Livingston,Kentucky,21139,8,0 +2020-05-27,Livingston,Kentucky,21139,9,0 +2020-05-28,Livingston,Kentucky,21139,9,0 +2020-05-29,Livingston,Kentucky,21139,9,0 +2020-05-30,Livingston,Kentucky,21139,9,0 +2020-05-31,Livingston,Kentucky,21139,9,0 +2020-06-01,Livingston,Kentucky,21139,9,0 +2020-06-02,Livingston,Kentucky,21139,9,0 +2020-06-03,Livingston,Kentucky,21139,9,0 +2020-06-04,Livingston,Kentucky,21139,9,0 +2020-06-05,Livingston,Kentucky,21139,9,0 +2020-06-06,Livingston,Kentucky,21139,9,0 +2020-06-07,Livingston,Kentucky,21139,9,0 +2020-06-08,Livingston,Kentucky,21139,9,0 +2020-06-09,Livingston,Kentucky,21139,9,0 +2020-06-10,Livingston,Kentucky,21139,9,0 +2020-06-11,Livingston,Kentucky,21139,9,0 +2020-06-12,Livingston,Kentucky,21139,9,0 +2020-06-13,Livingston,Kentucky,21139,9,0 +2020-06-14,Livingston,Kentucky,21139,9,0 +2020-06-15,Livingston,Kentucky,21139,9,0 +2020-06-16,Livingston,Kentucky,21139,9,0 +2020-06-17,Livingston,Kentucky,21139,9,0 +2020-06-18,Livingston,Kentucky,21139,8,0 +2020-06-19,Livingston,Kentucky,21139,8,0 +2020-06-20,Livingston,Kentucky,21139,8,0 +2020-06-21,Livingston,Kentucky,21139,8,0 +2020-06-22,Livingston,Kentucky,21139,8,0 +2020-06-23,Livingston,Kentucky,21139,8,0 +2020-06-24,Livingston,Kentucky,21139,8,0 +2020-06-25,Livingston,Kentucky,21139,8,0 +2020-06-26,Livingston,Kentucky,21139,9,0 +2020-06-27,Livingston,Kentucky,21139,9,0 +2020-06-28,Livingston,Kentucky,21139,10,0 +2020-06-29,Livingston,Kentucky,21139,10,0 +2020-06-30,Livingston,Kentucky,21139,10,0 +2020-07-01,Livingston,Kentucky,21139,10,0 +2020-07-02,Livingston,Kentucky,21139,10,0 +2020-07-03,Livingston,Kentucky,21139,10,0 +2020-07-04,Livingston,Kentucky,21139,10,0 +2020-07-05,Livingston,Kentucky,21139,10,0 +2020-07-06,Livingston,Kentucky,21139,10,0 +2020-07-07,Livingston,Kentucky,21139,11,0 +2020-07-08,Livingston,Kentucky,21139,13,0 +2020-07-09,Livingston,Kentucky,21139,14,0 +2020-03-23,Logan,Kentucky,21141,1,0 +2020-03-24,Logan,Kentucky,21141,1,0 +2020-03-25,Logan,Kentucky,21141,1,0 +2020-03-26,Logan,Kentucky,21141,1,0 +2020-03-27,Logan,Kentucky,21141,2,0 +2020-03-28,Logan,Kentucky,21141,2,0 +2020-03-29,Logan,Kentucky,21141,2,0 +2020-03-30,Logan,Kentucky,21141,2,0 +2020-03-31,Logan,Kentucky,21141,2,0 +2020-04-01,Logan,Kentucky,21141,2,0 +2020-04-02,Logan,Kentucky,21141,2,0 +2020-04-03,Logan,Kentucky,21141,2,0 +2020-04-04,Logan,Kentucky,21141,2,0 +2020-04-05,Logan,Kentucky,21141,4,0 +2020-04-06,Logan,Kentucky,21141,4,0 +2020-04-07,Logan,Kentucky,21141,4,0 +2020-04-08,Logan,Kentucky,21141,5,0 +2020-04-09,Logan,Kentucky,21141,5,0 +2020-04-10,Logan,Kentucky,21141,5,0 +2020-04-11,Logan,Kentucky,21141,5,0 +2020-04-12,Logan,Kentucky,21141,5,0 +2020-04-13,Logan,Kentucky,21141,5,0 +2020-04-14,Logan,Kentucky,21141,10,0 +2020-04-15,Logan,Kentucky,21141,9,0 +2020-04-16,Logan,Kentucky,21141,8,0 +2020-04-17,Logan,Kentucky,21141,8,0 +2020-04-18,Logan,Kentucky,21141,8,0 +2020-04-19,Logan,Kentucky,21141,8,0 +2020-04-20,Logan,Kentucky,21141,8,0 +2020-04-21,Logan,Kentucky,21141,8,0 +2020-04-22,Logan,Kentucky,21141,8,0 +2020-04-23,Logan,Kentucky,21141,8,0 +2020-04-24,Logan,Kentucky,21141,8,0 +2020-04-25,Logan,Kentucky,21141,8,0 +2020-04-26,Logan,Kentucky,21141,8,0 +2020-04-27,Logan,Kentucky,21141,8,0 +2020-04-28,Logan,Kentucky,21141,8,0 +2020-04-29,Logan,Kentucky,21141,8,0 +2020-04-30,Logan,Kentucky,21141,10,0 +2020-05-01,Logan,Kentucky,21141,11,0 +2020-05-02,Logan,Kentucky,21141,11,0 +2020-05-03,Logan,Kentucky,21141,13,1 +2020-05-04,Logan,Kentucky,21141,14,1 +2020-05-05,Logan,Kentucky,21141,15,1 +2020-05-06,Logan,Kentucky,21141,15,1 +2020-05-07,Logan,Kentucky,21141,40,2 +2020-05-08,Logan,Kentucky,21141,35,2 +2020-05-09,Logan,Kentucky,21141,46,2 +2020-05-10,Logan,Kentucky,21141,46,2 +2020-05-11,Logan,Kentucky,21141,63,2 +2020-05-12,Logan,Kentucky,21141,72,2 +2020-05-13,Logan,Kentucky,21141,72,2 +2020-05-14,Logan,Kentucky,21141,77,2 +2020-05-15,Logan,Kentucky,21141,82,2 +2020-05-16,Logan,Kentucky,21141,87,2 +2020-05-17,Logan,Kentucky,21141,87,2 +2020-05-18,Logan,Kentucky,21141,94,3 +2020-05-19,Logan,Kentucky,21141,98,3 +2020-05-20,Logan,Kentucky,21141,101,3 +2020-05-21,Logan,Kentucky,21141,112,3 +2020-05-22,Logan,Kentucky,21141,114,3 +2020-05-23,Logan,Kentucky,21141,115,3 +2020-05-24,Logan,Kentucky,21141,115,3 +2020-05-25,Logan,Kentucky,21141,115,3 +2020-05-26,Logan,Kentucky,21141,126,3 +2020-05-27,Logan,Kentucky,21141,126,3 +2020-05-28,Logan,Kentucky,21141,136,3 +2020-05-29,Logan,Kentucky,21141,143,4 +2020-05-30,Logan,Kentucky,21141,145,4 +2020-05-31,Logan,Kentucky,21141,145,4 +2020-06-01,Logan,Kentucky,21141,150,4 +2020-06-02,Logan,Kentucky,21141,153,4 +2020-06-03,Logan,Kentucky,21141,156,4 +2020-06-04,Logan,Kentucky,21141,164,4 +2020-06-05,Logan,Kentucky,21141,170,5 +2020-06-06,Logan,Kentucky,21141,170,5 +2020-06-07,Logan,Kentucky,21141,170,5 +2020-06-08,Logan,Kentucky,21141,175,6 +2020-06-09,Logan,Kentucky,21141,178,6 +2020-06-10,Logan,Kentucky,21141,179,8 +2020-06-11,Logan,Kentucky,21141,185,8 +2020-06-12,Logan,Kentucky,21141,191,8 +2020-06-13,Logan,Kentucky,21141,195,8 +2020-06-14,Logan,Kentucky,21141,195,8 +2020-06-15,Logan,Kentucky,21141,206,9 +2020-06-16,Logan,Kentucky,21141,205,9 +2020-06-17,Logan,Kentucky,21141,205,10 +2020-06-18,Logan,Kentucky,21141,205,10 +2020-06-19,Logan,Kentucky,21141,205,10 +2020-06-20,Logan,Kentucky,21141,205,10 +2020-06-21,Logan,Kentucky,21141,205,10 +2020-06-22,Logan,Kentucky,21141,210,14 +2020-06-23,Logan,Kentucky,21141,213,14 +2020-06-24,Logan,Kentucky,21141,214,14 +2020-06-25,Logan,Kentucky,21141,215,14 +2020-06-26,Logan,Kentucky,21141,215,14 +2020-06-27,Logan,Kentucky,21141,215,14 +2020-06-28,Logan,Kentucky,21141,215,14 +2020-06-29,Logan,Kentucky,21141,221,14 +2020-06-30,Logan,Kentucky,21141,224,14 +2020-07-01,Logan,Kentucky,21141,223,15 +2020-07-02,Logan,Kentucky,21141,222,15 +2020-07-03,Logan,Kentucky,21141,227,15 +2020-07-04,Logan,Kentucky,21141,227,15 +2020-07-05,Logan,Kentucky,21141,227,15 +2020-07-06,Logan,Kentucky,21141,242,17 +2020-07-07,Logan,Kentucky,21141,244,17 +2020-07-08,Logan,Kentucky,21141,248,17 +2020-07-09,Logan,Kentucky,21141,250,17 +2020-03-17,Lyon,Kentucky,21143,1,0 +2020-03-18,Lyon,Kentucky,21143,1,0 +2020-03-19,Lyon,Kentucky,21143,1,0 +2020-03-20,Lyon,Kentucky,21143,1,0 +2020-03-21,Lyon,Kentucky,21143,1,0 +2020-03-22,Lyon,Kentucky,21143,1,0 +2020-03-23,Lyon,Kentucky,21143,1,0 +2020-03-24,Lyon,Kentucky,21143,1,0 +2020-03-25,Lyon,Kentucky,21143,1,0 +2020-03-26,Lyon,Kentucky,21143,1,0 +2020-03-27,Lyon,Kentucky,21143,1,0 +2020-03-28,Lyon,Kentucky,21143,1,0 +2020-03-29,Lyon,Kentucky,21143,1,0 +2020-03-30,Lyon,Kentucky,21143,1,0 +2020-03-31,Lyon,Kentucky,21143,1,0 +2020-04-01,Lyon,Kentucky,21143,2,0 +2020-04-02,Lyon,Kentucky,21143,2,0 +2020-04-03,Lyon,Kentucky,21143,2,0 +2020-04-04,Lyon,Kentucky,21143,4,0 +2020-04-05,Lyon,Kentucky,21143,4,0 +2020-04-06,Lyon,Kentucky,21143,4,0 +2020-04-07,Lyon,Kentucky,21143,4,2 +2020-04-08,Lyon,Kentucky,21143,6,2 +2020-04-09,Lyon,Kentucky,21143,6,2 +2020-04-10,Lyon,Kentucky,21143,11,2 +2020-04-11,Lyon,Kentucky,21143,12,2 +2020-04-12,Lyon,Kentucky,21143,12,2 +2020-04-13,Lyon,Kentucky,21143,12,2 +2020-04-14,Lyon,Kentucky,21143,13,2 +2020-04-15,Lyon,Kentucky,21143,13,2 +2020-04-16,Lyon,Kentucky,21143,13,2 +2020-04-17,Lyon,Kentucky,21143,13,2 +2020-04-18,Lyon,Kentucky,21143,13,2 +2020-04-19,Lyon,Kentucky,21143,13,2 +2020-04-20,Lyon,Kentucky,21143,13,2 +2020-04-21,Lyon,Kentucky,21143,14,3 +2020-04-22,Lyon,Kentucky,21143,14,3 +2020-04-23,Lyon,Kentucky,21143,14,3 +2020-04-24,Lyon,Kentucky,21143,14,3 +2020-04-25,Lyon,Kentucky,21143,14,3 +2020-04-26,Lyon,Kentucky,21143,14,3 +2020-04-27,Lyon,Kentucky,21143,14,3 +2020-04-28,Lyon,Kentucky,21143,13,3 +2020-04-29,Lyon,Kentucky,21143,13,3 +2020-04-30,Lyon,Kentucky,21143,13,3 +2020-05-01,Lyon,Kentucky,21143,13,3 +2020-05-02,Lyon,Kentucky,21143,13,3 +2020-05-03,Lyon,Kentucky,21143,13,3 +2020-05-04,Lyon,Kentucky,21143,13,3 +2020-05-05,Lyon,Kentucky,21143,13,3 +2020-05-06,Lyon,Kentucky,21143,13,3 +2020-05-07,Lyon,Kentucky,21143,13,3 +2020-05-08,Lyon,Kentucky,21143,14,3 +2020-05-09,Lyon,Kentucky,21143,14,3 +2020-05-10,Lyon,Kentucky,21143,14,3 +2020-05-11,Lyon,Kentucky,21143,14,3 +2020-05-12,Lyon,Kentucky,21143,14,3 +2020-05-13,Lyon,Kentucky,21143,14,3 +2020-05-14,Lyon,Kentucky,21143,14,3 +2020-05-15,Lyon,Kentucky,21143,14,3 +2020-05-16,Lyon,Kentucky,21143,14,3 +2020-05-17,Lyon,Kentucky,21143,14,3 +2020-05-18,Lyon,Kentucky,21143,14,3 +2020-05-19,Lyon,Kentucky,21143,14,3 +2020-05-20,Lyon,Kentucky,21143,14,3 +2020-05-21,Lyon,Kentucky,21143,14,3 +2020-05-22,Lyon,Kentucky,21143,14,3 +2020-05-23,Lyon,Kentucky,21143,14,3 +2020-05-24,Lyon,Kentucky,21143,14,3 +2020-05-25,Lyon,Kentucky,21143,14,3 +2020-05-26,Lyon,Kentucky,21143,14,3 +2020-05-27,Lyon,Kentucky,21143,14,3 +2020-05-28,Lyon,Kentucky,21143,14,3 +2020-05-29,Lyon,Kentucky,21143,14,3 +2020-05-30,Lyon,Kentucky,21143,15,3 +2020-05-31,Lyon,Kentucky,21143,15,3 +2020-06-01,Lyon,Kentucky,21143,15,3 +2020-06-02,Lyon,Kentucky,21143,15,3 +2020-06-03,Lyon,Kentucky,21143,15,3 +2020-06-04,Lyon,Kentucky,21143,15,3 +2020-06-05,Lyon,Kentucky,21143,15,3 +2020-06-06,Lyon,Kentucky,21143,17,3 +2020-06-07,Lyon,Kentucky,21143,17,3 +2020-06-08,Lyon,Kentucky,21143,17,3 +2020-06-09,Lyon,Kentucky,21143,17,3 +2020-06-10,Lyon,Kentucky,21143,17,3 +2020-06-11,Lyon,Kentucky,21143,17,3 +2020-06-12,Lyon,Kentucky,21143,17,3 +2020-06-13,Lyon,Kentucky,21143,18,3 +2020-06-14,Lyon,Kentucky,21143,18,3 +2020-06-15,Lyon,Kentucky,21143,18,3 +2020-06-16,Lyon,Kentucky,21143,18,3 +2020-06-17,Lyon,Kentucky,21143,18,3 +2020-06-18,Lyon,Kentucky,21143,18,3 +2020-06-19,Lyon,Kentucky,21143,18,3 +2020-06-20,Lyon,Kentucky,21143,18,3 +2020-06-21,Lyon,Kentucky,21143,18,3 +2020-06-22,Lyon,Kentucky,21143,18,3 +2020-06-23,Lyon,Kentucky,21143,17,3 +2020-06-24,Lyon,Kentucky,21143,17,3 +2020-06-25,Lyon,Kentucky,21143,17,3 +2020-06-26,Lyon,Kentucky,21143,19,3 +2020-06-27,Lyon,Kentucky,21143,19,3 +2020-06-28,Lyon,Kentucky,21143,20,3 +2020-06-29,Lyon,Kentucky,21143,20,3 +2020-06-30,Lyon,Kentucky,21143,20,3 +2020-07-01,Lyon,Kentucky,21143,20,3 +2020-07-02,Lyon,Kentucky,21143,20,3 +2020-07-03,Lyon,Kentucky,21143,20,3 +2020-07-04,Lyon,Kentucky,21143,20,3 +2020-07-05,Lyon,Kentucky,21143,20,3 +2020-07-06,Lyon,Kentucky,21143,21,3 +2020-07-07,Lyon,Kentucky,21143,21,3 +2020-07-08,Lyon,Kentucky,21143,21,3 +2020-07-09,Lyon,Kentucky,21143,21,3 +2020-03-24,McCracken,Kentucky,21145,2,0 +2020-03-25,McCracken,Kentucky,21145,2,0 +2020-03-26,McCracken,Kentucky,21145,2,0 +2020-03-27,McCracken,Kentucky,21145,2,0 +2020-03-28,McCracken,Kentucky,21145,3,0 +2020-03-29,McCracken,Kentucky,21145,5,0 +2020-03-30,McCracken,Kentucky,21145,5,0 +2020-03-31,McCracken,Kentucky,21145,6,0 +2020-04-01,McCracken,Kentucky,21145,6,0 +2020-04-02,McCracken,Kentucky,21145,8,0 +2020-04-03,McCracken,Kentucky,21145,8,0 +2020-04-04,McCracken,Kentucky,21145,8,0 +2020-04-05,McCracken,Kentucky,21145,10,0 +2020-04-06,McCracken,Kentucky,21145,10,0 +2020-04-07,McCracken,Kentucky,21145,13,1 +2020-04-08,McCracken,Kentucky,21145,13,1 +2020-04-09,McCracken,Kentucky,21145,13,1 +2020-04-10,McCracken,Kentucky,21145,18,2 +2020-04-11,McCracken,Kentucky,21145,21,2 +2020-04-12,McCracken,Kentucky,21145,21,2 +2020-04-13,McCracken,Kentucky,21145,23,2 +2020-04-14,McCracken,Kentucky,21145,24,2 +2020-04-15,McCracken,Kentucky,21145,25,2 +2020-04-16,McCracken,Kentucky,21145,28,2 +2020-04-17,McCracken,Kentucky,21145,27,2 +2020-04-18,McCracken,Kentucky,21145,29,2 +2020-04-19,McCracken,Kentucky,21145,29,2 +2020-04-20,McCracken,Kentucky,21145,29,2 +2020-04-21,McCracken,Kentucky,21145,30,2 +2020-04-22,McCracken,Kentucky,21145,30,2 +2020-04-23,McCracken,Kentucky,21145,30,2 +2020-04-24,McCracken,Kentucky,21145,31,2 +2020-04-25,McCracken,Kentucky,21145,34,2 +2020-04-26,McCracken,Kentucky,21145,43,2 +2020-04-27,McCracken,Kentucky,21145,44,2 +2020-04-28,McCracken,Kentucky,21145,48,2 +2020-04-29,McCracken,Kentucky,21145,48,2 +2020-04-30,McCracken,Kentucky,21145,55,2 +2020-05-01,McCracken,Kentucky,21145,58,2 +2020-05-02,McCracken,Kentucky,21145,58,2 +2020-05-03,McCracken,Kentucky,21145,59,2 +2020-05-04,McCracken,Kentucky,21145,62,2 +2020-05-05,McCracken,Kentucky,21145,63,2 +2020-05-06,McCracken,Kentucky,21145,65,2 +2020-05-07,McCracken,Kentucky,21145,68,2 +2020-05-08,McCracken,Kentucky,21145,68,2 +2020-05-09,McCracken,Kentucky,21145,69,2 +2020-05-10,McCracken,Kentucky,21145,69,2 +2020-05-11,McCracken,Kentucky,21145,72,2 +2020-05-12,McCracken,Kentucky,21145,73,2 +2020-05-13,McCracken,Kentucky,21145,73,2 +2020-05-14,McCracken,Kentucky,21145,76,2 +2020-05-15,McCracken,Kentucky,21145,80,2 +2020-05-16,McCracken,Kentucky,21145,81,2 +2020-05-17,McCracken,Kentucky,21145,81,2 +2020-05-18,McCracken,Kentucky,21145,85,2 +2020-05-19,McCracken,Kentucky,21145,85,2 +2020-05-20,McCracken,Kentucky,21145,85,2 +2020-05-21,McCracken,Kentucky,21145,85,2 +2020-05-22,McCracken,Kentucky,21145,85,2 +2020-05-23,McCracken,Kentucky,21145,87,2 +2020-05-24,McCracken,Kentucky,21145,87,2 +2020-05-25,McCracken,Kentucky,21145,87,2 +2020-05-26,McCracken,Kentucky,21145,89,2 +2020-05-27,McCracken,Kentucky,21145,89,2 +2020-05-28,McCracken,Kentucky,21145,95,2 +2020-05-29,McCracken,Kentucky,21145,95,2 +2020-05-30,McCracken,Kentucky,21145,95,2 +2020-05-31,McCracken,Kentucky,21145,95,2 +2020-06-01,McCracken,Kentucky,21145,97,2 +2020-06-02,McCracken,Kentucky,21145,97,2 +2020-06-03,McCracken,Kentucky,21145,99,2 +2020-06-04,McCracken,Kentucky,21145,107,2 +2020-06-05,McCracken,Kentucky,21145,111,2 +2020-06-06,McCracken,Kentucky,21145,112,2 +2020-06-07,McCracken,Kentucky,21145,112,2 +2020-06-08,McCracken,Kentucky,21145,112,2 +2020-06-09,McCracken,Kentucky,21145,113,3 +2020-06-10,McCracken,Kentucky,21145,113,3 +2020-06-11,McCracken,Kentucky,21145,113,3 +2020-06-12,McCracken,Kentucky,21145,116,3 +2020-06-13,McCracken,Kentucky,21145,117,3 +2020-06-14,McCracken,Kentucky,21145,117,3 +2020-06-15,McCracken,Kentucky,21145,123,3 +2020-06-16,McCracken,Kentucky,21145,123,3 +2020-06-17,McCracken,Kentucky,21145,126,3 +2020-06-18,McCracken,Kentucky,21145,129,3 +2020-06-19,McCracken,Kentucky,21145,134,3 +2020-06-20,McCracken,Kentucky,21145,134,3 +2020-06-21,McCracken,Kentucky,21145,143,3 +2020-06-22,McCracken,Kentucky,21145,148,3 +2020-06-23,McCracken,Kentucky,21145,149,3 +2020-06-24,McCracken,Kentucky,21145,150,3 +2020-06-25,McCracken,Kentucky,21145,151,3 +2020-06-26,McCracken,Kentucky,21145,153,3 +2020-06-27,McCracken,Kentucky,21145,155,3 +2020-06-28,McCracken,Kentucky,21145,159,3 +2020-06-29,McCracken,Kentucky,21145,161,3 +2020-06-30,McCracken,Kentucky,21145,166,3 +2020-07-01,McCracken,Kentucky,21145,168,3 +2020-07-02,McCracken,Kentucky,21145,170,3 +2020-07-03,McCracken,Kentucky,21145,172,3 +2020-07-04,McCracken,Kentucky,21145,172,3 +2020-07-05,McCracken,Kentucky,21145,172,3 +2020-07-06,McCracken,Kentucky,21145,178,3 +2020-07-07,McCracken,Kentucky,21145,181,3 +2020-07-08,McCracken,Kentucky,21145,181,3 +2020-07-09,McCracken,Kentucky,21145,184,3 +2020-03-25,McCreary,Kentucky,21147,1,0 +2020-03-26,McCreary,Kentucky,21147,1,0 +2020-03-27,McCreary,Kentucky,21147,1,0 +2020-03-28,McCreary,Kentucky,21147,1,0 +2020-03-29,McCreary,Kentucky,21147,1,0 +2020-03-30,McCreary,Kentucky,21147,1,0 +2020-03-31,McCreary,Kentucky,21147,1,0 +2020-04-01,McCreary,Kentucky,21147,1,0 +2020-04-02,McCreary,Kentucky,21147,1,0 +2020-04-03,McCreary,Kentucky,21147,1,0 +2020-04-04,McCreary,Kentucky,21147,1,0 +2020-04-05,McCreary,Kentucky,21147,1,0 +2020-04-06,McCreary,Kentucky,21147,1,0 +2020-04-07,McCreary,Kentucky,21147,2,0 +2020-04-08,McCreary,Kentucky,21147,3,0 +2020-04-09,McCreary,Kentucky,21147,3,0 +2020-04-10,McCreary,Kentucky,21147,6,0 +2020-04-11,McCreary,Kentucky,21147,8,0 +2020-04-12,McCreary,Kentucky,21147,7,0 +2020-04-13,McCreary,Kentucky,21147,7,0 +2020-04-14,McCreary,Kentucky,21147,9,0 +2020-04-15,McCreary,Kentucky,21147,9,0 +2020-04-16,McCreary,Kentucky,21147,9,0 +2020-04-17,McCreary,Kentucky,21147,9,0 +2020-04-18,McCreary,Kentucky,21147,9,0 +2020-04-19,McCreary,Kentucky,21147,10,0 +2020-04-20,McCreary,Kentucky,21147,10,0 +2020-04-21,McCreary,Kentucky,21147,10,0 +2020-04-22,McCreary,Kentucky,21147,11,0 +2020-04-23,McCreary,Kentucky,21147,11,0 +2020-04-24,McCreary,Kentucky,21147,11,0 +2020-04-25,McCreary,Kentucky,21147,11,0 +2020-04-26,McCreary,Kentucky,21147,11,0 +2020-04-27,McCreary,Kentucky,21147,11,0 +2020-04-28,McCreary,Kentucky,21147,11,0 +2020-04-29,McCreary,Kentucky,21147,11,0 +2020-04-30,McCreary,Kentucky,21147,11,0 +2020-05-01,McCreary,Kentucky,21147,11,0 +2020-05-02,McCreary,Kentucky,21147,11,0 +2020-05-03,McCreary,Kentucky,21147,11,0 +2020-05-04,McCreary,Kentucky,21147,11,0 +2020-05-05,McCreary,Kentucky,21147,11,0 +2020-05-06,McCreary,Kentucky,21147,11,0 +2020-05-07,McCreary,Kentucky,21147,11,0 +2020-05-08,McCreary,Kentucky,21147,11,0 +2020-05-09,McCreary,Kentucky,21147,12,0 +2020-05-10,McCreary,Kentucky,21147,12,0 +2020-05-11,McCreary,Kentucky,21147,13,0 +2020-05-12,McCreary,Kentucky,21147,13,0 +2020-05-13,McCreary,Kentucky,21147,13,0 +2020-05-14,McCreary,Kentucky,21147,13,0 +2020-05-15,McCreary,Kentucky,21147,13,0 +2020-05-16,McCreary,Kentucky,21147,13,0 +2020-05-17,McCreary,Kentucky,21147,13,0 +2020-05-18,McCreary,Kentucky,21147,13,0 +2020-05-19,McCreary,Kentucky,21147,13,0 +2020-05-20,McCreary,Kentucky,21147,13,0 +2020-05-21,McCreary,Kentucky,21147,13,0 +2020-05-22,McCreary,Kentucky,21147,13,0 +2020-05-23,McCreary,Kentucky,21147,13,0 +2020-05-24,McCreary,Kentucky,21147,13,0 +2020-05-25,McCreary,Kentucky,21147,13,0 +2020-05-26,McCreary,Kentucky,21147,13,0 +2020-05-27,McCreary,Kentucky,21147,13,0 +2020-05-28,McCreary,Kentucky,21147,13,0 +2020-05-29,McCreary,Kentucky,21147,13,0 +2020-05-30,McCreary,Kentucky,21147,13,0 +2020-05-31,McCreary,Kentucky,21147,13,0 +2020-06-01,McCreary,Kentucky,21147,13,0 +2020-06-02,McCreary,Kentucky,21147,13,0 +2020-06-03,McCreary,Kentucky,21147,13,0 +2020-06-04,McCreary,Kentucky,21147,13,0 +2020-06-05,McCreary,Kentucky,21147,13,0 +2020-06-06,McCreary,Kentucky,21147,13,0 +2020-06-07,McCreary,Kentucky,21147,13,0 +2020-06-08,McCreary,Kentucky,21147,13,0 +2020-06-09,McCreary,Kentucky,21147,13,0 +2020-06-10,McCreary,Kentucky,21147,13,0 +2020-06-11,McCreary,Kentucky,21147,13,0 +2020-06-12,McCreary,Kentucky,21147,13,0 +2020-06-13,McCreary,Kentucky,21147,13,0 +2020-06-14,McCreary,Kentucky,21147,13,0 +2020-06-15,McCreary,Kentucky,21147,13,0 +2020-06-16,McCreary,Kentucky,21147,13,0 +2020-06-17,McCreary,Kentucky,21147,13,0 +2020-06-18,McCreary,Kentucky,21147,13,0 +2020-06-19,McCreary,Kentucky,21147,13,0 +2020-06-20,McCreary,Kentucky,21147,13,0 +2020-06-21,McCreary,Kentucky,21147,14,0 +2020-06-22,McCreary,Kentucky,21147,14,0 +2020-06-23,McCreary,Kentucky,21147,15,0 +2020-06-24,McCreary,Kentucky,21147,16,0 +2020-06-25,McCreary,Kentucky,21147,17,0 +2020-06-26,McCreary,Kentucky,21147,17,0 +2020-06-27,McCreary,Kentucky,21147,17,0 +2020-06-28,McCreary,Kentucky,21147,17,0 +2020-06-29,McCreary,Kentucky,21147,18,0 +2020-06-30,McCreary,Kentucky,21147,18,0 +2020-07-01,McCreary,Kentucky,21147,18,0 +2020-07-02,McCreary,Kentucky,21147,18,0 +2020-07-03,McCreary,Kentucky,21147,18,0 +2020-07-04,McCreary,Kentucky,21147,18,0 +2020-07-05,McCreary,Kentucky,21147,18,0 +2020-07-06,McCreary,Kentucky,21147,18,0 +2020-07-07,McCreary,Kentucky,21147,18,0 +2020-07-08,McCreary,Kentucky,21147,18,0 +2020-07-09,McCreary,Kentucky,21147,18,0 +2020-04-05,McLean,Kentucky,21149,3,0 +2020-04-06,McLean,Kentucky,21149,3,0 +2020-04-07,McLean,Kentucky,21149,3,0 +2020-04-08,McLean,Kentucky,21149,3,0 +2020-04-09,McLean,Kentucky,21149,4,0 +2020-04-10,McLean,Kentucky,21149,4,0 +2020-04-11,McLean,Kentucky,21149,6,0 +2020-04-12,McLean,Kentucky,21149,5,0 +2020-04-13,McLean,Kentucky,21149,5,0 +2020-04-14,McLean,Kentucky,21149,5,0 +2020-04-15,McLean,Kentucky,21149,5,0 +2020-04-16,McLean,Kentucky,21149,6,0 +2020-04-17,McLean,Kentucky,21149,6,0 +2020-04-18,McLean,Kentucky,21149,6,0 +2020-04-19,McLean,Kentucky,21149,7,0 +2020-04-20,McLean,Kentucky,21149,7,0 +2020-04-21,McLean,Kentucky,21149,7,0 +2020-04-22,McLean,Kentucky,21149,8,0 +2020-04-23,McLean,Kentucky,21149,8,0 +2020-04-24,McLean,Kentucky,21149,9,0 +2020-04-25,McLean,Kentucky,21149,10,0 +2020-04-26,McLean,Kentucky,21149,11,0 +2020-04-27,McLean,Kentucky,21149,11,0 +2020-04-28,McLean,Kentucky,21149,11,0 +2020-04-29,McLean,Kentucky,21149,12,0 +2020-04-30,McLean,Kentucky,21149,14,0 +2020-05-01,McLean,Kentucky,21149,15,0 +2020-05-02,McLean,Kentucky,21149,14,0 +2020-05-03,McLean,Kentucky,21149,15,0 +2020-05-04,McLean,Kentucky,21149,16,0 +2020-05-05,McLean,Kentucky,21149,16,0 +2020-05-06,McLean,Kentucky,21149,16,0 +2020-05-07,McLean,Kentucky,21149,16,0 +2020-05-08,McLean,Kentucky,21149,18,0 +2020-05-09,McLean,Kentucky,21149,18,0 +2020-05-10,McLean,Kentucky,21149,18,0 +2020-05-11,McLean,Kentucky,21149,18,0 +2020-05-12,McLean,Kentucky,21149,18,0 +2020-05-13,McLean,Kentucky,21149,19,0 +2020-05-14,McLean,Kentucky,21149,19,0 +2020-05-15,McLean,Kentucky,21149,19,0 +2020-05-16,McLean,Kentucky,21149,19,0 +2020-05-17,McLean,Kentucky,21149,19,0 +2020-05-18,McLean,Kentucky,21149,19,0 +2020-05-19,McLean,Kentucky,21149,20,0 +2020-05-20,McLean,Kentucky,21149,20,1 +2020-05-21,McLean,Kentucky,21149,20,1 +2020-05-22,McLean,Kentucky,21149,20,1 +2020-05-23,McLean,Kentucky,21149,20,1 +2020-05-24,McLean,Kentucky,21149,23,1 +2020-05-25,McLean,Kentucky,21149,22,0 +2020-05-26,McLean,Kentucky,21149,22,0 +2020-05-27,McLean,Kentucky,21149,23,0 +2020-05-28,McLean,Kentucky,21149,23,0 +2020-05-29,McLean,Kentucky,21149,23,0 +2020-05-30,McLean,Kentucky,21149,23,0 +2020-05-31,McLean,Kentucky,21149,23,0 +2020-06-01,McLean,Kentucky,21149,23,0 +2020-06-02,McLean,Kentucky,21149,23,0 +2020-06-03,McLean,Kentucky,21149,23,0 +2020-06-04,McLean,Kentucky,21149,23,0 +2020-06-05,McLean,Kentucky,21149,24,0 +2020-06-06,McLean,Kentucky,21149,24,0 +2020-06-07,McLean,Kentucky,21149,24,0 +2020-06-08,McLean,Kentucky,21149,24,0 +2020-06-09,McLean,Kentucky,21149,24,0 +2020-06-10,McLean,Kentucky,21149,24,0 +2020-06-11,McLean,Kentucky,21149,24,0 +2020-06-12,McLean,Kentucky,21149,25,0 +2020-06-13,McLean,Kentucky,21149,25,0 +2020-06-14,McLean,Kentucky,21149,25,0 +2020-06-15,McLean,Kentucky,21149,25,0 +2020-06-16,McLean,Kentucky,21149,25,0 +2020-06-17,McLean,Kentucky,21149,25,0 +2020-06-18,McLean,Kentucky,21149,25,0 +2020-06-19,McLean,Kentucky,21149,25,0 +2020-06-20,McLean,Kentucky,21149,25,0 +2020-06-21,McLean,Kentucky,21149,25,0 +2020-06-22,McLean,Kentucky,21149,25,0 +2020-06-23,McLean,Kentucky,21149,25,0 +2020-06-24,McLean,Kentucky,21149,25,0 +2020-06-25,McLean,Kentucky,21149,25,0 +2020-06-26,McLean,Kentucky,21149,25,0 +2020-06-27,McLean,Kentucky,21149,25,0 +2020-06-28,McLean,Kentucky,21149,25,0 +2020-06-29,McLean,Kentucky,21149,25,0 +2020-06-30,McLean,Kentucky,21149,25,0 +2020-07-01,McLean,Kentucky,21149,25,0 +2020-07-02,McLean,Kentucky,21149,26,0 +2020-07-03,McLean,Kentucky,21149,27,0 +2020-07-04,McLean,Kentucky,21149,27,0 +2020-07-05,McLean,Kentucky,21149,27,0 +2020-07-06,McLean,Kentucky,21149,27,0 +2020-07-07,McLean,Kentucky,21149,27,0 +2020-07-08,McLean,Kentucky,21149,27,0 +2020-07-09,McLean,Kentucky,21149,27,0 +2020-03-21,Madison,Kentucky,21151,1,0 +2020-03-22,Madison,Kentucky,21151,2,0 +2020-03-23,Madison,Kentucky,21151,2,0 +2020-03-24,Madison,Kentucky,21151,2,0 +2020-03-25,Madison,Kentucky,21151,3,0 +2020-03-26,Madison,Kentucky,21151,5,0 +2020-03-27,Madison,Kentucky,21151,5,0 +2020-03-28,Madison,Kentucky,21151,7,0 +2020-03-29,Madison,Kentucky,21151,7,0 +2020-03-30,Madison,Kentucky,21151,7,0 +2020-03-31,Madison,Kentucky,21151,9,0 +2020-04-01,Madison,Kentucky,21151,11,0 +2020-04-02,Madison,Kentucky,21151,12,0 +2020-04-03,Madison,Kentucky,21151,12,0 +2020-04-04,Madison,Kentucky,21151,12,0 +2020-04-05,Madison,Kentucky,21151,11,1 +2020-04-06,Madison,Kentucky,21151,11,1 +2020-04-07,Madison,Kentucky,21151,12,1 +2020-04-08,Madison,Kentucky,21151,14,1 +2020-04-09,Madison,Kentucky,21151,14,1 +2020-04-10,Madison,Kentucky,21151,17,1 +2020-04-11,Madison,Kentucky,21151,18,1 +2020-04-12,Madison,Kentucky,21151,19,1 +2020-04-13,Madison,Kentucky,21151,20,1 +2020-04-14,Madison,Kentucky,21151,21,1 +2020-04-15,Madison,Kentucky,21151,21,1 +2020-04-16,Madison,Kentucky,21151,21,1 +2020-04-17,Madison,Kentucky,21151,21,1 +2020-04-18,Madison,Kentucky,21151,21,1 +2020-04-19,Madison,Kentucky,21151,21,1 +2020-04-20,Madison,Kentucky,21151,21,1 +2020-04-21,Madison,Kentucky,21151,21,1 +2020-04-22,Madison,Kentucky,21151,23,1 +2020-04-23,Madison,Kentucky,21151,23,1 +2020-04-24,Madison,Kentucky,21151,26,1 +2020-04-25,Madison,Kentucky,21151,27,1 +2020-04-26,Madison,Kentucky,21151,29,1 +2020-04-27,Madison,Kentucky,21151,29,1 +2020-04-28,Madison,Kentucky,21151,29,1 +2020-04-29,Madison,Kentucky,21151,29,1 +2020-04-30,Madison,Kentucky,21151,29,1 +2020-05-01,Madison,Kentucky,21151,29,1 +2020-05-02,Madison,Kentucky,21151,29,1 +2020-05-03,Madison,Kentucky,21151,29,1 +2020-05-04,Madison,Kentucky,21151,30,1 +2020-05-05,Madison,Kentucky,21151,31,1 +2020-05-06,Madison,Kentucky,21151,31,1 +2020-05-07,Madison,Kentucky,21151,33,1 +2020-05-08,Madison,Kentucky,21151,33,1 +2020-05-09,Madison,Kentucky,21151,34,1 +2020-05-10,Madison,Kentucky,21151,34,1 +2020-05-11,Madison,Kentucky,21151,34,1 +2020-05-12,Madison,Kentucky,21151,35,1 +2020-05-13,Madison,Kentucky,21151,35,1 +2020-05-14,Madison,Kentucky,21151,41,1 +2020-05-15,Madison,Kentucky,21151,42,1 +2020-05-16,Madison,Kentucky,21151,43,1 +2020-05-17,Madison,Kentucky,21151,43,1 +2020-05-18,Madison,Kentucky,21151,49,1 +2020-05-19,Madison,Kentucky,21151,50,1 +2020-05-20,Madison,Kentucky,21151,45,1 +2020-05-21,Madison,Kentucky,21151,45,1 +2020-05-22,Madison,Kentucky,21151,45,1 +2020-05-23,Madison,Kentucky,21151,45,1 +2020-05-24,Madison,Kentucky,21151,45,1 +2020-05-25,Madison,Kentucky,21151,45,1 +2020-05-26,Madison,Kentucky,21151,47,1 +2020-05-27,Madison,Kentucky,21151,47,1 +2020-05-28,Madison,Kentucky,21151,47,1 +2020-05-29,Madison,Kentucky,21151,50,1 +2020-05-30,Madison,Kentucky,21151,55,1 +2020-05-31,Madison,Kentucky,21151,55,1 +2020-06-01,Madison,Kentucky,21151,55,1 +2020-06-02,Madison,Kentucky,21151,55,1 +2020-06-03,Madison,Kentucky,21151,54,1 +2020-06-04,Madison,Kentucky,21151,57,1 +2020-06-05,Madison,Kentucky,21151,57,1 +2020-06-06,Madison,Kentucky,21151,59,1 +2020-06-07,Madison,Kentucky,21151,59,1 +2020-06-08,Madison,Kentucky,21151,73,1 +2020-06-09,Madison,Kentucky,21151,73,1 +2020-06-10,Madison,Kentucky,21151,73,1 +2020-06-11,Madison,Kentucky,21151,73,1 +2020-06-12,Madison,Kentucky,21151,73,1 +2020-06-13,Madison,Kentucky,21151,76,1 +2020-06-14,Madison,Kentucky,21151,88,1 +2020-06-15,Madison,Kentucky,21151,88,1 +2020-06-16,Madison,Kentucky,21151,88,1 +2020-06-17,Madison,Kentucky,21151,88,1 +2020-06-18,Madison,Kentucky,21151,88,1 +2020-06-19,Madison,Kentucky,21151,91,1 +2020-06-20,Madison,Kentucky,21151,94,1 +2020-06-21,Madison,Kentucky,21151,94,1 +2020-06-22,Madison,Kentucky,21151,95,1 +2020-06-23,Madison,Kentucky,21151,100,1 +2020-06-24,Madison,Kentucky,21151,103,1 +2020-06-25,Madison,Kentucky,21151,106,1 +2020-06-26,Madison,Kentucky,21151,107,1 +2020-06-27,Madison,Kentucky,21151,112,1 +2020-06-28,Madison,Kentucky,21151,125,1 +2020-06-29,Madison,Kentucky,21151,125,1 +2020-06-30,Madison,Kentucky,21151,125,1 +2020-07-01,Madison,Kentucky,21151,125,1 +2020-07-02,Madison,Kentucky,21151,126,1 +2020-07-03,Madison,Kentucky,21151,130,1 +2020-07-04,Madison,Kentucky,21151,130,1 +2020-07-05,Madison,Kentucky,21151,130,1 +2020-07-06,Madison,Kentucky,21151,143,1 +2020-07-07,Madison,Kentucky,21151,152,1 +2020-07-08,Madison,Kentucky,21151,160,1 +2020-07-09,Madison,Kentucky,21151,169,1 +2020-05-16,Magoffin,Kentucky,21153,1,0 +2020-05-17,Magoffin,Kentucky,21153,1,0 +2020-05-18,Magoffin,Kentucky,21153,1,0 +2020-05-19,Magoffin,Kentucky,21153,1,0 +2020-05-20,Magoffin,Kentucky,21153,1,0 +2020-05-21,Magoffin,Kentucky,21153,1,0 +2020-05-22,Magoffin,Kentucky,21153,1,0 +2020-05-23,Magoffin,Kentucky,21153,2,0 +2020-05-24,Magoffin,Kentucky,21153,2,0 +2020-05-25,Magoffin,Kentucky,21153,2,0 +2020-05-26,Magoffin,Kentucky,21153,2,0 +2020-05-27,Magoffin,Kentucky,21153,2,0 +2020-05-28,Magoffin,Kentucky,21153,2,0 +2020-05-29,Magoffin,Kentucky,21153,2,0 +2020-05-30,Magoffin,Kentucky,21153,2,0 +2020-05-31,Magoffin,Kentucky,21153,2,0 +2020-06-01,Magoffin,Kentucky,21153,2,0 +2020-06-02,Magoffin,Kentucky,21153,2,0 +2020-06-03,Magoffin,Kentucky,21153,2,0 +2020-06-04,Magoffin,Kentucky,21153,2,0 +2020-06-05,Magoffin,Kentucky,21153,2,0 +2020-06-06,Magoffin,Kentucky,21153,2,0 +2020-06-07,Magoffin,Kentucky,21153,2,0 +2020-06-08,Magoffin,Kentucky,21153,2,0 +2020-06-09,Magoffin,Kentucky,21153,2,0 +2020-06-10,Magoffin,Kentucky,21153,2,0 +2020-06-11,Magoffin,Kentucky,21153,2,0 +2020-06-12,Magoffin,Kentucky,21153,4,0 +2020-06-13,Magoffin,Kentucky,21153,4,0 +2020-06-14,Magoffin,Kentucky,21153,4,0 +2020-06-15,Magoffin,Kentucky,21153,4,0 +2020-06-16,Magoffin,Kentucky,21153,4,0 +2020-06-17,Magoffin,Kentucky,21153,4,0 +2020-06-18,Magoffin,Kentucky,21153,4,0 +2020-06-19,Magoffin,Kentucky,21153,5,0 +2020-06-20,Magoffin,Kentucky,21153,5,0 +2020-06-21,Magoffin,Kentucky,21153,5,0 +2020-06-22,Magoffin,Kentucky,21153,5,0 +2020-06-23,Magoffin,Kentucky,21153,5,0 +2020-06-24,Magoffin,Kentucky,21153,5,0 +2020-06-25,Magoffin,Kentucky,21153,5,0 +2020-06-26,Magoffin,Kentucky,21153,5,0 +2020-06-27,Magoffin,Kentucky,21153,5,0 +2020-06-28,Magoffin,Kentucky,21153,5,0 +2020-06-29,Magoffin,Kentucky,21153,5,0 +2020-06-30,Magoffin,Kentucky,21153,5,0 +2020-07-01,Magoffin,Kentucky,21153,5,0 +2020-07-02,Magoffin,Kentucky,21153,6,0 +2020-07-03,Magoffin,Kentucky,21153,6,0 +2020-07-04,Magoffin,Kentucky,21153,6,0 +2020-07-05,Magoffin,Kentucky,21153,6,0 +2020-07-06,Magoffin,Kentucky,21153,6,0 +2020-07-07,Magoffin,Kentucky,21153,7,0 +2020-07-08,Magoffin,Kentucky,21153,7,0 +2020-07-09,Magoffin,Kentucky,21153,7,0 +2020-03-30,Marion,Kentucky,21155,1,0 +2020-03-31,Marion,Kentucky,21155,1,0 +2020-04-01,Marion,Kentucky,21155,1,0 +2020-04-02,Marion,Kentucky,21155,1,0 +2020-04-03,Marion,Kentucky,21155,1,0 +2020-04-04,Marion,Kentucky,21155,3,0 +2020-04-05,Marion,Kentucky,21155,5,0 +2020-04-06,Marion,Kentucky,21155,5,0 +2020-04-07,Marion,Kentucky,21155,5,0 +2020-04-08,Marion,Kentucky,21155,5,0 +2020-04-09,Marion,Kentucky,21155,5,0 +2020-04-10,Marion,Kentucky,21155,10,0 +2020-04-11,Marion,Kentucky,21155,11,0 +2020-04-12,Marion,Kentucky,21155,10,0 +2020-04-13,Marion,Kentucky,21155,10,0 +2020-04-14,Marion,Kentucky,21155,12,0 +2020-04-15,Marion,Kentucky,21155,12,0 +2020-04-16,Marion,Kentucky,21155,12,0 +2020-04-17,Marion,Kentucky,21155,13,0 +2020-04-18,Marion,Kentucky,21155,13,0 +2020-04-19,Marion,Kentucky,21155,13,0 +2020-04-20,Marion,Kentucky,21155,13,0 +2020-04-21,Marion,Kentucky,21155,13,0 +2020-04-22,Marion,Kentucky,21155,13,0 +2020-04-23,Marion,Kentucky,21155,13,0 +2020-04-24,Marion,Kentucky,21155,13,0 +2020-04-25,Marion,Kentucky,21155,14,0 +2020-04-26,Marion,Kentucky,21155,15,0 +2020-04-27,Marion,Kentucky,21155,16,0 +2020-04-28,Marion,Kentucky,21155,16,0 +2020-04-29,Marion,Kentucky,21155,16,0 +2020-04-30,Marion,Kentucky,21155,16,0 +2020-05-01,Marion,Kentucky,21155,17,0 +2020-05-02,Marion,Kentucky,21155,17,0 +2020-05-03,Marion,Kentucky,21155,17,0 +2020-05-04,Marion,Kentucky,21155,17,0 +2020-05-05,Marion,Kentucky,21155,17,0 +2020-05-06,Marion,Kentucky,21155,17,0 +2020-05-07,Marion,Kentucky,21155,17,0 +2020-05-08,Marion,Kentucky,21155,17,0 +2020-05-09,Marion,Kentucky,21155,17,0 +2020-05-10,Marion,Kentucky,21155,17,0 +2020-05-11,Marion,Kentucky,21155,17,0 +2020-05-12,Marion,Kentucky,21155,17,0 +2020-05-13,Marion,Kentucky,21155,17,0 +2020-05-14,Marion,Kentucky,21155,17,0 +2020-05-15,Marion,Kentucky,21155,17,0 +2020-05-16,Marion,Kentucky,21155,17,0 +2020-05-17,Marion,Kentucky,21155,17,0 +2020-05-18,Marion,Kentucky,21155,17,0 +2020-05-19,Marion,Kentucky,21155,17,0 +2020-05-20,Marion,Kentucky,21155,17,0 +2020-05-21,Marion,Kentucky,21155,17,0 +2020-05-22,Marion,Kentucky,21155,18,0 +2020-05-23,Marion,Kentucky,21155,18,0 +2020-05-24,Marion,Kentucky,21155,18,0 +2020-05-25,Marion,Kentucky,21155,18,0 +2020-05-26,Marion,Kentucky,21155,18,0 +2020-05-27,Marion,Kentucky,21155,19,0 +2020-05-28,Marion,Kentucky,21155,20,0 +2020-05-29,Marion,Kentucky,21155,20,0 +2020-05-30,Marion,Kentucky,21155,21,0 +2020-05-31,Marion,Kentucky,21155,21,0 +2020-06-01,Marion,Kentucky,21155,21,0 +2020-06-02,Marion,Kentucky,21155,24,0 +2020-06-03,Marion,Kentucky,21155,25,0 +2020-06-04,Marion,Kentucky,21155,27,0 +2020-06-05,Marion,Kentucky,21155,31,0 +2020-06-06,Marion,Kentucky,21155,34,0 +2020-06-07,Marion,Kentucky,21155,34,0 +2020-06-08,Marion,Kentucky,21155,37,0 +2020-06-09,Marion,Kentucky,21155,37,0 +2020-06-10,Marion,Kentucky,21155,38,0 +2020-06-11,Marion,Kentucky,21155,40,0 +2020-06-12,Marion,Kentucky,21155,41,0 +2020-06-13,Marion,Kentucky,21155,42,0 +2020-06-14,Marion,Kentucky,21155,42,0 +2020-06-15,Marion,Kentucky,21155,42,0 +2020-06-16,Marion,Kentucky,21155,42,0 +2020-06-17,Marion,Kentucky,21155,45,0 +2020-06-18,Marion,Kentucky,21155,45,0 +2020-06-19,Marion,Kentucky,21155,45,0 +2020-06-20,Marion,Kentucky,21155,46,0 +2020-06-21,Marion,Kentucky,21155,46,0 +2020-06-22,Marion,Kentucky,21155,48,0 +2020-06-23,Marion,Kentucky,21155,48,0 +2020-06-24,Marion,Kentucky,21155,48,0 +2020-06-25,Marion,Kentucky,21155,49,0 +2020-06-26,Marion,Kentucky,21155,49,0 +2020-06-27,Marion,Kentucky,21155,49,0 +2020-06-28,Marion,Kentucky,21155,49,0 +2020-06-29,Marion,Kentucky,21155,51,0 +2020-06-30,Marion,Kentucky,21155,51,0 +2020-07-01,Marion,Kentucky,21155,52,0 +2020-07-02,Marion,Kentucky,21155,52,0 +2020-07-03,Marion,Kentucky,21155,52,0 +2020-07-04,Marion,Kentucky,21155,52,0 +2020-07-05,Marion,Kentucky,21155,52,0 +2020-07-06,Marion,Kentucky,21155,55,0 +2020-07-07,Marion,Kentucky,21155,57,0 +2020-07-08,Marion,Kentucky,21155,58,0 +2020-07-09,Marion,Kentucky,21155,60,0 +2020-03-30,Marshall,Kentucky,21157,1,0 +2020-03-31,Marshall,Kentucky,21157,1,0 +2020-04-01,Marshall,Kentucky,21157,1,0 +2020-04-02,Marshall,Kentucky,21157,1,0 +2020-04-03,Marshall,Kentucky,21157,1,0 +2020-04-04,Marshall,Kentucky,21157,1,0 +2020-04-05,Marshall,Kentucky,21157,1,0 +2020-04-06,Marshall,Kentucky,21157,1,0 +2020-04-07,Marshall,Kentucky,21157,6,0 +2020-04-08,Marshall,Kentucky,21157,8,0 +2020-04-09,Marshall,Kentucky,21157,8,0 +2020-04-10,Marshall,Kentucky,21157,10,0 +2020-04-11,Marshall,Kentucky,21157,11,0 +2020-04-12,Marshall,Kentucky,21157,11,0 +2020-04-13,Marshall,Kentucky,21157,11,0 +2020-04-14,Marshall,Kentucky,21157,12,0 +2020-04-15,Marshall,Kentucky,21157,12,0 +2020-04-16,Marshall,Kentucky,21157,12,0 +2020-04-17,Marshall,Kentucky,21157,12,0 +2020-04-18,Marshall,Kentucky,21157,12,0 +2020-04-19,Marshall,Kentucky,21157,12,0 +2020-04-20,Marshall,Kentucky,21157,14,0 +2020-04-21,Marshall,Kentucky,21157,16,0 +2020-04-22,Marshall,Kentucky,21157,20,0 +2020-04-23,Marshall,Kentucky,21157,23,0 +2020-04-24,Marshall,Kentucky,21157,23,0 +2020-04-25,Marshall,Kentucky,21157,27,0 +2020-04-26,Marshall,Kentucky,21157,31,0 +2020-04-27,Marshall,Kentucky,21157,33,0 +2020-04-28,Marshall,Kentucky,21157,34,0 +2020-04-29,Marshall,Kentucky,21157,34,0 +2020-04-30,Marshall,Kentucky,21157,34,0 +2020-05-01,Marshall,Kentucky,21157,34,1 +2020-05-02,Marshall,Kentucky,21157,34,1 +2020-05-03,Marshall,Kentucky,21157,34,1 +2020-05-04,Marshall,Kentucky,21157,34,1 +2020-05-05,Marshall,Kentucky,21157,34,1 +2020-05-06,Marshall,Kentucky,21157,34,1 +2020-05-07,Marshall,Kentucky,21157,34,1 +2020-05-08,Marshall,Kentucky,21157,33,1 +2020-05-09,Marshall,Kentucky,21157,34,1 +2020-05-10,Marshall,Kentucky,21157,34,1 +2020-05-11,Marshall,Kentucky,21157,34,1 +2020-05-12,Marshall,Kentucky,21157,34,1 +2020-05-13,Marshall,Kentucky,21157,34,1 +2020-05-14,Marshall,Kentucky,21157,34,2 +2020-05-15,Marshall,Kentucky,21157,35,2 +2020-05-16,Marshall,Kentucky,21157,35,2 +2020-05-17,Marshall,Kentucky,21157,35,2 +2020-05-18,Marshall,Kentucky,21157,36,2 +2020-05-19,Marshall,Kentucky,21157,36,2 +2020-05-20,Marshall,Kentucky,21157,36,2 +2020-05-21,Marshall,Kentucky,21157,36,2 +2020-05-22,Marshall,Kentucky,21157,37,2 +2020-05-23,Marshall,Kentucky,21157,37,2 +2020-05-24,Marshall,Kentucky,21157,37,2 +2020-05-25,Marshall,Kentucky,21157,37,2 +2020-05-26,Marshall,Kentucky,21157,37,2 +2020-05-27,Marshall,Kentucky,21157,37,2 +2020-05-28,Marshall,Kentucky,21157,37,2 +2020-05-29,Marshall,Kentucky,21157,38,2 +2020-05-30,Marshall,Kentucky,21157,38,2 +2020-05-31,Marshall,Kentucky,21157,38,2 +2020-06-01,Marshall,Kentucky,21157,38,2 +2020-06-02,Marshall,Kentucky,21157,38,2 +2020-06-03,Marshall,Kentucky,21157,37,2 +2020-06-04,Marshall,Kentucky,21157,37,2 +2020-06-05,Marshall,Kentucky,21157,37,2 +2020-06-06,Marshall,Kentucky,21157,37,2 +2020-06-07,Marshall,Kentucky,21157,37,2 +2020-06-08,Marshall,Kentucky,21157,37,2 +2020-06-09,Marshall,Kentucky,21157,37,2 +2020-06-10,Marshall,Kentucky,21157,37,2 +2020-06-11,Marshall,Kentucky,21157,40,2 +2020-06-12,Marshall,Kentucky,21157,41,2 +2020-06-13,Marshall,Kentucky,21157,41,2 +2020-06-14,Marshall,Kentucky,21157,41,2 +2020-06-15,Marshall,Kentucky,21157,44,2 +2020-06-16,Marshall,Kentucky,21157,44,2 +2020-06-17,Marshall,Kentucky,21157,47,2 +2020-06-18,Marshall,Kentucky,21157,48,2 +2020-06-19,Marshall,Kentucky,21157,50,2 +2020-06-20,Marshall,Kentucky,21157,50,2 +2020-06-21,Marshall,Kentucky,21157,50,2 +2020-06-22,Marshall,Kentucky,21157,52,2 +2020-06-23,Marshall,Kentucky,21157,53,2 +2020-06-24,Marshall,Kentucky,21157,53,2 +2020-06-25,Marshall,Kentucky,21157,53,2 +2020-06-26,Marshall,Kentucky,21157,53,2 +2020-06-27,Marshall,Kentucky,21157,54,2 +2020-06-28,Marshall,Kentucky,21157,55,2 +2020-06-29,Marshall,Kentucky,21157,56,2 +2020-06-30,Marshall,Kentucky,21157,58,2 +2020-07-01,Marshall,Kentucky,21157,59,2 +2020-07-02,Marshall,Kentucky,21157,60,2 +2020-07-03,Marshall,Kentucky,21157,60,2 +2020-07-04,Marshall,Kentucky,21157,60,2 +2020-07-05,Marshall,Kentucky,21157,60,2 +2020-07-06,Marshall,Kentucky,21157,65,2 +2020-07-07,Marshall,Kentucky,21157,65,2 +2020-07-08,Marshall,Kentucky,21157,66,2 +2020-07-09,Marshall,Kentucky,21157,66,2 +2020-03-24,Martin,Kentucky,21159,1,0 +2020-03-25,Martin,Kentucky,21159,1,0 +2020-03-26,Martin,Kentucky,21159,1,0 +2020-03-27,Martin,Kentucky,21159,1,0 +2020-03-28,Martin,Kentucky,21159,1,0 +2020-03-29,Martin,Kentucky,21159,1,0 +2020-03-30,Martin,Kentucky,21159,1,0 +2020-03-31,Martin,Kentucky,21159,1,0 +2020-04-01,Martin,Kentucky,21159,1,0 +2020-04-02,Martin,Kentucky,21159,1,0 +2020-04-03,Martin,Kentucky,21159,1,0 +2020-04-04,Martin,Kentucky,21159,1,0 +2020-04-05,Martin,Kentucky,21159,1,0 +2020-04-06,Martin,Kentucky,21159,1,0 +2020-04-07,Martin,Kentucky,21159,1,0 +2020-04-08,Martin,Kentucky,21159,4,0 +2020-04-09,Martin,Kentucky,21159,4,0 +2020-04-10,Martin,Kentucky,21159,4,0 +2020-04-11,Martin,Kentucky,21159,4,0 +2020-04-12,Martin,Kentucky,21159,1,0 +2020-04-13,Martin,Kentucky,21159,1,0 +2020-04-14,Martin,Kentucky,21159,1,0 +2020-04-15,Martin,Kentucky,21159,1,0 +2020-04-16,Martin,Kentucky,21159,2,0 +2020-04-17,Martin,Kentucky,21159,2,0 +2020-04-18,Martin,Kentucky,21159,2,0 +2020-04-19,Martin,Kentucky,21159,2,0 +2020-04-20,Martin,Kentucky,21159,2,0 +2020-04-21,Martin,Kentucky,21159,3,0 +2020-04-22,Martin,Kentucky,21159,3,0 +2020-04-23,Martin,Kentucky,21159,3,0 +2020-04-24,Martin,Kentucky,21159,3,0 +2020-04-25,Martin,Kentucky,21159,3,0 +2020-04-26,Martin,Kentucky,21159,3,0 +2020-04-27,Martin,Kentucky,21159,3,0 +2020-04-28,Martin,Kentucky,21159,3,0 +2020-04-29,Martin,Kentucky,21159,3,0 +2020-04-30,Martin,Kentucky,21159,3,0 +2020-05-01,Martin,Kentucky,21159,3,0 +2020-05-02,Martin,Kentucky,21159,3,0 +2020-05-03,Martin,Kentucky,21159,3,0 +2020-05-04,Martin,Kentucky,21159,3,0 +2020-05-05,Martin,Kentucky,21159,3,0 +2020-05-06,Martin,Kentucky,21159,3,0 +2020-05-07,Martin,Kentucky,21159,3,0 +2020-05-08,Martin,Kentucky,21159,3,0 +2020-05-09,Martin,Kentucky,21159,3,0 +2020-05-10,Martin,Kentucky,21159,3,0 +2020-05-11,Martin,Kentucky,21159,3,0 +2020-05-12,Martin,Kentucky,21159,3,0 +2020-05-13,Martin,Kentucky,21159,3,0 +2020-05-14,Martin,Kentucky,21159,3,0 +2020-05-15,Martin,Kentucky,21159,3,0 +2020-05-16,Martin,Kentucky,21159,3,0 +2020-05-17,Martin,Kentucky,21159,3,0 +2020-05-18,Martin,Kentucky,21159,3,0 +2020-05-19,Martin,Kentucky,21159,3,0 +2020-05-20,Martin,Kentucky,21159,3,0 +2020-05-21,Martin,Kentucky,21159,3,0 +2020-05-22,Martin,Kentucky,21159,3,0 +2020-05-23,Martin,Kentucky,21159,3,0 +2020-05-24,Martin,Kentucky,21159,3,0 +2020-05-25,Martin,Kentucky,21159,3,0 +2020-05-26,Martin,Kentucky,21159,3,0 +2020-05-27,Martin,Kentucky,21159,3,0 +2020-05-28,Martin,Kentucky,21159,3,0 +2020-05-29,Martin,Kentucky,21159,3,0 +2020-05-30,Martin,Kentucky,21159,3,0 +2020-05-31,Martin,Kentucky,21159,3,0 +2020-06-01,Martin,Kentucky,21159,3,0 +2020-06-02,Martin,Kentucky,21159,3,0 +2020-06-03,Martin,Kentucky,21159,3,0 +2020-06-04,Martin,Kentucky,21159,3,0 +2020-06-05,Martin,Kentucky,21159,3,0 +2020-06-06,Martin,Kentucky,21159,3,0 +2020-06-07,Martin,Kentucky,21159,3,0 +2020-06-08,Martin,Kentucky,21159,3,0 +2020-06-09,Martin,Kentucky,21159,3,0 +2020-06-10,Martin,Kentucky,21159,3,0 +2020-06-11,Martin,Kentucky,21159,3,0 +2020-06-12,Martin,Kentucky,21159,3,0 +2020-06-13,Martin,Kentucky,21159,3,0 +2020-06-14,Martin,Kentucky,21159,3,0 +2020-06-15,Martin,Kentucky,21159,3,0 +2020-06-16,Martin,Kentucky,21159,3,0 +2020-06-17,Martin,Kentucky,21159,3,0 +2020-06-18,Martin,Kentucky,21159,3,0 +2020-06-19,Martin,Kentucky,21159,3,0 +2020-06-20,Martin,Kentucky,21159,3,0 +2020-06-21,Martin,Kentucky,21159,4,0 +2020-06-22,Martin,Kentucky,21159,4,0 +2020-06-23,Martin,Kentucky,21159,5,0 +2020-06-24,Martin,Kentucky,21159,5,0 +2020-06-25,Martin,Kentucky,21159,5,0 +2020-06-26,Martin,Kentucky,21159,5,0 +2020-06-27,Martin,Kentucky,21159,5,0 +2020-06-28,Martin,Kentucky,21159,5,0 +2020-06-29,Martin,Kentucky,21159,5,0 +2020-06-30,Martin,Kentucky,21159,5,0 +2020-07-01,Martin,Kentucky,21159,7,0 +2020-07-02,Martin,Kentucky,21159,8,0 +2020-07-03,Martin,Kentucky,21159,8,0 +2020-07-04,Martin,Kentucky,21159,8,0 +2020-07-05,Martin,Kentucky,21159,8,0 +2020-07-06,Martin,Kentucky,21159,9,0 +2020-07-07,Martin,Kentucky,21159,9,0 +2020-07-08,Martin,Kentucky,21159,10,0 +2020-07-09,Martin,Kentucky,21159,10,0 +2020-03-26,Mason,Kentucky,21161,1,0 +2020-03-27,Mason,Kentucky,21161,1,0 +2020-03-28,Mason,Kentucky,21161,1,0 +2020-03-29,Mason,Kentucky,21161,1,0 +2020-03-30,Mason,Kentucky,21161,1,0 +2020-03-31,Mason,Kentucky,21161,1,0 +2020-04-01,Mason,Kentucky,21161,1,0 +2020-04-02,Mason,Kentucky,21161,1,0 +2020-04-03,Mason,Kentucky,21161,1,0 +2020-04-04,Mason,Kentucky,21161,1,0 +2020-04-05,Mason,Kentucky,21161,2,0 +2020-04-06,Mason,Kentucky,21161,2,0 +2020-04-07,Mason,Kentucky,21161,2,0 +2020-04-08,Mason,Kentucky,21161,3,0 +2020-04-09,Mason,Kentucky,21161,3,0 +2020-04-10,Mason,Kentucky,21161,4,0 +2020-04-11,Mason,Kentucky,21161,5,0 +2020-04-12,Mason,Kentucky,21161,5,0 +2020-04-13,Mason,Kentucky,21161,5,0 +2020-04-14,Mason,Kentucky,21161,6,0 +2020-04-15,Mason,Kentucky,21161,6,0 +2020-04-16,Mason,Kentucky,21161,6,0 +2020-04-17,Mason,Kentucky,21161,6,0 +2020-04-18,Mason,Kentucky,21161,6,0 +2020-04-19,Mason,Kentucky,21161,6,0 +2020-04-20,Mason,Kentucky,21161,6,0 +2020-04-21,Mason,Kentucky,21161,6,0 +2020-04-22,Mason,Kentucky,21161,6,0 +2020-04-23,Mason,Kentucky,21161,6,0 +2020-04-24,Mason,Kentucky,21161,6,0 +2020-04-25,Mason,Kentucky,21161,6,0 +2020-04-26,Mason,Kentucky,21161,6,0 +2020-04-27,Mason,Kentucky,21161,6,0 +2020-04-28,Mason,Kentucky,21161,6,0 +2020-04-29,Mason,Kentucky,21161,6,0 +2020-04-30,Mason,Kentucky,21161,6,0 +2020-05-01,Mason,Kentucky,21161,6,0 +2020-05-02,Mason,Kentucky,21161,6,0 +2020-05-03,Mason,Kentucky,21161,6,0 +2020-05-04,Mason,Kentucky,21161,6,0 +2020-05-05,Mason,Kentucky,21161,6,0 +2020-05-06,Mason,Kentucky,21161,6,0 +2020-05-07,Mason,Kentucky,21161,6,0 +2020-05-08,Mason,Kentucky,21161,6,0 +2020-05-09,Mason,Kentucky,21161,7,0 +2020-05-10,Mason,Kentucky,21161,7,0 +2020-05-11,Mason,Kentucky,21161,7,0 +2020-05-12,Mason,Kentucky,21161,7,0 +2020-05-13,Mason,Kentucky,21161,7,0 +2020-05-14,Mason,Kentucky,21161,8,0 +2020-05-15,Mason,Kentucky,21161,8,0 +2020-05-16,Mason,Kentucky,21161,8,0 +2020-05-17,Mason,Kentucky,21161,8,0 +2020-05-18,Mason,Kentucky,21161,8,0 +2020-05-19,Mason,Kentucky,21161,8,0 +2020-05-20,Mason,Kentucky,21161,8,0 +2020-05-21,Mason,Kentucky,21161,8,0 +2020-05-22,Mason,Kentucky,21161,8,0 +2020-05-23,Mason,Kentucky,21161,8,0 +2020-05-24,Mason,Kentucky,21161,8,0 +2020-05-25,Mason,Kentucky,21161,8,0 +2020-05-26,Mason,Kentucky,21161,8,0 +2020-05-27,Mason,Kentucky,21161,8,0 +2020-05-28,Mason,Kentucky,21161,9,0 +2020-05-29,Mason,Kentucky,21161,9,0 +2020-05-30,Mason,Kentucky,21161,9,0 +2020-05-31,Mason,Kentucky,21161,9,0 +2020-06-01,Mason,Kentucky,21161,9,0 +2020-06-02,Mason,Kentucky,21161,9,0 +2020-06-03,Mason,Kentucky,21161,10,0 +2020-06-04,Mason,Kentucky,21161,10,0 +2020-06-05,Mason,Kentucky,21161,12,0 +2020-06-06,Mason,Kentucky,21161,12,0 +2020-06-07,Mason,Kentucky,21161,12,0 +2020-06-08,Mason,Kentucky,21161,13,0 +2020-06-09,Mason,Kentucky,21161,13,0 +2020-06-10,Mason,Kentucky,21161,15,0 +2020-06-11,Mason,Kentucky,21161,15,0 +2020-06-12,Mason,Kentucky,21161,16,0 +2020-06-13,Mason,Kentucky,21161,16,0 +2020-06-14,Mason,Kentucky,21161,16,0 +2020-06-15,Mason,Kentucky,21161,16,0 +2020-06-16,Mason,Kentucky,21161,16,0 +2020-06-17,Mason,Kentucky,21161,17,0 +2020-06-18,Mason,Kentucky,21161,18,0 +2020-06-19,Mason,Kentucky,21161,18,0 +2020-06-20,Mason,Kentucky,21161,24,0 +2020-06-21,Mason,Kentucky,21161,24,0 +2020-06-22,Mason,Kentucky,21161,24,0 +2020-06-23,Mason,Kentucky,21161,25,0 +2020-06-24,Mason,Kentucky,21161,28,0 +2020-06-25,Mason,Kentucky,21161,28,0 +2020-06-26,Mason,Kentucky,21161,28,0 +2020-06-27,Mason,Kentucky,21161,29,0 +2020-06-28,Mason,Kentucky,21161,29,0 +2020-06-29,Mason,Kentucky,21161,30,0 +2020-06-30,Mason,Kentucky,21161,31,0 +2020-07-01,Mason,Kentucky,21161,31,0 +2020-07-02,Mason,Kentucky,21161,31,0 +2020-07-03,Mason,Kentucky,21161,33,0 +2020-07-04,Mason,Kentucky,21161,33,0 +2020-07-05,Mason,Kentucky,21161,33,0 +2020-07-06,Mason,Kentucky,21161,36,0 +2020-07-07,Mason,Kentucky,21161,39,1 +2020-07-08,Mason,Kentucky,21161,39,1 +2020-07-09,Mason,Kentucky,21161,39,1 +2020-04-02,Meade,Kentucky,21163,1,0 +2020-04-03,Meade,Kentucky,21163,1,0 +2020-04-04,Meade,Kentucky,21163,2,0 +2020-04-05,Meade,Kentucky,21163,2,0 +2020-04-06,Meade,Kentucky,21163,2,0 +2020-04-07,Meade,Kentucky,21163,2,0 +2020-04-08,Meade,Kentucky,21163,2,0 +2020-04-09,Meade,Kentucky,21163,2,1 +2020-04-10,Meade,Kentucky,21163,2,1 +2020-04-11,Meade,Kentucky,21163,2,1 +2020-04-12,Meade,Kentucky,21163,2,1 +2020-04-13,Meade,Kentucky,21163,2,1 +2020-04-14,Meade,Kentucky,21163,2,1 +2020-04-15,Meade,Kentucky,21163,2,1 +2020-04-16,Meade,Kentucky,21163,2,1 +2020-04-17,Meade,Kentucky,21163,2,1 +2020-04-18,Meade,Kentucky,21163,2,1 +2020-04-19,Meade,Kentucky,21163,3,1 +2020-04-20,Meade,Kentucky,21163,3,1 +2020-04-21,Meade,Kentucky,21163,3,1 +2020-04-22,Meade,Kentucky,21163,3,1 +2020-04-23,Meade,Kentucky,21163,3,1 +2020-04-24,Meade,Kentucky,21163,4,1 +2020-04-25,Meade,Kentucky,21163,6,1 +2020-04-26,Meade,Kentucky,21163,7,1 +2020-04-27,Meade,Kentucky,21163,9,1 +2020-04-28,Meade,Kentucky,21163,11,1 +2020-04-29,Meade,Kentucky,21163,11,1 +2020-04-30,Meade,Kentucky,21163,12,1 +2020-05-01,Meade,Kentucky,21163,12,1 +2020-05-02,Meade,Kentucky,21163,12,1 +2020-05-03,Meade,Kentucky,21163,14,1 +2020-05-04,Meade,Kentucky,21163,15,1 +2020-05-05,Meade,Kentucky,21163,15,1 +2020-05-06,Meade,Kentucky,21163,17,1 +2020-05-07,Meade,Kentucky,21163,17,1 +2020-05-08,Meade,Kentucky,21163,18,1 +2020-05-09,Meade,Kentucky,21163,18,2 +2020-05-10,Meade,Kentucky,21163,18,2 +2020-05-11,Meade,Kentucky,21163,18,2 +2020-05-12,Meade,Kentucky,21163,18,2 +2020-05-13,Meade,Kentucky,21163,18,2 +2020-05-14,Meade,Kentucky,21163,18,2 +2020-05-15,Meade,Kentucky,21163,18,2 +2020-05-16,Meade,Kentucky,21163,20,2 +2020-05-17,Meade,Kentucky,21163,20,2 +2020-05-18,Meade,Kentucky,21163,20,2 +2020-05-19,Meade,Kentucky,21163,20,2 +2020-05-20,Meade,Kentucky,21163,20,2 +2020-05-21,Meade,Kentucky,21163,20,2 +2020-05-22,Meade,Kentucky,21163,21,2 +2020-05-23,Meade,Kentucky,21163,21,2 +2020-05-24,Meade,Kentucky,21163,21,2 +2020-05-25,Meade,Kentucky,21163,21,2 +2020-05-26,Meade,Kentucky,21163,21,2 +2020-05-27,Meade,Kentucky,21163,21,2 +2020-05-28,Meade,Kentucky,21163,21,2 +2020-05-29,Meade,Kentucky,21163,21,2 +2020-05-30,Meade,Kentucky,21163,22,2 +2020-05-31,Meade,Kentucky,21163,22,2 +2020-06-01,Meade,Kentucky,21163,22,2 +2020-06-02,Meade,Kentucky,21163,22,2 +2020-06-03,Meade,Kentucky,21163,22,2 +2020-06-04,Meade,Kentucky,21163,23,2 +2020-06-05,Meade,Kentucky,21163,23,2 +2020-06-06,Meade,Kentucky,21163,23,2 +2020-06-07,Meade,Kentucky,21163,23,2 +2020-06-08,Meade,Kentucky,21163,23,2 +2020-06-09,Meade,Kentucky,21163,23,2 +2020-06-10,Meade,Kentucky,21163,23,2 +2020-06-11,Meade,Kentucky,21163,23,2 +2020-06-12,Meade,Kentucky,21163,23,2 +2020-06-13,Meade,Kentucky,21163,24,2 +2020-06-14,Meade,Kentucky,21163,24,2 +2020-06-15,Meade,Kentucky,21163,24,2 +2020-06-16,Meade,Kentucky,21163,24,2 +2020-06-17,Meade,Kentucky,21163,24,2 +2020-06-18,Meade,Kentucky,21163,24,2 +2020-06-19,Meade,Kentucky,21163,24,2 +2020-06-20,Meade,Kentucky,21163,24,2 +2020-06-21,Meade,Kentucky,21163,24,2 +2020-06-22,Meade,Kentucky,21163,24,2 +2020-06-23,Meade,Kentucky,21163,25,2 +2020-06-24,Meade,Kentucky,21163,25,2 +2020-06-25,Meade,Kentucky,21163,25,2 +2020-06-26,Meade,Kentucky,21163,25,2 +2020-06-27,Meade,Kentucky,21163,25,2 +2020-06-28,Meade,Kentucky,21163,25,2 +2020-06-29,Meade,Kentucky,21163,25,2 +2020-06-30,Meade,Kentucky,21163,26,2 +2020-07-01,Meade,Kentucky,21163,26,2 +2020-07-02,Meade,Kentucky,21163,28,2 +2020-07-03,Meade,Kentucky,21163,28,2 +2020-07-04,Meade,Kentucky,21163,28,2 +2020-07-05,Meade,Kentucky,21163,28,2 +2020-07-06,Meade,Kentucky,21163,29,2 +2020-07-07,Meade,Kentucky,21163,30,2 +2020-07-08,Meade,Kentucky,21163,30,2 +2020-07-09,Meade,Kentucky,21163,36,2 +2020-03-24,Menifee,Kentucky,21165,2,0 +2020-03-25,Menifee,Kentucky,21165,2,0 +2020-03-26,Menifee,Kentucky,21165,2,0 +2020-03-27,Menifee,Kentucky,21165,2,0 +2020-03-28,Menifee,Kentucky,21165,2,0 +2020-03-29,Menifee,Kentucky,21165,2,0 +2020-03-30,Menifee,Kentucky,21165,2,0 +2020-03-31,Menifee,Kentucky,21165,2,0 +2020-04-01,Menifee,Kentucky,21165,3,0 +2020-04-02,Menifee,Kentucky,21165,4,0 +2020-04-03,Menifee,Kentucky,21165,4,0 +2020-04-04,Menifee,Kentucky,21165,4,0 +2020-04-05,Menifee,Kentucky,21165,3,0 +2020-04-06,Menifee,Kentucky,21165,3,0 +2020-04-07,Menifee,Kentucky,21165,3,0 +2020-04-08,Menifee,Kentucky,21165,3,0 +2020-04-09,Menifee,Kentucky,21165,3,0 +2020-04-10,Menifee,Kentucky,21165,3,0 +2020-04-11,Menifee,Kentucky,21165,3,0 +2020-04-12,Menifee,Kentucky,21165,3,0 +2020-04-13,Menifee,Kentucky,21165,3,0 +2020-04-14,Menifee,Kentucky,21165,3,0 +2020-04-15,Menifee,Kentucky,21165,3,0 +2020-04-16,Menifee,Kentucky,21165,3,0 +2020-04-17,Menifee,Kentucky,21165,3,0 +2020-04-18,Menifee,Kentucky,21165,3,0 +2020-04-19,Menifee,Kentucky,21165,3,0 +2020-04-20,Menifee,Kentucky,21165,3,0 +2020-04-21,Menifee,Kentucky,21165,3,0 +2020-04-22,Menifee,Kentucky,21165,3,0 +2020-04-23,Menifee,Kentucky,21165,3,0 +2020-04-24,Menifee,Kentucky,21165,3,0 +2020-04-25,Menifee,Kentucky,21165,3,0 +2020-04-26,Menifee,Kentucky,21165,3,0 +2020-04-27,Menifee,Kentucky,21165,3,0 +2020-04-28,Menifee,Kentucky,21165,3,0 +2020-04-29,Menifee,Kentucky,21165,3,0 +2020-04-30,Menifee,Kentucky,21165,3,0 +2020-05-01,Menifee,Kentucky,21165,3,0 +2020-05-02,Menifee,Kentucky,21165,3,0 +2020-05-03,Menifee,Kentucky,21165,3,0 +2020-05-04,Menifee,Kentucky,21165,3,0 +2020-05-05,Menifee,Kentucky,21165,3,0 +2020-05-06,Menifee,Kentucky,21165,3,0 +2020-05-07,Menifee,Kentucky,21165,3,0 +2020-05-08,Menifee,Kentucky,21165,3,0 +2020-05-09,Menifee,Kentucky,21165,3,0 +2020-05-10,Menifee,Kentucky,21165,3,0 +2020-05-11,Menifee,Kentucky,21165,3,0 +2020-05-12,Menifee,Kentucky,21165,3,0 +2020-05-13,Menifee,Kentucky,21165,3,0 +2020-05-14,Menifee,Kentucky,21165,3,0 +2020-05-15,Menifee,Kentucky,21165,3,0 +2020-05-16,Menifee,Kentucky,21165,3,0 +2020-05-17,Menifee,Kentucky,21165,4,0 +2020-05-18,Menifee,Kentucky,21165,4,0 +2020-05-19,Menifee,Kentucky,21165,4,0 +2020-05-20,Menifee,Kentucky,21165,6,0 +2020-05-21,Menifee,Kentucky,21165,6,0 +2020-05-22,Menifee,Kentucky,21165,8,0 +2020-05-23,Menifee,Kentucky,21165,8,0 +2020-05-24,Menifee,Kentucky,21165,8,0 +2020-05-25,Menifee,Kentucky,21165,8,0 +2020-05-26,Menifee,Kentucky,21165,8,0 +2020-05-27,Menifee,Kentucky,21165,10,0 +2020-05-28,Menifee,Kentucky,21165,10,0 +2020-05-29,Menifee,Kentucky,21165,10,0 +2020-05-30,Menifee,Kentucky,21165,10,0 +2020-05-31,Menifee,Kentucky,21165,10,0 +2020-06-01,Menifee,Kentucky,21165,10,0 +2020-06-02,Menifee,Kentucky,21165,10,0 +2020-06-03,Menifee,Kentucky,21165,10,0 +2020-06-04,Menifee,Kentucky,21165,10,0 +2020-06-05,Menifee,Kentucky,21165,10,0 +2020-06-06,Menifee,Kentucky,21165,10,0 +2020-06-07,Menifee,Kentucky,21165,10,0 +2020-06-08,Menifee,Kentucky,21165,10,0 +2020-06-09,Menifee,Kentucky,21165,10,0 +2020-06-10,Menifee,Kentucky,21165,10,0 +2020-06-11,Menifee,Kentucky,21165,10,0 +2020-06-12,Menifee,Kentucky,21165,10,0 +2020-06-13,Menifee,Kentucky,21165,10,0 +2020-06-14,Menifee,Kentucky,21165,11,0 +2020-06-15,Menifee,Kentucky,21165,11,0 +2020-06-16,Menifee,Kentucky,21165,11,0 +2020-06-17,Menifee,Kentucky,21165,11,0 +2020-06-18,Menifee,Kentucky,21165,11,0 +2020-06-19,Menifee,Kentucky,21165,11,0 +2020-06-20,Menifee,Kentucky,21165,11,0 +2020-06-21,Menifee,Kentucky,21165,11,0 +2020-06-22,Menifee,Kentucky,21165,11,0 +2020-06-23,Menifee,Kentucky,21165,12,0 +2020-06-24,Menifee,Kentucky,21165,12,0 +2020-06-25,Menifee,Kentucky,21165,12,0 +2020-06-26,Menifee,Kentucky,21165,12,0 +2020-06-27,Menifee,Kentucky,21165,12,0 +2020-06-28,Menifee,Kentucky,21165,13,0 +2020-06-29,Menifee,Kentucky,21165,13,0 +2020-06-30,Menifee,Kentucky,21165,13,0 +2020-07-01,Menifee,Kentucky,21165,13,0 +2020-07-02,Menifee,Kentucky,21165,13,0 +2020-07-03,Menifee,Kentucky,21165,13,0 +2020-07-04,Menifee,Kentucky,21165,13,0 +2020-07-05,Menifee,Kentucky,21165,13,0 +2020-07-06,Menifee,Kentucky,21165,13,0 +2020-07-07,Menifee,Kentucky,21165,13,0 +2020-07-08,Menifee,Kentucky,21165,13,0 +2020-07-09,Menifee,Kentucky,21165,13,0 +2020-03-26,Mercer,Kentucky,21167,1,0 +2020-03-27,Mercer,Kentucky,21167,1,0 +2020-03-28,Mercer,Kentucky,21167,2,0 +2020-03-29,Mercer,Kentucky,21167,2,0 +2020-03-30,Mercer,Kentucky,21167,2,0 +2020-03-31,Mercer,Kentucky,21167,2,0 +2020-04-01,Mercer,Kentucky,21167,2,0 +2020-04-02,Mercer,Kentucky,21167,2,0 +2020-04-03,Mercer,Kentucky,21167,2,0 +2020-04-04,Mercer,Kentucky,21167,3,0 +2020-04-05,Mercer,Kentucky,21167,3,0 +2020-04-06,Mercer,Kentucky,21167,3,0 +2020-04-07,Mercer,Kentucky,21167,4,0 +2020-04-08,Mercer,Kentucky,21167,4,0 +2020-04-09,Mercer,Kentucky,21167,4,0 +2020-04-10,Mercer,Kentucky,21167,7,0 +2020-04-11,Mercer,Kentucky,21167,9,0 +2020-04-12,Mercer,Kentucky,21167,9,0 +2020-04-13,Mercer,Kentucky,21167,9,0 +2020-04-14,Mercer,Kentucky,21167,9,0 +2020-04-15,Mercer,Kentucky,21167,9,0 +2020-04-16,Mercer,Kentucky,21167,9,0 +2020-04-17,Mercer,Kentucky,21167,9,0 +2020-04-18,Mercer,Kentucky,21167,9,0 +2020-04-19,Mercer,Kentucky,21167,9,0 +2020-04-20,Mercer,Kentucky,21167,9,0 +2020-04-21,Mercer,Kentucky,21167,10,0 +2020-04-22,Mercer,Kentucky,21167,11,0 +2020-04-23,Mercer,Kentucky,21167,11,0 +2020-04-24,Mercer,Kentucky,21167,11,0 +2020-04-25,Mercer,Kentucky,21167,11,0 +2020-04-26,Mercer,Kentucky,21167,11,0 +2020-04-27,Mercer,Kentucky,21167,11,0 +2020-04-28,Mercer,Kentucky,21167,11,0 +2020-04-29,Mercer,Kentucky,21167,11,0 +2020-04-30,Mercer,Kentucky,21167,11,0 +2020-05-01,Mercer,Kentucky,21167,11,0 +2020-05-02,Mercer,Kentucky,21167,11,0 +2020-05-03,Mercer,Kentucky,21167,11,0 +2020-05-04,Mercer,Kentucky,21167,11,0 +2020-05-05,Mercer,Kentucky,21167,11,0 +2020-05-06,Mercer,Kentucky,21167,11,0 +2020-05-07,Mercer,Kentucky,21167,11,0 +2020-05-08,Mercer,Kentucky,21167,11,0 +2020-05-09,Mercer,Kentucky,21167,11,0 +2020-05-10,Mercer,Kentucky,21167,11,0 +2020-05-11,Mercer,Kentucky,21167,11,0 +2020-05-12,Mercer,Kentucky,21167,12,0 +2020-05-13,Mercer,Kentucky,21167,12,0 +2020-05-14,Mercer,Kentucky,21167,12,0 +2020-05-15,Mercer,Kentucky,21167,12,0 +2020-05-16,Mercer,Kentucky,21167,12,0 +2020-05-17,Mercer,Kentucky,21167,12,0 +2020-05-18,Mercer,Kentucky,21167,12,0 +2020-05-19,Mercer,Kentucky,21167,12,0 +2020-05-20,Mercer,Kentucky,21167,12,0 +2020-05-21,Mercer,Kentucky,21167,12,0 +2020-05-22,Mercer,Kentucky,21167,12,0 +2020-05-23,Mercer,Kentucky,21167,12,0 +2020-05-24,Mercer,Kentucky,21167,12,0 +2020-05-25,Mercer,Kentucky,21167,12,0 +2020-05-26,Mercer,Kentucky,21167,13,0 +2020-05-27,Mercer,Kentucky,21167,13,0 +2020-05-28,Mercer,Kentucky,21167,13,0 +2020-05-29,Mercer,Kentucky,21167,13,0 +2020-05-30,Mercer,Kentucky,21167,13,0 +2020-05-31,Mercer,Kentucky,21167,13,0 +2020-06-01,Mercer,Kentucky,21167,13,0 +2020-06-02,Mercer,Kentucky,21167,14,0 +2020-06-03,Mercer,Kentucky,21167,14,0 +2020-06-04,Mercer,Kentucky,21167,14,0 +2020-06-05,Mercer,Kentucky,21167,15,0 +2020-06-06,Mercer,Kentucky,21167,15,0 +2020-06-07,Mercer,Kentucky,21167,15,0 +2020-06-08,Mercer,Kentucky,21167,15,0 +2020-06-09,Mercer,Kentucky,21167,15,0 +2020-06-10,Mercer,Kentucky,21167,15,0 +2020-06-11,Mercer,Kentucky,21167,16,0 +2020-06-12,Mercer,Kentucky,21167,16,0 +2020-06-13,Mercer,Kentucky,21167,16,0 +2020-06-14,Mercer,Kentucky,21167,16,0 +2020-06-15,Mercer,Kentucky,21167,16,0 +2020-06-16,Mercer,Kentucky,21167,16,0 +2020-06-17,Mercer,Kentucky,21167,16,0 +2020-06-18,Mercer,Kentucky,21167,17,0 +2020-06-19,Mercer,Kentucky,21167,17,0 +2020-06-20,Mercer,Kentucky,21167,17,0 +2020-06-21,Mercer,Kentucky,21167,17,0 +2020-06-22,Mercer,Kentucky,21167,17,0 +2020-06-23,Mercer,Kentucky,21167,17,0 +2020-06-24,Mercer,Kentucky,21167,17,0 +2020-06-25,Mercer,Kentucky,21167,17,0 +2020-06-26,Mercer,Kentucky,21167,23,0 +2020-06-27,Mercer,Kentucky,21167,23,0 +2020-06-28,Mercer,Kentucky,21167,23,0 +2020-06-29,Mercer,Kentucky,21167,23,0 +2020-06-30,Mercer,Kentucky,21167,23,0 +2020-07-01,Mercer,Kentucky,21167,23,0 +2020-07-02,Mercer,Kentucky,21167,24,0 +2020-07-03,Mercer,Kentucky,21167,24,0 +2020-07-04,Mercer,Kentucky,21167,24,0 +2020-07-05,Mercer,Kentucky,21167,24,0 +2020-07-06,Mercer,Kentucky,21167,25,0 +2020-07-07,Mercer,Kentucky,21167,25,0 +2020-07-08,Mercer,Kentucky,21167,26,0 +2020-07-09,Mercer,Kentucky,21167,29,0 +2020-04-28,Metcalfe,Kentucky,21169,1,0 +2020-04-29,Metcalfe,Kentucky,21169,1,0 +2020-04-30,Metcalfe,Kentucky,21169,1,0 +2020-05-01,Metcalfe,Kentucky,21169,1,0 +2020-05-02,Metcalfe,Kentucky,21169,1,0 +2020-05-03,Metcalfe,Kentucky,21169,1,0 +2020-05-04,Metcalfe,Kentucky,21169,1,0 +2020-05-05,Metcalfe,Kentucky,21169,1,0 +2020-05-06,Metcalfe,Kentucky,21169,1,0 +2020-05-07,Metcalfe,Kentucky,21169,2,0 +2020-05-08,Metcalfe,Kentucky,21169,2,0 +2020-05-09,Metcalfe,Kentucky,21169,2,0 +2020-05-10,Metcalfe,Kentucky,21169,2,0 +2020-05-11,Metcalfe,Kentucky,21169,2,0 +2020-05-12,Metcalfe,Kentucky,21169,3,0 +2020-05-13,Metcalfe,Kentucky,21169,3,0 +2020-05-14,Metcalfe,Kentucky,21169,3,0 +2020-05-15,Metcalfe,Kentucky,21169,3,0 +2020-05-16,Metcalfe,Kentucky,21169,3,0 +2020-05-17,Metcalfe,Kentucky,21169,3,0 +2020-05-18,Metcalfe,Kentucky,21169,3,0 +2020-05-19,Metcalfe,Kentucky,21169,3,0 +2020-05-20,Metcalfe,Kentucky,21169,3,0 +2020-05-21,Metcalfe,Kentucky,21169,4,0 +2020-05-22,Metcalfe,Kentucky,21169,4,0 +2020-05-23,Metcalfe,Kentucky,21169,4,0 +2020-05-24,Metcalfe,Kentucky,21169,4,0 +2020-05-25,Metcalfe,Kentucky,21169,4,0 +2020-05-26,Metcalfe,Kentucky,21169,4,0 +2020-05-27,Metcalfe,Kentucky,21169,4,0 +2020-05-28,Metcalfe,Kentucky,21169,4,0 +2020-05-29,Metcalfe,Kentucky,21169,6,0 +2020-05-30,Metcalfe,Kentucky,21169,6,1 +2020-05-31,Metcalfe,Kentucky,21169,7,1 +2020-06-01,Metcalfe,Kentucky,21169,7,1 +2020-06-02,Metcalfe,Kentucky,21169,7,1 +2020-06-03,Metcalfe,Kentucky,21169,7,1 +2020-06-04,Metcalfe,Kentucky,21169,7,2 +2020-06-05,Metcalfe,Kentucky,21169,7,2 +2020-06-06,Metcalfe,Kentucky,21169,7,2 +2020-06-07,Metcalfe,Kentucky,21169,7,2 +2020-06-08,Metcalfe,Kentucky,21169,7,2 +2020-06-09,Metcalfe,Kentucky,21169,7,2 +2020-06-10,Metcalfe,Kentucky,21169,7,2 +2020-06-11,Metcalfe,Kentucky,21169,7,2 +2020-06-12,Metcalfe,Kentucky,21169,7,2 +2020-06-13,Metcalfe,Kentucky,21169,7,2 +2020-06-14,Metcalfe,Kentucky,21169,7,2 +2020-06-15,Metcalfe,Kentucky,21169,8,2 +2020-06-16,Metcalfe,Kentucky,21169,8,2 +2020-06-17,Metcalfe,Kentucky,21169,8,2 +2020-06-18,Metcalfe,Kentucky,21169,8,2 +2020-06-19,Metcalfe,Kentucky,21169,8,2 +2020-06-20,Metcalfe,Kentucky,21169,8,2 +2020-06-21,Metcalfe,Kentucky,21169,8,2 +2020-06-22,Metcalfe,Kentucky,21169,8,2 +2020-06-23,Metcalfe,Kentucky,21169,8,2 +2020-06-24,Metcalfe,Kentucky,21169,9,2 +2020-06-25,Metcalfe,Kentucky,21169,9,2 +2020-06-26,Metcalfe,Kentucky,21169,9,2 +2020-06-27,Metcalfe,Kentucky,21169,9,2 +2020-06-28,Metcalfe,Kentucky,21169,9,2 +2020-06-29,Metcalfe,Kentucky,21169,9,2 +2020-06-30,Metcalfe,Kentucky,21169,9,2 +2020-07-01,Metcalfe,Kentucky,21169,10,2 +2020-07-02,Metcalfe,Kentucky,21169,11,2 +2020-07-03,Metcalfe,Kentucky,21169,11,2 +2020-07-04,Metcalfe,Kentucky,21169,11,2 +2020-07-05,Metcalfe,Kentucky,21169,11,2 +2020-07-06,Metcalfe,Kentucky,21169,13,2 +2020-07-07,Metcalfe,Kentucky,21169,14,2 +2020-07-08,Metcalfe,Kentucky,21169,14,2 +2020-07-09,Metcalfe,Kentucky,21169,14,2 +2020-04-05,Monroe,Kentucky,21171,1,0 +2020-04-06,Monroe,Kentucky,21171,1,0 +2020-04-07,Monroe,Kentucky,21171,2,0 +2020-04-08,Monroe,Kentucky,21171,2,0 +2020-04-09,Monroe,Kentucky,21171,2,0 +2020-04-10,Monroe,Kentucky,21171,2,0 +2020-04-11,Monroe,Kentucky,21171,2,0 +2020-04-12,Monroe,Kentucky,21171,2,0 +2020-04-13,Monroe,Kentucky,21171,2,0 +2020-04-14,Monroe,Kentucky,21171,3,0 +2020-04-15,Monroe,Kentucky,21171,3,0 +2020-04-16,Monroe,Kentucky,21171,3,0 +2020-04-17,Monroe,Kentucky,21171,3,0 +2020-04-18,Monroe,Kentucky,21171,3,0 +2020-04-19,Monroe,Kentucky,21171,3,0 +2020-04-20,Monroe,Kentucky,21171,3,0 +2020-04-21,Monroe,Kentucky,21171,3,0 +2020-04-22,Monroe,Kentucky,21171,3,0 +2020-04-23,Monroe,Kentucky,21171,3,0 +2020-04-24,Monroe,Kentucky,21171,3,0 +2020-04-25,Monroe,Kentucky,21171,3,0 +2020-04-26,Monroe,Kentucky,21171,4,0 +2020-04-27,Monroe,Kentucky,21171,4,0 +2020-04-28,Monroe,Kentucky,21171,4,0 +2020-04-29,Monroe,Kentucky,21171,5,0 +2020-04-30,Monroe,Kentucky,21171,5,0 +2020-05-01,Monroe,Kentucky,21171,5,0 +2020-05-02,Monroe,Kentucky,21171,5,0 +2020-05-03,Monroe,Kentucky,21171,6,0 +2020-05-04,Monroe,Kentucky,21171,6,0 +2020-05-05,Monroe,Kentucky,21171,6,0 +2020-05-06,Monroe,Kentucky,21171,6,0 +2020-05-07,Monroe,Kentucky,21171,6,0 +2020-05-08,Monroe,Kentucky,21171,6,0 +2020-05-09,Monroe,Kentucky,21171,6,0 +2020-05-10,Monroe,Kentucky,21171,6,0 +2020-05-11,Monroe,Kentucky,21171,6,0 +2020-05-12,Monroe,Kentucky,21171,6,0 +2020-05-13,Monroe,Kentucky,21171,6,0 +2020-05-14,Monroe,Kentucky,21171,6,0 +2020-05-15,Monroe,Kentucky,21171,6,0 +2020-05-16,Monroe,Kentucky,21171,6,0 +2020-05-17,Monroe,Kentucky,21171,6,0 +2020-05-18,Monroe,Kentucky,21171,6,0 +2020-05-19,Monroe,Kentucky,21171,6,0 +2020-05-20,Monroe,Kentucky,21171,6,0 +2020-05-21,Monroe,Kentucky,21171,7,0 +2020-05-22,Monroe,Kentucky,21171,7,0 +2020-05-23,Monroe,Kentucky,21171,14,0 +2020-05-24,Monroe,Kentucky,21171,14,0 +2020-05-25,Monroe,Kentucky,21171,14,0 +2020-05-26,Monroe,Kentucky,21171,15,0 +2020-05-27,Monroe,Kentucky,21171,16,0 +2020-05-28,Monroe,Kentucky,21171,16,0 +2020-05-29,Monroe,Kentucky,21171,16,0 +2020-05-30,Monroe,Kentucky,21171,17,0 +2020-05-31,Monroe,Kentucky,21171,17,0 +2020-06-01,Monroe,Kentucky,21171,20,0 +2020-06-02,Monroe,Kentucky,21171,21,0 +2020-06-03,Monroe,Kentucky,21171,21,0 +2020-06-04,Monroe,Kentucky,21171,25,0 +2020-06-05,Monroe,Kentucky,21171,25,0 +2020-06-06,Monroe,Kentucky,21171,25,0 +2020-06-07,Monroe,Kentucky,21171,25,0 +2020-06-08,Monroe,Kentucky,21171,27,0 +2020-06-09,Monroe,Kentucky,21171,27,0 +2020-06-10,Monroe,Kentucky,21171,27,0 +2020-06-11,Monroe,Kentucky,21171,27,0 +2020-06-12,Monroe,Kentucky,21171,27,0 +2020-06-13,Monroe,Kentucky,21171,29,0 +2020-06-14,Monroe,Kentucky,21171,29,0 +2020-06-15,Monroe,Kentucky,21171,31,0 +2020-06-16,Monroe,Kentucky,21171,31,0 +2020-06-17,Monroe,Kentucky,21171,31,0 +2020-06-18,Monroe,Kentucky,21171,32,0 +2020-06-19,Monroe,Kentucky,21171,32,0 +2020-06-20,Monroe,Kentucky,21171,32,0 +2020-06-21,Monroe,Kentucky,21171,34,0 +2020-06-22,Monroe,Kentucky,21171,34,0 +2020-06-23,Monroe,Kentucky,21171,34,0 +2020-06-24,Monroe,Kentucky,21171,34,0 +2020-06-25,Monroe,Kentucky,21171,34,0 +2020-06-26,Monroe,Kentucky,21171,34,1 +2020-06-27,Monroe,Kentucky,21171,34,1 +2020-06-28,Monroe,Kentucky,21171,35,1 +2020-06-29,Monroe,Kentucky,21171,35,1 +2020-06-30,Monroe,Kentucky,21171,35,1 +2020-07-01,Monroe,Kentucky,21171,36,1 +2020-07-02,Monroe,Kentucky,21171,38,1 +2020-07-03,Monroe,Kentucky,21171,40,1 +2020-07-04,Monroe,Kentucky,21171,40,1 +2020-07-05,Monroe,Kentucky,21171,40,1 +2020-07-06,Monroe,Kentucky,21171,42,1 +2020-07-07,Monroe,Kentucky,21171,42,2 +2020-07-08,Monroe,Kentucky,21171,42,2 +2020-07-09,Monroe,Kentucky,21171,44,2 +2020-03-12,Montgomery,Kentucky,21173,1,0 +2020-03-13,Montgomery,Kentucky,21173,1,0 +2020-03-14,Montgomery,Kentucky,21173,1,0 +2020-03-15,Montgomery,Kentucky,21173,1,0 +2020-03-16,Montgomery,Kentucky,21173,1,0 +2020-03-17,Montgomery,Kentucky,21173,2,0 +2020-03-18,Montgomery,Kentucky,21173,2,0 +2020-03-19,Montgomery,Kentucky,21173,2,0 +2020-03-20,Montgomery,Kentucky,21173,2,0 +2020-03-21,Montgomery,Kentucky,21173,2,0 +2020-03-22,Montgomery,Kentucky,21173,2,0 +2020-03-23,Montgomery,Kentucky,21173,2,0 +2020-03-24,Montgomery,Kentucky,21173,2,0 +2020-03-25,Montgomery,Kentucky,21173,2,0 +2020-03-26,Montgomery,Kentucky,21173,2,0 +2020-03-27,Montgomery,Kentucky,21173,2,0 +2020-03-28,Montgomery,Kentucky,21173,2,0 +2020-03-29,Montgomery,Kentucky,21173,2,0 +2020-03-30,Montgomery,Kentucky,21173,2,0 +2020-03-31,Montgomery,Kentucky,21173,3,0 +2020-04-01,Montgomery,Kentucky,21173,5,0 +2020-04-02,Montgomery,Kentucky,21173,6,0 +2020-04-03,Montgomery,Kentucky,21173,6,0 +2020-04-04,Montgomery,Kentucky,21173,6,0 +2020-04-05,Montgomery,Kentucky,21173,7,0 +2020-04-06,Montgomery,Kentucky,21173,7,0 +2020-04-07,Montgomery,Kentucky,21173,7,0 +2020-04-08,Montgomery,Kentucky,21173,7,0 +2020-04-09,Montgomery,Kentucky,21173,7,0 +2020-04-10,Montgomery,Kentucky,21173,8,0 +2020-04-11,Montgomery,Kentucky,21173,8,0 +2020-04-12,Montgomery,Kentucky,21173,8,0 +2020-04-13,Montgomery,Kentucky,21173,8,0 +2020-04-14,Montgomery,Kentucky,21173,8,0 +2020-04-15,Montgomery,Kentucky,21173,8,0 +2020-04-16,Montgomery,Kentucky,21173,9,0 +2020-04-17,Montgomery,Kentucky,21173,9,0 +2020-04-18,Montgomery,Kentucky,21173,9,0 +2020-04-19,Montgomery,Kentucky,21173,9,0 +2020-04-20,Montgomery,Kentucky,21173,9,0 +2020-04-21,Montgomery,Kentucky,21173,9,0 +2020-04-22,Montgomery,Kentucky,21173,9,0 +2020-04-23,Montgomery,Kentucky,21173,9,0 +2020-04-24,Montgomery,Kentucky,21173,10,0 +2020-04-25,Montgomery,Kentucky,21173,10,0 +2020-04-26,Montgomery,Kentucky,21173,10,0 +2020-04-27,Montgomery,Kentucky,21173,10,0 +2020-04-28,Montgomery,Kentucky,21173,11,0 +2020-04-29,Montgomery,Kentucky,21173,11,0 +2020-04-30,Montgomery,Kentucky,21173,11,0 +2020-05-01,Montgomery,Kentucky,21173,12,0 +2020-05-02,Montgomery,Kentucky,21173,12,0 +2020-05-03,Montgomery,Kentucky,21173,12,0 +2020-05-04,Montgomery,Kentucky,21173,12,0 +2020-05-05,Montgomery,Kentucky,21173,12,0 +2020-05-06,Montgomery,Kentucky,21173,12,0 +2020-05-07,Montgomery,Kentucky,21173,12,0 +2020-05-08,Montgomery,Kentucky,21173,11,0 +2020-05-09,Montgomery,Kentucky,21173,11,0 +2020-05-10,Montgomery,Kentucky,21173,11,0 +2020-05-11,Montgomery,Kentucky,21173,11,0 +2020-05-12,Montgomery,Kentucky,21173,13,0 +2020-05-13,Montgomery,Kentucky,21173,13,0 +2020-05-14,Montgomery,Kentucky,21173,16,0 +2020-05-15,Montgomery,Kentucky,21173,16,0 +2020-05-16,Montgomery,Kentucky,21173,16,0 +2020-05-17,Montgomery,Kentucky,21173,16,0 +2020-05-18,Montgomery,Kentucky,21173,16,0 +2020-05-19,Montgomery,Kentucky,21173,16,0 +2020-05-20,Montgomery,Kentucky,21173,17,0 +2020-05-21,Montgomery,Kentucky,21173,17,0 +2020-05-22,Montgomery,Kentucky,21173,17,0 +2020-05-23,Montgomery,Kentucky,21173,21,0 +2020-05-24,Montgomery,Kentucky,21173,21,0 +2020-05-25,Montgomery,Kentucky,21173,21,0 +2020-05-26,Montgomery,Kentucky,21173,22,0 +2020-05-27,Montgomery,Kentucky,21173,22,0 +2020-05-28,Montgomery,Kentucky,21173,23,0 +2020-05-29,Montgomery,Kentucky,21173,23,0 +2020-05-30,Montgomery,Kentucky,21173,24,0 +2020-05-31,Montgomery,Kentucky,21173,24,0 +2020-06-01,Montgomery,Kentucky,21173,25,0 +2020-06-02,Montgomery,Kentucky,21173,25,0 +2020-06-03,Montgomery,Kentucky,21173,25,0 +2020-06-04,Montgomery,Kentucky,21173,25,0 +2020-06-05,Montgomery,Kentucky,21173,25,0 +2020-06-06,Montgomery,Kentucky,21173,30,0 +2020-06-07,Montgomery,Kentucky,21173,30,0 +2020-06-08,Montgomery,Kentucky,21173,32,0 +2020-06-09,Montgomery,Kentucky,21173,32,0 +2020-06-10,Montgomery,Kentucky,21173,32,0 +2020-06-11,Montgomery,Kentucky,21173,32,0 +2020-06-12,Montgomery,Kentucky,21173,33,0 +2020-06-13,Montgomery,Kentucky,21173,37,0 +2020-06-14,Montgomery,Kentucky,21173,39,0 +2020-06-15,Montgomery,Kentucky,21173,39,0 +2020-06-16,Montgomery,Kentucky,21173,39,0 +2020-06-17,Montgomery,Kentucky,21173,40,0 +2020-06-18,Montgomery,Kentucky,21173,41,0 +2020-06-19,Montgomery,Kentucky,21173,41,0 +2020-06-20,Montgomery,Kentucky,21173,44,0 +2020-06-21,Montgomery,Kentucky,21173,45,0 +2020-06-22,Montgomery,Kentucky,21173,45,0 +2020-06-23,Montgomery,Kentucky,21173,44,0 +2020-06-24,Montgomery,Kentucky,21173,46,0 +2020-06-25,Montgomery,Kentucky,21173,46,0 +2020-06-26,Montgomery,Kentucky,21173,46,0 +2020-06-27,Montgomery,Kentucky,21173,47,0 +2020-06-28,Montgomery,Kentucky,21173,58,0 +2020-06-29,Montgomery,Kentucky,21173,58,0 +2020-06-30,Montgomery,Kentucky,21173,58,0 +2020-07-01,Montgomery,Kentucky,21173,58,0 +2020-07-02,Montgomery,Kentucky,21173,58,0 +2020-07-03,Montgomery,Kentucky,21173,58,0 +2020-07-04,Montgomery,Kentucky,21173,58,0 +2020-07-05,Montgomery,Kentucky,21173,58,0 +2020-07-06,Montgomery,Kentucky,21173,58,0 +2020-07-07,Montgomery,Kentucky,21173,61,0 +2020-07-08,Montgomery,Kentucky,21173,61,0 +2020-07-09,Montgomery,Kentucky,21173,61,0 +2020-04-12,Morgan,Kentucky,21175,1,0 +2020-04-13,Morgan,Kentucky,21175,1,0 +2020-04-14,Morgan,Kentucky,21175,1,0 +2020-04-15,Morgan,Kentucky,21175,1,0 +2020-04-16,Morgan,Kentucky,21175,1,0 +2020-04-17,Morgan,Kentucky,21175,1,0 +2020-04-18,Morgan,Kentucky,21175,1,0 +2020-04-19,Morgan,Kentucky,21175,1,0 +2020-04-20,Morgan,Kentucky,21175,1,0 +2020-04-21,Morgan,Kentucky,21175,1,0 +2020-04-22,Morgan,Kentucky,21175,1,0 +2020-04-23,Morgan,Kentucky,21175,1,0 +2020-04-24,Morgan,Kentucky,21175,1,0 +2020-04-25,Morgan,Kentucky,21175,1,0 +2020-04-26,Morgan,Kentucky,21175,1,0 +2020-04-27,Morgan,Kentucky,21175,1,0 +2020-04-28,Morgan,Kentucky,21175,1,0 +2020-04-29,Morgan,Kentucky,21175,1,0 +2020-04-30,Morgan,Kentucky,21175,1,0 +2020-05-01,Morgan,Kentucky,21175,1,0 +2020-05-02,Morgan,Kentucky,21175,1,0 +2020-05-03,Morgan,Kentucky,21175,1,0 +2020-05-04,Morgan,Kentucky,21175,1,0 +2020-05-05,Morgan,Kentucky,21175,1,0 +2020-05-06,Morgan,Kentucky,21175,1,0 +2020-05-07,Morgan,Kentucky,21175,1,0 +2020-05-08,Morgan,Kentucky,21175,1,0 +2020-05-09,Morgan,Kentucky,21175,1,0 +2020-05-10,Morgan,Kentucky,21175,1,0 +2020-05-11,Morgan,Kentucky,21175,1,0 +2020-05-12,Morgan,Kentucky,21175,1,0 +2020-05-13,Morgan,Kentucky,21175,1,0 +2020-05-14,Morgan,Kentucky,21175,1,0 +2020-05-15,Morgan,Kentucky,21175,1,0 +2020-05-16,Morgan,Kentucky,21175,1,0 +2020-05-17,Morgan,Kentucky,21175,1,0 +2020-05-18,Morgan,Kentucky,21175,1,0 +2020-05-19,Morgan,Kentucky,21175,1,0 +2020-05-20,Morgan,Kentucky,21175,1,0 +2020-05-21,Morgan,Kentucky,21175,1,0 +2020-05-22,Morgan,Kentucky,21175,1,0 +2020-05-23,Morgan,Kentucky,21175,1,0 +2020-05-24,Morgan,Kentucky,21175,1,0 +2020-05-25,Morgan,Kentucky,21175,1,0 +2020-05-26,Morgan,Kentucky,21175,1,0 +2020-05-27,Morgan,Kentucky,21175,1,0 +2020-05-28,Morgan,Kentucky,21175,1,0 +2020-05-29,Morgan,Kentucky,21175,1,0 +2020-05-30,Morgan,Kentucky,21175,1,0 +2020-05-31,Morgan,Kentucky,21175,1,0 +2020-06-01,Morgan,Kentucky,21175,1,0 +2020-06-02,Morgan,Kentucky,21175,1,0 +2020-06-03,Morgan,Kentucky,21175,3,0 +2020-06-04,Morgan,Kentucky,21175,3,0 +2020-06-05,Morgan,Kentucky,21175,3,0 +2020-06-06,Morgan,Kentucky,21175,3,0 +2020-06-07,Morgan,Kentucky,21175,3,0 +2020-06-08,Morgan,Kentucky,21175,3,0 +2020-06-09,Morgan,Kentucky,21175,4,0 +2020-06-10,Morgan,Kentucky,21175,4,0 +2020-06-11,Morgan,Kentucky,21175,4,0 +2020-06-12,Morgan,Kentucky,21175,6,0 +2020-06-13,Morgan,Kentucky,21175,6,0 +2020-06-14,Morgan,Kentucky,21175,6,0 +2020-06-15,Morgan,Kentucky,21175,6,0 +2020-06-16,Morgan,Kentucky,21175,6,0 +2020-06-17,Morgan,Kentucky,21175,7,0 +2020-06-18,Morgan,Kentucky,21175,7,0 +2020-06-19,Morgan,Kentucky,21175,7,0 +2020-06-20,Morgan,Kentucky,21175,7,0 +2020-06-21,Morgan,Kentucky,21175,7,0 +2020-06-22,Morgan,Kentucky,21175,7,0 +2020-06-23,Morgan,Kentucky,21175,7,0 +2020-06-24,Morgan,Kentucky,21175,8,0 +2020-06-25,Morgan,Kentucky,21175,8,0 +2020-06-26,Morgan,Kentucky,21175,8,0 +2020-06-27,Morgan,Kentucky,21175,8,0 +2020-06-28,Morgan,Kentucky,21175,8,0 +2020-06-29,Morgan,Kentucky,21175,8,0 +2020-06-30,Morgan,Kentucky,21175,8,0 +2020-07-01,Morgan,Kentucky,21175,8,0 +2020-07-02,Morgan,Kentucky,21175,8,0 +2020-07-03,Morgan,Kentucky,21175,9,0 +2020-07-04,Morgan,Kentucky,21175,9,0 +2020-07-05,Morgan,Kentucky,21175,9,0 +2020-07-06,Morgan,Kentucky,21175,10,0 +2020-07-07,Morgan,Kentucky,21175,11,0 +2020-07-08,Morgan,Kentucky,21175,11,0 +2020-07-09,Morgan,Kentucky,21175,12,0 +2020-03-24,Muhlenberg,Kentucky,21177,2,0 +2020-03-25,Muhlenberg,Kentucky,21177,2,0 +2020-03-26,Muhlenberg,Kentucky,21177,2,0 +2020-03-27,Muhlenberg,Kentucky,21177,2,0 +2020-03-28,Muhlenberg,Kentucky,21177,2,0 +2020-03-29,Muhlenberg,Kentucky,21177,2,0 +2020-03-30,Muhlenberg,Kentucky,21177,2,0 +2020-03-31,Muhlenberg,Kentucky,21177,8,0 +2020-04-01,Muhlenberg,Kentucky,21177,8,0 +2020-04-02,Muhlenberg,Kentucky,21177,8,0 +2020-04-03,Muhlenberg,Kentucky,21177,8,0 +2020-04-04,Muhlenberg,Kentucky,21177,8,0 +2020-04-05,Muhlenberg,Kentucky,21177,8,0 +2020-04-06,Muhlenberg,Kentucky,21177,8,0 +2020-04-07,Muhlenberg,Kentucky,21177,8,0 +2020-04-08,Muhlenberg,Kentucky,21177,26,0 +2020-04-09,Muhlenberg,Kentucky,21177,26,0 +2020-04-10,Muhlenberg,Kentucky,21177,36,0 +2020-04-11,Muhlenberg,Kentucky,21177,28,0 +2020-04-12,Muhlenberg,Kentucky,21177,43,1 +2020-04-13,Muhlenberg,Kentucky,21177,45,2 +2020-04-14,Muhlenberg,Kentucky,21177,51,2 +2020-04-15,Muhlenberg,Kentucky,21177,52,2 +2020-04-16,Muhlenberg,Kentucky,21177,55,2 +2020-04-17,Muhlenberg,Kentucky,21177,60,2 +2020-04-18,Muhlenberg,Kentucky,21177,70,2 +2020-04-19,Muhlenberg,Kentucky,21177,75,2 +2020-04-20,Muhlenberg,Kentucky,21177,76,2 +2020-04-21,Muhlenberg,Kentucky,21177,75,2 +2020-04-22,Muhlenberg,Kentucky,21177,75,2 +2020-04-23,Muhlenberg,Kentucky,21177,92,3 +2020-04-24,Muhlenberg,Kentucky,21177,92,4 +2020-04-25,Muhlenberg,Kentucky,21177,96,4 +2020-04-26,Muhlenberg,Kentucky,21177,111,4 +2020-04-27,Muhlenberg,Kentucky,21177,111,4 +2020-04-28,Muhlenberg,Kentucky,21177,114,4 +2020-04-29,Muhlenberg,Kentucky,21177,116,4 +2020-04-30,Muhlenberg,Kentucky,21177,123,4 +2020-05-01,Muhlenberg,Kentucky,21177,125,4 +2020-05-02,Muhlenberg,Kentucky,21177,125,4 +2020-05-03,Muhlenberg,Kentucky,21177,241,4 +2020-05-04,Muhlenberg,Kentucky,21177,241,4 +2020-05-05,Muhlenberg,Kentucky,21177,442,4 +2020-05-06,Muhlenberg,Kentucky,21177,446,6 +2020-05-07,Muhlenberg,Kentucky,21177,458,6 +2020-05-08,Muhlenberg,Kentucky,21177,452,6 +2020-05-09,Muhlenberg,Kentucky,21177,453,6 +2020-05-10,Muhlenberg,Kentucky,21177,453,6 +2020-05-11,Muhlenberg,Kentucky,21177,457,6 +2020-05-12,Muhlenberg,Kentucky,21177,457,6 +2020-05-13,Muhlenberg,Kentucky,21177,457,6 +2020-05-14,Muhlenberg,Kentucky,21177,459,6 +2020-05-15,Muhlenberg,Kentucky,21177,464,6 +2020-05-16,Muhlenberg,Kentucky,21177,474,7 +2020-05-17,Muhlenberg,Kentucky,21177,476,7 +2020-05-18,Muhlenberg,Kentucky,21177,476,7 +2020-05-19,Muhlenberg,Kentucky,21177,476,7 +2020-05-20,Muhlenberg,Kentucky,21177,476,7 +2020-05-21,Muhlenberg,Kentucky,21177,476,7 +2020-05-22,Muhlenberg,Kentucky,21177,476,7 +2020-05-23,Muhlenberg,Kentucky,21177,476,7 +2020-05-24,Muhlenberg,Kentucky,21177,485,7 +2020-05-25,Muhlenberg,Kentucky,21177,485,7 +2020-05-26,Muhlenberg,Kentucky,21177,485,7 +2020-05-27,Muhlenberg,Kentucky,21177,485,7 +2020-05-28,Muhlenberg,Kentucky,21177,485,7 +2020-05-29,Muhlenberg,Kentucky,21177,485,7 +2020-05-30,Muhlenberg,Kentucky,21177,485,7 +2020-05-31,Muhlenberg,Kentucky,21177,497,7 +2020-06-01,Muhlenberg,Kentucky,21177,497,7 +2020-06-02,Muhlenberg,Kentucky,21177,497,8 +2020-06-03,Muhlenberg,Kentucky,21177,497,8 +2020-06-04,Muhlenberg,Kentucky,21177,497,8 +2020-06-05,Muhlenberg,Kentucky,21177,497,8 +2020-06-06,Muhlenberg,Kentucky,21177,497,8 +2020-06-07,Muhlenberg,Kentucky,21177,498,8 +2020-06-08,Muhlenberg,Kentucky,21177,499,8 +2020-06-09,Muhlenberg,Kentucky,21177,499,8 +2020-06-10,Muhlenberg,Kentucky,21177,499,8 +2020-06-11,Muhlenberg,Kentucky,21177,502,8 +2020-06-12,Muhlenberg,Kentucky,21177,502,8 +2020-06-13,Muhlenberg,Kentucky,21177,502,8 +2020-06-14,Muhlenberg,Kentucky,21177,502,8 +2020-06-15,Muhlenberg,Kentucky,21177,503,8 +2020-06-16,Muhlenberg,Kentucky,21177,504,8 +2020-06-17,Muhlenberg,Kentucky,21177,505,8 +2020-06-18,Muhlenberg,Kentucky,21177,506,8 +2020-06-19,Muhlenberg,Kentucky,21177,507,8 +2020-06-20,Muhlenberg,Kentucky,21177,509,8 +2020-06-21,Muhlenberg,Kentucky,21177,509,8 +2020-06-22,Muhlenberg,Kentucky,21177,509,8 +2020-06-23,Muhlenberg,Kentucky,21177,510,8 +2020-06-24,Muhlenberg,Kentucky,21177,511,8 +2020-06-25,Muhlenberg,Kentucky,21177,511,8 +2020-06-26,Muhlenberg,Kentucky,21177,511,8 +2020-06-27,Muhlenberg,Kentucky,21177,512,8 +2020-06-28,Muhlenberg,Kentucky,21177,514,8 +2020-06-29,Muhlenberg,Kentucky,21177,520,8 +2020-06-30,Muhlenberg,Kentucky,21177,523,8 +2020-07-01,Muhlenberg,Kentucky,21177,523,8 +2020-07-02,Muhlenberg,Kentucky,21177,527,8 +2020-07-03,Muhlenberg,Kentucky,21177,527,8 +2020-07-04,Muhlenberg,Kentucky,21177,538,8 +2020-07-05,Muhlenberg,Kentucky,21177,538,8 +2020-07-06,Muhlenberg,Kentucky,21177,538,8 +2020-07-07,Muhlenberg,Kentucky,21177,545,8 +2020-07-08,Muhlenberg,Kentucky,21177,549,8 +2020-07-09,Muhlenberg,Kentucky,21177,549,8 +2020-03-14,Nelson,Kentucky,21179,1,0 +2020-03-15,Nelson,Kentucky,21179,1,0 +2020-03-16,Nelson,Kentucky,21179,1,0 +2020-03-17,Nelson,Kentucky,21179,1,0 +2020-03-18,Nelson,Kentucky,21179,1,0 +2020-03-19,Nelson,Kentucky,21179,1,0 +2020-03-20,Nelson,Kentucky,21179,1,0 +2020-03-21,Nelson,Kentucky,21179,1,0 +2020-03-22,Nelson,Kentucky,21179,1,0 +2020-03-23,Nelson,Kentucky,21179,1,0 +2020-03-24,Nelson,Kentucky,21179,1,0 +2020-03-25,Nelson,Kentucky,21179,2,0 +2020-03-26,Nelson,Kentucky,21179,2,0 +2020-03-27,Nelson,Kentucky,21179,2,0 +2020-03-28,Nelson,Kentucky,21179,2,0 +2020-03-29,Nelson,Kentucky,21179,3,0 +2020-03-30,Nelson,Kentucky,21179,3,0 +2020-03-31,Nelson,Kentucky,21179,3,0 +2020-04-01,Nelson,Kentucky,21179,4,0 +2020-04-02,Nelson,Kentucky,21179,4,0 +2020-04-03,Nelson,Kentucky,21179,4,0 +2020-04-04,Nelson,Kentucky,21179,4,0 +2020-04-05,Nelson,Kentucky,21179,4,0 +2020-04-06,Nelson,Kentucky,21179,4,0 +2020-04-07,Nelson,Kentucky,21179,5,0 +2020-04-08,Nelson,Kentucky,21179,7,0 +2020-04-09,Nelson,Kentucky,21179,7,0 +2020-04-10,Nelson,Kentucky,21179,8,0 +2020-04-11,Nelson,Kentucky,21179,10,0 +2020-04-12,Nelson,Kentucky,21179,13,0 +2020-04-13,Nelson,Kentucky,21179,13,0 +2020-04-14,Nelson,Kentucky,21179,13,0 +2020-04-15,Nelson,Kentucky,21179,13,0 +2020-04-16,Nelson,Kentucky,21179,14,0 +2020-04-17,Nelson,Kentucky,21179,14,0 +2020-04-18,Nelson,Kentucky,21179,14,0 +2020-04-19,Nelson,Kentucky,21179,13,0 +2020-04-20,Nelson,Kentucky,21179,13,0 +2020-04-21,Nelson,Kentucky,21179,13,0 +2020-04-22,Nelson,Kentucky,21179,14,0 +2020-04-23,Nelson,Kentucky,21179,14,0 +2020-04-24,Nelson,Kentucky,21179,17,0 +2020-04-25,Nelson,Kentucky,21179,17,0 +2020-04-26,Nelson,Kentucky,21179,19,0 +2020-04-27,Nelson,Kentucky,21179,19,0 +2020-04-28,Nelson,Kentucky,21179,20,0 +2020-04-29,Nelson,Kentucky,21179,21,0 +2020-04-30,Nelson,Kentucky,21179,22,0 +2020-05-01,Nelson,Kentucky,21179,23,0 +2020-05-02,Nelson,Kentucky,21179,23,0 +2020-05-03,Nelson,Kentucky,21179,24,0 +2020-05-04,Nelson,Kentucky,21179,24,0 +2020-05-05,Nelson,Kentucky,21179,24,0 +2020-05-06,Nelson,Kentucky,21179,24,0 +2020-05-07,Nelson,Kentucky,21179,28,0 +2020-05-08,Nelson,Kentucky,21179,29,0 +2020-05-09,Nelson,Kentucky,21179,30,0 +2020-05-10,Nelson,Kentucky,21179,30,0 +2020-05-11,Nelson,Kentucky,21179,31,0 +2020-05-12,Nelson,Kentucky,21179,31,0 +2020-05-13,Nelson,Kentucky,21179,31,0 +2020-05-14,Nelson,Kentucky,21179,32,0 +2020-05-15,Nelson,Kentucky,21179,32,0 +2020-05-16,Nelson,Kentucky,21179,32,0 +2020-05-17,Nelson,Kentucky,21179,32,0 +2020-05-18,Nelson,Kentucky,21179,33,0 +2020-05-19,Nelson,Kentucky,21179,34,0 +2020-05-20,Nelson,Kentucky,21179,34,0 +2020-05-21,Nelson,Kentucky,21179,35,0 +2020-05-22,Nelson,Kentucky,21179,36,0 +2020-05-23,Nelson,Kentucky,21179,35,0 +2020-05-24,Nelson,Kentucky,21179,35,0 +2020-05-25,Nelson,Kentucky,21179,35,0 +2020-05-26,Nelson,Kentucky,21179,36,0 +2020-05-27,Nelson,Kentucky,21179,38,0 +2020-05-28,Nelson,Kentucky,21179,38,0 +2020-05-29,Nelson,Kentucky,21179,41,0 +2020-05-30,Nelson,Kentucky,21179,41,1 +2020-05-31,Nelson,Kentucky,21179,41,1 +2020-06-01,Nelson,Kentucky,21179,41,1 +2020-06-02,Nelson,Kentucky,21179,42,1 +2020-06-03,Nelson,Kentucky,21179,44,1 +2020-06-04,Nelson,Kentucky,21179,44,1 +2020-06-05,Nelson,Kentucky,21179,44,1 +2020-06-06,Nelson,Kentucky,21179,45,1 +2020-06-07,Nelson,Kentucky,21179,45,1 +2020-06-08,Nelson,Kentucky,21179,45,1 +2020-06-09,Nelson,Kentucky,21179,45,1 +2020-06-10,Nelson,Kentucky,21179,47,1 +2020-06-11,Nelson,Kentucky,21179,47,1 +2020-06-12,Nelson,Kentucky,21179,47,1 +2020-06-13,Nelson,Kentucky,21179,48,1 +2020-06-14,Nelson,Kentucky,21179,48,1 +2020-06-15,Nelson,Kentucky,21179,48,1 +2020-06-16,Nelson,Kentucky,21179,48,1 +2020-06-17,Nelson,Kentucky,21179,49,1 +2020-06-18,Nelson,Kentucky,21179,50,1 +2020-06-19,Nelson,Kentucky,21179,50,1 +2020-06-20,Nelson,Kentucky,21179,53,1 +2020-06-21,Nelson,Kentucky,21179,53,1 +2020-06-22,Nelson,Kentucky,21179,54,1 +2020-06-23,Nelson,Kentucky,21179,60,1 +2020-06-24,Nelson,Kentucky,21179,65,1 +2020-06-25,Nelson,Kentucky,21179,67,1 +2020-06-26,Nelson,Kentucky,21179,67,1 +2020-06-27,Nelson,Kentucky,21179,69,1 +2020-06-28,Nelson,Kentucky,21179,69,1 +2020-06-29,Nelson,Kentucky,21179,70,1 +2020-06-30,Nelson,Kentucky,21179,74,1 +2020-07-01,Nelson,Kentucky,21179,76,1 +2020-07-02,Nelson,Kentucky,21179,77,1 +2020-07-03,Nelson,Kentucky,21179,81,1 +2020-07-04,Nelson,Kentucky,21179,81,1 +2020-07-05,Nelson,Kentucky,21179,81,1 +2020-07-06,Nelson,Kentucky,21179,90,2 +2020-07-07,Nelson,Kentucky,21179,93,2 +2020-07-08,Nelson,Kentucky,21179,97,2 +2020-07-09,Nelson,Kentucky,21179,105,2 +2020-03-28,Nicholas,Kentucky,21181,1,0 +2020-03-29,Nicholas,Kentucky,21181,1,0 +2020-03-30,Nicholas,Kentucky,21181,1,0 +2020-03-31,Nicholas,Kentucky,21181,1,0 +2020-04-01,Nicholas,Kentucky,21181,1,0 +2020-04-02,Nicholas,Kentucky,21181,1,0 +2020-04-03,Nicholas,Kentucky,21181,1,0 +2020-04-04,Nicholas,Kentucky,21181,1,0 +2020-04-05,Nicholas,Kentucky,21181,1,0 +2020-04-06,Nicholas,Kentucky,21181,1,0 +2020-04-07,Nicholas,Kentucky,21181,1,0 +2020-04-08,Nicholas,Kentucky,21181,1,0 +2020-04-09,Nicholas,Kentucky,21181,1,0 +2020-04-10,Nicholas,Kentucky,21181,1,0 +2020-04-11,Nicholas,Kentucky,21181,1,0 +2020-04-12,Nicholas,Kentucky,21181,1,0 +2020-04-13,Nicholas,Kentucky,21181,1,0 +2020-04-14,Nicholas,Kentucky,21181,1,0 +2020-04-15,Nicholas,Kentucky,21181,1,0 +2020-04-16,Nicholas,Kentucky,21181,1,0 +2020-04-17,Nicholas,Kentucky,21181,1,0 +2020-04-18,Nicholas,Kentucky,21181,1,0 +2020-04-19,Nicholas,Kentucky,21181,1,0 +2020-04-20,Nicholas,Kentucky,21181,1,0 +2020-04-21,Nicholas,Kentucky,21181,1,0 +2020-04-22,Nicholas,Kentucky,21181,1,0 +2020-04-23,Nicholas,Kentucky,21181,1,0 +2020-04-24,Nicholas,Kentucky,21181,1,0 +2020-04-25,Nicholas,Kentucky,21181,1,0 +2020-04-26,Nicholas,Kentucky,21181,1,0 +2020-04-27,Nicholas,Kentucky,21181,1,0 +2020-04-28,Nicholas,Kentucky,21181,1,0 +2020-04-29,Nicholas,Kentucky,21181,1,0 +2020-04-30,Nicholas,Kentucky,21181,1,0 +2020-05-01,Nicholas,Kentucky,21181,1,0 +2020-05-02,Nicholas,Kentucky,21181,1,0 +2020-05-03,Nicholas,Kentucky,21181,1,0 +2020-05-04,Nicholas,Kentucky,21181,1,0 +2020-05-05,Nicholas,Kentucky,21181,1,0 +2020-05-06,Nicholas,Kentucky,21181,1,0 +2020-05-07,Nicholas,Kentucky,21181,1,0 +2020-05-08,Nicholas,Kentucky,21181,1,0 +2020-05-09,Nicholas,Kentucky,21181,1,0 +2020-05-10,Nicholas,Kentucky,21181,1,0 +2020-05-11,Nicholas,Kentucky,21181,1,0 +2020-05-12,Nicholas,Kentucky,21181,1,0 +2020-05-13,Nicholas,Kentucky,21181,1,0 +2020-05-14,Nicholas,Kentucky,21181,1,0 +2020-05-15,Nicholas,Kentucky,21181,1,0 +2020-05-16,Nicholas,Kentucky,21181,1,0 +2020-05-17,Nicholas,Kentucky,21181,1,0 +2020-05-18,Nicholas,Kentucky,21181,1,0 +2020-05-19,Nicholas,Kentucky,21181,1,0 +2020-05-20,Nicholas,Kentucky,21181,1,0 +2020-05-21,Nicholas,Kentucky,21181,1,0 +2020-05-22,Nicholas,Kentucky,21181,1,0 +2020-05-23,Nicholas,Kentucky,21181,1,0 +2020-05-24,Nicholas,Kentucky,21181,1,0 +2020-05-25,Nicholas,Kentucky,21181,1,0 +2020-05-26,Nicholas,Kentucky,21181,1,0 +2020-05-27,Nicholas,Kentucky,21181,3,0 +2020-05-28,Nicholas,Kentucky,21181,3,0 +2020-05-29,Nicholas,Kentucky,21181,3,0 +2020-05-30,Nicholas,Kentucky,21181,3,0 +2020-05-31,Nicholas,Kentucky,21181,3,0 +2020-06-01,Nicholas,Kentucky,21181,3,0 +2020-06-02,Nicholas,Kentucky,21181,3,0 +2020-06-03,Nicholas,Kentucky,21181,3,0 +2020-06-04,Nicholas,Kentucky,21181,3,0 +2020-06-05,Nicholas,Kentucky,21181,4,0 +2020-06-06,Nicholas,Kentucky,21181,4,0 +2020-06-07,Nicholas,Kentucky,21181,4,0 +2020-06-08,Nicholas,Kentucky,21181,4,0 +2020-06-09,Nicholas,Kentucky,21181,4,0 +2020-06-10,Nicholas,Kentucky,21181,4,0 +2020-06-11,Nicholas,Kentucky,21181,4,0 +2020-06-12,Nicholas,Kentucky,21181,4,0 +2020-06-13,Nicholas,Kentucky,21181,4,0 +2020-06-14,Nicholas,Kentucky,21181,4,0 +2020-06-15,Nicholas,Kentucky,21181,4,0 +2020-06-16,Nicholas,Kentucky,21181,4,0 +2020-06-17,Nicholas,Kentucky,21181,4,0 +2020-06-18,Nicholas,Kentucky,21181,4,0 +2020-06-19,Nicholas,Kentucky,21181,5,0 +2020-06-20,Nicholas,Kentucky,21181,5,0 +2020-06-21,Nicholas,Kentucky,21181,5,0 +2020-06-22,Nicholas,Kentucky,21181,5,0 +2020-06-23,Nicholas,Kentucky,21181,5,0 +2020-06-24,Nicholas,Kentucky,21181,5,0 +2020-06-25,Nicholas,Kentucky,21181,5,0 +2020-06-26,Nicholas,Kentucky,21181,5,0 +2020-06-27,Nicholas,Kentucky,21181,5,0 +2020-06-28,Nicholas,Kentucky,21181,5,0 +2020-06-29,Nicholas,Kentucky,21181,5,0 +2020-06-30,Nicholas,Kentucky,21181,5,0 +2020-07-01,Nicholas,Kentucky,21181,5,0 +2020-07-02,Nicholas,Kentucky,21181,6,0 +2020-07-03,Nicholas,Kentucky,21181,8,0 +2020-07-04,Nicholas,Kentucky,21181,8,0 +2020-07-05,Nicholas,Kentucky,21181,8,0 +2020-07-06,Nicholas,Kentucky,21181,9,0 +2020-07-07,Nicholas,Kentucky,21181,9,0 +2020-07-08,Nicholas,Kentucky,21181,11,0 +2020-07-09,Nicholas,Kentucky,21181,11,0 +2020-04-04,Ohio,Kentucky,21183,1,0 +2020-04-05,Ohio,Kentucky,21183,5,0 +2020-04-06,Ohio,Kentucky,21183,5,0 +2020-04-07,Ohio,Kentucky,21183,6,0 +2020-04-08,Ohio,Kentucky,21183,6,0 +2020-04-09,Ohio,Kentucky,21183,7,0 +2020-04-10,Ohio,Kentucky,21183,8,0 +2020-04-11,Ohio,Kentucky,21183,8,0 +2020-04-12,Ohio,Kentucky,21183,8,0 +2020-04-13,Ohio,Kentucky,21183,8,0 +2020-04-14,Ohio,Kentucky,21183,11,0 +2020-04-15,Ohio,Kentucky,21183,11,0 +2020-04-16,Ohio,Kentucky,21183,11,0 +2020-04-17,Ohio,Kentucky,21183,11,0 +2020-04-18,Ohio,Kentucky,21183,13,0 +2020-04-19,Ohio,Kentucky,21183,17,0 +2020-04-20,Ohio,Kentucky,21183,17,0 +2020-04-21,Ohio,Kentucky,21183,18,0 +2020-04-22,Ohio,Kentucky,21183,25,0 +2020-04-23,Ohio,Kentucky,21183,26,0 +2020-04-24,Ohio,Kentucky,21183,34,0 +2020-04-25,Ohio,Kentucky,21183,38,0 +2020-04-26,Ohio,Kentucky,21183,40,0 +2020-04-27,Ohio,Kentucky,21183,40,0 +2020-04-28,Ohio,Kentucky,21183,41,0 +2020-04-29,Ohio,Kentucky,21183,41,0 +2020-04-30,Ohio,Kentucky,21183,41,0 +2020-05-01,Ohio,Kentucky,21183,49,0 +2020-05-02,Ohio,Kentucky,21183,49,0 +2020-05-03,Ohio,Kentucky,21183,51,0 +2020-05-04,Ohio,Kentucky,21183,67,0 +2020-05-05,Ohio,Kentucky,21183,74,0 +2020-05-06,Ohio,Kentucky,21183,75,0 +2020-05-07,Ohio,Kentucky,21183,81,0 +2020-05-08,Ohio,Kentucky,21183,85,0 +2020-05-09,Ohio,Kentucky,21183,95,0 +2020-05-10,Ohio,Kentucky,21183,102,0 +2020-05-11,Ohio,Kentucky,21183,105,0 +2020-05-12,Ohio,Kentucky,21183,109,0 +2020-05-13,Ohio,Kentucky,21183,110,0 +2020-05-14,Ohio,Kentucky,21183,118,0 +2020-05-15,Ohio,Kentucky,21183,128,0 +2020-05-16,Ohio,Kentucky,21183,128,0 +2020-05-17,Ohio,Kentucky,21183,128,0 +2020-05-18,Ohio,Kentucky,21183,128,0 +2020-05-19,Ohio,Kentucky,21183,140,0 +2020-05-20,Ohio,Kentucky,21183,141,0 +2020-05-21,Ohio,Kentucky,21183,144,0 +2020-05-22,Ohio,Kentucky,21183,145,0 +2020-05-23,Ohio,Kentucky,21183,145,0 +2020-05-24,Ohio,Kentucky,21183,149,0 +2020-05-25,Ohio,Kentucky,21183,149,0 +2020-05-26,Ohio,Kentucky,21183,150,0 +2020-05-27,Ohio,Kentucky,21183,165,0 +2020-05-28,Ohio,Kentucky,21183,167,0 +2020-05-29,Ohio,Kentucky,21183,167,0 +2020-05-30,Ohio,Kentucky,21183,168,0 +2020-05-31,Ohio,Kentucky,21183,168,0 +2020-06-01,Ohio,Kentucky,21183,168,0 +2020-06-02,Ohio,Kentucky,21183,170,0 +2020-06-03,Ohio,Kentucky,21183,171,0 +2020-06-04,Ohio,Kentucky,21183,174,0 +2020-06-05,Ohio,Kentucky,21183,176,0 +2020-06-06,Ohio,Kentucky,21183,180,0 +2020-06-07,Ohio,Kentucky,21183,180,0 +2020-06-08,Ohio,Kentucky,21183,180,0 +2020-06-09,Ohio,Kentucky,21183,180,0 +2020-06-10,Ohio,Kentucky,21183,181,0 +2020-06-11,Ohio,Kentucky,21183,183,0 +2020-06-12,Ohio,Kentucky,21183,185,0 +2020-06-13,Ohio,Kentucky,21183,185,0 +2020-06-14,Ohio,Kentucky,21183,185,0 +2020-06-15,Ohio,Kentucky,21183,185,0 +2020-06-16,Ohio,Kentucky,21183,188,0 +2020-06-17,Ohio,Kentucky,21183,188,0 +2020-06-18,Ohio,Kentucky,21183,190,0 +2020-06-19,Ohio,Kentucky,21183,190,0 +2020-06-20,Ohio,Kentucky,21183,190,0 +2020-06-21,Ohio,Kentucky,21183,191,0 +2020-06-22,Ohio,Kentucky,21183,191,0 +2020-06-23,Ohio,Kentucky,21183,191,0 +2020-06-24,Ohio,Kentucky,21183,192,0 +2020-06-25,Ohio,Kentucky,21183,193,0 +2020-06-26,Ohio,Kentucky,21183,194,0 +2020-06-27,Ohio,Kentucky,21183,197,0 +2020-06-28,Ohio,Kentucky,21183,197,0 +2020-06-29,Ohio,Kentucky,21183,204,0 +2020-06-30,Ohio,Kentucky,21183,204,0 +2020-07-01,Ohio,Kentucky,21183,205,0 +2020-07-02,Ohio,Kentucky,21183,207,0 +2020-07-03,Ohio,Kentucky,21183,208,0 +2020-07-04,Ohio,Kentucky,21183,208,0 +2020-07-05,Ohio,Kentucky,21183,208,0 +2020-07-06,Ohio,Kentucky,21183,219,0 +2020-07-07,Ohio,Kentucky,21183,220,0 +2020-07-08,Ohio,Kentucky,21183,220,0 +2020-07-09,Ohio,Kentucky,21183,224,0 +2020-03-22,Oldham,Kentucky,21185,1,0 +2020-03-23,Oldham,Kentucky,21185,1,0 +2020-03-24,Oldham,Kentucky,21185,1,0 +2020-03-25,Oldham,Kentucky,21185,2,0 +2020-03-26,Oldham,Kentucky,21185,2,0 +2020-03-27,Oldham,Kentucky,21185,3,0 +2020-03-28,Oldham,Kentucky,21185,3,0 +2020-03-29,Oldham,Kentucky,21185,3,0 +2020-03-30,Oldham,Kentucky,21185,3,0 +2020-03-31,Oldham,Kentucky,21185,3,0 +2020-04-01,Oldham,Kentucky,21185,4,0 +2020-04-02,Oldham,Kentucky,21185,4,0 +2020-04-03,Oldham,Kentucky,21185,4,0 +2020-04-04,Oldham,Kentucky,21185,4,0 +2020-04-05,Oldham,Kentucky,21185,6,0 +2020-04-06,Oldham,Kentucky,21185,6,0 +2020-04-07,Oldham,Kentucky,21185,9,0 +2020-04-08,Oldham,Kentucky,21185,11,0 +2020-04-09,Oldham,Kentucky,21185,11,0 +2020-04-10,Oldham,Kentucky,21185,13,0 +2020-04-11,Oldham,Kentucky,21185,16,0 +2020-04-12,Oldham,Kentucky,21185,16,0 +2020-04-13,Oldham,Kentucky,21185,18,0 +2020-04-14,Oldham,Kentucky,21185,19,0 +2020-04-15,Oldham,Kentucky,21185,21,0 +2020-04-16,Oldham,Kentucky,21185,22,0 +2020-04-17,Oldham,Kentucky,21185,23,0 +2020-04-18,Oldham,Kentucky,21185,23,0 +2020-04-19,Oldham,Kentucky,21185,22,0 +2020-04-20,Oldham,Kentucky,21185,22,0 +2020-04-21,Oldham,Kentucky,21185,24,0 +2020-04-22,Oldham,Kentucky,21185,24,0 +2020-04-23,Oldham,Kentucky,21185,24,0 +2020-04-24,Oldham,Kentucky,21185,24,0 +2020-04-25,Oldham,Kentucky,21185,24,0 +2020-04-26,Oldham,Kentucky,21185,27,0 +2020-04-27,Oldham,Kentucky,21185,27,0 +2020-04-28,Oldham,Kentucky,21185,28,0 +2020-04-29,Oldham,Kentucky,21185,29,0 +2020-04-30,Oldham,Kentucky,21185,29,0 +2020-05-01,Oldham,Kentucky,21185,32,0 +2020-05-02,Oldham,Kentucky,21185,32,0 +2020-05-03,Oldham,Kentucky,21185,33,0 +2020-05-04,Oldham,Kentucky,21185,33,0 +2020-05-05,Oldham,Kentucky,21185,36,0 +2020-05-06,Oldham,Kentucky,21185,35,0 +2020-05-07,Oldham,Kentucky,21185,36,0 +2020-05-08,Oldham,Kentucky,21185,37,0 +2020-05-09,Oldham,Kentucky,21185,38,0 +2020-05-10,Oldham,Kentucky,21185,38,0 +2020-05-11,Oldham,Kentucky,21185,37,0 +2020-05-12,Oldham,Kentucky,21185,41,0 +2020-05-13,Oldham,Kentucky,21185,41,0 +2020-05-14,Oldham,Kentucky,21185,50,0 +2020-05-15,Oldham,Kentucky,21185,50,0 +2020-05-16,Oldham,Kentucky,21185,55,0 +2020-05-17,Oldham,Kentucky,21185,55,0 +2020-05-18,Oldham,Kentucky,21185,55,0 +2020-05-19,Oldham,Kentucky,21185,57,0 +2020-05-20,Oldham,Kentucky,21185,59,1 +2020-05-21,Oldham,Kentucky,21185,60,3 +2020-05-22,Oldham,Kentucky,21185,60,3 +2020-05-23,Oldham,Kentucky,21185,60,3 +2020-05-24,Oldham,Kentucky,21185,60,3 +2020-05-25,Oldham,Kentucky,21185,60,3 +2020-05-26,Oldham,Kentucky,21185,65,3 +2020-05-27,Oldham,Kentucky,21185,70,4 +2020-05-28,Oldham,Kentucky,21185,72,4 +2020-05-29,Oldham,Kentucky,21185,74,5 +2020-05-30,Oldham,Kentucky,21185,83,5 +2020-05-31,Oldham,Kentucky,21185,83,5 +2020-06-01,Oldham,Kentucky,21185,99,5 +2020-06-02,Oldham,Kentucky,21185,100,5 +2020-06-03,Oldham,Kentucky,21185,103,5 +2020-06-04,Oldham,Kentucky,21185,105,5 +2020-06-05,Oldham,Kentucky,21185,109,5 +2020-06-06,Oldham,Kentucky,21185,109,5 +2020-06-07,Oldham,Kentucky,21185,109,5 +2020-06-08,Oldham,Kentucky,21185,111,5 +2020-06-09,Oldham,Kentucky,21185,112,5 +2020-06-10,Oldham,Kentucky,21185,113,5 +2020-06-11,Oldham,Kentucky,21185,113,5 +2020-06-12,Oldham,Kentucky,21185,112,5 +2020-06-13,Oldham,Kentucky,21185,113,6 +2020-06-14,Oldham,Kentucky,21185,113,6 +2020-06-15,Oldham,Kentucky,21185,113,6 +2020-06-16,Oldham,Kentucky,21185,113,6 +2020-06-17,Oldham,Kentucky,21185,114,6 +2020-06-18,Oldham,Kentucky,21185,114,6 +2020-06-19,Oldham,Kentucky,21185,116,6 +2020-06-20,Oldham,Kentucky,21185,116,6 +2020-06-21,Oldham,Kentucky,21185,117,6 +2020-06-22,Oldham,Kentucky,21185,117,6 +2020-06-23,Oldham,Kentucky,21185,119,6 +2020-06-24,Oldham,Kentucky,21185,126,6 +2020-06-25,Oldham,Kentucky,21185,126,6 +2020-06-26,Oldham,Kentucky,21185,129,6 +2020-06-27,Oldham,Kentucky,21185,129,6 +2020-06-28,Oldham,Kentucky,21185,129,6 +2020-06-29,Oldham,Kentucky,21185,129,6 +2020-06-30,Oldham,Kentucky,21185,130,6 +2020-07-01,Oldham,Kentucky,21185,130,7 +2020-07-02,Oldham,Kentucky,21185,131,7 +2020-07-03,Oldham,Kentucky,21185,139,7 +2020-07-04,Oldham,Kentucky,21185,139,7 +2020-07-05,Oldham,Kentucky,21185,139,7 +2020-07-06,Oldham,Kentucky,21185,144,7 +2020-07-07,Oldham,Kentucky,21185,149,7 +2020-07-08,Oldham,Kentucky,21185,153,7 +2020-07-09,Oldham,Kentucky,21185,159,7 +2020-04-28,Owen,Kentucky,21187,1,0 +2020-04-29,Owen,Kentucky,21187,1,0 +2020-04-30,Owen,Kentucky,21187,1,0 +2020-05-01,Owen,Kentucky,21187,1,0 +2020-05-02,Owen,Kentucky,21187,1,0 +2020-05-03,Owen,Kentucky,21187,1,0 +2020-05-04,Owen,Kentucky,21187,1,0 +2020-05-05,Owen,Kentucky,21187,1,0 +2020-05-06,Owen,Kentucky,21187,1,0 +2020-05-07,Owen,Kentucky,21187,1,0 +2020-05-08,Owen,Kentucky,21187,1,0 +2020-05-09,Owen,Kentucky,21187,1,0 +2020-05-10,Owen,Kentucky,21187,1,0 +2020-05-11,Owen,Kentucky,21187,1,0 +2020-05-12,Owen,Kentucky,21187,1,0 +2020-05-13,Owen,Kentucky,21187,1,0 +2020-05-14,Owen,Kentucky,21187,1,0 +2020-05-15,Owen,Kentucky,21187,1,0 +2020-05-16,Owen,Kentucky,21187,1,0 +2020-05-17,Owen,Kentucky,21187,1,0 +2020-05-18,Owen,Kentucky,21187,2,0 +2020-05-19,Owen,Kentucky,21187,1,0 +2020-05-20,Owen,Kentucky,21187,1,0 +2020-05-21,Owen,Kentucky,21187,1,0 +2020-05-22,Owen,Kentucky,21187,1,0 +2020-05-23,Owen,Kentucky,21187,1,0 +2020-05-24,Owen,Kentucky,21187,1,0 +2020-05-25,Owen,Kentucky,21187,1,0 +2020-05-26,Owen,Kentucky,21187,1,0 +2020-05-27,Owen,Kentucky,21187,1,0 +2020-05-28,Owen,Kentucky,21187,2,0 +2020-05-29,Owen,Kentucky,21187,2,0 +2020-05-30,Owen,Kentucky,21187,2,0 +2020-05-31,Owen,Kentucky,21187,2,0 +2020-06-01,Owen,Kentucky,21187,3,0 +2020-06-02,Owen,Kentucky,21187,3,0 +2020-06-03,Owen,Kentucky,21187,3,0 +2020-06-04,Owen,Kentucky,21187,3,0 +2020-06-05,Owen,Kentucky,21187,3,0 +2020-06-06,Owen,Kentucky,21187,3,0 +2020-06-07,Owen,Kentucky,21187,3,0 +2020-06-08,Owen,Kentucky,21187,3,0 +2020-06-09,Owen,Kentucky,21187,4,0 +2020-06-10,Owen,Kentucky,21187,4,0 +2020-06-11,Owen,Kentucky,21187,4,0 +2020-06-12,Owen,Kentucky,21187,4,0 +2020-06-13,Owen,Kentucky,21187,4,0 +2020-06-14,Owen,Kentucky,21187,4,0 +2020-06-15,Owen,Kentucky,21187,4,0 +2020-06-16,Owen,Kentucky,21187,4,0 +2020-06-17,Owen,Kentucky,21187,5,0 +2020-06-18,Owen,Kentucky,21187,5,0 +2020-06-19,Owen,Kentucky,21187,5,0 +2020-06-20,Owen,Kentucky,21187,5,0 +2020-06-21,Owen,Kentucky,21187,5,0 +2020-06-22,Owen,Kentucky,21187,5,0 +2020-06-23,Owen,Kentucky,21187,6,0 +2020-06-24,Owen,Kentucky,21187,6,0 +2020-06-25,Owen,Kentucky,21187,6,0 +2020-06-26,Owen,Kentucky,21187,6,0 +2020-06-27,Owen,Kentucky,21187,6,0 +2020-06-28,Owen,Kentucky,21187,6,0 +2020-06-29,Owen,Kentucky,21187,6,0 +2020-06-30,Owen,Kentucky,21187,6,0 +2020-07-01,Owen,Kentucky,21187,6,0 +2020-07-02,Owen,Kentucky,21187,6,0 +2020-07-03,Owen,Kentucky,21187,7,0 +2020-07-04,Owen,Kentucky,21187,7,0 +2020-07-05,Owen,Kentucky,21187,7,0 +2020-07-06,Owen,Kentucky,21187,8,0 +2020-07-07,Owen,Kentucky,21187,9,0 +2020-07-08,Owen,Kentucky,21187,10,0 +2020-07-09,Owen,Kentucky,21187,10,0 +2020-04-12,Owsley,Kentucky,21189,2,0 +2020-04-13,Owsley,Kentucky,21189,2,0 +2020-04-14,Owsley,Kentucky,21189,2,0 +2020-04-15,Owsley,Kentucky,21189,2,0 +2020-04-16,Owsley,Kentucky,21189,2,0 +2020-04-17,Owsley,Kentucky,21189,2,0 +2020-04-18,Owsley,Kentucky,21189,2,0 +2020-04-19,Owsley,Kentucky,21189,2,0 +2020-04-20,Owsley,Kentucky,21189,2,0 +2020-04-21,Owsley,Kentucky,21189,2,0 +2020-04-22,Owsley,Kentucky,21189,2,0 +2020-04-23,Owsley,Kentucky,21189,2,0 +2020-04-24,Owsley,Kentucky,21189,3,0 +2020-04-25,Owsley,Kentucky,21189,3,0 +2020-04-26,Owsley,Kentucky,21189,3,0 +2020-04-27,Owsley,Kentucky,21189,3,0 +2020-04-28,Owsley,Kentucky,21189,2,0 +2020-04-29,Owsley,Kentucky,21189,2,0 +2020-04-30,Owsley,Kentucky,21189,2,0 +2020-05-01,Owsley,Kentucky,21189,2,0 +2020-05-02,Owsley,Kentucky,21189,2,0 +2020-05-03,Owsley,Kentucky,21189,2,0 +2020-05-04,Owsley,Kentucky,21189,2,0 +2020-05-05,Owsley,Kentucky,21189,2,0 +2020-05-06,Owsley,Kentucky,21189,2,0 +2020-05-07,Owsley,Kentucky,21189,2,0 +2020-05-08,Owsley,Kentucky,21189,2,0 +2020-05-09,Owsley,Kentucky,21189,2,0 +2020-05-10,Owsley,Kentucky,21189,2,0 +2020-05-11,Owsley,Kentucky,21189,2,0 +2020-05-12,Owsley,Kentucky,21189,2,0 +2020-05-13,Owsley,Kentucky,21189,2,0 +2020-05-14,Owsley,Kentucky,21189,2,0 +2020-05-15,Owsley,Kentucky,21189,2,0 +2020-05-16,Owsley,Kentucky,21189,2,0 +2020-05-17,Owsley,Kentucky,21189,2,0 +2020-05-18,Owsley,Kentucky,21189,2,0 +2020-05-19,Owsley,Kentucky,21189,2,0 +2020-05-20,Owsley,Kentucky,21189,2,0 +2020-05-21,Owsley,Kentucky,21189,2,0 +2020-05-22,Owsley,Kentucky,21189,2,0 +2020-05-23,Owsley,Kentucky,21189,2,0 +2020-05-24,Owsley,Kentucky,21189,2,0 +2020-05-25,Owsley,Kentucky,21189,2,0 +2020-05-26,Owsley,Kentucky,21189,2,0 +2020-05-27,Owsley,Kentucky,21189,2,0 +2020-05-28,Owsley,Kentucky,21189,2,0 +2020-05-29,Owsley,Kentucky,21189,2,0 +2020-05-30,Owsley,Kentucky,21189,2,0 +2020-05-31,Owsley,Kentucky,21189,2,0 +2020-06-01,Owsley,Kentucky,21189,2,0 +2020-06-02,Owsley,Kentucky,21189,2,0 +2020-06-03,Owsley,Kentucky,21189,2,0 +2020-06-04,Owsley,Kentucky,21189,2,0 +2020-06-05,Owsley,Kentucky,21189,2,0 +2020-06-06,Owsley,Kentucky,21189,2,0 +2020-06-07,Owsley,Kentucky,21189,2,0 +2020-06-08,Owsley,Kentucky,21189,2,0 +2020-06-09,Owsley,Kentucky,21189,2,0 +2020-06-10,Owsley,Kentucky,21189,2,0 +2020-06-11,Owsley,Kentucky,21189,2,0 +2020-06-12,Owsley,Kentucky,21189,2,0 +2020-06-13,Owsley,Kentucky,21189,2,0 +2020-06-14,Owsley,Kentucky,21189,2,0 +2020-06-15,Owsley,Kentucky,21189,2,0 +2020-06-16,Owsley,Kentucky,21189,2,0 +2020-06-17,Owsley,Kentucky,21189,2,0 +2020-06-18,Owsley,Kentucky,21189,2,0 +2020-06-19,Owsley,Kentucky,21189,2,0 +2020-06-20,Owsley,Kentucky,21189,2,0 +2020-06-21,Owsley,Kentucky,21189,2,0 +2020-06-22,Owsley,Kentucky,21189,2,0 +2020-06-23,Owsley,Kentucky,21189,2,0 +2020-06-24,Owsley,Kentucky,21189,2,0 +2020-06-25,Owsley,Kentucky,21189,2,0 +2020-06-26,Owsley,Kentucky,21189,2,0 +2020-06-27,Owsley,Kentucky,21189,2,0 +2020-06-28,Owsley,Kentucky,21189,2,0 +2020-06-29,Owsley,Kentucky,21189,2,0 +2020-06-30,Owsley,Kentucky,21189,2,0 +2020-07-01,Owsley,Kentucky,21189,2,0 +2020-07-02,Owsley,Kentucky,21189,3,0 +2020-07-03,Owsley,Kentucky,21189,3,0 +2020-07-04,Owsley,Kentucky,21189,3,0 +2020-07-05,Owsley,Kentucky,21189,3,0 +2020-07-06,Owsley,Kentucky,21189,3,0 +2020-07-07,Owsley,Kentucky,21189,3,0 +2020-07-08,Owsley,Kentucky,21189,3,0 +2020-07-09,Owsley,Kentucky,21189,3,0 +2020-04-02,Pendleton,Kentucky,21191,1,0 +2020-04-03,Pendleton,Kentucky,21191,1,0 +2020-04-04,Pendleton,Kentucky,21191,1,0 +2020-04-05,Pendleton,Kentucky,21191,2,0 +2020-04-06,Pendleton,Kentucky,21191,2,0 +2020-04-07,Pendleton,Kentucky,21191,2,0 +2020-04-08,Pendleton,Kentucky,21191,3,0 +2020-04-09,Pendleton,Kentucky,21191,3,0 +2020-04-10,Pendleton,Kentucky,21191,3,0 +2020-04-11,Pendleton,Kentucky,21191,3,0 +2020-04-12,Pendleton,Kentucky,21191,3,0 +2020-04-13,Pendleton,Kentucky,21191,3,0 +2020-04-14,Pendleton,Kentucky,21191,3,0 +2020-04-15,Pendleton,Kentucky,21191,3,0 +2020-04-16,Pendleton,Kentucky,21191,5,0 +2020-04-17,Pendleton,Kentucky,21191,5,0 +2020-04-18,Pendleton,Kentucky,21191,5,0 +2020-04-19,Pendleton,Kentucky,21191,5,0 +2020-04-20,Pendleton,Kentucky,21191,5,0 +2020-04-21,Pendleton,Kentucky,21191,5,0 +2020-04-22,Pendleton,Kentucky,21191,5,0 +2020-04-23,Pendleton,Kentucky,21191,5,0 +2020-04-24,Pendleton,Kentucky,21191,5,0 +2020-04-25,Pendleton,Kentucky,21191,5,0 +2020-04-26,Pendleton,Kentucky,21191,5,0 +2020-04-27,Pendleton,Kentucky,21191,6,0 +2020-04-28,Pendleton,Kentucky,21191,6,0 +2020-04-29,Pendleton,Kentucky,21191,6,0 +2020-04-30,Pendleton,Kentucky,21191,6,0 +2020-05-01,Pendleton,Kentucky,21191,6,0 +2020-05-02,Pendleton,Kentucky,21191,6,0 +2020-05-03,Pendleton,Kentucky,21191,6,0 +2020-05-04,Pendleton,Kentucky,21191,6,0 +2020-05-05,Pendleton,Kentucky,21191,6,0 +2020-05-06,Pendleton,Kentucky,21191,6,0 +2020-05-07,Pendleton,Kentucky,21191,6,0 +2020-05-08,Pendleton,Kentucky,21191,5,0 +2020-05-09,Pendleton,Kentucky,21191,5,0 +2020-05-10,Pendleton,Kentucky,21191,5,0 +2020-05-11,Pendleton,Kentucky,21191,6,0 +2020-05-12,Pendleton,Kentucky,21191,6,0 +2020-05-13,Pendleton,Kentucky,21191,6,0 +2020-05-14,Pendleton,Kentucky,21191,6,0 +2020-05-15,Pendleton,Kentucky,21191,6,0 +2020-05-16,Pendleton,Kentucky,21191,6,0 +2020-05-17,Pendleton,Kentucky,21191,6,0 +2020-05-18,Pendleton,Kentucky,21191,6,0 +2020-05-19,Pendleton,Kentucky,21191,6,0 +2020-05-20,Pendleton,Kentucky,21191,6,0 +2020-05-21,Pendleton,Kentucky,21191,7,0 +2020-05-22,Pendleton,Kentucky,21191,7,0 +2020-05-23,Pendleton,Kentucky,21191,7,0 +2020-05-24,Pendleton,Kentucky,21191,7,0 +2020-05-25,Pendleton,Kentucky,21191,7,0 +2020-05-26,Pendleton,Kentucky,21191,7,0 +2020-05-27,Pendleton,Kentucky,21191,8,0 +2020-05-28,Pendleton,Kentucky,21191,8,0 +2020-05-29,Pendleton,Kentucky,21191,8,0 +2020-05-30,Pendleton,Kentucky,21191,9,0 +2020-05-31,Pendleton,Kentucky,21191,9,0 +2020-06-01,Pendleton,Kentucky,21191,10,0 +2020-06-02,Pendleton,Kentucky,21191,11,0 +2020-06-03,Pendleton,Kentucky,21191,11,0 +2020-06-04,Pendleton,Kentucky,21191,11,0 +2020-06-05,Pendleton,Kentucky,21191,14,0 +2020-06-06,Pendleton,Kentucky,21191,14,0 +2020-06-07,Pendleton,Kentucky,21191,14,0 +2020-06-08,Pendleton,Kentucky,21191,14,0 +2020-06-09,Pendleton,Kentucky,21191,14,0 +2020-06-10,Pendleton,Kentucky,21191,14,0 +2020-06-11,Pendleton,Kentucky,21191,14,0 +2020-06-12,Pendleton,Kentucky,21191,14,0 +2020-06-13,Pendleton,Kentucky,21191,14,0 +2020-06-14,Pendleton,Kentucky,21191,14,0 +2020-06-15,Pendleton,Kentucky,21191,14,0 +2020-06-16,Pendleton,Kentucky,21191,14,0 +2020-06-17,Pendleton,Kentucky,21191,14,0 +2020-06-18,Pendleton,Kentucky,21191,14,0 +2020-06-19,Pendleton,Kentucky,21191,14,0 +2020-06-20,Pendleton,Kentucky,21191,14,0 +2020-06-21,Pendleton,Kentucky,21191,14,0 +2020-06-22,Pendleton,Kentucky,21191,14,0 +2020-06-23,Pendleton,Kentucky,21191,15,0 +2020-06-24,Pendleton,Kentucky,21191,15,0 +2020-06-25,Pendleton,Kentucky,21191,15,0 +2020-06-26,Pendleton,Kentucky,21191,15,0 +2020-06-27,Pendleton,Kentucky,21191,15,0 +2020-06-28,Pendleton,Kentucky,21191,16,0 +2020-06-29,Pendleton,Kentucky,21191,16,0 +2020-06-30,Pendleton,Kentucky,21191,17,0 +2020-07-01,Pendleton,Kentucky,21191,17,0 +2020-07-02,Pendleton,Kentucky,21191,17,0 +2020-07-03,Pendleton,Kentucky,21191,19,0 +2020-07-04,Pendleton,Kentucky,21191,19,0 +2020-07-05,Pendleton,Kentucky,21191,19,0 +2020-07-06,Pendleton,Kentucky,21191,20,0 +2020-07-07,Pendleton,Kentucky,21191,21,0 +2020-07-08,Pendleton,Kentucky,21191,21,0 +2020-07-09,Pendleton,Kentucky,21191,21,0 +2020-04-04,Perry,Kentucky,21193,2,0 +2020-04-05,Perry,Kentucky,21193,3,0 +2020-04-06,Perry,Kentucky,21193,3,0 +2020-04-07,Perry,Kentucky,21193,3,0 +2020-04-08,Perry,Kentucky,21193,3,0 +2020-04-09,Perry,Kentucky,21193,3,0 +2020-04-10,Perry,Kentucky,21193,3,0 +2020-04-11,Perry,Kentucky,21193,3,0 +2020-04-12,Perry,Kentucky,21193,3,0 +2020-04-13,Perry,Kentucky,21193,4,0 +2020-04-14,Perry,Kentucky,21193,4,0 +2020-04-15,Perry,Kentucky,21193,4,0 +2020-04-16,Perry,Kentucky,21193,4,0 +2020-04-17,Perry,Kentucky,21193,4,0 +2020-04-18,Perry,Kentucky,21193,4,0 +2020-04-19,Perry,Kentucky,21193,4,0 +2020-04-20,Perry,Kentucky,21193,4,0 +2020-04-21,Perry,Kentucky,21193,5,0 +2020-04-22,Perry,Kentucky,21193,5,0 +2020-04-23,Perry,Kentucky,21193,5,0 +2020-04-24,Perry,Kentucky,21193,5,0 +2020-04-25,Perry,Kentucky,21193,6,0 +2020-04-26,Perry,Kentucky,21193,6,0 +2020-04-27,Perry,Kentucky,21193,6,0 +2020-04-28,Perry,Kentucky,21193,6,0 +2020-04-29,Perry,Kentucky,21193,6,0 +2020-04-30,Perry,Kentucky,21193,12,0 +2020-05-01,Perry,Kentucky,21193,13,0 +2020-05-02,Perry,Kentucky,21193,13,0 +2020-05-03,Perry,Kentucky,21193,14,0 +2020-05-04,Perry,Kentucky,21193,14,0 +2020-05-05,Perry,Kentucky,21193,14,0 +2020-05-06,Perry,Kentucky,21193,14,0 +2020-05-07,Perry,Kentucky,21193,14,0 +2020-05-08,Perry,Kentucky,21193,14,0 +2020-05-09,Perry,Kentucky,21193,14,0 +2020-05-10,Perry,Kentucky,21193,14,0 +2020-05-11,Perry,Kentucky,21193,16,0 +2020-05-12,Perry,Kentucky,21193,16,0 +2020-05-13,Perry,Kentucky,21193,16,0 +2020-05-14,Perry,Kentucky,21193,18,0 +2020-05-15,Perry,Kentucky,21193,19,0 +2020-05-16,Perry,Kentucky,21193,19,0 +2020-05-17,Perry,Kentucky,21193,19,0 +2020-05-18,Perry,Kentucky,21193,20,0 +2020-05-19,Perry,Kentucky,21193,20,0 +2020-05-20,Perry,Kentucky,21193,19,0 +2020-05-21,Perry,Kentucky,21193,19,0 +2020-05-22,Perry,Kentucky,21193,19,0 +2020-05-23,Perry,Kentucky,21193,19,0 +2020-05-24,Perry,Kentucky,21193,19,0 +2020-05-25,Perry,Kentucky,21193,19,0 +2020-05-26,Perry,Kentucky,21193,19,0 +2020-05-27,Perry,Kentucky,21193,19,0 +2020-05-28,Perry,Kentucky,21193,19,0 +2020-05-29,Perry,Kentucky,21193,19,0 +2020-05-30,Perry,Kentucky,21193,19,0 +2020-05-31,Perry,Kentucky,21193,19,0 +2020-06-01,Perry,Kentucky,21193,19,0 +2020-06-02,Perry,Kentucky,21193,21,0 +2020-06-03,Perry,Kentucky,21193,22,0 +2020-06-04,Perry,Kentucky,21193,22,0 +2020-06-05,Perry,Kentucky,21193,22,0 +2020-06-06,Perry,Kentucky,21193,22,0 +2020-06-07,Perry,Kentucky,21193,22,0 +2020-06-08,Perry,Kentucky,21193,22,0 +2020-06-09,Perry,Kentucky,21193,22,0 +2020-06-10,Perry,Kentucky,21193,22,0 +2020-06-11,Perry,Kentucky,21193,22,0 +2020-06-12,Perry,Kentucky,21193,23,0 +2020-06-13,Perry,Kentucky,21193,23,0 +2020-06-14,Perry,Kentucky,21193,28,0 +2020-06-15,Perry,Kentucky,21193,28,0 +2020-06-16,Perry,Kentucky,21193,28,0 +2020-06-17,Perry,Kentucky,21193,28,0 +2020-06-18,Perry,Kentucky,21193,28,1 +2020-06-19,Perry,Kentucky,21193,38,1 +2020-06-20,Perry,Kentucky,21193,39,1 +2020-06-21,Perry,Kentucky,21193,41,1 +2020-06-22,Perry,Kentucky,21193,43,1 +2020-06-23,Perry,Kentucky,21193,49,1 +2020-06-24,Perry,Kentucky,21193,53,1 +2020-06-25,Perry,Kentucky,21193,55,1 +2020-06-26,Perry,Kentucky,21193,56,1 +2020-06-27,Perry,Kentucky,21193,57,1 +2020-06-28,Perry,Kentucky,21193,59,1 +2020-06-29,Perry,Kentucky,21193,59,1 +2020-06-30,Perry,Kentucky,21193,59,1 +2020-07-01,Perry,Kentucky,21193,59,1 +2020-07-02,Perry,Kentucky,21193,62,1 +2020-07-03,Perry,Kentucky,21193,62,1 +2020-07-04,Perry,Kentucky,21193,62,1 +2020-07-05,Perry,Kentucky,21193,62,1 +2020-07-06,Perry,Kentucky,21193,68,1 +2020-07-07,Perry,Kentucky,21193,69,1 +2020-07-08,Perry,Kentucky,21193,73,2 +2020-07-09,Perry,Kentucky,21193,74,2 +2020-04-05,Pike,Kentucky,21195,1,0 +2020-04-06,Pike,Kentucky,21195,1,0 +2020-04-07,Pike,Kentucky,21195,1,0 +2020-04-08,Pike,Kentucky,21195,1,0 +2020-04-09,Pike,Kentucky,21195,1,0 +2020-04-10,Pike,Kentucky,21195,1,0 +2020-04-11,Pike,Kentucky,21195,4,0 +2020-04-12,Pike,Kentucky,21195,4,1 +2020-04-13,Pike,Kentucky,21195,5,1 +2020-04-14,Pike,Kentucky,21195,5,1 +2020-04-15,Pike,Kentucky,21195,6,1 +2020-04-16,Pike,Kentucky,21195,6,1 +2020-04-17,Pike,Kentucky,21195,6,1 +2020-04-18,Pike,Kentucky,21195,6,2 +2020-04-19,Pike,Kentucky,21195,6,2 +2020-04-20,Pike,Kentucky,21195,6,2 +2020-04-21,Pike,Kentucky,21195,6,2 +2020-04-22,Pike,Kentucky,21195,6,2 +2020-04-23,Pike,Kentucky,21195,6,2 +2020-04-24,Pike,Kentucky,21195,8,2 +2020-04-25,Pike,Kentucky,21195,8,2 +2020-04-26,Pike,Kentucky,21195,9,2 +2020-04-27,Pike,Kentucky,21195,9,2 +2020-04-28,Pike,Kentucky,21195,11,2 +2020-04-29,Pike,Kentucky,21195,11,2 +2020-04-30,Pike,Kentucky,21195,11,2 +2020-05-01,Pike,Kentucky,21195,13,2 +2020-05-02,Pike,Kentucky,21195,13,2 +2020-05-03,Pike,Kentucky,21195,13,2 +2020-05-04,Pike,Kentucky,21195,13,2 +2020-05-05,Pike,Kentucky,21195,13,2 +2020-05-06,Pike,Kentucky,21195,14,2 +2020-05-07,Pike,Kentucky,21195,15,2 +2020-05-08,Pike,Kentucky,21195,15,2 +2020-05-09,Pike,Kentucky,21195,15,2 +2020-05-10,Pike,Kentucky,21195,15,2 +2020-05-11,Pike,Kentucky,21195,15,2 +2020-05-12,Pike,Kentucky,21195,18,2 +2020-05-13,Pike,Kentucky,21195,18,2 +2020-05-14,Pike,Kentucky,21195,22,2 +2020-05-15,Pike,Kentucky,21195,23,2 +2020-05-16,Pike,Kentucky,21195,28,2 +2020-05-17,Pike,Kentucky,21195,28,2 +2020-05-18,Pike,Kentucky,21195,28,2 +2020-05-19,Pike,Kentucky,21195,28,2 +2020-05-20,Pike,Kentucky,21195,28,2 +2020-05-21,Pike,Kentucky,21195,28,2 +2020-05-22,Pike,Kentucky,21195,28,2 +2020-05-23,Pike,Kentucky,21195,28,2 +2020-05-24,Pike,Kentucky,21195,28,2 +2020-05-25,Pike,Kentucky,21195,28,2 +2020-05-26,Pike,Kentucky,21195,28,2 +2020-05-27,Pike,Kentucky,21195,28,2 +2020-05-28,Pike,Kentucky,21195,28,2 +2020-05-29,Pike,Kentucky,21195,29,2 +2020-05-30,Pike,Kentucky,21195,29,2 +2020-05-31,Pike,Kentucky,21195,29,2 +2020-06-01,Pike,Kentucky,21195,30,2 +2020-06-02,Pike,Kentucky,21195,30,2 +2020-06-03,Pike,Kentucky,21195,30,2 +2020-06-04,Pike,Kentucky,21195,32,2 +2020-06-05,Pike,Kentucky,21195,34,2 +2020-06-06,Pike,Kentucky,21195,36,2 +2020-06-07,Pike,Kentucky,21195,36,2 +2020-06-08,Pike,Kentucky,21195,36,2 +2020-06-09,Pike,Kentucky,21195,38,2 +2020-06-10,Pike,Kentucky,21195,38,2 +2020-06-11,Pike,Kentucky,21195,38,2 +2020-06-12,Pike,Kentucky,21195,38,2 +2020-06-13,Pike,Kentucky,21195,47,2 +2020-06-14,Pike,Kentucky,21195,47,2 +2020-06-15,Pike,Kentucky,21195,48,2 +2020-06-16,Pike,Kentucky,21195,48,2 +2020-06-17,Pike,Kentucky,21195,53,2 +2020-06-18,Pike,Kentucky,21195,54,2 +2020-06-19,Pike,Kentucky,21195,59,2 +2020-06-20,Pike,Kentucky,21195,62,2 +2020-06-21,Pike,Kentucky,21195,63,2 +2020-06-22,Pike,Kentucky,21195,63,2 +2020-06-23,Pike,Kentucky,21195,68,2 +2020-06-24,Pike,Kentucky,21195,68,2 +2020-06-25,Pike,Kentucky,21195,68,2 +2020-06-26,Pike,Kentucky,21195,71,2 +2020-06-27,Pike,Kentucky,21195,71,2 +2020-06-28,Pike,Kentucky,21195,76,2 +2020-06-29,Pike,Kentucky,21195,76,2 +2020-06-30,Pike,Kentucky,21195,84,2 +2020-07-01,Pike,Kentucky,21195,86,2 +2020-07-02,Pike,Kentucky,21195,91,2 +2020-07-03,Pike,Kentucky,21195,99,2 +2020-07-04,Pike,Kentucky,21195,99,2 +2020-07-05,Pike,Kentucky,21195,99,2 +2020-07-06,Pike,Kentucky,21195,104,2 +2020-07-07,Pike,Kentucky,21195,107,2 +2020-07-08,Pike,Kentucky,21195,113,2 +2020-07-09,Pike,Kentucky,21195,115,3 +2020-03-31,Powell,Kentucky,21197,1,0 +2020-04-01,Powell,Kentucky,21197,1,0 +2020-04-02,Powell,Kentucky,21197,1,0 +2020-04-03,Powell,Kentucky,21197,1,0 +2020-04-04,Powell,Kentucky,21197,1,0 +2020-04-05,Powell,Kentucky,21197,1,0 +2020-04-06,Powell,Kentucky,21197,1,0 +2020-04-07,Powell,Kentucky,21197,1,0 +2020-04-08,Powell,Kentucky,21197,1,0 +2020-04-09,Powell,Kentucky,21197,1,0 +2020-04-10,Powell,Kentucky,21197,2,0 +2020-04-11,Powell,Kentucky,21197,2,0 +2020-04-12,Powell,Kentucky,21197,1,0 +2020-04-13,Powell,Kentucky,21197,1,0 +2020-04-14,Powell,Kentucky,21197,1,0 +2020-04-15,Powell,Kentucky,21197,1,0 +2020-04-16,Powell,Kentucky,21197,1,0 +2020-04-17,Powell,Kentucky,21197,1,0 +2020-04-18,Powell,Kentucky,21197,1,0 +2020-04-19,Powell,Kentucky,21197,1,0 +2020-04-20,Powell,Kentucky,21197,1,0 +2020-04-21,Powell,Kentucky,21197,1,0 +2020-04-22,Powell,Kentucky,21197,1,0 +2020-04-23,Powell,Kentucky,21197,1,0 +2020-04-24,Powell,Kentucky,21197,1,0 +2020-04-25,Powell,Kentucky,21197,1,0 +2020-04-26,Powell,Kentucky,21197,1,0 +2020-04-27,Powell,Kentucky,21197,1,0 +2020-04-28,Powell,Kentucky,21197,1,0 +2020-04-29,Powell,Kentucky,21197,1,0 +2020-04-30,Powell,Kentucky,21197,1,0 +2020-05-01,Powell,Kentucky,21197,1,0 +2020-05-02,Powell,Kentucky,21197,1,0 +2020-05-03,Powell,Kentucky,21197,1,0 +2020-05-04,Powell,Kentucky,21197,1,0 +2020-05-05,Powell,Kentucky,21197,1,0 +2020-05-06,Powell,Kentucky,21197,1,0 +2020-05-07,Powell,Kentucky,21197,1,0 +2020-05-08,Powell,Kentucky,21197,1,0 +2020-05-09,Powell,Kentucky,21197,1,0 +2020-05-10,Powell,Kentucky,21197,1,0 +2020-05-11,Powell,Kentucky,21197,1,0 +2020-05-12,Powell,Kentucky,21197,1,0 +2020-05-13,Powell,Kentucky,21197,1,0 +2020-05-14,Powell,Kentucky,21197,1,0 +2020-05-15,Powell,Kentucky,21197,1,0 +2020-05-16,Powell,Kentucky,21197,1,0 +2020-05-17,Powell,Kentucky,21197,1,0 +2020-05-18,Powell,Kentucky,21197,1,0 +2020-05-19,Powell,Kentucky,21197,1,0 +2020-05-20,Powell,Kentucky,21197,1,0 +2020-05-21,Powell,Kentucky,21197,1,0 +2020-05-22,Powell,Kentucky,21197,1,0 +2020-05-23,Powell,Kentucky,21197,1,0 +2020-05-24,Powell,Kentucky,21197,1,0 +2020-05-25,Powell,Kentucky,21197,1,0 +2020-05-26,Powell,Kentucky,21197,1,0 +2020-05-27,Powell,Kentucky,21197,1,0 +2020-05-28,Powell,Kentucky,21197,1,0 +2020-05-29,Powell,Kentucky,21197,1,0 +2020-05-30,Powell,Kentucky,21197,1,0 +2020-05-31,Powell,Kentucky,21197,1,0 +2020-06-01,Powell,Kentucky,21197,1,0 +2020-06-02,Powell,Kentucky,21197,1,0 +2020-06-03,Powell,Kentucky,21197,1,0 +2020-06-04,Powell,Kentucky,21197,1,0 +2020-06-05,Powell,Kentucky,21197,1,0 +2020-06-06,Powell,Kentucky,21197,1,0 +2020-06-07,Powell,Kentucky,21197,1,0 +2020-06-08,Powell,Kentucky,21197,1,0 +2020-06-09,Powell,Kentucky,21197,2,0 +2020-06-10,Powell,Kentucky,21197,3,0 +2020-06-11,Powell,Kentucky,21197,3,0 +2020-06-12,Powell,Kentucky,21197,4,0 +2020-06-13,Powell,Kentucky,21197,4,0 +2020-06-14,Powell,Kentucky,21197,4,0 +2020-06-15,Powell,Kentucky,21197,5,0 +2020-06-16,Powell,Kentucky,21197,5,0 +2020-06-17,Powell,Kentucky,21197,5,0 +2020-06-18,Powell,Kentucky,21197,5,0 +2020-06-19,Powell,Kentucky,21197,5,0 +2020-06-20,Powell,Kentucky,21197,5,0 +2020-06-21,Powell,Kentucky,21197,5,0 +2020-06-22,Powell,Kentucky,21197,5,0 +2020-06-23,Powell,Kentucky,21197,5,0 +2020-06-24,Powell,Kentucky,21197,5,0 +2020-06-25,Powell,Kentucky,21197,5,0 +2020-06-26,Powell,Kentucky,21197,6,0 +2020-06-27,Powell,Kentucky,21197,6,0 +2020-06-28,Powell,Kentucky,21197,6,0 +2020-06-29,Powell,Kentucky,21197,6,0 +2020-06-30,Powell,Kentucky,21197,6,0 +2020-07-01,Powell,Kentucky,21197,7,0 +2020-07-02,Powell,Kentucky,21197,7,0 +2020-07-03,Powell,Kentucky,21197,8,0 +2020-07-04,Powell,Kentucky,21197,8,0 +2020-07-05,Powell,Kentucky,21197,8,0 +2020-07-06,Powell,Kentucky,21197,8,0 +2020-07-07,Powell,Kentucky,21197,8,0 +2020-07-08,Powell,Kentucky,21197,8,0 +2020-07-09,Powell,Kentucky,21197,9,0 +2020-03-19,Pulaski,Kentucky,21199,1,0 +2020-03-20,Pulaski,Kentucky,21199,2,0 +2020-03-21,Pulaski,Kentucky,21199,2,0 +2020-03-22,Pulaski,Kentucky,21199,2,0 +2020-03-23,Pulaski,Kentucky,21199,3,0 +2020-03-24,Pulaski,Kentucky,21199,4,0 +2020-03-25,Pulaski,Kentucky,21199,4,0 +2020-03-26,Pulaski,Kentucky,21199,5,0 +2020-03-27,Pulaski,Kentucky,21199,7,0 +2020-03-28,Pulaski,Kentucky,21199,7,0 +2020-03-29,Pulaski,Kentucky,21199,7,0 +2020-03-30,Pulaski,Kentucky,21199,7,0 +2020-03-31,Pulaski,Kentucky,21199,8,0 +2020-04-01,Pulaski,Kentucky,21199,10,0 +2020-04-02,Pulaski,Kentucky,21199,11,1 +2020-04-03,Pulaski,Kentucky,21199,11,1 +2020-04-04,Pulaski,Kentucky,21199,11,1 +2020-04-05,Pulaski,Kentucky,21199,12,1 +2020-04-06,Pulaski,Kentucky,21199,12,1 +2020-04-07,Pulaski,Kentucky,21199,14,1 +2020-04-08,Pulaski,Kentucky,21199,26,1 +2020-04-09,Pulaski,Kentucky,21199,26,1 +2020-04-10,Pulaski,Kentucky,21199,32,1 +2020-04-11,Pulaski,Kentucky,21199,33,2 +2020-04-12,Pulaski,Kentucky,21199,31,2 +2020-04-13,Pulaski,Kentucky,21199,31,2 +2020-04-14,Pulaski,Kentucky,21199,31,2 +2020-04-15,Pulaski,Kentucky,21199,31,2 +2020-04-16,Pulaski,Kentucky,21199,33,2 +2020-04-17,Pulaski,Kentucky,21199,34,2 +2020-04-18,Pulaski,Kentucky,21199,35,2 +2020-04-19,Pulaski,Kentucky,21199,35,2 +2020-04-20,Pulaski,Kentucky,21199,35,2 +2020-04-21,Pulaski,Kentucky,21199,36,2 +2020-04-22,Pulaski,Kentucky,21199,38,2 +2020-04-23,Pulaski,Kentucky,21199,38,2 +2020-04-24,Pulaski,Kentucky,21199,39,2 +2020-04-25,Pulaski,Kentucky,21199,41,2 +2020-04-26,Pulaski,Kentucky,21199,41,2 +2020-04-27,Pulaski,Kentucky,21199,41,2 +2020-04-28,Pulaski,Kentucky,21199,43,2 +2020-04-29,Pulaski,Kentucky,21199,43,2 +2020-04-30,Pulaski,Kentucky,21199,43,2 +2020-05-01,Pulaski,Kentucky,21199,43,2 +2020-05-02,Pulaski,Kentucky,21199,43,2 +2020-05-03,Pulaski,Kentucky,21199,43,2 +2020-05-04,Pulaski,Kentucky,21199,43,2 +2020-05-05,Pulaski,Kentucky,21199,43,2 +2020-05-06,Pulaski,Kentucky,21199,43,2 +2020-05-07,Pulaski,Kentucky,21199,43,2 +2020-05-08,Pulaski,Kentucky,21199,43,2 +2020-05-09,Pulaski,Kentucky,21199,43,2 +2020-05-10,Pulaski,Kentucky,21199,43,2 +2020-05-11,Pulaski,Kentucky,21199,44,2 +2020-05-12,Pulaski,Kentucky,21199,45,2 +2020-05-13,Pulaski,Kentucky,21199,45,2 +2020-05-14,Pulaski,Kentucky,21199,47,2 +2020-05-15,Pulaski,Kentucky,21199,47,2 +2020-05-16,Pulaski,Kentucky,21199,49,2 +2020-05-17,Pulaski,Kentucky,21199,49,2 +2020-05-18,Pulaski,Kentucky,21199,50,2 +2020-05-19,Pulaski,Kentucky,21199,50,2 +2020-05-20,Pulaski,Kentucky,21199,50,2 +2020-05-21,Pulaski,Kentucky,21199,51,2 +2020-05-22,Pulaski,Kentucky,21199,53,2 +2020-05-23,Pulaski,Kentucky,21199,55,2 +2020-05-24,Pulaski,Kentucky,21199,55,2 +2020-05-25,Pulaski,Kentucky,21199,55,2 +2020-05-26,Pulaski,Kentucky,21199,54,2 +2020-05-27,Pulaski,Kentucky,21199,56,2 +2020-05-28,Pulaski,Kentucky,21199,56,2 +2020-05-29,Pulaski,Kentucky,21199,56,2 +2020-05-30,Pulaski,Kentucky,21199,58,2 +2020-05-31,Pulaski,Kentucky,21199,58,2 +2020-06-01,Pulaski,Kentucky,21199,58,2 +2020-06-02,Pulaski,Kentucky,21199,61,2 +2020-06-03,Pulaski,Kentucky,21199,61,2 +2020-06-04,Pulaski,Kentucky,21199,60,2 +2020-06-05,Pulaski,Kentucky,21199,64,2 +2020-06-06,Pulaski,Kentucky,21199,65,2 +2020-06-07,Pulaski,Kentucky,21199,65,2 +2020-06-08,Pulaski,Kentucky,21199,65,2 +2020-06-09,Pulaski,Kentucky,21199,65,2 +2020-06-10,Pulaski,Kentucky,21199,68,2 +2020-06-11,Pulaski,Kentucky,21199,68,2 +2020-06-12,Pulaski,Kentucky,21199,71,2 +2020-06-13,Pulaski,Kentucky,21199,71,2 +2020-06-14,Pulaski,Kentucky,21199,72,2 +2020-06-15,Pulaski,Kentucky,21199,72,2 +2020-06-16,Pulaski,Kentucky,21199,72,2 +2020-06-17,Pulaski,Kentucky,21199,73,2 +2020-06-18,Pulaski,Kentucky,21199,74,2 +2020-06-19,Pulaski,Kentucky,21199,74,2 +2020-06-20,Pulaski,Kentucky,21199,75,2 +2020-06-21,Pulaski,Kentucky,21199,77,2 +2020-06-22,Pulaski,Kentucky,21199,77,2 +2020-06-23,Pulaski,Kentucky,21199,82,2 +2020-06-24,Pulaski,Kentucky,21199,83,2 +2020-06-25,Pulaski,Kentucky,21199,84,2 +2020-06-26,Pulaski,Kentucky,21199,88,2 +2020-06-27,Pulaski,Kentucky,21199,89,2 +2020-06-28,Pulaski,Kentucky,21199,93,2 +2020-06-29,Pulaski,Kentucky,21199,94,2 +2020-06-30,Pulaski,Kentucky,21199,94,2 +2020-07-01,Pulaski,Kentucky,21199,94,2 +2020-07-02,Pulaski,Kentucky,21199,99,2 +2020-07-03,Pulaski,Kentucky,21199,100,2 +2020-07-04,Pulaski,Kentucky,21199,100,2 +2020-07-05,Pulaski,Kentucky,21199,100,2 +2020-07-06,Pulaski,Kentucky,21199,117,2 +2020-07-07,Pulaski,Kentucky,21199,119,2 +2020-07-08,Pulaski,Kentucky,21199,121,2 +2020-07-09,Pulaski,Kentucky,21199,126,2 +2020-07-01,Robertson,Kentucky,21201,1,0 +2020-07-02,Robertson,Kentucky,21201,1,0 +2020-07-03,Robertson,Kentucky,21201,1,0 +2020-07-04,Robertson,Kentucky,21201,1,0 +2020-07-05,Robertson,Kentucky,21201,1,0 +2020-07-06,Robertson,Kentucky,21201,1,0 +2020-07-07,Robertson,Kentucky,21201,1,0 +2020-07-08,Robertson,Kentucky,21201,1,0 +2020-07-09,Robertson,Kentucky,21201,1,0 +2020-03-31,Rockcastle,Kentucky,21203,1,0 +2020-04-01,Rockcastle,Kentucky,21203,1,0 +2020-04-02,Rockcastle,Kentucky,21203,1,0 +2020-04-03,Rockcastle,Kentucky,21203,1,0 +2020-04-04,Rockcastle,Kentucky,21203,1,0 +2020-04-05,Rockcastle,Kentucky,21203,1,0 +2020-04-06,Rockcastle,Kentucky,21203,1,0 +2020-04-07,Rockcastle,Kentucky,21203,4,0 +2020-04-08,Rockcastle,Kentucky,21203,6,0 +2020-04-09,Rockcastle,Kentucky,21203,6,0 +2020-04-10,Rockcastle,Kentucky,21203,6,0 +2020-04-11,Rockcastle,Kentucky,21203,8,0 +2020-04-12,Rockcastle,Kentucky,21203,9,0 +2020-04-13,Rockcastle,Kentucky,21203,9,0 +2020-04-14,Rockcastle,Kentucky,21203,9,0 +2020-04-15,Rockcastle,Kentucky,21203,10,0 +2020-04-16,Rockcastle,Kentucky,21203,11,0 +2020-04-17,Rockcastle,Kentucky,21203,11,0 +2020-04-18,Rockcastle,Kentucky,21203,11,0 +2020-04-19,Rockcastle,Kentucky,21203,11,0 +2020-04-20,Rockcastle,Kentucky,21203,11,0 +2020-04-21,Rockcastle,Kentucky,21203,11,0 +2020-04-22,Rockcastle,Kentucky,21203,11,0 +2020-04-23,Rockcastle,Kentucky,21203,11,0 +2020-04-24,Rockcastle,Kentucky,21203,11,0 +2020-04-25,Rockcastle,Kentucky,21203,11,0 +2020-04-26,Rockcastle,Kentucky,21203,11,0 +2020-04-27,Rockcastle,Kentucky,21203,11,0 +2020-04-28,Rockcastle,Kentucky,21203,11,0 +2020-04-29,Rockcastle,Kentucky,21203,11,0 +2020-04-30,Rockcastle,Kentucky,21203,11,0 +2020-05-01,Rockcastle,Kentucky,21203,11,0 +2020-05-02,Rockcastle,Kentucky,21203,11,0 +2020-05-03,Rockcastle,Kentucky,21203,11,0 +2020-05-04,Rockcastle,Kentucky,21203,11,0 +2020-05-05,Rockcastle,Kentucky,21203,12,0 +2020-05-06,Rockcastle,Kentucky,21203,13,0 +2020-05-07,Rockcastle,Kentucky,21203,13,0 +2020-05-08,Rockcastle,Kentucky,21203,13,0 +2020-05-09,Rockcastle,Kentucky,21203,13,0 +2020-05-10,Rockcastle,Kentucky,21203,13,0 +2020-05-11,Rockcastle,Kentucky,21203,13,0 +2020-05-12,Rockcastle,Kentucky,21203,13,0 +2020-05-13,Rockcastle,Kentucky,21203,13,0 +2020-05-14,Rockcastle,Kentucky,21203,13,0 +2020-05-15,Rockcastle,Kentucky,21203,13,0 +2020-05-16,Rockcastle,Kentucky,21203,13,0 +2020-05-17,Rockcastle,Kentucky,21203,12,0 +2020-05-18,Rockcastle,Kentucky,21203,12,0 +2020-05-19,Rockcastle,Kentucky,21203,12,0 +2020-05-20,Rockcastle,Kentucky,21203,13,0 +2020-05-21,Rockcastle,Kentucky,21203,13,0 +2020-05-22,Rockcastle,Kentucky,21203,13,0 +2020-05-23,Rockcastle,Kentucky,21203,13,0 +2020-05-24,Rockcastle,Kentucky,21203,13,0 +2020-05-25,Rockcastle,Kentucky,21203,13,0 +2020-05-26,Rockcastle,Kentucky,21203,13,0 +2020-05-27,Rockcastle,Kentucky,21203,13,0 +2020-05-28,Rockcastle,Kentucky,21203,13,0 +2020-05-29,Rockcastle,Kentucky,21203,13,0 +2020-05-30,Rockcastle,Kentucky,21203,13,0 +2020-05-31,Rockcastle,Kentucky,21203,13,0 +2020-06-01,Rockcastle,Kentucky,21203,13,0 +2020-06-02,Rockcastle,Kentucky,21203,13,0 +2020-06-03,Rockcastle,Kentucky,21203,13,0 +2020-06-04,Rockcastle,Kentucky,21203,13,0 +2020-06-05,Rockcastle,Kentucky,21203,13,0 +2020-06-06,Rockcastle,Kentucky,21203,13,0 +2020-06-07,Rockcastle,Kentucky,21203,13,0 +2020-06-08,Rockcastle,Kentucky,21203,13,0 +2020-06-09,Rockcastle,Kentucky,21203,13,0 +2020-06-10,Rockcastle,Kentucky,21203,13,0 +2020-06-11,Rockcastle,Kentucky,21203,13,0 +2020-06-12,Rockcastle,Kentucky,21203,14,0 +2020-06-13,Rockcastle,Kentucky,21203,14,0 +2020-06-14,Rockcastle,Kentucky,21203,14,0 +2020-06-15,Rockcastle,Kentucky,21203,14,0 +2020-06-16,Rockcastle,Kentucky,21203,14,0 +2020-06-17,Rockcastle,Kentucky,21203,15,0 +2020-06-18,Rockcastle,Kentucky,21203,16,0 +2020-06-19,Rockcastle,Kentucky,21203,16,0 +2020-06-20,Rockcastle,Kentucky,21203,16,0 +2020-06-21,Rockcastle,Kentucky,21203,17,0 +2020-06-22,Rockcastle,Kentucky,21203,17,0 +2020-06-23,Rockcastle,Kentucky,21203,18,0 +2020-06-24,Rockcastle,Kentucky,21203,18,0 +2020-06-25,Rockcastle,Kentucky,21203,18,0 +2020-06-26,Rockcastle,Kentucky,21203,18,0 +2020-06-27,Rockcastle,Kentucky,21203,19,0 +2020-06-28,Rockcastle,Kentucky,21203,19,0 +2020-06-29,Rockcastle,Kentucky,21203,19,0 +2020-06-30,Rockcastle,Kentucky,21203,21,0 +2020-07-01,Rockcastle,Kentucky,21203,21,0 +2020-07-02,Rockcastle,Kentucky,21203,21,0 +2020-07-03,Rockcastle,Kentucky,21203,21,0 +2020-07-04,Rockcastle,Kentucky,21203,21,0 +2020-07-05,Rockcastle,Kentucky,21203,21,0 +2020-07-06,Rockcastle,Kentucky,21203,27,0 +2020-07-07,Rockcastle,Kentucky,21203,27,0 +2020-07-08,Rockcastle,Kentucky,21203,30,0 +2020-07-09,Rockcastle,Kentucky,21203,31,0 +2020-04-11,Rowan,Kentucky,21205,1,0 +2020-04-12,Rowan,Kentucky,21205,1,0 +2020-04-13,Rowan,Kentucky,21205,1,0 +2020-04-14,Rowan,Kentucky,21205,1,0 +2020-04-15,Rowan,Kentucky,21205,1,0 +2020-04-16,Rowan,Kentucky,21205,1,0 +2020-04-17,Rowan,Kentucky,21205,2,0 +2020-04-18,Rowan,Kentucky,21205,2,0 +2020-04-19,Rowan,Kentucky,21205,2,0 +2020-04-20,Rowan,Kentucky,21205,2,0 +2020-04-21,Rowan,Kentucky,21205,2,0 +2020-04-22,Rowan,Kentucky,21205,2,0 +2020-04-23,Rowan,Kentucky,21205,2,0 +2020-04-24,Rowan,Kentucky,21205,2,0 +2020-04-25,Rowan,Kentucky,21205,2,0 +2020-04-26,Rowan,Kentucky,21205,2,0 +2020-04-27,Rowan,Kentucky,21205,2,0 +2020-04-28,Rowan,Kentucky,21205,2,0 +2020-04-29,Rowan,Kentucky,21205,2,0 +2020-04-30,Rowan,Kentucky,21205,2,0 +2020-05-01,Rowan,Kentucky,21205,2,0 +2020-05-02,Rowan,Kentucky,21205,2,0 +2020-05-03,Rowan,Kentucky,21205,2,0 +2020-05-04,Rowan,Kentucky,21205,2,0 +2020-05-05,Rowan,Kentucky,21205,2,0 +2020-05-06,Rowan,Kentucky,21205,2,0 +2020-05-07,Rowan,Kentucky,21205,2,0 +2020-05-08,Rowan,Kentucky,21205,3,0 +2020-05-09,Rowan,Kentucky,21205,3,0 +2020-05-10,Rowan,Kentucky,21205,3,0 +2020-05-11,Rowan,Kentucky,21205,6,0 +2020-05-12,Rowan,Kentucky,21205,6,0 +2020-05-13,Rowan,Kentucky,21205,6,0 +2020-05-14,Rowan,Kentucky,21205,6,0 +2020-05-15,Rowan,Kentucky,21205,6,0 +2020-05-16,Rowan,Kentucky,21205,6,0 +2020-05-17,Rowan,Kentucky,21205,6,0 +2020-05-18,Rowan,Kentucky,21205,6,0 +2020-05-19,Rowan,Kentucky,21205,6,0 +2020-05-20,Rowan,Kentucky,21205,7,0 +2020-05-21,Rowan,Kentucky,21205,7,0 +2020-05-22,Rowan,Kentucky,21205,7,0 +2020-05-23,Rowan,Kentucky,21205,7,0 +2020-05-24,Rowan,Kentucky,21205,7,0 +2020-05-25,Rowan,Kentucky,21205,7,0 +2020-05-26,Rowan,Kentucky,21205,7,0 +2020-05-27,Rowan,Kentucky,21205,7,0 +2020-05-28,Rowan,Kentucky,21205,7,0 +2020-05-29,Rowan,Kentucky,21205,7,0 +2020-05-30,Rowan,Kentucky,21205,7,0 +2020-05-31,Rowan,Kentucky,21205,7,0 +2020-06-01,Rowan,Kentucky,21205,7,0 +2020-06-02,Rowan,Kentucky,21205,7,0 +2020-06-03,Rowan,Kentucky,21205,7,0 +2020-06-04,Rowan,Kentucky,21205,7,0 +2020-06-05,Rowan,Kentucky,21205,7,0 +2020-06-06,Rowan,Kentucky,21205,8,0 +2020-06-07,Rowan,Kentucky,21205,8,0 +2020-06-08,Rowan,Kentucky,21205,8,0 +2020-06-09,Rowan,Kentucky,21205,11,0 +2020-06-10,Rowan,Kentucky,21205,11,0 +2020-06-11,Rowan,Kentucky,21205,11,0 +2020-06-12,Rowan,Kentucky,21205,13,0 +2020-06-13,Rowan,Kentucky,21205,13,0 +2020-06-14,Rowan,Kentucky,21205,13,0 +2020-06-15,Rowan,Kentucky,21205,15,0 +2020-06-16,Rowan,Kentucky,21205,15,0 +2020-06-17,Rowan,Kentucky,21205,15,0 +2020-06-18,Rowan,Kentucky,21205,15,0 +2020-06-19,Rowan,Kentucky,21205,17,0 +2020-06-20,Rowan,Kentucky,21205,17,0 +2020-06-21,Rowan,Kentucky,21205,17,0 +2020-06-22,Rowan,Kentucky,21205,17,0 +2020-06-23,Rowan,Kentucky,21205,18,0 +2020-06-24,Rowan,Kentucky,21205,18,0 +2020-06-25,Rowan,Kentucky,21205,18,0 +2020-06-26,Rowan,Kentucky,21205,19,0 +2020-06-27,Rowan,Kentucky,21205,22,0 +2020-06-28,Rowan,Kentucky,21205,22,0 +2020-06-29,Rowan,Kentucky,21205,22,0 +2020-06-30,Rowan,Kentucky,21205,22,0 +2020-07-01,Rowan,Kentucky,21205,22,0 +2020-07-02,Rowan,Kentucky,21205,22,0 +2020-07-03,Rowan,Kentucky,21205,23,0 +2020-07-04,Rowan,Kentucky,21205,23,0 +2020-07-05,Rowan,Kentucky,21205,23,0 +2020-07-06,Rowan,Kentucky,21205,23,0 +2020-07-07,Rowan,Kentucky,21205,23,0 +2020-07-08,Rowan,Kentucky,21205,24,0 +2020-07-09,Rowan,Kentucky,21205,24,0 +2020-03-31,Russell,Kentucky,21207,1,0 +2020-04-01,Russell,Kentucky,21207,1,0 +2020-04-02,Russell,Kentucky,21207,1,0 +2020-04-03,Russell,Kentucky,21207,1,0 +2020-04-04,Russell,Kentucky,21207,1,0 +2020-04-05,Russell,Kentucky,21207,1,0 +2020-04-06,Russell,Kentucky,21207,1,0 +2020-04-07,Russell,Kentucky,21207,2,0 +2020-04-08,Russell,Kentucky,21207,4,0 +2020-04-09,Russell,Kentucky,21207,4,0 +2020-04-10,Russell,Kentucky,21207,8,0 +2020-04-11,Russell,Kentucky,21207,8,0 +2020-04-12,Russell,Kentucky,21207,6,0 +2020-04-13,Russell,Kentucky,21207,7,0 +2020-04-14,Russell,Kentucky,21207,8,0 +2020-04-15,Russell,Kentucky,21207,8,0 +2020-04-16,Russell,Kentucky,21207,12,0 +2020-04-17,Russell,Kentucky,21207,11,2 +2020-04-18,Russell,Kentucky,21207,12,2 +2020-04-19,Russell,Kentucky,21207,15,2 +2020-04-20,Russell,Kentucky,21207,15,2 +2020-04-21,Russell,Kentucky,21207,16,2 +2020-04-22,Russell,Kentucky,21207,16,2 +2020-04-23,Russell,Kentucky,21207,16,2 +2020-04-24,Russell,Kentucky,21207,16,2 +2020-04-25,Russell,Kentucky,21207,16,2 +2020-04-26,Russell,Kentucky,21207,16,2 +2020-04-27,Russell,Kentucky,21207,16,2 +2020-04-28,Russell,Kentucky,21207,16,3 +2020-04-29,Russell,Kentucky,21207,16,3 +2020-04-30,Russell,Kentucky,21207,16,3 +2020-05-01,Russell,Kentucky,21207,16,3 +2020-05-02,Russell,Kentucky,21207,16,3 +2020-05-03,Russell,Kentucky,21207,16,3 +2020-05-04,Russell,Kentucky,21207,16,3 +2020-05-05,Russell,Kentucky,21207,17,3 +2020-05-06,Russell,Kentucky,21207,17,4 +2020-05-07,Russell,Kentucky,21207,17,4 +2020-05-08,Russell,Kentucky,21207,18,4 +2020-05-09,Russell,Kentucky,21207,18,4 +2020-05-10,Russell,Kentucky,21207,18,4 +2020-05-11,Russell,Kentucky,21207,18,4 +2020-05-12,Russell,Kentucky,21207,18,4 +2020-05-13,Russell,Kentucky,21207,18,4 +2020-05-14,Russell,Kentucky,21207,19,4 +2020-05-15,Russell,Kentucky,21207,19,4 +2020-05-16,Russell,Kentucky,21207,23,4 +2020-05-17,Russell,Kentucky,21207,23,4 +2020-05-18,Russell,Kentucky,21207,23,4 +2020-05-19,Russell,Kentucky,21207,23,4 +2020-05-20,Russell,Kentucky,21207,23,4 +2020-05-21,Russell,Kentucky,21207,23,4 +2020-05-22,Russell,Kentucky,21207,23,4 +2020-05-23,Russell,Kentucky,21207,23,4 +2020-05-24,Russell,Kentucky,21207,23,4 +2020-05-25,Russell,Kentucky,21207,23,4 +2020-05-26,Russell,Kentucky,21207,23,4 +2020-05-27,Russell,Kentucky,21207,23,4 +2020-05-28,Russell,Kentucky,21207,23,4 +2020-05-29,Russell,Kentucky,21207,23,4 +2020-05-30,Russell,Kentucky,21207,24,4 +2020-05-31,Russell,Kentucky,21207,24,4 +2020-06-01,Russell,Kentucky,21207,24,4 +2020-06-02,Russell,Kentucky,21207,24,4 +2020-06-03,Russell,Kentucky,21207,25,4 +2020-06-04,Russell,Kentucky,21207,26,4 +2020-06-05,Russell,Kentucky,21207,30,4 +2020-06-06,Russell,Kentucky,21207,30,4 +2020-06-07,Russell,Kentucky,21207,30,4 +2020-06-08,Russell,Kentucky,21207,35,4 +2020-06-09,Russell,Kentucky,21207,36,4 +2020-06-10,Russell,Kentucky,21207,36,4 +2020-06-11,Russell,Kentucky,21207,37,4 +2020-06-12,Russell,Kentucky,21207,37,4 +2020-06-13,Russell,Kentucky,21207,38,4 +2020-06-14,Russell,Kentucky,21207,38,4 +2020-06-15,Russell,Kentucky,21207,38,4 +2020-06-16,Russell,Kentucky,21207,38,4 +2020-06-17,Russell,Kentucky,21207,38,4 +2020-06-18,Russell,Kentucky,21207,38,4 +2020-06-19,Russell,Kentucky,21207,38,4 +2020-06-20,Russell,Kentucky,21207,38,4 +2020-06-21,Russell,Kentucky,21207,39,4 +2020-06-22,Russell,Kentucky,21207,39,4 +2020-06-23,Russell,Kentucky,21207,39,4 +2020-06-24,Russell,Kentucky,21207,39,4 +2020-06-25,Russell,Kentucky,21207,40,4 +2020-06-26,Russell,Kentucky,21207,43,4 +2020-06-27,Russell,Kentucky,21207,44,4 +2020-06-28,Russell,Kentucky,21207,44,4 +2020-06-29,Russell,Kentucky,21207,45,4 +2020-06-30,Russell,Kentucky,21207,46,4 +2020-07-01,Russell,Kentucky,21207,47,4 +2020-07-02,Russell,Kentucky,21207,50,4 +2020-07-03,Russell,Kentucky,21207,52,4 +2020-07-04,Russell,Kentucky,21207,57,4 +2020-07-05,Russell,Kentucky,21207,57,4 +2020-07-06,Russell,Kentucky,21207,58,4 +2020-07-07,Russell,Kentucky,21207,61,4 +2020-07-08,Russell,Kentucky,21207,65,4 +2020-07-09,Russell,Kentucky,21207,65,5 +2020-03-19,Scott,Kentucky,21209,1,0 +2020-03-20,Scott,Kentucky,21209,1,0 +2020-03-21,Scott,Kentucky,21209,1,0 +2020-03-22,Scott,Kentucky,21209,1,0 +2020-03-23,Scott,Kentucky,21209,1,0 +2020-03-24,Scott,Kentucky,21209,1,0 +2020-03-25,Scott,Kentucky,21209,1,0 +2020-03-26,Scott,Kentucky,21209,1,0 +2020-03-27,Scott,Kentucky,21209,3,0 +2020-03-28,Scott,Kentucky,21209,5,0 +2020-03-29,Scott,Kentucky,21209,6,0 +2020-03-30,Scott,Kentucky,21209,6,0 +2020-03-31,Scott,Kentucky,21209,7,0 +2020-04-01,Scott,Kentucky,21209,7,0 +2020-04-02,Scott,Kentucky,21209,8,0 +2020-04-03,Scott,Kentucky,21209,8,0 +2020-04-04,Scott,Kentucky,21209,8,0 +2020-04-05,Scott,Kentucky,21209,21,0 +2020-04-06,Scott,Kentucky,21209,21,0 +2020-04-07,Scott,Kentucky,21209,21,0 +2020-04-08,Scott,Kentucky,21209,21,0 +2020-04-09,Scott,Kentucky,21209,21,0 +2020-04-10,Scott,Kentucky,21209,21,0 +2020-04-11,Scott,Kentucky,21209,22,0 +2020-04-12,Scott,Kentucky,21209,26,0 +2020-04-13,Scott,Kentucky,21209,26,0 +2020-04-14,Scott,Kentucky,21209,27,0 +2020-04-15,Scott,Kentucky,21209,27,0 +2020-04-16,Scott,Kentucky,21209,27,0 +2020-04-17,Scott,Kentucky,21209,27,0 +2020-04-18,Scott,Kentucky,21209,27,0 +2020-04-19,Scott,Kentucky,21209,27,0 +2020-04-20,Scott,Kentucky,21209,27,0 +2020-04-21,Scott,Kentucky,21209,27,0 +2020-04-22,Scott,Kentucky,21209,27,0 +2020-04-23,Scott,Kentucky,21209,28,0 +2020-04-24,Scott,Kentucky,21209,28,0 +2020-04-25,Scott,Kentucky,21209,28,0 +2020-04-26,Scott,Kentucky,21209,28,0 +2020-04-27,Scott,Kentucky,21209,28,0 +2020-04-28,Scott,Kentucky,21209,29,0 +2020-04-29,Scott,Kentucky,21209,29,0 +2020-04-30,Scott,Kentucky,21209,29,0 +2020-05-01,Scott,Kentucky,21209,29,0 +2020-05-02,Scott,Kentucky,21209,29,0 +2020-05-03,Scott,Kentucky,21209,29,0 +2020-05-04,Scott,Kentucky,21209,31,0 +2020-05-05,Scott,Kentucky,21209,31,0 +2020-05-06,Scott,Kentucky,21209,31,0 +2020-05-07,Scott,Kentucky,21209,32,0 +2020-05-08,Scott,Kentucky,21209,32,0 +2020-05-09,Scott,Kentucky,21209,32,0 +2020-05-10,Scott,Kentucky,21209,32,0 +2020-05-11,Scott,Kentucky,21209,32,0 +2020-05-12,Scott,Kentucky,21209,33,0 +2020-05-13,Scott,Kentucky,21209,33,0 +2020-05-14,Scott,Kentucky,21209,33,0 +2020-05-15,Scott,Kentucky,21209,34,0 +2020-05-16,Scott,Kentucky,21209,34,0 +2020-05-17,Scott,Kentucky,21209,34,0 +2020-05-18,Scott,Kentucky,21209,34,0 +2020-05-19,Scott,Kentucky,21209,34,0 +2020-05-20,Scott,Kentucky,21209,34,0 +2020-05-21,Scott,Kentucky,21209,34,0 +2020-05-22,Scott,Kentucky,21209,34,0 +2020-05-23,Scott,Kentucky,21209,34,0 +2020-05-24,Scott,Kentucky,21209,34,0 +2020-05-25,Scott,Kentucky,21209,34,0 +2020-05-26,Scott,Kentucky,21209,35,0 +2020-05-27,Scott,Kentucky,21209,35,0 +2020-05-28,Scott,Kentucky,21209,35,0 +2020-05-29,Scott,Kentucky,21209,35,0 +2020-05-30,Scott,Kentucky,21209,35,0 +2020-05-31,Scott,Kentucky,21209,35,0 +2020-06-01,Scott,Kentucky,21209,35,0 +2020-06-02,Scott,Kentucky,21209,35,0 +2020-06-03,Scott,Kentucky,21209,35,0 +2020-06-04,Scott,Kentucky,21209,37,0 +2020-06-05,Scott,Kentucky,21209,37,0 +2020-06-06,Scott,Kentucky,21209,37,0 +2020-06-07,Scott,Kentucky,21209,37,0 +2020-06-08,Scott,Kentucky,21209,54,0 +2020-06-09,Scott,Kentucky,21209,54,0 +2020-06-10,Scott,Kentucky,21209,54,0 +2020-06-11,Scott,Kentucky,21209,54,0 +2020-06-12,Scott,Kentucky,21209,54,0 +2020-06-13,Scott,Kentucky,21209,54,0 +2020-06-14,Scott,Kentucky,21209,54,0 +2020-06-15,Scott,Kentucky,21209,54,0 +2020-06-16,Scott,Kentucky,21209,54,0 +2020-06-17,Scott,Kentucky,21209,54,0 +2020-06-18,Scott,Kentucky,21209,57,0 +2020-06-19,Scott,Kentucky,21209,60,0 +2020-06-20,Scott,Kentucky,21209,66,0 +2020-06-21,Scott,Kentucky,21209,67,0 +2020-06-22,Scott,Kentucky,21209,67,0 +2020-06-23,Scott,Kentucky,21209,75,0 +2020-06-24,Scott,Kentucky,21209,76,0 +2020-06-25,Scott,Kentucky,21209,79,0 +2020-06-26,Scott,Kentucky,21209,83,0 +2020-06-27,Scott,Kentucky,21209,82,0 +2020-06-28,Scott,Kentucky,21209,82,0 +2020-06-29,Scott,Kentucky,21209,83,0 +2020-06-30,Scott,Kentucky,21209,87,0 +2020-07-01,Scott,Kentucky,21209,91,0 +2020-07-02,Scott,Kentucky,21209,97,0 +2020-07-03,Scott,Kentucky,21209,99,0 +2020-07-04,Scott,Kentucky,21209,99,0 +2020-07-05,Scott,Kentucky,21209,99,0 +2020-07-06,Scott,Kentucky,21209,101,0 +2020-07-07,Scott,Kentucky,21209,107,0 +2020-07-08,Scott,Kentucky,21209,112,0 +2020-07-09,Scott,Kentucky,21209,113,0 +2020-03-28,Shelby,Kentucky,21211,1,0 +2020-03-29,Shelby,Kentucky,21211,1,0 +2020-03-30,Shelby,Kentucky,21211,1,0 +2020-03-31,Shelby,Kentucky,21211,4,0 +2020-04-01,Shelby,Kentucky,21211,4,0 +2020-04-02,Shelby,Kentucky,21211,5,0 +2020-04-03,Shelby,Kentucky,21211,5,0 +2020-04-04,Shelby,Kentucky,21211,7,0 +2020-04-05,Shelby,Kentucky,21211,7,0 +2020-04-06,Shelby,Kentucky,21211,7,0 +2020-04-07,Shelby,Kentucky,21211,9,0 +2020-04-08,Shelby,Kentucky,21211,11,0 +2020-04-09,Shelby,Kentucky,21211,13,0 +2020-04-10,Shelby,Kentucky,21211,14,1 +2020-04-11,Shelby,Kentucky,21211,18,1 +2020-04-12,Shelby,Kentucky,21211,18,1 +2020-04-13,Shelby,Kentucky,21211,18,1 +2020-04-14,Shelby,Kentucky,21211,19,1 +2020-04-15,Shelby,Kentucky,21211,21,1 +2020-04-16,Shelby,Kentucky,21211,21,2 +2020-04-17,Shelby,Kentucky,21211,22,2 +2020-04-18,Shelby,Kentucky,21211,23,2 +2020-04-19,Shelby,Kentucky,21211,23,2 +2020-04-20,Shelby,Kentucky,21211,23,2 +2020-04-21,Shelby,Kentucky,21211,24,2 +2020-04-22,Shelby,Kentucky,21211,24,2 +2020-04-23,Shelby,Kentucky,21211,24,2 +2020-04-24,Shelby,Kentucky,21211,26,3 +2020-04-25,Shelby,Kentucky,21211,26,3 +2020-04-26,Shelby,Kentucky,21211,28,3 +2020-04-27,Shelby,Kentucky,21211,28,3 +2020-04-28,Shelby,Kentucky,21211,28,3 +2020-04-29,Shelby,Kentucky,21211,28,3 +2020-04-30,Shelby,Kentucky,21211,30,3 +2020-05-01,Shelby,Kentucky,21211,30,3 +2020-05-02,Shelby,Kentucky,21211,30,3 +2020-05-03,Shelby,Kentucky,21211,32,3 +2020-05-04,Shelby,Kentucky,21211,32,3 +2020-05-05,Shelby,Kentucky,21211,33,3 +2020-05-06,Shelby,Kentucky,21211,34,3 +2020-05-07,Shelby,Kentucky,21211,35,3 +2020-05-08,Shelby,Kentucky,21211,44,3 +2020-05-09,Shelby,Kentucky,21211,49,3 +2020-05-10,Shelby,Kentucky,21211,49,3 +2020-05-11,Shelby,Kentucky,21211,52,3 +2020-05-12,Shelby,Kentucky,21211,54,3 +2020-05-13,Shelby,Kentucky,21211,54,3 +2020-05-14,Shelby,Kentucky,21211,54,3 +2020-05-15,Shelby,Kentucky,21211,65,3 +2020-05-16,Shelby,Kentucky,21211,75,3 +2020-05-17,Shelby,Kentucky,21211,75,3 +2020-05-18,Shelby,Kentucky,21211,76,3 +2020-05-19,Shelby,Kentucky,21211,78,3 +2020-05-20,Shelby,Kentucky,21211,82,3 +2020-05-21,Shelby,Kentucky,21211,84,3 +2020-05-22,Shelby,Kentucky,21211,89,4 +2020-05-23,Shelby,Kentucky,21211,92,4 +2020-05-24,Shelby,Kentucky,21211,92,4 +2020-05-25,Shelby,Kentucky,21211,92,4 +2020-05-26,Shelby,Kentucky,21211,132,4 +2020-05-27,Shelby,Kentucky,21211,138,4 +2020-05-28,Shelby,Kentucky,21211,140,4 +2020-05-29,Shelby,Kentucky,21211,156,4 +2020-05-30,Shelby,Kentucky,21211,164,4 +2020-05-31,Shelby,Kentucky,21211,164,4 +2020-06-01,Shelby,Kentucky,21211,175,4 +2020-06-02,Shelby,Kentucky,21211,178,4 +2020-06-03,Shelby,Kentucky,21211,184,5 +2020-06-04,Shelby,Kentucky,21211,184,5 +2020-06-05,Shelby,Kentucky,21211,214,5 +2020-06-06,Shelby,Kentucky,21211,216,5 +2020-06-07,Shelby,Kentucky,21211,218,5 +2020-06-08,Shelby,Kentucky,21211,226,5 +2020-06-09,Shelby,Kentucky,21211,233,6 +2020-06-10,Shelby,Kentucky,21211,233,6 +2020-06-11,Shelby,Kentucky,21211,233,6 +2020-06-12,Shelby,Kentucky,21211,256,6 +2020-06-13,Shelby,Kentucky,21211,268,6 +2020-06-14,Shelby,Kentucky,21211,274,6 +2020-06-15,Shelby,Kentucky,21211,277,6 +2020-06-16,Shelby,Kentucky,21211,277,6 +2020-06-17,Shelby,Kentucky,21211,281,6 +2020-06-18,Shelby,Kentucky,21211,314,6 +2020-06-19,Shelby,Kentucky,21211,347,6 +2020-06-20,Shelby,Kentucky,21211,358,6 +2020-06-21,Shelby,Kentucky,21211,361,6 +2020-06-22,Shelby,Kentucky,21211,365,6 +2020-06-23,Shelby,Kentucky,21211,370,7 +2020-06-24,Shelby,Kentucky,21211,378,7 +2020-06-25,Shelby,Kentucky,21211,391,10 +2020-06-26,Shelby,Kentucky,21211,400,10 +2020-06-27,Shelby,Kentucky,21211,405,10 +2020-06-28,Shelby,Kentucky,21211,456,11 +2020-06-29,Shelby,Kentucky,21211,456,11 +2020-06-30,Shelby,Kentucky,21211,456,11 +2020-07-01,Shelby,Kentucky,21211,456,12 +2020-07-02,Shelby,Kentucky,21211,456,14 +2020-07-03,Shelby,Kentucky,21211,456,16 +2020-07-04,Shelby,Kentucky,21211,456,16 +2020-07-05,Shelby,Kentucky,21211,456,16 +2020-07-06,Shelby,Kentucky,21211,524,17 +2020-07-07,Shelby,Kentucky,21211,528,17 +2020-07-08,Shelby,Kentucky,21211,537,17 +2020-07-09,Shelby,Kentucky,21211,545,17 +2020-03-24,Simpson,Kentucky,21213,1,0 +2020-03-25,Simpson,Kentucky,21213,1,0 +2020-03-26,Simpson,Kentucky,21213,1,0 +2020-03-27,Simpson,Kentucky,21213,2,0 +2020-03-28,Simpson,Kentucky,21213,2,0 +2020-03-29,Simpson,Kentucky,21213,2,0 +2020-03-30,Simpson,Kentucky,21213,2,1 +2020-03-31,Simpson,Kentucky,21213,5,1 +2020-04-01,Simpson,Kentucky,21213,5,1 +2020-04-02,Simpson,Kentucky,21213,5,1 +2020-04-03,Simpson,Kentucky,21213,5,1 +2020-04-04,Simpson,Kentucky,21213,5,1 +2020-04-05,Simpson,Kentucky,21213,13,1 +2020-04-06,Simpson,Kentucky,21213,13,1 +2020-04-07,Simpson,Kentucky,21213,14,1 +2020-04-08,Simpson,Kentucky,21213,14,1 +2020-04-09,Simpson,Kentucky,21213,14,1 +2020-04-10,Simpson,Kentucky,21213,15,1 +2020-04-11,Simpson,Kentucky,21213,17,1 +2020-04-12,Simpson,Kentucky,21213,16,1 +2020-04-13,Simpson,Kentucky,21213,16,1 +2020-04-14,Simpson,Kentucky,21213,17,1 +2020-04-15,Simpson,Kentucky,21213,17,2 +2020-04-16,Simpson,Kentucky,21213,19,2 +2020-04-17,Simpson,Kentucky,21213,20,2 +2020-04-18,Simpson,Kentucky,21213,21,2 +2020-04-19,Simpson,Kentucky,21213,21,2 +2020-04-20,Simpson,Kentucky,21213,21,2 +2020-04-21,Simpson,Kentucky,21213,22,2 +2020-04-22,Simpson,Kentucky,21213,22,2 +2020-04-23,Simpson,Kentucky,21213,22,2 +2020-04-24,Simpson,Kentucky,21213,22,2 +2020-04-25,Simpson,Kentucky,21213,23,2 +2020-04-26,Simpson,Kentucky,21213,24,2 +2020-04-27,Simpson,Kentucky,21213,24,2 +2020-04-28,Simpson,Kentucky,21213,24,2 +2020-04-29,Simpson,Kentucky,21213,27,2 +2020-04-30,Simpson,Kentucky,21213,27,2 +2020-05-01,Simpson,Kentucky,21213,28,2 +2020-05-02,Simpson,Kentucky,21213,28,2 +2020-05-03,Simpson,Kentucky,21213,29,2 +2020-05-04,Simpson,Kentucky,21213,28,2 +2020-05-05,Simpson,Kentucky,21213,31,2 +2020-05-06,Simpson,Kentucky,21213,31,2 +2020-05-07,Simpson,Kentucky,21213,32,2 +2020-05-08,Simpson,Kentucky,21213,32,2 +2020-05-09,Simpson,Kentucky,21213,32,2 +2020-05-10,Simpson,Kentucky,21213,32,2 +2020-05-11,Simpson,Kentucky,21213,32,2 +2020-05-12,Simpson,Kentucky,21213,32,2 +2020-05-13,Simpson,Kentucky,21213,32,2 +2020-05-14,Simpson,Kentucky,21213,35,2 +2020-05-15,Simpson,Kentucky,21213,35,2 +2020-05-16,Simpson,Kentucky,21213,37,2 +2020-05-17,Simpson,Kentucky,21213,37,2 +2020-05-18,Simpson,Kentucky,21213,38,2 +2020-05-19,Simpson,Kentucky,21213,39,2 +2020-05-20,Simpson,Kentucky,21213,43,2 +2020-05-21,Simpson,Kentucky,21213,43,3 +2020-05-22,Simpson,Kentucky,21213,44,3 +2020-05-23,Simpson,Kentucky,21213,44,3 +2020-05-24,Simpson,Kentucky,21213,44,3 +2020-05-25,Simpson,Kentucky,21213,44,3 +2020-05-26,Simpson,Kentucky,21213,49,3 +2020-05-27,Simpson,Kentucky,21213,49,3 +2020-05-28,Simpson,Kentucky,21213,49,3 +2020-05-29,Simpson,Kentucky,21213,51,3 +2020-05-30,Simpson,Kentucky,21213,52,3 +2020-05-31,Simpson,Kentucky,21213,52,3 +2020-06-01,Simpson,Kentucky,21213,54,3 +2020-06-02,Simpson,Kentucky,21213,54,3 +2020-06-03,Simpson,Kentucky,21213,55,3 +2020-06-04,Simpson,Kentucky,21213,55,3 +2020-06-05,Simpson,Kentucky,21213,55,3 +2020-06-06,Simpson,Kentucky,21213,54,3 +2020-06-07,Simpson,Kentucky,21213,54,3 +2020-06-08,Simpson,Kentucky,21213,54,3 +2020-06-09,Simpson,Kentucky,21213,56,3 +2020-06-10,Simpson,Kentucky,21213,58,4 +2020-06-11,Simpson,Kentucky,21213,57,3 +2020-06-12,Simpson,Kentucky,21213,57,3 +2020-06-13,Simpson,Kentucky,21213,59,3 +2020-06-14,Simpson,Kentucky,21213,59,3 +2020-06-15,Simpson,Kentucky,21213,59,3 +2020-06-16,Simpson,Kentucky,21213,59,3 +2020-06-17,Simpson,Kentucky,21213,60,3 +2020-06-18,Simpson,Kentucky,21213,61,3 +2020-06-19,Simpson,Kentucky,21213,62,3 +2020-06-20,Simpson,Kentucky,21213,62,3 +2020-06-21,Simpson,Kentucky,21213,62,3 +2020-06-22,Simpson,Kentucky,21213,62,3 +2020-06-23,Simpson,Kentucky,21213,65,3 +2020-06-24,Simpson,Kentucky,21213,69,3 +2020-06-25,Simpson,Kentucky,21213,69,3 +2020-06-26,Simpson,Kentucky,21213,72,3 +2020-06-27,Simpson,Kentucky,21213,73,3 +2020-06-28,Simpson,Kentucky,21213,75,3 +2020-06-29,Simpson,Kentucky,21213,76,3 +2020-06-30,Simpson,Kentucky,21213,77,3 +2020-07-01,Simpson,Kentucky,21213,78,3 +2020-07-02,Simpson,Kentucky,21213,78,3 +2020-07-03,Simpson,Kentucky,21213,80,3 +2020-07-04,Simpson,Kentucky,21213,80,3 +2020-07-05,Simpson,Kentucky,21213,81,3 +2020-07-06,Simpson,Kentucky,21213,82,3 +2020-07-07,Simpson,Kentucky,21213,83,3 +2020-07-08,Simpson,Kentucky,21213,86,3 +2020-07-09,Simpson,Kentucky,21213,86,3 +2020-03-21,Spencer,Kentucky,21215,1,0 +2020-03-22,Spencer,Kentucky,21215,1,0 +2020-03-23,Spencer,Kentucky,21215,1,0 +2020-03-24,Spencer,Kentucky,21215,1,0 +2020-03-25,Spencer,Kentucky,21215,1,0 +2020-03-26,Spencer,Kentucky,21215,1,0 +2020-03-27,Spencer,Kentucky,21215,1,0 +2020-03-28,Spencer,Kentucky,21215,1,0 +2020-03-29,Spencer,Kentucky,21215,1,0 +2020-03-30,Spencer,Kentucky,21215,1,0 +2020-03-31,Spencer,Kentucky,21215,2,0 +2020-04-01,Spencer,Kentucky,21215,3,0 +2020-04-02,Spencer,Kentucky,21215,4,0 +2020-04-03,Spencer,Kentucky,21215,4,0 +2020-04-04,Spencer,Kentucky,21215,4,0 +2020-04-05,Spencer,Kentucky,21215,2,0 +2020-04-06,Spencer,Kentucky,21215,2,0 +2020-04-07,Spencer,Kentucky,21215,3,0 +2020-04-08,Spencer,Kentucky,21215,3,0 +2020-04-09,Spencer,Kentucky,21215,4,0 +2020-04-10,Spencer,Kentucky,21215,5,0 +2020-04-11,Spencer,Kentucky,21215,6,0 +2020-04-12,Spencer,Kentucky,21215,6,0 +2020-04-13,Spencer,Kentucky,21215,6,0 +2020-04-14,Spencer,Kentucky,21215,9,0 +2020-04-15,Spencer,Kentucky,21215,8,0 +2020-04-16,Spencer,Kentucky,21215,8,0 +2020-04-17,Spencer,Kentucky,21215,8,0 +2020-04-18,Spencer,Kentucky,21215,8,0 +2020-04-19,Spencer,Kentucky,21215,9,0 +2020-04-20,Spencer,Kentucky,21215,9,0 +2020-04-21,Spencer,Kentucky,21215,9,0 +2020-04-22,Spencer,Kentucky,21215,9,0 +2020-04-23,Spencer,Kentucky,21215,9,0 +2020-04-24,Spencer,Kentucky,21215,9,0 +2020-04-25,Spencer,Kentucky,21215,10,0 +2020-04-26,Spencer,Kentucky,21215,10,0 +2020-04-27,Spencer,Kentucky,21215,10,0 +2020-04-28,Spencer,Kentucky,21215,10,0 +2020-04-29,Spencer,Kentucky,21215,12,0 +2020-04-30,Spencer,Kentucky,21215,13,0 +2020-05-01,Spencer,Kentucky,21215,13,0 +2020-05-02,Spencer,Kentucky,21215,13,0 +2020-05-03,Spencer,Kentucky,21215,13,0 +2020-05-04,Spencer,Kentucky,21215,14,0 +2020-05-05,Spencer,Kentucky,21215,15,0 +2020-05-06,Spencer,Kentucky,21215,16,0 +2020-05-07,Spencer,Kentucky,21215,16,0 +2020-05-08,Spencer,Kentucky,21215,16,0 +2020-05-09,Spencer,Kentucky,21215,16,0 +2020-05-10,Spencer,Kentucky,21215,16,0 +2020-05-11,Spencer,Kentucky,21215,17,0 +2020-05-12,Spencer,Kentucky,21215,16,0 +2020-05-13,Spencer,Kentucky,21215,16,0 +2020-05-14,Spencer,Kentucky,21215,16,0 +2020-05-15,Spencer,Kentucky,21215,16,0 +2020-05-16,Spencer,Kentucky,21215,16,0 +2020-05-17,Spencer,Kentucky,21215,16,0 +2020-05-18,Spencer,Kentucky,21215,16,0 +2020-05-19,Spencer,Kentucky,21215,16,0 +2020-05-20,Spencer,Kentucky,21215,16,0 +2020-05-21,Spencer,Kentucky,21215,16,0 +2020-05-22,Spencer,Kentucky,21215,16,0 +2020-05-23,Spencer,Kentucky,21215,16,0 +2020-05-24,Spencer,Kentucky,21215,16,0 +2020-05-25,Spencer,Kentucky,21215,16,0 +2020-05-26,Spencer,Kentucky,21215,17,0 +2020-05-27,Spencer,Kentucky,21215,17,0 +2020-05-28,Spencer,Kentucky,21215,19,0 +2020-05-29,Spencer,Kentucky,21215,19,0 +2020-05-30,Spencer,Kentucky,21215,22,0 +2020-05-31,Spencer,Kentucky,21215,22,0 +2020-06-01,Spencer,Kentucky,21215,22,0 +2020-06-02,Spencer,Kentucky,21215,22,0 +2020-06-03,Spencer,Kentucky,21215,24,0 +2020-06-04,Spencer,Kentucky,21215,24,0 +2020-06-05,Spencer,Kentucky,21215,24,0 +2020-06-06,Spencer,Kentucky,21215,25,0 +2020-06-07,Spencer,Kentucky,21215,25,0 +2020-06-08,Spencer,Kentucky,21215,25,0 +2020-06-09,Spencer,Kentucky,21215,25,0 +2020-06-10,Spencer,Kentucky,21215,25,0 +2020-06-11,Spencer,Kentucky,21215,25,0 +2020-06-12,Spencer,Kentucky,21215,25,0 +2020-06-13,Spencer,Kentucky,21215,26,0 +2020-06-14,Spencer,Kentucky,21215,26,0 +2020-06-15,Spencer,Kentucky,21215,26,0 +2020-06-16,Spencer,Kentucky,21215,26,0 +2020-06-17,Spencer,Kentucky,21215,26,0 +2020-06-18,Spencer,Kentucky,21215,28,0 +2020-06-19,Spencer,Kentucky,21215,28,0 +2020-06-20,Spencer,Kentucky,21215,29,0 +2020-06-21,Spencer,Kentucky,21215,29,0 +2020-06-22,Spencer,Kentucky,21215,29,0 +2020-06-23,Spencer,Kentucky,21215,31,0 +2020-06-24,Spencer,Kentucky,21215,33,0 +2020-06-25,Spencer,Kentucky,21215,33,0 +2020-06-26,Spencer,Kentucky,21215,33,0 +2020-06-27,Spencer,Kentucky,21215,36,0 +2020-06-28,Spencer,Kentucky,21215,36,0 +2020-06-29,Spencer,Kentucky,21215,36,0 +2020-06-30,Spencer,Kentucky,21215,36,0 +2020-07-01,Spencer,Kentucky,21215,37,0 +2020-07-02,Spencer,Kentucky,21215,37,0 +2020-07-03,Spencer,Kentucky,21215,38,0 +2020-07-04,Spencer,Kentucky,21215,38,0 +2020-07-05,Spencer,Kentucky,21215,38,0 +2020-07-06,Spencer,Kentucky,21215,40,0 +2020-07-07,Spencer,Kentucky,21215,40,0 +2020-07-08,Spencer,Kentucky,21215,41,0 +2020-07-09,Spencer,Kentucky,21215,41,0 +2020-03-29,Taylor,Kentucky,21217,2,0 +2020-03-30,Taylor,Kentucky,21217,2,0 +2020-03-31,Taylor,Kentucky,21217,2,0 +2020-04-01,Taylor,Kentucky,21217,2,0 +2020-04-02,Taylor,Kentucky,21217,2,0 +2020-04-03,Taylor,Kentucky,21217,2,0 +2020-04-04,Taylor,Kentucky,21217,2,0 +2020-04-05,Taylor,Kentucky,21217,2,0 +2020-04-06,Taylor,Kentucky,21217,2,0 +2020-04-07,Taylor,Kentucky,21217,2,0 +2020-04-08,Taylor,Kentucky,21217,3,0 +2020-04-09,Taylor,Kentucky,21217,3,0 +2020-04-10,Taylor,Kentucky,21217,3,0 +2020-04-11,Taylor,Kentucky,21217,3,0 +2020-04-12,Taylor,Kentucky,21217,3,0 +2020-04-13,Taylor,Kentucky,21217,4,0 +2020-04-14,Taylor,Kentucky,21217,4,0 +2020-04-15,Taylor,Kentucky,21217,4,0 +2020-04-16,Taylor,Kentucky,21217,4,0 +2020-04-17,Taylor,Kentucky,21217,4,0 +2020-04-18,Taylor,Kentucky,21217,5,0 +2020-04-19,Taylor,Kentucky,21217,5,0 +2020-04-20,Taylor,Kentucky,21217,5,0 +2020-04-21,Taylor,Kentucky,21217,4,0 +2020-04-22,Taylor,Kentucky,21217,4,0 +2020-04-23,Taylor,Kentucky,21217,4,0 +2020-04-24,Taylor,Kentucky,21217,5,0 +2020-04-25,Taylor,Kentucky,21217,6,0 +2020-04-26,Taylor,Kentucky,21217,6,0 +2020-04-27,Taylor,Kentucky,21217,6,0 +2020-04-28,Taylor,Kentucky,21217,8,0 +2020-04-29,Taylor,Kentucky,21217,8,0 +2020-04-30,Taylor,Kentucky,21217,8,0 +2020-05-01,Taylor,Kentucky,21217,8,0 +2020-05-02,Taylor,Kentucky,21217,8,0 +2020-05-03,Taylor,Kentucky,21217,8,0 +2020-05-04,Taylor,Kentucky,21217,8,0 +2020-05-05,Taylor,Kentucky,21217,8,0 +2020-05-06,Taylor,Kentucky,21217,8,0 +2020-05-07,Taylor,Kentucky,21217,9,0 +2020-05-08,Taylor,Kentucky,21217,9,0 +2020-05-09,Taylor,Kentucky,21217,9,0 +2020-05-10,Taylor,Kentucky,21217,9,0 +2020-05-11,Taylor,Kentucky,21217,9,0 +2020-05-12,Taylor,Kentucky,21217,9,0 +2020-05-13,Taylor,Kentucky,21217,9,0 +2020-05-14,Taylor,Kentucky,21217,9,0 +2020-05-15,Taylor,Kentucky,21217,9,0 +2020-05-16,Taylor,Kentucky,21217,9,0 +2020-05-17,Taylor,Kentucky,21217,9,0 +2020-05-18,Taylor,Kentucky,21217,9,0 +2020-05-19,Taylor,Kentucky,21217,9,0 +2020-05-20,Taylor,Kentucky,21217,9,0 +2020-05-21,Taylor,Kentucky,21217,10,0 +2020-05-22,Taylor,Kentucky,21217,10,0 +2020-05-23,Taylor,Kentucky,21217,11,0 +2020-05-24,Taylor,Kentucky,21217,11,0 +2020-05-25,Taylor,Kentucky,21217,11,0 +2020-05-26,Taylor,Kentucky,21217,11,0 +2020-05-27,Taylor,Kentucky,21217,11,0 +2020-05-28,Taylor,Kentucky,21217,11,0 +2020-05-29,Taylor,Kentucky,21217,11,0 +2020-05-30,Taylor,Kentucky,21217,11,1 +2020-05-31,Taylor,Kentucky,21217,11,1 +2020-06-01,Taylor,Kentucky,21217,11,1 +2020-06-02,Taylor,Kentucky,21217,12,1 +2020-06-03,Taylor,Kentucky,21217,13,1 +2020-06-04,Taylor,Kentucky,21217,13,1 +2020-06-05,Taylor,Kentucky,21217,13,1 +2020-06-06,Taylor,Kentucky,21217,13,1 +2020-06-07,Taylor,Kentucky,21217,13,1 +2020-06-08,Taylor,Kentucky,21217,15,1 +2020-06-09,Taylor,Kentucky,21217,15,1 +2020-06-10,Taylor,Kentucky,21217,16,1 +2020-06-11,Taylor,Kentucky,21217,16,1 +2020-06-12,Taylor,Kentucky,21217,16,1 +2020-06-13,Taylor,Kentucky,21217,16,1 +2020-06-14,Taylor,Kentucky,21217,17,1 +2020-06-15,Taylor,Kentucky,21217,20,1 +2020-06-16,Taylor,Kentucky,21217,21,1 +2020-06-17,Taylor,Kentucky,21217,26,1 +2020-06-18,Taylor,Kentucky,21217,26,1 +2020-06-19,Taylor,Kentucky,21217,29,1 +2020-06-20,Taylor,Kentucky,21217,29,1 +2020-06-21,Taylor,Kentucky,21217,31,1 +2020-06-22,Taylor,Kentucky,21217,33,1 +2020-06-23,Taylor,Kentucky,21217,34,1 +2020-06-24,Taylor,Kentucky,21217,37,1 +2020-06-25,Taylor,Kentucky,21217,38,1 +2020-06-26,Taylor,Kentucky,21217,38,1 +2020-06-27,Taylor,Kentucky,21217,39,1 +2020-06-28,Taylor,Kentucky,21217,40,1 +2020-06-29,Taylor,Kentucky,21217,41,1 +2020-06-30,Taylor,Kentucky,21217,43,1 +2020-07-01,Taylor,Kentucky,21217,44,1 +2020-07-02,Taylor,Kentucky,21217,45,1 +2020-07-03,Taylor,Kentucky,21217,46,1 +2020-07-04,Taylor,Kentucky,21217,46,1 +2020-07-05,Taylor,Kentucky,21217,46,1 +2020-07-06,Taylor,Kentucky,21217,46,1 +2020-07-07,Taylor,Kentucky,21217,48,1 +2020-07-08,Taylor,Kentucky,21217,52,1 +2020-07-09,Taylor,Kentucky,21217,54,1 +2020-04-07,Todd,Kentucky,21219,2,0 +2020-04-08,Todd,Kentucky,21219,3,0 +2020-04-09,Todd,Kentucky,21219,3,0 +2020-04-10,Todd,Kentucky,21219,5,0 +2020-04-11,Todd,Kentucky,21219,6,0 +2020-04-12,Todd,Kentucky,21219,7,0 +2020-04-13,Todd,Kentucky,21219,7,0 +2020-04-14,Todd,Kentucky,21219,8,0 +2020-04-15,Todd,Kentucky,21219,10,0 +2020-04-16,Todd,Kentucky,21219,10,0 +2020-04-17,Todd,Kentucky,21219,10,0 +2020-04-18,Todd,Kentucky,21219,11,0 +2020-04-19,Todd,Kentucky,21219,9,0 +2020-04-20,Todd,Kentucky,21219,9,0 +2020-04-21,Todd,Kentucky,21219,9,0 +2020-04-22,Todd,Kentucky,21219,9,0 +2020-04-23,Todd,Kentucky,21219,9,0 +2020-04-24,Todd,Kentucky,21219,10,0 +2020-04-25,Todd,Kentucky,21219,10,0 +2020-04-26,Todd,Kentucky,21219,11,0 +2020-04-27,Todd,Kentucky,21219,11,0 +2020-04-28,Todd,Kentucky,21219,12,0 +2020-04-29,Todd,Kentucky,21219,12,0 +2020-04-30,Todd,Kentucky,21219,12,0 +2020-05-01,Todd,Kentucky,21219,12,0 +2020-05-02,Todd,Kentucky,21219,12,0 +2020-05-03,Todd,Kentucky,21219,12,0 +2020-05-04,Todd,Kentucky,21219,12,0 +2020-05-05,Todd,Kentucky,21219,13,0 +2020-05-06,Todd,Kentucky,21219,13,0 +2020-05-07,Todd,Kentucky,21219,13,0 +2020-05-08,Todd,Kentucky,21219,13,0 +2020-05-09,Todd,Kentucky,21219,14,0 +2020-05-10,Todd,Kentucky,21219,14,0 +2020-05-11,Todd,Kentucky,21219,15,0 +2020-05-12,Todd,Kentucky,21219,15,0 +2020-05-13,Todd,Kentucky,21219,15,0 +2020-05-14,Todd,Kentucky,21219,15,0 +2020-05-15,Todd,Kentucky,21219,17,0 +2020-05-16,Todd,Kentucky,21219,17,0 +2020-05-17,Todd,Kentucky,21219,17,0 +2020-05-18,Todd,Kentucky,21219,17,0 +2020-05-19,Todd,Kentucky,21219,17,0 +2020-05-20,Todd,Kentucky,21219,17,0 +2020-05-21,Todd,Kentucky,21219,17,0 +2020-05-22,Todd,Kentucky,21219,17,0 +2020-05-23,Todd,Kentucky,21219,17,0 +2020-05-24,Todd,Kentucky,21219,17,0 +2020-05-25,Todd,Kentucky,21219,17,0 +2020-05-26,Todd,Kentucky,21219,17,0 +2020-05-27,Todd,Kentucky,21219,17,0 +2020-05-28,Todd,Kentucky,21219,17,0 +2020-05-29,Todd,Kentucky,21219,17,0 +2020-05-30,Todd,Kentucky,21219,17,0 +2020-05-31,Todd,Kentucky,21219,17,0 +2020-06-01,Todd,Kentucky,21219,17,0 +2020-06-02,Todd,Kentucky,21219,17,0 +2020-06-03,Todd,Kentucky,21219,18,0 +2020-06-04,Todd,Kentucky,21219,23,0 +2020-06-05,Todd,Kentucky,21219,23,0 +2020-06-06,Todd,Kentucky,21219,23,0 +2020-06-07,Todd,Kentucky,21219,23,0 +2020-06-08,Todd,Kentucky,21219,23,0 +2020-06-09,Todd,Kentucky,21219,23,0 +2020-06-10,Todd,Kentucky,21219,23,0 +2020-06-11,Todd,Kentucky,21219,23,0 +2020-06-12,Todd,Kentucky,21219,23,0 +2020-06-13,Todd,Kentucky,21219,23,0 +2020-06-14,Todd,Kentucky,21219,23,0 +2020-06-15,Todd,Kentucky,21219,23,0 +2020-06-16,Todd,Kentucky,21219,23,0 +2020-06-17,Todd,Kentucky,21219,23,0 +2020-06-18,Todd,Kentucky,21219,23,0 +2020-06-19,Todd,Kentucky,21219,23,0 +2020-06-20,Todd,Kentucky,21219,23,0 +2020-06-21,Todd,Kentucky,21219,23,0 +2020-06-22,Todd,Kentucky,21219,23,0 +2020-06-23,Todd,Kentucky,21219,24,0 +2020-06-24,Todd,Kentucky,21219,24,0 +2020-06-25,Todd,Kentucky,21219,24,0 +2020-06-26,Todd,Kentucky,21219,25,0 +2020-06-27,Todd,Kentucky,21219,25,0 +2020-06-28,Todd,Kentucky,21219,25,0 +2020-06-29,Todd,Kentucky,21219,25,0 +2020-06-30,Todd,Kentucky,21219,25,0 +2020-07-01,Todd,Kentucky,21219,25,0 +2020-07-02,Todd,Kentucky,21219,25,0 +2020-07-03,Todd,Kentucky,21219,26,0 +2020-07-04,Todd,Kentucky,21219,26,0 +2020-07-05,Todd,Kentucky,21219,26,0 +2020-07-06,Todd,Kentucky,21219,26,0 +2020-07-07,Todd,Kentucky,21219,26,0 +2020-07-08,Todd,Kentucky,21219,26,0 +2020-07-09,Todd,Kentucky,21219,26,0 +2020-04-12,Trigg,Kentucky,21221,4,0 +2020-04-13,Trigg,Kentucky,21221,4,0 +2020-04-14,Trigg,Kentucky,21221,4,0 +2020-04-15,Trigg,Kentucky,21221,4,0 +2020-04-16,Trigg,Kentucky,21221,4,0 +2020-04-17,Trigg,Kentucky,21221,4,0 +2020-04-18,Trigg,Kentucky,21221,4,0 +2020-04-19,Trigg,Kentucky,21221,4,0 +2020-04-20,Trigg,Kentucky,21221,4,0 +2020-04-21,Trigg,Kentucky,21221,4,0 +2020-04-22,Trigg,Kentucky,21221,4,0 +2020-04-23,Trigg,Kentucky,21221,4,0 +2020-04-24,Trigg,Kentucky,21221,4,0 +2020-04-25,Trigg,Kentucky,21221,5,0 +2020-04-26,Trigg,Kentucky,21221,5,0 +2020-04-27,Trigg,Kentucky,21221,5,0 +2020-04-28,Trigg,Kentucky,21221,8,0 +2020-04-29,Trigg,Kentucky,21221,9,0 +2020-04-30,Trigg,Kentucky,21221,9,0 +2020-05-01,Trigg,Kentucky,21221,9,0 +2020-05-02,Trigg,Kentucky,21221,9,0 +2020-05-03,Trigg,Kentucky,21221,9,0 +2020-05-04,Trigg,Kentucky,21221,9,0 +2020-05-05,Trigg,Kentucky,21221,9,0 +2020-05-06,Trigg,Kentucky,21221,9,0 +2020-05-07,Trigg,Kentucky,21221,9,0 +2020-05-08,Trigg,Kentucky,21221,9,0 +2020-05-09,Trigg,Kentucky,21221,9,0 +2020-05-10,Trigg,Kentucky,21221,9,0 +2020-05-11,Trigg,Kentucky,21221,9,0 +2020-05-12,Trigg,Kentucky,21221,9,0 +2020-05-13,Trigg,Kentucky,21221,9,0 +2020-05-14,Trigg,Kentucky,21221,9,0 +2020-05-15,Trigg,Kentucky,21221,9,0 +2020-05-16,Trigg,Kentucky,21221,9,0 +2020-05-17,Trigg,Kentucky,21221,9,0 +2020-05-18,Trigg,Kentucky,21221,9,0 +2020-05-19,Trigg,Kentucky,21221,9,0 +2020-05-20,Trigg,Kentucky,21221,9,0 +2020-05-21,Trigg,Kentucky,21221,9,0 +2020-05-22,Trigg,Kentucky,21221,9,0 +2020-05-23,Trigg,Kentucky,21221,9,0 +2020-05-24,Trigg,Kentucky,21221,9,0 +2020-05-25,Trigg,Kentucky,21221,9,0 +2020-05-26,Trigg,Kentucky,21221,9,0 +2020-05-27,Trigg,Kentucky,21221,10,0 +2020-05-28,Trigg,Kentucky,21221,10,0 +2020-05-29,Trigg,Kentucky,21221,10,0 +2020-05-30,Trigg,Kentucky,21221,10,0 +2020-05-31,Trigg,Kentucky,21221,10,0 +2020-06-01,Trigg,Kentucky,21221,10,0 +2020-06-02,Trigg,Kentucky,21221,10,0 +2020-06-03,Trigg,Kentucky,21221,10,0 +2020-06-04,Trigg,Kentucky,21221,11,0 +2020-06-05,Trigg,Kentucky,21221,11,0 +2020-06-06,Trigg,Kentucky,21221,11,0 +2020-06-07,Trigg,Kentucky,21221,11,0 +2020-06-08,Trigg,Kentucky,21221,11,0 +2020-06-09,Trigg,Kentucky,21221,12,0 +2020-06-10,Trigg,Kentucky,21221,13,0 +2020-06-11,Trigg,Kentucky,21221,14,0 +2020-06-12,Trigg,Kentucky,21221,16,0 +2020-06-13,Trigg,Kentucky,21221,17,0 +2020-06-14,Trigg,Kentucky,21221,17,0 +2020-06-15,Trigg,Kentucky,21221,17,0 +2020-06-16,Trigg,Kentucky,21221,17,0 +2020-06-17,Trigg,Kentucky,21221,17,0 +2020-06-18,Trigg,Kentucky,21221,18,0 +2020-06-19,Trigg,Kentucky,21221,20,0 +2020-06-20,Trigg,Kentucky,21221,22,0 +2020-06-21,Trigg,Kentucky,21221,22,0 +2020-06-22,Trigg,Kentucky,21221,23,0 +2020-06-23,Trigg,Kentucky,21221,23,0 +2020-06-24,Trigg,Kentucky,21221,23,0 +2020-06-25,Trigg,Kentucky,21221,23,0 +2020-06-26,Trigg,Kentucky,21221,23,0 +2020-06-27,Trigg,Kentucky,21221,24,0 +2020-06-28,Trigg,Kentucky,21221,24,0 +2020-06-29,Trigg,Kentucky,21221,24,0 +2020-06-30,Trigg,Kentucky,21221,26,0 +2020-07-01,Trigg,Kentucky,21221,26,0 +2020-07-02,Trigg,Kentucky,21221,26,0 +2020-07-03,Trigg,Kentucky,21221,26,0 +2020-07-04,Trigg,Kentucky,21221,26,0 +2020-07-05,Trigg,Kentucky,21221,26,0 +2020-07-06,Trigg,Kentucky,21221,26,0 +2020-07-07,Trigg,Kentucky,21221,26,0 +2020-07-08,Trigg,Kentucky,21221,26,0 +2020-07-09,Trigg,Kentucky,21221,26,0 +2020-04-10,Trimble,Kentucky,21223,1,0 +2020-04-11,Trimble,Kentucky,21223,2,0 +2020-04-12,Trimble,Kentucky,21223,1,0 +2020-04-13,Trimble,Kentucky,21223,1,0 +2020-04-14,Trimble,Kentucky,21223,1,0 +2020-04-15,Trimble,Kentucky,21223,1,0 +2020-04-16,Trimble,Kentucky,21223,1,0 +2020-04-17,Trimble,Kentucky,21223,2,0 +2020-04-18,Trimble,Kentucky,21223,2,0 +2020-04-19,Trimble,Kentucky,21223,2,0 +2020-04-20,Trimble,Kentucky,21223,2,0 +2020-04-21,Trimble,Kentucky,21223,2,0 +2020-04-22,Trimble,Kentucky,21223,2,0 +2020-04-23,Trimble,Kentucky,21223,2,0 +2020-04-24,Trimble,Kentucky,21223,2,0 +2020-04-25,Trimble,Kentucky,21223,2,0 +2020-04-26,Trimble,Kentucky,21223,3,0 +2020-04-27,Trimble,Kentucky,21223,3,0 +2020-04-28,Trimble,Kentucky,21223,3,0 +2020-04-29,Trimble,Kentucky,21223,3,0 +2020-04-30,Trimble,Kentucky,21223,3,0 +2020-05-01,Trimble,Kentucky,21223,3,0 +2020-05-02,Trimble,Kentucky,21223,3,0 +2020-05-03,Trimble,Kentucky,21223,3,0 +2020-05-04,Trimble,Kentucky,21223,3,0 +2020-05-05,Trimble,Kentucky,21223,3,0 +2020-05-06,Trimble,Kentucky,21223,3,0 +2020-05-07,Trimble,Kentucky,21223,3,0 +2020-05-08,Trimble,Kentucky,21223,3,0 +2020-05-09,Trimble,Kentucky,21223,3,0 +2020-05-10,Trimble,Kentucky,21223,3,0 +2020-05-11,Trimble,Kentucky,21223,3,0 +2020-05-12,Trimble,Kentucky,21223,3,0 +2020-05-13,Trimble,Kentucky,21223,3,0 +2020-05-14,Trimble,Kentucky,21223,3,0 +2020-05-15,Trimble,Kentucky,21223,3,0 +2020-05-16,Trimble,Kentucky,21223,3,0 +2020-05-17,Trimble,Kentucky,21223,3,0 +2020-05-18,Trimble,Kentucky,21223,3,0 +2020-05-19,Trimble,Kentucky,21223,3,0 +2020-05-20,Trimble,Kentucky,21223,3,0 +2020-05-21,Trimble,Kentucky,21223,4,0 +2020-05-22,Trimble,Kentucky,21223,5,0 +2020-05-23,Trimble,Kentucky,21223,5,0 +2020-05-24,Trimble,Kentucky,21223,5,0 +2020-05-25,Trimble,Kentucky,21223,5,0 +2020-05-26,Trimble,Kentucky,21223,5,0 +2020-05-27,Trimble,Kentucky,21223,5,0 +2020-05-28,Trimble,Kentucky,21223,5,0 +2020-05-29,Trimble,Kentucky,21223,5,0 +2020-05-30,Trimble,Kentucky,21223,6,0 +2020-05-31,Trimble,Kentucky,21223,6,0 +2020-06-01,Trimble,Kentucky,21223,6,0 +2020-06-02,Trimble,Kentucky,21223,6,0 +2020-06-03,Trimble,Kentucky,21223,6,0 +2020-06-04,Trimble,Kentucky,21223,6,0 +2020-06-05,Trimble,Kentucky,21223,6,0 +2020-06-06,Trimble,Kentucky,21223,6,0 +2020-06-07,Trimble,Kentucky,21223,6,0 +2020-06-08,Trimble,Kentucky,21223,6,0 +2020-06-09,Trimble,Kentucky,21223,6,0 +2020-06-10,Trimble,Kentucky,21223,6,0 +2020-06-11,Trimble,Kentucky,21223,5,0 +2020-06-12,Trimble,Kentucky,21223,5,0 +2020-06-13,Trimble,Kentucky,21223,5,0 +2020-06-14,Trimble,Kentucky,21223,5,0 +2020-06-15,Trimble,Kentucky,21223,5,0 +2020-06-16,Trimble,Kentucky,21223,5,0 +2020-06-17,Trimble,Kentucky,21223,5,0 +2020-06-18,Trimble,Kentucky,21223,5,0 +2020-06-19,Trimble,Kentucky,21223,5,0 +2020-06-20,Trimble,Kentucky,21223,5,0 +2020-06-21,Trimble,Kentucky,21223,5,0 +2020-06-22,Trimble,Kentucky,21223,5,0 +2020-06-23,Trimble,Kentucky,21223,6,0 +2020-06-24,Trimble,Kentucky,21223,6,0 +2020-06-25,Trimble,Kentucky,21223,6,0 +2020-06-26,Trimble,Kentucky,21223,6,0 +2020-06-27,Trimble,Kentucky,21223,6,0 +2020-06-28,Trimble,Kentucky,21223,7,0 +2020-06-29,Trimble,Kentucky,21223,7,0 +2020-06-30,Trimble,Kentucky,21223,7,0 +2020-07-01,Trimble,Kentucky,21223,7,0 +2020-07-02,Trimble,Kentucky,21223,7,0 +2020-07-03,Trimble,Kentucky,21223,7,0 +2020-07-04,Trimble,Kentucky,21223,7,0 +2020-07-05,Trimble,Kentucky,21223,7,0 +2020-07-06,Trimble,Kentucky,21223,7,0 +2020-07-07,Trimble,Kentucky,21223,7,0 +2020-07-08,Trimble,Kentucky,21223,7,0 +2020-07-09,Trimble,Kentucky,21223,9,0 +2020-03-26,Union,Kentucky,21225,1,0 +2020-03-27,Union,Kentucky,21225,1,0 +2020-03-28,Union,Kentucky,21225,1,0 +2020-03-29,Union,Kentucky,21225,1,0 +2020-03-30,Union,Kentucky,21225,1,0 +2020-03-31,Union,Kentucky,21225,2,0 +2020-04-01,Union,Kentucky,21225,2,0 +2020-04-02,Union,Kentucky,21225,2,0 +2020-04-03,Union,Kentucky,21225,2,0 +2020-04-04,Union,Kentucky,21225,2,0 +2020-04-05,Union,Kentucky,21225,4,0 +2020-04-06,Union,Kentucky,21225,4,0 +2020-04-07,Union,Kentucky,21225,4,0 +2020-04-08,Union,Kentucky,21225,4,0 +2020-04-09,Union,Kentucky,21225,3,0 +2020-04-10,Union,Kentucky,21225,3,0 +2020-04-11,Union,Kentucky,21225,5,0 +2020-04-12,Union,Kentucky,21225,5,0 +2020-04-13,Union,Kentucky,21225,5,0 +2020-04-14,Union,Kentucky,21225,5,0 +2020-04-15,Union,Kentucky,21225,5,0 +2020-04-16,Union,Kentucky,21225,6,0 +2020-04-17,Union,Kentucky,21225,6,0 +2020-04-18,Union,Kentucky,21225,8,0 +2020-04-19,Union,Kentucky,21225,8,0 +2020-04-20,Union,Kentucky,21225,8,0 +2020-04-21,Union,Kentucky,21225,8,0 +2020-04-22,Union,Kentucky,21225,8,0 +2020-04-23,Union,Kentucky,21225,8,0 +2020-04-24,Union,Kentucky,21225,8,0 +2020-04-25,Union,Kentucky,21225,8,0 +2020-04-26,Union,Kentucky,21225,8,0 +2020-04-27,Union,Kentucky,21225,8,0 +2020-04-28,Union,Kentucky,21225,8,0 +2020-04-29,Union,Kentucky,21225,8,0 +2020-04-30,Union,Kentucky,21225,8,0 +2020-05-01,Union,Kentucky,21225,8,0 +2020-05-02,Union,Kentucky,21225,8,0 +2020-05-03,Union,Kentucky,21225,8,0 +2020-05-04,Union,Kentucky,21225,8,0 +2020-05-05,Union,Kentucky,21225,9,0 +2020-05-06,Union,Kentucky,21225,10,0 +2020-05-07,Union,Kentucky,21225,10,0 +2020-05-08,Union,Kentucky,21225,10,0 +2020-05-09,Union,Kentucky,21225,10,0 +2020-05-10,Union,Kentucky,21225,10,0 +2020-05-11,Union,Kentucky,21225,10,0 +2020-05-12,Union,Kentucky,21225,10,0 +2020-05-13,Union,Kentucky,21225,10,0 +2020-05-14,Union,Kentucky,21225,10,0 +2020-05-15,Union,Kentucky,21225,10,0 +2020-05-16,Union,Kentucky,21225,10,0 +2020-05-17,Union,Kentucky,21225,10,0 +2020-05-18,Union,Kentucky,21225,10,0 +2020-05-19,Union,Kentucky,21225,10,0 +2020-05-20,Union,Kentucky,21225,10,0 +2020-05-21,Union,Kentucky,21225,10,0 +2020-05-22,Union,Kentucky,21225,10,0 +2020-05-23,Union,Kentucky,21225,10,0 +2020-05-24,Union,Kentucky,21225,10,0 +2020-05-25,Union,Kentucky,21225,10,0 +2020-05-26,Union,Kentucky,21225,10,0 +2020-05-27,Union,Kentucky,21225,10,0 +2020-05-28,Union,Kentucky,21225,10,0 +2020-05-29,Union,Kentucky,21225,11,0 +2020-05-30,Union,Kentucky,21225,11,0 +2020-05-31,Union,Kentucky,21225,11,0 +2020-06-01,Union,Kentucky,21225,13,0 +2020-06-02,Union,Kentucky,21225,15,0 +2020-06-03,Union,Kentucky,21225,15,0 +2020-06-04,Union,Kentucky,21225,15,0 +2020-06-05,Union,Kentucky,21225,15,0 +2020-06-06,Union,Kentucky,21225,15,0 +2020-06-07,Union,Kentucky,21225,15,0 +2020-06-08,Union,Kentucky,21225,15,0 +2020-06-09,Union,Kentucky,21225,15,0 +2020-06-10,Union,Kentucky,21225,15,0 +2020-06-11,Union,Kentucky,21225,15,0 +2020-06-12,Union,Kentucky,21225,16,0 +2020-06-13,Union,Kentucky,21225,17,0 +2020-06-14,Union,Kentucky,21225,17,0 +2020-06-15,Union,Kentucky,21225,19,0 +2020-06-16,Union,Kentucky,21225,19,0 +2020-06-17,Union,Kentucky,21225,20,0 +2020-06-18,Union,Kentucky,21225,22,0 +2020-06-19,Union,Kentucky,21225,24,0 +2020-06-20,Union,Kentucky,21225,25,0 +2020-06-21,Union,Kentucky,21225,25,0 +2020-06-22,Union,Kentucky,21225,25,0 +2020-06-23,Union,Kentucky,21225,25,0 +2020-06-24,Union,Kentucky,21225,25,0 +2020-06-25,Union,Kentucky,21225,26,0 +2020-06-26,Union,Kentucky,21225,28,0 +2020-06-27,Union,Kentucky,21225,29,0 +2020-06-28,Union,Kentucky,21225,29,0 +2020-06-29,Union,Kentucky,21225,29,0 +2020-06-30,Union,Kentucky,21225,29,0 +2020-07-01,Union,Kentucky,21225,29,0 +2020-07-02,Union,Kentucky,21225,29,0 +2020-07-03,Union,Kentucky,21225,29,0 +2020-07-04,Union,Kentucky,21225,29,0 +2020-07-05,Union,Kentucky,21225,29,0 +2020-07-06,Union,Kentucky,21225,29,0 +2020-07-07,Union,Kentucky,21225,30,0 +2020-07-08,Union,Kentucky,21225,30,0 +2020-07-09,Union,Kentucky,21225,30,0 +2020-03-18,Warren,Kentucky,21227,1,0 +2020-03-19,Warren,Kentucky,21227,1,0 +2020-03-20,Warren,Kentucky,21227,2,0 +2020-03-21,Warren,Kentucky,21227,4,0 +2020-03-22,Warren,Kentucky,21227,5,0 +2020-03-23,Warren,Kentucky,21227,6,0 +2020-03-24,Warren,Kentucky,21227,6,0 +2020-03-25,Warren,Kentucky,21227,7,0 +2020-03-26,Warren,Kentucky,21227,7,0 +2020-03-27,Warren,Kentucky,21227,8,0 +2020-03-28,Warren,Kentucky,21227,10,0 +2020-03-29,Warren,Kentucky,21227,10,0 +2020-03-30,Warren,Kentucky,21227,11,0 +2020-03-31,Warren,Kentucky,21227,13,0 +2020-04-01,Warren,Kentucky,21227,17,0 +2020-04-02,Warren,Kentucky,21227,18,0 +2020-04-03,Warren,Kentucky,21227,18,0 +2020-04-04,Warren,Kentucky,21227,19,0 +2020-04-05,Warren,Kentucky,21227,20,0 +2020-04-06,Warren,Kentucky,21227,20,0 +2020-04-07,Warren,Kentucky,21227,32,0 +2020-04-08,Warren,Kentucky,21227,32,0 +2020-04-09,Warren,Kentucky,21227,35,0 +2020-04-10,Warren,Kentucky,21227,35,0 +2020-04-11,Warren,Kentucky,21227,49,0 +2020-04-12,Warren,Kentucky,21227,46,0 +2020-04-13,Warren,Kentucky,21227,47,0 +2020-04-14,Warren,Kentucky,21227,52,0 +2020-04-15,Warren,Kentucky,21227,64,0 +2020-04-16,Warren,Kentucky,21227,71,0 +2020-04-17,Warren,Kentucky,21227,82,0 +2020-04-18,Warren,Kentucky,21227,87,0 +2020-04-19,Warren,Kentucky,21227,95,0 +2020-04-20,Warren,Kentucky,21227,101,0 +2020-04-21,Warren,Kentucky,21227,132,0 +2020-04-22,Warren,Kentucky,21227,132,0 +2020-04-23,Warren,Kentucky,21227,184,0 +2020-04-24,Warren,Kentucky,21227,184,0 +2020-04-25,Warren,Kentucky,21227,184,0 +2020-04-26,Warren,Kentucky,21227,219,0 +2020-04-27,Warren,Kentucky,21227,234,0 +2020-04-28,Warren,Kentucky,21227,263,0 +2020-04-29,Warren,Kentucky,21227,313,1 +2020-04-30,Warren,Kentucky,21227,332,1 +2020-05-01,Warren,Kentucky,21227,344,1 +2020-05-02,Warren,Kentucky,21227,352,1 +2020-05-03,Warren,Kentucky,21227,369,1 +2020-05-04,Warren,Kentucky,21227,400,1 +2020-05-05,Warren,Kentucky,21227,426,1 +2020-05-06,Warren,Kentucky,21227,447,1 +2020-05-07,Warren,Kentucky,21227,492,2 +2020-05-08,Warren,Kentucky,21227,512,2 +2020-05-09,Warren,Kentucky,21227,530,2 +2020-05-10,Warren,Kentucky,21227,530,2 +2020-05-11,Warren,Kentucky,21227,573,2 +2020-05-12,Warren,Kentucky,21227,637,2 +2020-05-13,Warren,Kentucky,21227,637,2 +2020-05-14,Warren,Kentucky,21227,730,2 +2020-05-15,Warren,Kentucky,21227,751,2 +2020-05-16,Warren,Kentucky,21227,776,2 +2020-05-17,Warren,Kentucky,21227,776,2 +2020-05-18,Warren,Kentucky,21227,810,3 +2020-05-19,Warren,Kentucky,21227,828,3 +2020-05-20,Warren,Kentucky,21227,863,3 +2020-05-21,Warren,Kentucky,21227,879,5 +2020-05-22,Warren,Kentucky,21227,917,5 +2020-05-23,Warren,Kentucky,21227,920,5 +2020-05-24,Warren,Kentucky,21227,920,5 +2020-05-25,Warren,Kentucky,21227,920,5 +2020-05-26,Warren,Kentucky,21227,950,5 +2020-05-27,Warren,Kentucky,21227,950,5 +2020-05-28,Warren,Kentucky,21227,989,6 +2020-05-29,Warren,Kentucky,21227,1000,6 +2020-05-30,Warren,Kentucky,21227,1007,6 +2020-05-31,Warren,Kentucky,21227,1007,6 +2020-06-01,Warren,Kentucky,21227,1044,6 +2020-06-02,Warren,Kentucky,21227,1063,7 +2020-06-03,Warren,Kentucky,21227,1079,7 +2020-06-04,Warren,Kentucky,21227,1093,7 +2020-06-05,Warren,Kentucky,21227,1105,7 +2020-06-06,Warren,Kentucky,21227,1112,7 +2020-06-07,Warren,Kentucky,21227,1112,7 +2020-06-08,Warren,Kentucky,21227,1142,7 +2020-06-09,Warren,Kentucky,21227,1174,8 +2020-06-10,Warren,Kentucky,21227,1179,8 +2020-06-11,Warren,Kentucky,21227,1192,8 +2020-06-12,Warren,Kentucky,21227,1220,8 +2020-06-13,Warren,Kentucky,21227,1248,8 +2020-06-14,Warren,Kentucky,21227,1248,8 +2020-06-15,Warren,Kentucky,21227,1275,10 +2020-06-16,Warren,Kentucky,21227,1279,10 +2020-06-17,Warren,Kentucky,21227,1299,10 +2020-06-18,Warren,Kentucky,21227,1305,10 +2020-06-19,Warren,Kentucky,21227,1323,10 +2020-06-20,Warren,Kentucky,21227,1339,10 +2020-06-21,Warren,Kentucky,21227,1357,10 +2020-06-22,Warren,Kentucky,21227,1361,11 +2020-06-23,Warren,Kentucky,21227,1376,11 +2020-06-24,Warren,Kentucky,21227,1398,11 +2020-06-25,Warren,Kentucky,21227,1426,12 +2020-06-26,Warren,Kentucky,21227,1455,14 +2020-06-27,Warren,Kentucky,21227,1481,14 +2020-06-28,Warren,Kentucky,21227,1491,14 +2020-06-29,Warren,Kentucky,21227,1514,14 +2020-06-30,Warren,Kentucky,21227,1533,14 +2020-07-01,Warren,Kentucky,21227,1547,14 +2020-07-02,Warren,Kentucky,21227,1563,15 +2020-07-03,Warren,Kentucky,21227,1583,15 +2020-07-04,Warren,Kentucky,21227,1583,15 +2020-07-05,Warren,Kentucky,21227,1583,15 +2020-07-06,Warren,Kentucky,21227,1650,15 +2020-07-07,Warren,Kentucky,21227,1655,15 +2020-07-08,Warren,Kentucky,21227,1679,15 +2020-07-09,Warren,Kentucky,21227,1698,17 +2020-03-28,Washington,Kentucky,21229,2,0 +2020-03-29,Washington,Kentucky,21229,2,0 +2020-03-30,Washington,Kentucky,21229,2,0 +2020-03-31,Washington,Kentucky,21229,2,0 +2020-04-01,Washington,Kentucky,21229,2,0 +2020-04-02,Washington,Kentucky,21229,2,0 +2020-04-03,Washington,Kentucky,21229,2,0 +2020-04-04,Washington,Kentucky,21229,3,0 +2020-04-05,Washington,Kentucky,21229,3,0 +2020-04-06,Washington,Kentucky,21229,3,0 +2020-04-07,Washington,Kentucky,21229,3,0 +2020-04-08,Washington,Kentucky,21229,3,0 +2020-04-09,Washington,Kentucky,21229,3,0 +2020-04-10,Washington,Kentucky,21229,3,0 +2020-04-11,Washington,Kentucky,21229,3,0 +2020-04-12,Washington,Kentucky,21229,3,0 +2020-04-13,Washington,Kentucky,21229,3,0 +2020-04-14,Washington,Kentucky,21229,3,0 +2020-04-15,Washington,Kentucky,21229,3,0 +2020-04-16,Washington,Kentucky,21229,3,0 +2020-04-17,Washington,Kentucky,21229,3,0 +2020-04-18,Washington,Kentucky,21229,3,0 +2020-04-19,Washington,Kentucky,21229,3,0 +2020-04-20,Washington,Kentucky,21229,3,0 +2020-04-21,Washington,Kentucky,21229,3,0 +2020-04-22,Washington,Kentucky,21229,3,0 +2020-04-23,Washington,Kentucky,21229,4,0 +2020-04-24,Washington,Kentucky,21229,4,0 +2020-04-25,Washington,Kentucky,21229,5,0 +2020-04-26,Washington,Kentucky,21229,5,0 +2020-04-27,Washington,Kentucky,21229,5,0 +2020-04-28,Washington,Kentucky,21229,5,0 +2020-04-29,Washington,Kentucky,21229,5,0 +2020-04-30,Washington,Kentucky,21229,5,0 +2020-05-01,Washington,Kentucky,21229,5,0 +2020-05-02,Washington,Kentucky,21229,5,0 +2020-05-03,Washington,Kentucky,21229,5,0 +2020-05-04,Washington,Kentucky,21229,5,0 +2020-05-05,Washington,Kentucky,21229,5,0 +2020-05-06,Washington,Kentucky,21229,5,0 +2020-05-07,Washington,Kentucky,21229,5,0 +2020-05-08,Washington,Kentucky,21229,5,0 +2020-05-09,Washington,Kentucky,21229,5,0 +2020-05-10,Washington,Kentucky,21229,5,0 +2020-05-11,Washington,Kentucky,21229,5,0 +2020-05-12,Washington,Kentucky,21229,5,0 +2020-05-13,Washington,Kentucky,21229,5,0 +2020-05-14,Washington,Kentucky,21229,5,0 +2020-05-15,Washington,Kentucky,21229,5,0 +2020-05-16,Washington,Kentucky,21229,6,0 +2020-05-17,Washington,Kentucky,21229,6,0 +2020-05-18,Washington,Kentucky,21229,6,0 +2020-05-19,Washington,Kentucky,21229,6,0 +2020-05-20,Washington,Kentucky,21229,6,0 +2020-05-21,Washington,Kentucky,21229,6,0 +2020-05-22,Washington,Kentucky,21229,6,0 +2020-05-23,Washington,Kentucky,21229,6,0 +2020-05-24,Washington,Kentucky,21229,6,0 +2020-05-25,Washington,Kentucky,21229,6,0 +2020-05-26,Washington,Kentucky,21229,6,0 +2020-05-27,Washington,Kentucky,21229,6,0 +2020-05-28,Washington,Kentucky,21229,6,0 +2020-05-29,Washington,Kentucky,21229,6,0 +2020-05-30,Washington,Kentucky,21229,6,0 +2020-05-31,Washington,Kentucky,21229,6,0 +2020-06-01,Washington,Kentucky,21229,6,0 +2020-06-02,Washington,Kentucky,21229,6,0 +2020-06-03,Washington,Kentucky,21229,7,0 +2020-06-04,Washington,Kentucky,21229,7,0 +2020-06-05,Washington,Kentucky,21229,8,0 +2020-06-06,Washington,Kentucky,21229,8,0 +2020-06-07,Washington,Kentucky,21229,8,0 +2020-06-08,Washington,Kentucky,21229,8,0 +2020-06-09,Washington,Kentucky,21229,8,0 +2020-06-10,Washington,Kentucky,21229,8,0 +2020-06-11,Washington,Kentucky,21229,8,0 +2020-06-12,Washington,Kentucky,21229,10,0 +2020-06-13,Washington,Kentucky,21229,14,0 +2020-06-14,Washington,Kentucky,21229,14,0 +2020-06-15,Washington,Kentucky,21229,14,0 +2020-06-16,Washington,Kentucky,21229,14,0 +2020-06-17,Washington,Kentucky,21229,15,0 +2020-06-18,Washington,Kentucky,21229,17,0 +2020-06-19,Washington,Kentucky,21229,17,0 +2020-06-20,Washington,Kentucky,21229,18,0 +2020-06-21,Washington,Kentucky,21229,18,0 +2020-06-22,Washington,Kentucky,21229,21,0 +2020-06-23,Washington,Kentucky,21229,21,0 +2020-06-24,Washington,Kentucky,21229,21,0 +2020-06-25,Washington,Kentucky,21229,21,0 +2020-06-26,Washington,Kentucky,21229,21,0 +2020-06-27,Washington,Kentucky,21229,22,0 +2020-06-28,Washington,Kentucky,21229,22,0 +2020-06-29,Washington,Kentucky,21229,23,0 +2020-06-30,Washington,Kentucky,21229,23,0 +2020-07-01,Washington,Kentucky,21229,24,0 +2020-07-02,Washington,Kentucky,21229,24,0 +2020-07-03,Washington,Kentucky,21229,25,0 +2020-07-04,Washington,Kentucky,21229,25,0 +2020-07-05,Washington,Kentucky,21229,25,0 +2020-07-06,Washington,Kentucky,21229,27,0 +2020-07-07,Washington,Kentucky,21229,27,0 +2020-07-08,Washington,Kentucky,21229,28,0 +2020-07-09,Washington,Kentucky,21229,28,0 +2020-03-25,Wayne,Kentucky,21231,1,0 +2020-03-26,Wayne,Kentucky,21231,1,0 +2020-03-27,Wayne,Kentucky,21231,1,0 +2020-03-28,Wayne,Kentucky,21231,1,0 +2020-03-29,Wayne,Kentucky,21231,1,0 +2020-03-30,Wayne,Kentucky,21231,1,0 +2020-03-31,Wayne,Kentucky,21231,3,0 +2020-04-01,Wayne,Kentucky,21231,3,0 +2020-04-02,Wayne,Kentucky,21231,3,0 +2020-04-03,Wayne,Kentucky,21231,3,0 +2020-04-04,Wayne,Kentucky,21231,4,0 +2020-04-05,Wayne,Kentucky,21231,4,0 +2020-04-06,Wayne,Kentucky,21231,4,0 +2020-04-07,Wayne,Kentucky,21231,4,0 +2020-04-08,Wayne,Kentucky,21231,4,0 +2020-04-09,Wayne,Kentucky,21231,4,0 +2020-04-10,Wayne,Kentucky,21231,4,0 +2020-04-11,Wayne,Kentucky,21231,4,0 +2020-04-12,Wayne,Kentucky,21231,4,0 +2020-04-13,Wayne,Kentucky,21231,4,0 +2020-04-14,Wayne,Kentucky,21231,5,0 +2020-04-15,Wayne,Kentucky,21231,5,0 +2020-04-16,Wayne,Kentucky,21231,6,0 +2020-04-17,Wayne,Kentucky,21231,6,0 +2020-04-18,Wayne,Kentucky,21231,6,0 +2020-04-19,Wayne,Kentucky,21231,6,0 +2020-04-20,Wayne,Kentucky,21231,6,0 +2020-04-21,Wayne,Kentucky,21231,6,0 +2020-04-22,Wayne,Kentucky,21231,7,0 +2020-04-23,Wayne,Kentucky,21231,6,0 +2020-04-24,Wayne,Kentucky,21231,6,0 +2020-04-25,Wayne,Kentucky,21231,6,0 +2020-04-26,Wayne,Kentucky,21231,6,0 +2020-04-27,Wayne,Kentucky,21231,6,0 +2020-04-28,Wayne,Kentucky,21231,7,0 +2020-04-29,Wayne,Kentucky,21231,9,0 +2020-04-30,Wayne,Kentucky,21231,9,0 +2020-05-01,Wayne,Kentucky,21231,9,0 +2020-05-02,Wayne,Kentucky,21231,9,0 +2020-05-03,Wayne,Kentucky,21231,9,0 +2020-05-04,Wayne,Kentucky,21231,8,0 +2020-05-05,Wayne,Kentucky,21231,8,0 +2020-05-06,Wayne,Kentucky,21231,8,0 +2020-05-07,Wayne,Kentucky,21231,8,0 +2020-05-08,Wayne,Kentucky,21231,8,0 +2020-05-09,Wayne,Kentucky,21231,8,0 +2020-05-10,Wayne,Kentucky,21231,8,0 +2020-05-11,Wayne,Kentucky,21231,8,0 +2020-05-12,Wayne,Kentucky,21231,8,0 +2020-05-13,Wayne,Kentucky,21231,8,0 +2020-05-14,Wayne,Kentucky,21231,8,0 +2020-05-15,Wayne,Kentucky,21231,8,0 +2020-05-16,Wayne,Kentucky,21231,8,0 +2020-05-17,Wayne,Kentucky,21231,8,0 +2020-05-18,Wayne,Kentucky,21231,8,0 +2020-05-19,Wayne,Kentucky,21231,8,0 +2020-05-20,Wayne,Kentucky,21231,8,0 +2020-05-21,Wayne,Kentucky,21231,8,0 +2020-05-22,Wayne,Kentucky,21231,8,0 +2020-05-23,Wayne,Kentucky,21231,8,0 +2020-05-24,Wayne,Kentucky,21231,8,0 +2020-05-25,Wayne,Kentucky,21231,8,0 +2020-05-26,Wayne,Kentucky,21231,8,0 +2020-05-27,Wayne,Kentucky,21231,8,0 +2020-05-28,Wayne,Kentucky,21231,8,0 +2020-05-29,Wayne,Kentucky,21231,8,0 +2020-05-30,Wayne,Kentucky,21231,8,0 +2020-05-31,Wayne,Kentucky,21231,8,0 +2020-06-01,Wayne,Kentucky,21231,8,0 +2020-06-02,Wayne,Kentucky,21231,8,0 +2020-06-03,Wayne,Kentucky,21231,8,0 +2020-06-04,Wayne,Kentucky,21231,8,0 +2020-06-05,Wayne,Kentucky,21231,9,0 +2020-06-06,Wayne,Kentucky,21231,9,0 +2020-06-07,Wayne,Kentucky,21231,9,0 +2020-06-08,Wayne,Kentucky,21231,9,0 +2020-06-09,Wayne,Kentucky,21231,9,0 +2020-06-10,Wayne,Kentucky,21231,10,0 +2020-06-11,Wayne,Kentucky,21231,10,0 +2020-06-12,Wayne,Kentucky,21231,10,0 +2020-06-13,Wayne,Kentucky,21231,10,0 +2020-06-14,Wayne,Kentucky,21231,10,0 +2020-06-15,Wayne,Kentucky,21231,10,0 +2020-06-16,Wayne,Kentucky,21231,10,0 +2020-06-17,Wayne,Kentucky,21231,10,0 +2020-06-18,Wayne,Kentucky,21231,10,0 +2020-06-19,Wayne,Kentucky,21231,10,0 +2020-06-20,Wayne,Kentucky,21231,12,0 +2020-06-21,Wayne,Kentucky,21231,12,0 +2020-06-22,Wayne,Kentucky,21231,12,0 +2020-06-23,Wayne,Kentucky,21231,13,0 +2020-06-24,Wayne,Kentucky,21231,13,0 +2020-06-25,Wayne,Kentucky,21231,13,0 +2020-06-26,Wayne,Kentucky,21231,13,0 +2020-06-27,Wayne,Kentucky,21231,13,0 +2020-06-28,Wayne,Kentucky,21231,13,0 +2020-06-29,Wayne,Kentucky,21231,14,0 +2020-06-30,Wayne,Kentucky,21231,15,0 +2020-07-01,Wayne,Kentucky,21231,15,0 +2020-07-02,Wayne,Kentucky,21231,15,0 +2020-07-03,Wayne,Kentucky,21231,16,0 +2020-07-04,Wayne,Kentucky,21231,16,0 +2020-07-05,Wayne,Kentucky,21231,16,0 +2020-07-06,Wayne,Kentucky,21231,20,0 +2020-07-07,Wayne,Kentucky,21231,20,0 +2020-07-08,Wayne,Kentucky,21231,22,0 +2020-07-09,Wayne,Kentucky,21231,26,0 +2020-03-26,Webster,Kentucky,21233,1,0 +2020-03-27,Webster,Kentucky,21233,1,0 +2020-03-28,Webster,Kentucky,21233,1,0 +2020-03-29,Webster,Kentucky,21233,1,0 +2020-03-30,Webster,Kentucky,21233,1,0 +2020-03-31,Webster,Kentucky,21233,2,0 +2020-04-01,Webster,Kentucky,21233,2,0 +2020-04-02,Webster,Kentucky,21233,2,0 +2020-04-03,Webster,Kentucky,21233,2,0 +2020-04-04,Webster,Kentucky,21233,3,0 +2020-04-05,Webster,Kentucky,21233,3,0 +2020-04-06,Webster,Kentucky,21233,3,0 +2020-04-07,Webster,Kentucky,21233,3,0 +2020-04-08,Webster,Kentucky,21233,3,0 +2020-04-09,Webster,Kentucky,21233,7,0 +2020-04-10,Webster,Kentucky,21233,7,0 +2020-04-11,Webster,Kentucky,21233,8,0 +2020-04-12,Webster,Kentucky,21233,7,0 +2020-04-13,Webster,Kentucky,21233,7,0 +2020-04-14,Webster,Kentucky,21233,9,0 +2020-04-15,Webster,Kentucky,21233,10,0 +2020-04-16,Webster,Kentucky,21233,11,0 +2020-04-17,Webster,Kentucky,21233,12,0 +2020-04-18,Webster,Kentucky,21233,13,0 +2020-04-19,Webster,Kentucky,21233,13,0 +2020-04-20,Webster,Kentucky,21233,13,0 +2020-04-21,Webster,Kentucky,21233,14,0 +2020-04-22,Webster,Kentucky,21233,16,0 +2020-04-23,Webster,Kentucky,21233,16,0 +2020-04-24,Webster,Kentucky,21233,16,0 +2020-04-25,Webster,Kentucky,21233,19,0 +2020-04-26,Webster,Kentucky,21233,22,0 +2020-04-27,Webster,Kentucky,21233,22,0 +2020-04-28,Webster,Kentucky,21233,23,0 +2020-04-29,Webster,Kentucky,21233,23,0 +2020-04-30,Webster,Kentucky,21233,23,0 +2020-05-01,Webster,Kentucky,21233,23,0 +2020-05-02,Webster,Kentucky,21233,23,0 +2020-05-03,Webster,Kentucky,21233,23,0 +2020-05-04,Webster,Kentucky,21233,27,0 +2020-05-05,Webster,Kentucky,21233,29,0 +2020-05-06,Webster,Kentucky,21233,29,0 +2020-05-07,Webster,Kentucky,21233,29,0 +2020-05-08,Webster,Kentucky,21233,29,0 +2020-05-09,Webster,Kentucky,21233,31,0 +2020-05-10,Webster,Kentucky,21233,31,0 +2020-05-11,Webster,Kentucky,21233,31,0 +2020-05-12,Webster,Kentucky,21233,31,0 +2020-05-13,Webster,Kentucky,21233,31,0 +2020-05-14,Webster,Kentucky,21233,32,0 +2020-05-15,Webster,Kentucky,21233,33,0 +2020-05-16,Webster,Kentucky,21233,33,0 +2020-05-17,Webster,Kentucky,21233,33,0 +2020-05-18,Webster,Kentucky,21233,33,0 +2020-05-19,Webster,Kentucky,21233,33,0 +2020-05-20,Webster,Kentucky,21233,33,0 +2020-05-21,Webster,Kentucky,21233,33,0 +2020-05-22,Webster,Kentucky,21233,33,0 +2020-05-23,Webster,Kentucky,21233,33,0 +2020-05-24,Webster,Kentucky,21233,33,0 +2020-05-25,Webster,Kentucky,21233,33,0 +2020-05-26,Webster,Kentucky,21233,33,0 +2020-05-27,Webster,Kentucky,21233,33,0 +2020-05-28,Webster,Kentucky,21233,34,0 +2020-05-29,Webster,Kentucky,21233,34,0 +2020-05-30,Webster,Kentucky,21233,34,0 +2020-05-31,Webster,Kentucky,21233,34,0 +2020-06-01,Webster,Kentucky,21233,34,0 +2020-06-02,Webster,Kentucky,21233,34,0 +2020-06-03,Webster,Kentucky,21233,34,0 +2020-06-04,Webster,Kentucky,21233,34,0 +2020-06-05,Webster,Kentucky,21233,35,0 +2020-06-06,Webster,Kentucky,21233,35,0 +2020-06-07,Webster,Kentucky,21233,35,0 +2020-06-08,Webster,Kentucky,21233,35,0 +2020-06-09,Webster,Kentucky,21233,35,0 +2020-06-10,Webster,Kentucky,21233,35,0 +2020-06-11,Webster,Kentucky,21233,35,0 +2020-06-12,Webster,Kentucky,21233,35,0 +2020-06-13,Webster,Kentucky,21233,36,0 +2020-06-14,Webster,Kentucky,21233,36,0 +2020-06-15,Webster,Kentucky,21233,37,0 +2020-06-16,Webster,Kentucky,21233,37,0 +2020-06-17,Webster,Kentucky,21233,37,0 +2020-06-18,Webster,Kentucky,21233,37,0 +2020-06-19,Webster,Kentucky,21233,37,0 +2020-06-20,Webster,Kentucky,21233,38,0 +2020-06-21,Webster,Kentucky,21233,39,0 +2020-06-22,Webster,Kentucky,21233,39,0 +2020-06-23,Webster,Kentucky,21233,39,0 +2020-06-24,Webster,Kentucky,21233,39,0 +2020-06-25,Webster,Kentucky,21233,40,0 +2020-06-26,Webster,Kentucky,21233,40,0 +2020-06-27,Webster,Kentucky,21233,40,0 +2020-06-28,Webster,Kentucky,21233,40,0 +2020-06-29,Webster,Kentucky,21233,40,0 +2020-06-30,Webster,Kentucky,21233,41,0 +2020-07-01,Webster,Kentucky,21233,41,0 +2020-07-02,Webster,Kentucky,21233,41,0 +2020-07-03,Webster,Kentucky,21233,42,0 +2020-07-04,Webster,Kentucky,21233,42,0 +2020-07-05,Webster,Kentucky,21233,42,0 +2020-07-06,Webster,Kentucky,21233,45,0 +2020-07-07,Webster,Kentucky,21233,48,0 +2020-07-08,Webster,Kentucky,21233,48,0 +2020-07-09,Webster,Kentucky,21233,52,0 +2020-04-08,Whitley,Kentucky,21235,1,0 +2020-04-09,Whitley,Kentucky,21235,1,0 +2020-04-10,Whitley,Kentucky,21235,1,0 +2020-04-11,Whitley,Kentucky,21235,4,0 +2020-04-12,Whitley,Kentucky,21235,5,0 +2020-04-13,Whitley,Kentucky,21235,5,0 +2020-04-14,Whitley,Kentucky,21235,5,0 +2020-04-15,Whitley,Kentucky,21235,7,0 +2020-04-16,Whitley,Kentucky,21235,7,0 +2020-04-17,Whitley,Kentucky,21235,8,0 +2020-04-18,Whitley,Kentucky,21235,8,0 +2020-04-19,Whitley,Kentucky,21235,8,0 +2020-04-20,Whitley,Kentucky,21235,8,0 +2020-04-21,Whitley,Kentucky,21235,8,0 +2020-04-22,Whitley,Kentucky,21235,10,0 +2020-04-23,Whitley,Kentucky,21235,10,0 +2020-04-24,Whitley,Kentucky,21235,10,0 +2020-04-25,Whitley,Kentucky,21235,10,0 +2020-04-26,Whitley,Kentucky,21235,11,0 +2020-04-27,Whitley,Kentucky,21235,11,0 +2020-04-28,Whitley,Kentucky,21235,11,0 +2020-04-29,Whitley,Kentucky,21235,11,0 +2020-04-30,Whitley,Kentucky,21235,11,0 +2020-05-01,Whitley,Kentucky,21235,11,0 +2020-05-02,Whitley,Kentucky,21235,11,0 +2020-05-03,Whitley,Kentucky,21235,11,0 +2020-05-04,Whitley,Kentucky,21235,11,0 +2020-05-05,Whitley,Kentucky,21235,11,0 +2020-05-06,Whitley,Kentucky,21235,11,0 +2020-05-07,Whitley,Kentucky,21235,11,0 +2020-05-08,Whitley,Kentucky,21235,11,0 +2020-05-09,Whitley,Kentucky,21235,11,0 +2020-05-10,Whitley,Kentucky,21235,11,0 +2020-05-11,Whitley,Kentucky,21235,12,0 +2020-05-12,Whitley,Kentucky,21235,12,0 +2020-05-13,Whitley,Kentucky,21235,12,0 +2020-05-14,Whitley,Kentucky,21235,12,0 +2020-05-15,Whitley,Kentucky,21235,12,0 +2020-05-16,Whitley,Kentucky,21235,12,0 +2020-05-17,Whitley,Kentucky,21235,12,0 +2020-05-18,Whitley,Kentucky,21235,12,0 +2020-05-19,Whitley,Kentucky,21235,13,0 +2020-05-20,Whitley,Kentucky,21235,13,0 +2020-05-21,Whitley,Kentucky,21235,13,0 +2020-05-22,Whitley,Kentucky,21235,13,0 +2020-05-23,Whitley,Kentucky,21235,13,0 +2020-05-24,Whitley,Kentucky,21235,13,0 +2020-05-25,Whitley,Kentucky,21235,13,0 +2020-05-26,Whitley,Kentucky,21235,13,0 +2020-05-27,Whitley,Kentucky,21235,13,0 +2020-05-28,Whitley,Kentucky,21235,13,0 +2020-05-29,Whitley,Kentucky,21235,13,0 +2020-05-30,Whitley,Kentucky,21235,13,0 +2020-05-31,Whitley,Kentucky,21235,13,0 +2020-06-01,Whitley,Kentucky,21235,13,0 +2020-06-02,Whitley,Kentucky,21235,13,0 +2020-06-03,Whitley,Kentucky,21235,13,0 +2020-06-04,Whitley,Kentucky,21235,13,0 +2020-06-05,Whitley,Kentucky,21235,13,0 +2020-06-06,Whitley,Kentucky,21235,13,0 +2020-06-07,Whitley,Kentucky,21235,13,0 +2020-06-08,Whitley,Kentucky,21235,13,0 +2020-06-09,Whitley,Kentucky,21235,14,0 +2020-06-10,Whitley,Kentucky,21235,15,0 +2020-06-11,Whitley,Kentucky,21235,15,0 +2020-06-12,Whitley,Kentucky,21235,17,0 +2020-06-13,Whitley,Kentucky,21235,17,0 +2020-06-14,Whitley,Kentucky,21235,17,0 +2020-06-15,Whitley,Kentucky,21235,17,0 +2020-06-16,Whitley,Kentucky,21235,17,0 +2020-06-17,Whitley,Kentucky,21235,18,0 +2020-06-18,Whitley,Kentucky,21235,19,0 +2020-06-19,Whitley,Kentucky,21235,19,0 +2020-06-20,Whitley,Kentucky,21235,19,0 +2020-06-21,Whitley,Kentucky,21235,20,0 +2020-06-22,Whitley,Kentucky,21235,21,0 +2020-06-23,Whitley,Kentucky,21235,23,0 +2020-06-24,Whitley,Kentucky,21235,24,0 +2020-06-25,Whitley,Kentucky,21235,24,0 +2020-06-26,Whitley,Kentucky,21235,24,0 +2020-06-27,Whitley,Kentucky,21235,25,0 +2020-06-28,Whitley,Kentucky,21235,25,0 +2020-06-29,Whitley,Kentucky,21235,27,0 +2020-06-30,Whitley,Kentucky,21235,28,0 +2020-07-01,Whitley,Kentucky,21235,28,0 +2020-07-02,Whitley,Kentucky,21235,29,0 +2020-07-03,Whitley,Kentucky,21235,32,0 +2020-07-04,Whitley,Kentucky,21235,32,0 +2020-07-05,Whitley,Kentucky,21235,32,0 +2020-07-06,Whitley,Kentucky,21235,40,0 +2020-07-07,Whitley,Kentucky,21235,41,0 +2020-07-08,Whitley,Kentucky,21235,47,0 +2020-07-09,Whitley,Kentucky,21235,49,0 +2020-05-19,Wolfe,Kentucky,21237,1,0 +2020-05-20,Wolfe,Kentucky,21237,1,0 +2020-05-21,Wolfe,Kentucky,21237,1,0 +2020-05-22,Wolfe,Kentucky,21237,1,0 +2020-05-23,Wolfe,Kentucky,21237,1,0 +2020-05-24,Wolfe,Kentucky,21237,1,0 +2020-05-25,Wolfe,Kentucky,21237,1,0 +2020-05-26,Wolfe,Kentucky,21237,1,0 +2020-05-27,Wolfe,Kentucky,21237,1,0 +2020-05-28,Wolfe,Kentucky,21237,1,0 +2020-05-29,Wolfe,Kentucky,21237,1,0 +2020-05-30,Wolfe,Kentucky,21237,1,0 +2020-05-31,Wolfe,Kentucky,21237,1,0 +2020-06-01,Wolfe,Kentucky,21237,1,0 +2020-06-02,Wolfe,Kentucky,21237,1,0 +2020-06-03,Wolfe,Kentucky,21237,1,0 +2020-06-04,Wolfe,Kentucky,21237,1,0 +2020-06-05,Wolfe,Kentucky,21237,1,0 +2020-06-06,Wolfe,Kentucky,21237,1,0 +2020-06-07,Wolfe,Kentucky,21237,1,0 +2020-06-08,Wolfe,Kentucky,21237,1,0 +2020-06-09,Wolfe,Kentucky,21237,1,0 +2020-06-10,Wolfe,Kentucky,21237,1,0 +2020-06-11,Wolfe,Kentucky,21237,1,0 +2020-06-12,Wolfe,Kentucky,21237,1,0 +2020-06-13,Wolfe,Kentucky,21237,1,0 +2020-06-14,Wolfe,Kentucky,21237,1,0 +2020-06-15,Wolfe,Kentucky,21237,1,0 +2020-06-16,Wolfe,Kentucky,21237,1,0 +2020-06-17,Wolfe,Kentucky,21237,1,0 +2020-06-18,Wolfe,Kentucky,21237,2,0 +2020-06-19,Wolfe,Kentucky,21237,2,0 +2020-06-20,Wolfe,Kentucky,21237,1,0 +2020-06-21,Wolfe,Kentucky,21237,1,0 +2020-06-22,Wolfe,Kentucky,21237,1,0 +2020-06-23,Wolfe,Kentucky,21237,2,0 +2020-06-24,Wolfe,Kentucky,21237,2,0 +2020-06-25,Wolfe,Kentucky,21237,2,0 +2020-06-26,Wolfe,Kentucky,21237,2,0 +2020-06-27,Wolfe,Kentucky,21237,2,0 +2020-06-28,Wolfe,Kentucky,21237,2,0 +2020-06-29,Wolfe,Kentucky,21237,2,0 +2020-06-30,Wolfe,Kentucky,21237,2,0 +2020-07-01,Wolfe,Kentucky,21237,3,0 +2020-07-02,Wolfe,Kentucky,21237,4,0 +2020-07-03,Wolfe,Kentucky,21237,4,0 +2020-07-04,Wolfe,Kentucky,21237,4,0 +2020-07-05,Wolfe,Kentucky,21237,4,0 +2020-07-06,Wolfe,Kentucky,21237,4,0 +2020-07-07,Wolfe,Kentucky,21237,4,0 +2020-07-08,Wolfe,Kentucky,21237,4,0 +2020-07-09,Wolfe,Kentucky,21237,4,0 +2020-03-27,Woodford,Kentucky,21239,3,0 +2020-03-28,Woodford,Kentucky,21239,3,0 +2020-03-29,Woodford,Kentucky,21239,3,0 +2020-03-30,Woodford,Kentucky,21239,5,0 +2020-03-31,Woodford,Kentucky,21239,6,0 +2020-04-01,Woodford,Kentucky,21239,6,0 +2020-04-02,Woodford,Kentucky,21239,7,0 +2020-04-03,Woodford,Kentucky,21239,7,0 +2020-04-04,Woodford,Kentucky,21239,8,0 +2020-04-05,Woodford,Kentucky,21239,8,0 +2020-04-06,Woodford,Kentucky,21239,8,0 +2020-04-07,Woodford,Kentucky,21239,8,0 +2020-04-08,Woodford,Kentucky,21239,9,0 +2020-04-09,Woodford,Kentucky,21239,13,0 +2020-04-10,Woodford,Kentucky,21239,13,0 +2020-04-11,Woodford,Kentucky,21239,17,0 +2020-04-12,Woodford,Kentucky,21239,14,0 +2020-04-13,Woodford,Kentucky,21239,16,0 +2020-04-14,Woodford,Kentucky,21239,16,0 +2020-04-15,Woodford,Kentucky,21239,17,0 +2020-04-16,Woodford,Kentucky,21239,20,0 +2020-04-17,Woodford,Kentucky,21239,18,0 +2020-04-18,Woodford,Kentucky,21239,19,0 +2020-04-19,Woodford,Kentucky,21239,19,0 +2020-04-20,Woodford,Kentucky,21239,19,0 +2020-04-21,Woodford,Kentucky,21239,18,0 +2020-04-22,Woodford,Kentucky,21239,19,0 +2020-04-23,Woodford,Kentucky,21239,19,0 +2020-04-24,Woodford,Kentucky,21239,19,0 +2020-04-25,Woodford,Kentucky,21239,19,0 +2020-04-26,Woodford,Kentucky,21239,19,0 +2020-04-27,Woodford,Kentucky,21239,19,0 +2020-04-28,Woodford,Kentucky,21239,17,0 +2020-04-29,Woodford,Kentucky,21239,18,0 +2020-04-30,Woodford,Kentucky,21239,18,0 +2020-05-01,Woodford,Kentucky,21239,18,0 +2020-05-02,Woodford,Kentucky,21239,18,0 +2020-05-03,Woodford,Kentucky,21239,18,0 +2020-05-04,Woodford,Kentucky,21239,18,0 +2020-05-05,Woodford,Kentucky,21239,18,0 +2020-05-06,Woodford,Kentucky,21239,18,0 +2020-05-07,Woodford,Kentucky,21239,18,0 +2020-05-08,Woodford,Kentucky,21239,17,0 +2020-05-09,Woodford,Kentucky,21239,17,0 +2020-05-10,Woodford,Kentucky,21239,17,0 +2020-05-11,Woodford,Kentucky,21239,18,0 +2020-05-12,Woodford,Kentucky,21239,19,0 +2020-05-13,Woodford,Kentucky,21239,19,0 +2020-05-14,Woodford,Kentucky,21239,19,0 +2020-05-15,Woodford,Kentucky,21239,19,0 +2020-05-16,Woodford,Kentucky,21239,19,0 +2020-05-17,Woodford,Kentucky,21239,19,0 +2020-05-18,Woodford,Kentucky,21239,19,0 +2020-05-19,Woodford,Kentucky,21239,19,0 +2020-05-20,Woodford,Kentucky,21239,19,0 +2020-05-21,Woodford,Kentucky,21239,19,0 +2020-05-22,Woodford,Kentucky,21239,25,0 +2020-05-23,Woodford,Kentucky,21239,25,0 +2020-05-24,Woodford,Kentucky,21239,25,0 +2020-05-25,Woodford,Kentucky,21239,25,0 +2020-05-26,Woodford,Kentucky,21239,26,0 +2020-05-27,Woodford,Kentucky,21239,26,0 +2020-05-28,Woodford,Kentucky,21239,26,0 +2020-05-29,Woodford,Kentucky,21239,27,0 +2020-05-30,Woodford,Kentucky,21239,27,0 +2020-05-31,Woodford,Kentucky,21239,27,0 +2020-06-01,Woodford,Kentucky,21239,27,0 +2020-06-02,Woodford,Kentucky,21239,29,0 +2020-06-03,Woodford,Kentucky,21239,29,0 +2020-06-04,Woodford,Kentucky,21239,31,0 +2020-06-05,Woodford,Kentucky,21239,32,0 +2020-06-06,Woodford,Kentucky,21239,33,0 +2020-06-07,Woodford,Kentucky,21239,33,0 +2020-06-08,Woodford,Kentucky,21239,45,0 +2020-06-09,Woodford,Kentucky,21239,45,0 +2020-06-10,Woodford,Kentucky,21239,45,0 +2020-06-11,Woodford,Kentucky,21239,46,0 +2020-06-12,Woodford,Kentucky,21239,45,0 +2020-06-13,Woodford,Kentucky,21239,48,0 +2020-06-14,Woodford,Kentucky,21239,54,0 +2020-06-15,Woodford,Kentucky,21239,54,0 +2020-06-16,Woodford,Kentucky,21239,54,0 +2020-06-17,Woodford,Kentucky,21239,55,0 +2020-06-18,Woodford,Kentucky,21239,58,0 +2020-06-19,Woodford,Kentucky,21239,60,0 +2020-06-20,Woodford,Kentucky,21239,60,0 +2020-06-21,Woodford,Kentucky,21239,61,0 +2020-06-22,Woodford,Kentucky,21239,61,0 +2020-06-23,Woodford,Kentucky,21239,63,0 +2020-06-24,Woodford,Kentucky,21239,63,0 +2020-06-25,Woodford,Kentucky,21239,64,0 +2020-06-26,Woodford,Kentucky,21239,64,0 +2020-06-27,Woodford,Kentucky,21239,65,0 +2020-06-28,Woodford,Kentucky,21239,71,0 +2020-06-29,Woodford,Kentucky,21239,71,0 +2020-06-30,Woodford,Kentucky,21239,71,0 +2020-07-01,Woodford,Kentucky,21239,71,0 +2020-07-02,Woodford,Kentucky,21239,71,0 +2020-07-03,Woodford,Kentucky,21239,73,0 +2020-07-04,Woodford,Kentucky,21239,73,0 +2020-07-05,Woodford,Kentucky,21239,73,0 +2020-07-06,Woodford,Kentucky,21239,74,0 +2020-07-07,Woodford,Kentucky,21239,75,0 +2020-07-08,Woodford,Kentucky,21239,76,0 +2020-07-09,Woodford,Kentucky,21239,76,0 +2020-03-22,Acadia,Louisiana,22001,1,0 +2020-03-23,Acadia,Louisiana,22001,1,0 +2020-03-24,Acadia,Louisiana,22001,2,0 +2020-03-25,Acadia,Louisiana,22001,2,0 +2020-03-26,Acadia,Louisiana,22001,3,0 +2020-03-27,Acadia,Louisiana,22001,8,1 +2020-03-28,Acadia,Louisiana,22001,9,1 +2020-03-29,Acadia,Louisiana,22001,9,1 +2020-03-30,Acadia,Louisiana,22001,11,1 +2020-03-31,Acadia,Louisiana,22001,39,1 +2020-04-01,Acadia,Louisiana,22001,47,1 +2020-04-02,Acadia,Louisiana,22001,61,1 +2020-04-03,Acadia,Louisiana,22001,72,1 +2020-04-04,Acadia,Louisiana,22001,65,2 +2020-04-05,Acadia,Louisiana,22001,75,2 +2020-04-06,Acadia,Louisiana,22001,79,2 +2020-04-07,Acadia,Louisiana,22001,82,2 +2020-04-08,Acadia,Louisiana,22001,86,2 +2020-04-09,Acadia,Louisiana,22001,89,3 +2020-04-10,Acadia,Louisiana,22001,94,4 +2020-04-11,Acadia,Louisiana,22001,98,4 +2020-04-12,Acadia,Louisiana,22001,99,5 +2020-04-13,Acadia,Louisiana,22001,101,5 +2020-04-14,Acadia,Louisiana,22001,104,5 +2020-04-15,Acadia,Louisiana,22001,105,5 +2020-04-16,Acadia,Louisiana,22001,108,6 +2020-04-17,Acadia,Louisiana,22001,110,6 +2020-04-18,Acadia,Louisiana,22001,110,7 +2020-04-19,Acadia,Louisiana,22001,110,7 +2020-04-20,Acadia,Louisiana,22001,114,7 +2020-04-21,Acadia,Louisiana,22001,114,7 +2020-04-22,Acadia,Louisiana,22001,117,7 +2020-04-23,Acadia,Louisiana,22001,117,7 +2020-04-24,Acadia,Louisiana,22001,129,7 +2020-04-25,Acadia,Louisiana,22001,130,7 +2020-04-26,Acadia,Louisiana,22001,130,7 +2020-04-27,Acadia,Louisiana,22001,130,9 +2020-04-28,Acadia,Louisiana,22001,130,9 +2020-04-29,Acadia,Louisiana,22001,130,9 +2020-04-30,Acadia,Louisiana,22001,130,10 +2020-05-01,Acadia,Louisiana,22001,133,10 +2020-05-02,Acadia,Louisiana,22001,133,10 +2020-05-03,Acadia,Louisiana,22001,134,10 +2020-05-04,Acadia,Louisiana,22001,134,10 +2020-05-05,Acadia,Louisiana,22001,136,10 +2020-05-06,Acadia,Louisiana,22001,140,10 +2020-05-07,Acadia,Louisiana,22001,142,11 +2020-05-08,Acadia,Louisiana,22001,142,11 +2020-05-09,Acadia,Louisiana,22001,151,11 +2020-05-10,Acadia,Louisiana,22001,148,11 +2020-05-11,Acadia,Louisiana,22001,152,11 +2020-05-12,Acadia,Louisiana,22001,152,11 +2020-05-13,Acadia,Louisiana,22001,151,11 +2020-05-14,Acadia,Louisiana,22001,159,11 +2020-05-15,Acadia,Louisiana,22001,189,11 +2020-05-16,Acadia,Louisiana,22001,192,11 +2020-05-17,Acadia,Louisiana,22001,198,12 +2020-05-18,Acadia,Louisiana,22001,257,12 +2020-05-19,Acadia,Louisiana,22001,262,12 +2020-05-20,Acadia,Louisiana,22001,262,12 +2020-05-21,Acadia,Louisiana,22001,269,15 +2020-05-22,Acadia,Louisiana,22001,289,15 +2020-05-23,Acadia,Louisiana,22001,290,17 +2020-05-24,Acadia,Louisiana,22001,291,17 +2020-05-25,Acadia,Louisiana,22001,299,17 +2020-05-26,Acadia,Louisiana,22001,395,18 +2020-05-27,Acadia,Louisiana,22001,397,18 +2020-05-28,Acadia,Louisiana,22001,401,22 +2020-05-29,Acadia,Louisiana,22001,401,23 +2020-05-30,Acadia,Louisiana,22001,412,23 +2020-05-31,Acadia,Louisiana,22001,418,23 +2020-06-01,Acadia,Louisiana,22001,422,23 +2020-06-02,Acadia,Louisiana,22001,428,24 +2020-06-03,Acadia,Louisiana,22001,446,26 +2020-06-04,Acadia,Louisiana,22001,462,26 +2020-06-05,Acadia,Louisiana,22001,467,26 +2020-06-06,Acadia,Louisiana,22001,500,27 +2020-06-07,Acadia,Louisiana,22001,502,28 +2020-06-08,Acadia,Louisiana,22001,513,29 +2020-06-09,Acadia,Louisiana,22001,517,29 +2020-06-10,Acadia,Louisiana,22001,520,29 +2020-06-11,Acadia,Louisiana,22001,529,31 +2020-06-12,Acadia,Louisiana,22001,535,31 +2020-06-13,Acadia,Louisiana,22001,577,31 +2020-06-14,Acadia,Louisiana,22001,583,31 +2020-06-15,Acadia,Louisiana,22001,597,31 +2020-06-16,Acadia,Louisiana,22001,604,32 +2020-06-17,Acadia,Louisiana,22001,625,32 +2020-06-18,Acadia,Louisiana,22001,625,32 +2020-06-19,Acadia,Louisiana,22001,639,32 +2020-06-20,Acadia,Louisiana,22001,646,32 +2020-06-21,Acadia,Louisiana,22001,654,32 +2020-06-22,Acadia,Louisiana,22001,669,34 +2020-06-23,Acadia,Louisiana,22001,705,34 +2020-06-24,Acadia,Louisiana,22001,726,35 +2020-06-25,Acadia,Louisiana,22001,745,35 +2020-06-26,Acadia,Louisiana,22001,783,36 +2020-06-27,Acadia,Louisiana,22001,783,36 +2020-06-28,Acadia,Louisiana,22001,812,36 +2020-06-29,Acadia,Louisiana,22001,850,37 +2020-06-30,Acadia,Louisiana,22001,878,36 +2020-07-01,Acadia,Louisiana,22001,919,37 +2020-07-02,Acadia,Louisiana,22001,945,37 +2020-07-03,Acadia,Louisiana,22001,968,39 +2020-07-04,Acadia,Louisiana,22001,968,39 +2020-07-05,Acadia,Louisiana,22001,1016,40 +2020-07-06,Acadia,Louisiana,22001,1042,42 +2020-07-07,Acadia,Louisiana,22001,1068,43 +2020-07-08,Acadia,Louisiana,22001,1094,44 +2020-07-09,Acadia,Louisiana,22001,1166,44 +2020-03-23,Allen,Louisiana,22003,2,0 +2020-03-24,Allen,Louisiana,22003,2,0 +2020-03-25,Allen,Louisiana,22003,2,0 +2020-03-26,Allen,Louisiana,22003,5,0 +2020-03-27,Allen,Louisiana,22003,5,0 +2020-03-28,Allen,Louisiana,22003,7,0 +2020-03-29,Allen,Louisiana,22003,9,1 +2020-03-30,Allen,Louisiana,22003,11,1 +2020-03-31,Allen,Louisiana,22003,15,1 +2020-04-01,Allen,Louisiana,22003,19,1 +2020-04-02,Allen,Louisiana,22003,26,3 +2020-04-03,Allen,Louisiana,22003,34,3 +2020-04-04,Allen,Louisiana,22003,39,3 +2020-04-05,Allen,Louisiana,22003,40,5 +2020-04-06,Allen,Louisiana,22003,52,5 +2020-04-07,Allen,Louisiana,22003,58,5 +2020-04-08,Allen,Louisiana,22003,65,5 +2020-04-09,Allen,Louisiana,22003,66,5 +2020-04-10,Allen,Louisiana,22003,67,5 +2020-04-11,Allen,Louisiana,22003,71,7 +2020-04-12,Allen,Louisiana,22003,73,7 +2020-04-13,Allen,Louisiana,22003,74,7 +2020-04-14,Allen,Louisiana,22003,74,8 +2020-04-15,Allen,Louisiana,22003,74,8 +2020-04-16,Allen,Louisiana,22003,78,9 +2020-04-17,Allen,Louisiana,22003,79,9 +2020-04-18,Allen,Louisiana,22003,79,9 +2020-04-19,Allen,Louisiana,22003,79,9 +2020-04-20,Allen,Louisiana,22003,79,9 +2020-04-21,Allen,Louisiana,22003,79,9 +2020-04-22,Allen,Louisiana,22003,80,9 +2020-04-23,Allen,Louisiana,22003,81,9 +2020-04-24,Allen,Louisiana,22003,81,9 +2020-04-25,Allen,Louisiana,22003,82,9 +2020-04-26,Allen,Louisiana,22003,82,9 +2020-04-27,Allen,Louisiana,22003,87,9 +2020-04-28,Allen,Louisiana,22003,90,9 +2020-04-29,Allen,Louisiana,22003,90,9 +2020-04-30,Allen,Louisiana,22003,90,9 +2020-05-01,Allen,Louisiana,22003,90,9 +2020-05-02,Allen,Louisiana,22003,90,9 +2020-05-03,Allen,Louisiana,22003,90,9 +2020-05-04,Allen,Louisiana,22003,90,9 +2020-05-05,Allen,Louisiana,22003,90,9 +2020-05-06,Allen,Louisiana,22003,90,9 +2020-05-07,Allen,Louisiana,22003,90,9 +2020-05-08,Allen,Louisiana,22003,90,9 +2020-05-09,Allen,Louisiana,22003,90,9 +2020-05-10,Allen,Louisiana,22003,90,9 +2020-05-11,Allen,Louisiana,22003,90,9 +2020-05-12,Allen,Louisiana,22003,90,10 +2020-05-13,Allen,Louisiana,22003,94,10 +2020-05-14,Allen,Louisiana,22003,94,10 +2020-05-15,Allen,Louisiana,22003,94,10 +2020-05-16,Allen,Louisiana,22003,99,10 +2020-05-17,Allen,Louisiana,22003,100,10 +2020-05-18,Allen,Louisiana,22003,118,10 +2020-05-19,Allen,Louisiana,22003,131,10 +2020-05-20,Allen,Louisiana,22003,157,10 +2020-05-21,Allen,Louisiana,22003,172,10 +2020-05-22,Allen,Louisiana,22003,182,10 +2020-05-23,Allen,Louisiana,22003,182,10 +2020-05-24,Allen,Louisiana,22003,182,10 +2020-05-25,Allen,Louisiana,22003,182,10 +2020-05-26,Allen,Louisiana,22003,184,10 +2020-05-27,Allen,Louisiana,22003,184,10 +2020-05-28,Allen,Louisiana,22003,184,10 +2020-05-29,Allen,Louisiana,22003,184,10 +2020-05-30,Allen,Louisiana,22003,184,10 +2020-05-31,Allen,Louisiana,22003,184,10 +2020-06-01,Allen,Louisiana,22003,184,10 +2020-06-02,Allen,Louisiana,22003,184,10 +2020-06-03,Allen,Louisiana,22003,185,10 +2020-06-04,Allen,Louisiana,22003,186,10 +2020-06-05,Allen,Louisiana,22003,186,10 +2020-06-06,Allen,Louisiana,22003,186,10 +2020-06-07,Allen,Louisiana,22003,186,10 +2020-06-08,Allen,Louisiana,22003,188,10 +2020-06-09,Allen,Louisiana,22003,189,10 +2020-06-10,Allen,Louisiana,22003,189,10 +2020-06-11,Allen,Louisiana,22003,189,10 +2020-06-12,Allen,Louisiana,22003,193,10 +2020-06-13,Allen,Louisiana,22003,210,10 +2020-06-14,Allen,Louisiana,22003,222,10 +2020-06-15,Allen,Louisiana,22003,226,10 +2020-06-16,Allen,Louisiana,22003,230,10 +2020-06-17,Allen,Louisiana,22003,243,10 +2020-06-18,Allen,Louisiana,22003,243,10 +2020-06-19,Allen,Louisiana,22003,223,10 +2020-06-20,Allen,Louisiana,22003,224,10 +2020-06-21,Allen,Louisiana,22003,226,10 +2020-06-22,Allen,Louisiana,22003,228,10 +2020-06-23,Allen,Louisiana,22003,256,10 +2020-06-24,Allen,Louisiana,22003,257,10 +2020-06-25,Allen,Louisiana,22003,257,10 +2020-06-26,Allen,Louisiana,22003,274,10 +2020-06-27,Allen,Louisiana,22003,274,10 +2020-06-28,Allen,Louisiana,22003,284,10 +2020-06-29,Allen,Louisiana,22003,287,10 +2020-06-30,Allen,Louisiana,22003,304,10 +2020-07-01,Allen,Louisiana,22003,310,10 +2020-07-02,Allen,Louisiana,22003,316,11 +2020-07-03,Allen,Louisiana,22003,321,11 +2020-07-04,Allen,Louisiana,22003,321,11 +2020-07-05,Allen,Louisiana,22003,344,11 +2020-07-06,Allen,Louisiana,22003,354,11 +2020-07-07,Allen,Louisiana,22003,368,11 +2020-07-08,Allen,Louisiana,22003,387,11 +2020-07-09,Allen,Louisiana,22003,410,12 +2020-03-16,Ascension,Louisiana,22005,1,0 +2020-03-17,Ascension,Louisiana,22005,1,0 +2020-03-18,Ascension,Louisiana,22005,1,0 +2020-03-19,Ascension,Louisiana,22005,2,0 +2020-03-20,Ascension,Louisiana,22005,3,0 +2020-03-21,Ascension,Louisiana,22005,12,0 +2020-03-22,Ascension,Louisiana,22005,17,0 +2020-03-23,Ascension,Louisiana,22005,26,1 +2020-03-24,Ascension,Louisiana,22005,36,1 +2020-03-25,Ascension,Louisiana,22005,65,1 +2020-03-26,Ascension,Louisiana,22005,91,1 +2020-03-27,Ascension,Louisiana,22005,90,1 +2020-03-28,Ascension,Louisiana,22005,107,1 +2020-03-29,Ascension,Louisiana,22005,139,2 +2020-03-30,Ascension,Louisiana,22005,153,5 +2020-03-31,Ascension,Louisiana,22005,161,6 +2020-04-01,Ascension,Louisiana,22005,189,6 +2020-04-02,Ascension,Louisiana,22005,201,7 +2020-04-03,Ascension,Louisiana,22005,222,7 +2020-04-04,Ascension,Louisiana,22005,284,7 +2020-04-05,Ascension,Louisiana,22005,286,11 +2020-04-06,Ascension,Louisiana,22005,347,11 +2020-04-07,Ascension,Louisiana,22005,358,11 +2020-04-08,Ascension,Louisiana,22005,366,15 +2020-04-09,Ascension,Louisiana,22005,370,17 +2020-04-10,Ascension,Louisiana,22005,397,19 +2020-04-11,Ascension,Louisiana,22005,415,20 +2020-04-12,Ascension,Louisiana,22005,428,23 +2020-04-13,Ascension,Louisiana,22005,432,24 +2020-04-14,Ascension,Louisiana,22005,438,27 +2020-04-15,Ascension,Louisiana,22005,440,27 +2020-04-16,Ascension,Louisiana,22005,451,29 +2020-04-17,Ascension,Louisiana,22005,468,30 +2020-04-18,Ascension,Louisiana,22005,496,30 +2020-04-19,Ascension,Louisiana,22005,508,30 +2020-04-20,Ascension,Louisiana,22005,512,31 +2020-04-21,Ascension,Louisiana,22005,515,31 +2020-04-22,Ascension,Louisiana,22005,533,33 +2020-04-23,Ascension,Louisiana,22005,536,33 +2020-04-24,Ascension,Louisiana,22005,551,34 +2020-04-25,Ascension,Louisiana,22005,557,35 +2020-04-26,Ascension,Louisiana,22005,568,36 +2020-04-27,Ascension,Louisiana,22005,574,35 +2020-04-28,Ascension,Louisiana,22005,576,36 +2020-04-29,Ascension,Louisiana,22005,587,38 +2020-04-30,Ascension,Louisiana,22005,593,40 +2020-05-01,Ascension,Louisiana,22005,627,40 +2020-05-02,Ascension,Louisiana,22005,636,40 +2020-05-03,Ascension,Louisiana,22005,644,40 +2020-05-04,Ascension,Louisiana,22005,647,40 +2020-05-05,Ascension,Louisiana,22005,657,40 +2020-05-06,Ascension,Louisiana,22005,664,44 +2020-05-07,Ascension,Louisiana,22005,672,46 +2020-05-08,Ascension,Louisiana,22005,675,46 +2020-05-09,Ascension,Louisiana,22005,689,46 +2020-05-10,Ascension,Louisiana,22005,694,46 +2020-05-11,Ascension,Louisiana,22005,695,48 +2020-05-12,Ascension,Louisiana,22005,701,49 +2020-05-13,Ascension,Louisiana,22005,704,48 +2020-05-14,Ascension,Louisiana,22005,745,48 +2020-05-15,Ascension,Louisiana,22005,749,48 +2020-05-16,Ascension,Louisiana,22005,752,49 +2020-05-17,Ascension,Louisiana,22005,756,49 +2020-05-18,Ascension,Louisiana,22005,760,50 +2020-05-19,Ascension,Louisiana,22005,762,50 +2020-05-20,Ascension,Louisiana,22005,768,52 +2020-05-21,Ascension,Louisiana,22005,782,52 +2020-05-22,Ascension,Louisiana,22005,785,54 +2020-05-23,Ascension,Louisiana,22005,785,54 +2020-05-24,Ascension,Louisiana,22005,786,54 +2020-05-25,Ascension,Louisiana,22005,788,54 +2020-05-26,Ascension,Louisiana,22005,792,55 +2020-05-27,Ascension,Louisiana,22005,805,55 +2020-05-28,Ascension,Louisiana,22005,810,56 +2020-05-29,Ascension,Louisiana,22005,810,56 +2020-05-30,Ascension,Louisiana,22005,817,56 +2020-05-31,Ascension,Louisiana,22005,820,56 +2020-06-01,Ascension,Louisiana,22005,827,56 +2020-06-02,Ascension,Louisiana,22005,841,56 +2020-06-03,Ascension,Louisiana,22005,852,57 +2020-06-04,Ascension,Louisiana,22005,861,57 +2020-06-05,Ascension,Louisiana,22005,865,58 +2020-06-06,Ascension,Louisiana,22005,876,58 +2020-06-07,Ascension,Louisiana,22005,882,58 +2020-06-08,Ascension,Louisiana,22005,889,58 +2020-06-09,Ascension,Louisiana,22005,900,58 +2020-06-10,Ascension,Louisiana,22005,906,58 +2020-06-11,Ascension,Louisiana,22005,912,58 +2020-06-12,Ascension,Louisiana,22005,918,58 +2020-06-13,Ascension,Louisiana,22005,931,58 +2020-06-14,Ascension,Louisiana,22005,935,58 +2020-06-15,Ascension,Louisiana,22005,948,58 +2020-06-16,Ascension,Louisiana,22005,957,58 +2020-06-17,Ascension,Louisiana,22005,962,58 +2020-06-18,Ascension,Louisiana,22005,962,58 +2020-06-19,Ascension,Louisiana,22005,961,58 +2020-06-20,Ascension,Louisiana,22005,989,58 +2020-06-21,Ascension,Louisiana,22005,997,58 +2020-06-22,Ascension,Louisiana,22005,1008,58 +2020-06-23,Ascension,Louisiana,22005,1044,58 +2020-06-24,Ascension,Louisiana,22005,1070,58 +2020-06-25,Ascension,Louisiana,22005,1094,58 +2020-06-26,Ascension,Louisiana,22005,1115,58 +2020-06-27,Ascension,Louisiana,22005,1115,58 +2020-06-28,Ascension,Louisiana,22005,1146,58 +2020-06-29,Ascension,Louisiana,22005,1157,58 +2020-06-30,Ascension,Louisiana,22005,1171,58 +2020-07-01,Ascension,Louisiana,22005,1213,58 +2020-07-02,Ascension,Louisiana,22005,1246,58 +2020-07-03,Ascension,Louisiana,22005,1278,58 +2020-07-04,Ascension,Louisiana,22005,1278,58 +2020-07-05,Ascension,Louisiana,22005,1331,58 +2020-07-06,Ascension,Louisiana,22005,1358,58 +2020-07-07,Ascension,Louisiana,22005,1412,59 +2020-07-08,Ascension,Louisiana,22005,1441,60 +2020-07-09,Ascension,Louisiana,22005,1480,60 +2020-03-19,Assumption,Louisiana,22007,1,0 +2020-03-20,Assumption,Louisiana,22007,1,0 +2020-03-21,Assumption,Louisiana,22007,1,0 +2020-03-22,Assumption,Louisiana,22007,1,0 +2020-03-23,Assumption,Louisiana,22007,1,0 +2020-03-24,Assumption,Louisiana,22007,2,0 +2020-03-25,Assumption,Louisiana,22007,2,0 +2020-03-26,Assumption,Louisiana,22007,5,0 +2020-03-27,Assumption,Louisiana,22007,8,0 +2020-03-28,Assumption,Louisiana,22007,8,0 +2020-03-29,Assumption,Louisiana,22007,14,0 +2020-03-30,Assumption,Louisiana,22007,17,0 +2020-03-31,Assumption,Louisiana,22007,20,0 +2020-04-01,Assumption,Louisiana,22007,25,0 +2020-04-02,Assumption,Louisiana,22007,31,0 +2020-04-03,Assumption,Louisiana,22007,33,0 +2020-04-04,Assumption,Louisiana,22007,56,0 +2020-04-05,Assumption,Louisiana,22007,59,0 +2020-04-06,Assumption,Louisiana,22007,77,0 +2020-04-07,Assumption,Louisiana,22007,84,1 +2020-04-08,Assumption,Louisiana,22007,89,0 +2020-04-09,Assumption,Louisiana,22007,94,0 +2020-04-10,Assumption,Louisiana,22007,105,1 +2020-04-11,Assumption,Louisiana,22007,109,1 +2020-04-12,Assumption,Louisiana,22007,116,1 +2020-04-13,Assumption,Louisiana,22007,120,1 +2020-04-14,Assumption,Louisiana,22007,123,1 +2020-04-15,Assumption,Louisiana,22007,129,1 +2020-04-16,Assumption,Louisiana,22007,132,1 +2020-04-17,Assumption,Louisiana,22007,137,1 +2020-04-18,Assumption,Louisiana,22007,143,1 +2020-04-19,Assumption,Louisiana,22007,146,1 +2020-04-20,Assumption,Louisiana,22007,146,1 +2020-04-21,Assumption,Louisiana,22007,151,1 +2020-04-22,Assumption,Louisiana,22007,154,1 +2020-04-23,Assumption,Louisiana,22007,158,2 +2020-04-24,Assumption,Louisiana,22007,166,2 +2020-04-25,Assumption,Louisiana,22007,172,3 +2020-04-26,Assumption,Louisiana,22007,173,3 +2020-04-27,Assumption,Louisiana,22007,175,3 +2020-04-28,Assumption,Louisiana,22007,177,3 +2020-04-29,Assumption,Louisiana,22007,178,6 +2020-04-30,Assumption,Louisiana,22007,182,6 +2020-05-01,Assumption,Louisiana,22007,189,6 +2020-05-02,Assumption,Louisiana,22007,194,6 +2020-05-03,Assumption,Louisiana,22007,197,6 +2020-05-04,Assumption,Louisiana,22007,201,6 +2020-05-05,Assumption,Louisiana,22007,202,6 +2020-05-06,Assumption,Louisiana,22007,203,8 +2020-05-07,Assumption,Louisiana,22007,206,9 +2020-05-08,Assumption,Louisiana,22007,206,10 +2020-05-09,Assumption,Louisiana,22007,208,11 +2020-05-10,Assumption,Louisiana,22007,228,11 +2020-05-11,Assumption,Louisiana,22007,228,11 +2020-05-12,Assumption,Louisiana,22007,230,11 +2020-05-13,Assumption,Louisiana,22007,231,11 +2020-05-14,Assumption,Louisiana,22007,234,11 +2020-05-15,Assumption,Louisiana,22007,235,11 +2020-05-16,Assumption,Louisiana,22007,229,11 +2020-05-17,Assumption,Louisiana,22007,230,11 +2020-05-18,Assumption,Louisiana,22007,230,11 +2020-05-19,Assumption,Louisiana,22007,230,11 +2020-05-20,Assumption,Louisiana,22007,233,11 +2020-05-21,Assumption,Louisiana,22007,238,11 +2020-05-22,Assumption,Louisiana,22007,238,11 +2020-05-23,Assumption,Louisiana,22007,238,11 +2020-05-24,Assumption,Louisiana,22007,238,11 +2020-05-25,Assumption,Louisiana,22007,243,11 +2020-05-26,Assumption,Louisiana,22007,245,12 +2020-05-27,Assumption,Louisiana,22007,245,12 +2020-05-28,Assumption,Louisiana,22007,248,13 +2020-05-29,Assumption,Louisiana,22007,248,14 +2020-05-30,Assumption,Louisiana,22007,251,14 +2020-05-31,Assumption,Louisiana,22007,252,14 +2020-06-01,Assumption,Louisiana,22007,252,14 +2020-06-02,Assumption,Louisiana,22007,252,14 +2020-06-03,Assumption,Louisiana,22007,252,14 +2020-06-04,Assumption,Louisiana,22007,252,14 +2020-06-05,Assumption,Louisiana,22007,253,13 +2020-06-06,Assumption,Louisiana,22007,254,13 +2020-06-07,Assumption,Louisiana,22007,257,13 +2020-06-08,Assumption,Louisiana,22007,257,13 +2020-06-09,Assumption,Louisiana,22007,258,13 +2020-06-10,Assumption,Louisiana,22007,259,13 +2020-06-11,Assumption,Louisiana,22007,258,14 +2020-06-12,Assumption,Louisiana,22007,258,14 +2020-06-13,Assumption,Louisiana,22007,263,14 +2020-06-14,Assumption,Louisiana,22007,269,14 +2020-06-15,Assumption,Louisiana,22007,274,14 +2020-06-16,Assumption,Louisiana,22007,276,14 +2020-06-17,Assumption,Louisiana,22007,282,14 +2020-06-18,Assumption,Louisiana,22007,282,14 +2020-06-19,Assumption,Louisiana,22007,324,14 +2020-06-20,Assumption,Louisiana,22007,327,14 +2020-06-21,Assumption,Louisiana,22007,327,14 +2020-06-22,Assumption,Louisiana,22007,330,14 +2020-06-23,Assumption,Louisiana,22007,334,14 +2020-06-24,Assumption,Louisiana,22007,334,14 +2020-06-25,Assumption,Louisiana,22007,334,14 +2020-06-26,Assumption,Louisiana,22007,338,14 +2020-06-27,Assumption,Louisiana,22007,338,14 +2020-06-28,Assumption,Louisiana,22007,343,14 +2020-06-29,Assumption,Louisiana,22007,351,14 +2020-06-30,Assumption,Louisiana,22007,352,14 +2020-07-01,Assumption,Louisiana,22007,357,15 +2020-07-02,Assumption,Louisiana,22007,364,15 +2020-07-03,Assumption,Louisiana,22007,373,15 +2020-07-04,Assumption,Louisiana,22007,373,15 +2020-07-05,Assumption,Louisiana,22007,381,15 +2020-07-06,Assumption,Louisiana,22007,383,15 +2020-07-07,Assumption,Louisiana,22007,390,15 +2020-07-08,Assumption,Louisiana,22007,399,15 +2020-07-09,Assumption,Louisiana,22007,404,16 +2020-03-21,Avoyelles,Louisiana,22009,1,0 +2020-03-22,Avoyelles,Louisiana,22009,1,0 +2020-03-23,Avoyelles,Louisiana,22009,2,0 +2020-03-24,Avoyelles,Louisiana,22009,3,0 +2020-03-25,Avoyelles,Louisiana,22009,5,0 +2020-03-26,Avoyelles,Louisiana,22009,7,0 +2020-03-27,Avoyelles,Louisiana,22009,10,0 +2020-03-28,Avoyelles,Louisiana,22009,12,0 +2020-03-29,Avoyelles,Louisiana,22009,13,0 +2020-03-30,Avoyelles,Louisiana,22009,14,0 +2020-03-31,Avoyelles,Louisiana,22009,19,0 +2020-04-01,Avoyelles,Louisiana,22009,31,2 +2020-04-02,Avoyelles,Louisiana,22009,34,1 +2020-04-03,Avoyelles,Louisiana,22009,37,1 +2020-04-04,Avoyelles,Louisiana,22009,36,1 +2020-04-05,Avoyelles,Louisiana,22009,37,1 +2020-04-06,Avoyelles,Louisiana,22009,40,1 +2020-04-07,Avoyelles,Louisiana,22009,45,1 +2020-04-08,Avoyelles,Louisiana,22009,48,1 +2020-04-09,Avoyelles,Louisiana,22009,56,1 +2020-04-10,Avoyelles,Louisiana,22009,56,1 +2020-04-11,Avoyelles,Louisiana,22009,61,1 +2020-04-12,Avoyelles,Louisiana,22009,61,1 +2020-04-13,Avoyelles,Louisiana,22009,64,1 +2020-04-14,Avoyelles,Louisiana,22009,65,2 +2020-04-15,Avoyelles,Louisiana,22009,64,3 +2020-04-16,Avoyelles,Louisiana,22009,66,3 +2020-04-17,Avoyelles,Louisiana,22009,68,3 +2020-04-18,Avoyelles,Louisiana,22009,68,3 +2020-04-19,Avoyelles,Louisiana,22009,69,3 +2020-04-20,Avoyelles,Louisiana,22009,69,3 +2020-04-21,Avoyelles,Louisiana,22009,69,7 +2020-04-22,Avoyelles,Louisiana,22009,71,7 +2020-04-23,Avoyelles,Louisiana,22009,71,7 +2020-04-24,Avoyelles,Louisiana,22009,69,7 +2020-04-25,Avoyelles,Louisiana,22009,69,7 +2020-04-26,Avoyelles,Louisiana,22009,69,7 +2020-04-27,Avoyelles,Louisiana,22009,69,7 +2020-04-28,Avoyelles,Louisiana,22009,71,7 +2020-04-29,Avoyelles,Louisiana,22009,71,7 +2020-04-30,Avoyelles,Louisiana,22009,71,7 +2020-05-01,Avoyelles,Louisiana,22009,73,7 +2020-05-02,Avoyelles,Louisiana,22009,72,7 +2020-05-03,Avoyelles,Louisiana,22009,74,7 +2020-05-04,Avoyelles,Louisiana,22009,74,7 +2020-05-05,Avoyelles,Louisiana,22009,73,7 +2020-05-06,Avoyelles,Louisiana,22009,74,7 +2020-05-07,Avoyelles,Louisiana,22009,74,7 +2020-05-08,Avoyelles,Louisiana,22009,74,7 +2020-05-09,Avoyelles,Louisiana,22009,74,7 +2020-05-10,Avoyelles,Louisiana,22009,74,7 +2020-05-11,Avoyelles,Louisiana,22009,75,7 +2020-05-12,Avoyelles,Louisiana,22009,76,8 +2020-05-13,Avoyelles,Louisiana,22009,79,9 +2020-05-14,Avoyelles,Louisiana,22009,79,9 +2020-05-15,Avoyelles,Louisiana,22009,80,9 +2020-05-16,Avoyelles,Louisiana,22009,89,9 +2020-05-17,Avoyelles,Louisiana,22009,92,9 +2020-05-18,Avoyelles,Louisiana,22009,93,9 +2020-05-19,Avoyelles,Louisiana,22009,94,9 +2020-05-20,Avoyelles,Louisiana,22009,96,9 +2020-05-21,Avoyelles,Louisiana,22009,99,9 +2020-05-22,Avoyelles,Louisiana,22009,101,9 +2020-05-23,Avoyelles,Louisiana,22009,103,9 +2020-05-24,Avoyelles,Louisiana,22009,104,9 +2020-05-25,Avoyelles,Louisiana,22009,113,9 +2020-05-26,Avoyelles,Louisiana,22009,115,9 +2020-05-27,Avoyelles,Louisiana,22009,117,9 +2020-05-28,Avoyelles,Louisiana,22009,120,9 +2020-05-29,Avoyelles,Louisiana,22009,120,9 +2020-05-30,Avoyelles,Louisiana,22009,125,9 +2020-05-31,Avoyelles,Louisiana,22009,128,9 +2020-06-01,Avoyelles,Louisiana,22009,130,9 +2020-06-02,Avoyelles,Louisiana,22009,136,9 +2020-06-03,Avoyelles,Louisiana,22009,141,9 +2020-06-04,Avoyelles,Louisiana,22009,149,9 +2020-06-05,Avoyelles,Louisiana,22009,151,9 +2020-06-06,Avoyelles,Louisiana,22009,155,9 +2020-06-07,Avoyelles,Louisiana,22009,161,9 +2020-06-08,Avoyelles,Louisiana,22009,165,9 +2020-06-09,Avoyelles,Louisiana,22009,175,9 +2020-06-10,Avoyelles,Louisiana,22009,178,9 +2020-06-11,Avoyelles,Louisiana,22009,178,9 +2020-06-12,Avoyelles,Louisiana,22009,181,9 +2020-06-13,Avoyelles,Louisiana,22009,184,9 +2020-06-14,Avoyelles,Louisiana,22009,185,9 +2020-06-15,Avoyelles,Louisiana,22009,188,9 +2020-06-16,Avoyelles,Louisiana,22009,188,9 +2020-06-17,Avoyelles,Louisiana,22009,193,10 +2020-06-18,Avoyelles,Louisiana,22009,193,10 +2020-06-19,Avoyelles,Louisiana,22009,200,10 +2020-06-20,Avoyelles,Louisiana,22009,204,11 +2020-06-21,Avoyelles,Louisiana,22009,204,11 +2020-06-22,Avoyelles,Louisiana,22009,206,11 +2020-06-23,Avoyelles,Louisiana,22009,238,11 +2020-06-24,Avoyelles,Louisiana,22009,254,11 +2020-06-25,Avoyelles,Louisiana,22009,277,11 +2020-06-26,Avoyelles,Louisiana,22009,294,11 +2020-06-27,Avoyelles,Louisiana,22009,294,11 +2020-06-28,Avoyelles,Louisiana,22009,308,11 +2020-06-29,Avoyelles,Louisiana,22009,309,11 +2020-06-30,Avoyelles,Louisiana,22009,319,13 +2020-07-01,Avoyelles,Louisiana,22009,341,14 +2020-07-02,Avoyelles,Louisiana,22009,375,14 +2020-07-03,Avoyelles,Louisiana,22009,378,14 +2020-07-04,Avoyelles,Louisiana,22009,378,14 +2020-07-05,Avoyelles,Louisiana,22009,386,14 +2020-07-06,Avoyelles,Louisiana,22009,390,14 +2020-07-07,Avoyelles,Louisiana,22009,402,15 +2020-07-08,Avoyelles,Louisiana,22009,418,15 +2020-07-09,Avoyelles,Louisiana,22009,447,16 +2020-03-21,Beauregard,Louisiana,22011,1,0 +2020-03-22,Beauregard,Louisiana,22011,1,0 +2020-03-23,Beauregard,Louisiana,22011,1,0 +2020-03-24,Beauregard,Louisiana,22011,2,0 +2020-03-25,Beauregard,Louisiana,22011,3,0 +2020-03-26,Beauregard,Louisiana,22011,3,0 +2020-03-27,Beauregard,Louisiana,22011,4,0 +2020-03-28,Beauregard,Louisiana,22011,4,0 +2020-03-29,Beauregard,Louisiana,22011,4,0 +2020-03-30,Beauregard,Louisiana,22011,5,0 +2020-03-31,Beauregard,Louisiana,22011,5,0 +2020-04-01,Beauregard,Louisiana,22011,8,0 +2020-04-02,Beauregard,Louisiana,22011,10,0 +2020-04-03,Beauregard,Louisiana,22011,13,0 +2020-04-04,Beauregard,Louisiana,22011,15,0 +2020-04-05,Beauregard,Louisiana,22011,19,0 +2020-04-06,Beauregard,Louisiana,22011,23,0 +2020-04-07,Beauregard,Louisiana,22011,23,0 +2020-04-08,Beauregard,Louisiana,22011,23,1 +2020-04-09,Beauregard,Louisiana,22011,26,1 +2020-04-10,Beauregard,Louisiana,22011,27,1 +2020-04-11,Beauregard,Louisiana,22011,27,1 +2020-04-12,Beauregard,Louisiana,22011,27,1 +2020-04-13,Beauregard,Louisiana,22011,28,1 +2020-04-14,Beauregard,Louisiana,22011,28,1 +2020-04-15,Beauregard,Louisiana,22011,30,1 +2020-04-16,Beauregard,Louisiana,22011,33,2 +2020-04-17,Beauregard,Louisiana,22011,35,2 +2020-04-18,Beauregard,Louisiana,22011,35,2 +2020-04-19,Beauregard,Louisiana,22011,35,2 +2020-04-20,Beauregard,Louisiana,22011,36,2 +2020-04-21,Beauregard,Louisiana,22011,36,2 +2020-04-22,Beauregard,Louisiana,22011,36,2 +2020-04-23,Beauregard,Louisiana,22011,35,2 +2020-04-24,Beauregard,Louisiana,22011,35,2 +2020-04-25,Beauregard,Louisiana,22011,35,3 +2020-04-26,Beauregard,Louisiana,22011,35,3 +2020-04-27,Beauregard,Louisiana,22011,36,3 +2020-04-28,Beauregard,Louisiana,22011,37,3 +2020-04-29,Beauregard,Louisiana,22011,37,3 +2020-04-30,Beauregard,Louisiana,22011,39,3 +2020-05-01,Beauregard,Louisiana,22011,42,3 +2020-05-02,Beauregard,Louisiana,22011,42,3 +2020-05-03,Beauregard,Louisiana,22011,43,3 +2020-05-04,Beauregard,Louisiana,22011,43,3 +2020-05-05,Beauregard,Louisiana,22011,43,3 +2020-05-06,Beauregard,Louisiana,22011,44,4 +2020-05-07,Beauregard,Louisiana,22011,44,4 +2020-05-08,Beauregard,Louisiana,22011,44,4 +2020-05-09,Beauregard,Louisiana,22011,46,4 +2020-05-10,Beauregard,Louisiana,22011,46,4 +2020-05-11,Beauregard,Louisiana,22011,46,4 +2020-05-12,Beauregard,Louisiana,22011,46,4 +2020-05-13,Beauregard,Louisiana,22011,48,4 +2020-05-14,Beauregard,Louisiana,22011,49,4 +2020-05-15,Beauregard,Louisiana,22011,50,4 +2020-05-16,Beauregard,Louisiana,22011,51,4 +2020-05-17,Beauregard,Louisiana,22011,52,4 +2020-05-18,Beauregard,Louisiana,22011,52,4 +2020-05-19,Beauregard,Louisiana,22011,52,4 +2020-05-20,Beauregard,Louisiana,22011,52,4 +2020-05-21,Beauregard,Louisiana,22011,54,4 +2020-05-22,Beauregard,Louisiana,22011,56,4 +2020-05-23,Beauregard,Louisiana,22011,56,4 +2020-05-24,Beauregard,Louisiana,22011,56,4 +2020-05-25,Beauregard,Louisiana,22011,58,4 +2020-05-26,Beauregard,Louisiana,22011,58,4 +2020-05-27,Beauregard,Louisiana,22011,61,4 +2020-05-28,Beauregard,Louisiana,22011,61,4 +2020-05-29,Beauregard,Louisiana,22011,61,4 +2020-05-30,Beauregard,Louisiana,22011,66,4 +2020-05-31,Beauregard,Louisiana,22011,66,4 +2020-06-01,Beauregard,Louisiana,22011,69,4 +2020-06-02,Beauregard,Louisiana,22011,69,4 +2020-06-03,Beauregard,Louisiana,22011,81,4 +2020-06-04,Beauregard,Louisiana,22011,90,4 +2020-06-05,Beauregard,Louisiana,22011,99,4 +2020-06-06,Beauregard,Louisiana,22011,102,4 +2020-06-07,Beauregard,Louisiana,22011,101,4 +2020-06-08,Beauregard,Louisiana,22011,106,4 +2020-06-09,Beauregard,Louisiana,22011,114,4 +2020-06-10,Beauregard,Louisiana,22011,116,5 +2020-06-11,Beauregard,Louisiana,22011,117,6 +2020-06-12,Beauregard,Louisiana,22011,127,6 +2020-06-13,Beauregard,Louisiana,22011,134,6 +2020-06-14,Beauregard,Louisiana,22011,134,6 +2020-06-15,Beauregard,Louisiana,22011,136,6 +2020-06-16,Beauregard,Louisiana,22011,136,6 +2020-06-17,Beauregard,Louisiana,22011,139,6 +2020-06-18,Beauregard,Louisiana,22011,139,6 +2020-06-19,Beauregard,Louisiana,22011,147,7 +2020-06-20,Beauregard,Louisiana,22011,155,7 +2020-06-21,Beauregard,Louisiana,22011,158,7 +2020-06-22,Beauregard,Louisiana,22011,159,7 +2020-06-23,Beauregard,Louisiana,22011,165,7 +2020-06-24,Beauregard,Louisiana,22011,168,8 +2020-06-25,Beauregard,Louisiana,22011,173,8 +2020-06-26,Beauregard,Louisiana,22011,184,8 +2020-06-27,Beauregard,Louisiana,22011,184,8 +2020-06-28,Beauregard,Louisiana,22011,191,8 +2020-06-29,Beauregard,Louisiana,22011,193,8 +2020-06-30,Beauregard,Louisiana,22011,201,8 +2020-07-01,Beauregard,Louisiana,22011,214,8 +2020-07-02,Beauregard,Louisiana,22011,228,9 +2020-07-03,Beauregard,Louisiana,22011,231,9 +2020-07-04,Beauregard,Louisiana,22011,231,9 +2020-07-05,Beauregard,Louisiana,22011,247,9 +2020-07-06,Beauregard,Louisiana,22011,259,9 +2020-07-07,Beauregard,Louisiana,22011,269,9 +2020-07-08,Beauregard,Louisiana,22011,274,9 +2020-07-09,Beauregard,Louisiana,22011,291,9 +2020-03-21,Bienville,Louisiana,22013,1,0 +2020-03-22,Bienville,Louisiana,22013,1,0 +2020-03-23,Bienville,Louisiana,22013,1,0 +2020-03-24,Bienville,Louisiana,22013,1,0 +2020-03-25,Bienville,Louisiana,22013,1,1 +2020-03-26,Bienville,Louisiana,22013,1,1 +2020-03-27,Bienville,Louisiana,22013,1,1 +2020-03-28,Bienville,Louisiana,22013,3,1 +2020-03-29,Bienville,Louisiana,22013,3,1 +2020-03-30,Bienville,Louisiana,22013,5,1 +2020-03-31,Bienville,Louisiana,22013,6,1 +2020-04-01,Bienville,Louisiana,22013,6,1 +2020-04-02,Bienville,Louisiana,22013,8,1 +2020-04-03,Bienville,Louisiana,22013,9,1 +2020-04-04,Bienville,Louisiana,22013,10,1 +2020-04-05,Bienville,Louisiana,22013,12,1 +2020-04-06,Bienville,Louisiana,22013,14,1 +2020-04-07,Bienville,Louisiana,22013,17,1 +2020-04-08,Bienville,Louisiana,22013,17,1 +2020-04-09,Bienville,Louisiana,22013,24,1 +2020-04-10,Bienville,Louisiana,22013,27,1 +2020-04-11,Bienville,Louisiana,22013,30,1 +2020-04-12,Bienville,Louisiana,22013,33,1 +2020-04-13,Bienville,Louisiana,22013,37,2 +2020-04-14,Bienville,Louisiana,22013,37,6 +2020-04-15,Bienville,Louisiana,22013,42,7 +2020-04-16,Bienville,Louisiana,22013,45,8 +2020-04-17,Bienville,Louisiana,22013,58,9 +2020-04-18,Bienville,Louisiana,22013,65,9 +2020-04-19,Bienville,Louisiana,22013,66,9 +2020-04-20,Bienville,Louisiana,22013,66,9 +2020-04-21,Bienville,Louisiana,22013,66,9 +2020-04-22,Bienville,Louisiana,22013,69,9 +2020-04-23,Bienville,Louisiana,22013,69,12 +2020-04-24,Bienville,Louisiana,22013,69,13 +2020-04-25,Bienville,Louisiana,22013,70,13 +2020-04-26,Bienville,Louisiana,22013,72,13 +2020-04-27,Bienville,Louisiana,22013,73,13 +2020-04-28,Bienville,Louisiana,22013,73,13 +2020-04-29,Bienville,Louisiana,22013,74,13 +2020-04-30,Bienville,Louisiana,22013,77,13 +2020-05-01,Bienville,Louisiana,22013,77,13 +2020-05-02,Bienville,Louisiana,22013,76,13 +2020-05-03,Bienville,Louisiana,22013,76,13 +2020-05-04,Bienville,Louisiana,22013,78,13 +2020-05-05,Bienville,Louisiana,22013,78,14 +2020-05-06,Bienville,Louisiana,22013,78,15 +2020-05-07,Bienville,Louisiana,22013,78,16 +2020-05-08,Bienville,Louisiana,22013,77,17 +2020-05-09,Bienville,Louisiana,22013,77,18 +2020-05-10,Bienville,Louisiana,22013,77,18 +2020-05-11,Bienville,Louisiana,22013,77,20 +2020-05-12,Bienville,Louisiana,22013,77,20 +2020-05-13,Bienville,Louisiana,22013,80,20 +2020-05-14,Bienville,Louisiana,22013,81,20 +2020-05-15,Bienville,Louisiana,22013,83,20 +2020-05-16,Bienville,Louisiana,22013,82,20 +2020-05-17,Bienville,Louisiana,22013,83,20 +2020-05-18,Bienville,Louisiana,22013,84,20 +2020-05-19,Bienville,Louisiana,22013,84,20 +2020-05-20,Bienville,Louisiana,22013,84,20 +2020-05-21,Bienville,Louisiana,22013,114,21 +2020-05-22,Bienville,Louisiana,22013,136,21 +2020-05-23,Bienville,Louisiana,22013,136,21 +2020-05-24,Bienville,Louisiana,22013,137,21 +2020-05-25,Bienville,Louisiana,22013,138,21 +2020-05-26,Bienville,Louisiana,22013,138,22 +2020-05-27,Bienville,Louisiana,22013,139,22 +2020-05-28,Bienville,Louisiana,22013,139,23 +2020-05-29,Bienville,Louisiana,22013,139,23 +2020-05-30,Bienville,Louisiana,22013,144,23 +2020-05-31,Bienville,Louisiana,22013,146,23 +2020-06-01,Bienville,Louisiana,22013,147,23 +2020-06-02,Bienville,Louisiana,22013,147,23 +2020-06-03,Bienville,Louisiana,22013,149,23 +2020-06-04,Bienville,Louisiana,22013,149,23 +2020-06-05,Bienville,Louisiana,22013,151,23 +2020-06-06,Bienville,Louisiana,22013,152,23 +2020-06-07,Bienville,Louisiana,22013,153,23 +2020-06-08,Bienville,Louisiana,22013,154,23 +2020-06-09,Bienville,Louisiana,22013,157,24 +2020-06-10,Bienville,Louisiana,22013,166,24 +2020-06-11,Bienville,Louisiana,22013,167,24 +2020-06-12,Bienville,Louisiana,22013,170,24 +2020-06-13,Bienville,Louisiana,22013,172,24 +2020-06-14,Bienville,Louisiana,22013,173,24 +2020-06-15,Bienville,Louisiana,22013,175,24 +2020-06-16,Bienville,Louisiana,22013,176,24 +2020-06-17,Bienville,Louisiana,22013,183,24 +2020-06-18,Bienville,Louisiana,22013,183,24 +2020-06-19,Bienville,Louisiana,22013,196,25 +2020-06-20,Bienville,Louisiana,22013,198,26 +2020-06-21,Bienville,Louisiana,22013,200,26 +2020-06-22,Bienville,Louisiana,22013,200,26 +2020-06-23,Bienville,Louisiana,22013,209,26 +2020-06-24,Bienville,Louisiana,22013,210,26 +2020-06-25,Bienville,Louisiana,22013,210,26 +2020-06-26,Bienville,Louisiana,22013,211,26 +2020-06-27,Bienville,Louisiana,22013,211,26 +2020-06-28,Bienville,Louisiana,22013,220,26 +2020-06-29,Bienville,Louisiana,22013,220,26 +2020-06-30,Bienville,Louisiana,22013,227,26 +2020-07-01,Bienville,Louisiana,22013,227,27 +2020-07-02,Bienville,Louisiana,22013,230,27 +2020-07-03,Bienville,Louisiana,22013,233,27 +2020-07-04,Bienville,Louisiana,22013,233,27 +2020-07-05,Bienville,Louisiana,22013,233,28 +2020-07-06,Bienville,Louisiana,22013,234,28 +2020-07-07,Bienville,Louisiana,22013,244,28 +2020-07-08,Bienville,Louisiana,22013,248,28 +2020-07-09,Bienville,Louisiana,22013,254,28 +2020-03-14,Bossier,Louisiana,22015,1,0 +2020-03-15,Bossier,Louisiana,22015,1,0 +2020-03-16,Bossier,Louisiana,22015,1,0 +2020-03-17,Bossier,Louisiana,22015,1,0 +2020-03-18,Bossier,Louisiana,22015,2,0 +2020-03-19,Bossier,Louisiana,22015,4,0 +2020-03-20,Bossier,Louisiana,22015,5,0 +2020-03-21,Bossier,Louisiana,22015,5,0 +2020-03-22,Bossier,Louisiana,22015,5,0 +2020-03-23,Bossier,Louisiana,22015,12,0 +2020-03-24,Bossier,Louisiana,22015,12,0 +2020-03-25,Bossier,Louisiana,22015,25,0 +2020-03-26,Bossier,Louisiana,22015,32,0 +2020-03-27,Bossier,Louisiana,22015,37,0 +2020-03-28,Bossier,Louisiana,22015,45,0 +2020-03-29,Bossier,Louisiana,22015,56,0 +2020-03-30,Bossier,Louisiana,22015,57,0 +2020-03-31,Bossier,Louisiana,22015,63,1 +2020-04-01,Bossier,Louisiana,22015,75,1 +2020-04-02,Bossier,Louisiana,22015,87,2 +2020-04-03,Bossier,Louisiana,22015,95,2 +2020-04-04,Bossier,Louisiana,22015,126,2 +2020-04-05,Bossier,Louisiana,22015,133,3 +2020-04-06,Bossier,Louisiana,22015,139,3 +2020-04-07,Bossier,Louisiana,22015,146,4 +2020-04-08,Bossier,Louisiana,22015,159,6 +2020-04-09,Bossier,Louisiana,22015,171,7 +2020-04-10,Bossier,Louisiana,22015,175,7 +2020-04-11,Bossier,Louisiana,22015,178,9 +2020-04-12,Bossier,Louisiana,22015,186,9 +2020-04-13,Bossier,Louisiana,22015,188,10 +2020-04-14,Bossier,Louisiana,22015,207,10 +2020-04-15,Bossier,Louisiana,22015,211,11 +2020-04-16,Bossier,Louisiana,22015,220,11 +2020-04-17,Bossier,Louisiana,22015,230,11 +2020-04-18,Bossier,Louisiana,22015,230,11 +2020-04-19,Bossier,Louisiana,22015,233,11 +2020-04-20,Bossier,Louisiana,22015,233,11 +2020-04-21,Bossier,Louisiana,22015,241,11 +2020-04-22,Bossier,Louisiana,22015,246,12 +2020-04-23,Bossier,Louisiana,22015,255,12 +2020-04-24,Bossier,Louisiana,22015,258,12 +2020-04-25,Bossier,Louisiana,22015,265,12 +2020-04-26,Bossier,Louisiana,22015,270,13 +2020-04-27,Bossier,Louisiana,22015,274,13 +2020-04-28,Bossier,Louisiana,22015,277,14 +2020-04-29,Bossier,Louisiana,22015,285,15 +2020-04-30,Bossier,Louisiana,22015,286,17 +2020-05-01,Bossier,Louisiana,22015,287,17 +2020-05-02,Bossier,Louisiana,22015,292,17 +2020-05-03,Bossier,Louisiana,22015,295,17 +2020-05-04,Bossier,Louisiana,22015,300,17 +2020-05-05,Bossier,Louisiana,22015,300,17 +2020-05-06,Bossier,Louisiana,22015,303,18 +2020-05-07,Bossier,Louisiana,22015,307,18 +2020-05-08,Bossier,Louisiana,22015,308,19 +2020-05-09,Bossier,Louisiana,22015,310,20 +2020-05-10,Bossier,Louisiana,22015,310,20 +2020-05-11,Bossier,Louisiana,22015,312,21 +2020-05-12,Bossier,Louisiana,22015,313,22 +2020-05-13,Bossier,Louisiana,22015,324,22 +2020-05-14,Bossier,Louisiana,22015,327,22 +2020-05-15,Bossier,Louisiana,22015,336,23 +2020-05-16,Bossier,Louisiana,22015,342,23 +2020-05-17,Bossier,Louisiana,22015,344,23 +2020-05-18,Bossier,Louisiana,22015,346,24 +2020-05-19,Bossier,Louisiana,22015,348,24 +2020-05-20,Bossier,Louisiana,22015,353,24 +2020-05-21,Bossier,Louisiana,22015,374,24 +2020-05-22,Bossier,Louisiana,22015,380,25 +2020-05-23,Bossier,Louisiana,22015,381,25 +2020-05-24,Bossier,Louisiana,22015,382,25 +2020-05-25,Bossier,Louisiana,22015,398,25 +2020-05-26,Bossier,Louisiana,22015,398,25 +2020-05-27,Bossier,Louisiana,22015,402,25 +2020-05-28,Bossier,Louisiana,22015,406,25 +2020-05-29,Bossier,Louisiana,22015,406,26 +2020-05-30,Bossier,Louisiana,22015,412,26 +2020-05-31,Bossier,Louisiana,22015,415,26 +2020-06-01,Bossier,Louisiana,22015,416,26 +2020-06-02,Bossier,Louisiana,22015,421,26 +2020-06-03,Bossier,Louisiana,22015,425,25 +2020-06-04,Bossier,Louisiana,22015,438,25 +2020-06-05,Bossier,Louisiana,22015,450,25 +2020-06-06,Bossier,Louisiana,22015,453,25 +2020-06-07,Bossier,Louisiana,22015,463,26 +2020-06-08,Bossier,Louisiana,22015,464,26 +2020-06-09,Bossier,Louisiana,22015,473,26 +2020-06-10,Bossier,Louisiana,22015,478,26 +2020-06-11,Bossier,Louisiana,22015,484,26 +2020-06-12,Bossier,Louisiana,22015,488,26 +2020-06-13,Bossier,Louisiana,22015,494,27 +2020-06-14,Bossier,Louisiana,22015,502,28 +2020-06-15,Bossier,Louisiana,22015,510,28 +2020-06-16,Bossier,Louisiana,22015,513,28 +2020-06-17,Bossier,Louisiana,22015,528,28 +2020-06-18,Bossier,Louisiana,22015,528,28 +2020-06-19,Bossier,Louisiana,22015,643,28 +2020-06-20,Bossier,Louisiana,22015,654,28 +2020-06-21,Bossier,Louisiana,22015,665,28 +2020-06-22,Bossier,Louisiana,22015,668,28 +2020-06-23,Bossier,Louisiana,22015,697,28 +2020-06-24,Bossier,Louisiana,22015,720,28 +2020-06-25,Bossier,Louisiana,22015,751,28 +2020-06-26,Bossier,Louisiana,22015,780,29 +2020-06-27,Bossier,Louisiana,22015,780,29 +2020-06-28,Bossier,Louisiana,22015,825,29 +2020-06-29,Bossier,Louisiana,22015,836,29 +2020-06-30,Bossier,Louisiana,22015,875,30 +2020-07-01,Bossier,Louisiana,22015,906,31 +2020-07-02,Bossier,Louisiana,22015,947,32 +2020-07-03,Bossier,Louisiana,22015,971,33 +2020-07-04,Bossier,Louisiana,22015,971,33 +2020-07-05,Bossier,Louisiana,22015,1007,35 +2020-07-06,Bossier,Louisiana,22015,1030,35 +2020-07-07,Bossier,Louisiana,22015,1099,36 +2020-07-08,Bossier,Louisiana,22015,1142,36 +2020-07-09,Bossier,Louisiana,22015,1177,36 +2020-03-11,Caddo,Louisiana,22017,1,0 +2020-03-12,Caddo,Louisiana,22017,1,0 +2020-03-13,Caddo,Louisiana,22017,1,0 +2020-03-14,Caddo,Louisiana,22017,2,0 +2020-03-15,Caddo,Louisiana,22017,2,0 +2020-03-16,Caddo,Louisiana,22017,3,0 +2020-03-17,Caddo,Louisiana,22017,4,0 +2020-03-18,Caddo,Louisiana,22017,6,0 +2020-03-19,Caddo,Louisiana,22017,10,0 +2020-03-20,Caddo,Louisiana,22017,12,0 +2020-03-21,Caddo,Louisiana,22017,15,0 +2020-03-22,Caddo,Louisiana,22017,16,0 +2020-03-23,Caddo,Louisiana,22017,34,0 +2020-03-24,Caddo,Louisiana,22017,40,0 +2020-03-25,Caddo,Louisiana,22017,93,0 +2020-03-26,Caddo,Louisiana,22017,115,1 +2020-03-27,Caddo,Louisiana,22017,140,2 +2020-03-28,Caddo,Louisiana,22017,189,2 +2020-03-29,Caddo,Louisiana,22017,219,5 +2020-03-30,Caddo,Louisiana,22017,222,5 +2020-03-31,Caddo,Louisiana,22017,242,7 +2020-04-01,Caddo,Louisiana,22017,298,7 +2020-04-02,Caddo,Louisiana,22017,336,10 +2020-04-03,Caddo,Louisiana,22017,377,10 +2020-04-04,Caddo,Louisiana,22017,598,10 +2020-04-05,Caddo,Louisiana,22017,647,19 +2020-04-06,Caddo,Louisiana,22017,711,21 +2020-04-07,Caddo,Louisiana,22017,756,26 +2020-04-08,Caddo,Louisiana,22017,803,25 +2020-04-09,Caddo,Louisiana,22017,906,26 +2020-04-10,Caddo,Louisiana,22017,950,39 +2020-04-11,Caddo,Louisiana,22017,974,39 +2020-04-12,Caddo,Louisiana,22017,1018,39 +2020-04-13,Caddo,Louisiana,22017,1033,39 +2020-04-14,Caddo,Louisiana,22017,1097,56 +2020-04-15,Caddo,Louisiana,22017,1118,57 +2020-04-16,Caddo,Louisiana,22017,1154,55 +2020-04-17,Caddo,Louisiana,22017,1220,56 +2020-04-18,Caddo,Louisiana,22017,1244,68 +2020-04-19,Caddo,Louisiana,22017,1261,70 +2020-04-20,Caddo,Louisiana,22017,1276,72 +2020-04-21,Caddo,Louisiana,22017,1310,83 +2020-04-22,Caddo,Louisiana,22017,1332,84 +2020-04-23,Caddo,Louisiana,22017,1389,85 +2020-04-24,Caddo,Louisiana,22017,1407,85 +2020-04-25,Caddo,Louisiana,22017,1432,92 +2020-04-26,Caddo,Louisiana,22017,1448,93 +2020-04-27,Caddo,Louisiana,22017,1470,93 +2020-04-28,Caddo,Louisiana,22017,1497,100 +2020-04-29,Caddo,Louisiana,22017,1525,106 +2020-04-30,Caddo,Louisiana,22017,1540,107 +2020-05-01,Caddo,Louisiana,22017,1579,113 +2020-05-02,Caddo,Louisiana,22017,1601,113 +2020-05-03,Caddo,Louisiana,22017,1610,114 +2020-05-04,Caddo,Louisiana,22017,1629,114 +2020-05-05,Caddo,Louisiana,22017,1639,123 +2020-05-06,Caddo,Louisiana,22017,1667,124 +2020-05-07,Caddo,Louisiana,22017,1690,126 +2020-05-08,Caddo,Louisiana,22017,1712,128 +2020-05-09,Caddo,Louisiana,22017,1743,129 +2020-05-10,Caddo,Louisiana,22017,1751,133 +2020-05-11,Caddo,Louisiana,22017,1765,132 +2020-05-12,Caddo,Louisiana,22017,1784,135 +2020-05-13,Caddo,Louisiana,22017,1800,140 +2020-05-14,Caddo,Louisiana,22017,1818,143 +2020-05-15,Caddo,Louisiana,22017,1846,147 +2020-05-16,Caddo,Louisiana,22017,1864,155 +2020-05-17,Caddo,Louisiana,22017,1877,155 +2020-05-18,Caddo,Louisiana,22017,1898,155 +2020-05-19,Caddo,Louisiana,22017,1912,155 +2020-05-20,Caddo,Louisiana,22017,1939,156 +2020-05-21,Caddo,Louisiana,22017,2272,156 +2020-05-22,Caddo,Louisiana,22017,2293,171 +2020-05-23,Caddo,Louisiana,22017,2299,174 +2020-05-24,Caddo,Louisiana,22017,2312,174 +2020-05-25,Caddo,Louisiana,22017,2343,174 +2020-05-26,Caddo,Louisiana,22017,2347,175 +2020-05-27,Caddo,Louisiana,22017,2427,175 +2020-05-28,Caddo,Louisiana,22017,2480,180 +2020-05-29,Caddo,Louisiana,22017,2480,186 +2020-05-30,Caddo,Louisiana,22017,2525,188 +2020-05-31,Caddo,Louisiana,22017,2562,188 +2020-06-01,Caddo,Louisiana,22017,2578,189 +2020-06-02,Caddo,Louisiana,22017,2609,190 +2020-06-03,Caddo,Louisiana,22017,2633,198 +2020-06-04,Caddo,Louisiana,22017,2676,198 +2020-06-05,Caddo,Louisiana,22017,2699,203 +2020-06-06,Caddo,Louisiana,22017,2713,206 +2020-06-07,Caddo,Louisiana,22017,2731,206 +2020-06-08,Caddo,Louisiana,22017,2737,206 +2020-06-09,Caddo,Louisiana,22017,2755,210 +2020-06-10,Caddo,Louisiana,22017,2784,210 +2020-06-11,Caddo,Louisiana,22017,2794,210 +2020-06-12,Caddo,Louisiana,22017,2803,210 +2020-06-13,Caddo,Louisiana,22017,2830,213 +2020-06-14,Caddo,Louisiana,22017,2853,213 +2020-06-15,Caddo,Louisiana,22017,2869,214 +2020-06-16,Caddo,Louisiana,22017,2888,217 +2020-06-17,Caddo,Louisiana,22017,2933,217 +2020-06-18,Caddo,Louisiana,22017,2933,217 +2020-06-19,Caddo,Louisiana,22017,2831,219 +2020-06-20,Caddo,Louisiana,22017,2881,223 +2020-06-21,Caddo,Louisiana,22017,2905,223 +2020-06-22,Caddo,Louisiana,22017,2920,223 +2020-06-23,Caddo,Louisiana,22017,2953,223 +2020-06-24,Caddo,Louisiana,22017,2995,228 +2020-06-25,Caddo,Louisiana,22017,3096,230 +2020-06-26,Caddo,Louisiana,22017,3161,232 +2020-06-27,Caddo,Louisiana,22017,3161,232 +2020-06-28,Caddo,Louisiana,22017,3211,232 +2020-06-29,Caddo,Louisiana,22017,3260,232 +2020-06-30,Caddo,Louisiana,22017,3309,235 +2020-07-01,Caddo,Louisiana,22017,3418,235 +2020-07-02,Caddo,Louisiana,22017,3520,235 +2020-07-03,Caddo,Louisiana,22017,3598,243 +2020-07-04,Caddo,Louisiana,22017,3598,243 +2020-07-05,Caddo,Louisiana,22017,3706,243 +2020-07-06,Caddo,Louisiana,22017,3740,243 +2020-07-07,Caddo,Louisiana,22017,3835,243 +2020-07-08,Caddo,Louisiana,22017,3946,243 +2020-07-09,Caddo,Louisiana,22017,4055,243 +2020-03-19,Calcasieu,Louisiana,22019,1,0 +2020-03-20,Calcasieu,Louisiana,22019,3,0 +2020-03-21,Calcasieu,Louisiana,22019,4,0 +2020-03-22,Calcasieu,Louisiana,22019,4,0 +2020-03-23,Calcasieu,Louisiana,22019,4,0 +2020-03-24,Calcasieu,Louisiana,22019,5,1 +2020-03-25,Calcasieu,Louisiana,22019,11,1 +2020-03-26,Calcasieu,Louisiana,22019,15,1 +2020-03-27,Calcasieu,Louisiana,22019,22,1 +2020-03-28,Calcasieu,Louisiana,22019,28,1 +2020-03-29,Calcasieu,Louisiana,22019,35,1 +2020-03-30,Calcasieu,Louisiana,22019,42,1 +2020-03-31,Calcasieu,Louisiana,22019,65,1 +2020-04-01,Calcasieu,Louisiana,22019,90,1 +2020-04-02,Calcasieu,Louisiana,22019,108,1 +2020-04-03,Calcasieu,Louisiana,22019,119,1 +2020-04-04,Calcasieu,Louisiana,22019,135,3 +2020-04-05,Calcasieu,Louisiana,22019,139,3 +2020-04-06,Calcasieu,Louisiana,22019,159,3 +2020-04-07,Calcasieu,Louisiana,22019,186,3 +2020-04-08,Calcasieu,Louisiana,22019,191,4 +2020-04-09,Calcasieu,Louisiana,22019,209,4 +2020-04-10,Calcasieu,Louisiana,22019,228,5 +2020-04-11,Calcasieu,Louisiana,22019,248,8 +2020-04-12,Calcasieu,Louisiana,22019,259,12 +2020-04-13,Calcasieu,Louisiana,22019,268,13 +2020-04-14,Calcasieu,Louisiana,22019,273,14 +2020-04-15,Calcasieu,Louisiana,22019,282,15 +2020-04-16,Calcasieu,Louisiana,22019,300,15 +2020-04-17,Calcasieu,Louisiana,22019,309,16 +2020-04-18,Calcasieu,Louisiana,22019,309,18 +2020-04-19,Calcasieu,Louisiana,22019,323,19 +2020-04-20,Calcasieu,Louisiana,22019,324,19 +2020-04-21,Calcasieu,Louisiana,22019,334,20 +2020-04-22,Calcasieu,Louisiana,22019,341,23 +2020-04-23,Calcasieu,Louisiana,22019,352,24 +2020-04-24,Calcasieu,Louisiana,22019,356,26 +2020-04-25,Calcasieu,Louisiana,22019,360,26 +2020-04-26,Calcasieu,Louisiana,22019,363,27 +2020-04-27,Calcasieu,Louisiana,22019,369,27 +2020-04-28,Calcasieu,Louisiana,22019,377,28 +2020-04-29,Calcasieu,Louisiana,22019,386,29 +2020-04-30,Calcasieu,Louisiana,22019,389,29 +2020-05-01,Calcasieu,Louisiana,22019,437,29 +2020-05-02,Calcasieu,Louisiana,22019,449,31 +2020-05-03,Calcasieu,Louisiana,22019,455,31 +2020-05-04,Calcasieu,Louisiana,22019,464,31 +2020-05-05,Calcasieu,Louisiana,22019,470,34 +2020-05-06,Calcasieu,Louisiana,22019,475,35 +2020-05-07,Calcasieu,Louisiana,22019,478,37 +2020-05-08,Calcasieu,Louisiana,22019,481,38 +2020-05-09,Calcasieu,Louisiana,22019,490,37 +2020-05-10,Calcasieu,Louisiana,22019,493,37 +2020-05-11,Calcasieu,Louisiana,22019,496,37 +2020-05-12,Calcasieu,Louisiana,22019,496,40 +2020-05-13,Calcasieu,Louisiana,22019,505,40 +2020-05-14,Calcasieu,Louisiana,22019,507,40 +2020-05-15,Calcasieu,Louisiana,22019,513,40 +2020-05-16,Calcasieu,Louisiana,22019,514,40 +2020-05-17,Calcasieu,Louisiana,22019,517,40 +2020-05-18,Calcasieu,Louisiana,22019,520,40 +2020-05-19,Calcasieu,Louisiana,22019,521,40 +2020-05-20,Calcasieu,Louisiana,22019,521,42 +2020-05-21,Calcasieu,Louisiana,22019,548,42 +2020-05-22,Calcasieu,Louisiana,22019,567,43 +2020-05-23,Calcasieu,Louisiana,22019,568,43 +2020-05-24,Calcasieu,Louisiana,22019,568,43 +2020-05-25,Calcasieu,Louisiana,22019,572,43 +2020-05-26,Calcasieu,Louisiana,22019,578,44 +2020-05-27,Calcasieu,Louisiana,22019,581,44 +2020-05-28,Calcasieu,Louisiana,22019,588,45 +2020-05-29,Calcasieu,Louisiana,22019,588,46 +2020-05-30,Calcasieu,Louisiana,22019,596,49 +2020-05-31,Calcasieu,Louisiana,22019,599,49 +2020-06-01,Calcasieu,Louisiana,22019,608,49 +2020-06-02,Calcasieu,Louisiana,22019,611,49 +2020-06-03,Calcasieu,Louisiana,22019,613,49 +2020-06-04,Calcasieu,Louisiana,22019,621,49 +2020-06-05,Calcasieu,Louisiana,22019,625,51 +2020-06-06,Calcasieu,Louisiana,22019,632,51 +2020-06-07,Calcasieu,Louisiana,22019,637,51 +2020-06-08,Calcasieu,Louisiana,22019,642,51 +2020-06-09,Calcasieu,Louisiana,22019,661,51 +2020-06-10,Calcasieu,Louisiana,22019,673,51 +2020-06-11,Calcasieu,Louisiana,22019,684,51 +2020-06-12,Calcasieu,Louisiana,22019,701,51 +2020-06-13,Calcasieu,Louisiana,22019,741,51 +2020-06-14,Calcasieu,Louisiana,22019,755,51 +2020-06-15,Calcasieu,Louisiana,22019,772,51 +2020-06-16,Calcasieu,Louisiana,22019,789,51 +2020-06-17,Calcasieu,Louisiana,22019,824,52 +2020-06-18,Calcasieu,Louisiana,22019,824,52 +2020-06-19,Calcasieu,Louisiana,22019,831,52 +2020-06-20,Calcasieu,Louisiana,22019,876,53 +2020-06-21,Calcasieu,Louisiana,22019,888,53 +2020-06-22,Calcasieu,Louisiana,22019,921,53 +2020-06-23,Calcasieu,Louisiana,22019,971,53 +2020-06-24,Calcasieu,Louisiana,22019,1010,54 +2020-06-25,Calcasieu,Louisiana,22019,1061,54 +2020-06-26,Calcasieu,Louisiana,22019,1138,54 +2020-06-27,Calcasieu,Louisiana,22019,1138,54 +2020-06-28,Calcasieu,Louisiana,22019,1205,54 +2020-06-29,Calcasieu,Louisiana,22019,1257,54 +2020-06-30,Calcasieu,Louisiana,22019,1300,59 +2020-07-01,Calcasieu,Louisiana,22019,1729,59 +2020-07-02,Calcasieu,Louisiana,22019,1852,59 +2020-07-03,Calcasieu,Louisiana,22019,2000,59 +2020-07-04,Calcasieu,Louisiana,22019,2000,59 +2020-07-05,Calcasieu,Louisiana,22019,2153,59 +2020-07-06,Calcasieu,Louisiana,22019,2289,59 +2020-07-07,Calcasieu,Louisiana,22019,2408,59 +2020-07-08,Calcasieu,Louisiana,22019,2701,62 +2020-07-09,Calcasieu,Louisiana,22019,2797,63 +2020-04-02,Caldwell,Louisiana,22021,1,0 +2020-04-03,Caldwell,Louisiana,22021,1,0 +2020-04-04,Caldwell,Louisiana,22021,3,0 +2020-04-05,Caldwell,Louisiana,22021,10,0 +2020-04-06,Caldwell,Louisiana,22021,11,0 +2020-04-07,Caldwell,Louisiana,22021,13,0 +2020-04-08,Caldwell,Louisiana,22021,14,0 +2020-04-09,Caldwell,Louisiana,22021,18,0 +2020-04-10,Caldwell,Louisiana,22021,18,0 +2020-04-11,Caldwell,Louisiana,22021,18,0 +2020-04-12,Caldwell,Louisiana,22021,18,0 +2020-04-13,Caldwell,Louisiana,22021,18,0 +2020-04-14,Caldwell,Louisiana,22021,18,0 +2020-04-15,Caldwell,Louisiana,22021,18,0 +2020-04-16,Caldwell,Louisiana,22021,19,0 +2020-04-17,Caldwell,Louisiana,22021,19,0 +2020-04-18,Caldwell,Louisiana,22021,15,0 +2020-04-19,Caldwell,Louisiana,22021,15,0 +2020-04-20,Caldwell,Louisiana,22021,15,0 +2020-04-21,Caldwell,Louisiana,22021,15,0 +2020-04-22,Caldwell,Louisiana,22021,15,0 +2020-04-23,Caldwell,Louisiana,22021,17,0 +2020-04-24,Caldwell,Louisiana,22021,17,0 +2020-04-25,Caldwell,Louisiana,22021,17,0 +2020-04-26,Caldwell,Louisiana,22021,17,0 +2020-04-27,Caldwell,Louisiana,22021,17,0 +2020-04-28,Caldwell,Louisiana,22021,17,0 +2020-04-29,Caldwell,Louisiana,22021,18,0 +2020-04-30,Caldwell,Louisiana,22021,18,0 +2020-05-01,Caldwell,Louisiana,22021,20,0 +2020-05-02,Caldwell,Louisiana,22021,20,0 +2020-05-03,Caldwell,Louisiana,22021,31,0 +2020-05-04,Caldwell,Louisiana,22021,39,0 +2020-05-05,Caldwell,Louisiana,22021,40,0 +2020-05-06,Caldwell,Louisiana,22021,41,0 +2020-05-07,Caldwell,Louisiana,22021,41,0 +2020-05-08,Caldwell,Louisiana,22021,47,0 +2020-05-09,Caldwell,Louisiana,22021,48,0 +2020-05-10,Caldwell,Louisiana,22021,48,0 +2020-05-11,Caldwell,Louisiana,22021,48,0 +2020-05-12,Caldwell,Louisiana,22021,48,0 +2020-05-13,Caldwell,Louisiana,22021,48,0 +2020-05-14,Caldwell,Louisiana,22021,48,0 +2020-05-15,Caldwell,Louisiana,22021,48,0 +2020-05-16,Caldwell,Louisiana,22021,50,0 +2020-05-17,Caldwell,Louisiana,22021,50,0 +2020-05-18,Caldwell,Louisiana,22021,50,0 +2020-05-19,Caldwell,Louisiana,22021,50,0 +2020-05-20,Caldwell,Louisiana,22021,50,0 +2020-05-21,Caldwell,Louisiana,22021,51,0 +2020-05-22,Caldwell,Louisiana,22021,51,0 +2020-05-23,Caldwell,Louisiana,22021,51,0 +2020-05-24,Caldwell,Louisiana,22021,52,0 +2020-05-25,Caldwell,Louisiana,22021,52,0 +2020-05-26,Caldwell,Louisiana,22021,52,0 +2020-05-27,Caldwell,Louisiana,22021,52,0 +2020-05-28,Caldwell,Louisiana,22021,52,0 +2020-05-29,Caldwell,Louisiana,22021,52,0 +2020-05-30,Caldwell,Louisiana,22021,53,0 +2020-05-31,Caldwell,Louisiana,22021,54,0 +2020-06-01,Caldwell,Louisiana,22021,58,0 +2020-06-02,Caldwell,Louisiana,22021,60,0 +2020-06-03,Caldwell,Louisiana,22021,61,0 +2020-06-04,Caldwell,Louisiana,22021,65,1 +2020-06-05,Caldwell,Louisiana,22021,70,1 +2020-06-06,Caldwell,Louisiana,22021,71,1 +2020-06-07,Caldwell,Louisiana,22021,71,1 +2020-06-08,Caldwell,Louisiana,22021,72,1 +2020-06-09,Caldwell,Louisiana,22021,74,1 +2020-06-10,Caldwell,Louisiana,22021,76,1 +2020-06-11,Caldwell,Louisiana,22021,76,1 +2020-06-12,Caldwell,Louisiana,22021,76,1 +2020-06-13,Caldwell,Louisiana,22021,79,1 +2020-06-14,Caldwell,Louisiana,22021,83,1 +2020-06-15,Caldwell,Louisiana,22021,83,1 +2020-06-16,Caldwell,Louisiana,22021,83,1 +2020-06-17,Caldwell,Louisiana,22021,86,1 +2020-06-18,Caldwell,Louisiana,22021,86,1 +2020-06-19,Caldwell,Louisiana,22021,93,1 +2020-06-20,Caldwell,Louisiana,22021,94,1 +2020-06-21,Caldwell,Louisiana,22021,95,1 +2020-06-22,Caldwell,Louisiana,22021,97,1 +2020-06-23,Caldwell,Louisiana,22021,99,1 +2020-06-24,Caldwell,Louisiana,22021,102,1 +2020-06-25,Caldwell,Louisiana,22021,102,1 +2020-06-26,Caldwell,Louisiana,22021,103,1 +2020-06-27,Caldwell,Louisiana,22021,103,1 +2020-06-28,Caldwell,Louisiana,22021,103,1 +2020-06-29,Caldwell,Louisiana,22021,104,1 +2020-06-30,Caldwell,Louisiana,22021,104,1 +2020-07-01,Caldwell,Louisiana,22021,105,1 +2020-07-02,Caldwell,Louisiana,22021,105,1 +2020-07-03,Caldwell,Louisiana,22021,106,1 +2020-07-04,Caldwell,Louisiana,22021,106,1 +2020-07-05,Caldwell,Louisiana,22021,112,1 +2020-07-06,Caldwell,Louisiana,22021,112,1 +2020-07-07,Caldwell,Louisiana,22021,113,1 +2020-07-08,Caldwell,Louisiana,22021,117,1 +2020-07-09,Caldwell,Louisiana,22021,118,1 +2020-04-07,Cameron,Louisiana,22023,1,0 +2020-04-08,Cameron,Louisiana,22023,1,0 +2020-04-09,Cameron,Louisiana,22023,1,0 +2020-04-10,Cameron,Louisiana,22023,1,0 +2020-04-11,Cameron,Louisiana,22023,2,0 +2020-04-12,Cameron,Louisiana,22023,2,0 +2020-04-13,Cameron,Louisiana,22023,2,0 +2020-04-14,Cameron,Louisiana,22023,2,0 +2020-04-15,Cameron,Louisiana,22023,2,0 +2020-04-16,Cameron,Louisiana,22023,2,0 +2020-04-17,Cameron,Louisiana,22023,2,0 +2020-04-18,Cameron,Louisiana,22023,2,0 +2020-04-19,Cameron,Louisiana,22023,3,0 +2020-04-20,Cameron,Louisiana,22023,3,0 +2020-04-21,Cameron,Louisiana,22023,3,0 +2020-04-22,Cameron,Louisiana,22023,3,0 +2020-04-23,Cameron,Louisiana,22023,3,0 +2020-04-24,Cameron,Louisiana,22023,3,0 +2020-04-25,Cameron,Louisiana,22023,3,0 +2020-04-26,Cameron,Louisiana,22023,3,0 +2020-04-27,Cameron,Louisiana,22023,3,0 +2020-04-28,Cameron,Louisiana,22023,3,0 +2020-04-29,Cameron,Louisiana,22023,3,0 +2020-04-30,Cameron,Louisiana,22023,3,0 +2020-05-01,Cameron,Louisiana,22023,3,0 +2020-05-02,Cameron,Louisiana,22023,3,0 +2020-05-03,Cameron,Louisiana,22023,3,0 +2020-05-04,Cameron,Louisiana,22023,3,0 +2020-05-05,Cameron,Louisiana,22023,3,0 +2020-05-06,Cameron,Louisiana,22023,3,0 +2020-05-07,Cameron,Louisiana,22023,3,0 +2020-05-08,Cameron,Louisiana,22023,3,0 +2020-05-09,Cameron,Louisiana,22023,3,0 +2020-05-10,Cameron,Louisiana,22023,3,0 +2020-05-11,Cameron,Louisiana,22023,3,0 +2020-05-12,Cameron,Louisiana,22023,3,0 +2020-05-13,Cameron,Louisiana,22023,3,0 +2020-05-14,Cameron,Louisiana,22023,3,0 +2020-05-15,Cameron,Louisiana,22023,3,0 +2020-05-16,Cameron,Louisiana,22023,3,0 +2020-05-17,Cameron,Louisiana,22023,3,0 +2020-05-18,Cameron,Louisiana,22023,3,0 +2020-05-19,Cameron,Louisiana,22023,3,0 +2020-05-20,Cameron,Louisiana,22023,3,0 +2020-05-21,Cameron,Louisiana,22023,3,0 +2020-05-22,Cameron,Louisiana,22023,3,0 +2020-05-23,Cameron,Louisiana,22023,3,0 +2020-05-24,Cameron,Louisiana,22023,3,0 +2020-05-25,Cameron,Louisiana,22023,3,0 +2020-05-26,Cameron,Louisiana,22023,3,0 +2020-05-27,Cameron,Louisiana,22023,3,0 +2020-05-28,Cameron,Louisiana,22023,3,0 +2020-05-29,Cameron,Louisiana,22023,3,0 +2020-05-30,Cameron,Louisiana,22023,5,0 +2020-05-31,Cameron,Louisiana,22023,6,0 +2020-06-01,Cameron,Louisiana,22023,6,0 +2020-06-02,Cameron,Louisiana,22023,6,0 +2020-06-03,Cameron,Louisiana,22023,6,0 +2020-06-04,Cameron,Louisiana,22023,8,0 +2020-06-05,Cameron,Louisiana,22023,8,0 +2020-06-06,Cameron,Louisiana,22023,9,0 +2020-06-07,Cameron,Louisiana,22023,9,0 +2020-06-08,Cameron,Louisiana,22023,9,0 +2020-06-09,Cameron,Louisiana,22023,10,0 +2020-06-10,Cameron,Louisiana,22023,10,0 +2020-06-11,Cameron,Louisiana,22023,11,0 +2020-06-12,Cameron,Louisiana,22023,11,0 +2020-06-13,Cameron,Louisiana,22023,11,0 +2020-06-14,Cameron,Louisiana,22023,11,0 +2020-06-15,Cameron,Louisiana,22023,11,0 +2020-06-16,Cameron,Louisiana,22023,11,0 +2020-06-17,Cameron,Louisiana,22023,12,0 +2020-06-18,Cameron,Louisiana,22023,12,0 +2020-06-19,Cameron,Louisiana,22023,26,0 +2020-06-20,Cameron,Louisiana,22023,26,0 +2020-06-21,Cameron,Louisiana,22023,27,0 +2020-06-22,Cameron,Louisiana,22023,28,0 +2020-06-23,Cameron,Louisiana,22023,35,0 +2020-06-24,Cameron,Louisiana,22023,36,0 +2020-06-25,Cameron,Louisiana,22023,36,0 +2020-06-26,Cameron,Louisiana,22023,38,0 +2020-06-27,Cameron,Louisiana,22023,38,0 +2020-06-28,Cameron,Louisiana,22023,40,0 +2020-06-29,Cameron,Louisiana,22023,40,0 +2020-06-30,Cameron,Louisiana,22023,46,0 +2020-07-01,Cameron,Louisiana,22023,53,0 +2020-07-02,Cameron,Louisiana,22023,54,0 +2020-07-03,Cameron,Louisiana,22023,56,0 +2020-07-04,Cameron,Louisiana,22023,56,0 +2020-07-05,Cameron,Louisiana,22023,58,0 +2020-07-06,Cameron,Louisiana,22023,57,0 +2020-07-07,Cameron,Louisiana,22023,85,0 +2020-07-08,Cameron,Louisiana,22023,89,0 +2020-07-09,Cameron,Louisiana,22023,93,0 +2020-03-20,Catahoula,Louisiana,22025,1,0 +2020-03-21,Catahoula,Louisiana,22025,1,0 +2020-03-22,Catahoula,Louisiana,22025,1,1 +2020-03-23,Catahoula,Louisiana,22025,1,1 +2020-03-24,Catahoula,Louisiana,22025,1,1 +2020-03-25,Catahoula,Louisiana,22025,1,1 +2020-03-26,Catahoula,Louisiana,22025,1,1 +2020-03-27,Catahoula,Louisiana,22025,1,1 +2020-03-28,Catahoula,Louisiana,22025,1,1 +2020-03-29,Catahoula,Louisiana,22025,1,1 +2020-03-30,Catahoula,Louisiana,22025,3,1 +2020-03-31,Catahoula,Louisiana,22025,3,1 +2020-04-01,Catahoula,Louisiana,22025,3,1 +2020-04-02,Catahoula,Louisiana,22025,5,1 +2020-04-03,Catahoula,Louisiana,22025,6,1 +2020-04-04,Catahoula,Louisiana,22025,9,1 +2020-04-05,Catahoula,Louisiana,22025,9,1 +2020-04-06,Catahoula,Louisiana,22025,12,1 +2020-04-07,Catahoula,Louisiana,22025,13,1 +2020-04-08,Catahoula,Louisiana,22025,14,1 +2020-04-09,Catahoula,Louisiana,22025,17,1 +2020-04-10,Catahoula,Louisiana,22025,18,1 +2020-04-11,Catahoula,Louisiana,22025,20,1 +2020-04-12,Catahoula,Louisiana,22025,21,1 +2020-04-13,Catahoula,Louisiana,22025,21,1 +2020-04-14,Catahoula,Louisiana,22025,21,1 +2020-04-15,Catahoula,Louisiana,22025,22,1 +2020-04-16,Catahoula,Louisiana,22025,23,1 +2020-04-17,Catahoula,Louisiana,22025,23,1 +2020-04-18,Catahoula,Louisiana,22025,23,1 +2020-04-19,Catahoula,Louisiana,22025,24,1 +2020-04-20,Catahoula,Louisiana,22025,24,1 +2020-04-21,Catahoula,Louisiana,22025,24,1 +2020-04-22,Catahoula,Louisiana,22025,24,1 +2020-04-23,Catahoula,Louisiana,22025,24,2 +2020-04-24,Catahoula,Louisiana,22025,25,2 +2020-04-25,Catahoula,Louisiana,22025,25,2 +2020-04-26,Catahoula,Louisiana,22025,25,2 +2020-04-27,Catahoula,Louisiana,22025,25,2 +2020-04-28,Catahoula,Louisiana,22025,25,2 +2020-04-29,Catahoula,Louisiana,22025,35,2 +2020-04-30,Catahoula,Louisiana,22025,36,2 +2020-05-01,Catahoula,Louisiana,22025,40,2 +2020-05-02,Catahoula,Louisiana,22025,44,2 +2020-05-03,Catahoula,Louisiana,22025,45,2 +2020-05-04,Catahoula,Louisiana,22025,46,2 +2020-05-05,Catahoula,Louisiana,22025,46,3 +2020-05-06,Catahoula,Louisiana,22025,46,2 +2020-05-07,Catahoula,Louisiana,22025,46,2 +2020-05-08,Catahoula,Louisiana,22025,59,2 +2020-05-09,Catahoula,Louisiana,22025,83,2 +2020-05-10,Catahoula,Louisiana,22025,85,2 +2020-05-11,Catahoula,Louisiana,22025,85,3 +2020-05-12,Catahoula,Louisiana,22025,86,3 +2020-05-13,Catahoula,Louisiana,22025,103,3 +2020-05-14,Catahoula,Louisiana,22025,103,3 +2020-05-15,Catahoula,Louisiana,22025,103,3 +2020-05-16,Catahoula,Louisiana,22025,104,3 +2020-05-17,Catahoula,Louisiana,22025,106,3 +2020-05-18,Catahoula,Louisiana,22025,106,3 +2020-05-19,Catahoula,Louisiana,22025,106,3 +2020-05-20,Catahoula,Louisiana,22025,106,3 +2020-05-21,Catahoula,Louisiana,22025,112,3 +2020-05-22,Catahoula,Louisiana,22025,112,3 +2020-05-23,Catahoula,Louisiana,22025,112,3 +2020-05-24,Catahoula,Louisiana,22025,112,3 +2020-05-25,Catahoula,Louisiana,22025,112,3 +2020-05-26,Catahoula,Louisiana,22025,112,3 +2020-05-27,Catahoula,Louisiana,22025,112,3 +2020-05-28,Catahoula,Louisiana,22025,112,3 +2020-05-29,Catahoula,Louisiana,22025,112,3 +2020-05-30,Catahoula,Louisiana,22025,113,3 +2020-05-31,Catahoula,Louisiana,22025,113,3 +2020-06-01,Catahoula,Louisiana,22025,115,3 +2020-06-02,Catahoula,Louisiana,22025,114,3 +2020-06-03,Catahoula,Louisiana,22025,117,3 +2020-06-04,Catahoula,Louisiana,22025,119,3 +2020-06-05,Catahoula,Louisiana,22025,120,3 +2020-06-06,Catahoula,Louisiana,22025,120,3 +2020-06-07,Catahoula,Louisiana,22025,121,3 +2020-06-08,Catahoula,Louisiana,22025,121,3 +2020-06-09,Catahoula,Louisiana,22025,121,3 +2020-06-10,Catahoula,Louisiana,22025,123,3 +2020-06-11,Catahoula,Louisiana,22025,123,3 +2020-06-12,Catahoula,Louisiana,22025,124,3 +2020-06-13,Catahoula,Louisiana,22025,130,3 +2020-06-14,Catahoula,Louisiana,22025,130,3 +2020-06-15,Catahoula,Louisiana,22025,131,3 +2020-06-16,Catahoula,Louisiana,22025,162,3 +2020-06-17,Catahoula,Louisiana,22025,164,3 +2020-06-18,Catahoula,Louisiana,22025,164,3 +2020-06-19,Catahoula,Louisiana,22025,151,3 +2020-06-20,Catahoula,Louisiana,22025,152,3 +2020-06-21,Catahoula,Louisiana,22025,152,3 +2020-06-22,Catahoula,Louisiana,22025,153,3 +2020-06-23,Catahoula,Louisiana,22025,154,3 +2020-06-24,Catahoula,Louisiana,22025,154,3 +2020-06-25,Catahoula,Louisiana,22025,157,3 +2020-06-26,Catahoula,Louisiana,22025,160,3 +2020-06-27,Catahoula,Louisiana,22025,160,3 +2020-06-28,Catahoula,Louisiana,22025,188,3 +2020-06-29,Catahoula,Louisiana,22025,190,3 +2020-06-30,Catahoula,Louisiana,22025,190,3 +2020-07-01,Catahoula,Louisiana,22025,190,3 +2020-07-02,Catahoula,Louisiana,22025,192,3 +2020-07-03,Catahoula,Louisiana,22025,194,3 +2020-07-04,Catahoula,Louisiana,22025,194,3 +2020-07-05,Catahoula,Louisiana,22025,195,3 +2020-07-06,Catahoula,Louisiana,22025,198,3 +2020-07-07,Catahoula,Louisiana,22025,204,3 +2020-07-08,Catahoula,Louisiana,22025,206,3 +2020-07-09,Catahoula,Louisiana,22025,210,3 +2020-03-21,Claiborne,Louisiana,22027,1,0 +2020-03-22,Claiborne,Louisiana,22027,1,0 +2020-03-23,Claiborne,Louisiana,22027,2,0 +2020-03-24,Claiborne,Louisiana,22027,2,0 +2020-03-25,Claiborne,Louisiana,22027,2,0 +2020-03-26,Claiborne,Louisiana,22027,2,0 +2020-03-27,Claiborne,Louisiana,22027,3,0 +2020-03-28,Claiborne,Louisiana,22027,4,0 +2020-03-29,Claiborne,Louisiana,22027,4,0 +2020-03-30,Claiborne,Louisiana,22027,4,0 +2020-03-31,Claiborne,Louisiana,22027,8,0 +2020-04-01,Claiborne,Louisiana,22027,10,0 +2020-04-02,Claiborne,Louisiana,22027,11,2 +2020-04-03,Claiborne,Louisiana,22027,18,2 +2020-04-04,Claiborne,Louisiana,22027,20,2 +2020-04-05,Claiborne,Louisiana,22027,23,2 +2020-04-06,Claiborne,Louisiana,22027,30,2 +2020-04-07,Claiborne,Louisiana,22027,30,2 +2020-04-08,Claiborne,Louisiana,22027,33,2 +2020-04-09,Claiborne,Louisiana,22027,38,2 +2020-04-10,Claiborne,Louisiana,22027,40,2 +2020-04-11,Claiborne,Louisiana,22027,41,3 +2020-04-12,Claiborne,Louisiana,22027,41,3 +2020-04-13,Claiborne,Louisiana,22027,41,3 +2020-04-14,Claiborne,Louisiana,22027,41,4 +2020-04-15,Claiborne,Louisiana,22027,44,4 +2020-04-16,Claiborne,Louisiana,22027,47,4 +2020-04-17,Claiborne,Louisiana,22027,48,4 +2020-04-18,Claiborne,Louisiana,22027,50,4 +2020-04-19,Claiborne,Louisiana,22027,50,5 +2020-04-20,Claiborne,Louisiana,22027,50,5 +2020-04-21,Claiborne,Louisiana,22027,50,5 +2020-04-22,Claiborne,Louisiana,22027,50,5 +2020-04-23,Claiborne,Louisiana,22027,50,5 +2020-04-24,Claiborne,Louisiana,22027,52,5 +2020-04-25,Claiborne,Louisiana,22027,52,5 +2020-04-26,Claiborne,Louisiana,22027,52,6 +2020-04-27,Claiborne,Louisiana,22027,52,6 +2020-04-28,Claiborne,Louisiana,22027,53,7 +2020-04-29,Claiborne,Louisiana,22027,54,7 +2020-04-30,Claiborne,Louisiana,22027,59,7 +2020-05-01,Claiborne,Louisiana,22027,59,7 +2020-05-02,Claiborne,Louisiana,22027,59,7 +2020-05-03,Claiborne,Louisiana,22027,58,7 +2020-05-04,Claiborne,Louisiana,22027,58,7 +2020-05-05,Claiborne,Louisiana,22027,58,7 +2020-05-06,Claiborne,Louisiana,22027,58,7 +2020-05-07,Claiborne,Louisiana,22027,58,9 +2020-05-08,Claiborne,Louisiana,22027,58,9 +2020-05-09,Claiborne,Louisiana,22027,59,9 +2020-05-10,Claiborne,Louisiana,22027,59,9 +2020-05-11,Claiborne,Louisiana,22027,59,9 +2020-05-12,Claiborne,Louisiana,22027,59,9 +2020-05-13,Claiborne,Louisiana,22027,59,10 +2020-05-14,Claiborne,Louisiana,22027,59,10 +2020-05-15,Claiborne,Louisiana,22027,59,10 +2020-05-16,Claiborne,Louisiana,22027,58,10 +2020-05-17,Claiborne,Louisiana,22027,58,10 +2020-05-18,Claiborne,Louisiana,22027,58,10 +2020-05-19,Claiborne,Louisiana,22027,58,10 +2020-05-20,Claiborne,Louisiana,22027,58,10 +2020-05-21,Claiborne,Louisiana,22027,58,10 +2020-05-22,Claiborne,Louisiana,22027,60,10 +2020-05-23,Claiborne,Louisiana,22027,60,10 +2020-05-24,Claiborne,Louisiana,22027,61,10 +2020-05-25,Claiborne,Louisiana,22027,61,10 +2020-05-26,Claiborne,Louisiana,22027,61,10 +2020-05-27,Claiborne,Louisiana,22027,62,10 +2020-05-28,Claiborne,Louisiana,22027,62,10 +2020-05-29,Claiborne,Louisiana,22027,62,10 +2020-05-30,Claiborne,Louisiana,22027,66,10 +2020-05-31,Claiborne,Louisiana,22027,66,10 +2020-06-01,Claiborne,Louisiana,22027,66,10 +2020-06-02,Claiborne,Louisiana,22027,66,10 +2020-06-03,Claiborne,Louisiana,22027,66,10 +2020-06-04,Claiborne,Louisiana,22027,66,10 +2020-06-05,Claiborne,Louisiana,22027,66,10 +2020-06-06,Claiborne,Louisiana,22027,66,10 +2020-06-07,Claiborne,Louisiana,22027,66,10 +2020-06-08,Claiborne,Louisiana,22027,68,10 +2020-06-09,Claiborne,Louisiana,22027,70,10 +2020-06-10,Claiborne,Louisiana,22027,71,10 +2020-06-11,Claiborne,Louisiana,22027,72,10 +2020-06-12,Claiborne,Louisiana,22027,73,10 +2020-06-13,Claiborne,Louisiana,22027,76,10 +2020-06-14,Claiborne,Louisiana,22027,77,10 +2020-06-15,Claiborne,Louisiana,22027,78,10 +2020-06-16,Claiborne,Louisiana,22027,81,10 +2020-06-17,Claiborne,Louisiana,22027,85,10 +2020-06-18,Claiborne,Louisiana,22027,85,10 +2020-06-19,Claiborne,Louisiana,22027,105,10 +2020-06-20,Claiborne,Louisiana,22027,105,10 +2020-06-21,Claiborne,Louisiana,22027,106,10 +2020-06-22,Claiborne,Louisiana,22027,106,10 +2020-06-23,Claiborne,Louisiana,22027,108,11 +2020-06-24,Claiborne,Louisiana,22027,109,11 +2020-06-25,Claiborne,Louisiana,22027,110,11 +2020-06-26,Claiborne,Louisiana,22027,114,11 +2020-06-27,Claiborne,Louisiana,22027,114,11 +2020-06-28,Claiborne,Louisiana,22027,114,11 +2020-06-29,Claiborne,Louisiana,22027,116,11 +2020-06-30,Claiborne,Louisiana,22027,120,11 +2020-07-01,Claiborne,Louisiana,22027,120,10 +2020-07-02,Claiborne,Louisiana,22027,122,10 +2020-07-03,Claiborne,Louisiana,22027,125,10 +2020-07-04,Claiborne,Louisiana,22027,125,10 +2020-07-05,Claiborne,Louisiana,22027,128,10 +2020-07-06,Claiborne,Louisiana,22027,128,10 +2020-07-07,Claiborne,Louisiana,22027,133,10 +2020-07-08,Claiborne,Louisiana,22027,135,10 +2020-07-09,Claiborne,Louisiana,22027,140,10 +2020-03-31,Concordia,Louisiana,22029,3,0 +2020-04-01,Concordia,Louisiana,22029,5,0 +2020-04-02,Concordia,Louisiana,22029,8,0 +2020-04-03,Concordia,Louisiana,22029,10,1 +2020-04-04,Concordia,Louisiana,22029,5,1 +2020-04-05,Concordia,Louisiana,22029,5,1 +2020-04-06,Concordia,Louisiana,22029,9,1 +2020-04-07,Concordia,Louisiana,22029,11,1 +2020-04-08,Concordia,Louisiana,22029,12,1 +2020-04-09,Concordia,Louisiana,22029,13,1 +2020-04-10,Concordia,Louisiana,22029,16,1 +2020-04-11,Concordia,Louisiana,22029,17,1 +2020-04-12,Concordia,Louisiana,22029,18,1 +2020-04-13,Concordia,Louisiana,22029,19,1 +2020-04-14,Concordia,Louisiana,22029,19,1 +2020-04-15,Concordia,Louisiana,22029,21,1 +2020-04-16,Concordia,Louisiana,22029,21,2 +2020-04-17,Concordia,Louisiana,22029,23,2 +2020-04-18,Concordia,Louisiana,22029,25,2 +2020-04-19,Concordia,Louisiana,22029,26,2 +2020-04-20,Concordia,Louisiana,22029,26,2 +2020-04-21,Concordia,Louisiana,22029,26,2 +2020-04-22,Concordia,Louisiana,22029,27,2 +2020-04-23,Concordia,Louisiana,22029,27,2 +2020-04-24,Concordia,Louisiana,22029,28,3 +2020-04-25,Concordia,Louisiana,22029,30,3 +2020-04-26,Concordia,Louisiana,22029,30,3 +2020-04-27,Concordia,Louisiana,22029,31,3 +2020-04-28,Concordia,Louisiana,22029,32,4 +2020-04-29,Concordia,Louisiana,22029,36,4 +2020-04-30,Concordia,Louisiana,22029,38,4 +2020-05-01,Concordia,Louisiana,22029,39,4 +2020-05-02,Concordia,Louisiana,22029,39,4 +2020-05-03,Concordia,Louisiana,22029,39,4 +2020-05-04,Concordia,Louisiana,22029,40,5 +2020-05-05,Concordia,Louisiana,22029,41,4 +2020-05-06,Concordia,Louisiana,22029,42,4 +2020-05-07,Concordia,Louisiana,22029,42,4 +2020-05-08,Concordia,Louisiana,22029,43,4 +2020-05-09,Concordia,Louisiana,22029,43,4 +2020-05-10,Concordia,Louisiana,22029,43,4 +2020-05-11,Concordia,Louisiana,22029,43,4 +2020-05-12,Concordia,Louisiana,22029,43,4 +2020-05-13,Concordia,Louisiana,22029,51,4 +2020-05-14,Concordia,Louisiana,22029,54,4 +2020-05-15,Concordia,Louisiana,22029,55,4 +2020-05-16,Concordia,Louisiana,22029,56,4 +2020-05-17,Concordia,Louisiana,22029,57,5 +2020-05-18,Concordia,Louisiana,22029,57,5 +2020-05-19,Concordia,Louisiana,22029,57,5 +2020-05-20,Concordia,Louisiana,22029,57,5 +2020-05-21,Concordia,Louisiana,22029,68,5 +2020-05-22,Concordia,Louisiana,22029,69,5 +2020-05-23,Concordia,Louisiana,22029,69,5 +2020-05-24,Concordia,Louisiana,22029,69,5 +2020-05-25,Concordia,Louisiana,22029,73,5 +2020-05-26,Concordia,Louisiana,22029,74,5 +2020-05-27,Concordia,Louisiana,22029,86,5 +2020-05-28,Concordia,Louisiana,22029,86,5 +2020-05-29,Concordia,Louisiana,22029,86,5 +2020-05-30,Concordia,Louisiana,22029,87,5 +2020-05-31,Concordia,Louisiana,22029,87,5 +2020-06-01,Concordia,Louisiana,22029,88,5 +2020-06-02,Concordia,Louisiana,22029,88,5 +2020-06-03,Concordia,Louisiana,22029,94,5 +2020-06-04,Concordia,Louisiana,22029,94,5 +2020-06-05,Concordia,Louisiana,22029,95,5 +2020-06-06,Concordia,Louisiana,22029,96,5 +2020-06-07,Concordia,Louisiana,22029,96,5 +2020-06-08,Concordia,Louisiana,22029,96,5 +2020-06-09,Concordia,Louisiana,22029,97,5 +2020-06-10,Concordia,Louisiana,22029,97,5 +2020-06-11,Concordia,Louisiana,22029,97,5 +2020-06-12,Concordia,Louisiana,22029,97,5 +2020-06-13,Concordia,Louisiana,22029,105,5 +2020-06-14,Concordia,Louisiana,22029,105,5 +2020-06-15,Concordia,Louisiana,22029,107,5 +2020-06-16,Concordia,Louisiana,22029,109,5 +2020-06-17,Concordia,Louisiana,22029,117,5 +2020-06-18,Concordia,Louisiana,22029,117,5 +2020-06-19,Concordia,Louisiana,22029,100,5 +2020-06-20,Concordia,Louisiana,22029,101,5 +2020-06-21,Concordia,Louisiana,22029,101,5 +2020-06-22,Concordia,Louisiana,22029,102,5 +2020-06-23,Concordia,Louisiana,22029,105,5 +2020-06-24,Concordia,Louisiana,22029,105,5 +2020-06-25,Concordia,Louisiana,22029,105,5 +2020-06-26,Concordia,Louisiana,22029,106,5 +2020-06-27,Concordia,Louisiana,22029,106,5 +2020-06-28,Concordia,Louisiana,22029,107,6 +2020-06-29,Concordia,Louisiana,22029,110,6 +2020-06-30,Concordia,Louisiana,22029,111,6 +2020-07-01,Concordia,Louisiana,22029,111,6 +2020-07-02,Concordia,Louisiana,22029,113,6 +2020-07-03,Concordia,Louisiana,22029,117,6 +2020-07-04,Concordia,Louisiana,22029,117,6 +2020-07-05,Concordia,Louisiana,22029,118,6 +2020-07-06,Concordia,Louisiana,22029,118,6 +2020-07-07,Concordia,Louisiana,22029,126,6 +2020-07-08,Concordia,Louisiana,22029,128,6 +2020-07-09,Concordia,Louisiana,22029,134,6 +2020-03-20,De Soto,Louisiana,22031,2,0 +2020-03-21,De Soto,Louisiana,22031,2,0 +2020-03-22,De Soto,Louisiana,22031,2,0 +2020-03-23,De Soto,Louisiana,22031,5,0 +2020-03-24,De Soto,Louisiana,22031,6,0 +2020-03-25,De Soto,Louisiana,22031,8,0 +2020-03-26,De Soto,Louisiana,22031,11,1 +2020-03-27,De Soto,Louisiana,22031,13,1 +2020-03-28,De Soto,Louisiana,22031,21,1 +2020-03-29,De Soto,Louisiana,22031,25,1 +2020-03-30,De Soto,Louisiana,22031,28,1 +2020-03-31,De Soto,Louisiana,22031,30,1 +2020-04-01,De Soto,Louisiana,22031,39,1 +2020-04-02,De Soto,Louisiana,22031,42,1 +2020-04-03,De Soto,Louisiana,22031,46,2 +2020-04-04,De Soto,Louisiana,22031,71,3 +2020-04-05,De Soto,Louisiana,22031,80,3 +2020-04-06,De Soto,Louisiana,22031,82,4 +2020-04-07,De Soto,Louisiana,22031,89,6 +2020-04-08,De Soto,Louisiana,22031,91,7 +2020-04-09,De Soto,Louisiana,22031,101,7 +2020-04-10,De Soto,Louisiana,22031,107,7 +2020-04-11,De Soto,Louisiana,22031,114,7 +2020-04-12,De Soto,Louisiana,22031,124,7 +2020-04-13,De Soto,Louisiana,22031,125,7 +2020-04-14,De Soto,Louisiana,22031,130,7 +2020-04-15,De Soto,Louisiana,22031,134,8 +2020-04-16,De Soto,Louisiana,22031,140,8 +2020-04-17,De Soto,Louisiana,22031,145,8 +2020-04-18,De Soto,Louisiana,22031,152,8 +2020-04-19,De Soto,Louisiana,22031,156,8 +2020-04-20,De Soto,Louisiana,22031,158,9 +2020-04-21,De Soto,Louisiana,22031,168,10 +2020-04-22,De Soto,Louisiana,22031,171,10 +2020-04-23,De Soto,Louisiana,22031,176,10 +2020-04-24,De Soto,Louisiana,22031,180,10 +2020-04-25,De Soto,Louisiana,22031,184,10 +2020-04-26,De Soto,Louisiana,22031,185,10 +2020-04-27,De Soto,Louisiana,22031,187,11 +2020-04-28,De Soto,Louisiana,22031,189,11 +2020-04-29,De Soto,Louisiana,22031,191,11 +2020-04-30,De Soto,Louisiana,22031,190,11 +2020-05-01,De Soto,Louisiana,22031,194,11 +2020-05-02,De Soto,Louisiana,22031,198,12 +2020-05-03,De Soto,Louisiana,22031,198,12 +2020-05-04,De Soto,Louisiana,22031,202,13 +2020-05-05,De Soto,Louisiana,22031,202,13 +2020-05-06,De Soto,Louisiana,22031,205,13 +2020-05-07,De Soto,Louisiana,22031,207,13 +2020-05-08,De Soto,Louisiana,22031,208,13 +2020-05-09,De Soto,Louisiana,22031,213,13 +2020-05-10,De Soto,Louisiana,22031,214,13 +2020-05-11,De Soto,Louisiana,22031,215,14 +2020-05-12,De Soto,Louisiana,22031,215,14 +2020-05-13,De Soto,Louisiana,22031,221,14 +2020-05-14,De Soto,Louisiana,22031,223,14 +2020-05-15,De Soto,Louisiana,22031,225,14 +2020-05-16,De Soto,Louisiana,22031,218,15 +2020-05-17,De Soto,Louisiana,22031,222,15 +2020-05-18,De Soto,Louisiana,22031,224,16 +2020-05-19,De Soto,Louisiana,22031,226,16 +2020-05-20,De Soto,Louisiana,22031,228,16 +2020-05-21,De Soto,Louisiana,22031,235,16 +2020-05-22,De Soto,Louisiana,22031,236,16 +2020-05-23,De Soto,Louisiana,22031,236,16 +2020-05-24,De Soto,Louisiana,22031,237,16 +2020-05-25,De Soto,Louisiana,22031,239,16 +2020-05-26,De Soto,Louisiana,22031,239,17 +2020-05-27,De Soto,Louisiana,22031,241,17 +2020-05-28,De Soto,Louisiana,22031,242,17 +2020-05-29,De Soto,Louisiana,22031,242,17 +2020-05-30,De Soto,Louisiana,22031,246,17 +2020-05-31,De Soto,Louisiana,22031,247,17 +2020-06-01,De Soto,Louisiana,22031,247,17 +2020-06-02,De Soto,Louisiana,22031,249,17 +2020-06-03,De Soto,Louisiana,22031,250,17 +2020-06-04,De Soto,Louisiana,22031,260,17 +2020-06-05,De Soto,Louisiana,22031,262,17 +2020-06-06,De Soto,Louisiana,22031,262,17 +2020-06-07,De Soto,Louisiana,22031,262,17 +2020-06-08,De Soto,Louisiana,22031,263,17 +2020-06-09,De Soto,Louisiana,22031,263,17 +2020-06-10,De Soto,Louisiana,22031,263,17 +2020-06-11,De Soto,Louisiana,22031,266,17 +2020-06-12,De Soto,Louisiana,22031,269,17 +2020-06-13,De Soto,Louisiana,22031,270,17 +2020-06-14,De Soto,Louisiana,22031,271,17 +2020-06-15,De Soto,Louisiana,22031,271,17 +2020-06-16,De Soto,Louisiana,22031,273,17 +2020-06-17,De Soto,Louisiana,22031,275,17 +2020-06-18,De Soto,Louisiana,22031,275,17 +2020-06-19,De Soto,Louisiana,22031,311,17 +2020-06-20,De Soto,Louisiana,22031,313,17 +2020-06-21,De Soto,Louisiana,22031,316,18 +2020-06-22,De Soto,Louisiana,22031,318,18 +2020-06-23,De Soto,Louisiana,22031,320,18 +2020-06-24,De Soto,Louisiana,22031,324,18 +2020-06-25,De Soto,Louisiana,22031,327,18 +2020-06-26,De Soto,Louisiana,22031,329,18 +2020-06-27,De Soto,Louisiana,22031,329,18 +2020-06-28,De Soto,Louisiana,22031,336,18 +2020-06-29,De Soto,Louisiana,22031,341,18 +2020-06-30,De Soto,Louisiana,22031,348,18 +2020-07-01,De Soto,Louisiana,22031,349,18 +2020-07-02,De Soto,Louisiana,22031,357,19 +2020-07-03,De Soto,Louisiana,22031,361,19 +2020-07-04,De Soto,Louisiana,22031,361,19 +2020-07-05,De Soto,Louisiana,22031,369,19 +2020-07-06,De Soto,Louisiana,22031,371,19 +2020-07-07,De Soto,Louisiana,22031,390,19 +2020-07-08,De Soto,Louisiana,22031,394,19 +2020-07-09,De Soto,Louisiana,22031,408,20 +2020-03-17,East Baton Rouge,Louisiana,22033,1,0 +2020-03-18,East Baton Rouge,Louisiana,22033,3,0 +2020-03-19,East Baton Rouge,Louisiana,22033,6,0 +2020-03-20,East Baton Rouge,Louisiana,22033,7,0 +2020-03-21,East Baton Rouge,Louisiana,22033,18,0 +2020-03-22,East Baton Rouge,Louisiana,22033,20,0 +2020-03-23,East Baton Rouge,Louisiana,22033,43,1 +2020-03-24,East Baton Rouge,Louisiana,22033,58,2 +2020-03-25,East Baton Rouge,Louisiana,22033,75,3 +2020-03-26,East Baton Rouge,Louisiana,22033,105,4 +2020-03-27,East Baton Rouge,Louisiana,22033,124,4 +2020-03-28,East Baton Rouge,Louisiana,22033,153,4 +2020-03-29,East Baton Rouge,Louisiana,22033,164,7 +2020-03-30,East Baton Rouge,Louisiana,22033,188,9 +2020-03-31,East Baton Rouge,Louisiana,22033,228,9 +2020-04-01,East Baton Rouge,Louisiana,22033,244,10 +2020-04-02,East Baton Rouge,Louisiana,22033,325,11 +2020-04-03,East Baton Rouge,Louisiana,22033,389,13 +2020-04-04,East Baton Rouge,Louisiana,22033,621,14 +2020-04-05,East Baton Rouge,Louisiana,22033,656,22 +2020-04-06,East Baton Rouge,Louisiana,22033,816,25 +2020-04-07,East Baton Rouge,Louisiana,22033,892,31 +2020-04-08,East Baton Rouge,Louisiana,22033,935,33 +2020-04-09,East Baton Rouge,Louisiana,22033,1000,36 +2020-04-10,East Baton Rouge,Louisiana,22033,1088,39 +2020-04-11,East Baton Rouge,Louisiana,22033,1158,45 +2020-04-12,East Baton Rouge,Louisiana,22033,1223,49 +2020-04-13,East Baton Rouge,Louisiana,22033,1273,52 +2020-04-14,East Baton Rouge,Louisiana,22033,1295,58 +2020-04-15,East Baton Rouge,Louisiana,22033,1325,62 +2020-04-16,East Baton Rouge,Louisiana,22033,1389,66 +2020-04-17,East Baton Rouge,Louisiana,22033,1424,66 +2020-04-18,East Baton Rouge,Louisiana,22033,1476,72 +2020-04-19,East Baton Rouge,Louisiana,22033,1512,72 +2020-04-20,East Baton Rouge,Louisiana,22033,1534,74 +2020-04-21,East Baton Rouge,Louisiana,22033,1560,90 +2020-04-22,East Baton Rouge,Louisiana,22033,1603,95 +2020-04-23,East Baton Rouge,Louisiana,22033,1636,100 +2020-04-24,East Baton Rouge,Louisiana,22033,1697,109 +2020-04-25,East Baton Rouge,Louisiana,22033,1720,114 +2020-04-26,East Baton Rouge,Louisiana,22033,1739,120 +2020-04-27,East Baton Rouge,Louisiana,22033,1771,124 +2020-04-28,East Baton Rouge,Louisiana,22033,1787,125 +2020-04-29,East Baton Rouge,Louisiana,22033,1830,129 +2020-04-30,East Baton Rouge,Louisiana,22033,1874,137 +2020-05-01,East Baton Rouge,Louisiana,22033,1989,146 +2020-05-02,East Baton Rouge,Louisiana,22033,2054,148 +2020-05-03,East Baton Rouge,Louisiana,22033,2086,153 +2020-05-04,East Baton Rouge,Louisiana,22033,2131,156 +2020-05-05,East Baton Rouge,Louisiana,22033,2175,163 +2020-05-06,East Baton Rouge,Louisiana,22033,2224,165 +2020-05-07,East Baton Rouge,Louisiana,22033,2256,170 +2020-05-08,East Baton Rouge,Louisiana,22033,2284,171 +2020-05-09,East Baton Rouge,Louisiana,22033,2348,179 +2020-05-10,East Baton Rouge,Louisiana,22033,2374,182 +2020-05-11,East Baton Rouge,Louisiana,22033,2398,188 +2020-05-12,East Baton Rouge,Louisiana,22033,2445,190 +2020-05-13,East Baton Rouge,Louisiana,22033,2487,199 +2020-05-14,East Baton Rouge,Louisiana,22033,2898,201 +2020-05-15,East Baton Rouge,Louisiana,22033,2953,205 +2020-05-16,East Baton Rouge,Louisiana,22033,3009,208 +2020-05-17,East Baton Rouge,Louisiana,22033,3034,212 +2020-05-18,East Baton Rouge,Louisiana,22033,3056,216 +2020-05-19,East Baton Rouge,Louisiana,22033,3145,219 +2020-05-20,East Baton Rouge,Louisiana,22033,3213,221 +2020-05-21,East Baton Rouge,Louisiana,22033,3319,225 +2020-05-22,East Baton Rouge,Louisiana,22033,3370,227 +2020-05-23,East Baton Rouge,Louisiana,22033,3382,227 +2020-05-24,East Baton Rouge,Louisiana,22033,3386,227 +2020-05-25,East Baton Rouge,Louisiana,22033,3438,227 +2020-05-26,East Baton Rouge,Louisiana,22033,3462,230 +2020-05-27,East Baton Rouge,Louisiana,22033,3491,230 +2020-05-28,East Baton Rouge,Louisiana,22033,3526,233 +2020-05-29,East Baton Rouge,Louisiana,22033,3526,236 +2020-05-30,East Baton Rouge,Louisiana,22033,3591,239 +2020-05-31,East Baton Rouge,Louisiana,22033,3618,239 +2020-06-01,East Baton Rouge,Louisiana,22033,3666,239 +2020-06-02,East Baton Rouge,Louisiana,22033,3730,240 +2020-06-03,East Baton Rouge,Louisiana,22033,3773,242 +2020-06-04,East Baton Rouge,Louisiana,22033,3820,246 +2020-06-05,East Baton Rouge,Louisiana,22033,3874,250 +2020-06-06,East Baton Rouge,Louisiana,22033,3911,250 +2020-06-07,East Baton Rouge,Louisiana,22033,3949,252 +2020-06-08,East Baton Rouge,Louisiana,22033,3963,252 +2020-06-09,East Baton Rouge,Louisiana,22033,4023,252 +2020-06-10,East Baton Rouge,Louisiana,22033,4054,254 +2020-06-11,East Baton Rouge,Louisiana,22033,4088,254 +2020-06-12,East Baton Rouge,Louisiana,22033,4150,256 +2020-06-13,East Baton Rouge,Louisiana,22033,4197,256 +2020-06-14,East Baton Rouge,Louisiana,22033,4226,258 +2020-06-15,East Baton Rouge,Louisiana,22033,4284,259 +2020-06-16,East Baton Rouge,Louisiana,22033,4301,260 +2020-06-17,East Baton Rouge,Louisiana,22033,4357,260 +2020-06-18,East Baton Rouge,Louisiana,22033,4357,260 +2020-06-19,East Baton Rouge,Louisiana,22033,4218,262 +2020-06-20,East Baton Rouge,Louisiana,22033,4332,263 +2020-06-21,East Baton Rouge,Louisiana,22033,4374,263 +2020-06-22,East Baton Rouge,Louisiana,22033,4398,265 +2020-06-23,East Baton Rouge,Louisiana,22033,4514,265 +2020-06-24,East Baton Rouge,Louisiana,22033,4637,266 +2020-06-25,East Baton Rouge,Louisiana,22033,4724,266 +2020-06-26,East Baton Rouge,Louisiana,22033,4833,268 +2020-06-27,East Baton Rouge,Louisiana,22033,4833,268 +2020-06-28,East Baton Rouge,Louisiana,22033,4963,268 +2020-06-29,East Baton Rouge,Louisiana,22033,5034,270 +2020-06-30,East Baton Rouge,Louisiana,22033,5123,270 +2020-07-01,East Baton Rouge,Louisiana,22033,5350,271 +2020-07-02,East Baton Rouge,Louisiana,22033,5531,273 +2020-07-03,East Baton Rouge,Louisiana,22033,5684,274 +2020-07-04,East Baton Rouge,Louisiana,22033,5684,274 +2020-07-05,East Baton Rouge,Louisiana,22033,5874,274 +2020-07-06,East Baton Rouge,Louisiana,22033,5978,274 +2020-07-07,East Baton Rouge,Louisiana,22033,6231,275 +2020-07-08,East Baton Rouge,Louisiana,22033,6336,276 +2020-07-09,East Baton Rouge,Louisiana,22033,6468,276 +2020-03-28,East Carroll,Louisiana,22035,1,0 +2020-03-29,East Carroll,Louisiana,22035,1,0 +2020-03-30,East Carroll,Louisiana,22035,1,0 +2020-03-31,East Carroll,Louisiana,22035,1,0 +2020-04-01,East Carroll,Louisiana,22035,1,0 +2020-04-02,East Carroll,Louisiana,22035,1,0 +2020-04-03,East Carroll,Louisiana,22035,1,0 +2020-04-04,East Carroll,Louisiana,22035,1,0 +2020-04-05,East Carroll,Louisiana,22035,1,0 +2020-04-06,East Carroll,Louisiana,22035,1,0 +2020-04-07,East Carroll,Louisiana,22035,1,0 +2020-04-08,East Carroll,Louisiana,22035,1,0 +2020-04-09,East Carroll,Louisiana,22035,1,0 +2020-04-10,East Carroll,Louisiana,22035,1,0 +2020-04-11,East Carroll,Louisiana,22035,1,0 +2020-04-12,East Carroll,Louisiana,22035,1,0 +2020-04-13,East Carroll,Louisiana,22035,1,0 +2020-04-14,East Carroll,Louisiana,22035,1,0 +2020-04-15,East Carroll,Louisiana,22035,1,0 +2020-04-16,East Carroll,Louisiana,22035,1,0 +2020-04-17,East Carroll,Louisiana,22035,1,0 +2020-04-18,East Carroll,Louisiana,22035,1,0 +2020-04-19,East Carroll,Louisiana,22035,1,0 +2020-04-20,East Carroll,Louisiana,22035,1,0 +2020-04-21,East Carroll,Louisiana,22035,1,0 +2020-04-22,East Carroll,Louisiana,22035,5,0 +2020-04-23,East Carroll,Louisiana,22035,5,0 +2020-04-24,East Carroll,Louisiana,22035,6,0 +2020-04-25,East Carroll,Louisiana,22035,6,0 +2020-04-26,East Carroll,Louisiana,22035,6,0 +2020-04-27,East Carroll,Louisiana,22035,6,0 +2020-04-28,East Carroll,Louisiana,22035,8,0 +2020-04-29,East Carroll,Louisiana,22035,8,0 +2020-04-30,East Carroll,Louisiana,22035,9,0 +2020-05-01,East Carroll,Louisiana,22035,9,0 +2020-05-02,East Carroll,Louisiana,22035,9,0 +2020-05-03,East Carroll,Louisiana,22035,9,0 +2020-05-04,East Carroll,Louisiana,22035,8,0 +2020-05-05,East Carroll,Louisiana,22035,9,0 +2020-05-06,East Carroll,Louisiana,22035,11,0 +2020-05-07,East Carroll,Louisiana,22035,14,0 +2020-05-08,East Carroll,Louisiana,22035,15,0 +2020-05-09,East Carroll,Louisiana,22035,17,0 +2020-05-10,East Carroll,Louisiana,22035,17,0 +2020-05-11,East Carroll,Louisiana,22035,23,0 +2020-05-12,East Carroll,Louisiana,22035,24,0 +2020-05-13,East Carroll,Louisiana,22035,25,0 +2020-05-14,East Carroll,Louisiana,22035,25,0 +2020-05-15,East Carroll,Louisiana,22035,26,0 +2020-05-16,East Carroll,Louisiana,22035,32,0 +2020-05-17,East Carroll,Louisiana,22035,34,0 +2020-05-18,East Carroll,Louisiana,22035,37,0 +2020-05-19,East Carroll,Louisiana,22035,46,0 +2020-05-20,East Carroll,Louisiana,22035,46,0 +2020-05-21,East Carroll,Louisiana,22035,51,0 +2020-05-22,East Carroll,Louisiana,22035,62,0 +2020-05-23,East Carroll,Louisiana,22035,62,0 +2020-05-24,East Carroll,Louisiana,22035,65,0 +2020-05-25,East Carroll,Louisiana,22035,103,0 +2020-05-26,East Carroll,Louisiana,22035,111,0 +2020-05-27,East Carroll,Louisiana,22035,115,0 +2020-05-28,East Carroll,Louisiana,22035,118,0 +2020-05-29,East Carroll,Louisiana,22035,118,0 +2020-05-30,East Carroll,Louisiana,22035,138,0 +2020-05-31,East Carroll,Louisiana,22035,148,0 +2020-06-01,East Carroll,Louisiana,22035,159,0 +2020-06-02,East Carroll,Louisiana,22035,164,0 +2020-06-03,East Carroll,Louisiana,22035,165,0 +2020-06-04,East Carroll,Louisiana,22035,179,0 +2020-06-05,East Carroll,Louisiana,22035,184,0 +2020-06-06,East Carroll,Louisiana,22035,187,0 +2020-06-07,East Carroll,Louisiana,22035,195,0 +2020-06-08,East Carroll,Louisiana,22035,199,0 +2020-06-09,East Carroll,Louisiana,22035,205,0 +2020-06-10,East Carroll,Louisiana,22035,208,0 +2020-06-11,East Carroll,Louisiana,22035,212,0 +2020-06-12,East Carroll,Louisiana,22035,216,0 +2020-06-13,East Carroll,Louisiana,22035,222,0 +2020-06-14,East Carroll,Louisiana,22035,235,0 +2020-06-15,East Carroll,Louisiana,22035,243,0 +2020-06-16,East Carroll,Louisiana,22035,243,0 +2020-06-17,East Carroll,Louisiana,22035,244,0 +2020-06-18,East Carroll,Louisiana,22035,244,0 +2020-06-19,East Carroll,Louisiana,22035,260,0 +2020-06-20,East Carroll,Louisiana,22035,308,0 +2020-06-21,East Carroll,Louisiana,22035,332,0 +2020-06-22,East Carroll,Louisiana,22035,339,0 +2020-06-23,East Carroll,Louisiana,22035,357,0 +2020-06-24,East Carroll,Louisiana,22035,381,0 +2020-06-25,East Carroll,Louisiana,22035,385,1 +2020-06-26,East Carroll,Louisiana,22035,425,1 +2020-06-27,East Carroll,Louisiana,22035,425,1 +2020-06-28,East Carroll,Louisiana,22035,427,1 +2020-06-29,East Carroll,Louisiana,22035,432,1 +2020-06-30,East Carroll,Louisiana,22035,440,1 +2020-07-01,East Carroll,Louisiana,22035,445,1 +2020-07-02,East Carroll,Louisiana,22035,445,1 +2020-07-03,East Carroll,Louisiana,22035,444,1 +2020-07-04,East Carroll,Louisiana,22035,444,1 +2020-07-05,East Carroll,Louisiana,22035,445,1 +2020-07-06,East Carroll,Louisiana,22035,447,1 +2020-07-07,East Carroll,Louisiana,22035,446,1 +2020-07-08,East Carroll,Louisiana,22035,449,1 +2020-07-09,East Carroll,Louisiana,22035,451,1 +2020-03-26,East Feliciana,Louisiana,22037,4,0 +2020-03-27,East Feliciana,Louisiana,22037,5,0 +2020-03-28,East Feliciana,Louisiana,22037,6,0 +2020-03-29,East Feliciana,Louisiana,22037,8,0 +2020-03-30,East Feliciana,Louisiana,22037,8,0 +2020-03-31,East Feliciana,Louisiana,22037,9,0 +2020-04-01,East Feliciana,Louisiana,22037,10,0 +2020-04-02,East Feliciana,Louisiana,22037,14,0 +2020-04-03,East Feliciana,Louisiana,22037,19,0 +2020-04-04,East Feliciana,Louisiana,22037,22,0 +2020-04-05,East Feliciana,Louisiana,22037,27,0 +2020-04-06,East Feliciana,Louisiana,22037,39,0 +2020-04-07,East Feliciana,Louisiana,22037,39,0 +2020-04-08,East Feliciana,Louisiana,22037,39,1 +2020-04-09,East Feliciana,Louisiana,22037,59,2 +2020-04-10,East Feliciana,Louisiana,22037,65,2 +2020-04-11,East Feliciana,Louisiana,22037,67,2 +2020-04-12,East Feliciana,Louisiana,22037,71,2 +2020-04-13,East Feliciana,Louisiana,22037,73,2 +2020-04-14,East Feliciana,Louisiana,22037,77,4 +2020-04-15,East Feliciana,Louisiana,22037,81,7 +2020-04-16,East Feliciana,Louisiana,22037,84,7 +2020-04-17,East Feliciana,Louisiana,22037,90,7 +2020-04-18,East Feliciana,Louisiana,22037,90,7 +2020-04-19,East Feliciana,Louisiana,22037,93,7 +2020-04-20,East Feliciana,Louisiana,22037,95,7 +2020-04-21,East Feliciana,Louisiana,22037,101,8 +2020-04-22,East Feliciana,Louisiana,22037,102,10 +2020-04-23,East Feliciana,Louisiana,22037,106,10 +2020-04-24,East Feliciana,Louisiana,22037,105,10 +2020-04-25,East Feliciana,Louisiana,22037,107,11 +2020-04-26,East Feliciana,Louisiana,22037,108,11 +2020-04-27,East Feliciana,Louisiana,22037,116,11 +2020-04-28,East Feliciana,Louisiana,22037,118,12 +2020-04-29,East Feliciana,Louisiana,22037,119,12 +2020-04-30,East Feliciana,Louisiana,22037,122,14 +2020-05-01,East Feliciana,Louisiana,22037,128,14 +2020-05-02,East Feliciana,Louisiana,22037,128,15 +2020-05-03,East Feliciana,Louisiana,22037,129,16 +2020-05-04,East Feliciana,Louisiana,22037,130,16 +2020-05-05,East Feliciana,Louisiana,22037,131,16 +2020-05-06,East Feliciana,Louisiana,22037,132,18 +2020-05-07,East Feliciana,Louisiana,22037,132,19 +2020-05-08,East Feliciana,Louisiana,22037,133,19 +2020-05-09,East Feliciana,Louisiana,22037,136,21 +2020-05-10,East Feliciana,Louisiana,22037,135,21 +2020-05-11,East Feliciana,Louisiana,22037,136,20 +2020-05-12,East Feliciana,Louisiana,22037,140,20 +2020-05-13,East Feliciana,Louisiana,22037,145,21 +2020-05-14,East Feliciana,Louisiana,22037,169,21 +2020-05-15,East Feliciana,Louisiana,22037,172,21 +2020-05-16,East Feliciana,Louisiana,22037,176,22 +2020-05-17,East Feliciana,Louisiana,22037,176,22 +2020-05-18,East Feliciana,Louisiana,22037,177,23 +2020-05-19,East Feliciana,Louisiana,22037,179,24 +2020-05-20,East Feliciana,Louisiana,22037,179,27 +2020-05-21,East Feliciana,Louisiana,22037,183,27 +2020-05-22,East Feliciana,Louisiana,22037,184,27 +2020-05-23,East Feliciana,Louisiana,22037,185,28 +2020-05-24,East Feliciana,Louisiana,22037,187,28 +2020-05-25,East Feliciana,Louisiana,22037,190,28 +2020-05-26,East Feliciana,Louisiana,22037,190,28 +2020-05-27,East Feliciana,Louisiana,22037,191,28 +2020-05-28,East Feliciana,Louisiana,22037,192,30 +2020-05-29,East Feliciana,Louisiana,22037,192,30 +2020-05-30,East Feliciana,Louisiana,22037,194,30 +2020-05-31,East Feliciana,Louisiana,22037,194,30 +2020-06-01,East Feliciana,Louisiana,22037,197,30 +2020-06-02,East Feliciana,Louisiana,22037,198,30 +2020-06-03,East Feliciana,Louisiana,22037,198,30 +2020-06-04,East Feliciana,Louisiana,22037,199,30 +2020-06-05,East Feliciana,Louisiana,22037,199,30 +2020-06-06,East Feliciana,Louisiana,22037,201,30 +2020-06-07,East Feliciana,Louisiana,22037,201,30 +2020-06-08,East Feliciana,Louisiana,22037,201,30 +2020-06-09,East Feliciana,Louisiana,22037,207,31 +2020-06-10,East Feliciana,Louisiana,22037,210,31 +2020-06-11,East Feliciana,Louisiana,22037,210,31 +2020-06-12,East Feliciana,Louisiana,22037,216,32 +2020-06-13,East Feliciana,Louisiana,22037,225,32 +2020-06-14,East Feliciana,Louisiana,22037,226,32 +2020-06-15,East Feliciana,Louisiana,22037,227,32 +2020-06-16,East Feliciana,Louisiana,22037,229,32 +2020-06-17,East Feliciana,Louisiana,22037,231,32 +2020-06-18,East Feliciana,Louisiana,22037,231,32 +2020-06-19,East Feliciana,Louisiana,22037,263,32 +2020-06-20,East Feliciana,Louisiana,22037,268,32 +2020-06-21,East Feliciana,Louisiana,22037,268,32 +2020-06-22,East Feliciana,Louisiana,22037,271,32 +2020-06-23,East Feliciana,Louisiana,22037,273,33 +2020-06-24,East Feliciana,Louisiana,22037,276,33 +2020-06-25,East Feliciana,Louisiana,22037,285,33 +2020-06-26,East Feliciana,Louisiana,22037,288,33 +2020-06-27,East Feliciana,Louisiana,22037,288,33 +2020-06-28,East Feliciana,Louisiana,22037,298,33 +2020-06-29,East Feliciana,Louisiana,22037,299,33 +2020-06-30,East Feliciana,Louisiana,22037,297,33 +2020-07-01,East Feliciana,Louisiana,22037,300,33 +2020-07-02,East Feliciana,Louisiana,22037,302,33 +2020-07-03,East Feliciana,Louisiana,22037,308,33 +2020-07-04,East Feliciana,Louisiana,22037,308,33 +2020-07-05,East Feliciana,Louisiana,22037,310,33 +2020-07-06,East Feliciana,Louisiana,22037,310,33 +2020-07-07,East Feliciana,Louisiana,22037,329,33 +2020-07-08,East Feliciana,Louisiana,22037,338,33 +2020-07-09,East Feliciana,Louisiana,22037,343,33 +2020-03-21,Evangeline,Louisiana,22039,2,0 +2020-03-22,Evangeline,Louisiana,22039,2,0 +2020-03-23,Evangeline,Louisiana,22039,2,0 +2020-03-24,Evangeline,Louisiana,22039,2,0 +2020-03-25,Evangeline,Louisiana,22039,2,0 +2020-03-26,Evangeline,Louisiana,22039,2,0 +2020-03-27,Evangeline,Louisiana,22039,4,0 +2020-03-28,Evangeline,Louisiana,22039,4,0 +2020-03-29,Evangeline,Louisiana,22039,4,0 +2020-03-30,Evangeline,Louisiana,22039,8,0 +2020-03-31,Evangeline,Louisiana,22039,10,0 +2020-04-01,Evangeline,Louisiana,22039,11,0 +2020-04-02,Evangeline,Louisiana,22039,16,0 +2020-04-03,Evangeline,Louisiana,22039,18,0 +2020-04-04,Evangeline,Louisiana,22039,19,0 +2020-04-05,Evangeline,Louisiana,22039,19,0 +2020-04-06,Evangeline,Louisiana,22039,23,0 +2020-04-07,Evangeline,Louisiana,22039,23,0 +2020-04-08,Evangeline,Louisiana,22039,25,0 +2020-04-09,Evangeline,Louisiana,22039,31,0 +2020-04-10,Evangeline,Louisiana,22039,35,0 +2020-04-11,Evangeline,Louisiana,22039,34,0 +2020-04-12,Evangeline,Louisiana,22039,36,0 +2020-04-13,Evangeline,Louisiana,22039,38,0 +2020-04-14,Evangeline,Louisiana,22039,39,0 +2020-04-15,Evangeline,Louisiana,22039,40,0 +2020-04-16,Evangeline,Louisiana,22039,41,0 +2020-04-17,Evangeline,Louisiana,22039,42,0 +2020-04-18,Evangeline,Louisiana,22039,43,0 +2020-04-19,Evangeline,Louisiana,22039,43,0 +2020-04-20,Evangeline,Louisiana,22039,43,0 +2020-04-21,Evangeline,Louisiana,22039,43,0 +2020-04-22,Evangeline,Louisiana,22039,44,0 +2020-04-23,Evangeline,Louisiana,22039,44,0 +2020-04-24,Evangeline,Louisiana,22039,44,0 +2020-04-25,Evangeline,Louisiana,22039,45,0 +2020-04-26,Evangeline,Louisiana,22039,45,0 +2020-04-27,Evangeline,Louisiana,22039,45,0 +2020-04-28,Evangeline,Louisiana,22039,46,0 +2020-04-29,Evangeline,Louisiana,22039,49,0 +2020-04-30,Evangeline,Louisiana,22039,49,1 +2020-05-01,Evangeline,Louisiana,22039,51,1 +2020-05-02,Evangeline,Louisiana,22039,59,1 +2020-05-03,Evangeline,Louisiana,22039,59,1 +2020-05-04,Evangeline,Louisiana,22039,60,1 +2020-05-05,Evangeline,Louisiana,22039,63,1 +2020-05-06,Evangeline,Louisiana,22039,63,1 +2020-05-07,Evangeline,Louisiana,22039,64,1 +2020-05-08,Evangeline,Louisiana,22039,67,1 +2020-05-09,Evangeline,Louisiana,22039,67,1 +2020-05-10,Evangeline,Louisiana,22039,67,1 +2020-05-11,Evangeline,Louisiana,22039,67,1 +2020-05-12,Evangeline,Louisiana,22039,68,1 +2020-05-13,Evangeline,Louisiana,22039,74,1 +2020-05-14,Evangeline,Louisiana,22039,74,1 +2020-05-15,Evangeline,Louisiana,22039,74,1 +2020-05-16,Evangeline,Louisiana,22039,66,1 +2020-05-17,Evangeline,Louisiana,22039,66,1 +2020-05-18,Evangeline,Louisiana,22039,66,1 +2020-05-19,Evangeline,Louisiana,22039,67,1 +2020-05-20,Evangeline,Louisiana,22039,67,1 +2020-05-21,Evangeline,Louisiana,22039,83,1 +2020-05-22,Evangeline,Louisiana,22039,87,1 +2020-05-23,Evangeline,Louisiana,22039,129,1 +2020-05-24,Evangeline,Louisiana,22039,165,1 +2020-05-25,Evangeline,Louisiana,22039,166,1 +2020-05-26,Evangeline,Louisiana,22039,166,1 +2020-05-27,Evangeline,Louisiana,22039,166,1 +2020-05-28,Evangeline,Louisiana,22039,75,1 +2020-05-29,Evangeline,Louisiana,22039,75,1 +2020-05-30,Evangeline,Louisiana,22039,78,1 +2020-05-31,Evangeline,Louisiana,22039,78,1 +2020-06-01,Evangeline,Louisiana,22039,78,1 +2020-06-02,Evangeline,Louisiana,22039,80,1 +2020-06-03,Evangeline,Louisiana,22039,81,1 +2020-06-04,Evangeline,Louisiana,22039,81,1 +2020-06-05,Evangeline,Louisiana,22039,81,1 +2020-06-06,Evangeline,Louisiana,22039,82,1 +2020-06-07,Evangeline,Louisiana,22039,84,1 +2020-06-08,Evangeline,Louisiana,22039,84,1 +2020-06-09,Evangeline,Louisiana,22039,85,1 +2020-06-10,Evangeline,Louisiana,22039,85,1 +2020-06-11,Evangeline,Louisiana,22039,85,1 +2020-06-12,Evangeline,Louisiana,22039,87,1 +2020-06-13,Evangeline,Louisiana,22039,89,1 +2020-06-14,Evangeline,Louisiana,22039,89,1 +2020-06-15,Evangeline,Louisiana,22039,91,1 +2020-06-16,Evangeline,Louisiana,22039,93,1 +2020-06-17,Evangeline,Louisiana,22039,100,1 +2020-06-18,Evangeline,Louisiana,22039,100,1 +2020-06-19,Evangeline,Louisiana,22039,120,1 +2020-06-20,Evangeline,Louisiana,22039,123,1 +2020-06-21,Evangeline,Louisiana,22039,123,1 +2020-06-22,Evangeline,Louisiana,22039,125,1 +2020-06-23,Evangeline,Louisiana,22039,139,1 +2020-06-24,Evangeline,Louisiana,22039,140,1 +2020-06-25,Evangeline,Louisiana,22039,146,1 +2020-06-26,Evangeline,Louisiana,22039,168,1 +2020-06-27,Evangeline,Louisiana,22039,168,1 +2020-06-28,Evangeline,Louisiana,22039,173,1 +2020-06-29,Evangeline,Louisiana,22039,177,1 +2020-06-30,Evangeline,Louisiana,22039,192,1 +2020-07-01,Evangeline,Louisiana,22039,201,1 +2020-07-02,Evangeline,Louisiana,22039,202,1 +2020-07-03,Evangeline,Louisiana,22039,216,1 +2020-07-04,Evangeline,Louisiana,22039,216,1 +2020-07-05,Evangeline,Louisiana,22039,228,1 +2020-07-06,Evangeline,Louisiana,22039,234,1 +2020-07-07,Evangeline,Louisiana,22039,247,1 +2020-07-08,Evangeline,Louisiana,22039,261,1 +2020-07-09,Evangeline,Louisiana,22039,282,1 +2020-03-28,Franklin,Louisiana,22041,4,0 +2020-03-29,Franklin,Louisiana,22041,4,0 +2020-03-30,Franklin,Louisiana,22041,5,0 +2020-03-31,Franklin,Louisiana,22041,5,0 +2020-04-01,Franklin,Louisiana,22041,5,0 +2020-04-02,Franklin,Louisiana,22041,5,0 +2020-04-03,Franklin,Louisiana,22041,10,0 +2020-04-04,Franklin,Louisiana,22041,19,0 +2020-04-05,Franklin,Louisiana,22041,25,0 +2020-04-06,Franklin,Louisiana,22041,28,0 +2020-04-07,Franklin,Louisiana,22041,28,0 +2020-04-08,Franklin,Louisiana,22041,30,0 +2020-04-09,Franklin,Louisiana,22041,37,0 +2020-04-10,Franklin,Louisiana,22041,40,1 +2020-04-11,Franklin,Louisiana,22041,47,1 +2020-04-12,Franklin,Louisiana,22041,48,1 +2020-04-13,Franklin,Louisiana,22041,49,1 +2020-04-14,Franklin,Louisiana,22041,49,2 +2020-04-15,Franklin,Louisiana,22041,53,2 +2020-04-16,Franklin,Louisiana,22041,58,2 +2020-04-17,Franklin,Louisiana,22041,67,2 +2020-04-18,Franklin,Louisiana,22041,78,2 +2020-04-19,Franklin,Louisiana,22041,81,2 +2020-04-20,Franklin,Louisiana,22041,83,2 +2020-04-21,Franklin,Louisiana,22041,87,2 +2020-04-22,Franklin,Louisiana,22041,95,2 +2020-04-23,Franklin,Louisiana,22041,108,2 +2020-04-24,Franklin,Louisiana,22041,108,2 +2020-04-25,Franklin,Louisiana,22041,113,2 +2020-04-26,Franklin,Louisiana,22041,116,2 +2020-04-27,Franklin,Louisiana,22041,119,2 +2020-04-28,Franklin,Louisiana,22041,121,3 +2020-04-29,Franklin,Louisiana,22041,123,3 +2020-04-30,Franklin,Louisiana,22041,125,3 +2020-05-01,Franklin,Louisiana,22041,130,3 +2020-05-02,Franklin,Louisiana,22041,131,3 +2020-05-03,Franklin,Louisiana,22041,131,3 +2020-05-04,Franklin,Louisiana,22041,139,3 +2020-05-05,Franklin,Louisiana,22041,140,3 +2020-05-06,Franklin,Louisiana,22041,146,4 +2020-05-07,Franklin,Louisiana,22041,145,4 +2020-05-08,Franklin,Louisiana,22041,146,4 +2020-05-09,Franklin,Louisiana,22041,188,4 +2020-05-10,Franklin,Louisiana,22041,206,4 +2020-05-11,Franklin,Louisiana,22041,208,4 +2020-05-12,Franklin,Louisiana,22041,208,6 +2020-05-13,Franklin,Louisiana,22041,256,7 +2020-05-14,Franklin,Louisiana,22041,266,8 +2020-05-15,Franklin,Louisiana,22041,266,8 +2020-05-16,Franklin,Louisiana,22041,268,8 +2020-05-17,Franklin,Louisiana,22041,273,8 +2020-05-18,Franklin,Louisiana,22041,273,8 +2020-05-19,Franklin,Louisiana,22041,274,9 +2020-05-20,Franklin,Louisiana,22041,274,9 +2020-05-21,Franklin,Louisiana,22041,287,9 +2020-05-22,Franklin,Louisiana,22041,287,10 +2020-05-23,Franklin,Louisiana,22041,287,10 +2020-05-24,Franklin,Louisiana,22041,288,10 +2020-05-25,Franklin,Louisiana,22041,294,10 +2020-05-26,Franklin,Louisiana,22041,297,10 +2020-05-27,Franklin,Louisiana,22041,310,10 +2020-05-28,Franklin,Louisiana,22041,311,10 +2020-05-29,Franklin,Louisiana,22041,311,10 +2020-05-30,Franklin,Louisiana,22041,314,10 +2020-05-31,Franklin,Louisiana,22041,332,10 +2020-06-01,Franklin,Louisiana,22041,376,10 +2020-06-02,Franklin,Louisiana,22041,377,10 +2020-06-03,Franklin,Louisiana,22041,377,12 +2020-06-04,Franklin,Louisiana,22041,378,12 +2020-06-05,Franklin,Louisiana,22041,383,12 +2020-06-06,Franklin,Louisiana,22041,384,12 +2020-06-07,Franklin,Louisiana,22041,386,12 +2020-06-08,Franklin,Louisiana,22041,389,12 +2020-06-09,Franklin,Louisiana,22041,390,12 +2020-06-10,Franklin,Louisiana,22041,391,12 +2020-06-11,Franklin,Louisiana,22041,395,13 +2020-06-12,Franklin,Louisiana,22041,395,13 +2020-06-13,Franklin,Louisiana,22041,415,13 +2020-06-14,Franklin,Louisiana,22041,415,13 +2020-06-15,Franklin,Louisiana,22041,424,13 +2020-06-16,Franklin,Louisiana,22041,425,14 +2020-06-17,Franklin,Louisiana,22041,439,14 +2020-06-18,Franklin,Louisiana,22041,439,14 +2020-06-19,Franklin,Louisiana,22041,412,14 +2020-06-20,Franklin,Louisiana,22041,414,14 +2020-06-21,Franklin,Louisiana,22041,416,14 +2020-06-22,Franklin,Louisiana,22041,421,14 +2020-06-23,Franklin,Louisiana,22041,443,14 +2020-06-24,Franklin,Louisiana,22041,447,14 +2020-06-25,Franklin,Louisiana,22041,448,14 +2020-06-26,Franklin,Louisiana,22041,455,14 +2020-06-27,Franklin,Louisiana,22041,455,14 +2020-06-28,Franklin,Louisiana,22041,464,14 +2020-06-29,Franklin,Louisiana,22041,468,14 +2020-06-30,Franklin,Louisiana,22041,467,14 +2020-07-01,Franklin,Louisiana,22041,471,14 +2020-07-02,Franklin,Louisiana,22041,475,14 +2020-07-03,Franklin,Louisiana,22041,483,14 +2020-07-04,Franklin,Louisiana,22041,483,14 +2020-07-05,Franklin,Louisiana,22041,501,14 +2020-07-06,Franklin,Louisiana,22041,501,14 +2020-07-07,Franklin,Louisiana,22041,502,14 +2020-07-08,Franklin,Louisiana,22041,508,14 +2020-07-09,Franklin,Louisiana,22041,527,14 +2020-03-23,Grant,Louisiana,22043,1,0 +2020-03-24,Grant,Louisiana,22043,1,0 +2020-03-25,Grant,Louisiana,22043,1,0 +2020-03-26,Grant,Louisiana,22043,1,0 +2020-03-27,Grant,Louisiana,22043,1,0 +2020-03-28,Grant,Louisiana,22043,1,0 +2020-03-29,Grant,Louisiana,22043,2,0 +2020-03-30,Grant,Louisiana,22043,2,0 +2020-03-31,Grant,Louisiana,22043,2,0 +2020-04-01,Grant,Louisiana,22043,3,0 +2020-04-02,Grant,Louisiana,22043,5,0 +2020-04-03,Grant,Louisiana,22043,5,0 +2020-04-04,Grant,Louisiana,22043,9,0 +2020-04-05,Grant,Louisiana,22043,8,0 +2020-04-06,Grant,Louisiana,22043,10,0 +2020-04-07,Grant,Louisiana,22043,10,0 +2020-04-08,Grant,Louisiana,22043,10,0 +2020-04-09,Grant,Louisiana,22043,10,0 +2020-04-10,Grant,Louisiana,22043,11,0 +2020-04-11,Grant,Louisiana,22043,11,0 +2020-04-12,Grant,Louisiana,22043,11,0 +2020-04-13,Grant,Louisiana,22043,12,0 +2020-04-14,Grant,Louisiana,22043,12,0 +2020-04-15,Grant,Louisiana,22043,12,0 +2020-04-16,Grant,Louisiana,22043,12,0 +2020-04-17,Grant,Louisiana,22043,12,0 +2020-04-18,Grant,Louisiana,22043,12,0 +2020-04-19,Grant,Louisiana,22043,12,0 +2020-04-20,Grant,Louisiana,22043,12,0 +2020-04-21,Grant,Louisiana,22043,12,0 +2020-04-22,Grant,Louisiana,22043,12,0 +2020-04-23,Grant,Louisiana,22043,11,0 +2020-04-24,Grant,Louisiana,22043,11,0 +2020-04-25,Grant,Louisiana,22043,11,0 +2020-04-26,Grant,Louisiana,22043,11,0 +2020-04-27,Grant,Louisiana,22043,12,0 +2020-04-28,Grant,Louisiana,22043,12,0 +2020-04-29,Grant,Louisiana,22043,12,0 +2020-04-30,Grant,Louisiana,22043,13,0 +2020-05-01,Grant,Louisiana,22043,14,0 +2020-05-02,Grant,Louisiana,22043,15,0 +2020-05-03,Grant,Louisiana,22043,15,0 +2020-05-04,Grant,Louisiana,22043,17,0 +2020-05-05,Grant,Louisiana,22043,17,0 +2020-05-06,Grant,Louisiana,22043,17,0 +2020-05-07,Grant,Louisiana,22043,17,0 +2020-05-08,Grant,Louisiana,22043,17,0 +2020-05-09,Grant,Louisiana,22043,18,0 +2020-05-10,Grant,Louisiana,22043,18,0 +2020-05-11,Grant,Louisiana,22043,18,0 +2020-05-12,Grant,Louisiana,22043,18,1 +2020-05-13,Grant,Louisiana,22043,18,1 +2020-05-14,Grant,Louisiana,22043,18,1 +2020-05-15,Grant,Louisiana,22043,20,1 +2020-05-16,Grant,Louisiana,22043,20,1 +2020-05-17,Grant,Louisiana,22043,21,1 +2020-05-18,Grant,Louisiana,22043,22,1 +2020-05-19,Grant,Louisiana,22043,22,1 +2020-05-20,Grant,Louisiana,22043,22,1 +2020-05-21,Grant,Louisiana,22043,26,1 +2020-05-22,Grant,Louisiana,22043,26,1 +2020-05-23,Grant,Louisiana,22043,26,1 +2020-05-24,Grant,Louisiana,22043,26,1 +2020-05-25,Grant,Louisiana,22043,27,1 +2020-05-26,Grant,Louisiana,22043,27,1 +2020-05-27,Grant,Louisiana,22043,28,1 +2020-05-28,Grant,Louisiana,22043,28,1 +2020-05-29,Grant,Louisiana,22043,28,1 +2020-05-30,Grant,Louisiana,22043,28,1 +2020-05-31,Grant,Louisiana,22043,28,1 +2020-06-01,Grant,Louisiana,22043,29,1 +2020-06-02,Grant,Louisiana,22043,30,1 +2020-06-03,Grant,Louisiana,22043,30,1 +2020-06-04,Grant,Louisiana,22043,33,1 +2020-06-05,Grant,Louisiana,22043,34,1 +2020-06-06,Grant,Louisiana,22043,36,1 +2020-06-07,Grant,Louisiana,22043,44,1 +2020-06-08,Grant,Louisiana,22043,46,1 +2020-06-09,Grant,Louisiana,22043,48,1 +2020-06-10,Grant,Louisiana,22043,51,1 +2020-06-11,Grant,Louisiana,22043,51,1 +2020-06-12,Grant,Louisiana,22043,54,1 +2020-06-13,Grant,Louisiana,22043,58,1 +2020-06-14,Grant,Louisiana,22043,59,1 +2020-06-15,Grant,Louisiana,22043,61,1 +2020-06-16,Grant,Louisiana,22043,61,1 +2020-06-17,Grant,Louisiana,22043,61,1 +2020-06-18,Grant,Louisiana,22043,61,1 +2020-06-19,Grant,Louisiana,22043,76,1 +2020-06-20,Grant,Louisiana,22043,76,1 +2020-06-21,Grant,Louisiana,22043,76,1 +2020-06-22,Grant,Louisiana,22043,76,1 +2020-06-23,Grant,Louisiana,22043,78,1 +2020-06-24,Grant,Louisiana,22043,81,1 +2020-06-25,Grant,Louisiana,22043,81,1 +2020-06-26,Grant,Louisiana,22043,82,1 +2020-06-27,Grant,Louisiana,22043,82,1 +2020-06-28,Grant,Louisiana,22043,82,1 +2020-06-29,Grant,Louisiana,22043,83,1 +2020-06-30,Grant,Louisiana,22043,84,1 +2020-07-01,Grant,Louisiana,22043,86,1 +2020-07-02,Grant,Louisiana,22043,90,1 +2020-07-03,Grant,Louisiana,22043,93,1 +2020-07-04,Grant,Louisiana,22043,93,1 +2020-07-05,Grant,Louisiana,22043,94,1 +2020-07-06,Grant,Louisiana,22043,94,1 +2020-07-07,Grant,Louisiana,22043,103,2 +2020-07-08,Grant,Louisiana,22043,104,2 +2020-07-09,Grant,Louisiana,22043,115,2 +2020-03-19,Iberia,Louisiana,22045,1,0 +2020-03-20,Iberia,Louisiana,22045,2,0 +2020-03-21,Iberia,Louisiana,22045,3,0 +2020-03-22,Iberia,Louisiana,22045,3,0 +2020-03-23,Iberia,Louisiana,22045,4,0 +2020-03-24,Iberia,Louisiana,22045,4,0 +2020-03-25,Iberia,Louisiana,22045,4,0 +2020-03-26,Iberia,Louisiana,22045,4,0 +2020-03-27,Iberia,Louisiana,22045,4,0 +2020-03-28,Iberia,Louisiana,22045,9,0 +2020-03-29,Iberia,Louisiana,22045,11,0 +2020-03-30,Iberia,Louisiana,22045,18,0 +2020-03-31,Iberia,Louisiana,22045,36,0 +2020-04-01,Iberia,Louisiana,22045,49,1 +2020-04-02,Iberia,Louisiana,22045,67,1 +2020-04-03,Iberia,Louisiana,22045,78,3 +2020-04-04,Iberia,Louisiana,22045,68,3 +2020-04-05,Iberia,Louisiana,22045,69,3 +2020-04-06,Iberia,Louisiana,22045,83,5 +2020-04-07,Iberia,Louisiana,22045,89,5 +2020-04-08,Iberia,Louisiana,22045,97,4 +2020-04-09,Iberia,Louisiana,22045,108,5 +2020-04-10,Iberia,Louisiana,22045,121,5 +2020-04-11,Iberia,Louisiana,22045,128,5 +2020-04-12,Iberia,Louisiana,22045,136,5 +2020-04-13,Iberia,Louisiana,22045,142,5 +2020-04-14,Iberia,Louisiana,22045,148,5 +2020-04-15,Iberia,Louisiana,22045,159,7 +2020-04-16,Iberia,Louisiana,22045,164,6 +2020-04-17,Iberia,Louisiana,22045,175,8 +2020-04-18,Iberia,Louisiana,22045,176,8 +2020-04-19,Iberia,Louisiana,22045,184,8 +2020-04-20,Iberia,Louisiana,22045,194,9 +2020-04-21,Iberia,Louisiana,22045,195,10 +2020-04-22,Iberia,Louisiana,22045,217,11 +2020-04-23,Iberia,Louisiana,22045,228,12 +2020-04-24,Iberia,Louisiana,22045,231,13 +2020-04-25,Iberia,Louisiana,22045,240,15 +2020-04-26,Iberia,Louisiana,22045,243,16 +2020-04-27,Iberia,Louisiana,22045,245,17 +2020-04-28,Iberia,Louisiana,22045,247,18 +2020-04-29,Iberia,Louisiana,22045,248,19 +2020-04-30,Iberia,Louisiana,22045,257,21 +2020-05-01,Iberia,Louisiana,22045,261,21 +2020-05-02,Iberia,Louisiana,22045,265,22 +2020-05-03,Iberia,Louisiana,22045,267,23 +2020-05-04,Iberia,Louisiana,22045,270,23 +2020-05-05,Iberia,Louisiana,22045,274,23 +2020-05-06,Iberia,Louisiana,22045,278,24 +2020-05-07,Iberia,Louisiana,22045,281,26 +2020-05-08,Iberia,Louisiana,22045,283,26 +2020-05-09,Iberia,Louisiana,22045,285,26 +2020-05-10,Iberia,Louisiana,22045,285,26 +2020-05-11,Iberia,Louisiana,22045,286,26 +2020-05-12,Iberia,Louisiana,22045,287,26 +2020-05-13,Iberia,Louisiana,22045,352,26 +2020-05-14,Iberia,Louisiana,22045,352,33 +2020-05-15,Iberia,Louisiana,22045,352,31 +2020-05-16,Iberia,Louisiana,22045,353,32 +2020-05-17,Iberia,Louisiana,22045,353,32 +2020-05-18,Iberia,Louisiana,22045,355,33 +2020-05-19,Iberia,Louisiana,22045,358,35 +2020-05-20,Iberia,Louisiana,22045,359,35 +2020-05-21,Iberia,Louisiana,22045,384,35 +2020-05-22,Iberia,Louisiana,22045,388,36 +2020-05-23,Iberia,Louisiana,22045,388,36 +2020-05-24,Iberia,Louisiana,22045,388,36 +2020-05-25,Iberia,Louisiana,22045,392,36 +2020-05-26,Iberia,Louisiana,22045,393,37 +2020-05-27,Iberia,Louisiana,22045,403,37 +2020-05-28,Iberia,Louisiana,22045,404,37 +2020-05-29,Iberia,Louisiana,22045,404,37 +2020-05-30,Iberia,Louisiana,22045,407,37 +2020-05-31,Iberia,Louisiana,22045,408,38 +2020-06-01,Iberia,Louisiana,22045,410,38 +2020-06-02,Iberia,Louisiana,22045,411,38 +2020-06-03,Iberia,Louisiana,22045,418,38 +2020-06-04,Iberia,Louisiana,22045,419,38 +2020-06-05,Iberia,Louisiana,22045,422,39 +2020-06-06,Iberia,Louisiana,22045,424,40 +2020-06-07,Iberia,Louisiana,22045,424,41 +2020-06-08,Iberia,Louisiana,22045,427,41 +2020-06-09,Iberia,Louisiana,22045,428,41 +2020-06-10,Iberia,Louisiana,22045,428,41 +2020-06-11,Iberia,Louisiana,22045,430,41 +2020-06-12,Iberia,Louisiana,22045,435,42 +2020-06-13,Iberia,Louisiana,22045,459,42 +2020-06-14,Iberia,Louisiana,22045,461,42 +2020-06-15,Iberia,Louisiana,22045,465,42 +2020-06-16,Iberia,Louisiana,22045,476,42 +2020-06-17,Iberia,Louisiana,22045,501,42 +2020-06-18,Iberia,Louisiana,22045,501,42 +2020-06-19,Iberia,Louisiana,22045,459,42 +2020-06-20,Iberia,Louisiana,22045,465,42 +2020-06-21,Iberia,Louisiana,22045,469,42 +2020-06-22,Iberia,Louisiana,22045,482,42 +2020-06-23,Iberia,Louisiana,22045,531,42 +2020-06-24,Iberia,Louisiana,22045,535,42 +2020-06-25,Iberia,Louisiana,22045,570,43 +2020-06-26,Iberia,Louisiana,22045,610,44 +2020-06-27,Iberia,Louisiana,22045,610,44 +2020-06-28,Iberia,Louisiana,22045,636,44 +2020-06-29,Iberia,Louisiana,22045,673,44 +2020-06-30,Iberia,Louisiana,22045,697,44 +2020-07-01,Iberia,Louisiana,22045,748,44 +2020-07-02,Iberia,Louisiana,22045,792,44 +2020-07-03,Iberia,Louisiana,22045,844,44 +2020-07-04,Iberia,Louisiana,22045,844,44 +2020-07-05,Iberia,Louisiana,22045,902,44 +2020-07-06,Iberia,Louisiana,22045,978,45 +2020-07-07,Iberia,Louisiana,22045,995,47 +2020-07-08,Iberia,Louisiana,22045,1050,47 +2020-07-09,Iberia,Louisiana,22045,1157,48 +2020-03-19,Iberville,Louisiana,22047,1,0 +2020-03-20,Iberville,Louisiana,22047,1,0 +2020-03-21,Iberville,Louisiana,22047,1,0 +2020-03-22,Iberville,Louisiana,22047,1,0 +2020-03-23,Iberville,Louisiana,22047,8,0 +2020-03-24,Iberville,Louisiana,22047,14,1 +2020-03-25,Iberville,Louisiana,22047,14,1 +2020-03-26,Iberville,Louisiana,22047,17,1 +2020-03-27,Iberville,Louisiana,22047,20,1 +2020-03-28,Iberville,Louisiana,22047,21,1 +2020-03-29,Iberville,Louisiana,22047,22,1 +2020-03-30,Iberville,Louisiana,22047,28,2 +2020-03-31,Iberville,Louisiana,22047,35,3 +2020-04-01,Iberville,Louisiana,22047,36,3 +2020-04-02,Iberville,Louisiana,22047,69,4 +2020-04-03,Iberville,Louisiana,22047,81,5 +2020-04-04,Iberville,Louisiana,22047,119,5 +2020-04-05,Iberville,Louisiana,22047,122,5 +2020-04-06,Iberville,Louisiana,22047,136,6 +2020-04-07,Iberville,Louisiana,22047,160,8 +2020-04-08,Iberville,Louisiana,22047,171,9 +2020-04-09,Iberville,Louisiana,22047,187,9 +2020-04-10,Iberville,Louisiana,22047,198,10 +2020-04-11,Iberville,Louisiana,22047,214,12 +2020-04-12,Iberville,Louisiana,22047,232,14 +2020-04-13,Iberville,Louisiana,22047,241,16 +2020-04-14,Iberville,Louisiana,22047,253,17 +2020-04-15,Iberville,Louisiana,22047,256,17 +2020-04-16,Iberville,Louisiana,22047,258,18 +2020-04-17,Iberville,Louisiana,22047,267,19 +2020-04-18,Iberville,Louisiana,22047,270,21 +2020-04-19,Iberville,Louisiana,22047,274,21 +2020-04-20,Iberville,Louisiana,22047,282,21 +2020-04-21,Iberville,Louisiana,22047,281,21 +2020-04-22,Iberville,Louisiana,22047,297,22 +2020-04-23,Iberville,Louisiana,22047,299,23 +2020-04-24,Iberville,Louisiana,22047,339,25 +2020-04-25,Iberville,Louisiana,22047,433,26 +2020-04-26,Iberville,Louisiana,22047,433,26 +2020-04-27,Iberville,Louisiana,22047,442,26 +2020-04-28,Iberville,Louisiana,22047,443,27 +2020-04-29,Iberville,Louisiana,22047,448,29 +2020-04-30,Iberville,Louisiana,22047,450,30 +2020-05-01,Iberville,Louisiana,22047,459,30 +2020-05-02,Iberville,Louisiana,22047,472,32 +2020-05-03,Iberville,Louisiana,22047,476,32 +2020-05-04,Iberville,Louisiana,22047,482,32 +2020-05-05,Iberville,Louisiana,22047,484,32 +2020-05-06,Iberville,Louisiana,22047,489,32 +2020-05-07,Iberville,Louisiana,22047,492,33 +2020-05-08,Iberville,Louisiana,22047,493,35 +2020-05-09,Iberville,Louisiana,22047,495,36 +2020-05-10,Iberville,Louisiana,22047,499,36 +2020-05-11,Iberville,Louisiana,22047,501,36 +2020-05-12,Iberville,Louisiana,22047,504,37 +2020-05-13,Iberville,Louisiana,22047,507,38 +2020-05-14,Iberville,Louisiana,22047,537,38 +2020-05-15,Iberville,Louisiana,22047,543,38 +2020-05-16,Iberville,Louisiana,22047,524,38 +2020-05-17,Iberville,Louisiana,22047,526,38 +2020-05-18,Iberville,Louisiana,22047,527,38 +2020-05-19,Iberville,Louisiana,22047,528,38 +2020-05-20,Iberville,Louisiana,22047,531,38 +2020-05-21,Iberville,Louisiana,22047,540,39 +2020-05-22,Iberville,Louisiana,22047,541,40 +2020-05-23,Iberville,Louisiana,22047,543,40 +2020-05-24,Iberville,Louisiana,22047,546,40 +2020-05-25,Iberville,Louisiana,22047,554,40 +2020-05-26,Iberville,Louisiana,22047,556,40 +2020-05-27,Iberville,Louisiana,22047,559,40 +2020-05-28,Iberville,Louisiana,22047,563,41 +2020-05-29,Iberville,Louisiana,22047,563,41 +2020-05-30,Iberville,Louisiana,22047,564,41 +2020-05-31,Iberville,Louisiana,22047,567,41 +2020-06-01,Iberville,Louisiana,22047,577,41 +2020-06-02,Iberville,Louisiana,22047,578,41 +2020-06-03,Iberville,Louisiana,22047,579,42 +2020-06-04,Iberville,Louisiana,22047,584,42 +2020-06-05,Iberville,Louisiana,22047,588,42 +2020-06-06,Iberville,Louisiana,22047,593,42 +2020-06-07,Iberville,Louisiana,22047,596,42 +2020-06-08,Iberville,Louisiana,22047,599,42 +2020-06-09,Iberville,Louisiana,22047,603,43 +2020-06-10,Iberville,Louisiana,22047,607,43 +2020-06-11,Iberville,Louisiana,22047,607,43 +2020-06-12,Iberville,Louisiana,22047,610,43 +2020-06-13,Iberville,Louisiana,22047,610,43 +2020-06-14,Iberville,Louisiana,22047,610,43 +2020-06-15,Iberville,Louisiana,22047,615,43 +2020-06-16,Iberville,Louisiana,22047,617,43 +2020-06-17,Iberville,Louisiana,22047,618,43 +2020-06-18,Iberville,Louisiana,22047,618,43 +2020-06-19,Iberville,Louisiana,22047,662,43 +2020-06-20,Iberville,Louisiana,22047,664,43 +2020-06-21,Iberville,Louisiana,22047,665,43 +2020-06-22,Iberville,Louisiana,22047,666,43 +2020-06-23,Iberville,Louisiana,22047,674,43 +2020-06-24,Iberville,Louisiana,22047,677,43 +2020-06-25,Iberville,Louisiana,22047,689,43 +2020-06-26,Iberville,Louisiana,22047,692,43 +2020-06-27,Iberville,Louisiana,22047,692,43 +2020-06-28,Iberville,Louisiana,22047,699,43 +2020-06-29,Iberville,Louisiana,22047,702,43 +2020-06-30,Iberville,Louisiana,22047,711,43 +2020-07-01,Iberville,Louisiana,22047,719,43 +2020-07-02,Iberville,Louisiana,22047,732,43 +2020-07-03,Iberville,Louisiana,22047,740,43 +2020-07-04,Iberville,Louisiana,22047,740,43 +2020-07-05,Iberville,Louisiana,22047,752,43 +2020-07-06,Iberville,Louisiana,22047,754,43 +2020-07-07,Iberville,Louisiana,22047,759,43 +2020-07-08,Iberville,Louisiana,22047,779,43 +2020-07-09,Iberville,Louisiana,22047,786,43 +2020-03-25,Jackson,Louisiana,22049,1,0 +2020-03-26,Jackson,Louisiana,22049,1,0 +2020-03-27,Jackson,Louisiana,22049,3,0 +2020-03-28,Jackson,Louisiana,22049,2,0 +2020-03-29,Jackson,Louisiana,22049,2,0 +2020-03-30,Jackson,Louisiana,22049,2,0 +2020-03-31,Jackson,Louisiana,22049,3,0 +2020-04-01,Jackson,Louisiana,22049,4,0 +2020-04-02,Jackson,Louisiana,22049,4,0 +2020-04-03,Jackson,Louisiana,22049,4,0 +2020-04-04,Jackson,Louisiana,22049,1,0 +2020-04-05,Jackson,Louisiana,22049,1,0 +2020-04-06,Jackson,Louisiana,22049,4,0 +2020-04-07,Jackson,Louisiana,22049,5,0 +2020-04-08,Jackson,Louisiana,22049,5,0 +2020-04-09,Jackson,Louisiana,22049,7,0 +2020-04-10,Jackson,Louisiana,22049,8,0 +2020-04-11,Jackson,Louisiana,22049,8,0 +2020-04-12,Jackson,Louisiana,22049,8,0 +2020-04-13,Jackson,Louisiana,22049,8,0 +2020-04-14,Jackson,Louisiana,22049,9,0 +2020-04-15,Jackson,Louisiana,22049,11,0 +2020-04-16,Jackson,Louisiana,22049,12,0 +2020-04-17,Jackson,Louisiana,22049,14,0 +2020-04-18,Jackson,Louisiana,22049,14,0 +2020-04-19,Jackson,Louisiana,22049,14,0 +2020-04-20,Jackson,Louisiana,22049,15,0 +2020-04-21,Jackson,Louisiana,22049,15,0 +2020-04-22,Jackson,Louisiana,22049,16,0 +2020-04-23,Jackson,Louisiana,22049,21,0 +2020-04-24,Jackson,Louisiana,22049,22,0 +2020-04-25,Jackson,Louisiana,22049,25,0 +2020-04-26,Jackson,Louisiana,22049,25,0 +2020-04-27,Jackson,Louisiana,22049,30,0 +2020-04-28,Jackson,Louisiana,22049,30,1 +2020-04-29,Jackson,Louisiana,22049,34,1 +2020-04-30,Jackson,Louisiana,22049,34,2 +2020-05-01,Jackson,Louisiana,22049,40,2 +2020-05-02,Jackson,Louisiana,22049,40,3 +2020-05-03,Jackson,Louisiana,22049,42,3 +2020-05-04,Jackson,Louisiana,22049,47,3 +2020-05-05,Jackson,Louisiana,22049,48,3 +2020-05-06,Jackson,Louisiana,22049,56,4 +2020-05-07,Jackson,Louisiana,22049,57,4 +2020-05-08,Jackson,Louisiana,22049,58,4 +2020-05-09,Jackson,Louisiana,22049,59,4 +2020-05-10,Jackson,Louisiana,22049,64,4 +2020-05-11,Jackson,Louisiana,22049,67,5 +2020-05-12,Jackson,Louisiana,22049,67,6 +2020-05-13,Jackson,Louisiana,22049,67,8 +2020-05-14,Jackson,Louisiana,22049,70,8 +2020-05-15,Jackson,Louisiana,22049,69,8 +2020-05-16,Jackson,Louisiana,22049,68,9 +2020-05-17,Jackson,Louisiana,22049,69,9 +2020-05-18,Jackson,Louisiana,22049,70,10 +2020-05-19,Jackson,Louisiana,22049,75,10 +2020-05-20,Jackson,Louisiana,22049,76,10 +2020-05-21,Jackson,Louisiana,22049,80,10 +2020-05-22,Jackson,Louisiana,22049,82,11 +2020-05-23,Jackson,Louisiana,22049,82,11 +2020-05-24,Jackson,Louisiana,22049,83,11 +2020-05-25,Jackson,Louisiana,22049,90,11 +2020-05-26,Jackson,Louisiana,22049,96,11 +2020-05-27,Jackson,Louisiana,22049,100,11 +2020-05-28,Jackson,Louisiana,22049,100,12 +2020-05-29,Jackson,Louisiana,22049,100,13 +2020-05-30,Jackson,Louisiana,22049,106,13 +2020-05-31,Jackson,Louisiana,22049,106,13 +2020-06-01,Jackson,Louisiana,22049,106,13 +2020-06-02,Jackson,Louisiana,22049,109,15 +2020-06-03,Jackson,Louisiana,22049,110,15 +2020-06-04,Jackson,Louisiana,22049,117,15 +2020-06-05,Jackson,Louisiana,22049,120,15 +2020-06-06,Jackson,Louisiana,22049,130,15 +2020-06-07,Jackson,Louisiana,22049,131,15 +2020-06-08,Jackson,Louisiana,22049,133,15 +2020-06-09,Jackson,Louisiana,22049,139,15 +2020-06-10,Jackson,Louisiana,22049,148,15 +2020-06-11,Jackson,Louisiana,22049,149,15 +2020-06-12,Jackson,Louisiana,22049,154,15 +2020-06-13,Jackson,Louisiana,22049,158,15 +2020-06-14,Jackson,Louisiana,22049,158,15 +2020-06-15,Jackson,Louisiana,22049,162,15 +2020-06-16,Jackson,Louisiana,22049,169,15 +2020-06-17,Jackson,Louisiana,22049,173,15 +2020-06-18,Jackson,Louisiana,22049,173,15 +2020-06-19,Jackson,Louisiana,22049,186,15 +2020-06-20,Jackson,Louisiana,22049,189,15 +2020-06-21,Jackson,Louisiana,22049,189,15 +2020-06-22,Jackson,Louisiana,22049,191,16 +2020-06-23,Jackson,Louisiana,22049,194,16 +2020-06-24,Jackson,Louisiana,22049,202,16 +2020-06-25,Jackson,Louisiana,22049,203,16 +2020-06-26,Jackson,Louisiana,22049,206,16 +2020-06-27,Jackson,Louisiana,22049,206,16 +2020-06-28,Jackson,Louisiana,22049,209,16 +2020-06-29,Jackson,Louisiana,22049,212,16 +2020-06-30,Jackson,Louisiana,22049,211,16 +2020-07-01,Jackson,Louisiana,22049,213,16 +2020-07-02,Jackson,Louisiana,22049,216,16 +2020-07-03,Jackson,Louisiana,22049,219,16 +2020-07-04,Jackson,Louisiana,22049,219,16 +2020-07-05,Jackson,Louisiana,22049,221,16 +2020-07-06,Jackson,Louisiana,22049,221,16 +2020-07-07,Jackson,Louisiana,22049,220,16 +2020-07-08,Jackson,Louisiana,22049,221,16 +2020-07-09,Jackson,Louisiana,22049,221,16 +2020-03-09,Jefferson,Louisiana,22051,1,0 +2020-03-10,Jefferson,Louisiana,22051,1,0 +2020-03-11,Jefferson,Louisiana,22051,1,0 +2020-03-12,Jefferson,Louisiana,22051,1,0 +2020-03-13,Jefferson,Louisiana,22051,3,0 +2020-03-14,Jefferson,Louisiana,22051,11,0 +2020-03-15,Jefferson,Louisiana,22051,14,0 +2020-03-16,Jefferson,Louisiana,22051,21,0 +2020-03-17,Jefferson,Louisiana,22051,35,0 +2020-03-18,Jefferson,Louisiana,22051,45,1 +2020-03-19,Jefferson,Louisiana,22051,69,1 +2020-03-20,Jefferson,Louisiana,22051,104,1 +2020-03-21,Jefferson,Louisiana,22051,166,2 +2020-03-22,Jefferson,Louisiana,22051,184,3 +2020-03-23,Jefferson,Louisiana,22051,252,5 +2020-03-24,Jefferson,Louisiana,22051,293,6 +2020-03-25,Jefferson,Louisiana,22051,359,7 +2020-03-26,Jefferson,Louisiana,22051,458,12 +2020-03-27,Jefferson,Louisiana,22051,548,24 +2020-03-28,Jefferson,Louisiana,22051,744,26 +2020-03-29,Jefferson,Louisiana,22051,761,28 +2020-03-30,Jefferson,Louisiana,22051,838,37 +2020-03-31,Jefferson,Louisiana,22051,1193,57 +2020-04-01,Jefferson,Louisiana,22051,1433,64 +2020-04-02,Jefferson,Louisiana,22051,2178,73 +2020-04-03,Jefferson,Louisiana,22051,2495,85 +2020-04-04,Jefferson,Louisiana,22051,3008,95 +2020-04-05,Jefferson,Louisiana,22051,3088,113 +2020-04-06,Jefferson,Louisiana,22051,3530,121 +2020-04-07,Jefferson,Louisiana,22051,3922,137 +2020-04-08,Jefferson,Louisiana,22051,4092,149 +2020-04-09,Jefferson,Louisiana,22051,4480,158 +2020-04-10,Jefferson,Louisiana,22051,4678,165 +2020-04-11,Jefferson,Louisiana,22051,4877,170 +2020-04-12,Jefferson,Louisiana,22051,4990,173 +2020-04-13,Jefferson,Louisiana,22051,5088,186 +2020-04-14,Jefferson,Louisiana,22051,5188,210 +2020-04-15,Jefferson,Louisiana,22051,5265,247 +2020-04-16,Jefferson,Louisiana,22051,5346,261 +2020-04-17,Jefferson,Louisiana,22051,5476,269 +2020-04-18,Jefferson,Louisiana,22051,5543,275 +2020-04-19,Jefferson,Louisiana,22051,5592,282 +2020-04-20,Jefferson,Louisiana,22051,5761,286 +2020-04-21,Jefferson,Louisiana,22051,5802,288 +2020-04-22,Jefferson,Louisiana,22051,5860,297 +2020-04-23,Jefferson,Louisiana,22051,5929,306 +2020-04-24,Jefferson,Louisiana,22051,5985,323 +2020-04-25,Jefferson,Louisiana,22051,6007,325 +2020-04-26,Jefferson,Louisiana,22051,6059,329 +2020-04-27,Jefferson,Louisiana,22051,6104,331 +2020-04-28,Jefferson,Louisiana,22051,6135,340 +2020-04-29,Jefferson,Louisiana,22051,6173,340 +2020-04-30,Jefferson,Louisiana,22051,6197,346 +2020-05-01,Jefferson,Louisiana,22051,6305,368 +2020-05-02,Jefferson,Louisiana,22051,6362,369 +2020-05-03,Jefferson,Louisiana,22051,6388,371 +2020-05-04,Jefferson,Louisiana,22051,6426,377 +2020-05-05,Jefferson,Louisiana,22051,6491,381 +2020-05-06,Jefferson,Louisiana,22051,6554,387 +2020-05-07,Jefferson,Louisiana,22051,6588,391 +2020-05-08,Jefferson,Louisiana,22051,6610,392 +2020-05-09,Jefferson,Louisiana,22051,6679,396 +2020-05-10,Jefferson,Louisiana,22051,6709,397 +2020-05-11,Jefferson,Louisiana,22051,6755,402 +2020-05-12,Jefferson,Louisiana,22051,6789,405 +2020-05-13,Jefferson,Louisiana,22051,6833,408 +2020-05-14,Jefferson,Louisiana,22051,6860,423 +2020-05-15,Jefferson,Louisiana,22051,6897,424 +2020-05-16,Jefferson,Louisiana,22051,6982,427 +2020-05-17,Jefferson,Louisiana,22051,7039,430 +2020-05-18,Jefferson,Louisiana,22051,7059,430 +2020-05-19,Jefferson,Louisiana,22051,7095,429 +2020-05-20,Jefferson,Louisiana,22051,7128,431 +2020-05-21,Jefferson,Louisiana,22051,7175,432 +2020-05-22,Jefferson,Louisiana,22051,7232,432 +2020-05-23,Jefferson,Louisiana,22051,7233,432 +2020-05-24,Jefferson,Louisiana,22051,7248,432 +2020-05-25,Jefferson,Louisiana,22051,7298,432 +2020-05-26,Jefferson,Louisiana,22051,7332,438 +2020-05-27,Jefferson,Louisiana,22051,7394,438 +2020-05-28,Jefferson,Louisiana,22051,7424,441 +2020-05-29,Jefferson,Louisiana,22051,7424,446 +2020-05-30,Jefferson,Louisiana,22051,7536,447 +2020-05-31,Jefferson,Louisiana,22051,7584,450 +2020-06-01,Jefferson,Louisiana,22051,7652,451 +2020-06-02,Jefferson,Louisiana,22051,7711,453 +2020-06-03,Jefferson,Louisiana,22051,7738,454 +2020-06-04,Jefferson,Louisiana,22051,7763,455 +2020-06-05,Jefferson,Louisiana,22051,7803,457 +2020-06-06,Jefferson,Louisiana,22051,7831,458 +2020-06-07,Jefferson,Louisiana,22051,7862,459 +2020-06-08,Jefferson,Louisiana,22051,7885,462 +2020-06-09,Jefferson,Louisiana,22051,7940,462 +2020-06-10,Jefferson,Louisiana,22051,7971,463 +2020-06-11,Jefferson,Louisiana,22051,8032,464 +2020-06-12,Jefferson,Louisiana,22051,8091,465 +2020-06-13,Jefferson,Louisiana,22051,8339,465 +2020-06-14,Jefferson,Louisiana,22051,8379,466 +2020-06-15,Jefferson,Louisiana,22051,8416,467 +2020-06-16,Jefferson,Louisiana,22051,8468,471 +2020-06-17,Jefferson,Louisiana,22051,8507,472 +2020-06-18,Jefferson,Louisiana,22051,8507,472 +2020-06-19,Jefferson,Louisiana,22051,8542,474 +2020-06-20,Jefferson,Louisiana,22051,8647,477 +2020-06-21,Jefferson,Louisiana,22051,8681,477 +2020-06-22,Jefferson,Louisiana,22051,8741,477 +2020-06-23,Jefferson,Louisiana,22051,8888,479 +2020-06-24,Jefferson,Louisiana,22051,9003,479 +2020-06-25,Jefferson,Louisiana,22051,9074,480 +2020-06-26,Jefferson,Louisiana,22051,9169,481 +2020-06-27,Jefferson,Louisiana,22051,9169,481 +2020-06-28,Jefferson,Louisiana,22051,9342,483 +2020-06-29,Jefferson,Louisiana,22051,9403,483 +2020-06-30,Jefferson,Louisiana,22051,9489,484 +2020-07-01,Jefferson,Louisiana,22051,9637,485 +2020-07-02,Jefferson,Louisiana,22051,9712,486 +2020-07-03,Jefferson,Louisiana,22051,9874,486 +2020-07-04,Jefferson,Louisiana,22051,9874,486 +2020-07-05,Jefferson,Louisiana,22051,10024,487 +2020-07-06,Jefferson,Louisiana,22051,10097,487 +2020-07-07,Jefferson,Louisiana,22051,10272,488 +2020-07-08,Jefferson,Louisiana,22051,10452,488 +2020-07-09,Jefferson,Louisiana,22051,10544,489 +2020-03-25,Jefferson Davis,Louisiana,22053,1,0 +2020-03-26,Jefferson Davis,Louisiana,22053,1,0 +2020-03-27,Jefferson Davis,Louisiana,22053,1,0 +2020-03-28,Jefferson Davis,Louisiana,22053,1,0 +2020-03-29,Jefferson Davis,Louisiana,22053,2,0 +2020-03-30,Jefferson Davis,Louisiana,22053,3,0 +2020-03-31,Jefferson Davis,Louisiana,22053,5,0 +2020-04-01,Jefferson Davis,Louisiana,22053,9,0 +2020-04-02,Jefferson Davis,Louisiana,22053,13,0 +2020-04-03,Jefferson Davis,Louisiana,22053,14,0 +2020-04-04,Jefferson Davis,Louisiana,22053,9,0 +2020-04-05,Jefferson Davis,Louisiana,22053,13,0 +2020-04-06,Jefferson Davis,Louisiana,22053,21,1 +2020-04-07,Jefferson Davis,Louisiana,22053,25,1 +2020-04-08,Jefferson Davis,Louisiana,22053,28,1 +2020-04-09,Jefferson Davis,Louisiana,22053,30,2 +2020-04-10,Jefferson Davis,Louisiana,22053,32,2 +2020-04-11,Jefferson Davis,Louisiana,22053,35,3 +2020-04-12,Jefferson Davis,Louisiana,22053,44,3 +2020-04-13,Jefferson Davis,Louisiana,22053,47,3 +2020-04-14,Jefferson Davis,Louisiana,22053,47,4 +2020-04-15,Jefferson Davis,Louisiana,22053,48,4 +2020-04-16,Jefferson Davis,Louisiana,22053,48,5 +2020-04-17,Jefferson Davis,Louisiana,22053,52,5 +2020-04-18,Jefferson Davis,Louisiana,22053,53,5 +2020-04-19,Jefferson Davis,Louisiana,22053,55,5 +2020-04-20,Jefferson Davis,Louisiana,22053,55,5 +2020-04-21,Jefferson Davis,Louisiana,22053,57,5 +2020-04-22,Jefferson Davis,Louisiana,22053,57,5 +2020-04-23,Jefferson Davis,Louisiana,22053,57,5 +2020-04-24,Jefferson Davis,Louisiana,22053,57,5 +2020-04-25,Jefferson Davis,Louisiana,22053,59,5 +2020-04-26,Jefferson Davis,Louisiana,22053,59,5 +2020-04-27,Jefferson Davis,Louisiana,22053,61,6 +2020-04-28,Jefferson Davis,Louisiana,22053,61,6 +2020-04-29,Jefferson Davis,Louisiana,22053,62,6 +2020-04-30,Jefferson Davis,Louisiana,22053,62,6 +2020-05-01,Jefferson Davis,Louisiana,22053,63,6 +2020-05-02,Jefferson Davis,Louisiana,22053,64,6 +2020-05-03,Jefferson Davis,Louisiana,22053,64,6 +2020-05-04,Jefferson Davis,Louisiana,22053,65,6 +2020-05-05,Jefferson Davis,Louisiana,22053,65,6 +2020-05-06,Jefferson Davis,Louisiana,22053,66,6 +2020-05-07,Jefferson Davis,Louisiana,22053,66,6 +2020-05-08,Jefferson Davis,Louisiana,22053,66,6 +2020-05-09,Jefferson Davis,Louisiana,22053,67,6 +2020-05-10,Jefferson Davis,Louisiana,22053,67,6 +2020-05-11,Jefferson Davis,Louisiana,22053,68,6 +2020-05-12,Jefferson Davis,Louisiana,22053,68,6 +2020-05-13,Jefferson Davis,Louisiana,22053,69,6 +2020-05-14,Jefferson Davis,Louisiana,22053,69,6 +2020-05-15,Jefferson Davis,Louisiana,22053,70,6 +2020-05-16,Jefferson Davis,Louisiana,22053,69,6 +2020-05-17,Jefferson Davis,Louisiana,22053,69,6 +2020-05-18,Jefferson Davis,Louisiana,22053,70,6 +2020-05-19,Jefferson Davis,Louisiana,22053,71,6 +2020-05-20,Jefferson Davis,Louisiana,22053,71,6 +2020-05-21,Jefferson Davis,Louisiana,22053,72,6 +2020-05-22,Jefferson Davis,Louisiana,22053,73,7 +2020-05-23,Jefferson Davis,Louisiana,22053,73,7 +2020-05-24,Jefferson Davis,Louisiana,22053,73,7 +2020-05-25,Jefferson Davis,Louisiana,22053,74,7 +2020-05-26,Jefferson Davis,Louisiana,22053,74,7 +2020-05-27,Jefferson Davis,Louisiana,22053,75,7 +2020-05-28,Jefferson Davis,Louisiana,22053,75,7 +2020-05-29,Jefferson Davis,Louisiana,22053,75,7 +2020-05-30,Jefferson Davis,Louisiana,22053,76,7 +2020-05-31,Jefferson Davis,Louisiana,22053,76,7 +2020-06-01,Jefferson Davis,Louisiana,22053,78,7 +2020-06-02,Jefferson Davis,Louisiana,22053,78,7 +2020-06-03,Jefferson Davis,Louisiana,22053,78,7 +2020-06-04,Jefferson Davis,Louisiana,22053,84,7 +2020-06-05,Jefferson Davis,Louisiana,22053,87,7 +2020-06-06,Jefferson Davis,Louisiana,22053,89,7 +2020-06-07,Jefferson Davis,Louisiana,22053,91,7 +2020-06-08,Jefferson Davis,Louisiana,22053,93,7 +2020-06-09,Jefferson Davis,Louisiana,22053,96,7 +2020-06-10,Jefferson Davis,Louisiana,22053,102,7 +2020-06-11,Jefferson Davis,Louisiana,22053,106,7 +2020-06-12,Jefferson Davis,Louisiana,22053,114,7 +2020-06-13,Jefferson Davis,Louisiana,22053,131,7 +2020-06-14,Jefferson Davis,Louisiana,22053,132,7 +2020-06-15,Jefferson Davis,Louisiana,22053,133,7 +2020-06-16,Jefferson Davis,Louisiana,22053,147,7 +2020-06-17,Jefferson Davis,Louisiana,22053,162,7 +2020-06-18,Jefferson Davis,Louisiana,22053,162,7 +2020-06-19,Jefferson Davis,Louisiana,22053,189,7 +2020-06-20,Jefferson Davis,Louisiana,22053,203,7 +2020-06-21,Jefferson Davis,Louisiana,22053,208,7 +2020-06-22,Jefferson Davis,Louisiana,22053,240,7 +2020-06-23,Jefferson Davis,Louisiana,22053,247,7 +2020-06-24,Jefferson Davis,Louisiana,22053,250,7 +2020-06-25,Jefferson Davis,Louisiana,22053,283,7 +2020-06-26,Jefferson Davis,Louisiana,22053,316,8 +2020-06-27,Jefferson Davis,Louisiana,22053,316,8 +2020-06-28,Jefferson Davis,Louisiana,22053,328,8 +2020-06-29,Jefferson Davis,Louisiana,22053,339,8 +2020-06-30,Jefferson Davis,Louisiana,22053,349,9 +2020-07-01,Jefferson Davis,Louisiana,22053,370,9 +2020-07-02,Jefferson Davis,Louisiana,22053,399,9 +2020-07-03,Jefferson Davis,Louisiana,22053,419,9 +2020-07-04,Jefferson Davis,Louisiana,22053,419,9 +2020-07-05,Jefferson Davis,Louisiana,22053,461,9 +2020-07-06,Jefferson Davis,Louisiana,22053,482,9 +2020-07-07,Jefferson Davis,Louisiana,22053,507,9 +2020-07-08,Jefferson Davis,Louisiana,22053,521,10 +2020-07-09,Jefferson Davis,Louisiana,22053,549,11 +2020-03-19,Lafayette,Louisiana,22055,3,0 +2020-03-20,Lafayette,Louisiana,22055,6,0 +2020-03-21,Lafayette,Louisiana,22055,6,0 +2020-03-22,Lafayette,Louisiana,22055,6,0 +2020-03-23,Lafayette,Louisiana,22055,11,0 +2020-03-24,Lafayette,Louisiana,22055,12,0 +2020-03-25,Lafayette,Louisiana,22055,20,0 +2020-03-26,Lafayette,Louisiana,22055,30,0 +2020-03-27,Lafayette,Louisiana,22055,44,0 +2020-03-28,Lafayette,Louisiana,22055,48,1 +2020-03-29,Lafayette,Louisiana,22055,50,1 +2020-03-30,Lafayette,Louisiana,22055,82,1 +2020-03-31,Lafayette,Louisiana,22055,118,1 +2020-04-01,Lafayette,Louisiana,22055,159,2 +2020-04-02,Lafayette,Louisiana,22055,247,2 +2020-04-03,Lafayette,Louisiana,22055,276,2 +2020-04-04,Lafayette,Louisiana,22055,229,4 +2020-04-05,Lafayette,Louisiana,22055,247,5 +2020-04-06,Lafayette,Louisiana,22055,260,6 +2020-04-07,Lafayette,Louisiana,22055,272,7 +2020-04-08,Lafayette,Louisiana,22055,285,10 +2020-04-09,Lafayette,Louisiana,22055,303,11 +2020-04-10,Lafayette,Louisiana,22055,330,12 +2020-04-11,Lafayette,Louisiana,22055,337,12 +2020-04-12,Lafayette,Louisiana,22055,354,13 +2020-04-13,Lafayette,Louisiana,22055,360,14 +2020-04-14,Lafayette,Louisiana,22055,363,15 +2020-04-15,Lafayette,Louisiana,22055,375,16 +2020-04-16,Lafayette,Louisiana,22055,387,16 +2020-04-17,Lafayette,Louisiana,22055,396,17 +2020-04-18,Lafayette,Louisiana,22055,414,17 +2020-04-19,Lafayette,Louisiana,22055,419,17 +2020-04-20,Lafayette,Louisiana,22055,423,17 +2020-04-21,Lafayette,Louisiana,22055,429,17 +2020-04-22,Lafayette,Louisiana,22055,435,17 +2020-04-23,Lafayette,Louisiana,22055,439,17 +2020-04-24,Lafayette,Louisiana,22055,440,17 +2020-04-25,Lafayette,Louisiana,22055,442,17 +2020-04-26,Lafayette,Louisiana,22055,443,17 +2020-04-27,Lafayette,Louisiana,22055,443,18 +2020-04-28,Lafayette,Louisiana,22055,446,21 +2020-04-29,Lafayette,Louisiana,22055,451,20 +2020-04-30,Lafayette,Louisiana,22055,455,20 +2020-05-01,Lafayette,Louisiana,22055,463,20 +2020-05-02,Lafayette,Louisiana,22055,464,20 +2020-05-03,Lafayette,Louisiana,22055,466,20 +2020-05-04,Lafayette,Louisiana,22055,468,20 +2020-05-05,Lafayette,Louisiana,22055,473,20 +2020-05-06,Lafayette,Louisiana,22055,477,21 +2020-05-07,Lafayette,Louisiana,22055,479,21 +2020-05-08,Lafayette,Louisiana,22055,481,21 +2020-05-09,Lafayette,Louisiana,22055,498,22 +2020-05-10,Lafayette,Louisiana,22055,501,22 +2020-05-11,Lafayette,Louisiana,22055,508,22 +2020-05-12,Lafayette,Louisiana,22055,512,22 +2020-05-13,Lafayette,Louisiana,22055,537,22 +2020-05-14,Lafayette,Louisiana,22055,541,23 +2020-05-15,Lafayette,Louisiana,22055,543,23 +2020-05-16,Lafayette,Louisiana,22055,578,23 +2020-05-17,Lafayette,Louisiana,22055,590,23 +2020-05-18,Lafayette,Louisiana,22055,598,23 +2020-05-19,Lafayette,Louisiana,22055,605,23 +2020-05-20,Lafayette,Louisiana,22055,607,23 +2020-05-21,Lafayette,Louisiana,22055,631,23 +2020-05-22,Lafayette,Louisiana,22055,637,23 +2020-05-23,Lafayette,Louisiana,22055,659,23 +2020-05-24,Lafayette,Louisiana,22055,659,23 +2020-05-25,Lafayette,Louisiana,22055,674,23 +2020-05-26,Lafayette,Louisiana,22055,678,23 +2020-05-27,Lafayette,Louisiana,22055,689,23 +2020-05-28,Lafayette,Louisiana,22055,695,25 +2020-05-29,Lafayette,Louisiana,22055,695,26 +2020-05-30,Lafayette,Louisiana,22055,763,26 +2020-05-31,Lafayette,Louisiana,22055,768,26 +2020-06-01,Lafayette,Louisiana,22055,793,26 +2020-06-02,Lafayette,Louisiana,22055,803,27 +2020-06-03,Lafayette,Louisiana,22055,821,27 +2020-06-04,Lafayette,Louisiana,22055,834,28 +2020-06-05,Lafayette,Louisiana,22055,854,29 +2020-06-06,Lafayette,Louisiana,22055,866,29 +2020-06-07,Lafayette,Louisiana,22055,880,29 +2020-06-08,Lafayette,Louisiana,22055,897,30 +2020-06-09,Lafayette,Louisiana,22055,908,30 +2020-06-10,Lafayette,Louisiana,22055,931,30 +2020-06-11,Lafayette,Louisiana,22055,957,33 +2020-06-12,Lafayette,Louisiana,22055,988,32 +2020-06-13,Lafayette,Louisiana,22055,1140,32 +2020-06-14,Lafayette,Louisiana,22055,1148,32 +2020-06-15,Lafayette,Louisiana,22055,1202,32 +2020-06-16,Lafayette,Louisiana,22055,1243,32 +2020-06-17,Lafayette,Louisiana,22055,1302,32 +2020-06-18,Lafayette,Louisiana,22055,1302,32 +2020-06-19,Lafayette,Louisiana,22055,1310,32 +2020-06-20,Lafayette,Louisiana,22055,1364,33 +2020-06-21,Lafayette,Louisiana,22055,1396,33 +2020-06-22,Lafayette,Louisiana,22055,1440,33 +2020-06-23,Lafayette,Louisiana,22055,1574,36 +2020-06-24,Lafayette,Louisiana,22055,1654,36 +2020-06-25,Lafayette,Louisiana,22055,1723,37 +2020-06-26,Lafayette,Louisiana,22055,1862,41 +2020-06-27,Lafayette,Louisiana,22055,1862,41 +2020-06-28,Lafayette,Louisiana,22055,1972,41 +2020-06-29,Lafayette,Louisiana,22055,2058,41 +2020-06-30,Lafayette,Louisiana,22055,2158,42 +2020-07-01,Lafayette,Louisiana,22055,2359,45 +2020-07-02,Lafayette,Louisiana,22055,2472,46 +2020-07-03,Lafayette,Louisiana,22055,2645,47 +2020-07-04,Lafayette,Louisiana,22055,2645,47 +2020-07-05,Lafayette,Louisiana,22055,2800,48 +2020-07-06,Lafayette,Louisiana,22055,2917,48 +2020-07-07,Lafayette,Louisiana,22055,3000,48 +2020-07-08,Lafayette,Louisiana,22055,3127,50 +2020-07-09,Lafayette,Louisiana,22055,3293,50 +2020-03-14,Lafourche,Louisiana,22057,1,0 +2020-03-15,Lafourche,Louisiana,22057,1,0 +2020-03-16,Lafourche,Louisiana,22057,2,0 +2020-03-17,Lafourche,Louisiana,22057,2,0 +2020-03-18,Lafourche,Louisiana,22057,3,0 +2020-03-19,Lafourche,Louisiana,22057,4,0 +2020-03-20,Lafourche,Louisiana,22057,5,0 +2020-03-21,Lafourche,Louisiana,22057,11,0 +2020-03-22,Lafourche,Louisiana,22057,12,0 +2020-03-23,Lafourche,Louisiana,22057,15,0 +2020-03-24,Lafourche,Louisiana,22057,16,0 +2020-03-25,Lafourche,Louisiana,22057,18,1 +2020-03-26,Lafourche,Louisiana,22057,28,1 +2020-03-27,Lafourche,Louisiana,22057,30,2 +2020-03-28,Lafourche,Louisiana,22057,34,2 +2020-03-29,Lafourche,Louisiana,22057,36,2 +2020-03-30,Lafourche,Louisiana,22057,51,2 +2020-03-31,Lafourche,Louisiana,22057,74,2 +2020-04-01,Lafourche,Louisiana,22057,105,4 +2020-04-02,Lafourche,Louisiana,22057,158,4 +2020-04-03,Lafourche,Louisiana,22057,185,3 +2020-04-04,Lafourche,Louisiana,22057,217,3 +2020-04-05,Lafourche,Louisiana,22057,228,4 +2020-04-06,Lafourche,Louisiana,22057,305,7 +2020-04-07,Lafourche,Louisiana,22057,322,7 +2020-04-08,Lafourche,Louisiana,22057,355,11 +2020-04-09,Lafourche,Louisiana,22057,393,11 +2020-04-10,Lafourche,Louisiana,22057,426,13 +2020-04-11,Lafourche,Louisiana,22057,454,13 +2020-04-12,Lafourche,Louisiana,22057,468,13 +2020-04-13,Lafourche,Louisiana,22057,481,13 +2020-04-14,Lafourche,Louisiana,22057,486,13 +2020-04-15,Lafourche,Louisiana,22057,499,15 +2020-04-16,Lafourche,Louisiana,22057,528,16 +2020-04-17,Lafourche,Louisiana,22057,542,21 +2020-04-18,Lafourche,Louisiana,22057,560,22 +2020-04-19,Lafourche,Louisiana,22057,566,25 +2020-04-20,Lafourche,Louisiana,22057,573,27 +2020-04-21,Lafourche,Louisiana,22057,576,30 +2020-04-22,Lafourche,Louisiana,22057,583,32 +2020-04-23,Lafourche,Louisiana,22057,603,32 +2020-04-24,Lafourche,Louisiana,22057,607,35 +2020-04-25,Lafourche,Louisiana,22057,610,39 +2020-04-26,Lafourche,Louisiana,22057,624,39 +2020-04-27,Lafourche,Louisiana,22057,632,39 +2020-04-28,Lafourche,Louisiana,22057,635,39 +2020-04-29,Lafourche,Louisiana,22057,651,44 +2020-04-30,Lafourche,Louisiana,22057,651,45 +2020-05-01,Lafourche,Louisiana,22057,661,50 +2020-05-02,Lafourche,Louisiana,22057,666,52 +2020-05-03,Lafourche,Louisiana,22057,669,52 +2020-05-04,Lafourche,Louisiana,22057,681,52 +2020-05-05,Lafourche,Louisiana,22057,686,53 +2020-05-06,Lafourche,Louisiana,22057,692,53 +2020-05-07,Lafourche,Louisiana,22057,693,55 +2020-05-08,Lafourche,Louisiana,22057,698,57 +2020-05-09,Lafourche,Louisiana,22057,706,59 +2020-05-10,Lafourche,Louisiana,22057,711,59 +2020-05-11,Lafourche,Louisiana,22057,713,59 +2020-05-12,Lafourche,Louisiana,22057,715,60 +2020-05-13,Lafourche,Louisiana,22057,716,60 +2020-05-14,Lafourche,Louisiana,22057,719,60 +2020-05-15,Lafourche,Louisiana,22057,724,63 +2020-05-16,Lafourche,Louisiana,22057,738,63 +2020-05-17,Lafourche,Louisiana,22057,742,63 +2020-05-18,Lafourche,Louisiana,22057,744,64 +2020-05-19,Lafourche,Louisiana,22057,750,64 +2020-05-20,Lafourche,Louisiana,22057,753,64 +2020-05-21,Lafourche,Louisiana,22057,763,64 +2020-05-22,Lafourche,Louisiana,22057,766,65 +2020-05-23,Lafourche,Louisiana,22057,766,68 +2020-05-24,Lafourche,Louisiana,22057,766,68 +2020-05-25,Lafourche,Louisiana,22057,775,68 +2020-05-26,Lafourche,Louisiana,22057,776,71 +2020-05-27,Lafourche,Louisiana,22057,781,71 +2020-05-28,Lafourche,Louisiana,22057,789,71 +2020-05-29,Lafourche,Louisiana,22057,789,71 +2020-05-30,Lafourche,Louisiana,22057,809,71 +2020-05-31,Lafourche,Louisiana,22057,821,71 +2020-06-01,Lafourche,Louisiana,22057,827,72 +2020-06-02,Lafourche,Louisiana,22057,867,72 +2020-06-03,Lafourche,Louisiana,22057,878,72 +2020-06-04,Lafourche,Louisiana,22057,882,72 +2020-06-05,Lafourche,Louisiana,22057,886,73 +2020-06-06,Lafourche,Louisiana,22057,896,74 +2020-06-07,Lafourche,Louisiana,22057,902,75 +2020-06-08,Lafourche,Louisiana,22057,909,75 +2020-06-09,Lafourche,Louisiana,22057,922,76 +2020-06-10,Lafourche,Louisiana,22057,928,76 +2020-06-11,Lafourche,Louisiana,22057,937,77 +2020-06-12,Lafourche,Louisiana,22057,945,77 +2020-06-13,Lafourche,Louisiana,22057,968,77 +2020-06-14,Lafourche,Louisiana,22057,973,77 +2020-06-15,Lafourche,Louisiana,22057,983,77 +2020-06-16,Lafourche,Louisiana,22057,999,77 +2020-06-17,Lafourche,Louisiana,22057,1013,78 +2020-06-18,Lafourche,Louisiana,22057,1013,78 +2020-06-19,Lafourche,Louisiana,22057,998,83 +2020-06-20,Lafourche,Louisiana,22057,1005,83 +2020-06-21,Lafourche,Louisiana,22057,1010,83 +2020-06-22,Lafourche,Louisiana,22057,1027,83 +2020-06-23,Lafourche,Louisiana,22057,1034,83 +2020-06-24,Lafourche,Louisiana,22057,1056,83 +2020-06-25,Lafourche,Louisiana,22057,1064,85 +2020-06-26,Lafourche,Louisiana,22057,1071,85 +2020-06-27,Lafourche,Louisiana,22057,1071,85 +2020-06-28,Lafourche,Louisiana,22057,1097,86 +2020-06-29,Lafourche,Louisiana,22057,1119,86 +2020-06-30,Lafourche,Louisiana,22057,1149,87 +2020-07-01,Lafourche,Louisiana,22057,1177,89 +2020-07-02,Lafourche,Louisiana,22057,1201,89 +2020-07-03,Lafourche,Louisiana,22057,1248,89 +2020-07-04,Lafourche,Louisiana,22057,1248,89 +2020-07-05,Lafourche,Louisiana,22057,1284,90 +2020-07-06,Lafourche,Louisiana,22057,1304,90 +2020-07-07,Lafourche,Louisiana,22057,1339,90 +2020-07-08,Lafourche,Louisiana,22057,1386,90 +2020-07-09,Lafourche,Louisiana,22057,1422,90 +2020-03-26,LaSalle,Louisiana,22059,1,0 +2020-03-27,LaSalle,Louisiana,22059,1,0 +2020-03-28,LaSalle,Louisiana,22059,2,0 +2020-03-29,LaSalle,Louisiana,22059,2,0 +2020-03-30,LaSalle,Louisiana,22059,2,0 +2020-03-31,LaSalle,Louisiana,22059,2,0 +2020-04-01,LaSalle,Louisiana,22059,2,0 +2020-04-02,LaSalle,Louisiana,22059,2,0 +2020-04-03,LaSalle,Louisiana,22059,2,0 +2020-04-04,LaSalle,Louisiana,22059,4,0 +2020-04-05,LaSalle,Louisiana,22059,4,0 +2020-04-06,LaSalle,Louisiana,22059,6,0 +2020-04-07,LaSalle,Louisiana,22059,6,0 +2020-04-08,LaSalle,Louisiana,22059,8,0 +2020-04-09,LaSalle,Louisiana,22059,9,0 +2020-04-10,LaSalle,Louisiana,22059,9,0 +2020-04-11,LaSalle,Louisiana,22059,10,0 +2020-04-12,LaSalle,Louisiana,22059,11,0 +2020-04-13,LaSalle,Louisiana,22059,13,0 +2020-04-14,LaSalle,Louisiana,22059,13,0 +2020-04-15,LaSalle,Louisiana,22059,13,0 +2020-04-16,LaSalle,Louisiana,22059,13,0 +2020-04-17,LaSalle,Louisiana,22059,13,0 +2020-04-18,LaSalle,Louisiana,22059,13,0 +2020-04-19,LaSalle,Louisiana,22059,13,0 +2020-04-20,LaSalle,Louisiana,22059,14,0 +2020-04-21,LaSalle,Louisiana,22059,14,0 +2020-04-22,LaSalle,Louisiana,22059,15,0 +2020-04-23,LaSalle,Louisiana,22059,15,0 +2020-04-24,LaSalle,Louisiana,22059,17,0 +2020-04-25,LaSalle,Louisiana,22059,18,0 +2020-04-26,LaSalle,Louisiana,22059,19,0 +2020-04-27,LaSalle,Louisiana,22059,21,0 +2020-04-28,LaSalle,Louisiana,22059,21,0 +2020-04-29,LaSalle,Louisiana,22059,22,0 +2020-04-30,LaSalle,Louisiana,22059,23,0 +2020-05-01,LaSalle,Louisiana,22059,26,0 +2020-05-02,LaSalle,Louisiana,22059,26,0 +2020-05-03,LaSalle,Louisiana,22059,26,0 +2020-05-04,LaSalle,Louisiana,22059,27,0 +2020-05-05,LaSalle,Louisiana,22059,27,0 +2020-05-06,LaSalle,Louisiana,22059,29,0 +2020-05-07,LaSalle,Louisiana,22059,30,0 +2020-05-08,LaSalle,Louisiana,22059,31,0 +2020-05-09,LaSalle,Louisiana,22059,33,0 +2020-05-10,LaSalle,Louisiana,22059,33,0 +2020-05-11,LaSalle,Louisiana,22059,33,0 +2020-05-12,LaSalle,Louisiana,22059,33,0 +2020-05-13,LaSalle,Louisiana,22059,35,0 +2020-05-14,LaSalle,Louisiana,22059,35,0 +2020-05-15,LaSalle,Louisiana,22059,36,0 +2020-05-16,LaSalle,Louisiana,22059,37,0 +2020-05-17,LaSalle,Louisiana,22059,40,0 +2020-05-18,LaSalle,Louisiana,22059,40,0 +2020-05-19,LaSalle,Louisiana,22059,40,0 +2020-05-20,LaSalle,Louisiana,22059,40,0 +2020-05-21,LaSalle,Louisiana,22059,45,1 +2020-05-22,LaSalle,Louisiana,22059,45,1 +2020-05-23,LaSalle,Louisiana,22059,45,0 +2020-05-24,LaSalle,Louisiana,22059,45,0 +2020-05-25,LaSalle,Louisiana,22059,47,0 +2020-05-26,LaSalle,Louisiana,22059,47,0 +2020-05-27,LaSalle,Louisiana,22059,48,0 +2020-05-28,LaSalle,Louisiana,22059,48,0 +2020-05-29,LaSalle,Louisiana,22059,48,0 +2020-05-30,LaSalle,Louisiana,22059,51,0 +2020-05-31,LaSalle,Louisiana,22059,51,0 +2020-06-01,LaSalle,Louisiana,22059,52,0 +2020-06-02,LaSalle,Louisiana,22059,53,1 +2020-06-03,LaSalle,Louisiana,22059,53,0 +2020-06-04,LaSalle,Louisiana,22059,56,0 +2020-06-05,LaSalle,Louisiana,22059,58,0 +2020-06-06,LaSalle,Louisiana,22059,59,0 +2020-06-07,LaSalle,Louisiana,22059,61,0 +2020-06-08,LaSalle,Louisiana,22059,63,0 +2020-06-09,LaSalle,Louisiana,22059,66,0 +2020-06-10,LaSalle,Louisiana,22059,67,0 +2020-06-11,LaSalle,Louisiana,22059,68,0 +2020-06-12,LaSalle,Louisiana,22059,72,0 +2020-06-13,LaSalle,Louisiana,22059,76,0 +2020-06-14,LaSalle,Louisiana,22059,77,0 +2020-06-15,LaSalle,Louisiana,22059,80,0 +2020-06-16,LaSalle,Louisiana,22059,85,0 +2020-06-17,LaSalle,Louisiana,22059,90,0 +2020-06-18,LaSalle,Louisiana,22059,90,0 +2020-06-19,LaSalle,Louisiana,22059,86,0 +2020-06-20,LaSalle,Louisiana,22059,86,0 +2020-06-21,LaSalle,Louisiana,22059,86,0 +2020-06-22,LaSalle,Louisiana,22059,86,0 +2020-06-23,LaSalle,Louisiana,22059,87,0 +2020-06-24,LaSalle,Louisiana,22059,88,0 +2020-06-25,LaSalle,Louisiana,22059,88,0 +2020-06-26,LaSalle,Louisiana,22059,90,0 +2020-06-27,LaSalle,Louisiana,22059,90,0 +2020-06-28,LaSalle,Louisiana,22059,91,0 +2020-06-29,LaSalle,Louisiana,22059,96,0 +2020-06-30,LaSalle,Louisiana,22059,97,0 +2020-07-01,LaSalle,Louisiana,22059,97,0 +2020-07-02,LaSalle,Louisiana,22059,99,0 +2020-07-03,LaSalle,Louisiana,22059,101,0 +2020-07-04,LaSalle,Louisiana,22059,101,0 +2020-07-05,LaSalle,Louisiana,22059,104,0 +2020-07-06,LaSalle,Louisiana,22059,104,0 +2020-07-07,LaSalle,Louisiana,22059,109,0 +2020-07-08,LaSalle,Louisiana,22059,111,0 +2020-07-09,LaSalle,Louisiana,22059,115,0 +2020-03-23,Lincoln,Louisiana,22061,2,0 +2020-03-24,Lincoln,Louisiana,22061,2,0 +2020-03-25,Lincoln,Louisiana,22061,2,0 +2020-03-26,Lincoln,Louisiana,22061,3,0 +2020-03-27,Lincoln,Louisiana,22061,7,0 +2020-03-28,Lincoln,Louisiana,22061,6,0 +2020-03-29,Lincoln,Louisiana,22061,7,0 +2020-03-30,Lincoln,Louisiana,22061,8,0 +2020-03-31,Lincoln,Louisiana,22061,12,0 +2020-04-01,Lincoln,Louisiana,22061,13,0 +2020-04-02,Lincoln,Louisiana,22061,13,0 +2020-04-03,Lincoln,Louisiana,22061,17,0 +2020-04-04,Lincoln,Louisiana,22061,17,0 +2020-04-05,Lincoln,Louisiana,22061,18,0 +2020-04-06,Lincoln,Louisiana,22061,19,0 +2020-04-07,Lincoln,Louisiana,22061,22,0 +2020-04-08,Lincoln,Louisiana,22061,24,0 +2020-04-09,Lincoln,Louisiana,22061,28,0 +2020-04-10,Lincoln,Louisiana,22061,33,0 +2020-04-11,Lincoln,Louisiana,22061,37,0 +2020-04-12,Lincoln,Louisiana,22061,39,0 +2020-04-13,Lincoln,Louisiana,22061,39,0 +2020-04-14,Lincoln,Louisiana,22061,42,0 +2020-04-15,Lincoln,Louisiana,22061,41,0 +2020-04-16,Lincoln,Louisiana,22061,43,0 +2020-04-17,Lincoln,Louisiana,22061,47,2 +2020-04-18,Lincoln,Louisiana,22061,49,2 +2020-04-19,Lincoln,Louisiana,22061,49,2 +2020-04-20,Lincoln,Louisiana,22061,51,2 +2020-04-21,Lincoln,Louisiana,22061,52,2 +2020-04-22,Lincoln,Louisiana,22061,58,2 +2020-04-23,Lincoln,Louisiana,22061,62,3 +2020-04-24,Lincoln,Louisiana,22061,64,4 +2020-04-25,Lincoln,Louisiana,22061,69,4 +2020-04-26,Lincoln,Louisiana,22061,72,4 +2020-04-27,Lincoln,Louisiana,22061,79,4 +2020-04-28,Lincoln,Louisiana,22061,80,5 +2020-04-29,Lincoln,Louisiana,22061,83,7 +2020-04-30,Lincoln,Louisiana,22061,85,8 +2020-05-01,Lincoln,Louisiana,22061,85,8 +2020-05-02,Lincoln,Louisiana,22061,88,9 +2020-05-03,Lincoln,Louisiana,22061,90,9 +2020-05-04,Lincoln,Louisiana,22061,94,9 +2020-05-05,Lincoln,Louisiana,22061,96,10 +2020-05-06,Lincoln,Louisiana,22061,99,11 +2020-05-07,Lincoln,Louisiana,22061,101,11 +2020-05-08,Lincoln,Louisiana,22061,103,11 +2020-05-09,Lincoln,Louisiana,22061,106,11 +2020-05-10,Lincoln,Louisiana,22061,106,11 +2020-05-11,Lincoln,Louisiana,22061,107,11 +2020-05-12,Lincoln,Louisiana,22061,107,12 +2020-05-13,Lincoln,Louisiana,22061,115,13 +2020-05-14,Lincoln,Louisiana,22061,116,13 +2020-05-15,Lincoln,Louisiana,22061,122,13 +2020-05-16,Lincoln,Louisiana,22061,119,13 +2020-05-17,Lincoln,Louisiana,22061,121,13 +2020-05-18,Lincoln,Louisiana,22061,121,13 +2020-05-19,Lincoln,Louisiana,22061,122,14 +2020-05-20,Lincoln,Louisiana,22061,122,14 +2020-05-21,Lincoln,Louisiana,22061,130,14 +2020-05-22,Lincoln,Louisiana,22061,133,14 +2020-05-23,Lincoln,Louisiana,22061,133,14 +2020-05-24,Lincoln,Louisiana,22061,133,14 +2020-05-25,Lincoln,Louisiana,22061,135,14 +2020-05-26,Lincoln,Louisiana,22061,138,14 +2020-05-27,Lincoln,Louisiana,22061,142,14 +2020-05-28,Lincoln,Louisiana,22061,144,14 +2020-05-29,Lincoln,Louisiana,22061,144,14 +2020-05-30,Lincoln,Louisiana,22061,152,14 +2020-05-31,Lincoln,Louisiana,22061,157,14 +2020-06-01,Lincoln,Louisiana,22061,160,14 +2020-06-02,Lincoln,Louisiana,22061,160,14 +2020-06-03,Lincoln,Louisiana,22061,161,16 +2020-06-04,Lincoln,Louisiana,22061,163,16 +2020-06-05,Lincoln,Louisiana,22061,165,17 +2020-06-06,Lincoln,Louisiana,22061,169,17 +2020-06-07,Lincoln,Louisiana,22061,173,17 +2020-06-08,Lincoln,Louisiana,22061,175,17 +2020-06-09,Lincoln,Louisiana,22061,184,18 +2020-06-10,Lincoln,Louisiana,22061,193,18 +2020-06-11,Lincoln,Louisiana,22061,196,18 +2020-06-12,Lincoln,Louisiana,22061,202,18 +2020-06-13,Lincoln,Louisiana,22061,227,18 +2020-06-14,Lincoln,Louisiana,22061,235,18 +2020-06-15,Lincoln,Louisiana,22061,241,18 +2020-06-16,Lincoln,Louisiana,22061,248,18 +2020-06-17,Lincoln,Louisiana,22061,259,18 +2020-06-18,Lincoln,Louisiana,22061,259,18 +2020-06-19,Lincoln,Louisiana,22061,269,19 +2020-06-20,Lincoln,Louisiana,22061,273,19 +2020-06-21,Lincoln,Louisiana,22061,274,19 +2020-06-22,Lincoln,Louisiana,22061,274,18 +2020-06-23,Lincoln,Louisiana,22061,281,18 +2020-06-24,Lincoln,Louisiana,22061,290,18 +2020-06-25,Lincoln,Louisiana,22061,294,18 +2020-06-26,Lincoln,Louisiana,22061,300,18 +2020-06-27,Lincoln,Louisiana,22061,300,18 +2020-06-28,Lincoln,Louisiana,22061,312,18 +2020-06-29,Lincoln,Louisiana,22061,314,18 +2020-06-30,Lincoln,Louisiana,22061,323,18 +2020-07-01,Lincoln,Louisiana,22061,329,18 +2020-07-02,Lincoln,Louisiana,22061,338,19 +2020-07-03,Lincoln,Louisiana,22061,344,19 +2020-07-04,Lincoln,Louisiana,22061,344,19 +2020-07-05,Lincoln,Louisiana,22061,350,19 +2020-07-06,Lincoln,Louisiana,22061,353,19 +2020-07-07,Lincoln,Louisiana,22061,354,19 +2020-07-08,Lincoln,Louisiana,22061,366,19 +2020-07-09,Lincoln,Louisiana,22061,383,19 +2020-03-19,Livingston,Louisiana,22063,1,0 +2020-03-20,Livingston,Louisiana,22063,1,0 +2020-03-21,Livingston,Louisiana,22063,2,0 +2020-03-22,Livingston,Louisiana,22063,2,0 +2020-03-23,Livingston,Louisiana,22063,5,0 +2020-03-24,Livingston,Louisiana,22063,6,0 +2020-03-25,Livingston,Louisiana,22063,6,0 +2020-03-26,Livingston,Louisiana,22063,11,0 +2020-03-27,Livingston,Louisiana,22063,11,0 +2020-03-28,Livingston,Louisiana,22063,12,0 +2020-03-29,Livingston,Louisiana,22063,15,0 +2020-03-30,Livingston,Louisiana,22063,16,0 +2020-03-31,Livingston,Louisiana,22063,23,0 +2020-04-01,Livingston,Louisiana,22063,25,0 +2020-04-02,Livingston,Louisiana,22063,33,0 +2020-04-03,Livingston,Louisiana,22063,40,1 +2020-04-04,Livingston,Louisiana,22063,64,1 +2020-04-05,Livingston,Louisiana,22063,67,1 +2020-04-06,Livingston,Louisiana,22063,79,1 +2020-04-07,Livingston,Louisiana,22063,94,1 +2020-04-08,Livingston,Louisiana,22063,99,1 +2020-04-09,Livingston,Louisiana,22063,103,1 +2020-04-10,Livingston,Louisiana,22063,107,1 +2020-04-11,Livingston,Louisiana,22063,109,1 +2020-04-12,Livingston,Louisiana,22063,120,1 +2020-04-13,Livingston,Louisiana,22063,122,3 +2020-04-14,Livingston,Louisiana,22063,129,4 +2020-04-15,Livingston,Louisiana,22063,133,5 +2020-04-16,Livingston,Louisiana,22063,136,5 +2020-04-17,Livingston,Louisiana,22063,142,7 +2020-04-18,Livingston,Louisiana,22063,144,8 +2020-04-19,Livingston,Louisiana,22063,148,8 +2020-04-20,Livingston,Louisiana,22063,149,8 +2020-04-21,Livingston,Louisiana,22063,158,9 +2020-04-22,Livingston,Louisiana,22063,161,10 +2020-04-23,Livingston,Louisiana,22063,165,11 +2020-04-24,Livingston,Louisiana,22063,172,11 +2020-04-25,Livingston,Louisiana,22063,177,11 +2020-04-26,Livingston,Louisiana,22063,182,11 +2020-04-27,Livingston,Louisiana,22063,183,11 +2020-04-28,Livingston,Louisiana,22063,185,13 +2020-04-29,Livingston,Louisiana,22063,190,14 +2020-04-30,Livingston,Louisiana,22063,197,15 +2020-05-01,Livingston,Louisiana,22063,229,15 +2020-05-02,Livingston,Louisiana,22063,235,16 +2020-05-03,Livingston,Louisiana,22063,238,16 +2020-05-04,Livingston,Louisiana,22063,243,16 +2020-05-05,Livingston,Louisiana,22063,247,18 +2020-05-06,Livingston,Louisiana,22063,266,18 +2020-05-07,Livingston,Louisiana,22063,268,19 +2020-05-08,Livingston,Louisiana,22063,268,21 +2020-05-09,Livingston,Louisiana,22063,277,22 +2020-05-10,Livingston,Louisiana,22063,278,24 +2020-05-11,Livingston,Louisiana,22063,281,24 +2020-05-12,Livingston,Louisiana,22063,283,24 +2020-05-13,Livingston,Louisiana,22063,293,23 +2020-05-14,Livingston,Louisiana,22063,343,23 +2020-05-15,Livingston,Louisiana,22063,347,23 +2020-05-16,Livingston,Louisiana,22063,344,24 +2020-05-17,Livingston,Louisiana,22063,348,25 +2020-05-18,Livingston,Louisiana,22063,350,25 +2020-05-19,Livingston,Louisiana,22063,356,26 +2020-05-20,Livingston,Louisiana,22063,358,26 +2020-05-21,Livingston,Louisiana,22063,363,26 +2020-05-22,Livingston,Louisiana,22063,366,26 +2020-05-23,Livingston,Louisiana,22063,373,26 +2020-05-24,Livingston,Louisiana,22063,375,26 +2020-05-25,Livingston,Louisiana,22063,391,26 +2020-05-26,Livingston,Louisiana,22063,399,27 +2020-05-27,Livingston,Louisiana,22063,403,27 +2020-05-28,Livingston,Louisiana,22063,408,27 +2020-05-29,Livingston,Louisiana,22063,408,27 +2020-05-30,Livingston,Louisiana,22063,417,28 +2020-05-31,Livingston,Louisiana,22063,422,29 +2020-06-01,Livingston,Louisiana,22063,428,29 +2020-06-02,Livingston,Louisiana,22063,440,30 +2020-06-03,Livingston,Louisiana,22063,446,31 +2020-06-04,Livingston,Louisiana,22063,453,31 +2020-06-05,Livingston,Louisiana,22063,458,31 +2020-06-06,Livingston,Louisiana,22063,460,31 +2020-06-07,Livingston,Louisiana,22063,464,31 +2020-06-08,Livingston,Louisiana,22063,468,31 +2020-06-09,Livingston,Louisiana,22063,481,31 +2020-06-10,Livingston,Louisiana,22063,484,31 +2020-06-11,Livingston,Louisiana,22063,495,31 +2020-06-12,Livingston,Louisiana,22063,514,31 +2020-06-13,Livingston,Louisiana,22063,525,31 +2020-06-14,Livingston,Louisiana,22063,526,32 +2020-06-15,Livingston,Louisiana,22063,546,32 +2020-06-16,Livingston,Louisiana,22063,561,33 +2020-06-17,Livingston,Louisiana,22063,573,33 +2020-06-18,Livingston,Louisiana,22063,573,33 +2020-06-19,Livingston,Louisiana,22063,638,34 +2020-06-20,Livingston,Louisiana,22063,669,35 +2020-06-21,Livingston,Louisiana,22063,683,35 +2020-06-22,Livingston,Louisiana,22063,690,36 +2020-06-23,Livingston,Louisiana,22063,751,36 +2020-06-24,Livingston,Louisiana,22063,768,36 +2020-06-25,Livingston,Louisiana,22063,794,36 +2020-06-26,Livingston,Louisiana,22063,814,37 +2020-06-27,Livingston,Louisiana,22063,814,37 +2020-06-28,Livingston,Louisiana,22063,846,37 +2020-06-29,Livingston,Louisiana,22063,860,37 +2020-06-30,Livingston,Louisiana,22063,903,37 +2020-07-01,Livingston,Louisiana,22063,983,38 +2020-07-02,Livingston,Louisiana,22063,1025,38 +2020-07-03,Livingston,Louisiana,22063,1102,38 +2020-07-04,Livingston,Louisiana,22063,1102,38 +2020-07-05,Livingston,Louisiana,22063,1156,38 +2020-07-06,Livingston,Louisiana,22063,1181,39 +2020-07-07,Livingston,Louisiana,22063,1267,39 +2020-07-08,Livingston,Louisiana,22063,1305,40 +2020-07-09,Livingston,Louisiana,22063,1344,40 +2020-03-26,Madison,Louisiana,22065,1,0 +2020-03-27,Madison,Louisiana,22065,1,0 +2020-03-28,Madison,Louisiana,22065,1,0 +2020-03-29,Madison,Louisiana,22065,1,0 +2020-03-30,Madison,Louisiana,22065,1,0 +2020-03-31,Madison,Louisiana,22065,1,0 +2020-04-01,Madison,Louisiana,22065,1,0 +2020-04-02,Madison,Louisiana,22065,1,0 +2020-04-03,Madison,Louisiana,22065,1,0 +2020-04-04,Madison,Louisiana,22065,1,0 +2020-04-05,Madison,Louisiana,22065,1,0 +2020-04-06,Madison,Louisiana,22065,1,0 +2020-04-07,Madison,Louisiana,22065,2,0 +2020-04-08,Madison,Louisiana,22065,2,0 +2020-04-09,Madison,Louisiana,22065,2,0 +2020-04-10,Madison,Louisiana,22065,2,0 +2020-04-11,Madison,Louisiana,22065,2,0 +2020-04-12,Madison,Louisiana,22065,2,0 +2020-04-13,Madison,Louisiana,22065,2,0 +2020-04-14,Madison,Louisiana,22065,2,0 +2020-04-15,Madison,Louisiana,22065,2,0 +2020-04-16,Madison,Louisiana,22065,2,0 +2020-04-17,Madison,Louisiana,22065,4,0 +2020-04-18,Madison,Louisiana,22065,4,0 +2020-04-19,Madison,Louisiana,22065,4,0 +2020-04-20,Madison,Louisiana,22065,4,0 +2020-04-21,Madison,Louisiana,22065,4,0 +2020-04-22,Madison,Louisiana,22065,5,0 +2020-04-23,Madison,Louisiana,22065,5,0 +2020-04-24,Madison,Louisiana,22065,5,0 +2020-04-25,Madison,Louisiana,22065,7,0 +2020-04-26,Madison,Louisiana,22065,7,0 +2020-04-27,Madison,Louisiana,22065,7,0 +2020-04-28,Madison,Louisiana,22065,7,0 +2020-04-29,Madison,Louisiana,22065,7,0 +2020-04-30,Madison,Louisiana,22065,7,0 +2020-05-01,Madison,Louisiana,22065,7,0 +2020-05-02,Madison,Louisiana,22065,8,0 +2020-05-03,Madison,Louisiana,22065,8,0 +2020-05-04,Madison,Louisiana,22065,8,0 +2020-05-05,Madison,Louisiana,22065,8,0 +2020-05-06,Madison,Louisiana,22065,8,0 +2020-05-07,Madison,Louisiana,22065,8,0 +2020-05-08,Madison,Louisiana,22065,8,0 +2020-05-09,Madison,Louisiana,22065,12,0 +2020-05-10,Madison,Louisiana,22065,12,0 +2020-05-11,Madison,Louisiana,22065,13,0 +2020-05-12,Madison,Louisiana,22065,14,0 +2020-05-13,Madison,Louisiana,22065,14,0 +2020-05-14,Madison,Louisiana,22065,18,0 +2020-05-15,Madison,Louisiana,22065,24,0 +2020-05-16,Madison,Louisiana,22065,24,0 +2020-05-17,Madison,Louisiana,22065,24,0 +2020-05-18,Madison,Louisiana,22065,24,0 +2020-05-19,Madison,Louisiana,22065,27,0 +2020-05-20,Madison,Louisiana,22065,33,0 +2020-05-21,Madison,Louisiana,22065,43,0 +2020-05-22,Madison,Louisiana,22065,54,0 +2020-05-23,Madison,Louisiana,22065,54,0 +2020-05-24,Madison,Louisiana,22065,55,0 +2020-05-25,Madison,Louisiana,22065,69,0 +2020-05-26,Madison,Louisiana,22065,70,0 +2020-05-27,Madison,Louisiana,22065,77,0 +2020-05-28,Madison,Louisiana,22065,79,0 +2020-05-29,Madison,Louisiana,22065,79,0 +2020-05-30,Madison,Louisiana,22065,90,0 +2020-05-31,Madison,Louisiana,22065,97,0 +2020-06-01,Madison,Louisiana,22065,101,0 +2020-06-02,Madison,Louisiana,22065,105,2 +2020-06-03,Madison,Louisiana,22065,106,2 +2020-06-04,Madison,Louisiana,22065,116,2 +2020-06-05,Madison,Louisiana,22065,121,2 +2020-06-06,Madison,Louisiana,22065,199,2 +2020-06-07,Madison,Louisiana,22065,209,2 +2020-06-08,Madison,Louisiana,22065,214,2 +2020-06-09,Madison,Louisiana,22065,219,2 +2020-06-10,Madison,Louisiana,22065,221,2 +2020-06-11,Madison,Louisiana,22065,249,2 +2020-06-12,Madison,Louisiana,22065,251,2 +2020-06-13,Madison,Louisiana,22065,261,2 +2020-06-14,Madison,Louisiana,22065,270,2 +2020-06-15,Madison,Louisiana,22065,286,2 +2020-06-16,Madison,Louisiana,22065,287,2 +2020-06-17,Madison,Louisiana,22065,287,2 +2020-06-18,Madison,Louisiana,22065,287,2 +2020-06-19,Madison,Louisiana,22065,289,2 +2020-06-20,Madison,Louisiana,22065,308,2 +2020-06-21,Madison,Louisiana,22065,317,2 +2020-06-22,Madison,Louisiana,22065,320,2 +2020-06-23,Madison,Louisiana,22065,320,2 +2020-06-24,Madison,Louisiana,22065,322,2 +2020-06-25,Madison,Louisiana,22065,324,2 +2020-06-26,Madison,Louisiana,22065,331,2 +2020-06-27,Madison,Louisiana,22065,331,2 +2020-06-28,Madison,Louisiana,22065,347,2 +2020-06-29,Madison,Louisiana,22065,352,2 +2020-06-30,Madison,Louisiana,22065,356,2 +2020-07-01,Madison,Louisiana,22065,362,2 +2020-07-02,Madison,Louisiana,22065,371,2 +2020-07-03,Madison,Louisiana,22065,383,2 +2020-07-04,Madison,Louisiana,22065,383,2 +2020-07-05,Madison,Louisiana,22065,393,3 +2020-07-06,Madison,Louisiana,22065,393,3 +2020-07-07,Madison,Louisiana,22065,393,3 +2020-07-08,Madison,Louisiana,22065,401,3 +2020-07-09,Madison,Louisiana,22065,406,3 +2020-03-25,Morehouse,Louisiana,22067,1,0 +2020-03-26,Morehouse,Louisiana,22067,3,0 +2020-03-27,Morehouse,Louisiana,22067,2,0 +2020-03-28,Morehouse,Louisiana,22067,2,0 +2020-03-29,Morehouse,Louisiana,22067,2,0 +2020-03-30,Morehouse,Louisiana,22067,2,0 +2020-03-31,Morehouse,Louisiana,22067,2,0 +2020-04-01,Morehouse,Louisiana,22067,2,0 +2020-04-02,Morehouse,Louisiana,22067,4,0 +2020-04-03,Morehouse,Louisiana,22067,7,0 +2020-04-04,Morehouse,Louisiana,22067,9,0 +2020-04-05,Morehouse,Louisiana,22067,10,0 +2020-04-06,Morehouse,Louisiana,22067,15,0 +2020-04-07,Morehouse,Louisiana,22067,20,0 +2020-04-08,Morehouse,Louisiana,22067,23,0 +2020-04-09,Morehouse,Louisiana,22067,24,0 +2020-04-10,Morehouse,Louisiana,22067,27,2 +2020-04-11,Morehouse,Louisiana,22067,31,2 +2020-04-12,Morehouse,Louisiana,22067,31,2 +2020-04-13,Morehouse,Louisiana,22067,32,2 +2020-04-14,Morehouse,Louisiana,22067,32,2 +2020-04-15,Morehouse,Louisiana,22067,32,2 +2020-04-16,Morehouse,Louisiana,22067,34,2 +2020-04-17,Morehouse,Louisiana,22067,34,2 +2020-04-18,Morehouse,Louisiana,22067,35,2 +2020-04-19,Morehouse,Louisiana,22067,37,3 +2020-04-20,Morehouse,Louisiana,22067,38,3 +2020-04-21,Morehouse,Louisiana,22067,39,4 +2020-04-22,Morehouse,Louisiana,22067,41,4 +2020-04-23,Morehouse,Louisiana,22067,45,4 +2020-04-24,Morehouse,Louisiana,22067,46,4 +2020-04-25,Morehouse,Louisiana,22067,46,4 +2020-04-26,Morehouse,Louisiana,22067,46,4 +2020-04-27,Morehouse,Louisiana,22067,48,4 +2020-04-28,Morehouse,Louisiana,22067,48,4 +2020-04-29,Morehouse,Louisiana,22067,51,4 +2020-04-30,Morehouse,Louisiana,22067,52,4 +2020-05-01,Morehouse,Louisiana,22067,52,4 +2020-05-02,Morehouse,Louisiana,22067,54,4 +2020-05-03,Morehouse,Louisiana,22067,55,4 +2020-05-04,Morehouse,Louisiana,22067,55,4 +2020-05-05,Morehouse,Louisiana,22067,55,4 +2020-05-06,Morehouse,Louisiana,22067,55,4 +2020-05-07,Morehouse,Louisiana,22067,57,5 +2020-05-08,Morehouse,Louisiana,22067,57,5 +2020-05-09,Morehouse,Louisiana,22067,60,5 +2020-05-10,Morehouse,Louisiana,22067,62,5 +2020-05-11,Morehouse,Louisiana,22067,65,5 +2020-05-12,Morehouse,Louisiana,22067,67,5 +2020-05-13,Morehouse,Louisiana,22067,87,5 +2020-05-14,Morehouse,Louisiana,22067,89,5 +2020-05-15,Morehouse,Louisiana,22067,92,5 +2020-05-16,Morehouse,Louisiana,22067,85,5 +2020-05-17,Morehouse,Louisiana,22067,91,5 +2020-05-18,Morehouse,Louisiana,22067,93,5 +2020-05-19,Morehouse,Louisiana,22067,93,5 +2020-05-20,Morehouse,Louisiana,22067,94,5 +2020-05-21,Morehouse,Louisiana,22067,108,5 +2020-05-22,Morehouse,Louisiana,22067,110,5 +2020-05-23,Morehouse,Louisiana,22067,110,5 +2020-05-24,Morehouse,Louisiana,22067,111,5 +2020-05-25,Morehouse,Louisiana,22067,117,5 +2020-05-26,Morehouse,Louisiana,22067,119,5 +2020-05-27,Morehouse,Louisiana,22067,121,5 +2020-05-28,Morehouse,Louisiana,22067,121,5 +2020-05-29,Morehouse,Louisiana,22067,121,5 +2020-05-30,Morehouse,Louisiana,22067,121,5 +2020-05-31,Morehouse,Louisiana,22067,122,5 +2020-06-01,Morehouse,Louisiana,22067,122,5 +2020-06-02,Morehouse,Louisiana,22067,122,5 +2020-06-03,Morehouse,Louisiana,22067,131,5 +2020-06-04,Morehouse,Louisiana,22067,132,5 +2020-06-05,Morehouse,Louisiana,22067,132,5 +2020-06-06,Morehouse,Louisiana,22067,133,5 +2020-06-07,Morehouse,Louisiana,22067,133,5 +2020-06-08,Morehouse,Louisiana,22067,134,5 +2020-06-09,Morehouse,Louisiana,22067,135,5 +2020-06-10,Morehouse,Louisiana,22067,136,6 +2020-06-11,Morehouse,Louisiana,22067,138,6 +2020-06-12,Morehouse,Louisiana,22067,138,6 +2020-06-13,Morehouse,Louisiana,22067,153,6 +2020-06-14,Morehouse,Louisiana,22067,158,6 +2020-06-15,Morehouse,Louisiana,22067,161,6 +2020-06-16,Morehouse,Louisiana,22067,165,6 +2020-06-17,Morehouse,Louisiana,22067,186,6 +2020-06-18,Morehouse,Louisiana,22067,186,6 +2020-06-19,Morehouse,Louisiana,22067,182,6 +2020-06-20,Morehouse,Louisiana,22067,182,6 +2020-06-21,Morehouse,Louisiana,22067,186,6 +2020-06-22,Morehouse,Louisiana,22067,188,7 +2020-06-23,Morehouse,Louisiana,22067,213,7 +2020-06-24,Morehouse,Louisiana,22067,216,7 +2020-06-25,Morehouse,Louisiana,22067,218,7 +2020-06-26,Morehouse,Louisiana,22067,227,8 +2020-06-27,Morehouse,Louisiana,22067,227,8 +2020-06-28,Morehouse,Louisiana,22067,236,8 +2020-06-29,Morehouse,Louisiana,22067,237,8 +2020-06-30,Morehouse,Louisiana,22067,235,8 +2020-07-01,Morehouse,Louisiana,22067,239,8 +2020-07-02,Morehouse,Louisiana,22067,242,9 +2020-07-03,Morehouse,Louisiana,22067,248,10 +2020-07-04,Morehouse,Louisiana,22067,248,10 +2020-07-05,Morehouse,Louisiana,22067,250,10 +2020-07-06,Morehouse,Louisiana,22067,251,10 +2020-07-07,Morehouse,Louisiana,22067,254,10 +2020-07-08,Morehouse,Louisiana,22067,256,10 +2020-07-09,Morehouse,Louisiana,22067,265,10 +2020-03-23,Natchitoches,Louisiana,22069,2,0 +2020-03-24,Natchitoches,Louisiana,22069,2,0 +2020-03-25,Natchitoches,Louisiana,22069,2,0 +2020-03-26,Natchitoches,Louisiana,22069,2,0 +2020-03-27,Natchitoches,Louisiana,22069,2,0 +2020-03-28,Natchitoches,Louisiana,22069,2,0 +2020-03-29,Natchitoches,Louisiana,22069,2,0 +2020-03-30,Natchitoches,Louisiana,22069,2,0 +2020-03-31,Natchitoches,Louisiana,22069,2,0 +2020-04-01,Natchitoches,Louisiana,22069,2,0 +2020-04-02,Natchitoches,Louisiana,22069,4,0 +2020-04-03,Natchitoches,Louisiana,22069,6,0 +2020-04-04,Natchitoches,Louisiana,22069,15,0 +2020-04-05,Natchitoches,Louisiana,22069,14,0 +2020-04-06,Natchitoches,Louisiana,22069,22,0 +2020-04-07,Natchitoches,Louisiana,22069,24,0 +2020-04-08,Natchitoches,Louisiana,22069,25,0 +2020-04-09,Natchitoches,Louisiana,22069,27,0 +2020-04-10,Natchitoches,Louisiana,22069,33,0 +2020-04-11,Natchitoches,Louisiana,22069,33,0 +2020-04-12,Natchitoches,Louisiana,22069,41,0 +2020-04-13,Natchitoches,Louisiana,22069,41,0 +2020-04-14,Natchitoches,Louisiana,22069,42,0 +2020-04-15,Natchitoches,Louisiana,22069,42,0 +2020-04-16,Natchitoches,Louisiana,22069,45,0 +2020-04-17,Natchitoches,Louisiana,22069,50,1 +2020-04-18,Natchitoches,Louisiana,22069,53,1 +2020-04-19,Natchitoches,Louisiana,22069,57,1 +2020-04-20,Natchitoches,Louisiana,22069,58,1 +2020-04-21,Natchitoches,Louisiana,22069,58,1 +2020-04-22,Natchitoches,Louisiana,22069,62,1 +2020-04-23,Natchitoches,Louisiana,22069,62,1 +2020-04-24,Natchitoches,Louisiana,22069,65,2 +2020-04-25,Natchitoches,Louisiana,22069,73,2 +2020-04-26,Natchitoches,Louisiana,22069,73,2 +2020-04-27,Natchitoches,Louisiana,22069,77,2 +2020-04-28,Natchitoches,Louisiana,22069,77,3 +2020-04-29,Natchitoches,Louisiana,22069,79,4 +2020-04-30,Natchitoches,Louisiana,22069,84,4 +2020-05-01,Natchitoches,Louisiana,22069,86,4 +2020-05-02,Natchitoches,Louisiana,22069,87,4 +2020-05-03,Natchitoches,Louisiana,22069,87,4 +2020-05-04,Natchitoches,Louisiana,22069,90,5 +2020-05-05,Natchitoches,Louisiana,22069,90,6 +2020-05-06,Natchitoches,Louisiana,22069,91,8 +2020-05-07,Natchitoches,Louisiana,22069,91,8 +2020-05-08,Natchitoches,Louisiana,22069,92,8 +2020-05-09,Natchitoches,Louisiana,22069,98,9 +2020-05-10,Natchitoches,Louisiana,22069,100,9 +2020-05-11,Natchitoches,Louisiana,22069,100,9 +2020-05-12,Natchitoches,Louisiana,22069,100,9 +2020-05-13,Natchitoches,Louisiana,22069,100,9 +2020-05-14,Natchitoches,Louisiana,22069,102,10 +2020-05-15,Natchitoches,Louisiana,22069,102,12 +2020-05-16,Natchitoches,Louisiana,22069,101,12 +2020-05-17,Natchitoches,Louisiana,22069,101,12 +2020-05-18,Natchitoches,Louisiana,22069,103,12 +2020-05-19,Natchitoches,Louisiana,22069,103,12 +2020-05-20,Natchitoches,Louisiana,22069,103,13 +2020-05-21,Natchitoches,Louisiana,22069,141,13 +2020-05-22,Natchitoches,Louisiana,22069,145,13 +2020-05-23,Natchitoches,Louisiana,22069,145,13 +2020-05-24,Natchitoches,Louisiana,22069,147,13 +2020-05-25,Natchitoches,Louisiana,22069,152,13 +2020-05-26,Natchitoches,Louisiana,22069,157,13 +2020-05-27,Natchitoches,Louisiana,22069,157,13 +2020-05-28,Natchitoches,Louisiana,22069,157,13 +2020-05-29,Natchitoches,Louisiana,22069,157,13 +2020-05-30,Natchitoches,Louisiana,22069,168,13 +2020-05-31,Natchitoches,Louisiana,22069,169,13 +2020-06-01,Natchitoches,Louisiana,22069,171,13 +2020-06-02,Natchitoches,Louisiana,22069,172,13 +2020-06-03,Natchitoches,Louisiana,22069,173,13 +2020-06-04,Natchitoches,Louisiana,22069,173,13 +2020-06-05,Natchitoches,Louisiana,22069,173,13 +2020-06-06,Natchitoches,Louisiana,22069,175,13 +2020-06-07,Natchitoches,Louisiana,22069,177,13 +2020-06-08,Natchitoches,Louisiana,22069,177,13 +2020-06-09,Natchitoches,Louisiana,22069,179,13 +2020-06-10,Natchitoches,Louisiana,22069,180,13 +2020-06-11,Natchitoches,Louisiana,22069,182,13 +2020-06-12,Natchitoches,Louisiana,22069,188,13 +2020-06-13,Natchitoches,Louisiana,22069,191,13 +2020-06-14,Natchitoches,Louisiana,22069,191,13 +2020-06-15,Natchitoches,Louisiana,22069,194,13 +2020-06-16,Natchitoches,Louisiana,22069,195,13 +2020-06-17,Natchitoches,Louisiana,22069,195,13 +2020-06-18,Natchitoches,Louisiana,22069,195,13 +2020-06-19,Natchitoches,Louisiana,22069,190,13 +2020-06-20,Natchitoches,Louisiana,22069,192,13 +2020-06-21,Natchitoches,Louisiana,22069,192,13 +2020-06-22,Natchitoches,Louisiana,22069,192,13 +2020-06-23,Natchitoches,Louisiana,22069,193,14 +2020-06-24,Natchitoches,Louisiana,22069,197,14 +2020-06-25,Natchitoches,Louisiana,22069,213,14 +2020-06-26,Natchitoches,Louisiana,22069,231,14 +2020-06-27,Natchitoches,Louisiana,22069,231,14 +2020-06-28,Natchitoches,Louisiana,22069,280,14 +2020-06-29,Natchitoches,Louisiana,22069,280,14 +2020-06-30,Natchitoches,Louisiana,22069,280,14 +2020-07-01,Natchitoches,Louisiana,22069,295,14 +2020-07-02,Natchitoches,Louisiana,22069,297,14 +2020-07-03,Natchitoches,Louisiana,22069,319,14 +2020-07-04,Natchitoches,Louisiana,22069,319,14 +2020-07-05,Natchitoches,Louisiana,22069,327,14 +2020-07-06,Natchitoches,Louisiana,22069,330,14 +2020-07-07,Natchitoches,Louisiana,22069,334,14 +2020-07-08,Natchitoches,Louisiana,22069,340,14 +2020-07-09,Natchitoches,Louisiana,22069,362,14 +2020-03-10,Orleans,Louisiana,22071,5,0 +2020-03-11,Orleans,Louisiana,22071,11,0 +2020-03-12,Orleans,Louisiana,22071,12,0 +2020-03-13,Orleans,Louisiana,22071,28,0 +2020-03-14,Orleans,Louisiana,22071,53,1 +2020-03-15,Orleans,Louisiana,22071,75,2 +2020-03-16,Orleans,Louisiana,22071,95,3 +2020-03-17,Orleans,Louisiana,22071,136,5 +2020-03-18,Orleans,Louisiana,22071,196,6 +2020-03-19,Orleans,Louisiana,22071,252,8 +2020-03-20,Orleans,Louisiana,22071,329,8 +2020-03-21,Orleans,Louisiana,22071,418,13 +2020-03-22,Orleans,Louisiana,22071,451,15 +2020-03-23,Orleans,Louisiana,22071,567,20 +2020-03-24,Orleans,Louisiana,22071,675,26 +2020-03-25,Orleans,Louisiana,22071,827,37 +2020-03-26,Orleans,Louisiana,22071,997,46 +2020-03-27,Orleans,Louisiana,22071,1170,57 +2020-03-28,Orleans,Louisiana,22071,1298,70 +2020-03-29,Orleans,Louisiana,22071,1350,73 +2020-03-30,Orleans,Louisiana,22071,1480,86 +2020-03-31,Orleans,Louisiana,22071,1834,101 +2020-04-01,Orleans,Louisiana,22071,2270,115 +2020-04-02,Orleans,Louisiana,22071,3148,125 +2020-04-03,Orleans,Louisiana,22071,3476,148 +2020-04-04,Orleans,Louisiana,22071,3966,153 +2020-04-05,Orleans,Louisiana,22071,4066,161 +2020-04-06,Orleans,Louisiana,22071,4565,171 +2020-04-07,Orleans,Louisiana,22071,4942,185 +2020-04-08,Orleans,Louisiana,22071,5070,208 +2020-04-09,Orleans,Louisiana,22071,5242,224 +2020-04-10,Orleans,Louisiana,22071,5416,225 +2020-04-11,Orleans,Louisiana,22071,5535,232 +2020-04-12,Orleans,Louisiana,22071,5600,235 +2020-04-13,Orleans,Louisiana,22071,5651,244 +2020-04-14,Orleans,Louisiana,22071,5718,276 +2020-04-15,Orleans,Louisiana,22071,5769,287 +2020-04-16,Orleans,Louisiana,22071,5847,302 +2020-04-17,Orleans,Louisiana,22071,5906,317 +2020-04-18,Orleans,Louisiana,22071,5953,324 +2020-04-19,Orleans,Louisiana,22071,6000,329 +2020-04-20,Orleans,Louisiana,22071,6148,339 +2020-04-21,Orleans,Louisiana,22071,6169,344 +2020-04-22,Orleans,Louisiana,22071,6209,367 +2020-04-23,Orleans,Louisiana,22071,6263,387 +2020-04-24,Orleans,Louisiana,22071,6286,392 +2020-04-25,Orleans,Louisiana,22071,6297,399 +2020-04-26,Orleans,Louisiana,22071,6342,406 +2020-04-27,Orleans,Louisiana,22071,6365,406 +2020-04-28,Orleans,Louisiana,22071,6380,410 +2020-04-29,Orleans,Louisiana,22071,6420,416 +2020-04-30,Orleans,Louisiana,22071,6452,434 +2020-05-01,Orleans,Louisiana,22071,6495,437 +2020-05-02,Orleans,Louisiana,22071,6524,439 +2020-05-03,Orleans,Louisiana,22071,6538,441 +2020-05-04,Orleans,Louisiana,22071,6557,447 +2020-05-05,Orleans,Louisiana,22071,6575,453 +2020-05-06,Orleans,Louisiana,22071,6608,464 +2020-05-07,Orleans,Louisiana,22071,6626,463 +2020-05-08,Orleans,Louisiana,22071,6645,463 +2020-05-09,Orleans,Louisiana,22071,6674,468 +2020-05-10,Orleans,Louisiana,22071,6682,468 +2020-05-11,Orleans,Louisiana,22071,6693,470 +2020-05-12,Orleans,Louisiana,22071,6718,477 +2020-05-13,Orleans,Louisiana,22071,6753,481 +2020-05-14,Orleans,Louisiana,22071,6768,482 +2020-05-15,Orleans,Louisiana,22071,6787,489 +2020-05-16,Orleans,Louisiana,22071,6781,495 +2020-05-17,Orleans,Louisiana,22071,6809,495 +2020-05-18,Orleans,Louisiana,22071,6822,495 +2020-05-19,Orleans,Louisiana,22071,6869,494 +2020-05-20,Orleans,Louisiana,22071,6884,500 +2020-05-21,Orleans,Louisiana,22071,6904,500 +2020-05-22,Orleans,Louisiana,22071,6944,500 +2020-05-23,Orleans,Louisiana,22071,6949,500 +2020-05-24,Orleans,Louisiana,22071,6953,500 +2020-05-25,Orleans,Louisiana,22071,7005,500 +2020-05-26,Orleans,Louisiana,22071,7021,504 +2020-05-27,Orleans,Louisiana,22071,7045,504 +2020-05-28,Orleans,Louisiana,22071,7067,505 +2020-05-29,Orleans,Louisiana,22071,7067,505 +2020-05-30,Orleans,Louisiana,22071,7108,507 +2020-05-31,Orleans,Louisiana,22071,7127,507 +2020-06-01,Orleans,Louisiana,22071,7141,507 +2020-06-02,Orleans,Louisiana,22071,7156,506 +2020-06-03,Orleans,Louisiana,22071,7174,509 +2020-06-04,Orleans,Louisiana,22071,7192,511 +2020-06-05,Orleans,Louisiana,22071,7206,511 +2020-06-06,Orleans,Louisiana,22071,7222,512 +2020-06-07,Orleans,Louisiana,22071,7230,512 +2020-06-08,Orleans,Louisiana,22071,7237,512 +2020-06-09,Orleans,Louisiana,22071,7247,513 +2020-06-10,Orleans,Louisiana,22071,7279,513 +2020-06-11,Orleans,Louisiana,22071,7294,515 +2020-06-12,Orleans,Louisiana,22071,7319,516 +2020-06-13,Orleans,Louisiana,22071,7374,516 +2020-06-14,Orleans,Louisiana,22071,7393,518 +2020-06-15,Orleans,Louisiana,22071,7411,519 +2020-06-16,Orleans,Louisiana,22071,7428,522 +2020-06-17,Orleans,Louisiana,22071,7459,523 +2020-06-18,Orleans,Louisiana,22071,7459,523 +2020-06-19,Orleans,Louisiana,22071,7448,526 +2020-06-20,Orleans,Louisiana,22071,7491,529 +2020-06-21,Orleans,Louisiana,22071,7518,529 +2020-06-22,Orleans,Louisiana,22071,7536,529 +2020-06-23,Orleans,Louisiana,22071,7571,529 +2020-06-24,Orleans,Louisiana,22071,7610,529 +2020-06-25,Orleans,Louisiana,22071,7638,529 +2020-06-26,Orleans,Louisiana,22071,7681,530 +2020-06-27,Orleans,Louisiana,22071,7681,530 +2020-06-28,Orleans,Louisiana,22071,7760,531 +2020-06-29,Orleans,Louisiana,22071,7796,532 +2020-06-30,Orleans,Louisiana,22071,7851,534 +2020-07-01,Orleans,Louisiana,22071,7919,534 +2020-07-02,Orleans,Louisiana,22071,7960,534 +2020-07-03,Orleans,Louisiana,22071,8031,534 +2020-07-04,Orleans,Louisiana,22071,8031,534 +2020-07-05,Orleans,Louisiana,22071,8107,534 +2020-07-06,Orleans,Louisiana,22071,8143,534 +2020-07-07,Orleans,Louisiana,22071,8206,536 +2020-07-08,Orleans,Louisiana,22071,8287,536 +2020-07-09,Orleans,Louisiana,22071,8344,539 +2020-03-21,Ouachita,Louisiana,22073,2,0 +2020-03-22,Ouachita,Louisiana,22073,4,0 +2020-03-23,Ouachita,Louisiana,22073,7,1 +2020-03-24,Ouachita,Louisiana,22073,7,1 +2020-03-25,Ouachita,Louisiana,22073,10,1 +2020-03-26,Ouachita,Louisiana,22073,19,1 +2020-03-27,Ouachita,Louisiana,22073,25,1 +2020-03-28,Ouachita,Louisiana,22073,34,1 +2020-03-29,Ouachita,Louisiana,22073,41,1 +2020-03-30,Ouachita,Louisiana,22073,44,1 +2020-03-31,Ouachita,Louisiana,22073,57,1 +2020-04-01,Ouachita,Louisiana,22073,80,1 +2020-04-02,Ouachita,Louisiana,22073,94,1 +2020-04-03,Ouachita,Louisiana,22073,114,1 +2020-04-04,Ouachita,Louisiana,22073,176,1 +2020-04-05,Ouachita,Louisiana,22073,182,1 +2020-04-06,Ouachita,Louisiana,22073,230,1 +2020-04-07,Ouachita,Louisiana,22073,264,1 +2020-04-08,Ouachita,Louisiana,22073,275,3 +2020-04-09,Ouachita,Louisiana,22073,300,4 +2020-04-10,Ouachita,Louisiana,22073,326,5 +2020-04-11,Ouachita,Louisiana,22073,350,5 +2020-04-12,Ouachita,Louisiana,22073,367,5 +2020-04-13,Ouachita,Louisiana,22073,384,5 +2020-04-14,Ouachita,Louisiana,22073,387,7 +2020-04-15,Ouachita,Louisiana,22073,411,8 +2020-04-16,Ouachita,Louisiana,22073,429,9 +2020-04-17,Ouachita,Louisiana,22073,470,11 +2020-04-18,Ouachita,Louisiana,22073,483,12 +2020-04-19,Ouachita,Louisiana,22073,511,13 +2020-04-20,Ouachita,Louisiana,22073,518,13 +2020-04-21,Ouachita,Louisiana,22073,532,13 +2020-04-22,Ouachita,Louisiana,22073,552,14 +2020-04-23,Ouachita,Louisiana,22073,579,16 +2020-04-24,Ouachita,Louisiana,22073,598,16 +2020-04-25,Ouachita,Louisiana,22073,609,16 +2020-04-26,Ouachita,Louisiana,22073,622,16 +2020-04-27,Ouachita,Louisiana,22073,645,16 +2020-04-28,Ouachita,Louisiana,22073,651,16 +2020-04-29,Ouachita,Louisiana,22073,671,16 +2020-04-30,Ouachita,Louisiana,22073,706,16 +2020-05-01,Ouachita,Louisiana,22073,730,21 +2020-05-02,Ouachita,Louisiana,22073,755,22 +2020-05-03,Ouachita,Louisiana,22073,770,22 +2020-05-04,Ouachita,Louisiana,22073,785,22 +2020-05-05,Ouachita,Louisiana,22073,793,22 +2020-05-06,Ouachita,Louisiana,22073,806,24 +2020-05-07,Ouachita,Louisiana,22073,814,25 +2020-05-08,Ouachita,Louisiana,22073,820,25 +2020-05-09,Ouachita,Louisiana,22073,836,25 +2020-05-10,Ouachita,Louisiana,22073,842,25 +2020-05-11,Ouachita,Louisiana,22073,842,25 +2020-05-12,Ouachita,Louisiana,22073,856,27 +2020-05-13,Ouachita,Louisiana,22073,861,31 +2020-05-14,Ouachita,Louisiana,22073,869,31 +2020-05-15,Ouachita,Louisiana,22073,891,31 +2020-05-16,Ouachita,Louisiana,22073,931,31 +2020-05-17,Ouachita,Louisiana,22073,946,31 +2020-05-18,Ouachita,Louisiana,22073,956,31 +2020-05-19,Ouachita,Louisiana,22073,966,32 +2020-05-20,Ouachita,Louisiana,22073,980,34 +2020-05-21,Ouachita,Louisiana,22073,1032,34 +2020-05-22,Ouachita,Louisiana,22073,1041,35 +2020-05-23,Ouachita,Louisiana,22073,1042,35 +2020-05-24,Ouachita,Louisiana,22073,1045,35 +2020-05-25,Ouachita,Louisiana,22073,1102,35 +2020-05-26,Ouachita,Louisiana,22073,1125,37 +2020-05-27,Ouachita,Louisiana,22073,1150,37 +2020-05-28,Ouachita,Louisiana,22073,1166,40 +2020-05-29,Ouachita,Louisiana,22073,1166,41 +2020-05-30,Ouachita,Louisiana,22073,1219,41 +2020-05-31,Ouachita,Louisiana,22073,1248,41 +2020-06-01,Ouachita,Louisiana,22073,1264,41 +2020-06-02,Ouachita,Louisiana,22073,1289,44 +2020-06-03,Ouachita,Louisiana,22073,1312,48 +2020-06-04,Ouachita,Louisiana,22073,1346,49 +2020-06-05,Ouachita,Louisiana,22073,1396,51 +2020-06-06,Ouachita,Louisiana,22073,1432,53 +2020-06-07,Ouachita,Louisiana,22073,1470,54 +2020-06-08,Ouachita,Louisiana,22073,1500,54 +2020-06-09,Ouachita,Louisiana,22073,1543,56 +2020-06-10,Ouachita,Louisiana,22073,1592,57 +2020-06-11,Ouachita,Louisiana,22073,1631,57 +2020-06-12,Ouachita,Louisiana,22073,1679,59 +2020-06-13,Ouachita,Louisiana,22073,1744,59 +2020-06-14,Ouachita,Louisiana,22073,1782,59 +2020-06-15,Ouachita,Louisiana,22073,1813,59 +2020-06-16,Ouachita,Louisiana,22073,1832,61 +2020-06-17,Ouachita,Louisiana,22073,1889,66 +2020-06-18,Ouachita,Louisiana,22073,1889,66 +2020-06-19,Ouachita,Louisiana,22073,1881,66 +2020-06-20,Ouachita,Louisiana,22073,1927,66 +2020-06-21,Ouachita,Louisiana,22073,1960,66 +2020-06-22,Ouachita,Louisiana,22073,1980,67 +2020-06-23,Ouachita,Louisiana,22073,2022,69 +2020-06-24,Ouachita,Louisiana,22073,2066,71 +2020-06-25,Ouachita,Louisiana,22073,2125,72 +2020-06-26,Ouachita,Louisiana,22073,2199,72 +2020-06-27,Ouachita,Louisiana,22073,2199,72 +2020-06-28,Ouachita,Louisiana,22073,2267,73 +2020-06-29,Ouachita,Louisiana,22073,2331,73 +2020-06-30,Ouachita,Louisiana,22073,2392,74 +2020-07-01,Ouachita,Louisiana,22073,2474,75 +2020-07-02,Ouachita,Louisiana,22073,2537,78 +2020-07-03,Ouachita,Louisiana,22073,2591,80 +2020-07-04,Ouachita,Louisiana,22073,2591,80 +2020-07-05,Ouachita,Louisiana,22073,2667,80 +2020-07-06,Ouachita,Louisiana,22073,2694,80 +2020-07-07,Ouachita,Louisiana,22073,2730,80 +2020-07-08,Ouachita,Louisiana,22073,2794,82 +2020-07-09,Ouachita,Louisiana,22073,2849,84 +2020-03-19,Plaquemines,Louisiana,22075,1,0 +2020-03-20,Plaquemines,Louisiana,22075,1,0 +2020-03-21,Plaquemines,Louisiana,22075,4,0 +2020-03-22,Plaquemines,Louisiana,22075,5,0 +2020-03-23,Plaquemines,Louisiana,22075,8,0 +2020-03-24,Plaquemines,Louisiana,22075,8,0 +2020-03-25,Plaquemines,Louisiana,22075,9,0 +2020-03-26,Plaquemines,Louisiana,22075,13,0 +2020-03-27,Plaquemines,Louisiana,22075,16,2 +2020-03-28,Plaquemines,Louisiana,22075,19,2 +2020-03-29,Plaquemines,Louisiana,22075,20,2 +2020-03-30,Plaquemines,Louisiana,22075,22,2 +2020-03-31,Plaquemines,Louisiana,22075,37,2 +2020-04-01,Plaquemines,Louisiana,22075,47,4 +2020-04-02,Plaquemines,Louisiana,22075,68,3 +2020-04-03,Plaquemines,Louisiana,22075,75,4 +2020-04-04,Plaquemines,Louisiana,22075,86,4 +2020-04-05,Plaquemines,Louisiana,22075,92,6 +2020-04-06,Plaquemines,Louisiana,22075,100,6 +2020-04-07,Plaquemines,Louisiana,22075,115,7 +2020-04-08,Plaquemines,Louisiana,22075,123,7 +2020-04-09,Plaquemines,Louisiana,22075,129,8 +2020-04-10,Plaquemines,Louisiana,22075,130,8 +2020-04-11,Plaquemines,Louisiana,22075,136,11 +2020-04-12,Plaquemines,Louisiana,22075,137,10 +2020-04-13,Plaquemines,Louisiana,22075,140,11 +2020-04-14,Plaquemines,Louisiana,22075,142,11 +2020-04-15,Plaquemines,Louisiana,22075,147,11 +2020-04-16,Plaquemines,Louisiana,22075,149,11 +2020-04-17,Plaquemines,Louisiana,22075,152,11 +2020-04-18,Plaquemines,Louisiana,22075,156,11 +2020-04-19,Plaquemines,Louisiana,22075,157,11 +2020-04-20,Plaquemines,Louisiana,22075,164,13 +2020-04-21,Plaquemines,Louisiana,22075,164,13 +2020-04-22,Plaquemines,Louisiana,22075,164,16 +2020-04-23,Plaquemines,Louisiana,22075,165,16 +2020-04-24,Plaquemines,Louisiana,22075,166,16 +2020-04-25,Plaquemines,Louisiana,22075,168,16 +2020-04-26,Plaquemines,Louisiana,22075,168,15 +2020-04-27,Plaquemines,Louisiana,22075,168,17 +2020-04-28,Plaquemines,Louisiana,22075,168,17 +2020-04-29,Plaquemines,Louisiana,22075,172,17 +2020-04-30,Plaquemines,Louisiana,22075,177,17 +2020-05-01,Plaquemines,Louisiana,22075,179,17 +2020-05-02,Plaquemines,Louisiana,22075,180,17 +2020-05-03,Plaquemines,Louisiana,22075,180,17 +2020-05-04,Plaquemines,Louisiana,22075,181,17 +2020-05-05,Plaquemines,Louisiana,22075,181,17 +2020-05-06,Plaquemines,Louisiana,22075,183,17 +2020-05-07,Plaquemines,Louisiana,22075,185,17 +2020-05-08,Plaquemines,Louisiana,22075,185,17 +2020-05-09,Plaquemines,Louisiana,22075,189,17 +2020-05-10,Plaquemines,Louisiana,22075,190,17 +2020-05-11,Plaquemines,Louisiana,22075,190,17 +2020-05-12,Plaquemines,Louisiana,22075,191,19 +2020-05-13,Plaquemines,Louisiana,22075,191,16 +2020-05-14,Plaquemines,Louisiana,22075,192,16 +2020-05-15,Plaquemines,Louisiana,22075,193,16 +2020-05-16,Plaquemines,Louisiana,22075,194,16 +2020-05-17,Plaquemines,Louisiana,22075,194,16 +2020-05-18,Plaquemines,Louisiana,22075,194,16 +2020-05-19,Plaquemines,Louisiana,22075,196,16 +2020-05-20,Plaquemines,Louisiana,22075,197,16 +2020-05-21,Plaquemines,Louisiana,22075,197,16 +2020-05-22,Plaquemines,Louisiana,22075,198,16 +2020-05-23,Plaquemines,Louisiana,22075,198,16 +2020-05-24,Plaquemines,Louisiana,22075,200,16 +2020-05-25,Plaquemines,Louisiana,22075,200,16 +2020-05-26,Plaquemines,Louisiana,22075,200,17 +2020-05-27,Plaquemines,Louisiana,22075,201,17 +2020-05-28,Plaquemines,Louisiana,22075,201,17 +2020-05-29,Plaquemines,Louisiana,22075,201,17 +2020-05-30,Plaquemines,Louisiana,22075,211,17 +2020-05-31,Plaquemines,Louisiana,22075,211,17 +2020-06-01,Plaquemines,Louisiana,22075,213,17 +2020-06-02,Plaquemines,Louisiana,22075,215,17 +2020-06-03,Plaquemines,Louisiana,22075,215,17 +2020-06-04,Plaquemines,Louisiana,22075,217,17 +2020-06-05,Plaquemines,Louisiana,22075,218,17 +2020-06-06,Plaquemines,Louisiana,22075,218,17 +2020-06-07,Plaquemines,Louisiana,22075,218,17 +2020-06-08,Plaquemines,Louisiana,22075,218,17 +2020-06-09,Plaquemines,Louisiana,22075,219,17 +2020-06-10,Plaquemines,Louisiana,22075,220,17 +2020-06-11,Plaquemines,Louisiana,22075,222,17 +2020-06-12,Plaquemines,Louisiana,22075,223,17 +2020-06-13,Plaquemines,Louisiana,22075,228,17 +2020-06-14,Plaquemines,Louisiana,22075,228,17 +2020-06-15,Plaquemines,Louisiana,22075,228,17 +2020-06-16,Plaquemines,Louisiana,22075,228,17 +2020-06-17,Plaquemines,Louisiana,22075,228,17 +2020-06-18,Plaquemines,Louisiana,22075,228,17 +2020-06-19,Plaquemines,Louisiana,22075,234,17 +2020-06-20,Plaquemines,Louisiana,22075,237,17 +2020-06-21,Plaquemines,Louisiana,22075,239,17 +2020-06-22,Plaquemines,Louisiana,22075,239,17 +2020-06-23,Plaquemines,Louisiana,22075,244,17 +2020-06-24,Plaquemines,Louisiana,22075,245,17 +2020-06-25,Plaquemines,Louisiana,22075,248,17 +2020-06-26,Plaquemines,Louisiana,22075,252,17 +2020-06-27,Plaquemines,Louisiana,22075,252,17 +2020-06-28,Plaquemines,Louisiana,22075,257,17 +2020-06-29,Plaquemines,Louisiana,22075,260,17 +2020-06-30,Plaquemines,Louisiana,22075,261,17 +2020-07-01,Plaquemines,Louisiana,22075,270,17 +2020-07-02,Plaquemines,Louisiana,22075,272,17 +2020-07-03,Plaquemines,Louisiana,22075,273,17 +2020-07-04,Plaquemines,Louisiana,22075,273,17 +2020-07-05,Plaquemines,Louisiana,22075,278,17 +2020-07-06,Plaquemines,Louisiana,22075,280,17 +2020-07-07,Plaquemines,Louisiana,22075,288,17 +2020-07-08,Plaquemines,Louisiana,22075,291,17 +2020-07-09,Plaquemines,Louisiana,22075,294,17 +2020-03-26,Pointe Coupee,Louisiana,22077,1,0 +2020-03-27,Pointe Coupee,Louisiana,22077,1,0 +2020-03-28,Pointe Coupee,Louisiana,22077,2,0 +2020-03-29,Pointe Coupee,Louisiana,22077,2,0 +2020-03-30,Pointe Coupee,Louisiana,22077,2,0 +2020-03-31,Pointe Coupee,Louisiana,22077,7,0 +2020-04-01,Pointe Coupee,Louisiana,22077,7,0 +2020-04-02,Pointe Coupee,Louisiana,22077,12,0 +2020-04-03,Pointe Coupee,Louisiana,22077,13,0 +2020-04-04,Pointe Coupee,Louisiana,22077,16,0 +2020-04-05,Pointe Coupee,Louisiana,22077,17,0 +2020-04-06,Pointe Coupee,Louisiana,22077,24,0 +2020-04-07,Pointe Coupee,Louisiana,22077,26,0 +2020-04-08,Pointe Coupee,Louisiana,22077,27,0 +2020-04-09,Pointe Coupee,Louisiana,22077,32,1 +2020-04-10,Pointe Coupee,Louisiana,22077,38,2 +2020-04-11,Pointe Coupee,Louisiana,22077,40,2 +2020-04-12,Pointe Coupee,Louisiana,22077,43,2 +2020-04-13,Pointe Coupee,Louisiana,22077,47,2 +2020-04-14,Pointe Coupee,Louisiana,22077,49,4 +2020-04-15,Pointe Coupee,Louisiana,22077,53,4 +2020-04-16,Pointe Coupee,Louisiana,22077,60,5 +2020-04-17,Pointe Coupee,Louisiana,22077,62,5 +2020-04-18,Pointe Coupee,Louisiana,22077,64,5 +2020-04-19,Pointe Coupee,Louisiana,22077,69,6 +2020-04-20,Pointe Coupee,Louisiana,22077,71,7 +2020-04-21,Pointe Coupee,Louisiana,22077,80,10 +2020-04-22,Pointe Coupee,Louisiana,22077,84,10 +2020-04-23,Pointe Coupee,Louisiana,22077,86,11 +2020-04-24,Pointe Coupee,Louisiana,22077,88,10 +2020-04-25,Pointe Coupee,Louisiana,22077,89,11 +2020-04-26,Pointe Coupee,Louisiana,22077,89,12 +2020-04-27,Pointe Coupee,Louisiana,22077,94,12 +2020-04-28,Pointe Coupee,Louisiana,22077,98,15 +2020-04-29,Pointe Coupee,Louisiana,22077,98,15 +2020-04-30,Pointe Coupee,Louisiana,22077,99,15 +2020-05-01,Pointe Coupee,Louisiana,22077,104,15 +2020-05-02,Pointe Coupee,Louisiana,22077,101,15 +2020-05-03,Pointe Coupee,Louisiana,22077,103,15 +2020-05-04,Pointe Coupee,Louisiana,22077,108,16 +2020-05-05,Pointe Coupee,Louisiana,22077,114,17 +2020-05-06,Pointe Coupee,Louisiana,22077,117,17 +2020-05-07,Pointe Coupee,Louisiana,22077,120,17 +2020-05-08,Pointe Coupee,Louisiana,22077,125,17 +2020-05-09,Pointe Coupee,Louisiana,22077,126,17 +2020-05-10,Pointe Coupee,Louisiana,22077,126,17 +2020-05-11,Pointe Coupee,Louisiana,22077,136,17 +2020-05-12,Pointe Coupee,Louisiana,22077,138,17 +2020-05-13,Pointe Coupee,Louisiana,22077,139,16 +2020-05-14,Pointe Coupee,Louisiana,22077,152,17 +2020-05-15,Pointe Coupee,Louisiana,22077,155,18 +2020-05-16,Pointe Coupee,Louisiana,22077,163,20 +2020-05-17,Pointe Coupee,Louisiana,22077,168,20 +2020-05-18,Pointe Coupee,Louisiana,22077,169,20 +2020-05-19,Pointe Coupee,Louisiana,22077,173,21 +2020-05-20,Pointe Coupee,Louisiana,22077,179,21 +2020-05-21,Pointe Coupee,Louisiana,22077,181,22 +2020-05-22,Pointe Coupee,Louisiana,22077,182,22 +2020-05-23,Pointe Coupee,Louisiana,22077,182,22 +2020-05-24,Pointe Coupee,Louisiana,22077,182,22 +2020-05-25,Pointe Coupee,Louisiana,22077,186,22 +2020-05-26,Pointe Coupee,Louisiana,22077,188,22 +2020-05-27,Pointe Coupee,Louisiana,22077,189,22 +2020-05-28,Pointe Coupee,Louisiana,22077,192,24 +2020-05-29,Pointe Coupee,Louisiana,22077,192,24 +2020-05-30,Pointe Coupee,Louisiana,22077,195,24 +2020-05-31,Pointe Coupee,Louisiana,22077,197,24 +2020-06-01,Pointe Coupee,Louisiana,22077,199,24 +2020-06-02,Pointe Coupee,Louisiana,22077,205,25 +2020-06-03,Pointe Coupee,Louisiana,22077,205,25 +2020-06-04,Pointe Coupee,Louisiana,22077,207,25 +2020-06-05,Pointe Coupee,Louisiana,22077,208,25 +2020-06-06,Pointe Coupee,Louisiana,22077,212,25 +2020-06-07,Pointe Coupee,Louisiana,22077,213,25 +2020-06-08,Pointe Coupee,Louisiana,22077,214,25 +2020-06-09,Pointe Coupee,Louisiana,22077,215,25 +2020-06-10,Pointe Coupee,Louisiana,22077,217,25 +2020-06-11,Pointe Coupee,Louisiana,22077,217,25 +2020-06-12,Pointe Coupee,Louisiana,22077,217,25 +2020-06-13,Pointe Coupee,Louisiana,22077,218,25 +2020-06-14,Pointe Coupee,Louisiana,22077,218,25 +2020-06-15,Pointe Coupee,Louisiana,22077,221,25 +2020-06-16,Pointe Coupee,Louisiana,22077,223,25 +2020-06-17,Pointe Coupee,Louisiana,22077,224,27 +2020-06-18,Pointe Coupee,Louisiana,22077,224,27 +2020-06-19,Pointe Coupee,Louisiana,22077,218,27 +2020-06-20,Pointe Coupee,Louisiana,22077,222,27 +2020-06-21,Pointe Coupee,Louisiana,22077,222,27 +2020-06-22,Pointe Coupee,Louisiana,22077,224,27 +2020-06-23,Pointe Coupee,Louisiana,22077,225,27 +2020-06-24,Pointe Coupee,Louisiana,22077,226,27 +2020-06-25,Pointe Coupee,Louisiana,22077,229,27 +2020-06-26,Pointe Coupee,Louisiana,22077,231,27 +2020-06-27,Pointe Coupee,Louisiana,22077,231,27 +2020-06-28,Pointe Coupee,Louisiana,22077,234,27 +2020-06-29,Pointe Coupee,Louisiana,22077,237,27 +2020-06-30,Pointe Coupee,Louisiana,22077,245,27 +2020-07-01,Pointe Coupee,Louisiana,22077,256,27 +2020-07-02,Pointe Coupee,Louisiana,22077,264,28 +2020-07-03,Pointe Coupee,Louisiana,22077,274,28 +2020-07-04,Pointe Coupee,Louisiana,22077,274,28 +2020-07-05,Pointe Coupee,Louisiana,22077,289,28 +2020-07-06,Pointe Coupee,Louisiana,22077,296,28 +2020-07-07,Pointe Coupee,Louisiana,22077,308,28 +2020-07-08,Pointe Coupee,Louisiana,22077,314,28 +2020-07-09,Pointe Coupee,Louisiana,22077,329,28 +2020-03-20,Rapides,Louisiana,22079,2,0 +2020-03-21,Rapides,Louisiana,22079,2,0 +2020-03-22,Rapides,Louisiana,22079,3,0 +2020-03-23,Rapides,Louisiana,22079,8,1 +2020-03-24,Rapides,Louisiana,22079,10,1 +2020-03-25,Rapides,Louisiana,22079,14,1 +2020-03-26,Rapides,Louisiana,22079,25,1 +2020-03-27,Rapides,Louisiana,22079,26,1 +2020-03-28,Rapides,Louisiana,22079,37,1 +2020-03-29,Rapides,Louisiana,22079,41,1 +2020-03-30,Rapides,Louisiana,22079,44,1 +2020-03-31,Rapides,Louisiana,22079,58,3 +2020-04-01,Rapides,Louisiana,22079,69,4 +2020-04-02,Rapides,Louisiana,22079,77,3 +2020-04-03,Rapides,Louisiana,22079,81,4 +2020-04-04,Rapides,Louisiana,22079,97,4 +2020-04-05,Rapides,Louisiana,22079,100,4 +2020-04-06,Rapides,Louisiana,22079,110,4 +2020-04-07,Rapides,Louisiana,22079,129,4 +2020-04-08,Rapides,Louisiana,22079,135,4 +2020-04-09,Rapides,Louisiana,22079,148,4 +2020-04-10,Rapides,Louisiana,22079,156,4 +2020-04-11,Rapides,Louisiana,22079,159,5 +2020-04-12,Rapides,Louisiana,22079,165,5 +2020-04-13,Rapides,Louisiana,22079,168,5 +2020-04-14,Rapides,Louisiana,22079,175,5 +2020-04-15,Rapides,Louisiana,22079,179,7 +2020-04-16,Rapides,Louisiana,22079,192,7 +2020-04-17,Rapides,Louisiana,22079,196,7 +2020-04-18,Rapides,Louisiana,22079,201,7 +2020-04-19,Rapides,Louisiana,22079,210,7 +2020-04-20,Rapides,Louisiana,22079,210,7 +2020-04-21,Rapides,Louisiana,22079,213,7 +2020-04-22,Rapides,Louisiana,22079,217,7 +2020-04-23,Rapides,Louisiana,22079,220,8 +2020-04-24,Rapides,Louisiana,22079,228,8 +2020-04-25,Rapides,Louisiana,22079,239,8 +2020-04-26,Rapides,Louisiana,22079,247,8 +2020-04-27,Rapides,Louisiana,22079,249,9 +2020-04-28,Rapides,Louisiana,22079,255,10 +2020-04-29,Rapides,Louisiana,22079,259,10 +2020-04-30,Rapides,Louisiana,22079,265,10 +2020-05-01,Rapides,Louisiana,22079,270,10 +2020-05-02,Rapides,Louisiana,22079,273,10 +2020-05-03,Rapides,Louisiana,22079,281,10 +2020-05-04,Rapides,Louisiana,22079,300,10 +2020-05-05,Rapides,Louisiana,22079,308,11 +2020-05-06,Rapides,Louisiana,22079,316,11 +2020-05-07,Rapides,Louisiana,22079,316,11 +2020-05-08,Rapides,Louisiana,22079,338,11 +2020-05-09,Rapides,Louisiana,22079,351,12 +2020-05-10,Rapides,Louisiana,22079,362,13 +2020-05-11,Rapides,Louisiana,22079,370,13 +2020-05-12,Rapides,Louisiana,22079,376,13 +2020-05-13,Rapides,Louisiana,22079,394,13 +2020-05-14,Rapides,Louisiana,22079,417,13 +2020-05-15,Rapides,Louisiana,22079,424,14 +2020-05-16,Rapides,Louisiana,22079,437,14 +2020-05-17,Rapides,Louisiana,22079,474,14 +2020-05-18,Rapides,Louisiana,22079,499,14 +2020-05-19,Rapides,Louisiana,22079,504,15 +2020-05-20,Rapides,Louisiana,22079,516,16 +2020-05-21,Rapides,Louisiana,22079,591,16 +2020-05-22,Rapides,Louisiana,22079,600,20 +2020-05-23,Rapides,Louisiana,22079,601,21 +2020-05-24,Rapides,Louisiana,22079,606,21 +2020-05-25,Rapides,Louisiana,22079,654,21 +2020-05-26,Rapides,Louisiana,22079,663,23 +2020-05-27,Rapides,Louisiana,22079,679,23 +2020-05-28,Rapides,Louisiana,22079,703,23 +2020-05-29,Rapides,Louisiana,22079,703,24 +2020-05-30,Rapides,Louisiana,22079,783,26 +2020-05-31,Rapides,Louisiana,22079,790,26 +2020-06-01,Rapides,Louisiana,22079,800,28 +2020-06-02,Rapides,Louisiana,22079,810,31 +2020-06-03,Rapides,Louisiana,22079,829,33 +2020-06-04,Rapides,Louisiana,22079,850,33 +2020-06-05,Rapides,Louisiana,22079,890,36 +2020-06-06,Rapides,Louisiana,22079,926,38 +2020-06-07,Rapides,Louisiana,22079,957,38 +2020-06-08,Rapides,Louisiana,22079,975,38 +2020-06-09,Rapides,Louisiana,22079,992,38 +2020-06-10,Rapides,Louisiana,22079,1007,41 +2020-06-11,Rapides,Louisiana,22079,1074,41 +2020-06-12,Rapides,Louisiana,22079,1098,41 +2020-06-13,Rapides,Louisiana,22079,1132,41 +2020-06-14,Rapides,Louisiana,22079,1145,41 +2020-06-15,Rapides,Louisiana,22079,1193,41 +2020-06-16,Rapides,Louisiana,22079,1209,45 +2020-06-17,Rapides,Louisiana,22079,1229,47 +2020-06-18,Rapides,Louisiana,22079,1229,47 +2020-06-19,Rapides,Louisiana,22079,1290,48 +2020-06-20,Rapides,Louisiana,22079,1312,50 +2020-06-21,Rapides,Louisiana,22079,1320,50 +2020-06-22,Rapides,Louisiana,22079,1323,51 +2020-06-23,Rapides,Louisiana,22079,1358,53 +2020-06-24,Rapides,Louisiana,22079,1408,55 +2020-06-25,Rapides,Louisiana,22079,1423,56 +2020-06-26,Rapides,Louisiana,22079,1453,57 +2020-06-27,Rapides,Louisiana,22079,1453,57 +2020-06-28,Rapides,Louisiana,22079,1498,57 +2020-06-29,Rapides,Louisiana,22079,1499,57 +2020-06-30,Rapides,Louisiana,22079,1536,59 +2020-07-01,Rapides,Louisiana,22079,1578,62 +2020-07-02,Rapides,Louisiana,22079,1597,65 +2020-07-03,Rapides,Louisiana,22079,1653,66 +2020-07-04,Rapides,Louisiana,22079,1653,66 +2020-07-05,Rapides,Louisiana,22079,1678,67 +2020-07-06,Rapides,Louisiana,22079,1689,68 +2020-07-07,Rapides,Louisiana,22079,1759,72 +2020-07-08,Rapides,Louisiana,22079,1823,75 +2020-07-09,Rapides,Louisiana,22079,1870,76 +2020-03-29,Red River,Louisiana,22081,1,0 +2020-03-30,Red River,Louisiana,22081,1,0 +2020-03-31,Red River,Louisiana,22081,1,0 +2020-04-01,Red River,Louisiana,22081,1,0 +2020-04-02,Red River,Louisiana,22081,1,0 +2020-04-03,Red River,Louisiana,22081,2,0 +2020-04-04,Red River,Louisiana,22081,2,0 +2020-04-05,Red River,Louisiana,22081,2,0 +2020-04-06,Red River,Louisiana,22081,2,0 +2020-04-07,Red River,Louisiana,22081,2,1 +2020-04-08,Red River,Louisiana,22081,3,1 +2020-04-09,Red River,Louisiana,22081,5,1 +2020-04-10,Red River,Louisiana,22081,7,1 +2020-04-11,Red River,Louisiana,22081,9,1 +2020-04-12,Red River,Louisiana,22081,11,2 +2020-04-13,Red River,Louisiana,22081,12,2 +2020-04-14,Red River,Louisiana,22081,13,2 +2020-04-15,Red River,Louisiana,22081,13,2 +2020-04-16,Red River,Louisiana,22081,15,3 +2020-04-17,Red River,Louisiana,22081,18,3 +2020-04-18,Red River,Louisiana,22081,19,3 +2020-04-19,Red River,Louisiana,22081,20,3 +2020-04-20,Red River,Louisiana,22081,21,4 +2020-04-21,Red River,Louisiana,22081,21,4 +2020-04-22,Red River,Louisiana,22081,22,4 +2020-04-23,Red River,Louisiana,22081,22,4 +2020-04-24,Red River,Louisiana,22081,22,4 +2020-04-25,Red River,Louisiana,22081,22,4 +2020-04-26,Red River,Louisiana,22081,22,4 +2020-04-27,Red River,Louisiana,22081,22,5 +2020-04-28,Red River,Louisiana,22081,23,5 +2020-04-29,Red River,Louisiana,22081,24,5 +2020-04-30,Red River,Louisiana,22081,25,5 +2020-05-01,Red River,Louisiana,22081,29,5 +2020-05-02,Red River,Louisiana,22081,32,5 +2020-05-03,Red River,Louisiana,22081,32,5 +2020-05-04,Red River,Louisiana,22081,33,5 +2020-05-05,Red River,Louisiana,22081,34,6 +2020-05-06,Red River,Louisiana,22081,34,6 +2020-05-07,Red River,Louisiana,22081,34,6 +2020-05-08,Red River,Louisiana,22081,34,6 +2020-05-09,Red River,Louisiana,22081,36,6 +2020-05-10,Red River,Louisiana,22081,36,6 +2020-05-11,Red River,Louisiana,22081,36,6 +2020-05-12,Red River,Louisiana,22081,36,6 +2020-05-13,Red River,Louisiana,22081,37,6 +2020-05-14,Red River,Louisiana,22081,38,6 +2020-05-15,Red River,Louisiana,22081,40,6 +2020-05-16,Red River,Louisiana,22081,42,6 +2020-05-17,Red River,Louisiana,22081,42,6 +2020-05-18,Red River,Louisiana,22081,43,6 +2020-05-19,Red River,Louisiana,22081,43,6 +2020-05-20,Red River,Louisiana,22081,43,6 +2020-05-21,Red River,Louisiana,22081,44,6 +2020-05-22,Red River,Louisiana,22081,46,6 +2020-05-23,Red River,Louisiana,22081,46,6 +2020-05-24,Red River,Louisiana,22081,47,6 +2020-05-25,Red River,Louisiana,22081,48,6 +2020-05-26,Red River,Louisiana,22081,48,6 +2020-05-27,Red River,Louisiana,22081,48,6 +2020-05-28,Red River,Louisiana,22081,49,7 +2020-05-29,Red River,Louisiana,22081,49,7 +2020-05-30,Red River,Louisiana,22081,50,7 +2020-05-31,Red River,Louisiana,22081,50,7 +2020-06-01,Red River,Louisiana,22081,50,7 +2020-06-02,Red River,Louisiana,22081,50,7 +2020-06-03,Red River,Louisiana,22081,50,7 +2020-06-04,Red River,Louisiana,22081,51,7 +2020-06-05,Red River,Louisiana,22081,51,7 +2020-06-06,Red River,Louisiana,22081,51,7 +2020-06-07,Red River,Louisiana,22081,51,7 +2020-06-08,Red River,Louisiana,22081,51,7 +2020-06-09,Red River,Louisiana,22081,52,7 +2020-06-10,Red River,Louisiana,22081,52,7 +2020-06-11,Red River,Louisiana,22081,52,7 +2020-06-12,Red River,Louisiana,22081,52,7 +2020-06-13,Red River,Louisiana,22081,52,7 +2020-06-14,Red River,Louisiana,22081,52,7 +2020-06-15,Red River,Louisiana,22081,53,7 +2020-06-16,Red River,Louisiana,22081,52,8 +2020-06-17,Red River,Louisiana,22081,52,8 +2020-06-18,Red River,Louisiana,22081,52,8 +2020-06-19,Red River,Louisiana,22081,54,8 +2020-06-20,Red River,Louisiana,22081,54,8 +2020-06-21,Red River,Louisiana,22081,54,8 +2020-06-22,Red River,Louisiana,22081,54,8 +2020-06-23,Red River,Louisiana,22081,53,8 +2020-06-24,Red River,Louisiana,22081,54,8 +2020-06-25,Red River,Louisiana,22081,54,8 +2020-06-26,Red River,Louisiana,22081,56,8 +2020-06-27,Red River,Louisiana,22081,56,8 +2020-06-28,Red River,Louisiana,22081,60,8 +2020-06-29,Red River,Louisiana,22081,60,8 +2020-06-30,Red River,Louisiana,22081,60,8 +2020-07-01,Red River,Louisiana,22081,62,8 +2020-07-02,Red River,Louisiana,22081,62,8 +2020-07-03,Red River,Louisiana,22081,62,8 +2020-07-04,Red River,Louisiana,22081,62,8 +2020-07-05,Red River,Louisiana,22081,64,8 +2020-07-06,Red River,Louisiana,22081,64,8 +2020-07-07,Red River,Louisiana,22081,65,9 +2020-07-08,Red River,Louisiana,22081,66,9 +2020-07-09,Red River,Louisiana,22081,69,9 +2020-03-23,Richland,Louisiana,22083,1,0 +2020-03-24,Richland,Louisiana,22083,1,0 +2020-03-25,Richland,Louisiana,22083,1,0 +2020-03-26,Richland,Louisiana,22083,1,0 +2020-03-27,Richland,Louisiana,22083,2,0 +2020-03-28,Richland,Louisiana,22083,2,0 +2020-03-29,Richland,Louisiana,22083,2,0 +2020-03-30,Richland,Louisiana,22083,2,0 +2020-03-31,Richland,Louisiana,22083,2,0 +2020-04-01,Richland,Louisiana,22083,3,0 +2020-04-02,Richland,Louisiana,22083,4,0 +2020-04-03,Richland,Louisiana,22083,4,0 +2020-04-04,Richland,Louisiana,22083,9,0 +2020-04-05,Richland,Louisiana,22083,10,0 +2020-04-06,Richland,Louisiana,22083,11,0 +2020-04-07,Richland,Louisiana,22083,13,0 +2020-04-08,Richland,Louisiana,22083,13,0 +2020-04-09,Richland,Louisiana,22083,16,0 +2020-04-10,Richland,Louisiana,22083,18,0 +2020-04-11,Richland,Louisiana,22083,19,0 +2020-04-12,Richland,Louisiana,22083,19,0 +2020-04-13,Richland,Louisiana,22083,20,0 +2020-04-14,Richland,Louisiana,22083,20,0 +2020-04-15,Richland,Louisiana,22083,21,0 +2020-04-16,Richland,Louisiana,22083,22,0 +2020-04-17,Richland,Louisiana,22083,27,0 +2020-04-18,Richland,Louisiana,22083,27,0 +2020-04-19,Richland,Louisiana,22083,33,0 +2020-04-20,Richland,Louisiana,22083,34,0 +2020-04-21,Richland,Louisiana,22083,38,0 +2020-04-22,Richland,Louisiana,22083,42,0 +2020-04-23,Richland,Louisiana,22083,45,0 +2020-04-24,Richland,Louisiana,22083,47,0 +2020-04-25,Richland,Louisiana,22083,48,0 +2020-04-26,Richland,Louisiana,22083,48,0 +2020-04-27,Richland,Louisiana,22083,52,0 +2020-04-28,Richland,Louisiana,22083,53,0 +2020-04-29,Richland,Louisiana,22083,56,0 +2020-04-30,Richland,Louisiana,22083,58,0 +2020-05-01,Richland,Louisiana,22083,66,0 +2020-05-02,Richland,Louisiana,22083,73,0 +2020-05-03,Richland,Louisiana,22083,74,0 +2020-05-04,Richland,Louisiana,22083,82,0 +2020-05-05,Richland,Louisiana,22083,84,1 +2020-05-06,Richland,Louisiana,22083,86,1 +2020-05-07,Richland,Louisiana,22083,91,1 +2020-05-08,Richland,Louisiana,22083,95,1 +2020-05-09,Richland,Louisiana,22083,99,1 +2020-05-10,Richland,Louisiana,22083,100,1 +2020-05-11,Richland,Louisiana,22083,103,1 +2020-05-12,Richland,Louisiana,22083,103,1 +2020-05-13,Richland,Louisiana,22083,104,1 +2020-05-14,Richland,Louisiana,22083,104,1 +2020-05-15,Richland,Louisiana,22083,106,1 +2020-05-16,Richland,Louisiana,22083,106,1 +2020-05-17,Richland,Louisiana,22083,106,1 +2020-05-18,Richland,Louisiana,22083,107,1 +2020-05-19,Richland,Louisiana,22083,108,2 +2020-05-20,Richland,Louisiana,22083,108,2 +2020-05-21,Richland,Louisiana,22083,113,2 +2020-05-22,Richland,Louisiana,22083,114,2 +2020-05-23,Richland,Louisiana,22083,114,3 +2020-05-24,Richland,Louisiana,22083,114,3 +2020-05-25,Richland,Louisiana,22083,119,3 +2020-05-26,Richland,Louisiana,22083,119,3 +2020-05-27,Richland,Louisiana,22083,124,3 +2020-05-28,Richland,Louisiana,22083,125,3 +2020-05-29,Richland,Louisiana,22083,125,3 +2020-05-30,Richland,Louisiana,22083,128,3 +2020-05-31,Richland,Louisiana,22083,135,3 +2020-06-01,Richland,Louisiana,22083,138,3 +2020-06-02,Richland,Louisiana,22083,139,3 +2020-06-03,Richland,Louisiana,22083,143,3 +2020-06-04,Richland,Louisiana,22083,148,3 +2020-06-05,Richland,Louisiana,22083,148,3 +2020-06-06,Richland,Louisiana,22083,149,3 +2020-06-07,Richland,Louisiana,22083,153,3 +2020-06-08,Richland,Louisiana,22083,156,3 +2020-06-09,Richland,Louisiana,22083,157,3 +2020-06-10,Richland,Louisiana,22083,157,3 +2020-06-11,Richland,Louisiana,22083,159,3 +2020-06-12,Richland,Louisiana,22083,160,3 +2020-06-13,Richland,Louisiana,22083,163,3 +2020-06-14,Richland,Louisiana,22083,163,3 +2020-06-15,Richland,Louisiana,22083,164,3 +2020-06-16,Richland,Louisiana,22083,164,3 +2020-06-17,Richland,Louisiana,22083,167,3 +2020-06-18,Richland,Louisiana,22083,167,3 +2020-06-19,Richland,Louisiana,22083,144,3 +2020-06-20,Richland,Louisiana,22083,148,3 +2020-06-21,Richland,Louisiana,22083,148,3 +2020-06-22,Richland,Louisiana,22083,150,3 +2020-06-23,Richland,Louisiana,22083,152,4 +2020-06-24,Richland,Louisiana,22083,155,4 +2020-06-25,Richland,Louisiana,22083,160,4 +2020-06-26,Richland,Louisiana,22083,168,4 +2020-06-27,Richland,Louisiana,22083,168,4 +2020-06-28,Richland,Louisiana,22083,175,4 +2020-06-29,Richland,Louisiana,22083,183,4 +2020-06-30,Richland,Louisiana,22083,188,4 +2020-07-01,Richland,Louisiana,22083,195,4 +2020-07-02,Richland,Louisiana,22083,202,4 +2020-07-03,Richland,Louisiana,22083,204,4 +2020-07-04,Richland,Louisiana,22083,204,4 +2020-07-05,Richland,Louisiana,22083,211,4 +2020-07-06,Richland,Louisiana,22083,215,5 +2020-07-07,Richland,Louisiana,22083,217,5 +2020-07-08,Richland,Louisiana,22083,242,5 +2020-07-09,Richland,Louisiana,22083,249,5 +2020-03-29,Sabine,Louisiana,22085,1,0 +2020-03-30,Sabine,Louisiana,22085,1,0 +2020-03-31,Sabine,Louisiana,22085,2,0 +2020-04-01,Sabine,Louisiana,22085,3,0 +2020-04-02,Sabine,Louisiana,22085,4,0 +2020-04-03,Sabine,Louisiana,22085,4,0 +2020-04-04,Sabine,Louisiana,22085,4,0 +2020-04-05,Sabine,Louisiana,22085,5,0 +2020-04-06,Sabine,Louisiana,22085,7,0 +2020-04-07,Sabine,Louisiana,22085,7,0 +2020-04-08,Sabine,Louisiana,22085,7,0 +2020-04-09,Sabine,Louisiana,22085,8,0 +2020-04-10,Sabine,Louisiana,22085,8,0 +2020-04-11,Sabine,Louisiana,22085,8,0 +2020-04-12,Sabine,Louisiana,22085,9,0 +2020-04-13,Sabine,Louisiana,22085,9,0 +2020-04-14,Sabine,Louisiana,22085,10,0 +2020-04-15,Sabine,Louisiana,22085,10,0 +2020-04-16,Sabine,Louisiana,22085,11,0 +2020-04-17,Sabine,Louisiana,22085,13,0 +2020-04-18,Sabine,Louisiana,22085,13,0 +2020-04-19,Sabine,Louisiana,22085,13,0 +2020-04-20,Sabine,Louisiana,22085,13,0 +2020-04-21,Sabine,Louisiana,22085,14,0 +2020-04-22,Sabine,Louisiana,22085,14,0 +2020-04-23,Sabine,Louisiana,22085,13,0 +2020-04-24,Sabine,Louisiana,22085,13,0 +2020-04-25,Sabine,Louisiana,22085,13,0 +2020-04-26,Sabine,Louisiana,22085,13,0 +2020-04-27,Sabine,Louisiana,22085,13,0 +2020-04-28,Sabine,Louisiana,22085,16,1 +2020-04-29,Sabine,Louisiana,22085,16,1 +2020-04-30,Sabine,Louisiana,22085,17,1 +2020-05-01,Sabine,Louisiana,22085,17,1 +2020-05-02,Sabine,Louisiana,22085,17,1 +2020-05-03,Sabine,Louisiana,22085,17,1 +2020-05-04,Sabine,Louisiana,22085,17,1 +2020-05-05,Sabine,Louisiana,22085,17,1 +2020-05-06,Sabine,Louisiana,22085,17,1 +2020-05-07,Sabine,Louisiana,22085,17,1 +2020-05-08,Sabine,Louisiana,22085,17,1 +2020-05-09,Sabine,Louisiana,22085,17,1 +2020-05-10,Sabine,Louisiana,22085,17,1 +2020-05-11,Sabine,Louisiana,22085,19,1 +2020-05-12,Sabine,Louisiana,22085,19,1 +2020-05-13,Sabine,Louisiana,22085,28,0 +2020-05-14,Sabine,Louisiana,22085,29,0 +2020-05-15,Sabine,Louisiana,22085,29,0 +2020-05-16,Sabine,Louisiana,22085,29,0 +2020-05-17,Sabine,Louisiana,22085,29,0 +2020-05-18,Sabine,Louisiana,22085,29,0 +2020-05-19,Sabine,Louisiana,22085,30,0 +2020-05-20,Sabine,Louisiana,22085,31,0 +2020-05-21,Sabine,Louisiana,22085,39,0 +2020-05-22,Sabine,Louisiana,22085,39,0 +2020-05-23,Sabine,Louisiana,22085,40,0 +2020-05-24,Sabine,Louisiana,22085,40,0 +2020-05-25,Sabine,Louisiana,22085,40,0 +2020-05-26,Sabine,Louisiana,22085,40,0 +2020-05-27,Sabine,Louisiana,22085,41,0 +2020-05-28,Sabine,Louisiana,22085,41,0 +2020-05-29,Sabine,Louisiana,22085,41,0 +2020-05-30,Sabine,Louisiana,22085,46,0 +2020-05-31,Sabine,Louisiana,22085,46,0 +2020-06-01,Sabine,Louisiana,22085,47,0 +2020-06-02,Sabine,Louisiana,22085,47,0 +2020-06-03,Sabine,Louisiana,22085,49,0 +2020-06-04,Sabine,Louisiana,22085,50,0 +2020-06-05,Sabine,Louisiana,22085,50,0 +2020-06-06,Sabine,Louisiana,22085,51,0 +2020-06-07,Sabine,Louisiana,22085,51,0 +2020-06-08,Sabine,Louisiana,22085,51,0 +2020-06-09,Sabine,Louisiana,22085,52,0 +2020-06-10,Sabine,Louisiana,22085,53,0 +2020-06-11,Sabine,Louisiana,22085,53,0 +2020-06-12,Sabine,Louisiana,22085,53,0 +2020-06-13,Sabine,Louisiana,22085,59,1 +2020-06-14,Sabine,Louisiana,22085,59,1 +2020-06-15,Sabine,Louisiana,22085,59,1 +2020-06-16,Sabine,Louisiana,22085,62,1 +2020-06-17,Sabine,Louisiana,22085,63,1 +2020-06-18,Sabine,Louisiana,22085,63,1 +2020-06-19,Sabine,Louisiana,22085,59,1 +2020-06-20,Sabine,Louisiana,22085,60,1 +2020-06-21,Sabine,Louisiana,22085,61,1 +2020-06-22,Sabine,Louisiana,22085,61,1 +2020-06-23,Sabine,Louisiana,22085,66,1 +2020-06-24,Sabine,Louisiana,22085,66,1 +2020-06-25,Sabine,Louisiana,22085,67,1 +2020-06-26,Sabine,Louisiana,22085,76,1 +2020-06-27,Sabine,Louisiana,22085,76,1 +2020-06-28,Sabine,Louisiana,22085,77,1 +2020-06-29,Sabine,Louisiana,22085,77,1 +2020-06-30,Sabine,Louisiana,22085,82,1 +2020-07-01,Sabine,Louisiana,22085,89,1 +2020-07-02,Sabine,Louisiana,22085,90,1 +2020-07-03,Sabine,Louisiana,22085,94,1 +2020-07-04,Sabine,Louisiana,22085,94,1 +2020-07-05,Sabine,Louisiana,22085,98,1 +2020-07-06,Sabine,Louisiana,22085,99,1 +2020-07-07,Sabine,Louisiana,22085,120,1 +2020-07-08,Sabine,Louisiana,22085,130,1 +2020-07-09,Sabine,Louisiana,22085,157,1 +2020-03-15,St. Bernard,Louisiana,22087,1,0 +2020-03-16,St. Bernard,Louisiana,22087,2,0 +2020-03-17,St. Bernard,Louisiana,22087,2,0 +2020-03-18,St. Bernard,Louisiana,22087,3,0 +2020-03-19,St. Bernard,Louisiana,22087,4,0 +2020-03-20,St. Bernard,Louisiana,22087,5,0 +2020-03-21,St. Bernard,Louisiana,22087,12,0 +2020-03-22,St. Bernard,Louisiana,22087,13,0 +2020-03-23,St. Bernard,Louisiana,22087,15,0 +2020-03-24,St. Bernard,Louisiana,22087,19,0 +2020-03-25,St. Bernard,Louisiana,22087,23,1 +2020-03-26,St. Bernard,Louisiana,22087,28,1 +2020-03-27,St. Bernard,Louisiana,22087,31,1 +2020-03-28,St. Bernard,Louisiana,22087,43,2 +2020-03-29,St. Bernard,Louisiana,22087,45,2 +2020-03-30,St. Bernard,Louisiana,22087,53,2 +2020-03-31,St. Bernard,Louisiana,22087,71,2 +2020-04-01,St. Bernard,Louisiana,22087,94,3 +2020-04-02,St. Bernard,Louisiana,22087,181,5 +2020-04-03,St. Bernard,Louisiana,22087,196,7 +2020-04-04,St. Bernard,Louisiana,22087,239,8 +2020-04-05,St. Bernard,Louisiana,22087,242,8 +2020-04-06,St. Bernard,Louisiana,22087,267,8 +2020-04-07,St. Bernard,Louisiana,22087,289,10 +2020-04-08,St. Bernard,Louisiana,22087,304,10 +2020-04-09,St. Bernard,Louisiana,22087,325,10 +2020-04-10,St. Bernard,Louisiana,22087,343,10 +2020-04-11,St. Bernard,Louisiana,22087,358,10 +2020-04-12,St. Bernard,Louisiana,22087,361,10 +2020-04-13,St. Bernard,Louisiana,22087,369,8 +2020-04-14,St. Bernard,Louisiana,22087,377,8 +2020-04-15,St. Bernard,Louisiana,22087,383,10 +2020-04-16,St. Bernard,Louisiana,22087,388,12 +2020-04-17,St. Bernard,Louisiana,22087,404,11 +2020-04-18,St. Bernard,Louisiana,22087,409,11 +2020-04-19,St. Bernard,Louisiana,22087,411,12 +2020-04-20,St. Bernard,Louisiana,22087,423,12 +2020-04-21,St. Bernard,Louisiana,22087,428,12 +2020-04-22,St. Bernard,Louisiana,22087,430,13 +2020-04-23,St. Bernard,Louisiana,22087,435,15 +2020-04-24,St. Bernard,Louisiana,22087,440,15 +2020-04-25,St. Bernard,Louisiana,22087,443,15 +2020-04-26,St. Bernard,Louisiana,22087,446,15 +2020-04-27,St. Bernard,Louisiana,22087,449,15 +2020-04-28,St. Bernard,Louisiana,22087,452,18 +2020-04-29,St. Bernard,Louisiana,22087,461,19 +2020-04-30,St. Bernard,Louisiana,22087,464,20 +2020-05-01,St. Bernard,Louisiana,22087,469,20 +2020-05-02,St. Bernard,Louisiana,22087,474,20 +2020-05-03,St. Bernard,Louisiana,22087,475,20 +2020-05-04,St. Bernard,Louisiana,22087,480,20 +2020-05-05,St. Bernard,Louisiana,22087,502,20 +2020-05-06,St. Bernard,Louisiana,22087,505,20 +2020-05-07,St. Bernard,Louisiana,22087,508,20 +2020-05-08,St. Bernard,Louisiana,22087,508,20 +2020-05-09,St. Bernard,Louisiana,22087,512,20 +2020-05-10,St. Bernard,Louisiana,22087,513,20 +2020-05-11,St. Bernard,Louisiana,22087,514,20 +2020-05-12,St. Bernard,Louisiana,22087,515,19 +2020-05-13,St. Bernard,Louisiana,22087,515,18 +2020-05-14,St. Bernard,Louisiana,22087,516,18 +2020-05-15,St. Bernard,Louisiana,22087,517,18 +2020-05-16,St. Bernard,Louisiana,22087,511,18 +2020-05-17,St. Bernard,Louisiana,22087,512,18 +2020-05-18,St. Bernard,Louisiana,22087,513,19 +2020-05-19,St. Bernard,Louisiana,22087,516,20 +2020-05-20,St. Bernard,Louisiana,22087,518,21 +2020-05-21,St. Bernard,Louisiana,22087,521,21 +2020-05-22,St. Bernard,Louisiana,22087,521,21 +2020-05-23,St. Bernard,Louisiana,22087,521,21 +2020-05-24,St. Bernard,Louisiana,22087,521,21 +2020-05-25,St. Bernard,Louisiana,22087,529,21 +2020-05-26,St. Bernard,Louisiana,22087,529,22 +2020-05-27,St. Bernard,Louisiana,22087,531,22 +2020-05-28,St. Bernard,Louisiana,22087,534,22 +2020-05-29,St. Bernard,Louisiana,22087,534,22 +2020-05-30,St. Bernard,Louisiana,22087,536,22 +2020-05-31,St. Bernard,Louisiana,22087,536,22 +2020-06-01,St. Bernard,Louisiana,22087,539,22 +2020-06-02,St. Bernard,Louisiana,22087,544,22 +2020-06-03,St. Bernard,Louisiana,22087,545,22 +2020-06-04,St. Bernard,Louisiana,22087,546,22 +2020-06-05,St. Bernard,Louisiana,22087,548,22 +2020-06-06,St. Bernard,Louisiana,22087,549,23 +2020-06-07,St. Bernard,Louisiana,22087,552,23 +2020-06-08,St. Bernard,Louisiana,22087,555,23 +2020-06-09,St. Bernard,Louisiana,22087,555,23 +2020-06-10,St. Bernard,Louisiana,22087,558,23 +2020-06-11,St. Bernard,Louisiana,22087,559,23 +2020-06-12,St. Bernard,Louisiana,22087,562,23 +2020-06-13,St. Bernard,Louisiana,22087,568,23 +2020-06-14,St. Bernard,Louisiana,22087,569,23 +2020-06-15,St. Bernard,Louisiana,22087,571,23 +2020-06-16,St. Bernard,Louisiana,22087,575,23 +2020-06-17,St. Bernard,Louisiana,22087,580,23 +2020-06-18,St. Bernard,Louisiana,22087,580,23 +2020-06-19,St. Bernard,Louisiana,22087,598,23 +2020-06-20,St. Bernard,Louisiana,22087,598,23 +2020-06-21,St. Bernard,Louisiana,22087,601,23 +2020-06-22,St. Bernard,Louisiana,22087,601,23 +2020-06-23,St. Bernard,Louisiana,22087,599,23 +2020-06-24,St. Bernard,Louisiana,22087,601,23 +2020-06-25,St. Bernard,Louisiana,22087,602,23 +2020-06-26,St. Bernard,Louisiana,22087,605,23 +2020-06-27,St. Bernard,Louisiana,22087,605,23 +2020-06-28,St. Bernard,Louisiana,22087,607,23 +2020-06-29,St. Bernard,Louisiana,22087,611,23 +2020-06-30,St. Bernard,Louisiana,22087,617,23 +2020-07-01,St. Bernard,Louisiana,22087,621,23 +2020-07-02,St. Bernard,Louisiana,22087,629,23 +2020-07-03,St. Bernard,Louisiana,22087,641,23 +2020-07-04,St. Bernard,Louisiana,22087,641,23 +2020-07-05,St. Bernard,Louisiana,22087,646,23 +2020-07-06,St. Bernard,Louisiana,22087,650,23 +2020-07-07,St. Bernard,Louisiana,22087,659,23 +2020-07-08,St. Bernard,Louisiana,22087,668,23 +2020-07-09,St. Bernard,Louisiana,22087,678,23 +2020-03-13,St. Charles,Louisiana,22089,1,0 +2020-03-14,St. Charles,Louisiana,22089,2,0 +2020-03-15,St. Charles,Louisiana,22089,2,0 +2020-03-16,St. Charles,Louisiana,22089,3,0 +2020-03-17,St. Charles,Louisiana,22089,3,0 +2020-03-18,St. Charles,Louisiana,22089,3,0 +2020-03-19,St. Charles,Louisiana,22089,4,0 +2020-03-20,St. Charles,Louisiana,22089,7,0 +2020-03-21,St. Charles,Louisiana,22089,7,0 +2020-03-22,St. Charles,Louisiana,22089,8,0 +2020-03-23,St. Charles,Louisiana,22089,15,0 +2020-03-24,St. Charles,Louisiana,22089,15,0 +2020-03-25,St. Charles,Louisiana,22089,17,1 +2020-03-26,St. Charles,Louisiana,22089,22,2 +2020-03-27,St. Charles,Louisiana,22089,23,2 +2020-03-28,St. Charles,Louisiana,22089,30,2 +2020-03-29,St. Charles,Louisiana,22089,31,2 +2020-03-30,St. Charles,Louisiana,22089,36,3 +2020-03-31,St. Charles,Louisiana,22089,71,6 +2020-04-01,St. Charles,Louisiana,22089,82,7 +2020-04-02,St. Charles,Louisiana,22089,180,8 +2020-04-03,St. Charles,Louisiana,22089,210,11 +2020-04-04,St. Charles,Louisiana,22089,252,12 +2020-04-05,St. Charles,Louisiana,22089,260,13 +2020-04-06,St. Charles,Louisiana,22089,285,15 +2020-04-07,St. Charles,Louisiana,22089,310,19 +2020-04-08,St. Charles,Louisiana,22089,328,19 +2020-04-09,St. Charles,Louisiana,22089,362,22 +2020-04-10,St. Charles,Louisiana,22089,376,23 +2020-04-11,St. Charles,Louisiana,22089,401,24 +2020-04-12,St. Charles,Louisiana,22089,404,25 +2020-04-13,St. Charles,Louisiana,22089,410,23 +2020-04-14,St. Charles,Louisiana,22089,460,24 +2020-04-15,St. Charles,Louisiana,22089,476,26 +2020-04-16,St. Charles,Louisiana,22089,486,26 +2020-04-17,St. Charles,Louisiana,22089,471,26 +2020-04-18,St. Charles,Louisiana,22089,487,27 +2020-04-19,St. Charles,Louisiana,22089,488,28 +2020-04-20,St. Charles,Louisiana,22089,508,28 +2020-04-21,St. Charles,Louisiana,22089,516,29 +2020-04-22,St. Charles,Louisiana,22089,522,31 +2020-04-23,St. Charles,Louisiana,22089,529,33 +2020-04-24,St. Charles,Louisiana,22089,536,34 +2020-04-25,St. Charles,Louisiana,22089,540,35 +2020-04-26,St. Charles,Louisiana,22089,542,36 +2020-04-27,St. Charles,Louisiana,22089,549,36 +2020-04-28,St. Charles,Louisiana,22089,554,37 +2020-04-29,St. Charles,Louisiana,22089,563,37 +2020-04-30,St. Charles,Louisiana,22089,570,38 +2020-05-01,St. Charles,Louisiana,22089,573,38 +2020-05-02,St. Charles,Louisiana,22089,577,39 +2020-05-03,St. Charles,Louisiana,22089,582,40 +2020-05-04,St. Charles,Louisiana,22089,584,41 +2020-05-05,St. Charles,Louisiana,22089,589,41 +2020-05-06,St. Charles,Louisiana,22089,590,43 +2020-05-07,St. Charles,Louisiana,22089,594,43 +2020-05-08,St. Charles,Louisiana,22089,593,43 +2020-05-09,St. Charles,Louisiana,22089,593,43 +2020-05-10,St. Charles,Louisiana,22089,594,43 +2020-05-11,St. Charles,Louisiana,22089,595,43 +2020-05-12,St. Charles,Louisiana,22089,596,43 +2020-05-13,St. Charles,Louisiana,22089,600,43 +2020-05-14,St. Charles,Louisiana,22089,602,42 +2020-05-15,St. Charles,Louisiana,22089,606,41 +2020-05-16,St. Charles,Louisiana,22089,613,41 +2020-05-17,St. Charles,Louisiana,22089,613,42 +2020-05-18,St. Charles,Louisiana,22089,615,42 +2020-05-19,St. Charles,Louisiana,22089,615,42 +2020-05-20,St. Charles,Louisiana,22089,615,42 +2020-05-21,St. Charles,Louisiana,22089,618,43 +2020-05-22,St. Charles,Louisiana,22089,622,43 +2020-05-23,St. Charles,Louisiana,22089,622,43 +2020-05-24,St. Charles,Louisiana,22089,623,43 +2020-05-25,St. Charles,Louisiana,22089,625,43 +2020-05-26,St. Charles,Louisiana,22089,625,44 +2020-05-27,St. Charles,Louisiana,22089,631,44 +2020-05-28,St. Charles,Louisiana,22089,633,44 +2020-05-29,St. Charles,Louisiana,22089,633,44 +2020-05-30,St. Charles,Louisiana,22089,637,44 +2020-05-31,St. Charles,Louisiana,22089,638,44 +2020-06-01,St. Charles,Louisiana,22089,642,44 +2020-06-02,St. Charles,Louisiana,22089,645,45 +2020-06-03,St. Charles,Louisiana,22089,647,45 +2020-06-04,St. Charles,Louisiana,22089,647,45 +2020-06-05,St. Charles,Louisiana,22089,647,45 +2020-06-06,St. Charles,Louisiana,22089,649,45 +2020-06-07,St. Charles,Louisiana,22089,649,45 +2020-06-08,St. Charles,Louisiana,22089,649,45 +2020-06-09,St. Charles,Louisiana,22089,652,45 +2020-06-10,St. Charles,Louisiana,22089,653,45 +2020-06-11,St. Charles,Louisiana,22089,654,46 +2020-06-12,St. Charles,Louisiana,22089,655,46 +2020-06-13,St. Charles,Louisiana,22089,656,46 +2020-06-14,St. Charles,Louisiana,22089,660,46 +2020-06-15,St. Charles,Louisiana,22089,661,46 +2020-06-16,St. Charles,Louisiana,22089,665,46 +2020-06-17,St. Charles,Louisiana,22089,667,46 +2020-06-18,St. Charles,Louisiana,22089,667,46 +2020-06-19,St. Charles,Louisiana,22089,685,46 +2020-06-20,St. Charles,Louisiana,22089,688,46 +2020-06-21,St. Charles,Louisiana,22089,689,46 +2020-06-22,St. Charles,Louisiana,22089,691,46 +2020-06-23,St. Charles,Louisiana,22089,697,46 +2020-06-24,St. Charles,Louisiana,22089,699,46 +2020-06-25,St. Charles,Louisiana,22089,713,48 +2020-06-26,St. Charles,Louisiana,22089,726,49 +2020-06-27,St. Charles,Louisiana,22089,726,49 +2020-06-28,St. Charles,Louisiana,22089,736,49 +2020-06-29,St. Charles,Louisiana,22089,741,49 +2020-06-30,St. Charles,Louisiana,22089,759,49 +2020-07-01,St. Charles,Louisiana,22089,778,49 +2020-07-02,St. Charles,Louisiana,22089,780,49 +2020-07-03,St. Charles,Louisiana,22089,789,49 +2020-07-04,St. Charles,Louisiana,22089,789,49 +2020-07-05,St. Charles,Louisiana,22089,796,49 +2020-07-06,St. Charles,Louisiana,22089,802,49 +2020-07-07,St. Charles,Louisiana,22089,816,49 +2020-07-08,St. Charles,Louisiana,22089,828,49 +2020-07-09,St. Charles,Louisiana,22089,834,49 +2020-03-31,St. Helena,Louisiana,22091,1,0 +2020-04-01,St. Helena,Louisiana,22091,1,0 +2020-04-02,St. Helena,Louisiana,22091,1,0 +2020-04-03,St. Helena,Louisiana,22091,1,0 +2020-04-04,St. Helena,Louisiana,22091,4,0 +2020-04-05,St. Helena,Louisiana,22091,5,0 +2020-04-06,St. Helena,Louisiana,22091,8,0 +2020-04-07,St. Helena,Louisiana,22091,10,0 +2020-04-08,St. Helena,Louisiana,22091,10,0 +2020-04-09,St. Helena,Louisiana,22091,11,0 +2020-04-10,St. Helena,Louisiana,22091,11,0 +2020-04-11,St. Helena,Louisiana,22091,13,0 +2020-04-12,St. Helena,Louisiana,22091,13,0 +2020-04-13,St. Helena,Louisiana,22091,14,0 +2020-04-14,St. Helena,Louisiana,22091,14,0 +2020-04-15,St. Helena,Louisiana,22091,14,0 +2020-04-16,St. Helena,Louisiana,22091,17,1 +2020-04-17,St. Helena,Louisiana,22091,18,1 +2020-04-18,St. Helena,Louisiana,22091,19,1 +2020-04-19,St. Helena,Louisiana,22091,19,1 +2020-04-20,St. Helena,Louisiana,22091,20,1 +2020-04-21,St. Helena,Louisiana,22091,21,1 +2020-04-22,St. Helena,Louisiana,22091,22,1 +2020-04-23,St. Helena,Louisiana,22091,23,1 +2020-04-24,St. Helena,Louisiana,22091,23,1 +2020-04-25,St. Helena,Louisiana,22091,27,1 +2020-04-26,St. Helena,Louisiana,22091,27,1 +2020-04-27,St. Helena,Louisiana,22091,27,1 +2020-04-28,St. Helena,Louisiana,22091,28,1 +2020-04-29,St. Helena,Louisiana,22091,28,1 +2020-04-30,St. Helena,Louisiana,22091,28,1 +2020-05-01,St. Helena,Louisiana,22091,28,1 +2020-05-02,St. Helena,Louisiana,22091,30,1 +2020-05-03,St. Helena,Louisiana,22091,30,1 +2020-05-04,St. Helena,Louisiana,22091,31,1 +2020-05-05,St. Helena,Louisiana,22091,32,1 +2020-05-06,St. Helena,Louisiana,22091,32,1 +2020-05-07,St. Helena,Louisiana,22091,32,1 +2020-05-08,St. Helena,Louisiana,22091,32,1 +2020-05-09,St. Helena,Louisiana,22091,35,1 +2020-05-10,St. Helena,Louisiana,22091,35,1 +2020-05-11,St. Helena,Louisiana,22091,35,1 +2020-05-12,St. Helena,Louisiana,22091,38,1 +2020-05-13,St. Helena,Louisiana,22091,38,1 +2020-05-14,St. Helena,Louisiana,22091,38,1 +2020-05-15,St. Helena,Louisiana,22091,40,1 +2020-05-16,St. Helena,Louisiana,22091,41,1 +2020-05-17,St. Helena,Louisiana,22091,41,1 +2020-05-18,St. Helena,Louisiana,22091,41,1 +2020-05-19,St. Helena,Louisiana,22091,41,1 +2020-05-20,St. Helena,Louisiana,22091,42,1 +2020-05-21,St. Helena,Louisiana,22091,43,1 +2020-05-22,St. Helena,Louisiana,22091,44,1 +2020-05-23,St. Helena,Louisiana,22091,44,1 +2020-05-24,St. Helena,Louisiana,22091,44,1 +2020-05-25,St. Helena,Louisiana,22091,49,1 +2020-05-26,St. Helena,Louisiana,22091,51,1 +2020-05-27,St. Helena,Louisiana,22091,51,1 +2020-05-28,St. Helena,Louisiana,22091,51,1 +2020-05-29,St. Helena,Louisiana,22091,51,1 +2020-05-30,St. Helena,Louisiana,22091,51,1 +2020-05-31,St. Helena,Louisiana,22091,51,1 +2020-06-01,St. Helena,Louisiana,22091,51,1 +2020-06-02,St. Helena,Louisiana,22091,51,1 +2020-06-03,St. Helena,Louisiana,22091,51,1 +2020-06-04,St. Helena,Louisiana,22091,52,1 +2020-06-05,St. Helena,Louisiana,22091,53,1 +2020-06-06,St. Helena,Louisiana,22091,55,1 +2020-06-07,St. Helena,Louisiana,22091,55,1 +2020-06-08,St. Helena,Louisiana,22091,55,1 +2020-06-09,St. Helena,Louisiana,22091,55,1 +2020-06-10,St. Helena,Louisiana,22091,56,1 +2020-06-11,St. Helena,Louisiana,22091,56,1 +2020-06-12,St. Helena,Louisiana,22091,56,1 +2020-06-13,St. Helena,Louisiana,22091,58,1 +2020-06-14,St. Helena,Louisiana,22091,58,1 +2020-06-15,St. Helena,Louisiana,22091,58,1 +2020-06-16,St. Helena,Louisiana,22091,60,1 +2020-06-17,St. Helena,Louisiana,22091,60,1 +2020-06-18,St. Helena,Louisiana,22091,60,1 +2020-06-19,St. Helena,Louisiana,22091,85,1 +2020-06-20,St. Helena,Louisiana,22091,86,1 +2020-06-21,St. Helena,Louisiana,22091,86,1 +2020-06-22,St. Helena,Louisiana,22091,86,1 +2020-06-23,St. Helena,Louisiana,22091,88,1 +2020-06-24,St. Helena,Louisiana,22091,88,1 +2020-06-25,St. Helena,Louisiana,22091,88,1 +2020-06-26,St. Helena,Louisiana,22091,89,1 +2020-06-27,St. Helena,Louisiana,22091,89,1 +2020-06-28,St. Helena,Louisiana,22091,89,1 +2020-06-29,St. Helena,Louisiana,22091,90,1 +2020-06-30,St. Helena,Louisiana,22091,97,1 +2020-07-01,St. Helena,Louisiana,22091,99,1 +2020-07-02,St. Helena,Louisiana,22091,103,1 +2020-07-03,St. Helena,Louisiana,22091,103,1 +2020-07-04,St. Helena,Louisiana,22091,103,1 +2020-07-05,St. Helena,Louisiana,22091,103,1 +2020-07-06,St. Helena,Louisiana,22091,104,1 +2020-07-07,St. Helena,Louisiana,22091,113,1 +2020-07-08,St. Helena,Louisiana,22091,114,1 +2020-07-09,St. Helena,Louisiana,22091,116,1 +2020-03-19,St. James,Louisiana,22093,1,1 +2020-03-20,St. James,Louisiana,22093,1,1 +2020-03-21,St. James,Louisiana,22093,1,1 +2020-03-22,St. James,Louisiana,22093,1,1 +2020-03-23,St. James,Louisiana,22093,8,1 +2020-03-24,St. James,Louisiana,22093,9,1 +2020-03-25,St. James,Louisiana,22093,14,1 +2020-03-26,St. James,Louisiana,22093,29,1 +2020-03-27,St. James,Louisiana,22093,40,3 +2020-03-28,St. James,Louisiana,22093,48,3 +2020-03-29,St. James,Louisiana,22093,55,3 +2020-03-30,St. James,Louisiana,22093,65,3 +2020-03-31,St. James,Louisiana,22093,77,4 +2020-04-01,St. James,Louisiana,22093,86,4 +2020-04-02,St. James,Louisiana,22093,110,4 +2020-04-03,St. James,Louisiana,22093,116,4 +2020-04-04,St. James,Louisiana,22093,150,6 +2020-04-05,St. James,Louisiana,22093,155,6 +2020-04-06,St. James,Louisiana,22093,167,6 +2020-04-07,St. James,Louisiana,22093,176,6 +2020-04-08,St. James,Louisiana,22093,181,7 +2020-04-09,St. James,Louisiana,22093,191,7 +2020-04-10,St. James,Louisiana,22093,194,9 +2020-04-11,St. James,Louisiana,22093,197,9 +2020-04-12,St. James,Louisiana,22093,204,10 +2020-04-13,St. James,Louisiana,22093,207,11 +2020-04-14,St. James,Louisiana,22093,208,13 +2020-04-15,St. James,Louisiana,22093,210,13 +2020-04-16,St. James,Louisiana,22093,214,14 +2020-04-17,St. James,Louisiana,22093,216,14 +2020-04-18,St. James,Louisiana,22093,217,14 +2020-04-19,St. James,Louisiana,22093,218,15 +2020-04-20,St. James,Louisiana,22093,222,15 +2020-04-21,St. James,Louisiana,22093,228,16 +2020-04-22,St. James,Louisiana,22093,231,18 +2020-04-23,St. James,Louisiana,22093,235,17 +2020-04-24,St. James,Louisiana,22093,237,19 +2020-04-25,St. James,Louisiana,22093,237,18 +2020-04-26,St. James,Louisiana,22093,239,18 +2020-04-27,St. James,Louisiana,22093,239,18 +2020-04-28,St. James,Louisiana,22093,240,19 +2020-04-29,St. James,Louisiana,22093,243,19 +2020-04-30,St. James,Louisiana,22093,246,19 +2020-05-01,St. James,Louisiana,22093,247,19 +2020-05-02,St. James,Louisiana,22093,247,19 +2020-05-03,St. James,Louisiana,22093,250,20 +2020-05-04,St. James,Louisiana,22093,253,20 +2020-05-05,St. James,Louisiana,22093,254,20 +2020-05-06,St. James,Louisiana,22093,256,20 +2020-05-07,St. James,Louisiana,22093,256,20 +2020-05-08,St. James,Louisiana,22093,257,20 +2020-05-09,St. James,Louisiana,22093,257,20 +2020-05-10,St. James,Louisiana,22093,257,20 +2020-05-11,St. James,Louisiana,22093,256,20 +2020-05-12,St. James,Louisiana,22093,256,20 +2020-05-13,St. James,Louisiana,22093,268,22 +2020-05-14,St. James,Louisiana,22093,284,22 +2020-05-15,St. James,Louisiana,22093,284,23 +2020-05-16,St. James,Louisiana,22093,282,23 +2020-05-17,St. James,Louisiana,22093,283,23 +2020-05-18,St. James,Louisiana,22093,284,23 +2020-05-19,St. James,Louisiana,22093,284,23 +2020-05-20,St. James,Louisiana,22093,284,23 +2020-05-21,St. James,Louisiana,22093,289,24 +2020-05-22,St. James,Louisiana,22093,289,25 +2020-05-23,St. James,Louisiana,22093,289,25 +2020-05-24,St. James,Louisiana,22093,289,25 +2020-05-25,St. James,Louisiana,22093,292,25 +2020-05-26,St. James,Louisiana,22093,292,25 +2020-05-27,St. James,Louisiana,22093,293,25 +2020-05-28,St. James,Louisiana,22093,294,25 +2020-05-29,St. James,Louisiana,22093,294,25 +2020-05-30,St. James,Louisiana,22093,294,25 +2020-05-31,St. James,Louisiana,22093,294,25 +2020-06-01,St. James,Louisiana,22093,294,25 +2020-06-02,St. James,Louisiana,22093,294,27 +2020-06-03,St. James,Louisiana,22093,303,27 +2020-06-04,St. James,Louisiana,22093,303,27 +2020-06-05,St. James,Louisiana,22093,304,27 +2020-06-06,St. James,Louisiana,22093,304,27 +2020-06-07,St. James,Louisiana,22093,304,27 +2020-06-08,St. James,Louisiana,22093,304,27 +2020-06-09,St. James,Louisiana,22093,305,27 +2020-06-10,St. James,Louisiana,22093,306,27 +2020-06-11,St. James,Louisiana,22093,306,27 +2020-06-12,St. James,Louisiana,22093,308,27 +2020-06-13,St. James,Louisiana,22093,308,27 +2020-06-14,St. James,Louisiana,22093,308,27 +2020-06-15,St. James,Louisiana,22093,308,27 +2020-06-16,St. James,Louisiana,22093,309,27 +2020-06-17,St. James,Louisiana,22093,313,28 +2020-06-18,St. James,Louisiana,22093,313,28 +2020-06-19,St. James,Louisiana,22093,331,28 +2020-06-20,St. James,Louisiana,22093,333,28 +2020-06-21,St. James,Louisiana,22093,334,28 +2020-06-22,St. James,Louisiana,22093,334,28 +2020-06-23,St. James,Louisiana,22093,338,28 +2020-06-24,St. James,Louisiana,22093,338,28 +2020-06-25,St. James,Louisiana,22093,340,28 +2020-06-26,St. James,Louisiana,22093,345,28 +2020-06-27,St. James,Louisiana,22093,345,28 +2020-06-28,St. James,Louisiana,22093,349,28 +2020-06-29,St. James,Louisiana,22093,351,28 +2020-06-30,St. James,Louisiana,22093,367,29 +2020-07-01,St. James,Louisiana,22093,375,29 +2020-07-02,St. James,Louisiana,22093,377,29 +2020-07-03,St. James,Louisiana,22093,390,29 +2020-07-04,St. James,Louisiana,22093,390,29 +2020-07-05,St. James,Louisiana,22093,404,29 +2020-07-06,St. James,Louisiana,22093,410,29 +2020-07-07,St. James,Louisiana,22093,413,29 +2020-07-08,St. James,Louisiana,22093,418,30 +2020-07-09,St. James,Louisiana,22093,432,30 +2020-03-14,St. John the Baptist,Louisiana,22095,1,0 +2020-03-15,St. John the Baptist,Louisiana,22095,1,0 +2020-03-16,St. John the Baptist,Louisiana,22095,1,0 +2020-03-17,St. John the Baptist,Louisiana,22095,1,0 +2020-03-18,St. John the Baptist,Louisiana,22095,2,0 +2020-03-19,St. John the Baptist,Louisiana,22095,3,0 +2020-03-20,St. John the Baptist,Louisiana,22095,6,0 +2020-03-21,St. John the Baptist,Louisiana,22095,9,0 +2020-03-22,St. John the Baptist,Louisiana,22095,10,0 +2020-03-23,St. John the Baptist,Louisiana,22095,16,0 +2020-03-24,St. John the Baptist,Louisiana,22095,21,0 +2020-03-25,St. John the Baptist,Louisiana,22095,27,2 +2020-03-26,St. John the Baptist,Louisiana,22095,38,2 +2020-03-27,St. John the Baptist,Louisiana,22095,41,3 +2020-03-28,St. John the Baptist,Louisiana,22095,54,3 +2020-03-29,St. John the Baptist,Louisiana,22095,57,5 +2020-03-30,St. John the Baptist,Louisiana,22095,75,8 +2020-03-31,St. John the Baptist,Louisiana,22095,104,12 +2020-04-01,St. John the Baptist,Louisiana,22095,118,13 +2020-04-02,St. John the Baptist,Louisiana,22095,274,14 +2020-04-03,St. John the Baptist,Louisiana,22095,290,17 +2020-04-04,St. John the Baptist,Louisiana,22095,338,23 +2020-04-05,St. John the Baptist,Louisiana,22095,345,24 +2020-04-06,St. John the Baptist,Louisiana,22095,366,24 +2020-04-07,St. John the Baptist,Louisiana,22095,415,34 +2020-04-08,St. John the Baptist,Louisiana,22095,432,35 +2020-04-09,St. John the Baptist,Louisiana,22095,477,35 +2020-04-10,St. John the Baptist,Louisiana,22095,507,37 +2020-04-11,St. John the Baptist,Louisiana,22095,538,38 +2020-04-12,St. John the Baptist,Louisiana,22095,545,38 +2020-04-13,St. John the Baptist,Louisiana,22095,556,40 +2020-04-14,St. John the Baptist,Louisiana,22095,562,48 +2020-04-15,St. John the Baptist,Louisiana,22095,569,47 +2020-04-16,St. John the Baptist,Louisiana,22095,609,47 +2020-04-17,St. John the Baptist,Louisiana,22095,623,50 +2020-04-18,St. John the Baptist,Louisiana,22095,637,53 +2020-04-19,St. John the Baptist,Louisiana,22095,642,53 +2020-04-20,St. John the Baptist,Louisiana,22095,669,53 +2020-04-21,St. John the Baptist,Louisiana,22095,686,57 +2020-04-22,St. John the Baptist,Louisiana,22095,704,57 +2020-04-23,St. John the Baptist,Louisiana,22095,721,59 +2020-04-24,St. John the Baptist,Louisiana,22095,736,63 +2020-04-25,St. John the Baptist,Louisiana,22095,747,64 +2020-04-26,St. John the Baptist,Louisiana,22095,749,64 +2020-04-27,St. John the Baptist,Louisiana,22095,751,64 +2020-04-28,St. John the Baptist,Louisiana,22095,758,66 +2020-04-29,St. John the Baptist,Louisiana,22095,765,68 +2020-04-30,St. John the Baptist,Louisiana,22095,768,69 +2020-05-01,St. John the Baptist,Louisiana,22095,771,71 +2020-05-02,St. John the Baptist,Louisiana,22095,772,71 +2020-05-03,St. John the Baptist,Louisiana,22095,772,71 +2020-05-04,St. John the Baptist,Louisiana,22095,777,71 +2020-05-05,St. John the Baptist,Louisiana,22095,782,75 +2020-05-06,St. John the Baptist,Louisiana,22095,790,74 +2020-05-07,St. John the Baptist,Louisiana,22095,791,76 +2020-05-08,St. John the Baptist,Louisiana,22095,791,76 +2020-05-09,St. John the Baptist,Louisiana,22095,801,76 +2020-05-10,St. John the Baptist,Louisiana,22095,801,76 +2020-05-11,St. John the Baptist,Louisiana,22095,801,77 +2020-05-12,St. John the Baptist,Louisiana,22095,804,76 +2020-05-13,St. John the Baptist,Louisiana,22095,808,77 +2020-05-14,St. John the Baptist,Louisiana,22095,820,78 +2020-05-15,St. John the Baptist,Louisiana,22095,830,77 +2020-05-16,St. John the Baptist,Louisiana,22095,829,77 +2020-05-17,St. John the Baptist,Louisiana,22095,829,77 +2020-05-18,St. John the Baptist,Louisiana,22095,830,77 +2020-05-19,St. John the Baptist,Louisiana,22095,831,77 +2020-05-20,St. John the Baptist,Louisiana,22095,832,77 +2020-05-21,St. John the Baptist,Louisiana,22095,838,77 +2020-05-22,St. John the Baptist,Louisiana,22095,838,77 +2020-05-23,St. John the Baptist,Louisiana,22095,838,77 +2020-05-24,St. John the Baptist,Louisiana,22095,841,77 +2020-05-25,St. John the Baptist,Louisiana,22095,845,77 +2020-05-26,St. John the Baptist,Louisiana,22095,848,77 +2020-05-27,St. John the Baptist,Louisiana,22095,849,77 +2020-05-28,St. John the Baptist,Louisiana,22095,850,78 +2020-05-29,St. John the Baptist,Louisiana,22095,850,79 +2020-05-30,St. John the Baptist,Louisiana,22095,858,79 +2020-05-31,St. John the Baptist,Louisiana,22095,860,79 +2020-06-01,St. John the Baptist,Louisiana,22095,862,79 +2020-06-02,St. John the Baptist,Louisiana,22095,864,82 +2020-06-03,St. John the Baptist,Louisiana,22095,868,82 +2020-06-04,St. John the Baptist,Louisiana,22095,872,82 +2020-06-05,St. John the Baptist,Louisiana,22095,873,84 +2020-06-06,St. John the Baptist,Louisiana,22095,875,84 +2020-06-07,St. John the Baptist,Louisiana,22095,877,84 +2020-06-08,St. John the Baptist,Louisiana,22095,877,84 +2020-06-09,St. John the Baptist,Louisiana,22095,881,84 +2020-06-10,St. John the Baptist,Louisiana,22095,883,83 +2020-06-11,St. John the Baptist,Louisiana,22095,883,83 +2020-06-12,St. John the Baptist,Louisiana,22095,886,83 +2020-06-13,St. John the Baptist,Louisiana,22095,889,83 +2020-06-14,St. John the Baptist,Louisiana,22095,891,83 +2020-06-15,St. John the Baptist,Louisiana,22095,892,83 +2020-06-16,St. John the Baptist,Louisiana,22095,894,83 +2020-06-17,St. John the Baptist,Louisiana,22095,904,83 +2020-06-18,St. John the Baptist,Louisiana,22095,904,83 +2020-06-19,St. John the Baptist,Louisiana,22095,917,85 +2020-06-20,St. John the Baptist,Louisiana,22095,919,85 +2020-06-21,St. John the Baptist,Louisiana,22095,924,85 +2020-06-22,St. John the Baptist,Louisiana,22095,926,85 +2020-06-23,St. John the Baptist,Louisiana,22095,928,85 +2020-06-24,St. John the Baptist,Louisiana,22095,930,86 +2020-06-25,St. John the Baptist,Louisiana,22095,936,86 +2020-06-26,St. John the Baptist,Louisiana,22095,939,86 +2020-06-27,St. John the Baptist,Louisiana,22095,939,86 +2020-06-28,St. John the Baptist,Louisiana,22095,952,86 +2020-06-29,St. John the Baptist,Louisiana,22095,960,86 +2020-06-30,St. John the Baptist,Louisiana,22095,970,86 +2020-07-01,St. John the Baptist,Louisiana,22095,976,87 +2020-07-02,St. John the Baptist,Louisiana,22095,982,87 +2020-07-03,St. John the Baptist,Louisiana,22095,1000,87 +2020-07-04,St. John the Baptist,Louisiana,22095,1000,87 +2020-07-05,St. John the Baptist,Louisiana,22095,1011,87 +2020-07-06,St. John the Baptist,Louisiana,22095,1015,87 +2020-07-07,St. John the Baptist,Louisiana,22095,1024,87 +2020-07-08,St. John the Baptist,Louisiana,22095,1037,87 +2020-07-09,St. John the Baptist,Louisiana,22095,1049,87 +2020-03-19,St. Landry,Louisiana,22097,2,0 +2020-03-20,St. Landry,Louisiana,22097,2,0 +2020-03-21,St. Landry,Louisiana,22097,3,0 +2020-03-22,St. Landry,Louisiana,22097,3,0 +2020-03-23,St. Landry,Louisiana,22097,3,0 +2020-03-24,St. Landry,Louisiana,22097,3,0 +2020-03-25,St. Landry,Louisiana,22097,4,0 +2020-03-26,St. Landry,Louisiana,22097,5,0 +2020-03-27,St. Landry,Louisiana,22097,10,0 +2020-03-28,St. Landry,Louisiana,22097,10,0 +2020-03-29,St. Landry,Louisiana,22097,10,0 +2020-03-30,St. Landry,Louisiana,22097,15,1 +2020-03-31,St. Landry,Louisiana,22097,31,1 +2020-04-01,St. Landry,Louisiana,22097,45,1 +2020-04-02,St. Landry,Louisiana,22097,56,1 +2020-04-03,St. Landry,Louisiana,22097,68,2 +2020-04-04,St. Landry,Louisiana,22097,45,2 +2020-04-05,St. Landry,Louisiana,22097,47,4 +2020-04-06,St. Landry,Louisiana,22097,52,4 +2020-04-07,St. Landry,Louisiana,22097,60,4 +2020-04-08,St. Landry,Louisiana,22097,86,4 +2020-04-09,St. Landry,Louisiana,22097,90,4 +2020-04-10,St. Landry,Louisiana,22097,103,6 +2020-04-11,St. Landry,Louisiana,22097,109,11 +2020-04-12,St. Landry,Louisiana,22097,113,13 +2020-04-13,St. Landry,Louisiana,22097,114,13 +2020-04-14,St. Landry,Louisiana,22097,115,16 +2020-04-15,St. Landry,Louisiana,22097,116,16 +2020-04-16,St. Landry,Louisiana,22097,118,17 +2020-04-17,St. Landry,Louisiana,22097,119,18 +2020-04-18,St. Landry,Louisiana,22097,133,20 +2020-04-19,St. Landry,Louisiana,22097,134,20 +2020-04-20,St. Landry,Louisiana,22097,136,20 +2020-04-21,St. Landry,Louisiana,22097,136,26 +2020-04-22,St. Landry,Louisiana,22097,140,29 +2020-04-23,St. Landry,Louisiana,22097,154,31 +2020-04-24,St. Landry,Louisiana,22097,157,34 +2020-04-25,St. Landry,Louisiana,22097,163,34 +2020-04-26,St. Landry,Louisiana,22097,163,34 +2020-04-27,St. Landry,Louisiana,22097,167,35 +2020-04-28,St. Landry,Louisiana,22097,170,37 +2020-04-29,St. Landry,Louisiana,22097,172,39 +2020-04-30,St. Landry,Louisiana,22097,180,42 +2020-05-01,St. Landry,Louisiana,22097,181,44 +2020-05-02,St. Landry,Louisiana,22097,185,44 +2020-05-03,St. Landry,Louisiana,22097,186,45 +2020-05-04,St. Landry,Louisiana,22097,191,45 +2020-05-05,St. Landry,Louisiana,22097,198,47 +2020-05-06,St. Landry,Louisiana,22097,202,48 +2020-05-07,St. Landry,Louisiana,22097,203,49 +2020-05-08,St. Landry,Louisiana,22097,204,49 +2020-05-09,St. Landry,Louisiana,22097,211,49 +2020-05-10,St. Landry,Louisiana,22097,215,50 +2020-05-11,St. Landry,Louisiana,22097,214,50 +2020-05-12,St. Landry,Louisiana,22097,215,51 +2020-05-13,St. Landry,Louisiana,22097,241,51 +2020-05-14,St. Landry,Louisiana,22097,244,51 +2020-05-15,St. Landry,Louisiana,22097,244,51 +2020-05-16,St. Landry,Louisiana,22097,230,51 +2020-05-17,St. Landry,Louisiana,22097,231,51 +2020-05-18,St. Landry,Louisiana,22097,235,51 +2020-05-19,St. Landry,Louisiana,22097,237,51 +2020-05-20,St. Landry,Louisiana,22097,237,52 +2020-05-21,St. Landry,Louisiana,22097,244,52 +2020-05-22,St. Landry,Louisiana,22097,247,52 +2020-05-23,St. Landry,Louisiana,22097,247,52 +2020-05-24,St. Landry,Louisiana,22097,247,52 +2020-05-25,St. Landry,Louisiana,22097,248,52 +2020-05-26,St. Landry,Louisiana,22097,249,52 +2020-05-27,St. Landry,Louisiana,22097,252,52 +2020-05-28,St. Landry,Louisiana,22097,252,54 +2020-05-29,St. Landry,Louisiana,22097,252,54 +2020-05-30,St. Landry,Louisiana,22097,255,54 +2020-05-31,St. Landry,Louisiana,22097,257,54 +2020-06-01,St. Landry,Louisiana,22097,263,54 +2020-06-02,St. Landry,Louisiana,22097,266,54 +2020-06-03,St. Landry,Louisiana,22097,269,54 +2020-06-04,St. Landry,Louisiana,22097,272,54 +2020-06-05,St. Landry,Louisiana,22097,308,54 +2020-06-06,St. Landry,Louisiana,22097,309,54 +2020-06-07,St. Landry,Louisiana,22097,309,54 +2020-06-08,St. Landry,Louisiana,22097,311,54 +2020-06-09,St. Landry,Louisiana,22097,316,54 +2020-06-10,St. Landry,Louisiana,22097,323,54 +2020-06-11,St. Landry,Louisiana,22097,324,55 +2020-06-12,St. Landry,Louisiana,22097,326,55 +2020-06-13,St. Landry,Louisiana,22097,358,55 +2020-06-14,St. Landry,Louisiana,22097,360,55 +2020-06-15,St. Landry,Louisiana,22097,370,55 +2020-06-16,St. Landry,Louisiana,22097,379,55 +2020-06-17,St. Landry,Louisiana,22097,393,55 +2020-06-18,St. Landry,Louisiana,22097,393,55 +2020-06-19,St. Landry,Louisiana,22097,453,55 +2020-06-20,St. Landry,Louisiana,22097,462,55 +2020-06-21,St. Landry,Louisiana,22097,465,55 +2020-06-22,St. Landry,Louisiana,22097,484,55 +2020-06-23,St. Landry,Louisiana,22097,517,57 +2020-06-24,St. Landry,Louisiana,22097,530,57 +2020-06-25,St. Landry,Louisiana,22097,540,57 +2020-06-26,St. Landry,Louisiana,22097,578,57 +2020-06-27,St. Landry,Louisiana,22097,578,57 +2020-06-28,St. Landry,Louisiana,22097,605,57 +2020-06-29,St. Landry,Louisiana,22097,619,57 +2020-06-30,St. Landry,Louisiana,22097,626,57 +2020-07-01,St. Landry,Louisiana,22097,653,57 +2020-07-02,St. Landry,Louisiana,22097,672,57 +2020-07-03,St. Landry,Louisiana,22097,716,57 +2020-07-04,St. Landry,Louisiana,22097,716,57 +2020-07-05,St. Landry,Louisiana,22097,763,57 +2020-07-06,St. Landry,Louisiana,22097,797,57 +2020-07-07,St. Landry,Louisiana,22097,850,57 +2020-07-08,St. Landry,Louisiana,22097,887,59 +2020-07-09,St. Landry,Louisiana,22097,944,59 +2020-03-23,St. Martin,Louisiana,22099,1,0 +2020-03-24,St. Martin,Louisiana,22099,1,0 +2020-03-25,St. Martin,Louisiana,22099,1,0 +2020-03-26,St. Martin,Louisiana,22099,2,0 +2020-03-27,St. Martin,Louisiana,22099,10,3 +2020-03-28,St. Martin,Louisiana,22099,13,3 +2020-03-29,St. Martin,Louisiana,22099,13,3 +2020-03-30,St. Martin,Louisiana,22099,20,3 +2020-03-31,St. Martin,Louisiana,22099,32,3 +2020-04-01,St. Martin,Louisiana,22099,41,3 +2020-04-02,St. Martin,Louisiana,22099,58,3 +2020-04-03,St. Martin,Louisiana,22099,69,3 +2020-04-04,St. Martin,Louisiana,22099,64,5 +2020-04-05,St. Martin,Louisiana,22099,77,4 +2020-04-06,St. Martin,Louisiana,22099,90,4 +2020-04-07,St. Martin,Louisiana,22099,101,4 +2020-04-08,St. Martin,Louisiana,22099,112,4 +2020-04-09,St. Martin,Louisiana,22099,127,6 +2020-04-10,St. Martin,Louisiana,22099,140,6 +2020-04-11,St. Martin,Louisiana,22099,146,7 +2020-04-12,St. Martin,Louisiana,22099,157,8 +2020-04-13,St. Martin,Louisiana,22099,162,8 +2020-04-14,St. Martin,Louisiana,22099,168,9 +2020-04-15,St. Martin,Louisiana,22099,174,10 +2020-04-16,St. Martin,Louisiana,22099,179,10 +2020-04-17,St. Martin,Louisiana,22099,184,10 +2020-04-18,St. Martin,Louisiana,22099,187,12 +2020-04-19,St. Martin,Louisiana,22099,190,12 +2020-04-20,St. Martin,Louisiana,22099,193,12 +2020-04-21,St. Martin,Louisiana,22099,193,13 +2020-04-22,St. Martin,Louisiana,22099,202,13 +2020-04-23,St. Martin,Louisiana,22099,210,13 +2020-04-24,St. Martin,Louisiana,22099,218,14 +2020-04-25,St. Martin,Louisiana,22099,219,14 +2020-04-26,St. Martin,Louisiana,22099,221,15 +2020-04-27,St. Martin,Louisiana,22099,223,15 +2020-04-28,St. Martin,Louisiana,22099,226,15 +2020-04-29,St. Martin,Louisiana,22099,228,16 +2020-04-30,St. Martin,Louisiana,22099,232,17 +2020-05-01,St. Martin,Louisiana,22099,241,17 +2020-05-02,St. Martin,Louisiana,22099,244,18 +2020-05-03,St. Martin,Louisiana,22099,244,18 +2020-05-04,St. Martin,Louisiana,22099,244,18 +2020-05-05,St. Martin,Louisiana,22099,247,19 +2020-05-06,St. Martin,Louisiana,22099,252,19 +2020-05-07,St. Martin,Louisiana,22099,254,20 +2020-05-08,St. Martin,Louisiana,22099,255,20 +2020-05-09,St. Martin,Louisiana,22099,257,21 +2020-05-10,St. Martin,Louisiana,22099,257,21 +2020-05-11,St. Martin,Louisiana,22099,260,21 +2020-05-12,St. Martin,Louisiana,22099,264,21 +2020-05-13,St. Martin,Louisiana,22099,276,22 +2020-05-14,St. Martin,Louisiana,22099,278,22 +2020-05-15,St. Martin,Louisiana,22099,278,22 +2020-05-16,St. Martin,Louisiana,22099,272,22 +2020-05-17,St. Martin,Louisiana,22099,274,22 +2020-05-18,St. Martin,Louisiana,22099,274,22 +2020-05-19,St. Martin,Louisiana,22099,275,22 +2020-05-20,St. Martin,Louisiana,22099,275,22 +2020-05-21,St. Martin,Louisiana,22099,287,22 +2020-05-22,St. Martin,Louisiana,22099,288,22 +2020-05-23,St. Martin,Louisiana,22099,288,22 +2020-05-24,St. Martin,Louisiana,22099,288,22 +2020-05-25,St. Martin,Louisiana,22099,289,22 +2020-05-26,St. Martin,Louisiana,22099,291,22 +2020-05-27,St. Martin,Louisiana,22099,292,22 +2020-05-28,St. Martin,Louisiana,22099,293,22 +2020-05-29,St. Martin,Louisiana,22099,293,23 +2020-05-30,St. Martin,Louisiana,22099,294,23 +2020-05-31,St. Martin,Louisiana,22099,298,23 +2020-06-01,St. Martin,Louisiana,22099,300,23 +2020-06-02,St. Martin,Louisiana,22099,300,23 +2020-06-03,St. Martin,Louisiana,22099,306,23 +2020-06-04,St. Martin,Louisiana,22099,311,23 +2020-06-05,St. Martin,Louisiana,22099,281,24 +2020-06-06,St. Martin,Louisiana,22099,285,24 +2020-06-07,St. Martin,Louisiana,22099,286,24 +2020-06-08,St. Martin,Louisiana,22099,288,24 +2020-06-09,St. Martin,Louisiana,22099,291,25 +2020-06-10,St. Martin,Louisiana,22099,295,25 +2020-06-11,St. Martin,Louisiana,22099,307,25 +2020-06-12,St. Martin,Louisiana,22099,316,26 +2020-06-13,St. Martin,Louisiana,22099,340,26 +2020-06-14,St. Martin,Louisiana,22099,343,27 +2020-06-15,St. Martin,Louisiana,22099,351,27 +2020-06-16,St. Martin,Louisiana,22099,381,28 +2020-06-17,St. Martin,Louisiana,22099,441,28 +2020-06-18,St. Martin,Louisiana,22099,441,28 +2020-06-19,St. Martin,Louisiana,22099,483,28 +2020-06-20,St. Martin,Louisiana,22099,509,28 +2020-06-21,St. Martin,Louisiana,22099,514,28 +2020-06-22,St. Martin,Louisiana,22099,526,28 +2020-06-23,St. Martin,Louisiana,22099,581,26 +2020-06-24,St. Martin,Louisiana,22099,586,26 +2020-06-25,St. Martin,Louisiana,22099,606,26 +2020-06-26,St. Martin,Louisiana,22099,638,26 +2020-06-27,St. Martin,Louisiana,22099,638,26 +2020-06-28,St. Martin,Louisiana,22099,661,26 +2020-06-29,St. Martin,Louisiana,22099,685,26 +2020-06-30,St. Martin,Louisiana,22099,712,26 +2020-07-01,St. Martin,Louisiana,22099,727,26 +2020-07-02,St. Martin,Louisiana,22099,750,26 +2020-07-03,St. Martin,Louisiana,22099,779,28 +2020-07-04,St. Martin,Louisiana,22099,779,28 +2020-07-05,St. Martin,Louisiana,22099,824,27 +2020-07-06,St. Martin,Louisiana,22099,846,27 +2020-07-07,St. Martin,Louisiana,22099,897,27 +2020-07-08,St. Martin,Louisiana,22099,915,27 +2020-07-09,St. Martin,Louisiana,22099,939,27 +2020-03-21,St. Mary,Louisiana,22101,1,0 +2020-03-22,St. Mary,Louisiana,22101,1,0 +2020-03-23,St. Mary,Louisiana,22101,1,0 +2020-03-24,St. Mary,Louisiana,22101,2,0 +2020-03-25,St. Mary,Louisiana,22101,5,0 +2020-03-26,St. Mary,Louisiana,22101,5,0 +2020-03-27,St. Mary,Louisiana,22101,6,0 +2020-03-28,St. Mary,Louisiana,22101,7,0 +2020-03-29,St. Mary,Louisiana,22101,7,0 +2020-03-30,St. Mary,Louisiana,22101,10,0 +2020-03-31,St. Mary,Louisiana,22101,22,0 +2020-04-01,St. Mary,Louisiana,22101,26,0 +2020-04-02,St. Mary,Louisiana,22101,42,0 +2020-04-03,St. Mary,Louisiana,22101,47,0 +2020-04-04,St. Mary,Louisiana,22101,65,0 +2020-04-05,St. Mary,Louisiana,22101,67,0 +2020-04-06,St. Mary,Louisiana,22101,73,0 +2020-04-07,St. Mary,Louisiana,22101,76,0 +2020-04-08,St. Mary,Louisiana,22101,81,0 +2020-04-09,St. Mary,Louisiana,22101,89,1 +2020-04-10,St. Mary,Louisiana,22101,100,1 +2020-04-11,St. Mary,Louisiana,22101,105,2 +2020-04-12,St. Mary,Louisiana,22101,113,2 +2020-04-13,St. Mary,Louisiana,22101,127,2 +2020-04-14,St. Mary,Louisiana,22101,129,2 +2020-04-15,St. Mary,Louisiana,22101,130,4 +2020-04-16,St. Mary,Louisiana,22101,134,8 +2020-04-17,St. Mary,Louisiana,22101,137,9 +2020-04-18,St. Mary,Louisiana,22101,143,11 +2020-04-19,St. Mary,Louisiana,22101,149,11 +2020-04-20,St. Mary,Louisiana,22101,156,12 +2020-04-21,St. Mary,Louisiana,22101,160,16 +2020-04-22,St. Mary,Louisiana,22101,162,17 +2020-04-23,St. Mary,Louisiana,22101,168,18 +2020-04-24,St. Mary,Louisiana,22101,171,18 +2020-04-25,St. Mary,Louisiana,22101,178,20 +2020-04-26,St. Mary,Louisiana,22101,179,20 +2020-04-27,St. Mary,Louisiana,22101,181,20 +2020-04-28,St. Mary,Louisiana,22101,182,20 +2020-04-29,St. Mary,Louisiana,22101,185,20 +2020-04-30,St. Mary,Louisiana,22101,191,20 +2020-05-01,St. Mary,Louisiana,22101,193,23 +2020-05-02,St. Mary,Louisiana,22101,199,23 +2020-05-03,St. Mary,Louisiana,22101,205,23 +2020-05-04,St. Mary,Louisiana,22101,209,23 +2020-05-05,St. Mary,Louisiana,22101,212,23 +2020-05-06,St. Mary,Louisiana,22101,215,24 +2020-05-07,St. Mary,Louisiana,22101,222,24 +2020-05-08,St. Mary,Louisiana,22101,224,25 +2020-05-09,St. Mary,Louisiana,22101,242,26 +2020-05-10,St. Mary,Louisiana,22101,245,26 +2020-05-11,St. Mary,Louisiana,22101,250,26 +2020-05-12,St. Mary,Louisiana,22101,251,26 +2020-05-13,St. Mary,Louisiana,22101,257,26 +2020-05-14,St. Mary,Louisiana,22101,263,27 +2020-05-15,St. Mary,Louisiana,22101,268,28 +2020-05-16,St. Mary,Louisiana,22101,269,29 +2020-05-17,St. Mary,Louisiana,22101,274,29 +2020-05-18,St. Mary,Louisiana,22101,275,29 +2020-05-19,St. Mary,Louisiana,22101,277,29 +2020-05-20,St. Mary,Louisiana,22101,281,29 +2020-05-21,St. Mary,Louisiana,22101,288,29 +2020-05-22,St. Mary,Louisiana,22101,294,29 +2020-05-23,St. Mary,Louisiana,22101,294,29 +2020-05-24,St. Mary,Louisiana,22101,295,29 +2020-05-25,St. Mary,Louisiana,22101,302,29 +2020-05-26,St. Mary,Louisiana,22101,304,29 +2020-05-27,St. Mary,Louisiana,22101,308,29 +2020-05-28,St. Mary,Louisiana,22101,309,29 +2020-05-29,St. Mary,Louisiana,22101,309,29 +2020-05-30,St. Mary,Louisiana,22101,317,30 +2020-05-31,St. Mary,Louisiana,22101,319,30 +2020-06-01,St. Mary,Louisiana,22101,321,30 +2020-06-02,St. Mary,Louisiana,22101,323,31 +2020-06-03,St. Mary,Louisiana,22101,328,32 +2020-06-04,St. Mary,Louisiana,22101,331,32 +2020-06-05,St. Mary,Louisiana,22101,333,32 +2020-06-06,St. Mary,Louisiana,22101,337,32 +2020-06-07,St. Mary,Louisiana,22101,339,32 +2020-06-08,St. Mary,Louisiana,22101,339,32 +2020-06-09,St. Mary,Louisiana,22101,342,32 +2020-06-10,St. Mary,Louisiana,22101,342,32 +2020-06-11,St. Mary,Louisiana,22101,346,33 +2020-06-12,St. Mary,Louisiana,22101,348,33 +2020-06-13,St. Mary,Louisiana,22101,353,33 +2020-06-14,St. Mary,Louisiana,22101,356,33 +2020-06-15,St. Mary,Louisiana,22101,359,33 +2020-06-16,St. Mary,Louisiana,22101,360,33 +2020-06-17,St. Mary,Louisiana,22101,363,35 +2020-06-18,St. Mary,Louisiana,22101,363,35 +2020-06-19,St. Mary,Louisiana,22101,373,35 +2020-06-20,St. Mary,Louisiana,22101,378,35 +2020-06-21,St. Mary,Louisiana,22101,384,35 +2020-06-22,St. Mary,Louisiana,22101,393,35 +2020-06-23,St. Mary,Louisiana,22101,405,36 +2020-06-24,St. Mary,Louisiana,22101,410,37 +2020-06-25,St. Mary,Louisiana,22101,415,37 +2020-06-26,St. Mary,Louisiana,22101,426,38 +2020-06-27,St. Mary,Louisiana,22101,426,38 +2020-06-28,St. Mary,Louisiana,22101,443,38 +2020-06-29,St. Mary,Louisiana,22101,457,38 +2020-06-30,St. Mary,Louisiana,22101,469,38 +2020-07-01,St. Mary,Louisiana,22101,489,38 +2020-07-02,St. Mary,Louisiana,22101,514,38 +2020-07-03,St. Mary,Louisiana,22101,550,38 +2020-07-04,St. Mary,Louisiana,22101,550,38 +2020-07-05,St. Mary,Louisiana,22101,576,38 +2020-07-06,St. Mary,Louisiana,22101,600,38 +2020-07-07,St. Mary,Louisiana,22101,616,39 +2020-07-08,St. Mary,Louisiana,22101,632,39 +2020-07-09,St. Mary,Louisiana,22101,664,39 +2020-03-13,St. Tammany,Louisiana,22103,2,0 +2020-03-14,St. Tammany,Louisiana,22103,4,0 +2020-03-15,St. Tammany,Louisiana,22103,4,0 +2020-03-16,St. Tammany,Louisiana,22103,6,0 +2020-03-17,St. Tammany,Louisiana,22103,6,0 +2020-03-18,St. Tammany,Louisiana,22103,10,0 +2020-03-19,St. Tammany,Louisiana,22103,10,0 +2020-03-20,St. Tammany,Louisiana,22103,12,0 +2020-03-21,St. Tammany,Louisiana,22103,22,0 +2020-03-22,St. Tammany,Louisiana,22103,25,0 +2020-03-23,St. Tammany,Louisiana,22103,47,0 +2020-03-24,St. Tammany,Louisiana,22103,52,1 +2020-03-25,St. Tammany,Louisiana,22103,67,1 +2020-03-26,St. Tammany,Louisiana,22103,89,1 +2020-03-27,St. Tammany,Louisiana,22103,111,2 +2020-03-28,St. Tammany,Louisiana,22103,134,2 +2020-03-29,St. Tammany,Louisiana,22103,138,3 +2020-03-30,St. Tammany,Louisiana,22103,186,4 +2020-03-31,St. Tammany,Louisiana,22103,220,4 +2020-04-01,St. Tammany,Louisiana,22103,270,6 +2020-04-02,St. Tammany,Louisiana,22103,399,9 +2020-04-03,St. Tammany,Louisiana,22103,435,10 +2020-04-04,St. Tammany,Louisiana,22103,532,14 +2020-04-05,St. Tammany,Louisiana,22103,560,14 +2020-04-06,St. Tammany,Louisiana,22103,637,17 +2020-04-07,St. Tammany,Louisiana,22103,700,17 +2020-04-08,St. Tammany,Louisiana,22103,733,18 +2020-04-09,St. Tammany,Louisiana,22103,777,19 +2020-04-10,St. Tammany,Louisiana,22103,825,27 +2020-04-11,St. Tammany,Louisiana,22103,845,32 +2020-04-12,St. Tammany,Louisiana,22103,864,39 +2020-04-13,St. Tammany,Louisiana,22103,881,48 +2020-04-14,St. Tammany,Louisiana,22103,898,55 +2020-04-15,St. Tammany,Louisiana,22103,924,60 +2020-04-16,St. Tammany,Louisiana,22103,944,60 +2020-04-17,St. Tammany,Louisiana,22103,961,66 +2020-04-18,St. Tammany,Louisiana,22103,987,67 +2020-04-19,St. Tammany,Louisiana,22103,1011,71 +2020-04-20,St. Tammany,Louisiana,22103,1057,73 +2020-04-21,St. Tammany,Louisiana,22103,1067,74 +2020-04-22,St. Tammany,Louisiana,22103,1079,81 +2020-04-23,St. Tammany,Louisiana,22103,1111,89 +2020-04-24,St. Tammany,Louisiana,22103,1131,91 +2020-04-25,St. Tammany,Louisiana,22103,1138,93 +2020-04-26,St. Tammany,Louisiana,22103,1162,94 +2020-04-27,St. Tammany,Louisiana,22103,1172,100 +2020-04-28,St. Tammany,Louisiana,22103,1184,104 +2020-04-29,St. Tammany,Louisiana,22103,1205,108 +2020-04-30,St. Tammany,Louisiana,22103,1220,110 +2020-05-01,St. Tammany,Louisiana,22103,1270,112 +2020-05-02,St. Tammany,Louisiana,22103,1321,114 +2020-05-03,St. Tammany,Louisiana,22103,1325,114 +2020-05-04,St. Tammany,Louisiana,22103,1341,116 +2020-05-05,St. Tammany,Louisiana,22103,1369,118 +2020-05-06,St. Tammany,Louisiana,22103,1406,120 +2020-05-07,St. Tammany,Louisiana,22103,1415,124 +2020-05-08,St. Tammany,Louisiana,22103,1416,125 +2020-05-09,St. Tammany,Louisiana,22103,1447,130 +2020-05-10,St. Tammany,Louisiana,22103,1452,133 +2020-05-11,St. Tammany,Louisiana,22103,1463,136 +2020-05-12,St. Tammany,Louisiana,22103,1477,141 +2020-05-13,St. Tammany,Louisiana,22103,1492,142 +2020-05-14,St. Tammany,Louisiana,22103,1511,142 +2020-05-15,St. Tammany,Louisiana,22103,1520,143 +2020-05-16,St. Tammany,Louisiana,22103,1528,142 +2020-05-17,St. Tammany,Louisiana,22103,1539,144 +2020-05-18,St. Tammany,Louisiana,22103,1544,147 +2020-05-19,St. Tammany,Louisiana,22103,1559,149 +2020-05-20,St. Tammany,Louisiana,22103,1572,151 +2020-05-21,St. Tammany,Louisiana,22103,1599,154 +2020-05-22,St. Tammany,Louisiana,22103,1609,155 +2020-05-23,St. Tammany,Louisiana,22103,1613,156 +2020-05-24,St. Tammany,Louisiana,22103,1618,156 +2020-05-25,St. Tammany,Louisiana,22103,1665,156 +2020-05-26,St. Tammany,Louisiana,22103,1678,156 +2020-05-27,St. Tammany,Louisiana,22103,1687,156 +2020-05-28,St. Tammany,Louisiana,22103,1703,156 +2020-05-29,St. Tammany,Louisiana,22103,1703,157 +2020-05-30,St. Tammany,Louisiana,22103,1724,158 +2020-05-31,St. Tammany,Louisiana,22103,1749,158 +2020-06-01,St. Tammany,Louisiana,22103,1764,158 +2020-06-02,St. Tammany,Louisiana,22103,1776,159 +2020-06-03,St. Tammany,Louisiana,22103,1790,162 +2020-06-04,St. Tammany,Louisiana,22103,1799,162 +2020-06-05,St. Tammany,Louisiana,22103,1823,163 +2020-06-06,St. Tammany,Louisiana,22103,1837,163 +2020-06-07,St. Tammany,Louisiana,22103,1846,165 +2020-06-08,St. Tammany,Louisiana,22103,1849,166 +2020-06-09,St. Tammany,Louisiana,22103,1863,166 +2020-06-10,St. Tammany,Louisiana,22103,1872,166 +2020-06-11,St. Tammany,Louisiana,22103,1885,167 +2020-06-12,St. Tammany,Louisiana,22103,1906,167 +2020-06-13,St. Tammany,Louisiana,22103,1931,167 +2020-06-14,St. Tammany,Louisiana,22103,1942,168 +2020-06-15,St. Tammany,Louisiana,22103,1954,169 +2020-06-16,St. Tammany,Louisiana,22103,1962,169 +2020-06-17,St. Tammany,Louisiana,22103,1999,170 +2020-06-18,St. Tammany,Louisiana,22103,1999,170 +2020-06-19,St. Tammany,Louisiana,22103,1966,170 +2020-06-20,St. Tammany,Louisiana,22103,2003,170 +2020-06-21,St. Tammany,Louisiana,22103,2017,170 +2020-06-22,St. Tammany,Louisiana,22103,2043,172 +2020-06-23,St. Tammany,Louisiana,22103,2096,172 +2020-06-24,St. Tammany,Louisiana,22103,2131,172 +2020-06-25,St. Tammany,Louisiana,22103,2166,172 +2020-06-26,St. Tammany,Louisiana,22103,2211,173 +2020-06-27,St. Tammany,Louisiana,22103,2211,173 +2020-06-28,St. Tammany,Louisiana,22103,2288,174 +2020-06-29,St. Tammany,Louisiana,22103,2327,175 +2020-06-30,St. Tammany,Louisiana,22103,2308,175 +2020-07-01,St. Tammany,Louisiana,22103,2371,175 +2020-07-02,St. Tammany,Louisiana,22103,2440,175 +2020-07-03,St. Tammany,Louisiana,22103,2509,178 +2020-07-04,St. Tammany,Louisiana,22103,2509,178 +2020-07-05,St. Tammany,Louisiana,22103,2615,178 +2020-07-06,St. Tammany,Louisiana,22103,2657,179 +2020-07-07,St. Tammany,Louisiana,22103,2738,181 +2020-07-08,St. Tammany,Louisiana,22103,2844,181 +2020-07-09,St. Tammany,Louisiana,22103,2908,183 +2020-03-20,Tangipahoa,Louisiana,22105,1,0 +2020-03-21,Tangipahoa,Louisiana,22105,3,0 +2020-03-22,Tangipahoa,Louisiana,22105,3,0 +2020-03-23,Tangipahoa,Louisiana,22105,3,0 +2020-03-24,Tangipahoa,Louisiana,22105,4,0 +2020-03-25,Tangipahoa,Louisiana,22105,5,0 +2020-03-26,Tangipahoa,Louisiana,22105,7,0 +2020-03-27,Tangipahoa,Louisiana,22105,7,0 +2020-03-28,Tangipahoa,Louisiana,22105,10,0 +2020-03-29,Tangipahoa,Louisiana,22105,10,0 +2020-03-30,Tangipahoa,Louisiana,22105,18,0 +2020-03-31,Tangipahoa,Louisiana,22105,25,0 +2020-04-01,Tangipahoa,Louisiana,22105,33,2 +2020-04-02,Tangipahoa,Louisiana,22105,42,1 +2020-04-03,Tangipahoa,Louisiana,22105,55,1 +2020-04-04,Tangipahoa,Louisiana,22105,131,2 +2020-04-05,Tangipahoa,Louisiana,22105,171,2 +2020-04-06,Tangipahoa,Louisiana,22105,186,2 +2020-04-07,Tangipahoa,Louisiana,22105,238,3 +2020-04-08,Tangipahoa,Louisiana,22105,269,4 +2020-04-09,Tangipahoa,Louisiana,22105,283,5 +2020-04-10,Tangipahoa,Louisiana,22105,305,6 +2020-04-11,Tangipahoa,Louisiana,22105,318,7 +2020-04-12,Tangipahoa,Louisiana,22105,344,8 +2020-04-13,Tangipahoa,Louisiana,22105,352,11 +2020-04-14,Tangipahoa,Louisiana,22105,391,11 +2020-04-15,Tangipahoa,Louisiana,22105,418,15 +2020-04-16,Tangipahoa,Louisiana,22105,422,16 +2020-04-17,Tangipahoa,Louisiana,22105,435,18 +2020-04-18,Tangipahoa,Louisiana,22105,440,18 +2020-04-19,Tangipahoa,Louisiana,22105,442,18 +2020-04-20,Tangipahoa,Louisiana,22105,452,19 +2020-04-21,Tangipahoa,Louisiana,22105,489,19 +2020-04-22,Tangipahoa,Louisiana,22105,494,18 +2020-04-23,Tangipahoa,Louisiana,22105,501,18 +2020-04-24,Tangipahoa,Louisiana,22105,508,21 +2020-04-25,Tangipahoa,Louisiana,22105,526,21 +2020-04-26,Tangipahoa,Louisiana,22105,528,21 +2020-04-27,Tangipahoa,Louisiana,22105,535,21 +2020-04-28,Tangipahoa,Louisiana,22105,540,21 +2020-04-29,Tangipahoa,Louisiana,22105,549,21 +2020-04-30,Tangipahoa,Louisiana,22105,553,22 +2020-05-01,Tangipahoa,Louisiana,22105,565,23 +2020-05-02,Tangipahoa,Louisiana,22105,584,23 +2020-05-03,Tangipahoa,Louisiana,22105,584,23 +2020-05-04,Tangipahoa,Louisiana,22105,588,23 +2020-05-05,Tangipahoa,Louisiana,22105,605,23 +2020-05-06,Tangipahoa,Louisiana,22105,631,25 +2020-05-07,Tangipahoa,Louisiana,22105,635,26 +2020-05-08,Tangipahoa,Louisiana,22105,645,27 +2020-05-09,Tangipahoa,Louisiana,22105,652,27 +2020-05-10,Tangipahoa,Louisiana,22105,654,28 +2020-05-11,Tangipahoa,Louisiana,22105,670,28 +2020-05-12,Tangipahoa,Louisiana,22105,679,29 +2020-05-13,Tangipahoa,Louisiana,22105,687,30 +2020-05-14,Tangipahoa,Louisiana,22105,696,30 +2020-05-15,Tangipahoa,Louisiana,22105,707,30 +2020-05-16,Tangipahoa,Louisiana,22105,719,31 +2020-05-17,Tangipahoa,Louisiana,22105,729,30 +2020-05-18,Tangipahoa,Louisiana,22105,732,30 +2020-05-19,Tangipahoa,Louisiana,22105,742,30 +2020-05-20,Tangipahoa,Louisiana,22105,752,30 +2020-05-21,Tangipahoa,Louisiana,22105,767,31 +2020-05-22,Tangipahoa,Louisiana,22105,782,32 +2020-05-23,Tangipahoa,Louisiana,22105,784,32 +2020-05-24,Tangipahoa,Louisiana,22105,784,32 +2020-05-25,Tangipahoa,Louisiana,22105,802,32 +2020-05-26,Tangipahoa,Louisiana,22105,810,33 +2020-05-27,Tangipahoa,Louisiana,22105,826,33 +2020-05-28,Tangipahoa,Louisiana,22105,831,34 +2020-05-29,Tangipahoa,Louisiana,22105,831,34 +2020-05-30,Tangipahoa,Louisiana,22105,854,35 +2020-05-31,Tangipahoa,Louisiana,22105,858,35 +2020-06-01,Tangipahoa,Louisiana,22105,868,35 +2020-06-02,Tangipahoa,Louisiana,22105,883,37 +2020-06-03,Tangipahoa,Louisiana,22105,891,39 +2020-06-04,Tangipahoa,Louisiana,22105,898,39 +2020-06-05,Tangipahoa,Louisiana,22105,916,39 +2020-06-06,Tangipahoa,Louisiana,22105,935,39 +2020-06-07,Tangipahoa,Louisiana,22105,944,39 +2020-06-08,Tangipahoa,Louisiana,22105,944,39 +2020-06-09,Tangipahoa,Louisiana,22105,965,39 +2020-06-10,Tangipahoa,Louisiana,22105,973,41 +2020-06-11,Tangipahoa,Louisiana,22105,984,42 +2020-06-12,Tangipahoa,Louisiana,22105,1001,42 +2020-06-13,Tangipahoa,Louisiana,22105,1039,42 +2020-06-14,Tangipahoa,Louisiana,22105,1042,42 +2020-06-15,Tangipahoa,Louisiana,22105,1048,42 +2020-06-16,Tangipahoa,Louisiana,22105,1062,42 +2020-06-17,Tangipahoa,Louisiana,22105,1082,42 +2020-06-18,Tangipahoa,Louisiana,22105,1082,42 +2020-06-19,Tangipahoa,Louisiana,22105,1078,42 +2020-06-20,Tangipahoa,Louisiana,22105,1112,42 +2020-06-21,Tangipahoa,Louisiana,22105,1120,42 +2020-06-22,Tangipahoa,Louisiana,22105,1123,42 +2020-06-23,Tangipahoa,Louisiana,22105,1163,42 +2020-06-24,Tangipahoa,Louisiana,22105,1184,43 +2020-06-25,Tangipahoa,Louisiana,22105,1218,43 +2020-06-26,Tangipahoa,Louisiana,22105,1248,43 +2020-06-27,Tangipahoa,Louisiana,22105,1248,43 +2020-06-28,Tangipahoa,Louisiana,22105,1273,43 +2020-06-29,Tangipahoa,Louisiana,22105,1295,43 +2020-06-30,Tangipahoa,Louisiana,22105,1304,43 +2020-07-01,Tangipahoa,Louisiana,22105,1353,43 +2020-07-02,Tangipahoa,Louisiana,22105,1394,43 +2020-07-03,Tangipahoa,Louisiana,22105,1462,43 +2020-07-04,Tangipahoa,Louisiana,22105,1462,43 +2020-07-05,Tangipahoa,Louisiana,22105,1513,43 +2020-07-06,Tangipahoa,Louisiana,22105,1541,43 +2020-07-07,Tangipahoa,Louisiana,22105,1624,43 +2020-07-08,Tangipahoa,Louisiana,22105,1689,43 +2020-07-09,Tangipahoa,Louisiana,22105,1742,43 +2020-04-11,Tensas,Louisiana,22107,1,0 +2020-04-12,Tensas,Louisiana,22107,1,0 +2020-04-13,Tensas,Louisiana,22107,1,0 +2020-04-14,Tensas,Louisiana,22107,1,0 +2020-04-15,Tensas,Louisiana,22107,1,0 +2020-04-16,Tensas,Louisiana,22107,1,0 +2020-04-17,Tensas,Louisiana,22107,1,0 +2020-04-18,Tensas,Louisiana,22107,1,0 +2020-04-19,Tensas,Louisiana,22107,1,0 +2020-04-20,Tensas,Louisiana,22107,1,0 +2020-04-21,Tensas,Louisiana,22107,1,0 +2020-04-22,Tensas,Louisiana,22107,1,0 +2020-04-23,Tensas,Louisiana,22107,1,0 +2020-04-24,Tensas,Louisiana,22107,1,0 +2020-04-25,Tensas,Louisiana,22107,1,0 +2020-04-26,Tensas,Louisiana,22107,1,0 +2020-04-27,Tensas,Louisiana,22107,1,0 +2020-04-28,Tensas,Louisiana,22107,1,0 +2020-04-29,Tensas,Louisiana,22107,1,0 +2020-04-30,Tensas,Louisiana,22107,1,0 +2020-05-01,Tensas,Louisiana,22107,1,0 +2020-05-02,Tensas,Louisiana,22107,2,0 +2020-05-03,Tensas,Louisiana,22107,2,0 +2020-05-04,Tensas,Louisiana,22107,2,0 +2020-05-05,Tensas,Louisiana,22107,2,0 +2020-05-06,Tensas,Louisiana,22107,2,0 +2020-05-07,Tensas,Louisiana,22107,3,0 +2020-05-08,Tensas,Louisiana,22107,3,0 +2020-05-09,Tensas,Louisiana,22107,6,0 +2020-05-10,Tensas,Louisiana,22107,6,0 +2020-05-11,Tensas,Louisiana,22107,6,0 +2020-05-12,Tensas,Louisiana,22107,6,0 +2020-05-13,Tensas,Louisiana,22107,6,0 +2020-05-14,Tensas,Louisiana,22107,6,0 +2020-05-15,Tensas,Louisiana,22107,6,0 +2020-05-16,Tensas,Louisiana,22107,5,0 +2020-05-17,Tensas,Louisiana,22107,5,0 +2020-05-18,Tensas,Louisiana,22107,5,0 +2020-05-19,Tensas,Louisiana,22107,5,0 +2020-05-20,Tensas,Louisiana,22107,5,0 +2020-05-21,Tensas,Louisiana,22107,10,0 +2020-05-22,Tensas,Louisiana,22107,10,0 +2020-05-23,Tensas,Louisiana,22107,10,0 +2020-05-24,Tensas,Louisiana,22107,10,0 +2020-05-25,Tensas,Louisiana,22107,10,0 +2020-05-26,Tensas,Louisiana,22107,10,0 +2020-05-27,Tensas,Louisiana,22107,10,0 +2020-05-28,Tensas,Louisiana,22107,10,0 +2020-05-29,Tensas,Louisiana,22107,10,0 +2020-05-30,Tensas,Louisiana,22107,11,0 +2020-05-31,Tensas,Louisiana,22107,11,0 +2020-06-01,Tensas,Louisiana,22107,12,0 +2020-06-02,Tensas,Louisiana,22107,12,0 +2020-06-03,Tensas,Louisiana,22107,16,0 +2020-06-04,Tensas,Louisiana,22107,16,0 +2020-06-05,Tensas,Louisiana,22107,20,0 +2020-06-06,Tensas,Louisiana,22107,21,0 +2020-06-07,Tensas,Louisiana,22107,21,0 +2020-06-08,Tensas,Louisiana,22107,21,0 +2020-06-09,Tensas,Louisiana,22107,21,0 +2020-06-10,Tensas,Louisiana,22107,21,0 +2020-06-11,Tensas,Louisiana,22107,21,0 +2020-06-12,Tensas,Louisiana,22107,21,0 +2020-06-13,Tensas,Louisiana,22107,22,0 +2020-06-14,Tensas,Louisiana,22107,22,0 +2020-06-15,Tensas,Louisiana,22107,22,0 +2020-06-16,Tensas,Louisiana,22107,22,0 +2020-06-17,Tensas,Louisiana,22107,22,0 +2020-06-18,Tensas,Louisiana,22107,22,0 +2020-06-19,Tensas,Louisiana,22107,24,0 +2020-06-20,Tensas,Louisiana,22107,24,0 +2020-06-21,Tensas,Louisiana,22107,24,0 +2020-06-22,Tensas,Louisiana,22107,24,0 +2020-06-23,Tensas,Louisiana,22107,24,0 +2020-06-24,Tensas,Louisiana,22107,24,0 +2020-06-25,Tensas,Louisiana,22107,24,0 +2020-06-26,Tensas,Louisiana,22107,24,0 +2020-06-27,Tensas,Louisiana,22107,24,0 +2020-06-28,Tensas,Louisiana,22107,24,0 +2020-06-29,Tensas,Louisiana,22107,24,0 +2020-06-30,Tensas,Louisiana,22107,26,0 +2020-07-01,Tensas,Louisiana,22107,26,0 +2020-07-02,Tensas,Louisiana,22107,26,0 +2020-07-03,Tensas,Louisiana,22107,26,0 +2020-07-04,Tensas,Louisiana,22107,26,0 +2020-07-05,Tensas,Louisiana,22107,26,0 +2020-07-06,Tensas,Louisiana,22107,27,0 +2020-07-07,Tensas,Louisiana,22107,28,0 +2020-07-08,Tensas,Louisiana,22107,30,0 +2020-07-09,Tensas,Louisiana,22107,30,0 +2020-03-13,Terrebonne,Louisiana,22109,1,0 +2020-03-14,Terrebonne,Louisiana,22109,2,0 +2020-03-15,Terrebonne,Louisiana,22109,2,0 +2020-03-16,Terrebonne,Louisiana,22109,2,0 +2020-03-17,Terrebonne,Louisiana,22109,3,0 +2020-03-18,Terrebonne,Louisiana,22109,3,0 +2020-03-19,Terrebonne,Louisiana,22109,4,0 +2020-03-20,Terrebonne,Louisiana,22109,7,0 +2020-03-21,Terrebonne,Louisiana,22109,11,0 +2020-03-22,Terrebonne,Louisiana,22109,12,0 +2020-03-23,Terrebonne,Louisiana,22109,14,0 +2020-03-24,Terrebonne,Louisiana,22109,14,0 +2020-03-25,Terrebonne,Louisiana,22109,15,0 +2020-03-26,Terrebonne,Louisiana,22109,21,0 +2020-03-27,Terrebonne,Louisiana,22109,23,1 +2020-03-28,Terrebonne,Louisiana,22109,26,1 +2020-03-29,Terrebonne,Louisiana,22109,29,1 +2020-03-30,Terrebonne,Louisiana,22109,34,1 +2020-03-31,Terrebonne,Louisiana,22109,40,1 +2020-04-01,Terrebonne,Louisiana,22109,55,1 +2020-04-02,Terrebonne,Louisiana,22109,97,1 +2020-04-03,Terrebonne,Louisiana,22109,102,2 +2020-04-04,Terrebonne,Louisiana,22109,143,8 +2020-04-05,Terrebonne,Louisiana,22109,148,8 +2020-04-06,Terrebonne,Louisiana,22109,182,7 +2020-04-07,Terrebonne,Louisiana,22109,194,11 +2020-04-08,Terrebonne,Louisiana,22109,209,14 +2020-04-09,Terrebonne,Louisiana,22109,233,13 +2020-04-10,Terrebonne,Louisiana,22109,244,13 +2020-04-11,Terrebonne,Louisiana,22109,248,14 +2020-04-12,Terrebonne,Louisiana,22109,255,14 +2020-04-13,Terrebonne,Louisiana,22109,260,14 +2020-04-14,Terrebonne,Louisiana,22109,265,17 +2020-04-15,Terrebonne,Louisiana,22109,273,18 +2020-04-16,Terrebonne,Louisiana,22109,283,18 +2020-04-17,Terrebonne,Louisiana,22109,293,18 +2020-04-18,Terrebonne,Louisiana,22109,310,21 +2020-04-19,Terrebonne,Louisiana,22109,320,21 +2020-04-20,Terrebonne,Louisiana,22109,342,21 +2020-04-21,Terrebonne,Louisiana,22109,346,25 +2020-04-22,Terrebonne,Louisiana,22109,350,24 +2020-04-23,Terrebonne,Louisiana,22109,357,25 +2020-04-24,Terrebonne,Louisiana,22109,363,25 +2020-04-25,Terrebonne,Louisiana,22109,366,26 +2020-04-26,Terrebonne,Louisiana,22109,371,26 +2020-04-27,Terrebonne,Louisiana,22109,375,26 +2020-04-28,Terrebonne,Louisiana,22109,382,31 +2020-04-29,Terrebonne,Louisiana,22109,389,31 +2020-04-30,Terrebonne,Louisiana,22109,437,32 +2020-05-01,Terrebonne,Louisiana,22109,450,33 +2020-05-02,Terrebonne,Louisiana,22109,456,33 +2020-05-03,Terrebonne,Louisiana,22109,459,33 +2020-05-04,Terrebonne,Louisiana,22109,466,33 +2020-05-05,Terrebonne,Louisiana,22109,469,32 +2020-05-06,Terrebonne,Louisiana,22109,476,33 +2020-05-07,Terrebonne,Louisiana,22109,499,35 +2020-05-08,Terrebonne,Louisiana,22109,501,36 +2020-05-09,Terrebonne,Louisiana,22109,523,37 +2020-05-10,Terrebonne,Louisiana,22109,523,38 +2020-05-11,Terrebonne,Louisiana,22109,528,39 +2020-05-12,Terrebonne,Louisiana,22109,533,39 +2020-05-13,Terrebonne,Louisiana,22109,542,39 +2020-05-14,Terrebonne,Louisiana,22109,550,41 +2020-05-15,Terrebonne,Louisiana,22109,557,43 +2020-05-16,Terrebonne,Louisiana,22109,567,43 +2020-05-17,Terrebonne,Louisiana,22109,585,43 +2020-05-18,Terrebonne,Louisiana,22109,590,43 +2020-05-19,Terrebonne,Louisiana,22109,591,44 +2020-05-20,Terrebonne,Louisiana,22109,594,44 +2020-05-21,Terrebonne,Louisiana,22109,614,45 +2020-05-22,Terrebonne,Louisiana,22109,623,48 +2020-05-23,Terrebonne,Louisiana,22109,626,48 +2020-05-24,Terrebonne,Louisiana,22109,628,48 +2020-05-25,Terrebonne,Louisiana,22109,639,48 +2020-05-26,Terrebonne,Louisiana,22109,641,48 +2020-05-27,Terrebonne,Louisiana,22109,647,48 +2020-05-28,Terrebonne,Louisiana,22109,653,48 +2020-05-29,Terrebonne,Louisiana,22109,653,49 +2020-05-30,Terrebonne,Louisiana,22109,667,51 +2020-05-31,Terrebonne,Louisiana,22109,679,52 +2020-06-01,Terrebonne,Louisiana,22109,686,51 +2020-06-02,Terrebonne,Louisiana,22109,692,54 +2020-06-03,Terrebonne,Louisiana,22109,709,55 +2020-06-04,Terrebonne,Louisiana,22109,719,55 +2020-06-05,Terrebonne,Louisiana,22109,724,55 +2020-06-06,Terrebonne,Louisiana,22109,738,55 +2020-06-07,Terrebonne,Louisiana,22109,744,55 +2020-06-08,Terrebonne,Louisiana,22109,748,55 +2020-06-09,Terrebonne,Louisiana,22109,756,55 +2020-06-10,Terrebonne,Louisiana,22109,761,56 +2020-06-11,Terrebonne,Louisiana,22109,771,56 +2020-06-12,Terrebonne,Louisiana,22109,780,57 +2020-06-13,Terrebonne,Louisiana,22109,792,57 +2020-06-14,Terrebonne,Louisiana,22109,801,57 +2020-06-15,Terrebonne,Louisiana,22109,812,57 +2020-06-16,Terrebonne,Louisiana,22109,818,58 +2020-06-17,Terrebonne,Louisiana,22109,826,58 +2020-06-18,Terrebonne,Louisiana,22109,826,58 +2020-06-19,Terrebonne,Louisiana,22109,826,59 +2020-06-20,Terrebonne,Louisiana,22109,839,60 +2020-06-21,Terrebonne,Louisiana,22109,848,60 +2020-06-22,Terrebonne,Louisiana,22109,857,60 +2020-06-23,Terrebonne,Louisiana,22109,866,60 +2020-06-24,Terrebonne,Louisiana,22109,874,60 +2020-06-25,Terrebonne,Louisiana,22109,884,60 +2020-06-26,Terrebonne,Louisiana,22109,931,60 +2020-06-27,Terrebonne,Louisiana,22109,931,60 +2020-06-28,Terrebonne,Louisiana,22109,988,61 +2020-06-29,Terrebonne,Louisiana,22109,1011,61 +2020-06-30,Terrebonne,Louisiana,22109,1030,61 +2020-07-01,Terrebonne,Louisiana,22109,1068,61 +2020-07-02,Terrebonne,Louisiana,22109,1094,61 +2020-07-03,Terrebonne,Louisiana,22109,1147,61 +2020-07-04,Terrebonne,Louisiana,22109,1147,61 +2020-07-05,Terrebonne,Louisiana,22109,1228,61 +2020-07-06,Terrebonne,Louisiana,22109,1277,61 +2020-07-07,Terrebonne,Louisiana,22109,1309,63 +2020-07-08,Terrebonne,Louisiana,22109,1372,63 +2020-07-09,Terrebonne,Louisiana,22109,1415,63 +2020-03-25,Union,Louisiana,22111,2,0 +2020-03-26,Union,Louisiana,22111,2,0 +2020-03-27,Union,Louisiana,22111,4,0 +2020-03-28,Union,Louisiana,22111,7,0 +2020-03-29,Union,Louisiana,22111,9,0 +2020-03-30,Union,Louisiana,22111,9,0 +2020-03-31,Union,Louisiana,22111,9,0 +2020-04-01,Union,Louisiana,22111,11,0 +2020-04-02,Union,Louisiana,22111,13,0 +2020-04-03,Union,Louisiana,22111,17,0 +2020-04-04,Union,Louisiana,22111,19,0 +2020-04-05,Union,Louisiana,22111,19,0 +2020-04-06,Union,Louisiana,22111,26,0 +2020-04-07,Union,Louisiana,22111,33,0 +2020-04-08,Union,Louisiana,22111,35,3 +2020-04-09,Union,Louisiana,22111,39,3 +2020-04-10,Union,Louisiana,22111,41,3 +2020-04-11,Union,Louisiana,22111,45,3 +2020-04-12,Union,Louisiana,22111,47,3 +2020-04-13,Union,Louisiana,22111,48,3 +2020-04-14,Union,Louisiana,22111,50,4 +2020-04-15,Union,Louisiana,22111,56,4 +2020-04-16,Union,Louisiana,22111,67,4 +2020-04-17,Union,Louisiana,22111,71,5 +2020-04-18,Union,Louisiana,22111,75,5 +2020-04-19,Union,Louisiana,22111,78,5 +2020-04-20,Union,Louisiana,22111,79,5 +2020-04-21,Union,Louisiana,22111,82,5 +2020-04-22,Union,Louisiana,22111,85,5 +2020-04-23,Union,Louisiana,22111,89,6 +2020-04-24,Union,Louisiana,22111,95,6 +2020-04-25,Union,Louisiana,22111,102,6 +2020-04-26,Union,Louisiana,22111,102,6 +2020-04-27,Union,Louisiana,22111,103,6 +2020-04-28,Union,Louisiana,22111,108,6 +2020-04-29,Union,Louisiana,22111,114,6 +2020-04-30,Union,Louisiana,22111,117,6 +2020-05-01,Union,Louisiana,22111,125,6 +2020-05-02,Union,Louisiana,22111,131,7 +2020-05-03,Union,Louisiana,22111,135,7 +2020-05-04,Union,Louisiana,22111,143,7 +2020-05-05,Union,Louisiana,22111,144,7 +2020-05-06,Union,Louisiana,22111,148,7 +2020-05-07,Union,Louisiana,22111,151,8 +2020-05-08,Union,Louisiana,22111,153,8 +2020-05-09,Union,Louisiana,22111,162,8 +2020-05-10,Union,Louisiana,22111,165,9 +2020-05-11,Union,Louisiana,22111,169,10 +2020-05-12,Union,Louisiana,22111,171,11 +2020-05-13,Union,Louisiana,22111,227,11 +2020-05-14,Union,Louisiana,22111,231,11 +2020-05-15,Union,Louisiana,22111,238,13 +2020-05-16,Union,Louisiana,22111,236,14 +2020-05-17,Union,Louisiana,22111,242,14 +2020-05-18,Union,Louisiana,22111,243,14 +2020-05-19,Union,Louisiana,22111,245,15 +2020-05-20,Union,Louisiana,22111,245,14 +2020-05-21,Union,Louisiana,22111,287,16 +2020-05-22,Union,Louisiana,22111,287,16 +2020-05-23,Union,Louisiana,22111,287,16 +2020-05-24,Union,Louisiana,22111,287,16 +2020-05-25,Union,Louisiana,22111,291,16 +2020-05-26,Union,Louisiana,22111,295,17 +2020-05-27,Union,Louisiana,22111,303,17 +2020-05-28,Union,Louisiana,22111,306,17 +2020-05-29,Union,Louisiana,22111,306,17 +2020-05-30,Union,Louisiana,22111,313,17 +2020-05-31,Union,Louisiana,22111,317,17 +2020-06-01,Union,Louisiana,22111,324,17 +2020-06-02,Union,Louisiana,22111,324,19 +2020-06-03,Union,Louisiana,22111,331,19 +2020-06-04,Union,Louisiana,22111,333,19 +2020-06-05,Union,Louisiana,22111,343,20 +2020-06-06,Union,Louisiana,22111,344,20 +2020-06-07,Union,Louisiana,22111,348,20 +2020-06-08,Union,Louisiana,22111,349,20 +2020-06-09,Union,Louisiana,22111,366,20 +2020-06-10,Union,Louisiana,22111,375,20 +2020-06-11,Union,Louisiana,22111,383,20 +2020-06-12,Union,Louisiana,22111,385,20 +2020-06-13,Union,Louisiana,22111,409,20 +2020-06-14,Union,Louisiana,22111,411,20 +2020-06-15,Union,Louisiana,22111,422,20 +2020-06-16,Union,Louisiana,22111,422,20 +2020-06-17,Union,Louisiana,22111,435,20 +2020-06-18,Union,Louisiana,22111,435,20 +2020-06-19,Union,Louisiana,22111,372,20 +2020-06-20,Union,Louisiana,22111,375,20 +2020-06-21,Union,Louisiana,22111,375,20 +2020-06-22,Union,Louisiana,22111,378,20 +2020-06-23,Union,Louisiana,22111,391,21 +2020-06-24,Union,Louisiana,22111,395,23 +2020-06-25,Union,Louisiana,22111,398,23 +2020-06-26,Union,Louisiana,22111,405,24 +2020-06-27,Union,Louisiana,22111,405,24 +2020-06-28,Union,Louisiana,22111,412,24 +2020-06-29,Union,Louisiana,22111,417,24 +2020-06-30,Union,Louisiana,22111,422,24 +2020-07-01,Union,Louisiana,22111,433,24 +2020-07-02,Union,Louisiana,22111,437,24 +2020-07-03,Union,Louisiana,22111,441,24 +2020-07-04,Union,Louisiana,22111,441,24 +2020-07-05,Union,Louisiana,22111,443,25 +2020-07-06,Union,Louisiana,22111,445,26 +2020-07-07,Union,Louisiana,22111,447,27 +2020-07-08,Union,Louisiana,22111,452,27 +2020-07-09,Union,Louisiana,22111,463,27 +2020-03-26,Vermilion,Louisiana,22113,1,0 +2020-03-27,Vermilion,Louisiana,22113,2,0 +2020-03-28,Vermilion,Louisiana,22113,3,1 +2020-03-29,Vermilion,Louisiana,22113,2,1 +2020-03-30,Vermilion,Louisiana,22113,3,1 +2020-03-31,Vermilion,Louisiana,22113,8,1 +2020-04-01,Vermilion,Louisiana,22113,10,1 +2020-04-02,Vermilion,Louisiana,22113,16,1 +2020-04-03,Vermilion,Louisiana,22113,18,1 +2020-04-04,Vermilion,Louisiana,22113,15,1 +2020-04-05,Vermilion,Louisiana,22113,16,1 +2020-04-06,Vermilion,Louisiana,22113,17,1 +2020-04-07,Vermilion,Louisiana,22113,19,1 +2020-04-08,Vermilion,Louisiana,22113,22,1 +2020-04-09,Vermilion,Louisiana,22113,22,1 +2020-04-10,Vermilion,Louisiana,22113,22,1 +2020-04-11,Vermilion,Louisiana,22113,24,1 +2020-04-12,Vermilion,Louisiana,22113,26,1 +2020-04-13,Vermilion,Louisiana,22113,26,1 +2020-04-14,Vermilion,Louisiana,22113,27,1 +2020-04-15,Vermilion,Louisiana,22113,27,1 +2020-04-16,Vermilion,Louisiana,22113,28,1 +2020-04-17,Vermilion,Louisiana,22113,28,1 +2020-04-18,Vermilion,Louisiana,22113,30,1 +2020-04-19,Vermilion,Louisiana,22113,30,1 +2020-04-20,Vermilion,Louisiana,22113,33,1 +2020-04-21,Vermilion,Louisiana,22113,33,1 +2020-04-22,Vermilion,Louisiana,22113,33,1 +2020-04-23,Vermilion,Louisiana,22113,33,1 +2020-04-24,Vermilion,Louisiana,22113,33,1 +2020-04-25,Vermilion,Louisiana,22113,34,1 +2020-04-26,Vermilion,Louisiana,22113,34,1 +2020-04-27,Vermilion,Louisiana,22113,35,1 +2020-04-28,Vermilion,Louisiana,22113,35,1 +2020-04-29,Vermilion,Louisiana,22113,35,1 +2020-04-30,Vermilion,Louisiana,22113,35,1 +2020-05-01,Vermilion,Louisiana,22113,37,1 +2020-05-02,Vermilion,Louisiana,22113,38,1 +2020-05-03,Vermilion,Louisiana,22113,38,1 +2020-05-04,Vermilion,Louisiana,22113,38,1 +2020-05-05,Vermilion,Louisiana,22113,40,1 +2020-05-06,Vermilion,Louisiana,22113,40,2 +2020-05-07,Vermilion,Louisiana,22113,40,2 +2020-05-08,Vermilion,Louisiana,22113,40,2 +2020-05-09,Vermilion,Louisiana,22113,41,2 +2020-05-10,Vermilion,Louisiana,22113,41,2 +2020-05-11,Vermilion,Louisiana,22113,41,2 +2020-05-12,Vermilion,Louisiana,22113,41,2 +2020-05-13,Vermilion,Louisiana,22113,42,2 +2020-05-14,Vermilion,Louisiana,22113,42,2 +2020-05-15,Vermilion,Louisiana,22113,43,3 +2020-05-16,Vermilion,Louisiana,22113,44,3 +2020-05-17,Vermilion,Louisiana,22113,44,3 +2020-05-18,Vermilion,Louisiana,22113,45,3 +2020-05-19,Vermilion,Louisiana,22113,45,3 +2020-05-20,Vermilion,Louisiana,22113,45,3 +2020-05-21,Vermilion,Louisiana,22113,50,3 +2020-05-22,Vermilion,Louisiana,22113,50,3 +2020-05-23,Vermilion,Louisiana,22113,50,3 +2020-05-24,Vermilion,Louisiana,22113,50,3 +2020-05-25,Vermilion,Louisiana,22113,50,3 +2020-05-26,Vermilion,Louisiana,22113,51,3 +2020-05-27,Vermilion,Louisiana,22113,53,3 +2020-05-28,Vermilion,Louisiana,22113,53,3 +2020-05-29,Vermilion,Louisiana,22113,53,3 +2020-05-30,Vermilion,Louisiana,22113,53,3 +2020-05-31,Vermilion,Louisiana,22113,53,3 +2020-06-01,Vermilion,Louisiana,22113,55,3 +2020-06-02,Vermilion,Louisiana,22113,57,3 +2020-06-03,Vermilion,Louisiana,22113,58,3 +2020-06-04,Vermilion,Louisiana,22113,59,4 +2020-06-05,Vermilion,Louisiana,22113,59,4 +2020-06-06,Vermilion,Louisiana,22113,61,4 +2020-06-07,Vermilion,Louisiana,22113,61,4 +2020-06-08,Vermilion,Louisiana,22113,61,4 +2020-06-09,Vermilion,Louisiana,22113,61,4 +2020-06-10,Vermilion,Louisiana,22113,62,4 +2020-06-11,Vermilion,Louisiana,22113,65,4 +2020-06-12,Vermilion,Louisiana,22113,69,4 +2020-06-13,Vermilion,Louisiana,22113,79,5 +2020-06-14,Vermilion,Louisiana,22113,79,5 +2020-06-15,Vermilion,Louisiana,22113,81,5 +2020-06-16,Vermilion,Louisiana,22113,85,5 +2020-06-17,Vermilion,Louisiana,22113,99,5 +2020-06-18,Vermilion,Louisiana,22113,99,5 +2020-06-19,Vermilion,Louisiana,22113,121,5 +2020-06-20,Vermilion,Louisiana,22113,130,5 +2020-06-21,Vermilion,Louisiana,22113,130,5 +2020-06-22,Vermilion,Louisiana,22113,139,5 +2020-06-23,Vermilion,Louisiana,22113,172,5 +2020-06-24,Vermilion,Louisiana,22113,175,5 +2020-06-25,Vermilion,Louisiana,22113,185,5 +2020-06-26,Vermilion,Louisiana,22113,220,5 +2020-06-27,Vermilion,Louisiana,22113,220,5 +2020-06-28,Vermilion,Louisiana,22113,229,6 +2020-06-29,Vermilion,Louisiana,22113,238,6 +2020-06-30,Vermilion,Louisiana,22113,251,6 +2020-07-01,Vermilion,Louisiana,22113,265,6 +2020-07-02,Vermilion,Louisiana,22113,273,6 +2020-07-03,Vermilion,Louisiana,22113,297,6 +2020-07-04,Vermilion,Louisiana,22113,297,6 +2020-07-05,Vermilion,Louisiana,22113,326,6 +2020-07-06,Vermilion,Louisiana,22113,359,6 +2020-07-07,Vermilion,Louisiana,22113,381,6 +2020-07-08,Vermilion,Louisiana,22113,425,6 +2020-07-09,Vermilion,Louisiana,22113,467,6 +2020-03-24,Vernon,Louisiana,22115,2,0 +2020-03-25,Vernon,Louisiana,22115,2,0 +2020-03-26,Vernon,Louisiana,22115,2,0 +2020-03-27,Vernon,Louisiana,22115,2,0 +2020-03-28,Vernon,Louisiana,22115,2,0 +2020-03-29,Vernon,Louisiana,22115,2,0 +2020-03-30,Vernon,Louisiana,22115,3,0 +2020-03-31,Vernon,Louisiana,22115,3,0 +2020-04-01,Vernon,Louisiana,22115,6,0 +2020-04-02,Vernon,Louisiana,22115,7,0 +2020-04-03,Vernon,Louisiana,22115,8,0 +2020-04-04,Vernon,Louisiana,22115,11,0 +2020-04-05,Vernon,Louisiana,22115,10,0 +2020-04-06,Vernon,Louisiana,22115,10,0 +2020-04-07,Vernon,Louisiana,22115,11,0 +2020-04-08,Vernon,Louisiana,22115,11,0 +2020-04-09,Vernon,Louisiana,22115,11,0 +2020-04-10,Vernon,Louisiana,22115,13,0 +2020-04-11,Vernon,Louisiana,22115,14,0 +2020-04-12,Vernon,Louisiana,22115,14,0 +2020-04-13,Vernon,Louisiana,22115,14,0 +2020-04-14,Vernon,Louisiana,22115,14,1 +2020-04-15,Vernon,Louisiana,22115,14,1 +2020-04-16,Vernon,Louisiana,22115,14,1 +2020-04-17,Vernon,Louisiana,22115,14,1 +2020-04-18,Vernon,Louisiana,22115,14,1 +2020-04-19,Vernon,Louisiana,22115,14,1 +2020-04-20,Vernon,Louisiana,22115,14,1 +2020-04-21,Vernon,Louisiana,22115,14,1 +2020-04-22,Vernon,Louisiana,22115,14,1 +2020-04-23,Vernon,Louisiana,22115,14,1 +2020-04-24,Vernon,Louisiana,22115,15,1 +2020-04-25,Vernon,Louisiana,22115,16,2 +2020-04-26,Vernon,Louisiana,22115,16,2 +2020-04-27,Vernon,Louisiana,22115,16,2 +2020-04-28,Vernon,Louisiana,22115,16,2 +2020-04-29,Vernon,Louisiana,22115,16,2 +2020-04-30,Vernon,Louisiana,22115,16,2 +2020-05-01,Vernon,Louisiana,22115,16,2 +2020-05-02,Vernon,Louisiana,22115,16,2 +2020-05-03,Vernon,Louisiana,22115,16,2 +2020-05-04,Vernon,Louisiana,22115,16,2 +2020-05-05,Vernon,Louisiana,22115,17,2 +2020-05-06,Vernon,Louisiana,22115,17,2 +2020-05-07,Vernon,Louisiana,22115,17,2 +2020-05-08,Vernon,Louisiana,22115,17,2 +2020-05-09,Vernon,Louisiana,22115,18,2 +2020-05-10,Vernon,Louisiana,22115,18,2 +2020-05-11,Vernon,Louisiana,22115,18,2 +2020-05-12,Vernon,Louisiana,22115,18,2 +2020-05-13,Vernon,Louisiana,22115,19,2 +2020-05-14,Vernon,Louisiana,22115,19,2 +2020-05-15,Vernon,Louisiana,22115,19,2 +2020-05-16,Vernon,Louisiana,22115,20,2 +2020-05-17,Vernon,Louisiana,22115,20,2 +2020-05-18,Vernon,Louisiana,22115,21,2 +2020-05-19,Vernon,Louisiana,22115,21,2 +2020-05-20,Vernon,Louisiana,22115,21,2 +2020-05-21,Vernon,Louisiana,22115,22,2 +2020-05-22,Vernon,Louisiana,22115,23,3 +2020-05-23,Vernon,Louisiana,22115,23,3 +2020-05-24,Vernon,Louisiana,22115,23,3 +2020-05-25,Vernon,Louisiana,22115,24,3 +2020-05-26,Vernon,Louisiana,22115,24,3 +2020-05-27,Vernon,Louisiana,22115,24,3 +2020-05-28,Vernon,Louisiana,22115,25,3 +2020-05-29,Vernon,Louisiana,22115,25,3 +2020-05-30,Vernon,Louisiana,22115,25,3 +2020-05-31,Vernon,Louisiana,22115,26,3 +2020-06-01,Vernon,Louisiana,22115,26,3 +2020-06-02,Vernon,Louisiana,22115,28,3 +2020-06-03,Vernon,Louisiana,22115,28,3 +2020-06-04,Vernon,Louisiana,22115,29,3 +2020-06-05,Vernon,Louisiana,22115,31,3 +2020-06-06,Vernon,Louisiana,22115,33,3 +2020-06-07,Vernon,Louisiana,22115,34,3 +2020-06-08,Vernon,Louisiana,22115,34,3 +2020-06-09,Vernon,Louisiana,22115,39,3 +2020-06-10,Vernon,Louisiana,22115,39,3 +2020-06-11,Vernon,Louisiana,22115,39,3 +2020-06-12,Vernon,Louisiana,22115,43,3 +2020-06-13,Vernon,Louisiana,22115,51,3 +2020-06-14,Vernon,Louisiana,22115,53,3 +2020-06-15,Vernon,Louisiana,22115,54,3 +2020-06-16,Vernon,Louisiana,22115,58,3 +2020-06-17,Vernon,Louisiana,22115,67,3 +2020-06-18,Vernon,Louisiana,22115,67,3 +2020-06-19,Vernon,Louisiana,22115,73,4 +2020-06-20,Vernon,Louisiana,22115,74,4 +2020-06-21,Vernon,Louisiana,22115,76,4 +2020-06-22,Vernon,Louisiana,22115,77,5 +2020-06-23,Vernon,Louisiana,22115,89,6 +2020-06-24,Vernon,Louisiana,22115,91,6 +2020-06-25,Vernon,Louisiana,22115,96,6 +2020-06-26,Vernon,Louisiana,22115,107,7 +2020-06-27,Vernon,Louisiana,22115,107,7 +2020-06-28,Vernon,Louisiana,22115,111,7 +2020-06-29,Vernon,Louisiana,22115,116,7 +2020-06-30,Vernon,Louisiana,22115,138,8 +2020-07-01,Vernon,Louisiana,22115,153,8 +2020-07-02,Vernon,Louisiana,22115,159,8 +2020-07-03,Vernon,Louisiana,22115,164,8 +2020-07-04,Vernon,Louisiana,22115,164,8 +2020-07-05,Vernon,Louisiana,22115,179,8 +2020-07-06,Vernon,Louisiana,22115,187,8 +2020-07-07,Vernon,Louisiana,22115,217,9 +2020-07-08,Vernon,Louisiana,22115,223,9 +2020-07-09,Vernon,Louisiana,22115,237,9 +2020-03-17,Washington,Louisiana,22117,1,0 +2020-03-18,Washington,Louisiana,22117,1,0 +2020-03-19,Washington,Louisiana,22117,2,0 +2020-03-20,Washington,Louisiana,22117,2,0 +2020-03-21,Washington,Louisiana,22117,2,0 +2020-03-22,Washington,Louisiana,22117,2,0 +2020-03-23,Washington,Louisiana,22117,2,1 +2020-03-24,Washington,Louisiana,22117,3,1 +2020-03-25,Washington,Louisiana,22117,4,1 +2020-03-26,Washington,Louisiana,22117,6,1 +2020-03-27,Washington,Louisiana,22117,8,1 +2020-03-28,Washington,Louisiana,22117,10,1 +2020-03-29,Washington,Louisiana,22117,12,1 +2020-03-30,Washington,Louisiana,22117,22,1 +2020-03-31,Washington,Louisiana,22117,28,1 +2020-04-01,Washington,Louisiana,22117,39,2 +2020-04-02,Washington,Louisiana,22117,50,2 +2020-04-03,Washington,Louisiana,22117,57,2 +2020-04-04,Washington,Louisiana,22117,75,2 +2020-04-05,Washington,Louisiana,22117,81,2 +2020-04-06,Washington,Louisiana,22117,92,2 +2020-04-07,Washington,Louisiana,22117,100,2 +2020-04-08,Washington,Louisiana,22117,106,5 +2020-04-09,Washington,Louisiana,22117,119,8 +2020-04-10,Washington,Louisiana,22117,136,7 +2020-04-11,Washington,Louisiana,22117,142,7 +2020-04-12,Washington,Louisiana,22117,147,7 +2020-04-13,Washington,Louisiana,22117,156,8 +2020-04-14,Washington,Louisiana,22117,162,9 +2020-04-15,Washington,Louisiana,22117,173,10 +2020-04-16,Washington,Louisiana,22117,179,10 +2020-04-17,Washington,Louisiana,22117,184,11 +2020-04-18,Washington,Louisiana,22117,188,11 +2020-04-19,Washington,Louisiana,22117,191,11 +2020-04-20,Washington,Louisiana,22117,195,11 +2020-04-21,Washington,Louisiana,22117,206,13 +2020-04-22,Washington,Louisiana,22117,214,13 +2020-04-23,Washington,Louisiana,22117,225,13 +2020-04-24,Washington,Louisiana,22117,232,14 +2020-04-25,Washington,Louisiana,22117,241,14 +2020-04-26,Washington,Louisiana,22117,245,14 +2020-04-27,Washington,Louisiana,22117,253,18 +2020-04-28,Washington,Louisiana,22117,256,18 +2020-04-29,Washington,Louisiana,22117,261,18 +2020-04-30,Washington,Louisiana,22117,262,18 +2020-05-01,Washington,Louisiana,22117,273,21 +2020-05-02,Washington,Louisiana,22117,282,21 +2020-05-03,Washington,Louisiana,22117,285,21 +2020-05-04,Washington,Louisiana,22117,291,21 +2020-05-05,Washington,Louisiana,22117,292,23 +2020-05-06,Washington,Louisiana,22117,298,24 +2020-05-07,Washington,Louisiana,22117,308,24 +2020-05-08,Washington,Louisiana,22117,312,24 +2020-05-09,Washington,Louisiana,22117,335,26 +2020-05-10,Washington,Louisiana,22117,337,26 +2020-05-11,Washington,Louisiana,22117,342,26 +2020-05-12,Washington,Louisiana,22117,347,26 +2020-05-13,Washington,Louisiana,22117,350,29 +2020-05-14,Washington,Louisiana,22117,356,29 +2020-05-15,Washington,Louisiana,22117,357,31 +2020-05-16,Washington,Louisiana,22117,363,32 +2020-05-17,Washington,Louisiana,22117,365,32 +2020-05-18,Washington,Louisiana,22117,370,32 +2020-05-19,Washington,Louisiana,22117,375,34 +2020-05-20,Washington,Louisiana,22117,376,36 +2020-05-21,Washington,Louisiana,22117,383,36 +2020-05-22,Washington,Louisiana,22117,389,37 +2020-05-23,Washington,Louisiana,22117,389,37 +2020-05-24,Washington,Louisiana,22117,389,37 +2020-05-25,Washington,Louisiana,22117,398,37 +2020-05-26,Washington,Louisiana,22117,400,37 +2020-05-27,Washington,Louisiana,22117,407,37 +2020-05-28,Washington,Louisiana,22117,410,38 +2020-05-29,Washington,Louisiana,22117,410,38 +2020-05-30,Washington,Louisiana,22117,419,38 +2020-05-31,Washington,Louisiana,22117,425,38 +2020-06-01,Washington,Louisiana,22117,433,38 +2020-06-02,Washington,Louisiana,22117,437,38 +2020-06-03,Washington,Louisiana,22117,444,39 +2020-06-04,Washington,Louisiana,22117,451,41 +2020-06-05,Washington,Louisiana,22117,457,42 +2020-06-06,Washington,Louisiana,22117,462,42 +2020-06-07,Washington,Louisiana,22117,465,42 +2020-06-08,Washington,Louisiana,22117,478,42 +2020-06-09,Washington,Louisiana,22117,489,42 +2020-06-10,Washington,Louisiana,22117,500,42 +2020-06-11,Washington,Louisiana,22117,509,43 +2020-06-12,Washington,Louisiana,22117,520,43 +2020-06-13,Washington,Louisiana,22117,528,43 +2020-06-14,Washington,Louisiana,22117,532,43 +2020-06-15,Washington,Louisiana,22117,546,43 +2020-06-16,Washington,Louisiana,22117,556,43 +2020-06-17,Washington,Louisiana,22117,560,43 +2020-06-18,Washington,Louisiana,22117,560,43 +2020-06-19,Washington,Louisiana,22117,570,43 +2020-06-20,Washington,Louisiana,22117,579,44 +2020-06-21,Washington,Louisiana,22117,581,44 +2020-06-22,Washington,Louisiana,22117,585,44 +2020-06-23,Washington,Louisiana,22117,596,45 +2020-06-24,Washington,Louisiana,22117,607,45 +2020-06-25,Washington,Louisiana,22117,615,45 +2020-06-26,Washington,Louisiana,22117,625,46 +2020-06-27,Washington,Louisiana,22117,625,46 +2020-06-28,Washington,Louisiana,22117,647,46 +2020-06-29,Washington,Louisiana,22117,663,46 +2020-06-30,Washington,Louisiana,22117,678,46 +2020-07-01,Washington,Louisiana,22117,691,46 +2020-07-02,Washington,Louisiana,22117,700,46 +2020-07-03,Washington,Louisiana,22117,705,46 +2020-07-04,Washington,Louisiana,22117,705,46 +2020-07-05,Washington,Louisiana,22117,720,47 +2020-07-06,Washington,Louisiana,22117,726,47 +2020-07-07,Washington,Louisiana,22117,754,47 +2020-07-08,Washington,Louisiana,22117,765,48 +2020-07-09,Washington,Louisiana,22117,778,48 +2020-03-19,Webster,Louisiana,22119,1,0 +2020-03-20,Webster,Louisiana,22119,1,0 +2020-03-21,Webster,Louisiana,22119,1,0 +2020-03-22,Webster,Louisiana,22119,1,0 +2020-03-23,Webster,Louisiana,22119,3,1 +2020-03-24,Webster,Louisiana,22119,3,1 +2020-03-25,Webster,Louisiana,22119,5,1 +2020-03-26,Webster,Louisiana,22119,8,1 +2020-03-27,Webster,Louisiana,22119,9,1 +2020-03-28,Webster,Louisiana,22119,9,1 +2020-03-29,Webster,Louisiana,22119,9,1 +2020-03-30,Webster,Louisiana,22119,11,1 +2020-03-31,Webster,Louisiana,22119,17,1 +2020-04-01,Webster,Louisiana,22119,17,1 +2020-04-02,Webster,Louisiana,22119,19,2 +2020-04-03,Webster,Louisiana,22119,23,2 +2020-04-04,Webster,Louisiana,22119,42,2 +2020-04-05,Webster,Louisiana,22119,49,2 +2020-04-06,Webster,Louisiana,22119,51,2 +2020-04-07,Webster,Louisiana,22119,50,2 +2020-04-08,Webster,Louisiana,22119,51,2 +2020-04-09,Webster,Louisiana,22119,55,2 +2020-04-10,Webster,Louisiana,22119,57,2 +2020-04-11,Webster,Louisiana,22119,60,2 +2020-04-12,Webster,Louisiana,22119,62,2 +2020-04-13,Webster,Louisiana,22119,65,2 +2020-04-14,Webster,Louisiana,22119,65,2 +2020-04-15,Webster,Louisiana,22119,69,4 +2020-04-16,Webster,Louisiana,22119,71,4 +2020-04-17,Webster,Louisiana,22119,74,4 +2020-04-18,Webster,Louisiana,22119,76,4 +2020-04-19,Webster,Louisiana,22119,76,4 +2020-04-20,Webster,Louisiana,22119,78,4 +2020-04-21,Webster,Louisiana,22119,79,4 +2020-04-22,Webster,Louisiana,22119,79,4 +2020-04-23,Webster,Louisiana,22119,81,4 +2020-04-24,Webster,Louisiana,22119,80,4 +2020-04-25,Webster,Louisiana,22119,82,4 +2020-04-26,Webster,Louisiana,22119,83,4 +2020-04-27,Webster,Louisiana,22119,83,4 +2020-04-28,Webster,Louisiana,22119,85,4 +2020-04-29,Webster,Louisiana,22119,85,4 +2020-04-30,Webster,Louisiana,22119,85,4 +2020-05-01,Webster,Louisiana,22119,92,4 +2020-05-02,Webster,Louisiana,22119,92,4 +2020-05-03,Webster,Louisiana,22119,92,4 +2020-05-04,Webster,Louisiana,22119,92,4 +2020-05-05,Webster,Louisiana,22119,95,4 +2020-05-06,Webster,Louisiana,22119,96,4 +2020-05-07,Webster,Louisiana,22119,97,4 +2020-05-08,Webster,Louisiana,22119,97,4 +2020-05-09,Webster,Louisiana,22119,97,4 +2020-05-10,Webster,Louisiana,22119,98,4 +2020-05-11,Webster,Louisiana,22119,100,4 +2020-05-12,Webster,Louisiana,22119,101,4 +2020-05-13,Webster,Louisiana,22119,112,4 +2020-05-14,Webster,Louisiana,22119,112,5 +2020-05-15,Webster,Louisiana,22119,112,5 +2020-05-16,Webster,Louisiana,22119,113,5 +2020-05-17,Webster,Louisiana,22119,113,5 +2020-05-18,Webster,Louisiana,22119,117,5 +2020-05-19,Webster,Louisiana,22119,119,5 +2020-05-20,Webster,Louisiana,22119,119,5 +2020-05-21,Webster,Louisiana,22119,126,5 +2020-05-22,Webster,Louisiana,22119,128,5 +2020-05-23,Webster,Louisiana,22119,128,6 +2020-05-24,Webster,Louisiana,22119,136,6 +2020-05-25,Webster,Louisiana,22119,139,6 +2020-05-26,Webster,Louisiana,22119,139,6 +2020-05-27,Webster,Louisiana,22119,142,6 +2020-05-28,Webster,Louisiana,22119,143,6 +2020-05-29,Webster,Louisiana,22119,143,7 +2020-05-30,Webster,Louisiana,22119,147,7 +2020-05-31,Webster,Louisiana,22119,147,7 +2020-06-01,Webster,Louisiana,22119,147,7 +2020-06-02,Webster,Louisiana,22119,157,7 +2020-06-03,Webster,Louisiana,22119,163,7 +2020-06-04,Webster,Louisiana,22119,171,7 +2020-06-05,Webster,Louisiana,22119,175,8 +2020-06-06,Webster,Louisiana,22119,179,8 +2020-06-07,Webster,Louisiana,22119,182,8 +2020-06-08,Webster,Louisiana,22119,185,8 +2020-06-09,Webster,Louisiana,22119,195,8 +2020-06-10,Webster,Louisiana,22119,203,8 +2020-06-11,Webster,Louisiana,22119,204,8 +2020-06-12,Webster,Louisiana,22119,206,8 +2020-06-13,Webster,Louisiana,22119,242,8 +2020-06-14,Webster,Louisiana,22119,244,8 +2020-06-15,Webster,Louisiana,22119,248,8 +2020-06-16,Webster,Louisiana,22119,252,8 +2020-06-17,Webster,Louisiana,22119,331,10 +2020-06-18,Webster,Louisiana,22119,331,10 +2020-06-19,Webster,Louisiana,22119,311,9 +2020-06-20,Webster,Louisiana,22119,316,9 +2020-06-21,Webster,Louisiana,22119,321,9 +2020-06-22,Webster,Louisiana,22119,323,9 +2020-06-23,Webster,Louisiana,22119,352,9 +2020-06-24,Webster,Louisiana,22119,361,9 +2020-06-25,Webster,Louisiana,22119,368,9 +2020-06-26,Webster,Louisiana,22119,391,10 +2020-06-27,Webster,Louisiana,22119,391,10 +2020-06-28,Webster,Louisiana,22119,402,10 +2020-06-29,Webster,Louisiana,22119,409,10 +2020-06-30,Webster,Louisiana,22119,418,11 +2020-07-01,Webster,Louisiana,22119,423,11 +2020-07-02,Webster,Louisiana,22119,426,11 +2020-07-03,Webster,Louisiana,22119,431,12 +2020-07-04,Webster,Louisiana,22119,431,12 +2020-07-05,Webster,Louisiana,22119,434,12 +2020-07-06,Webster,Louisiana,22119,437,12 +2020-07-07,Webster,Louisiana,22119,448,12 +2020-07-08,Webster,Louisiana,22119,459,12 +2020-07-09,Webster,Louisiana,22119,490,12 +2020-03-19,West Baton Rouge,Louisiana,22121,2,0 +2020-03-20,West Baton Rouge,Louisiana,22121,3,0 +2020-03-21,West Baton Rouge,Louisiana,22121,3,0 +2020-03-22,West Baton Rouge,Louisiana,22121,3,0 +2020-03-23,West Baton Rouge,Louisiana,22121,4,1 +2020-03-24,West Baton Rouge,Louisiana,22121,5,1 +2020-03-25,West Baton Rouge,Louisiana,22121,7,1 +2020-03-26,West Baton Rouge,Louisiana,22121,8,1 +2020-03-27,West Baton Rouge,Louisiana,22121,11,1 +2020-03-28,West Baton Rouge,Louisiana,22121,12,1 +2020-03-29,West Baton Rouge,Louisiana,22121,12,1 +2020-03-30,West Baton Rouge,Louisiana,22121,12,1 +2020-03-31,West Baton Rouge,Louisiana,22121,13,1 +2020-04-01,West Baton Rouge,Louisiana,22121,14,1 +2020-04-02,West Baton Rouge,Louisiana,22121,19,1 +2020-04-03,West Baton Rouge,Louisiana,22121,23,3 +2020-04-04,West Baton Rouge,Louisiana,22121,40,4 +2020-04-05,West Baton Rouge,Louisiana,22121,40,7 +2020-04-06,West Baton Rouge,Louisiana,22121,45,7 +2020-04-07,West Baton Rouge,Louisiana,22121,52,7 +2020-04-08,West Baton Rouge,Louisiana,22121,54,9 +2020-04-09,West Baton Rouge,Louisiana,22121,57,9 +2020-04-10,West Baton Rouge,Louisiana,22121,61,9 +2020-04-11,West Baton Rouge,Louisiana,22121,66,9 +2020-04-12,West Baton Rouge,Louisiana,22121,68,9 +2020-04-13,West Baton Rouge,Louisiana,22121,72,9 +2020-04-14,West Baton Rouge,Louisiana,22121,76,9 +2020-04-15,West Baton Rouge,Louisiana,22121,78,9 +2020-04-16,West Baton Rouge,Louisiana,22121,81,9 +2020-04-17,West Baton Rouge,Louisiana,22121,83,9 +2020-04-18,West Baton Rouge,Louisiana,22121,86,10 +2020-04-19,West Baton Rouge,Louisiana,22121,88,10 +2020-04-20,West Baton Rouge,Louisiana,22121,90,10 +2020-04-21,West Baton Rouge,Louisiana,22121,90,12 +2020-04-22,West Baton Rouge,Louisiana,22121,90,12 +2020-04-23,West Baton Rouge,Louisiana,22121,90,12 +2020-04-24,West Baton Rouge,Louisiana,22121,93,13 +2020-04-25,West Baton Rouge,Louisiana,22121,92,15 +2020-04-26,West Baton Rouge,Louisiana,22121,91,15 +2020-04-27,West Baton Rouge,Louisiana,22121,94,16 +2020-04-28,West Baton Rouge,Louisiana,22121,94,16 +2020-04-29,West Baton Rouge,Louisiana,22121,96,16 +2020-04-30,West Baton Rouge,Louisiana,22121,98,18 +2020-05-01,West Baton Rouge,Louisiana,22121,108,19 +2020-05-02,West Baton Rouge,Louisiana,22121,110,19 +2020-05-03,West Baton Rouge,Louisiana,22121,110,22 +2020-05-04,West Baton Rouge,Louisiana,22121,111,22 +2020-05-05,West Baton Rouge,Louisiana,22121,115,23 +2020-05-06,West Baton Rouge,Louisiana,22121,118,24 +2020-05-07,West Baton Rouge,Louisiana,22121,118,24 +2020-05-08,West Baton Rouge,Louisiana,22121,119,24 +2020-05-09,West Baton Rouge,Louisiana,22121,122,25 +2020-05-10,West Baton Rouge,Louisiana,22121,123,26 +2020-05-11,West Baton Rouge,Louisiana,22121,123,29 +2020-05-12,West Baton Rouge,Louisiana,22121,124,28 +2020-05-13,West Baton Rouge,Louisiana,22121,124,30 +2020-05-14,West Baton Rouge,Louisiana,22121,150,30 +2020-05-15,West Baton Rouge,Louisiana,22121,150,30 +2020-05-16,West Baton Rouge,Louisiana,22121,148,30 +2020-05-17,West Baton Rouge,Louisiana,22121,148,30 +2020-05-18,West Baton Rouge,Louisiana,22121,148,30 +2020-05-19,West Baton Rouge,Louisiana,22121,148,30 +2020-05-20,West Baton Rouge,Louisiana,22121,149,30 +2020-05-21,West Baton Rouge,Louisiana,22121,152,30 +2020-05-22,West Baton Rouge,Louisiana,22121,154,30 +2020-05-23,West Baton Rouge,Louisiana,22121,154,30 +2020-05-24,West Baton Rouge,Louisiana,22121,154,30 +2020-05-25,West Baton Rouge,Louisiana,22121,156,30 +2020-05-26,West Baton Rouge,Louisiana,22121,157,30 +2020-05-27,West Baton Rouge,Louisiana,22121,158,30 +2020-05-28,West Baton Rouge,Louisiana,22121,159,31 +2020-05-29,West Baton Rouge,Louisiana,22121,159,31 +2020-05-30,West Baton Rouge,Louisiana,22121,161,30 +2020-05-31,West Baton Rouge,Louisiana,22121,166,30 +2020-06-01,West Baton Rouge,Louisiana,22121,175,30 +2020-06-02,West Baton Rouge,Louisiana,22121,176,31 +2020-06-03,West Baton Rouge,Louisiana,22121,176,31 +2020-06-04,West Baton Rouge,Louisiana,22121,180,31 +2020-06-05,West Baton Rouge,Louisiana,22121,180,31 +2020-06-06,West Baton Rouge,Louisiana,22121,183,31 +2020-06-07,West Baton Rouge,Louisiana,22121,185,31 +2020-06-08,West Baton Rouge,Louisiana,22121,186,31 +2020-06-09,West Baton Rouge,Louisiana,22121,192,31 +2020-06-10,West Baton Rouge,Louisiana,22121,195,31 +2020-06-11,West Baton Rouge,Louisiana,22121,197,31 +2020-06-12,West Baton Rouge,Louisiana,22121,200,31 +2020-06-13,West Baton Rouge,Louisiana,22121,202,31 +2020-06-14,West Baton Rouge,Louisiana,22121,204,31 +2020-06-15,West Baton Rouge,Louisiana,22121,204,31 +2020-06-16,West Baton Rouge,Louisiana,22121,204,31 +2020-06-17,West Baton Rouge,Louisiana,22121,205,30 +2020-06-18,West Baton Rouge,Louisiana,22121,205,30 +2020-06-19,West Baton Rouge,Louisiana,22121,231,30 +2020-06-20,West Baton Rouge,Louisiana,22121,232,30 +2020-06-21,West Baton Rouge,Louisiana,22121,234,30 +2020-06-22,West Baton Rouge,Louisiana,22121,234,30 +2020-06-23,West Baton Rouge,Louisiana,22121,232,30 +2020-06-24,West Baton Rouge,Louisiana,22121,239,30 +2020-06-25,West Baton Rouge,Louisiana,22121,243,30 +2020-06-26,West Baton Rouge,Louisiana,22121,243,30 +2020-06-27,West Baton Rouge,Louisiana,22121,243,30 +2020-06-28,West Baton Rouge,Louisiana,22121,248,30 +2020-06-29,West Baton Rouge,Louisiana,22121,252,30 +2020-06-30,West Baton Rouge,Louisiana,22121,258,30 +2020-07-01,West Baton Rouge,Louisiana,22121,264,30 +2020-07-02,West Baton Rouge,Louisiana,22121,278,30 +2020-07-03,West Baton Rouge,Louisiana,22121,290,30 +2020-07-04,West Baton Rouge,Louisiana,22121,290,30 +2020-07-05,West Baton Rouge,Louisiana,22121,309,30 +2020-07-06,West Baton Rouge,Louisiana,22121,310,30 +2020-07-07,West Baton Rouge,Louisiana,22121,326,30 +2020-07-08,West Baton Rouge,Louisiana,22121,336,31 +2020-07-09,West Baton Rouge,Louisiana,22121,342,31 +2020-04-06,West Carroll,Louisiana,22123,1,0 +2020-04-07,West Carroll,Louisiana,22123,1,0 +2020-04-08,West Carroll,Louisiana,22123,1,0 +2020-04-09,West Carroll,Louisiana,22123,1,0 +2020-04-10,West Carroll,Louisiana,22123,3,0 +2020-04-11,West Carroll,Louisiana,22123,4,0 +2020-04-12,West Carroll,Louisiana,22123,4,0 +2020-04-13,West Carroll,Louisiana,22123,4,0 +2020-04-14,West Carroll,Louisiana,22123,4,0 +2020-04-15,West Carroll,Louisiana,22123,4,0 +2020-04-16,West Carroll,Louisiana,22123,4,0 +2020-04-17,West Carroll,Louisiana,22123,4,0 +2020-04-18,West Carroll,Louisiana,22123,4,0 +2020-04-19,West Carroll,Louisiana,22123,4,0 +2020-04-20,West Carroll,Louisiana,22123,4,0 +2020-04-21,West Carroll,Louisiana,22123,4,0 +2020-04-22,West Carroll,Louisiana,22123,4,0 +2020-04-23,West Carroll,Louisiana,22123,4,0 +2020-04-24,West Carroll,Louisiana,22123,4,0 +2020-04-25,West Carroll,Louisiana,22123,4,0 +2020-04-26,West Carroll,Louisiana,22123,4,0 +2020-04-27,West Carroll,Louisiana,22123,4,0 +2020-04-28,West Carroll,Louisiana,22123,4,0 +2020-04-29,West Carroll,Louisiana,22123,4,0 +2020-04-30,West Carroll,Louisiana,22123,4,0 +2020-05-01,West Carroll,Louisiana,22123,4,0 +2020-05-02,West Carroll,Louisiana,22123,4,0 +2020-05-03,West Carroll,Louisiana,22123,4,0 +2020-05-04,West Carroll,Louisiana,22123,4,0 +2020-05-05,West Carroll,Louisiana,22123,4,0 +2020-05-06,West Carroll,Louisiana,22123,4,0 +2020-05-07,West Carroll,Louisiana,22123,4,0 +2020-05-08,West Carroll,Louisiana,22123,4,0 +2020-05-09,West Carroll,Louisiana,22123,4,0 +2020-05-10,West Carroll,Louisiana,22123,4,0 +2020-05-11,West Carroll,Louisiana,22123,5,0 +2020-05-12,West Carroll,Louisiana,22123,5,0 +2020-05-13,West Carroll,Louisiana,22123,5,0 +2020-05-14,West Carroll,Louisiana,22123,6,0 +2020-05-15,West Carroll,Louisiana,22123,11,0 +2020-05-16,West Carroll,Louisiana,22123,12,0 +2020-05-17,West Carroll,Louisiana,22123,13,0 +2020-05-18,West Carroll,Louisiana,22123,18,0 +2020-05-19,West Carroll,Louisiana,22123,19,0 +2020-05-20,West Carroll,Louisiana,22123,19,0 +2020-05-21,West Carroll,Louisiana,22123,21,0 +2020-05-22,West Carroll,Louisiana,22123,33,0 +2020-05-23,West Carroll,Louisiana,22123,33,0 +2020-05-24,West Carroll,Louisiana,22123,33,0 +2020-05-25,West Carroll,Louisiana,22123,39,0 +2020-05-26,West Carroll,Louisiana,22123,41,0 +2020-05-27,West Carroll,Louisiana,22123,44,0 +2020-05-28,West Carroll,Louisiana,22123,56,0 +2020-05-29,West Carroll,Louisiana,22123,56,0 +2020-05-30,West Carroll,Louisiana,22123,61,0 +2020-05-31,West Carroll,Louisiana,22123,62,0 +2020-06-01,West Carroll,Louisiana,22123,64,0 +2020-06-02,West Carroll,Louisiana,22123,66,0 +2020-06-03,West Carroll,Louisiana,22123,68,0 +2020-06-04,West Carroll,Louisiana,22123,68,0 +2020-06-05,West Carroll,Louisiana,22123,68,0 +2020-06-06,West Carroll,Louisiana,22123,74,0 +2020-06-07,West Carroll,Louisiana,22123,84,1 +2020-06-08,West Carroll,Louisiana,22123,86,1 +2020-06-09,West Carroll,Louisiana,22123,90,1 +2020-06-10,West Carroll,Louisiana,22123,99,1 +2020-06-11,West Carroll,Louisiana,22123,99,1 +2020-06-12,West Carroll,Louisiana,22123,99,1 +2020-06-13,West Carroll,Louisiana,22123,104,2 +2020-06-14,West Carroll,Louisiana,22123,112,3 +2020-06-15,West Carroll,Louisiana,22123,115,3 +2020-06-16,West Carroll,Louisiana,22123,114,3 +2020-06-17,West Carroll,Louisiana,22123,115,3 +2020-06-18,West Carroll,Louisiana,22123,115,3 +2020-06-19,West Carroll,Louisiana,22123,103,3 +2020-06-20,West Carroll,Louisiana,22123,105,3 +2020-06-21,West Carroll,Louisiana,22123,107,3 +2020-06-22,West Carroll,Louisiana,22123,108,3 +2020-06-23,West Carroll,Louisiana,22123,107,3 +2020-06-24,West Carroll,Louisiana,22123,111,3 +2020-06-25,West Carroll,Louisiana,22123,111,3 +2020-06-26,West Carroll,Louisiana,22123,114,5 +2020-06-27,West Carroll,Louisiana,22123,114,5 +2020-06-28,West Carroll,Louisiana,22123,115,5 +2020-06-29,West Carroll,Louisiana,22123,118,5 +2020-06-30,West Carroll,Louisiana,22123,124,5 +2020-07-01,West Carroll,Louisiana,22123,134,5 +2020-07-02,West Carroll,Louisiana,22123,138,5 +2020-07-03,West Carroll,Louisiana,22123,141,5 +2020-07-04,West Carroll,Louisiana,22123,141,5 +2020-07-05,West Carroll,Louisiana,22123,149,5 +2020-07-06,West Carroll,Louisiana,22123,152,5 +2020-07-07,West Carroll,Louisiana,22123,155,5 +2020-07-08,West Carroll,Louisiana,22123,158,5 +2020-07-09,West Carroll,Louisiana,22123,161,5 +2020-03-27,West Feliciana,Louisiana,22125,1,0 +2020-03-28,West Feliciana,Louisiana,22125,4,0 +2020-03-29,West Feliciana,Louisiana,22125,4,0 +2020-03-30,West Feliciana,Louisiana,22125,4,0 +2020-03-31,West Feliciana,Louisiana,22125,4,0 +2020-04-01,West Feliciana,Louisiana,22125,8,0 +2020-04-02,West Feliciana,Louisiana,22125,10,0 +2020-04-03,West Feliciana,Louisiana,22125,11,0 +2020-04-04,West Feliciana,Louisiana,22125,18,0 +2020-04-05,West Feliciana,Louisiana,22125,19,0 +2020-04-06,West Feliciana,Louisiana,22125,30,0 +2020-04-07,West Feliciana,Louisiana,22125,31,0 +2020-04-08,West Feliciana,Louisiana,22125,32,0 +2020-04-09,West Feliciana,Louisiana,22125,38,0 +2020-04-10,West Feliciana,Louisiana,22125,41,0 +2020-04-11,West Feliciana,Louisiana,22125,45,0 +2020-04-12,West Feliciana,Louisiana,22125,46,0 +2020-04-13,West Feliciana,Louisiana,22125,46,0 +2020-04-14,West Feliciana,Louisiana,22125,46,0 +2020-04-15,West Feliciana,Louisiana,22125,47,0 +2020-04-16,West Feliciana,Louisiana,22125,55,0 +2020-04-17,West Feliciana,Louisiana,22125,60,0 +2020-04-18,West Feliciana,Louisiana,22125,74,0 +2020-04-19,West Feliciana,Louisiana,22125,74,0 +2020-04-20,West Feliciana,Louisiana,22125,78,1 +2020-04-21,West Feliciana,Louisiana,22125,81,1 +2020-04-22,West Feliciana,Louisiana,22125,82,1 +2020-04-23,West Feliciana,Louisiana,22125,84,2 +2020-04-24,West Feliciana,Louisiana,22125,89,2 +2020-04-25,West Feliciana,Louisiana,22125,97,3 +2020-04-26,West Feliciana,Louisiana,22125,103,3 +2020-04-27,West Feliciana,Louisiana,22125,104,3 +2020-04-28,West Feliciana,Louisiana,22125,109,3 +2020-04-29,West Feliciana,Louisiana,22125,111,3 +2020-04-30,West Feliciana,Louisiana,22125,115,2 +2020-05-01,West Feliciana,Louisiana,22125,129,2 +2020-05-02,West Feliciana,Louisiana,22125,142,2 +2020-05-03,West Feliciana,Louisiana,22125,149,3 +2020-05-04,West Feliciana,Louisiana,22125,153,3 +2020-05-05,West Feliciana,Louisiana,22125,156,4 +2020-05-06,West Feliciana,Louisiana,22125,158,4 +2020-05-07,West Feliciana,Louisiana,22125,174,5 +2020-05-08,West Feliciana,Louisiana,22125,176,6 +2020-05-09,West Feliciana,Louisiana,22125,183,6 +2020-05-10,West Feliciana,Louisiana,22125,184,6 +2020-05-11,West Feliciana,Louisiana,22125,184,6 +2020-05-12,West Feliciana,Louisiana,22125,186,8 +2020-05-13,West Feliciana,Louisiana,22125,187,7 +2020-05-14,West Feliciana,Louisiana,22125,181,7 +2020-05-15,West Feliciana,Louisiana,22125,184,8 +2020-05-16,West Feliciana,Louisiana,22125,184,8 +2020-05-17,West Feliciana,Louisiana,22125,186,8 +2020-05-18,West Feliciana,Louisiana,22125,188,8 +2020-05-19,West Feliciana,Louisiana,22125,190,8 +2020-05-20,West Feliciana,Louisiana,22125,192,8 +2020-05-21,West Feliciana,Louisiana,22125,193,8 +2020-05-22,West Feliciana,Louisiana,22125,194,8 +2020-05-23,West Feliciana,Louisiana,22125,195,10 +2020-05-24,West Feliciana,Louisiana,22125,196,10 +2020-05-25,West Feliciana,Louisiana,22125,200,10 +2020-05-26,West Feliciana,Louisiana,22125,205,12 +2020-05-27,West Feliciana,Louisiana,22125,205,12 +2020-05-28,West Feliciana,Louisiana,22125,205,12 +2020-05-29,West Feliciana,Louisiana,22125,205,12 +2020-05-30,West Feliciana,Louisiana,22125,208,13 +2020-05-31,West Feliciana,Louisiana,22125,209,13 +2020-06-01,West Feliciana,Louisiana,22125,211,13 +2020-06-02,West Feliciana,Louisiana,22125,212,13 +2020-06-03,West Feliciana,Louisiana,22125,215,13 +2020-06-04,West Feliciana,Louisiana,22125,216,13 +2020-06-05,West Feliciana,Louisiana,22125,220,13 +2020-06-06,West Feliciana,Louisiana,22125,220,13 +2020-06-07,West Feliciana,Louisiana,22125,222,13 +2020-06-08,West Feliciana,Louisiana,22125,222,13 +2020-06-09,West Feliciana,Louisiana,22125,224,13 +2020-06-10,West Feliciana,Louisiana,22125,225,13 +2020-06-11,West Feliciana,Louisiana,22125,225,13 +2020-06-12,West Feliciana,Louisiana,22125,226,13 +2020-06-13,West Feliciana,Louisiana,22125,229,14 +2020-06-14,West Feliciana,Louisiana,22125,231,14 +2020-06-15,West Feliciana,Louisiana,22125,231,14 +2020-06-16,West Feliciana,Louisiana,22125,234,14 +2020-06-17,West Feliciana,Louisiana,22125,239,14 +2020-06-18,West Feliciana,Louisiana,22125,239,14 +2020-06-19,West Feliciana,Louisiana,22125,226,14 +2020-06-20,West Feliciana,Louisiana,22125,226,14 +2020-06-21,West Feliciana,Louisiana,22125,226,14 +2020-06-22,West Feliciana,Louisiana,22125,226,14 +2020-06-23,West Feliciana,Louisiana,22125,241,14 +2020-06-24,West Feliciana,Louisiana,22125,241,14 +2020-06-25,West Feliciana,Louisiana,22125,241,14 +2020-06-26,West Feliciana,Louisiana,22125,241,14 +2020-06-27,West Feliciana,Louisiana,22125,241,14 +2020-06-28,West Feliciana,Louisiana,22125,242,14 +2020-06-29,West Feliciana,Louisiana,22125,242,14 +2020-06-30,West Feliciana,Louisiana,22125,246,14 +2020-07-01,West Feliciana,Louisiana,22125,246,14 +2020-07-02,West Feliciana,Louisiana,22125,246,14 +2020-07-03,West Feliciana,Louisiana,22125,247,14 +2020-07-04,West Feliciana,Louisiana,22125,247,14 +2020-07-05,West Feliciana,Louisiana,22125,247,14 +2020-07-06,West Feliciana,Louisiana,22125,247,14 +2020-07-07,West Feliciana,Louisiana,22125,252,14 +2020-07-08,West Feliciana,Louisiana,22125,252,14 +2020-07-09,West Feliciana,Louisiana,22125,254,14 +2020-03-25,Winn,Louisiana,22127,1,0 +2020-03-26,Winn,Louisiana,22127,1,0 +2020-03-27,Winn,Louisiana,22127,1,0 +2020-03-28,Winn,Louisiana,22127,1,0 +2020-03-29,Winn,Louisiana,22127,1,0 +2020-03-30,Winn,Louisiana,22127,1,0 +2020-03-31,Winn,Louisiana,22127,1,0 +2020-04-01,Winn,Louisiana,22127,1,0 +2020-04-02,Winn,Louisiana,22127,2,0 +2020-04-03,Winn,Louisiana,22127,2,0 +2020-04-04,Winn,Louisiana,22127,2,0 +2020-04-05,Winn,Louisiana,22127,2,1 +2020-04-06,Winn,Louisiana,22127,2,1 +2020-04-07,Winn,Louisiana,22127,3,1 +2020-04-08,Winn,Louisiana,22127,5,2 +2020-04-09,Winn,Louisiana,22127,7,2 +2020-04-10,Winn,Louisiana,22127,8,2 +2020-04-11,Winn,Louisiana,22127,9,2 +2020-04-12,Winn,Louisiana,22127,12,2 +2020-04-13,Winn,Louisiana,22127,12,2 +2020-04-14,Winn,Louisiana,22127,12,2 +2020-04-15,Winn,Louisiana,22127,12,2 +2020-04-16,Winn,Louisiana,22127,17,2 +2020-04-17,Winn,Louisiana,22127,16,2 +2020-04-18,Winn,Louisiana,22127,16,2 +2020-04-19,Winn,Louisiana,22127,19,2 +2020-04-20,Winn,Louisiana,22127,19,2 +2020-04-21,Winn,Louisiana,22127,19,2 +2020-04-22,Winn,Louisiana,22127,19,2 +2020-04-23,Winn,Louisiana,22127,19,2 +2020-04-24,Winn,Louisiana,22127,20,2 +2020-04-25,Winn,Louisiana,22127,20,2 +2020-04-26,Winn,Louisiana,22127,20,2 +2020-04-27,Winn,Louisiana,22127,22,2 +2020-04-28,Winn,Louisiana,22127,26,2 +2020-04-29,Winn,Louisiana,22127,32,2 +2020-04-30,Winn,Louisiana,22127,32,2 +2020-05-01,Winn,Louisiana,22127,38,2 +2020-05-02,Winn,Louisiana,22127,41,2 +2020-05-03,Winn,Louisiana,22127,42,2 +2020-05-04,Winn,Louisiana,22127,44,2 +2020-05-05,Winn,Louisiana,22127,46,2 +2020-05-06,Winn,Louisiana,22127,47,2 +2020-05-07,Winn,Louisiana,22127,48,2 +2020-05-08,Winn,Louisiana,22127,49,2 +2020-05-09,Winn,Louisiana,22127,51,2 +2020-05-10,Winn,Louisiana,22127,52,2 +2020-05-11,Winn,Louisiana,22127,52,2 +2020-05-12,Winn,Louisiana,22127,54,2 +2020-05-13,Winn,Louisiana,22127,64,2 +2020-05-14,Winn,Louisiana,22127,66,2 +2020-05-15,Winn,Louisiana,22127,76,2 +2020-05-16,Winn,Louisiana,22127,80,2 +2020-05-17,Winn,Louisiana,22127,84,2 +2020-05-18,Winn,Louisiana,22127,89,2 +2020-05-19,Winn,Louisiana,22127,90,2 +2020-05-20,Winn,Louisiana,22127,90,2 +2020-05-21,Winn,Louisiana,22127,100,2 +2020-05-22,Winn,Louisiana,22127,112,2 +2020-05-23,Winn,Louisiana,22127,112,2 +2020-05-24,Winn,Louisiana,22127,112,2 +2020-05-25,Winn,Louisiana,22127,126,2 +2020-05-26,Winn,Louisiana,22127,145,2 +2020-05-27,Winn,Louisiana,22127,150,2 +2020-05-28,Winn,Louisiana,22127,153,2 +2020-05-29,Winn,Louisiana,22127,153,2 +2020-05-30,Winn,Louisiana,22127,163,2 +2020-05-31,Winn,Louisiana,22127,164,2 +2020-06-01,Winn,Louisiana,22127,173,2 +2020-06-02,Winn,Louisiana,22127,174,2 +2020-06-03,Winn,Louisiana,22127,178,2 +2020-06-04,Winn,Louisiana,22127,178,2 +2020-06-05,Winn,Louisiana,22127,182,2 +2020-06-06,Winn,Louisiana,22127,183,2 +2020-06-07,Winn,Louisiana,22127,186,2 +2020-06-08,Winn,Louisiana,22127,187,2 +2020-06-09,Winn,Louisiana,22127,190,2 +2020-06-10,Winn,Louisiana,22127,194,2 +2020-06-11,Winn,Louisiana,22127,195,3 +2020-06-12,Winn,Louisiana,22127,197,3 +2020-06-13,Winn,Louisiana,22127,211,3 +2020-06-14,Winn,Louisiana,22127,212,3 +2020-06-15,Winn,Louisiana,22127,214,3 +2020-06-16,Winn,Louisiana,22127,215,4 +2020-06-17,Winn,Louisiana,22127,215,5 +2020-06-18,Winn,Louisiana,22127,215,5 +2020-06-19,Winn,Louisiana,22127,224,5 +2020-06-20,Winn,Louisiana,22127,225,5 +2020-06-21,Winn,Louisiana,22127,226,5 +2020-06-22,Winn,Louisiana,22127,226,5 +2020-06-23,Winn,Louisiana,22127,230,5 +2020-06-24,Winn,Louisiana,22127,230,5 +2020-06-25,Winn,Louisiana,22127,231,5 +2020-06-26,Winn,Louisiana,22127,238,5 +2020-06-27,Winn,Louisiana,22127,238,5 +2020-06-28,Winn,Louisiana,22127,241,5 +2020-06-29,Winn,Louisiana,22127,242,5 +2020-06-30,Winn,Louisiana,22127,242,5 +2020-07-01,Winn,Louisiana,22127,244,5 +2020-07-02,Winn,Louisiana,22127,247,5 +2020-07-03,Winn,Louisiana,22127,248,5 +2020-07-04,Winn,Louisiana,22127,248,5 +2020-07-05,Winn,Louisiana,22127,254,5 +2020-07-06,Winn,Louisiana,22127,258,5 +2020-07-07,Winn,Louisiana,22127,263,5 +2020-07-08,Winn,Louisiana,22127,270,5 +2020-07-09,Winn,Louisiana,22127,273,5 +2020-03-12,Androscoggin,Maine,23001,1,0 +2020-03-13,Androscoggin,Maine,23001,1,0 +2020-03-14,Androscoggin,Maine,23001,1,0 +2020-03-15,Androscoggin,Maine,23001,1,0 +2020-03-16,Androscoggin,Maine,23001,1,0 +2020-03-17,Androscoggin,Maine,23001,3,0 +2020-03-18,Androscoggin,Maine,23001,3,0 +2020-03-19,Androscoggin,Maine,23001,3,0 +2020-03-20,Androscoggin,Maine,23001,3,0 +2020-03-21,Androscoggin,Maine,23001,3,0 +2020-03-22,Androscoggin,Maine,23001,3,0 +2020-03-23,Androscoggin,Maine,23001,3,0 +2020-03-24,Androscoggin,Maine,23001,3,0 +2020-03-25,Androscoggin,Maine,23001,4,0 +2020-03-26,Androscoggin,Maine,23001,5,0 +2020-03-27,Androscoggin,Maine,23001,6,0 +2020-03-28,Androscoggin,Maine,23001,7,0 +2020-03-29,Androscoggin,Maine,23001,8,0 +2020-03-30,Androscoggin,Maine,23001,8,0 +2020-03-31,Androscoggin,Maine,23001,11,0 +2020-04-01,Androscoggin,Maine,23001,12,0 +2020-04-02,Androscoggin,Maine,23001,12,0 +2020-04-03,Androscoggin,Maine,23001,19,0 +2020-04-04,Androscoggin,Maine,23001,20,0 +2020-04-05,Androscoggin,Maine,23001,20,0 +2020-04-06,Androscoggin,Maine,23001,23,0 +2020-04-07,Androscoggin,Maine,23001,23,0 +2020-04-08,Androscoggin,Maine,23001,23,0 +2020-04-09,Androscoggin,Maine,23001,24,0 +2020-04-10,Androscoggin,Maine,23001,24,0 +2020-04-11,Androscoggin,Maine,23001,27,0 +2020-04-12,Androscoggin,Maine,23001,28,0 +2020-04-13,Androscoggin,Maine,23001,28,0 +2020-04-14,Androscoggin,Maine,23001,29,0 +2020-04-15,Androscoggin,Maine,23001,31,1 +2020-04-16,Androscoggin,Maine,23001,32,1 +2020-04-17,Androscoggin,Maine,23001,32,1 +2020-04-18,Androscoggin,Maine,23001,35,1 +2020-04-19,Androscoggin,Maine,23001,35,1 +2020-04-20,Androscoggin,Maine,23001,35,1 +2020-04-21,Androscoggin,Maine,23001,36,1 +2020-04-22,Androscoggin,Maine,23001,36,1 +2020-04-23,Androscoggin,Maine,23001,37,1 +2020-04-24,Androscoggin,Maine,23001,38,1 +2020-04-25,Androscoggin,Maine,23001,41,2 +2020-04-26,Androscoggin,Maine,23001,42,2 +2020-04-27,Androscoggin,Maine,23001,42,2 +2020-04-28,Androscoggin,Maine,23001,42,2 +2020-04-29,Androscoggin,Maine,23001,43,2 +2020-04-30,Androscoggin,Maine,23001,48,2 +2020-05-01,Androscoggin,Maine,23001,52,2 +2020-05-02,Androscoggin,Maine,23001,54,2 +2020-05-03,Androscoggin,Maine,23001,56,2 +2020-05-04,Androscoggin,Maine,23001,60,2 +2020-05-05,Androscoggin,Maine,23001,62,2 +2020-05-06,Androscoggin,Maine,23001,67,2 +2020-05-07,Androscoggin,Maine,23001,74,2 +2020-05-08,Androscoggin,Maine,23001,78,2 +2020-05-09,Androscoggin,Maine,23001,82,2 +2020-05-10,Androscoggin,Maine,23001,84,2 +2020-05-11,Androscoggin,Maine,23001,92,2 +2020-05-12,Androscoggin,Maine,23001,97,2 +2020-05-13,Androscoggin,Maine,23001,103,2 +2020-05-14,Androscoggin,Maine,23001,109,2 +2020-05-15,Androscoggin,Maine,23001,113,2 +2020-05-16,Androscoggin,Maine,23001,120,2 +2020-05-17,Androscoggin,Maine,23001,131,2 +2020-05-18,Androscoggin,Maine,23001,139,2 +2020-05-19,Androscoggin,Maine,23001,151,2 +2020-05-20,Androscoggin,Maine,23001,185,2 +2020-05-21,Androscoggin,Maine,23001,202,2 +2020-05-22,Androscoggin,Maine,23001,209,2 +2020-05-23,Androscoggin,Maine,23001,227,2 +2020-05-24,Androscoggin,Maine,23001,233,2 +2020-05-25,Androscoggin,Maine,23001,238,2 +2020-05-26,Androscoggin,Maine,23001,247,2 +2020-05-27,Androscoggin,Maine,23001,252,2 +2020-05-28,Androscoggin,Maine,23001,264,2 +2020-05-29,Androscoggin,Maine,23001,269,2 +2020-05-30,Androscoggin,Maine,23001,287,2 +2020-05-31,Androscoggin,Maine,23001,298,2 +2020-06-01,Androscoggin,Maine,23001,304,2 +2020-06-02,Androscoggin,Maine,23001,314,2 +2020-06-03,Androscoggin,Maine,23001,326,2 +2020-06-04,Androscoggin,Maine,23001,334,2 +2020-06-05,Androscoggin,Maine,23001,338,3 +2020-06-06,Androscoggin,Maine,23001,346,3 +2020-06-07,Androscoggin,Maine,23001,367,3 +2020-06-08,Androscoggin,Maine,23001,376,3 +2020-06-09,Androscoggin,Maine,23001,381,3 +2020-06-10,Androscoggin,Maine,23001,390,3 +2020-06-11,Androscoggin,Maine,23001,397,3 +2020-06-12,Androscoggin,Maine,23001,415,3 +2020-06-13,Androscoggin,Maine,23001,419,3 +2020-06-14,Androscoggin,Maine,23001,425,3 +2020-06-15,Androscoggin,Maine,23001,429,4 +2020-06-16,Androscoggin,Maine,23001,428,4 +2020-06-17,Androscoggin,Maine,23001,434,4 +2020-06-18,Androscoggin,Maine,23001,441,4 +2020-06-19,Androscoggin,Maine,23001,445,4 +2020-06-20,Androscoggin,Maine,23001,448,4 +2020-06-21,Androscoggin,Maine,23001,452,4 +2020-06-22,Androscoggin,Maine,23001,453,4 +2020-06-23,Androscoggin,Maine,23001,454,4 +2020-06-24,Androscoggin,Maine,23001,456,4 +2020-06-25,Androscoggin,Maine,23001,460,4 +2020-06-26,Androscoggin,Maine,23001,464,4 +2020-06-27,Androscoggin,Maine,23001,469,4 +2020-06-28,Androscoggin,Maine,23001,476,4 +2020-06-29,Androscoggin,Maine,23001,481,4 +2020-06-30,Androscoggin,Maine,23001,483,4 +2020-07-01,Androscoggin,Maine,23001,484,4 +2020-07-02,Androscoggin,Maine,23001,488,4 +2020-07-03,Androscoggin,Maine,23001,490,4 +2020-07-04,Androscoggin,Maine,23001,494,4 +2020-07-05,Androscoggin,Maine,23001,496,4 +2020-07-06,Androscoggin,Maine,23001,496,4 +2020-07-07,Androscoggin,Maine,23001,496,4 +2020-07-08,Androscoggin,Maine,23001,499,4 +2020-07-09,Androscoggin,Maine,23001,502,4 +2020-04-03,Aroostook,Maine,23003,1,0 +2020-04-04,Aroostook,Maine,23003,1,0 +2020-04-05,Aroostook,Maine,23003,1,0 +2020-04-06,Aroostook,Maine,23003,1,0 +2020-04-07,Aroostook,Maine,23003,2,0 +2020-04-08,Aroostook,Maine,23003,2,0 +2020-04-09,Aroostook,Maine,23003,2,0 +2020-04-10,Aroostook,Maine,23003,2,0 +2020-04-11,Aroostook,Maine,23003,2,0 +2020-04-12,Aroostook,Maine,23003,2,0 +2020-04-13,Aroostook,Maine,23003,2,0 +2020-04-14,Aroostook,Maine,23003,2,0 +2020-04-15,Aroostook,Maine,23003,2,0 +2020-04-16,Aroostook,Maine,23003,3,0 +2020-04-17,Aroostook,Maine,23003,3,0 +2020-04-18,Aroostook,Maine,23003,2,0 +2020-04-19,Aroostook,Maine,23003,2,0 +2020-04-20,Aroostook,Maine,23003,2,0 +2020-04-21,Aroostook,Maine,23003,2,0 +2020-04-22,Aroostook,Maine,23003,2,0 +2020-04-23,Aroostook,Maine,23003,3,0 +2020-04-24,Aroostook,Maine,23003,4,0 +2020-04-25,Aroostook,Maine,23003,4,0 +2020-04-26,Aroostook,Maine,23003,4,0 +2020-04-27,Aroostook,Maine,23003,4,0 +2020-04-28,Aroostook,Maine,23003,5,0 +2020-04-29,Aroostook,Maine,23003,5,0 +2020-04-30,Aroostook,Maine,23003,5,0 +2020-05-01,Aroostook,Maine,23003,5,0 +2020-05-02,Aroostook,Maine,23003,5,0 +2020-05-03,Aroostook,Maine,23003,5,0 +2020-05-04,Aroostook,Maine,23003,5,0 +2020-05-05,Aroostook,Maine,23003,6,0 +2020-05-06,Aroostook,Maine,23003,6,0 +2020-05-07,Aroostook,Maine,23003,6,0 +2020-05-08,Aroostook,Maine,23003,6,0 +2020-05-09,Aroostook,Maine,23003,6,0 +2020-05-10,Aroostook,Maine,23003,6,0 +2020-05-11,Aroostook,Maine,23003,6,0 +2020-05-12,Aroostook,Maine,23003,6,0 +2020-05-13,Aroostook,Maine,23003,6,0 +2020-05-14,Aroostook,Maine,23003,7,0 +2020-05-15,Aroostook,Maine,23003,7,0 +2020-05-16,Aroostook,Maine,23003,7,0 +2020-05-17,Aroostook,Maine,23003,7,0 +2020-05-18,Aroostook,Maine,23003,7,0 +2020-05-19,Aroostook,Maine,23003,7,0 +2020-05-20,Aroostook,Maine,23003,8,0 +2020-05-21,Aroostook,Maine,23003,8,0 +2020-05-22,Aroostook,Maine,23003,8,1 +2020-05-23,Aroostook,Maine,23003,8,1 +2020-05-24,Aroostook,Maine,23003,8,1 +2020-05-25,Aroostook,Maine,23003,8,1 +2020-05-26,Aroostook,Maine,23003,8,1 +2020-05-27,Aroostook,Maine,23003,8,1 +2020-05-28,Aroostook,Maine,23003,8,1 +2020-05-29,Aroostook,Maine,23003,10,1 +2020-05-30,Aroostook,Maine,23003,10,1 +2020-05-31,Aroostook,Maine,23003,10,1 +2020-06-01,Aroostook,Maine,23003,10,1 +2020-06-02,Aroostook,Maine,23003,10,1 +2020-06-03,Aroostook,Maine,23003,10,1 +2020-06-04,Aroostook,Maine,23003,10,1 +2020-06-05,Aroostook,Maine,23003,10,1 +2020-06-06,Aroostook,Maine,23003,10,1 +2020-06-07,Aroostook,Maine,23003,10,1 +2020-06-08,Aroostook,Maine,23003,10,1 +2020-06-09,Aroostook,Maine,23003,10,1 +2020-06-10,Aroostook,Maine,23003,10,1 +2020-06-11,Aroostook,Maine,23003,10,1 +2020-06-12,Aroostook,Maine,23003,10,1 +2020-06-13,Aroostook,Maine,23003,10,1 +2020-06-14,Aroostook,Maine,23003,10,1 +2020-06-15,Aroostook,Maine,23003,10,1 +2020-06-16,Aroostook,Maine,23003,10,1 +2020-06-17,Aroostook,Maine,23003,10,1 +2020-06-18,Aroostook,Maine,23003,11,1 +2020-06-19,Aroostook,Maine,23003,11,1 +2020-06-20,Aroostook,Maine,23003,11,1 +2020-06-21,Aroostook,Maine,23003,17,1 +2020-06-22,Aroostook,Maine,23003,19,1 +2020-06-23,Aroostook,Maine,23003,21,1 +2020-06-24,Aroostook,Maine,23003,22,1 +2020-06-25,Aroostook,Maine,23003,21,1 +2020-06-26,Aroostook,Maine,23003,21,1 +2020-06-27,Aroostook,Maine,23003,23,1 +2020-06-28,Aroostook,Maine,23003,23,1 +2020-06-29,Aroostook,Maine,23003,22,1 +2020-06-30,Aroostook,Maine,23003,23,1 +2020-07-01,Aroostook,Maine,23003,24,1 +2020-07-02,Aroostook,Maine,23003,24,1 +2020-07-03,Aroostook,Maine,23003,24,1 +2020-07-04,Aroostook,Maine,23003,24,1 +2020-07-05,Aroostook,Maine,23003,24,1 +2020-07-06,Aroostook,Maine,23003,24,1 +2020-07-07,Aroostook,Maine,23003,24,1 +2020-07-08,Aroostook,Maine,23003,24,1 +2020-07-09,Aroostook,Maine,23003,24,1 +2020-03-13,Cumberland,Maine,23005,1,0 +2020-03-14,Cumberland,Maine,23005,2,0 +2020-03-15,Cumberland,Maine,23005,10,0 +2020-03-16,Cumberland,Maine,23005,13,0 +2020-03-17,Cumberland,Maine,23005,20,0 +2020-03-18,Cumberland,Maine,23005,29,0 +2020-03-19,Cumberland,Maine,23005,34,0 +2020-03-20,Cumberland,Maine,23005,35,0 +2020-03-21,Cumberland,Maine,23005,41,0 +2020-03-22,Cumberland,Maine,23005,56,0 +2020-03-23,Cumberland,Maine,23005,66,0 +2020-03-24,Cumberland,Maine,23005,74,0 +2020-03-25,Cumberland,Maine,23005,87,0 +2020-03-26,Cumberland,Maine,23005,90,0 +2020-03-27,Cumberland,Maine,23005,92,1 +2020-03-28,Cumberland,Maine,23005,120,1 +2020-03-29,Cumberland,Maine,23005,142,2 +2020-03-30,Cumberland,Maine,23005,154,3 +2020-03-31,Cumberland,Maine,23005,169,3 +2020-04-01,Cumberland,Maine,23005,192,5 +2020-04-02,Cumberland,Maine,23005,204,5 +2020-04-03,Cumberland,Maine,23005,222,7 +2020-04-04,Cumberland,Maine,23005,231,7 +2020-04-05,Cumberland,Maine,23005,238,7 +2020-04-06,Cumberland,Maine,23005,249,7 +2020-04-07,Cumberland,Maine,23005,253,9 +2020-04-08,Cumberland,Maine,23005,262,10 +2020-04-09,Cumberland,Maine,23005,269,11 +2020-04-10,Cumberland,Maine,23005,276,11 +2020-04-11,Cumberland,Maine,23005,284,12 +2020-04-12,Cumberland,Maine,23005,292,12 +2020-04-13,Cumberland,Maine,23005,299,12 +2020-04-14,Cumberland,Maine,23005,331,12 +2020-04-15,Cumberland,Maine,23005,339,14 +2020-04-16,Cumberland,Maine,23005,343,14 +2020-04-17,Cumberland,Maine,23005,360,14 +2020-04-18,Cumberland,Maine,23005,369,14 +2020-04-19,Cumberland,Maine,23005,378,16 +2020-04-20,Cumberland,Maine,23005,380,16 +2020-04-21,Cumberland,Maine,23005,386,17 +2020-04-22,Cumberland,Maine,23005,395,18 +2020-04-23,Cumberland,Maine,23005,414,23 +2020-04-24,Cumberland,Maine,23005,426,24 +2020-04-25,Cumberland,Maine,23005,434,24 +2020-04-26,Cumberland,Maine,23005,454,24 +2020-04-27,Cumberland,Maine,23005,459,24 +2020-04-28,Cumberland,Maine,23005,466,24 +2020-04-29,Cumberland,Maine,23005,472,25 +2020-04-30,Cumberland,Maine,23005,486,26 +2020-05-01,Cumberland,Maine,23005,504,27 +2020-05-02,Cumberland,Maine,23005,527,27 +2020-05-03,Cumberland,Maine,23005,549,28 +2020-05-04,Cumberland,Maine,23005,558,28 +2020-05-05,Cumberland,Maine,23005,571,30 +2020-05-06,Cumberland,Maine,23005,583,30 +2020-05-07,Cumberland,Maine,23005,631,30 +2020-05-08,Cumberland,Maine,23005,658,30 +2020-05-09,Cumberland,Maine,23005,685,30 +2020-05-10,Cumberland,Maine,23005,702,30 +2020-05-11,Cumberland,Maine,23005,714,31 +2020-05-12,Cumberland,Maine,23005,721,31 +2020-05-13,Cumberland,Maine,23005,744,32 +2020-05-14,Cumberland,Maine,23005,778,34 +2020-05-15,Cumberland,Maine,23005,798,34 +2020-05-16,Cumberland,Maine,23005,821,35 +2020-05-17,Cumberland,Maine,23005,837,35 +2020-05-18,Cumberland,Maine,23005,852,36 +2020-05-19,Cumberland,Maine,23005,863,38 +2020-05-20,Cumberland,Maine,23005,891,38 +2020-05-21,Cumberland,Maine,23005,919,38 +2020-05-22,Cumberland,Maine,23005,968,38 +2020-05-23,Cumberland,Maine,23005,1009,40 +2020-05-24,Cumberland,Maine,23005,1032,40 +2020-05-25,Cumberland,Maine,23005,1040,40 +2020-05-26,Cumberland,Maine,23005,1056,41 +2020-05-27,Cumberland,Maine,23005,1065,43 +2020-05-28,Cumberland,Maine,23005,1092,46 +2020-05-29,Cumberland,Maine,23005,1117,47 +2020-05-30,Cumberland,Maine,23005,1146,50 +2020-05-31,Cumberland,Maine,23005,1175,50 +2020-06-01,Cumberland,Maine,23005,1189,50 +2020-06-02,Cumberland,Maine,23005,1203,54 +2020-06-03,Cumberland,Maine,23005,1226,54 +2020-06-04,Cumberland,Maine,23005,1244,54 +2020-06-05,Cumberland,Maine,23005,1265,55 +2020-06-06,Cumberland,Maine,23005,1290,55 +2020-06-07,Cumberland,Maine,23005,1307,56 +2020-06-08,Cumberland,Maine,23005,1311,56 +2020-06-09,Cumberland,Maine,23005,1324,57 +2020-06-10,Cumberland,Maine,23005,1339,57 +2020-06-11,Cumberland,Maine,23005,1361,57 +2020-06-12,Cumberland,Maine,23005,1388,57 +2020-06-13,Cumberland,Maine,23005,1414,57 +2020-06-14,Cumberland,Maine,23005,1434,57 +2020-06-15,Cumberland,Maine,23005,1445,57 +2020-06-16,Cumberland,Maine,23005,1450,57 +2020-06-17,Cumberland,Maine,23005,1461,58 +2020-06-18,Cumberland,Maine,23005,1493,58 +2020-06-19,Cumberland,Maine,23005,1516,58 +2020-06-20,Cumberland,Maine,23005,1534,58 +2020-06-21,Cumberland,Maine,23005,1540,58 +2020-06-22,Cumberland,Maine,23005,1542,58 +2020-06-23,Cumberland,Maine,23005,1554,58 +2020-06-24,Cumberland,Maine,23005,1566,59 +2020-06-25,Cumberland,Maine,23005,1608,59 +2020-06-26,Cumberland,Maine,23005,1627,59 +2020-06-27,Cumberland,Maine,23005,1656,60 +2020-06-28,Cumberland,Maine,23005,1682,60 +2020-06-29,Cumberland,Maine,23005,1697,60 +2020-06-30,Cumberland,Maine,23005,1715,60 +2020-07-01,Cumberland,Maine,23005,1733,60 +2020-07-02,Cumberland,Maine,23005,1756,60 +2020-07-03,Cumberland,Maine,23005,1780,60 +2020-07-04,Cumberland,Maine,23005,1793,62 +2020-07-05,Cumberland,Maine,23005,1805,64 +2020-07-06,Cumberland,Maine,23005,1810,64 +2020-07-07,Cumberland,Maine,23005,1818,65 +2020-07-08,Cumberland,Maine,23005,1829,65 +2020-07-09,Cumberland,Maine,23005,1844,65 +2020-03-26,Franklin,Maine,23007,1,0 +2020-03-27,Franklin,Maine,23007,1,0 +2020-03-28,Franklin,Maine,23007,2,0 +2020-03-29,Franklin,Maine,23007,2,0 +2020-03-30,Franklin,Maine,23007,2,0 +2020-03-31,Franklin,Maine,23007,2,0 +2020-04-01,Franklin,Maine,23007,2,0 +2020-04-02,Franklin,Maine,23007,3,0 +2020-04-03,Franklin,Maine,23007,4,0 +2020-04-04,Franklin,Maine,23007,4,0 +2020-04-05,Franklin,Maine,23007,4,0 +2020-04-06,Franklin,Maine,23007,5,0 +2020-04-07,Franklin,Maine,23007,5,0 +2020-04-08,Franklin,Maine,23007,5,0 +2020-04-09,Franklin,Maine,23007,7,0 +2020-04-10,Franklin,Maine,23007,7,0 +2020-04-11,Franklin,Maine,23007,7,0 +2020-04-12,Franklin,Maine,23007,8,0 +2020-04-13,Franklin,Maine,23007,8,0 +2020-04-14,Franklin,Maine,23007,8,0 +2020-04-15,Franklin,Maine,23007,9,0 +2020-04-16,Franklin,Maine,23007,9,0 +2020-04-17,Franklin,Maine,23007,10,0 +2020-04-18,Franklin,Maine,23007,11,0 +2020-04-19,Franklin,Maine,23007,12,0 +2020-04-20,Franklin,Maine,23007,13,0 +2020-04-21,Franklin,Maine,23007,13,0 +2020-04-22,Franklin,Maine,23007,14,0 +2020-04-23,Franklin,Maine,23007,14,0 +2020-04-24,Franklin,Maine,23007,26,0 +2020-04-25,Franklin,Maine,23007,27,1 +2020-04-26,Franklin,Maine,23007,27,1 +2020-04-27,Franklin,Maine,23007,27,1 +2020-04-28,Franklin,Maine,23007,27,1 +2020-04-29,Franklin,Maine,23007,27,1 +2020-04-30,Franklin,Maine,23007,27,1 +2020-05-01,Franklin,Maine,23007,28,1 +2020-05-02,Franklin,Maine,23007,28,1 +2020-05-03,Franklin,Maine,23007,29,1 +2020-05-04,Franklin,Maine,23007,29,1 +2020-05-05,Franklin,Maine,23007,29,1 +2020-05-06,Franklin,Maine,23007,29,1 +2020-05-07,Franklin,Maine,23007,31,1 +2020-05-08,Franklin,Maine,23007,31,1 +2020-05-09,Franklin,Maine,23007,31,1 +2020-05-10,Franklin,Maine,23007,31,1 +2020-05-11,Franklin,Maine,23007,31,1 +2020-05-12,Franklin,Maine,23007,31,1 +2020-05-13,Franklin,Maine,23007,31,1 +2020-05-14,Franklin,Maine,23007,31,1 +2020-05-15,Franklin,Maine,23007,33,1 +2020-05-16,Franklin,Maine,23007,33,1 +2020-05-17,Franklin,Maine,23007,33,1 +2020-05-18,Franklin,Maine,23007,33,1 +2020-05-19,Franklin,Maine,23007,33,1 +2020-05-20,Franklin,Maine,23007,34,1 +2020-05-21,Franklin,Maine,23007,35,1 +2020-05-22,Franklin,Maine,23007,36,1 +2020-05-23,Franklin,Maine,23007,36,1 +2020-05-24,Franklin,Maine,23007,36,1 +2020-05-25,Franklin,Maine,23007,36,1 +2020-05-26,Franklin,Maine,23007,36,1 +2020-05-27,Franklin,Maine,23007,36,1 +2020-05-28,Franklin,Maine,23007,36,1 +2020-05-29,Franklin,Maine,23007,36,1 +2020-05-30,Franklin,Maine,23007,36,1 +2020-05-31,Franklin,Maine,23007,36,1 +2020-06-01,Franklin,Maine,23007,36,1 +2020-06-02,Franklin,Maine,23007,36,1 +2020-06-03,Franklin,Maine,23007,36,1 +2020-06-04,Franklin,Maine,23007,36,1 +2020-06-05,Franklin,Maine,23007,36,1 +2020-06-06,Franklin,Maine,23007,36,1 +2020-06-07,Franklin,Maine,23007,36,1 +2020-06-08,Franklin,Maine,23007,36,1 +2020-06-09,Franklin,Maine,23007,36,1 +2020-06-10,Franklin,Maine,23007,36,1 +2020-06-11,Franklin,Maine,23007,36,1 +2020-06-12,Franklin,Maine,23007,37,1 +2020-06-13,Franklin,Maine,23007,37,1 +2020-06-14,Franklin,Maine,23007,37,1 +2020-06-15,Franklin,Maine,23007,37,1 +2020-06-16,Franklin,Maine,23007,37,1 +2020-06-17,Franklin,Maine,23007,37,1 +2020-06-18,Franklin,Maine,23007,37,1 +2020-06-19,Franklin,Maine,23007,38,1 +2020-06-20,Franklin,Maine,23007,38,1 +2020-06-21,Franklin,Maine,23007,38,1 +2020-06-22,Franklin,Maine,23007,38,1 +2020-06-23,Franklin,Maine,23007,38,1 +2020-06-24,Franklin,Maine,23007,38,1 +2020-06-25,Franklin,Maine,23007,38,1 +2020-06-26,Franklin,Maine,23007,38,1 +2020-06-27,Franklin,Maine,23007,39,1 +2020-06-28,Franklin,Maine,23007,39,1 +2020-06-29,Franklin,Maine,23007,41,1 +2020-06-30,Franklin,Maine,23007,41,1 +2020-07-01,Franklin,Maine,23007,41,1 +2020-07-02,Franklin,Maine,23007,40,1 +2020-07-03,Franklin,Maine,23007,40,1 +2020-07-04,Franklin,Maine,23007,40,1 +2020-07-05,Franklin,Maine,23007,40,1 +2020-07-06,Franklin,Maine,23007,40,1 +2020-07-07,Franklin,Maine,23007,40,1 +2020-07-08,Franklin,Maine,23007,40,1 +2020-07-09,Franklin,Maine,23007,41,1 +2020-04-01,Hancock,Maine,23009,1,0 +2020-04-02,Hancock,Maine,23009,2,0 +2020-04-03,Hancock,Maine,23009,2,0 +2020-04-04,Hancock,Maine,23009,2,0 +2020-04-05,Hancock,Maine,23009,2,0 +2020-04-06,Hancock,Maine,23009,2,0 +2020-04-07,Hancock,Maine,23009,2,0 +2020-04-08,Hancock,Maine,23009,3,0 +2020-04-09,Hancock,Maine,23009,3,0 +2020-04-10,Hancock,Maine,23009,4,0 +2020-04-11,Hancock,Maine,23009,4,0 +2020-04-12,Hancock,Maine,23009,5,0 +2020-04-13,Hancock,Maine,23009,5,0 +2020-04-14,Hancock,Maine,23009,5,0 +2020-04-15,Hancock,Maine,23009,5,0 +2020-04-16,Hancock,Maine,23009,5,0 +2020-04-17,Hancock,Maine,23009,6,0 +2020-04-18,Hancock,Maine,23009,6,0 +2020-04-19,Hancock,Maine,23009,6,0 +2020-04-20,Hancock,Maine,23009,6,0 +2020-04-21,Hancock,Maine,23009,6,0 +2020-04-22,Hancock,Maine,23009,7,0 +2020-04-23,Hancock,Maine,23009,8,0 +2020-04-24,Hancock,Maine,23009,8,0 +2020-04-25,Hancock,Maine,23009,9,0 +2020-04-26,Hancock,Maine,23009,9,0 +2020-04-27,Hancock,Maine,23009,9,0 +2020-04-28,Hancock,Maine,23009,10,0 +2020-04-29,Hancock,Maine,23009,10,0 +2020-04-30,Hancock,Maine,23009,10,0 +2020-05-01,Hancock,Maine,23009,10,0 +2020-05-02,Hancock,Maine,23009,10,0 +2020-05-03,Hancock,Maine,23009,10,0 +2020-05-04,Hancock,Maine,23009,10,0 +2020-05-05,Hancock,Maine,23009,10,0 +2020-05-06,Hancock,Maine,23009,10,0 +2020-05-07,Hancock,Maine,23009,10,0 +2020-05-08,Hancock,Maine,23009,10,1 +2020-05-09,Hancock,Maine,23009,10,1 +2020-05-10,Hancock,Maine,23009,10,1 +2020-05-11,Hancock,Maine,23009,10,1 +2020-05-12,Hancock,Maine,23009,10,1 +2020-05-13,Hancock,Maine,23009,10,1 +2020-05-14,Hancock,Maine,23009,10,1 +2020-05-15,Hancock,Maine,23009,10,1 +2020-05-16,Hancock,Maine,23009,10,1 +2020-05-17,Hancock,Maine,23009,11,1 +2020-05-18,Hancock,Maine,23009,11,1 +2020-05-19,Hancock,Maine,23009,11,1 +2020-05-20,Hancock,Maine,23009,11,1 +2020-05-21,Hancock,Maine,23009,11,1 +2020-05-22,Hancock,Maine,23009,11,1 +2020-05-23,Hancock,Maine,23009,11,1 +2020-05-24,Hancock,Maine,23009,11,1 +2020-05-25,Hancock,Maine,23009,11,1 +2020-05-26,Hancock,Maine,23009,11,1 +2020-05-27,Hancock,Maine,23009,11,1 +2020-05-28,Hancock,Maine,23009,11,1 +2020-05-29,Hancock,Maine,23009,11,1 +2020-05-30,Hancock,Maine,23009,11,1 +2020-05-31,Hancock,Maine,23009,11,1 +2020-06-01,Hancock,Maine,23009,11,1 +2020-06-02,Hancock,Maine,23009,11,1 +2020-06-03,Hancock,Maine,23009,11,1 +2020-06-04,Hancock,Maine,23009,11,1 +2020-06-05,Hancock,Maine,23009,12,1 +2020-06-06,Hancock,Maine,23009,12,1 +2020-06-07,Hancock,Maine,23009,12,1 +2020-06-08,Hancock,Maine,23009,12,1 +2020-06-09,Hancock,Maine,23009,12,1 +2020-06-10,Hancock,Maine,23009,12,1 +2020-06-11,Hancock,Maine,23009,12,1 +2020-06-12,Hancock,Maine,23009,13,1 +2020-06-13,Hancock,Maine,23009,13,1 +2020-06-14,Hancock,Maine,23009,13,1 +2020-06-15,Hancock,Maine,23009,13,1 +2020-06-16,Hancock,Maine,23009,13,1 +2020-06-17,Hancock,Maine,23009,13,1 +2020-06-18,Hancock,Maine,23009,13,1 +2020-06-19,Hancock,Maine,23009,13,1 +2020-06-20,Hancock,Maine,23009,14,1 +2020-06-21,Hancock,Maine,23009,14,1 +2020-06-22,Hancock,Maine,23009,15,1 +2020-06-23,Hancock,Maine,23009,15,1 +2020-06-24,Hancock,Maine,23009,15,1 +2020-06-25,Hancock,Maine,23009,15,1 +2020-06-26,Hancock,Maine,23009,16,1 +2020-06-27,Hancock,Maine,23009,16,1 +2020-06-28,Hancock,Maine,23009,16,1 +2020-06-29,Hancock,Maine,23009,16,1 +2020-06-30,Hancock,Maine,23009,16,1 +2020-07-01,Hancock,Maine,23009,16,1 +2020-07-02,Hancock,Maine,23009,16,1 +2020-07-03,Hancock,Maine,23009,16,1 +2020-07-04,Hancock,Maine,23009,17,1 +2020-07-05,Hancock,Maine,23009,17,1 +2020-07-06,Hancock,Maine,23009,18,1 +2020-07-07,Hancock,Maine,23009,18,1 +2020-07-08,Hancock,Maine,23009,18,1 +2020-07-09,Hancock,Maine,23009,18,1 +2020-03-17,Kennebec,Maine,23011,1,0 +2020-03-18,Kennebec,Maine,23011,1,0 +2020-03-19,Kennebec,Maine,23011,3,0 +2020-03-20,Kennebec,Maine,23011,4,0 +2020-03-21,Kennebec,Maine,23011,4,0 +2020-03-22,Kennebec,Maine,23011,4,0 +2020-03-23,Kennebec,Maine,23011,4,0 +2020-03-24,Kennebec,Maine,23011,5,0 +2020-03-25,Kennebec,Maine,23011,5,0 +2020-03-26,Kennebec,Maine,23011,6,0 +2020-03-27,Kennebec,Maine,23011,6,0 +2020-03-28,Kennebec,Maine,23011,9,0 +2020-03-29,Kennebec,Maine,23011,10,0 +2020-03-30,Kennebec,Maine,23011,10,0 +2020-03-31,Kennebec,Maine,23011,12,1 +2020-04-01,Kennebec,Maine,23011,17,1 +2020-04-02,Kennebec,Maine,23011,19,1 +2020-04-03,Kennebec,Maine,23011,19,1 +2020-04-04,Kennebec,Maine,23011,21,1 +2020-04-05,Kennebec,Maine,23011,22,1 +2020-04-06,Kennebec,Maine,23011,23,1 +2020-04-07,Kennebec,Maine,23011,26,1 +2020-04-08,Kennebec,Maine,23011,26,1 +2020-04-09,Kennebec,Maine,23011,26,1 +2020-04-10,Kennebec,Maine,23011,29,1 +2020-04-11,Kennebec,Maine,23011,31,1 +2020-04-12,Kennebec,Maine,23011,32,1 +2020-04-13,Kennebec,Maine,23011,78,1 +2020-04-14,Kennebec,Maine,23011,81,2 +2020-04-15,Kennebec,Maine,23011,93,3 +2020-04-16,Kennebec,Maine,23011,94,3 +2020-04-17,Kennebec,Maine,23011,95,3 +2020-04-18,Kennebec,Maine,23011,96,4 +2020-04-19,Kennebec,Maine,23011,97,4 +2020-04-20,Kennebec,Maine,23011,97,4 +2020-04-21,Kennebec,Maine,23011,97,4 +2020-04-22,Kennebec,Maine,23011,99,4 +2020-04-23,Kennebec,Maine,23011,100,4 +2020-04-24,Kennebec,Maine,23011,100,5 +2020-04-25,Kennebec,Maine,23011,101,5 +2020-04-26,Kennebec,Maine,23011,101,5 +2020-04-27,Kennebec,Maine,23011,102,6 +2020-04-28,Kennebec,Maine,23011,103,6 +2020-04-29,Kennebec,Maine,23011,104,6 +2020-04-30,Kennebec,Maine,23011,104,6 +2020-05-01,Kennebec,Maine,23011,104,6 +2020-05-02,Kennebec,Maine,23011,104,6 +2020-05-03,Kennebec,Maine,23011,105,6 +2020-05-04,Kennebec,Maine,23011,105,6 +2020-05-05,Kennebec,Maine,23011,105,8 +2020-05-06,Kennebec,Maine,23011,106,8 +2020-05-07,Kennebec,Maine,23011,107,8 +2020-05-08,Kennebec,Maine,23011,108,8 +2020-05-09,Kennebec,Maine,23011,109,8 +2020-05-10,Kennebec,Maine,23011,109,8 +2020-05-11,Kennebec,Maine,23011,110,8 +2020-05-12,Kennebec,Maine,23011,111,8 +2020-05-13,Kennebec,Maine,23011,112,8 +2020-05-14,Kennebec,Maine,23011,113,8 +2020-05-15,Kennebec,Maine,23011,116,8 +2020-05-16,Kennebec,Maine,23011,120,8 +2020-05-17,Kennebec,Maine,23011,121,8 +2020-05-18,Kennebec,Maine,23011,121,8 +2020-05-19,Kennebec,Maine,23011,120,8 +2020-05-20,Kennebec,Maine,23011,121,8 +2020-05-21,Kennebec,Maine,23011,123,8 +2020-05-22,Kennebec,Maine,23011,124,9 +2020-05-23,Kennebec,Maine,23011,126,9 +2020-05-24,Kennebec,Maine,23011,128,9 +2020-05-25,Kennebec,Maine,23011,128,9 +2020-05-26,Kennebec,Maine,23011,128,9 +2020-05-27,Kennebec,Maine,23011,128,9 +2020-05-28,Kennebec,Maine,23011,128,9 +2020-05-29,Kennebec,Maine,23011,128,9 +2020-05-30,Kennebec,Maine,23011,128,9 +2020-05-31,Kennebec,Maine,23011,128,9 +2020-06-01,Kennebec,Maine,23011,128,9 +2020-06-02,Kennebec,Maine,23011,127,9 +2020-06-03,Kennebec,Maine,23011,127,9 +2020-06-04,Kennebec,Maine,23011,128,9 +2020-06-05,Kennebec,Maine,23011,129,9 +2020-06-06,Kennebec,Maine,23011,130,9 +2020-06-07,Kennebec,Maine,23011,130,9 +2020-06-08,Kennebec,Maine,23011,131,9 +2020-06-09,Kennebec,Maine,23011,131,9 +2020-06-10,Kennebec,Maine,23011,132,9 +2020-06-11,Kennebec,Maine,23011,133,9 +2020-06-12,Kennebec,Maine,23011,134,9 +2020-06-13,Kennebec,Maine,23011,136,9 +2020-06-14,Kennebec,Maine,23011,136,9 +2020-06-15,Kennebec,Maine,23011,136,9 +2020-06-16,Kennebec,Maine,23011,137,9 +2020-06-17,Kennebec,Maine,23011,138,9 +2020-06-18,Kennebec,Maine,23011,138,9 +2020-06-19,Kennebec,Maine,23011,138,9 +2020-06-20,Kennebec,Maine,23011,137,9 +2020-06-21,Kennebec,Maine,23011,138,9 +2020-06-22,Kennebec,Maine,23011,138,9 +2020-06-23,Kennebec,Maine,23011,141,9 +2020-06-24,Kennebec,Maine,23011,140,9 +2020-06-25,Kennebec,Maine,23011,142,9 +2020-06-26,Kennebec,Maine,23011,143,9 +2020-06-27,Kennebec,Maine,23011,143,9 +2020-06-28,Kennebec,Maine,23011,143,9 +2020-06-29,Kennebec,Maine,23011,146,10 +2020-06-30,Kennebec,Maine,23011,146,10 +2020-07-01,Kennebec,Maine,23011,147,10 +2020-07-02,Kennebec,Maine,23011,147,10 +2020-07-03,Kennebec,Maine,23011,147,10 +2020-07-04,Kennebec,Maine,23011,146,10 +2020-07-05,Kennebec,Maine,23011,145,10 +2020-07-06,Kennebec,Maine,23011,145,10 +2020-07-07,Kennebec,Maine,23011,145,10 +2020-07-08,Kennebec,Maine,23011,147,10 +2020-07-09,Kennebec,Maine,23011,147,10 +2020-03-23,Knox,Maine,23013,1,0 +2020-03-24,Knox,Maine,23013,1,0 +2020-03-25,Knox,Maine,23013,1,0 +2020-03-26,Knox,Maine,23013,1,0 +2020-03-27,Knox,Maine,23013,2,0 +2020-03-28,Knox,Maine,23013,2,0 +2020-03-29,Knox,Maine,23013,4,0 +2020-03-30,Knox,Maine,23013,4,0 +2020-03-31,Knox,Maine,23013,5,0 +2020-04-01,Knox,Maine,23013,5,0 +2020-04-02,Knox,Maine,23013,7,0 +2020-04-03,Knox,Maine,23013,9,0 +2020-04-04,Knox,Maine,23013,9,0 +2020-04-05,Knox,Maine,23013,9,0 +2020-04-06,Knox,Maine,23013,9,0 +2020-04-07,Knox,Maine,23013,9,0 +2020-04-08,Knox,Maine,23013,9,0 +2020-04-09,Knox,Maine,23013,10,0 +2020-04-10,Knox,Maine,23013,10,0 +2020-04-11,Knox,Maine,23013,10,0 +2020-04-12,Knox,Maine,23013,10,0 +2020-04-13,Knox,Maine,23013,12,0 +2020-04-14,Knox,Maine,23013,11,0 +2020-04-15,Knox,Maine,23013,12,0 +2020-04-16,Knox,Maine,23013,12,0 +2020-04-17,Knox,Maine,23013,12,0 +2020-04-18,Knox,Maine,23013,12,0 +2020-04-19,Knox,Maine,23013,12,0 +2020-04-20,Knox,Maine,23013,12,0 +2020-04-21,Knox,Maine,23013,13,0 +2020-04-22,Knox,Maine,23013,13,0 +2020-04-23,Knox,Maine,23013,13,0 +2020-04-24,Knox,Maine,23013,13,0 +2020-04-25,Knox,Maine,23013,13,0 +2020-04-26,Knox,Maine,23013,14,0 +2020-04-27,Knox,Maine,23013,14,0 +2020-04-28,Knox,Maine,23013,15,0 +2020-04-29,Knox,Maine,23013,16,0 +2020-04-30,Knox,Maine,23013,16,0 +2020-05-01,Knox,Maine,23013,16,0 +2020-05-02,Knox,Maine,23013,16,0 +2020-05-03,Knox,Maine,23013,16,0 +2020-05-04,Knox,Maine,23013,16,0 +2020-05-05,Knox,Maine,23013,16,0 +2020-05-06,Knox,Maine,23013,17,0 +2020-05-07,Knox,Maine,23013,17,0 +2020-05-08,Knox,Maine,23013,18,0 +2020-05-09,Knox,Maine,23013,18,0 +2020-05-10,Knox,Maine,23013,18,0 +2020-05-11,Knox,Maine,23013,19,0 +2020-05-12,Knox,Maine,23013,19,0 +2020-05-13,Knox,Maine,23013,19,0 +2020-05-14,Knox,Maine,23013,19,0 +2020-05-15,Knox,Maine,23013,21,0 +2020-05-16,Knox,Maine,23013,21,0 +2020-05-17,Knox,Maine,23013,20,0 +2020-05-18,Knox,Maine,23013,20,0 +2020-05-19,Knox,Maine,23013,20,0 +2020-05-20,Knox,Maine,23013,20,0 +2020-05-21,Knox,Maine,23013,20,0 +2020-05-22,Knox,Maine,23013,20,0 +2020-05-23,Knox,Maine,23013,20,0 +2020-05-24,Knox,Maine,23013,20,0 +2020-05-25,Knox,Maine,23013,20,0 +2020-05-26,Knox,Maine,23013,20,0 +2020-05-27,Knox,Maine,23013,20,0 +2020-05-28,Knox,Maine,23013,20,0 +2020-05-29,Knox,Maine,23013,20,0 +2020-05-30,Knox,Maine,23013,20,0 +2020-05-31,Knox,Maine,23013,20,0 +2020-06-01,Knox,Maine,23013,20,0 +2020-06-02,Knox,Maine,23013,20,0 +2020-06-03,Knox,Maine,23013,21,1 +2020-06-04,Knox,Maine,23013,21,1 +2020-06-05,Knox,Maine,23013,21,1 +2020-06-06,Knox,Maine,23013,21,1 +2020-06-07,Knox,Maine,23013,21,1 +2020-06-08,Knox,Maine,23013,21,1 +2020-06-09,Knox,Maine,23013,21,1 +2020-06-10,Knox,Maine,23013,21,1 +2020-06-11,Knox,Maine,23013,21,1 +2020-06-12,Knox,Maine,23013,21,1 +2020-06-13,Knox,Maine,23013,22,1 +2020-06-14,Knox,Maine,23013,22,1 +2020-06-15,Knox,Maine,23013,23,1 +2020-06-16,Knox,Maine,23013,23,1 +2020-06-17,Knox,Maine,23013,23,1 +2020-06-18,Knox,Maine,23013,23,1 +2020-06-19,Knox,Maine,23013,23,1 +2020-06-20,Knox,Maine,23013,24,1 +2020-06-21,Knox,Maine,23013,24,1 +2020-06-22,Knox,Maine,23013,24,1 +2020-06-23,Knox,Maine,23013,24,1 +2020-06-24,Knox,Maine,23013,24,1 +2020-06-25,Knox,Maine,23013,24,1 +2020-06-26,Knox,Maine,23013,24,1 +2020-06-27,Knox,Maine,23013,24,1 +2020-06-28,Knox,Maine,23013,24,1 +2020-06-29,Knox,Maine,23013,24,1 +2020-06-30,Knox,Maine,23013,24,1 +2020-07-01,Knox,Maine,23013,25,1 +2020-07-02,Knox,Maine,23013,24,1 +2020-07-03,Knox,Maine,23013,25,1 +2020-07-04,Knox,Maine,23013,25,1 +2020-07-05,Knox,Maine,23013,25,1 +2020-07-06,Knox,Maine,23013,25,1 +2020-07-07,Knox,Maine,23013,25,1 +2020-07-08,Knox,Maine,23013,25,1 +2020-07-09,Knox,Maine,23013,25,1 +2020-03-15,Lincoln,Maine,23015,1,0 +2020-03-16,Lincoln,Maine,23015,2,0 +2020-03-17,Lincoln,Maine,23015,3,0 +2020-03-18,Lincoln,Maine,23015,4,0 +2020-03-19,Lincoln,Maine,23015,4,0 +2020-03-20,Lincoln,Maine,23015,4,0 +2020-03-21,Lincoln,Maine,23015,4,0 +2020-03-22,Lincoln,Maine,23015,4,0 +2020-03-23,Lincoln,Maine,23015,5,0 +2020-03-24,Lincoln,Maine,23015,5,0 +2020-03-25,Lincoln,Maine,23015,5,0 +2020-03-26,Lincoln,Maine,23015,5,0 +2020-03-27,Lincoln,Maine,23015,5,0 +2020-03-28,Lincoln,Maine,23015,5,0 +2020-03-29,Lincoln,Maine,23015,5,0 +2020-03-30,Lincoln,Maine,23015,8,0 +2020-03-31,Lincoln,Maine,23015,8,0 +2020-04-01,Lincoln,Maine,23015,8,0 +2020-04-02,Lincoln,Maine,23015,8,0 +2020-04-03,Lincoln,Maine,23015,8,0 +2020-04-04,Lincoln,Maine,23015,8,0 +2020-04-05,Lincoln,Maine,23015,8,0 +2020-04-06,Lincoln,Maine,23015,9,0 +2020-04-07,Lincoln,Maine,23015,9,0 +2020-04-08,Lincoln,Maine,23015,9,0 +2020-04-09,Lincoln,Maine,23015,9,0 +2020-04-10,Lincoln,Maine,23015,9,0 +2020-04-11,Lincoln,Maine,23015,9,0 +2020-04-12,Lincoln,Maine,23015,9,0 +2020-04-13,Lincoln,Maine,23015,10,0 +2020-04-14,Lincoln,Maine,23015,11,0 +2020-04-15,Lincoln,Maine,23015,12,0 +2020-04-16,Lincoln,Maine,23015,12,0 +2020-04-17,Lincoln,Maine,23015,12,0 +2020-04-18,Lincoln,Maine,23015,12,0 +2020-04-19,Lincoln,Maine,23015,12,0 +2020-04-20,Lincoln,Maine,23015,12,0 +2020-04-21,Lincoln,Maine,23015,12,0 +2020-04-22,Lincoln,Maine,23015,12,0 +2020-04-23,Lincoln,Maine,23015,12,0 +2020-04-24,Lincoln,Maine,23015,12,0 +2020-04-25,Lincoln,Maine,23015,12,0 +2020-04-26,Lincoln,Maine,23015,12,0 +2020-04-27,Lincoln,Maine,23015,12,0 +2020-04-28,Lincoln,Maine,23015,12,0 +2020-04-29,Lincoln,Maine,23015,12,0 +2020-04-30,Lincoln,Maine,23015,13,0 +2020-05-01,Lincoln,Maine,23015,14,0 +2020-05-02,Lincoln,Maine,23015,13,0 +2020-05-03,Lincoln,Maine,23015,13,0 +2020-05-04,Lincoln,Maine,23015,13,0 +2020-05-05,Lincoln,Maine,23015,13,0 +2020-05-06,Lincoln,Maine,23015,14,0 +2020-05-07,Lincoln,Maine,23015,14,0 +2020-05-08,Lincoln,Maine,23015,15,0 +2020-05-09,Lincoln,Maine,23015,15,0 +2020-05-10,Lincoln,Maine,23015,15,0 +2020-05-11,Lincoln,Maine,23015,15,0 +2020-05-12,Lincoln,Maine,23015,15,0 +2020-05-13,Lincoln,Maine,23015,15,0 +2020-05-14,Lincoln,Maine,23015,15,0 +2020-05-15,Lincoln,Maine,23015,16,0 +2020-05-16,Lincoln,Maine,23015,17,0 +2020-05-17,Lincoln,Maine,23015,17,0 +2020-05-18,Lincoln,Maine,23015,17,0 +2020-05-19,Lincoln,Maine,23015,17,0 +2020-05-20,Lincoln,Maine,23015,17,0 +2020-05-21,Lincoln,Maine,23015,18,0 +2020-05-22,Lincoln,Maine,23015,18,0 +2020-05-23,Lincoln,Maine,23015,19,0 +2020-05-24,Lincoln,Maine,23015,20,0 +2020-05-25,Lincoln,Maine,23015,20,0 +2020-05-26,Lincoln,Maine,23015,20,0 +2020-05-27,Lincoln,Maine,23015,20,0 +2020-05-28,Lincoln,Maine,23015,20,0 +2020-05-29,Lincoln,Maine,23015,20,0 +2020-05-30,Lincoln,Maine,23015,20,0 +2020-05-31,Lincoln,Maine,23015,20,0 +2020-06-01,Lincoln,Maine,23015,20,0 +2020-06-02,Lincoln,Maine,23015,20,0 +2020-06-03,Lincoln,Maine,23015,20,0 +2020-06-04,Lincoln,Maine,23015,20,0 +2020-06-05,Lincoln,Maine,23015,20,0 +2020-06-06,Lincoln,Maine,23015,20,0 +2020-06-07,Lincoln,Maine,23015,20,0 +2020-06-08,Lincoln,Maine,23015,20,0 +2020-06-09,Lincoln,Maine,23015,20,0 +2020-06-10,Lincoln,Maine,23015,20,0 +2020-06-11,Lincoln,Maine,23015,20,0 +2020-06-12,Lincoln,Maine,23015,21,0 +2020-06-13,Lincoln,Maine,23015,21,0 +2020-06-14,Lincoln,Maine,23015,21,0 +2020-06-15,Lincoln,Maine,23015,21,0 +2020-06-16,Lincoln,Maine,23015,21,0 +2020-06-17,Lincoln,Maine,23015,21,0 +2020-06-18,Lincoln,Maine,23015,21,0 +2020-06-19,Lincoln,Maine,23015,21,0 +2020-06-20,Lincoln,Maine,23015,21,0 +2020-06-21,Lincoln,Maine,23015,21,0 +2020-06-22,Lincoln,Maine,23015,21,0 +2020-06-23,Lincoln,Maine,23015,21,0 +2020-06-24,Lincoln,Maine,23015,21,0 +2020-06-25,Lincoln,Maine,23015,21,0 +2020-06-26,Lincoln,Maine,23015,22,0 +2020-06-27,Lincoln,Maine,23015,23,0 +2020-06-28,Lincoln,Maine,23015,23,0 +2020-06-29,Lincoln,Maine,23015,23,0 +2020-06-30,Lincoln,Maine,23015,23,0 +2020-07-01,Lincoln,Maine,23015,24,0 +2020-07-02,Lincoln,Maine,23015,24,0 +2020-07-03,Lincoln,Maine,23015,24,0 +2020-07-04,Lincoln,Maine,23015,24,0 +2020-07-05,Lincoln,Maine,23015,25,0 +2020-07-06,Lincoln,Maine,23015,25,0 +2020-07-07,Lincoln,Maine,23015,25,0 +2020-07-08,Lincoln,Maine,23015,25,0 +2020-07-09,Lincoln,Maine,23015,26,0 +2020-03-17,Oxford,Maine,23017,1,0 +2020-03-18,Oxford,Maine,23017,1,0 +2020-03-19,Oxford,Maine,23017,1,0 +2020-03-20,Oxford,Maine,23017,1,0 +2020-03-21,Oxford,Maine,23017,4,0 +2020-03-22,Oxford,Maine,23017,4,0 +2020-03-23,Oxford,Maine,23017,5,0 +2020-03-24,Oxford,Maine,23017,6,0 +2020-03-25,Oxford,Maine,23017,6,0 +2020-03-26,Oxford,Maine,23017,8,0 +2020-03-27,Oxford,Maine,23017,8,0 +2020-03-28,Oxford,Maine,23017,8,0 +2020-03-29,Oxford,Maine,23017,9,0 +2020-03-30,Oxford,Maine,23017,9,0 +2020-03-31,Oxford,Maine,23017,9,0 +2020-04-01,Oxford,Maine,23017,9,0 +2020-04-02,Oxford,Maine,23017,9,0 +2020-04-03,Oxford,Maine,23017,10,0 +2020-04-04,Oxford,Maine,23017,11,0 +2020-04-05,Oxford,Maine,23017,11,0 +2020-04-06,Oxford,Maine,23017,11,0 +2020-04-07,Oxford,Maine,23017,12,0 +2020-04-08,Oxford,Maine,23017,12,0 +2020-04-09,Oxford,Maine,23017,12,0 +2020-04-10,Oxford,Maine,23017,12,0 +2020-04-11,Oxford,Maine,23017,13,0 +2020-04-12,Oxford,Maine,23017,13,0 +2020-04-13,Oxford,Maine,23017,13,0 +2020-04-14,Oxford,Maine,23017,13,0 +2020-04-15,Oxford,Maine,23017,13,0 +2020-04-16,Oxford,Maine,23017,13,0 +2020-04-17,Oxford,Maine,23017,13,0 +2020-04-18,Oxford,Maine,23017,13,0 +2020-04-19,Oxford,Maine,23017,14,0 +2020-04-20,Oxford,Maine,23017,14,0 +2020-04-21,Oxford,Maine,23017,14,0 +2020-04-22,Oxford,Maine,23017,14,0 +2020-04-23,Oxford,Maine,23017,14,0 +2020-04-24,Oxford,Maine,23017,14,0 +2020-04-25,Oxford,Maine,23017,15,0 +2020-04-26,Oxford,Maine,23017,15,0 +2020-04-27,Oxford,Maine,23017,15,0 +2020-04-28,Oxford,Maine,23017,15,0 +2020-04-29,Oxford,Maine,23017,15,0 +2020-04-30,Oxford,Maine,23017,15,0 +2020-05-01,Oxford,Maine,23017,15,0 +2020-05-02,Oxford,Maine,23017,15,0 +2020-05-03,Oxford,Maine,23017,15,0 +2020-05-04,Oxford,Maine,23017,15,0 +2020-05-05,Oxford,Maine,23017,15,0 +2020-05-06,Oxford,Maine,23017,16,0 +2020-05-07,Oxford,Maine,23017,17,0 +2020-05-08,Oxford,Maine,23017,17,0 +2020-05-09,Oxford,Maine,23017,17,0 +2020-05-10,Oxford,Maine,23017,17,0 +2020-05-11,Oxford,Maine,23017,17,0 +2020-05-12,Oxford,Maine,23017,17,0 +2020-05-13,Oxford,Maine,23017,17,0 +2020-05-14,Oxford,Maine,23017,17,0 +2020-05-15,Oxford,Maine,23017,17,0 +2020-05-16,Oxford,Maine,23017,17,0 +2020-05-17,Oxford,Maine,23017,17,0 +2020-05-18,Oxford,Maine,23017,17,0 +2020-05-19,Oxford,Maine,23017,17,0 +2020-05-20,Oxford,Maine,23017,18,0 +2020-05-21,Oxford,Maine,23017,18,0 +2020-05-22,Oxford,Maine,23017,19,0 +2020-05-23,Oxford,Maine,23017,19,0 +2020-05-24,Oxford,Maine,23017,21,0 +2020-05-25,Oxford,Maine,23017,21,0 +2020-05-26,Oxford,Maine,23017,22,0 +2020-05-27,Oxford,Maine,23017,26,0 +2020-05-28,Oxford,Maine,23017,29,0 +2020-05-29,Oxford,Maine,23017,32,0 +2020-05-30,Oxford,Maine,23017,33,0 +2020-05-31,Oxford,Maine,23017,34,0 +2020-06-01,Oxford,Maine,23017,33,0 +2020-06-02,Oxford,Maine,23017,33,0 +2020-06-03,Oxford,Maine,23017,33,0 +2020-06-04,Oxford,Maine,23017,32,0 +2020-06-05,Oxford,Maine,23017,32,0 +2020-06-06,Oxford,Maine,23017,32,0 +2020-06-07,Oxford,Maine,23017,31,0 +2020-06-08,Oxford,Maine,23017,31,0 +2020-06-09,Oxford,Maine,23017,31,0 +2020-06-10,Oxford,Maine,23017,31,0 +2020-06-11,Oxford,Maine,23017,31,0 +2020-06-12,Oxford,Maine,23017,31,0 +2020-06-13,Oxford,Maine,23017,31,0 +2020-06-14,Oxford,Maine,23017,33,0 +2020-06-15,Oxford,Maine,23017,34,0 +2020-06-16,Oxford,Maine,23017,34,0 +2020-06-17,Oxford,Maine,23017,34,0 +2020-06-18,Oxford,Maine,23017,33,0 +2020-06-19,Oxford,Maine,23017,34,0 +2020-06-20,Oxford,Maine,23017,34,0 +2020-06-21,Oxford,Maine,23017,34,0 +2020-06-22,Oxford,Maine,23017,34,0 +2020-06-23,Oxford,Maine,23017,34,0 +2020-06-24,Oxford,Maine,23017,35,0 +2020-06-25,Oxford,Maine,23017,35,0 +2020-06-26,Oxford,Maine,23017,35,0 +2020-06-27,Oxford,Maine,23017,35,0 +2020-06-28,Oxford,Maine,23017,35,0 +2020-06-29,Oxford,Maine,23017,37,0 +2020-06-30,Oxford,Maine,23017,37,0 +2020-07-01,Oxford,Maine,23017,37,0 +2020-07-02,Oxford,Maine,23017,38,0 +2020-07-03,Oxford,Maine,23017,40,0 +2020-07-04,Oxford,Maine,23017,42,0 +2020-07-05,Oxford,Maine,23017,42,0 +2020-07-06,Oxford,Maine,23017,42,0 +2020-07-07,Oxford,Maine,23017,42,0 +2020-07-08,Oxford,Maine,23017,43,0 +2020-07-09,Oxford,Maine,23017,44,0 +2020-03-18,Penobscot,Maine,23019,1,0 +2020-03-19,Penobscot,Maine,23019,1,0 +2020-03-20,Penobscot,Maine,23019,2,0 +2020-03-21,Penobscot,Maine,23019,2,0 +2020-03-22,Penobscot,Maine,23019,2,0 +2020-03-23,Penobscot,Maine,23019,3,0 +2020-03-24,Penobscot,Maine,23019,4,0 +2020-03-25,Penobscot,Maine,23019,4,0 +2020-03-26,Penobscot,Maine,23019,5,0 +2020-03-27,Penobscot,Maine,23019,6,0 +2020-03-28,Penobscot,Maine,23019,10,0 +2020-03-29,Penobscot,Maine,23019,11,0 +2020-03-30,Penobscot,Maine,23019,12,0 +2020-03-31,Penobscot,Maine,23019,12,0 +2020-04-01,Penobscot,Maine,23019,13,0 +2020-04-02,Penobscot,Maine,23019,16,0 +2020-04-03,Penobscot,Maine,23019,20,0 +2020-04-04,Penobscot,Maine,23019,22,0 +2020-04-05,Penobscot,Maine,23019,22,0 +2020-04-06,Penobscot,Maine,23019,25,0 +2020-04-07,Penobscot,Maine,23019,31,0 +2020-04-08,Penobscot,Maine,23019,31,0 +2020-04-09,Penobscot,Maine,23019,31,0 +2020-04-10,Penobscot,Maine,23019,33,0 +2020-04-11,Penobscot,Maine,23019,34,0 +2020-04-12,Penobscot,Maine,23019,34,0 +2020-04-13,Penobscot,Maine,23019,34,0 +2020-04-14,Penobscot,Maine,23019,34,0 +2020-04-15,Penobscot,Maine,23019,36,0 +2020-04-16,Penobscot,Maine,23019,37,0 +2020-04-17,Penobscot,Maine,23019,40,0 +2020-04-18,Penobscot,Maine,23019,41,0 +2020-04-19,Penobscot,Maine,23019,43,0 +2020-04-20,Penobscot,Maine,23019,44,0 +2020-04-21,Penobscot,Maine,23019,46,0 +2020-04-22,Penobscot,Maine,23019,47,0 +2020-04-23,Penobscot,Maine,23019,49,0 +2020-04-24,Penobscot,Maine,23019,50,0 +2020-04-25,Penobscot,Maine,23019,52,0 +2020-04-26,Penobscot,Maine,23019,53,0 +2020-04-27,Penobscot,Maine,23019,55,0 +2020-04-28,Penobscot,Maine,23019,57,0 +2020-04-29,Penobscot,Maine,23019,59,0 +2020-04-30,Penobscot,Maine,23019,78,0 +2020-05-01,Penobscot,Maine,23019,79,0 +2020-05-02,Penobscot,Maine,23019,82,0 +2020-05-03,Penobscot,Maine,23019,84,0 +2020-05-04,Penobscot,Maine,23019,85,0 +2020-05-05,Penobscot,Maine,23019,85,0 +2020-05-06,Penobscot,Maine,23019,87,0 +2020-05-07,Penobscot,Maine,23019,89,0 +2020-05-08,Penobscot,Maine,23019,89,0 +2020-05-09,Penobscot,Maine,23019,89,0 +2020-05-10,Penobscot,Maine,23019,90,0 +2020-05-11,Penobscot,Maine,23019,90,0 +2020-05-12,Penobscot,Maine,23019,90,0 +2020-05-13,Penobscot,Maine,23019,90,0 +2020-05-14,Penobscot,Maine,23019,91,1 +2020-05-15,Penobscot,Maine,23019,91,1 +2020-05-16,Penobscot,Maine,23019,93,1 +2020-05-17,Penobscot,Maine,23019,93,1 +2020-05-18,Penobscot,Maine,23019,93,1 +2020-05-19,Penobscot,Maine,23019,94,1 +2020-05-20,Penobscot,Maine,23019,95,1 +2020-05-21,Penobscot,Maine,23019,98,1 +2020-05-22,Penobscot,Maine,23019,98,1 +2020-05-23,Penobscot,Maine,23019,98,1 +2020-05-24,Penobscot,Maine,23019,98,1 +2020-05-25,Penobscot,Maine,23019,99,1 +2020-05-26,Penobscot,Maine,23019,99,1 +2020-05-27,Penobscot,Maine,23019,99,1 +2020-05-28,Penobscot,Maine,23019,100,1 +2020-05-29,Penobscot,Maine,23019,100,1 +2020-05-30,Penobscot,Maine,23019,100,1 +2020-05-31,Penobscot,Maine,23019,100,1 +2020-06-01,Penobscot,Maine,23019,100,1 +2020-06-02,Penobscot,Maine,23019,100,2 +2020-06-03,Penobscot,Maine,23019,100,2 +2020-06-04,Penobscot,Maine,23019,100,2 +2020-06-05,Penobscot,Maine,23019,101,2 +2020-06-06,Penobscot,Maine,23019,101,2 +2020-06-07,Penobscot,Maine,23019,101,2 +2020-06-08,Penobscot,Maine,23019,101,2 +2020-06-09,Penobscot,Maine,23019,101,2 +2020-06-10,Penobscot,Maine,23019,101,2 +2020-06-11,Penobscot,Maine,23019,101,2 +2020-06-12,Penobscot,Maine,23019,102,2 +2020-06-13,Penobscot,Maine,23019,102,2 +2020-06-14,Penobscot,Maine,23019,102,2 +2020-06-15,Penobscot,Maine,23019,102,2 +2020-06-16,Penobscot,Maine,23019,101,2 +2020-06-17,Penobscot,Maine,23019,101,2 +2020-06-18,Penobscot,Maine,23019,101,2 +2020-06-19,Penobscot,Maine,23019,102,2 +2020-06-20,Penobscot,Maine,23019,102,2 +2020-06-21,Penobscot,Maine,23019,102,2 +2020-06-22,Penobscot,Maine,23019,103,2 +2020-06-23,Penobscot,Maine,23019,104,2 +2020-06-24,Penobscot,Maine,23019,104,2 +2020-06-25,Penobscot,Maine,23019,105,2 +2020-06-26,Penobscot,Maine,23019,104,2 +2020-06-27,Penobscot,Maine,23019,105,2 +2020-06-28,Penobscot,Maine,23019,105,2 +2020-06-29,Penobscot,Maine,23019,106,2 +2020-06-30,Penobscot,Maine,23019,106,2 +2020-07-01,Penobscot,Maine,23019,108,2 +2020-07-02,Penobscot,Maine,23019,108,2 +2020-07-03,Penobscot,Maine,23019,112,2 +2020-07-04,Penobscot,Maine,23019,114,2 +2020-07-05,Penobscot,Maine,23019,116,2 +2020-07-06,Penobscot,Maine,23019,118,2 +2020-07-07,Penobscot,Maine,23019,117,2 +2020-07-08,Penobscot,Maine,23019,119,2 +2020-07-09,Penobscot,Maine,23019,122,3 +2020-04-19,Piscataquis,Maine,23021,1,0 +2020-04-20,Piscataquis,Maine,23021,1,0 +2020-04-21,Piscataquis,Maine,23021,1,0 +2020-04-22,Piscataquis,Maine,23021,1,0 +2020-04-23,Piscataquis,Maine,23021,1,0 +2020-04-24,Piscataquis,Maine,23021,1,0 +2020-04-25,Piscataquis,Maine,23021,1,0 +2020-04-26,Piscataquis,Maine,23021,1,0 +2020-04-27,Piscataquis,Maine,23021,1,0 +2020-04-28,Piscataquis,Maine,23021,1,0 +2020-04-29,Piscataquis,Maine,23021,1,0 +2020-04-30,Piscataquis,Maine,23021,1,0 +2020-05-01,Piscataquis,Maine,23021,1,0 +2020-05-02,Piscataquis,Maine,23021,1,0 +2020-05-03,Piscataquis,Maine,23021,1,0 +2020-05-04,Piscataquis,Maine,23021,1,0 +2020-05-05,Piscataquis,Maine,23021,1,0 +2020-05-06,Piscataquis,Maine,23021,1,0 +2020-05-07,Piscataquis,Maine,23021,1,0 +2020-05-08,Piscataquis,Maine,23021,1,0 +2020-05-09,Piscataquis,Maine,23021,1,0 +2020-05-10,Piscataquis,Maine,23021,1,0 +2020-05-11,Piscataquis,Maine,23021,1,0 +2020-05-12,Piscataquis,Maine,23021,1,0 +2020-05-13,Piscataquis,Maine,23021,1,0 +2020-05-14,Piscataquis,Maine,23021,1,0 +2020-05-15,Piscataquis,Maine,23021,1,0 +2020-05-16,Piscataquis,Maine,23021,1,0 +2020-05-17,Piscataquis,Maine,23021,1,0 +2020-05-18,Piscataquis,Maine,23021,1,0 +2020-05-19,Piscataquis,Maine,23021,1,0 +2020-05-20,Piscataquis,Maine,23021,1,0 +2020-05-21,Piscataquis,Maine,23021,1,0 +2020-05-22,Piscataquis,Maine,23021,1,0 +2020-05-23,Piscataquis,Maine,23021,1,0 +2020-05-24,Piscataquis,Maine,23021,1,0 +2020-05-25,Piscataquis,Maine,23021,1,0 +2020-05-26,Piscataquis,Maine,23021,1,0 +2020-05-27,Piscataquis,Maine,23021,1,0 +2020-05-28,Piscataquis,Maine,23021,1,0 +2020-05-29,Piscataquis,Maine,23021,1,0 +2020-05-30,Piscataquis,Maine,23021,1,0 +2020-05-31,Piscataquis,Maine,23021,1,0 +2020-06-01,Piscataquis,Maine,23021,1,0 +2020-06-02,Piscataquis,Maine,23021,1,0 +2020-06-03,Piscataquis,Maine,23021,1,0 +2020-06-04,Piscataquis,Maine,23021,1,0 +2020-06-05,Piscataquis,Maine,23021,1,0 +2020-06-06,Piscataquis,Maine,23021,1,0 +2020-06-07,Piscataquis,Maine,23021,1,0 +2020-06-08,Piscataquis,Maine,23021,1,0 +2020-06-09,Piscataquis,Maine,23021,1,0 +2020-06-10,Piscataquis,Maine,23021,1,0 +2020-06-11,Piscataquis,Maine,23021,1,0 +2020-06-12,Piscataquis,Maine,23021,1,0 +2020-06-13,Piscataquis,Maine,23021,1,0 +2020-06-14,Piscataquis,Maine,23021,1,0 +2020-06-15,Piscataquis,Maine,23021,1,0 +2020-06-16,Piscataquis,Maine,23021,1,0 +2020-06-17,Piscataquis,Maine,23021,1,0 +2020-06-18,Piscataquis,Maine,23021,1,0 +2020-06-19,Piscataquis,Maine,23021,1,0 +2020-06-20,Piscataquis,Maine,23021,2,0 +2020-06-21,Piscataquis,Maine,23021,2,0 +2020-06-22,Piscataquis,Maine,23021,2,0 +2020-06-23,Piscataquis,Maine,23021,2,0 +2020-06-24,Piscataquis,Maine,23021,2,0 +2020-06-25,Piscataquis,Maine,23021,2,0 +2020-06-26,Piscataquis,Maine,23021,2,0 +2020-06-27,Piscataquis,Maine,23021,3,0 +2020-06-28,Piscataquis,Maine,23021,3,0 +2020-06-29,Piscataquis,Maine,23021,3,0 +2020-06-30,Piscataquis,Maine,23021,3,0 +2020-07-01,Piscataquis,Maine,23021,3,0 +2020-07-02,Piscataquis,Maine,23021,3,0 +2020-07-03,Piscataquis,Maine,23021,3,0 +2020-07-04,Piscataquis,Maine,23021,3,0 +2020-07-05,Piscataquis,Maine,23021,4,0 +2020-07-06,Piscataquis,Maine,23021,4,0 +2020-07-07,Piscataquis,Maine,23021,4,0 +2020-07-08,Piscataquis,Maine,23021,4,0 +2020-07-09,Piscataquis,Maine,23021,5,0 +2020-03-21,Sagadahoc,Maine,23023,1,0 +2020-03-22,Sagadahoc,Maine,23023,3,0 +2020-03-23,Sagadahoc,Maine,23023,3,0 +2020-03-24,Sagadahoc,Maine,23023,3,0 +2020-03-25,Sagadahoc,Maine,23023,4,0 +2020-03-26,Sagadahoc,Maine,23023,4,0 +2020-03-27,Sagadahoc,Maine,23023,4,0 +2020-03-28,Sagadahoc,Maine,23023,5,0 +2020-03-29,Sagadahoc,Maine,23023,7,0 +2020-03-30,Sagadahoc,Maine,23023,7,0 +2020-03-31,Sagadahoc,Maine,23023,7,0 +2020-04-01,Sagadahoc,Maine,23023,10,0 +2020-04-02,Sagadahoc,Maine,23023,10,0 +2020-04-03,Sagadahoc,Maine,23023,12,0 +2020-04-04,Sagadahoc,Maine,23023,13,0 +2020-04-05,Sagadahoc,Maine,23023,13,0 +2020-04-06,Sagadahoc,Maine,23023,13,0 +2020-04-07,Sagadahoc,Maine,23023,13,0 +2020-04-08,Sagadahoc,Maine,23023,13,0 +2020-04-09,Sagadahoc,Maine,23023,14,0 +2020-04-10,Sagadahoc,Maine,23023,15,1 +2020-04-11,Sagadahoc,Maine,23023,15,1 +2020-04-12,Sagadahoc,Maine,23023,15,1 +2020-04-13,Sagadahoc,Maine,23023,15,1 +2020-04-14,Sagadahoc,Maine,23023,14,0 +2020-04-15,Sagadahoc,Maine,23023,15,0 +2020-04-16,Sagadahoc,Maine,23023,15,0 +2020-04-17,Sagadahoc,Maine,23023,15,0 +2020-04-18,Sagadahoc,Maine,23023,15,0 +2020-04-19,Sagadahoc,Maine,23023,16,0 +2020-04-20,Sagadahoc,Maine,23023,16,0 +2020-04-21,Sagadahoc,Maine,23023,17,0 +2020-04-22,Sagadahoc,Maine,23023,17,0 +2020-04-23,Sagadahoc,Maine,23023,17,0 +2020-04-24,Sagadahoc,Maine,23023,17,0 +2020-04-25,Sagadahoc,Maine,23023,18,0 +2020-04-26,Sagadahoc,Maine,23023,18,0 +2020-04-27,Sagadahoc,Maine,23023,18,0 +2020-04-28,Sagadahoc,Maine,23023,18,0 +2020-04-29,Sagadahoc,Maine,23023,19,0 +2020-04-30,Sagadahoc,Maine,23023,19,0 +2020-05-01,Sagadahoc,Maine,23023,19,0 +2020-05-02,Sagadahoc,Maine,23023,19,0 +2020-05-03,Sagadahoc,Maine,23023,19,0 +2020-05-04,Sagadahoc,Maine,23023,19,0 +2020-05-05,Sagadahoc,Maine,23023,19,0 +2020-05-06,Sagadahoc,Maine,23023,20,0 +2020-05-07,Sagadahoc,Maine,23023,20,0 +2020-05-08,Sagadahoc,Maine,23023,20,0 +2020-05-09,Sagadahoc,Maine,23023,20,0 +2020-05-10,Sagadahoc,Maine,23023,21,0 +2020-05-11,Sagadahoc,Maine,23023,21,0 +2020-05-12,Sagadahoc,Maine,23023,21,0 +2020-05-13,Sagadahoc,Maine,23023,23,0 +2020-05-14,Sagadahoc,Maine,23023,25,0 +2020-05-15,Sagadahoc,Maine,23023,26,0 +2020-05-16,Sagadahoc,Maine,23023,26,0 +2020-05-17,Sagadahoc,Maine,23023,27,0 +2020-05-18,Sagadahoc,Maine,23023,27,0 +2020-05-19,Sagadahoc,Maine,23023,27,0 +2020-05-20,Sagadahoc,Maine,23023,28,0 +2020-05-21,Sagadahoc,Maine,23023,28,0 +2020-05-22,Sagadahoc,Maine,23023,28,0 +2020-05-23,Sagadahoc,Maine,23023,28,0 +2020-05-24,Sagadahoc,Maine,23023,28,0 +2020-05-25,Sagadahoc,Maine,23023,28,0 +2020-05-26,Sagadahoc,Maine,23023,28,0 +2020-05-27,Sagadahoc,Maine,23023,29,0 +2020-05-28,Sagadahoc,Maine,23023,30,0 +2020-05-29,Sagadahoc,Maine,23023,30,0 +2020-05-30,Sagadahoc,Maine,23023,30,0 +2020-05-31,Sagadahoc,Maine,23023,30,0 +2020-06-01,Sagadahoc,Maine,23023,30,0 +2020-06-02,Sagadahoc,Maine,23023,31,0 +2020-06-03,Sagadahoc,Maine,23023,31,0 +2020-06-04,Sagadahoc,Maine,23023,30,0 +2020-06-05,Sagadahoc,Maine,23023,30,0 +2020-06-06,Sagadahoc,Maine,23023,30,0 +2020-06-07,Sagadahoc,Maine,23023,30,0 +2020-06-08,Sagadahoc,Maine,23023,30,0 +2020-06-09,Sagadahoc,Maine,23023,30,0 +2020-06-10,Sagadahoc,Maine,23023,30,0 +2020-06-11,Sagadahoc,Maine,23023,30,0 +2020-06-12,Sagadahoc,Maine,23023,30,0 +2020-06-13,Sagadahoc,Maine,23023,30,0 +2020-06-14,Sagadahoc,Maine,23023,30,0 +2020-06-15,Sagadahoc,Maine,23023,30,0 +2020-06-16,Sagadahoc,Maine,23023,30,0 +2020-06-17,Sagadahoc,Maine,23023,30,0 +2020-06-18,Sagadahoc,Maine,23023,30,0 +2020-06-19,Sagadahoc,Maine,23023,30,0 +2020-06-20,Sagadahoc,Maine,23023,30,0 +2020-06-21,Sagadahoc,Maine,23023,30,0 +2020-06-22,Sagadahoc,Maine,23023,31,0 +2020-06-23,Sagadahoc,Maine,23023,31,0 +2020-06-24,Sagadahoc,Maine,23023,32,0 +2020-06-25,Sagadahoc,Maine,23023,32,0 +2020-06-26,Sagadahoc,Maine,23023,32,0 +2020-06-27,Sagadahoc,Maine,23023,34,0 +2020-06-28,Sagadahoc,Maine,23023,34,0 +2020-06-29,Sagadahoc,Maine,23023,34,0 +2020-06-30,Sagadahoc,Maine,23023,34,0 +2020-07-01,Sagadahoc,Maine,23023,34,0 +2020-07-02,Sagadahoc,Maine,23023,34,0 +2020-07-03,Sagadahoc,Maine,23023,34,0 +2020-07-04,Sagadahoc,Maine,23023,34,0 +2020-07-05,Sagadahoc,Maine,23023,34,0 +2020-07-06,Sagadahoc,Maine,23023,34,0 +2020-07-07,Sagadahoc,Maine,23023,34,0 +2020-07-08,Sagadahoc,Maine,23023,34,0 +2020-07-09,Sagadahoc,Maine,23023,34,0 +2020-03-29,Somerset,Maine,23025,1,0 +2020-03-30,Somerset,Maine,23025,1,0 +2020-03-31,Somerset,Maine,23025,1,0 +2020-04-01,Somerset,Maine,23025,1,0 +2020-04-02,Somerset,Maine,23025,2,0 +2020-04-03,Somerset,Maine,23025,2,0 +2020-04-04,Somerset,Maine,23025,3,0 +2020-04-05,Somerset,Maine,23025,4,0 +2020-04-06,Somerset,Maine,23025,4,0 +2020-04-07,Somerset,Maine,23025,4,0 +2020-04-08,Somerset,Maine,23025,5,0 +2020-04-09,Somerset,Maine,23025,5,0 +2020-04-10,Somerset,Maine,23025,5,0 +2020-04-11,Somerset,Maine,23025,6,0 +2020-04-12,Somerset,Maine,23025,8,0 +2020-04-13,Somerset,Maine,23025,8,0 +2020-04-14,Somerset,Maine,23025,11,0 +2020-04-15,Somerset,Maine,23025,13,0 +2020-04-16,Somerset,Maine,23025,14,0 +2020-04-17,Somerset,Maine,23025,15,0 +2020-04-18,Somerset,Maine,23025,15,0 +2020-04-19,Somerset,Maine,23025,16,0 +2020-04-20,Somerset,Maine,23025,16,0 +2020-04-21,Somerset,Maine,23025,16,0 +2020-04-22,Somerset,Maine,23025,16,0 +2020-04-23,Somerset,Maine,23025,16,0 +2020-04-24,Somerset,Maine,23025,16,0 +2020-04-25,Somerset,Maine,23025,17,0 +2020-04-26,Somerset,Maine,23025,17,0 +2020-04-27,Somerset,Maine,23025,17,0 +2020-04-28,Somerset,Maine,23025,18,0 +2020-04-29,Somerset,Maine,23025,18,0 +2020-04-30,Somerset,Maine,23025,17,0 +2020-05-01,Somerset,Maine,23025,17,0 +2020-05-02,Somerset,Maine,23025,17,0 +2020-05-03,Somerset,Maine,23025,17,0 +2020-05-04,Somerset,Maine,23025,17,0 +2020-05-05,Somerset,Maine,23025,17,0 +2020-05-06,Somerset,Maine,23025,17,0 +2020-05-07,Somerset,Maine,23025,17,0 +2020-05-08,Somerset,Maine,23025,17,0 +2020-05-09,Somerset,Maine,23025,17,0 +2020-05-10,Somerset,Maine,23025,17,0 +2020-05-11,Somerset,Maine,23025,17,0 +2020-05-12,Somerset,Maine,23025,17,0 +2020-05-13,Somerset,Maine,23025,18,0 +2020-05-14,Somerset,Maine,23025,18,0 +2020-05-15,Somerset,Maine,23025,19,0 +2020-05-16,Somerset,Maine,23025,20,0 +2020-05-17,Somerset,Maine,23025,20,0 +2020-05-18,Somerset,Maine,23025,20,0 +2020-05-19,Somerset,Maine,23025,20,0 +2020-05-20,Somerset,Maine,23025,20,0 +2020-05-21,Somerset,Maine,23025,20,0 +2020-05-22,Somerset,Maine,23025,21,0 +2020-05-23,Somerset,Maine,23025,21,0 +2020-05-24,Somerset,Maine,23025,21,0 +2020-05-25,Somerset,Maine,23025,21,0 +2020-05-26,Somerset,Maine,23025,21,0 +2020-05-27,Somerset,Maine,23025,21,0 +2020-05-28,Somerset,Maine,23025,22,0 +2020-05-29,Somerset,Maine,23025,22,0 +2020-05-30,Somerset,Maine,23025,22,0 +2020-05-31,Somerset,Maine,23025,22,0 +2020-06-01,Somerset,Maine,23025,22,0 +2020-06-02,Somerset,Maine,23025,22,0 +2020-06-03,Somerset,Maine,23025,22,0 +2020-06-04,Somerset,Maine,23025,22,0 +2020-06-05,Somerset,Maine,23025,22,0 +2020-06-06,Somerset,Maine,23025,22,0 +2020-06-07,Somerset,Maine,23025,22,0 +2020-06-08,Somerset,Maine,23025,24,0 +2020-06-09,Somerset,Maine,23025,24,0 +2020-06-10,Somerset,Maine,23025,25,0 +2020-06-11,Somerset,Maine,23025,25,0 +2020-06-12,Somerset,Maine,23025,25,0 +2020-06-13,Somerset,Maine,23025,25,0 +2020-06-14,Somerset,Maine,23025,25,0 +2020-06-15,Somerset,Maine,23025,25,0 +2020-06-16,Somerset,Maine,23025,25,0 +2020-06-17,Somerset,Maine,23025,26,0 +2020-06-18,Somerset,Maine,23025,26,0 +2020-06-19,Somerset,Maine,23025,26,0 +2020-06-20,Somerset,Maine,23025,26,0 +2020-06-21,Somerset,Maine,23025,26,0 +2020-06-22,Somerset,Maine,23025,26,0 +2020-06-23,Somerset,Maine,23025,26,0 +2020-06-24,Somerset,Maine,23025,26,0 +2020-06-25,Somerset,Maine,23025,26,0 +2020-06-26,Somerset,Maine,23025,27,0 +2020-06-27,Somerset,Maine,23025,27,0 +2020-06-28,Somerset,Maine,23025,27,0 +2020-06-29,Somerset,Maine,23025,28,0 +2020-06-30,Somerset,Maine,23025,28,0 +2020-07-01,Somerset,Maine,23025,28,0 +2020-07-02,Somerset,Maine,23025,28,0 +2020-07-03,Somerset,Maine,23025,29,0 +2020-07-04,Somerset,Maine,23025,30,0 +2020-07-05,Somerset,Maine,23025,30,0 +2020-07-06,Somerset,Maine,23025,30,0 +2020-07-07,Somerset,Maine,23025,30,0 +2020-07-08,Somerset,Maine,23025,30,0 +2020-07-09,Somerset,Maine,23025,31,0 +2020-03-24,Waldo,Maine,23027,1,0 +2020-03-25,Waldo,Maine,23027,1,0 +2020-03-26,Waldo,Maine,23027,2,0 +2020-03-27,Waldo,Maine,23027,2,0 +2020-03-28,Waldo,Maine,23027,2,0 +2020-03-29,Waldo,Maine,23027,2,0 +2020-03-30,Waldo,Maine,23027,2,0 +2020-03-31,Waldo,Maine,23027,2,0 +2020-04-01,Waldo,Maine,23027,2,0 +2020-04-02,Waldo,Maine,23027,2,0 +2020-04-03,Waldo,Maine,23027,3,0 +2020-04-04,Waldo,Maine,23027,3,0 +2020-04-05,Waldo,Maine,23027,3,0 +2020-04-06,Waldo,Maine,23027,5,0 +2020-04-07,Waldo,Maine,23027,5,0 +2020-04-08,Waldo,Maine,23027,7,1 +2020-04-09,Waldo,Maine,23027,11,2 +2020-04-10,Waldo,Maine,23027,19,2 +2020-04-11,Waldo,Maine,23027,27,2 +2020-04-12,Waldo,Maine,23027,29,2 +2020-04-13,Waldo,Maine,23027,29,2 +2020-04-14,Waldo,Maine,23027,29,2 +2020-04-15,Waldo,Maine,23027,30,2 +2020-04-16,Waldo,Maine,23027,39,3 +2020-04-17,Waldo,Maine,23027,42,5 +2020-04-18,Waldo,Maine,23027,42,7 +2020-04-19,Waldo,Maine,23027,42,7 +2020-04-20,Waldo,Maine,23027,43,8 +2020-04-21,Waldo,Maine,23027,43,8 +2020-04-22,Waldo,Maine,23027,45,10 +2020-04-23,Waldo,Maine,23027,47,10 +2020-04-24,Waldo,Maine,23027,47,10 +2020-04-25,Waldo,Maine,23027,48,11 +2020-04-26,Waldo,Maine,23027,48,11 +2020-04-27,Waldo,Maine,23027,48,11 +2020-04-28,Waldo,Maine,23027,48,11 +2020-04-29,Waldo,Maine,23027,48,11 +2020-04-30,Waldo,Maine,23027,48,11 +2020-05-01,Waldo,Maine,23027,49,12 +2020-05-02,Waldo,Maine,23027,49,13 +2020-05-03,Waldo,Maine,23027,49,13 +2020-05-04,Waldo,Maine,23027,49,13 +2020-05-05,Waldo,Maine,23027,49,13 +2020-05-06,Waldo,Maine,23027,49,13 +2020-05-07,Waldo,Maine,23027,49,13 +2020-05-08,Waldo,Maine,23027,49,13 +2020-05-09,Waldo,Maine,23027,49,14 +2020-05-10,Waldo,Maine,23027,49,14 +2020-05-11,Waldo,Maine,23027,49,14 +2020-05-12,Waldo,Maine,23027,49,14 +2020-05-13,Waldo,Maine,23027,49,14 +2020-05-14,Waldo,Maine,23027,50,14 +2020-05-15,Waldo,Maine,23027,50,14 +2020-05-16,Waldo,Maine,23027,50,14 +2020-05-17,Waldo,Maine,23027,50,14 +2020-05-18,Waldo,Maine,23027,50,14 +2020-05-19,Waldo,Maine,23027,50,14 +2020-05-20,Waldo,Maine,23027,50,14 +2020-05-21,Waldo,Maine,23027,51,14 +2020-05-22,Waldo,Maine,23027,51,14 +2020-05-23,Waldo,Maine,23027,51,14 +2020-05-24,Waldo,Maine,23027,51,14 +2020-05-25,Waldo,Maine,23027,51,14 +2020-05-26,Waldo,Maine,23027,51,14 +2020-05-27,Waldo,Maine,23027,51,14 +2020-05-28,Waldo,Maine,23027,51,14 +2020-05-29,Waldo,Maine,23027,51,14 +2020-05-30,Waldo,Maine,23027,51,14 +2020-05-31,Waldo,Maine,23027,51,14 +2020-06-01,Waldo,Maine,23027,51,14 +2020-06-02,Waldo,Maine,23027,51,14 +2020-06-03,Waldo,Maine,23027,51,14 +2020-06-04,Waldo,Maine,23027,51,14 +2020-06-05,Waldo,Maine,23027,52,14 +2020-06-06,Waldo,Maine,23027,52,14 +2020-06-07,Waldo,Maine,23027,52,14 +2020-06-08,Waldo,Maine,23027,53,14 +2020-06-09,Waldo,Maine,23027,53,14 +2020-06-10,Waldo,Maine,23027,54,14 +2020-06-11,Waldo,Maine,23027,55,14 +2020-06-12,Waldo,Maine,23027,55,14 +2020-06-13,Waldo,Maine,23027,55,14 +2020-06-14,Waldo,Maine,23027,55,14 +2020-06-15,Waldo,Maine,23027,55,14 +2020-06-16,Waldo,Maine,23027,55,14 +2020-06-17,Waldo,Maine,23027,55,14 +2020-06-18,Waldo,Maine,23027,55,14 +2020-06-19,Waldo,Maine,23027,55,14 +2020-06-20,Waldo,Maine,23027,55,14 +2020-06-21,Waldo,Maine,23027,55,14 +2020-06-22,Waldo,Maine,23027,55,14 +2020-06-23,Waldo,Maine,23027,55,14 +2020-06-24,Waldo,Maine,23027,55,14 +2020-06-25,Waldo,Maine,23027,55,14 +2020-06-26,Waldo,Maine,23027,55,14 +2020-06-27,Waldo,Maine,23027,55,14 +2020-06-28,Waldo,Maine,23027,55,14 +2020-06-29,Waldo,Maine,23027,55,14 +2020-06-30,Waldo,Maine,23027,55,14 +2020-07-01,Waldo,Maine,23027,56,14 +2020-07-02,Waldo,Maine,23027,56,14 +2020-07-03,Waldo,Maine,23027,56,14 +2020-07-04,Waldo,Maine,23027,56,14 +2020-07-05,Waldo,Maine,23027,56,14 +2020-07-06,Waldo,Maine,23027,58,14 +2020-07-07,Waldo,Maine,23027,58,14 +2020-07-08,Waldo,Maine,23027,58,14 +2020-07-09,Waldo,Maine,23027,58,14 +2020-04-03,Washington,Maine,23029,1,0 +2020-04-04,Washington,Maine,23029,1,0 +2020-04-05,Washington,Maine,23029,1,0 +2020-04-06,Washington,Maine,23029,1,0 +2020-04-07,Washington,Maine,23029,1,0 +2020-04-08,Washington,Maine,23029,1,0 +2020-04-09,Washington,Maine,23029,1,0 +2020-04-10,Washington,Maine,23029,1,0 +2020-04-11,Washington,Maine,23029,1,0 +2020-04-12,Washington,Maine,23029,1,0 +2020-04-13,Washington,Maine,23029,1,0 +2020-04-14,Washington,Maine,23029,1,0 +2020-04-15,Washington,Maine,23029,2,0 +2020-04-16,Washington,Maine,23029,2,0 +2020-04-17,Washington,Maine,23029,2,0 +2020-04-18,Washington,Maine,23029,2,0 +2020-04-19,Washington,Maine,23029,2,0 +2020-04-20,Washington,Maine,23029,2,0 +2020-04-21,Washington,Maine,23029,2,0 +2020-04-22,Washington,Maine,23029,2,0 +2020-04-23,Washington,Maine,23029,2,0 +2020-04-24,Washington,Maine,23029,2,0 +2020-04-25,Washington,Maine,23029,2,0 +2020-04-26,Washington,Maine,23029,2,0 +2020-04-27,Washington,Maine,23029,2,0 +2020-04-28,Washington,Maine,23029,2,0 +2020-04-29,Washington,Maine,23029,2,0 +2020-04-30,Washington,Maine,23029,2,0 +2020-05-01,Washington,Maine,23029,2,0 +2020-05-02,Washington,Maine,23029,2,0 +2020-05-03,Washington,Maine,23029,2,0 +2020-05-04,Washington,Maine,23029,2,0 +2020-05-05,Washington,Maine,23029,2,0 +2020-05-06,Washington,Maine,23029,2,0 +2020-05-07,Washington,Maine,23029,2,0 +2020-05-08,Washington,Maine,23029,2,0 +2020-05-09,Washington,Maine,23029,2,0 +2020-05-10,Washington,Maine,23029,2,0 +2020-05-11,Washington,Maine,23029,2,0 +2020-05-12,Washington,Maine,23029,2,0 +2020-05-13,Washington,Maine,23029,2,0 +2020-05-14,Washington,Maine,23029,2,0 +2020-05-15,Washington,Maine,23029,2,0 +2020-05-16,Washington,Maine,23029,2,0 +2020-05-17,Washington,Maine,23029,2,0 +2020-05-18,Washington,Maine,23029,2,0 +2020-05-19,Washington,Maine,23029,2,0 +2020-05-20,Washington,Maine,23029,2,0 +2020-05-21,Washington,Maine,23029,2,0 +2020-05-22,Washington,Maine,23029,2,0 +2020-05-23,Washington,Maine,23029,2,0 +2020-05-24,Washington,Maine,23029,2,0 +2020-05-25,Washington,Maine,23029,2,0 +2020-05-26,Washington,Maine,23029,2,0 +2020-05-27,Washington,Maine,23029,2,0 +2020-05-28,Washington,Maine,23029,2,0 +2020-05-29,Washington,Maine,23029,2,0 +2020-05-30,Washington,Maine,23029,2,0 +2020-05-31,Washington,Maine,23029,2,0 +2020-06-01,Washington,Maine,23029,2,0 +2020-06-02,Washington,Maine,23029,1,0 +2020-06-03,Washington,Maine,23029,1,0 +2020-06-04,Washington,Maine,23029,1,0 +2020-06-05,Washington,Maine,23029,1,0 +2020-06-06,Washington,Maine,23029,1,0 +2020-06-07,Washington,Maine,23029,1,0 +2020-06-08,Washington,Maine,23029,1,0 +2020-06-09,Washington,Maine,23029,1,0 +2020-06-10,Washington,Maine,23029,1,0 +2020-06-11,Washington,Maine,23029,1,0 +2020-06-12,Washington,Maine,23029,1,0 +2020-06-13,Washington,Maine,23029,1,0 +2020-06-14,Washington,Maine,23029,1,0 +2020-06-15,Washington,Maine,23029,1,0 +2020-06-16,Washington,Maine,23029,1,0 +2020-06-17,Washington,Maine,23029,1,0 +2020-06-18,Washington,Maine,23029,2,0 +2020-06-19,Washington,Maine,23029,2,0 +2020-06-20,Washington,Maine,23029,2,0 +2020-06-21,Washington,Maine,23029,2,0 +2020-06-22,Washington,Maine,23029,2,0 +2020-06-23,Washington,Maine,23029,2,0 +2020-06-24,Washington,Maine,23029,2,0 +2020-06-25,Washington,Maine,23029,2,0 +2020-06-26,Washington,Maine,23029,2,0 +2020-06-27,Washington,Maine,23029,2,0 +2020-06-28,Washington,Maine,23029,2,0 +2020-06-29,Washington,Maine,23029,2,0 +2020-06-30,Washington,Maine,23029,2,0 +2020-07-01,Washington,Maine,23029,3,0 +2020-07-02,Washington,Maine,23029,3,0 +2020-07-03,Washington,Maine,23029,3,0 +2020-07-04,Washington,Maine,23029,3,0 +2020-07-05,Washington,Maine,23029,3,0 +2020-07-06,Washington,Maine,23029,3,0 +2020-07-07,Washington,Maine,23029,4,0 +2020-07-08,Washington,Maine,23029,5,0 +2020-07-09,Washington,Maine,23029,5,0 +2020-03-17,York,Maine,23031,1,0 +2020-03-18,York,Maine,23031,1,0 +2020-03-19,York,Maine,23031,3,0 +2020-03-20,York,Maine,23031,5,0 +2020-03-21,York,Maine,23031,8,0 +2020-03-22,York,Maine,23031,8,0 +2020-03-23,York,Maine,23031,12,0 +2020-03-24,York,Maine,23031,16,0 +2020-03-25,York,Maine,23031,23,0 +2020-03-26,York,Maine,23031,27,0 +2020-03-27,York,Maine,23031,33,0 +2020-03-28,York,Maine,23031,38,0 +2020-03-29,York,Maine,23031,47,0 +2020-03-30,York,Maine,23031,53,0 +2020-03-31,York,Maine,23031,59,1 +2020-04-01,York,Maine,23031,65,1 +2020-04-02,York,Maine,23031,74,1 +2020-04-03,York,Maine,23031,89,1 +2020-04-04,York,Maine,23031,95,2 +2020-04-05,York,Maine,23031,101,2 +2020-04-06,York,Maine,23031,108,2 +2020-04-07,York,Maine,23031,115,2 +2020-04-08,York,Maine,23031,121,2 +2020-04-09,York,Maine,23031,132,2 +2020-04-10,York,Maine,23031,137,2 +2020-04-11,York,Maine,23031,143,3 +2020-04-12,York,Maine,23031,144,3 +2020-04-13,York,Maine,23031,151,3 +2020-04-14,York,Maine,23031,152,4 +2020-04-15,York,Maine,23031,156,4 +2020-04-16,York,Maine,23031,164,6 +2020-04-17,York,Maine,23031,170,6 +2020-04-18,York,Maine,23031,175,6 +2020-04-19,York,Maine,23031,177,6 +2020-04-20,York,Maine,23031,181,6 +2020-04-21,York,Maine,23031,183,6 +2020-04-22,York,Maine,23031,185,6 +2020-04-23,York,Maine,23031,190,6 +2020-04-24,York,Maine,23031,191,7 +2020-04-25,York,Maine,23031,194,7 +2020-04-26,York,Maine,23031,196,7 +2020-04-27,York,Maine,23031,196,7 +2020-04-28,York,Maine,23031,200,7 +2020-04-29,York,Maine,23031,203,7 +2020-04-30,York,Maine,23031,205,7 +2020-05-01,York,Maine,23031,208,7 +2020-05-02,York,Maine,23031,210,7 +2020-05-03,York,Maine,23031,215,7 +2020-05-04,York,Maine,23031,219,7 +2020-05-05,York,Maine,23031,226,7 +2020-05-06,York,Maine,23031,230,8 +2020-05-07,York,Maine,23031,243,8 +2020-05-08,York,Maine,23031,249,8 +2020-05-09,York,Maine,23031,256,8 +2020-05-10,York,Maine,23031,261,8 +2020-05-11,York,Maine,23031,262,8 +2020-05-12,York,Maine,23031,264,8 +2020-05-13,York,Maine,23031,269,8 +2020-05-14,York,Maine,23031,277,8 +2020-05-15,York,Maine,23031,281,8 +2020-05-16,York,Maine,23031,288,8 +2020-05-17,York,Maine,23031,295,8 +2020-05-18,York,Maine,23031,302,8 +2020-05-19,York,Maine,23031,307,8 +2020-05-20,York,Maine,23031,316,8 +2020-05-21,York,Maine,23031,320,8 +2020-05-22,York,Maine,23031,331,8 +2020-05-23,York,Maine,23031,337,8 +2020-05-24,York,Maine,23031,344,9 +2020-05-25,York,Maine,23031,350,9 +2020-05-26,York,Maine,23031,359,9 +2020-05-27,York,Maine,23031,365,9 +2020-05-28,York,Maine,23031,370,9 +2020-05-29,York,Maine,23031,373,9 +2020-05-30,York,Maine,23031,381,10 +2020-05-31,York,Maine,23031,385,10 +2020-06-01,York,Maine,23031,391,10 +2020-06-02,York,Maine,23031,396,10 +2020-06-03,York,Maine,23031,398,10 +2020-06-04,York,Maine,23031,401,10 +2020-06-05,York,Maine,23031,408,11 +2020-06-06,York,Maine,23031,420,11 +2020-06-07,York,Maine,23031,427,11 +2020-06-08,York,Maine,23031,428,11 +2020-06-09,York,Maine,23031,428,11 +2020-06-10,York,Maine,23031,432,11 +2020-06-11,York,Maine,23031,431,11 +2020-06-12,York,Maine,23031,433,11 +2020-06-13,York,Maine,23031,438,11 +2020-06-14,York,Maine,23031,446,11 +2020-06-15,York,Maine,23031,446,11 +2020-06-16,York,Maine,23031,450,11 +2020-06-17,York,Maine,23031,450,11 +2020-06-18,York,Maine,23031,451,11 +2020-06-19,York,Maine,23031,457,11 +2020-06-20,York,Maine,23031,458,11 +2020-06-21,York,Maine,23031,461,11 +2020-06-22,York,Maine,23031,466,11 +2020-06-23,York,Maine,23031,472,11 +2020-06-24,York,Maine,23031,479,11 +2020-06-25,York,Maine,23031,482,11 +2020-06-26,York,Maine,23031,484,11 +2020-06-27,York,Maine,23031,497,11 +2020-06-28,York,Maine,23031,499,11 +2020-06-29,York,Maine,23031,504,11 +2020-06-30,York,Maine,23031,515,11 +2020-07-01,York,Maine,23031,529,11 +2020-07-02,York,Maine,23031,533,11 +2020-07-03,York,Maine,23031,545,11 +2020-07-04,York,Maine,23031,549,11 +2020-07-05,York,Maine,23031,550,11 +2020-07-06,York,Maine,23031,549,11 +2020-07-07,York,Maine,23031,555,11 +2020-07-08,York,Maine,23031,558,11 +2020-07-09,York,Maine,23031,557,11 +2020-04-02,Allegany,Maryland,24001,1,0 +2020-04-03,Allegany,Maryland,24001,2,0 +2020-04-04,Allegany,Maryland,24001,3,0 +2020-04-05,Allegany,Maryland,24001,6,0 +2020-04-06,Allegany,Maryland,24001,6,0 +2020-04-07,Allegany,Maryland,24001,7,0 +2020-04-08,Allegany,Maryland,24001,6,0 +2020-04-09,Allegany,Maryland,24001,8,0 +2020-04-10,Allegany,Maryland,24001,10,0 +2020-04-11,Allegany,Maryland,24001,11,0 +2020-04-12,Allegany,Maryland,24001,13,0 +2020-04-13,Allegany,Maryland,24001,15,0 +2020-04-14,Allegany,Maryland,24001,17,0 +2020-04-15,Allegany,Maryland,24001,17,1 +2020-04-16,Allegany,Maryland,24001,20,1 +2020-04-17,Allegany,Maryland,24001,26,1 +2020-04-18,Allegany,Maryland,24001,33,1 +2020-04-19,Allegany,Maryland,24001,33,1 +2020-04-20,Allegany,Maryland,24001,32,1 +2020-04-21,Allegany,Maryland,24001,56,2 +2020-04-22,Allegany,Maryland,24001,58,3 +2020-04-23,Allegany,Maryland,24001,77,3 +2020-04-24,Allegany,Maryland,24001,90,3 +2020-04-25,Allegany,Maryland,24001,105,3 +2020-04-26,Allegany,Maryland,24001,113,3 +2020-04-27,Allegany,Maryland,24001,114,4 +2020-04-28,Allegany,Maryland,24001,115,5 +2020-04-29,Allegany,Maryland,24001,116,6 +2020-04-30,Allegany,Maryland,24001,118,7 +2020-05-01,Allegany,Maryland,24001,118,7 +2020-05-02,Allegany,Maryland,24001,121,8 +2020-05-03,Allegany,Maryland,24001,124,12 +2020-05-04,Allegany,Maryland,24001,126,12 +2020-05-05,Allegany,Maryland,24001,129,12 +2020-05-06,Allegany,Maryland,24001,129,12 +2020-05-07,Allegany,Maryland,24001,143,12 +2020-05-08,Allegany,Maryland,24001,143,12 +2020-05-09,Allegany,Maryland,24001,144,12 +2020-05-10,Allegany,Maryland,24001,146,12 +2020-05-11,Allegany,Maryland,24001,146,12 +2020-05-12,Allegany,Maryland,24001,148,13 +2020-05-13,Allegany,Maryland,24001,149,13 +2020-05-14,Allegany,Maryland,24001,150,13 +2020-05-15,Allegany,Maryland,24001,151,13 +2020-05-16,Allegany,Maryland,24001,160,13 +2020-05-17,Allegany,Maryland,24001,161,13 +2020-05-18,Allegany,Maryland,24001,164,14 +2020-05-19,Allegany,Maryland,24001,166,14 +2020-05-20,Allegany,Maryland,24001,166,14 +2020-05-21,Allegany,Maryland,24001,166,14 +2020-05-22,Allegany,Maryland,24001,168,14 +2020-05-23,Allegany,Maryland,24001,168,14 +2020-05-24,Allegany,Maryland,24001,170,14 +2020-05-25,Allegany,Maryland,24001,176,14 +2020-05-26,Allegany,Maryland,24001,176,14 +2020-05-27,Allegany,Maryland,24001,177,15 +2020-05-28,Allegany,Maryland,24001,178,15 +2020-05-29,Allegany,Maryland,24001,177,16 +2020-05-30,Allegany,Maryland,24001,177,16 +2020-05-31,Allegany,Maryland,24001,178,17 +2020-06-01,Allegany,Maryland,24001,180,17 +2020-06-02,Allegany,Maryland,24001,181,17 +2020-06-03,Allegany,Maryland,24001,182,17 +2020-06-04,Allegany,Maryland,24001,182,16 +2020-06-05,Allegany,Maryland,24001,183,16 +2020-06-06,Allegany,Maryland,24001,184,16 +2020-06-07,Allegany,Maryland,24001,184,16 +2020-06-08,Allegany,Maryland,24001,185,16 +2020-06-09,Allegany,Maryland,24001,186,17 +2020-06-10,Allegany,Maryland,24001,185,17 +2020-06-11,Allegany,Maryland,24001,185,17 +2020-06-12,Allegany,Maryland,24001,187,17 +2020-06-13,Allegany,Maryland,24001,187,17 +2020-06-14,Allegany,Maryland,24001,187,17 +2020-06-15,Allegany,Maryland,24001,187,17 +2020-06-16,Allegany,Maryland,24001,188,17 +2020-06-17,Allegany,Maryland,24001,188,17 +2020-06-18,Allegany,Maryland,24001,187,17 +2020-06-19,Allegany,Maryland,24001,187,17 +2020-06-20,Allegany,Maryland,24001,188,17 +2020-06-21,Allegany,Maryland,24001,188,17 +2020-06-22,Allegany,Maryland,24001,189,17 +2020-06-23,Allegany,Maryland,24001,192,17 +2020-06-24,Allegany,Maryland,24001,194,17 +2020-06-25,Allegany,Maryland,24001,203,17 +2020-06-26,Allegany,Maryland,24001,204,17 +2020-06-27,Allegany,Maryland,24001,204,17 +2020-06-28,Allegany,Maryland,24001,204,17 +2020-06-29,Allegany,Maryland,24001,204,17 +2020-06-30,Allegany,Maryland,24001,205,17 +2020-07-01,Allegany,Maryland,24001,205,17 +2020-07-02,Allegany,Maryland,24001,205,17 +2020-07-03,Allegany,Maryland,24001,206,17 +2020-07-04,Allegany,Maryland,24001,208,17 +2020-07-05,Allegany,Maryland,24001,210,18 +2020-07-06,Allegany,Maryland,24001,210,18 +2020-07-07,Allegany,Maryland,24001,210,18 +2020-07-08,Allegany,Maryland,24001,212,18 +2020-07-09,Allegany,Maryland,24001,212,18 +2020-03-13,Anne Arundel,Maryland,24003,1,0 +2020-03-14,Anne Arundel,Maryland,24003,1,0 +2020-03-15,Anne Arundel,Maryland,24003,2,0 +2020-03-16,Anne Arundel,Maryland,24003,2,0 +2020-03-17,Anne Arundel,Maryland,24003,3,0 +2020-03-18,Anne Arundel,Maryland,24003,4,0 +2020-03-19,Anne Arundel,Maryland,24003,5,0 +2020-03-20,Anne Arundel,Maryland,24003,10,0 +2020-03-21,Anne Arundel,Maryland,24003,16,0 +2020-03-22,Anne Arundel,Maryland,24003,19,0 +2020-03-23,Anne Arundel,Maryland,24003,20,0 +2020-03-24,Anne Arundel,Maryland,24003,24,0 +2020-03-25,Anne Arundel,Maryland,24003,31,0 +2020-03-26,Anne Arundel,Maryland,24003,42,0 +2020-03-27,Anne Arundel,Maryland,24003,63,1 +2020-03-28,Anne Arundel,Maryland,24003,88,1 +2020-03-29,Anne Arundel,Maryland,24003,99,1 +2020-03-30,Anne Arundel,Maryland,24003,110,1 +2020-03-31,Anne Arundel,Maryland,24003,127,1 +2020-04-01,Anne Arundel,Maryland,24003,158,1 +2020-04-02,Anne Arundel,Maryland,24003,206,1 +2020-04-03,Anne Arundel,Maryland,24003,249,4 +2020-04-04,Anne Arundel,Maryland,24003,289,6 +2020-04-05,Anne Arundel,Maryland,24003,319,6 +2020-04-06,Anne Arundel,Maryland,24003,343,8 +2020-04-07,Anne Arundel,Maryland,24003,370,8 +2020-04-08,Anne Arundel,Maryland,24003,466,11 +2020-04-09,Anne Arundel,Maryland,24003,505,12 +2020-04-10,Anne Arundel,Maryland,24003,554,16 +2020-04-11,Anne Arundel,Maryland,24003,615,19 +2020-04-12,Anne Arundel,Maryland,24003,659,27 +2020-04-13,Anne Arundel,Maryland,24003,724,29 +2020-04-14,Anne Arundel,Maryland,24003,783,32 +2020-04-15,Anne Arundel,Maryland,24003,850,30 +2020-04-16,Anne Arundel,Maryland,24003,902,35 +2020-04-17,Anne Arundel,Maryland,24003,972,40 +2020-04-18,Anne Arundel,Maryland,24003,1012,41 +2020-04-19,Anne Arundel,Maryland,24003,1053,46 +2020-04-20,Anne Arundel,Maryland,24003,1104,48 +2020-04-21,Anne Arundel,Maryland,24003,1164,52 +2020-04-22,Anne Arundel,Maryland,24003,1197,56 +2020-04-23,Anne Arundel,Maryland,24003,1301,61 +2020-04-24,Anne Arundel,Maryland,24003,1380,63 +2020-04-25,Anne Arundel,Maryland,24003,1438,70 +2020-04-26,Anne Arundel,Maryland,24003,1518,71 +2020-04-27,Anne Arundel,Maryland,24003,1552,74 +2020-04-28,Anne Arundel,Maryland,24003,1579,78 +2020-04-29,Anne Arundel,Maryland,24003,1670,83 +2020-04-30,Anne Arundel,Maryland,24003,1733,91 +2020-05-01,Anne Arundel,Maryland,24003,1815,90 +2020-05-02,Anne Arundel,Maryland,24003,1893,94 +2020-05-03,Anne Arundel,Maryland,24003,1967,96 +2020-05-04,Anne Arundel,Maryland,24003,2026,101 +2020-05-05,Anne Arundel,Maryland,24003,2054,107 +2020-05-06,Anne Arundel,Maryland,24003,2094,108 +2020-05-07,Anne Arundel,Maryland,24003,2203,111 +2020-05-08,Anne Arundel,Maryland,24003,2300,115 +2020-05-09,Anne Arundel,Maryland,24003,2381,117 +2020-05-10,Anne Arundel,Maryland,24003,2472,121 +2020-05-11,Anne Arundel,Maryland,24003,2501,124 +2020-05-12,Anne Arundel,Maryland,24003,2530,127 +2020-05-13,Anne Arundel,Maryland,24003,2606,133 +2020-05-14,Anne Arundel,Maryland,24003,2670,135 +2020-05-15,Anne Arundel,Maryland,24003,2760,136 +2020-05-16,Anne Arundel,Maryland,24003,2809,141 +2020-05-17,Anne Arundel,Maryland,24003,2864,142 +2020-05-18,Anne Arundel,Maryland,24003,2901,142 +2020-05-19,Anne Arundel,Maryland,24003,2989,145 +2020-05-20,Anne Arundel,Maryland,24003,3041,145 +2020-05-21,Anne Arundel,Maryland,24003,3140,147 +2020-05-22,Anne Arundel,Maryland,24003,3215,149 +2020-05-23,Anne Arundel,Maryland,24003,3290,150 +2020-05-24,Anne Arundel,Maryland,24003,3315,153 +2020-05-25,Anne Arundel,Maryland,24003,3365,157 +2020-05-26,Anne Arundel,Maryland,24003,3402,159 +2020-05-27,Anne Arundel,Maryland,24003,3457,163 +2020-05-28,Anne Arundel,Maryland,24003,3565,163 +2020-05-29,Anne Arundel,Maryland,24003,3652,167 +2020-05-30,Anne Arundel,Maryland,24003,3752,172 +2020-05-31,Anne Arundel,Maryland,24003,3794,174 +2020-06-01,Anne Arundel,Maryland,24003,3851,175 +2020-06-02,Anne Arundel,Maryland,24003,3933,178 +2020-06-03,Anne Arundel,Maryland,24003,4018,178 +2020-06-04,Anne Arundel,Maryland,24003,4089,179 +2020-06-05,Anne Arundel,Maryland,24003,4159,182 +2020-06-06,Anne Arundel,Maryland,24003,4219,185 +2020-06-07,Anne Arundel,Maryland,24003,4245,185 +2020-06-08,Anne Arundel,Maryland,24003,4276,185 +2020-06-09,Anne Arundel,Maryland,24003,4318,186 +2020-06-10,Anne Arundel,Maryland,24003,4357,190 +2020-06-11,Anne Arundel,Maryland,24003,4430,191 +2020-06-12,Anne Arundel,Maryland,24003,4462,192 +2020-06-13,Anne Arundel,Maryland,24003,4531,192 +2020-06-14,Anne Arundel,Maryland,24003,4616,194 +2020-06-15,Anne Arundel,Maryland,24003,4632,194 +2020-06-16,Anne Arundel,Maryland,24003,4760,194 +2020-06-17,Anne Arundel,Maryland,24003,4805,195 +2020-06-18,Anne Arundel,Maryland,24003,4844,196 +2020-06-19,Anne Arundel,Maryland,24003,4871,198 +2020-06-20,Anne Arundel,Maryland,24003,4889,200 +2020-06-21,Anne Arundel,Maryland,24003,4913,200 +2020-06-22,Anne Arundel,Maryland,24003,4925,200 +2020-06-23,Anne Arundel,Maryland,24003,4955,201 +2020-06-24,Anne Arundel,Maryland,24003,4965,202 +2020-06-25,Anne Arundel,Maryland,24003,4993,201 +2020-06-26,Anne Arundel,Maryland,24003,5013,203 +2020-06-27,Anne Arundel,Maryland,24003,5050,206 +2020-06-28,Anne Arundel,Maryland,24003,5063,207 +2020-06-29,Anne Arundel,Maryland,24003,5100,207 +2020-06-30,Anne Arundel,Maryland,24003,5117,207 +2020-07-01,Anne Arundel,Maryland,24003,5142,209 +2020-07-02,Anne Arundel,Maryland,24003,5187,210 +2020-07-03,Anne Arundel,Maryland,24003,5208,209 +2020-07-04,Anne Arundel,Maryland,24003,5247,209 +2020-07-05,Anne Arundel,Maryland,24003,5269,209 +2020-07-06,Anne Arundel,Maryland,24003,5298,209 +2020-07-07,Anne Arundel,Maryland,24003,5313,210 +2020-07-08,Anne Arundel,Maryland,24003,5349,210 +2020-07-09,Anne Arundel,Maryland,24003,5399,210 +2020-03-11,Baltimore,Maryland,24005,1,0 +2020-03-12,Baltimore,Maryland,24005,1,0 +2020-03-13,Baltimore,Maryland,24005,2,0 +2020-03-14,Baltimore,Maryland,24005,3,0 +2020-03-15,Baltimore,Maryland,24005,3,0 +2020-03-16,Baltimore,Maryland,24005,4,0 +2020-03-17,Baltimore,Maryland,24005,4,0 +2020-03-18,Baltimore,Maryland,24005,7,0 +2020-03-19,Baltimore,Maryland,24005,13,0 +2020-03-20,Baltimore,Maryland,24005,13,1 +2020-03-21,Baltimore,Maryland,24005,19,1 +2020-03-22,Baltimore,Maryland,24005,28,1 +2020-03-23,Baltimore,Maryland,24005,35,1 +2020-03-24,Baltimore,Maryland,24005,42,1 +2020-03-25,Baltimore,Maryland,24005,51,1 +2020-03-26,Baltimore,Maryland,24005,81,1 +2020-03-27,Baltimore,Maryland,24005,103,1 +2020-03-28,Baltimore,Maryland,24005,141,1 +2020-03-29,Baltimore,Maryland,24005,162,1 +2020-03-30,Baltimore,Maryland,24005,186,1 +2020-03-31,Baltimore,Maryland,24005,227,1 +2020-04-01,Baltimore,Maryland,24005,289,1 +2020-04-02,Baltimore,Maryland,24005,353,1 +2020-04-03,Baltimore,Maryland,24005,427,3 +2020-04-04,Baltimore,Maryland,24005,491,4 +2020-04-05,Baltimore,Maryland,24005,590,6 +2020-04-06,Baltimore,Maryland,24005,648,11 +2020-04-07,Baltimore,Maryland,24005,652,11 +2020-04-08,Baltimore,Maryland,24005,866,13 +2020-04-09,Baltimore,Maryland,24005,979,16 +2020-04-10,Baltimore,Maryland,24005,1072,21 +2020-04-11,Baltimore,Maryland,24005,1173,26 +2020-04-12,Baltimore,Maryland,24005,1257,30 +2020-04-13,Baltimore,Maryland,24005,1361,31 +2020-04-14,Baltimore,Maryland,24005,1377,41 +2020-04-15,Baltimore,Maryland,24005,1490,32 +2020-04-16,Baltimore,Maryland,24005,1522,37 +2020-04-17,Baltimore,Maryland,24005,1576,44 +2020-04-18,Baltimore,Maryland,24005,1671,45 +2020-04-19,Baltimore,Maryland,24005,1739,50 +2020-04-20,Baltimore,Maryland,24005,1881,50 +2020-04-21,Baltimore,Maryland,24005,1932,58 +2020-04-22,Baltimore,Maryland,24005,2021,67 +2020-04-23,Baltimore,Maryland,24005,2141,71 +2020-04-24,Baltimore,Maryland,24005,2243,74 +2020-04-25,Baltimore,Maryland,24005,2397,79 +2020-04-26,Baltimore,Maryland,24005,2519,81 +2020-04-27,Baltimore,Maryland,24005,2559,98 +2020-04-28,Baltimore,Maryland,24005,2644,107 +2020-04-29,Baltimore,Maryland,24005,2754,118 +2020-04-30,Baltimore,Maryland,24005,2844,123 +2020-05-01,Baltimore,Maryland,24005,3026,129 +2020-05-02,Baltimore,Maryland,24005,3197,139 +2020-05-03,Baltimore,Maryland,24005,3315,147 +2020-05-04,Baltimore,Maryland,24005,3463,151 +2020-05-05,Baltimore,Maryland,24005,3445,157 +2020-05-06,Baltimore,Maryland,24005,3541,163 +2020-05-07,Baltimore,Maryland,24005,3676,169 +2020-05-08,Baltimore,Maryland,24005,3778,177 +2020-05-09,Baltimore,Maryland,24005,3753,185 +2020-05-10,Baltimore,Maryland,24005,3878,191 +2020-05-11,Baltimore,Maryland,24005,3964,194 +2020-05-12,Baltimore,Maryland,24005,4067,204 +2020-05-13,Baltimore,Maryland,24005,4175,218 +2020-05-14,Baltimore,Maryland,24005,4306,223 +2020-05-15,Baltimore,Maryland,24005,4416,234 +2020-05-16,Baltimore,Maryland,24005,4566,240 +2020-05-17,Baltimore,Maryland,24005,4642,250 +2020-05-18,Baltimore,Maryland,24005,4767,255 +2020-05-19,Baltimore,Maryland,24005,4936,263 +2020-05-20,Baltimore,Maryland,24005,5041,277 +2020-05-21,Baltimore,Maryland,24005,5150,286 +2020-05-22,Baltimore,Maryland,24005,5185,292 +2020-05-23,Baltimore,Maryland,24005,5305,299 +2020-05-24,Baltimore,Maryland,24005,5388,300 +2020-05-25,Baltimore,Maryland,24005,5491,307 +2020-05-26,Baltimore,Maryland,24005,5513,312 +2020-05-27,Baltimore,Maryland,24005,5578,320 +2020-05-28,Baltimore,Maryland,24005,5693,323 +2020-05-29,Baltimore,Maryland,24005,5835,336 +2020-05-30,Baltimore,Maryland,24005,5970,340 +2020-05-31,Baltimore,Maryland,24005,6080,344 +2020-06-01,Baltimore,Maryland,24005,6315,349 +2020-06-02,Baltimore,Maryland,24005,6401,358 +2020-06-03,Baltimore,Maryland,24005,6473,366 +2020-06-04,Baltimore,Maryland,24005,6492,371 +2020-06-05,Baltimore,Maryland,24005,6606,376 +2020-06-06,Baltimore,Maryland,24005,6713,384 +2020-06-07,Baltimore,Maryland,24005,6770,386 +2020-06-08,Baltimore,Maryland,24005,6831,388 +2020-06-09,Baltimore,Maryland,24005,6871,398 +2020-06-10,Baltimore,Maryland,24005,6935,402 +2020-06-11,Baltimore,Maryland,24005,7005,406 +2020-06-12,Baltimore,Maryland,24005,7071,410 +2020-06-13,Baltimore,Maryland,24005,7128,416 +2020-06-14,Baltimore,Maryland,24005,7172,422 +2020-06-15,Baltimore,Maryland,24005,7220,424 +2020-06-16,Baltimore,Maryland,24005,7269,427 +2020-06-17,Baltimore,Maryland,24005,7350,432 +2020-06-18,Baltimore,Maryland,24005,7393,437 +2020-06-19,Baltimore,Maryland,24005,7425,442 +2020-06-20,Baltimore,Maryland,24005,7502,448 +2020-06-21,Baltimore,Maryland,24005,7560,451 +2020-06-22,Baltimore,Maryland,24005,7608,455 +2020-06-23,Baltimore,Maryland,24005,7658,458 +2020-06-24,Baltimore,Maryland,24005,7675,460 +2020-06-25,Baltimore,Maryland,24005,7732,460 +2020-06-26,Baltimore,Maryland,24005,7790,461 +2020-06-27,Baltimore,Maryland,24005,7822,465 +2020-06-28,Baltimore,Maryland,24005,7869,467 +2020-06-29,Baltimore,Maryland,24005,7951,470 +2020-06-30,Baltimore,Maryland,24005,8007,473 +2020-07-01,Baltimore,Maryland,24005,8062,474 +2020-07-02,Baltimore,Maryland,24005,8126,474 +2020-07-03,Baltimore,Maryland,24005,8204,478 +2020-07-04,Baltimore,Maryland,24005,8255,480 +2020-07-05,Baltimore,Maryland,24005,8306,481 +2020-07-06,Baltimore,Maryland,24005,8356,482 +2020-07-07,Baltimore,Maryland,24005,8402,486 +2020-07-08,Baltimore,Maryland,24005,8464,490 +2020-07-09,Baltimore,Maryland,24005,8518,493 +2020-03-19,Calvert,Maryland,24009,1,0 +2020-03-20,Calvert,Maryland,24009,1,0 +2020-03-21,Calvert,Maryland,24009,1,0 +2020-03-22,Calvert,Maryland,24009,2,0 +2020-03-23,Calvert,Maryland,24009,2,0 +2020-03-24,Calvert,Maryland,24009,3,0 +2020-03-25,Calvert,Maryland,24009,3,0 +2020-03-26,Calvert,Maryland,24009,7,0 +2020-03-27,Calvert,Maryland,24009,9,0 +2020-03-28,Calvert,Maryland,24009,9,0 +2020-03-29,Calvert,Maryland,24009,14,0 +2020-03-30,Calvert,Maryland,24009,12,0 +2020-03-31,Calvert,Maryland,24009,15,0 +2020-04-01,Calvert,Maryland,24009,18,0 +2020-04-02,Calvert,Maryland,24009,22,0 +2020-04-03,Calvert,Maryland,24009,30,1 +2020-04-04,Calvert,Maryland,24009,33,1 +2020-04-05,Calvert,Maryland,24009,39,1 +2020-04-06,Calvert,Maryland,24009,40,1 +2020-04-07,Calvert,Maryland,24009,41,1 +2020-04-08,Calvert,Maryland,24009,56,2 +2020-04-09,Calvert,Maryland,24009,66,2 +2020-04-10,Calvert,Maryland,24009,76,2 +2020-04-11,Calvert,Maryland,24009,82,1 +2020-04-12,Calvert,Maryland,24009,90,1 +2020-04-13,Calvert,Maryland,24009,94,1 +2020-04-14,Calvert,Maryland,24009,99,1 +2020-04-15,Calvert,Maryland,24009,102,1 +2020-04-16,Calvert,Maryland,24009,103,1 +2020-04-17,Calvert,Maryland,24009,109,2 +2020-04-18,Calvert,Maryland,24009,109,2 +2020-04-19,Calvert,Maryland,24009,113,3 +2020-04-20,Calvert,Maryland,24009,114,3 +2020-04-21,Calvert,Maryland,24009,116,4 +2020-04-22,Calvert,Maryland,24009,118,5 +2020-04-23,Calvert,Maryland,24009,121,6 +2020-04-24,Calvert,Maryland,24009,125,6 +2020-04-25,Calvert,Maryland,24009,130,7 +2020-04-26,Calvert,Maryland,24009,134,7 +2020-04-27,Calvert,Maryland,24009,138,7 +2020-04-28,Calvert,Maryland,24009,139,8 +2020-04-29,Calvert,Maryland,24009,142,8 +2020-04-30,Calvert,Maryland,24009,150,8 +2020-05-01,Calvert,Maryland,24009,161,9 +2020-05-02,Calvert,Maryland,24009,161,11 +2020-05-03,Calvert,Maryland,24009,163,11 +2020-05-04,Calvert,Maryland,24009,172,11 +2020-05-05,Calvert,Maryland,24009,175,11 +2020-05-06,Calvert,Maryland,24009,185,11 +2020-05-07,Calvert,Maryland,24009,189,11 +2020-05-08,Calvert,Maryland,24009,192,11 +2020-05-09,Calvert,Maryland,24009,203,11 +2020-05-10,Calvert,Maryland,24009,207,11 +2020-05-11,Calvert,Maryland,24009,210,11 +2020-05-12,Calvert,Maryland,24009,212,13 +2020-05-13,Calvert,Maryland,24009,215,13 +2020-05-14,Calvert,Maryland,24009,226,13 +2020-05-15,Calvert,Maryland,24009,229,13 +2020-05-16,Calvert,Maryland,24009,238,13 +2020-05-17,Calvert,Maryland,24009,242,13 +2020-05-18,Calvert,Maryland,24009,246,13 +2020-05-19,Calvert,Maryland,24009,256,13 +2020-05-20,Calvert,Maryland,24009,260,14 +2020-05-21,Calvert,Maryland,24009,279,15 +2020-05-22,Calvert,Maryland,24009,292,15 +2020-05-23,Calvert,Maryland,24009,299,15 +2020-05-24,Calvert,Maryland,24009,305,15 +2020-05-25,Calvert,Maryland,24009,308,16 +2020-05-26,Calvert,Maryland,24009,310,16 +2020-05-27,Calvert,Maryland,24009,316,18 +2020-05-28,Calvert,Maryland,24009,321,17 +2020-05-29,Calvert,Maryland,24009,330,17 +2020-05-30,Calvert,Maryland,24009,335,18 +2020-05-31,Calvert,Maryland,24009,342,18 +2020-06-01,Calvert,Maryland,24009,350,18 +2020-06-02,Calvert,Maryland,24009,353,18 +2020-06-03,Calvert,Maryland,24009,349,20 +2020-06-04,Calvert,Maryland,24009,353,20 +2020-06-05,Calvert,Maryland,24009,354,20 +2020-06-06,Calvert,Maryland,24009,355,21 +2020-06-07,Calvert,Maryland,24009,359,21 +2020-06-08,Calvert,Maryland,24009,363,21 +2020-06-09,Calvert,Maryland,24009,364,21 +2020-06-10,Calvert,Maryland,24009,364,21 +2020-06-11,Calvert,Maryland,24009,367,21 +2020-06-12,Calvert,Maryland,24009,371,21 +2020-06-13,Calvert,Maryland,24009,374,21 +2020-06-14,Calvert,Maryland,24009,376,21 +2020-06-15,Calvert,Maryland,24009,377,21 +2020-06-16,Calvert,Maryland,24009,381,21 +2020-06-17,Calvert,Maryland,24009,383,22 +2020-06-18,Calvert,Maryland,24009,386,23 +2020-06-19,Calvert,Maryland,24009,390,23 +2020-06-20,Calvert,Maryland,24009,394,23 +2020-06-21,Calvert,Maryland,24009,395,23 +2020-06-22,Calvert,Maryland,24009,398,23 +2020-06-23,Calvert,Maryland,24009,399,24 +2020-06-24,Calvert,Maryland,24009,403,25 +2020-06-25,Calvert,Maryland,24009,404,26 +2020-06-26,Calvert,Maryland,24009,405,26 +2020-06-27,Calvert,Maryland,24009,409,26 +2020-06-28,Calvert,Maryland,24009,411,26 +2020-06-29,Calvert,Maryland,24009,414,26 +2020-06-30,Calvert,Maryland,24009,415,27 +2020-07-01,Calvert,Maryland,24009,416,27 +2020-07-02,Calvert,Maryland,24009,419,27 +2020-07-03,Calvert,Maryland,24009,420,27 +2020-07-04,Calvert,Maryland,24009,420,27 +2020-07-05,Calvert,Maryland,24009,422,27 +2020-07-06,Calvert,Maryland,24009,423,27 +2020-07-07,Calvert,Maryland,24009,423,27 +2020-07-08,Calvert,Maryland,24009,426,27 +2020-07-09,Calvert,Maryland,24009,436,27 +2020-03-21,Caroline,Maryland,24011,1,0 +2020-03-22,Caroline,Maryland,24011,1,0 +2020-03-23,Caroline,Maryland,24011,1,0 +2020-03-24,Caroline,Maryland,24011,1,0 +2020-03-25,Caroline,Maryland,24011,1,0 +2020-03-26,Caroline,Maryland,24011,1,0 +2020-03-27,Caroline,Maryland,24011,1,0 +2020-03-28,Caroline,Maryland,24011,1,0 +2020-03-29,Caroline,Maryland,24011,3,0 +2020-03-30,Caroline,Maryland,24011,4,0 +2020-03-31,Caroline,Maryland,24011,4,0 +2020-04-01,Caroline,Maryland,24011,4,0 +2020-04-02,Caroline,Maryland,24011,4,0 +2020-04-03,Caroline,Maryland,24011,4,0 +2020-04-04,Caroline,Maryland,24011,4,0 +2020-04-05,Caroline,Maryland,24011,4,0 +2020-04-06,Caroline,Maryland,24011,6,0 +2020-04-07,Caroline,Maryland,24011,11,0 +2020-04-08,Caroline,Maryland,24011,11,0 +2020-04-09,Caroline,Maryland,24011,12,0 +2020-04-10,Caroline,Maryland,24011,12,0 +2020-04-11,Caroline,Maryland,24011,15,0 +2020-04-12,Caroline,Maryland,24011,17,0 +2020-04-13,Caroline,Maryland,24011,21,0 +2020-04-14,Caroline,Maryland,24011,21,0 +2020-04-15,Caroline,Maryland,24011,22,0 +2020-04-16,Caroline,Maryland,24011,23,0 +2020-04-17,Caroline,Maryland,24011,28,0 +2020-04-18,Caroline,Maryland,24011,33,0 +2020-04-19,Caroline,Maryland,24011,33,0 +2020-04-20,Caroline,Maryland,24011,39,0 +2020-04-21,Caroline,Maryland,24011,41,0 +2020-04-22,Caroline,Maryland,24011,41,0 +2020-04-23,Caroline,Maryland,24011,50,0 +2020-04-24,Caroline,Maryland,24011,55,0 +2020-04-25,Caroline,Maryland,24011,61,0 +2020-04-26,Caroline,Maryland,24011,63,0 +2020-04-27,Caroline,Maryland,24011,68,0 +2020-04-28,Caroline,Maryland,24011,69,0 +2020-04-29,Caroline,Maryland,24011,69,0 +2020-04-30,Caroline,Maryland,24011,71,0 +2020-05-01,Caroline,Maryland,24011,74,0 +2020-05-02,Caroline,Maryland,24011,79,0 +2020-05-03,Caroline,Maryland,24011,95,0 +2020-05-04,Caroline,Maryland,24011,98,0 +2020-05-05,Caroline,Maryland,24011,99,0 +2020-05-06,Caroline,Maryland,24011,101,0 +2020-05-07,Caroline,Maryland,24011,105,0 +2020-05-08,Caroline,Maryland,24011,107,0 +2020-05-09,Caroline,Maryland,24011,110,0 +2020-05-10,Caroline,Maryland,24011,133,0 +2020-05-11,Caroline,Maryland,24011,167,0 +2020-05-12,Caroline,Maryland,24011,174,0 +2020-05-13,Caroline,Maryland,24011,177,0 +2020-05-14,Caroline,Maryland,24011,183,0 +2020-05-15,Caroline,Maryland,24011,190,0 +2020-05-16,Caroline,Maryland,24011,200,0 +2020-05-17,Caroline,Maryland,24011,191,0 +2020-05-18,Caroline,Maryland,24011,200,0 +2020-05-19,Caroline,Maryland,24011,208,0 +2020-05-20,Caroline,Maryland,24011,210,0 +2020-05-21,Caroline,Maryland,24011,216,0 +2020-05-22,Caroline,Maryland,24011,223,0 +2020-05-23,Caroline,Maryland,24011,231,0 +2020-05-24,Caroline,Maryland,24011,240,0 +2020-05-25,Caroline,Maryland,24011,241,0 +2020-05-26,Caroline,Maryland,24011,243,0 +2020-05-27,Caroline,Maryland,24011,243,0 +2020-05-28,Caroline,Maryland,24011,245,0 +2020-05-29,Caroline,Maryland,24011,248,0 +2020-05-30,Caroline,Maryland,24011,253,0 +2020-05-31,Caroline,Maryland,24011,259,1 +2020-06-01,Caroline,Maryland,24011,260,1 +2020-06-02,Caroline,Maryland,24011,263,1 +2020-06-03,Caroline,Maryland,24011,265,1 +2020-06-04,Caroline,Maryland,24011,268,1 +2020-06-05,Caroline,Maryland,24011,268,1 +2020-06-06,Caroline,Maryland,24011,270,1 +2020-06-07,Caroline,Maryland,24011,272,1 +2020-06-08,Caroline,Maryland,24011,272,1 +2020-06-09,Caroline,Maryland,24011,273,1 +2020-06-10,Caroline,Maryland,24011,276,2 +2020-06-11,Caroline,Maryland,24011,278,2 +2020-06-12,Caroline,Maryland,24011,279,2 +2020-06-13,Caroline,Maryland,24011,282,2 +2020-06-14,Caroline,Maryland,24011,283,2 +2020-06-15,Caroline,Maryland,24011,283,2 +2020-06-16,Caroline,Maryland,24011,284,2 +2020-06-17,Caroline,Maryland,24011,284,2 +2020-06-18,Caroline,Maryland,24011,285,2 +2020-06-19,Caroline,Maryland,24011,288,2 +2020-06-20,Caroline,Maryland,24011,290,2 +2020-06-21,Caroline,Maryland,24011,294,2 +2020-06-22,Caroline,Maryland,24011,294,2 +2020-06-23,Caroline,Maryland,24011,296,3 +2020-06-24,Caroline,Maryland,24011,297,3 +2020-06-25,Caroline,Maryland,24011,302,3 +2020-06-26,Caroline,Maryland,24011,309,3 +2020-06-27,Caroline,Maryland,24011,315,3 +2020-06-28,Caroline,Maryland,24011,315,3 +2020-06-29,Caroline,Maryland,24011,318,3 +2020-06-30,Caroline,Maryland,24011,319,3 +2020-07-01,Caroline,Maryland,24011,320,3 +2020-07-02,Caroline,Maryland,24011,321,3 +2020-07-03,Caroline,Maryland,24011,321,3 +2020-07-04,Caroline,Maryland,24011,322,3 +2020-07-05,Caroline,Maryland,24011,322,3 +2020-07-06,Caroline,Maryland,24011,322,3 +2020-07-07,Caroline,Maryland,24011,323,3 +2020-07-08,Caroline,Maryland,24011,325,3 +2020-07-09,Caroline,Maryland,24011,329,3 +2020-03-14,Carroll,Maryland,24013,1,0 +2020-03-15,Carroll,Maryland,24013,1,0 +2020-03-16,Carroll,Maryland,24013,1,0 +2020-03-17,Carroll,Maryland,24013,1,0 +2020-03-18,Carroll,Maryland,24013,1,0 +2020-03-19,Carroll,Maryland,24013,2,0 +2020-03-20,Carroll,Maryland,24013,4,0 +2020-03-21,Carroll,Maryland,24013,4,0 +2020-03-22,Carroll,Maryland,24013,4,0 +2020-03-23,Carroll,Maryland,24013,5,0 +2020-03-24,Carroll,Maryland,24013,5,0 +2020-03-25,Carroll,Maryland,24013,5,0 +2020-03-26,Carroll,Maryland,24013,7,0 +2020-03-27,Carroll,Maryland,24013,9,0 +2020-03-28,Carroll,Maryland,24013,83,0 +2020-03-29,Carroll,Maryland,24013,83,1 +2020-03-30,Carroll,Maryland,24013,83,1 +2020-03-31,Carroll,Maryland,24013,94,2 +2020-04-01,Carroll,Maryland,24013,96,5 +2020-04-02,Carroll,Maryland,24013,105,5 +2020-04-03,Carroll,Maryland,24013,129,5 +2020-04-04,Carroll,Maryland,24013,134,6 +2020-04-05,Carroll,Maryland,24013,142,8 +2020-04-06,Carroll,Maryland,24013,150,10 +2020-04-07,Carroll,Maryland,24013,159,16 +2020-04-08,Carroll,Maryland,24013,186,18 +2020-04-09,Carroll,Maryland,24013,203,18 +2020-04-10,Carroll,Maryland,24013,214,19 +2020-04-11,Carroll,Maryland,24013,214,25 +2020-04-12,Carroll,Maryland,24013,236,25 +2020-04-13,Carroll,Maryland,24013,250,28 +2020-04-14,Carroll,Maryland,24013,259,29 +2020-04-15,Carroll,Maryland,24013,264,30 +2020-04-16,Carroll,Maryland,24013,285,30 +2020-04-17,Carroll,Maryland,24013,290,30 +2020-04-18,Carroll,Maryland,24013,310,37 +2020-04-19,Carroll,Maryland,24013,314,36 +2020-04-20,Carroll,Maryland,24013,336,36 +2020-04-21,Carroll,Maryland,24013,330,38 +2020-04-22,Carroll,Maryland,24013,344,38 +2020-04-23,Carroll,Maryland,24013,355,38 +2020-04-24,Carroll,Maryland,24013,372,10 +2020-04-25,Carroll,Maryland,24013,384,47 +2020-04-26,Carroll,Maryland,24013,391,47 +2020-04-27,Carroll,Maryland,24013,403,37 +2020-04-28,Carroll,Maryland,24013,416,44 +2020-04-29,Carroll,Maryland,24013,421,53 +2020-04-30,Carroll,Maryland,24013,436,54 +2020-05-01,Carroll,Maryland,24013,460,58 +2020-05-02,Carroll,Maryland,24013,480,59 +2020-05-03,Carroll,Maryland,24013,494,59 +2020-05-04,Carroll,Maryland,24013,506,59 +2020-05-05,Carroll,Maryland,24013,513,61 +2020-05-06,Carroll,Maryland,24013,521,61 +2020-05-07,Carroll,Maryland,24013,534,54 +2020-05-08,Carroll,Maryland,24013,542,56 +2020-05-09,Carroll,Maryland,24013,551,58 +2020-05-10,Carroll,Maryland,24013,560,58 +2020-05-11,Carroll,Maryland,24013,583,58 +2020-05-12,Carroll,Maryland,24013,589,60 +2020-05-13,Carroll,Maryland,24013,595,61 +2020-05-14,Carroll,Maryland,24013,619,62 +2020-05-15,Carroll,Maryland,24013,635,64 +2020-05-16,Carroll,Maryland,24013,633,66 +2020-05-17,Carroll,Maryland,24013,646,67 +2020-05-18,Carroll,Maryland,24013,703,68 +2020-05-19,Carroll,Maryland,24013,712,69 +2020-05-20,Carroll,Maryland,24013,721,71 +2020-05-21,Carroll,Maryland,24013,734,70 +2020-05-22,Carroll,Maryland,24013,757,73 +2020-05-23,Carroll,Maryland,24013,767,76 +2020-05-24,Carroll,Maryland,24013,785,76 +2020-05-25,Carroll,Maryland,24013,804,79 +2020-05-26,Carroll,Maryland,24013,813,80 +2020-05-27,Carroll,Maryland,24013,821,86 +2020-05-28,Carroll,Maryland,24013,843,85 +2020-05-29,Carroll,Maryland,24013,863,85 +2020-05-30,Carroll,Maryland,24013,881,90 +2020-05-31,Carroll,Maryland,24013,914,90 +2020-06-01,Carroll,Maryland,24013,916,92 +2020-06-02,Carroll,Maryland,24013,929,93 +2020-06-03,Carroll,Maryland,24013,943,96 +2020-06-04,Carroll,Maryland,24013,950,98 +2020-06-05,Carroll,Maryland,24013,963,98 +2020-06-06,Carroll,Maryland,24013,953,101 +2020-06-07,Carroll,Maryland,24013,955,101 +2020-06-08,Carroll,Maryland,24013,957,101 +2020-06-09,Carroll,Maryland,24013,966,102 +2020-06-10,Carroll,Maryland,24013,972,103 +2020-06-11,Carroll,Maryland,24013,979,103 +2020-06-12,Carroll,Maryland,24013,980,103 +2020-06-13,Carroll,Maryland,24013,986,105 +2020-06-14,Carroll,Maryland,24013,992,105 +2020-06-15,Carroll,Maryland,24013,995,105 +2020-06-16,Carroll,Maryland,24013,990,105 +2020-06-17,Carroll,Maryland,24013,1008,105 +2020-06-18,Carroll,Maryland,24013,1012,108 +2020-06-19,Carroll,Maryland,24013,1030,108 +2020-06-20,Carroll,Maryland,24013,1030,109 +2020-06-21,Carroll,Maryland,24013,1032,109 +2020-06-22,Carroll,Maryland,24013,1033,109 +2020-06-23,Carroll,Maryland,24013,1063,109 +2020-06-24,Carroll,Maryland,24013,1084,109 +2020-06-25,Carroll,Maryland,24013,1103,109 +2020-06-26,Carroll,Maryland,24013,1106,110 +2020-06-27,Carroll,Maryland,24013,1106,110 +2020-06-28,Carroll,Maryland,24013,1107,111 +2020-06-29,Carroll,Maryland,24013,1116,112 +2020-06-30,Carroll,Maryland,24013,1119,112 +2020-07-01,Carroll,Maryland,24013,1138,112 +2020-07-02,Carroll,Maryland,24013,1151,112 +2020-07-03,Carroll,Maryland,24013,1157,112 +2020-07-04,Carroll,Maryland,24013,1158,114 +2020-07-05,Carroll,Maryland,24013,1160,114 +2020-07-06,Carroll,Maryland,24013,1166,114 +2020-07-07,Carroll,Maryland,24013,1184,114 +2020-07-08,Carroll,Maryland,24013,1190,114 +2020-07-09,Carroll,Maryland,24013,1192,114 +2020-03-22,Cecil,Maryland,24015,1,0 +2020-03-23,Cecil,Maryland,24015,1,0 +2020-03-24,Cecil,Maryland,24015,3,0 +2020-03-25,Cecil,Maryland,24015,4,0 +2020-03-26,Cecil,Maryland,24015,4,0 +2020-03-27,Cecil,Maryland,24015,9,0 +2020-03-28,Cecil,Maryland,24015,13,0 +2020-03-29,Cecil,Maryland,24015,13,0 +2020-03-30,Cecil,Maryland,24015,13,0 +2020-03-31,Cecil,Maryland,24015,14,0 +2020-04-01,Cecil,Maryland,24015,16,1 +2020-04-02,Cecil,Maryland,24015,20,1 +2020-04-03,Cecil,Maryland,24015,25,1 +2020-04-04,Cecil,Maryland,24015,33,1 +2020-04-05,Cecil,Maryland,24015,36,1 +2020-04-06,Cecil,Maryland,24015,37,1 +2020-04-07,Cecil,Maryland,24015,41,1 +2020-04-08,Cecil,Maryland,24015,49,1 +2020-04-09,Cecil,Maryland,24015,54,1 +2020-04-10,Cecil,Maryland,24015,64,1 +2020-04-11,Cecil,Maryland,24015,66,1 +2020-04-12,Cecil,Maryland,24015,74,1 +2020-04-13,Cecil,Maryland,24015,83,1 +2020-04-14,Cecil,Maryland,24015,85,2 +2020-04-15,Cecil,Maryland,24015,90,2 +2020-04-16,Cecil,Maryland,24015,101,2 +2020-04-17,Cecil,Maryland,24015,127,2 +2020-04-18,Cecil,Maryland,24015,131,3 +2020-04-19,Cecil,Maryland,24015,131,3 +2020-04-20,Cecil,Maryland,24015,134,3 +2020-04-21,Cecil,Maryland,24015,134,3 +2020-04-22,Cecil,Maryland,24015,134,5 +2020-04-23,Cecil,Maryland,24015,140,5 +2020-04-24,Cecil,Maryland,24015,144,5 +2020-04-25,Cecil,Maryland,24015,146,5 +2020-04-26,Cecil,Maryland,24015,154,5 +2020-04-27,Cecil,Maryland,24015,163,5 +2020-04-28,Cecil,Maryland,24015,163,6 +2020-04-29,Cecil,Maryland,24015,164,8 +2020-04-30,Cecil,Maryland,24015,167,8 +2020-05-01,Cecil,Maryland,24015,176,8 +2020-05-02,Cecil,Maryland,24015,187,8 +2020-05-03,Cecil,Maryland,24015,188,9 +2020-05-04,Cecil,Maryland,24015,194,10 +2020-05-05,Cecil,Maryland,24015,195,13 +2020-05-06,Cecil,Maryland,24015,200,13 +2020-05-07,Cecil,Maryland,24015,208,13 +2020-05-08,Cecil,Maryland,24015,211,13 +2020-05-09,Cecil,Maryland,24015,219,13 +2020-05-10,Cecil,Maryland,24015,242,13 +2020-05-11,Cecil,Maryland,24015,267,13 +2020-05-12,Cecil,Maryland,24015,270,15 +2020-05-13,Cecil,Maryland,24015,271,15 +2020-05-14,Cecil,Maryland,24015,291,17 +2020-05-15,Cecil,Maryland,24015,300,17 +2020-05-16,Cecil,Maryland,24015,308,17 +2020-05-17,Cecil,Maryland,24015,308,17 +2020-05-18,Cecil,Maryland,24015,318,17 +2020-05-19,Cecil,Maryland,24015,323,18 +2020-05-20,Cecil,Maryland,24015,328,20 +2020-05-21,Cecil,Maryland,24015,331,20 +2020-05-22,Cecil,Maryland,24015,339,20 +2020-05-23,Cecil,Maryland,24015,342,20 +2020-05-24,Cecil,Maryland,24015,345,21 +2020-05-25,Cecil,Maryland,24015,348,21 +2020-05-26,Cecil,Maryland,24015,353,21 +2020-05-27,Cecil,Maryland,24015,354,21 +2020-05-28,Cecil,Maryland,24015,356,22 +2020-05-29,Cecil,Maryland,24015,364,22 +2020-05-30,Cecil,Maryland,24015,366,22 +2020-05-31,Cecil,Maryland,24015,371,23 +2020-06-01,Cecil,Maryland,24015,369,23 +2020-06-02,Cecil,Maryland,24015,377,24 +2020-06-03,Cecil,Maryland,24015,381,24 +2020-06-04,Cecil,Maryland,24015,388,24 +2020-06-05,Cecil,Maryland,24015,393,24 +2020-06-06,Cecil,Maryland,24015,399,24 +2020-06-07,Cecil,Maryland,24015,404,24 +2020-06-08,Cecil,Maryland,24015,408,24 +2020-06-09,Cecil,Maryland,24015,417,25 +2020-06-10,Cecil,Maryland,24015,423,25 +2020-06-11,Cecil,Maryland,24015,429,27 +2020-06-12,Cecil,Maryland,24015,435,28 +2020-06-13,Cecil,Maryland,24015,440,30 +2020-06-14,Cecil,Maryland,24015,444,30 +2020-06-15,Cecil,Maryland,24015,446,30 +2020-06-16,Cecil,Maryland,24015,451,30 +2020-06-17,Cecil,Maryland,24015,456,30 +2020-06-18,Cecil,Maryland,24015,457,29 +2020-06-19,Cecil,Maryland,24015,460,29 +2020-06-20,Cecil,Maryland,24015,461,29 +2020-06-21,Cecil,Maryland,24015,461,29 +2020-06-22,Cecil,Maryland,24015,462,29 +2020-06-23,Cecil,Maryland,24015,462,29 +2020-06-24,Cecil,Maryland,24015,465,29 +2020-06-25,Cecil,Maryland,24015,461,29 +2020-06-26,Cecil,Maryland,24015,463,29 +2020-06-27,Cecil,Maryland,24015,474,29 +2020-06-28,Cecil,Maryland,24015,474,29 +2020-06-29,Cecil,Maryland,24015,479,29 +2020-06-30,Cecil,Maryland,24015,480,29 +2020-07-01,Cecil,Maryland,24015,481,29 +2020-07-02,Cecil,Maryland,24015,487,29 +2020-07-03,Cecil,Maryland,24015,488,29 +2020-07-04,Cecil,Maryland,24015,491,29 +2020-07-05,Cecil,Maryland,24015,495,29 +2020-07-06,Cecil,Maryland,24015,499,29 +2020-07-07,Cecil,Maryland,24015,506,29 +2020-07-08,Cecil,Maryland,24015,513,29 +2020-07-09,Cecil,Maryland,24015,515,29 +2020-03-13,Charles,Maryland,24017,1,0 +2020-03-14,Charles,Maryland,24017,1,0 +2020-03-15,Charles,Maryland,24017,1,0 +2020-03-16,Charles,Maryland,24017,1,0 +2020-03-17,Charles,Maryland,24017,1,0 +2020-03-18,Charles,Maryland,24017,2,0 +2020-03-19,Charles,Maryland,24017,2,0 +2020-03-20,Charles,Maryland,24017,2,0 +2020-03-21,Charles,Maryland,24017,4,0 +2020-03-22,Charles,Maryland,24017,5,0 +2020-03-23,Charles,Maryland,24017,5,0 +2020-03-24,Charles,Maryland,24017,5,0 +2020-03-25,Charles,Maryland,24017,8,0 +2020-03-26,Charles,Maryland,24017,10,0 +2020-03-27,Charles,Maryland,24017,17,0 +2020-03-28,Charles,Maryland,24017,21,1 +2020-03-29,Charles,Maryland,24017,28,1 +2020-03-30,Charles,Maryland,24017,33,1 +2020-03-31,Charles,Maryland,24017,40,1 +2020-04-01,Charles,Maryland,24017,56,1 +2020-04-02,Charles,Maryland,24017,69,1 +2020-04-03,Charles,Maryland,24017,90,1 +2020-04-04,Charles,Maryland,24017,95,1 +2020-04-05,Charles,Maryland,24017,111,2 +2020-04-06,Charles,Maryland,24017,129,2 +2020-04-07,Charles,Maryland,24017,136,2 +2020-04-08,Charles,Maryland,24017,164,2 +2020-04-09,Charles,Maryland,24017,180,3 +2020-04-10,Charles,Maryland,24017,220,4 +2020-04-11,Charles,Maryland,24017,235,5 +2020-04-12,Charles,Maryland,24017,253,9 +2020-04-13,Charles,Maryland,24017,274,10 +2020-04-14,Charles,Maryland,24017,292,12 +2020-04-15,Charles,Maryland,24017,310,11 +2020-04-16,Charles,Maryland,24017,327,13 +2020-04-17,Charles,Maryland,24017,337,15 +2020-04-18,Charles,Maryland,24017,347,16 +2020-04-19,Charles,Maryland,24017,370,17 +2020-04-20,Charles,Maryland,24017,393,20 +2020-04-21,Charles,Maryland,24017,402,23 +2020-04-22,Charles,Maryland,24017,428,30 +2020-04-23,Charles,Maryland,24017,443,32 +2020-04-24,Charles,Maryland,24017,460,34 +2020-04-25,Charles,Maryland,24017,484,35 +2020-04-26,Charles,Maryland,24017,505,35 +2020-04-27,Charles,Maryland,24017,530,37 +2020-04-28,Charles,Maryland,24017,540,39 +2020-04-29,Charles,Maryland,24017,552,42 +2020-04-30,Charles,Maryland,24017,565,44 +2020-05-01,Charles,Maryland,24017,613,46 +2020-05-02,Charles,Maryland,24017,624,47 +2020-05-03,Charles,Maryland,24017,640,50 +2020-05-04,Charles,Maryland,24017,654,50 +2020-05-05,Charles,Maryland,24017,663,50 +2020-05-06,Charles,Maryland,24017,673,52 +2020-05-07,Charles,Maryland,24017,701,51 +2020-05-08,Charles,Maryland,24017,719,54 +2020-05-09,Charles,Maryland,24017,730,53 +2020-05-10,Charles,Maryland,24017,749,54 +2020-05-11,Charles,Maryland,24017,757,54 +2020-05-12,Charles,Maryland,24017,762,55 +2020-05-13,Charles,Maryland,24017,779,57 +2020-05-14,Charles,Maryland,24017,798,59 +2020-05-15,Charles,Maryland,24017,831,61 +2020-05-16,Charles,Maryland,24017,846,62 +2020-05-17,Charles,Maryland,24017,861,62 +2020-05-18,Charles,Maryland,24017,869,62 +2020-05-19,Charles,Maryland,24017,896,63 +2020-05-20,Charles,Maryland,24017,922,64 +2020-05-21,Charles,Maryland,24017,944,65 +2020-05-22,Charles,Maryland,24017,958,67 +2020-05-23,Charles,Maryland,24017,971,69 +2020-05-24,Charles,Maryland,24017,991,69 +2020-05-25,Charles,Maryland,24017,999,69 +2020-05-26,Charles,Maryland,24017,1003,70 +2020-05-27,Charles,Maryland,24017,1009,71 +2020-05-28,Charles,Maryland,24017,1028,72 +2020-05-29,Charles,Maryland,24017,1057,72 +2020-05-30,Charles,Maryland,24017,1086,72 +2020-05-31,Charles,Maryland,24017,1109,72 +2020-06-01,Charles,Maryland,24017,1121,73 +2020-06-02,Charles,Maryland,24017,1134,73 +2020-06-03,Charles,Maryland,24017,1153,75 +2020-06-04,Charles,Maryland,24017,1176,79 +2020-06-05,Charles,Maryland,24017,1187,79 +2020-06-06,Charles,Maryland,24017,1198,81 +2020-06-07,Charles,Maryland,24017,1204,80 +2020-06-08,Charles,Maryland,24017,1213,80 +2020-06-09,Charles,Maryland,24017,1218,82 +2020-06-10,Charles,Maryland,24017,1233,83 +2020-06-11,Charles,Maryland,24017,1237,83 +2020-06-12,Charles,Maryland,24017,1250,82 +2020-06-13,Charles,Maryland,24017,1266,83 +2020-06-14,Charles,Maryland,24017,1271,83 +2020-06-15,Charles,Maryland,24017,1274,83 +2020-06-16,Charles,Maryland,24017,1279,83 +2020-06-17,Charles,Maryland,24017,1293,85 +2020-06-18,Charles,Maryland,24017,1296,86 +2020-06-19,Charles,Maryland,24017,1296,86 +2020-06-20,Charles,Maryland,24017,1306,86 +2020-06-21,Charles,Maryland,24017,1315,86 +2020-06-22,Charles,Maryland,24017,1330,86 +2020-06-23,Charles,Maryland,24017,1335,86 +2020-06-24,Charles,Maryland,24017,1343,86 +2020-06-25,Charles,Maryland,24017,1352,86 +2020-06-26,Charles,Maryland,24017,1359,86 +2020-06-27,Charles,Maryland,24017,1364,86 +2020-06-28,Charles,Maryland,24017,1373,86 +2020-06-29,Charles,Maryland,24017,1385,86 +2020-06-30,Charles,Maryland,24017,1395,86 +2020-07-01,Charles,Maryland,24017,1401,86 +2020-07-02,Charles,Maryland,24017,1418,86 +2020-07-03,Charles,Maryland,24017,1428,86 +2020-07-04,Charles,Maryland,24017,1432,87 +2020-07-05,Charles,Maryland,24017,1439,87 +2020-07-06,Charles,Maryland,24017,1443,87 +2020-07-07,Charles,Maryland,24017,1453,87 +2020-07-08,Charles,Maryland,24017,1475,88 +2020-07-09,Charles,Maryland,24017,1485,89 +2020-04-01,Dorchester,Maryland,24019,1,0 +2020-04-02,Dorchester,Maryland,24019,1,0 +2020-04-03,Dorchester,Maryland,24019,1,0 +2020-04-04,Dorchester,Maryland,24019,1,0 +2020-04-05,Dorchester,Maryland,24019,1,0 +2020-04-06,Dorchester,Maryland,24019,1,0 +2020-04-07,Dorchester,Maryland,24019,3,0 +2020-04-08,Dorchester,Maryland,24019,4,0 +2020-04-09,Dorchester,Maryland,24019,7,0 +2020-04-10,Dorchester,Maryland,24019,7,0 +2020-04-11,Dorchester,Maryland,24019,8,1 +2020-04-12,Dorchester,Maryland,24019,9,1 +2020-04-13,Dorchester,Maryland,24019,12,1 +2020-04-14,Dorchester,Maryland,24019,14,1 +2020-04-15,Dorchester,Maryland,24019,16,1 +2020-04-16,Dorchester,Maryland,24019,18,1 +2020-04-17,Dorchester,Maryland,24019,20,1 +2020-04-18,Dorchester,Maryland,24019,20,1 +2020-04-19,Dorchester,Maryland,24019,21,1 +2020-04-20,Dorchester,Maryland,24019,23,1 +2020-04-21,Dorchester,Maryland,24019,25,1 +2020-04-22,Dorchester,Maryland,24019,28,1 +2020-04-23,Dorchester,Maryland,24019,31,2 +2020-04-24,Dorchester,Maryland,24019,32,2 +2020-04-25,Dorchester,Maryland,24019,38,2 +2020-04-26,Dorchester,Maryland,24019,46,2 +2020-04-27,Dorchester,Maryland,24019,51,2 +2020-04-28,Dorchester,Maryland,24019,52,2 +2020-04-29,Dorchester,Maryland,24019,51,2 +2020-04-30,Dorchester,Maryland,24019,51,2 +2020-05-01,Dorchester,Maryland,24019,54,2 +2020-05-02,Dorchester,Maryland,24019,59,2 +2020-05-03,Dorchester,Maryland,24019,71,2 +2020-05-04,Dorchester,Maryland,24019,75,2 +2020-05-05,Dorchester,Maryland,24019,76,2 +2020-05-06,Dorchester,Maryland,24019,79,2 +2020-05-07,Dorchester,Maryland,24019,85,2 +2020-05-08,Dorchester,Maryland,24019,86,2 +2020-05-09,Dorchester,Maryland,24019,91,2 +2020-05-10,Dorchester,Maryland,24019,95,2 +2020-05-11,Dorchester,Maryland,24019,98,2 +2020-05-12,Dorchester,Maryland,24019,102,2 +2020-05-13,Dorchester,Maryland,24019,102,2 +2020-05-14,Dorchester,Maryland,24019,104,2 +2020-05-15,Dorchester,Maryland,24019,107,2 +2020-05-16,Dorchester,Maryland,24019,111,2 +2020-05-17,Dorchester,Maryland,24019,111,2 +2020-05-18,Dorchester,Maryland,24019,122,2 +2020-05-19,Dorchester,Maryland,24019,122,2 +2020-05-20,Dorchester,Maryland,24019,122,2 +2020-05-21,Dorchester,Maryland,24019,124,2 +2020-05-22,Dorchester,Maryland,24019,126,2 +2020-05-23,Dorchester,Maryland,24019,126,2 +2020-05-24,Dorchester,Maryland,24019,127,2 +2020-05-25,Dorchester,Maryland,24019,128,2 +2020-05-26,Dorchester,Maryland,24019,130,2 +2020-05-27,Dorchester,Maryland,24019,133,3 +2020-05-28,Dorchester,Maryland,24019,136,3 +2020-05-29,Dorchester,Maryland,24019,140,3 +2020-05-30,Dorchester,Maryland,24019,141,3 +2020-05-31,Dorchester,Maryland,24019,142,3 +2020-06-01,Dorchester,Maryland,24019,142,3 +2020-06-02,Dorchester,Maryland,24019,144,3 +2020-06-03,Dorchester,Maryland,24019,147,3 +2020-06-04,Dorchester,Maryland,24019,152,3 +2020-06-05,Dorchester,Maryland,24019,153,4 +2020-06-06,Dorchester,Maryland,24019,154,4 +2020-06-07,Dorchester,Maryland,24019,155,4 +2020-06-08,Dorchester,Maryland,24019,156,4 +2020-06-09,Dorchester,Maryland,24019,157,4 +2020-06-10,Dorchester,Maryland,24019,157,4 +2020-06-11,Dorchester,Maryland,24019,159,4 +2020-06-12,Dorchester,Maryland,24019,160,4 +2020-06-13,Dorchester,Maryland,24019,161,4 +2020-06-14,Dorchester,Maryland,24019,162,4 +2020-06-15,Dorchester,Maryland,24019,165,4 +2020-06-16,Dorchester,Maryland,24019,166,4 +2020-06-17,Dorchester,Maryland,24019,170,4 +2020-06-18,Dorchester,Maryland,24019,170,4 +2020-06-19,Dorchester,Maryland,24019,174,4 +2020-06-20,Dorchester,Maryland,24019,180,4 +2020-06-21,Dorchester,Maryland,24019,183,4 +2020-06-22,Dorchester,Maryland,24019,183,4 +2020-06-23,Dorchester,Maryland,24019,183,5 +2020-06-24,Dorchester,Maryland,24019,183,5 +2020-06-25,Dorchester,Maryland,24019,184,5 +2020-06-26,Dorchester,Maryland,24019,182,5 +2020-06-27,Dorchester,Maryland,24019,183,5 +2020-06-28,Dorchester,Maryland,24019,185,5 +2020-06-29,Dorchester,Maryland,24019,188,5 +2020-06-30,Dorchester,Maryland,24019,188,5 +2020-07-01,Dorchester,Maryland,24019,188,5 +2020-07-02,Dorchester,Maryland,24019,189,5 +2020-07-03,Dorchester,Maryland,24019,188,5 +2020-07-04,Dorchester,Maryland,24019,192,5 +2020-07-05,Dorchester,Maryland,24019,201,5 +2020-07-06,Dorchester,Maryland,24019,201,5 +2020-07-07,Dorchester,Maryland,24019,199,5 +2020-07-08,Dorchester,Maryland,24019,199,5 +2020-07-09,Dorchester,Maryland,24019,199,5 +2020-03-16,Frederick,Maryland,24021,1,0 +2020-03-17,Frederick,Maryland,24021,1,0 +2020-03-18,Frederick,Maryland,24021,1,0 +2020-03-19,Frederick,Maryland,24021,1,0 +2020-03-20,Frederick,Maryland,24021,1,0 +2020-03-21,Frederick,Maryland,24021,1,0 +2020-03-22,Frederick,Maryland,24021,1,0 +2020-03-23,Frederick,Maryland,24021,4,0 +2020-03-24,Frederick,Maryland,24021,4,0 +2020-03-25,Frederick,Maryland,24021,7,0 +2020-03-26,Frederick,Maryland,24021,14,0 +2020-03-27,Frederick,Maryland,24021,15,0 +2020-03-28,Frederick,Maryland,24021,22,0 +2020-03-29,Frederick,Maryland,24021,24,0 +2020-03-30,Frederick,Maryland,24021,26,0 +2020-03-31,Frederick,Maryland,24021,33,0 +2020-04-01,Frederick,Maryland,24021,35,2 +2020-04-02,Frederick,Maryland,24021,45,2 +2020-04-03,Frederick,Maryland,24021,54,2 +2020-04-04,Frederick,Maryland,24021,73,2 +2020-04-05,Frederick,Maryland,24021,112,3 +2020-04-06,Frederick,Maryland,24021,138,4 +2020-04-07,Frederick,Maryland,24021,151,4 +2020-04-08,Frederick,Maryland,24021,199,4 +2020-04-09,Frederick,Maryland,24021,233,4 +2020-04-10,Frederick,Maryland,24021,289,9 +2020-04-11,Frederick,Maryland,24021,341,11 +2020-04-12,Frederick,Maryland,24021,368,12 +2020-04-13,Frederick,Maryland,24021,417,12 +2020-04-14,Frederick,Maryland,24021,441,14 +2020-04-15,Frederick,Maryland,24021,449,27 +2020-04-16,Frederick,Maryland,24021,504,29 +2020-04-17,Frederick,Maryland,24021,532,30 +2020-04-18,Frederick,Maryland,24021,565,31 +2020-04-19,Frederick,Maryland,24021,596,30 +2020-04-20,Frederick,Maryland,24021,621,30 +2020-04-21,Frederick,Maryland,24021,637,33 +2020-04-22,Frederick,Maryland,24021,664,35 +2020-04-23,Frederick,Maryland,24021,696,36 +2020-04-24,Frederick,Maryland,24021,771,41 +2020-04-25,Frederick,Maryland,24021,820,45 +2020-04-26,Frederick,Maryland,24021,840,45 +2020-04-27,Frederick,Maryland,24021,871,48 +2020-04-28,Frederick,Maryland,24021,876,48 +2020-04-29,Frederick,Maryland,24021,899,51 +2020-04-30,Frederick,Maryland,24021,925,56 +2020-05-01,Frederick,Maryland,24021,949,56 +2020-05-02,Frederick,Maryland,24021,983,59 +2020-05-03,Frederick,Maryland,24021,1011,61 +2020-05-04,Frederick,Maryland,24021,1045,62 +2020-05-05,Frederick,Maryland,24021,1078,66 +2020-05-06,Frederick,Maryland,24021,1115,68 +2020-05-07,Frederick,Maryland,24021,1158,70 +2020-05-08,Frederick,Maryland,24021,1188,70 +2020-05-09,Frederick,Maryland,24021,1219,72 +2020-05-10,Frederick,Maryland,24021,1257,74 +2020-05-11,Frederick,Maryland,24021,1273,74 +2020-05-12,Frederick,Maryland,24021,1288,77 +2020-05-13,Frederick,Maryland,24021,1308,80 +2020-05-14,Frederick,Maryland,24021,1331,84 +2020-05-15,Frederick,Maryland,24021,1371,88 +2020-05-16,Frederick,Maryland,24021,1409,89 +2020-05-17,Frederick,Maryland,24021,1430,90 +2020-05-18,Frederick,Maryland,24021,1467,90 +2020-05-19,Frederick,Maryland,24021,1498,90 +2020-05-20,Frederick,Maryland,24021,1540,93 +2020-05-21,Frederick,Maryland,24021,1575,94 +2020-05-22,Frederick,Maryland,24021,1632,95 +2020-05-23,Frederick,Maryland,24021,1668,96 +2020-05-24,Frederick,Maryland,24021,1703,98 +2020-05-25,Frederick,Maryland,24021,1738,99 +2020-05-26,Frederick,Maryland,24021,1753,101 +2020-05-27,Frederick,Maryland,24021,1793,103 +2020-05-28,Frederick,Maryland,24021,1831,104 +2020-05-29,Frederick,Maryland,24021,1863,105 +2020-05-30,Frederick,Maryland,24021,1897,105 +2020-05-31,Frederick,Maryland,24021,1918,105 +2020-06-01,Frederick,Maryland,24021,1935,106 +2020-06-02,Frederick,Maryland,24021,1968,107 +2020-06-03,Frederick,Maryland,24021,2012,109 +2020-06-04,Frederick,Maryland,24021,2048,109 +2020-06-05,Frederick,Maryland,24021,2076,110 +2020-06-06,Frederick,Maryland,24021,2107,111 +2020-06-07,Frederick,Maryland,24021,2121,111 +2020-06-08,Frederick,Maryland,24021,2142,111 +2020-06-09,Frederick,Maryland,24021,2159,111 +2020-06-10,Frederick,Maryland,24021,2185,112 +2020-06-11,Frederick,Maryland,24021,2209,112 +2020-06-12,Frederick,Maryland,24021,2232,114 +2020-06-13,Frederick,Maryland,24021,2258,114 +2020-06-14,Frederick,Maryland,24021,2280,114 +2020-06-15,Frederick,Maryland,24021,2305,114 +2020-06-16,Frederick,Maryland,24021,2315,115 +2020-06-17,Frederick,Maryland,24021,2343,115 +2020-06-18,Frederick,Maryland,24021,2349,115 +2020-06-19,Frederick,Maryland,24021,2368,116 +2020-06-20,Frederick,Maryland,24021,2387,116 +2020-06-21,Frederick,Maryland,24021,2400,116 +2020-06-22,Frederick,Maryland,24021,2414,116 +2020-06-23,Frederick,Maryland,24021,2426,116 +2020-06-24,Frederick,Maryland,24021,2432,116 +2020-06-25,Frederick,Maryland,24021,2448,116 +2020-06-26,Frederick,Maryland,24021,2455,116 +2020-06-27,Frederick,Maryland,24021,2472,117 +2020-06-28,Frederick,Maryland,24021,2478,117 +2020-06-29,Frederick,Maryland,24021,2493,117 +2020-06-30,Frederick,Maryland,24021,2497,117 +2020-07-01,Frederick,Maryland,24021,2500,118 +2020-07-02,Frederick,Maryland,24021,2508,118 +2020-07-03,Frederick,Maryland,24021,2527,119 +2020-07-04,Frederick,Maryland,24021,2553,120 +2020-07-05,Frederick,Maryland,24021,2559,120 +2020-07-06,Frederick,Maryland,24021,2561,120 +2020-07-07,Frederick,Maryland,24021,2558,120 +2020-07-08,Frederick,Maryland,24021,2560,120 +2020-07-09,Frederick,Maryland,24021,2574,120 +2020-03-23,Garrett,Maryland,24023,3,0 +2020-03-24,Garrett,Maryland,24023,3,0 +2020-03-25,Garrett,Maryland,24023,3,0 +2020-03-26,Garrett,Maryland,24023,3,0 +2020-03-27,Garrett,Maryland,24023,3,0 +2020-03-28,Garrett,Maryland,24023,3,0 +2020-03-29,Garrett,Maryland,24023,3,0 +2020-03-30,Garrett,Maryland,24023,3,0 +2020-03-31,Garrett,Maryland,24023,3,0 +2020-04-01,Garrett,Maryland,24023,3,0 +2020-04-02,Garrett,Maryland,24023,3,0 +2020-04-03,Garrett,Maryland,24023,3,0 +2020-04-04,Garrett,Maryland,24023,3,0 +2020-04-05,Garrett,Maryland,24023,3,0 +2020-04-06,Garrett,Maryland,24023,3,0 +2020-04-07,Garrett,Maryland,24023,3,0 +2020-04-08,Garrett,Maryland,24023,5,0 +2020-04-09,Garrett,Maryland,24023,5,0 +2020-04-10,Garrett,Maryland,24023,4,0 +2020-04-11,Garrett,Maryland,24023,4,0 +2020-04-12,Garrett,Maryland,24023,4,0 +2020-04-13,Garrett,Maryland,24023,4,0 +2020-04-14,Garrett,Maryland,24023,4,0 +2020-04-15,Garrett,Maryland,24023,4,0 +2020-04-16,Garrett,Maryland,24023,4,0 +2020-04-17,Garrett,Maryland,24023,4,0 +2020-04-18,Garrett,Maryland,24023,4,0 +2020-04-19,Garrett,Maryland,24023,4,0 +2020-04-20,Garrett,Maryland,24023,4,0 +2020-04-21,Garrett,Maryland,24023,4,0 +2020-04-22,Garrett,Maryland,24023,4,0 +2020-04-23,Garrett,Maryland,24023,4,0 +2020-04-24,Garrett,Maryland,24023,4,0 +2020-04-25,Garrett,Maryland,24023,4,0 +2020-04-26,Garrett,Maryland,24023,4,0 +2020-04-27,Garrett,Maryland,24023,4,0 +2020-04-28,Garrett,Maryland,24023,4,0 +2020-04-29,Garrett,Maryland,24023,4,0 +2020-04-30,Garrett,Maryland,24023,4,0 +2020-05-01,Garrett,Maryland,24023,4,0 +2020-05-02,Garrett,Maryland,24023,4,0 +2020-05-03,Garrett,Maryland,24023,4,0 +2020-05-04,Garrett,Maryland,24023,4,0 +2020-05-05,Garrett,Maryland,24023,4,0 +2020-05-06,Garrett,Maryland,24023,4,0 +2020-05-07,Garrett,Maryland,24023,4,0 +2020-05-08,Garrett,Maryland,24023,5,0 +2020-05-09,Garrett,Maryland,24023,6,0 +2020-05-10,Garrett,Maryland,24023,6,0 +2020-05-11,Garrett,Maryland,24023,6,0 +2020-05-12,Garrett,Maryland,24023,6,0 +2020-05-13,Garrett,Maryland,24023,6,0 +2020-05-14,Garrett,Maryland,24023,6,0 +2020-05-15,Garrett,Maryland,24023,6,0 +2020-05-16,Garrett,Maryland,24023,7,0 +2020-05-17,Garrett,Maryland,24023,6,0 +2020-05-18,Garrett,Maryland,24023,7,0 +2020-05-19,Garrett,Maryland,24023,7,0 +2020-05-20,Garrett,Maryland,24023,7,0 +2020-05-21,Garrett,Maryland,24023,7,0 +2020-05-22,Garrett,Maryland,24023,7,0 +2020-05-23,Garrett,Maryland,24023,7,0 +2020-05-24,Garrett,Maryland,24023,7,0 +2020-05-25,Garrett,Maryland,24023,10,0 +2020-05-26,Garrett,Maryland,24023,10,0 +2020-05-27,Garrett,Maryland,24023,10,0 +2020-05-28,Garrett,Maryland,24023,10,0 +2020-05-29,Garrett,Maryland,24023,10,0 +2020-05-30,Garrett,Maryland,24023,10,0 +2020-05-31,Garrett,Maryland,24023,10,0 +2020-06-01,Garrett,Maryland,24023,10,0 +2020-06-02,Garrett,Maryland,24023,10,0 +2020-06-03,Garrett,Maryland,24023,10,0 +2020-06-04,Garrett,Maryland,24023,10,0 +2020-06-05,Garrett,Maryland,24023,10,0 +2020-06-06,Garrett,Maryland,24023,10,0 +2020-06-07,Garrett,Maryland,24023,10,0 +2020-06-08,Garrett,Maryland,24023,10,0 +2020-06-09,Garrett,Maryland,24023,10,0 +2020-06-10,Garrett,Maryland,24023,10,0 +2020-06-11,Garrett,Maryland,24023,10,0 +2020-06-12,Garrett,Maryland,24023,10,0 +2020-06-13,Garrett,Maryland,24023,10,0 +2020-06-14,Garrett,Maryland,24023,10,0 +2020-06-15,Garrett,Maryland,24023,10,0 +2020-06-16,Garrett,Maryland,24023,10,0 +2020-06-17,Garrett,Maryland,24023,10,0 +2020-06-18,Garrett,Maryland,24023,10,0 +2020-06-19,Garrett,Maryland,24023,10,0 +2020-06-20,Garrett,Maryland,24023,10,0 +2020-06-21,Garrett,Maryland,24023,10,0 +2020-06-22,Garrett,Maryland,24023,10,0 +2020-06-23,Garrett,Maryland,24023,10,0 +2020-06-24,Garrett,Maryland,24023,10,1 +2020-06-25,Garrett,Maryland,24023,10,1 +2020-06-26,Garrett,Maryland,24023,10,0 +2020-06-27,Garrett,Maryland,24023,10,0 +2020-06-28,Garrett,Maryland,24023,11,0 +2020-06-29,Garrett,Maryland,24023,11,0 +2020-06-30,Garrett,Maryland,24023,11,0 +2020-07-01,Garrett,Maryland,24023,11,0 +2020-07-02,Garrett,Maryland,24023,11,0 +2020-07-03,Garrett,Maryland,24023,11,0 +2020-07-04,Garrett,Maryland,24023,13,0 +2020-07-05,Garrett,Maryland,24023,14,0 +2020-07-06,Garrett,Maryland,24023,15,0 +2020-07-07,Garrett,Maryland,24023,15,0 +2020-07-08,Garrett,Maryland,24023,16,0 +2020-07-09,Garrett,Maryland,24023,17,0 +2020-03-08,Harford,Maryland,24025,1,0 +2020-03-09,Harford,Maryland,24025,1,0 +2020-03-10,Harford,Maryland,24025,1,0 +2020-03-11,Harford,Maryland,24025,1,0 +2020-03-12,Harford,Maryland,24025,1,0 +2020-03-13,Harford,Maryland,24025,1,0 +2020-03-14,Harford,Maryland,24025,2,0 +2020-03-15,Harford,Maryland,24025,2,0 +2020-03-16,Harford,Maryland,24025,2,0 +2020-03-17,Harford,Maryland,24025,2,0 +2020-03-18,Harford,Maryland,24025,3,0 +2020-03-19,Harford,Maryland,24025,3,0 +2020-03-20,Harford,Maryland,24025,5,0 +2020-03-21,Harford,Maryland,24025,5,0 +2020-03-22,Harford,Maryland,24025,5,0 +2020-03-23,Harford,Maryland,24025,5,0 +2020-03-24,Harford,Maryland,24025,5,0 +2020-03-25,Harford,Maryland,24025,5,0 +2020-03-26,Harford,Maryland,24025,9,0 +2020-03-27,Harford,Maryland,24025,18,0 +2020-03-28,Harford,Maryland,24025,21,0 +2020-03-29,Harford,Maryland,24025,23,0 +2020-03-30,Harford,Maryland,24025,24,0 +2020-03-31,Harford,Maryland,24025,25,0 +2020-04-01,Harford,Maryland,24025,34,0 +2020-04-02,Harford,Maryland,24025,37,0 +2020-04-03,Harford,Maryland,24025,41,0 +2020-04-04,Harford,Maryland,24025,44,0 +2020-04-05,Harford,Maryland,24025,52,0 +2020-04-06,Harford,Maryland,24025,55,0 +2020-04-07,Harford,Maryland,24025,59,0 +2020-04-08,Harford,Maryland,24025,86,0 +2020-04-09,Harford,Maryland,24025,101,0 +2020-04-10,Harford,Maryland,24025,110,0 +2020-04-11,Harford,Maryland,24025,120,1 +2020-04-12,Harford,Maryland,24025,129,0 +2020-04-13,Harford,Maryland,24025,142,0 +2020-04-14,Harford,Maryland,24025,147,0 +2020-04-15,Harford,Maryland,24025,155,3 +2020-04-16,Harford,Maryland,24025,165,4 +2020-04-17,Harford,Maryland,24025,182,6 +2020-04-18,Harford,Maryland,24025,200,5 +2020-04-19,Harford,Maryland,24025,215,6 +2020-04-20,Harford,Maryland,24025,231,6 +2020-04-21,Harford,Maryland,24025,238,7 +2020-04-22,Harford,Maryland,24025,273,8 +2020-04-23,Harford,Maryland,24025,286,8 +2020-04-24,Harford,Maryland,24025,295,9 +2020-04-25,Harford,Maryland,24025,309,11 +2020-04-26,Harford,Maryland,24025,326,11 +2020-04-27,Harford,Maryland,24025,359,11 +2020-04-28,Harford,Maryland,24025,365,13 +2020-04-29,Harford,Maryland,24025,378,13 +2020-04-30,Harford,Maryland,24025,421,13 +2020-05-01,Harford,Maryland,24025,443,15 +2020-05-02,Harford,Maryland,24025,474,16 +2020-05-03,Harford,Maryland,24025,485,16 +2020-05-04,Harford,Maryland,24025,497,16 +2020-05-05,Harford,Maryland,24025,503,19 +2020-05-06,Harford,Maryland,24025,536,21 +2020-05-07,Harford,Maryland,24025,556,22 +2020-05-08,Harford,Maryland,24025,576,24 +2020-05-09,Harford,Maryland,24025,593,25 +2020-05-10,Harford,Maryland,24025,609,25 +2020-05-11,Harford,Maryland,24025,609,25 +2020-05-12,Harford,Maryland,24025,618,27 +2020-05-13,Harford,Maryland,24025,633,28 +2020-05-14,Harford,Maryland,24025,667,32 +2020-05-15,Harford,Maryland,24025,675,32 +2020-05-16,Harford,Maryland,24025,681,33 +2020-05-17,Harford,Maryland,24025,690,34 +2020-05-18,Harford,Maryland,24025,698,34 +2020-05-19,Harford,Maryland,24025,712,35 +2020-05-20,Harford,Maryland,24025,724,39 +2020-05-21,Harford,Maryland,24025,740,40 +2020-05-22,Harford,Maryland,24025,749,46 +2020-05-23,Harford,Maryland,24025,767,46 +2020-05-24,Harford,Maryland,24025,783,48 +2020-05-25,Harford,Maryland,24025,792,48 +2020-05-26,Harford,Maryland,24025,798,48 +2020-05-27,Harford,Maryland,24025,804,49 +2020-05-28,Harford,Maryland,24025,830,49 +2020-05-29,Harford,Maryland,24025,857,49 +2020-05-30,Harford,Maryland,24025,864,49 +2020-05-31,Harford,Maryland,24025,885,51 +2020-06-01,Harford,Maryland,24025,884,51 +2020-06-02,Harford,Maryland,24025,894,51 +2020-06-03,Harford,Maryland,24025,904,51 +2020-06-04,Harford,Maryland,24025,923,51 +2020-06-05,Harford,Maryland,24025,942,51 +2020-06-06,Harford,Maryland,24025,950,52 +2020-06-07,Harford,Maryland,24025,960,53 +2020-06-08,Harford,Maryland,24025,964,53 +2020-06-09,Harford,Maryland,24025,972,55 +2020-06-10,Harford,Maryland,24025,985,57 +2020-06-11,Harford,Maryland,24025,993,57 +2020-06-12,Harford,Maryland,24025,994,58 +2020-06-13,Harford,Maryland,24025,1007,58 +2020-06-14,Harford,Maryland,24025,1012,58 +2020-06-15,Harford,Maryland,24025,1022,58 +2020-06-16,Harford,Maryland,24025,1026,59 +2020-06-17,Harford,Maryland,24025,1035,61 +2020-06-18,Harford,Maryland,24025,1039,62 +2020-06-19,Harford,Maryland,24025,1044,61 +2020-06-20,Harford,Maryland,24025,1055,61 +2020-06-21,Harford,Maryland,24025,1059,61 +2020-06-22,Harford,Maryland,24025,1063,61 +2020-06-23,Harford,Maryland,24025,1067,61 +2020-06-24,Harford,Maryland,24025,1075,61 +2020-06-25,Harford,Maryland,24025,1081,61 +2020-06-26,Harford,Maryland,24025,1081,61 +2020-06-27,Harford,Maryland,24025,1093,61 +2020-06-28,Harford,Maryland,24025,1099,61 +2020-06-29,Harford,Maryland,24025,1111,62 +2020-06-30,Harford,Maryland,24025,1119,62 +2020-07-01,Harford,Maryland,24025,1130,62 +2020-07-02,Harford,Maryland,24025,1156,63 +2020-07-03,Harford,Maryland,24025,1176,63 +2020-07-04,Harford,Maryland,24025,1179,63 +2020-07-05,Harford,Maryland,24025,1183,63 +2020-07-06,Harford,Maryland,24025,1192,63 +2020-07-07,Harford,Maryland,24025,1201,63 +2020-07-08,Harford,Maryland,24025,1212,64 +2020-07-09,Harford,Maryland,24025,1228,64 +2020-03-15,Howard,Maryland,24027,1,0 +2020-03-16,Howard,Maryland,24027,1,0 +2020-03-17,Howard,Maryland,24027,3,0 +2020-03-18,Howard,Maryland,24027,8,0 +2020-03-19,Howard,Maryland,24027,16,0 +2020-03-20,Howard,Maryland,24027,18,0 +2020-03-21,Howard,Maryland,24027,19,0 +2020-03-22,Howard,Maryland,24027,24,0 +2020-03-23,Howard,Maryland,24027,26,0 +2020-03-24,Howard,Maryland,24027,30,0 +2020-03-25,Howard,Maryland,24027,35,0 +2020-03-26,Howard,Maryland,24027,49,0 +2020-03-27,Howard,Maryland,24027,62,0 +2020-03-28,Howard,Maryland,24027,73,0 +2020-03-29,Howard,Maryland,24027,81,0 +2020-03-30,Howard,Maryland,24027,96,1 +2020-03-31,Howard,Maryland,24027,117,2 +2020-04-01,Howard,Maryland,24027,142,2 +2020-04-02,Howard,Maryland,24027,152,2 +2020-04-03,Howard,Maryland,24027,166,2 +2020-04-04,Howard,Maryland,24027,180,3 +2020-04-05,Howard,Maryland,24027,199,3 +2020-04-06,Howard,Maryland,24027,214,3 +2020-04-07,Howard,Maryland,24027,236,3 +2020-04-08,Howard,Maryland,24027,274,3 +2020-04-09,Howard,Maryland,24027,299,4 +2020-04-10,Howard,Maryland,24027,319,5 +2020-04-11,Howard,Maryland,24027,351,6 +2020-04-12,Howard,Maryland,24027,371,6 +2020-04-13,Howard,Maryland,24027,386,8 +2020-04-14,Howard,Maryland,24027,403,9 +2020-04-15,Howard,Maryland,24027,425,10 +2020-04-16,Howard,Maryland,24027,452,11 +2020-04-17,Howard,Maryland,24027,476,11 +2020-04-18,Howard,Maryland,24027,510,12 +2020-04-19,Howard,Maryland,24027,516,12 +2020-04-20,Howard,Maryland,24027,539,13 +2020-04-21,Howard,Maryland,24027,566,13 +2020-04-22,Howard,Maryland,24027,593,14 +2020-04-23,Howard,Maryland,24027,619,15 +2020-04-24,Howard,Maryland,24027,643,15 +2020-04-25,Howard,Maryland,24027,687,16 +2020-04-26,Howard,Maryland,24027,708,16 +2020-04-27,Howard,Maryland,24027,779,17 +2020-04-28,Howard,Maryland,24027,803,18 +2020-04-29,Howard,Maryland,24027,832,19 +2020-04-30,Howard,Maryland,24027,867,19 +2020-05-01,Howard,Maryland,24027,897,19 +2020-05-02,Howard,Maryland,24027,932,20 +2020-05-03,Howard,Maryland,24027,970,20 +2020-05-04,Howard,Maryland,24027,993,22 +2020-05-05,Howard,Maryland,24027,1011,23 +2020-05-06,Howard,Maryland,24027,1062,25 +2020-05-07,Howard,Maryland,24027,1099,27 +2020-05-08,Howard,Maryland,24027,1139,27 +2020-05-09,Howard,Maryland,24027,1171,29 +2020-05-10,Howard,Maryland,24027,1206,29 +2020-05-11,Howard,Maryland,24027,1224,31 +2020-05-12,Howard,Maryland,24027,1235,35 +2020-05-13,Howard,Maryland,24027,1260,38 +2020-05-14,Howard,Maryland,24027,1287,40 +2020-05-15,Howard,Maryland,24027,1315,40 +2020-05-16,Howard,Maryland,24027,1354,43 +2020-05-17,Howard,Maryland,24027,1380,43 +2020-05-18,Howard,Maryland,24027,1419,45 +2020-05-19,Howard,Maryland,24027,1468,49 +2020-05-20,Howard,Maryland,24027,1498,50 +2020-05-21,Howard,Maryland,24027,1552,49 +2020-05-22,Howard,Maryland,24027,1590,50 +2020-05-23,Howard,Maryland,24027,1642,52 +2020-05-24,Howard,Maryland,24027,1671,52 +2020-05-25,Howard,Maryland,24027,1720,52 +2020-05-26,Howard,Maryland,24027,1736,53 +2020-05-27,Howard,Maryland,24027,1764,54 +2020-05-28,Howard,Maryland,24027,1819,56 +2020-05-29,Howard,Maryland,24027,1872,58 +2020-05-30,Howard,Maryland,24027,1909,58 +2020-05-31,Howard,Maryland,24027,1932,58 +2020-06-01,Howard,Maryland,24027,1949,61 +2020-06-02,Howard,Maryland,24027,1980,61 +2020-06-03,Howard,Maryland,24027,2009,61 +2020-06-04,Howard,Maryland,24027,2038,65 +2020-06-05,Howard,Maryland,24027,2079,65 +2020-06-06,Howard,Maryland,24027,2099,65 +2020-06-07,Howard,Maryland,24027,2130,67 +2020-06-08,Howard,Maryland,24027,2161,68 +2020-06-09,Howard,Maryland,24027,2196,71 +2020-06-10,Howard,Maryland,24027,2225,73 +2020-06-11,Howard,Maryland,24027,2316,73 +2020-06-12,Howard,Maryland,24027,2337,73 +2020-06-13,Howard,Maryland,24027,2376,73 +2020-06-14,Howard,Maryland,24027,2340,74 +2020-06-15,Howard,Maryland,24027,2355,75 +2020-06-16,Howard,Maryland,24027,2332,76 +2020-06-17,Howard,Maryland,24027,2348,77 +2020-06-18,Howard,Maryland,24027,2353,79 +2020-06-19,Howard,Maryland,24027,2387,79 +2020-06-20,Howard,Maryland,24027,2414,80 +2020-06-21,Howard,Maryland,24027,2428,80 +2020-06-22,Howard,Maryland,24027,2441,80 +2020-06-23,Howard,Maryland,24027,2428,80 +2020-06-24,Howard,Maryland,24027,2441,81 +2020-06-25,Howard,Maryland,24027,2458,83 +2020-06-26,Howard,Maryland,24027,2475,84 +2020-06-27,Howard,Maryland,24027,2495,85 +2020-06-28,Howard,Maryland,24027,2506,85 +2020-06-29,Howard,Maryland,24027,2532,85 +2020-06-30,Howard,Maryland,24027,2543,84 +2020-07-01,Howard,Maryland,24027,2573,89 +2020-07-02,Howard,Maryland,24027,2607,89 +2020-07-03,Howard,Maryland,24027,2623,91 +2020-07-04,Howard,Maryland,24027,2643,91 +2020-07-05,Howard,Maryland,24027,2657,91 +2020-07-06,Howard,Maryland,24027,2672,91 +2020-07-07,Howard,Maryland,24027,2691,93 +2020-07-08,Howard,Maryland,24027,2729,93 +2020-07-09,Howard,Maryland,24027,2757,92 +2020-03-25,Kent,Maryland,24029,1,0 +2020-03-26,Kent,Maryland,24029,1,0 +2020-03-27,Kent,Maryland,24029,2,0 +2020-03-28,Kent,Maryland,24029,2,0 +2020-03-29,Kent,Maryland,24029,3,0 +2020-03-30,Kent,Maryland,24029,3,0 +2020-03-31,Kent,Maryland,24029,3,0 +2020-04-01,Kent,Maryland,24029,3,0 +2020-04-02,Kent,Maryland,24029,5,0 +2020-04-03,Kent,Maryland,24029,5,0 +2020-04-04,Kent,Maryland,24029,5,0 +2020-04-05,Kent,Maryland,24029,5,0 +2020-04-06,Kent,Maryland,24029,5,0 +2020-04-07,Kent,Maryland,24029,8,0 +2020-04-08,Kent,Maryland,24029,9,0 +2020-04-09,Kent,Maryland,24029,9,0 +2020-04-10,Kent,Maryland,24029,9,0 +2020-04-11,Kent,Maryland,24029,10,0 +2020-04-12,Kent,Maryland,24029,11,0 +2020-04-13,Kent,Maryland,24029,11,0 +2020-04-14,Kent,Maryland,24029,11,0 +2020-04-15,Kent,Maryland,24029,11,1 +2020-04-16,Kent,Maryland,24029,11,1 +2020-04-17,Kent,Maryland,24029,14,1 +2020-04-18,Kent,Maryland,24029,16,1 +2020-04-19,Kent,Maryland,24029,18,1 +2020-04-20,Kent,Maryland,24029,28,1 +2020-04-21,Kent,Maryland,24029,29,1 +2020-04-22,Kent,Maryland,24029,36,1 +2020-04-23,Kent,Maryland,24029,64,1 +2020-04-24,Kent,Maryland,24029,67,2 +2020-04-25,Kent,Maryland,24029,67,3 +2020-04-26,Kent,Maryland,24029,68,3 +2020-04-27,Kent,Maryland,24029,70,4 +2020-04-28,Kent,Maryland,24029,73,4 +2020-04-29,Kent,Maryland,24029,73,4 +2020-04-30,Kent,Maryland,24029,79,5 +2020-05-01,Kent,Maryland,24029,86,4 +2020-05-02,Kent,Maryland,24029,80,4 +2020-05-03,Kent,Maryland,24029,91,6 +2020-05-04,Kent,Maryland,24029,95,7 +2020-05-05,Kent,Maryland,24029,95,7 +2020-05-06,Kent,Maryland,24029,95,8 +2020-05-07,Kent,Maryland,24029,98,8 +2020-05-08,Kent,Maryland,24029,98,8 +2020-05-09,Kent,Maryland,24029,102,10 +2020-05-10,Kent,Maryland,24029,113,13 +2020-05-11,Kent,Maryland,24029,116,13 +2020-05-12,Kent,Maryland,24029,120,13 +2020-05-13,Kent,Maryland,24029,123,13 +2020-05-14,Kent,Maryland,24029,125,14 +2020-05-15,Kent,Maryland,24029,131,14 +2020-05-16,Kent,Maryland,24029,138,14 +2020-05-17,Kent,Maryland,24029,137,14 +2020-05-18,Kent,Maryland,24029,140,14 +2020-05-19,Kent,Maryland,24029,144,14 +2020-05-20,Kent,Maryland,24029,145,14 +2020-05-21,Kent,Maryland,24029,143,14 +2020-05-22,Kent,Maryland,24029,146,15 +2020-05-23,Kent,Maryland,24029,148,15 +2020-05-24,Kent,Maryland,24029,152,14 +2020-05-25,Kent,Maryland,24029,155,14 +2020-05-26,Kent,Maryland,24029,158,15 +2020-05-27,Kent,Maryland,24029,160,15 +2020-05-28,Kent,Maryland,24029,165,15 +2020-05-29,Kent,Maryland,24029,167,17 +2020-05-30,Kent,Maryland,24029,170,19 +2020-05-31,Kent,Maryland,24029,173,19 +2020-06-01,Kent,Maryland,24029,174,19 +2020-06-02,Kent,Maryland,24029,174,19 +2020-06-03,Kent,Maryland,24029,178,19 +2020-06-04,Kent,Maryland,24029,180,19 +2020-06-05,Kent,Maryland,24029,184,19 +2020-06-06,Kent,Maryland,24029,185,19 +2020-06-07,Kent,Maryland,24029,187,19 +2020-06-08,Kent,Maryland,24029,187,19 +2020-06-09,Kent,Maryland,24029,188,19 +2020-06-10,Kent,Maryland,24029,189,19 +2020-06-11,Kent,Maryland,24029,188,21 +2020-06-12,Kent,Maryland,24029,190,22 +2020-06-13,Kent,Maryland,24029,193,23 +2020-06-14,Kent,Maryland,24029,194,23 +2020-06-15,Kent,Maryland,24029,194,24 +2020-06-16,Kent,Maryland,24029,194,24 +2020-06-17,Kent,Maryland,24029,193,24 +2020-06-18,Kent,Maryland,24029,194,24 +2020-06-19,Kent,Maryland,24029,194,23 +2020-06-20,Kent,Maryland,24029,194,23 +2020-06-21,Kent,Maryland,24029,194,23 +2020-06-22,Kent,Maryland,24029,195,23 +2020-06-23,Kent,Maryland,24029,195,23 +2020-06-24,Kent,Maryland,24029,196,23 +2020-06-25,Kent,Maryland,24029,195,23 +2020-06-26,Kent,Maryland,24029,196,23 +2020-06-27,Kent,Maryland,24029,197,23 +2020-06-28,Kent,Maryland,24029,199,23 +2020-06-29,Kent,Maryland,24029,200,23 +2020-06-30,Kent,Maryland,24029,199,23 +2020-07-01,Kent,Maryland,24029,201,23 +2020-07-02,Kent,Maryland,24029,202,23 +2020-07-03,Kent,Maryland,24029,201,23 +2020-07-04,Kent,Maryland,24029,201,23 +2020-07-05,Kent,Maryland,24029,204,23 +2020-07-06,Kent,Maryland,24029,204,23 +2020-07-07,Kent,Maryland,24029,205,23 +2020-07-08,Kent,Maryland,24029,205,23 +2020-07-09,Kent,Maryland,24029,204,23 +2020-03-05,Montgomery,Maryland,24031,3,0 +2020-03-06,Montgomery,Maryland,24031,3,0 +2020-03-07,Montgomery,Maryland,24031,3,0 +2020-03-08,Montgomery,Maryland,24031,4,0 +2020-03-09,Montgomery,Maryland,24031,4,0 +2020-03-10,Montgomery,Maryland,24031,5,0 +2020-03-11,Montgomery,Maryland,24031,6,0 +2020-03-12,Montgomery,Maryland,24031,6,0 +2020-03-13,Montgomery,Maryland,24031,6,0 +2020-03-14,Montgomery,Maryland,24031,12,0 +2020-03-15,Montgomery,Maryland,24031,12,0 +2020-03-16,Montgomery,Maryland,24031,15,0 +2020-03-17,Montgomery,Maryland,24031,24,0 +2020-03-18,Montgomery,Maryland,24031,31,0 +2020-03-19,Montgomery,Maryland,24031,33,0 +2020-03-20,Montgomery,Maryland,24031,51,0 +2020-03-21,Montgomery,Maryland,24031,68,1 +2020-03-22,Montgomery,Maryland,24031,83,1 +2020-03-23,Montgomery,Maryland,24031,93,1 +2020-03-24,Montgomery,Maryland,24031,107,1 +2020-03-25,Montgomery,Maryland,24031,127,1 +2020-03-26,Montgomery,Maryland,24031,164,1 +2020-03-27,Montgomery,Maryland,24031,208,1 +2020-03-28,Montgomery,Maryland,24031,255,1 +2020-03-29,Montgomery,Maryland,24031,301,1 +2020-03-30,Montgomery,Maryland,24031,341,1 +2020-03-31,Montgomery,Maryland,24031,388,1 +2020-04-01,Montgomery,Maryland,24031,447,1 +2020-04-02,Montgomery,Maryland,24031,498,6 +2020-04-03,Montgomery,Maryland,24031,566,9 +2020-04-04,Montgomery,Maryland,24031,640,9 +2020-04-05,Montgomery,Maryland,24031,693,13 +2020-04-06,Montgomery,Maryland,24031,793,19 +2020-04-07,Montgomery,Maryland,24031,871,21 +2020-04-08,Montgomery,Maryland,24031,1088,26 +2020-04-09,Montgomery,Maryland,24031,1214,29 +2020-04-10,Montgomery,Maryland,24031,1388,34 +2020-04-11,Montgomery,Maryland,24031,1537,36 +2020-04-12,Montgomery,Maryland,24031,1631,42 +2020-04-13,Montgomery,Maryland,24031,1756,48 +2020-04-14,Montgomery,Maryland,24031,1883,54 +2020-04-15,Montgomery,Maryland,24031,1947,58 +2020-04-16,Montgomery,Maryland,24031,2147,70 +2020-04-17,Montgomery,Maryland,24031,2295,78 +2020-04-18,Montgomery,Maryland,24031,2420,86 +2020-04-19,Montgomery,Maryland,24031,2523,96 +2020-04-20,Montgomery,Maryland,24031,2664,106 +2020-04-21,Montgomery,Maryland,24031,2785,116 +2020-04-22,Montgomery,Maryland,24031,2884,126 +2020-04-23,Montgomery,Maryland,24031,3078,139 +2020-04-24,Montgomery,Maryland,24031,3246,154 +2020-04-25,Montgomery,Maryland,24031,3502,171 +2020-04-26,Montgomery,Maryland,24031,3665,180 +2020-04-27,Montgomery,Maryland,24031,3863,210 +2020-04-28,Montgomery,Maryland,24031,4023,221 +2020-04-29,Montgomery,Maryland,24031,4176,242 +2020-04-30,Montgomery,Maryland,24031,4326,255 +2020-05-01,Montgomery,Maryland,24031,4780,262 +2020-05-02,Montgomery,Maryland,24031,4945,282 +2020-05-03,Montgomery,Maryland,24031,5177,295 +2020-05-04,Montgomery,Maryland,24031,5411,301 +2020-05-05,Montgomery,Maryland,24031,5569,320 +2020-05-06,Montgomery,Maryland,24031,5819,333 +2020-05-07,Montgomery,Maryland,24031,6062,345 +2020-05-08,Montgomery,Maryland,24031,6347,355 +2020-05-09,Montgomery,Maryland,24031,6588,369 +2020-05-10,Montgomery,Maryland,24031,6796,382 +2020-05-11,Montgomery,Maryland,24031,6944,388 +2020-05-12,Montgomery,Maryland,24031,7164,407 +2020-05-13,Montgomery,Maryland,24031,7319,422 +2020-05-14,Montgomery,Maryland,24031,7588,437 +2020-05-15,Montgomery,Maryland,24031,7797,449 +2020-05-16,Montgomery,Maryland,24031,8026,461 +2020-05-17,Montgomery,Maryland,24031,8244,475 +2020-05-18,Montgomery,Maryland,24031,8455,480 +2020-05-19,Montgomery,Maryland,24031,8988,503 +2020-05-20,Montgomery,Maryland,24031,9093,515 +2020-05-21,Montgomery,Maryland,24031,9297,528 +2020-05-22,Montgomery,Maryland,24031,9470,540 +2020-05-23,Montgomery,Maryland,24031,9735,550 +2020-05-24,Montgomery,Maryland,24031,9958,558 +2020-05-25,Montgomery,Maryland,24031,10147,562 +2020-05-26,Montgomery,Maryland,24031,10327,567 +2020-05-27,Montgomery,Maryland,24031,10504,572 +2020-05-28,Montgomery,Maryland,24031,10791,581 +2020-05-29,Montgomery,Maryland,24031,11075,595 +2020-05-30,Montgomery,Maryland,24031,11291,605 +2020-05-31,Montgomery,Maryland,24031,11401,612 +2020-06-01,Montgomery,Maryland,24031,11516,616 +2020-06-02,Montgomery,Maryland,24031,11771,624 +2020-06-03,Montgomery,Maryland,24031,11964,633 +2020-06-04,Montgomery,Maryland,24031,12266,636 +2020-06-05,Montgomery,Maryland,24031,12473,645 +2020-06-06,Montgomery,Maryland,24031,12662,652 +2020-06-07,Montgomery,Maryland,24031,12773,656 +2020-06-08,Montgomery,Maryland,24031,12857,659 +2020-06-09,Montgomery,Maryland,24031,13007,667 +2020-06-10,Montgomery,Maryland,24031,13163,672 +2020-06-11,Montgomery,Maryland,24031,13315,674 +2020-06-12,Montgomery,Maryland,24031,13387,679 +2020-06-13,Montgomery,Maryland,24031,13573,686 +2020-06-14,Montgomery,Maryland,24031,13646,690 +2020-06-15,Montgomery,Maryland,24031,13696,694 +2020-06-16,Montgomery,Maryland,24031,13749,698 +2020-06-17,Montgomery,Maryland,24031,13859,704 +2020-06-18,Montgomery,Maryland,24031,13902,707 +2020-06-19,Montgomery,Maryland,24031,13968,710 +2020-06-20,Montgomery,Maryland,24031,14044,714 +2020-06-21,Montgomery,Maryland,24031,14119,720 +2020-06-22,Montgomery,Maryland,24031,14181,723 +2020-06-23,Montgomery,Maryland,24031,14244,725 +2020-06-24,Montgomery,Maryland,24031,14323,728 +2020-06-25,Montgomery,Maryland,24031,14421,731 +2020-06-26,Montgomery,Maryland,24031,14510,730 +2020-06-27,Montgomery,Maryland,24031,14559,734 +2020-06-28,Montgomery,Maryland,24031,14646,735 +2020-06-29,Montgomery,Maryland,24031,14714,736 +2020-06-30,Montgomery,Maryland,24031,14776,738 +2020-07-01,Montgomery,Maryland,24031,14842,739 +2020-07-02,Montgomery,Maryland,24031,14938,743 +2020-07-03,Montgomery,Maryland,24031,15059,747 +2020-07-04,Montgomery,Maryland,24031,15120,748 +2020-07-05,Montgomery,Maryland,24031,15167,749 +2020-07-06,Montgomery,Maryland,24031,15201,753 +2020-07-07,Montgomery,Maryland,24031,15370,752 +2020-07-08,Montgomery,Maryland,24031,15438,752 +2020-07-09,Montgomery,Maryland,24031,15541,754 +2020-03-09,Prince George's,Maryland,24033,1,0 +2020-03-10,Prince George's,Maryland,24033,3,0 +2020-03-11,Prince George's,Maryland,24033,5,0 +2020-03-12,Prince George's,Maryland,24033,5,0 +2020-03-13,Prince George's,Maryland,24033,7,0 +2020-03-14,Prince George's,Maryland,24033,7,0 +2020-03-15,Prince George's,Maryland,24033,9,0 +2020-03-16,Prince George's,Maryland,24033,10,0 +2020-03-17,Prince George's,Maryland,24033,14,0 +2020-03-18,Prince George's,Maryland,24033,20,1 +2020-03-19,Prince George's,Maryland,24033,23,1 +2020-03-20,Prince George's,Maryland,24033,31,1 +2020-03-21,Prince George's,Maryland,24033,36,1 +2020-03-22,Prince George's,Maryland,24033,40,1 +2020-03-23,Prince George's,Maryland,24033,47,1 +2020-03-24,Prince George's,Maryland,24033,63,2 +2020-03-25,Prince George's,Maryland,24033,76,2 +2020-03-26,Prince George's,Maryland,24033,101,2 +2020-03-27,Prince George's,Maryland,24033,148,2 +2020-03-28,Prince George's,Maryland,24033,196,3 +2020-03-29,Prince George's,Maryland,24033,247,3 +2020-03-30,Prince George's,Maryland,24033,294,6 +2020-03-31,Prince George's,Maryland,24033,341,7 +2020-04-01,Prince George's,Maryland,24033,403,7 +2020-04-02,Prince George's,Maryland,24033,473,7 +2020-04-03,Prince George's,Maryland,24033,563,9 +2020-04-04,Prince George's,Maryland,24033,653,13 +2020-04-05,Prince George's,Maryland,24033,785,16 +2020-04-06,Prince George's,Maryland,24033,916,23 +2020-04-07,Prince George's,Maryland,24033,1020,26 +2020-04-08,Prince George's,Maryland,24033,1310,32 +2020-04-09,Prince George's,Maryland,24033,1476,35 +2020-04-10,Prince George's,Maryland,24033,1716,42 +2020-04-11,Prince George's,Maryland,24033,1923,50 +2020-04-12,Prince George's,Maryland,24033,2035,55 +2020-04-13,Prince George's,Maryland,24033,2205,63 +2020-04-14,Prince George's,Maryland,24033,2356,72 +2020-04-15,Prince George's,Maryland,24033,2527,76 +2020-04-16,Prince George's,Maryland,24033,2732,80 +2020-04-17,Prince George's,Maryland,24033,2976,87 +2020-04-18,Prince George's,Maryland,24033,3170,95 +2020-04-19,Prince George's,Maryland,24033,3352,105 +2020-04-20,Prince George's,Maryland,24033,3592,112 +2020-04-21,Prince George's,Maryland,24033,3741,118 +2020-04-22,Prince George's,Maryland,24033,3882,132 +2020-04-23,Prince George's,Maryland,24033,4150,150 +2020-04-24,Prince George's,Maryland,24033,4414,158 +2020-04-25,Prince George's,Maryland,24033,4806,173 +2020-04-26,Prince George's,Maryland,24033,4998,174 +2020-04-27,Prince George's,Maryland,24033,5274,198 +2020-04-28,Prince George's,Maryland,24033,5507,206 +2020-04-29,Prince George's,Maryland,24033,5749,224 +2020-04-30,Prince George's,Maryland,24033,6054,240 +2020-05-01,Prince George's,Maryland,24033,6747,243 +2020-05-02,Prince George's,Maryland,24033,7053,269 +2020-05-03,Prince George's,Maryland,24033,7345,277 +2020-05-04,Prince George's,Maryland,24033,7611,284 +2020-05-05,Prince George's,Maryland,24033,7846,295 +2020-05-06,Prince George's,Maryland,24033,8150,311 +2020-05-07,Prince George's,Maryland,24033,8531,324 +2020-05-08,Prince George's,Maryland,24033,8917,339 +2020-05-09,Prince George's,Maryland,24033,9221,349 +2020-05-10,Prince George's,Maryland,24033,9512,353 +2020-05-11,Prince George's,Maryland,24033,9704,359 +2020-05-12,Prince George's,Maryland,24033,9910,373 +2020-05-13,Prince George's,Maryland,24033,10091,389 +2020-05-14,Prince George's,Maryland,24033,10468,398 +2020-05-15,Prince George's,Maryland,24033,10811,413 +2020-05-16,Prince George's,Maryland,24033,11052,420 +2020-05-17,Prince George's,Maryland,24033,11337,429 +2020-05-18,Prince George's,Maryland,24033,11629,436 +2020-05-19,Prince George's,Maryland,24033,12261,445 +2020-05-20,Prince George's,Maryland,24033,12467,453 +2020-05-21,Prince George's,Maryland,24033,12852,466 +2020-05-22,Prince George's,Maryland,24033,13099,477 +2020-05-23,Prince George's,Maryland,24033,13346,484 +2020-05-24,Prince George's,Maryland,24033,14039,490 +2020-05-25,Prince George's,Maryland,24033,14240,497 +2020-05-26,Prince George's,Maryland,24033,14333,506 +2020-05-27,Prince George's,Maryland,24033,14627,520 +2020-05-28,Prince George's,Maryland,24033,15042,530 +2020-05-29,Prince George's,Maryland,24033,15324,530 +2020-05-30,Prince George's,Maryland,24033,15579,539 +2020-05-31,Prince George's,Maryland,24033,15808,541 +2020-06-01,Prince George's,Maryland,24033,15968,545 +2020-06-02,Prince George's,Maryland,24033,16116,552 +2020-06-03,Prince George's,Maryland,24033,16279,565 +2020-06-04,Prince George's,Maryland,24033,16477,580 +2020-06-05,Prince George's,Maryland,24033,16711,587 +2020-06-06,Prince George's,Maryland,24033,16838,595 +2020-06-07,Prince George's,Maryland,24033,16958,598 +2020-06-08,Prince George's,Maryland,24033,17047,602 +2020-06-09,Prince George's,Maryland,24033,17178,607 +2020-06-10,Prince George's,Maryland,24033,17305,613 +2020-06-11,Prince George's,Maryland,24033,17468,620 +2020-06-12,Prince George's,Maryland,24033,17592,631 +2020-06-13,Prince George's,Maryland,24033,17745,634 +2020-06-14,Prince George's,Maryland,24033,17851,637 +2020-06-15,Prince George's,Maryland,24033,17920,640 +2020-06-16,Prince George's,Maryland,24033,17992,644 +2020-06-17,Prince George's,Maryland,24033,18106,648 +2020-06-18,Prince George's,Maryland,24033,18174,649 +2020-06-19,Prince George's,Maryland,24033,18208,653 +2020-06-20,Prince George's,Maryland,24033,18310,658 +2020-06-21,Prince George's,Maryland,24033,18367,659 +2020-06-22,Prince George's,Maryland,24033,18430,661 +2020-06-23,Prince George's,Maryland,24033,18571,661 +2020-06-24,Prince George's,Maryland,24033,18644,662 +2020-06-25,Prince George's,Maryland,24033,18767,669 +2020-06-26,Prince George's,Maryland,24033,18795,676 +2020-06-27,Prince George's,Maryland,24033,18823,677 +2020-06-28,Prince George's,Maryland,24033,18896,678 +2020-06-29,Prince George's,Maryland,24033,18987,680 +2020-06-30,Prince George's,Maryland,24033,19063,682 +2020-07-01,Prince George's,Maryland,24033,19126,686 +2020-07-02,Prince George's,Maryland,24033,19221,685 +2020-07-03,Prince George's,Maryland,24033,19221,687 +2020-07-04,Prince George's,Maryland,24033,19221,688 +2020-07-05,Prince George's,Maryland,24033,19221,689 +2020-07-06,Prince George's,Maryland,24033,19531,690 +2020-07-07,Prince George's,Maryland,24033,19669,692 +2020-07-08,Prince George's,Maryland,24033,19776,699 +2020-07-09,Prince George's,Maryland,24033,19942,700 +2020-03-23,Queen Anne's,Maryland,24035,1,0 +2020-03-24,Queen Anne's,Maryland,24035,1,0 +2020-03-25,Queen Anne's,Maryland,24035,1,0 +2020-03-26,Queen Anne's,Maryland,24035,1,0 +2020-03-27,Queen Anne's,Maryland,24035,1,0 +2020-03-28,Queen Anne's,Maryland,24035,1,0 +2020-03-29,Queen Anne's,Maryland,24035,4,0 +2020-03-30,Queen Anne's,Maryland,24035,4,0 +2020-03-31,Queen Anne's,Maryland,24035,4,0 +2020-04-01,Queen Anne's,Maryland,24035,7,0 +2020-04-02,Queen Anne's,Maryland,24035,8,0 +2020-04-03,Queen Anne's,Maryland,24035,12,0 +2020-04-04,Queen Anne's,Maryland,24035,13,0 +2020-04-05,Queen Anne's,Maryland,24035,13,0 +2020-04-06,Queen Anne's,Maryland,24035,15,0 +2020-04-07,Queen Anne's,Maryland,24035,15,0 +2020-04-08,Queen Anne's,Maryland,24035,16,0 +2020-04-09,Queen Anne's,Maryland,24035,17,0 +2020-04-10,Queen Anne's,Maryland,24035,17,0 +2020-04-11,Queen Anne's,Maryland,24035,19,0 +2020-04-12,Queen Anne's,Maryland,24035,19,0 +2020-04-13,Queen Anne's,Maryland,24035,19,0 +2020-04-14,Queen Anne's,Maryland,24035,19,0 +2020-04-15,Queen Anne's,Maryland,24035,19,1 +2020-04-16,Queen Anne's,Maryland,24035,19,1 +2020-04-17,Queen Anne's,Maryland,24035,19,1 +2020-04-18,Queen Anne's,Maryland,24035,24,2 +2020-04-19,Queen Anne's,Maryland,24035,25,2 +2020-04-20,Queen Anne's,Maryland,24035,26,2 +2020-04-21,Queen Anne's,Maryland,24035,27,2 +2020-04-22,Queen Anne's,Maryland,24035,31,2 +2020-04-23,Queen Anne's,Maryland,24035,33,2 +2020-04-24,Queen Anne's,Maryland,24035,43,3 +2020-04-25,Queen Anne's,Maryland,24035,52,3 +2020-04-26,Queen Anne's,Maryland,24035,53,3 +2020-04-27,Queen Anne's,Maryland,24035,54,3 +2020-04-28,Queen Anne's,Maryland,24035,55,4 +2020-04-29,Queen Anne's,Maryland,24035,55,4 +2020-04-30,Queen Anne's,Maryland,24035,52,6 +2020-05-01,Queen Anne's,Maryland,24035,52,7 +2020-05-02,Queen Anne's,Maryland,24035,57,8 +2020-05-03,Queen Anne's,Maryland,24035,60,8 +2020-05-04,Queen Anne's,Maryland,24035,63,8 +2020-05-05,Queen Anne's,Maryland,24035,65,8 +2020-05-06,Queen Anne's,Maryland,24035,67,8 +2020-05-07,Queen Anne's,Maryland,24035,68,8 +2020-05-08,Queen Anne's,Maryland,24035,70,9 +2020-05-09,Queen Anne's,Maryland,24035,72,9 +2020-05-10,Queen Anne's,Maryland,24035,80,9 +2020-05-11,Queen Anne's,Maryland,24035,100,9 +2020-05-12,Queen Anne's,Maryland,24035,103,9 +2020-05-13,Queen Anne's,Maryland,24035,104,9 +2020-05-14,Queen Anne's,Maryland,24035,106,9 +2020-05-15,Queen Anne's,Maryland,24035,108,9 +2020-05-16,Queen Anne's,Maryland,24035,112,9 +2020-05-17,Queen Anne's,Maryland,24035,125,10 +2020-05-18,Queen Anne's,Maryland,24035,129,10 +2020-05-19,Queen Anne's,Maryland,24035,133,11 +2020-05-20,Queen Anne's,Maryland,24035,135,11 +2020-05-21,Queen Anne's,Maryland,24035,141,11 +2020-05-22,Queen Anne's,Maryland,24035,141,12 +2020-05-23,Queen Anne's,Maryland,24035,146,12 +2020-05-24,Queen Anne's,Maryland,24035,146,12 +2020-05-25,Queen Anne's,Maryland,24035,151,12 +2020-05-26,Queen Anne's,Maryland,24035,151,12 +2020-05-27,Queen Anne's,Maryland,24035,151,12 +2020-05-28,Queen Anne's,Maryland,24035,152,12 +2020-05-29,Queen Anne's,Maryland,24035,160,12 +2020-05-30,Queen Anne's,Maryland,24035,159,12 +2020-05-31,Queen Anne's,Maryland,24035,160,13 +2020-06-01,Queen Anne's,Maryland,24035,161,12 +2020-06-02,Queen Anne's,Maryland,24035,161,12 +2020-06-03,Queen Anne's,Maryland,24035,162,12 +2020-06-04,Queen Anne's,Maryland,24035,161,12 +2020-06-05,Queen Anne's,Maryland,24035,163,12 +2020-06-06,Queen Anne's,Maryland,24035,168,12 +2020-06-07,Queen Anne's,Maryland,24035,170,12 +2020-06-08,Queen Anne's,Maryland,24035,177,12 +2020-06-09,Queen Anne's,Maryland,24035,177,12 +2020-06-10,Queen Anne's,Maryland,24035,178,12 +2020-06-11,Queen Anne's,Maryland,24035,178,12 +2020-06-12,Queen Anne's,Maryland,24035,179,12 +2020-06-13,Queen Anne's,Maryland,24035,179,12 +2020-06-14,Queen Anne's,Maryland,24035,180,12 +2020-06-15,Queen Anne's,Maryland,24035,183,12 +2020-06-16,Queen Anne's,Maryland,24035,183,13 +2020-06-17,Queen Anne's,Maryland,24035,187,14 +2020-06-18,Queen Anne's,Maryland,24035,187,14 +2020-06-19,Queen Anne's,Maryland,24035,203,14 +2020-06-20,Queen Anne's,Maryland,24035,204,14 +2020-06-21,Queen Anne's,Maryland,24035,205,14 +2020-06-22,Queen Anne's,Maryland,24035,211,15 +2020-06-23,Queen Anne's,Maryland,24035,211,15 +2020-06-24,Queen Anne's,Maryland,24035,213,15 +2020-06-25,Queen Anne's,Maryland,24035,215,16 +2020-06-26,Queen Anne's,Maryland,24035,220,17 +2020-06-27,Queen Anne's,Maryland,24035,224,17 +2020-06-28,Queen Anne's,Maryland,24035,226,17 +2020-06-29,Queen Anne's,Maryland,24035,227,17 +2020-06-30,Queen Anne's,Maryland,24035,230,17 +2020-07-01,Queen Anne's,Maryland,24035,231,19 +2020-07-02,Queen Anne's,Maryland,24035,233,19 +2020-07-03,Queen Anne's,Maryland,24035,235,19 +2020-07-04,Queen Anne's,Maryland,24035,241,20 +2020-07-05,Queen Anne's,Maryland,24035,248,20 +2020-07-06,Queen Anne's,Maryland,24035,249,20 +2020-07-07,Queen Anne's,Maryland,24035,257,20 +2020-07-08,Queen Anne's,Maryland,24035,261,21 +2020-07-09,Queen Anne's,Maryland,24035,269,23 +2020-03-22,St. Mary's,Maryland,24037,1,0 +2020-03-23,St. Mary's,Maryland,24037,1,0 +2020-03-24,St. Mary's,Maryland,24037,2,0 +2020-03-25,St. Mary's,Maryland,24037,2,0 +2020-03-26,St. Mary's,Maryland,24037,4,0 +2020-03-27,St. Mary's,Maryland,24037,4,0 +2020-03-28,St. Mary's,Maryland,24037,8,0 +2020-03-29,St. Mary's,Maryland,24037,9,0 +2020-03-30,St. Mary's,Maryland,24037,9,0 +2020-03-31,St. Mary's,Maryland,24037,15,0 +2020-04-01,St. Mary's,Maryland,24037,19,0 +2020-04-02,St. Mary's,Maryland,24037,27,0 +2020-04-03,St. Mary's,Maryland,24037,30,0 +2020-04-04,St. Mary's,Maryland,24037,34,0 +2020-04-05,St. Mary's,Maryland,24037,40,0 +2020-04-06,St. Mary's,Maryland,24037,41,0 +2020-04-07,St. Mary's,Maryland,24037,46,0 +2020-04-08,St. Mary's,Maryland,24037,62,0 +2020-04-09,St. Mary's,Maryland,24037,65,0 +2020-04-10,St. Mary's,Maryland,24037,71,0 +2020-04-11,St. Mary's,Maryland,24037,73,0 +2020-04-12,St. Mary's,Maryland,24037,82,0 +2020-04-13,St. Mary's,Maryland,24037,95,1 +2020-04-14,St. Mary's,Maryland,24037,98,3 +2020-04-15,St. Mary's,Maryland,24037,99,1 +2020-04-16,St. Mary's,Maryland,24037,98,1 +2020-04-17,St. Mary's,Maryland,24037,100,1 +2020-04-18,St. Mary's,Maryland,24037,101,1 +2020-04-19,St. Mary's,Maryland,24037,105,2 +2020-04-20,St. Mary's,Maryland,24037,107,2 +2020-04-21,St. Mary's,Maryland,24037,107,3 +2020-04-22,St. Mary's,Maryland,24037,112,3 +2020-04-23,St. Mary's,Maryland,24037,115,4 +2020-04-24,St. Mary's,Maryland,24037,119,6 +2020-04-25,St. Mary's,Maryland,24037,124,6 +2020-04-26,St. Mary's,Maryland,24037,133,6 +2020-04-27,St. Mary's,Maryland,24037,144,6 +2020-04-28,St. Mary's,Maryland,24037,145,7 +2020-04-29,St. Mary's,Maryland,24037,146,8 +2020-04-30,St. Mary's,Maryland,24037,152,8 +2020-05-01,St. Mary's,Maryland,24037,159,7 +2020-05-02,St. Mary's,Maryland,24037,164,7 +2020-05-03,St. Mary's,Maryland,24037,165,7 +2020-05-04,St. Mary's,Maryland,24037,168,7 +2020-05-05,St. Mary's,Maryland,24037,170,7 +2020-05-06,St. Mary's,Maryland,24037,186,7 +2020-05-07,St. Mary's,Maryland,24037,193,8 +2020-05-08,St. Mary's,Maryland,24037,207,8 +2020-05-09,St. Mary's,Maryland,24037,234,8 +2020-05-10,St. Mary's,Maryland,24037,241,8 +2020-05-11,St. Mary's,Maryland,24037,244,9 +2020-05-12,St. Mary's,Maryland,24037,246,9 +2020-05-13,St. Mary's,Maryland,24037,254,9 +2020-05-14,St. Mary's,Maryland,24037,271,9 +2020-05-15,St. Mary's,Maryland,24037,299,9 +2020-05-16,St. Mary's,Maryland,24037,306,10 +2020-05-17,St. Mary's,Maryland,24037,313,11 +2020-05-18,St. Mary's,Maryland,24037,326,11 +2020-05-19,St. Mary's,Maryland,24037,338,12 +2020-05-20,St. Mary's,Maryland,24037,340,12 +2020-05-21,St. Mary's,Maryland,24037,357,13 +2020-05-22,St. Mary's,Maryland,24037,370,13 +2020-05-23,St. Mary's,Maryland,24037,379,14 +2020-05-24,St. Mary's,Maryland,24037,393,14 +2020-05-25,St. Mary's,Maryland,24037,395,15 +2020-05-26,St. Mary's,Maryland,24037,400,15 +2020-05-27,St. Mary's,Maryland,24037,400,16 +2020-05-28,St. Mary's,Maryland,24037,417,19 +2020-05-29,St. Mary's,Maryland,24037,460,20 +2020-05-30,St. Mary's,Maryland,24037,471,20 +2020-05-31,St. Mary's,Maryland,24037,499,22 +2020-06-01,St. Mary's,Maryland,24037,505,23 +2020-06-02,St. Mary's,Maryland,24037,518,24 +2020-06-03,St. Mary's,Maryland,24037,536,27 +2020-06-04,St. Mary's,Maryland,24037,542,28 +2020-06-05,St. Mary's,Maryland,24037,547,30 +2020-06-06,St. Mary's,Maryland,24037,548,33 +2020-06-07,St. Mary's,Maryland,24037,553,34 +2020-06-08,St. Mary's,Maryland,24037,553,34 +2020-06-09,St. Mary's,Maryland,24037,561,34 +2020-06-10,St. Mary's,Maryland,24037,565,35 +2020-06-11,St. Mary's,Maryland,24037,573,36 +2020-06-12,St. Mary's,Maryland,24037,575,40 +2020-06-13,St. Mary's,Maryland,24037,578,40 +2020-06-14,St. Mary's,Maryland,24037,580,39 +2020-06-15,St. Mary's,Maryland,24037,582,40 +2020-06-16,St. Mary's,Maryland,24037,585,40 +2020-06-17,St. Mary's,Maryland,24037,587,41 +2020-06-18,St. Mary's,Maryland,24037,595,44 +2020-06-19,St. Mary's,Maryland,24037,599,44 +2020-06-20,St. Mary's,Maryland,24037,597,44 +2020-06-21,St. Mary's,Maryland,24037,602,45 +2020-06-22,St. Mary's,Maryland,24037,599,46 +2020-06-23,St. Mary's,Maryland,24037,605,48 +2020-06-24,St. Mary's,Maryland,24037,606,48 +2020-06-25,St. Mary's,Maryland,24037,610,48 +2020-06-26,St. Mary's,Maryland,24037,611,50 +2020-06-27,St. Mary's,Maryland,24037,619,51 +2020-06-28,St. Mary's,Maryland,24037,620,51 +2020-06-29,St. Mary's,Maryland,24037,633,51 +2020-06-30,St. Mary's,Maryland,24037,637,51 +2020-07-01,St. Mary's,Maryland,24037,639,51 +2020-07-02,St. Mary's,Maryland,24037,646,51 +2020-07-03,St. Mary's,Maryland,24037,651,51 +2020-07-04,St. Mary's,Maryland,24037,652,51 +2020-07-05,St. Mary's,Maryland,24037,654,51 +2020-07-06,St. Mary's,Maryland,24037,659,51 +2020-07-07,St. Mary's,Maryland,24037,662,51 +2020-07-08,St. Mary's,Maryland,24037,666,51 +2020-07-09,St. Mary's,Maryland,24037,673,51 +2020-03-21,Somerset,Maryland,24039,1,0 +2020-03-22,Somerset,Maryland,24039,1,0 +2020-03-23,Somerset,Maryland,24039,1,0 +2020-03-24,Somerset,Maryland,24039,1,0 +2020-03-25,Somerset,Maryland,24039,1,0 +2020-03-26,Somerset,Maryland,24039,1,0 +2020-03-27,Somerset,Maryland,24039,1,0 +2020-03-28,Somerset,Maryland,24039,1,0 +2020-03-29,Somerset,Maryland,24039,1,0 +2020-03-30,Somerset,Maryland,24039,1,0 +2020-03-31,Somerset,Maryland,24039,1,0 +2020-04-01,Somerset,Maryland,24039,4,0 +2020-04-02,Somerset,Maryland,24039,4,0 +2020-04-03,Somerset,Maryland,24039,4,0 +2020-04-04,Somerset,Maryland,24039,4,0 +2020-04-05,Somerset,Maryland,24039,4,0 +2020-04-06,Somerset,Maryland,24039,4,0 +2020-04-07,Somerset,Maryland,24039,4,0 +2020-04-08,Somerset,Maryland,24039,4,0 +2020-04-09,Somerset,Maryland,24039,4,0 +2020-04-10,Somerset,Maryland,24039,4,0 +2020-04-11,Somerset,Maryland,24039,4,0 +2020-04-12,Somerset,Maryland,24039,4,0 +2020-04-13,Somerset,Maryland,24039,6,0 +2020-04-14,Somerset,Maryland,24039,5,0 +2020-04-15,Somerset,Maryland,24039,5,0 +2020-04-16,Somerset,Maryland,24039,6,0 +2020-04-17,Somerset,Maryland,24039,9,0 +2020-04-18,Somerset,Maryland,24039,10,0 +2020-04-19,Somerset,Maryland,24039,10,0 +2020-04-20,Somerset,Maryland,24039,11,0 +2020-04-21,Somerset,Maryland,24039,11,0 +2020-04-22,Somerset,Maryland,24039,11,0 +2020-04-23,Somerset,Maryland,24039,12,0 +2020-04-24,Somerset,Maryland,24039,13,0 +2020-04-25,Somerset,Maryland,24039,14,0 +2020-04-26,Somerset,Maryland,24039,16,0 +2020-04-27,Somerset,Maryland,24039,19,0 +2020-04-28,Somerset,Maryland,24039,20,0 +2020-04-29,Somerset,Maryland,24039,21,0 +2020-04-30,Somerset,Maryland,24039,26,0 +2020-05-01,Somerset,Maryland,24039,30,0 +2020-05-02,Somerset,Maryland,24039,32,0 +2020-05-03,Somerset,Maryland,24039,33,0 +2020-05-04,Somerset,Maryland,24039,35,0 +2020-05-05,Somerset,Maryland,24039,37,0 +2020-05-06,Somerset,Maryland,24039,39,0 +2020-05-07,Somerset,Maryland,24039,40,0 +2020-05-08,Somerset,Maryland,24039,41,0 +2020-05-09,Somerset,Maryland,24039,42,0 +2020-05-10,Somerset,Maryland,24039,43,0 +2020-05-11,Somerset,Maryland,24039,50,0 +2020-05-12,Somerset,Maryland,24039,51,0 +2020-05-13,Somerset,Maryland,24039,51,0 +2020-05-14,Somerset,Maryland,24039,51,0 +2020-05-15,Somerset,Maryland,24039,54,0 +2020-05-16,Somerset,Maryland,24039,55,0 +2020-05-17,Somerset,Maryland,24039,57,0 +2020-05-18,Somerset,Maryland,24039,61,0 +2020-05-19,Somerset,Maryland,24039,62,1 +2020-05-20,Somerset,Maryland,24039,64,1 +2020-05-21,Somerset,Maryland,24039,71,1 +2020-05-22,Somerset,Maryland,24039,71,1 +2020-05-23,Somerset,Maryland,24039,71,1 +2020-05-24,Somerset,Maryland,24039,72,1 +2020-05-25,Somerset,Maryland,24039,72,2 +2020-05-26,Somerset,Maryland,24039,73,2 +2020-05-27,Somerset,Maryland,24039,73,2 +2020-05-28,Somerset,Maryland,24039,73,2 +2020-05-29,Somerset,Maryland,24039,73,2 +2020-05-30,Somerset,Maryland,24039,73,2 +2020-05-31,Somerset,Maryland,24039,73,2 +2020-06-01,Somerset,Maryland,24039,73,2 +2020-06-02,Somerset,Maryland,24039,74,3 +2020-06-03,Somerset,Maryland,24039,75,3 +2020-06-04,Somerset,Maryland,24039,76,3 +2020-06-05,Somerset,Maryland,24039,77,4 +2020-06-06,Somerset,Maryland,24039,77,4 +2020-06-07,Somerset,Maryland,24039,77,4 +2020-06-08,Somerset,Maryland,24039,78,4 +2020-06-09,Somerset,Maryland,24039,77,3 +2020-06-10,Somerset,Maryland,24039,77,3 +2020-06-11,Somerset,Maryland,24039,78,3 +2020-06-12,Somerset,Maryland,24039,78,3 +2020-06-13,Somerset,Maryland,24039,79,3 +2020-06-14,Somerset,Maryland,24039,79,3 +2020-06-15,Somerset,Maryland,24039,80,3 +2020-06-16,Somerset,Maryland,24039,82,3 +2020-06-17,Somerset,Maryland,24039,82,3 +2020-06-18,Somerset,Maryland,24039,83,3 +2020-06-19,Somerset,Maryland,24039,83,3 +2020-06-20,Somerset,Maryland,24039,83,3 +2020-06-21,Somerset,Maryland,24039,83,3 +2020-06-22,Somerset,Maryland,24039,83,3 +2020-06-23,Somerset,Maryland,24039,84,3 +2020-06-24,Somerset,Maryland,24039,84,3 +2020-06-25,Somerset,Maryland,24039,85,3 +2020-06-26,Somerset,Maryland,24039,86,3 +2020-06-27,Somerset,Maryland,24039,86,3 +2020-06-28,Somerset,Maryland,24039,86,3 +2020-06-29,Somerset,Maryland,24039,87,3 +2020-06-30,Somerset,Maryland,24039,87,3 +2020-07-01,Somerset,Maryland,24039,87,3 +2020-07-02,Somerset,Maryland,24039,87,3 +2020-07-03,Somerset,Maryland,24039,87,3 +2020-07-04,Somerset,Maryland,24039,87,3 +2020-07-05,Somerset,Maryland,24039,88,3 +2020-07-06,Somerset,Maryland,24039,88,3 +2020-07-07,Somerset,Maryland,24039,91,3 +2020-07-08,Somerset,Maryland,24039,93,3 +2020-07-09,Somerset,Maryland,24039,94,3 +2020-03-16,Talbot,Maryland,24041,1,0 +2020-03-17,Talbot,Maryland,24041,1,0 +2020-03-18,Talbot,Maryland,24041,1,0 +2020-03-19,Talbot,Maryland,24041,1,0 +2020-03-20,Talbot,Maryland,24041,1,0 +2020-03-21,Talbot,Maryland,24041,1,0 +2020-03-22,Talbot,Maryland,24041,1,0 +2020-03-23,Talbot,Maryland,24041,1,0 +2020-03-24,Talbot,Maryland,24041,1,0 +2020-03-25,Talbot,Maryland,24041,1,0 +2020-03-26,Talbot,Maryland,24041,1,0 +2020-03-27,Talbot,Maryland,24041,1,0 +2020-03-28,Talbot,Maryland,24041,2,0 +2020-03-29,Talbot,Maryland,24041,3,0 +2020-03-30,Talbot,Maryland,24041,4,0 +2020-03-31,Talbot,Maryland,24041,3,0 +2020-04-01,Talbot,Maryland,24041,3,0 +2020-04-02,Talbot,Maryland,24041,4,0 +2020-04-03,Talbot,Maryland,24041,5,0 +2020-04-04,Talbot,Maryland,24041,6,1 +2020-04-05,Talbot,Maryland,24041,7,1 +2020-04-06,Talbot,Maryland,24041,8,1 +2020-04-07,Talbot,Maryland,24041,8,1 +2020-04-08,Talbot,Maryland,24041,10,1 +2020-04-09,Talbot,Maryland,24041,13,1 +2020-04-10,Talbot,Maryland,24041,13,1 +2020-04-11,Talbot,Maryland,24041,13,1 +2020-04-12,Talbot,Maryland,24041,14,1 +2020-04-13,Talbot,Maryland,24041,16,1 +2020-04-14,Talbot,Maryland,24041,16,1 +2020-04-15,Talbot,Maryland,24041,14,1 +2020-04-16,Talbot,Maryland,24041,14,1 +2020-04-17,Talbot,Maryland,24041,14,1 +2020-04-18,Talbot,Maryland,24041,16,1 +2020-04-19,Talbot,Maryland,24041,19,1 +2020-04-20,Talbot,Maryland,24041,22,1 +2020-04-21,Talbot,Maryland,24041,22,1 +2020-04-22,Talbot,Maryland,24041,23,1 +2020-04-23,Talbot,Maryland,24041,25,1 +2020-04-24,Talbot,Maryland,24041,25,1 +2020-04-25,Talbot,Maryland,24041,28,1 +2020-04-26,Talbot,Maryland,24041,34,1 +2020-04-27,Talbot,Maryland,24041,34,1 +2020-04-28,Talbot,Maryland,24041,34,1 +2020-04-29,Talbot,Maryland,24041,34,1 +2020-04-30,Talbot,Maryland,24041,35,1 +2020-05-01,Talbot,Maryland,24041,35,1 +2020-05-02,Talbot,Maryland,24041,39,1 +2020-05-03,Talbot,Maryland,24041,44,1 +2020-05-04,Talbot,Maryland,24041,45,1 +2020-05-05,Talbot,Maryland,24041,45,1 +2020-05-06,Talbot,Maryland,24041,45,1 +2020-05-07,Talbot,Maryland,24041,52,1 +2020-05-08,Talbot,Maryland,24041,55,1 +2020-05-09,Talbot,Maryland,24041,58,1 +2020-05-10,Talbot,Maryland,24041,60,1 +2020-05-11,Talbot,Maryland,24041,61,1 +2020-05-12,Talbot,Maryland,24041,61,1 +2020-05-13,Talbot,Maryland,24041,62,1 +2020-05-14,Talbot,Maryland,24041,64,1 +2020-05-15,Talbot,Maryland,24041,65,1 +2020-05-16,Talbot,Maryland,24041,68,1 +2020-05-17,Talbot,Maryland,24041,68,1 +2020-05-18,Talbot,Maryland,24041,68,1 +2020-05-19,Talbot,Maryland,24041,68,1 +2020-05-20,Talbot,Maryland,24041,69,1 +2020-05-21,Talbot,Maryland,24041,70,1 +2020-05-22,Talbot,Maryland,24041,73,1 +2020-05-23,Talbot,Maryland,24041,77,1 +2020-05-24,Talbot,Maryland,24041,79,1 +2020-05-25,Talbot,Maryland,24041,86,1 +2020-05-26,Talbot,Maryland,24041,86,1 +2020-05-27,Talbot,Maryland,24041,84,1 +2020-05-28,Talbot,Maryland,24041,87,1 +2020-05-29,Talbot,Maryland,24041,91,1 +2020-05-30,Talbot,Maryland,24041,96,2 +2020-05-31,Talbot,Maryland,24041,99,2 +2020-06-01,Talbot,Maryland,24041,101,2 +2020-06-02,Talbot,Maryland,24041,101,3 +2020-06-03,Talbot,Maryland,24041,103,3 +2020-06-04,Talbot,Maryland,24041,106,3 +2020-06-05,Talbot,Maryland,24041,106,4 +2020-06-06,Talbot,Maryland,24041,108,4 +2020-06-07,Talbot,Maryland,24041,108,4 +2020-06-08,Talbot,Maryland,24041,108,4 +2020-06-09,Talbot,Maryland,24041,108,4 +2020-06-10,Talbot,Maryland,24041,108,4 +2020-06-11,Talbot,Maryland,24041,107,4 +2020-06-12,Talbot,Maryland,24041,107,4 +2020-06-13,Talbot,Maryland,24041,107,4 +2020-06-14,Talbot,Maryland,24041,107,4 +2020-06-15,Talbot,Maryland,24041,107,4 +2020-06-16,Talbot,Maryland,24041,109,4 +2020-06-17,Talbot,Maryland,24041,110,4 +2020-06-18,Talbot,Maryland,24041,110,4 +2020-06-19,Talbot,Maryland,24041,113,4 +2020-06-20,Talbot,Maryland,24041,113,4 +2020-06-21,Talbot,Maryland,24041,115,4 +2020-06-22,Talbot,Maryland,24041,117,4 +2020-06-23,Talbot,Maryland,24041,116,4 +2020-06-24,Talbot,Maryland,24041,116,4 +2020-06-25,Talbot,Maryland,24041,119,4 +2020-06-26,Talbot,Maryland,24041,121,4 +2020-06-27,Talbot,Maryland,24041,130,4 +2020-06-28,Talbot,Maryland,24041,130,4 +2020-06-29,Talbot,Maryland,24041,136,4 +2020-06-30,Talbot,Maryland,24041,137,4 +2020-07-01,Talbot,Maryland,24041,137,4 +2020-07-02,Talbot,Maryland,24041,141,4 +2020-07-03,Talbot,Maryland,24041,144,4 +2020-07-04,Talbot,Maryland,24041,147,4 +2020-07-05,Talbot,Maryland,24041,150,4 +2020-07-06,Talbot,Maryland,24041,152,4 +2020-07-07,Talbot,Maryland,24041,155,4 +2020-07-08,Talbot,Maryland,24041,161,4 +2020-07-09,Talbot,Maryland,24041,165,4 +2020-03-21,Washington,Maryland,24043,1,0 +2020-03-22,Washington,Maryland,24043,1,0 +2020-03-23,Washington,Maryland,24043,2,0 +2020-03-24,Washington,Maryland,24043,2,0 +2020-03-25,Washington,Maryland,24043,2,0 +2020-03-26,Washington,Maryland,24043,2,0 +2020-03-27,Washington,Maryland,24043,5,0 +2020-03-28,Washington,Maryland,24043,6,0 +2020-03-29,Washington,Maryland,24043,6,0 +2020-03-30,Washington,Maryland,24043,7,0 +2020-03-31,Washington,Maryland,24043,11,0 +2020-04-01,Washington,Maryland,24043,15,0 +2020-04-02,Washington,Maryland,24043,17,0 +2020-04-03,Washington,Maryland,24043,27,0 +2020-04-04,Washington,Maryland,24043,29,0 +2020-04-05,Washington,Maryland,24043,34,0 +2020-04-06,Washington,Maryland,24043,37,0 +2020-04-07,Washington,Maryland,24043,44,0 +2020-04-08,Washington,Maryland,24043,57,0 +2020-04-09,Washington,Maryland,24043,60,0 +2020-04-10,Washington,Maryland,24043,66,0 +2020-04-11,Washington,Maryland,24043,72,1 +2020-04-12,Washington,Maryland,24043,75,1 +2020-04-13,Washington,Maryland,24043,93,1 +2020-04-14,Washington,Maryland,24043,96,1 +2020-04-15,Washington,Maryland,24043,106,0 +2020-04-16,Washington,Maryland,24043,109,1 +2020-04-17,Washington,Maryland,24043,116,1 +2020-04-18,Washington,Maryland,24043,116,3 +2020-04-19,Washington,Maryland,24043,117,3 +2020-04-20,Washington,Maryland,24043,123,3 +2020-04-21,Washington,Maryland,24043,126,3 +2020-04-22,Washington,Maryland,24043,127,3 +2020-04-23,Washington,Maryland,24043,139,3 +2020-04-24,Washington,Maryland,24043,143,3 +2020-04-25,Washington,Maryland,24043,154,3 +2020-04-26,Washington,Maryland,24043,173,3 +2020-04-27,Washington,Maryland,24043,181,3 +2020-04-28,Washington,Maryland,24043,187,3 +2020-04-29,Washington,Maryland,24043,197,3 +2020-04-30,Washington,Maryland,24043,206,4 +2020-05-01,Washington,Maryland,24043,216,4 +2020-05-02,Washington,Maryland,24043,225,6 +2020-05-03,Washington,Maryland,24043,232,6 +2020-05-04,Washington,Maryland,24043,237,6 +2020-05-05,Washington,Maryland,24043,238,6 +2020-05-06,Washington,Maryland,24043,251,7 +2020-05-07,Washington,Maryland,24043,260,7 +2020-05-08,Washington,Maryland,24043,259,7 +2020-05-09,Washington,Maryland,24043,265,8 +2020-05-10,Washington,Maryland,24043,276,9 +2020-05-11,Washington,Maryland,24043,283,9 +2020-05-12,Washington,Maryland,24043,284,9 +2020-05-13,Washington,Maryland,24043,287,9 +2020-05-14,Washington,Maryland,24043,305,9 +2020-05-15,Washington,Maryland,24043,320,9 +2020-05-16,Washington,Maryland,24043,332,9 +2020-05-17,Washington,Maryland,24043,338,8 +2020-05-18,Washington,Maryland,24043,343,8 +2020-05-19,Washington,Maryland,24043,352,8 +2020-05-20,Washington,Maryland,24043,364,9 +2020-05-21,Washington,Maryland,24043,377,10 +2020-05-22,Washington,Maryland,24043,389,10 +2020-05-23,Washington,Maryland,24043,398,10 +2020-05-24,Washington,Maryland,24043,408,11 +2020-05-25,Washington,Maryland,24043,413,11 +2020-05-26,Washington,Maryland,24043,413,12 +2020-05-27,Washington,Maryland,24043,418,12 +2020-05-28,Washington,Maryland,24043,423,12 +2020-05-29,Washington,Maryland,24043,441,13 +2020-05-30,Washington,Maryland,24043,456,13 +2020-05-31,Washington,Maryland,24043,469,14 +2020-06-01,Washington,Maryland,24043,472,14 +2020-06-02,Washington,Maryland,24043,480,15 +2020-06-03,Washington,Maryland,24043,486,16 +2020-06-04,Washington,Maryland,24043,516,16 +2020-06-05,Washington,Maryland,24043,529,16 +2020-06-06,Washington,Maryland,24043,545,16 +2020-06-07,Washington,Maryland,24043,548,16 +2020-06-08,Washington,Maryland,24043,551,16 +2020-06-09,Washington,Maryland,24043,545,17 +2020-06-10,Washington,Maryland,24043,551,17 +2020-06-11,Washington,Maryland,24043,560,20 +2020-06-12,Washington,Maryland,24043,568,21 +2020-06-13,Washington,Maryland,24043,570,22 +2020-06-14,Washington,Maryland,24043,571,22 +2020-06-15,Washington,Maryland,24043,579,22 +2020-06-16,Washington,Maryland,24043,579,22 +2020-06-17,Washington,Maryland,24043,593,22 +2020-06-18,Washington,Maryland,24043,595,24 +2020-06-19,Washington,Maryland,24043,601,25 +2020-06-20,Washington,Maryland,24043,602,25 +2020-06-21,Washington,Maryland,24043,603,25 +2020-06-22,Washington,Maryland,24043,611,25 +2020-06-23,Washington,Maryland,24043,616,25 +2020-06-24,Washington,Maryland,24043,634,26 +2020-06-25,Washington,Maryland,24043,653,26 +2020-06-26,Washington,Maryland,24043,663,26 +2020-06-27,Washington,Maryland,24043,684,26 +2020-06-28,Washington,Maryland,24043,694,26 +2020-06-29,Washington,Maryland,24043,695,26 +2020-06-30,Washington,Maryland,24043,698,27 +2020-07-01,Washington,Maryland,24043,697,28 +2020-07-02,Washington,Maryland,24043,687,28 +2020-07-03,Washington,Maryland,24043,691,28 +2020-07-04,Washington,Maryland,24043,695,29 +2020-07-05,Washington,Maryland,24043,696,29 +2020-07-06,Washington,Maryland,24043,696,29 +2020-07-07,Washington,Maryland,24043,691,29 +2020-07-08,Washington,Maryland,24043,694,29 +2020-07-09,Washington,Maryland,24043,702,29 +2020-03-19,Wicomico,Maryland,24045,1,0 +2020-03-20,Wicomico,Maryland,24045,1,0 +2020-03-21,Wicomico,Maryland,24045,2,0 +2020-03-22,Wicomico,Maryland,24045,2,0 +2020-03-23,Wicomico,Maryland,24045,4,0 +2020-03-24,Wicomico,Maryland,24045,4,0 +2020-03-25,Wicomico,Maryland,24045,4,0 +2020-03-26,Wicomico,Maryland,24045,5,0 +2020-03-27,Wicomico,Maryland,24045,6,0 +2020-03-28,Wicomico,Maryland,24045,6,1 +2020-03-29,Wicomico,Maryland,24045,6,1 +2020-03-30,Wicomico,Maryland,24045,7,1 +2020-03-31,Wicomico,Maryland,24045,7,1 +2020-04-01,Wicomico,Maryland,24045,7,1 +2020-04-02,Wicomico,Maryland,24045,7,1 +2020-04-03,Wicomico,Maryland,24045,7,1 +2020-04-04,Wicomico,Maryland,24045,8,1 +2020-04-05,Wicomico,Maryland,24045,11,1 +2020-04-06,Wicomico,Maryland,24045,11,1 +2020-04-07,Wicomico,Maryland,24045,17,1 +2020-04-08,Wicomico,Maryland,24045,20,1 +2020-04-09,Wicomico,Maryland,24045,21,1 +2020-04-10,Wicomico,Maryland,24045,28,1 +2020-04-11,Wicomico,Maryland,24045,33,1 +2020-04-12,Wicomico,Maryland,24045,42,1 +2020-04-13,Wicomico,Maryland,24045,58,1 +2020-04-14,Wicomico,Maryland,24045,63,1 +2020-04-15,Wicomico,Maryland,24045,76,1 +2020-04-16,Wicomico,Maryland,24045,87,1 +2020-04-17,Wicomico,Maryland,24045,103,1 +2020-04-18,Wicomico,Maryland,24045,138,1 +2020-04-19,Wicomico,Maryland,24045,145,3 +2020-04-20,Wicomico,Maryland,24045,166,3 +2020-04-21,Wicomico,Maryland,24045,176,2 +2020-04-22,Wicomico,Maryland,24045,183,2 +2020-04-23,Wicomico,Maryland,24045,203,3 +2020-04-24,Wicomico,Maryland,24045,222,3 +2020-04-25,Wicomico,Maryland,24045,242,4 +2020-04-26,Wicomico,Maryland,24045,270,4 +2020-04-27,Wicomico,Maryland,24045,336,5 +2020-04-28,Wicomico,Maryland,24045,340,5 +2020-04-29,Wicomico,Maryland,24045,350,7 +2020-04-30,Wicomico,Maryland,24045,406,7 +2020-05-01,Wicomico,Maryland,24045,425,7 +2020-05-02,Wicomico,Maryland,24045,452,10 +2020-05-03,Wicomico,Maryland,24045,473,10 +2020-05-04,Wicomico,Maryland,24045,480,10 +2020-05-05,Wicomico,Maryland,24045,500,11 +2020-05-06,Wicomico,Maryland,24045,517,11 +2020-05-07,Wicomico,Maryland,24045,541,13 +2020-05-08,Wicomico,Maryland,24045,553,15 +2020-05-09,Wicomico,Maryland,24045,558,15 +2020-05-10,Wicomico,Maryland,24045,571,15 +2020-05-11,Wicomico,Maryland,24045,690,16 +2020-05-12,Wicomico,Maryland,24045,694,16 +2020-05-13,Wicomico,Maryland,24045,738,17 +2020-05-14,Wicomico,Maryland,24045,754,17 +2020-05-15,Wicomico,Maryland,24045,777,19 +2020-05-16,Wicomico,Maryland,24045,801,20 +2020-05-17,Wicomico,Maryland,24045,818,21 +2020-05-18,Wicomico,Maryland,24045,837,21 +2020-05-19,Wicomico,Maryland,24045,839,21 +2020-05-20,Wicomico,Maryland,24045,848,21 +2020-05-21,Wicomico,Maryland,24045,844,22 +2020-05-22,Wicomico,Maryland,24045,854,22 +2020-05-23,Wicomico,Maryland,24045,859,22 +2020-05-24,Wicomico,Maryland,24045,867,22 +2020-05-25,Wicomico,Maryland,24045,892,22 +2020-05-26,Wicomico,Maryland,24045,908,22 +2020-05-27,Wicomico,Maryland,24045,910,25 +2020-05-28,Wicomico,Maryland,24045,919,27 +2020-05-29,Wicomico,Maryland,24045,931,30 +2020-05-30,Wicomico,Maryland,24045,943,30 +2020-05-31,Wicomico,Maryland,24045,953,30 +2020-06-01,Wicomico,Maryland,24045,955,30 +2020-06-02,Wicomico,Maryland,24045,955,30 +2020-06-03,Wicomico,Maryland,24045,959,30 +2020-06-04,Wicomico,Maryland,24045,959,32 +2020-06-05,Wicomico,Maryland,24045,967,32 +2020-06-06,Wicomico,Maryland,24045,975,32 +2020-06-07,Wicomico,Maryland,24045,977,32 +2020-06-08,Wicomico,Maryland,24045,984,32 +2020-06-09,Wicomico,Maryland,24045,990,33 +2020-06-10,Wicomico,Maryland,24045,992,33 +2020-06-11,Wicomico,Maryland,24045,998,33 +2020-06-12,Wicomico,Maryland,24045,1004,34 +2020-06-13,Wicomico,Maryland,24045,1010,35 +2020-06-14,Wicomico,Maryland,24045,1020,35 +2020-06-15,Wicomico,Maryland,24045,1027,35 +2020-06-16,Wicomico,Maryland,24045,1031,35 +2020-06-17,Wicomico,Maryland,24045,1035,36 +2020-06-18,Wicomico,Maryland,24045,1036,37 +2020-06-19,Wicomico,Maryland,24045,1036,37 +2020-06-20,Wicomico,Maryland,24045,1039,37 +2020-06-21,Wicomico,Maryland,24045,1043,37 +2020-06-22,Wicomico,Maryland,24045,1046,37 +2020-06-23,Wicomico,Maryland,24045,1051,38 +2020-06-24,Wicomico,Maryland,24045,1053,39 +2020-06-25,Wicomico,Maryland,24045,1055,40 +2020-06-26,Wicomico,Maryland,24045,1059,40 +2020-06-27,Wicomico,Maryland,24045,1058,40 +2020-06-28,Wicomico,Maryland,24045,1060,40 +2020-06-29,Wicomico,Maryland,24045,1062,41 +2020-06-30,Wicomico,Maryland,24045,1067,41 +2020-07-01,Wicomico,Maryland,24045,1070,41 +2020-07-02,Wicomico,Maryland,24045,1074,40 +2020-07-03,Wicomico,Maryland,24045,1085,40 +2020-07-04,Wicomico,Maryland,24045,1087,41 +2020-07-05,Wicomico,Maryland,24045,1088,41 +2020-07-06,Wicomico,Maryland,24045,1091,41 +2020-07-07,Wicomico,Maryland,24045,1095,41 +2020-07-08,Wicomico,Maryland,24045,1102,41 +2020-07-09,Wicomico,Maryland,24045,1109,41 +2020-03-20,Worcester,Maryland,24047,1,0 +2020-03-21,Worcester,Maryland,24047,1,0 +2020-03-22,Worcester,Maryland,24047,2,0 +2020-03-23,Worcester,Maryland,24047,2,0 +2020-03-24,Worcester,Maryland,24047,2,0 +2020-03-25,Worcester,Maryland,24047,2,0 +2020-03-26,Worcester,Maryland,24047,2,0 +2020-03-27,Worcester,Maryland,24047,2,0 +2020-03-28,Worcester,Maryland,24047,2,0 +2020-03-29,Worcester,Maryland,24047,2,0 +2020-03-30,Worcester,Maryland,24047,3,0 +2020-03-31,Worcester,Maryland,24047,3,0 +2020-04-01,Worcester,Maryland,24047,4,0 +2020-04-02,Worcester,Maryland,24047,5,0 +2020-04-03,Worcester,Maryland,24047,5,0 +2020-04-04,Worcester,Maryland,24047,7,0 +2020-04-05,Worcester,Maryland,24047,9,0 +2020-04-06,Worcester,Maryland,24047,10,0 +2020-04-07,Worcester,Maryland,24047,10,0 +2020-04-08,Worcester,Maryland,24047,10,0 +2020-04-09,Worcester,Maryland,24047,16,0 +2020-04-10,Worcester,Maryland,24047,16,0 +2020-04-11,Worcester,Maryland,24047,19,0 +2020-04-12,Worcester,Maryland,24047,20,0 +2020-04-13,Worcester,Maryland,24047,21,0 +2020-04-14,Worcester,Maryland,24047,21,0 +2020-04-15,Worcester,Maryland,24047,22,0 +2020-04-16,Worcester,Maryland,24047,25,0 +2020-04-17,Worcester,Maryland,24047,28,0 +2020-04-18,Worcester,Maryland,24047,31,0 +2020-04-19,Worcester,Maryland,24047,33,0 +2020-04-20,Worcester,Maryland,24047,34,0 +2020-04-21,Worcester,Maryland,24047,33,0 +2020-04-22,Worcester,Maryland,24047,34,0 +2020-04-23,Worcester,Maryland,24047,39,0 +2020-04-24,Worcester,Maryland,24047,44,0 +2020-04-25,Worcester,Maryland,24047,46,0 +2020-04-26,Worcester,Maryland,24047,48,0 +2020-04-27,Worcester,Maryland,24047,53,0 +2020-04-28,Worcester,Maryland,24047,54,1 +2020-04-29,Worcester,Maryland,24047,55,2 +2020-04-30,Worcester,Maryland,24047,61,2 +2020-05-01,Worcester,Maryland,24047,66,3 +2020-05-02,Worcester,Maryland,24047,73,3 +2020-05-03,Worcester,Maryland,24047,76,3 +2020-05-04,Worcester,Maryland,24047,81,3 +2020-05-05,Worcester,Maryland,24047,82,3 +2020-05-06,Worcester,Maryland,24047,87,3 +2020-05-07,Worcester,Maryland,24047,97,3 +2020-05-08,Worcester,Maryland,24047,99,3 +2020-05-09,Worcester,Maryland,24047,103,4 +2020-05-10,Worcester,Maryland,24047,107,4 +2020-05-11,Worcester,Maryland,24047,114,4 +2020-05-12,Worcester,Maryland,24047,115,4 +2020-05-13,Worcester,Maryland,24047,126,4 +2020-05-14,Worcester,Maryland,24047,128,5 +2020-05-15,Worcester,Maryland,24047,132,5 +2020-05-16,Worcester,Maryland,24047,137,5 +2020-05-17,Worcester,Maryland,24047,138,6 +2020-05-18,Worcester,Maryland,24047,165,6 +2020-05-19,Worcester,Maryland,24047,165,6 +2020-05-20,Worcester,Maryland,24047,170,8 +2020-05-21,Worcester,Maryland,24047,182,8 +2020-05-22,Worcester,Maryland,24047,181,8 +2020-05-23,Worcester,Maryland,24047,181,8 +2020-05-24,Worcester,Maryland,24047,184,10 +2020-05-25,Worcester,Maryland,24047,186,11 +2020-05-26,Worcester,Maryland,24047,195,11 +2020-05-27,Worcester,Maryland,24047,194,11 +2020-05-28,Worcester,Maryland,24047,199,11 +2020-05-29,Worcester,Maryland,24047,207,13 +2020-05-30,Worcester,Maryland,24047,211,13 +2020-05-31,Worcester,Maryland,24047,215,13 +2020-06-01,Worcester,Maryland,24047,216,13 +2020-06-02,Worcester,Maryland,24047,218,13 +2020-06-03,Worcester,Maryland,24047,220,13 +2020-06-04,Worcester,Maryland,24047,224,14 +2020-06-05,Worcester,Maryland,24047,231,14 +2020-06-06,Worcester,Maryland,24047,233,16 +2020-06-07,Worcester,Maryland,24047,236,16 +2020-06-08,Worcester,Maryland,24047,240,16 +2020-06-09,Worcester,Maryland,24047,242,15 +2020-06-10,Worcester,Maryland,24047,243,15 +2020-06-11,Worcester,Maryland,24047,244,16 +2020-06-12,Worcester,Maryland,24047,247,16 +2020-06-13,Worcester,Maryland,24047,254,16 +2020-06-14,Worcester,Maryland,24047,257,17 +2020-06-15,Worcester,Maryland,24047,259,17 +2020-06-16,Worcester,Maryland,24047,259,17 +2020-06-17,Worcester,Maryland,24047,266,17 +2020-06-18,Worcester,Maryland,24047,268,17 +2020-06-19,Worcester,Maryland,24047,268,17 +2020-06-20,Worcester,Maryland,24047,271,17 +2020-06-21,Worcester,Maryland,24047,272,17 +2020-06-22,Worcester,Maryland,24047,275,17 +2020-06-23,Worcester,Maryland,24047,278,17 +2020-06-24,Worcester,Maryland,24047,279,16 +2020-06-25,Worcester,Maryland,24047,279,16 +2020-06-26,Worcester,Maryland,24047,283,16 +2020-06-27,Worcester,Maryland,24047,283,16 +2020-06-28,Worcester,Maryland,24047,283,16 +2020-06-29,Worcester,Maryland,24047,287,16 +2020-06-30,Worcester,Maryland,24047,287,16 +2020-07-01,Worcester,Maryland,24047,290,17 +2020-07-02,Worcester,Maryland,24047,290,17 +2020-07-03,Worcester,Maryland,24047,292,17 +2020-07-04,Worcester,Maryland,24047,293,17 +2020-07-05,Worcester,Maryland,24047,297,17 +2020-07-06,Worcester,Maryland,24047,298,17 +2020-07-07,Worcester,Maryland,24047,302,17 +2020-07-08,Worcester,Maryland,24047,307,17 +2020-07-09,Worcester,Maryland,24047,310,17 +2020-03-15,Baltimore city,Maryland,24510,1,0 +2020-03-16,Baltimore city,Maryland,24510,1,0 +2020-03-17,Baltimore city,Maryland,24510,3,0 +2020-03-18,Baltimore city,Maryland,24510,7,0 +2020-03-19,Baltimore city,Maryland,24510,7,0 +2020-03-20,Baltimore city,Maryland,24510,11,0 +2020-03-21,Baltimore city,Maryland,24510,15,0 +2020-03-22,Baltimore city,Maryland,24510,24,0 +2020-03-23,Baltimore city,Maryland,24510,31,0 +2020-03-24,Baltimore city,Maryland,24510,41,0 +2020-03-25,Baltimore city,Maryland,24510,53,0 +2020-03-26,Baltimore city,Maryland,24510,72,0 +2020-03-27,Baltimore city,Maryland,24510,103,0 +2020-03-28,Baltimore city,Maryland,24510,112,2 +2020-03-29,Baltimore city,Maryland,24510,129,2 +2020-03-30,Baltimore city,Maryland,24510,152,2 +2020-03-31,Baltimore city,Maryland,24510,187,2 +2020-04-01,Baltimore city,Maryland,24510,187,2 +2020-04-02,Baltimore city,Maryland,24510,265,2 +2020-04-03,Baltimore city,Maryland,24510,313,4 +2020-04-04,Baltimore city,Maryland,24510,343,6 +2020-04-05,Baltimore city,Maryland,24510,394,7 +2020-04-06,Baltimore city,Maryland,24510,435,8 +2020-04-07,Baltimore city,Maryland,24510,459,9 +2020-04-08,Baltimore city,Maryland,24510,571,10 +2020-04-09,Baltimore city,Maryland,24510,638,13 +2020-04-10,Baltimore city,Maryland,24510,689,17 +2020-04-11,Baltimore city,Maryland,24510,756,22 +2020-04-12,Baltimore city,Maryland,24510,812,24 +2020-04-13,Baltimore city,Maryland,24510,873,26 +2020-04-14,Baltimore city,Maryland,24510,962,29 +2020-04-15,Baltimore city,Maryland,24510,1062,27 +2020-04-16,Baltimore city,Maryland,24510,1164,35 +2020-04-17,Baltimore city,Maryland,24510,1277,42 +2020-04-18,Baltimore city,Maryland,24510,1381,43 +2020-04-19,Baltimore city,Maryland,24510,1397,51 +2020-04-20,Baltimore city,Maryland,24510,1516,54 +2020-04-21,Baltimore city,Maryland,24510,1547,59 +2020-04-22,Baltimore city,Maryland,24510,1608,64 +2020-04-23,Baltimore city,Maryland,24510,1678,66 +2020-04-24,Baltimore city,Maryland,24510,1734,71 +2020-04-25,Baltimore city,Maryland,24510,1797,78 +2020-04-26,Baltimore city,Maryland,24510,1872,79 +2020-04-27,Baltimore city,Maryland,24510,1939,88 +2020-04-28,Baltimore city,Maryland,24510,1984,90 +2020-04-29,Baltimore city,Maryland,24510,2021,101 +2020-04-30,Baltimore city,Maryland,24510,2076,112 +2020-05-01,Baltimore city,Maryland,24510,2171,115 +2020-05-02,Baltimore city,Maryland,24510,2246,126 +2020-05-03,Baltimore city,Maryland,24510,2328,129 +2020-05-04,Baltimore city,Maryland,24510,2420,129 +2020-05-05,Baltimore city,Maryland,24510,2618,133 +2020-05-06,Baltimore city,Maryland,24510,2761,140 +2020-05-07,Baltimore city,Maryland,24510,2865,149 +2020-05-08,Baltimore city,Maryland,24510,2950,155 +2020-05-09,Baltimore city,Maryland,24510,3217,163 +2020-05-10,Baltimore city,Maryland,24510,3326,169 +2020-05-11,Baltimore city,Maryland,24510,3362,171 +2020-05-12,Baltimore city,Maryland,24510,3413,178 +2020-05-13,Baltimore city,Maryland,24510,3485,186 +2020-05-14,Baltimore city,Maryland,24510,3514,192 +2020-05-15,Baltimore city,Maryland,24510,3615,192 +2020-05-16,Baltimore city,Maryland,24510,3727,200 +2020-05-17,Baltimore city,Maryland,24510,3806,203 +2020-05-18,Baltimore city,Maryland,24510,3838,208 +2020-05-19,Baltimore city,Maryland,24510,4010,210 +2020-05-20,Baltimore city,Maryland,24510,4159,215 +2020-05-21,Baltimore city,Maryland,24510,4347,218 +2020-05-22,Baltimore city,Maryland,24510,4499,220 +2020-05-23,Baltimore city,Maryland,24510,4682,229 +2020-05-24,Baltimore city,Maryland,24510,4791,231 +2020-05-25,Baltimore city,Maryland,24510,4897,234 +2020-05-26,Baltimore city,Maryland,24510,5006,236 +2020-05-27,Baltimore city,Maryland,24510,5062,236 +2020-05-28,Baltimore city,Maryland,24510,5211,240 +2020-05-29,Baltimore city,Maryland,24510,5434,248 +2020-05-30,Baltimore city,Maryland,24510,5572,254 +2020-05-31,Baltimore city,Maryland,24510,5672,258 +2020-06-01,Baltimore city,Maryland,24510,5612,261 +2020-06-02,Baltimore city,Maryland,24510,5696,263 +2020-06-03,Baltimore city,Maryland,24510,5809,266 +2020-06-04,Baltimore city,Maryland,24510,5914,269 +2020-06-05,Baltimore city,Maryland,24510,6046,272 +2020-06-06,Baltimore city,Maryland,24510,6149,276 +2020-06-07,Baltimore city,Maryland,24510,6237,281 +2020-06-08,Baltimore city,Maryland,24510,6304,282 +2020-06-09,Baltimore city,Maryland,24510,6363,287 +2020-06-10,Baltimore city,Maryland,24510,6436,289 +2020-06-11,Baltimore city,Maryland,24510,6517,292 +2020-06-12,Baltimore city,Maryland,24510,6567,294 +2020-06-13,Baltimore city,Maryland,24510,6641,297 +2020-06-14,Baltimore city,Maryland,24510,6698,301 +2020-06-15,Baltimore city,Maryland,24510,6755,301 +2020-06-16,Baltimore city,Maryland,24510,6790,304 +2020-06-17,Baltimore city,Maryland,24510,6874,307 +2020-06-18,Baltimore city,Maryland,24510,6914,309 +2020-06-19,Baltimore city,Maryland,24510,6947,310 +2020-06-20,Baltimore city,Maryland,24510,7002,313 +2020-06-21,Baltimore city,Maryland,24510,7062,313 +2020-06-22,Baltimore city,Maryland,24510,7104,316 +2020-06-23,Baltimore city,Maryland,24510,7157,319 +2020-06-24,Baltimore city,Maryland,24510,7219,325 +2020-06-25,Baltimore city,Maryland,24510,7267,327 +2020-06-26,Baltimore city,Maryland,24510,7308,330 +2020-06-27,Baltimore city,Maryland,24510,7372,333 +2020-06-28,Baltimore city,Maryland,24510,7425,335 +2020-06-29,Baltimore city,Maryland,24510,7507,335 +2020-06-30,Baltimore city,Maryland,24510,7556,337 +2020-07-01,Baltimore city,Maryland,24510,7615,338 +2020-07-02,Baltimore city,Maryland,24510,7711,340 +2020-07-03,Baltimore city,Maryland,24510,7799,342 +2020-07-04,Baltimore city,Maryland,24510,7867,344 +2020-07-05,Baltimore city,Maryland,24510,7907,344 +2020-07-06,Baltimore city,Maryland,24510,7970,349 +2020-07-07,Baltimore city,Maryland,24510,8011,352 +2020-07-08,Baltimore city,Maryland,24510,8082,355 +2020-07-09,Baltimore city,Maryland,24510,8167,358 +2020-03-14,Barnstable,Massachusetts,25001,1,0 +2020-03-15,Barnstable,Massachusetts,25001,1,0 +2020-03-16,Barnstable,Massachusetts,25001,1,0 +2020-03-17,Barnstable,Massachusetts,25001,2,0 +2020-03-18,Barnstable,Massachusetts,25001,2,0 +2020-03-19,Barnstable,Massachusetts,25001,5,0 +2020-03-20,Barnstable,Massachusetts,25001,9,0 +2020-03-21,Barnstable,Massachusetts,25001,11,0 +2020-03-22,Barnstable,Massachusetts,25001,24,0 +2020-03-23,Barnstable,Massachusetts,25001,30,0 +2020-03-24,Barnstable,Massachusetts,25001,40,0 +2020-03-25,Barnstable,Massachusetts,25001,51,1 +2020-03-26,Barnstable,Massachusetts,25001,67,1 +2020-03-27,Barnstable,Massachusetts,25001,100,2 +2020-03-28,Barnstable,Massachusetts,25001,133,2 +2020-03-29,Barnstable,Massachusetts,25001,148,2 +2020-03-30,Barnstable,Massachusetts,25001,173,2 +2020-03-31,Barnstable,Massachusetts,25001,191,2 +2020-04-01,Barnstable,Massachusetts,25001,255,3 +2020-04-02,Barnstable,Massachusetts,25001,283,3 +2020-04-03,Barnstable,Massachusetts,25001,314,6 +2020-04-04,Barnstable,Massachusetts,25001,330,6 +2020-04-05,Barnstable,Massachusetts,25001,347,6 +2020-04-06,Barnstable,Massachusetts,25001,383,7 +2020-04-07,Barnstable,Massachusetts,25001,405,10 +2020-04-08,Barnstable,Massachusetts,25001,423,11 +2020-04-09,Barnstable,Massachusetts,25001,444,12 +2020-04-10,Barnstable,Massachusetts,25001,464,13 +2020-04-11,Barnstable,Massachusetts,25001,480,15 +2020-04-12,Barnstable,Massachusetts,25001,501,16 +2020-04-13,Barnstable,Massachusetts,25001,502,17 +2020-04-14,Barnstable,Massachusetts,25001,514,17 +2020-04-15,Barnstable,Massachusetts,25001,530,18 +2020-04-16,Barnstable,Massachusetts,25001,550,18 +2020-04-17,Barnstable,Massachusetts,25001,573,20 +2020-04-18,Barnstable,Massachusetts,25001,590,20 +2020-04-19,Barnstable,Massachusetts,25001,632,21 +2020-04-20,Barnstable,Massachusetts,25001,664,21 +2020-04-21,Barnstable,Massachusetts,25001,672,22 +2020-04-22,Barnstable,Massachusetts,25001,678,27 +2020-04-23,Barnstable,Massachusetts,25001,708,28 +2020-04-24,Barnstable,Massachusetts,25001,747,32 +2020-04-25,Barnstable,Massachusetts,25001,756,37 +2020-04-26,Barnstable,Massachusetts,25001,772,37 +2020-04-27,Barnstable,Massachusetts,25001,798,39 +2020-04-28,Barnstable,Massachusetts,25001,820,39 +2020-04-29,Barnstable,Massachusetts,25001,842,40 +2020-04-30,Barnstable,Massachusetts,25001,860,43 +2020-05-01,Barnstable,Massachusetts,25001,902,45 +2020-05-02,Barnstable,Massachusetts,25001,937,46 +2020-05-03,Barnstable,Massachusetts,25001,946,47 +2020-05-04,Barnstable,Massachusetts,25001,961,47 +2020-05-05,Barnstable,Massachusetts,25001,969,48 +2020-05-06,Barnstable,Massachusetts,25001,997,55 +2020-05-07,Barnstable,Massachusetts,25001,1021,57 +2020-05-08,Barnstable,Massachusetts,25001,1038,61 +2020-05-09,Barnstable,Massachusetts,25001,1056,66 +2020-05-10,Barnstable,Massachusetts,25001,1068,68 +2020-05-11,Barnstable,Massachusetts,25001,1075,73 +2020-05-12,Barnstable,Massachusetts,25001,1093,73 +2020-05-13,Barnstable,Massachusetts,25001,1111,79 +2020-05-14,Barnstable,Massachusetts,25001,1119,82 +2020-05-15,Barnstable,Massachusetts,25001,1137,86 +2020-05-16,Barnstable,Massachusetts,25001,1147,90 +2020-05-17,Barnstable,Massachusetts,25001,1150,93 +2020-05-18,Barnstable,Massachusetts,25001,1155,95 +2020-05-19,Barnstable,Massachusetts,25001,1177,96 +2020-05-20,Barnstable,Massachusetts,25001,1197,98 +2020-05-21,Barnstable,Massachusetts,25001,1202,99 +2020-05-22,Barnstable,Massachusetts,25001,1257,103 +2020-05-23,Barnstable,Massachusetts,25001,1264,107 +2020-05-24,Barnstable,Massachusetts,25001,1269,109 +2020-05-25,Barnstable,Massachusetts,25001,1277,110 +2020-05-26,Barnstable,Massachusetts,25001,1280,110 +2020-05-27,Barnstable,Massachusetts,25001,1286,111 +2020-05-28,Barnstable,Massachusetts,25001,1295,115 +2020-05-29,Barnstable,Massachusetts,25001,1303,116 +2020-05-30,Barnstable,Massachusetts,25001,1305,115 +2020-05-31,Barnstable,Massachusetts,25001,1312,116 +2020-06-01,Barnstable,Massachusetts,25001,1424,118 +2020-06-02,Barnstable,Massachusetts,25001,1430,118 +2020-06-03,Barnstable,Massachusetts,25001,1435,121 +2020-06-04,Barnstable,Massachusetts,25001,1443,121 +2020-06-05,Barnstable,Massachusetts,25001,1446,123 +2020-06-06,Barnstable,Massachusetts,25001,1450,123 +2020-06-07,Barnstable,Massachusetts,25001,1456,123 +2020-06-08,Barnstable,Massachusetts,25001,1458,123 +2020-06-09,Barnstable,Massachusetts,25001,1462,123 +2020-06-10,Barnstable,Massachusetts,25001,1467,127 +2020-06-11,Barnstable,Massachusetts,25001,1474,127 +2020-06-12,Barnstable,Massachusetts,25001,1479,127 +2020-06-13,Barnstable,Massachusetts,25001,1486,128 +2020-06-14,Barnstable,Massachusetts,25001,1487,130 +2020-06-15,Barnstable,Massachusetts,25001,1489,130 +2020-06-16,Barnstable,Massachusetts,25001,1494,131 +2020-06-17,Barnstable,Massachusetts,25001,1497,133 +2020-06-18,Barnstable,Massachusetts,25001,1502,135 +2020-06-19,Barnstable,Massachusetts,25001,1508,136 +2020-06-20,Barnstable,Massachusetts,25001,1513,136 +2020-06-21,Barnstable,Massachusetts,25001,1515,137 +2020-06-22,Barnstable,Massachusetts,25001,1517,138 +2020-06-23,Barnstable,Massachusetts,25001,1523,140 +2020-06-24,Barnstable,Massachusetts,25001,1525,140 +2020-06-25,Barnstable,Massachusetts,25001,1525,141 +2020-06-26,Barnstable,Massachusetts,25001,1530,143 +2020-06-27,Barnstable,Massachusetts,25001,1531,143 +2020-06-28,Barnstable,Massachusetts,25001,1532,144 +2020-06-29,Barnstable,Massachusetts,25001,1535,145 +2020-06-30,Barnstable,Massachusetts,25001,1538,144 +2020-07-01,Barnstable,Massachusetts,25001,1542,145 +2020-07-02,Barnstable,Massachusetts,25001,1547,147 +2020-07-03,Barnstable,Massachusetts,25001,1553,148 +2020-07-04,Barnstable,Massachusetts,25001,1553,149 +2020-07-05,Barnstable,Massachusetts,25001,1557,149 +2020-07-06,Barnstable,Massachusetts,25001,1561,150 +2020-07-07,Barnstable,Massachusetts,25001,1561,150 +2020-07-08,Barnstable,Massachusetts,25001,1563,150 +2020-07-09,Barnstable,Massachusetts,25001,1566,150 +2020-03-07,Berkshire,Massachusetts,25003,1,0 +2020-03-08,Berkshire,Massachusetts,25003,1,0 +2020-03-09,Berkshire,Massachusetts,25003,5,0 +2020-03-10,Berkshire,Massachusetts,25003,7,0 +2020-03-11,Berkshire,Massachusetts,25003,9,0 +2020-03-12,Berkshire,Massachusetts,25003,9,0 +2020-03-13,Berkshire,Massachusetts,25003,9,0 +2020-03-14,Berkshire,Massachusetts,25003,9,0 +2020-03-15,Berkshire,Massachusetts,25003,9,0 +2020-03-16,Berkshire,Massachusetts,25003,11,0 +2020-03-17,Berkshire,Massachusetts,25003,14,0 +2020-03-18,Berkshire,Massachusetts,25003,17,0 +2020-03-19,Berkshire,Massachusetts,25003,18,0 +2020-03-20,Berkshire,Massachusetts,25003,20,0 +2020-03-21,Berkshire,Massachusetts,25003,21,0 +2020-03-22,Berkshire,Massachusetts,25003,23,1 +2020-03-23,Berkshire,Massachusetts,25003,26,1 +2020-03-24,Berkshire,Massachusetts,25003,37,2 +2020-03-25,Berkshire,Massachusetts,25003,71,2 +2020-03-26,Berkshire,Massachusetts,25003,73,2 +2020-03-27,Berkshire,Massachusetts,25003,105,4 +2020-03-28,Berkshire,Massachusetts,25003,119,4 +2020-03-29,Berkshire,Massachusetts,25003,151,5 +2020-03-30,Berkshire,Massachusetts,25003,162,5 +2020-03-31,Berkshire,Massachusetts,25003,171,6 +2020-04-01,Berkshire,Massachusetts,25003,183,6 +2020-04-02,Berkshire,Massachusetts,25003,213,7 +2020-04-03,Berkshire,Massachusetts,25003,240,7 +2020-04-04,Berkshire,Massachusetts,25003,253,10 +2020-04-05,Berkshire,Massachusetts,25003,258,13 +2020-04-06,Berkshire,Massachusetts,25003,268,13 +2020-04-07,Berkshire,Massachusetts,25003,278,18 +2020-04-08,Berkshire,Massachusetts,25003,281,20 +2020-04-09,Berkshire,Massachusetts,25003,304,21 +2020-04-10,Berkshire,Massachusetts,25003,329,22 +2020-04-11,Berkshire,Massachusetts,25003,336,22 +2020-04-12,Berkshire,Massachusetts,25003,350,22 +2020-04-13,Berkshire,Massachusetts,25003,355,22 +2020-04-14,Berkshire,Massachusetts,25003,360,23 +2020-04-15,Berkshire,Massachusetts,25003,370,23 +2020-04-16,Berkshire,Massachusetts,25003,382,26 +2020-04-17,Berkshire,Massachusetts,25003,383,26 +2020-04-18,Berkshire,Massachusetts,25003,385,27 +2020-04-19,Berkshire,Massachusetts,25003,387,29 +2020-04-20,Berkshire,Massachusetts,25003,387,28 +2020-04-21,Berkshire,Massachusetts,25003,404,29 +2020-04-22,Berkshire,Massachusetts,25003,404,31 +2020-04-23,Berkshire,Massachusetts,25003,418,31 +2020-04-24,Berkshire,Massachusetts,25003,425,31 +2020-04-25,Berkshire,Massachusetts,25003,425,31 +2020-04-26,Berkshire,Massachusetts,25003,428,31 +2020-04-27,Berkshire,Massachusetts,25003,428,31 +2020-04-28,Berkshire,Massachusetts,25003,430,31 +2020-04-29,Berkshire,Massachusetts,25003,440,34 +2020-04-30,Berkshire,Massachusetts,25003,442,35 +2020-05-01,Berkshire,Massachusetts,25003,444,36 +2020-05-02,Berkshire,Massachusetts,25003,448,36 +2020-05-03,Berkshire,Massachusetts,25003,451,36 +2020-05-04,Berkshire,Massachusetts,25003,453,36 +2020-05-05,Berkshire,Massachusetts,25003,457,36 +2020-05-06,Berkshire,Massachusetts,25003,461,37 +2020-05-07,Berkshire,Massachusetts,25003,464,37 +2020-05-08,Berkshire,Massachusetts,25003,472,37 +2020-05-09,Berkshire,Massachusetts,25003,472,37 +2020-05-10,Berkshire,Massachusetts,25003,475,37 +2020-05-11,Berkshire,Massachusetts,25003,478,37 +2020-05-12,Berkshire,Massachusetts,25003,485,37 +2020-05-13,Berkshire,Massachusetts,25003,486,37 +2020-05-14,Berkshire,Massachusetts,25003,488,37 +2020-05-15,Berkshire,Massachusetts,25003,491,37 +2020-05-16,Berkshire,Massachusetts,25003,495,37 +2020-05-17,Berkshire,Massachusetts,25003,497,37 +2020-05-18,Berkshire,Massachusetts,25003,497,37 +2020-05-19,Berkshire,Massachusetts,25003,497,37 +2020-05-20,Berkshire,Massachusetts,25003,500,37 +2020-05-21,Berkshire,Massachusetts,25003,509,37 +2020-05-22,Berkshire,Massachusetts,25003,510,38 +2020-05-23,Berkshire,Massachusetts,25003,515,38 +2020-05-24,Berkshire,Massachusetts,25003,520,38 +2020-05-25,Berkshire,Massachusetts,25003,523,38 +2020-05-26,Berkshire,Massachusetts,25003,537,39 +2020-05-27,Berkshire,Massachusetts,25003,539,40 +2020-05-28,Berkshire,Massachusetts,25003,539,40 +2020-05-29,Berkshire,Massachusetts,25003,544,40 +2020-05-30,Berkshire,Massachusetts,25003,544,40 +2020-05-31,Berkshire,Massachusetts,25003,544,40 +2020-06-01,Berkshire,Massachusetts,25003,567,40 +2020-06-02,Berkshire,Massachusetts,25003,568,40 +2020-06-03,Berkshire,Massachusetts,25003,566,40 +2020-06-04,Berkshire,Massachusetts,25003,568,40 +2020-06-05,Berkshire,Massachusetts,25003,571,40 +2020-06-06,Berkshire,Massachusetts,25003,573,40 +2020-06-07,Berkshire,Massachusetts,25003,574,40 +2020-06-08,Berkshire,Massachusetts,25003,575,41 +2020-06-09,Berkshire,Massachusetts,25003,575,41 +2020-06-10,Berkshire,Massachusetts,25003,574,41 +2020-06-11,Berkshire,Massachusetts,25003,575,41 +2020-06-12,Berkshire,Massachusetts,25003,575,42 +2020-06-13,Berkshire,Massachusetts,25003,580,42 +2020-06-14,Berkshire,Massachusetts,25003,580,42 +2020-06-15,Berkshire,Massachusetts,25003,579,42 +2020-06-16,Berkshire,Massachusetts,25003,578,42 +2020-06-17,Berkshire,Massachusetts,25003,582,42 +2020-06-18,Berkshire,Massachusetts,25003,584,42 +2020-06-19,Berkshire,Massachusetts,25003,585,44 +2020-06-20,Berkshire,Massachusetts,25003,586,44 +2020-06-21,Berkshire,Massachusetts,25003,590,44 +2020-06-22,Berkshire,Massachusetts,25003,591,44 +2020-06-23,Berkshire,Massachusetts,25003,591,44 +2020-06-24,Berkshire,Massachusetts,25003,591,44 +2020-06-25,Berkshire,Massachusetts,25003,591,44 +2020-06-26,Berkshire,Massachusetts,25003,592,44 +2020-06-27,Berkshire,Massachusetts,25003,594,44 +2020-06-28,Berkshire,Massachusetts,25003,594,44 +2020-06-29,Berkshire,Massachusetts,25003,594,44 +2020-06-30,Berkshire,Massachusetts,25003,594,44 +2020-07-01,Berkshire,Massachusetts,25003,597,44 +2020-07-02,Berkshire,Massachusetts,25003,600,44 +2020-07-03,Berkshire,Massachusetts,25003,602,45 +2020-07-04,Berkshire,Massachusetts,25003,602,45 +2020-07-05,Berkshire,Massachusetts,25003,602,45 +2020-07-06,Berkshire,Massachusetts,25003,604,45 +2020-07-07,Berkshire,Massachusetts,25003,604,45 +2020-07-08,Berkshire,Massachusetts,25003,604,45 +2020-07-09,Berkshire,Massachusetts,25003,609,45 +2020-03-14,Bristol,Massachusetts,25005,1,0 +2020-03-15,Bristol,Massachusetts,25005,1,0 +2020-03-16,Bristol,Massachusetts,25005,2,0 +2020-03-17,Bristol,Massachusetts,25005,5,0 +2020-03-18,Bristol,Massachusetts,25005,5,0 +2020-03-19,Bristol,Massachusetts,25005,6,0 +2020-03-20,Bristol,Massachusetts,25005,6,0 +2020-03-21,Bristol,Massachusetts,25005,14,0 +2020-03-22,Bristol,Massachusetts,25005,24,0 +2020-03-23,Bristol,Massachusetts,25005,25,0 +2020-03-24,Bristol,Massachusetts,25005,31,0 +2020-03-25,Bristol,Massachusetts,25005,67,0 +2020-03-26,Bristol,Massachusetts,25005,90,0 +2020-03-27,Bristol,Massachusetts,25005,129,1 +2020-03-28,Bristol,Massachusetts,25005,179,1 +2020-03-29,Bristol,Massachusetts,25005,208,1 +2020-03-30,Bristol,Massachusetts,25005,263,2 +2020-03-31,Bristol,Massachusetts,25005,306,2 +2020-04-01,Bristol,Massachusetts,25005,366,3 +2020-04-02,Bristol,Massachusetts,25005,424,3 +2020-04-03,Bristol,Massachusetts,25005,517,4 +2020-04-04,Bristol,Massachusetts,25005,601,5 +2020-04-05,Bristol,Massachusetts,25005,659,8 +2020-04-06,Bristol,Massachusetts,25005,722,8 +2020-04-07,Bristol,Massachusetts,25005,768,16 +2020-04-08,Bristol,Massachusetts,25005,835,23 +2020-04-09,Bristol,Massachusetts,25005,994,28 +2020-04-10,Bristol,Massachusetts,25005,1086,33 +2020-04-11,Bristol,Massachusetts,25005,1191,39 +2020-04-12,Bristol,Massachusetts,25005,1327,43 +2020-04-13,Bristol,Massachusetts,25005,1394,46 +2020-04-14,Bristol,Massachusetts,25005,1435,53 +2020-04-15,Bristol,Massachusetts,25005,1508,56 +2020-04-16,Bristol,Massachusetts,25005,1605,63 +2020-04-17,Bristol,Massachusetts,25005,1659,75 +2020-04-18,Bristol,Massachusetts,25005,1698,83 +2020-04-19,Bristol,Massachusetts,25005,1731,87 +2020-04-20,Bristol,Massachusetts,25005,1779,88 +2020-04-21,Bristol,Massachusetts,25005,1852,96 +2020-04-22,Bristol,Massachusetts,25005,1908,104 +2020-04-23,Bristol,Massachusetts,25005,2181,109 +2020-04-24,Bristol,Massachusetts,25005,2697,126 +2020-04-25,Bristol,Massachusetts,25005,2829,130 +2020-04-26,Bristol,Massachusetts,25005,2923,134 +2020-04-27,Bristol,Massachusetts,25005,3068,137 +2020-04-28,Bristol,Massachusetts,25005,3270,155 +2020-04-29,Bristol,Massachusetts,25005,3429,165 +2020-04-30,Bristol,Massachusetts,25005,3580,172 +2020-05-01,Bristol,Massachusetts,25005,3792,182 +2020-05-02,Bristol,Massachusetts,25005,3916,187 +2020-05-03,Bristol,Massachusetts,25005,4019,198 +2020-05-04,Bristol,Massachusetts,25005,4103,205 +2020-05-05,Bristol,Massachusetts,25005,4235,210 +2020-05-06,Bristol,Massachusetts,25005,4380,223 +2020-05-07,Bristol,Massachusetts,25005,4529,232 +2020-05-08,Bristol,Massachusetts,25005,4670,252 +2020-05-09,Bristol,Massachusetts,25005,4847,260 +2020-05-10,Bristol,Massachusetts,25005,4931,266 +2020-05-11,Bristol,Massachusetts,25005,4999,274 +2020-05-12,Bristol,Massachusetts,25005,5125,278 +2020-05-13,Bristol,Massachusetts,25005,5249,288 +2020-05-14,Bristol,Massachusetts,25005,5440,297 +2020-05-15,Bristol,Massachusetts,25005,5590,303 +2020-05-16,Bristol,Massachusetts,25005,5748,313 +2020-05-17,Bristol,Massachusetts,25005,5870,320 +2020-05-18,Bristol,Massachusetts,25005,5996,324 +2020-05-19,Bristol,Massachusetts,25005,6080,330 +2020-05-20,Bristol,Massachusetts,25005,6165,338 +2020-05-21,Bristol,Massachusetts,25005,6286,345 +2020-05-22,Bristol,Massachusetts,25005,6362,353 +2020-05-23,Bristol,Massachusetts,25005,6426,362 +2020-05-24,Bristol,Massachusetts,25005,6596,369 +2020-05-25,Bristol,Massachusetts,25005,6681,375 +2020-05-26,Bristol,Massachusetts,25005,6733,382 +2020-05-27,Bristol,Massachusetts,25005,6779,390 +2020-05-28,Bristol,Massachusetts,25005,6852,399 +2020-05-29,Bristol,Massachusetts,25005,6930,404 +2020-05-30,Bristol,Massachusetts,25005,7089,410 +2020-05-31,Bristol,Massachusetts,25005,7159,415 +2020-06-01,Bristol,Massachusetts,25005,7348,429 +2020-06-02,Bristol,Massachusetts,25005,7380,435 +2020-06-03,Bristol,Massachusetts,25005,7453,441 +2020-06-04,Bristol,Massachusetts,25005,7508,452 +2020-06-05,Bristol,Massachusetts,25005,7573,455 +2020-06-06,Bristol,Massachusetts,25005,7635,467 +2020-06-07,Bristol,Massachusetts,25005,7683,469 +2020-06-08,Bristol,Massachusetts,25005,7698,473 +2020-06-09,Bristol,Massachusetts,25005,7728,481 +2020-06-10,Bristol,Massachusetts,25005,7754,487 +2020-06-11,Bristol,Massachusetts,25005,7793,492 +2020-06-12,Bristol,Massachusetts,25005,7872,496 +2020-06-13,Bristol,Massachusetts,25005,7906,507 +2020-06-14,Bristol,Massachusetts,25005,7933,516 +2020-06-15,Bristol,Massachusetts,25005,7925,518 +2020-06-16,Bristol,Massachusetts,25005,7940,520 +2020-06-17,Bristol,Massachusetts,25005,7956,528 +2020-06-18,Bristol,Massachusetts,25005,7979,534 +2020-06-19,Bristol,Massachusetts,25005,8002,537 +2020-06-20,Bristol,Massachusetts,25005,8028,539 +2020-06-21,Bristol,Massachusetts,25005,8035,542 +2020-06-22,Bristol,Massachusetts,25005,8057,546 +2020-06-23,Bristol,Massachusetts,25005,8081,548 +2020-06-24,Bristol,Massachusetts,25005,8086,555 +2020-06-25,Bristol,Massachusetts,25005,8107,558 +2020-06-26,Bristol,Massachusetts,25005,8142,565 +2020-06-27,Bristol,Massachusetts,25005,8176,567 +2020-06-28,Bristol,Massachusetts,25005,8198,568 +2020-06-29,Bristol,Massachusetts,25005,8208,575 +2020-06-30,Bristol,Massachusetts,25005,8225,574 +2020-07-01,Bristol,Massachusetts,25005,8236,575 +2020-07-02,Bristol,Massachusetts,25005,8264,587 +2020-07-03,Bristol,Massachusetts,25005,8295,587 +2020-07-04,Bristol,Massachusetts,25005,8311,590 +2020-07-05,Bristol,Massachusetts,25005,8321,590 +2020-07-06,Bristol,Massachusetts,25005,8331,592 +2020-07-07,Bristol,Massachusetts,25005,8348,592 +2020-07-08,Bristol,Massachusetts,25005,8365,592 +2020-07-09,Bristol,Massachusetts,25005,8399,594 +2020-03-25,Dukes,Massachusetts,25007,1,0 +2020-03-26,Dukes,Massachusetts,25007,1,0 +2020-03-27,Dukes,Massachusetts,25007,1,0 +2020-03-28,Dukes,Massachusetts,25007,1,0 +2020-03-29,Dukes,Massachusetts,25007,1,0 +2020-03-30,Dukes,Massachusetts,25007,1,0 +2020-03-31,Dukes,Massachusetts,25007,1,0 +2020-04-01,Dukes,Massachusetts,25007,1,0 +2020-04-02,Dukes,Massachusetts,25007,5,0 +2020-04-03,Dukes,Massachusetts,25007,7,0 +2020-04-04,Dukes,Massachusetts,25007,7,0 +2020-04-05,Dukes,Massachusetts,25007,8,0 +2020-04-06,Dukes,Massachusetts,25007,8,0 +2020-04-07,Dukes,Massachusetts,25007,9,0 +2020-04-08,Dukes,Massachusetts,25007,8,0 +2020-04-09,Dukes,Massachusetts,25007,9,0 +2020-04-10,Dukes,Massachusetts,25007,12,0 +2020-04-11,Dukes,Massachusetts,25007,12,0 +2020-04-12,Dukes,Massachusetts,25007,12,0 +2020-04-13,Dukes,Massachusetts,25007,12,0 +2020-04-14,Dukes,Massachusetts,25007,11,0 +2020-04-15,Dukes,Massachusetts,25007,11,0 +2020-04-16,Dukes,Massachusetts,25007,12,0 +2020-04-17,Dukes,Massachusetts,25007,12,0 +2020-04-18,Dukes,Massachusetts,25007,14,0 +2020-04-19,Dukes,Massachusetts,25007,14,0 +2020-04-20,Dukes,Massachusetts,25007,14,0 +2020-04-21,Dukes,Massachusetts,25007,14,1 +2020-04-22,Dukes,Massachusetts,25007,14,1 +2020-04-23,Dukes,Massachusetts,25007,14,1 +2020-04-24,Dukes,Massachusetts,25007,15,1 +2020-04-25,Dukes,Massachusetts,25007,15,1 +2020-04-26,Dukes,Massachusetts,25007,15,1 +2020-04-27,Dukes,Massachusetts,25007,15,1 +2020-04-28,Dukes,Massachusetts,25007,15,1 +2020-04-29,Dukes,Massachusetts,25007,16,1 +2020-04-30,Dukes,Massachusetts,25007,17,1 +2020-05-01,Dukes,Massachusetts,25007,18,1 +2020-05-02,Dukes,Massachusetts,25007,18,1 +2020-05-03,Dukes,Massachusetts,25007,21,1 +2020-05-04,Dukes,Massachusetts,25007,21,1 +2020-05-05,Dukes,Massachusetts,25007,21,1 +2020-05-06,Dukes,Massachusetts,25007,22,1 +2020-05-07,Dukes,Massachusetts,25007,22,1 +2020-05-08,Dukes,Massachusetts,25007,22,1 +2020-05-09,Dukes,Massachusetts,25007,23,1 +2020-05-10,Dukes,Massachusetts,25007,23,1 +2020-05-11,Dukes,Massachusetts,25007,23,1 +2020-05-12,Dukes,Massachusetts,25007,23,1 +2020-05-13,Dukes,Massachusetts,25007,23,1 +2020-05-14,Dukes,Massachusetts,25007,24,1 +2020-05-15,Dukes,Massachusetts,25007,24,2 +2020-05-16,Dukes,Massachusetts,25007,25,1 +2020-05-17,Dukes,Massachusetts,25007,26,1 +2020-05-18,Dukes,Massachusetts,25007,26,1 +2020-05-19,Dukes,Massachusetts,25007,26,1 +2020-05-20,Dukes,Massachusetts,25007,26,1 +2020-05-21,Dukes,Massachusetts,25007,26,1 +2020-05-22,Dukes,Massachusetts,25007,26,1 +2020-05-23,Dukes,Massachusetts,25007,26,1 +2020-05-24,Dukes,Massachusetts,25007,26,1 +2020-05-25,Dukes,Massachusetts,25007,26,1 +2020-05-26,Dukes,Massachusetts,25007,26,1 +2020-05-27,Dukes,Massachusetts,25007,26,1 +2020-05-28,Dukes,Massachusetts,25007,26,1 +2020-05-29,Dukes,Massachusetts,25007,26,1 +2020-05-30,Dukes,Massachusetts,25007,26,1 +2020-05-31,Dukes,Massachusetts,25007,27,1 +2020-06-01,Dukes,Massachusetts,25007,40,1 +2020-06-02,Dukes,Massachusetts,25007,41,1 +2020-06-03,Dukes,Massachusetts,25007,41,1 +2020-06-04,Dukes,Massachusetts,25007,41,1 +2020-06-05,Dukes,Massachusetts,25007,42,1 +2020-06-06,Dukes,Massachusetts,25007,42,1 +2020-06-07,Dukes,Massachusetts,25007,42,1 +2020-06-08,Dukes,Massachusetts,25007,42,1 +2020-06-09,Dukes,Massachusetts,25007,43,1 +2020-06-10,Dukes,Massachusetts,25007,42,1 +2020-06-11,Dukes,Massachusetts,25007,42,1 +2020-06-12,Dukes,Massachusetts,25007,42,1 +2020-06-13,Dukes,Massachusetts,25007,42,1 +2020-06-14,Dukes,Massachusetts,25007,42,1 +2020-06-15,Dukes,Massachusetts,25007,42,0 +2020-06-16,Dukes,Massachusetts,25007,43,0 +2020-06-17,Dukes,Massachusetts,25007,44,0 +2020-06-18,Dukes,Massachusetts,25007,44,0 +2020-06-19,Dukes,Massachusetts,25007,44,0 +2020-06-20,Dukes,Massachusetts,25007,44,0 +2020-06-21,Dukes,Massachusetts,25007,44,0 +2020-06-22,Dukes,Massachusetts,25007,45,0 +2020-06-23,Dukes,Massachusetts,25007,45,0 +2020-06-24,Dukes,Massachusetts,25007,45,0 +2020-06-25,Dukes,Massachusetts,25007,45,0 +2020-06-26,Dukes,Massachusetts,25007,46,0 +2020-06-27,Dukes,Massachusetts,25007,48,0 +2020-06-28,Dukes,Massachusetts,25007,48,0 +2020-06-29,Dukes,Massachusetts,25007,49,0 +2020-06-30,Dukes,Massachusetts,25007,49,0 +2020-07-01,Dukes,Massachusetts,25007,50,0 +2020-07-02,Dukes,Massachusetts,25007,49,0 +2020-07-03,Dukes,Massachusetts,25007,50,0 +2020-07-04,Dukes,Massachusetts,25007,50,0 +2020-07-05,Dukes,Massachusetts,25007,51,0 +2020-07-06,Dukes,Massachusetts,25007,51,0 +2020-07-07,Dukes,Massachusetts,25007,51,0 +2020-07-08,Dukes,Massachusetts,25007,53,0 +2020-07-09,Dukes,Massachusetts,25007,55,0 +2020-03-10,Essex,Massachusetts,25009,1,0 +2020-03-11,Essex,Massachusetts,25009,1,0 +2020-03-12,Essex,Massachusetts,25009,2,0 +2020-03-13,Essex,Massachusetts,25009,2,0 +2020-03-14,Essex,Massachusetts,25009,5,0 +2020-03-15,Essex,Massachusetts,25009,6,0 +2020-03-16,Essex,Massachusetts,25009,7,0 +2020-03-17,Essex,Massachusetts,25009,8,0 +2020-03-18,Essex,Massachusetts,25009,14,0 +2020-03-19,Essex,Massachusetts,25009,19,0 +2020-03-20,Essex,Massachusetts,25009,29,0 +2020-03-21,Essex,Massachusetts,25009,41,0 +2020-03-22,Essex,Massachusetts,25009,60,0 +2020-03-23,Essex,Massachusetts,25009,73,1 +2020-03-24,Essex,Massachusetts,25009,118,1 +2020-03-25,Essex,Massachusetts,25009,177,1 +2020-03-26,Essex,Massachusetts,25009,247,3 +2020-03-27,Essex,Massachusetts,25009,350,3 +2020-03-28,Essex,Massachusetts,25009,472,4 +2020-03-29,Essex,Massachusetts,25009,570,5 +2020-03-30,Essex,Massachusetts,25009,653,7 +2020-03-31,Essex,Massachusetts,25009,784,13 +2020-04-01,Essex,Massachusetts,25009,885,18 +2020-04-02,Essex,Massachusetts,25009,1039,19 +2020-04-03,Essex,Massachusetts,25009,1238,24 +2020-04-04,Essex,Massachusetts,25009,1400,26 +2020-04-05,Essex,Massachusetts,25009,1506,28 +2020-04-06,Essex,Massachusetts,25009,1653,31 +2020-04-07,Essex,Massachusetts,25009,1841,37 +2020-04-08,Essex,Massachusetts,25009,2103,52 +2020-04-09,Essex,Massachusetts,25009,2336,61 +2020-04-10,Essex,Massachusetts,25009,2670,80 +2020-04-11,Essex,Massachusetts,25009,2896,92 +2020-04-12,Essex,Massachusetts,25009,3170,102 +2020-04-13,Essex,Massachusetts,25009,3413,114 +2020-04-14,Essex,Massachusetts,25009,3594,126 +2020-04-15,Essex,Massachusetts,25009,3894,141 +2020-04-16,Essex,Massachusetts,25009,4245,160 +2020-04-17,Essex,Massachusetts,25009,4584,179 +2020-04-18,Essex,Massachusetts,25009,4914,194 +2020-04-19,Essex,Massachusetts,25009,5153,210 +2020-04-20,Essex,Massachusetts,25009,5296,225 +2020-04-21,Essex,Massachusetts,25009,5521,245 +2020-04-22,Essex,Massachusetts,25009,5783,271 +2020-04-23,Essex,Massachusetts,25009,6219,292 +2020-04-24,Essex,Massachusetts,25009,6841,319 +2020-04-25,Essex,Massachusetts,25009,7212,336 +2020-04-26,Essex,Massachusetts,25009,7489,350 +2020-04-27,Essex,Massachusetts,25009,7708,359 +2020-04-28,Essex,Massachusetts,25009,7972,383 +2020-04-29,Essex,Massachusetts,25009,8380,425 +2020-04-30,Essex,Massachusetts,25009,8673,448 +2020-05-01,Essex,Massachusetts,25009,9028,460 +2020-05-02,Essex,Massachusetts,25009,9362,484 +2020-05-03,Essex,Massachusetts,25009,9542,499 +2020-05-04,Essex,Massachusetts,25009,9773,512 +2020-05-05,Essex,Massachusetts,25009,9979,527 +2020-05-06,Essex,Massachusetts,25009,10344,561 +2020-05-07,Essex,Massachusetts,25009,10610,578 +2020-05-08,Essex,Massachusetts,25009,10995,601 +2020-05-09,Essex,Massachusetts,25009,11211,625 +2020-05-10,Essex,Massachusetts,25009,11353,644 +2020-05-11,Essex,Massachusetts,25009,11432,669 +2020-05-12,Essex,Massachusetts,25009,11572,678 +2020-05-13,Essex,Massachusetts,25009,11703,704 +2020-05-14,Essex,Massachusetts,25009,11950,725 +2020-05-15,Essex,Massachusetts,25009,12131,751 +2020-05-16,Essex,Massachusetts,25009,12314,766 +2020-05-17,Essex,Massachusetts,25009,12462,776 +2020-05-18,Essex,Massachusetts,25009,12587,790 +2020-05-19,Essex,Massachusetts,25009,12748,797 +2020-05-20,Essex,Massachusetts,25009,12920,817 +2020-05-21,Essex,Massachusetts,25009,13063,831 +2020-05-22,Essex,Massachusetts,25009,13221,842 +2020-05-23,Essex,Massachusetts,25009,13334,848 +2020-05-24,Essex,Massachusetts,25009,13457,859 +2020-05-25,Essex,Massachusetts,25009,13575,863 +2020-05-26,Essex,Massachusetts,25009,13670,870 +2020-05-27,Essex,Massachusetts,25009,13778,878 +2020-05-28,Essex,Massachusetts,25009,13899,895 +2020-05-29,Essex,Massachusetts,25009,13994,906 +2020-05-30,Essex,Massachusetts,25009,14099,909 +2020-05-31,Essex,Massachusetts,25009,14225,925 +2020-06-01,Essex,Massachusetts,25009,14721,968 +2020-06-02,Essex,Massachusetts,25009,14795,971 +2020-06-03,Essex,Massachusetts,25009,14857,979 +2020-06-04,Essex,Massachusetts,25009,14969,986 +2020-06-05,Essex,Massachusetts,25009,15064,990 +2020-06-06,Essex,Massachusetts,25009,15170,998 +2020-06-07,Essex,Massachusetts,25009,15217,1003 +2020-06-08,Essex,Massachusetts,25009,15236,1006 +2020-06-09,Essex,Massachusetts,25009,15271,1016 +2020-06-10,Essex,Massachusetts,25009,15365,1024 +2020-06-11,Essex,Massachusetts,25009,15465,1031 +2020-06-12,Essex,Massachusetts,25009,15518,1035 +2020-06-13,Essex,Massachusetts,25009,15573,1041 +2020-06-14,Essex,Massachusetts,25009,15604,1046 +2020-06-15,Essex,Massachusetts,25009,15627,1051 +2020-06-16,Essex,Massachusetts,25009,15667,1052 +2020-06-17,Essex,Massachusetts,25009,15703,1057 +2020-06-18,Essex,Massachusetts,25009,15739,1063 +2020-06-19,Essex,Massachusetts,25009,15778,1065 +2020-06-20,Essex,Massachusetts,25009,15817,1071 +2020-06-21,Essex,Massachusetts,25009,15829,1076 +2020-06-22,Essex,Massachusetts,25009,15851,1077 +2020-06-23,Essex,Massachusetts,25009,15885,1081 +2020-06-24,Essex,Massachusetts,25009,15920,1083 +2020-06-25,Essex,Massachusetts,25009,15952,1086 +2020-06-26,Essex,Massachusetts,25009,15975,1092 +2020-06-27,Essex,Massachusetts,25009,16028,1096 +2020-06-28,Essex,Massachusetts,25009,16053,1099 +2020-06-29,Essex,Massachusetts,25009,16069,1106 +2020-06-30,Essex,Massachusetts,25009,16088,1104 +2020-07-01,Essex,Massachusetts,25009,16122,1104 +2020-07-02,Essex,Massachusetts,25009,16176,1111 +2020-07-03,Essex,Massachusetts,25009,16210,1116 +2020-07-04,Essex,Massachusetts,25009,16235,1119 +2020-07-05,Essex,Massachusetts,25009,16254,1119 +2020-07-06,Essex,Massachusetts,25009,16283,1122 +2020-07-07,Essex,Massachusetts,25009,16318,1126 +2020-07-08,Essex,Massachusetts,25009,16342,1131 +2020-07-09,Essex,Massachusetts,25009,16379,1133 +2020-03-18,Franklin,Massachusetts,25011,1,0 +2020-03-19,Franklin,Massachusetts,25011,1,0 +2020-03-20,Franklin,Massachusetts,25011,1,0 +2020-03-21,Franklin,Massachusetts,25011,2,0 +2020-03-22,Franklin,Massachusetts,25011,2,0 +2020-03-23,Franklin,Massachusetts,25011,2,0 +2020-03-24,Franklin,Massachusetts,25011,5,0 +2020-03-25,Franklin,Massachusetts,25011,14,0 +2020-03-26,Franklin,Massachusetts,25011,16,1 +2020-03-27,Franklin,Massachusetts,25011,24,2 +2020-03-28,Franklin,Massachusetts,25011,39,2 +2020-03-29,Franklin,Massachusetts,25011,41,2 +2020-03-30,Franklin,Massachusetts,25011,49,2 +2020-03-31,Franklin,Massachusetts,25011,61,4 +2020-04-01,Franklin,Massachusetts,25011,72,7 +2020-04-02,Franklin,Massachusetts,25011,85,8 +2020-04-03,Franklin,Massachusetts,25011,89,11 +2020-04-04,Franklin,Massachusetts,25011,95,12 +2020-04-05,Franklin,Massachusetts,25011,100,12 +2020-04-06,Franklin,Massachusetts,25011,107,13 +2020-04-07,Franklin,Massachusetts,25011,118,17 +2020-04-08,Franklin,Massachusetts,25011,117,21 +2020-04-09,Franklin,Massachusetts,25011,128,22 +2020-04-10,Franklin,Massachusetts,25011,135,22 +2020-04-11,Franklin,Massachusetts,25011,138,23 +2020-04-12,Franklin,Massachusetts,25011,143,25 +2020-04-13,Franklin,Massachusetts,25011,148,25 +2020-04-14,Franklin,Massachusetts,25011,155,25 +2020-04-15,Franklin,Massachusetts,25011,160,25 +2020-04-16,Franklin,Massachusetts,25011,170,25 +2020-04-17,Franklin,Massachusetts,25011,173,25 +2020-04-18,Franklin,Massachusetts,25011,177,25 +2020-04-19,Franklin,Massachusetts,25011,181,26 +2020-04-20,Franklin,Massachusetts,25011,187,26 +2020-04-21,Franklin,Massachusetts,25011,192,29 +2020-04-22,Franklin,Massachusetts,25011,196,30 +2020-04-23,Franklin,Massachusetts,25011,203,30 +2020-04-24,Franklin,Massachusetts,25011,217,31 +2020-04-25,Franklin,Massachusetts,25011,225,32 +2020-04-26,Franklin,Massachusetts,25011,226,33 +2020-04-27,Franklin,Massachusetts,25011,231,33 +2020-04-28,Franklin,Massachusetts,25011,237,33 +2020-04-29,Franklin,Massachusetts,25011,252,35 +2020-04-30,Franklin,Massachusetts,25011,257,37 +2020-05-01,Franklin,Massachusetts,25011,260,37 +2020-05-02,Franklin,Massachusetts,25011,263,37 +2020-05-03,Franklin,Massachusetts,25011,269,37 +2020-05-04,Franklin,Massachusetts,25011,273,37 +2020-05-05,Franklin,Massachusetts,25011,275,37 +2020-05-06,Franklin,Massachusetts,25011,278,38 +2020-05-07,Franklin,Massachusetts,25011,285,39 +2020-05-08,Franklin,Massachusetts,25011,289,41 +2020-05-09,Franklin,Massachusetts,25011,294,42 +2020-05-10,Franklin,Massachusetts,25011,294,42 +2020-05-11,Franklin,Massachusetts,25011,296,42 +2020-05-12,Franklin,Massachusetts,25011,297,42 +2020-05-13,Franklin,Massachusetts,25011,302,43 +2020-05-14,Franklin,Massachusetts,25011,302,43 +2020-05-15,Franklin,Massachusetts,25011,304,43 +2020-05-16,Franklin,Massachusetts,25011,304,44 +2020-05-17,Franklin,Massachusetts,25011,308,44 +2020-05-18,Franklin,Massachusetts,25011,308,45 +2020-05-19,Franklin,Massachusetts,25011,308,45 +2020-05-20,Franklin,Massachusetts,25011,309,46 +2020-05-21,Franklin,Massachusetts,25011,310,46 +2020-05-22,Franklin,Massachusetts,25011,310,46 +2020-05-23,Franklin,Massachusetts,25011,312,46 +2020-05-24,Franklin,Massachusetts,25011,313,47 +2020-05-25,Franklin,Massachusetts,25011,314,47 +2020-05-26,Franklin,Massachusetts,25011,315,47 +2020-05-27,Franklin,Massachusetts,25011,317,47 +2020-05-28,Franklin,Massachusetts,25011,319,47 +2020-05-29,Franklin,Massachusetts,25011,319,47 +2020-05-30,Franklin,Massachusetts,25011,319,47 +2020-05-31,Franklin,Massachusetts,25011,319,47 +2020-06-01,Franklin,Massachusetts,25011,335,47 +2020-06-02,Franklin,Massachusetts,25011,335,47 +2020-06-03,Franklin,Massachusetts,25011,335,47 +2020-06-04,Franklin,Massachusetts,25011,337,47 +2020-06-05,Franklin,Massachusetts,25011,337,48 +2020-06-06,Franklin,Massachusetts,25011,338,48 +2020-06-07,Franklin,Massachusetts,25011,338,48 +2020-06-08,Franklin,Massachusetts,25011,338,49 +2020-06-09,Franklin,Massachusetts,25011,341,49 +2020-06-10,Franklin,Massachusetts,25011,344,49 +2020-06-11,Franklin,Massachusetts,25011,348,49 +2020-06-12,Franklin,Massachusetts,25011,348,50 +2020-06-13,Franklin,Massachusetts,25011,353,50 +2020-06-14,Franklin,Massachusetts,25011,353,51 +2020-06-15,Franklin,Massachusetts,25011,353,51 +2020-06-16,Franklin,Massachusetts,25011,353,51 +2020-06-17,Franklin,Massachusetts,25011,354,52 +2020-06-18,Franklin,Massachusetts,25011,356,52 +2020-06-19,Franklin,Massachusetts,25011,357,52 +2020-06-20,Franklin,Massachusetts,25011,358,53 +2020-06-21,Franklin,Massachusetts,25011,358,53 +2020-06-22,Franklin,Massachusetts,25011,358,53 +2020-06-23,Franklin,Massachusetts,25011,359,53 +2020-06-24,Franklin,Massachusetts,25011,359,53 +2020-06-25,Franklin,Massachusetts,25011,362,54 +2020-06-26,Franklin,Massachusetts,25011,364,54 +2020-06-27,Franklin,Massachusetts,25011,366,54 +2020-06-28,Franklin,Massachusetts,25011,366,54 +2020-06-29,Franklin,Massachusetts,25011,366,54 +2020-06-30,Franklin,Massachusetts,25011,366,54 +2020-07-01,Franklin,Massachusetts,25011,370,55 +2020-07-02,Franklin,Massachusetts,25011,372,55 +2020-07-03,Franklin,Massachusetts,25011,372,55 +2020-07-04,Franklin,Massachusetts,25011,373,55 +2020-07-05,Franklin,Massachusetts,25011,373,55 +2020-07-06,Franklin,Massachusetts,25011,373,55 +2020-07-07,Franklin,Massachusetts,25011,373,55 +2020-07-08,Franklin,Massachusetts,25011,376,55 +2020-07-09,Franklin,Massachusetts,25011,381,56 +2020-03-15,Hampden,Massachusetts,25013,1,0 +2020-03-16,Hampden,Massachusetts,25013,1,0 +2020-03-17,Hampden,Massachusetts,25013,1,0 +2020-03-18,Hampden,Massachusetts,25013,2,0 +2020-03-19,Hampden,Massachusetts,25013,3,0 +2020-03-20,Hampden,Massachusetts,25013,3,0 +2020-03-21,Hampden,Massachusetts,25013,9,0 +2020-03-22,Hampden,Massachusetts,25013,12,1 +2020-03-23,Hampden,Massachusetts,25013,15,1 +2020-03-24,Hampden,Massachusetts,25013,24,1 +2020-03-25,Hampden,Massachusetts,25013,45,1 +2020-03-26,Hampden,Massachusetts,25013,55,2 +2020-03-27,Hampden,Massachusetts,25013,90,2 +2020-03-28,Hampden,Massachusetts,25013,183,5 +2020-03-29,Hampden,Massachusetts,25013,201,5 +2020-03-30,Hampden,Massachusetts,25013,255,5 +2020-03-31,Hampden,Massachusetts,25013,354,12 +2020-04-01,Hampden,Massachusetts,25013,475,17 +2020-04-02,Hampden,Massachusetts,25013,546,20 +2020-04-03,Hampden,Massachusetts,25013,661,28 +2020-04-04,Hampden,Massachusetts,25013,733,35 +2020-04-05,Hampden,Massachusetts,25013,768,35 +2020-04-06,Hampden,Massachusetts,25013,889,39 +2020-04-07,Hampden,Massachusetts,25013,997,56 +2020-04-08,Hampden,Massachusetts,25013,1081,64 +2020-04-09,Hampden,Massachusetts,25013,1276,81 +2020-04-10,Hampden,Massachusetts,25013,1394,88 +2020-04-11,Hampden,Massachusetts,25013,1545,94 +2020-04-12,Hampden,Massachusetts,25013,1647,104 +2020-04-13,Hampden,Massachusetts,25013,1694,115 +2020-04-14,Hampden,Massachusetts,25013,1798,134 +2020-04-15,Hampden,Massachusetts,25013,1885,153 +2020-04-16,Hampden,Massachusetts,25013,1985,163 +2020-04-17,Hampden,Massachusetts,25013,2134,183 +2020-04-18,Hampden,Massachusetts,25013,2254,202 +2020-04-19,Hampden,Massachusetts,25013,2337,213 +2020-04-20,Hampden,Massachusetts,25013,2438,224 +2020-04-21,Hampden,Massachusetts,25013,2533,244 +2020-04-22,Hampden,Massachusetts,25013,2678,271 +2020-04-23,Hampden,Massachusetts,25013,2836,287 +2020-04-24,Hampden,Massachusetts,25013,3060,299 +2020-04-25,Hampden,Massachusetts,25013,3229,315 +2020-04-26,Hampden,Massachusetts,25013,3295,327 +2020-04-27,Hampden,Massachusetts,25013,3381,337 +2020-04-28,Hampden,Massachusetts,25013,3546,346 +2020-04-29,Hampden,Massachusetts,25013,3698,358 +2020-04-30,Hampden,Massachusetts,25013,3777,373 +2020-05-01,Hampden,Massachusetts,25013,3900,381 +2020-05-02,Hampden,Massachusetts,25013,4003,387 +2020-05-03,Hampden,Massachusetts,25013,4066,398 +2020-05-04,Hampden,Massachusetts,25013,4114,408 +2020-05-05,Hampden,Massachusetts,25013,4203,415 +2020-05-06,Hampden,Massachusetts,25013,4321,425 +2020-05-07,Hampden,Massachusetts,25013,4441,434 +2020-05-08,Hampden,Massachusetts,25013,4522,441 +2020-05-09,Hampden,Massachusetts,25013,4647,445 +2020-05-10,Hampden,Massachusetts,25013,4714,449 +2020-05-11,Hampden,Massachusetts,25013,4763,458 +2020-05-12,Hampden,Massachusetts,25013,4831,464 +2020-05-13,Hampden,Massachusetts,25013,4889,475 +2020-05-14,Hampden,Massachusetts,25013,4974,487 +2020-05-15,Hampden,Massachusetts,25013,5038,494 +2020-05-16,Hampden,Massachusetts,25013,5133,506 +2020-05-17,Hampden,Massachusetts,25013,5205,516 +2020-05-18,Hampden,Massachusetts,25013,5264,517 +2020-05-19,Hampden,Massachusetts,25013,5335,521 +2020-05-20,Hampden,Massachusetts,25013,5418,526 +2020-05-21,Hampden,Massachusetts,25013,5492,533 +2020-05-22,Hampden,Massachusetts,25013,5568,537 +2020-05-23,Hampden,Massachusetts,25013,5621,541 +2020-05-24,Hampden,Massachusetts,25013,5687,542 +2020-05-25,Hampden,Massachusetts,25013,5755,543 +2020-05-26,Hampden,Massachusetts,25013,5796,546 +2020-05-27,Hampden,Massachusetts,25013,5845,554 +2020-05-28,Hampden,Massachusetts,25013,5878,562 +2020-05-29,Hampden,Massachusetts,25013,5942,569 +2020-05-30,Hampden,Massachusetts,25013,5982,572 +2020-05-31,Hampden,Massachusetts,25013,6035,580 +2020-06-01,Hampden,Massachusetts,25013,6188,601 +2020-06-02,Hampden,Massachusetts,25013,6201,603 +2020-06-03,Hampden,Massachusetts,25013,6237,608 +2020-06-04,Hampden,Massachusetts,25013,6268,609 +2020-06-05,Hampden,Massachusetts,25013,6297,610 +2020-06-06,Hampden,Massachusetts,25013,6337,618 +2020-06-07,Hampden,Massachusetts,25013,6353,620 +2020-06-08,Hampden,Massachusetts,25013,6365,622 +2020-06-09,Hampden,Massachusetts,25013,6380,625 +2020-06-10,Hampden,Massachusetts,25013,6395,629 +2020-06-11,Hampden,Massachusetts,25013,6415,633 +2020-06-12,Hampden,Massachusetts,25013,6431,632 +2020-06-13,Hampden,Massachusetts,25013,6460,637 +2020-06-14,Hampden,Massachusetts,25013,6481,640 +2020-06-15,Hampden,Massachusetts,25013,6489,640 +2020-06-16,Hampden,Massachusetts,25013,6503,642 +2020-06-17,Hampden,Massachusetts,25013,6518,645 +2020-06-18,Hampden,Massachusetts,25013,6537,646 +2020-06-19,Hampden,Massachusetts,25013,6556,647 +2020-06-20,Hampden,Massachusetts,25013,6584,648 +2020-06-21,Hampden,Massachusetts,25013,6598,648 +2020-06-22,Hampden,Massachusetts,25013,6610,647 +2020-06-23,Hampden,Massachusetts,25013,6620,649 +2020-06-24,Hampden,Massachusetts,25013,6633,654 +2020-06-25,Hampden,Massachusetts,25013,6658,654 +2020-06-26,Hampden,Massachusetts,25013,6691,657 +2020-06-27,Hampden,Massachusetts,25013,6729,659 +2020-06-28,Hampden,Massachusetts,25013,6760,663 +2020-06-29,Hampden,Massachusetts,25013,6765,664 +2020-06-30,Hampden,Massachusetts,25013,6776,655 +2020-07-01,Hampden,Massachusetts,25013,6791,659 +2020-07-02,Hampden,Massachusetts,25013,6812,661 +2020-07-03,Hampden,Massachusetts,25013,6834,662 +2020-07-04,Hampden,Massachusetts,25013,6861,664 +2020-07-05,Hampden,Massachusetts,25013,6870,666 +2020-07-06,Hampden,Massachusetts,25013,6883,670 +2020-07-07,Hampden,Massachusetts,25013,6895,672 +2020-07-08,Hampden,Massachusetts,25013,6903,672 +2020-07-09,Hampden,Massachusetts,25013,6932,671 +2020-03-19,Hampshire,Massachusetts,25015,1,0 +2020-03-20,Hampshire,Massachusetts,25015,2,0 +2020-03-21,Hampshire,Massachusetts,25015,2,0 +2020-03-22,Hampshire,Massachusetts,25015,4,0 +2020-03-23,Hampshire,Massachusetts,25015,6,0 +2020-03-24,Hampshire,Massachusetts,25015,8,0 +2020-03-25,Hampshire,Massachusetts,25015,11,0 +2020-03-26,Hampshire,Massachusetts,25015,17,0 +2020-03-27,Hampshire,Massachusetts,25015,20,0 +2020-03-28,Hampshire,Massachusetts,25015,30,0 +2020-03-29,Hampshire,Massachusetts,25015,37,0 +2020-03-30,Hampshire,Massachusetts,25015,46,0 +2020-03-31,Hampshire,Massachusetts,25015,69,1 +2020-04-01,Hampshire,Massachusetts,25015,81,1 +2020-04-02,Hampshire,Massachusetts,25015,102,2 +2020-04-03,Hampshire,Massachusetts,25015,114,3 +2020-04-04,Hampshire,Massachusetts,25015,125,3 +2020-04-05,Hampshire,Massachusetts,25015,128,3 +2020-04-06,Hampshire,Massachusetts,25015,147,3 +2020-04-07,Hampshire,Massachusetts,25015,158,3 +2020-04-08,Hampshire,Massachusetts,25015,164,3 +2020-04-09,Hampshire,Massachusetts,25015,177,3 +2020-04-10,Hampshire,Massachusetts,25015,194,4 +2020-04-11,Hampshire,Massachusetts,25015,204,5 +2020-04-12,Hampshire,Massachusetts,25015,219,6 +2020-04-13,Hampshire,Massachusetts,25015,224,6 +2020-04-14,Hampshire,Massachusetts,25015,233,6 +2020-04-15,Hampshire,Massachusetts,25015,239,6 +2020-04-16,Hampshire,Massachusetts,25015,248,6 +2020-04-17,Hampshire,Massachusetts,25015,258,7 +2020-04-18,Hampshire,Massachusetts,25015,306,7 +2020-04-19,Hampshire,Massachusetts,25015,317,7 +2020-04-20,Hampshire,Massachusetts,25015,332,9 +2020-04-21,Hampshire,Massachusetts,25015,337,10 +2020-04-22,Hampshire,Massachusetts,25015,345,14 +2020-04-23,Hampshire,Massachusetts,25015,367,15 +2020-04-24,Hampshire,Massachusetts,25015,396,17 +2020-04-25,Hampshire,Massachusetts,25015,412,20 +2020-04-26,Hampshire,Massachusetts,25015,427,24 +2020-04-27,Hampshire,Massachusetts,25015,443,26 +2020-04-28,Hampshire,Massachusetts,25015,509,27 +2020-04-29,Hampshire,Massachusetts,25015,531,26 +2020-04-30,Hampshire,Massachusetts,25015,546,30 +2020-05-01,Hampshire,Massachusetts,25015,518,32 +2020-05-02,Hampshire,Massachusetts,25015,549,33 +2020-05-03,Hampshire,Massachusetts,25015,559,36 +2020-05-04,Hampshire,Massachusetts,25015,563,36 +2020-05-05,Hampshire,Massachusetts,25015,575,47 +2020-05-06,Hampshire,Massachusetts,25015,580,47 +2020-05-07,Hampshire,Massachusetts,25015,595,48 +2020-05-08,Hampshire,Massachusetts,25015,654,48 +2020-05-09,Hampshire,Massachusetts,25015,659,50 +2020-05-10,Hampshire,Massachusetts,25015,676,55 +2020-05-11,Hampshire,Massachusetts,25015,688,57 +2020-05-12,Hampshire,Massachusetts,25015,702,57 +2020-05-13,Hampshire,Massachusetts,25015,708,64 +2020-05-14,Hampshire,Massachusetts,25015,724,66 +2020-05-15,Hampshire,Massachusetts,25015,738,67 +2020-05-16,Hampshire,Massachusetts,25015,751,69 +2020-05-17,Hampshire,Massachusetts,25015,767,72 +2020-05-18,Hampshire,Massachusetts,25015,774,72 +2020-05-19,Hampshire,Massachusetts,25015,780,73 +2020-05-20,Hampshire,Massachusetts,25015,792,76 +2020-05-21,Hampshire,Massachusetts,25015,806,76 +2020-05-22,Hampshire,Massachusetts,25015,812,76 +2020-05-23,Hampshire,Massachusetts,25015,819,77 +2020-05-24,Hampshire,Massachusetts,25015,830,78 +2020-05-25,Hampshire,Massachusetts,25015,834,80 +2020-05-26,Hampshire,Massachusetts,25015,840,82 +2020-05-27,Hampshire,Massachusetts,25015,843,82 +2020-05-28,Hampshire,Massachusetts,25015,845,83 +2020-05-29,Hampshire,Massachusetts,25015,853,86 +2020-05-30,Hampshire,Massachusetts,25015,855,88 +2020-05-31,Hampshire,Massachusetts,25015,855,89 +2020-06-01,Hampshire,Massachusetts,25015,886,89 +2020-06-02,Hampshire,Massachusetts,25015,883,90 +2020-06-03,Hampshire,Massachusetts,25015,891,93 +2020-06-04,Hampshire,Massachusetts,25015,894,94 +2020-06-05,Hampshire,Massachusetts,25015,900,95 +2020-06-06,Hampshire,Massachusetts,25015,904,95 +2020-06-07,Hampshire,Massachusetts,25015,905,98 +2020-06-08,Hampshire,Massachusetts,25015,907,100 +2020-06-09,Hampshire,Massachusetts,25015,905,100 +2020-06-10,Hampshire,Massachusetts,25015,905,100 +2020-06-11,Hampshire,Massachusetts,25015,913,100 +2020-06-12,Hampshire,Massachusetts,25015,918,103 +2020-06-13,Hampshire,Massachusetts,25015,921,103 +2020-06-14,Hampshire,Massachusetts,25015,924,103 +2020-06-15,Hampshire,Massachusetts,25015,926,103 +2020-06-16,Hampshire,Massachusetts,25015,930,103 +2020-06-17,Hampshire,Massachusetts,25015,936,105 +2020-06-18,Hampshire,Massachusetts,25015,936,106 +2020-06-19,Hampshire,Massachusetts,25015,941,106 +2020-06-20,Hampshire,Massachusetts,25015,943,106 +2020-06-21,Hampshire,Massachusetts,25015,944,107 +2020-06-22,Hampshire,Massachusetts,25015,946,107 +2020-06-23,Hampshire,Massachusetts,25015,947,107 +2020-06-24,Hampshire,Massachusetts,25015,950,108 +2020-06-25,Hampshire,Massachusetts,25015,952,109 +2020-06-26,Hampshire,Massachusetts,25015,952,109 +2020-06-27,Hampshire,Massachusetts,25015,955,110 +2020-06-28,Hampshire,Massachusetts,25015,958,110 +2020-06-29,Hampshire,Massachusetts,25015,959,110 +2020-06-30,Hampshire,Massachusetts,25015,962,110 +2020-07-01,Hampshire,Massachusetts,25015,965,112 +2020-07-02,Hampshire,Massachusetts,25015,969,114 +2020-07-03,Hampshire,Massachusetts,25015,976,115 +2020-07-04,Hampshire,Massachusetts,25015,982,116 +2020-07-05,Hampshire,Massachusetts,25015,985,116 +2020-07-06,Hampshire,Massachusetts,25015,985,116 +2020-07-07,Hampshire,Massachusetts,25015,986,116 +2020-07-08,Hampshire,Massachusetts,25015,991,116 +2020-07-09,Hampshire,Massachusetts,25015,993,117 +2020-03-05,Middlesex,Massachusetts,25017,1,0 +2020-03-06,Middlesex,Massachusetts,25017,1,0 +2020-03-07,Middlesex,Massachusetts,25017,5,0 +2020-03-08,Middlesex,Massachusetts,25017,10,0 +2020-03-09,Middlesex,Massachusetts,25017,15,0 +2020-03-10,Middlesex,Massachusetts,25017,41,0 +2020-03-11,Middlesex,Massachusetts,25017,41,0 +2020-03-12,Middlesex,Massachusetts,25017,49,0 +2020-03-13,Middlesex,Massachusetts,25017,60,0 +2020-03-14,Middlesex,Massachusetts,25017,65,0 +2020-03-15,Middlesex,Massachusetts,25017,75,0 +2020-03-16,Middlesex,Massachusetts,25017,83,0 +2020-03-17,Middlesex,Massachusetts,25017,89,0 +2020-03-18,Middlesex,Massachusetts,25017,100,0 +2020-03-19,Middlesex,Massachusetts,25017,119,0 +2020-03-20,Middlesex,Massachusetts,25017,144,0 +2020-03-21,Middlesex,Massachusetts,25017,177,1 +2020-03-22,Middlesex,Massachusetts,25017,199,1 +2020-03-23,Middlesex,Massachusetts,25017,232,1 +2020-03-24,Middlesex,Massachusetts,25017,304,2 +2020-03-25,Middlesex,Massachusetts,25017,446,2 +2020-03-26,Middlesex,Massachusetts,25017,538,5 +2020-03-27,Middlesex,Massachusetts,25017,685,6 +2020-03-28,Middlesex,Massachusetts,25017,842,6 +2020-03-29,Middlesex,Massachusetts,25017,981,7 +2020-03-30,Middlesex,Massachusetts,25017,1141,9 +2020-03-31,Middlesex,Massachusetts,25017,1340,18 +2020-04-01,Middlesex,Massachusetts,25017,1582,21 +2020-04-02,Middlesex,Massachusetts,25017,1870,29 +2020-04-03,Middlesex,Massachusetts,25017,2202,39 +2020-04-04,Middlesex,Massachusetts,25017,2468,39 +2020-04-05,Middlesex,Massachusetts,25017,2632,42 +2020-04-06,Middlesex,Massachusetts,25017,2950,48 +2020-04-07,Middlesex,Massachusetts,25017,3187,69 +2020-04-08,Middlesex,Massachusetts,25017,3545,80 +2020-04-09,Middlesex,Massachusetts,25017,4045,93 +2020-04-10,Middlesex,Massachusetts,25017,4447,109 +2020-04-11,Middlesex,Massachusetts,25017,4872,137 +2020-04-12,Middlesex,Massachusetts,25017,5660,149 +2020-04-13,Middlesex,Massachusetts,25017,5983,163 +2020-04-14,Middlesex,Massachusetts,25017,6254,188 +2020-04-15,Middlesex,Massachusetts,25017,6681,221 +2020-04-16,Middlesex,Massachusetts,25017,7206,258 +2020-04-17,Middlesex,Massachusetts,25017,7744,294 +2020-04-18,Middlesex,Massachusetts,25017,8297,334 +2020-04-19,Middlesex,Massachusetts,25017,8737,372 +2020-04-20,Middlesex,Massachusetts,25017,9253,402 +2020-04-21,Middlesex,Massachusetts,25017,9621,428 +2020-04-22,Middlesex,Massachusetts,25017,10094,494 +2020-04-23,Middlesex,Massachusetts,25017,10724,545 +2020-04-24,Middlesex,Massachusetts,25017,11681,585 +2020-04-25,Middlesex,Massachusetts,25017,12253,629 +2020-04-26,Middlesex,Massachusetts,25017,12648,670 +2020-04-27,Middlesex,Massachusetts,25017,12953,700 +2020-04-28,Middlesex,Massachusetts,25017,13417,731 +2020-04-29,Middlesex,Massachusetts,25017,13799,802 +2020-04-30,Middlesex,Massachusetts,25017,14208,845 +2020-05-01,Middlesex,Massachusetts,25017,14607,885 +2020-05-02,Middlesex,Massachusetts,25017,15048,923 +2020-05-03,Middlesex,Massachusetts,25017,15370,972 +2020-05-04,Middlesex,Massachusetts,25017,15757,997 +2020-05-05,Middlesex,Massachusetts,25017,15980,1028 +2020-05-06,Middlesex,Massachusetts,25017,16327,1070 +2020-05-07,Middlesex,Massachusetts,25017,16676,1103 +2020-05-08,Middlesex,Massachusetts,25017,17014,1132 +2020-05-09,Middlesex,Massachusetts,25017,17307,1169 +2020-05-10,Middlesex,Massachusetts,25017,17589,1207 +2020-05-11,Middlesex,Massachusetts,25017,17774,1235 +2020-05-12,Middlesex,Massachusetts,25017,17953,1244 +2020-05-13,Middlesex,Massachusetts,25017,18201,1282 +2020-05-14,Middlesex,Massachusetts,25017,18381,1327 +2020-05-15,Middlesex,Massachusetts,25017,18683,1347 +2020-05-16,Middlesex,Massachusetts,25017,18883,1370 +2020-05-17,Middlesex,Massachusetts,25017,19129,1394 +2020-05-18,Middlesex,Massachusetts,25017,19345,1412 +2020-05-19,Middlesex,Massachusetts,25017,19504,1436 +2020-05-20,Middlesex,Massachusetts,25017,19708,1462 +2020-05-21,Middlesex,Massachusetts,25017,19930,1478 +2020-05-22,Middlesex,Massachusetts,25017,20085,1496 +2020-05-23,Middlesex,Massachusetts,25017,20232,1512 +2020-05-24,Middlesex,Massachusetts,25017,20437,1518 +2020-05-25,Middlesex,Massachusetts,25017,20539,1527 +2020-05-26,Middlesex,Massachusetts,25017,20601,1535 +2020-05-27,Middlesex,Massachusetts,25017,20706,1549 +2020-05-28,Middlesex,Massachusetts,25017,20857,1564 +2020-05-29,Middlesex,Massachusetts,25017,20972,1583 +2020-05-30,Middlesex,Massachusetts,25017,21124,1596 +2020-05-31,Middlesex,Massachusetts,25017,21287,1615 +2020-06-01,Middlesex,Massachusetts,25017,22224,1650 +2020-06-02,Middlesex,Massachusetts,25017,22296,1663 +2020-06-03,Middlesex,Massachusetts,25017,22403,1676 +2020-06-04,Middlesex,Massachusetts,25017,22485,1689 +2020-06-05,Middlesex,Massachusetts,25017,22583,1695 +2020-06-06,Middlesex,Massachusetts,25017,22686,1701 +2020-06-07,Middlesex,Massachusetts,25017,22754,1705 +2020-06-08,Middlesex,Massachusetts,25017,22812,1711 +2020-06-09,Middlesex,Massachusetts,25017,22845,1720 +2020-06-10,Middlesex,Massachusetts,25017,22889,1725 +2020-06-11,Middlesex,Massachusetts,25017,22996,1733 +2020-06-12,Middlesex,Massachusetts,25017,23075,1744 +2020-06-13,Middlesex,Massachusetts,25017,23156,1748 +2020-06-14,Middlesex,Massachusetts,25017,23195,1756 +2020-06-15,Middlesex,Massachusetts,25017,23227,1763 +2020-06-16,Middlesex,Massachusetts,25017,23269,1765 +2020-06-17,Middlesex,Massachusetts,25017,23346,1781 +2020-06-18,Middlesex,Massachusetts,25017,23407,1788 +2020-06-19,Middlesex,Massachusetts,25017,23464,1791 +2020-06-20,Middlesex,Massachusetts,25017,23544,1801 +2020-06-21,Middlesex,Massachusetts,25017,23574,1807 +2020-06-22,Middlesex,Massachusetts,25017,23609,1809 +2020-06-23,Middlesex,Massachusetts,25017,23647,1812 +2020-06-24,Middlesex,Massachusetts,25017,23697,1820 +2020-06-25,Middlesex,Massachusetts,25017,23741,1825 +2020-06-26,Middlesex,Massachusetts,25017,23786,1839 +2020-06-27,Middlesex,Massachusetts,25017,23859,1849 +2020-06-28,Middlesex,Massachusetts,25017,23915,1855 +2020-06-29,Middlesex,Massachusetts,25017,23946,1862 +2020-06-30,Middlesex,Massachusetts,25017,23962,1851 +2020-07-01,Middlesex,Massachusetts,25017,23998,1858 +2020-07-02,Middlesex,Massachusetts,25017,24039,1867 +2020-07-03,Middlesex,Massachusetts,25017,24083,1870 +2020-07-04,Middlesex,Massachusetts,25017,24115,1877 +2020-07-05,Middlesex,Massachusetts,25017,24153,1879 +2020-07-06,Middlesex,Massachusetts,25017,24193,1882 +2020-07-07,Middlesex,Massachusetts,25017,24243,1888 +2020-07-08,Middlesex,Massachusetts,25017,24300,1897 +2020-07-09,Middlesex,Massachusetts,25017,24348,1903 +2020-03-21,Nantucket,Massachusetts,25019,1,0 +2020-03-22,Nantucket,Massachusetts,25019,1,0 +2020-03-23,Nantucket,Massachusetts,25019,1,0 +2020-03-24,Nantucket,Massachusetts,25019,2,0 +2020-03-25,Nantucket,Massachusetts,25019,2,0 +2020-03-26,Nantucket,Massachusetts,25019,2,0 +2020-03-27,Nantucket,Massachusetts,25019,2,0 +2020-03-28,Nantucket,Massachusetts,25019,5,0 +2020-03-29,Nantucket,Massachusetts,25019,5,0 +2020-03-30,Nantucket,Massachusetts,25019,5,0 +2020-03-31,Nantucket,Massachusetts,25019,5,0 +2020-04-01,Nantucket,Massachusetts,25019,5,0 +2020-04-02,Nantucket,Massachusetts,25019,7,0 +2020-04-03,Nantucket,Massachusetts,25019,9,0 +2020-04-04,Nantucket,Massachusetts,25019,9,0 +2020-04-05,Nantucket,Massachusetts,25019,9,0 +2020-04-06,Nantucket,Massachusetts,25019,9,0 +2020-04-07,Nantucket,Massachusetts,25019,9,0 +2020-04-08,Nantucket,Massachusetts,25019,9,0 +2020-04-09,Nantucket,Massachusetts,25019,9,0 +2020-04-10,Nantucket,Massachusetts,25019,9,0 +2020-04-11,Nantucket,Massachusetts,25019,9,0 +2020-04-12,Nantucket,Massachusetts,25019,9,0 +2020-04-13,Nantucket,Massachusetts,25019,9,0 +2020-04-14,Nantucket,Massachusetts,25019,9,0 +2020-04-15,Nantucket,Massachusetts,25019,9,0 +2020-04-16,Nantucket,Massachusetts,25019,9,0 +2020-04-17,Nantucket,Massachusetts,25019,9,0 +2020-04-18,Nantucket,Massachusetts,25019,9,0 +2020-04-19,Nantucket,Massachusetts,25019,9,0 +2020-04-20,Nantucket,Massachusetts,25019,9,0 +2020-04-21,Nantucket,Massachusetts,25019,9,0 +2020-04-22,Nantucket,Massachusetts,25019,9,0 +2020-04-23,Nantucket,Massachusetts,25019,9,0 +2020-04-24,Nantucket,Massachusetts,25019,9,0 +2020-04-25,Nantucket,Massachusetts,25019,9,0 +2020-04-26,Nantucket,Massachusetts,25019,10,0 +2020-04-27,Nantucket,Massachusetts,25019,10,0 +2020-04-28,Nantucket,Massachusetts,25019,11,0 +2020-04-29,Nantucket,Massachusetts,25019,11,0 +2020-04-30,Nantucket,Massachusetts,25019,11,0 +2020-05-01,Nantucket,Massachusetts,25019,11,0 +2020-05-02,Nantucket,Massachusetts,25019,11,0 +2020-05-03,Nantucket,Massachusetts,25019,11,0 +2020-05-04,Nantucket,Massachusetts,25019,11,0 +2020-05-05,Nantucket,Massachusetts,25019,11,0 +2020-05-06,Nantucket,Massachusetts,25019,12,0 +2020-05-07,Nantucket,Massachusetts,25019,11,0 +2020-05-08,Nantucket,Massachusetts,25019,11,0 +2020-05-09,Nantucket,Massachusetts,25019,11,0 +2020-05-10,Nantucket,Massachusetts,25019,11,0 +2020-05-11,Nantucket,Massachusetts,25019,12,0 +2020-05-12,Nantucket,Massachusetts,25019,12,0 +2020-05-13,Nantucket,Massachusetts,25019,12,0 +2020-05-14,Nantucket,Massachusetts,25019,12,0 +2020-05-15,Nantucket,Massachusetts,25019,12,0 +2020-05-16,Nantucket,Massachusetts,25019,12,0 +2020-05-17,Nantucket,Massachusetts,25019,12,0 +2020-05-18,Nantucket,Massachusetts,25019,12,0 +2020-05-19,Nantucket,Massachusetts,25019,12,0 +2020-05-20,Nantucket,Massachusetts,25019,12,0 +2020-05-21,Nantucket,Massachusetts,25019,13,0 +2020-05-22,Nantucket,Massachusetts,25019,13,0 +2020-05-23,Nantucket,Massachusetts,25019,13,0 +2020-05-24,Nantucket,Massachusetts,25019,13,0 +2020-05-25,Nantucket,Massachusetts,25019,13,0 +2020-05-26,Nantucket,Massachusetts,25019,13,0 +2020-05-27,Nantucket,Massachusetts,25019,13,0 +2020-05-28,Nantucket,Massachusetts,25019,13,0 +2020-05-29,Nantucket,Massachusetts,25019,13,0 +2020-05-30,Nantucket,Massachusetts,25019,13,0 +2020-05-31,Nantucket,Massachusetts,25019,13,0 +2020-06-01,Nantucket,Massachusetts,25019,13,0 +2020-06-02,Nantucket,Massachusetts,25019,13,0 +2020-06-03,Nantucket,Massachusetts,25019,13,0 +2020-06-04,Nantucket,Massachusetts,25019,14,0 +2020-06-05,Nantucket,Massachusetts,25019,14,0 +2020-06-06,Nantucket,Massachusetts,25019,13,0 +2020-06-07,Nantucket,Massachusetts,25019,13,0 +2020-06-08,Nantucket,Massachusetts,25019,13,0 +2020-06-09,Nantucket,Massachusetts,25019,13,0 +2020-06-10,Nantucket,Massachusetts,25019,13,0 +2020-06-11,Nantucket,Massachusetts,25019,13,0 +2020-06-12,Nantucket,Massachusetts,25019,13,0 +2020-06-13,Nantucket,Massachusetts,25019,13,0 +2020-06-14,Nantucket,Massachusetts,25019,13,0 +2020-06-15,Nantucket,Massachusetts,25019,13,0 +2020-06-16,Nantucket,Massachusetts,25019,14,0 +2020-06-17,Nantucket,Massachusetts,25019,13,0 +2020-06-18,Nantucket,Massachusetts,25019,13,0 +2020-06-19,Nantucket,Massachusetts,25019,13,0 +2020-06-20,Nantucket,Massachusetts,25019,13,0 +2020-06-21,Nantucket,Massachusetts,25019,13,0 +2020-06-22,Nantucket,Massachusetts,25019,14,0 +2020-06-23,Nantucket,Massachusetts,25019,14,0 +2020-06-24,Nantucket,Massachusetts,25019,14,0 +2020-06-25,Nantucket,Massachusetts,25019,14,0 +2020-06-26,Nantucket,Massachusetts,25019,14,0 +2020-06-27,Nantucket,Massachusetts,25019,15,0 +2020-06-28,Nantucket,Massachusetts,25019,15,1 +2020-06-29,Nantucket,Massachusetts,25019,15,1 +2020-06-30,Nantucket,Massachusetts,25019,15,1 +2020-07-01,Nantucket,Massachusetts,25019,17,1 +2020-07-02,Nantucket,Massachusetts,25019,17,1 +2020-07-03,Nantucket,Massachusetts,25019,18,1 +2020-07-04,Nantucket,Massachusetts,25019,18,1 +2020-07-05,Nantucket,Massachusetts,25019,20,1 +2020-07-06,Nantucket,Massachusetts,25019,20,1 +2020-07-07,Nantucket,Massachusetts,25019,20,1 +2020-07-08,Nantucket,Massachusetts,25019,21,1 +2020-07-09,Nantucket,Massachusetts,25019,22,1 +2020-03-02,Norfolk,Massachusetts,25021,1,0 +2020-03-03,Norfolk,Massachusetts,25021,1,0 +2020-03-04,Norfolk,Massachusetts,25021,1,0 +2020-03-05,Norfolk,Massachusetts,25021,1,0 +2020-03-06,Norfolk,Massachusetts,25021,3,0 +2020-03-07,Norfolk,Massachusetts,25021,3,0 +2020-03-08,Norfolk,Massachusetts,25021,7,0 +2020-03-09,Norfolk,Massachusetts,25021,10,0 +2020-03-10,Norfolk,Massachusetts,25021,22,0 +2020-03-11,Norfolk,Massachusetts,25021,22,0 +2020-03-12,Norfolk,Massachusetts,25021,24,0 +2020-03-13,Norfolk,Massachusetts,25021,24,0 +2020-03-14,Norfolk,Massachusetts,25021,28,0 +2020-03-15,Norfolk,Massachusetts,25021,31,0 +2020-03-16,Norfolk,Massachusetts,25021,36,0 +2020-03-17,Norfolk,Massachusetts,25021,43,0 +2020-03-18,Norfolk,Massachusetts,25021,45,0 +2020-03-19,Norfolk,Massachusetts,25021,52,0 +2020-03-20,Norfolk,Massachusetts,25021,64,0 +2020-03-21,Norfolk,Massachusetts,25021,69,0 +2020-03-22,Norfolk,Massachusetts,25021,75,0 +2020-03-23,Norfolk,Massachusetts,25021,82,1 +2020-03-24,Norfolk,Massachusetts,25021,129,1 +2020-03-25,Norfolk,Massachusetts,25021,222,2 +2020-03-26,Norfolk,Massachusetts,25021,292,3 +2020-03-27,Norfolk,Massachusetts,25021,393,7 +2020-03-28,Norfolk,Massachusetts,25021,490,9 +2020-03-29,Norfolk,Massachusetts,25021,548,10 +2020-03-30,Norfolk,Massachusetts,25021,628,11 +2020-03-31,Norfolk,Massachusetts,25021,738,13 +2020-04-01,Norfolk,Massachusetts,25021,829,16 +2020-04-02,Norfolk,Massachusetts,25021,938,22 +2020-04-03,Norfolk,Massachusetts,25021,1045,25 +2020-04-04,Norfolk,Massachusetts,25021,1199,26 +2020-04-05,Norfolk,Massachusetts,25021,1271,27 +2020-04-06,Norfolk,Massachusetts,25021,1382,30 +2020-04-07,Norfolk,Massachusetts,25021,1592,36 +2020-04-08,Norfolk,Massachusetts,25021,1778,42 +2020-04-09,Norfolk,Massachusetts,25021,2007,52 +2020-04-10,Norfolk,Massachusetts,25021,2216,66 +2020-04-11,Norfolk,Massachusetts,25021,2395,81 +2020-04-12,Norfolk,Massachusetts,25021,2649,93 +2020-04-13,Norfolk,Massachusetts,25021,2838,107 +2020-04-14,Norfolk,Massachusetts,25021,2969,125 +2020-04-15,Norfolk,Massachusetts,25021,3122,149 +2020-04-16,Norfolk,Massachusetts,25021,3342,175 +2020-04-17,Norfolk,Massachusetts,25021,3499,197 +2020-04-18,Norfolk,Massachusetts,25021,3659,217 +2020-04-19,Norfolk,Massachusetts,25021,3789,246 +2020-04-20,Norfolk,Massachusetts,25021,3960,263 +2020-04-21,Norfolk,Massachusetts,25021,4062,290 +2020-04-22,Norfolk,Massachusetts,25021,4212,312 +2020-04-23,Norfolk,Massachusetts,25021,4541,335 +2020-04-24,Norfolk,Massachusetts,25021,4979,368 +2020-04-25,Norfolk,Massachusetts,25021,5172,400 +2020-04-26,Norfolk,Massachusetts,25021,5288,418 +2020-04-27,Norfolk,Massachusetts,25021,5398,429 +2020-04-28,Norfolk,Massachusetts,25021,5567,448 +2020-04-29,Norfolk,Massachusetts,25021,5700,484 +2020-04-30,Norfolk,Massachusetts,25021,5896,499 +2020-05-01,Norfolk,Massachusetts,25021,6065,522 +2020-05-02,Norfolk,Massachusetts,25021,6187,535 +2020-05-03,Norfolk,Massachusetts,25021,6280,550 +2020-05-04,Norfolk,Massachusetts,25021,6382,555 +2020-05-05,Norfolk,Massachusetts,25021,6466,575 +2020-05-06,Norfolk,Massachusetts,25021,6610,596 +2020-05-07,Norfolk,Massachusetts,25021,6729,608 +2020-05-08,Norfolk,Massachusetts,25021,6801,623 +2020-05-09,Norfolk,Massachusetts,25021,6887,635 +2020-05-10,Norfolk,Massachusetts,25021,6952,650 +2020-05-11,Norfolk,Massachusetts,25021,7004,661 +2020-05-12,Norfolk,Massachusetts,25021,7046,663 +2020-05-13,Norfolk,Massachusetts,25021,7129,676 +2020-05-14,Norfolk,Massachusetts,25021,7258,696 +2020-05-15,Norfolk,Massachusetts,25021,7331,710 +2020-05-16,Norfolk,Massachusetts,25021,7412,719 +2020-05-17,Norfolk,Massachusetts,25021,7474,725 +2020-05-18,Norfolk,Massachusetts,25021,7524,728 +2020-05-19,Norfolk,Massachusetts,25021,7565,735 +2020-05-20,Norfolk,Massachusetts,25021,7607,749 +2020-05-21,Norfolk,Massachusetts,25021,7691,759 +2020-05-22,Norfolk,Massachusetts,25021,7724,771 +2020-05-23,Norfolk,Massachusetts,25021,7759,774 +2020-05-24,Norfolk,Massachusetts,25021,7812,782 +2020-05-25,Norfolk,Massachusetts,25021,7844,784 +2020-05-26,Norfolk,Massachusetts,25021,7863,791 +2020-05-27,Norfolk,Massachusetts,25021,7880,794 +2020-05-28,Norfolk,Massachusetts,25021,7919,799 +2020-05-29,Norfolk,Massachusetts,25021,7959,811 +2020-05-30,Norfolk,Massachusetts,25021,8016,815 +2020-05-31,Norfolk,Massachusetts,25021,8079,821 +2020-06-01,Norfolk,Massachusetts,25021,8586,841 +2020-06-02,Norfolk,Massachusetts,25021,8600,845 +2020-06-03,Norfolk,Massachusetts,25021,8613,850 +2020-06-04,Norfolk,Massachusetts,25021,8625,854 +2020-06-05,Norfolk,Massachusetts,25021,8646,855 +2020-06-06,Norfolk,Massachusetts,25021,8689,859 +2020-06-07,Norfolk,Massachusetts,25021,8713,863 +2020-06-08,Norfolk,Massachusetts,25021,8715,866 +2020-06-09,Norfolk,Massachusetts,25021,8753,870 +2020-06-10,Norfolk,Massachusetts,25021,8774,873 +2020-06-11,Norfolk,Massachusetts,25021,8809,876 +2020-06-12,Norfolk,Massachusetts,25021,8842,882 +2020-06-13,Norfolk,Massachusetts,25021,8860,882 +2020-06-14,Norfolk,Massachusetts,25021,8866,888 +2020-06-15,Norfolk,Massachusetts,25021,8872,890 +2020-06-16,Norfolk,Massachusetts,25021,8892,891 +2020-06-17,Norfolk,Massachusetts,25021,8908,903 +2020-06-18,Norfolk,Massachusetts,25021,8935,905 +2020-06-19,Norfolk,Massachusetts,25021,8962,907 +2020-06-20,Norfolk,Massachusetts,25021,8983,908 +2020-06-21,Norfolk,Massachusetts,25021,8994,912 +2020-06-22,Norfolk,Massachusetts,25021,9010,914 +2020-06-23,Norfolk,Massachusetts,25021,9042,919 +2020-06-24,Norfolk,Massachusetts,25021,9056,923 +2020-06-25,Norfolk,Massachusetts,25021,9082,924 +2020-06-26,Norfolk,Massachusetts,25021,9100,927 +2020-06-27,Norfolk,Massachusetts,25021,9125,927 +2020-06-28,Norfolk,Massachusetts,25021,9151,927 +2020-06-29,Norfolk,Massachusetts,25021,9161,930 +2020-06-30,Norfolk,Massachusetts,25021,9166,923 +2020-07-01,Norfolk,Massachusetts,25021,9184,930 +2020-07-02,Norfolk,Massachusetts,25021,9200,933 +2020-07-03,Norfolk,Massachusetts,25021,9242,934 +2020-07-04,Norfolk,Massachusetts,25021,9260,937 +2020-07-05,Norfolk,Massachusetts,25021,9273,940 +2020-07-06,Norfolk,Massachusetts,25021,9284,940 +2020-07-07,Norfolk,Massachusetts,25021,9306,941 +2020-07-08,Norfolk,Massachusetts,25021,9339,943 +2020-07-09,Norfolk,Massachusetts,25021,9384,950 +2020-03-15,Plymouth,Massachusetts,25023,3,0 +2020-03-16,Plymouth,Massachusetts,25023,5,0 +2020-03-17,Plymouth,Massachusetts,25023,5,0 +2020-03-18,Plymouth,Massachusetts,25023,5,0 +2020-03-19,Plymouth,Massachusetts,25023,5,0 +2020-03-20,Plymouth,Massachusetts,25023,11,0 +2020-03-21,Plymouth,Massachusetts,25023,20,0 +2020-03-22,Plymouth,Massachusetts,25023,25,0 +2020-03-23,Plymouth,Massachusetts,25023,32,0 +2020-03-24,Plymouth,Massachusetts,25023,64,0 +2020-03-25,Plymouth,Massachusetts,25023,101,0 +2020-03-26,Plymouth,Massachusetts,25023,138,0 +2020-03-27,Plymouth,Massachusetts,25023,187,0 +2020-03-28,Plymouth,Massachusetts,25023,272,0 +2020-03-29,Plymouth,Massachusetts,25023,325,0 +2020-03-30,Plymouth,Massachusetts,25023,380,0 +2020-03-31,Plymouth,Massachusetts,25023,459,2 +2020-04-01,Plymouth,Massachusetts,25023,561,5 +2020-04-02,Plymouth,Massachusetts,25023,621,6 +2020-04-03,Plymouth,Massachusetts,25023,745,7 +2020-04-04,Plymouth,Massachusetts,25023,898,8 +2020-04-05,Plymouth,Massachusetts,25023,963,10 +2020-04-06,Plymouth,Massachusetts,25023,1067,14 +2020-04-07,Plymouth,Massachusetts,25023,1194,25 +2020-04-08,Plymouth,Massachusetts,25023,1327,32 +2020-04-09,Plymouth,Massachusetts,25023,1507,38 +2020-04-10,Plymouth,Massachusetts,25023,1677,46 +2020-04-11,Plymouth,Massachusetts,25023,1809,50 +2020-04-12,Plymouth,Massachusetts,25023,2024,54 +2020-04-13,Plymouth,Massachusetts,25023,2141,65 +2020-04-14,Plymouth,Massachusetts,25023,2207,76 +2020-04-15,Plymouth,Massachusetts,25023,2308,88 +2020-04-16,Plymouth,Massachusetts,25023,2466,92 +2020-04-17,Plymouth,Massachusetts,25023,2577,104 +2020-04-18,Plymouth,Massachusetts,25023,2688,121 +2020-04-19,Plymouth,Massachusetts,25023,2832,130 +2020-04-20,Plymouth,Massachusetts,25023,2976,134 +2020-04-21,Plymouth,Massachusetts,25023,3043,141 +2020-04-22,Plymouth,Massachusetts,25023,3253,157 +2020-04-23,Plymouth,Massachusetts,25023,3529,176 +2020-04-24,Plymouth,Massachusetts,25023,4160,197 +2020-04-25,Plymouth,Massachusetts,25023,4380,212 +2020-04-26,Plymouth,Massachusetts,25023,4495,230 +2020-04-27,Plymouth,Massachusetts,25023,4607,240 +2020-04-28,Plymouth,Massachusetts,25023,4744,256 +2020-04-29,Plymouth,Massachusetts,25023,4871,273 +2020-04-30,Plymouth,Massachusetts,25023,5083,285 +2020-05-01,Plymouth,Massachusetts,25023,5259,301 +2020-05-02,Plymouth,Massachusetts,25023,5409,312 +2020-05-03,Plymouth,Massachusetts,25023,5507,323 +2020-05-04,Plymouth,Massachusetts,25023,5602,333 +2020-05-05,Plymouth,Massachusetts,25023,5736,341 +2020-05-06,Plymouth,Massachusetts,25023,5899,357 +2020-05-07,Plymouth,Massachusetts,25023,6081,364 +2020-05-08,Plymouth,Massachusetts,25023,6194,375 +2020-05-09,Plymouth,Massachusetts,25023,6311,384 +2020-05-10,Plymouth,Massachusetts,25023,6382,393 +2020-05-11,Plymouth,Massachusetts,25023,6457,408 +2020-05-12,Plymouth,Massachusetts,25023,6507,409 +2020-05-13,Plymouth,Massachusetts,25023,6592,424 +2020-05-14,Plymouth,Massachusetts,25023,6774,435 +2020-05-15,Plymouth,Massachusetts,25023,6875,444 +2020-05-16,Plymouth,Massachusetts,25023,6987,455 +2020-05-17,Plymouth,Massachusetts,25023,7064,460 +2020-05-18,Plymouth,Massachusetts,25023,7139,464 +2020-05-19,Plymouth,Massachusetts,25023,7198,470 +2020-05-20,Plymouth,Massachusetts,25023,7280,481 +2020-05-21,Plymouth,Massachusetts,25023,7366,487 +2020-05-22,Plymouth,Massachusetts,25023,7424,492 +2020-05-23,Plymouth,Massachusetts,25023,7480,501 +2020-05-24,Plymouth,Massachusetts,25023,7559,508 +2020-05-25,Plymouth,Massachusetts,25023,7594,513 +2020-05-26,Plymouth,Massachusetts,25023,7632,522 +2020-05-27,Plymouth,Massachusetts,25023,7656,530 +2020-05-28,Plymouth,Massachusetts,25023,7724,539 +2020-05-29,Plymouth,Massachusetts,25023,7766,542 +2020-05-30,Plymouth,Massachusetts,25023,7819,548 +2020-05-31,Plymouth,Massachusetts,25023,7859,552 +2020-06-01,Plymouth,Massachusetts,25023,8200,562 +2020-06-02,Plymouth,Massachusetts,25023,8228,568 +2020-06-03,Plymouth,Massachusetts,25023,8243,572 +2020-06-04,Plymouth,Massachusetts,25023,8282,579 +2020-06-05,Plymouth,Massachusetts,25023,8313,581 +2020-06-06,Plymouth,Massachusetts,25023,8347,588 +2020-06-07,Plymouth,Massachusetts,25023,8363,591 +2020-06-08,Plymouth,Massachusetts,25023,8372,595 +2020-06-09,Plymouth,Massachusetts,25023,8404,603 +2020-06-10,Plymouth,Massachusetts,25023,8418,608 +2020-06-11,Plymouth,Massachusetts,25023,8440,612 +2020-06-12,Plymouth,Massachusetts,25023,8462,619 +2020-06-13,Plymouth,Massachusetts,25023,8478,621 +2020-06-14,Plymouth,Massachusetts,25023,8507,621 +2020-06-15,Plymouth,Massachusetts,25023,8512,626 +2020-06-16,Plymouth,Massachusetts,25023,8514,629 +2020-06-17,Plymouth,Massachusetts,25023,8522,631 +2020-06-18,Plymouth,Massachusetts,25023,8555,636 +2020-06-19,Plymouth,Massachusetts,25023,8566,640 +2020-06-20,Plymouth,Massachusetts,25023,8576,641 +2020-06-21,Plymouth,Massachusetts,25023,8583,643 +2020-06-22,Plymouth,Massachusetts,25023,8592,646 +2020-06-23,Plymouth,Massachusetts,25023,8604,647 +2020-06-24,Plymouth,Massachusetts,25023,8610,651 +2020-06-25,Plymouth,Massachusetts,25023,8625,654 +2020-06-26,Plymouth,Massachusetts,25023,8646,658 +2020-06-27,Plymouth,Massachusetts,25023,8661,660 +2020-06-28,Plymouth,Massachusetts,25023,8671,663 +2020-06-29,Plymouth,Massachusetts,25023,8676,666 +2020-06-30,Plymouth,Massachusetts,25023,8684,665 +2020-07-01,Plymouth,Massachusetts,25023,8696,663 +2020-07-02,Plymouth,Massachusetts,25023,8707,663 +2020-07-03,Plymouth,Massachusetts,25023,8722,665 +2020-07-04,Plymouth,Massachusetts,25023,8734,667 +2020-07-05,Plymouth,Massachusetts,25023,8740,668 +2020-07-06,Plymouth,Massachusetts,25023,8748,668 +2020-07-07,Plymouth,Massachusetts,25023,8757,669 +2020-07-08,Plymouth,Massachusetts,25023,8765,673 +2020-07-09,Plymouth,Massachusetts,25023,8777,674 +2020-02-01,Suffolk,Massachusetts,25025,1,0 +2020-02-02,Suffolk,Massachusetts,25025,1,0 +2020-02-03,Suffolk,Massachusetts,25025,1,0 +2020-02-04,Suffolk,Massachusetts,25025,1,0 +2020-02-05,Suffolk,Massachusetts,25025,1,0 +2020-02-06,Suffolk,Massachusetts,25025,1,0 +2020-02-07,Suffolk,Massachusetts,25025,1,0 +2020-02-08,Suffolk,Massachusetts,25025,1,0 +2020-02-09,Suffolk,Massachusetts,25025,1,0 +2020-02-10,Suffolk,Massachusetts,25025,1,0 +2020-02-11,Suffolk,Massachusetts,25025,1,0 +2020-02-12,Suffolk,Massachusetts,25025,1,0 +2020-02-13,Suffolk,Massachusetts,25025,1,0 +2020-02-14,Suffolk,Massachusetts,25025,1,0 +2020-02-15,Suffolk,Massachusetts,25025,1,0 +2020-02-16,Suffolk,Massachusetts,25025,1,0 +2020-02-17,Suffolk,Massachusetts,25025,1,0 +2020-02-18,Suffolk,Massachusetts,25025,1,0 +2020-02-19,Suffolk,Massachusetts,25025,1,0 +2020-02-20,Suffolk,Massachusetts,25025,1,0 +2020-02-21,Suffolk,Massachusetts,25025,1,0 +2020-02-22,Suffolk,Massachusetts,25025,1,0 +2020-02-23,Suffolk,Massachusetts,25025,1,0 +2020-02-24,Suffolk,Massachusetts,25025,1,0 +2020-02-25,Suffolk,Massachusetts,25025,1,0 +2020-02-26,Suffolk,Massachusetts,25025,1,0 +2020-02-27,Suffolk,Massachusetts,25025,1,0 +2020-02-28,Suffolk,Massachusetts,25025,1,0 +2020-02-29,Suffolk,Massachusetts,25025,1,0 +2020-03-01,Suffolk,Massachusetts,25025,1,0 +2020-03-02,Suffolk,Massachusetts,25025,1,0 +2020-03-03,Suffolk,Massachusetts,25025,1,0 +2020-03-04,Suffolk,Massachusetts,25025,1,0 +2020-03-05,Suffolk,Massachusetts,25025,1,0 +2020-03-06,Suffolk,Massachusetts,25025,4,0 +2020-03-07,Suffolk,Massachusetts,25025,4,0 +2020-03-08,Suffolk,Massachusetts,25025,9,0 +2020-03-09,Suffolk,Massachusetts,25025,10,0 +2020-03-10,Suffolk,Massachusetts,25025,20,0 +2020-03-11,Suffolk,Massachusetts,25025,20,0 +2020-03-12,Suffolk,Massachusetts,25025,22,0 +2020-03-13,Suffolk,Massachusetts,25025,26,0 +2020-03-14,Suffolk,Massachusetts,25025,27,0 +2020-03-15,Suffolk,Massachusetts,25025,31,0 +2020-03-16,Suffolk,Massachusetts,25025,42,0 +2020-03-17,Suffolk,Massachusetts,25025,42,0 +2020-03-18,Suffolk,Massachusetts,25025,51,0 +2020-03-19,Suffolk,Massachusetts,25025,72,0 +2020-03-20,Suffolk,Massachusetts,25025,87,1 +2020-03-21,Suffolk,Massachusetts,25025,108,1 +2020-03-22,Suffolk,Massachusetts,25025,126,2 +2020-03-23,Suffolk,Massachusetts,25025,154,3 +2020-03-24,Suffolk,Massachusetts,25025,234,3 +2020-03-25,Suffolk,Massachusetts,25025,342,3 +2020-03-26,Suffolk,Massachusetts,25025,448,4 +2020-03-27,Suffolk,Massachusetts,25025,631,4 +2020-03-28,Suffolk,Massachusetts,25025,843,5 +2020-03-29,Suffolk,Massachusetts,25025,940,5 +2020-03-30,Suffolk,Massachusetts,25025,1115,7 +2020-03-31,Suffolk,Massachusetts,25025,1373,8 +2020-04-01,Suffolk,Massachusetts,25025,1624,15 +2020-04-02,Suffolk,Massachusetts,25025,1896,21 +2020-04-03,Suffolk,Massachusetts,25025,2183,23 +2020-04-04,Suffolk,Massachusetts,25025,2429,28 +2020-04-05,Suffolk,Massachusetts,25025,2658,29 +2020-04-06,Suffolk,Massachusetts,25025,2929,33 +2020-04-07,Suffolk,Massachusetts,25025,3245,42 +2020-04-08,Suffolk,Massachusetts,25025,3600,50 +2020-04-09,Suffolk,Massachusetts,25025,4041,56 +2020-04-10,Suffolk,Massachusetts,25025,4534,73 +2020-04-11,Suffolk,Massachusetts,25025,4926,81 +2020-04-12,Suffolk,Massachusetts,25025,5359,88 +2020-04-13,Suffolk,Massachusetts,25025,5579,106 +2020-04-14,Suffolk,Massachusetts,25025,5872,120 +2020-04-15,Suffolk,Massachusetts,25025,6279,147 +2020-04-16,Suffolk,Massachusetts,25025,6820,166 +2020-04-17,Suffolk,Massachusetts,25025,7272,190 +2020-04-18,Suffolk,Massachusetts,25025,7696,214 +2020-04-19,Suffolk,Massachusetts,25025,8074,238 +2020-04-20,Suffolk,Massachusetts,25025,8314,263 +2020-04-21,Suffolk,Massachusetts,25025,8669,285 +2020-04-22,Suffolk,Massachusetts,25025,9060,318 +2020-04-23,Suffolk,Massachusetts,25025,9739,346 +2020-04-24,Suffolk,Massachusetts,25025,10724,372 +2020-04-25,Suffolk,Massachusetts,25025,11218,391 +2020-04-26,Suffolk,Massachusetts,25025,11543,424 +2020-04-27,Suffolk,Massachusetts,25025,11883,448 +2020-04-28,Suffolk,Massachusetts,25025,12140,469 +2020-04-29,Suffolk,Massachusetts,25025,12539,504 +2020-04-30,Suffolk,Massachusetts,25025,12890,524 +2020-05-01,Suffolk,Massachusetts,25025,13295,550 +2020-05-02,Suffolk,Massachusetts,25025,13606,569 +2020-05-03,Suffolk,Massachusetts,25025,13777,588 +2020-05-04,Suffolk,Massachusetts,25025,13941,596 +2020-05-05,Suffolk,Massachusetts,25025,14173,609 +2020-05-06,Suffolk,Massachusetts,25025,14476,642 +2020-05-07,Suffolk,Massachusetts,25025,14732,663 +2020-05-08,Suffolk,Massachusetts,25025,14944,683 +2020-05-09,Suffolk,Massachusetts,25025,15119,703 +2020-05-10,Suffolk,Massachusetts,25025,15279,718 +2020-05-11,Suffolk,Massachusetts,25025,15356,731 +2020-05-12,Suffolk,Massachusetts,25025,15454,732 +2020-05-13,Suffolk,Massachusetts,25025,15587,749 +2020-05-14,Suffolk,Massachusetts,25025,15881,759 +2020-05-15,Suffolk,Massachusetts,25025,15996,768 +2020-05-16,Suffolk,Massachusetts,25025,16346,778 +2020-05-17,Suffolk,Massachusetts,25025,16479,787 +2020-05-18,Suffolk,Massachusetts,25025,16671,793 +2020-05-19,Suffolk,Massachusetts,25025,16825,797 +2020-05-20,Suffolk,Massachusetts,25025,16962,807 +2020-05-21,Suffolk,Massachusetts,25025,17089,813 +2020-05-22,Suffolk,Massachusetts,25025,17180,818 +2020-05-23,Suffolk,Massachusetts,25025,17291,827 +2020-05-24,Suffolk,Massachusetts,25025,17417,838 +2020-05-25,Suffolk,Massachusetts,25025,17480,839 +2020-05-26,Suffolk,Massachusetts,25025,17533,844 +2020-05-27,Suffolk,Massachusetts,25025,17596,850 +2020-05-28,Suffolk,Massachusetts,25025,17698,852 +2020-05-29,Suffolk,Massachusetts,25025,17786,861 +2020-05-30,Suffolk,Massachusetts,25025,17873,868 +2020-05-31,Suffolk,Massachusetts,25025,17936,871 +2020-06-01,Suffolk,Massachusetts,25025,18581,896 +2020-06-02,Suffolk,Massachusetts,25025,18636,902 +2020-06-03,Suffolk,Massachusetts,25025,18733,908 +2020-06-04,Suffolk,Massachusetts,25025,18790,913 +2020-06-05,Suffolk,Massachusetts,25025,18858,922 +2020-06-06,Suffolk,Massachusetts,25025,18955,923 +2020-06-07,Suffolk,Massachusetts,25025,19001,924 +2020-06-08,Suffolk,Massachusetts,25025,19028,931 +2020-06-09,Suffolk,Massachusetts,25025,19067,935 +2020-06-10,Suffolk,Massachusetts,25025,19099,936 +2020-06-11,Suffolk,Massachusetts,25025,19195,938 +2020-06-12,Suffolk,Massachusetts,25025,19249,941 +2020-06-13,Suffolk,Massachusetts,25025,19299,943 +2020-06-14,Suffolk,Massachusetts,25025,19335,950 +2020-06-15,Suffolk,Massachusetts,25025,19334,951 +2020-06-16,Suffolk,Massachusetts,25025,19367,952 +2020-06-17,Suffolk,Massachusetts,25025,19434,959 +2020-06-18,Suffolk,Massachusetts,25025,19477,963 +2020-06-19,Suffolk,Massachusetts,25025,19493,971 +2020-06-20,Suffolk,Massachusetts,25025,19528,973 +2020-06-21,Suffolk,Massachusetts,25025,19551,978 +2020-06-22,Suffolk,Massachusetts,25025,19567,979 +2020-06-23,Suffolk,Massachusetts,25025,19601,976 +2020-06-24,Suffolk,Massachusetts,25025,19628,984 +2020-06-25,Suffolk,Massachusetts,25025,19664,990 +2020-06-26,Suffolk,Massachusetts,25025,19707,997 +2020-06-27,Suffolk,Massachusetts,25025,19764,1004 +2020-06-28,Suffolk,Massachusetts,25025,19795,1004 +2020-06-29,Suffolk,Massachusetts,25025,19795,1007 +2020-06-30,Suffolk,Massachusetts,25025,19819,1002 +2020-07-01,Suffolk,Massachusetts,25025,19853,1004 +2020-07-02,Suffolk,Massachusetts,25025,19892,1008 +2020-07-03,Suffolk,Massachusetts,25025,19936,1009 +2020-07-04,Suffolk,Massachusetts,25025,19972,1008 +2020-07-05,Suffolk,Massachusetts,25025,19985,1007 +2020-07-06,Suffolk,Massachusetts,25025,20014,1008 +2020-07-07,Suffolk,Massachusetts,25025,20048,1008 +2020-07-08,Suffolk,Massachusetts,25025,20120,1012 +2020-07-09,Suffolk,Massachusetts,25025,20172,1013 +2020-03-08,Worcester,Massachusetts,25027,1,0 +2020-03-09,Worcester,Massachusetts,25027,1,0 +2020-03-10,Worcester,Massachusetts,25027,1,0 +2020-03-11,Worcester,Massachusetts,25027,2,0 +2020-03-12,Worcester,Massachusetts,25027,2,0 +2020-03-13,Worcester,Massachusetts,25027,2,0 +2020-03-14,Worcester,Massachusetts,25027,2,0 +2020-03-15,Worcester,Massachusetts,25027,6,0 +2020-03-16,Worcester,Massachusetts,25027,8,0 +2020-03-17,Worcester,Massachusetts,25027,8,0 +2020-03-18,Worcester,Massachusetts,25027,10,0 +2020-03-19,Worcester,Massachusetts,25027,14,0 +2020-03-20,Worcester,Massachusetts,25027,19,0 +2020-03-21,Worcester,Massachusetts,25027,24,0 +2020-03-22,Worcester,Massachusetts,25027,37,0 +2020-03-23,Worcester,Massachusetts,25027,42,1 +2020-03-24,Worcester,Massachusetts,25027,73,1 +2020-03-25,Worcester,Massachusetts,25027,129,3 +2020-03-26,Worcester,Massachusetts,25027,166,4 +2020-03-27,Worcester,Massachusetts,25027,219,4 +2020-03-28,Worcester,Massachusetts,25027,291,6 +2020-03-29,Worcester,Massachusetts,25027,337,6 +2020-03-30,Worcester,Massachusetts,25027,390,6 +2020-03-31,Worcester,Massachusetts,25027,433,8 +2020-04-01,Worcester,Massachusetts,25027,563,10 +2020-04-02,Worcester,Massachusetts,25027,667,14 +2020-04-03,Worcester,Massachusetts,25027,825,15 +2020-04-04,Worcester,Massachusetts,25027,915,18 +2020-04-05,Worcester,Massachusetts,25027,978,18 +2020-04-06,Worcester,Massachusetts,25027,1077,19 +2020-04-07,Worcester,Massachusetts,25027,1172,24 +2020-04-08,Worcester,Massachusetts,25027,1296,30 +2020-04-09,Worcester,Massachusetts,25027,1461,31 +2020-04-10,Worcester,Massachusetts,25027,1678,38 +2020-04-11,Worcester,Massachusetts,25027,1822,42 +2020-04-12,Worcester,Massachusetts,25027,2032,49 +2020-04-13,Worcester,Massachusetts,25027,2128,51 +2020-04-14,Worcester,Massachusetts,25027,2246,57 +2020-04-15,Worcester,Massachusetts,25027,2350,74 +2020-04-16,Worcester,Massachusetts,25027,2503,84 +2020-04-17,Worcester,Massachusetts,25027,2765,92 +2020-04-18,Worcester,Massachusetts,25027,2952,103 +2020-04-19,Worcester,Massachusetts,25027,3069,114 +2020-04-20,Worcester,Massachusetts,25027,3179,117 +2020-04-21,Worcester,Massachusetts,25027,3341,133 +2020-04-22,Worcester,Massachusetts,25027,3456,143 +2020-04-23,Worcester,Massachusetts,25027,3798,155 +2020-04-24,Worcester,Massachusetts,25027,4227,166 +2020-04-25,Worcester,Massachusetts,25027,4460,183 +2020-04-26,Worcester,Massachusetts,25027,4572,206 +2020-04-27,Worcester,Massachusetts,25027,4744,215 +2020-04-28,Worcester,Massachusetts,25027,4999,229 +2020-04-29,Worcester,Massachusetts,25027,5300,253 +2020-04-30,Worcester,Massachusetts,25027,5550,265 +2020-05-01,Worcester,Massachusetts,25027,5787,278 +2020-05-02,Worcester,Massachusetts,25027,6129,292 +2020-05-03,Worcester,Massachusetts,25027,6288,312 +2020-05-04,Worcester,Massachusetts,25027,6471,320 +2020-05-05,Worcester,Massachusetts,25027,6597,331 +2020-05-06,Worcester,Massachusetts,25027,6992,365 +2020-05-07,Worcester,Massachusetts,25027,7197,385 +2020-05-08,Worcester,Massachusetts,25027,7410,404 +2020-05-09,Worcester,Massachusetts,25027,7611,420 +2020-05-10,Worcester,Massachusetts,25027,7743,444 +2020-05-11,Worcester,Massachusetts,25027,7818,457 +2020-05-12,Worcester,Massachusetts,25027,7959,459 +2020-05-13,Worcester,Massachusetts,25027,8241,489 +2020-05-14,Worcester,Massachusetts,25027,8555,524 +2020-05-15,Worcester,Massachusetts,25027,8786,538 +2020-05-16,Worcester,Massachusetts,25027,9067,554 +2020-05-17,Worcester,Massachusetts,25027,9252,569 +2020-05-18,Worcester,Massachusetts,25027,9442,581 +2020-05-19,Worcester,Massachusetts,25027,9582,597 +2020-05-20,Worcester,Massachusetts,25027,9780,625 +2020-05-21,Worcester,Massachusetts,25027,9997,640 +2020-05-22,Worcester,Massachusetts,25027,10101,652 +2020-05-23,Worcester,Massachusetts,25027,10251,667 +2020-05-24,Worcester,Massachusetts,25027,10431,679 +2020-05-25,Worcester,Massachusetts,25027,10505,692 +2020-05-26,Worcester,Massachusetts,25027,10557,700 +2020-05-27,Worcester,Massachusetts,25027,10647,716 +2020-05-28,Worcester,Massachusetts,25027,10713,738 +2020-05-29,Worcester,Massachusetts,25027,10816,746 +2020-05-30,Worcester,Massachusetts,25027,10901,753 +2020-05-31,Worcester,Massachusetts,25027,11018,767 +2020-06-01,Worcester,Massachusetts,25027,11352,779 +2020-06-02,Worcester,Massachusetts,25027,11438,790 +2020-06-03,Worcester,Massachusetts,25027,11465,804 +2020-06-04,Worcester,Massachusetts,25027,11529,806 +2020-06-05,Worcester,Massachusetts,25027,11600,813 +2020-06-06,Worcester,Massachusetts,25027,11696,820 +2020-06-07,Worcester,Massachusetts,25027,11732,823 +2020-06-08,Worcester,Massachusetts,25027,11758,827 +2020-06-09,Worcester,Massachusetts,25027,11803,834 +2020-06-10,Worcester,Massachusetts,25027,11820,844 +2020-06-11,Worcester,Massachusetts,25027,11885,849 +2020-06-12,Worcester,Massachusetts,25027,11937,856 +2020-06-13,Worcester,Massachusetts,25027,11961,863 +2020-06-14,Worcester,Massachusetts,25027,11975,870 +2020-06-15,Worcester,Massachusetts,25027,11991,871 +2020-06-16,Worcester,Massachusetts,25027,12014,877 +2020-06-17,Worcester,Massachusetts,25027,12032,888 +2020-06-18,Worcester,Massachusetts,25027,12050,889 +2020-06-19,Worcester,Massachusetts,25027,12085,893 +2020-06-20,Worcester,Massachusetts,25027,12122,897 +2020-06-21,Worcester,Massachusetts,25027,12130,900 +2020-06-22,Worcester,Massachusetts,25027,12143,903 +2020-06-23,Worcester,Massachusetts,25027,12192,905 +2020-06-24,Worcester,Massachusetts,25027,12207,914 +2020-06-25,Worcester,Massachusetts,25027,12236,917 +2020-06-26,Worcester,Massachusetts,25027,12240,920 +2020-06-27,Worcester,Massachusetts,25027,12303,920 +2020-06-28,Worcester,Massachusetts,25027,12324,921 +2020-06-29,Worcester,Massachusetts,25027,12342,924 +2020-06-30,Worcester,Massachusetts,25027,12350,920 +2020-07-01,Worcester,Massachusetts,25027,12376,924 +2020-07-02,Worcester,Massachusetts,25027,12407,934 +2020-07-03,Worcester,Massachusetts,25027,12443,935 +2020-07-04,Worcester,Massachusetts,25027,12481,937 +2020-07-05,Worcester,Massachusetts,25027,12499,941 +2020-07-06,Worcester,Massachusetts,25027,12515,942 +2020-07-07,Worcester,Massachusetts,25027,12534,943 +2020-07-08,Worcester,Massachusetts,25027,12562,949 +2020-07-09,Worcester,Massachusetts,25027,12583,954 +2020-04-15,Alcona,Michigan,26001,1,0 +2020-04-16,Alcona,Michigan,26001,1,0 +2020-04-17,Alcona,Michigan,26001,1,0 +2020-04-18,Alcona,Michigan,26001,1,0 +2020-04-19,Alcona,Michigan,26001,1,0 +2020-04-20,Alcona,Michigan,26001,1,0 +2020-04-21,Alcona,Michigan,26001,3,0 +2020-04-22,Alcona,Michigan,26001,4,0 +2020-04-23,Alcona,Michigan,26001,4,0 +2020-04-24,Alcona,Michigan,26001,4,0 +2020-04-25,Alcona,Michigan,26001,4,0 +2020-04-26,Alcona,Michigan,26001,4,0 +2020-04-27,Alcona,Michigan,26001,4,0 +2020-04-28,Alcona,Michigan,26001,4,0 +2020-04-29,Alcona,Michigan,26001,4,0 +2020-04-30,Alcona,Michigan,26001,4,1 +2020-05-01,Alcona,Michigan,26001,4,1 +2020-05-02,Alcona,Michigan,26001,5,1 +2020-05-03,Alcona,Michigan,26001,4,1 +2020-05-04,Alcona,Michigan,26001,4,1 +2020-05-05,Alcona,Michigan,26001,4,1 +2020-05-06,Alcona,Michigan,26001,4,1 +2020-05-07,Alcona,Michigan,26001,4,1 +2020-05-08,Alcona,Michigan,26001,4,1 +2020-05-09,Alcona,Michigan,26001,4,1 +2020-05-10,Alcona,Michigan,26001,4,1 +2020-05-11,Alcona,Michigan,26001,4,1 +2020-05-12,Alcona,Michigan,26001,4,1 +2020-05-13,Alcona,Michigan,26001,4,1 +2020-05-14,Alcona,Michigan,26001,5,1 +2020-05-15,Alcona,Michigan,26001,6,1 +2020-05-16,Alcona,Michigan,26001,6,1 +2020-05-17,Alcona,Michigan,26001,6,1 +2020-05-18,Alcona,Michigan,26001,6,1 +2020-05-19,Alcona,Michigan,26001,6,1 +2020-05-20,Alcona,Michigan,26001,8,1 +2020-05-21,Alcona,Michigan,26001,9,1 +2020-05-22,Alcona,Michigan,26001,9,1 +2020-05-23,Alcona,Michigan,26001,10,1 +2020-05-24,Alcona,Michigan,26001,11,1 +2020-05-25,Alcona,Michigan,26001,11,1 +2020-05-26,Alcona,Michigan,26001,11,1 +2020-05-27,Alcona,Michigan,26001,12,1 +2020-05-28,Alcona,Michigan,26001,14,1 +2020-05-29,Alcona,Michigan,26001,14,1 +2020-05-30,Alcona,Michigan,26001,14,1 +2020-05-31,Alcona,Michigan,26001,15,1 +2020-06-01,Alcona,Michigan,26001,21,1 +2020-06-02,Alcona,Michigan,26001,21,1 +2020-06-03,Alcona,Michigan,26001,20,1 +2020-06-04,Alcona,Michigan,26001,21,1 +2020-06-05,Alcona,Michigan,26001,21,1 +2020-06-06,Alcona,Michigan,26001,21,1 +2020-06-07,Alcona,Michigan,26001,21,1 +2020-06-08,Alcona,Michigan,26001,21,1 +2020-06-09,Alcona,Michigan,26001,21,1 +2020-06-10,Alcona,Michigan,26001,21,1 +2020-06-11,Alcona,Michigan,26001,21,1 +2020-06-12,Alcona,Michigan,26001,21,1 +2020-06-13,Alcona,Michigan,26001,21,1 +2020-06-14,Alcona,Michigan,26001,21,1 +2020-06-15,Alcona,Michigan,26001,21,1 +2020-06-16,Alcona,Michigan,26001,21,1 +2020-06-17,Alcona,Michigan,26001,21,1 +2020-06-18,Alcona,Michigan,26001,21,1 +2020-06-19,Alcona,Michigan,26001,21,1 +2020-06-20,Alcona,Michigan,26001,21,1 +2020-06-21,Alcona,Michigan,26001,21,1 +2020-06-22,Alcona,Michigan,26001,21,1 +2020-06-23,Alcona,Michigan,26001,21,1 +2020-06-24,Alcona,Michigan,26001,21,1 +2020-06-25,Alcona,Michigan,26001,21,1 +2020-06-26,Alcona,Michigan,26001,21,1 +2020-06-27,Alcona,Michigan,26001,21,1 +2020-06-28,Alcona,Michigan,26001,21,1 +2020-06-29,Alcona,Michigan,26001,21,1 +2020-06-30,Alcona,Michigan,26001,22,1 +2020-07-01,Alcona,Michigan,26001,21,1 +2020-07-02,Alcona,Michigan,26001,22,1 +2020-07-03,Alcona,Michigan,26001,22,1 +2020-07-04,Alcona,Michigan,26001,22,1 +2020-07-05,Alcona,Michigan,26001,22,1 +2020-07-06,Alcona,Michigan,26001,22,1 +2020-07-07,Alcona,Michigan,26001,22,1 +2020-07-08,Alcona,Michigan,26001,22,1 +2020-07-09,Alcona,Michigan,26001,24,1 +2020-06-10,Alger,Michigan,26003,1,0 +2020-06-11,Alger,Michigan,26003,1,0 +2020-06-12,Alger,Michigan,26003,1,0 +2020-06-13,Alger,Michigan,26003,1,0 +2020-06-14,Alger,Michigan,26003,1,0 +2020-06-15,Alger,Michigan,26003,1,0 +2020-06-16,Alger,Michigan,26003,1,0 +2020-06-17,Alger,Michigan,26003,2,0 +2020-06-18,Alger,Michigan,26003,2,0 +2020-06-19,Alger,Michigan,26003,2,0 +2020-06-20,Alger,Michigan,26003,2,0 +2020-06-21,Alger,Michigan,26003,2,0 +2020-06-22,Alger,Michigan,26003,2,0 +2020-06-23,Alger,Michigan,26003,2,0 +2020-06-24,Alger,Michigan,26003,2,0 +2020-06-25,Alger,Michigan,26003,2,0 +2020-06-26,Alger,Michigan,26003,2,0 +2020-06-27,Alger,Michigan,26003,3,0 +2020-06-28,Alger,Michigan,26003,3,0 +2020-06-29,Alger,Michigan,26003,3,0 +2020-06-30,Alger,Michigan,26003,3,0 +2020-07-01,Alger,Michigan,26003,4,0 +2020-07-02,Alger,Michigan,26003,4,0 +2020-07-03,Alger,Michigan,26003,4,0 +2020-07-04,Alger,Michigan,26003,4,0 +2020-07-05,Alger,Michigan,26003,4,0 +2020-07-06,Alger,Michigan,26003,4,0 +2020-07-07,Alger,Michigan,26003,4,0 +2020-07-08,Alger,Michigan,26003,4,0 +2020-07-09,Alger,Michigan,26003,4,0 +2020-03-21,Allegan,Michigan,26005,1,0 +2020-03-22,Allegan,Michigan,26005,1,0 +2020-03-23,Allegan,Michigan,26005,1,0 +2020-03-24,Allegan,Michigan,26005,1,0 +2020-03-25,Allegan,Michigan,26005,1,0 +2020-03-26,Allegan,Michigan,26005,1,0 +2020-03-27,Allegan,Michigan,26005,1,0 +2020-03-28,Allegan,Michigan,26005,2,0 +2020-03-29,Allegan,Michigan,26005,2,0 +2020-03-30,Allegan,Michigan,26005,2,0 +2020-03-31,Allegan,Michigan,26005,3,0 +2020-04-01,Allegan,Michigan,26005,5,0 +2020-04-02,Allegan,Michigan,26005,5,0 +2020-04-03,Allegan,Michigan,26005,6,0 +2020-04-04,Allegan,Michigan,26005,10,0 +2020-04-05,Allegan,Michigan,26005,14,0 +2020-04-06,Allegan,Michigan,26005,15,0 +2020-04-07,Allegan,Michigan,26005,18,0 +2020-04-08,Allegan,Michigan,26005,18,0 +2020-04-09,Allegan,Michigan,26005,18,0 +2020-04-10,Allegan,Michigan,26005,19,0 +2020-04-11,Allegan,Michigan,26005,19,0 +2020-04-12,Allegan,Michigan,26005,21,0 +2020-04-13,Allegan,Michigan,26005,23,0 +2020-04-14,Allegan,Michigan,26005,23,0 +2020-04-15,Allegan,Michigan,26005,25,0 +2020-04-16,Allegan,Michigan,26005,25,0 +2020-04-17,Allegan,Michigan,26005,29,0 +2020-04-18,Allegan,Michigan,26005,33,0 +2020-04-19,Allegan,Michigan,26005,41,0 +2020-04-20,Allegan,Michigan,26005,42,0 +2020-04-21,Allegan,Michigan,26005,47,0 +2020-04-22,Allegan,Michigan,26005,50,0 +2020-04-23,Allegan,Michigan,26005,56,0 +2020-04-24,Allegan,Michigan,26005,60,1 +2020-04-25,Allegan,Michigan,26005,65,1 +2020-04-26,Allegan,Michigan,26005,69,1 +2020-04-27,Allegan,Michigan,26005,72,1 +2020-04-28,Allegan,Michigan,26005,84,1 +2020-04-29,Allegan,Michigan,26005,94,2 +2020-04-30,Allegan,Michigan,26005,98,2 +2020-05-01,Allegan,Michigan,26005,104,2 +2020-05-02,Allegan,Michigan,26005,108,2 +2020-05-03,Allegan,Michigan,26005,113,2 +2020-05-04,Allegan,Michigan,26005,116,2 +2020-05-05,Allegan,Michigan,26005,120,2 +2020-05-06,Allegan,Michigan,26005,124,2 +2020-05-07,Allegan,Michigan,26005,126,2 +2020-05-08,Allegan,Michigan,26005,130,2 +2020-05-09,Allegan,Michigan,26005,136,2 +2020-05-10,Allegan,Michigan,26005,150,2 +2020-05-11,Allegan,Michigan,26005,157,2 +2020-05-12,Allegan,Michigan,26005,161,2 +2020-05-13,Allegan,Michigan,26005,165,2 +2020-05-14,Allegan,Michigan,26005,168,2 +2020-05-15,Allegan,Michigan,26005,173,2 +2020-05-16,Allegan,Michigan,26005,174,2 +2020-05-17,Allegan,Michigan,26005,179,2 +2020-05-18,Allegan,Michigan,26005,186,2 +2020-05-19,Allegan,Michigan,26005,184,3 +2020-05-20,Allegan,Michigan,26005,191,5 +2020-05-21,Allegan,Michigan,26005,195,5 +2020-05-22,Allegan,Michigan,26005,197,6 +2020-05-23,Allegan,Michigan,26005,202,7 +2020-05-24,Allegan,Michigan,26005,210,7 +2020-05-25,Allegan,Michigan,26005,210,6 +2020-05-26,Allegan,Michigan,26005,212,6 +2020-05-27,Allegan,Michigan,26005,211,6 +2020-05-28,Allegan,Michigan,26005,214,6 +2020-05-29,Allegan,Michigan,26005,216,6 +2020-05-30,Allegan,Michigan,26005,217,6 +2020-05-31,Allegan,Michigan,26005,218,6 +2020-06-01,Allegan,Michigan,26005,257,6 +2020-06-02,Allegan,Michigan,26005,258,6 +2020-06-03,Allegan,Michigan,26005,258,6 +2020-06-04,Allegan,Michigan,26005,261,6 +2020-06-05,Allegan,Michigan,26005,263,6 +2020-06-06,Allegan,Michigan,26005,263,6 +2020-06-07,Allegan,Michigan,26005,266,6 +2020-06-08,Allegan,Michigan,26005,268,6 +2020-06-09,Allegan,Michigan,26005,273,6 +2020-06-10,Allegan,Michigan,26005,274,6 +2020-06-11,Allegan,Michigan,26005,277,6 +2020-06-12,Allegan,Michigan,26005,280,6 +2020-06-13,Allegan,Michigan,26005,283,6 +2020-06-14,Allegan,Michigan,26005,286,6 +2020-06-15,Allegan,Michigan,26005,287,6 +2020-06-16,Allegan,Michigan,26005,288,6 +2020-06-17,Allegan,Michigan,26005,288,6 +2020-06-18,Allegan,Michigan,26005,291,6 +2020-06-19,Allegan,Michigan,26005,292,6 +2020-06-20,Allegan,Michigan,26005,297,6 +2020-06-21,Allegan,Michigan,26005,299,6 +2020-06-22,Allegan,Michigan,26005,301,6 +2020-06-23,Allegan,Michigan,26005,301,6 +2020-06-24,Allegan,Michigan,26005,303,6 +2020-06-25,Allegan,Michigan,26005,301,6 +2020-06-26,Allegan,Michigan,26005,302,6 +2020-06-27,Allegan,Michigan,26005,303,6 +2020-06-28,Allegan,Michigan,26005,306,6 +2020-06-29,Allegan,Michigan,26005,308,6 +2020-06-30,Allegan,Michigan,26005,312,7 +2020-07-01,Allegan,Michigan,26005,317,7 +2020-07-02,Allegan,Michigan,26005,325,7 +2020-07-03,Allegan,Michigan,26005,328,7 +2020-07-04,Allegan,Michigan,26005,331,7 +2020-07-05,Allegan,Michigan,26005,333,7 +2020-07-06,Allegan,Michigan,26005,338,7 +2020-07-07,Allegan,Michigan,26005,346,7 +2020-07-08,Allegan,Michigan,26005,353,7 +2020-07-09,Allegan,Michigan,26005,358,7 +2020-04-11,Alpena,Michigan,26007,1,0 +2020-04-12,Alpena,Michigan,26007,1,0 +2020-04-13,Alpena,Michigan,26007,1,0 +2020-04-14,Alpena,Michigan,26007,1,0 +2020-04-15,Alpena,Michigan,26007,1,0 +2020-04-16,Alpena,Michigan,26007,2,0 +2020-04-17,Alpena,Michigan,26007,2,1 +2020-04-18,Alpena,Michigan,26007,2,1 +2020-04-19,Alpena,Michigan,26007,14,1 +2020-04-20,Alpena,Michigan,26007,15,1 +2020-04-21,Alpena,Michigan,26007,35,1 +2020-04-22,Alpena,Michigan,26007,38,1 +2020-04-23,Alpena,Michigan,26007,47,1 +2020-04-24,Alpena,Michigan,26007,60,2 +2020-04-25,Alpena,Michigan,26007,60,2 +2020-04-26,Alpena,Michigan,26007,60,2 +2020-04-27,Alpena,Michigan,26007,60,2 +2020-04-28,Alpena,Michigan,26007,67,4 +2020-04-29,Alpena,Michigan,26007,76,4 +2020-04-30,Alpena,Michigan,26007,82,5 +2020-05-01,Alpena,Michigan,26007,82,6 +2020-05-02,Alpena,Michigan,26007,82,6 +2020-05-03,Alpena,Michigan,26007,83,6 +2020-05-04,Alpena,Michigan,26007,83,7 +2020-05-05,Alpena,Michigan,26007,85,7 +2020-05-06,Alpena,Michigan,26007,86,7 +2020-05-07,Alpena,Michigan,26007,86,8 +2020-05-08,Alpena,Michigan,26007,86,8 +2020-05-09,Alpena,Michigan,26007,87,8 +2020-05-10,Alpena,Michigan,26007,87,8 +2020-05-11,Alpena,Michigan,26007,87,8 +2020-05-12,Alpena,Michigan,26007,87,8 +2020-05-13,Alpena,Michigan,26007,88,8 +2020-05-14,Alpena,Michigan,26007,88,8 +2020-05-15,Alpena,Michigan,26007,90,8 +2020-05-16,Alpena,Michigan,26007,91,9 +2020-05-17,Alpena,Michigan,26007,91,9 +2020-05-18,Alpena,Michigan,26007,91,9 +2020-05-19,Alpena,Michigan,26007,91,9 +2020-05-20,Alpena,Michigan,26007,91,9 +2020-05-21,Alpena,Michigan,26007,92,9 +2020-05-22,Alpena,Michigan,26007,93,9 +2020-05-23,Alpena,Michigan,26007,94,9 +2020-05-24,Alpena,Michigan,26007,95,9 +2020-05-25,Alpena,Michigan,26007,95,9 +2020-05-26,Alpena,Michigan,26007,95,9 +2020-05-27,Alpena,Michigan,26007,95,9 +2020-05-28,Alpena,Michigan,26007,94,9 +2020-05-29,Alpena,Michigan,26007,94,9 +2020-05-30,Alpena,Michigan,26007,94,9 +2020-05-31,Alpena,Michigan,26007,94,9 +2020-06-01,Alpena,Michigan,26007,103,9 +2020-06-02,Alpena,Michigan,26007,103,9 +2020-06-03,Alpena,Michigan,26007,104,9 +2020-06-04,Alpena,Michigan,26007,104,9 +2020-06-05,Alpena,Michigan,26007,103,9 +2020-06-06,Alpena,Michigan,26007,104,9 +2020-06-07,Alpena,Michigan,26007,104,9 +2020-06-08,Alpena,Michigan,26007,107,9 +2020-06-09,Alpena,Michigan,26007,108,9 +2020-06-10,Alpena,Michigan,26007,113,9 +2020-06-11,Alpena,Michigan,26007,114,11 +2020-06-12,Alpena,Michigan,26007,115,12 +2020-06-13,Alpena,Michigan,26007,115,12 +2020-06-14,Alpena,Michigan,26007,115,12 +2020-06-15,Alpena,Michigan,26007,115,13 +2020-06-16,Alpena,Michigan,26007,115,12 +2020-06-17,Alpena,Michigan,26007,115,12 +2020-06-18,Alpena,Michigan,26007,115,12 +2020-06-19,Alpena,Michigan,26007,115,12 +2020-06-20,Alpena,Michigan,26007,115,12 +2020-06-21,Alpena,Michigan,26007,115,12 +2020-06-22,Alpena,Michigan,26007,116,12 +2020-06-23,Alpena,Michigan,26007,116,12 +2020-06-24,Alpena,Michigan,26007,116,12 +2020-06-25,Alpena,Michigan,26007,117,12 +2020-06-26,Alpena,Michigan,26007,117,12 +2020-06-27,Alpena,Michigan,26007,117,12 +2020-06-28,Alpena,Michigan,26007,118,12 +2020-06-29,Alpena,Michigan,26007,119,12 +2020-06-30,Alpena,Michigan,26007,120,12 +2020-07-01,Alpena,Michigan,26007,122,12 +2020-07-02,Alpena,Michigan,26007,122,12 +2020-07-03,Alpena,Michigan,26007,123,12 +2020-07-04,Alpena,Michigan,26007,123,12 +2020-07-05,Alpena,Michigan,26007,123,12 +2020-07-06,Alpena,Michigan,26007,123,12 +2020-07-07,Alpena,Michigan,26007,123,12 +2020-07-08,Alpena,Michigan,26007,123,12 +2020-07-09,Alpena,Michigan,26007,123,12 +2020-03-30,Antrim,Michigan,26009,2,0 +2020-03-31,Antrim,Michigan,26009,3,0 +2020-04-01,Antrim,Michigan,26009,4,0 +2020-04-02,Antrim,Michigan,26009,4,0 +2020-04-03,Antrim,Michigan,26009,4,0 +2020-04-04,Antrim,Michigan,26009,4,0 +2020-04-05,Antrim,Michigan,26009,4,0 +2020-04-06,Antrim,Michigan,26009,5,0 +2020-04-07,Antrim,Michigan,26009,6,0 +2020-04-08,Antrim,Michigan,26009,6,0 +2020-04-09,Antrim,Michigan,26009,6,0 +2020-04-10,Antrim,Michigan,26009,6,0 +2020-04-11,Antrim,Michigan,26009,7,0 +2020-04-12,Antrim,Michigan,26009,8,0 +2020-04-13,Antrim,Michigan,26009,8,0 +2020-04-14,Antrim,Michigan,26009,8,0 +2020-04-15,Antrim,Michigan,26009,9,0 +2020-04-16,Antrim,Michigan,26009,9,0 +2020-04-17,Antrim,Michigan,26009,8,0 +2020-04-18,Antrim,Michigan,26009,8,0 +2020-04-19,Antrim,Michigan,26009,9,0 +2020-04-20,Antrim,Michigan,26009,9,0 +2020-04-21,Antrim,Michigan,26009,9,0 +2020-04-22,Antrim,Michigan,26009,9,0 +2020-04-23,Antrim,Michigan,26009,9,0 +2020-04-24,Antrim,Michigan,26009,9,0 +2020-04-25,Antrim,Michigan,26009,10,1 +2020-04-26,Antrim,Michigan,26009,9,0 +2020-04-27,Antrim,Michigan,26009,9,0 +2020-04-28,Antrim,Michigan,26009,9,0 +2020-04-29,Antrim,Michigan,26009,10,0 +2020-04-30,Antrim,Michigan,26009,10,0 +2020-05-01,Antrim,Michigan,26009,10,0 +2020-05-02,Antrim,Michigan,26009,10,0 +2020-05-03,Antrim,Michigan,26009,10,0 +2020-05-04,Antrim,Michigan,26009,10,0 +2020-05-05,Antrim,Michigan,26009,10,0 +2020-05-06,Antrim,Michigan,26009,10,0 +2020-05-07,Antrim,Michigan,26009,10,0 +2020-05-08,Antrim,Michigan,26009,10,0 +2020-05-09,Antrim,Michigan,26009,10,0 +2020-05-10,Antrim,Michigan,26009,10,0 +2020-05-11,Antrim,Michigan,26009,10,0 +2020-05-12,Antrim,Michigan,26009,10,0 +2020-05-13,Antrim,Michigan,26009,10,0 +2020-05-14,Antrim,Michigan,26009,10,0 +2020-05-15,Antrim,Michigan,26009,10,0 +2020-05-16,Antrim,Michigan,26009,11,0 +2020-05-17,Antrim,Michigan,26009,11,0 +2020-05-18,Antrim,Michigan,26009,11,0 +2020-05-19,Antrim,Michigan,26009,11,0 +2020-05-20,Antrim,Michigan,26009,11,0 +2020-05-21,Antrim,Michigan,26009,11,0 +2020-05-22,Antrim,Michigan,26009,11,0 +2020-05-23,Antrim,Michigan,26009,11,0 +2020-05-24,Antrim,Michigan,26009,11,0 +2020-05-25,Antrim,Michigan,26009,11,0 +2020-05-26,Antrim,Michigan,26009,12,0 +2020-05-27,Antrim,Michigan,26009,12,0 +2020-05-28,Antrim,Michigan,26009,12,0 +2020-05-29,Antrim,Michigan,26009,12,0 +2020-05-30,Antrim,Michigan,26009,12,0 +2020-05-31,Antrim,Michigan,26009,12,0 +2020-06-01,Antrim,Michigan,26009,13,0 +2020-06-02,Antrim,Michigan,26009,13,0 +2020-06-03,Antrim,Michigan,26009,13,0 +2020-06-04,Antrim,Michigan,26009,13,0 +2020-06-05,Antrim,Michigan,26009,13,0 +2020-06-06,Antrim,Michigan,26009,13,0 +2020-06-07,Antrim,Michigan,26009,13,0 +2020-06-08,Antrim,Michigan,26009,13,0 +2020-06-09,Antrim,Michigan,26009,13,0 +2020-06-10,Antrim,Michigan,26009,14,0 +2020-06-11,Antrim,Michigan,26009,14,0 +2020-06-12,Antrim,Michigan,26009,14,0 +2020-06-13,Antrim,Michigan,26009,14,0 +2020-06-14,Antrim,Michigan,26009,14,0 +2020-06-15,Antrim,Michigan,26009,14,0 +2020-06-16,Antrim,Michigan,26009,14,0 +2020-06-17,Antrim,Michigan,26009,14,0 +2020-06-18,Antrim,Michigan,26009,14,0 +2020-06-19,Antrim,Michigan,26009,14,0 +2020-06-20,Antrim,Michigan,26009,16,0 +2020-06-21,Antrim,Michigan,26009,16,0 +2020-06-22,Antrim,Michigan,26009,16,0 +2020-06-23,Antrim,Michigan,26009,16,0 +2020-06-24,Antrim,Michigan,26009,16,0 +2020-06-25,Antrim,Michigan,26009,18,0 +2020-06-26,Antrim,Michigan,26009,18,0 +2020-06-27,Antrim,Michigan,26009,18,0 +2020-06-28,Antrim,Michigan,26009,18,0 +2020-06-29,Antrim,Michigan,26009,18,0 +2020-06-30,Antrim,Michigan,26009,18,0 +2020-07-01,Antrim,Michigan,26009,19,0 +2020-07-02,Antrim,Michigan,26009,20,0 +2020-07-03,Antrim,Michigan,26009,21,0 +2020-07-04,Antrim,Michigan,26009,22,0 +2020-07-05,Antrim,Michigan,26009,23,0 +2020-07-06,Antrim,Michigan,26009,23,0 +2020-07-07,Antrim,Michigan,26009,23,0 +2020-07-08,Antrim,Michigan,26009,24,0 +2020-07-09,Antrim,Michigan,26009,24,0 +2020-03-31,Arenac,Michigan,26011,1,0 +2020-04-01,Arenac,Michigan,26011,1,0 +2020-04-02,Arenac,Michigan,26011,1,0 +2020-04-03,Arenac,Michigan,26011,2,0 +2020-04-04,Arenac,Michigan,26011,3,0 +2020-04-05,Arenac,Michigan,26011,3,0 +2020-04-06,Arenac,Michigan,26011,3,0 +2020-04-07,Arenac,Michigan,26011,3,0 +2020-04-08,Arenac,Michigan,26011,4,0 +2020-04-09,Arenac,Michigan,26011,4,0 +2020-04-10,Arenac,Michigan,26011,4,0 +2020-04-11,Arenac,Michigan,26011,4,0 +2020-04-12,Arenac,Michigan,26011,5,0 +2020-04-13,Arenac,Michigan,26011,5,0 +2020-04-14,Arenac,Michigan,26011,5,0 +2020-04-15,Arenac,Michigan,26011,7,0 +2020-04-16,Arenac,Michigan,26011,7,0 +2020-04-17,Arenac,Michigan,26011,7,0 +2020-04-18,Arenac,Michigan,26011,9,0 +2020-04-19,Arenac,Michigan,26011,11,0 +2020-04-20,Arenac,Michigan,26011,12,1 +2020-04-21,Arenac,Michigan,26011,13,1 +2020-04-22,Arenac,Michigan,26011,13,1 +2020-04-23,Arenac,Michigan,26011,15,1 +2020-04-24,Arenac,Michigan,26011,16,1 +2020-04-25,Arenac,Michigan,26011,16,1 +2020-04-26,Arenac,Michigan,26011,16,1 +2020-04-27,Arenac,Michigan,26011,15,1 +2020-04-28,Arenac,Michigan,26011,18,1 +2020-04-29,Arenac,Michigan,26011,18,1 +2020-04-30,Arenac,Michigan,26011,24,1 +2020-05-01,Arenac,Michigan,26011,26,1 +2020-05-02,Arenac,Michigan,26011,29,1 +2020-05-03,Arenac,Michigan,26011,28,1 +2020-05-04,Arenac,Michigan,26011,28,1 +2020-05-05,Arenac,Michigan,26011,27,1 +2020-05-06,Arenac,Michigan,26011,27,1 +2020-05-07,Arenac,Michigan,26011,27,1 +2020-05-08,Arenac,Michigan,26011,27,1 +2020-05-09,Arenac,Michigan,26011,27,1 +2020-05-10,Arenac,Michigan,26011,27,1 +2020-05-11,Arenac,Michigan,26011,27,1 +2020-05-12,Arenac,Michigan,26011,28,1 +2020-05-13,Arenac,Michigan,26011,28,1 +2020-05-14,Arenac,Michigan,26011,29,1 +2020-05-15,Arenac,Michigan,26011,29,1 +2020-05-16,Arenac,Michigan,26011,30,1 +2020-05-17,Arenac,Michigan,26011,30,1 +2020-05-18,Arenac,Michigan,26011,31,1 +2020-05-19,Arenac,Michigan,26011,31,1 +2020-05-20,Arenac,Michigan,26011,32,1 +2020-05-21,Arenac,Michigan,26011,32,1 +2020-05-22,Arenac,Michigan,26011,32,1 +2020-05-23,Arenac,Michigan,26011,32,1 +2020-05-24,Arenac,Michigan,26011,32,1 +2020-05-25,Arenac,Michigan,26011,33,1 +2020-05-26,Arenac,Michigan,26011,33,1 +2020-05-27,Arenac,Michigan,26011,33,1 +2020-05-28,Arenac,Michigan,26011,33,1 +2020-05-29,Arenac,Michigan,26011,34,1 +2020-05-30,Arenac,Michigan,26011,34,1 +2020-05-31,Arenac,Michigan,26011,34,1 +2020-06-01,Arenac,Michigan,26011,34,1 +2020-06-02,Arenac,Michigan,26011,34,1 +2020-06-03,Arenac,Michigan,26011,34,1 +2020-06-04,Arenac,Michigan,26011,34,1 +2020-06-05,Arenac,Michigan,26011,38,1 +2020-06-06,Arenac,Michigan,26011,38,1 +2020-06-07,Arenac,Michigan,26011,38,1 +2020-06-08,Arenac,Michigan,26011,38,1 +2020-06-09,Arenac,Michigan,26011,38,1 +2020-06-10,Arenac,Michigan,26011,38,1 +2020-06-11,Arenac,Michigan,26011,38,1 +2020-06-12,Arenac,Michigan,26011,38,1 +2020-06-13,Arenac,Michigan,26011,38,1 +2020-06-14,Arenac,Michigan,26011,38,1 +2020-06-15,Arenac,Michigan,26011,38,1 +2020-06-16,Arenac,Michigan,26011,38,1 +2020-06-17,Arenac,Michigan,26011,38,1 +2020-06-18,Arenac,Michigan,26011,38,1 +2020-06-19,Arenac,Michigan,26011,38,1 +2020-06-20,Arenac,Michigan,26011,38,2 +2020-06-21,Arenac,Michigan,26011,38,2 +2020-06-22,Arenac,Michigan,26011,38,2 +2020-06-23,Arenac,Michigan,26011,38,2 +2020-06-24,Arenac,Michigan,26011,38,2 +2020-06-25,Arenac,Michigan,26011,38,2 +2020-06-26,Arenac,Michigan,26011,38,2 +2020-06-27,Arenac,Michigan,26011,38,2 +2020-06-28,Arenac,Michigan,26011,39,2 +2020-06-29,Arenac,Michigan,26011,38,2 +2020-06-30,Arenac,Michigan,26011,38,2 +2020-07-01,Arenac,Michigan,26011,39,2 +2020-07-02,Arenac,Michigan,26011,38,2 +2020-07-03,Arenac,Michigan,26011,38,2 +2020-07-04,Arenac,Michigan,26011,38,2 +2020-07-05,Arenac,Michigan,26011,38,2 +2020-07-06,Arenac,Michigan,26011,38,2 +2020-07-07,Arenac,Michigan,26011,38,2 +2020-07-08,Arenac,Michigan,26011,38,2 +2020-07-09,Arenac,Michigan,26011,38,2 +2020-04-16,Baraga,Michigan,26013,1,0 +2020-04-17,Baraga,Michigan,26013,1,0 +2020-04-18,Baraga,Michigan,26013,1,0 +2020-04-19,Baraga,Michigan,26013,1,0 +2020-04-20,Baraga,Michigan,26013,1,0 +2020-04-21,Baraga,Michigan,26013,1,0 +2020-04-22,Baraga,Michigan,26013,1,0 +2020-04-23,Baraga,Michigan,26013,1,0 +2020-04-24,Baraga,Michigan,26013,1,0 +2020-04-25,Baraga,Michigan,26013,1,0 +2020-04-26,Baraga,Michigan,26013,1,0 +2020-04-27,Baraga,Michigan,26013,1,0 +2020-04-28,Baraga,Michigan,26013,1,0 +2020-04-29,Baraga,Michigan,26013,1,0 +2020-04-30,Baraga,Michigan,26013,1,0 +2020-05-01,Baraga,Michigan,26013,1,0 +2020-05-02,Baraga,Michigan,26013,1,0 +2020-05-03,Baraga,Michigan,26013,1,0 +2020-05-04,Baraga,Michigan,26013,1,0 +2020-05-05,Baraga,Michigan,26013,1,0 +2020-05-06,Baraga,Michigan,26013,1,0 +2020-05-07,Baraga,Michigan,26013,1,0 +2020-05-08,Baraga,Michigan,26013,1,0 +2020-05-09,Baraga,Michigan,26013,1,0 +2020-05-10,Baraga,Michigan,26013,1,0 +2020-05-11,Baraga,Michigan,26013,1,0 +2020-05-12,Baraga,Michigan,26013,1,0 +2020-05-13,Baraga,Michigan,26013,1,0 +2020-05-14,Baraga,Michigan,26013,1,0 +2020-05-15,Baraga,Michigan,26013,1,0 +2020-05-16,Baraga,Michigan,26013,1,0 +2020-05-17,Baraga,Michigan,26013,1,0 +2020-05-18,Baraga,Michigan,26013,1,0 +2020-05-19,Baraga,Michigan,26013,1,0 +2020-05-20,Baraga,Michigan,26013,1,0 +2020-05-21,Baraga,Michigan,26013,1,0 +2020-05-22,Baraga,Michigan,26013,1,0 +2020-05-23,Baraga,Michigan,26013,1,0 +2020-05-24,Baraga,Michigan,26013,1,0 +2020-05-25,Baraga,Michigan,26013,1,0 +2020-05-26,Baraga,Michigan,26013,1,0 +2020-05-27,Baraga,Michigan,26013,1,0 +2020-05-28,Baraga,Michigan,26013,1,0 +2020-05-29,Baraga,Michigan,26013,1,0 +2020-05-30,Baraga,Michigan,26013,1,0 +2020-05-31,Baraga,Michigan,26013,1,0 +2020-06-01,Baraga,Michigan,26013,1,0 +2020-06-02,Baraga,Michigan,26013,1,0 +2020-06-03,Baraga,Michigan,26013,1,0 +2020-06-04,Baraga,Michigan,26013,1,0 +2020-06-05,Baraga,Michigan,26013,1,0 +2020-06-06,Baraga,Michigan,26013,1,0 +2020-06-07,Baraga,Michigan,26013,1,0 +2020-06-08,Baraga,Michigan,26013,1,0 +2020-06-09,Baraga,Michigan,26013,1,0 +2020-06-10,Baraga,Michigan,26013,1,0 +2020-06-11,Baraga,Michigan,26013,1,0 +2020-06-12,Baraga,Michigan,26013,1,0 +2020-06-13,Baraga,Michigan,26013,1,0 +2020-06-14,Baraga,Michigan,26013,1,0 +2020-06-15,Baraga,Michigan,26013,1,0 +2020-06-16,Baraga,Michigan,26013,1,0 +2020-06-17,Baraga,Michigan,26013,1,0 +2020-06-18,Baraga,Michigan,26013,1,0 +2020-06-19,Baraga,Michigan,26013,1,0 +2020-06-20,Baraga,Michigan,26013,1,0 +2020-06-21,Baraga,Michigan,26013,1,0 +2020-06-22,Baraga,Michigan,26013,1,0 +2020-06-23,Baraga,Michigan,26013,1,0 +2020-06-24,Baraga,Michigan,26013,1,0 +2020-06-25,Baraga,Michigan,26013,1,0 +2020-06-26,Baraga,Michigan,26013,4,0 +2020-06-27,Baraga,Michigan,26013,4,0 +2020-06-28,Baraga,Michigan,26013,4,0 +2020-06-29,Baraga,Michigan,26013,5,0 +2020-06-30,Baraga,Michigan,26013,5,0 +2020-07-01,Baraga,Michigan,26013,5,0 +2020-07-02,Baraga,Michigan,26013,5,0 +2020-07-03,Baraga,Michigan,26013,5,0 +2020-07-04,Baraga,Michigan,26013,5,0 +2020-07-05,Baraga,Michigan,26013,5,0 +2020-07-06,Baraga,Michigan,26013,5,0 +2020-07-07,Baraga,Michigan,26013,5,0 +2020-07-08,Baraga,Michigan,26013,5,0 +2020-07-09,Baraga,Michigan,26013,5,0 +2020-03-21,Barry,Michigan,26015,1,0 +2020-03-22,Barry,Michigan,26015,1,0 +2020-03-23,Barry,Michigan,26015,1,0 +2020-03-24,Barry,Michigan,26015,1,0 +2020-03-25,Barry,Michigan,26015,1,0 +2020-03-26,Barry,Michigan,26015,1,0 +2020-03-27,Barry,Michigan,26015,1,0 +2020-03-28,Barry,Michigan,26015,1,0 +2020-03-29,Barry,Michigan,26015,1,0 +2020-03-30,Barry,Michigan,26015,1,0 +2020-03-31,Barry,Michigan,26015,2,0 +2020-04-01,Barry,Michigan,26015,2,0 +2020-04-02,Barry,Michigan,26015,4,0 +2020-04-03,Barry,Michigan,26015,5,0 +2020-04-04,Barry,Michigan,26015,5,0 +2020-04-05,Barry,Michigan,26015,6,0 +2020-04-06,Barry,Michigan,26015,7,0 +2020-04-07,Barry,Michigan,26015,7,0 +2020-04-08,Barry,Michigan,26015,7,0 +2020-04-09,Barry,Michigan,26015,7,0 +2020-04-10,Barry,Michigan,26015,7,0 +2020-04-11,Barry,Michigan,26015,8,0 +2020-04-12,Barry,Michigan,26015,8,0 +2020-04-13,Barry,Michigan,26015,11,1 +2020-04-14,Barry,Michigan,26015,14,1 +2020-04-15,Barry,Michigan,26015,18,1 +2020-04-16,Barry,Michigan,26015,20,1 +2020-04-17,Barry,Michigan,26015,21,1 +2020-04-18,Barry,Michigan,26015,21,1 +2020-04-19,Barry,Michigan,26015,25,1 +2020-04-20,Barry,Michigan,26015,26,1 +2020-04-21,Barry,Michigan,26015,26,1 +2020-04-22,Barry,Michigan,26015,28,1 +2020-04-23,Barry,Michigan,26015,28,1 +2020-04-24,Barry,Michigan,26015,29,1 +2020-04-25,Barry,Michigan,26015,28,1 +2020-04-26,Barry,Michigan,26015,29,1 +2020-04-27,Barry,Michigan,26015,31,1 +2020-04-28,Barry,Michigan,26015,31,1 +2020-04-29,Barry,Michigan,26015,34,1 +2020-04-30,Barry,Michigan,26015,35,1 +2020-05-01,Barry,Michigan,26015,36,1 +2020-05-02,Barry,Michigan,26015,39,1 +2020-05-03,Barry,Michigan,26015,37,1 +2020-05-04,Barry,Michigan,26015,37,1 +2020-05-05,Barry,Michigan,26015,39,1 +2020-05-06,Barry,Michigan,26015,39,1 +2020-05-07,Barry,Michigan,26015,41,1 +2020-05-08,Barry,Michigan,26015,44,1 +2020-05-09,Barry,Michigan,26015,49,1 +2020-05-10,Barry,Michigan,26015,48,1 +2020-05-11,Barry,Michigan,26015,51,1 +2020-05-12,Barry,Michigan,26015,52,1 +2020-05-13,Barry,Michigan,26015,54,1 +2020-05-14,Barry,Michigan,26015,58,1 +2020-05-15,Barry,Michigan,26015,56,1 +2020-05-16,Barry,Michigan,26015,56,1 +2020-05-17,Barry,Michigan,26015,56,1 +2020-05-18,Barry,Michigan,26015,57,1 +2020-05-19,Barry,Michigan,26015,58,1 +2020-05-20,Barry,Michigan,26015,57,1 +2020-05-21,Barry,Michigan,26015,57,1 +2020-05-22,Barry,Michigan,26015,57,2 +2020-05-23,Barry,Michigan,26015,59,2 +2020-05-24,Barry,Michigan,26015,60,2 +2020-05-25,Barry,Michigan,26015,61,2 +2020-05-26,Barry,Michigan,26015,61,2 +2020-05-27,Barry,Michigan,26015,62,2 +2020-05-28,Barry,Michigan,26015,62,2 +2020-05-29,Barry,Michigan,26015,62,2 +2020-05-30,Barry,Michigan,26015,62,2 +2020-05-31,Barry,Michigan,26015,63,2 +2020-06-01,Barry,Michigan,26015,63,2 +2020-06-02,Barry,Michigan,26015,64,2 +2020-06-03,Barry,Michigan,26015,64,2 +2020-06-04,Barry,Michigan,26015,65,2 +2020-06-05,Barry,Michigan,26015,84,2 +2020-06-06,Barry,Michigan,26015,86,2 +2020-06-07,Barry,Michigan,26015,87,2 +2020-06-08,Barry,Michigan,26015,87,2 +2020-06-09,Barry,Michigan,26015,87,2 +2020-06-10,Barry,Michigan,26015,89,2 +2020-06-11,Barry,Michigan,26015,90,2 +2020-06-12,Barry,Michigan,26015,91,2 +2020-06-13,Barry,Michigan,26015,91,2 +2020-06-14,Barry,Michigan,26015,91,2 +2020-06-15,Barry,Michigan,26015,91,2 +2020-06-16,Barry,Michigan,26015,91,2 +2020-06-17,Barry,Michigan,26015,92,2 +2020-06-18,Barry,Michigan,26015,93,2 +2020-06-19,Barry,Michigan,26015,94,2 +2020-06-20,Barry,Michigan,26015,93,2 +2020-06-21,Barry,Michigan,26015,94,2 +2020-06-22,Barry,Michigan,26015,95,2 +2020-06-23,Barry,Michigan,26015,95,2 +2020-06-24,Barry,Michigan,26015,96,2 +2020-06-25,Barry,Michigan,26015,95,2 +2020-06-26,Barry,Michigan,26015,95,2 +2020-06-27,Barry,Michigan,26015,96,2 +2020-06-28,Barry,Michigan,26015,97,2 +2020-06-29,Barry,Michigan,26015,98,2 +2020-06-30,Barry,Michigan,26015,102,2 +2020-07-01,Barry,Michigan,26015,103,2 +2020-07-02,Barry,Michigan,26015,106,2 +2020-07-03,Barry,Michigan,26015,108,2 +2020-07-04,Barry,Michigan,26015,111,2 +2020-07-05,Barry,Michigan,26015,115,2 +2020-07-06,Barry,Michigan,26015,119,2 +2020-07-07,Barry,Michigan,26015,120,2 +2020-07-08,Barry,Michigan,26015,121,2 +2020-07-09,Barry,Michigan,26015,123,3 +2020-03-13,Bay,Michigan,26017,1,0 +2020-03-14,Bay,Michigan,26017,1,0 +2020-03-15,Bay,Michigan,26017,1,0 +2020-03-16,Bay,Michigan,26017,1,0 +2020-03-17,Bay,Michigan,26017,1,0 +2020-03-18,Bay,Michigan,26017,1,0 +2020-03-19,Bay,Michigan,26017,1,0 +2020-03-20,Bay,Michigan,26017,1,0 +2020-03-21,Bay,Michigan,26017,1,0 +2020-03-22,Bay,Michigan,26017,1,0 +2020-03-23,Bay,Michigan,26017,1,0 +2020-03-24,Bay,Michigan,26017,2,0 +2020-03-25,Bay,Michigan,26017,3,0 +2020-03-26,Bay,Michigan,26017,4,0 +2020-03-27,Bay,Michigan,26017,4,0 +2020-03-28,Bay,Michigan,26017,4,0 +2020-03-29,Bay,Michigan,26017,5,0 +2020-03-30,Bay,Michigan,26017,9,0 +2020-03-31,Bay,Michigan,26017,9,0 +2020-04-01,Bay,Michigan,26017,10,0 +2020-04-02,Bay,Michigan,26017,16,0 +2020-04-03,Bay,Michigan,26017,18,0 +2020-04-04,Bay,Michigan,26017,24,0 +2020-04-05,Bay,Michigan,26017,30,0 +2020-04-06,Bay,Michigan,26017,30,0 +2020-04-07,Bay,Michigan,26017,31,0 +2020-04-08,Bay,Michigan,26017,39,0 +2020-04-09,Bay,Michigan,26017,42,0 +2020-04-10,Bay,Michigan,26017,48,0 +2020-04-11,Bay,Michigan,26017,53,0 +2020-04-12,Bay,Michigan,26017,54,2 +2020-04-13,Bay,Michigan,26017,59,2 +2020-04-14,Bay,Michigan,26017,60,2 +2020-04-15,Bay,Michigan,26017,64,2 +2020-04-16,Bay,Michigan,26017,67,2 +2020-04-17,Bay,Michigan,26017,69,2 +2020-04-18,Bay,Michigan,26017,79,2 +2020-04-19,Bay,Michigan,26017,82,2 +2020-04-20,Bay,Michigan,26017,85,2 +2020-04-21,Bay,Michigan,26017,86,2 +2020-04-22,Bay,Michigan,26017,93,2 +2020-04-23,Bay,Michigan,26017,102,2 +2020-04-24,Bay,Michigan,26017,107,2 +2020-04-25,Bay,Michigan,26017,114,2 +2020-04-26,Bay,Michigan,26017,115,2 +2020-04-27,Bay,Michigan,26017,122,3 +2020-04-28,Bay,Michigan,26017,135,4 +2020-04-29,Bay,Michigan,26017,142,4 +2020-04-30,Bay,Michigan,26017,143,4 +2020-05-01,Bay,Michigan,26017,150,6 +2020-05-02,Bay,Michigan,26017,158,6 +2020-05-03,Bay,Michigan,26017,157,6 +2020-05-04,Bay,Michigan,26017,161,8 +2020-05-05,Bay,Michigan,26017,162,8 +2020-05-06,Bay,Michigan,26017,176,9 +2020-05-07,Bay,Michigan,26017,179,9 +2020-05-08,Bay,Michigan,26017,185,9 +2020-05-09,Bay,Michigan,26017,189,9 +2020-05-10,Bay,Michigan,26017,192,9 +2020-05-11,Bay,Michigan,26017,204,9 +2020-05-12,Bay,Michigan,26017,214,10 +2020-05-13,Bay,Michigan,26017,214,10 +2020-05-14,Bay,Michigan,26017,226,12 +2020-05-15,Bay,Michigan,26017,228,14 +2020-05-16,Bay,Michigan,26017,234,15 +2020-05-17,Bay,Michigan,26017,241,15 +2020-05-18,Bay,Michigan,26017,248,16 +2020-05-19,Bay,Michigan,26017,250,16 +2020-05-20,Bay,Michigan,26017,255,16 +2020-05-21,Bay,Michigan,26017,260,16 +2020-05-22,Bay,Michigan,26017,269,16 +2020-05-23,Bay,Michigan,26017,276,19 +2020-05-24,Bay,Michigan,26017,282,19 +2020-05-25,Bay,Michigan,26017,286,19 +2020-05-26,Bay,Michigan,26017,287,19 +2020-05-27,Bay,Michigan,26017,294,22 +2020-05-28,Bay,Michigan,26017,296,22 +2020-05-29,Bay,Michigan,26017,302,22 +2020-05-30,Bay,Michigan,26017,303,23 +2020-05-31,Bay,Michigan,26017,310,23 +2020-06-01,Bay,Michigan,26017,312,24 +2020-06-02,Bay,Michigan,26017,317,24 +2020-06-03,Bay,Michigan,26017,322,24 +2020-06-04,Bay,Michigan,26017,326,24 +2020-06-05,Bay,Michigan,26017,370,26 +2020-06-06,Bay,Michigan,26017,377,27 +2020-06-07,Bay,Michigan,26017,380,27 +2020-06-08,Bay,Michigan,26017,384,27 +2020-06-09,Bay,Michigan,26017,385,27 +2020-06-10,Bay,Michigan,26017,372,27 +2020-06-11,Bay,Michigan,26017,385,28 +2020-06-12,Bay,Michigan,26017,381,28 +2020-06-13,Bay,Michigan,26017,376,28 +2020-06-14,Bay,Michigan,26017,377,29 +2020-06-15,Bay,Michigan,26017,378,29 +2020-06-16,Bay,Michigan,26017,377,29 +2020-06-17,Bay,Michigan,26017,378,29 +2020-06-18,Bay,Michigan,26017,379,29 +2020-06-19,Bay,Michigan,26017,379,29 +2020-06-20,Bay,Michigan,26017,378,29 +2020-06-21,Bay,Michigan,26017,378,29 +2020-06-22,Bay,Michigan,26017,379,29 +2020-06-23,Bay,Michigan,26017,379,29 +2020-06-24,Bay,Michigan,26017,381,29 +2020-06-25,Bay,Michigan,26017,383,30 +2020-06-26,Bay,Michigan,26017,385,30 +2020-06-27,Bay,Michigan,26017,386,30 +2020-06-28,Bay,Michigan,26017,386,30 +2020-06-29,Bay,Michigan,26017,387,30 +2020-06-30,Bay,Michigan,26017,392,30 +2020-07-01,Bay,Michigan,26017,392,30 +2020-07-02,Bay,Michigan,26017,396,30 +2020-07-03,Bay,Michigan,26017,401,30 +2020-07-04,Bay,Michigan,26017,403,30 +2020-07-05,Bay,Michigan,26017,404,30 +2020-07-06,Bay,Michigan,26017,405,30 +2020-07-07,Bay,Michigan,26017,407,30 +2020-07-08,Bay,Michigan,26017,410,31 +2020-07-09,Bay,Michigan,26017,415,31 +2020-04-18,Benzie,Michigan,26019,2,0 +2020-04-19,Benzie,Michigan,26019,3,0 +2020-04-20,Benzie,Michigan,26019,4,0 +2020-04-21,Benzie,Michigan,26019,4,0 +2020-04-22,Benzie,Michigan,26019,4,0 +2020-04-23,Benzie,Michigan,26019,4,0 +2020-04-24,Benzie,Michigan,26019,4,0 +2020-04-25,Benzie,Michigan,26019,4,0 +2020-04-26,Benzie,Michigan,26019,4,0 +2020-04-27,Benzie,Michigan,26019,4,0 +2020-04-28,Benzie,Michigan,26019,4,0 +2020-04-29,Benzie,Michigan,26019,6,0 +2020-04-30,Benzie,Michigan,26019,6,0 +2020-05-01,Benzie,Michigan,26019,4,0 +2020-05-02,Benzie,Michigan,26019,5,0 +2020-05-03,Benzie,Michigan,26019,4,0 +2020-05-04,Benzie,Michigan,26019,4,0 +2020-05-05,Benzie,Michigan,26019,4,0 +2020-05-06,Benzie,Michigan,26019,4,0 +2020-05-07,Benzie,Michigan,26019,4,0 +2020-05-08,Benzie,Michigan,26019,4,0 +2020-05-09,Benzie,Michigan,26019,4,0 +2020-05-10,Benzie,Michigan,26019,4,0 +2020-05-11,Benzie,Michigan,26019,4,0 +2020-05-12,Benzie,Michigan,26019,4,0 +2020-05-13,Benzie,Michigan,26019,4,0 +2020-05-14,Benzie,Michigan,26019,4,0 +2020-05-15,Benzie,Michigan,26019,4,0 +2020-05-16,Benzie,Michigan,26019,4,0 +2020-05-17,Benzie,Michigan,26019,4,0 +2020-05-18,Benzie,Michigan,26019,4,0 +2020-05-19,Benzie,Michigan,26019,4,0 +2020-05-20,Benzie,Michigan,26019,4,0 +2020-05-21,Benzie,Michigan,26019,4,0 +2020-05-22,Benzie,Michigan,26019,4,0 +2020-05-23,Benzie,Michigan,26019,4,0 +2020-05-24,Benzie,Michigan,26019,4,0 +2020-05-25,Benzie,Michigan,26019,4,0 +2020-05-26,Benzie,Michigan,26019,4,0 +2020-05-27,Benzie,Michigan,26019,4,0 +2020-05-28,Benzie,Michigan,26019,4,0 +2020-05-29,Benzie,Michigan,26019,4,0 +2020-05-30,Benzie,Michigan,26019,4,0 +2020-05-31,Benzie,Michigan,26019,4,0 +2020-06-01,Benzie,Michigan,26019,4,0 +2020-06-02,Benzie,Michigan,26019,4,0 +2020-06-03,Benzie,Michigan,26019,4,0 +2020-06-04,Benzie,Michigan,26019,4,0 +2020-06-05,Benzie,Michigan,26019,4,0 +2020-06-06,Benzie,Michigan,26019,5,0 +2020-06-07,Benzie,Michigan,26019,5,0 +2020-06-08,Benzie,Michigan,26019,5,0 +2020-06-09,Benzie,Michigan,26019,5,0 +2020-06-10,Benzie,Michigan,26019,5,0 +2020-06-11,Benzie,Michigan,26019,5,0 +2020-06-12,Benzie,Michigan,26019,5,0 +2020-06-13,Benzie,Michigan,26019,5,0 +2020-06-14,Benzie,Michigan,26019,5,0 +2020-06-15,Benzie,Michigan,26019,5,0 +2020-06-16,Benzie,Michigan,26019,5,0 +2020-06-17,Benzie,Michigan,26019,5,0 +2020-06-18,Benzie,Michigan,26019,5,0 +2020-06-19,Benzie,Michigan,26019,5,0 +2020-06-20,Benzie,Michigan,26019,5,0 +2020-06-21,Benzie,Michigan,26019,5,0 +2020-06-22,Benzie,Michigan,26019,5,0 +2020-06-23,Benzie,Michigan,26019,5,0 +2020-06-24,Benzie,Michigan,26019,6,0 +2020-06-25,Benzie,Michigan,26019,6,0 +2020-06-26,Benzie,Michigan,26019,7,0 +2020-06-27,Benzie,Michigan,26019,7,0 +2020-06-28,Benzie,Michigan,26019,7,0 +2020-06-29,Benzie,Michigan,26019,9,0 +2020-06-30,Benzie,Michigan,26019,12,0 +2020-07-01,Benzie,Michigan,26019,10,0 +2020-07-02,Benzie,Michigan,26019,10,0 +2020-07-03,Benzie,Michigan,26019,10,0 +2020-07-04,Benzie,Michigan,26019,10,0 +2020-07-05,Benzie,Michigan,26019,10,0 +2020-07-06,Benzie,Michigan,26019,11,0 +2020-07-07,Benzie,Michigan,26019,11,0 +2020-07-08,Benzie,Michigan,26019,11,0 +2020-07-09,Benzie,Michigan,26019,11,0 +2020-03-21,Berrien,Michigan,26021,2,0 +2020-03-22,Berrien,Michigan,26021,3,0 +2020-03-23,Berrien,Michigan,26021,5,0 +2020-03-24,Berrien,Michigan,26021,8,0 +2020-03-25,Berrien,Michigan,26021,10,0 +2020-03-26,Berrien,Michigan,26021,11,0 +2020-03-27,Berrien,Michigan,26021,18,0 +2020-03-28,Berrien,Michigan,26021,22,0 +2020-03-29,Berrien,Michigan,26021,29,0 +2020-03-30,Berrien,Michigan,26021,32,1 +2020-03-31,Berrien,Michigan,26021,35,1 +2020-04-01,Berrien,Michigan,26021,38,1 +2020-04-02,Berrien,Michigan,26021,40,1 +2020-04-03,Berrien,Michigan,26021,52,1 +2020-04-04,Berrien,Michigan,26021,56,1 +2020-04-05,Berrien,Michigan,26021,58,1 +2020-04-06,Berrien,Michigan,26021,60,2 +2020-04-07,Berrien,Michigan,26021,64,2 +2020-04-08,Berrien,Michigan,26021,72,2 +2020-04-09,Berrien,Michigan,26021,80,2 +2020-04-10,Berrien,Michigan,26021,88,2 +2020-04-11,Berrien,Michigan,26021,94,3 +2020-04-12,Berrien,Michigan,26021,104,4 +2020-04-13,Berrien,Michigan,26021,105,4 +2020-04-14,Berrien,Michigan,26021,111,5 +2020-04-15,Berrien,Michigan,26021,123,7 +2020-04-16,Berrien,Michigan,26021,133,7 +2020-04-17,Berrien,Michigan,26021,144,8 +2020-04-18,Berrien,Michigan,26021,153,8 +2020-04-19,Berrien,Michigan,26021,158,8 +2020-04-20,Berrien,Michigan,26021,164,8 +2020-04-21,Berrien,Michigan,26021,170,10 +2020-04-22,Berrien,Michigan,26021,177,11 +2020-04-23,Berrien,Michigan,26021,189,11 +2020-04-24,Berrien,Michigan,26021,210,11 +2020-04-25,Berrien,Michigan,26021,213,12 +2020-04-26,Berrien,Michigan,26021,215,14 +2020-04-27,Berrien,Michigan,26021,217,14 +2020-04-28,Berrien,Michigan,26021,232,15 +2020-04-29,Berrien,Michigan,26021,242,15 +2020-04-30,Berrien,Michigan,26021,248,15 +2020-05-01,Berrien,Michigan,26021,263,15 +2020-05-02,Berrien,Michigan,26021,294,18 +2020-05-03,Berrien,Michigan,26021,300,18 +2020-05-04,Berrien,Michigan,26021,304,20 +2020-05-05,Berrien,Michigan,26021,315,20 +2020-05-06,Berrien,Michigan,26021,344,20 +2020-05-07,Berrien,Michigan,26021,354,21 +2020-05-08,Berrien,Michigan,26021,376,22 +2020-05-09,Berrien,Michigan,26021,384,22 +2020-05-10,Berrien,Michigan,26021,391,22 +2020-05-11,Berrien,Michigan,26021,403,24 +2020-05-12,Berrien,Michigan,26021,411,25 +2020-05-13,Berrien,Michigan,26021,425,26 +2020-05-14,Berrien,Michigan,26021,470,27 +2020-05-15,Berrien,Michigan,26021,485,28 +2020-05-16,Berrien,Michigan,26021,500,28 +2020-05-17,Berrien,Michigan,26021,522,29 +2020-05-18,Berrien,Michigan,26021,528,30 +2020-05-19,Berrien,Michigan,26021,538,33 +2020-05-20,Berrien,Michigan,26021,552,34 +2020-05-21,Berrien,Michigan,26021,564,40 +2020-05-22,Berrien,Michigan,26021,571,43 +2020-05-23,Berrien,Michigan,26021,584,42 +2020-05-24,Berrien,Michigan,26021,587,42 +2020-05-25,Berrien,Michigan,26021,593,42 +2020-05-26,Berrien,Michigan,26021,596,47 +2020-05-27,Berrien,Michigan,26021,600,48 +2020-05-28,Berrien,Michigan,26021,606,49 +2020-05-29,Berrien,Michigan,26021,613,49 +2020-05-30,Berrien,Michigan,26021,618,49 +2020-05-31,Berrien,Michigan,26021,626,49 +2020-06-01,Berrien,Michigan,26021,822,52 +2020-06-02,Berrien,Michigan,26021,833,53 +2020-06-03,Berrien,Michigan,26021,840,53 +2020-06-04,Berrien,Michigan,26021,844,53 +2020-06-05,Berrien,Michigan,26021,849,53 +2020-06-06,Berrien,Michigan,26021,856,53 +2020-06-07,Berrien,Michigan,26021,860,54 +2020-06-08,Berrien,Michigan,26021,867,57 +2020-06-09,Berrien,Michigan,26021,869,57 +2020-06-10,Berrien,Michigan,26021,870,57 +2020-06-11,Berrien,Michigan,26021,875,57 +2020-06-12,Berrien,Michigan,26021,879,57 +2020-06-13,Berrien,Michigan,26021,885,57 +2020-06-14,Berrien,Michigan,26021,888,57 +2020-06-15,Berrien,Michigan,26021,887,57 +2020-06-16,Berrien,Michigan,26021,890,57 +2020-06-17,Berrien,Michigan,26021,891,57 +2020-06-18,Berrien,Michigan,26021,906,60 +2020-06-19,Berrien,Michigan,26021,911,60 +2020-06-20,Berrien,Michigan,26021,915,60 +2020-06-21,Berrien,Michigan,26021,915,60 +2020-06-22,Berrien,Michigan,26021,915,60 +2020-06-23,Berrien,Michigan,26021,918,60 +2020-06-24,Berrien,Michigan,26021,918,60 +2020-06-25,Berrien,Michigan,26021,922,60 +2020-06-26,Berrien,Michigan,26021,923,60 +2020-06-27,Berrien,Michigan,26021,928,60 +2020-06-28,Berrien,Michigan,26021,933,60 +2020-06-29,Berrien,Michigan,26021,942,60 +2020-06-30,Berrien,Michigan,26021,942,60 +2020-07-01,Berrien,Michigan,26021,962,60 +2020-07-02,Berrien,Michigan,26021,963,60 +2020-07-03,Berrien,Michigan,26021,963,60 +2020-07-04,Berrien,Michigan,26021,980,60 +2020-07-05,Berrien,Michigan,26021,990,60 +2020-07-06,Berrien,Michigan,26021,991,60 +2020-07-07,Berrien,Michigan,26021,1006,60 +2020-07-08,Berrien,Michigan,26021,1017,60 +2020-07-09,Berrien,Michigan,26021,1030,60 +2020-03-31,Branch,Michigan,26023,2,0 +2020-04-01,Branch,Michigan,26023,2,0 +2020-04-02,Branch,Michigan,26023,5,0 +2020-04-03,Branch,Michigan,26023,6,0 +2020-04-04,Branch,Michigan,26023,10,1 +2020-04-05,Branch,Michigan,26023,13,1 +2020-04-06,Branch,Michigan,26023,15,1 +2020-04-07,Branch,Michigan,26023,16,1 +2020-04-08,Branch,Michigan,26023,18,1 +2020-04-09,Branch,Michigan,26023,24,1 +2020-04-10,Branch,Michigan,26023,25,2 +2020-04-11,Branch,Michigan,26023,26,2 +2020-04-12,Branch,Michigan,26023,27,2 +2020-04-13,Branch,Michigan,26023,29,2 +2020-04-14,Branch,Michigan,26023,29,2 +2020-04-15,Branch,Michigan,26023,106,4 +2020-04-16,Branch,Michigan,26023,116,4 +2020-04-17,Branch,Michigan,26023,120,4 +2020-04-18,Branch,Michigan,26023,120,4 +2020-04-19,Branch,Michigan,26023,134,7 +2020-04-20,Branch,Michigan,26023,152,7 +2020-04-21,Branch,Michigan,26023,155,7 +2020-04-22,Branch,Michigan,26023,250,10 +2020-04-23,Branch,Michigan,26023,252,10 +2020-04-24,Branch,Michigan,26023,439,11 +2020-04-25,Branch,Michigan,26023,689,12 +2020-04-26,Branch,Michigan,26023,825,13 +2020-04-27,Branch,Michigan,26023,835,13 +2020-04-28,Branch,Michigan,26023,838,15 +2020-04-29,Branch,Michigan,26023,841,15 +2020-04-30,Branch,Michigan,26023,850,16 +2020-05-01,Branch,Michigan,26023,853,16 +2020-05-02,Branch,Michigan,26023,855,16 +2020-05-03,Branch,Michigan,26023,859,16 +2020-05-04,Branch,Michigan,26023,857,16 +2020-05-05,Branch,Michigan,26023,861,17 +2020-05-06,Branch,Michigan,26023,863,18 +2020-05-07,Branch,Michigan,26023,864,18 +2020-05-08,Branch,Michigan,26023,867,20 +2020-05-09,Branch,Michigan,26023,870,20 +2020-05-10,Branch,Michigan,26023,870,20 +2020-05-11,Branch,Michigan,26023,871,21 +2020-05-12,Branch,Michigan,26023,873,21 +2020-05-13,Branch,Michigan,26023,875,22 +2020-05-14,Branch,Michigan,26023,881,22 +2020-05-15,Branch,Michigan,26023,883,22 +2020-05-16,Branch,Michigan,26023,886,22 +2020-05-17,Branch,Michigan,26023,887,22 +2020-05-18,Branch,Michigan,26023,888,23 +2020-05-19,Branch,Michigan,26023,888,24 +2020-05-20,Branch,Michigan,26023,890,24 +2020-05-21,Branch,Michigan,26023,891,24 +2020-05-22,Branch,Michigan,26023,892,24 +2020-05-23,Branch,Michigan,26023,893,24 +2020-05-24,Branch,Michigan,26023,894,24 +2020-05-25,Branch,Michigan,26023,895,24 +2020-05-26,Branch,Michigan,26023,896,24 +2020-05-27,Branch,Michigan,26023,898,24 +2020-05-28,Branch,Michigan,26023,902,24 +2020-05-29,Branch,Michigan,26023,904,24 +2020-05-30,Branch,Michigan,26023,910,24 +2020-05-31,Branch,Michigan,26023,914,25 +2020-06-01,Branch,Michigan,26023,916,25 +2020-06-02,Branch,Michigan,26023,917,25 +2020-06-03,Branch,Michigan,26023,917,25 +2020-06-04,Branch,Michigan,26023,919,25 +2020-06-05,Branch,Michigan,26023,932,25 +2020-06-06,Branch,Michigan,26023,940,25 +2020-06-07,Branch,Michigan,26023,942,25 +2020-06-08,Branch,Michigan,26023,944,25 +2020-06-09,Branch,Michigan,26023,946,25 +2020-06-10,Branch,Michigan,26023,948,25 +2020-06-11,Branch,Michigan,26023,953,25 +2020-06-12,Branch,Michigan,26023,954,25 +2020-06-13,Branch,Michigan,26023,957,25 +2020-06-14,Branch,Michigan,26023,1028,25 +2020-06-15,Branch,Michigan,26023,1028,25 +2020-06-16,Branch,Michigan,26023,1030,25 +2020-06-17,Branch,Michigan,26023,1031,25 +2020-06-18,Branch,Michigan,26023,1032,25 +2020-06-19,Branch,Michigan,26023,1040,25 +2020-06-20,Branch,Michigan,26023,1043,25 +2020-06-21,Branch,Michigan,26023,1043,25 +2020-06-22,Branch,Michigan,26023,1043,25 +2020-06-23,Branch,Michigan,26023,1043,25 +2020-06-24,Branch,Michigan,26023,1047,25 +2020-06-25,Branch,Michigan,26023,1047,25 +2020-06-26,Branch,Michigan,26023,1047,25 +2020-06-27,Branch,Michigan,26023,1048,25 +2020-06-28,Branch,Michigan,26023,1050,25 +2020-06-29,Branch,Michigan,26023,1050,25 +2020-06-30,Branch,Michigan,26023,1050,25 +2020-07-01,Branch,Michigan,26023,1050,25 +2020-07-02,Branch,Michigan,26023,1050,25 +2020-07-03,Branch,Michigan,26023,1053,25 +2020-07-04,Branch,Michigan,26023,1053,25 +2020-07-05,Branch,Michigan,26023,1053,25 +2020-07-06,Branch,Michigan,26023,1053,25 +2020-07-07,Branch,Michigan,26023,1053,25 +2020-07-08,Branch,Michigan,26023,1058,25 +2020-07-09,Branch,Michigan,26023,1059,25 +2020-03-21,Calhoun,Michigan,26025,1,0 +2020-03-22,Calhoun,Michigan,26025,2,0 +2020-03-23,Calhoun,Michigan,26025,3,0 +2020-03-24,Calhoun,Michigan,26025,4,0 +2020-03-25,Calhoun,Michigan,26025,6,0 +2020-03-26,Calhoun,Michigan,26025,7,0 +2020-03-27,Calhoun,Michigan,26025,9,0 +2020-03-28,Calhoun,Michigan,26025,11,0 +2020-03-29,Calhoun,Michigan,26025,15,0 +2020-03-30,Calhoun,Michigan,26025,17,0 +2020-03-31,Calhoun,Michigan,26025,17,0 +2020-04-01,Calhoun,Michigan,26025,23,0 +2020-04-02,Calhoun,Michigan,26025,25,0 +2020-04-03,Calhoun,Michigan,26025,31,1 +2020-04-04,Calhoun,Michigan,26025,34,1 +2020-04-05,Calhoun,Michigan,26025,42,1 +2020-04-06,Calhoun,Michigan,26025,41,1 +2020-04-07,Calhoun,Michigan,26025,43,1 +2020-04-08,Calhoun,Michigan,26025,51,1 +2020-04-09,Calhoun,Michigan,26025,57,1 +2020-04-10,Calhoun,Michigan,26025,65,1 +2020-04-11,Calhoun,Michigan,26025,71,1 +2020-04-12,Calhoun,Michigan,26025,74,1 +2020-04-13,Calhoun,Michigan,26025,83,2 +2020-04-14,Calhoun,Michigan,26025,90,3 +2020-04-15,Calhoun,Michigan,26025,104,3 +2020-04-16,Calhoun,Michigan,26025,119,4 +2020-04-17,Calhoun,Michigan,26025,130,5 +2020-04-18,Calhoun,Michigan,26025,136,5 +2020-04-19,Calhoun,Michigan,26025,141,5 +2020-04-20,Calhoun,Michigan,26025,148,5 +2020-04-21,Calhoun,Michigan,26025,156,5 +2020-04-22,Calhoun,Michigan,26025,168,5 +2020-04-23,Calhoun,Michigan,26025,177,6 +2020-04-24,Calhoun,Michigan,26025,190,10 +2020-04-25,Calhoun,Michigan,26025,191,10 +2020-04-26,Calhoun,Michigan,26025,202,10 +2020-04-27,Calhoun,Michigan,26025,203,11 +2020-04-28,Calhoun,Michigan,26025,210,11 +2020-04-29,Calhoun,Michigan,26025,219,11 +2020-04-30,Calhoun,Michigan,26025,228,13 +2020-05-01,Calhoun,Michigan,26025,231,15 +2020-05-02,Calhoun,Michigan,26025,235,15 +2020-05-03,Calhoun,Michigan,26025,237,15 +2020-05-04,Calhoun,Michigan,26025,244,16 +2020-05-05,Calhoun,Michigan,26025,246,16 +2020-05-06,Calhoun,Michigan,26025,250,17 +2020-05-07,Calhoun,Michigan,26025,252,17 +2020-05-08,Calhoun,Michigan,26025,254,17 +2020-05-09,Calhoun,Michigan,26025,258,17 +2020-05-10,Calhoun,Michigan,26025,260,17 +2020-05-11,Calhoun,Michigan,26025,268,17 +2020-05-12,Calhoun,Michigan,26025,275,17 +2020-05-13,Calhoun,Michigan,26025,280,17 +2020-05-14,Calhoun,Michigan,26025,286,18 +2020-05-15,Calhoun,Michigan,26025,290,18 +2020-05-16,Calhoun,Michigan,26025,295,18 +2020-05-17,Calhoun,Michigan,26025,301,18 +2020-05-18,Calhoun,Michigan,26025,304,18 +2020-05-19,Calhoun,Michigan,26025,308,19 +2020-05-20,Calhoun,Michigan,26025,320,19 +2020-05-21,Calhoun,Michigan,26025,327,19 +2020-05-22,Calhoun,Michigan,26025,334,20 +2020-05-23,Calhoun,Michigan,26025,339,21 +2020-05-24,Calhoun,Michigan,26025,341,21 +2020-05-25,Calhoun,Michigan,26025,347,21 +2020-05-26,Calhoun,Michigan,26025,349,21 +2020-05-27,Calhoun,Michigan,26025,351,22 +2020-05-28,Calhoun,Michigan,26025,357,22 +2020-05-29,Calhoun,Michigan,26025,361,22 +2020-05-30,Calhoun,Michigan,26025,365,22 +2020-05-31,Calhoun,Michigan,26025,371,22 +2020-06-01,Calhoun,Michigan,26025,372,22 +2020-06-02,Calhoun,Michigan,26025,386,23 +2020-06-03,Calhoun,Michigan,26025,392,23 +2020-06-04,Calhoun,Michigan,26025,398,23 +2020-06-05,Calhoun,Michigan,26025,454,25 +2020-06-06,Calhoun,Michigan,26025,461,26 +2020-06-07,Calhoun,Michigan,26025,462,26 +2020-06-08,Calhoun,Michigan,26025,466,26 +2020-06-09,Calhoun,Michigan,26025,470,26 +2020-06-10,Calhoun,Michigan,26025,475,26 +2020-06-11,Calhoun,Michigan,26025,477,26 +2020-06-12,Calhoun,Michigan,26025,481,26 +2020-06-13,Calhoun,Michigan,26025,484,27 +2020-06-14,Calhoun,Michigan,26025,486,27 +2020-06-15,Calhoun,Michigan,26025,487,27 +2020-06-16,Calhoun,Michigan,26025,492,28 +2020-06-17,Calhoun,Michigan,26025,495,28 +2020-06-18,Calhoun,Michigan,26025,501,30 +2020-06-19,Calhoun,Michigan,26025,503,30 +2020-06-20,Calhoun,Michigan,26025,503,30 +2020-06-21,Calhoun,Michigan,26025,504,31 +2020-06-22,Calhoun,Michigan,26025,506,31 +2020-06-23,Calhoun,Michigan,26025,507,31 +2020-06-24,Calhoun,Michigan,26025,514,31 +2020-06-25,Calhoun,Michigan,26025,517,32 +2020-06-26,Calhoun,Michigan,26025,523,32 +2020-06-27,Calhoun,Michigan,26025,523,32 +2020-06-28,Calhoun,Michigan,26025,526,32 +2020-06-29,Calhoun,Michigan,26025,532,33 +2020-06-30,Calhoun,Michigan,26025,536,33 +2020-07-01,Calhoun,Michigan,26025,539,33 +2020-07-02,Calhoun,Michigan,26025,550,36 +2020-07-03,Calhoun,Michigan,26025,557,36 +2020-07-04,Calhoun,Michigan,26025,558,37 +2020-07-05,Calhoun,Michigan,26025,559,37 +2020-07-06,Calhoun,Michigan,26025,562,37 +2020-07-07,Calhoun,Michigan,26025,576,38 +2020-07-08,Calhoun,Michigan,26025,583,39 +2020-07-09,Calhoun,Michigan,26025,594,39 +2020-03-27,Cass,Michigan,26027,1,0 +2020-03-28,Cass,Michigan,26027,2,0 +2020-03-29,Cass,Michigan,26027,4,0 +2020-03-30,Cass,Michigan,26027,4,0 +2020-03-31,Cass,Michigan,26027,4,1 +2020-04-01,Cass,Michigan,26027,6,1 +2020-04-02,Cass,Michigan,26027,6,1 +2020-04-03,Cass,Michigan,26027,6,1 +2020-04-04,Cass,Michigan,26027,6,1 +2020-04-05,Cass,Michigan,26027,7,1 +2020-04-06,Cass,Michigan,26027,7,1 +2020-04-07,Cass,Michigan,26027,9,1 +2020-04-08,Cass,Michigan,26027,9,1 +2020-04-09,Cass,Michigan,26027,10,1 +2020-04-10,Cass,Michigan,26027,12,1 +2020-04-11,Cass,Michigan,26027,12,1 +2020-04-12,Cass,Michigan,26027,12,1 +2020-04-13,Cass,Michigan,26027,12,1 +2020-04-14,Cass,Michigan,26027,13,1 +2020-04-15,Cass,Michigan,26027,17,1 +2020-04-16,Cass,Michigan,26027,19,1 +2020-04-17,Cass,Michigan,26027,22,1 +2020-04-18,Cass,Michigan,26027,22,1 +2020-04-19,Cass,Michigan,26027,22,1 +2020-04-20,Cass,Michigan,26027,22,1 +2020-04-21,Cass,Michigan,26027,22,1 +2020-04-22,Cass,Michigan,26027,23,1 +2020-04-23,Cass,Michigan,26027,23,2 +2020-04-24,Cass,Michigan,26027,25,2 +2020-04-25,Cass,Michigan,26027,26,2 +2020-04-26,Cass,Michigan,26027,26,2 +2020-04-27,Cass,Michigan,26027,27,2 +2020-04-28,Cass,Michigan,26027,27,2 +2020-04-29,Cass,Michigan,26027,29,2 +2020-04-30,Cass,Michigan,26027,31,2 +2020-05-01,Cass,Michigan,26027,30,2 +2020-05-02,Cass,Michigan,26027,33,2 +2020-05-03,Cass,Michigan,26027,32,2 +2020-05-04,Cass,Michigan,26027,33,2 +2020-05-05,Cass,Michigan,26027,34,2 +2020-05-06,Cass,Michigan,26027,35,2 +2020-05-07,Cass,Michigan,26027,36,2 +2020-05-08,Cass,Michigan,26027,39,2 +2020-05-09,Cass,Michigan,26027,41,2 +2020-05-10,Cass,Michigan,26027,41,2 +2020-05-11,Cass,Michigan,26027,42,2 +2020-05-12,Cass,Michigan,26027,43,2 +2020-05-13,Cass,Michigan,26027,44,2 +2020-05-14,Cass,Michigan,26027,46,2 +2020-05-15,Cass,Michigan,26027,50,2 +2020-05-16,Cass,Michigan,26027,53,2 +2020-05-17,Cass,Michigan,26027,59,2 +2020-05-18,Cass,Michigan,26027,60,2 +2020-05-19,Cass,Michigan,26027,61,2 +2020-05-20,Cass,Michigan,26027,66,2 +2020-05-21,Cass,Michigan,26027,68,2 +2020-05-22,Cass,Michigan,26027,73,2 +2020-05-23,Cass,Michigan,26027,76,2 +2020-05-24,Cass,Michigan,26027,77,2 +2020-05-25,Cass,Michigan,26027,77,2 +2020-05-26,Cass,Michigan,26027,78,2 +2020-05-27,Cass,Michigan,26027,79,2 +2020-05-28,Cass,Michigan,26027,80,2 +2020-05-29,Cass,Michigan,26027,80,3 +2020-05-30,Cass,Michigan,26027,82,3 +2020-05-31,Cass,Michigan,26027,83,3 +2020-06-01,Cass,Michigan,26027,82,3 +2020-06-02,Cass,Michigan,26027,83,3 +2020-06-03,Cass,Michigan,26027,84,3 +2020-06-04,Cass,Michigan,26027,85,3 +2020-06-05,Cass,Michigan,26027,101,3 +2020-06-06,Cass,Michigan,26027,104,3 +2020-06-07,Cass,Michigan,26027,106,3 +2020-06-08,Cass,Michigan,26027,108,4 +2020-06-09,Cass,Michigan,26027,108,4 +2020-06-10,Cass,Michigan,26027,110,4 +2020-06-11,Cass,Michigan,26027,112,4 +2020-06-12,Cass,Michigan,26027,114,4 +2020-06-13,Cass,Michigan,26027,114,4 +2020-06-14,Cass,Michigan,26027,115,4 +2020-06-15,Cass,Michigan,26027,115,4 +2020-06-16,Cass,Michigan,26027,116,4 +2020-06-17,Cass,Michigan,26027,118,4 +2020-06-18,Cass,Michigan,26027,119,4 +2020-06-19,Cass,Michigan,26027,119,4 +2020-06-20,Cass,Michigan,26027,121,4 +2020-06-21,Cass,Michigan,26027,122,4 +2020-06-22,Cass,Michigan,26027,124,4 +2020-06-23,Cass,Michigan,26027,126,4 +2020-06-24,Cass,Michigan,26027,126,4 +2020-06-25,Cass,Michigan,26027,131,4 +2020-06-26,Cass,Michigan,26027,134,4 +2020-06-27,Cass,Michigan,26027,134,4 +2020-06-28,Cass,Michigan,26027,136,4 +2020-06-29,Cass,Michigan,26027,139,5 +2020-06-30,Cass,Michigan,26027,145,5 +2020-07-01,Cass,Michigan,26027,149,5 +2020-07-02,Cass,Michigan,26027,152,5 +2020-07-03,Cass,Michigan,26027,156,5 +2020-07-04,Cass,Michigan,26027,160,6 +2020-07-05,Cass,Michigan,26027,164,6 +2020-07-06,Cass,Michigan,26027,164,6 +2020-07-07,Cass,Michigan,26027,172,6 +2020-07-08,Cass,Michigan,26027,177,6 +2020-07-09,Cass,Michigan,26027,179,6 +2020-03-13,Charlevoix,Michigan,26029,1,0 +2020-03-14,Charlevoix,Michigan,26029,1,0 +2020-03-15,Charlevoix,Michigan,26029,1,0 +2020-03-16,Charlevoix,Michigan,26029,1,0 +2020-03-17,Charlevoix,Michigan,26029,1,0 +2020-03-18,Charlevoix,Michigan,26029,1,0 +2020-03-19,Charlevoix,Michigan,26029,1,0 +2020-03-20,Charlevoix,Michigan,26029,1,0 +2020-03-21,Charlevoix,Michigan,26029,1,0 +2020-03-22,Charlevoix,Michigan,26029,2,0 +2020-03-23,Charlevoix,Michigan,26029,2,0 +2020-03-24,Charlevoix,Michigan,26029,3,0 +2020-03-25,Charlevoix,Michigan,26029,4,0 +2020-03-26,Charlevoix,Michigan,26029,4,0 +2020-03-27,Charlevoix,Michigan,26029,4,0 +2020-03-28,Charlevoix,Michigan,26029,4,0 +2020-03-29,Charlevoix,Michigan,26029,4,0 +2020-03-30,Charlevoix,Michigan,26029,4,0 +2020-03-31,Charlevoix,Michigan,26029,4,0 +2020-04-01,Charlevoix,Michigan,26029,4,0 +2020-04-02,Charlevoix,Michigan,26029,5,0 +2020-04-03,Charlevoix,Michigan,26029,5,0 +2020-04-04,Charlevoix,Michigan,26029,7,0 +2020-04-05,Charlevoix,Michigan,26029,7,0 +2020-04-06,Charlevoix,Michigan,26029,8,0 +2020-04-07,Charlevoix,Michigan,26029,8,0 +2020-04-08,Charlevoix,Michigan,26029,8,0 +2020-04-09,Charlevoix,Michigan,26029,9,0 +2020-04-10,Charlevoix,Michigan,26029,10,0 +2020-04-11,Charlevoix,Michigan,26029,11,0 +2020-04-12,Charlevoix,Michigan,26029,11,0 +2020-04-13,Charlevoix,Michigan,26029,11,1 +2020-04-14,Charlevoix,Michigan,26029,11,1 +2020-04-15,Charlevoix,Michigan,26029,11,1 +2020-04-16,Charlevoix,Michigan,26029,11,1 +2020-04-17,Charlevoix,Michigan,26029,11,1 +2020-04-18,Charlevoix,Michigan,26029,12,1 +2020-04-19,Charlevoix,Michigan,26029,12,1 +2020-04-20,Charlevoix,Michigan,26029,12,1 +2020-04-21,Charlevoix,Michigan,26029,12,1 +2020-04-22,Charlevoix,Michigan,26029,12,1 +2020-04-23,Charlevoix,Michigan,26029,13,1 +2020-04-24,Charlevoix,Michigan,26029,13,1 +2020-04-25,Charlevoix,Michigan,26029,13,1 +2020-04-26,Charlevoix,Michigan,26029,13,1 +2020-04-27,Charlevoix,Michigan,26029,13,1 +2020-04-28,Charlevoix,Michigan,26029,13,1 +2020-04-29,Charlevoix,Michigan,26029,13,1 +2020-04-30,Charlevoix,Michigan,26029,13,1 +2020-05-01,Charlevoix,Michigan,26029,13,1 +2020-05-02,Charlevoix,Michigan,26029,13,1 +2020-05-03,Charlevoix,Michigan,26029,13,1 +2020-05-04,Charlevoix,Michigan,26029,13,1 +2020-05-05,Charlevoix,Michigan,26029,13,1 +2020-05-06,Charlevoix,Michigan,26029,14,1 +2020-05-07,Charlevoix,Michigan,26029,13,1 +2020-05-08,Charlevoix,Michigan,26029,13,1 +2020-05-09,Charlevoix,Michigan,26029,13,1 +2020-05-10,Charlevoix,Michigan,26029,13,1 +2020-05-11,Charlevoix,Michigan,26029,13,1 +2020-05-12,Charlevoix,Michigan,26029,13,1 +2020-05-13,Charlevoix,Michigan,26029,13,1 +2020-05-14,Charlevoix,Michigan,26029,13,1 +2020-05-15,Charlevoix,Michigan,26029,13,1 +2020-05-16,Charlevoix,Michigan,26029,14,1 +2020-05-17,Charlevoix,Michigan,26029,14,1 +2020-05-18,Charlevoix,Michigan,26029,14,1 +2020-05-19,Charlevoix,Michigan,26029,14,1 +2020-05-20,Charlevoix,Michigan,26029,14,1 +2020-05-21,Charlevoix,Michigan,26029,14,1 +2020-05-22,Charlevoix,Michigan,26029,14,1 +2020-05-23,Charlevoix,Michigan,26029,14,1 +2020-05-24,Charlevoix,Michigan,26029,14,1 +2020-05-25,Charlevoix,Michigan,26029,15,1 +2020-05-26,Charlevoix,Michigan,26029,15,1 +2020-05-27,Charlevoix,Michigan,26029,15,1 +2020-05-28,Charlevoix,Michigan,26029,15,1 +2020-05-29,Charlevoix,Michigan,26029,15,1 +2020-05-30,Charlevoix,Michigan,26029,15,1 +2020-05-31,Charlevoix,Michigan,26029,15,1 +2020-06-01,Charlevoix,Michigan,26029,21,1 +2020-06-02,Charlevoix,Michigan,26029,21,1 +2020-06-03,Charlevoix,Michigan,26029,21,1 +2020-06-04,Charlevoix,Michigan,26029,21,1 +2020-06-05,Charlevoix,Michigan,26029,21,1 +2020-06-06,Charlevoix,Michigan,26029,21,1 +2020-06-07,Charlevoix,Michigan,26029,22,1 +2020-06-08,Charlevoix,Michigan,26029,22,1 +2020-06-09,Charlevoix,Michigan,26029,22,1 +2020-06-10,Charlevoix,Michigan,26029,22,1 +2020-06-11,Charlevoix,Michigan,26029,22,1 +2020-06-12,Charlevoix,Michigan,26029,23,2 +2020-06-13,Charlevoix,Michigan,26029,23,2 +2020-06-14,Charlevoix,Michigan,26029,23,2 +2020-06-15,Charlevoix,Michigan,26029,25,2 +2020-06-16,Charlevoix,Michigan,26029,25,2 +2020-06-17,Charlevoix,Michigan,26029,25,2 +2020-06-18,Charlevoix,Michigan,26029,25,2 +2020-06-19,Charlevoix,Michigan,26029,25,2 +2020-06-20,Charlevoix,Michigan,26029,25,2 +2020-06-21,Charlevoix,Michigan,26029,25,2 +2020-06-22,Charlevoix,Michigan,26029,25,2 +2020-06-23,Charlevoix,Michigan,26029,25,2 +2020-06-24,Charlevoix,Michigan,26029,25,2 +2020-06-25,Charlevoix,Michigan,26029,29,2 +2020-06-26,Charlevoix,Michigan,26029,29,2 +2020-06-27,Charlevoix,Michigan,26029,29,2 +2020-06-28,Charlevoix,Michigan,26029,29,2 +2020-06-29,Charlevoix,Michigan,26029,29,2 +2020-06-30,Charlevoix,Michigan,26029,30,2 +2020-07-01,Charlevoix,Michigan,26029,30,2 +2020-07-02,Charlevoix,Michigan,26029,30,2 +2020-07-03,Charlevoix,Michigan,26029,30,2 +2020-07-04,Charlevoix,Michigan,26029,30,2 +2020-07-05,Charlevoix,Michigan,26029,30,2 +2020-07-06,Charlevoix,Michigan,26029,33,2 +2020-07-07,Charlevoix,Michigan,26029,33,2 +2020-07-08,Charlevoix,Michigan,26029,33,2 +2020-07-09,Charlevoix,Michigan,26029,34,2 +2020-03-29,Cheboygan,Michigan,26031,1,0 +2020-03-30,Cheboygan,Michigan,26031,1,0 +2020-03-31,Cheboygan,Michigan,26031,1,0 +2020-04-01,Cheboygan,Michigan,26031,2,0 +2020-04-02,Cheboygan,Michigan,26031,3,0 +2020-04-03,Cheboygan,Michigan,26031,6,0 +2020-04-04,Cheboygan,Michigan,26031,7,1 +2020-04-05,Cheboygan,Michigan,26031,8,1 +2020-04-06,Cheboygan,Michigan,26031,8,1 +2020-04-07,Cheboygan,Michigan,26031,10,1 +2020-04-08,Cheboygan,Michigan,26031,10,1 +2020-04-09,Cheboygan,Michigan,26031,10,1 +2020-04-10,Cheboygan,Michigan,26031,10,1 +2020-04-11,Cheboygan,Michigan,26031,11,1 +2020-04-12,Cheboygan,Michigan,26031,10,1 +2020-04-13,Cheboygan,Michigan,26031,12,1 +2020-04-14,Cheboygan,Michigan,26031,12,1 +2020-04-15,Cheboygan,Michigan,26031,12,1 +2020-04-16,Cheboygan,Michigan,26031,12,1 +2020-04-17,Cheboygan,Michigan,26031,12,1 +2020-04-18,Cheboygan,Michigan,26031,14,1 +2020-04-19,Cheboygan,Michigan,26031,14,1 +2020-04-20,Cheboygan,Michigan,26031,14,1 +2020-04-21,Cheboygan,Michigan,26031,14,1 +2020-04-22,Cheboygan,Michigan,26031,14,1 +2020-04-23,Cheboygan,Michigan,26031,14,1 +2020-04-24,Cheboygan,Michigan,26031,15,1 +2020-04-25,Cheboygan,Michigan,26031,17,1 +2020-04-26,Cheboygan,Michigan,26031,17,1 +2020-04-27,Cheboygan,Michigan,26031,17,1 +2020-04-28,Cheboygan,Michigan,26031,17,1 +2020-04-29,Cheboygan,Michigan,26031,17,1 +2020-04-30,Cheboygan,Michigan,26031,19,1 +2020-05-01,Cheboygan,Michigan,26031,19,1 +2020-05-02,Cheboygan,Michigan,26031,19,1 +2020-05-03,Cheboygan,Michigan,26031,19,1 +2020-05-04,Cheboygan,Michigan,26031,19,1 +2020-05-05,Cheboygan,Michigan,26031,19,1 +2020-05-06,Cheboygan,Michigan,26031,19,1 +2020-05-07,Cheboygan,Michigan,26031,19,1 +2020-05-08,Cheboygan,Michigan,26031,19,1 +2020-05-09,Cheboygan,Michigan,26031,19,1 +2020-05-10,Cheboygan,Michigan,26031,19,1 +2020-05-11,Cheboygan,Michigan,26031,19,1 +2020-05-12,Cheboygan,Michigan,26031,19,1 +2020-05-13,Cheboygan,Michigan,26031,19,1 +2020-05-14,Cheboygan,Michigan,26031,19,1 +2020-05-15,Cheboygan,Michigan,26031,19,1 +2020-05-16,Cheboygan,Michigan,26031,19,1 +2020-05-17,Cheboygan,Michigan,26031,19,1 +2020-05-18,Cheboygan,Michigan,26031,19,1 +2020-05-19,Cheboygan,Michigan,26031,19,1 +2020-05-20,Cheboygan,Michigan,26031,21,1 +2020-05-21,Cheboygan,Michigan,26031,21,1 +2020-05-22,Cheboygan,Michigan,26031,21,1 +2020-05-23,Cheboygan,Michigan,26031,21,1 +2020-05-24,Cheboygan,Michigan,26031,21,1 +2020-05-25,Cheboygan,Michigan,26031,21,1 +2020-05-26,Cheboygan,Michigan,26031,21,1 +2020-05-27,Cheboygan,Michigan,26031,21,1 +2020-05-28,Cheboygan,Michigan,26031,21,1 +2020-05-29,Cheboygan,Michigan,26031,21,1 +2020-05-30,Cheboygan,Michigan,26031,21,1 +2020-05-31,Cheboygan,Michigan,26031,21,1 +2020-06-01,Cheboygan,Michigan,26031,26,1 +2020-06-02,Cheboygan,Michigan,26031,26,1 +2020-06-03,Cheboygan,Michigan,26031,26,1 +2020-06-04,Cheboygan,Michigan,26031,26,1 +2020-06-05,Cheboygan,Michigan,26031,26,1 +2020-06-06,Cheboygan,Michigan,26031,26,1 +2020-06-07,Cheboygan,Michigan,26031,26,1 +2020-06-08,Cheboygan,Michigan,26031,26,1 +2020-06-09,Cheboygan,Michigan,26031,26,1 +2020-06-10,Cheboygan,Michigan,26031,26,1 +2020-06-11,Cheboygan,Michigan,26031,26,1 +2020-06-12,Cheboygan,Michigan,26031,26,1 +2020-06-13,Cheboygan,Michigan,26031,26,1 +2020-06-14,Cheboygan,Michigan,26031,26,1 +2020-06-15,Cheboygan,Michigan,26031,26,1 +2020-06-16,Cheboygan,Michigan,26031,26,1 +2020-06-17,Cheboygan,Michigan,26031,26,1 +2020-06-18,Cheboygan,Michigan,26031,26,2 +2020-06-19,Cheboygan,Michigan,26031,26,2 +2020-06-20,Cheboygan,Michigan,26031,26,2 +2020-06-21,Cheboygan,Michigan,26031,26,2 +2020-06-22,Cheboygan,Michigan,26031,26,2 +2020-06-23,Cheboygan,Michigan,26031,26,2 +2020-06-24,Cheboygan,Michigan,26031,26,2 +2020-06-25,Cheboygan,Michigan,26031,27,2 +2020-06-26,Cheboygan,Michigan,26031,27,2 +2020-06-27,Cheboygan,Michigan,26031,28,2 +2020-06-28,Cheboygan,Michigan,26031,27,2 +2020-06-29,Cheboygan,Michigan,26031,27,2 +2020-06-30,Cheboygan,Michigan,26031,27,2 +2020-07-01,Cheboygan,Michigan,26031,27,2 +2020-07-02,Cheboygan,Michigan,26031,27,2 +2020-07-03,Cheboygan,Michigan,26031,27,2 +2020-07-04,Cheboygan,Michigan,26031,27,2 +2020-07-05,Cheboygan,Michigan,26031,27,2 +2020-07-06,Cheboygan,Michigan,26031,28,2 +2020-07-07,Cheboygan,Michigan,26031,28,2 +2020-07-08,Cheboygan,Michigan,26031,27,2 +2020-07-09,Cheboygan,Michigan,26031,27,2 +2020-03-23,Chippewa,Michigan,26033,1,0 +2020-03-24,Chippewa,Michigan,26033,1,0 +2020-03-25,Chippewa,Michigan,26033,1,0 +2020-03-26,Chippewa,Michigan,26033,1,0 +2020-03-27,Chippewa,Michigan,26033,1,0 +2020-03-28,Chippewa,Michigan,26033,1,0 +2020-03-29,Chippewa,Michigan,26033,1,0 +2020-03-30,Chippewa,Michigan,26033,1,0 +2020-03-31,Chippewa,Michigan,26033,1,0 +2020-04-01,Chippewa,Michigan,26033,1,0 +2020-04-02,Chippewa,Michigan,26033,1,0 +2020-04-03,Chippewa,Michigan,26033,1,0 +2020-04-04,Chippewa,Michigan,26033,1,0 +2020-04-05,Chippewa,Michigan,26033,2,0 +2020-04-06,Chippewa,Michigan,26033,1,0 +2020-04-07,Chippewa,Michigan,26033,1,0 +2020-04-08,Chippewa,Michigan,26033,1,0 +2020-04-09,Chippewa,Michigan,26033,1,0 +2020-04-10,Chippewa,Michigan,26033,1,1 +2020-04-11,Chippewa,Michigan,26033,1,1 +2020-04-12,Chippewa,Michigan,26033,1,1 +2020-04-13,Chippewa,Michigan,26033,1,1 +2020-04-14,Chippewa,Michigan,26033,1,1 +2020-04-15,Chippewa,Michigan,26033,1,1 +2020-04-16,Chippewa,Michigan,26033,1,1 +2020-04-17,Chippewa,Michigan,26033,1,1 +2020-04-18,Chippewa,Michigan,26033,1,0 +2020-04-19,Chippewa,Michigan,26033,1,0 +2020-04-20,Chippewa,Michigan,26033,3,0 +2020-04-21,Chippewa,Michigan,26033,2,0 +2020-04-22,Chippewa,Michigan,26033,2,0 +2020-04-23,Chippewa,Michigan,26033,2,0 +2020-04-24,Chippewa,Michigan,26033,3,0 +2020-04-25,Chippewa,Michigan,26033,3,0 +2020-04-26,Chippewa,Michigan,26033,3,0 +2020-04-27,Chippewa,Michigan,26033,3,0 +2020-04-28,Chippewa,Michigan,26033,3,0 +2020-04-29,Chippewa,Michigan,26033,3,0 +2020-04-30,Chippewa,Michigan,26033,3,0 +2020-05-01,Chippewa,Michigan,26033,3,0 +2020-05-02,Chippewa,Michigan,26033,3,0 +2020-05-03,Chippewa,Michigan,26033,3,0 +2020-05-04,Chippewa,Michigan,26033,3,0 +2020-05-05,Chippewa,Michigan,26033,3,0 +2020-05-06,Chippewa,Michigan,26033,3,0 +2020-05-07,Chippewa,Michigan,26033,3,0 +2020-05-08,Chippewa,Michigan,26033,3,0 +2020-05-09,Chippewa,Michigan,26033,3,0 +2020-05-10,Chippewa,Michigan,26033,3,0 +2020-05-11,Chippewa,Michigan,26033,3,0 +2020-05-12,Chippewa,Michigan,26033,3,0 +2020-05-13,Chippewa,Michigan,26033,3,0 +2020-05-14,Chippewa,Michigan,26033,3,0 +2020-05-15,Chippewa,Michigan,26033,3,0 +2020-05-16,Chippewa,Michigan,26033,4,0 +2020-05-17,Chippewa,Michigan,26033,3,0 +2020-05-18,Chippewa,Michigan,26033,3,0 +2020-05-19,Chippewa,Michigan,26033,3,0 +2020-05-20,Chippewa,Michigan,26033,3,0 +2020-05-21,Chippewa,Michigan,26033,3,0 +2020-05-22,Chippewa,Michigan,26033,3,0 +2020-05-23,Chippewa,Michigan,26033,3,0 +2020-05-24,Chippewa,Michigan,26033,3,0 +2020-05-25,Chippewa,Michigan,26033,3,0 +2020-05-26,Chippewa,Michigan,26033,3,0 +2020-05-27,Chippewa,Michigan,26033,3,0 +2020-05-28,Chippewa,Michigan,26033,3,0 +2020-05-29,Chippewa,Michigan,26033,3,0 +2020-05-30,Chippewa,Michigan,26033,3,0 +2020-05-31,Chippewa,Michigan,26033,3,0 +2020-06-01,Chippewa,Michigan,26033,4,0 +2020-06-02,Chippewa,Michigan,26033,4,0 +2020-06-03,Chippewa,Michigan,26033,4,0 +2020-06-04,Chippewa,Michigan,26033,4,0 +2020-06-05,Chippewa,Michigan,26033,4,0 +2020-06-06,Chippewa,Michigan,26033,4,0 +2020-06-07,Chippewa,Michigan,26033,4,0 +2020-06-08,Chippewa,Michigan,26033,4,0 +2020-06-09,Chippewa,Michigan,26033,4,0 +2020-06-10,Chippewa,Michigan,26033,4,0 +2020-06-11,Chippewa,Michigan,26033,4,0 +2020-06-12,Chippewa,Michigan,26033,4,0 +2020-06-13,Chippewa,Michigan,26033,4,0 +2020-06-14,Chippewa,Michigan,26033,4,0 +2020-06-15,Chippewa,Michigan,26033,4,0 +2020-06-16,Chippewa,Michigan,26033,5,0 +2020-06-17,Chippewa,Michigan,26033,5,0 +2020-06-18,Chippewa,Michigan,26033,4,0 +2020-06-19,Chippewa,Michigan,26033,4,0 +2020-06-20,Chippewa,Michigan,26033,4,0 +2020-06-21,Chippewa,Michigan,26033,4,0 +2020-06-22,Chippewa,Michigan,26033,4,0 +2020-06-23,Chippewa,Michigan,26033,4,0 +2020-06-24,Chippewa,Michigan,26033,4,0 +2020-06-25,Chippewa,Michigan,26033,4,0 +2020-06-26,Chippewa,Michigan,26033,4,0 +2020-06-27,Chippewa,Michigan,26033,4,0 +2020-06-28,Chippewa,Michigan,26033,6,0 +2020-06-29,Chippewa,Michigan,26033,6,0 +2020-06-30,Chippewa,Michigan,26033,11,0 +2020-07-01,Chippewa,Michigan,26033,12,0 +2020-07-02,Chippewa,Michigan,26033,12,0 +2020-07-03,Chippewa,Michigan,26033,13,0 +2020-07-04,Chippewa,Michigan,26033,13,0 +2020-07-05,Chippewa,Michigan,26033,14,0 +2020-07-06,Chippewa,Michigan,26033,14,0 +2020-07-07,Chippewa,Michigan,26033,15,0 +2020-07-08,Chippewa,Michigan,26033,15,0 +2020-07-09,Chippewa,Michigan,26033,17,0 +2020-03-21,Clare,Michigan,26035,1,0 +2020-03-22,Clare,Michigan,26035,1,0 +2020-03-23,Clare,Michigan,26035,1,0 +2020-03-24,Clare,Michigan,26035,1,0 +2020-03-25,Clare,Michigan,26035,1,0 +2020-03-26,Clare,Michigan,26035,1,0 +2020-03-27,Clare,Michigan,26035,1,0 +2020-03-28,Clare,Michigan,26035,1,0 +2020-03-29,Clare,Michigan,26035,1,0 +2020-03-30,Clare,Michigan,26035,1,0 +2020-03-31,Clare,Michigan,26035,1,0 +2020-04-01,Clare,Michigan,26035,1,0 +2020-04-02,Clare,Michigan,26035,1,0 +2020-04-03,Clare,Michigan,26035,2,0 +2020-04-04,Clare,Michigan,26035,2,0 +2020-04-05,Clare,Michigan,26035,1,0 +2020-04-06,Clare,Michigan,26035,3,0 +2020-04-07,Clare,Michigan,26035,3,0 +2020-04-08,Clare,Michigan,26035,3,0 +2020-04-09,Clare,Michigan,26035,3,0 +2020-04-10,Clare,Michigan,26035,3,1 +2020-04-11,Clare,Michigan,26035,4,1 +2020-04-12,Clare,Michigan,26035,4,1 +2020-04-13,Clare,Michigan,26035,4,1 +2020-04-14,Clare,Michigan,26035,4,1 +2020-04-15,Clare,Michigan,26035,5,1 +2020-04-16,Clare,Michigan,26035,7,1 +2020-04-17,Clare,Michigan,26035,7,1 +2020-04-18,Clare,Michigan,26035,8,1 +2020-04-19,Clare,Michigan,26035,8,1 +2020-04-20,Clare,Michigan,26035,9,1 +2020-04-21,Clare,Michigan,26035,9,1 +2020-04-22,Clare,Michigan,26035,10,1 +2020-04-23,Clare,Michigan,26035,10,1 +2020-04-24,Clare,Michigan,26035,10,1 +2020-04-25,Clare,Michigan,26035,10,1 +2020-04-26,Clare,Michigan,26035,10,1 +2020-04-27,Clare,Michigan,26035,11,1 +2020-04-28,Clare,Michigan,26035,11,1 +2020-04-29,Clare,Michigan,26035,11,1 +2020-04-30,Clare,Michigan,26035,11,1 +2020-05-01,Clare,Michigan,26035,11,1 +2020-05-02,Clare,Michigan,26035,11,1 +2020-05-03,Clare,Michigan,26035,11,1 +2020-05-04,Clare,Michigan,26035,11,2 +2020-05-05,Clare,Michigan,26035,11,2 +2020-05-06,Clare,Michigan,26035,12,2 +2020-05-07,Clare,Michigan,26035,12,2 +2020-05-08,Clare,Michigan,26035,12,2 +2020-05-09,Clare,Michigan,26035,12,2 +2020-05-10,Clare,Michigan,26035,12,2 +2020-05-11,Clare,Michigan,26035,12,2 +2020-05-12,Clare,Michigan,26035,12,2 +2020-05-13,Clare,Michigan,26035,12,2 +2020-05-14,Clare,Michigan,26035,14,2 +2020-05-15,Clare,Michigan,26035,14,2 +2020-05-16,Clare,Michigan,26035,14,2 +2020-05-17,Clare,Michigan,26035,14,2 +2020-05-18,Clare,Michigan,26035,15,2 +2020-05-19,Clare,Michigan,26035,15,2 +2020-05-20,Clare,Michigan,26035,17,2 +2020-05-21,Clare,Michigan,26035,16,2 +2020-05-22,Clare,Michigan,26035,17,2 +2020-05-23,Clare,Michigan,26035,17,2 +2020-05-24,Clare,Michigan,26035,17,2 +2020-05-25,Clare,Michigan,26035,17,2 +2020-05-26,Clare,Michigan,26035,17,2 +2020-05-27,Clare,Michigan,26035,17,2 +2020-05-28,Clare,Michigan,26035,18,2 +2020-05-29,Clare,Michigan,26035,18,2 +2020-05-30,Clare,Michigan,26035,18,2 +2020-05-31,Clare,Michigan,26035,19,2 +2020-06-01,Clare,Michigan,26035,19,2 +2020-06-02,Clare,Michigan,26035,19,2 +2020-06-03,Clare,Michigan,26035,19,2 +2020-06-04,Clare,Michigan,26035,19,2 +2020-06-05,Clare,Michigan,26035,21,2 +2020-06-06,Clare,Michigan,26035,22,2 +2020-06-07,Clare,Michigan,26035,22,2 +2020-06-08,Clare,Michigan,26035,23,2 +2020-06-09,Clare,Michigan,26035,23,2 +2020-06-10,Clare,Michigan,26035,24,2 +2020-06-11,Clare,Michigan,26035,24,2 +2020-06-12,Clare,Michigan,26035,24,2 +2020-06-13,Clare,Michigan,26035,24,2 +2020-06-14,Clare,Michigan,26035,25,2 +2020-06-15,Clare,Michigan,26035,25,2 +2020-06-16,Clare,Michigan,26035,25,2 +2020-06-17,Clare,Michigan,26035,25,2 +2020-06-18,Clare,Michigan,26035,25,2 +2020-06-19,Clare,Michigan,26035,26,2 +2020-06-20,Clare,Michigan,26035,26,2 +2020-06-21,Clare,Michigan,26035,27,2 +2020-06-22,Clare,Michigan,26035,27,2 +2020-06-23,Clare,Michigan,26035,27,2 +2020-06-24,Clare,Michigan,26035,27,2 +2020-06-25,Clare,Michigan,26035,27,3 +2020-06-26,Clare,Michigan,26035,27,3 +2020-06-27,Clare,Michigan,26035,27,3 +2020-06-28,Clare,Michigan,26035,27,3 +2020-06-29,Clare,Michigan,26035,27,3 +2020-06-30,Clare,Michigan,26035,28,3 +2020-07-01,Clare,Michigan,26035,28,3 +2020-07-02,Clare,Michigan,26035,29,3 +2020-07-03,Clare,Michigan,26035,30,3 +2020-07-04,Clare,Michigan,26035,31,3 +2020-07-05,Clare,Michigan,26035,31,3 +2020-07-06,Clare,Michigan,26035,31,3 +2020-07-07,Clare,Michigan,26035,30,3 +2020-07-08,Clare,Michigan,26035,32,3 +2020-07-09,Clare,Michigan,26035,32,3 +2020-03-19,Clinton,Michigan,26037,1,0 +2020-03-20,Clinton,Michigan,26037,1,0 +2020-03-21,Clinton,Michigan,26037,2,0 +2020-03-22,Clinton,Michigan,26037,2,0 +2020-03-23,Clinton,Michigan,26037,2,0 +2020-03-24,Clinton,Michigan,26037,5,0 +2020-03-25,Clinton,Michigan,26037,6,0 +2020-03-26,Clinton,Michigan,26037,7,0 +2020-03-27,Clinton,Michigan,26037,8,0 +2020-03-28,Clinton,Michigan,26037,13,0 +2020-03-29,Clinton,Michigan,26037,14,0 +2020-03-30,Clinton,Michigan,26037,19,0 +2020-03-31,Clinton,Michigan,26037,24,0 +2020-04-01,Clinton,Michigan,26037,33,0 +2020-04-02,Clinton,Michigan,26037,43,1 +2020-04-03,Clinton,Michigan,26037,49,1 +2020-04-04,Clinton,Michigan,26037,54,1 +2020-04-05,Clinton,Michigan,26037,55,1 +2020-04-06,Clinton,Michigan,26037,56,1 +2020-04-07,Clinton,Michigan,26037,73,1 +2020-04-08,Clinton,Michigan,26037,82,1 +2020-04-09,Clinton,Michigan,26037,85,1 +2020-04-10,Clinton,Michigan,26037,90,3 +2020-04-11,Clinton,Michigan,26037,90,3 +2020-04-12,Clinton,Michigan,26037,91,3 +2020-04-13,Clinton,Michigan,26037,93,4 +2020-04-14,Clinton,Michigan,26037,98,4 +2020-04-15,Clinton,Michigan,26037,100,5 +2020-04-16,Clinton,Michigan,26037,102,6 +2020-04-17,Clinton,Michigan,26037,103,6 +2020-04-18,Clinton,Michigan,26037,103,6 +2020-04-19,Clinton,Michigan,26037,103,6 +2020-04-20,Clinton,Michigan,26037,104,7 +2020-04-21,Clinton,Michigan,26037,105,7 +2020-04-22,Clinton,Michigan,26037,106,7 +2020-04-23,Clinton,Michigan,26037,105,8 +2020-04-24,Clinton,Michigan,26037,106,9 +2020-04-25,Clinton,Michigan,26037,106,9 +2020-04-26,Clinton,Michigan,26037,109,9 +2020-04-27,Clinton,Michigan,26037,112,9 +2020-04-28,Clinton,Michigan,26037,114,9 +2020-04-29,Clinton,Michigan,26037,117,9 +2020-04-30,Clinton,Michigan,26037,118,9 +2020-05-01,Clinton,Michigan,26037,118,9 +2020-05-02,Clinton,Michigan,26037,118,10 +2020-05-03,Clinton,Michigan,26037,118,10 +2020-05-04,Clinton,Michigan,26037,119,10 +2020-05-05,Clinton,Michigan,26037,120,10 +2020-05-06,Clinton,Michigan,26037,123,10 +2020-05-07,Clinton,Michigan,26037,126,10 +2020-05-08,Clinton,Michigan,26037,126,10 +2020-05-09,Clinton,Michigan,26037,127,10 +2020-05-10,Clinton,Michigan,26037,126,10 +2020-05-11,Clinton,Michigan,26037,128,10 +2020-05-12,Clinton,Michigan,26037,126,10 +2020-05-13,Clinton,Michigan,26037,127,10 +2020-05-14,Clinton,Michigan,26037,129,10 +2020-05-15,Clinton,Michigan,26037,132,10 +2020-05-16,Clinton,Michigan,26037,132,10 +2020-05-17,Clinton,Michigan,26037,134,10 +2020-05-18,Clinton,Michigan,26037,135,10 +2020-05-19,Clinton,Michigan,26037,136,10 +2020-05-20,Clinton,Michigan,26037,136,10 +2020-05-21,Clinton,Michigan,26037,137,10 +2020-05-22,Clinton,Michigan,26037,136,10 +2020-05-23,Clinton,Michigan,26037,137,10 +2020-05-24,Clinton,Michigan,26037,138,10 +2020-05-25,Clinton,Michigan,26037,138,10 +2020-05-26,Clinton,Michigan,26037,138,10 +2020-05-27,Clinton,Michigan,26037,142,10 +2020-05-28,Clinton,Michigan,26037,139,10 +2020-05-29,Clinton,Michigan,26037,139,10 +2020-05-30,Clinton,Michigan,26037,139,10 +2020-05-31,Clinton,Michigan,26037,139,11 +2020-06-01,Clinton,Michigan,26037,140,11 +2020-06-02,Clinton,Michigan,26037,140,11 +2020-06-03,Clinton,Michigan,26037,141,11 +2020-06-04,Clinton,Michigan,26037,142,11 +2020-06-05,Clinton,Michigan,26037,181,11 +2020-06-06,Clinton,Michigan,26037,182,11 +2020-06-07,Clinton,Michigan,26037,182,11 +2020-06-08,Clinton,Michigan,26037,183,11 +2020-06-09,Clinton,Michigan,26037,186,11 +2020-06-10,Clinton,Michigan,26037,187,11 +2020-06-11,Clinton,Michigan,26037,188,11 +2020-06-12,Clinton,Michigan,26037,188,11 +2020-06-13,Clinton,Michigan,26037,188,11 +2020-06-14,Clinton,Michigan,26037,190,11 +2020-06-15,Clinton,Michigan,26037,190,11 +2020-06-16,Clinton,Michigan,26037,190,11 +2020-06-17,Clinton,Michigan,26037,191,11 +2020-06-18,Clinton,Michigan,26037,193,11 +2020-06-19,Clinton,Michigan,26037,195,11 +2020-06-20,Clinton,Michigan,26037,199,11 +2020-06-21,Clinton,Michigan,26037,201,11 +2020-06-22,Clinton,Michigan,26037,201,11 +2020-06-23,Clinton,Michigan,26037,204,11 +2020-06-24,Clinton,Michigan,26037,205,11 +2020-06-25,Clinton,Michigan,26037,207,12 +2020-06-26,Clinton,Michigan,26037,214,12 +2020-06-27,Clinton,Michigan,26037,215,12 +2020-06-28,Clinton,Michigan,26037,217,12 +2020-06-29,Clinton,Michigan,26037,220,12 +2020-06-30,Clinton,Michigan,26037,223,12 +2020-07-01,Clinton,Michigan,26037,226,12 +2020-07-02,Clinton,Michigan,26037,236,12 +2020-07-03,Clinton,Michigan,26037,241,12 +2020-07-04,Clinton,Michigan,26037,247,12 +2020-07-05,Clinton,Michigan,26037,250,12 +2020-07-06,Clinton,Michigan,26037,253,12 +2020-07-07,Clinton,Michigan,26037,263,12 +2020-07-08,Clinton,Michigan,26037,271,12 +2020-07-09,Clinton,Michigan,26037,279,12 +2020-03-27,Crawford,Michigan,26039,1,0 +2020-03-28,Crawford,Michigan,26039,1,0 +2020-03-29,Crawford,Michigan,26039,1,0 +2020-03-30,Crawford,Michigan,26039,1,0 +2020-03-31,Crawford,Michigan,26039,1,0 +2020-04-01,Crawford,Michigan,26039,1,0 +2020-04-02,Crawford,Michigan,26039,1,0 +2020-04-03,Crawford,Michigan,26039,1,0 +2020-04-04,Crawford,Michigan,26039,1,0 +2020-04-05,Crawford,Michigan,26039,1,0 +2020-04-06,Crawford,Michigan,26039,2,0 +2020-04-07,Crawford,Michigan,26039,5,1 +2020-04-08,Crawford,Michigan,26039,5,1 +2020-04-09,Crawford,Michigan,26039,5,1 +2020-04-10,Crawford,Michigan,26039,5,1 +2020-04-11,Crawford,Michigan,26039,8,1 +2020-04-12,Crawford,Michigan,26039,12,1 +2020-04-13,Crawford,Michigan,26039,12,1 +2020-04-14,Crawford,Michigan,26039,15,1 +2020-04-15,Crawford,Michigan,26039,16,1 +2020-04-16,Crawford,Michigan,26039,18,1 +2020-04-17,Crawford,Michigan,26039,22,2 +2020-04-18,Crawford,Michigan,26039,26,2 +2020-04-19,Crawford,Michigan,26039,29,2 +2020-04-20,Crawford,Michigan,26039,29,2 +2020-04-21,Crawford,Michigan,26039,30,2 +2020-04-22,Crawford,Michigan,26039,32,2 +2020-04-23,Crawford,Michigan,26039,43,2 +2020-04-24,Crawford,Michigan,26039,46,3 +2020-04-25,Crawford,Michigan,26039,45,3 +2020-04-26,Crawford,Michigan,26039,46,3 +2020-04-27,Crawford,Michigan,26039,50,3 +2020-04-28,Crawford,Michigan,26039,51,4 +2020-04-29,Crawford,Michigan,26039,54,4 +2020-04-30,Crawford,Michigan,26039,54,4 +2020-05-01,Crawford,Michigan,26039,53,4 +2020-05-02,Crawford,Michigan,26039,57,4 +2020-05-03,Crawford,Michigan,26039,56,4 +2020-05-04,Crawford,Michigan,26039,56,4 +2020-05-05,Crawford,Michigan,26039,56,4 +2020-05-06,Crawford,Michigan,26039,56,4 +2020-05-07,Crawford,Michigan,26039,56,4 +2020-05-08,Crawford,Michigan,26039,56,4 +2020-05-09,Crawford,Michigan,26039,57,4 +2020-05-10,Crawford,Michigan,26039,57,4 +2020-05-11,Crawford,Michigan,26039,57,4 +2020-05-12,Crawford,Michigan,26039,57,4 +2020-05-13,Crawford,Michigan,26039,57,4 +2020-05-14,Crawford,Michigan,26039,57,4 +2020-05-15,Crawford,Michigan,26039,57,4 +2020-05-16,Crawford,Michigan,26039,57,4 +2020-05-17,Crawford,Michigan,26039,57,4 +2020-05-18,Crawford,Michigan,26039,57,4 +2020-05-19,Crawford,Michigan,26039,57,5 +2020-05-20,Crawford,Michigan,26039,58,5 +2020-05-21,Crawford,Michigan,26039,58,5 +2020-05-22,Crawford,Michigan,26039,58,5 +2020-05-23,Crawford,Michigan,26039,58,5 +2020-05-24,Crawford,Michigan,26039,58,5 +2020-05-25,Crawford,Michigan,26039,58,5 +2020-05-26,Crawford,Michigan,26039,58,5 +2020-05-27,Crawford,Michigan,26039,58,5 +2020-05-28,Crawford,Michigan,26039,58,5 +2020-05-29,Crawford,Michigan,26039,58,5 +2020-05-30,Crawford,Michigan,26039,58,5 +2020-05-31,Crawford,Michigan,26039,58,5 +2020-06-01,Crawford,Michigan,26039,62,5 +2020-06-02,Crawford,Michigan,26039,62,5 +2020-06-03,Crawford,Michigan,26039,63,5 +2020-06-04,Crawford,Michigan,26039,63,5 +2020-06-05,Crawford,Michigan,26039,63,5 +2020-06-06,Crawford,Michigan,26039,63,5 +2020-06-07,Crawford,Michigan,26039,63,5 +2020-06-08,Crawford,Michigan,26039,63,5 +2020-06-09,Crawford,Michigan,26039,63,5 +2020-06-10,Crawford,Michigan,26039,63,5 +2020-06-11,Crawford,Michigan,26039,63,5 +2020-06-12,Crawford,Michigan,26039,63,5 +2020-06-13,Crawford,Michigan,26039,63,5 +2020-06-14,Crawford,Michigan,26039,63,5 +2020-06-15,Crawford,Michigan,26039,65,5 +2020-06-16,Crawford,Michigan,26039,65,5 +2020-06-17,Crawford,Michigan,26039,65,5 +2020-06-18,Crawford,Michigan,26039,65,5 +2020-06-19,Crawford,Michigan,26039,66,5 +2020-06-20,Crawford,Michigan,26039,66,5 +2020-06-21,Crawford,Michigan,26039,66,5 +2020-06-22,Crawford,Michigan,26039,66,5 +2020-06-23,Crawford,Michigan,26039,66,5 +2020-06-24,Crawford,Michigan,26039,68,5 +2020-06-25,Crawford,Michigan,26039,68,5 +2020-06-26,Crawford,Michigan,26039,68,5 +2020-06-27,Crawford,Michigan,26039,68,5 +2020-06-28,Crawford,Michigan,26039,68,5 +2020-06-29,Crawford,Michigan,26039,71,5 +2020-06-30,Crawford,Michigan,26039,70,5 +2020-07-01,Crawford,Michigan,26039,70,5 +2020-07-02,Crawford,Michigan,26039,70,5 +2020-07-03,Crawford,Michigan,26039,70,5 +2020-07-04,Crawford,Michigan,26039,70,5 +2020-07-05,Crawford,Michigan,26039,70,5 +2020-07-06,Crawford,Michigan,26039,70,5 +2020-07-07,Crawford,Michigan,26039,81,5 +2020-07-08,Crawford,Michigan,26039,81,5 +2020-07-09,Crawford,Michigan,26039,81,5 +2020-03-30,Delta,Michigan,26041,1,0 +2020-03-31,Delta,Michigan,26041,1,0 +2020-04-01,Delta,Michigan,26041,3,0 +2020-04-02,Delta,Michigan,26041,4,0 +2020-04-03,Delta,Michigan,26041,5,0 +2020-04-04,Delta,Michigan,26041,5,0 +2020-04-05,Delta,Michigan,26041,7,0 +2020-04-06,Delta,Michigan,26041,7,0 +2020-04-07,Delta,Michigan,26041,7,0 +2020-04-08,Delta,Michigan,26041,8,0 +2020-04-09,Delta,Michigan,26041,9,1 +2020-04-10,Delta,Michigan,26041,9,1 +2020-04-11,Delta,Michigan,26041,9,1 +2020-04-12,Delta,Michigan,26041,9,1 +2020-04-13,Delta,Michigan,26041,9,1 +2020-04-14,Delta,Michigan,26041,9,1 +2020-04-15,Delta,Michigan,26041,9,1 +2020-04-16,Delta,Michigan,26041,10,1 +2020-04-17,Delta,Michigan,26041,10,1 +2020-04-18,Delta,Michigan,26041,12,1 +2020-04-19,Delta,Michigan,26041,12,1 +2020-04-20,Delta,Michigan,26041,13,1 +2020-04-21,Delta,Michigan,26041,12,2 +2020-04-22,Delta,Michigan,26041,12,2 +2020-04-23,Delta,Michigan,26041,12,2 +2020-04-24,Delta,Michigan,26041,12,2 +2020-04-25,Delta,Michigan,26041,12,2 +2020-04-26,Delta,Michigan,26041,12,2 +2020-04-27,Delta,Michigan,26041,13,2 +2020-04-28,Delta,Michigan,26041,13,2 +2020-04-29,Delta,Michigan,26041,13,2 +2020-04-30,Delta,Michigan,26041,13,2 +2020-05-01,Delta,Michigan,26041,13,2 +2020-05-02,Delta,Michigan,26041,13,2 +2020-05-03,Delta,Michigan,26041,13,2 +2020-05-04,Delta,Michigan,26041,13,2 +2020-05-05,Delta,Michigan,26041,14,2 +2020-05-06,Delta,Michigan,26041,14,2 +2020-05-07,Delta,Michigan,26041,15,2 +2020-05-08,Delta,Michigan,26041,15,2 +2020-05-09,Delta,Michigan,26041,14,2 +2020-05-10,Delta,Michigan,26041,14,2 +2020-05-11,Delta,Michigan,26041,14,2 +2020-05-12,Delta,Michigan,26041,14,2 +2020-05-13,Delta,Michigan,26041,14,2 +2020-05-14,Delta,Michigan,26041,14,2 +2020-05-15,Delta,Michigan,26041,14,2 +2020-05-16,Delta,Michigan,26041,14,2 +2020-05-17,Delta,Michigan,26041,14,2 +2020-05-18,Delta,Michigan,26041,14,2 +2020-05-19,Delta,Michigan,26041,15,2 +2020-05-20,Delta,Michigan,26041,16,2 +2020-05-21,Delta,Michigan,26041,17,2 +2020-05-22,Delta,Michigan,26041,17,2 +2020-05-23,Delta,Michigan,26041,17,2 +2020-05-24,Delta,Michigan,26041,17,2 +2020-05-25,Delta,Michigan,26041,17,2 +2020-05-26,Delta,Michigan,26041,17,2 +2020-05-27,Delta,Michigan,26041,17,2 +2020-05-28,Delta,Michigan,26041,17,2 +2020-05-29,Delta,Michigan,26041,17,2 +2020-05-30,Delta,Michigan,26041,17,2 +2020-05-31,Delta,Michigan,26041,17,2 +2020-06-01,Delta,Michigan,26041,17,2 +2020-06-02,Delta,Michigan,26041,17,2 +2020-06-03,Delta,Michigan,26041,17,2 +2020-06-04,Delta,Michigan,26041,17,2 +2020-06-05,Delta,Michigan,26041,20,2 +2020-06-06,Delta,Michigan,26041,20,2 +2020-06-07,Delta,Michigan,26041,20,2 +2020-06-08,Delta,Michigan,26041,20,2 +2020-06-09,Delta,Michigan,26041,20,2 +2020-06-10,Delta,Michigan,26041,20,2 +2020-06-11,Delta,Michigan,26041,20,2 +2020-06-12,Delta,Michigan,26041,21,2 +2020-06-13,Delta,Michigan,26041,21,2 +2020-06-14,Delta,Michigan,26041,21,2 +2020-06-15,Delta,Michigan,26041,21,2 +2020-06-16,Delta,Michigan,26041,21,2 +2020-06-17,Delta,Michigan,26041,21,2 +2020-06-18,Delta,Michigan,26041,21,2 +2020-06-19,Delta,Michigan,26041,21,2 +2020-06-20,Delta,Michigan,26041,21,2 +2020-06-21,Delta,Michigan,26041,21,2 +2020-06-22,Delta,Michigan,26041,21,2 +2020-06-23,Delta,Michigan,26041,21,2 +2020-06-24,Delta,Michigan,26041,21,2 +2020-06-25,Delta,Michigan,26041,22,2 +2020-06-26,Delta,Michigan,26041,21,3 +2020-06-27,Delta,Michigan,26041,21,3 +2020-06-28,Delta,Michigan,26041,21,3 +2020-06-29,Delta,Michigan,26041,21,3 +2020-06-30,Delta,Michigan,26041,23,3 +2020-07-01,Delta,Michigan,26041,24,3 +2020-07-02,Delta,Michigan,26041,26,3 +2020-07-03,Delta,Michigan,26041,27,3 +2020-07-04,Delta,Michigan,26041,27,3 +2020-07-05,Delta,Michigan,26041,27,3 +2020-07-06,Delta,Michigan,26041,27,3 +2020-07-07,Delta,Michigan,26041,27,3 +2020-07-08,Delta,Michigan,26041,27,3 +2020-07-09,Delta,Michigan,26041,30,3 +2020-04-02,Dickinson,Michigan,26043,1,0 +2020-04-03,Dickinson,Michigan,26043,1,1 +2020-04-04,Dickinson,Michigan,26043,1,1 +2020-04-05,Dickinson,Michigan,26043,1,1 +2020-04-06,Dickinson,Michigan,26043,2,1 +2020-04-07,Dickinson,Michigan,26043,2,1 +2020-04-08,Dickinson,Michigan,26043,2,1 +2020-04-09,Dickinson,Michigan,26043,3,1 +2020-04-10,Dickinson,Michigan,26043,3,1 +2020-04-11,Dickinson,Michigan,26043,3,2 +2020-04-12,Dickinson,Michigan,26043,3,2 +2020-04-13,Dickinson,Michigan,26043,3,2 +2020-04-14,Dickinson,Michigan,26043,3,2 +2020-04-15,Dickinson,Michigan,26043,3,2 +2020-04-16,Dickinson,Michigan,26043,3,2 +2020-04-17,Dickinson,Michigan,26043,3,2 +2020-04-18,Dickinson,Michigan,26043,3,2 +2020-04-19,Dickinson,Michigan,26043,3,2 +2020-04-20,Dickinson,Michigan,26043,3,2 +2020-04-21,Dickinson,Michigan,26043,3,2 +2020-04-22,Dickinson,Michigan,26043,3,2 +2020-04-23,Dickinson,Michigan,26043,3,2 +2020-04-24,Dickinson,Michigan,26043,3,2 +2020-04-25,Dickinson,Michigan,26043,3,2 +2020-04-26,Dickinson,Michigan,26043,3,2 +2020-04-27,Dickinson,Michigan,26043,3,2 +2020-04-28,Dickinson,Michigan,26043,3,2 +2020-04-29,Dickinson,Michigan,26043,3,2 +2020-04-30,Dickinson,Michigan,26043,3,2 +2020-05-01,Dickinson,Michigan,26043,3,2 +2020-05-02,Dickinson,Michigan,26043,3,2 +2020-05-03,Dickinson,Michigan,26043,4,2 +2020-05-04,Dickinson,Michigan,26043,3,2 +2020-05-05,Dickinson,Michigan,26043,3,2 +2020-05-06,Dickinson,Michigan,26043,4,2 +2020-05-07,Dickinson,Michigan,26043,4,2 +2020-05-08,Dickinson,Michigan,26043,5,2 +2020-05-09,Dickinson,Michigan,26043,5,2 +2020-05-10,Dickinson,Michigan,26043,5,2 +2020-05-11,Dickinson,Michigan,26043,5,2 +2020-05-12,Dickinson,Michigan,26043,5,2 +2020-05-13,Dickinson,Michigan,26043,5,2 +2020-05-14,Dickinson,Michigan,26043,5,2 +2020-05-15,Dickinson,Michigan,26043,5,2 +2020-05-16,Dickinson,Michigan,26043,5,2 +2020-05-17,Dickinson,Michigan,26043,5,2 +2020-05-18,Dickinson,Michigan,26043,5,2 +2020-05-19,Dickinson,Michigan,26043,5,2 +2020-05-20,Dickinson,Michigan,26043,5,2 +2020-05-21,Dickinson,Michigan,26043,5,2 +2020-05-22,Dickinson,Michigan,26043,5,2 +2020-05-23,Dickinson,Michigan,26043,5,2 +2020-05-24,Dickinson,Michigan,26043,5,2 +2020-05-25,Dickinson,Michigan,26043,5,2 +2020-05-26,Dickinson,Michigan,26043,5,2 +2020-05-27,Dickinson,Michigan,26043,5,2 +2020-05-28,Dickinson,Michigan,26043,5,2 +2020-05-29,Dickinson,Michigan,26043,5,2 +2020-05-30,Dickinson,Michigan,26043,5,2 +2020-05-31,Dickinson,Michigan,26043,5,2 +2020-06-01,Dickinson,Michigan,26043,5,2 +2020-06-02,Dickinson,Michigan,26043,5,2 +2020-06-03,Dickinson,Michigan,26043,5,2 +2020-06-04,Dickinson,Michigan,26043,5,2 +2020-06-05,Dickinson,Michigan,26043,5,2 +2020-06-06,Dickinson,Michigan,26043,6,2 +2020-06-07,Dickinson,Michigan,26043,6,2 +2020-06-08,Dickinson,Michigan,26043,6,2 +2020-06-09,Dickinson,Michigan,26043,6,2 +2020-06-10,Dickinson,Michigan,26043,6,2 +2020-06-11,Dickinson,Michigan,26043,6,2 +2020-06-12,Dickinson,Michigan,26043,7,2 +2020-06-13,Dickinson,Michigan,26043,7,2 +2020-06-14,Dickinson,Michigan,26043,7,2 +2020-06-15,Dickinson,Michigan,26043,7,2 +2020-06-16,Dickinson,Michigan,26043,7,2 +2020-06-17,Dickinson,Michigan,26043,7,2 +2020-06-18,Dickinson,Michigan,26043,7,2 +2020-06-19,Dickinson,Michigan,26043,7,2 +2020-06-20,Dickinson,Michigan,26043,7,2 +2020-06-21,Dickinson,Michigan,26043,7,2 +2020-06-22,Dickinson,Michigan,26043,7,2 +2020-06-23,Dickinson,Michigan,26043,7,2 +2020-06-24,Dickinson,Michigan,26043,7,2 +2020-06-25,Dickinson,Michigan,26043,7,2 +2020-06-26,Dickinson,Michigan,26043,7,2 +2020-06-27,Dickinson,Michigan,26043,7,2 +2020-06-28,Dickinson,Michigan,26043,7,2 +2020-06-29,Dickinson,Michigan,26043,7,2 +2020-06-30,Dickinson,Michigan,26043,7,2 +2020-07-01,Dickinson,Michigan,26043,7,2 +2020-07-02,Dickinson,Michigan,26043,7,2 +2020-07-03,Dickinson,Michigan,26043,9,2 +2020-07-04,Dickinson,Michigan,26043,10,2 +2020-07-05,Dickinson,Michigan,26043,10,2 +2020-07-06,Dickinson,Michigan,26043,14,2 +2020-07-07,Dickinson,Michigan,26043,15,2 +2020-07-08,Dickinson,Michigan,26043,16,2 +2020-07-09,Dickinson,Michigan,26043,16,2 +2020-03-19,Eaton,Michigan,26045,2,0 +2020-03-20,Eaton,Michigan,26045,2,0 +2020-03-21,Eaton,Michigan,26045,2,0 +2020-03-22,Eaton,Michigan,26045,2,0 +2020-03-23,Eaton,Michigan,26045,2,0 +2020-03-24,Eaton,Michigan,26045,3,0 +2020-03-25,Eaton,Michigan,26045,3,0 +2020-03-26,Eaton,Michigan,26045,4,0 +2020-03-27,Eaton,Michigan,26045,8,0 +2020-03-28,Eaton,Michigan,26045,8,0 +2020-03-29,Eaton,Michigan,26045,8,0 +2020-03-30,Eaton,Michigan,26045,15,0 +2020-03-31,Eaton,Michigan,26045,21,0 +2020-04-01,Eaton,Michigan,26045,27,0 +2020-04-02,Eaton,Michigan,26045,37,1 +2020-04-03,Eaton,Michigan,26045,47,2 +2020-04-04,Eaton,Michigan,26045,53,2 +2020-04-05,Eaton,Michigan,26045,55,2 +2020-04-06,Eaton,Michigan,26045,57,2 +2020-04-07,Eaton,Michigan,26045,61,2 +2020-04-08,Eaton,Michigan,26045,67,3 +2020-04-09,Eaton,Michigan,26045,69,3 +2020-04-10,Eaton,Michigan,26045,69,4 +2020-04-11,Eaton,Michigan,26045,71,4 +2020-04-12,Eaton,Michigan,26045,74,4 +2020-04-13,Eaton,Michigan,26045,74,5 +2020-04-14,Eaton,Michigan,26045,76,5 +2020-04-15,Eaton,Michigan,26045,77,5 +2020-04-16,Eaton,Michigan,26045,84,5 +2020-04-17,Eaton,Michigan,26045,87,5 +2020-04-18,Eaton,Michigan,26045,88,5 +2020-04-19,Eaton,Michigan,26045,88,5 +2020-04-20,Eaton,Michigan,26045,90,5 +2020-04-21,Eaton,Michigan,26045,99,5 +2020-04-22,Eaton,Michigan,26045,104,5 +2020-04-23,Eaton,Michigan,26045,111,5 +2020-04-24,Eaton,Michigan,26045,114,5 +2020-04-25,Eaton,Michigan,26045,114,5 +2020-04-26,Eaton,Michigan,26045,115,5 +2020-04-27,Eaton,Michigan,26045,116,6 +2020-04-28,Eaton,Michigan,26045,119,6 +2020-04-29,Eaton,Michigan,26045,124,6 +2020-04-30,Eaton,Michigan,26045,131,6 +2020-05-01,Eaton,Michigan,26045,133,6 +2020-05-02,Eaton,Michigan,26045,136,6 +2020-05-03,Eaton,Michigan,26045,136,6 +2020-05-04,Eaton,Michigan,26045,137,6 +2020-05-05,Eaton,Michigan,26045,138,6 +2020-05-06,Eaton,Michigan,26045,141,6 +2020-05-07,Eaton,Michigan,26045,146,6 +2020-05-08,Eaton,Michigan,26045,152,6 +2020-05-09,Eaton,Michigan,26045,150,6 +2020-05-10,Eaton,Michigan,26045,150,6 +2020-05-11,Eaton,Michigan,26045,151,6 +2020-05-12,Eaton,Michigan,26045,152,6 +2020-05-13,Eaton,Michigan,26045,155,6 +2020-05-14,Eaton,Michigan,26045,161,6 +2020-05-15,Eaton,Michigan,26045,162,6 +2020-05-16,Eaton,Michigan,26045,162,6 +2020-05-17,Eaton,Michigan,26045,163,6 +2020-05-18,Eaton,Michigan,26045,165,6 +2020-05-19,Eaton,Michigan,26045,165,6 +2020-05-20,Eaton,Michigan,26045,168,6 +2020-05-21,Eaton,Michigan,26045,170,6 +2020-05-22,Eaton,Michigan,26045,173,6 +2020-05-23,Eaton,Michigan,26045,175,6 +2020-05-24,Eaton,Michigan,26045,176,6 +2020-05-25,Eaton,Michigan,26045,178,6 +2020-05-26,Eaton,Michigan,26045,178,6 +2020-05-27,Eaton,Michigan,26045,179,6 +2020-05-28,Eaton,Michigan,26045,183,6 +2020-05-29,Eaton,Michigan,26045,185,6 +2020-05-30,Eaton,Michigan,26045,187,6 +2020-05-31,Eaton,Michigan,26045,190,6 +2020-06-01,Eaton,Michigan,26045,190,6 +2020-06-02,Eaton,Michigan,26045,189,6 +2020-06-03,Eaton,Michigan,26045,192,6 +2020-06-04,Eaton,Michigan,26045,192,6 +2020-06-05,Eaton,Michigan,26045,235,7 +2020-06-06,Eaton,Michigan,26045,244,7 +2020-06-07,Eaton,Michigan,26045,245,7 +2020-06-08,Eaton,Michigan,26045,244,7 +2020-06-09,Eaton,Michigan,26045,252,7 +2020-06-10,Eaton,Michigan,26045,255,7 +2020-06-11,Eaton,Michigan,26045,255,7 +2020-06-12,Eaton,Michigan,26045,256,7 +2020-06-13,Eaton,Michigan,26045,256,7 +2020-06-14,Eaton,Michigan,26045,257,7 +2020-06-15,Eaton,Michigan,26045,258,7 +2020-06-16,Eaton,Michigan,26045,258,7 +2020-06-17,Eaton,Michigan,26045,261,7 +2020-06-18,Eaton,Michigan,26045,263,7 +2020-06-19,Eaton,Michigan,26045,265,7 +2020-06-20,Eaton,Michigan,26045,267,7 +2020-06-21,Eaton,Michigan,26045,269,7 +2020-06-22,Eaton,Michigan,26045,271,7 +2020-06-23,Eaton,Michigan,26045,274,7 +2020-06-24,Eaton,Michigan,26045,287,7 +2020-06-25,Eaton,Michigan,26045,297,7 +2020-06-26,Eaton,Michigan,26045,306,7 +2020-06-27,Eaton,Michigan,26045,311,7 +2020-06-28,Eaton,Michigan,26045,314,7 +2020-06-29,Eaton,Michigan,26045,319,7 +2020-06-30,Eaton,Michigan,26045,327,7 +2020-07-01,Eaton,Michigan,26045,331,7 +2020-07-02,Eaton,Michigan,26045,320,7 +2020-07-03,Eaton,Michigan,26045,328,7 +2020-07-04,Eaton,Michigan,26045,335,7 +2020-07-05,Eaton,Michigan,26045,336,7 +2020-07-06,Eaton,Michigan,26045,338,7 +2020-07-07,Eaton,Michigan,26045,347,7 +2020-07-08,Eaton,Michigan,26045,348,7 +2020-07-09,Eaton,Michigan,26045,348,7 +2020-03-22,Emmet,Michigan,26047,1,0 +2020-03-23,Emmet,Michigan,26047,1,0 +2020-03-24,Emmet,Michigan,26047,2,0 +2020-03-25,Emmet,Michigan,26047,2,0 +2020-03-26,Emmet,Michigan,26047,2,0 +2020-03-27,Emmet,Michigan,26047,3,0 +2020-03-28,Emmet,Michigan,26047,4,0 +2020-03-29,Emmet,Michigan,26047,4,0 +2020-03-30,Emmet,Michigan,26047,4,0 +2020-03-31,Emmet,Michigan,26047,5,0 +2020-04-01,Emmet,Michigan,26047,7,1 +2020-04-02,Emmet,Michigan,26047,6,1 +2020-04-03,Emmet,Michigan,26047,6,2 +2020-04-04,Emmet,Michigan,26047,7,2 +2020-04-05,Emmet,Michigan,26047,13,2 +2020-04-06,Emmet,Michigan,26047,13,2 +2020-04-07,Emmet,Michigan,26047,14,2 +2020-04-08,Emmet,Michigan,26047,15,2 +2020-04-09,Emmet,Michigan,26047,16,2 +2020-04-10,Emmet,Michigan,26047,17,2 +2020-04-11,Emmet,Michigan,26047,21,2 +2020-04-12,Emmet,Michigan,26047,21,2 +2020-04-13,Emmet,Michigan,26047,21,2 +2020-04-14,Emmet,Michigan,26047,21,2 +2020-04-15,Emmet,Michigan,26047,21,2 +2020-04-16,Emmet,Michigan,26047,21,2 +2020-04-17,Emmet,Michigan,26047,21,2 +2020-04-18,Emmet,Michigan,26047,21,2 +2020-04-19,Emmet,Michigan,26047,21,2 +2020-04-20,Emmet,Michigan,26047,21,2 +2020-04-21,Emmet,Michigan,26047,21,2 +2020-04-22,Emmet,Michigan,26047,22,2 +2020-04-23,Emmet,Michigan,26047,21,2 +2020-04-24,Emmet,Michigan,26047,21,2 +2020-04-25,Emmet,Michigan,26047,21,2 +2020-04-26,Emmet,Michigan,26047,21,2 +2020-04-27,Emmet,Michigan,26047,21,2 +2020-04-28,Emmet,Michigan,26047,21,2 +2020-04-29,Emmet,Michigan,26047,21,2 +2020-04-30,Emmet,Michigan,26047,21,2 +2020-05-01,Emmet,Michigan,26047,21,2 +2020-05-02,Emmet,Michigan,26047,21,2 +2020-05-03,Emmet,Michigan,26047,21,2 +2020-05-04,Emmet,Michigan,26047,21,2 +2020-05-05,Emmet,Michigan,26047,21,2 +2020-05-06,Emmet,Michigan,26047,21,2 +2020-05-07,Emmet,Michigan,26047,21,2 +2020-05-08,Emmet,Michigan,26047,21,2 +2020-05-09,Emmet,Michigan,26047,21,2 +2020-05-10,Emmet,Michigan,26047,21,2 +2020-05-11,Emmet,Michigan,26047,21,2 +2020-05-12,Emmet,Michigan,26047,21,2 +2020-05-13,Emmet,Michigan,26047,21,2 +2020-05-14,Emmet,Michigan,26047,21,2 +2020-05-15,Emmet,Michigan,26047,21,2 +2020-05-16,Emmet,Michigan,26047,21,2 +2020-05-17,Emmet,Michigan,26047,21,2 +2020-05-18,Emmet,Michigan,26047,21,2 +2020-05-19,Emmet,Michigan,26047,21,2 +2020-05-20,Emmet,Michigan,26047,21,2 +2020-05-21,Emmet,Michigan,26047,21,2 +2020-05-22,Emmet,Michigan,26047,21,2 +2020-05-23,Emmet,Michigan,26047,21,2 +2020-05-24,Emmet,Michigan,26047,21,2 +2020-05-25,Emmet,Michigan,26047,21,2 +2020-05-26,Emmet,Michigan,26047,21,2 +2020-05-27,Emmet,Michigan,26047,21,2 +2020-05-28,Emmet,Michigan,26047,21,2 +2020-05-29,Emmet,Michigan,26047,21,2 +2020-05-30,Emmet,Michigan,26047,21,2 +2020-05-31,Emmet,Michigan,26047,21,2 +2020-06-01,Emmet,Michigan,26047,27,2 +2020-06-02,Emmet,Michigan,26047,27,2 +2020-06-03,Emmet,Michigan,26047,27,2 +2020-06-04,Emmet,Michigan,26047,27,2 +2020-06-05,Emmet,Michigan,26047,27,2 +2020-06-06,Emmet,Michigan,26047,27,2 +2020-06-07,Emmet,Michigan,26047,27,2 +2020-06-08,Emmet,Michigan,26047,27,2 +2020-06-09,Emmet,Michigan,26047,27,2 +2020-06-10,Emmet,Michigan,26047,27,2 +2020-06-11,Emmet,Michigan,26047,27,2 +2020-06-12,Emmet,Michigan,26047,27,2 +2020-06-13,Emmet,Michigan,26047,27,2 +2020-06-14,Emmet,Michigan,26047,27,2 +2020-06-15,Emmet,Michigan,26047,27,2 +2020-06-16,Emmet,Michigan,26047,27,2 +2020-06-17,Emmet,Michigan,26047,27,2 +2020-06-18,Emmet,Michigan,26047,28,2 +2020-06-19,Emmet,Michigan,26047,27,2 +2020-06-20,Emmet,Michigan,26047,27,2 +2020-06-21,Emmet,Michigan,26047,27,2 +2020-06-22,Emmet,Michigan,26047,27,2 +2020-06-23,Emmet,Michigan,26047,27,2 +2020-06-24,Emmet,Michigan,26047,28,2 +2020-06-25,Emmet,Michigan,26047,27,2 +2020-06-26,Emmet,Michigan,26047,27,2 +2020-06-27,Emmet,Michigan,26047,27,2 +2020-06-28,Emmet,Michigan,26047,27,2 +2020-06-29,Emmet,Michigan,26047,27,2 +2020-06-30,Emmet,Michigan,26047,27,2 +2020-07-01,Emmet,Michigan,26047,29,2 +2020-07-02,Emmet,Michigan,26047,29,2 +2020-07-03,Emmet,Michigan,26047,29,2 +2020-07-04,Emmet,Michigan,26047,30,2 +2020-07-05,Emmet,Michigan,26047,35,2 +2020-07-06,Emmet,Michigan,26047,31,2 +2020-07-07,Emmet,Michigan,26047,32,2 +2020-07-08,Emmet,Michigan,26047,33,2 +2020-07-09,Emmet,Michigan,26047,35,2 +2020-03-19,Genesee,Michigan,26049,1,0 +2020-03-20,Genesee,Michigan,26049,1,0 +2020-03-21,Genesee,Michigan,26049,7,0 +2020-03-22,Genesee,Michigan,26049,14,0 +2020-03-23,Genesee,Michigan,26049,23,0 +2020-03-24,Genesee,Michigan,26049,34,0 +2020-03-25,Genesee,Michigan,26049,46,0 +2020-03-26,Genesee,Michigan,26049,63,1 +2020-03-27,Genesee,Michigan,26049,91,4 +2020-03-28,Genesee,Michigan,26049,110,5 +2020-03-29,Genesee,Michigan,26049,127,5 +2020-03-30,Genesee,Michigan,26049,150,7 +2020-03-31,Genesee,Michigan,26049,185,7 +2020-04-01,Genesee,Michigan,26049,249,8 +2020-04-02,Genesee,Michigan,26049,349,10 +2020-04-03,Genesee,Michigan,26049,422,11 +2020-04-04,Genesee,Michigan,26049,464,15 +2020-04-05,Genesee,Michigan,26049,504,18 +2020-04-06,Genesee,Michigan,26049,568,26 +2020-04-07,Genesee,Michigan,26049,638,33 +2020-04-08,Genesee,Michigan,26049,713,39 +2020-04-09,Genesee,Michigan,26049,755,48 +2020-04-10,Genesee,Michigan,26049,828,57 +2020-04-11,Genesee,Michigan,26049,919,62 +2020-04-12,Genesee,Michigan,26049,955,68 +2020-04-13,Genesee,Michigan,26049,988,77 +2020-04-14,Genesee,Michigan,26049,1030,86 +2020-04-15,Genesee,Michigan,26049,1084,89 +2020-04-16,Genesee,Michigan,26049,1147,99 +2020-04-17,Genesee,Michigan,26049,1197,106 +2020-04-18,Genesee,Michigan,26049,1228,112 +2020-04-19,Genesee,Michigan,26049,1240,115 +2020-04-20,Genesee,Michigan,26049,1256,123 +2020-04-21,Genesee,Michigan,26049,1298,131 +2020-04-22,Genesee,Michigan,26049,1362,138 +2020-04-23,Genesee,Michigan,26049,1387,144 +2020-04-24,Genesee,Michigan,26049,1434,151 +2020-04-25,Genesee,Michigan,26049,1452,157 +2020-04-26,Genesee,Michigan,26049,1467,161 +2020-04-27,Genesee,Michigan,26049,1483,165 +2020-04-28,Genesee,Michigan,26049,1533,174 +2020-04-29,Genesee,Michigan,26049,1564,180 +2020-04-30,Genesee,Michigan,26049,1581,188 +2020-05-01,Genesee,Michigan,26049,1600,192 +2020-05-02,Genesee,Michigan,26049,1620,196 +2020-05-03,Genesee,Michigan,26049,1634,196 +2020-05-04,Genesee,Michigan,26049,1647,199 +2020-05-05,Genesee,Michigan,26049,1668,200 +2020-05-06,Genesee,Michigan,26049,1710,208 +2020-05-07,Genesee,Michigan,26049,1731,213 +2020-05-08,Genesee,Michigan,26049,1739,214 +2020-05-09,Genesee,Michigan,26049,1750,223 +2020-05-10,Genesee,Michigan,26049,1758,224 +2020-05-11,Genesee,Michigan,26049,1765,224 +2020-05-12,Genesee,Michigan,26049,1782,225 +2020-05-13,Genesee,Michigan,26049,1784,227 +2020-05-14,Genesee,Michigan,26049,1813,228 +2020-05-15,Genesee,Michigan,26049,1835,229 +2020-05-16,Genesee,Michigan,26049,1845,230 +2020-05-17,Genesee,Michigan,26049,1866,230 +2020-05-18,Genesee,Michigan,26049,1869,231 +2020-05-19,Genesee,Michigan,26049,1891,235 +2020-05-20,Genesee,Michigan,26049,1915,238 +2020-05-21,Genesee,Michigan,26049,1926,240 +2020-05-22,Genesee,Michigan,26049,1929,240 +2020-05-23,Genesee,Michigan,26049,1936,240 +2020-05-24,Genesee,Michigan,26049,1948,240 +2020-05-25,Genesee,Michigan,26049,1961,242 +2020-05-26,Genesee,Michigan,26049,1964,245 +2020-05-27,Genesee,Michigan,26049,1971,247 +2020-05-28,Genesee,Michigan,26049,1983,249 +2020-05-29,Genesee,Michigan,26049,1998,250 +2020-05-30,Genesee,Michigan,26049,2004,252 +2020-05-31,Genesee,Michigan,26049,2013,252 +2020-06-01,Genesee,Michigan,26049,2015,252 +2020-06-02,Genesee,Michigan,26049,2021,252 +2020-06-03,Genesee,Michigan,26049,2049,252 +2020-06-04,Genesee,Michigan,26049,2046,253 +2020-06-05,Genesee,Michigan,26049,2511,279 +2020-06-06,Genesee,Michigan,26049,2525,280 +2020-06-07,Genesee,Michigan,26049,2544,280 +2020-06-08,Genesee,Michigan,26049,2546,280 +2020-06-09,Genesee,Michigan,26049,2552,281 +2020-06-10,Genesee,Michigan,26049,2558,282 +2020-06-11,Genesee,Michigan,26049,2564,283 +2020-06-12,Genesee,Michigan,26049,2566,281 +2020-06-13,Genesee,Michigan,26049,2573,283 +2020-06-14,Genesee,Michigan,26049,2574,282 +2020-06-15,Genesee,Michigan,26049,2583,282 +2020-06-16,Genesee,Michigan,26049,2589,283 +2020-06-17,Genesee,Michigan,26049,2596,283 +2020-06-18,Genesee,Michigan,26049,2605,283 +2020-06-19,Genesee,Michigan,26049,2619,283 +2020-06-20,Genesee,Michigan,26049,2625,284 +2020-06-21,Genesee,Michigan,26049,2631,284 +2020-06-22,Genesee,Michigan,26049,2634,284 +2020-06-23,Genesee,Michigan,26049,2640,285 +2020-06-24,Genesee,Michigan,26049,2668,285 +2020-06-25,Genesee,Michigan,26049,2669,285 +2020-06-26,Genesee,Michigan,26049,2682,285 +2020-06-27,Genesee,Michigan,26049,2683,288 +2020-06-28,Genesee,Michigan,26049,2690,288 +2020-06-29,Genesee,Michigan,26049,2715,288 +2020-06-30,Genesee,Michigan,26049,2734,288 +2020-07-01,Genesee,Michigan,26049,2743,288 +2020-07-02,Genesee,Michigan,26049,2766,288 +2020-07-03,Genesee,Michigan,26049,2789,288 +2020-07-04,Genesee,Michigan,26049,2797,288 +2020-07-05,Genesee,Michigan,26049,2816,288 +2020-07-06,Genesee,Michigan,26049,2829,288 +2020-07-07,Genesee,Michigan,26049,2837,288 +2020-07-08,Genesee,Michigan,26049,2860,290 +2020-07-09,Genesee,Michigan,26049,2870,290 +2020-03-22,Gladwin,Michigan,26051,1,0 +2020-03-23,Gladwin,Michigan,26051,1,0 +2020-03-24,Gladwin,Michigan,26051,2,0 +2020-03-25,Gladwin,Michigan,26051,2,0 +2020-03-26,Gladwin,Michigan,26051,2,0 +2020-03-27,Gladwin,Michigan,26051,2,0 +2020-03-28,Gladwin,Michigan,26051,2,0 +2020-03-29,Gladwin,Michigan,26051,3,0 +2020-03-30,Gladwin,Michigan,26051,3,0 +2020-03-31,Gladwin,Michigan,26051,2,0 +2020-04-01,Gladwin,Michigan,26051,2,0 +2020-04-02,Gladwin,Michigan,26051,2,0 +2020-04-03,Gladwin,Michigan,26051,2,0 +2020-04-04,Gladwin,Michigan,26051,3,0 +2020-04-05,Gladwin,Michigan,26051,4,0 +2020-04-06,Gladwin,Michigan,26051,4,0 +2020-04-07,Gladwin,Michigan,26051,4,0 +2020-04-08,Gladwin,Michigan,26051,4,0 +2020-04-09,Gladwin,Michigan,26051,4,0 +2020-04-10,Gladwin,Michigan,26051,4,0 +2020-04-11,Gladwin,Michigan,26051,4,0 +2020-04-12,Gladwin,Michigan,26051,4,0 +2020-04-13,Gladwin,Michigan,26051,4,0 +2020-04-14,Gladwin,Michigan,26051,5,0 +2020-04-15,Gladwin,Michigan,26051,6,0 +2020-04-16,Gladwin,Michigan,26051,8,0 +2020-04-17,Gladwin,Michigan,26051,8,0 +2020-04-18,Gladwin,Michigan,26051,9,0 +2020-04-19,Gladwin,Michigan,26051,9,0 +2020-04-20,Gladwin,Michigan,26051,9,1 +2020-04-21,Gladwin,Michigan,26051,9,1 +2020-04-22,Gladwin,Michigan,26051,10,1 +2020-04-23,Gladwin,Michigan,26051,10,1 +2020-04-24,Gladwin,Michigan,26051,10,1 +2020-04-25,Gladwin,Michigan,26051,10,1 +2020-04-26,Gladwin,Michigan,26051,11,1 +2020-04-27,Gladwin,Michigan,26051,11,1 +2020-04-28,Gladwin,Michigan,26051,12,1 +2020-04-29,Gladwin,Michigan,26051,16,1 +2020-04-30,Gladwin,Michigan,26051,15,1 +2020-05-01,Gladwin,Michigan,26051,16,1 +2020-05-02,Gladwin,Michigan,26051,14,1 +2020-05-03,Gladwin,Michigan,26051,14,1 +2020-05-04,Gladwin,Michigan,26051,14,1 +2020-05-05,Gladwin,Michigan,26051,14,1 +2020-05-06,Gladwin,Michigan,26051,15,1 +2020-05-07,Gladwin,Michigan,26051,15,1 +2020-05-08,Gladwin,Michigan,26051,16,1 +2020-05-09,Gladwin,Michigan,26051,16,1 +2020-05-10,Gladwin,Michigan,26051,17,1 +2020-05-11,Gladwin,Michigan,26051,17,1 +2020-05-12,Gladwin,Michigan,26051,18,1 +2020-05-13,Gladwin,Michigan,26051,18,1 +2020-05-14,Gladwin,Michigan,26051,17,1 +2020-05-15,Gladwin,Michigan,26051,17,1 +2020-05-16,Gladwin,Michigan,26051,17,1 +2020-05-17,Gladwin,Michigan,26051,17,1 +2020-05-18,Gladwin,Michigan,26051,17,1 +2020-05-19,Gladwin,Michigan,26051,17,1 +2020-05-20,Gladwin,Michigan,26051,17,1 +2020-05-21,Gladwin,Michigan,26051,17,1 +2020-05-22,Gladwin,Michigan,26051,17,1 +2020-05-23,Gladwin,Michigan,26051,17,1 +2020-05-24,Gladwin,Michigan,26051,18,1 +2020-05-25,Gladwin,Michigan,26051,18,1 +2020-05-26,Gladwin,Michigan,26051,18,1 +2020-05-27,Gladwin,Michigan,26051,18,1 +2020-05-28,Gladwin,Michigan,26051,18,1 +2020-05-29,Gladwin,Michigan,26051,18,1 +2020-05-30,Gladwin,Michigan,26051,18,1 +2020-05-31,Gladwin,Michigan,26051,18,1 +2020-06-01,Gladwin,Michigan,26051,18,1 +2020-06-02,Gladwin,Michigan,26051,18,1 +2020-06-03,Gladwin,Michigan,26051,18,1 +2020-06-04,Gladwin,Michigan,26051,18,1 +2020-06-05,Gladwin,Michigan,26051,18,1 +2020-06-06,Gladwin,Michigan,26051,18,1 +2020-06-07,Gladwin,Michigan,26051,19,1 +2020-06-08,Gladwin,Michigan,26051,19,1 +2020-06-09,Gladwin,Michigan,26051,19,1 +2020-06-10,Gladwin,Michigan,26051,20,1 +2020-06-11,Gladwin,Michigan,26051,20,1 +2020-06-12,Gladwin,Michigan,26051,20,1 +2020-06-13,Gladwin,Michigan,26051,20,1 +2020-06-14,Gladwin,Michigan,26051,20,1 +2020-06-15,Gladwin,Michigan,26051,20,1 +2020-06-16,Gladwin,Michigan,26051,20,1 +2020-06-17,Gladwin,Michigan,26051,20,1 +2020-06-18,Gladwin,Michigan,26051,23,1 +2020-06-19,Gladwin,Michigan,26051,23,1 +2020-06-20,Gladwin,Michigan,26051,23,1 +2020-06-21,Gladwin,Michigan,26051,23,1 +2020-06-22,Gladwin,Michigan,26051,26,1 +2020-06-23,Gladwin,Michigan,26051,26,1 +2020-06-24,Gladwin,Michigan,26051,26,1 +2020-06-25,Gladwin,Michigan,26051,26,1 +2020-06-26,Gladwin,Michigan,26051,26,1 +2020-06-27,Gladwin,Michigan,26051,26,1 +2020-06-28,Gladwin,Michigan,26051,26,1 +2020-06-29,Gladwin,Michigan,26051,26,1 +2020-06-30,Gladwin,Michigan,26051,27,1 +2020-07-01,Gladwin,Michigan,26051,27,1 +2020-07-02,Gladwin,Michigan,26051,27,1 +2020-07-03,Gladwin,Michigan,26051,27,1 +2020-07-04,Gladwin,Michigan,26051,27,1 +2020-07-05,Gladwin,Michigan,26051,27,1 +2020-07-06,Gladwin,Michigan,26051,27,1 +2020-07-07,Gladwin,Michigan,26051,27,1 +2020-07-08,Gladwin,Michigan,26051,28,1 +2020-07-09,Gladwin,Michigan,26051,27,1 +2020-03-26,Gogebic,Michigan,26053,1,1 +2020-03-27,Gogebic,Michigan,26053,1,1 +2020-03-28,Gogebic,Michigan,26053,1,1 +2020-03-29,Gogebic,Michigan,26053,1,1 +2020-03-30,Gogebic,Michigan,26053,1,1 +2020-03-31,Gogebic,Michigan,26053,2,1 +2020-04-01,Gogebic,Michigan,26053,2,1 +2020-04-02,Gogebic,Michigan,26053,3,1 +2020-04-03,Gogebic,Michigan,26053,3,1 +2020-04-04,Gogebic,Michigan,26053,3,1 +2020-04-05,Gogebic,Michigan,26053,3,1 +2020-04-06,Gogebic,Michigan,26053,3,1 +2020-04-07,Gogebic,Michigan,26053,3,1 +2020-04-08,Gogebic,Michigan,26053,3,1 +2020-04-09,Gogebic,Michigan,26053,3,1 +2020-04-10,Gogebic,Michigan,26053,4,1 +2020-04-11,Gogebic,Michigan,26053,4,1 +2020-04-12,Gogebic,Michigan,26053,4,1 +2020-04-13,Gogebic,Michigan,26053,4,1 +2020-04-14,Gogebic,Michigan,26053,4,1 +2020-04-15,Gogebic,Michigan,26053,4,1 +2020-04-16,Gogebic,Michigan,26053,4,1 +2020-04-17,Gogebic,Michigan,26053,4,1 +2020-04-18,Gogebic,Michigan,26053,4,1 +2020-04-19,Gogebic,Michigan,26053,4,1 +2020-04-20,Gogebic,Michigan,26053,4,1 +2020-04-21,Gogebic,Michigan,26053,4,1 +2020-04-22,Gogebic,Michigan,26053,4,1 +2020-04-23,Gogebic,Michigan,26053,4,1 +2020-04-24,Gogebic,Michigan,26053,4,1 +2020-04-25,Gogebic,Michigan,26053,4,1 +2020-04-26,Gogebic,Michigan,26053,4,1 +2020-04-27,Gogebic,Michigan,26053,4,1 +2020-04-28,Gogebic,Michigan,26053,4,1 +2020-04-29,Gogebic,Michigan,26053,4,1 +2020-04-30,Gogebic,Michigan,26053,4,1 +2020-05-01,Gogebic,Michigan,26053,4,1 +2020-05-02,Gogebic,Michigan,26053,4,1 +2020-05-03,Gogebic,Michigan,26053,4,1 +2020-05-04,Gogebic,Michigan,26053,5,1 +2020-05-05,Gogebic,Michigan,26053,4,1 +2020-05-06,Gogebic,Michigan,26053,4,1 +2020-05-07,Gogebic,Michigan,26053,4,1 +2020-05-08,Gogebic,Michigan,26053,4,1 +2020-05-09,Gogebic,Michigan,26053,4,1 +2020-05-10,Gogebic,Michigan,26053,4,1 +2020-05-11,Gogebic,Michigan,26053,4,1 +2020-05-12,Gogebic,Michigan,26053,4,1 +2020-05-13,Gogebic,Michigan,26053,4,1 +2020-05-14,Gogebic,Michigan,26053,4,1 +2020-05-15,Gogebic,Michigan,26053,4,1 +2020-05-16,Gogebic,Michigan,26053,4,1 +2020-05-17,Gogebic,Michigan,26053,5,1 +2020-05-18,Gogebic,Michigan,26053,5,1 +2020-05-19,Gogebic,Michigan,26053,5,1 +2020-05-20,Gogebic,Michigan,26053,5,1 +2020-05-21,Gogebic,Michigan,26053,5,1 +2020-05-22,Gogebic,Michigan,26053,5,1 +2020-05-23,Gogebic,Michigan,26053,5,1 +2020-05-24,Gogebic,Michigan,26053,5,1 +2020-05-25,Gogebic,Michigan,26053,5,1 +2020-05-26,Gogebic,Michigan,26053,5,1 +2020-05-27,Gogebic,Michigan,26053,5,1 +2020-05-28,Gogebic,Michigan,26053,5,1 +2020-05-29,Gogebic,Michigan,26053,5,1 +2020-05-30,Gogebic,Michigan,26053,5,1 +2020-05-31,Gogebic,Michigan,26053,5,1 +2020-06-01,Gogebic,Michigan,26053,5,1 +2020-06-02,Gogebic,Michigan,26053,5,1 +2020-06-03,Gogebic,Michigan,26053,5,1 +2020-06-04,Gogebic,Michigan,26053,5,1 +2020-06-05,Gogebic,Michigan,26053,5,1 +2020-06-06,Gogebic,Michigan,26053,5,1 +2020-06-07,Gogebic,Michigan,26053,5,1 +2020-06-08,Gogebic,Michigan,26053,5,1 +2020-06-09,Gogebic,Michigan,26053,6,1 +2020-06-10,Gogebic,Michigan,26053,5,1 +2020-06-11,Gogebic,Michigan,26053,5,1 +2020-06-12,Gogebic,Michigan,26053,5,1 +2020-06-13,Gogebic,Michigan,26053,5,1 +2020-06-14,Gogebic,Michigan,26053,5,1 +2020-06-15,Gogebic,Michigan,26053,5,1 +2020-06-16,Gogebic,Michigan,26053,5,1 +2020-06-17,Gogebic,Michigan,26053,5,1 +2020-06-18,Gogebic,Michigan,26053,5,1 +2020-06-19,Gogebic,Michigan,26053,6,1 +2020-06-20,Gogebic,Michigan,26053,6,1 +2020-06-21,Gogebic,Michigan,26053,6,1 +2020-06-22,Gogebic,Michigan,26053,6,1 +2020-06-23,Gogebic,Michigan,26053,6,1 +2020-06-24,Gogebic,Michigan,26053,6,1 +2020-06-25,Gogebic,Michigan,26053,6,1 +2020-06-26,Gogebic,Michigan,26053,6,1 +2020-06-27,Gogebic,Michigan,26053,7,1 +2020-06-28,Gogebic,Michigan,26053,7,1 +2020-06-29,Gogebic,Michigan,26053,7,1 +2020-06-30,Gogebic,Michigan,26053,7,1 +2020-07-01,Gogebic,Michigan,26053,7,1 +2020-07-02,Gogebic,Michigan,26053,7,1 +2020-07-03,Gogebic,Michigan,26053,7,1 +2020-07-04,Gogebic,Michigan,26053,7,1 +2020-07-05,Gogebic,Michigan,26053,7,1 +2020-07-06,Gogebic,Michigan,26053,10,1 +2020-07-07,Gogebic,Michigan,26053,11,1 +2020-07-08,Gogebic,Michigan,26053,11,1 +2020-07-09,Gogebic,Michigan,26053,11,1 +2020-03-22,Grand Traverse,Michigan,26055,1,0 +2020-03-23,Grand Traverse,Michigan,26055,1,0 +2020-03-24,Grand Traverse,Michigan,26055,3,0 +2020-03-25,Grand Traverse,Michigan,26055,3,0 +2020-03-26,Grand Traverse,Michigan,26055,3,0 +2020-03-27,Grand Traverse,Michigan,26055,3,0 +2020-03-28,Grand Traverse,Michigan,26055,5,0 +2020-03-29,Grand Traverse,Michigan,26055,6,0 +2020-03-30,Grand Traverse,Michigan,26055,7,0 +2020-03-31,Grand Traverse,Michigan,26055,7,0 +2020-04-01,Grand Traverse,Michigan,26055,8,0 +2020-04-02,Grand Traverse,Michigan,26055,9,2 +2020-04-03,Grand Traverse,Michigan,26055,11,2 +2020-04-04,Grand Traverse,Michigan,26055,12,3 +2020-04-05,Grand Traverse,Michigan,26055,12,3 +2020-04-06,Grand Traverse,Michigan,26055,14,3 +2020-04-07,Grand Traverse,Michigan,26055,15,3 +2020-04-08,Grand Traverse,Michigan,26055,15,3 +2020-04-09,Grand Traverse,Michigan,26055,15,3 +2020-04-10,Grand Traverse,Michigan,26055,16,3 +2020-04-11,Grand Traverse,Michigan,26055,17,3 +2020-04-12,Grand Traverse,Michigan,26055,17,3 +2020-04-13,Grand Traverse,Michigan,26055,17,3 +2020-04-14,Grand Traverse,Michigan,26055,17,3 +2020-04-15,Grand Traverse,Michigan,26055,17,3 +2020-04-16,Grand Traverse,Michigan,26055,17,3 +2020-04-17,Grand Traverse,Michigan,26055,17,4 +2020-04-18,Grand Traverse,Michigan,26055,18,4 +2020-04-19,Grand Traverse,Michigan,26055,18,4 +2020-04-20,Grand Traverse,Michigan,26055,19,4 +2020-04-21,Grand Traverse,Michigan,26055,19,5 +2020-04-22,Grand Traverse,Michigan,26055,19,5 +2020-04-23,Grand Traverse,Michigan,26055,19,5 +2020-04-24,Grand Traverse,Michigan,26055,19,5 +2020-04-25,Grand Traverse,Michigan,26055,19,5 +2020-04-26,Grand Traverse,Michigan,26055,19,5 +2020-04-27,Grand Traverse,Michigan,26055,19,5 +2020-04-28,Grand Traverse,Michigan,26055,19,5 +2020-04-29,Grand Traverse,Michigan,26055,19,5 +2020-04-30,Grand Traverse,Michigan,26055,19,5 +2020-05-01,Grand Traverse,Michigan,26055,19,5 +2020-05-02,Grand Traverse,Michigan,26055,19,5 +2020-05-03,Grand Traverse,Michigan,26055,19,5 +2020-05-04,Grand Traverse,Michigan,26055,20,5 +2020-05-05,Grand Traverse,Michigan,26055,20,5 +2020-05-06,Grand Traverse,Michigan,26055,20,5 +2020-05-07,Grand Traverse,Michigan,26055,20,5 +2020-05-08,Grand Traverse,Michigan,26055,20,5 +2020-05-09,Grand Traverse,Michigan,26055,20,5 +2020-05-10,Grand Traverse,Michigan,26055,20,5 +2020-05-11,Grand Traverse,Michigan,26055,20,5 +2020-05-12,Grand Traverse,Michigan,26055,21,5 +2020-05-13,Grand Traverse,Michigan,26055,21,5 +2020-05-14,Grand Traverse,Michigan,26055,23,5 +2020-05-15,Grand Traverse,Michigan,26055,23,5 +2020-05-16,Grand Traverse,Michigan,26055,23,5 +2020-05-17,Grand Traverse,Michigan,26055,23,5 +2020-05-18,Grand Traverse,Michigan,26055,23,5 +2020-05-19,Grand Traverse,Michigan,26055,23,5 +2020-05-20,Grand Traverse,Michigan,26055,23,5 +2020-05-21,Grand Traverse,Michigan,26055,23,5 +2020-05-22,Grand Traverse,Michigan,26055,23,5 +2020-05-23,Grand Traverse,Michigan,26055,23,5 +2020-05-24,Grand Traverse,Michigan,26055,23,5 +2020-05-25,Grand Traverse,Michigan,26055,23,5 +2020-05-26,Grand Traverse,Michigan,26055,23,5 +2020-05-27,Grand Traverse,Michigan,26055,23,5 +2020-05-28,Grand Traverse,Michigan,26055,23,5 +2020-05-29,Grand Traverse,Michigan,26055,25,5 +2020-05-30,Grand Traverse,Michigan,26055,27,5 +2020-05-31,Grand Traverse,Michigan,26055,27,5 +2020-06-01,Grand Traverse,Michigan,26055,33,5 +2020-06-02,Grand Traverse,Michigan,26055,33,5 +2020-06-03,Grand Traverse,Michigan,26055,33,5 +2020-06-04,Grand Traverse,Michigan,26055,34,5 +2020-06-05,Grand Traverse,Michigan,26055,34,5 +2020-06-06,Grand Traverse,Michigan,26055,36,5 +2020-06-07,Grand Traverse,Michigan,26055,37,5 +2020-06-08,Grand Traverse,Michigan,26055,39,5 +2020-06-09,Grand Traverse,Michigan,26055,40,5 +2020-06-10,Grand Traverse,Michigan,26055,40,5 +2020-06-11,Grand Traverse,Michigan,26055,41,5 +2020-06-12,Grand Traverse,Michigan,26055,41,5 +2020-06-13,Grand Traverse,Michigan,26055,41,5 +2020-06-14,Grand Traverse,Michigan,26055,41,5 +2020-06-15,Grand Traverse,Michigan,26055,41,5 +2020-06-16,Grand Traverse,Michigan,26055,41,5 +2020-06-17,Grand Traverse,Michigan,26055,41,5 +2020-06-18,Grand Traverse,Michigan,26055,41,5 +2020-06-19,Grand Traverse,Michigan,26055,43,5 +2020-06-20,Grand Traverse,Michigan,26055,43,5 +2020-06-21,Grand Traverse,Michigan,26055,43,5 +2020-06-22,Grand Traverse,Michigan,26055,44,6 +2020-06-23,Grand Traverse,Michigan,26055,44,6 +2020-06-24,Grand Traverse,Michigan,26055,44,5 +2020-06-25,Grand Traverse,Michigan,26055,44,5 +2020-06-26,Grand Traverse,Michigan,26055,46,5 +2020-06-27,Grand Traverse,Michigan,26055,46,5 +2020-06-28,Grand Traverse,Michigan,26055,46,5 +2020-06-29,Grand Traverse,Michigan,26055,51,5 +2020-06-30,Grand Traverse,Michigan,26055,53,5 +2020-07-01,Grand Traverse,Michigan,26055,53,5 +2020-07-02,Grand Traverse,Michigan,26055,53,5 +2020-07-03,Grand Traverse,Michigan,26055,55,5 +2020-07-04,Grand Traverse,Michigan,26055,56,5 +2020-07-05,Grand Traverse,Michigan,26055,64,5 +2020-07-06,Grand Traverse,Michigan,26055,71,5 +2020-07-07,Grand Traverse,Michigan,26055,71,5 +2020-07-08,Grand Traverse,Michigan,26055,75,5 +2020-07-09,Grand Traverse,Michigan,26055,78,5 +2020-03-27,Gratiot,Michigan,26057,1,0 +2020-03-28,Gratiot,Michigan,26057,2,0 +2020-03-29,Gratiot,Michigan,26057,3,0 +2020-03-30,Gratiot,Michigan,26057,3,0 +2020-03-31,Gratiot,Michigan,26057,3,0 +2020-04-01,Gratiot,Michigan,26057,3,0 +2020-04-02,Gratiot,Michigan,26057,5,0 +2020-04-03,Gratiot,Michigan,26057,5,0 +2020-04-04,Gratiot,Michigan,26057,5,0 +2020-04-05,Gratiot,Michigan,26057,4,0 +2020-04-06,Gratiot,Michigan,26057,5,0 +2020-04-07,Gratiot,Michigan,26057,6,0 +2020-04-08,Gratiot,Michigan,26057,5,0 +2020-04-09,Gratiot,Michigan,26057,6,0 +2020-04-10,Gratiot,Michigan,26057,6,0 +2020-04-11,Gratiot,Michigan,26057,7,0 +2020-04-12,Gratiot,Michigan,26057,7,0 +2020-04-13,Gratiot,Michigan,26057,7,0 +2020-04-14,Gratiot,Michigan,26057,7,0 +2020-04-15,Gratiot,Michigan,26057,7,0 +2020-04-16,Gratiot,Michigan,26057,7,0 +2020-04-17,Gratiot,Michigan,26057,7,0 +2020-04-18,Gratiot,Michigan,26057,7,0 +2020-04-19,Gratiot,Michigan,26057,8,1 +2020-04-20,Gratiot,Michigan,26057,8,1 +2020-04-21,Gratiot,Michigan,26057,8,1 +2020-04-22,Gratiot,Michigan,26057,8,1 +2020-04-23,Gratiot,Michigan,26057,8,1 +2020-04-24,Gratiot,Michigan,26057,8,1 +2020-04-25,Gratiot,Michigan,26057,8,1 +2020-04-26,Gratiot,Michigan,26057,8,1 +2020-04-27,Gratiot,Michigan,26057,10,1 +2020-04-28,Gratiot,Michigan,26057,10,1 +2020-04-29,Gratiot,Michigan,26057,13,1 +2020-04-30,Gratiot,Michigan,26057,13,1 +2020-05-01,Gratiot,Michigan,26057,21,1 +2020-05-02,Gratiot,Michigan,26057,23,1 +2020-05-03,Gratiot,Michigan,26057,26,2 +2020-05-04,Gratiot,Michigan,26057,25,2 +2020-05-05,Gratiot,Michigan,26057,26,2 +2020-05-06,Gratiot,Michigan,26057,26,2 +2020-05-07,Gratiot,Michigan,26057,27,2 +2020-05-08,Gratiot,Michigan,26057,27,2 +2020-05-09,Gratiot,Michigan,26057,29,3 +2020-05-10,Gratiot,Michigan,26057,36,3 +2020-05-11,Gratiot,Michigan,26057,38,4 +2020-05-12,Gratiot,Michigan,26057,38,4 +2020-05-13,Gratiot,Michigan,26057,39,4 +2020-05-14,Gratiot,Michigan,26057,40,4 +2020-05-15,Gratiot,Michigan,26057,40,4 +2020-05-16,Gratiot,Michigan,26057,47,4 +2020-05-17,Gratiot,Michigan,26057,47,4 +2020-05-18,Gratiot,Michigan,26057,54,4 +2020-05-19,Gratiot,Michigan,26057,55,4 +2020-05-20,Gratiot,Michigan,26057,61,4 +2020-05-21,Gratiot,Michigan,26057,62,4 +2020-05-22,Gratiot,Michigan,26057,68,5 +2020-05-23,Gratiot,Michigan,26057,72,5 +2020-05-24,Gratiot,Michigan,26057,75,6 +2020-05-25,Gratiot,Michigan,26057,77,6 +2020-05-26,Gratiot,Michigan,26057,77,6 +2020-05-27,Gratiot,Michigan,26057,80,8 +2020-05-28,Gratiot,Michigan,26057,80,8 +2020-05-29,Gratiot,Michigan,26057,80,8 +2020-05-30,Gratiot,Michigan,26057,80,9 +2020-05-31,Gratiot,Michigan,26057,80,10 +2020-06-01,Gratiot,Michigan,26057,80,11 +2020-06-02,Gratiot,Michigan,26057,82,11 +2020-06-03,Gratiot,Michigan,26057,82,11 +2020-06-04,Gratiot,Michigan,26057,82,11 +2020-06-05,Gratiot,Michigan,26057,92,11 +2020-06-06,Gratiot,Michigan,26057,94,11 +2020-06-07,Gratiot,Michigan,26057,94,11 +2020-06-08,Gratiot,Michigan,26057,94,11 +2020-06-09,Gratiot,Michigan,26057,94,11 +2020-06-10,Gratiot,Michigan,26057,94,11 +2020-06-11,Gratiot,Michigan,26057,95,11 +2020-06-12,Gratiot,Michigan,26057,94,12 +2020-06-13,Gratiot,Michigan,26057,97,12 +2020-06-14,Gratiot,Michigan,26057,97,12 +2020-06-15,Gratiot,Michigan,26057,97,12 +2020-06-16,Gratiot,Michigan,26057,97,12 +2020-06-17,Gratiot,Michigan,26057,97,12 +2020-06-18,Gratiot,Michigan,26057,98,12 +2020-06-19,Gratiot,Michigan,26057,98,13 +2020-06-20,Gratiot,Michigan,26057,99,13 +2020-06-21,Gratiot,Michigan,26057,99,13 +2020-06-22,Gratiot,Michigan,26057,99,13 +2020-06-23,Gratiot,Michigan,26057,99,13 +2020-06-24,Gratiot,Michigan,26057,99,13 +2020-06-25,Gratiot,Michigan,26057,98,13 +2020-06-26,Gratiot,Michigan,26057,98,13 +2020-06-27,Gratiot,Michigan,26057,98,13 +2020-06-28,Gratiot,Michigan,26057,98,13 +2020-06-29,Gratiot,Michigan,26057,98,13 +2020-06-30,Gratiot,Michigan,26057,98,13 +2020-07-01,Gratiot,Michigan,26057,98,13 +2020-07-02,Gratiot,Michigan,26057,98,13 +2020-07-03,Gratiot,Michigan,26057,99,13 +2020-07-04,Gratiot,Michigan,26057,99,13 +2020-07-05,Gratiot,Michigan,26057,100,13 +2020-07-06,Gratiot,Michigan,26057,101,13 +2020-07-07,Gratiot,Michigan,26057,102,13 +2020-07-08,Gratiot,Michigan,26057,106,14 +2020-07-09,Gratiot,Michigan,26057,111,14 +2020-03-24,Hillsdale,Michigan,26059,1,0 +2020-03-25,Hillsdale,Michigan,26059,2,0 +2020-03-26,Hillsdale,Michigan,26059,5,0 +2020-03-27,Hillsdale,Michigan,26059,6,0 +2020-03-28,Hillsdale,Michigan,26059,7,0 +2020-03-29,Hillsdale,Michigan,26059,10,1 +2020-03-30,Hillsdale,Michigan,26059,12,1 +2020-03-31,Hillsdale,Michigan,26059,14,1 +2020-04-01,Hillsdale,Michigan,26059,19,1 +2020-04-02,Hillsdale,Michigan,26059,24,1 +2020-04-03,Hillsdale,Michigan,26059,26,2 +2020-04-04,Hillsdale,Michigan,26059,37,3 +2020-04-05,Hillsdale,Michigan,26059,44,3 +2020-04-06,Hillsdale,Michigan,26059,46,3 +2020-04-07,Hillsdale,Michigan,26059,55,4 +2020-04-08,Hillsdale,Michigan,26059,62,4 +2020-04-09,Hillsdale,Michigan,26059,64,6 +2020-04-10,Hillsdale,Michigan,26059,70,6 +2020-04-11,Hillsdale,Michigan,26059,75,6 +2020-04-12,Hillsdale,Michigan,26059,75,6 +2020-04-13,Hillsdale,Michigan,26059,77,7 +2020-04-14,Hillsdale,Michigan,26059,79,9 +2020-04-15,Hillsdale,Michigan,26059,81,9 +2020-04-16,Hillsdale,Michigan,26059,84,9 +2020-04-17,Hillsdale,Michigan,26059,85,10 +2020-04-18,Hillsdale,Michigan,26059,89,11 +2020-04-19,Hillsdale,Michigan,26059,90,11 +2020-04-20,Hillsdale,Michigan,26059,90,11 +2020-04-21,Hillsdale,Michigan,26059,94,11 +2020-04-22,Hillsdale,Michigan,26059,97,12 +2020-04-23,Hillsdale,Michigan,26059,98,12 +2020-04-24,Hillsdale,Michigan,26059,109,12 +2020-04-25,Hillsdale,Michigan,26059,109,14 +2020-04-26,Hillsdale,Michigan,26059,113,14 +2020-04-27,Hillsdale,Michigan,26059,114,16 +2020-04-28,Hillsdale,Michigan,26059,118,16 +2020-04-29,Hillsdale,Michigan,26059,121,17 +2020-04-30,Hillsdale,Michigan,26059,125,17 +2020-05-01,Hillsdale,Michigan,26059,127,17 +2020-05-02,Hillsdale,Michigan,26059,132,18 +2020-05-03,Hillsdale,Michigan,26059,131,18 +2020-05-04,Hillsdale,Michigan,26059,131,21 +2020-05-05,Hillsdale,Michigan,26059,137,21 +2020-05-06,Hillsdale,Michigan,26059,138,21 +2020-05-07,Hillsdale,Michigan,26059,146,21 +2020-05-08,Hillsdale,Michigan,26059,151,21 +2020-05-09,Hillsdale,Michigan,26059,151,21 +2020-05-10,Hillsdale,Michigan,26059,152,21 +2020-05-11,Hillsdale,Michigan,26059,153,22 +2020-05-12,Hillsdale,Michigan,26059,152,22 +2020-05-13,Hillsdale,Michigan,26059,152,22 +2020-05-14,Hillsdale,Michigan,26059,155,22 +2020-05-15,Hillsdale,Michigan,26059,162,22 +2020-05-16,Hillsdale,Michigan,26059,166,23 +2020-05-17,Hillsdale,Michigan,26059,166,23 +2020-05-18,Hillsdale,Michigan,26059,167,23 +2020-05-19,Hillsdale,Michigan,26059,165,24 +2020-05-20,Hillsdale,Michigan,26059,167,24 +2020-05-21,Hillsdale,Michigan,26059,168,24 +2020-05-22,Hillsdale,Michigan,26059,168,24 +2020-05-23,Hillsdale,Michigan,26059,168,24 +2020-05-24,Hillsdale,Michigan,26059,168,24 +2020-05-25,Hillsdale,Michigan,26059,170,24 +2020-05-26,Hillsdale,Michigan,26059,170,24 +2020-05-27,Hillsdale,Michigan,26059,169,24 +2020-05-28,Hillsdale,Michigan,26059,169,24 +2020-05-29,Hillsdale,Michigan,26059,169,24 +2020-05-30,Hillsdale,Michigan,26059,169,24 +2020-05-31,Hillsdale,Michigan,26059,169,24 +2020-06-01,Hillsdale,Michigan,26059,169,24 +2020-06-02,Hillsdale,Michigan,26059,169,24 +2020-06-03,Hillsdale,Michigan,26059,170,24 +2020-06-04,Hillsdale,Michigan,26059,170,24 +2020-06-05,Hillsdale,Michigan,26059,178,24 +2020-06-06,Hillsdale,Michigan,26059,180,24 +2020-06-07,Hillsdale,Michigan,26059,180,24 +2020-06-08,Hillsdale,Michigan,26059,180,25 +2020-06-09,Hillsdale,Michigan,26059,179,25 +2020-06-10,Hillsdale,Michigan,26059,179,25 +2020-06-11,Hillsdale,Michigan,26059,179,25 +2020-06-12,Hillsdale,Michigan,26059,179,25 +2020-06-13,Hillsdale,Michigan,26059,179,25 +2020-06-14,Hillsdale,Michigan,26059,179,25 +2020-06-15,Hillsdale,Michigan,26059,182,25 +2020-06-16,Hillsdale,Michigan,26059,182,25 +2020-06-17,Hillsdale,Michigan,26059,182,25 +2020-06-18,Hillsdale,Michigan,26059,182,25 +2020-06-19,Hillsdale,Michigan,26059,183,25 +2020-06-20,Hillsdale,Michigan,26059,183,25 +2020-06-21,Hillsdale,Michigan,26059,183,25 +2020-06-22,Hillsdale,Michigan,26059,183,25 +2020-06-23,Hillsdale,Michigan,26059,184,25 +2020-06-24,Hillsdale,Michigan,26059,187,25 +2020-06-25,Hillsdale,Michigan,26059,192,25 +2020-06-26,Hillsdale,Michigan,26059,191,25 +2020-06-27,Hillsdale,Michigan,26059,192,25 +2020-06-28,Hillsdale,Michigan,26059,193,25 +2020-06-29,Hillsdale,Michigan,26059,194,25 +2020-06-30,Hillsdale,Michigan,26059,194,25 +2020-07-01,Hillsdale,Michigan,26059,194,25 +2020-07-02,Hillsdale,Michigan,26059,197,25 +2020-07-03,Hillsdale,Michigan,26059,197,25 +2020-07-04,Hillsdale,Michigan,26059,199,25 +2020-07-05,Hillsdale,Michigan,26059,199,25 +2020-07-06,Hillsdale,Michigan,26059,201,25 +2020-07-07,Hillsdale,Michigan,26059,202,25 +2020-07-08,Hillsdale,Michigan,26059,203,25 +2020-07-09,Hillsdale,Michigan,26059,206,25 +2020-03-30,Houghton,Michigan,26061,1,0 +2020-03-31,Houghton,Michigan,26061,1,0 +2020-04-01,Houghton,Michigan,26061,1,0 +2020-04-02,Houghton,Michigan,26061,1,0 +2020-04-03,Houghton,Michigan,26061,1,0 +2020-04-04,Houghton,Michigan,26061,2,0 +2020-04-05,Houghton,Michigan,26061,1,0 +2020-04-06,Houghton,Michigan,26061,1,0 +2020-04-07,Houghton,Michigan,26061,1,0 +2020-04-08,Houghton,Michigan,26061,1,0 +2020-04-09,Houghton,Michigan,26061,1,0 +2020-04-10,Houghton,Michigan,26061,1,0 +2020-04-11,Houghton,Michigan,26061,1,0 +2020-04-12,Houghton,Michigan,26061,1,0 +2020-04-13,Houghton,Michigan,26061,1,0 +2020-04-14,Houghton,Michigan,26061,2,0 +2020-04-15,Houghton,Michigan,26061,2,0 +2020-04-16,Houghton,Michigan,26061,2,0 +2020-04-17,Houghton,Michigan,26061,2,0 +2020-04-18,Houghton,Michigan,26061,2,0 +2020-04-19,Houghton,Michigan,26061,2,0 +2020-04-20,Houghton,Michigan,26061,2,0 +2020-04-21,Houghton,Michigan,26061,2,0 +2020-04-22,Houghton,Michigan,26061,2,0 +2020-04-23,Houghton,Michigan,26061,2,0 +2020-04-24,Houghton,Michigan,26061,2,0 +2020-04-25,Houghton,Michigan,26061,2,0 +2020-04-26,Houghton,Michigan,26061,2,0 +2020-04-27,Houghton,Michigan,26061,2,0 +2020-04-28,Houghton,Michigan,26061,2,0 +2020-04-29,Houghton,Michigan,26061,2,0 +2020-04-30,Houghton,Michigan,26061,2,0 +2020-05-01,Houghton,Michigan,26061,2,0 +2020-05-02,Houghton,Michigan,26061,2,0 +2020-05-03,Houghton,Michigan,26061,2,0 +2020-05-04,Houghton,Michigan,26061,2,0 +2020-05-05,Houghton,Michigan,26061,2,0 +2020-05-06,Houghton,Michigan,26061,2,0 +2020-05-07,Houghton,Michigan,26061,2,0 +2020-05-08,Houghton,Michigan,26061,2,0 +2020-05-09,Houghton,Michigan,26061,2,0 +2020-05-10,Houghton,Michigan,26061,2,0 +2020-05-11,Houghton,Michigan,26061,2,0 +2020-05-12,Houghton,Michigan,26061,2,0 +2020-05-13,Houghton,Michigan,26061,2,0 +2020-05-14,Houghton,Michigan,26061,2,0 +2020-05-15,Houghton,Michigan,26061,2,0 +2020-05-16,Houghton,Michigan,26061,2,0 +2020-05-17,Houghton,Michigan,26061,2,0 +2020-05-18,Houghton,Michigan,26061,2,0 +2020-05-19,Houghton,Michigan,26061,2,0 +2020-05-20,Houghton,Michigan,26061,2,0 +2020-05-21,Houghton,Michigan,26061,2,0 +2020-05-22,Houghton,Michigan,26061,2,0 +2020-05-23,Houghton,Michigan,26061,2,0 +2020-05-24,Houghton,Michigan,26061,2,0 +2020-05-25,Houghton,Michigan,26061,2,0 +2020-05-26,Houghton,Michigan,26061,3,0 +2020-05-27,Houghton,Michigan,26061,4,0 +2020-05-28,Houghton,Michigan,26061,5,0 +2020-05-29,Houghton,Michigan,26061,5,0 +2020-05-30,Houghton,Michigan,26061,6,0 +2020-05-31,Houghton,Michigan,26061,6,0 +2020-06-01,Houghton,Michigan,26061,6,0 +2020-06-02,Houghton,Michigan,26061,6,0 +2020-06-03,Houghton,Michigan,26061,6,0 +2020-06-04,Houghton,Michigan,26061,7,0 +2020-06-05,Houghton,Michigan,26061,8,0 +2020-06-06,Houghton,Michigan,26061,8,0 +2020-06-07,Houghton,Michigan,26061,8,0 +2020-06-08,Houghton,Michigan,26061,8,0 +2020-06-09,Houghton,Michigan,26061,8,0 +2020-06-10,Houghton,Michigan,26061,8,0 +2020-06-11,Houghton,Michigan,26061,8,0 +2020-06-12,Houghton,Michigan,26061,8,0 +2020-06-13,Houghton,Michigan,26061,8,0 +2020-06-14,Houghton,Michigan,26061,8,0 +2020-06-15,Houghton,Michigan,26061,8,0 +2020-06-16,Houghton,Michigan,26061,8,0 +2020-06-17,Houghton,Michigan,26061,8,0 +2020-06-18,Houghton,Michigan,26061,8,0 +2020-06-19,Houghton,Michigan,26061,8,0 +2020-06-20,Houghton,Michigan,26061,9,0 +2020-06-21,Houghton,Michigan,26061,9,0 +2020-06-22,Houghton,Michigan,26061,11,0 +2020-06-23,Houghton,Michigan,26061,11,0 +2020-06-24,Houghton,Michigan,26061,11,0 +2020-06-25,Houghton,Michigan,26061,11,0 +2020-06-26,Houghton,Michigan,26061,11,0 +2020-06-27,Houghton,Michigan,26061,11,0 +2020-06-28,Houghton,Michigan,26061,11,0 +2020-06-29,Houghton,Michigan,26061,11,0 +2020-06-30,Houghton,Michigan,26061,11,0 +2020-07-01,Houghton,Michigan,26061,12,0 +2020-07-02,Houghton,Michigan,26061,14,0 +2020-07-03,Houghton,Michigan,26061,16,0 +2020-07-04,Houghton,Michigan,26061,18,0 +2020-07-05,Houghton,Michigan,26061,19,0 +2020-07-06,Houghton,Michigan,26061,20,0 +2020-07-07,Houghton,Michigan,26061,20,0 +2020-07-08,Houghton,Michigan,26061,21,0 +2020-07-09,Houghton,Michigan,26061,27,0 +2020-03-27,Huron,Michigan,26063,1,0 +2020-03-28,Huron,Michigan,26063,1,0 +2020-03-29,Huron,Michigan,26063,3,0 +2020-03-30,Huron,Michigan,26063,3,0 +2020-03-31,Huron,Michigan,26063,3,0 +2020-04-01,Huron,Michigan,26063,3,0 +2020-04-02,Huron,Michigan,26063,4,0 +2020-04-03,Huron,Michigan,26063,4,0 +2020-04-04,Huron,Michigan,26063,4,0 +2020-04-05,Huron,Michigan,26063,4,0 +2020-04-06,Huron,Michigan,26063,4,0 +2020-04-07,Huron,Michigan,26063,4,0 +2020-04-08,Huron,Michigan,26063,4,0 +2020-04-09,Huron,Michigan,26063,5,0 +2020-04-10,Huron,Michigan,26063,5,0 +2020-04-11,Huron,Michigan,26063,5,0 +2020-04-12,Huron,Michigan,26063,6,0 +2020-04-13,Huron,Michigan,26063,6,0 +2020-04-14,Huron,Michigan,26063,6,0 +2020-04-15,Huron,Michigan,26063,7,0 +2020-04-16,Huron,Michigan,26063,8,0 +2020-04-17,Huron,Michigan,26063,8,0 +2020-04-18,Huron,Michigan,26063,10,0 +2020-04-19,Huron,Michigan,26063,10,0 +2020-04-20,Huron,Michigan,26063,10,1 +2020-04-21,Huron,Michigan,26063,9,0 +2020-04-22,Huron,Michigan,26063,9,0 +2020-04-23,Huron,Michigan,26063,10,0 +2020-04-24,Huron,Michigan,26063,10,0 +2020-04-25,Huron,Michigan,26063,11,0 +2020-04-26,Huron,Michigan,26063,13,0 +2020-04-27,Huron,Michigan,26063,13,0 +2020-04-28,Huron,Michigan,26063,13,0 +2020-04-29,Huron,Michigan,26063,16,0 +2020-04-30,Huron,Michigan,26063,17,0 +2020-05-01,Huron,Michigan,26063,19,0 +2020-05-02,Huron,Michigan,26063,21,1 +2020-05-03,Huron,Michigan,26063,22,1 +2020-05-04,Huron,Michigan,26063,24,1 +2020-05-05,Huron,Michigan,26063,25,1 +2020-05-06,Huron,Michigan,26063,28,1 +2020-05-07,Huron,Michigan,26063,31,1 +2020-05-08,Huron,Michigan,26063,34,1 +2020-05-09,Huron,Michigan,26063,34,1 +2020-05-10,Huron,Michigan,26063,35,1 +2020-05-11,Huron,Michigan,26063,36,1 +2020-05-12,Huron,Michigan,26063,36,1 +2020-05-13,Huron,Michigan,26063,36,1 +2020-05-14,Huron,Michigan,26063,39,1 +2020-05-15,Huron,Michigan,26063,38,1 +2020-05-16,Huron,Michigan,26063,41,1 +2020-05-17,Huron,Michigan,26063,44,1 +2020-05-18,Huron,Michigan,26063,44,1 +2020-05-19,Huron,Michigan,26063,44,1 +2020-05-20,Huron,Michigan,26063,41,1 +2020-05-21,Huron,Michigan,26063,42,1 +2020-05-22,Huron,Michigan,26063,42,1 +2020-05-23,Huron,Michigan,26063,42,1 +2020-05-24,Huron,Michigan,26063,42,1 +2020-05-25,Huron,Michigan,26063,42,1 +2020-05-26,Huron,Michigan,26063,42,1 +2020-05-27,Huron,Michigan,26063,42,1 +2020-05-28,Huron,Michigan,26063,44,1 +2020-05-29,Huron,Michigan,26063,44,1 +2020-05-30,Huron,Michigan,26063,44,1 +2020-05-31,Huron,Michigan,26063,48,1 +2020-06-01,Huron,Michigan,26063,48,1 +2020-06-02,Huron,Michigan,26063,48,1 +2020-06-03,Huron,Michigan,26063,48,1 +2020-06-04,Huron,Michigan,26063,48,1 +2020-06-05,Huron,Michigan,26063,57,1 +2020-06-06,Huron,Michigan,26063,57,1 +2020-06-07,Huron,Michigan,26063,57,1 +2020-06-08,Huron,Michigan,26063,57,1 +2020-06-09,Huron,Michigan,26063,59,1 +2020-06-10,Huron,Michigan,26063,60,1 +2020-06-11,Huron,Michigan,26063,60,1 +2020-06-12,Huron,Michigan,26063,60,1 +2020-06-13,Huron,Michigan,26063,60,1 +2020-06-14,Huron,Michigan,26063,60,1 +2020-06-15,Huron,Michigan,26063,61,1 +2020-06-16,Huron,Michigan,26063,60,1 +2020-06-17,Huron,Michigan,26063,60,1 +2020-06-18,Huron,Michigan,26063,60,1 +2020-06-19,Huron,Michigan,26063,60,1 +2020-06-20,Huron,Michigan,26063,60,1 +2020-06-21,Huron,Michigan,26063,63,1 +2020-06-22,Huron,Michigan,26063,63,3 +2020-06-23,Huron,Michigan,26063,63,3 +2020-06-24,Huron,Michigan,26063,64,3 +2020-06-25,Huron,Michigan,26063,64,3 +2020-06-26,Huron,Michigan,26063,64,3 +2020-06-27,Huron,Michigan,26063,65,3 +2020-06-28,Huron,Michigan,26063,65,3 +2020-06-29,Huron,Michigan,26063,65,3 +2020-06-30,Huron,Michigan,26063,65,3 +2020-07-01,Huron,Michigan,26063,66,3 +2020-07-02,Huron,Michigan,26063,66,3 +2020-07-03,Huron,Michigan,26063,66,3 +2020-07-04,Huron,Michigan,26063,66,3 +2020-07-05,Huron,Michigan,26063,66,3 +2020-07-06,Huron,Michigan,26063,66,3 +2020-07-07,Huron,Michigan,26063,68,3 +2020-07-08,Huron,Michigan,26063,69,3 +2020-07-09,Huron,Michigan,26063,73,3 +2020-03-12,Ingham,Michigan,26065,1,0 +2020-03-13,Ingham,Michigan,26065,1,0 +2020-03-14,Ingham,Michigan,26065,1,0 +2020-03-15,Ingham,Michigan,26065,1,0 +2020-03-16,Ingham,Michigan,26065,1,0 +2020-03-17,Ingham,Michigan,26065,2,0 +2020-03-18,Ingham,Michigan,26065,2,0 +2020-03-19,Ingham,Michigan,26065,7,0 +2020-03-20,Ingham,Michigan,26065,7,0 +2020-03-21,Ingham,Michigan,26065,11,0 +2020-03-22,Ingham,Michigan,26065,11,0 +2020-03-23,Ingham,Michigan,26065,12,0 +2020-03-24,Ingham,Michigan,26065,15,0 +2020-03-25,Ingham,Michigan,26065,18,0 +2020-03-26,Ingham,Michigan,26065,22,0 +2020-03-27,Ingham,Michigan,26065,26,1 +2020-03-28,Ingham,Michigan,26065,32,1 +2020-03-29,Ingham,Michigan,26065,43,0 +2020-03-30,Ingham,Michigan,26065,73,0 +2020-03-31,Ingham,Michigan,26065,91,0 +2020-04-01,Ingham,Michigan,26065,121,1 +2020-04-02,Ingham,Michigan,26065,128,1 +2020-04-03,Ingham,Michigan,26065,152,1 +2020-04-04,Ingham,Michigan,26065,168,1 +2020-04-05,Ingham,Michigan,26065,172,2 +2020-04-06,Ingham,Michigan,26065,178,1 +2020-04-07,Ingham,Michigan,26065,189,1 +2020-04-08,Ingham,Michigan,26065,205,2 +2020-04-09,Ingham,Michigan,26065,222,3 +2020-04-10,Ingham,Michigan,26065,239,3 +2020-04-11,Ingham,Michigan,26065,241,3 +2020-04-12,Ingham,Michigan,26065,250,3 +2020-04-13,Ingham,Michigan,26065,254,4 +2020-04-14,Ingham,Michigan,26065,263,4 +2020-04-15,Ingham,Michigan,26065,270,5 +2020-04-16,Ingham,Michigan,26065,278,6 +2020-04-17,Ingham,Michigan,26065,298,6 +2020-04-18,Ingham,Michigan,26065,304,6 +2020-04-19,Ingham,Michigan,26065,308,6 +2020-04-20,Ingham,Michigan,26065,314,6 +2020-04-21,Ingham,Michigan,26065,335,6 +2020-04-22,Ingham,Michigan,26065,350,7 +2020-04-23,Ingham,Michigan,26065,370,9 +2020-04-24,Ingham,Michigan,26065,391,9 +2020-04-25,Ingham,Michigan,26065,395,9 +2020-04-26,Ingham,Michigan,26065,406,9 +2020-04-27,Ingham,Michigan,26065,413,10 +2020-04-28,Ingham,Michigan,26065,426,10 +2020-04-29,Ingham,Michigan,26065,446,10 +2020-04-30,Ingham,Michigan,26065,470,11 +2020-05-01,Ingham,Michigan,26065,483,12 +2020-05-02,Ingham,Michigan,26065,497,13 +2020-05-03,Ingham,Michigan,26065,506,13 +2020-05-04,Ingham,Michigan,26065,506,13 +2020-05-05,Ingham,Michigan,26065,518,14 +2020-05-06,Ingham,Michigan,26065,539,14 +2020-05-07,Ingham,Michigan,26065,557,14 +2020-05-08,Ingham,Michigan,26065,563,16 +2020-05-09,Ingham,Michigan,26065,575,16 +2020-05-10,Ingham,Michigan,26065,579,16 +2020-05-11,Ingham,Michigan,26065,586,17 +2020-05-12,Ingham,Michigan,26065,594,17 +2020-05-13,Ingham,Michigan,26065,605,18 +2020-05-14,Ingham,Michigan,26065,619,19 +2020-05-15,Ingham,Michigan,26065,629,20 +2020-05-16,Ingham,Michigan,26065,643,21 +2020-05-17,Ingham,Michigan,26065,648,22 +2020-05-18,Ingham,Michigan,26065,649,23 +2020-05-19,Ingham,Michigan,26065,650,23 +2020-05-20,Ingham,Michigan,26065,667,23 +2020-05-21,Ingham,Michigan,26065,674,24 +2020-05-22,Ingham,Michigan,26065,682,24 +2020-05-23,Ingham,Michigan,26065,695,25 +2020-05-24,Ingham,Michigan,26065,696,25 +2020-05-25,Ingham,Michigan,26065,701,25 +2020-05-26,Ingham,Michigan,26065,705,25 +2020-05-27,Ingham,Michigan,26065,717,25 +2020-05-28,Ingham,Michigan,26065,729,25 +2020-05-29,Ingham,Michigan,26065,734,25 +2020-05-30,Ingham,Michigan,26065,736,25 +2020-05-31,Ingham,Michigan,26065,738,26 +2020-06-01,Ingham,Michigan,26065,740,26 +2020-06-02,Ingham,Michigan,26065,745,27 +2020-06-03,Ingham,Michigan,26065,746,27 +2020-06-04,Ingham,Michigan,26065,755,27 +2020-06-05,Ingham,Michigan,26065,793,27 +2020-06-06,Ingham,Michigan,26065,801,27 +2020-06-07,Ingham,Michigan,26065,806,27 +2020-06-08,Ingham,Michigan,26065,809,27 +2020-06-09,Ingham,Michigan,26065,808,28 +2020-06-10,Ingham,Michigan,26065,810,28 +2020-06-11,Ingham,Michigan,26065,832,29 +2020-06-12,Ingham,Michigan,26065,815,29 +2020-06-13,Ingham,Michigan,26065,824,29 +2020-06-14,Ingham,Michigan,26065,825,29 +2020-06-15,Ingham,Michigan,26065,825,29 +2020-06-16,Ingham,Michigan,26065,825,29 +2020-06-17,Ingham,Michigan,26065,825,29 +2020-06-18,Ingham,Michigan,26065,825,29 +2020-06-19,Ingham,Michigan,26065,831,29 +2020-06-20,Ingham,Michigan,26065,837,29 +2020-06-21,Ingham,Michigan,26065,845,29 +2020-06-22,Ingham,Michigan,26065,859,29 +2020-06-23,Ingham,Michigan,26065,867,29 +2020-06-24,Ingham,Michigan,26065,896,29 +2020-06-25,Ingham,Michigan,26065,916,29 +2020-06-26,Ingham,Michigan,26065,954,29 +2020-06-27,Ingham,Michigan,26065,980,29 +2020-06-28,Ingham,Michigan,26065,992,29 +2020-06-29,Ingham,Michigan,26065,1002,29 +2020-06-30,Ingham,Michigan,26065,1019,29 +2020-07-01,Ingham,Michigan,26065,1042,29 +2020-07-02,Ingham,Michigan,26065,1054,29 +2020-07-03,Ingham,Michigan,26065,1070,29 +2020-07-04,Ingham,Michigan,26065,1085,29 +2020-07-05,Ingham,Michigan,26065,1092,29 +2020-07-06,Ingham,Michigan,26065,1095,29 +2020-07-07,Ingham,Michigan,26065,1114,29 +2020-07-08,Ingham,Michigan,26065,1129,29 +2020-07-09,Ingham,Michigan,26065,1142,30 +2020-03-26,Ionia,Michigan,26067,2,0 +2020-03-27,Ionia,Michigan,26067,2,0 +2020-03-28,Ionia,Michigan,26067,2,0 +2020-03-29,Ionia,Michigan,26067,2,0 +2020-03-30,Ionia,Michigan,26067,4,0 +2020-03-31,Ionia,Michigan,26067,4,0 +2020-04-01,Ionia,Michigan,26067,6,0 +2020-04-02,Ionia,Michigan,26067,5,0 +2020-04-03,Ionia,Michigan,26067,6,0 +2020-04-04,Ionia,Michigan,26067,6,0 +2020-04-05,Ionia,Michigan,26067,8,0 +2020-04-06,Ionia,Michigan,26067,8,0 +2020-04-07,Ionia,Michigan,26067,9,1 +2020-04-08,Ionia,Michigan,26067,11,1 +2020-04-09,Ionia,Michigan,26067,13,1 +2020-04-10,Ionia,Michigan,26067,14,2 +2020-04-11,Ionia,Michigan,26067,14,2 +2020-04-12,Ionia,Michigan,26067,14,2 +2020-04-13,Ionia,Michigan,26067,15,2 +2020-04-14,Ionia,Michigan,26067,17,2 +2020-04-15,Ionia,Michigan,26067,18,2 +2020-04-16,Ionia,Michigan,26067,20,2 +2020-04-17,Ionia,Michigan,26067,20,2 +2020-04-18,Ionia,Michigan,26067,22,2 +2020-04-19,Ionia,Michigan,26067,24,2 +2020-04-20,Ionia,Michigan,26067,25,2 +2020-04-21,Ionia,Michigan,26067,28,2 +2020-04-22,Ionia,Michigan,26067,29,2 +2020-04-23,Ionia,Michigan,26067,34,2 +2020-04-24,Ionia,Michigan,26067,39,2 +2020-04-25,Ionia,Michigan,26067,43,2 +2020-04-26,Ionia,Michigan,26067,45,2 +2020-04-27,Ionia,Michigan,26067,49,2 +2020-04-28,Ionia,Michigan,26067,55,2 +2020-04-29,Ionia,Michigan,26067,62,2 +2020-04-30,Ionia,Michigan,26067,78,2 +2020-05-01,Ionia,Michigan,26067,82,2 +2020-05-02,Ionia,Michigan,26067,90,2 +2020-05-03,Ionia,Michigan,26067,93,2 +2020-05-04,Ionia,Michigan,26067,93,2 +2020-05-05,Ionia,Michigan,26067,96,2 +2020-05-06,Ionia,Michigan,26067,101,2 +2020-05-07,Ionia,Michigan,26067,102,2 +2020-05-08,Ionia,Michigan,26067,106,2 +2020-05-09,Ionia,Michigan,26067,110,2 +2020-05-10,Ionia,Michigan,26067,111,2 +2020-05-11,Ionia,Michigan,26067,113,3 +2020-05-12,Ionia,Michigan,26067,113,3 +2020-05-13,Ionia,Michigan,26067,114,3 +2020-05-14,Ionia,Michigan,26067,117,3 +2020-05-15,Ionia,Michigan,26067,119,3 +2020-05-16,Ionia,Michigan,26067,121,3 +2020-05-17,Ionia,Michigan,26067,122,3 +2020-05-18,Ionia,Michigan,26067,122,3 +2020-05-19,Ionia,Michigan,26067,126,3 +2020-05-20,Ionia,Michigan,26067,127,3 +2020-05-21,Ionia,Michigan,26067,132,3 +2020-05-22,Ionia,Michigan,26067,138,3 +2020-05-23,Ionia,Michigan,26067,144,3 +2020-05-24,Ionia,Michigan,26067,146,3 +2020-05-25,Ionia,Michigan,26067,146,3 +2020-05-26,Ionia,Michigan,26067,147,3 +2020-05-27,Ionia,Michigan,26067,148,3 +2020-05-28,Ionia,Michigan,26067,150,4 +2020-05-29,Ionia,Michigan,26067,150,4 +2020-05-30,Ionia,Michigan,26067,150,4 +2020-05-31,Ionia,Michigan,26067,152,4 +2020-06-01,Ionia,Michigan,26067,155,4 +2020-06-02,Ionia,Michigan,26067,156,4 +2020-06-03,Ionia,Michigan,26067,158,4 +2020-06-04,Ionia,Michigan,26067,158,4 +2020-06-05,Ionia,Michigan,26067,178,4 +2020-06-06,Ionia,Michigan,26067,179,4 +2020-06-07,Ionia,Michigan,26067,179,4 +2020-06-08,Ionia,Michigan,26067,178,4 +2020-06-09,Ionia,Michigan,26067,180,4 +2020-06-10,Ionia,Michigan,26067,180,4 +2020-06-11,Ionia,Michigan,26067,181,4 +2020-06-12,Ionia,Michigan,26067,183,4 +2020-06-13,Ionia,Michigan,26067,183,4 +2020-06-14,Ionia,Michigan,26067,183,4 +2020-06-15,Ionia,Michigan,26067,184,4 +2020-06-16,Ionia,Michigan,26067,184,4 +2020-06-17,Ionia,Michigan,26067,186,4 +2020-06-18,Ionia,Michigan,26067,192,4 +2020-06-19,Ionia,Michigan,26067,192,4 +2020-06-20,Ionia,Michigan,26067,194,4 +2020-06-21,Ionia,Michigan,26067,194,4 +2020-06-22,Ionia,Michigan,26067,196,4 +2020-06-23,Ionia,Michigan,26067,195,4 +2020-06-24,Ionia,Michigan,26067,195,4 +2020-06-25,Ionia,Michigan,26067,197,4 +2020-06-26,Ionia,Michigan,26067,196,4 +2020-06-27,Ionia,Michigan,26067,197,4 +2020-06-28,Ionia,Michigan,26067,197,4 +2020-06-29,Ionia,Michigan,26067,198,4 +2020-06-30,Ionia,Michigan,26067,199,4 +2020-07-01,Ionia,Michigan,26067,199,4 +2020-07-02,Ionia,Michigan,26067,200,4 +2020-07-03,Ionia,Michigan,26067,203,4 +2020-07-04,Ionia,Michigan,26067,207,4 +2020-07-05,Ionia,Michigan,26067,207,4 +2020-07-06,Ionia,Michigan,26067,210,4 +2020-07-07,Ionia,Michigan,26067,209,4 +2020-07-08,Ionia,Michigan,26067,209,4 +2020-07-09,Ionia,Michigan,26067,209,4 +2020-03-25,Iosco,Michigan,26069,1,0 +2020-03-26,Iosco,Michigan,26069,1,0 +2020-03-27,Iosco,Michigan,26069,1,0 +2020-03-28,Iosco,Michigan,26069,1,0 +2020-03-29,Iosco,Michigan,26069,1,0 +2020-03-30,Iosco,Michigan,26069,1,0 +2020-03-31,Iosco,Michigan,26069,1,0 +2020-04-01,Iosco,Michigan,26069,1,0 +2020-04-02,Iosco,Michigan,26069,1,0 +2020-04-03,Iosco,Michigan,26069,1,0 +2020-04-04,Iosco,Michigan,26069,2,1 +2020-04-05,Iosco,Michigan,26069,3,1 +2020-04-06,Iosco,Michigan,26069,3,1 +2020-04-07,Iosco,Michigan,26069,4,1 +2020-04-08,Iosco,Michigan,26069,4,1 +2020-04-09,Iosco,Michigan,26069,4,1 +2020-04-10,Iosco,Michigan,26069,4,1 +2020-04-11,Iosco,Michigan,26069,5,1 +2020-04-12,Iosco,Michigan,26069,4,1 +2020-04-13,Iosco,Michigan,26069,4,1 +2020-04-14,Iosco,Michigan,26069,4,1 +2020-04-15,Iosco,Michigan,26069,4,1 +2020-04-16,Iosco,Michigan,26069,6,1 +2020-04-17,Iosco,Michigan,26069,8,1 +2020-04-18,Iosco,Michigan,26069,11,1 +2020-04-19,Iosco,Michigan,26069,11,1 +2020-04-20,Iosco,Michigan,26069,13,2 +2020-04-21,Iosco,Michigan,26069,15,2 +2020-04-22,Iosco,Michigan,26069,15,2 +2020-04-23,Iosco,Michigan,26069,21,3 +2020-04-24,Iosco,Michigan,26069,29,4 +2020-04-25,Iosco,Michigan,26069,29,4 +2020-04-26,Iosco,Michigan,26069,33,4 +2020-04-27,Iosco,Michigan,26069,41,4 +2020-04-28,Iosco,Michigan,26069,48,4 +2020-04-29,Iosco,Michigan,26069,47,4 +2020-04-30,Iosco,Michigan,26069,52,4 +2020-05-01,Iosco,Michigan,26069,51,7 +2020-05-02,Iosco,Michigan,26069,52,7 +2020-05-03,Iosco,Michigan,26069,52,7 +2020-05-04,Iosco,Michigan,26069,52,7 +2020-05-05,Iosco,Michigan,26069,52,7 +2020-05-06,Iosco,Michigan,26069,53,7 +2020-05-07,Iosco,Michigan,26069,54,8 +2020-05-08,Iosco,Michigan,26069,54,8 +2020-05-09,Iosco,Michigan,26069,54,8 +2020-05-10,Iosco,Michigan,26069,55,8 +2020-05-11,Iosco,Michigan,26069,55,8 +2020-05-12,Iosco,Michigan,26069,55,8 +2020-05-13,Iosco,Michigan,26069,55,8 +2020-05-14,Iosco,Michigan,26069,56,8 +2020-05-15,Iosco,Michigan,26069,57,8 +2020-05-16,Iosco,Michigan,26069,58,8 +2020-05-17,Iosco,Michigan,26069,58,8 +2020-05-18,Iosco,Michigan,26069,59,8 +2020-05-19,Iosco,Michigan,26069,65,8 +2020-05-20,Iosco,Michigan,26069,71,9 +2020-05-21,Iosco,Michigan,26069,73,9 +2020-05-22,Iosco,Michigan,26069,76,9 +2020-05-23,Iosco,Michigan,26069,77,9 +2020-05-24,Iosco,Michigan,26069,77,9 +2020-05-25,Iosco,Michigan,26069,82,9 +2020-05-26,Iosco,Michigan,26069,84,9 +2020-05-27,Iosco,Michigan,26069,89,9 +2020-05-28,Iosco,Michigan,26069,90,9 +2020-05-29,Iosco,Michigan,26069,94,9 +2020-05-30,Iosco,Michigan,26069,94,9 +2020-05-31,Iosco,Michigan,26069,94,9 +2020-06-01,Iosco,Michigan,26069,112,9 +2020-06-02,Iosco,Michigan,26069,112,9 +2020-06-03,Iosco,Michigan,26069,112,9 +2020-06-04,Iosco,Michigan,26069,111,9 +2020-06-05,Iosco,Michigan,26069,111,8 +2020-06-06,Iosco,Michigan,26069,111,10 +2020-06-07,Iosco,Michigan,26069,111,10 +2020-06-08,Iosco,Michigan,26069,111,10 +2020-06-09,Iosco,Michigan,26069,111,10 +2020-06-10,Iosco,Michigan,26069,111,10 +2020-06-11,Iosco,Michigan,26069,111,10 +2020-06-12,Iosco,Michigan,26069,112,10 +2020-06-13,Iosco,Michigan,26069,112,10 +2020-06-14,Iosco,Michigan,26069,112,10 +2020-06-15,Iosco,Michigan,26069,112,10 +2020-06-16,Iosco,Michigan,26069,112,10 +2020-06-17,Iosco,Michigan,26069,112,10 +2020-06-18,Iosco,Michigan,26069,112,10 +2020-06-19,Iosco,Michigan,26069,112,10 +2020-06-20,Iosco,Michigan,26069,112,10 +2020-06-21,Iosco,Michigan,26069,112,10 +2020-06-22,Iosco,Michigan,26069,112,10 +2020-06-23,Iosco,Michigan,26069,112,10 +2020-06-24,Iosco,Michigan,26069,112,10 +2020-06-25,Iosco,Michigan,26069,112,10 +2020-06-26,Iosco,Michigan,26069,112,10 +2020-06-27,Iosco,Michigan,26069,112,10 +2020-06-28,Iosco,Michigan,26069,112,10 +2020-06-29,Iosco,Michigan,26069,113,10 +2020-06-30,Iosco,Michigan,26069,113,10 +2020-07-01,Iosco,Michigan,26069,114,11 +2020-07-02,Iosco,Michigan,26069,116,11 +2020-07-03,Iosco,Michigan,26069,118,11 +2020-07-04,Iosco,Michigan,26069,118,11 +2020-07-05,Iosco,Michigan,26069,118,11 +2020-07-06,Iosco,Michigan,26069,118,11 +2020-07-07,Iosco,Michigan,26069,118,11 +2020-07-08,Iosco,Michigan,26069,118,11 +2020-07-09,Iosco,Michigan,26069,120,11 +2020-06-02,Iron,Michigan,26071,1,0 +2020-06-03,Iron,Michigan,26071,1,0 +2020-06-04,Iron,Michigan,26071,1,0 +2020-06-05,Iron,Michigan,26071,2,0 +2020-06-06,Iron,Michigan,26071,2,0 +2020-06-07,Iron,Michigan,26071,2,0 +2020-06-08,Iron,Michigan,26071,2,0 +2020-06-09,Iron,Michigan,26071,2,0 +2020-06-10,Iron,Michigan,26071,2,0 +2020-06-11,Iron,Michigan,26071,2,0 +2020-06-12,Iron,Michigan,26071,2,0 +2020-06-13,Iron,Michigan,26071,2,0 +2020-06-14,Iron,Michigan,26071,2,0 +2020-06-15,Iron,Michigan,26071,3,0 +2020-06-16,Iron,Michigan,26071,3,0 +2020-06-17,Iron,Michigan,26071,3,0 +2020-06-18,Iron,Michigan,26071,4,0 +2020-06-19,Iron,Michigan,26071,4,0 +2020-06-20,Iron,Michigan,26071,4,0 +2020-06-21,Iron,Michigan,26071,4,0 +2020-06-22,Iron,Michigan,26071,4,0 +2020-06-23,Iron,Michigan,26071,4,0 +2020-06-24,Iron,Michigan,26071,4,0 +2020-06-25,Iron,Michigan,26071,5,0 +2020-06-26,Iron,Michigan,26071,5,0 +2020-06-27,Iron,Michigan,26071,5,1 +2020-06-28,Iron,Michigan,26071,5,1 +2020-06-29,Iron,Michigan,26071,5,1 +2020-06-30,Iron,Michigan,26071,5,1 +2020-07-01,Iron,Michigan,26071,5,1 +2020-07-02,Iron,Michigan,26071,6,1 +2020-07-03,Iron,Michigan,26071,6,1 +2020-07-04,Iron,Michigan,26071,6,1 +2020-07-05,Iron,Michigan,26071,6,1 +2020-07-06,Iron,Michigan,26071,6,1 +2020-07-07,Iron,Michigan,26071,6,1 +2020-07-08,Iron,Michigan,26071,6,1 +2020-07-09,Iron,Michigan,26071,6,1 +2020-03-24,Isabella,Michigan,26073,2,0 +2020-03-25,Isabella,Michigan,26073,2,0 +2020-03-26,Isabella,Michigan,26073,3,0 +2020-03-27,Isabella,Michigan,26073,4,0 +2020-03-28,Isabella,Michigan,26073,4,0 +2020-03-29,Isabella,Michigan,26073,4,1 +2020-03-30,Isabella,Michigan,26073,5,1 +2020-03-31,Isabella,Michigan,26073,6,1 +2020-04-01,Isabella,Michigan,26073,7,1 +2020-04-02,Isabella,Michigan,26073,8,1 +2020-04-03,Isabella,Michigan,26073,9,2 +2020-04-04,Isabella,Michigan,26073,10,2 +2020-04-05,Isabella,Michigan,26073,12,2 +2020-04-06,Isabella,Michigan,26073,16,2 +2020-04-07,Isabella,Michigan,26073,22,2 +2020-04-08,Isabella,Michigan,26073,22,2 +2020-04-09,Isabella,Michigan,26073,28,2 +2020-04-10,Isabella,Michigan,26073,37,2 +2020-04-11,Isabella,Michigan,26073,38,3 +2020-04-12,Isabella,Michigan,26073,39,3 +2020-04-13,Isabella,Michigan,26073,41,4 +2020-04-14,Isabella,Michigan,26073,42,4 +2020-04-15,Isabella,Michigan,26073,43,4 +2020-04-16,Isabella,Michigan,26073,45,5 +2020-04-17,Isabella,Michigan,26073,46,6 +2020-04-18,Isabella,Michigan,26073,51,7 +2020-04-19,Isabella,Michigan,26073,52,7 +2020-04-20,Isabella,Michigan,26073,52,7 +2020-04-21,Isabella,Michigan,26073,53,7 +2020-04-22,Isabella,Michigan,26073,54,7 +2020-04-23,Isabella,Michigan,26073,54,7 +2020-04-24,Isabella,Michigan,26073,55,7 +2020-04-25,Isabella,Michigan,26073,55,7 +2020-04-26,Isabella,Michigan,26073,55,7 +2020-04-27,Isabella,Michigan,26073,57,7 +2020-04-28,Isabella,Michigan,26073,59,7 +2020-04-29,Isabella,Michigan,26073,60,7 +2020-04-30,Isabella,Michigan,26073,61,7 +2020-05-01,Isabella,Michigan,26073,60,7 +2020-05-02,Isabella,Michigan,26073,61,7 +2020-05-03,Isabella,Michigan,26073,61,7 +2020-05-04,Isabella,Michigan,26073,61,7 +2020-05-05,Isabella,Michigan,26073,61,7 +2020-05-06,Isabella,Michigan,26073,61,7 +2020-05-07,Isabella,Michigan,26073,61,7 +2020-05-08,Isabella,Michigan,26073,61,7 +2020-05-09,Isabella,Michigan,26073,61,7 +2020-05-10,Isabella,Michigan,26073,62,7 +2020-05-11,Isabella,Michigan,26073,62,7 +2020-05-12,Isabella,Michigan,26073,61,7 +2020-05-13,Isabella,Michigan,26073,61,7 +2020-05-14,Isabella,Michigan,26073,62,7 +2020-05-15,Isabella,Michigan,26073,62,7 +2020-05-16,Isabella,Michigan,26073,62,7 +2020-05-17,Isabella,Michigan,26073,62,7 +2020-05-18,Isabella,Michigan,26073,62,7 +2020-05-19,Isabella,Michigan,26073,62,7 +2020-05-20,Isabella,Michigan,26073,65,7 +2020-05-21,Isabella,Michigan,26073,65,7 +2020-05-22,Isabella,Michigan,26073,67,7 +2020-05-23,Isabella,Michigan,26073,70,7 +2020-05-24,Isabella,Michigan,26073,74,7 +2020-05-25,Isabella,Michigan,26073,74,7 +2020-05-26,Isabella,Michigan,26073,74,7 +2020-05-27,Isabella,Michigan,26073,74,7 +2020-05-28,Isabella,Michigan,26073,76,7 +2020-05-29,Isabella,Michigan,26073,76,7 +2020-05-30,Isabella,Michigan,26073,77,7 +2020-05-31,Isabella,Michigan,26073,77,7 +2020-06-01,Isabella,Michigan,26073,77,7 +2020-06-02,Isabella,Michigan,26073,78,7 +2020-06-03,Isabella,Michigan,26073,78,7 +2020-06-04,Isabella,Michigan,26073,78,7 +2020-06-05,Isabella,Michigan,26073,94,7 +2020-06-06,Isabella,Michigan,26073,94,7 +2020-06-07,Isabella,Michigan,26073,94,7 +2020-06-08,Isabella,Michigan,26073,94,7 +2020-06-09,Isabella,Michigan,26073,94,7 +2020-06-10,Isabella,Michigan,26073,95,7 +2020-06-11,Isabella,Michigan,26073,95,7 +2020-06-12,Isabella,Michigan,26073,95,7 +2020-06-13,Isabella,Michigan,26073,96,8 +2020-06-14,Isabella,Michigan,26073,97,8 +2020-06-15,Isabella,Michigan,26073,97,8 +2020-06-16,Isabella,Michigan,26073,99,8 +2020-06-17,Isabella,Michigan,26073,99,8 +2020-06-18,Isabella,Michigan,26073,102,8 +2020-06-19,Isabella,Michigan,26073,106,8 +2020-06-20,Isabella,Michigan,26073,109,8 +2020-06-21,Isabella,Michigan,26073,112,8 +2020-06-22,Isabella,Michigan,26073,113,8 +2020-06-23,Isabella,Michigan,26073,116,8 +2020-06-24,Isabella,Michigan,26073,120,8 +2020-06-25,Isabella,Michigan,26073,120,8 +2020-06-26,Isabella,Michigan,26073,121,8 +2020-06-27,Isabella,Michigan,26073,121,8 +2020-06-28,Isabella,Michigan,26073,122,8 +2020-06-29,Isabella,Michigan,26073,122,8 +2020-06-30,Isabella,Michigan,26073,123,8 +2020-07-01,Isabella,Michigan,26073,127,8 +2020-07-02,Isabella,Michigan,26073,128,8 +2020-07-03,Isabella,Michigan,26073,129,8 +2020-07-04,Isabella,Michigan,26073,131,8 +2020-07-05,Isabella,Michigan,26073,135,8 +2020-07-06,Isabella,Michigan,26073,136,8 +2020-07-07,Isabella,Michigan,26073,135,8 +2020-07-08,Isabella,Michigan,26073,139,8 +2020-07-09,Isabella,Michigan,26073,146,8 +2020-03-17,Jackson,Michigan,26075,1,0 +2020-03-18,Jackson,Michigan,26075,1,0 +2020-03-19,Jackson,Michigan,26075,1,0 +2020-03-20,Jackson,Michigan,26075,1,0 +2020-03-21,Jackson,Michigan,26075,1,0 +2020-03-22,Jackson,Michigan,26075,1,0 +2020-03-23,Jackson,Michigan,26075,1,0 +2020-03-24,Jackson,Michigan,26075,6,0 +2020-03-25,Jackson,Michigan,26075,12,0 +2020-03-26,Jackson,Michigan,26075,17,0 +2020-03-27,Jackson,Michigan,26075,17,0 +2020-03-28,Jackson,Michigan,26075,20,0 +2020-03-29,Jackson,Michigan,26075,28,1 +2020-03-30,Jackson,Michigan,26075,37,1 +2020-03-31,Jackson,Michigan,26075,47,1 +2020-04-01,Jackson,Michigan,26075,56,2 +2020-04-02,Jackson,Michigan,26075,67,2 +2020-04-03,Jackson,Michigan,26075,69,3 +2020-04-04,Jackson,Michigan,26075,81,3 +2020-04-05,Jackson,Michigan,26075,90,3 +2020-04-06,Jackson,Michigan,26075,103,4 +2020-04-07,Jackson,Michigan,26075,114,4 +2020-04-08,Jackson,Michigan,26075,126,4 +2020-04-09,Jackson,Michigan,26075,131,4 +2020-04-10,Jackson,Michigan,26075,140,4 +2020-04-11,Jackson,Michigan,26075,152,4 +2020-04-12,Jackson,Michigan,26075,171,4 +2020-04-13,Jackson,Michigan,26075,172,6 +2020-04-14,Jackson,Michigan,26075,183,7 +2020-04-15,Jackson,Michigan,26075,409,14 +2020-04-16,Jackson,Michigan,26075,430,14 +2020-04-17,Jackson,Michigan,26075,448,15 +2020-04-18,Jackson,Michigan,26075,453,15 +2020-04-19,Jackson,Michigan,26075,502,18 +2020-04-20,Jackson,Michigan,26075,529,18 +2020-04-21,Jackson,Michigan,26075,550,20 +2020-04-22,Jackson,Michigan,26075,588,20 +2020-04-23,Jackson,Michigan,26075,597,22 +2020-04-24,Jackson,Michigan,26075,626,24 +2020-04-25,Jackson,Michigan,26075,646,26 +2020-04-26,Jackson,Michigan,26075,650,26 +2020-04-27,Jackson,Michigan,26075,676,28 +2020-04-28,Jackson,Michigan,26075,678,32 +2020-04-29,Jackson,Michigan,26075,717,33 +2020-04-30,Jackson,Michigan,26075,735,37 +2020-05-01,Jackson,Michigan,26075,944,37 +2020-05-02,Jackson,Michigan,26075,1001,39 +2020-05-03,Jackson,Michigan,26075,1272,39 +2020-05-04,Jackson,Michigan,26075,1278,42 +2020-05-05,Jackson,Michigan,26075,1301,42 +2020-05-06,Jackson,Michigan,26075,1311,43 +2020-05-07,Jackson,Michigan,26075,1320,43 +2020-05-08,Jackson,Michigan,26075,1328,42 +2020-05-09,Jackson,Michigan,26075,1346,43 +2020-05-10,Jackson,Michigan,26075,1364,43 +2020-05-11,Jackson,Michigan,26075,1381,43 +2020-05-12,Jackson,Michigan,26075,1382,43 +2020-05-13,Jackson,Michigan,26075,1389,44 +2020-05-14,Jackson,Michigan,26075,1411,44 +2020-05-15,Jackson,Michigan,26075,1416,44 +2020-05-16,Jackson,Michigan,26075,1444,44 +2020-05-17,Jackson,Michigan,26075,1447,44 +2020-05-18,Jackson,Michigan,26075,1455,44 +2020-05-19,Jackson,Michigan,26075,1459,45 +2020-05-20,Jackson,Michigan,26075,1462,45 +2020-05-21,Jackson,Michigan,26075,1466,45 +2020-05-22,Jackson,Michigan,26075,1471,45 +2020-05-23,Jackson,Michigan,26075,1473,45 +2020-05-24,Jackson,Michigan,26075,1492,45 +2020-05-25,Jackson,Michigan,26075,1494,45 +2020-05-26,Jackson,Michigan,26075,1494,45 +2020-05-27,Jackson,Michigan,26075,1495,45 +2020-05-28,Jackson,Michigan,26075,1502,46 +2020-05-29,Jackson,Michigan,26075,1567,47 +2020-05-30,Jackson,Michigan,26075,1504,47 +2020-05-31,Jackson,Michigan,26075,1806,49 +2020-06-01,Jackson,Michigan,26075,1980,49 +2020-06-02,Jackson,Michigan,26075,1988,49 +2020-06-03,Jackson,Michigan,26075,1990,50 +2020-06-04,Jackson,Michigan,26075,1997,50 +2020-06-05,Jackson,Michigan,26075,2031,51 +2020-06-06,Jackson,Michigan,26075,2031,51 +2020-06-07,Jackson,Michigan,26075,2033,52 +2020-06-08,Jackson,Michigan,26075,2041,52 +2020-06-09,Jackson,Michigan,26075,2041,52 +2020-06-10,Jackson,Michigan,26075,2051,52 +2020-06-11,Jackson,Michigan,26075,2055,52 +2020-06-12,Jackson,Michigan,26075,2051,52 +2020-06-13,Jackson,Michigan,26075,2053,52 +2020-06-14,Jackson,Michigan,26075,2054,52 +2020-06-15,Jackson,Michigan,26075,2054,52 +2020-06-16,Jackson,Michigan,26075,2054,52 +2020-06-17,Jackson,Michigan,26075,2054,52 +2020-06-18,Jackson,Michigan,26075,2055,52 +2020-06-19,Jackson,Michigan,26075,2055,52 +2020-06-20,Jackson,Michigan,26075,2056,52 +2020-06-21,Jackson,Michigan,26075,2056,52 +2020-06-22,Jackson,Michigan,26075,2055,52 +2020-06-23,Jackson,Michigan,26075,2056,52 +2020-06-24,Jackson,Michigan,26075,2056,52 +2020-06-25,Jackson,Michigan,26075,2056,52 +2020-06-26,Jackson,Michigan,26075,2080,52 +2020-06-27,Jackson,Michigan,26075,2082,52 +2020-06-28,Jackson,Michigan,26075,2082,52 +2020-06-29,Jackson,Michigan,26075,2085,52 +2020-06-30,Jackson,Michigan,26075,2093,52 +2020-07-01,Jackson,Michigan,26075,2101,52 +2020-07-02,Jackson,Michigan,26075,2105,53 +2020-07-03,Jackson,Michigan,26075,2128,53 +2020-07-04,Jackson,Michigan,26075,2131,53 +2020-07-05,Jackson,Michigan,26075,2131,53 +2020-07-06,Jackson,Michigan,26075,2136,53 +2020-07-07,Jackson,Michigan,26075,2136,54 +2020-07-08,Jackson,Michigan,26075,2140,54 +2020-07-09,Jackson,Michigan,26075,2143,54 +2020-03-23,Kalamazoo,Michigan,26077,3,0 +2020-03-24,Kalamazoo,Michigan,26077,3,0 +2020-03-25,Kalamazoo,Michigan,26077,5,0 +2020-03-26,Kalamazoo,Michigan,26077,10,0 +2020-03-27,Kalamazoo,Michigan,26077,11,0 +2020-03-28,Kalamazoo,Michigan,26077,15,0 +2020-03-29,Kalamazoo,Michigan,26077,19,0 +2020-03-30,Kalamazoo,Michigan,26077,24,1 +2020-03-31,Kalamazoo,Michigan,26077,24,1 +2020-04-01,Kalamazoo,Michigan,26077,30,1 +2020-04-02,Kalamazoo,Michigan,26077,34,1 +2020-04-03,Kalamazoo,Michigan,26077,40,1 +2020-04-04,Kalamazoo,Michigan,26077,45,3 +2020-04-05,Kalamazoo,Michigan,26077,53,3 +2020-04-06,Kalamazoo,Michigan,26077,58,3 +2020-04-07,Kalamazoo,Michigan,26077,64,5 +2020-04-08,Kalamazoo,Michigan,26077,67,6 +2020-04-09,Kalamazoo,Michigan,26077,74,6 +2020-04-10,Kalamazoo,Michigan,26077,77,7 +2020-04-11,Kalamazoo,Michigan,26077,79,7 +2020-04-12,Kalamazoo,Michigan,26077,84,7 +2020-04-13,Kalamazoo,Michigan,26077,91,7 +2020-04-14,Kalamazoo,Michigan,26077,94,8 +2020-04-15,Kalamazoo,Michigan,26077,103,8 +2020-04-16,Kalamazoo,Michigan,26077,118,8 +2020-04-17,Kalamazoo,Michigan,26077,130,9 +2020-04-18,Kalamazoo,Michigan,26077,154,9 +2020-04-19,Kalamazoo,Michigan,26077,166,9 +2020-04-20,Kalamazoo,Michigan,26077,185,9 +2020-04-21,Kalamazoo,Michigan,26077,201,10 +2020-04-22,Kalamazoo,Michigan,26077,212,11 +2020-04-23,Kalamazoo,Michigan,26077,229,11 +2020-04-24,Kalamazoo,Michigan,26077,266,11 +2020-04-25,Kalamazoo,Michigan,26077,280,11 +2020-04-26,Kalamazoo,Michigan,26077,292,11 +2020-04-27,Kalamazoo,Michigan,26077,300,12 +2020-04-28,Kalamazoo,Michigan,26077,327,12 +2020-04-29,Kalamazoo,Michigan,26077,348,12 +2020-04-30,Kalamazoo,Michigan,26077,364,13 +2020-05-01,Kalamazoo,Michigan,26077,405,18 +2020-05-02,Kalamazoo,Michigan,26077,442,18 +2020-05-03,Kalamazoo,Michigan,26077,456,18 +2020-05-04,Kalamazoo,Michigan,26077,480,22 +2020-05-05,Kalamazoo,Michigan,26077,489,22 +2020-05-06,Kalamazoo,Michigan,26077,539,23 +2020-05-07,Kalamazoo,Michigan,26077,561,25 +2020-05-08,Kalamazoo,Michigan,26077,573,25 +2020-05-09,Kalamazoo,Michigan,26077,591,27 +2020-05-10,Kalamazoo,Michigan,26077,601,29 +2020-05-11,Kalamazoo,Michigan,26077,622,32 +2020-05-12,Kalamazoo,Michigan,26077,636,36 +2020-05-13,Kalamazoo,Michigan,26077,643,36 +2020-05-14,Kalamazoo,Michigan,26077,669,40 +2020-05-15,Kalamazoo,Michigan,26077,679,41 +2020-05-16,Kalamazoo,Michigan,26077,708,42 +2020-05-17,Kalamazoo,Michigan,26077,707,42 +2020-05-18,Kalamazoo,Michigan,26077,719,42 +2020-05-19,Kalamazoo,Michigan,26077,739,44 +2020-05-20,Kalamazoo,Michigan,26077,751,45 +2020-05-21,Kalamazoo,Michigan,26077,762,45 +2020-05-22,Kalamazoo,Michigan,26077,778,47 +2020-05-23,Kalamazoo,Michigan,26077,793,47 +2020-05-24,Kalamazoo,Michigan,26077,797,47 +2020-05-25,Kalamazoo,Michigan,26077,801,49 +2020-05-26,Kalamazoo,Michigan,26077,802,51 +2020-05-27,Kalamazoo,Michigan,26077,814,51 +2020-05-28,Kalamazoo,Michigan,26077,820,54 +2020-05-29,Kalamazoo,Michigan,26077,833,54 +2020-05-30,Kalamazoo,Michigan,26077,834,54 +2020-05-31,Kalamazoo,Michigan,26077,844,55 +2020-06-01,Kalamazoo,Michigan,26077,844,57 +2020-06-02,Kalamazoo,Michigan,26077,848,58 +2020-06-03,Kalamazoo,Michigan,26077,850,58 +2020-06-04,Kalamazoo,Michigan,26077,858,58 +2020-06-05,Kalamazoo,Michigan,26077,919,59 +2020-06-06,Kalamazoo,Michigan,26077,926,61 +2020-06-07,Kalamazoo,Michigan,26077,929,61 +2020-06-08,Kalamazoo,Michigan,26077,934,61 +2020-06-09,Kalamazoo,Michigan,26077,935,61 +2020-06-10,Kalamazoo,Michigan,26077,940,63 +2020-06-11,Kalamazoo,Michigan,26077,943,63 +2020-06-12,Kalamazoo,Michigan,26077,949,63 +2020-06-13,Kalamazoo,Michigan,26077,952,63 +2020-06-14,Kalamazoo,Michigan,26077,954,63 +2020-06-15,Kalamazoo,Michigan,26077,955,63 +2020-06-16,Kalamazoo,Michigan,26077,958,63 +2020-06-17,Kalamazoo,Michigan,26077,969,63 +2020-06-18,Kalamazoo,Michigan,26077,977,64 +2020-06-19,Kalamazoo,Michigan,26077,984,64 +2020-06-20,Kalamazoo,Michigan,26077,995,65 +2020-06-21,Kalamazoo,Michigan,26077,996,65 +2020-06-22,Kalamazoo,Michigan,26077,996,66 +2020-06-23,Kalamazoo,Michigan,26077,1002,66 +2020-06-24,Kalamazoo,Michigan,26077,1017,67 +2020-06-25,Kalamazoo,Michigan,26077,1042,67 +2020-06-26,Kalamazoo,Michigan,26077,1048,67 +2020-06-27,Kalamazoo,Michigan,26077,1055,67 +2020-06-28,Kalamazoo,Michigan,26077,1063,67 +2020-06-29,Kalamazoo,Michigan,26077,1069,67 +2020-06-30,Kalamazoo,Michigan,26077,1084,67 +2020-07-01,Kalamazoo,Michigan,26077,1089,68 +2020-07-02,Kalamazoo,Michigan,26077,1093,68 +2020-07-03,Kalamazoo,Michigan,26077,1103,68 +2020-07-04,Kalamazoo,Michigan,26077,1108,68 +2020-07-05,Kalamazoo,Michigan,26077,1110,68 +2020-07-06,Kalamazoo,Michigan,26077,1112,68 +2020-07-07,Kalamazoo,Michigan,26077,1131,68 +2020-07-08,Kalamazoo,Michigan,26077,1156,69 +2020-07-09,Kalamazoo,Michigan,26077,1172,70 +2020-03-24,Kalkaska,Michigan,26079,1,0 +2020-03-25,Kalkaska,Michigan,26079,2,0 +2020-03-26,Kalkaska,Michigan,26079,2,0 +2020-03-27,Kalkaska,Michigan,26079,4,0 +2020-03-28,Kalkaska,Michigan,26079,4,0 +2020-03-29,Kalkaska,Michigan,26079,4,0 +2020-03-30,Kalkaska,Michigan,26079,5,1 +2020-03-31,Kalkaska,Michigan,26079,7,1 +2020-04-01,Kalkaska,Michigan,26079,7,1 +2020-04-02,Kalkaska,Michigan,26079,7,1 +2020-04-03,Kalkaska,Michigan,26079,8,1 +2020-04-04,Kalkaska,Michigan,26079,8,1 +2020-04-05,Kalkaska,Michigan,26079,8,2 +2020-04-06,Kalkaska,Michigan,26079,8,2 +2020-04-07,Kalkaska,Michigan,26079,10,2 +2020-04-08,Kalkaska,Michigan,26079,10,2 +2020-04-09,Kalkaska,Michigan,26079,10,2 +2020-04-10,Kalkaska,Michigan,26079,10,2 +2020-04-11,Kalkaska,Michigan,26079,13,2 +2020-04-12,Kalkaska,Michigan,26079,13,2 +2020-04-13,Kalkaska,Michigan,26079,14,2 +2020-04-14,Kalkaska,Michigan,26079,14,2 +2020-04-15,Kalkaska,Michigan,26079,16,2 +2020-04-16,Kalkaska,Michigan,26079,17,2 +2020-04-17,Kalkaska,Michigan,26079,17,2 +2020-04-18,Kalkaska,Michigan,26079,17,2 +2020-04-19,Kalkaska,Michigan,26079,17,2 +2020-04-20,Kalkaska,Michigan,26079,17,2 +2020-04-21,Kalkaska,Michigan,26079,17,2 +2020-04-22,Kalkaska,Michigan,26079,17,2 +2020-04-23,Kalkaska,Michigan,26079,17,2 +2020-04-24,Kalkaska,Michigan,26079,17,2 +2020-04-25,Kalkaska,Michigan,26079,17,2 +2020-04-26,Kalkaska,Michigan,26079,17,2 +2020-04-27,Kalkaska,Michigan,26079,17,2 +2020-04-28,Kalkaska,Michigan,26079,17,2 +2020-04-29,Kalkaska,Michigan,26079,17,2 +2020-04-30,Kalkaska,Michigan,26079,17,2 +2020-05-01,Kalkaska,Michigan,26079,17,2 +2020-05-02,Kalkaska,Michigan,26079,17,2 +2020-05-03,Kalkaska,Michigan,26079,17,2 +2020-05-04,Kalkaska,Michigan,26079,17,2 +2020-05-05,Kalkaska,Michigan,26079,17,2 +2020-05-06,Kalkaska,Michigan,26079,17,2 +2020-05-07,Kalkaska,Michigan,26079,17,2 +2020-05-08,Kalkaska,Michigan,26079,17,2 +2020-05-09,Kalkaska,Michigan,26079,17,2 +2020-05-10,Kalkaska,Michigan,26079,18,2 +2020-05-11,Kalkaska,Michigan,26079,18,2 +2020-05-12,Kalkaska,Michigan,26079,17,2 +2020-05-13,Kalkaska,Michigan,26079,17,2 +2020-05-14,Kalkaska,Michigan,26079,17,2 +2020-05-15,Kalkaska,Michigan,26079,17,2 +2020-05-16,Kalkaska,Michigan,26079,17,2 +2020-05-17,Kalkaska,Michigan,26079,17,2 +2020-05-18,Kalkaska,Michigan,26079,17,2 +2020-05-19,Kalkaska,Michigan,26079,17,2 +2020-05-20,Kalkaska,Michigan,26079,18,2 +2020-05-21,Kalkaska,Michigan,26079,18,2 +2020-05-22,Kalkaska,Michigan,26079,18,2 +2020-05-23,Kalkaska,Michigan,26079,19,2 +2020-05-24,Kalkaska,Michigan,26079,19,2 +2020-05-25,Kalkaska,Michigan,26079,19,2 +2020-05-26,Kalkaska,Michigan,26079,19,2 +2020-05-27,Kalkaska,Michigan,26079,19,2 +2020-05-28,Kalkaska,Michigan,26079,19,2 +2020-05-29,Kalkaska,Michigan,26079,19,2 +2020-05-30,Kalkaska,Michigan,26079,19,2 +2020-05-31,Kalkaska,Michigan,26079,19,2 +2020-06-01,Kalkaska,Michigan,26079,31,2 +2020-06-02,Kalkaska,Michigan,26079,31,2 +2020-06-03,Kalkaska,Michigan,26079,31,2 +2020-06-04,Kalkaska,Michigan,26079,31,2 +2020-06-05,Kalkaska,Michigan,26079,31,2 +2020-06-06,Kalkaska,Michigan,26079,31,2 +2020-06-07,Kalkaska,Michigan,26079,31,2 +2020-06-08,Kalkaska,Michigan,26079,32,2 +2020-06-09,Kalkaska,Michigan,26079,31,2 +2020-06-10,Kalkaska,Michigan,26079,31,2 +2020-06-11,Kalkaska,Michigan,26079,31,2 +2020-06-12,Kalkaska,Michigan,26079,31,2 +2020-06-13,Kalkaska,Michigan,26079,31,2 +2020-06-14,Kalkaska,Michigan,26079,31,2 +2020-06-15,Kalkaska,Michigan,26079,31,2 +2020-06-16,Kalkaska,Michigan,26079,31,2 +2020-06-17,Kalkaska,Michigan,26079,31,2 +2020-06-18,Kalkaska,Michigan,26079,31,2 +2020-06-19,Kalkaska,Michigan,26079,31,2 +2020-06-20,Kalkaska,Michigan,26079,31,2 +2020-06-21,Kalkaska,Michigan,26079,31,2 +2020-06-22,Kalkaska,Michigan,26079,31,2 +2020-06-23,Kalkaska,Michigan,26079,31,2 +2020-06-24,Kalkaska,Michigan,26079,31,2 +2020-06-25,Kalkaska,Michigan,26079,31,2 +2020-06-26,Kalkaska,Michigan,26079,32,2 +2020-06-27,Kalkaska,Michigan,26079,32,2 +2020-06-28,Kalkaska,Michigan,26079,32,2 +2020-06-29,Kalkaska,Michigan,26079,32,2 +2020-06-30,Kalkaska,Michigan,26079,33,2 +2020-07-01,Kalkaska,Michigan,26079,34,2 +2020-07-02,Kalkaska,Michigan,26079,34,2 +2020-07-03,Kalkaska,Michigan,26079,35,2 +2020-07-04,Kalkaska,Michigan,26079,36,2 +2020-07-05,Kalkaska,Michigan,26079,39,2 +2020-07-06,Kalkaska,Michigan,26079,41,2 +2020-07-07,Kalkaska,Michigan,26079,41,2 +2020-07-08,Kalkaska,Michigan,26079,41,2 +2020-07-09,Kalkaska,Michigan,26079,41,2 +2020-03-12,Kent,Michigan,26081,3,0 +2020-03-13,Kent,Michigan,26081,3,0 +2020-03-14,Kent,Michigan,26081,3,0 +2020-03-15,Kent,Michigan,26081,5,0 +2020-03-16,Kent,Michigan,26081,5,0 +2020-03-17,Kent,Michigan,26081,5,0 +2020-03-18,Kent,Michigan,26081,5,0 +2020-03-19,Kent,Michigan,26081,12,0 +2020-03-20,Kent,Michigan,26081,12,0 +2020-03-21,Kent,Michigan,26081,21,1 +2020-03-22,Kent,Michigan,26081,21,1 +2020-03-23,Kent,Michigan,26081,28,1 +2020-03-24,Kent,Michigan,26081,31,1 +2020-03-25,Kent,Michigan,26081,36,1 +2020-03-26,Kent,Michigan,26081,41,1 +2020-03-27,Kent,Michigan,26081,45,1 +2020-03-28,Kent,Michigan,26081,53,1 +2020-03-29,Kent,Michigan,26081,72,1 +2020-03-30,Kent,Michigan,26081,96,1 +2020-03-31,Kent,Michigan,26081,108,1 +2020-04-01,Kent,Michigan,26081,119,2 +2020-04-02,Kent,Michigan,26081,125,2 +2020-04-03,Kent,Michigan,26081,136,2 +2020-04-04,Kent,Michigan,26081,153,3 +2020-04-05,Kent,Michigan,26081,165,3 +2020-04-06,Kent,Michigan,26081,177,5 +2020-04-07,Kent,Michigan,26081,187,7 +2020-04-08,Kent,Michigan,26081,207,9 +2020-04-09,Kent,Michigan,26081,233,10 +2020-04-10,Kent,Michigan,26081,250,13 +2020-04-11,Kent,Michigan,26081,270,13 +2020-04-12,Kent,Michigan,26081,287,13 +2020-04-13,Kent,Michigan,26081,311,13 +2020-04-14,Kent,Michigan,26081,325,14 +2020-04-15,Kent,Michigan,26081,355,16 +2020-04-16,Kent,Michigan,26081,386,17 +2020-04-17,Kent,Michigan,26081,431,20 +2020-04-18,Kent,Michigan,26081,461,23 +2020-04-19,Kent,Michigan,26081,504,25 +2020-04-20,Kent,Michigan,26081,551,24 +2020-04-21,Kent,Michigan,26081,628,25 +2020-04-22,Kent,Michigan,26081,759,25 +2020-04-23,Kent,Michigan,26081,817,27 +2020-04-24,Kent,Michigan,26081,908,29 +2020-04-25,Kent,Michigan,26081,931,32 +2020-04-26,Kent,Michigan,26081,1033,32 +2020-04-27,Kent,Michigan,26081,1102,34 +2020-04-28,Kent,Michigan,26081,1307,33 +2020-04-29,Kent,Michigan,26081,1397,33 +2020-04-30,Kent,Michigan,26081,1482,33 +2020-05-01,Kent,Michigan,26081,1603,36 +2020-05-02,Kent,Michigan,26081,1700,36 +2020-05-03,Kent,Michigan,26081,1789,39 +2020-05-04,Kent,Michigan,26081,1857,39 +2020-05-05,Kent,Michigan,26081,1917,40 +2020-05-06,Kent,Michigan,26081,2019,40 +2020-05-07,Kent,Michigan,26081,2079,41 +2020-05-08,Kent,Michigan,26081,2138,41 +2020-05-09,Kent,Michigan,26081,2216,41 +2020-05-10,Kent,Michigan,26081,2284,41 +2020-05-11,Kent,Michigan,26081,2335,42 +2020-05-12,Kent,Michigan,26081,2420,45 +2020-05-13,Kent,Michigan,26081,2450,47 +2020-05-14,Kent,Michigan,26081,2631,48 +2020-05-15,Kent,Michigan,26081,2709,53 +2020-05-16,Kent,Michigan,26081,2770,54 +2020-05-17,Kent,Michigan,26081,2829,55 +2020-05-18,Kent,Michigan,26081,2872,56 +2020-05-19,Kent,Michigan,26081,2938,58 +2020-05-20,Kent,Michigan,26081,3040,60 +2020-05-21,Kent,Michigan,26081,3149,62 +2020-05-22,Kent,Michigan,26081,3235,65 +2020-05-23,Kent,Michigan,26081,3312,67 +2020-05-24,Kent,Michigan,26081,3363,67 +2020-05-25,Kent,Michigan,26081,3389,68 +2020-05-26,Kent,Michigan,26081,3424,72 +2020-05-27,Kent,Michigan,26081,3458,76 +2020-05-28,Kent,Michigan,26081,3544,79 +2020-05-29,Kent,Michigan,26081,3600,80 +2020-05-30,Kent,Michigan,26081,3646,84 +2020-05-31,Kent,Michigan,26081,3720,85 +2020-06-01,Kent,Michigan,26081,3753,89 +2020-06-02,Kent,Michigan,26081,3783,93 +2020-06-03,Kent,Michigan,26081,3821,93 +2020-06-04,Kent,Michigan,26081,3857,95 +2020-06-05,Kent,Michigan,26081,4136,96 +2020-06-06,Kent,Michigan,26081,4170,100 +2020-06-07,Kent,Michigan,26081,4196,101 +2020-06-08,Kent,Michigan,26081,4209,104 +2020-06-09,Kent,Michigan,26081,4231,107 +2020-06-10,Kent,Michigan,26081,4267,108 +2020-06-11,Kent,Michigan,26081,4297,112 +2020-06-12,Kent,Michigan,26081,4426,114 +2020-06-13,Kent,Michigan,26081,4433,114 +2020-06-14,Kent,Michigan,26081,4467,116 +2020-06-15,Kent,Michigan,26081,4469,116 +2020-06-16,Kent,Michigan,26081,4477,116 +2020-06-17,Kent,Michigan,26081,4497,116 +2020-06-18,Kent,Michigan,26081,4532,118 +2020-06-19,Kent,Michigan,26081,4557,122 +2020-06-20,Kent,Michigan,26081,4581,123 +2020-06-21,Kent,Michigan,26081,4596,124 +2020-06-22,Kent,Michigan,26081,4609,124 +2020-06-23,Kent,Michigan,26081,4634,128 +2020-06-24,Kent,Michigan,26081,4672,129 +2020-06-25,Kent,Michigan,26081,4723,130 +2020-06-26,Kent,Michigan,26081,4783,130 +2020-06-27,Kent,Michigan,26081,4822,132 +2020-06-28,Kent,Michigan,26081,4855,132 +2020-06-29,Kent,Michigan,26081,4868,132 +2020-06-30,Kent,Michigan,26081,4906,134 +2020-07-01,Kent,Michigan,26081,4951,134 +2020-07-02,Kent,Michigan,26081,5070,135 +2020-07-03,Kent,Michigan,26081,5165,136 +2020-07-04,Kent,Michigan,26081,5226,136 +2020-07-05,Kent,Michigan,26081,5272,136 +2020-07-06,Kent,Michigan,26081,5308,136 +2020-07-07,Kent,Michigan,26081,5386,139 +2020-07-08,Kent,Michigan,26081,5462,139 +2020-07-09,Kent,Michigan,26081,5581,139 +2020-06-10,Keweenaw,Michigan,26083,1,0 +2020-06-11,Keweenaw,Michigan,26083,1,0 +2020-06-12,Keweenaw,Michigan,26083,1,0 +2020-06-13,Keweenaw,Michigan,26083,1,0 +2020-06-14,Keweenaw,Michigan,26083,1,0 +2020-06-15,Keweenaw,Michigan,26083,1,0 +2020-06-16,Keweenaw,Michigan,26083,1,0 +2020-06-17,Keweenaw,Michigan,26083,1,0 +2020-06-18,Keweenaw,Michigan,26083,1,0 +2020-06-19,Keweenaw,Michigan,26083,1,0 +2020-06-20,Keweenaw,Michigan,26083,1,0 +2020-06-21,Keweenaw,Michigan,26083,1,0 +2020-06-22,Keweenaw,Michigan,26083,1,0 +2020-06-23,Keweenaw,Michigan,26083,1,0 +2020-06-24,Keweenaw,Michigan,26083,1,0 +2020-06-25,Keweenaw,Michigan,26083,1,0 +2020-06-26,Keweenaw,Michigan,26083,1,0 +2020-06-27,Keweenaw,Michigan,26083,1,0 +2020-06-28,Keweenaw,Michigan,26083,1,0 +2020-06-29,Keweenaw,Michigan,26083,1,0 +2020-06-30,Keweenaw,Michigan,26083,1,0 +2020-07-01,Keweenaw,Michigan,26083,1,0 +2020-07-02,Keweenaw,Michigan,26083,1,0 +2020-07-03,Keweenaw,Michigan,26083,1,0 +2020-07-04,Keweenaw,Michigan,26083,1,0 +2020-07-05,Keweenaw,Michigan,26083,1,0 +2020-07-06,Keweenaw,Michigan,26083,1,0 +2020-07-07,Keweenaw,Michigan,26083,1,0 +2020-07-08,Keweenaw,Michigan,26083,1,0 +2020-07-09,Keweenaw,Michigan,26083,1,0 +2020-04-11,Lake,Michigan,26085,1,0 +2020-04-12,Lake,Michigan,26085,1,0 +2020-04-13,Lake,Michigan,26085,2,0 +2020-04-14,Lake,Michigan,26085,2,0 +2020-04-15,Lake,Michigan,26085,2,0 +2020-04-16,Lake,Michigan,26085,2,0 +2020-04-17,Lake,Michigan,26085,2,0 +2020-04-18,Lake,Michigan,26085,2,0 +2020-04-19,Lake,Michigan,26085,2,0 +2020-04-20,Lake,Michigan,26085,2,0 +2020-04-21,Lake,Michigan,26085,2,0 +2020-04-22,Lake,Michigan,26085,2,0 +2020-04-23,Lake,Michigan,26085,2,0 +2020-04-24,Lake,Michigan,26085,2,0 +2020-04-25,Lake,Michigan,26085,2,0 +2020-04-26,Lake,Michigan,26085,2,0 +2020-04-27,Lake,Michigan,26085,2,0 +2020-04-28,Lake,Michigan,26085,2,0 +2020-04-29,Lake,Michigan,26085,2,0 +2020-04-30,Lake,Michigan,26085,2,0 +2020-05-01,Lake,Michigan,26085,2,0 +2020-05-02,Lake,Michigan,26085,2,0 +2020-05-03,Lake,Michigan,26085,2,0 +2020-05-04,Lake,Michigan,26085,2,0 +2020-05-05,Lake,Michigan,26085,2,0 +2020-05-06,Lake,Michigan,26085,2,0 +2020-05-07,Lake,Michigan,26085,2,0 +2020-05-08,Lake,Michigan,26085,2,0 +2020-05-09,Lake,Michigan,26085,2,0 +2020-05-10,Lake,Michigan,26085,2,0 +2020-05-11,Lake,Michigan,26085,2,0 +2020-05-12,Lake,Michigan,26085,2,0 +2020-05-13,Lake,Michigan,26085,2,0 +2020-05-14,Lake,Michigan,26085,2,0 +2020-05-15,Lake,Michigan,26085,2,0 +2020-05-16,Lake,Michigan,26085,3,0 +2020-05-17,Lake,Michigan,26085,3,0 +2020-05-18,Lake,Michigan,26085,3,0 +2020-05-19,Lake,Michigan,26085,3,0 +2020-05-20,Lake,Michigan,26085,3,0 +2020-05-21,Lake,Michigan,26085,3,0 +2020-05-22,Lake,Michigan,26085,5,0 +2020-05-23,Lake,Michigan,26085,5,0 +2020-05-24,Lake,Michigan,26085,5,0 +2020-05-25,Lake,Michigan,26085,6,0 +2020-05-26,Lake,Michigan,26085,5,0 +2020-05-27,Lake,Michigan,26085,5,0 +2020-05-28,Lake,Michigan,26085,5,0 +2020-05-29,Lake,Michigan,26085,7,0 +2020-05-30,Lake,Michigan,26085,5,0 +2020-05-31,Lake,Michigan,26085,6,0 +2020-06-01,Lake,Michigan,26085,7,0 +2020-06-02,Lake,Michigan,26085,7,0 +2020-06-03,Lake,Michigan,26085,7,0 +2020-06-04,Lake,Michigan,26085,7,0 +2020-06-05,Lake,Michigan,26085,7,0 +2020-06-06,Lake,Michigan,26085,7,0 +2020-06-07,Lake,Michigan,26085,7,0 +2020-06-08,Lake,Michigan,26085,7,0 +2020-06-09,Lake,Michigan,26085,7,0 +2020-06-10,Lake,Michigan,26085,7,0 +2020-06-11,Lake,Michigan,26085,7,0 +2020-06-12,Lake,Michigan,26085,7,0 +2020-06-13,Lake,Michigan,26085,7,0 +2020-06-14,Lake,Michigan,26085,7,0 +2020-06-15,Lake,Michigan,26085,7,0 +2020-06-16,Lake,Michigan,26085,7,0 +2020-06-17,Lake,Michigan,26085,7,0 +2020-06-18,Lake,Michigan,26085,7,0 +2020-06-19,Lake,Michigan,26085,7,0 +2020-06-20,Lake,Michigan,26085,7,0 +2020-06-21,Lake,Michigan,26085,7,0 +2020-06-22,Lake,Michigan,26085,7,0 +2020-06-23,Lake,Michigan,26085,7,0 +2020-06-24,Lake,Michigan,26085,7,0 +2020-06-25,Lake,Michigan,26085,7,0 +2020-06-26,Lake,Michigan,26085,7,0 +2020-06-27,Lake,Michigan,26085,7,0 +2020-06-28,Lake,Michigan,26085,7,0 +2020-06-29,Lake,Michigan,26085,7,0 +2020-06-30,Lake,Michigan,26085,8,0 +2020-07-01,Lake,Michigan,26085,8,0 +2020-07-02,Lake,Michigan,26085,9,0 +2020-07-03,Lake,Michigan,26085,9,0 +2020-07-04,Lake,Michigan,26085,10,0 +2020-07-05,Lake,Michigan,26085,12,0 +2020-07-06,Lake,Michigan,26085,12,0 +2020-07-07,Lake,Michigan,26085,12,0 +2020-07-08,Lake,Michigan,26085,11,0 +2020-07-09,Lake,Michigan,26085,12,0 +2020-03-24,Lapeer,Michigan,26087,1,0 +2020-03-25,Lapeer,Michigan,26087,1,0 +2020-03-26,Lapeer,Michigan,26087,3,0 +2020-03-27,Lapeer,Michigan,26087,4,0 +2020-03-28,Lapeer,Michigan,26087,4,0 +2020-03-29,Lapeer,Michigan,26087,4,0 +2020-03-30,Lapeer,Michigan,26087,6,0 +2020-03-31,Lapeer,Michigan,26087,8,0 +2020-04-01,Lapeer,Michigan,26087,8,0 +2020-04-02,Lapeer,Michigan,26087,21,0 +2020-04-03,Lapeer,Michigan,26087,22,0 +2020-04-04,Lapeer,Michigan,26087,27,0 +2020-04-05,Lapeer,Michigan,26087,45,0 +2020-04-06,Lapeer,Michigan,26087,49,0 +2020-04-07,Lapeer,Michigan,26087,56,3 +2020-04-08,Lapeer,Michigan,26087,64,5 +2020-04-09,Lapeer,Michigan,26087,77,5 +2020-04-10,Lapeer,Michigan,26087,87,6 +2020-04-11,Lapeer,Michigan,26087,95,6 +2020-04-12,Lapeer,Michigan,26087,101,6 +2020-04-13,Lapeer,Michigan,26087,106,6 +2020-04-14,Lapeer,Michigan,26087,117,9 +2020-04-15,Lapeer,Michigan,26087,125,10 +2020-04-16,Lapeer,Michigan,26087,137,13 +2020-04-17,Lapeer,Michigan,26087,146,13 +2020-04-18,Lapeer,Michigan,26087,147,18 +2020-04-19,Lapeer,Michigan,26087,153,18 +2020-04-20,Lapeer,Michigan,26087,155,20 +2020-04-21,Lapeer,Michigan,26087,158,22 +2020-04-22,Lapeer,Michigan,26087,172,23 +2020-04-23,Lapeer,Michigan,26087,177,23 +2020-04-24,Lapeer,Michigan,26087,181,23 +2020-04-25,Lapeer,Michigan,26087,181,23 +2020-04-26,Lapeer,Michigan,26087,188,24 +2020-04-27,Lapeer,Michigan,26087,193,24 +2020-04-28,Lapeer,Michigan,26087,195,25 +2020-04-29,Lapeer,Michigan,26087,196,26 +2020-04-30,Lapeer,Michigan,26087,204,25 +2020-05-01,Lapeer,Michigan,26087,214,26 +2020-05-02,Lapeer,Michigan,26087,214,27 +2020-05-03,Lapeer,Michigan,26087,221,27 +2020-05-04,Lapeer,Michigan,26087,223,28 +2020-05-05,Lapeer,Michigan,26087,225,28 +2020-05-06,Lapeer,Michigan,26087,226,30 +2020-05-07,Lapeer,Michigan,26087,229,30 +2020-05-08,Lapeer,Michigan,26087,229,30 +2020-05-09,Lapeer,Michigan,26087,230,30 +2020-05-10,Lapeer,Michigan,26087,231,30 +2020-05-11,Lapeer,Michigan,26087,232,31 +2020-05-12,Lapeer,Michigan,26087,230,31 +2020-05-13,Lapeer,Michigan,26087,233,32 +2020-05-14,Lapeer,Michigan,26087,234,32 +2020-05-15,Lapeer,Michigan,26087,237,33 +2020-05-16,Lapeer,Michigan,26087,238,33 +2020-05-17,Lapeer,Michigan,26087,239,33 +2020-05-18,Lapeer,Michigan,26087,446,33 +2020-05-19,Lapeer,Michigan,26087,463,33 +2020-05-20,Lapeer,Michigan,26087,465,33 +2020-05-21,Lapeer,Michigan,26087,465,33 +2020-05-22,Lapeer,Michigan,26087,466,33 +2020-05-23,Lapeer,Michigan,26087,470,33 +2020-05-24,Lapeer,Michigan,26087,479,33 +2020-05-25,Lapeer,Michigan,26087,477,33 +2020-05-26,Lapeer,Michigan,26087,477,33 +2020-05-27,Lapeer,Michigan,26087,477,36 +2020-05-28,Lapeer,Michigan,26087,477,36 +2020-05-29,Lapeer,Michigan,26087,477,36 +2020-05-30,Lapeer,Michigan,26087,478,36 +2020-05-31,Lapeer,Michigan,26087,479,37 +2020-06-01,Lapeer,Michigan,26087,489,37 +2020-06-02,Lapeer,Michigan,26087,492,37 +2020-06-03,Lapeer,Michigan,26087,492,37 +2020-06-04,Lapeer,Michigan,26087,494,37 +2020-06-05,Lapeer,Michigan,26087,511,38 +2020-06-06,Lapeer,Michigan,26087,512,38 +2020-06-07,Lapeer,Michigan,26087,514,38 +2020-06-08,Lapeer,Michigan,26087,514,38 +2020-06-09,Lapeer,Michigan,26087,517,38 +2020-06-10,Lapeer,Michigan,26087,516,39 +2020-06-11,Lapeer,Michigan,26087,517,38 +2020-06-12,Lapeer,Michigan,26087,517,38 +2020-06-13,Lapeer,Michigan,26087,519,38 +2020-06-14,Lapeer,Michigan,26087,520,38 +2020-06-15,Lapeer,Michigan,26087,520,38 +2020-06-16,Lapeer,Michigan,26087,521,38 +2020-06-17,Lapeer,Michigan,26087,522,38 +2020-06-18,Lapeer,Michigan,26087,533,38 +2020-06-19,Lapeer,Michigan,26087,534,38 +2020-06-20,Lapeer,Michigan,26087,535,38 +2020-06-21,Lapeer,Michigan,26087,535,38 +2020-06-22,Lapeer,Michigan,26087,557,38 +2020-06-23,Lapeer,Michigan,26087,559,38 +2020-06-24,Lapeer,Michigan,26087,565,38 +2020-06-25,Lapeer,Michigan,26087,567,38 +2020-06-26,Lapeer,Michigan,26087,585,38 +2020-06-27,Lapeer,Michigan,26087,595,38 +2020-06-28,Lapeer,Michigan,26087,595,38 +2020-06-29,Lapeer,Michigan,26087,598,38 +2020-06-30,Lapeer,Michigan,26087,599,38 +2020-07-01,Lapeer,Michigan,26087,602,38 +2020-07-02,Lapeer,Michigan,26087,607,38 +2020-07-03,Lapeer,Michigan,26087,608,38 +2020-07-04,Lapeer,Michigan,26087,611,38 +2020-07-05,Lapeer,Michigan,26087,611,38 +2020-07-06,Lapeer,Michigan,26087,615,38 +2020-07-07,Lapeer,Michigan,26087,615,38 +2020-07-08,Lapeer,Michigan,26087,616,38 +2020-07-09,Lapeer,Michigan,26087,620,38 +2020-03-13,Leelanau,Michigan,26089,1,0 +2020-03-14,Leelanau,Michigan,26089,1,0 +2020-03-15,Leelanau,Michigan,26089,1,0 +2020-03-16,Leelanau,Michigan,26089,1,0 +2020-03-17,Leelanau,Michigan,26089,1,0 +2020-03-18,Leelanau,Michigan,26089,1,0 +2020-03-19,Leelanau,Michigan,26089,1,0 +2020-03-20,Leelanau,Michigan,26089,1,0 +2020-03-21,Leelanau,Michigan,26089,1,0 +2020-03-22,Leelanau,Michigan,26089,1,0 +2020-03-23,Leelanau,Michigan,26089,1,0 +2020-03-24,Leelanau,Michigan,26089,1,0 +2020-03-25,Leelanau,Michigan,26089,1,0 +2020-03-26,Leelanau,Michigan,26089,1,0 +2020-03-27,Leelanau,Michigan,26089,1,0 +2020-03-28,Leelanau,Michigan,26089,1,0 +2020-03-29,Leelanau,Michigan,26089,1,0 +2020-03-30,Leelanau,Michigan,26089,1,0 +2020-03-31,Leelanau,Michigan,26089,1,0 +2020-04-01,Leelanau,Michigan,26089,1,0 +2020-04-02,Leelanau,Michigan,26089,1,0 +2020-04-03,Leelanau,Michigan,26089,1,0 +2020-04-04,Leelanau,Michigan,26089,1,0 +2020-04-05,Leelanau,Michigan,26089,1,0 +2020-04-06,Leelanau,Michigan,26089,2,0 +2020-04-07,Leelanau,Michigan,26089,3,0 +2020-04-08,Leelanau,Michigan,26089,4,0 +2020-04-09,Leelanau,Michigan,26089,4,0 +2020-04-10,Leelanau,Michigan,26089,4,0 +2020-04-11,Leelanau,Michigan,26089,4,0 +2020-04-12,Leelanau,Michigan,26089,4,0 +2020-04-13,Leelanau,Michigan,26089,4,0 +2020-04-14,Leelanau,Michigan,26089,4,0 +2020-04-15,Leelanau,Michigan,26089,5,0 +2020-04-16,Leelanau,Michigan,26089,6,0 +2020-04-17,Leelanau,Michigan,26089,7,0 +2020-04-18,Leelanau,Michigan,26089,7,0 +2020-04-19,Leelanau,Michigan,26089,8,0 +2020-04-20,Leelanau,Michigan,26089,7,0 +2020-04-21,Leelanau,Michigan,26089,7,0 +2020-04-22,Leelanau,Michigan,26089,8,0 +2020-04-23,Leelanau,Michigan,26089,8,0 +2020-04-24,Leelanau,Michigan,26089,8,0 +2020-04-25,Leelanau,Michigan,26089,9,0 +2020-04-26,Leelanau,Michigan,26089,9,0 +2020-04-27,Leelanau,Michigan,26089,9,0 +2020-04-28,Leelanau,Michigan,26089,9,0 +2020-04-29,Leelanau,Michigan,26089,10,0 +2020-04-30,Leelanau,Michigan,26089,9,0 +2020-05-01,Leelanau,Michigan,26089,9,0 +2020-05-02,Leelanau,Michigan,26089,9,0 +2020-05-03,Leelanau,Michigan,26089,9,0 +2020-05-04,Leelanau,Michigan,26089,9,0 +2020-05-05,Leelanau,Michigan,26089,9,0 +2020-05-06,Leelanau,Michigan,26089,9,0 +2020-05-07,Leelanau,Michigan,26089,9,0 +2020-05-08,Leelanau,Michigan,26089,9,0 +2020-05-09,Leelanau,Michigan,26089,9,0 +2020-05-10,Leelanau,Michigan,26089,9,0 +2020-05-11,Leelanau,Michigan,26089,9,0 +2020-05-12,Leelanau,Michigan,26089,9,0 +2020-05-13,Leelanau,Michigan,26089,9,0 +2020-05-14,Leelanau,Michigan,26089,10,0 +2020-05-15,Leelanau,Michigan,26089,10,0 +2020-05-16,Leelanau,Michigan,26089,10,0 +2020-05-17,Leelanau,Michigan,26089,10,0 +2020-05-18,Leelanau,Michigan,26089,10,0 +2020-05-19,Leelanau,Michigan,26089,11,0 +2020-05-20,Leelanau,Michigan,26089,11,0 +2020-05-21,Leelanau,Michigan,26089,11,0 +2020-05-22,Leelanau,Michigan,26089,11,0 +2020-05-23,Leelanau,Michigan,26089,11,0 +2020-05-24,Leelanau,Michigan,26089,11,0 +2020-05-25,Leelanau,Michigan,26089,11,0 +2020-05-26,Leelanau,Michigan,26089,11,0 +2020-05-27,Leelanau,Michigan,26089,11,0 +2020-05-28,Leelanau,Michigan,26089,11,0 +2020-05-29,Leelanau,Michigan,26089,11,0 +2020-05-30,Leelanau,Michigan,26089,11,0 +2020-05-31,Leelanau,Michigan,26089,11,0 +2020-06-01,Leelanau,Michigan,26089,11,0 +2020-06-02,Leelanau,Michigan,26089,11,0 +2020-06-03,Leelanau,Michigan,26089,11,0 +2020-06-04,Leelanau,Michigan,26089,11,0 +2020-06-05,Leelanau,Michigan,26089,11,0 +2020-06-06,Leelanau,Michigan,26089,11,0 +2020-06-07,Leelanau,Michigan,26089,12,0 +2020-06-08,Leelanau,Michigan,26089,11,0 +2020-06-09,Leelanau,Michigan,26089,12,0 +2020-06-10,Leelanau,Michigan,26089,12,0 +2020-06-11,Leelanau,Michigan,26089,12,0 +2020-06-12,Leelanau,Michigan,26089,12,0 +2020-06-13,Leelanau,Michigan,26089,12,0 +2020-06-14,Leelanau,Michigan,26089,12,0 +2020-06-15,Leelanau,Michigan,26089,12,0 +2020-06-16,Leelanau,Michigan,26089,12,0 +2020-06-17,Leelanau,Michigan,26089,12,0 +2020-06-18,Leelanau,Michigan,26089,12,0 +2020-06-19,Leelanau,Michigan,26089,12,0 +2020-06-20,Leelanau,Michigan,26089,12,0 +2020-06-21,Leelanau,Michigan,26089,12,0 +2020-06-22,Leelanau,Michigan,26089,12,0 +2020-06-23,Leelanau,Michigan,26089,12,0 +2020-06-24,Leelanau,Michigan,26089,12,0 +2020-06-25,Leelanau,Michigan,26089,20,0 +2020-06-26,Leelanau,Michigan,26089,20,0 +2020-06-27,Leelanau,Michigan,26089,16,0 +2020-06-28,Leelanau,Michigan,26089,16,0 +2020-06-29,Leelanau,Michigan,26089,16,0 +2020-06-30,Leelanau,Michigan,26089,17,0 +2020-07-01,Leelanau,Michigan,26089,19,0 +2020-07-02,Leelanau,Michigan,26089,19,0 +2020-07-03,Leelanau,Michigan,26089,19,0 +2020-07-04,Leelanau,Michigan,26089,24,0 +2020-07-05,Leelanau,Michigan,26089,26,0 +2020-07-06,Leelanau,Michigan,26089,27,0 +2020-07-07,Leelanau,Michigan,26089,27,0 +2020-07-08,Leelanau,Michigan,26089,30,0 +2020-07-09,Leelanau,Michigan,26089,32,0 +2020-03-25,Lenawee,Michigan,26091,1,0 +2020-03-26,Lenawee,Michigan,26091,5,0 +2020-03-27,Lenawee,Michigan,26091,8,0 +2020-03-28,Lenawee,Michigan,26091,11,0 +2020-03-29,Lenawee,Michigan,26091,15,0 +2020-03-30,Lenawee,Michigan,26091,15,0 +2020-03-31,Lenawee,Michigan,26091,18,0 +2020-04-01,Lenawee,Michigan,26091,22,0 +2020-04-02,Lenawee,Michigan,26091,24,0 +2020-04-03,Lenawee,Michigan,26091,24,0 +2020-04-04,Lenawee,Michigan,26091,27,0 +2020-04-05,Lenawee,Michigan,26091,31,0 +2020-04-06,Lenawee,Michigan,26091,32,0 +2020-04-07,Lenawee,Michigan,26091,32,0 +2020-04-08,Lenawee,Michigan,26091,36,0 +2020-04-09,Lenawee,Michigan,26091,39,0 +2020-04-10,Lenawee,Michigan,26091,39,0 +2020-04-11,Lenawee,Michigan,26091,43,0 +2020-04-12,Lenawee,Michigan,26091,47,0 +2020-04-13,Lenawee,Michigan,26091,50,0 +2020-04-14,Lenawee,Michigan,26091,53,0 +2020-04-15,Lenawee,Michigan,26091,64,0 +2020-04-16,Lenawee,Michigan,26091,67,0 +2020-04-17,Lenawee,Michigan,26091,67,0 +2020-04-18,Lenawee,Michigan,26091,70,0 +2020-04-19,Lenawee,Michigan,26091,74,0 +2020-04-20,Lenawee,Michigan,26091,75,0 +2020-04-21,Lenawee,Michigan,26091,81,0 +2020-04-22,Lenawee,Michigan,26091,87,0 +2020-04-23,Lenawee,Michigan,26091,90,0 +2020-04-24,Lenawee,Michigan,26091,90,0 +2020-04-25,Lenawee,Michigan,26091,92,0 +2020-04-26,Lenawee,Michigan,26091,94,0 +2020-04-27,Lenawee,Michigan,26091,99,1 +2020-04-28,Lenawee,Michigan,26091,103,1 +2020-04-29,Lenawee,Michigan,26091,108,1 +2020-04-30,Lenawee,Michigan,26091,109,2 +2020-05-01,Lenawee,Michigan,26091,120,2 +2020-05-02,Lenawee,Michigan,26091,127,2 +2020-05-03,Lenawee,Michigan,26091,136,2 +2020-05-04,Lenawee,Michigan,26091,160,2 +2020-05-05,Lenawee,Michigan,26091,162,2 +2020-05-06,Lenawee,Michigan,26091,166,4 +2020-05-07,Lenawee,Michigan,26091,193,4 +2020-05-08,Lenawee,Michigan,26091,203,4 +2020-05-09,Lenawee,Michigan,26091,205,4 +2020-05-10,Lenawee,Michigan,26091,212,4 +2020-05-11,Lenawee,Michigan,26091,213,4 +2020-05-12,Lenawee,Michigan,26091,214,4 +2020-05-13,Lenawee,Michigan,26091,227,4 +2020-05-14,Lenawee,Michigan,26091,234,5 +2020-05-15,Lenawee,Michigan,26091,234,5 +2020-05-16,Lenawee,Michigan,26091,238,5 +2020-05-17,Lenawee,Michigan,26091,240,5 +2020-05-18,Lenawee,Michigan,26091,852,6 +2020-05-19,Lenawee,Michigan,26091,856,6 +2020-05-20,Lenawee,Michigan,26091,856,6 +2020-05-21,Lenawee,Michigan,26091,858,6 +2020-05-22,Lenawee,Michigan,26091,860,6 +2020-05-23,Lenawee,Michigan,26091,861,6 +2020-05-24,Lenawee,Michigan,26091,873,6 +2020-05-25,Lenawee,Michigan,26091,873,6 +2020-05-26,Lenawee,Michigan,26091,873,6 +2020-05-27,Lenawee,Michigan,26091,874,7 +2020-05-28,Lenawee,Michigan,26091,877,7 +2020-05-29,Lenawee,Michigan,26091,878,7 +2020-05-30,Lenawee,Michigan,26091,878,7 +2020-05-31,Lenawee,Michigan,26091,880,8 +2020-06-01,Lenawee,Michigan,26091,915,8 +2020-06-02,Lenawee,Michigan,26091,915,8 +2020-06-03,Lenawee,Michigan,26091,936,8 +2020-06-04,Lenawee,Michigan,26091,916,9 +2020-06-05,Lenawee,Michigan,26091,917,9 +2020-06-06,Lenawee,Michigan,26091,919,9 +2020-06-07,Lenawee,Michigan,26091,919,9 +2020-06-08,Lenawee,Michigan,26091,919,9 +2020-06-09,Lenawee,Michigan,26091,919,10 +2020-06-10,Lenawee,Michigan,26091,919,10 +2020-06-11,Lenawee,Michigan,26091,921,10 +2020-06-12,Lenawee,Michigan,26091,923,10 +2020-06-13,Lenawee,Michigan,26091,923,10 +2020-06-14,Lenawee,Michigan,26091,924,10 +2020-06-15,Lenawee,Michigan,26091,926,10 +2020-06-16,Lenawee,Michigan,26091,929,10 +2020-06-17,Lenawee,Michigan,26091,927,10 +2020-06-18,Lenawee,Michigan,26091,927,10 +2020-06-19,Lenawee,Michigan,26091,927,10 +2020-06-20,Lenawee,Michigan,26091,926,10 +2020-06-21,Lenawee,Michigan,26091,927,10 +2020-06-22,Lenawee,Michigan,26091,927,10 +2020-06-23,Lenawee,Michigan,26091,926,10 +2020-06-24,Lenawee,Michigan,26091,928,10 +2020-06-25,Lenawee,Michigan,26091,933,10 +2020-06-26,Lenawee,Michigan,26091,936,10 +2020-06-27,Lenawee,Michigan,26091,938,10 +2020-06-28,Lenawee,Michigan,26091,939,10 +2020-06-29,Lenawee,Michigan,26091,943,10 +2020-06-30,Lenawee,Michigan,26091,949,10 +2020-07-01,Lenawee,Michigan,26091,950,10 +2020-07-02,Lenawee,Michigan,26091,956,10 +2020-07-03,Lenawee,Michigan,26091,964,10 +2020-07-04,Lenawee,Michigan,26091,966,10 +2020-07-05,Lenawee,Michigan,26091,968,10 +2020-07-06,Lenawee,Michigan,26091,968,11 +2020-07-07,Lenawee,Michigan,26091,969,12 +2020-07-08,Lenawee,Michigan,26091,982,12 +2020-07-09,Lenawee,Michigan,26091,988,14 +2020-03-19,Livingston,Michigan,26093,3,0 +2020-03-20,Livingston,Michigan,26093,3,0 +2020-03-21,Livingston,Michigan,26093,6,0 +2020-03-22,Livingston,Michigan,26093,8,0 +2020-03-23,Livingston,Michigan,26093,9,0 +2020-03-24,Livingston,Michigan,26093,13,0 +2020-03-25,Livingston,Michigan,26093,16,1 +2020-03-26,Livingston,Michigan,26093,21,1 +2020-03-27,Livingston,Michigan,26093,31,1 +2020-03-28,Livingston,Michigan,26093,41,2 +2020-03-29,Livingston,Michigan,26093,59,2 +2020-03-30,Livingston,Michigan,26093,64,2 +2020-03-31,Livingston,Michigan,26093,80,2 +2020-04-01,Livingston,Michigan,26093,101,2 +2020-04-02,Livingston,Michigan,26093,113,2 +2020-04-03,Livingston,Michigan,26093,121,2 +2020-04-04,Livingston,Michigan,26093,129,2 +2020-04-05,Livingston,Michigan,26093,135,2 +2020-04-06,Livingston,Michigan,26093,143,2 +2020-04-07,Livingston,Michigan,26093,155,2 +2020-04-08,Livingston,Michigan,26093,174,2 +2020-04-09,Livingston,Michigan,26093,181,2 +2020-04-10,Livingston,Michigan,26093,196,3 +2020-04-11,Livingston,Michigan,26093,206,3 +2020-04-12,Livingston,Michigan,26093,209,4 +2020-04-13,Livingston,Michigan,26093,225,5 +2020-04-14,Livingston,Michigan,26093,238,6 +2020-04-15,Livingston,Michigan,26093,260,7 +2020-04-16,Livingston,Michigan,26093,269,9 +2020-04-17,Livingston,Michigan,26093,275,9 +2020-04-18,Livingston,Michigan,26093,282,10 +2020-04-19,Livingston,Michigan,26093,285,11 +2020-04-20,Livingston,Michigan,26093,294,11 +2020-04-21,Livingston,Michigan,26093,307,11 +2020-04-22,Livingston,Michigan,26093,314,11 +2020-04-23,Livingston,Michigan,26093,318,11 +2020-04-24,Livingston,Michigan,26093,319,12 +2020-04-25,Livingston,Michigan,26093,322,15 +2020-04-26,Livingston,Michigan,26093,322,15 +2020-04-27,Livingston,Michigan,26093,327,15 +2020-04-28,Livingston,Michigan,26093,334,19 +2020-04-29,Livingston,Michigan,26093,343,19 +2020-04-30,Livingston,Michigan,26093,345,20 +2020-05-01,Livingston,Michigan,26093,351,20 +2020-05-02,Livingston,Michigan,26093,360,20 +2020-05-03,Livingston,Michigan,26093,369,20 +2020-05-04,Livingston,Michigan,26093,364,21 +2020-05-05,Livingston,Michigan,26093,370,21 +2020-05-06,Livingston,Michigan,26093,374,21 +2020-05-07,Livingston,Michigan,26093,376,21 +2020-05-08,Livingston,Michigan,26093,382,21 +2020-05-09,Livingston,Michigan,26093,383,23 +2020-05-10,Livingston,Michigan,26093,384,23 +2020-05-11,Livingston,Michigan,26093,384,23 +2020-05-12,Livingston,Michigan,26093,385,23 +2020-05-13,Livingston,Michigan,26093,386,24 +2020-05-14,Livingston,Michigan,26093,388,24 +2020-05-15,Livingston,Michigan,26093,389,26 +2020-05-16,Livingston,Michigan,26093,391,26 +2020-05-17,Livingston,Michigan,26093,393,26 +2020-05-18,Livingston,Michigan,26093,394,26 +2020-05-19,Livingston,Michigan,26093,393,27 +2020-05-20,Livingston,Michigan,26093,395,27 +2020-05-21,Livingston,Michigan,26093,397,27 +2020-05-22,Livingston,Michigan,26093,398,27 +2020-05-23,Livingston,Michigan,26093,398,27 +2020-05-24,Livingston,Michigan,26093,399,27 +2020-05-25,Livingston,Michigan,26093,399,27 +2020-05-26,Livingston,Michigan,26093,400,27 +2020-05-27,Livingston,Michigan,26093,399,27 +2020-05-28,Livingston,Michigan,26093,399,27 +2020-05-29,Livingston,Michigan,26093,403,27 +2020-05-30,Livingston,Michigan,26093,403,27 +2020-05-31,Livingston,Michigan,26093,403,27 +2020-06-01,Livingston,Michigan,26093,514,27 +2020-06-02,Livingston,Michigan,26093,531,27 +2020-06-03,Livingston,Michigan,26093,540,27 +2020-06-04,Livingston,Michigan,26093,547,27 +2020-06-05,Livingston,Michigan,26093,555,28 +2020-06-06,Livingston,Michigan,26093,555,29 +2020-06-07,Livingston,Michigan,26093,555,29 +2020-06-08,Livingston,Michigan,26093,563,29 +2020-06-09,Livingston,Michigan,26093,566,29 +2020-06-10,Livingston,Michigan,26093,567,29 +2020-06-11,Livingston,Michigan,26093,567,29 +2020-06-12,Livingston,Michigan,26093,568,29 +2020-06-13,Livingston,Michigan,26093,568,29 +2020-06-14,Livingston,Michigan,26093,568,29 +2020-06-15,Livingston,Michigan,26093,570,29 +2020-06-16,Livingston,Michigan,26093,572,29 +2020-06-17,Livingston,Michigan,26093,574,29 +2020-06-18,Livingston,Michigan,26093,576,29 +2020-06-19,Livingston,Michigan,26093,582,29 +2020-06-20,Livingston,Michigan,26093,582,29 +2020-06-21,Livingston,Michigan,26093,582,29 +2020-06-22,Livingston,Michigan,26093,591,29 +2020-06-23,Livingston,Michigan,26093,594,29 +2020-06-24,Livingston,Michigan,26093,596,29 +2020-06-25,Livingston,Michigan,26093,599,29 +2020-06-26,Livingston,Michigan,26093,602,29 +2020-06-27,Livingston,Michigan,26093,602,29 +2020-06-28,Livingston,Michigan,26093,602,29 +2020-06-29,Livingston,Michigan,26093,617,29 +2020-06-30,Livingston,Michigan,26093,620,29 +2020-07-01,Livingston,Michigan,26093,628,29 +2020-07-02,Livingston,Michigan,26093,633,29 +2020-07-03,Livingston,Michigan,26093,632,29 +2020-07-04,Livingston,Michigan,26093,633,29 +2020-07-05,Livingston,Michigan,26093,633,29 +2020-07-06,Livingston,Michigan,26093,644,29 +2020-07-07,Livingston,Michigan,26093,649,29 +2020-07-08,Livingston,Michigan,26093,652,29 +2020-07-09,Livingston,Michigan,26093,656,29 +2020-04-03,Luce,Michigan,26095,1,0 +2020-04-04,Luce,Michigan,26095,1,0 +2020-04-05,Luce,Michigan,26095,1,0 +2020-04-06,Luce,Michigan,26095,1,0 +2020-04-07,Luce,Michigan,26095,1,0 +2020-04-08,Luce,Michigan,26095,1,0 +2020-04-09,Luce,Michigan,26095,1,0 +2020-04-10,Luce,Michigan,26095,1,0 +2020-04-11,Luce,Michigan,26095,1,0 +2020-04-12,Luce,Michigan,26095,1,0 +2020-04-13,Luce,Michigan,26095,1,0 +2020-04-14,Luce,Michigan,26095,1,0 +2020-04-15,Luce,Michigan,26095,1,0 +2020-04-16,Luce,Michigan,26095,1,0 +2020-04-17,Luce,Michigan,26095,1,0 +2020-04-18,Luce,Michigan,26095,1,0 +2020-04-19,Luce,Michigan,26095,1,0 +2020-04-20,Luce,Michigan,26095,2,0 +2020-04-21,Luce,Michigan,26095,2,0 +2020-04-22,Luce,Michigan,26095,2,0 +2020-04-23,Luce,Michigan,26095,2,0 +2020-04-24,Luce,Michigan,26095,2,0 +2020-04-25,Luce,Michigan,26095,2,0 +2020-04-26,Luce,Michigan,26095,2,0 +2020-04-27,Luce,Michigan,26095,2,0 +2020-04-28,Luce,Michigan,26095,2,0 +2020-04-29,Luce,Michigan,26095,2,0 +2020-04-30,Luce,Michigan,26095,2,0 +2020-05-01,Luce,Michigan,26095,2,0 +2020-05-02,Luce,Michigan,26095,2,0 +2020-05-03,Luce,Michigan,26095,2,0 +2020-05-04,Luce,Michigan,26095,2,0 +2020-05-05,Luce,Michigan,26095,2,0 +2020-05-06,Luce,Michigan,26095,2,0 +2020-05-07,Luce,Michigan,26095,2,0 +2020-05-08,Luce,Michigan,26095,2,0 +2020-05-09,Luce,Michigan,26095,2,0 +2020-05-10,Luce,Michigan,26095,2,0 +2020-05-11,Luce,Michigan,26095,2,0 +2020-05-12,Luce,Michigan,26095,2,0 +2020-05-13,Luce,Michigan,26095,2,0 +2020-05-14,Luce,Michigan,26095,2,0 +2020-05-15,Luce,Michigan,26095,2,0 +2020-05-16,Luce,Michigan,26095,3,0 +2020-05-17,Luce,Michigan,26095,3,0 +2020-05-18,Luce,Michigan,26095,3,0 +2020-05-19,Luce,Michigan,26095,3,0 +2020-05-20,Luce,Michigan,26095,3,0 +2020-05-21,Luce,Michigan,26095,3,0 +2020-05-22,Luce,Michigan,26095,4,0 +2020-05-23,Luce,Michigan,26095,4,0 +2020-05-24,Luce,Michigan,26095,4,0 +2020-05-25,Luce,Michigan,26095,4,0 +2020-05-26,Luce,Michigan,26095,4,0 +2020-05-27,Luce,Michigan,26095,4,0 +2020-05-28,Luce,Michigan,26095,4,0 +2020-05-29,Luce,Michigan,26095,4,0 +2020-05-30,Luce,Michigan,26095,4,0 +2020-05-31,Luce,Michigan,26095,4,0 +2020-06-01,Luce,Michigan,26095,4,0 +2020-06-02,Luce,Michigan,26095,4,0 +2020-06-03,Luce,Michigan,26095,4,0 +2020-06-04,Luce,Michigan,26095,4,0 +2020-06-05,Luce,Michigan,26095,4,0 +2020-06-06,Luce,Michigan,26095,4,0 +2020-06-07,Luce,Michigan,26095,4,0 +2020-06-08,Luce,Michigan,26095,4,0 +2020-06-09,Luce,Michigan,26095,4,0 +2020-06-10,Luce,Michigan,26095,4,0 +2020-06-11,Luce,Michigan,26095,4,0 +2020-06-12,Luce,Michigan,26095,4,0 +2020-06-13,Luce,Michigan,26095,4,0 +2020-06-14,Luce,Michigan,26095,4,0 +2020-06-15,Luce,Michigan,26095,4,0 +2020-06-16,Luce,Michigan,26095,4,0 +2020-06-17,Luce,Michigan,26095,4,0 +2020-06-18,Luce,Michigan,26095,4,0 +2020-06-19,Luce,Michigan,26095,4,0 +2020-06-20,Luce,Michigan,26095,4,0 +2020-06-21,Luce,Michigan,26095,4,0 +2020-06-22,Luce,Michigan,26095,4,0 +2020-06-23,Luce,Michigan,26095,4,0 +2020-06-24,Luce,Michigan,26095,4,0 +2020-06-25,Luce,Michigan,26095,4,0 +2020-06-26,Luce,Michigan,26095,4,0 +2020-06-27,Luce,Michigan,26095,4,0 +2020-06-28,Luce,Michigan,26095,4,0 +2020-06-29,Luce,Michigan,26095,4,0 +2020-06-30,Luce,Michigan,26095,4,0 +2020-07-01,Luce,Michigan,26095,4,0 +2020-07-02,Luce,Michigan,26095,4,0 +2020-07-03,Luce,Michigan,26095,4,0 +2020-07-04,Luce,Michigan,26095,4,0 +2020-07-05,Luce,Michigan,26095,4,0 +2020-07-06,Luce,Michigan,26095,4,0 +2020-07-07,Luce,Michigan,26095,4,0 +2020-07-08,Luce,Michigan,26095,4,0 +2020-07-09,Luce,Michigan,26095,4,0 +2020-04-01,Mackinac,Michigan,26097,1,0 +2020-04-02,Mackinac,Michigan,26097,1,0 +2020-04-03,Mackinac,Michigan,26097,2,0 +2020-04-04,Mackinac,Michigan,26097,2,0 +2020-04-05,Mackinac,Michigan,26097,2,0 +2020-04-06,Mackinac,Michigan,26097,2,0 +2020-04-07,Mackinac,Michigan,26097,3,0 +2020-04-08,Mackinac,Michigan,26097,3,0 +2020-04-09,Mackinac,Michigan,26097,4,0 +2020-04-10,Mackinac,Michigan,26097,4,0 +2020-04-11,Mackinac,Michigan,26097,4,0 +2020-04-12,Mackinac,Michigan,26097,4,0 +2020-04-13,Mackinac,Michigan,26097,4,0 +2020-04-14,Mackinac,Michigan,26097,4,0 +2020-04-15,Mackinac,Michigan,26097,4,0 +2020-04-16,Mackinac,Michigan,26097,4,0 +2020-04-17,Mackinac,Michigan,26097,5,0 +2020-04-18,Mackinac,Michigan,26097,4,0 +2020-04-19,Mackinac,Michigan,26097,4,0 +2020-04-20,Mackinac,Michigan,26097,4,0 +2020-04-21,Mackinac,Michigan,26097,4,0 +2020-04-22,Mackinac,Michigan,26097,5,0 +2020-04-23,Mackinac,Michigan,26097,5,0 +2020-04-24,Mackinac,Michigan,26097,5,0 +2020-04-25,Mackinac,Michigan,26097,5,0 +2020-04-26,Mackinac,Michigan,26097,5,0 +2020-04-27,Mackinac,Michigan,26097,5,0 +2020-04-28,Mackinac,Michigan,26097,5,0 +2020-04-29,Mackinac,Michigan,26097,6,0 +2020-04-30,Mackinac,Michigan,26097,6,0 +2020-05-01,Mackinac,Michigan,26097,6,0 +2020-05-02,Mackinac,Michigan,26097,6,0 +2020-05-03,Mackinac,Michigan,26097,6,0 +2020-05-04,Mackinac,Michigan,26097,6,0 +2020-05-05,Mackinac,Michigan,26097,6,0 +2020-05-06,Mackinac,Michigan,26097,6,0 +2020-05-07,Mackinac,Michigan,26097,6,0 +2020-05-08,Mackinac,Michigan,26097,6,0 +2020-05-09,Mackinac,Michigan,26097,6,0 +2020-05-10,Mackinac,Michigan,26097,6,0 +2020-05-11,Mackinac,Michigan,26097,6,0 +2020-05-12,Mackinac,Michigan,26097,6,0 +2020-05-13,Mackinac,Michigan,26097,6,0 +2020-05-14,Mackinac,Michigan,26097,6,0 +2020-05-15,Mackinac,Michigan,26097,6,0 +2020-05-16,Mackinac,Michigan,26097,6,0 +2020-05-17,Mackinac,Michigan,26097,6,0 +2020-05-18,Mackinac,Michigan,26097,6,0 +2020-05-19,Mackinac,Michigan,26097,6,0 +2020-05-20,Mackinac,Michigan,26097,6,0 +2020-05-21,Mackinac,Michigan,26097,6,0 +2020-05-22,Mackinac,Michigan,26097,6,0 +2020-05-23,Mackinac,Michigan,26097,6,0 +2020-05-24,Mackinac,Michigan,26097,6,0 +2020-05-25,Mackinac,Michigan,26097,6,0 +2020-05-26,Mackinac,Michigan,26097,6,0 +2020-05-27,Mackinac,Michigan,26097,6,0 +2020-05-28,Mackinac,Michigan,26097,8,0 +2020-05-29,Mackinac,Michigan,26097,8,0 +2020-05-30,Mackinac,Michigan,26097,8,0 +2020-05-31,Mackinac,Michigan,26097,8,0 +2020-06-01,Mackinac,Michigan,26097,8,0 +2020-06-02,Mackinac,Michigan,26097,8,0 +2020-06-03,Mackinac,Michigan,26097,8,0 +2020-06-04,Mackinac,Michigan,26097,8,0 +2020-06-05,Mackinac,Michigan,26097,8,0 +2020-06-06,Mackinac,Michigan,26097,8,0 +2020-06-07,Mackinac,Michigan,26097,8,0 +2020-06-08,Mackinac,Michigan,26097,8,0 +2020-06-09,Mackinac,Michigan,26097,8,0 +2020-06-10,Mackinac,Michigan,26097,8,0 +2020-06-11,Mackinac,Michigan,26097,8,0 +2020-06-12,Mackinac,Michigan,26097,8,0 +2020-06-13,Mackinac,Michigan,26097,8,0 +2020-06-14,Mackinac,Michigan,26097,8,0 +2020-06-15,Mackinac,Michigan,26097,8,0 +2020-06-16,Mackinac,Michigan,26097,8,0 +2020-06-17,Mackinac,Michigan,26097,8,0 +2020-06-18,Mackinac,Michigan,26097,8,0 +2020-06-19,Mackinac,Michigan,26097,8,0 +2020-06-20,Mackinac,Michigan,26097,8,0 +2020-06-21,Mackinac,Michigan,26097,8,0 +2020-06-22,Mackinac,Michigan,26097,8,0 +2020-06-23,Mackinac,Michigan,26097,8,0 +2020-06-24,Mackinac,Michigan,26097,8,0 +2020-06-25,Mackinac,Michigan,26097,8,0 +2020-06-26,Mackinac,Michigan,26097,8,0 +2020-06-27,Mackinac,Michigan,26097,8,0 +2020-06-28,Mackinac,Michigan,26097,8,0 +2020-06-29,Mackinac,Michigan,26097,8,0 +2020-06-30,Mackinac,Michigan,26097,9,0 +2020-07-01,Mackinac,Michigan,26097,9,0 +2020-07-02,Mackinac,Michigan,26097,9,0 +2020-07-03,Mackinac,Michigan,26097,9,0 +2020-07-04,Mackinac,Michigan,26097,9,0 +2020-07-05,Mackinac,Michigan,26097,9,0 +2020-07-06,Mackinac,Michigan,26097,9,0 +2020-07-07,Mackinac,Michigan,26097,9,0 +2020-07-08,Mackinac,Michigan,26097,9,0 +2020-07-09,Mackinac,Michigan,26097,9,0 +2020-03-13,Macomb,Michigan,26099,1,0 +2020-03-14,Macomb,Michigan,26099,2,0 +2020-03-15,Macomb,Michigan,26099,5,0 +2020-03-16,Macomb,Michigan,26099,6,0 +2020-03-17,Macomb,Michigan,26099,8,0 +2020-03-18,Macomb,Michigan,26099,10,0 +2020-03-19,Macomb,Michigan,26099,55,0 +2020-03-20,Macomb,Michigan,26099,86,0 +2020-03-21,Macomb,Michigan,26099,101,0 +2020-03-22,Macomb,Michigan,26099,140,1 +2020-03-23,Macomb,Michigan,26099,175,2 +2020-03-24,Macomb,Michigan,26099,225,3 +2020-03-25,Macomb,Michigan,26099,281,7 +2020-03-26,Macomb,Michigan,26099,347,11 +2020-03-27,Macomb,Michigan,26099,404,14 +2020-03-28,Macomb,Michigan,26099,534,17 +2020-03-29,Macomb,Michigan,26099,620,20 +2020-03-30,Macomb,Michigan,26099,728,27 +2020-03-31,Macomb,Michigan,26099,853,38 +2020-04-01,Macomb,Michigan,26099,1088,51 +2020-04-02,Macomb,Michigan,26099,1332,58 +2020-04-03,Macomb,Michigan,26099,1560,65 +2020-04-04,Macomb,Michigan,26099,1838,78 +2020-04-05,Macomb,Michigan,26099,2003,83 +2020-04-06,Macomb,Michigan,26099,2159,100 +2020-04-07,Macomb,Michigan,26099,2414,121 +2020-04-08,Macomb,Michigan,26099,2626,141 +2020-04-09,Macomb,Michigan,26099,2783,165 +2020-04-10,Macomb,Michigan,26099,2973,197 +2020-04-11,Macomb,Michigan,26099,3164,209 +2020-04-12,Macomb,Michigan,26099,3254,217 +2020-04-13,Macomb,Michigan,26099,3418,240 +2020-04-14,Macomb,Michigan,26099,3620,293 +2020-04-15,Macomb,Michigan,26099,3866,330 +2020-04-16,Macomb,Michigan,26099,4069,354 +2020-04-17,Macomb,Michigan,26099,4222,373 +2020-04-18,Macomb,Michigan,26099,4328,384 +2020-04-19,Macomb,Michigan,26099,4439,392 +2020-04-20,Macomb,Michigan,26099,4505,404 +2020-04-21,Macomb,Michigan,26099,4625,446 +2020-04-22,Macomb,Michigan,26099,4712,477 +2020-04-23,Macomb,Michigan,26099,4946,497 +2020-04-24,Macomb,Michigan,26099,5106,508 +2020-04-25,Macomb,Michigan,26099,5223,521 +2020-04-26,Macomb,Michigan,26099,5288,524 +2020-04-27,Macomb,Michigan,26099,5336,531 +2020-04-28,Macomb,Michigan,26099,5430,576 +2020-04-29,Macomb,Michigan,26099,5521,602 +2020-04-30,Macomb,Michigan,26099,5606,608 +2020-05-01,Macomb,Michigan,26099,5718,619 +2020-05-02,Macomb,Michigan,26099,5761,630 +2020-05-03,Macomb,Michigan,26099,5854,633 +2020-05-04,Macomb,Michigan,26099,5835,648 +2020-05-05,Macomb,Michigan,26099,5888,652 +2020-05-06,Macomb,Michigan,26099,5932,667 +2020-05-07,Macomb,Michigan,26099,5976,683 +2020-05-08,Macomb,Michigan,26099,6063,687 +2020-05-09,Macomb,Michigan,26099,6124,702 +2020-05-10,Macomb,Michigan,26099,6150,703 +2020-05-11,Macomb,Michigan,26099,6172,704 +2020-05-12,Macomb,Michigan,26099,6205,715 +2020-05-13,Macomb,Michigan,26099,6245,722 +2020-05-14,Macomb,Michigan,26099,6341,733 +2020-05-15,Macomb,Michigan,26099,6383,734 +2020-05-16,Macomb,Michigan,26099,6413,744 +2020-05-17,Macomb,Michigan,26099,6455,745 +2020-05-18,Macomb,Michigan,26099,6467,745 +2020-05-19,Macomb,Michigan,26099,6477,758 +2020-05-20,Macomb,Michigan,26099,6502,768 +2020-05-21,Macomb,Michigan,26099,6530,777 +2020-05-22,Macomb,Michigan,26099,6555,781 +2020-05-23,Macomb,Michigan,26099,6592,783 +2020-05-24,Macomb,Michigan,26099,6611,783 +2020-05-25,Macomb,Michigan,26099,6628,783 +2020-05-26,Macomb,Michigan,26099,6640,784 +2020-05-27,Macomb,Michigan,26099,6670,789 +2020-05-28,Macomb,Michigan,26099,6698,792 +2020-05-29,Macomb,Michigan,26099,6728,798 +2020-05-30,Macomb,Michigan,26099,6736,807 +2020-05-31,Macomb,Michigan,26099,6848,815 +2020-06-01,Macomb,Michigan,26099,6860,819 +2020-06-02,Macomb,Michigan,26099,6873,823 +2020-06-03,Macomb,Michigan,26099,7005,831 +2020-06-04,Macomb,Michigan,26099,7026,833 +2020-06-05,Macomb,Michigan,26099,7140,871 +2020-06-06,Macomb,Michigan,26099,7177,875 +2020-06-07,Macomb,Michigan,26099,7235,875 +2020-06-08,Macomb,Michigan,26099,7246,875 +2020-06-09,Macomb,Michigan,26099,7236,878 +2020-06-10,Macomb,Michigan,26099,7239,881 +2020-06-11,Macomb,Michigan,26099,7245,884 +2020-06-12,Macomb,Michigan,26099,7255,886 +2020-06-13,Macomb,Michigan,26099,7274,894 +2020-06-14,Macomb,Michigan,26099,7289,894 +2020-06-15,Macomb,Michigan,26099,7299,894 +2020-06-16,Macomb,Michigan,26099,7330,896 +2020-06-17,Macomb,Michigan,26099,7341,897 +2020-06-18,Macomb,Michigan,26099,7351,902 +2020-06-19,Macomb,Michigan,26099,7362,902 +2020-06-20,Macomb,Michigan,26099,7385,904 +2020-06-21,Macomb,Michigan,26099,7391,904 +2020-06-22,Macomb,Michigan,26099,7404,904 +2020-06-23,Macomb,Michigan,26099,7414,903 +2020-06-24,Macomb,Michigan,26099,7430,903 +2020-06-25,Macomb,Michigan,26099,7464,905 +2020-06-26,Macomb,Michigan,26099,7492,906 +2020-06-27,Macomb,Michigan,26099,7511,910 +2020-06-28,Macomb,Michigan,26099,7537,912 +2020-06-29,Macomb,Michigan,26099,7557,912 +2020-06-30,Macomb,Michigan,26099,7599,921 +2020-07-01,Macomb,Michigan,26099,7668,921 +2020-07-02,Macomb,Michigan,26099,7709,922 +2020-07-03,Macomb,Michigan,26099,7742,924 +2020-07-04,Macomb,Michigan,26099,7761,924 +2020-07-05,Macomb,Michigan,26099,7781,924 +2020-07-06,Macomb,Michigan,26099,7820,924 +2020-07-07,Macomb,Michigan,26099,7865,928 +2020-07-08,Macomb,Michigan,26099,7891,928 +2020-07-09,Macomb,Michigan,26099,7930,928 +2020-03-24,Manistee,Michigan,26101,1,0 +2020-03-25,Manistee,Michigan,26101,1,0 +2020-03-26,Manistee,Michigan,26101,1,0 +2020-03-27,Manistee,Michigan,26101,1,0 +2020-03-28,Manistee,Michigan,26101,1,0 +2020-03-29,Manistee,Michigan,26101,1,0 +2020-03-30,Manistee,Michigan,26101,1,0 +2020-03-31,Manistee,Michigan,26101,1,0 +2020-04-01,Manistee,Michigan,26101,1,0 +2020-04-02,Manistee,Michigan,26101,1,0 +2020-04-03,Manistee,Michigan,26101,1,0 +2020-04-04,Manistee,Michigan,26101,4,0 +2020-04-05,Manistee,Michigan,26101,4,0 +2020-04-06,Manistee,Michigan,26101,6,0 +2020-04-07,Manistee,Michigan,26101,9,0 +2020-04-08,Manistee,Michigan,26101,9,0 +2020-04-09,Manistee,Michigan,26101,9,0 +2020-04-10,Manistee,Michigan,26101,9,0 +2020-04-11,Manistee,Michigan,26101,9,0 +2020-04-12,Manistee,Michigan,26101,10,0 +2020-04-13,Manistee,Michigan,26101,10,0 +2020-04-14,Manistee,Michigan,26101,10,0 +2020-04-15,Manistee,Michigan,26101,10,0 +2020-04-16,Manistee,Michigan,26101,11,0 +2020-04-17,Manistee,Michigan,26101,11,0 +2020-04-18,Manistee,Michigan,26101,11,0 +2020-04-19,Manistee,Michigan,26101,11,0 +2020-04-20,Manistee,Michigan,26101,11,0 +2020-04-21,Manistee,Michigan,26101,11,0 +2020-04-22,Manistee,Michigan,26101,11,0 +2020-04-23,Manistee,Michigan,26101,12,0 +2020-04-24,Manistee,Michigan,26101,12,0 +2020-04-25,Manistee,Michigan,26101,12,0 +2020-04-26,Manistee,Michigan,26101,11,0 +2020-04-27,Manistee,Michigan,26101,11,0 +2020-04-28,Manistee,Michigan,26101,11,0 +2020-04-29,Manistee,Michigan,26101,11,0 +2020-04-30,Manistee,Michigan,26101,11,0 +2020-05-01,Manistee,Michigan,26101,11,0 +2020-05-02,Manistee,Michigan,26101,11,0 +2020-05-03,Manistee,Michigan,26101,11,0 +2020-05-04,Manistee,Michigan,26101,11,0 +2020-05-05,Manistee,Michigan,26101,11,0 +2020-05-06,Manistee,Michigan,26101,11,0 +2020-05-07,Manistee,Michigan,26101,11,0 +2020-05-08,Manistee,Michigan,26101,11,0 +2020-05-09,Manistee,Michigan,26101,11,0 +2020-05-10,Manistee,Michigan,26101,11,0 +2020-05-11,Manistee,Michigan,26101,11,0 +2020-05-12,Manistee,Michigan,26101,11,0 +2020-05-13,Manistee,Michigan,26101,11,0 +2020-05-14,Manistee,Michigan,26101,11,0 +2020-05-15,Manistee,Michigan,26101,20,0 +2020-05-16,Manistee,Michigan,26101,20,0 +2020-05-17,Manistee,Michigan,26101,20,0 +2020-05-18,Manistee,Michigan,26101,20,0 +2020-05-19,Manistee,Michigan,26101,20,0 +2020-05-20,Manistee,Michigan,26101,20,0 +2020-05-21,Manistee,Michigan,26101,20,0 +2020-05-22,Manistee,Michigan,26101,20,0 +2020-05-23,Manistee,Michigan,26101,20,0 +2020-05-24,Manistee,Michigan,26101,20,0 +2020-05-25,Manistee,Michigan,26101,20,0 +2020-05-26,Manistee,Michigan,26101,20,0 +2020-05-27,Manistee,Michigan,26101,20,0 +2020-05-28,Manistee,Michigan,26101,20,0 +2020-05-29,Manistee,Michigan,26101,20,0 +2020-05-30,Manistee,Michigan,26101,20,0 +2020-05-31,Manistee,Michigan,26101,20,0 +2020-06-01,Manistee,Michigan,26101,24,0 +2020-06-02,Manistee,Michigan,26101,24,0 +2020-06-03,Manistee,Michigan,26101,24,0 +2020-06-04,Manistee,Michigan,26101,24,0 +2020-06-05,Manistee,Michigan,26101,24,1 +2020-06-06,Manistee,Michigan,26101,24,1 +2020-06-07,Manistee,Michigan,26101,24,1 +2020-06-08,Manistee,Michigan,26101,24,1 +2020-06-09,Manistee,Michigan,26101,24,1 +2020-06-10,Manistee,Michigan,26101,24,1 +2020-06-11,Manistee,Michigan,26101,24,1 +2020-06-12,Manistee,Michigan,26101,24,1 +2020-06-13,Manistee,Michigan,26101,24,1 +2020-06-14,Manistee,Michigan,26101,24,1 +2020-06-15,Manistee,Michigan,26101,24,1 +2020-06-16,Manistee,Michigan,26101,24,1 +2020-06-17,Manistee,Michigan,26101,24,1 +2020-06-18,Manistee,Michigan,26101,24,1 +2020-06-19,Manistee,Michigan,26101,26,0 +2020-06-20,Manistee,Michigan,26101,27,0 +2020-06-21,Manistee,Michigan,26101,27,0 +2020-06-22,Manistee,Michigan,26101,27,0 +2020-06-23,Manistee,Michigan,26101,28,1 +2020-06-24,Manistee,Michigan,26101,28,1 +2020-06-25,Manistee,Michigan,26101,28,0 +2020-06-26,Manistee,Michigan,26101,28,0 +2020-06-27,Manistee,Michigan,26101,28,0 +2020-06-28,Manistee,Michigan,26101,28,0 +2020-06-29,Manistee,Michigan,26101,30,0 +2020-06-30,Manistee,Michigan,26101,31,0 +2020-07-01,Manistee,Michigan,26101,31,0 +2020-07-02,Manistee,Michigan,26101,31,0 +2020-07-03,Manistee,Michigan,26101,33,0 +2020-07-04,Manistee,Michigan,26101,35,0 +2020-07-05,Manistee,Michigan,26101,37,0 +2020-07-06,Manistee,Michigan,26101,37,0 +2020-07-07,Manistee,Michigan,26101,37,0 +2020-07-08,Manistee,Michigan,26101,37,0 +2020-07-09,Manistee,Michigan,26101,37,0 +2020-03-25,Marquette,Michigan,26103,1,0 +2020-03-26,Marquette,Michigan,26103,1,0 +2020-03-27,Marquette,Michigan,26103,1,0 +2020-03-28,Marquette,Michigan,26103,1,0 +2020-03-29,Marquette,Michigan,26103,2,0 +2020-03-30,Marquette,Michigan,26103,3,0 +2020-03-31,Marquette,Michigan,26103,4,0 +2020-04-01,Marquette,Michigan,26103,5,0 +2020-04-02,Marquette,Michigan,26103,5,0 +2020-04-03,Marquette,Michigan,26103,7,0 +2020-04-04,Marquette,Michigan,26103,11,1 +2020-04-05,Marquette,Michigan,26103,14,1 +2020-04-06,Marquette,Michigan,26103,15,2 +2020-04-07,Marquette,Michigan,26103,19,2 +2020-04-08,Marquette,Michigan,26103,18,2 +2020-04-09,Marquette,Michigan,26103,18,2 +2020-04-10,Marquette,Michigan,26103,21,2 +2020-04-11,Marquette,Michigan,26103,21,2 +2020-04-12,Marquette,Michigan,26103,22,4 +2020-04-13,Marquette,Michigan,26103,24,4 +2020-04-14,Marquette,Michigan,26103,26,5 +2020-04-15,Marquette,Michigan,26103,27,5 +2020-04-16,Marquette,Michigan,26103,27,5 +2020-04-17,Marquette,Michigan,26103,29,5 +2020-04-18,Marquette,Michigan,26103,29,6 +2020-04-19,Marquette,Michigan,26103,32,6 +2020-04-20,Marquette,Michigan,26103,32,6 +2020-04-21,Marquette,Michigan,26103,35,6 +2020-04-22,Marquette,Michigan,26103,35,6 +2020-04-23,Marquette,Michigan,26103,35,6 +2020-04-24,Marquette,Michigan,26103,39,6 +2020-04-25,Marquette,Michigan,26103,41,7 +2020-04-26,Marquette,Michigan,26103,42,7 +2020-04-27,Marquette,Michigan,26103,42,7 +2020-04-28,Marquette,Michigan,26103,43,8 +2020-04-29,Marquette,Michigan,26103,45,8 +2020-04-30,Marquette,Michigan,26103,46,8 +2020-05-01,Marquette,Michigan,26103,50,8 +2020-05-02,Marquette,Michigan,26103,51,8 +2020-05-03,Marquette,Michigan,26103,50,8 +2020-05-04,Marquette,Michigan,26103,50,8 +2020-05-05,Marquette,Michigan,26103,49,8 +2020-05-06,Marquette,Michigan,26103,51,8 +2020-05-07,Marquette,Michigan,26103,53,8 +2020-05-08,Marquette,Michigan,26103,51,9 +2020-05-09,Marquette,Michigan,26103,51,9 +2020-05-10,Marquette,Michigan,26103,51,10 +2020-05-11,Marquette,Michigan,26103,51,10 +2020-05-12,Marquette,Michigan,26103,51,10 +2020-05-13,Marquette,Michigan,26103,51,10 +2020-05-14,Marquette,Michigan,26103,51,10 +2020-05-15,Marquette,Michigan,26103,51,10 +2020-05-16,Marquette,Michigan,26103,52,10 +2020-05-17,Marquette,Michigan,26103,52,10 +2020-05-18,Marquette,Michigan,26103,52,10 +2020-05-19,Marquette,Michigan,26103,52,10 +2020-05-20,Marquette,Michigan,26103,52,10 +2020-05-21,Marquette,Michigan,26103,52,10 +2020-05-22,Marquette,Michigan,26103,52,10 +2020-05-23,Marquette,Michigan,26103,53,10 +2020-05-24,Marquette,Michigan,26103,54,10 +2020-05-25,Marquette,Michigan,26103,54,10 +2020-05-26,Marquette,Michigan,26103,54,10 +2020-05-27,Marquette,Michigan,26103,54,10 +2020-05-28,Marquette,Michigan,26103,54,10 +2020-05-29,Marquette,Michigan,26103,54,10 +2020-05-30,Marquette,Michigan,26103,55,11 +2020-05-31,Marquette,Michigan,26103,56,11 +2020-06-01,Marquette,Michigan,26103,56,12 +2020-06-02,Marquette,Michigan,26103,56,12 +2020-06-03,Marquette,Michigan,26103,56,11 +2020-06-04,Marquette,Michigan,26103,56,11 +2020-06-05,Marquette,Michigan,26103,57,11 +2020-06-06,Marquette,Michigan,26103,57,11 +2020-06-07,Marquette,Michigan,26103,57,11 +2020-06-08,Marquette,Michigan,26103,58,11 +2020-06-09,Marquette,Michigan,26103,59,11 +2020-06-10,Marquette,Michigan,26103,59,11 +2020-06-11,Marquette,Michigan,26103,59,11 +2020-06-12,Marquette,Michigan,26103,59,11 +2020-06-13,Marquette,Michigan,26103,59,11 +2020-06-14,Marquette,Michigan,26103,59,11 +2020-06-15,Marquette,Michigan,26103,59,11 +2020-06-16,Marquette,Michigan,26103,59,11 +2020-06-17,Marquette,Michigan,26103,59,11 +2020-06-18,Marquette,Michigan,26103,59,11 +2020-06-19,Marquette,Michigan,26103,61,11 +2020-06-20,Marquette,Michigan,26103,61,11 +2020-06-21,Marquette,Michigan,26103,62,11 +2020-06-22,Marquette,Michigan,26103,63,11 +2020-06-23,Marquette,Michigan,26103,63,11 +2020-06-24,Marquette,Michigan,26103,63,11 +2020-06-25,Marquette,Michigan,26103,63,11 +2020-06-26,Marquette,Michigan,26103,64,11 +2020-06-27,Marquette,Michigan,26103,64,11 +2020-06-28,Marquette,Michigan,26103,64,11 +2020-06-29,Marquette,Michigan,26103,64,11 +2020-06-30,Marquette,Michigan,26103,64,11 +2020-07-01,Marquette,Michigan,26103,65,11 +2020-07-02,Marquette,Michigan,26103,70,11 +2020-07-03,Marquette,Michigan,26103,71,11 +2020-07-04,Marquette,Michigan,26103,71,11 +2020-07-05,Marquette,Michigan,26103,73,11 +2020-07-06,Marquette,Michigan,26103,76,11 +2020-07-07,Marquette,Michigan,26103,83,11 +2020-07-08,Marquette,Michigan,26103,84,11 +2020-07-09,Marquette,Michigan,26103,85,11 +2020-04-07,Mason,Michigan,26105,1,0 +2020-04-08,Mason,Michigan,26105,1,0 +2020-04-09,Mason,Michigan,26105,1,0 +2020-04-10,Mason,Michigan,26105,1,0 +2020-04-11,Mason,Michigan,26105,2,0 +2020-04-12,Mason,Michigan,26105,2,0 +2020-04-13,Mason,Michigan,26105,2,0 +2020-04-14,Mason,Michigan,26105,3,0 +2020-04-15,Mason,Michigan,26105,3,0 +2020-04-16,Mason,Michigan,26105,4,0 +2020-04-17,Mason,Michigan,26105,4,0 +2020-04-18,Mason,Michigan,26105,4,0 +2020-04-19,Mason,Michigan,26105,4,0 +2020-04-20,Mason,Michigan,26105,4,0 +2020-04-21,Mason,Michigan,26105,4,0 +2020-04-22,Mason,Michigan,26105,5,0 +2020-04-23,Mason,Michigan,26105,5,0 +2020-04-24,Mason,Michigan,26105,5,0 +2020-04-25,Mason,Michigan,26105,5,0 +2020-04-26,Mason,Michigan,26105,5,0 +2020-04-27,Mason,Michigan,26105,5,0 +2020-04-28,Mason,Michigan,26105,7,0 +2020-04-29,Mason,Michigan,26105,8,0 +2020-04-30,Mason,Michigan,26105,11,0 +2020-05-01,Mason,Michigan,26105,10,0 +2020-05-02,Mason,Michigan,26105,12,0 +2020-05-03,Mason,Michigan,26105,12,0 +2020-05-04,Mason,Michigan,26105,12,0 +2020-05-05,Mason,Michigan,26105,13,0 +2020-05-06,Mason,Michigan,26105,14,0 +2020-05-07,Mason,Michigan,26105,15,0 +2020-05-08,Mason,Michigan,26105,18,0 +2020-05-09,Mason,Michigan,26105,19,0 +2020-05-10,Mason,Michigan,26105,21,0 +2020-05-11,Mason,Michigan,26105,21,0 +2020-05-12,Mason,Michigan,26105,23,0 +2020-05-13,Mason,Michigan,26105,22,0 +2020-05-14,Mason,Michigan,26105,23,0 +2020-05-15,Mason,Michigan,26105,25,0 +2020-05-16,Mason,Michigan,26105,25,0 +2020-05-17,Mason,Michigan,26105,26,0 +2020-05-18,Mason,Michigan,26105,27,0 +2020-05-19,Mason,Michigan,26105,27,0 +2020-05-20,Mason,Michigan,26105,28,0 +2020-05-21,Mason,Michigan,26105,29,0 +2020-05-22,Mason,Michigan,26105,31,0 +2020-05-23,Mason,Michigan,26105,31,0 +2020-05-24,Mason,Michigan,26105,31,0 +2020-05-25,Mason,Michigan,26105,31,0 +2020-05-26,Mason,Michigan,26105,31,0 +2020-05-27,Mason,Michigan,26105,31,0 +2020-05-28,Mason,Michigan,26105,31,0 +2020-05-29,Mason,Michigan,26105,32,0 +2020-05-30,Mason,Michigan,26105,32,0 +2020-05-31,Mason,Michigan,26105,32,0 +2020-06-01,Mason,Michigan,26105,38,0 +2020-06-02,Mason,Michigan,26105,38,0 +2020-06-03,Mason,Michigan,26105,38,0 +2020-06-04,Mason,Michigan,26105,38,0 +2020-06-05,Mason,Michigan,26105,38,0 +2020-06-06,Mason,Michigan,26105,38,0 +2020-06-07,Mason,Michigan,26105,38,0 +2020-06-08,Mason,Michigan,26105,38,0 +2020-06-09,Mason,Michigan,26105,38,0 +2020-06-10,Mason,Michigan,26105,38,0 +2020-06-11,Mason,Michigan,26105,38,0 +2020-06-12,Mason,Michigan,26105,38,0 +2020-06-13,Mason,Michigan,26105,38,0 +2020-06-14,Mason,Michigan,26105,38,0 +2020-06-15,Mason,Michigan,26105,39,0 +2020-06-16,Mason,Michigan,26105,38,0 +2020-06-17,Mason,Michigan,26105,38,0 +2020-06-18,Mason,Michigan,26105,40,0 +2020-06-19,Mason,Michigan,26105,40,0 +2020-06-20,Mason,Michigan,26105,41,0 +2020-06-21,Mason,Michigan,26105,41,0 +2020-06-22,Mason,Michigan,26105,41,0 +2020-06-23,Mason,Michigan,26105,42,0 +2020-06-24,Mason,Michigan,26105,43,0 +2020-06-25,Mason,Michigan,26105,43,0 +2020-06-26,Mason,Michigan,26105,43,0 +2020-06-27,Mason,Michigan,26105,45,0 +2020-06-28,Mason,Michigan,26105,45,0 +2020-06-29,Mason,Michigan,26105,46,0 +2020-06-30,Mason,Michigan,26105,51,0 +2020-07-01,Mason,Michigan,26105,53,0 +2020-07-02,Mason,Michigan,26105,57,0 +2020-07-03,Mason,Michigan,26105,58,0 +2020-07-04,Mason,Michigan,26105,61,0 +2020-07-05,Mason,Michigan,26105,61,0 +2020-07-06,Mason,Michigan,26105,65,0 +2020-07-07,Mason,Michigan,26105,66,0 +2020-07-08,Mason,Michigan,26105,70,0 +2020-07-09,Mason,Michigan,26105,72,0 +2020-03-26,Mecosta,Michigan,26107,1,1 +2020-03-27,Mecosta,Michigan,26107,1,1 +2020-03-28,Mecosta,Michigan,26107,1,1 +2020-03-29,Mecosta,Michigan,26107,1,1 +2020-03-30,Mecosta,Michigan,26107,2,1 +2020-03-31,Mecosta,Michigan,26107,3,1 +2020-04-01,Mecosta,Michigan,26107,3,1 +2020-04-02,Mecosta,Michigan,26107,3,1 +2020-04-03,Mecosta,Michigan,26107,4,1 +2020-04-04,Mecosta,Michigan,26107,4,1 +2020-04-05,Mecosta,Michigan,26107,6,1 +2020-04-06,Mecosta,Michigan,26107,6,1 +2020-04-07,Mecosta,Michigan,26107,8,1 +2020-04-08,Mecosta,Michigan,26107,8,1 +2020-04-09,Mecosta,Michigan,26107,9,1 +2020-04-10,Mecosta,Michigan,26107,11,1 +2020-04-11,Mecosta,Michigan,26107,11,1 +2020-04-12,Mecosta,Michigan,26107,11,1 +2020-04-13,Mecosta,Michigan,26107,11,1 +2020-04-14,Mecosta,Michigan,26107,11,1 +2020-04-15,Mecosta,Michigan,26107,11,1 +2020-04-16,Mecosta,Michigan,26107,11,1 +2020-04-17,Mecosta,Michigan,26107,12,1 +2020-04-18,Mecosta,Michigan,26107,12,1 +2020-04-19,Mecosta,Michigan,26107,12,1 +2020-04-20,Mecosta,Michigan,26107,13,1 +2020-04-21,Mecosta,Michigan,26107,14,1 +2020-04-22,Mecosta,Michigan,26107,13,1 +2020-04-23,Mecosta,Michigan,26107,13,1 +2020-04-24,Mecosta,Michigan,26107,14,1 +2020-04-25,Mecosta,Michigan,26107,14,1 +2020-04-26,Mecosta,Michigan,26107,14,1 +2020-04-27,Mecosta,Michigan,26107,14,1 +2020-04-28,Mecosta,Michigan,26107,15,1 +2020-04-29,Mecosta,Michigan,26107,14,1 +2020-04-30,Mecosta,Michigan,26107,14,1 +2020-05-01,Mecosta,Michigan,26107,14,1 +2020-05-02,Mecosta,Michigan,26107,14,1 +2020-05-03,Mecosta,Michigan,26107,14,1 +2020-05-04,Mecosta,Michigan,26107,14,2 +2020-05-05,Mecosta,Michigan,26107,14,2 +2020-05-06,Mecosta,Michigan,26107,15,2 +2020-05-07,Mecosta,Michigan,26107,15,2 +2020-05-08,Mecosta,Michigan,26107,16,2 +2020-05-09,Mecosta,Michigan,26107,16,2 +2020-05-10,Mecosta,Michigan,26107,16,2 +2020-05-11,Mecosta,Michigan,26107,16,2 +2020-05-12,Mecosta,Michigan,26107,16,2 +2020-05-13,Mecosta,Michigan,26107,16,2 +2020-05-14,Mecosta,Michigan,26107,17,2 +2020-05-15,Mecosta,Michigan,26107,18,2 +2020-05-16,Mecosta,Michigan,26107,19,2 +2020-05-17,Mecosta,Michigan,26107,18,2 +2020-05-18,Mecosta,Michigan,26107,18,2 +2020-05-19,Mecosta,Michigan,26107,19,2 +2020-05-20,Mecosta,Michigan,26107,19,2 +2020-05-21,Mecosta,Michigan,26107,19,2 +2020-05-22,Mecosta,Michigan,26107,19,2 +2020-05-23,Mecosta,Michigan,26107,19,2 +2020-05-24,Mecosta,Michigan,26107,19,2 +2020-05-25,Mecosta,Michigan,26107,19,2 +2020-05-26,Mecosta,Michigan,26107,19,2 +2020-05-27,Mecosta,Michigan,26107,20,2 +2020-05-28,Mecosta,Michigan,26107,20,2 +2020-05-29,Mecosta,Michigan,26107,21,2 +2020-05-30,Mecosta,Michigan,26107,21,2 +2020-05-31,Mecosta,Michigan,26107,21,2 +2020-06-01,Mecosta,Michigan,26107,24,2 +2020-06-02,Mecosta,Michigan,26107,24,2 +2020-06-03,Mecosta,Michigan,26107,24,2 +2020-06-04,Mecosta,Michigan,26107,24,2 +2020-06-05,Mecosta,Michigan,26107,24,2 +2020-06-06,Mecosta,Michigan,26107,24,2 +2020-06-07,Mecosta,Michigan,26107,24,2 +2020-06-08,Mecosta,Michigan,26107,24,2 +2020-06-09,Mecosta,Michigan,26107,24,2 +2020-06-10,Mecosta,Michigan,26107,24,2 +2020-06-11,Mecosta,Michigan,26107,24,2 +2020-06-12,Mecosta,Michigan,26107,24,2 +2020-06-13,Mecosta,Michigan,26107,25,2 +2020-06-14,Mecosta,Michigan,26107,25,2 +2020-06-15,Mecosta,Michigan,26107,25,2 +2020-06-16,Mecosta,Michigan,26107,26,2 +2020-06-17,Mecosta,Michigan,26107,26,2 +2020-06-18,Mecosta,Michigan,26107,27,2 +2020-06-19,Mecosta,Michigan,26107,27,2 +2020-06-20,Mecosta,Michigan,26107,28,2 +2020-06-21,Mecosta,Michigan,26107,29,2 +2020-06-22,Mecosta,Michigan,26107,29,2 +2020-06-23,Mecosta,Michigan,26107,28,2 +2020-06-24,Mecosta,Michigan,26107,28,2 +2020-06-25,Mecosta,Michigan,26107,29,2 +2020-06-26,Mecosta,Michigan,26107,29,2 +2020-06-27,Mecosta,Michigan,26107,29,2 +2020-06-28,Mecosta,Michigan,26107,29,2 +2020-06-29,Mecosta,Michigan,26107,29,2 +2020-06-30,Mecosta,Michigan,26107,29,2 +2020-07-01,Mecosta,Michigan,26107,29,2 +2020-07-02,Mecosta,Michigan,26107,29,2 +2020-07-03,Mecosta,Michigan,26107,30,2 +2020-07-04,Mecosta,Michigan,26107,31,2 +2020-07-05,Mecosta,Michigan,26107,32,2 +2020-07-06,Mecosta,Michigan,26107,32,2 +2020-07-07,Mecosta,Michigan,26107,32,2 +2020-07-08,Mecosta,Michigan,26107,32,2 +2020-07-09,Mecosta,Michigan,26107,34,2 +2020-04-10,Menominee,Michigan,26109,1,0 +2020-04-11,Menominee,Michigan,26109,1,0 +2020-04-12,Menominee,Michigan,26109,1,0 +2020-04-13,Menominee,Michigan,26109,1,0 +2020-04-14,Menominee,Michigan,26109,1,0 +2020-04-15,Menominee,Michigan,26109,1,0 +2020-04-16,Menominee,Michigan,26109,1,0 +2020-04-17,Menominee,Michigan,26109,1,0 +2020-04-18,Menominee,Michigan,26109,1,0 +2020-04-19,Menominee,Michigan,26109,1,0 +2020-04-20,Menominee,Michigan,26109,1,0 +2020-04-21,Menominee,Michigan,26109,1,0 +2020-04-22,Menominee,Michigan,26109,1,0 +2020-04-23,Menominee,Michigan,26109,2,0 +2020-04-24,Menominee,Michigan,26109,2,0 +2020-04-25,Menominee,Michigan,26109,3,0 +2020-04-26,Menominee,Michigan,26109,3,0 +2020-04-27,Menominee,Michigan,26109,3,0 +2020-04-28,Menominee,Michigan,26109,5,0 +2020-04-29,Menominee,Michigan,26109,5,0 +2020-04-30,Menominee,Michigan,26109,5,0 +2020-05-01,Menominee,Michigan,26109,5,0 +2020-05-02,Menominee,Michigan,26109,5,0 +2020-05-03,Menominee,Michigan,26109,5,0 +2020-05-04,Menominee,Michigan,26109,6,0 +2020-05-05,Menominee,Michigan,26109,6,0 +2020-05-06,Menominee,Michigan,26109,6,0 +2020-05-07,Menominee,Michigan,26109,6,0 +2020-05-08,Menominee,Michigan,26109,6,0 +2020-05-09,Menominee,Michigan,26109,6,0 +2020-05-10,Menominee,Michigan,26109,6,0 +2020-05-11,Menominee,Michigan,26109,6,0 +2020-05-12,Menominee,Michigan,26109,6,0 +2020-05-13,Menominee,Michigan,26109,6,0 +2020-05-14,Menominee,Michigan,26109,7,0 +2020-05-15,Menominee,Michigan,26109,8,0 +2020-05-16,Menominee,Michigan,26109,8,0 +2020-05-17,Menominee,Michigan,26109,8,0 +2020-05-18,Menominee,Michigan,26109,8,0 +2020-05-19,Menominee,Michigan,26109,8,0 +2020-05-20,Menominee,Michigan,26109,8,0 +2020-05-21,Menominee,Michigan,26109,8,0 +2020-05-22,Menominee,Michigan,26109,8,0 +2020-05-23,Menominee,Michigan,26109,8,0 +2020-05-24,Menominee,Michigan,26109,8,0 +2020-05-25,Menominee,Michigan,26109,8,0 +2020-05-26,Menominee,Michigan,26109,8,0 +2020-05-27,Menominee,Michigan,26109,8,0 +2020-05-28,Menominee,Michigan,26109,8,0 +2020-05-29,Menominee,Michigan,26109,8,0 +2020-05-30,Menominee,Michigan,26109,8,0 +2020-05-31,Menominee,Michigan,26109,8,0 +2020-06-01,Menominee,Michigan,26109,8,0 +2020-06-02,Menominee,Michigan,26109,8,0 +2020-06-03,Menominee,Michigan,26109,8,0 +2020-06-04,Menominee,Michigan,26109,8,0 +2020-06-05,Menominee,Michigan,26109,8,0 +2020-06-06,Menominee,Michigan,26109,8,0 +2020-06-07,Menominee,Michigan,26109,8,0 +2020-06-08,Menominee,Michigan,26109,8,0 +2020-06-09,Menominee,Michigan,26109,9,0 +2020-06-10,Menominee,Michigan,26109,9,0 +2020-06-11,Menominee,Michigan,26109,9,0 +2020-06-12,Menominee,Michigan,26109,9,0 +2020-06-13,Menominee,Michigan,26109,9,0 +2020-06-14,Menominee,Michigan,26109,9,0 +2020-06-15,Menominee,Michigan,26109,9,0 +2020-06-16,Menominee,Michigan,26109,9,0 +2020-06-17,Menominee,Michigan,26109,9,0 +2020-06-18,Menominee,Michigan,26109,9,0 +2020-06-19,Menominee,Michigan,26109,9,0 +2020-06-20,Menominee,Michigan,26109,9,0 +2020-06-21,Menominee,Michigan,26109,9,0 +2020-06-22,Menominee,Michigan,26109,9,0 +2020-06-23,Menominee,Michigan,26109,9,0 +2020-06-24,Menominee,Michigan,26109,11,0 +2020-06-25,Menominee,Michigan,26109,14,0 +2020-06-26,Menominee,Michigan,26109,14,0 +2020-06-27,Menominee,Michigan,26109,15,0 +2020-06-28,Menominee,Michigan,26109,16,0 +2020-06-29,Menominee,Michigan,26109,16,0 +2020-06-30,Menominee,Michigan,26109,16,0 +2020-07-01,Menominee,Michigan,26109,16,0 +2020-07-02,Menominee,Michigan,26109,16,0 +2020-07-03,Menominee,Michigan,26109,21,0 +2020-07-04,Menominee,Michigan,26109,21,0 +2020-07-05,Menominee,Michigan,26109,22,0 +2020-07-06,Menominee,Michigan,26109,24,0 +2020-07-07,Menominee,Michigan,26109,25,0 +2020-07-08,Menominee,Michigan,26109,29,0 +2020-07-09,Menominee,Michigan,26109,32,0 +2020-03-19,Midland,Michigan,26111,1,0 +2020-03-20,Midland,Michigan,26111,3,0 +2020-03-21,Midland,Michigan,26111,3,0 +2020-03-22,Midland,Michigan,26111,5,0 +2020-03-23,Midland,Michigan,26111,5,0 +2020-03-24,Midland,Michigan,26111,5,0 +2020-03-25,Midland,Michigan,26111,6,0 +2020-03-26,Midland,Michigan,26111,6,0 +2020-03-27,Midland,Michigan,26111,8,0 +2020-03-28,Midland,Michigan,26111,8,0 +2020-03-29,Midland,Michigan,26111,8,0 +2020-03-30,Midland,Michigan,26111,9,0 +2020-03-31,Midland,Michigan,26111,10,0 +2020-04-01,Midland,Michigan,26111,12,0 +2020-04-02,Midland,Michigan,26111,15,0 +2020-04-03,Midland,Michigan,26111,16,0 +2020-04-04,Midland,Michigan,26111,17,0 +2020-04-05,Midland,Michigan,26111,18,0 +2020-04-06,Midland,Michigan,26111,22,0 +2020-04-07,Midland,Michigan,26111,22,0 +2020-04-08,Midland,Michigan,26111,24,1 +2020-04-09,Midland,Michigan,26111,28,1 +2020-04-10,Midland,Michigan,26111,28,1 +2020-04-11,Midland,Michigan,26111,30,1 +2020-04-12,Midland,Michigan,26111,31,1 +2020-04-13,Midland,Michigan,26111,33,1 +2020-04-14,Midland,Michigan,26111,33,1 +2020-04-15,Midland,Michigan,26111,36,1 +2020-04-16,Midland,Michigan,26111,41,1 +2020-04-17,Midland,Michigan,26111,42,1 +2020-04-18,Midland,Michigan,26111,43,2 +2020-04-19,Midland,Michigan,26111,45,2 +2020-04-20,Midland,Michigan,26111,47,3 +2020-04-21,Midland,Michigan,26111,48,3 +2020-04-22,Midland,Michigan,26111,47,3 +2020-04-23,Midland,Michigan,26111,51,3 +2020-04-24,Midland,Michigan,26111,50,3 +2020-04-25,Midland,Michigan,26111,51,3 +2020-04-26,Midland,Michigan,26111,52,3 +2020-04-27,Midland,Michigan,26111,56,3 +2020-04-28,Midland,Michigan,26111,56,4 +2020-04-29,Midland,Michigan,26111,59,5 +2020-04-30,Midland,Michigan,26111,61,5 +2020-05-01,Midland,Michigan,26111,60,6 +2020-05-02,Midland,Michigan,26111,62,6 +2020-05-03,Midland,Michigan,26111,62,6 +2020-05-04,Midland,Michigan,26111,62,7 +2020-05-05,Midland,Michigan,26111,62,7 +2020-05-06,Midland,Michigan,26111,63,7 +2020-05-07,Midland,Michigan,26111,63,8 +2020-05-08,Midland,Michigan,26111,66,8 +2020-05-09,Midland,Michigan,26111,66,8 +2020-05-10,Midland,Michigan,26111,66,8 +2020-05-11,Midland,Michigan,26111,66,8 +2020-05-12,Midland,Michigan,26111,67,8 +2020-05-13,Midland,Michigan,26111,67,8 +2020-05-14,Midland,Michigan,26111,67,8 +2020-05-15,Midland,Michigan,26111,69,8 +2020-05-16,Midland,Michigan,26111,70,8 +2020-05-17,Midland,Michigan,26111,70,8 +2020-05-18,Midland,Michigan,26111,71,8 +2020-05-19,Midland,Michigan,26111,76,8 +2020-05-20,Midland,Michigan,26111,76,8 +2020-05-21,Midland,Michigan,26111,76,8 +2020-05-22,Midland,Michigan,26111,79,8 +2020-05-23,Midland,Michigan,26111,79,8 +2020-05-24,Midland,Michigan,26111,79,8 +2020-05-25,Midland,Michigan,26111,79,8 +2020-05-26,Midland,Michigan,26111,79,8 +2020-05-27,Midland,Michigan,26111,80,8 +2020-05-28,Midland,Michigan,26111,81,8 +2020-05-29,Midland,Michigan,26111,81,8 +2020-05-30,Midland,Michigan,26111,82,8 +2020-05-31,Midland,Michigan,26111,82,8 +2020-06-01,Midland,Michigan,26111,82,8 +2020-06-02,Midland,Michigan,26111,120,8 +2020-06-03,Midland,Michigan,26111,120,8 +2020-06-04,Midland,Michigan,26111,120,8 +2020-06-05,Midland,Michigan,26111,120,9 +2020-06-06,Midland,Michigan,26111,120,9 +2020-06-07,Midland,Michigan,26111,121,9 +2020-06-08,Midland,Michigan,26111,125,9 +2020-06-09,Midland,Michigan,26111,128,9 +2020-06-10,Midland,Michigan,26111,138,9 +2020-06-11,Midland,Michigan,26111,140,9 +2020-06-12,Midland,Michigan,26111,145,9 +2020-06-13,Midland,Michigan,26111,152,9 +2020-06-14,Midland,Michigan,26111,152,9 +2020-06-15,Midland,Michigan,26111,153,9 +2020-06-16,Midland,Michigan,26111,152,9 +2020-06-17,Midland,Michigan,26111,153,9 +2020-06-18,Midland,Michigan,26111,153,9 +2020-06-19,Midland,Michigan,26111,156,9 +2020-06-20,Midland,Michigan,26111,158,9 +2020-06-21,Midland,Michigan,26111,159,9 +2020-06-22,Midland,Michigan,26111,159,9 +2020-06-23,Midland,Michigan,26111,160,9 +2020-06-24,Midland,Michigan,26111,160,9 +2020-06-25,Midland,Michigan,26111,161,9 +2020-06-26,Midland,Michigan,26111,160,9 +2020-06-27,Midland,Michigan,26111,160,9 +2020-06-28,Midland,Michigan,26111,164,9 +2020-06-29,Midland,Michigan,26111,164,9 +2020-06-30,Midland,Michigan,26111,166,9 +2020-07-01,Midland,Michigan,26111,169,9 +2020-07-02,Midland,Michigan,26111,169,9 +2020-07-03,Midland,Michigan,26111,171,9 +2020-07-04,Midland,Michigan,26111,171,9 +2020-07-05,Midland,Michigan,26111,172,9 +2020-07-06,Midland,Michigan,26111,172,9 +2020-07-07,Midland,Michigan,26111,172,9 +2020-07-08,Midland,Michigan,26111,173,9 +2020-07-09,Midland,Michigan,26111,178,9 +2020-03-26,Missaukee,Michigan,26113,1,0 +2020-03-27,Missaukee,Michigan,26113,1,1 +2020-03-28,Missaukee,Michigan,26113,1,1 +2020-03-29,Missaukee,Michigan,26113,1,1 +2020-03-30,Missaukee,Michigan,26113,1,1 +2020-03-31,Missaukee,Michigan,26113,1,1 +2020-04-01,Missaukee,Michigan,26113,1,1 +2020-04-02,Missaukee,Michigan,26113,1,1 +2020-04-03,Missaukee,Michigan,26113,1,1 +2020-04-04,Missaukee,Michigan,26113,1,1 +2020-04-05,Missaukee,Michigan,26113,1,1 +2020-04-06,Missaukee,Michigan,26113,1,1 +2020-04-07,Missaukee,Michigan,26113,1,1 +2020-04-08,Missaukee,Michigan,26113,1,1 +2020-04-09,Missaukee,Michigan,26113,1,1 +2020-04-10,Missaukee,Michigan,26113,1,1 +2020-04-11,Missaukee,Michigan,26113,1,1 +2020-04-12,Missaukee,Michigan,26113,1,1 +2020-04-13,Missaukee,Michigan,26113,1,1 +2020-04-14,Missaukee,Michigan,26113,1,1 +2020-04-15,Missaukee,Michigan,26113,2,1 +2020-04-16,Missaukee,Michigan,26113,3,1 +2020-04-17,Missaukee,Michigan,26113,3,1 +2020-04-18,Missaukee,Michigan,26113,3,1 +2020-04-19,Missaukee,Michigan,26113,4,1 +2020-04-20,Missaukee,Michigan,26113,5,1 +2020-04-21,Missaukee,Michigan,26113,6,1 +2020-04-22,Missaukee,Michigan,26113,12,1 +2020-04-23,Missaukee,Michigan,26113,12,1 +2020-04-24,Missaukee,Michigan,26113,14,1 +2020-04-25,Missaukee,Michigan,26113,15,1 +2020-04-26,Missaukee,Michigan,26113,15,1 +2020-04-27,Missaukee,Michigan,26113,15,1 +2020-04-28,Missaukee,Michigan,26113,15,1 +2020-04-29,Missaukee,Michigan,26113,15,1 +2020-04-30,Missaukee,Michigan,26113,15,1 +2020-05-01,Missaukee,Michigan,26113,16,1 +2020-05-02,Missaukee,Michigan,26113,16,1 +2020-05-03,Missaukee,Michigan,26113,16,1 +2020-05-04,Missaukee,Michigan,26113,16,1 +2020-05-05,Missaukee,Michigan,26113,16,1 +2020-05-06,Missaukee,Michigan,26113,16,1 +2020-05-07,Missaukee,Michigan,26113,16,1 +2020-05-08,Missaukee,Michigan,26113,16,1 +2020-05-09,Missaukee,Michigan,26113,16,1 +2020-05-10,Missaukee,Michigan,26113,16,1 +2020-05-11,Missaukee,Michigan,26113,16,1 +2020-05-12,Missaukee,Michigan,26113,16,1 +2020-05-13,Missaukee,Michigan,26113,16,1 +2020-05-14,Missaukee,Michigan,26113,16,1 +2020-05-15,Missaukee,Michigan,26113,16,1 +2020-05-16,Missaukee,Michigan,26113,16,1 +2020-05-17,Missaukee,Michigan,26113,16,1 +2020-05-18,Missaukee,Michigan,26113,16,1 +2020-05-19,Missaukee,Michigan,26113,16,1 +2020-05-20,Missaukee,Michigan,26113,16,1 +2020-05-21,Missaukee,Michigan,26113,16,1 +2020-05-22,Missaukee,Michigan,26113,16,1 +2020-05-23,Missaukee,Michigan,26113,16,1 +2020-05-24,Missaukee,Michigan,26113,16,1 +2020-05-25,Missaukee,Michigan,26113,16,1 +2020-05-26,Missaukee,Michigan,26113,16,1 +2020-05-27,Missaukee,Michigan,26113,16,1 +2020-05-28,Missaukee,Michigan,26113,16,1 +2020-05-29,Missaukee,Michigan,26113,16,1 +2020-05-30,Missaukee,Michigan,26113,16,1 +2020-05-31,Missaukee,Michigan,26113,16,1 +2020-06-01,Missaukee,Michigan,26113,22,1 +2020-06-02,Missaukee,Michigan,26113,22,1 +2020-06-03,Missaukee,Michigan,26113,22,1 +2020-06-04,Missaukee,Michigan,26113,22,1 +2020-06-05,Missaukee,Michigan,26113,22,1 +2020-06-06,Missaukee,Michigan,26113,22,1 +2020-06-07,Missaukee,Michigan,26113,22,1 +2020-06-08,Missaukee,Michigan,26113,22,1 +2020-06-09,Missaukee,Michigan,26113,22,1 +2020-06-10,Missaukee,Michigan,26113,23,1 +2020-06-11,Missaukee,Michigan,26113,23,1 +2020-06-12,Missaukee,Michigan,26113,23,1 +2020-06-13,Missaukee,Michigan,26113,23,1 +2020-06-14,Missaukee,Michigan,26113,23,1 +2020-06-15,Missaukee,Michigan,26113,24,1 +2020-06-16,Missaukee,Michigan,26113,24,1 +2020-06-17,Missaukee,Michigan,26113,24,1 +2020-06-18,Missaukee,Michigan,26113,24,1 +2020-06-19,Missaukee,Michigan,26113,24,1 +2020-06-20,Missaukee,Michigan,26113,24,1 +2020-06-21,Missaukee,Michigan,26113,24,1 +2020-06-22,Missaukee,Michigan,26113,24,1 +2020-06-23,Missaukee,Michigan,26113,24,1 +2020-06-24,Missaukee,Michigan,26113,24,1 +2020-06-25,Missaukee,Michigan,26113,24,1 +2020-06-26,Missaukee,Michigan,26113,26,1 +2020-06-27,Missaukee,Michigan,26113,28,1 +2020-06-28,Missaukee,Michigan,26113,28,1 +2020-06-29,Missaukee,Michigan,26113,29,1 +2020-06-30,Missaukee,Michigan,26113,29,1 +2020-07-01,Missaukee,Michigan,26113,29,1 +2020-07-02,Missaukee,Michigan,26113,29,1 +2020-07-03,Missaukee,Michigan,26113,29,1 +2020-07-04,Missaukee,Michigan,26113,30,1 +2020-07-05,Missaukee,Michigan,26113,33,1 +2020-07-06,Missaukee,Michigan,26113,34,1 +2020-07-07,Missaukee,Michigan,26113,33,1 +2020-07-08,Missaukee,Michigan,26113,34,1 +2020-07-09,Missaukee,Michigan,26113,34,1 +2020-03-14,Monroe,Michigan,26115,1,0 +2020-03-15,Monroe,Michigan,26115,1,0 +2020-03-16,Monroe,Michigan,26115,1,0 +2020-03-17,Monroe,Michigan,26115,1,0 +2020-03-18,Monroe,Michigan,26115,1,0 +2020-03-19,Monroe,Michigan,26115,3,0 +2020-03-20,Monroe,Michigan,26115,3,0 +2020-03-21,Monroe,Michigan,26115,3,0 +2020-03-22,Monroe,Michigan,26115,6,0 +2020-03-23,Monroe,Michigan,26115,7,0 +2020-03-24,Monroe,Michigan,26115,12,0 +2020-03-25,Monroe,Michigan,26115,18,0 +2020-03-26,Monroe,Michigan,26115,21,0 +2020-03-27,Monroe,Michigan,26115,28,0 +2020-03-28,Monroe,Michigan,26115,34,0 +2020-03-29,Monroe,Michigan,26115,38,0 +2020-03-30,Monroe,Michigan,26115,45,0 +2020-03-31,Monroe,Michigan,26115,49,0 +2020-04-01,Monroe,Michigan,26115,58,0 +2020-04-02,Monroe,Michigan,26115,79,0 +2020-04-03,Monroe,Michigan,26115,95,0 +2020-04-04,Monroe,Michigan,26115,101,0 +2020-04-05,Monroe,Michigan,26115,108,0 +2020-04-06,Monroe,Michigan,26115,117,0 +2020-04-07,Monroe,Michigan,26115,129,0 +2020-04-08,Monroe,Michigan,26115,152,0 +2020-04-09,Monroe,Michigan,26115,165,1 +2020-04-10,Monroe,Michigan,26115,174,4 +2020-04-11,Monroe,Michigan,26115,183,7 +2020-04-12,Monroe,Michigan,26115,183,7 +2020-04-13,Monroe,Michigan,26115,190,7 +2020-04-14,Monroe,Michigan,26115,196,8 +2020-04-15,Monroe,Michigan,26115,211,9 +2020-04-16,Monroe,Michigan,26115,217,10 +2020-04-17,Monroe,Michigan,26115,223,10 +2020-04-18,Monroe,Michigan,26115,224,10 +2020-04-19,Monroe,Michigan,26115,233,10 +2020-04-20,Monroe,Michigan,26115,236,10 +2020-04-21,Monroe,Michigan,26115,241,10 +2020-04-22,Monroe,Michigan,26115,247,10 +2020-04-23,Monroe,Michigan,26115,255,10 +2020-04-24,Monroe,Michigan,26115,262,11 +2020-04-25,Monroe,Michigan,26115,267,11 +2020-04-26,Monroe,Michigan,26115,273,12 +2020-04-27,Monroe,Michigan,26115,275,12 +2020-04-28,Monroe,Michigan,26115,277,12 +2020-04-29,Monroe,Michigan,26115,284,12 +2020-04-30,Monroe,Michigan,26115,287,12 +2020-05-01,Monroe,Michigan,26115,296,12 +2020-05-02,Monroe,Michigan,26115,303,12 +2020-05-03,Monroe,Michigan,26115,311,12 +2020-05-04,Monroe,Michigan,26115,320,13 +2020-05-05,Monroe,Michigan,26115,327,13 +2020-05-06,Monroe,Michigan,26115,354,15 +2020-05-07,Monroe,Michigan,26115,371,15 +2020-05-08,Monroe,Michigan,26115,383,16 +2020-05-09,Monroe,Michigan,26115,387,16 +2020-05-10,Monroe,Michigan,26115,389,16 +2020-05-11,Monroe,Michigan,26115,393,17 +2020-05-12,Monroe,Michigan,26115,399,18 +2020-05-13,Monroe,Michigan,26115,404,18 +2020-05-14,Monroe,Michigan,26115,415,18 +2020-05-15,Monroe,Michigan,26115,417,18 +2020-05-16,Monroe,Michigan,26115,420,18 +2020-05-17,Monroe,Michigan,26115,429,18 +2020-05-18,Monroe,Michigan,26115,433,18 +2020-05-19,Monroe,Michigan,26115,433,18 +2020-05-20,Monroe,Michigan,26115,438,18 +2020-05-21,Monroe,Michigan,26115,442,18 +2020-05-22,Monroe,Michigan,26115,455,19 +2020-05-23,Monroe,Michigan,26115,461,19 +2020-05-24,Monroe,Michigan,26115,461,19 +2020-05-25,Monroe,Michigan,26115,463,19 +2020-05-26,Monroe,Michigan,26115,464,19 +2020-05-27,Monroe,Michigan,26115,464,19 +2020-05-28,Monroe,Michigan,26115,468,19 +2020-05-29,Monroe,Michigan,26115,469,19 +2020-05-30,Monroe,Michigan,26115,468,19 +2020-05-31,Monroe,Michigan,26115,474,19 +2020-06-01,Monroe,Michigan,26115,473,21 +2020-06-02,Monroe,Michigan,26115,472,21 +2020-06-03,Monroe,Michigan,26115,473,20 +2020-06-04,Monroe,Michigan,26115,474,20 +2020-06-05,Monroe,Michigan,26115,553,21 +2020-06-06,Monroe,Michigan,26115,556,21 +2020-06-07,Monroe,Michigan,26115,557,21 +2020-06-08,Monroe,Michigan,26115,559,21 +2020-06-09,Monroe,Michigan,26115,560,21 +2020-06-10,Monroe,Michigan,26115,560,21 +2020-06-11,Monroe,Michigan,26115,561,21 +2020-06-12,Monroe,Michigan,26115,562,21 +2020-06-13,Monroe,Michigan,26115,568,21 +2020-06-14,Monroe,Michigan,26115,569,21 +2020-06-15,Monroe,Michigan,26115,570,21 +2020-06-16,Monroe,Michigan,26115,571,21 +2020-06-17,Monroe,Michigan,26115,570,21 +2020-06-18,Monroe,Michigan,26115,571,21 +2020-06-19,Monroe,Michigan,26115,575,21 +2020-06-20,Monroe,Michigan,26115,576,21 +2020-06-21,Monroe,Michigan,26115,576,21 +2020-06-22,Monroe,Michigan,26115,581,21 +2020-06-23,Monroe,Michigan,26115,580,21 +2020-06-24,Monroe,Michigan,26115,583,21 +2020-06-25,Monroe,Michigan,26115,591,21 +2020-06-26,Monroe,Michigan,26115,597,21 +2020-06-27,Monroe,Michigan,26115,602,21 +2020-06-28,Monroe,Michigan,26115,603,21 +2020-06-29,Monroe,Michigan,26115,606,21 +2020-06-30,Monroe,Michigan,26115,617,21 +2020-07-01,Monroe,Michigan,26115,618,21 +2020-07-02,Monroe,Michigan,26115,619,21 +2020-07-03,Monroe,Michigan,26115,626,21 +2020-07-04,Monroe,Michigan,26115,629,21 +2020-07-05,Monroe,Michigan,26115,633,21 +2020-07-06,Monroe,Michigan,26115,641,21 +2020-07-07,Monroe,Michigan,26115,647,21 +2020-07-08,Monroe,Michigan,26115,653,21 +2020-07-09,Monroe,Michigan,26115,656,21 +2020-03-12,Montcalm,Michigan,26117,1,0 +2020-03-13,Montcalm,Michigan,26117,1,0 +2020-03-14,Montcalm,Michigan,26117,1,0 +2020-03-15,Montcalm,Michigan,26117,1,0 +2020-03-16,Montcalm,Michigan,26117,1,0 +2020-03-17,Montcalm,Michigan,26117,1,0 +2020-03-18,Montcalm,Michigan,26117,1,0 +2020-03-19,Montcalm,Michigan,26117,1,0 +2020-03-20,Montcalm,Michigan,26117,1,0 +2020-03-21,Montcalm,Michigan,26117,1,0 +2020-03-22,Montcalm,Michigan,26117,1,0 +2020-03-23,Montcalm,Michigan,26117,1,0 +2020-03-24,Montcalm,Michigan,26117,1,0 +2020-03-25,Montcalm,Michigan,26117,2,0 +2020-03-26,Montcalm,Michigan,26117,3,0 +2020-03-27,Montcalm,Michigan,26117,3,0 +2020-03-28,Montcalm,Michigan,26117,3,0 +2020-03-29,Montcalm,Michigan,26117,3,0 +2020-03-30,Montcalm,Michigan,26117,4,0 +2020-03-31,Montcalm,Michigan,26117,5,0 +2020-04-01,Montcalm,Michigan,26117,10,0 +2020-04-02,Montcalm,Michigan,26117,10,0 +2020-04-03,Montcalm,Michigan,26117,12,0 +2020-04-04,Montcalm,Michigan,26117,13,0 +2020-04-05,Montcalm,Michigan,26117,14,0 +2020-04-06,Montcalm,Michigan,26117,15,0 +2020-04-07,Montcalm,Michigan,26117,16,1 +2020-04-08,Montcalm,Michigan,26117,18,1 +2020-04-09,Montcalm,Michigan,26117,19,1 +2020-04-10,Montcalm,Michigan,26117,20,1 +2020-04-11,Montcalm,Michigan,26117,21,1 +2020-04-12,Montcalm,Michigan,26117,22,1 +2020-04-13,Montcalm,Michigan,26117,22,1 +2020-04-14,Montcalm,Michigan,26117,23,1 +2020-04-15,Montcalm,Michigan,26117,23,1 +2020-04-16,Montcalm,Michigan,26117,23,1 +2020-04-17,Montcalm,Michigan,26117,24,1 +2020-04-18,Montcalm,Michigan,26117,24,1 +2020-04-19,Montcalm,Michigan,26117,24,1 +2020-04-20,Montcalm,Michigan,26117,26,1 +2020-04-21,Montcalm,Michigan,26117,26,1 +2020-04-22,Montcalm,Michigan,26117,26,1 +2020-04-23,Montcalm,Michigan,26117,28,1 +2020-04-24,Montcalm,Michigan,26117,28,1 +2020-04-25,Montcalm,Michigan,26117,29,1 +2020-04-26,Montcalm,Michigan,26117,32,1 +2020-04-27,Montcalm,Michigan,26117,32,1 +2020-04-28,Montcalm,Michigan,26117,37,1 +2020-04-29,Montcalm,Michigan,26117,38,1 +2020-04-30,Montcalm,Michigan,26117,40,1 +2020-05-01,Montcalm,Michigan,26117,40,1 +2020-05-02,Montcalm,Michigan,26117,45,1 +2020-05-03,Montcalm,Michigan,26117,44,1 +2020-05-04,Montcalm,Michigan,26117,45,1 +2020-05-05,Montcalm,Michigan,26117,46,1 +2020-05-06,Montcalm,Michigan,26117,46,1 +2020-05-07,Montcalm,Michigan,26117,46,1 +2020-05-08,Montcalm,Michigan,26117,46,1 +2020-05-09,Montcalm,Michigan,26117,46,1 +2020-05-10,Montcalm,Michigan,26117,46,1 +2020-05-11,Montcalm,Michigan,26117,46,1 +2020-05-12,Montcalm,Michigan,26117,47,1 +2020-05-13,Montcalm,Michigan,26117,52,1 +2020-05-14,Montcalm,Michigan,26117,52,1 +2020-05-15,Montcalm,Michigan,26117,52,1 +2020-05-16,Montcalm,Michigan,26117,53,1 +2020-05-17,Montcalm,Michigan,26117,53,1 +2020-05-18,Montcalm,Michigan,26117,57,1 +2020-05-19,Montcalm,Michigan,26117,58,1 +2020-05-20,Montcalm,Michigan,26117,62,1 +2020-05-21,Montcalm,Michigan,26117,64,1 +2020-05-22,Montcalm,Michigan,26117,65,1 +2020-05-23,Montcalm,Michigan,26117,68,1 +2020-05-24,Montcalm,Michigan,26117,67,1 +2020-05-25,Montcalm,Michigan,26117,67,1 +2020-05-26,Montcalm,Michigan,26117,67,1 +2020-05-27,Montcalm,Michigan,26117,67,1 +2020-05-28,Montcalm,Michigan,26117,67,1 +2020-05-29,Montcalm,Michigan,26117,67,1 +2020-05-30,Montcalm,Michigan,26117,67,1 +2020-05-31,Montcalm,Michigan,26117,68,1 +2020-06-01,Montcalm,Michigan,26117,68,1 +2020-06-02,Montcalm,Michigan,26117,68,1 +2020-06-03,Montcalm,Michigan,26117,69,1 +2020-06-04,Montcalm,Michigan,26117,71,1 +2020-06-05,Montcalm,Michigan,26117,76,1 +2020-06-06,Montcalm,Michigan,26117,78,1 +2020-06-07,Montcalm,Michigan,26117,79,1 +2020-06-08,Montcalm,Michigan,26117,80,1 +2020-06-09,Montcalm,Michigan,26117,81,1 +2020-06-10,Montcalm,Michigan,26117,83,1 +2020-06-11,Montcalm,Michigan,26117,83,1 +2020-06-12,Montcalm,Michigan,26117,82,1 +2020-06-13,Montcalm,Michigan,26117,82,1 +2020-06-14,Montcalm,Michigan,26117,82,1 +2020-06-15,Montcalm,Michigan,26117,82,1 +2020-06-16,Montcalm,Michigan,26117,83,1 +2020-06-17,Montcalm,Michigan,26117,83,1 +2020-06-18,Montcalm,Michigan,26117,83,1 +2020-06-19,Montcalm,Michigan,26117,83,1 +2020-06-20,Montcalm,Michigan,26117,85,1 +2020-06-21,Montcalm,Michigan,26117,85,1 +2020-06-22,Montcalm,Michigan,26117,85,1 +2020-06-23,Montcalm,Michigan,26117,85,1 +2020-06-24,Montcalm,Michigan,26117,85,1 +2020-06-25,Montcalm,Michigan,26117,85,1 +2020-06-26,Montcalm,Michigan,26117,87,1 +2020-06-27,Montcalm,Michigan,26117,88,1 +2020-06-28,Montcalm,Michigan,26117,88,1 +2020-06-29,Montcalm,Michigan,26117,89,1 +2020-06-30,Montcalm,Michigan,26117,90,1 +2020-07-01,Montcalm,Michigan,26117,93,1 +2020-07-02,Montcalm,Michigan,26117,98,1 +2020-07-03,Montcalm,Michigan,26117,100,1 +2020-07-04,Montcalm,Michigan,26117,104,1 +2020-07-05,Montcalm,Michigan,26117,110,1 +2020-07-06,Montcalm,Michigan,26117,111,1 +2020-07-07,Montcalm,Michigan,26117,113,1 +2020-07-08,Montcalm,Michigan,26117,120,1 +2020-07-09,Montcalm,Michigan,26117,122,1 +2020-04-13,Montmorency,Michigan,26119,1,0 +2020-04-14,Montmorency,Michigan,26119,1,0 +2020-04-15,Montmorency,Michigan,26119,1,0 +2020-04-16,Montmorency,Michigan,26119,2,0 +2020-04-17,Montmorency,Michigan,26119,3,0 +2020-04-18,Montmorency,Michigan,26119,4,0 +2020-04-19,Montmorency,Michigan,26119,4,0 +2020-04-20,Montmorency,Michigan,26119,4,0 +2020-04-21,Montmorency,Michigan,26119,4,0 +2020-04-22,Montmorency,Michigan,26119,6,0 +2020-04-23,Montmorency,Michigan,26119,5,0 +2020-04-24,Montmorency,Michigan,26119,6,0 +2020-04-25,Montmorency,Michigan,26119,5,0 +2020-04-26,Montmorency,Michigan,26119,5,0 +2020-04-27,Montmorency,Michigan,26119,5,0 +2020-04-28,Montmorency,Michigan,26119,5,0 +2020-04-29,Montmorency,Michigan,26119,5,0 +2020-04-30,Montmorency,Michigan,26119,5,0 +2020-05-01,Montmorency,Michigan,26119,5,0 +2020-05-02,Montmorency,Michigan,26119,5,0 +2020-05-03,Montmorency,Michigan,26119,5,0 +2020-05-04,Montmorency,Michigan,26119,5,0 +2020-05-05,Montmorency,Michigan,26119,5,0 +2020-05-06,Montmorency,Michigan,26119,5,0 +2020-05-07,Montmorency,Michigan,26119,5,0 +2020-05-08,Montmorency,Michigan,26119,5,0 +2020-05-09,Montmorency,Michigan,26119,5,0 +2020-05-10,Montmorency,Michigan,26119,5,0 +2020-05-11,Montmorency,Michigan,26119,5,0 +2020-05-12,Montmorency,Michigan,26119,5,0 +2020-05-13,Montmorency,Michigan,26119,5,0 +2020-05-14,Montmorency,Michigan,26119,5,0 +2020-05-15,Montmorency,Michigan,26119,5,0 +2020-05-16,Montmorency,Michigan,26119,5,0 +2020-05-17,Montmorency,Michigan,26119,5,0 +2020-05-18,Montmorency,Michigan,26119,5,0 +2020-05-19,Montmorency,Michigan,26119,5,0 +2020-05-20,Montmorency,Michigan,26119,5,0 +2020-05-21,Montmorency,Michigan,26119,5,0 +2020-05-22,Montmorency,Michigan,26119,5,0 +2020-05-23,Montmorency,Michigan,26119,5,0 +2020-05-24,Montmorency,Michigan,26119,5,0 +2020-05-25,Montmorency,Michigan,26119,5,0 +2020-05-26,Montmorency,Michigan,26119,5,0 +2020-05-27,Montmorency,Michigan,26119,5,0 +2020-05-28,Montmorency,Michigan,26119,5,0 +2020-05-29,Montmorency,Michigan,26119,5,0 +2020-05-30,Montmorency,Michigan,26119,5,0 +2020-05-31,Montmorency,Michigan,26119,5,0 +2020-06-01,Montmorency,Michigan,26119,5,0 +2020-06-02,Montmorency,Michigan,26119,5,0 +2020-06-03,Montmorency,Michigan,26119,5,0 +2020-06-04,Montmorency,Michigan,26119,5,0 +2020-06-05,Montmorency,Michigan,26119,5,0 +2020-06-06,Montmorency,Michigan,26119,5,0 +2020-06-07,Montmorency,Michigan,26119,5,0 +2020-06-08,Montmorency,Michigan,26119,5,0 +2020-06-09,Montmorency,Michigan,26119,5,0 +2020-06-10,Montmorency,Michigan,26119,5,0 +2020-06-11,Montmorency,Michigan,26119,5,0 +2020-06-12,Montmorency,Michigan,26119,5,0 +2020-06-13,Montmorency,Michigan,26119,5,0 +2020-06-14,Montmorency,Michigan,26119,5,0 +2020-06-15,Montmorency,Michigan,26119,5,0 +2020-06-16,Montmorency,Michigan,26119,5,0 +2020-06-17,Montmorency,Michigan,26119,5,0 +2020-06-18,Montmorency,Michigan,26119,5,0 +2020-06-19,Montmorency,Michigan,26119,5,0 +2020-06-20,Montmorency,Michigan,26119,5,0 +2020-06-21,Montmorency,Michigan,26119,5,0 +2020-06-22,Montmorency,Michigan,26119,5,0 +2020-06-23,Montmorency,Michigan,26119,5,0 +2020-06-24,Montmorency,Michigan,26119,5,0 +2020-06-25,Montmorency,Michigan,26119,5,0 +2020-06-26,Montmorency,Michigan,26119,5,0 +2020-06-27,Montmorency,Michigan,26119,5,0 +2020-06-28,Montmorency,Michigan,26119,5,0 +2020-06-29,Montmorency,Michigan,26119,5,0 +2020-06-30,Montmorency,Michigan,26119,5,0 +2020-07-01,Montmorency,Michigan,26119,5,0 +2020-07-02,Montmorency,Michigan,26119,5,0 +2020-07-03,Montmorency,Michigan,26119,5,0 +2020-07-04,Montmorency,Michigan,26119,5,0 +2020-07-05,Montmorency,Michigan,26119,5,0 +2020-07-06,Montmorency,Michigan,26119,5,0 +2020-07-07,Montmorency,Michigan,26119,5,0 +2020-07-08,Montmorency,Michigan,26119,5,0 +2020-07-09,Montmorency,Michigan,26119,5,0 +2020-03-23,Muskegon,Michigan,26121,1,0 +2020-03-24,Muskegon,Michigan,26121,3,0 +2020-03-25,Muskegon,Michigan,26121,3,0 +2020-03-26,Muskegon,Michigan,26121,3,0 +2020-03-27,Muskegon,Michigan,26121,6,2 +2020-03-28,Muskegon,Michigan,26121,7,2 +2020-03-29,Muskegon,Michigan,26121,13,2 +2020-03-30,Muskegon,Michigan,26121,18,2 +2020-03-31,Muskegon,Michigan,26121,18,2 +2020-04-01,Muskegon,Michigan,26121,18,2 +2020-04-02,Muskegon,Michigan,26121,26,2 +2020-04-03,Muskegon,Michigan,26121,30,2 +2020-04-04,Muskegon,Michigan,26121,31,2 +2020-04-05,Muskegon,Michigan,26121,31,4 +2020-04-06,Muskegon,Michigan,26121,33,4 +2020-04-07,Muskegon,Michigan,26121,41,4 +2020-04-08,Muskegon,Michigan,26121,42,4 +2020-04-09,Muskegon,Michigan,26121,53,4 +2020-04-10,Muskegon,Michigan,26121,57,4 +2020-04-11,Muskegon,Michigan,26121,57,4 +2020-04-12,Muskegon,Michigan,26121,59,4 +2020-04-13,Muskegon,Michigan,26121,68,4 +2020-04-14,Muskegon,Michigan,26121,85,5 +2020-04-15,Muskegon,Michigan,26121,93,5 +2020-04-16,Muskegon,Michigan,26121,110,5 +2020-04-17,Muskegon,Michigan,26121,128,5 +2020-04-18,Muskegon,Michigan,26121,136,5 +2020-04-19,Muskegon,Michigan,26121,143,6 +2020-04-20,Muskegon,Michigan,26121,149,7 +2020-04-21,Muskegon,Michigan,26121,160,10 +2020-04-22,Muskegon,Michigan,26121,173,11 +2020-04-23,Muskegon,Michigan,26121,186,12 +2020-04-24,Muskegon,Michigan,26121,204,13 +2020-04-25,Muskegon,Michigan,26121,213,13 +2020-04-26,Muskegon,Michigan,26121,228,13 +2020-04-27,Muskegon,Michigan,26121,234,13 +2020-04-28,Muskegon,Michigan,26121,242,15 +2020-04-29,Muskegon,Michigan,26121,262,16 +2020-04-30,Muskegon,Michigan,26121,276,17 +2020-05-01,Muskegon,Michigan,26121,288,17 +2020-05-02,Muskegon,Michigan,26121,301,17 +2020-05-03,Muskegon,Michigan,26121,304,17 +2020-05-04,Muskegon,Michigan,26121,313,17 +2020-05-05,Muskegon,Michigan,26121,318,18 +2020-05-06,Muskegon,Michigan,26121,335,19 +2020-05-07,Muskegon,Michigan,26121,344,19 +2020-05-08,Muskegon,Michigan,26121,344,19 +2020-05-09,Muskegon,Michigan,26121,354,20 +2020-05-10,Muskegon,Michigan,26121,367,20 +2020-05-11,Muskegon,Michigan,26121,384,20 +2020-05-12,Muskegon,Michigan,26121,401,20 +2020-05-13,Muskegon,Michigan,26121,406,20 +2020-05-14,Muskegon,Michigan,26121,435,21 +2020-05-15,Muskegon,Michigan,26121,452,22 +2020-05-16,Muskegon,Michigan,26121,468,23 +2020-05-17,Muskegon,Michigan,26121,486,24 +2020-05-18,Muskegon,Michigan,26121,513,24 +2020-05-19,Muskegon,Michigan,26121,519,25 +2020-05-20,Muskegon,Michigan,26121,530,26 +2020-05-21,Muskegon,Michigan,26121,552,26 +2020-05-22,Muskegon,Michigan,26121,561,26 +2020-05-23,Muskegon,Michigan,26121,583,28 +2020-05-24,Muskegon,Michigan,26121,590,30 +2020-05-25,Muskegon,Michigan,26121,603,31 +2020-05-26,Muskegon,Michigan,26121,604,31 +2020-05-27,Muskegon,Michigan,26121,606,33 +2020-05-28,Muskegon,Michigan,26121,619,36 +2020-05-29,Muskegon,Michigan,26121,631,36 +2020-05-30,Muskegon,Michigan,26121,636,36 +2020-05-31,Muskegon,Michigan,26121,643,36 +2020-06-01,Muskegon,Michigan,26121,645,36 +2020-06-02,Muskegon,Michigan,26121,648,37 +2020-06-03,Muskegon,Michigan,26121,657,37 +2020-06-04,Muskegon,Michigan,26121,675,37 +2020-06-05,Muskegon,Michigan,26121,690,38 +2020-06-06,Muskegon,Michigan,26121,692,39 +2020-06-07,Muskegon,Michigan,26121,706,39 +2020-06-08,Muskegon,Michigan,26121,709,40 +2020-06-09,Muskegon,Michigan,26121,714,40 +2020-06-10,Muskegon,Michigan,26121,726,40 +2020-06-11,Muskegon,Michigan,26121,730,40 +2020-06-12,Muskegon,Michigan,26121,733,40 +2020-06-13,Muskegon,Michigan,26121,734,42 +2020-06-14,Muskegon,Michigan,26121,740,42 +2020-06-15,Muskegon,Michigan,26121,742,42 +2020-06-16,Muskegon,Michigan,26121,742,43 +2020-06-17,Muskegon,Michigan,26121,748,43 +2020-06-18,Muskegon,Michigan,26121,759,46 +2020-06-19,Muskegon,Michigan,26121,768,46 +2020-06-20,Muskegon,Michigan,26121,775,49 +2020-06-21,Muskegon,Michigan,26121,784,49 +2020-06-22,Muskegon,Michigan,26121,786,49 +2020-06-23,Muskegon,Michigan,26121,790,49 +2020-06-24,Muskegon,Michigan,26121,793,49 +2020-06-25,Muskegon,Michigan,26121,796,49 +2020-06-26,Muskegon,Michigan,26121,806,49 +2020-06-27,Muskegon,Michigan,26121,806,50 +2020-06-28,Muskegon,Michigan,26121,807,50 +2020-06-29,Muskegon,Michigan,26121,811,50 +2020-06-30,Muskegon,Michigan,26121,815,51 +2020-07-01,Muskegon,Michigan,26121,821,51 +2020-07-02,Muskegon,Michigan,26121,827,52 +2020-07-03,Muskegon,Michigan,26121,842,52 +2020-07-04,Muskegon,Michigan,26121,850,51 +2020-07-05,Muskegon,Michigan,26121,858,51 +2020-07-06,Muskegon,Michigan,26121,861,51 +2020-07-07,Muskegon,Michigan,26121,867,53 +2020-07-08,Muskegon,Michigan,26121,877,53 +2020-07-09,Muskegon,Michigan,26121,881,53 +2020-03-23,Newaygo,Michigan,26123,1,0 +2020-03-24,Newaygo,Michigan,26123,2,0 +2020-03-25,Newaygo,Michigan,26123,2,0 +2020-03-26,Newaygo,Michigan,26123,1,0 +2020-03-27,Newaygo,Michigan,26123,1,0 +2020-03-28,Newaygo,Michigan,26123,1,0 +2020-03-29,Newaygo,Michigan,26123,1,0 +2020-03-30,Newaygo,Michigan,26123,1,0 +2020-03-31,Newaygo,Michigan,26123,1,0 +2020-04-01,Newaygo,Michigan,26123,1,0 +2020-04-02,Newaygo,Michigan,26123,2,0 +2020-04-03,Newaygo,Michigan,26123,2,0 +2020-04-04,Newaygo,Michigan,26123,2,0 +2020-04-05,Newaygo,Michigan,26123,2,0 +2020-04-06,Newaygo,Michigan,26123,2,0 +2020-04-07,Newaygo,Michigan,26123,3,0 +2020-04-08,Newaygo,Michigan,26123,3,0 +2020-04-09,Newaygo,Michigan,26123,3,0 +2020-04-10,Newaygo,Michigan,26123,4,0 +2020-04-11,Newaygo,Michigan,26123,6,0 +2020-04-12,Newaygo,Michigan,26123,6,0 +2020-04-13,Newaygo,Michigan,26123,6,0 +2020-04-14,Newaygo,Michigan,26123,7,0 +2020-04-15,Newaygo,Michigan,26123,7,0 +2020-04-16,Newaygo,Michigan,26123,7,0 +2020-04-17,Newaygo,Michigan,26123,7,0 +2020-04-18,Newaygo,Michigan,26123,7,0 +2020-04-19,Newaygo,Michigan,26123,7,0 +2020-04-20,Newaygo,Michigan,26123,7,0 +2020-04-21,Newaygo,Michigan,26123,10,0 +2020-04-22,Newaygo,Michigan,26123,12,0 +2020-04-23,Newaygo,Michigan,26123,12,0 +2020-04-24,Newaygo,Michigan,26123,13,0 +2020-04-25,Newaygo,Michigan,26123,14,0 +2020-04-26,Newaygo,Michigan,26123,15,0 +2020-04-27,Newaygo,Michigan,26123,14,0 +2020-04-28,Newaygo,Michigan,26123,16,0 +2020-04-29,Newaygo,Michigan,26123,22,0 +2020-04-30,Newaygo,Michigan,26123,22,0 +2020-05-01,Newaygo,Michigan,26123,24,0 +2020-05-02,Newaygo,Michigan,26123,26,0 +2020-05-03,Newaygo,Michigan,26123,26,0 +2020-05-04,Newaygo,Michigan,26123,28,0 +2020-05-05,Newaygo,Michigan,26123,31,0 +2020-05-06,Newaygo,Michigan,26123,32,0 +2020-05-07,Newaygo,Michigan,26123,34,0 +2020-05-08,Newaygo,Michigan,26123,34,0 +2020-05-09,Newaygo,Michigan,26123,34,0 +2020-05-10,Newaygo,Michigan,26123,34,0 +2020-05-11,Newaygo,Michigan,26123,35,0 +2020-05-12,Newaygo,Michigan,26123,36,0 +2020-05-13,Newaygo,Michigan,26123,37,0 +2020-05-14,Newaygo,Michigan,26123,38,0 +2020-05-15,Newaygo,Michigan,26123,41,0 +2020-05-16,Newaygo,Michigan,26123,41,0 +2020-05-17,Newaygo,Michigan,26123,43,0 +2020-05-18,Newaygo,Michigan,26123,50,0 +2020-05-19,Newaygo,Michigan,26123,51,0 +2020-05-20,Newaygo,Michigan,26123,63,0 +2020-05-21,Newaygo,Michigan,26123,71,0 +2020-05-22,Newaygo,Michigan,26123,75,0 +2020-05-23,Newaygo,Michigan,26123,79,0 +2020-05-24,Newaygo,Michigan,26123,89,0 +2020-05-25,Newaygo,Michigan,26123,91,0 +2020-05-26,Newaygo,Michigan,26123,92,0 +2020-05-27,Newaygo,Michigan,26123,96,0 +2020-05-28,Newaygo,Michigan,26123,101,0 +2020-05-29,Newaygo,Michigan,26123,103,0 +2020-05-30,Newaygo,Michigan,26123,105,0 +2020-05-31,Newaygo,Michigan,26123,105,0 +2020-06-01,Newaygo,Michigan,26123,113,0 +2020-06-02,Newaygo,Michigan,26123,114,0 +2020-06-03,Newaygo,Michigan,26123,114,0 +2020-06-04,Newaygo,Michigan,26123,118,0 +2020-06-05,Newaygo,Michigan,26123,121,0 +2020-06-06,Newaygo,Michigan,26123,121,0 +2020-06-07,Newaygo,Michigan,26123,121,0 +2020-06-08,Newaygo,Michigan,26123,120,0 +2020-06-09,Newaygo,Michigan,26123,123,0 +2020-06-10,Newaygo,Michigan,26123,125,0 +2020-06-11,Newaygo,Michigan,26123,125,0 +2020-06-12,Newaygo,Michigan,26123,125,0 +2020-06-13,Newaygo,Michigan,26123,126,0 +2020-06-14,Newaygo,Michigan,26123,127,0 +2020-06-15,Newaygo,Michigan,26123,127,0 +2020-06-16,Newaygo,Michigan,26123,128,0 +2020-06-17,Newaygo,Michigan,26123,130,0 +2020-06-18,Newaygo,Michigan,26123,131,0 +2020-06-19,Newaygo,Michigan,26123,131,0 +2020-06-20,Newaygo,Michigan,26123,134,0 +2020-06-21,Newaygo,Michigan,26123,139,0 +2020-06-22,Newaygo,Michigan,26123,142,0 +2020-06-23,Newaygo,Michigan,26123,145,0 +2020-06-24,Newaygo,Michigan,26123,151,0 +2020-06-25,Newaygo,Michigan,26123,162,0 +2020-06-26,Newaygo,Michigan,26123,163,0 +2020-06-27,Newaygo,Michigan,26123,163,0 +2020-06-28,Newaygo,Michigan,26123,163,0 +2020-06-29,Newaygo,Michigan,26123,165,0 +2020-06-30,Newaygo,Michigan,26123,167,0 +2020-07-01,Newaygo,Michigan,26123,169,0 +2020-07-02,Newaygo,Michigan,26123,176,0 +2020-07-03,Newaygo,Michigan,26123,177,0 +2020-07-04,Newaygo,Michigan,26123,179,0 +2020-07-05,Newaygo,Michigan,26123,180,0 +2020-07-06,Newaygo,Michigan,26123,182,0 +2020-07-07,Newaygo,Michigan,26123,182,0 +2020-07-08,Newaygo,Michigan,26123,184,0 +2020-07-09,Newaygo,Michigan,26123,189,0 +2020-03-10,Oakland,Michigan,26125,1,0 +2020-03-11,Oakland,Michigan,26125,1,0 +2020-03-12,Oakland,Michigan,26125,3,0 +2020-03-13,Oakland,Michigan,26125,6,0 +2020-03-14,Oakland,Michigan,26125,9,0 +2020-03-15,Oakland,Michigan,26125,14,0 +2020-03-16,Oakland,Michigan,26125,14,0 +2020-03-17,Oakland,Michigan,26125,16,0 +2020-03-18,Oakland,Michigan,26125,23,0 +2020-03-19,Oakland,Michigan,26125,105,0 +2020-03-20,Oakland,Michigan,26125,184,1 +2020-03-21,Oakland,Michigan,26125,229,1 +2020-03-22,Oakland,Michigan,26125,277,1 +2020-03-23,Oakland,Michigan,26125,329,4 +2020-03-24,Oakland,Michigan,26125,428,4 +2020-03-25,Oakland,Michigan,26125,543,10 +2020-03-26,Oakland,Michigan,26125,695,17 +2020-03-27,Oakland,Michigan,26125,824,26 +2020-03-28,Oakland,Michigan,26125,1018,31 +2020-03-29,Oakland,Michigan,26125,1170,34 +2020-03-30,Oakland,Michigan,26125,1391,59 +2020-03-31,Oakland,Michigan,26125,1620,75 +2020-04-01,Oakland,Michigan,26125,1910,99 +2020-04-02,Oakland,Michigan,26125,2227,120 +2020-04-03,Oakland,Michigan,26125,2540,136 +2020-04-04,Oakland,Michigan,26125,2785,142 +2020-04-05,Oakland,Michigan,26125,3074,165 +2020-04-06,Oakland,Michigan,26125,3380,185 +2020-04-07,Oakland,Michigan,26125,3736,205 +2020-04-08,Oakland,Michigan,26125,4007,234 +2020-04-09,Oakland,Michigan,26125,4247,246 +2020-04-10,Oakland,Michigan,26125,4511,282 +2020-04-11,Oakland,Michigan,26125,4802,316 +2020-04-12,Oakland,Michigan,26125,4915,329 +2020-04-13,Oakland,Michigan,26125,5073,347 +2020-04-14,Oakland,Michigan,26125,5364,364 +2020-04-15,Oakland,Michigan,26125,5576,392 +2020-04-16,Oakland,Michigan,26125,5778,420 +2020-04-17,Oakland,Michigan,26125,5901,442 +2020-04-18,Oakland,Michigan,26125,6021,458 +2020-04-19,Oakland,Michigan,26125,6109,471 +2020-04-20,Oakland,Michigan,26125,6178,479 +2020-04-21,Oakland,Michigan,26125,6306,506 +2020-04-22,Oakland,Michigan,26125,6463,529 +2020-04-23,Oakland,Michigan,26125,6634,567 +2020-04-24,Oakland,Michigan,26125,6804,585 +2020-04-25,Oakland,Michigan,26125,6881,612 +2020-04-26,Oakland,Michigan,26125,6928,620 +2020-04-27,Oakland,Michigan,26125,6913,631 +2020-04-28,Oakland,Michigan,26125,7012,654 +2020-04-29,Oakland,Michigan,26125,7159,668 +2020-04-30,Oakland,Michigan,26125,7267,696 +2020-05-01,Oakland,Michigan,26125,7423,705 +2020-05-02,Oakland,Michigan,26125,7475,745 +2020-05-03,Oakland,Michigan,26125,7518,757 +2020-05-04,Oakland,Michigan,26125,7499,762 +2020-05-05,Oakland,Michigan,26125,7522,772 +2020-05-06,Oakland,Michigan,26125,7573,774 +2020-05-07,Oakland,Michigan,26125,7624,789 +2020-05-08,Oakland,Michigan,26125,7664,805 +2020-05-09,Oakland,Michigan,26125,7692,841 +2020-05-10,Oakland,Michigan,26125,7736,843 +2020-05-11,Oakland,Michigan,26125,7752,849 +2020-05-12,Oakland,Michigan,26125,7784,872 +2020-05-13,Oakland,Michigan,26125,7830,874 +2020-05-14,Oakland,Michigan,26125,7952,888 +2020-05-15,Oakland,Michigan,26125,7994,896 +2020-05-16,Oakland,Michigan,26125,8023,910 +2020-05-17,Oakland,Michigan,26125,8043,912 +2020-05-18,Oakland,Michigan,26125,8050,913 +2020-05-19,Oakland,Michigan,26125,8078,928 +2020-05-20,Oakland,Michigan,26125,8117,935 +2020-05-21,Oakland,Michigan,26125,8125,945 +2020-05-22,Oakland,Michigan,26125,8131,944 +2020-05-23,Oakland,Michigan,26125,8192,954 +2020-05-24,Oakland,Michigan,26125,8215,955 +2020-05-25,Oakland,Michigan,26125,8226,955 +2020-05-26,Oakland,Michigan,26125,8240,958 +2020-05-27,Oakland,Michigan,26125,8260,961 +2020-05-28,Oakland,Michigan,26125,8281,971 +2020-05-29,Oakland,Michigan,26125,8311,975 +2020-05-30,Oakland,Michigan,26125,8319,983 +2020-05-31,Oakland,Michigan,26125,8396,988 +2020-06-01,Oakland,Michigan,26125,8407,992 +2020-06-02,Oakland,Michigan,26125,8412,999 +2020-06-03,Oakland,Michigan,26125,8425,1003 +2020-06-04,Oakland,Michigan,26125,8438,1006 +2020-06-05,Oakland,Michigan,26125,10859,1048 +2020-06-06,Oakland,Michigan,26125,10980,1055 +2020-06-07,Oakland,Michigan,26125,11005,1055 +2020-06-08,Oakland,Michigan,26125,11133,1056 +2020-06-09,Oakland,Michigan,26125,11255,1056 +2020-06-10,Oakland,Michigan,26125,11262,1058 +2020-06-11,Oakland,Michigan,26125,11283,1061 +2020-06-12,Oakland,Michigan,26125,11286,1062 +2020-06-13,Oakland,Michigan,26125,11298,1067 +2020-06-14,Oakland,Michigan,26125,11306,1067 +2020-06-15,Oakland,Michigan,26125,11313,1067 +2020-06-16,Oakland,Michigan,26125,11372,1069 +2020-06-17,Oakland,Michigan,26125,11384,1069 +2020-06-18,Oakland,Michigan,26125,11425,1071 +2020-06-19,Oakland,Michigan,26125,11485,1071 +2020-06-20,Oakland,Michigan,26125,11667,1076 +2020-06-21,Oakland,Michigan,26125,11685,1077 +2020-06-22,Oakland,Michigan,26125,11740,1078 +2020-06-23,Oakland,Michigan,26125,11791,1081 +2020-06-24,Oakland,Michigan,26125,11805,1081 +2020-06-25,Oakland,Michigan,26125,11826,1084 +2020-06-26,Oakland,Michigan,26125,11843,1084 +2020-06-27,Oakland,Michigan,26125,11886,1085 +2020-06-28,Oakland,Michigan,26125,11916,1085 +2020-06-29,Oakland,Michigan,26125,11942,1085 +2020-06-30,Oakland,Michigan,26125,12017,1090 +2020-07-01,Oakland,Michigan,26125,12051,1091 +2020-07-02,Oakland,Michigan,26125,12108,1091 +2020-07-03,Oakland,Michigan,26125,12160,1091 +2020-07-04,Oakland,Michigan,26125,12208,1091 +2020-07-05,Oakland,Michigan,26125,12233,1091 +2020-07-06,Oakland,Michigan,26125,12254,1091 +2020-07-07,Oakland,Michigan,26125,12320,1095 +2020-07-08,Oakland,Michigan,26125,12408,1096 +2020-07-09,Oakland,Michigan,26125,12488,1097 +2020-03-26,Oceana,Michigan,26127,1,0 +2020-03-27,Oceana,Michigan,26127,1,0 +2020-03-28,Oceana,Michigan,26127,1,0 +2020-03-29,Oceana,Michigan,26127,2,0 +2020-03-30,Oceana,Michigan,26127,2,0 +2020-03-31,Oceana,Michigan,26127,2,0 +2020-04-01,Oceana,Michigan,26127,2,0 +2020-04-02,Oceana,Michigan,26127,2,0 +2020-04-03,Oceana,Michigan,26127,3,0 +2020-04-04,Oceana,Michigan,26127,3,0 +2020-04-05,Oceana,Michigan,26127,3,0 +2020-04-06,Oceana,Michigan,26127,3,0 +2020-04-07,Oceana,Michigan,26127,3,1 +2020-04-08,Oceana,Michigan,26127,3,1 +2020-04-09,Oceana,Michigan,26127,3,1 +2020-04-10,Oceana,Michigan,26127,3,1 +2020-04-11,Oceana,Michigan,26127,3,1 +2020-04-12,Oceana,Michigan,26127,3,1 +2020-04-13,Oceana,Michigan,26127,3,1 +2020-04-14,Oceana,Michigan,26127,3,1 +2020-04-15,Oceana,Michigan,26127,3,1 +2020-04-16,Oceana,Michigan,26127,3,1 +2020-04-17,Oceana,Michigan,26127,4,1 +2020-04-18,Oceana,Michigan,26127,3,1 +2020-04-19,Oceana,Michigan,26127,3,1 +2020-04-20,Oceana,Michigan,26127,3,1 +2020-04-21,Oceana,Michigan,26127,4,1 +2020-04-22,Oceana,Michigan,26127,4,1 +2020-04-23,Oceana,Michigan,26127,4,1 +2020-04-24,Oceana,Michigan,26127,4,1 +2020-04-25,Oceana,Michigan,26127,4,1 +2020-04-26,Oceana,Michigan,26127,5,1 +2020-04-27,Oceana,Michigan,26127,7,1 +2020-04-28,Oceana,Michigan,26127,8,1 +2020-04-29,Oceana,Michigan,26127,9,1 +2020-04-30,Oceana,Michigan,26127,9,1 +2020-05-01,Oceana,Michigan,26127,11,1 +2020-05-02,Oceana,Michigan,26127,14,1 +2020-05-03,Oceana,Michigan,26127,16,1 +2020-05-04,Oceana,Michigan,26127,19,1 +2020-05-05,Oceana,Michigan,26127,21,1 +2020-05-06,Oceana,Michigan,26127,22,1 +2020-05-07,Oceana,Michigan,26127,23,1 +2020-05-08,Oceana,Michigan,26127,24,1 +2020-05-09,Oceana,Michigan,26127,25,1 +2020-05-10,Oceana,Michigan,26127,28,1 +2020-05-11,Oceana,Michigan,26127,30,1 +2020-05-12,Oceana,Michigan,26127,34,1 +2020-05-13,Oceana,Michigan,26127,38,2 +2020-05-14,Oceana,Michigan,26127,44,2 +2020-05-15,Oceana,Michigan,26127,46,2 +2020-05-16,Oceana,Michigan,26127,47,2 +2020-05-17,Oceana,Michigan,26127,50,2 +2020-05-18,Oceana,Michigan,26127,54,2 +2020-05-19,Oceana,Michigan,26127,58,2 +2020-05-20,Oceana,Michigan,26127,66,2 +2020-05-21,Oceana,Michigan,26127,69,2 +2020-05-22,Oceana,Michigan,26127,73,2 +2020-05-23,Oceana,Michigan,26127,74,2 +2020-05-24,Oceana,Michigan,26127,82,2 +2020-05-25,Oceana,Michigan,26127,84,2 +2020-05-26,Oceana,Michigan,26127,85,2 +2020-05-27,Oceana,Michigan,26127,85,2 +2020-05-28,Oceana,Michigan,26127,85,2 +2020-05-29,Oceana,Michigan,26127,85,2 +2020-05-30,Oceana,Michigan,26127,85,2 +2020-05-31,Oceana,Michigan,26127,85,2 +2020-06-01,Oceana,Michigan,26127,97,2 +2020-06-02,Oceana,Michigan,26127,97,2 +2020-06-03,Oceana,Michigan,26127,100,2 +2020-06-04,Oceana,Michigan,26127,102,2 +2020-06-05,Oceana,Michigan,26127,102,2 +2020-06-06,Oceana,Michigan,26127,102,2 +2020-06-07,Oceana,Michigan,26127,101,2 +2020-06-08,Oceana,Michigan,26127,101,3 +2020-06-09,Oceana,Michigan,26127,103,3 +2020-06-10,Oceana,Michigan,26127,103,3 +2020-06-11,Oceana,Michigan,26127,103,3 +2020-06-12,Oceana,Michigan,26127,105,3 +2020-06-13,Oceana,Michigan,26127,107,3 +2020-06-14,Oceana,Michigan,26127,109,3 +2020-06-15,Oceana,Michigan,26127,115,3 +2020-06-16,Oceana,Michigan,26127,117,3 +2020-06-17,Oceana,Michigan,26127,119,3 +2020-06-18,Oceana,Michigan,26127,145,3 +2020-06-19,Oceana,Michigan,26127,163,3 +2020-06-20,Oceana,Michigan,26127,173,3 +2020-06-21,Oceana,Michigan,26127,176,3 +2020-06-22,Oceana,Michigan,26127,186,3 +2020-06-23,Oceana,Michigan,26127,199,3 +2020-06-24,Oceana,Michigan,26127,210,3 +2020-06-25,Oceana,Michigan,26127,222,3 +2020-06-26,Oceana,Michigan,26127,235,3 +2020-06-27,Oceana,Michigan,26127,249,3 +2020-06-28,Oceana,Michigan,26127,263,3 +2020-06-29,Oceana,Michigan,26127,280,3 +2020-06-30,Oceana,Michigan,26127,287,3 +2020-07-01,Oceana,Michigan,26127,292,3 +2020-07-02,Oceana,Michigan,26127,307,3 +2020-07-03,Oceana,Michigan,26127,320,3 +2020-07-04,Oceana,Michigan,26127,342,4 +2020-07-05,Oceana,Michigan,26127,345,4 +2020-07-06,Oceana,Michigan,26127,347,4 +2020-07-07,Oceana,Michigan,26127,354,4 +2020-07-08,Oceana,Michigan,26127,365,4 +2020-07-09,Oceana,Michigan,26127,372,4 +2020-03-26,Ogemaw,Michigan,26129,1,0 +2020-03-27,Ogemaw,Michigan,26129,1,0 +2020-03-28,Ogemaw,Michigan,26129,1,0 +2020-03-29,Ogemaw,Michigan,26129,1,0 +2020-03-30,Ogemaw,Michigan,26129,4,0 +2020-03-31,Ogemaw,Michigan,26129,1,0 +2020-04-01,Ogemaw,Michigan,26129,1,0 +2020-04-02,Ogemaw,Michigan,26129,2,0 +2020-04-03,Ogemaw,Michigan,26129,2,0 +2020-04-04,Ogemaw,Michigan,26129,2,0 +2020-04-05,Ogemaw,Michigan,26129,3,0 +2020-04-06,Ogemaw,Michigan,26129,3,0 +2020-04-07,Ogemaw,Michigan,26129,3,0 +2020-04-08,Ogemaw,Michigan,26129,3,0 +2020-04-09,Ogemaw,Michigan,26129,3,0 +2020-04-10,Ogemaw,Michigan,26129,3,0 +2020-04-11,Ogemaw,Michigan,26129,4,0 +2020-04-12,Ogemaw,Michigan,26129,4,0 +2020-04-13,Ogemaw,Michigan,26129,4,0 +2020-04-14,Ogemaw,Michigan,26129,4,0 +2020-04-15,Ogemaw,Michigan,26129,4,0 +2020-04-16,Ogemaw,Michigan,26129,5,0 +2020-04-17,Ogemaw,Michigan,26129,5,0 +2020-04-18,Ogemaw,Michigan,26129,5,0 +2020-04-19,Ogemaw,Michigan,26129,6,0 +2020-04-20,Ogemaw,Michigan,26129,6,0 +2020-04-21,Ogemaw,Michigan,26129,6,0 +2020-04-22,Ogemaw,Michigan,26129,6,0 +2020-04-23,Ogemaw,Michigan,26129,8,0 +2020-04-24,Ogemaw,Michigan,26129,8,0 +2020-04-25,Ogemaw,Michigan,26129,8,0 +2020-04-26,Ogemaw,Michigan,26129,9,0 +2020-04-27,Ogemaw,Michigan,26129,10,0 +2020-04-28,Ogemaw,Michigan,26129,11,0 +2020-04-29,Ogemaw,Michigan,26129,12,0 +2020-04-30,Ogemaw,Michigan,26129,13,0 +2020-05-01,Ogemaw,Michigan,26129,14,0 +2020-05-02,Ogemaw,Michigan,26129,15,0 +2020-05-03,Ogemaw,Michigan,26129,14,0 +2020-05-04,Ogemaw,Michigan,26129,15,0 +2020-05-05,Ogemaw,Michigan,26129,15,0 +2020-05-06,Ogemaw,Michigan,26129,15,0 +2020-05-07,Ogemaw,Michigan,26129,15,0 +2020-05-08,Ogemaw,Michigan,26129,15,0 +2020-05-09,Ogemaw,Michigan,26129,15,0 +2020-05-10,Ogemaw,Michigan,26129,15,0 +2020-05-11,Ogemaw,Michigan,26129,16,0 +2020-05-12,Ogemaw,Michigan,26129,15,0 +2020-05-13,Ogemaw,Michigan,26129,15,0 +2020-05-14,Ogemaw,Michigan,26129,16,0 +2020-05-15,Ogemaw,Michigan,26129,16,0 +2020-05-16,Ogemaw,Michigan,26129,17,0 +2020-05-17,Ogemaw,Michigan,26129,17,0 +2020-05-18,Ogemaw,Michigan,26129,17,0 +2020-05-19,Ogemaw,Michigan,26129,18,0 +2020-05-20,Ogemaw,Michigan,26129,20,0 +2020-05-21,Ogemaw,Michigan,26129,20,0 +2020-05-22,Ogemaw,Michigan,26129,20,0 +2020-05-23,Ogemaw,Michigan,26129,20,0 +2020-05-24,Ogemaw,Michigan,26129,20,0 +2020-05-25,Ogemaw,Michigan,26129,20,0 +2020-05-26,Ogemaw,Michigan,26129,20,0 +2020-05-27,Ogemaw,Michigan,26129,21,0 +2020-05-28,Ogemaw,Michigan,26129,21,1 +2020-05-29,Ogemaw,Michigan,26129,21,1 +2020-05-30,Ogemaw,Michigan,26129,21,1 +2020-05-31,Ogemaw,Michigan,26129,21,1 +2020-06-01,Ogemaw,Michigan,26129,30,1 +2020-06-02,Ogemaw,Michigan,26129,30,1 +2020-06-03,Ogemaw,Michigan,26129,30,1 +2020-06-04,Ogemaw,Michigan,26129,31,1 +2020-06-05,Ogemaw,Michigan,26129,31,1 +2020-06-06,Ogemaw,Michigan,26129,31,1 +2020-06-07,Ogemaw,Michigan,26129,31,1 +2020-06-08,Ogemaw,Michigan,26129,31,1 +2020-06-09,Ogemaw,Michigan,26129,31,2 +2020-06-10,Ogemaw,Michigan,26129,31,2 +2020-06-11,Ogemaw,Michigan,26129,31,2 +2020-06-12,Ogemaw,Michigan,26129,32,2 +2020-06-13,Ogemaw,Michigan,26129,32,2 +2020-06-14,Ogemaw,Michigan,26129,31,2 +2020-06-15,Ogemaw,Michigan,26129,32,2 +2020-06-16,Ogemaw,Michigan,26129,32,2 +2020-06-17,Ogemaw,Michigan,26129,32,2 +2020-06-18,Ogemaw,Michigan,26129,32,2 +2020-06-19,Ogemaw,Michigan,26129,32,2 +2020-06-20,Ogemaw,Michigan,26129,32,2 +2020-06-21,Ogemaw,Michigan,26129,32,2 +2020-06-22,Ogemaw,Michigan,26129,32,2 +2020-06-23,Ogemaw,Michigan,26129,32,2 +2020-06-24,Ogemaw,Michigan,26129,32,2 +2020-06-25,Ogemaw,Michigan,26129,32,2 +2020-06-26,Ogemaw,Michigan,26129,32,2 +2020-06-27,Ogemaw,Michigan,26129,32,2 +2020-06-28,Ogemaw,Michigan,26129,32,2 +2020-06-29,Ogemaw,Michigan,26129,33,2 +2020-06-30,Ogemaw,Michigan,26129,33,2 +2020-07-01,Ogemaw,Michigan,26129,33,2 +2020-07-02,Ogemaw,Michigan,26129,34,2 +2020-07-03,Ogemaw,Michigan,26129,35,2 +2020-07-04,Ogemaw,Michigan,26129,37,2 +2020-07-05,Ogemaw,Michigan,26129,38,2 +2020-07-06,Ogemaw,Michigan,26129,39,2 +2020-07-07,Ogemaw,Michigan,26129,42,2 +2020-07-08,Ogemaw,Michigan,26129,44,2 +2020-07-09,Ogemaw,Michigan,26129,45,2 +2020-07-04,Ontonagon,Michigan,26131,1,0 +2020-07-05,Ontonagon,Michigan,26131,1,0 +2020-07-06,Ontonagon,Michigan,26131,1,0 +2020-07-07,Ontonagon,Michigan,26131,1,0 +2020-07-08,Ontonagon,Michigan,26131,1,0 +2020-07-09,Ontonagon,Michigan,26131,1,0 +2020-03-28,Osceola,Michigan,26133,1,0 +2020-03-29,Osceola,Michigan,26133,2,0 +2020-03-30,Osceola,Michigan,26133,2,0 +2020-03-31,Osceola,Michigan,26133,2,0 +2020-04-01,Osceola,Michigan,26133,2,0 +2020-04-02,Osceola,Michigan,26133,3,0 +2020-04-03,Osceola,Michigan,26133,3,0 +2020-04-04,Osceola,Michigan,26133,4,0 +2020-04-05,Osceola,Michigan,26133,4,0 +2020-04-06,Osceola,Michigan,26133,3,0 +2020-04-07,Osceola,Michigan,26133,3,0 +2020-04-08,Osceola,Michigan,26133,3,0 +2020-04-09,Osceola,Michigan,26133,3,0 +2020-04-10,Osceola,Michigan,26133,3,0 +2020-04-11,Osceola,Michigan,26133,4,0 +2020-04-12,Osceola,Michigan,26133,4,0 +2020-04-13,Osceola,Michigan,26133,5,0 +2020-04-14,Osceola,Michigan,26133,5,0 +2020-04-15,Osceola,Michigan,26133,5,0 +2020-04-16,Osceola,Michigan,26133,6,0 +2020-04-17,Osceola,Michigan,26133,6,0 +2020-04-18,Osceola,Michigan,26133,6,0 +2020-04-19,Osceola,Michigan,26133,6,0 +2020-04-20,Osceola,Michigan,26133,7,0 +2020-04-21,Osceola,Michigan,26133,8,0 +2020-04-22,Osceola,Michigan,26133,8,0 +2020-04-23,Osceola,Michigan,26133,8,0 +2020-04-24,Osceola,Michigan,26133,8,0 +2020-04-25,Osceola,Michigan,26133,8,0 +2020-04-26,Osceola,Michigan,26133,8,0 +2020-04-27,Osceola,Michigan,26133,8,0 +2020-04-28,Osceola,Michigan,26133,8,0 +2020-04-29,Osceola,Michigan,26133,8,0 +2020-04-30,Osceola,Michigan,26133,8,0 +2020-05-01,Osceola,Michigan,26133,8,0 +2020-05-02,Osceola,Michigan,26133,8,0 +2020-05-03,Osceola,Michigan,26133,8,0 +2020-05-04,Osceola,Michigan,26133,8,0 +2020-05-05,Osceola,Michigan,26133,8,0 +2020-05-06,Osceola,Michigan,26133,8,0 +2020-05-07,Osceola,Michigan,26133,8,0 +2020-05-08,Osceola,Michigan,26133,9,0 +2020-05-09,Osceola,Michigan,26133,9,0 +2020-05-10,Osceola,Michigan,26133,9,0 +2020-05-11,Osceola,Michigan,26133,9,0 +2020-05-12,Osceola,Michigan,26133,9,0 +2020-05-13,Osceola,Michigan,26133,9,0 +2020-05-14,Osceola,Michigan,26133,9,0 +2020-05-15,Osceola,Michigan,26133,9,0 +2020-05-16,Osceola,Michigan,26133,9,0 +2020-05-17,Osceola,Michigan,26133,10,0 +2020-05-18,Osceola,Michigan,26133,10,0 +2020-05-19,Osceola,Michigan,26133,10,0 +2020-05-20,Osceola,Michigan,26133,10,0 +2020-05-21,Osceola,Michigan,26133,10,0 +2020-05-22,Osceola,Michigan,26133,10,0 +2020-05-23,Osceola,Michigan,26133,10,0 +2020-05-24,Osceola,Michigan,26133,10,0 +2020-05-25,Osceola,Michigan,26133,10,0 +2020-05-26,Osceola,Michigan,26133,10,0 +2020-05-27,Osceola,Michigan,26133,11,0 +2020-05-28,Osceola,Michigan,26133,11,0 +2020-05-29,Osceola,Michigan,26133,11,0 +2020-05-30,Osceola,Michigan,26133,11,0 +2020-05-31,Osceola,Michigan,26133,11,0 +2020-06-01,Osceola,Michigan,26133,11,0 +2020-06-02,Osceola,Michigan,26133,11,0 +2020-06-03,Osceola,Michigan,26133,12,0 +2020-06-04,Osceola,Michigan,26133,12,0 +2020-06-05,Osceola,Michigan,26133,16,0 +2020-06-06,Osceola,Michigan,26133,16,0 +2020-06-07,Osceola,Michigan,26133,17,0 +2020-06-08,Osceola,Michigan,26133,17,0 +2020-06-09,Osceola,Michigan,26133,18,0 +2020-06-10,Osceola,Michigan,26133,18,0 +2020-06-11,Osceola,Michigan,26133,18,0 +2020-06-12,Osceola,Michigan,26133,18,0 +2020-06-13,Osceola,Michigan,26133,21,0 +2020-06-14,Osceola,Michigan,26133,21,0 +2020-06-15,Osceola,Michigan,26133,22,0 +2020-06-16,Osceola,Michigan,26133,22,0 +2020-06-17,Osceola,Michigan,26133,22,0 +2020-06-18,Osceola,Michigan,26133,25,0 +2020-06-19,Osceola,Michigan,26133,25,0 +2020-06-20,Osceola,Michigan,26133,27,0 +2020-06-21,Osceola,Michigan,26133,27,0 +2020-06-22,Osceola,Michigan,26133,26,0 +2020-06-23,Osceola,Michigan,26133,26,0 +2020-06-24,Osceola,Michigan,26133,25,0 +2020-06-25,Osceola,Michigan,26133,25,0 +2020-06-26,Osceola,Michigan,26133,26,0 +2020-06-27,Osceola,Michigan,26133,26,0 +2020-06-28,Osceola,Michigan,26133,27,0 +2020-06-29,Osceola,Michigan,26133,29,0 +2020-06-30,Osceola,Michigan,26133,29,0 +2020-07-01,Osceola,Michigan,26133,29,0 +2020-07-02,Osceola,Michigan,26133,30,0 +2020-07-03,Osceola,Michigan,26133,30,0 +2020-07-04,Osceola,Michigan,26133,33,0 +2020-07-05,Osceola,Michigan,26133,35,0 +2020-07-06,Osceola,Michigan,26133,39,0 +2020-07-07,Osceola,Michigan,26133,41,0 +2020-07-08,Osceola,Michigan,26133,42,0 +2020-07-09,Osceola,Michigan,26133,44,0 +2020-03-31,Oscoda,Michigan,26135,2,0 +2020-04-01,Oscoda,Michigan,26135,2,0 +2020-04-02,Oscoda,Michigan,26135,2,0 +2020-04-03,Oscoda,Michigan,26135,2,0 +2020-04-04,Oscoda,Michigan,26135,2,0 +2020-04-05,Oscoda,Michigan,26135,2,0 +2020-04-06,Oscoda,Michigan,26135,2,0 +2020-04-07,Oscoda,Michigan,26135,2,0 +2020-04-08,Oscoda,Michigan,26135,2,0 +2020-04-09,Oscoda,Michigan,26135,3,0 +2020-04-10,Oscoda,Michigan,26135,3,0 +2020-04-11,Oscoda,Michigan,26135,4,0 +2020-04-12,Oscoda,Michigan,26135,4,0 +2020-04-13,Oscoda,Michigan,26135,4,0 +2020-04-14,Oscoda,Michigan,26135,4,0 +2020-04-15,Oscoda,Michigan,26135,4,0 +2020-04-16,Oscoda,Michigan,26135,4,0 +2020-04-17,Oscoda,Michigan,26135,4,0 +2020-04-18,Oscoda,Michigan,26135,4,0 +2020-04-19,Oscoda,Michigan,26135,5,0 +2020-04-20,Oscoda,Michigan,26135,4,1 +2020-04-21,Oscoda,Michigan,26135,4,0 +2020-04-22,Oscoda,Michigan,26135,4,0 +2020-04-23,Oscoda,Michigan,26135,4,0 +2020-04-24,Oscoda,Michigan,26135,4,0 +2020-04-25,Oscoda,Michigan,26135,4,0 +2020-04-26,Oscoda,Michigan,26135,4,0 +2020-04-27,Oscoda,Michigan,26135,4,0 +2020-04-28,Oscoda,Michigan,26135,4,0 +2020-04-29,Oscoda,Michigan,26135,4,0 +2020-04-30,Oscoda,Michigan,26135,5,0 +2020-05-01,Oscoda,Michigan,26135,5,0 +2020-05-02,Oscoda,Michigan,26135,5,0 +2020-05-03,Oscoda,Michigan,26135,5,0 +2020-05-04,Oscoda,Michigan,26135,5,0 +2020-05-05,Oscoda,Michigan,26135,5,0 +2020-05-06,Oscoda,Michigan,26135,5,0 +2020-05-07,Oscoda,Michigan,26135,5,0 +2020-05-08,Oscoda,Michigan,26135,5,0 +2020-05-09,Oscoda,Michigan,26135,5,1 +2020-05-10,Oscoda,Michigan,26135,5,1 +2020-05-11,Oscoda,Michigan,26135,5,1 +2020-05-12,Oscoda,Michigan,26135,5,1 +2020-05-13,Oscoda,Michigan,26135,5,1 +2020-05-14,Oscoda,Michigan,26135,5,1 +2020-05-15,Oscoda,Michigan,26135,5,1 +2020-05-16,Oscoda,Michigan,26135,5,1 +2020-05-17,Oscoda,Michigan,26135,5,1 +2020-05-18,Oscoda,Michigan,26135,5,1 +2020-05-19,Oscoda,Michigan,26135,5,1 +2020-05-20,Oscoda,Michigan,26135,6,1 +2020-05-21,Oscoda,Michigan,26135,5,1 +2020-05-22,Oscoda,Michigan,26135,5,1 +2020-05-23,Oscoda,Michigan,26135,5,1 +2020-05-24,Oscoda,Michigan,26135,5,1 +2020-05-25,Oscoda,Michigan,26135,5,1 +2020-05-26,Oscoda,Michigan,26135,5,1 +2020-05-27,Oscoda,Michigan,26135,5,1 +2020-05-28,Oscoda,Michigan,26135,5,1 +2020-05-29,Oscoda,Michigan,26135,5,1 +2020-05-30,Oscoda,Michigan,26135,5,1 +2020-05-31,Oscoda,Michigan,26135,5,1 +2020-06-01,Oscoda,Michigan,26135,7,1 +2020-06-02,Oscoda,Michigan,26135,7,1 +2020-06-03,Oscoda,Michigan,26135,8,1 +2020-06-04,Oscoda,Michigan,26135,8,1 +2020-06-05,Oscoda,Michigan,26135,8,1 +2020-06-06,Oscoda,Michigan,26135,8,1 +2020-06-07,Oscoda,Michigan,26135,8,1 +2020-06-08,Oscoda,Michigan,26135,8,1 +2020-06-09,Oscoda,Michigan,26135,8,1 +2020-06-10,Oscoda,Michigan,26135,8,1 +2020-06-11,Oscoda,Michigan,26135,8,1 +2020-06-12,Oscoda,Michigan,26135,8,1 +2020-06-13,Oscoda,Michigan,26135,8,1 +2020-06-14,Oscoda,Michigan,26135,8,1 +2020-06-15,Oscoda,Michigan,26135,8,1 +2020-06-16,Oscoda,Michigan,26135,8,1 +2020-06-17,Oscoda,Michigan,26135,8,1 +2020-06-18,Oscoda,Michigan,26135,9,1 +2020-06-19,Oscoda,Michigan,26135,9,1 +2020-06-20,Oscoda,Michigan,26135,9,1 +2020-06-21,Oscoda,Michigan,26135,9,1 +2020-06-22,Oscoda,Michigan,26135,9,1 +2020-06-23,Oscoda,Michigan,26135,10,1 +2020-06-24,Oscoda,Michigan,26135,12,1 +2020-06-25,Oscoda,Michigan,26135,14,1 +2020-06-26,Oscoda,Michigan,26135,15,1 +2020-06-27,Oscoda,Michigan,26135,14,1 +2020-06-28,Oscoda,Michigan,26135,16,1 +2020-06-29,Oscoda,Michigan,26135,16,1 +2020-06-30,Oscoda,Michigan,26135,18,1 +2020-07-01,Oscoda,Michigan,26135,20,1 +2020-07-02,Oscoda,Michigan,26135,21,1 +2020-07-03,Oscoda,Michigan,26135,21,1 +2020-07-04,Oscoda,Michigan,26135,21,1 +2020-07-05,Oscoda,Michigan,26135,21,1 +2020-07-06,Oscoda,Michigan,26135,21,1 +2020-07-07,Oscoda,Michigan,26135,21,1 +2020-07-08,Oscoda,Michigan,26135,22,1 +2020-07-09,Oscoda,Michigan,26135,22,1 +2020-03-17,Otsego,Michigan,26137,1,0 +2020-03-18,Otsego,Michigan,26137,1,0 +2020-03-19,Otsego,Michigan,26137,1,0 +2020-03-20,Otsego,Michigan,26137,1,0 +2020-03-21,Otsego,Michigan,26137,1,0 +2020-03-22,Otsego,Michigan,26137,1,0 +2020-03-23,Otsego,Michigan,26137,3,0 +2020-03-24,Otsego,Michigan,26137,5,0 +2020-03-25,Otsego,Michigan,26137,6,0 +2020-03-26,Otsego,Michigan,26137,7,0 +2020-03-27,Otsego,Michigan,26137,7,0 +2020-03-28,Otsego,Michigan,26137,14,0 +2020-03-29,Otsego,Michigan,26137,17,0 +2020-03-30,Otsego,Michigan,26137,17,0 +2020-03-31,Otsego,Michigan,26137,19,0 +2020-04-01,Otsego,Michigan,26137,19,0 +2020-04-02,Otsego,Michigan,26137,19,0 +2020-04-03,Otsego,Michigan,26137,20,0 +2020-04-04,Otsego,Michigan,26137,22,1 +2020-04-05,Otsego,Michigan,26137,24,1 +2020-04-06,Otsego,Michigan,26137,26,2 +2020-04-07,Otsego,Michigan,26137,28,2 +2020-04-08,Otsego,Michigan,26137,29,2 +2020-04-09,Otsego,Michigan,26137,29,2 +2020-04-10,Otsego,Michigan,26137,29,2 +2020-04-11,Otsego,Michigan,26137,31,2 +2020-04-12,Otsego,Michigan,26137,33,2 +2020-04-13,Otsego,Michigan,26137,34,2 +2020-04-14,Otsego,Michigan,26137,34,2 +2020-04-15,Otsego,Michigan,26137,35,2 +2020-04-16,Otsego,Michigan,26137,44,2 +2020-04-17,Otsego,Michigan,26137,45,3 +2020-04-18,Otsego,Michigan,26137,54,5 +2020-04-19,Otsego,Michigan,26137,72,5 +2020-04-20,Otsego,Michigan,26137,72,5 +2020-04-21,Otsego,Michigan,26137,77,6 +2020-04-22,Otsego,Michigan,26137,78,6 +2020-04-23,Otsego,Michigan,26137,83,6 +2020-04-24,Otsego,Michigan,26137,84,7 +2020-04-25,Otsego,Michigan,26137,84,7 +2020-04-26,Otsego,Michigan,26137,87,8 +2020-04-27,Otsego,Michigan,26137,87,8 +2020-04-28,Otsego,Michigan,26137,88,8 +2020-04-29,Otsego,Michigan,26137,90,8 +2020-04-30,Otsego,Michigan,26137,92,8 +2020-05-01,Otsego,Michigan,26137,92,8 +2020-05-02,Otsego,Michigan,26137,93,8 +2020-05-03,Otsego,Michigan,26137,93,8 +2020-05-04,Otsego,Michigan,26137,93,8 +2020-05-05,Otsego,Michigan,26137,94,8 +2020-05-06,Otsego,Michigan,26137,95,8 +2020-05-07,Otsego,Michigan,26137,95,8 +2020-05-08,Otsego,Michigan,26137,95,9 +2020-05-09,Otsego,Michigan,26137,97,9 +2020-05-10,Otsego,Michigan,26137,97,9 +2020-05-11,Otsego,Michigan,26137,98,10 +2020-05-12,Otsego,Michigan,26137,98,10 +2020-05-13,Otsego,Michigan,26137,98,10 +2020-05-14,Otsego,Michigan,26137,98,10 +2020-05-15,Otsego,Michigan,26137,99,10 +2020-05-16,Otsego,Michigan,26137,99,10 +2020-05-17,Otsego,Michigan,26137,99,10 +2020-05-18,Otsego,Michigan,26137,99,10 +2020-05-19,Otsego,Michigan,26137,99,10 +2020-05-20,Otsego,Michigan,26137,99,10 +2020-05-21,Otsego,Michigan,26137,99,10 +2020-05-22,Otsego,Michigan,26137,100,10 +2020-05-23,Otsego,Michigan,26137,100,10 +2020-05-24,Otsego,Michigan,26137,100,10 +2020-05-25,Otsego,Michigan,26137,100,10 +2020-05-26,Otsego,Michigan,26137,100,10 +2020-05-27,Otsego,Michigan,26137,100,10 +2020-05-28,Otsego,Michigan,26137,100,10 +2020-05-29,Otsego,Michigan,26137,100,10 +2020-05-30,Otsego,Michigan,26137,100,10 +2020-05-31,Otsego,Michigan,26137,102,10 +2020-06-01,Otsego,Michigan,26137,131,10 +2020-06-02,Otsego,Michigan,26137,131,10 +2020-06-03,Otsego,Michigan,26137,131,10 +2020-06-04,Otsego,Michigan,26137,131,10 +2020-06-05,Otsego,Michigan,26137,131,10 +2020-06-06,Otsego,Michigan,26137,131,10 +2020-06-07,Otsego,Michigan,26137,131,10 +2020-06-08,Otsego,Michigan,26137,131,10 +2020-06-09,Otsego,Michigan,26137,131,10 +2020-06-10,Otsego,Michigan,26137,131,10 +2020-06-11,Otsego,Michigan,26137,131,10 +2020-06-12,Otsego,Michigan,26137,131,10 +2020-06-13,Otsego,Michigan,26137,131,10 +2020-06-14,Otsego,Michigan,26137,131,10 +2020-06-15,Otsego,Michigan,26137,131,10 +2020-06-16,Otsego,Michigan,26137,131,10 +2020-06-17,Otsego,Michigan,26137,131,10 +2020-06-18,Otsego,Michigan,26137,131,10 +2020-06-19,Otsego,Michigan,26137,131,10 +2020-06-20,Otsego,Michigan,26137,131,10 +2020-06-21,Otsego,Michigan,26137,131,10 +2020-06-22,Otsego,Michigan,26137,132,10 +2020-06-23,Otsego,Michigan,26137,132,10 +2020-06-24,Otsego,Michigan,26137,133,10 +2020-06-25,Otsego,Michigan,26137,133,10 +2020-06-26,Otsego,Michigan,26137,133,10 +2020-06-27,Otsego,Michigan,26137,133,10 +2020-06-28,Otsego,Michigan,26137,133,10 +2020-06-29,Otsego,Michigan,26137,133,10 +2020-06-30,Otsego,Michigan,26137,133,10 +2020-07-01,Otsego,Michigan,26137,133,10 +2020-07-02,Otsego,Michigan,26137,134,10 +2020-07-03,Otsego,Michigan,26137,134,10 +2020-07-04,Otsego,Michigan,26137,134,10 +2020-07-05,Otsego,Michigan,26137,134,10 +2020-07-06,Otsego,Michigan,26137,135,10 +2020-07-07,Otsego,Michigan,26137,135,10 +2020-07-08,Otsego,Michigan,26137,135,10 +2020-07-09,Otsego,Michigan,26137,135,10 +2020-03-15,Ottawa,Michigan,26139,1,0 +2020-03-16,Ottawa,Michigan,26139,1,0 +2020-03-17,Ottawa,Michigan,26139,1,0 +2020-03-18,Ottawa,Michigan,26139,1,0 +2020-03-19,Ottawa,Michigan,26139,1,0 +2020-03-20,Ottawa,Michigan,26139,1,0 +2020-03-21,Ottawa,Michigan,26139,2,0 +2020-03-22,Ottawa,Michigan,26139,6,0 +2020-03-23,Ottawa,Michigan,26139,11,0 +2020-03-24,Ottawa,Michigan,26139,15,0 +2020-03-25,Ottawa,Michigan,26139,16,0 +2020-03-26,Ottawa,Michigan,26139,18,0 +2020-03-27,Ottawa,Michigan,26139,21,0 +2020-03-28,Ottawa,Michigan,26139,23,0 +2020-03-29,Ottawa,Michigan,26139,25,0 +2020-03-30,Ottawa,Michigan,26139,28,0 +2020-03-31,Ottawa,Michigan,26139,31,0 +2020-04-01,Ottawa,Michigan,26139,31,0 +2020-04-02,Ottawa,Michigan,26139,35,0 +2020-04-03,Ottawa,Michigan,26139,37,0 +2020-04-04,Ottawa,Michigan,26139,39,0 +2020-04-05,Ottawa,Michigan,26139,44,0 +2020-04-06,Ottawa,Michigan,26139,44,0 +2020-04-07,Ottawa,Michigan,26139,52,0 +2020-04-08,Ottawa,Michigan,26139,55,0 +2020-04-09,Ottawa,Michigan,26139,59,1 +2020-04-10,Ottawa,Michigan,26139,61,1 +2020-04-11,Ottawa,Michigan,26139,64,2 +2020-04-12,Ottawa,Michigan,26139,66,2 +2020-04-13,Ottawa,Michigan,26139,69,2 +2020-04-14,Ottawa,Michigan,26139,67,2 +2020-04-15,Ottawa,Michigan,26139,74,2 +2020-04-16,Ottawa,Michigan,26139,82,2 +2020-04-17,Ottawa,Michigan,26139,88,5 +2020-04-18,Ottawa,Michigan,26139,98,5 +2020-04-19,Ottawa,Michigan,26139,107,5 +2020-04-20,Ottawa,Michigan,26139,119,7 +2020-04-21,Ottawa,Michigan,26139,129,7 +2020-04-22,Ottawa,Michigan,26139,149,7 +2020-04-23,Ottawa,Michigan,26139,161,7 +2020-04-24,Ottawa,Michigan,26139,167,8 +2020-04-25,Ottawa,Michigan,26139,173,8 +2020-04-26,Ottawa,Michigan,26139,180,9 +2020-04-27,Ottawa,Michigan,26139,191,9 +2020-04-28,Ottawa,Michigan,26139,210,9 +2020-04-29,Ottawa,Michigan,26139,224,9 +2020-04-30,Ottawa,Michigan,26139,236,9 +2020-05-01,Ottawa,Michigan,26139,254,11 +2020-05-02,Ottawa,Michigan,26139,261,12 +2020-05-03,Ottawa,Michigan,26139,275,12 +2020-05-04,Ottawa,Michigan,26139,281,12 +2020-05-05,Ottawa,Michigan,26139,295,12 +2020-05-06,Ottawa,Michigan,26139,313,14 +2020-05-07,Ottawa,Michigan,26139,331,17 +2020-05-08,Ottawa,Michigan,26139,353,17 +2020-05-09,Ottawa,Michigan,26139,373,19 +2020-05-10,Ottawa,Michigan,26139,388,19 +2020-05-11,Ottawa,Michigan,26139,420,19 +2020-05-12,Ottawa,Michigan,26139,430,20 +2020-05-13,Ottawa,Michigan,26139,444,21 +2020-05-14,Ottawa,Michigan,26139,483,23 +2020-05-15,Ottawa,Michigan,26139,501,24 +2020-05-16,Ottawa,Michigan,26139,518,24 +2020-05-17,Ottawa,Michigan,26139,531,24 +2020-05-18,Ottawa,Michigan,26139,558,24 +2020-05-19,Ottawa,Michigan,26139,573,25 +2020-05-20,Ottawa,Michigan,26139,616,26 +2020-05-21,Ottawa,Michigan,26139,632,26 +2020-05-22,Ottawa,Michigan,26139,657,26 +2020-05-23,Ottawa,Michigan,26139,673,26 +2020-05-24,Ottawa,Michigan,26139,696,26 +2020-05-25,Ottawa,Michigan,26139,709,27 +2020-05-26,Ottawa,Michigan,26139,714,29 +2020-05-27,Ottawa,Michigan,26139,715,31 +2020-05-28,Ottawa,Michigan,26139,744,31 +2020-05-29,Ottawa,Michigan,26139,759,33 +2020-05-30,Ottawa,Michigan,26139,766,33 +2020-05-31,Ottawa,Michigan,26139,774,34 +2020-06-01,Ottawa,Michigan,26139,862,39 +2020-06-02,Ottawa,Michigan,26139,863,40 +2020-06-03,Ottawa,Michigan,26139,876,41 +2020-06-04,Ottawa,Michigan,26139,889,44 +2020-06-05,Ottawa,Michigan,26139,898,46 +2020-06-06,Ottawa,Michigan,26139,906,47 +2020-06-07,Ottawa,Michigan,26139,903,47 +2020-06-08,Ottawa,Michigan,26139,904,48 +2020-06-09,Ottawa,Michigan,26139,904,48 +2020-06-10,Ottawa,Michigan,26139,909,48 +2020-06-11,Ottawa,Michigan,26139,918,49 +2020-06-12,Ottawa,Michigan,26139,938,50 +2020-06-13,Ottawa,Michigan,26139,939,50 +2020-06-14,Ottawa,Michigan,26139,944,50 +2020-06-15,Ottawa,Michigan,26139,947,51 +2020-06-16,Ottawa,Michigan,26139,944,51 +2020-06-17,Ottawa,Michigan,26139,947,51 +2020-06-18,Ottawa,Michigan,26139,949,51 +2020-06-19,Ottawa,Michigan,26139,966,51 +2020-06-20,Ottawa,Michigan,26139,966,51 +2020-06-21,Ottawa,Michigan,26139,966,51 +2020-06-22,Ottawa,Michigan,26139,983,51 +2020-06-23,Ottawa,Michigan,26139,984,51 +2020-06-24,Ottawa,Michigan,26139,988,51 +2020-06-25,Ottawa,Michigan,26139,996,51 +2020-06-26,Ottawa,Michigan,26139,1010,51 +2020-06-27,Ottawa,Michigan,26139,1020,51 +2020-06-28,Ottawa,Michigan,26139,1023,51 +2020-06-29,Ottawa,Michigan,26139,1026,51 +2020-06-30,Ottawa,Michigan,26139,1048,51 +2020-07-01,Ottawa,Michigan,26139,1064,51 +2020-07-02,Ottawa,Michigan,26139,1081,51 +2020-07-03,Ottawa,Michigan,26139,1096,51 +2020-07-04,Ottawa,Michigan,26139,1116,51 +2020-07-05,Ottawa,Michigan,26139,1138,51 +2020-07-06,Ottawa,Michigan,26139,1148,51 +2020-07-07,Ottawa,Michigan,26139,1171,52 +2020-07-08,Ottawa,Michigan,26139,1196,52 +2020-07-09,Ottawa,Michigan,26139,1220,52 +2020-04-06,Presque Isle,Michigan,26141,1,0 +2020-04-07,Presque Isle,Michigan,26141,1,0 +2020-04-08,Presque Isle,Michigan,26141,1,0 +2020-04-09,Presque Isle,Michigan,26141,1,0 +2020-04-10,Presque Isle,Michigan,26141,2,0 +2020-04-11,Presque Isle,Michigan,26141,2,0 +2020-04-12,Presque Isle,Michigan,26141,2,0 +2020-04-13,Presque Isle,Michigan,26141,2,0 +2020-04-14,Presque Isle,Michigan,26141,2,0 +2020-04-15,Presque Isle,Michigan,26141,2,0 +2020-04-16,Presque Isle,Michigan,26141,2,0 +2020-04-17,Presque Isle,Michigan,26141,2,0 +2020-04-18,Presque Isle,Michigan,26141,2,0 +2020-04-19,Presque Isle,Michigan,26141,2,0 +2020-04-20,Presque Isle,Michigan,26141,2,0 +2020-04-21,Presque Isle,Michigan,26141,6,0 +2020-04-22,Presque Isle,Michigan,26141,6,0 +2020-04-23,Presque Isle,Michigan,26141,8,0 +2020-04-24,Presque Isle,Michigan,26141,9,0 +2020-04-25,Presque Isle,Michigan,26141,10,0 +2020-04-26,Presque Isle,Michigan,26141,10,0 +2020-04-27,Presque Isle,Michigan,26141,11,0 +2020-04-28,Presque Isle,Michigan,26141,11,0 +2020-04-29,Presque Isle,Michigan,26141,12,0 +2020-04-30,Presque Isle,Michigan,26141,11,0 +2020-05-01,Presque Isle,Michigan,26141,11,0 +2020-05-02,Presque Isle,Michigan,26141,11,0 +2020-05-03,Presque Isle,Michigan,26141,11,0 +2020-05-04,Presque Isle,Michigan,26141,11,0 +2020-05-05,Presque Isle,Michigan,26141,11,0 +2020-05-06,Presque Isle,Michigan,26141,11,0 +2020-05-07,Presque Isle,Michigan,26141,12,0 +2020-05-08,Presque Isle,Michigan,26141,11,0 +2020-05-09,Presque Isle,Michigan,26141,11,0 +2020-05-10,Presque Isle,Michigan,26141,11,0 +2020-05-11,Presque Isle,Michigan,26141,11,0 +2020-05-12,Presque Isle,Michigan,26141,11,0 +2020-05-13,Presque Isle,Michigan,26141,11,0 +2020-05-14,Presque Isle,Michigan,26141,11,0 +2020-05-15,Presque Isle,Michigan,26141,11,0 +2020-05-16,Presque Isle,Michigan,26141,11,0 +2020-05-17,Presque Isle,Michigan,26141,11,0 +2020-05-18,Presque Isle,Michigan,26141,11,0 +2020-05-19,Presque Isle,Michigan,26141,11,0 +2020-05-20,Presque Isle,Michigan,26141,11,0 +2020-05-21,Presque Isle,Michigan,26141,11,0 +2020-05-22,Presque Isle,Michigan,26141,11,0 +2020-05-23,Presque Isle,Michigan,26141,11,0 +2020-05-24,Presque Isle,Michigan,26141,11,0 +2020-05-25,Presque Isle,Michigan,26141,11,0 +2020-05-26,Presque Isle,Michigan,26141,11,0 +2020-05-27,Presque Isle,Michigan,26141,11,0 +2020-05-28,Presque Isle,Michigan,26141,11,0 +2020-05-29,Presque Isle,Michigan,26141,11,0 +2020-05-30,Presque Isle,Michigan,26141,11,0 +2020-05-31,Presque Isle,Michigan,26141,11,0 +2020-06-01,Presque Isle,Michigan,26141,11,0 +2020-06-02,Presque Isle,Michigan,26141,11,0 +2020-06-03,Presque Isle,Michigan,26141,11,0 +2020-06-04,Presque Isle,Michigan,26141,11,0 +2020-06-05,Presque Isle,Michigan,26141,11,0 +2020-06-06,Presque Isle,Michigan,26141,11,0 +2020-06-07,Presque Isle,Michigan,26141,11,0 +2020-06-08,Presque Isle,Michigan,26141,11,0 +2020-06-09,Presque Isle,Michigan,26141,11,0 +2020-06-10,Presque Isle,Michigan,26141,11,0 +2020-06-11,Presque Isle,Michigan,26141,12,0 +2020-06-12,Presque Isle,Michigan,26141,12,0 +2020-06-13,Presque Isle,Michigan,26141,12,0 +2020-06-14,Presque Isle,Michigan,26141,12,0 +2020-06-15,Presque Isle,Michigan,26141,12,0 +2020-06-16,Presque Isle,Michigan,26141,12,0 +2020-06-17,Presque Isle,Michigan,26141,12,0 +2020-06-18,Presque Isle,Michigan,26141,12,0 +2020-06-19,Presque Isle,Michigan,26141,12,0 +2020-06-20,Presque Isle,Michigan,26141,12,0 +2020-06-21,Presque Isle,Michigan,26141,12,0 +2020-06-22,Presque Isle,Michigan,26141,12,0 +2020-06-23,Presque Isle,Michigan,26141,12,0 +2020-06-24,Presque Isle,Michigan,26141,12,0 +2020-06-25,Presque Isle,Michigan,26141,12,0 +2020-06-26,Presque Isle,Michigan,26141,12,0 +2020-06-27,Presque Isle,Michigan,26141,12,0 +2020-06-28,Presque Isle,Michigan,26141,12,0 +2020-06-29,Presque Isle,Michigan,26141,12,0 +2020-06-30,Presque Isle,Michigan,26141,12,0 +2020-07-01,Presque Isle,Michigan,26141,13,0 +2020-07-02,Presque Isle,Michigan,26141,13,0 +2020-07-03,Presque Isle,Michigan,26141,13,0 +2020-07-04,Presque Isle,Michigan,26141,13,0 +2020-07-05,Presque Isle,Michigan,26141,13,0 +2020-07-06,Presque Isle,Michigan,26141,13,0 +2020-07-07,Presque Isle,Michigan,26141,14,0 +2020-07-08,Presque Isle,Michigan,26141,13,0 +2020-07-09,Presque Isle,Michigan,26141,13,0 +2020-03-22,Roscommon,Michigan,26143,1,0 +2020-03-23,Roscommon,Michigan,26143,1,0 +2020-03-24,Roscommon,Michigan,26143,1,0 +2020-03-25,Roscommon,Michigan,26143,1,0 +2020-03-26,Roscommon,Michigan,26143,1,0 +2020-03-27,Roscommon,Michigan,26143,1,0 +2020-03-28,Roscommon,Michigan,26143,1,0 +2020-03-29,Roscommon,Michigan,26143,1,0 +2020-03-30,Roscommon,Michigan,26143,1,0 +2020-03-31,Roscommon,Michigan,26143,1,0 +2020-04-01,Roscommon,Michigan,26143,1,0 +2020-04-02,Roscommon,Michigan,26143,1,0 +2020-04-03,Roscommon,Michigan,26143,2,0 +2020-04-04,Roscommon,Michigan,26143,2,0 +2020-04-05,Roscommon,Michigan,26143,5,0 +2020-04-06,Roscommon,Michigan,26143,5,0 +2020-04-07,Roscommon,Michigan,26143,6,0 +2020-04-08,Roscommon,Michigan,26143,6,0 +2020-04-09,Roscommon,Michigan,26143,8,0 +2020-04-10,Roscommon,Michigan,26143,8,0 +2020-04-11,Roscommon,Michigan,26143,8,0 +2020-04-12,Roscommon,Michigan,26143,9,0 +2020-04-13,Roscommon,Michigan,26143,9,0 +2020-04-14,Roscommon,Michigan,26143,9,0 +2020-04-15,Roscommon,Michigan,26143,9,0 +2020-04-16,Roscommon,Michigan,26143,9,0 +2020-04-17,Roscommon,Michigan,26143,9,0 +2020-04-18,Roscommon,Michigan,26143,9,0 +2020-04-19,Roscommon,Michigan,26143,10,0 +2020-04-20,Roscommon,Michigan,26143,11,0 +2020-04-21,Roscommon,Michigan,26143,11,0 +2020-04-22,Roscommon,Michigan,26143,11,0 +2020-04-23,Roscommon,Michigan,26143,11,0 +2020-04-24,Roscommon,Michigan,26143,12,0 +2020-04-25,Roscommon,Michigan,26143,13,0 +2020-04-26,Roscommon,Michigan,26143,13,0 +2020-04-27,Roscommon,Michigan,26143,13,0 +2020-04-28,Roscommon,Michigan,26143,14,0 +2020-04-29,Roscommon,Michigan,26143,15,0 +2020-04-30,Roscommon,Michigan,26143,16,0 +2020-05-01,Roscommon,Michigan,26143,16,0 +2020-05-02,Roscommon,Michigan,26143,17,0 +2020-05-03,Roscommon,Michigan,26143,17,0 +2020-05-04,Roscommon,Michigan,26143,18,0 +2020-05-05,Roscommon,Michigan,26143,18,0 +2020-05-06,Roscommon,Michigan,26143,18,0 +2020-05-07,Roscommon,Michigan,26143,18,0 +2020-05-08,Roscommon,Michigan,26143,20,0 +2020-05-09,Roscommon,Michigan,26143,20,0 +2020-05-10,Roscommon,Michigan,26143,20,0 +2020-05-11,Roscommon,Michigan,26143,20,0 +2020-05-12,Roscommon,Michigan,26143,20,0 +2020-05-13,Roscommon,Michigan,26143,20,0 +2020-05-14,Roscommon,Michigan,26143,20,0 +2020-05-15,Roscommon,Michigan,26143,21,0 +2020-05-16,Roscommon,Michigan,26143,21,0 +2020-05-17,Roscommon,Michigan,26143,21,0 +2020-05-18,Roscommon,Michigan,26143,21,0 +2020-05-19,Roscommon,Michigan,26143,21,0 +2020-05-20,Roscommon,Michigan,26143,21,0 +2020-05-21,Roscommon,Michigan,26143,21,0 +2020-05-22,Roscommon,Michigan,26143,21,0 +2020-05-23,Roscommon,Michigan,26143,21,0 +2020-05-24,Roscommon,Michigan,26143,21,0 +2020-05-25,Roscommon,Michigan,26143,21,0 +2020-05-26,Roscommon,Michigan,26143,21,0 +2020-05-27,Roscommon,Michigan,26143,21,0 +2020-05-28,Roscommon,Michigan,26143,21,0 +2020-05-29,Roscommon,Michigan,26143,21,0 +2020-05-30,Roscommon,Michigan,26143,21,0 +2020-05-31,Roscommon,Michigan,26143,21,0 +2020-06-01,Roscommon,Michigan,26143,21,0 +2020-06-02,Roscommon,Michigan,26143,21,0 +2020-06-03,Roscommon,Michigan,26143,21,0 +2020-06-04,Roscommon,Michigan,26143,21,0 +2020-06-05,Roscommon,Michigan,26143,24,0 +2020-06-06,Roscommon,Michigan,26143,24,0 +2020-06-07,Roscommon,Michigan,26143,24,0 +2020-06-08,Roscommon,Michigan,26143,24,0 +2020-06-09,Roscommon,Michigan,26143,24,0 +2020-06-10,Roscommon,Michigan,26143,24,0 +2020-06-11,Roscommon,Michigan,26143,24,0 +2020-06-12,Roscommon,Michigan,26143,25,0 +2020-06-13,Roscommon,Michigan,26143,25,0 +2020-06-14,Roscommon,Michigan,26143,25,0 +2020-06-15,Roscommon,Michigan,26143,25,0 +2020-06-16,Roscommon,Michigan,26143,25,0 +2020-06-17,Roscommon,Michigan,26143,25,0 +2020-06-18,Roscommon,Michigan,26143,25,0 +2020-06-19,Roscommon,Michigan,26143,26,0 +2020-06-20,Roscommon,Michigan,26143,26,0 +2020-06-21,Roscommon,Michigan,26143,26,0 +2020-06-22,Roscommon,Michigan,26143,26,0 +2020-06-23,Roscommon,Michigan,26143,26,0 +2020-06-24,Roscommon,Michigan,26143,26,0 +2020-06-25,Roscommon,Michigan,26143,26,0 +2020-06-26,Roscommon,Michigan,26143,26,0 +2020-06-27,Roscommon,Michigan,26143,26,0 +2020-06-28,Roscommon,Michigan,26143,26,0 +2020-06-29,Roscommon,Michigan,26143,26,0 +2020-06-30,Roscommon,Michigan,26143,26,0 +2020-07-01,Roscommon,Michigan,26143,28,0 +2020-07-02,Roscommon,Michigan,26143,28,0 +2020-07-03,Roscommon,Michigan,26143,28,0 +2020-07-04,Roscommon,Michigan,26143,28,0 +2020-07-05,Roscommon,Michigan,26143,28,0 +2020-07-06,Roscommon,Michigan,26143,28,0 +2020-07-07,Roscommon,Michigan,26143,29,0 +2020-07-08,Roscommon,Michigan,26143,29,0 +2020-07-09,Roscommon,Michigan,26143,29,0 +2020-03-21,Saginaw,Michigan,26145,1,0 +2020-03-22,Saginaw,Michigan,26145,2,0 +2020-03-23,Saginaw,Michigan,26145,2,0 +2020-03-24,Saginaw,Michigan,26145,8,0 +2020-03-25,Saginaw,Michigan,26145,9,0 +2020-03-26,Saginaw,Michigan,26145,10,0 +2020-03-27,Saginaw,Michigan,26145,14,0 +2020-03-28,Saginaw,Michigan,26145,19,0 +2020-03-29,Saginaw,Michigan,26145,24,0 +2020-03-30,Saginaw,Michigan,26145,36,0 +2020-03-31,Saginaw,Michigan,26145,51,0 +2020-04-01,Saginaw,Michigan,26145,71,0 +2020-04-02,Saginaw,Michigan,26145,82,0 +2020-04-03,Saginaw,Michigan,26145,90,0 +2020-04-04,Saginaw,Michigan,26145,103,0 +2020-04-05,Saginaw,Michigan,26145,118,0 +2020-04-06,Saginaw,Michigan,26145,139,2 +2020-04-07,Saginaw,Michigan,26145,153,3 +2020-04-08,Saginaw,Michigan,26145,186,6 +2020-04-09,Saginaw,Michigan,26145,205,7 +2020-04-10,Saginaw,Michigan,26145,240,9 +2020-04-11,Saginaw,Michigan,26145,254,9 +2020-04-12,Saginaw,Michigan,26145,274,9 +2020-04-13,Saginaw,Michigan,26145,293,13 +2020-04-14,Saginaw,Michigan,26145,302,17 +2020-04-15,Saginaw,Michigan,26145,313,19 +2020-04-16,Saginaw,Michigan,26145,350,20 +2020-04-17,Saginaw,Michigan,26145,370,24 +2020-04-18,Saginaw,Michigan,26145,395,24 +2020-04-19,Saginaw,Michigan,26145,405,24 +2020-04-20,Saginaw,Michigan,26145,420,29 +2020-04-21,Saginaw,Michigan,26145,434,32 +2020-04-22,Saginaw,Michigan,26145,475,35 +2020-04-23,Saginaw,Michigan,26145,508,38 +2020-04-24,Saginaw,Michigan,26145,535,40 +2020-04-25,Saginaw,Michigan,26145,546,43 +2020-04-26,Saginaw,Michigan,26145,559,43 +2020-04-27,Saginaw,Michigan,26145,587,47 +2020-04-28,Saginaw,Michigan,26145,610,52 +2020-04-29,Saginaw,Michigan,26145,633,56 +2020-04-30,Saginaw,Michigan,26145,664,59 +2020-05-01,Saginaw,Michigan,26145,685,63 +2020-05-02,Saginaw,Michigan,26145,701,66 +2020-05-03,Saginaw,Michigan,26145,721,66 +2020-05-04,Saginaw,Michigan,26145,729,68 +2020-05-05,Saginaw,Michigan,26145,743,70 +2020-05-06,Saginaw,Michigan,26145,761,74 +2020-05-07,Saginaw,Michigan,26145,773,78 +2020-05-08,Saginaw,Michigan,26145,780,79 +2020-05-09,Saginaw,Michigan,26145,781,83 +2020-05-10,Saginaw,Michigan,26145,790,83 +2020-05-11,Saginaw,Michigan,26145,810,85 +2020-05-12,Saginaw,Michigan,26145,830,87 +2020-05-13,Saginaw,Michigan,26145,850,90 +2020-05-14,Saginaw,Michigan,26145,867,93 +2020-05-15,Saginaw,Michigan,26145,878,95 +2020-05-16,Saginaw,Michigan,26145,904,97 +2020-05-17,Saginaw,Michigan,26145,914,97 +2020-05-18,Saginaw,Michigan,26145,931,99 +2020-05-19,Saginaw,Michigan,26145,941,99 +2020-05-20,Saginaw,Michigan,26145,958,100 +2020-05-21,Saginaw,Michigan,26145,969,103 +2020-05-22,Saginaw,Michigan,26145,974,104 +2020-05-23,Saginaw,Michigan,26145,983,105 +2020-05-24,Saginaw,Michigan,26145,990,106 +2020-05-25,Saginaw,Michigan,26145,998,106 +2020-05-26,Saginaw,Michigan,26145,1001,107 +2020-05-27,Saginaw,Michigan,26145,1003,107 +2020-05-28,Saginaw,Michigan,26145,1014,108 +2020-05-29,Saginaw,Michigan,26145,1019,108 +2020-05-30,Saginaw,Michigan,26145,1030,108 +2020-05-31,Saginaw,Michigan,26145,1039,108 +2020-06-01,Saginaw,Michigan,26145,1049,108 +2020-06-02,Saginaw,Michigan,26145,1051,109 +2020-06-03,Saginaw,Michigan,26145,1058,109 +2020-06-04,Saginaw,Michigan,26145,1066,109 +2020-06-05,Saginaw,Michigan,26145,1109,113 +2020-06-06,Saginaw,Michigan,26145,1125,113 +2020-06-07,Saginaw,Michigan,26145,1135,113 +2020-06-08,Saginaw,Michigan,26145,1136,113 +2020-06-09,Saginaw,Michigan,26145,1138,115 +2020-06-10,Saginaw,Michigan,26145,1139,115 +2020-06-11,Saginaw,Michigan,26145,1149,117 +2020-06-12,Saginaw,Michigan,26145,1148,117 +2020-06-13,Saginaw,Michigan,26145,1152,117 +2020-06-14,Saginaw,Michigan,26145,1158,117 +2020-06-15,Saginaw,Michigan,26145,1161,119 +2020-06-16,Saginaw,Michigan,26145,1169,120 +2020-06-17,Saginaw,Michigan,26145,1172,120 +2020-06-18,Saginaw,Michigan,26145,1175,120 +2020-06-19,Saginaw,Michigan,26145,1183,120 +2020-06-20,Saginaw,Michigan,26145,1190,120 +2020-06-21,Saginaw,Michigan,26145,1194,120 +2020-06-22,Saginaw,Michigan,26145,1203,120 +2020-06-23,Saginaw,Michigan,26145,1215,122 +2020-06-24,Saginaw,Michigan,26145,1225,123 +2020-06-25,Saginaw,Michigan,26145,1248,123 +2020-06-26,Saginaw,Michigan,26145,1255,123 +2020-06-27,Saginaw,Michigan,26145,1261,123 +2020-06-28,Saginaw,Michigan,26145,1269,123 +2020-06-29,Saginaw,Michigan,26145,1276,123 +2020-06-30,Saginaw,Michigan,26145,1287,123 +2020-07-01,Saginaw,Michigan,26145,1293,123 +2020-07-02,Saginaw,Michigan,26145,1302,123 +2020-07-03,Saginaw,Michigan,26145,1316,123 +2020-07-04,Saginaw,Michigan,26145,1318,123 +2020-07-05,Saginaw,Michigan,26145,1331,123 +2020-07-06,Saginaw,Michigan,26145,1342,123 +2020-07-07,Saginaw,Michigan,26145,1345,124 +2020-07-08,Saginaw,Michigan,26145,1358,124 +2020-07-09,Saginaw,Michigan,26145,1364,124 +2020-03-12,St. Clair,Michigan,26147,1,0 +2020-03-13,St. Clair,Michigan,26147,1,0 +2020-03-14,St. Clair,Michigan,26147,1,0 +2020-03-15,St. Clair,Michigan,26147,2,0 +2020-03-16,St. Clair,Michigan,26147,2,0 +2020-03-17,St. Clair,Michigan,26147,2,0 +2020-03-18,St. Clair,Michigan,26147,2,0 +2020-03-19,St. Clair,Michigan,26147,4,0 +2020-03-20,St. Clair,Michigan,26147,7,0 +2020-03-21,St. Clair,Michigan,26147,7,0 +2020-03-22,St. Clair,Michigan,26147,7,0 +2020-03-23,St. Clair,Michigan,26147,7,0 +2020-03-24,St. Clair,Michigan,26147,8,0 +2020-03-25,St. Clair,Michigan,26147,10,0 +2020-03-26,St. Clair,Michigan,26147,13,0 +2020-03-27,St. Clair,Michigan,26147,15,0 +2020-03-28,St. Clair,Michigan,26147,16,0 +2020-03-29,St. Clair,Michigan,26147,20,0 +2020-03-30,St. Clair,Michigan,26147,25,0 +2020-03-31,St. Clair,Michigan,26147,32,0 +2020-04-01,St. Clair,Michigan,26147,41,0 +2020-04-02,St. Clair,Michigan,26147,53,0 +2020-04-03,St. Clair,Michigan,26147,66,0 +2020-04-04,St. Clair,Michigan,26147,85,2 +2020-04-05,St. Clair,Michigan,26147,94,2 +2020-04-06,St. Clair,Michigan,26147,110,3 +2020-04-07,St. Clair,Michigan,26147,129,3 +2020-04-08,St. Clair,Michigan,26147,140,3 +2020-04-09,St. Clair,Michigan,26147,162,4 +2020-04-10,St. Clair,Michigan,26147,179,4 +2020-04-11,St. Clair,Michigan,26147,190,4 +2020-04-12,St. Clair,Michigan,26147,199,6 +2020-04-13,St. Clair,Michigan,26147,206,7 +2020-04-14,St. Clair,Michigan,26147,211,7 +2020-04-15,St. Clair,Michigan,26147,221,8 +2020-04-16,St. Clair,Michigan,26147,232,8 +2020-04-17,St. Clair,Michigan,26147,236,8 +2020-04-18,St. Clair,Michigan,26147,241,7 +2020-04-19,St. Clair,Michigan,26147,244,11 +2020-04-20,St. Clair,Michigan,26147,252,11 +2020-04-21,St. Clair,Michigan,26147,259,15 +2020-04-22,St. Clair,Michigan,26147,271,16 +2020-04-23,St. Clair,Michigan,26147,284,16 +2020-04-24,St. Clair,Michigan,26147,294,16 +2020-04-25,St. Clair,Michigan,26147,297,18 +2020-04-26,St. Clair,Michigan,26147,302,18 +2020-04-27,St. Clair,Michigan,26147,304,18 +2020-04-28,St. Clair,Michigan,26147,309,21 +2020-04-29,St. Clair,Michigan,26147,313,21 +2020-04-30,St. Clair,Michigan,26147,328,21 +2020-05-01,St. Clair,Michigan,26147,331,21 +2020-05-02,St. Clair,Michigan,26147,336,21 +2020-05-03,St. Clair,Michigan,26147,335,21 +2020-05-04,St. Clair,Michigan,26147,339,21 +2020-05-05,St. Clair,Michigan,26147,342,21 +2020-05-06,St. Clair,Michigan,26147,342,22 +2020-05-07,St. Clair,Michigan,26147,342,23 +2020-05-08,St. Clair,Michigan,26147,353,23 +2020-05-09,St. Clair,Michigan,26147,353,25 +2020-05-10,St. Clair,Michigan,26147,357,25 +2020-05-11,St. Clair,Michigan,26147,358,25 +2020-05-12,St. Clair,Michigan,26147,366,28 +2020-05-13,St. Clair,Michigan,26147,373,28 +2020-05-14,St. Clair,Michigan,26147,394,28 +2020-05-15,St. Clair,Michigan,26147,399,30 +2020-05-16,St. Clair,Michigan,26147,408,30 +2020-05-17,St. Clair,Michigan,26147,403,31 +2020-05-18,St. Clair,Michigan,26147,407,31 +2020-05-19,St. Clair,Michigan,26147,412,32 +2020-05-20,St. Clair,Michigan,26147,419,33 +2020-05-21,St. Clair,Michigan,26147,422,33 +2020-05-22,St. Clair,Michigan,26147,426,33 +2020-05-23,St. Clair,Michigan,26147,429,34 +2020-05-24,St. Clair,Michigan,26147,430,34 +2020-05-25,St. Clair,Michigan,26147,431,35 +2020-05-26,St. Clair,Michigan,26147,431,36 +2020-05-27,St. Clair,Michigan,26147,431,37 +2020-05-28,St. Clair,Michigan,26147,438,37 +2020-05-29,St. Clair,Michigan,26147,448,39 +2020-05-30,St. Clair,Michigan,26147,448,41 +2020-05-31,St. Clair,Michigan,26147,449,41 +2020-06-01,St. Clair,Michigan,26147,511,42 +2020-06-02,St. Clair,Michigan,26147,511,43 +2020-06-03,St. Clair,Michigan,26147,514,44 +2020-06-04,St. Clair,Michigan,26147,515,44 +2020-06-05,St. Clair,Michigan,26147,515,44 +2020-06-06,St. Clair,Michigan,26147,515,44 +2020-06-07,St. Clair,Michigan,26147,515,44 +2020-06-08,St. Clair,Michigan,26147,516,44 +2020-06-09,St. Clair,Michigan,26147,516,45 +2020-06-10,St. Clair,Michigan,26147,517,45 +2020-06-11,St. Clair,Michigan,26147,517,45 +2020-06-12,St. Clair,Michigan,26147,517,45 +2020-06-13,St. Clair,Michigan,26147,519,45 +2020-06-14,St. Clair,Michigan,26147,521,45 +2020-06-15,St. Clair,Michigan,26147,521,46 +2020-06-16,St. Clair,Michigan,26147,521,48 +2020-06-17,St. Clair,Michigan,26147,521,48 +2020-06-18,St. Clair,Michigan,26147,521,48 +2020-06-19,St. Clair,Michigan,26147,525,48 +2020-06-20,St. Clair,Michigan,26147,525,48 +2020-06-21,St. Clair,Michigan,26147,525,48 +2020-06-22,St. Clair,Michigan,26147,530,48 +2020-06-23,St. Clair,Michigan,26147,530,49 +2020-06-24,St. Clair,Michigan,26147,534,49 +2020-06-25,St. Clair,Michigan,26147,538,49 +2020-06-26,St. Clair,Michigan,26147,543,49 +2020-06-27,St. Clair,Michigan,26147,547,49 +2020-06-28,St. Clair,Michigan,26147,549,49 +2020-06-29,St. Clair,Michigan,26147,553,49 +2020-06-30,St. Clair,Michigan,26147,560,50 +2020-07-01,St. Clair,Michigan,26147,561,50 +2020-07-02,St. Clair,Michigan,26147,572,50 +2020-07-03,St. Clair,Michigan,26147,579,50 +2020-07-04,St. Clair,Michigan,26147,586,50 +2020-07-05,St. Clair,Michigan,26147,590,50 +2020-07-06,St. Clair,Michigan,26147,590,50 +2020-07-07,St. Clair,Michigan,26147,593,51 +2020-07-08,St. Clair,Michigan,26147,599,52 +2020-07-09,St. Clair,Michigan,26147,602,53 +2020-03-30,St. Joseph,Michigan,26149,3,0 +2020-03-31,St. Joseph,Michigan,26149,4,0 +2020-04-01,St. Joseph,Michigan,26149,5,0 +2020-04-02,St. Joseph,Michigan,26149,8,0 +2020-04-03,St. Joseph,Michigan,26149,10,0 +2020-04-04,St. Joseph,Michigan,26149,9,0 +2020-04-05,St. Joseph,Michigan,26149,10,0 +2020-04-06,St. Joseph,Michigan,26149,11,0 +2020-04-07,St. Joseph,Michigan,26149,14,0 +2020-04-08,St. Joseph,Michigan,26149,16,0 +2020-04-09,St. Joseph,Michigan,26149,18,0 +2020-04-10,St. Joseph,Michigan,26149,20,0 +2020-04-11,St. Joseph,Michigan,26149,20,0 +2020-04-12,St. Joseph,Michigan,26149,21,0 +2020-04-13,St. Joseph,Michigan,26149,21,1 +2020-04-14,St. Joseph,Michigan,26149,22,1 +2020-04-15,St. Joseph,Michigan,26149,22,1 +2020-04-16,St. Joseph,Michigan,26149,23,1 +2020-04-17,St. Joseph,Michigan,26149,23,1 +2020-04-18,St. Joseph,Michigan,26149,24,1 +2020-04-19,St. Joseph,Michigan,26149,25,1 +2020-04-20,St. Joseph,Michigan,26149,25,1 +2020-04-21,St. Joseph,Michigan,26149,25,1 +2020-04-22,St. Joseph,Michigan,26149,27,1 +2020-04-23,St. Joseph,Michigan,26149,27,1 +2020-04-24,St. Joseph,Michigan,26149,27,1 +2020-04-25,St. Joseph,Michigan,26149,27,1 +2020-04-26,St. Joseph,Michigan,26149,28,1 +2020-04-27,St. Joseph,Michigan,26149,29,1 +2020-04-28,St. Joseph,Michigan,26149,30,1 +2020-04-29,St. Joseph,Michigan,26149,30,1 +2020-04-30,St. Joseph,Michigan,26149,32,1 +2020-05-01,St. Joseph,Michigan,26149,33,1 +2020-05-02,St. Joseph,Michigan,26149,38,1 +2020-05-03,St. Joseph,Michigan,26149,36,1 +2020-05-04,St. Joseph,Michigan,26149,42,1 +2020-05-05,St. Joseph,Michigan,26149,43,1 +2020-05-06,St. Joseph,Michigan,26149,44,1 +2020-05-07,St. Joseph,Michigan,26149,47,1 +2020-05-08,St. Joseph,Michigan,26149,51,1 +2020-05-09,St. Joseph,Michigan,26149,65,1 +2020-05-10,St. Joseph,Michigan,26149,65,1 +2020-05-11,St. Joseph,Michigan,26149,65,1 +2020-05-12,St. Joseph,Michigan,26149,71,1 +2020-05-13,St. Joseph,Michigan,26149,76,1 +2020-05-14,St. Joseph,Michigan,26149,79,1 +2020-05-15,St. Joseph,Michigan,26149,82,1 +2020-05-16,St. Joseph,Michigan,26149,84,1 +2020-05-17,St. Joseph,Michigan,26149,86,1 +2020-05-18,St. Joseph,Michigan,26149,87,1 +2020-05-19,St. Joseph,Michigan,26149,90,1 +2020-05-20,St. Joseph,Michigan,26149,92,2 +2020-05-21,St. Joseph,Michigan,26149,92,2 +2020-05-22,St. Joseph,Michigan,26149,96,2 +2020-05-23,St. Joseph,Michigan,26149,100,2 +2020-05-24,St. Joseph,Michigan,26149,101,2 +2020-05-25,St. Joseph,Michigan,26149,102,2 +2020-05-26,St. Joseph,Michigan,26149,104,2 +2020-05-27,St. Joseph,Michigan,26149,109,2 +2020-05-28,St. Joseph,Michigan,26149,110,2 +2020-05-29,St. Joseph,Michigan,26149,112,2 +2020-05-30,St. Joseph,Michigan,26149,118,2 +2020-05-31,St. Joseph,Michigan,26149,119,2 +2020-06-01,St. Joseph,Michigan,26149,119,2 +2020-06-02,St. Joseph,Michigan,26149,129,2 +2020-06-03,St. Joseph,Michigan,26149,130,3 +2020-06-04,St. Joseph,Michigan,26149,133,3 +2020-06-05,St. Joseph,Michigan,26149,144,3 +2020-06-06,St. Joseph,Michigan,26149,149,3 +2020-06-07,St. Joseph,Michigan,26149,152,3 +2020-06-08,St. Joseph,Michigan,26149,156,3 +2020-06-09,St. Joseph,Michigan,26149,158,3 +2020-06-10,St. Joseph,Michigan,26149,160,3 +2020-06-11,St. Joseph,Michigan,26149,166,3 +2020-06-12,St. Joseph,Michigan,26149,171,3 +2020-06-13,St. Joseph,Michigan,26149,175,3 +2020-06-14,St. Joseph,Michigan,26149,177,3 +2020-06-15,St. Joseph,Michigan,26149,186,3 +2020-06-16,St. Joseph,Michigan,26149,193,3 +2020-06-17,St. Joseph,Michigan,26149,200,3 +2020-06-18,St. Joseph,Michigan,26149,204,3 +2020-06-19,St. Joseph,Michigan,26149,210,3 +2020-06-20,St. Joseph,Michigan,26149,215,3 +2020-06-21,St. Joseph,Michigan,26149,219,3 +2020-06-22,St. Joseph,Michigan,26149,228,3 +2020-06-23,St. Joseph,Michigan,26149,232,3 +2020-06-24,St. Joseph,Michigan,26149,242,3 +2020-06-25,St. Joseph,Michigan,26149,255,3 +2020-06-26,St. Joseph,Michigan,26149,262,3 +2020-06-27,St. Joseph,Michigan,26149,276,3 +2020-06-28,St. Joseph,Michigan,26149,289,3 +2020-06-29,St. Joseph,Michigan,26149,307,4 +2020-06-30,St. Joseph,Michigan,26149,320,4 +2020-07-01,St. Joseph,Michigan,26149,327,4 +2020-07-02,St. Joseph,Michigan,26149,336,4 +2020-07-03,St. Joseph,Michigan,26149,339,4 +2020-07-04,St. Joseph,Michigan,26149,340,5 +2020-07-05,St. Joseph,Michigan,26149,349,5 +2020-07-06,St. Joseph,Michigan,26149,352,5 +2020-07-07,St. Joseph,Michigan,26149,358,5 +2020-07-08,St. Joseph,Michigan,26149,361,5 +2020-07-09,St. Joseph,Michigan,26149,368,5 +2020-03-25,Sanilac,Michigan,26151,1,0 +2020-03-26,Sanilac,Michigan,26151,1,0 +2020-03-27,Sanilac,Michigan,26151,2,0 +2020-03-28,Sanilac,Michigan,26151,2,0 +2020-03-29,Sanilac,Michigan,26151,2,0 +2020-03-30,Sanilac,Michigan,26151,5,0 +2020-03-31,Sanilac,Michigan,26151,7,0 +2020-04-01,Sanilac,Michigan,26151,7,1 +2020-04-02,Sanilac,Michigan,26151,8,1 +2020-04-03,Sanilac,Michigan,26151,10,1 +2020-04-04,Sanilac,Michigan,26151,13,1 +2020-04-05,Sanilac,Michigan,26151,13,1 +2020-04-06,Sanilac,Michigan,26151,14,2 +2020-04-07,Sanilac,Michigan,26151,17,2 +2020-04-08,Sanilac,Michigan,26151,22,2 +2020-04-09,Sanilac,Michigan,26151,22,2 +2020-04-10,Sanilac,Michigan,26151,23,2 +2020-04-11,Sanilac,Michigan,26151,23,2 +2020-04-12,Sanilac,Michigan,26151,23,2 +2020-04-13,Sanilac,Michigan,26151,23,2 +2020-04-14,Sanilac,Michigan,26151,23,2 +2020-04-15,Sanilac,Michigan,26151,25,2 +2020-04-16,Sanilac,Michigan,26151,25,2 +2020-04-17,Sanilac,Michigan,26151,27,3 +2020-04-18,Sanilac,Michigan,26151,32,3 +2020-04-19,Sanilac,Michigan,26151,33,3 +2020-04-20,Sanilac,Michigan,26151,32,3 +2020-04-21,Sanilac,Michigan,26151,32,3 +2020-04-22,Sanilac,Michigan,26151,32,3 +2020-04-23,Sanilac,Michigan,26151,34,4 +2020-04-24,Sanilac,Michigan,26151,34,4 +2020-04-25,Sanilac,Michigan,26151,34,4 +2020-04-26,Sanilac,Michigan,26151,34,4 +2020-04-27,Sanilac,Michigan,26151,34,4 +2020-04-28,Sanilac,Michigan,26151,34,4 +2020-04-29,Sanilac,Michigan,26151,34,4 +2020-04-30,Sanilac,Michigan,26151,35,4 +2020-05-01,Sanilac,Michigan,26151,36,5 +2020-05-02,Sanilac,Michigan,26151,36,5 +2020-05-03,Sanilac,Michigan,26151,37,5 +2020-05-04,Sanilac,Michigan,26151,36,5 +2020-05-05,Sanilac,Michigan,26151,36,5 +2020-05-06,Sanilac,Michigan,26151,38,5 +2020-05-07,Sanilac,Michigan,26151,38,5 +2020-05-08,Sanilac,Michigan,26151,38,5 +2020-05-09,Sanilac,Michigan,26151,37,5 +2020-05-10,Sanilac,Michigan,26151,37,5 +2020-05-11,Sanilac,Michigan,26151,38,5 +2020-05-12,Sanilac,Michigan,26151,38,5 +2020-05-13,Sanilac,Michigan,26151,38,5 +2020-05-14,Sanilac,Michigan,26151,38,5 +2020-05-15,Sanilac,Michigan,26151,38,5 +2020-05-16,Sanilac,Michigan,26151,38,5 +2020-05-17,Sanilac,Michigan,26151,39,5 +2020-05-18,Sanilac,Michigan,26151,39,5 +2020-05-19,Sanilac,Michigan,26151,39,5 +2020-05-20,Sanilac,Michigan,26151,39,5 +2020-05-21,Sanilac,Michigan,26151,39,5 +2020-05-22,Sanilac,Michigan,26151,39,5 +2020-05-23,Sanilac,Michigan,26151,39,5 +2020-05-24,Sanilac,Michigan,26151,40,5 +2020-05-25,Sanilac,Michigan,26151,40,5 +2020-05-26,Sanilac,Michigan,26151,40,5 +2020-05-27,Sanilac,Michigan,26151,40,5 +2020-05-28,Sanilac,Michigan,26151,40,5 +2020-05-29,Sanilac,Michigan,26151,41,5 +2020-05-30,Sanilac,Michigan,26151,41,5 +2020-05-31,Sanilac,Michigan,26151,41,5 +2020-06-01,Sanilac,Michigan,26151,41,5 +2020-06-02,Sanilac,Michigan,26151,41,5 +2020-06-03,Sanilac,Michigan,26151,42,5 +2020-06-04,Sanilac,Michigan,26151,42,5 +2020-06-05,Sanilac,Michigan,26151,43,6 +2020-06-06,Sanilac,Michigan,26151,43,6 +2020-06-07,Sanilac,Michigan,26151,43,6 +2020-06-08,Sanilac,Michigan,26151,43,6 +2020-06-09,Sanilac,Michigan,26151,43,6 +2020-06-10,Sanilac,Michigan,26151,43,6 +2020-06-11,Sanilac,Michigan,26151,43,6 +2020-06-12,Sanilac,Michigan,26151,43,6 +2020-06-13,Sanilac,Michigan,26151,44,6 +2020-06-14,Sanilac,Michigan,26151,44,6 +2020-06-15,Sanilac,Michigan,26151,44,6 +2020-06-16,Sanilac,Michigan,26151,44,6 +2020-06-17,Sanilac,Michigan,26151,44,6 +2020-06-18,Sanilac,Michigan,26151,44,6 +2020-06-19,Sanilac,Michigan,26151,44,6 +2020-06-20,Sanilac,Michigan,26151,44,6 +2020-06-21,Sanilac,Michigan,26151,44,6 +2020-06-22,Sanilac,Michigan,26151,44,6 +2020-06-23,Sanilac,Michigan,26151,44,6 +2020-06-24,Sanilac,Michigan,26151,44,6 +2020-06-25,Sanilac,Michigan,26151,44,6 +2020-06-26,Sanilac,Michigan,26151,44,6 +2020-06-27,Sanilac,Michigan,26151,44,6 +2020-06-28,Sanilac,Michigan,26151,44,6 +2020-06-29,Sanilac,Michigan,26151,46,6 +2020-06-30,Sanilac,Michigan,26151,47,6 +2020-07-01,Sanilac,Michigan,26151,49,6 +2020-07-02,Sanilac,Michigan,26151,51,6 +2020-07-03,Sanilac,Michigan,26151,50,6 +2020-07-04,Sanilac,Michigan,26151,50,6 +2020-07-05,Sanilac,Michigan,26151,50,6 +2020-07-06,Sanilac,Michigan,26151,51,6 +2020-07-07,Sanilac,Michigan,26151,54,6 +2020-07-08,Sanilac,Michigan,26151,55,6 +2020-07-09,Sanilac,Michigan,26151,55,6 +2020-04-08,Schoolcraft,Michigan,26153,1,0 +2020-04-09,Schoolcraft,Michigan,26153,1,0 +2020-04-10,Schoolcraft,Michigan,26153,1,0 +2020-04-11,Schoolcraft,Michigan,26153,2,0 +2020-04-12,Schoolcraft,Michigan,26153,2,0 +2020-04-13,Schoolcraft,Michigan,26153,3,0 +2020-04-14,Schoolcraft,Michigan,26153,3,0 +2020-04-15,Schoolcraft,Michigan,26153,3,0 +2020-04-16,Schoolcraft,Michigan,26153,3,0 +2020-04-17,Schoolcraft,Michigan,26153,3,0 +2020-04-18,Schoolcraft,Michigan,26153,3,0 +2020-04-19,Schoolcraft,Michigan,26153,3,0 +2020-04-20,Schoolcraft,Michigan,26153,3,0 +2020-04-21,Schoolcraft,Michigan,26153,3,0 +2020-04-22,Schoolcraft,Michigan,26153,3,0 +2020-04-23,Schoolcraft,Michigan,26153,3,0 +2020-04-24,Schoolcraft,Michigan,26153,3,0 +2020-04-25,Schoolcraft,Michigan,26153,3,0 +2020-04-26,Schoolcraft,Michigan,26153,3,0 +2020-04-27,Schoolcraft,Michigan,26153,3,0 +2020-04-28,Schoolcraft,Michigan,26153,3,0 +2020-04-29,Schoolcraft,Michigan,26153,3,0 +2020-04-30,Schoolcraft,Michigan,26153,3,0 +2020-05-01,Schoolcraft,Michigan,26153,3,0 +2020-05-02,Schoolcraft,Michigan,26153,3,0 +2020-05-03,Schoolcraft,Michigan,26153,3,0 +2020-05-04,Schoolcraft,Michigan,26153,3,0 +2020-05-05,Schoolcraft,Michigan,26153,3,0 +2020-05-06,Schoolcraft,Michigan,26153,3,0 +2020-05-07,Schoolcraft,Michigan,26153,4,0 +2020-05-08,Schoolcraft,Michigan,26153,4,0 +2020-05-09,Schoolcraft,Michigan,26153,4,0 +2020-05-10,Schoolcraft,Michigan,26153,4,0 +2020-05-11,Schoolcraft,Michigan,26153,4,0 +2020-05-12,Schoolcraft,Michigan,26153,4,0 +2020-05-13,Schoolcraft,Michigan,26153,4,0 +2020-05-14,Schoolcraft,Michigan,26153,4,0 +2020-05-15,Schoolcraft,Michigan,26153,4,0 +2020-05-16,Schoolcraft,Michigan,26153,4,0 +2020-05-17,Schoolcraft,Michigan,26153,4,0 +2020-05-18,Schoolcraft,Michigan,26153,4,0 +2020-05-19,Schoolcraft,Michigan,26153,4,0 +2020-05-20,Schoolcraft,Michigan,26153,4,0 +2020-05-21,Schoolcraft,Michigan,26153,4,0 +2020-05-22,Schoolcraft,Michigan,26153,4,0 +2020-05-23,Schoolcraft,Michigan,26153,4,0 +2020-05-24,Schoolcraft,Michigan,26153,4,0 +2020-05-25,Schoolcraft,Michigan,26153,4,0 +2020-05-26,Schoolcraft,Michigan,26153,4,0 +2020-05-27,Schoolcraft,Michigan,26153,4,0 +2020-05-28,Schoolcraft,Michigan,26153,4,0 +2020-05-29,Schoolcraft,Michigan,26153,4,0 +2020-05-30,Schoolcraft,Michigan,26153,4,0 +2020-05-31,Schoolcraft,Michigan,26153,4,0 +2020-06-01,Schoolcraft,Michigan,26153,4,0 +2020-06-02,Schoolcraft,Michigan,26153,4,0 +2020-06-03,Schoolcraft,Michigan,26153,4,0 +2020-06-04,Schoolcraft,Michigan,26153,4,0 +2020-06-05,Schoolcraft,Michigan,26153,4,0 +2020-06-06,Schoolcraft,Michigan,26153,4,0 +2020-06-07,Schoolcraft,Michigan,26153,4,0 +2020-06-08,Schoolcraft,Michigan,26153,4,0 +2020-06-09,Schoolcraft,Michigan,26153,4,0 +2020-06-10,Schoolcraft,Michigan,26153,4,0 +2020-06-11,Schoolcraft,Michigan,26153,4,0 +2020-06-12,Schoolcraft,Michigan,26153,4,0 +2020-06-13,Schoolcraft,Michigan,26153,4,0 +2020-06-14,Schoolcraft,Michigan,26153,4,0 +2020-06-15,Schoolcraft,Michigan,26153,4,0 +2020-06-16,Schoolcraft,Michigan,26153,4,0 +2020-06-17,Schoolcraft,Michigan,26153,4,0 +2020-06-18,Schoolcraft,Michigan,26153,4,0 +2020-06-19,Schoolcraft,Michigan,26153,4,0 +2020-06-20,Schoolcraft,Michigan,26153,4,0 +2020-06-21,Schoolcraft,Michigan,26153,4,0 +2020-06-22,Schoolcraft,Michigan,26153,4,0 +2020-06-23,Schoolcraft,Michigan,26153,4,0 +2020-06-24,Schoolcraft,Michigan,26153,4,0 +2020-06-25,Schoolcraft,Michigan,26153,4,0 +2020-06-26,Schoolcraft,Michigan,26153,4,0 +2020-06-27,Schoolcraft,Michigan,26153,4,0 +2020-06-28,Schoolcraft,Michigan,26153,4,0 +2020-06-29,Schoolcraft,Michigan,26153,4,0 +2020-06-30,Schoolcraft,Michigan,26153,4,0 +2020-07-01,Schoolcraft,Michigan,26153,4,0 +2020-07-02,Schoolcraft,Michigan,26153,4,0 +2020-07-03,Schoolcraft,Michigan,26153,5,0 +2020-07-04,Schoolcraft,Michigan,26153,5,0 +2020-07-05,Schoolcraft,Michigan,26153,6,0 +2020-07-06,Schoolcraft,Michigan,26153,6,0 +2020-07-07,Schoolcraft,Michigan,26153,6,0 +2020-07-08,Schoolcraft,Michigan,26153,7,0 +2020-07-09,Schoolcraft,Michigan,26153,7,0 +2020-03-26,Shiawassee,Michigan,26155,1,0 +2020-03-27,Shiawassee,Michigan,26155,2,0 +2020-03-28,Shiawassee,Michigan,26155,2,0 +2020-03-29,Shiawassee,Michigan,26155,5,0 +2020-03-30,Shiawassee,Michigan,26155,8,0 +2020-03-31,Shiawassee,Michigan,26155,8,0 +2020-04-01,Shiawassee,Michigan,26155,11,0 +2020-04-02,Shiawassee,Michigan,26155,17,0 +2020-04-03,Shiawassee,Michigan,26155,18,0 +2020-04-04,Shiawassee,Michigan,26155,22,0 +2020-04-05,Shiawassee,Michigan,26155,23,0 +2020-04-06,Shiawassee,Michigan,26155,24,0 +2020-04-07,Shiawassee,Michigan,26155,24,0 +2020-04-08,Shiawassee,Michigan,26155,27,0 +2020-04-09,Shiawassee,Michigan,26155,31,0 +2020-04-10,Shiawassee,Michigan,26155,34,0 +2020-04-11,Shiawassee,Michigan,26155,37,1 +2020-04-12,Shiawassee,Michigan,26155,54,1 +2020-04-13,Shiawassee,Michigan,26155,53,1 +2020-04-14,Shiawassee,Michigan,26155,62,1 +2020-04-15,Shiawassee,Michigan,26155,63,2 +2020-04-16,Shiawassee,Michigan,26155,70,2 +2020-04-17,Shiawassee,Michigan,26155,86,2 +2020-04-18,Shiawassee,Michigan,26155,91,2 +2020-04-19,Shiawassee,Michigan,26155,94,2 +2020-04-20,Shiawassee,Michigan,26155,109,2 +2020-04-21,Shiawassee,Michigan,26155,121,3 +2020-04-22,Shiawassee,Michigan,26155,123,3 +2020-04-23,Shiawassee,Michigan,26155,125,6 +2020-04-24,Shiawassee,Michigan,26155,130,6 +2020-04-25,Shiawassee,Michigan,26155,129,7 +2020-04-26,Shiawassee,Michigan,26155,130,7 +2020-04-27,Shiawassee,Michigan,26155,166,8 +2020-04-28,Shiawassee,Michigan,26155,173,8 +2020-04-29,Shiawassee,Michigan,26155,173,8 +2020-04-30,Shiawassee,Michigan,26155,180,10 +2020-05-01,Shiawassee,Michigan,26155,183,12 +2020-05-02,Shiawassee,Michigan,26155,184,12 +2020-05-03,Shiawassee,Michigan,26155,184,12 +2020-05-04,Shiawassee,Michigan,26155,185,12 +2020-05-05,Shiawassee,Michigan,26155,189,12 +2020-05-06,Shiawassee,Michigan,26155,196,13 +2020-05-07,Shiawassee,Michigan,26155,198,13 +2020-05-08,Shiawassee,Michigan,26155,201,16 +2020-05-09,Shiawassee,Michigan,26155,203,17 +2020-05-10,Shiawassee,Michigan,26155,204,17 +2020-05-11,Shiawassee,Michigan,26155,211,17 +2020-05-12,Shiawassee,Michigan,26155,214,18 +2020-05-13,Shiawassee,Michigan,26155,213,19 +2020-05-14,Shiawassee,Michigan,26155,219,19 +2020-05-15,Shiawassee,Michigan,26155,222,19 +2020-05-16,Shiawassee,Michigan,26155,223,19 +2020-05-17,Shiawassee,Michigan,26155,225,20 +2020-05-18,Shiawassee,Michigan,26155,227,20 +2020-05-19,Shiawassee,Michigan,26155,235,21 +2020-05-20,Shiawassee,Michigan,26155,246,21 +2020-05-21,Shiawassee,Michigan,26155,249,22 +2020-05-22,Shiawassee,Michigan,26155,247,22 +2020-05-23,Shiawassee,Michigan,26155,238,24 +2020-05-24,Shiawassee,Michigan,26155,235,24 +2020-05-25,Shiawassee,Michigan,26155,235,24 +2020-05-26,Shiawassee,Michigan,26155,236,24 +2020-05-27,Shiawassee,Michigan,26155,237,26 +2020-05-28,Shiawassee,Michigan,26155,239,26 +2020-05-29,Shiawassee,Michigan,26155,239,26 +2020-05-30,Shiawassee,Michigan,26155,240,26 +2020-05-31,Shiawassee,Michigan,26155,240,26 +2020-06-01,Shiawassee,Michigan,26155,240,26 +2020-06-02,Shiawassee,Michigan,26155,240,26 +2020-06-03,Shiawassee,Michigan,26155,239,26 +2020-06-04,Shiawassee,Michigan,26155,239,26 +2020-06-05,Shiawassee,Michigan,26155,261,27 +2020-06-06,Shiawassee,Michigan,26155,261,27 +2020-06-07,Shiawassee,Michigan,26155,261,27 +2020-06-08,Shiawassee,Michigan,26155,261,27 +2020-06-09,Shiawassee,Michigan,26155,261,27 +2020-06-10,Shiawassee,Michigan,26155,262,27 +2020-06-11,Shiawassee,Michigan,26155,263,27 +2020-06-12,Shiawassee,Michigan,26155,264,27 +2020-06-13,Shiawassee,Michigan,26155,264,27 +2020-06-14,Shiawassee,Michigan,26155,265,27 +2020-06-15,Shiawassee,Michigan,26155,265,27 +2020-06-16,Shiawassee,Michigan,26155,265,27 +2020-06-17,Shiawassee,Michigan,26155,265,27 +2020-06-18,Shiawassee,Michigan,26155,266,27 +2020-06-19,Shiawassee,Michigan,26155,265,27 +2020-06-20,Shiawassee,Michigan,26155,265,27 +2020-06-21,Shiawassee,Michigan,26155,265,27 +2020-06-22,Shiawassee,Michigan,26155,265,27 +2020-06-23,Shiawassee,Michigan,26155,265,27 +2020-06-24,Shiawassee,Michigan,26155,265,27 +2020-06-25,Shiawassee,Michigan,26155,268,27 +2020-06-26,Shiawassee,Michigan,26155,268,27 +2020-06-27,Shiawassee,Michigan,26155,269,27 +2020-06-28,Shiawassee,Michigan,26155,269,27 +2020-06-29,Shiawassee,Michigan,26155,272,27 +2020-06-30,Shiawassee,Michigan,26155,273,28 +2020-07-01,Shiawassee,Michigan,26155,273,28 +2020-07-02,Shiawassee,Michigan,26155,276,28 +2020-07-03,Shiawassee,Michigan,26155,276,28 +2020-07-04,Shiawassee,Michigan,26155,277,28 +2020-07-05,Shiawassee,Michigan,26155,278,28 +2020-07-06,Shiawassee,Michigan,26155,278,28 +2020-07-07,Shiawassee,Michigan,26155,278,28 +2020-07-08,Shiawassee,Michigan,26155,280,28 +2020-07-09,Shiawassee,Michigan,26155,283,28 +2020-03-21,Tuscola,Michigan,26157,1,0 +2020-03-22,Tuscola,Michigan,26157,1,0 +2020-03-23,Tuscola,Michigan,26157,1,0 +2020-03-24,Tuscola,Michigan,26157,1,0 +2020-03-25,Tuscola,Michigan,26157,2,0 +2020-03-26,Tuscola,Michigan,26157,2,1 +2020-03-27,Tuscola,Michigan,26157,2,1 +2020-03-28,Tuscola,Michigan,26157,4,1 +2020-03-29,Tuscola,Michigan,26157,4,1 +2020-03-30,Tuscola,Michigan,26157,5,1 +2020-03-31,Tuscola,Michigan,26157,9,2 +2020-04-01,Tuscola,Michigan,26157,11,2 +2020-04-02,Tuscola,Michigan,26157,14,2 +2020-04-03,Tuscola,Michigan,26157,15,2 +2020-04-04,Tuscola,Michigan,26157,20,2 +2020-04-05,Tuscola,Michigan,26157,22,2 +2020-04-06,Tuscola,Michigan,26157,22,2 +2020-04-07,Tuscola,Michigan,26157,26,2 +2020-04-08,Tuscola,Michigan,26157,27,2 +2020-04-09,Tuscola,Michigan,26157,36,3 +2020-04-10,Tuscola,Michigan,26157,41,5 +2020-04-11,Tuscola,Michigan,26157,41,6 +2020-04-12,Tuscola,Michigan,26157,45,7 +2020-04-13,Tuscola,Michigan,26157,45,7 +2020-04-14,Tuscola,Michigan,26157,45,9 +2020-04-15,Tuscola,Michigan,26157,47,9 +2020-04-16,Tuscola,Michigan,26157,50,10 +2020-04-17,Tuscola,Michigan,26157,54,10 +2020-04-18,Tuscola,Michigan,26157,59,11 +2020-04-19,Tuscola,Michigan,26157,61,11 +2020-04-20,Tuscola,Michigan,26157,63,12 +2020-04-21,Tuscola,Michigan,26157,63,11 +2020-04-22,Tuscola,Michigan,26157,71,11 +2020-04-23,Tuscola,Michigan,26157,76,12 +2020-04-24,Tuscola,Michigan,26157,78,12 +2020-04-25,Tuscola,Michigan,26157,81,13 +2020-04-26,Tuscola,Michigan,26157,82,13 +2020-04-27,Tuscola,Michigan,26157,90,13 +2020-04-28,Tuscola,Michigan,26157,94,13 +2020-04-29,Tuscola,Michigan,26157,98,13 +2020-04-30,Tuscola,Michigan,26157,105,14 +2020-05-01,Tuscola,Michigan,26157,106,14 +2020-05-02,Tuscola,Michigan,26157,113,14 +2020-05-03,Tuscola,Michigan,26157,113,14 +2020-05-04,Tuscola,Michigan,26157,113,14 +2020-05-05,Tuscola,Michigan,26157,117,14 +2020-05-06,Tuscola,Michigan,26157,118,16 +2020-05-07,Tuscola,Michigan,26157,126,16 +2020-05-08,Tuscola,Michigan,26157,130,17 +2020-05-09,Tuscola,Michigan,26157,131,17 +2020-05-10,Tuscola,Michigan,26157,134,17 +2020-05-11,Tuscola,Michigan,26157,139,17 +2020-05-12,Tuscola,Michigan,26157,162,17 +2020-05-13,Tuscola,Michigan,26157,161,17 +2020-05-14,Tuscola,Michigan,26157,163,17 +2020-05-15,Tuscola,Michigan,26157,166,17 +2020-05-16,Tuscola,Michigan,26157,165,18 +2020-05-17,Tuscola,Michigan,26157,170,18 +2020-05-18,Tuscola,Michigan,26157,172,19 +2020-05-19,Tuscola,Michigan,26157,173,21 +2020-05-20,Tuscola,Michigan,26157,174,22 +2020-05-21,Tuscola,Michigan,26157,178,22 +2020-05-22,Tuscola,Michigan,26157,177,23 +2020-05-23,Tuscola,Michigan,26157,183,23 +2020-05-24,Tuscola,Michigan,26157,185,23 +2020-05-25,Tuscola,Michigan,26157,185,23 +2020-05-26,Tuscola,Michigan,26157,186,23 +2020-05-27,Tuscola,Michigan,26157,186,23 +2020-05-28,Tuscola,Michigan,26157,186,23 +2020-05-29,Tuscola,Michigan,26157,189,23 +2020-05-30,Tuscola,Michigan,26157,187,23 +2020-05-31,Tuscola,Michigan,26157,187,23 +2020-06-01,Tuscola,Michigan,26157,189,24 +2020-06-02,Tuscola,Michigan,26157,189,24 +2020-06-03,Tuscola,Michigan,26157,188,24 +2020-06-04,Tuscola,Michigan,26157,188,25 +2020-06-05,Tuscola,Michigan,26157,195,25 +2020-06-06,Tuscola,Michigan,26157,201,25 +2020-06-07,Tuscola,Michigan,26157,202,25 +2020-06-08,Tuscola,Michigan,26157,204,25 +2020-06-09,Tuscola,Michigan,26157,205,25 +2020-06-10,Tuscola,Michigan,26157,206,25 +2020-06-11,Tuscola,Michigan,26157,207,25 +2020-06-12,Tuscola,Michigan,26157,208,25 +2020-06-13,Tuscola,Michigan,26157,209,26 +2020-06-14,Tuscola,Michigan,26157,210,26 +2020-06-15,Tuscola,Michigan,26157,211,26 +2020-06-16,Tuscola,Michigan,26157,216,26 +2020-06-17,Tuscola,Michigan,26157,230,26 +2020-06-18,Tuscola,Michigan,26157,246,26 +2020-06-19,Tuscola,Michigan,26157,246,26 +2020-06-20,Tuscola,Michigan,26157,246,26 +2020-06-21,Tuscola,Michigan,26157,246,26 +2020-06-22,Tuscola,Michigan,26157,248,26 +2020-06-23,Tuscola,Michigan,26157,229,26 +2020-06-24,Tuscola,Michigan,26157,229,26 +2020-06-25,Tuscola,Michigan,26157,229,26 +2020-06-26,Tuscola,Michigan,26157,233,26 +2020-06-27,Tuscola,Michigan,26157,233,26 +2020-06-28,Tuscola,Michigan,26157,233,26 +2020-06-29,Tuscola,Michigan,26157,234,26 +2020-06-30,Tuscola,Michigan,26157,232,26 +2020-07-01,Tuscola,Michigan,26157,232,26 +2020-07-02,Tuscola,Michigan,26157,232,26 +2020-07-03,Tuscola,Michigan,26157,233,26 +2020-07-04,Tuscola,Michigan,26157,233,26 +2020-07-05,Tuscola,Michigan,26157,233,26 +2020-07-06,Tuscola,Michigan,26157,235,26 +2020-07-07,Tuscola,Michigan,26157,238,26 +2020-07-08,Tuscola,Michigan,26157,241,26 +2020-07-09,Tuscola,Michigan,26157,243,26 +2020-03-25,Van Buren,Michigan,26159,2,0 +2020-03-26,Van Buren,Michigan,26159,2,0 +2020-03-27,Van Buren,Michigan,26159,3,0 +2020-03-28,Van Buren,Michigan,26159,4,0 +2020-03-29,Van Buren,Michigan,26159,4,0 +2020-03-30,Van Buren,Michigan,26159,4,0 +2020-03-31,Van Buren,Michigan,26159,7,0 +2020-04-01,Van Buren,Michigan,26159,10,0 +2020-04-02,Van Buren,Michigan,26159,12,1 +2020-04-03,Van Buren,Michigan,26159,12,1 +2020-04-04,Van Buren,Michigan,26159,12,1 +2020-04-05,Van Buren,Michigan,26159,14,1 +2020-04-06,Van Buren,Michigan,26159,16,1 +2020-04-07,Van Buren,Michigan,26159,17,1 +2020-04-08,Van Buren,Michigan,26159,18,1 +2020-04-09,Van Buren,Michigan,26159,18,1 +2020-04-10,Van Buren,Michigan,26159,20,1 +2020-04-11,Van Buren,Michigan,26159,21,1 +2020-04-12,Van Buren,Michigan,26159,21,1 +2020-04-13,Van Buren,Michigan,26159,22,1 +2020-04-14,Van Buren,Michigan,26159,22,2 +2020-04-15,Van Buren,Michigan,26159,26,2 +2020-04-16,Van Buren,Michigan,26159,26,2 +2020-04-17,Van Buren,Michigan,26159,28,2 +2020-04-18,Van Buren,Michigan,26159,31,2 +2020-04-19,Van Buren,Michigan,26159,32,2 +2020-04-20,Van Buren,Michigan,26159,33,2 +2020-04-21,Van Buren,Michigan,26159,34,2 +2020-04-22,Van Buren,Michigan,26159,36,2 +2020-04-23,Van Buren,Michigan,26159,35,2 +2020-04-24,Van Buren,Michigan,26159,34,2 +2020-04-25,Van Buren,Michigan,26159,34,2 +2020-04-26,Van Buren,Michigan,26159,35,2 +2020-04-27,Van Buren,Michigan,26159,36,2 +2020-04-28,Van Buren,Michigan,26159,43,2 +2020-04-29,Van Buren,Michigan,26159,46,2 +2020-04-30,Van Buren,Michigan,26159,49,2 +2020-05-01,Van Buren,Michigan,26159,54,2 +2020-05-02,Van Buren,Michigan,26159,59,2 +2020-05-03,Van Buren,Michigan,26159,61,2 +2020-05-04,Van Buren,Michigan,26159,67,2 +2020-05-05,Van Buren,Michigan,26159,69,2 +2020-05-06,Van Buren,Michigan,26159,68,2 +2020-05-07,Van Buren,Michigan,26159,73,2 +2020-05-08,Van Buren,Michigan,26159,81,2 +2020-05-09,Van Buren,Michigan,26159,84,3 +2020-05-10,Van Buren,Michigan,26159,88,4 +2020-05-11,Van Buren,Michigan,26159,93,4 +2020-05-12,Van Buren,Michigan,26159,94,4 +2020-05-13,Van Buren,Michigan,26159,94,4 +2020-05-14,Van Buren,Michigan,26159,100,5 +2020-05-15,Van Buren,Michigan,26159,106,5 +2020-05-16,Van Buren,Michigan,26159,110,5 +2020-05-17,Van Buren,Michigan,26159,112,5 +2020-05-18,Van Buren,Michigan,26159,115,6 +2020-05-19,Van Buren,Michigan,26159,116,6 +2020-05-20,Van Buren,Michigan,26159,116,6 +2020-05-21,Van Buren,Michigan,26159,117,6 +2020-05-22,Van Buren,Michigan,26159,120,6 +2020-05-23,Van Buren,Michigan,26159,121,6 +2020-05-24,Van Buren,Michigan,26159,121,6 +2020-05-25,Van Buren,Michigan,26159,123,6 +2020-05-26,Van Buren,Michigan,26159,126,6 +2020-05-27,Van Buren,Michigan,26159,131,6 +2020-05-28,Van Buren,Michigan,26159,134,6 +2020-05-29,Van Buren,Michigan,26159,136,6 +2020-05-30,Van Buren,Michigan,26159,140,6 +2020-05-31,Van Buren,Michigan,26159,144,6 +2020-06-01,Van Buren,Michigan,26159,144,6 +2020-06-02,Van Buren,Michigan,26159,147,6 +2020-06-03,Van Buren,Michigan,26159,149,6 +2020-06-04,Van Buren,Michigan,26159,150,6 +2020-06-05,Van Buren,Michigan,26159,172,7 +2020-06-06,Van Buren,Michigan,26159,175,7 +2020-06-07,Van Buren,Michigan,26159,176,7 +2020-06-08,Van Buren,Michigan,26159,177,7 +2020-06-09,Van Buren,Michigan,26159,179,7 +2020-06-10,Van Buren,Michigan,26159,195,7 +2020-06-11,Van Buren,Michigan,26159,195,8 +2020-06-12,Van Buren,Michigan,26159,200,7 +2020-06-13,Van Buren,Michigan,26159,202,7 +2020-06-14,Van Buren,Michigan,26159,206,7 +2020-06-15,Van Buren,Michigan,26159,206,7 +2020-06-16,Van Buren,Michigan,26159,207,7 +2020-06-17,Van Buren,Michigan,26159,210,7 +2020-06-18,Van Buren,Michigan,26159,212,7 +2020-06-19,Van Buren,Michigan,26159,213,7 +2020-06-20,Van Buren,Michigan,26159,215,7 +2020-06-21,Van Buren,Michigan,26159,216,7 +2020-06-22,Van Buren,Michigan,26159,217,7 +2020-06-23,Van Buren,Michigan,26159,217,7 +2020-06-24,Van Buren,Michigan,26159,221,7 +2020-06-25,Van Buren,Michigan,26159,224,7 +2020-06-26,Van Buren,Michigan,26159,224,7 +2020-06-27,Van Buren,Michigan,26159,224,7 +2020-06-28,Van Buren,Michigan,26159,225,7 +2020-06-29,Van Buren,Michigan,26159,226,7 +2020-06-30,Van Buren,Michigan,26159,225,8 +2020-07-01,Van Buren,Michigan,26159,230,8 +2020-07-02,Van Buren,Michigan,26159,231,8 +2020-07-03,Van Buren,Michigan,26159,232,8 +2020-07-04,Van Buren,Michigan,26159,234,8 +2020-07-05,Van Buren,Michigan,26159,235,8 +2020-07-06,Van Buren,Michigan,26159,235,8 +2020-07-07,Van Buren,Michigan,26159,246,8 +2020-07-08,Van Buren,Michigan,26159,256,8 +2020-07-09,Van Buren,Michigan,26159,257,9 +2020-03-12,Washtenaw,Michigan,26161,2,0 +2020-03-13,Washtenaw,Michigan,26161,3,0 +2020-03-14,Washtenaw,Michigan,26161,4,0 +2020-03-15,Washtenaw,Michigan,26161,7,0 +2020-03-16,Washtenaw,Michigan,26161,7,0 +2020-03-17,Washtenaw,Michigan,26161,7,0 +2020-03-18,Washtenaw,Michigan,26161,7,0 +2020-03-19,Washtenaw,Michigan,26161,14,0 +2020-03-20,Washtenaw,Michigan,26161,16,0 +2020-03-21,Washtenaw,Michigan,26161,29,0 +2020-03-22,Washtenaw,Michigan,26161,34,1 +2020-03-23,Washtenaw,Michigan,26161,42,1 +2020-03-24,Washtenaw,Michigan,26161,50,3 +2020-03-25,Washtenaw,Michigan,26161,72,3 +2020-03-26,Washtenaw,Michigan,26161,92,3 +2020-03-27,Washtenaw,Michigan,26161,150,3 +2020-03-28,Washtenaw,Michigan,26161,185,3 +2020-03-29,Washtenaw,Michigan,26161,231,5 +2020-03-30,Washtenaw,Michigan,26161,266,6 +2020-03-31,Washtenaw,Michigan,26161,311,7 +2020-04-01,Washtenaw,Michigan,26161,401,8 +2020-04-02,Washtenaw,Michigan,26161,438,8 +2020-04-03,Washtenaw,Michigan,26161,477,8 +2020-04-04,Washtenaw,Michigan,26161,501,8 +2020-04-05,Washtenaw,Michigan,26161,521,8 +2020-04-06,Washtenaw,Michigan,26161,543,10 +2020-04-07,Washtenaw,Michigan,26161,561,12 +2020-04-08,Washtenaw,Michigan,26161,610,13 +2020-04-09,Washtenaw,Michigan,26161,637,15 +2020-04-10,Washtenaw,Michigan,26161,659,15 +2020-04-11,Washtenaw,Michigan,26161,685,18 +2020-04-12,Washtenaw,Michigan,26161,716,18 +2020-04-13,Washtenaw,Michigan,26161,736,18 +2020-04-14,Washtenaw,Michigan,26161,772,21 +2020-04-15,Washtenaw,Michigan,26161,873,24 +2020-04-16,Washtenaw,Michigan,26161,918,25 +2020-04-17,Washtenaw,Michigan,26161,947,25 +2020-04-18,Washtenaw,Michigan,26161,950,29 +2020-04-19,Washtenaw,Michigan,26161,956,32 +2020-04-20,Washtenaw,Michigan,26161,965,33 +2020-04-21,Washtenaw,Michigan,26161,1003,40 +2020-04-22,Washtenaw,Michigan,26161,1021,43 +2020-04-23,Washtenaw,Michigan,26161,1069,45 +2020-04-24,Washtenaw,Michigan,26161,1082,50 +2020-04-25,Washtenaw,Michigan,26161,1111,53 +2020-04-26,Washtenaw,Michigan,26161,1114,53 +2020-04-27,Washtenaw,Michigan,26161,1114,59 +2020-04-28,Washtenaw,Michigan,26161,1143,60 +2020-04-29,Washtenaw,Michigan,26161,1159,63 +2020-04-30,Washtenaw,Michigan,26161,1192,66 +2020-05-01,Washtenaw,Michigan,26161,1185,72 +2020-05-02,Washtenaw,Michigan,26161,1195,76 +2020-05-03,Washtenaw,Michigan,26161,1213,77 +2020-05-04,Washtenaw,Michigan,26161,1218,82 +2020-05-05,Washtenaw,Michigan,26161,1225,82 +2020-05-06,Washtenaw,Michigan,26161,1231,83 +2020-05-07,Washtenaw,Michigan,26161,1295,83 +2020-05-08,Washtenaw,Michigan,26161,1315,86 +2020-05-09,Washtenaw,Michigan,26161,1336,87 +2020-05-10,Washtenaw,Michigan,26161,1346,87 +2020-05-11,Washtenaw,Michigan,26161,1356,87 +2020-05-12,Washtenaw,Michigan,26161,1371,88 +2020-05-13,Washtenaw,Michigan,26161,1377,90 +2020-05-14,Washtenaw,Michigan,26161,1401,93 +2020-05-15,Washtenaw,Michigan,26161,1406,94 +2020-05-16,Washtenaw,Michigan,26161,1410,95 +2020-05-17,Washtenaw,Michigan,26161,1411,95 +2020-05-18,Washtenaw,Michigan,26161,1414,96 +2020-05-19,Washtenaw,Michigan,26161,1420,96 +2020-05-20,Washtenaw,Michigan,26161,1430,97 +2020-05-21,Washtenaw,Michigan,26161,1434,102 +2020-05-22,Washtenaw,Michigan,26161,1444,103 +2020-05-23,Washtenaw,Michigan,26161,1451,103 +2020-05-24,Washtenaw,Michigan,26161,1677,103 +2020-05-25,Washtenaw,Michigan,26161,1681,103 +2020-05-26,Washtenaw,Michigan,26161,1684,103 +2020-05-27,Washtenaw,Michigan,26161,1688,104 +2020-05-28,Washtenaw,Michigan,26161,1698,107 +2020-05-29,Washtenaw,Michigan,26161,1703,107 +2020-05-30,Washtenaw,Michigan,26161,1716,106 +2020-05-31,Washtenaw,Michigan,26161,1720,106 +2020-06-01,Washtenaw,Michigan,26161,1992,109 +2020-06-02,Washtenaw,Michigan,26161,1995,109 +2020-06-03,Washtenaw,Michigan,26161,1996,110 +2020-06-04,Washtenaw,Michigan,26161,2002,110 +2020-06-05,Washtenaw,Michigan,26161,2016,110 +2020-06-06,Washtenaw,Michigan,26161,2015,110 +2020-06-07,Washtenaw,Michigan,26161,2015,110 +2020-06-08,Washtenaw,Michigan,26161,2018,111 +2020-06-09,Washtenaw,Michigan,26161,2020,111 +2020-06-10,Washtenaw,Michigan,26161,2037,111 +2020-06-11,Washtenaw,Michigan,26161,2045,111 +2020-06-12,Washtenaw,Michigan,26161,2062,111 +2020-06-13,Washtenaw,Michigan,26161,2068,111 +2020-06-14,Washtenaw,Michigan,26161,2069,111 +2020-06-15,Washtenaw,Michigan,26161,2074,111 +2020-06-16,Washtenaw,Michigan,26161,2078,111 +2020-06-17,Washtenaw,Michigan,26161,2085,111 +2020-06-18,Washtenaw,Michigan,26161,2085,111 +2020-06-19,Washtenaw,Michigan,26161,2110,113 +2020-06-20,Washtenaw,Michigan,26161,2110,113 +2020-06-21,Washtenaw,Michigan,26161,2110,113 +2020-06-22,Washtenaw,Michigan,26161,2126,113 +2020-06-23,Washtenaw,Michigan,26161,2130,113 +2020-06-24,Washtenaw,Michigan,26161,2136,113 +2020-06-25,Washtenaw,Michigan,26161,2142,113 +2020-06-26,Washtenaw,Michigan,26161,2151,114 +2020-06-27,Washtenaw,Michigan,26161,2151,114 +2020-06-28,Washtenaw,Michigan,26161,2151,114 +2020-06-29,Washtenaw,Michigan,26161,2180,114 +2020-06-30,Washtenaw,Michigan,26161,2192,115 +2020-07-01,Washtenaw,Michigan,26161,2204,115 +2020-07-02,Washtenaw,Michigan,26161,2217,116 +2020-07-03,Washtenaw,Michigan,26161,2217,116 +2020-07-04,Washtenaw,Michigan,26161,2217,116 +2020-07-05,Washtenaw,Michigan,26161,2217,116 +2020-07-06,Washtenaw,Michigan,26161,2276,116 +2020-07-07,Washtenaw,Michigan,26161,2294,117 +2020-07-08,Washtenaw,Michigan,26161,2321,117 +2020-07-09,Washtenaw,Michigan,26161,2340,117 +2020-03-10,Wayne,Michigan,26163,1,0 +2020-03-11,Wayne,Michigan,26163,1,0 +2020-03-12,Wayne,Michigan,26163,1,0 +2020-03-13,Wayne,Michigan,26163,6,0 +2020-03-14,Wayne,Michigan,26163,8,0 +2020-03-15,Wayne,Michigan,26163,13,0 +2020-03-16,Wayne,Michigan,26163,13,0 +2020-03-17,Wayne,Michigan,26163,17,0 +2020-03-18,Wayne,Michigan,26163,23,1 +2020-03-19,Wayne,Michigan,26163,119,3 +2020-03-20,Wayne,Michigan,26163,216,3 +2020-03-21,Wayne,Michigan,26163,349,4 +2020-03-22,Wayne,Michigan,26163,477,5 +2020-03-23,Wayne,Michigan,26163,638,8 +2020-03-24,Wayne,Michigan,26163,873,13 +2020-03-25,Wayne,Michigan,26163,1122,21 +2020-03-26,Wayne,Michigan,26163,1389,26 +2020-03-27,Wayne,Michigan,26163,1810,37 +2020-03-28,Wayne,Michigan,26163,2316,46 +2020-03-29,Wayne,Michigan,26163,2704,56 +2020-03-30,Wayne,Michigan,26163,3195,83 +2020-03-31,Wayne,Michigan,26163,3735,120 +2020-04-01,Wayne,Michigan,26163,4470,146 +2020-04-02,Wayne,Michigan,26163,5069,194 +2020-04-03,Wayne,Michigan,26163,6096,223 +2020-04-04,Wayne,Michigan,26163,6762,252 +2020-04-05,Wayne,Michigan,26163,7518,293 +2020-04-06,Wayne,Michigan,26163,8270,346 +2020-04-07,Wayne,Michigan,26163,9045,402 +2020-04-08,Wayne,Michigan,26163,9626,446 +2020-04-09,Wayne,Michigan,26163,10093,504 +2020-04-10,Wayne,Michigan,26163,10539,609 +2020-04-11,Wayne,Michigan,26163,10951,652 +2020-04-12,Wayne,Michigan,26163,11164,704 +2020-04-13,Wayne,Michigan,26163,11648,760 +2020-04-14,Wayne,Michigan,26163,12209,820 +2020-04-15,Wayne,Michigan,26163,12560,885 +2020-04-16,Wayne,Michigan,26163,13018,982 +2020-04-17,Wayne,Michigan,26163,13249,1045 +2020-04-18,Wayne,Michigan,26163,13487,1071 +2020-04-19,Wayne,Michigan,26163,13708,1121 +2020-04-20,Wayne,Michigan,26163,13928,1150 +2020-04-21,Wayne,Michigan,26163,14271,1281 +2020-04-22,Wayne,Michigan,26163,14578,1322 +2020-04-23,Wayne,Michigan,26163,15011,1399 +2020-04-24,Wayne,Michigan,26163,15425,1445 +2020-04-25,Wayne,Michigan,26163,15566,1562 +2020-04-26,Wayne,Michigan,26163,15767,1582 +2020-04-27,Wayne,Michigan,26163,15892,1624 +2020-04-28,Wayne,Michigan,26163,16193,1684 +2020-04-29,Wayne,Michigan,26163,16514,1729 +2020-04-30,Wayne,Michigan,26163,16749,1784 +2020-05-01,Wayne,Michigan,26163,16990,1804 +2020-05-02,Wayne,Michigan,26163,17126,1886 +2020-05-03,Wayne,Michigan,26163,17318,1895 +2020-05-04,Wayne,Michigan,26163,17334,1926 +2020-05-05,Wayne,Michigan,26163,17411,1947 +2020-05-06,Wayne,Michigan,26163,17591,1975 +2020-05-07,Wayne,Michigan,26163,17687,2014 +2020-05-08,Wayne,Michigan,26163,17844,2030 +2020-05-09,Wayne,Michigan,26163,17980,2084 +2020-05-10,Wayne,Michigan,26163,18095,2099 +2020-05-11,Wayne,Michigan,26163,18214,2107 +2020-05-12,Wayne,Michigan,26163,18294,2142 +2020-05-13,Wayne,Michigan,26163,18409,2158 +2020-05-14,Wayne,Michigan,26163,18790,2185 +2020-05-15,Wayne,Michigan,26163,18902,2194 +2020-05-16,Wayne,Michigan,26163,19036,2214 +2020-05-17,Wayne,Michigan,26163,19085,2215 +2020-05-18,Wayne,Michigan,26163,19148,2228 +2020-05-19,Wayne,Michigan,26163,19312,2277 +2020-05-20,Wayne,Michigan,26163,19452,2286 +2020-05-21,Wayne,Michigan,26163,19558,2315 +2020-05-22,Wayne,Michigan,26163,19622,2325 +2020-05-23,Wayne,Michigan,26163,19717,2363 +2020-05-24,Wayne,Michigan,26163,19794,2361 +2020-05-25,Wayne,Michigan,26163,19839,2366 +2020-05-26,Wayne,Michigan,26163,19949,2370 +2020-05-27,Wayne,Michigan,26163,20022,2408 +2020-05-28,Wayne,Michigan,26163,20082,2412 +2020-05-29,Wayne,Michigan,26163,20250,2427 +2020-05-30,Wayne,Michigan,26163,20277,2454 +2020-05-31,Wayne,Michigan,26163,20438,2463 +2020-06-01,Wayne,Michigan,26163,20469,2465 +2020-06-02,Wayne,Michigan,26163,20491,2477 +2020-06-03,Wayne,Michigan,26163,20564,2481 +2020-06-04,Wayne,Michigan,26163,20613,2494 +2020-06-05,Wayne,Michigan,26163,21065,2615 +2020-06-06,Wayne,Michigan,26163,21186,2629 +2020-06-07,Wayne,Michigan,26163,21410,2630 +2020-06-08,Wayne,Michigan,26163,21478,2635 +2020-06-09,Wayne,Michigan,26163,21556,2653 +2020-06-10,Wayne,Michigan,26163,21593,2655 +2020-06-11,Wayne,Michigan,26163,21652,2666 +2020-06-12,Wayne,Michigan,26163,21683,2666 +2020-06-13,Wayne,Michigan,26163,21734,2671 +2020-06-14,Wayne,Michigan,26163,21772,2672 +2020-06-15,Wayne,Michigan,26163,21816,2672 +2020-06-16,Wayne,Michigan,26163,21828,2677 +2020-06-17,Wayne,Michigan,26163,21920,2678 +2020-06-18,Wayne,Michigan,26163,21964,2682 +2020-06-19,Wayne,Michigan,26163,22018,2683 +2020-06-20,Wayne,Michigan,26163,22108,2689 +2020-06-21,Wayne,Michigan,26163,22162,2689 +2020-06-22,Wayne,Michigan,26163,22203,2691 +2020-06-23,Wayne,Michigan,26163,22268,2692 +2020-06-24,Wayne,Michigan,26163,22347,2695 +2020-06-25,Wayne,Michigan,26163,22476,2705 +2020-06-26,Wayne,Michigan,26163,22503,2703 +2020-06-27,Wayne,Michigan,26163,22603,2710 +2020-06-28,Wayne,Michigan,26163,22645,2712 +2020-06-29,Wayne,Michigan,26163,22686,2713 +2020-06-30,Wayne,Michigan,26163,22791,2722 +2020-07-01,Wayne,Michigan,26163,22879,2724 +2020-07-02,Wayne,Michigan,26163,23015,2730 +2020-07-03,Wayne,Michigan,26163,23078,2730 +2020-07-04,Wayne,Michigan,26163,23147,2730 +2020-07-05,Wayne,Michigan,26163,23206,2730 +2020-07-06,Wayne,Michigan,26163,23283,2732 +2020-07-07,Wayne,Michigan,26163,23459,2743 +2020-07-08,Wayne,Michigan,26163,23621,2745 +2020-07-09,Wayne,Michigan,26163,23725,2746 +2020-03-21,Wexford,Michigan,26165,1,0 +2020-03-22,Wexford,Michigan,26165,1,0 +2020-03-23,Wexford,Michigan,26165,1,0 +2020-03-24,Wexford,Michigan,26165,1,0 +2020-03-25,Wexford,Michigan,26165,1,0 +2020-03-26,Wexford,Michigan,26165,1,0 +2020-03-27,Wexford,Michigan,26165,1,0 +2020-03-28,Wexford,Michigan,26165,1,0 +2020-03-29,Wexford,Michigan,26165,1,0 +2020-03-30,Wexford,Michigan,26165,2,0 +2020-03-31,Wexford,Michigan,26165,2,0 +2020-04-01,Wexford,Michigan,26165,2,0 +2020-04-02,Wexford,Michigan,26165,3,0 +2020-04-03,Wexford,Michigan,26165,4,0 +2020-04-04,Wexford,Michigan,26165,4,0 +2020-04-05,Wexford,Michigan,26165,5,0 +2020-04-06,Wexford,Michigan,26165,5,0 +2020-04-07,Wexford,Michigan,26165,7,0 +2020-04-08,Wexford,Michigan,26165,7,0 +2020-04-09,Wexford,Michigan,26165,7,0 +2020-04-10,Wexford,Michigan,26165,7,0 +2020-04-11,Wexford,Michigan,26165,7,1 +2020-04-12,Wexford,Michigan,26165,7,1 +2020-04-13,Wexford,Michigan,26165,7,1 +2020-04-14,Wexford,Michigan,26165,7,1 +2020-04-15,Wexford,Michigan,26165,7,1 +2020-04-16,Wexford,Michigan,26165,7,1 +2020-04-17,Wexford,Michigan,26165,7,1 +2020-04-18,Wexford,Michigan,26165,7,1 +2020-04-19,Wexford,Michigan,26165,7,1 +2020-04-20,Wexford,Michigan,26165,7,1 +2020-04-21,Wexford,Michigan,26165,7,1 +2020-04-22,Wexford,Michigan,26165,7,1 +2020-04-23,Wexford,Michigan,26165,7,1 +2020-04-24,Wexford,Michigan,26165,8,1 +2020-04-25,Wexford,Michigan,26165,8,1 +2020-04-26,Wexford,Michigan,26165,8,1 +2020-04-27,Wexford,Michigan,26165,9,2 +2020-04-28,Wexford,Michigan,26165,9,2 +2020-04-29,Wexford,Michigan,26165,10,2 +2020-04-30,Wexford,Michigan,26165,9,2 +2020-05-01,Wexford,Michigan,26165,9,2 +2020-05-02,Wexford,Michigan,26165,9,2 +2020-05-03,Wexford,Michigan,26165,9,2 +2020-05-04,Wexford,Michigan,26165,9,2 +2020-05-05,Wexford,Michigan,26165,9,2 +2020-05-06,Wexford,Michigan,26165,9,2 +2020-05-07,Wexford,Michigan,26165,9,2 +2020-05-08,Wexford,Michigan,26165,10,2 +2020-05-09,Wexford,Michigan,26165,10,2 +2020-05-10,Wexford,Michigan,26165,11,2 +2020-05-11,Wexford,Michigan,26165,11,2 +2020-05-12,Wexford,Michigan,26165,11,2 +2020-05-13,Wexford,Michigan,26165,11,2 +2020-05-14,Wexford,Michigan,26165,11,2 +2020-05-15,Wexford,Michigan,26165,11,2 +2020-05-16,Wexford,Michigan,26165,11,2 +2020-05-17,Wexford,Michigan,26165,11,2 +2020-05-18,Wexford,Michigan,26165,11,2 +2020-05-19,Wexford,Michigan,26165,11,2 +2020-05-20,Wexford,Michigan,26165,11,2 +2020-05-21,Wexford,Michigan,26165,11,2 +2020-05-22,Wexford,Michigan,26165,11,2 +2020-05-23,Wexford,Michigan,26165,11,2 +2020-05-24,Wexford,Michigan,26165,11,2 +2020-05-25,Wexford,Michigan,26165,11,2 +2020-05-26,Wexford,Michigan,26165,11,2 +2020-05-27,Wexford,Michigan,26165,11,2 +2020-05-28,Wexford,Michigan,26165,11,3 +2020-05-29,Wexford,Michigan,26165,11,3 +2020-05-30,Wexford,Michigan,26165,11,3 +2020-05-31,Wexford,Michigan,26165,11,3 +2020-06-01,Wexford,Michigan,26165,18,3 +2020-06-02,Wexford,Michigan,26165,18,3 +2020-06-03,Wexford,Michigan,26165,18,3 +2020-06-04,Wexford,Michigan,26165,18,3 +2020-06-05,Wexford,Michigan,26165,18,3 +2020-06-06,Wexford,Michigan,26165,18,3 +2020-06-07,Wexford,Michigan,26165,18,3 +2020-06-08,Wexford,Michigan,26165,18,3 +2020-06-09,Wexford,Michigan,26165,18,3 +2020-06-10,Wexford,Michigan,26165,18,3 +2020-06-11,Wexford,Michigan,26165,18,3 +2020-06-12,Wexford,Michigan,26165,19,3 +2020-06-13,Wexford,Michigan,26165,19,3 +2020-06-14,Wexford,Michigan,26165,20,3 +2020-06-15,Wexford,Michigan,26165,21,3 +2020-06-16,Wexford,Michigan,26165,21,3 +2020-06-17,Wexford,Michigan,26165,21,3 +2020-06-18,Wexford,Michigan,26165,21,3 +2020-06-19,Wexford,Michigan,26165,22,3 +2020-06-20,Wexford,Michigan,26165,22,3 +2020-06-21,Wexford,Michigan,26165,22,3 +2020-06-22,Wexford,Michigan,26165,22,3 +2020-06-23,Wexford,Michigan,26165,22,3 +2020-06-24,Wexford,Michigan,26165,22,3 +2020-06-25,Wexford,Michigan,26165,23,3 +2020-06-26,Wexford,Michigan,26165,23,3 +2020-06-27,Wexford,Michigan,26165,24,3 +2020-06-28,Wexford,Michigan,26165,25,3 +2020-06-29,Wexford,Michigan,26165,25,3 +2020-06-30,Wexford,Michigan,26165,32,4 +2020-07-01,Wexford,Michigan,26165,32,4 +2020-07-02,Wexford,Michigan,26165,33,4 +2020-07-03,Wexford,Michigan,26165,34,4 +2020-07-04,Wexford,Michigan,26165,46,4 +2020-07-05,Wexford,Michigan,26165,50,4 +2020-07-06,Wexford,Michigan,26165,51,4 +2020-07-07,Wexford,Michigan,26165,53,4 +2020-07-08,Wexford,Michigan,26165,55,4 +2020-07-09,Wexford,Michigan,26165,55,4 +2020-04-17,Aitkin,Minnesota,27001,1,0 +2020-04-18,Aitkin,Minnesota,27001,1,0 +2020-04-19,Aitkin,Minnesota,27001,1,0 +2020-04-20,Aitkin,Minnesota,27001,1,0 +2020-04-21,Aitkin,Minnesota,27001,1,0 +2020-04-22,Aitkin,Minnesota,27001,1,0 +2020-04-23,Aitkin,Minnesota,27001,1,0 +2020-04-24,Aitkin,Minnesota,27001,1,0 +2020-04-25,Aitkin,Minnesota,27001,1,0 +2020-04-26,Aitkin,Minnesota,27001,1,0 +2020-04-27,Aitkin,Minnesota,27001,1,0 +2020-04-28,Aitkin,Minnesota,27001,1,0 +2020-04-29,Aitkin,Minnesota,27001,1,0 +2020-04-30,Aitkin,Minnesota,27001,1,0 +2020-05-01,Aitkin,Minnesota,27001,1,0 +2020-05-02,Aitkin,Minnesota,27001,1,0 +2020-05-03,Aitkin,Minnesota,27001,1,0 +2020-05-04,Aitkin,Minnesota,27001,1,0 +2020-05-05,Aitkin,Minnesota,27001,1,0 +2020-05-06,Aitkin,Minnesota,27001,1,0 +2020-05-07,Aitkin,Minnesota,27001,1,0 +2020-05-08,Aitkin,Minnesota,27001,2,0 +2020-05-09,Aitkin,Minnesota,27001,2,0 +2020-05-10,Aitkin,Minnesota,27001,2,0 +2020-05-11,Aitkin,Minnesota,27001,2,0 +2020-05-12,Aitkin,Minnesota,27001,2,0 +2020-05-13,Aitkin,Minnesota,27001,2,0 +2020-05-14,Aitkin,Minnesota,27001,2,0 +2020-05-15,Aitkin,Minnesota,27001,2,0 +2020-05-16,Aitkin,Minnesota,27001,3,0 +2020-05-17,Aitkin,Minnesota,27001,3,0 +2020-05-18,Aitkin,Minnesota,27001,4,0 +2020-05-19,Aitkin,Minnesota,27001,4,0 +2020-05-20,Aitkin,Minnesota,27001,4,0 +2020-05-21,Aitkin,Minnesota,27001,4,0 +2020-05-22,Aitkin,Minnesota,27001,4,0 +2020-05-23,Aitkin,Minnesota,27001,6,0 +2020-05-24,Aitkin,Minnesota,27001,6,0 +2020-05-25,Aitkin,Minnesota,27001,6,0 +2020-05-26,Aitkin,Minnesota,27001,7,0 +2020-05-27,Aitkin,Minnesota,27001,7,0 +2020-05-28,Aitkin,Minnesota,27001,7,0 +2020-05-29,Aitkin,Minnesota,27001,7,0 +2020-05-30,Aitkin,Minnesota,27001,8,0 +2020-05-31,Aitkin,Minnesota,27001,8,0 +2020-06-01,Aitkin,Minnesota,27001,8,0 +2020-06-02,Aitkin,Minnesota,27001,11,0 +2020-06-03,Aitkin,Minnesota,27001,11,0 +2020-06-04,Aitkin,Minnesota,27001,11,0 +2020-06-05,Aitkin,Minnesota,27001,12,0 +2020-06-06,Aitkin,Minnesota,27001,12,0 +2020-06-07,Aitkin,Minnesota,27001,12,0 +2020-06-08,Aitkin,Minnesota,27001,12,0 +2020-06-09,Aitkin,Minnesota,27001,13,0 +2020-06-10,Aitkin,Minnesota,27001,13,0 +2020-06-11,Aitkin,Minnesota,27001,13,0 +2020-06-12,Aitkin,Minnesota,27001,13,0 +2020-06-13,Aitkin,Minnesota,27001,13,0 +2020-06-14,Aitkin,Minnesota,27001,13,0 +2020-06-15,Aitkin,Minnesota,27001,13,0 +2020-06-16,Aitkin,Minnesota,27001,13,0 +2020-06-17,Aitkin,Minnesota,27001,13,0 +2020-06-18,Aitkin,Minnesota,27001,13,0 +2020-06-19,Aitkin,Minnesota,27001,13,0 +2020-06-20,Aitkin,Minnesota,27001,13,0 +2020-06-21,Aitkin,Minnesota,27001,13,0 +2020-06-22,Aitkin,Minnesota,27001,13,0 +2020-06-23,Aitkin,Minnesota,27001,13,0 +2020-06-24,Aitkin,Minnesota,27001,13,0 +2020-06-25,Aitkin,Minnesota,27001,13,0 +2020-06-26,Aitkin,Minnesota,27001,13,0 +2020-06-27,Aitkin,Minnesota,27001,13,0 +2020-06-28,Aitkin,Minnesota,27001,13,0 +2020-06-29,Aitkin,Minnesota,27001,13,0 +2020-06-30,Aitkin,Minnesota,27001,14,0 +2020-07-01,Aitkin,Minnesota,27001,14,0 +2020-07-02,Aitkin,Minnesota,27001,14,0 +2020-07-03,Aitkin,Minnesota,27001,14,0 +2020-07-04,Aitkin,Minnesota,27001,14,0 +2020-07-05,Aitkin,Minnesota,27001,15,0 +2020-07-06,Aitkin,Minnesota,27001,15,0 +2020-07-07,Aitkin,Minnesota,27001,15,0 +2020-07-08,Aitkin,Minnesota,27001,15,0 +2020-07-09,Aitkin,Minnesota,27001,15,0 +2020-03-10,Anoka,Minnesota,27003,1,0 +2020-03-11,Anoka,Minnesota,27003,1,0 +2020-03-12,Anoka,Minnesota,27003,1,0 +2020-03-13,Anoka,Minnesota,27003,1,0 +2020-03-14,Anoka,Minnesota,27003,2,0 +2020-03-15,Anoka,Minnesota,27003,2,0 +2020-03-16,Anoka,Minnesota,27003,3,0 +2020-03-17,Anoka,Minnesota,27003,3,0 +2020-03-18,Anoka,Minnesota,27003,3,0 +2020-03-19,Anoka,Minnesota,27003,5,0 +2020-03-20,Anoka,Minnesota,27003,5,0 +2020-03-21,Anoka,Minnesota,27003,5,0 +2020-03-22,Anoka,Minnesota,27003,5,0 +2020-03-23,Anoka,Minnesota,27003,7,0 +2020-03-24,Anoka,Minnesota,27003,7,0 +2020-03-25,Anoka,Minnesota,27003,7,0 +2020-03-26,Anoka,Minnesota,27003,8,0 +2020-03-27,Anoka,Minnesota,27003,10,0 +2020-03-28,Anoka,Minnesota,27003,12,0 +2020-03-29,Anoka,Minnesota,27003,17,0 +2020-03-30,Anoka,Minnesota,27003,22,0 +2020-03-31,Anoka,Minnesota,27003,23,0 +2020-04-01,Anoka,Minnesota,27003,26,0 +2020-04-02,Anoka,Minnesota,27003,30,0 +2020-04-03,Anoka,Minnesota,27003,34,0 +2020-04-04,Anoka,Minnesota,27003,36,0 +2020-04-05,Anoka,Minnesota,27003,36,0 +2020-04-06,Anoka,Minnesota,27003,40,0 +2020-04-07,Anoka,Minnesota,27003,42,0 +2020-04-08,Anoka,Minnesota,27003,46,0 +2020-04-09,Anoka,Minnesota,27003,53,0 +2020-04-10,Anoka,Minnesota,27003,55,0 +2020-04-11,Anoka,Minnesota,27003,58,0 +2020-04-12,Anoka,Minnesota,27003,68,0 +2020-04-13,Anoka,Minnesota,27003,68,0 +2020-04-14,Anoka,Minnesota,27003,72,0 +2020-04-15,Anoka,Minnesota,27003,76,0 +2020-04-16,Anoka,Minnesota,27003,79,0 +2020-04-17,Anoka,Minnesota,27003,83,1 +2020-04-18,Anoka,Minnesota,27003,85,2 +2020-04-19,Anoka,Minnesota,27003,93,2 +2020-04-20,Anoka,Minnesota,27003,95,2 +2020-04-21,Anoka,Minnesota,27003,97,2 +2020-04-22,Anoka,Minnesota,27003,105,2 +2020-04-23,Anoka,Minnesota,27003,131,2 +2020-04-24,Anoka,Minnesota,27003,142,3 +2020-04-25,Anoka,Minnesota,27003,150,3 +2020-04-26,Anoka,Minnesota,27003,165,5 +2020-04-27,Anoka,Minnesota,27003,168,5 +2020-04-28,Anoka,Minnesota,27003,186,8 +2020-04-29,Anoka,Minnesota,27003,196,8 +2020-04-30,Anoka,Minnesota,27003,212,10 +2020-05-01,Anoka,Minnesota,27003,231,11 +2020-05-02,Anoka,Minnesota,27003,260,14 +2020-05-03,Anoka,Minnesota,27003,281,17 +2020-05-04,Anoka,Minnesota,27003,299,17 +2020-05-05,Anoka,Minnesota,27003,344,20 +2020-05-06,Anoka,Minnesota,27003,382,24 +2020-05-07,Anoka,Minnesota,27003,426,27 +2020-05-08,Anoka,Minnesota,27003,477,27 +2020-05-09,Anoka,Minnesota,27003,518,29 +2020-05-10,Anoka,Minnesota,27003,549,29 +2020-05-11,Anoka,Minnesota,27003,571,29 +2020-05-12,Anoka,Minnesota,27003,613,31 +2020-05-13,Anoka,Minnesota,27003,613,31 +2020-05-14,Anoka,Minnesota,27003,678,35 +2020-05-15,Anoka,Minnesota,27003,726,38 +2020-05-16,Anoka,Minnesota,27003,770,40 +2020-05-17,Anoka,Minnesota,27003,821,40 +2020-05-18,Anoka,Minnesota,27003,869,42 +2020-05-19,Anoka,Minnesota,27003,919,42 +2020-05-20,Anoka,Minnesota,27003,955,45 +2020-05-21,Anoka,Minnesota,27003,995,49 +2020-05-22,Anoka,Minnesota,27003,1044,53 +2020-05-23,Anoka,Minnesota,27003,1092,55 +2020-05-24,Anoka,Minnesota,27003,1164,55 +2020-05-25,Anoka,Minnesota,27003,1210,56 +2020-05-26,Anoka,Minnesota,27003,1241,56 +2020-05-27,Anoka,Minnesota,27003,1262,59 +2020-05-28,Anoka,Minnesota,27003,1289,63 +2020-05-29,Anoka,Minnesota,27003,1324,67 +2020-05-30,Anoka,Minnesota,27003,1363,70 +2020-05-31,Anoka,Minnesota,27003,1399,70 +2020-06-01,Anoka,Minnesota,27003,1429,70 +2020-06-02,Anoka,Minnesota,27003,1441,71 +2020-06-03,Anoka,Minnesota,27003,1470,73 +2020-06-04,Anoka,Minnesota,27003,1488,78 +2020-06-05,Anoka,Minnesota,27003,1527,79 +2020-06-06,Anoka,Minnesota,27003,1555,81 +2020-06-07,Anoka,Minnesota,27003,1585,82 +2020-06-08,Anoka,Minnesota,27003,1616,84 +2020-06-09,Anoka,Minnesota,27003,1627,85 +2020-06-10,Anoka,Minnesota,27003,1654,87 +2020-06-11,Anoka,Minnesota,27003,1674,88 +2020-06-12,Anoka,Minnesota,27003,1691,88 +2020-06-13,Anoka,Minnesota,27003,1716,88 +2020-06-14,Anoka,Minnesota,27003,1742,88 +2020-06-15,Anoka,Minnesota,27003,1760,90 +2020-06-16,Anoka,Minnesota,27003,1770,90 +2020-06-17,Anoka,Minnesota,27003,1786,91 +2020-06-18,Anoka,Minnesota,27003,1810,94 +2020-06-19,Anoka,Minnesota,27003,1836,96 +2020-06-20,Anoka,Minnesota,27003,1867,99 +2020-06-21,Anoka,Minnesota,27003,1894,102 +2020-06-22,Anoka,Minnesota,27003,1910,103 +2020-06-23,Anoka,Minnesota,27003,1919,103 +2020-06-24,Anoka,Minnesota,27003,1940,103 +2020-06-25,Anoka,Minnesota,27003,1961,103 +2020-06-26,Anoka,Minnesota,27003,1990,103 +2020-06-27,Anoka,Minnesota,27003,2020,105 +2020-06-28,Anoka,Minnesota,27003,2053,106 +2020-06-29,Anoka,Minnesota,27003,2076,107 +2020-06-30,Anoka,Minnesota,27003,2097,107 +2020-07-01,Anoka,Minnesota,27003,2124,107 +2020-07-02,Anoka,Minnesota,27003,2155,107 +2020-07-03,Anoka,Minnesota,27003,2180,107 +2020-07-04,Anoka,Minnesota,27003,2180,107 +2020-07-05,Anoka,Minnesota,27003,2200,109 +2020-07-06,Anoka,Minnesota,27003,2241,109 +2020-07-07,Anoka,Minnesota,27003,2266,109 +2020-07-08,Anoka,Minnesota,27003,2293,110 +2020-07-09,Anoka,Minnesota,27003,2328,111 +2020-04-11,Becker,Minnesota,27005,1,0 +2020-04-12,Becker,Minnesota,27005,2,0 +2020-04-13,Becker,Minnesota,27005,2,0 +2020-04-14,Becker,Minnesota,27005,2,0 +2020-04-15,Becker,Minnesota,27005,2,0 +2020-04-16,Becker,Minnesota,27005,2,0 +2020-04-17,Becker,Minnesota,27005,1,0 +2020-04-18,Becker,Minnesota,27005,1,0 +2020-04-19,Becker,Minnesota,27005,1,0 +2020-04-20,Becker,Minnesota,27005,1,0 +2020-04-21,Becker,Minnesota,27005,1,0 +2020-04-22,Becker,Minnesota,27005,2,0 +2020-04-23,Becker,Minnesota,27005,2,0 +2020-04-24,Becker,Minnesota,27005,2,0 +2020-04-25,Becker,Minnesota,27005,2,0 +2020-04-26,Becker,Minnesota,27005,2,0 +2020-04-27,Becker,Minnesota,27005,2,0 +2020-04-28,Becker,Minnesota,27005,2,0 +2020-04-29,Becker,Minnesota,27005,2,0 +2020-04-30,Becker,Minnesota,27005,2,0 +2020-05-01,Becker,Minnesota,27005,5,0 +2020-05-02,Becker,Minnesota,27005,10,0 +2020-05-03,Becker,Minnesota,27005,10,0 +2020-05-04,Becker,Minnesota,27005,13,0 +2020-05-05,Becker,Minnesota,27005,15,0 +2020-05-06,Becker,Minnesota,27005,16,0 +2020-05-07,Becker,Minnesota,27005,18,0 +2020-05-08,Becker,Minnesota,27005,22,0 +2020-05-09,Becker,Minnesota,27005,25,0 +2020-05-10,Becker,Minnesota,27005,25,0 +2020-05-11,Becker,Minnesota,27005,25,0 +2020-05-12,Becker,Minnesota,27005,25,0 +2020-05-13,Becker,Minnesota,27005,25,0 +2020-05-14,Becker,Minnesota,27005,30,0 +2020-05-15,Becker,Minnesota,27005,31,0 +2020-05-16,Becker,Minnesota,27005,33,0 +2020-05-17,Becker,Minnesota,27005,33,0 +2020-05-18,Becker,Minnesota,27005,33,0 +2020-05-19,Becker,Minnesota,27005,32,0 +2020-05-20,Becker,Minnesota,27005,32,0 +2020-05-21,Becker,Minnesota,27005,33,0 +2020-05-22,Becker,Minnesota,27005,33,0 +2020-05-23,Becker,Minnesota,27005,32,0 +2020-05-24,Becker,Minnesota,27005,32,0 +2020-05-25,Becker,Minnesota,27005,37,0 +2020-05-26,Becker,Minnesota,27005,37,0 +2020-05-27,Becker,Minnesota,27005,37,0 +2020-05-28,Becker,Minnesota,27005,36,0 +2020-05-29,Becker,Minnesota,27005,36,0 +2020-05-30,Becker,Minnesota,27005,39,0 +2020-05-31,Becker,Minnesota,27005,40,0 +2020-06-01,Becker,Minnesota,27005,40,0 +2020-06-02,Becker,Minnesota,27005,41,0 +2020-06-03,Becker,Minnesota,27005,41,0 +2020-06-04,Becker,Minnesota,27005,43,0 +2020-06-05,Becker,Minnesota,27005,44,0 +2020-06-06,Becker,Minnesota,27005,44,0 +2020-06-07,Becker,Minnesota,27005,44,0 +2020-06-08,Becker,Minnesota,27005,44,0 +2020-06-09,Becker,Minnesota,27005,45,0 +2020-06-10,Becker,Minnesota,27005,45,0 +2020-06-11,Becker,Minnesota,27005,45,0 +2020-06-12,Becker,Minnesota,27005,47,0 +2020-06-13,Becker,Minnesota,27005,49,0 +2020-06-14,Becker,Minnesota,27005,49,0 +2020-06-15,Becker,Minnesota,27005,50,0 +2020-06-16,Becker,Minnesota,27005,50,0 +2020-06-17,Becker,Minnesota,27005,49,0 +2020-06-18,Becker,Minnesota,27005,49,0 +2020-06-19,Becker,Minnesota,27005,48,0 +2020-06-20,Becker,Minnesota,27005,50,0 +2020-06-21,Becker,Minnesota,27005,49,0 +2020-06-22,Becker,Minnesota,27005,50,0 +2020-06-23,Becker,Minnesota,27005,50,0 +2020-06-24,Becker,Minnesota,27005,53,0 +2020-06-25,Becker,Minnesota,27005,53,0 +2020-06-26,Becker,Minnesota,27005,53,0 +2020-06-27,Becker,Minnesota,27005,54,0 +2020-06-28,Becker,Minnesota,27005,54,0 +2020-06-29,Becker,Minnesota,27005,54,0 +2020-06-30,Becker,Minnesota,27005,54,0 +2020-07-01,Becker,Minnesota,27005,55,0 +2020-07-02,Becker,Minnesota,27005,55,0 +2020-07-03,Becker,Minnesota,27005,55,0 +2020-07-04,Becker,Minnesota,27005,55,0 +2020-07-05,Becker,Minnesota,27005,56,0 +2020-07-06,Becker,Minnesota,27005,56,0 +2020-07-07,Becker,Minnesota,27005,57,0 +2020-07-08,Becker,Minnesota,27005,57,0 +2020-07-09,Becker,Minnesota,27005,57,0 +2020-03-27,Beltrami,Minnesota,27007,1,0 +2020-03-28,Beltrami,Minnesota,27007,2,0 +2020-03-29,Beltrami,Minnesota,27007,2,0 +2020-03-30,Beltrami,Minnesota,27007,3,0 +2020-03-31,Beltrami,Minnesota,27007,4,0 +2020-04-01,Beltrami,Minnesota,27007,4,0 +2020-04-02,Beltrami,Minnesota,27007,4,0 +2020-04-03,Beltrami,Minnesota,27007,4,0 +2020-04-04,Beltrami,Minnesota,27007,5,0 +2020-04-05,Beltrami,Minnesota,27007,6,0 +2020-04-06,Beltrami,Minnesota,27007,6,0 +2020-04-07,Beltrami,Minnesota,27007,6,0 +2020-04-08,Beltrami,Minnesota,27007,6,0 +2020-04-09,Beltrami,Minnesota,27007,5,0 +2020-04-10,Beltrami,Minnesota,27007,5,0 +2020-04-11,Beltrami,Minnesota,27007,5,0 +2020-04-12,Beltrami,Minnesota,27007,5,0 +2020-04-13,Beltrami,Minnesota,27007,5,0 +2020-04-14,Beltrami,Minnesota,27007,5,0 +2020-04-15,Beltrami,Minnesota,27007,5,0 +2020-04-16,Beltrami,Minnesota,27007,5,0 +2020-04-17,Beltrami,Minnesota,27007,5,0 +2020-04-18,Beltrami,Minnesota,27007,5,0 +2020-04-19,Beltrami,Minnesota,27007,5,0 +2020-04-20,Beltrami,Minnesota,27007,5,0 +2020-04-21,Beltrami,Minnesota,27007,5,0 +2020-04-22,Beltrami,Minnesota,27007,6,0 +2020-04-23,Beltrami,Minnesota,27007,6,0 +2020-04-24,Beltrami,Minnesota,27007,6,0 +2020-04-25,Beltrami,Minnesota,27007,6,0 +2020-04-26,Beltrami,Minnesota,27007,6,0 +2020-04-27,Beltrami,Minnesota,27007,6,0 +2020-04-28,Beltrami,Minnesota,27007,6,0 +2020-04-29,Beltrami,Minnesota,27007,6,0 +2020-04-30,Beltrami,Minnesota,27007,6,0 +2020-05-01,Beltrami,Minnesota,27007,6,0 +2020-05-02,Beltrami,Minnesota,27007,6,0 +2020-05-03,Beltrami,Minnesota,27007,6,0 +2020-05-04,Beltrami,Minnesota,27007,6,0 +2020-05-05,Beltrami,Minnesota,27007,6,0 +2020-05-06,Beltrami,Minnesota,27007,6,0 +2020-05-07,Beltrami,Minnesota,27007,6,0 +2020-05-08,Beltrami,Minnesota,27007,6,0 +2020-05-09,Beltrami,Minnesota,27007,6,0 +2020-05-10,Beltrami,Minnesota,27007,6,0 +2020-05-11,Beltrami,Minnesota,27007,6,0 +2020-05-12,Beltrami,Minnesota,27007,6,0 +2020-05-13,Beltrami,Minnesota,27007,6,0 +2020-05-14,Beltrami,Minnesota,27007,8,0 +2020-05-15,Beltrami,Minnesota,27007,9,0 +2020-05-16,Beltrami,Minnesota,27007,9,0 +2020-05-17,Beltrami,Minnesota,27007,9,0 +2020-05-18,Beltrami,Minnesota,27007,9,0 +2020-05-19,Beltrami,Minnesota,27007,9,0 +2020-05-20,Beltrami,Minnesota,27007,9,0 +2020-05-21,Beltrami,Minnesota,27007,9,0 +2020-05-22,Beltrami,Minnesota,27007,10,0 +2020-05-23,Beltrami,Minnesota,27007,12,0 +2020-05-24,Beltrami,Minnesota,27007,12,0 +2020-05-25,Beltrami,Minnesota,27007,12,0 +2020-05-26,Beltrami,Minnesota,27007,12,0 +2020-05-27,Beltrami,Minnesota,27007,13,0 +2020-05-28,Beltrami,Minnesota,27007,14,0 +2020-05-29,Beltrami,Minnesota,27007,14,0 +2020-05-30,Beltrami,Minnesota,27007,14,0 +2020-05-31,Beltrami,Minnesota,27007,15,0 +2020-06-01,Beltrami,Minnesota,27007,15,0 +2020-06-02,Beltrami,Minnesota,27007,16,0 +2020-06-03,Beltrami,Minnesota,27007,18,0 +2020-06-04,Beltrami,Minnesota,27007,18,0 +2020-06-05,Beltrami,Minnesota,27007,18,0 +2020-06-06,Beltrami,Minnesota,27007,20,0 +2020-06-07,Beltrami,Minnesota,27007,21,0 +2020-06-08,Beltrami,Minnesota,27007,21,0 +2020-06-09,Beltrami,Minnesota,27007,21,0 +2020-06-10,Beltrami,Minnesota,27007,21,0 +2020-06-11,Beltrami,Minnesota,27007,21,0 +2020-06-12,Beltrami,Minnesota,27007,21,0 +2020-06-13,Beltrami,Minnesota,27007,21,0 +2020-06-14,Beltrami,Minnesota,27007,23,0 +2020-06-15,Beltrami,Minnesota,27007,23,0 +2020-06-16,Beltrami,Minnesota,27007,23,0 +2020-06-17,Beltrami,Minnesota,27007,23,0 +2020-06-18,Beltrami,Minnesota,27007,23,0 +2020-06-19,Beltrami,Minnesota,27007,23,0 +2020-06-20,Beltrami,Minnesota,27007,24,0 +2020-06-21,Beltrami,Minnesota,27007,25,0 +2020-06-22,Beltrami,Minnesota,27007,25,0 +2020-06-23,Beltrami,Minnesota,27007,25,0 +2020-06-24,Beltrami,Minnesota,27007,27,0 +2020-06-25,Beltrami,Minnesota,27007,27,0 +2020-06-26,Beltrami,Minnesota,27007,27,0 +2020-06-27,Beltrami,Minnesota,27007,27,0 +2020-06-28,Beltrami,Minnesota,27007,27,0 +2020-06-29,Beltrami,Minnesota,27007,27,0 +2020-06-30,Beltrami,Minnesota,27007,27,0 +2020-07-01,Beltrami,Minnesota,27007,28,0 +2020-07-02,Beltrami,Minnesota,27007,29,0 +2020-07-03,Beltrami,Minnesota,27007,29,0 +2020-07-04,Beltrami,Minnesota,27007,29,0 +2020-07-05,Beltrami,Minnesota,27007,30,0 +2020-07-06,Beltrami,Minnesota,27007,30,0 +2020-07-07,Beltrami,Minnesota,27007,34,0 +2020-07-08,Beltrami,Minnesota,27007,35,0 +2020-07-09,Beltrami,Minnesota,27007,41,0 +2020-03-16,Benton,Minnesota,27009,1,0 +2020-03-17,Benton,Minnesota,27009,1,0 +2020-03-18,Benton,Minnesota,27009,1,0 +2020-03-19,Benton,Minnesota,27009,1,0 +2020-03-20,Benton,Minnesota,27009,1,0 +2020-03-21,Benton,Minnesota,27009,1,0 +2020-03-22,Benton,Minnesota,27009,1,0 +2020-03-23,Benton,Minnesota,27009,1,0 +2020-03-24,Benton,Minnesota,27009,1,0 +2020-03-25,Benton,Minnesota,27009,1,0 +2020-03-26,Benton,Minnesota,27009,1,0 +2020-03-27,Benton,Minnesota,27009,1,0 +2020-03-28,Benton,Minnesota,27009,1,0 +2020-03-29,Benton,Minnesota,27009,1,0 +2020-03-30,Benton,Minnesota,27009,1,0 +2020-03-31,Benton,Minnesota,27009,1,0 +2020-04-01,Benton,Minnesota,27009,1,0 +2020-04-02,Benton,Minnesota,27009,1,0 +2020-04-03,Benton,Minnesota,27009,1,0 +2020-04-04,Benton,Minnesota,27009,1,0 +2020-04-05,Benton,Minnesota,27009,1,0 +2020-04-06,Benton,Minnesota,27009,1,0 +2020-04-07,Benton,Minnesota,27009,1,0 +2020-04-08,Benton,Minnesota,27009,1,0 +2020-04-09,Benton,Minnesota,27009,1,0 +2020-04-10,Benton,Minnesota,27009,1,0 +2020-04-11,Benton,Minnesota,27009,1,0 +2020-04-12,Benton,Minnesota,27009,1,0 +2020-04-13,Benton,Minnesota,27009,1,0 +2020-04-14,Benton,Minnesota,27009,1,0 +2020-04-15,Benton,Minnesota,27009,1,0 +2020-04-16,Benton,Minnesota,27009,1,0 +2020-04-17,Benton,Minnesota,27009,4,0 +2020-04-18,Benton,Minnesota,27009,4,0 +2020-04-19,Benton,Minnesota,27009,4,0 +2020-04-20,Benton,Minnesota,27009,4,0 +2020-04-21,Benton,Minnesota,27009,4,0 +2020-04-22,Benton,Minnesota,27009,4,0 +2020-04-23,Benton,Minnesota,27009,4,0 +2020-04-24,Benton,Minnesota,27009,4,0 +2020-04-25,Benton,Minnesota,27009,4,0 +2020-04-26,Benton,Minnesota,27009,4,0 +2020-04-27,Benton,Minnesota,27009,4,0 +2020-04-28,Benton,Minnesota,27009,6,0 +2020-04-29,Benton,Minnesota,27009,10,0 +2020-04-30,Benton,Minnesota,27009,15,0 +2020-05-01,Benton,Minnesota,27009,21,1 +2020-05-02,Benton,Minnesota,27009,29,1 +2020-05-03,Benton,Minnesota,27009,32,1 +2020-05-04,Benton,Minnesota,27009,35,1 +2020-05-05,Benton,Minnesota,27009,48,1 +2020-05-06,Benton,Minnesota,27009,59,1 +2020-05-07,Benton,Minnesota,27009,64,1 +2020-05-08,Benton,Minnesota,27009,76,2 +2020-05-09,Benton,Minnesota,27009,87,2 +2020-05-10,Benton,Minnesota,27009,92,2 +2020-05-11,Benton,Minnesota,27009,93,2 +2020-05-12,Benton,Minnesota,27009,100,2 +2020-05-13,Benton,Minnesota,27009,100,2 +2020-05-14,Benton,Minnesota,27009,109,2 +2020-05-15,Benton,Minnesota,27009,117,2 +2020-05-16,Benton,Minnesota,27009,122,2 +2020-05-17,Benton,Minnesota,27009,131,2 +2020-05-18,Benton,Minnesota,27009,138,2 +2020-05-19,Benton,Minnesota,27009,142,2 +2020-05-20,Benton,Minnesota,27009,148,2 +2020-05-21,Benton,Minnesota,27009,152,2 +2020-05-22,Benton,Minnesota,27009,158,2 +2020-05-23,Benton,Minnesota,27009,161,2 +2020-05-24,Benton,Minnesota,27009,166,2 +2020-05-25,Benton,Minnesota,27009,167,2 +2020-05-26,Benton,Minnesota,27009,167,2 +2020-05-27,Benton,Minnesota,27009,169,2 +2020-05-28,Benton,Minnesota,27009,173,3 +2020-05-29,Benton,Minnesota,27009,175,3 +2020-05-30,Benton,Minnesota,27009,175,3 +2020-05-31,Benton,Minnesota,27009,177,3 +2020-06-01,Benton,Minnesota,27009,178,3 +2020-06-02,Benton,Minnesota,27009,178,3 +2020-06-03,Benton,Minnesota,27009,181,3 +2020-06-04,Benton,Minnesota,27009,182,3 +2020-06-05,Benton,Minnesota,27009,185,3 +2020-06-06,Benton,Minnesota,27009,187,3 +2020-06-07,Benton,Minnesota,27009,188,3 +2020-06-08,Benton,Minnesota,27009,188,3 +2020-06-09,Benton,Minnesota,27009,190,3 +2020-06-10,Benton,Minnesota,27009,190,3 +2020-06-11,Benton,Minnesota,27009,190,3 +2020-06-12,Benton,Minnesota,27009,190,3 +2020-06-13,Benton,Minnesota,27009,190,3 +2020-06-14,Benton,Minnesota,27009,193,3 +2020-06-15,Benton,Minnesota,27009,193,3 +2020-06-16,Benton,Minnesota,27009,193,3 +2020-06-17,Benton,Minnesota,27009,195,3 +2020-06-18,Benton,Minnesota,27009,198,3 +2020-06-19,Benton,Minnesota,27009,200,3 +2020-06-20,Benton,Minnesota,27009,201,3 +2020-06-21,Benton,Minnesota,27009,201,3 +2020-06-22,Benton,Minnesota,27009,202,3 +2020-06-23,Benton,Minnesota,27009,204,3 +2020-06-24,Benton,Minnesota,27009,204,3 +2020-06-25,Benton,Minnesota,27009,203,3 +2020-06-26,Benton,Minnesota,27009,203,3 +2020-06-27,Benton,Minnesota,27009,207,3 +2020-06-28,Benton,Minnesota,27009,208,3 +2020-06-29,Benton,Minnesota,27009,208,3 +2020-06-30,Benton,Minnesota,27009,208,3 +2020-07-01,Benton,Minnesota,27009,208,3 +2020-07-02,Benton,Minnesota,27009,212,3 +2020-07-03,Benton,Minnesota,27009,214,3 +2020-07-04,Benton,Minnesota,27009,214,3 +2020-07-05,Benton,Minnesota,27009,215,3 +2020-07-06,Benton,Minnesota,27009,217,3 +2020-07-07,Benton,Minnesota,27009,220,3 +2020-07-08,Benton,Minnesota,27009,221,3 +2020-07-09,Benton,Minnesota,27009,228,3 +2020-03-23,Big Stone,Minnesota,27011,1,0 +2020-03-24,Big Stone,Minnesota,27011,1,0 +2020-03-25,Big Stone,Minnesota,27011,1,0 +2020-03-26,Big Stone,Minnesota,27011,1,0 +2020-03-27,Big Stone,Minnesota,27011,1,0 +2020-03-28,Big Stone,Minnesota,27011,1,0 +2020-03-29,Big Stone,Minnesota,27011,1,0 +2020-03-30,Big Stone,Minnesota,27011,1,0 +2020-03-31,Big Stone,Minnesota,27011,1,0 +2020-04-01,Big Stone,Minnesota,27011,1,0 +2020-04-02,Big Stone,Minnesota,27011,1,0 +2020-04-03,Big Stone,Minnesota,27011,1,0 +2020-04-04,Big Stone,Minnesota,27011,1,0 +2020-04-05,Big Stone,Minnesota,27011,1,0 +2020-04-06,Big Stone,Minnesota,27011,1,0 +2020-04-07,Big Stone,Minnesota,27011,1,0 +2020-04-08,Big Stone,Minnesota,27011,1,0 +2020-04-09,Big Stone,Minnesota,27011,1,0 +2020-04-10,Big Stone,Minnesota,27011,1,0 +2020-04-11,Big Stone,Minnesota,27011,1,0 +2020-04-12,Big Stone,Minnesota,27011,1,0 +2020-04-13,Big Stone,Minnesota,27011,1,0 +2020-04-14,Big Stone,Minnesota,27011,1,0 +2020-04-15,Big Stone,Minnesota,27011,1,0 +2020-04-16,Big Stone,Minnesota,27011,1,0 +2020-04-17,Big Stone,Minnesota,27011,1,0 +2020-04-18,Big Stone,Minnesota,27011,1,0 +2020-04-19,Big Stone,Minnesota,27011,1,0 +2020-04-20,Big Stone,Minnesota,27011,1,0 +2020-04-21,Big Stone,Minnesota,27011,1,0 +2020-04-22,Big Stone,Minnesota,27011,1,0 +2020-04-23,Big Stone,Minnesota,27011,1,0 +2020-04-24,Big Stone,Minnesota,27011,1,0 +2020-04-25,Big Stone,Minnesota,27011,2,0 +2020-04-26,Big Stone,Minnesota,27011,2,0 +2020-04-27,Big Stone,Minnesota,27011,2,0 +2020-04-28,Big Stone,Minnesota,27011,2,0 +2020-04-29,Big Stone,Minnesota,27011,2,0 +2020-04-30,Big Stone,Minnesota,27011,2,0 +2020-05-01,Big Stone,Minnesota,27011,2,0 +2020-05-02,Big Stone,Minnesota,27011,2,0 +2020-05-03,Big Stone,Minnesota,27011,2,0 +2020-05-04,Big Stone,Minnesota,27011,2,0 +2020-05-05,Big Stone,Minnesota,27011,2,0 +2020-05-06,Big Stone,Minnesota,27011,2,0 +2020-05-07,Big Stone,Minnesota,27011,2,0 +2020-05-08,Big Stone,Minnesota,27011,2,0 +2020-05-09,Big Stone,Minnesota,27011,2,0 +2020-05-10,Big Stone,Minnesota,27011,2,0 +2020-05-11,Big Stone,Minnesota,27011,2,0 +2020-05-12,Big Stone,Minnesota,27011,2,0 +2020-05-13,Big Stone,Minnesota,27011,2,0 +2020-05-14,Big Stone,Minnesota,27011,2,0 +2020-05-15,Big Stone,Minnesota,27011,2,0 +2020-05-16,Big Stone,Minnesota,27011,2,0 +2020-05-17,Big Stone,Minnesota,27011,2,0 +2020-05-18,Big Stone,Minnesota,27011,3,0 +2020-05-19,Big Stone,Minnesota,27011,3,0 +2020-05-20,Big Stone,Minnesota,27011,3,0 +2020-05-21,Big Stone,Minnesota,27011,3,0 +2020-05-22,Big Stone,Minnesota,27011,3,0 +2020-05-23,Big Stone,Minnesota,27011,3,0 +2020-05-24,Big Stone,Minnesota,27011,3,0 +2020-05-25,Big Stone,Minnesota,27011,3,0 +2020-05-26,Big Stone,Minnesota,27011,3,0 +2020-05-27,Big Stone,Minnesota,27011,3,0 +2020-05-28,Big Stone,Minnesota,27011,4,0 +2020-05-29,Big Stone,Minnesota,27011,4,0 +2020-05-30,Big Stone,Minnesota,27011,4,0 +2020-05-31,Big Stone,Minnesota,27011,5,0 +2020-06-01,Big Stone,Minnesota,27011,6,0 +2020-06-02,Big Stone,Minnesota,27011,8,0 +2020-06-03,Big Stone,Minnesota,27011,8,0 +2020-06-04,Big Stone,Minnesota,27011,8,0 +2020-06-05,Big Stone,Minnesota,27011,11,0 +2020-06-06,Big Stone,Minnesota,27011,11,0 +2020-06-07,Big Stone,Minnesota,27011,12,0 +2020-06-08,Big Stone,Minnesota,27011,12,0 +2020-06-09,Big Stone,Minnesota,27011,12,0 +2020-06-10,Big Stone,Minnesota,27011,13,0 +2020-06-11,Big Stone,Minnesota,27011,13,0 +2020-06-12,Big Stone,Minnesota,27011,12,0 +2020-06-13,Big Stone,Minnesota,27011,13,0 +2020-06-14,Big Stone,Minnesota,27011,13,0 +2020-06-15,Big Stone,Minnesota,27011,13,0 +2020-06-16,Big Stone,Minnesota,27011,13,0 +2020-06-17,Big Stone,Minnesota,27011,14,0 +2020-06-18,Big Stone,Minnesota,27011,14,0 +2020-06-19,Big Stone,Minnesota,27011,14,0 +2020-06-20,Big Stone,Minnesota,27011,14,0 +2020-06-21,Big Stone,Minnesota,27011,14,0 +2020-06-22,Big Stone,Minnesota,27011,14,0 +2020-06-23,Big Stone,Minnesota,27011,14,0 +2020-06-24,Big Stone,Minnesota,27011,14,0 +2020-06-25,Big Stone,Minnesota,27011,14,0 +2020-06-26,Big Stone,Minnesota,27011,14,0 +2020-06-27,Big Stone,Minnesota,27011,14,0 +2020-06-28,Big Stone,Minnesota,27011,14,0 +2020-06-29,Big Stone,Minnesota,27011,14,0 +2020-06-30,Big Stone,Minnesota,27011,14,0 +2020-07-01,Big Stone,Minnesota,27011,14,0 +2020-07-02,Big Stone,Minnesota,27011,14,0 +2020-07-03,Big Stone,Minnesota,27011,14,0 +2020-07-04,Big Stone,Minnesota,27011,14,0 +2020-07-05,Big Stone,Minnesota,27011,14,0 +2020-07-06,Big Stone,Minnesota,27011,15,0 +2020-07-07,Big Stone,Minnesota,27011,15,0 +2020-07-08,Big Stone,Minnesota,27011,17,0 +2020-07-09,Big Stone,Minnesota,27011,17,0 +2020-03-16,Blue Earth,Minnesota,27013,1,0 +2020-03-17,Blue Earth,Minnesota,27013,1,0 +2020-03-18,Blue Earth,Minnesota,27013,2,0 +2020-03-19,Blue Earth,Minnesota,27013,2,0 +2020-03-20,Blue Earth,Minnesota,27013,2,0 +2020-03-21,Blue Earth,Minnesota,27013,3,0 +2020-03-22,Blue Earth,Minnesota,27013,4,0 +2020-03-23,Blue Earth,Minnesota,27013,5,0 +2020-03-24,Blue Earth,Minnesota,27013,5,0 +2020-03-25,Blue Earth,Minnesota,27013,5,0 +2020-03-26,Blue Earth,Minnesota,27013,6,0 +2020-03-27,Blue Earth,Minnesota,27013,7,0 +2020-03-28,Blue Earth,Minnesota,27013,7,0 +2020-03-29,Blue Earth,Minnesota,27013,8,0 +2020-03-30,Blue Earth,Minnesota,27013,9,0 +2020-03-31,Blue Earth,Minnesota,27013,9,0 +2020-04-01,Blue Earth,Minnesota,27013,9,0 +2020-04-02,Blue Earth,Minnesota,27013,10,0 +2020-04-03,Blue Earth,Minnesota,27013,10,0 +2020-04-04,Blue Earth,Minnesota,27013,14,0 +2020-04-05,Blue Earth,Minnesota,27013,15,0 +2020-04-06,Blue Earth,Minnesota,27013,16,0 +2020-04-07,Blue Earth,Minnesota,27013,22,0 +2020-04-08,Blue Earth,Minnesota,27013,21,0 +2020-04-09,Blue Earth,Minnesota,27013,22,0 +2020-04-10,Blue Earth,Minnesota,27013,22,0 +2020-04-11,Blue Earth,Minnesota,27013,22,0 +2020-04-12,Blue Earth,Minnesota,27013,22,0 +2020-04-13,Blue Earth,Minnesota,27013,22,0 +2020-04-14,Blue Earth,Minnesota,27013,22,0 +2020-04-15,Blue Earth,Minnesota,27013,23,0 +2020-04-16,Blue Earth,Minnesota,27013,22,0 +2020-04-17,Blue Earth,Minnesota,27013,23,0 +2020-04-18,Blue Earth,Minnesota,27013,23,0 +2020-04-19,Blue Earth,Minnesota,27013,23,0 +2020-04-20,Blue Earth,Minnesota,27013,24,0 +2020-04-21,Blue Earth,Minnesota,27013,24,0 +2020-04-22,Blue Earth,Minnesota,27013,26,0 +2020-04-23,Blue Earth,Minnesota,27013,26,0 +2020-04-24,Blue Earth,Minnesota,27013,27,0 +2020-04-25,Blue Earth,Minnesota,27013,27,0 +2020-04-26,Blue Earth,Minnesota,27013,29,0 +2020-04-27,Blue Earth,Minnesota,27013,30,0 +2020-04-28,Blue Earth,Minnesota,27013,33,0 +2020-04-29,Blue Earth,Minnesota,27013,34,0 +2020-04-30,Blue Earth,Minnesota,27013,38,0 +2020-05-01,Blue Earth,Minnesota,27013,38,0 +2020-05-02,Blue Earth,Minnesota,27013,41,0 +2020-05-03,Blue Earth,Minnesota,27013,46,0 +2020-05-04,Blue Earth,Minnesota,27013,50,0 +2020-05-05,Blue Earth,Minnesota,27013,51,0 +2020-05-06,Blue Earth,Minnesota,27013,53,0 +2020-05-07,Blue Earth,Minnesota,27013,55,0 +2020-05-08,Blue Earth,Minnesota,27013,55,0 +2020-05-09,Blue Earth,Minnesota,27013,64,0 +2020-05-10,Blue Earth,Minnesota,27013,65,0 +2020-05-11,Blue Earth,Minnesota,27013,67,0 +2020-05-12,Blue Earth,Minnesota,27013,67,0 +2020-05-13,Blue Earth,Minnesota,27013,67,0 +2020-05-14,Blue Earth,Minnesota,27013,71,0 +2020-05-15,Blue Earth,Minnesota,27013,76,0 +2020-05-16,Blue Earth,Minnesota,27013,79,0 +2020-05-17,Blue Earth,Minnesota,27013,83,0 +2020-05-18,Blue Earth,Minnesota,27013,87,0 +2020-05-19,Blue Earth,Minnesota,27013,93,0 +2020-05-20,Blue Earth,Minnesota,27013,98,1 +2020-05-21,Blue Earth,Minnesota,27013,104,1 +2020-05-22,Blue Earth,Minnesota,27013,108,1 +2020-05-23,Blue Earth,Minnesota,27013,110,1 +2020-05-24,Blue Earth,Minnesota,27013,112,1 +2020-05-25,Blue Earth,Minnesota,27013,115,1 +2020-05-26,Blue Earth,Minnesota,27013,119,1 +2020-05-27,Blue Earth,Minnesota,27013,122,1 +2020-05-28,Blue Earth,Minnesota,27013,126,1 +2020-05-29,Blue Earth,Minnesota,27013,137,1 +2020-05-30,Blue Earth,Minnesota,27013,138,0 +2020-05-31,Blue Earth,Minnesota,27013,140,0 +2020-06-01,Blue Earth,Minnesota,27013,142,0 +2020-06-02,Blue Earth,Minnesota,27013,145,0 +2020-06-03,Blue Earth,Minnesota,27013,148,0 +2020-06-04,Blue Earth,Minnesota,27013,148,0 +2020-06-05,Blue Earth,Minnesota,27013,149,0 +2020-06-06,Blue Earth,Minnesota,27013,151,0 +2020-06-07,Blue Earth,Minnesota,27013,152,0 +2020-06-08,Blue Earth,Minnesota,27013,152,0 +2020-06-09,Blue Earth,Minnesota,27013,153,1 +2020-06-10,Blue Earth,Minnesota,27013,154,1 +2020-06-11,Blue Earth,Minnesota,27013,157,1 +2020-06-12,Blue Earth,Minnesota,27013,159,1 +2020-06-13,Blue Earth,Minnesota,27013,161,1 +2020-06-14,Blue Earth,Minnesota,27013,163,2 +2020-06-15,Blue Earth,Minnesota,27013,163,2 +2020-06-16,Blue Earth,Minnesota,27013,164,2 +2020-06-17,Blue Earth,Minnesota,27013,169,2 +2020-06-18,Blue Earth,Minnesota,27013,172,2 +2020-06-19,Blue Earth,Minnesota,27013,174,2 +2020-06-20,Blue Earth,Minnesota,27013,191,2 +2020-06-21,Blue Earth,Minnesota,27013,214,2 +2020-06-22,Blue Earth,Minnesota,27013,227,2 +2020-06-23,Blue Earth,Minnesota,27013,243,2 +2020-06-24,Blue Earth,Minnesota,27013,265,2 +2020-06-25,Blue Earth,Minnesota,27013,281,2 +2020-06-26,Blue Earth,Minnesota,27013,317,2 +2020-06-27,Blue Earth,Minnesota,27013,335,2 +2020-06-28,Blue Earth,Minnesota,27013,368,2 +2020-06-29,Blue Earth,Minnesota,27013,377,2 +2020-06-30,Blue Earth,Minnesota,27013,403,2 +2020-07-01,Blue Earth,Minnesota,27013,422,2 +2020-07-02,Blue Earth,Minnesota,27013,442,2 +2020-07-03,Blue Earth,Minnesota,27013,453,2 +2020-07-04,Blue Earth,Minnesota,27013,453,2 +2020-07-05,Blue Earth,Minnesota,27013,470,2 +2020-07-06,Blue Earth,Minnesota,27013,479,2 +2020-07-07,Blue Earth,Minnesota,27013,494,2 +2020-07-08,Blue Earth,Minnesota,27013,510,2 +2020-07-09,Blue Earth,Minnesota,27013,535,2 +2020-03-31,Brown,Minnesota,27015,2,0 +2020-04-01,Brown,Minnesota,27015,2,0 +2020-04-02,Brown,Minnesota,27015,2,0 +2020-04-03,Brown,Minnesota,27015,2,0 +2020-04-04,Brown,Minnesota,27015,3,0 +2020-04-05,Brown,Minnesota,27015,3,0 +2020-04-06,Brown,Minnesota,27015,5,0 +2020-04-07,Brown,Minnesota,27015,7,0 +2020-04-08,Brown,Minnesota,27015,7,0 +2020-04-09,Brown,Minnesota,27015,7,0 +2020-04-10,Brown,Minnesota,27015,7,1 +2020-04-11,Brown,Minnesota,27015,7,1 +2020-04-12,Brown,Minnesota,27015,7,1 +2020-04-13,Brown,Minnesota,27015,7,1 +2020-04-14,Brown,Minnesota,27015,7,1 +2020-04-15,Brown,Minnesota,27015,7,1 +2020-04-16,Brown,Minnesota,27015,7,1 +2020-04-17,Brown,Minnesota,27015,7,1 +2020-04-18,Brown,Minnesota,27015,7,1 +2020-04-19,Brown,Minnesota,27015,7,1 +2020-04-20,Brown,Minnesota,27015,7,1 +2020-04-21,Brown,Minnesota,27015,8,1 +2020-04-22,Brown,Minnesota,27015,8,1 +2020-04-23,Brown,Minnesota,27015,8,1 +2020-04-24,Brown,Minnesota,27015,8,1 +2020-04-25,Brown,Minnesota,27015,8,1 +2020-04-26,Brown,Minnesota,27015,8,1 +2020-04-27,Brown,Minnesota,27015,8,1 +2020-04-28,Brown,Minnesota,27015,8,1 +2020-04-29,Brown,Minnesota,27015,8,1 +2020-04-30,Brown,Minnesota,27015,8,1 +2020-05-01,Brown,Minnesota,27015,8,1 +2020-05-02,Brown,Minnesota,27015,8,1 +2020-05-03,Brown,Minnesota,27015,8,1 +2020-05-04,Brown,Minnesota,27015,9,1 +2020-05-05,Brown,Minnesota,27015,9,1 +2020-05-06,Brown,Minnesota,27015,9,1 +2020-05-07,Brown,Minnesota,27015,9,1 +2020-05-08,Brown,Minnesota,27015,9,1 +2020-05-09,Brown,Minnesota,27015,9,1 +2020-05-10,Brown,Minnesota,27015,9,1 +2020-05-11,Brown,Minnesota,27015,9,1 +2020-05-12,Brown,Minnesota,27015,9,1 +2020-05-13,Brown,Minnesota,27015,9,1 +2020-05-14,Brown,Minnesota,27015,10,2 +2020-05-15,Brown,Minnesota,27015,10,2 +2020-05-16,Brown,Minnesota,27015,10,2 +2020-05-17,Brown,Minnesota,27015,10,2 +2020-05-18,Brown,Minnesota,27015,10,2 +2020-05-19,Brown,Minnesota,27015,10,2 +2020-05-20,Brown,Minnesota,27015,10,2 +2020-05-21,Brown,Minnesota,27015,10,2 +2020-05-22,Brown,Minnesota,27015,11,2 +2020-05-23,Brown,Minnesota,27015,11,2 +2020-05-24,Brown,Minnesota,27015,11,2 +2020-05-25,Brown,Minnesota,27015,12,2 +2020-05-26,Brown,Minnesota,27015,13,2 +2020-05-27,Brown,Minnesota,27015,14,2 +2020-05-28,Brown,Minnesota,27015,14,2 +2020-05-29,Brown,Minnesota,27015,14,2 +2020-05-30,Brown,Minnesota,27015,15,2 +2020-05-31,Brown,Minnesota,27015,16,2 +2020-06-01,Brown,Minnesota,27015,16,2 +2020-06-02,Brown,Minnesota,27015,16,2 +2020-06-03,Brown,Minnesota,27015,17,2 +2020-06-04,Brown,Minnesota,27015,16,2 +2020-06-05,Brown,Minnesota,27015,17,2 +2020-06-06,Brown,Minnesota,27015,17,2 +2020-06-07,Brown,Minnesota,27015,18,2 +2020-06-08,Brown,Minnesota,27015,17,2 +2020-06-09,Brown,Minnesota,27015,17,2 +2020-06-10,Brown,Minnesota,27015,17,2 +2020-06-11,Brown,Minnesota,27015,18,2 +2020-06-12,Brown,Minnesota,27015,18,2 +2020-06-13,Brown,Minnesota,27015,19,2 +2020-06-14,Brown,Minnesota,27015,19,2 +2020-06-15,Brown,Minnesota,27015,19,2 +2020-06-16,Brown,Minnesota,27015,20,2 +2020-06-17,Brown,Minnesota,27015,20,2 +2020-06-18,Brown,Minnesota,27015,22,2 +2020-06-19,Brown,Minnesota,27015,21,2 +2020-06-20,Brown,Minnesota,27015,22,2 +2020-06-21,Brown,Minnesota,27015,21,2 +2020-06-22,Brown,Minnesota,27015,21,2 +2020-06-23,Brown,Minnesota,27015,21,2 +2020-06-24,Brown,Minnesota,27015,23,2 +2020-06-25,Brown,Minnesota,27015,22,2 +2020-06-26,Brown,Minnesota,27015,23,2 +2020-06-27,Brown,Minnesota,27015,23,2 +2020-06-28,Brown,Minnesota,27015,27,2 +2020-06-29,Brown,Minnesota,27015,27,2 +2020-06-30,Brown,Minnesota,27015,30,2 +2020-07-01,Brown,Minnesota,27015,31,2 +2020-07-02,Brown,Minnesota,27015,31,2 +2020-07-03,Brown,Minnesota,27015,30,2 +2020-07-04,Brown,Minnesota,27015,30,2 +2020-07-05,Brown,Minnesota,27015,30,2 +2020-07-06,Brown,Minnesota,27015,31,2 +2020-07-07,Brown,Minnesota,27015,34,2 +2020-07-08,Brown,Minnesota,27015,37,2 +2020-07-09,Brown,Minnesota,27015,39,2 +2020-03-31,Carlton,Minnesota,27017,1,0 +2020-04-01,Carlton,Minnesota,27017,2,0 +2020-04-02,Carlton,Minnesota,27017,3,0 +2020-04-03,Carlton,Minnesota,27017,5,0 +2020-04-04,Carlton,Minnesota,27017,8,0 +2020-04-05,Carlton,Minnesota,27017,8,0 +2020-04-06,Carlton,Minnesota,27017,10,0 +2020-04-07,Carlton,Minnesota,27017,13,0 +2020-04-08,Carlton,Minnesota,27017,14,0 +2020-04-09,Carlton,Minnesota,27017,15,0 +2020-04-10,Carlton,Minnesota,27017,18,0 +2020-04-11,Carlton,Minnesota,27017,19,0 +2020-04-12,Carlton,Minnesota,27017,25,0 +2020-04-13,Carlton,Minnesota,27017,25,0 +2020-04-14,Carlton,Minnesota,27017,26,0 +2020-04-15,Carlton,Minnesota,27017,27,0 +2020-04-16,Carlton,Minnesota,27017,29,0 +2020-04-17,Carlton,Minnesota,27017,32,0 +2020-04-18,Carlton,Minnesota,27017,34,0 +2020-04-19,Carlton,Minnesota,27017,36,0 +2020-04-20,Carlton,Minnesota,27017,37,0 +2020-04-21,Carlton,Minnesota,27017,37,0 +2020-04-22,Carlton,Minnesota,27017,38,0 +2020-04-23,Carlton,Minnesota,27017,38,0 +2020-04-24,Carlton,Minnesota,27017,46,0 +2020-04-25,Carlton,Minnesota,27017,47,0 +2020-04-26,Carlton,Minnesota,27017,51,0 +2020-04-27,Carlton,Minnesota,27017,52,0 +2020-04-28,Carlton,Minnesota,27017,53,0 +2020-04-29,Carlton,Minnesota,27017,55,0 +2020-04-30,Carlton,Minnesota,27017,59,0 +2020-05-01,Carlton,Minnesota,27017,59,0 +2020-05-02,Carlton,Minnesota,27017,59,0 +2020-05-03,Carlton,Minnesota,27017,60,0 +2020-05-04,Carlton,Minnesota,27017,60,0 +2020-05-05,Carlton,Minnesota,27017,60,0 +2020-05-06,Carlton,Minnesota,27017,61,0 +2020-05-07,Carlton,Minnesota,27017,62,0 +2020-05-08,Carlton,Minnesota,27017,64,0 +2020-05-09,Carlton,Minnesota,27017,64,0 +2020-05-10,Carlton,Minnesota,27017,64,0 +2020-05-11,Carlton,Minnesota,27017,64,0 +2020-05-12,Carlton,Minnesota,27017,65,0 +2020-05-13,Carlton,Minnesota,27017,65,0 +2020-05-14,Carlton,Minnesota,27017,66,0 +2020-05-15,Carlton,Minnesota,27017,66,0 +2020-05-16,Carlton,Minnesota,27017,66,0 +2020-05-17,Carlton,Minnesota,27017,66,0 +2020-05-18,Carlton,Minnesota,27017,66,0 +2020-05-19,Carlton,Minnesota,27017,67,0 +2020-05-20,Carlton,Minnesota,27017,70,0 +2020-05-21,Carlton,Minnesota,27017,71,0 +2020-05-22,Carlton,Minnesota,27017,71,0 +2020-05-23,Carlton,Minnesota,27017,71,0 +2020-05-24,Carlton,Minnesota,27017,73,0 +2020-05-25,Carlton,Minnesota,27017,73,0 +2020-05-26,Carlton,Minnesota,27017,73,0 +2020-05-27,Carlton,Minnesota,27017,73,0 +2020-05-28,Carlton,Minnesota,27017,73,0 +2020-05-29,Carlton,Minnesota,27017,73,0 +2020-05-30,Carlton,Minnesota,27017,73,0 +2020-05-31,Carlton,Minnesota,27017,73,0 +2020-06-01,Carlton,Minnesota,27017,75,0 +2020-06-02,Carlton,Minnesota,27017,75,0 +2020-06-03,Carlton,Minnesota,27017,75,0 +2020-06-04,Carlton,Minnesota,27017,75,0 +2020-06-05,Carlton,Minnesota,27017,75,0 +2020-06-06,Carlton,Minnesota,27017,75,0 +2020-06-07,Carlton,Minnesota,27017,77,0 +2020-06-08,Carlton,Minnesota,27017,78,0 +2020-06-09,Carlton,Minnesota,27017,78,0 +2020-06-10,Carlton,Minnesota,27017,78,0 +2020-06-11,Carlton,Minnesota,27017,79,0 +2020-06-12,Carlton,Minnesota,27017,80,0 +2020-06-13,Carlton,Minnesota,27017,80,0 +2020-06-14,Carlton,Minnesota,27017,80,0 +2020-06-15,Carlton,Minnesota,27017,80,0 +2020-06-16,Carlton,Minnesota,27017,80,0 +2020-06-17,Carlton,Minnesota,27017,81,0 +2020-06-18,Carlton,Minnesota,27017,81,0 +2020-06-19,Carlton,Minnesota,27017,81,0 +2020-06-20,Carlton,Minnesota,27017,81,0 +2020-06-21,Carlton,Minnesota,27017,81,0 +2020-06-22,Carlton,Minnesota,27017,81,0 +2020-06-23,Carlton,Minnesota,27017,81,0 +2020-06-24,Carlton,Minnesota,27017,81,0 +2020-06-25,Carlton,Minnesota,27017,81,0 +2020-06-26,Carlton,Minnesota,27017,81,0 +2020-06-27,Carlton,Minnesota,27017,81,0 +2020-06-28,Carlton,Minnesota,27017,81,0 +2020-06-29,Carlton,Minnesota,27017,81,0 +2020-06-30,Carlton,Minnesota,27017,81,0 +2020-07-01,Carlton,Minnesota,27017,83,0 +2020-07-02,Carlton,Minnesota,27017,83,0 +2020-07-03,Carlton,Minnesota,27017,85,0 +2020-07-04,Carlton,Minnesota,27017,85,0 +2020-07-05,Carlton,Minnesota,27017,87,0 +2020-07-06,Carlton,Minnesota,27017,87,0 +2020-07-07,Carlton,Minnesota,27017,87,0 +2020-07-08,Carlton,Minnesota,27017,88,0 +2020-07-09,Carlton,Minnesota,27017,89,0 +2020-03-08,Carver,Minnesota,27019,1,0 +2020-03-09,Carver,Minnesota,27019,1,0 +2020-03-10,Carver,Minnesota,27019,1,0 +2020-03-11,Carver,Minnesota,27019,1,0 +2020-03-12,Carver,Minnesota,27019,1,0 +2020-03-13,Carver,Minnesota,27019,1,0 +2020-03-14,Carver,Minnesota,27019,1,0 +2020-03-15,Carver,Minnesota,27019,1,0 +2020-03-16,Carver,Minnesota,27019,1,0 +2020-03-17,Carver,Minnesota,27019,1,0 +2020-03-18,Carver,Minnesota,27019,2,0 +2020-03-19,Carver,Minnesota,27019,3,0 +2020-03-20,Carver,Minnesota,27019,3,0 +2020-03-21,Carver,Minnesota,27019,3,0 +2020-03-22,Carver,Minnesota,27019,8,0 +2020-03-23,Carver,Minnesota,27019,8,0 +2020-03-24,Carver,Minnesota,27019,8,0 +2020-03-25,Carver,Minnesota,27019,8,0 +2020-03-26,Carver,Minnesota,27019,8,0 +2020-03-27,Carver,Minnesota,27019,8,0 +2020-03-28,Carver,Minnesota,27019,9,0 +2020-03-29,Carver,Minnesota,27019,9,0 +2020-03-30,Carver,Minnesota,27019,10,0 +2020-03-31,Carver,Minnesota,27019,10,0 +2020-04-01,Carver,Minnesota,27019,10,0 +2020-04-02,Carver,Minnesota,27019,10,0 +2020-04-03,Carver,Minnesota,27019,11,0 +2020-04-04,Carver,Minnesota,27019,10,0 +2020-04-05,Carver,Minnesota,27019,10,0 +2020-04-06,Carver,Minnesota,27019,10,0 +2020-04-07,Carver,Minnesota,27019,10,0 +2020-04-08,Carver,Minnesota,27019,10,0 +2020-04-09,Carver,Minnesota,27019,10,0 +2020-04-10,Carver,Minnesota,27019,12,0 +2020-04-11,Carver,Minnesota,27019,12,0 +2020-04-12,Carver,Minnesota,27019,13,0 +2020-04-13,Carver,Minnesota,27019,13,0 +2020-04-14,Carver,Minnesota,27019,13,0 +2020-04-15,Carver,Minnesota,27019,14,0 +2020-04-16,Carver,Minnesota,27019,14,0 +2020-04-17,Carver,Minnesota,27019,14,0 +2020-04-18,Carver,Minnesota,27019,14,0 +2020-04-19,Carver,Minnesota,27019,14,0 +2020-04-20,Carver,Minnesota,27019,14,0 +2020-04-21,Carver,Minnesota,27019,14,0 +2020-04-22,Carver,Minnesota,27019,15,0 +2020-04-23,Carver,Minnesota,27019,15,0 +2020-04-24,Carver,Minnesota,27019,15,0 +2020-04-25,Carver,Minnesota,27019,16,0 +2020-04-26,Carver,Minnesota,27019,17,0 +2020-04-27,Carver,Minnesota,27019,17,0 +2020-04-28,Carver,Minnesota,27019,19,0 +2020-04-29,Carver,Minnesota,27019,20,0 +2020-04-30,Carver,Minnesota,27019,21,0 +2020-05-01,Carver,Minnesota,27019,21,0 +2020-05-02,Carver,Minnesota,27019,25,0 +2020-05-03,Carver,Minnesota,27019,26,0 +2020-05-04,Carver,Minnesota,27019,27,0 +2020-05-05,Carver,Minnesota,27019,39,0 +2020-05-06,Carver,Minnesota,27019,51,0 +2020-05-07,Carver,Minnesota,27019,58,0 +2020-05-08,Carver,Minnesota,27019,69,0 +2020-05-09,Carver,Minnesota,27019,78,1 +2020-05-10,Carver,Minnesota,27019,82,1 +2020-05-11,Carver,Minnesota,27019,92,1 +2020-05-12,Carver,Minnesota,27019,95,1 +2020-05-13,Carver,Minnesota,27019,95,1 +2020-05-14,Carver,Minnesota,27019,103,1 +2020-05-15,Carver,Minnesota,27019,105,2 +2020-05-16,Carver,Minnesota,27019,111,2 +2020-05-17,Carver,Minnesota,27019,113,2 +2020-05-18,Carver,Minnesota,27019,117,2 +2020-05-19,Carver,Minnesota,27019,128,2 +2020-05-20,Carver,Minnesota,27019,131,2 +2020-05-21,Carver,Minnesota,27019,138,2 +2020-05-22,Carver,Minnesota,27019,146,2 +2020-05-23,Carver,Minnesota,27019,154,2 +2020-05-24,Carver,Minnesota,27019,161,2 +2020-05-25,Carver,Minnesota,27019,174,2 +2020-05-26,Carver,Minnesota,27019,182,2 +2020-05-27,Carver,Minnesota,27019,185,2 +2020-05-28,Carver,Minnesota,27019,189,2 +2020-05-29,Carver,Minnesota,27019,201,2 +2020-05-30,Carver,Minnesota,27019,206,2 +2020-05-31,Carver,Minnesota,27019,210,2 +2020-06-01,Carver,Minnesota,27019,218,2 +2020-06-02,Carver,Minnesota,27019,222,2 +2020-06-03,Carver,Minnesota,27019,224,2 +2020-06-04,Carver,Minnesota,27019,232,2 +2020-06-05,Carver,Minnesota,27019,240,2 +2020-06-06,Carver,Minnesota,27019,247,2 +2020-06-07,Carver,Minnesota,27019,250,2 +2020-06-08,Carver,Minnesota,27019,254,2 +2020-06-09,Carver,Minnesota,27019,257,2 +2020-06-10,Carver,Minnesota,27019,261,2 +2020-06-11,Carver,Minnesota,27019,266,2 +2020-06-12,Carver,Minnesota,27019,268,2 +2020-06-13,Carver,Minnesota,27019,269,2 +2020-06-14,Carver,Minnesota,27019,270,2 +2020-06-15,Carver,Minnesota,27019,271,2 +2020-06-16,Carver,Minnesota,27019,276,2 +2020-06-17,Carver,Minnesota,27019,278,2 +2020-06-18,Carver,Minnesota,27019,285,2 +2020-06-19,Carver,Minnesota,27019,287,1 +2020-06-20,Carver,Minnesota,27019,293,1 +2020-06-21,Carver,Minnesota,27019,294,1 +2020-06-22,Carver,Minnesota,27019,297,1 +2020-06-23,Carver,Minnesota,27019,299,1 +2020-06-24,Carver,Minnesota,27019,305,1 +2020-06-25,Carver,Minnesota,27019,308,1 +2020-06-26,Carver,Minnesota,27019,316,1 +2020-06-27,Carver,Minnesota,27019,323,1 +2020-06-28,Carver,Minnesota,27019,333,1 +2020-06-29,Carver,Minnesota,27019,338,1 +2020-06-30,Carver,Minnesota,27019,340,1 +2020-07-01,Carver,Minnesota,27019,348,1 +2020-07-02,Carver,Minnesota,27019,361,1 +2020-07-03,Carver,Minnesota,27019,364,1 +2020-07-04,Carver,Minnesota,27019,364,1 +2020-07-05,Carver,Minnesota,27019,376,1 +2020-07-06,Carver,Minnesota,27019,381,1 +2020-07-07,Carver,Minnesota,27019,395,1 +2020-07-08,Carver,Minnesota,27019,417,1 +2020-07-09,Carver,Minnesota,27019,433,1 +2020-03-23,Cass,Minnesota,27021,1,0 +2020-03-24,Cass,Minnesota,27021,1,0 +2020-03-25,Cass,Minnesota,27021,1,0 +2020-03-26,Cass,Minnesota,27021,1,0 +2020-03-27,Cass,Minnesota,27021,1,0 +2020-03-28,Cass,Minnesota,27021,1,0 +2020-03-29,Cass,Minnesota,27021,1,0 +2020-03-30,Cass,Minnesota,27021,1,0 +2020-03-31,Cass,Minnesota,27021,1,0 +2020-04-01,Cass,Minnesota,27021,1,0 +2020-04-02,Cass,Minnesota,27021,1,0 +2020-04-03,Cass,Minnesota,27021,1,0 +2020-04-04,Cass,Minnesota,27021,1,0 +2020-04-05,Cass,Minnesota,27021,1,0 +2020-04-06,Cass,Minnesota,27021,1,0 +2020-04-07,Cass,Minnesota,27021,3,0 +2020-04-08,Cass,Minnesota,27021,3,0 +2020-04-09,Cass,Minnesota,27021,3,0 +2020-04-10,Cass,Minnesota,27021,3,0 +2020-04-11,Cass,Minnesota,27021,3,0 +2020-04-12,Cass,Minnesota,27021,4,0 +2020-04-13,Cass,Minnesota,27021,4,0 +2020-04-14,Cass,Minnesota,27021,4,0 +2020-04-15,Cass,Minnesota,27021,4,0 +2020-04-16,Cass,Minnesota,27021,4,0 +2020-04-17,Cass,Minnesota,27021,4,0 +2020-04-18,Cass,Minnesota,27021,4,0 +2020-04-19,Cass,Minnesota,27021,4,0 +2020-04-20,Cass,Minnesota,27021,4,0 +2020-04-21,Cass,Minnesota,27021,4,0 +2020-04-22,Cass,Minnesota,27021,4,0 +2020-04-23,Cass,Minnesota,27021,5,0 +2020-04-24,Cass,Minnesota,27021,5,0 +2020-04-25,Cass,Minnesota,27021,5,0 +2020-04-26,Cass,Minnesota,27021,5,0 +2020-04-27,Cass,Minnesota,27021,5,0 +2020-04-28,Cass,Minnesota,27021,5,0 +2020-04-29,Cass,Minnesota,27021,5,0 +2020-04-30,Cass,Minnesota,27021,5,0 +2020-05-01,Cass,Minnesota,27021,5,0 +2020-05-02,Cass,Minnesota,27021,7,0 +2020-05-03,Cass,Minnesota,27021,7,0 +2020-05-04,Cass,Minnesota,27021,7,0 +2020-05-05,Cass,Minnesota,27021,7,0 +2020-05-06,Cass,Minnesota,27021,7,0 +2020-05-07,Cass,Minnesota,27021,7,0 +2020-05-08,Cass,Minnesota,27021,7,0 +2020-05-09,Cass,Minnesota,27021,8,0 +2020-05-10,Cass,Minnesota,27021,8,1 +2020-05-11,Cass,Minnesota,27021,8,1 +2020-05-12,Cass,Minnesota,27021,8,2 +2020-05-13,Cass,Minnesota,27021,8,2 +2020-05-14,Cass,Minnesota,27021,9,2 +2020-05-15,Cass,Minnesota,27021,8,2 +2020-05-16,Cass,Minnesota,27021,9,2 +2020-05-17,Cass,Minnesota,27021,9,2 +2020-05-18,Cass,Minnesota,27021,10,2 +2020-05-19,Cass,Minnesota,27021,11,2 +2020-05-20,Cass,Minnesota,27021,11,2 +2020-05-21,Cass,Minnesota,27021,10,2 +2020-05-22,Cass,Minnesota,27021,10,2 +2020-05-23,Cass,Minnesota,27021,11,3 +2020-05-24,Cass,Minnesota,27021,11,3 +2020-05-25,Cass,Minnesota,27021,11,2 +2020-05-26,Cass,Minnesota,27021,11,2 +2020-05-27,Cass,Minnesota,27021,12,2 +2020-05-28,Cass,Minnesota,27021,13,2 +2020-05-29,Cass,Minnesota,27021,13,2 +2020-05-30,Cass,Minnesota,27021,13,2 +2020-05-31,Cass,Minnesota,27021,14,2 +2020-06-01,Cass,Minnesota,27021,14,2 +2020-06-02,Cass,Minnesota,27021,13,2 +2020-06-03,Cass,Minnesota,27021,12,2 +2020-06-04,Cass,Minnesota,27021,11,2 +2020-06-05,Cass,Minnesota,27021,11,2 +2020-06-06,Cass,Minnesota,27021,11,2 +2020-06-07,Cass,Minnesota,27021,11,2 +2020-06-08,Cass,Minnesota,27021,12,2 +2020-06-09,Cass,Minnesota,27021,12,2 +2020-06-10,Cass,Minnesota,27021,11,2 +2020-06-11,Cass,Minnesota,27021,11,2 +2020-06-12,Cass,Minnesota,27021,11,2 +2020-06-13,Cass,Minnesota,27021,11,2 +2020-06-14,Cass,Minnesota,27021,11,2 +2020-06-15,Cass,Minnesota,27021,11,2 +2020-06-16,Cass,Minnesota,27021,11,2 +2020-06-17,Cass,Minnesota,27021,11,2 +2020-06-18,Cass,Minnesota,27021,12,2 +2020-06-19,Cass,Minnesota,27021,12,2 +2020-06-20,Cass,Minnesota,27021,12,2 +2020-06-21,Cass,Minnesota,27021,12,2 +2020-06-22,Cass,Minnesota,27021,12,2 +2020-06-23,Cass,Minnesota,27021,11,2 +2020-06-24,Cass,Minnesota,27021,11,2 +2020-06-25,Cass,Minnesota,27021,11,2 +2020-06-26,Cass,Minnesota,27021,11,2 +2020-06-27,Cass,Minnesota,27021,11,2 +2020-06-28,Cass,Minnesota,27021,12,2 +2020-06-29,Cass,Minnesota,27021,12,2 +2020-06-30,Cass,Minnesota,27021,13,2 +2020-07-01,Cass,Minnesota,27021,12,2 +2020-07-02,Cass,Minnesota,27021,14,2 +2020-07-03,Cass,Minnesota,27021,15,2 +2020-07-04,Cass,Minnesota,27021,15,2 +2020-07-05,Cass,Minnesota,27021,15,2 +2020-07-06,Cass,Minnesota,27021,16,2 +2020-07-07,Cass,Minnesota,27021,16,2 +2020-07-08,Cass,Minnesota,27021,19,2 +2020-07-09,Cass,Minnesota,27021,19,2 +2020-04-20,Chippewa,Minnesota,27023,1,0 +2020-04-21,Chippewa,Minnesota,27023,1,0 +2020-04-22,Chippewa,Minnesota,27023,1,0 +2020-04-23,Chippewa,Minnesota,27023,1,0 +2020-04-24,Chippewa,Minnesota,27023,1,0 +2020-04-25,Chippewa,Minnesota,27023,2,0 +2020-04-26,Chippewa,Minnesota,27023,2,0 +2020-04-27,Chippewa,Minnesota,27023,2,0 +2020-04-28,Chippewa,Minnesota,27023,2,0 +2020-04-29,Chippewa,Minnesota,27023,2,0 +2020-04-30,Chippewa,Minnesota,27023,2,0 +2020-05-01,Chippewa,Minnesota,27023,2,0 +2020-05-02,Chippewa,Minnesota,27023,2,0 +2020-05-03,Chippewa,Minnesota,27023,3,0 +2020-05-04,Chippewa,Minnesota,27023,3,0 +2020-05-05,Chippewa,Minnesota,27023,3,0 +2020-05-06,Chippewa,Minnesota,27023,4,0 +2020-05-07,Chippewa,Minnesota,27023,5,0 +2020-05-08,Chippewa,Minnesota,27023,5,0 +2020-05-09,Chippewa,Minnesota,27023,5,0 +2020-05-10,Chippewa,Minnesota,27023,6,0 +2020-05-11,Chippewa,Minnesota,27023,14,0 +2020-05-12,Chippewa,Minnesota,27023,21,0 +2020-05-13,Chippewa,Minnesota,27023,21,0 +2020-05-14,Chippewa,Minnesota,27023,27,0 +2020-05-15,Chippewa,Minnesota,27023,27,0 +2020-05-16,Chippewa,Minnesota,27023,28,0 +2020-05-17,Chippewa,Minnesota,27023,30,0 +2020-05-18,Chippewa,Minnesota,27023,32,0 +2020-05-19,Chippewa,Minnesota,27023,34,0 +2020-05-20,Chippewa,Minnesota,27023,36,0 +2020-05-21,Chippewa,Minnesota,27023,37,0 +2020-05-22,Chippewa,Minnesota,27023,39,0 +2020-05-23,Chippewa,Minnesota,27023,39,0 +2020-05-24,Chippewa,Minnesota,27023,40,0 +2020-05-25,Chippewa,Minnesota,27023,42,0 +2020-05-26,Chippewa,Minnesota,27023,42,1 +2020-05-27,Chippewa,Minnesota,27023,44,1 +2020-05-28,Chippewa,Minnesota,27023,44,1 +2020-05-29,Chippewa,Minnesota,27023,49,1 +2020-05-30,Chippewa,Minnesota,27023,49,1 +2020-05-31,Chippewa,Minnesota,27023,51,1 +2020-06-01,Chippewa,Minnesota,27023,51,1 +2020-06-02,Chippewa,Minnesota,27023,51,1 +2020-06-03,Chippewa,Minnesota,27023,51,1 +2020-06-04,Chippewa,Minnesota,27023,52,1 +2020-06-05,Chippewa,Minnesota,27023,52,1 +2020-06-06,Chippewa,Minnesota,27023,52,1 +2020-06-07,Chippewa,Minnesota,27023,52,1 +2020-06-08,Chippewa,Minnesota,27023,52,1 +2020-06-09,Chippewa,Minnesota,27023,53,1 +2020-06-10,Chippewa,Minnesota,27023,54,1 +2020-06-11,Chippewa,Minnesota,27023,54,1 +2020-06-12,Chippewa,Minnesota,27023,55,1 +2020-06-13,Chippewa,Minnesota,27023,55,1 +2020-06-14,Chippewa,Minnesota,27023,56,1 +2020-06-15,Chippewa,Minnesota,27023,56,1 +2020-06-16,Chippewa,Minnesota,27023,57,1 +2020-06-17,Chippewa,Minnesota,27023,58,1 +2020-06-18,Chippewa,Minnesota,27023,62,1 +2020-06-19,Chippewa,Minnesota,27023,64,1 +2020-06-20,Chippewa,Minnesota,27023,66,1 +2020-06-21,Chippewa,Minnesota,27023,66,1 +2020-06-22,Chippewa,Minnesota,27023,67,1 +2020-06-23,Chippewa,Minnesota,27023,68,1 +2020-06-24,Chippewa,Minnesota,27023,69,1 +2020-06-25,Chippewa,Minnesota,27023,69,1 +2020-06-26,Chippewa,Minnesota,27023,70,1 +2020-06-27,Chippewa,Minnesota,27023,74,1 +2020-06-28,Chippewa,Minnesota,27023,74,1 +2020-06-29,Chippewa,Minnesota,27023,74,1 +2020-06-30,Chippewa,Minnesota,27023,75,1 +2020-07-01,Chippewa,Minnesota,27023,76,1 +2020-07-02,Chippewa,Minnesota,27023,76,1 +2020-07-03,Chippewa,Minnesota,27023,78,1 +2020-07-04,Chippewa,Minnesota,27023,78,1 +2020-07-05,Chippewa,Minnesota,27023,79,1 +2020-07-06,Chippewa,Minnesota,27023,79,1 +2020-07-07,Chippewa,Minnesota,27023,79,1 +2020-07-08,Chippewa,Minnesota,27023,79,1 +2020-07-09,Chippewa,Minnesota,27023,79,1 +2020-03-20,Chisago,Minnesota,27025,1,0 +2020-03-21,Chisago,Minnesota,27025,1,0 +2020-03-22,Chisago,Minnesota,27025,1,0 +2020-03-23,Chisago,Minnesota,27025,2,0 +2020-03-24,Chisago,Minnesota,27025,2,0 +2020-03-25,Chisago,Minnesota,27025,2,0 +2020-03-26,Chisago,Minnesota,27025,2,0 +2020-03-27,Chisago,Minnesota,27025,2,0 +2020-03-28,Chisago,Minnesota,27025,2,0 +2020-03-29,Chisago,Minnesota,27025,2,0 +2020-03-30,Chisago,Minnesota,27025,3,0 +2020-03-31,Chisago,Minnesota,27025,3,0 +2020-04-01,Chisago,Minnesota,27025,3,0 +2020-04-02,Chisago,Minnesota,27025,3,0 +2020-04-03,Chisago,Minnesota,27025,4,1 +2020-04-04,Chisago,Minnesota,27025,4,1 +2020-04-05,Chisago,Minnesota,27025,4,1 +2020-04-06,Chisago,Minnesota,27025,5,1 +2020-04-07,Chisago,Minnesota,27025,5,1 +2020-04-08,Chisago,Minnesota,27025,5,1 +2020-04-09,Chisago,Minnesota,27025,5,1 +2020-04-10,Chisago,Minnesota,27025,6,1 +2020-04-11,Chisago,Minnesota,27025,6,1 +2020-04-12,Chisago,Minnesota,27025,7,1 +2020-04-13,Chisago,Minnesota,27025,7,1 +2020-04-14,Chisago,Minnesota,27025,7,1 +2020-04-15,Chisago,Minnesota,27025,7,1 +2020-04-16,Chisago,Minnesota,27025,7,1 +2020-04-17,Chisago,Minnesota,27025,7,1 +2020-04-18,Chisago,Minnesota,27025,7,1 +2020-04-19,Chisago,Minnesota,27025,7,1 +2020-04-20,Chisago,Minnesota,27025,7,1 +2020-04-21,Chisago,Minnesota,27025,7,1 +2020-04-22,Chisago,Minnesota,27025,7,1 +2020-04-23,Chisago,Minnesota,27025,7,1 +2020-04-24,Chisago,Minnesota,27025,7,1 +2020-04-25,Chisago,Minnesota,27025,7,1 +2020-04-26,Chisago,Minnesota,27025,7,1 +2020-04-27,Chisago,Minnesota,27025,7,1 +2020-04-28,Chisago,Minnesota,27025,9,1 +2020-04-29,Chisago,Minnesota,27025,10,1 +2020-04-30,Chisago,Minnesota,27025,11,1 +2020-05-01,Chisago,Minnesota,27025,12,1 +2020-05-02,Chisago,Minnesota,27025,13,1 +2020-05-03,Chisago,Minnesota,27025,13,1 +2020-05-04,Chisago,Minnesota,27025,13,1 +2020-05-05,Chisago,Minnesota,27025,13,1 +2020-05-06,Chisago,Minnesota,27025,14,1 +2020-05-07,Chisago,Minnesota,27025,14,1 +2020-05-08,Chisago,Minnesota,27025,18,1 +2020-05-09,Chisago,Minnesota,27025,19,1 +2020-05-10,Chisago,Minnesota,27025,20,1 +2020-05-11,Chisago,Minnesota,27025,20,1 +2020-05-12,Chisago,Minnesota,27025,23,1 +2020-05-13,Chisago,Minnesota,27025,23,1 +2020-05-14,Chisago,Minnesota,27025,25,1 +2020-05-15,Chisago,Minnesota,27025,27,1 +2020-05-16,Chisago,Minnesota,27025,30,1 +2020-05-17,Chisago,Minnesota,27025,34,1 +2020-05-18,Chisago,Minnesota,27025,37,1 +2020-05-19,Chisago,Minnesota,27025,38,1 +2020-05-20,Chisago,Minnesota,27025,38,1 +2020-05-21,Chisago,Minnesota,27025,39,1 +2020-05-22,Chisago,Minnesota,27025,41,1 +2020-05-23,Chisago,Minnesota,27025,44,1 +2020-05-24,Chisago,Minnesota,27025,48,1 +2020-05-25,Chisago,Minnesota,27025,48,1 +2020-05-26,Chisago,Minnesota,27025,49,1 +2020-05-27,Chisago,Minnesota,27025,50,1 +2020-05-28,Chisago,Minnesota,27025,54,1 +2020-05-29,Chisago,Minnesota,27025,60,1 +2020-05-30,Chisago,Minnesota,27025,61,1 +2020-05-31,Chisago,Minnesota,27025,61,1 +2020-06-01,Chisago,Minnesota,27025,62,1 +2020-06-02,Chisago,Minnesota,27025,62,1 +2020-06-03,Chisago,Minnesota,27025,64,1 +2020-06-04,Chisago,Minnesota,27025,64,1 +2020-06-05,Chisago,Minnesota,27025,69,1 +2020-06-06,Chisago,Minnesota,27025,70,1 +2020-06-07,Chisago,Minnesota,27025,70,1 +2020-06-08,Chisago,Minnesota,27025,70,1 +2020-06-09,Chisago,Minnesota,27025,70,1 +2020-06-10,Chisago,Minnesota,27025,73,1 +2020-06-11,Chisago,Minnesota,27025,74,1 +2020-06-12,Chisago,Minnesota,27025,77,1 +2020-06-13,Chisago,Minnesota,27025,78,1 +2020-06-14,Chisago,Minnesota,27025,78,1 +2020-06-15,Chisago,Minnesota,27025,80,1 +2020-06-16,Chisago,Minnesota,27025,80,1 +2020-06-17,Chisago,Minnesota,27025,81,1 +2020-06-18,Chisago,Minnesota,27025,81,1 +2020-06-19,Chisago,Minnesota,27025,82,1 +2020-06-20,Chisago,Minnesota,27025,83,1 +2020-06-21,Chisago,Minnesota,27025,87,1 +2020-06-22,Chisago,Minnesota,27025,87,1 +2020-06-23,Chisago,Minnesota,27025,87,1 +2020-06-24,Chisago,Minnesota,27025,87,1 +2020-06-25,Chisago,Minnesota,27025,88,1 +2020-06-26,Chisago,Minnesota,27025,90,1 +2020-06-27,Chisago,Minnesota,27025,90,1 +2020-06-28,Chisago,Minnesota,27025,92,1 +2020-06-29,Chisago,Minnesota,27025,93,1 +2020-06-30,Chisago,Minnesota,27025,93,1 +2020-07-01,Chisago,Minnesota,27025,95,1 +2020-07-02,Chisago,Minnesota,27025,97,1 +2020-07-03,Chisago,Minnesota,27025,97,1 +2020-07-04,Chisago,Minnesota,27025,97,1 +2020-07-05,Chisago,Minnesota,27025,98,1 +2020-07-06,Chisago,Minnesota,27025,100,1 +2020-07-07,Chisago,Minnesota,27025,102,1 +2020-07-08,Chisago,Minnesota,27025,102,1 +2020-07-09,Chisago,Minnesota,27025,103,1 +2020-03-20,Clay,Minnesota,27027,1,0 +2020-03-21,Clay,Minnesota,27027,1,0 +2020-03-22,Clay,Minnesota,27027,2,0 +2020-03-23,Clay,Minnesota,27027,2,0 +2020-03-24,Clay,Minnesota,27027,3,0 +2020-03-25,Clay,Minnesota,27027,3,0 +2020-03-26,Clay,Minnesota,27027,4,0 +2020-03-27,Clay,Minnesota,27027,4,0 +2020-03-28,Clay,Minnesota,27027,4,0 +2020-03-29,Clay,Minnesota,27027,4,0 +2020-03-30,Clay,Minnesota,27027,4,0 +2020-03-31,Clay,Minnesota,27027,6,0 +2020-04-01,Clay,Minnesota,27027,7,0 +2020-04-02,Clay,Minnesota,27027,8,0 +2020-04-03,Clay,Minnesota,27027,8,0 +2020-04-04,Clay,Minnesota,27027,13,0 +2020-04-05,Clay,Minnesota,27027,13,0 +2020-04-06,Clay,Minnesota,27027,19,0 +2020-04-07,Clay,Minnesota,27027,19,0 +2020-04-08,Clay,Minnesota,27027,20,0 +2020-04-09,Clay,Minnesota,27027,23,0 +2020-04-10,Clay,Minnesota,27027,29,0 +2020-04-11,Clay,Minnesota,27027,29,0 +2020-04-12,Clay,Minnesota,27027,40,0 +2020-04-13,Clay,Minnesota,27027,40,0 +2020-04-14,Clay,Minnesota,27027,42,0 +2020-04-15,Clay,Minnesota,27027,43,1 +2020-04-16,Clay,Minnesota,27027,43,1 +2020-04-17,Clay,Minnesota,27027,44,2 +2020-04-18,Clay,Minnesota,27027,48,2 +2020-04-19,Clay,Minnesota,27027,55,2 +2020-04-20,Clay,Minnesota,27027,62,3 +2020-04-21,Clay,Minnesota,27027,68,3 +2020-04-22,Clay,Minnesota,27027,79,3 +2020-04-23,Clay,Minnesota,27027,84,4 +2020-04-24,Clay,Minnesota,27027,100,4 +2020-04-25,Clay,Minnesota,27027,113,7 +2020-04-26,Clay,Minnesota,27027,125,9 +2020-04-27,Clay,Minnesota,27027,131,9 +2020-04-28,Clay,Minnesota,27027,149,10 +2020-04-29,Clay,Minnesota,27027,152,10 +2020-04-30,Clay,Minnesota,27027,157,11 +2020-05-01,Clay,Minnesota,27027,165,11 +2020-05-02,Clay,Minnesota,27027,169,13 +2020-05-03,Clay,Minnesota,27027,176,13 +2020-05-04,Clay,Minnesota,27027,190,13 +2020-05-05,Clay,Minnesota,27027,201,14 +2020-05-06,Clay,Minnesota,27027,215,14 +2020-05-07,Clay,Minnesota,27027,222,15 +2020-05-08,Clay,Minnesota,27027,229,15 +2020-05-09,Clay,Minnesota,27027,233,16 +2020-05-10,Clay,Minnesota,27027,235,17 +2020-05-11,Clay,Minnesota,27027,247,17 +2020-05-12,Clay,Minnesota,27027,254,17 +2020-05-13,Clay,Minnesota,27027,254,17 +2020-05-14,Clay,Minnesota,27027,273,18 +2020-05-15,Clay,Minnesota,27027,279,18 +2020-05-16,Clay,Minnesota,27027,291,19 +2020-05-17,Clay,Minnesota,27027,293,20 +2020-05-18,Clay,Minnesota,27027,310,20 +2020-05-19,Clay,Minnesota,27027,318,21 +2020-05-20,Clay,Minnesota,27027,328,21 +2020-05-21,Clay,Minnesota,27027,344,22 +2020-05-22,Clay,Minnesota,27027,356,22 +2020-05-23,Clay,Minnesota,27027,361,23 +2020-05-24,Clay,Minnesota,27027,366,23 +2020-05-25,Clay,Minnesota,27027,373,24 +2020-05-26,Clay,Minnesota,27027,386,25 +2020-05-27,Clay,Minnesota,27027,406,25 +2020-05-28,Clay,Minnesota,27027,416,25 +2020-05-29,Clay,Minnesota,27027,420,25 +2020-05-30,Clay,Minnesota,27027,424,26 +2020-05-31,Clay,Minnesota,27027,423,28 +2020-06-01,Clay,Minnesota,27027,427,28 +2020-06-02,Clay,Minnesota,27027,430,29 +2020-06-03,Clay,Minnesota,27027,435,29 +2020-06-04,Clay,Minnesota,27027,441,29 +2020-06-05,Clay,Minnesota,27027,449,30 +2020-06-06,Clay,Minnesota,27027,457,30 +2020-06-07,Clay,Minnesota,27027,462,30 +2020-06-08,Clay,Minnesota,27027,469,30 +2020-06-09,Clay,Minnesota,27027,481,30 +2020-06-10,Clay,Minnesota,27027,490,31 +2020-06-11,Clay,Minnesota,27027,499,31 +2020-06-12,Clay,Minnesota,27027,503,36 +2020-06-13,Clay,Minnesota,27027,507,36 +2020-06-14,Clay,Minnesota,27027,504,36 +2020-06-15,Clay,Minnesota,27027,506,36 +2020-06-16,Clay,Minnesota,27027,506,37 +2020-06-17,Clay,Minnesota,27027,512,37 +2020-06-18,Clay,Minnesota,27027,516,37 +2020-06-19,Clay,Minnesota,27027,521,37 +2020-06-20,Clay,Minnesota,27027,522,37 +2020-06-21,Clay,Minnesota,27027,526,37 +2020-06-22,Clay,Minnesota,27027,528,37 +2020-06-23,Clay,Minnesota,27027,530,37 +2020-06-24,Clay,Minnesota,27027,537,37 +2020-06-25,Clay,Minnesota,27027,537,37 +2020-06-26,Clay,Minnesota,27027,545,37 +2020-06-27,Clay,Minnesota,27027,556,37 +2020-06-28,Clay,Minnesota,27027,557,37 +2020-06-29,Clay,Minnesota,27027,560,37 +2020-06-30,Clay,Minnesota,27027,563,37 +2020-07-01,Clay,Minnesota,27027,576,37 +2020-07-02,Clay,Minnesota,27027,580,37 +2020-07-03,Clay,Minnesota,27027,585,38 +2020-07-04,Clay,Minnesota,27027,585,38 +2020-07-05,Clay,Minnesota,27027,587,38 +2020-07-06,Clay,Minnesota,27027,587,38 +2020-07-07,Clay,Minnesota,27027,591,38 +2020-07-08,Clay,Minnesota,27027,595,38 +2020-07-09,Clay,Minnesota,27027,598,38 +2020-03-28,Clearwater,Minnesota,27029,1,0 +2020-03-29,Clearwater,Minnesota,27029,1,0 +2020-03-30,Clearwater,Minnesota,27029,2,0 +2020-03-31,Clearwater,Minnesota,27029,2,0 +2020-04-01,Clearwater,Minnesota,27029,2,0 +2020-04-02,Clearwater,Minnesota,27029,2,0 +2020-04-03,Clearwater,Minnesota,27029,2,0 +2020-04-04,Clearwater,Minnesota,27029,2,0 +2020-04-05,Clearwater,Minnesota,27029,2,0 +2020-04-06,Clearwater,Minnesota,27029,2,0 +2020-04-07,Clearwater,Minnesota,27029,2,0 +2020-04-08,Clearwater,Minnesota,27029,2,0 +2020-04-09,Clearwater,Minnesota,27029,2,0 +2020-04-10,Clearwater,Minnesota,27029,2,0 +2020-04-11,Clearwater,Minnesota,27029,2,0 +2020-04-12,Clearwater,Minnesota,27029,2,0 +2020-04-13,Clearwater,Minnesota,27029,2,0 +2020-04-14,Clearwater,Minnesota,27029,3,0 +2020-04-15,Clearwater,Minnesota,27029,3,0 +2020-04-16,Clearwater,Minnesota,27029,3,0 +2020-04-17,Clearwater,Minnesota,27029,3,0 +2020-04-18,Clearwater,Minnesota,27029,3,0 +2020-04-19,Clearwater,Minnesota,27029,3,0 +2020-04-20,Clearwater,Minnesota,27029,3,0 +2020-04-21,Clearwater,Minnesota,27029,3,0 +2020-04-22,Clearwater,Minnesota,27029,2,0 +2020-04-23,Clearwater,Minnesota,27029,2,0 +2020-04-24,Clearwater,Minnesota,27029,2,0 +2020-04-25,Clearwater,Minnesota,27029,2,0 +2020-04-26,Clearwater,Minnesota,27029,2,0 +2020-04-27,Clearwater,Minnesota,27029,2,0 +2020-04-28,Clearwater,Minnesota,27029,2,0 +2020-04-29,Clearwater,Minnesota,27029,2,0 +2020-04-30,Clearwater,Minnesota,27029,2,0 +2020-05-01,Clearwater,Minnesota,27029,2,0 +2020-05-02,Clearwater,Minnesota,27029,2,0 +2020-05-03,Clearwater,Minnesota,27029,2,0 +2020-05-04,Clearwater,Minnesota,27029,2,0 +2020-05-05,Clearwater,Minnesota,27029,2,0 +2020-05-06,Clearwater,Minnesota,27029,2,0 +2020-05-07,Clearwater,Minnesota,27029,2,0 +2020-05-08,Clearwater,Minnesota,27029,2,0 +2020-05-09,Clearwater,Minnesota,27029,2,0 +2020-05-10,Clearwater,Minnesota,27029,2,0 +2020-05-11,Clearwater,Minnesota,27029,2,0 +2020-05-12,Clearwater,Minnesota,27029,2,0 +2020-05-13,Clearwater,Minnesota,27029,2,0 +2020-05-14,Clearwater,Minnesota,27029,2,0 +2020-05-15,Clearwater,Minnesota,27029,2,0 +2020-05-16,Clearwater,Minnesota,27029,2,0 +2020-05-17,Clearwater,Minnesota,27029,2,0 +2020-05-18,Clearwater,Minnesota,27029,2,0 +2020-05-19,Clearwater,Minnesota,27029,2,0 +2020-05-20,Clearwater,Minnesota,27029,2,0 +2020-05-21,Clearwater,Minnesota,27029,2,0 +2020-05-22,Clearwater,Minnesota,27029,2,0 +2020-05-23,Clearwater,Minnesota,27029,2,0 +2020-05-24,Clearwater,Minnesota,27029,2,0 +2020-05-25,Clearwater,Minnesota,27029,3,0 +2020-05-26,Clearwater,Minnesota,27029,3,0 +2020-05-27,Clearwater,Minnesota,27029,3,0 +2020-05-28,Clearwater,Minnesota,27029,3,0 +2020-05-29,Clearwater,Minnesota,27029,3,0 +2020-05-30,Clearwater,Minnesota,27029,3,0 +2020-05-31,Clearwater,Minnesota,27029,3,0 +2020-06-01,Clearwater,Minnesota,27029,3,0 +2020-06-02,Clearwater,Minnesota,27029,3,0 +2020-06-03,Clearwater,Minnesota,27029,3,0 +2020-06-04,Clearwater,Minnesota,27029,3,0 +2020-06-05,Clearwater,Minnesota,27029,3,0 +2020-06-06,Clearwater,Minnesota,27029,3,0 +2020-06-07,Clearwater,Minnesota,27029,3,0 +2020-06-08,Clearwater,Minnesota,27029,3,0 +2020-06-09,Clearwater,Minnesota,27029,3,0 +2020-06-10,Clearwater,Minnesota,27029,3,0 +2020-06-11,Clearwater,Minnesota,27029,3,0 +2020-06-12,Clearwater,Minnesota,27029,3,0 +2020-06-13,Clearwater,Minnesota,27029,3,0 +2020-06-14,Clearwater,Minnesota,27029,5,0 +2020-06-15,Clearwater,Minnesota,27029,5,0 +2020-06-16,Clearwater,Minnesota,27029,5,0 +2020-06-17,Clearwater,Minnesota,27029,6,0 +2020-06-18,Clearwater,Minnesota,27029,6,0 +2020-06-19,Clearwater,Minnesota,27029,6,0 +2020-06-20,Clearwater,Minnesota,27029,6,0 +2020-06-21,Clearwater,Minnesota,27029,6,0 +2020-06-22,Clearwater,Minnesota,27029,6,0 +2020-06-23,Clearwater,Minnesota,27029,6,0 +2020-06-24,Clearwater,Minnesota,27029,7,0 +2020-06-25,Clearwater,Minnesota,27029,7,0 +2020-06-26,Clearwater,Minnesota,27029,7,0 +2020-06-27,Clearwater,Minnesota,27029,7,0 +2020-06-28,Clearwater,Minnesota,27029,7,0 +2020-06-29,Clearwater,Minnesota,27029,7,0 +2020-06-30,Clearwater,Minnesota,27029,7,0 +2020-07-01,Clearwater,Minnesota,27029,7,0 +2020-07-02,Clearwater,Minnesota,27029,7,0 +2020-07-03,Clearwater,Minnesota,27029,7,0 +2020-07-04,Clearwater,Minnesota,27029,7,0 +2020-07-05,Clearwater,Minnesota,27029,7,0 +2020-07-06,Clearwater,Minnesota,27029,8,0 +2020-07-07,Clearwater,Minnesota,27029,9,0 +2020-07-08,Clearwater,Minnesota,27029,9,0 +2020-07-09,Clearwater,Minnesota,27029,10,0 +2020-06-13,Cook,Minnesota,27031,1,0 +2020-06-14,Cook,Minnesota,27031,1,0 +2020-06-15,Cook,Minnesota,27031,1,0 +2020-06-16,Cook,Minnesota,27031,1,0 +2020-06-17,Cook,Minnesota,27031,1,0 +2020-06-18,Cook,Minnesota,27031,1,0 +2020-06-19,Cook,Minnesota,27031,1,0 +2020-06-20,Cook,Minnesota,27031,1,0 +2020-06-21,Cook,Minnesota,27031,1,0 +2020-06-22,Cook,Minnesota,27031,1,0 +2020-06-23,Cook,Minnesota,27031,1,0 +2020-06-24,Cook,Minnesota,27031,1,0 +2020-06-25,Cook,Minnesota,27031,1,0 +2020-06-26,Cook,Minnesota,27031,1,0 +2020-06-27,Cook,Minnesota,27031,1,0 +2020-06-28,Cook,Minnesota,27031,1,0 +2020-06-29,Cook,Minnesota,27031,1,0 +2020-06-30,Cook,Minnesota,27031,1,0 +2020-07-01,Cook,Minnesota,27031,1,0 +2020-07-02,Cook,Minnesota,27031,1,0 +2020-07-03,Cook,Minnesota,27031,1,0 +2020-07-04,Cook,Minnesota,27031,1,0 +2020-07-05,Cook,Minnesota,27031,1,0 +2020-07-06,Cook,Minnesota,27031,1,0 +2020-07-07,Cook,Minnesota,27031,1,0 +2020-07-08,Cook,Minnesota,27031,1,0 +2020-07-09,Cook,Minnesota,27031,1,0 +2020-03-29,Cottonwood,Minnesota,27033,1,0 +2020-03-30,Cottonwood,Minnesota,27033,1,0 +2020-03-31,Cottonwood,Minnesota,27033,2,0 +2020-04-01,Cottonwood,Minnesota,27033,3,0 +2020-04-02,Cottonwood,Minnesota,27033,5,0 +2020-04-03,Cottonwood,Minnesota,27033,5,0 +2020-04-04,Cottonwood,Minnesota,27033,5,0 +2020-04-05,Cottonwood,Minnesota,27033,5,0 +2020-04-06,Cottonwood,Minnesota,27033,5,0 +2020-04-07,Cottonwood,Minnesota,27033,5,0 +2020-04-08,Cottonwood,Minnesota,27033,5,0 +2020-04-09,Cottonwood,Minnesota,27033,5,0 +2020-04-10,Cottonwood,Minnesota,27033,5,0 +2020-04-11,Cottonwood,Minnesota,27033,5,0 +2020-04-12,Cottonwood,Minnesota,27033,6,0 +2020-04-13,Cottonwood,Minnesota,27033,6,0 +2020-04-14,Cottonwood,Minnesota,27033,6,0 +2020-04-15,Cottonwood,Minnesota,27033,6,0 +2020-04-16,Cottonwood,Minnesota,27033,6,0 +2020-04-17,Cottonwood,Minnesota,27033,6,0 +2020-04-18,Cottonwood,Minnesota,27033,6,0 +2020-04-19,Cottonwood,Minnesota,27033,6,0 +2020-04-20,Cottonwood,Minnesota,27033,6,0 +2020-04-21,Cottonwood,Minnesota,27033,6,0 +2020-04-22,Cottonwood,Minnesota,27033,6,0 +2020-04-23,Cottonwood,Minnesota,27033,6,0 +2020-04-24,Cottonwood,Minnesota,27033,6,0 +2020-04-25,Cottonwood,Minnesota,27033,6,0 +2020-04-26,Cottonwood,Minnesota,27033,6,0 +2020-04-27,Cottonwood,Minnesota,27033,9,0 +2020-04-28,Cottonwood,Minnesota,27033,11,0 +2020-04-29,Cottonwood,Minnesota,27033,20,0 +2020-04-30,Cottonwood,Minnesota,27033,20,0 +2020-05-01,Cottonwood,Minnesota,27033,23,0 +2020-05-02,Cottonwood,Minnesota,27033,27,0 +2020-05-03,Cottonwood,Minnesota,27033,28,0 +2020-05-04,Cottonwood,Minnesota,27033,37,0 +2020-05-05,Cottonwood,Minnesota,27033,41,0 +2020-05-06,Cottonwood,Minnesota,27033,42,0 +2020-05-07,Cottonwood,Minnesota,27033,43,0 +2020-05-08,Cottonwood,Minnesota,27033,43,0 +2020-05-09,Cottonwood,Minnesota,27033,45,0 +2020-05-10,Cottonwood,Minnesota,27033,46,0 +2020-05-11,Cottonwood,Minnesota,27033,47,0 +2020-05-12,Cottonwood,Minnesota,27033,47,0 +2020-05-13,Cottonwood,Minnesota,27033,47,0 +2020-05-14,Cottonwood,Minnesota,27033,51,0 +2020-05-15,Cottonwood,Minnesota,27033,52,0 +2020-05-16,Cottonwood,Minnesota,27033,54,0 +2020-05-17,Cottonwood,Minnesota,27033,56,0 +2020-05-18,Cottonwood,Minnesota,27033,58,0 +2020-05-19,Cottonwood,Minnesota,27033,59,0 +2020-05-20,Cottonwood,Minnesota,27033,59,0 +2020-05-21,Cottonwood,Minnesota,27033,59,0 +2020-05-22,Cottonwood,Minnesota,27033,61,0 +2020-05-23,Cottonwood,Minnesota,27033,62,0 +2020-05-24,Cottonwood,Minnesota,27033,62,0 +2020-05-25,Cottonwood,Minnesota,27033,64,0 +2020-05-26,Cottonwood,Minnesota,27033,65,0 +2020-05-27,Cottonwood,Minnesota,27033,65,0 +2020-05-28,Cottonwood,Minnesota,27033,69,0 +2020-05-29,Cottonwood,Minnesota,27033,69,0 +2020-05-30,Cottonwood,Minnesota,27033,70,0 +2020-05-31,Cottonwood,Minnesota,27033,75,0 +2020-06-01,Cottonwood,Minnesota,27033,76,0 +2020-06-02,Cottonwood,Minnesota,27033,76,0 +2020-06-03,Cottonwood,Minnesota,27033,77,0 +2020-06-04,Cottonwood,Minnesota,27033,79,0 +2020-06-05,Cottonwood,Minnesota,27033,82,0 +2020-06-06,Cottonwood,Minnesota,27033,86,0 +2020-06-07,Cottonwood,Minnesota,27033,90,0 +2020-06-08,Cottonwood,Minnesota,27033,92,0 +2020-06-09,Cottonwood,Minnesota,27033,94,0 +2020-06-10,Cottonwood,Minnesota,27033,94,0 +2020-06-11,Cottonwood,Minnesota,27033,96,0 +2020-06-12,Cottonwood,Minnesota,27033,101,0 +2020-06-13,Cottonwood,Minnesota,27033,104,0 +2020-06-14,Cottonwood,Minnesota,27033,106,0 +2020-06-15,Cottonwood,Minnesota,27033,110,0 +2020-06-16,Cottonwood,Minnesota,27033,111,0 +2020-06-17,Cottonwood,Minnesota,27033,115,0 +2020-06-18,Cottonwood,Minnesota,27033,115,0 +2020-06-19,Cottonwood,Minnesota,27033,118,0 +2020-06-20,Cottonwood,Minnesota,27033,121,0 +2020-06-21,Cottonwood,Minnesota,27033,121,0 +2020-06-22,Cottonwood,Minnesota,27033,123,0 +2020-06-23,Cottonwood,Minnesota,27033,125,0 +2020-06-24,Cottonwood,Minnesota,27033,126,0 +2020-06-25,Cottonwood,Minnesota,27033,127,0 +2020-06-26,Cottonwood,Minnesota,27033,130,0 +2020-06-27,Cottonwood,Minnesota,27033,131,0 +2020-06-28,Cottonwood,Minnesota,27033,131,0 +2020-06-29,Cottonwood,Minnesota,27033,132,0 +2020-06-30,Cottonwood,Minnesota,27033,133,0 +2020-07-01,Cottonwood,Minnesota,27033,134,0 +2020-07-02,Cottonwood,Minnesota,27033,134,0 +2020-07-03,Cottonwood,Minnesota,27033,134,0 +2020-07-04,Cottonwood,Minnesota,27033,134,0 +2020-07-05,Cottonwood,Minnesota,27033,136,0 +2020-07-06,Cottonwood,Minnesota,27033,136,0 +2020-07-07,Cottonwood,Minnesota,27033,136,0 +2020-07-08,Cottonwood,Minnesota,27033,137,0 +2020-07-09,Cottonwood,Minnesota,27033,138,0 +2020-04-01,Crow Wing,Minnesota,27035,1,0 +2020-04-02,Crow Wing,Minnesota,27035,2,0 +2020-04-03,Crow Wing,Minnesota,27035,3,0 +2020-04-04,Crow Wing,Minnesota,27035,5,0 +2020-04-05,Crow Wing,Minnesota,27035,6,0 +2020-04-06,Crow Wing,Minnesota,27035,6,0 +2020-04-07,Crow Wing,Minnesota,27035,9,0 +2020-04-08,Crow Wing,Minnesota,27035,10,0 +2020-04-09,Crow Wing,Minnesota,27035,13,0 +2020-04-10,Crow Wing,Minnesota,27035,13,0 +2020-04-11,Crow Wing,Minnesota,27035,13,0 +2020-04-12,Crow Wing,Minnesota,27035,16,0 +2020-04-13,Crow Wing,Minnesota,27035,16,0 +2020-04-14,Crow Wing,Minnesota,27035,17,0 +2020-04-15,Crow Wing,Minnesota,27035,17,0 +2020-04-16,Crow Wing,Minnesota,27035,17,0 +2020-04-17,Crow Wing,Minnesota,27035,17,0 +2020-04-18,Crow Wing,Minnesota,27035,17,0 +2020-04-19,Crow Wing,Minnesota,27035,19,0 +2020-04-20,Crow Wing,Minnesota,27035,20,0 +2020-04-21,Crow Wing,Minnesota,27035,20,0 +2020-04-22,Crow Wing,Minnesota,27035,20,0 +2020-04-23,Crow Wing,Minnesota,27035,20,0 +2020-04-24,Crow Wing,Minnesota,27035,20,0 +2020-04-25,Crow Wing,Minnesota,27035,20,0 +2020-04-26,Crow Wing,Minnesota,27035,20,0 +2020-04-27,Crow Wing,Minnesota,27035,20,0 +2020-04-28,Crow Wing,Minnesota,27035,20,1 +2020-04-29,Crow Wing,Minnesota,27035,20,1 +2020-04-30,Crow Wing,Minnesota,27035,20,1 +2020-05-01,Crow Wing,Minnesota,27035,21,1 +2020-05-02,Crow Wing,Minnesota,27035,21,1 +2020-05-03,Crow Wing,Minnesota,27035,21,1 +2020-05-04,Crow Wing,Minnesota,27035,21,1 +2020-05-05,Crow Wing,Minnesota,27035,21,1 +2020-05-06,Crow Wing,Minnesota,27035,21,1 +2020-05-07,Crow Wing,Minnesota,27035,23,1 +2020-05-08,Crow Wing,Minnesota,27035,24,1 +2020-05-09,Crow Wing,Minnesota,27035,24,1 +2020-05-10,Crow Wing,Minnesota,27035,23,1 +2020-05-11,Crow Wing,Minnesota,27035,23,1 +2020-05-12,Crow Wing,Minnesota,27035,23,1 +2020-05-13,Crow Wing,Minnesota,27035,23,1 +2020-05-14,Crow Wing,Minnesota,27035,24,1 +2020-05-15,Crow Wing,Minnesota,27035,25,1 +2020-05-16,Crow Wing,Minnesota,27035,24,1 +2020-05-17,Crow Wing,Minnesota,27035,25,1 +2020-05-18,Crow Wing,Minnesota,27035,30,1 +2020-05-19,Crow Wing,Minnesota,27035,30,1 +2020-05-20,Crow Wing,Minnesota,27035,38,1 +2020-05-21,Crow Wing,Minnesota,27035,38,1 +2020-05-22,Crow Wing,Minnesota,27035,42,1 +2020-05-23,Crow Wing,Minnesota,27035,42,1 +2020-05-24,Crow Wing,Minnesota,27035,42,1 +2020-05-25,Crow Wing,Minnesota,27035,56,1 +2020-05-26,Crow Wing,Minnesota,27035,56,1 +2020-05-27,Crow Wing,Minnesota,27035,57,1 +2020-05-28,Crow Wing,Minnesota,27035,59,1 +2020-05-29,Crow Wing,Minnesota,27035,64,1 +2020-05-30,Crow Wing,Minnesota,27035,68,2 +2020-05-31,Crow Wing,Minnesota,27035,71,2 +2020-06-01,Crow Wing,Minnesota,27035,71,2 +2020-06-02,Crow Wing,Minnesota,27035,72,2 +2020-06-03,Crow Wing,Minnesota,27035,75,4 +2020-06-04,Crow Wing,Minnesota,27035,77,4 +2020-06-05,Crow Wing,Minnesota,27035,81,5 +2020-06-06,Crow Wing,Minnesota,27035,82,5 +2020-06-07,Crow Wing,Minnesota,27035,82,5 +2020-06-08,Crow Wing,Minnesota,27035,85,6 +2020-06-09,Crow Wing,Minnesota,27035,86,7 +2020-06-10,Crow Wing,Minnesota,27035,87,9 +2020-06-11,Crow Wing,Minnesota,27035,88,9 +2020-06-12,Crow Wing,Minnesota,27035,88,9 +2020-06-13,Crow Wing,Minnesota,27035,90,9 +2020-06-14,Crow Wing,Minnesota,27035,90,9 +2020-06-15,Crow Wing,Minnesota,27035,90,9 +2020-06-16,Crow Wing,Minnesota,27035,90,10 +2020-06-17,Crow Wing,Minnesota,27035,91,10 +2020-06-18,Crow Wing,Minnesota,27035,92,10 +2020-06-19,Crow Wing,Minnesota,27035,92,11 +2020-06-20,Crow Wing,Minnesota,27035,93,11 +2020-06-21,Crow Wing,Minnesota,27035,94,11 +2020-06-22,Crow Wing,Minnesota,27035,94,11 +2020-06-23,Crow Wing,Minnesota,27035,97,11 +2020-06-24,Crow Wing,Minnesota,27035,97,11 +2020-06-25,Crow Wing,Minnesota,27035,97,11 +2020-06-26,Crow Wing,Minnesota,27035,100,11 +2020-06-27,Crow Wing,Minnesota,27035,101,11 +2020-06-28,Crow Wing,Minnesota,27035,102,12 +2020-06-29,Crow Wing,Minnesota,27035,102,12 +2020-06-30,Crow Wing,Minnesota,27035,102,12 +2020-07-01,Crow Wing,Minnesota,27035,102,12 +2020-07-02,Crow Wing,Minnesota,27035,104,12 +2020-07-03,Crow Wing,Minnesota,27035,106,12 +2020-07-04,Crow Wing,Minnesota,27035,106,12 +2020-07-05,Crow Wing,Minnesota,27035,106,12 +2020-07-06,Crow Wing,Minnesota,27035,106,12 +2020-07-07,Crow Wing,Minnesota,27035,108,12 +2020-07-08,Crow Wing,Minnesota,27035,109,12 +2020-07-09,Crow Wing,Minnesota,27035,108,12 +2020-03-12,Dakota,Minnesota,27037,1,0 +2020-03-13,Dakota,Minnesota,27037,2,0 +2020-03-14,Dakota,Minnesota,27037,2,0 +2020-03-15,Dakota,Minnesota,27037,3,0 +2020-03-16,Dakota,Minnesota,27037,4,0 +2020-03-17,Dakota,Minnesota,27037,7,0 +2020-03-18,Dakota,Minnesota,27037,7,0 +2020-03-19,Dakota,Minnesota,27037,7,0 +2020-03-20,Dakota,Minnesota,27037,7,0 +2020-03-21,Dakota,Minnesota,27037,7,0 +2020-03-22,Dakota,Minnesota,27037,11,0 +2020-03-23,Dakota,Minnesota,27037,18,0 +2020-03-24,Dakota,Minnesota,27037,21,0 +2020-03-25,Dakota,Minnesota,27037,21,0 +2020-03-26,Dakota,Minnesota,27037,25,0 +2020-03-27,Dakota,Minnesota,27037,28,0 +2020-03-28,Dakota,Minnesota,27037,33,0 +2020-03-29,Dakota,Minnesota,27037,39,0 +2020-03-30,Dakota,Minnesota,27037,46,0 +2020-03-31,Dakota,Minnesota,27037,47,0 +2020-04-01,Dakota,Minnesota,27037,48,0 +2020-04-02,Dakota,Minnesota,27037,52,0 +2020-04-03,Dakota,Minnesota,27037,54,1 +2020-04-04,Dakota,Minnesota,27037,56,1 +2020-04-05,Dakota,Minnesota,27037,63,2 +2020-04-06,Dakota,Minnesota,27037,67,2 +2020-04-07,Dakota,Minnesota,27037,71,3 +2020-04-08,Dakota,Minnesota,27037,75,3 +2020-04-09,Dakota,Minnesota,27037,79,3 +2020-04-10,Dakota,Minnesota,27037,85,4 +2020-04-11,Dakota,Minnesota,27037,87,4 +2020-04-12,Dakota,Minnesota,27037,95,4 +2020-04-13,Dakota,Minnesota,27037,95,4 +2020-04-14,Dakota,Minnesota,27037,103,5 +2020-04-15,Dakota,Minnesota,27037,103,5 +2020-04-16,Dakota,Minnesota,27037,103,4 +2020-04-17,Dakota,Minnesota,27037,110,5 +2020-04-18,Dakota,Minnesota,27037,113,5 +2020-04-19,Dakota,Minnesota,27037,116,6 +2020-04-20,Dakota,Minnesota,27037,124,6 +2020-04-21,Dakota,Minnesota,27037,127,6 +2020-04-22,Dakota,Minnesota,27037,130,6 +2020-04-23,Dakota,Minnesota,27037,131,6 +2020-04-24,Dakota,Minnesota,27037,136,6 +2020-04-25,Dakota,Minnesota,27037,138,6 +2020-04-26,Dakota,Minnesota,27037,143,7 +2020-04-27,Dakota,Minnesota,27037,144,7 +2020-04-28,Dakota,Minnesota,27037,156,9 +2020-04-29,Dakota,Minnesota,27037,157,9 +2020-04-30,Dakota,Minnesota,27037,162,10 +2020-05-01,Dakota,Minnesota,27037,171,11 +2020-05-02,Dakota,Minnesota,27037,189,11 +2020-05-03,Dakota,Minnesota,27037,202,11 +2020-05-04,Dakota,Minnesota,27037,215,11 +2020-05-05,Dakota,Minnesota,27037,241,11 +2020-05-06,Dakota,Minnesota,27037,292,12 +2020-05-07,Dakota,Minnesota,27037,322,12 +2020-05-08,Dakota,Minnesota,27037,364,12 +2020-05-09,Dakota,Minnesota,27037,408,15 +2020-05-10,Dakota,Minnesota,27037,430,15 +2020-05-11,Dakota,Minnesota,27037,471,15 +2020-05-12,Dakota,Minnesota,27037,508,15 +2020-05-13,Dakota,Minnesota,27037,508,15 +2020-05-14,Dakota,Minnesota,27037,562,16 +2020-05-15,Dakota,Minnesota,27037,623,17 +2020-05-16,Dakota,Minnesota,27037,666,18 +2020-05-17,Dakota,Minnesota,27037,742,23 +2020-05-18,Dakota,Minnesota,27037,802,23 +2020-05-19,Dakota,Minnesota,27037,841,25 +2020-05-20,Dakota,Minnesota,27037,885,31 +2020-05-21,Dakota,Minnesota,27037,929,32 +2020-05-22,Dakota,Minnesota,27037,961,33 +2020-05-23,Dakota,Minnesota,27037,999,33 +2020-05-24,Dakota,Minnesota,27037,1059,35 +2020-05-25,Dakota,Minnesota,27037,1102,35 +2020-05-26,Dakota,Minnesota,27037,1164,38 +2020-05-27,Dakota,Minnesota,27037,1182,44 +2020-05-28,Dakota,Minnesota,27037,1202,49 +2020-05-29,Dakota,Minnesota,27037,1230,51 +2020-05-30,Dakota,Minnesota,27037,1263,54 +2020-05-31,Dakota,Minnesota,27037,1327,55 +2020-06-01,Dakota,Minnesota,27037,1349,57 +2020-06-02,Dakota,Minnesota,27037,1368,59 +2020-06-03,Dakota,Minnesota,27037,1388,59 +2020-06-04,Dakota,Minnesota,27037,1414,64 +2020-06-05,Dakota,Minnesota,27037,1446,64 +2020-06-06,Dakota,Minnesota,27037,1481,64 +2020-06-07,Dakota,Minnesota,27037,1504,65 +2020-06-08,Dakota,Minnesota,27037,1523,65 +2020-06-09,Dakota,Minnesota,27037,1554,70 +2020-06-10,Dakota,Minnesota,27037,1572,71 +2020-06-11,Dakota,Minnesota,27037,1623,72 +2020-06-12,Dakota,Minnesota,27037,1648,72 +2020-06-13,Dakota,Minnesota,27037,1682,73 +2020-06-14,Dakota,Minnesota,27037,1713,74 +2020-06-15,Dakota,Minnesota,27037,1730,74 +2020-06-16,Dakota,Minnesota,27037,1758,74 +2020-06-17,Dakota,Minnesota,27037,1776,75 +2020-06-18,Dakota,Minnesota,27037,1805,76 +2020-06-19,Dakota,Minnesota,27037,1847,81 +2020-06-20,Dakota,Minnesota,27037,1878,81 +2020-06-21,Dakota,Minnesota,27037,1915,82 +2020-06-22,Dakota,Minnesota,27037,1941,83 +2020-06-23,Dakota,Minnesota,27037,1956,84 +2020-06-24,Dakota,Minnesota,27037,1982,84 +2020-06-25,Dakota,Minnesota,27037,2012,85 +2020-06-26,Dakota,Minnesota,27037,2061,86 +2020-06-27,Dakota,Minnesota,27037,2090,86 +2020-06-28,Dakota,Minnesota,27037,2133,87 +2020-06-29,Dakota,Minnesota,27037,2157,87 +2020-06-30,Dakota,Minnesota,27037,2180,87 +2020-07-01,Dakota,Minnesota,27037,2218,89 +2020-07-02,Dakota,Minnesota,27037,2248,90 +2020-07-03,Dakota,Minnesota,27037,2286,90 +2020-07-04,Dakota,Minnesota,27037,2286,90 +2020-07-05,Dakota,Minnesota,27037,2330,90 +2020-07-06,Dakota,Minnesota,27037,2382,91 +2020-07-07,Dakota,Minnesota,27037,2421,92 +2020-07-08,Dakota,Minnesota,27037,2479,93 +2020-07-09,Dakota,Minnesota,27037,2524,94 +2020-03-21,Dodge,Minnesota,27039,1,0 +2020-03-22,Dodge,Minnesota,27039,2,0 +2020-03-23,Dodge,Minnesota,27039,2,0 +2020-03-24,Dodge,Minnesota,27039,3,0 +2020-03-25,Dodge,Minnesota,27039,3,0 +2020-03-26,Dodge,Minnesota,27039,5,0 +2020-03-27,Dodge,Minnesota,27039,5,0 +2020-03-28,Dodge,Minnesota,27039,6,0 +2020-03-29,Dodge,Minnesota,27039,7,0 +2020-03-30,Dodge,Minnesota,27039,8,0 +2020-03-31,Dodge,Minnesota,27039,8,0 +2020-04-01,Dodge,Minnesota,27039,10,0 +2020-04-02,Dodge,Minnesota,27039,10,0 +2020-04-03,Dodge,Minnesota,27039,10,0 +2020-04-04,Dodge,Minnesota,27039,10,0 +2020-04-05,Dodge,Minnesota,27039,10,0 +2020-04-06,Dodge,Minnesota,27039,10,0 +2020-04-07,Dodge,Minnesota,27039,11,0 +2020-04-08,Dodge,Minnesota,27039,13,0 +2020-04-09,Dodge,Minnesota,27039,13,0 +2020-04-10,Dodge,Minnesota,27039,14,0 +2020-04-11,Dodge,Minnesota,27039,15,0 +2020-04-12,Dodge,Minnesota,27039,16,0 +2020-04-13,Dodge,Minnesota,27039,16,0 +2020-04-14,Dodge,Minnesota,27039,16,0 +2020-04-15,Dodge,Minnesota,27039,16,0 +2020-04-16,Dodge,Minnesota,27039,16,0 +2020-04-17,Dodge,Minnesota,27039,17,0 +2020-04-18,Dodge,Minnesota,27039,17,0 +2020-04-19,Dodge,Minnesota,27039,18,0 +2020-04-20,Dodge,Minnesota,27039,18,0 +2020-04-21,Dodge,Minnesota,27039,18,0 +2020-04-22,Dodge,Minnesota,27039,18,0 +2020-04-23,Dodge,Minnesota,27039,18,0 +2020-04-24,Dodge,Minnesota,27039,18,0 +2020-04-25,Dodge,Minnesota,27039,19,0 +2020-04-26,Dodge,Minnesota,27039,19,0 +2020-04-27,Dodge,Minnesota,27039,19,0 +2020-04-28,Dodge,Minnesota,27039,19,0 +2020-04-29,Dodge,Minnesota,27039,19,0 +2020-04-30,Dodge,Minnesota,27039,21,0 +2020-05-01,Dodge,Minnesota,27039,22,0 +2020-05-02,Dodge,Minnesota,27039,22,0 +2020-05-03,Dodge,Minnesota,27039,22,0 +2020-05-04,Dodge,Minnesota,27039,22,0 +2020-05-05,Dodge,Minnesota,27039,22,0 +2020-05-06,Dodge,Minnesota,27039,22,0 +2020-05-07,Dodge,Minnesota,27039,22,0 +2020-05-08,Dodge,Minnesota,27039,24,0 +2020-05-09,Dodge,Minnesota,27039,24,0 +2020-05-10,Dodge,Minnesota,27039,26,0 +2020-05-11,Dodge,Minnesota,27039,26,0 +2020-05-12,Dodge,Minnesota,27039,26,0 +2020-05-13,Dodge,Minnesota,27039,26,0 +2020-05-14,Dodge,Minnesota,27039,28,0 +2020-05-15,Dodge,Minnesota,27039,30,0 +2020-05-16,Dodge,Minnesota,27039,34,0 +2020-05-17,Dodge,Minnesota,27039,35,0 +2020-05-18,Dodge,Minnesota,27039,36,0 +2020-05-19,Dodge,Minnesota,27039,39,0 +2020-05-20,Dodge,Minnesota,27039,40,0 +2020-05-21,Dodge,Minnesota,27039,40,0 +2020-05-22,Dodge,Minnesota,27039,41,0 +2020-05-23,Dodge,Minnesota,27039,43,0 +2020-05-24,Dodge,Minnesota,27039,43,0 +2020-05-25,Dodge,Minnesota,27039,44,0 +2020-05-26,Dodge,Minnesota,27039,46,0 +2020-05-27,Dodge,Minnesota,27039,46,0 +2020-05-28,Dodge,Minnesota,27039,46,0 +2020-05-29,Dodge,Minnesota,27039,50,0 +2020-05-30,Dodge,Minnesota,27039,52,0 +2020-05-31,Dodge,Minnesota,27039,52,0 +2020-06-01,Dodge,Minnesota,27039,53,0 +2020-06-02,Dodge,Minnesota,27039,53,0 +2020-06-03,Dodge,Minnesota,27039,53,0 +2020-06-04,Dodge,Minnesota,27039,53,0 +2020-06-05,Dodge,Minnesota,27039,54,0 +2020-06-06,Dodge,Minnesota,27039,55,0 +2020-06-07,Dodge,Minnesota,27039,55,0 +2020-06-08,Dodge,Minnesota,27039,55,0 +2020-06-09,Dodge,Minnesota,27039,55,0 +2020-06-10,Dodge,Minnesota,27039,55,0 +2020-06-11,Dodge,Minnesota,27039,57,0 +2020-06-12,Dodge,Minnesota,27039,58,0 +2020-06-13,Dodge,Minnesota,27039,59,0 +2020-06-14,Dodge,Minnesota,27039,59,0 +2020-06-15,Dodge,Minnesota,27039,59,0 +2020-06-16,Dodge,Minnesota,27039,59,0 +2020-06-17,Dodge,Minnesota,27039,61,0 +2020-06-18,Dodge,Minnesota,27039,61,0 +2020-06-19,Dodge,Minnesota,27039,62,0 +2020-06-20,Dodge,Minnesota,27039,63,0 +2020-06-21,Dodge,Minnesota,27039,65,0 +2020-06-22,Dodge,Minnesota,27039,66,0 +2020-06-23,Dodge,Minnesota,27039,66,0 +2020-06-24,Dodge,Minnesota,27039,67,0 +2020-06-25,Dodge,Minnesota,27039,67,0 +2020-06-26,Dodge,Minnesota,27039,70,0 +2020-06-27,Dodge,Minnesota,27039,74,0 +2020-06-28,Dodge,Minnesota,27039,79,0 +2020-06-29,Dodge,Minnesota,27039,79,0 +2020-06-30,Dodge,Minnesota,27039,81,0 +2020-07-01,Dodge,Minnesota,27039,81,0 +2020-07-02,Dodge,Minnesota,27039,83,0 +2020-07-03,Dodge,Minnesota,27039,84,0 +2020-07-04,Dodge,Minnesota,27039,84,0 +2020-07-05,Dodge,Minnesota,27039,86,0 +2020-07-06,Dodge,Minnesota,27039,87,0 +2020-07-07,Dodge,Minnesota,27039,88,0 +2020-07-08,Dodge,Minnesota,27039,92,0 +2020-07-09,Dodge,Minnesota,27039,93,0 +2020-03-29,Douglas,Minnesota,27041,1,0 +2020-03-30,Douglas,Minnesota,27041,1,0 +2020-03-31,Douglas,Minnesota,27041,1,0 +2020-04-01,Douglas,Minnesota,27041,1,0 +2020-04-02,Douglas,Minnesota,27041,1,0 +2020-04-03,Douglas,Minnesota,27041,1,0 +2020-04-04,Douglas,Minnesota,27041,1,0 +2020-04-05,Douglas,Minnesota,27041,1,0 +2020-04-06,Douglas,Minnesota,27041,1,0 +2020-04-07,Douglas,Minnesota,27041,1,0 +2020-04-08,Douglas,Minnesota,27041,1,0 +2020-04-09,Douglas,Minnesota,27041,1,0 +2020-04-10,Douglas,Minnesota,27041,1,0 +2020-04-11,Douglas,Minnesota,27041,1,0 +2020-04-12,Douglas,Minnesota,27041,1,0 +2020-04-13,Douglas,Minnesota,27041,1,0 +2020-04-14,Douglas,Minnesota,27041,1,0 +2020-04-15,Douglas,Minnesota,27041,1,0 +2020-04-16,Douglas,Minnesota,27041,1,0 +2020-04-17,Douglas,Minnesota,27041,1,0 +2020-04-18,Douglas,Minnesota,27041,1,0 +2020-04-19,Douglas,Minnesota,27041,2,0 +2020-04-20,Douglas,Minnesota,27041,2,0 +2020-04-21,Douglas,Minnesota,27041,2,0 +2020-04-22,Douglas,Minnesota,27041,2,0 +2020-04-23,Douglas,Minnesota,27041,2,0 +2020-04-24,Douglas,Minnesota,27041,2,0 +2020-04-25,Douglas,Minnesota,27041,2,0 +2020-04-26,Douglas,Minnesota,27041,2,0 +2020-04-27,Douglas,Minnesota,27041,2,0 +2020-04-28,Douglas,Minnesota,27041,2,0 +2020-04-29,Douglas,Minnesota,27041,2,0 +2020-04-30,Douglas,Minnesota,27041,2,0 +2020-05-01,Douglas,Minnesota,27041,2,0 +2020-05-02,Douglas,Minnesota,27041,3,0 +2020-05-03,Douglas,Minnesota,27041,3,0 +2020-05-04,Douglas,Minnesota,27041,7,0 +2020-05-05,Douglas,Minnesota,27041,10,0 +2020-05-06,Douglas,Minnesota,27041,12,0 +2020-05-07,Douglas,Minnesota,27041,14,0 +2020-05-08,Douglas,Minnesota,27041,15,0 +2020-05-09,Douglas,Minnesota,27041,15,0 +2020-05-10,Douglas,Minnesota,27041,16,0 +2020-05-11,Douglas,Minnesota,27041,16,0 +2020-05-12,Douglas,Minnesota,27041,17,0 +2020-05-13,Douglas,Minnesota,27041,17,0 +2020-05-14,Douglas,Minnesota,27041,17,0 +2020-05-15,Douglas,Minnesota,27041,18,0 +2020-05-16,Douglas,Minnesota,27041,18,0 +2020-05-17,Douglas,Minnesota,27041,18,0 +2020-05-18,Douglas,Minnesota,27041,21,0 +2020-05-19,Douglas,Minnesota,27041,23,0 +2020-05-20,Douglas,Minnesota,27041,24,0 +2020-05-21,Douglas,Minnesota,27041,24,0 +2020-05-22,Douglas,Minnesota,27041,27,0 +2020-05-23,Douglas,Minnesota,27041,27,0 +2020-05-24,Douglas,Minnesota,27041,29,0 +2020-05-25,Douglas,Minnesota,27041,29,0 +2020-05-26,Douglas,Minnesota,27041,30,0 +2020-05-27,Douglas,Minnesota,27041,39,0 +2020-05-28,Douglas,Minnesota,27041,39,0 +2020-05-29,Douglas,Minnesota,27041,40,0 +2020-05-30,Douglas,Minnesota,27041,41,0 +2020-05-31,Douglas,Minnesota,27041,42,0 +2020-06-01,Douglas,Minnesota,27041,44,0 +2020-06-02,Douglas,Minnesota,27041,44,0 +2020-06-03,Douglas,Minnesota,27041,44,0 +2020-06-04,Douglas,Minnesota,27041,45,0 +2020-06-05,Douglas,Minnesota,27041,46,0 +2020-06-06,Douglas,Minnesota,27041,46,0 +2020-06-07,Douglas,Minnesota,27041,47,0 +2020-06-08,Douglas,Minnesota,27041,48,0 +2020-06-09,Douglas,Minnesota,27041,48,0 +2020-06-10,Douglas,Minnesota,27041,48,0 +2020-06-11,Douglas,Minnesota,27041,48,0 +2020-06-12,Douglas,Minnesota,27041,49,0 +2020-06-13,Douglas,Minnesota,27041,49,0 +2020-06-14,Douglas,Minnesota,27041,48,0 +2020-06-15,Douglas,Minnesota,27041,48,0 +2020-06-16,Douglas,Minnesota,27041,48,0 +2020-06-17,Douglas,Minnesota,27041,51,0 +2020-06-18,Douglas,Minnesota,27041,53,0 +2020-06-19,Douglas,Minnesota,27041,53,0 +2020-06-20,Douglas,Minnesota,27041,54,0 +2020-06-21,Douglas,Minnesota,27041,54,0 +2020-06-22,Douglas,Minnesota,27041,54,0 +2020-06-23,Douglas,Minnesota,27041,54,0 +2020-06-24,Douglas,Minnesota,27041,54,0 +2020-06-25,Douglas,Minnesota,27041,55,0 +2020-06-26,Douglas,Minnesota,27041,55,0 +2020-06-27,Douglas,Minnesota,27041,58,0 +2020-06-28,Douglas,Minnesota,27041,58,0 +2020-06-29,Douglas,Minnesota,27041,58,0 +2020-06-30,Douglas,Minnesota,27041,61,0 +2020-07-01,Douglas,Minnesota,27041,61,0 +2020-07-02,Douglas,Minnesota,27041,61,0 +2020-07-03,Douglas,Minnesota,27041,62,0 +2020-07-04,Douglas,Minnesota,27041,62,0 +2020-07-05,Douglas,Minnesota,27041,64,0 +2020-07-06,Douglas,Minnesota,27041,65,0 +2020-07-07,Douglas,Minnesota,27041,65,0 +2020-07-08,Douglas,Minnesota,27041,66,0 +2020-07-09,Douglas,Minnesota,27041,67,0 +2020-03-27,Faribault,Minnesota,27043,1,0 +2020-03-28,Faribault,Minnesota,27043,1,0 +2020-03-29,Faribault,Minnesota,27043,1,0 +2020-03-30,Faribault,Minnesota,27043,1,0 +2020-03-31,Faribault,Minnesota,27043,2,0 +2020-04-01,Faribault,Minnesota,27043,2,0 +2020-04-02,Faribault,Minnesota,27043,2,0 +2020-04-03,Faribault,Minnesota,27043,3,0 +2020-04-04,Faribault,Minnesota,27043,3,0 +2020-04-05,Faribault,Minnesota,27043,3,0 +2020-04-06,Faribault,Minnesota,27043,3,0 +2020-04-07,Faribault,Minnesota,27043,3,0 +2020-04-08,Faribault,Minnesota,27043,3,0 +2020-04-09,Faribault,Minnesota,27043,4,0 +2020-04-10,Faribault,Minnesota,27043,4,0 +2020-04-11,Faribault,Minnesota,27043,4,0 +2020-04-12,Faribault,Minnesota,27043,4,0 +2020-04-13,Faribault,Minnesota,27043,4,0 +2020-04-14,Faribault,Minnesota,27043,4,0 +2020-04-15,Faribault,Minnesota,27043,4,0 +2020-04-16,Faribault,Minnesota,27043,4,0 +2020-04-17,Faribault,Minnesota,27043,4,0 +2020-04-18,Faribault,Minnesota,27043,4,0 +2020-04-19,Faribault,Minnesota,27043,4,0 +2020-04-20,Faribault,Minnesota,27043,4,0 +2020-04-21,Faribault,Minnesota,27043,4,0 +2020-04-22,Faribault,Minnesota,27043,4,0 +2020-04-23,Faribault,Minnesota,27043,4,0 +2020-04-24,Faribault,Minnesota,27043,4,0 +2020-04-25,Faribault,Minnesota,27043,4,0 +2020-04-26,Faribault,Minnesota,27043,4,0 +2020-04-27,Faribault,Minnesota,27043,4,0 +2020-04-28,Faribault,Minnesota,27043,4,0 +2020-04-29,Faribault,Minnesota,27043,5,0 +2020-04-30,Faribault,Minnesota,27043,5,0 +2020-05-01,Faribault,Minnesota,27043,5,0 +2020-05-02,Faribault,Minnesota,27043,6,0 +2020-05-03,Faribault,Minnesota,27043,6,0 +2020-05-04,Faribault,Minnesota,27043,7,0 +2020-05-05,Faribault,Minnesota,27043,7,0 +2020-05-06,Faribault,Minnesota,27043,8,0 +2020-05-07,Faribault,Minnesota,27043,7,0 +2020-05-08,Faribault,Minnesota,27043,7,0 +2020-05-09,Faribault,Minnesota,27043,10,0 +2020-05-10,Faribault,Minnesota,27043,12,0 +2020-05-11,Faribault,Minnesota,27043,10,0 +2020-05-12,Faribault,Minnesota,27043,10,0 +2020-05-13,Faribault,Minnesota,27043,10,0 +2020-05-14,Faribault,Minnesota,27043,9,0 +2020-05-15,Faribault,Minnesota,27043,12,0 +2020-05-16,Faribault,Minnesota,27043,9,0 +2020-05-17,Faribault,Minnesota,27043,10,0 +2020-05-18,Faribault,Minnesota,27043,10,0 +2020-05-19,Faribault,Minnesota,27043,11,0 +2020-05-20,Faribault,Minnesota,27043,10,0 +2020-05-21,Faribault,Minnesota,27043,11,0 +2020-05-22,Faribault,Minnesota,27043,11,0 +2020-05-23,Faribault,Minnesota,27043,11,0 +2020-05-24,Faribault,Minnesota,27043,11,0 +2020-05-25,Faribault,Minnesota,27043,12,0 +2020-05-26,Faribault,Minnesota,27043,13,0 +2020-05-27,Faribault,Minnesota,27043,13,0 +2020-05-28,Faribault,Minnesota,27043,13,0 +2020-05-29,Faribault,Minnesota,27043,15,0 +2020-05-30,Faribault,Minnesota,27043,18,0 +2020-05-31,Faribault,Minnesota,27043,18,0 +2020-06-01,Faribault,Minnesota,27043,19,0 +2020-06-02,Faribault,Minnesota,27043,20,0 +2020-06-03,Faribault,Minnesota,27043,20,0 +2020-06-04,Faribault,Minnesota,27043,20,0 +2020-06-05,Faribault,Minnesota,27043,22,0 +2020-06-06,Faribault,Minnesota,27043,23,0 +2020-06-07,Faribault,Minnesota,27043,23,0 +2020-06-08,Faribault,Minnesota,27043,24,0 +2020-06-09,Faribault,Minnesota,27043,25,0 +2020-06-10,Faribault,Minnesota,27043,25,0 +2020-06-11,Faribault,Minnesota,27043,25,0 +2020-06-12,Faribault,Minnesota,27043,25,0 +2020-06-13,Faribault,Minnesota,27043,26,0 +2020-06-14,Faribault,Minnesota,27043,27,0 +2020-06-15,Faribault,Minnesota,27043,27,0 +2020-06-16,Faribault,Minnesota,27043,28,0 +2020-06-17,Faribault,Minnesota,27043,30,0 +2020-06-18,Faribault,Minnesota,27043,32,0 +2020-06-19,Faribault,Minnesota,27043,30,0 +2020-06-20,Faribault,Minnesota,27043,31,0 +2020-06-21,Faribault,Minnesota,27043,33,0 +2020-06-22,Faribault,Minnesota,27043,33,0 +2020-06-23,Faribault,Minnesota,27043,35,0 +2020-06-24,Faribault,Minnesota,27043,35,0 +2020-06-25,Faribault,Minnesota,27043,41,0 +2020-06-26,Faribault,Minnesota,27043,44,0 +2020-06-27,Faribault,Minnesota,27043,45,0 +2020-06-28,Faribault,Minnesota,27043,48,0 +2020-06-29,Faribault,Minnesota,27043,53,0 +2020-06-30,Faribault,Minnesota,27043,53,0 +2020-07-01,Faribault,Minnesota,27043,53,0 +2020-07-02,Faribault,Minnesota,27043,54,0 +2020-07-03,Faribault,Minnesota,27043,55,0 +2020-07-04,Faribault,Minnesota,27043,55,0 +2020-07-05,Faribault,Minnesota,27043,56,0 +2020-07-06,Faribault,Minnesota,27043,56,0 +2020-07-07,Faribault,Minnesota,27043,60,0 +2020-07-08,Faribault,Minnesota,27043,60,0 +2020-07-09,Faribault,Minnesota,27043,60,0 +2020-03-20,Fillmore,Minnesota,27045,2,0 +2020-03-21,Fillmore,Minnesota,27045,2,0 +2020-03-22,Fillmore,Minnesota,27045,2,0 +2020-03-23,Fillmore,Minnesota,27045,3,0 +2020-03-24,Fillmore,Minnesota,27045,3,0 +2020-03-25,Fillmore,Minnesota,27045,3,0 +2020-03-26,Fillmore,Minnesota,27045,3,0 +2020-03-27,Fillmore,Minnesota,27045,3,0 +2020-03-28,Fillmore,Minnesota,27045,5,0 +2020-03-29,Fillmore,Minnesota,27045,6,0 +2020-03-30,Fillmore,Minnesota,27045,7,0 +2020-03-31,Fillmore,Minnesota,27045,8,0 +2020-04-01,Fillmore,Minnesota,27045,8,0 +2020-04-02,Fillmore,Minnesota,27045,9,0 +2020-04-03,Fillmore,Minnesota,27045,9,0 +2020-04-04,Fillmore,Minnesota,27045,9,0 +2020-04-05,Fillmore,Minnesota,27045,10,0 +2020-04-06,Fillmore,Minnesota,27045,10,0 +2020-04-07,Fillmore,Minnesota,27045,10,0 +2020-04-08,Fillmore,Minnesota,27045,10,0 +2020-04-09,Fillmore,Minnesota,27045,10,0 +2020-04-10,Fillmore,Minnesota,27045,10,0 +2020-04-11,Fillmore,Minnesota,27045,10,0 +2020-04-12,Fillmore,Minnesota,27045,10,0 +2020-04-13,Fillmore,Minnesota,27045,10,0 +2020-04-14,Fillmore,Minnesota,27045,10,0 +2020-04-15,Fillmore,Minnesota,27045,10,0 +2020-04-16,Fillmore,Minnesota,27045,10,0 +2020-04-17,Fillmore,Minnesota,27045,10,0 +2020-04-18,Fillmore,Minnesota,27045,11,0 +2020-04-19,Fillmore,Minnesota,27045,10,0 +2020-04-20,Fillmore,Minnesota,27045,11,0 +2020-04-21,Fillmore,Minnesota,27045,11,0 +2020-04-22,Fillmore,Minnesota,27045,11,0 +2020-04-23,Fillmore,Minnesota,27045,12,1 +2020-04-24,Fillmore,Minnesota,27045,12,1 +2020-04-25,Fillmore,Minnesota,27045,12,1 +2020-04-26,Fillmore,Minnesota,27045,12,1 +2020-04-27,Fillmore,Minnesota,27045,12,1 +2020-04-28,Fillmore,Minnesota,27045,12,1 +2020-04-29,Fillmore,Minnesota,27045,12,1 +2020-04-30,Fillmore,Minnesota,27045,12,1 +2020-05-01,Fillmore,Minnesota,27045,12,1 +2020-05-02,Fillmore,Minnesota,27045,13,1 +2020-05-03,Fillmore,Minnesota,27045,13,1 +2020-05-04,Fillmore,Minnesota,27045,13,1 +2020-05-05,Fillmore,Minnesota,27045,12,1 +2020-05-06,Fillmore,Minnesota,27045,12,1 +2020-05-07,Fillmore,Minnesota,27045,12,1 +2020-05-08,Fillmore,Minnesota,27045,12,1 +2020-05-09,Fillmore,Minnesota,27045,12,1 +2020-05-10,Fillmore,Minnesota,27045,13,1 +2020-05-11,Fillmore,Minnesota,27045,13,1 +2020-05-12,Fillmore,Minnesota,27045,14,1 +2020-05-13,Fillmore,Minnesota,27045,14,1 +2020-05-14,Fillmore,Minnesota,27045,16,1 +2020-05-15,Fillmore,Minnesota,27045,17,1 +2020-05-16,Fillmore,Minnesota,27045,17,1 +2020-05-17,Fillmore,Minnesota,27045,17,1 +2020-05-18,Fillmore,Minnesota,27045,17,1 +2020-05-19,Fillmore,Minnesota,27045,17,1 +2020-05-20,Fillmore,Minnesota,27045,17,1 +2020-05-21,Fillmore,Minnesota,27045,17,1 +2020-05-22,Fillmore,Minnesota,27045,17,1 +2020-05-23,Fillmore,Minnesota,27045,17,1 +2020-05-24,Fillmore,Minnesota,27045,17,1 +2020-05-25,Fillmore,Minnesota,27045,17,1 +2020-05-26,Fillmore,Minnesota,27045,17,1 +2020-05-27,Fillmore,Minnesota,27045,17,1 +2020-05-28,Fillmore,Minnesota,27045,17,1 +2020-05-29,Fillmore,Minnesota,27045,17,1 +2020-05-30,Fillmore,Minnesota,27045,17,1 +2020-05-31,Fillmore,Minnesota,27045,17,1 +2020-06-01,Fillmore,Minnesota,27045,17,1 +2020-06-02,Fillmore,Minnesota,27045,17,1 +2020-06-03,Fillmore,Minnesota,27045,17,1 +2020-06-04,Fillmore,Minnesota,27045,17,1 +2020-06-05,Fillmore,Minnesota,27045,17,1 +2020-06-06,Fillmore,Minnesota,27045,18,1 +2020-06-07,Fillmore,Minnesota,27045,20,1 +2020-06-08,Fillmore,Minnesota,27045,20,1 +2020-06-09,Fillmore,Minnesota,27045,20,1 +2020-06-10,Fillmore,Minnesota,27045,20,1 +2020-06-11,Fillmore,Minnesota,27045,20,1 +2020-06-12,Fillmore,Minnesota,27045,20,1 +2020-06-13,Fillmore,Minnesota,27045,20,1 +2020-06-14,Fillmore,Minnesota,27045,20,1 +2020-06-15,Fillmore,Minnesota,27045,20,1 +2020-06-16,Fillmore,Minnesota,27045,20,1 +2020-06-17,Fillmore,Minnesota,27045,20,1 +2020-06-18,Fillmore,Minnesota,27045,22,1 +2020-06-19,Fillmore,Minnesota,27045,21,0 +2020-06-20,Fillmore,Minnesota,27045,21,0 +2020-06-21,Fillmore,Minnesota,27045,23,0 +2020-06-22,Fillmore,Minnesota,27045,23,0 +2020-06-23,Fillmore,Minnesota,27045,23,0 +2020-06-24,Fillmore,Minnesota,27045,23,0 +2020-06-25,Fillmore,Minnesota,27045,23,0 +2020-06-26,Fillmore,Minnesota,27045,24,0 +2020-06-27,Fillmore,Minnesota,27045,25,0 +2020-06-28,Fillmore,Minnesota,27045,25,0 +2020-06-29,Fillmore,Minnesota,27045,25,0 +2020-06-30,Fillmore,Minnesota,27045,25,0 +2020-07-01,Fillmore,Minnesota,27045,27,0 +2020-07-02,Fillmore,Minnesota,27045,27,0 +2020-07-03,Fillmore,Minnesota,27045,28,0 +2020-07-04,Fillmore,Minnesota,27045,28,0 +2020-07-05,Fillmore,Minnesota,27045,30,0 +2020-07-06,Fillmore,Minnesota,27045,30,0 +2020-07-07,Fillmore,Minnesota,27045,30,0 +2020-07-08,Fillmore,Minnesota,27045,30,0 +2020-07-09,Fillmore,Minnesota,27045,30,0 +2020-04-01,Freeborn,Minnesota,27047,2,0 +2020-04-02,Freeborn,Minnesota,27047,5,0 +2020-04-03,Freeborn,Minnesota,27047,7,0 +2020-04-04,Freeborn,Minnesota,27047,10,0 +2020-04-05,Freeborn,Minnesota,27047,10,0 +2020-04-06,Freeborn,Minnesota,27047,11,0 +2020-04-07,Freeborn,Minnesota,27047,14,0 +2020-04-08,Freeborn,Minnesota,27047,17,0 +2020-04-09,Freeborn,Minnesota,27047,20,0 +2020-04-10,Freeborn,Minnesota,27047,21,0 +2020-04-11,Freeborn,Minnesota,27047,22,0 +2020-04-12,Freeborn,Minnesota,27047,24,0 +2020-04-13,Freeborn,Minnesota,27047,24,0 +2020-04-14,Freeborn,Minnesota,27047,27,0 +2020-04-15,Freeborn,Minnesota,27047,27,0 +2020-04-16,Freeborn,Minnesota,27047,29,0 +2020-04-17,Freeborn,Minnesota,27047,28,0 +2020-04-18,Freeborn,Minnesota,27047,31,0 +2020-04-19,Freeborn,Minnesota,27047,34,0 +2020-04-20,Freeborn,Minnesota,27047,33,0 +2020-04-21,Freeborn,Minnesota,27047,33,0 +2020-04-22,Freeborn,Minnesota,27047,33,0 +2020-04-23,Freeborn,Minnesota,27047,33,0 +2020-04-24,Freeborn,Minnesota,27047,33,0 +2020-04-25,Freeborn,Minnesota,27047,33,0 +2020-04-26,Freeborn,Minnesota,27047,33,0 +2020-04-27,Freeborn,Minnesota,27047,33,0 +2020-04-28,Freeborn,Minnesota,27047,34,0 +2020-04-29,Freeborn,Minnesota,27047,34,0 +2020-04-30,Freeborn,Minnesota,27047,34,0 +2020-05-01,Freeborn,Minnesota,27047,35,0 +2020-05-02,Freeborn,Minnesota,27047,35,0 +2020-05-03,Freeborn,Minnesota,27047,35,0 +2020-05-04,Freeborn,Minnesota,27047,36,0 +2020-05-05,Freeborn,Minnesota,27047,37,0 +2020-05-06,Freeborn,Minnesota,27047,38,0 +2020-05-07,Freeborn,Minnesota,27047,39,0 +2020-05-08,Freeborn,Minnesota,27047,41,0 +2020-05-09,Freeborn,Minnesota,27047,43,0 +2020-05-10,Freeborn,Minnesota,27047,44,0 +2020-05-11,Freeborn,Minnesota,27047,46,0 +2020-05-12,Freeborn,Minnesota,27047,46,0 +2020-05-13,Freeborn,Minnesota,27047,46,0 +2020-05-14,Freeborn,Minnesota,27047,52,0 +2020-05-15,Freeborn,Minnesota,27047,55,0 +2020-05-16,Freeborn,Minnesota,27047,61,0 +2020-05-17,Freeborn,Minnesota,27047,61,0 +2020-05-18,Freeborn,Minnesota,27047,61,0 +2020-05-19,Freeborn,Minnesota,27047,63,0 +2020-05-20,Freeborn,Minnesota,27047,67,0 +2020-05-21,Freeborn,Minnesota,27047,73,0 +2020-05-22,Freeborn,Minnesota,27047,76,0 +2020-05-23,Freeborn,Minnesota,27047,82,0 +2020-05-24,Freeborn,Minnesota,27047,84,0 +2020-05-25,Freeborn,Minnesota,27047,93,0 +2020-05-26,Freeborn,Minnesota,27047,97,0 +2020-05-27,Freeborn,Minnesota,27047,97,0 +2020-05-28,Freeborn,Minnesota,27047,102,0 +2020-05-29,Freeborn,Minnesota,27047,108,0 +2020-05-30,Freeborn,Minnesota,27047,115,0 +2020-05-31,Freeborn,Minnesota,27047,117,0 +2020-06-01,Freeborn,Minnesota,27047,125,0 +2020-06-02,Freeborn,Minnesota,27047,130,0 +2020-06-03,Freeborn,Minnesota,27047,130,0 +2020-06-04,Freeborn,Minnesota,27047,142,0 +2020-06-05,Freeborn,Minnesota,27047,159,0 +2020-06-06,Freeborn,Minnesota,27047,170,0 +2020-06-07,Freeborn,Minnesota,27047,177,0 +2020-06-08,Freeborn,Minnesota,27047,185,0 +2020-06-09,Freeborn,Minnesota,27047,188,0 +2020-06-10,Freeborn,Minnesota,27047,197,0 +2020-06-11,Freeborn,Minnesota,27047,200,0 +2020-06-12,Freeborn,Minnesota,27047,217,0 +2020-06-13,Freeborn,Minnesota,27047,218,0 +2020-06-14,Freeborn,Minnesota,27047,221,0 +2020-06-15,Freeborn,Minnesota,27047,220,0 +2020-06-16,Freeborn,Minnesota,27047,222,0 +2020-06-17,Freeborn,Minnesota,27047,235,0 +2020-06-18,Freeborn,Minnesota,27047,240,0 +2020-06-19,Freeborn,Minnesota,27047,243,0 +2020-06-20,Freeborn,Minnesota,27047,245,0 +2020-06-21,Freeborn,Minnesota,27047,251,0 +2020-06-22,Freeborn,Minnesota,27047,258,0 +2020-06-23,Freeborn,Minnesota,27047,259,0 +2020-06-24,Freeborn,Minnesota,27047,259,0 +2020-06-25,Freeborn,Minnesota,27047,262,0 +2020-06-26,Freeborn,Minnesota,27047,265,0 +2020-06-27,Freeborn,Minnesota,27047,271,0 +2020-06-28,Freeborn,Minnesota,27047,280,0 +2020-06-29,Freeborn,Minnesota,27047,282,0 +2020-06-30,Freeborn,Minnesota,27047,281,0 +2020-07-01,Freeborn,Minnesota,27047,286,0 +2020-07-02,Freeborn,Minnesota,27047,289,0 +2020-07-03,Freeborn,Minnesota,27047,290,0 +2020-07-04,Freeborn,Minnesota,27047,290,0 +2020-07-05,Freeborn,Minnesota,27047,292,0 +2020-07-06,Freeborn,Minnesota,27047,292,0 +2020-07-07,Freeborn,Minnesota,27047,297,0 +2020-07-08,Freeborn,Minnesota,27047,298,0 +2020-07-09,Freeborn,Minnesota,27047,302,0 +2020-03-25,Goodhue,Minnesota,27049,1,0 +2020-03-26,Goodhue,Minnesota,27049,1,0 +2020-03-27,Goodhue,Minnesota,27049,2,0 +2020-03-28,Goodhue,Minnesota,27049,2,0 +2020-03-29,Goodhue,Minnesota,27049,2,0 +2020-03-30,Goodhue,Minnesota,27049,3,0 +2020-03-31,Goodhue,Minnesota,27049,3,0 +2020-04-01,Goodhue,Minnesota,27049,4,0 +2020-04-02,Goodhue,Minnesota,27049,4,0 +2020-04-03,Goodhue,Minnesota,27049,5,0 +2020-04-04,Goodhue,Minnesota,27049,8,0 +2020-04-05,Goodhue,Minnesota,27049,10,0 +2020-04-06,Goodhue,Minnesota,27049,10,0 +2020-04-07,Goodhue,Minnesota,27049,12,0 +2020-04-08,Goodhue,Minnesota,27049,13,0 +2020-04-09,Goodhue,Minnesota,27049,14,0 +2020-04-10,Goodhue,Minnesota,27049,14,0 +2020-04-11,Goodhue,Minnesota,27049,16,0 +2020-04-12,Goodhue,Minnesota,27049,17,0 +2020-04-13,Goodhue,Minnesota,27049,17,0 +2020-04-14,Goodhue,Minnesota,27049,17,0 +2020-04-15,Goodhue,Minnesota,27049,17,0 +2020-04-16,Goodhue,Minnesota,27049,17,0 +2020-04-17,Goodhue,Minnesota,27049,18,0 +2020-04-18,Goodhue,Minnesota,27049,19,0 +2020-04-19,Goodhue,Minnesota,27049,19,0 +2020-04-20,Goodhue,Minnesota,27049,19,0 +2020-04-21,Goodhue,Minnesota,27049,19,0 +2020-04-22,Goodhue,Minnesota,27049,19,0 +2020-04-23,Goodhue,Minnesota,27049,19,0 +2020-04-24,Goodhue,Minnesota,27049,19,0 +2020-04-25,Goodhue,Minnesota,27049,19,0 +2020-04-26,Goodhue,Minnesota,27049,19,0 +2020-04-27,Goodhue,Minnesota,27049,19,0 +2020-04-28,Goodhue,Minnesota,27049,19,0 +2020-04-29,Goodhue,Minnesota,27049,19,0 +2020-04-30,Goodhue,Minnesota,27049,19,0 +2020-05-01,Goodhue,Minnesota,27049,19,0 +2020-05-02,Goodhue,Minnesota,27049,21,0 +2020-05-03,Goodhue,Minnesota,27049,21,0 +2020-05-04,Goodhue,Minnesota,27049,23,0 +2020-05-05,Goodhue,Minnesota,27049,23,0 +2020-05-06,Goodhue,Minnesota,27049,23,0 +2020-05-07,Goodhue,Minnesota,27049,25,0 +2020-05-08,Goodhue,Minnesota,27049,25,0 +2020-05-09,Goodhue,Minnesota,27049,25,0 +2020-05-10,Goodhue,Minnesota,27049,25,0 +2020-05-11,Goodhue,Minnesota,27049,25,0 +2020-05-12,Goodhue,Minnesota,27049,26,0 +2020-05-13,Goodhue,Minnesota,27049,26,0 +2020-05-14,Goodhue,Minnesota,27049,29,0 +2020-05-15,Goodhue,Minnesota,27049,29,0 +2020-05-16,Goodhue,Minnesota,27049,32,0 +2020-05-17,Goodhue,Minnesota,27049,33,0 +2020-05-18,Goodhue,Minnesota,27049,34,0 +2020-05-19,Goodhue,Minnesota,27049,36,0 +2020-05-20,Goodhue,Minnesota,27049,38,0 +2020-05-21,Goodhue,Minnesota,27049,40,1 +2020-05-22,Goodhue,Minnesota,27049,43,2 +2020-05-23,Goodhue,Minnesota,27049,50,2 +2020-05-24,Goodhue,Minnesota,27049,52,2 +2020-05-25,Goodhue,Minnesota,27049,55,2 +2020-05-26,Goodhue,Minnesota,27049,58,3 +2020-05-27,Goodhue,Minnesota,27049,60,3 +2020-05-28,Goodhue,Minnesota,27049,60,3 +2020-05-29,Goodhue,Minnesota,27049,62,3 +2020-05-30,Goodhue,Minnesota,27049,66,3 +2020-05-31,Goodhue,Minnesota,27049,66,3 +2020-06-01,Goodhue,Minnesota,27049,68,3 +2020-06-02,Goodhue,Minnesota,27049,69,3 +2020-06-03,Goodhue,Minnesota,27049,70,4 +2020-06-04,Goodhue,Minnesota,27049,71,5 +2020-06-05,Goodhue,Minnesota,27049,73,6 +2020-06-06,Goodhue,Minnesota,27049,76,7 +2020-06-07,Goodhue,Minnesota,27049,77,7 +2020-06-08,Goodhue,Minnesota,27049,79,7 +2020-06-09,Goodhue,Minnesota,27049,83,7 +2020-06-10,Goodhue,Minnesota,27049,86,7 +2020-06-11,Goodhue,Minnesota,27049,86,7 +2020-06-12,Goodhue,Minnesota,27049,92,7 +2020-06-13,Goodhue,Minnesota,27049,93,7 +2020-06-14,Goodhue,Minnesota,27049,94,7 +2020-06-15,Goodhue,Minnesota,27049,94,7 +2020-06-16,Goodhue,Minnesota,27049,94,7 +2020-06-17,Goodhue,Minnesota,27049,97,7 +2020-06-18,Goodhue,Minnesota,27049,98,7 +2020-06-19,Goodhue,Minnesota,27049,101,7 +2020-06-20,Goodhue,Minnesota,27049,102,7 +2020-06-21,Goodhue,Minnesota,27049,105,7 +2020-06-22,Goodhue,Minnesota,27049,107,7 +2020-06-23,Goodhue,Minnesota,27049,108,8 +2020-06-24,Goodhue,Minnesota,27049,109,8 +2020-06-25,Goodhue,Minnesota,27049,109,8 +2020-06-26,Goodhue,Minnesota,27049,111,8 +2020-06-27,Goodhue,Minnesota,27049,113,8 +2020-06-28,Goodhue,Minnesota,27049,117,8 +2020-06-29,Goodhue,Minnesota,27049,117,8 +2020-06-30,Goodhue,Minnesota,27049,119,8 +2020-07-01,Goodhue,Minnesota,27049,124,8 +2020-07-02,Goodhue,Minnesota,27049,127,8 +2020-07-03,Goodhue,Minnesota,27049,129,8 +2020-07-04,Goodhue,Minnesota,27049,129,8 +2020-07-05,Goodhue,Minnesota,27049,130,8 +2020-07-06,Goodhue,Minnesota,27049,131,8 +2020-07-07,Goodhue,Minnesota,27049,131,8 +2020-07-08,Goodhue,Minnesota,27049,132,8 +2020-07-09,Goodhue,Minnesota,27049,137,8 +2020-05-02,Grant,Minnesota,27051,1,0 +2020-05-03,Grant,Minnesota,27051,1,0 +2020-05-04,Grant,Minnesota,27051,1,0 +2020-05-05,Grant,Minnesota,27051,1,0 +2020-05-06,Grant,Minnesota,27051,1,0 +2020-05-07,Grant,Minnesota,27051,1,0 +2020-05-08,Grant,Minnesota,27051,2,0 +2020-05-09,Grant,Minnesota,27051,2,0 +2020-05-10,Grant,Minnesota,27051,2,0 +2020-05-11,Grant,Minnesota,27051,2,0 +2020-05-12,Grant,Minnesota,27051,2,0 +2020-05-13,Grant,Minnesota,27051,2,0 +2020-05-14,Grant,Minnesota,27051,2,0 +2020-05-15,Grant,Minnesota,27051,2,0 +2020-05-16,Grant,Minnesota,27051,2,0 +2020-05-17,Grant,Minnesota,27051,2,0 +2020-05-18,Grant,Minnesota,27051,2,0 +2020-05-19,Grant,Minnesota,27051,2,0 +2020-05-20,Grant,Minnesota,27051,2,0 +2020-05-21,Grant,Minnesota,27051,2,0 +2020-05-22,Grant,Minnesota,27051,2,0 +2020-05-23,Grant,Minnesota,27051,2,0 +2020-05-24,Grant,Minnesota,27051,2,0 +2020-05-25,Grant,Minnesota,27051,2,0 +2020-05-26,Grant,Minnesota,27051,3,0 +2020-05-27,Grant,Minnesota,27051,3,0 +2020-05-28,Grant,Minnesota,27051,3,0 +2020-05-29,Grant,Minnesota,27051,4,0 +2020-05-30,Grant,Minnesota,27051,4,0 +2020-05-31,Grant,Minnesota,27051,4,0 +2020-06-01,Grant,Minnesota,27051,4,0 +2020-06-02,Grant,Minnesota,27051,4,0 +2020-06-03,Grant,Minnesota,27051,4,0 +2020-06-04,Grant,Minnesota,27051,4,0 +2020-06-05,Grant,Minnesota,27051,4,0 +2020-06-06,Grant,Minnesota,27051,4,0 +2020-06-07,Grant,Minnesota,27051,5,0 +2020-06-08,Grant,Minnesota,27051,5,0 +2020-06-09,Grant,Minnesota,27051,5,0 +2020-06-10,Grant,Minnesota,27051,6,0 +2020-06-11,Grant,Minnesota,27051,6,0 +2020-06-12,Grant,Minnesota,27051,6,0 +2020-06-13,Grant,Minnesota,27051,6,0 +2020-06-14,Grant,Minnesota,27051,6,0 +2020-06-15,Grant,Minnesota,27051,6,0 +2020-06-16,Grant,Minnesota,27051,6,0 +2020-06-17,Grant,Minnesota,27051,6,0 +2020-06-18,Grant,Minnesota,27051,6,0 +2020-06-19,Grant,Minnesota,27051,6,0 +2020-06-20,Grant,Minnesota,27051,6,0 +2020-06-21,Grant,Minnesota,27051,6,0 +2020-06-22,Grant,Minnesota,27051,6,0 +2020-06-23,Grant,Minnesota,27051,6,0 +2020-06-24,Grant,Minnesota,27051,6,0 +2020-06-25,Grant,Minnesota,27051,6,0 +2020-06-26,Grant,Minnesota,27051,6,0 +2020-06-27,Grant,Minnesota,27051,6,0 +2020-06-28,Grant,Minnesota,27051,6,0 +2020-06-29,Grant,Minnesota,27051,6,0 +2020-06-30,Grant,Minnesota,27051,6,0 +2020-07-01,Grant,Minnesota,27051,8,0 +2020-07-02,Grant,Minnesota,27051,10,0 +2020-07-03,Grant,Minnesota,27051,10,0 +2020-07-04,Grant,Minnesota,27051,10,0 +2020-07-05,Grant,Minnesota,27051,11,0 +2020-07-06,Grant,Minnesota,27051,12,0 +2020-07-07,Grant,Minnesota,27051,17,0 +2020-07-08,Grant,Minnesota,27051,17,0 +2020-07-09,Grant,Minnesota,27051,22,0 +2020-03-12,Hennepin,Minnesota,27053,1,0 +2020-03-13,Hennepin,Minnesota,27053,3,0 +2020-03-14,Hennepin,Minnesota,27053,6,0 +2020-03-15,Hennepin,Minnesota,27053,12,0 +2020-03-16,Hennepin,Minnesota,27053,26,0 +2020-03-17,Hennepin,Minnesota,27053,26,0 +2020-03-18,Hennepin,Minnesota,27053,33,0 +2020-03-19,Hennepin,Minnesota,27053,33,0 +2020-03-20,Hennepin,Minnesota,27053,44,0 +2020-03-21,Hennepin,Minnesota,27053,52,0 +2020-03-22,Hennepin,Minnesota,27053,57,0 +2020-03-23,Hennepin,Minnesota,27053,89,0 +2020-03-24,Hennepin,Minnesota,27053,103,0 +2020-03-25,Hennepin,Minnesota,27053,111,0 +2020-03-26,Hennepin,Minnesota,27053,128,0 +2020-03-27,Hennepin,Minnesota,27053,141,1 +2020-03-28,Hennepin,Minnesota,27053,152,2 +2020-03-29,Hennepin,Minnesota,27053,171,5 +2020-03-30,Hennepin,Minnesota,27053,190,6 +2020-03-31,Hennepin,Minnesota,27053,204,6 +2020-04-01,Hennepin,Minnesota,27053,218,6 +2020-04-02,Hennepin,Minnesota,27053,235,6 +2020-04-03,Hennepin,Minnesota,27053,242,9 +2020-04-04,Hennepin,Minnesota,27053,252,9 +2020-04-05,Hennepin,Minnesota,27053,267,11 +2020-04-06,Hennepin,Minnesota,27053,280,14 +2020-04-07,Hennepin,Minnesota,27053,310,16 +2020-04-08,Hennepin,Minnesota,27053,344,18 +2020-04-09,Hennepin,Minnesota,27053,375,25 +2020-04-10,Hennepin,Minnesota,27053,415,27 +2020-04-11,Hennepin,Minnesota,27053,464,30 +2020-04-12,Hennepin,Minnesota,27053,557,34 +2020-04-13,Hennepin,Minnesota,27053,557,34 +2020-04-14,Hennepin,Minnesota,27053,588,40 +2020-04-15,Hennepin,Minnesota,27053,651,46 +2020-04-16,Hennepin,Minnesota,27053,706,52 +2020-04-17,Hennepin,Minnesota,27053,806,61 +2020-04-18,Hennepin,Minnesota,27053,875,69 +2020-04-19,Hennepin,Minnesota,27053,924,75 +2020-04-20,Hennepin,Minnesota,27053,975,80 +2020-04-21,Hennepin,Minnesota,27053,1013,95 +2020-04-22,Hennepin,Minnesota,27053,1073,113 +2020-04-23,Hennepin,Minnesota,27053,1132,123 +2020-04-24,Hennepin,Minnesota,27053,1200,138 +2020-04-25,Hennepin,Minnesota,27053,1287,155 +2020-04-26,Hennepin,Minnesota,27053,1332,177 +2020-04-27,Hennepin,Minnesota,27053,1416,188 +2020-04-28,Hennepin,Minnesota,27053,1524,193 +2020-04-29,Hennepin,Minnesota,27053,1633,209 +2020-04-30,Hennepin,Minnesota,27053,1738,225 +2020-05-01,Hennepin,Minnesota,27053,1829,243 +2020-05-02,Hennepin,Minnesota,27053,1980,259 +2020-05-03,Hennepin,Minnesota,27053,2151,277 +2020-05-04,Hennepin,Minnesota,27053,2298,284 +2020-05-05,Hennepin,Minnesota,27053,2519,303 +2020-05-06,Hennepin,Minnesota,27053,2764,325 +2020-05-07,Hennepin,Minnesota,27053,2962,342 +2020-05-08,Hennepin,Minnesota,27053,3153,362 +2020-05-09,Hennepin,Minnesota,27053,3379,374 +2020-05-10,Hennepin,Minnesota,27053,3558,389 +2020-05-11,Hennepin,Minnesota,27053,3744,398 +2020-05-12,Hennepin,Minnesota,27053,4033,412 +2020-05-13,Hennepin,Minnesota,27053,4033,412 +2020-05-14,Hennepin,Minnesota,27053,4331,441 +2020-05-15,Hennepin,Minnesota,27053,4674,449 +2020-05-16,Hennepin,Minnesota,27053,4930,454 +2020-05-17,Hennepin,Minnesota,27053,5158,462 +2020-05-18,Hennepin,Minnesota,27053,5409,467 +2020-05-19,Hennepin,Minnesota,27053,5650,476 +2020-05-20,Hennepin,Minnesota,27053,5838,485 +2020-05-21,Hennepin,Minnesota,27053,6029,502 +2020-05-22,Hennepin,Minnesota,27053,6350,518 +2020-05-23,Hennepin,Minnesota,27053,6649,524 +2020-05-24,Hennepin,Minnesota,27053,6918,534 +2020-05-25,Hennepin,Minnesota,27053,7168,539 +2020-05-26,Hennepin,Minnesota,27053,7421,549 +2020-05-27,Hennepin,Minnesota,27053,7540,565 +2020-05-28,Hennepin,Minnesota,27053,7695,581 +2020-05-29,Hennepin,Minnesota,27053,7932,593 +2020-05-30,Hennepin,Minnesota,27053,8181,606 +2020-05-31,Hennepin,Minnesota,27053,8393,613 +2020-06-01,Hennepin,Minnesota,27053,8514,616 +2020-06-02,Hennepin,Minnesota,27053,8591,627 +2020-06-03,Hennepin,Minnesota,27053,8738,633 +2020-06-04,Hennepin,Minnesota,27053,8867,641 +2020-06-05,Hennepin,Minnesota,27053,9099,657 +2020-06-06,Hennepin,Minnesota,27053,9255,667 +2020-06-07,Hennepin,Minnesota,27053,9372,676 +2020-06-08,Hennepin,Minnesota,27053,9480,681 +2020-06-09,Hennepin,Minnesota,27053,9567,686 +2020-06-10,Hennepin,Minnesota,27053,9674,693 +2020-06-11,Hennepin,Minnesota,27053,9815,700 +2020-06-12,Hennepin,Minnesota,27053,9934,708 +2020-06-13,Hennepin,Minnesota,27053,10069,712 +2020-06-14,Hennepin,Minnesota,27053,10191,716 +2020-06-15,Hennepin,Minnesota,27053,10281,720 +2020-06-16,Hennepin,Minnesota,27053,10323,724 +2020-06-17,Hennepin,Minnesota,27053,10415,727 +2020-06-18,Hennepin,Minnesota,27053,10512,732 +2020-06-19,Hennepin,Minnesota,27053,10607,740 +2020-06-20,Hennepin,Minnesota,27053,10705,744 +2020-06-21,Hennepin,Minnesota,27053,10830,747 +2020-06-22,Hennepin,Minnesota,27053,10920,747 +2020-06-23,Hennepin,Minnesota,27053,10988,751 +2020-06-24,Hennepin,Minnesota,27053,11057,752 +2020-06-25,Hennepin,Minnesota,27053,11178,758 +2020-06-26,Hennepin,Minnesota,27053,11308,761 +2020-06-27,Hennepin,Minnesota,27053,11415,764 +2020-06-28,Hennepin,Minnesota,27053,11556,767 +2020-06-29,Hennepin,Minnesota,27053,11656,773 +2020-06-30,Hennepin,Minnesota,27053,11796,776 +2020-07-01,Hennepin,Minnesota,27053,11892,776 +2020-07-02,Hennepin,Minnesota,27053,12048,782 +2020-07-03,Hennepin,Minnesota,27053,12150,785 +2020-07-04,Hennepin,Minnesota,27053,12150,785 +2020-07-05,Hennepin,Minnesota,27053,12329,786 +2020-07-06,Hennepin,Minnesota,27053,12456,787 +2020-07-07,Hennepin,Minnesota,27053,12597,787 +2020-07-08,Hennepin,Minnesota,27053,12703,789 +2020-07-09,Hennepin,Minnesota,27053,12867,789 +2020-04-05,Houston,Minnesota,27055,1,0 +2020-04-06,Houston,Minnesota,27055,1,0 +2020-04-07,Houston,Minnesota,27055,1,0 +2020-04-08,Houston,Minnesota,27055,1,0 +2020-04-09,Houston,Minnesota,27055,1,0 +2020-04-10,Houston,Minnesota,27055,1,0 +2020-04-11,Houston,Minnesota,27055,1,0 +2020-04-12,Houston,Minnesota,27055,1,0 +2020-04-13,Houston,Minnesota,27055,1,0 +2020-04-14,Houston,Minnesota,27055,1,0 +2020-04-15,Houston,Minnesota,27055,1,0 +2020-04-16,Houston,Minnesota,27055,1,0 +2020-04-17,Houston,Minnesota,27055,1,0 +2020-04-18,Houston,Minnesota,27055,1,0 +2020-04-19,Houston,Minnesota,27055,1,0 +2020-04-20,Houston,Minnesota,27055,1,0 +2020-04-21,Houston,Minnesota,27055,1,0 +2020-04-22,Houston,Minnesota,27055,1,0 +2020-04-23,Houston,Minnesota,27055,1,0 +2020-04-24,Houston,Minnesota,27055,1,0 +2020-04-25,Houston,Minnesota,27055,1,0 +2020-04-26,Houston,Minnesota,27055,1,0 +2020-04-27,Houston,Minnesota,27055,1,0 +2020-04-28,Houston,Minnesota,27055,1,0 +2020-04-29,Houston,Minnesota,27055,1,0 +2020-04-30,Houston,Minnesota,27055,1,0 +2020-05-01,Houston,Minnesota,27055,1,0 +2020-05-02,Houston,Minnesota,27055,1,0 +2020-05-03,Houston,Minnesota,27055,1,0 +2020-05-04,Houston,Minnesota,27055,1,0 +2020-05-05,Houston,Minnesota,27055,1,0 +2020-05-06,Houston,Minnesota,27055,1,0 +2020-05-07,Houston,Minnesota,27055,2,0 +2020-05-08,Houston,Minnesota,27055,2,0 +2020-05-09,Houston,Minnesota,27055,2,0 +2020-05-10,Houston,Minnesota,27055,2,0 +2020-05-11,Houston,Minnesota,27055,2,0 +2020-05-12,Houston,Minnesota,27055,2,0 +2020-05-13,Houston,Minnesota,27055,2,0 +2020-05-14,Houston,Minnesota,27055,2,0 +2020-05-15,Houston,Minnesota,27055,2,0 +2020-05-16,Houston,Minnesota,27055,2,0 +2020-05-17,Houston,Minnesota,27055,2,0 +2020-05-18,Houston,Minnesota,27055,2,0 +2020-05-19,Houston,Minnesota,27055,2,0 +2020-05-20,Houston,Minnesota,27055,2,0 +2020-05-21,Houston,Minnesota,27055,2,0 +2020-05-22,Houston,Minnesota,27055,2,0 +2020-05-23,Houston,Minnesota,27055,2,0 +2020-05-24,Houston,Minnesota,27055,2,0 +2020-05-25,Houston,Minnesota,27055,2,0 +2020-05-26,Houston,Minnesota,27055,2,0 +2020-05-27,Houston,Minnesota,27055,2,0 +2020-05-28,Houston,Minnesota,27055,2,0 +2020-05-29,Houston,Minnesota,27055,2,0 +2020-05-30,Houston,Minnesota,27055,2,0 +2020-05-31,Houston,Minnesota,27055,2,0 +2020-06-01,Houston,Minnesota,27055,2,0 +2020-06-02,Houston,Minnesota,27055,2,0 +2020-06-03,Houston,Minnesota,27055,2,0 +2020-06-04,Houston,Minnesota,27055,2,0 +2020-06-05,Houston,Minnesota,27055,3,0 +2020-06-06,Houston,Minnesota,27055,3,0 +2020-06-07,Houston,Minnesota,27055,3,0 +2020-06-08,Houston,Minnesota,27055,4,0 +2020-06-09,Houston,Minnesota,27055,5,0 +2020-06-10,Houston,Minnesota,27055,5,0 +2020-06-11,Houston,Minnesota,27055,5,0 +2020-06-12,Houston,Minnesota,27055,5,0 +2020-06-13,Houston,Minnesota,27055,5,0 +2020-06-14,Houston,Minnesota,27055,5,0 +2020-06-15,Houston,Minnesota,27055,5,0 +2020-06-16,Houston,Minnesota,27055,5,0 +2020-06-17,Houston,Minnesota,27055,7,0 +2020-06-18,Houston,Minnesota,27055,8,0 +2020-06-19,Houston,Minnesota,27055,7,0 +2020-06-20,Houston,Minnesota,27055,10,0 +2020-06-21,Houston,Minnesota,27055,13,0 +2020-06-22,Houston,Minnesota,27055,13,0 +2020-06-23,Houston,Minnesota,27055,15,0 +2020-06-24,Houston,Minnesota,27055,15,0 +2020-06-25,Houston,Minnesota,27055,16,0 +2020-06-26,Houston,Minnesota,27055,17,0 +2020-06-27,Houston,Minnesota,27055,20,0 +2020-06-28,Houston,Minnesota,27055,21,0 +2020-06-29,Houston,Minnesota,27055,23,0 +2020-06-30,Houston,Minnesota,27055,24,0 +2020-07-01,Houston,Minnesota,27055,24,0 +2020-07-02,Houston,Minnesota,27055,25,0 +2020-07-03,Houston,Minnesota,27055,25,0 +2020-07-04,Houston,Minnesota,27055,25,0 +2020-07-05,Houston,Minnesota,27055,25,0 +2020-07-06,Houston,Minnesota,27055,26,0 +2020-07-07,Houston,Minnesota,27055,27,0 +2020-07-08,Houston,Minnesota,27055,28,0 +2020-07-09,Houston,Minnesota,27055,29,0 +2020-05-23,Hubbard,Minnesota,27057,1,0 +2020-05-24,Hubbard,Minnesota,27057,1,0 +2020-05-25,Hubbard,Minnesota,27057,1,0 +2020-05-26,Hubbard,Minnesota,27057,1,0 +2020-05-27,Hubbard,Minnesota,27057,1,0 +2020-05-28,Hubbard,Minnesota,27057,1,0 +2020-05-29,Hubbard,Minnesota,27057,2,0 +2020-05-30,Hubbard,Minnesota,27057,3,0 +2020-05-31,Hubbard,Minnesota,27057,2,0 +2020-06-01,Hubbard,Minnesota,27057,2,0 +2020-06-02,Hubbard,Minnesota,27057,3,0 +2020-06-03,Hubbard,Minnesota,27057,3,0 +2020-06-04,Hubbard,Minnesota,27057,3,0 +2020-06-05,Hubbard,Minnesota,27057,3,0 +2020-06-06,Hubbard,Minnesota,27057,3,0 +2020-06-07,Hubbard,Minnesota,27057,4,0 +2020-06-08,Hubbard,Minnesota,27057,5,0 +2020-06-09,Hubbard,Minnesota,27057,5,0 +2020-06-10,Hubbard,Minnesota,27057,5,0 +2020-06-11,Hubbard,Minnesota,27057,5,0 +2020-06-12,Hubbard,Minnesota,27057,5,0 +2020-06-13,Hubbard,Minnesota,27057,5,0 +2020-06-14,Hubbard,Minnesota,27057,5,0 +2020-06-15,Hubbard,Minnesota,27057,5,0 +2020-06-16,Hubbard,Minnesota,27057,5,0 +2020-06-17,Hubbard,Minnesota,27057,5,0 +2020-06-18,Hubbard,Minnesota,27057,5,0 +2020-06-19,Hubbard,Minnesota,27057,5,0 +2020-06-20,Hubbard,Minnesota,27057,5,0 +2020-06-21,Hubbard,Minnesota,27057,5,0 +2020-06-22,Hubbard,Minnesota,27057,5,0 +2020-06-23,Hubbard,Minnesota,27057,5,0 +2020-06-24,Hubbard,Minnesota,27057,5,0 +2020-06-25,Hubbard,Minnesota,27057,5,0 +2020-06-26,Hubbard,Minnesota,27057,5,0 +2020-06-27,Hubbard,Minnesota,27057,5,0 +2020-06-28,Hubbard,Minnesota,27057,5,0 +2020-06-29,Hubbard,Minnesota,27057,5,0 +2020-06-30,Hubbard,Minnesota,27057,5,0 +2020-07-01,Hubbard,Minnesota,27057,5,0 +2020-07-02,Hubbard,Minnesota,27057,5,0 +2020-07-03,Hubbard,Minnesota,27057,6,0 +2020-07-04,Hubbard,Minnesota,27057,6,0 +2020-07-05,Hubbard,Minnesota,27057,6,0 +2020-07-06,Hubbard,Minnesota,27057,7,0 +2020-07-07,Hubbard,Minnesota,27057,8,0 +2020-07-08,Hubbard,Minnesota,27057,8,0 +2020-07-09,Hubbard,Minnesota,27057,8,0 +2020-03-29,Isanti,Minnesota,27059,1,0 +2020-03-30,Isanti,Minnesota,27059,2,0 +2020-03-31,Isanti,Minnesota,27059,2,0 +2020-04-01,Isanti,Minnesota,27059,2,0 +2020-04-02,Isanti,Minnesota,27059,2,0 +2020-04-03,Isanti,Minnesota,27059,2,0 +2020-04-04,Isanti,Minnesota,27059,3,0 +2020-04-05,Isanti,Minnesota,27059,4,0 +2020-04-06,Isanti,Minnesota,27059,4,0 +2020-04-07,Isanti,Minnesota,27059,4,0 +2020-04-08,Isanti,Minnesota,27059,4,0 +2020-04-09,Isanti,Minnesota,27059,4,0 +2020-04-10,Isanti,Minnesota,27059,4,0 +2020-04-11,Isanti,Minnesota,27059,4,0 +2020-04-12,Isanti,Minnesota,27059,4,0 +2020-04-13,Isanti,Minnesota,27059,4,0 +2020-04-14,Isanti,Minnesota,27059,4,0 +2020-04-15,Isanti,Minnesota,27059,4,0 +2020-04-16,Isanti,Minnesota,27059,4,0 +2020-04-17,Isanti,Minnesota,27059,4,0 +2020-04-18,Isanti,Minnesota,27059,5,0 +2020-04-19,Isanti,Minnesota,27059,5,0 +2020-04-20,Isanti,Minnesota,27059,6,0 +2020-04-21,Isanti,Minnesota,27059,6,0 +2020-04-22,Isanti,Minnesota,27059,6,0 +2020-04-23,Isanti,Minnesota,27059,6,0 +2020-04-24,Isanti,Minnesota,27059,6,0 +2020-04-25,Isanti,Minnesota,27059,7,0 +2020-04-26,Isanti,Minnesota,27059,6,0 +2020-04-27,Isanti,Minnesota,27059,6,0 +2020-04-28,Isanti,Minnesota,27059,6,0 +2020-04-29,Isanti,Minnesota,27059,6,0 +2020-04-30,Isanti,Minnesota,27059,6,0 +2020-05-01,Isanti,Minnesota,27059,6,0 +2020-05-02,Isanti,Minnesota,27059,6,0 +2020-05-03,Isanti,Minnesota,27059,6,0 +2020-05-04,Isanti,Minnesota,27059,6,0 +2020-05-05,Isanti,Minnesota,27059,6,0 +2020-05-06,Isanti,Minnesota,27059,7,0 +2020-05-07,Isanti,Minnesota,27059,7,0 +2020-05-08,Isanti,Minnesota,27059,7,0 +2020-05-09,Isanti,Minnesota,27059,7,0 +2020-05-10,Isanti,Minnesota,27059,7,0 +2020-05-11,Isanti,Minnesota,27059,8,0 +2020-05-12,Isanti,Minnesota,27059,10,0 +2020-05-13,Isanti,Minnesota,27059,10,0 +2020-05-14,Isanti,Minnesota,27059,11,0 +2020-05-15,Isanti,Minnesota,27059,16,0 +2020-05-16,Isanti,Minnesota,27059,17,0 +2020-05-17,Isanti,Minnesota,27059,20,0 +2020-05-18,Isanti,Minnesota,27059,19,0 +2020-05-19,Isanti,Minnesota,27059,19,0 +2020-05-20,Isanti,Minnesota,27059,20,0 +2020-05-21,Isanti,Minnesota,27059,20,0 +2020-05-22,Isanti,Minnesota,27059,21,0 +2020-05-23,Isanti,Minnesota,27059,24,0 +2020-05-24,Isanti,Minnesota,27059,25,0 +2020-05-25,Isanti,Minnesota,27059,28,0 +2020-05-26,Isanti,Minnesota,27059,30,0 +2020-05-27,Isanti,Minnesota,27059,33,0 +2020-05-28,Isanti,Minnesota,27059,32,0 +2020-05-29,Isanti,Minnesota,27059,32,0 +2020-05-30,Isanti,Minnesota,27059,32,0 +2020-05-31,Isanti,Minnesota,27059,35,0 +2020-06-01,Isanti,Minnesota,27059,35,0 +2020-06-02,Isanti,Minnesota,27059,35,0 +2020-06-03,Isanti,Minnesota,27059,35,0 +2020-06-04,Isanti,Minnesota,27059,36,0 +2020-06-05,Isanti,Minnesota,27059,36,0 +2020-06-06,Isanti,Minnesota,27059,37,0 +2020-06-07,Isanti,Minnesota,27059,39,0 +2020-06-08,Isanti,Minnesota,27059,41,0 +2020-06-09,Isanti,Minnesota,27059,43,0 +2020-06-10,Isanti,Minnesota,27059,44,0 +2020-06-11,Isanti,Minnesota,27059,48,0 +2020-06-12,Isanti,Minnesota,27059,48,0 +2020-06-13,Isanti,Minnesota,27059,49,0 +2020-06-14,Isanti,Minnesota,27059,49,0 +2020-06-15,Isanti,Minnesota,27059,50,0 +2020-06-16,Isanti,Minnesota,27059,50,0 +2020-06-17,Isanti,Minnesota,27059,50,0 +2020-06-18,Isanti,Minnesota,27059,51,0 +2020-06-19,Isanti,Minnesota,27059,52,0 +2020-06-20,Isanti,Minnesota,27059,53,0 +2020-06-21,Isanti,Minnesota,27059,55,0 +2020-06-22,Isanti,Minnesota,27059,56,0 +2020-06-23,Isanti,Minnesota,27059,56,0 +2020-06-24,Isanti,Minnesota,27059,56,0 +2020-06-25,Isanti,Minnesota,27059,56,0 +2020-06-26,Isanti,Minnesota,27059,56,0 +2020-06-27,Isanti,Minnesota,27059,58,0 +2020-06-28,Isanti,Minnesota,27059,60,0 +2020-06-29,Isanti,Minnesota,27059,61,0 +2020-06-30,Isanti,Minnesota,27059,61,0 +2020-07-01,Isanti,Minnesota,27059,64,0 +2020-07-02,Isanti,Minnesota,27059,65,0 +2020-07-03,Isanti,Minnesota,27059,72,0 +2020-07-04,Isanti,Minnesota,27059,72,0 +2020-07-05,Isanti,Minnesota,27059,72,0 +2020-07-06,Isanti,Minnesota,27059,73,0 +2020-07-07,Isanti,Minnesota,27059,75,0 +2020-07-08,Isanti,Minnesota,27059,76,0 +2020-07-09,Isanti,Minnesota,27059,78,0 +2020-03-30,Itasca,Minnesota,27061,1,0 +2020-03-31,Itasca,Minnesota,27061,1,0 +2020-04-01,Itasca,Minnesota,27061,1,0 +2020-04-02,Itasca,Minnesota,27061,2,0 +2020-04-03,Itasca,Minnesota,27061,2,0 +2020-04-04,Itasca,Minnesota,27061,2,0 +2020-04-05,Itasca,Minnesota,27061,2,0 +2020-04-06,Itasca,Minnesota,27061,2,0 +2020-04-07,Itasca,Minnesota,27061,2,0 +2020-04-08,Itasca,Minnesota,27061,2,0 +2020-04-09,Itasca,Minnesota,27061,2,0 +2020-04-10,Itasca,Minnesota,27061,2,0 +2020-04-11,Itasca,Minnesota,27061,2,0 +2020-04-12,Itasca,Minnesota,27061,2,0 +2020-04-13,Itasca,Minnesota,27061,2,0 +2020-04-14,Itasca,Minnesota,27061,2,0 +2020-04-15,Itasca,Minnesota,27061,2,0 +2020-04-16,Itasca,Minnesota,27061,2,0 +2020-04-17,Itasca,Minnesota,27061,2,0 +2020-04-18,Itasca,Minnesota,27061,2,0 +2020-04-19,Itasca,Minnesota,27061,2,0 +2020-04-20,Itasca,Minnesota,27061,2,0 +2020-04-21,Itasca,Minnesota,27061,2,0 +2020-04-22,Itasca,Minnesota,27061,2,0 +2020-04-23,Itasca,Minnesota,27061,2,0 +2020-04-24,Itasca,Minnesota,27061,2,0 +2020-04-25,Itasca,Minnesota,27061,2,0 +2020-04-26,Itasca,Minnesota,27061,2,0 +2020-04-27,Itasca,Minnesota,27061,2,0 +2020-04-28,Itasca,Minnesota,27061,2,0 +2020-04-29,Itasca,Minnesota,27061,3,0 +2020-04-30,Itasca,Minnesota,27061,5,0 +2020-05-01,Itasca,Minnesota,27061,6,0 +2020-05-02,Itasca,Minnesota,27061,7,0 +2020-05-03,Itasca,Minnesota,27061,11,0 +2020-05-04,Itasca,Minnesota,27061,12,0 +2020-05-05,Itasca,Minnesota,27061,13,0 +2020-05-06,Itasca,Minnesota,27061,24,0 +2020-05-07,Itasca,Minnesota,27061,24,0 +2020-05-08,Itasca,Minnesota,27061,24,0 +2020-05-09,Itasca,Minnesota,27061,25,0 +2020-05-10,Itasca,Minnesota,27061,28,0 +2020-05-11,Itasca,Minnesota,27061,33,0 +2020-05-12,Itasca,Minnesota,27061,35,2 +2020-05-13,Itasca,Minnesota,27061,35,2 +2020-05-14,Itasca,Minnesota,27061,41,2 +2020-05-15,Itasca,Minnesota,27061,42,4 +2020-05-16,Itasca,Minnesota,27061,43,4 +2020-05-17,Itasca,Minnesota,27061,46,5 +2020-05-18,Itasca,Minnesota,27061,49,5 +2020-05-19,Itasca,Minnesota,27061,49,6 +2020-05-20,Itasca,Minnesota,27061,50,6 +2020-05-21,Itasca,Minnesota,27061,51,6 +2020-05-22,Itasca,Minnesota,27061,51,6 +2020-05-23,Itasca,Minnesota,27061,51,6 +2020-05-24,Itasca,Minnesota,27061,52,7 +2020-05-25,Itasca,Minnesota,27061,53,7 +2020-05-26,Itasca,Minnesota,27061,53,7 +2020-05-27,Itasca,Minnesota,27061,53,7 +2020-05-28,Itasca,Minnesota,27061,54,8 +2020-05-29,Itasca,Minnesota,27061,54,9 +2020-05-30,Itasca,Minnesota,27061,54,10 +2020-05-31,Itasca,Minnesota,27061,54,10 +2020-06-01,Itasca,Minnesota,27061,55,10 +2020-06-02,Itasca,Minnesota,27061,55,10 +2020-06-03,Itasca,Minnesota,27061,56,10 +2020-06-04,Itasca,Minnesota,27061,56,10 +2020-06-05,Itasca,Minnesota,27061,56,10 +2020-06-06,Itasca,Minnesota,27061,56,10 +2020-06-07,Itasca,Minnesota,27061,56,11 +2020-06-08,Itasca,Minnesota,27061,56,11 +2020-06-09,Itasca,Minnesota,27061,57,11 +2020-06-10,Itasca,Minnesota,27061,58,12 +2020-06-11,Itasca,Minnesota,27061,58,12 +2020-06-12,Itasca,Minnesota,27061,58,12 +2020-06-13,Itasca,Minnesota,27061,58,12 +2020-06-14,Itasca,Minnesota,27061,59,12 +2020-06-15,Itasca,Minnesota,27061,59,12 +2020-06-16,Itasca,Minnesota,27061,59,12 +2020-06-17,Itasca,Minnesota,27061,59,12 +2020-06-18,Itasca,Minnesota,27061,59,12 +2020-06-19,Itasca,Minnesota,27061,59,12 +2020-06-20,Itasca,Minnesota,27061,59,12 +2020-06-21,Itasca,Minnesota,27061,59,12 +2020-06-22,Itasca,Minnesota,27061,59,12 +2020-06-23,Itasca,Minnesota,27061,59,12 +2020-06-24,Itasca,Minnesota,27061,60,12 +2020-06-25,Itasca,Minnesota,27061,63,12 +2020-06-26,Itasca,Minnesota,27061,63,12 +2020-06-27,Itasca,Minnesota,27061,64,12 +2020-06-28,Itasca,Minnesota,27061,64,12 +2020-06-29,Itasca,Minnesota,27061,64,12 +2020-06-30,Itasca,Minnesota,27061,65,12 +2020-07-01,Itasca,Minnesota,27061,65,12 +2020-07-02,Itasca,Minnesota,27061,64,12 +2020-07-03,Itasca,Minnesota,27061,64,12 +2020-07-04,Itasca,Minnesota,27061,64,12 +2020-07-05,Itasca,Minnesota,27061,64,12 +2020-07-06,Itasca,Minnesota,27061,64,12 +2020-07-07,Itasca,Minnesota,27061,64,12 +2020-07-08,Itasca,Minnesota,27061,65,12 +2020-07-09,Itasca,Minnesota,27061,68,12 +2020-03-21,Jackson,Minnesota,27063,1,0 +2020-03-22,Jackson,Minnesota,27063,1,0 +2020-03-23,Jackson,Minnesota,27063,1,0 +2020-03-24,Jackson,Minnesota,27063,1,0 +2020-03-25,Jackson,Minnesota,27063,1,0 +2020-03-26,Jackson,Minnesota,27063,1,0 +2020-03-27,Jackson,Minnesota,27063,1,0 +2020-03-28,Jackson,Minnesota,27063,1,0 +2020-03-29,Jackson,Minnesota,27063,1,0 +2020-03-30,Jackson,Minnesota,27063,1,0 +2020-03-31,Jackson,Minnesota,27063,1,0 +2020-04-01,Jackson,Minnesota,27063,1,0 +2020-04-02,Jackson,Minnesota,27063,1,0 +2020-04-03,Jackson,Minnesota,27063,1,0 +2020-04-04,Jackson,Minnesota,27063,1,0 +2020-04-05,Jackson,Minnesota,27063,1,0 +2020-04-06,Jackson,Minnesota,27063,1,0 +2020-04-07,Jackson,Minnesota,27063,1,0 +2020-04-08,Jackson,Minnesota,27063,1,0 +2020-04-09,Jackson,Minnesota,27063,1,0 +2020-04-10,Jackson,Minnesota,27063,1,0 +2020-04-11,Jackson,Minnesota,27063,1,0 +2020-04-12,Jackson,Minnesota,27063,1,0 +2020-04-13,Jackson,Minnesota,27063,1,0 +2020-04-14,Jackson,Minnesota,27063,1,0 +2020-04-15,Jackson,Minnesota,27063,1,0 +2020-04-16,Jackson,Minnesota,27063,1,0 +2020-04-17,Jackson,Minnesota,27063,1,0 +2020-04-18,Jackson,Minnesota,27063,2,0 +2020-04-19,Jackson,Minnesota,27063,2,0 +2020-04-20,Jackson,Minnesota,27063,2,0 +2020-04-21,Jackson,Minnesota,27063,2,0 +2020-04-22,Jackson,Minnesota,27063,3,0 +2020-04-23,Jackson,Minnesota,27063,5,0 +2020-04-24,Jackson,Minnesota,27063,6,0 +2020-04-25,Jackson,Minnesota,27063,7,0 +2020-04-26,Jackson,Minnesota,27063,7,0 +2020-04-27,Jackson,Minnesota,27063,8,0 +2020-04-28,Jackson,Minnesota,27063,9,0 +2020-04-29,Jackson,Minnesota,27063,12,0 +2020-04-30,Jackson,Minnesota,27063,14,0 +2020-05-01,Jackson,Minnesota,27063,16,0 +2020-05-02,Jackson,Minnesota,27063,18,0 +2020-05-03,Jackson,Minnesota,27063,18,0 +2020-05-04,Jackson,Minnesota,27063,24,0 +2020-05-05,Jackson,Minnesota,27063,25,0 +2020-05-06,Jackson,Minnesota,27063,25,0 +2020-05-07,Jackson,Minnesota,27063,29,0 +2020-05-08,Jackson,Minnesota,27063,29,0 +2020-05-09,Jackson,Minnesota,27063,31,0 +2020-05-10,Jackson,Minnesota,27063,32,0 +2020-05-11,Jackson,Minnesota,27063,33,0 +2020-05-12,Jackson,Minnesota,27063,33,0 +2020-05-13,Jackson,Minnesota,27063,33,0 +2020-05-14,Jackson,Minnesota,27063,34,0 +2020-05-15,Jackson,Minnesota,27063,34,0 +2020-05-16,Jackson,Minnesota,27063,35,0 +2020-05-17,Jackson,Minnesota,27063,36,0 +2020-05-18,Jackson,Minnesota,27063,36,0 +2020-05-19,Jackson,Minnesota,27063,36,0 +2020-05-20,Jackson,Minnesota,27063,36,0 +2020-05-21,Jackson,Minnesota,27063,36,0 +2020-05-22,Jackson,Minnesota,27063,37,0 +2020-05-23,Jackson,Minnesota,27063,38,0 +2020-05-24,Jackson,Minnesota,27063,39,0 +2020-05-25,Jackson,Minnesota,27063,39,0 +2020-05-26,Jackson,Minnesota,27063,39,0 +2020-05-27,Jackson,Minnesota,27063,39,0 +2020-05-28,Jackson,Minnesota,27063,39,0 +2020-05-29,Jackson,Minnesota,27063,39,0 +2020-05-30,Jackson,Minnesota,27063,39,0 +2020-05-31,Jackson,Minnesota,27063,39,0 +2020-06-01,Jackson,Minnesota,27063,39,0 +2020-06-02,Jackson,Minnesota,27063,40,0 +2020-06-03,Jackson,Minnesota,27063,40,0 +2020-06-04,Jackson,Minnesota,27063,42,0 +2020-06-05,Jackson,Minnesota,27063,42,0 +2020-06-06,Jackson,Minnesota,27063,42,0 +2020-06-07,Jackson,Minnesota,27063,42,0 +2020-06-08,Jackson,Minnesota,27063,42,0 +2020-06-09,Jackson,Minnesota,27063,42,0 +2020-06-10,Jackson,Minnesota,27063,43,0 +2020-06-11,Jackson,Minnesota,27063,43,0 +2020-06-12,Jackson,Minnesota,27063,43,0 +2020-06-13,Jackson,Minnesota,27063,46,0 +2020-06-14,Jackson,Minnesota,27063,46,0 +2020-06-15,Jackson,Minnesota,27063,48,0 +2020-06-16,Jackson,Minnesota,27063,48,0 +2020-06-17,Jackson,Minnesota,27063,48,0 +2020-06-18,Jackson,Minnesota,27063,50,0 +2020-06-19,Jackson,Minnesota,27063,50,0 +2020-06-20,Jackson,Minnesota,27063,50,0 +2020-06-21,Jackson,Minnesota,27063,52,0 +2020-06-22,Jackson,Minnesota,27063,53,0 +2020-06-23,Jackson,Minnesota,27063,53,0 +2020-06-24,Jackson,Minnesota,27063,53,0 +2020-06-25,Jackson,Minnesota,27063,53,0 +2020-06-26,Jackson,Minnesota,27063,53,0 +2020-06-27,Jackson,Minnesota,27063,53,0 +2020-06-28,Jackson,Minnesota,27063,54,0 +2020-06-29,Jackson,Minnesota,27063,54,0 +2020-06-30,Jackson,Minnesota,27063,54,0 +2020-07-01,Jackson,Minnesota,27063,54,0 +2020-07-02,Jackson,Minnesota,27063,55,0 +2020-07-03,Jackson,Minnesota,27063,55,0 +2020-07-04,Jackson,Minnesota,27063,55,0 +2020-07-05,Jackson,Minnesota,27063,55,0 +2020-07-06,Jackson,Minnesota,27063,55,0 +2020-07-07,Jackson,Minnesota,27063,55,0 +2020-07-08,Jackson,Minnesota,27063,55,0 +2020-07-09,Jackson,Minnesota,27063,57,0 +2020-05-01,Kanabec,Minnesota,27065,1,0 +2020-05-02,Kanabec,Minnesota,27065,1,0 +2020-05-03,Kanabec,Minnesota,27065,1,0 +2020-05-04,Kanabec,Minnesota,27065,1,0 +2020-05-05,Kanabec,Minnesota,27065,2,0 +2020-05-06,Kanabec,Minnesota,27065,2,0 +2020-05-07,Kanabec,Minnesota,27065,4,0 +2020-05-08,Kanabec,Minnesota,27065,5,0 +2020-05-09,Kanabec,Minnesota,27065,9,0 +2020-05-10,Kanabec,Minnesota,27065,9,0 +2020-05-11,Kanabec,Minnesota,27065,10,0 +2020-05-12,Kanabec,Minnesota,27065,10,0 +2020-05-13,Kanabec,Minnesota,27065,10,0 +2020-05-14,Kanabec,Minnesota,27065,10,0 +2020-05-15,Kanabec,Minnesota,27065,9,0 +2020-05-16,Kanabec,Minnesota,27065,9,0 +2020-05-17,Kanabec,Minnesota,27065,9,0 +2020-05-18,Kanabec,Minnesota,27065,9,0 +2020-05-19,Kanabec,Minnesota,27065,9,1 +2020-05-20,Kanabec,Minnesota,27065,9,1 +2020-05-21,Kanabec,Minnesota,27065,10,1 +2020-05-22,Kanabec,Minnesota,27065,11,1 +2020-05-23,Kanabec,Minnesota,27065,11,1 +2020-05-24,Kanabec,Minnesota,27065,11,1 +2020-05-25,Kanabec,Minnesota,27065,11,1 +2020-05-26,Kanabec,Minnesota,27065,11,1 +2020-05-27,Kanabec,Minnesota,27065,11,1 +2020-05-28,Kanabec,Minnesota,27065,11,1 +2020-05-29,Kanabec,Minnesota,27065,11,1 +2020-05-30,Kanabec,Minnesota,27065,11,1 +2020-05-31,Kanabec,Minnesota,27065,11,1 +2020-06-01,Kanabec,Minnesota,27065,11,1 +2020-06-02,Kanabec,Minnesota,27065,12,1 +2020-06-03,Kanabec,Minnesota,27065,12,1 +2020-06-04,Kanabec,Minnesota,27065,12,1 +2020-06-05,Kanabec,Minnesota,27065,12,1 +2020-06-06,Kanabec,Minnesota,27065,12,1 +2020-06-07,Kanabec,Minnesota,27065,12,1 +2020-06-08,Kanabec,Minnesota,27065,12,1 +2020-06-09,Kanabec,Minnesota,27065,12,1 +2020-06-10,Kanabec,Minnesota,27065,12,1 +2020-06-11,Kanabec,Minnesota,27065,13,1 +2020-06-12,Kanabec,Minnesota,27065,13,1 +2020-06-13,Kanabec,Minnesota,27065,13,1 +2020-06-14,Kanabec,Minnesota,27065,13,1 +2020-06-15,Kanabec,Minnesota,27065,13,1 +2020-06-16,Kanabec,Minnesota,27065,13,1 +2020-06-17,Kanabec,Minnesota,27065,13,1 +2020-06-18,Kanabec,Minnesota,27065,13,1 +2020-06-19,Kanabec,Minnesota,27065,13,1 +2020-06-20,Kanabec,Minnesota,27065,13,1 +2020-06-21,Kanabec,Minnesota,27065,13,1 +2020-06-22,Kanabec,Minnesota,27065,13,1 +2020-06-23,Kanabec,Minnesota,27065,13,1 +2020-06-24,Kanabec,Minnesota,27065,13,1 +2020-06-25,Kanabec,Minnesota,27065,13,1 +2020-06-26,Kanabec,Minnesota,27065,13,1 +2020-06-27,Kanabec,Minnesota,27065,13,1 +2020-06-28,Kanabec,Minnesota,27065,13,1 +2020-06-29,Kanabec,Minnesota,27065,14,1 +2020-06-30,Kanabec,Minnesota,27065,14,1 +2020-07-01,Kanabec,Minnesota,27065,14,1 +2020-07-02,Kanabec,Minnesota,27065,14,1 +2020-07-03,Kanabec,Minnesota,27065,14,1 +2020-07-04,Kanabec,Minnesota,27065,14,1 +2020-07-05,Kanabec,Minnesota,27065,14,1 +2020-07-06,Kanabec,Minnesota,27065,14,1 +2020-07-07,Kanabec,Minnesota,27065,15,1 +2020-07-08,Kanabec,Minnesota,27065,15,1 +2020-07-09,Kanabec,Minnesota,27065,16,1 +2020-03-26,Kandiyohi,Minnesota,27067,1,0 +2020-03-27,Kandiyohi,Minnesota,27067,1,0 +2020-03-28,Kandiyohi,Minnesota,27067,1,0 +2020-03-29,Kandiyohi,Minnesota,27067,1,0 +2020-03-30,Kandiyohi,Minnesota,27067,1,0 +2020-03-31,Kandiyohi,Minnesota,27067,2,0 +2020-04-01,Kandiyohi,Minnesota,27067,2,0 +2020-04-02,Kandiyohi,Minnesota,27067,2,0 +2020-04-03,Kandiyohi,Minnesota,27067,2,0 +2020-04-04,Kandiyohi,Minnesota,27067,2,0 +2020-04-05,Kandiyohi,Minnesota,27067,2,0 +2020-04-06,Kandiyohi,Minnesota,27067,2,0 +2020-04-07,Kandiyohi,Minnesota,27067,2,0 +2020-04-08,Kandiyohi,Minnesota,27067,2,0 +2020-04-09,Kandiyohi,Minnesota,27067,2,0 +2020-04-10,Kandiyohi,Minnesota,27067,2,0 +2020-04-11,Kandiyohi,Minnesota,27067,2,0 +2020-04-12,Kandiyohi,Minnesota,27067,2,0 +2020-04-13,Kandiyohi,Minnesota,27067,2,0 +2020-04-14,Kandiyohi,Minnesota,27067,2,0 +2020-04-15,Kandiyohi,Minnesota,27067,2,0 +2020-04-16,Kandiyohi,Minnesota,27067,2,0 +2020-04-17,Kandiyohi,Minnesota,27067,2,0 +2020-04-18,Kandiyohi,Minnesota,27067,2,0 +2020-04-19,Kandiyohi,Minnesota,27067,2,0 +2020-04-20,Kandiyohi,Minnesota,27067,3,0 +2020-04-21,Kandiyohi,Minnesota,27067,3,0 +2020-04-22,Kandiyohi,Minnesota,27067,3,0 +2020-04-23,Kandiyohi,Minnesota,27067,4,0 +2020-04-24,Kandiyohi,Minnesota,27067,12,0 +2020-04-25,Kandiyohi,Minnesota,27067,28,0 +2020-04-26,Kandiyohi,Minnesota,27067,35,0 +2020-04-27,Kandiyohi,Minnesota,27067,39,0 +2020-04-28,Kandiyohi,Minnesota,27067,64,1 +2020-04-29,Kandiyohi,Minnesota,27067,88,1 +2020-04-30,Kandiyohi,Minnesota,27067,91,1 +2020-05-01,Kandiyohi,Minnesota,27067,135,1 +2020-05-02,Kandiyohi,Minnesota,27067,145,1 +2020-05-03,Kandiyohi,Minnesota,27067,167,1 +2020-05-04,Kandiyohi,Minnesota,27067,188,1 +2020-05-05,Kandiyohi,Minnesota,27067,200,1 +2020-05-06,Kandiyohi,Minnesota,27067,211,1 +2020-05-07,Kandiyohi,Minnesota,27067,238,1 +2020-05-08,Kandiyohi,Minnesota,27067,261,1 +2020-05-09,Kandiyohi,Minnesota,27067,276,1 +2020-05-10,Kandiyohi,Minnesota,27067,284,1 +2020-05-11,Kandiyohi,Minnesota,27067,316,1 +2020-05-12,Kandiyohi,Minnesota,27067,367,1 +2020-05-13,Kandiyohi,Minnesota,27067,367,1 +2020-05-14,Kandiyohi,Minnesota,27067,386,1 +2020-05-15,Kandiyohi,Minnesota,27067,394,1 +2020-05-16,Kandiyohi,Minnesota,27067,405,1 +2020-05-17,Kandiyohi,Minnesota,27067,412,1 +2020-05-18,Kandiyohi,Minnesota,27067,415,1 +2020-05-19,Kandiyohi,Minnesota,27067,420,1 +2020-05-20,Kandiyohi,Minnesota,27067,426,1 +2020-05-21,Kandiyohi,Minnesota,27067,428,1 +2020-05-22,Kandiyohi,Minnesota,27067,443,1 +2020-05-23,Kandiyohi,Minnesota,27067,449,1 +2020-05-24,Kandiyohi,Minnesota,27067,454,1 +2020-05-25,Kandiyohi,Minnesota,27067,468,1 +2020-05-26,Kandiyohi,Minnesota,27067,471,1 +2020-05-27,Kandiyohi,Minnesota,27067,475,1 +2020-05-28,Kandiyohi,Minnesota,27067,476,1 +2020-05-29,Kandiyohi,Minnesota,27067,486,1 +2020-05-30,Kandiyohi,Minnesota,27067,490,1 +2020-05-31,Kandiyohi,Minnesota,27067,496,1 +2020-06-01,Kandiyohi,Minnesota,27067,497,1 +2020-06-02,Kandiyohi,Minnesota,27067,504,1 +2020-06-03,Kandiyohi,Minnesota,27067,505,1 +2020-06-04,Kandiyohi,Minnesota,27067,511,1 +2020-06-05,Kandiyohi,Minnesota,27067,514,1 +2020-06-06,Kandiyohi,Minnesota,27067,517,1 +2020-06-07,Kandiyohi,Minnesota,27067,521,1 +2020-06-08,Kandiyohi,Minnesota,27067,522,1 +2020-06-09,Kandiyohi,Minnesota,27067,526,1 +2020-06-10,Kandiyohi,Minnesota,27067,534,1 +2020-06-11,Kandiyohi,Minnesota,27067,540,1 +2020-06-12,Kandiyohi,Minnesota,27067,541,1 +2020-06-13,Kandiyohi,Minnesota,27067,544,1 +2020-06-14,Kandiyohi,Minnesota,27067,546,1 +2020-06-15,Kandiyohi,Minnesota,27067,546,1 +2020-06-16,Kandiyohi,Minnesota,27067,548,1 +2020-06-17,Kandiyohi,Minnesota,27067,552,1 +2020-06-18,Kandiyohi,Minnesota,27067,553,1 +2020-06-19,Kandiyohi,Minnesota,27067,554,1 +2020-06-20,Kandiyohi,Minnesota,27067,560,1 +2020-06-21,Kandiyohi,Minnesota,27067,560,1 +2020-06-22,Kandiyohi,Minnesota,27067,560,1 +2020-06-23,Kandiyohi,Minnesota,27067,561,1 +2020-06-24,Kandiyohi,Minnesota,27067,561,1 +2020-06-25,Kandiyohi,Minnesota,27067,564,1 +2020-06-26,Kandiyohi,Minnesota,27067,564,1 +2020-06-27,Kandiyohi,Minnesota,27067,564,1 +2020-06-28,Kandiyohi,Minnesota,27067,565,1 +2020-06-29,Kandiyohi,Minnesota,27067,565,1 +2020-06-30,Kandiyohi,Minnesota,27067,565,1 +2020-07-01,Kandiyohi,Minnesota,27067,565,1 +2020-07-02,Kandiyohi,Minnesota,27067,566,1 +2020-07-03,Kandiyohi,Minnesota,27067,570,1 +2020-07-04,Kandiyohi,Minnesota,27067,570,1 +2020-07-05,Kandiyohi,Minnesota,27067,573,1 +2020-07-06,Kandiyohi,Minnesota,27067,573,1 +2020-07-07,Kandiyohi,Minnesota,27067,578,1 +2020-07-08,Kandiyohi,Minnesota,27067,582,1 +2020-07-09,Kandiyohi,Minnesota,27067,584,1 +2020-04-18,Kittson,Minnesota,27069,1,0 +2020-04-19,Kittson,Minnesota,27069,1,0 +2020-04-20,Kittson,Minnesota,27069,1,0 +2020-04-21,Kittson,Minnesota,27069,1,0 +2020-04-22,Kittson,Minnesota,27069,1,0 +2020-04-23,Kittson,Minnesota,27069,1,0 +2020-04-24,Kittson,Minnesota,27069,1,0 +2020-04-25,Kittson,Minnesota,27069,1,0 +2020-04-26,Kittson,Minnesota,27069,1,0 +2020-04-27,Kittson,Minnesota,27069,1,0 +2020-04-28,Kittson,Minnesota,27069,1,0 +2020-04-29,Kittson,Minnesota,27069,1,0 +2020-04-30,Kittson,Minnesota,27069,1,0 +2020-05-01,Kittson,Minnesota,27069,1,0 +2020-05-02,Kittson,Minnesota,27069,1,0 +2020-05-03,Kittson,Minnesota,27069,1,0 +2020-05-04,Kittson,Minnesota,27069,1,0 +2020-05-05,Kittson,Minnesota,27069,1,0 +2020-05-06,Kittson,Minnesota,27069,1,0 +2020-05-07,Kittson,Minnesota,27069,1,0 +2020-05-08,Kittson,Minnesota,27069,1,0 +2020-05-09,Kittson,Minnesota,27069,1,0 +2020-05-10,Kittson,Minnesota,27069,1,0 +2020-05-11,Kittson,Minnesota,27069,1,0 +2020-05-12,Kittson,Minnesota,27069,1,0 +2020-05-13,Kittson,Minnesota,27069,1,0 +2020-05-14,Kittson,Minnesota,27069,1,0 +2020-05-15,Kittson,Minnesota,27069,1,0 +2020-05-16,Kittson,Minnesota,27069,1,0 +2020-05-17,Kittson,Minnesota,27069,1,0 +2020-05-18,Kittson,Minnesota,27069,1,0 +2020-05-19,Kittson,Minnesota,27069,1,0 +2020-05-20,Kittson,Minnesota,27069,1,0 +2020-05-21,Kittson,Minnesota,27069,1,0 +2020-05-22,Kittson,Minnesota,27069,1,0 +2020-05-23,Kittson,Minnesota,27069,1,0 +2020-05-24,Kittson,Minnesota,27069,1,0 +2020-05-25,Kittson,Minnesota,27069,1,0 +2020-05-26,Kittson,Minnesota,27069,1,0 +2020-05-27,Kittson,Minnesota,27069,1,0 +2020-05-28,Kittson,Minnesota,27069,1,0 +2020-05-29,Kittson,Minnesota,27069,1,0 +2020-05-30,Kittson,Minnesota,27069,1,0 +2020-05-31,Kittson,Minnesota,27069,1,0 +2020-06-01,Kittson,Minnesota,27069,1,0 +2020-06-02,Kittson,Minnesota,27069,1,0 +2020-06-03,Kittson,Minnesota,27069,1,0 +2020-06-04,Kittson,Minnesota,27069,1,0 +2020-06-05,Kittson,Minnesota,27069,1,0 +2020-06-06,Kittson,Minnesota,27069,1,0 +2020-06-07,Kittson,Minnesota,27069,1,0 +2020-06-08,Kittson,Minnesota,27069,1,0 +2020-06-09,Kittson,Minnesota,27069,1,0 +2020-06-10,Kittson,Minnesota,27069,1,0 +2020-06-11,Kittson,Minnesota,27069,1,0 +2020-06-12,Kittson,Minnesota,27069,1,0 +2020-06-13,Kittson,Minnesota,27069,1,0 +2020-06-14,Kittson,Minnesota,27069,1,0 +2020-06-15,Kittson,Minnesota,27069,1,0 +2020-06-16,Kittson,Minnesota,27069,1,0 +2020-06-17,Kittson,Minnesota,27069,1,0 +2020-06-18,Kittson,Minnesota,27069,1,0 +2020-06-19,Kittson,Minnesota,27069,1,0 +2020-06-20,Kittson,Minnesota,27069,1,0 +2020-06-21,Kittson,Minnesota,27069,1,0 +2020-06-22,Kittson,Minnesota,27069,1,0 +2020-06-23,Kittson,Minnesota,27069,1,0 +2020-06-24,Kittson,Minnesota,27069,1,0 +2020-06-25,Kittson,Minnesota,27069,1,0 +2020-06-26,Kittson,Minnesota,27069,2,0 +2020-06-27,Kittson,Minnesota,27069,2,0 +2020-06-28,Kittson,Minnesota,27069,2,0 +2020-06-29,Kittson,Minnesota,27069,2,0 +2020-06-30,Kittson,Minnesota,27069,2,0 +2020-07-01,Kittson,Minnesota,27069,2,0 +2020-07-02,Kittson,Minnesota,27069,2,0 +2020-07-03,Kittson,Minnesota,27069,2,0 +2020-07-04,Kittson,Minnesota,27069,2,0 +2020-07-05,Kittson,Minnesota,27069,2,0 +2020-07-06,Kittson,Minnesota,27069,2,0 +2020-07-07,Kittson,Minnesota,27069,2,0 +2020-07-08,Kittson,Minnesota,27069,2,0 +2020-07-09,Kittson,Minnesota,27069,2,0 +2020-04-02,Koochiching,Minnesota,27071,1,0 +2020-04-03,Koochiching,Minnesota,27071,1,0 +2020-04-04,Koochiching,Minnesota,27071,1,0 +2020-04-05,Koochiching,Minnesota,27071,1,0 +2020-04-06,Koochiching,Minnesota,27071,1,0 +2020-04-07,Koochiching,Minnesota,27071,1,0 +2020-04-08,Koochiching,Minnesota,27071,1,0 +2020-04-09,Koochiching,Minnesota,27071,1,0 +2020-04-10,Koochiching,Minnesota,27071,1,0 +2020-04-11,Koochiching,Minnesota,27071,1,0 +2020-04-12,Koochiching,Minnesota,27071,1,0 +2020-04-13,Koochiching,Minnesota,27071,1,0 +2020-04-14,Koochiching,Minnesota,27071,1,0 +2020-04-15,Koochiching,Minnesota,27071,1,0 +2020-04-16,Koochiching,Minnesota,27071,1,0 +2020-04-17,Koochiching,Minnesota,27071,1,0 +2020-04-18,Koochiching,Minnesota,27071,1,0 +2020-04-19,Koochiching,Minnesota,27071,1,0 +2020-04-20,Koochiching,Minnesota,27071,1,0 +2020-04-21,Koochiching,Minnesota,27071,1,0 +2020-04-22,Koochiching,Minnesota,27071,1,0 +2020-04-23,Koochiching,Minnesota,27071,1,0 +2020-04-24,Koochiching,Minnesota,27071,1,0 +2020-04-25,Koochiching,Minnesota,27071,1,0 +2020-04-26,Koochiching,Minnesota,27071,1,0 +2020-04-27,Koochiching,Minnesota,27071,1,0 +2020-04-28,Koochiching,Minnesota,27071,1,0 +2020-04-29,Koochiching,Minnesota,27071,1,0 +2020-04-30,Koochiching,Minnesota,27071,1,0 +2020-05-01,Koochiching,Minnesota,27071,1,0 +2020-05-02,Koochiching,Minnesota,27071,1,0 +2020-05-03,Koochiching,Minnesota,27071,1,0 +2020-05-04,Koochiching,Minnesota,27071,1,0 +2020-05-05,Koochiching,Minnesota,27071,1,0 +2020-05-06,Koochiching,Minnesota,27071,1,0 +2020-05-07,Koochiching,Minnesota,27071,1,0 +2020-05-08,Koochiching,Minnesota,27071,1,0 +2020-05-09,Koochiching,Minnesota,27071,1,0 +2020-05-10,Koochiching,Minnesota,27071,1,0 +2020-05-11,Koochiching,Minnesota,27071,2,0 +2020-05-12,Koochiching,Minnesota,27071,2,0 +2020-05-13,Koochiching,Minnesota,27071,2,0 +2020-05-14,Koochiching,Minnesota,27071,3,0 +2020-05-15,Koochiching,Minnesota,27071,3,0 +2020-05-16,Koochiching,Minnesota,27071,3,0 +2020-05-17,Koochiching,Minnesota,27071,3,0 +2020-05-18,Koochiching,Minnesota,27071,5,0 +2020-05-19,Koochiching,Minnesota,27071,5,0 +2020-05-20,Koochiching,Minnesota,27071,5,0 +2020-05-21,Koochiching,Minnesota,27071,4,0 +2020-05-22,Koochiching,Minnesota,27071,4,0 +2020-05-23,Koochiching,Minnesota,27071,4,0 +2020-05-24,Koochiching,Minnesota,27071,5,0 +2020-05-25,Koochiching,Minnesota,27071,6,0 +2020-05-26,Koochiching,Minnesota,27071,6,0 +2020-05-27,Koochiching,Minnesota,27071,7,0 +2020-05-28,Koochiching,Minnesota,27071,7,0 +2020-05-29,Koochiching,Minnesota,27071,7,0 +2020-05-30,Koochiching,Minnesota,27071,7,0 +2020-05-31,Koochiching,Minnesota,27071,8,0 +2020-06-01,Koochiching,Minnesota,27071,9,0 +2020-06-02,Koochiching,Minnesota,27071,9,0 +2020-06-03,Koochiching,Minnesota,27071,9,0 +2020-06-04,Koochiching,Minnesota,27071,9,0 +2020-06-05,Koochiching,Minnesota,27071,9,0 +2020-06-06,Koochiching,Minnesota,27071,9,0 +2020-06-07,Koochiching,Minnesota,27071,9,0 +2020-06-08,Koochiching,Minnesota,27071,9,0 +2020-06-09,Koochiching,Minnesota,27071,9,0 +2020-06-10,Koochiching,Minnesota,27071,9,0 +2020-06-11,Koochiching,Minnesota,27071,9,0 +2020-06-12,Koochiching,Minnesota,27071,9,0 +2020-06-13,Koochiching,Minnesota,27071,9,0 +2020-06-14,Koochiching,Minnesota,27071,9,0 +2020-06-15,Koochiching,Minnesota,27071,9,0 +2020-06-16,Koochiching,Minnesota,27071,9,0 +2020-06-17,Koochiching,Minnesota,27071,9,0 +2020-06-18,Koochiching,Minnesota,27071,9,0 +2020-06-19,Koochiching,Minnesota,27071,9,0 +2020-06-20,Koochiching,Minnesota,27071,9,0 +2020-06-21,Koochiching,Minnesota,27071,9,0 +2020-06-22,Koochiching,Minnesota,27071,9,0 +2020-06-23,Koochiching,Minnesota,27071,9,0 +2020-06-24,Koochiching,Minnesota,27071,9,0 +2020-06-25,Koochiching,Minnesota,27071,9,0 +2020-06-26,Koochiching,Minnesota,27071,10,0 +2020-06-27,Koochiching,Minnesota,27071,10,0 +2020-06-28,Koochiching,Minnesota,27071,12,1 +2020-06-29,Koochiching,Minnesota,27071,12,1 +2020-06-30,Koochiching,Minnesota,27071,13,1 +2020-07-01,Koochiching,Minnesota,27071,14,1 +2020-07-02,Koochiching,Minnesota,27071,14,1 +2020-07-03,Koochiching,Minnesota,27071,14,1 +2020-07-04,Koochiching,Minnesota,27071,14,1 +2020-07-05,Koochiching,Minnesota,27071,15,1 +2020-07-06,Koochiching,Minnesota,27071,15,1 +2020-07-07,Koochiching,Minnesota,27071,18,1 +2020-07-08,Koochiching,Minnesota,27071,17,1 +2020-07-09,Koochiching,Minnesota,27071,17,1 +2020-03-23,Lac qui Parle,Minnesota,27073,1,0 +2020-03-24,Lac qui Parle,Minnesota,27073,1,0 +2020-03-25,Lac qui Parle,Minnesota,27073,1,0 +2020-03-26,Lac qui Parle,Minnesota,27073,1,0 +2020-03-27,Lac qui Parle,Minnesota,27073,1,0 +2020-03-28,Lac qui Parle,Minnesota,27073,1,0 +2020-03-29,Lac qui Parle,Minnesota,27073,1,0 +2020-03-30,Lac qui Parle,Minnesota,27073,1,0 +2020-03-31,Lac qui Parle,Minnesota,27073,1,0 +2020-04-01,Lac qui Parle,Minnesota,27073,1,0 +2020-04-02,Lac qui Parle,Minnesota,27073,1,0 +2020-04-03,Lac qui Parle,Minnesota,27073,1,0 +2020-04-04,Lac qui Parle,Minnesota,27073,1,0 +2020-04-05,Lac qui Parle,Minnesota,27073,1,0 +2020-04-06,Lac qui Parle,Minnesota,27073,1,0 +2020-04-07,Lac qui Parle,Minnesota,27073,1,0 +2020-04-08,Lac qui Parle,Minnesota,27073,1,0 +2020-04-09,Lac qui Parle,Minnesota,27073,1,0 +2020-04-10,Lac qui Parle,Minnesota,27073,1,0 +2020-04-11,Lac qui Parle,Minnesota,27073,1,0 +2020-04-12,Lac qui Parle,Minnesota,27073,1,0 +2020-04-13,Lac qui Parle,Minnesota,27073,1,0 +2020-04-14,Lac qui Parle,Minnesota,27073,1,0 +2020-04-15,Lac qui Parle,Minnesota,27073,1,0 +2020-04-16,Lac qui Parle,Minnesota,27073,1,0 +2020-04-17,Lac qui Parle,Minnesota,27073,1,0 +2020-04-18,Lac qui Parle,Minnesota,27073,1,0 +2020-04-19,Lac qui Parle,Minnesota,27073,1,0 +2020-04-20,Lac qui Parle,Minnesota,27073,1,0 +2020-04-21,Lac qui Parle,Minnesota,27073,1,0 +2020-04-22,Lac qui Parle,Minnesota,27073,1,0 +2020-04-23,Lac qui Parle,Minnesota,27073,1,0 +2020-04-24,Lac qui Parle,Minnesota,27073,1,0 +2020-04-25,Lac qui Parle,Minnesota,27073,1,0 +2020-04-26,Lac qui Parle,Minnesota,27073,1,0 +2020-04-27,Lac qui Parle,Minnesota,27073,1,0 +2020-04-28,Lac qui Parle,Minnesota,27073,1,0 +2020-04-29,Lac qui Parle,Minnesota,27073,1,0 +2020-04-30,Lac qui Parle,Minnesota,27073,1,0 +2020-05-01,Lac qui Parle,Minnesota,27073,1,0 +2020-05-02,Lac qui Parle,Minnesota,27073,1,0 +2020-05-03,Lac qui Parle,Minnesota,27073,1,0 +2020-05-04,Lac qui Parle,Minnesota,27073,2,0 +2020-05-05,Lac qui Parle,Minnesota,27073,2,0 +2020-05-06,Lac qui Parle,Minnesota,27073,2,0 +2020-05-07,Lac qui Parle,Minnesota,27073,2,0 +2020-05-08,Lac qui Parle,Minnesota,27073,2,0 +2020-05-09,Lac qui Parle,Minnesota,27073,2,0 +2020-05-10,Lac qui Parle,Minnesota,27073,2,0 +2020-05-11,Lac qui Parle,Minnesota,27073,2,0 +2020-05-12,Lac qui Parle,Minnesota,27073,2,0 +2020-05-13,Lac qui Parle,Minnesota,27073,2,0 +2020-05-14,Lac qui Parle,Minnesota,27073,2,0 +2020-05-15,Lac qui Parle,Minnesota,27073,2,0 +2020-05-16,Lac qui Parle,Minnesota,27073,2,0 +2020-05-17,Lac qui Parle,Minnesota,27073,2,0 +2020-05-18,Lac qui Parle,Minnesota,27073,3,0 +2020-05-19,Lac qui Parle,Minnesota,27073,3,0 +2020-05-20,Lac qui Parle,Minnesota,27073,3,0 +2020-05-21,Lac qui Parle,Minnesota,27073,3,0 +2020-05-22,Lac qui Parle,Minnesota,27073,3,0 +2020-05-23,Lac qui Parle,Minnesota,27073,3,0 +2020-05-24,Lac qui Parle,Minnesota,27073,3,0 +2020-05-25,Lac qui Parle,Minnesota,27073,3,0 +2020-05-26,Lac qui Parle,Minnesota,27073,3,0 +2020-05-27,Lac qui Parle,Minnesota,27073,3,0 +2020-05-28,Lac qui Parle,Minnesota,27073,3,0 +2020-05-29,Lac qui Parle,Minnesota,27073,3,0 +2020-05-30,Lac qui Parle,Minnesota,27073,3,0 +2020-05-31,Lac qui Parle,Minnesota,27073,3,0 +2020-06-01,Lac qui Parle,Minnesota,27073,3,0 +2020-06-02,Lac qui Parle,Minnesota,27073,3,0 +2020-06-03,Lac qui Parle,Minnesota,27073,3,0 +2020-06-04,Lac qui Parle,Minnesota,27073,3,0 +2020-06-05,Lac qui Parle,Minnesota,27073,3,0 +2020-06-06,Lac qui Parle,Minnesota,27073,3,0 +2020-06-07,Lac qui Parle,Minnesota,27073,3,0 +2020-06-08,Lac qui Parle,Minnesota,27073,3,0 +2020-06-09,Lac qui Parle,Minnesota,27073,3,0 +2020-06-10,Lac qui Parle,Minnesota,27073,3,0 +2020-06-11,Lac qui Parle,Minnesota,27073,3,0 +2020-06-12,Lac qui Parle,Minnesota,27073,3,0 +2020-06-13,Lac qui Parle,Minnesota,27073,3,0 +2020-06-14,Lac qui Parle,Minnesota,27073,3,0 +2020-06-15,Lac qui Parle,Minnesota,27073,3,0 +2020-06-16,Lac qui Parle,Minnesota,27073,3,0 +2020-06-17,Lac qui Parle,Minnesota,27073,3,0 +2020-06-18,Lac qui Parle,Minnesota,27073,3,0 +2020-06-19,Lac qui Parle,Minnesota,27073,4,0 +2020-06-20,Lac qui Parle,Minnesota,27073,4,0 +2020-06-21,Lac qui Parle,Minnesota,27073,4,0 +2020-06-22,Lac qui Parle,Minnesota,27073,4,0 +2020-06-23,Lac qui Parle,Minnesota,27073,4,0 +2020-06-24,Lac qui Parle,Minnesota,27073,4,0 +2020-06-25,Lac qui Parle,Minnesota,27073,4,0 +2020-06-26,Lac qui Parle,Minnesota,27073,4,0 +2020-06-27,Lac qui Parle,Minnesota,27073,4,0 +2020-06-28,Lac qui Parle,Minnesota,27073,4,0 +2020-06-29,Lac qui Parle,Minnesota,27073,4,0 +2020-06-30,Lac qui Parle,Minnesota,27073,4,0 +2020-07-01,Lac qui Parle,Minnesota,27073,4,0 +2020-07-02,Lac qui Parle,Minnesota,27073,4,0 +2020-07-03,Lac qui Parle,Minnesota,27073,4,0 +2020-07-04,Lac qui Parle,Minnesota,27073,4,0 +2020-07-05,Lac qui Parle,Minnesota,27073,4,0 +2020-07-06,Lac qui Parle,Minnesota,27073,4,0 +2020-07-07,Lac qui Parle,Minnesota,27073,4,0 +2020-07-08,Lac qui Parle,Minnesota,27073,4,0 +2020-07-09,Lac qui Parle,Minnesota,27073,4,0 +2020-05-07,Lake,Minnesota,27075,1,0 +2020-05-08,Lake,Minnesota,27075,1,0 +2020-05-09,Lake,Minnesota,27075,1,0 +2020-05-10,Lake,Minnesota,27075,1,0 +2020-05-11,Lake,Minnesota,27075,1,0 +2020-05-12,Lake,Minnesota,27075,1,0 +2020-05-13,Lake,Minnesota,27075,1,0 +2020-05-14,Lake,Minnesota,27075,1,0 +2020-05-15,Lake,Minnesota,27075,1,0 +2020-05-16,Lake,Minnesota,27075,1,0 +2020-05-17,Lake,Minnesota,27075,1,0 +2020-05-18,Lake,Minnesota,27075,1,0 +2020-05-19,Lake,Minnesota,27075,1,0 +2020-05-20,Lake,Minnesota,27075,1,0 +2020-05-21,Lake,Minnesota,27075,1,0 +2020-05-22,Lake,Minnesota,27075,1,0 +2020-05-23,Lake,Minnesota,27075,1,0 +2020-05-24,Lake,Minnesota,27075,1,0 +2020-05-25,Lake,Minnesota,27075,1,0 +2020-05-26,Lake,Minnesota,27075,1,0 +2020-05-27,Lake,Minnesota,27075,1,0 +2020-05-28,Lake,Minnesota,27075,1,0 +2020-05-29,Lake,Minnesota,27075,1,0 +2020-05-30,Lake,Minnesota,27075,1,0 +2020-05-31,Lake,Minnesota,27075,1,0 +2020-06-01,Lake,Minnesota,27075,1,0 +2020-06-02,Lake,Minnesota,27075,1,0 +2020-06-03,Lake,Minnesota,27075,1,0 +2020-06-04,Lake,Minnesota,27075,1,0 +2020-06-05,Lake,Minnesota,27075,1,0 +2020-06-06,Lake,Minnesota,27075,1,0 +2020-06-07,Lake,Minnesota,27075,1,0 +2020-06-08,Lake,Minnesota,27075,1,0 +2020-06-09,Lake,Minnesota,27075,1,0 +2020-06-10,Lake,Minnesota,27075,1,0 +2020-06-11,Lake,Minnesota,27075,1,0 +2020-06-12,Lake,Minnesota,27075,1,0 +2020-06-13,Lake,Minnesota,27075,1,0 +2020-06-14,Lake,Minnesota,27075,1,0 +2020-06-15,Lake,Minnesota,27075,1,0 +2020-06-16,Lake,Minnesota,27075,2,0 +2020-06-17,Lake,Minnesota,27075,4,0 +2020-06-18,Lake,Minnesota,27075,4,0 +2020-06-19,Lake,Minnesota,27075,4,0 +2020-06-20,Lake,Minnesota,27075,4,0 +2020-06-21,Lake,Minnesota,27075,4,0 +2020-06-22,Lake,Minnesota,27075,5,0 +2020-06-23,Lake,Minnesota,27075,5,0 +2020-06-24,Lake,Minnesota,27075,5,0 +2020-06-25,Lake,Minnesota,27075,5,0 +2020-06-26,Lake,Minnesota,27075,5,0 +2020-06-27,Lake,Minnesota,27075,5,0 +2020-06-28,Lake,Minnesota,27075,6,0 +2020-06-29,Lake,Minnesota,27075,6,0 +2020-06-30,Lake,Minnesota,27075,7,0 +2020-07-01,Lake,Minnesota,27075,6,0 +2020-07-02,Lake,Minnesota,27075,6,0 +2020-07-03,Lake,Minnesota,27075,6,0 +2020-07-04,Lake,Minnesota,27075,6,0 +2020-07-05,Lake,Minnesota,27075,6,0 +2020-07-06,Lake,Minnesota,27075,6,0 +2020-07-07,Lake,Minnesota,27075,6,0 +2020-07-08,Lake,Minnesota,27075,6,0 +2020-07-09,Lake,Minnesota,27075,6,0 +2020-03-22,Le Sueur,Minnesota,27079,1,0 +2020-03-23,Le Sueur,Minnesota,27079,1,0 +2020-03-24,Le Sueur,Minnesota,27079,5,0 +2020-03-25,Le Sueur,Minnesota,27079,6,0 +2020-03-26,Le Sueur,Minnesota,27079,6,0 +2020-03-27,Le Sueur,Minnesota,27079,10,0 +2020-03-28,Le Sueur,Minnesota,27079,11,0 +2020-03-29,Le Sueur,Minnesota,27079,11,0 +2020-03-30,Le Sueur,Minnesota,27079,13,0 +2020-03-31,Le Sueur,Minnesota,27079,15,0 +2020-04-01,Le Sueur,Minnesota,27079,15,0 +2020-04-02,Le Sueur,Minnesota,27079,18,0 +2020-04-03,Le Sueur,Minnesota,27079,19,0 +2020-04-04,Le Sueur,Minnesota,27079,20,0 +2020-04-05,Le Sueur,Minnesota,27079,20,0 +2020-04-06,Le Sueur,Minnesota,27079,20,0 +2020-04-07,Le Sueur,Minnesota,27079,20,0 +2020-04-08,Le Sueur,Minnesota,27079,20,0 +2020-04-09,Le Sueur,Minnesota,27079,20,0 +2020-04-10,Le Sueur,Minnesota,27079,20,0 +2020-04-11,Le Sueur,Minnesota,27079,20,0 +2020-04-12,Le Sueur,Minnesota,27079,21,0 +2020-04-13,Le Sueur,Minnesota,27079,21,0 +2020-04-14,Le Sueur,Minnesota,27079,21,0 +2020-04-15,Le Sueur,Minnesota,27079,21,0 +2020-04-16,Le Sueur,Minnesota,27079,22,0 +2020-04-17,Le Sueur,Minnesota,27079,22,0 +2020-04-18,Le Sueur,Minnesota,27079,22,0 +2020-04-19,Le Sueur,Minnesota,27079,22,0 +2020-04-20,Le Sueur,Minnesota,27079,22,0 +2020-04-21,Le Sueur,Minnesota,27079,22,0 +2020-04-22,Le Sueur,Minnesota,27079,22,0 +2020-04-23,Le Sueur,Minnesota,27079,22,0 +2020-04-24,Le Sueur,Minnesota,27079,22,0 +2020-04-25,Le Sueur,Minnesota,27079,22,0 +2020-04-26,Le Sueur,Minnesota,27079,22,0 +2020-04-27,Le Sueur,Minnesota,27079,23,0 +2020-04-28,Le Sueur,Minnesota,27079,24,0 +2020-04-29,Le Sueur,Minnesota,27079,24,0 +2020-04-30,Le Sueur,Minnesota,27079,24,0 +2020-05-01,Le Sueur,Minnesota,27079,25,0 +2020-05-02,Le Sueur,Minnesota,27079,25,0 +2020-05-03,Le Sueur,Minnesota,27079,26,0 +2020-05-04,Le Sueur,Minnesota,27079,26,0 +2020-05-05,Le Sueur,Minnesota,27079,26,0 +2020-05-06,Le Sueur,Minnesota,27079,26,0 +2020-05-07,Le Sueur,Minnesota,27079,28,0 +2020-05-08,Le Sueur,Minnesota,27079,28,0 +2020-05-09,Le Sueur,Minnesota,27079,28,0 +2020-05-10,Le Sueur,Minnesota,27079,29,0 +2020-05-11,Le Sueur,Minnesota,27079,30,0 +2020-05-12,Le Sueur,Minnesota,27079,31,1 +2020-05-13,Le Sueur,Minnesota,27079,31,1 +2020-05-14,Le Sueur,Minnesota,27079,31,1 +2020-05-15,Le Sueur,Minnesota,27079,33,1 +2020-05-16,Le Sueur,Minnesota,27079,34,1 +2020-05-17,Le Sueur,Minnesota,27079,35,1 +2020-05-18,Le Sueur,Minnesota,27079,35,1 +2020-05-19,Le Sueur,Minnesota,27079,36,1 +2020-05-20,Le Sueur,Minnesota,27079,36,1 +2020-05-21,Le Sueur,Minnesota,27079,38,1 +2020-05-22,Le Sueur,Minnesota,27079,39,1 +2020-05-23,Le Sueur,Minnesota,27079,41,1 +2020-05-24,Le Sueur,Minnesota,27079,41,1 +2020-05-25,Le Sueur,Minnesota,27079,41,1 +2020-05-26,Le Sueur,Minnesota,27079,41,1 +2020-05-27,Le Sueur,Minnesota,27079,43,1 +2020-05-28,Le Sueur,Minnesota,27079,44,1 +2020-05-29,Le Sueur,Minnesota,27079,44,1 +2020-05-30,Le Sueur,Minnesota,27079,44,1 +2020-05-31,Le Sueur,Minnesota,27079,44,1 +2020-06-01,Le Sueur,Minnesota,27079,44,1 +2020-06-02,Le Sueur,Minnesota,27079,44,1 +2020-06-03,Le Sueur,Minnesota,27079,46,1 +2020-06-04,Le Sueur,Minnesota,27079,46,1 +2020-06-05,Le Sueur,Minnesota,27079,47,1 +2020-06-06,Le Sueur,Minnesota,27079,48,1 +2020-06-07,Le Sueur,Minnesota,27079,49,1 +2020-06-08,Le Sueur,Minnesota,27079,49,1 +2020-06-09,Le Sueur,Minnesota,27079,50,1 +2020-06-10,Le Sueur,Minnesota,27079,50,1 +2020-06-11,Le Sueur,Minnesota,27079,50,1 +2020-06-12,Le Sueur,Minnesota,27079,51,1 +2020-06-13,Le Sueur,Minnesota,27079,52,1 +2020-06-14,Le Sueur,Minnesota,27079,52,1 +2020-06-15,Le Sueur,Minnesota,27079,52,1 +2020-06-16,Le Sueur,Minnesota,27079,52,1 +2020-06-17,Le Sueur,Minnesota,27079,53,1 +2020-06-18,Le Sueur,Minnesota,27079,53,1 +2020-06-19,Le Sueur,Minnesota,27079,54,1 +2020-06-20,Le Sueur,Minnesota,27079,57,1 +2020-06-21,Le Sueur,Minnesota,27079,62,1 +2020-06-22,Le Sueur,Minnesota,27079,62,1 +2020-06-23,Le Sueur,Minnesota,27079,66,1 +2020-06-24,Le Sueur,Minnesota,27079,70,1 +2020-06-25,Le Sueur,Minnesota,27079,71,1 +2020-06-26,Le Sueur,Minnesota,27079,75,1 +2020-06-27,Le Sueur,Minnesota,27079,75,1 +2020-06-28,Le Sueur,Minnesota,27079,77,1 +2020-06-29,Le Sueur,Minnesota,27079,79,1 +2020-06-30,Le Sueur,Minnesota,27079,82,1 +2020-07-01,Le Sueur,Minnesota,27079,86,1 +2020-07-02,Le Sueur,Minnesota,27079,91,1 +2020-07-03,Le Sueur,Minnesota,27079,98,1 +2020-07-04,Le Sueur,Minnesota,27079,98,1 +2020-07-05,Le Sueur,Minnesota,27079,100,1 +2020-07-06,Le Sueur,Minnesota,27079,103,1 +2020-07-07,Le Sueur,Minnesota,27079,108,1 +2020-07-08,Le Sueur,Minnesota,27079,110,1 +2020-07-09,Le Sueur,Minnesota,27079,117,1 +2020-03-27,Lincoln,Minnesota,27081,1,0 +2020-03-28,Lincoln,Minnesota,27081,1,0 +2020-03-29,Lincoln,Minnesota,27081,1,0 +2020-03-30,Lincoln,Minnesota,27081,1,0 +2020-03-31,Lincoln,Minnesota,27081,1,0 +2020-04-01,Lincoln,Minnesota,27081,1,0 +2020-04-02,Lincoln,Minnesota,27081,1,0 +2020-04-03,Lincoln,Minnesota,27081,1,0 +2020-04-04,Lincoln,Minnesota,27081,1,0 +2020-04-05,Lincoln,Minnesota,27081,1,0 +2020-04-06,Lincoln,Minnesota,27081,2,0 +2020-04-07,Lincoln,Minnesota,27081,2,0 +2020-04-08,Lincoln,Minnesota,27081,2,0 +2020-04-09,Lincoln,Minnesota,27081,2,0 +2020-04-10,Lincoln,Minnesota,27081,2,0 +2020-04-11,Lincoln,Minnesota,27081,2,0 +2020-04-12,Lincoln,Minnesota,27081,2,0 +2020-04-13,Lincoln,Minnesota,27081,2,0 +2020-04-14,Lincoln,Minnesota,27081,2,0 +2020-04-15,Lincoln,Minnesota,27081,2,0 +2020-04-16,Lincoln,Minnesota,27081,2,0 +2020-04-17,Lincoln,Minnesota,27081,2,0 +2020-04-18,Lincoln,Minnesota,27081,2,0 +2020-04-19,Lincoln,Minnesota,27081,2,0 +2020-04-20,Lincoln,Minnesota,27081,2,0 +2020-04-21,Lincoln,Minnesota,27081,2,0 +2020-04-22,Lincoln,Minnesota,27081,2,0 +2020-04-23,Lincoln,Minnesota,27081,2,0 +2020-04-24,Lincoln,Minnesota,27081,2,0 +2020-04-25,Lincoln,Minnesota,27081,2,0 +2020-04-26,Lincoln,Minnesota,27081,2,0 +2020-04-27,Lincoln,Minnesota,27081,2,0 +2020-04-28,Lincoln,Minnesota,27081,2,0 +2020-04-29,Lincoln,Minnesota,27081,3,0 +2020-04-30,Lincoln,Minnesota,27081,3,0 +2020-05-01,Lincoln,Minnesota,27081,3,0 +2020-05-02,Lincoln,Minnesota,27081,3,0 +2020-05-03,Lincoln,Minnesota,27081,3,0 +2020-05-04,Lincoln,Minnesota,27081,3,0 +2020-05-05,Lincoln,Minnesota,27081,3,0 +2020-05-06,Lincoln,Minnesota,27081,3,0 +2020-05-07,Lincoln,Minnesota,27081,3,0 +2020-05-08,Lincoln,Minnesota,27081,3,0 +2020-05-09,Lincoln,Minnesota,27081,3,0 +2020-05-10,Lincoln,Minnesota,27081,3,0 +2020-05-11,Lincoln,Minnesota,27081,4,0 +2020-05-12,Lincoln,Minnesota,27081,4,0 +2020-05-13,Lincoln,Minnesota,27081,4,0 +2020-05-14,Lincoln,Minnesota,27081,4,0 +2020-05-15,Lincoln,Minnesota,27081,4,0 +2020-05-16,Lincoln,Minnesota,27081,4,0 +2020-05-17,Lincoln,Minnesota,27081,4,0 +2020-05-18,Lincoln,Minnesota,27081,4,0 +2020-05-19,Lincoln,Minnesota,27081,4,0 +2020-05-20,Lincoln,Minnesota,27081,4,0 +2020-05-21,Lincoln,Minnesota,27081,4,0 +2020-05-22,Lincoln,Minnesota,27081,4,0 +2020-05-23,Lincoln,Minnesota,27081,5,0 +2020-05-24,Lincoln,Minnesota,27081,5,0 +2020-05-25,Lincoln,Minnesota,27081,5,0 +2020-05-26,Lincoln,Minnesota,27081,5,0 +2020-05-27,Lincoln,Minnesota,27081,5,0 +2020-05-28,Lincoln,Minnesota,27081,5,0 +2020-05-29,Lincoln,Minnesota,27081,5,0 +2020-05-30,Lincoln,Minnesota,27081,5,0 +2020-05-31,Lincoln,Minnesota,27081,5,0 +2020-06-01,Lincoln,Minnesota,27081,5,0 +2020-06-02,Lincoln,Minnesota,27081,6,0 +2020-06-03,Lincoln,Minnesota,27081,6,0 +2020-06-04,Lincoln,Minnesota,27081,6,0 +2020-06-05,Lincoln,Minnesota,27081,6,0 +2020-06-06,Lincoln,Minnesota,27081,6,0 +2020-06-07,Lincoln,Minnesota,27081,6,0 +2020-06-08,Lincoln,Minnesota,27081,6,0 +2020-06-09,Lincoln,Minnesota,27081,6,0 +2020-06-10,Lincoln,Minnesota,27081,6,0 +2020-06-11,Lincoln,Minnesota,27081,6,0 +2020-06-12,Lincoln,Minnesota,27081,6,0 +2020-06-13,Lincoln,Minnesota,27081,6,0 +2020-06-14,Lincoln,Minnesota,27081,6,0 +2020-06-15,Lincoln,Minnesota,27081,6,0 +2020-06-16,Lincoln,Minnesota,27081,6,0 +2020-06-17,Lincoln,Minnesota,27081,6,0 +2020-06-18,Lincoln,Minnesota,27081,6,0 +2020-06-19,Lincoln,Minnesota,27081,6,0 +2020-06-20,Lincoln,Minnesota,27081,6,0 +2020-06-21,Lincoln,Minnesota,27081,6,0 +2020-06-22,Lincoln,Minnesota,27081,6,0 +2020-06-23,Lincoln,Minnesota,27081,6,0 +2020-06-24,Lincoln,Minnesota,27081,7,0 +2020-06-25,Lincoln,Minnesota,27081,7,0 +2020-06-26,Lincoln,Minnesota,27081,7,0 +2020-06-27,Lincoln,Minnesota,27081,7,0 +2020-06-28,Lincoln,Minnesota,27081,7,0 +2020-06-29,Lincoln,Minnesota,27081,9,0 +2020-06-30,Lincoln,Minnesota,27081,8,0 +2020-07-01,Lincoln,Minnesota,27081,9,0 +2020-07-02,Lincoln,Minnesota,27081,10,0 +2020-07-03,Lincoln,Minnesota,27081,10,0 +2020-07-04,Lincoln,Minnesota,27081,10,0 +2020-07-05,Lincoln,Minnesota,27081,10,0 +2020-07-06,Lincoln,Minnesota,27081,10,0 +2020-07-07,Lincoln,Minnesota,27081,10,0 +2020-07-08,Lincoln,Minnesota,27081,11,0 +2020-07-09,Lincoln,Minnesota,27081,11,0 +2020-03-31,Lyon,Minnesota,27083,1,0 +2020-04-01,Lyon,Minnesota,27083,2,0 +2020-04-02,Lyon,Minnesota,27083,3,0 +2020-04-03,Lyon,Minnesota,27083,3,0 +2020-04-04,Lyon,Minnesota,27083,3,0 +2020-04-05,Lyon,Minnesota,27083,3,0 +2020-04-06,Lyon,Minnesota,27083,4,0 +2020-04-07,Lyon,Minnesota,27083,4,0 +2020-04-08,Lyon,Minnesota,27083,4,0 +2020-04-09,Lyon,Minnesota,27083,5,0 +2020-04-10,Lyon,Minnesota,27083,5,0 +2020-04-11,Lyon,Minnesota,27083,5,0 +2020-04-12,Lyon,Minnesota,27083,5,0 +2020-04-13,Lyon,Minnesota,27083,5,0 +2020-04-14,Lyon,Minnesota,27083,5,0 +2020-04-15,Lyon,Minnesota,27083,5,0 +2020-04-16,Lyon,Minnesota,27083,5,0 +2020-04-17,Lyon,Minnesota,27083,6,0 +2020-04-18,Lyon,Minnesota,27083,5,0 +2020-04-19,Lyon,Minnesota,27083,5,0 +2020-04-20,Lyon,Minnesota,27083,5,0 +2020-04-21,Lyon,Minnesota,27083,5,0 +2020-04-22,Lyon,Minnesota,27083,6,0 +2020-04-23,Lyon,Minnesota,27083,6,0 +2020-04-24,Lyon,Minnesota,27083,6,0 +2020-04-25,Lyon,Minnesota,27083,6,0 +2020-04-26,Lyon,Minnesota,27083,6,0 +2020-04-27,Lyon,Minnesota,27083,6,0 +2020-04-28,Lyon,Minnesota,27083,6,0 +2020-04-29,Lyon,Minnesota,27083,6,0 +2020-04-30,Lyon,Minnesota,27083,7,0 +2020-05-01,Lyon,Minnesota,27083,7,0 +2020-05-02,Lyon,Minnesota,27083,8,0 +2020-05-03,Lyon,Minnesota,27083,9,0 +2020-05-04,Lyon,Minnesota,27083,9,0 +2020-05-05,Lyon,Minnesota,27083,10,0 +2020-05-06,Lyon,Minnesota,27083,11,0 +2020-05-07,Lyon,Minnesota,27083,15,0 +2020-05-08,Lyon,Minnesota,27083,16,0 +2020-05-09,Lyon,Minnesota,27083,17,0 +2020-05-10,Lyon,Minnesota,27083,17,0 +2020-05-11,Lyon,Minnesota,27083,18,0 +2020-05-12,Lyon,Minnesota,27083,20,0 +2020-05-13,Lyon,Minnesota,27083,20,0 +2020-05-14,Lyon,Minnesota,27083,22,0 +2020-05-15,Lyon,Minnesota,27083,25,0 +2020-05-16,Lyon,Minnesota,27083,25,0 +2020-05-17,Lyon,Minnesota,27083,26,0 +2020-05-18,Lyon,Minnesota,27083,26,0 +2020-05-19,Lyon,Minnesota,27083,26,0 +2020-05-20,Lyon,Minnesota,27083,26,0 +2020-05-21,Lyon,Minnesota,27083,28,0 +2020-05-22,Lyon,Minnesota,27083,29,0 +2020-05-23,Lyon,Minnesota,27083,31,0 +2020-05-24,Lyon,Minnesota,27083,31,0 +2020-05-25,Lyon,Minnesota,27083,34,0 +2020-05-26,Lyon,Minnesota,27083,36,0 +2020-05-27,Lyon,Minnesota,27083,36,0 +2020-05-28,Lyon,Minnesota,27083,38,0 +2020-05-29,Lyon,Minnesota,27083,43,0 +2020-05-30,Lyon,Minnesota,27083,49,0 +2020-05-31,Lyon,Minnesota,27083,56,0 +2020-06-01,Lyon,Minnesota,27083,57,0 +2020-06-02,Lyon,Minnesota,27083,65,1 +2020-06-03,Lyon,Minnesota,27083,71,1 +2020-06-04,Lyon,Minnesota,27083,81,1 +2020-06-05,Lyon,Minnesota,27083,101,2 +2020-06-06,Lyon,Minnesota,27083,110,2 +2020-06-07,Lyon,Minnesota,27083,133,2 +2020-06-08,Lyon,Minnesota,27083,144,2 +2020-06-09,Lyon,Minnesota,27083,145,2 +2020-06-10,Lyon,Minnesota,27083,158,2 +2020-06-11,Lyon,Minnesota,27083,174,2 +2020-06-12,Lyon,Minnesota,27083,183,2 +2020-06-13,Lyon,Minnesota,27083,199,2 +2020-06-14,Lyon,Minnesota,27083,208,2 +2020-06-15,Lyon,Minnesota,27083,214,2 +2020-06-16,Lyon,Minnesota,27083,222,2 +2020-06-17,Lyon,Minnesota,27083,229,2 +2020-06-18,Lyon,Minnesota,27083,250,2 +2020-06-19,Lyon,Minnesota,27083,258,2 +2020-06-20,Lyon,Minnesota,27083,270,2 +2020-06-21,Lyon,Minnesota,27083,274,2 +2020-06-22,Lyon,Minnesota,27083,276,2 +2020-06-23,Lyon,Minnesota,27083,277,2 +2020-06-24,Lyon,Minnesota,27083,279,2 +2020-06-25,Lyon,Minnesota,27083,284,2 +2020-06-26,Lyon,Minnesota,27083,289,2 +2020-06-27,Lyon,Minnesota,27083,291,2 +2020-06-28,Lyon,Minnesota,27083,294,2 +2020-06-29,Lyon,Minnesota,27083,295,2 +2020-06-30,Lyon,Minnesota,27083,295,2 +2020-07-01,Lyon,Minnesota,27083,300,2 +2020-07-02,Lyon,Minnesota,27083,305,2 +2020-07-03,Lyon,Minnesota,27083,309,2 +2020-07-04,Lyon,Minnesota,27083,309,2 +2020-07-05,Lyon,Minnesota,27083,312,2 +2020-07-06,Lyon,Minnesota,27083,316,2 +2020-07-07,Lyon,Minnesota,27083,327,2 +2020-07-08,Lyon,Minnesota,27083,327,2 +2020-07-09,Lyon,Minnesota,27083,331,2 +2020-04-04,McLeod,Minnesota,27085,1,0 +2020-04-05,McLeod,Minnesota,27085,1,0 +2020-04-06,McLeod,Minnesota,27085,1,0 +2020-04-07,McLeod,Minnesota,27085,1,0 +2020-04-08,McLeod,Minnesota,27085,1,0 +2020-04-09,McLeod,Minnesota,27085,2,0 +2020-04-10,McLeod,Minnesota,27085,2,0 +2020-04-11,McLeod,Minnesota,27085,2,0 +2020-04-12,McLeod,Minnesota,27085,2,0 +2020-04-13,McLeod,Minnesota,27085,2,0 +2020-04-14,McLeod,Minnesota,27085,2,0 +2020-04-15,McLeod,Minnesota,27085,2,0 +2020-04-16,McLeod,Minnesota,27085,2,0 +2020-04-17,McLeod,Minnesota,27085,2,0 +2020-04-18,McLeod,Minnesota,27085,3,0 +2020-04-19,McLeod,Minnesota,27085,3,0 +2020-04-20,McLeod,Minnesota,27085,3,0 +2020-04-21,McLeod,Minnesota,27085,3,0 +2020-04-22,McLeod,Minnesota,27085,3,0 +2020-04-23,McLeod,Minnesota,27085,3,0 +2020-04-24,McLeod,Minnesota,27085,3,0 +2020-04-25,McLeod,Minnesota,27085,3,0 +2020-04-26,McLeod,Minnesota,27085,3,0 +2020-04-27,McLeod,Minnesota,27085,4,0 +2020-04-28,McLeod,Minnesota,27085,4,0 +2020-04-29,McLeod,Minnesota,27085,4,0 +2020-04-30,McLeod,Minnesota,27085,4,0 +2020-05-01,McLeod,Minnesota,27085,4,0 +2020-05-02,McLeod,Minnesota,27085,4,0 +2020-05-03,McLeod,Minnesota,27085,4,0 +2020-05-04,McLeod,Minnesota,27085,4,0 +2020-05-05,McLeod,Minnesota,27085,4,0 +2020-05-06,McLeod,Minnesota,27085,6,0 +2020-05-07,McLeod,Minnesota,27085,6,0 +2020-05-08,McLeod,Minnesota,27085,8,0 +2020-05-09,McLeod,Minnesota,27085,8,0 +2020-05-10,McLeod,Minnesota,27085,12,0 +2020-05-11,McLeod,Minnesota,27085,13,0 +2020-05-12,McLeod,Minnesota,27085,14,0 +2020-05-13,McLeod,Minnesota,27085,14,0 +2020-05-14,McLeod,Minnesota,27085,15,0 +2020-05-15,McLeod,Minnesota,27085,15,0 +2020-05-16,McLeod,Minnesota,27085,16,0 +2020-05-17,McLeod,Minnesota,27085,18,0 +2020-05-18,McLeod,Minnesota,27085,18,0 +2020-05-19,McLeod,Minnesota,27085,18,0 +2020-05-20,McLeod,Minnesota,27085,19,0 +2020-05-21,McLeod,Minnesota,27085,21,0 +2020-05-22,McLeod,Minnesota,27085,24,0 +2020-05-23,McLeod,Minnesota,27085,26,0 +2020-05-24,McLeod,Minnesota,27085,26,0 +2020-05-25,McLeod,Minnesota,27085,27,0 +2020-05-26,McLeod,Minnesota,27085,28,0 +2020-05-27,McLeod,Minnesota,27085,29,0 +2020-05-28,McLeod,Minnesota,27085,30,0 +2020-05-29,McLeod,Minnesota,27085,33,0 +2020-05-30,McLeod,Minnesota,27085,34,0 +2020-05-31,McLeod,Minnesota,27085,37,0 +2020-06-01,McLeod,Minnesota,27085,37,0 +2020-06-02,McLeod,Minnesota,27085,37,0 +2020-06-03,McLeod,Minnesota,27085,37,0 +2020-06-04,McLeod,Minnesota,27085,39,0 +2020-06-05,McLeod,Minnesota,27085,41,0 +2020-06-06,McLeod,Minnesota,27085,43,0 +2020-06-07,McLeod,Minnesota,27085,43,0 +2020-06-08,McLeod,Minnesota,27085,44,0 +2020-06-09,McLeod,Minnesota,27085,45,0 +2020-06-10,McLeod,Minnesota,27085,46,0 +2020-06-11,McLeod,Minnesota,27085,52,0 +2020-06-12,McLeod,Minnesota,27085,52,0 +2020-06-13,McLeod,Minnesota,27085,54,0 +2020-06-14,McLeod,Minnesota,27085,54,0 +2020-06-15,McLeod,Minnesota,27085,54,0 +2020-06-16,McLeod,Minnesota,27085,54,0 +2020-06-17,McLeod,Minnesota,27085,56,0 +2020-06-18,McLeod,Minnesota,27085,58,0 +2020-06-19,McLeod,Minnesota,27085,64,0 +2020-06-20,McLeod,Minnesota,27085,66,0 +2020-06-21,McLeod,Minnesota,27085,67,0 +2020-06-22,McLeod,Minnesota,27085,68,0 +2020-06-23,McLeod,Minnesota,27085,69,0 +2020-06-24,McLeod,Minnesota,27085,71,0 +2020-06-25,McLeod,Minnesota,27085,75,0 +2020-06-26,McLeod,Minnesota,27085,80,0 +2020-06-27,McLeod,Minnesota,27085,80,0 +2020-06-28,McLeod,Minnesota,27085,79,0 +2020-06-29,McLeod,Minnesota,27085,81,0 +2020-06-30,McLeod,Minnesota,27085,81,0 +2020-07-01,McLeod,Minnesota,27085,85,0 +2020-07-02,McLeod,Minnesota,27085,85,0 +2020-07-03,McLeod,Minnesota,27085,88,0 +2020-07-04,McLeod,Minnesota,27085,88,0 +2020-07-05,McLeod,Minnesota,27085,91,0 +2020-07-06,McLeod,Minnesota,27085,92,0 +2020-07-07,McLeod,Minnesota,27085,92,0 +2020-07-08,McLeod,Minnesota,27085,94,0 +2020-07-09,McLeod,Minnesota,27085,96,0 +2020-03-27,Mahnomen,Minnesota,27087,1,0 +2020-03-28,Mahnomen,Minnesota,27087,1,0 +2020-03-29,Mahnomen,Minnesota,27087,1,0 +2020-03-30,Mahnomen,Minnesota,27087,1,0 +2020-03-31,Mahnomen,Minnesota,27087,1,0 +2020-04-01,Mahnomen,Minnesota,27087,1,0 +2020-04-02,Mahnomen,Minnesota,27087,1,0 +2020-04-03,Mahnomen,Minnesota,27087,1,0 +2020-04-04,Mahnomen,Minnesota,27087,1,0 +2020-04-05,Mahnomen,Minnesota,27087,1,0 +2020-04-06,Mahnomen,Minnesota,27087,1,0 +2020-04-07,Mahnomen,Minnesota,27087,1,0 +2020-04-08,Mahnomen,Minnesota,27087,1,0 +2020-04-09,Mahnomen,Minnesota,27087,1,0 +2020-04-10,Mahnomen,Minnesota,27087,1,0 +2020-04-11,Mahnomen,Minnesota,27087,1,0 +2020-04-12,Mahnomen,Minnesota,27087,1,0 +2020-04-13,Mahnomen,Minnesota,27087,1,0 +2020-04-14,Mahnomen,Minnesota,27087,1,0 +2020-04-15,Mahnomen,Minnesota,27087,1,0 +2020-04-16,Mahnomen,Minnesota,27087,1,0 +2020-04-17,Mahnomen,Minnesota,27087,1,0 +2020-04-18,Mahnomen,Minnesota,27087,1,0 +2020-04-19,Mahnomen,Minnesota,27087,1,0 +2020-04-20,Mahnomen,Minnesota,27087,1,0 +2020-04-21,Mahnomen,Minnesota,27087,1,0 +2020-04-22,Mahnomen,Minnesota,27087,1,0 +2020-04-23,Mahnomen,Minnesota,27087,1,0 +2020-04-24,Mahnomen,Minnesota,27087,1,0 +2020-04-25,Mahnomen,Minnesota,27087,1,0 +2020-04-26,Mahnomen,Minnesota,27087,1,0 +2020-04-27,Mahnomen,Minnesota,27087,1,0 +2020-04-28,Mahnomen,Minnesota,27087,1,0 +2020-04-29,Mahnomen,Minnesota,27087,1,0 +2020-04-30,Mahnomen,Minnesota,27087,2,0 +2020-05-01,Mahnomen,Minnesota,27087,2,0 +2020-05-02,Mahnomen,Minnesota,27087,2,0 +2020-05-03,Mahnomen,Minnesota,27087,2,0 +2020-05-04,Mahnomen,Minnesota,27087,2,0 +2020-05-05,Mahnomen,Minnesota,27087,2,0 +2020-05-06,Mahnomen,Minnesota,27087,2,1 +2020-05-07,Mahnomen,Minnesota,27087,2,1 +2020-05-08,Mahnomen,Minnesota,27087,2,1 +2020-05-09,Mahnomen,Minnesota,27087,2,1 +2020-05-10,Mahnomen,Minnesota,27087,3,1 +2020-05-11,Mahnomen,Minnesota,27087,3,1 +2020-05-12,Mahnomen,Minnesota,27087,3,1 +2020-05-13,Mahnomen,Minnesota,27087,3,1 +2020-05-14,Mahnomen,Minnesota,27087,5,1 +2020-05-15,Mahnomen,Minnesota,27087,5,1 +2020-05-16,Mahnomen,Minnesota,27087,5,1 +2020-05-17,Mahnomen,Minnesota,27087,5,1 +2020-05-18,Mahnomen,Minnesota,27087,5,1 +2020-05-19,Mahnomen,Minnesota,27087,5,1 +2020-05-20,Mahnomen,Minnesota,27087,5,1 +2020-05-21,Mahnomen,Minnesota,27087,5,1 +2020-05-22,Mahnomen,Minnesota,27087,5,1 +2020-05-23,Mahnomen,Minnesota,27087,5,1 +2020-05-24,Mahnomen,Minnesota,27087,5,1 +2020-05-25,Mahnomen,Minnesota,27087,5,1 +2020-05-26,Mahnomen,Minnesota,27087,5,1 +2020-05-27,Mahnomen,Minnesota,27087,5,1 +2020-05-28,Mahnomen,Minnesota,27087,5,1 +2020-05-29,Mahnomen,Minnesota,27087,6,1 +2020-05-30,Mahnomen,Minnesota,27087,6,1 +2020-05-31,Mahnomen,Minnesota,27087,6,1 +2020-06-01,Mahnomen,Minnesota,27087,6,1 +2020-06-02,Mahnomen,Minnesota,27087,6,1 +2020-06-03,Mahnomen,Minnesota,27087,6,1 +2020-06-04,Mahnomen,Minnesota,27087,6,1 +2020-06-05,Mahnomen,Minnesota,27087,6,1 +2020-06-06,Mahnomen,Minnesota,27087,6,1 +2020-06-07,Mahnomen,Minnesota,27087,6,1 +2020-06-08,Mahnomen,Minnesota,27087,6,1 +2020-06-09,Mahnomen,Minnesota,27087,6,1 +2020-06-10,Mahnomen,Minnesota,27087,6,1 +2020-06-11,Mahnomen,Minnesota,27087,6,1 +2020-06-12,Mahnomen,Minnesota,27087,6,1 +2020-06-13,Mahnomen,Minnesota,27087,6,1 +2020-06-14,Mahnomen,Minnesota,27087,6,1 +2020-06-15,Mahnomen,Minnesota,27087,6,1 +2020-06-16,Mahnomen,Minnesota,27087,6,1 +2020-06-17,Mahnomen,Minnesota,27087,6,1 +2020-06-18,Mahnomen,Minnesota,27087,6,1 +2020-06-19,Mahnomen,Minnesota,27087,6,1 +2020-06-20,Mahnomen,Minnesota,27087,6,1 +2020-06-21,Mahnomen,Minnesota,27087,6,1 +2020-06-22,Mahnomen,Minnesota,27087,6,1 +2020-06-23,Mahnomen,Minnesota,27087,6,1 +2020-06-24,Mahnomen,Minnesota,27087,6,1 +2020-06-25,Mahnomen,Minnesota,27087,6,1 +2020-06-26,Mahnomen,Minnesota,27087,7,1 +2020-06-27,Mahnomen,Minnesota,27087,7,1 +2020-06-28,Mahnomen,Minnesota,27087,7,1 +2020-06-29,Mahnomen,Minnesota,27087,7,1 +2020-06-30,Mahnomen,Minnesota,27087,7,1 +2020-07-01,Mahnomen,Minnesota,27087,7,1 +2020-07-02,Mahnomen,Minnesota,27087,7,1 +2020-07-03,Mahnomen,Minnesota,27087,8,1 +2020-07-04,Mahnomen,Minnesota,27087,8,1 +2020-07-05,Mahnomen,Minnesota,27087,8,1 +2020-07-06,Mahnomen,Minnesota,27087,9,1 +2020-07-07,Mahnomen,Minnesota,27087,10,1 +2020-07-08,Mahnomen,Minnesota,27087,10,1 +2020-07-09,Mahnomen,Minnesota,27087,10,1 +2020-04-19,Marshall,Minnesota,27089,1,0 +2020-04-20,Marshall,Minnesota,27089,1,0 +2020-04-21,Marshall,Minnesota,27089,1,0 +2020-04-22,Marshall,Minnesota,27089,1,0 +2020-04-23,Marshall,Minnesota,27089,1,0 +2020-04-24,Marshall,Minnesota,27089,1,0 +2020-04-25,Marshall,Minnesota,27089,1,0 +2020-04-26,Marshall,Minnesota,27089,1,0 +2020-04-27,Marshall,Minnesota,27089,1,0 +2020-04-28,Marshall,Minnesota,27089,1,0 +2020-04-29,Marshall,Minnesota,27089,1,0 +2020-04-30,Marshall,Minnesota,27089,1,0 +2020-05-01,Marshall,Minnesota,27089,2,0 +2020-05-02,Marshall,Minnesota,27089,3,0 +2020-05-03,Marshall,Minnesota,27089,5,0 +2020-05-04,Marshall,Minnesota,27089,7,0 +2020-05-05,Marshall,Minnesota,27089,7,0 +2020-05-06,Marshall,Minnesota,27089,7,0 +2020-05-07,Marshall,Minnesota,27089,8,0 +2020-05-08,Marshall,Minnesota,27089,8,0 +2020-05-09,Marshall,Minnesota,27089,8,0 +2020-05-10,Marshall,Minnesota,27089,8,0 +2020-05-11,Marshall,Minnesota,27089,8,0 +2020-05-12,Marshall,Minnesota,27089,8,0 +2020-05-13,Marshall,Minnesota,27089,8,0 +2020-05-14,Marshall,Minnesota,27089,8,0 +2020-05-15,Marshall,Minnesota,27089,8,0 +2020-05-16,Marshall,Minnesota,27089,8,0 +2020-05-17,Marshall,Minnesota,27089,8,0 +2020-05-18,Marshall,Minnesota,27089,8,0 +2020-05-19,Marshall,Minnesota,27089,8,0 +2020-05-20,Marshall,Minnesota,27089,8,0 +2020-05-21,Marshall,Minnesota,27089,8,0 +2020-05-22,Marshall,Minnesota,27089,8,0 +2020-05-23,Marshall,Minnesota,27089,8,0 +2020-05-24,Marshall,Minnesota,27089,8,0 +2020-05-25,Marshall,Minnesota,27089,9,0 +2020-05-26,Marshall,Minnesota,27089,9,0 +2020-05-27,Marshall,Minnesota,27089,9,0 +2020-05-28,Marshall,Minnesota,27089,9,0 +2020-05-29,Marshall,Minnesota,27089,10,0 +2020-05-30,Marshall,Minnesota,27089,10,0 +2020-05-31,Marshall,Minnesota,27089,12,0 +2020-06-01,Marshall,Minnesota,27089,12,0 +2020-06-02,Marshall,Minnesota,27089,12,0 +2020-06-03,Marshall,Minnesota,27089,12,0 +2020-06-04,Marshall,Minnesota,27089,12,0 +2020-06-05,Marshall,Minnesota,27089,12,0 +2020-06-06,Marshall,Minnesota,27089,12,0 +2020-06-07,Marshall,Minnesota,27089,12,0 +2020-06-08,Marshall,Minnesota,27089,12,0 +2020-06-09,Marshall,Minnesota,27089,12,0 +2020-06-10,Marshall,Minnesota,27089,12,0 +2020-06-11,Marshall,Minnesota,27089,12,0 +2020-06-12,Marshall,Minnesota,27089,12,0 +2020-06-13,Marshall,Minnesota,27089,12,0 +2020-06-14,Marshall,Minnesota,27089,12,0 +2020-06-15,Marshall,Minnesota,27089,12,0 +2020-06-16,Marshall,Minnesota,27089,12,0 +2020-06-17,Marshall,Minnesota,27089,12,0 +2020-06-18,Marshall,Minnesota,27089,12,0 +2020-06-19,Marshall,Minnesota,27089,12,0 +2020-06-20,Marshall,Minnesota,27089,12,0 +2020-06-21,Marshall,Minnesota,27089,12,0 +2020-06-22,Marshall,Minnesota,27089,12,0 +2020-06-23,Marshall,Minnesota,27089,12,0 +2020-06-24,Marshall,Minnesota,27089,12,0 +2020-06-25,Marshall,Minnesota,27089,12,0 +2020-06-26,Marshall,Minnesota,27089,12,0 +2020-06-27,Marshall,Minnesota,27089,12,0 +2020-06-28,Marshall,Minnesota,27089,12,0 +2020-06-29,Marshall,Minnesota,27089,12,0 +2020-06-30,Marshall,Minnesota,27089,12,0 +2020-07-01,Marshall,Minnesota,27089,12,0 +2020-07-02,Marshall,Minnesota,27089,12,0 +2020-07-03,Marshall,Minnesota,27089,12,0 +2020-07-04,Marshall,Minnesota,27089,12,0 +2020-07-05,Marshall,Minnesota,27089,12,0 +2020-07-06,Marshall,Minnesota,27089,12,0 +2020-07-07,Marshall,Minnesota,27089,12,0 +2020-07-08,Marshall,Minnesota,27089,12,0 +2020-07-09,Marshall,Minnesota,27089,12,0 +2020-03-17,Martin,Minnesota,27091,2,0 +2020-03-18,Martin,Minnesota,27091,3,0 +2020-03-19,Martin,Minnesota,27091,3,0 +2020-03-20,Martin,Minnesota,27091,4,0 +2020-03-21,Martin,Minnesota,27091,5,0 +2020-03-22,Martin,Minnesota,27091,8,0 +2020-03-23,Martin,Minnesota,27091,8,0 +2020-03-24,Martin,Minnesota,27091,8,0 +2020-03-25,Martin,Minnesota,27091,10,0 +2020-03-26,Martin,Minnesota,27091,12,0 +2020-03-27,Martin,Minnesota,27091,18,1 +2020-03-28,Martin,Minnesota,27091,19,1 +2020-03-29,Martin,Minnesota,27091,21,2 +2020-03-30,Martin,Minnesota,27091,23,2 +2020-03-31,Martin,Minnesota,27091,25,2 +2020-04-01,Martin,Minnesota,27091,29,2 +2020-04-02,Martin,Minnesota,27091,29,2 +2020-04-03,Martin,Minnesota,27091,32,2 +2020-04-04,Martin,Minnesota,27091,32,4 +2020-04-05,Martin,Minnesota,27091,32,4 +2020-04-06,Martin,Minnesota,27091,33,4 +2020-04-07,Martin,Minnesota,27091,34,4 +2020-04-08,Martin,Minnesota,27091,34,4 +2020-04-09,Martin,Minnesota,27091,35,4 +2020-04-10,Martin,Minnesota,27091,36,4 +2020-04-11,Martin,Minnesota,27091,37,4 +2020-04-12,Martin,Minnesota,27091,38,4 +2020-04-13,Martin,Minnesota,27091,38,4 +2020-04-14,Martin,Minnesota,27091,39,4 +2020-04-15,Martin,Minnesota,27091,39,4 +2020-04-16,Martin,Minnesota,27091,39,4 +2020-04-17,Martin,Minnesota,27091,39,4 +2020-04-18,Martin,Minnesota,27091,39,4 +2020-04-19,Martin,Minnesota,27091,39,4 +2020-04-20,Martin,Minnesota,27091,41,4 +2020-04-21,Martin,Minnesota,27091,41,4 +2020-04-22,Martin,Minnesota,27091,41,4 +2020-04-23,Martin,Minnesota,27091,41,4 +2020-04-24,Martin,Minnesota,27091,41,4 +2020-04-25,Martin,Minnesota,27091,42,4 +2020-04-26,Martin,Minnesota,27091,43,4 +2020-04-27,Martin,Minnesota,27091,43,4 +2020-04-28,Martin,Minnesota,27091,52,4 +2020-04-29,Martin,Minnesota,27091,70,4 +2020-04-30,Martin,Minnesota,27091,88,4 +2020-05-01,Martin,Minnesota,27091,111,4 +2020-05-02,Martin,Minnesota,27091,111,4 +2020-05-03,Martin,Minnesota,27091,111,4 +2020-05-04,Martin,Minnesota,27091,111,4 +2020-05-05,Martin,Minnesota,27091,111,4 +2020-05-06,Martin,Minnesota,27091,111,4 +2020-05-07,Martin,Minnesota,27091,111,4 +2020-05-08,Martin,Minnesota,27091,111,4 +2020-05-09,Martin,Minnesota,27091,112,4 +2020-05-10,Martin,Minnesota,27091,112,4 +2020-05-11,Martin,Minnesota,27091,112,4 +2020-05-12,Martin,Minnesota,27091,112,4 +2020-05-13,Martin,Minnesota,27091,112,4 +2020-05-14,Martin,Minnesota,27091,113,4 +2020-05-15,Martin,Minnesota,27091,114,4 +2020-05-16,Martin,Minnesota,27091,117,5 +2020-05-17,Martin,Minnesota,27091,118,5 +2020-05-18,Martin,Minnesota,27091,120,5 +2020-05-19,Martin,Minnesota,27091,123,5 +2020-05-20,Martin,Minnesota,27091,123,5 +2020-05-21,Martin,Minnesota,27091,124,5 +2020-05-22,Martin,Minnesota,27091,124,5 +2020-05-23,Martin,Minnesota,27091,124,5 +2020-05-24,Martin,Minnesota,27091,124,5 +2020-05-25,Martin,Minnesota,27091,125,5 +2020-05-26,Martin,Minnesota,27091,126,5 +2020-05-27,Martin,Minnesota,27091,126,5 +2020-05-28,Martin,Minnesota,27091,126,5 +2020-05-29,Martin,Minnesota,27091,129,5 +2020-05-30,Martin,Minnesota,27091,129,5 +2020-05-31,Martin,Minnesota,27091,130,5 +2020-06-01,Martin,Minnesota,27091,132,5 +2020-06-02,Martin,Minnesota,27091,132,5 +2020-06-03,Martin,Minnesota,27091,132,5 +2020-06-04,Martin,Minnesota,27091,132,5 +2020-06-05,Martin,Minnesota,27091,135,5 +2020-06-06,Martin,Minnesota,27091,137,5 +2020-06-07,Martin,Minnesota,27091,137,5 +2020-06-08,Martin,Minnesota,27091,140,5 +2020-06-09,Martin,Minnesota,27091,142,5 +2020-06-10,Martin,Minnesota,27091,143,5 +2020-06-11,Martin,Minnesota,27091,143,5 +2020-06-12,Martin,Minnesota,27091,143,5 +2020-06-13,Martin,Minnesota,27091,143,5 +2020-06-14,Martin,Minnesota,27091,143,5 +2020-06-15,Martin,Minnesota,27091,143,5 +2020-06-16,Martin,Minnesota,27091,147,5 +2020-06-17,Martin,Minnesota,27091,147,5 +2020-06-18,Martin,Minnesota,27091,147,5 +2020-06-19,Martin,Minnesota,27091,147,5 +2020-06-20,Martin,Minnesota,27091,147,5 +2020-06-21,Martin,Minnesota,27091,148,5 +2020-06-22,Martin,Minnesota,27091,148,5 +2020-06-23,Martin,Minnesota,27091,148,5 +2020-06-24,Martin,Minnesota,27091,149,5 +2020-06-25,Martin,Minnesota,27091,148,5 +2020-06-26,Martin,Minnesota,27091,151,5 +2020-06-27,Martin,Minnesota,27091,152,5 +2020-06-28,Martin,Minnesota,27091,154,5 +2020-06-29,Martin,Minnesota,27091,155,5 +2020-06-30,Martin,Minnesota,27091,156,5 +2020-07-01,Martin,Minnesota,27091,161,5 +2020-07-02,Martin,Minnesota,27091,161,5 +2020-07-03,Martin,Minnesota,27091,163,5 +2020-07-04,Martin,Minnesota,27091,163,5 +2020-07-05,Martin,Minnesota,27091,168,5 +2020-07-06,Martin,Minnesota,27091,169,5 +2020-07-07,Martin,Minnesota,27091,171,5 +2020-07-08,Martin,Minnesota,27091,171,5 +2020-07-09,Martin,Minnesota,27091,171,5 +2020-03-30,Meeker,Minnesota,27093,1,0 +2020-03-31,Meeker,Minnesota,27093,1,0 +2020-04-01,Meeker,Minnesota,27093,1,0 +2020-04-02,Meeker,Minnesota,27093,1,0 +2020-04-03,Meeker,Minnesota,27093,1,0 +2020-04-04,Meeker,Minnesota,27093,1,0 +2020-04-05,Meeker,Minnesota,27093,1,0 +2020-04-06,Meeker,Minnesota,27093,1,0 +2020-04-07,Meeker,Minnesota,27093,1,0 +2020-04-08,Meeker,Minnesota,27093,1,0 +2020-04-09,Meeker,Minnesota,27093,2,0 +2020-04-10,Meeker,Minnesota,27093,2,0 +2020-04-11,Meeker,Minnesota,27093,2,0 +2020-04-12,Meeker,Minnesota,27093,2,0 +2020-04-13,Meeker,Minnesota,27093,2,0 +2020-04-14,Meeker,Minnesota,27093,2,0 +2020-04-15,Meeker,Minnesota,27093,3,0 +2020-04-16,Meeker,Minnesota,27093,3,0 +2020-04-17,Meeker,Minnesota,27093,3,0 +2020-04-18,Meeker,Minnesota,27093,3,0 +2020-04-19,Meeker,Minnesota,27093,3,0 +2020-04-20,Meeker,Minnesota,27093,3,0 +2020-04-21,Meeker,Minnesota,27093,3,0 +2020-04-22,Meeker,Minnesota,27093,3,0 +2020-04-23,Meeker,Minnesota,27093,3,0 +2020-04-24,Meeker,Minnesota,27093,3,0 +2020-04-25,Meeker,Minnesota,27093,4,0 +2020-04-26,Meeker,Minnesota,27093,6,0 +2020-04-27,Meeker,Minnesota,27093,6,0 +2020-04-28,Meeker,Minnesota,27093,9,0 +2020-04-29,Meeker,Minnesota,27093,9,0 +2020-04-30,Meeker,Minnesota,27093,11,0 +2020-05-01,Meeker,Minnesota,27093,14,0 +2020-05-02,Meeker,Minnesota,27093,14,0 +2020-05-03,Meeker,Minnesota,27093,15,0 +2020-05-04,Meeker,Minnesota,27093,17,0 +2020-05-05,Meeker,Minnesota,27093,17,0 +2020-05-06,Meeker,Minnesota,27093,18,0 +2020-05-07,Meeker,Minnesota,27093,18,0 +2020-05-08,Meeker,Minnesota,27093,20,0 +2020-05-09,Meeker,Minnesota,27093,21,0 +2020-05-10,Meeker,Minnesota,27093,21,0 +2020-05-11,Meeker,Minnesota,27093,21,0 +2020-05-12,Meeker,Minnesota,27093,23,0 +2020-05-13,Meeker,Minnesota,27093,23,0 +2020-05-14,Meeker,Minnesota,27093,24,0 +2020-05-15,Meeker,Minnesota,27093,24,0 +2020-05-16,Meeker,Minnesota,27093,32,0 +2020-05-17,Meeker,Minnesota,27093,34,0 +2020-05-18,Meeker,Minnesota,27093,36,0 +2020-05-19,Meeker,Minnesota,27093,38,0 +2020-05-20,Meeker,Minnesota,27093,40,0 +2020-05-21,Meeker,Minnesota,27093,40,0 +2020-05-22,Meeker,Minnesota,27093,41,0 +2020-05-23,Meeker,Minnesota,27093,43,0 +2020-05-24,Meeker,Minnesota,27093,42,0 +2020-05-25,Meeker,Minnesota,27093,42,0 +2020-05-26,Meeker,Minnesota,27093,42,0 +2020-05-27,Meeker,Minnesota,27093,44,0 +2020-05-28,Meeker,Minnesota,27093,44,0 +2020-05-29,Meeker,Minnesota,27093,44,0 +2020-05-30,Meeker,Minnesota,27093,45,0 +2020-05-31,Meeker,Minnesota,27093,45,0 +2020-06-01,Meeker,Minnesota,27093,45,0 +2020-06-02,Meeker,Minnesota,27093,45,0 +2020-06-03,Meeker,Minnesota,27093,45,0 +2020-06-04,Meeker,Minnesota,27093,46,0 +2020-06-05,Meeker,Minnesota,27093,46,0 +2020-06-06,Meeker,Minnesota,27093,46,1 +2020-06-07,Meeker,Minnesota,27093,46,1 +2020-06-08,Meeker,Minnesota,27093,47,1 +2020-06-09,Meeker,Minnesota,27093,47,1 +2020-06-10,Meeker,Minnesota,27093,47,1 +2020-06-11,Meeker,Minnesota,27093,50,1 +2020-06-12,Meeker,Minnesota,27093,49,1 +2020-06-13,Meeker,Minnesota,27093,49,1 +2020-06-14,Meeker,Minnesota,27093,50,1 +2020-06-15,Meeker,Minnesota,27093,50,1 +2020-06-16,Meeker,Minnesota,27093,50,1 +2020-06-17,Meeker,Minnesota,27093,50,1 +2020-06-18,Meeker,Minnesota,27093,50,1 +2020-06-19,Meeker,Minnesota,27093,51,1 +2020-06-20,Meeker,Minnesota,27093,51,1 +2020-06-21,Meeker,Minnesota,27093,51,1 +2020-06-22,Meeker,Minnesota,27093,51,1 +2020-06-23,Meeker,Minnesota,27093,57,1 +2020-06-24,Meeker,Minnesota,27093,57,1 +2020-06-25,Meeker,Minnesota,27093,57,1 +2020-06-26,Meeker,Minnesota,27093,57,1 +2020-06-27,Meeker,Minnesota,27093,57,1 +2020-06-28,Meeker,Minnesota,27093,57,1 +2020-06-29,Meeker,Minnesota,27093,57,1 +2020-06-30,Meeker,Minnesota,27093,58,1 +2020-07-01,Meeker,Minnesota,27093,58,1 +2020-07-02,Meeker,Minnesota,27093,59,1 +2020-07-03,Meeker,Minnesota,27093,61,1 +2020-07-04,Meeker,Minnesota,27093,61,1 +2020-07-05,Meeker,Minnesota,27093,61,1 +2020-07-06,Meeker,Minnesota,27093,61,1 +2020-07-07,Meeker,Minnesota,27093,61,1 +2020-07-08,Meeker,Minnesota,27093,61,1 +2020-07-09,Meeker,Minnesota,27093,62,1 +2020-04-16,Mille Lacs,Minnesota,27095,1,0 +2020-04-17,Mille Lacs,Minnesota,27095,1,0 +2020-04-18,Mille Lacs,Minnesota,27095,1,0 +2020-04-19,Mille Lacs,Minnesota,27095,1,1 +2020-04-20,Mille Lacs,Minnesota,27095,1,1 +2020-04-21,Mille Lacs,Minnesota,27095,1,1 +2020-04-22,Mille Lacs,Minnesota,27095,1,1 +2020-04-23,Mille Lacs,Minnesota,27095,1,1 +2020-04-24,Mille Lacs,Minnesota,27095,1,1 +2020-04-25,Mille Lacs,Minnesota,27095,1,1 +2020-04-26,Mille Lacs,Minnesota,27095,1,1 +2020-04-27,Mille Lacs,Minnesota,27095,1,1 +2020-04-28,Mille Lacs,Minnesota,27095,2,1 +2020-04-29,Mille Lacs,Minnesota,27095,2,1 +2020-04-30,Mille Lacs,Minnesota,27095,2,1 +2020-05-01,Mille Lacs,Minnesota,27095,2,1 +2020-05-02,Mille Lacs,Minnesota,27095,2,1 +2020-05-03,Mille Lacs,Minnesota,27095,2,1 +2020-05-04,Mille Lacs,Minnesota,27095,3,1 +2020-05-05,Mille Lacs,Minnesota,27095,4,1 +2020-05-06,Mille Lacs,Minnesota,27095,5,1 +2020-05-07,Mille Lacs,Minnesota,27095,6,1 +2020-05-08,Mille Lacs,Minnesota,27095,6,1 +2020-05-09,Mille Lacs,Minnesota,27095,7,1 +2020-05-10,Mille Lacs,Minnesota,27095,7,1 +2020-05-11,Mille Lacs,Minnesota,27095,7,1 +2020-05-12,Mille Lacs,Minnesota,27095,7,1 +2020-05-13,Mille Lacs,Minnesota,27095,7,1 +2020-05-14,Mille Lacs,Minnesota,27095,7,1 +2020-05-15,Mille Lacs,Minnesota,27095,8,1 +2020-05-16,Mille Lacs,Minnesota,27095,9,1 +2020-05-17,Mille Lacs,Minnesota,27095,10,1 +2020-05-18,Mille Lacs,Minnesota,27095,12,1 +2020-05-19,Mille Lacs,Minnesota,27095,13,1 +2020-05-20,Mille Lacs,Minnesota,27095,15,1 +2020-05-21,Mille Lacs,Minnesota,27095,14,1 +2020-05-22,Mille Lacs,Minnesota,27095,15,1 +2020-05-23,Mille Lacs,Minnesota,27095,15,1 +2020-05-24,Mille Lacs,Minnesota,27095,16,1 +2020-05-25,Mille Lacs,Minnesota,27095,17,1 +2020-05-26,Mille Lacs,Minnesota,27095,17,1 +2020-05-27,Mille Lacs,Minnesota,27095,17,1 +2020-05-28,Mille Lacs,Minnesota,27095,19,1 +2020-05-29,Mille Lacs,Minnesota,27095,19,1 +2020-05-30,Mille Lacs,Minnesota,27095,19,1 +2020-05-31,Mille Lacs,Minnesota,27095,19,1 +2020-06-01,Mille Lacs,Minnesota,27095,19,1 +2020-06-02,Mille Lacs,Minnesota,27095,20,1 +2020-06-03,Mille Lacs,Minnesota,27095,22,1 +2020-06-04,Mille Lacs,Minnesota,27095,23,1 +2020-06-05,Mille Lacs,Minnesota,27095,24,1 +2020-06-06,Mille Lacs,Minnesota,27095,24,1 +2020-06-07,Mille Lacs,Minnesota,27095,24,1 +2020-06-08,Mille Lacs,Minnesota,27095,24,1 +2020-06-09,Mille Lacs,Minnesota,27095,24,1 +2020-06-10,Mille Lacs,Minnesota,27095,24,1 +2020-06-11,Mille Lacs,Minnesota,27095,26,1 +2020-06-12,Mille Lacs,Minnesota,27095,26,1 +2020-06-13,Mille Lacs,Minnesota,27095,28,1 +2020-06-14,Mille Lacs,Minnesota,27095,28,1 +2020-06-15,Mille Lacs,Minnesota,27095,28,1 +2020-06-16,Mille Lacs,Minnesota,27095,28,1 +2020-06-17,Mille Lacs,Minnesota,27095,28,1 +2020-06-18,Mille Lacs,Minnesota,27095,28,1 +2020-06-19,Mille Lacs,Minnesota,27095,29,1 +2020-06-20,Mille Lacs,Minnesota,27095,29,1 +2020-06-21,Mille Lacs,Minnesota,27095,30,1 +2020-06-22,Mille Lacs,Minnesota,27095,30,1 +2020-06-23,Mille Lacs,Minnesota,27095,30,1 +2020-06-24,Mille Lacs,Minnesota,27095,30,1 +2020-06-25,Mille Lacs,Minnesota,27095,31,1 +2020-06-26,Mille Lacs,Minnesota,27095,31,1 +2020-06-27,Mille Lacs,Minnesota,27095,32,1 +2020-06-28,Mille Lacs,Minnesota,27095,32,1 +2020-06-29,Mille Lacs,Minnesota,27095,32,1 +2020-06-30,Mille Lacs,Minnesota,27095,32,2 +2020-07-01,Mille Lacs,Minnesota,27095,34,2 +2020-07-02,Mille Lacs,Minnesota,27095,34,2 +2020-07-03,Mille Lacs,Minnesota,27095,34,2 +2020-07-04,Mille Lacs,Minnesota,27095,34,2 +2020-07-05,Mille Lacs,Minnesota,27095,34,2 +2020-07-06,Mille Lacs,Minnesota,27095,34,2 +2020-07-07,Mille Lacs,Minnesota,27095,34,2 +2020-07-08,Mille Lacs,Minnesota,27095,34,2 +2020-07-09,Mille Lacs,Minnesota,27095,34,2 +2020-04-19,Morrison,Minnesota,27097,1,0 +2020-04-20,Morrison,Minnesota,27097,1,0 +2020-04-21,Morrison,Minnesota,27097,1,0 +2020-04-22,Morrison,Minnesota,27097,1,0 +2020-04-23,Morrison,Minnesota,27097,1,0 +2020-04-24,Morrison,Minnesota,27097,1,0 +2020-04-25,Morrison,Minnesota,27097,1,0 +2020-04-26,Morrison,Minnesota,27097,1,0 +2020-04-27,Morrison,Minnesota,27097,1,0 +2020-04-28,Morrison,Minnesota,27097,1,0 +2020-04-29,Morrison,Minnesota,27097,2,0 +2020-04-30,Morrison,Minnesota,27097,5,0 +2020-05-01,Morrison,Minnesota,27097,6,0 +2020-05-02,Morrison,Minnesota,27097,6,0 +2020-05-03,Morrison,Minnesota,27097,6,0 +2020-05-04,Morrison,Minnesota,27097,6,0 +2020-05-05,Morrison,Minnesota,27097,7,0 +2020-05-06,Morrison,Minnesota,27097,9,0 +2020-05-07,Morrison,Minnesota,27097,11,0 +2020-05-08,Morrison,Minnesota,27097,12,0 +2020-05-09,Morrison,Minnesota,27097,13,0 +2020-05-10,Morrison,Minnesota,27097,14,0 +2020-05-11,Morrison,Minnesota,27097,14,0 +2020-05-12,Morrison,Minnesota,27097,16,0 +2020-05-13,Morrison,Minnesota,27097,16,0 +2020-05-14,Morrison,Minnesota,27097,21,0 +2020-05-15,Morrison,Minnesota,27097,23,0 +2020-05-16,Morrison,Minnesota,27097,24,0 +2020-05-17,Morrison,Minnesota,27097,25,0 +2020-05-18,Morrison,Minnesota,27097,27,0 +2020-05-19,Morrison,Minnesota,27097,29,0 +2020-05-20,Morrison,Minnesota,27097,31,0 +2020-05-21,Morrison,Minnesota,27097,32,0 +2020-05-22,Morrison,Minnesota,27097,34,0 +2020-05-23,Morrison,Minnesota,27097,36,0 +2020-05-24,Morrison,Minnesota,27097,38,0 +2020-05-25,Morrison,Minnesota,27097,38,0 +2020-05-26,Morrison,Minnesota,27097,39,0 +2020-05-27,Morrison,Minnesota,27097,40,0 +2020-05-28,Morrison,Minnesota,27097,41,0 +2020-05-29,Morrison,Minnesota,27097,45,0 +2020-05-30,Morrison,Minnesota,27097,45,0 +2020-05-31,Morrison,Minnesota,27097,46,0 +2020-06-01,Morrison,Minnesota,27097,47,0 +2020-06-02,Morrison,Minnesota,27097,48,0 +2020-06-03,Morrison,Minnesota,27097,48,0 +2020-06-04,Morrison,Minnesota,27097,48,0 +2020-06-05,Morrison,Minnesota,27097,48,0 +2020-06-06,Morrison,Minnesota,27097,49,0 +2020-06-07,Morrison,Minnesota,27097,51,0 +2020-06-08,Morrison,Minnesota,27097,51,0 +2020-06-09,Morrison,Minnesota,27097,51,0 +2020-06-10,Morrison,Minnesota,27097,52,0 +2020-06-11,Morrison,Minnesota,27097,53,1 +2020-06-12,Morrison,Minnesota,27097,54,1 +2020-06-13,Morrison,Minnesota,27097,54,1 +2020-06-14,Morrison,Minnesota,27097,54,1 +2020-06-15,Morrison,Minnesota,27097,54,1 +2020-06-16,Morrison,Minnesota,27097,54,1 +2020-06-17,Morrison,Minnesota,27097,54,1 +2020-06-18,Morrison,Minnesota,27097,54,1 +2020-06-19,Morrison,Minnesota,27097,54,1 +2020-06-20,Morrison,Minnesota,27097,54,1 +2020-06-21,Morrison,Minnesota,27097,55,1 +2020-06-22,Morrison,Minnesota,27097,56,1 +2020-06-23,Morrison,Minnesota,27097,56,1 +2020-06-24,Morrison,Minnesota,27097,56,1 +2020-06-25,Morrison,Minnesota,27097,56,1 +2020-06-26,Morrison,Minnesota,27097,57,1 +2020-06-27,Morrison,Minnesota,27097,57,1 +2020-06-28,Morrison,Minnesota,27097,57,1 +2020-06-29,Morrison,Minnesota,27097,58,1 +2020-06-30,Morrison,Minnesota,27097,58,1 +2020-07-01,Morrison,Minnesota,27097,57,1 +2020-07-02,Morrison,Minnesota,27097,59,1 +2020-07-03,Morrison,Minnesota,27097,59,1 +2020-07-04,Morrison,Minnesota,27097,59,1 +2020-07-05,Morrison,Minnesota,27097,59,1 +2020-07-06,Morrison,Minnesota,27097,59,1 +2020-07-07,Morrison,Minnesota,27097,61,1 +2020-07-08,Morrison,Minnesota,27097,61,1 +2020-07-09,Morrison,Minnesota,27097,61,1 +2020-03-19,Mower,Minnesota,27099,1,0 +2020-03-20,Mower,Minnesota,27099,1,0 +2020-03-21,Mower,Minnesota,27099,3,0 +2020-03-22,Mower,Minnesota,27099,6,0 +2020-03-23,Mower,Minnesota,27099,6,0 +2020-03-24,Mower,Minnesota,27099,6,0 +2020-03-25,Mower,Minnesota,27099,6,0 +2020-03-26,Mower,Minnesota,27099,10,0 +2020-03-27,Mower,Minnesota,27099,10,0 +2020-03-28,Mower,Minnesota,27099,11,0 +2020-03-29,Mower,Minnesota,27099,11,0 +2020-03-30,Mower,Minnesota,27099,12,0 +2020-03-31,Mower,Minnesota,27099,13,0 +2020-04-01,Mower,Minnesota,27099,14,0 +2020-04-02,Mower,Minnesota,27099,15,0 +2020-04-03,Mower,Minnesota,27099,15,0 +2020-04-04,Mower,Minnesota,27099,17,0 +2020-04-05,Mower,Minnesota,27099,17,0 +2020-04-06,Mower,Minnesota,27099,17,0 +2020-04-07,Mower,Minnesota,27099,18,0 +2020-04-08,Mower,Minnesota,27099,18,0 +2020-04-09,Mower,Minnesota,27099,20,0 +2020-04-10,Mower,Minnesota,27099,22,0 +2020-04-11,Mower,Minnesota,27099,23,0 +2020-04-12,Mower,Minnesota,27099,25,0 +2020-04-13,Mower,Minnesota,27099,25,0 +2020-04-14,Mower,Minnesota,27099,24,0 +2020-04-15,Mower,Minnesota,27099,25,0 +2020-04-16,Mower,Minnesota,27099,25,0 +2020-04-17,Mower,Minnesota,27099,25,0 +2020-04-18,Mower,Minnesota,27099,26,0 +2020-04-19,Mower,Minnesota,27099,27,0 +2020-04-20,Mower,Minnesota,27099,26,0 +2020-04-21,Mower,Minnesota,27099,26,0 +2020-04-22,Mower,Minnesota,27099,27,0 +2020-04-23,Mower,Minnesota,27099,27,0 +2020-04-24,Mower,Minnesota,27099,28,0 +2020-04-25,Mower,Minnesota,27099,28,0 +2020-04-26,Mower,Minnesota,27099,28,0 +2020-04-27,Mower,Minnesota,27099,28,0 +2020-04-28,Mower,Minnesota,27099,28,0 +2020-04-29,Mower,Minnesota,27099,28,0 +2020-04-30,Mower,Minnesota,27099,28,0 +2020-05-01,Mower,Minnesota,27099,28,0 +2020-05-02,Mower,Minnesota,27099,28,0 +2020-05-03,Mower,Minnesota,27099,28,0 +2020-05-04,Mower,Minnesota,27099,32,0 +2020-05-05,Mower,Minnesota,27099,33,0 +2020-05-06,Mower,Minnesota,27099,35,0 +2020-05-07,Mower,Minnesota,27099,36,0 +2020-05-08,Mower,Minnesota,27099,37,0 +2020-05-09,Mower,Minnesota,27099,42,0 +2020-05-10,Mower,Minnesota,27099,45,0 +2020-05-11,Mower,Minnesota,27099,45,0 +2020-05-12,Mower,Minnesota,27099,45,0 +2020-05-13,Mower,Minnesota,27099,45,0 +2020-05-14,Mower,Minnesota,27099,50,0 +2020-05-15,Mower,Minnesota,27099,54,0 +2020-05-16,Mower,Minnesota,27099,56,0 +2020-05-17,Mower,Minnesota,27099,58,0 +2020-05-18,Mower,Minnesota,27099,65,0 +2020-05-19,Mower,Minnesota,27099,72,0 +2020-05-20,Mower,Minnesota,27099,78,1 +2020-05-21,Mower,Minnesota,27099,87,1 +2020-05-22,Mower,Minnesota,27099,112,1 +2020-05-23,Mower,Minnesota,27099,138,1 +2020-05-24,Mower,Minnesota,27099,150,1 +2020-05-25,Mower,Minnesota,27099,189,1 +2020-05-26,Mower,Minnesota,27099,206,1 +2020-05-27,Mower,Minnesota,27099,216,1 +2020-05-28,Mower,Minnesota,27099,231,1 +2020-05-29,Mower,Minnesota,27099,254,1 +2020-05-30,Mower,Minnesota,27099,303,1 +2020-05-31,Mower,Minnesota,27099,318,2 +2020-06-01,Mower,Minnesota,27099,345,2 +2020-06-02,Mower,Minnesota,27099,354,2 +2020-06-03,Mower,Minnesota,27099,366,2 +2020-06-04,Mower,Minnesota,27099,406,2 +2020-06-05,Mower,Minnesota,27099,446,2 +2020-06-06,Mower,Minnesota,27099,482,2 +2020-06-07,Mower,Minnesota,27099,504,2 +2020-06-08,Mower,Minnesota,27099,524,2 +2020-06-09,Mower,Minnesota,27099,537,2 +2020-06-10,Mower,Minnesota,27099,574,2 +2020-06-11,Mower,Minnesota,27099,604,2 +2020-06-12,Mower,Minnesota,27099,638,2 +2020-06-13,Mower,Minnesota,27099,640,2 +2020-06-14,Mower,Minnesota,27099,650,2 +2020-06-15,Mower,Minnesota,27099,651,2 +2020-06-16,Mower,Minnesota,27099,661,2 +2020-06-17,Mower,Minnesota,27099,733,2 +2020-06-18,Mower,Minnesota,27099,744,2 +2020-06-19,Mower,Minnesota,27099,755,2 +2020-06-20,Mower,Minnesota,27099,784,2 +2020-06-21,Mower,Minnesota,27099,797,2 +2020-06-22,Mower,Minnesota,27099,802,2 +2020-06-23,Mower,Minnesota,27099,813,2 +2020-06-24,Mower,Minnesota,27099,828,2 +2020-06-25,Mower,Minnesota,27099,847,2 +2020-06-26,Mower,Minnesota,27099,868,2 +2020-06-27,Mower,Minnesota,27099,894,2 +2020-06-28,Mower,Minnesota,27099,910,2 +2020-06-29,Mower,Minnesota,27099,911,2 +2020-06-30,Mower,Minnesota,27099,921,2 +2020-07-01,Mower,Minnesota,27099,928,2 +2020-07-02,Mower,Minnesota,27099,932,2 +2020-07-03,Mower,Minnesota,27099,945,2 +2020-07-04,Mower,Minnesota,27099,945,2 +2020-07-05,Mower,Minnesota,27099,951,2 +2020-07-06,Mower,Minnesota,27099,952,2 +2020-07-07,Mower,Minnesota,27099,960,2 +2020-07-08,Mower,Minnesota,27099,965,2 +2020-07-09,Mower,Minnesota,27099,972,2 +2020-04-06,Murray,Minnesota,27101,1,0 +2020-04-07,Murray,Minnesota,27101,1,0 +2020-04-08,Murray,Minnesota,27101,1,0 +2020-04-09,Murray,Minnesota,27101,1,0 +2020-04-10,Murray,Minnesota,27101,1,0 +2020-04-11,Murray,Minnesota,27101,1,0 +2020-04-12,Murray,Minnesota,27101,1,0 +2020-04-13,Murray,Minnesota,27101,1,0 +2020-04-14,Murray,Minnesota,27101,1,0 +2020-04-15,Murray,Minnesota,27101,1,0 +2020-04-16,Murray,Minnesota,27101,2,0 +2020-04-17,Murray,Minnesota,27101,2,0 +2020-04-18,Murray,Minnesota,27101,3,0 +2020-04-19,Murray,Minnesota,27101,3,0 +2020-04-20,Murray,Minnesota,27101,3,0 +2020-04-21,Murray,Minnesota,27101,3,0 +2020-04-22,Murray,Minnesota,27101,3,0 +2020-04-23,Murray,Minnesota,27101,4,0 +2020-04-24,Murray,Minnesota,27101,5,0 +2020-04-25,Murray,Minnesota,27101,8,0 +2020-04-26,Murray,Minnesota,27101,8,0 +2020-04-27,Murray,Minnesota,27101,10,0 +2020-04-28,Murray,Minnesota,27101,10,0 +2020-04-29,Murray,Minnesota,27101,11,0 +2020-04-30,Murray,Minnesota,27101,13,0 +2020-05-01,Murray,Minnesota,27101,16,0 +2020-05-02,Murray,Minnesota,27101,16,0 +2020-05-03,Murray,Minnesota,27101,17,0 +2020-05-04,Murray,Minnesota,27101,17,0 +2020-05-05,Murray,Minnesota,27101,20,0 +2020-05-06,Murray,Minnesota,27101,20,0 +2020-05-07,Murray,Minnesota,27101,25,0 +2020-05-08,Murray,Minnesota,27101,26,0 +2020-05-09,Murray,Minnesota,27101,27,0 +2020-05-10,Murray,Minnesota,27101,29,0 +2020-05-11,Murray,Minnesota,27101,29,0 +2020-05-12,Murray,Minnesota,27101,29,0 +2020-05-13,Murray,Minnesota,27101,29,0 +2020-05-14,Murray,Minnesota,27101,30,0 +2020-05-15,Murray,Minnesota,27101,30,0 +2020-05-16,Murray,Minnesota,27101,31,0 +2020-05-17,Murray,Minnesota,27101,31,0 +2020-05-18,Murray,Minnesota,27101,33,0 +2020-05-19,Murray,Minnesota,27101,33,0 +2020-05-20,Murray,Minnesota,27101,33,0 +2020-05-21,Murray,Minnesota,27101,33,0 +2020-05-22,Murray,Minnesota,27101,34,0 +2020-05-23,Murray,Minnesota,27101,35,0 +2020-05-24,Murray,Minnesota,27101,35,0 +2020-05-25,Murray,Minnesota,27101,35,0 +2020-05-26,Murray,Minnesota,27101,35,0 +2020-05-27,Murray,Minnesota,27101,36,0 +2020-05-28,Murray,Minnesota,27101,36,0 +2020-05-29,Murray,Minnesota,27101,37,0 +2020-05-30,Murray,Minnesota,27101,39,0 +2020-05-31,Murray,Minnesota,27101,39,0 +2020-06-01,Murray,Minnesota,27101,39,0 +2020-06-02,Murray,Minnesota,27101,39,0 +2020-06-03,Murray,Minnesota,27101,39,0 +2020-06-04,Murray,Minnesota,27101,40,0 +2020-06-05,Murray,Minnesota,27101,41,0 +2020-06-06,Murray,Minnesota,27101,41,0 +2020-06-07,Murray,Minnesota,27101,41,0 +2020-06-08,Murray,Minnesota,27101,41,0 +2020-06-09,Murray,Minnesota,27101,41,0 +2020-06-10,Murray,Minnesota,27101,41,0 +2020-06-11,Murray,Minnesota,27101,42,0 +2020-06-12,Murray,Minnesota,27101,42,0 +2020-06-13,Murray,Minnesota,27101,43,0 +2020-06-14,Murray,Minnesota,27101,43,0 +2020-06-15,Murray,Minnesota,27101,43,0 +2020-06-16,Murray,Minnesota,27101,43,0 +2020-06-17,Murray,Minnesota,27101,43,0 +2020-06-18,Murray,Minnesota,27101,44,0 +2020-06-19,Murray,Minnesota,27101,47,0 +2020-06-20,Murray,Minnesota,27101,47,0 +2020-06-21,Murray,Minnesota,27101,47,0 +2020-06-22,Murray,Minnesota,27101,47,0 +2020-06-23,Murray,Minnesota,27101,47,0 +2020-06-24,Murray,Minnesota,27101,47,0 +2020-06-25,Murray,Minnesota,27101,47,0 +2020-06-26,Murray,Minnesota,27101,47,0 +2020-06-27,Murray,Minnesota,27101,48,0 +2020-06-28,Murray,Minnesota,27101,49,0 +2020-06-29,Murray,Minnesota,27101,50,0 +2020-06-30,Murray,Minnesota,27101,51,0 +2020-07-01,Murray,Minnesota,27101,51,0 +2020-07-02,Murray,Minnesota,27101,54,0 +2020-07-03,Murray,Minnesota,27101,58,0 +2020-07-04,Murray,Minnesota,27101,58,0 +2020-07-05,Murray,Minnesota,27101,63,0 +2020-07-06,Murray,Minnesota,27101,64,0 +2020-07-07,Murray,Minnesota,27101,65,0 +2020-07-08,Murray,Minnesota,27101,66,0 +2020-07-09,Murray,Minnesota,27101,67,0 +2020-03-17,Nicollet,Minnesota,27103,1,0 +2020-03-18,Nicollet,Minnesota,27103,2,0 +2020-03-19,Nicollet,Minnesota,27103,2,0 +2020-03-20,Nicollet,Minnesota,27103,2,0 +2020-03-21,Nicollet,Minnesota,27103,2,0 +2020-03-22,Nicollet,Minnesota,27103,3,0 +2020-03-23,Nicollet,Minnesota,27103,3,0 +2020-03-24,Nicollet,Minnesota,27103,3,0 +2020-03-25,Nicollet,Minnesota,27103,3,0 +2020-03-26,Nicollet,Minnesota,27103,3,0 +2020-03-27,Nicollet,Minnesota,27103,3,0 +2020-03-28,Nicollet,Minnesota,27103,3,0 +2020-03-29,Nicollet,Minnesota,27103,3,0 +2020-03-30,Nicollet,Minnesota,27103,3,0 +2020-03-31,Nicollet,Minnesota,27103,3,0 +2020-04-01,Nicollet,Minnesota,27103,3,0 +2020-04-02,Nicollet,Minnesota,27103,3,0 +2020-04-03,Nicollet,Minnesota,27103,3,0 +2020-04-04,Nicollet,Minnesota,27103,4,0 +2020-04-05,Nicollet,Minnesota,27103,4,0 +2020-04-06,Nicollet,Minnesota,27103,4,0 +2020-04-07,Nicollet,Minnesota,27103,4,0 +2020-04-08,Nicollet,Minnesota,27103,5,0 +2020-04-09,Nicollet,Minnesota,27103,5,0 +2020-04-10,Nicollet,Minnesota,27103,6,0 +2020-04-11,Nicollet,Minnesota,27103,6,1 +2020-04-12,Nicollet,Minnesota,27103,6,1 +2020-04-13,Nicollet,Minnesota,27103,6,1 +2020-04-14,Nicollet,Minnesota,27103,7,1 +2020-04-15,Nicollet,Minnesota,27103,7,1 +2020-04-16,Nicollet,Minnesota,27103,7,1 +2020-04-17,Nicollet,Minnesota,27103,7,2 +2020-04-18,Nicollet,Minnesota,27103,7,2 +2020-04-19,Nicollet,Minnesota,27103,7,2 +2020-04-20,Nicollet,Minnesota,27103,7,2 +2020-04-21,Nicollet,Minnesota,27103,7,2 +2020-04-22,Nicollet,Minnesota,27103,8,2 +2020-04-23,Nicollet,Minnesota,27103,8,2 +2020-04-24,Nicollet,Minnesota,27103,8,2 +2020-04-25,Nicollet,Minnesota,27103,9,2 +2020-04-26,Nicollet,Minnesota,27103,9,2 +2020-04-27,Nicollet,Minnesota,27103,9,2 +2020-04-28,Nicollet,Minnesota,27103,9,2 +2020-04-29,Nicollet,Minnesota,27103,9,2 +2020-04-30,Nicollet,Minnesota,27103,11,2 +2020-05-01,Nicollet,Minnesota,27103,13,2 +2020-05-02,Nicollet,Minnesota,27103,15,2 +2020-05-03,Nicollet,Minnesota,27103,15,2 +2020-05-04,Nicollet,Minnesota,27103,16,2 +2020-05-05,Nicollet,Minnesota,27103,16,2 +2020-05-06,Nicollet,Minnesota,27103,17,2 +2020-05-07,Nicollet,Minnesota,27103,18,2 +2020-05-08,Nicollet,Minnesota,27103,18,2 +2020-05-09,Nicollet,Minnesota,27103,21,2 +2020-05-10,Nicollet,Minnesota,27103,21,2 +2020-05-11,Nicollet,Minnesota,27103,21,2 +2020-05-12,Nicollet,Minnesota,27103,22,2 +2020-05-13,Nicollet,Minnesota,27103,22,2 +2020-05-14,Nicollet,Minnesota,27103,23,2 +2020-05-15,Nicollet,Minnesota,27103,28,2 +2020-05-16,Nicollet,Minnesota,27103,33,2 +2020-05-17,Nicollet,Minnesota,27103,37,3 +2020-05-18,Nicollet,Minnesota,27103,39,3 +2020-05-19,Nicollet,Minnesota,27103,43,3 +2020-05-20,Nicollet,Minnesota,27103,44,3 +2020-05-21,Nicollet,Minnesota,27103,51,3 +2020-05-22,Nicollet,Minnesota,27103,63,3 +2020-05-23,Nicollet,Minnesota,27103,64,3 +2020-05-24,Nicollet,Minnesota,27103,68,3 +2020-05-25,Nicollet,Minnesota,27103,69,5 +2020-05-26,Nicollet,Minnesota,27103,71,6 +2020-05-27,Nicollet,Minnesota,27103,74,7 +2020-05-28,Nicollet,Minnesota,27103,82,7 +2020-05-29,Nicollet,Minnesota,27103,83,9 +2020-05-30,Nicollet,Minnesota,27103,86,10 +2020-05-31,Nicollet,Minnesota,27103,87,10 +2020-06-01,Nicollet,Minnesota,27103,88,10 +2020-06-02,Nicollet,Minnesota,27103,88,10 +2020-06-03,Nicollet,Minnesota,27103,88,10 +2020-06-04,Nicollet,Minnesota,27103,88,11 +2020-06-05,Nicollet,Minnesota,27103,88,11 +2020-06-06,Nicollet,Minnesota,27103,89,11 +2020-06-07,Nicollet,Minnesota,27103,89,11 +2020-06-08,Nicollet,Minnesota,27103,90,11 +2020-06-09,Nicollet,Minnesota,27103,91,11 +2020-06-10,Nicollet,Minnesota,27103,93,11 +2020-06-11,Nicollet,Minnesota,27103,93,11 +2020-06-12,Nicollet,Minnesota,27103,95,11 +2020-06-13,Nicollet,Minnesota,27103,95,11 +2020-06-14,Nicollet,Minnesota,27103,95,11 +2020-06-15,Nicollet,Minnesota,27103,95,11 +2020-06-16,Nicollet,Minnesota,27103,95,11 +2020-06-17,Nicollet,Minnesota,27103,95,11 +2020-06-18,Nicollet,Minnesota,27103,98,12 +2020-06-19,Nicollet,Minnesota,27103,105,12 +2020-06-20,Nicollet,Minnesota,27103,107,12 +2020-06-21,Nicollet,Minnesota,27103,108,12 +2020-06-22,Nicollet,Minnesota,27103,109,12 +2020-06-23,Nicollet,Minnesota,27103,109,12 +2020-06-24,Nicollet,Minnesota,27103,112,12 +2020-06-25,Nicollet,Minnesota,27103,115,12 +2020-06-26,Nicollet,Minnesota,27103,120,12 +2020-06-27,Nicollet,Minnesota,27103,123,12 +2020-06-28,Nicollet,Minnesota,27103,128,12 +2020-06-29,Nicollet,Minnesota,27103,136,12 +2020-06-30,Nicollet,Minnesota,27103,144,12 +2020-07-01,Nicollet,Minnesota,27103,149,12 +2020-07-02,Nicollet,Minnesota,27103,155,12 +2020-07-03,Nicollet,Minnesota,27103,159,12 +2020-07-04,Nicollet,Minnesota,27103,159,12 +2020-07-05,Nicollet,Minnesota,27103,166,12 +2020-07-06,Nicollet,Minnesota,27103,169,12 +2020-07-07,Nicollet,Minnesota,27103,173,12 +2020-07-08,Nicollet,Minnesota,27103,176,12 +2020-07-09,Nicollet,Minnesota,27103,187,12 +2020-04-10,Nobles,Minnesota,27105,1,0 +2020-04-11,Nobles,Minnesota,27105,1,0 +2020-04-12,Nobles,Minnesota,27105,1,0 +2020-04-13,Nobles,Minnesota,27105,1,0 +2020-04-14,Nobles,Minnesota,27105,3,0 +2020-04-15,Nobles,Minnesota,27105,2,0 +2020-04-16,Nobles,Minnesota,27105,2,0 +2020-04-17,Nobles,Minnesota,27105,12,0 +2020-04-18,Nobles,Minnesota,27105,36,0 +2020-04-19,Nobles,Minnesota,27105,60,0 +2020-04-20,Nobles,Minnesota,27105,76,0 +2020-04-21,Nobles,Minnesota,27105,101,0 +2020-04-22,Nobles,Minnesota,27105,126,1 +2020-04-23,Nobles,Minnesota,27105,196,1 +2020-04-24,Nobles,Minnesota,27105,258,1 +2020-04-25,Nobles,Minnesota,27105,325,1 +2020-04-26,Nobles,Minnesota,27105,352,1 +2020-04-27,Nobles,Minnesota,27105,399,1 +2020-04-28,Nobles,Minnesota,27105,477,1 +2020-04-29,Nobles,Minnesota,27105,615,1 +2020-04-30,Nobles,Minnesota,27105,742,1 +2020-05-01,Nobles,Minnesota,27105,866,1 +2020-05-02,Nobles,Minnesota,27105,899,1 +2020-05-03,Nobles,Minnesota,27105,940,1 +2020-05-04,Nobles,Minnesota,27105,1011,1 +2020-05-05,Nobles,Minnesota,27105,1069,1 +2020-05-06,Nobles,Minnesota,27105,1082,2 +2020-05-07,Nobles,Minnesota,27105,1153,2 +2020-05-08,Nobles,Minnesota,27105,1177,2 +2020-05-09,Nobles,Minnesota,27105,1230,2 +2020-05-10,Nobles,Minnesota,27105,1255,2 +2020-05-11,Nobles,Minnesota,27105,1269,2 +2020-05-12,Nobles,Minnesota,27105,1291,2 +2020-05-13,Nobles,Minnesota,27105,1291,2 +2020-05-14,Nobles,Minnesota,27105,1319,2 +2020-05-15,Nobles,Minnesota,27105,1342,2 +2020-05-16,Nobles,Minnesota,27105,1353,2 +2020-05-17,Nobles,Minnesota,27105,1361,2 +2020-05-18,Nobles,Minnesota,27105,1387,2 +2020-05-19,Nobles,Minnesota,27105,1394,2 +2020-05-20,Nobles,Minnesota,27105,1396,2 +2020-05-21,Nobles,Minnesota,27105,1414,2 +2020-05-22,Nobles,Minnesota,27105,1432,2 +2020-05-23,Nobles,Minnesota,27105,1444,2 +2020-05-24,Nobles,Minnesota,27105,1457,2 +2020-05-25,Nobles,Minnesota,27105,1469,2 +2020-05-26,Nobles,Minnesota,27105,1478,2 +2020-05-27,Nobles,Minnesota,27105,1488,3 +2020-05-28,Nobles,Minnesota,27105,1496,3 +2020-05-29,Nobles,Minnesota,27105,1503,4 +2020-05-30,Nobles,Minnesota,27105,1512,5 +2020-05-31,Nobles,Minnesota,27105,1539,5 +2020-06-01,Nobles,Minnesota,27105,1544,5 +2020-06-02,Nobles,Minnesota,27105,1552,5 +2020-06-03,Nobles,Minnesota,27105,1558,5 +2020-06-04,Nobles,Minnesota,27105,1562,5 +2020-06-05,Nobles,Minnesota,27105,1577,5 +2020-06-06,Nobles,Minnesota,27105,1585,5 +2020-06-07,Nobles,Minnesota,27105,1592,5 +2020-06-08,Nobles,Minnesota,27105,1597,5 +2020-06-09,Nobles,Minnesota,27105,1597,5 +2020-06-10,Nobles,Minnesota,27105,1599,6 +2020-06-11,Nobles,Minnesota,27105,1602,6 +2020-06-12,Nobles,Minnesota,27105,1607,6 +2020-06-13,Nobles,Minnesota,27105,1618,6 +2020-06-14,Nobles,Minnesota,27105,1620,6 +2020-06-15,Nobles,Minnesota,27105,1620,6 +2020-06-16,Nobles,Minnesota,27105,1620,6 +2020-06-17,Nobles,Minnesota,27105,1620,6 +2020-06-18,Nobles,Minnesota,27105,1621,6 +2020-06-19,Nobles,Minnesota,27105,1628,6 +2020-06-20,Nobles,Minnesota,27105,1630,6 +2020-06-21,Nobles,Minnesota,27105,1631,6 +2020-06-22,Nobles,Minnesota,27105,1632,6 +2020-06-23,Nobles,Minnesota,27105,1634,6 +2020-06-24,Nobles,Minnesota,27105,1635,6 +2020-06-25,Nobles,Minnesota,27105,1637,6 +2020-06-26,Nobles,Minnesota,27105,1643,6 +2020-06-27,Nobles,Minnesota,27105,1644,6 +2020-06-28,Nobles,Minnesota,27105,1649,6 +2020-06-29,Nobles,Minnesota,27105,1651,6 +2020-06-30,Nobles,Minnesota,27105,1652,6 +2020-07-01,Nobles,Minnesota,27105,1655,6 +2020-07-02,Nobles,Minnesota,27105,1661,6 +2020-07-03,Nobles,Minnesota,27105,1662,6 +2020-07-04,Nobles,Minnesota,27105,1662,6 +2020-07-05,Nobles,Minnesota,27105,1668,6 +2020-07-06,Nobles,Minnesota,27105,1669,6 +2020-07-07,Nobles,Minnesota,27105,1672,6 +2020-07-08,Nobles,Minnesota,27105,1672,6 +2020-07-09,Nobles,Minnesota,27105,1676,6 +2020-04-15,Norman,Minnesota,27107,1,0 +2020-04-16,Norman,Minnesota,27107,1,0 +2020-04-17,Norman,Minnesota,27107,2,0 +2020-04-18,Norman,Minnesota,27107,2,0 +2020-04-19,Norman,Minnesota,27107,4,0 +2020-04-20,Norman,Minnesota,27107,5,0 +2020-04-21,Norman,Minnesota,27107,5,0 +2020-04-22,Norman,Minnesota,27107,6,0 +2020-04-23,Norman,Minnesota,27107,6,0 +2020-04-24,Norman,Minnesota,27107,7,0 +2020-04-25,Norman,Minnesota,27107,7,0 +2020-04-26,Norman,Minnesota,27107,7,0 +2020-04-27,Norman,Minnesota,27107,7,0 +2020-04-28,Norman,Minnesota,27107,7,0 +2020-04-29,Norman,Minnesota,27107,8,0 +2020-04-30,Norman,Minnesota,27107,8,0 +2020-05-01,Norman,Minnesota,27107,8,0 +2020-05-02,Norman,Minnesota,27107,8,0 +2020-05-03,Norman,Minnesota,27107,8,0 +2020-05-04,Norman,Minnesota,27107,9,0 +2020-05-05,Norman,Minnesota,27107,9,0 +2020-05-06,Norman,Minnesota,27107,9,0 +2020-05-07,Norman,Minnesota,27107,9,0 +2020-05-08,Norman,Minnesota,27107,9,0 +2020-05-09,Norman,Minnesota,27107,9,0 +2020-05-10,Norman,Minnesota,27107,10,0 +2020-05-11,Norman,Minnesota,27107,10,0 +2020-05-12,Norman,Minnesota,27107,11,0 +2020-05-13,Norman,Minnesota,27107,11,0 +2020-05-14,Norman,Minnesota,27107,11,0 +2020-05-15,Norman,Minnesota,27107,11,0 +2020-05-16,Norman,Minnesota,27107,11,0 +2020-05-17,Norman,Minnesota,27107,11,0 +2020-05-18,Norman,Minnesota,27107,11,0 +2020-05-19,Norman,Minnesota,27107,11,0 +2020-05-20,Norman,Minnesota,27107,11,0 +2020-05-21,Norman,Minnesota,27107,11,0 +2020-05-22,Norman,Minnesota,27107,11,0 +2020-05-23,Norman,Minnesota,27107,11,0 +2020-05-24,Norman,Minnesota,27107,11,0 +2020-05-25,Norman,Minnesota,27107,11,0 +2020-05-26,Norman,Minnesota,27107,11,0 +2020-05-27,Norman,Minnesota,27107,11,0 +2020-05-28,Norman,Minnesota,27107,11,0 +2020-05-29,Norman,Minnesota,27107,12,0 +2020-05-30,Norman,Minnesota,27107,13,0 +2020-05-31,Norman,Minnesota,27107,13,0 +2020-06-01,Norman,Minnesota,27107,13,0 +2020-06-02,Norman,Minnesota,27107,13,0 +2020-06-03,Norman,Minnesota,27107,14,0 +2020-06-04,Norman,Minnesota,27107,15,0 +2020-06-05,Norman,Minnesota,27107,15,0 +2020-06-06,Norman,Minnesota,27107,15,0 +2020-06-07,Norman,Minnesota,27107,15,0 +2020-06-08,Norman,Minnesota,27107,16,0 +2020-06-09,Norman,Minnesota,27107,16,0 +2020-06-10,Norman,Minnesota,27107,16,0 +2020-06-11,Norman,Minnesota,27107,17,0 +2020-06-12,Norman,Minnesota,27107,17,0 +2020-06-13,Norman,Minnesota,27107,17,0 +2020-06-14,Norman,Minnesota,27107,17,0 +2020-06-15,Norman,Minnesota,27107,17,0 +2020-06-16,Norman,Minnesota,27107,17,0 +2020-06-17,Norman,Minnesota,27107,18,0 +2020-06-18,Norman,Minnesota,27107,18,0 +2020-06-19,Norman,Minnesota,27107,18,0 +2020-06-20,Norman,Minnesota,27107,18,0 +2020-06-21,Norman,Minnesota,27107,18,0 +2020-06-22,Norman,Minnesota,27107,18,0 +2020-06-23,Norman,Minnesota,27107,18,0 +2020-06-24,Norman,Minnesota,27107,18,0 +2020-06-25,Norman,Minnesota,27107,19,0 +2020-06-26,Norman,Minnesota,27107,19,0 +2020-06-27,Norman,Minnesota,27107,19,0 +2020-06-28,Norman,Minnesota,27107,19,0 +2020-06-29,Norman,Minnesota,27107,19,0 +2020-06-30,Norman,Minnesota,27107,20,0 +2020-07-01,Norman,Minnesota,27107,20,0 +2020-07-02,Norman,Minnesota,27107,20,0 +2020-07-03,Norman,Minnesota,27107,20,0 +2020-07-04,Norman,Minnesota,27107,20,0 +2020-07-05,Norman,Minnesota,27107,20,0 +2020-07-06,Norman,Minnesota,27107,20,0 +2020-07-07,Norman,Minnesota,27107,20,0 +2020-07-08,Norman,Minnesota,27107,21,0 +2020-07-09,Norman,Minnesota,27107,21,0 +2020-03-11,Olmsted,Minnesota,27109,1,0 +2020-03-12,Olmsted,Minnesota,27109,1,0 +2020-03-13,Olmsted,Minnesota,27109,1,0 +2020-03-14,Olmsted,Minnesota,27109,1,0 +2020-03-15,Olmsted,Minnesota,27109,2,0 +2020-03-16,Olmsted,Minnesota,27109,3,0 +2020-03-17,Olmsted,Minnesota,27109,3,0 +2020-03-18,Olmsted,Minnesota,27109,6,0 +2020-03-19,Olmsted,Minnesota,27109,6,0 +2020-03-20,Olmsted,Minnesota,27109,11,0 +2020-03-21,Olmsted,Minnesota,27109,12,0 +2020-03-22,Olmsted,Minnesota,27109,14,0 +2020-03-23,Olmsted,Minnesota,27109,16,0 +2020-03-24,Olmsted,Minnesota,27109,18,0 +2020-03-25,Olmsted,Minnesota,27109,21,0 +2020-03-26,Olmsted,Minnesota,27109,29,0 +2020-03-27,Olmsted,Minnesota,27109,34,0 +2020-03-28,Olmsted,Minnesota,27109,37,0 +2020-03-29,Olmsted,Minnesota,27109,47,0 +2020-03-30,Olmsted,Minnesota,27109,51,0 +2020-03-31,Olmsted,Minnesota,27109,53,0 +2020-04-01,Olmsted,Minnesota,27109,61,0 +2020-04-02,Olmsted,Minnesota,27109,66,1 +2020-04-03,Olmsted,Minnesota,27109,76,2 +2020-04-04,Olmsted,Minnesota,27109,88,2 +2020-04-05,Olmsted,Minnesota,27109,95,2 +2020-04-06,Olmsted,Minnesota,27109,96,2 +2020-04-07,Olmsted,Minnesota,27109,103,2 +2020-04-08,Olmsted,Minnesota,27109,108,2 +2020-04-09,Olmsted,Minnesota,27109,114,2 +2020-04-10,Olmsted,Minnesota,27109,126,2 +2020-04-11,Olmsted,Minnesota,27109,132,2 +2020-04-12,Olmsted,Minnesota,27109,143,2 +2020-04-13,Olmsted,Minnesota,27109,143,2 +2020-04-14,Olmsted,Minnesota,27109,147,2 +2020-04-15,Olmsted,Minnesota,27109,153,2 +2020-04-16,Olmsted,Minnesota,27109,163,2 +2020-04-17,Olmsted,Minnesota,27109,174,2 +2020-04-18,Olmsted,Minnesota,27109,177,2 +2020-04-19,Olmsted,Minnesota,27109,194,3 +2020-04-20,Olmsted,Minnesota,27109,197,4 +2020-04-21,Olmsted,Minnesota,27109,198,4 +2020-04-22,Olmsted,Minnesota,27109,204,4 +2020-04-23,Olmsted,Minnesota,27109,213,5 +2020-04-24,Olmsted,Minnesota,27109,219,6 +2020-04-25,Olmsted,Minnesota,27109,238,6 +2020-04-26,Olmsted,Minnesota,27109,239,6 +2020-04-27,Olmsted,Minnesota,27109,246,6 +2020-04-28,Olmsted,Minnesota,27109,251,6 +2020-04-29,Olmsted,Minnesota,27109,256,6 +2020-04-30,Olmsted,Minnesota,27109,265,6 +2020-05-01,Olmsted,Minnesota,27109,269,8 +2020-05-02,Olmsted,Minnesota,27109,282,8 +2020-05-03,Olmsted,Minnesota,27109,293,8 +2020-05-04,Olmsted,Minnesota,27109,305,8 +2020-05-05,Olmsted,Minnesota,27109,313,8 +2020-05-06,Olmsted,Minnesota,27109,322,8 +2020-05-07,Olmsted,Minnesota,27109,336,8 +2020-05-08,Olmsted,Minnesota,27109,351,9 +2020-05-09,Olmsted,Minnesota,27109,363,9 +2020-05-10,Olmsted,Minnesota,27109,368,9 +2020-05-11,Olmsted,Minnesota,27109,374,9 +2020-05-12,Olmsted,Minnesota,27109,378,9 +2020-05-13,Olmsted,Minnesota,27109,378,9 +2020-05-14,Olmsted,Minnesota,27109,399,9 +2020-05-15,Olmsted,Minnesota,27109,417,9 +2020-05-16,Olmsted,Minnesota,27109,435,9 +2020-05-17,Olmsted,Minnesota,27109,448,9 +2020-05-18,Olmsted,Minnesota,27109,461,9 +2020-05-19,Olmsted,Minnesota,27109,479,10 +2020-05-20,Olmsted,Minnesota,27109,488,10 +2020-05-21,Olmsted,Minnesota,27109,493,10 +2020-05-22,Olmsted,Minnesota,27109,525,10 +2020-05-23,Olmsted,Minnesota,27109,542,10 +2020-05-24,Olmsted,Minnesota,27109,551,10 +2020-05-25,Olmsted,Minnesota,27109,562,10 +2020-05-26,Olmsted,Minnesota,27109,570,10 +2020-05-27,Olmsted,Minnesota,27109,575,10 +2020-05-28,Olmsted,Minnesota,27109,582,10 +2020-05-29,Olmsted,Minnesota,27109,594,10 +2020-05-30,Olmsted,Minnesota,27109,608,10 +2020-05-31,Olmsted,Minnesota,27109,626,10 +2020-06-01,Olmsted,Minnesota,27109,634,10 +2020-06-02,Olmsted,Minnesota,27109,650,11 +2020-06-03,Olmsted,Minnesota,27109,654,11 +2020-06-04,Olmsted,Minnesota,27109,672,11 +2020-06-05,Olmsted,Minnesota,27109,689,11 +2020-06-06,Olmsted,Minnesota,27109,699,12 +2020-06-07,Olmsted,Minnesota,27109,711,12 +2020-06-08,Olmsted,Minnesota,27109,722,12 +2020-06-09,Olmsted,Minnesota,27109,727,12 +2020-06-10,Olmsted,Minnesota,27109,740,12 +2020-06-11,Olmsted,Minnesota,27109,752,12 +2020-06-12,Olmsted,Minnesota,27109,765,12 +2020-06-13,Olmsted,Minnesota,27109,775,12 +2020-06-14,Olmsted,Minnesota,27109,778,12 +2020-06-15,Olmsted,Minnesota,27109,778,12 +2020-06-16,Olmsted,Minnesota,27109,781,12 +2020-06-17,Olmsted,Minnesota,27109,810,12 +2020-06-18,Olmsted,Minnesota,27109,832,13 +2020-06-19,Olmsted,Minnesota,27109,846,14 +2020-06-20,Olmsted,Minnesota,27109,869,14 +2020-06-21,Olmsted,Minnesota,27109,903,14 +2020-06-22,Olmsted,Minnesota,27109,910,15 +2020-06-23,Olmsted,Minnesota,27109,916,15 +2020-06-24,Olmsted,Minnesota,27109,938,15 +2020-06-25,Olmsted,Minnesota,27109,948,15 +2020-06-26,Olmsted,Minnesota,27109,970,15 +2020-06-27,Olmsted,Minnesota,27109,998,15 +2020-06-28,Olmsted,Minnesota,27109,1020,15 +2020-06-29,Olmsted,Minnesota,27109,1027,15 +2020-06-30,Olmsted,Minnesota,27109,1047,15 +2020-07-01,Olmsted,Minnesota,27109,1058,15 +2020-07-02,Olmsted,Minnesota,27109,1076,15 +2020-07-03,Olmsted,Minnesota,27109,1101,15 +2020-07-04,Olmsted,Minnesota,27109,1101,15 +2020-07-05,Olmsted,Minnesota,27109,1124,15 +2020-07-06,Olmsted,Minnesota,27109,1129,15 +2020-07-07,Olmsted,Minnesota,27109,1147,15 +2020-07-08,Olmsted,Minnesota,27109,1168,17 +2020-07-09,Olmsted,Minnesota,27109,1196,17 +2020-03-29,Otter Tail,Minnesota,27111,1,0 +2020-03-30,Otter Tail,Minnesota,27111,1,0 +2020-03-31,Otter Tail,Minnesota,27111,1,0 +2020-04-01,Otter Tail,Minnesota,27111,1,0 +2020-04-02,Otter Tail,Minnesota,27111,1,0 +2020-04-03,Otter Tail,Minnesota,27111,1,0 +2020-04-04,Otter Tail,Minnesota,27111,1,0 +2020-04-05,Otter Tail,Minnesota,27111,1,0 +2020-04-06,Otter Tail,Minnesota,27111,2,0 +2020-04-07,Otter Tail,Minnesota,27111,2,0 +2020-04-08,Otter Tail,Minnesota,27111,2,0 +2020-04-09,Otter Tail,Minnesota,27111,3,0 +2020-04-10,Otter Tail,Minnesota,27111,3,0 +2020-04-11,Otter Tail,Minnesota,27111,4,0 +2020-04-12,Otter Tail,Minnesota,27111,4,0 +2020-04-13,Otter Tail,Minnesota,27111,4,0 +2020-04-14,Otter Tail,Minnesota,27111,4,0 +2020-04-15,Otter Tail,Minnesota,27111,4,0 +2020-04-16,Otter Tail,Minnesota,27111,4,0 +2020-04-17,Otter Tail,Minnesota,27111,4,0 +2020-04-18,Otter Tail,Minnesota,27111,5,0 +2020-04-19,Otter Tail,Minnesota,27111,6,0 +2020-04-20,Otter Tail,Minnesota,27111,6,0 +2020-04-21,Otter Tail,Minnesota,27111,6,0 +2020-04-22,Otter Tail,Minnesota,27111,6,0 +2020-04-23,Otter Tail,Minnesota,27111,6,0 +2020-04-24,Otter Tail,Minnesota,27111,6,0 +2020-04-25,Otter Tail,Minnesota,27111,8,0 +2020-04-26,Otter Tail,Minnesota,27111,8,0 +2020-04-27,Otter Tail,Minnesota,27111,8,0 +2020-04-28,Otter Tail,Minnesota,27111,8,0 +2020-04-29,Otter Tail,Minnesota,27111,8,0 +2020-04-30,Otter Tail,Minnesota,27111,9,0 +2020-05-01,Otter Tail,Minnesota,27111,14,0 +2020-05-02,Otter Tail,Minnesota,27111,17,0 +2020-05-03,Otter Tail,Minnesota,27111,17,0 +2020-05-04,Otter Tail,Minnesota,27111,18,0 +2020-05-05,Otter Tail,Minnesota,27111,19,0 +2020-05-06,Otter Tail,Minnesota,27111,19,0 +2020-05-07,Otter Tail,Minnesota,27111,21,0 +2020-05-08,Otter Tail,Minnesota,27111,21,0 +2020-05-09,Otter Tail,Minnesota,27111,23,0 +2020-05-10,Otter Tail,Minnesota,27111,23,0 +2020-05-11,Otter Tail,Minnesota,27111,25,0 +2020-05-12,Otter Tail,Minnesota,27111,25,0 +2020-05-13,Otter Tail,Minnesota,27111,25,0 +2020-05-14,Otter Tail,Minnesota,27111,33,0 +2020-05-15,Otter Tail,Minnesota,27111,35,0 +2020-05-16,Otter Tail,Minnesota,27111,36,0 +2020-05-17,Otter Tail,Minnesota,27111,38,0 +2020-05-18,Otter Tail,Minnesota,27111,47,0 +2020-05-19,Otter Tail,Minnesota,27111,51,0 +2020-05-20,Otter Tail,Minnesota,27111,51,0 +2020-05-21,Otter Tail,Minnesota,27111,52,0 +2020-05-22,Otter Tail,Minnesota,27111,52,0 +2020-05-23,Otter Tail,Minnesota,27111,53,0 +2020-05-24,Otter Tail,Minnesota,27111,55,0 +2020-05-25,Otter Tail,Minnesota,27111,60,0 +2020-05-26,Otter Tail,Minnesota,27111,59,0 +2020-05-27,Otter Tail,Minnesota,27111,62,0 +2020-05-28,Otter Tail,Minnesota,27111,63,0 +2020-05-29,Otter Tail,Minnesota,27111,63,0 +2020-05-30,Otter Tail,Minnesota,27111,64,0 +2020-05-31,Otter Tail,Minnesota,27111,68,0 +2020-06-01,Otter Tail,Minnesota,27111,70,0 +2020-06-02,Otter Tail,Minnesota,27111,70,0 +2020-06-03,Otter Tail,Minnesota,27111,71,0 +2020-06-04,Otter Tail,Minnesota,27111,73,0 +2020-06-05,Otter Tail,Minnesota,27111,73,1 +2020-06-06,Otter Tail,Minnesota,27111,75,1 +2020-06-07,Otter Tail,Minnesota,27111,76,1 +2020-06-08,Otter Tail,Minnesota,27111,77,1 +2020-06-09,Otter Tail,Minnesota,27111,78,1 +2020-06-10,Otter Tail,Minnesota,27111,78,1 +2020-06-11,Otter Tail,Minnesota,27111,80,1 +2020-06-12,Otter Tail,Minnesota,27111,80,1 +2020-06-13,Otter Tail,Minnesota,27111,83,1 +2020-06-14,Otter Tail,Minnesota,27111,83,1 +2020-06-15,Otter Tail,Minnesota,27111,83,1 +2020-06-16,Otter Tail,Minnesota,27111,83,1 +2020-06-17,Otter Tail,Minnesota,27111,83,1 +2020-06-18,Otter Tail,Minnesota,27111,83,1 +2020-06-19,Otter Tail,Minnesota,27111,83,1 +2020-06-20,Otter Tail,Minnesota,27111,85,1 +2020-06-21,Otter Tail,Minnesota,27111,85,1 +2020-06-22,Otter Tail,Minnesota,27111,85,1 +2020-06-23,Otter Tail,Minnesota,27111,85,1 +2020-06-24,Otter Tail,Minnesota,27111,85,1 +2020-06-25,Otter Tail,Minnesota,27111,85,1 +2020-06-26,Otter Tail,Minnesota,27111,86,1 +2020-06-27,Otter Tail,Minnesota,27111,87,1 +2020-06-28,Otter Tail,Minnesota,27111,88,1 +2020-06-29,Otter Tail,Minnesota,27111,91,1 +2020-06-30,Otter Tail,Minnesota,27111,92,1 +2020-07-01,Otter Tail,Minnesota,27111,92,1 +2020-07-02,Otter Tail,Minnesota,27111,92,1 +2020-07-03,Otter Tail,Minnesota,27111,93,1 +2020-07-04,Otter Tail,Minnesota,27111,93,1 +2020-07-05,Otter Tail,Minnesota,27111,93,1 +2020-07-06,Otter Tail,Minnesota,27111,95,1 +2020-07-07,Otter Tail,Minnesota,27111,100,1 +2020-07-08,Otter Tail,Minnesota,27111,100,1 +2020-07-09,Otter Tail,Minnesota,27111,102,1 +2020-04-21,Pennington,Minnesota,27113,1,0 +2020-04-22,Pennington,Minnesota,27113,1,0 +2020-04-23,Pennington,Minnesota,27113,1,0 +2020-04-24,Pennington,Minnesota,27113,1,0 +2020-04-25,Pennington,Minnesota,27113,1,0 +2020-04-26,Pennington,Minnesota,27113,1,0 +2020-04-27,Pennington,Minnesota,27113,1,0 +2020-04-28,Pennington,Minnesota,27113,1,0 +2020-04-29,Pennington,Minnesota,27113,1,0 +2020-04-30,Pennington,Minnesota,27113,1,0 +2020-05-01,Pennington,Minnesota,27113,1,0 +2020-05-02,Pennington,Minnesota,27113,1,0 +2020-05-03,Pennington,Minnesota,27113,1,0 +2020-05-04,Pennington,Minnesota,27113,1,0 +2020-05-05,Pennington,Minnesota,27113,1,0 +2020-05-06,Pennington,Minnesota,27113,1,0 +2020-05-07,Pennington,Minnesota,27113,1,0 +2020-05-08,Pennington,Minnesota,27113,1,0 +2020-05-09,Pennington,Minnesota,27113,1,0 +2020-05-10,Pennington,Minnesota,27113,1,0 +2020-05-11,Pennington,Minnesota,27113,1,0 +2020-05-12,Pennington,Minnesota,27113,1,0 +2020-05-13,Pennington,Minnesota,27113,1,0 +2020-05-14,Pennington,Minnesota,27113,1,0 +2020-05-15,Pennington,Minnesota,27113,1,0 +2020-05-16,Pennington,Minnesota,27113,1,0 +2020-05-17,Pennington,Minnesota,27113,1,0 +2020-05-18,Pennington,Minnesota,27113,2,0 +2020-05-19,Pennington,Minnesota,27113,3,0 +2020-05-20,Pennington,Minnesota,27113,3,0 +2020-05-21,Pennington,Minnesota,27113,4,0 +2020-05-22,Pennington,Minnesota,27113,6,0 +2020-05-23,Pennington,Minnesota,27113,7,0 +2020-05-24,Pennington,Minnesota,27113,7,0 +2020-05-25,Pennington,Minnesota,27113,9,0 +2020-05-26,Pennington,Minnesota,27113,14,0 +2020-05-27,Pennington,Minnesota,27113,17,0 +2020-05-28,Pennington,Minnesota,27113,17,0 +2020-05-29,Pennington,Minnesota,27113,17,0 +2020-05-30,Pennington,Minnesota,27113,17,0 +2020-05-31,Pennington,Minnesota,27113,19,0 +2020-06-01,Pennington,Minnesota,27113,19,0 +2020-06-02,Pennington,Minnesota,27113,19,0 +2020-06-03,Pennington,Minnesota,27113,21,0 +2020-06-04,Pennington,Minnesota,27113,23,0 +2020-06-05,Pennington,Minnesota,27113,30,0 +2020-06-06,Pennington,Minnesota,27113,31,0 +2020-06-07,Pennington,Minnesota,27113,34,0 +2020-06-08,Pennington,Minnesota,27113,36,0 +2020-06-09,Pennington,Minnesota,27113,37,0 +2020-06-10,Pennington,Minnesota,27113,37,0 +2020-06-11,Pennington,Minnesota,27113,37,0 +2020-06-12,Pennington,Minnesota,27113,50,0 +2020-06-13,Pennington,Minnesota,27113,50,0 +2020-06-14,Pennington,Minnesota,27113,50,0 +2020-06-15,Pennington,Minnesota,27113,51,0 +2020-06-16,Pennington,Minnesota,27113,51,0 +2020-06-17,Pennington,Minnesota,27113,51,0 +2020-06-18,Pennington,Minnesota,27113,52,0 +2020-06-19,Pennington,Minnesota,27113,50,0 +2020-06-20,Pennington,Minnesota,27113,50,0 +2020-06-21,Pennington,Minnesota,27113,50,0 +2020-06-22,Pennington,Minnesota,27113,50,0 +2020-06-23,Pennington,Minnesota,27113,50,0 +2020-06-24,Pennington,Minnesota,27113,50,0 +2020-06-25,Pennington,Minnesota,27113,50,0 +2020-06-26,Pennington,Minnesota,27113,50,0 +2020-06-27,Pennington,Minnesota,27113,50,0 +2020-06-28,Pennington,Minnesota,27113,50,0 +2020-06-29,Pennington,Minnesota,27113,50,0 +2020-06-30,Pennington,Minnesota,27113,50,0 +2020-07-01,Pennington,Minnesota,27113,51,0 +2020-07-02,Pennington,Minnesota,27113,51,0 +2020-07-03,Pennington,Minnesota,27113,50,0 +2020-07-04,Pennington,Minnesota,27113,50,0 +2020-07-05,Pennington,Minnesota,27113,51,0 +2020-07-06,Pennington,Minnesota,27113,51,0 +2020-07-07,Pennington,Minnesota,27113,52,0 +2020-07-08,Pennington,Minnesota,27113,52,0 +2020-07-09,Pennington,Minnesota,27113,53,0 +2020-04-08,Pine,Minnesota,27115,1,0 +2020-04-09,Pine,Minnesota,27115,2,0 +2020-04-10,Pine,Minnesota,27115,3,0 +2020-04-11,Pine,Minnesota,27115,3,0 +2020-04-12,Pine,Minnesota,27115,5,0 +2020-04-13,Pine,Minnesota,27115,5,0 +2020-04-14,Pine,Minnesota,27115,6,0 +2020-04-15,Pine,Minnesota,27115,6,0 +2020-04-16,Pine,Minnesota,27115,8,0 +2020-04-17,Pine,Minnesota,27115,9,0 +2020-04-18,Pine,Minnesota,27115,10,0 +2020-04-19,Pine,Minnesota,27115,10,0 +2020-04-20,Pine,Minnesota,27115,11,0 +2020-04-21,Pine,Minnesota,27115,12,0 +2020-04-22,Pine,Minnesota,27115,15,0 +2020-04-23,Pine,Minnesota,27115,26,0 +2020-04-24,Pine,Minnesota,27115,43,0 +2020-04-25,Pine,Minnesota,27115,45,0 +2020-04-26,Pine,Minnesota,27115,52,0 +2020-04-27,Pine,Minnesota,27115,56,0 +2020-04-28,Pine,Minnesota,27115,56,0 +2020-04-29,Pine,Minnesota,27115,56,0 +2020-04-30,Pine,Minnesota,27115,56,0 +2020-05-01,Pine,Minnesota,27115,58,0 +2020-05-02,Pine,Minnesota,27115,58,0 +2020-05-03,Pine,Minnesota,27115,58,0 +2020-05-04,Pine,Minnesota,27115,60,0 +2020-05-05,Pine,Minnesota,27115,60,0 +2020-05-06,Pine,Minnesota,27115,61,0 +2020-05-07,Pine,Minnesota,27115,61,0 +2020-05-08,Pine,Minnesota,27115,61,0 +2020-05-09,Pine,Minnesota,27115,69,0 +2020-05-10,Pine,Minnesota,27115,73,0 +2020-05-11,Pine,Minnesota,27115,73,0 +2020-05-12,Pine,Minnesota,27115,73,0 +2020-05-13,Pine,Minnesota,27115,73,0 +2020-05-14,Pine,Minnesota,27115,80,0 +2020-05-15,Pine,Minnesota,27115,82,0 +2020-05-16,Pine,Minnesota,27115,83,0 +2020-05-17,Pine,Minnesota,27115,83,0 +2020-05-18,Pine,Minnesota,27115,83,0 +2020-05-19,Pine,Minnesota,27115,83,0 +2020-05-20,Pine,Minnesota,27115,83,0 +2020-05-21,Pine,Minnesota,27115,83,0 +2020-05-22,Pine,Minnesota,27115,84,0 +2020-05-23,Pine,Minnesota,27115,84,0 +2020-05-24,Pine,Minnesota,27115,85,0 +2020-05-25,Pine,Minnesota,27115,85,0 +2020-05-26,Pine,Minnesota,27115,85,0 +2020-05-27,Pine,Minnesota,27115,85,0 +2020-05-28,Pine,Minnesota,27115,89,0 +2020-05-29,Pine,Minnesota,27115,89,0 +2020-05-30,Pine,Minnesota,27115,89,0 +2020-05-31,Pine,Minnesota,27115,89,0 +2020-06-01,Pine,Minnesota,27115,89,0 +2020-06-02,Pine,Minnesota,27115,89,0 +2020-06-03,Pine,Minnesota,27115,90,0 +2020-06-04,Pine,Minnesota,27115,93,0 +2020-06-05,Pine,Minnesota,27115,93,0 +2020-06-06,Pine,Minnesota,27115,93,0 +2020-06-07,Pine,Minnesota,27115,93,0 +2020-06-08,Pine,Minnesota,27115,93,0 +2020-06-09,Pine,Minnesota,27115,94,0 +2020-06-10,Pine,Minnesota,27115,94,0 +2020-06-11,Pine,Minnesota,27115,95,0 +2020-06-12,Pine,Minnesota,27115,95,0 +2020-06-13,Pine,Minnesota,27115,95,0 +2020-06-14,Pine,Minnesota,27115,96,0 +2020-06-15,Pine,Minnesota,27115,96,0 +2020-06-16,Pine,Minnesota,27115,96,0 +2020-06-17,Pine,Minnesota,27115,96,0 +2020-06-18,Pine,Minnesota,27115,96,0 +2020-06-19,Pine,Minnesota,27115,96,0 +2020-06-20,Pine,Minnesota,27115,96,0 +2020-06-21,Pine,Minnesota,27115,97,0 +2020-06-22,Pine,Minnesota,27115,97,0 +2020-06-23,Pine,Minnesota,27115,97,0 +2020-06-24,Pine,Minnesota,27115,97,0 +2020-06-25,Pine,Minnesota,27115,98,0 +2020-06-26,Pine,Minnesota,27115,98,0 +2020-06-27,Pine,Minnesota,27115,98,0 +2020-06-28,Pine,Minnesota,27115,99,0 +2020-06-29,Pine,Minnesota,27115,100,0 +2020-06-30,Pine,Minnesota,27115,100,0 +2020-07-01,Pine,Minnesota,27115,103,0 +2020-07-02,Pine,Minnesota,27115,103,0 +2020-07-03,Pine,Minnesota,27115,103,0 +2020-07-04,Pine,Minnesota,27115,103,0 +2020-07-05,Pine,Minnesota,27115,103,0 +2020-07-06,Pine,Minnesota,27115,105,0 +2020-07-07,Pine,Minnesota,27115,107,0 +2020-07-08,Pine,Minnesota,27115,110,0 +2020-07-09,Pine,Minnesota,27115,111,0 +2020-04-05,Pipestone,Minnesota,27117,1,0 +2020-04-06,Pipestone,Minnesota,27117,1,0 +2020-04-07,Pipestone,Minnesota,27117,1,0 +2020-04-08,Pipestone,Minnesota,27117,1,0 +2020-04-09,Pipestone,Minnesota,27117,1,0 +2020-04-10,Pipestone,Minnesota,27117,1,0 +2020-04-11,Pipestone,Minnesota,27117,1,0 +2020-04-12,Pipestone,Minnesota,27117,1,0 +2020-04-13,Pipestone,Minnesota,27117,1,0 +2020-04-14,Pipestone,Minnesota,27117,1,0 +2020-04-15,Pipestone,Minnesota,27117,1,0 +2020-04-16,Pipestone,Minnesota,27117,1,0 +2020-04-17,Pipestone,Minnesota,27117,1,0 +2020-04-18,Pipestone,Minnesota,27117,2,0 +2020-04-19,Pipestone,Minnesota,27117,2,0 +2020-04-20,Pipestone,Minnesota,27117,2,0 +2020-04-21,Pipestone,Minnesota,27117,2,0 +2020-04-22,Pipestone,Minnesota,27117,2,0 +2020-04-23,Pipestone,Minnesota,27117,2,0 +2020-04-24,Pipestone,Minnesota,27117,2,0 +2020-04-25,Pipestone,Minnesota,27117,2,0 +2020-04-26,Pipestone,Minnesota,27117,2,0 +2020-04-27,Pipestone,Minnesota,27117,2,0 +2020-04-28,Pipestone,Minnesota,27117,2,0 +2020-04-29,Pipestone,Minnesota,27117,2,0 +2020-04-30,Pipestone,Minnesota,27117,2,0 +2020-05-01,Pipestone,Minnesota,27117,2,0 +2020-05-02,Pipestone,Minnesota,27117,3,0 +2020-05-03,Pipestone,Minnesota,27117,3,0 +2020-05-04,Pipestone,Minnesota,27117,4,0 +2020-05-05,Pipestone,Minnesota,27117,4,0 +2020-05-06,Pipestone,Minnesota,27117,4,0 +2020-05-07,Pipestone,Minnesota,27117,5,0 +2020-05-08,Pipestone,Minnesota,27117,6,0 +2020-05-09,Pipestone,Minnesota,27117,7,0 +2020-05-10,Pipestone,Minnesota,27117,7,0 +2020-05-11,Pipestone,Minnesota,27117,7,0 +2020-05-12,Pipestone,Minnesota,27117,7,0 +2020-05-13,Pipestone,Minnesota,27117,7,0 +2020-05-14,Pipestone,Minnesota,27117,9,0 +2020-05-15,Pipestone,Minnesota,27117,9,0 +2020-05-16,Pipestone,Minnesota,27117,9,0 +2020-05-17,Pipestone,Minnesota,27117,9,0 +2020-05-18,Pipestone,Minnesota,27117,10,0 +2020-05-19,Pipestone,Minnesota,27117,10,0 +2020-05-20,Pipestone,Minnesota,27117,10,0 +2020-05-21,Pipestone,Minnesota,27117,10,0 +2020-05-22,Pipestone,Minnesota,27117,10,0 +2020-05-23,Pipestone,Minnesota,27117,10,0 +2020-05-24,Pipestone,Minnesota,27117,10,0 +2020-05-25,Pipestone,Minnesota,27117,10,0 +2020-05-26,Pipestone,Minnesota,27117,10,0 +2020-05-27,Pipestone,Minnesota,27117,10,0 +2020-05-28,Pipestone,Minnesota,27117,10,0 +2020-05-29,Pipestone,Minnesota,27117,10,0 +2020-05-30,Pipestone,Minnesota,27117,12,0 +2020-05-31,Pipestone,Minnesota,27117,12,0 +2020-06-01,Pipestone,Minnesota,27117,12,0 +2020-06-02,Pipestone,Minnesota,27117,12,0 +2020-06-03,Pipestone,Minnesota,27117,12,0 +2020-06-04,Pipestone,Minnesota,27117,12,0 +2020-06-05,Pipestone,Minnesota,27117,13,0 +2020-06-06,Pipestone,Minnesota,27117,13,0 +2020-06-07,Pipestone,Minnesota,27117,14,0 +2020-06-08,Pipestone,Minnesota,27117,14,0 +2020-06-09,Pipestone,Minnesota,27117,14,0 +2020-06-10,Pipestone,Minnesota,27117,14,0 +2020-06-11,Pipestone,Minnesota,27117,15,0 +2020-06-12,Pipestone,Minnesota,27117,15,0 +2020-06-13,Pipestone,Minnesota,27117,15,0 +2020-06-14,Pipestone,Minnesota,27117,14,0 +2020-06-15,Pipestone,Minnesota,27117,14,0 +2020-06-16,Pipestone,Minnesota,27117,14,0 +2020-06-17,Pipestone,Minnesota,27117,14,0 +2020-06-18,Pipestone,Minnesota,27117,14,0 +2020-06-19,Pipestone,Minnesota,27117,14,0 +2020-06-20,Pipestone,Minnesota,27117,14,0 +2020-06-21,Pipestone,Minnesota,27117,14,0 +2020-06-22,Pipestone,Minnesota,27117,15,0 +2020-06-23,Pipestone,Minnesota,27117,15,0 +2020-06-24,Pipestone,Minnesota,27117,15,0 +2020-06-25,Pipestone,Minnesota,27117,15,0 +2020-06-26,Pipestone,Minnesota,27117,16,0 +2020-06-27,Pipestone,Minnesota,27117,16,0 +2020-06-28,Pipestone,Minnesota,27117,20,1 +2020-06-29,Pipestone,Minnesota,27117,20,1 +2020-06-30,Pipestone,Minnesota,27117,25,1 +2020-07-01,Pipestone,Minnesota,27117,26,1 +2020-07-02,Pipestone,Minnesota,27117,31,1 +2020-07-03,Pipestone,Minnesota,27117,37,1 +2020-07-04,Pipestone,Minnesota,27117,37,1 +2020-07-05,Pipestone,Minnesota,27117,44,2 +2020-07-06,Pipestone,Minnesota,27117,52,2 +2020-07-07,Pipestone,Minnesota,27117,59,2 +2020-07-08,Pipestone,Minnesota,27117,63,2 +2020-07-09,Pipestone,Minnesota,27117,66,4 +2020-04-04,Polk,Minnesota,27119,1,0 +2020-04-05,Polk,Minnesota,27119,1,0 +2020-04-06,Polk,Minnesota,27119,1,0 +2020-04-07,Polk,Minnesota,27119,1,0 +2020-04-08,Polk,Minnesota,27119,1,0 +2020-04-09,Polk,Minnesota,27119,1,0 +2020-04-10,Polk,Minnesota,27119,1,0 +2020-04-11,Polk,Minnesota,27119,1,0 +2020-04-12,Polk,Minnesota,27119,1,0 +2020-04-13,Polk,Minnesota,27119,1,0 +2020-04-14,Polk,Minnesota,27119,1,0 +2020-04-15,Polk,Minnesota,27119,1,0 +2020-04-16,Polk,Minnesota,27119,2,0 +2020-04-17,Polk,Minnesota,27119,2,0 +2020-04-18,Polk,Minnesota,27119,2,0 +2020-04-19,Polk,Minnesota,27119,3,0 +2020-04-20,Polk,Minnesota,27119,3,0 +2020-04-21,Polk,Minnesota,27119,4,0 +2020-04-22,Polk,Minnesota,27119,17,0 +2020-04-23,Polk,Minnesota,27119,19,0 +2020-04-24,Polk,Minnesota,27119,19,0 +2020-04-25,Polk,Minnesota,27119,20,0 +2020-04-26,Polk,Minnesota,27119,23,0 +2020-04-27,Polk,Minnesota,27119,24,0 +2020-04-28,Polk,Minnesota,27119,26,0 +2020-04-29,Polk,Minnesota,27119,27,0 +2020-04-30,Polk,Minnesota,27119,27,0 +2020-05-01,Polk,Minnesota,27119,32,0 +2020-05-02,Polk,Minnesota,27119,36,0 +2020-05-03,Polk,Minnesota,27119,41,0 +2020-05-04,Polk,Minnesota,27119,42,0 +2020-05-05,Polk,Minnesota,27119,42,0 +2020-05-06,Polk,Minnesota,27119,43,0 +2020-05-07,Polk,Minnesota,27119,43,0 +2020-05-08,Polk,Minnesota,27119,45,0 +2020-05-09,Polk,Minnesota,27119,48,1 +2020-05-10,Polk,Minnesota,27119,52,1 +2020-05-11,Polk,Minnesota,27119,53,1 +2020-05-12,Polk,Minnesota,27119,54,1 +2020-05-13,Polk,Minnesota,27119,54,1 +2020-05-14,Polk,Minnesota,27119,55,2 +2020-05-15,Polk,Minnesota,27119,55,2 +2020-05-16,Polk,Minnesota,27119,55,2 +2020-05-17,Polk,Minnesota,27119,55,2 +2020-05-18,Polk,Minnesota,27119,56,2 +2020-05-19,Polk,Minnesota,27119,56,2 +2020-05-20,Polk,Minnesota,27119,57,2 +2020-05-21,Polk,Minnesota,27119,57,2 +2020-05-22,Polk,Minnesota,27119,57,2 +2020-05-23,Polk,Minnesota,27119,59,2 +2020-05-24,Polk,Minnesota,27119,58,2 +2020-05-25,Polk,Minnesota,27119,59,2 +2020-05-26,Polk,Minnesota,27119,59,2 +2020-05-27,Polk,Minnesota,27119,59,2 +2020-05-28,Polk,Minnesota,27119,59,2 +2020-05-29,Polk,Minnesota,27119,60,2 +2020-05-30,Polk,Minnesota,27119,61,2 +2020-05-31,Polk,Minnesota,27119,61,2 +2020-06-01,Polk,Minnesota,27119,61,2 +2020-06-02,Polk,Minnesota,27119,61,2 +2020-06-03,Polk,Minnesota,27119,61,2 +2020-06-04,Polk,Minnesota,27119,61,2 +2020-06-05,Polk,Minnesota,27119,63,2 +2020-06-06,Polk,Minnesota,27119,63,2 +2020-06-07,Polk,Minnesota,27119,64,2 +2020-06-08,Polk,Minnesota,27119,64,2 +2020-06-09,Polk,Minnesota,27119,67,2 +2020-06-10,Polk,Minnesota,27119,67,2 +2020-06-11,Polk,Minnesota,27119,67,2 +2020-06-12,Polk,Minnesota,27119,67,2 +2020-06-13,Polk,Minnesota,27119,67,2 +2020-06-14,Polk,Minnesota,27119,67,2 +2020-06-15,Polk,Minnesota,27119,67,2 +2020-06-16,Polk,Minnesota,27119,67,2 +2020-06-17,Polk,Minnesota,27119,67,2 +2020-06-18,Polk,Minnesota,27119,67,2 +2020-06-19,Polk,Minnesota,27119,67,2 +2020-06-20,Polk,Minnesota,27119,71,2 +2020-06-21,Polk,Minnesota,27119,72,2 +2020-06-22,Polk,Minnesota,27119,72,2 +2020-06-23,Polk,Minnesota,27119,73,2 +2020-06-24,Polk,Minnesota,27119,75,2 +2020-06-25,Polk,Minnesota,27119,75,2 +2020-06-26,Polk,Minnesota,27119,78,2 +2020-06-27,Polk,Minnesota,27119,77,2 +2020-06-28,Polk,Minnesota,27119,79,2 +2020-06-29,Polk,Minnesota,27119,79,2 +2020-06-30,Polk,Minnesota,27119,79,2 +2020-07-01,Polk,Minnesota,27119,81,2 +2020-07-02,Polk,Minnesota,27119,81,2 +2020-07-03,Polk,Minnesota,27119,81,2 +2020-07-04,Polk,Minnesota,27119,81,2 +2020-07-05,Polk,Minnesota,27119,81,2 +2020-07-06,Polk,Minnesota,27119,82,2 +2020-07-07,Polk,Minnesota,27119,82,2 +2020-07-08,Polk,Minnesota,27119,84,2 +2020-07-09,Polk,Minnesota,27119,86,3 +2020-05-05,Pope,Minnesota,27121,1,0 +2020-05-06,Pope,Minnesota,27121,1,0 +2020-05-07,Pope,Minnesota,27121,3,0 +2020-05-08,Pope,Minnesota,27121,5,0 +2020-05-09,Pope,Minnesota,27121,5,0 +2020-05-10,Pope,Minnesota,27121,5,0 +2020-05-11,Pope,Minnesota,27121,5,0 +2020-05-12,Pope,Minnesota,27121,5,0 +2020-05-13,Pope,Minnesota,27121,5,0 +2020-05-14,Pope,Minnesota,27121,5,0 +2020-05-15,Pope,Minnesota,27121,5,0 +2020-05-16,Pope,Minnesota,27121,5,0 +2020-05-17,Pope,Minnesota,27121,5,0 +2020-05-18,Pope,Minnesota,27121,5,0 +2020-05-19,Pope,Minnesota,27121,5,0 +2020-05-20,Pope,Minnesota,27121,6,0 +2020-05-21,Pope,Minnesota,27121,6,0 +2020-05-22,Pope,Minnesota,27121,6,0 +2020-05-23,Pope,Minnesota,27121,6,0 +2020-05-24,Pope,Minnesota,27121,7,0 +2020-05-25,Pope,Minnesota,27121,8,0 +2020-05-26,Pope,Minnesota,27121,8,0 +2020-05-27,Pope,Minnesota,27121,8,0 +2020-05-28,Pope,Minnesota,27121,8,0 +2020-05-29,Pope,Minnesota,27121,9,0 +2020-05-30,Pope,Minnesota,27121,9,0 +2020-05-31,Pope,Minnesota,27121,9,0 +2020-06-01,Pope,Minnesota,27121,9,0 +2020-06-02,Pope,Minnesota,27121,9,0 +2020-06-03,Pope,Minnesota,27121,9,0 +2020-06-04,Pope,Minnesota,27121,10,0 +2020-06-05,Pope,Minnesota,27121,10,0 +2020-06-06,Pope,Minnesota,27121,10,0 +2020-06-07,Pope,Minnesota,27121,10,0 +2020-06-08,Pope,Minnesota,27121,10,0 +2020-06-09,Pope,Minnesota,27121,10,0 +2020-06-10,Pope,Minnesota,27121,10,0 +2020-06-11,Pope,Minnesota,27121,10,0 +2020-06-12,Pope,Minnesota,27121,10,0 +2020-06-13,Pope,Minnesota,27121,10,0 +2020-06-14,Pope,Minnesota,27121,10,0 +2020-06-15,Pope,Minnesota,27121,10,0 +2020-06-16,Pope,Minnesota,27121,10,0 +2020-06-17,Pope,Minnesota,27121,10,0 +2020-06-18,Pope,Minnesota,27121,10,0 +2020-06-19,Pope,Minnesota,27121,10,0 +2020-06-20,Pope,Minnesota,27121,10,0 +2020-06-21,Pope,Minnesota,27121,10,0 +2020-06-22,Pope,Minnesota,27121,10,0 +2020-06-23,Pope,Minnesota,27121,10,0 +2020-06-24,Pope,Minnesota,27121,10,0 +2020-06-25,Pope,Minnesota,27121,10,0 +2020-06-26,Pope,Minnesota,27121,10,0 +2020-06-27,Pope,Minnesota,27121,10,0 +2020-06-28,Pope,Minnesota,27121,10,0 +2020-06-29,Pope,Minnesota,27121,10,0 +2020-06-30,Pope,Minnesota,27121,10,0 +2020-07-01,Pope,Minnesota,27121,10,0 +2020-07-02,Pope,Minnesota,27121,10,0 +2020-07-03,Pope,Minnesota,27121,10,0 +2020-07-04,Pope,Minnesota,27121,10,0 +2020-07-05,Pope,Minnesota,27121,10,0 +2020-07-06,Pope,Minnesota,27121,10,0 +2020-07-07,Pope,Minnesota,27121,12,0 +2020-07-08,Pope,Minnesota,27121,12,0 +2020-07-09,Pope,Minnesota,27121,12,0 +2020-03-06,Ramsey,Minnesota,27123,1,0 +2020-03-07,Ramsey,Minnesota,27123,1,0 +2020-03-08,Ramsey,Minnesota,27123,1,0 +2020-03-09,Ramsey,Minnesota,27123,1,0 +2020-03-10,Ramsey,Minnesota,27123,1,0 +2020-03-11,Ramsey,Minnesota,27123,2,0 +2020-03-12,Ramsey,Minnesota,27123,2,0 +2020-03-13,Ramsey,Minnesota,27123,3,0 +2020-03-14,Ramsey,Minnesota,27123,4,0 +2020-03-15,Ramsey,Minnesota,27123,8,0 +2020-03-16,Ramsey,Minnesota,27123,8,0 +2020-03-17,Ramsey,Minnesota,27123,8,0 +2020-03-18,Ramsey,Minnesota,27123,8,0 +2020-03-19,Ramsey,Minnesota,27123,12,0 +2020-03-20,Ramsey,Minnesota,27123,16,0 +2020-03-21,Ramsey,Minnesota,27123,17,1 +2020-03-22,Ramsey,Minnesota,27123,18,1 +2020-03-23,Ramsey,Minnesota,27123,24,1 +2020-03-24,Ramsey,Minnesota,27123,26,1 +2020-03-25,Ramsey,Minnesota,27123,27,1 +2020-03-26,Ramsey,Minnesota,27123,32,1 +2020-03-27,Ramsey,Minnesota,27123,34,1 +2020-03-28,Ramsey,Minnesota,27123,42,2 +2020-03-29,Ramsey,Minnesota,27123,46,2 +2020-03-30,Ramsey,Minnesota,27123,50,2 +2020-03-31,Ramsey,Minnesota,27123,56,2 +2020-04-01,Ramsey,Minnesota,27123,66,2 +2020-04-02,Ramsey,Minnesota,27123,67,2 +2020-04-03,Ramsey,Minnesota,27123,71,2 +2020-04-04,Ramsey,Minnesota,27123,79,2 +2020-04-05,Ramsey,Minnesota,27123,91,2 +2020-04-06,Ramsey,Minnesota,27123,96,3 +2020-04-07,Ramsey,Minnesota,27123,101,3 +2020-04-08,Ramsey,Minnesota,27123,112,3 +2020-04-09,Ramsey,Minnesota,27123,121,5 +2020-04-10,Ramsey,Minnesota,27123,124,5 +2020-04-11,Ramsey,Minnesota,27123,132,6 +2020-04-12,Ramsey,Minnesota,27123,152,6 +2020-04-13,Ramsey,Minnesota,27123,152,6 +2020-04-14,Ramsey,Minnesota,27123,153,7 +2020-04-15,Ramsey,Minnesota,27123,164,7 +2020-04-16,Ramsey,Minnesota,27123,177,9 +2020-04-17,Ramsey,Minnesota,27123,178,9 +2020-04-18,Ramsey,Minnesota,27123,192,9 +2020-04-19,Ramsey,Minnesota,27123,196,9 +2020-04-20,Ramsey,Minnesota,27123,202,10 +2020-04-21,Ramsey,Minnesota,27123,215,11 +2020-04-22,Ramsey,Minnesota,27123,219,11 +2020-04-23,Ramsey,Minnesota,27123,235,14 +2020-04-24,Ramsey,Minnesota,27123,247,18 +2020-04-25,Ramsey,Minnesota,27123,261,20 +2020-04-26,Ramsey,Minnesota,27123,278,20 +2020-04-27,Ramsey,Minnesota,27123,297,22 +2020-04-28,Ramsey,Minnesota,27123,317,22 +2020-04-29,Ramsey,Minnesota,27123,332,24 +2020-04-30,Ramsey,Minnesota,27123,374,26 +2020-05-01,Ramsey,Minnesota,27123,405,29 +2020-05-02,Ramsey,Minnesota,27123,453,31 +2020-05-03,Ramsey,Minnesota,27123,493,34 +2020-05-04,Ramsey,Minnesota,27123,535,34 +2020-05-05,Ramsey,Minnesota,27123,583,37 +2020-05-06,Ramsey,Minnesota,27123,656,38 +2020-05-07,Ramsey,Minnesota,27123,717,39 +2020-05-08,Ramsey,Minnesota,27123,800,42 +2020-05-09,Ramsey,Minnesota,27123,875,43 +2020-05-10,Ramsey,Minnesota,27123,920,45 +2020-05-11,Ramsey,Minnesota,27123,986,47 +2020-05-12,Ramsey,Minnesota,27123,1052,49 +2020-05-13,Ramsey,Minnesota,27123,1052,49 +2020-05-14,Ramsey,Minnesota,27123,1167,56 +2020-05-15,Ramsey,Minnesota,27123,1287,61 +2020-05-16,Ramsey,Minnesota,27123,1416,67 +2020-05-17,Ramsey,Minnesota,27123,1530,71 +2020-05-18,Ramsey,Minnesota,27123,1625,72 +2020-05-19,Ramsey,Minnesota,27123,1720,74 +2020-05-20,Ramsey,Minnesota,27123,1846,80 +2020-05-21,Ramsey,Minnesota,27123,1925,86 +2020-05-22,Ramsey,Minnesota,27123,2018,93 +2020-05-23,Ramsey,Minnesota,27123,2164,94 +2020-05-24,Ramsey,Minnesota,27123,2316,97 +2020-05-25,Ramsey,Minnesota,27123,2437,97 +2020-05-26,Ramsey,Minnesota,27123,2551,98 +2020-05-27,Ramsey,Minnesota,27123,2610,103 +2020-05-28,Ramsey,Minnesota,27123,2698,110 +2020-05-29,Ramsey,Minnesota,27123,2790,115 +2020-05-30,Ramsey,Minnesota,27123,2863,122 +2020-05-31,Ramsey,Minnesota,27123,3019,124 +2020-06-01,Ramsey,Minnesota,27123,3075,128 +2020-06-02,Ramsey,Minnesota,27123,3128,133 +2020-06-03,Ramsey,Minnesota,27123,3189,134 +2020-06-04,Ramsey,Minnesota,27123,3252,140 +2020-06-05,Ramsey,Minnesota,27123,3351,149 +2020-06-06,Ramsey,Minnesota,27123,3445,152 +2020-06-07,Ramsey,Minnesota,27123,3507,155 +2020-06-08,Ramsey,Minnesota,27123,3553,158 +2020-06-09,Ramsey,Minnesota,27123,3626,164 +2020-06-10,Ramsey,Minnesota,27123,3680,167 +2020-06-11,Ramsey,Minnesota,27123,3740,169 +2020-06-12,Ramsey,Minnesota,27123,3813,180 +2020-06-13,Ramsey,Minnesota,27123,3882,182 +2020-06-14,Ramsey,Minnesota,27123,3936,190 +2020-06-15,Ramsey,Minnesota,27123,3992,190 +2020-06-16,Ramsey,Minnesota,27123,4033,192 +2020-06-17,Ramsey,Minnesota,27123,4079,199 +2020-06-18,Ramsey,Minnesota,27123,4128,205 +2020-06-19,Ramsey,Minnesota,27123,4180,207 +2020-06-20,Ramsey,Minnesota,27123,4244,209 +2020-06-21,Ramsey,Minnesota,27123,4306,210 +2020-06-22,Ramsey,Minnesota,27123,4352,211 +2020-06-23,Ramsey,Minnesota,27123,4394,213 +2020-06-24,Ramsey,Minnesota,27123,4424,215 +2020-06-25,Ramsey,Minnesota,27123,4474,217 +2020-06-26,Ramsey,Minnesota,27123,4508,217 +2020-06-27,Ramsey,Minnesota,27123,4563,217 +2020-06-28,Ramsey,Minnesota,27123,4610,217 +2020-06-29,Ramsey,Minnesota,27123,4629,217 +2020-06-30,Ramsey,Minnesota,27123,4685,217 +2020-07-01,Ramsey,Minnesota,27123,4724,218 +2020-07-02,Ramsey,Minnesota,27123,4777,222 +2020-07-03,Ramsey,Minnesota,27123,4805,226 +2020-07-04,Ramsey,Minnesota,27123,4805,226 +2020-07-05,Ramsey,Minnesota,27123,4855,227 +2020-07-06,Ramsey,Minnesota,27123,4911,228 +2020-07-07,Ramsey,Minnesota,27123,4963,229 +2020-07-08,Ramsey,Minnesota,27123,5013,230 +2020-07-09,Ramsey,Minnesota,27123,5066,230 +2020-04-12,Red Lake,Minnesota,27125,1,0 +2020-04-13,Red Lake,Minnesota,27125,1,0 +2020-04-14,Red Lake,Minnesota,27125,1,0 +2020-04-15,Red Lake,Minnesota,27125,1,0 +2020-04-16,Red Lake,Minnesota,27125,1,0 +2020-04-17,Red Lake,Minnesota,27125,1,0 +2020-04-18,Red Lake,Minnesota,27125,1,0 +2020-04-19,Red Lake,Minnesota,27125,1,0 +2020-04-20,Red Lake,Minnesota,27125,2,0 +2020-04-21,Red Lake,Minnesota,27125,1,0 +2020-04-22,Red Lake,Minnesota,27125,1,0 +2020-04-23,Red Lake,Minnesota,27125,1,0 +2020-04-24,Red Lake,Minnesota,27125,1,0 +2020-04-25,Red Lake,Minnesota,27125,1,0 +2020-04-26,Red Lake,Minnesota,27125,1,0 +2020-04-27,Red Lake,Minnesota,27125,1,0 +2020-04-28,Red Lake,Minnesota,27125,1,0 +2020-04-29,Red Lake,Minnesota,27125,1,0 +2020-04-30,Red Lake,Minnesota,27125,1,0 +2020-05-01,Red Lake,Minnesota,27125,1,0 +2020-05-02,Red Lake,Minnesota,27125,1,0 +2020-05-03,Red Lake,Minnesota,27125,1,0 +2020-05-04,Red Lake,Minnesota,27125,1,0 +2020-05-05,Red Lake,Minnesota,27125,1,0 +2020-05-06,Red Lake,Minnesota,27125,1,0 +2020-05-07,Red Lake,Minnesota,27125,1,0 +2020-05-08,Red Lake,Minnesota,27125,1,0 +2020-05-09,Red Lake,Minnesota,27125,1,0 +2020-05-10,Red Lake,Minnesota,27125,2,0 +2020-05-11,Red Lake,Minnesota,27125,2,0 +2020-05-12,Red Lake,Minnesota,27125,2,0 +2020-05-13,Red Lake,Minnesota,27125,2,0 +2020-05-14,Red Lake,Minnesota,27125,2,0 +2020-05-15,Red Lake,Minnesota,27125,2,0 +2020-05-16,Red Lake,Minnesota,27125,3,0 +2020-05-17,Red Lake,Minnesota,27125,3,0 +2020-05-18,Red Lake,Minnesota,27125,3,0 +2020-05-19,Red Lake,Minnesota,27125,3,0 +2020-05-20,Red Lake,Minnesota,27125,3,0 +2020-05-21,Red Lake,Minnesota,27125,3,0 +2020-05-22,Red Lake,Minnesota,27125,3,0 +2020-05-23,Red Lake,Minnesota,27125,3,0 +2020-05-24,Red Lake,Minnesota,27125,3,0 +2020-05-25,Red Lake,Minnesota,27125,3,0 +2020-05-26,Red Lake,Minnesota,27125,3,0 +2020-05-27,Red Lake,Minnesota,27125,4,0 +2020-05-28,Red Lake,Minnesota,27125,4,0 +2020-05-29,Red Lake,Minnesota,27125,4,0 +2020-05-30,Red Lake,Minnesota,27125,4,0 +2020-05-31,Red Lake,Minnesota,27125,4,0 +2020-06-01,Red Lake,Minnesota,27125,4,0 +2020-06-02,Red Lake,Minnesota,27125,4,0 +2020-06-03,Red Lake,Minnesota,27125,4,0 +2020-06-04,Red Lake,Minnesota,27125,4,0 +2020-06-05,Red Lake,Minnesota,27125,4,0 +2020-06-06,Red Lake,Minnesota,27125,4,0 +2020-06-07,Red Lake,Minnesota,27125,4,0 +2020-06-08,Red Lake,Minnesota,27125,4,0 +2020-06-09,Red Lake,Minnesota,27125,4,0 +2020-06-10,Red Lake,Minnesota,27125,4,0 +2020-06-11,Red Lake,Minnesota,27125,4,0 +2020-06-12,Red Lake,Minnesota,27125,4,0 +2020-06-13,Red Lake,Minnesota,27125,4,0 +2020-06-14,Red Lake,Minnesota,27125,4,0 +2020-06-15,Red Lake,Minnesota,27125,4,0 +2020-06-16,Red Lake,Minnesota,27125,4,0 +2020-06-17,Red Lake,Minnesota,27125,4,0 +2020-06-18,Red Lake,Minnesota,27125,4,0 +2020-06-19,Red Lake,Minnesota,27125,3,0 +2020-06-20,Red Lake,Minnesota,27125,3,0 +2020-06-21,Red Lake,Minnesota,27125,3,0 +2020-06-22,Red Lake,Minnesota,27125,3,0 +2020-06-23,Red Lake,Minnesota,27125,3,0 +2020-06-24,Red Lake,Minnesota,27125,3,0 +2020-06-25,Red Lake,Minnesota,27125,3,0 +2020-06-26,Red Lake,Minnesota,27125,3,0 +2020-06-27,Red Lake,Minnesota,27125,3,0 +2020-06-28,Red Lake,Minnesota,27125,3,0 +2020-06-29,Red Lake,Minnesota,27125,3,0 +2020-06-30,Red Lake,Minnesota,27125,3,0 +2020-07-01,Red Lake,Minnesota,27125,3,0 +2020-07-02,Red Lake,Minnesota,27125,3,0 +2020-07-03,Red Lake,Minnesota,27125,3,0 +2020-07-04,Red Lake,Minnesota,27125,3,0 +2020-07-05,Red Lake,Minnesota,27125,3,0 +2020-07-06,Red Lake,Minnesota,27125,3,0 +2020-07-07,Red Lake,Minnesota,27125,4,0 +2020-07-08,Red Lake,Minnesota,27125,4,0 +2020-07-09,Red Lake,Minnesota,27125,4,0 +2020-04-06,Redwood,Minnesota,27127,1,0 +2020-04-07,Redwood,Minnesota,27127,1,0 +2020-04-08,Redwood,Minnesota,27127,1,0 +2020-04-09,Redwood,Minnesota,27127,1,0 +2020-04-10,Redwood,Minnesota,27127,1,0 +2020-04-11,Redwood,Minnesota,27127,1,0 +2020-04-12,Redwood,Minnesota,27127,1,0 +2020-04-13,Redwood,Minnesota,27127,1,0 +2020-04-14,Redwood,Minnesota,27127,1,0 +2020-04-15,Redwood,Minnesota,27127,1,0 +2020-04-16,Redwood,Minnesota,27127,1,0 +2020-04-17,Redwood,Minnesota,27127,1,0 +2020-04-18,Redwood,Minnesota,27127,1,0 +2020-04-19,Redwood,Minnesota,27127,1,0 +2020-04-20,Redwood,Minnesota,27127,1,0 +2020-04-21,Redwood,Minnesota,27127,1,0 +2020-04-22,Redwood,Minnesota,27127,1,0 +2020-04-23,Redwood,Minnesota,27127,1,0 +2020-04-24,Redwood,Minnesota,27127,1,0 +2020-04-25,Redwood,Minnesota,27127,1,0 +2020-04-26,Redwood,Minnesota,27127,1,0 +2020-04-27,Redwood,Minnesota,27127,1,0 +2020-04-28,Redwood,Minnesota,27127,1,0 +2020-04-29,Redwood,Minnesota,27127,1,0 +2020-04-30,Redwood,Minnesota,27127,2,0 +2020-05-01,Redwood,Minnesota,27127,3,0 +2020-05-02,Redwood,Minnesota,27127,3,0 +2020-05-03,Redwood,Minnesota,27127,3,0 +2020-05-04,Redwood,Minnesota,27127,3,0 +2020-05-05,Redwood,Minnesota,27127,3,0 +2020-05-06,Redwood,Minnesota,27127,3,0 +2020-05-07,Redwood,Minnesota,27127,3,0 +2020-05-08,Redwood,Minnesota,27127,3,0 +2020-05-09,Redwood,Minnesota,27127,3,0 +2020-05-10,Redwood,Minnesota,27127,3,0 +2020-05-11,Redwood,Minnesota,27127,3,0 +2020-05-12,Redwood,Minnesota,27127,3,0 +2020-05-13,Redwood,Minnesota,27127,3,0 +2020-05-14,Redwood,Minnesota,27127,3,0 +2020-05-15,Redwood,Minnesota,27127,3,0 +2020-05-16,Redwood,Minnesota,27127,3,0 +2020-05-17,Redwood,Minnesota,27127,3,0 +2020-05-18,Redwood,Minnesota,27127,3,0 +2020-05-19,Redwood,Minnesota,27127,3,0 +2020-05-20,Redwood,Minnesota,27127,3,0 +2020-05-21,Redwood,Minnesota,27127,3,0 +2020-05-22,Redwood,Minnesota,27127,3,0 +2020-05-23,Redwood,Minnesota,27127,3,0 +2020-05-24,Redwood,Minnesota,27127,3,0 +2020-05-25,Redwood,Minnesota,27127,3,0 +2020-05-26,Redwood,Minnesota,27127,3,0 +2020-05-27,Redwood,Minnesota,27127,3,0 +2020-05-28,Redwood,Minnesota,27127,4,0 +2020-05-29,Redwood,Minnesota,27127,4,0 +2020-05-30,Redwood,Minnesota,27127,4,0 +2020-05-31,Redwood,Minnesota,27127,5,0 +2020-06-01,Redwood,Minnesota,27127,5,0 +2020-06-02,Redwood,Minnesota,27127,6,0 +2020-06-03,Redwood,Minnesota,27127,6,0 +2020-06-04,Redwood,Minnesota,27127,7,0 +2020-06-05,Redwood,Minnesota,27127,7,0 +2020-06-06,Redwood,Minnesota,27127,7,0 +2020-06-07,Redwood,Minnesota,27127,7,0 +2020-06-08,Redwood,Minnesota,27127,8,0 +2020-06-09,Redwood,Minnesota,27127,8,0 +2020-06-10,Redwood,Minnesota,27127,8,0 +2020-06-11,Redwood,Minnesota,27127,8,0 +2020-06-12,Redwood,Minnesota,27127,10,0 +2020-06-13,Redwood,Minnesota,27127,10,0 +2020-06-14,Redwood,Minnesota,27127,11,0 +2020-06-15,Redwood,Minnesota,27127,10,0 +2020-06-16,Redwood,Minnesota,27127,12,0 +2020-06-17,Redwood,Minnesota,27127,12,0 +2020-06-18,Redwood,Minnesota,27127,12,0 +2020-06-19,Redwood,Minnesota,27127,12,0 +2020-06-20,Redwood,Minnesota,27127,12,0 +2020-06-21,Redwood,Minnesota,27127,12,0 +2020-06-22,Redwood,Minnesota,27127,12,0 +2020-06-23,Redwood,Minnesota,27127,12,0 +2020-06-24,Redwood,Minnesota,27127,12,0 +2020-06-25,Redwood,Minnesota,27127,12,0 +2020-06-26,Redwood,Minnesota,27127,14,0 +2020-06-27,Redwood,Minnesota,27127,14,0 +2020-06-28,Redwood,Minnesota,27127,14,0 +2020-06-29,Redwood,Minnesota,27127,16,0 +2020-06-30,Redwood,Minnesota,27127,16,0 +2020-07-01,Redwood,Minnesota,27127,17,0 +2020-07-02,Redwood,Minnesota,27127,17,0 +2020-07-03,Redwood,Minnesota,27127,18,0 +2020-07-04,Redwood,Minnesota,27127,18,0 +2020-07-05,Redwood,Minnesota,27127,18,0 +2020-07-06,Redwood,Minnesota,27127,18,0 +2020-07-07,Redwood,Minnesota,27127,19,0 +2020-07-08,Redwood,Minnesota,27127,20,0 +2020-07-09,Redwood,Minnesota,27127,21,0 +2020-03-14,Renville,Minnesota,27129,1,0 +2020-03-15,Renville,Minnesota,27129,1,0 +2020-03-16,Renville,Minnesota,27129,1,0 +2020-03-17,Renville,Minnesota,27129,1,0 +2020-03-18,Renville,Minnesota,27129,1,0 +2020-03-19,Renville,Minnesota,27129,1,0 +2020-03-20,Renville,Minnesota,27129,1,0 +2020-03-21,Renville,Minnesota,27129,1,0 +2020-03-22,Renville,Minnesota,27129,1,0 +2020-03-23,Renville,Minnesota,27129,1,0 +2020-03-24,Renville,Minnesota,27129,1,0 +2020-03-25,Renville,Minnesota,27129,1,0 +2020-03-26,Renville,Minnesota,27129,1,0 +2020-03-27,Renville,Minnesota,27129,1,0 +2020-03-28,Renville,Minnesota,27129,1,0 +2020-03-29,Renville,Minnesota,27129,1,0 +2020-03-30,Renville,Minnesota,27129,1,0 +2020-03-31,Renville,Minnesota,27129,1,0 +2020-04-01,Renville,Minnesota,27129,1,0 +2020-04-02,Renville,Minnesota,27129,2,0 +2020-04-03,Renville,Minnesota,27129,2,0 +2020-04-04,Renville,Minnesota,27129,2,0 +2020-04-05,Renville,Minnesota,27129,2,0 +2020-04-06,Renville,Minnesota,27129,2,0 +2020-04-07,Renville,Minnesota,27129,2,0 +2020-04-08,Renville,Minnesota,27129,2,0 +2020-04-09,Renville,Minnesota,27129,2,0 +2020-04-10,Renville,Minnesota,27129,2,0 +2020-04-11,Renville,Minnesota,27129,3,0 +2020-04-12,Renville,Minnesota,27129,3,0 +2020-04-13,Renville,Minnesota,27129,3,0 +2020-04-14,Renville,Minnesota,27129,3,0 +2020-04-15,Renville,Minnesota,27129,3,0 +2020-04-16,Renville,Minnesota,27129,3,0 +2020-04-17,Renville,Minnesota,27129,3,0 +2020-04-18,Renville,Minnesota,27129,3,0 +2020-04-19,Renville,Minnesota,27129,3,0 +2020-04-20,Renville,Minnesota,27129,3,0 +2020-04-21,Renville,Minnesota,27129,3,0 +2020-04-22,Renville,Minnesota,27129,3,0 +2020-04-23,Renville,Minnesota,27129,3,0 +2020-04-24,Renville,Minnesota,27129,3,0 +2020-04-25,Renville,Minnesota,27129,3,0 +2020-04-26,Renville,Minnesota,27129,3,0 +2020-04-27,Renville,Minnesota,27129,3,0 +2020-04-28,Renville,Minnesota,27129,3,0 +2020-04-29,Renville,Minnesota,27129,4,0 +2020-04-30,Renville,Minnesota,27129,4,0 +2020-05-01,Renville,Minnesota,27129,4,0 +2020-05-02,Renville,Minnesota,27129,5,0 +2020-05-03,Renville,Minnesota,27129,5,0 +2020-05-04,Renville,Minnesota,27129,5,0 +2020-05-05,Renville,Minnesota,27129,5,0 +2020-05-06,Renville,Minnesota,27129,6,0 +2020-05-07,Renville,Minnesota,27129,6,0 +2020-05-08,Renville,Minnesota,27129,6,0 +2020-05-09,Renville,Minnesota,27129,6,0 +2020-05-10,Renville,Minnesota,27129,6,0 +2020-05-11,Renville,Minnesota,27129,6,0 +2020-05-12,Renville,Minnesota,27129,6,0 +2020-05-13,Renville,Minnesota,27129,6,0 +2020-05-14,Renville,Minnesota,27129,5,0 +2020-05-15,Renville,Minnesota,27129,5,0 +2020-05-16,Renville,Minnesota,27129,5,0 +2020-05-17,Renville,Minnesota,27129,5,0 +2020-05-18,Renville,Minnesota,27129,5,0 +2020-05-19,Renville,Minnesota,27129,5,0 +2020-05-20,Renville,Minnesota,27129,5,0 +2020-05-21,Renville,Minnesota,27129,5,0 +2020-05-22,Renville,Minnesota,27129,5,0 +2020-05-23,Renville,Minnesota,27129,5,0 +2020-05-24,Renville,Minnesota,27129,5,0 +2020-05-25,Renville,Minnesota,27129,5,0 +2020-05-26,Renville,Minnesota,27129,5,0 +2020-05-27,Renville,Minnesota,27129,5,0 +2020-05-28,Renville,Minnesota,27129,5,0 +2020-05-29,Renville,Minnesota,27129,5,0 +2020-05-30,Renville,Minnesota,27129,5,0 +2020-05-31,Renville,Minnesota,27129,5,0 +2020-06-01,Renville,Minnesota,27129,5,0 +2020-06-02,Renville,Minnesota,27129,5,0 +2020-06-03,Renville,Minnesota,27129,5,0 +2020-06-04,Renville,Minnesota,27129,7,0 +2020-06-05,Renville,Minnesota,27129,7,0 +2020-06-06,Renville,Minnesota,27129,7,0 +2020-06-07,Renville,Minnesota,27129,8,0 +2020-06-08,Renville,Minnesota,27129,8,0 +2020-06-09,Renville,Minnesota,27129,8,0 +2020-06-10,Renville,Minnesota,27129,8,0 +2020-06-11,Renville,Minnesota,27129,8,0 +2020-06-12,Renville,Minnesota,27129,9,0 +2020-06-13,Renville,Minnesota,27129,11,0 +2020-06-14,Renville,Minnesota,27129,12,0 +2020-06-15,Renville,Minnesota,27129,12,0 +2020-06-16,Renville,Minnesota,27129,12,0 +2020-06-17,Renville,Minnesota,27129,12,0 +2020-06-18,Renville,Minnesota,27129,12,0 +2020-06-19,Renville,Minnesota,27129,12,0 +2020-06-20,Renville,Minnesota,27129,12,1 +2020-06-21,Renville,Minnesota,27129,12,1 +2020-06-22,Renville,Minnesota,27129,16,1 +2020-06-23,Renville,Minnesota,27129,18,1 +2020-06-24,Renville,Minnesota,27129,18,1 +2020-06-25,Renville,Minnesota,27129,19,1 +2020-06-26,Renville,Minnesota,27129,19,1 +2020-06-27,Renville,Minnesota,27129,19,1 +2020-06-28,Renville,Minnesota,27129,24,1 +2020-06-29,Renville,Minnesota,27129,24,2 +2020-06-30,Renville,Minnesota,27129,24,2 +2020-07-01,Renville,Minnesota,27129,28,2 +2020-07-02,Renville,Minnesota,27129,28,2 +2020-07-03,Renville,Minnesota,27129,32,2 +2020-07-04,Renville,Minnesota,27129,32,2 +2020-07-05,Renville,Minnesota,27129,35,2 +2020-07-06,Renville,Minnesota,27129,35,2 +2020-07-07,Renville,Minnesota,27129,36,2 +2020-07-08,Renville,Minnesota,27129,36,2 +2020-07-09,Renville,Minnesota,27129,37,2 +2020-03-18,Rice,Minnesota,27131,1,0 +2020-03-19,Rice,Minnesota,27131,1,0 +2020-03-20,Rice,Minnesota,27131,1,0 +2020-03-21,Rice,Minnesota,27131,1,0 +2020-03-22,Rice,Minnesota,27131,1,0 +2020-03-23,Rice,Minnesota,27131,2,0 +2020-03-24,Rice,Minnesota,27131,2,0 +2020-03-25,Rice,Minnesota,27131,2,0 +2020-03-26,Rice,Minnesota,27131,2,0 +2020-03-27,Rice,Minnesota,27131,2,0 +2020-03-28,Rice,Minnesota,27131,3,0 +2020-03-29,Rice,Minnesota,27131,3,0 +2020-03-30,Rice,Minnesota,27131,3,0 +2020-03-31,Rice,Minnesota,27131,3,0 +2020-04-01,Rice,Minnesota,27131,4,0 +2020-04-02,Rice,Minnesota,27131,3,0 +2020-04-03,Rice,Minnesota,27131,3,0 +2020-04-04,Rice,Minnesota,27131,4,0 +2020-04-05,Rice,Minnesota,27131,4,0 +2020-04-06,Rice,Minnesota,27131,4,0 +2020-04-07,Rice,Minnesota,27131,4,0 +2020-04-08,Rice,Minnesota,27131,4,0 +2020-04-09,Rice,Minnesota,27131,4,0 +2020-04-10,Rice,Minnesota,27131,4,0 +2020-04-11,Rice,Minnesota,27131,4,0 +2020-04-12,Rice,Minnesota,27131,4,0 +2020-04-13,Rice,Minnesota,27131,4,0 +2020-04-14,Rice,Minnesota,27131,5,0 +2020-04-15,Rice,Minnesota,27131,5,0 +2020-04-16,Rice,Minnesota,27131,6,0 +2020-04-17,Rice,Minnesota,27131,6,1 +2020-04-18,Rice,Minnesota,27131,6,1 +2020-04-19,Rice,Minnesota,27131,8,1 +2020-04-20,Rice,Minnesota,27131,7,1 +2020-04-21,Rice,Minnesota,27131,7,1 +2020-04-22,Rice,Minnesota,27131,7,1 +2020-04-23,Rice,Minnesota,27131,8,1 +2020-04-24,Rice,Minnesota,27131,9,1 +2020-04-25,Rice,Minnesota,27131,9,1 +2020-04-26,Rice,Minnesota,27131,9,1 +2020-04-27,Rice,Minnesota,27131,10,1 +2020-04-28,Rice,Minnesota,27131,11,1 +2020-04-29,Rice,Minnesota,27131,12,1 +2020-04-30,Rice,Minnesota,27131,14,1 +2020-05-01,Rice,Minnesota,27131,14,1 +2020-05-02,Rice,Minnesota,27131,18,1 +2020-05-03,Rice,Minnesota,27131,20,1 +2020-05-04,Rice,Minnesota,27131,24,1 +2020-05-05,Rice,Minnesota,27131,30,1 +2020-05-06,Rice,Minnesota,27131,30,1 +2020-05-07,Rice,Minnesota,27131,48,1 +2020-05-08,Rice,Minnesota,27131,81,1 +2020-05-09,Rice,Minnesota,27131,102,1 +2020-05-10,Rice,Minnesota,27131,114,1 +2020-05-11,Rice,Minnesota,27131,126,2 +2020-05-12,Rice,Minnesota,27131,134,2 +2020-05-13,Rice,Minnesota,27131,134,2 +2020-05-14,Rice,Minnesota,27131,181,2 +2020-05-15,Rice,Minnesota,27131,197,2 +2020-05-16,Rice,Minnesota,27131,221,2 +2020-05-17,Rice,Minnesota,27131,240,2 +2020-05-18,Rice,Minnesota,27131,260,2 +2020-05-19,Rice,Minnesota,27131,270,2 +2020-05-20,Rice,Minnesota,27131,295,2 +2020-05-21,Rice,Minnesota,27131,307,2 +2020-05-22,Rice,Minnesota,27131,328,2 +2020-05-23,Rice,Minnesota,27131,352,2 +2020-05-24,Rice,Minnesota,27131,365,2 +2020-05-25,Rice,Minnesota,27131,386,2 +2020-05-26,Rice,Minnesota,27131,396,2 +2020-05-27,Rice,Minnesota,27131,411,2 +2020-05-28,Rice,Minnesota,27131,423,2 +2020-05-29,Rice,Minnesota,27131,438,2 +2020-05-30,Rice,Minnesota,27131,452,2 +2020-05-31,Rice,Minnesota,27131,462,2 +2020-06-01,Rice,Minnesota,27131,462,2 +2020-06-02,Rice,Minnesota,27131,467,2 +2020-06-03,Rice,Minnesota,27131,480,2 +2020-06-04,Rice,Minnesota,27131,483,3 +2020-06-05,Rice,Minnesota,27131,524,3 +2020-06-06,Rice,Minnesota,27131,565,3 +2020-06-07,Rice,Minnesota,27131,576,3 +2020-06-08,Rice,Minnesota,27131,587,3 +2020-06-09,Rice,Minnesota,27131,593,3 +2020-06-10,Rice,Minnesota,27131,594,3 +2020-06-11,Rice,Minnesota,27131,604,3 +2020-06-12,Rice,Minnesota,27131,685,3 +2020-06-13,Rice,Minnesota,27131,688,3 +2020-06-14,Rice,Minnesota,27131,688,3 +2020-06-15,Rice,Minnesota,27131,694,3 +2020-06-16,Rice,Minnesota,27131,697,3 +2020-06-17,Rice,Minnesota,27131,701,3 +2020-06-18,Rice,Minnesota,27131,733,4 +2020-06-19,Rice,Minnesota,27131,740,4 +2020-06-20,Rice,Minnesota,27131,743,4 +2020-06-21,Rice,Minnesota,27131,748,4 +2020-06-22,Rice,Minnesota,27131,754,4 +2020-06-23,Rice,Minnesota,27131,758,4 +2020-06-24,Rice,Minnesota,27131,761,4 +2020-06-25,Rice,Minnesota,27131,771,4 +2020-06-26,Rice,Minnesota,27131,780,4 +2020-06-27,Rice,Minnesota,27131,783,4 +2020-06-28,Rice,Minnesota,27131,793,4 +2020-06-29,Rice,Minnesota,27131,804,6 +2020-06-30,Rice,Minnesota,27131,809,7 +2020-07-01,Rice,Minnesota,27131,824,7 +2020-07-02,Rice,Minnesota,27131,827,7 +2020-07-03,Rice,Minnesota,27131,835,7 +2020-07-04,Rice,Minnesota,27131,835,7 +2020-07-05,Rice,Minnesota,27131,842,7 +2020-07-06,Rice,Minnesota,27131,844,7 +2020-07-07,Rice,Minnesota,27131,848,8 +2020-07-08,Rice,Minnesota,27131,859,8 +2020-07-09,Rice,Minnesota,27131,862,8 +2020-04-12,Rock,Minnesota,27133,2,0 +2020-04-13,Rock,Minnesota,27133,2,0 +2020-04-14,Rock,Minnesota,27133,2,0 +2020-04-15,Rock,Minnesota,27133,2,0 +2020-04-16,Rock,Minnesota,27133,3,0 +2020-04-17,Rock,Minnesota,27133,3,0 +2020-04-18,Rock,Minnesota,27133,3,0 +2020-04-19,Rock,Minnesota,27133,3,0 +2020-04-20,Rock,Minnesota,27133,4,0 +2020-04-21,Rock,Minnesota,27133,5,0 +2020-04-22,Rock,Minnesota,27133,5,0 +2020-04-23,Rock,Minnesota,27133,5,0 +2020-04-24,Rock,Minnesota,27133,5,0 +2020-04-25,Rock,Minnesota,27133,5,0 +2020-04-26,Rock,Minnesota,27133,5,0 +2020-04-27,Rock,Minnesota,27133,6,0 +2020-04-28,Rock,Minnesota,27133,8,0 +2020-04-29,Rock,Minnesota,27133,9,0 +2020-04-30,Rock,Minnesota,27133,11,0 +2020-05-01,Rock,Minnesota,27133,12,0 +2020-05-02,Rock,Minnesota,27133,16,0 +2020-05-03,Rock,Minnesota,27133,16,0 +2020-05-04,Rock,Minnesota,27133,16,0 +2020-05-05,Rock,Minnesota,27133,18,0 +2020-05-06,Rock,Minnesota,27133,18,0 +2020-05-07,Rock,Minnesota,27133,19,0 +2020-05-08,Rock,Minnesota,27133,19,0 +2020-05-09,Rock,Minnesota,27133,19,0 +2020-05-10,Rock,Minnesota,27133,19,0 +2020-05-11,Rock,Minnesota,27133,19,0 +2020-05-12,Rock,Minnesota,27133,19,0 +2020-05-13,Rock,Minnesota,27133,19,0 +2020-05-14,Rock,Minnesota,27133,19,0 +2020-05-15,Rock,Minnesota,27133,19,0 +2020-05-16,Rock,Minnesota,27133,20,0 +2020-05-17,Rock,Minnesota,27133,20,0 +2020-05-18,Rock,Minnesota,27133,20,0 +2020-05-19,Rock,Minnesota,27133,20,0 +2020-05-20,Rock,Minnesota,27133,20,0 +2020-05-21,Rock,Minnesota,27133,20,0 +2020-05-22,Rock,Minnesota,27133,20,0 +2020-05-23,Rock,Minnesota,27133,20,0 +2020-05-24,Rock,Minnesota,27133,21,0 +2020-05-25,Rock,Minnesota,27133,21,0 +2020-05-26,Rock,Minnesota,27133,21,0 +2020-05-27,Rock,Minnesota,27133,21,0 +2020-05-28,Rock,Minnesota,27133,22,0 +2020-05-29,Rock,Minnesota,27133,22,0 +2020-05-30,Rock,Minnesota,27133,22,0 +2020-05-31,Rock,Minnesota,27133,22,0 +2020-06-01,Rock,Minnesota,27133,22,0 +2020-06-02,Rock,Minnesota,27133,22,0 +2020-06-03,Rock,Minnesota,27133,23,0 +2020-06-04,Rock,Minnesota,27133,23,0 +2020-06-05,Rock,Minnesota,27133,23,0 +2020-06-06,Rock,Minnesota,27133,23,0 +2020-06-07,Rock,Minnesota,27133,23,0 +2020-06-08,Rock,Minnesota,27133,23,0 +2020-06-09,Rock,Minnesota,27133,23,0 +2020-06-10,Rock,Minnesota,27133,23,0 +2020-06-11,Rock,Minnesota,27133,23,0 +2020-06-12,Rock,Minnesota,27133,23,0 +2020-06-13,Rock,Minnesota,27133,23,0 +2020-06-14,Rock,Minnesota,27133,25,0 +2020-06-15,Rock,Minnesota,27133,25,0 +2020-06-16,Rock,Minnesota,27133,25,0 +2020-06-17,Rock,Minnesota,27133,25,0 +2020-06-18,Rock,Minnesota,27133,26,0 +2020-06-19,Rock,Minnesota,27133,26,0 +2020-06-20,Rock,Minnesota,27133,26,0 +2020-06-21,Rock,Minnesota,27133,28,0 +2020-06-22,Rock,Minnesota,27133,28,0 +2020-06-23,Rock,Minnesota,27133,28,0 +2020-06-24,Rock,Minnesota,27133,28,0 +2020-06-25,Rock,Minnesota,27133,28,0 +2020-06-26,Rock,Minnesota,27133,29,0 +2020-06-27,Rock,Minnesota,27133,29,0 +2020-06-28,Rock,Minnesota,27133,29,0 +2020-06-29,Rock,Minnesota,27133,30,0 +2020-06-30,Rock,Minnesota,27133,30,0 +2020-07-01,Rock,Minnesota,27133,29,0 +2020-07-02,Rock,Minnesota,27133,29,0 +2020-07-03,Rock,Minnesota,27133,30,0 +2020-07-04,Rock,Minnesota,27133,30,0 +2020-07-05,Rock,Minnesota,27133,31,0 +2020-07-06,Rock,Minnesota,27133,31,0 +2020-07-07,Rock,Minnesota,27133,31,0 +2020-07-08,Rock,Minnesota,27133,31,0 +2020-07-09,Rock,Minnesota,27133,31,0 +2020-04-07,Roseau,Minnesota,27135,1,0 +2020-04-08,Roseau,Minnesota,27135,1,0 +2020-04-09,Roseau,Minnesota,27135,1,0 +2020-04-10,Roseau,Minnesota,27135,1,0 +2020-04-11,Roseau,Minnesota,27135,1,0 +2020-04-12,Roseau,Minnesota,27135,1,0 +2020-04-13,Roseau,Minnesota,27135,1,0 +2020-04-14,Roseau,Minnesota,27135,1,0 +2020-04-15,Roseau,Minnesota,27135,1,0 +2020-04-16,Roseau,Minnesota,27135,1,0 +2020-04-17,Roseau,Minnesota,27135,1,0 +2020-04-18,Roseau,Minnesota,27135,1,0 +2020-04-19,Roseau,Minnesota,27135,1,0 +2020-04-20,Roseau,Minnesota,27135,1,0 +2020-04-21,Roseau,Minnesota,27135,1,0 +2020-04-22,Roseau,Minnesota,27135,1,0 +2020-04-23,Roseau,Minnesota,27135,1,0 +2020-04-24,Roseau,Minnesota,27135,1,0 +2020-04-25,Roseau,Minnesota,27135,1,0 +2020-04-26,Roseau,Minnesota,27135,1,0 +2020-04-27,Roseau,Minnesota,27135,1,0 +2020-04-28,Roseau,Minnesota,27135,1,0 +2020-04-29,Roseau,Minnesota,27135,1,0 +2020-04-30,Roseau,Minnesota,27135,1,0 +2020-05-01,Roseau,Minnesota,27135,1,0 +2020-05-02,Roseau,Minnesota,27135,1,0 +2020-05-03,Roseau,Minnesota,27135,1,0 +2020-05-04,Roseau,Minnesota,27135,1,0 +2020-05-05,Roseau,Minnesota,27135,1,0 +2020-05-06,Roseau,Minnesota,27135,1,0 +2020-05-07,Roseau,Minnesota,27135,1,0 +2020-05-08,Roseau,Minnesota,27135,1,0 +2020-05-09,Roseau,Minnesota,27135,1,0 +2020-05-10,Roseau,Minnesota,27135,1,0 +2020-05-11,Roseau,Minnesota,27135,1,0 +2020-05-12,Roseau,Minnesota,27135,1,0 +2020-05-13,Roseau,Minnesota,27135,1,0 +2020-05-14,Roseau,Minnesota,27135,1,0 +2020-05-15,Roseau,Minnesota,27135,1,0 +2020-05-16,Roseau,Minnesota,27135,1,0 +2020-05-17,Roseau,Minnesota,27135,1,0 +2020-05-18,Roseau,Minnesota,27135,1,0 +2020-05-19,Roseau,Minnesota,27135,1,0 +2020-05-20,Roseau,Minnesota,27135,1,0 +2020-05-21,Roseau,Minnesota,27135,1,0 +2020-05-22,Roseau,Minnesota,27135,1,0 +2020-05-23,Roseau,Minnesota,27135,1,0 +2020-05-24,Roseau,Minnesota,27135,1,0 +2020-05-25,Roseau,Minnesota,27135,1,0 +2020-05-26,Roseau,Minnesota,27135,1,0 +2020-05-27,Roseau,Minnesota,27135,1,0 +2020-05-28,Roseau,Minnesota,27135,2,0 +2020-05-29,Roseau,Minnesota,27135,2,0 +2020-05-30,Roseau,Minnesota,27135,3,0 +2020-05-31,Roseau,Minnesota,27135,2,0 +2020-06-01,Roseau,Minnesota,27135,2,0 +2020-06-02,Roseau,Minnesota,27135,2,0 +2020-06-03,Roseau,Minnesota,27135,3,0 +2020-06-04,Roseau,Minnesota,27135,3,0 +2020-06-05,Roseau,Minnesota,27135,3,0 +2020-06-06,Roseau,Minnesota,27135,3,0 +2020-06-07,Roseau,Minnesota,27135,4,0 +2020-06-08,Roseau,Minnesota,27135,5,0 +2020-06-09,Roseau,Minnesota,27135,5,0 +2020-06-10,Roseau,Minnesota,27135,5,0 +2020-06-11,Roseau,Minnesota,27135,6,0 +2020-06-12,Roseau,Minnesota,27135,6,0 +2020-06-13,Roseau,Minnesota,27135,6,0 +2020-06-14,Roseau,Minnesota,27135,6,0 +2020-06-15,Roseau,Minnesota,27135,6,0 +2020-06-16,Roseau,Minnesota,27135,6,0 +2020-06-17,Roseau,Minnesota,27135,6,0 +2020-06-18,Roseau,Minnesota,27135,6,0 +2020-06-19,Roseau,Minnesota,27135,6,0 +2020-06-20,Roseau,Minnesota,27135,6,0 +2020-06-21,Roseau,Minnesota,27135,6,0 +2020-06-22,Roseau,Minnesota,27135,6,0 +2020-06-23,Roseau,Minnesota,27135,6,0 +2020-06-24,Roseau,Minnesota,27135,6,0 +2020-06-25,Roseau,Minnesota,27135,6,0 +2020-06-26,Roseau,Minnesota,27135,6,0 +2020-06-27,Roseau,Minnesota,27135,6,0 +2020-06-28,Roseau,Minnesota,27135,6,0 +2020-06-29,Roseau,Minnesota,27135,6,0 +2020-06-30,Roseau,Minnesota,27135,6,0 +2020-07-01,Roseau,Minnesota,27135,9,0 +2020-07-02,Roseau,Minnesota,27135,10,0 +2020-07-03,Roseau,Minnesota,27135,13,0 +2020-07-04,Roseau,Minnesota,27135,13,0 +2020-07-05,Roseau,Minnesota,27135,16,0 +2020-07-06,Roseau,Minnesota,27135,16,0 +2020-07-07,Roseau,Minnesota,27135,17,0 +2020-07-08,Roseau,Minnesota,27135,17,0 +2020-07-09,Roseau,Minnesota,27135,19,0 +2020-03-21,St. Louis,Minnesota,27137,1,0 +2020-03-22,St. Louis,Minnesota,27137,1,0 +2020-03-23,St. Louis,Minnesota,27137,2,0 +2020-03-24,St. Louis,Minnesota,27137,2,0 +2020-03-25,St. Louis,Minnesota,27137,3,0 +2020-03-26,St. Louis,Minnesota,27137,5,0 +2020-03-27,St. Louis,Minnesota,27137,5,0 +2020-03-28,St. Louis,Minnesota,27137,5,0 +2020-03-29,St. Louis,Minnesota,27137,10,0 +2020-03-30,St. Louis,Minnesota,27137,12,0 +2020-03-31,St. Louis,Minnesota,27137,12,0 +2020-04-01,St. Louis,Minnesota,27137,13,0 +2020-04-02,St. Louis,Minnesota,27137,13,0 +2020-04-03,St. Louis,Minnesota,27137,13,0 +2020-04-04,St. Louis,Minnesota,27137,13,0 +2020-04-05,St. Louis,Minnesota,27137,15,0 +2020-04-06,St. Louis,Minnesota,27137,16,0 +2020-04-07,St. Louis,Minnesota,27137,17,0 +2020-04-08,St. Louis,Minnesota,27137,28,0 +2020-04-09,St. Louis,Minnesota,27137,33,1 +2020-04-10,St. Louis,Minnesota,27137,34,4 +2020-04-11,St. Louis,Minnesota,27137,37,4 +2020-04-12,St. Louis,Minnesota,27137,38,5 +2020-04-13,St. Louis,Minnesota,27137,38,5 +2020-04-14,St. Louis,Minnesota,27137,42,5 +2020-04-15,St. Louis,Minnesota,27137,43,6 +2020-04-16,St. Louis,Minnesota,27137,44,6 +2020-04-17,St. Louis,Minnesota,27137,45,7 +2020-04-18,St. Louis,Minnesota,27137,46,8 +2020-04-19,St. Louis,Minnesota,27137,48,9 +2020-04-20,St. Louis,Minnesota,27137,52,10 +2020-04-21,St. Louis,Minnesota,27137,53,10 +2020-04-22,St. Louis,Minnesota,27137,54,10 +2020-04-23,St. Louis,Minnesota,27137,58,10 +2020-04-24,St. Louis,Minnesota,27137,59,10 +2020-04-25,St. Louis,Minnesota,27137,61,10 +2020-04-26,St. Louis,Minnesota,27137,63,10 +2020-04-27,St. Louis,Minnesota,27137,67,10 +2020-04-28,St. Louis,Minnesota,27137,69,11 +2020-04-29,St. Louis,Minnesota,27137,71,11 +2020-04-30,St. Louis,Minnesota,27137,71,11 +2020-05-01,St. Louis,Minnesota,27137,73,11 +2020-05-02,St. Louis,Minnesota,27137,74,11 +2020-05-03,St. Louis,Minnesota,27137,75,11 +2020-05-04,St. Louis,Minnesota,27137,79,11 +2020-05-05,St. Louis,Minnesota,27137,81,11 +2020-05-06,St. Louis,Minnesota,27137,86,11 +2020-05-07,St. Louis,Minnesota,27137,89,11 +2020-05-08,St. Louis,Minnesota,27137,90,12 +2020-05-09,St. Louis,Minnesota,27137,91,12 +2020-05-10,St. Louis,Minnesota,27137,92,12 +2020-05-11,St. Louis,Minnesota,27137,96,12 +2020-05-12,St. Louis,Minnesota,27137,96,12 +2020-05-13,St. Louis,Minnesota,27137,96,12 +2020-05-14,St. Louis,Minnesota,27137,100,12 +2020-05-15,St. Louis,Minnesota,27137,100,12 +2020-05-16,St. Louis,Minnesota,27137,101,12 +2020-05-17,St. Louis,Minnesota,27137,102,13 +2020-05-18,St. Louis,Minnesota,27137,105,13 +2020-05-19,St. Louis,Minnesota,27137,107,13 +2020-05-20,St. Louis,Minnesota,27137,110,13 +2020-05-21,St. Louis,Minnesota,27137,109,13 +2020-05-22,St. Louis,Minnesota,27137,109,13 +2020-05-23,St. Louis,Minnesota,27137,110,13 +2020-05-24,St. Louis,Minnesota,27137,111,13 +2020-05-25,St. Louis,Minnesota,27137,111,13 +2020-05-26,St. Louis,Minnesota,27137,114,13 +2020-05-27,St. Louis,Minnesota,27137,115,13 +2020-05-28,St. Louis,Minnesota,27137,117,14 +2020-05-29,St. Louis,Minnesota,27137,118,14 +2020-05-30,St. Louis,Minnesota,27137,118,14 +2020-05-31,St. Louis,Minnesota,27137,118,14 +2020-06-01,St. Louis,Minnesota,27137,118,14 +2020-06-02,St. Louis,Minnesota,27137,118,14 +2020-06-03,St. Louis,Minnesota,27137,118,14 +2020-06-04,St. Louis,Minnesota,27137,118,14 +2020-06-05,St. Louis,Minnesota,27137,119,14 +2020-06-06,St. Louis,Minnesota,27137,119,14 +2020-06-07,St. Louis,Minnesota,27137,119,14 +2020-06-08,St. Louis,Minnesota,27137,119,14 +2020-06-09,St. Louis,Minnesota,27137,119,14 +2020-06-10,St. Louis,Minnesota,27137,119,14 +2020-06-11,St. Louis,Minnesota,27137,123,14 +2020-06-12,St. Louis,Minnesota,27137,123,14 +2020-06-13,St. Louis,Minnesota,27137,123,14 +2020-06-14,St. Louis,Minnesota,27137,123,14 +2020-06-15,St. Louis,Minnesota,27137,123,14 +2020-06-16,St. Louis,Minnesota,27137,124,14 +2020-06-17,St. Louis,Minnesota,27137,127,14 +2020-06-18,St. Louis,Minnesota,27137,129,14 +2020-06-19,St. Louis,Minnesota,27137,132,14 +2020-06-20,St. Louis,Minnesota,27137,135,14 +2020-06-21,St. Louis,Minnesota,27137,142,14 +2020-06-22,St. Louis,Minnesota,27137,143,14 +2020-06-23,St. Louis,Minnesota,27137,145,14 +2020-06-24,St. Louis,Minnesota,27137,146,14 +2020-06-25,St. Louis,Minnesota,27137,151,14 +2020-06-26,St. Louis,Minnesota,27137,152,14 +2020-06-27,St. Louis,Minnesota,27137,152,14 +2020-06-28,St. Louis,Minnesota,27137,156,14 +2020-06-29,St. Louis,Minnesota,27137,158,14 +2020-06-30,St. Louis,Minnesota,27137,161,14 +2020-07-01,St. Louis,Minnesota,27137,169,15 +2020-07-02,St. Louis,Minnesota,27137,174,15 +2020-07-03,St. Louis,Minnesota,27137,177,15 +2020-07-04,St. Louis,Minnesota,27137,177,15 +2020-07-05,St. Louis,Minnesota,27137,178,15 +2020-07-06,St. Louis,Minnesota,27137,180,15 +2020-07-07,St. Louis,Minnesota,27137,196,15 +2020-07-08,St. Louis,Minnesota,27137,198,16 +2020-07-09,St. Louis,Minnesota,27137,203,16 +2020-03-19,Scott,Minnesota,27139,1,0 +2020-03-20,Scott,Minnesota,27139,2,0 +2020-03-21,Scott,Minnesota,27139,2,0 +2020-03-22,Scott,Minnesota,27139,3,0 +2020-03-23,Scott,Minnesota,27139,5,0 +2020-03-24,Scott,Minnesota,27139,5,0 +2020-03-25,Scott,Minnesota,27139,6,0 +2020-03-26,Scott,Minnesota,27139,6,0 +2020-03-27,Scott,Minnesota,27139,7,0 +2020-03-28,Scott,Minnesota,27139,8,0 +2020-03-29,Scott,Minnesota,27139,9,0 +2020-03-30,Scott,Minnesota,27139,10,0 +2020-03-31,Scott,Minnesota,27139,10,0 +2020-04-01,Scott,Minnesota,27139,10,0 +2020-04-02,Scott,Minnesota,27139,10,0 +2020-04-03,Scott,Minnesota,27139,11,1 +2020-04-04,Scott,Minnesota,27139,12,1 +2020-04-05,Scott,Minnesota,27139,13,1 +2020-04-06,Scott,Minnesota,27139,15,1 +2020-04-07,Scott,Minnesota,27139,16,1 +2020-04-08,Scott,Minnesota,27139,17,1 +2020-04-09,Scott,Minnesota,27139,19,1 +2020-04-10,Scott,Minnesota,27139,19,1 +2020-04-11,Scott,Minnesota,27139,20,1 +2020-04-12,Scott,Minnesota,27139,20,1 +2020-04-13,Scott,Minnesota,27139,20,1 +2020-04-14,Scott,Minnesota,27139,20,1 +2020-04-15,Scott,Minnesota,27139,20,1 +2020-04-16,Scott,Minnesota,27139,20,1 +2020-04-17,Scott,Minnesota,27139,23,1 +2020-04-18,Scott,Minnesota,27139,23,1 +2020-04-19,Scott,Minnesota,27139,25,1 +2020-04-20,Scott,Minnesota,27139,27,1 +2020-04-21,Scott,Minnesota,27139,27,1 +2020-04-22,Scott,Minnesota,27139,28,1 +2020-04-23,Scott,Minnesota,27139,29,1 +2020-04-24,Scott,Minnesota,27139,30,1 +2020-04-25,Scott,Minnesota,27139,32,1 +2020-04-26,Scott,Minnesota,27139,32,1 +2020-04-27,Scott,Minnesota,27139,35,1 +2020-04-28,Scott,Minnesota,27139,36,1 +2020-04-29,Scott,Minnesota,27139,41,1 +2020-04-30,Scott,Minnesota,27139,44,1 +2020-05-01,Scott,Minnesota,27139,46,1 +2020-05-02,Scott,Minnesota,27139,52,1 +2020-05-03,Scott,Minnesota,27139,58,1 +2020-05-04,Scott,Minnesota,27139,63,1 +2020-05-05,Scott,Minnesota,27139,74,1 +2020-05-06,Scott,Minnesota,27139,90,1 +2020-05-07,Scott,Minnesota,27139,100,1 +2020-05-08,Scott,Minnesota,27139,121,1 +2020-05-09,Scott,Minnesota,27139,129,1 +2020-05-10,Scott,Minnesota,27139,140,1 +2020-05-11,Scott,Minnesota,27139,155,1 +2020-05-12,Scott,Minnesota,27139,168,1 +2020-05-13,Scott,Minnesota,27139,168,1 +2020-05-14,Scott,Minnesota,27139,186,1 +2020-05-15,Scott,Minnesota,27139,207,1 +2020-05-16,Scott,Minnesota,27139,223,1 +2020-05-17,Scott,Minnesota,27139,238,1 +2020-05-18,Scott,Minnesota,27139,259,1 +2020-05-19,Scott,Minnesota,27139,271,1 +2020-05-20,Scott,Minnesota,27139,291,2 +2020-05-21,Scott,Minnesota,27139,298,2 +2020-05-22,Scott,Minnesota,27139,316,2 +2020-05-23,Scott,Minnesota,27139,334,2 +2020-05-24,Scott,Minnesota,27139,346,2 +2020-05-25,Scott,Minnesota,27139,358,2 +2020-05-26,Scott,Minnesota,27139,374,2 +2020-05-27,Scott,Minnesota,27139,379,2 +2020-05-28,Scott,Minnesota,27139,383,2 +2020-05-29,Scott,Minnesota,27139,394,2 +2020-05-30,Scott,Minnesota,27139,408,2 +2020-05-31,Scott,Minnesota,27139,426,2 +2020-06-01,Scott,Minnesota,27139,436,2 +2020-06-02,Scott,Minnesota,27139,442,2 +2020-06-03,Scott,Minnesota,27139,455,2 +2020-06-04,Scott,Minnesota,27139,460,2 +2020-06-05,Scott,Minnesota,27139,471,2 +2020-06-06,Scott,Minnesota,27139,483,2 +2020-06-07,Scott,Minnesota,27139,486,2 +2020-06-08,Scott,Minnesota,27139,493,2 +2020-06-09,Scott,Minnesota,27139,496,2 +2020-06-10,Scott,Minnesota,27139,504,3 +2020-06-11,Scott,Minnesota,27139,517,4 +2020-06-12,Scott,Minnesota,27139,525,4 +2020-06-13,Scott,Minnesota,27139,526,4 +2020-06-14,Scott,Minnesota,27139,528,4 +2020-06-15,Scott,Minnesota,27139,536,4 +2020-06-16,Scott,Minnesota,27139,541,4 +2020-06-17,Scott,Minnesota,27139,546,4 +2020-06-18,Scott,Minnesota,27139,551,4 +2020-06-19,Scott,Minnesota,27139,555,4 +2020-06-20,Scott,Minnesota,27139,561,4 +2020-06-21,Scott,Minnesota,27139,570,4 +2020-06-22,Scott,Minnesota,27139,587,4 +2020-06-23,Scott,Minnesota,27139,595,4 +2020-06-24,Scott,Minnesota,27139,603,4 +2020-06-25,Scott,Minnesota,27139,609,4 +2020-06-26,Scott,Minnesota,27139,616,4 +2020-06-27,Scott,Minnesota,27139,627,4 +2020-06-28,Scott,Minnesota,27139,637,4 +2020-06-29,Scott,Minnesota,27139,641,4 +2020-06-30,Scott,Minnesota,27139,658,4 +2020-07-01,Scott,Minnesota,27139,671,4 +2020-07-02,Scott,Minnesota,27139,684,4 +2020-07-03,Scott,Minnesota,27139,700,4 +2020-07-04,Scott,Minnesota,27139,700,4 +2020-07-05,Scott,Minnesota,27139,715,4 +2020-07-06,Scott,Minnesota,27139,734,4 +2020-07-07,Scott,Minnesota,27139,762,4 +2020-07-08,Scott,Minnesota,27139,783,4 +2020-07-09,Scott,Minnesota,27139,803,4 +2020-03-23,Sherburne,Minnesota,27141,1,0 +2020-03-24,Sherburne,Minnesota,27141,1,0 +2020-03-25,Sherburne,Minnesota,27141,1,0 +2020-03-26,Sherburne,Minnesota,27141,1,0 +2020-03-27,Sherburne,Minnesota,27141,3,0 +2020-03-28,Sherburne,Minnesota,27141,5,0 +2020-03-29,Sherburne,Minnesota,27141,5,0 +2020-03-30,Sherburne,Minnesota,27141,7,0 +2020-03-31,Sherburne,Minnesota,27141,8,0 +2020-04-01,Sherburne,Minnesota,27141,8,0 +2020-04-02,Sherburne,Minnesota,27141,8,0 +2020-04-03,Sherburne,Minnesota,27141,8,0 +2020-04-04,Sherburne,Minnesota,27141,9,0 +2020-04-05,Sherburne,Minnesota,27141,10,0 +2020-04-06,Sherburne,Minnesota,27141,10,0 +2020-04-07,Sherburne,Minnesota,27141,10,0 +2020-04-08,Sherburne,Minnesota,27141,9,0 +2020-04-09,Sherburne,Minnesota,27141,9,0 +2020-04-10,Sherburne,Minnesota,27141,9,0 +2020-04-11,Sherburne,Minnesota,27141,9,0 +2020-04-12,Sherburne,Minnesota,27141,9,0 +2020-04-13,Sherburne,Minnesota,27141,9,0 +2020-04-14,Sherburne,Minnesota,27141,10,0 +2020-04-15,Sherburne,Minnesota,27141,11,0 +2020-04-16,Sherburne,Minnesota,27141,12,0 +2020-04-17,Sherburne,Minnesota,27141,12,0 +2020-04-18,Sherburne,Minnesota,27141,12,0 +2020-04-19,Sherburne,Minnesota,27141,13,0 +2020-04-20,Sherburne,Minnesota,27141,13,0 +2020-04-21,Sherburne,Minnesota,27141,13,0 +2020-04-22,Sherburne,Minnesota,27141,13,0 +2020-04-23,Sherburne,Minnesota,27141,15,0 +2020-04-24,Sherburne,Minnesota,27141,15,0 +2020-04-25,Sherburne,Minnesota,27141,15,0 +2020-04-26,Sherburne,Minnesota,27141,16,0 +2020-04-27,Sherburne,Minnesota,27141,16,0 +2020-04-28,Sherburne,Minnesota,27141,19,0 +2020-04-29,Sherburne,Minnesota,27141,26,0 +2020-04-30,Sherburne,Minnesota,27141,28,0 +2020-05-01,Sherburne,Minnesota,27141,39,0 +2020-05-02,Sherburne,Minnesota,27141,50,0 +2020-05-03,Sherburne,Minnesota,27141,54,0 +2020-05-04,Sherburne,Minnesota,27141,61,0 +2020-05-05,Sherburne,Minnesota,27141,71,1 +2020-05-06,Sherburne,Minnesota,27141,80,1 +2020-05-07,Sherburne,Minnesota,27141,88,1 +2020-05-08,Sherburne,Minnesota,27141,95,1 +2020-05-09,Sherburne,Minnesota,27141,107,1 +2020-05-10,Sherburne,Minnesota,27141,109,1 +2020-05-11,Sherburne,Minnesota,27141,114,1 +2020-05-12,Sherburne,Minnesota,27141,122,1 +2020-05-13,Sherburne,Minnesota,27141,122,1 +2020-05-14,Sherburne,Minnesota,27141,130,1 +2020-05-15,Sherburne,Minnesota,27141,135,1 +2020-05-16,Sherburne,Minnesota,27141,144,1 +2020-05-17,Sherburne,Minnesota,27141,150,2 +2020-05-18,Sherburne,Minnesota,27141,155,2 +2020-05-19,Sherburne,Minnesota,27141,164,2 +2020-05-20,Sherburne,Minnesota,27141,178,1 +2020-05-21,Sherburne,Minnesota,27141,183,1 +2020-05-22,Sherburne,Minnesota,27141,193,1 +2020-05-23,Sherburne,Minnesota,27141,202,1 +2020-05-24,Sherburne,Minnesota,27141,208,1 +2020-05-25,Sherburne,Minnesota,27141,214,2 +2020-05-26,Sherburne,Minnesota,27141,217,2 +2020-05-27,Sherburne,Minnesota,27141,219,2 +2020-05-28,Sherburne,Minnesota,27141,222,2 +2020-05-29,Sherburne,Minnesota,27141,226,2 +2020-05-30,Sherburne,Minnesota,27141,237,2 +2020-05-31,Sherburne,Minnesota,27141,243,2 +2020-06-01,Sherburne,Minnesota,27141,246,2 +2020-06-02,Sherburne,Minnesota,27141,253,2 +2020-06-03,Sherburne,Minnesota,27141,248,2 +2020-06-04,Sherburne,Minnesota,27141,248,2 +2020-06-05,Sherburne,Minnesota,27141,249,2 +2020-06-06,Sherburne,Minnesota,27141,253,2 +2020-06-07,Sherburne,Minnesota,27141,254,2 +2020-06-08,Sherburne,Minnesota,27141,257,2 +2020-06-09,Sherburne,Minnesota,27141,261,2 +2020-06-10,Sherburne,Minnesota,27141,260,2 +2020-06-11,Sherburne,Minnesota,27141,261,2 +2020-06-12,Sherburne,Minnesota,27141,262,2 +2020-06-13,Sherburne,Minnesota,27141,267,2 +2020-06-14,Sherburne,Minnesota,27141,266,2 +2020-06-15,Sherburne,Minnesota,27141,267,2 +2020-06-16,Sherburne,Minnesota,27141,270,3 +2020-06-17,Sherburne,Minnesota,27141,272,3 +2020-06-18,Sherburne,Minnesota,27141,271,3 +2020-06-19,Sherburne,Minnesota,27141,272,4 +2020-06-20,Sherburne,Minnesota,27141,273,4 +2020-06-21,Sherburne,Minnesota,27141,275,4 +2020-06-22,Sherburne,Minnesota,27141,276,4 +2020-06-23,Sherburne,Minnesota,27141,277,4 +2020-06-24,Sherburne,Minnesota,27141,277,4 +2020-06-25,Sherburne,Minnesota,27141,278,4 +2020-06-26,Sherburne,Minnesota,27141,283,4 +2020-06-27,Sherburne,Minnesota,27141,287,4 +2020-06-28,Sherburne,Minnesota,27141,291,4 +2020-06-29,Sherburne,Minnesota,27141,291,4 +2020-06-30,Sherburne,Minnesota,27141,295,4 +2020-07-01,Sherburne,Minnesota,27141,297,4 +2020-07-02,Sherburne,Minnesota,27141,303,5 +2020-07-03,Sherburne,Minnesota,27141,307,5 +2020-07-04,Sherburne,Minnesota,27141,307,5 +2020-07-05,Sherburne,Minnesota,27141,312,5 +2020-07-06,Sherburne,Minnesota,27141,317,5 +2020-07-07,Sherburne,Minnesota,27141,325,5 +2020-07-08,Sherburne,Minnesota,27141,327,5 +2020-07-09,Sherburne,Minnesota,27141,340,5 +2020-03-26,Sibley,Minnesota,27143,1,0 +2020-03-27,Sibley,Minnesota,27143,1,0 +2020-03-28,Sibley,Minnesota,27143,1,0 +2020-03-29,Sibley,Minnesota,27143,1,0 +2020-03-30,Sibley,Minnesota,27143,1,0 +2020-03-31,Sibley,Minnesota,27143,1,0 +2020-04-01,Sibley,Minnesota,27143,1,0 +2020-04-02,Sibley,Minnesota,27143,1,0 +2020-04-03,Sibley,Minnesota,27143,1,0 +2020-04-04,Sibley,Minnesota,27143,1,0 +2020-04-05,Sibley,Minnesota,27143,1,0 +2020-04-06,Sibley,Minnesota,27143,1,0 +2020-04-07,Sibley,Minnesota,27143,1,0 +2020-04-08,Sibley,Minnesota,27143,1,0 +2020-04-09,Sibley,Minnesota,27143,1,0 +2020-04-10,Sibley,Minnesota,27143,1,0 +2020-04-11,Sibley,Minnesota,27143,1,0 +2020-04-12,Sibley,Minnesota,27143,1,0 +2020-04-13,Sibley,Minnesota,27143,1,0 +2020-04-14,Sibley,Minnesota,27143,1,0 +2020-04-15,Sibley,Minnesota,27143,1,0 +2020-04-16,Sibley,Minnesota,27143,1,0 +2020-04-17,Sibley,Minnesota,27143,1,0 +2020-04-18,Sibley,Minnesota,27143,1,0 +2020-04-19,Sibley,Minnesota,27143,1,0 +2020-04-20,Sibley,Minnesota,27143,1,0 +2020-04-21,Sibley,Minnesota,27143,1,0 +2020-04-22,Sibley,Minnesota,27143,1,0 +2020-04-23,Sibley,Minnesota,27143,1,0 +2020-04-24,Sibley,Minnesota,27143,1,0 +2020-04-25,Sibley,Minnesota,27143,1,0 +2020-04-26,Sibley,Minnesota,27143,1,0 +2020-04-27,Sibley,Minnesota,27143,1,0 +2020-04-28,Sibley,Minnesota,27143,2,0 +2020-04-29,Sibley,Minnesota,27143,2,0 +2020-04-30,Sibley,Minnesota,27143,2,0 +2020-05-01,Sibley,Minnesota,27143,2,0 +2020-05-02,Sibley,Minnesota,27143,2,0 +2020-05-03,Sibley,Minnesota,27143,2,0 +2020-05-04,Sibley,Minnesota,27143,2,0 +2020-05-05,Sibley,Minnesota,27143,2,0 +2020-05-06,Sibley,Minnesota,27143,2,0 +2020-05-07,Sibley,Minnesota,27143,2,0 +2020-05-08,Sibley,Minnesota,27143,3,0 +2020-05-09,Sibley,Minnesota,27143,3,0 +2020-05-10,Sibley,Minnesota,27143,4,0 +2020-05-11,Sibley,Minnesota,27143,4,0 +2020-05-12,Sibley,Minnesota,27143,4,0 +2020-05-13,Sibley,Minnesota,27143,4,0 +2020-05-14,Sibley,Minnesota,27143,4,0 +2020-05-15,Sibley,Minnesota,27143,4,0 +2020-05-16,Sibley,Minnesota,27143,7,0 +2020-05-17,Sibley,Minnesota,27143,9,0 +2020-05-18,Sibley,Minnesota,27143,10,0 +2020-05-19,Sibley,Minnesota,27143,10,0 +2020-05-20,Sibley,Minnesota,27143,11,0 +2020-05-21,Sibley,Minnesota,27143,12,0 +2020-05-22,Sibley,Minnesota,27143,12,0 +2020-05-23,Sibley,Minnesota,27143,12,0 +2020-05-24,Sibley,Minnesota,27143,12,0 +2020-05-25,Sibley,Minnesota,27143,12,0 +2020-05-26,Sibley,Minnesota,27143,13,0 +2020-05-27,Sibley,Minnesota,27143,13,0 +2020-05-28,Sibley,Minnesota,27143,15,0 +2020-05-29,Sibley,Minnesota,27143,16,0 +2020-05-30,Sibley,Minnesota,27143,16,0 +2020-05-31,Sibley,Minnesota,27143,16,0 +2020-06-01,Sibley,Minnesota,27143,16,0 +2020-06-02,Sibley,Minnesota,27143,16,0 +2020-06-03,Sibley,Minnesota,27143,16,0 +2020-06-04,Sibley,Minnesota,27143,16,0 +2020-06-05,Sibley,Minnesota,27143,17,0 +2020-06-06,Sibley,Minnesota,27143,17,0 +2020-06-07,Sibley,Minnesota,27143,19,0 +2020-06-08,Sibley,Minnesota,27143,19,0 +2020-06-09,Sibley,Minnesota,27143,19,1 +2020-06-10,Sibley,Minnesota,27143,25,1 +2020-06-11,Sibley,Minnesota,27143,25,1 +2020-06-12,Sibley,Minnesota,27143,25,2 +2020-06-13,Sibley,Minnesota,27143,25,2 +2020-06-14,Sibley,Minnesota,27143,25,2 +2020-06-15,Sibley,Minnesota,27143,25,2 +2020-06-16,Sibley,Minnesota,27143,25,2 +2020-06-17,Sibley,Minnesota,27143,26,2 +2020-06-18,Sibley,Minnesota,27143,27,2 +2020-06-19,Sibley,Minnesota,27143,28,2 +2020-06-20,Sibley,Minnesota,27143,28,2 +2020-06-21,Sibley,Minnesota,27143,29,2 +2020-06-22,Sibley,Minnesota,27143,29,2 +2020-06-23,Sibley,Minnesota,27143,29,2 +2020-06-24,Sibley,Minnesota,27143,30,2 +2020-06-25,Sibley,Minnesota,27143,35,2 +2020-06-26,Sibley,Minnesota,27143,37,2 +2020-06-27,Sibley,Minnesota,27143,40,2 +2020-06-28,Sibley,Minnesota,27143,43,2 +2020-06-29,Sibley,Minnesota,27143,46,2 +2020-06-30,Sibley,Minnesota,27143,48,2 +2020-07-01,Sibley,Minnesota,27143,48,2 +2020-07-02,Sibley,Minnesota,27143,53,2 +2020-07-03,Sibley,Minnesota,27143,54,2 +2020-07-04,Sibley,Minnesota,27143,54,2 +2020-07-05,Sibley,Minnesota,27143,54,2 +2020-07-06,Sibley,Minnesota,27143,54,2 +2020-07-07,Sibley,Minnesota,27143,54,2 +2020-07-08,Sibley,Minnesota,27143,55,2 +2020-07-09,Sibley,Minnesota,27143,56,2 +2020-03-12,Stearns,Minnesota,27145,2,0 +2020-03-13,Stearns,Minnesota,27145,2,0 +2020-03-14,Stearns,Minnesota,27145,3,0 +2020-03-15,Stearns,Minnesota,27145,3,0 +2020-03-16,Stearns,Minnesota,27145,3,0 +2020-03-17,Stearns,Minnesota,27145,3,0 +2020-03-18,Stearns,Minnesota,27145,3,0 +2020-03-19,Stearns,Minnesota,27145,4,0 +2020-03-20,Stearns,Minnesota,27145,4,0 +2020-03-21,Stearns,Minnesota,27145,4,0 +2020-03-22,Stearns,Minnesota,27145,4,0 +2020-03-23,Stearns,Minnesota,27145,5,0 +2020-03-24,Stearns,Minnesota,27145,5,0 +2020-03-25,Stearns,Minnesota,27145,5,0 +2020-03-26,Stearns,Minnesota,27145,5,0 +2020-03-27,Stearns,Minnesota,27145,5,0 +2020-03-28,Stearns,Minnesota,27145,5,0 +2020-03-29,Stearns,Minnesota,27145,5,0 +2020-03-30,Stearns,Minnesota,27145,5,0 +2020-03-31,Stearns,Minnesota,27145,5,0 +2020-04-01,Stearns,Minnesota,27145,5,0 +2020-04-02,Stearns,Minnesota,27145,5,0 +2020-04-03,Stearns,Minnesota,27145,5,0 +2020-04-04,Stearns,Minnesota,27145,6,0 +2020-04-05,Stearns,Minnesota,27145,6,0 +2020-04-06,Stearns,Minnesota,27145,6,0 +2020-04-07,Stearns,Minnesota,27145,6,0 +2020-04-08,Stearns,Minnesota,27145,7,0 +2020-04-09,Stearns,Minnesota,27145,7,0 +2020-04-10,Stearns,Minnesota,27145,7,0 +2020-04-11,Stearns,Minnesota,27145,7,0 +2020-04-12,Stearns,Minnesota,27145,7,0 +2020-04-13,Stearns,Minnesota,27145,7,0 +2020-04-14,Stearns,Minnesota,27145,7,0 +2020-04-15,Stearns,Minnesota,27145,7,0 +2020-04-16,Stearns,Minnesota,27145,11,0 +2020-04-17,Stearns,Minnesota,27145,14,0 +2020-04-18,Stearns,Minnesota,27145,16,0 +2020-04-19,Stearns,Minnesota,27145,16,0 +2020-04-20,Stearns,Minnesota,27145,17,0 +2020-04-21,Stearns,Minnesota,27145,18,0 +2020-04-22,Stearns,Minnesota,27145,20,0 +2020-04-23,Stearns,Minnesota,27145,25,0 +2020-04-24,Stearns,Minnesota,27145,33,0 +2020-04-25,Stearns,Minnesota,27145,38,0 +2020-04-26,Stearns,Minnesota,27145,38,0 +2020-04-27,Stearns,Minnesota,27145,55,0 +2020-04-28,Stearns,Minnesota,27145,86,0 +2020-04-29,Stearns,Minnesota,27145,166,0 +2020-04-30,Stearns,Minnesota,27145,267,0 +2020-05-01,Stearns,Minnesota,27145,435,0 +2020-05-02,Stearns,Minnesota,27145,531,0 +2020-05-03,Stearns,Minnesota,27145,589,0 +2020-05-04,Stearns,Minnesota,27145,728,2 +2020-05-05,Stearns,Minnesota,27145,815,2 +2020-05-06,Stearns,Minnesota,27145,975,3 +2020-05-07,Stearns,Minnesota,27145,1161,4 +2020-05-08,Stearns,Minnesota,27145,1274,4 +2020-05-09,Stearns,Minnesota,27145,1348,5 +2020-05-10,Stearns,Minnesota,27145,1405,5 +2020-05-11,Stearns,Minnesota,27145,1443,6 +2020-05-12,Stearns,Minnesota,27145,1512,6 +2020-05-13,Stearns,Minnesota,27145,1512,6 +2020-05-14,Stearns,Minnesota,27145,1609,9 +2020-05-15,Stearns,Minnesota,27145,1641,9 +2020-05-16,Stearns,Minnesota,27145,1675,10 +2020-05-17,Stearns,Minnesota,27145,1713,10 +2020-05-18,Stearns,Minnesota,27145,1740,10 +2020-05-19,Stearns,Minnesota,27145,1782,10 +2020-05-20,Stearns,Minnesota,27145,1831,11 +2020-05-21,Stearns,Minnesota,27145,1853,11 +2020-05-22,Stearns,Minnesota,27145,1881,12 +2020-05-23,Stearns,Minnesota,27145,1918,12 +2020-05-24,Stearns,Minnesota,27145,1923,12 +2020-05-25,Stearns,Minnesota,27145,1950,12 +2020-05-26,Stearns,Minnesota,27145,1959,12 +2020-05-27,Stearns,Minnesota,27145,1984,12 +2020-05-28,Stearns,Minnesota,27145,1995,12 +2020-05-29,Stearns,Minnesota,27145,2001,13 +2020-05-30,Stearns,Minnesota,27145,2014,13 +2020-05-31,Stearns,Minnesota,27145,2021,13 +2020-06-01,Stearns,Minnesota,27145,2030,13 +2020-06-02,Stearns,Minnesota,27145,2042,13 +2020-06-03,Stearns,Minnesota,27145,2047,14 +2020-06-04,Stearns,Minnesota,27145,2050,14 +2020-06-05,Stearns,Minnesota,27145,2056,14 +2020-06-06,Stearns,Minnesota,27145,2063,15 +2020-06-07,Stearns,Minnesota,27145,2070,16 +2020-06-08,Stearns,Minnesota,27145,2071,16 +2020-06-09,Stearns,Minnesota,27145,2076,17 +2020-06-10,Stearns,Minnesota,27145,2081,17 +2020-06-11,Stearns,Minnesota,27145,2088,17 +2020-06-12,Stearns,Minnesota,27145,2096,17 +2020-06-13,Stearns,Minnesota,27145,2100,18 +2020-06-14,Stearns,Minnesota,27145,2107,19 +2020-06-15,Stearns,Minnesota,27145,2108,19 +2020-06-16,Stearns,Minnesota,27145,2109,19 +2020-06-17,Stearns,Minnesota,27145,2111,19 +2020-06-18,Stearns,Minnesota,27145,2122,19 +2020-06-19,Stearns,Minnesota,27145,2126,19 +2020-06-20,Stearns,Minnesota,27145,2131,19 +2020-06-21,Stearns,Minnesota,27145,2134,19 +2020-06-22,Stearns,Minnesota,27145,2137,19 +2020-06-23,Stearns,Minnesota,27145,2139,19 +2020-06-24,Stearns,Minnesota,27145,2140,19 +2020-06-25,Stearns,Minnesota,27145,2141,19 +2020-06-26,Stearns,Minnesota,27145,2156,19 +2020-06-27,Stearns,Minnesota,27145,2166,19 +2020-06-28,Stearns,Minnesota,27145,2200,19 +2020-06-29,Stearns,Minnesota,27145,2228,19 +2020-06-30,Stearns,Minnesota,27145,2265,19 +2020-07-01,Stearns,Minnesota,27145,2287,19 +2020-07-02,Stearns,Minnesota,27145,2312,19 +2020-07-03,Stearns,Minnesota,27145,2345,19 +2020-07-04,Stearns,Minnesota,27145,2345,19 +2020-07-05,Stearns,Minnesota,27145,2361,19 +2020-07-06,Stearns,Minnesota,27145,2371,19 +2020-07-07,Stearns,Minnesota,27145,2414,19 +2020-07-08,Stearns,Minnesota,27145,2429,19 +2020-07-09,Stearns,Minnesota,27145,2448,19 +2020-03-21,Steele,Minnesota,27147,2,0 +2020-03-22,Steele,Minnesota,27147,3,0 +2020-03-23,Steele,Minnesota,27147,3,0 +2020-03-24,Steele,Minnesota,27147,5,0 +2020-03-25,Steele,Minnesota,27147,5,0 +2020-03-26,Steele,Minnesota,27147,5,0 +2020-03-27,Steele,Minnesota,27147,5,0 +2020-03-28,Steele,Minnesota,27147,5,0 +2020-03-29,Steele,Minnesota,27147,5,0 +2020-03-30,Steele,Minnesota,27147,6,0 +2020-03-31,Steele,Minnesota,27147,6,0 +2020-04-01,Steele,Minnesota,27147,6,0 +2020-04-02,Steele,Minnesota,27147,6,0 +2020-04-03,Steele,Minnesota,27147,6,0 +2020-04-04,Steele,Minnesota,27147,8,0 +2020-04-05,Steele,Minnesota,27147,8,0 +2020-04-06,Steele,Minnesota,27147,8,0 +2020-04-07,Steele,Minnesota,27147,8,0 +2020-04-08,Steele,Minnesota,27147,8,0 +2020-04-09,Steele,Minnesota,27147,8,0 +2020-04-10,Steele,Minnesota,27147,9,0 +2020-04-11,Steele,Minnesota,27147,9,0 +2020-04-12,Steele,Minnesota,27147,9,0 +2020-04-13,Steele,Minnesota,27147,9,0 +2020-04-14,Steele,Minnesota,27147,9,0 +2020-04-15,Steele,Minnesota,27147,9,0 +2020-04-16,Steele,Minnesota,27147,9,0 +2020-04-17,Steele,Minnesota,27147,9,0 +2020-04-18,Steele,Minnesota,27147,9,0 +2020-04-19,Steele,Minnesota,27147,9,0 +2020-04-20,Steele,Minnesota,27147,9,0 +2020-04-21,Steele,Minnesota,27147,9,0 +2020-04-22,Steele,Minnesota,27147,10,0 +2020-04-23,Steele,Minnesota,27147,10,0 +2020-04-24,Steele,Minnesota,27147,11,0 +2020-04-25,Steele,Minnesota,27147,12,0 +2020-04-26,Steele,Minnesota,27147,12,0 +2020-04-27,Steele,Minnesota,27147,14,0 +2020-04-28,Steele,Minnesota,27147,14,0 +2020-04-29,Steele,Minnesota,27147,15,0 +2020-04-30,Steele,Minnesota,27147,16,0 +2020-05-01,Steele,Minnesota,27147,18,0 +2020-05-02,Steele,Minnesota,27147,20,0 +2020-05-03,Steele,Minnesota,27147,21,0 +2020-05-04,Steele,Minnesota,27147,24,0 +2020-05-05,Steele,Minnesota,27147,25,0 +2020-05-06,Steele,Minnesota,27147,29,0 +2020-05-07,Steele,Minnesota,27147,37,0 +2020-05-08,Steele,Minnesota,27147,45,0 +2020-05-09,Steele,Minnesota,27147,58,0 +2020-05-10,Steele,Minnesota,27147,60,0 +2020-05-11,Steele,Minnesota,27147,65,0 +2020-05-12,Steele,Minnesota,27147,73,0 +2020-05-13,Steele,Minnesota,27147,73,0 +2020-05-14,Steele,Minnesota,27147,85,0 +2020-05-15,Steele,Minnesota,27147,92,0 +2020-05-16,Steele,Minnesota,27147,100,0 +2020-05-17,Steele,Minnesota,27147,105,0 +2020-05-18,Steele,Minnesota,27147,111,0 +2020-05-19,Steele,Minnesota,27147,115,0 +2020-05-20,Steele,Minnesota,27147,116,0 +2020-05-21,Steele,Minnesota,27147,122,0 +2020-05-22,Steele,Minnesota,27147,134,0 +2020-05-23,Steele,Minnesota,27147,138,0 +2020-05-24,Steele,Minnesota,27147,140,0 +2020-05-25,Steele,Minnesota,27147,141,0 +2020-05-26,Steele,Minnesota,27147,144,0 +2020-05-27,Steele,Minnesota,27147,148,0 +2020-05-28,Steele,Minnesota,27147,149,0 +2020-05-29,Steele,Minnesota,27147,151,0 +2020-05-30,Steele,Minnesota,27147,159,0 +2020-05-31,Steele,Minnesota,27147,158,0 +2020-06-01,Steele,Minnesota,27147,160,0 +2020-06-02,Steele,Minnesota,27147,164,0 +2020-06-03,Steele,Minnesota,27147,167,0 +2020-06-04,Steele,Minnesota,27147,167,0 +2020-06-05,Steele,Minnesota,27147,170,0 +2020-06-06,Steele,Minnesota,27147,171,0 +2020-06-07,Steele,Minnesota,27147,172,0 +2020-06-08,Steele,Minnesota,27147,173,0 +2020-06-09,Steele,Minnesota,27147,173,0 +2020-06-10,Steele,Minnesota,27147,173,0 +2020-06-11,Steele,Minnesota,27147,173,0 +2020-06-12,Steele,Minnesota,27147,175,0 +2020-06-13,Steele,Minnesota,27147,175,0 +2020-06-14,Steele,Minnesota,27147,175,0 +2020-06-15,Steele,Minnesota,27147,175,0 +2020-06-16,Steele,Minnesota,27147,175,0 +2020-06-17,Steele,Minnesota,27147,179,0 +2020-06-18,Steele,Minnesota,27147,181,0 +2020-06-19,Steele,Minnesota,27147,183,0 +2020-06-20,Steele,Minnesota,27147,186,0 +2020-06-21,Steele,Minnesota,27147,194,0 +2020-06-22,Steele,Minnesota,27147,199,0 +2020-06-23,Steele,Minnesota,27147,200,0 +2020-06-24,Steele,Minnesota,27147,202,0 +2020-06-25,Steele,Minnesota,27147,206,0 +2020-06-26,Steele,Minnesota,27147,209,0 +2020-06-27,Steele,Minnesota,27147,212,0 +2020-06-28,Steele,Minnesota,27147,212,0 +2020-06-29,Steele,Minnesota,27147,215,0 +2020-06-30,Steele,Minnesota,27147,215,0 +2020-07-01,Steele,Minnesota,27147,219,0 +2020-07-02,Steele,Minnesota,27147,223,1 +2020-07-03,Steele,Minnesota,27147,228,1 +2020-07-04,Steele,Minnesota,27147,228,1 +2020-07-05,Steele,Minnesota,27147,231,1 +2020-07-06,Steele,Minnesota,27147,231,1 +2020-07-07,Steele,Minnesota,27147,237,1 +2020-07-08,Steele,Minnesota,27147,239,1 +2020-07-09,Steele,Minnesota,27147,240,1 +2020-05-28,Stevens,Minnesota,27149,1,0 +2020-05-29,Stevens,Minnesota,27149,2,0 +2020-05-30,Stevens,Minnesota,27149,1,0 +2020-05-31,Stevens,Minnesota,27149,1,0 +2020-06-01,Stevens,Minnesota,27149,1,0 +2020-06-02,Stevens,Minnesota,27149,1,0 +2020-06-03,Stevens,Minnesota,27149,1,0 +2020-06-04,Stevens,Minnesota,27149,1,0 +2020-06-05,Stevens,Minnesota,27149,1,0 +2020-06-06,Stevens,Minnesota,27149,1,0 +2020-06-07,Stevens,Minnesota,27149,1,0 +2020-06-08,Stevens,Minnesota,27149,1,0 +2020-06-09,Stevens,Minnesota,27149,1,0 +2020-06-10,Stevens,Minnesota,27149,1,0 +2020-06-11,Stevens,Minnesota,27149,1,0 +2020-06-12,Stevens,Minnesota,27149,1,0 +2020-06-13,Stevens,Minnesota,27149,1,0 +2020-06-14,Stevens,Minnesota,27149,1,0 +2020-06-15,Stevens,Minnesota,27149,1,0 +2020-06-16,Stevens,Minnesota,27149,1,0 +2020-06-17,Stevens,Minnesota,27149,1,0 +2020-06-18,Stevens,Minnesota,27149,1,0 +2020-06-19,Stevens,Minnesota,27149,2,0 +2020-06-20,Stevens,Minnesota,27149,2,0 +2020-06-21,Stevens,Minnesota,27149,2,0 +2020-06-22,Stevens,Minnesota,27149,2,0 +2020-06-23,Stevens,Minnesota,27149,3,0 +2020-06-24,Stevens,Minnesota,27149,3,0 +2020-06-25,Stevens,Minnesota,27149,3,0 +2020-06-26,Stevens,Minnesota,27149,3,0 +2020-06-27,Stevens,Minnesota,27149,3,0 +2020-06-28,Stevens,Minnesota,27149,3,0 +2020-06-29,Stevens,Minnesota,27149,3,0 +2020-06-30,Stevens,Minnesota,27149,4,0 +2020-07-01,Stevens,Minnesota,27149,4,0 +2020-07-02,Stevens,Minnesota,27149,4,0 +2020-07-03,Stevens,Minnesota,27149,4,0 +2020-07-04,Stevens,Minnesota,27149,4,0 +2020-07-05,Stevens,Minnesota,27149,4,0 +2020-07-06,Stevens,Minnesota,27149,4,0 +2020-07-07,Stevens,Minnesota,27149,5,0 +2020-07-08,Stevens,Minnesota,27149,6,0 +2020-07-09,Stevens,Minnesota,27149,8,0 +2020-04-07,Swift,Minnesota,27151,1,0 +2020-04-08,Swift,Minnesota,27151,1,0 +2020-04-09,Swift,Minnesota,27151,1,0 +2020-04-10,Swift,Minnesota,27151,1,0 +2020-04-11,Swift,Minnesota,27151,1,0 +2020-04-12,Swift,Minnesota,27151,1,0 +2020-04-13,Swift,Minnesota,27151,1,0 +2020-04-14,Swift,Minnesota,27151,1,0 +2020-04-15,Swift,Minnesota,27151,1,0 +2020-04-16,Swift,Minnesota,27151,1,0 +2020-04-17,Swift,Minnesota,27151,1,0 +2020-04-18,Swift,Minnesota,27151,1,0 +2020-04-19,Swift,Minnesota,27151,1,0 +2020-04-20,Swift,Minnesota,27151,1,0 +2020-04-21,Swift,Minnesota,27151,1,0 +2020-04-22,Swift,Minnesota,27151,1,0 +2020-04-23,Swift,Minnesota,27151,1,0 +2020-04-24,Swift,Minnesota,27151,1,0 +2020-04-25,Swift,Minnesota,27151,1,0 +2020-04-26,Swift,Minnesota,27151,1,0 +2020-04-27,Swift,Minnesota,27151,1,0 +2020-04-28,Swift,Minnesota,27151,2,0 +2020-04-29,Swift,Minnesota,27151,2,0 +2020-04-30,Swift,Minnesota,27151,2,0 +2020-05-01,Swift,Minnesota,27151,2,0 +2020-05-02,Swift,Minnesota,27151,2,0 +2020-05-03,Swift,Minnesota,27151,2,0 +2020-05-04,Swift,Minnesota,27151,2,0 +2020-05-05,Swift,Minnesota,27151,2,0 +2020-05-06,Swift,Minnesota,27151,2,0 +2020-05-07,Swift,Minnesota,27151,2,0 +2020-05-08,Swift,Minnesota,27151,3,0 +2020-05-09,Swift,Minnesota,27151,3,0 +2020-05-10,Swift,Minnesota,27151,5,0 +2020-05-11,Swift,Minnesota,27151,8,0 +2020-05-12,Swift,Minnesota,27151,9,0 +2020-05-13,Swift,Minnesota,27151,9,0 +2020-05-14,Swift,Minnesota,27151,10,0 +2020-05-15,Swift,Minnesota,27151,11,0 +2020-05-16,Swift,Minnesota,27151,12,0 +2020-05-17,Swift,Minnesota,27151,13,0 +2020-05-18,Swift,Minnesota,27151,13,0 +2020-05-19,Swift,Minnesota,27151,13,0 +2020-05-20,Swift,Minnesota,27151,13,0 +2020-05-21,Swift,Minnesota,27151,14,0 +2020-05-22,Swift,Minnesota,27151,15,0 +2020-05-23,Swift,Minnesota,27151,15,0 +2020-05-24,Swift,Minnesota,27151,15,0 +2020-05-25,Swift,Minnesota,27151,16,0 +2020-05-26,Swift,Minnesota,27151,16,0 +2020-05-27,Swift,Minnesota,27151,17,0 +2020-05-28,Swift,Minnesota,27151,17,0 +2020-05-29,Swift,Minnesota,27151,18,0 +2020-05-30,Swift,Minnesota,27151,18,0 +2020-05-31,Swift,Minnesota,27151,18,0 +2020-06-01,Swift,Minnesota,27151,19,0 +2020-06-02,Swift,Minnesota,27151,19,0 +2020-06-03,Swift,Minnesota,27151,19,0 +2020-06-04,Swift,Minnesota,27151,19,0 +2020-06-05,Swift,Minnesota,27151,19,1 +2020-06-06,Swift,Minnesota,27151,19,1 +2020-06-07,Swift,Minnesota,27151,19,1 +2020-06-08,Swift,Minnesota,27151,19,1 +2020-06-09,Swift,Minnesota,27151,19,1 +2020-06-10,Swift,Minnesota,27151,19,1 +2020-06-11,Swift,Minnesota,27151,19,1 +2020-06-12,Swift,Minnesota,27151,19,1 +2020-06-13,Swift,Minnesota,27151,19,1 +2020-06-14,Swift,Minnesota,27151,19,1 +2020-06-15,Swift,Minnesota,27151,20,1 +2020-06-16,Swift,Minnesota,27151,20,1 +2020-06-17,Swift,Minnesota,27151,20,1 +2020-06-18,Swift,Minnesota,27151,20,1 +2020-06-19,Swift,Minnesota,27151,20,1 +2020-06-20,Swift,Minnesota,27151,20,1 +2020-06-21,Swift,Minnesota,27151,20,1 +2020-06-22,Swift,Minnesota,27151,20,1 +2020-06-23,Swift,Minnesota,27151,20,1 +2020-06-24,Swift,Minnesota,27151,20,1 +2020-06-25,Swift,Minnesota,27151,20,1 +2020-06-26,Swift,Minnesota,27151,20,1 +2020-06-27,Swift,Minnesota,27151,20,1 +2020-06-28,Swift,Minnesota,27151,20,1 +2020-06-29,Swift,Minnesota,27151,20,1 +2020-06-30,Swift,Minnesota,27151,20,1 +2020-07-01,Swift,Minnesota,27151,20,1 +2020-07-02,Swift,Minnesota,27151,21,1 +2020-07-03,Swift,Minnesota,27151,21,1 +2020-07-04,Swift,Minnesota,27151,21,1 +2020-07-05,Swift,Minnesota,27151,21,1 +2020-07-06,Swift,Minnesota,27151,22,1 +2020-07-07,Swift,Minnesota,27151,22,1 +2020-07-08,Swift,Minnesota,27151,23,1 +2020-07-09,Swift,Minnesota,27151,25,1 +2020-04-12,Todd,Minnesota,27153,2,0 +2020-04-13,Todd,Minnesota,27153,2,0 +2020-04-14,Todd,Minnesota,27153,2,0 +2020-04-15,Todd,Minnesota,27153,2,0 +2020-04-16,Todd,Minnesota,27153,2,0 +2020-04-17,Todd,Minnesota,27153,2,0 +2020-04-18,Todd,Minnesota,27153,2,0 +2020-04-19,Todd,Minnesota,27153,2,0 +2020-04-20,Todd,Minnesota,27153,3,0 +2020-04-21,Todd,Minnesota,27153,3,0 +2020-04-22,Todd,Minnesota,27153,3,0 +2020-04-23,Todd,Minnesota,27153,3,0 +2020-04-24,Todd,Minnesota,27153,3,0 +2020-04-25,Todd,Minnesota,27153,3,0 +2020-04-26,Todd,Minnesota,27153,3,0 +2020-04-27,Todd,Minnesota,27153,3,0 +2020-04-28,Todd,Minnesota,27153,4,0 +2020-04-29,Todd,Minnesota,27153,7,0 +2020-04-30,Todd,Minnesota,27153,7,0 +2020-05-01,Todd,Minnesota,27153,7,0 +2020-05-02,Todd,Minnesota,27153,8,0 +2020-05-03,Todd,Minnesota,27153,8,0 +2020-05-04,Todd,Minnesota,27153,15,0 +2020-05-05,Todd,Minnesota,27153,15,0 +2020-05-06,Todd,Minnesota,27153,18,0 +2020-05-07,Todd,Minnesota,27153,26,0 +2020-05-08,Todd,Minnesota,27153,29,0 +2020-05-09,Todd,Minnesota,27153,33,0 +2020-05-10,Todd,Minnesota,27153,36,0 +2020-05-11,Todd,Minnesota,27153,38,0 +2020-05-12,Todd,Minnesota,27153,42,0 +2020-05-13,Todd,Minnesota,27153,42,0 +2020-05-14,Todd,Minnesota,27153,46,0 +2020-05-15,Todd,Minnesota,27153,46,0 +2020-05-16,Todd,Minnesota,27153,52,0 +2020-05-17,Todd,Minnesota,27153,60,0 +2020-05-18,Todd,Minnesota,27153,73,0 +2020-05-19,Todd,Minnesota,27153,87,0 +2020-05-20,Todd,Minnesota,27153,110,0 +2020-05-21,Todd,Minnesota,27153,116,0 +2020-05-22,Todd,Minnesota,27153,140,0 +2020-05-23,Todd,Minnesota,27153,183,0 +2020-05-24,Todd,Minnesota,27153,197,0 +2020-05-25,Todd,Minnesota,27153,204,0 +2020-05-26,Todd,Minnesota,27153,220,0 +2020-05-27,Todd,Minnesota,27153,296,0 +2020-05-28,Todd,Minnesota,27153,296,0 +2020-05-29,Todd,Minnesota,27153,302,0 +2020-05-30,Todd,Minnesota,27153,313,0 +2020-05-31,Todd,Minnesota,27153,316,0 +2020-06-01,Todd,Minnesota,27153,319,0 +2020-06-02,Todd,Minnesota,27153,327,0 +2020-06-03,Todd,Minnesota,27153,330,0 +2020-06-04,Todd,Minnesota,27153,336,1 +2020-06-05,Todd,Minnesota,27153,344,1 +2020-06-06,Todd,Minnesota,27153,346,2 +2020-06-07,Todd,Minnesota,27153,350,2 +2020-06-08,Todd,Minnesota,27153,354,2 +2020-06-09,Todd,Minnesota,27153,361,2 +2020-06-10,Todd,Minnesota,27153,364,2 +2020-06-11,Todd,Minnesota,27153,368,2 +2020-06-12,Todd,Minnesota,27153,371,2 +2020-06-13,Todd,Minnesota,27153,372,2 +2020-06-14,Todd,Minnesota,27153,373,2 +2020-06-15,Todd,Minnesota,27153,373,2 +2020-06-16,Todd,Minnesota,27153,375,2 +2020-06-17,Todd,Minnesota,27153,379,2 +2020-06-18,Todd,Minnesota,27153,381,2 +2020-06-19,Todd,Minnesota,27153,386,2 +2020-06-20,Todd,Minnesota,27153,388,2 +2020-06-21,Todd,Minnesota,27153,388,2 +2020-06-22,Todd,Minnesota,27153,390,2 +2020-06-23,Todd,Minnesota,27153,392,2 +2020-06-24,Todd,Minnesota,27153,394,2 +2020-06-25,Todd,Minnesota,27153,395,2 +2020-06-26,Todd,Minnesota,27153,395,2 +2020-06-27,Todd,Minnesota,27153,395,2 +2020-06-28,Todd,Minnesota,27153,397,2 +2020-06-29,Todd,Minnesota,27153,397,2 +2020-06-30,Todd,Minnesota,27153,398,2 +2020-07-01,Todd,Minnesota,27153,400,2 +2020-07-02,Todd,Minnesota,27153,400,2 +2020-07-03,Todd,Minnesota,27153,400,2 +2020-07-04,Todd,Minnesota,27153,400,2 +2020-07-05,Todd,Minnesota,27153,401,2 +2020-07-06,Todd,Minnesota,27153,401,2 +2020-07-07,Todd,Minnesota,27153,401,2 +2020-07-08,Todd,Minnesota,27153,402,2 +2020-07-09,Todd,Minnesota,27153,402,2 +2020-03-31,Traverse,Minnesota,27155,2,0 +2020-04-01,Traverse,Minnesota,27155,2,0 +2020-04-02,Traverse,Minnesota,27155,2,0 +2020-04-03,Traverse,Minnesota,27155,2,0 +2020-04-04,Traverse,Minnesota,27155,2,0 +2020-04-05,Traverse,Minnesota,27155,2,0 +2020-04-06,Traverse,Minnesota,27155,2,0 +2020-04-07,Traverse,Minnesota,27155,2,0 +2020-04-08,Traverse,Minnesota,27155,2,0 +2020-04-09,Traverse,Minnesota,27155,2,0 +2020-04-10,Traverse,Minnesota,27155,2,0 +2020-04-11,Traverse,Minnesota,27155,2,0 +2020-04-12,Traverse,Minnesota,27155,2,0 +2020-04-13,Traverse,Minnesota,27155,2,0 +2020-04-14,Traverse,Minnesota,27155,2,0 +2020-04-15,Traverse,Minnesota,27155,2,0 +2020-04-16,Traverse,Minnesota,27155,2,0 +2020-04-17,Traverse,Minnesota,27155,2,0 +2020-04-18,Traverse,Minnesota,27155,2,0 +2020-04-19,Traverse,Minnesota,27155,2,0 +2020-04-20,Traverse,Minnesota,27155,2,0 +2020-04-21,Traverse,Minnesota,27155,2,0 +2020-04-22,Traverse,Minnesota,27155,2,0 +2020-04-23,Traverse,Minnesota,27155,2,0 +2020-04-24,Traverse,Minnesota,27155,2,0 +2020-04-25,Traverse,Minnesota,27155,2,0 +2020-04-26,Traverse,Minnesota,27155,2,0 +2020-04-27,Traverse,Minnesota,27155,2,0 +2020-04-28,Traverse,Minnesota,27155,2,0 +2020-04-29,Traverse,Minnesota,27155,2,0 +2020-04-30,Traverse,Minnesota,27155,2,0 +2020-05-01,Traverse,Minnesota,27155,2,0 +2020-05-02,Traverse,Minnesota,27155,2,0 +2020-05-03,Traverse,Minnesota,27155,2,0 +2020-05-04,Traverse,Minnesota,27155,2,0 +2020-05-05,Traverse,Minnesota,27155,2,0 +2020-05-06,Traverse,Minnesota,27155,2,0 +2020-05-07,Traverse,Minnesota,27155,2,0 +2020-05-08,Traverse,Minnesota,27155,3,0 +2020-05-09,Traverse,Minnesota,27155,3,0 +2020-05-10,Traverse,Minnesota,27155,3,0 +2020-05-11,Traverse,Minnesota,27155,3,0 +2020-05-12,Traverse,Minnesota,27155,3,0 +2020-05-13,Traverse,Minnesota,27155,3,0 +2020-05-14,Traverse,Minnesota,27155,3,0 +2020-05-15,Traverse,Minnesota,27155,3,0 +2020-05-16,Traverse,Minnesota,27155,3,0 +2020-05-17,Traverse,Minnesota,27155,3,0 +2020-05-18,Traverse,Minnesota,27155,3,0 +2020-05-19,Traverse,Minnesota,27155,3,0 +2020-05-20,Traverse,Minnesota,27155,3,0 +2020-05-21,Traverse,Minnesota,27155,3,0 +2020-05-22,Traverse,Minnesota,27155,3,0 +2020-05-23,Traverse,Minnesota,27155,3,0 +2020-05-24,Traverse,Minnesota,27155,3,0 +2020-05-25,Traverse,Minnesota,27155,3,0 +2020-05-26,Traverse,Minnesota,27155,3,0 +2020-05-27,Traverse,Minnesota,27155,3,0 +2020-05-28,Traverse,Minnesota,27155,3,0 +2020-05-29,Traverse,Minnesota,27155,3,0 +2020-05-30,Traverse,Minnesota,27155,3,0 +2020-05-31,Traverse,Minnesota,27155,3,0 +2020-06-01,Traverse,Minnesota,27155,3,0 +2020-06-02,Traverse,Minnesota,27155,4,0 +2020-06-03,Traverse,Minnesota,27155,4,0 +2020-06-04,Traverse,Minnesota,27155,4,0 +2020-06-05,Traverse,Minnesota,27155,4,0 +2020-06-06,Traverse,Minnesota,27155,5,0 +2020-06-07,Traverse,Minnesota,27155,5,0 +2020-06-08,Traverse,Minnesota,27155,5,0 +2020-06-09,Traverse,Minnesota,27155,5,0 +2020-06-10,Traverse,Minnesota,27155,5,0 +2020-06-11,Traverse,Minnesota,27155,5,0 +2020-06-12,Traverse,Minnesota,27155,5,0 +2020-06-13,Traverse,Minnesota,27155,5,0 +2020-06-14,Traverse,Minnesota,27155,5,0 +2020-06-15,Traverse,Minnesota,27155,5,0 +2020-06-16,Traverse,Minnesota,27155,5,0 +2020-06-17,Traverse,Minnesota,27155,5,0 +2020-06-18,Traverse,Minnesota,27155,5,0 +2020-06-19,Traverse,Minnesota,27155,5,0 +2020-06-20,Traverse,Minnesota,27155,5,0 +2020-06-21,Traverse,Minnesota,27155,5,0 +2020-06-22,Traverse,Minnesota,27155,5,0 +2020-06-23,Traverse,Minnesota,27155,5,0 +2020-06-24,Traverse,Minnesota,27155,5,0 +2020-06-25,Traverse,Minnesota,27155,5,0 +2020-06-26,Traverse,Minnesota,27155,5,0 +2020-06-27,Traverse,Minnesota,27155,5,0 +2020-06-28,Traverse,Minnesota,27155,5,0 +2020-06-29,Traverse,Minnesota,27155,5,0 +2020-06-30,Traverse,Minnesota,27155,5,0 +2020-07-01,Traverse,Minnesota,27155,5,0 +2020-07-02,Traverse,Minnesota,27155,5,0 +2020-07-03,Traverse,Minnesota,27155,5,0 +2020-07-04,Traverse,Minnesota,27155,5,0 +2020-07-05,Traverse,Minnesota,27155,6,0 +2020-07-06,Traverse,Minnesota,27155,6,0 +2020-07-07,Traverse,Minnesota,27155,5,0 +2020-07-08,Traverse,Minnesota,27155,6,0 +2020-07-09,Traverse,Minnesota,27155,6,0 +2020-03-21,Wabasha,Minnesota,27157,1,0 +2020-03-22,Wabasha,Minnesota,27157,1,0 +2020-03-23,Wabasha,Minnesota,27157,1,0 +2020-03-24,Wabasha,Minnesota,27157,1,0 +2020-03-25,Wabasha,Minnesota,27157,3,0 +2020-03-26,Wabasha,Minnesota,27157,4,0 +2020-03-27,Wabasha,Minnesota,27157,4,0 +2020-03-28,Wabasha,Minnesota,27157,4,0 +2020-03-29,Wabasha,Minnesota,27157,4,0 +2020-03-30,Wabasha,Minnesota,27157,6,0 +2020-03-31,Wabasha,Minnesota,27157,6,0 +2020-04-01,Wabasha,Minnesota,27157,6,0 +2020-04-02,Wabasha,Minnesota,27157,6,0 +2020-04-03,Wabasha,Minnesota,27157,6,0 +2020-04-04,Wabasha,Minnesota,27157,6,0 +2020-04-05,Wabasha,Minnesota,27157,6,0 +2020-04-06,Wabasha,Minnesota,27157,6,0 +2020-04-07,Wabasha,Minnesota,27157,6,0 +2020-04-08,Wabasha,Minnesota,27157,6,0 +2020-04-09,Wabasha,Minnesota,27157,6,0 +2020-04-10,Wabasha,Minnesota,27157,6,0 +2020-04-11,Wabasha,Minnesota,27157,6,0 +2020-04-12,Wabasha,Minnesota,27157,6,0 +2020-04-13,Wabasha,Minnesota,27157,6,0 +2020-04-14,Wabasha,Minnesota,27157,7,0 +2020-04-15,Wabasha,Minnesota,27157,7,0 +2020-04-16,Wabasha,Minnesota,27157,7,0 +2020-04-17,Wabasha,Minnesota,27157,8,0 +2020-04-18,Wabasha,Minnesota,27157,8,0 +2020-04-19,Wabasha,Minnesota,27157,8,0 +2020-04-20,Wabasha,Minnesota,27157,8,0 +2020-04-21,Wabasha,Minnesota,27157,8,0 +2020-04-22,Wabasha,Minnesota,27157,8,0 +2020-04-23,Wabasha,Minnesota,27157,8,0 +2020-04-24,Wabasha,Minnesota,27157,8,0 +2020-04-25,Wabasha,Minnesota,27157,8,0 +2020-04-26,Wabasha,Minnesota,27157,8,0 +2020-04-27,Wabasha,Minnesota,27157,8,0 +2020-04-28,Wabasha,Minnesota,27157,8,0 +2020-04-29,Wabasha,Minnesota,27157,8,0 +2020-04-30,Wabasha,Minnesota,27157,8,0 +2020-05-01,Wabasha,Minnesota,27157,9,0 +2020-05-02,Wabasha,Minnesota,27157,10,0 +2020-05-03,Wabasha,Minnesota,27157,10,0 +2020-05-04,Wabasha,Minnesota,27157,10,0 +2020-05-05,Wabasha,Minnesota,27157,10,0 +2020-05-06,Wabasha,Minnesota,27157,10,0 +2020-05-07,Wabasha,Minnesota,27157,12,0 +2020-05-08,Wabasha,Minnesota,27157,13,0 +2020-05-09,Wabasha,Minnesota,27157,13,0 +2020-05-10,Wabasha,Minnesota,27157,13,0 +2020-05-11,Wabasha,Minnesota,27157,13,0 +2020-05-12,Wabasha,Minnesota,27157,13,0 +2020-05-13,Wabasha,Minnesota,27157,13,0 +2020-05-14,Wabasha,Minnesota,27157,16,0 +2020-05-15,Wabasha,Minnesota,27157,16,0 +2020-05-16,Wabasha,Minnesota,27157,16,0 +2020-05-17,Wabasha,Minnesota,27157,16,0 +2020-05-18,Wabasha,Minnesota,27157,16,0 +2020-05-19,Wabasha,Minnesota,27157,16,0 +2020-05-20,Wabasha,Minnesota,27157,16,0 +2020-05-21,Wabasha,Minnesota,27157,16,0 +2020-05-22,Wabasha,Minnesota,27157,16,0 +2020-05-23,Wabasha,Minnesota,27157,16,0 +2020-05-24,Wabasha,Minnesota,27157,16,0 +2020-05-25,Wabasha,Minnesota,27157,16,0 +2020-05-26,Wabasha,Minnesota,27157,17,0 +2020-05-27,Wabasha,Minnesota,27157,17,0 +2020-05-28,Wabasha,Minnesota,27157,17,0 +2020-05-29,Wabasha,Minnesota,27157,17,0 +2020-05-30,Wabasha,Minnesota,27157,18,0 +2020-05-31,Wabasha,Minnesota,27157,18,0 +2020-06-01,Wabasha,Minnesota,27157,18,0 +2020-06-02,Wabasha,Minnesota,27157,18,0 +2020-06-03,Wabasha,Minnesota,27157,18,0 +2020-06-04,Wabasha,Minnesota,27157,18,0 +2020-06-05,Wabasha,Minnesota,27157,20,0 +2020-06-06,Wabasha,Minnesota,27157,20,0 +2020-06-07,Wabasha,Minnesota,27157,20,0 +2020-06-08,Wabasha,Minnesota,27157,20,0 +2020-06-09,Wabasha,Minnesota,27157,20,0 +2020-06-10,Wabasha,Minnesota,27157,20,0 +2020-06-11,Wabasha,Minnesota,27157,20,0 +2020-06-12,Wabasha,Minnesota,27157,21,0 +2020-06-13,Wabasha,Minnesota,27157,21,0 +2020-06-14,Wabasha,Minnesota,27157,21,0 +2020-06-15,Wabasha,Minnesota,27157,21,0 +2020-06-16,Wabasha,Minnesota,27157,21,0 +2020-06-17,Wabasha,Minnesota,27157,24,0 +2020-06-18,Wabasha,Minnesota,27157,24,0 +2020-06-19,Wabasha,Minnesota,27157,27,0 +2020-06-20,Wabasha,Minnesota,27157,27,0 +2020-06-21,Wabasha,Minnesota,27157,27,0 +2020-06-22,Wabasha,Minnesota,27157,28,0 +2020-06-23,Wabasha,Minnesota,27157,28,0 +2020-06-24,Wabasha,Minnesota,27157,28,0 +2020-06-25,Wabasha,Minnesota,27157,29,0 +2020-06-26,Wabasha,Minnesota,27157,28,0 +2020-06-27,Wabasha,Minnesota,27157,30,0 +2020-06-28,Wabasha,Minnesota,27157,30,0 +2020-06-29,Wabasha,Minnesota,27157,30,0 +2020-06-30,Wabasha,Minnesota,27157,31,0 +2020-07-01,Wabasha,Minnesota,27157,31,0 +2020-07-02,Wabasha,Minnesota,27157,31,0 +2020-07-03,Wabasha,Minnesota,27157,31,0 +2020-07-04,Wabasha,Minnesota,27157,31,0 +2020-07-05,Wabasha,Minnesota,27157,33,0 +2020-07-06,Wabasha,Minnesota,27157,33,0 +2020-07-07,Wabasha,Minnesota,27157,33,0 +2020-07-08,Wabasha,Minnesota,27157,35,0 +2020-07-09,Wabasha,Minnesota,27157,34,0 +2020-04-28,Wadena,Minnesota,27159,1,0 +2020-04-29,Wadena,Minnesota,27159,1,0 +2020-04-30,Wadena,Minnesota,27159,1,0 +2020-05-01,Wadena,Minnesota,27159,1,0 +2020-05-02,Wadena,Minnesota,27159,1,0 +2020-05-03,Wadena,Minnesota,27159,1,0 +2020-05-04,Wadena,Minnesota,27159,2,0 +2020-05-05,Wadena,Minnesota,27159,3,0 +2020-05-06,Wadena,Minnesota,27159,3,0 +2020-05-07,Wadena,Minnesota,27159,4,0 +2020-05-08,Wadena,Minnesota,27159,4,0 +2020-05-09,Wadena,Minnesota,27159,4,0 +2020-05-10,Wadena,Minnesota,27159,4,0 +2020-05-11,Wadena,Minnesota,27159,4,0 +2020-05-12,Wadena,Minnesota,27159,4,0 +2020-05-13,Wadena,Minnesota,27159,4,0 +2020-05-14,Wadena,Minnesota,27159,4,0 +2020-05-15,Wadena,Minnesota,27159,4,0 +2020-05-16,Wadena,Minnesota,27159,4,0 +2020-05-17,Wadena,Minnesota,27159,5,0 +2020-05-18,Wadena,Minnesota,27159,5,0 +2020-05-19,Wadena,Minnesota,27159,6,0 +2020-05-20,Wadena,Minnesota,27159,6,0 +2020-05-21,Wadena,Minnesota,27159,6,0 +2020-05-22,Wadena,Minnesota,27159,6,0 +2020-05-23,Wadena,Minnesota,27159,6,0 +2020-05-24,Wadena,Minnesota,27159,6,0 +2020-05-25,Wadena,Minnesota,27159,6,0 +2020-05-26,Wadena,Minnesota,27159,8,0 +2020-05-27,Wadena,Minnesota,27159,8,0 +2020-05-28,Wadena,Minnesota,27159,8,0 +2020-05-29,Wadena,Minnesota,27159,8,0 +2020-05-30,Wadena,Minnesota,27159,9,0 +2020-05-31,Wadena,Minnesota,27159,10,0 +2020-06-01,Wadena,Minnesota,27159,10,0 +2020-06-02,Wadena,Minnesota,27159,10,0 +2020-06-03,Wadena,Minnesota,27159,10,0 +2020-06-04,Wadena,Minnesota,27159,10,0 +2020-06-05,Wadena,Minnesota,27159,10,0 +2020-06-06,Wadena,Minnesota,27159,10,0 +2020-06-07,Wadena,Minnesota,27159,10,0 +2020-06-08,Wadena,Minnesota,27159,10,0 +2020-06-09,Wadena,Minnesota,27159,10,0 +2020-06-10,Wadena,Minnesota,27159,10,0 +2020-06-11,Wadena,Minnesota,27159,10,0 +2020-06-12,Wadena,Minnesota,27159,10,0 +2020-06-13,Wadena,Minnesota,27159,10,0 +2020-06-14,Wadena,Minnesota,27159,10,0 +2020-06-15,Wadena,Minnesota,27159,10,0 +2020-06-16,Wadena,Minnesota,27159,10,0 +2020-06-17,Wadena,Minnesota,27159,10,0 +2020-06-18,Wadena,Minnesota,27159,10,0 +2020-06-19,Wadena,Minnesota,27159,10,0 +2020-06-20,Wadena,Minnesota,27159,10,0 +2020-06-21,Wadena,Minnesota,27159,12,0 +2020-06-22,Wadena,Minnesota,27159,12,0 +2020-06-23,Wadena,Minnesota,27159,14,0 +2020-06-24,Wadena,Minnesota,27159,14,0 +2020-06-25,Wadena,Minnesota,27159,15,0 +2020-06-26,Wadena,Minnesota,27159,15,0 +2020-06-27,Wadena,Minnesota,27159,15,0 +2020-06-28,Wadena,Minnesota,27159,15,0 +2020-06-29,Wadena,Minnesota,27159,15,0 +2020-06-30,Wadena,Minnesota,27159,15,0 +2020-07-01,Wadena,Minnesota,27159,15,0 +2020-07-02,Wadena,Minnesota,27159,15,0 +2020-07-03,Wadena,Minnesota,27159,15,0 +2020-07-04,Wadena,Minnesota,27159,15,0 +2020-07-05,Wadena,Minnesota,27159,15,0 +2020-07-06,Wadena,Minnesota,27159,15,0 +2020-07-07,Wadena,Minnesota,27159,15,0 +2020-07-08,Wadena,Minnesota,27159,15,0 +2020-07-09,Wadena,Minnesota,27159,16,0 +2020-03-15,Waseca,Minnesota,27161,1,0 +2020-03-16,Waseca,Minnesota,27161,1,0 +2020-03-17,Waseca,Minnesota,27161,1,0 +2020-03-18,Waseca,Minnesota,27161,1,0 +2020-03-19,Waseca,Minnesota,27161,2,0 +2020-03-20,Waseca,Minnesota,27161,2,0 +2020-03-21,Waseca,Minnesota,27161,2,0 +2020-03-22,Waseca,Minnesota,27161,2,0 +2020-03-23,Waseca,Minnesota,27161,2,0 +2020-03-24,Waseca,Minnesota,27161,2,0 +2020-03-25,Waseca,Minnesota,27161,2,0 +2020-03-26,Waseca,Minnesota,27161,2,0 +2020-03-27,Waseca,Minnesota,27161,3,0 +2020-03-28,Waseca,Minnesota,27161,3,0 +2020-03-29,Waseca,Minnesota,27161,3,0 +2020-03-30,Waseca,Minnesota,27161,3,0 +2020-03-31,Waseca,Minnesota,27161,3,0 +2020-04-01,Waseca,Minnesota,27161,3,0 +2020-04-02,Waseca,Minnesota,27161,3,0 +2020-04-03,Waseca,Minnesota,27161,3,0 +2020-04-04,Waseca,Minnesota,27161,3,0 +2020-04-05,Waseca,Minnesota,27161,3,0 +2020-04-06,Waseca,Minnesota,27161,3,0 +2020-04-07,Waseca,Minnesota,27161,3,0 +2020-04-08,Waseca,Minnesota,27161,3,0 +2020-04-09,Waseca,Minnesota,27161,3,0 +2020-04-10,Waseca,Minnesota,27161,3,0 +2020-04-11,Waseca,Minnesota,27161,3,0 +2020-04-12,Waseca,Minnesota,27161,3,0 +2020-04-13,Waseca,Minnesota,27161,3,0 +2020-04-14,Waseca,Minnesota,27161,3,0 +2020-04-15,Waseca,Minnesota,27161,3,0 +2020-04-16,Waseca,Minnesota,27161,3,0 +2020-04-17,Waseca,Minnesota,27161,3,0 +2020-04-18,Waseca,Minnesota,27161,3,0 +2020-04-19,Waseca,Minnesota,27161,3,0 +2020-04-20,Waseca,Minnesota,27161,3,0 +2020-04-21,Waseca,Minnesota,27161,3,0 +2020-04-22,Waseca,Minnesota,27161,3,0 +2020-04-23,Waseca,Minnesota,27161,3,0 +2020-04-24,Waseca,Minnesota,27161,3,0 +2020-04-25,Waseca,Minnesota,27161,3,0 +2020-04-26,Waseca,Minnesota,27161,3,0 +2020-04-27,Waseca,Minnesota,27161,3,0 +2020-04-28,Waseca,Minnesota,27161,4,0 +2020-04-29,Waseca,Minnesota,27161,4,0 +2020-04-30,Waseca,Minnesota,27161,4,0 +2020-05-01,Waseca,Minnesota,27161,4,0 +2020-05-02,Waseca,Minnesota,27161,5,0 +2020-05-03,Waseca,Minnesota,27161,6,0 +2020-05-04,Waseca,Minnesota,27161,6,0 +2020-05-05,Waseca,Minnesota,27161,6,0 +2020-05-06,Waseca,Minnesota,27161,7,0 +2020-05-07,Waseca,Minnesota,27161,12,0 +2020-05-08,Waseca,Minnesota,27161,13,0 +2020-05-09,Waseca,Minnesota,27161,16,0 +2020-05-10,Waseca,Minnesota,27161,16,0 +2020-05-11,Waseca,Minnesota,27161,16,0 +2020-05-12,Waseca,Minnesota,27161,16,0 +2020-05-13,Waseca,Minnesota,27161,16,0 +2020-05-14,Waseca,Minnesota,27161,18,0 +2020-05-15,Waseca,Minnesota,27161,19,0 +2020-05-16,Waseca,Minnesota,27161,20,0 +2020-05-17,Waseca,Minnesota,27161,20,0 +2020-05-18,Waseca,Minnesota,27161,20,0 +2020-05-19,Waseca,Minnesota,27161,21,0 +2020-05-20,Waseca,Minnesota,27161,22,0 +2020-05-21,Waseca,Minnesota,27161,22,0 +2020-05-22,Waseca,Minnesota,27161,23,0 +2020-05-23,Waseca,Minnesota,27161,24,0 +2020-05-24,Waseca,Minnesota,27161,24,0 +2020-05-25,Waseca,Minnesota,27161,25,0 +2020-05-26,Waseca,Minnesota,27161,24,0 +2020-05-27,Waseca,Minnesota,27161,24,0 +2020-05-28,Waseca,Minnesota,27161,25,0 +2020-05-29,Waseca,Minnesota,27161,26,0 +2020-05-30,Waseca,Minnesota,27161,26,0 +2020-05-31,Waseca,Minnesota,27161,26,0 +2020-06-01,Waseca,Minnesota,27161,26,0 +2020-06-02,Waseca,Minnesota,27161,26,0 +2020-06-03,Waseca,Minnesota,27161,27,0 +2020-06-04,Waseca,Minnesota,27161,27,0 +2020-06-05,Waseca,Minnesota,27161,29,0 +2020-06-06,Waseca,Minnesota,27161,31,0 +2020-06-07,Waseca,Minnesota,27161,30,0 +2020-06-08,Waseca,Minnesota,27161,30,0 +2020-06-09,Waseca,Minnesota,27161,32,0 +2020-06-10,Waseca,Minnesota,27161,32,0 +2020-06-11,Waseca,Minnesota,27161,32,0 +2020-06-12,Waseca,Minnesota,27161,33,0 +2020-06-13,Waseca,Minnesota,27161,33,0 +2020-06-14,Waseca,Minnesota,27161,33,0 +2020-06-15,Waseca,Minnesota,27161,33,0 +2020-06-16,Waseca,Minnesota,27161,34,0 +2020-06-17,Waseca,Minnesota,27161,34,0 +2020-06-18,Waseca,Minnesota,27161,35,0 +2020-06-19,Waseca,Minnesota,27161,36,0 +2020-06-20,Waseca,Minnesota,27161,37,0 +2020-06-21,Waseca,Minnesota,27161,40,0 +2020-06-22,Waseca,Minnesota,27161,41,0 +2020-06-23,Waseca,Minnesota,27161,44,0 +2020-06-24,Waseca,Minnesota,27161,45,0 +2020-06-25,Waseca,Minnesota,27161,46,0 +2020-06-26,Waseca,Minnesota,27161,51,0 +2020-06-27,Waseca,Minnesota,27161,52,0 +2020-06-28,Waseca,Minnesota,27161,55,0 +2020-06-29,Waseca,Minnesota,27161,57,0 +2020-06-30,Waseca,Minnesota,27161,57,0 +2020-07-01,Waseca,Minnesota,27161,58,0 +2020-07-02,Waseca,Minnesota,27161,62,0 +2020-07-03,Waseca,Minnesota,27161,64,0 +2020-07-04,Waseca,Minnesota,27161,64,0 +2020-07-05,Waseca,Minnesota,27161,68,0 +2020-07-06,Waseca,Minnesota,27161,68,0 +2020-07-07,Waseca,Minnesota,27161,71,0 +2020-07-08,Waseca,Minnesota,27161,71,0 +2020-07-09,Waseca,Minnesota,27161,73,0 +2020-03-15,Washington,Minnesota,27163,1,0 +2020-03-16,Washington,Minnesota,27163,1,0 +2020-03-17,Washington,Minnesota,27163,1,0 +2020-03-18,Washington,Minnesota,27163,3,0 +2020-03-19,Washington,Minnesota,27163,3,0 +2020-03-20,Washington,Minnesota,27163,3,0 +2020-03-21,Washington,Minnesota,27163,4,0 +2020-03-22,Washington,Minnesota,27163,7,0 +2020-03-23,Washington,Minnesota,27163,10,0 +2020-03-24,Washington,Minnesota,27163,10,0 +2020-03-25,Washington,Minnesota,27163,13,0 +2020-03-26,Washington,Minnesota,27163,15,0 +2020-03-27,Washington,Minnesota,27163,22,0 +2020-03-28,Washington,Minnesota,27163,25,0 +2020-03-29,Washington,Minnesota,27163,27,0 +2020-03-30,Washington,Minnesota,27163,34,0 +2020-03-31,Washington,Minnesota,27163,39,0 +2020-04-01,Washington,Minnesota,27163,44,0 +2020-04-02,Washington,Minnesota,27163,46,0 +2020-04-03,Washington,Minnesota,27163,51,0 +2020-04-04,Washington,Minnesota,27163,54,0 +2020-04-05,Washington,Minnesota,27163,62,1 +2020-04-06,Washington,Minnesota,27163,65,1 +2020-04-07,Washington,Minnesota,27163,68,1 +2020-04-08,Washington,Minnesota,27163,70,2 +2020-04-09,Washington,Minnesota,27163,72,2 +2020-04-10,Washington,Minnesota,27163,73,2 +2020-04-11,Washington,Minnesota,27163,77,2 +2020-04-12,Washington,Minnesota,27163,80,3 +2020-04-13,Washington,Minnesota,27163,80,3 +2020-04-14,Washington,Minnesota,27163,84,3 +2020-04-15,Washington,Minnesota,27163,88,3 +2020-04-16,Washington,Minnesota,27163,91,3 +2020-04-17,Washington,Minnesota,27163,92,3 +2020-04-18,Washington,Minnesota,27163,92,3 +2020-04-19,Washington,Minnesota,27163,94,4 +2020-04-20,Washington,Minnesota,27163,97,4 +2020-04-21,Washington,Minnesota,27163,98,5 +2020-04-22,Washington,Minnesota,27163,100,5 +2020-04-23,Washington,Minnesota,27163,100,7 +2020-04-24,Washington,Minnesota,27163,107,7 +2020-04-25,Washington,Minnesota,27163,112,7 +2020-04-26,Washington,Minnesota,27163,113,8 +2020-04-27,Washington,Minnesota,27163,114,8 +2020-04-28,Washington,Minnesota,27163,117,9 +2020-04-29,Washington,Minnesota,27163,120,9 +2020-04-30,Washington,Minnesota,27163,131,10 +2020-05-01,Washington,Minnesota,27163,133,11 +2020-05-02,Washington,Minnesota,27163,142,12 +2020-05-03,Washington,Minnesota,27163,146,12 +2020-05-04,Washington,Minnesota,27163,152,12 +2020-05-05,Washington,Minnesota,27163,162,12 +2020-05-06,Washington,Minnesota,27163,181,12 +2020-05-07,Washington,Minnesota,27163,193,12 +2020-05-08,Washington,Minnesota,27163,211,12 +2020-05-09,Washington,Minnesota,27163,231,14 +2020-05-10,Washington,Minnesota,27163,247,15 +2020-05-11,Washington,Minnesota,27163,256,15 +2020-05-12,Washington,Minnesota,27163,266,16 +2020-05-13,Washington,Minnesota,27163,266,16 +2020-05-14,Washington,Minnesota,27163,282,18 +2020-05-15,Washington,Minnesota,27163,305,18 +2020-05-16,Washington,Minnesota,27163,326,18 +2020-05-17,Washington,Minnesota,27163,363,18 +2020-05-18,Washington,Minnesota,27163,378,19 +2020-05-19,Washington,Minnesota,27163,398,19 +2020-05-20,Washington,Minnesota,27163,414,21 +2020-05-21,Washington,Minnesota,27163,431,23 +2020-05-22,Washington,Minnesota,27163,453,25 +2020-05-23,Washington,Minnesota,27163,485,25 +2020-05-24,Washington,Minnesota,27163,506,26 +2020-05-25,Washington,Minnesota,27163,527,29 +2020-05-26,Washington,Minnesota,27163,553,29 +2020-05-27,Washington,Minnesota,27163,562,30 +2020-05-28,Washington,Minnesota,27163,576,30 +2020-05-29,Washington,Minnesota,27163,598,31 +2020-05-30,Washington,Minnesota,27163,617,31 +2020-05-31,Washington,Minnesota,27163,636,32 +2020-06-01,Washington,Minnesota,27163,645,32 +2020-06-02,Washington,Minnesota,27163,658,32 +2020-06-03,Washington,Minnesota,27163,670,33 +2020-06-04,Washington,Minnesota,27163,680,34 +2020-06-05,Washington,Minnesota,27163,700,35 +2020-06-06,Washington,Minnesota,27163,712,37 +2020-06-07,Washington,Minnesota,27163,721,37 +2020-06-08,Washington,Minnesota,27163,731,37 +2020-06-09,Washington,Minnesota,27163,732,36 +2020-06-10,Washington,Minnesota,27163,735,36 +2020-06-11,Washington,Minnesota,27163,748,36 +2020-06-12,Washington,Minnesota,27163,766,36 +2020-06-13,Washington,Minnesota,27163,787,37 +2020-06-14,Washington,Minnesota,27163,796,37 +2020-06-15,Washington,Minnesota,27163,799,37 +2020-06-16,Washington,Minnesota,27163,802,37 +2020-06-17,Washington,Minnesota,27163,826,37 +2020-06-18,Washington,Minnesota,27163,833,37 +2020-06-19,Washington,Minnesota,27163,843,37 +2020-06-20,Washington,Minnesota,27163,868,38 +2020-06-21,Washington,Minnesota,27163,885,38 +2020-06-22,Washington,Minnesota,27163,898,38 +2020-06-23,Washington,Minnesota,27163,905,38 +2020-06-24,Washington,Minnesota,27163,917,39 +2020-06-25,Washington,Minnesota,27163,926,39 +2020-06-26,Washington,Minnesota,27163,948,39 +2020-06-27,Washington,Minnesota,27163,968,40 +2020-06-28,Washington,Minnesota,27163,984,40 +2020-06-29,Washington,Minnesota,27163,995,40 +2020-06-30,Washington,Minnesota,27163,1008,40 +2020-07-01,Washington,Minnesota,27163,1025,40 +2020-07-02,Washington,Minnesota,27163,1048,40 +2020-07-03,Washington,Minnesota,27163,1069,40 +2020-07-04,Washington,Minnesota,27163,1069,40 +2020-07-05,Washington,Minnesota,27163,1082,40 +2020-07-06,Washington,Minnesota,27163,1114,40 +2020-07-07,Washington,Minnesota,27163,1137,40 +2020-07-08,Washington,Minnesota,27163,1163,40 +2020-07-09,Washington,Minnesota,27163,1190,40 +2020-03-30,Watonwan,Minnesota,27165,1,0 +2020-03-31,Watonwan,Minnesota,27165,1,0 +2020-04-01,Watonwan,Minnesota,27165,2,0 +2020-04-02,Watonwan,Minnesota,27165,3,0 +2020-04-03,Watonwan,Minnesota,27165,3,0 +2020-04-04,Watonwan,Minnesota,27165,3,0 +2020-04-05,Watonwan,Minnesota,27165,4,0 +2020-04-06,Watonwan,Minnesota,27165,4,0 +2020-04-07,Watonwan,Minnesota,27165,4,0 +2020-04-08,Watonwan,Minnesota,27165,4,0 +2020-04-09,Watonwan,Minnesota,27165,4,0 +2020-04-10,Watonwan,Minnesota,27165,4,0 +2020-04-11,Watonwan,Minnesota,27165,4,0 +2020-04-12,Watonwan,Minnesota,27165,4,0 +2020-04-13,Watonwan,Minnesota,27165,4,0 +2020-04-14,Watonwan,Minnesota,27165,4,0 +2020-04-15,Watonwan,Minnesota,27165,4,0 +2020-04-16,Watonwan,Minnesota,27165,4,0 +2020-04-17,Watonwan,Minnesota,27165,4,0 +2020-04-18,Watonwan,Minnesota,27165,4,0 +2020-04-19,Watonwan,Minnesota,27165,4,0 +2020-04-20,Watonwan,Minnesota,27165,4,0 +2020-04-21,Watonwan,Minnesota,27165,4,0 +2020-04-22,Watonwan,Minnesota,27165,4,0 +2020-04-23,Watonwan,Minnesota,27165,4,0 +2020-04-24,Watonwan,Minnesota,27165,5,0 +2020-04-25,Watonwan,Minnesota,27165,5,0 +2020-04-26,Watonwan,Minnesota,27165,7,0 +2020-04-27,Watonwan,Minnesota,27165,7,0 +2020-04-28,Watonwan,Minnesota,27165,7,0 +2020-04-29,Watonwan,Minnesota,27165,9,0 +2020-04-30,Watonwan,Minnesota,27165,11,0 +2020-05-01,Watonwan,Minnesota,27165,14,0 +2020-05-02,Watonwan,Minnesota,27165,14,0 +2020-05-03,Watonwan,Minnesota,27165,14,0 +2020-05-04,Watonwan,Minnesota,27165,15,0 +2020-05-05,Watonwan,Minnesota,27165,15,0 +2020-05-06,Watonwan,Minnesota,27165,15,0 +2020-05-07,Watonwan,Minnesota,27165,18,0 +2020-05-08,Watonwan,Minnesota,27165,19,0 +2020-05-09,Watonwan,Minnesota,27165,22,0 +2020-05-10,Watonwan,Minnesota,27165,22,0 +2020-05-11,Watonwan,Minnesota,27165,25,0 +2020-05-12,Watonwan,Minnesota,27165,28,0 +2020-05-13,Watonwan,Minnesota,27165,28,0 +2020-05-14,Watonwan,Minnesota,27165,32,0 +2020-05-15,Watonwan,Minnesota,27165,33,0 +2020-05-16,Watonwan,Minnesota,27165,36,0 +2020-05-17,Watonwan,Minnesota,27165,41,0 +2020-05-18,Watonwan,Minnesota,27165,41,0 +2020-05-19,Watonwan,Minnesota,27165,41,0 +2020-05-20,Watonwan,Minnesota,27165,42,0 +2020-05-21,Watonwan,Minnesota,27165,42,0 +2020-05-22,Watonwan,Minnesota,27165,45,0 +2020-05-23,Watonwan,Minnesota,27165,46,0 +2020-05-24,Watonwan,Minnesota,27165,50,0 +2020-05-25,Watonwan,Minnesota,27165,56,0 +2020-05-26,Watonwan,Minnesota,27165,58,0 +2020-05-27,Watonwan,Minnesota,27165,59,0 +2020-05-28,Watonwan,Minnesota,27165,64,0 +2020-05-29,Watonwan,Minnesota,27165,69,0 +2020-05-30,Watonwan,Minnesota,27165,71,0 +2020-05-31,Watonwan,Minnesota,27165,74,0 +2020-06-01,Watonwan,Minnesota,27165,75,0 +2020-06-02,Watonwan,Minnesota,27165,77,0 +2020-06-03,Watonwan,Minnesota,27165,78,0 +2020-06-04,Watonwan,Minnesota,27165,78,0 +2020-06-05,Watonwan,Minnesota,27165,79,0 +2020-06-06,Watonwan,Minnesota,27165,80,0 +2020-06-07,Watonwan,Minnesota,27165,83,0 +2020-06-08,Watonwan,Minnesota,27165,83,0 +2020-06-09,Watonwan,Minnesota,27165,84,0 +2020-06-10,Watonwan,Minnesota,27165,86,0 +2020-06-11,Watonwan,Minnesota,27165,86,0 +2020-06-12,Watonwan,Minnesota,27165,96,0 +2020-06-13,Watonwan,Minnesota,27165,98,0 +2020-06-14,Watonwan,Minnesota,27165,98,0 +2020-06-15,Watonwan,Minnesota,27165,98,0 +2020-06-16,Watonwan,Minnesota,27165,99,0 +2020-06-17,Watonwan,Minnesota,27165,108,0 +2020-06-18,Watonwan,Minnesota,27165,115,0 +2020-06-19,Watonwan,Minnesota,27165,128,0 +2020-06-20,Watonwan,Minnesota,27165,137,0 +2020-06-21,Watonwan,Minnesota,27165,144,0 +2020-06-22,Watonwan,Minnesota,27165,157,0 +2020-06-23,Watonwan,Minnesota,27165,166,0 +2020-06-24,Watonwan,Minnesota,27165,173,0 +2020-06-25,Watonwan,Minnesota,27165,175,0 +2020-06-26,Watonwan,Minnesota,27165,186,0 +2020-06-27,Watonwan,Minnesota,27165,190,0 +2020-06-28,Watonwan,Minnesota,27165,196,0 +2020-06-29,Watonwan,Minnesota,27165,200,0 +2020-06-30,Watonwan,Minnesota,27165,203,0 +2020-07-01,Watonwan,Minnesota,27165,206,0 +2020-07-02,Watonwan,Minnesota,27165,215,0 +2020-07-03,Watonwan,Minnesota,27165,216,0 +2020-07-04,Watonwan,Minnesota,27165,216,0 +2020-07-05,Watonwan,Minnesota,27165,224,0 +2020-07-06,Watonwan,Minnesota,27165,234,0 +2020-07-07,Watonwan,Minnesota,27165,238,0 +2020-07-08,Watonwan,Minnesota,27165,240,0 +2020-07-09,Watonwan,Minnesota,27165,242,0 +2020-03-26,Wilkin,Minnesota,27167,1,0 +2020-03-27,Wilkin,Minnesota,27167,1,0 +2020-03-28,Wilkin,Minnesota,27167,1,0 +2020-03-29,Wilkin,Minnesota,27167,1,0 +2020-03-30,Wilkin,Minnesota,27167,1,0 +2020-03-31,Wilkin,Minnesota,27167,1,0 +2020-04-01,Wilkin,Minnesota,27167,1,0 +2020-04-02,Wilkin,Minnesota,27167,1,0 +2020-04-03,Wilkin,Minnesota,27167,2,0 +2020-04-04,Wilkin,Minnesota,27167,2,0 +2020-04-05,Wilkin,Minnesota,27167,2,0 +2020-04-06,Wilkin,Minnesota,27167,2,0 +2020-04-07,Wilkin,Minnesota,27167,2,0 +2020-04-08,Wilkin,Minnesota,27167,2,1 +2020-04-09,Wilkin,Minnesota,27167,5,1 +2020-04-10,Wilkin,Minnesota,27167,6,1 +2020-04-11,Wilkin,Minnesota,27167,7,1 +2020-04-12,Wilkin,Minnesota,27167,7,1 +2020-04-13,Wilkin,Minnesota,27167,7,1 +2020-04-14,Wilkin,Minnesota,27167,7,2 +2020-04-15,Wilkin,Minnesota,27167,7,2 +2020-04-16,Wilkin,Minnesota,27167,7,2 +2020-04-17,Wilkin,Minnesota,27167,7,2 +2020-04-18,Wilkin,Minnesota,27167,8,2 +2020-04-19,Wilkin,Minnesota,27167,9,2 +2020-04-20,Wilkin,Minnesota,27167,9,2 +2020-04-21,Wilkin,Minnesota,27167,9,2 +2020-04-22,Wilkin,Minnesota,27167,10,2 +2020-04-23,Wilkin,Minnesota,27167,11,2 +2020-04-24,Wilkin,Minnesota,27167,11,2 +2020-04-25,Wilkin,Minnesota,27167,11,3 +2020-04-26,Wilkin,Minnesota,27167,11,3 +2020-04-27,Wilkin,Minnesota,27167,11,3 +2020-04-28,Wilkin,Minnesota,27167,12,3 +2020-04-29,Wilkin,Minnesota,27167,12,3 +2020-04-30,Wilkin,Minnesota,27167,12,3 +2020-05-01,Wilkin,Minnesota,27167,12,3 +2020-05-02,Wilkin,Minnesota,27167,12,3 +2020-05-03,Wilkin,Minnesota,27167,12,3 +2020-05-04,Wilkin,Minnesota,27167,12,3 +2020-05-05,Wilkin,Minnesota,27167,12,3 +2020-05-06,Wilkin,Minnesota,27167,12,3 +2020-05-07,Wilkin,Minnesota,27167,12,3 +2020-05-08,Wilkin,Minnesota,27167,12,3 +2020-05-09,Wilkin,Minnesota,27167,12,3 +2020-05-10,Wilkin,Minnesota,27167,12,3 +2020-05-11,Wilkin,Minnesota,27167,11,3 +2020-05-12,Wilkin,Minnesota,27167,11,3 +2020-05-13,Wilkin,Minnesota,27167,11,3 +2020-05-14,Wilkin,Minnesota,27167,11,3 +2020-05-15,Wilkin,Minnesota,27167,11,3 +2020-05-16,Wilkin,Minnesota,27167,11,3 +2020-05-17,Wilkin,Minnesota,27167,11,3 +2020-05-18,Wilkin,Minnesota,27167,11,3 +2020-05-19,Wilkin,Minnesota,27167,11,3 +2020-05-20,Wilkin,Minnesota,27167,11,3 +2020-05-21,Wilkin,Minnesota,27167,11,3 +2020-05-22,Wilkin,Minnesota,27167,11,3 +2020-05-23,Wilkin,Minnesota,27167,11,3 +2020-05-24,Wilkin,Minnesota,27167,11,3 +2020-05-25,Wilkin,Minnesota,27167,11,3 +2020-05-26,Wilkin,Minnesota,27167,11,3 +2020-05-27,Wilkin,Minnesota,27167,11,3 +2020-05-28,Wilkin,Minnesota,27167,11,3 +2020-05-29,Wilkin,Minnesota,27167,11,3 +2020-05-30,Wilkin,Minnesota,27167,11,3 +2020-05-31,Wilkin,Minnesota,27167,11,3 +2020-06-01,Wilkin,Minnesota,27167,11,3 +2020-06-02,Wilkin,Minnesota,27167,11,3 +2020-06-03,Wilkin,Minnesota,27167,11,3 +2020-06-04,Wilkin,Minnesota,27167,11,3 +2020-06-05,Wilkin,Minnesota,27167,11,3 +2020-06-06,Wilkin,Minnesota,27167,11,3 +2020-06-07,Wilkin,Minnesota,27167,11,3 +2020-06-08,Wilkin,Minnesota,27167,11,3 +2020-06-09,Wilkin,Minnesota,27167,11,3 +2020-06-10,Wilkin,Minnesota,27167,12,3 +2020-06-11,Wilkin,Minnesota,27167,12,3 +2020-06-12,Wilkin,Minnesota,27167,12,3 +2020-06-13,Wilkin,Minnesota,27167,14,3 +2020-06-14,Wilkin,Minnesota,27167,15,3 +2020-06-15,Wilkin,Minnesota,27167,15,3 +2020-06-16,Wilkin,Minnesota,27167,15,3 +2020-06-17,Wilkin,Minnesota,27167,15,3 +2020-06-18,Wilkin,Minnesota,27167,18,3 +2020-06-19,Wilkin,Minnesota,27167,20,3 +2020-06-20,Wilkin,Minnesota,27167,20,3 +2020-06-21,Wilkin,Minnesota,27167,20,3 +2020-06-22,Wilkin,Minnesota,27167,20,3 +2020-06-23,Wilkin,Minnesota,27167,20,3 +2020-06-24,Wilkin,Minnesota,27167,20,3 +2020-06-25,Wilkin,Minnesota,27167,20,3 +2020-06-26,Wilkin,Minnesota,27167,20,3 +2020-06-27,Wilkin,Minnesota,27167,20,3 +2020-06-28,Wilkin,Minnesota,27167,20,3 +2020-06-29,Wilkin,Minnesota,27167,20,3 +2020-06-30,Wilkin,Minnesota,27167,20,3 +2020-07-01,Wilkin,Minnesota,27167,20,3 +2020-07-02,Wilkin,Minnesota,27167,20,3 +2020-07-03,Wilkin,Minnesota,27167,20,3 +2020-07-04,Wilkin,Minnesota,27167,20,3 +2020-07-05,Wilkin,Minnesota,27167,20,3 +2020-07-06,Wilkin,Minnesota,27167,21,3 +2020-07-07,Wilkin,Minnesota,27167,21,3 +2020-07-08,Wilkin,Minnesota,27167,21,3 +2020-07-09,Wilkin,Minnesota,27167,21,3 +2020-03-25,Winona,Minnesota,27169,2,0 +2020-03-26,Winona,Minnesota,27169,4,0 +2020-03-27,Winona,Minnesota,27169,4,0 +2020-03-28,Winona,Minnesota,27169,4,0 +2020-03-29,Winona,Minnesota,27169,4,0 +2020-03-30,Winona,Minnesota,27169,5,0 +2020-03-31,Winona,Minnesota,27169,10,0 +2020-04-01,Winona,Minnesota,27169,10,0 +2020-04-02,Winona,Minnesota,27169,11,0 +2020-04-03,Winona,Minnesota,27169,11,1 +2020-04-04,Winona,Minnesota,27169,13,1 +2020-04-05,Winona,Minnesota,27169,14,1 +2020-04-06,Winona,Minnesota,27169,14,2 +2020-04-07,Winona,Minnesota,27169,16,3 +2020-04-08,Winona,Minnesota,27169,19,4 +2020-04-09,Winona,Minnesota,27169,20,5 +2020-04-10,Winona,Minnesota,27169,26,5 +2020-04-11,Winona,Minnesota,27169,26,6 +2020-04-12,Winona,Minnesota,27169,30,6 +2020-04-13,Winona,Minnesota,27169,30,6 +2020-04-14,Winona,Minnesota,27169,30,6 +2020-04-15,Winona,Minnesota,27169,51,6 +2020-04-16,Winona,Minnesota,27169,54,6 +2020-04-17,Winona,Minnesota,27169,56,8 +2020-04-18,Winona,Minnesota,27169,57,8 +2020-04-19,Winona,Minnesota,27169,61,10 +2020-04-20,Winona,Minnesota,27169,61,10 +2020-04-21,Winona,Minnesota,27169,61,10 +2020-04-22,Winona,Minnesota,27169,61,10 +2020-04-23,Winona,Minnesota,27169,62,13 +2020-04-24,Winona,Minnesota,27169,64,13 +2020-04-25,Winona,Minnesota,27169,66,13 +2020-04-26,Winona,Minnesota,27169,66,13 +2020-04-27,Winona,Minnesota,27169,66,14 +2020-04-28,Winona,Minnesota,27169,66,14 +2020-04-29,Winona,Minnesota,27169,66,14 +2020-04-30,Winona,Minnesota,27169,66,15 +2020-05-01,Winona,Minnesota,27169,66,15 +2020-05-02,Winona,Minnesota,27169,67,15 +2020-05-03,Winona,Minnesota,27169,67,15 +2020-05-04,Winona,Minnesota,27169,67,15 +2020-05-05,Winona,Minnesota,27169,68,15 +2020-05-06,Winona,Minnesota,27169,68,15 +2020-05-07,Winona,Minnesota,27169,68,15 +2020-05-08,Winona,Minnesota,27169,68,15 +2020-05-09,Winona,Minnesota,27169,70,15 +2020-05-10,Winona,Minnesota,27169,71,15 +2020-05-11,Winona,Minnesota,27169,71,15 +2020-05-12,Winona,Minnesota,27169,71,15 +2020-05-13,Winona,Minnesota,27169,71,15 +2020-05-14,Winona,Minnesota,27169,74,15 +2020-05-15,Winona,Minnesota,27169,75,15 +2020-05-16,Winona,Minnesota,27169,75,15 +2020-05-17,Winona,Minnesota,27169,75,15 +2020-05-18,Winona,Minnesota,27169,75,15 +2020-05-19,Winona,Minnesota,27169,75,15 +2020-05-20,Winona,Minnesota,27169,75,15 +2020-05-21,Winona,Minnesota,27169,75,15 +2020-05-22,Winona,Minnesota,27169,76,15 +2020-05-23,Winona,Minnesota,27169,77,15 +2020-05-24,Winona,Minnesota,27169,77,15 +2020-05-25,Winona,Minnesota,27169,78,15 +2020-05-26,Winona,Minnesota,27169,78,15 +2020-05-27,Winona,Minnesota,27169,78,15 +2020-05-28,Winona,Minnesota,27169,78,15 +2020-05-29,Winona,Minnesota,27169,79,15 +2020-05-30,Winona,Minnesota,27169,79,15 +2020-05-31,Winona,Minnesota,27169,79,15 +2020-06-01,Winona,Minnesota,27169,80,15 +2020-06-02,Winona,Minnesota,27169,80,15 +2020-06-03,Winona,Minnesota,27169,80,15 +2020-06-04,Winona,Minnesota,27169,80,15 +2020-06-05,Winona,Minnesota,27169,81,15 +2020-06-06,Winona,Minnesota,27169,83,15 +2020-06-07,Winona,Minnesota,27169,85,15 +2020-06-08,Winona,Minnesota,27169,85,15 +2020-06-09,Winona,Minnesota,27169,85,15 +2020-06-10,Winona,Minnesota,27169,86,15 +2020-06-11,Winona,Minnesota,27169,84,15 +2020-06-12,Winona,Minnesota,27169,84,15 +2020-06-13,Winona,Minnesota,27169,84,15 +2020-06-14,Winona,Minnesota,27169,84,15 +2020-06-15,Winona,Minnesota,27169,84,15 +2020-06-16,Winona,Minnesota,27169,85,15 +2020-06-17,Winona,Minnesota,27169,89,15 +2020-06-18,Winona,Minnesota,27169,91,15 +2020-06-19,Winona,Minnesota,27169,93,15 +2020-06-20,Winona,Minnesota,27169,94,15 +2020-06-21,Winona,Minnesota,27169,94,15 +2020-06-22,Winona,Minnesota,27169,99,15 +2020-06-23,Winona,Minnesota,27169,99,15 +2020-06-24,Winona,Minnesota,27169,100,15 +2020-06-25,Winona,Minnesota,27169,107,15 +2020-06-26,Winona,Minnesota,27169,110,15 +2020-06-27,Winona,Minnesota,27169,110,15 +2020-06-28,Winona,Minnesota,27169,112,15 +2020-06-29,Winona,Minnesota,27169,113,15 +2020-06-30,Winona,Minnesota,27169,119,15 +2020-07-01,Winona,Minnesota,27169,119,15 +2020-07-02,Winona,Minnesota,27169,120,15 +2020-07-03,Winona,Minnesota,27169,122,15 +2020-07-04,Winona,Minnesota,27169,122,15 +2020-07-05,Winona,Minnesota,27169,124,15 +2020-07-06,Winona,Minnesota,27169,125,15 +2020-07-07,Winona,Minnesota,27169,129,15 +2020-07-08,Winona,Minnesota,27169,131,15 +2020-07-09,Winona,Minnesota,27169,133,15 +2020-03-13,Wright,Minnesota,27171,1,0 +2020-03-14,Wright,Minnesota,27171,1,0 +2020-03-15,Wright,Minnesota,27171,1,0 +2020-03-16,Wright,Minnesota,27171,1,0 +2020-03-17,Wright,Minnesota,27171,1,0 +2020-03-18,Wright,Minnesota,27171,1,0 +2020-03-19,Wright,Minnesota,27171,2,0 +2020-03-20,Wright,Minnesota,27171,2,0 +2020-03-21,Wright,Minnesota,27171,3,0 +2020-03-22,Wright,Minnesota,27171,3,0 +2020-03-23,Wright,Minnesota,27171,3,0 +2020-03-24,Wright,Minnesota,27171,3,0 +2020-03-25,Wright,Minnesota,27171,3,0 +2020-03-26,Wright,Minnesota,27171,5,0 +2020-03-27,Wright,Minnesota,27171,5,0 +2020-03-28,Wright,Minnesota,27171,5,0 +2020-03-29,Wright,Minnesota,27171,6,0 +2020-03-30,Wright,Minnesota,27171,6,0 +2020-03-31,Wright,Minnesota,27171,6,0 +2020-04-01,Wright,Minnesota,27171,6,0 +2020-04-02,Wright,Minnesota,27171,7,0 +2020-04-03,Wright,Minnesota,27171,7,0 +2020-04-04,Wright,Minnesota,27171,8,0 +2020-04-05,Wright,Minnesota,27171,9,0 +2020-04-06,Wright,Minnesota,27171,9,0 +2020-04-07,Wright,Minnesota,27171,12,0 +2020-04-08,Wright,Minnesota,27171,12,0 +2020-04-09,Wright,Minnesota,27171,12,0 +2020-04-10,Wright,Minnesota,27171,14,0 +2020-04-11,Wright,Minnesota,27171,16,1 +2020-04-12,Wright,Minnesota,27171,17,1 +2020-04-13,Wright,Minnesota,27171,17,1 +2020-04-14,Wright,Minnesota,27171,19,1 +2020-04-15,Wright,Minnesota,27171,21,1 +2020-04-16,Wright,Minnesota,27171,21,1 +2020-04-17,Wright,Minnesota,27171,23,1 +2020-04-18,Wright,Minnesota,27171,23,1 +2020-04-19,Wright,Minnesota,27171,25,1 +2020-04-20,Wright,Minnesota,27171,25,1 +2020-04-21,Wright,Minnesota,27171,27,1 +2020-04-22,Wright,Minnesota,27171,30,1 +2020-04-23,Wright,Minnesota,27171,32,1 +2020-04-24,Wright,Minnesota,27171,32,1 +2020-04-25,Wright,Minnesota,27171,33,1 +2020-04-26,Wright,Minnesota,27171,33,1 +2020-04-27,Wright,Minnesota,27171,34,1 +2020-04-28,Wright,Minnesota,27171,35,1 +2020-04-29,Wright,Minnesota,27171,40,1 +2020-04-30,Wright,Minnesota,27171,42,1 +2020-05-01,Wright,Minnesota,27171,43,1 +2020-05-02,Wright,Minnesota,27171,48,1 +2020-05-03,Wright,Minnesota,27171,50,1 +2020-05-04,Wright,Minnesota,27171,54,1 +2020-05-05,Wright,Minnesota,27171,60,1 +2020-05-06,Wright,Minnesota,27171,69,1 +2020-05-07,Wright,Minnesota,27171,73,1 +2020-05-08,Wright,Minnesota,27171,83,1 +2020-05-09,Wright,Minnesota,27171,92,1 +2020-05-10,Wright,Minnesota,27171,102,1 +2020-05-11,Wright,Minnesota,27171,110,1 +2020-05-12,Wright,Minnesota,27171,119,1 +2020-05-13,Wright,Minnesota,27171,119,1 +2020-05-14,Wright,Minnesota,27171,130,1 +2020-05-15,Wright,Minnesota,27171,140,1 +2020-05-16,Wright,Minnesota,27171,152,1 +2020-05-17,Wright,Minnesota,27171,162,1 +2020-05-18,Wright,Minnesota,27171,172,1 +2020-05-19,Wright,Minnesota,27171,182,1 +2020-05-20,Wright,Minnesota,27171,198,1 +2020-05-21,Wright,Minnesota,27171,200,1 +2020-05-22,Wright,Minnesota,27171,213,2 +2020-05-23,Wright,Minnesota,27171,231,1 +2020-05-24,Wright,Minnesota,27171,240,1 +2020-05-25,Wright,Minnesota,27171,253,1 +2020-05-26,Wright,Minnesota,27171,263,1 +2020-05-27,Wright,Minnesota,27171,269,1 +2020-05-28,Wright,Minnesota,27171,280,1 +2020-05-29,Wright,Minnesota,27171,287,1 +2020-05-30,Wright,Minnesota,27171,305,1 +2020-05-31,Wright,Minnesota,27171,313,1 +2020-06-01,Wright,Minnesota,27171,320,2 +2020-06-02,Wright,Minnesota,27171,327,2 +2020-06-03,Wright,Minnesota,27171,332,2 +2020-06-04,Wright,Minnesota,27171,339,2 +2020-06-05,Wright,Minnesota,27171,349,2 +2020-06-06,Wright,Minnesota,27171,351,2 +2020-06-07,Wright,Minnesota,27171,358,2 +2020-06-08,Wright,Minnesota,27171,361,2 +2020-06-09,Wright,Minnesota,27171,361,2 +2020-06-10,Wright,Minnesota,27171,362,2 +2020-06-11,Wright,Minnesota,27171,367,2 +2020-06-12,Wright,Minnesota,27171,372,2 +2020-06-13,Wright,Minnesota,27171,375,2 +2020-06-14,Wright,Minnesota,27171,377,2 +2020-06-15,Wright,Minnesota,27171,378,2 +2020-06-16,Wright,Minnesota,27171,383,2 +2020-06-17,Wright,Minnesota,27171,390,2 +2020-06-18,Wright,Minnesota,27171,391,2 +2020-06-19,Wright,Minnesota,27171,394,2 +2020-06-20,Wright,Minnesota,27171,397,2 +2020-06-21,Wright,Minnesota,27171,401,2 +2020-06-22,Wright,Minnesota,27171,403,2 +2020-06-23,Wright,Minnesota,27171,405,3 +2020-06-24,Wright,Minnesota,27171,409,3 +2020-06-25,Wright,Minnesota,27171,411,3 +2020-06-26,Wright,Minnesota,27171,419,4 +2020-06-27,Wright,Minnesota,27171,420,4 +2020-06-28,Wright,Minnesota,27171,426,4 +2020-06-29,Wright,Minnesota,27171,438,4 +2020-06-30,Wright,Minnesota,27171,445,5 +2020-07-01,Wright,Minnesota,27171,448,5 +2020-07-02,Wright,Minnesota,27171,453,5 +2020-07-03,Wright,Minnesota,27171,456,5 +2020-07-04,Wright,Minnesota,27171,456,5 +2020-07-05,Wright,Minnesota,27171,465,5 +2020-07-06,Wright,Minnesota,27171,475,5 +2020-07-07,Wright,Minnesota,27171,483,5 +2020-07-08,Wright,Minnesota,27171,492,5 +2020-07-09,Wright,Minnesota,27171,505,5 +2020-04-01,Yellow Medicine,Minnesota,27173,1,0 +2020-04-02,Yellow Medicine,Minnesota,27173,1,0 +2020-04-03,Yellow Medicine,Minnesota,27173,1,0 +2020-04-04,Yellow Medicine,Minnesota,27173,1,0 +2020-04-05,Yellow Medicine,Minnesota,27173,1,0 +2020-04-06,Yellow Medicine,Minnesota,27173,1,0 +2020-04-07,Yellow Medicine,Minnesota,27173,1,0 +2020-04-08,Yellow Medicine,Minnesota,27173,2,0 +2020-04-09,Yellow Medicine,Minnesota,27173,2,0 +2020-04-10,Yellow Medicine,Minnesota,27173,2,0 +2020-04-11,Yellow Medicine,Minnesota,27173,2,0 +2020-04-12,Yellow Medicine,Minnesota,27173,3,0 +2020-04-13,Yellow Medicine,Minnesota,27173,3,0 +2020-04-14,Yellow Medicine,Minnesota,27173,3,0 +2020-04-15,Yellow Medicine,Minnesota,27173,3,0 +2020-04-16,Yellow Medicine,Minnesota,27173,3,0 +2020-04-17,Yellow Medicine,Minnesota,27173,3,0 +2020-04-18,Yellow Medicine,Minnesota,27173,3,0 +2020-04-19,Yellow Medicine,Minnesota,27173,3,0 +2020-04-20,Yellow Medicine,Minnesota,27173,3,0 +2020-04-21,Yellow Medicine,Minnesota,27173,3,0 +2020-04-22,Yellow Medicine,Minnesota,27173,3,0 +2020-04-23,Yellow Medicine,Minnesota,27173,3,0 +2020-04-24,Yellow Medicine,Minnesota,27173,3,0 +2020-04-25,Yellow Medicine,Minnesota,27173,3,0 +2020-04-26,Yellow Medicine,Minnesota,27173,3,0 +2020-04-27,Yellow Medicine,Minnesota,27173,3,0 +2020-04-28,Yellow Medicine,Minnesota,27173,3,0 +2020-04-29,Yellow Medicine,Minnesota,27173,3,0 +2020-04-30,Yellow Medicine,Minnesota,27173,3,0 +2020-05-01,Yellow Medicine,Minnesota,27173,3,0 +2020-05-02,Yellow Medicine,Minnesota,27173,3,0 +2020-05-03,Yellow Medicine,Minnesota,27173,3,0 +2020-05-04,Yellow Medicine,Minnesota,27173,3,0 +2020-05-05,Yellow Medicine,Minnesota,27173,3,0 +2020-05-06,Yellow Medicine,Minnesota,27173,3,0 +2020-05-07,Yellow Medicine,Minnesota,27173,3,0 +2020-05-08,Yellow Medicine,Minnesota,27173,3,0 +2020-05-09,Yellow Medicine,Minnesota,27173,3,0 +2020-05-10,Yellow Medicine,Minnesota,27173,3,0 +2020-05-11,Yellow Medicine,Minnesota,27173,3,0 +2020-05-12,Yellow Medicine,Minnesota,27173,3,0 +2020-05-13,Yellow Medicine,Minnesota,27173,3,0 +2020-05-14,Yellow Medicine,Minnesota,27173,3,0 +2020-05-15,Yellow Medicine,Minnesota,27173,3,0 +2020-05-16,Yellow Medicine,Minnesota,27173,3,0 +2020-05-17,Yellow Medicine,Minnesota,27173,3,0 +2020-05-18,Yellow Medicine,Minnesota,27173,3,0 +2020-05-19,Yellow Medicine,Minnesota,27173,4,0 +2020-05-20,Yellow Medicine,Minnesota,27173,5,0 +2020-05-21,Yellow Medicine,Minnesota,27173,5,0 +2020-05-22,Yellow Medicine,Minnesota,27173,5,0 +2020-05-23,Yellow Medicine,Minnesota,27173,5,0 +2020-05-24,Yellow Medicine,Minnesota,27173,5,0 +2020-05-25,Yellow Medicine,Minnesota,27173,6,0 +2020-05-26,Yellow Medicine,Minnesota,27173,6,0 +2020-05-27,Yellow Medicine,Minnesota,27173,6,0 +2020-05-28,Yellow Medicine,Minnesota,27173,6,0 +2020-05-29,Yellow Medicine,Minnesota,27173,6,0 +2020-05-30,Yellow Medicine,Minnesota,27173,6,0 +2020-05-31,Yellow Medicine,Minnesota,27173,6,0 +2020-06-01,Yellow Medicine,Minnesota,27173,6,0 +2020-06-02,Yellow Medicine,Minnesota,27173,6,0 +2020-06-03,Yellow Medicine,Minnesota,27173,6,0 +2020-06-04,Yellow Medicine,Minnesota,27173,6,0 +2020-06-05,Yellow Medicine,Minnesota,27173,7,0 +2020-06-06,Yellow Medicine,Minnesota,27173,7,0 +2020-06-07,Yellow Medicine,Minnesota,27173,7,0 +2020-06-08,Yellow Medicine,Minnesota,27173,7,0 +2020-06-09,Yellow Medicine,Minnesota,27173,7,0 +2020-06-10,Yellow Medicine,Minnesota,27173,8,0 +2020-06-11,Yellow Medicine,Minnesota,27173,8,0 +2020-06-12,Yellow Medicine,Minnesota,27173,8,0 +2020-06-13,Yellow Medicine,Minnesota,27173,9,0 +2020-06-14,Yellow Medicine,Minnesota,27173,9,0 +2020-06-15,Yellow Medicine,Minnesota,27173,10,0 +2020-06-16,Yellow Medicine,Minnesota,27173,11,0 +2020-06-17,Yellow Medicine,Minnesota,27173,10,0 +2020-06-18,Yellow Medicine,Minnesota,27173,11,0 +2020-06-19,Yellow Medicine,Minnesota,27173,14,0 +2020-06-20,Yellow Medicine,Minnesota,27173,22,0 +2020-06-21,Yellow Medicine,Minnesota,27173,22,0 +2020-06-22,Yellow Medicine,Minnesota,27173,24,0 +2020-06-23,Yellow Medicine,Minnesota,27173,23,0 +2020-06-24,Yellow Medicine,Minnesota,27173,24,0 +2020-06-25,Yellow Medicine,Minnesota,27173,24,0 +2020-06-26,Yellow Medicine,Minnesota,27173,25,0 +2020-06-27,Yellow Medicine,Minnesota,27173,25,0 +2020-06-28,Yellow Medicine,Minnesota,27173,27,0 +2020-06-29,Yellow Medicine,Minnesota,27173,27,0 +2020-06-30,Yellow Medicine,Minnesota,27173,29,0 +2020-07-01,Yellow Medicine,Minnesota,27173,29,0 +2020-07-02,Yellow Medicine,Minnesota,27173,29,0 +2020-07-03,Yellow Medicine,Minnesota,27173,30,0 +2020-07-04,Yellow Medicine,Minnesota,27173,30,0 +2020-07-05,Yellow Medicine,Minnesota,27173,30,0 +2020-07-06,Yellow Medicine,Minnesota,27173,30,0 +2020-07-07,Yellow Medicine,Minnesota,27173,30,0 +2020-07-08,Yellow Medicine,Minnesota,27173,30,0 +2020-07-09,Yellow Medicine,Minnesota,27173,31,0 +2020-03-20,Adams,Mississippi,28001,1,0 +2020-03-21,Adams,Mississippi,28001,1,0 +2020-03-22,Adams,Mississippi,28001,1,0 +2020-03-23,Adams,Mississippi,28001,2,0 +2020-03-24,Adams,Mississippi,28001,2,0 +2020-03-25,Adams,Mississippi,28001,2,0 +2020-03-26,Adams,Mississippi,28001,3,0 +2020-03-27,Adams,Mississippi,28001,2,0 +2020-03-28,Adams,Mississippi,28001,6,0 +2020-03-29,Adams,Mississippi,28001,7,0 +2020-03-30,Adams,Mississippi,28001,8,0 +2020-03-31,Adams,Mississippi,28001,10,0 +2020-04-01,Adams,Mississippi,28001,11,0 +2020-04-02,Adams,Mississippi,28001,14,0 +2020-04-03,Adams,Mississippi,28001,14,0 +2020-04-04,Adams,Mississippi,28001,16,0 +2020-04-05,Adams,Mississippi,28001,19,0 +2020-04-06,Adams,Mississippi,28001,19,0 +2020-04-07,Adams,Mississippi,28001,24,0 +2020-04-08,Adams,Mississippi,28001,25,0 +2020-04-09,Adams,Mississippi,28001,27,1 +2020-04-10,Adams,Mississippi,28001,42,1 +2020-04-11,Adams,Mississippi,28001,49,1 +2020-04-12,Adams,Mississippi,28001,51,1 +2020-04-13,Adams,Mississippi,28001,57,1 +2020-04-14,Adams,Mississippi,28001,62,1 +2020-04-15,Adams,Mississippi,28001,64,3 +2020-04-16,Adams,Mississippi,28001,70,4 +2020-04-17,Adams,Mississippi,28001,73,5 +2020-04-18,Adams,Mississippi,28001,73,6 +2020-04-19,Adams,Mississippi,28001,81,6 +2020-04-20,Adams,Mississippi,28001,83,6 +2020-04-21,Adams,Mississippi,28001,90,6 +2020-04-22,Adams,Mississippi,28001,96,7 +2020-04-23,Adams,Mississippi,28001,101,7 +2020-04-24,Adams,Mississippi,28001,104,7 +2020-04-25,Adams,Mississippi,28001,109,7 +2020-04-26,Adams,Mississippi,28001,113,7 +2020-04-27,Adams,Mississippi,28001,116,7 +2020-04-28,Adams,Mississippi,28001,123,8 +2020-04-29,Adams,Mississippi,28001,129,8 +2020-04-30,Adams,Mississippi,28001,133,8 +2020-05-01,Adams,Mississippi,28001,148,8 +2020-05-02,Adams,Mississippi,28001,149,9 +2020-05-03,Adams,Mississippi,28001,148,9 +2020-05-04,Adams,Mississippi,28001,149,9 +2020-05-05,Adams,Mississippi,28001,151,10 +2020-05-06,Adams,Mississippi,28001,154,10 +2020-05-07,Adams,Mississippi,28001,157,11 +2020-05-08,Adams,Mississippi,28001,157,11 +2020-05-09,Adams,Mississippi,28001,158,11 +2020-05-10,Adams,Mississippi,28001,159,12 +2020-05-11,Adams,Mississippi,28001,160,13 +2020-05-12,Adams,Mississippi,28001,161,15 +2020-05-13,Adams,Mississippi,28001,163,15 +2020-05-14,Adams,Mississippi,28001,164,15 +2020-05-15,Adams,Mississippi,28001,166,15 +2020-05-16,Adams,Mississippi,28001,171,15 +2020-05-17,Adams,Mississippi,28001,172,15 +2020-05-18,Adams,Mississippi,28001,173,15 +2020-05-19,Adams,Mississippi,28001,177,15 +2020-05-20,Adams,Mississippi,28001,178,15 +2020-05-21,Adams,Mississippi,28001,179,15 +2020-05-22,Adams,Mississippi,28001,180,15 +2020-05-23,Adams,Mississippi,28001,181,15 +2020-05-24,Adams,Mississippi,28001,186,15 +2020-05-25,Adams,Mississippi,28001,188,15 +2020-05-26,Adams,Mississippi,28001,189,15 +2020-05-27,Adams,Mississippi,28001,190,15 +2020-05-28,Adams,Mississippi,28001,190,15 +2020-05-29,Adams,Mississippi,28001,192,15 +2020-05-30,Adams,Mississippi,28001,196,15 +2020-05-31,Adams,Mississippi,28001,199,15 +2020-06-01,Adams,Mississippi,28001,200,15 +2020-06-02,Adams,Mississippi,28001,200,15 +2020-06-03,Adams,Mississippi,28001,202,16 +2020-06-04,Adams,Mississippi,28001,203,16 +2020-06-05,Adams,Mississippi,28001,204,16 +2020-06-06,Adams,Mississippi,28001,203,16 +2020-06-07,Adams,Mississippi,28001,204,16 +2020-06-08,Adams,Mississippi,28001,222,17 +2020-06-09,Adams,Mississippi,28001,222,17 +2020-06-10,Adams,Mississippi,28001,222,17 +2020-06-11,Adams,Mississippi,28001,222,17 +2020-06-12,Adams,Mississippi,28001,225,17 +2020-06-13,Adams,Mississippi,28001,225,17 +2020-06-14,Adams,Mississippi,28001,225,17 +2020-06-15,Adams,Mississippi,28001,226,17 +2020-06-16,Adams,Mississippi,28001,226,17 +2020-06-17,Adams,Mississippi,28001,227,18 +2020-06-18,Adams,Mississippi,28001,227,18 +2020-06-19,Adams,Mississippi,28001,227,18 +2020-06-20,Adams,Mississippi,28001,227,18 +2020-06-21,Adams,Mississippi,28001,227,18 +2020-06-22,Adams,Mississippi,28001,232,18 +2020-06-23,Adams,Mississippi,28001,233,18 +2020-06-24,Adams,Mississippi,28001,234,18 +2020-06-25,Adams,Mississippi,28001,242,18 +2020-06-26,Adams,Mississippi,28001,243,18 +2020-06-27,Adams,Mississippi,28001,248,18 +2020-06-28,Adams,Mississippi,28001,252,18 +2020-06-29,Adams,Mississippi,28001,253,18 +2020-06-30,Adams,Mississippi,28001,263,18 +2020-07-01,Adams,Mississippi,28001,267,18 +2020-07-02,Adams,Mississippi,28001,280,18 +2020-07-03,Adams,Mississippi,28001,293,18 +2020-07-04,Adams,Mississippi,28001,310,18 +2020-07-05,Adams,Mississippi,28001,311,18 +2020-07-06,Adams,Mississippi,28001,313,18 +2020-07-07,Adams,Mississippi,28001,315,18 +2020-07-08,Adams,Mississippi,28001,332,18 +2020-07-09,Adams,Mississippi,28001,340,19 +2020-03-30,Alcorn,Mississippi,28003,1,0 +2020-03-31,Alcorn,Mississippi,28003,3,0 +2020-04-01,Alcorn,Mississippi,28003,3,0 +2020-04-02,Alcorn,Mississippi,28003,3,0 +2020-04-03,Alcorn,Mississippi,28003,6,0 +2020-04-04,Alcorn,Mississippi,28003,6,0 +2020-04-05,Alcorn,Mississippi,28003,6,0 +2020-04-06,Alcorn,Mississippi,28003,6,0 +2020-04-07,Alcorn,Mississippi,28003,6,0 +2020-04-08,Alcorn,Mississippi,28003,6,0 +2020-04-09,Alcorn,Mississippi,28003,6,0 +2020-04-10,Alcorn,Mississippi,28003,7,0 +2020-04-11,Alcorn,Mississippi,28003,7,0 +2020-04-12,Alcorn,Mississippi,28003,7,0 +2020-04-13,Alcorn,Mississippi,28003,7,0 +2020-04-14,Alcorn,Mississippi,28003,7,0 +2020-04-15,Alcorn,Mississippi,28003,7,0 +2020-04-16,Alcorn,Mississippi,28003,7,0 +2020-04-17,Alcorn,Mississippi,28003,7,0 +2020-04-18,Alcorn,Mississippi,28003,7,0 +2020-04-19,Alcorn,Mississippi,28003,8,0 +2020-04-20,Alcorn,Mississippi,28003,7,0 +2020-04-21,Alcorn,Mississippi,28003,7,0 +2020-04-22,Alcorn,Mississippi,28003,7,0 +2020-04-23,Alcorn,Mississippi,28003,8,0 +2020-04-24,Alcorn,Mississippi,28003,9,0 +2020-04-25,Alcorn,Mississippi,28003,9,0 +2020-04-26,Alcorn,Mississippi,28003,9,0 +2020-04-27,Alcorn,Mississippi,28003,8,0 +2020-04-28,Alcorn,Mississippi,28003,10,0 +2020-04-29,Alcorn,Mississippi,28003,10,1 +2020-04-30,Alcorn,Mississippi,28003,10,1 +2020-05-01,Alcorn,Mississippi,28003,10,1 +2020-05-02,Alcorn,Mississippi,28003,10,1 +2020-05-03,Alcorn,Mississippi,28003,10,1 +2020-05-04,Alcorn,Mississippi,28003,10,1 +2020-05-05,Alcorn,Mississippi,28003,10,1 +2020-05-06,Alcorn,Mississippi,28003,10,1 +2020-05-07,Alcorn,Mississippi,28003,10,1 +2020-05-08,Alcorn,Mississippi,28003,10,1 +2020-05-09,Alcorn,Mississippi,28003,10,1 +2020-05-10,Alcorn,Mississippi,28003,10,1 +2020-05-11,Alcorn,Mississippi,28003,10,1 +2020-05-12,Alcorn,Mississippi,28003,11,1 +2020-05-13,Alcorn,Mississippi,28003,11,1 +2020-05-14,Alcorn,Mississippi,28003,12,1 +2020-05-15,Alcorn,Mississippi,28003,12,1 +2020-05-16,Alcorn,Mississippi,28003,12,1 +2020-05-17,Alcorn,Mississippi,28003,12,1 +2020-05-18,Alcorn,Mississippi,28003,12,1 +2020-05-19,Alcorn,Mississippi,28003,12,1 +2020-05-20,Alcorn,Mississippi,28003,12,1 +2020-05-21,Alcorn,Mississippi,28003,12,1 +2020-05-22,Alcorn,Mississippi,28003,15,1 +2020-05-23,Alcorn,Mississippi,28003,15,1 +2020-05-24,Alcorn,Mississippi,28003,14,1 +2020-05-25,Alcorn,Mississippi,28003,14,1 +2020-05-26,Alcorn,Mississippi,28003,14,1 +2020-05-27,Alcorn,Mississippi,28003,14,1 +2020-05-28,Alcorn,Mississippi,28003,14,1 +2020-05-29,Alcorn,Mississippi,28003,16,1 +2020-05-30,Alcorn,Mississippi,28003,17,1 +2020-05-31,Alcorn,Mississippi,28003,17,1 +2020-06-01,Alcorn,Mississippi,28003,17,1 +2020-06-02,Alcorn,Mississippi,28003,18,1 +2020-06-03,Alcorn,Mississippi,28003,19,1 +2020-06-04,Alcorn,Mississippi,28003,19,1 +2020-06-05,Alcorn,Mississippi,28003,19,1 +2020-06-06,Alcorn,Mississippi,28003,20,1 +2020-06-07,Alcorn,Mississippi,28003,20,1 +2020-06-08,Alcorn,Mississippi,28003,22,1 +2020-06-09,Alcorn,Mississippi,28003,23,1 +2020-06-10,Alcorn,Mississippi,28003,26,1 +2020-06-11,Alcorn,Mississippi,28003,26,1 +2020-06-12,Alcorn,Mississippi,28003,28,1 +2020-06-13,Alcorn,Mississippi,28003,29,1 +2020-06-14,Alcorn,Mississippi,28003,30,1 +2020-06-15,Alcorn,Mississippi,28003,30,1 +2020-06-16,Alcorn,Mississippi,28003,32,1 +2020-06-17,Alcorn,Mississippi,28003,32,1 +2020-06-18,Alcorn,Mississippi,28003,32,1 +2020-06-19,Alcorn,Mississippi,28003,32,1 +2020-06-20,Alcorn,Mississippi,28003,32,1 +2020-06-21,Alcorn,Mississippi,28003,32,1 +2020-06-22,Alcorn,Mississippi,28003,35,1 +2020-06-23,Alcorn,Mississippi,28003,38,1 +2020-06-24,Alcorn,Mississippi,28003,41,1 +2020-06-25,Alcorn,Mississippi,28003,47,1 +2020-06-26,Alcorn,Mississippi,28003,51,1 +2020-06-27,Alcorn,Mississippi,28003,53,1 +2020-06-28,Alcorn,Mississippi,28003,53,1 +2020-06-29,Alcorn,Mississippi,28003,53,1 +2020-06-30,Alcorn,Mississippi,28003,55,1 +2020-07-01,Alcorn,Mississippi,28003,56,1 +2020-07-02,Alcorn,Mississippi,28003,60,1 +2020-07-03,Alcorn,Mississippi,28003,63,1 +2020-07-04,Alcorn,Mississippi,28003,68,2 +2020-07-05,Alcorn,Mississippi,28003,69,2 +2020-07-06,Alcorn,Mississippi,28003,71,2 +2020-07-07,Alcorn,Mississippi,28003,74,2 +2020-07-08,Alcorn,Mississippi,28003,76,2 +2020-07-09,Alcorn,Mississippi,28003,85,2 +2020-03-28,Amite,Mississippi,28005,1,0 +2020-03-29,Amite,Mississippi,28005,4,0 +2020-03-30,Amite,Mississippi,28005,4,1 +2020-03-31,Amite,Mississippi,28005,4,1 +2020-04-01,Amite,Mississippi,28005,4,1 +2020-04-02,Amite,Mississippi,28005,4,1 +2020-04-03,Amite,Mississippi,28005,5,1 +2020-04-04,Amite,Mississippi,28005,6,1 +2020-04-05,Amite,Mississippi,28005,6,1 +2020-04-06,Amite,Mississippi,28005,6,1 +2020-04-07,Amite,Mississippi,28005,7,1 +2020-04-08,Amite,Mississippi,28005,7,1 +2020-04-09,Amite,Mississippi,28005,10,1 +2020-04-10,Amite,Mississippi,28005,10,1 +2020-04-11,Amite,Mississippi,28005,11,1 +2020-04-12,Amite,Mississippi,28005,12,1 +2020-04-13,Amite,Mississippi,28005,14,1 +2020-04-14,Amite,Mississippi,28005,14,1 +2020-04-15,Amite,Mississippi,28005,15,1 +2020-04-16,Amite,Mississippi,28005,16,1 +2020-04-17,Amite,Mississippi,28005,17,1 +2020-04-18,Amite,Mississippi,28005,16,1 +2020-04-19,Amite,Mississippi,28005,17,0 +2020-04-20,Amite,Mississippi,28005,17,0 +2020-04-21,Amite,Mississippi,28005,18,0 +2020-04-22,Amite,Mississippi,28005,20,1 +2020-04-23,Amite,Mississippi,28005,24,1 +2020-04-24,Amite,Mississippi,28005,23,0 +2020-04-25,Amite,Mississippi,28005,23,0 +2020-04-26,Amite,Mississippi,28005,23,0 +2020-04-27,Amite,Mississippi,28005,26,0 +2020-04-28,Amite,Mississippi,28005,26,0 +2020-04-29,Amite,Mississippi,28005,26,0 +2020-04-30,Amite,Mississippi,28005,29,0 +2020-05-01,Amite,Mississippi,28005,29,0 +2020-05-02,Amite,Mississippi,28005,28,0 +2020-05-03,Amite,Mississippi,28005,28,0 +2020-05-04,Amite,Mississippi,28005,30,0 +2020-05-05,Amite,Mississippi,28005,32,0 +2020-05-06,Amite,Mississippi,28005,32,0 +2020-05-07,Amite,Mississippi,28005,33,0 +2020-05-08,Amite,Mississippi,28005,33,0 +2020-05-09,Amite,Mississippi,28005,34,0 +2020-05-10,Amite,Mississippi,28005,38,0 +2020-05-11,Amite,Mississippi,28005,38,0 +2020-05-12,Amite,Mississippi,28005,38,0 +2020-05-13,Amite,Mississippi,28005,38,0 +2020-05-14,Amite,Mississippi,28005,39,0 +2020-05-15,Amite,Mississippi,28005,41,0 +2020-05-16,Amite,Mississippi,28005,46,0 +2020-05-17,Amite,Mississippi,28005,46,0 +2020-05-18,Amite,Mississippi,28005,46,0 +2020-05-19,Amite,Mississippi,28005,45,1 +2020-05-20,Amite,Mississippi,28005,48,1 +2020-05-21,Amite,Mississippi,28005,49,1 +2020-05-22,Amite,Mississippi,28005,49,1 +2020-05-23,Amite,Mississippi,28005,50,1 +2020-05-24,Amite,Mississippi,28005,52,1 +2020-05-25,Amite,Mississippi,28005,52,1 +2020-05-26,Amite,Mississippi,28005,53,1 +2020-05-27,Amite,Mississippi,28005,56,1 +2020-05-28,Amite,Mississippi,28005,56,1 +2020-05-29,Amite,Mississippi,28005,59,1 +2020-05-30,Amite,Mississippi,28005,60,1 +2020-05-31,Amite,Mississippi,28005,64,1 +2020-06-01,Amite,Mississippi,28005,64,1 +2020-06-02,Amite,Mississippi,28005,64,1 +2020-06-03,Amite,Mississippi,28005,65,1 +2020-06-04,Amite,Mississippi,28005,66,1 +2020-06-05,Amite,Mississippi,28005,65,1 +2020-06-06,Amite,Mississippi,28005,65,1 +2020-06-07,Amite,Mississippi,28005,65,1 +2020-06-08,Amite,Mississippi,28005,66,2 +2020-06-09,Amite,Mississippi,28005,66,2 +2020-06-10,Amite,Mississippi,28005,67,2 +2020-06-11,Amite,Mississippi,28005,67,2 +2020-06-12,Amite,Mississippi,28005,67,2 +2020-06-13,Amite,Mississippi,28005,70,2 +2020-06-14,Amite,Mississippi,28005,70,2 +2020-06-15,Amite,Mississippi,28005,72,2 +2020-06-16,Amite,Mississippi,28005,71,2 +2020-06-17,Amite,Mississippi,28005,73,2 +2020-06-18,Amite,Mississippi,28005,73,2 +2020-06-19,Amite,Mississippi,28005,73,2 +2020-06-20,Amite,Mississippi,28005,73,2 +2020-06-21,Amite,Mississippi,28005,73,2 +2020-06-22,Amite,Mississippi,28005,75,2 +2020-06-23,Amite,Mississippi,28005,76,2 +2020-06-24,Amite,Mississippi,28005,79,2 +2020-06-25,Amite,Mississippi,28005,81,2 +2020-06-26,Amite,Mississippi,28005,81,2 +2020-06-27,Amite,Mississippi,28005,80,2 +2020-06-28,Amite,Mississippi,28005,80,2 +2020-06-29,Amite,Mississippi,28005,80,2 +2020-06-30,Amite,Mississippi,28005,81,2 +2020-07-01,Amite,Mississippi,28005,82,2 +2020-07-02,Amite,Mississippi,28005,84,2 +2020-07-03,Amite,Mississippi,28005,89,2 +2020-07-04,Amite,Mississippi,28005,89,2 +2020-07-05,Amite,Mississippi,28005,91,2 +2020-07-06,Amite,Mississippi,28005,91,2 +2020-07-07,Amite,Mississippi,28005,104,3 +2020-07-08,Amite,Mississippi,28005,104,3 +2020-07-09,Amite,Mississippi,28005,106,3 +2020-03-21,Attala,Mississippi,28007,1,0 +2020-03-22,Attala,Mississippi,28007,1,0 +2020-03-23,Attala,Mississippi,28007,1,0 +2020-03-24,Attala,Mississippi,28007,3,0 +2020-03-25,Attala,Mississippi,28007,4,0 +2020-03-26,Attala,Mississippi,28007,7,0 +2020-03-27,Attala,Mississippi,28007,8,0 +2020-03-28,Attala,Mississippi,28007,9,0 +2020-03-29,Attala,Mississippi,28007,9,0 +2020-03-30,Attala,Mississippi,28007,10,0 +2020-03-31,Attala,Mississippi,28007,10,0 +2020-04-01,Attala,Mississippi,28007,11,0 +2020-04-02,Attala,Mississippi,28007,12,0 +2020-04-03,Attala,Mississippi,28007,14,0 +2020-04-04,Attala,Mississippi,28007,14,0 +2020-04-05,Attala,Mississippi,28007,15,0 +2020-04-06,Attala,Mississippi,28007,15,0 +2020-04-07,Attala,Mississippi,28007,15,0 +2020-04-08,Attala,Mississippi,28007,15,0 +2020-04-09,Attala,Mississippi,28007,17,0 +2020-04-10,Attala,Mississippi,28007,17,0 +2020-04-11,Attala,Mississippi,28007,18,0 +2020-04-12,Attala,Mississippi,28007,20,0 +2020-04-13,Attala,Mississippi,28007,20,0 +2020-04-14,Attala,Mississippi,28007,22,0 +2020-04-15,Attala,Mississippi,28007,25,0 +2020-04-16,Attala,Mississippi,28007,28,0 +2020-04-17,Attala,Mississippi,28007,31,0 +2020-04-18,Attala,Mississippi,28007,34,0 +2020-04-19,Attala,Mississippi,28007,36,0 +2020-04-20,Attala,Mississippi,28007,44,0 +2020-04-21,Attala,Mississippi,28007,49,0 +2020-04-22,Attala,Mississippi,28007,51,0 +2020-04-23,Attala,Mississippi,28007,62,0 +2020-04-24,Attala,Mississippi,28007,68,0 +2020-04-25,Attala,Mississippi,28007,80,0 +2020-04-26,Attala,Mississippi,28007,82,0 +2020-04-27,Attala,Mississippi,28007,86,0 +2020-04-28,Attala,Mississippi,28007,89,0 +2020-04-29,Attala,Mississippi,28007,94,0 +2020-04-30,Attala,Mississippi,28007,99,0 +2020-05-01,Attala,Mississippi,28007,109,0 +2020-05-02,Attala,Mississippi,28007,117,1 +2020-05-03,Attala,Mississippi,28007,117,2 +2020-05-04,Attala,Mississippi,28007,128,2 +2020-05-05,Attala,Mississippi,28007,137,2 +2020-05-06,Attala,Mississippi,28007,159,3 +2020-05-07,Attala,Mississippi,28007,170,3 +2020-05-08,Attala,Mississippi,28007,182,4 +2020-05-09,Attala,Mississippi,28007,191,4 +2020-05-10,Attala,Mississippi,28007,190,4 +2020-05-11,Attala,Mississippi,28007,196,4 +2020-05-12,Attala,Mississippi,28007,205,5 +2020-05-13,Attala,Mississippi,28007,206,5 +2020-05-14,Attala,Mississippi,28007,212,5 +2020-05-15,Attala,Mississippi,28007,224,5 +2020-05-16,Attala,Mississippi,28007,233,7 +2020-05-17,Attala,Mississippi,28007,249,7 +2020-05-18,Attala,Mississippi,28007,248,7 +2020-05-19,Attala,Mississippi,28007,259,9 +2020-05-20,Attala,Mississippi,28007,259,10 +2020-05-21,Attala,Mississippi,28007,257,11 +2020-05-22,Attala,Mississippi,28007,269,12 +2020-05-23,Attala,Mississippi,28007,270,12 +2020-05-24,Attala,Mississippi,28007,269,14 +2020-05-25,Attala,Mississippi,28007,273,14 +2020-05-26,Attala,Mississippi,28007,277,14 +2020-05-27,Attala,Mississippi,28007,277,15 +2020-05-28,Attala,Mississippi,28007,284,15 +2020-05-29,Attala,Mississippi,28007,287,15 +2020-05-30,Attala,Mississippi,28007,292,16 +2020-05-31,Attala,Mississippi,28007,298,17 +2020-06-01,Attala,Mississippi,28007,298,17 +2020-06-02,Attala,Mississippi,28007,303,18 +2020-06-03,Attala,Mississippi,28007,307,18 +2020-06-04,Attala,Mississippi,28007,311,18 +2020-06-05,Attala,Mississippi,28007,312,18 +2020-06-06,Attala,Mississippi,28007,315,18 +2020-06-07,Attala,Mississippi,28007,315,20 +2020-06-08,Attala,Mississippi,28007,317,20 +2020-06-09,Attala,Mississippi,28007,319,21 +2020-06-10,Attala,Mississippi,28007,323,22 +2020-06-11,Attala,Mississippi,28007,323,22 +2020-06-12,Attala,Mississippi,28007,328,23 +2020-06-13,Attala,Mississippi,28007,328,23 +2020-06-14,Attala,Mississippi,28007,331,23 +2020-06-15,Attala,Mississippi,28007,332,23 +2020-06-16,Attala,Mississippi,28007,333,23 +2020-06-17,Attala,Mississippi,28007,335,23 +2020-06-18,Attala,Mississippi,28007,335,23 +2020-06-19,Attala,Mississippi,28007,335,23 +2020-06-20,Attala,Mississippi,28007,335,23 +2020-06-21,Attala,Mississippi,28007,335,23 +2020-06-22,Attala,Mississippi,28007,336,23 +2020-06-23,Attala,Mississippi,28007,337,23 +2020-06-24,Attala,Mississippi,28007,338,23 +2020-06-25,Attala,Mississippi,28007,341,23 +2020-06-26,Attala,Mississippi,28007,346,23 +2020-06-27,Attala,Mississippi,28007,345,23 +2020-06-28,Attala,Mississippi,28007,346,23 +2020-06-29,Attala,Mississippi,28007,347,23 +2020-06-30,Attala,Mississippi,28007,350,23 +2020-07-01,Attala,Mississippi,28007,352,23 +2020-07-02,Attala,Mississippi,28007,355,23 +2020-07-03,Attala,Mississippi,28007,358,23 +2020-07-04,Attala,Mississippi,28007,359,23 +2020-07-05,Attala,Mississippi,28007,360,23 +2020-07-06,Attala,Mississippi,28007,361,23 +2020-07-07,Attala,Mississippi,28007,365,23 +2020-07-08,Attala,Mississippi,28007,365,23 +2020-07-09,Attala,Mississippi,28007,375,24 +2020-03-26,Benton,Mississippi,28009,1,0 +2020-03-27,Benton,Mississippi,28009,2,0 +2020-03-28,Benton,Mississippi,28009,2,0 +2020-03-29,Benton,Mississippi,28009,4,0 +2020-03-30,Benton,Mississippi,28009,4,0 +2020-03-31,Benton,Mississippi,28009,4,0 +2020-04-01,Benton,Mississippi,28009,4,0 +2020-04-02,Benton,Mississippi,28009,5,0 +2020-04-03,Benton,Mississippi,28009,5,0 +2020-04-04,Benton,Mississippi,28009,5,0 +2020-04-05,Benton,Mississippi,28009,5,0 +2020-04-06,Benton,Mississippi,28009,5,0 +2020-04-07,Benton,Mississippi,28009,5,0 +2020-04-08,Benton,Mississippi,28009,5,0 +2020-04-09,Benton,Mississippi,28009,5,0 +2020-04-10,Benton,Mississippi,28009,5,0 +2020-04-11,Benton,Mississippi,28009,5,0 +2020-04-12,Benton,Mississippi,28009,5,0 +2020-04-13,Benton,Mississippi,28009,5,0 +2020-04-14,Benton,Mississippi,28009,5,0 +2020-04-15,Benton,Mississippi,28009,5,0 +2020-04-16,Benton,Mississippi,28009,5,0 +2020-04-17,Benton,Mississippi,28009,6,0 +2020-04-18,Benton,Mississippi,28009,5,0 +2020-04-19,Benton,Mississippi,28009,7,0 +2020-04-20,Benton,Mississippi,28009,8,0 +2020-04-21,Benton,Mississippi,28009,9,0 +2020-04-22,Benton,Mississippi,28009,8,0 +2020-04-23,Benton,Mississippi,28009,9,0 +2020-04-24,Benton,Mississippi,28009,9,0 +2020-04-25,Benton,Mississippi,28009,9,0 +2020-04-26,Benton,Mississippi,28009,9,0 +2020-04-27,Benton,Mississippi,28009,9,0 +2020-04-28,Benton,Mississippi,28009,9,0 +2020-04-29,Benton,Mississippi,28009,9,0 +2020-04-30,Benton,Mississippi,28009,11,0 +2020-05-01,Benton,Mississippi,28009,12,0 +2020-05-02,Benton,Mississippi,28009,12,0 +2020-05-03,Benton,Mississippi,28009,12,0 +2020-05-04,Benton,Mississippi,28009,12,0 +2020-05-05,Benton,Mississippi,28009,12,0 +2020-05-06,Benton,Mississippi,28009,12,0 +2020-05-07,Benton,Mississippi,28009,13,0 +2020-05-08,Benton,Mississippi,28009,13,0 +2020-05-09,Benton,Mississippi,28009,13,0 +2020-05-10,Benton,Mississippi,28009,13,0 +2020-05-11,Benton,Mississippi,28009,13,0 +2020-05-12,Benton,Mississippi,28009,14,0 +2020-05-13,Benton,Mississippi,28009,14,0 +2020-05-14,Benton,Mississippi,28009,14,0 +2020-05-15,Benton,Mississippi,28009,13,0 +2020-05-16,Benton,Mississippi,28009,13,0 +2020-05-17,Benton,Mississippi,28009,13,0 +2020-05-18,Benton,Mississippi,28009,13,0 +2020-05-19,Benton,Mississippi,28009,13,0 +2020-05-20,Benton,Mississippi,28009,13,0 +2020-05-21,Benton,Mississippi,28009,13,0 +2020-05-22,Benton,Mississippi,28009,13,0 +2020-05-23,Benton,Mississippi,28009,14,0 +2020-05-24,Benton,Mississippi,28009,14,0 +2020-05-25,Benton,Mississippi,28009,15,0 +2020-05-26,Benton,Mississippi,28009,15,0 +2020-05-27,Benton,Mississippi,28009,14,0 +2020-05-28,Benton,Mississippi,28009,15,0 +2020-05-29,Benton,Mississippi,28009,15,0 +2020-05-30,Benton,Mississippi,28009,15,0 +2020-05-31,Benton,Mississippi,28009,14,0 +2020-06-01,Benton,Mississippi,28009,14,0 +2020-06-02,Benton,Mississippi,28009,14,0 +2020-06-03,Benton,Mississippi,28009,14,0 +2020-06-04,Benton,Mississippi,28009,14,0 +2020-06-05,Benton,Mississippi,28009,14,0 +2020-06-06,Benton,Mississippi,28009,15,0 +2020-06-07,Benton,Mississippi,28009,15,0 +2020-06-08,Benton,Mississippi,28009,16,0 +2020-06-09,Benton,Mississippi,28009,16,0 +2020-06-10,Benton,Mississippi,28009,17,0 +2020-06-11,Benton,Mississippi,28009,17,0 +2020-06-12,Benton,Mississippi,28009,17,0 +2020-06-13,Benton,Mississippi,28009,17,0 +2020-06-14,Benton,Mississippi,28009,17,0 +2020-06-15,Benton,Mississippi,28009,17,0 +2020-06-16,Benton,Mississippi,28009,19,0 +2020-06-17,Benton,Mississippi,28009,18,0 +2020-06-18,Benton,Mississippi,28009,18,0 +2020-06-19,Benton,Mississippi,28009,18,0 +2020-06-20,Benton,Mississippi,28009,18,0 +2020-06-21,Benton,Mississippi,28009,18,0 +2020-06-22,Benton,Mississippi,28009,20,0 +2020-06-23,Benton,Mississippi,28009,23,0 +2020-06-24,Benton,Mississippi,28009,22,0 +2020-06-25,Benton,Mississippi,28009,25,0 +2020-06-26,Benton,Mississippi,28009,24,0 +2020-06-27,Benton,Mississippi,28009,25,0 +2020-06-28,Benton,Mississippi,28009,25,0 +2020-06-29,Benton,Mississippi,28009,27,0 +2020-06-30,Benton,Mississippi,28009,27,0 +2020-07-01,Benton,Mississippi,28009,27,0 +2020-07-02,Benton,Mississippi,28009,27,0 +2020-07-03,Benton,Mississippi,28009,30,0 +2020-07-04,Benton,Mississippi,28009,34,0 +2020-07-05,Benton,Mississippi,28009,36,0 +2020-07-06,Benton,Mississippi,28009,38,0 +2020-07-07,Benton,Mississippi,28009,42,0 +2020-07-08,Benton,Mississippi,28009,42,0 +2020-07-09,Benton,Mississippi,28009,42,0 +2020-03-18,Bolivar,Mississippi,28011,2,0 +2020-03-19,Bolivar,Mississippi,28011,2,0 +2020-03-20,Bolivar,Mississippi,28011,2,0 +2020-03-21,Bolivar,Mississippi,28011,2,0 +2020-03-22,Bolivar,Mississippi,28011,3,0 +2020-03-23,Bolivar,Mississippi,28011,4,0 +2020-03-24,Bolivar,Mississippi,28011,4,0 +2020-03-25,Bolivar,Mississippi,28011,4,0 +2020-03-26,Bolivar,Mississippi,28011,6,0 +2020-03-27,Bolivar,Mississippi,28011,9,0 +2020-03-28,Bolivar,Mississippi,28011,11,0 +2020-03-29,Bolivar,Mississippi,28011,11,0 +2020-03-30,Bolivar,Mississippi,28011,16,0 +2020-03-31,Bolivar,Mississippi,28011,22,1 +2020-04-01,Bolivar,Mississippi,28011,25,1 +2020-04-02,Bolivar,Mississippi,28011,27,1 +2020-04-03,Bolivar,Mississippi,28011,32,1 +2020-04-04,Bolivar,Mississippi,28011,34,1 +2020-04-05,Bolivar,Mississippi,28011,45,2 +2020-04-06,Bolivar,Mississippi,28011,51,2 +2020-04-07,Bolivar,Mississippi,28011,54,2 +2020-04-08,Bolivar,Mississippi,28011,54,2 +2020-04-09,Bolivar,Mississippi,28011,57,3 +2020-04-10,Bolivar,Mississippi,28011,61,3 +2020-04-11,Bolivar,Mississippi,28011,65,3 +2020-04-12,Bolivar,Mississippi,28011,68,3 +2020-04-13,Bolivar,Mississippi,28011,68,3 +2020-04-14,Bolivar,Mississippi,28011,69,4 +2020-04-15,Bolivar,Mississippi,28011,70,5 +2020-04-16,Bolivar,Mississippi,28011,74,5 +2020-04-17,Bolivar,Mississippi,28011,76,5 +2020-04-18,Bolivar,Mississippi,28011,79,5 +2020-04-19,Bolivar,Mississippi,28011,82,5 +2020-04-20,Bolivar,Mississippi,28011,85,6 +2020-04-21,Bolivar,Mississippi,28011,86,6 +2020-04-22,Bolivar,Mississippi,28011,87,6 +2020-04-23,Bolivar,Mississippi,28011,89,7 +2020-04-24,Bolivar,Mississippi,28011,90,7 +2020-04-25,Bolivar,Mississippi,28011,94,7 +2020-04-26,Bolivar,Mississippi,28011,96,7 +2020-04-27,Bolivar,Mississippi,28011,101,7 +2020-04-28,Bolivar,Mississippi,28011,101,7 +2020-04-29,Bolivar,Mississippi,28011,101,7 +2020-04-30,Bolivar,Mississippi,28011,102,7 +2020-05-01,Bolivar,Mississippi,28011,102,7 +2020-05-02,Bolivar,Mississippi,28011,105,7 +2020-05-03,Bolivar,Mississippi,28011,107,7 +2020-05-04,Bolivar,Mississippi,28011,110,7 +2020-05-05,Bolivar,Mississippi,28011,112,8 +2020-05-06,Bolivar,Mississippi,28011,115,8 +2020-05-07,Bolivar,Mississippi,28011,115,8 +2020-05-08,Bolivar,Mississippi,28011,118,8 +2020-05-09,Bolivar,Mississippi,28011,119,8 +2020-05-10,Bolivar,Mississippi,28011,118,9 +2020-05-11,Bolivar,Mississippi,28011,118,9 +2020-05-12,Bolivar,Mississippi,28011,120,9 +2020-05-13,Bolivar,Mississippi,28011,120,9 +2020-05-14,Bolivar,Mississippi,28011,120,10 +2020-05-15,Bolivar,Mississippi,28011,127,10 +2020-05-16,Bolivar,Mississippi,28011,130,10 +2020-05-17,Bolivar,Mississippi,28011,129,10 +2020-05-18,Bolivar,Mississippi,28011,129,10 +2020-05-19,Bolivar,Mississippi,28011,129,10 +2020-05-20,Bolivar,Mississippi,28011,132,10 +2020-05-21,Bolivar,Mississippi,28011,133,10 +2020-05-22,Bolivar,Mississippi,28011,134,10 +2020-05-23,Bolivar,Mississippi,28011,136,10 +2020-05-24,Bolivar,Mississippi,28011,140,10 +2020-05-25,Bolivar,Mississippi,28011,141,11 +2020-05-26,Bolivar,Mississippi,28011,142,11 +2020-05-27,Bolivar,Mississippi,28011,149,11 +2020-05-28,Bolivar,Mississippi,28011,154,11 +2020-05-29,Bolivar,Mississippi,28011,156,11 +2020-05-30,Bolivar,Mississippi,28011,160,11 +2020-05-31,Bolivar,Mississippi,28011,162,11 +2020-06-01,Bolivar,Mississippi,28011,165,11 +2020-06-02,Bolivar,Mississippi,28011,165,11 +2020-06-03,Bolivar,Mississippi,28011,166,11 +2020-06-04,Bolivar,Mississippi,28011,169,11 +2020-06-05,Bolivar,Mississippi,28011,169,11 +2020-06-06,Bolivar,Mississippi,28011,170,11 +2020-06-07,Bolivar,Mississippi,28011,174,11 +2020-06-08,Bolivar,Mississippi,28011,176,11 +2020-06-09,Bolivar,Mississippi,28011,179,11 +2020-06-10,Bolivar,Mississippi,28011,180,11 +2020-06-11,Bolivar,Mississippi,28011,180,11 +2020-06-12,Bolivar,Mississippi,28011,185,11 +2020-06-13,Bolivar,Mississippi,28011,185,12 +2020-06-14,Bolivar,Mississippi,28011,190,12 +2020-06-15,Bolivar,Mississippi,28011,194,12 +2020-06-16,Bolivar,Mississippi,28011,194,13 +2020-06-17,Bolivar,Mississippi,28011,197,13 +2020-06-18,Bolivar,Mississippi,28011,197,13 +2020-06-19,Bolivar,Mississippi,28011,197,13 +2020-06-20,Bolivar,Mississippi,28011,197,13 +2020-06-21,Bolivar,Mississippi,28011,197,13 +2020-06-22,Bolivar,Mississippi,28011,208,13 +2020-06-23,Bolivar,Mississippi,28011,223,13 +2020-06-24,Bolivar,Mississippi,28011,230,13 +2020-06-25,Bolivar,Mississippi,28011,233,13 +2020-06-26,Bolivar,Mississippi,28011,236,13 +2020-06-27,Bolivar,Mississippi,28011,242,13 +2020-06-28,Bolivar,Mississippi,28011,247,13 +2020-06-29,Bolivar,Mississippi,28011,254,13 +2020-06-30,Bolivar,Mississippi,28011,261,13 +2020-07-01,Bolivar,Mississippi,28011,277,13 +2020-07-02,Bolivar,Mississippi,28011,298,13 +2020-07-03,Bolivar,Mississippi,28011,321,14 +2020-07-04,Bolivar,Mississippi,28011,334,14 +2020-07-05,Bolivar,Mississippi,28011,334,14 +2020-07-06,Bolivar,Mississippi,28011,340,14 +2020-07-07,Bolivar,Mississippi,28011,356,18 +2020-07-08,Bolivar,Mississippi,28011,370,18 +2020-07-09,Bolivar,Mississippi,28011,380,18 +2020-03-25,Calhoun,Mississippi,28013,1,0 +2020-03-26,Calhoun,Mississippi,28013,3,0 +2020-03-27,Calhoun,Mississippi,28013,3,0 +2020-03-28,Calhoun,Mississippi,28013,3,0 +2020-03-29,Calhoun,Mississippi,28013,3,0 +2020-03-30,Calhoun,Mississippi,28013,3,0 +2020-03-31,Calhoun,Mississippi,28013,3,0 +2020-04-01,Calhoun,Mississippi,28013,3,0 +2020-04-02,Calhoun,Mississippi,28013,4,0 +2020-04-03,Calhoun,Mississippi,28013,4,0 +2020-04-04,Calhoun,Mississippi,28013,4,0 +2020-04-05,Calhoun,Mississippi,28013,4,0 +2020-04-06,Calhoun,Mississippi,28013,9,0 +2020-04-07,Calhoun,Mississippi,28013,10,0 +2020-04-08,Calhoun,Mississippi,28013,13,0 +2020-04-09,Calhoun,Mississippi,28013,13,0 +2020-04-10,Calhoun,Mississippi,28013,13,0 +2020-04-11,Calhoun,Mississippi,28013,14,0 +2020-04-12,Calhoun,Mississippi,28013,18,0 +2020-04-13,Calhoun,Mississippi,28013,24,0 +2020-04-14,Calhoun,Mississippi,28013,25,1 +2020-04-15,Calhoun,Mississippi,28013,27,2 +2020-04-16,Calhoun,Mississippi,28013,30,2 +2020-04-17,Calhoun,Mississippi,28013,32,2 +2020-04-18,Calhoun,Mississippi,28013,36,2 +2020-04-19,Calhoun,Mississippi,28013,39,2 +2020-04-20,Calhoun,Mississippi,28013,42,2 +2020-04-21,Calhoun,Mississippi,28013,42,2 +2020-04-22,Calhoun,Mississippi,28013,43,2 +2020-04-23,Calhoun,Mississippi,28013,43,2 +2020-04-24,Calhoun,Mississippi,28013,46,3 +2020-04-25,Calhoun,Mississippi,28013,48,3 +2020-04-26,Calhoun,Mississippi,28013,50,3 +2020-04-27,Calhoun,Mississippi,28013,50,3 +2020-04-28,Calhoun,Mississippi,28013,50,3 +2020-04-29,Calhoun,Mississippi,28013,51,3 +2020-04-30,Calhoun,Mississippi,28013,50,3 +2020-05-01,Calhoun,Mississippi,28013,52,3 +2020-05-02,Calhoun,Mississippi,28013,54,3 +2020-05-03,Calhoun,Mississippi,28013,55,4 +2020-05-04,Calhoun,Mississippi,28013,56,4 +2020-05-05,Calhoun,Mississippi,28013,58,4 +2020-05-06,Calhoun,Mississippi,28013,57,4 +2020-05-07,Calhoun,Mississippi,28013,57,4 +2020-05-08,Calhoun,Mississippi,28013,57,4 +2020-05-09,Calhoun,Mississippi,28013,57,4 +2020-05-10,Calhoun,Mississippi,28013,57,4 +2020-05-11,Calhoun,Mississippi,28013,58,4 +2020-05-12,Calhoun,Mississippi,28013,58,4 +2020-05-13,Calhoun,Mississippi,28013,58,4 +2020-05-14,Calhoun,Mississippi,28013,58,4 +2020-05-15,Calhoun,Mississippi,28013,58,4 +2020-05-16,Calhoun,Mississippi,28013,58,4 +2020-05-17,Calhoun,Mississippi,28013,58,4 +2020-05-18,Calhoun,Mississippi,28013,58,4 +2020-05-19,Calhoun,Mississippi,28013,59,4 +2020-05-20,Calhoun,Mississippi,28013,59,4 +2020-05-21,Calhoun,Mississippi,28013,61,4 +2020-05-22,Calhoun,Mississippi,28013,60,4 +2020-05-23,Calhoun,Mississippi,28013,60,4 +2020-05-24,Calhoun,Mississippi,28013,60,4 +2020-05-25,Calhoun,Mississippi,28013,60,4 +2020-05-26,Calhoun,Mississippi,28013,60,4 +2020-05-27,Calhoun,Mississippi,28013,61,4 +2020-05-28,Calhoun,Mississippi,28013,63,4 +2020-05-29,Calhoun,Mississippi,28013,63,4 +2020-05-30,Calhoun,Mississippi,28013,64,4 +2020-05-31,Calhoun,Mississippi,28013,65,4 +2020-06-01,Calhoun,Mississippi,28013,65,4 +2020-06-02,Calhoun,Mississippi,28013,67,4 +2020-06-03,Calhoun,Mississippi,28013,67,4 +2020-06-04,Calhoun,Mississippi,28013,67,4 +2020-06-05,Calhoun,Mississippi,28013,68,4 +2020-06-06,Calhoun,Mississippi,28013,68,4 +2020-06-07,Calhoun,Mississippi,28013,70,4 +2020-06-08,Calhoun,Mississippi,28013,72,4 +2020-06-09,Calhoun,Mississippi,28013,74,4 +2020-06-10,Calhoun,Mississippi,28013,75,4 +2020-06-11,Calhoun,Mississippi,28013,75,4 +2020-06-12,Calhoun,Mississippi,28013,77,4 +2020-06-13,Calhoun,Mississippi,28013,78,4 +2020-06-14,Calhoun,Mississippi,28013,80,4 +2020-06-15,Calhoun,Mississippi,28013,80,4 +2020-06-16,Calhoun,Mississippi,28013,82,4 +2020-06-17,Calhoun,Mississippi,28013,83,4 +2020-06-18,Calhoun,Mississippi,28013,83,4 +2020-06-19,Calhoun,Mississippi,28013,83,4 +2020-06-20,Calhoun,Mississippi,28013,83,4 +2020-06-21,Calhoun,Mississippi,28013,83,4 +2020-06-22,Calhoun,Mississippi,28013,96,4 +2020-06-23,Calhoun,Mississippi,28013,99,4 +2020-06-24,Calhoun,Mississippi,28013,100,4 +2020-06-25,Calhoun,Mississippi,28013,108,4 +2020-06-26,Calhoun,Mississippi,28013,108,4 +2020-06-27,Calhoun,Mississippi,28013,110,4 +2020-06-28,Calhoun,Mississippi,28013,110,4 +2020-06-29,Calhoun,Mississippi,28013,114,4 +2020-06-30,Calhoun,Mississippi,28013,119,4 +2020-07-01,Calhoun,Mississippi,28013,124,4 +2020-07-02,Calhoun,Mississippi,28013,124,4 +2020-07-03,Calhoun,Mississippi,28013,128,4 +2020-07-04,Calhoun,Mississippi,28013,129,4 +2020-07-05,Calhoun,Mississippi,28013,130,4 +2020-07-06,Calhoun,Mississippi,28013,132,4 +2020-07-07,Calhoun,Mississippi,28013,141,4 +2020-07-08,Calhoun,Mississippi,28013,142,5 +2020-07-09,Calhoun,Mississippi,28013,147,5 +2020-03-29,Carroll,Mississippi,28015,1,0 +2020-03-30,Carroll,Mississippi,28015,1,0 +2020-03-31,Carroll,Mississippi,28015,1,0 +2020-04-01,Carroll,Mississippi,28015,2,0 +2020-04-02,Carroll,Mississippi,28015,3,0 +2020-04-03,Carroll,Mississippi,28015,5,0 +2020-04-04,Carroll,Mississippi,28015,5,0 +2020-04-05,Carroll,Mississippi,28015,5,0 +2020-04-06,Carroll,Mississippi,28015,6,0 +2020-04-07,Carroll,Mississippi,28015,7,0 +2020-04-08,Carroll,Mississippi,28015,7,0 +2020-04-09,Carroll,Mississippi,28015,7,0 +2020-04-10,Carroll,Mississippi,28015,7,0 +2020-04-11,Carroll,Mississippi,28015,7,0 +2020-04-12,Carroll,Mississippi,28015,7,0 +2020-04-13,Carroll,Mississippi,28015,8,0 +2020-04-14,Carroll,Mississippi,28015,8,0 +2020-04-15,Carroll,Mississippi,28015,9,0 +2020-04-16,Carroll,Mississippi,28015,9,1 +2020-04-17,Carroll,Mississippi,28015,10,1 +2020-04-18,Carroll,Mississippi,28015,10,1 +2020-04-19,Carroll,Mississippi,28015,14,1 +2020-04-20,Carroll,Mississippi,28015,14,1 +2020-04-21,Carroll,Mississippi,28015,14,1 +2020-04-22,Carroll,Mississippi,28015,15,1 +2020-04-23,Carroll,Mississippi,28015,15,1 +2020-04-24,Carroll,Mississippi,28015,15,1 +2020-04-25,Carroll,Mississippi,28015,15,1 +2020-04-26,Carroll,Mississippi,28015,18,1 +2020-04-27,Carroll,Mississippi,28015,20,1 +2020-04-28,Carroll,Mississippi,28015,22,1 +2020-04-29,Carroll,Mississippi,28015,25,1 +2020-04-30,Carroll,Mississippi,28015,38,1 +2020-05-01,Carroll,Mississippi,28015,58,1 +2020-05-02,Carroll,Mississippi,28015,60,1 +2020-05-03,Carroll,Mississippi,28015,62,2 +2020-05-04,Carroll,Mississippi,28015,77,2 +2020-05-05,Carroll,Mississippi,28015,111,3 +2020-05-06,Carroll,Mississippi,28015,102,3 +2020-05-07,Carroll,Mississippi,28015,99,3 +2020-05-08,Carroll,Mississippi,28015,97,4 +2020-05-09,Carroll,Mississippi,28015,101,4 +2020-05-10,Carroll,Mississippi,28015,103,4 +2020-05-11,Carroll,Mississippi,28015,103,4 +2020-05-12,Carroll,Mississippi,28015,105,4 +2020-05-13,Carroll,Mississippi,28015,105,4 +2020-05-14,Carroll,Mississippi,28015,106,4 +2020-05-15,Carroll,Mississippi,28015,109,4 +2020-05-16,Carroll,Mississippi,28015,110,6 +2020-05-17,Carroll,Mississippi,28015,110,7 +2020-05-18,Carroll,Mississippi,28015,110,7 +2020-05-19,Carroll,Mississippi,28015,110,8 +2020-05-20,Carroll,Mississippi,28015,111,8 +2020-05-21,Carroll,Mississippi,28015,112,9 +2020-05-22,Carroll,Mississippi,28015,113,9 +2020-05-23,Carroll,Mississippi,28015,113,9 +2020-05-24,Carroll,Mississippi,28015,113,10 +2020-05-25,Carroll,Mississippi,28015,113,10 +2020-05-26,Carroll,Mississippi,28015,114,10 +2020-05-27,Carroll,Mississippi,28015,114,10 +2020-05-28,Carroll,Mississippi,28015,115,11 +2020-05-29,Carroll,Mississippi,28015,118,11 +2020-05-30,Carroll,Mississippi,28015,117,11 +2020-05-31,Carroll,Mississippi,28015,117,11 +2020-06-01,Carroll,Mississippi,28015,117,11 +2020-06-02,Carroll,Mississippi,28015,116,11 +2020-06-03,Carroll,Mississippi,28015,116,11 +2020-06-04,Carroll,Mississippi,28015,119,11 +2020-06-05,Carroll,Mississippi,28015,119,11 +2020-06-06,Carroll,Mississippi,28015,119,11 +2020-06-07,Carroll,Mississippi,28015,119,11 +2020-06-08,Carroll,Mississippi,28015,120,11 +2020-06-09,Carroll,Mississippi,28015,121,11 +2020-06-10,Carroll,Mississippi,28015,123,11 +2020-06-11,Carroll,Mississippi,28015,123,11 +2020-06-12,Carroll,Mississippi,28015,122,11 +2020-06-13,Carroll,Mississippi,28015,122,11 +2020-06-14,Carroll,Mississippi,28015,122,11 +2020-06-15,Carroll,Mississippi,28015,122,11 +2020-06-16,Carroll,Mississippi,28015,122,11 +2020-06-17,Carroll,Mississippi,28015,122,11 +2020-06-18,Carroll,Mississippi,28015,122,11 +2020-06-19,Carroll,Mississippi,28015,122,11 +2020-06-20,Carroll,Mississippi,28015,122,11 +2020-06-21,Carroll,Mississippi,28015,122,11 +2020-06-22,Carroll,Mississippi,28015,133,11 +2020-06-23,Carroll,Mississippi,28015,135,11 +2020-06-24,Carroll,Mississippi,28015,138,11 +2020-06-25,Carroll,Mississippi,28015,141,11 +2020-06-26,Carroll,Mississippi,28015,145,11 +2020-06-27,Carroll,Mississippi,28015,147,11 +2020-06-28,Carroll,Mississippi,28015,147,11 +2020-06-29,Carroll,Mississippi,28015,149,11 +2020-06-30,Carroll,Mississippi,28015,157,11 +2020-07-01,Carroll,Mississippi,28015,160,11 +2020-07-02,Carroll,Mississippi,28015,161,11 +2020-07-03,Carroll,Mississippi,28015,164,11 +2020-07-04,Carroll,Mississippi,28015,164,11 +2020-07-05,Carroll,Mississippi,28015,165,11 +2020-07-06,Carroll,Mississippi,28015,166,11 +2020-07-07,Carroll,Mississippi,28015,168,11 +2020-07-08,Carroll,Mississippi,28015,171,11 +2020-07-09,Carroll,Mississippi,28015,173,11 +2020-03-22,Chickasaw,Mississippi,28017,1,0 +2020-03-23,Chickasaw,Mississippi,28017,3,0 +2020-03-24,Chickasaw,Mississippi,28017,6,0 +2020-03-25,Chickasaw,Mississippi,28017,6,0 +2020-03-26,Chickasaw,Mississippi,28017,7,0 +2020-03-27,Chickasaw,Mississippi,28017,9,0 +2020-03-28,Chickasaw,Mississippi,28017,10,0 +2020-03-29,Chickasaw,Mississippi,28017,10,0 +2020-03-30,Chickasaw,Mississippi,28017,12,0 +2020-03-31,Chickasaw,Mississippi,28017,13,0 +2020-04-01,Chickasaw,Mississippi,28017,15,0 +2020-04-02,Chickasaw,Mississippi,28017,14,1 +2020-04-03,Chickasaw,Mississippi,28017,15,2 +2020-04-04,Chickasaw,Mississippi,28017,15,2 +2020-04-05,Chickasaw,Mississippi,28017,15,2 +2020-04-06,Chickasaw,Mississippi,28017,15,2 +2020-04-07,Chickasaw,Mississippi,28017,15,2 +2020-04-08,Chickasaw,Mississippi,28017,17,2 +2020-04-09,Chickasaw,Mississippi,28017,20,2 +2020-04-10,Chickasaw,Mississippi,28017,21,2 +2020-04-11,Chickasaw,Mississippi,28017,22,2 +2020-04-12,Chickasaw,Mississippi,28017,24,2 +2020-04-13,Chickasaw,Mississippi,28017,30,2 +2020-04-14,Chickasaw,Mississippi,28017,32,2 +2020-04-15,Chickasaw,Mississippi,28017,33,2 +2020-04-16,Chickasaw,Mississippi,28017,37,2 +2020-04-17,Chickasaw,Mississippi,28017,39,2 +2020-04-18,Chickasaw,Mississippi,28017,40,2 +2020-04-19,Chickasaw,Mississippi,28017,43,2 +2020-04-20,Chickasaw,Mississippi,28017,45,4 +2020-04-21,Chickasaw,Mississippi,28017,51,4 +2020-04-22,Chickasaw,Mississippi,28017,51,4 +2020-04-23,Chickasaw,Mississippi,28017,52,4 +2020-04-24,Chickasaw,Mississippi,28017,53,4 +2020-04-25,Chickasaw,Mississippi,28017,56,4 +2020-04-26,Chickasaw,Mississippi,28017,63,5 +2020-04-27,Chickasaw,Mississippi,28017,64,5 +2020-04-28,Chickasaw,Mississippi,28017,67,6 +2020-04-29,Chickasaw,Mississippi,28017,68,7 +2020-04-30,Chickasaw,Mississippi,28017,68,7 +2020-05-01,Chickasaw,Mississippi,28017,75,8 +2020-05-02,Chickasaw,Mississippi,28017,76,8 +2020-05-03,Chickasaw,Mississippi,28017,76,8 +2020-05-04,Chickasaw,Mississippi,28017,78,8 +2020-05-05,Chickasaw,Mississippi,28017,80,9 +2020-05-06,Chickasaw,Mississippi,28017,83,9 +2020-05-07,Chickasaw,Mississippi,28017,84,9 +2020-05-08,Chickasaw,Mississippi,28017,88,10 +2020-05-09,Chickasaw,Mississippi,28017,92,10 +2020-05-10,Chickasaw,Mississippi,28017,92,10 +2020-05-11,Chickasaw,Mississippi,28017,93,10 +2020-05-12,Chickasaw,Mississippi,28017,94,10 +2020-05-13,Chickasaw,Mississippi,28017,95,10 +2020-05-14,Chickasaw,Mississippi,28017,110,10 +2020-05-15,Chickasaw,Mississippi,28017,114,11 +2020-05-16,Chickasaw,Mississippi,28017,114,12 +2020-05-17,Chickasaw,Mississippi,28017,115,12 +2020-05-18,Chickasaw,Mississippi,28017,116,12 +2020-05-19,Chickasaw,Mississippi,28017,116,12 +2020-05-20,Chickasaw,Mississippi,28017,117,12 +2020-05-21,Chickasaw,Mississippi,28017,122,12 +2020-05-22,Chickasaw,Mississippi,28017,125,12 +2020-05-23,Chickasaw,Mississippi,28017,125,12 +2020-05-24,Chickasaw,Mississippi,28017,126,12 +2020-05-25,Chickasaw,Mississippi,28017,127,12 +2020-05-26,Chickasaw,Mississippi,28017,127,12 +2020-05-27,Chickasaw,Mississippi,28017,128,12 +2020-05-28,Chickasaw,Mississippi,28017,130,12 +2020-05-29,Chickasaw,Mississippi,28017,132,12 +2020-05-30,Chickasaw,Mississippi,28017,133,12 +2020-05-31,Chickasaw,Mississippi,28017,135,12 +2020-06-01,Chickasaw,Mississippi,28017,137,12 +2020-06-02,Chickasaw,Mississippi,28017,137,14 +2020-06-03,Chickasaw,Mississippi,28017,140,14 +2020-06-04,Chickasaw,Mississippi,28017,140,14 +2020-06-05,Chickasaw,Mississippi,28017,143,14 +2020-06-06,Chickasaw,Mississippi,28017,146,14 +2020-06-07,Chickasaw,Mississippi,28017,147,14 +2020-06-08,Chickasaw,Mississippi,28017,153,15 +2020-06-09,Chickasaw,Mississippi,28017,154,15 +2020-06-10,Chickasaw,Mississippi,28017,158,15 +2020-06-11,Chickasaw,Mississippi,28017,158,15 +2020-06-12,Chickasaw,Mississippi,28017,163,15 +2020-06-13,Chickasaw,Mississippi,28017,165,16 +2020-06-14,Chickasaw,Mississippi,28017,166,16 +2020-06-15,Chickasaw,Mississippi,28017,168,16 +2020-06-16,Chickasaw,Mississippi,28017,168,16 +2020-06-17,Chickasaw,Mississippi,28017,177,16 +2020-06-18,Chickasaw,Mississippi,28017,177,16 +2020-06-19,Chickasaw,Mississippi,28017,177,16 +2020-06-20,Chickasaw,Mississippi,28017,177,16 +2020-06-21,Chickasaw,Mississippi,28017,177,16 +2020-06-22,Chickasaw,Mississippi,28017,196,17 +2020-06-23,Chickasaw,Mississippi,28017,202,17 +2020-06-24,Chickasaw,Mississippi,28017,203,18 +2020-06-25,Chickasaw,Mississippi,28017,217,18 +2020-06-26,Chickasaw,Mississippi,28017,227,18 +2020-06-27,Chickasaw,Mississippi,28017,232,18 +2020-06-28,Chickasaw,Mississippi,28017,235,18 +2020-06-29,Chickasaw,Mississippi,28017,246,18 +2020-06-30,Chickasaw,Mississippi,28017,254,18 +2020-07-01,Chickasaw,Mississippi,28017,259,18 +2020-07-02,Chickasaw,Mississippi,28017,264,18 +2020-07-03,Chickasaw,Mississippi,28017,269,18 +2020-07-04,Chickasaw,Mississippi,28017,276,18 +2020-07-05,Chickasaw,Mississippi,28017,277,18 +2020-07-06,Chickasaw,Mississippi,28017,279,18 +2020-07-07,Chickasaw,Mississippi,28017,287,19 +2020-07-08,Chickasaw,Mississippi,28017,291,19 +2020-07-09,Chickasaw,Mississippi,28017,292,19 +2020-03-24,Choctaw,Mississippi,28019,1,0 +2020-03-25,Choctaw,Mississippi,28019,3,0 +2020-03-26,Choctaw,Mississippi,28019,4,0 +2020-03-27,Choctaw,Mississippi,28019,4,0 +2020-03-28,Choctaw,Mississippi,28019,4,0 +2020-03-29,Choctaw,Mississippi,28019,5,0 +2020-03-30,Choctaw,Mississippi,28019,6,0 +2020-03-31,Choctaw,Mississippi,28019,6,0 +2020-04-01,Choctaw,Mississippi,28019,7,0 +2020-04-02,Choctaw,Mississippi,28019,7,0 +2020-04-03,Choctaw,Mississippi,28019,7,0 +2020-04-04,Choctaw,Mississippi,28019,8,0 +2020-04-05,Choctaw,Mississippi,28019,8,1 +2020-04-06,Choctaw,Mississippi,28019,8,1 +2020-04-07,Choctaw,Mississippi,28019,9,1 +2020-04-08,Choctaw,Mississippi,28019,9,1 +2020-04-09,Choctaw,Mississippi,28019,9,1 +2020-04-10,Choctaw,Mississippi,28019,9,1 +2020-04-11,Choctaw,Mississippi,28019,10,1 +2020-04-12,Choctaw,Mississippi,28019,10,1 +2020-04-13,Choctaw,Mississippi,28019,11,1 +2020-04-14,Choctaw,Mississippi,28019,11,1 +2020-04-15,Choctaw,Mississippi,28019,11,1 +2020-04-16,Choctaw,Mississippi,28019,11,1 +2020-04-17,Choctaw,Mississippi,28019,11,1 +2020-04-18,Choctaw,Mississippi,28019,11,1 +2020-04-19,Choctaw,Mississippi,28019,12,1 +2020-04-20,Choctaw,Mississippi,28019,13,1 +2020-04-21,Choctaw,Mississippi,28019,13,1 +2020-04-22,Choctaw,Mississippi,28019,13,1 +2020-04-23,Choctaw,Mississippi,28019,13,1 +2020-04-24,Choctaw,Mississippi,28019,13,1 +2020-04-25,Choctaw,Mississippi,28019,13,1 +2020-04-26,Choctaw,Mississippi,28019,13,1 +2020-04-27,Choctaw,Mississippi,28019,13,1 +2020-04-28,Choctaw,Mississippi,28019,13,1 +2020-04-29,Choctaw,Mississippi,28019,13,1 +2020-04-30,Choctaw,Mississippi,28019,13,1 +2020-05-01,Choctaw,Mississippi,28019,13,1 +2020-05-02,Choctaw,Mississippi,28019,13,1 +2020-05-03,Choctaw,Mississippi,28019,13,1 +2020-05-04,Choctaw,Mississippi,28019,14,1 +2020-05-05,Choctaw,Mississippi,28019,14,1 +2020-05-06,Choctaw,Mississippi,28019,14,2 +2020-05-07,Choctaw,Mississippi,28019,14,2 +2020-05-08,Choctaw,Mississippi,28019,15,2 +2020-05-09,Choctaw,Mississippi,28019,15,2 +2020-05-10,Choctaw,Mississippi,28019,16,2 +2020-05-11,Choctaw,Mississippi,28019,16,2 +2020-05-12,Choctaw,Mississippi,28019,16,2 +2020-05-13,Choctaw,Mississippi,28019,17,2 +2020-05-14,Choctaw,Mississippi,28019,18,2 +2020-05-15,Choctaw,Mississippi,28019,19,2 +2020-05-16,Choctaw,Mississippi,28019,20,2 +2020-05-17,Choctaw,Mississippi,28019,22,2 +2020-05-18,Choctaw,Mississippi,28019,23,2 +2020-05-19,Choctaw,Mississippi,28019,23,2 +2020-05-20,Choctaw,Mississippi,28019,24,2 +2020-05-21,Choctaw,Mississippi,28019,27,2 +2020-05-22,Choctaw,Mississippi,28019,29,2 +2020-05-23,Choctaw,Mississippi,28019,29,2 +2020-05-24,Choctaw,Mississippi,28019,29,2 +2020-05-25,Choctaw,Mississippi,28019,32,2 +2020-05-26,Choctaw,Mississippi,28019,33,2 +2020-05-27,Choctaw,Mississippi,28019,35,2 +2020-05-28,Choctaw,Mississippi,28019,34,2 +2020-05-29,Choctaw,Mississippi,28019,39,2 +2020-05-30,Choctaw,Mississippi,28019,43,2 +2020-05-31,Choctaw,Mississippi,28019,43,2 +2020-06-01,Choctaw,Mississippi,28019,48,2 +2020-06-02,Choctaw,Mississippi,28019,47,2 +2020-06-03,Choctaw,Mississippi,28019,48,2 +2020-06-04,Choctaw,Mississippi,28019,50,2 +2020-06-05,Choctaw,Mississippi,28019,52,2 +2020-06-06,Choctaw,Mississippi,28019,52,2 +2020-06-07,Choctaw,Mississippi,28019,53,2 +2020-06-08,Choctaw,Mississippi,28019,58,2 +2020-06-09,Choctaw,Mississippi,28019,62,2 +2020-06-10,Choctaw,Mississippi,28019,62,2 +2020-06-11,Choctaw,Mississippi,28019,62,2 +2020-06-12,Choctaw,Mississippi,28019,62,2 +2020-06-13,Choctaw,Mississippi,28019,65,2 +2020-06-14,Choctaw,Mississippi,28019,65,2 +2020-06-15,Choctaw,Mississippi,28019,65,2 +2020-06-16,Choctaw,Mississippi,28019,66,2 +2020-06-17,Choctaw,Mississippi,28019,71,2 +2020-06-18,Choctaw,Mississippi,28019,71,2 +2020-06-19,Choctaw,Mississippi,28019,71,2 +2020-06-20,Choctaw,Mississippi,28019,71,2 +2020-06-21,Choctaw,Mississippi,28019,71,2 +2020-06-22,Choctaw,Mississippi,28019,65,3 +2020-06-23,Choctaw,Mississippi,28019,65,3 +2020-06-24,Choctaw,Mississippi,28019,67,3 +2020-06-25,Choctaw,Mississippi,28019,68,3 +2020-06-26,Choctaw,Mississippi,28019,69,4 +2020-06-27,Choctaw,Mississippi,28019,70,4 +2020-06-28,Choctaw,Mississippi,28019,71,4 +2020-06-29,Choctaw,Mississippi,28019,71,4 +2020-06-30,Choctaw,Mississippi,28019,71,4 +2020-07-01,Choctaw,Mississippi,28019,71,4 +2020-07-02,Choctaw,Mississippi,28019,72,4 +2020-07-03,Choctaw,Mississippi,28019,72,4 +2020-07-04,Choctaw,Mississippi,28019,74,4 +2020-07-05,Choctaw,Mississippi,28019,74,4 +2020-07-06,Choctaw,Mississippi,28019,74,4 +2020-07-07,Choctaw,Mississippi,28019,75,4 +2020-07-08,Choctaw,Mississippi,28019,75,4 +2020-07-09,Choctaw,Mississippi,28019,75,4 +2020-03-29,Claiborne,Mississippi,28021,1,0 +2020-03-30,Claiborne,Mississippi,28021,1,0 +2020-03-31,Claiborne,Mississippi,28021,1,0 +2020-04-01,Claiborne,Mississippi,28021,1,0 +2020-04-02,Claiborne,Mississippi,28021,1,0 +2020-04-03,Claiborne,Mississippi,28021,1,0 +2020-04-04,Claiborne,Mississippi,28021,1,0 +2020-04-05,Claiborne,Mississippi,28021,1,0 +2020-04-06,Claiborne,Mississippi,28021,1,0 +2020-04-07,Claiborne,Mississippi,28021,3,0 +2020-04-08,Claiborne,Mississippi,28021,3,0 +2020-04-09,Claiborne,Mississippi,28021,3,0 +2020-04-10,Claiborne,Mississippi,28021,3,0 +2020-04-11,Claiborne,Mississippi,28021,5,0 +2020-04-12,Claiborne,Mississippi,28021,6,0 +2020-04-13,Claiborne,Mississippi,28021,7,0 +2020-04-14,Claiborne,Mississippi,28021,6,0 +2020-04-15,Claiborne,Mississippi,28021,8,0 +2020-04-16,Claiborne,Mississippi,28021,8,0 +2020-04-17,Claiborne,Mississippi,28021,8,0 +2020-04-18,Claiborne,Mississippi,28021,8,0 +2020-04-19,Claiborne,Mississippi,28021,10,0 +2020-04-20,Claiborne,Mississippi,28021,10,0 +2020-04-21,Claiborne,Mississippi,28021,10,0 +2020-04-22,Claiborne,Mississippi,28021,12,0 +2020-04-23,Claiborne,Mississippi,28021,12,0 +2020-04-24,Claiborne,Mississippi,28021,13,0 +2020-04-25,Claiborne,Mississippi,28021,18,0 +2020-04-26,Claiborne,Mississippi,28021,19,0 +2020-04-27,Claiborne,Mississippi,28021,19,0 +2020-04-28,Claiborne,Mississippi,28021,19,0 +2020-04-29,Claiborne,Mississippi,28021,20,0 +2020-04-30,Claiborne,Mississippi,28021,22,0 +2020-05-01,Claiborne,Mississippi,28021,23,0 +2020-05-02,Claiborne,Mississippi,28021,27,0 +2020-05-03,Claiborne,Mississippi,28021,28,0 +2020-05-04,Claiborne,Mississippi,28021,30,0 +2020-05-05,Claiborne,Mississippi,28021,33,0 +2020-05-06,Claiborne,Mississippi,28021,33,0 +2020-05-07,Claiborne,Mississippi,28021,33,0 +2020-05-08,Claiborne,Mississippi,28021,37,0 +2020-05-09,Claiborne,Mississippi,28021,41,0 +2020-05-10,Claiborne,Mississippi,28021,41,0 +2020-05-11,Claiborne,Mississippi,28021,41,0 +2020-05-12,Claiborne,Mississippi,28021,41,0 +2020-05-13,Claiborne,Mississippi,28021,41,0 +2020-05-14,Claiborne,Mississippi,28021,48,0 +2020-05-15,Claiborne,Mississippi,28021,48,0 +2020-05-16,Claiborne,Mississippi,28021,49,0 +2020-05-17,Claiborne,Mississippi,28021,49,0 +2020-05-18,Claiborne,Mississippi,28021,49,0 +2020-05-19,Claiborne,Mississippi,28021,51,1 +2020-05-20,Claiborne,Mississippi,28021,51,1 +2020-05-21,Claiborne,Mississippi,28021,51,1 +2020-05-22,Claiborne,Mississippi,28021,58,1 +2020-05-23,Claiborne,Mississippi,28021,57,1 +2020-05-24,Claiborne,Mississippi,28021,58,1 +2020-05-25,Claiborne,Mississippi,28021,58,2 +2020-05-26,Claiborne,Mississippi,28021,58,2 +2020-05-27,Claiborne,Mississippi,28021,64,2 +2020-05-28,Claiborne,Mississippi,28021,69,2 +2020-05-29,Claiborne,Mississippi,28021,72,2 +2020-05-30,Claiborne,Mississippi,28021,111,2 +2020-05-31,Claiborne,Mississippi,28021,110,2 +2020-06-01,Claiborne,Mississippi,28021,110,2 +2020-06-02,Claiborne,Mississippi,28021,112,2 +2020-06-03,Claiborne,Mississippi,28021,114,5 +2020-06-04,Claiborne,Mississippi,28021,115,5 +2020-06-05,Claiborne,Mississippi,28021,116,5 +2020-06-06,Claiborne,Mississippi,28021,119,5 +2020-06-07,Claiborne,Mississippi,28021,120,6 +2020-06-08,Claiborne,Mississippi,28021,127,7 +2020-06-09,Claiborne,Mississippi,28021,129,7 +2020-06-10,Claiborne,Mississippi,28021,131,7 +2020-06-11,Claiborne,Mississippi,28021,131,7 +2020-06-12,Claiborne,Mississippi,28021,138,7 +2020-06-13,Claiborne,Mississippi,28021,138,8 +2020-06-14,Claiborne,Mississippi,28021,138,8 +2020-06-15,Claiborne,Mississippi,28021,140,8 +2020-06-16,Claiborne,Mississippi,28021,142,9 +2020-06-17,Claiborne,Mississippi,28021,144,9 +2020-06-18,Claiborne,Mississippi,28021,144,9 +2020-06-19,Claiborne,Mississippi,28021,144,9 +2020-06-20,Claiborne,Mississippi,28021,144,9 +2020-06-21,Claiborne,Mississippi,28021,144,9 +2020-06-22,Claiborne,Mississippi,28021,168,9 +2020-06-23,Claiborne,Mississippi,28021,172,9 +2020-06-24,Claiborne,Mississippi,28021,180,9 +2020-06-25,Claiborne,Mississippi,28021,200,10 +2020-06-26,Claiborne,Mississippi,28021,202,10 +2020-06-27,Claiborne,Mississippi,28021,211,10 +2020-06-28,Claiborne,Mississippi,28021,212,10 +2020-06-29,Claiborne,Mississippi,28021,220,10 +2020-06-30,Claiborne,Mississippi,28021,228,10 +2020-07-01,Claiborne,Mississippi,28021,236,10 +2020-07-02,Claiborne,Mississippi,28021,239,10 +2020-07-03,Claiborne,Mississippi,28021,256,10 +2020-07-04,Claiborne,Mississippi,28021,270,10 +2020-07-05,Claiborne,Mississippi,28021,274,10 +2020-07-06,Claiborne,Mississippi,28021,279,10 +2020-07-07,Claiborne,Mississippi,28021,284,10 +2020-07-08,Claiborne,Mississippi,28021,289,10 +2020-07-09,Claiborne,Mississippi,28021,293,10 +2020-03-28,Clarke,Mississippi,28023,1,0 +2020-03-29,Clarke,Mississippi,28023,1,0 +2020-03-30,Clarke,Mississippi,28023,1,0 +2020-03-31,Clarke,Mississippi,28023,4,0 +2020-04-01,Clarke,Mississippi,28023,5,0 +2020-04-02,Clarke,Mississippi,28023,4,0 +2020-04-03,Clarke,Mississippi,28023,4,0 +2020-04-04,Clarke,Mississippi,28023,5,0 +2020-04-05,Clarke,Mississippi,28023,5,0 +2020-04-06,Clarke,Mississippi,28023,8,0 +2020-04-07,Clarke,Mississippi,28023,10,0 +2020-04-08,Clarke,Mississippi,28023,10,1 +2020-04-09,Clarke,Mississippi,28023,12,1 +2020-04-10,Clarke,Mississippi,28023,13,1 +2020-04-11,Clarke,Mississippi,28023,13,1 +2020-04-12,Clarke,Mississippi,28023,13,1 +2020-04-13,Clarke,Mississippi,28023,15,1 +2020-04-14,Clarke,Mississippi,28023,15,1 +2020-04-15,Clarke,Mississippi,28023,19,1 +2020-04-16,Clarke,Mississippi,28023,20,1 +2020-04-17,Clarke,Mississippi,28023,21,1 +2020-04-18,Clarke,Mississippi,28023,22,2 +2020-04-19,Clarke,Mississippi,28023,27,2 +2020-04-20,Clarke,Mississippi,28023,29,2 +2020-04-21,Clarke,Mississippi,28023,31,2 +2020-04-22,Clarke,Mississippi,28023,36,3 +2020-04-23,Clarke,Mississippi,28023,37,3 +2020-04-24,Clarke,Mississippi,28023,43,3 +2020-04-25,Clarke,Mississippi,28023,44,3 +2020-04-26,Clarke,Mississippi,28023,46,3 +2020-04-27,Clarke,Mississippi,28023,47,3 +2020-04-28,Clarke,Mississippi,28023,49,3 +2020-04-29,Clarke,Mississippi,28023,53,3 +2020-04-30,Clarke,Mississippi,28023,54,3 +2020-05-01,Clarke,Mississippi,28023,55,3 +2020-05-02,Clarke,Mississippi,28023,58,3 +2020-05-03,Clarke,Mississippi,28023,61,3 +2020-05-04,Clarke,Mississippi,28023,62,3 +2020-05-05,Clarke,Mississippi,28023,67,6 +2020-05-06,Clarke,Mississippi,28023,68,6 +2020-05-07,Clarke,Mississippi,28023,71,6 +2020-05-08,Clarke,Mississippi,28023,77,7 +2020-05-09,Clarke,Mississippi,28023,79,7 +2020-05-10,Clarke,Mississippi,28023,81,8 +2020-05-11,Clarke,Mississippi,28023,84,8 +2020-05-12,Clarke,Mississippi,28023,87,9 +2020-05-13,Clarke,Mississippi,28023,90,9 +2020-05-14,Clarke,Mississippi,28023,97,11 +2020-05-15,Clarke,Mississippi,28023,97,11 +2020-05-16,Clarke,Mississippi,28023,98,12 +2020-05-17,Clarke,Mississippi,28023,101,12 +2020-05-18,Clarke,Mississippi,28023,102,13 +2020-05-19,Clarke,Mississippi,28023,113,14 +2020-05-20,Clarke,Mississippi,28023,120,16 +2020-05-21,Clarke,Mississippi,28023,119,16 +2020-05-22,Clarke,Mississippi,28023,123,16 +2020-05-23,Clarke,Mississippi,28023,124,16 +2020-05-24,Clarke,Mississippi,28023,126,16 +2020-05-25,Clarke,Mississippi,28023,131,16 +2020-05-26,Clarke,Mississippi,28023,135,17 +2020-05-27,Clarke,Mississippi,28023,135,17 +2020-05-28,Clarke,Mississippi,28023,138,18 +2020-05-29,Clarke,Mississippi,28023,139,18 +2020-05-30,Clarke,Mississippi,28023,143,18 +2020-05-31,Clarke,Mississippi,28023,144,18 +2020-06-01,Clarke,Mississippi,28023,148,19 +2020-06-02,Clarke,Mississippi,28023,154,19 +2020-06-03,Clarke,Mississippi,28023,155,19 +2020-06-04,Clarke,Mississippi,28023,156,19 +2020-06-05,Clarke,Mississippi,28023,156,19 +2020-06-06,Clarke,Mississippi,28023,157,19 +2020-06-07,Clarke,Mississippi,28023,159,19 +2020-06-08,Clarke,Mississippi,28023,163,21 +2020-06-09,Clarke,Mississippi,28023,163,21 +2020-06-10,Clarke,Mississippi,28023,164,21 +2020-06-11,Clarke,Mississippi,28023,164,21 +2020-06-12,Clarke,Mississippi,28023,165,21 +2020-06-13,Clarke,Mississippi,28023,165,21 +2020-06-14,Clarke,Mississippi,28023,166,21 +2020-06-15,Clarke,Mississippi,28023,166,21 +2020-06-16,Clarke,Mississippi,28023,166,21 +2020-06-17,Clarke,Mississippi,28023,168,21 +2020-06-18,Clarke,Mississippi,28023,168,21 +2020-06-19,Clarke,Mississippi,28023,168,21 +2020-06-20,Clarke,Mississippi,28023,168,21 +2020-06-21,Clarke,Mississippi,28023,168,21 +2020-06-22,Clarke,Mississippi,28023,182,21 +2020-06-23,Clarke,Mississippi,28023,183,21 +2020-06-24,Clarke,Mississippi,28023,190,22 +2020-06-25,Clarke,Mississippi,28023,193,22 +2020-06-26,Clarke,Mississippi,28023,193,22 +2020-06-27,Clarke,Mississippi,28023,194,22 +2020-06-28,Clarke,Mississippi,28023,196,22 +2020-06-29,Clarke,Mississippi,28023,196,24 +2020-06-30,Clarke,Mississippi,28023,198,24 +2020-07-01,Clarke,Mississippi,28023,201,24 +2020-07-02,Clarke,Mississippi,28023,204,24 +2020-07-03,Clarke,Mississippi,28023,205,24 +2020-07-04,Clarke,Mississippi,28023,206,24 +2020-07-05,Clarke,Mississippi,28023,207,24 +2020-07-06,Clarke,Mississippi,28023,207,24 +2020-07-07,Clarke,Mississippi,28023,210,25 +2020-07-08,Clarke,Mississippi,28023,211,25 +2020-07-09,Clarke,Mississippi,28023,214,25 +2020-03-21,Clay,Mississippi,28025,1,0 +2020-03-22,Clay,Mississippi,28025,1,0 +2020-03-23,Clay,Mississippi,28025,1,0 +2020-03-24,Clay,Mississippi,28025,1,0 +2020-03-25,Clay,Mississippi,28025,1,0 +2020-03-26,Clay,Mississippi,28025,1,0 +2020-03-27,Clay,Mississippi,28025,2,0 +2020-03-28,Clay,Mississippi,28025,2,0 +2020-03-29,Clay,Mississippi,28025,2,0 +2020-03-30,Clay,Mississippi,28025,4,0 +2020-03-31,Clay,Mississippi,28025,4,0 +2020-04-01,Clay,Mississippi,28025,5,0 +2020-04-02,Clay,Mississippi,28025,7,0 +2020-04-03,Clay,Mississippi,28025,7,0 +2020-04-04,Clay,Mississippi,28025,7,0 +2020-04-05,Clay,Mississippi,28025,7,0 +2020-04-06,Clay,Mississippi,28025,9,0 +2020-04-07,Clay,Mississippi,28025,10,0 +2020-04-08,Clay,Mississippi,28025,11,0 +2020-04-09,Clay,Mississippi,28025,14,0 +2020-04-10,Clay,Mississippi,28025,17,0 +2020-04-11,Clay,Mississippi,28025,17,0 +2020-04-12,Clay,Mississippi,28025,18,0 +2020-04-13,Clay,Mississippi,28025,20,0 +2020-04-14,Clay,Mississippi,28025,20,0 +2020-04-15,Clay,Mississippi,28025,21,0 +2020-04-16,Clay,Mississippi,28025,21,0 +2020-04-17,Clay,Mississippi,28025,22,1 +2020-04-18,Clay,Mississippi,28025,24,1 +2020-04-19,Clay,Mississippi,28025,25,1 +2020-04-20,Clay,Mississippi,28025,26,1 +2020-04-21,Clay,Mississippi,28025,27,1 +2020-04-22,Clay,Mississippi,28025,27,2 +2020-04-23,Clay,Mississippi,28025,28,2 +2020-04-24,Clay,Mississippi,28025,29,2 +2020-04-25,Clay,Mississippi,28025,32,2 +2020-04-26,Clay,Mississippi,28025,31,2 +2020-04-27,Clay,Mississippi,28025,31,2 +2020-04-28,Clay,Mississippi,28025,33,2 +2020-04-29,Clay,Mississippi,28025,34,2 +2020-04-30,Clay,Mississippi,28025,40,2 +2020-05-01,Clay,Mississippi,28025,42,2 +2020-05-02,Clay,Mississippi,28025,47,2 +2020-05-03,Clay,Mississippi,28025,48,2 +2020-05-04,Clay,Mississippi,28025,52,2 +2020-05-05,Clay,Mississippi,28025,57,2 +2020-05-06,Clay,Mississippi,28025,58,3 +2020-05-07,Clay,Mississippi,28025,63,3 +2020-05-08,Clay,Mississippi,28025,64,3 +2020-05-09,Clay,Mississippi,28025,65,3 +2020-05-10,Clay,Mississippi,28025,66,3 +2020-05-11,Clay,Mississippi,28025,66,3 +2020-05-12,Clay,Mississippi,28025,68,3 +2020-05-13,Clay,Mississippi,28025,72,3 +2020-05-14,Clay,Mississippi,28025,75,3 +2020-05-15,Clay,Mississippi,28025,78,3 +2020-05-16,Clay,Mississippi,28025,79,3 +2020-05-17,Clay,Mississippi,28025,79,3 +2020-05-18,Clay,Mississippi,28025,79,3 +2020-05-19,Clay,Mississippi,28025,86,3 +2020-05-20,Clay,Mississippi,28025,86,3 +2020-05-21,Clay,Mississippi,28025,90,3 +2020-05-22,Clay,Mississippi,28025,95,3 +2020-05-23,Clay,Mississippi,28025,96,3 +2020-05-24,Clay,Mississippi,28025,99,3 +2020-05-25,Clay,Mississippi,28025,99,3 +2020-05-26,Clay,Mississippi,28025,101,3 +2020-05-27,Clay,Mississippi,28025,104,3 +2020-05-28,Clay,Mississippi,28025,108,4 +2020-05-29,Clay,Mississippi,28025,111,4 +2020-05-30,Clay,Mississippi,28025,112,4 +2020-05-31,Clay,Mississippi,28025,112,4 +2020-06-01,Clay,Mississippi,28025,114,4 +2020-06-02,Clay,Mississippi,28025,115,4 +2020-06-03,Clay,Mississippi,28025,118,4 +2020-06-04,Clay,Mississippi,28025,125,4 +2020-06-05,Clay,Mississippi,28025,125,4 +2020-06-06,Clay,Mississippi,28025,130,4 +2020-06-07,Clay,Mississippi,28025,132,4 +2020-06-08,Clay,Mississippi,28025,134,4 +2020-06-09,Clay,Mississippi,28025,137,4 +2020-06-10,Clay,Mississippi,28025,145,5 +2020-06-11,Clay,Mississippi,28025,145,5 +2020-06-12,Clay,Mississippi,28025,169,5 +2020-06-13,Clay,Mississippi,28025,173,6 +2020-06-14,Clay,Mississippi,28025,174,6 +2020-06-15,Clay,Mississippi,28025,174,6 +2020-06-16,Clay,Mississippi,28025,174,6 +2020-06-17,Clay,Mississippi,28025,185,6 +2020-06-18,Clay,Mississippi,28025,185,6 +2020-06-19,Clay,Mississippi,28025,185,6 +2020-06-20,Clay,Mississippi,28025,185,6 +2020-06-21,Clay,Mississippi,28025,185,6 +2020-06-22,Clay,Mississippi,28025,210,6 +2020-06-23,Clay,Mississippi,28025,218,6 +2020-06-24,Clay,Mississippi,28025,222,7 +2020-06-25,Clay,Mississippi,28025,229,7 +2020-06-26,Clay,Mississippi,28025,233,7 +2020-06-27,Clay,Mississippi,28025,234,7 +2020-06-28,Clay,Mississippi,28025,235,7 +2020-06-29,Clay,Mississippi,28025,237,8 +2020-06-30,Clay,Mississippi,28025,240,10 +2020-07-01,Clay,Mississippi,28025,242,10 +2020-07-02,Clay,Mississippi,28025,244,10 +2020-07-03,Clay,Mississippi,28025,247,10 +2020-07-04,Clay,Mississippi,28025,249,10 +2020-07-05,Clay,Mississippi,28025,250,10 +2020-07-06,Clay,Mississippi,28025,251,11 +2020-07-07,Clay,Mississippi,28025,249,11 +2020-07-08,Clay,Mississippi,28025,251,11 +2020-07-09,Clay,Mississippi,28025,255,11 +2020-03-18,Coahoma,Mississippi,28027,2,0 +2020-03-19,Coahoma,Mississippi,28027,2,0 +2020-03-20,Coahoma,Mississippi,28027,3,0 +2020-03-21,Coahoma,Mississippi,28027,5,0 +2020-03-22,Coahoma,Mississippi,28027,7,0 +2020-03-23,Coahoma,Mississippi,28027,8,0 +2020-03-24,Coahoma,Mississippi,28027,11,0 +2020-03-25,Coahoma,Mississippi,28027,11,0 +2020-03-26,Coahoma,Mississippi,28027,17,0 +2020-03-27,Coahoma,Mississippi,28027,18,0 +2020-03-28,Coahoma,Mississippi,28027,18,0 +2020-03-29,Coahoma,Mississippi,28027,18,0 +2020-03-30,Coahoma,Mississippi,28027,20,0 +2020-03-31,Coahoma,Mississippi,28027,21,0 +2020-04-01,Coahoma,Mississippi,28027,22,0 +2020-04-02,Coahoma,Mississippi,28027,23,0 +2020-04-03,Coahoma,Mississippi,28027,26,0 +2020-04-04,Coahoma,Mississippi,28027,27,1 +2020-04-05,Coahoma,Mississippi,28027,28,1 +2020-04-06,Coahoma,Mississippi,28027,29,1 +2020-04-07,Coahoma,Mississippi,28027,30,1 +2020-04-08,Coahoma,Mississippi,28027,32,1 +2020-04-09,Coahoma,Mississippi,28027,35,1 +2020-04-10,Coahoma,Mississippi,28027,37,1 +2020-04-11,Coahoma,Mississippi,28027,38,1 +2020-04-12,Coahoma,Mississippi,28027,38,1 +2020-04-13,Coahoma,Mississippi,28027,38,1 +2020-04-14,Coahoma,Mississippi,28027,39,1 +2020-04-15,Coahoma,Mississippi,28027,43,1 +2020-04-16,Coahoma,Mississippi,28027,45,1 +2020-04-17,Coahoma,Mississippi,28027,45,1 +2020-04-18,Coahoma,Mississippi,28027,46,1 +2020-04-19,Coahoma,Mississippi,28027,48,2 +2020-04-20,Coahoma,Mississippi,28027,49,2 +2020-04-21,Coahoma,Mississippi,28027,52,2 +2020-04-22,Coahoma,Mississippi,28027,53,2 +2020-04-23,Coahoma,Mississippi,28027,53,2 +2020-04-24,Coahoma,Mississippi,28027,54,2 +2020-04-25,Coahoma,Mississippi,28027,54,2 +2020-04-26,Coahoma,Mississippi,28027,56,2 +2020-04-27,Coahoma,Mississippi,28027,58,2 +2020-04-28,Coahoma,Mississippi,28027,60,3 +2020-04-29,Coahoma,Mississippi,28027,61,3 +2020-04-30,Coahoma,Mississippi,28027,61,3 +2020-05-01,Coahoma,Mississippi,28027,64,3 +2020-05-02,Coahoma,Mississippi,28027,66,3 +2020-05-03,Coahoma,Mississippi,28027,69,3 +2020-05-04,Coahoma,Mississippi,28027,70,3 +2020-05-05,Coahoma,Mississippi,28027,70,3 +2020-05-06,Coahoma,Mississippi,28027,70,3 +2020-05-07,Coahoma,Mississippi,28027,70,3 +2020-05-08,Coahoma,Mississippi,28027,71,3 +2020-05-09,Coahoma,Mississippi,28027,71,3 +2020-05-10,Coahoma,Mississippi,28027,71,3 +2020-05-11,Coahoma,Mississippi,28027,71,3 +2020-05-12,Coahoma,Mississippi,28027,72,3 +2020-05-13,Coahoma,Mississippi,28027,72,3 +2020-05-14,Coahoma,Mississippi,28027,73,3 +2020-05-15,Coahoma,Mississippi,28027,75,3 +2020-05-16,Coahoma,Mississippi,28027,76,3 +2020-05-17,Coahoma,Mississippi,28027,76,3 +2020-05-18,Coahoma,Mississippi,28027,79,3 +2020-05-19,Coahoma,Mississippi,28027,85,3 +2020-05-20,Coahoma,Mississippi,28027,86,3 +2020-05-21,Coahoma,Mississippi,28027,86,3 +2020-05-22,Coahoma,Mississippi,28027,92,3 +2020-05-23,Coahoma,Mississippi,28027,96,3 +2020-05-24,Coahoma,Mississippi,28027,98,3 +2020-05-25,Coahoma,Mississippi,28027,106,3 +2020-05-26,Coahoma,Mississippi,28027,108,3 +2020-05-27,Coahoma,Mississippi,28027,113,3 +2020-05-28,Coahoma,Mississippi,28027,114,4 +2020-05-29,Coahoma,Mississippi,28027,120,4 +2020-05-30,Coahoma,Mississippi,28027,121,4 +2020-05-31,Coahoma,Mississippi,28027,125,4 +2020-06-01,Coahoma,Mississippi,28027,125,4 +2020-06-02,Coahoma,Mississippi,28027,127,4 +2020-06-03,Coahoma,Mississippi,28027,128,4 +2020-06-04,Coahoma,Mississippi,28027,131,4 +2020-06-05,Coahoma,Mississippi,28027,132,4 +2020-06-06,Coahoma,Mississippi,28027,132,4 +2020-06-07,Coahoma,Mississippi,28027,134,4 +2020-06-08,Coahoma,Mississippi,28027,139,4 +2020-06-09,Coahoma,Mississippi,28027,141,4 +2020-06-10,Coahoma,Mississippi,28027,141,4 +2020-06-11,Coahoma,Mississippi,28027,141,4 +2020-06-12,Coahoma,Mississippi,28027,145,4 +2020-06-13,Coahoma,Mississippi,28027,146,4 +2020-06-14,Coahoma,Mississippi,28027,147,4 +2020-06-15,Coahoma,Mississippi,28027,150,4 +2020-06-16,Coahoma,Mississippi,28027,153,6 +2020-06-17,Coahoma,Mississippi,28027,156,6 +2020-06-18,Coahoma,Mississippi,28027,156,6 +2020-06-19,Coahoma,Mississippi,28027,156,6 +2020-06-20,Coahoma,Mississippi,28027,156,6 +2020-06-21,Coahoma,Mississippi,28027,156,6 +2020-06-22,Coahoma,Mississippi,28027,161,6 +2020-06-23,Coahoma,Mississippi,28027,160,6 +2020-06-24,Coahoma,Mississippi,28027,167,6 +2020-06-25,Coahoma,Mississippi,28027,175,6 +2020-06-26,Coahoma,Mississippi,28027,176,6 +2020-06-27,Coahoma,Mississippi,28027,177,6 +2020-06-28,Coahoma,Mississippi,28027,178,6 +2020-06-29,Coahoma,Mississippi,28027,180,6 +2020-06-30,Coahoma,Mississippi,28027,183,6 +2020-07-01,Coahoma,Mississippi,28027,186,6 +2020-07-02,Coahoma,Mississippi,28027,190,6 +2020-07-03,Coahoma,Mississippi,28027,191,6 +2020-07-04,Coahoma,Mississippi,28027,199,6 +2020-07-05,Coahoma,Mississippi,28027,201,6 +2020-07-06,Coahoma,Mississippi,28027,201,6 +2020-07-07,Coahoma,Mississippi,28027,205,6 +2020-07-08,Coahoma,Mississippi,28027,213,6 +2020-07-09,Coahoma,Mississippi,28027,215,6 +2020-03-13,Copiah,Mississippi,28029,1,0 +2020-03-14,Copiah,Mississippi,28029,1,0 +2020-03-15,Copiah,Mississippi,28029,2,0 +2020-03-16,Copiah,Mississippi,28029,2,0 +2020-03-17,Copiah,Mississippi,28029,2,0 +2020-03-18,Copiah,Mississippi,28029,2,0 +2020-03-19,Copiah,Mississippi,28029,2,0 +2020-03-20,Copiah,Mississippi,28029,2,0 +2020-03-21,Copiah,Mississippi,28029,2,0 +2020-03-22,Copiah,Mississippi,28029,4,0 +2020-03-23,Copiah,Mississippi,28029,4,0 +2020-03-24,Copiah,Mississippi,28029,5,0 +2020-03-25,Copiah,Mississippi,28029,6,0 +2020-03-26,Copiah,Mississippi,28029,8,0 +2020-03-27,Copiah,Mississippi,28029,8,0 +2020-03-28,Copiah,Mississippi,28029,8,0 +2020-03-29,Copiah,Mississippi,28029,8,0 +2020-03-30,Copiah,Mississippi,28029,8,0 +2020-03-31,Copiah,Mississippi,28029,9,0 +2020-04-01,Copiah,Mississippi,28029,9,0 +2020-04-02,Copiah,Mississippi,28029,10,0 +2020-04-03,Copiah,Mississippi,28029,11,0 +2020-04-04,Copiah,Mississippi,28029,12,0 +2020-04-05,Copiah,Mississippi,28029,16,0 +2020-04-06,Copiah,Mississippi,28029,16,0 +2020-04-07,Copiah,Mississippi,28029,17,0 +2020-04-08,Copiah,Mississippi,28029,19,0 +2020-04-09,Copiah,Mississippi,28029,27,0 +2020-04-10,Copiah,Mississippi,28029,30,0 +2020-04-11,Copiah,Mississippi,28029,28,0 +2020-04-12,Copiah,Mississippi,28029,31,0 +2020-04-13,Copiah,Mississippi,28029,31,0 +2020-04-14,Copiah,Mississippi,28029,31,0 +2020-04-15,Copiah,Mississippi,28029,35,0 +2020-04-16,Copiah,Mississippi,28029,39,1 +2020-04-17,Copiah,Mississippi,28029,40,1 +2020-04-18,Copiah,Mississippi,28029,41,1 +2020-04-19,Copiah,Mississippi,28029,46,1 +2020-04-20,Copiah,Mississippi,28029,46,1 +2020-04-21,Copiah,Mississippi,28029,51,1 +2020-04-22,Copiah,Mississippi,28029,52,1 +2020-04-23,Copiah,Mississippi,28029,59,1 +2020-04-24,Copiah,Mississippi,28029,65,1 +2020-04-25,Copiah,Mississippi,28029,68,1 +2020-04-26,Copiah,Mississippi,28029,71,1 +2020-04-27,Copiah,Mississippi,28029,79,1 +2020-04-28,Copiah,Mississippi,28029,83,1 +2020-04-29,Copiah,Mississippi,28029,88,1 +2020-04-30,Copiah,Mississippi,28029,96,1 +2020-05-01,Copiah,Mississippi,28029,108,1 +2020-05-02,Copiah,Mississippi,28029,114,1 +2020-05-03,Copiah,Mississippi,28029,116,1 +2020-05-04,Copiah,Mississippi,28029,124,1 +2020-05-05,Copiah,Mississippi,28029,126,1 +2020-05-06,Copiah,Mississippi,28029,137,1 +2020-05-07,Copiah,Mississippi,28029,141,1 +2020-05-08,Copiah,Mississippi,28029,152,2 +2020-05-09,Copiah,Mississippi,28029,157,1 +2020-05-10,Copiah,Mississippi,28029,162,1 +2020-05-11,Copiah,Mississippi,28029,163,1 +2020-05-12,Copiah,Mississippi,28029,165,1 +2020-05-13,Copiah,Mississippi,28029,170,1 +2020-05-14,Copiah,Mississippi,28029,191,1 +2020-05-15,Copiah,Mississippi,28029,190,1 +2020-05-16,Copiah,Mississippi,28029,195,2 +2020-05-17,Copiah,Mississippi,28029,201,2 +2020-05-18,Copiah,Mississippi,28029,204,2 +2020-05-19,Copiah,Mississippi,28029,207,3 +2020-05-20,Copiah,Mississippi,28029,211,4 +2020-05-21,Copiah,Mississippi,28029,228,4 +2020-05-22,Copiah,Mississippi,28029,259,4 +2020-05-23,Copiah,Mississippi,28029,273,4 +2020-05-24,Copiah,Mississippi,28029,278,4 +2020-05-25,Copiah,Mississippi,28029,284,4 +2020-05-26,Copiah,Mississippi,28029,284,4 +2020-05-27,Copiah,Mississippi,28029,285,4 +2020-05-28,Copiah,Mississippi,28029,290,4 +2020-05-29,Copiah,Mississippi,28029,298,4 +2020-05-30,Copiah,Mississippi,28029,310,4 +2020-05-31,Copiah,Mississippi,28029,312,4 +2020-06-01,Copiah,Mississippi,28029,313,4 +2020-06-02,Copiah,Mississippi,28029,315,4 +2020-06-03,Copiah,Mississippi,28029,325,4 +2020-06-04,Copiah,Mississippi,28029,329,4 +2020-06-05,Copiah,Mississippi,28029,334,4 +2020-06-06,Copiah,Mississippi,28029,337,4 +2020-06-07,Copiah,Mississippi,28029,341,4 +2020-06-08,Copiah,Mississippi,28029,357,4 +2020-06-09,Copiah,Mississippi,28029,360,4 +2020-06-10,Copiah,Mississippi,28029,366,5 +2020-06-11,Copiah,Mississippi,28029,366,5 +2020-06-12,Copiah,Mississippi,28029,388,6 +2020-06-13,Copiah,Mississippi,28029,397,6 +2020-06-14,Copiah,Mississippi,28029,405,6 +2020-06-15,Copiah,Mississippi,28029,412,6 +2020-06-16,Copiah,Mississippi,28029,418,7 +2020-06-17,Copiah,Mississippi,28029,425,7 +2020-06-18,Copiah,Mississippi,28029,425,7 +2020-06-19,Copiah,Mississippi,28029,425,7 +2020-06-20,Copiah,Mississippi,28029,425,7 +2020-06-21,Copiah,Mississippi,28029,425,7 +2020-06-22,Copiah,Mississippi,28029,476,11 +2020-06-23,Copiah,Mississippi,28029,492,11 +2020-06-24,Copiah,Mississippi,28029,503,12 +2020-06-25,Copiah,Mississippi,28029,528,12 +2020-06-26,Copiah,Mississippi,28029,535,12 +2020-06-27,Copiah,Mississippi,28029,536,13 +2020-06-28,Copiah,Mississippi,28029,538,13 +2020-06-29,Copiah,Mississippi,28029,558,13 +2020-06-30,Copiah,Mississippi,28029,562,14 +2020-07-01,Copiah,Mississippi,28029,566,15 +2020-07-02,Copiah,Mississippi,28029,580,16 +2020-07-03,Copiah,Mississippi,28029,592,16 +2020-07-04,Copiah,Mississippi,28029,602,16 +2020-07-05,Copiah,Mississippi,28029,602,15 +2020-07-06,Copiah,Mississippi,28029,607,15 +2020-07-07,Copiah,Mississippi,28029,620,15 +2020-07-08,Copiah,Mississippi,28029,627,15 +2020-07-09,Copiah,Mississippi,28029,631,15 +2020-03-28,Covington,Mississippi,28031,1,0 +2020-03-29,Covington,Mississippi,28031,1,0 +2020-03-30,Covington,Mississippi,28031,2,0 +2020-03-31,Covington,Mississippi,28031,2,0 +2020-04-01,Covington,Mississippi,28031,3,0 +2020-04-02,Covington,Mississippi,28031,3,0 +2020-04-03,Covington,Mississippi,28031,4,0 +2020-04-04,Covington,Mississippi,28031,4,0 +2020-04-05,Covington,Mississippi,28031,6,0 +2020-04-06,Covington,Mississippi,28031,6,0 +2020-04-07,Covington,Mississippi,28031,7,0 +2020-04-08,Covington,Mississippi,28031,7,0 +2020-04-09,Covington,Mississippi,28031,7,0 +2020-04-10,Covington,Mississippi,28031,8,0 +2020-04-11,Covington,Mississippi,28031,12,0 +2020-04-12,Covington,Mississippi,28031,14,0 +2020-04-13,Covington,Mississippi,28031,15,0 +2020-04-14,Covington,Mississippi,28031,15,0 +2020-04-15,Covington,Mississippi,28031,19,0 +2020-04-16,Covington,Mississippi,28031,19,0 +2020-04-17,Covington,Mississippi,28031,22,0 +2020-04-18,Covington,Mississippi,28031,28,0 +2020-04-19,Covington,Mississippi,28031,29,0 +2020-04-20,Covington,Mississippi,28031,33,0 +2020-04-21,Covington,Mississippi,28031,37,0 +2020-04-22,Covington,Mississippi,28031,38,0 +2020-04-23,Covington,Mississippi,28031,40,0 +2020-04-24,Covington,Mississippi,28031,43,0 +2020-04-25,Covington,Mississippi,28031,45,0 +2020-04-26,Covington,Mississippi,28031,50,0 +2020-04-27,Covington,Mississippi,28031,51,0 +2020-04-28,Covington,Mississippi,28031,54,0 +2020-04-29,Covington,Mississippi,28031,55,0 +2020-04-30,Covington,Mississippi,28031,62,0 +2020-05-01,Covington,Mississippi,28031,67,0 +2020-05-02,Covington,Mississippi,28031,67,0 +2020-05-03,Covington,Mississippi,28031,66,0 +2020-05-04,Covington,Mississippi,28031,74,0 +2020-05-05,Covington,Mississippi,28031,84,0 +2020-05-06,Covington,Mississippi,28031,82,0 +2020-05-07,Covington,Mississippi,28031,84,0 +2020-05-08,Covington,Mississippi,28031,88,1 +2020-05-09,Covington,Mississippi,28031,89,1 +2020-05-10,Covington,Mississippi,28031,90,1 +2020-05-11,Covington,Mississippi,28031,93,1 +2020-05-12,Covington,Mississippi,28031,100,1 +2020-05-13,Covington,Mississippi,28031,99,1 +2020-05-14,Covington,Mississippi,28031,101,1 +2020-05-15,Covington,Mississippi,28031,104,0 +2020-05-16,Covington,Mississippi,28031,105,0 +2020-05-17,Covington,Mississippi,28031,105,0 +2020-05-18,Covington,Mississippi,28031,108,0 +2020-05-19,Covington,Mississippi,28031,110,1 +2020-05-20,Covington,Mississippi,28031,117,1 +2020-05-21,Covington,Mississippi,28031,123,1 +2020-05-22,Covington,Mississippi,28031,125,1 +2020-05-23,Covington,Mississippi,28031,127,1 +2020-05-24,Covington,Mississippi,28031,127,1 +2020-05-25,Covington,Mississippi,28031,131,1 +2020-05-26,Covington,Mississippi,28031,140,1 +2020-05-27,Covington,Mississippi,28031,141,1 +2020-05-28,Covington,Mississippi,28031,143,1 +2020-05-29,Covington,Mississippi,28031,159,2 +2020-05-30,Covington,Mississippi,28031,165,2 +2020-05-31,Covington,Mississippi,28031,164,2 +2020-06-01,Covington,Mississippi,28031,173,2 +2020-06-02,Covington,Mississippi,28031,173,2 +2020-06-03,Covington,Mississippi,28031,177,2 +2020-06-04,Covington,Mississippi,28031,179,2 +2020-06-05,Covington,Mississippi,28031,183,2 +2020-06-06,Covington,Mississippi,28031,186,2 +2020-06-07,Covington,Mississippi,28031,188,2 +2020-06-08,Covington,Mississippi,28031,190,2 +2020-06-09,Covington,Mississippi,28031,189,2 +2020-06-10,Covington,Mississippi,28031,200,2 +2020-06-11,Covington,Mississippi,28031,200,2 +2020-06-12,Covington,Mississippi,28031,201,2 +2020-06-13,Covington,Mississippi,28031,203,3 +2020-06-14,Covington,Mississippi,28031,205,3 +2020-06-15,Covington,Mississippi,28031,206,3 +2020-06-16,Covington,Mississippi,28031,209,3 +2020-06-17,Covington,Mississippi,28031,213,3 +2020-06-18,Covington,Mississippi,28031,213,3 +2020-06-19,Covington,Mississippi,28031,213,3 +2020-06-20,Covington,Mississippi,28031,213,3 +2020-06-21,Covington,Mississippi,28031,213,3 +2020-06-22,Covington,Mississippi,28031,238,3 +2020-06-23,Covington,Mississippi,28031,246,5 +2020-06-24,Covington,Mississippi,28031,248,5 +2020-06-25,Covington,Mississippi,28031,253,5 +2020-06-26,Covington,Mississippi,28031,256,5 +2020-06-27,Covington,Mississippi,28031,264,5 +2020-06-28,Covington,Mississippi,28031,268,5 +2020-06-29,Covington,Mississippi,28031,269,5 +2020-06-30,Covington,Mississippi,28031,290,5 +2020-07-01,Covington,Mississippi,28031,302,5 +2020-07-02,Covington,Mississippi,28031,317,5 +2020-07-03,Covington,Mississippi,28031,334,5 +2020-07-04,Covington,Mississippi,28031,347,5 +2020-07-05,Covington,Mississippi,28031,356,5 +2020-07-06,Covington,Mississippi,28031,359,5 +2020-07-07,Covington,Mississippi,28031,375,5 +2020-07-08,Covington,Mississippi,28031,396,5 +2020-07-09,Covington,Mississippi,28031,419,5 +2020-03-18,DeSoto,Mississippi,28033,1,0 +2020-03-19,DeSoto,Mississippi,28033,2,0 +2020-03-20,DeSoto,Mississippi,28033,4,0 +2020-03-21,DeSoto,Mississippi,28033,13,0 +2020-03-22,DeSoto,Mississippi,28033,18,0 +2020-03-23,DeSoto,Mississippi,28033,23,0 +2020-03-24,DeSoto,Mississippi,28033,29,0 +2020-03-25,DeSoto,Mississippi,28033,36,0 +2020-03-26,DeSoto,Mississippi,28033,49,0 +2020-03-27,DeSoto,Mississippi,28033,63,0 +2020-03-28,DeSoto,Mississippi,28033,65,1 +2020-03-29,DeSoto,Mississippi,28033,71,1 +2020-03-30,DeSoto,Mississippi,28033,77,1 +2020-03-31,DeSoto,Mississippi,28033,84,1 +2020-04-01,DeSoto,Mississippi,28033,94,1 +2020-04-02,DeSoto,Mississippi,28033,103,1 +2020-04-03,DeSoto,Mississippi,28033,111,1 +2020-04-04,DeSoto,Mississippi,28033,118,1 +2020-04-05,DeSoto,Mississippi,28033,132,1 +2020-04-06,DeSoto,Mississippi,28033,136,1 +2020-04-07,DeSoto,Mississippi,28033,140,1 +2020-04-08,DeSoto,Mississippi,28033,144,1 +2020-04-09,DeSoto,Mississippi,28033,150,1 +2020-04-10,DeSoto,Mississippi,28033,158,1 +2020-04-11,DeSoto,Mississippi,28033,163,2 +2020-04-12,DeSoto,Mississippi,28033,171,2 +2020-04-13,DeSoto,Mississippi,28033,178,2 +2020-04-14,DeSoto,Mississippi,28033,188,2 +2020-04-15,DeSoto,Mississippi,28033,199,3 +2020-04-16,DeSoto,Mississippi,28033,211,3 +2020-04-17,DeSoto,Mississippi,28033,213,3 +2020-04-18,DeSoto,Mississippi,28033,220,3 +2020-04-19,DeSoto,Mississippi,28033,234,3 +2020-04-20,DeSoto,Mississippi,28033,238,3 +2020-04-21,DeSoto,Mississippi,28033,239,3 +2020-04-22,DeSoto,Mississippi,28033,244,3 +2020-04-23,DeSoto,Mississippi,28033,252,4 +2020-04-24,DeSoto,Mississippi,28033,256,4 +2020-04-25,DeSoto,Mississippi,28033,263,4 +2020-04-26,DeSoto,Mississippi,28033,261,4 +2020-04-27,DeSoto,Mississippi,28033,266,4 +2020-04-28,DeSoto,Mississippi,28033,272,4 +2020-04-29,DeSoto,Mississippi,28033,277,4 +2020-04-30,DeSoto,Mississippi,28033,282,4 +2020-05-01,DeSoto,Mississippi,28033,293,4 +2020-05-02,DeSoto,Mississippi,28033,294,4 +2020-05-03,DeSoto,Mississippi,28033,298,4 +2020-05-04,DeSoto,Mississippi,28033,304,4 +2020-05-05,DeSoto,Mississippi,28033,308,4 +2020-05-06,DeSoto,Mississippi,28033,310,4 +2020-05-07,DeSoto,Mississippi,28033,320,5 +2020-05-08,DeSoto,Mississippi,28033,325,5 +2020-05-09,DeSoto,Mississippi,28033,333,5 +2020-05-10,DeSoto,Mississippi,28033,331,5 +2020-05-11,DeSoto,Mississippi,28033,336,5 +2020-05-12,DeSoto,Mississippi,28033,346,5 +2020-05-13,DeSoto,Mississippi,28033,350,5 +2020-05-14,DeSoto,Mississippi,28033,355,5 +2020-05-15,DeSoto,Mississippi,28033,369,5 +2020-05-16,DeSoto,Mississippi,28033,384,5 +2020-05-17,DeSoto,Mississippi,28033,386,5 +2020-05-18,DeSoto,Mississippi,28033,391,5 +2020-05-19,DeSoto,Mississippi,28033,404,5 +2020-05-20,DeSoto,Mississippi,28033,418,5 +2020-05-21,DeSoto,Mississippi,28033,419,6 +2020-05-22,DeSoto,Mississippi,28033,442,6 +2020-05-23,DeSoto,Mississippi,28033,458,6 +2020-05-24,DeSoto,Mississippi,28033,461,6 +2020-05-25,DeSoto,Mississippi,28033,474,6 +2020-05-26,DeSoto,Mississippi,28033,485,6 +2020-05-27,DeSoto,Mississippi,28033,493,6 +2020-05-28,DeSoto,Mississippi,28033,503,6 +2020-05-29,DeSoto,Mississippi,28033,520,7 +2020-05-30,DeSoto,Mississippi,28033,533,7 +2020-05-31,DeSoto,Mississippi,28033,542,7 +2020-06-01,DeSoto,Mississippi,28033,550,7 +2020-06-02,DeSoto,Mississippi,28033,553,8 +2020-06-03,DeSoto,Mississippi,28033,559,8 +2020-06-04,DeSoto,Mississippi,28033,575,10 +2020-06-05,DeSoto,Mississippi,28033,593,10 +2020-06-06,DeSoto,Mississippi,28033,605,11 +2020-06-07,DeSoto,Mississippi,28033,611,11 +2020-06-08,DeSoto,Mississippi,28033,633,11 +2020-06-09,DeSoto,Mississippi,28033,642,11 +2020-06-10,DeSoto,Mississippi,28033,664,11 +2020-06-11,DeSoto,Mississippi,28033,664,11 +2020-06-12,DeSoto,Mississippi,28033,694,12 +2020-06-13,DeSoto,Mississippi,28033,713,12 +2020-06-14,DeSoto,Mississippi,28033,714,13 +2020-06-15,DeSoto,Mississippi,28033,718,13 +2020-06-16,DeSoto,Mississippi,28033,740,13 +2020-06-17,DeSoto,Mississippi,28033,790,14 +2020-06-18,DeSoto,Mississippi,28033,790,14 +2020-06-19,DeSoto,Mississippi,28033,790,14 +2020-06-20,DeSoto,Mississippi,28033,790,14 +2020-06-21,DeSoto,Mississippi,28033,790,14 +2020-06-22,DeSoto,Mississippi,28033,912,14 +2020-06-23,DeSoto,Mississippi,28033,948,15 +2020-06-24,DeSoto,Mississippi,28033,990,15 +2020-06-25,DeSoto,Mississippi,28033,1091,15 +2020-06-26,DeSoto,Mississippi,28033,1157,15 +2020-06-27,DeSoto,Mississippi,28033,1201,15 +2020-06-28,DeSoto,Mississippi,28033,1224,15 +2020-06-29,DeSoto,Mississippi,28033,1293,15 +2020-06-30,DeSoto,Mississippi,28033,1311,15 +2020-07-01,DeSoto,Mississippi,28033,1373,16 +2020-07-02,DeSoto,Mississippi,28033,1442,16 +2020-07-03,DeSoto,Mississippi,28033,1486,16 +2020-07-04,DeSoto,Mississippi,28033,1572,16 +2020-07-05,DeSoto,Mississippi,28033,1594,16 +2020-07-06,DeSoto,Mississippi,28033,1620,16 +2020-07-07,DeSoto,Mississippi,28033,1724,18 +2020-07-08,DeSoto,Mississippi,28033,1767,18 +2020-07-09,DeSoto,Mississippi,28033,1818,18 +2020-03-11,Forrest,Mississippi,28035,1,0 +2020-03-12,Forrest,Mississippi,28035,1,0 +2020-03-13,Forrest,Mississippi,28035,3,0 +2020-03-14,Forrest,Mississippi,28035,3,0 +2020-03-15,Forrest,Mississippi,28035,3,0 +2020-03-16,Forrest,Mississippi,28035,3,0 +2020-03-17,Forrest,Mississippi,28035,3,0 +2020-03-18,Forrest,Mississippi,28035,3,0 +2020-03-19,Forrest,Mississippi,28035,4,0 +2020-03-20,Forrest,Mississippi,28035,4,0 +2020-03-21,Forrest,Mississippi,28035,5,0 +2020-03-22,Forrest,Mississippi,28035,11,0 +2020-03-23,Forrest,Mississippi,28035,11,0 +2020-03-24,Forrest,Mississippi,28035,14,0 +2020-03-25,Forrest,Mississippi,28035,15,0 +2020-03-26,Forrest,Mississippi,28035,16,0 +2020-03-27,Forrest,Mississippi,28035,16,0 +2020-03-28,Forrest,Mississippi,28035,18,0 +2020-03-29,Forrest,Mississippi,28035,19,0 +2020-03-30,Forrest,Mississippi,28035,21,0 +2020-03-31,Forrest,Mississippi,28035,21,0 +2020-04-01,Forrest,Mississippi,28035,27,0 +2020-04-02,Forrest,Mississippi,28035,26,0 +2020-04-03,Forrest,Mississippi,28035,30,0 +2020-04-04,Forrest,Mississippi,28035,34,0 +2020-04-05,Forrest,Mississippi,28035,42,1 +2020-04-06,Forrest,Mississippi,28035,46,1 +2020-04-07,Forrest,Mississippi,28035,59,1 +2020-04-08,Forrest,Mississippi,28035,59,1 +2020-04-09,Forrest,Mississippi,28035,71,2 +2020-04-10,Forrest,Mississippi,28035,76,2 +2020-04-11,Forrest,Mississippi,28035,86,2 +2020-04-12,Forrest,Mississippi,28035,95,2 +2020-04-13,Forrest,Mississippi,28035,105,2 +2020-04-14,Forrest,Mississippi,28035,114,2 +2020-04-15,Forrest,Mississippi,28035,122,2 +2020-04-16,Forrest,Mississippi,28035,134,2 +2020-04-17,Forrest,Mississippi,28035,137,2 +2020-04-18,Forrest,Mississippi,28035,137,3 +2020-04-19,Forrest,Mississippi,28035,144,4 +2020-04-20,Forrest,Mississippi,28035,147,4 +2020-04-21,Forrest,Mississippi,28035,151,4 +2020-04-22,Forrest,Mississippi,28035,158,4 +2020-04-23,Forrest,Mississippi,28035,164,6 +2020-04-24,Forrest,Mississippi,28035,174,7 +2020-04-25,Forrest,Mississippi,28035,181,7 +2020-04-26,Forrest,Mississippi,28035,190,7 +2020-04-27,Forrest,Mississippi,28035,190,8 +2020-04-28,Forrest,Mississippi,28035,196,8 +2020-04-29,Forrest,Mississippi,28035,198,10 +2020-04-30,Forrest,Mississippi,28035,207,12 +2020-05-01,Forrest,Mississippi,28035,219,12 +2020-05-02,Forrest,Mississippi,28035,226,13 +2020-05-03,Forrest,Mississippi,28035,232,14 +2020-05-04,Forrest,Mississippi,28035,248,14 +2020-05-05,Forrest,Mississippi,28035,259,14 +2020-05-06,Forrest,Mississippi,28035,273,17 +2020-05-07,Forrest,Mississippi,28035,283,18 +2020-05-08,Forrest,Mississippi,28035,294,20 +2020-05-09,Forrest,Mississippi,28035,309,21 +2020-05-10,Forrest,Mississippi,28035,314,21 +2020-05-11,Forrest,Mississippi,28035,315,21 +2020-05-12,Forrest,Mississippi,28035,331,23 +2020-05-13,Forrest,Mississippi,28035,336,23 +2020-05-14,Forrest,Mississippi,28035,357,24 +2020-05-15,Forrest,Mississippi,28035,380,26 +2020-05-16,Forrest,Mississippi,28035,416,26 +2020-05-17,Forrest,Mississippi,28035,431,27 +2020-05-18,Forrest,Mississippi,28035,442,27 +2020-05-19,Forrest,Mississippi,28035,435,29 +2020-05-20,Forrest,Mississippi,28035,438,32 +2020-05-21,Forrest,Mississippi,28035,453,32 +2020-05-22,Forrest,Mississippi,28035,462,32 +2020-05-23,Forrest,Mississippi,28035,478,33 +2020-05-24,Forrest,Mississippi,28035,480,34 +2020-05-25,Forrest,Mississippi,28035,486,35 +2020-05-26,Forrest,Mississippi,28035,503,37 +2020-05-27,Forrest,Mississippi,28035,511,37 +2020-05-28,Forrest,Mississippi,28035,523,38 +2020-05-29,Forrest,Mississippi,28035,534,38 +2020-05-30,Forrest,Mississippi,28035,553,38 +2020-05-31,Forrest,Mississippi,28035,564,38 +2020-06-01,Forrest,Mississippi,28035,583,38 +2020-06-02,Forrest,Mississippi,28035,594,39 +2020-06-03,Forrest,Mississippi,28035,592,39 +2020-06-04,Forrest,Mississippi,28035,595,39 +2020-06-05,Forrest,Mississippi,28035,600,39 +2020-06-06,Forrest,Mississippi,28035,607,39 +2020-06-07,Forrest,Mississippi,28035,610,39 +2020-06-08,Forrest,Mississippi,28035,635,40 +2020-06-09,Forrest,Mississippi,28035,649,40 +2020-06-10,Forrest,Mississippi,28035,667,41 +2020-06-11,Forrest,Mississippi,28035,667,41 +2020-06-12,Forrest,Mississippi,28035,672,41 +2020-06-13,Forrest,Mississippi,28035,678,41 +2020-06-14,Forrest,Mississippi,28035,679,41 +2020-06-15,Forrest,Mississippi,28035,681,41 +2020-06-16,Forrest,Mississippi,28035,689,41 +2020-06-17,Forrest,Mississippi,28035,697,41 +2020-06-18,Forrest,Mississippi,28035,697,41 +2020-06-19,Forrest,Mississippi,28035,697,41 +2020-06-20,Forrest,Mississippi,28035,697,41 +2020-06-21,Forrest,Mississippi,28035,697,41 +2020-06-22,Forrest,Mississippi,28035,729,42 +2020-06-23,Forrest,Mississippi,28035,737,42 +2020-06-24,Forrest,Mississippi,28035,742,42 +2020-06-25,Forrest,Mississippi,28035,759,42 +2020-06-26,Forrest,Mississippi,28035,767,42 +2020-06-27,Forrest,Mississippi,28035,775,42 +2020-06-28,Forrest,Mississippi,28035,777,42 +2020-06-29,Forrest,Mississippi,28035,786,42 +2020-06-30,Forrest,Mississippi,28035,798,42 +2020-07-01,Forrest,Mississippi,28035,814,42 +2020-07-02,Forrest,Mississippi,28035,829,42 +2020-07-03,Forrest,Mississippi,28035,851,42 +2020-07-04,Forrest,Mississippi,28035,860,42 +2020-07-05,Forrest,Mississippi,28035,869,42 +2020-07-06,Forrest,Mississippi,28035,878,42 +2020-07-07,Forrest,Mississippi,28035,916,43 +2020-07-08,Forrest,Mississippi,28035,927,43 +2020-07-09,Forrest,Mississippi,28035,939,43 +2020-03-20,Franklin,Mississippi,28037,1,0 +2020-03-21,Franklin,Mississippi,28037,2,0 +2020-03-22,Franklin,Mississippi,28037,3,0 +2020-03-23,Franklin,Mississippi,28037,3,0 +2020-03-24,Franklin,Mississippi,28037,3,0 +2020-03-25,Franklin,Mississippi,28037,3,0 +2020-03-26,Franklin,Mississippi,28037,3,0 +2020-03-27,Franklin,Mississippi,28037,3,0 +2020-03-28,Franklin,Mississippi,28037,3,0 +2020-03-29,Franklin,Mississippi,28037,3,0 +2020-03-30,Franklin,Mississippi,28037,3,0 +2020-03-31,Franklin,Mississippi,28037,3,0 +2020-04-01,Franklin,Mississippi,28037,3,0 +2020-04-02,Franklin,Mississippi,28037,3,0 +2020-04-03,Franklin,Mississippi,28037,3,0 +2020-04-04,Franklin,Mississippi,28037,4,0 +2020-04-05,Franklin,Mississippi,28037,5,0 +2020-04-06,Franklin,Mississippi,28037,5,0 +2020-04-07,Franklin,Mississippi,28037,5,0 +2020-04-08,Franklin,Mississippi,28037,5,0 +2020-04-09,Franklin,Mississippi,28037,8,0 +2020-04-10,Franklin,Mississippi,28037,9,0 +2020-04-11,Franklin,Mississippi,28037,10,0 +2020-04-12,Franklin,Mississippi,28037,10,0 +2020-04-13,Franklin,Mississippi,28037,10,0 +2020-04-14,Franklin,Mississippi,28037,10,0 +2020-04-15,Franklin,Mississippi,28037,10,0 +2020-04-16,Franklin,Mississippi,28037,14,0 +2020-04-17,Franklin,Mississippi,28037,14,0 +2020-04-18,Franklin,Mississippi,28037,15,0 +2020-04-19,Franklin,Mississippi,28037,16,0 +2020-04-20,Franklin,Mississippi,28037,16,0 +2020-04-21,Franklin,Mississippi,28037,17,0 +2020-04-22,Franklin,Mississippi,28037,16,0 +2020-04-23,Franklin,Mississippi,28037,17,0 +2020-04-24,Franklin,Mississippi,28037,16,0 +2020-04-25,Franklin,Mississippi,28037,16,1 +2020-04-26,Franklin,Mississippi,28037,16,1 +2020-04-27,Franklin,Mississippi,28037,17,1 +2020-04-28,Franklin,Mississippi,28037,16,1 +2020-04-29,Franklin,Mississippi,28037,16,1 +2020-04-30,Franklin,Mississippi,28037,16,1 +2020-05-01,Franklin,Mississippi,28037,16,1 +2020-05-02,Franklin,Mississippi,28037,16,1 +2020-05-03,Franklin,Mississippi,28037,17,1 +2020-05-04,Franklin,Mississippi,28037,18,1 +2020-05-05,Franklin,Mississippi,28037,17,1 +2020-05-06,Franklin,Mississippi,28037,17,1 +2020-05-07,Franklin,Mississippi,28037,18,1 +2020-05-08,Franklin,Mississippi,28037,17,1 +2020-05-09,Franklin,Mississippi,28037,17,1 +2020-05-10,Franklin,Mississippi,28037,19,1 +2020-05-11,Franklin,Mississippi,28037,18,1 +2020-05-12,Franklin,Mississippi,28037,19,1 +2020-05-13,Franklin,Mississippi,28037,19,1 +2020-05-14,Franklin,Mississippi,28037,19,1 +2020-05-15,Franklin,Mississippi,28037,19,1 +2020-05-16,Franklin,Mississippi,28037,19,1 +2020-05-17,Franklin,Mississippi,28037,21,1 +2020-05-18,Franklin,Mississippi,28037,21,1 +2020-05-19,Franklin,Mississippi,28037,21,1 +2020-05-20,Franklin,Mississippi,28037,22,1 +2020-05-21,Franklin,Mississippi,28037,23,1 +2020-05-22,Franklin,Mississippi,28037,23,2 +2020-05-23,Franklin,Mississippi,28037,25,2 +2020-05-24,Franklin,Mississippi,28037,25,2 +2020-05-25,Franklin,Mississippi,28037,25,2 +2020-05-26,Franklin,Mississippi,28037,27,2 +2020-05-27,Franklin,Mississippi,28037,27,2 +2020-05-28,Franklin,Mississippi,28037,28,2 +2020-05-29,Franklin,Mississippi,28037,28,2 +2020-05-30,Franklin,Mississippi,28037,28,2 +2020-05-31,Franklin,Mississippi,28037,29,2 +2020-06-01,Franklin,Mississippi,28037,29,2 +2020-06-02,Franklin,Mississippi,28037,29,2 +2020-06-03,Franklin,Mississippi,28037,29,2 +2020-06-04,Franklin,Mississippi,28037,29,2 +2020-06-05,Franklin,Mississippi,28037,29,2 +2020-06-06,Franklin,Mississippi,28037,29,2 +2020-06-07,Franklin,Mississippi,28037,30,2 +2020-06-08,Franklin,Mississippi,28037,29,2 +2020-06-09,Franklin,Mississippi,28037,29,2 +2020-06-10,Franklin,Mississippi,28037,29,2 +2020-06-11,Franklin,Mississippi,28037,29,2 +2020-06-12,Franklin,Mississippi,28037,30,2 +2020-06-13,Franklin,Mississippi,28037,30,2 +2020-06-14,Franklin,Mississippi,28037,30,2 +2020-06-15,Franklin,Mississippi,28037,30,2 +2020-06-16,Franklin,Mississippi,28037,30,2 +2020-06-17,Franklin,Mississippi,28037,30,2 +2020-06-18,Franklin,Mississippi,28037,30,2 +2020-06-19,Franklin,Mississippi,28037,30,2 +2020-06-20,Franklin,Mississippi,28037,30,2 +2020-06-21,Franklin,Mississippi,28037,30,2 +2020-06-22,Franklin,Mississippi,28037,30,2 +2020-06-23,Franklin,Mississippi,28037,31,2 +2020-06-24,Franklin,Mississippi,28037,32,2 +2020-06-25,Franklin,Mississippi,28037,32,2 +2020-06-26,Franklin,Mississippi,28037,32,2 +2020-06-27,Franklin,Mississippi,28037,33,2 +2020-06-28,Franklin,Mississippi,28037,34,2 +2020-06-29,Franklin,Mississippi,28037,35,2 +2020-06-30,Franklin,Mississippi,28037,38,2 +2020-07-01,Franklin,Mississippi,28037,38,2 +2020-07-02,Franklin,Mississippi,28037,39,2 +2020-07-03,Franklin,Mississippi,28037,41,2 +2020-07-04,Franklin,Mississippi,28037,45,2 +2020-07-05,Franklin,Mississippi,28037,45,2 +2020-07-06,Franklin,Mississippi,28037,45,2 +2020-07-07,Franklin,Mississippi,28037,45,2 +2020-07-08,Franklin,Mississippi,28037,47,2 +2020-07-09,Franklin,Mississippi,28037,49,2 +2020-03-21,George,Mississippi,28039,1,0 +2020-03-22,George,Mississippi,28039,1,0 +2020-03-23,George,Mississippi,28039,1,0 +2020-03-24,George,Mississippi,28039,1,0 +2020-03-25,George,Mississippi,28039,1,0 +2020-03-26,George,Mississippi,28039,1,0 +2020-03-27,George,Mississippi,28039,1,0 +2020-03-28,George,Mississippi,28039,1,0 +2020-03-29,George,Mississippi,28039,3,0 +2020-03-30,George,Mississippi,28039,3,0 +2020-03-31,George,Mississippi,28039,3,0 +2020-04-01,George,Mississippi,28039,4,0 +2020-04-02,George,Mississippi,28039,4,0 +2020-04-03,George,Mississippi,28039,4,0 +2020-04-04,George,Mississippi,28039,4,0 +2020-04-05,George,Mississippi,28039,5,0 +2020-04-06,George,Mississippi,28039,5,0 +2020-04-07,George,Mississippi,28039,5,0 +2020-04-08,George,Mississippi,28039,5,0 +2020-04-09,George,Mississippi,28039,5,0 +2020-04-10,George,Mississippi,28039,7,0 +2020-04-11,George,Mississippi,28039,7,0 +2020-04-12,George,Mississippi,28039,7,0 +2020-04-13,George,Mississippi,28039,8,0 +2020-04-14,George,Mississippi,28039,10,0 +2020-04-15,George,Mississippi,28039,8,0 +2020-04-16,George,Mississippi,28039,8,0 +2020-04-17,George,Mississippi,28039,9,0 +2020-04-18,George,Mississippi,28039,10,1 +2020-04-19,George,Mississippi,28039,10,1 +2020-04-20,George,Mississippi,28039,10,1 +2020-04-21,George,Mississippi,28039,10,1 +2020-04-22,George,Mississippi,28039,10,1 +2020-04-23,George,Mississippi,28039,10,1 +2020-04-24,George,Mississippi,28039,11,1 +2020-04-25,George,Mississippi,28039,11,1 +2020-04-26,George,Mississippi,28039,11,1 +2020-04-27,George,Mississippi,28039,11,1 +2020-04-28,George,Mississippi,28039,12,1 +2020-04-29,George,Mississippi,28039,13,1 +2020-04-30,George,Mississippi,28039,13,1 +2020-05-01,George,Mississippi,28039,14,1 +2020-05-02,George,Mississippi,28039,14,1 +2020-05-03,George,Mississippi,28039,14,1 +2020-05-04,George,Mississippi,28039,14,1 +2020-05-05,George,Mississippi,28039,14,1 +2020-05-06,George,Mississippi,28039,15,1 +2020-05-07,George,Mississippi,28039,15,1 +2020-05-08,George,Mississippi,28039,15,1 +2020-05-09,George,Mississippi,28039,15,1 +2020-05-10,George,Mississippi,28039,15,1 +2020-05-11,George,Mississippi,28039,15,1 +2020-05-12,George,Mississippi,28039,15,1 +2020-05-13,George,Mississippi,28039,16,1 +2020-05-14,George,Mississippi,28039,16,1 +2020-05-15,George,Mississippi,28039,18,1 +2020-05-16,George,Mississippi,28039,17,1 +2020-05-17,George,Mississippi,28039,17,1 +2020-05-18,George,Mississippi,28039,17,1 +2020-05-19,George,Mississippi,28039,19,1 +2020-05-20,George,Mississippi,28039,19,1 +2020-05-21,George,Mississippi,28039,19,1 +2020-05-22,George,Mississippi,28039,19,1 +2020-05-23,George,Mississippi,28039,19,1 +2020-05-24,George,Mississippi,28039,19,1 +2020-05-25,George,Mississippi,28039,20,1 +2020-05-26,George,Mississippi,28039,20,1 +2020-05-27,George,Mississippi,28039,20,1 +2020-05-28,George,Mississippi,28039,21,1 +2020-05-29,George,Mississippi,28039,21,1 +2020-05-30,George,Mississippi,28039,25,1 +2020-05-31,George,Mississippi,28039,25,1 +2020-06-01,George,Mississippi,28039,25,1 +2020-06-02,George,Mississippi,28039,26,1 +2020-06-03,George,Mississippi,28039,28,1 +2020-06-04,George,Mississippi,28039,29,2 +2020-06-05,George,Mississippi,28039,30,2 +2020-06-06,George,Mississippi,28039,30,2 +2020-06-07,George,Mississippi,28039,30,2 +2020-06-08,George,Mississippi,28039,31,2 +2020-06-09,George,Mississippi,28039,32,2 +2020-06-10,George,Mississippi,28039,32,2 +2020-06-11,George,Mississippi,28039,32,2 +2020-06-12,George,Mississippi,28039,35,2 +2020-06-13,George,Mississippi,28039,35,2 +2020-06-14,George,Mississippi,28039,35,2 +2020-06-15,George,Mississippi,28039,37,2 +2020-06-16,George,Mississippi,28039,40,2 +2020-06-17,George,Mississippi,28039,41,2 +2020-06-18,George,Mississippi,28039,41,2 +2020-06-19,George,Mississippi,28039,41,2 +2020-06-20,George,Mississippi,28039,41,2 +2020-06-21,George,Mississippi,28039,41,2 +2020-06-22,George,Mississippi,28039,53,2 +2020-06-23,George,Mississippi,28039,58,3 +2020-06-24,George,Mississippi,28039,58,3 +2020-06-25,George,Mississippi,28039,60,3 +2020-06-26,George,Mississippi,28039,61,3 +2020-06-27,George,Mississippi,28039,66,3 +2020-06-28,George,Mississippi,28039,66,3 +2020-06-29,George,Mississippi,28039,72,3 +2020-06-30,George,Mississippi,28039,73,3 +2020-07-01,George,Mississippi,28039,74,3 +2020-07-02,George,Mississippi,28039,75,3 +2020-07-03,George,Mississippi,28039,78,3 +2020-07-04,George,Mississippi,28039,86,3 +2020-07-05,George,Mississippi,28039,88,3 +2020-07-06,George,Mississippi,28039,89,3 +2020-07-07,George,Mississippi,28039,91,3 +2020-07-08,George,Mississippi,28039,94,3 +2020-07-09,George,Mississippi,28039,102,3 +2020-04-06,Greene,Mississippi,28041,1,0 +2020-04-07,Greene,Mississippi,28041,1,0 +2020-04-08,Greene,Mississippi,28041,1,0 +2020-04-09,Greene,Mississippi,28041,1,0 +2020-04-10,Greene,Mississippi,28041,1,0 +2020-04-11,Greene,Mississippi,28041,2,0 +2020-04-12,Greene,Mississippi,28041,2,0 +2020-04-13,Greene,Mississippi,28041,2,0 +2020-04-14,Greene,Mississippi,28041,2,0 +2020-04-15,Greene,Mississippi,28041,3,0 +2020-04-16,Greene,Mississippi,28041,3,0 +2020-04-17,Greene,Mississippi,28041,3,0 +2020-04-18,Greene,Mississippi,28041,3,0 +2020-04-19,Greene,Mississippi,28041,3,0 +2020-04-20,Greene,Mississippi,28041,3,0 +2020-04-21,Greene,Mississippi,28041,4,0 +2020-04-22,Greene,Mississippi,28041,4,0 +2020-04-23,Greene,Mississippi,28041,4,0 +2020-04-24,Greene,Mississippi,28041,4,1 +2020-04-25,Greene,Mississippi,28041,4,1 +2020-04-26,Greene,Mississippi,28041,4,1 +2020-04-27,Greene,Mississippi,28041,4,1 +2020-04-28,Greene,Mississippi,28041,5,1 +2020-04-29,Greene,Mississippi,28041,5,1 +2020-04-30,Greene,Mississippi,28041,5,1 +2020-05-01,Greene,Mississippi,28041,5,1 +2020-05-02,Greene,Mississippi,28041,5,1 +2020-05-03,Greene,Mississippi,28041,5,1 +2020-05-04,Greene,Mississippi,28041,6,1 +2020-05-05,Greene,Mississippi,28041,6,1 +2020-05-06,Greene,Mississippi,28041,6,1 +2020-05-07,Greene,Mississippi,28041,6,1 +2020-05-08,Greene,Mississippi,28041,6,1 +2020-05-09,Greene,Mississippi,28041,6,1 +2020-05-10,Greene,Mississippi,28041,6,1 +2020-05-11,Greene,Mississippi,28041,6,1 +2020-05-12,Greene,Mississippi,28041,6,1 +2020-05-13,Greene,Mississippi,28041,6,1 +2020-05-14,Greene,Mississippi,28041,7,1 +2020-05-15,Greene,Mississippi,28041,7,1 +2020-05-16,Greene,Mississippi,28041,7,1 +2020-05-17,Greene,Mississippi,28041,7,1 +2020-05-18,Greene,Mississippi,28041,7,1 +2020-05-19,Greene,Mississippi,28041,7,1 +2020-05-20,Greene,Mississippi,28041,7,1 +2020-05-21,Greene,Mississippi,28041,7,1 +2020-05-22,Greene,Mississippi,28041,7,1 +2020-05-23,Greene,Mississippi,28041,7,1 +2020-05-24,Greene,Mississippi,28041,7,1 +2020-05-25,Greene,Mississippi,28041,7,1 +2020-05-26,Greene,Mississippi,28041,8,1 +2020-05-27,Greene,Mississippi,28041,11,1 +2020-05-28,Greene,Mississippi,28041,9,1 +2020-05-29,Greene,Mississippi,28041,11,1 +2020-05-30,Greene,Mississippi,28041,12,1 +2020-05-31,Greene,Mississippi,28041,13,1 +2020-06-01,Greene,Mississippi,28041,16,1 +2020-06-02,Greene,Mississippi,28041,22,1 +2020-06-03,Greene,Mississippi,28041,33,1 +2020-06-04,Greene,Mississippi,28041,33,1 +2020-06-05,Greene,Mississippi,28041,30,1 +2020-06-06,Greene,Mississippi,28041,36,1 +2020-06-07,Greene,Mississippi,28041,42,1 +2020-06-08,Greene,Mississippi,28041,47,1 +2020-06-09,Greene,Mississippi,28041,44,2 +2020-06-10,Greene,Mississippi,28041,45,2 +2020-06-11,Greene,Mississippi,28041,45,2 +2020-06-12,Greene,Mississippi,28041,49,2 +2020-06-13,Greene,Mississippi,28041,51,2 +2020-06-14,Greene,Mississippi,28041,51,2 +2020-06-15,Greene,Mississippi,28041,54,3 +2020-06-16,Greene,Mississippi,28041,56,4 +2020-06-17,Greene,Mississippi,28041,56,4 +2020-06-18,Greene,Mississippi,28041,56,4 +2020-06-19,Greene,Mississippi,28041,56,4 +2020-06-20,Greene,Mississippi,28041,56,4 +2020-06-21,Greene,Mississippi,28041,56,4 +2020-06-22,Greene,Mississippi,28041,70,5 +2020-06-23,Greene,Mississippi,28041,71,5 +2020-06-24,Greene,Mississippi,28041,71,5 +2020-06-25,Greene,Mississippi,28041,75,5 +2020-06-26,Greene,Mississippi,28041,76,7 +2020-06-27,Greene,Mississippi,28041,78,7 +2020-06-28,Greene,Mississippi,28041,83,7 +2020-06-29,Greene,Mississippi,28041,88,7 +2020-06-30,Greene,Mississippi,28041,91,7 +2020-07-01,Greene,Mississippi,28041,92,7 +2020-07-02,Greene,Mississippi,28041,96,8 +2020-07-03,Greene,Mississippi,28041,101,8 +2020-07-04,Greene,Mississippi,28041,105,8 +2020-07-05,Greene,Mississippi,28041,105,8 +2020-07-06,Greene,Mississippi,28041,105,8 +2020-07-07,Greene,Mississippi,28041,105,9 +2020-07-08,Greene,Mississippi,28041,108,9 +2020-07-09,Greene,Mississippi,28041,108,10 +2020-03-21,Grenada,Mississippi,28043,1,0 +2020-03-22,Grenada,Mississippi,28043,2,0 +2020-03-23,Grenada,Mississippi,28043,2,0 +2020-03-24,Grenada,Mississippi,28043,2,0 +2020-03-25,Grenada,Mississippi,28043,2,0 +2020-03-26,Grenada,Mississippi,28043,2,0 +2020-03-27,Grenada,Mississippi,28043,2,0 +2020-03-28,Grenada,Mississippi,28043,2,0 +2020-03-29,Grenada,Mississippi,28043,3,0 +2020-03-30,Grenada,Mississippi,28043,3,0 +2020-03-31,Grenada,Mississippi,28043,3,0 +2020-04-01,Grenada,Mississippi,28043,3,0 +2020-04-02,Grenada,Mississippi,28043,4,0 +2020-04-03,Grenada,Mississippi,28043,4,0 +2020-04-04,Grenada,Mississippi,28043,4,0 +2020-04-05,Grenada,Mississippi,28043,7,0 +2020-04-06,Grenada,Mississippi,28043,7,0 +2020-04-07,Grenada,Mississippi,28043,8,0 +2020-04-08,Grenada,Mississippi,28043,8,0 +2020-04-09,Grenada,Mississippi,28043,10,0 +2020-04-10,Grenada,Mississippi,28043,10,0 +2020-04-11,Grenada,Mississippi,28043,10,0 +2020-04-12,Grenada,Mississippi,28043,10,0 +2020-04-13,Grenada,Mississippi,28043,11,0 +2020-04-14,Grenada,Mississippi,28043,13,0 +2020-04-15,Grenada,Mississippi,28043,14,0 +2020-04-16,Grenada,Mississippi,28043,14,0 +2020-04-17,Grenada,Mississippi,28043,15,0 +2020-04-18,Grenada,Mississippi,28043,19,0 +2020-04-19,Grenada,Mississippi,28043,20,0 +2020-04-20,Grenada,Mississippi,28043,26,0 +2020-04-21,Grenada,Mississippi,28043,26,0 +2020-04-22,Grenada,Mississippi,28043,27,0 +2020-04-23,Grenada,Mississippi,28043,27,0 +2020-04-24,Grenada,Mississippi,28043,27,0 +2020-04-25,Grenada,Mississippi,28043,27,0 +2020-04-26,Grenada,Mississippi,28043,27,0 +2020-04-27,Grenada,Mississippi,28043,27,0 +2020-04-28,Grenada,Mississippi,28043,28,0 +2020-04-29,Grenada,Mississippi,28043,28,0 +2020-04-30,Grenada,Mississippi,28043,28,0 +2020-05-01,Grenada,Mississippi,28043,32,0 +2020-05-02,Grenada,Mississippi,28043,34,0 +2020-05-03,Grenada,Mississippi,28043,34,1 +2020-05-04,Grenada,Mississippi,28043,35,2 +2020-05-05,Grenada,Mississippi,28043,36,2 +2020-05-06,Grenada,Mississippi,28043,41,2 +2020-05-07,Grenada,Mississippi,28043,45,2 +2020-05-08,Grenada,Mississippi,28043,45,2 +2020-05-09,Grenada,Mississippi,28043,47,2 +2020-05-10,Grenada,Mississippi,28043,51,2 +2020-05-11,Grenada,Mississippi,28043,52,2 +2020-05-12,Grenada,Mississippi,28043,52,2 +2020-05-13,Grenada,Mississippi,28043,55,2 +2020-05-14,Grenada,Mississippi,28043,56,2 +2020-05-15,Grenada,Mississippi,28043,58,2 +2020-05-16,Grenada,Mississippi,28043,58,2 +2020-05-17,Grenada,Mississippi,28043,59,2 +2020-05-18,Grenada,Mississippi,28043,60,2 +2020-05-19,Grenada,Mississippi,28043,60,2 +2020-05-20,Grenada,Mississippi,28043,63,2 +2020-05-21,Grenada,Mississippi,28043,66,2 +2020-05-22,Grenada,Mississippi,28043,68,2 +2020-05-23,Grenada,Mississippi,28043,72,2 +2020-05-24,Grenada,Mississippi,28043,75,2 +2020-05-25,Grenada,Mississippi,28043,75,2 +2020-05-26,Grenada,Mississippi,28043,78,2 +2020-05-27,Grenada,Mississippi,28043,82,3 +2020-05-28,Grenada,Mississippi,28043,85,3 +2020-05-29,Grenada,Mississippi,28043,88,3 +2020-05-30,Grenada,Mississippi,28043,89,3 +2020-05-31,Grenada,Mississippi,28043,94,3 +2020-06-01,Grenada,Mississippi,28043,95,3 +2020-06-02,Grenada,Mississippi,28043,99,3 +2020-06-03,Grenada,Mississippi,28043,100,3 +2020-06-04,Grenada,Mississippi,28043,107,4 +2020-06-05,Grenada,Mississippi,28043,110,4 +2020-06-06,Grenada,Mississippi,28043,112,4 +2020-06-07,Grenada,Mississippi,28043,113,4 +2020-06-08,Grenada,Mississippi,28043,127,4 +2020-06-09,Grenada,Mississippi,28043,133,4 +2020-06-10,Grenada,Mississippi,28043,138,4 +2020-06-11,Grenada,Mississippi,28043,138,4 +2020-06-12,Grenada,Mississippi,28043,153,4 +2020-06-13,Grenada,Mississippi,28043,157,4 +2020-06-14,Grenada,Mississippi,28043,160,4 +2020-06-15,Grenada,Mississippi,28043,164,4 +2020-06-16,Grenada,Mississippi,28043,167,4 +2020-06-17,Grenada,Mississippi,28043,170,4 +2020-06-18,Grenada,Mississippi,28043,170,4 +2020-06-19,Grenada,Mississippi,28043,170,4 +2020-06-20,Grenada,Mississippi,28043,170,4 +2020-06-21,Grenada,Mississippi,28043,170,4 +2020-06-22,Grenada,Mississippi,28043,195,5 +2020-06-23,Grenada,Mississippi,28043,211,4 +2020-06-24,Grenada,Mississippi,28043,226,4 +2020-06-25,Grenada,Mississippi,28043,252,4 +2020-06-26,Grenada,Mississippi,28043,257,4 +2020-06-27,Grenada,Mississippi,28043,288,5 +2020-06-28,Grenada,Mississippi,28043,296,5 +2020-06-29,Grenada,Mississippi,28043,355,5 +2020-06-30,Grenada,Mississippi,28043,367,5 +2020-07-01,Grenada,Mississippi,28043,380,5 +2020-07-02,Grenada,Mississippi,28043,396,5 +2020-07-03,Grenada,Mississippi,28043,432,5 +2020-07-04,Grenada,Mississippi,28043,479,5 +2020-07-05,Grenada,Mississippi,28043,483,5 +2020-07-06,Grenada,Mississippi,28043,490,5 +2020-07-07,Grenada,Mississippi,28043,506,7 +2020-07-08,Grenada,Mississippi,28043,522,7 +2020-07-09,Grenada,Mississippi,28043,535,7 +2020-03-16,Hancock,Mississippi,28045,1,0 +2020-03-17,Hancock,Mississippi,28045,1,0 +2020-03-18,Hancock,Mississippi,28045,2,0 +2020-03-19,Hancock,Mississippi,28045,2,1 +2020-03-20,Hancock,Mississippi,28045,3,1 +2020-03-21,Hancock,Mississippi,28045,4,1 +2020-03-22,Hancock,Mississippi,28045,4,1 +2020-03-23,Hancock,Mississippi,28045,4,1 +2020-03-24,Hancock,Mississippi,28045,5,1 +2020-03-25,Hancock,Mississippi,28045,5,1 +2020-03-26,Hancock,Mississippi,28045,6,1 +2020-03-27,Hancock,Mississippi,28045,9,1 +2020-03-28,Hancock,Mississippi,28045,9,1 +2020-03-29,Hancock,Mississippi,28045,15,1 +2020-03-30,Hancock,Mississippi,28045,15,1 +2020-03-31,Hancock,Mississippi,28045,16,1 +2020-04-01,Hancock,Mississippi,28045,20,1 +2020-04-02,Hancock,Mississippi,28045,22,1 +2020-04-03,Hancock,Mississippi,28045,28,1 +2020-04-04,Hancock,Mississippi,28045,30,1 +2020-04-05,Hancock,Mississippi,28045,31,1 +2020-04-06,Hancock,Mississippi,28045,30,1 +2020-04-07,Hancock,Mississippi,28045,31,2 +2020-04-08,Hancock,Mississippi,28045,32,2 +2020-04-09,Hancock,Mississippi,28045,37,3 +2020-04-10,Hancock,Mississippi,28045,37,5 +2020-04-11,Hancock,Mississippi,28045,38,5 +2020-04-12,Hancock,Mississippi,28045,40,5 +2020-04-13,Hancock,Mississippi,28045,40,5 +2020-04-14,Hancock,Mississippi,28045,46,5 +2020-04-15,Hancock,Mississippi,28045,49,5 +2020-04-16,Hancock,Mississippi,28045,50,5 +2020-04-17,Hancock,Mississippi,28045,50,5 +2020-04-18,Hancock,Mississippi,28045,50,5 +2020-04-19,Hancock,Mississippi,28045,52,5 +2020-04-20,Hancock,Mississippi,28045,53,5 +2020-04-21,Hancock,Mississippi,28045,53,5 +2020-04-22,Hancock,Mississippi,28045,54,5 +2020-04-23,Hancock,Mississippi,28045,55,5 +2020-04-24,Hancock,Mississippi,28045,56,5 +2020-04-25,Hancock,Mississippi,28045,59,5 +2020-04-26,Hancock,Mississippi,28045,60,5 +2020-04-27,Hancock,Mississippi,28045,60,5 +2020-04-28,Hancock,Mississippi,28045,61,5 +2020-04-29,Hancock,Mississippi,28045,61,5 +2020-04-30,Hancock,Mississippi,28045,62,5 +2020-05-01,Hancock,Mississippi,28045,62,5 +2020-05-02,Hancock,Mississippi,28045,67,5 +2020-05-03,Hancock,Mississippi,28045,68,5 +2020-05-04,Hancock,Mississippi,28045,68,5 +2020-05-05,Hancock,Mississippi,28045,68,5 +2020-05-06,Hancock,Mississippi,28045,68,5 +2020-05-07,Hancock,Mississippi,28045,72,9 +2020-05-08,Hancock,Mississippi,28045,72,9 +2020-05-09,Hancock,Mississippi,28045,73,10 +2020-05-10,Hancock,Mississippi,28045,74,10 +2020-05-11,Hancock,Mississippi,28045,74,10 +2020-05-12,Hancock,Mississippi,28045,74,10 +2020-05-13,Hancock,Mississippi,28045,75,10 +2020-05-14,Hancock,Mississippi,28045,79,10 +2020-05-15,Hancock,Mississippi,28045,78,10 +2020-05-16,Hancock,Mississippi,28045,79,10 +2020-05-17,Hancock,Mississippi,28045,80,10 +2020-05-18,Hancock,Mississippi,28045,81,10 +2020-05-19,Hancock,Mississippi,28045,81,10 +2020-05-20,Hancock,Mississippi,28045,81,10 +2020-05-21,Hancock,Mississippi,28045,81,10 +2020-05-22,Hancock,Mississippi,28045,86,10 +2020-05-23,Hancock,Mississippi,28045,84,11 +2020-05-24,Hancock,Mississippi,28045,87,11 +2020-05-25,Hancock,Mississippi,28045,88,11 +2020-05-26,Hancock,Mississippi,28045,88,11 +2020-05-27,Hancock,Mississippi,28045,87,11 +2020-05-28,Hancock,Mississippi,28045,87,11 +2020-05-29,Hancock,Mississippi,28045,87,11 +2020-05-30,Hancock,Mississippi,28045,90,11 +2020-05-31,Hancock,Mississippi,28045,91,11 +2020-06-01,Hancock,Mississippi,28045,91,11 +2020-06-02,Hancock,Mississippi,28045,91,12 +2020-06-03,Hancock,Mississippi,28045,90,12 +2020-06-04,Hancock,Mississippi,28045,90,12 +2020-06-05,Hancock,Mississippi,28045,90,12 +2020-06-06,Hancock,Mississippi,28045,92,12 +2020-06-07,Hancock,Mississippi,28045,92,12 +2020-06-08,Hancock,Mississippi,28045,93,12 +2020-06-09,Hancock,Mississippi,28045,93,12 +2020-06-10,Hancock,Mississippi,28045,94,12 +2020-06-11,Hancock,Mississippi,28045,94,12 +2020-06-12,Hancock,Mississippi,28045,98,12 +2020-06-13,Hancock,Mississippi,28045,100,12 +2020-06-14,Hancock,Mississippi,28045,100,12 +2020-06-15,Hancock,Mississippi,28045,100,12 +2020-06-16,Hancock,Mississippi,28045,100,12 +2020-06-17,Hancock,Mississippi,28045,100,13 +2020-06-18,Hancock,Mississippi,28045,100,13 +2020-06-19,Hancock,Mississippi,28045,100,13 +2020-06-20,Hancock,Mississippi,28045,100,13 +2020-06-21,Hancock,Mississippi,28045,100,13 +2020-06-22,Hancock,Mississippi,28045,103,13 +2020-06-23,Hancock,Mississippi,28045,103,13 +2020-06-24,Hancock,Mississippi,28045,106,13 +2020-06-25,Hancock,Mississippi,28045,112,13 +2020-06-26,Hancock,Mississippi,28045,115,13 +2020-06-27,Hancock,Mississippi,28045,116,13 +2020-06-28,Hancock,Mississippi,28045,116,13 +2020-06-29,Hancock,Mississippi,28045,120,13 +2020-06-30,Hancock,Mississippi,28045,120,13 +2020-07-01,Hancock,Mississippi,28045,120,13 +2020-07-02,Hancock,Mississippi,28045,123,13 +2020-07-03,Hancock,Mississippi,28045,126,13 +2020-07-04,Hancock,Mississippi,28045,126,13 +2020-07-05,Hancock,Mississippi,28045,128,13 +2020-07-06,Hancock,Mississippi,28045,130,13 +2020-07-07,Hancock,Mississippi,28045,134,13 +2020-07-08,Hancock,Mississippi,28045,134,13 +2020-07-09,Hancock,Mississippi,28045,138,13 +2020-03-17,Harrison,Mississippi,28047,1,0 +2020-03-18,Harrison,Mississippi,28047,4,0 +2020-03-19,Harrison,Mississippi,28047,7,0 +2020-03-20,Harrison,Mississippi,28047,8,0 +2020-03-21,Harrison,Mississippi,28047,10,0 +2020-03-22,Harrison,Mississippi,28047,15,0 +2020-03-23,Harrison,Mississippi,28047,21,0 +2020-03-24,Harrison,Mississippi,28047,24,0 +2020-03-25,Harrison,Mississippi,28047,25,0 +2020-03-26,Harrison,Mississippi,28047,31,0 +2020-03-27,Harrison,Mississippi,28047,34,1 +2020-03-28,Harrison,Mississippi,28047,38,1 +2020-03-29,Harrison,Mississippi,28047,43,1 +2020-03-30,Harrison,Mississippi,28047,44,1 +2020-03-31,Harrison,Mississippi,28047,45,1 +2020-04-01,Harrison,Mississippi,28047,49,1 +2020-04-02,Harrison,Mississippi,28047,53,1 +2020-04-03,Harrison,Mississippi,28047,69,1 +2020-04-04,Harrison,Mississippi,28047,70,3 +2020-04-05,Harrison,Mississippi,28047,73,3 +2020-04-06,Harrison,Mississippi,28047,79,3 +2020-04-07,Harrison,Mississippi,28047,89,3 +2020-04-08,Harrison,Mississippi,28047,88,3 +2020-04-09,Harrison,Mississippi,28047,96,3 +2020-04-10,Harrison,Mississippi,28047,99,4 +2020-04-11,Harrison,Mississippi,28047,107,5 +2020-04-12,Harrison,Mississippi,28047,110,5 +2020-04-13,Harrison,Mississippi,28047,112,5 +2020-04-14,Harrison,Mississippi,28047,121,5 +2020-04-15,Harrison,Mississippi,28047,129,5 +2020-04-16,Harrison,Mississippi,28047,134,5 +2020-04-17,Harrison,Mississippi,28047,137,5 +2020-04-18,Harrison,Mississippi,28047,144,5 +2020-04-19,Harrison,Mississippi,28047,144,5 +2020-04-20,Harrison,Mississippi,28047,145,5 +2020-04-21,Harrison,Mississippi,28047,151,5 +2020-04-22,Harrison,Mississippi,28047,150,6 +2020-04-23,Harrison,Mississippi,28047,152,6 +2020-04-24,Harrison,Mississippi,28047,157,6 +2020-04-25,Harrison,Mississippi,28047,158,6 +2020-04-26,Harrison,Mississippi,28047,158,6 +2020-04-27,Harrison,Mississippi,28047,159,6 +2020-04-28,Harrison,Mississippi,28047,166,6 +2020-04-29,Harrison,Mississippi,28047,171,6 +2020-04-30,Harrison,Mississippi,28047,174,6 +2020-05-01,Harrison,Mississippi,28047,177,6 +2020-05-02,Harrison,Mississippi,28047,181,6 +2020-05-03,Harrison,Mississippi,28047,181,6 +2020-05-04,Harrison,Mississippi,28047,184,6 +2020-05-05,Harrison,Mississippi,28047,186,6 +2020-05-06,Harrison,Mississippi,28047,187,6 +2020-05-07,Harrison,Mississippi,28047,188,6 +2020-05-08,Harrison,Mississippi,28047,193,6 +2020-05-09,Harrison,Mississippi,28047,198,6 +2020-05-10,Harrison,Mississippi,28047,198,6 +2020-05-11,Harrison,Mississippi,28047,198,6 +2020-05-12,Harrison,Mississippi,28047,201,6 +2020-05-13,Harrison,Mississippi,28047,210,6 +2020-05-14,Harrison,Mississippi,28047,223,6 +2020-05-15,Harrison,Mississippi,28047,214,6 +2020-05-16,Harrison,Mississippi,28047,215,6 +2020-05-17,Harrison,Mississippi,28047,215,6 +2020-05-18,Harrison,Mississippi,28047,216,6 +2020-05-19,Harrison,Mississippi,28047,218,6 +2020-05-20,Harrison,Mississippi,28047,220,6 +2020-05-21,Harrison,Mississippi,28047,224,6 +2020-05-22,Harrison,Mississippi,28047,230,6 +2020-05-23,Harrison,Mississippi,28047,231,6 +2020-05-24,Harrison,Mississippi,28047,234,6 +2020-05-25,Harrison,Mississippi,28047,237,6 +2020-05-26,Harrison,Mississippi,28047,237,6 +2020-05-27,Harrison,Mississippi,28047,245,7 +2020-05-28,Harrison,Mississippi,28047,247,7 +2020-05-29,Harrison,Mississippi,28047,251,7 +2020-05-30,Harrison,Mississippi,28047,257,7 +2020-05-31,Harrison,Mississippi,28047,258,7 +2020-06-01,Harrison,Mississippi,28047,261,7 +2020-06-02,Harrison,Mississippi,28047,263,7 +2020-06-03,Harrison,Mississippi,28047,265,7 +2020-06-04,Harrison,Mississippi,28047,269,7 +2020-06-05,Harrison,Mississippi,28047,268,7 +2020-06-06,Harrison,Mississippi,28047,274,7 +2020-06-07,Harrison,Mississippi,28047,281,7 +2020-06-08,Harrison,Mississippi,28047,288,7 +2020-06-09,Harrison,Mississippi,28047,299,7 +2020-06-10,Harrison,Mississippi,28047,311,7 +2020-06-11,Harrison,Mississippi,28047,311,7 +2020-06-12,Harrison,Mississippi,28047,319,7 +2020-06-13,Harrison,Mississippi,28047,335,7 +2020-06-14,Harrison,Mississippi,28047,344,7 +2020-06-15,Harrison,Mississippi,28047,367,7 +2020-06-16,Harrison,Mississippi,28047,377,7 +2020-06-17,Harrison,Mississippi,28047,393,7 +2020-06-18,Harrison,Mississippi,28047,393,7 +2020-06-19,Harrison,Mississippi,28047,393,7 +2020-06-20,Harrison,Mississippi,28047,393,7 +2020-06-21,Harrison,Mississippi,28047,393,7 +2020-06-22,Harrison,Mississippi,28047,464,7 +2020-06-23,Harrison,Mississippi,28047,499,7 +2020-06-24,Harrison,Mississippi,28047,514,7 +2020-06-25,Harrison,Mississippi,28047,562,7 +2020-06-26,Harrison,Mississippi,28047,607,7 +2020-06-27,Harrison,Mississippi,28047,634,7 +2020-06-28,Harrison,Mississippi,28047,642,7 +2020-06-29,Harrison,Mississippi,28047,688,7 +2020-06-30,Harrison,Mississippi,28047,719,8 +2020-07-01,Harrison,Mississippi,28047,744,8 +2020-07-02,Harrison,Mississippi,28047,794,10 +2020-07-03,Harrison,Mississippi,28047,842,10 +2020-07-04,Harrison,Mississippi,28047,886,10 +2020-07-05,Harrison,Mississippi,28047,912,11 +2020-07-06,Harrison,Mississippi,28047,933,11 +2020-07-07,Harrison,Mississippi,28047,969,11 +2020-07-08,Harrison,Mississippi,28047,1003,12 +2020-07-09,Harrison,Mississippi,28047,1040,14 +2020-03-15,Hinds,Mississippi,28049,2,0 +2020-03-16,Hinds,Mississippi,28049,2,0 +2020-03-17,Hinds,Mississippi,28049,6,0 +2020-03-18,Hinds,Mississippi,28049,6,0 +2020-03-19,Hinds,Mississippi,28049,6,0 +2020-03-20,Hinds,Mississippi,28049,7,0 +2020-03-21,Hinds,Mississippi,28049,14,0 +2020-03-22,Hinds,Mississippi,28049,20,0 +2020-03-23,Hinds,Mississippi,28049,24,0 +2020-03-24,Hinds,Mississippi,28049,31,0 +2020-03-25,Hinds,Mississippi,28049,38,0 +2020-03-26,Hinds,Mississippi,28049,43,0 +2020-03-27,Hinds,Mississippi,28049,50,0 +2020-03-28,Hinds,Mississippi,28049,58,0 +2020-03-29,Hinds,Mississippi,28049,66,0 +2020-03-30,Hinds,Mississippi,28049,74,0 +2020-03-31,Hinds,Mississippi,28049,90,0 +2020-04-01,Hinds,Mississippi,28049,109,0 +2020-04-02,Hinds,Mississippi,28049,118,0 +2020-04-03,Hinds,Mississippi,28049,139,0 +2020-04-04,Hinds,Mississippi,28049,140,0 +2020-04-05,Hinds,Mississippi,28049,154,0 +2020-04-06,Hinds,Mississippi,28049,158,0 +2020-04-07,Hinds,Mississippi,28049,169,0 +2020-04-08,Hinds,Mississippi,28049,178,1 +2020-04-09,Hinds,Mississippi,28049,203,2 +2020-04-10,Hinds,Mississippi,28049,219,2 +2020-04-11,Hinds,Mississippi,28049,234,2 +2020-04-12,Hinds,Mississippi,28049,247,2 +2020-04-13,Hinds,Mississippi,28049,259,2 +2020-04-14,Hinds,Mississippi,28049,263,2 +2020-04-15,Hinds,Mississippi,28049,280,4 +2020-04-16,Hinds,Mississippi,28049,301,4 +2020-04-17,Hinds,Mississippi,28049,314,5 +2020-04-18,Hinds,Mississippi,28049,325,5 +2020-04-19,Hinds,Mississippi,28049,337,5 +2020-04-20,Hinds,Mississippi,28049,347,5 +2020-04-21,Hinds,Mississippi,28049,357,6 +2020-04-22,Hinds,Mississippi,28049,377,6 +2020-04-23,Hinds,Mississippi,28049,383,6 +2020-04-24,Hinds,Mississippi,28049,401,6 +2020-04-25,Hinds,Mississippi,28049,412,7 +2020-04-26,Hinds,Mississippi,28049,415,7 +2020-04-27,Hinds,Mississippi,28049,421,7 +2020-04-28,Hinds,Mississippi,28049,435,7 +2020-04-29,Hinds,Mississippi,28049,450,7 +2020-04-30,Hinds,Mississippi,28049,470,8 +2020-05-01,Hinds,Mississippi,28049,496,8 +2020-05-02,Hinds,Mississippi,28049,505,8 +2020-05-03,Hinds,Mississippi,28049,507,8 +2020-05-04,Hinds,Mississippi,28049,542,9 +2020-05-05,Hinds,Mississippi,28049,565,9 +2020-05-06,Hinds,Mississippi,28049,588,11 +2020-05-07,Hinds,Mississippi,28049,600,11 +2020-05-08,Hinds,Mississippi,28049,657,11 +2020-05-09,Hinds,Mississippi,28049,663,15 +2020-05-10,Hinds,Mississippi,28049,670,15 +2020-05-11,Hinds,Mississippi,28049,675,15 +2020-05-12,Hinds,Mississippi,28049,681,17 +2020-05-13,Hinds,Mississippi,28049,698,17 +2020-05-14,Hinds,Mississippi,28049,717,18 +2020-05-15,Hinds,Mississippi,28049,745,20 +2020-05-16,Hinds,Mississippi,28049,768,22 +2020-05-17,Hinds,Mississippi,28049,773,22 +2020-05-18,Hinds,Mississippi,28049,772,22 +2020-05-19,Hinds,Mississippi,28049,786,22 +2020-05-20,Hinds,Mississippi,28049,800,23 +2020-05-21,Hinds,Mississippi,28049,825,24 +2020-05-22,Hinds,Mississippi,28049,855,24 +2020-05-23,Hinds,Mississippi,28049,877,24 +2020-05-24,Hinds,Mississippi,28049,893,24 +2020-05-25,Hinds,Mississippi,28049,898,24 +2020-05-26,Hinds,Mississippi,28049,904,24 +2020-05-27,Hinds,Mississippi,28049,920,24 +2020-05-28,Hinds,Mississippi,28049,959,24 +2020-05-29,Hinds,Mississippi,28049,971,25 +2020-05-30,Hinds,Mississippi,28049,999,25 +2020-05-31,Hinds,Mississippi,28049,1006,25 +2020-06-01,Hinds,Mississippi,28049,1028,26 +2020-06-02,Hinds,Mississippi,28049,1035,26 +2020-06-03,Hinds,Mississippi,28049,1066,26 +2020-06-04,Hinds,Mississippi,28049,1074,26 +2020-06-05,Hinds,Mississippi,28049,1104,26 +2020-06-06,Hinds,Mississippi,28049,1111,26 +2020-06-07,Hinds,Mississippi,28049,1137,26 +2020-06-08,Hinds,Mississippi,28049,1164,26 +2020-06-09,Hinds,Mississippi,28049,1186,26 +2020-06-10,Hinds,Mississippi,28049,1206,26 +2020-06-11,Hinds,Mississippi,28049,1206,26 +2020-06-12,Hinds,Mississippi,28049,1245,27 +2020-06-13,Hinds,Mississippi,28049,1263,27 +2020-06-14,Hinds,Mississippi,28049,1274,27 +2020-06-15,Hinds,Mississippi,28049,1308,27 +2020-06-16,Hinds,Mississippi,28049,1349,28 +2020-06-17,Hinds,Mississippi,28049,1390,29 +2020-06-18,Hinds,Mississippi,28049,1390,29 +2020-06-19,Hinds,Mississippi,28049,1390,29 +2020-06-20,Hinds,Mississippi,28049,1390,29 +2020-06-21,Hinds,Mississippi,28049,1390,29 +2020-06-22,Hinds,Mississippi,28049,1536,33 +2020-06-23,Hinds,Mississippi,28049,1589,33 +2020-06-24,Hinds,Mississippi,28049,1646,34 +2020-06-25,Hinds,Mississippi,28049,1772,34 +2020-06-26,Hinds,Mississippi,28049,1853,34 +2020-06-27,Hinds,Mississippi,28049,1893,36 +2020-06-28,Hinds,Mississippi,28049,1957,36 +2020-06-29,Hinds,Mississippi,28049,2048,38 +2020-06-30,Hinds,Mississippi,28049,2111,39 +2020-07-01,Hinds,Mississippi,28049,2152,39 +2020-07-02,Hinds,Mississippi,28049,2247,39 +2020-07-03,Hinds,Mississippi,28049,2382,39 +2020-07-04,Hinds,Mississippi,28049,2480,39 +2020-07-05,Hinds,Mississippi,28049,2498,40 +2020-07-06,Hinds,Mississippi,28049,2536,40 +2020-07-07,Hinds,Mississippi,28049,2591,41 +2020-07-08,Hinds,Mississippi,28049,2642,46 +2020-07-09,Hinds,Mississippi,28049,2697,48 +2020-03-19,Holmes,Mississippi,28051,1,0 +2020-03-20,Holmes,Mississippi,28051,3,0 +2020-03-21,Holmes,Mississippi,28051,3,0 +2020-03-22,Holmes,Mississippi,28051,6,0 +2020-03-23,Holmes,Mississippi,28051,6,0 +2020-03-24,Holmes,Mississippi,28051,6,0 +2020-03-25,Holmes,Mississippi,28051,7,1 +2020-03-26,Holmes,Mississippi,28051,7,1 +2020-03-27,Holmes,Mississippi,28051,10,1 +2020-03-28,Holmes,Mississippi,28051,13,1 +2020-03-29,Holmes,Mississippi,28051,13,1 +2020-03-30,Holmes,Mississippi,28051,14,1 +2020-03-31,Holmes,Mississippi,28051,15,1 +2020-04-01,Holmes,Mississippi,28051,16,2 +2020-04-02,Holmes,Mississippi,28051,16,1 +2020-04-03,Holmes,Mississippi,28051,16,1 +2020-04-04,Holmes,Mississippi,28051,17,1 +2020-04-05,Holmes,Mississippi,28051,21,1 +2020-04-06,Holmes,Mississippi,28051,23,2 +2020-04-07,Holmes,Mississippi,28051,25,3 +2020-04-08,Holmes,Mississippi,28051,27,3 +2020-04-09,Holmes,Mississippi,28051,31,3 +2020-04-10,Holmes,Mississippi,28051,39,3 +2020-04-11,Holmes,Mississippi,28051,42,3 +2020-04-12,Holmes,Mississippi,28051,44,3 +2020-04-13,Holmes,Mississippi,28051,46,3 +2020-04-14,Holmes,Mississippi,28051,47,3 +2020-04-15,Holmes,Mississippi,28051,52,3 +2020-04-16,Holmes,Mississippi,28051,53,3 +2020-04-17,Holmes,Mississippi,28051,54,4 +2020-04-18,Holmes,Mississippi,28051,58,4 +2020-04-19,Holmes,Mississippi,28051,58,4 +2020-04-20,Holmes,Mississippi,28051,60,4 +2020-04-21,Holmes,Mississippi,28051,61,5 +2020-04-22,Holmes,Mississippi,28051,78,5 +2020-04-23,Holmes,Mississippi,28051,83,5 +2020-04-24,Holmes,Mississippi,28051,92,5 +2020-04-25,Holmes,Mississippi,28051,100,5 +2020-04-26,Holmes,Mississippi,28051,105,5 +2020-04-27,Holmes,Mississippi,28051,114,5 +2020-04-28,Holmes,Mississippi,28051,121,5 +2020-04-29,Holmes,Mississippi,28051,129,5 +2020-04-30,Holmes,Mississippi,28051,133,5 +2020-05-01,Holmes,Mississippi,28051,153,9 +2020-05-02,Holmes,Mississippi,28051,159,9 +2020-05-03,Holmes,Mississippi,28051,161,9 +2020-05-04,Holmes,Mississippi,28051,168,10 +2020-05-05,Holmes,Mississippi,28051,168,10 +2020-05-06,Holmes,Mississippi,28051,176,12 +2020-05-07,Holmes,Mississippi,28051,190,16 +2020-05-08,Holmes,Mississippi,28051,196,17 +2020-05-09,Holmes,Mississippi,28051,206,18 +2020-05-10,Holmes,Mississippi,28051,213,19 +2020-05-11,Holmes,Mississippi,28051,223,19 +2020-05-12,Holmes,Mississippi,28051,224,19 +2020-05-13,Holmes,Mississippi,28051,231,19 +2020-05-14,Holmes,Mississippi,28051,262,19 +2020-05-15,Holmes,Mississippi,28051,278,19 +2020-05-16,Holmes,Mississippi,28051,288,20 +2020-05-17,Holmes,Mississippi,28051,293,20 +2020-05-18,Holmes,Mississippi,28051,298,20 +2020-05-19,Holmes,Mississippi,28051,310,20 +2020-05-20,Holmes,Mississippi,28051,320,21 +2020-05-21,Holmes,Mississippi,28051,333,21 +2020-05-22,Holmes,Mississippi,28051,343,22 +2020-05-23,Holmes,Mississippi,28051,359,23 +2020-05-24,Holmes,Mississippi,28051,365,23 +2020-05-25,Holmes,Mississippi,28051,369,23 +2020-05-26,Holmes,Mississippi,28051,370,24 +2020-05-27,Holmes,Mississippi,28051,373,24 +2020-05-28,Holmes,Mississippi,28051,385,24 +2020-05-29,Holmes,Mississippi,28051,389,24 +2020-05-30,Holmes,Mississippi,28051,397,28 +2020-05-31,Holmes,Mississippi,28051,429,28 +2020-06-01,Holmes,Mississippi,28051,434,28 +2020-06-02,Holmes,Mississippi,28051,439,28 +2020-06-03,Holmes,Mississippi,28051,441,30 +2020-06-04,Holmes,Mississippi,28051,443,30 +2020-06-05,Holmes,Mississippi,28051,444,31 +2020-06-06,Holmes,Mississippi,28051,444,31 +2020-06-07,Holmes,Mississippi,28051,454,31 +2020-06-08,Holmes,Mississippi,28051,461,31 +2020-06-09,Holmes,Mississippi,28051,457,31 +2020-06-10,Holmes,Mississippi,28051,460,32 +2020-06-11,Holmes,Mississippi,28051,460,32 +2020-06-12,Holmes,Mississippi,28051,463,32 +2020-06-13,Holmes,Mississippi,28051,465,33 +2020-06-14,Holmes,Mississippi,28051,468,34 +2020-06-15,Holmes,Mississippi,28051,471,34 +2020-06-16,Holmes,Mississippi,28051,474,34 +2020-06-17,Holmes,Mississippi,28051,477,35 +2020-06-18,Holmes,Mississippi,28051,477,35 +2020-06-19,Holmes,Mississippi,28051,477,35 +2020-06-20,Holmes,Mississippi,28051,477,35 +2020-06-21,Holmes,Mississippi,28051,477,35 +2020-06-22,Holmes,Mississippi,28051,489,37 +2020-06-23,Holmes,Mississippi,28051,491,37 +2020-06-24,Holmes,Mississippi,28051,496,39 +2020-06-25,Holmes,Mississippi,28051,501,39 +2020-06-26,Holmes,Mississippi,28051,506,39 +2020-06-27,Holmes,Mississippi,28051,507,39 +2020-06-28,Holmes,Mississippi,28051,507,39 +2020-06-29,Holmes,Mississippi,28051,514,40 +2020-06-30,Holmes,Mississippi,28051,520,40 +2020-07-01,Holmes,Mississippi,28051,527,41 +2020-07-02,Holmes,Mississippi,28051,536,41 +2020-07-03,Holmes,Mississippi,28051,544,41 +2020-07-04,Holmes,Mississippi,28051,551,41 +2020-07-05,Holmes,Mississippi,28051,553,41 +2020-07-06,Holmes,Mississippi,28051,557,41 +2020-07-07,Holmes,Mississippi,28051,560,41 +2020-07-08,Holmes,Mississippi,28051,570,41 +2020-07-09,Holmes,Mississippi,28051,573,41 +2020-03-20,Humphreys,Mississippi,28053,1,0 +2020-03-21,Humphreys,Mississippi,28053,1,0 +2020-03-22,Humphreys,Mississippi,28053,1,0 +2020-03-23,Humphreys,Mississippi,28053,1,0 +2020-03-24,Humphreys,Mississippi,28053,1,0 +2020-03-25,Humphreys,Mississippi,28053,1,0 +2020-03-26,Humphreys,Mississippi,28053,1,0 +2020-03-27,Humphreys,Mississippi,28053,1,0 +2020-03-28,Humphreys,Mississippi,28053,2,0 +2020-03-29,Humphreys,Mississippi,28053,2,0 +2020-03-30,Humphreys,Mississippi,28053,2,0 +2020-03-31,Humphreys,Mississippi,28053,3,0 +2020-04-01,Humphreys,Mississippi,28053,4,1 +2020-04-02,Humphreys,Mississippi,28053,4,1 +2020-04-03,Humphreys,Mississippi,28053,4,1 +2020-04-04,Humphreys,Mississippi,28053,4,1 +2020-04-05,Humphreys,Mississippi,28053,4,1 +2020-04-06,Humphreys,Mississippi,28053,4,1 +2020-04-07,Humphreys,Mississippi,28053,5,1 +2020-04-08,Humphreys,Mississippi,28053,6,1 +2020-04-09,Humphreys,Mississippi,28053,7,1 +2020-04-10,Humphreys,Mississippi,28053,9,1 +2020-04-11,Humphreys,Mississippi,28053,9,1 +2020-04-12,Humphreys,Mississippi,28053,9,1 +2020-04-13,Humphreys,Mississippi,28053,11,1 +2020-04-14,Humphreys,Mississippi,28053,11,1 +2020-04-15,Humphreys,Mississippi,28053,12,2 +2020-04-16,Humphreys,Mississippi,28053,12,3 +2020-04-17,Humphreys,Mississippi,28053,12,3 +2020-04-18,Humphreys,Mississippi,28053,12,3 +2020-04-19,Humphreys,Mississippi,28053,12,3 +2020-04-20,Humphreys,Mississippi,28053,12,3 +2020-04-21,Humphreys,Mississippi,28053,13,3 +2020-04-22,Humphreys,Mississippi,28053,14,3 +2020-04-23,Humphreys,Mississippi,28053,14,3 +2020-04-24,Humphreys,Mississippi,28053,14,3 +2020-04-25,Humphreys,Mississippi,28053,14,3 +2020-04-26,Humphreys,Mississippi,28053,14,3 +2020-04-27,Humphreys,Mississippi,28053,18,3 +2020-04-28,Humphreys,Mississippi,28053,18,3 +2020-04-29,Humphreys,Mississippi,28053,22,3 +2020-04-30,Humphreys,Mississippi,28053,23,3 +2020-05-01,Humphreys,Mississippi,28053,24,3 +2020-05-02,Humphreys,Mississippi,28053,25,4 +2020-05-03,Humphreys,Mississippi,28053,24,4 +2020-05-04,Humphreys,Mississippi,28053,25,4 +2020-05-05,Humphreys,Mississippi,28053,26,4 +2020-05-06,Humphreys,Mississippi,28053,27,4 +2020-05-07,Humphreys,Mississippi,28053,28,4 +2020-05-08,Humphreys,Mississippi,28053,28,4 +2020-05-09,Humphreys,Mississippi,28053,30,4 +2020-05-10,Humphreys,Mississippi,28053,30,4 +2020-05-11,Humphreys,Mississippi,28053,34,4 +2020-05-12,Humphreys,Mississippi,28053,38,4 +2020-05-13,Humphreys,Mississippi,28053,39,4 +2020-05-14,Humphreys,Mississippi,28053,39,5 +2020-05-15,Humphreys,Mississippi,28053,42,5 +2020-05-16,Humphreys,Mississippi,28053,44,5 +2020-05-17,Humphreys,Mississippi,28053,45,5 +2020-05-18,Humphreys,Mississippi,28053,46,5 +2020-05-19,Humphreys,Mississippi,28053,49,5 +2020-05-20,Humphreys,Mississippi,28053,49,5 +2020-05-21,Humphreys,Mississippi,28053,49,5 +2020-05-22,Humphreys,Mississippi,28053,50,6 +2020-05-23,Humphreys,Mississippi,28053,52,7 +2020-05-24,Humphreys,Mississippi,28053,53,7 +2020-05-25,Humphreys,Mississippi,28053,53,7 +2020-05-26,Humphreys,Mississippi,28053,52,7 +2020-05-27,Humphreys,Mississippi,28053,53,7 +2020-05-28,Humphreys,Mississippi,28053,58,7 +2020-05-29,Humphreys,Mississippi,28053,59,7 +2020-05-30,Humphreys,Mississippi,28053,60,7 +2020-05-31,Humphreys,Mississippi,28053,59,7 +2020-06-01,Humphreys,Mississippi,28053,59,7 +2020-06-02,Humphreys,Mississippi,28053,59,7 +2020-06-03,Humphreys,Mississippi,28053,60,7 +2020-06-04,Humphreys,Mississippi,28053,63,7 +2020-06-05,Humphreys,Mississippi,28053,64,7 +2020-06-06,Humphreys,Mississippi,28053,69,7 +2020-06-07,Humphreys,Mississippi,28053,70,7 +2020-06-08,Humphreys,Mississippi,28053,74,7 +2020-06-09,Humphreys,Mississippi,28053,75,8 +2020-06-10,Humphreys,Mississippi,28053,78,8 +2020-06-11,Humphreys,Mississippi,28053,78,8 +2020-06-12,Humphreys,Mississippi,28053,80,8 +2020-06-13,Humphreys,Mississippi,28053,80,8 +2020-06-14,Humphreys,Mississippi,28053,80,8 +2020-06-15,Humphreys,Mississippi,28053,82,8 +2020-06-16,Humphreys,Mississippi,28053,83,8 +2020-06-17,Humphreys,Mississippi,28053,83,8 +2020-06-18,Humphreys,Mississippi,28053,83,8 +2020-06-19,Humphreys,Mississippi,28053,83,8 +2020-06-20,Humphreys,Mississippi,28053,83,8 +2020-06-21,Humphreys,Mississippi,28053,83,8 +2020-06-22,Humphreys,Mississippi,28053,93,9 +2020-06-23,Humphreys,Mississippi,28053,95,9 +2020-06-24,Humphreys,Mississippi,28053,101,9 +2020-06-25,Humphreys,Mississippi,28053,107,9 +2020-06-26,Humphreys,Mississippi,28053,109,9 +2020-06-27,Humphreys,Mississippi,28053,111,9 +2020-06-28,Humphreys,Mississippi,28053,111,9 +2020-06-29,Humphreys,Mississippi,28053,115,9 +2020-06-30,Humphreys,Mississippi,28053,120,9 +2020-07-01,Humphreys,Mississippi,28053,123,9 +2020-07-02,Humphreys,Mississippi,28053,130,9 +2020-07-03,Humphreys,Mississippi,28053,132,9 +2020-07-04,Humphreys,Mississippi,28053,147,9 +2020-07-05,Humphreys,Mississippi,28053,147,9 +2020-07-06,Humphreys,Mississippi,28053,150,9 +2020-07-07,Humphreys,Mississippi,28053,156,9 +2020-07-08,Humphreys,Mississippi,28053,156,9 +2020-07-09,Humphreys,Mississippi,28053,159,10 +2020-06-25,Issaquena,Mississippi,28055,2,0 +2020-06-26,Issaquena,Mississippi,28055,5,0 +2020-06-27,Issaquena,Mississippi,28055,6,1 +2020-06-28,Issaquena,Mississippi,28055,6,1 +2020-06-29,Issaquena,Mississippi,28055,6,1 +2020-06-30,Issaquena,Mississippi,28055,6,1 +2020-07-01,Issaquena,Mississippi,28055,7,1 +2020-07-02,Issaquena,Mississippi,28055,8,1 +2020-07-03,Issaquena,Mississippi,28055,9,1 +2020-07-04,Issaquena,Mississippi,28055,9,1 +2020-07-05,Issaquena,Mississippi,28055,9,1 +2020-07-06,Issaquena,Mississippi,28055,9,1 +2020-07-07,Issaquena,Mississippi,28055,10,1 +2020-07-08,Issaquena,Mississippi,28055,10,1 +2020-07-09,Issaquena,Mississippi,28055,10,1 +2020-03-21,Itawamba,Mississippi,28057,3,0 +2020-03-22,Itawamba,Mississippi,28057,3,0 +2020-03-23,Itawamba,Mississippi,28057,3,0 +2020-03-24,Itawamba,Mississippi,28057,3,0 +2020-03-25,Itawamba,Mississippi,28057,3,0 +2020-03-26,Itawamba,Mississippi,28057,3,0 +2020-03-27,Itawamba,Mississippi,28057,3,0 +2020-03-28,Itawamba,Mississippi,28057,3,0 +2020-03-29,Itawamba,Mississippi,28057,3,0 +2020-03-30,Itawamba,Mississippi,28057,3,0 +2020-03-31,Itawamba,Mississippi,28057,3,0 +2020-04-01,Itawamba,Mississippi,28057,4,0 +2020-04-02,Itawamba,Mississippi,28057,3,0 +2020-04-03,Itawamba,Mississippi,28057,3,0 +2020-04-04,Itawamba,Mississippi,28057,3,0 +2020-04-05,Itawamba,Mississippi,28057,3,0 +2020-04-06,Itawamba,Mississippi,28057,4,0 +2020-04-07,Itawamba,Mississippi,28057,5,0 +2020-04-08,Itawamba,Mississippi,28057,5,0 +2020-04-09,Itawamba,Mississippi,28057,7,0 +2020-04-10,Itawamba,Mississippi,28057,8,0 +2020-04-11,Itawamba,Mississippi,28057,9,0 +2020-04-12,Itawamba,Mississippi,28057,9,0 +2020-04-13,Itawamba,Mississippi,28057,9,0 +2020-04-14,Itawamba,Mississippi,28057,9,0 +2020-04-15,Itawamba,Mississippi,28057,11,0 +2020-04-16,Itawamba,Mississippi,28057,13,0 +2020-04-17,Itawamba,Mississippi,28057,13,1 +2020-04-18,Itawamba,Mississippi,28057,21,1 +2020-04-19,Itawamba,Mississippi,28057,21,1 +2020-04-20,Itawamba,Mississippi,28057,26,1 +2020-04-21,Itawamba,Mississippi,28057,26,1 +2020-04-22,Itawamba,Mississippi,28057,27,1 +2020-04-23,Itawamba,Mississippi,28057,30,1 +2020-04-24,Itawamba,Mississippi,28057,32,1 +2020-04-25,Itawamba,Mississippi,28057,33,1 +2020-04-26,Itawamba,Mississippi,28057,37,1 +2020-04-27,Itawamba,Mississippi,28057,49,2 +2020-04-28,Itawamba,Mississippi,28057,51,2 +2020-04-29,Itawamba,Mississippi,28057,51,2 +2020-04-30,Itawamba,Mississippi,28057,57,3 +2020-05-01,Itawamba,Mississippi,28057,59,3 +2020-05-02,Itawamba,Mississippi,28057,62,4 +2020-05-03,Itawamba,Mississippi,28057,63,4 +2020-05-04,Itawamba,Mississippi,28057,64,4 +2020-05-05,Itawamba,Mississippi,28057,64,6 +2020-05-06,Itawamba,Mississippi,28057,65,6 +2020-05-07,Itawamba,Mississippi,28057,66,6 +2020-05-08,Itawamba,Mississippi,28057,67,6 +2020-05-09,Itawamba,Mississippi,28057,68,6 +2020-05-10,Itawamba,Mississippi,28057,68,6 +2020-05-11,Itawamba,Mississippi,28057,69,7 +2020-05-12,Itawamba,Mississippi,28057,70,7 +2020-05-13,Itawamba,Mississippi,28057,71,7 +2020-05-14,Itawamba,Mississippi,28057,73,7 +2020-05-15,Itawamba,Mississippi,28057,75,7 +2020-05-16,Itawamba,Mississippi,28057,75,7 +2020-05-17,Itawamba,Mississippi,28057,78,7 +2020-05-18,Itawamba,Mississippi,28057,79,7 +2020-05-19,Itawamba,Mississippi,28057,79,7 +2020-05-20,Itawamba,Mississippi,28057,81,7 +2020-05-21,Itawamba,Mississippi,28057,80,7 +2020-05-22,Itawamba,Mississippi,28057,81,7 +2020-05-23,Itawamba,Mississippi,28057,82,7 +2020-05-24,Itawamba,Mississippi,28057,85,7 +2020-05-25,Itawamba,Mississippi,28057,85,7 +2020-05-26,Itawamba,Mississippi,28057,86,7 +2020-05-27,Itawamba,Mississippi,28057,85,7 +2020-05-28,Itawamba,Mississippi,28057,84,7 +2020-05-29,Itawamba,Mississippi,28057,85,7 +2020-05-30,Itawamba,Mississippi,28057,87,7 +2020-05-31,Itawamba,Mississippi,28057,86,7 +2020-06-01,Itawamba,Mississippi,28057,88,7 +2020-06-02,Itawamba,Mississippi,28057,89,7 +2020-06-03,Itawamba,Mississippi,28057,90,7 +2020-06-04,Itawamba,Mississippi,28057,89,7 +2020-06-05,Itawamba,Mississippi,28057,89,7 +2020-06-06,Itawamba,Mississippi,28057,89,8 +2020-06-07,Itawamba,Mississippi,28057,90,8 +2020-06-08,Itawamba,Mississippi,28057,92,8 +2020-06-09,Itawamba,Mississippi,28057,93,8 +2020-06-10,Itawamba,Mississippi,28057,96,8 +2020-06-11,Itawamba,Mississippi,28057,96,8 +2020-06-12,Itawamba,Mississippi,28057,99,8 +2020-06-13,Itawamba,Mississippi,28057,99,8 +2020-06-14,Itawamba,Mississippi,28057,100,8 +2020-06-15,Itawamba,Mississippi,28057,103,8 +2020-06-16,Itawamba,Mississippi,28057,106,8 +2020-06-17,Itawamba,Mississippi,28057,106,8 +2020-06-18,Itawamba,Mississippi,28057,106,8 +2020-06-19,Itawamba,Mississippi,28057,106,8 +2020-06-20,Itawamba,Mississippi,28057,106,8 +2020-06-21,Itawamba,Mississippi,28057,106,8 +2020-06-22,Itawamba,Mississippi,28057,109,8 +2020-06-23,Itawamba,Mississippi,28057,112,8 +2020-06-24,Itawamba,Mississippi,28057,112,8 +2020-06-25,Itawamba,Mississippi,28057,112,8 +2020-06-26,Itawamba,Mississippi,28057,113,8 +2020-06-27,Itawamba,Mississippi,28057,113,8 +2020-06-28,Itawamba,Mississippi,28057,115,8 +2020-06-29,Itawamba,Mississippi,28057,119,8 +2020-06-30,Itawamba,Mississippi,28057,122,8 +2020-07-01,Itawamba,Mississippi,28057,127,8 +2020-07-02,Itawamba,Mississippi,28057,130,8 +2020-07-03,Itawamba,Mississippi,28057,134,8 +2020-07-04,Itawamba,Mississippi,28057,135,8 +2020-07-05,Itawamba,Mississippi,28057,135,8 +2020-07-06,Itawamba,Mississippi,28057,136,8 +2020-07-07,Itawamba,Mississippi,28057,137,8 +2020-07-08,Itawamba,Mississippi,28057,140,8 +2020-07-09,Itawamba,Mississippi,28057,141,8 +2020-03-17,Jackson,Mississippi,28059,1,0 +2020-03-18,Jackson,Mississippi,28059,1,0 +2020-03-19,Jackson,Mississippi,28059,2,0 +2020-03-20,Jackson,Mississippi,28059,3,0 +2020-03-21,Jackson,Mississippi,28059,5,0 +2020-03-22,Jackson,Mississippi,28059,5,0 +2020-03-23,Jackson,Mississippi,28059,7,0 +2020-03-24,Jackson,Mississippi,28059,10,0 +2020-03-25,Jackson,Mississippi,28059,12,0 +2020-03-26,Jackson,Mississippi,28059,16,0 +2020-03-27,Jackson,Mississippi,28059,24,0 +2020-03-28,Jackson,Mississippi,28059,33,0 +2020-03-29,Jackson,Mississippi,28059,34,0 +2020-03-30,Jackson,Mississippi,28059,39,0 +2020-03-31,Jackson,Mississippi,28059,40,0 +2020-04-01,Jackson,Mississippi,28059,52,0 +2020-04-02,Jackson,Mississippi,28059,57,1 +2020-04-03,Jackson,Mississippi,28059,75,1 +2020-04-04,Jackson,Mississippi,28059,79,1 +2020-04-05,Jackson,Mississippi,28059,86,3 +2020-04-06,Jackson,Mississippi,28059,98,5 +2020-04-07,Jackson,Mississippi,28059,108,5 +2020-04-08,Jackson,Mississippi,28059,111,5 +2020-04-09,Jackson,Mississippi,28059,122,5 +2020-04-10,Jackson,Mississippi,28059,135,5 +2020-04-11,Jackson,Mississippi,28059,139,5 +2020-04-12,Jackson,Mississippi,28059,140,5 +2020-04-13,Jackson,Mississippi,28059,147,5 +2020-04-14,Jackson,Mississippi,28059,157,5 +2020-04-15,Jackson,Mississippi,28059,182,5 +2020-04-16,Jackson,Mississippi,28059,189,5 +2020-04-17,Jackson,Mississippi,28059,196,6 +2020-04-18,Jackson,Mississippi,28059,201,6 +2020-04-19,Jackson,Mississippi,28059,205,6 +2020-04-20,Jackson,Mississippi,28059,209,6 +2020-04-21,Jackson,Mississippi,28059,211,6 +2020-04-22,Jackson,Mississippi,28059,221,6 +2020-04-23,Jackson,Mississippi,28059,228,6 +2020-04-24,Jackson,Mississippi,28059,235,6 +2020-04-25,Jackson,Mississippi,28059,237,6 +2020-04-26,Jackson,Mississippi,28059,238,6 +2020-04-27,Jackson,Mississippi,28059,240,6 +2020-04-28,Jackson,Mississippi,28059,252,6 +2020-04-29,Jackson,Mississippi,28059,255,6 +2020-04-30,Jackson,Mississippi,28059,259,6 +2020-05-01,Jackson,Mississippi,28059,267,6 +2020-05-02,Jackson,Mississippi,28059,267,7 +2020-05-03,Jackson,Mississippi,28059,267,7 +2020-05-04,Jackson,Mississippi,28059,267,7 +2020-05-05,Jackson,Mississippi,28059,270,9 +2020-05-06,Jackson,Mississippi,28059,271,10 +2020-05-07,Jackson,Mississippi,28059,272,11 +2020-05-08,Jackson,Mississippi,28059,273,11 +2020-05-09,Jackson,Mississippi,28059,275,11 +2020-05-10,Jackson,Mississippi,28059,275,11 +2020-05-11,Jackson,Mississippi,28059,276,11 +2020-05-12,Jackson,Mississippi,28059,276,13 +2020-05-13,Jackson,Mississippi,28059,278,13 +2020-05-14,Jackson,Mississippi,28059,280,13 +2020-05-15,Jackson,Mississippi,28059,283,13 +2020-05-16,Jackson,Mississippi,28059,284,13 +2020-05-17,Jackson,Mississippi,28059,286,13 +2020-05-18,Jackson,Mississippi,28059,287,13 +2020-05-19,Jackson,Mississippi,28059,287,13 +2020-05-20,Jackson,Mississippi,28059,288,13 +2020-05-21,Jackson,Mississippi,28059,291,13 +2020-05-22,Jackson,Mississippi,28059,291,13 +2020-05-23,Jackson,Mississippi,28059,296,13 +2020-05-24,Jackson,Mississippi,28059,296,13 +2020-05-25,Jackson,Mississippi,28059,296,13 +2020-05-26,Jackson,Mississippi,28059,296,13 +2020-05-27,Jackson,Mississippi,28059,300,13 +2020-05-28,Jackson,Mississippi,28059,303,13 +2020-05-29,Jackson,Mississippi,28059,302,13 +2020-05-30,Jackson,Mississippi,28059,305,13 +2020-05-31,Jackson,Mississippi,28059,308,13 +2020-06-01,Jackson,Mississippi,28059,307,13 +2020-06-02,Jackson,Mississippi,28059,308,13 +2020-06-03,Jackson,Mississippi,28059,309,14 +2020-06-04,Jackson,Mississippi,28059,314,15 +2020-06-05,Jackson,Mississippi,28059,314,15 +2020-06-06,Jackson,Mississippi,28059,317,15 +2020-06-07,Jackson,Mississippi,28059,321,15 +2020-06-08,Jackson,Mississippi,28059,329,16 +2020-06-09,Jackson,Mississippi,28059,338,16 +2020-06-10,Jackson,Mississippi,28059,339,16 +2020-06-11,Jackson,Mississippi,28059,339,16 +2020-06-12,Jackson,Mississippi,28059,344,16 +2020-06-13,Jackson,Mississippi,28059,350,16 +2020-06-14,Jackson,Mississippi,28059,356,16 +2020-06-15,Jackson,Mississippi,28059,367,16 +2020-06-16,Jackson,Mississippi,28059,378,16 +2020-06-17,Jackson,Mississippi,28059,385,16 +2020-06-18,Jackson,Mississippi,28059,385,16 +2020-06-19,Jackson,Mississippi,28059,385,16 +2020-06-20,Jackson,Mississippi,28059,385,16 +2020-06-21,Jackson,Mississippi,28059,385,16 +2020-06-22,Jackson,Mississippi,28059,402,16 +2020-06-23,Jackson,Mississippi,28059,425,16 +2020-06-24,Jackson,Mississippi,28059,439,16 +2020-06-25,Jackson,Mississippi,28059,458,16 +2020-06-26,Jackson,Mississippi,28059,471,16 +2020-06-27,Jackson,Mississippi,28059,473,16 +2020-06-28,Jackson,Mississippi,28059,475,16 +2020-06-29,Jackson,Mississippi,28059,493,16 +2020-06-30,Jackson,Mississippi,28059,505,16 +2020-07-01,Jackson,Mississippi,28059,533,16 +2020-07-02,Jackson,Mississippi,28059,557,16 +2020-07-03,Jackson,Mississippi,28059,584,16 +2020-07-04,Jackson,Mississippi,28059,616,16 +2020-07-05,Jackson,Mississippi,28059,622,16 +2020-07-06,Jackson,Mississippi,28059,638,16 +2020-07-07,Jackson,Mississippi,28059,689,17 +2020-07-08,Jackson,Mississippi,28059,704,17 +2020-07-09,Jackson,Mississippi,28059,727,17 +2020-04-01,Jasper,Mississippi,28061,1,0 +2020-04-02,Jasper,Mississippi,28061,2,0 +2020-04-03,Jasper,Mississippi,28061,3,0 +2020-04-04,Jasper,Mississippi,28061,3,0 +2020-04-05,Jasper,Mississippi,28061,3,0 +2020-04-06,Jasper,Mississippi,28061,3,0 +2020-04-07,Jasper,Mississippi,28061,4,0 +2020-04-08,Jasper,Mississippi,28061,4,0 +2020-04-09,Jasper,Mississippi,28061,10,0 +2020-04-10,Jasper,Mississippi,28061,10,0 +2020-04-11,Jasper,Mississippi,28061,12,0 +2020-04-12,Jasper,Mississippi,28061,14,0 +2020-04-13,Jasper,Mississippi,28061,14,0 +2020-04-14,Jasper,Mississippi,28061,14,0 +2020-04-15,Jasper,Mississippi,28061,15,0 +2020-04-16,Jasper,Mississippi,28061,19,0 +2020-04-17,Jasper,Mississippi,28061,20,1 +2020-04-18,Jasper,Mississippi,28061,22,1 +2020-04-19,Jasper,Mississippi,28061,23,1 +2020-04-20,Jasper,Mississippi,28061,23,1 +2020-04-21,Jasper,Mississippi,28061,23,1 +2020-04-22,Jasper,Mississippi,28061,24,1 +2020-04-23,Jasper,Mississippi,28061,27,1 +2020-04-24,Jasper,Mississippi,28061,29,1 +2020-04-25,Jasper,Mississippi,28061,32,1 +2020-04-26,Jasper,Mississippi,28061,31,1 +2020-04-27,Jasper,Mississippi,28061,32,1 +2020-04-28,Jasper,Mississippi,28061,33,1 +2020-04-29,Jasper,Mississippi,28061,34,1 +2020-04-30,Jasper,Mississippi,28061,42,1 +2020-05-01,Jasper,Mississippi,28061,48,1 +2020-05-02,Jasper,Mississippi,28061,54,1 +2020-05-03,Jasper,Mississippi,28061,55,1 +2020-05-04,Jasper,Mississippi,28061,62,1 +2020-05-05,Jasper,Mississippi,28061,64,2 +2020-05-06,Jasper,Mississippi,28061,66,2 +2020-05-07,Jasper,Mississippi,28061,76,2 +2020-05-08,Jasper,Mississippi,28061,84,2 +2020-05-09,Jasper,Mississippi,28061,86,2 +2020-05-10,Jasper,Mississippi,28061,86,2 +2020-05-11,Jasper,Mississippi,28061,89,2 +2020-05-12,Jasper,Mississippi,28061,92,2 +2020-05-13,Jasper,Mississippi,28061,97,3 +2020-05-14,Jasper,Mississippi,28061,104,3 +2020-05-15,Jasper,Mississippi,28061,110,3 +2020-05-16,Jasper,Mississippi,28061,110,3 +2020-05-17,Jasper,Mississippi,28061,111,3 +2020-05-18,Jasper,Mississippi,28061,114,3 +2020-05-19,Jasper,Mississippi,28061,116,3 +2020-05-20,Jasper,Mississippi,28061,123,3 +2020-05-21,Jasper,Mississippi,28061,126,3 +2020-05-22,Jasper,Mississippi,28061,131,3 +2020-05-23,Jasper,Mississippi,28061,135,3 +2020-05-24,Jasper,Mississippi,28061,139,3 +2020-05-25,Jasper,Mississippi,28061,145,3 +2020-05-26,Jasper,Mississippi,28061,146,3 +2020-05-27,Jasper,Mississippi,28061,148,3 +2020-05-28,Jasper,Mississippi,28061,152,4 +2020-05-29,Jasper,Mississippi,28061,152,4 +2020-05-30,Jasper,Mississippi,28061,157,4 +2020-05-31,Jasper,Mississippi,28061,163,4 +2020-06-01,Jasper,Mississippi,28061,163,4 +2020-06-02,Jasper,Mississippi,28061,165,4 +2020-06-03,Jasper,Mississippi,28061,166,4 +2020-06-04,Jasper,Mississippi,28061,167,4 +2020-06-05,Jasper,Mississippi,28061,168,4 +2020-06-06,Jasper,Mississippi,28061,175,4 +2020-06-07,Jasper,Mississippi,28061,179,4 +2020-06-08,Jasper,Mississippi,28061,184,4 +2020-06-09,Jasper,Mississippi,28061,185,4 +2020-06-10,Jasper,Mississippi,28061,189,4 +2020-06-11,Jasper,Mississippi,28061,189,4 +2020-06-12,Jasper,Mississippi,28061,190,4 +2020-06-13,Jasper,Mississippi,28061,193,4 +2020-06-14,Jasper,Mississippi,28061,193,4 +2020-06-15,Jasper,Mississippi,28061,197,4 +2020-06-16,Jasper,Mississippi,28061,200,4 +2020-06-17,Jasper,Mississippi,28061,203,4 +2020-06-18,Jasper,Mississippi,28061,203,4 +2020-06-19,Jasper,Mississippi,28061,203,4 +2020-06-20,Jasper,Mississippi,28061,203,4 +2020-06-21,Jasper,Mississippi,28061,203,4 +2020-06-22,Jasper,Mississippi,28061,212,6 +2020-06-23,Jasper,Mississippi,28061,216,6 +2020-06-24,Jasper,Mississippi,28061,218,6 +2020-06-25,Jasper,Mississippi,28061,221,6 +2020-06-26,Jasper,Mississippi,28061,221,6 +2020-06-27,Jasper,Mississippi,28061,229,6 +2020-06-28,Jasper,Mississippi,28061,234,6 +2020-06-29,Jasper,Mississippi,28061,239,6 +2020-06-30,Jasper,Mississippi,28061,245,6 +2020-07-01,Jasper,Mississippi,28061,250,6 +2020-07-02,Jasper,Mississippi,28061,251,6 +2020-07-03,Jasper,Mississippi,28061,256,6 +2020-07-04,Jasper,Mississippi,28061,261,6 +2020-07-05,Jasper,Mississippi,28061,262,6 +2020-07-06,Jasper,Mississippi,28061,263,6 +2020-07-07,Jasper,Mississippi,28061,267,6 +2020-07-08,Jasper,Mississippi,28061,266,6 +2020-07-09,Jasper,Mississippi,28061,267,6 +2020-03-27,Jefferson,Mississippi,28063,1,0 +2020-03-28,Jefferson,Mississippi,28063,1,0 +2020-03-29,Jefferson,Mississippi,28063,1,0 +2020-03-30,Jefferson,Mississippi,28063,1,0 +2020-03-31,Jefferson,Mississippi,28063,1,0 +2020-04-01,Jefferson,Mississippi,28063,1,0 +2020-04-02,Jefferson,Mississippi,28063,1,0 +2020-04-03,Jefferson,Mississippi,28063,1,0 +2020-04-04,Jefferson,Mississippi,28063,2,0 +2020-04-05,Jefferson,Mississippi,28063,3,0 +2020-04-06,Jefferson,Mississippi,28063,3,0 +2020-04-07,Jefferson,Mississippi,28063,3,0 +2020-04-08,Jefferson,Mississippi,28063,4,0 +2020-04-09,Jefferson,Mississippi,28063,4,0 +2020-04-10,Jefferson,Mississippi,28063,4,0 +2020-04-11,Jefferson,Mississippi,28063,4,0 +2020-04-12,Jefferson,Mississippi,28063,4,0 +2020-04-13,Jefferson,Mississippi,28063,4,0 +2020-04-14,Jefferson,Mississippi,28063,4,0 +2020-04-15,Jefferson,Mississippi,28063,4,0 +2020-04-16,Jefferson,Mississippi,28063,4,0 +2020-04-17,Jefferson,Mississippi,28063,4,0 +2020-04-18,Jefferson,Mississippi,28063,4,0 +2020-04-19,Jefferson,Mississippi,28063,4,0 +2020-04-20,Jefferson,Mississippi,28063,6,0 +2020-04-21,Jefferson,Mississippi,28063,5,0 +2020-04-22,Jefferson,Mississippi,28063,5,0 +2020-04-23,Jefferson,Mississippi,28063,5,0 +2020-04-24,Jefferson,Mississippi,28063,5,0 +2020-04-25,Jefferson,Mississippi,28063,8,0 +2020-04-26,Jefferson,Mississippi,28063,9,0 +2020-04-27,Jefferson,Mississippi,28063,12,0 +2020-04-28,Jefferson,Mississippi,28063,16,0 +2020-04-29,Jefferson,Mississippi,28063,23,0 +2020-04-30,Jefferson,Mississippi,28063,18,0 +2020-05-01,Jefferson,Mississippi,28063,20,0 +2020-05-02,Jefferson,Mississippi,28063,21,0 +2020-05-03,Jefferson,Mississippi,28063,22,0 +2020-05-04,Jefferson,Mississippi,28063,23,0 +2020-05-05,Jefferson,Mississippi,28063,24,0 +2020-05-06,Jefferson,Mississippi,28063,26,0 +2020-05-07,Jefferson,Mississippi,28063,30,0 +2020-05-08,Jefferson,Mississippi,28063,30,0 +2020-05-09,Jefferson,Mississippi,28063,30,0 +2020-05-10,Jefferson,Mississippi,28063,30,0 +2020-05-11,Jefferson,Mississippi,28063,31,0 +2020-05-12,Jefferson,Mississippi,28063,32,0 +2020-05-13,Jefferson,Mississippi,28063,32,0 +2020-05-14,Jefferson,Mississippi,28063,33,0 +2020-05-15,Jefferson,Mississippi,28063,34,0 +2020-05-16,Jefferson,Mississippi,28063,35,0 +2020-05-17,Jefferson,Mississippi,28063,37,0 +2020-05-18,Jefferson,Mississippi,28063,37,0 +2020-05-19,Jefferson,Mississippi,28063,38,0 +2020-05-20,Jefferson,Mississippi,28063,38,0 +2020-05-21,Jefferson,Mississippi,28063,40,0 +2020-05-22,Jefferson,Mississippi,28063,40,0 +2020-05-23,Jefferson,Mississippi,28063,40,0 +2020-05-24,Jefferson,Mississippi,28063,40,0 +2020-05-25,Jefferson,Mississippi,28063,40,0 +2020-05-26,Jefferson,Mississippi,28063,41,0 +2020-05-27,Jefferson,Mississippi,28063,40,0 +2020-05-28,Jefferson,Mississippi,28063,40,0 +2020-05-29,Jefferson,Mississippi,28063,41,1 +2020-05-30,Jefferson,Mississippi,28063,42,1 +2020-05-31,Jefferson,Mississippi,28063,42,1 +2020-06-01,Jefferson,Mississippi,28063,42,1 +2020-06-02,Jefferson,Mississippi,28063,43,1 +2020-06-03,Jefferson,Mississippi,28063,42,1 +2020-06-04,Jefferson,Mississippi,28063,42,1 +2020-06-05,Jefferson,Mississippi,28063,42,1 +2020-06-06,Jefferson,Mississippi,28063,46,1 +2020-06-07,Jefferson,Mississippi,28063,46,1 +2020-06-08,Jefferson,Mississippi,28063,50,1 +2020-06-09,Jefferson,Mississippi,28063,49,1 +2020-06-10,Jefferson,Mississippi,28063,50,2 +2020-06-11,Jefferson,Mississippi,28063,50,2 +2020-06-12,Jefferson,Mississippi,28063,52,2 +2020-06-13,Jefferson,Mississippi,28063,53,2 +2020-06-14,Jefferson,Mississippi,28063,54,2 +2020-06-15,Jefferson,Mississippi,28063,55,2 +2020-06-16,Jefferson,Mississippi,28063,54,2 +2020-06-17,Jefferson,Mississippi,28063,57,2 +2020-06-18,Jefferson,Mississippi,28063,57,2 +2020-06-19,Jefferson,Mississippi,28063,57,2 +2020-06-20,Jefferson,Mississippi,28063,57,2 +2020-06-21,Jefferson,Mississippi,28063,57,2 +2020-06-22,Jefferson,Mississippi,28063,63,2 +2020-06-23,Jefferson,Mississippi,28063,64,2 +2020-06-24,Jefferson,Mississippi,28063,65,3 +2020-06-25,Jefferson,Mississippi,28063,69,3 +2020-06-26,Jefferson,Mississippi,28063,76,3 +2020-06-27,Jefferson,Mississippi,28063,78,3 +2020-06-28,Jefferson,Mississippi,28063,80,3 +2020-06-29,Jefferson,Mississippi,28063,83,3 +2020-06-30,Jefferson,Mississippi,28063,84,3 +2020-07-01,Jefferson,Mississippi,28063,92,3 +2020-07-02,Jefferson,Mississippi,28063,96,3 +2020-07-03,Jefferson,Mississippi,28063,99,3 +2020-07-04,Jefferson,Mississippi,28063,107,3 +2020-07-05,Jefferson,Mississippi,28063,107,3 +2020-07-06,Jefferson,Mississippi,28063,108,3 +2020-07-07,Jefferson,Mississippi,28063,110,3 +2020-07-08,Jefferson,Mississippi,28063,114,3 +2020-07-09,Jefferson,Mississippi,28063,117,3 +2020-04-09,Jefferson Davis,Mississippi,28065,4,0 +2020-04-10,Jefferson Davis,Mississippi,28065,5,0 +2020-04-11,Jefferson Davis,Mississippi,28065,5,0 +2020-04-12,Jefferson Davis,Mississippi,28065,5,0 +2020-04-13,Jefferson Davis,Mississippi,28065,5,1 +2020-04-14,Jefferson Davis,Mississippi,28065,6,1 +2020-04-15,Jefferson Davis,Mississippi,28065,7,1 +2020-04-16,Jefferson Davis,Mississippi,28065,7,1 +2020-04-17,Jefferson Davis,Mississippi,28065,8,1 +2020-04-18,Jefferson Davis,Mississippi,28065,8,1 +2020-04-19,Jefferson Davis,Mississippi,28065,8,1 +2020-04-20,Jefferson Davis,Mississippi,28065,10,1 +2020-04-21,Jefferson Davis,Mississippi,28065,12,1 +2020-04-22,Jefferson Davis,Mississippi,28065,12,1 +2020-04-23,Jefferson Davis,Mississippi,28065,13,1 +2020-04-24,Jefferson Davis,Mississippi,28065,19,1 +2020-04-25,Jefferson Davis,Mississippi,28065,22,1 +2020-04-26,Jefferson Davis,Mississippi,28065,25,1 +2020-04-27,Jefferson Davis,Mississippi,28065,27,1 +2020-04-28,Jefferson Davis,Mississippi,28065,29,1 +2020-04-29,Jefferson Davis,Mississippi,28065,31,1 +2020-04-30,Jefferson Davis,Mississippi,28065,32,1 +2020-05-01,Jefferson Davis,Mississippi,28065,35,1 +2020-05-02,Jefferson Davis,Mississippi,28065,38,1 +2020-05-03,Jefferson Davis,Mississippi,28065,40,1 +2020-05-04,Jefferson Davis,Mississippi,28065,43,1 +2020-05-05,Jefferson Davis,Mississippi,28065,45,1 +2020-05-06,Jefferson Davis,Mississippi,28065,45,1 +2020-05-07,Jefferson Davis,Mississippi,28065,47,1 +2020-05-08,Jefferson Davis,Mississippi,28065,51,1 +2020-05-09,Jefferson Davis,Mississippi,28065,53,1 +2020-05-10,Jefferson Davis,Mississippi,28065,53,1 +2020-05-11,Jefferson Davis,Mississippi,28065,55,1 +2020-05-12,Jefferson Davis,Mississippi,28065,58,1 +2020-05-13,Jefferson Davis,Mississippi,28065,60,1 +2020-05-14,Jefferson Davis,Mississippi,28065,63,1 +2020-05-15,Jefferson Davis,Mississippi,28065,67,2 +2020-05-16,Jefferson Davis,Mississippi,28065,68,2 +2020-05-17,Jefferson Davis,Mississippi,28065,68,2 +2020-05-18,Jefferson Davis,Mississippi,28065,68,2 +2020-05-19,Jefferson Davis,Mississippi,28065,69,2 +2020-05-20,Jefferson Davis,Mississippi,28065,69,2 +2020-05-21,Jefferson Davis,Mississippi,28065,69,2 +2020-05-22,Jefferson Davis,Mississippi,28065,69,2 +2020-05-23,Jefferson Davis,Mississippi,28065,70,2 +2020-05-24,Jefferson Davis,Mississippi,28065,71,2 +2020-05-25,Jefferson Davis,Mississippi,28065,71,2 +2020-05-26,Jefferson Davis,Mississippi,28065,74,2 +2020-05-27,Jefferson Davis,Mississippi,28065,75,2 +2020-05-28,Jefferson Davis,Mississippi,28065,77,2 +2020-05-29,Jefferson Davis,Mississippi,28065,77,2 +2020-05-30,Jefferson Davis,Mississippi,28065,77,2 +2020-05-31,Jefferson Davis,Mississippi,28065,77,3 +2020-06-01,Jefferson Davis,Mississippi,28065,77,3 +2020-06-02,Jefferson Davis,Mississippi,28065,80,3 +2020-06-03,Jefferson Davis,Mississippi,28065,81,3 +2020-06-04,Jefferson Davis,Mississippi,28065,82,3 +2020-06-05,Jefferson Davis,Mississippi,28065,82,3 +2020-06-06,Jefferson Davis,Mississippi,28065,84,3 +2020-06-07,Jefferson Davis,Mississippi,28065,84,3 +2020-06-08,Jefferson Davis,Mississippi,28065,85,3 +2020-06-09,Jefferson Davis,Mississippi,28065,84,3 +2020-06-10,Jefferson Davis,Mississippi,28065,84,3 +2020-06-11,Jefferson Davis,Mississippi,28065,84,3 +2020-06-12,Jefferson Davis,Mississippi,28065,84,3 +2020-06-13,Jefferson Davis,Mississippi,28065,84,3 +2020-06-14,Jefferson Davis,Mississippi,28065,84,3 +2020-06-15,Jefferson Davis,Mississippi,28065,84,3 +2020-06-16,Jefferson Davis,Mississippi,28065,84,3 +2020-06-17,Jefferson Davis,Mississippi,28065,86,3 +2020-06-18,Jefferson Davis,Mississippi,28065,86,3 +2020-06-19,Jefferson Davis,Mississippi,28065,86,3 +2020-06-20,Jefferson Davis,Mississippi,28065,86,3 +2020-06-21,Jefferson Davis,Mississippi,28065,86,3 +2020-06-22,Jefferson Davis,Mississippi,28065,90,3 +2020-06-23,Jefferson Davis,Mississippi,28065,92,3 +2020-06-24,Jefferson Davis,Mississippi,28065,93,3 +2020-06-25,Jefferson Davis,Mississippi,28065,94,3 +2020-06-26,Jefferson Davis,Mississippi,28065,97,3 +2020-06-27,Jefferson Davis,Mississippi,28065,100,4 +2020-06-28,Jefferson Davis,Mississippi,28065,101,4 +2020-06-29,Jefferson Davis,Mississippi,28065,102,4 +2020-06-30,Jefferson Davis,Mississippi,28065,103,4 +2020-07-01,Jefferson Davis,Mississippi,28065,106,4 +2020-07-02,Jefferson Davis,Mississippi,28065,107,4 +2020-07-03,Jefferson Davis,Mississippi,28065,109,4 +2020-07-04,Jefferson Davis,Mississippi,28065,111,4 +2020-07-05,Jefferson Davis,Mississippi,28065,111,4 +2020-07-06,Jefferson Davis,Mississippi,28065,112,4 +2020-07-07,Jefferson Davis,Mississippi,28065,113,4 +2020-07-08,Jefferson Davis,Mississippi,28065,114,4 +2020-07-09,Jefferson Davis,Mississippi,28065,116,4 +2020-03-19,Jones,Mississippi,28067,1,0 +2020-03-20,Jones,Mississippi,28067,1,0 +2020-03-21,Jones,Mississippi,28067,1,0 +2020-03-22,Jones,Mississippi,28067,1,0 +2020-03-23,Jones,Mississippi,28067,1,0 +2020-03-24,Jones,Mississippi,28067,1,0 +2020-03-25,Jones,Mississippi,28067,1,0 +2020-03-26,Jones,Mississippi,28067,1,0 +2020-03-27,Jones,Mississippi,28067,1,0 +2020-03-28,Jones,Mississippi,28067,3,0 +2020-03-29,Jones,Mississippi,28067,5,0 +2020-03-30,Jones,Mississippi,28067,6,0 +2020-03-31,Jones,Mississippi,28067,6,0 +2020-04-01,Jones,Mississippi,28067,6,0 +2020-04-02,Jones,Mississippi,28067,6,0 +2020-04-03,Jones,Mississippi,28067,8,0 +2020-04-04,Jones,Mississippi,28067,9,0 +2020-04-05,Jones,Mississippi,28067,11,0 +2020-04-06,Jones,Mississippi,28067,13,0 +2020-04-07,Jones,Mississippi,28067,14,0 +2020-04-08,Jones,Mississippi,28067,15,0 +2020-04-09,Jones,Mississippi,28067,19,0 +2020-04-10,Jones,Mississippi,28067,25,0 +2020-04-11,Jones,Mississippi,28067,30,0 +2020-04-12,Jones,Mississippi,28067,33,0 +2020-04-13,Jones,Mississippi,28067,37,0 +2020-04-14,Jones,Mississippi,28067,40,0 +2020-04-15,Jones,Mississippi,28067,42,0 +2020-04-16,Jones,Mississippi,28067,48,0 +2020-04-17,Jones,Mississippi,28067,56,0 +2020-04-18,Jones,Mississippi,28067,63,0 +2020-04-19,Jones,Mississippi,28067,70,0 +2020-04-20,Jones,Mississippi,28067,74,0 +2020-04-21,Jones,Mississippi,28067,80,0 +2020-04-22,Jones,Mississippi,28067,88,0 +2020-04-23,Jones,Mississippi,28067,94,0 +2020-04-24,Jones,Mississippi,28067,104,0 +2020-04-25,Jones,Mississippi,28067,116,0 +2020-04-26,Jones,Mississippi,28067,118,1 +2020-04-27,Jones,Mississippi,28067,130,1 +2020-04-28,Jones,Mississippi,28067,132,1 +2020-04-29,Jones,Mississippi,28067,136,1 +2020-04-30,Jones,Mississippi,28067,143,1 +2020-05-01,Jones,Mississippi,28067,159,2 +2020-05-02,Jones,Mississippi,28067,168,2 +2020-05-03,Jones,Mississippi,28067,172,2 +2020-05-04,Jones,Mississippi,28067,185,2 +2020-05-05,Jones,Mississippi,28067,193,2 +2020-05-06,Jones,Mississippi,28067,199,4 +2020-05-07,Jones,Mississippi,28067,209,4 +2020-05-08,Jones,Mississippi,28067,223,4 +2020-05-09,Jones,Mississippi,28067,243,5 +2020-05-10,Jones,Mississippi,28067,247,5 +2020-05-11,Jones,Mississippi,28067,249,5 +2020-05-12,Jones,Mississippi,28067,260,6 +2020-05-13,Jones,Mississippi,28067,264,6 +2020-05-14,Jones,Mississippi,28067,287,7 +2020-05-15,Jones,Mississippi,28067,304,7 +2020-05-16,Jones,Mississippi,28067,319,8 +2020-05-17,Jones,Mississippi,28067,337,9 +2020-05-18,Jones,Mississippi,28067,342,9 +2020-05-19,Jones,Mississippi,28067,358,10 +2020-05-20,Jones,Mississippi,28067,366,12 +2020-05-21,Jones,Mississippi,28067,386,12 +2020-05-22,Jones,Mississippi,28067,422,12 +2020-05-23,Jones,Mississippi,28067,435,13 +2020-05-24,Jones,Mississippi,28067,467,13 +2020-05-25,Jones,Mississippi,28067,492,15 +2020-05-26,Jones,Mississippi,28067,506,18 +2020-05-27,Jones,Mississippi,28067,525,19 +2020-05-28,Jones,Mississippi,28067,566,22 +2020-05-29,Jones,Mississippi,28067,576,25 +2020-05-30,Jones,Mississippi,28067,598,25 +2020-05-31,Jones,Mississippi,28067,629,28 +2020-06-01,Jones,Mississippi,28067,652,28 +2020-06-02,Jones,Mississippi,28067,663,31 +2020-06-03,Jones,Mississippi,28067,686,32 +2020-06-04,Jones,Mississippi,28067,701,33 +2020-06-05,Jones,Mississippi,28067,709,33 +2020-06-06,Jones,Mississippi,28067,715,34 +2020-06-07,Jones,Mississippi,28067,729,34 +2020-06-08,Jones,Mississippi,28067,777,36 +2020-06-09,Jones,Mississippi,28067,792,36 +2020-06-10,Jones,Mississippi,28067,812,36 +2020-06-11,Jones,Mississippi,28067,812,36 +2020-06-12,Jones,Mississippi,28067,845,37 +2020-06-13,Jones,Mississippi,28067,852,38 +2020-06-14,Jones,Mississippi,28067,868,38 +2020-06-15,Jones,Mississippi,28067,881,39 +2020-06-16,Jones,Mississippi,28067,899,43 +2020-06-17,Jones,Mississippi,28067,910,44 +2020-06-18,Jones,Mississippi,28067,910,44 +2020-06-19,Jones,Mississippi,28067,910,44 +2020-06-20,Jones,Mississippi,28067,910,44 +2020-06-21,Jones,Mississippi,28067,910,44 +2020-06-22,Jones,Mississippi,28067,928,47 +2020-06-23,Jones,Mississippi,28067,952,47 +2020-06-24,Jones,Mississippi,28067,965,48 +2020-06-25,Jones,Mississippi,28067,994,48 +2020-06-26,Jones,Mississippi,28067,998,48 +2020-06-27,Jones,Mississippi,28067,1014,48 +2020-06-28,Jones,Mississippi,28067,1027,48 +2020-06-29,Jones,Mississippi,28067,1033,49 +2020-06-30,Jones,Mississippi,28067,1061,49 +2020-07-01,Jones,Mississippi,28067,1069,49 +2020-07-02,Jones,Mississippi,28067,1091,49 +2020-07-03,Jones,Mississippi,28067,1104,49 +2020-07-04,Jones,Mississippi,28067,1120,49 +2020-07-05,Jones,Mississippi,28067,1124,49 +2020-07-06,Jones,Mississippi,28067,1128,49 +2020-07-07,Jones,Mississippi,28067,1140,49 +2020-07-08,Jones,Mississippi,28067,1159,49 +2020-07-09,Jones,Mississippi,28067,1173,49 +2020-03-27,Kemper,Mississippi,28069,1,0 +2020-03-28,Kemper,Mississippi,28069,1,0 +2020-03-29,Kemper,Mississippi,28069,1,0 +2020-03-30,Kemper,Mississippi,28069,1,0 +2020-03-31,Kemper,Mississippi,28069,1,0 +2020-04-01,Kemper,Mississippi,28069,1,0 +2020-04-02,Kemper,Mississippi,28069,4,0 +2020-04-03,Kemper,Mississippi,28069,4,0 +2020-04-04,Kemper,Mississippi,28069,4,0 +2020-04-05,Kemper,Mississippi,28069,5,0 +2020-04-06,Kemper,Mississippi,28069,6,0 +2020-04-07,Kemper,Mississippi,28069,10,0 +2020-04-08,Kemper,Mississippi,28069,11,0 +2020-04-09,Kemper,Mississippi,28069,13,0 +2020-04-10,Kemper,Mississippi,28069,14,0 +2020-04-11,Kemper,Mississippi,28069,14,0 +2020-04-12,Kemper,Mississippi,28069,14,0 +2020-04-13,Kemper,Mississippi,28069,14,0 +2020-04-14,Kemper,Mississippi,28069,14,0 +2020-04-15,Kemper,Mississippi,28069,15,0 +2020-04-16,Kemper,Mississippi,28069,16,0 +2020-04-17,Kemper,Mississippi,28069,16,0 +2020-04-18,Kemper,Mississippi,28069,17,0 +2020-04-19,Kemper,Mississippi,28069,19,0 +2020-04-20,Kemper,Mississippi,28069,21,0 +2020-04-21,Kemper,Mississippi,28069,23,0 +2020-04-22,Kemper,Mississippi,28069,25,0 +2020-04-23,Kemper,Mississippi,28069,27,0 +2020-04-24,Kemper,Mississippi,28069,31,0 +2020-04-25,Kemper,Mississippi,28069,40,0 +2020-04-26,Kemper,Mississippi,28069,43,1 +2020-04-27,Kemper,Mississippi,28069,49,1 +2020-04-28,Kemper,Mississippi,28069,50,1 +2020-04-29,Kemper,Mississippi,28069,56,1 +2020-04-30,Kemper,Mississippi,28069,57,2 +2020-05-01,Kemper,Mississippi,28069,64,3 +2020-05-02,Kemper,Mississippi,28069,67,3 +2020-05-03,Kemper,Mississippi,28069,76,3 +2020-05-04,Kemper,Mississippi,28069,79,3 +2020-05-05,Kemper,Mississippi,28069,79,3 +2020-05-06,Kemper,Mississippi,28069,80,6 +2020-05-07,Kemper,Mississippi,28069,84,6 +2020-05-08,Kemper,Mississippi,28069,89,6 +2020-05-09,Kemper,Mississippi,28069,91,6 +2020-05-10,Kemper,Mississippi,28069,92,6 +2020-05-11,Kemper,Mississippi,28069,93,6 +2020-05-12,Kemper,Mississippi,28069,97,7 +2020-05-13,Kemper,Mississippi,28069,99,7 +2020-05-14,Kemper,Mississippi,28069,100,7 +2020-05-15,Kemper,Mississippi,28069,100,7 +2020-05-16,Kemper,Mississippi,28069,101,7 +2020-05-17,Kemper,Mississippi,28069,100,8 +2020-05-18,Kemper,Mississippi,28069,102,9 +2020-05-19,Kemper,Mississippi,28069,105,10 +2020-05-20,Kemper,Mississippi,28069,110,10 +2020-05-21,Kemper,Mississippi,28069,112,10 +2020-05-22,Kemper,Mississippi,28069,116,10 +2020-05-23,Kemper,Mississippi,28069,118,10 +2020-05-24,Kemper,Mississippi,28069,125,10 +2020-05-25,Kemper,Mississippi,28069,127,10 +2020-05-26,Kemper,Mississippi,28069,132,10 +2020-05-27,Kemper,Mississippi,28069,131,10 +2020-05-28,Kemper,Mississippi,28069,136,11 +2020-05-29,Kemper,Mississippi,28069,144,11 +2020-05-30,Kemper,Mississippi,28069,144,11 +2020-05-31,Kemper,Mississippi,28069,144,11 +2020-06-01,Kemper,Mississippi,28069,145,11 +2020-06-02,Kemper,Mississippi,28069,147,11 +2020-06-03,Kemper,Mississippi,28069,149,11 +2020-06-04,Kemper,Mississippi,28069,155,11 +2020-06-05,Kemper,Mississippi,28069,156,11 +2020-06-06,Kemper,Mississippi,28069,159,11 +2020-06-07,Kemper,Mississippi,28069,159,11 +2020-06-08,Kemper,Mississippi,28069,163,11 +2020-06-09,Kemper,Mississippi,28069,166,11 +2020-06-10,Kemper,Mississippi,28069,166,11 +2020-06-11,Kemper,Mississippi,28069,166,11 +2020-06-12,Kemper,Mississippi,28069,167,12 +2020-06-13,Kemper,Mississippi,28069,167,12 +2020-06-14,Kemper,Mississippi,28069,167,12 +2020-06-15,Kemper,Mississippi,28069,169,12 +2020-06-16,Kemper,Mississippi,28069,170,12 +2020-06-17,Kemper,Mississippi,28069,169,13 +2020-06-18,Kemper,Mississippi,28069,169,13 +2020-06-19,Kemper,Mississippi,28069,169,13 +2020-06-20,Kemper,Mississippi,28069,169,13 +2020-06-21,Kemper,Mississippi,28069,169,13 +2020-06-22,Kemper,Mississippi,28069,168,13 +2020-06-23,Kemper,Mississippi,28069,168,13 +2020-06-24,Kemper,Mississippi,28069,169,13 +2020-06-25,Kemper,Mississippi,28069,170,13 +2020-06-26,Kemper,Mississippi,28069,171,13 +2020-06-27,Kemper,Mississippi,28069,171,13 +2020-06-28,Kemper,Mississippi,28069,171,13 +2020-06-29,Kemper,Mississippi,28069,172,13 +2020-06-30,Kemper,Mississippi,28069,174,13 +2020-07-01,Kemper,Mississippi,28069,176,14 +2020-07-02,Kemper,Mississippi,28069,176,14 +2020-07-03,Kemper,Mississippi,28069,177,14 +2020-07-04,Kemper,Mississippi,28069,178,14 +2020-07-05,Kemper,Mississippi,28069,179,14 +2020-07-06,Kemper,Mississippi,28069,179,14 +2020-07-07,Kemper,Mississippi,28069,179,14 +2020-07-08,Kemper,Mississippi,28069,179,14 +2020-07-09,Kemper,Mississippi,28069,180,14 +2020-03-20,Lafayette,Mississippi,28071,1,0 +2020-03-21,Lafayette,Mississippi,28071,2,0 +2020-03-22,Lafayette,Mississippi,28071,5,0 +2020-03-23,Lafayette,Mississippi,28071,5,0 +2020-03-24,Lafayette,Mississippi,28071,8,0 +2020-03-25,Lafayette,Mississippi,28071,8,0 +2020-03-26,Lafayette,Mississippi,28071,10,0 +2020-03-27,Lafayette,Mississippi,28071,11,0 +2020-03-28,Lafayette,Mississippi,28071,11,0 +2020-03-29,Lafayette,Mississippi,28071,13,0 +2020-03-30,Lafayette,Mississippi,28071,14,0 +2020-03-31,Lafayette,Mississippi,28071,15,1 +2020-04-01,Lafayette,Mississippi,28071,15,1 +2020-04-02,Lafayette,Mississippi,28071,16,1 +2020-04-03,Lafayette,Mississippi,28071,21,1 +2020-04-04,Lafayette,Mississippi,28071,21,1 +2020-04-05,Lafayette,Mississippi,28071,22,1 +2020-04-06,Lafayette,Mississippi,28071,22,1 +2020-04-07,Lafayette,Mississippi,28071,25,1 +2020-04-08,Lafayette,Mississippi,28071,26,1 +2020-04-09,Lafayette,Mississippi,28071,26,1 +2020-04-10,Lafayette,Mississippi,28071,28,1 +2020-04-11,Lafayette,Mississippi,28071,29,1 +2020-04-12,Lafayette,Mississippi,28071,29,1 +2020-04-13,Lafayette,Mississippi,28071,30,1 +2020-04-14,Lafayette,Mississippi,28071,33,2 +2020-04-15,Lafayette,Mississippi,28071,36,2 +2020-04-16,Lafayette,Mississippi,28071,39,2 +2020-04-17,Lafayette,Mississippi,28071,39,2 +2020-04-18,Lafayette,Mississippi,28071,40,3 +2020-04-19,Lafayette,Mississippi,28071,64,3 +2020-04-20,Lafayette,Mississippi,28071,67,3 +2020-04-21,Lafayette,Mississippi,28071,68,3 +2020-04-22,Lafayette,Mississippi,28071,70,3 +2020-04-23,Lafayette,Mississippi,28071,81,3 +2020-04-24,Lafayette,Mississippi,28071,83,3 +2020-04-25,Lafayette,Mississippi,28071,87,3 +2020-04-26,Lafayette,Mississippi,28071,88,3 +2020-04-27,Lafayette,Mississippi,28071,88,3 +2020-04-28,Lafayette,Mississippi,28071,88,3 +2020-04-29,Lafayette,Mississippi,28071,88,3 +2020-04-30,Lafayette,Mississippi,28071,89,3 +2020-05-01,Lafayette,Mississippi,28071,89,3 +2020-05-02,Lafayette,Mississippi,28071,89,3 +2020-05-03,Lafayette,Mississippi,28071,91,3 +2020-05-04,Lafayette,Mississippi,28071,93,3 +2020-05-05,Lafayette,Mississippi,28071,96,3 +2020-05-06,Lafayette,Mississippi,28071,96,3 +2020-05-07,Lafayette,Mississippi,28071,96,3 +2020-05-08,Lafayette,Mississippi,28071,98,3 +2020-05-09,Lafayette,Mississippi,28071,98,3 +2020-05-10,Lafayette,Mississippi,28071,98,3 +2020-05-11,Lafayette,Mississippi,28071,101,3 +2020-05-12,Lafayette,Mississippi,28071,101,3 +2020-05-13,Lafayette,Mississippi,28071,102,3 +2020-05-14,Lafayette,Mississippi,28071,106,3 +2020-05-15,Lafayette,Mississippi,28071,107,3 +2020-05-16,Lafayette,Mississippi,28071,107,3 +2020-05-17,Lafayette,Mississippi,28071,109,3 +2020-05-18,Lafayette,Mississippi,28071,109,3 +2020-05-19,Lafayette,Mississippi,28071,109,3 +2020-05-20,Lafayette,Mississippi,28071,110,3 +2020-05-21,Lafayette,Mississippi,28071,110,3 +2020-05-22,Lafayette,Mississippi,28071,116,3 +2020-05-23,Lafayette,Mississippi,28071,118,3 +2020-05-24,Lafayette,Mississippi,28071,123,3 +2020-05-25,Lafayette,Mississippi,28071,124,3 +2020-05-26,Lafayette,Mississippi,28071,126,4 +2020-05-27,Lafayette,Mississippi,28071,125,4 +2020-05-28,Lafayette,Mississippi,28071,127,4 +2020-05-29,Lafayette,Mississippi,28071,130,4 +2020-05-30,Lafayette,Mississippi,28071,131,4 +2020-05-31,Lafayette,Mississippi,28071,136,4 +2020-06-01,Lafayette,Mississippi,28071,137,4 +2020-06-02,Lafayette,Mississippi,28071,141,4 +2020-06-03,Lafayette,Mississippi,28071,150,4 +2020-06-04,Lafayette,Mississippi,28071,154,4 +2020-06-05,Lafayette,Mississippi,28071,156,4 +2020-06-06,Lafayette,Mississippi,28071,155,4 +2020-06-07,Lafayette,Mississippi,28071,156,4 +2020-06-08,Lafayette,Mississippi,28071,157,4 +2020-06-09,Lafayette,Mississippi,28071,156,4 +2020-06-10,Lafayette,Mississippi,28071,161,4 +2020-06-11,Lafayette,Mississippi,28071,161,4 +2020-06-12,Lafayette,Mississippi,28071,169,4 +2020-06-13,Lafayette,Mississippi,28071,171,4 +2020-06-14,Lafayette,Mississippi,28071,175,4 +2020-06-15,Lafayette,Mississippi,28071,181,4 +2020-06-16,Lafayette,Mississippi,28071,195,4 +2020-06-17,Lafayette,Mississippi,28071,209,4 +2020-06-18,Lafayette,Mississippi,28071,209,4 +2020-06-19,Lafayette,Mississippi,28071,209,4 +2020-06-20,Lafayette,Mississippi,28071,209,4 +2020-06-21,Lafayette,Mississippi,28071,209,4 +2020-06-22,Lafayette,Mississippi,28071,254,4 +2020-06-23,Lafayette,Mississippi,28071,269,4 +2020-06-24,Lafayette,Mississippi,28071,289,4 +2020-06-25,Lafayette,Mississippi,28071,303,4 +2020-06-26,Lafayette,Mississippi,28071,310,4 +2020-06-27,Lafayette,Mississippi,28071,320,4 +2020-06-28,Lafayette,Mississippi,28071,323,4 +2020-06-29,Lafayette,Mississippi,28071,330,4 +2020-06-30,Lafayette,Mississippi,28071,339,4 +2020-07-01,Lafayette,Mississippi,28071,352,4 +2020-07-02,Lafayette,Mississippi,28071,368,4 +2020-07-03,Lafayette,Mississippi,28071,377,4 +2020-07-04,Lafayette,Mississippi,28071,389,4 +2020-07-05,Lafayette,Mississippi,28071,391,4 +2020-07-06,Lafayette,Mississippi,28071,393,4 +2020-07-07,Lafayette,Mississippi,28071,409,4 +2020-07-08,Lafayette,Mississippi,28071,419,4 +2020-07-09,Lafayette,Mississippi,28071,437,4 +2020-03-23,Lamar,Mississippi,28073,1,0 +2020-03-24,Lamar,Mississippi,28073,2,0 +2020-03-25,Lamar,Mississippi,28073,2,0 +2020-03-26,Lamar,Mississippi,28073,4,0 +2020-03-27,Lamar,Mississippi,28073,4,0 +2020-03-28,Lamar,Mississippi,28073,4,0 +2020-03-29,Lamar,Mississippi,28073,4,0 +2020-03-30,Lamar,Mississippi,28073,4,0 +2020-03-31,Lamar,Mississippi,28073,5,0 +2020-04-01,Lamar,Mississippi,28073,6,0 +2020-04-02,Lamar,Mississippi,28073,8,0 +2020-04-03,Lamar,Mississippi,28073,9,0 +2020-04-04,Lamar,Mississippi,28073,13,0 +2020-04-05,Lamar,Mississippi,28073,13,0 +2020-04-06,Lamar,Mississippi,28073,15,0 +2020-04-07,Lamar,Mississippi,28073,18,1 +2020-04-08,Lamar,Mississippi,28073,19,1 +2020-04-09,Lamar,Mississippi,28073,24,1 +2020-04-10,Lamar,Mississippi,28073,28,1 +2020-04-11,Lamar,Mississippi,28073,31,1 +2020-04-12,Lamar,Mississippi,28073,32,1 +2020-04-13,Lamar,Mississippi,28073,38,1 +2020-04-14,Lamar,Mississippi,28073,46,1 +2020-04-15,Lamar,Mississippi,28073,48,1 +2020-04-16,Lamar,Mississippi,28073,56,1 +2020-04-17,Lamar,Mississippi,28073,57,1 +2020-04-18,Lamar,Mississippi,28073,59,1 +2020-04-19,Lamar,Mississippi,28073,67,1 +2020-04-20,Lamar,Mississippi,28073,71,2 +2020-04-21,Lamar,Mississippi,28073,76,2 +2020-04-22,Lamar,Mississippi,28073,79,2 +2020-04-23,Lamar,Mississippi,28073,79,2 +2020-04-24,Lamar,Mississippi,28073,82,2 +2020-04-25,Lamar,Mississippi,28073,85,2 +2020-04-26,Lamar,Mississippi,28073,89,2 +2020-04-27,Lamar,Mississippi,28073,92,2 +2020-04-28,Lamar,Mississippi,28073,94,2 +2020-04-29,Lamar,Mississippi,28073,102,2 +2020-04-30,Lamar,Mississippi,28073,103,2 +2020-05-01,Lamar,Mississippi,28073,111,2 +2020-05-02,Lamar,Mississippi,28073,114,2 +2020-05-03,Lamar,Mississippi,28073,117,2 +2020-05-04,Lamar,Mississippi,28073,121,3 +2020-05-05,Lamar,Mississippi,28073,125,3 +2020-05-06,Lamar,Mississippi,28073,127,3 +2020-05-07,Lamar,Mississippi,28073,136,4 +2020-05-08,Lamar,Mississippi,28073,141,4 +2020-05-09,Lamar,Mississippi,28073,145,4 +2020-05-10,Lamar,Mississippi,28073,152,4 +2020-05-11,Lamar,Mississippi,28073,156,4 +2020-05-12,Lamar,Mississippi,28073,156,4 +2020-05-13,Lamar,Mississippi,28073,158,4 +2020-05-14,Lamar,Mississippi,28073,164,4 +2020-05-15,Lamar,Mississippi,28073,166,4 +2020-05-16,Lamar,Mississippi,28073,173,4 +2020-05-17,Lamar,Mississippi,28073,175,4 +2020-05-18,Lamar,Mississippi,28073,175,4 +2020-05-19,Lamar,Mississippi,28073,199,4 +2020-05-20,Lamar,Mississippi,28073,205,4 +2020-05-21,Lamar,Mississippi,28073,210,4 +2020-05-22,Lamar,Mississippi,28073,215,4 +2020-05-23,Lamar,Mississippi,28073,218,4 +2020-05-24,Lamar,Mississippi,28073,219,4 +2020-05-25,Lamar,Mississippi,28073,220,5 +2020-05-26,Lamar,Mississippi,28073,222,5 +2020-05-27,Lamar,Mississippi,28073,227,5 +2020-05-28,Lamar,Mississippi,28073,231,5 +2020-05-29,Lamar,Mississippi,28073,235,5 +2020-05-30,Lamar,Mississippi,28073,235,5 +2020-05-31,Lamar,Mississippi,28073,238,5 +2020-06-01,Lamar,Mississippi,28073,239,5 +2020-06-02,Lamar,Mississippi,28073,248,5 +2020-06-03,Lamar,Mississippi,28073,248,5 +2020-06-04,Lamar,Mississippi,28073,250,5 +2020-06-05,Lamar,Mississippi,28073,252,5 +2020-06-06,Lamar,Mississippi,28073,254,5 +2020-06-07,Lamar,Mississippi,28073,259,5 +2020-06-08,Lamar,Mississippi,28073,262,5 +2020-06-09,Lamar,Mississippi,28073,272,5 +2020-06-10,Lamar,Mississippi,28073,278,5 +2020-06-11,Lamar,Mississippi,28073,278,5 +2020-06-12,Lamar,Mississippi,28073,287,5 +2020-06-13,Lamar,Mississippi,28073,288,5 +2020-06-14,Lamar,Mississippi,28073,288,5 +2020-06-15,Lamar,Mississippi,28073,288,6 +2020-06-16,Lamar,Mississippi,28073,292,6 +2020-06-17,Lamar,Mississippi,28073,300,6 +2020-06-18,Lamar,Mississippi,28073,300,6 +2020-06-19,Lamar,Mississippi,28073,300,6 +2020-06-20,Lamar,Mississippi,28073,300,6 +2020-06-21,Lamar,Mississippi,28073,300,6 +2020-06-22,Lamar,Mississippi,28073,341,7 +2020-06-23,Lamar,Mississippi,28073,353,7 +2020-06-24,Lamar,Mississippi,28073,355,7 +2020-06-25,Lamar,Mississippi,28073,369,7 +2020-06-26,Lamar,Mississippi,28073,371,7 +2020-06-27,Lamar,Mississippi,28073,382,7 +2020-06-28,Lamar,Mississippi,28073,384,7 +2020-06-29,Lamar,Mississippi,28073,393,7 +2020-06-30,Lamar,Mississippi,28073,407,7 +2020-07-01,Lamar,Mississippi,28073,419,7 +2020-07-02,Lamar,Mississippi,28073,431,7 +2020-07-03,Lamar,Mississippi,28073,440,7 +2020-07-04,Lamar,Mississippi,28073,456,7 +2020-07-05,Lamar,Mississippi,28073,458,7 +2020-07-06,Lamar,Mississippi,28073,465,7 +2020-07-07,Lamar,Mississippi,28073,491,7 +2020-07-08,Lamar,Mississippi,28073,500,7 +2020-07-09,Lamar,Mississippi,28073,502,7 +2020-03-26,Lauderdale,Mississippi,28075,3,0 +2020-03-27,Lauderdale,Mississippi,28075,10,0 +2020-03-28,Lauderdale,Mississippi,28075,12,0 +2020-03-29,Lauderdale,Mississippi,28075,15,0 +2020-03-30,Lauderdale,Mississippi,28075,23,0 +2020-03-31,Lauderdale,Mississippi,28075,35,0 +2020-04-01,Lauderdale,Mississippi,28075,39,0 +2020-04-02,Lauderdale,Mississippi,28075,46,0 +2020-04-03,Lauderdale,Mississippi,28075,50,0 +2020-04-04,Lauderdale,Mississippi,28075,61,1 +2020-04-05,Lauderdale,Mississippi,28075,65,2 +2020-04-06,Lauderdale,Mississippi,28075,70,2 +2020-04-07,Lauderdale,Mississippi,28075,78,3 +2020-04-08,Lauderdale,Mississippi,28075,84,5 +2020-04-09,Lauderdale,Mississippi,28075,99,5 +2020-04-10,Lauderdale,Mississippi,28075,118,6 +2020-04-11,Lauderdale,Mississippi,28075,133,8 +2020-04-12,Lauderdale,Mississippi,28075,135,8 +2020-04-13,Lauderdale,Mississippi,28075,150,8 +2020-04-14,Lauderdale,Mississippi,28075,156,11 +2020-04-15,Lauderdale,Mississippi,28075,165,12 +2020-04-16,Lauderdale,Mississippi,28075,174,12 +2020-04-17,Lauderdale,Mississippi,28075,181,13 +2020-04-18,Lauderdale,Mississippi,28075,190,14 +2020-04-19,Lauderdale,Mississippi,28075,202,14 +2020-04-20,Lauderdale,Mississippi,28075,220,15 +2020-04-21,Lauderdale,Mississippi,28075,232,17 +2020-04-22,Lauderdale,Mississippi,28075,235,18 +2020-04-23,Lauderdale,Mississippi,28075,249,18 +2020-04-24,Lauderdale,Mississippi,28075,268,18 +2020-04-25,Lauderdale,Mississippi,28075,284,19 +2020-04-26,Lauderdale,Mississippi,28075,295,19 +2020-04-27,Lauderdale,Mississippi,28075,304,19 +2020-04-28,Lauderdale,Mississippi,28075,318,19 +2020-04-29,Lauderdale,Mississippi,28075,334,19 +2020-04-30,Lauderdale,Mississippi,28075,349,20 +2020-05-01,Lauderdale,Mississippi,28075,365,23 +2020-05-02,Lauderdale,Mississippi,28075,378,25 +2020-05-03,Lauderdale,Mississippi,28075,380,26 +2020-05-04,Lauderdale,Mississippi,28075,432,27 +2020-05-05,Lauderdale,Mississippi,28075,436,33 +2020-05-06,Lauderdale,Mississippi,28075,448,40 +2020-05-07,Lauderdale,Mississippi,28075,450,40 +2020-05-08,Lauderdale,Mississippi,28075,463,41 +2020-05-09,Lauderdale,Mississippi,28075,471,42 +2020-05-10,Lauderdale,Mississippi,28075,482,43 +2020-05-11,Lauderdale,Mississippi,28075,492,44 +2020-05-12,Lauderdale,Mississippi,28075,501,45 +2020-05-13,Lauderdale,Mississippi,28075,523,45 +2020-05-14,Lauderdale,Mississippi,28075,557,45 +2020-05-15,Lauderdale,Mississippi,28075,566,45 +2020-05-16,Lauderdale,Mississippi,28075,578,45 +2020-05-17,Lauderdale,Mississippi,28075,585,46 +2020-05-18,Lauderdale,Mississippi,28075,589,46 +2020-05-19,Lauderdale,Mississippi,28075,602,46 +2020-05-20,Lauderdale,Mississippi,28075,616,46 +2020-05-21,Lauderdale,Mississippi,28075,637,47 +2020-05-22,Lauderdale,Mississippi,28075,647,51 +2020-05-23,Lauderdale,Mississippi,28075,670,54 +2020-05-24,Lauderdale,Mississippi,28075,678,55 +2020-05-25,Lauderdale,Mississippi,28075,680,56 +2020-05-26,Lauderdale,Mississippi,28075,689,56 +2020-05-27,Lauderdale,Mississippi,28075,699,57 +2020-05-28,Lauderdale,Mississippi,28075,713,58 +2020-05-29,Lauderdale,Mississippi,28075,730,59 +2020-05-30,Lauderdale,Mississippi,28075,735,61 +2020-05-31,Lauderdale,Mississippi,28075,738,62 +2020-06-01,Lauderdale,Mississippi,28075,741,62 +2020-06-02,Lauderdale,Mississippi,28075,745,68 +2020-06-03,Lauderdale,Mississippi,28075,760,68 +2020-06-04,Lauderdale,Mississippi,28075,759,68 +2020-06-05,Lauderdale,Mississippi,28075,765,69 +2020-06-06,Lauderdale,Mississippi,28075,775,70 +2020-06-07,Lauderdale,Mississippi,28075,779,70 +2020-06-08,Lauderdale,Mississippi,28075,785,70 +2020-06-09,Lauderdale,Mississippi,28075,793,71 +2020-06-10,Lauderdale,Mississippi,28075,795,74 +2020-06-11,Lauderdale,Mississippi,28075,795,74 +2020-06-12,Lauderdale,Mississippi,28075,801,75 +2020-06-13,Lauderdale,Mississippi,28075,801,75 +2020-06-14,Lauderdale,Mississippi,28075,805,75 +2020-06-15,Lauderdale,Mississippi,28075,811,75 +2020-06-16,Lauderdale,Mississippi,28075,816,75 +2020-06-17,Lauderdale,Mississippi,28075,818,75 +2020-06-18,Lauderdale,Mississippi,28075,818,75 +2020-06-19,Lauderdale,Mississippi,28075,818,75 +2020-06-20,Lauderdale,Mississippi,28075,818,75 +2020-06-21,Lauderdale,Mississippi,28075,818,75 +2020-06-22,Lauderdale,Mississippi,28075,847,77 +2020-06-23,Lauderdale,Mississippi,28075,850,77 +2020-06-24,Lauderdale,Mississippi,28075,856,78 +2020-06-25,Lauderdale,Mississippi,28075,864,78 +2020-06-26,Lauderdale,Mississippi,28075,867,78 +2020-06-27,Lauderdale,Mississippi,28075,869,78 +2020-06-28,Lauderdale,Mississippi,28075,869,78 +2020-06-29,Lauderdale,Mississippi,28075,872,78 +2020-06-30,Lauderdale,Mississippi,28075,879,78 +2020-07-01,Lauderdale,Mississippi,28075,882,78 +2020-07-02,Lauderdale,Mississippi,28075,894,79 +2020-07-03,Lauderdale,Mississippi,28075,900,79 +2020-07-04,Lauderdale,Mississippi,28075,908,79 +2020-07-05,Lauderdale,Mississippi,28075,909,79 +2020-07-06,Lauderdale,Mississippi,28075,910,79 +2020-07-07,Lauderdale,Mississippi,28075,922,80 +2020-07-08,Lauderdale,Mississippi,28075,937,81 +2020-07-09,Lauderdale,Mississippi,28075,942,81 +2020-03-20,Lawrence,Mississippi,28077,1,0 +2020-03-21,Lawrence,Mississippi,28077,1,0 +2020-03-22,Lawrence,Mississippi,28077,2,0 +2020-03-23,Lawrence,Mississippi,28077,2,0 +2020-03-24,Lawrence,Mississippi,28077,2,0 +2020-03-25,Lawrence,Mississippi,28077,3,0 +2020-03-26,Lawrence,Mississippi,28077,5,0 +2020-03-27,Lawrence,Mississippi,28077,5,0 +2020-03-28,Lawrence,Mississippi,28077,5,0 +2020-03-29,Lawrence,Mississippi,28077,5,0 +2020-03-30,Lawrence,Mississippi,28077,5,0 +2020-03-31,Lawrence,Mississippi,28077,5,0 +2020-04-01,Lawrence,Mississippi,28077,5,0 +2020-04-02,Lawrence,Mississippi,28077,5,0 +2020-04-03,Lawrence,Mississippi,28077,5,0 +2020-04-04,Lawrence,Mississippi,28077,4,0 +2020-04-05,Lawrence,Mississippi,28077,4,0 +2020-04-06,Lawrence,Mississippi,28077,5,0 +2020-04-07,Lawrence,Mississippi,28077,5,0 +2020-04-08,Lawrence,Mississippi,28077,6,0 +2020-04-09,Lawrence,Mississippi,28077,8,0 +2020-04-10,Lawrence,Mississippi,28077,7,0 +2020-04-11,Lawrence,Mississippi,28077,6,0 +2020-04-12,Lawrence,Mississippi,28077,6,0 +2020-04-13,Lawrence,Mississippi,28077,6,0 +2020-04-14,Lawrence,Mississippi,28077,7,0 +2020-04-15,Lawrence,Mississippi,28077,7,0 +2020-04-16,Lawrence,Mississippi,28077,10,0 +2020-04-17,Lawrence,Mississippi,28077,12,0 +2020-04-18,Lawrence,Mississippi,28077,14,0 +2020-04-19,Lawrence,Mississippi,28077,16,0 +2020-04-20,Lawrence,Mississippi,28077,17,0 +2020-04-21,Lawrence,Mississippi,28077,20,0 +2020-04-22,Lawrence,Mississippi,28077,22,0 +2020-04-23,Lawrence,Mississippi,28077,25,0 +2020-04-24,Lawrence,Mississippi,28077,26,0 +2020-04-25,Lawrence,Mississippi,28077,30,0 +2020-04-26,Lawrence,Mississippi,28077,35,0 +2020-04-27,Lawrence,Mississippi,28077,36,0 +2020-04-28,Lawrence,Mississippi,28077,38,0 +2020-04-29,Lawrence,Mississippi,28077,42,0 +2020-04-30,Lawrence,Mississippi,28077,45,0 +2020-05-01,Lawrence,Mississippi,28077,46,0 +2020-05-02,Lawrence,Mississippi,28077,50,0 +2020-05-03,Lawrence,Mississippi,28077,50,0 +2020-05-04,Lawrence,Mississippi,28077,53,0 +2020-05-05,Lawrence,Mississippi,28077,57,0 +2020-05-06,Lawrence,Mississippi,28077,61,0 +2020-05-07,Lawrence,Mississippi,28077,61,0 +2020-05-08,Lawrence,Mississippi,28077,63,0 +2020-05-09,Lawrence,Mississippi,28077,64,0 +2020-05-10,Lawrence,Mississippi,28077,66,0 +2020-05-11,Lawrence,Mississippi,28077,66,0 +2020-05-12,Lawrence,Mississippi,28077,70,0 +2020-05-13,Lawrence,Mississippi,28077,71,0 +2020-05-14,Lawrence,Mississippi,28077,74,0 +2020-05-15,Lawrence,Mississippi,28077,74,0 +2020-05-16,Lawrence,Mississippi,28077,77,0 +2020-05-17,Lawrence,Mississippi,28077,78,0 +2020-05-18,Lawrence,Mississippi,28077,78,0 +2020-05-19,Lawrence,Mississippi,28077,80,0 +2020-05-20,Lawrence,Mississippi,28077,80,0 +2020-05-21,Lawrence,Mississippi,28077,81,0 +2020-05-22,Lawrence,Mississippi,28077,82,1 +2020-05-23,Lawrence,Mississippi,28077,86,1 +2020-05-24,Lawrence,Mississippi,28077,90,1 +2020-05-25,Lawrence,Mississippi,28077,94,1 +2020-05-26,Lawrence,Mississippi,28077,97,1 +2020-05-27,Lawrence,Mississippi,28077,99,1 +2020-05-28,Lawrence,Mississippi,28077,102,1 +2020-05-29,Lawrence,Mississippi,28077,102,1 +2020-05-30,Lawrence,Mississippi,28077,102,1 +2020-05-31,Lawrence,Mississippi,28077,102,1 +2020-06-01,Lawrence,Mississippi,28077,106,1 +2020-06-02,Lawrence,Mississippi,28077,105,1 +2020-06-03,Lawrence,Mississippi,28077,108,1 +2020-06-04,Lawrence,Mississippi,28077,107,1 +2020-06-05,Lawrence,Mississippi,28077,107,1 +2020-06-06,Lawrence,Mississippi,28077,108,1 +2020-06-07,Lawrence,Mississippi,28077,108,1 +2020-06-08,Lawrence,Mississippi,28077,109,1 +2020-06-09,Lawrence,Mississippi,28077,109,1 +2020-06-10,Lawrence,Mississippi,28077,113,1 +2020-06-11,Lawrence,Mississippi,28077,113,1 +2020-06-12,Lawrence,Mississippi,28077,115,1 +2020-06-13,Lawrence,Mississippi,28077,115,1 +2020-06-14,Lawrence,Mississippi,28077,115,1 +2020-06-15,Lawrence,Mississippi,28077,118,1 +2020-06-16,Lawrence,Mississippi,28077,120,1 +2020-06-17,Lawrence,Mississippi,28077,121,1 +2020-06-18,Lawrence,Mississippi,28077,121,1 +2020-06-19,Lawrence,Mississippi,28077,121,1 +2020-06-20,Lawrence,Mississippi,28077,121,1 +2020-06-21,Lawrence,Mississippi,28077,121,1 +2020-06-22,Lawrence,Mississippi,28077,129,1 +2020-06-23,Lawrence,Mississippi,28077,134,1 +2020-06-24,Lawrence,Mississippi,28077,135,1 +2020-06-25,Lawrence,Mississippi,28077,140,1 +2020-06-26,Lawrence,Mississippi,28077,142,1 +2020-06-27,Lawrence,Mississippi,28077,147,1 +2020-06-28,Lawrence,Mississippi,28077,147,1 +2020-06-29,Lawrence,Mississippi,28077,149,1 +2020-06-30,Lawrence,Mississippi,28077,154,1 +2020-07-01,Lawrence,Mississippi,28077,159,1 +2020-07-02,Lawrence,Mississippi,28077,162,1 +2020-07-03,Lawrence,Mississippi,28077,170,1 +2020-07-04,Lawrence,Mississippi,28077,174,1 +2020-07-05,Lawrence,Mississippi,28077,177,2 +2020-07-06,Lawrence,Mississippi,28077,178,2 +2020-07-07,Lawrence,Mississippi,28077,187,2 +2020-07-08,Lawrence,Mississippi,28077,189,2 +2020-07-09,Lawrence,Mississippi,28077,199,2 +2020-03-21,Leake,Mississippi,28079,1,0 +2020-03-22,Leake,Mississippi,28079,1,0 +2020-03-23,Leake,Mississippi,28079,1,0 +2020-03-24,Leake,Mississippi,28079,2,0 +2020-03-25,Leake,Mississippi,28079,3,0 +2020-03-26,Leake,Mississippi,28079,4,0 +2020-03-27,Leake,Mississippi,28079,4,0 +2020-03-28,Leake,Mississippi,28079,4,0 +2020-03-29,Leake,Mississippi,28079,5,0 +2020-03-30,Leake,Mississippi,28079,5,0 +2020-03-31,Leake,Mississippi,28079,5,0 +2020-04-01,Leake,Mississippi,28079,5,0 +2020-04-02,Leake,Mississippi,28079,6,0 +2020-04-03,Leake,Mississippi,28079,7,0 +2020-04-04,Leake,Mississippi,28079,8,0 +2020-04-05,Leake,Mississippi,28079,10,0 +2020-04-06,Leake,Mississippi,28079,11,0 +2020-04-07,Leake,Mississippi,28079,15,0 +2020-04-08,Leake,Mississippi,28079,15,0 +2020-04-09,Leake,Mississippi,28079,22,0 +2020-04-10,Leake,Mississippi,28079,22,0 +2020-04-11,Leake,Mississippi,28079,27,0 +2020-04-12,Leake,Mississippi,28079,27,0 +2020-04-13,Leake,Mississippi,28079,29,0 +2020-04-14,Leake,Mississippi,28079,32,1 +2020-04-15,Leake,Mississippi,28079,40,1 +2020-04-16,Leake,Mississippi,28079,50,1 +2020-04-17,Leake,Mississippi,28079,60,1 +2020-04-18,Leake,Mississippi,28079,64,1 +2020-04-19,Leake,Mississippi,28079,77,1 +2020-04-20,Leake,Mississippi,28079,86,1 +2020-04-21,Leake,Mississippi,28079,99,1 +2020-04-22,Leake,Mississippi,28079,108,1 +2020-04-23,Leake,Mississippi,28079,118,1 +2020-04-24,Leake,Mississippi,28079,136,1 +2020-04-25,Leake,Mississippi,28079,149,1 +2020-04-26,Leake,Mississippi,28079,158,1 +2020-04-27,Leake,Mississippi,28079,161,1 +2020-04-28,Leake,Mississippi,28079,179,1 +2020-04-29,Leake,Mississippi,28079,190,2 +2020-04-30,Leake,Mississippi,28079,204,2 +2020-05-01,Leake,Mississippi,28079,219,2 +2020-05-02,Leake,Mississippi,28079,229,1 +2020-05-03,Leake,Mississippi,28079,233,2 +2020-05-04,Leake,Mississippi,28079,247,2 +2020-05-05,Leake,Mississippi,28079,257,2 +2020-05-06,Leake,Mississippi,28079,257,2 +2020-05-07,Leake,Mississippi,28079,267,2 +2020-05-08,Leake,Mississippi,28079,286,2 +2020-05-09,Leake,Mississippi,28079,299,2 +2020-05-10,Leake,Mississippi,28079,299,3 +2020-05-11,Leake,Mississippi,28079,307,4 +2020-05-12,Leake,Mississippi,28079,318,4 +2020-05-13,Leake,Mississippi,28079,323,5 +2020-05-14,Leake,Mississippi,28079,332,5 +2020-05-15,Leake,Mississippi,28079,351,6 +2020-05-16,Leake,Mississippi,28079,352,6 +2020-05-17,Leake,Mississippi,28079,353,6 +2020-05-18,Leake,Mississippi,28079,361,6 +2020-05-19,Leake,Mississippi,28079,364,7 +2020-05-20,Leake,Mississippi,28079,367,7 +2020-05-21,Leake,Mississippi,28079,368,7 +2020-05-22,Leake,Mississippi,28079,373,8 +2020-05-23,Leake,Mississippi,28079,382,8 +2020-05-24,Leake,Mississippi,28079,384,10 +2020-05-25,Leake,Mississippi,28079,388,10 +2020-05-26,Leake,Mississippi,28079,389,10 +2020-05-27,Leake,Mississippi,28079,395,12 +2020-05-28,Leake,Mississippi,28079,400,12 +2020-05-29,Leake,Mississippi,28079,409,12 +2020-05-30,Leake,Mississippi,28079,421,12 +2020-05-31,Leake,Mississippi,28079,427,12 +2020-06-01,Leake,Mississippi,28079,431,12 +2020-06-02,Leake,Mississippi,28079,447,12 +2020-06-03,Leake,Mississippi,28079,454,12 +2020-06-04,Leake,Mississippi,28079,452,12 +2020-06-05,Leake,Mississippi,28079,455,12 +2020-06-06,Leake,Mississippi,28079,460,12 +2020-06-07,Leake,Mississippi,28079,462,12 +2020-06-08,Leake,Mississippi,28079,466,12 +2020-06-09,Leake,Mississippi,28079,469,12 +2020-06-10,Leake,Mississippi,28079,472,14 +2020-06-11,Leake,Mississippi,28079,472,14 +2020-06-12,Leake,Mississippi,28079,478,15 +2020-06-13,Leake,Mississippi,28079,483,15 +2020-06-14,Leake,Mississippi,28079,483,15 +2020-06-15,Leake,Mississippi,28079,487,15 +2020-06-16,Leake,Mississippi,28079,491,15 +2020-06-17,Leake,Mississippi,28079,496,16 +2020-06-18,Leake,Mississippi,28079,496,16 +2020-06-19,Leake,Mississippi,28079,496,16 +2020-06-20,Leake,Mississippi,28079,496,16 +2020-06-21,Leake,Mississippi,28079,496,16 +2020-06-22,Leake,Mississippi,28079,503,16 +2020-06-23,Leake,Mississippi,28079,505,16 +2020-06-24,Leake,Mississippi,28079,510,17 +2020-06-25,Leake,Mississippi,28079,520,17 +2020-06-26,Leake,Mississippi,28079,526,17 +2020-06-27,Leake,Mississippi,28079,534,17 +2020-06-28,Leake,Mississippi,28079,534,17 +2020-06-29,Leake,Mississippi,28079,533,19 +2020-06-30,Leake,Mississippi,28079,547,19 +2020-07-01,Leake,Mississippi,28079,548,19 +2020-07-02,Leake,Mississippi,28079,565,19 +2020-07-03,Leake,Mississippi,28079,570,19 +2020-07-04,Leake,Mississippi,28079,575,19 +2020-07-05,Leake,Mississippi,28079,578,19 +2020-07-06,Leake,Mississippi,28079,578,19 +2020-07-07,Leake,Mississippi,28079,589,19 +2020-07-08,Leake,Mississippi,28079,598,20 +2020-07-09,Leake,Mississippi,28079,613,20 +2020-03-20,Lee,Mississippi,28081,1,0 +2020-03-21,Lee,Mississippi,28081,5,0 +2020-03-22,Lee,Mississippi,28081,6,0 +2020-03-23,Lee,Mississippi,28081,8,0 +2020-03-24,Lee,Mississippi,28081,12,0 +2020-03-25,Lee,Mississippi,28081,14,0 +2020-03-26,Lee,Mississippi,28081,15,0 +2020-03-27,Lee,Mississippi,28081,15,0 +2020-03-28,Lee,Mississippi,28081,17,1 +2020-03-29,Lee,Mississippi,28081,21,1 +2020-03-30,Lee,Mississippi,28081,23,1 +2020-03-31,Lee,Mississippi,28081,24,1 +2020-04-01,Lee,Mississippi,28081,25,1 +2020-04-02,Lee,Mississippi,28081,24,1 +2020-04-03,Lee,Mississippi,28081,26,1 +2020-04-04,Lee,Mississippi,28081,28,1 +2020-04-05,Lee,Mississippi,28081,30,1 +2020-04-06,Lee,Mississippi,28081,30,2 +2020-04-07,Lee,Mississippi,28081,38,2 +2020-04-08,Lee,Mississippi,28081,40,2 +2020-04-09,Lee,Mississippi,28081,40,2 +2020-04-10,Lee,Mississippi,28081,41,2 +2020-04-11,Lee,Mississippi,28081,42,3 +2020-04-12,Lee,Mississippi,28081,43,4 +2020-04-13,Lee,Mississippi,28081,46,4 +2020-04-14,Lee,Mississippi,28081,46,4 +2020-04-15,Lee,Mississippi,28081,46,4 +2020-04-16,Lee,Mississippi,28081,48,4 +2020-04-17,Lee,Mississippi,28081,49,4 +2020-04-18,Lee,Mississippi,28081,54,4 +2020-04-19,Lee,Mississippi,28081,60,4 +2020-04-20,Lee,Mississippi,28081,63,4 +2020-04-21,Lee,Mississippi,28081,64,4 +2020-04-22,Lee,Mississippi,28081,64,4 +2020-04-23,Lee,Mississippi,28081,66,4 +2020-04-24,Lee,Mississippi,28081,70,4 +2020-04-25,Lee,Mississippi,28081,72,5 +2020-04-26,Lee,Mississippi,28081,72,5 +2020-04-27,Lee,Mississippi,28081,70,4 +2020-04-28,Lee,Mississippi,28081,71,4 +2020-04-29,Lee,Mississippi,28081,70,4 +2020-04-30,Lee,Mississippi,28081,69,4 +2020-05-01,Lee,Mississippi,28081,71,4 +2020-05-02,Lee,Mississippi,28081,71,4 +2020-05-03,Lee,Mississippi,28081,71,4 +2020-05-04,Lee,Mississippi,28081,72,4 +2020-05-05,Lee,Mississippi,28081,75,4 +2020-05-06,Lee,Mississippi,28081,73,4 +2020-05-07,Lee,Mississippi,28081,73,4 +2020-05-08,Lee,Mississippi,28081,77,4 +2020-05-09,Lee,Mississippi,28081,78,4 +2020-05-10,Lee,Mississippi,28081,77,4 +2020-05-11,Lee,Mississippi,28081,80,4 +2020-05-12,Lee,Mississippi,28081,81,4 +2020-05-13,Lee,Mississippi,28081,81,4 +2020-05-14,Lee,Mississippi,28081,83,4 +2020-05-15,Lee,Mississippi,28081,85,4 +2020-05-16,Lee,Mississippi,28081,89,4 +2020-05-17,Lee,Mississippi,28081,93,4 +2020-05-18,Lee,Mississippi,28081,93,4 +2020-05-19,Lee,Mississippi,28081,96,5 +2020-05-20,Lee,Mississippi,28081,95,5 +2020-05-21,Lee,Mississippi,28081,97,5 +2020-05-22,Lee,Mississippi,28081,99,5 +2020-05-23,Lee,Mississippi,28081,101,5 +2020-05-24,Lee,Mississippi,28081,104,5 +2020-05-25,Lee,Mississippi,28081,108,5 +2020-05-26,Lee,Mississippi,28081,113,5 +2020-05-27,Lee,Mississippi,28081,117,5 +2020-05-28,Lee,Mississippi,28081,124,5 +2020-05-29,Lee,Mississippi,28081,139,6 +2020-05-30,Lee,Mississippi,28081,149,6 +2020-05-31,Lee,Mississippi,28081,153,6 +2020-06-01,Lee,Mississippi,28081,154,6 +2020-06-02,Lee,Mississippi,28081,165,7 +2020-06-03,Lee,Mississippi,28081,185,7 +2020-06-04,Lee,Mississippi,28081,194,8 +2020-06-05,Lee,Mississippi,28081,197,8 +2020-06-06,Lee,Mississippi,28081,220,8 +2020-06-07,Lee,Mississippi,28081,224,8 +2020-06-08,Lee,Mississippi,28081,237,9 +2020-06-09,Lee,Mississippi,28081,248,9 +2020-06-10,Lee,Mississippi,28081,261,11 +2020-06-11,Lee,Mississippi,28081,261,11 +2020-06-12,Lee,Mississippi,28081,287,11 +2020-06-13,Lee,Mississippi,28081,292,11 +2020-06-14,Lee,Mississippi,28081,296,11 +2020-06-15,Lee,Mississippi,28081,301,11 +2020-06-16,Lee,Mississippi,28081,310,12 +2020-06-17,Lee,Mississippi,28081,330,14 +2020-06-18,Lee,Mississippi,28081,330,14 +2020-06-19,Lee,Mississippi,28081,330,14 +2020-06-20,Lee,Mississippi,28081,330,14 +2020-06-21,Lee,Mississippi,28081,330,14 +2020-06-22,Lee,Mississippi,28081,374,14 +2020-06-23,Lee,Mississippi,28081,388,14 +2020-06-24,Lee,Mississippi,28081,403,15 +2020-06-25,Lee,Mississippi,28081,429,15 +2020-06-26,Lee,Mississippi,28081,437,15 +2020-06-27,Lee,Mississippi,28081,447,15 +2020-06-28,Lee,Mississippi,28081,452,15 +2020-06-29,Lee,Mississippi,28081,460,15 +2020-06-30,Lee,Mississippi,28081,477,16 +2020-07-01,Lee,Mississippi,28081,493,16 +2020-07-02,Lee,Mississippi,28081,518,16 +2020-07-03,Lee,Mississippi,28081,532,18 +2020-07-04,Lee,Mississippi,28081,547,18 +2020-07-05,Lee,Mississippi,28081,547,18 +2020-07-06,Lee,Mississippi,28081,552,19 +2020-07-07,Lee,Mississippi,28081,562,20 +2020-07-08,Lee,Mississippi,28081,575,21 +2020-07-09,Lee,Mississippi,28081,586,21 +2020-03-13,Leflore,Mississippi,28083,1,0 +2020-03-14,Leflore,Mississippi,28083,1,0 +2020-03-15,Leflore,Mississippi,28083,1,0 +2020-03-16,Leflore,Mississippi,28083,1,0 +2020-03-17,Leflore,Mississippi,28083,4,0 +2020-03-18,Leflore,Mississippi,28083,4,0 +2020-03-19,Leflore,Mississippi,28083,4,0 +2020-03-20,Leflore,Mississippi,28083,7,0 +2020-03-21,Leflore,Mississippi,28083,7,0 +2020-03-22,Leflore,Mississippi,28083,8,0 +2020-03-23,Leflore,Mississippi,28083,9,0 +2020-03-24,Leflore,Mississippi,28083,10,0 +2020-03-25,Leflore,Mississippi,28083,13,0 +2020-03-26,Leflore,Mississippi,28083,13,0 +2020-03-27,Leflore,Mississippi,28083,13,0 +2020-03-28,Leflore,Mississippi,28083,15,0 +2020-03-29,Leflore,Mississippi,28083,15,0 +2020-03-30,Leflore,Mississippi,28083,18,1 +2020-03-31,Leflore,Mississippi,28083,19,1 +2020-04-01,Leflore,Mississippi,28083,20,1 +2020-04-02,Leflore,Mississippi,28083,20,1 +2020-04-03,Leflore,Mississippi,28083,21,1 +2020-04-04,Leflore,Mississippi,28083,22,1 +2020-04-05,Leflore,Mississippi,28083,22,3 +2020-04-06,Leflore,Mississippi,28083,23,4 +2020-04-07,Leflore,Mississippi,28083,26,4 +2020-04-08,Leflore,Mississippi,28083,28,4 +2020-04-09,Leflore,Mississippi,28083,32,4 +2020-04-10,Leflore,Mississippi,28083,43,4 +2020-04-11,Leflore,Mississippi,28083,44,4 +2020-04-12,Leflore,Mississippi,28083,45,4 +2020-04-13,Leflore,Mississippi,28083,48,4 +2020-04-14,Leflore,Mississippi,28083,52,6 +2020-04-15,Leflore,Mississippi,28083,55,6 +2020-04-16,Leflore,Mississippi,28083,62,6 +2020-04-17,Leflore,Mississippi,28083,70,6 +2020-04-18,Leflore,Mississippi,28083,75,6 +2020-04-19,Leflore,Mississippi,28083,91,7 +2020-04-20,Leflore,Mississippi,28083,105,10 +2020-04-21,Leflore,Mississippi,28083,109,12 +2020-04-22,Leflore,Mississippi,28083,113,12 +2020-04-23,Leflore,Mississippi,28083,119,13 +2020-04-24,Leflore,Mississippi,28083,124,14 +2020-04-25,Leflore,Mississippi,28083,131,15 +2020-04-26,Leflore,Mississippi,28083,136,15 +2020-04-27,Leflore,Mississippi,28083,137,15 +2020-04-28,Leflore,Mississippi,28083,141,15 +2020-04-29,Leflore,Mississippi,28083,145,16 +2020-04-30,Leflore,Mississippi,28083,148,17 +2020-05-01,Leflore,Mississippi,28083,164,17 +2020-05-02,Leflore,Mississippi,28083,165,17 +2020-05-03,Leflore,Mississippi,28083,168,17 +2020-05-04,Leflore,Mississippi,28083,174,17 +2020-05-05,Leflore,Mississippi,28083,175,18 +2020-05-06,Leflore,Mississippi,28083,177,18 +2020-05-07,Leflore,Mississippi,28083,180,18 +2020-05-08,Leflore,Mississippi,28083,182,18 +2020-05-09,Leflore,Mississippi,28083,185,18 +2020-05-10,Leflore,Mississippi,28083,185,18 +2020-05-11,Leflore,Mississippi,28083,185,18 +2020-05-12,Leflore,Mississippi,28083,191,20 +2020-05-13,Leflore,Mississippi,28083,192,21 +2020-05-14,Leflore,Mississippi,28083,197,22 +2020-05-15,Leflore,Mississippi,28083,199,22 +2020-05-16,Leflore,Mississippi,28083,200,22 +2020-05-17,Leflore,Mississippi,28083,200,22 +2020-05-18,Leflore,Mississippi,28083,200,22 +2020-05-19,Leflore,Mississippi,28083,202,22 +2020-05-20,Leflore,Mississippi,28083,205,23 +2020-05-21,Leflore,Mississippi,28083,206,24 +2020-05-22,Leflore,Mississippi,28083,211,25 +2020-05-23,Leflore,Mississippi,28083,240,25 +2020-05-24,Leflore,Mississippi,28083,239,25 +2020-05-25,Leflore,Mississippi,28083,241,26 +2020-05-26,Leflore,Mississippi,28083,246,27 +2020-05-27,Leflore,Mississippi,28083,250,30 +2020-05-28,Leflore,Mississippi,28083,251,30 +2020-05-29,Leflore,Mississippi,28083,255,30 +2020-05-30,Leflore,Mississippi,28083,258,31 +2020-05-31,Leflore,Mississippi,28083,264,31 +2020-06-01,Leflore,Mississippi,28083,265,32 +2020-06-02,Leflore,Mississippi,28083,273,34 +2020-06-03,Leflore,Mississippi,28083,273,36 +2020-06-04,Leflore,Mississippi,28083,277,36 +2020-06-05,Leflore,Mississippi,28083,282,38 +2020-06-06,Leflore,Mississippi,28083,287,39 +2020-06-07,Leflore,Mississippi,28083,288,40 +2020-06-08,Leflore,Mississippi,28083,309,42 +2020-06-09,Leflore,Mississippi,28083,322,43 +2020-06-10,Leflore,Mississippi,28083,330,44 +2020-06-11,Leflore,Mississippi,28083,330,44 +2020-06-12,Leflore,Mississippi,28083,350,44 +2020-06-13,Leflore,Mississippi,28083,352,45 +2020-06-14,Leflore,Mississippi,28083,358,45 +2020-06-15,Leflore,Mississippi,28083,368,45 +2020-06-16,Leflore,Mississippi,28083,376,45 +2020-06-17,Leflore,Mississippi,28083,385,47 +2020-06-18,Leflore,Mississippi,28083,385,47 +2020-06-19,Leflore,Mississippi,28083,385,47 +2020-06-20,Leflore,Mississippi,28083,385,47 +2020-06-21,Leflore,Mississippi,28083,385,47 +2020-06-22,Leflore,Mississippi,28083,420,47 +2020-06-23,Leflore,Mississippi,28083,430,48 +2020-06-24,Leflore,Mississippi,28083,434,48 +2020-06-25,Leflore,Mississippi,28083,439,48 +2020-06-26,Leflore,Mississippi,28083,441,48 +2020-06-27,Leflore,Mississippi,28083,449,48 +2020-06-28,Leflore,Mississippi,28083,454,48 +2020-06-29,Leflore,Mississippi,28083,455,48 +2020-06-30,Leflore,Mississippi,28083,469,48 +2020-07-01,Leflore,Mississippi,28083,472,49 +2020-07-02,Leflore,Mississippi,28083,474,49 +2020-07-03,Leflore,Mississippi,28083,480,49 +2020-07-04,Leflore,Mississippi,28083,486,51 +2020-07-05,Leflore,Mississippi,28083,487,51 +2020-07-06,Leflore,Mississippi,28083,491,51 +2020-07-07,Leflore,Mississippi,28083,500,53 +2020-07-08,Leflore,Mississippi,28083,507,56 +2020-07-09,Leflore,Mississippi,28083,522,56 +2020-03-21,Lincoln,Mississippi,28085,1,0 +2020-03-22,Lincoln,Mississippi,28085,4,0 +2020-03-23,Lincoln,Mississippi,28085,4,0 +2020-03-24,Lincoln,Mississippi,28085,4,0 +2020-03-25,Lincoln,Mississippi,28085,4,0 +2020-03-26,Lincoln,Mississippi,28085,6,0 +2020-03-27,Lincoln,Mississippi,28085,6,0 +2020-03-28,Lincoln,Mississippi,28085,8,0 +2020-03-29,Lincoln,Mississippi,28085,9,0 +2020-03-30,Lincoln,Mississippi,28085,11,0 +2020-03-31,Lincoln,Mississippi,28085,11,0 +2020-04-01,Lincoln,Mississippi,28085,13,0 +2020-04-02,Lincoln,Mississippi,28085,14,0 +2020-04-03,Lincoln,Mississippi,28085,14,0 +2020-04-04,Lincoln,Mississippi,28085,14,0 +2020-04-05,Lincoln,Mississippi,28085,16,0 +2020-04-06,Lincoln,Mississippi,28085,18,0 +2020-04-07,Lincoln,Mississippi,28085,21,1 +2020-04-08,Lincoln,Mississippi,28085,26,1 +2020-04-09,Lincoln,Mississippi,28085,32,2 +2020-04-10,Lincoln,Mississippi,28085,41,3 +2020-04-11,Lincoln,Mississippi,28085,41,3 +2020-04-12,Lincoln,Mississippi,28085,46,4 +2020-04-13,Lincoln,Mississippi,28085,49,4 +2020-04-14,Lincoln,Mississippi,28085,56,4 +2020-04-15,Lincoln,Mississippi,28085,81,4 +2020-04-16,Lincoln,Mississippi,28085,86,6 +2020-04-17,Lincoln,Mississippi,28085,95,6 +2020-04-18,Lincoln,Mississippi,28085,102,6 +2020-04-19,Lincoln,Mississippi,28085,101,6 +2020-04-20,Lincoln,Mississippi,28085,107,6 +2020-04-21,Lincoln,Mississippi,28085,109,6 +2020-04-22,Lincoln,Mississippi,28085,121,7 +2020-04-23,Lincoln,Mississippi,28085,125,7 +2020-04-24,Lincoln,Mississippi,28085,132,7 +2020-04-25,Lincoln,Mississippi,28085,136,8 +2020-04-26,Lincoln,Mississippi,28085,136,9 +2020-04-27,Lincoln,Mississippi,28085,136,9 +2020-04-28,Lincoln,Mississippi,28085,136,9 +2020-04-29,Lincoln,Mississippi,28085,141,9 +2020-04-30,Lincoln,Mississippi,28085,141,10 +2020-05-01,Lincoln,Mississippi,28085,143,11 +2020-05-02,Lincoln,Mississippi,28085,150,11 +2020-05-03,Lincoln,Mississippi,28085,151,11 +2020-05-04,Lincoln,Mississippi,28085,154,11 +2020-05-05,Lincoln,Mississippi,28085,155,12 +2020-05-06,Lincoln,Mississippi,28085,166,12 +2020-05-07,Lincoln,Mississippi,28085,179,12 +2020-05-08,Lincoln,Mississippi,28085,179,12 +2020-05-09,Lincoln,Mississippi,28085,184,13 +2020-05-10,Lincoln,Mississippi,28085,186,14 +2020-05-11,Lincoln,Mississippi,28085,186,14 +2020-05-12,Lincoln,Mississippi,28085,189,14 +2020-05-13,Lincoln,Mississippi,28085,191,15 +2020-05-14,Lincoln,Mississippi,28085,194,16 +2020-05-15,Lincoln,Mississippi,28085,197,17 +2020-05-16,Lincoln,Mississippi,28085,202,18 +2020-05-17,Lincoln,Mississippi,28085,217,18 +2020-05-18,Lincoln,Mississippi,28085,218,18 +2020-05-19,Lincoln,Mississippi,28085,218,18 +2020-05-20,Lincoln,Mississippi,28085,222,18 +2020-05-21,Lincoln,Mississippi,28085,224,19 +2020-05-22,Lincoln,Mississippi,28085,231,19 +2020-05-23,Lincoln,Mississippi,28085,238,20 +2020-05-24,Lincoln,Mississippi,28085,243,20 +2020-05-25,Lincoln,Mississippi,28085,245,20 +2020-05-26,Lincoln,Mississippi,28085,248,21 +2020-05-27,Lincoln,Mississippi,28085,250,22 +2020-05-28,Lincoln,Mississippi,28085,250,24 +2020-05-29,Lincoln,Mississippi,28085,250,27 +2020-05-30,Lincoln,Mississippi,28085,256,28 +2020-05-31,Lincoln,Mississippi,28085,263,29 +2020-06-01,Lincoln,Mississippi,28085,266,29 +2020-06-02,Lincoln,Mississippi,28085,270,29 +2020-06-03,Lincoln,Mississippi,28085,278,29 +2020-06-04,Lincoln,Mississippi,28085,280,31 +2020-06-05,Lincoln,Mississippi,28085,281,31 +2020-06-06,Lincoln,Mississippi,28085,286,32 +2020-06-07,Lincoln,Mississippi,28085,289,32 +2020-06-08,Lincoln,Mississippi,28085,300,32 +2020-06-09,Lincoln,Mississippi,28085,308,32 +2020-06-10,Lincoln,Mississippi,28085,314,32 +2020-06-11,Lincoln,Mississippi,28085,314,32 +2020-06-12,Lincoln,Mississippi,28085,316,32 +2020-06-13,Lincoln,Mississippi,28085,320,32 +2020-06-14,Lincoln,Mississippi,28085,324,32 +2020-06-15,Lincoln,Mississippi,28085,327,32 +2020-06-16,Lincoln,Mississippi,28085,329,32 +2020-06-17,Lincoln,Mississippi,28085,330,32 +2020-06-18,Lincoln,Mississippi,28085,330,32 +2020-06-19,Lincoln,Mississippi,28085,330,32 +2020-06-20,Lincoln,Mississippi,28085,330,32 +2020-06-21,Lincoln,Mississippi,28085,330,32 +2020-06-22,Lincoln,Mississippi,28085,378,32 +2020-06-23,Lincoln,Mississippi,28085,384,32 +2020-06-24,Lincoln,Mississippi,28085,396,32 +2020-06-25,Lincoln,Mississippi,28085,411,32 +2020-06-26,Lincoln,Mississippi,28085,413,32 +2020-06-27,Lincoln,Mississippi,28085,420,33 +2020-06-28,Lincoln,Mississippi,28085,422,33 +2020-06-29,Lincoln,Mississippi,28085,430,33 +2020-06-30,Lincoln,Mississippi,28085,434,34 +2020-07-01,Lincoln,Mississippi,28085,435,34 +2020-07-02,Lincoln,Mississippi,28085,437,34 +2020-07-03,Lincoln,Mississippi,28085,443,34 +2020-07-04,Lincoln,Mississippi,28085,454,34 +2020-07-05,Lincoln,Mississippi,28085,460,34 +2020-07-06,Lincoln,Mississippi,28085,466,34 +2020-07-07,Lincoln,Mississippi,28085,484,34 +2020-07-08,Lincoln,Mississippi,28085,492,34 +2020-07-09,Lincoln,Mississippi,28085,509,35 +2020-03-21,Lowndes,Mississippi,28087,4,0 +2020-03-22,Lowndes,Mississippi,28087,4,0 +2020-03-23,Lowndes,Mississippi,28087,6,0 +2020-03-24,Lowndes,Mississippi,28087,6,0 +2020-03-25,Lowndes,Mississippi,28087,6,0 +2020-03-26,Lowndes,Mississippi,28087,8,0 +2020-03-27,Lowndes,Mississippi,28087,9,0 +2020-03-28,Lowndes,Mississippi,28087,10,0 +2020-03-29,Lowndes,Mississippi,28087,10,0 +2020-03-30,Lowndes,Mississippi,28087,10,0 +2020-03-31,Lowndes,Mississippi,28087,11,0 +2020-04-01,Lowndes,Mississippi,28087,11,0 +2020-04-02,Lowndes,Mississippi,28087,10,0 +2020-04-03,Lowndes,Mississippi,28087,12,0 +2020-04-04,Lowndes,Mississippi,28087,13,0 +2020-04-05,Lowndes,Mississippi,28087,15,0 +2020-04-06,Lowndes,Mississippi,28087,15,0 +2020-04-07,Lowndes,Mississippi,28087,16,0 +2020-04-08,Lowndes,Mississippi,28087,17,0 +2020-04-09,Lowndes,Mississippi,28087,18,0 +2020-04-10,Lowndes,Mississippi,28087,19,0 +2020-04-11,Lowndes,Mississippi,28087,22,0 +2020-04-12,Lowndes,Mississippi,28087,24,0 +2020-04-13,Lowndes,Mississippi,28087,25,0 +2020-04-14,Lowndes,Mississippi,28087,25,0 +2020-04-15,Lowndes,Mississippi,28087,27,0 +2020-04-16,Lowndes,Mississippi,28087,30,0 +2020-04-17,Lowndes,Mississippi,28087,30,1 +2020-04-18,Lowndes,Mississippi,28087,32,1 +2020-04-19,Lowndes,Mississippi,28087,32,1 +2020-04-20,Lowndes,Mississippi,28087,34,1 +2020-04-21,Lowndes,Mississippi,28087,35,1 +2020-04-22,Lowndes,Mississippi,28087,36,1 +2020-04-23,Lowndes,Mississippi,28087,36,1 +2020-04-24,Lowndes,Mississippi,28087,38,2 +2020-04-25,Lowndes,Mississippi,28087,41,2 +2020-04-26,Lowndes,Mississippi,28087,41,2 +2020-04-27,Lowndes,Mississippi,28087,45,2 +2020-04-28,Lowndes,Mississippi,28087,49,2 +2020-04-29,Lowndes,Mississippi,28087,49,2 +2020-04-30,Lowndes,Mississippi,28087,54,2 +2020-05-01,Lowndes,Mississippi,28087,58,2 +2020-05-02,Lowndes,Mississippi,28087,58,2 +2020-05-03,Lowndes,Mississippi,28087,60,3 +2020-05-04,Lowndes,Mississippi,28087,61,3 +2020-05-05,Lowndes,Mississippi,28087,65,3 +2020-05-06,Lowndes,Mississippi,28087,64,3 +2020-05-07,Lowndes,Mississippi,28087,71,3 +2020-05-08,Lowndes,Mississippi,28087,73,3 +2020-05-09,Lowndes,Mississippi,28087,79,3 +2020-05-10,Lowndes,Mississippi,28087,83,3 +2020-05-11,Lowndes,Mississippi,28087,86,3 +2020-05-12,Lowndes,Mississippi,28087,91,3 +2020-05-13,Lowndes,Mississippi,28087,93,4 +2020-05-14,Lowndes,Mississippi,28087,100,4 +2020-05-15,Lowndes,Mississippi,28087,108,4 +2020-05-16,Lowndes,Mississippi,28087,112,4 +2020-05-17,Lowndes,Mississippi,28087,122,5 +2020-05-18,Lowndes,Mississippi,28087,126,6 +2020-05-19,Lowndes,Mississippi,28087,132,6 +2020-05-20,Lowndes,Mississippi,28087,135,6 +2020-05-21,Lowndes,Mississippi,28087,136,7 +2020-05-22,Lowndes,Mississippi,28087,139,7 +2020-05-23,Lowndes,Mississippi,28087,158,7 +2020-05-24,Lowndes,Mississippi,28087,160,7 +2020-05-25,Lowndes,Mississippi,28087,164,7 +2020-05-26,Lowndes,Mississippi,28087,166,7 +2020-05-27,Lowndes,Mississippi,28087,182,8 +2020-05-28,Lowndes,Mississippi,28087,189,9 +2020-05-29,Lowndes,Mississippi,28087,200,9 +2020-05-30,Lowndes,Mississippi,28087,211,9 +2020-05-31,Lowndes,Mississippi,28087,211,9 +2020-06-01,Lowndes,Mississippi,28087,219,9 +2020-06-02,Lowndes,Mississippi,28087,230,9 +2020-06-03,Lowndes,Mississippi,28087,241,9 +2020-06-04,Lowndes,Mississippi,28087,247,9 +2020-06-05,Lowndes,Mississippi,28087,252,9 +2020-06-06,Lowndes,Mississippi,28087,263,9 +2020-06-07,Lowndes,Mississippi,28087,270,9 +2020-06-08,Lowndes,Mississippi,28087,274,9 +2020-06-09,Lowndes,Mississippi,28087,277,9 +2020-06-10,Lowndes,Mississippi,28087,290,9 +2020-06-11,Lowndes,Mississippi,28087,290,9 +2020-06-12,Lowndes,Mississippi,28087,311,9 +2020-06-13,Lowndes,Mississippi,28087,311,9 +2020-06-14,Lowndes,Mississippi,28087,315,9 +2020-06-15,Lowndes,Mississippi,28087,317,9 +2020-06-16,Lowndes,Mississippi,28087,335,9 +2020-06-17,Lowndes,Mississippi,28087,352,10 +2020-06-18,Lowndes,Mississippi,28087,352,10 +2020-06-19,Lowndes,Mississippi,28087,352,10 +2020-06-20,Lowndes,Mississippi,28087,352,10 +2020-06-21,Lowndes,Mississippi,28087,352,10 +2020-06-22,Lowndes,Mississippi,28087,384,10 +2020-06-23,Lowndes,Mississippi,28087,392,10 +2020-06-24,Lowndes,Mississippi,28087,399,10 +2020-06-25,Lowndes,Mississippi,28087,412,10 +2020-06-26,Lowndes,Mississippi,28087,421,10 +2020-06-27,Lowndes,Mississippi,28087,425,10 +2020-06-28,Lowndes,Mississippi,28087,431,11 +2020-06-29,Lowndes,Mississippi,28087,438,11 +2020-06-30,Lowndes,Mississippi,28087,444,11 +2020-07-01,Lowndes,Mississippi,28087,453,11 +2020-07-02,Lowndes,Mississippi,28087,459,12 +2020-07-03,Lowndes,Mississippi,28087,472,12 +2020-07-04,Lowndes,Mississippi,28087,483,12 +2020-07-05,Lowndes,Mississippi,28087,483,13 +2020-07-06,Lowndes,Mississippi,28087,494,13 +2020-07-07,Lowndes,Mississippi,28087,509,13 +2020-07-08,Lowndes,Mississippi,28087,515,13 +2020-07-09,Lowndes,Mississippi,28087,526,13 +2020-03-18,Madison,Mississippi,28089,1,0 +2020-03-19,Madison,Mississippi,28089,1,0 +2020-03-20,Madison,Mississippi,28089,3,0 +2020-03-21,Madison,Mississippi,28089,7,0 +2020-03-22,Madison,Mississippi,28089,9,0 +2020-03-23,Madison,Mississippi,28089,11,0 +2020-03-24,Madison,Mississippi,28089,14,0 +2020-03-25,Madison,Mississippi,28089,17,0 +2020-03-26,Madison,Mississippi,28089,21,0 +2020-03-27,Madison,Mississippi,28089,25,0 +2020-03-28,Madison,Mississippi,28089,29,0 +2020-03-29,Madison,Mississippi,28089,37,0 +2020-03-30,Madison,Mississippi,28089,38,0 +2020-03-31,Madison,Mississippi,28089,42,0 +2020-04-01,Madison,Mississippi,28089,53,0 +2020-04-02,Madison,Mississippi,28089,55,0 +2020-04-03,Madison,Mississippi,28089,65,0 +2020-04-04,Madison,Mississippi,28089,67,0 +2020-04-05,Madison,Mississippi,28089,72,0 +2020-04-06,Madison,Mississippi,28089,74,2 +2020-04-07,Madison,Mississippi,28089,82,2 +2020-04-08,Madison,Mississippi,28089,83,2 +2020-04-09,Madison,Mississippi,28089,88,2 +2020-04-10,Madison,Mississippi,28089,95,2 +2020-04-11,Madison,Mississippi,28089,99,2 +2020-04-12,Madison,Mississippi,28089,103,2 +2020-04-13,Madison,Mississippi,28089,106,2 +2020-04-14,Madison,Mississippi,28089,108,3 +2020-04-15,Madison,Mississippi,28089,112,3 +2020-04-16,Madison,Mississippi,28089,116,3 +2020-04-17,Madison,Mississippi,28089,123,3 +2020-04-18,Madison,Mississippi,28089,127,3 +2020-04-19,Madison,Mississippi,28089,135,4 +2020-04-20,Madison,Mississippi,28089,140,4 +2020-04-21,Madison,Mississippi,28089,144,4 +2020-04-22,Madison,Mississippi,28089,151,4 +2020-04-23,Madison,Mississippi,28089,165,4 +2020-04-24,Madison,Mississippi,28089,178,4 +2020-04-25,Madison,Mississippi,28089,186,5 +2020-04-26,Madison,Mississippi,28089,194,5 +2020-04-27,Madison,Mississippi,28089,208,6 +2020-04-28,Madison,Mississippi,28089,212,7 +2020-04-29,Madison,Mississippi,28089,224,8 +2020-04-30,Madison,Mississippi,28089,229,8 +2020-05-01,Madison,Mississippi,28089,251,8 +2020-05-02,Madison,Mississippi,28089,268,8 +2020-05-03,Madison,Mississippi,28089,272,9 +2020-05-04,Madison,Mississippi,28089,286,10 +2020-05-05,Madison,Mississippi,28089,298,11 +2020-05-06,Madison,Mississippi,28089,318,11 +2020-05-07,Madison,Mississippi,28089,333,12 +2020-05-08,Madison,Mississippi,28089,404,12 +2020-05-09,Madison,Mississippi,28089,422,12 +2020-05-10,Madison,Mississippi,28089,431,12 +2020-05-11,Madison,Mississippi,28089,466,12 +2020-05-12,Madison,Mississippi,28089,491,13 +2020-05-13,Madison,Mississippi,28089,493,15 +2020-05-14,Madison,Mississippi,28089,502,15 +2020-05-15,Madison,Mississippi,28089,507,17 +2020-05-16,Madison,Mississippi,28089,526,17 +2020-05-17,Madison,Mississippi,28089,533,17 +2020-05-18,Madison,Mississippi,28089,543,17 +2020-05-19,Madison,Mississippi,28089,561,17 +2020-05-20,Madison,Mississippi,28089,573,18 +2020-05-21,Madison,Mississippi,28089,582,19 +2020-05-22,Madison,Mississippi,28089,618,20 +2020-05-23,Madison,Mississippi,28089,639,21 +2020-05-24,Madison,Mississippi,28089,654,21 +2020-05-25,Madison,Mississippi,28089,653,21 +2020-05-26,Madison,Mississippi,28089,675,21 +2020-05-27,Madison,Mississippi,28089,687,21 +2020-05-28,Madison,Mississippi,28089,694,22 +2020-05-29,Madison,Mississippi,28089,709,23 +2020-05-30,Madison,Mississippi,28089,720,23 +2020-05-31,Madison,Mississippi,28089,724,23 +2020-06-01,Madison,Mississippi,28089,742,23 +2020-06-02,Madison,Mississippi,28089,745,25 +2020-06-03,Madison,Mississippi,28089,757,27 +2020-06-04,Madison,Mississippi,28089,767,28 +2020-06-05,Madison,Mississippi,28089,778,29 +2020-06-06,Madison,Mississippi,28089,788,29 +2020-06-07,Madison,Mississippi,28089,796,29 +2020-06-08,Madison,Mississippi,28089,807,29 +2020-06-09,Madison,Mississippi,28089,832,29 +2020-06-10,Madison,Mississippi,28089,843,30 +2020-06-11,Madison,Mississippi,28089,843,30 +2020-06-12,Madison,Mississippi,28089,864,30 +2020-06-13,Madison,Mississippi,28089,877,30 +2020-06-14,Madison,Mississippi,28089,886,30 +2020-06-15,Madison,Mississippi,28089,889,30 +2020-06-16,Madison,Mississippi,28089,905,31 +2020-06-17,Madison,Mississippi,28089,922,31 +2020-06-18,Madison,Mississippi,28089,922,31 +2020-06-19,Madison,Mississippi,28089,922,31 +2020-06-20,Madison,Mississippi,28089,922,31 +2020-06-21,Madison,Mississippi,28089,922,31 +2020-06-22,Madison,Mississippi,28089,995,31 +2020-06-23,Madison,Mississippi,28089,1014,31 +2020-06-24,Madison,Mississippi,28089,1034,31 +2020-06-25,Madison,Mississippi,28089,1082,31 +2020-06-26,Madison,Mississippi,28089,1112,31 +2020-06-27,Madison,Mississippi,28089,1127,32 +2020-06-28,Madison,Mississippi,28089,1145,32 +2020-06-29,Madison,Mississippi,28089,1181,32 +2020-06-30,Madison,Mississippi,28089,1206,34 +2020-07-01,Madison,Mississippi,28089,1222,34 +2020-07-02,Madison,Mississippi,28089,1242,34 +2020-07-03,Madison,Mississippi,28089,1267,34 +2020-07-04,Madison,Mississippi,28089,1296,34 +2020-07-05,Madison,Mississippi,28089,1300,34 +2020-07-06,Madison,Mississippi,28089,1314,34 +2020-07-07,Madison,Mississippi,28089,1326,35 +2020-07-08,Madison,Mississippi,28089,1355,36 +2020-07-09,Madison,Mississippi,28089,1382,36 +2020-03-23,Marion,Mississippi,28091,1,0 +2020-03-24,Marion,Mississippi,28091,1,0 +2020-03-25,Marion,Mississippi,28091,1,0 +2020-03-26,Marion,Mississippi,28091,1,0 +2020-03-27,Marion,Mississippi,28091,1,0 +2020-03-28,Marion,Mississippi,28091,3,0 +2020-03-29,Marion,Mississippi,28091,4,0 +2020-03-30,Marion,Mississippi,28091,4,0 +2020-03-31,Marion,Mississippi,28091,5,0 +2020-04-01,Marion,Mississippi,28091,6,0 +2020-04-02,Marion,Mississippi,28091,5,0 +2020-04-03,Marion,Mississippi,28091,5,0 +2020-04-04,Marion,Mississippi,28091,6,0 +2020-04-05,Marion,Mississippi,28091,7,0 +2020-04-06,Marion,Mississippi,28091,8,0 +2020-04-07,Marion,Mississippi,28091,13,0 +2020-04-08,Marion,Mississippi,28091,14,0 +2020-04-09,Marion,Mississippi,28091,16,0 +2020-04-10,Marion,Mississippi,28091,17,0 +2020-04-11,Marion,Mississippi,28091,17,0 +2020-04-12,Marion,Mississippi,28091,21,0 +2020-04-13,Marion,Mississippi,28091,21,0 +2020-04-14,Marion,Mississippi,28091,25,0 +2020-04-15,Marion,Mississippi,28091,34,0 +2020-04-16,Marion,Mississippi,28091,35,0 +2020-04-17,Marion,Mississippi,28091,38,0 +2020-04-18,Marion,Mississippi,28091,39,0 +2020-04-19,Marion,Mississippi,28091,43,1 +2020-04-20,Marion,Mississippi,28091,47,1 +2020-04-21,Marion,Mississippi,28091,47,1 +2020-04-22,Marion,Mississippi,28091,48,2 +2020-04-23,Marion,Mississippi,28091,53,4 +2020-04-24,Marion,Mississippi,28091,55,4 +2020-04-25,Marion,Mississippi,28091,57,5 +2020-04-26,Marion,Mississippi,28091,58,5 +2020-04-27,Marion,Mississippi,28091,58,5 +2020-04-28,Marion,Mississippi,28091,66,5 +2020-04-29,Marion,Mississippi,28091,69,5 +2020-04-30,Marion,Mississippi,28091,72,6 +2020-05-01,Marion,Mississippi,28091,75,7 +2020-05-02,Marion,Mississippi,28091,75,7 +2020-05-03,Marion,Mississippi,28091,75,7 +2020-05-04,Marion,Mississippi,28091,75,7 +2020-05-05,Marion,Mississippi,28091,76,7 +2020-05-06,Marion,Mississippi,28091,77,7 +2020-05-07,Marion,Mississippi,28091,80,7 +2020-05-08,Marion,Mississippi,28091,82,7 +2020-05-09,Marion,Mississippi,28091,83,7 +2020-05-10,Marion,Mississippi,28091,81,7 +2020-05-11,Marion,Mississippi,28091,84,7 +2020-05-12,Marion,Mississippi,28091,84,7 +2020-05-13,Marion,Mississippi,28091,86,7 +2020-05-14,Marion,Mississippi,28091,86,7 +2020-05-15,Marion,Mississippi,28091,86,7 +2020-05-16,Marion,Mississippi,28091,87,7 +2020-05-17,Marion,Mississippi,28091,89,8 +2020-05-18,Marion,Mississippi,28091,89,8 +2020-05-19,Marion,Mississippi,28091,93,8 +2020-05-20,Marion,Mississippi,28091,97,8 +2020-05-21,Marion,Mississippi,28091,100,8 +2020-05-22,Marion,Mississippi,28091,103,8 +2020-05-23,Marion,Mississippi,28091,104,8 +2020-05-24,Marion,Mississippi,28091,108,8 +2020-05-25,Marion,Mississippi,28091,110,8 +2020-05-26,Marion,Mississippi,28091,110,9 +2020-05-27,Marion,Mississippi,28091,112,9 +2020-05-28,Marion,Mississippi,28091,114,9 +2020-05-29,Marion,Mississippi,28091,114,9 +2020-05-30,Marion,Mississippi,28091,115,9 +2020-05-31,Marion,Mississippi,28091,114,9 +2020-06-01,Marion,Mississippi,28091,117,9 +2020-06-02,Marion,Mississippi,28091,115,9 +2020-06-03,Marion,Mississippi,28091,116,9 +2020-06-04,Marion,Mississippi,28091,116,9 +2020-06-05,Marion,Mississippi,28091,116,9 +2020-06-06,Marion,Mississippi,28091,117,9 +2020-06-07,Marion,Mississippi,28091,119,9 +2020-06-08,Marion,Mississippi,28091,127,9 +2020-06-09,Marion,Mississippi,28091,129,9 +2020-06-10,Marion,Mississippi,28091,132,9 +2020-06-11,Marion,Mississippi,28091,132,9 +2020-06-12,Marion,Mississippi,28091,137,9 +2020-06-13,Marion,Mississippi,28091,140,9 +2020-06-14,Marion,Mississippi,28091,141,9 +2020-06-15,Marion,Mississippi,28091,145,9 +2020-06-16,Marion,Mississippi,28091,152,9 +2020-06-17,Marion,Mississippi,28091,163,9 +2020-06-18,Marion,Mississippi,28091,163,9 +2020-06-19,Marion,Mississippi,28091,163,9 +2020-06-20,Marion,Mississippi,28091,163,9 +2020-06-21,Marion,Mississippi,28091,163,9 +2020-06-22,Marion,Mississippi,28091,186,10 +2020-06-23,Marion,Mississippi,28091,196,10 +2020-06-24,Marion,Mississippi,28091,203,10 +2020-06-25,Marion,Mississippi,28091,215,10 +2020-06-26,Marion,Mississippi,28091,223,11 +2020-06-27,Marion,Mississippi,28091,225,11 +2020-06-28,Marion,Mississippi,28091,228,11 +2020-06-29,Marion,Mississippi,28091,233,11 +2020-06-30,Marion,Mississippi,28091,240,11 +2020-07-01,Marion,Mississippi,28091,248,11 +2020-07-02,Marion,Mississippi,28091,263,11 +2020-07-03,Marion,Mississippi,28091,270,11 +2020-07-04,Marion,Mississippi,28091,275,11 +2020-07-05,Marion,Mississippi,28091,281,11 +2020-07-06,Marion,Mississippi,28091,284,11 +2020-07-07,Marion,Mississippi,28091,300,12 +2020-07-08,Marion,Mississippi,28091,308,12 +2020-07-09,Marion,Mississippi,28091,313,12 +2020-03-20,Marshall,Mississippi,28093,1,0 +2020-03-21,Marshall,Mississippi,28093,2,0 +2020-03-22,Marshall,Mississippi,28093,3,0 +2020-03-23,Marshall,Mississippi,28093,3,0 +2020-03-24,Marshall,Mississippi,28093,3,0 +2020-03-25,Marshall,Mississippi,28093,4,0 +2020-03-26,Marshall,Mississippi,28093,7,0 +2020-03-27,Marshall,Mississippi,28093,9,0 +2020-03-28,Marshall,Mississippi,28093,11,0 +2020-03-29,Marshall,Mississippi,28093,13,0 +2020-03-30,Marshall,Mississippi,28093,13,0 +2020-03-31,Marshall,Mississippi,28093,14,0 +2020-04-01,Marshall,Mississippi,28093,15,0 +2020-04-02,Marshall,Mississippi,28093,18,1 +2020-04-03,Marshall,Mississippi,28093,19,1 +2020-04-04,Marshall,Mississippi,28093,20,1 +2020-04-05,Marshall,Mississippi,28093,20,1 +2020-04-06,Marshall,Mississippi,28093,23,1 +2020-04-07,Marshall,Mississippi,28093,24,1 +2020-04-08,Marshall,Mississippi,28093,24,1 +2020-04-09,Marshall,Mississippi,28093,26,1 +2020-04-10,Marshall,Mississippi,28093,28,1 +2020-04-11,Marshall,Mississippi,28093,30,2 +2020-04-12,Marshall,Mississippi,28093,33,2 +2020-04-13,Marshall,Mississippi,28093,34,2 +2020-04-14,Marshall,Mississippi,28093,34,2 +2020-04-15,Marshall,Mississippi,28093,35,2 +2020-04-16,Marshall,Mississippi,28093,37,2 +2020-04-17,Marshall,Mississippi,28093,37,2 +2020-04-18,Marshall,Mississippi,28093,39,2 +2020-04-19,Marshall,Mississippi,28093,38,2 +2020-04-20,Marshall,Mississippi,28093,38,2 +2020-04-21,Marshall,Mississippi,28093,39,2 +2020-04-22,Marshall,Mississippi,28093,39,2 +2020-04-23,Marshall,Mississippi,28093,40,2 +2020-04-24,Marshall,Mississippi,28093,40,2 +2020-04-25,Marshall,Mississippi,28093,41,2 +2020-04-26,Marshall,Mississippi,28093,41,2 +2020-04-27,Marshall,Mississippi,28093,41,2 +2020-04-28,Marshall,Mississippi,28093,42,2 +2020-04-29,Marshall,Mississippi,28093,42,2 +2020-04-30,Marshall,Mississippi,28093,43,2 +2020-05-01,Marshall,Mississippi,28093,44,2 +2020-05-02,Marshall,Mississippi,28093,45,2 +2020-05-03,Marshall,Mississippi,28093,47,2 +2020-05-04,Marshall,Mississippi,28093,48,2 +2020-05-05,Marshall,Mississippi,28093,48,2 +2020-05-06,Marshall,Mississippi,28093,49,2 +2020-05-07,Marshall,Mississippi,28093,50,2 +2020-05-08,Marshall,Mississippi,28093,52,2 +2020-05-09,Marshall,Mississippi,28093,55,2 +2020-05-10,Marshall,Mississippi,28093,55,2 +2020-05-11,Marshall,Mississippi,28093,56,2 +2020-05-12,Marshall,Mississippi,28093,58,2 +2020-05-13,Marshall,Mississippi,28093,62,2 +2020-05-14,Marshall,Mississippi,28093,63,2 +2020-05-15,Marshall,Mississippi,28093,65,2 +2020-05-16,Marshall,Mississippi,28093,66,3 +2020-05-17,Marshall,Mississippi,28093,66,3 +2020-05-18,Marshall,Mississippi,28093,67,3 +2020-05-19,Marshall,Mississippi,28093,67,3 +2020-05-20,Marshall,Mississippi,28093,68,3 +2020-05-21,Marshall,Mississippi,28093,68,3 +2020-05-22,Marshall,Mississippi,28093,68,3 +2020-05-23,Marshall,Mississippi,28093,69,3 +2020-05-24,Marshall,Mississippi,28093,69,3 +2020-05-25,Marshall,Mississippi,28093,71,3 +2020-05-26,Marshall,Mississippi,28093,71,3 +2020-05-27,Marshall,Mississippi,28093,76,3 +2020-05-28,Marshall,Mississippi,28093,77,3 +2020-05-29,Marshall,Mississippi,28093,81,3 +2020-05-30,Marshall,Mississippi,28093,83,3 +2020-05-31,Marshall,Mississippi,28093,81,3 +2020-06-01,Marshall,Mississippi,28093,81,3 +2020-06-02,Marshall,Mississippi,28093,81,3 +2020-06-03,Marshall,Mississippi,28093,85,3 +2020-06-04,Marshall,Mississippi,28093,87,3 +2020-06-05,Marshall,Mississippi,28093,89,3 +2020-06-06,Marshall,Mississippi,28093,89,3 +2020-06-07,Marshall,Mississippi,28093,90,3 +2020-06-08,Marshall,Mississippi,28093,93,3 +2020-06-09,Marshall,Mississippi,28093,96,3 +2020-06-10,Marshall,Mississippi,28093,98,3 +2020-06-11,Marshall,Mississippi,28093,98,3 +2020-06-12,Marshall,Mississippi,28093,98,3 +2020-06-13,Marshall,Mississippi,28093,101,3 +2020-06-14,Marshall,Mississippi,28093,103,3 +2020-06-15,Marshall,Mississippi,28093,107,3 +2020-06-16,Marshall,Mississippi,28093,110,3 +2020-06-17,Marshall,Mississippi,28093,122,3 +2020-06-18,Marshall,Mississippi,28093,122,3 +2020-06-19,Marshall,Mississippi,28093,122,3 +2020-06-20,Marshall,Mississippi,28093,122,3 +2020-06-21,Marshall,Mississippi,28093,122,3 +2020-06-22,Marshall,Mississippi,28093,142,3 +2020-06-23,Marshall,Mississippi,28093,144,3 +2020-06-24,Marshall,Mississippi,28093,148,3 +2020-06-25,Marshall,Mississippi,28093,160,3 +2020-06-26,Marshall,Mississippi,28093,164,3 +2020-06-27,Marshall,Mississippi,28093,171,3 +2020-06-28,Marshall,Mississippi,28093,185,3 +2020-06-29,Marshall,Mississippi,28093,195,3 +2020-06-30,Marshall,Mississippi,28093,196,3 +2020-07-01,Marshall,Mississippi,28093,201,3 +2020-07-02,Marshall,Mississippi,28093,212,3 +2020-07-03,Marshall,Mississippi,28093,217,3 +2020-07-04,Marshall,Mississippi,28093,226,3 +2020-07-05,Marshall,Mississippi,28093,232,3 +2020-07-06,Marshall,Mississippi,28093,234,3 +2020-07-07,Marshall,Mississippi,28093,258,3 +2020-07-08,Marshall,Mississippi,28093,264,3 +2020-07-09,Marshall,Mississippi,28093,269,3 +2020-03-16,Monroe,Mississippi,28095,1,0 +2020-03-17,Monroe,Mississippi,28095,1,0 +2020-03-18,Monroe,Mississippi,28095,1,0 +2020-03-19,Monroe,Mississippi,28095,1,0 +2020-03-20,Monroe,Mississippi,28095,2,0 +2020-03-21,Monroe,Mississippi,28095,2,0 +2020-03-22,Monroe,Mississippi,28095,2,0 +2020-03-23,Monroe,Mississippi,28095,2,0 +2020-03-24,Monroe,Mississippi,28095,3,0 +2020-03-25,Monroe,Mississippi,28095,3,0 +2020-03-26,Monroe,Mississippi,28095,3,0 +2020-03-27,Monroe,Mississippi,28095,3,0 +2020-03-28,Monroe,Mississippi,28095,3,0 +2020-03-29,Monroe,Mississippi,28095,5,0 +2020-03-30,Monroe,Mississippi,28095,5,0 +2020-03-31,Monroe,Mississippi,28095,6,0 +2020-04-01,Monroe,Mississippi,28095,7,0 +2020-04-02,Monroe,Mississippi,28095,11,1 +2020-04-03,Monroe,Mississippi,28095,12,1 +2020-04-04,Monroe,Mississippi,28095,12,1 +2020-04-05,Monroe,Mississippi,28095,13,1 +2020-04-06,Monroe,Mississippi,28095,16,1 +2020-04-07,Monroe,Mississippi,28095,18,1 +2020-04-08,Monroe,Mississippi,28095,19,1 +2020-04-09,Monroe,Mississippi,28095,24,1 +2020-04-10,Monroe,Mississippi,28095,25,1 +2020-04-11,Monroe,Mississippi,28095,31,2 +2020-04-12,Monroe,Mississippi,28095,36,2 +2020-04-13,Monroe,Mississippi,28095,37,2 +2020-04-14,Monroe,Mississippi,28095,38,2 +2020-04-15,Monroe,Mississippi,28095,46,2 +2020-04-16,Monroe,Mississippi,28095,54,3 +2020-04-17,Monroe,Mississippi,28095,58,3 +2020-04-18,Monroe,Mississippi,28095,62,4 +2020-04-19,Monroe,Mississippi,28095,68,5 +2020-04-20,Monroe,Mississippi,28095,75,5 +2020-04-21,Monroe,Mississippi,28095,95,8 +2020-04-22,Monroe,Mississippi,28095,99,9 +2020-04-23,Monroe,Mississippi,28095,109,9 +2020-04-24,Monroe,Mississippi,28095,117,9 +2020-04-25,Monroe,Mississippi,28095,123,9 +2020-04-26,Monroe,Mississippi,28095,134,9 +2020-04-27,Monroe,Mississippi,28095,144,9 +2020-04-28,Monroe,Mississippi,28095,153,12 +2020-04-29,Monroe,Mississippi,28095,157,13 +2020-04-30,Monroe,Mississippi,28095,157,14 +2020-05-01,Monroe,Mississippi,28095,161,16 +2020-05-02,Monroe,Mississippi,28095,173,16 +2020-05-03,Monroe,Mississippi,28095,175,16 +2020-05-04,Monroe,Mississippi,28095,175,16 +2020-05-05,Monroe,Mississippi,28095,177,16 +2020-05-06,Monroe,Mississippi,28095,178,20 +2020-05-07,Monroe,Mississippi,28095,188,20 +2020-05-08,Monroe,Mississippi,28095,191,20 +2020-05-09,Monroe,Mississippi,28095,200,20 +2020-05-10,Monroe,Mississippi,28095,199,21 +2020-05-11,Monroe,Mississippi,28095,199,21 +2020-05-12,Monroe,Mississippi,28095,202,21 +2020-05-13,Monroe,Mississippi,28095,203,21 +2020-05-14,Monroe,Mississippi,28095,209,22 +2020-05-15,Monroe,Mississippi,28095,215,23 +2020-05-16,Monroe,Mississippi,28095,222,23 +2020-05-17,Monroe,Mississippi,28095,222,23 +2020-05-18,Monroe,Mississippi,28095,220,23 +2020-05-19,Monroe,Mississippi,28095,220,23 +2020-05-20,Monroe,Mississippi,28095,226,23 +2020-05-21,Monroe,Mississippi,28095,229,23 +2020-05-22,Monroe,Mississippi,28095,231,24 +2020-05-23,Monroe,Mississippi,28095,241,24 +2020-05-24,Monroe,Mississippi,28095,242,24 +2020-05-25,Monroe,Mississippi,28095,246,24 +2020-05-26,Monroe,Mississippi,28095,249,24 +2020-05-27,Monroe,Mississippi,28095,253,24 +2020-05-28,Monroe,Mississippi,28095,252,25 +2020-05-29,Monroe,Mississippi,28095,254,25 +2020-05-30,Monroe,Mississippi,28095,255,25 +2020-05-31,Monroe,Mississippi,28095,257,25 +2020-06-01,Monroe,Mississippi,28095,261,25 +2020-06-02,Monroe,Mississippi,28095,265,25 +2020-06-03,Monroe,Mississippi,28095,267,25 +2020-06-04,Monroe,Mississippi,28095,269,25 +2020-06-05,Monroe,Mississippi,28095,269,25 +2020-06-06,Monroe,Mississippi,28095,273,25 +2020-06-07,Monroe,Mississippi,28095,277,25 +2020-06-08,Monroe,Mississippi,28095,280,25 +2020-06-09,Monroe,Mississippi,28095,285,25 +2020-06-10,Monroe,Mississippi,28095,290,25 +2020-06-11,Monroe,Mississippi,28095,290,25 +2020-06-12,Monroe,Mississippi,28095,291,25 +2020-06-13,Monroe,Mississippi,28095,291,25 +2020-06-14,Monroe,Mississippi,28095,293,25 +2020-06-15,Monroe,Mississippi,28095,295,25 +2020-06-16,Monroe,Mississippi,28095,297,25 +2020-06-17,Monroe,Mississippi,28095,301,26 +2020-06-18,Monroe,Mississippi,28095,301,26 +2020-06-19,Monroe,Mississippi,28095,301,26 +2020-06-20,Monroe,Mississippi,28095,301,26 +2020-06-21,Monroe,Mississippi,28095,301,26 +2020-06-22,Monroe,Mississippi,28095,311,27 +2020-06-23,Monroe,Mississippi,28095,314,28 +2020-06-24,Monroe,Mississippi,28095,318,28 +2020-06-25,Monroe,Mississippi,28095,328,28 +2020-06-26,Monroe,Mississippi,28095,334,28 +2020-06-27,Monroe,Mississippi,28095,338,28 +2020-06-28,Monroe,Mississippi,28095,340,29 +2020-06-29,Monroe,Mississippi,28095,342,29 +2020-06-30,Monroe,Mississippi,28095,355,29 +2020-07-01,Monroe,Mississippi,28095,367,29 +2020-07-02,Monroe,Mississippi,28095,375,29 +2020-07-03,Monroe,Mississippi,28095,388,30 +2020-07-04,Monroe,Mississippi,28095,399,30 +2020-07-05,Monroe,Mississippi,28095,401,30 +2020-07-06,Monroe,Mississippi,28095,403,30 +2020-07-07,Monroe,Mississippi,28095,425,34 +2020-07-08,Monroe,Mississippi,28095,431,35 +2020-07-09,Monroe,Mississippi,28095,436,35 +2020-03-22,Montgomery,Mississippi,28097,1,0 +2020-03-23,Montgomery,Mississippi,28097,1,0 +2020-03-24,Montgomery,Mississippi,28097,2,0 +2020-03-25,Montgomery,Mississippi,28097,4,0 +2020-03-26,Montgomery,Mississippi,28097,4,0 +2020-03-27,Montgomery,Mississippi,28097,4,0 +2020-03-28,Montgomery,Mississippi,28097,5,0 +2020-03-29,Montgomery,Mississippi,28097,6,0 +2020-03-30,Montgomery,Mississippi,28097,7,0 +2020-03-31,Montgomery,Mississippi,28097,7,1 +2020-04-01,Montgomery,Mississippi,28097,8,1 +2020-04-02,Montgomery,Mississippi,28097,8,1 +2020-04-03,Montgomery,Mississippi,28097,10,1 +2020-04-04,Montgomery,Mississippi,28097,10,1 +2020-04-05,Montgomery,Mississippi,28097,11,1 +2020-04-06,Montgomery,Mississippi,28097,11,1 +2020-04-07,Montgomery,Mississippi,28097,12,1 +2020-04-08,Montgomery,Mississippi,28097,12,1 +2020-04-09,Montgomery,Mississippi,28097,13,1 +2020-04-10,Montgomery,Mississippi,28097,14,1 +2020-04-11,Montgomery,Mississippi,28097,14,1 +2020-04-12,Montgomery,Mississippi,28097,14,1 +2020-04-13,Montgomery,Mississippi,28097,15,1 +2020-04-14,Montgomery,Mississippi,28097,15,1 +2020-04-15,Montgomery,Mississippi,28097,15,1 +2020-04-16,Montgomery,Mississippi,28097,15,1 +2020-04-17,Montgomery,Mississippi,28097,15,1 +2020-04-18,Montgomery,Mississippi,28097,15,1 +2020-04-19,Montgomery,Mississippi,28097,15,1 +2020-04-20,Montgomery,Mississippi,28097,15,1 +2020-04-21,Montgomery,Mississippi,28097,17,1 +2020-04-22,Montgomery,Mississippi,28097,16,1 +2020-04-23,Montgomery,Mississippi,28097,16,1 +2020-04-24,Montgomery,Mississippi,28097,17,1 +2020-04-25,Montgomery,Mississippi,28097,18,1 +2020-04-26,Montgomery,Mississippi,28097,19,1 +2020-04-27,Montgomery,Mississippi,28097,19,1 +2020-04-28,Montgomery,Mississippi,28097,19,1 +2020-04-29,Montgomery,Mississippi,28097,20,1 +2020-04-30,Montgomery,Mississippi,28097,28,1 +2020-05-01,Montgomery,Mississippi,28097,29,1 +2020-05-02,Montgomery,Mississippi,28097,32,1 +2020-05-03,Montgomery,Mississippi,28097,32,1 +2020-05-04,Montgomery,Mississippi,28097,35,1 +2020-05-05,Montgomery,Mississippi,28097,47,1 +2020-05-06,Montgomery,Mississippi,28097,51,1 +2020-05-07,Montgomery,Mississippi,28097,56,1 +2020-05-08,Montgomery,Mississippi,28097,65,1 +2020-05-09,Montgomery,Mississippi,28097,67,1 +2020-05-10,Montgomery,Mississippi,28097,69,1 +2020-05-11,Montgomery,Mississippi,28097,69,1 +2020-05-12,Montgomery,Mississippi,28097,69,1 +2020-05-13,Montgomery,Mississippi,28097,69,1 +2020-05-14,Montgomery,Mississippi,28097,70,1 +2020-05-15,Montgomery,Mississippi,28097,71,1 +2020-05-16,Montgomery,Mississippi,28097,71,1 +2020-05-17,Montgomery,Mississippi,28097,72,1 +2020-05-18,Montgomery,Mississippi,28097,72,1 +2020-05-19,Montgomery,Mississippi,28097,74,1 +2020-05-20,Montgomery,Mississippi,28097,75,1 +2020-05-21,Montgomery,Mississippi,28097,76,1 +2020-05-22,Montgomery,Mississippi,28097,77,1 +2020-05-23,Montgomery,Mississippi,28097,78,1 +2020-05-24,Montgomery,Mississippi,28097,78,1 +2020-05-25,Montgomery,Mississippi,28097,80,1 +2020-05-26,Montgomery,Mississippi,28097,80,1 +2020-05-27,Montgomery,Mississippi,28097,81,1 +2020-05-28,Montgomery,Mississippi,28097,81,1 +2020-05-29,Montgomery,Mississippi,28097,81,1 +2020-05-30,Montgomery,Mississippi,28097,83,1 +2020-05-31,Montgomery,Mississippi,28097,85,1 +2020-06-01,Montgomery,Mississippi,28097,85,1 +2020-06-02,Montgomery,Mississippi,28097,85,1 +2020-06-03,Montgomery,Mississippi,28097,86,1 +2020-06-04,Montgomery,Mississippi,28097,84,1 +2020-06-05,Montgomery,Mississippi,28097,84,1 +2020-06-06,Montgomery,Mississippi,28097,85,1 +2020-06-07,Montgomery,Mississippi,28097,85,1 +2020-06-08,Montgomery,Mississippi,28097,86,1 +2020-06-09,Montgomery,Mississippi,28097,88,1 +2020-06-10,Montgomery,Mississippi,28097,88,1 +2020-06-11,Montgomery,Mississippi,28097,88,1 +2020-06-12,Montgomery,Mississippi,28097,93,1 +2020-06-13,Montgomery,Mississippi,28097,94,1 +2020-06-14,Montgomery,Mississippi,28097,94,1 +2020-06-15,Montgomery,Mississippi,28097,97,1 +2020-06-16,Montgomery,Mississippi,28097,98,1 +2020-06-17,Montgomery,Mississippi,28097,98,1 +2020-06-18,Montgomery,Mississippi,28097,98,1 +2020-06-19,Montgomery,Mississippi,28097,98,1 +2020-06-20,Montgomery,Mississippi,28097,98,1 +2020-06-21,Montgomery,Mississippi,28097,98,1 +2020-06-22,Montgomery,Mississippi,28097,104,1 +2020-06-23,Montgomery,Mississippi,28097,105,1 +2020-06-24,Montgomery,Mississippi,28097,107,2 +2020-06-25,Montgomery,Mississippi,28097,110,2 +2020-06-26,Montgomery,Mississippi,28097,110,2 +2020-06-27,Montgomery,Mississippi,28097,111,2 +2020-06-28,Montgomery,Mississippi,28097,111,2 +2020-06-29,Montgomery,Mississippi,28097,112,2 +2020-06-30,Montgomery,Mississippi,28097,116,2 +2020-07-01,Montgomery,Mississippi,28097,122,2 +2020-07-02,Montgomery,Mississippi,28097,124,2 +2020-07-03,Montgomery,Mississippi,28097,124,2 +2020-07-04,Montgomery,Mississippi,28097,131,2 +2020-07-05,Montgomery,Mississippi,28097,132,2 +2020-07-06,Montgomery,Mississippi,28097,135,2 +2020-07-07,Montgomery,Mississippi,28097,139,2 +2020-07-08,Montgomery,Mississippi,28097,143,2 +2020-07-09,Montgomery,Mississippi,28097,149,3 +2020-03-27,Neshoba,Mississippi,28099,1,0 +2020-03-28,Neshoba,Mississippi,28099,3,0 +2020-03-29,Neshoba,Mississippi,28099,4,0 +2020-03-30,Neshoba,Mississippi,28099,4,0 +2020-03-31,Neshoba,Mississippi,28099,4,0 +2020-04-01,Neshoba,Mississippi,28099,5,0 +2020-04-02,Neshoba,Mississippi,28099,4,0 +2020-04-03,Neshoba,Mississippi,28099,5,0 +2020-04-04,Neshoba,Mississippi,28099,6,0 +2020-04-05,Neshoba,Mississippi,28099,9,0 +2020-04-06,Neshoba,Mississippi,28099,11,0 +2020-04-07,Neshoba,Mississippi,28099,12,0 +2020-04-08,Neshoba,Mississippi,28099,13,0 +2020-04-09,Neshoba,Mississippi,28099,17,0 +2020-04-10,Neshoba,Mississippi,28099,21,0 +2020-04-11,Neshoba,Mississippi,28099,26,0 +2020-04-12,Neshoba,Mississippi,28099,31,0 +2020-04-13,Neshoba,Mississippi,28099,34,0 +2020-04-14,Neshoba,Mississippi,28099,33,1 +2020-04-15,Neshoba,Mississippi,28099,35,1 +2020-04-16,Neshoba,Mississippi,28099,39,1 +2020-04-17,Neshoba,Mississippi,28099,46,1 +2020-04-18,Neshoba,Mississippi,28099,55,1 +2020-04-19,Neshoba,Mississippi,28099,65,2 +2020-04-20,Neshoba,Mississippi,28099,73,2 +2020-04-21,Neshoba,Mississippi,28099,82,2 +2020-04-22,Neshoba,Mississippi,28099,91,2 +2020-04-23,Neshoba,Mississippi,28099,102,2 +2020-04-24,Neshoba,Mississippi,28099,116,2 +2020-04-25,Neshoba,Mississippi,28099,119,2 +2020-04-26,Neshoba,Mississippi,28099,153,3 +2020-04-27,Neshoba,Mississippi,28099,156,3 +2020-04-28,Neshoba,Mississippi,28099,169,3 +2020-04-29,Neshoba,Mississippi,28099,174,3 +2020-04-30,Neshoba,Mississippi,28099,187,3 +2020-05-01,Neshoba,Mississippi,28099,205,4 +2020-05-02,Neshoba,Mississippi,28099,212,4 +2020-05-03,Neshoba,Mississippi,28099,214,4 +2020-05-04,Neshoba,Mississippi,28099,222,4 +2020-05-05,Neshoba,Mississippi,28099,243,10 +2020-05-06,Neshoba,Mississippi,28099,254,11 +2020-05-07,Neshoba,Mississippi,28099,261,11 +2020-05-08,Neshoba,Mississippi,28099,287,12 +2020-05-09,Neshoba,Mississippi,28099,307,13 +2020-05-10,Neshoba,Mississippi,28099,315,14 +2020-05-11,Neshoba,Mississippi,28099,320,15 +2020-05-12,Neshoba,Mississippi,28099,326,16 +2020-05-13,Neshoba,Mississippi,28099,338,16 +2020-05-14,Neshoba,Mississippi,28099,354,18 +2020-05-15,Neshoba,Mississippi,28099,369,19 +2020-05-16,Neshoba,Mississippi,28099,397,21 +2020-05-17,Neshoba,Mississippi,28099,405,23 +2020-05-18,Neshoba,Mississippi,28099,423,24 +2020-05-19,Neshoba,Mississippi,28099,429,25 +2020-05-20,Neshoba,Mississippi,28099,452,26 +2020-05-21,Neshoba,Mississippi,28099,470,26 +2020-05-22,Neshoba,Mississippi,28099,477,27 +2020-05-23,Neshoba,Mississippi,28099,511,30 +2020-05-24,Neshoba,Mississippi,28099,512,31 +2020-05-25,Neshoba,Mississippi,28099,514,31 +2020-05-26,Neshoba,Mississippi,28099,539,33 +2020-05-27,Neshoba,Mississippi,28099,565,34 +2020-05-28,Neshoba,Mississippi,28099,589,37 +2020-05-29,Neshoba,Mississippi,28099,606,38 +2020-05-30,Neshoba,Mississippi,28099,630,38 +2020-05-31,Neshoba,Mississippi,28099,646,39 +2020-06-01,Neshoba,Mississippi,28099,671,39 +2020-06-02,Neshoba,Mississippi,28099,707,42 +2020-06-03,Neshoba,Mississippi,28099,722,44 +2020-06-04,Neshoba,Mississippi,28099,728,44 +2020-06-05,Neshoba,Mississippi,28099,739,45 +2020-06-06,Neshoba,Mississippi,28099,747,45 +2020-06-07,Neshoba,Mississippi,28099,755,45 +2020-06-08,Neshoba,Mississippi,28099,772,47 +2020-06-09,Neshoba,Mississippi,28099,805,48 +2020-06-10,Neshoba,Mississippi,28099,821,49 +2020-06-11,Neshoba,Mississippi,28099,821,49 +2020-06-12,Neshoba,Mississippi,28099,855,50 +2020-06-13,Neshoba,Mississippi,28099,877,50 +2020-06-14,Neshoba,Mississippi,28099,878,50 +2020-06-15,Neshoba,Mississippi,28099,881,50 +2020-06-16,Neshoba,Mississippi,28099,895,54 +2020-06-17,Neshoba,Mississippi,28099,921,56 +2020-06-18,Neshoba,Mississippi,28099,921,56 +2020-06-19,Neshoba,Mississippi,28099,921,56 +2020-06-20,Neshoba,Mississippi,28099,921,56 +2020-06-21,Neshoba,Mississippi,28099,921,56 +2020-06-22,Neshoba,Mississippi,28099,893,58 +2020-06-23,Neshoba,Mississippi,28099,907,60 +2020-06-24,Neshoba,Mississippi,28099,916,62 +2020-06-25,Neshoba,Mississippi,28099,922,63 +2020-06-26,Neshoba,Mississippi,28099,928,63 +2020-06-27,Neshoba,Mississippi,28099,932,64 +2020-06-28,Neshoba,Mississippi,28099,933,64 +2020-06-29,Neshoba,Mississippi,28099,938,68 +2020-06-30,Neshoba,Mississippi,28099,952,68 +2020-07-01,Neshoba,Mississippi,28099,960,69 +2020-07-02,Neshoba,Mississippi,28099,970,70 +2020-07-03,Neshoba,Mississippi,28099,981,71 +2020-07-04,Neshoba,Mississippi,28099,985,71 +2020-07-05,Neshoba,Mississippi,28099,988,71 +2020-07-06,Neshoba,Mississippi,28099,992,71 +2020-07-07,Neshoba,Mississippi,28099,1004,73 +2020-07-08,Neshoba,Mississippi,28099,1016,73 +2020-07-09,Neshoba,Mississippi,28099,1022,74 +2020-03-24,Newton,Mississippi,28101,1,0 +2020-03-25,Newton,Mississippi,28101,1,0 +2020-03-26,Newton,Mississippi,28101,1,0 +2020-03-27,Newton,Mississippi,28101,1,0 +2020-03-28,Newton,Mississippi,28101,1,0 +2020-03-29,Newton,Mississippi,28101,1,0 +2020-03-30,Newton,Mississippi,28101,2,0 +2020-03-31,Newton,Mississippi,28101,2,0 +2020-04-01,Newton,Mississippi,28101,2,0 +2020-04-02,Newton,Mississippi,28101,4,0 +2020-04-03,Newton,Mississippi,28101,4,0 +2020-04-04,Newton,Mississippi,28101,6,0 +2020-04-05,Newton,Mississippi,28101,7,0 +2020-04-06,Newton,Mississippi,28101,7,0 +2020-04-07,Newton,Mississippi,28101,7,0 +2020-04-08,Newton,Mississippi,28101,7,0 +2020-04-09,Newton,Mississippi,28101,8,0 +2020-04-10,Newton,Mississippi,28101,10,0 +2020-04-11,Newton,Mississippi,28101,12,0 +2020-04-12,Newton,Mississippi,28101,10,0 +2020-04-13,Newton,Mississippi,28101,10,0 +2020-04-14,Newton,Mississippi,28101,14,0 +2020-04-15,Newton,Mississippi,28101,14,0 +2020-04-16,Newton,Mississippi,28101,16,0 +2020-04-17,Newton,Mississippi,28101,19,0 +2020-04-18,Newton,Mississippi,28101,21,0 +2020-04-19,Newton,Mississippi,28101,26,0 +2020-04-20,Newton,Mississippi,28101,30,0 +2020-04-21,Newton,Mississippi,28101,32,0 +2020-04-22,Newton,Mississippi,28101,33,0 +2020-04-23,Newton,Mississippi,28101,45,0 +2020-04-24,Newton,Mississippi,28101,51,0 +2020-04-25,Newton,Mississippi,28101,58,0 +2020-04-26,Newton,Mississippi,28101,61,0 +2020-04-27,Newton,Mississippi,28101,64,0 +2020-04-28,Newton,Mississippi,28101,73,0 +2020-04-29,Newton,Mississippi,28101,78,0 +2020-04-30,Newton,Mississippi,28101,81,0 +2020-05-01,Newton,Mississippi,28101,87,0 +2020-05-02,Newton,Mississippi,28101,88,0 +2020-05-03,Newton,Mississippi,28101,93,0 +2020-05-04,Newton,Mississippi,28101,93,0 +2020-05-05,Newton,Mississippi,28101,106,0 +2020-05-06,Newton,Mississippi,28101,113,0 +2020-05-07,Newton,Mississippi,28101,121,0 +2020-05-08,Newton,Mississippi,28101,130,0 +2020-05-09,Newton,Mississippi,28101,137,1 +2020-05-10,Newton,Mississippi,28101,138,1 +2020-05-11,Newton,Mississippi,28101,142,1 +2020-05-12,Newton,Mississippi,28101,147,1 +2020-05-13,Newton,Mississippi,28101,155,1 +2020-05-14,Newton,Mississippi,28101,161,2 +2020-05-15,Newton,Mississippi,28101,172,2 +2020-05-16,Newton,Mississippi,28101,186,2 +2020-05-17,Newton,Mississippi,28101,187,2 +2020-05-18,Newton,Mississippi,28101,192,3 +2020-05-19,Newton,Mississippi,28101,196,3 +2020-05-20,Newton,Mississippi,28101,206,3 +2020-05-21,Newton,Mississippi,28101,210,3 +2020-05-22,Newton,Mississippi,28101,214,3 +2020-05-23,Newton,Mississippi,28101,221,3 +2020-05-24,Newton,Mississippi,28101,224,3 +2020-05-25,Newton,Mississippi,28101,227,3 +2020-05-26,Newton,Mississippi,28101,231,4 +2020-05-27,Newton,Mississippi,28101,250,4 +2020-05-28,Newton,Mississippi,28101,256,4 +2020-05-29,Newton,Mississippi,28101,263,4 +2020-05-30,Newton,Mississippi,28101,271,4 +2020-05-31,Newton,Mississippi,28101,270,4 +2020-06-01,Newton,Mississippi,28101,278,4 +2020-06-02,Newton,Mississippi,28101,282,4 +2020-06-03,Newton,Mississippi,28101,283,4 +2020-06-04,Newton,Mississippi,28101,288,4 +2020-06-05,Newton,Mississippi,28101,292,4 +2020-06-06,Newton,Mississippi,28101,297,4 +2020-06-07,Newton,Mississippi,28101,298,4 +2020-06-08,Newton,Mississippi,28101,301,5 +2020-06-09,Newton,Mississippi,28101,307,5 +2020-06-10,Newton,Mississippi,28101,313,6 +2020-06-11,Newton,Mississippi,28101,313,6 +2020-06-12,Newton,Mississippi,28101,320,6 +2020-06-13,Newton,Mississippi,28101,321,6 +2020-06-14,Newton,Mississippi,28101,321,6 +2020-06-15,Newton,Mississippi,28101,322,6 +2020-06-16,Newton,Mississippi,28101,324,7 +2020-06-17,Newton,Mississippi,28101,325,8 +2020-06-18,Newton,Mississippi,28101,325,8 +2020-06-19,Newton,Mississippi,28101,325,8 +2020-06-20,Newton,Mississippi,28101,325,8 +2020-06-21,Newton,Mississippi,28101,325,8 +2020-06-22,Newton,Mississippi,28101,323,8 +2020-06-23,Newton,Mississippi,28101,324,8 +2020-06-24,Newton,Mississippi,28101,326,8 +2020-06-25,Newton,Mississippi,28101,325,8 +2020-06-26,Newton,Mississippi,28101,326,8 +2020-06-27,Newton,Mississippi,28101,330,8 +2020-06-28,Newton,Mississippi,28101,330,8 +2020-06-29,Newton,Mississippi,28101,329,9 +2020-06-30,Newton,Mississippi,28101,329,9 +2020-07-01,Newton,Mississippi,28101,328,9 +2020-07-02,Newton,Mississippi,28101,332,9 +2020-07-03,Newton,Mississippi,28101,338,9 +2020-07-04,Newton,Mississippi,28101,339,9 +2020-07-05,Newton,Mississippi,28101,339,9 +2020-07-06,Newton,Mississippi,28101,339,9 +2020-07-07,Newton,Mississippi,28101,347,9 +2020-07-08,Newton,Mississippi,28101,352,10 +2020-07-09,Newton,Mississippi,28101,357,10 +2020-03-24,Noxubee,Mississippi,28103,1,0 +2020-03-25,Noxubee,Mississippi,28103,1,0 +2020-03-26,Noxubee,Mississippi,28103,1,0 +2020-03-27,Noxubee,Mississippi,28103,1,0 +2020-03-28,Noxubee,Mississippi,28103,2,0 +2020-03-29,Noxubee,Mississippi,28103,2,0 +2020-03-30,Noxubee,Mississippi,28103,3,0 +2020-03-31,Noxubee,Mississippi,28103,3,0 +2020-04-01,Noxubee,Mississippi,28103,3,0 +2020-04-02,Noxubee,Mississippi,28103,4,0 +2020-04-03,Noxubee,Mississippi,28103,5,0 +2020-04-04,Noxubee,Mississippi,28103,5,0 +2020-04-05,Noxubee,Mississippi,28103,5,0 +2020-04-06,Noxubee,Mississippi,28103,5,0 +2020-04-07,Noxubee,Mississippi,28103,5,0 +2020-04-08,Noxubee,Mississippi,28103,5,0 +2020-04-09,Noxubee,Mississippi,28103,5,0 +2020-04-10,Noxubee,Mississippi,28103,6,0 +2020-04-11,Noxubee,Mississippi,28103,6,0 +2020-04-12,Noxubee,Mississippi,28103,6,0 +2020-04-13,Noxubee,Mississippi,28103,6,0 +2020-04-14,Noxubee,Mississippi,28103,6,0 +2020-04-15,Noxubee,Mississippi,28103,10,0 +2020-04-16,Noxubee,Mississippi,28103,18,0 +2020-04-17,Noxubee,Mississippi,28103,20,0 +2020-04-18,Noxubee,Mississippi,28103,20,0 +2020-04-19,Noxubee,Mississippi,28103,22,0 +2020-04-20,Noxubee,Mississippi,28103,22,0 +2020-04-21,Noxubee,Mississippi,28103,24,0 +2020-04-22,Noxubee,Mississippi,28103,24,0 +2020-04-23,Noxubee,Mississippi,28103,29,0 +2020-04-24,Noxubee,Mississippi,28103,35,0 +2020-04-25,Noxubee,Mississippi,28103,45,0 +2020-04-26,Noxubee,Mississippi,28103,46,0 +2020-04-27,Noxubee,Mississippi,28103,52,0 +2020-04-28,Noxubee,Mississippi,28103,55,0 +2020-04-29,Noxubee,Mississippi,28103,61,0 +2020-04-30,Noxubee,Mississippi,28103,66,0 +2020-05-01,Noxubee,Mississippi,28103,73,0 +2020-05-02,Noxubee,Mississippi,28103,79,1 +2020-05-03,Noxubee,Mississippi,28103,79,1 +2020-05-04,Noxubee,Mississippi,28103,88,1 +2020-05-05,Noxubee,Mississippi,28103,92,2 +2020-05-06,Noxubee,Mississippi,28103,92,2 +2020-05-07,Noxubee,Mississippi,28103,97,2 +2020-05-08,Noxubee,Mississippi,28103,100,2 +2020-05-09,Noxubee,Mississippi,28103,102,2 +2020-05-10,Noxubee,Mississippi,28103,102,2 +2020-05-11,Noxubee,Mississippi,28103,105,2 +2020-05-12,Noxubee,Mississippi,28103,117,2 +2020-05-13,Noxubee,Mississippi,28103,117,2 +2020-05-14,Noxubee,Mississippi,28103,118,2 +2020-05-15,Noxubee,Mississippi,28103,132,2 +2020-05-16,Noxubee,Mississippi,28103,134,2 +2020-05-17,Noxubee,Mississippi,28103,134,3 +2020-05-18,Noxubee,Mississippi,28103,140,3 +2020-05-19,Noxubee,Mississippi,28103,145,4 +2020-05-20,Noxubee,Mississippi,28103,145,4 +2020-05-21,Noxubee,Mississippi,28103,148,4 +2020-05-22,Noxubee,Mississippi,28103,152,4 +2020-05-23,Noxubee,Mississippi,28103,157,6 +2020-05-24,Noxubee,Mississippi,28103,158,6 +2020-05-25,Noxubee,Mississippi,28103,165,6 +2020-05-26,Noxubee,Mississippi,28103,166,6 +2020-05-27,Noxubee,Mississippi,28103,169,6 +2020-05-28,Noxubee,Mississippi,28103,173,6 +2020-05-29,Noxubee,Mississippi,28103,179,6 +2020-05-30,Noxubee,Mississippi,28103,185,6 +2020-05-31,Noxubee,Mississippi,28103,186,6 +2020-06-01,Noxubee,Mississippi,28103,187,6 +2020-06-02,Noxubee,Mississippi,28103,191,6 +2020-06-03,Noxubee,Mississippi,28103,193,6 +2020-06-04,Noxubee,Mississippi,28103,193,6 +2020-06-05,Noxubee,Mississippi,28103,195,6 +2020-06-06,Noxubee,Mississippi,28103,196,6 +2020-06-07,Noxubee,Mississippi,28103,200,6 +2020-06-08,Noxubee,Mississippi,28103,204,6 +2020-06-09,Noxubee,Mississippi,28103,206,6 +2020-06-10,Noxubee,Mississippi,28103,209,6 +2020-06-11,Noxubee,Mississippi,28103,209,6 +2020-06-12,Noxubee,Mississippi,28103,212,6 +2020-06-13,Noxubee,Mississippi,28103,212,6 +2020-06-14,Noxubee,Mississippi,28103,212,6 +2020-06-15,Noxubee,Mississippi,28103,212,6 +2020-06-16,Noxubee,Mississippi,28103,216,6 +2020-06-17,Noxubee,Mississippi,28103,218,6 +2020-06-18,Noxubee,Mississippi,28103,218,6 +2020-06-19,Noxubee,Mississippi,28103,218,6 +2020-06-20,Noxubee,Mississippi,28103,218,6 +2020-06-21,Noxubee,Mississippi,28103,218,6 +2020-06-22,Noxubee,Mississippi,28103,223,6 +2020-06-23,Noxubee,Mississippi,28103,224,6 +2020-06-24,Noxubee,Mississippi,28103,227,7 +2020-06-25,Noxubee,Mississippi,28103,234,7 +2020-06-26,Noxubee,Mississippi,28103,233,7 +2020-06-27,Noxubee,Mississippi,28103,233,7 +2020-06-28,Noxubee,Mississippi,28103,234,7 +2020-06-29,Noxubee,Mississippi,28103,242,8 +2020-06-30,Noxubee,Mississippi,28103,245,8 +2020-07-01,Noxubee,Mississippi,28103,245,8 +2020-07-02,Noxubee,Mississippi,28103,247,8 +2020-07-03,Noxubee,Mississippi,28103,253,8 +2020-07-04,Noxubee,Mississippi,28103,261,8 +2020-07-05,Noxubee,Mississippi,28103,263,8 +2020-07-06,Noxubee,Mississippi,28103,267,8 +2020-07-07,Noxubee,Mississippi,28103,272,8 +2020-07-08,Noxubee,Mississippi,28103,273,8 +2020-07-09,Noxubee,Mississippi,28103,275,8 +2020-03-22,Oktibbeha,Mississippi,28105,2,0 +2020-03-23,Oktibbeha,Mississippi,28105,5,0 +2020-03-24,Oktibbeha,Mississippi,28105,5,0 +2020-03-25,Oktibbeha,Mississippi,28105,7,0 +2020-03-26,Oktibbeha,Mississippi,28105,10,0 +2020-03-27,Oktibbeha,Mississippi,28105,12,0 +2020-03-28,Oktibbeha,Mississippi,28105,14,0 +2020-03-29,Oktibbeha,Mississippi,28105,15,0 +2020-03-30,Oktibbeha,Mississippi,28105,15,0 +2020-03-31,Oktibbeha,Mississippi,28105,17,0 +2020-04-01,Oktibbeha,Mississippi,28105,18,0 +2020-04-02,Oktibbeha,Mississippi,28105,20,0 +2020-04-03,Oktibbeha,Mississippi,28105,23,0 +2020-04-04,Oktibbeha,Mississippi,28105,24,0 +2020-04-05,Oktibbeha,Mississippi,28105,27,0 +2020-04-06,Oktibbeha,Mississippi,28105,27,0 +2020-04-07,Oktibbeha,Mississippi,28105,29,1 +2020-04-08,Oktibbeha,Mississippi,28105,30,1 +2020-04-09,Oktibbeha,Mississippi,28105,35,1 +2020-04-10,Oktibbeha,Mississippi,28105,36,1 +2020-04-11,Oktibbeha,Mississippi,28105,36,1 +2020-04-12,Oktibbeha,Mississippi,28105,37,1 +2020-04-13,Oktibbeha,Mississippi,28105,37,1 +2020-04-14,Oktibbeha,Mississippi,28105,37,1 +2020-04-15,Oktibbeha,Mississippi,28105,41,1 +2020-04-16,Oktibbeha,Mississippi,28105,42,1 +2020-04-17,Oktibbeha,Mississippi,28105,42,2 +2020-04-18,Oktibbeha,Mississippi,28105,43,2 +2020-04-19,Oktibbeha,Mississippi,28105,43,2 +2020-04-20,Oktibbeha,Mississippi,28105,43,2 +2020-04-21,Oktibbeha,Mississippi,28105,44,3 +2020-04-22,Oktibbeha,Mississippi,28105,44,3 +2020-04-23,Oktibbeha,Mississippi,28105,45,3 +2020-04-24,Oktibbeha,Mississippi,28105,46,3 +2020-04-25,Oktibbeha,Mississippi,28105,46,3 +2020-04-26,Oktibbeha,Mississippi,28105,46,3 +2020-04-27,Oktibbeha,Mississippi,28105,46,3 +2020-04-28,Oktibbeha,Mississippi,28105,48,3 +2020-04-29,Oktibbeha,Mississippi,28105,49,3 +2020-04-30,Oktibbeha,Mississippi,28105,51,3 +2020-05-01,Oktibbeha,Mississippi,28105,51,3 +2020-05-02,Oktibbeha,Mississippi,28105,52,3 +2020-05-03,Oktibbeha,Mississippi,28105,52,3 +2020-05-04,Oktibbeha,Mississippi,28105,54,3 +2020-05-05,Oktibbeha,Mississippi,28105,57,4 +2020-05-06,Oktibbeha,Mississippi,28105,59,4 +2020-05-07,Oktibbeha,Mississippi,28105,62,4 +2020-05-08,Oktibbeha,Mississippi,28105,73,4 +2020-05-09,Oktibbeha,Mississippi,28105,86,4 +2020-05-10,Oktibbeha,Mississippi,28105,89,4 +2020-05-11,Oktibbeha,Mississippi,28105,89,4 +2020-05-12,Oktibbeha,Mississippi,28105,91,5 +2020-05-13,Oktibbeha,Mississippi,28105,94,6 +2020-05-14,Oktibbeha,Mississippi,28105,97,6 +2020-05-15,Oktibbeha,Mississippi,28105,99,6 +2020-05-16,Oktibbeha,Mississippi,28105,102,6 +2020-05-17,Oktibbeha,Mississippi,28105,104,6 +2020-05-18,Oktibbeha,Mississippi,28105,105,6 +2020-05-19,Oktibbeha,Mississippi,28105,107,8 +2020-05-20,Oktibbeha,Mississippi,28105,110,8 +2020-05-21,Oktibbeha,Mississippi,28105,114,8 +2020-05-22,Oktibbeha,Mississippi,28105,126,9 +2020-05-23,Oktibbeha,Mississippi,28105,128,10 +2020-05-24,Oktibbeha,Mississippi,28105,134,10 +2020-05-25,Oktibbeha,Mississippi,28105,139,10 +2020-05-26,Oktibbeha,Mississippi,28105,144,10 +2020-05-27,Oktibbeha,Mississippi,28105,150,10 +2020-05-28,Oktibbeha,Mississippi,28105,154,11 +2020-05-29,Oktibbeha,Mississippi,28105,233,11 +2020-05-30,Oktibbeha,Mississippi,28105,235,12 +2020-05-31,Oktibbeha,Mississippi,28105,239,12 +2020-06-01,Oktibbeha,Mississippi,28105,243,14 +2020-06-02,Oktibbeha,Mississippi,28105,253,14 +2020-06-03,Oktibbeha,Mississippi,28105,267,14 +2020-06-04,Oktibbeha,Mississippi,28105,273,14 +2020-06-05,Oktibbeha,Mississippi,28105,283,14 +2020-06-06,Oktibbeha,Mississippi,28105,290,16 +2020-06-07,Oktibbeha,Mississippi,28105,297,16 +2020-06-08,Oktibbeha,Mississippi,28105,300,16 +2020-06-09,Oktibbeha,Mississippi,28105,307,16 +2020-06-10,Oktibbeha,Mississippi,28105,327,17 +2020-06-11,Oktibbeha,Mississippi,28105,327,17 +2020-06-12,Oktibbeha,Mississippi,28105,348,17 +2020-06-13,Oktibbeha,Mississippi,28105,351,17 +2020-06-14,Oktibbeha,Mississippi,28105,357,17 +2020-06-15,Oktibbeha,Mississippi,28105,363,17 +2020-06-16,Oktibbeha,Mississippi,28105,374,17 +2020-06-17,Oktibbeha,Mississippi,28105,386,18 +2020-06-18,Oktibbeha,Mississippi,28105,386,18 +2020-06-19,Oktibbeha,Mississippi,28105,386,18 +2020-06-20,Oktibbeha,Mississippi,28105,386,18 +2020-06-21,Oktibbeha,Mississippi,28105,386,18 +2020-06-22,Oktibbeha,Mississippi,28105,420,19 +2020-06-23,Oktibbeha,Mississippi,28105,426,20 +2020-06-24,Oktibbeha,Mississippi,28105,431,20 +2020-06-25,Oktibbeha,Mississippi,28105,448,21 +2020-06-26,Oktibbeha,Mississippi,28105,457,21 +2020-06-27,Oktibbeha,Mississippi,28105,465,22 +2020-06-28,Oktibbeha,Mississippi,28105,466,23 +2020-06-29,Oktibbeha,Mississippi,28105,477,24 +2020-06-30,Oktibbeha,Mississippi,28105,483,24 +2020-07-01,Oktibbeha,Mississippi,28105,486,24 +2020-07-02,Oktibbeha,Mississippi,28105,516,25 +2020-07-03,Oktibbeha,Mississippi,28105,532,26 +2020-07-04,Oktibbeha,Mississippi,28105,541,26 +2020-07-05,Oktibbeha,Mississippi,28105,541,26 +2020-07-06,Oktibbeha,Mississippi,28105,541,26 +2020-07-07,Oktibbeha,Mississippi,28105,552,27 +2020-07-08,Oktibbeha,Mississippi,28105,557,28 +2020-07-09,Oktibbeha,Mississippi,28105,568,28 +2020-03-21,Panola,Mississippi,28107,1,0 +2020-03-22,Panola,Mississippi,28107,2,0 +2020-03-23,Panola,Mississippi,28107,2,0 +2020-03-24,Panola,Mississippi,28107,2,0 +2020-03-25,Panola,Mississippi,28107,2,0 +2020-03-26,Panola,Mississippi,28107,4,0 +2020-03-27,Panola,Mississippi,28107,4,0 +2020-03-28,Panola,Mississippi,28107,4,0 +2020-03-29,Panola,Mississippi,28107,5,0 +2020-03-30,Panola,Mississippi,28107,6,0 +2020-03-31,Panola,Mississippi,28107,7,1 +2020-04-01,Panola,Mississippi,28107,8,1 +2020-04-02,Panola,Mississippi,28107,8,1 +2020-04-03,Panola,Mississippi,28107,8,1 +2020-04-04,Panola,Mississippi,28107,10,1 +2020-04-05,Panola,Mississippi,28107,17,1 +2020-04-06,Panola,Mississippi,28107,17,1 +2020-04-07,Panola,Mississippi,28107,19,1 +2020-04-08,Panola,Mississippi,28107,19,1 +2020-04-09,Panola,Mississippi,28107,21,1 +2020-04-10,Panola,Mississippi,28107,22,1 +2020-04-11,Panola,Mississippi,28107,22,2 +2020-04-12,Panola,Mississippi,28107,22,2 +2020-04-13,Panola,Mississippi,28107,23,2 +2020-04-14,Panola,Mississippi,28107,26,2 +2020-04-15,Panola,Mississippi,28107,26,2 +2020-04-16,Panola,Mississippi,28107,27,2 +2020-04-17,Panola,Mississippi,28107,27,2 +2020-04-18,Panola,Mississippi,28107,30,2 +2020-04-19,Panola,Mississippi,28107,35,2 +2020-04-20,Panola,Mississippi,28107,36,2 +2020-04-21,Panola,Mississippi,28107,37,2 +2020-04-22,Panola,Mississippi,28107,37,2 +2020-04-23,Panola,Mississippi,28107,38,2 +2020-04-24,Panola,Mississippi,28107,38,2 +2020-04-25,Panola,Mississippi,28107,36,2 +2020-04-26,Panola,Mississippi,28107,37,2 +2020-04-27,Panola,Mississippi,28107,38,2 +2020-04-28,Panola,Mississippi,28107,38,2 +2020-04-29,Panola,Mississippi,28107,38,2 +2020-04-30,Panola,Mississippi,28107,39,2 +2020-05-01,Panola,Mississippi,28107,39,2 +2020-05-02,Panola,Mississippi,28107,39,2 +2020-05-03,Panola,Mississippi,28107,40,2 +2020-05-04,Panola,Mississippi,28107,40,2 +2020-05-05,Panola,Mississippi,28107,40,2 +2020-05-06,Panola,Mississippi,28107,42,2 +2020-05-07,Panola,Mississippi,28107,43,2 +2020-05-08,Panola,Mississippi,28107,43,2 +2020-05-09,Panola,Mississippi,28107,43,2 +2020-05-10,Panola,Mississippi,28107,43,2 +2020-05-11,Panola,Mississippi,28107,43,2 +2020-05-12,Panola,Mississippi,28107,45,2 +2020-05-13,Panola,Mississippi,28107,45,2 +2020-05-14,Panola,Mississippi,28107,46,2 +2020-05-15,Panola,Mississippi,28107,47,2 +2020-05-16,Panola,Mississippi,28107,50,2 +2020-05-17,Panola,Mississippi,28107,50,2 +2020-05-18,Panola,Mississippi,28107,50,2 +2020-05-19,Panola,Mississippi,28107,52,2 +2020-05-20,Panola,Mississippi,28107,54,2 +2020-05-21,Panola,Mississippi,28107,58,2 +2020-05-22,Panola,Mississippi,28107,59,2 +2020-05-23,Panola,Mississippi,28107,61,2 +2020-05-24,Panola,Mississippi,28107,62,2 +2020-05-25,Panola,Mississippi,28107,62,2 +2020-05-26,Panola,Mississippi,28107,64,2 +2020-05-27,Panola,Mississippi,28107,64,3 +2020-05-28,Panola,Mississippi,28107,64,3 +2020-05-29,Panola,Mississippi,28107,66,3 +2020-05-30,Panola,Mississippi,28107,70,3 +2020-05-31,Panola,Mississippi,28107,71,3 +2020-06-01,Panola,Mississippi,28107,71,3 +2020-06-02,Panola,Mississippi,28107,84,3 +2020-06-03,Panola,Mississippi,28107,85,3 +2020-06-04,Panola,Mississippi,28107,84,3 +2020-06-05,Panola,Mississippi,28107,87,3 +2020-06-06,Panola,Mississippi,28107,93,3 +2020-06-07,Panola,Mississippi,28107,96,3 +2020-06-08,Panola,Mississippi,28107,102,3 +2020-06-09,Panola,Mississippi,28107,105,3 +2020-06-10,Panola,Mississippi,28107,110,3 +2020-06-11,Panola,Mississippi,28107,110,3 +2020-06-12,Panola,Mississippi,28107,118,3 +2020-06-13,Panola,Mississippi,28107,121,3 +2020-06-14,Panola,Mississippi,28107,122,3 +2020-06-15,Panola,Mississippi,28107,127,4 +2020-06-16,Panola,Mississippi,28107,137,4 +2020-06-17,Panola,Mississippi,28107,146,4 +2020-06-18,Panola,Mississippi,28107,146,4 +2020-06-19,Panola,Mississippi,28107,146,4 +2020-06-20,Panola,Mississippi,28107,146,4 +2020-06-21,Panola,Mississippi,28107,146,4 +2020-06-22,Panola,Mississippi,28107,179,5 +2020-06-23,Panola,Mississippi,28107,190,5 +2020-06-24,Panola,Mississippi,28107,204,5 +2020-06-25,Panola,Mississippi,28107,221,5 +2020-06-26,Panola,Mississippi,28107,227,5 +2020-06-27,Panola,Mississippi,28107,237,6 +2020-06-28,Panola,Mississippi,28107,240,6 +2020-06-29,Panola,Mississippi,28107,246,6 +2020-06-30,Panola,Mississippi,28107,254,6 +2020-07-01,Panola,Mississippi,28107,270,6 +2020-07-02,Panola,Mississippi,28107,295,6 +2020-07-03,Panola,Mississippi,28107,325,6 +2020-07-04,Panola,Mississippi,28107,345,6 +2020-07-05,Panola,Mississippi,28107,350,6 +2020-07-06,Panola,Mississippi,28107,352,6 +2020-07-07,Panola,Mississippi,28107,364,6 +2020-07-08,Panola,Mississippi,28107,392,6 +2020-07-09,Panola,Mississippi,28107,399,6 +2020-03-13,Pearl River,Mississippi,28109,1,0 +2020-03-14,Pearl River,Mississippi,28109,1,0 +2020-03-15,Pearl River,Mississippi,28109,2,0 +2020-03-16,Pearl River,Mississippi,28109,2,0 +2020-03-17,Pearl River,Mississippi,28109,2,0 +2020-03-18,Pearl River,Mississippi,28109,4,0 +2020-03-19,Pearl River,Mississippi,28109,7,0 +2020-03-20,Pearl River,Mississippi,28109,7,0 +2020-03-21,Pearl River,Mississippi,28109,9,0 +2020-03-22,Pearl River,Mississippi,28109,10,0 +2020-03-23,Pearl River,Mississippi,28109,12,0 +2020-03-24,Pearl River,Mississippi,28109,13,0 +2020-03-25,Pearl River,Mississippi,28109,13,0 +2020-03-26,Pearl River,Mississippi,28109,16,0 +2020-03-27,Pearl River,Mississippi,28109,18,0 +2020-03-28,Pearl River,Mississippi,28109,23,0 +2020-03-29,Pearl River,Mississippi,28109,27,0 +2020-03-30,Pearl River,Mississippi,28109,27,0 +2020-03-31,Pearl River,Mississippi,28109,30,0 +2020-04-01,Pearl River,Mississippi,28109,32,0 +2020-04-02,Pearl River,Mississippi,28109,36,0 +2020-04-03,Pearl River,Mississippi,28109,41,0 +2020-04-04,Pearl River,Mississippi,28109,43,1 +2020-04-05,Pearl River,Mississippi,28109,49,1 +2020-04-06,Pearl River,Mississippi,28109,52,2 +2020-04-07,Pearl River,Mississippi,28109,56,3 +2020-04-08,Pearl River,Mississippi,28109,60,3 +2020-04-09,Pearl River,Mississippi,28109,73,4 +2020-04-10,Pearl River,Mississippi,28109,77,4 +2020-04-11,Pearl River,Mississippi,28109,82,6 +2020-04-12,Pearl River,Mississippi,28109,83,7 +2020-04-13,Pearl River,Mississippi,28109,88,8 +2020-04-14,Pearl River,Mississippi,28109,93,8 +2020-04-15,Pearl River,Mississippi,28109,102,8 +2020-04-16,Pearl River,Mississippi,28109,112,8 +2020-04-17,Pearl River,Mississippi,28109,115,8 +2020-04-18,Pearl River,Mississippi,28109,119,10 +2020-04-19,Pearl River,Mississippi,28109,126,10 +2020-04-20,Pearl River,Mississippi,28109,132,10 +2020-04-21,Pearl River,Mississippi,28109,134,10 +2020-04-22,Pearl River,Mississippi,28109,136,10 +2020-04-23,Pearl River,Mississippi,28109,142,11 +2020-04-24,Pearl River,Mississippi,28109,144,13 +2020-04-25,Pearl River,Mississippi,28109,148,14 +2020-04-26,Pearl River,Mississippi,28109,152,14 +2020-04-27,Pearl River,Mississippi,28109,153,14 +2020-04-28,Pearl River,Mississippi,28109,154,15 +2020-04-29,Pearl River,Mississippi,28109,157,18 +2020-04-30,Pearl River,Mississippi,28109,163,19 +2020-05-01,Pearl River,Mississippi,28109,175,20 +2020-05-02,Pearl River,Mississippi,28109,176,20 +2020-05-03,Pearl River,Mississippi,28109,177,20 +2020-05-04,Pearl River,Mississippi,28109,181,20 +2020-05-05,Pearl River,Mississippi,28109,183,20 +2020-05-06,Pearl River,Mississippi,28109,183,21 +2020-05-07,Pearl River,Mississippi,28109,188,24 +2020-05-08,Pearl River,Mississippi,28109,189,24 +2020-05-09,Pearl River,Mississippi,28109,190,24 +2020-05-10,Pearl River,Mississippi,28109,189,24 +2020-05-11,Pearl River,Mississippi,28109,190,24 +2020-05-12,Pearl River,Mississippi,28109,190,25 +2020-05-13,Pearl River,Mississippi,28109,190,25 +2020-05-14,Pearl River,Mississippi,28109,193,26 +2020-05-15,Pearl River,Mississippi,28109,195,26 +2020-05-16,Pearl River,Mississippi,28109,195,26 +2020-05-17,Pearl River,Mississippi,28109,195,26 +2020-05-18,Pearl River,Mississippi,28109,195,26 +2020-05-19,Pearl River,Mississippi,28109,195,27 +2020-05-20,Pearl River,Mississippi,28109,197,27 +2020-05-21,Pearl River,Mississippi,28109,197,27 +2020-05-22,Pearl River,Mississippi,28109,203,27 +2020-05-23,Pearl River,Mississippi,28109,203,27 +2020-05-24,Pearl River,Mississippi,28109,202,27 +2020-05-25,Pearl River,Mississippi,28109,205,27 +2020-05-26,Pearl River,Mississippi,28109,205,30 +2020-05-27,Pearl River,Mississippi,28109,207,31 +2020-05-28,Pearl River,Mississippi,28109,206,31 +2020-05-29,Pearl River,Mississippi,28109,207,31 +2020-05-30,Pearl River,Mississippi,28109,209,31 +2020-05-31,Pearl River,Mississippi,28109,209,31 +2020-06-01,Pearl River,Mississippi,28109,209,31 +2020-06-02,Pearl River,Mississippi,28109,211,31 +2020-06-03,Pearl River,Mississippi,28109,212,31 +2020-06-04,Pearl River,Mississippi,28109,212,31 +2020-06-05,Pearl River,Mississippi,28109,212,31 +2020-06-06,Pearl River,Mississippi,28109,213,31 +2020-06-07,Pearl River,Mississippi,28109,215,31 +2020-06-08,Pearl River,Mississippi,28109,217,31 +2020-06-09,Pearl River,Mississippi,28109,221,31 +2020-06-10,Pearl River,Mississippi,28109,221,31 +2020-06-11,Pearl River,Mississippi,28109,221,31 +2020-06-12,Pearl River,Mississippi,28109,219,31 +2020-06-13,Pearl River,Mississippi,28109,221,31 +2020-06-14,Pearl River,Mississippi,28109,222,31 +2020-06-15,Pearl River,Mississippi,28109,223,31 +2020-06-16,Pearl River,Mississippi,28109,223,31 +2020-06-17,Pearl River,Mississippi,28109,224,32 +2020-06-18,Pearl River,Mississippi,28109,224,32 +2020-06-19,Pearl River,Mississippi,28109,224,32 +2020-06-20,Pearl River,Mississippi,28109,224,32 +2020-06-21,Pearl River,Mississippi,28109,224,32 +2020-06-22,Pearl River,Mississippi,28109,226,32 +2020-06-23,Pearl River,Mississippi,28109,227,32 +2020-06-24,Pearl River,Mississippi,28109,228,32 +2020-06-25,Pearl River,Mississippi,28109,232,32 +2020-06-26,Pearl River,Mississippi,28109,235,32 +2020-06-27,Pearl River,Mississippi,28109,236,32 +2020-06-28,Pearl River,Mississippi,28109,236,32 +2020-06-29,Pearl River,Mississippi,28109,237,32 +2020-06-30,Pearl River,Mississippi,28109,239,32 +2020-07-01,Pearl River,Mississippi,28109,244,32 +2020-07-02,Pearl River,Mississippi,28109,245,32 +2020-07-03,Pearl River,Mississippi,28109,248,32 +2020-07-04,Pearl River,Mississippi,28109,254,32 +2020-07-05,Pearl River,Mississippi,28109,254,32 +2020-07-06,Pearl River,Mississippi,28109,257,32 +2020-07-07,Pearl River,Mississippi,28109,265,32 +2020-07-08,Pearl River,Mississippi,28109,269,32 +2020-07-09,Pearl River,Mississippi,28109,276,32 +2020-03-18,Perry,Mississippi,28111,1,0 +2020-03-19,Perry,Mississippi,28111,1,0 +2020-03-20,Perry,Mississippi,28111,1,0 +2020-03-21,Perry,Mississippi,28111,1,0 +2020-03-22,Perry,Mississippi,28111,1,0 +2020-03-23,Perry,Mississippi,28111,1,0 +2020-03-24,Perry,Mississippi,28111,1,0 +2020-03-25,Perry,Mississippi,28111,1,0 +2020-03-26,Perry,Mississippi,28111,1,0 +2020-03-27,Perry,Mississippi,28111,2,0 +2020-03-28,Perry,Mississippi,28111,2,1 +2020-03-29,Perry,Mississippi,28111,2,1 +2020-03-30,Perry,Mississippi,28111,3,1 +2020-03-31,Perry,Mississippi,28111,3,1 +2020-04-01,Perry,Mississippi,28111,5,1 +2020-04-02,Perry,Mississippi,28111,6,1 +2020-04-03,Perry,Mississippi,28111,11,1 +2020-04-04,Perry,Mississippi,28111,13,1 +2020-04-05,Perry,Mississippi,28111,14,1 +2020-04-06,Perry,Mississippi,28111,14,1 +2020-04-07,Perry,Mississippi,28111,14,1 +2020-04-08,Perry,Mississippi,28111,14,1 +2020-04-09,Perry,Mississippi,28111,14,1 +2020-04-10,Perry,Mississippi,28111,15,1 +2020-04-11,Perry,Mississippi,28111,16,1 +2020-04-12,Perry,Mississippi,28111,18,1 +2020-04-13,Perry,Mississippi,28111,19,1 +2020-04-14,Perry,Mississippi,28111,20,1 +2020-04-15,Perry,Mississippi,28111,20,1 +2020-04-16,Perry,Mississippi,28111,20,1 +2020-04-17,Perry,Mississippi,28111,21,1 +2020-04-18,Perry,Mississippi,28111,22,1 +2020-04-19,Perry,Mississippi,28111,22,1 +2020-04-20,Perry,Mississippi,28111,22,1 +2020-04-21,Perry,Mississippi,28111,22,1 +2020-04-22,Perry,Mississippi,28111,22,1 +2020-04-23,Perry,Mississippi,28111,23,1 +2020-04-24,Perry,Mississippi,28111,23,1 +2020-04-25,Perry,Mississippi,28111,25,1 +2020-04-26,Perry,Mississippi,28111,26,1 +2020-04-27,Perry,Mississippi,28111,26,1 +2020-04-28,Perry,Mississippi,28111,26,1 +2020-04-29,Perry,Mississippi,28111,26,1 +2020-04-30,Perry,Mississippi,28111,27,1 +2020-05-01,Perry,Mississippi,28111,27,1 +2020-05-02,Perry,Mississippi,28111,27,1 +2020-05-03,Perry,Mississippi,28111,29,1 +2020-05-04,Perry,Mississippi,28111,31,1 +2020-05-05,Perry,Mississippi,28111,31,1 +2020-05-06,Perry,Mississippi,28111,32,1 +2020-05-07,Perry,Mississippi,28111,33,1 +2020-05-08,Perry,Mississippi,28111,32,1 +2020-05-09,Perry,Mississippi,28111,34,1 +2020-05-10,Perry,Mississippi,28111,34,1 +2020-05-11,Perry,Mississippi,28111,34,1 +2020-05-12,Perry,Mississippi,28111,35,1 +2020-05-13,Perry,Mississippi,28111,35,1 +2020-05-14,Perry,Mississippi,28111,35,1 +2020-05-15,Perry,Mississippi,28111,36,2 +2020-05-16,Perry,Mississippi,28111,36,2 +2020-05-17,Perry,Mississippi,28111,36,2 +2020-05-18,Perry,Mississippi,28111,36,2 +2020-05-19,Perry,Mississippi,28111,37,2 +2020-05-20,Perry,Mississippi,28111,38,2 +2020-05-21,Perry,Mississippi,28111,38,2 +2020-05-22,Perry,Mississippi,28111,40,2 +2020-05-23,Perry,Mississippi,28111,43,2 +2020-05-24,Perry,Mississippi,28111,46,2 +2020-05-25,Perry,Mississippi,28111,49,2 +2020-05-26,Perry,Mississippi,28111,49,2 +2020-05-27,Perry,Mississippi,28111,49,2 +2020-05-28,Perry,Mississippi,28111,50,3 +2020-05-29,Perry,Mississippi,28111,50,3 +2020-05-30,Perry,Mississippi,28111,50,3 +2020-05-31,Perry,Mississippi,28111,50,3 +2020-06-01,Perry,Mississippi,28111,50,3 +2020-06-02,Perry,Mississippi,28111,51,3 +2020-06-03,Perry,Mississippi,28111,51,3 +2020-06-04,Perry,Mississippi,28111,51,3 +2020-06-05,Perry,Mississippi,28111,51,3 +2020-06-06,Perry,Mississippi,28111,51,3 +2020-06-07,Perry,Mississippi,28111,51,3 +2020-06-08,Perry,Mississippi,28111,52,3 +2020-06-09,Perry,Mississippi,28111,52,3 +2020-06-10,Perry,Mississippi,28111,52,3 +2020-06-11,Perry,Mississippi,28111,52,3 +2020-06-12,Perry,Mississippi,28111,53,3 +2020-06-13,Perry,Mississippi,28111,54,3 +2020-06-14,Perry,Mississippi,28111,54,3 +2020-06-15,Perry,Mississippi,28111,54,3 +2020-06-16,Perry,Mississippi,28111,54,3 +2020-06-17,Perry,Mississippi,28111,55,3 +2020-06-18,Perry,Mississippi,28111,55,3 +2020-06-19,Perry,Mississippi,28111,55,3 +2020-06-20,Perry,Mississippi,28111,55,3 +2020-06-21,Perry,Mississippi,28111,55,3 +2020-06-22,Perry,Mississippi,28111,55,4 +2020-06-23,Perry,Mississippi,28111,55,4 +2020-06-24,Perry,Mississippi,28111,56,4 +2020-06-25,Perry,Mississippi,28111,56,4 +2020-06-26,Perry,Mississippi,28111,56,4 +2020-06-27,Perry,Mississippi,28111,56,4 +2020-06-28,Perry,Mississippi,28111,56,4 +2020-06-29,Perry,Mississippi,28111,59,4 +2020-06-30,Perry,Mississippi,28111,59,4 +2020-07-01,Perry,Mississippi,28111,61,4 +2020-07-02,Perry,Mississippi,28111,63,4 +2020-07-03,Perry,Mississippi,28111,65,4 +2020-07-04,Perry,Mississippi,28111,66,4 +2020-07-05,Perry,Mississippi,28111,66,4 +2020-07-06,Perry,Mississippi,28111,67,4 +2020-07-07,Perry,Mississippi,28111,72,4 +2020-07-08,Perry,Mississippi,28111,76,4 +2020-07-09,Perry,Mississippi,28111,76,4 +2020-03-20,Pike,Mississippi,28113,1,0 +2020-03-21,Pike,Mississippi,28113,2,0 +2020-03-22,Pike,Mississippi,28113,3,0 +2020-03-23,Pike,Mississippi,28113,4,0 +2020-03-24,Pike,Mississippi,28113,7,0 +2020-03-25,Pike,Mississippi,28113,10,0 +2020-03-26,Pike,Mississippi,28113,12,0 +2020-03-27,Pike,Mississippi,28113,12,0 +2020-03-28,Pike,Mississippi,28113,12,0 +2020-03-29,Pike,Mississippi,28113,14,0 +2020-03-30,Pike,Mississippi,28113,16,0 +2020-03-31,Pike,Mississippi,28113,17,0 +2020-04-01,Pike,Mississippi,28113,20,0 +2020-04-02,Pike,Mississippi,28113,21,0 +2020-04-03,Pike,Mississippi,28113,21,0 +2020-04-04,Pike,Mississippi,28113,23,0 +2020-04-05,Pike,Mississippi,28113,26,0 +2020-04-06,Pike,Mississippi,28113,28,0 +2020-04-07,Pike,Mississippi,28113,31,0 +2020-04-08,Pike,Mississippi,28113,33,1 +2020-04-09,Pike,Mississippi,28113,35,1 +2020-04-10,Pike,Mississippi,28113,39,1 +2020-04-11,Pike,Mississippi,28113,47,1 +2020-04-12,Pike,Mississippi,28113,54,1 +2020-04-13,Pike,Mississippi,28113,59,1 +2020-04-14,Pike,Mississippi,28113,62,1 +2020-04-15,Pike,Mississippi,28113,72,2 +2020-04-16,Pike,Mississippi,28113,82,2 +2020-04-17,Pike,Mississippi,28113,93,2 +2020-04-18,Pike,Mississippi,28113,97,2 +2020-04-19,Pike,Mississippi,28113,104,2 +2020-04-20,Pike,Mississippi,28113,115,2 +2020-04-21,Pike,Mississippi,28113,118,3 +2020-04-22,Pike,Mississippi,28113,118,3 +2020-04-23,Pike,Mississippi,28113,126,3 +2020-04-24,Pike,Mississippi,28113,127,4 +2020-04-25,Pike,Mississippi,28113,133,5 +2020-04-26,Pike,Mississippi,28113,136,5 +2020-04-27,Pike,Mississippi,28113,136,5 +2020-04-28,Pike,Mississippi,28113,142,7 +2020-04-29,Pike,Mississippi,28113,143,7 +2020-04-30,Pike,Mississippi,28113,148,7 +2020-05-01,Pike,Mississippi,28113,149,7 +2020-05-02,Pike,Mississippi,28113,153,7 +2020-05-03,Pike,Mississippi,28113,155,7 +2020-05-04,Pike,Mississippi,28113,155,7 +2020-05-05,Pike,Mississippi,28113,160,9 +2020-05-06,Pike,Mississippi,28113,159,9 +2020-05-07,Pike,Mississippi,28113,162,9 +2020-05-08,Pike,Mississippi,28113,163,10 +2020-05-09,Pike,Mississippi,28113,168,10 +2020-05-10,Pike,Mississippi,28113,168,10 +2020-05-11,Pike,Mississippi,28113,170,10 +2020-05-12,Pike,Mississippi,28113,173,10 +2020-05-13,Pike,Mississippi,28113,173,10 +2020-05-14,Pike,Mississippi,28113,173,10 +2020-05-15,Pike,Mississippi,28113,174,10 +2020-05-16,Pike,Mississippi,28113,176,11 +2020-05-17,Pike,Mississippi,28113,176,11 +2020-05-18,Pike,Mississippi,28113,178,11 +2020-05-19,Pike,Mississippi,28113,184,11 +2020-05-20,Pike,Mississippi,28113,186,11 +2020-05-21,Pike,Mississippi,28113,188,11 +2020-05-22,Pike,Mississippi,28113,190,11 +2020-05-23,Pike,Mississippi,28113,194,11 +2020-05-24,Pike,Mississippi,28113,196,11 +2020-05-25,Pike,Mississippi,28113,200,11 +2020-05-26,Pike,Mississippi,28113,201,11 +2020-05-27,Pike,Mississippi,28113,202,11 +2020-05-28,Pike,Mississippi,28113,203,11 +2020-05-29,Pike,Mississippi,28113,202,11 +2020-05-30,Pike,Mississippi,28113,202,11 +2020-05-31,Pike,Mississippi,28113,203,11 +2020-06-01,Pike,Mississippi,28113,203,11 +2020-06-02,Pike,Mississippi,28113,204,11 +2020-06-03,Pike,Mississippi,28113,205,11 +2020-06-04,Pike,Mississippi,28113,204,11 +2020-06-05,Pike,Mississippi,28113,204,11 +2020-06-06,Pike,Mississippi,28113,204,11 +2020-06-07,Pike,Mississippi,28113,207,11 +2020-06-08,Pike,Mississippi,28113,211,11 +2020-06-09,Pike,Mississippi,28113,211,11 +2020-06-10,Pike,Mississippi,28113,213,11 +2020-06-11,Pike,Mississippi,28113,213,11 +2020-06-12,Pike,Mississippi,28113,220,11 +2020-06-13,Pike,Mississippi,28113,224,11 +2020-06-14,Pike,Mississippi,28113,226,11 +2020-06-15,Pike,Mississippi,28113,244,11 +2020-06-16,Pike,Mississippi,28113,247,11 +2020-06-17,Pike,Mississippi,28113,248,11 +2020-06-18,Pike,Mississippi,28113,248,11 +2020-06-19,Pike,Mississippi,28113,248,11 +2020-06-20,Pike,Mississippi,28113,248,11 +2020-06-21,Pike,Mississippi,28113,248,11 +2020-06-22,Pike,Mississippi,28113,278,11 +2020-06-23,Pike,Mississippi,28113,289,11 +2020-06-24,Pike,Mississippi,28113,298,11 +2020-06-25,Pike,Mississippi,28113,321,11 +2020-06-26,Pike,Mississippi,28113,328,11 +2020-06-27,Pike,Mississippi,28113,331,11 +2020-06-28,Pike,Mississippi,28113,334,11 +2020-06-29,Pike,Mississippi,28113,347,11 +2020-06-30,Pike,Mississippi,28113,356,12 +2020-07-01,Pike,Mississippi,28113,367,12 +2020-07-02,Pike,Mississippi,28113,393,12 +2020-07-03,Pike,Mississippi,28113,407,12 +2020-07-04,Pike,Mississippi,28113,431,12 +2020-07-05,Pike,Mississippi,28113,431,12 +2020-07-06,Pike,Mississippi,28113,441,12 +2020-07-07,Pike,Mississippi,28113,454,16 +2020-07-08,Pike,Mississippi,28113,466,17 +2020-07-09,Pike,Mississippi,28113,470,20 +2020-03-22,Pontotoc,Mississippi,28115,1,0 +2020-03-23,Pontotoc,Mississippi,28115,1,0 +2020-03-24,Pontotoc,Mississippi,28115,2,0 +2020-03-25,Pontotoc,Mississippi,28115,2,0 +2020-03-26,Pontotoc,Mississippi,28115,3,0 +2020-03-27,Pontotoc,Mississippi,28115,4,0 +2020-03-28,Pontotoc,Mississippi,28115,4,0 +2020-03-29,Pontotoc,Mississippi,28115,4,0 +2020-03-30,Pontotoc,Mississippi,28115,5,0 +2020-03-31,Pontotoc,Mississippi,28115,5,0 +2020-04-01,Pontotoc,Mississippi,28115,6,0 +2020-04-02,Pontotoc,Mississippi,28115,10,0 +2020-04-03,Pontotoc,Mississippi,28115,11,1 +2020-04-04,Pontotoc,Mississippi,28115,12,1 +2020-04-05,Pontotoc,Mississippi,28115,12,1 +2020-04-06,Pontotoc,Mississippi,28115,12,1 +2020-04-07,Pontotoc,Mississippi,28115,12,1 +2020-04-08,Pontotoc,Mississippi,28115,13,1 +2020-04-09,Pontotoc,Mississippi,28115,14,1 +2020-04-10,Pontotoc,Mississippi,28115,14,1 +2020-04-11,Pontotoc,Mississippi,28115,14,1 +2020-04-12,Pontotoc,Mississippi,28115,15,1 +2020-04-13,Pontotoc,Mississippi,28115,15,1 +2020-04-14,Pontotoc,Mississippi,28115,15,2 +2020-04-15,Pontotoc,Mississippi,28115,15,2 +2020-04-16,Pontotoc,Mississippi,28115,16,2 +2020-04-17,Pontotoc,Mississippi,28115,17,2 +2020-04-18,Pontotoc,Mississippi,28115,17,2 +2020-04-19,Pontotoc,Mississippi,28115,18,2 +2020-04-20,Pontotoc,Mississippi,28115,18,2 +2020-04-21,Pontotoc,Mississippi,28115,18,2 +2020-04-22,Pontotoc,Mississippi,28115,18,2 +2020-04-23,Pontotoc,Mississippi,28115,18,2 +2020-04-24,Pontotoc,Mississippi,28115,18,2 +2020-04-25,Pontotoc,Mississippi,28115,18,2 +2020-04-26,Pontotoc,Mississippi,28115,18,2 +2020-04-27,Pontotoc,Mississippi,28115,18,2 +2020-04-28,Pontotoc,Mississippi,28115,18,2 +2020-04-29,Pontotoc,Mississippi,28115,18,2 +2020-04-30,Pontotoc,Mississippi,28115,18,2 +2020-05-01,Pontotoc,Mississippi,28115,18,2 +2020-05-02,Pontotoc,Mississippi,28115,20,2 +2020-05-03,Pontotoc,Mississippi,28115,22,2 +2020-05-04,Pontotoc,Mississippi,28115,22,2 +2020-05-05,Pontotoc,Mississippi,28115,22,2 +2020-05-06,Pontotoc,Mississippi,28115,22,2 +2020-05-07,Pontotoc,Mississippi,28115,22,2 +2020-05-08,Pontotoc,Mississippi,28115,22,2 +2020-05-09,Pontotoc,Mississippi,28115,24,2 +2020-05-10,Pontotoc,Mississippi,28115,24,2 +2020-05-11,Pontotoc,Mississippi,28115,23,2 +2020-05-12,Pontotoc,Mississippi,28115,23,2 +2020-05-13,Pontotoc,Mississippi,28115,24,2 +2020-05-14,Pontotoc,Mississippi,28115,25,2 +2020-05-15,Pontotoc,Mississippi,28115,25,2 +2020-05-16,Pontotoc,Mississippi,28115,25,2 +2020-05-17,Pontotoc,Mississippi,28115,25,2 +2020-05-18,Pontotoc,Mississippi,28115,25,2 +2020-05-19,Pontotoc,Mississippi,28115,25,2 +2020-05-20,Pontotoc,Mississippi,28115,26,2 +2020-05-21,Pontotoc,Mississippi,28115,26,2 +2020-05-22,Pontotoc,Mississippi,28115,26,2 +2020-05-23,Pontotoc,Mississippi,28115,26,3 +2020-05-24,Pontotoc,Mississippi,28115,25,3 +2020-05-25,Pontotoc,Mississippi,28115,26,3 +2020-05-26,Pontotoc,Mississippi,28115,26,3 +2020-05-27,Pontotoc,Mississippi,28115,28,3 +2020-05-28,Pontotoc,Mississippi,28115,29,3 +2020-05-29,Pontotoc,Mississippi,28115,29,3 +2020-05-30,Pontotoc,Mississippi,28115,32,3 +2020-05-31,Pontotoc,Mississippi,28115,35,3 +2020-06-01,Pontotoc,Mississippi,28115,36,3 +2020-06-02,Pontotoc,Mississippi,28115,43,3 +2020-06-03,Pontotoc,Mississippi,28115,45,3 +2020-06-04,Pontotoc,Mississippi,28115,47,3 +2020-06-05,Pontotoc,Mississippi,28115,49,3 +2020-06-06,Pontotoc,Mississippi,28115,52,3 +2020-06-07,Pontotoc,Mississippi,28115,55,3 +2020-06-08,Pontotoc,Mississippi,28115,60,3 +2020-06-09,Pontotoc,Mississippi,28115,62,3 +2020-06-10,Pontotoc,Mississippi,28115,64,3 +2020-06-11,Pontotoc,Mississippi,28115,64,3 +2020-06-12,Pontotoc,Mississippi,28115,70,3 +2020-06-13,Pontotoc,Mississippi,28115,71,3 +2020-06-14,Pontotoc,Mississippi,28115,74,3 +2020-06-15,Pontotoc,Mississippi,28115,77,3 +2020-06-16,Pontotoc,Mississippi,28115,79,3 +2020-06-17,Pontotoc,Mississippi,28115,93,3 +2020-06-18,Pontotoc,Mississippi,28115,93,3 +2020-06-19,Pontotoc,Mississippi,28115,93,3 +2020-06-20,Pontotoc,Mississippi,28115,93,3 +2020-06-21,Pontotoc,Mississippi,28115,93,3 +2020-06-22,Pontotoc,Mississippi,28115,128,3 +2020-06-23,Pontotoc,Mississippi,28115,146,3 +2020-06-24,Pontotoc,Mississippi,28115,156,3 +2020-06-25,Pontotoc,Mississippi,28115,175,3 +2020-06-26,Pontotoc,Mississippi,28115,189,3 +2020-06-27,Pontotoc,Mississippi,28115,194,3 +2020-06-28,Pontotoc,Mississippi,28115,202,3 +2020-06-29,Pontotoc,Mississippi,28115,203,3 +2020-06-30,Pontotoc,Mississippi,28115,231,4 +2020-07-01,Pontotoc,Mississippi,28115,247,6 +2020-07-02,Pontotoc,Mississippi,28115,261,6 +2020-07-03,Pontotoc,Mississippi,28115,273,6 +2020-07-04,Pontotoc,Mississippi,28115,283,6 +2020-07-05,Pontotoc,Mississippi,28115,286,6 +2020-07-06,Pontotoc,Mississippi,28115,292,6 +2020-07-07,Pontotoc,Mississippi,28115,304,6 +2020-07-08,Pontotoc,Mississippi,28115,316,6 +2020-07-09,Pontotoc,Mississippi,28115,326,6 +2020-03-25,Prentiss,Mississippi,28117,1,0 +2020-03-26,Prentiss,Mississippi,28117,1,0 +2020-03-27,Prentiss,Mississippi,28117,1,0 +2020-03-28,Prentiss,Mississippi,28117,2,0 +2020-03-29,Prentiss,Mississippi,28117,4,0 +2020-03-30,Prentiss,Mississippi,28117,4,0 +2020-03-31,Prentiss,Mississippi,28117,4,0 +2020-04-01,Prentiss,Mississippi,28117,4,0 +2020-04-02,Prentiss,Mississippi,28117,4,0 +2020-04-03,Prentiss,Mississippi,28117,9,0 +2020-04-04,Prentiss,Mississippi,28117,9,0 +2020-04-05,Prentiss,Mississippi,28117,9,0 +2020-04-06,Prentiss,Mississippi,28117,10,0 +2020-04-07,Prentiss,Mississippi,28117,10,0 +2020-04-08,Prentiss,Mississippi,28117,10,0 +2020-04-09,Prentiss,Mississippi,28117,10,0 +2020-04-10,Prentiss,Mississippi,28117,12,0 +2020-04-11,Prentiss,Mississippi,28117,12,0 +2020-04-12,Prentiss,Mississippi,28117,13,0 +2020-04-13,Prentiss,Mississippi,28117,14,0 +2020-04-14,Prentiss,Mississippi,28117,14,0 +2020-04-15,Prentiss,Mississippi,28117,15,0 +2020-04-16,Prentiss,Mississippi,28117,15,0 +2020-04-17,Prentiss,Mississippi,28117,16,0 +2020-04-18,Prentiss,Mississippi,28117,16,0 +2020-04-19,Prentiss,Mississippi,28117,19,0 +2020-04-20,Prentiss,Mississippi,28117,25,0 +2020-04-21,Prentiss,Mississippi,28117,27,0 +2020-04-22,Prentiss,Mississippi,28117,28,0 +2020-04-23,Prentiss,Mississippi,28117,29,0 +2020-04-24,Prentiss,Mississippi,28117,29,0 +2020-04-25,Prentiss,Mississippi,28117,29,1 +2020-04-26,Prentiss,Mississippi,28117,30,1 +2020-04-27,Prentiss,Mississippi,28117,32,1 +2020-04-28,Prentiss,Mississippi,28117,31,1 +2020-04-29,Prentiss,Mississippi,28117,32,1 +2020-04-30,Prentiss,Mississippi,28117,32,1 +2020-05-01,Prentiss,Mississippi,28117,32,1 +2020-05-02,Prentiss,Mississippi,28117,32,1 +2020-05-03,Prentiss,Mississippi,28117,32,1 +2020-05-04,Prentiss,Mississippi,28117,32,1 +2020-05-05,Prentiss,Mississippi,28117,33,1 +2020-05-06,Prentiss,Mississippi,28117,33,2 +2020-05-07,Prentiss,Mississippi,28117,33,2 +2020-05-08,Prentiss,Mississippi,28117,33,2 +2020-05-09,Prentiss,Mississippi,28117,35,2 +2020-05-10,Prentiss,Mississippi,28117,36,2 +2020-05-11,Prentiss,Mississippi,28117,36,2 +2020-05-12,Prentiss,Mississippi,28117,36,2 +2020-05-13,Prentiss,Mississippi,28117,36,2 +2020-05-14,Prentiss,Mississippi,28117,36,2 +2020-05-15,Prentiss,Mississippi,28117,36,2 +2020-05-16,Prentiss,Mississippi,28117,36,3 +2020-05-17,Prentiss,Mississippi,28117,36,3 +2020-05-18,Prentiss,Mississippi,28117,36,3 +2020-05-19,Prentiss,Mississippi,28117,36,3 +2020-05-20,Prentiss,Mississippi,28117,36,3 +2020-05-21,Prentiss,Mississippi,28117,37,3 +2020-05-22,Prentiss,Mississippi,28117,37,3 +2020-05-23,Prentiss,Mississippi,28117,37,3 +2020-05-24,Prentiss,Mississippi,28117,38,3 +2020-05-25,Prentiss,Mississippi,28117,39,3 +2020-05-26,Prentiss,Mississippi,28117,40,3 +2020-05-27,Prentiss,Mississippi,28117,41,3 +2020-05-28,Prentiss,Mississippi,28117,42,3 +2020-05-29,Prentiss,Mississippi,28117,51,3 +2020-05-30,Prentiss,Mississippi,28117,52,3 +2020-05-31,Prentiss,Mississippi,28117,53,3 +2020-06-01,Prentiss,Mississippi,28117,56,3 +2020-06-02,Prentiss,Mississippi,28117,51,3 +2020-06-03,Prentiss,Mississippi,28117,53,3 +2020-06-04,Prentiss,Mississippi,28117,53,3 +2020-06-05,Prentiss,Mississippi,28117,53,3 +2020-06-06,Prentiss,Mississippi,28117,55,3 +2020-06-07,Prentiss,Mississippi,28117,56,3 +2020-06-08,Prentiss,Mississippi,28117,57,3 +2020-06-09,Prentiss,Mississippi,28117,62,3 +2020-06-10,Prentiss,Mississippi,28117,63,3 +2020-06-11,Prentiss,Mississippi,28117,63,3 +2020-06-12,Prentiss,Mississippi,28117,65,3 +2020-06-13,Prentiss,Mississippi,28117,65,3 +2020-06-14,Prentiss,Mississippi,28117,66,3 +2020-06-15,Prentiss,Mississippi,28117,66,3 +2020-06-16,Prentiss,Mississippi,28117,68,3 +2020-06-17,Prentiss,Mississippi,28117,70,3 +2020-06-18,Prentiss,Mississippi,28117,70,3 +2020-06-19,Prentiss,Mississippi,28117,70,3 +2020-06-20,Prentiss,Mississippi,28117,70,3 +2020-06-21,Prentiss,Mississippi,28117,70,3 +2020-06-22,Prentiss,Mississippi,28117,78,3 +2020-06-23,Prentiss,Mississippi,28117,80,3 +2020-06-24,Prentiss,Mississippi,28117,81,3 +2020-06-25,Prentiss,Mississippi,28117,85,3 +2020-06-26,Prentiss,Mississippi,28117,90,3 +2020-06-27,Prentiss,Mississippi,28117,91,3 +2020-06-28,Prentiss,Mississippi,28117,91,3 +2020-06-29,Prentiss,Mississippi,28117,94,3 +2020-06-30,Prentiss,Mississippi,28117,97,3 +2020-07-01,Prentiss,Mississippi,28117,98,3 +2020-07-02,Prentiss,Mississippi,28117,100,3 +2020-07-03,Prentiss,Mississippi,28117,102,3 +2020-07-04,Prentiss,Mississippi,28117,108,3 +2020-07-05,Prentiss,Mississippi,28117,108,3 +2020-07-06,Prentiss,Mississippi,28117,108,3 +2020-07-07,Prentiss,Mississippi,28117,110,3 +2020-07-08,Prentiss,Mississippi,28117,111,3 +2020-07-09,Prentiss,Mississippi,28117,112,3 +2020-03-26,Quitman,Mississippi,28119,2,0 +2020-03-27,Quitman,Mississippi,28119,3,0 +2020-03-28,Quitman,Mississippi,28119,4,0 +2020-03-29,Quitman,Mississippi,28119,4,0 +2020-03-30,Quitman,Mississippi,28119,4,0 +2020-03-31,Quitman,Mississippi,28119,3,0 +2020-04-01,Quitman,Mississippi,28119,4,0 +2020-04-02,Quitman,Mississippi,28119,4,0 +2020-04-03,Quitman,Mississippi,28119,4,0 +2020-04-04,Quitman,Mississippi,28119,5,0 +2020-04-05,Quitman,Mississippi,28119,6,0 +2020-04-06,Quitman,Mississippi,28119,7,0 +2020-04-07,Quitman,Mississippi,28119,9,0 +2020-04-08,Quitman,Mississippi,28119,12,0 +2020-04-09,Quitman,Mississippi,28119,12,0 +2020-04-10,Quitman,Mississippi,28119,12,0 +2020-04-11,Quitman,Mississippi,28119,12,0 +2020-04-12,Quitman,Mississippi,28119,12,0 +2020-04-13,Quitman,Mississippi,28119,12,0 +2020-04-14,Quitman,Mississippi,28119,12,0 +2020-04-15,Quitman,Mississippi,28119,13,0 +2020-04-16,Quitman,Mississippi,28119,13,0 +2020-04-17,Quitman,Mississippi,28119,13,0 +2020-04-18,Quitman,Mississippi,28119,13,0 +2020-04-19,Quitman,Mississippi,28119,13,0 +2020-04-20,Quitman,Mississippi,28119,13,0 +2020-04-21,Quitman,Mississippi,28119,13,0 +2020-04-22,Quitman,Mississippi,28119,13,0 +2020-04-23,Quitman,Mississippi,28119,14,0 +2020-04-24,Quitman,Mississippi,28119,14,0 +2020-04-25,Quitman,Mississippi,28119,14,0 +2020-04-26,Quitman,Mississippi,28119,14,0 +2020-04-27,Quitman,Mississippi,28119,14,0 +2020-04-28,Quitman,Mississippi,28119,14,0 +2020-04-29,Quitman,Mississippi,28119,14,0 +2020-04-30,Quitman,Mississippi,28119,14,0 +2020-05-01,Quitman,Mississippi,28119,15,0 +2020-05-02,Quitman,Mississippi,28119,15,0 +2020-05-03,Quitman,Mississippi,28119,15,0 +2020-05-04,Quitman,Mississippi,28119,16,0 +2020-05-05,Quitman,Mississippi,28119,16,0 +2020-05-06,Quitman,Mississippi,28119,16,0 +2020-05-07,Quitman,Mississippi,28119,16,0 +2020-05-08,Quitman,Mississippi,28119,16,0 +2020-05-09,Quitman,Mississippi,28119,16,0 +2020-05-10,Quitman,Mississippi,28119,17,0 +2020-05-11,Quitman,Mississippi,28119,17,0 +2020-05-12,Quitman,Mississippi,28119,17,0 +2020-05-13,Quitman,Mississippi,28119,18,0 +2020-05-14,Quitman,Mississippi,28119,19,0 +2020-05-15,Quitman,Mississippi,28119,20,0 +2020-05-16,Quitman,Mississippi,28119,21,0 +2020-05-17,Quitman,Mississippi,28119,21,0 +2020-05-18,Quitman,Mississippi,28119,21,0 +2020-05-19,Quitman,Mississippi,28119,21,0 +2020-05-20,Quitman,Mississippi,28119,21,0 +2020-05-21,Quitman,Mississippi,28119,21,0 +2020-05-22,Quitman,Mississippi,28119,23,0 +2020-05-23,Quitman,Mississippi,28119,23,0 +2020-05-24,Quitman,Mississippi,28119,24,0 +2020-05-25,Quitman,Mississippi,28119,24,0 +2020-05-26,Quitman,Mississippi,28119,24,0 +2020-05-27,Quitman,Mississippi,28119,25,0 +2020-05-28,Quitman,Mississippi,28119,25,0 +2020-05-29,Quitman,Mississippi,28119,25,0 +2020-05-30,Quitman,Mississippi,28119,26,0 +2020-05-31,Quitman,Mississippi,28119,33,0 +2020-06-01,Quitman,Mississippi,28119,34,0 +2020-06-02,Quitman,Mississippi,28119,30,0 +2020-06-03,Quitman,Mississippi,28119,31,0 +2020-06-04,Quitman,Mississippi,28119,32,0 +2020-06-05,Quitman,Mississippi,28119,32,0 +2020-06-06,Quitman,Mississippi,28119,32,0 +2020-06-07,Quitman,Mississippi,28119,32,0 +2020-06-08,Quitman,Mississippi,28119,32,0 +2020-06-09,Quitman,Mississippi,28119,32,0 +2020-06-10,Quitman,Mississippi,28119,34,0 +2020-06-11,Quitman,Mississippi,28119,34,0 +2020-06-12,Quitman,Mississippi,28119,39,0 +2020-06-13,Quitman,Mississippi,28119,48,0 +2020-06-14,Quitman,Mississippi,28119,49,0 +2020-06-15,Quitman,Mississippi,28119,50,0 +2020-06-16,Quitman,Mississippi,28119,51,0 +2020-06-17,Quitman,Mississippi,28119,52,0 +2020-06-18,Quitman,Mississippi,28119,52,0 +2020-06-19,Quitman,Mississippi,28119,52,0 +2020-06-20,Quitman,Mississippi,28119,52,0 +2020-06-21,Quitman,Mississippi,28119,52,0 +2020-06-22,Quitman,Mississippi,28119,49,0 +2020-06-23,Quitman,Mississippi,28119,49,0 +2020-06-24,Quitman,Mississippi,28119,49,0 +2020-06-25,Quitman,Mississippi,28119,56,0 +2020-06-26,Quitman,Mississippi,28119,59,0 +2020-06-27,Quitman,Mississippi,28119,63,0 +2020-06-28,Quitman,Mississippi,28119,63,0 +2020-06-29,Quitman,Mississippi,28119,65,0 +2020-06-30,Quitman,Mississippi,28119,67,0 +2020-07-01,Quitman,Mississippi,28119,68,0 +2020-07-02,Quitman,Mississippi,28119,69,0 +2020-07-03,Quitman,Mississippi,28119,73,0 +2020-07-04,Quitman,Mississippi,28119,76,0 +2020-07-05,Quitman,Mississippi,28119,76,0 +2020-07-06,Quitman,Mississippi,28119,78,0 +2020-07-07,Quitman,Mississippi,28119,81,1 +2020-07-08,Quitman,Mississippi,28119,89,1 +2020-07-09,Quitman,Mississippi,28119,89,1 +2020-03-20,Rankin,Mississippi,28121,3,0 +2020-03-21,Rankin,Mississippi,28121,7,0 +2020-03-22,Rankin,Mississippi,28121,7,0 +2020-03-23,Rankin,Mississippi,28121,8,0 +2020-03-24,Rankin,Mississippi,28121,13,0 +2020-03-25,Rankin,Mississippi,28121,20,0 +2020-03-26,Rankin,Mississippi,28121,23,1 +2020-03-27,Rankin,Mississippi,28121,29,1 +2020-03-28,Rankin,Mississippi,28121,31,1 +2020-03-29,Rankin,Mississippi,28121,35,1 +2020-03-30,Rankin,Mississippi,28121,37,1 +2020-03-31,Rankin,Mississippi,28121,40,1 +2020-04-01,Rankin,Mississippi,28121,48,1 +2020-04-02,Rankin,Mississippi,28121,50,1 +2020-04-03,Rankin,Mississippi,28121,64,1 +2020-04-04,Rankin,Mississippi,28121,66,1 +2020-04-05,Rankin,Mississippi,28121,72,1 +2020-04-06,Rankin,Mississippi,28121,74,1 +2020-04-07,Rankin,Mississippi,28121,78,1 +2020-04-08,Rankin,Mississippi,28121,79,2 +2020-04-09,Rankin,Mississippi,28121,85,2 +2020-04-10,Rankin,Mississippi,28121,88,2 +2020-04-11,Rankin,Mississippi,28121,94,2 +2020-04-12,Rankin,Mississippi,28121,99,2 +2020-04-13,Rankin,Mississippi,28121,100,2 +2020-04-14,Rankin,Mississippi,28121,105,2 +2020-04-15,Rankin,Mississippi,28121,113,2 +2020-04-16,Rankin,Mississippi,28121,122,2 +2020-04-17,Rankin,Mississippi,28121,128,2 +2020-04-18,Rankin,Mississippi,28121,130,2 +2020-04-19,Rankin,Mississippi,28121,133,2 +2020-04-20,Rankin,Mississippi,28121,141,2 +2020-04-21,Rankin,Mississippi,28121,146,4 +2020-04-22,Rankin,Mississippi,28121,148,4 +2020-04-23,Rankin,Mississippi,28121,153,4 +2020-04-24,Rankin,Mississippi,28121,154,4 +2020-04-25,Rankin,Mississippi,28121,162,5 +2020-04-26,Rankin,Mississippi,28121,167,5 +2020-04-27,Rankin,Mississippi,28121,171,5 +2020-04-28,Rankin,Mississippi,28121,179,5 +2020-04-29,Rankin,Mississippi,28121,182,5 +2020-04-30,Rankin,Mississippi,28121,186,5 +2020-05-01,Rankin,Mississippi,28121,194,5 +2020-05-02,Rankin,Mississippi,28121,197,5 +2020-05-03,Rankin,Mississippi,28121,200,6 +2020-05-04,Rankin,Mississippi,28121,207,6 +2020-05-05,Rankin,Mississippi,28121,221,6 +2020-05-06,Rankin,Mississippi,28121,226,6 +2020-05-07,Rankin,Mississippi,28121,231,6 +2020-05-08,Rankin,Mississippi,28121,238,6 +2020-05-09,Rankin,Mississippi,28121,248,6 +2020-05-10,Rankin,Mississippi,28121,250,6 +2020-05-11,Rankin,Mississippi,28121,251,6 +2020-05-12,Rankin,Mississippi,28121,256,6 +2020-05-13,Rankin,Mississippi,28121,262,6 +2020-05-14,Rankin,Mississippi,28121,271,6 +2020-05-15,Rankin,Mississippi,28121,276,6 +2020-05-16,Rankin,Mississippi,28121,282,6 +2020-05-17,Rankin,Mississippi,28121,285,6 +2020-05-18,Rankin,Mississippi,28121,287,6 +2020-05-19,Rankin,Mississippi,28121,295,6 +2020-05-20,Rankin,Mississippi,28121,310,6 +2020-05-21,Rankin,Mississippi,28121,315,6 +2020-05-22,Rankin,Mississippi,28121,325,6 +2020-05-23,Rankin,Mississippi,28121,336,6 +2020-05-24,Rankin,Mississippi,28121,349,6 +2020-05-25,Rankin,Mississippi,28121,356,6 +2020-05-26,Rankin,Mississippi,28121,358,6 +2020-05-27,Rankin,Mississippi,28121,373,6 +2020-05-28,Rankin,Mississippi,28121,385,6 +2020-05-29,Rankin,Mississippi,28121,399,7 +2020-05-30,Rankin,Mississippi,28121,421,7 +2020-05-31,Rankin,Mississippi,28121,439,8 +2020-06-01,Rankin,Mississippi,28121,446,8 +2020-06-02,Rankin,Mississippi,28121,446,8 +2020-06-03,Rankin,Mississippi,28121,453,8 +2020-06-04,Rankin,Mississippi,28121,456,9 +2020-06-05,Rankin,Mississippi,28121,463,9 +2020-06-06,Rankin,Mississippi,28121,473,9 +2020-06-07,Rankin,Mississippi,28121,480,9 +2020-06-08,Rankin,Mississippi,28121,485,9 +2020-06-09,Rankin,Mississippi,28121,498,10 +2020-06-10,Rankin,Mississippi,28121,505,10 +2020-06-11,Rankin,Mississippi,28121,505,10 +2020-06-12,Rankin,Mississippi,28121,529,10 +2020-06-13,Rankin,Mississippi,28121,536,10 +2020-06-14,Rankin,Mississippi,28121,537,10 +2020-06-15,Rankin,Mississippi,28121,539,10 +2020-06-16,Rankin,Mississippi,28121,550,10 +2020-06-17,Rankin,Mississippi,28121,563,10 +2020-06-18,Rankin,Mississippi,28121,563,10 +2020-06-19,Rankin,Mississippi,28121,563,10 +2020-06-20,Rankin,Mississippi,28121,563,10 +2020-06-21,Rankin,Mississippi,28121,563,10 +2020-06-22,Rankin,Mississippi,28121,611,12 +2020-06-23,Rankin,Mississippi,28121,620,12 +2020-06-24,Rankin,Mississippi,28121,636,12 +2020-06-25,Rankin,Mississippi,28121,682,12 +2020-06-26,Rankin,Mississippi,28121,700,12 +2020-06-27,Rankin,Mississippi,28121,715,12 +2020-06-28,Rankin,Mississippi,28121,773,12 +2020-06-29,Rankin,Mississippi,28121,798,12 +2020-06-30,Rankin,Mississippi,28121,816,12 +2020-07-01,Rankin,Mississippi,28121,841,12 +2020-07-02,Rankin,Mississippi,28121,860,12 +2020-07-03,Rankin,Mississippi,28121,888,12 +2020-07-04,Rankin,Mississippi,28121,916,12 +2020-07-05,Rankin,Mississippi,28121,934,12 +2020-07-06,Rankin,Mississippi,28121,951,12 +2020-07-07,Rankin,Mississippi,28121,982,13 +2020-07-08,Rankin,Mississippi,28121,999,15 +2020-07-09,Rankin,Mississippi,28121,1035,15 +2020-03-19,Scott,Mississippi,28123,1,0 +2020-03-20,Scott,Mississippi,28123,1,0 +2020-03-21,Scott,Mississippi,28123,1,0 +2020-03-22,Scott,Mississippi,28123,1,0 +2020-03-23,Scott,Mississippi,28123,1,0 +2020-03-24,Scott,Mississippi,28123,2,0 +2020-03-25,Scott,Mississippi,28123,3,0 +2020-03-26,Scott,Mississippi,28123,4,0 +2020-03-27,Scott,Mississippi,28123,6,0 +2020-03-28,Scott,Mississippi,28123,7,0 +2020-03-29,Scott,Mississippi,28123,7,0 +2020-03-30,Scott,Mississippi,28123,9,0 +2020-03-31,Scott,Mississippi,28123,10,0 +2020-04-01,Scott,Mississippi,28123,12,0 +2020-04-02,Scott,Mississippi,28123,13,0 +2020-04-03,Scott,Mississippi,28123,17,0 +2020-04-04,Scott,Mississippi,28123,17,0 +2020-04-05,Scott,Mississippi,28123,23,0 +2020-04-06,Scott,Mississippi,28123,23,0 +2020-04-07,Scott,Mississippi,28123,32,0 +2020-04-08,Scott,Mississippi,28123,34,0 +2020-04-09,Scott,Mississippi,28123,43,0 +2020-04-10,Scott,Mississippi,28123,47,0 +2020-04-11,Scott,Mississippi,28123,52,0 +2020-04-12,Scott,Mississippi,28123,54,0 +2020-04-13,Scott,Mississippi,28123,58,0 +2020-04-14,Scott,Mississippi,28123,62,0 +2020-04-15,Scott,Mississippi,28123,79,0 +2020-04-16,Scott,Mississippi,28123,100,0 +2020-04-17,Scott,Mississippi,28123,96,0 +2020-04-18,Scott,Mississippi,28123,106,0 +2020-04-19,Scott,Mississippi,28123,130,0 +2020-04-20,Scott,Mississippi,28123,148,0 +2020-04-21,Scott,Mississippi,28123,158,0 +2020-04-22,Scott,Mississippi,28123,163,0 +2020-04-23,Scott,Mississippi,28123,177,0 +2020-04-24,Scott,Mississippi,28123,200,0 +2020-04-25,Scott,Mississippi,28123,240,0 +2020-04-26,Scott,Mississippi,28123,249,0 +2020-04-27,Scott,Mississippi,28123,258,0 +2020-04-28,Scott,Mississippi,28123,281,0 +2020-04-29,Scott,Mississippi,28123,296,0 +2020-04-30,Scott,Mississippi,28123,316,0 +2020-05-01,Scott,Mississippi,28123,339,0 +2020-05-02,Scott,Mississippi,28123,354,1 +2020-05-03,Scott,Mississippi,28123,358,2 +2020-05-04,Scott,Mississippi,28123,369,2 +2020-05-05,Scott,Mississippi,28123,404,3 +2020-05-06,Scott,Mississippi,28123,410,3 +2020-05-07,Scott,Mississippi,28123,423,5 +2020-05-08,Scott,Mississippi,28123,438,6 +2020-05-09,Scott,Mississippi,28123,454,6 +2020-05-10,Scott,Mississippi,28123,457,6 +2020-05-11,Scott,Mississippi,28123,462,6 +2020-05-12,Scott,Mississippi,28123,475,6 +2020-05-13,Scott,Mississippi,28123,483,6 +2020-05-14,Scott,Mississippi,28123,487,6 +2020-05-15,Scott,Mississippi,28123,504,6 +2020-05-16,Scott,Mississippi,28123,521,6 +2020-05-17,Scott,Mississippi,28123,524,7 +2020-05-18,Scott,Mississippi,28123,532,8 +2020-05-19,Scott,Mississippi,28123,550,10 +2020-05-20,Scott,Mississippi,28123,567,10 +2020-05-21,Scott,Mississippi,28123,569,10 +2020-05-22,Scott,Mississippi,28123,578,10 +2020-05-23,Scott,Mississippi,28123,587,10 +2020-05-24,Scott,Mississippi,28123,589,10 +2020-05-25,Scott,Mississippi,28123,592,10 +2020-05-26,Scott,Mississippi,28123,597,10 +2020-05-27,Scott,Mississippi,28123,623,10 +2020-05-28,Scott,Mississippi,28123,630,10 +2020-05-29,Scott,Mississippi,28123,640,11 +2020-05-30,Scott,Mississippi,28123,650,12 +2020-05-31,Scott,Mississippi,28123,644,12 +2020-06-01,Scott,Mississippi,28123,648,12 +2020-06-02,Scott,Mississippi,28123,661,12 +2020-06-03,Scott,Mississippi,28123,662,12 +2020-06-04,Scott,Mississippi,28123,663,12 +2020-06-05,Scott,Mississippi,28123,663,12 +2020-06-06,Scott,Mississippi,28123,670,12 +2020-06-07,Scott,Mississippi,28123,671,12 +2020-06-08,Scott,Mississippi,28123,673,12 +2020-06-09,Scott,Mississippi,28123,677,12 +2020-06-10,Scott,Mississippi,28123,682,12 +2020-06-11,Scott,Mississippi,28123,682,12 +2020-06-12,Scott,Mississippi,28123,685,12 +2020-06-13,Scott,Mississippi,28123,688,12 +2020-06-14,Scott,Mississippi,28123,688,12 +2020-06-15,Scott,Mississippi,28123,690,12 +2020-06-16,Scott,Mississippi,28123,692,12 +2020-06-17,Scott,Mississippi,28123,696,12 +2020-06-18,Scott,Mississippi,28123,696,12 +2020-06-19,Scott,Mississippi,28123,696,12 +2020-06-20,Scott,Mississippi,28123,696,12 +2020-06-21,Scott,Mississippi,28123,696,12 +2020-06-22,Scott,Mississippi,28123,700,14 +2020-06-23,Scott,Mississippi,28123,707,14 +2020-06-24,Scott,Mississippi,28123,709,14 +2020-06-25,Scott,Mississippi,28123,721,14 +2020-06-26,Scott,Mississippi,28123,723,14 +2020-06-27,Scott,Mississippi,28123,725,14 +2020-06-28,Scott,Mississippi,28123,726,14 +2020-06-29,Scott,Mississippi,28123,733,15 +2020-06-30,Scott,Mississippi,28123,742,15 +2020-07-01,Scott,Mississippi,28123,750,15 +2020-07-02,Scott,Mississippi,28123,757,15 +2020-07-03,Scott,Mississippi,28123,762,15 +2020-07-04,Scott,Mississippi,28123,770,15 +2020-07-05,Scott,Mississippi,28123,771,15 +2020-07-06,Scott,Mississippi,28123,773,15 +2020-07-07,Scott,Mississippi,28123,779,15 +2020-07-08,Scott,Mississippi,28123,785,15 +2020-07-09,Scott,Mississippi,28123,792,15 +2020-03-27,Sharkey,Mississippi,28125,1,0 +2020-03-28,Sharkey,Mississippi,28125,1,0 +2020-03-29,Sharkey,Mississippi,28125,1,0 +2020-03-30,Sharkey,Mississippi,28125,1,0 +2020-03-31,Sharkey,Mississippi,28125,1,0 +2020-04-01,Sharkey,Mississippi,28125,2,0 +2020-04-02,Sharkey,Mississippi,28125,2,0 +2020-04-03,Sharkey,Mississippi,28125,2,0 +2020-04-04,Sharkey,Mississippi,28125,2,0 +2020-04-05,Sharkey,Mississippi,28125,3,0 +2020-04-06,Sharkey,Mississippi,28125,3,0 +2020-04-07,Sharkey,Mississippi,28125,3,0 +2020-04-08,Sharkey,Mississippi,28125,3,0 +2020-04-09,Sharkey,Mississippi,28125,3,0 +2020-04-10,Sharkey,Mississippi,28125,3,0 +2020-04-11,Sharkey,Mississippi,28125,3,0 +2020-04-12,Sharkey,Mississippi,28125,3,0 +2020-04-13,Sharkey,Mississippi,28125,3,0 +2020-04-14,Sharkey,Mississippi,28125,3,0 +2020-04-15,Sharkey,Mississippi,28125,3,0 +2020-04-16,Sharkey,Mississippi,28125,3,0 +2020-04-17,Sharkey,Mississippi,28125,3,0 +2020-04-18,Sharkey,Mississippi,28125,3,0 +2020-04-19,Sharkey,Mississippi,28125,3,0 +2020-04-20,Sharkey,Mississippi,28125,3,0 +2020-04-21,Sharkey,Mississippi,28125,3,0 +2020-04-22,Sharkey,Mississippi,28125,3,0 +2020-04-23,Sharkey,Mississippi,28125,4,0 +2020-04-24,Sharkey,Mississippi,28125,4,0 +2020-04-25,Sharkey,Mississippi,28125,4,0 +2020-04-26,Sharkey,Mississippi,28125,4,0 +2020-04-27,Sharkey,Mississippi,28125,5,0 +2020-04-28,Sharkey,Mississippi,28125,5,0 +2020-04-29,Sharkey,Mississippi,28125,5,0 +2020-04-30,Sharkey,Mississippi,28125,5,0 +2020-05-01,Sharkey,Mississippi,28125,5,0 +2020-05-02,Sharkey,Mississippi,28125,5,0 +2020-05-03,Sharkey,Mississippi,28125,5,0 +2020-05-04,Sharkey,Mississippi,28125,5,0 +2020-05-05,Sharkey,Mississippi,28125,5,0 +2020-05-06,Sharkey,Mississippi,28125,5,0 +2020-05-07,Sharkey,Mississippi,28125,5,0 +2020-05-08,Sharkey,Mississippi,28125,5,0 +2020-05-09,Sharkey,Mississippi,28125,5,0 +2020-05-10,Sharkey,Mississippi,28125,5,0 +2020-05-11,Sharkey,Mississippi,28125,5,0 +2020-05-12,Sharkey,Mississippi,28125,5,0 +2020-05-13,Sharkey,Mississippi,28125,5,0 +2020-05-14,Sharkey,Mississippi,28125,5,0 +2020-05-15,Sharkey,Mississippi,28125,5,0 +2020-05-16,Sharkey,Mississippi,28125,6,0 +2020-05-17,Sharkey,Mississippi,28125,6,0 +2020-05-18,Sharkey,Mississippi,28125,6,0 +2020-05-19,Sharkey,Mississippi,28125,7,0 +2020-05-20,Sharkey,Mississippi,28125,7,0 +2020-05-21,Sharkey,Mississippi,28125,7,0 +2020-05-22,Sharkey,Mississippi,28125,7,0 +2020-05-23,Sharkey,Mississippi,28125,7,0 +2020-05-24,Sharkey,Mississippi,28125,7,0 +2020-05-25,Sharkey,Mississippi,28125,7,0 +2020-05-26,Sharkey,Mississippi,28125,7,0 +2020-05-27,Sharkey,Mississippi,28125,7,0 +2020-05-28,Sharkey,Mississippi,28125,7,0 +2020-05-29,Sharkey,Mississippi,28125,7,0 +2020-05-30,Sharkey,Mississippi,28125,7,0 +2020-05-31,Sharkey,Mississippi,28125,7,0 +2020-06-01,Sharkey,Mississippi,28125,7,0 +2020-06-02,Sharkey,Mississippi,28125,7,0 +2020-06-03,Sharkey,Mississippi,28125,7,0 +2020-06-04,Sharkey,Mississippi,28125,7,0 +2020-06-05,Sharkey,Mississippi,28125,7,0 +2020-06-06,Sharkey,Mississippi,28125,7,0 +2020-06-07,Sharkey,Mississippi,28125,7,0 +2020-06-08,Sharkey,Mississippi,28125,7,0 +2020-06-09,Sharkey,Mississippi,28125,7,0 +2020-06-10,Sharkey,Mississippi,28125,7,0 +2020-06-11,Sharkey,Mississippi,28125,7,0 +2020-06-12,Sharkey,Mississippi,28125,8,0 +2020-06-13,Sharkey,Mississippi,28125,8,0 +2020-06-14,Sharkey,Mississippi,28125,8,0 +2020-06-15,Sharkey,Mississippi,28125,8,0 +2020-06-16,Sharkey,Mississippi,28125,8,0 +2020-06-17,Sharkey,Mississippi,28125,9,0 +2020-06-18,Sharkey,Mississippi,28125,9,0 +2020-06-19,Sharkey,Mississippi,28125,9,0 +2020-06-20,Sharkey,Mississippi,28125,9,0 +2020-06-21,Sharkey,Mississippi,28125,9,0 +2020-06-22,Sharkey,Mississippi,28125,13,0 +2020-06-23,Sharkey,Mississippi,28125,16,0 +2020-06-24,Sharkey,Mississippi,28125,18,0 +2020-06-25,Sharkey,Mississippi,28125,20,0 +2020-06-26,Sharkey,Mississippi,28125,21,0 +2020-06-27,Sharkey,Mississippi,28125,22,0 +2020-06-28,Sharkey,Mississippi,28125,23,0 +2020-06-29,Sharkey,Mississippi,28125,24,0 +2020-06-30,Sharkey,Mississippi,28125,24,0 +2020-07-01,Sharkey,Mississippi,28125,24,0 +2020-07-02,Sharkey,Mississippi,28125,27,0 +2020-07-03,Sharkey,Mississippi,28125,34,0 +2020-07-04,Sharkey,Mississippi,28125,35,0 +2020-07-05,Sharkey,Mississippi,28125,37,0 +2020-07-06,Sharkey,Mississippi,28125,38,0 +2020-07-07,Sharkey,Mississippi,28125,37,0 +2020-07-08,Sharkey,Mississippi,28125,40,0 +2020-07-09,Sharkey,Mississippi,28125,42,0 +2020-03-21,Simpson,Mississippi,28127,1,0 +2020-03-22,Simpson,Mississippi,28127,1,0 +2020-03-23,Simpson,Mississippi,28127,1,0 +2020-03-24,Simpson,Mississippi,28127,1,0 +2020-03-25,Simpson,Mississippi,28127,1,0 +2020-03-26,Simpson,Mississippi,28127,1,0 +2020-03-27,Simpson,Mississippi,28127,1,0 +2020-03-28,Simpson,Mississippi,28127,2,0 +2020-03-29,Simpson,Mississippi,28127,2,0 +2020-03-30,Simpson,Mississippi,28127,2,0 +2020-03-31,Simpson,Mississippi,28127,2,0 +2020-04-01,Simpson,Mississippi,28127,3,0 +2020-04-02,Simpson,Mississippi,28127,4,0 +2020-04-03,Simpson,Mississippi,28127,5,0 +2020-04-04,Simpson,Mississippi,28127,5,0 +2020-04-05,Simpson,Mississippi,28127,5,0 +2020-04-06,Simpson,Mississippi,28127,6,0 +2020-04-07,Simpson,Mississippi,28127,7,0 +2020-04-08,Simpson,Mississippi,28127,6,0 +2020-04-09,Simpson,Mississippi,28127,6,0 +2020-04-10,Simpson,Mississippi,28127,7,0 +2020-04-11,Simpson,Mississippi,28127,7,0 +2020-04-12,Simpson,Mississippi,28127,7,0 +2020-04-13,Simpson,Mississippi,28127,7,0 +2020-04-14,Simpson,Mississippi,28127,7,0 +2020-04-15,Simpson,Mississippi,28127,12,0 +2020-04-16,Simpson,Mississippi,28127,13,0 +2020-04-17,Simpson,Mississippi,28127,14,0 +2020-04-18,Simpson,Mississippi,28127,14,0 +2020-04-19,Simpson,Mississippi,28127,21,0 +2020-04-20,Simpson,Mississippi,28127,28,0 +2020-04-21,Simpson,Mississippi,28127,32,0 +2020-04-22,Simpson,Mississippi,28127,32,0 +2020-04-23,Simpson,Mississippi,28127,33,0 +2020-04-24,Simpson,Mississippi,28127,36,0 +2020-04-25,Simpson,Mississippi,28127,38,0 +2020-04-26,Simpson,Mississippi,28127,40,0 +2020-04-27,Simpson,Mississippi,28127,40,0 +2020-04-28,Simpson,Mississippi,28127,43,0 +2020-04-29,Simpson,Mississippi,28127,45,0 +2020-04-30,Simpson,Mississippi,28127,46,0 +2020-05-01,Simpson,Mississippi,28127,47,0 +2020-05-02,Simpson,Mississippi,28127,47,0 +2020-05-03,Simpson,Mississippi,28127,48,0 +2020-05-04,Simpson,Mississippi,28127,49,0 +2020-05-05,Simpson,Mississippi,28127,53,0 +2020-05-06,Simpson,Mississippi,28127,55,0 +2020-05-07,Simpson,Mississippi,28127,56,0 +2020-05-08,Simpson,Mississippi,28127,60,0 +2020-05-09,Simpson,Mississippi,28127,61,0 +2020-05-10,Simpson,Mississippi,28127,61,0 +2020-05-11,Simpson,Mississippi,28127,62,0 +2020-05-12,Simpson,Mississippi,28127,63,0 +2020-05-13,Simpson,Mississippi,28127,65,0 +2020-05-14,Simpson,Mississippi,28127,72,0 +2020-05-15,Simpson,Mississippi,28127,75,0 +2020-05-16,Simpson,Mississippi,28127,75,0 +2020-05-17,Simpson,Mississippi,28127,76,0 +2020-05-18,Simpson,Mississippi,28127,78,0 +2020-05-19,Simpson,Mississippi,28127,78,0 +2020-05-20,Simpson,Mississippi,28127,79,0 +2020-05-21,Simpson,Mississippi,28127,79,0 +2020-05-22,Simpson,Mississippi,28127,82,0 +2020-05-23,Simpson,Mississippi,28127,83,0 +2020-05-24,Simpson,Mississippi,28127,85,0 +2020-05-25,Simpson,Mississippi,28127,85,0 +2020-05-26,Simpson,Mississippi,28127,91,0 +2020-05-27,Simpson,Mississippi,28127,93,0 +2020-05-28,Simpson,Mississippi,28127,95,0 +2020-05-29,Simpson,Mississippi,28127,95,0 +2020-05-30,Simpson,Mississippi,28127,101,0 +2020-05-31,Simpson,Mississippi,28127,98,0 +2020-06-01,Simpson,Mississippi,28127,100,0 +2020-06-02,Simpson,Mississippi,28127,102,0 +2020-06-03,Simpson,Mississippi,28127,104,0 +2020-06-04,Simpson,Mississippi,28127,104,0 +2020-06-05,Simpson,Mississippi,28127,105,0 +2020-06-06,Simpson,Mississippi,28127,104,0 +2020-06-07,Simpson,Mississippi,28127,105,0 +2020-06-08,Simpson,Mississippi,28127,108,0 +2020-06-09,Simpson,Mississippi,28127,112,0 +2020-06-10,Simpson,Mississippi,28127,117,1 +2020-06-11,Simpson,Mississippi,28127,117,1 +2020-06-12,Simpson,Mississippi,28127,117,1 +2020-06-13,Simpson,Mississippi,28127,117,1 +2020-06-14,Simpson,Mississippi,28127,119,1 +2020-06-15,Simpson,Mississippi,28127,119,1 +2020-06-16,Simpson,Mississippi,28127,123,1 +2020-06-17,Simpson,Mississippi,28127,126,1 +2020-06-18,Simpson,Mississippi,28127,126,1 +2020-06-19,Simpson,Mississippi,28127,126,1 +2020-06-20,Simpson,Mississippi,28127,126,1 +2020-06-21,Simpson,Mississippi,28127,126,1 +2020-06-22,Simpson,Mississippi,28127,166,2 +2020-06-23,Simpson,Mississippi,28127,170,2 +2020-06-24,Simpson,Mississippi,28127,177,2 +2020-06-25,Simpson,Mississippi,28127,187,2 +2020-06-26,Simpson,Mississippi,28127,193,3 +2020-06-27,Simpson,Mississippi,28127,195,3 +2020-06-28,Simpson,Mississippi,28127,198,3 +2020-06-29,Simpson,Mississippi,28127,209,3 +2020-06-30,Simpson,Mississippi,28127,218,3 +2020-07-01,Simpson,Mississippi,28127,230,3 +2020-07-02,Simpson,Mississippi,28127,271,3 +2020-07-03,Simpson,Mississippi,28127,283,3 +2020-07-04,Simpson,Mississippi,28127,310,3 +2020-07-05,Simpson,Mississippi,28127,317,3 +2020-07-06,Simpson,Mississippi,28127,323,3 +2020-07-07,Simpson,Mississippi,28127,345,3 +2020-07-08,Simpson,Mississippi,28127,360,3 +2020-07-09,Simpson,Mississippi,28127,373,3 +2020-03-20,Smith,Mississippi,28129,1,0 +2020-03-21,Smith,Mississippi,28129,1,0 +2020-03-22,Smith,Mississippi,28129,1,0 +2020-03-23,Smith,Mississippi,28129,1,0 +2020-03-24,Smith,Mississippi,28129,1,0 +2020-03-25,Smith,Mississippi,28129,1,0 +2020-03-26,Smith,Mississippi,28129,1,0 +2020-03-27,Smith,Mississippi,28129,1,0 +2020-03-28,Smith,Mississippi,28129,1,0 +2020-03-29,Smith,Mississippi,28129,1,0 +2020-03-30,Smith,Mississippi,28129,1,0 +2020-03-31,Smith,Mississippi,28129,1,0 +2020-04-01,Smith,Mississippi,28129,1,0 +2020-04-02,Smith,Mississippi,28129,6,0 +2020-04-03,Smith,Mississippi,28129,6,0 +2020-04-04,Smith,Mississippi,28129,6,0 +2020-04-05,Smith,Mississippi,28129,10,0 +2020-04-06,Smith,Mississippi,28129,11,0 +2020-04-07,Smith,Mississippi,28129,11,0 +2020-04-08,Smith,Mississippi,28129,15,0 +2020-04-09,Smith,Mississippi,28129,16,0 +2020-04-10,Smith,Mississippi,28129,17,1 +2020-04-11,Smith,Mississippi,28129,23,1 +2020-04-12,Smith,Mississippi,28129,24,1 +2020-04-13,Smith,Mississippi,28129,28,1 +2020-04-14,Smith,Mississippi,28129,30,1 +2020-04-15,Smith,Mississippi,28129,36,1 +2020-04-16,Smith,Mississippi,28129,37,1 +2020-04-17,Smith,Mississippi,28129,38,1 +2020-04-18,Smith,Mississippi,28129,39,1 +2020-04-19,Smith,Mississippi,28129,45,1 +2020-04-20,Smith,Mississippi,28129,47,2 +2020-04-21,Smith,Mississippi,28129,50,2 +2020-04-22,Smith,Mississippi,28129,51,3 +2020-04-23,Smith,Mississippi,28129,53,3 +2020-04-24,Smith,Mississippi,28129,55,3 +2020-04-25,Smith,Mississippi,28129,58,3 +2020-04-26,Smith,Mississippi,28129,60,4 +2020-04-27,Smith,Mississippi,28129,65,4 +2020-04-28,Smith,Mississippi,28129,66,4 +2020-04-29,Smith,Mississippi,28129,73,4 +2020-04-30,Smith,Mississippi,28129,74,4 +2020-05-01,Smith,Mississippi,28129,76,4 +2020-05-02,Smith,Mississippi,28129,78,4 +2020-05-03,Smith,Mississippi,28129,79,4 +2020-05-04,Smith,Mississippi,28129,81,4 +2020-05-05,Smith,Mississippi,28129,86,4 +2020-05-06,Smith,Mississippi,28129,92,6 +2020-05-07,Smith,Mississippi,28129,95,6 +2020-05-08,Smith,Mississippi,28129,99,6 +2020-05-09,Smith,Mississippi,28129,100,6 +2020-05-10,Smith,Mississippi,28129,100,6 +2020-05-11,Smith,Mississippi,28129,104,6 +2020-05-12,Smith,Mississippi,28129,105,7 +2020-05-13,Smith,Mississippi,28129,107,7 +2020-05-14,Smith,Mississippi,28129,107,7 +2020-05-15,Smith,Mississippi,28129,109,7 +2020-05-16,Smith,Mississippi,28129,111,7 +2020-05-17,Smith,Mississippi,28129,112,7 +2020-05-18,Smith,Mississippi,28129,115,7 +2020-05-19,Smith,Mississippi,28129,120,9 +2020-05-20,Smith,Mississippi,28129,121,10 +2020-05-21,Smith,Mississippi,28129,124,10 +2020-05-22,Smith,Mississippi,28129,127,10 +2020-05-23,Smith,Mississippi,28129,126,10 +2020-05-24,Smith,Mississippi,28129,131,10 +2020-05-25,Smith,Mississippi,28129,131,10 +2020-05-26,Smith,Mississippi,28129,131,10 +2020-05-27,Smith,Mississippi,28129,133,11 +2020-05-28,Smith,Mississippi,28129,145,11 +2020-05-29,Smith,Mississippi,28129,148,11 +2020-05-30,Smith,Mississippi,28129,150,11 +2020-05-31,Smith,Mississippi,28129,152,11 +2020-06-01,Smith,Mississippi,28129,152,11 +2020-06-02,Smith,Mississippi,28129,153,11 +2020-06-03,Smith,Mississippi,28129,153,11 +2020-06-04,Smith,Mississippi,28129,155,11 +2020-06-05,Smith,Mississippi,28129,156,11 +2020-06-06,Smith,Mississippi,28129,164,11 +2020-06-07,Smith,Mississippi,28129,165,11 +2020-06-08,Smith,Mississippi,28129,168,11 +2020-06-09,Smith,Mississippi,28129,172,11 +2020-06-10,Smith,Mississippi,28129,173,11 +2020-06-11,Smith,Mississippi,28129,173,11 +2020-06-12,Smith,Mississippi,28129,173,11 +2020-06-13,Smith,Mississippi,28129,175,11 +2020-06-14,Smith,Mississippi,28129,178,11 +2020-06-15,Smith,Mississippi,28129,180,11 +2020-06-16,Smith,Mississippi,28129,182,11 +2020-06-17,Smith,Mississippi,28129,182,11 +2020-06-18,Smith,Mississippi,28129,182,11 +2020-06-19,Smith,Mississippi,28129,182,11 +2020-06-20,Smith,Mississippi,28129,182,11 +2020-06-21,Smith,Mississippi,28129,182,11 +2020-06-22,Smith,Mississippi,28129,187,11 +2020-06-23,Smith,Mississippi,28129,190,11 +2020-06-24,Smith,Mississippi,28129,192,11 +2020-06-25,Smith,Mississippi,28129,199,11 +2020-06-26,Smith,Mississippi,28129,202,11 +2020-06-27,Smith,Mississippi,28129,204,11 +2020-06-28,Smith,Mississippi,28129,204,11 +2020-06-29,Smith,Mississippi,28129,204,11 +2020-06-30,Smith,Mississippi,28129,204,11 +2020-07-01,Smith,Mississippi,28129,206,11 +2020-07-02,Smith,Mississippi,28129,211,11 +2020-07-03,Smith,Mississippi,28129,216,11 +2020-07-04,Smith,Mississippi,28129,220,11 +2020-07-05,Smith,Mississippi,28129,218,11 +2020-07-06,Smith,Mississippi,28129,218,11 +2020-07-07,Smith,Mississippi,28129,229,11 +2020-07-08,Smith,Mississippi,28129,234,12 +2020-07-09,Smith,Mississippi,28129,234,12 +2020-04-05,Stone,Mississippi,28131,1,0 +2020-04-06,Stone,Mississippi,28131,1,0 +2020-04-07,Stone,Mississippi,28131,3,0 +2020-04-08,Stone,Mississippi,28131,4,0 +2020-04-09,Stone,Mississippi,28131,5,0 +2020-04-10,Stone,Mississippi,28131,5,0 +2020-04-11,Stone,Mississippi,28131,9,0 +2020-04-12,Stone,Mississippi,28131,10,0 +2020-04-13,Stone,Mississippi,28131,11,0 +2020-04-14,Stone,Mississippi,28131,14,0 +2020-04-15,Stone,Mississippi,28131,15,0 +2020-04-16,Stone,Mississippi,28131,16,0 +2020-04-17,Stone,Mississippi,28131,17,0 +2020-04-18,Stone,Mississippi,28131,17,0 +2020-04-19,Stone,Mississippi,28131,18,0 +2020-04-20,Stone,Mississippi,28131,19,0 +2020-04-21,Stone,Mississippi,28131,19,0 +2020-04-22,Stone,Mississippi,28131,21,0 +2020-04-23,Stone,Mississippi,28131,22,0 +2020-04-24,Stone,Mississippi,28131,22,0 +2020-04-25,Stone,Mississippi,28131,22,0 +2020-04-26,Stone,Mississippi,28131,22,0 +2020-04-27,Stone,Mississippi,28131,22,0 +2020-04-28,Stone,Mississippi,28131,22,0 +2020-04-29,Stone,Mississippi,28131,22,0 +2020-04-30,Stone,Mississippi,28131,22,0 +2020-05-01,Stone,Mississippi,28131,22,0 +2020-05-02,Stone,Mississippi,28131,22,0 +2020-05-03,Stone,Mississippi,28131,22,0 +2020-05-04,Stone,Mississippi,28131,22,0 +2020-05-05,Stone,Mississippi,28131,22,0 +2020-05-06,Stone,Mississippi,28131,23,0 +2020-05-07,Stone,Mississippi,28131,23,0 +2020-05-08,Stone,Mississippi,28131,23,0 +2020-05-09,Stone,Mississippi,28131,24,0 +2020-05-10,Stone,Mississippi,28131,24,0 +2020-05-11,Stone,Mississippi,28131,24,0 +2020-05-12,Stone,Mississippi,28131,23,0 +2020-05-13,Stone,Mississippi,28131,23,0 +2020-05-14,Stone,Mississippi,28131,26,0 +2020-05-15,Stone,Mississippi,28131,24,0 +2020-05-16,Stone,Mississippi,28131,24,0 +2020-05-17,Stone,Mississippi,28131,24,0 +2020-05-18,Stone,Mississippi,28131,24,0 +2020-05-19,Stone,Mississippi,28131,24,0 +2020-05-20,Stone,Mississippi,28131,26,0 +2020-05-21,Stone,Mississippi,28131,25,0 +2020-05-22,Stone,Mississippi,28131,27,0 +2020-05-23,Stone,Mississippi,28131,30,0 +2020-05-24,Stone,Mississippi,28131,29,0 +2020-05-25,Stone,Mississippi,28131,30,0 +2020-05-26,Stone,Mississippi,28131,30,0 +2020-05-27,Stone,Mississippi,28131,30,0 +2020-05-28,Stone,Mississippi,28131,30,0 +2020-05-29,Stone,Mississippi,28131,30,0 +2020-05-30,Stone,Mississippi,28131,30,0 +2020-05-31,Stone,Mississippi,28131,30,0 +2020-06-01,Stone,Mississippi,28131,30,0 +2020-06-02,Stone,Mississippi,28131,31,0 +2020-06-03,Stone,Mississippi,28131,32,0 +2020-06-04,Stone,Mississippi,28131,32,0 +2020-06-05,Stone,Mississippi,28131,32,0 +2020-06-06,Stone,Mississippi,28131,32,0 +2020-06-07,Stone,Mississippi,28131,32,0 +2020-06-08,Stone,Mississippi,28131,34,0 +2020-06-09,Stone,Mississippi,28131,33,0 +2020-06-10,Stone,Mississippi,28131,33,0 +2020-06-11,Stone,Mississippi,28131,33,0 +2020-06-12,Stone,Mississippi,28131,34,0 +2020-06-13,Stone,Mississippi,28131,34,0 +2020-06-14,Stone,Mississippi,28131,34,0 +2020-06-15,Stone,Mississippi,28131,35,0 +2020-06-16,Stone,Mississippi,28131,34,0 +2020-06-17,Stone,Mississippi,28131,35,1 +2020-06-18,Stone,Mississippi,28131,35,1 +2020-06-19,Stone,Mississippi,28131,35,1 +2020-06-20,Stone,Mississippi,28131,35,1 +2020-06-21,Stone,Mississippi,28131,35,1 +2020-06-22,Stone,Mississippi,28131,42,1 +2020-06-23,Stone,Mississippi,28131,43,1 +2020-06-24,Stone,Mississippi,28131,44,1 +2020-06-25,Stone,Mississippi,28131,48,1 +2020-06-26,Stone,Mississippi,28131,48,1 +2020-06-27,Stone,Mississippi,28131,49,1 +2020-06-28,Stone,Mississippi,28131,49,1 +2020-06-29,Stone,Mississippi,28131,50,1 +2020-06-30,Stone,Mississippi,28131,51,1 +2020-07-01,Stone,Mississippi,28131,52,1 +2020-07-02,Stone,Mississippi,28131,54,1 +2020-07-03,Stone,Mississippi,28131,57,1 +2020-07-04,Stone,Mississippi,28131,64,1 +2020-07-05,Stone,Mississippi,28131,65,1 +2020-07-06,Stone,Mississippi,28131,65,1 +2020-07-07,Stone,Mississippi,28131,69,2 +2020-07-08,Stone,Mississippi,28131,72,2 +2020-07-09,Stone,Mississippi,28131,73,2 +2020-03-22,Sunflower,Mississippi,28133,2,0 +2020-03-23,Sunflower,Mississippi,28133,2,0 +2020-03-24,Sunflower,Mississippi,28133,3,0 +2020-03-25,Sunflower,Mississippi,28133,3,0 +2020-03-26,Sunflower,Mississippi,28133,4,0 +2020-03-27,Sunflower,Mississippi,28133,5,0 +2020-03-28,Sunflower,Mississippi,28133,7,1 +2020-03-29,Sunflower,Mississippi,28133,10,1 +2020-03-30,Sunflower,Mississippi,28133,11,1 +2020-03-31,Sunflower,Mississippi,28133,11,1 +2020-04-01,Sunflower,Mississippi,28133,12,1 +2020-04-02,Sunflower,Mississippi,28133,12,1 +2020-04-03,Sunflower,Mississippi,28133,13,1 +2020-04-04,Sunflower,Mississippi,28133,18,1 +2020-04-05,Sunflower,Mississippi,28133,19,1 +2020-04-06,Sunflower,Mississippi,28133,19,1 +2020-04-07,Sunflower,Mississippi,28133,25,1 +2020-04-08,Sunflower,Mississippi,28133,27,1 +2020-04-09,Sunflower,Mississippi,28133,32,1 +2020-04-10,Sunflower,Mississippi,28133,34,1 +2020-04-11,Sunflower,Mississippi,28133,35,1 +2020-04-12,Sunflower,Mississippi,28133,35,1 +2020-04-13,Sunflower,Mississippi,28133,38,1 +2020-04-14,Sunflower,Mississippi,28133,41,2 +2020-04-15,Sunflower,Mississippi,28133,42,2 +2020-04-16,Sunflower,Mississippi,28133,43,2 +2020-04-17,Sunflower,Mississippi,28133,45,2 +2020-04-18,Sunflower,Mississippi,28133,46,2 +2020-04-19,Sunflower,Mississippi,28133,47,2 +2020-04-20,Sunflower,Mississippi,28133,47,2 +2020-04-21,Sunflower,Mississippi,28133,48,2 +2020-04-22,Sunflower,Mississippi,28133,50,2 +2020-04-23,Sunflower,Mississippi,28133,51,2 +2020-04-24,Sunflower,Mississippi,28133,51,2 +2020-04-25,Sunflower,Mississippi,28133,51,2 +2020-04-26,Sunflower,Mississippi,28133,51,2 +2020-04-27,Sunflower,Mississippi,28133,52,2 +2020-04-28,Sunflower,Mississippi,28133,52,2 +2020-04-29,Sunflower,Mississippi,28133,53,2 +2020-04-30,Sunflower,Mississippi,28133,53,2 +2020-05-01,Sunflower,Mississippi,28133,55,2 +2020-05-02,Sunflower,Mississippi,28133,55,2 +2020-05-03,Sunflower,Mississippi,28133,56,2 +2020-05-04,Sunflower,Mississippi,28133,57,3 +2020-05-05,Sunflower,Mississippi,28133,60,3 +2020-05-06,Sunflower,Mississippi,28133,61,3 +2020-05-07,Sunflower,Mississippi,28133,61,3 +2020-05-08,Sunflower,Mississippi,28133,63,3 +2020-05-09,Sunflower,Mississippi,28133,63,3 +2020-05-10,Sunflower,Mississippi,28133,63,3 +2020-05-11,Sunflower,Mississippi,28133,63,3 +2020-05-12,Sunflower,Mississippi,28133,64,3 +2020-05-13,Sunflower,Mississippi,28133,64,3 +2020-05-14,Sunflower,Mississippi,28133,65,3 +2020-05-15,Sunflower,Mississippi,28133,69,3 +2020-05-16,Sunflower,Mississippi,28133,69,3 +2020-05-17,Sunflower,Mississippi,28133,68,3 +2020-05-18,Sunflower,Mississippi,28133,68,3 +2020-05-19,Sunflower,Mississippi,28133,68,3 +2020-05-20,Sunflower,Mississippi,28133,70,3 +2020-05-21,Sunflower,Mississippi,28133,71,3 +2020-05-22,Sunflower,Mississippi,28133,73,3 +2020-05-23,Sunflower,Mississippi,28133,77,3 +2020-05-24,Sunflower,Mississippi,28133,77,3 +2020-05-25,Sunflower,Mississippi,28133,79,3 +2020-05-26,Sunflower,Mississippi,28133,78,3 +2020-05-27,Sunflower,Mississippi,28133,78,3 +2020-05-28,Sunflower,Mississippi,28133,78,3 +2020-05-29,Sunflower,Mississippi,28133,79,3 +2020-05-30,Sunflower,Mississippi,28133,81,3 +2020-05-31,Sunflower,Mississippi,28133,84,3 +2020-06-01,Sunflower,Mississippi,28133,85,3 +2020-06-02,Sunflower,Mississippi,28133,85,3 +2020-06-03,Sunflower,Mississippi,28133,93,3 +2020-06-04,Sunflower,Mississippi,28133,92,3 +2020-06-05,Sunflower,Mississippi,28133,96,3 +2020-06-06,Sunflower,Mississippi,28133,95,3 +2020-06-07,Sunflower,Mississippi,28133,97,3 +2020-06-08,Sunflower,Mississippi,28133,103,3 +2020-06-09,Sunflower,Mississippi,28133,105,4 +2020-06-10,Sunflower,Mississippi,28133,109,4 +2020-06-11,Sunflower,Mississippi,28133,109,4 +2020-06-12,Sunflower,Mississippi,28133,113,4 +2020-06-13,Sunflower,Mississippi,28133,117,4 +2020-06-14,Sunflower,Mississippi,28133,118,4 +2020-06-15,Sunflower,Mississippi,28133,121,4 +2020-06-16,Sunflower,Mississippi,28133,127,4 +2020-06-17,Sunflower,Mississippi,28133,128,4 +2020-06-18,Sunflower,Mississippi,28133,128,4 +2020-06-19,Sunflower,Mississippi,28133,128,4 +2020-06-20,Sunflower,Mississippi,28133,128,4 +2020-06-21,Sunflower,Mississippi,28133,128,4 +2020-06-22,Sunflower,Mississippi,28133,155,4 +2020-06-23,Sunflower,Mississippi,28133,172,5 +2020-06-24,Sunflower,Mississippi,28133,189,6 +2020-06-25,Sunflower,Mississippi,28133,209,6 +2020-06-26,Sunflower,Mississippi,28133,221,6 +2020-06-27,Sunflower,Mississippi,28133,232,6 +2020-06-28,Sunflower,Mississippi,28133,238,6 +2020-06-29,Sunflower,Mississippi,28133,247,6 +2020-06-30,Sunflower,Mississippi,28133,280,6 +2020-07-01,Sunflower,Mississippi,28133,306,6 +2020-07-02,Sunflower,Mississippi,28133,321,6 +2020-07-03,Sunflower,Mississippi,28133,346,7 +2020-07-04,Sunflower,Mississippi,28133,373,7 +2020-07-05,Sunflower,Mississippi,28133,372,7 +2020-07-06,Sunflower,Mississippi,28133,400,8 +2020-07-07,Sunflower,Mississippi,28133,420,8 +2020-07-08,Sunflower,Mississippi,28133,436,8 +2020-07-09,Sunflower,Mississippi,28133,452,8 +2020-03-23,Tallahatchie,Mississippi,28135,1,0 +2020-03-24,Tallahatchie,Mississippi,28135,2,0 +2020-03-25,Tallahatchie,Mississippi,28135,2,0 +2020-03-26,Tallahatchie,Mississippi,28135,2,0 +2020-03-27,Tallahatchie,Mississippi,28135,2,0 +2020-03-28,Tallahatchie,Mississippi,28135,2,0 +2020-03-29,Tallahatchie,Mississippi,28135,2,0 +2020-03-30,Tallahatchie,Mississippi,28135,2,0 +2020-03-31,Tallahatchie,Mississippi,28135,2,0 +2020-04-01,Tallahatchie,Mississippi,28135,2,0 +2020-04-02,Tallahatchie,Mississippi,28135,2,0 +2020-04-03,Tallahatchie,Mississippi,28135,2,0 +2020-04-04,Tallahatchie,Mississippi,28135,2,0 +2020-04-05,Tallahatchie,Mississippi,28135,3,0 +2020-04-06,Tallahatchie,Mississippi,28135,3,0 +2020-04-07,Tallahatchie,Mississippi,28135,3,0 +2020-04-08,Tallahatchie,Mississippi,28135,3,0 +2020-04-09,Tallahatchie,Mississippi,28135,3,0 +2020-04-10,Tallahatchie,Mississippi,28135,3,0 +2020-04-11,Tallahatchie,Mississippi,28135,3,0 +2020-04-12,Tallahatchie,Mississippi,28135,3,0 +2020-04-13,Tallahatchie,Mississippi,28135,4,0 +2020-04-14,Tallahatchie,Mississippi,28135,4,0 +2020-04-15,Tallahatchie,Mississippi,28135,6,0 +2020-04-16,Tallahatchie,Mississippi,28135,7,0 +2020-04-17,Tallahatchie,Mississippi,28135,8,1 +2020-04-18,Tallahatchie,Mississippi,28135,8,1 +2020-04-19,Tallahatchie,Mississippi,28135,8,1 +2020-04-20,Tallahatchie,Mississippi,28135,8,1 +2020-04-21,Tallahatchie,Mississippi,28135,8,1 +2020-04-22,Tallahatchie,Mississippi,28135,9,1 +2020-04-23,Tallahatchie,Mississippi,28135,9,1 +2020-04-24,Tallahatchie,Mississippi,28135,11,1 +2020-04-25,Tallahatchie,Mississippi,28135,11,1 +2020-04-26,Tallahatchie,Mississippi,28135,11,1 +2020-04-27,Tallahatchie,Mississippi,28135,11,1 +2020-04-28,Tallahatchie,Mississippi,28135,11,1 +2020-04-29,Tallahatchie,Mississippi,28135,11,1 +2020-04-30,Tallahatchie,Mississippi,28135,11,1 +2020-05-01,Tallahatchie,Mississippi,28135,11,1 +2020-05-02,Tallahatchie,Mississippi,28135,12,1 +2020-05-03,Tallahatchie,Mississippi,28135,12,1 +2020-05-04,Tallahatchie,Mississippi,28135,12,1 +2020-05-05,Tallahatchie,Mississippi,28135,12,1 +2020-05-06,Tallahatchie,Mississippi,28135,12,1 +2020-05-07,Tallahatchie,Mississippi,28135,12,1 +2020-05-08,Tallahatchie,Mississippi,28135,12,1 +2020-05-09,Tallahatchie,Mississippi,28135,12,1 +2020-05-10,Tallahatchie,Mississippi,28135,12,1 +2020-05-11,Tallahatchie,Mississippi,28135,12,1 +2020-05-12,Tallahatchie,Mississippi,28135,13,1 +2020-05-13,Tallahatchie,Mississippi,28135,14,1 +2020-05-14,Tallahatchie,Mississippi,28135,15,1 +2020-05-15,Tallahatchie,Mississippi,28135,18,1 +2020-05-16,Tallahatchie,Mississippi,28135,18,1 +2020-05-17,Tallahatchie,Mississippi,28135,19,1 +2020-05-18,Tallahatchie,Mississippi,28135,21,1 +2020-05-19,Tallahatchie,Mississippi,28135,21,1 +2020-05-20,Tallahatchie,Mississippi,28135,21,1 +2020-05-21,Tallahatchie,Mississippi,28135,23,1 +2020-05-22,Tallahatchie,Mississippi,28135,23,1 +2020-05-23,Tallahatchie,Mississippi,28135,23,1 +2020-05-24,Tallahatchie,Mississippi,28135,24,1 +2020-05-25,Tallahatchie,Mississippi,28135,24,1 +2020-05-26,Tallahatchie,Mississippi,28135,24,1 +2020-05-27,Tallahatchie,Mississippi,28135,25,1 +2020-05-28,Tallahatchie,Mississippi,28135,26,1 +2020-05-29,Tallahatchie,Mississippi,28135,26,1 +2020-05-30,Tallahatchie,Mississippi,28135,27,1 +2020-05-31,Tallahatchie,Mississippi,28135,27,1 +2020-06-01,Tallahatchie,Mississippi,28135,27,1 +2020-06-02,Tallahatchie,Mississippi,28135,29,1 +2020-06-03,Tallahatchie,Mississippi,28135,30,1 +2020-06-04,Tallahatchie,Mississippi,28135,30,1 +2020-06-05,Tallahatchie,Mississippi,28135,31,1 +2020-06-06,Tallahatchie,Mississippi,28135,31,1 +2020-06-07,Tallahatchie,Mississippi,28135,32,1 +2020-06-08,Tallahatchie,Mississippi,28135,35,1 +2020-06-09,Tallahatchie,Mississippi,28135,35,1 +2020-06-10,Tallahatchie,Mississippi,28135,35,1 +2020-06-11,Tallahatchie,Mississippi,28135,35,1 +2020-06-12,Tallahatchie,Mississippi,28135,39,1 +2020-06-13,Tallahatchie,Mississippi,28135,40,1 +2020-06-14,Tallahatchie,Mississippi,28135,42,1 +2020-06-15,Tallahatchie,Mississippi,28135,43,1 +2020-06-16,Tallahatchie,Mississippi,28135,45,1 +2020-06-17,Tallahatchie,Mississippi,28135,49,1 +2020-06-18,Tallahatchie,Mississippi,28135,49,1 +2020-06-19,Tallahatchie,Mississippi,28135,49,1 +2020-06-20,Tallahatchie,Mississippi,28135,49,1 +2020-06-21,Tallahatchie,Mississippi,28135,49,1 +2020-06-22,Tallahatchie,Mississippi,28135,64,1 +2020-06-23,Tallahatchie,Mississippi,28135,68,1 +2020-06-24,Tallahatchie,Mississippi,28135,72,1 +2020-06-25,Tallahatchie,Mississippi,28135,85,1 +2020-06-26,Tallahatchie,Mississippi,28135,88,1 +2020-06-27,Tallahatchie,Mississippi,28135,91,1 +2020-06-28,Tallahatchie,Mississippi,28135,93,2 +2020-06-29,Tallahatchie,Mississippi,28135,93,3 +2020-06-30,Tallahatchie,Mississippi,28135,94,3 +2020-07-01,Tallahatchie,Mississippi,28135,104,3 +2020-07-02,Tallahatchie,Mississippi,28135,115,3 +2020-07-03,Tallahatchie,Mississippi,28135,122,4 +2020-07-04,Tallahatchie,Mississippi,28135,136,4 +2020-07-05,Tallahatchie,Mississippi,28135,136,4 +2020-07-06,Tallahatchie,Mississippi,28135,137,4 +2020-07-07,Tallahatchie,Mississippi,28135,145,4 +2020-07-08,Tallahatchie,Mississippi,28135,156,4 +2020-07-09,Tallahatchie,Mississippi,28135,166,4 +2020-03-22,Tate,Mississippi,28137,1,0 +2020-03-23,Tate,Mississippi,28137,1,0 +2020-03-24,Tate,Mississippi,28137,1,0 +2020-03-25,Tate,Mississippi,28137,2,0 +2020-03-26,Tate,Mississippi,28137,6,0 +2020-03-27,Tate,Mississippi,28137,8,0 +2020-03-28,Tate,Mississippi,28137,8,0 +2020-03-29,Tate,Mississippi,28137,9,0 +2020-03-30,Tate,Mississippi,28137,11,0 +2020-03-31,Tate,Mississippi,28137,11,0 +2020-04-01,Tate,Mississippi,28137,11,0 +2020-04-02,Tate,Mississippi,28137,12,0 +2020-04-03,Tate,Mississippi,28137,13,0 +2020-04-04,Tate,Mississippi,28137,14,0 +2020-04-05,Tate,Mississippi,28137,15,0 +2020-04-06,Tate,Mississippi,28137,16,0 +2020-04-07,Tate,Mississippi,28137,18,0 +2020-04-08,Tate,Mississippi,28137,18,0 +2020-04-09,Tate,Mississippi,28137,19,0 +2020-04-10,Tate,Mississippi,28137,22,0 +2020-04-11,Tate,Mississippi,28137,23,0 +2020-04-12,Tate,Mississippi,28137,24,0 +2020-04-13,Tate,Mississippi,28137,24,0 +2020-04-14,Tate,Mississippi,28137,25,0 +2020-04-15,Tate,Mississippi,28137,26,0 +2020-04-16,Tate,Mississippi,28137,27,0 +2020-04-17,Tate,Mississippi,28137,27,0 +2020-04-18,Tate,Mississippi,28137,29,0 +2020-04-19,Tate,Mississippi,28137,31,0 +2020-04-20,Tate,Mississippi,28137,34,0 +2020-04-21,Tate,Mississippi,28137,34,0 +2020-04-22,Tate,Mississippi,28137,35,0 +2020-04-23,Tate,Mississippi,28137,35,0 +2020-04-24,Tate,Mississippi,28137,38,0 +2020-04-25,Tate,Mississippi,28137,38,0 +2020-04-26,Tate,Mississippi,28137,38,0 +2020-04-27,Tate,Mississippi,28137,38,0 +2020-04-28,Tate,Mississippi,28137,39,0 +2020-04-29,Tate,Mississippi,28137,41,0 +2020-04-30,Tate,Mississippi,28137,41,0 +2020-05-01,Tate,Mississippi,28137,42,0 +2020-05-02,Tate,Mississippi,28137,41,0 +2020-05-03,Tate,Mississippi,28137,43,0 +2020-05-04,Tate,Mississippi,28137,45,0 +2020-05-05,Tate,Mississippi,28137,45,0 +2020-05-06,Tate,Mississippi,28137,45,0 +2020-05-07,Tate,Mississippi,28137,48,0 +2020-05-08,Tate,Mississippi,28137,49,0 +2020-05-09,Tate,Mississippi,28137,50,0 +2020-05-10,Tate,Mississippi,28137,50,0 +2020-05-11,Tate,Mississippi,28137,52,0 +2020-05-12,Tate,Mississippi,28137,54,0 +2020-05-13,Tate,Mississippi,28137,54,0 +2020-05-14,Tate,Mississippi,28137,55,0 +2020-05-15,Tate,Mississippi,28137,55,0 +2020-05-16,Tate,Mississippi,28137,56,0 +2020-05-17,Tate,Mississippi,28137,57,0 +2020-05-18,Tate,Mississippi,28137,55,0 +2020-05-19,Tate,Mississippi,28137,55,1 +2020-05-20,Tate,Mississippi,28137,56,1 +2020-05-21,Tate,Mississippi,28137,58,1 +2020-05-22,Tate,Mississippi,28137,59,1 +2020-05-23,Tate,Mississippi,28137,58,1 +2020-05-24,Tate,Mississippi,28137,59,1 +2020-05-25,Tate,Mississippi,28137,59,1 +2020-05-26,Tate,Mississippi,28137,66,1 +2020-05-27,Tate,Mississippi,28137,69,1 +2020-05-28,Tate,Mississippi,28137,74,1 +2020-05-29,Tate,Mississippi,28137,81,1 +2020-05-30,Tate,Mississippi,28137,89,1 +2020-05-31,Tate,Mississippi,28137,94,1 +2020-06-01,Tate,Mississippi,28137,95,1 +2020-06-02,Tate,Mississippi,28137,89,1 +2020-06-03,Tate,Mississippi,28137,88,1 +2020-06-04,Tate,Mississippi,28137,91,1 +2020-06-05,Tate,Mississippi,28137,93,1 +2020-06-06,Tate,Mississippi,28137,95,1 +2020-06-07,Tate,Mississippi,28137,96,1 +2020-06-08,Tate,Mississippi,28137,103,1 +2020-06-09,Tate,Mississippi,28137,112,1 +2020-06-10,Tate,Mississippi,28137,118,1 +2020-06-11,Tate,Mississippi,28137,118,1 +2020-06-12,Tate,Mississippi,28137,123,1 +2020-06-13,Tate,Mississippi,28137,128,1 +2020-06-14,Tate,Mississippi,28137,128,1 +2020-06-15,Tate,Mississippi,28137,134,1 +2020-06-16,Tate,Mississippi,28137,135,1 +2020-06-17,Tate,Mississippi,28137,155,1 +2020-06-18,Tate,Mississippi,28137,155,1 +2020-06-19,Tate,Mississippi,28137,155,1 +2020-06-20,Tate,Mississippi,28137,155,1 +2020-06-21,Tate,Mississippi,28137,155,1 +2020-06-22,Tate,Mississippi,28137,182,2 +2020-06-23,Tate,Mississippi,28137,192,4 +2020-06-24,Tate,Mississippi,28137,211,5 +2020-06-25,Tate,Mississippi,28137,221,5 +2020-06-26,Tate,Mississippi,28137,230,5 +2020-06-27,Tate,Mississippi,28137,233,6 +2020-06-28,Tate,Mississippi,28137,234,6 +2020-06-29,Tate,Mississippi,28137,242,6 +2020-06-30,Tate,Mississippi,28137,245,7 +2020-07-01,Tate,Mississippi,28137,257,7 +2020-07-02,Tate,Mississippi,28137,264,8 +2020-07-03,Tate,Mississippi,28137,270,9 +2020-07-04,Tate,Mississippi,28137,278,10 +2020-07-05,Tate,Mississippi,28137,283,10 +2020-07-06,Tate,Mississippi,28137,288,10 +2020-07-07,Tate,Mississippi,28137,310,11 +2020-07-08,Tate,Mississippi,28137,319,12 +2020-07-09,Tate,Mississippi,28137,323,13 +2020-03-20,Tippah,Mississippi,28139,3,0 +2020-03-21,Tippah,Mississippi,28139,3,0 +2020-03-22,Tippah,Mississippi,28139,7,0 +2020-03-23,Tippah,Mississippi,28139,9,0 +2020-03-24,Tippah,Mississippi,28139,11,0 +2020-03-25,Tippah,Mississippi,28139,11,0 +2020-03-26,Tippah,Mississippi,28139,14,0 +2020-03-27,Tippah,Mississippi,28139,15,1 +2020-03-28,Tippah,Mississippi,28139,18,2 +2020-03-29,Tippah,Mississippi,28139,23,2 +2020-03-30,Tippah,Mississippi,28139,23,2 +2020-03-31,Tippah,Mississippi,28139,26,2 +2020-04-01,Tippah,Mississippi,28139,28,2 +2020-04-02,Tippah,Mississippi,28139,29,2 +2020-04-03,Tippah,Mississippi,28139,30,3 +2020-04-04,Tippah,Mississippi,28139,31,3 +2020-04-05,Tippah,Mississippi,28139,35,3 +2020-04-06,Tippah,Mississippi,28139,36,3 +2020-04-07,Tippah,Mississippi,28139,36,3 +2020-04-08,Tippah,Mississippi,28139,37,4 +2020-04-09,Tippah,Mississippi,28139,41,6 +2020-04-10,Tippah,Mississippi,28139,42,6 +2020-04-11,Tippah,Mississippi,28139,43,6 +2020-04-12,Tippah,Mississippi,28139,43,6 +2020-04-13,Tippah,Mississippi,28139,44,6 +2020-04-14,Tippah,Mississippi,28139,45,6 +2020-04-15,Tippah,Mississippi,28139,45,6 +2020-04-16,Tippah,Mississippi,28139,45,6 +2020-04-17,Tippah,Mississippi,28139,45,6 +2020-04-18,Tippah,Mississippi,28139,46,7 +2020-04-19,Tippah,Mississippi,28139,47,7 +2020-04-20,Tippah,Mississippi,28139,47,7 +2020-04-21,Tippah,Mississippi,28139,49,7 +2020-04-22,Tippah,Mississippi,28139,49,7 +2020-04-23,Tippah,Mississippi,28139,49,7 +2020-04-24,Tippah,Mississippi,28139,50,7 +2020-04-25,Tippah,Mississippi,28139,51,7 +2020-04-26,Tippah,Mississippi,28139,52,7 +2020-04-27,Tippah,Mississippi,28139,52,7 +2020-04-28,Tippah,Mississippi,28139,53,7 +2020-04-29,Tippah,Mississippi,28139,53,7 +2020-04-30,Tippah,Mississippi,28139,54,7 +2020-05-01,Tippah,Mississippi,28139,56,10 +2020-05-02,Tippah,Mississippi,28139,56,10 +2020-05-03,Tippah,Mississippi,28139,57,10 +2020-05-04,Tippah,Mississippi,28139,58,10 +2020-05-05,Tippah,Mississippi,28139,58,10 +2020-05-06,Tippah,Mississippi,28139,61,10 +2020-05-07,Tippah,Mississippi,28139,61,10 +2020-05-08,Tippah,Mississippi,28139,63,10 +2020-05-09,Tippah,Mississippi,28139,65,11 +2020-05-10,Tippah,Mississippi,28139,65,11 +2020-05-11,Tippah,Mississippi,28139,66,11 +2020-05-12,Tippah,Mississippi,28139,66,11 +2020-05-13,Tippah,Mississippi,28139,66,11 +2020-05-14,Tippah,Mississippi,28139,66,11 +2020-05-15,Tippah,Mississippi,28139,67,11 +2020-05-16,Tippah,Mississippi,28139,69,11 +2020-05-17,Tippah,Mississippi,28139,69,11 +2020-05-18,Tippah,Mississippi,28139,69,11 +2020-05-19,Tippah,Mississippi,28139,69,11 +2020-05-20,Tippah,Mississippi,28139,69,11 +2020-05-21,Tippah,Mississippi,28139,69,11 +2020-05-22,Tippah,Mississippi,28139,69,11 +2020-05-23,Tippah,Mississippi,28139,69,11 +2020-05-24,Tippah,Mississippi,28139,70,11 +2020-05-25,Tippah,Mississippi,28139,70,11 +2020-05-26,Tippah,Mississippi,28139,71,11 +2020-05-27,Tippah,Mississippi,28139,71,11 +2020-05-28,Tippah,Mississippi,28139,71,11 +2020-05-29,Tippah,Mississippi,28139,71,11 +2020-05-30,Tippah,Mississippi,28139,73,11 +2020-05-31,Tippah,Mississippi,28139,73,11 +2020-06-01,Tippah,Mississippi,28139,73,11 +2020-06-02,Tippah,Mississippi,28139,76,11 +2020-06-03,Tippah,Mississippi,28139,76,11 +2020-06-04,Tippah,Mississippi,28139,76,11 +2020-06-05,Tippah,Mississippi,28139,76,11 +2020-06-06,Tippah,Mississippi,28139,79,11 +2020-06-07,Tippah,Mississippi,28139,80,11 +2020-06-08,Tippah,Mississippi,28139,84,11 +2020-06-09,Tippah,Mississippi,28139,87,11 +2020-06-10,Tippah,Mississippi,28139,90,11 +2020-06-11,Tippah,Mississippi,28139,90,11 +2020-06-12,Tippah,Mississippi,28139,92,11 +2020-06-13,Tippah,Mississippi,28139,93,11 +2020-06-14,Tippah,Mississippi,28139,93,11 +2020-06-15,Tippah,Mississippi,28139,94,11 +2020-06-16,Tippah,Mississippi,28139,95,11 +2020-06-17,Tippah,Mississippi,28139,100,11 +2020-06-18,Tippah,Mississippi,28139,100,11 +2020-06-19,Tippah,Mississippi,28139,100,11 +2020-06-20,Tippah,Mississippi,28139,100,11 +2020-06-21,Tippah,Mississippi,28139,100,11 +2020-06-22,Tippah,Mississippi,28139,106,11 +2020-06-23,Tippah,Mississippi,28139,107,11 +2020-06-24,Tippah,Mississippi,28139,109,11 +2020-06-25,Tippah,Mississippi,28139,115,11 +2020-06-26,Tippah,Mississippi,28139,116,11 +2020-06-27,Tippah,Mississippi,28139,116,11 +2020-06-28,Tippah,Mississippi,28139,116,11 +2020-06-29,Tippah,Mississippi,28139,119,11 +2020-06-30,Tippah,Mississippi,28139,121,11 +2020-07-01,Tippah,Mississippi,28139,123,11 +2020-07-02,Tippah,Mississippi,28139,127,11 +2020-07-03,Tippah,Mississippi,28139,128,11 +2020-07-04,Tippah,Mississippi,28139,130,11 +2020-07-05,Tippah,Mississippi,28139,130,11 +2020-07-06,Tippah,Mississippi,28139,131,11 +2020-07-07,Tippah,Mississippi,28139,138,11 +2020-07-08,Tippah,Mississippi,28139,142,11 +2020-07-09,Tippah,Mississippi,28139,144,11 +2020-03-31,Tishomingo,Mississippi,28141,1,0 +2020-04-01,Tishomingo,Mississippi,28141,1,0 +2020-04-02,Tishomingo,Mississippi,28141,1,0 +2020-04-03,Tishomingo,Mississippi,28141,1,0 +2020-04-04,Tishomingo,Mississippi,28141,1,0 +2020-04-05,Tishomingo,Mississippi,28141,1,0 +2020-04-06,Tishomingo,Mississippi,28141,1,0 +2020-04-07,Tishomingo,Mississippi,28141,1,0 +2020-04-08,Tishomingo,Mississippi,28141,1,0 +2020-04-09,Tishomingo,Mississippi,28141,2,0 +2020-04-10,Tishomingo,Mississippi,28141,2,0 +2020-04-11,Tishomingo,Mississippi,28141,2,0 +2020-04-12,Tishomingo,Mississippi,28141,2,0 +2020-04-13,Tishomingo,Mississippi,28141,2,0 +2020-04-14,Tishomingo,Mississippi,28141,2,0 +2020-04-15,Tishomingo,Mississippi,28141,2,0 +2020-04-16,Tishomingo,Mississippi,28141,2,0 +2020-04-17,Tishomingo,Mississippi,28141,2,0 +2020-04-18,Tishomingo,Mississippi,28141,3,0 +2020-04-19,Tishomingo,Mississippi,28141,4,0 +2020-04-20,Tishomingo,Mississippi,28141,4,0 +2020-04-21,Tishomingo,Mississippi,28141,4,0 +2020-04-22,Tishomingo,Mississippi,28141,5,0 +2020-04-23,Tishomingo,Mississippi,28141,5,0 +2020-04-24,Tishomingo,Mississippi,28141,7,0 +2020-04-25,Tishomingo,Mississippi,28141,7,0 +2020-04-26,Tishomingo,Mississippi,28141,7,0 +2020-04-27,Tishomingo,Mississippi,28141,8,0 +2020-04-28,Tishomingo,Mississippi,28141,7,0 +2020-04-29,Tishomingo,Mississippi,28141,7,0 +2020-04-30,Tishomingo,Mississippi,28141,7,0 +2020-05-01,Tishomingo,Mississippi,28141,7,0 +2020-05-02,Tishomingo,Mississippi,28141,8,0 +2020-05-03,Tishomingo,Mississippi,28141,8,0 +2020-05-04,Tishomingo,Mississippi,28141,8,0 +2020-05-05,Tishomingo,Mississippi,28141,8,0 +2020-05-06,Tishomingo,Mississippi,28141,8,0 +2020-05-07,Tishomingo,Mississippi,28141,8,0 +2020-05-08,Tishomingo,Mississippi,28141,9,0 +2020-05-09,Tishomingo,Mississippi,28141,10,0 +2020-05-10,Tishomingo,Mississippi,28141,10,0 +2020-05-11,Tishomingo,Mississippi,28141,10,0 +2020-05-12,Tishomingo,Mississippi,28141,10,0 +2020-05-13,Tishomingo,Mississippi,28141,10,0 +2020-05-14,Tishomingo,Mississippi,28141,11,0 +2020-05-15,Tishomingo,Mississippi,28141,13,0 +2020-05-16,Tishomingo,Mississippi,28141,14,0 +2020-05-17,Tishomingo,Mississippi,28141,14,0 +2020-05-18,Tishomingo,Mississippi,28141,14,0 +2020-05-19,Tishomingo,Mississippi,28141,21,0 +2020-05-20,Tishomingo,Mississippi,28141,21,0 +2020-05-21,Tishomingo,Mississippi,28141,21,0 +2020-05-22,Tishomingo,Mississippi,28141,22,0 +2020-05-23,Tishomingo,Mississippi,28141,23,0 +2020-05-24,Tishomingo,Mississippi,28141,25,0 +2020-05-25,Tishomingo,Mississippi,28141,25,0 +2020-05-26,Tishomingo,Mississippi,28141,26,0 +2020-05-27,Tishomingo,Mississippi,28141,26,0 +2020-05-28,Tishomingo,Mississippi,28141,28,0 +2020-05-29,Tishomingo,Mississippi,28141,30,0 +2020-05-30,Tishomingo,Mississippi,28141,32,0 +2020-05-31,Tishomingo,Mississippi,28141,32,0 +2020-06-01,Tishomingo,Mississippi,28141,32,0 +2020-06-02,Tishomingo,Mississippi,28141,34,0 +2020-06-03,Tishomingo,Mississippi,28141,35,0 +2020-06-04,Tishomingo,Mississippi,28141,36,0 +2020-06-05,Tishomingo,Mississippi,28141,36,0 +2020-06-06,Tishomingo,Mississippi,28141,37,0 +2020-06-07,Tishomingo,Mississippi,28141,37,0 +2020-06-08,Tishomingo,Mississippi,28141,41,0 +2020-06-09,Tishomingo,Mississippi,28141,42,0 +2020-06-10,Tishomingo,Mississippi,28141,43,0 +2020-06-11,Tishomingo,Mississippi,28141,43,0 +2020-06-12,Tishomingo,Mississippi,28141,44,0 +2020-06-13,Tishomingo,Mississippi,28141,46,0 +2020-06-14,Tishomingo,Mississippi,28141,47,0 +2020-06-15,Tishomingo,Mississippi,28141,47,0 +2020-06-16,Tishomingo,Mississippi,28141,47,0 +2020-06-17,Tishomingo,Mississippi,28141,47,1 +2020-06-18,Tishomingo,Mississippi,28141,47,1 +2020-06-19,Tishomingo,Mississippi,28141,47,1 +2020-06-20,Tishomingo,Mississippi,28141,47,1 +2020-06-21,Tishomingo,Mississippi,28141,47,1 +2020-06-22,Tishomingo,Mississippi,28141,52,1 +2020-06-23,Tishomingo,Mississippi,28141,55,1 +2020-06-24,Tishomingo,Mississippi,28141,55,1 +2020-06-25,Tishomingo,Mississippi,28141,58,1 +2020-06-26,Tishomingo,Mississippi,28141,60,1 +2020-06-27,Tishomingo,Mississippi,28141,60,1 +2020-06-28,Tishomingo,Mississippi,28141,60,1 +2020-06-29,Tishomingo,Mississippi,28141,61,1 +2020-06-30,Tishomingo,Mississippi,28141,65,1 +2020-07-01,Tishomingo,Mississippi,28141,68,1 +2020-07-02,Tishomingo,Mississippi,28141,73,1 +2020-07-03,Tishomingo,Mississippi,28141,74,1 +2020-07-04,Tishomingo,Mississippi,28141,78,1 +2020-07-05,Tishomingo,Mississippi,28141,80,1 +2020-07-06,Tishomingo,Mississippi,28141,83,1 +2020-07-07,Tishomingo,Mississippi,28141,89,1 +2020-07-08,Tishomingo,Mississippi,28141,91,1 +2020-07-09,Tishomingo,Mississippi,28141,92,1 +2020-03-21,Tunica,Mississippi,28143,1,0 +2020-03-22,Tunica,Mississippi,28143,2,0 +2020-03-23,Tunica,Mississippi,28143,2,0 +2020-03-24,Tunica,Mississippi,28143,3,0 +2020-03-25,Tunica,Mississippi,28143,3,1 +2020-03-26,Tunica,Mississippi,28143,5,1 +2020-03-27,Tunica,Mississippi,28143,6,1 +2020-03-28,Tunica,Mississippi,28143,6,1 +2020-03-29,Tunica,Mississippi,28143,6,1 +2020-03-30,Tunica,Mississippi,28143,12,1 +2020-03-31,Tunica,Mississippi,28143,12,1 +2020-04-01,Tunica,Mississippi,28143,13,1 +2020-04-02,Tunica,Mississippi,28143,14,1 +2020-04-03,Tunica,Mississippi,28143,14,1 +2020-04-04,Tunica,Mississippi,28143,15,1 +2020-04-05,Tunica,Mississippi,28143,17,1 +2020-04-06,Tunica,Mississippi,28143,18,1 +2020-04-07,Tunica,Mississippi,28143,17,1 +2020-04-08,Tunica,Mississippi,28143,17,1 +2020-04-09,Tunica,Mississippi,28143,17,1 +2020-04-10,Tunica,Mississippi,28143,18,1 +2020-04-11,Tunica,Mississippi,28143,19,1 +2020-04-12,Tunica,Mississippi,28143,21,1 +2020-04-13,Tunica,Mississippi,28143,21,1 +2020-04-14,Tunica,Mississippi,28143,23,1 +2020-04-15,Tunica,Mississippi,28143,23,1 +2020-04-16,Tunica,Mississippi,28143,26,1 +2020-04-17,Tunica,Mississippi,28143,28,1 +2020-04-18,Tunica,Mississippi,28143,30,1 +2020-04-19,Tunica,Mississippi,28143,31,1 +2020-04-20,Tunica,Mississippi,28143,32,1 +2020-04-21,Tunica,Mississippi,28143,33,1 +2020-04-22,Tunica,Mississippi,28143,34,1 +2020-04-23,Tunica,Mississippi,28143,34,1 +2020-04-24,Tunica,Mississippi,28143,34,1 +2020-04-25,Tunica,Mississippi,28143,34,1 +2020-04-26,Tunica,Mississippi,28143,35,1 +2020-04-27,Tunica,Mississippi,28143,35,1 +2020-04-28,Tunica,Mississippi,28143,35,1 +2020-04-29,Tunica,Mississippi,28143,35,1 +2020-04-30,Tunica,Mississippi,28143,35,1 +2020-05-01,Tunica,Mississippi,28143,35,2 +2020-05-02,Tunica,Mississippi,28143,35,2 +2020-05-03,Tunica,Mississippi,28143,36,2 +2020-05-04,Tunica,Mississippi,28143,36,2 +2020-05-05,Tunica,Mississippi,28143,36,2 +2020-05-06,Tunica,Mississippi,28143,37,2 +2020-05-07,Tunica,Mississippi,28143,39,2 +2020-05-08,Tunica,Mississippi,28143,38,2 +2020-05-09,Tunica,Mississippi,28143,38,2 +2020-05-10,Tunica,Mississippi,28143,38,2 +2020-05-11,Tunica,Mississippi,28143,39,2 +2020-05-12,Tunica,Mississippi,28143,40,2 +2020-05-13,Tunica,Mississippi,28143,40,2 +2020-05-14,Tunica,Mississippi,28143,40,2 +2020-05-15,Tunica,Mississippi,28143,44,2 +2020-05-16,Tunica,Mississippi,28143,44,2 +2020-05-17,Tunica,Mississippi,28143,44,2 +2020-05-18,Tunica,Mississippi,28143,44,2 +2020-05-19,Tunica,Mississippi,28143,45,2 +2020-05-20,Tunica,Mississippi,28143,45,2 +2020-05-21,Tunica,Mississippi,28143,45,2 +2020-05-22,Tunica,Mississippi,28143,47,2 +2020-05-23,Tunica,Mississippi,28143,48,2 +2020-05-24,Tunica,Mississippi,28143,48,3 +2020-05-25,Tunica,Mississippi,28143,48,3 +2020-05-26,Tunica,Mississippi,28143,50,3 +2020-05-27,Tunica,Mississippi,28143,52,3 +2020-05-28,Tunica,Mississippi,28143,53,3 +2020-05-29,Tunica,Mississippi,28143,53,3 +2020-05-30,Tunica,Mississippi,28143,54,3 +2020-05-31,Tunica,Mississippi,28143,55,3 +2020-06-01,Tunica,Mississippi,28143,55,3 +2020-06-02,Tunica,Mississippi,28143,56,3 +2020-06-03,Tunica,Mississippi,28143,56,3 +2020-06-04,Tunica,Mississippi,28143,58,3 +2020-06-05,Tunica,Mississippi,28143,58,3 +2020-06-06,Tunica,Mississippi,28143,57,3 +2020-06-07,Tunica,Mississippi,28143,58,3 +2020-06-08,Tunica,Mississippi,28143,58,3 +2020-06-09,Tunica,Mississippi,28143,60,3 +2020-06-10,Tunica,Mississippi,28143,61,3 +2020-06-11,Tunica,Mississippi,28143,61,3 +2020-06-12,Tunica,Mississippi,28143,62,3 +2020-06-13,Tunica,Mississippi,28143,64,3 +2020-06-14,Tunica,Mississippi,28143,64,3 +2020-06-15,Tunica,Mississippi,28143,66,3 +2020-06-16,Tunica,Mississippi,28143,67,3 +2020-06-17,Tunica,Mississippi,28143,67,3 +2020-06-18,Tunica,Mississippi,28143,67,3 +2020-06-19,Tunica,Mississippi,28143,67,3 +2020-06-20,Tunica,Mississippi,28143,67,3 +2020-06-21,Tunica,Mississippi,28143,67,3 +2020-06-22,Tunica,Mississippi,28143,76,3 +2020-06-23,Tunica,Mississippi,28143,77,3 +2020-06-24,Tunica,Mississippi,28143,78,3 +2020-06-25,Tunica,Mississippi,28143,81,3 +2020-06-26,Tunica,Mississippi,28143,81,3 +2020-06-27,Tunica,Mississippi,28143,82,3 +2020-06-28,Tunica,Mississippi,28143,82,3 +2020-06-29,Tunica,Mississippi,28143,88,3 +2020-06-30,Tunica,Mississippi,28143,89,3 +2020-07-01,Tunica,Mississippi,28143,89,3 +2020-07-02,Tunica,Mississippi,28143,90,3 +2020-07-03,Tunica,Mississippi,28143,93,3 +2020-07-04,Tunica,Mississippi,28143,100,3 +2020-07-05,Tunica,Mississippi,28143,100,3 +2020-07-06,Tunica,Mississippi,28143,105,3 +2020-07-07,Tunica,Mississippi,28143,113,3 +2020-07-08,Tunica,Mississippi,28143,115,3 +2020-07-09,Tunica,Mississippi,28143,119,3 +2020-03-21,Union,Mississippi,28145,1,0 +2020-03-22,Union,Mississippi,28145,1,0 +2020-03-23,Union,Mississippi,28145,1,0 +2020-03-24,Union,Mississippi,28145,1,0 +2020-03-25,Union,Mississippi,28145,2,0 +2020-03-26,Union,Mississippi,28145,2,0 +2020-03-27,Union,Mississippi,28145,3,0 +2020-03-28,Union,Mississippi,28145,3,0 +2020-03-29,Union,Mississippi,28145,3,0 +2020-03-30,Union,Mississippi,28145,3,0 +2020-03-31,Union,Mississippi,28145,3,0 +2020-04-01,Union,Mississippi,28145,3,0 +2020-04-02,Union,Mississippi,28145,4,0 +2020-04-03,Union,Mississippi,28145,5,0 +2020-04-04,Union,Mississippi,28145,6,0 +2020-04-05,Union,Mississippi,28145,6,0 +2020-04-06,Union,Mississippi,28145,6,0 +2020-04-07,Union,Mississippi,28145,6,0 +2020-04-08,Union,Mississippi,28145,6,0 +2020-04-09,Union,Mississippi,28145,6,0 +2020-04-10,Union,Mississippi,28145,7,0 +2020-04-11,Union,Mississippi,28145,7,1 +2020-04-12,Union,Mississippi,28145,7,1 +2020-04-13,Union,Mississippi,28145,7,1 +2020-04-14,Union,Mississippi,28145,8,1 +2020-04-15,Union,Mississippi,28145,9,1 +2020-04-16,Union,Mississippi,28145,9,1 +2020-04-17,Union,Mississippi,28145,9,1 +2020-04-18,Union,Mississippi,28145,9,1 +2020-04-19,Union,Mississippi,28145,11,1 +2020-04-20,Union,Mississippi,28145,11,1 +2020-04-21,Union,Mississippi,28145,12,1 +2020-04-22,Union,Mississippi,28145,12,1 +2020-04-23,Union,Mississippi,28145,14,1 +2020-04-24,Union,Mississippi,28145,14,1 +2020-04-25,Union,Mississippi,28145,14,1 +2020-04-26,Union,Mississippi,28145,15,1 +2020-04-27,Union,Mississippi,28145,15,1 +2020-04-28,Union,Mississippi,28145,16,1 +2020-04-29,Union,Mississippi,28145,16,1 +2020-04-30,Union,Mississippi,28145,17,1 +2020-05-01,Union,Mississippi,28145,19,1 +2020-05-02,Union,Mississippi,28145,25,2 +2020-05-03,Union,Mississippi,28145,27,2 +2020-05-04,Union,Mississippi,28145,30,2 +2020-05-05,Union,Mississippi,28145,36,2 +2020-05-06,Union,Mississippi,28145,40,2 +2020-05-07,Union,Mississippi,28145,41,3 +2020-05-08,Union,Mississippi,28145,42,3 +2020-05-09,Union,Mississippi,28145,48,3 +2020-05-10,Union,Mississippi,28145,47,3 +2020-05-11,Union,Mississippi,28145,50,3 +2020-05-12,Union,Mississippi,28145,54,4 +2020-05-13,Union,Mississippi,28145,55,4 +2020-05-14,Union,Mississippi,28145,57,4 +2020-05-15,Union,Mississippi,28145,59,4 +2020-05-16,Union,Mississippi,28145,60,4 +2020-05-17,Union,Mississippi,28145,60,4 +2020-05-18,Union,Mississippi,28145,62,4 +2020-05-19,Union,Mississippi,28145,65,4 +2020-05-20,Union,Mississippi,28145,65,4 +2020-05-21,Union,Mississippi,28145,66,4 +2020-05-22,Union,Mississippi,28145,68,4 +2020-05-23,Union,Mississippi,28145,70,5 +2020-05-24,Union,Mississippi,28145,71,5 +2020-05-25,Union,Mississippi,28145,72,5 +2020-05-26,Union,Mississippi,28145,74,5 +2020-05-27,Union,Mississippi,28145,78,5 +2020-05-28,Union,Mississippi,28145,80,5 +2020-05-29,Union,Mississippi,28145,81,5 +2020-05-30,Union,Mississippi,28145,83,5 +2020-05-31,Union,Mississippi,28145,82,5 +2020-06-01,Union,Mississippi,28145,84,5 +2020-06-02,Union,Mississippi,28145,85,7 +2020-06-03,Union,Mississippi,28145,86,7 +2020-06-04,Union,Mississippi,28145,89,7 +2020-06-05,Union,Mississippi,28145,89,7 +2020-06-06,Union,Mississippi,28145,91,7 +2020-06-07,Union,Mississippi,28145,91,7 +2020-06-08,Union,Mississippi,28145,92,7 +2020-06-09,Union,Mississippi,28145,90,7 +2020-06-10,Union,Mississippi,28145,93,7 +2020-06-11,Union,Mississippi,28145,93,7 +2020-06-12,Union,Mississippi,28145,96,8 +2020-06-13,Union,Mississippi,28145,97,8 +2020-06-14,Union,Mississippi,28145,102,8 +2020-06-15,Union,Mississippi,28145,102,8 +2020-06-16,Union,Mississippi,28145,108,8 +2020-06-17,Union,Mississippi,28145,109,8 +2020-06-18,Union,Mississippi,28145,109,8 +2020-06-19,Union,Mississippi,28145,109,8 +2020-06-20,Union,Mississippi,28145,109,8 +2020-06-21,Union,Mississippi,28145,109,8 +2020-06-22,Union,Mississippi,28145,128,8 +2020-06-23,Union,Mississippi,28145,131,8 +2020-06-24,Union,Mississippi,28145,138,8 +2020-06-25,Union,Mississippi,28145,150,8 +2020-06-26,Union,Mississippi,28145,157,8 +2020-06-27,Union,Mississippi,28145,160,8 +2020-06-28,Union,Mississippi,28145,161,8 +2020-06-29,Union,Mississippi,28145,166,9 +2020-06-30,Union,Mississippi,28145,172,9 +2020-07-01,Union,Mississippi,28145,175,9 +2020-07-02,Union,Mississippi,28145,181,9 +2020-07-03,Union,Mississippi,28145,191,9 +2020-07-04,Union,Mississippi,28145,207,9 +2020-07-05,Union,Mississippi,28145,207,9 +2020-07-06,Union,Mississippi,28145,210,9 +2020-07-07,Union,Mississippi,28145,218,10 +2020-07-08,Union,Mississippi,28145,233,11 +2020-07-09,Union,Mississippi,28145,238,11 +2020-03-19,Walthall,Mississippi,28147,1,0 +2020-03-20,Walthall,Mississippi,28147,1,0 +2020-03-21,Walthall,Mississippi,28147,1,0 +2020-03-22,Walthall,Mississippi,28147,2,0 +2020-03-23,Walthall,Mississippi,28147,2,0 +2020-03-24,Walthall,Mississippi,28147,2,0 +2020-03-25,Walthall,Mississippi,28147,3,0 +2020-03-26,Walthall,Mississippi,28147,4,0 +2020-03-27,Walthall,Mississippi,28147,4,0 +2020-03-28,Walthall,Mississippi,28147,5,0 +2020-03-29,Walthall,Mississippi,28147,5,0 +2020-03-30,Walthall,Mississippi,28147,5,0 +2020-03-31,Walthall,Mississippi,28147,5,0 +2020-04-01,Walthall,Mississippi,28147,7,0 +2020-04-02,Walthall,Mississippi,28147,10,0 +2020-04-03,Walthall,Mississippi,28147,11,0 +2020-04-04,Walthall,Mississippi,28147,12,0 +2020-04-05,Walthall,Mississippi,28147,12,0 +2020-04-06,Walthall,Mississippi,28147,12,0 +2020-04-07,Walthall,Mississippi,28147,14,0 +2020-04-08,Walthall,Mississippi,28147,15,0 +2020-04-09,Walthall,Mississippi,28147,16,0 +2020-04-10,Walthall,Mississippi,28147,16,0 +2020-04-11,Walthall,Mississippi,28147,16,0 +2020-04-12,Walthall,Mississippi,28147,18,0 +2020-04-13,Walthall,Mississippi,28147,21,0 +2020-04-14,Walthall,Mississippi,28147,22,0 +2020-04-15,Walthall,Mississippi,28147,22,0 +2020-04-16,Walthall,Mississippi,28147,22,0 +2020-04-17,Walthall,Mississippi,28147,22,0 +2020-04-18,Walthall,Mississippi,28147,23,0 +2020-04-19,Walthall,Mississippi,28147,24,0 +2020-04-20,Walthall,Mississippi,28147,24,0 +2020-04-21,Walthall,Mississippi,28147,24,0 +2020-04-22,Walthall,Mississippi,28147,25,0 +2020-04-23,Walthall,Mississippi,28147,27,0 +2020-04-24,Walthall,Mississippi,28147,27,0 +2020-04-25,Walthall,Mississippi,28147,27,0 +2020-04-26,Walthall,Mississippi,28147,28,0 +2020-04-27,Walthall,Mississippi,28147,29,0 +2020-04-28,Walthall,Mississippi,28147,30,0 +2020-04-29,Walthall,Mississippi,28147,30,0 +2020-04-30,Walthall,Mississippi,28147,31,0 +2020-05-01,Walthall,Mississippi,28147,32,0 +2020-05-02,Walthall,Mississippi,28147,32,0 +2020-05-03,Walthall,Mississippi,28147,33,0 +2020-05-04,Walthall,Mississippi,28147,33,0 +2020-05-05,Walthall,Mississippi,28147,35,0 +2020-05-06,Walthall,Mississippi,28147,36,0 +2020-05-07,Walthall,Mississippi,28147,36,0 +2020-05-08,Walthall,Mississippi,28147,37,0 +2020-05-09,Walthall,Mississippi,28147,37,0 +2020-05-10,Walthall,Mississippi,28147,39,0 +2020-05-11,Walthall,Mississippi,28147,41,0 +2020-05-12,Walthall,Mississippi,28147,42,0 +2020-05-13,Walthall,Mississippi,28147,42,0 +2020-05-14,Walthall,Mississippi,28147,42,0 +2020-05-15,Walthall,Mississippi,28147,44,0 +2020-05-16,Walthall,Mississippi,28147,46,0 +2020-05-17,Walthall,Mississippi,28147,46,0 +2020-05-18,Walthall,Mississippi,28147,46,0 +2020-05-19,Walthall,Mississippi,28147,44,0 +2020-05-20,Walthall,Mississippi,28147,46,0 +2020-05-21,Walthall,Mississippi,28147,48,0 +2020-05-22,Walthall,Mississippi,28147,50,0 +2020-05-23,Walthall,Mississippi,28147,51,0 +2020-05-24,Walthall,Mississippi,28147,49,0 +2020-05-25,Walthall,Mississippi,28147,49,0 +2020-05-26,Walthall,Mississippi,28147,50,0 +2020-05-27,Walthall,Mississippi,28147,51,0 +2020-05-28,Walthall,Mississippi,28147,52,0 +2020-05-29,Walthall,Mississippi,28147,54,0 +2020-05-30,Walthall,Mississippi,28147,55,0 +2020-05-31,Walthall,Mississippi,28147,56,0 +2020-06-01,Walthall,Mississippi,28147,57,0 +2020-06-02,Walthall,Mississippi,28147,61,0 +2020-06-03,Walthall,Mississippi,28147,63,0 +2020-06-04,Walthall,Mississippi,28147,64,0 +2020-06-05,Walthall,Mississippi,28147,67,0 +2020-06-06,Walthall,Mississippi,28147,70,0 +2020-06-07,Walthall,Mississippi,28147,74,0 +2020-06-08,Walthall,Mississippi,28147,76,0 +2020-06-09,Walthall,Mississippi,28147,82,0 +2020-06-10,Walthall,Mississippi,28147,85,0 +2020-06-11,Walthall,Mississippi,28147,85,0 +2020-06-12,Walthall,Mississippi,28147,97,1 +2020-06-13,Walthall,Mississippi,28147,100,1 +2020-06-14,Walthall,Mississippi,28147,103,1 +2020-06-15,Walthall,Mississippi,28147,105,1 +2020-06-16,Walthall,Mississippi,28147,107,1 +2020-06-17,Walthall,Mississippi,28147,111,1 +2020-06-18,Walthall,Mississippi,28147,111,1 +2020-06-19,Walthall,Mississippi,28147,111,1 +2020-06-20,Walthall,Mississippi,28147,111,1 +2020-06-21,Walthall,Mississippi,28147,111,1 +2020-06-22,Walthall,Mississippi,28147,133,2 +2020-06-23,Walthall,Mississippi,28147,140,1 +2020-06-24,Walthall,Mississippi,28147,147,3 +2020-06-25,Walthall,Mississippi,28147,163,3 +2020-06-26,Walthall,Mississippi,28147,165,3 +2020-06-27,Walthall,Mississippi,28147,165,3 +2020-06-28,Walthall,Mississippi,28147,166,3 +2020-06-29,Walthall,Mississippi,28147,168,3 +2020-06-30,Walthall,Mississippi,28147,169,4 +2020-07-01,Walthall,Mississippi,28147,172,4 +2020-07-02,Walthall,Mississippi,28147,179,4 +2020-07-03,Walthall,Mississippi,28147,180,4 +2020-07-04,Walthall,Mississippi,28147,200,4 +2020-07-05,Walthall,Mississippi,28147,199,5 +2020-07-06,Walthall,Mississippi,28147,204,5 +2020-07-07,Walthall,Mississippi,28147,205,6 +2020-07-08,Walthall,Mississippi,28147,208,7 +2020-07-09,Walthall,Mississippi,28147,226,7 +2020-03-29,Warren,Mississippi,28149,1,0 +2020-03-30,Warren,Mississippi,28149,1,0 +2020-03-31,Warren,Mississippi,28149,1,0 +2020-04-01,Warren,Mississippi,28149,2,0 +2020-04-02,Warren,Mississippi,28149,2,0 +2020-04-03,Warren,Mississippi,28149,2,0 +2020-04-04,Warren,Mississippi,28149,3,0 +2020-04-05,Warren,Mississippi,28149,5,0 +2020-04-06,Warren,Mississippi,28149,5,0 +2020-04-07,Warren,Mississippi,28149,7,0 +2020-04-08,Warren,Mississippi,28149,9,0 +2020-04-09,Warren,Mississippi,28149,10,0 +2020-04-10,Warren,Mississippi,28149,12,0 +2020-04-11,Warren,Mississippi,28149,11,0 +2020-04-12,Warren,Mississippi,28149,14,0 +2020-04-13,Warren,Mississippi,28149,14,0 +2020-04-14,Warren,Mississippi,28149,14,0 +2020-04-15,Warren,Mississippi,28149,15,1 +2020-04-16,Warren,Mississippi,28149,16,1 +2020-04-17,Warren,Mississippi,28149,17,1 +2020-04-18,Warren,Mississippi,28149,18,1 +2020-04-19,Warren,Mississippi,28149,21,1 +2020-04-20,Warren,Mississippi,28149,22,2 +2020-04-21,Warren,Mississippi,28149,25,2 +2020-04-22,Warren,Mississippi,28149,29,2 +2020-04-23,Warren,Mississippi,28149,32,2 +2020-04-24,Warren,Mississippi,28149,39,2 +2020-04-25,Warren,Mississippi,28149,45,2 +2020-04-26,Warren,Mississippi,28149,47,2 +2020-04-27,Warren,Mississippi,28149,50,2 +2020-04-28,Warren,Mississippi,28149,58,2 +2020-04-29,Warren,Mississippi,28149,65,2 +2020-04-30,Warren,Mississippi,28149,68,2 +2020-05-01,Warren,Mississippi,28149,74,2 +2020-05-02,Warren,Mississippi,28149,78,2 +2020-05-03,Warren,Mississippi,28149,81,2 +2020-05-04,Warren,Mississippi,28149,83,2 +2020-05-05,Warren,Mississippi,28149,88,2 +2020-05-06,Warren,Mississippi,28149,90,2 +2020-05-07,Warren,Mississippi,28149,90,2 +2020-05-08,Warren,Mississippi,28149,94,2 +2020-05-09,Warren,Mississippi,28149,98,2 +2020-05-10,Warren,Mississippi,28149,117,2 +2020-05-11,Warren,Mississippi,28149,117,2 +2020-05-12,Warren,Mississippi,28149,122,2 +2020-05-13,Warren,Mississippi,28149,123,2 +2020-05-14,Warren,Mississippi,28149,127,3 +2020-05-15,Warren,Mississippi,28149,129,4 +2020-05-16,Warren,Mississippi,28149,133,4 +2020-05-17,Warren,Mississippi,28149,133,4 +2020-05-18,Warren,Mississippi,28149,133,4 +2020-05-19,Warren,Mississippi,28149,135,5 +2020-05-20,Warren,Mississippi,28149,136,5 +2020-05-21,Warren,Mississippi,28149,138,5 +2020-05-22,Warren,Mississippi,28149,144,6 +2020-05-23,Warren,Mississippi,28149,148,6 +2020-05-24,Warren,Mississippi,28149,150,6 +2020-05-25,Warren,Mississippi,28149,154,7 +2020-05-26,Warren,Mississippi,28149,158,7 +2020-05-27,Warren,Mississippi,28149,158,7 +2020-05-28,Warren,Mississippi,28149,159,7 +2020-05-29,Warren,Mississippi,28149,163,8 +2020-05-30,Warren,Mississippi,28149,171,9 +2020-05-31,Warren,Mississippi,28149,173,10 +2020-06-01,Warren,Mississippi,28149,175,10 +2020-06-02,Warren,Mississippi,28149,181,10 +2020-06-03,Warren,Mississippi,28149,191,10 +2020-06-04,Warren,Mississippi,28149,196,10 +2020-06-05,Warren,Mississippi,28149,199,10 +2020-06-06,Warren,Mississippi,28149,201,10 +2020-06-07,Warren,Mississippi,28149,206,11 +2020-06-08,Warren,Mississippi,28149,214,12 +2020-06-09,Warren,Mississippi,28149,223,12 +2020-06-10,Warren,Mississippi,28149,232,12 +2020-06-11,Warren,Mississippi,28149,232,12 +2020-06-12,Warren,Mississippi,28149,245,12 +2020-06-13,Warren,Mississippi,28149,248,12 +2020-06-14,Warren,Mississippi,28149,252,12 +2020-06-15,Warren,Mississippi,28149,259,12 +2020-06-16,Warren,Mississippi,28149,262,12 +2020-06-17,Warren,Mississippi,28149,280,14 +2020-06-18,Warren,Mississippi,28149,280,14 +2020-06-19,Warren,Mississippi,28149,280,14 +2020-06-20,Warren,Mississippi,28149,280,14 +2020-06-21,Warren,Mississippi,28149,280,14 +2020-06-22,Warren,Mississippi,28149,331,14 +2020-06-23,Warren,Mississippi,28149,347,14 +2020-06-24,Warren,Mississippi,28149,358,15 +2020-06-25,Warren,Mississippi,28149,371,16 +2020-06-26,Warren,Mississippi,28149,384,16 +2020-06-27,Warren,Mississippi,28149,392,17 +2020-06-28,Warren,Mississippi,28149,398,17 +2020-06-29,Warren,Mississippi,28149,409,17 +2020-06-30,Warren,Mississippi,28149,425,17 +2020-07-01,Warren,Mississippi,28149,443,17 +2020-07-02,Warren,Mississippi,28149,463,17 +2020-07-03,Warren,Mississippi,28149,496,18 +2020-07-04,Warren,Mississippi,28149,511,18 +2020-07-05,Warren,Mississippi,28149,515,18 +2020-07-06,Warren,Mississippi,28149,516,18 +2020-07-07,Warren,Mississippi,28149,532,18 +2020-07-08,Warren,Mississippi,28149,540,20 +2020-07-09,Warren,Mississippi,28149,553,20 +2020-03-21,Washington,Mississippi,28151,1,0 +2020-03-22,Washington,Mississippi,28151,3,0 +2020-03-23,Washington,Mississippi,28151,4,0 +2020-03-24,Washington,Mississippi,28151,5,0 +2020-03-25,Washington,Mississippi,28151,5,0 +2020-03-26,Washington,Mississippi,28151,9,0 +2020-03-27,Washington,Mississippi,28151,11,0 +2020-03-28,Washington,Mississippi,28151,13,0 +2020-03-29,Washington,Mississippi,28151,16,0 +2020-03-30,Washington,Mississippi,28151,18,0 +2020-03-31,Washington,Mississippi,28151,20,0 +2020-04-01,Washington,Mississippi,28151,22,0 +2020-04-02,Washington,Mississippi,28151,29,0 +2020-04-03,Washington,Mississippi,28151,31,0 +2020-04-04,Washington,Mississippi,28151,31,0 +2020-04-05,Washington,Mississippi,28151,36,0 +2020-04-06,Washington,Mississippi,28151,38,0 +2020-04-07,Washington,Mississippi,28151,40,1 +2020-04-08,Washington,Mississippi,28151,41,2 +2020-04-09,Washington,Mississippi,28151,46,2 +2020-04-10,Washington,Mississippi,28151,48,2 +2020-04-11,Washington,Mississippi,28151,49,2 +2020-04-12,Washington,Mississippi,28151,53,2 +2020-04-13,Washington,Mississippi,28151,57,2 +2020-04-14,Washington,Mississippi,28151,57,2 +2020-04-15,Washington,Mississippi,28151,62,2 +2020-04-16,Washington,Mississippi,28151,67,2 +2020-04-17,Washington,Mississippi,28151,68,2 +2020-04-18,Washington,Mississippi,28151,70,3 +2020-04-19,Washington,Mississippi,28151,71,3 +2020-04-20,Washington,Mississippi,28151,71,3 +2020-04-21,Washington,Mississippi,28151,71,3 +2020-04-22,Washington,Mississippi,28151,71,3 +2020-04-23,Washington,Mississippi,28151,71,3 +2020-04-24,Washington,Mississippi,28151,74,3 +2020-04-25,Washington,Mississippi,28151,77,3 +2020-04-26,Washington,Mississippi,28151,78,3 +2020-04-27,Washington,Mississippi,28151,77,3 +2020-04-28,Washington,Mississippi,28151,77,3 +2020-04-29,Washington,Mississippi,28151,77,3 +2020-04-30,Washington,Mississippi,28151,77,3 +2020-05-01,Washington,Mississippi,28151,77,3 +2020-05-02,Washington,Mississippi,28151,77,3 +2020-05-03,Washington,Mississippi,28151,77,3 +2020-05-04,Washington,Mississippi,28151,77,3 +2020-05-05,Washington,Mississippi,28151,78,3 +2020-05-06,Washington,Mississippi,28151,80,3 +2020-05-07,Washington,Mississippi,28151,78,3 +2020-05-08,Washington,Mississippi,28151,80,3 +2020-05-09,Washington,Mississippi,28151,82,3 +2020-05-10,Washington,Mississippi,28151,82,3 +2020-05-11,Washington,Mississippi,28151,85,3 +2020-05-12,Washington,Mississippi,28151,86,4 +2020-05-13,Washington,Mississippi,28151,87,4 +2020-05-14,Washington,Mississippi,28151,92,4 +2020-05-15,Washington,Mississippi,28151,100,4 +2020-05-16,Washington,Mississippi,28151,113,4 +2020-05-17,Washington,Mississippi,28151,115,4 +2020-05-18,Washington,Mississippi,28151,123,4 +2020-05-19,Washington,Mississippi,28151,128,4 +2020-05-20,Washington,Mississippi,28151,139,4 +2020-05-21,Washington,Mississippi,28151,143,4 +2020-05-22,Washington,Mississippi,28151,143,4 +2020-05-23,Washington,Mississippi,28151,151,5 +2020-05-24,Washington,Mississippi,28151,153,5 +2020-05-25,Washington,Mississippi,28151,153,5 +2020-05-26,Washington,Mississippi,28151,159,5 +2020-05-27,Washington,Mississippi,28151,163,6 +2020-05-28,Washington,Mississippi,28151,166,7 +2020-05-29,Washington,Mississippi,28151,165,7 +2020-05-30,Washington,Mississippi,28151,168,7 +2020-05-31,Washington,Mississippi,28151,178,7 +2020-06-01,Washington,Mississippi,28151,191,7 +2020-06-02,Washington,Mississippi,28151,191,7 +2020-06-03,Washington,Mississippi,28151,194,7 +2020-06-04,Washington,Mississippi,28151,198,7 +2020-06-05,Washington,Mississippi,28151,199,8 +2020-06-06,Washington,Mississippi,28151,200,8 +2020-06-07,Washington,Mississippi,28151,202,8 +2020-06-08,Washington,Mississippi,28151,215,8 +2020-06-09,Washington,Mississippi,28151,221,8 +2020-06-10,Washington,Mississippi,28151,222,8 +2020-06-11,Washington,Mississippi,28151,222,8 +2020-06-12,Washington,Mississippi,28151,236,8 +2020-06-13,Washington,Mississippi,28151,246,8 +2020-06-14,Washington,Mississippi,28151,253,8 +2020-06-15,Washington,Mississippi,28151,266,8 +2020-06-16,Washington,Mississippi,28151,269,9 +2020-06-17,Washington,Mississippi,28151,276,9 +2020-06-18,Washington,Mississippi,28151,276,9 +2020-06-19,Washington,Mississippi,28151,276,9 +2020-06-20,Washington,Mississippi,28151,276,9 +2020-06-21,Washington,Mississippi,28151,276,9 +2020-06-22,Washington,Mississippi,28151,302,9 +2020-06-23,Washington,Mississippi,28151,323,9 +2020-06-24,Washington,Mississippi,28151,329,9 +2020-06-25,Washington,Mississippi,28151,369,9 +2020-06-26,Washington,Mississippi,28151,379,9 +2020-06-27,Washington,Mississippi,28151,403,9 +2020-06-28,Washington,Mississippi,28151,419,9 +2020-06-29,Washington,Mississippi,28151,427,9 +2020-06-30,Washington,Mississippi,28151,465,9 +2020-07-01,Washington,Mississippi,28151,496,9 +2020-07-02,Washington,Mississippi,28151,512,9 +2020-07-03,Washington,Mississippi,28151,531,9 +2020-07-04,Washington,Mississippi,28151,578,9 +2020-07-05,Washington,Mississippi,28151,584,9 +2020-07-06,Washington,Mississippi,28151,591,9 +2020-07-07,Washington,Mississippi,28151,617,10 +2020-07-08,Washington,Mississippi,28151,626,10 +2020-07-09,Washington,Mississippi,28151,643,10 +2020-04-02,Wayne,Mississippi,28153,1,0 +2020-04-03,Wayne,Mississippi,28153,1,0 +2020-04-04,Wayne,Mississippi,28153,2,0 +2020-04-05,Wayne,Mississippi,28153,5,0 +2020-04-06,Wayne,Mississippi,28153,5,0 +2020-04-07,Wayne,Mississippi,28153,5,0 +2020-04-08,Wayne,Mississippi,28153,5,0 +2020-04-09,Wayne,Mississippi,28153,6,0 +2020-04-10,Wayne,Mississippi,28153,7,0 +2020-04-11,Wayne,Mississippi,28153,8,0 +2020-04-12,Wayne,Mississippi,28153,8,0 +2020-04-13,Wayne,Mississippi,28153,9,0 +2020-04-14,Wayne,Mississippi,28153,9,0 +2020-04-15,Wayne,Mississippi,28153,9,0 +2020-04-16,Wayne,Mississippi,28153,10,0 +2020-04-17,Wayne,Mississippi,28153,10,0 +2020-04-18,Wayne,Mississippi,28153,10,0 +2020-04-19,Wayne,Mississippi,28153,11,0 +2020-04-20,Wayne,Mississippi,28153,12,0 +2020-04-21,Wayne,Mississippi,28153,12,0 +2020-04-22,Wayne,Mississippi,28153,11,0 +2020-04-23,Wayne,Mississippi,28153,17,0 +2020-04-24,Wayne,Mississippi,28153,16,0 +2020-04-25,Wayne,Mississippi,28153,19,0 +2020-04-26,Wayne,Mississippi,28153,19,0 +2020-04-27,Wayne,Mississippi,28153,19,0 +2020-04-28,Wayne,Mississippi,28153,19,0 +2020-04-29,Wayne,Mississippi,28153,20,0 +2020-04-30,Wayne,Mississippi,28153,23,0 +2020-05-01,Wayne,Mississippi,28153,23,0 +2020-05-02,Wayne,Mississippi,28153,24,0 +2020-05-03,Wayne,Mississippi,28153,24,0 +2020-05-04,Wayne,Mississippi,28153,24,0 +2020-05-05,Wayne,Mississippi,28153,25,0 +2020-05-06,Wayne,Mississippi,28153,26,0 +2020-05-07,Wayne,Mississippi,28153,27,0 +2020-05-08,Wayne,Mississippi,28153,27,0 +2020-05-09,Wayne,Mississippi,28153,27,0 +2020-05-10,Wayne,Mississippi,28153,27,0 +2020-05-11,Wayne,Mississippi,28153,28,0 +2020-05-12,Wayne,Mississippi,28153,29,0 +2020-05-13,Wayne,Mississippi,28153,29,0 +2020-05-14,Wayne,Mississippi,28153,32,0 +2020-05-15,Wayne,Mississippi,28153,33,0 +2020-05-16,Wayne,Mississippi,28153,37,0 +2020-05-17,Wayne,Mississippi,28153,39,0 +2020-05-18,Wayne,Mississippi,28153,39,0 +2020-05-19,Wayne,Mississippi,28153,45,0 +2020-05-20,Wayne,Mississippi,28153,51,0 +2020-05-21,Wayne,Mississippi,28153,58,0 +2020-05-22,Wayne,Mississippi,28153,72,0 +2020-05-23,Wayne,Mississippi,28153,76,0 +2020-05-24,Wayne,Mississippi,28153,109,0 +2020-05-25,Wayne,Mississippi,28153,125,0 +2020-05-26,Wayne,Mississippi,28153,133,0 +2020-05-27,Wayne,Mississippi,28153,148,0 +2020-05-28,Wayne,Mississippi,28153,154,0 +2020-05-29,Wayne,Mississippi,28153,171,0 +2020-05-30,Wayne,Mississippi,28153,177,1 +2020-05-31,Wayne,Mississippi,28153,204,1 +2020-06-01,Wayne,Mississippi,28153,210,1 +2020-06-02,Wayne,Mississippi,28153,224,2 +2020-06-03,Wayne,Mississippi,28153,235,3 +2020-06-04,Wayne,Mississippi,28153,262,3 +2020-06-05,Wayne,Mississippi,28153,280,3 +2020-06-06,Wayne,Mississippi,28153,295,3 +2020-06-07,Wayne,Mississippi,28153,315,3 +2020-06-08,Wayne,Mississippi,28153,328,4 +2020-06-09,Wayne,Mississippi,28153,335,5 +2020-06-10,Wayne,Mississippi,28153,346,5 +2020-06-11,Wayne,Mississippi,28153,346,5 +2020-06-12,Wayne,Mississippi,28153,373,7 +2020-06-13,Wayne,Mississippi,28153,373,7 +2020-06-14,Wayne,Mississippi,28153,375,7 +2020-06-15,Wayne,Mississippi,28153,389,7 +2020-06-16,Wayne,Mississippi,28153,398,8 +2020-06-17,Wayne,Mississippi,28153,409,8 +2020-06-18,Wayne,Mississippi,28153,409,8 +2020-06-19,Wayne,Mississippi,28153,409,8 +2020-06-20,Wayne,Mississippi,28153,409,8 +2020-06-21,Wayne,Mississippi,28153,409,8 +2020-06-22,Wayne,Mississippi,28153,434,8 +2020-06-23,Wayne,Mississippi,28153,441,8 +2020-06-24,Wayne,Mississippi,28153,446,8 +2020-06-25,Wayne,Mississippi,28153,461,9 +2020-06-26,Wayne,Mississippi,28153,462,10 +2020-06-27,Wayne,Mississippi,28153,468,10 +2020-06-28,Wayne,Mississippi,28153,499,10 +2020-06-29,Wayne,Mississippi,28153,509,10 +2020-06-30,Wayne,Mississippi,28153,515,11 +2020-07-01,Wayne,Mississippi,28153,521,12 +2020-07-02,Wayne,Mississippi,28153,522,12 +2020-07-03,Wayne,Mississippi,28153,535,13 +2020-07-04,Wayne,Mississippi,28153,542,13 +2020-07-05,Wayne,Mississippi,28153,545,13 +2020-07-06,Wayne,Mississippi,28153,545,13 +2020-07-07,Wayne,Mississippi,28153,545,15 +2020-07-08,Wayne,Mississippi,28153,551,16 +2020-07-09,Wayne,Mississippi,28153,554,16 +2020-03-22,Webster,Mississippi,28155,1,0 +2020-03-23,Webster,Mississippi,28155,1,0 +2020-03-24,Webster,Mississippi,28155,2,0 +2020-03-25,Webster,Mississippi,28155,2,1 +2020-03-26,Webster,Mississippi,28155,2,1 +2020-03-27,Webster,Mississippi,28155,3,1 +2020-03-28,Webster,Mississippi,28155,3,1 +2020-03-29,Webster,Mississippi,28155,3,1 +2020-03-30,Webster,Mississippi,28155,5,1 +2020-03-31,Webster,Mississippi,28155,5,1 +2020-04-01,Webster,Mississippi,28155,7,1 +2020-04-02,Webster,Mississippi,28155,8,1 +2020-04-03,Webster,Mississippi,28155,8,1 +2020-04-04,Webster,Mississippi,28155,11,1 +2020-04-05,Webster,Mississippi,28155,11,1 +2020-04-06,Webster,Mississippi,28155,12,1 +2020-04-07,Webster,Mississippi,28155,12,1 +2020-04-08,Webster,Mississippi,28155,13,1 +2020-04-09,Webster,Mississippi,28155,13,1 +2020-04-10,Webster,Mississippi,28155,13,1 +2020-04-11,Webster,Mississippi,28155,14,1 +2020-04-12,Webster,Mississippi,28155,14,1 +2020-04-13,Webster,Mississippi,28155,14,1 +2020-04-14,Webster,Mississippi,28155,14,1 +2020-04-15,Webster,Mississippi,28155,14,1 +2020-04-16,Webster,Mississippi,28155,15,1 +2020-04-17,Webster,Mississippi,28155,17,1 +2020-04-18,Webster,Mississippi,28155,15,1 +2020-04-19,Webster,Mississippi,28155,15,1 +2020-04-20,Webster,Mississippi,28155,15,1 +2020-04-21,Webster,Mississippi,28155,16,1 +2020-04-22,Webster,Mississippi,28155,16,1 +2020-04-23,Webster,Mississippi,28155,16,1 +2020-04-24,Webster,Mississippi,28155,17,1 +2020-04-25,Webster,Mississippi,28155,16,1 +2020-04-26,Webster,Mississippi,28155,16,1 +2020-04-27,Webster,Mississippi,28155,16,1 +2020-04-28,Webster,Mississippi,28155,17,1 +2020-04-29,Webster,Mississippi,28155,17,1 +2020-04-30,Webster,Mississippi,28155,18,1 +2020-05-01,Webster,Mississippi,28155,19,1 +2020-05-02,Webster,Mississippi,28155,19,1 +2020-05-03,Webster,Mississippi,28155,19,1 +2020-05-04,Webster,Mississippi,28155,20,1 +2020-05-05,Webster,Mississippi,28155,21,1 +2020-05-06,Webster,Mississippi,28155,21,1 +2020-05-07,Webster,Mississippi,28155,21,1 +2020-05-08,Webster,Mississippi,28155,21,1 +2020-05-09,Webster,Mississippi,28155,21,1 +2020-05-10,Webster,Mississippi,28155,22,1 +2020-05-11,Webster,Mississippi,28155,22,1 +2020-05-12,Webster,Mississippi,28155,22,1 +2020-05-13,Webster,Mississippi,28155,22,1 +2020-05-14,Webster,Mississippi,28155,22,1 +2020-05-15,Webster,Mississippi,28155,22,1 +2020-05-16,Webster,Mississippi,28155,23,1 +2020-05-17,Webster,Mississippi,28155,23,1 +2020-05-18,Webster,Mississippi,28155,22,1 +2020-05-19,Webster,Mississippi,28155,22,1 +2020-05-20,Webster,Mississippi,28155,22,1 +2020-05-21,Webster,Mississippi,28155,25,1 +2020-05-22,Webster,Mississippi,28155,27,1 +2020-05-23,Webster,Mississippi,28155,27,1 +2020-05-24,Webster,Mississippi,28155,27,1 +2020-05-25,Webster,Mississippi,28155,28,1 +2020-05-26,Webster,Mississippi,28155,63,1 +2020-05-27,Webster,Mississippi,28155,59,1 +2020-05-28,Webster,Mississippi,28155,61,1 +2020-05-29,Webster,Mississippi,28155,64,1 +2020-05-30,Webster,Mississippi,28155,69,1 +2020-05-31,Webster,Mississippi,28155,69,2 +2020-06-01,Webster,Mississippi,28155,68,2 +2020-06-02,Webster,Mississippi,28155,67,3 +2020-06-03,Webster,Mississippi,28155,67,3 +2020-06-04,Webster,Mississippi,28155,84,4 +2020-06-05,Webster,Mississippi,28155,88,5 +2020-06-06,Webster,Mississippi,28155,93,5 +2020-06-07,Webster,Mississippi,28155,96,5 +2020-06-08,Webster,Mississippi,28155,98,6 +2020-06-09,Webster,Mississippi,28155,98,7 +2020-06-10,Webster,Mississippi,28155,99,8 +2020-06-11,Webster,Mississippi,28155,99,8 +2020-06-12,Webster,Mississippi,28155,109,8 +2020-06-13,Webster,Mississippi,28155,109,8 +2020-06-14,Webster,Mississippi,28155,110,8 +2020-06-15,Webster,Mississippi,28155,109,8 +2020-06-16,Webster,Mississippi,28155,109,8 +2020-06-17,Webster,Mississippi,28155,109,8 +2020-06-18,Webster,Mississippi,28155,109,8 +2020-06-19,Webster,Mississippi,28155,109,8 +2020-06-20,Webster,Mississippi,28155,109,8 +2020-06-21,Webster,Mississippi,28155,109,8 +2020-06-22,Webster,Mississippi,28155,118,10 +2020-06-23,Webster,Mississippi,28155,122,10 +2020-06-24,Webster,Mississippi,28155,124,10 +2020-06-25,Webster,Mississippi,28155,124,10 +2020-06-26,Webster,Mississippi,28155,124,10 +2020-06-27,Webster,Mississippi,28155,123,10 +2020-06-28,Webster,Mississippi,28155,123,10 +2020-06-29,Webster,Mississippi,28155,122,10 +2020-06-30,Webster,Mississippi,28155,123,10 +2020-07-01,Webster,Mississippi,28155,123,10 +2020-07-02,Webster,Mississippi,28155,126,10 +2020-07-03,Webster,Mississippi,28155,126,10 +2020-07-04,Webster,Mississippi,28155,125,10 +2020-07-05,Webster,Mississippi,28155,127,10 +2020-07-06,Webster,Mississippi,28155,127,10 +2020-07-07,Webster,Mississippi,28155,127,11 +2020-07-08,Webster,Mississippi,28155,128,11 +2020-07-09,Webster,Mississippi,28155,128,11 +2020-03-19,Wilkinson,Mississippi,28157,1,0 +2020-03-20,Wilkinson,Mississippi,28157,1,0 +2020-03-21,Wilkinson,Mississippi,28157,1,0 +2020-03-22,Wilkinson,Mississippi,28157,3,0 +2020-03-23,Wilkinson,Mississippi,28157,3,0 +2020-03-24,Wilkinson,Mississippi,28157,4,0 +2020-03-25,Wilkinson,Mississippi,28157,5,1 +2020-03-26,Wilkinson,Mississippi,28157,8,1 +2020-03-27,Wilkinson,Mississippi,28157,9,1 +2020-03-28,Wilkinson,Mississippi,28157,11,1 +2020-03-29,Wilkinson,Mississippi,28157,12,2 +2020-03-30,Wilkinson,Mississippi,28157,13,2 +2020-03-31,Wilkinson,Mississippi,28157,14,2 +2020-04-01,Wilkinson,Mississippi,28157,16,2 +2020-04-02,Wilkinson,Mississippi,28157,17,2 +2020-04-03,Wilkinson,Mississippi,28157,22,2 +2020-04-04,Wilkinson,Mississippi,28157,25,3 +2020-04-05,Wilkinson,Mississippi,28157,30,3 +2020-04-06,Wilkinson,Mississippi,28157,30,3 +2020-04-07,Wilkinson,Mississippi,28157,32,3 +2020-04-08,Wilkinson,Mississippi,28157,33,3 +2020-04-09,Wilkinson,Mississippi,28157,37,3 +2020-04-10,Wilkinson,Mississippi,28157,40,3 +2020-04-11,Wilkinson,Mississippi,28157,42,3 +2020-04-12,Wilkinson,Mississippi,28157,45,3 +2020-04-13,Wilkinson,Mississippi,28157,49,3 +2020-04-14,Wilkinson,Mississippi,28157,49,3 +2020-04-15,Wilkinson,Mississippi,28157,51,3 +2020-04-16,Wilkinson,Mississippi,28157,53,3 +2020-04-17,Wilkinson,Mississippi,28157,53,3 +2020-04-18,Wilkinson,Mississippi,28157,55,4 +2020-04-19,Wilkinson,Mississippi,28157,58,5 +2020-04-20,Wilkinson,Mississippi,28157,61,5 +2020-04-21,Wilkinson,Mississippi,28157,64,6 +2020-04-22,Wilkinson,Mississippi,28157,66,6 +2020-04-23,Wilkinson,Mississippi,28157,65,6 +2020-04-24,Wilkinson,Mississippi,28157,66,7 +2020-04-25,Wilkinson,Mississippi,28157,68,7 +2020-04-26,Wilkinson,Mississippi,28157,68,7 +2020-04-27,Wilkinson,Mississippi,28157,68,7 +2020-04-28,Wilkinson,Mississippi,28157,68,7 +2020-04-29,Wilkinson,Mississippi,28157,69,7 +2020-04-30,Wilkinson,Mississippi,28157,69,7 +2020-05-01,Wilkinson,Mississippi,28157,69,7 +2020-05-02,Wilkinson,Mississippi,28157,69,7 +2020-05-03,Wilkinson,Mississippi,28157,69,7 +2020-05-04,Wilkinson,Mississippi,28157,70,7 +2020-05-05,Wilkinson,Mississippi,28157,71,7 +2020-05-06,Wilkinson,Mississippi,28157,72,7 +2020-05-07,Wilkinson,Mississippi,28157,74,9 +2020-05-08,Wilkinson,Mississippi,28157,74,9 +2020-05-09,Wilkinson,Mississippi,28157,75,9 +2020-05-10,Wilkinson,Mississippi,28157,77,9 +2020-05-11,Wilkinson,Mississippi,28157,77,9 +2020-05-12,Wilkinson,Mississippi,28157,78,9 +2020-05-13,Wilkinson,Mississippi,28157,78,9 +2020-05-14,Wilkinson,Mississippi,28157,78,9 +2020-05-15,Wilkinson,Mississippi,28157,78,9 +2020-05-16,Wilkinson,Mississippi,28157,78,9 +2020-05-17,Wilkinson,Mississippi,28157,78,9 +2020-05-18,Wilkinson,Mississippi,28157,78,9 +2020-05-19,Wilkinson,Mississippi,28157,78,9 +2020-05-20,Wilkinson,Mississippi,28157,80,9 +2020-05-21,Wilkinson,Mississippi,28157,80,9 +2020-05-22,Wilkinson,Mississippi,28157,81,9 +2020-05-23,Wilkinson,Mississippi,28157,81,9 +2020-05-24,Wilkinson,Mississippi,28157,82,9 +2020-05-25,Wilkinson,Mississippi,28157,84,9 +2020-05-26,Wilkinson,Mississippi,28157,85,9 +2020-05-27,Wilkinson,Mississippi,28157,85,9 +2020-05-28,Wilkinson,Mississippi,28157,85,9 +2020-05-29,Wilkinson,Mississippi,28157,86,9 +2020-05-30,Wilkinson,Mississippi,28157,88,9 +2020-05-31,Wilkinson,Mississippi,28157,85,9 +2020-06-01,Wilkinson,Mississippi,28157,85,9 +2020-06-02,Wilkinson,Mississippi,28157,85,9 +2020-06-03,Wilkinson,Mississippi,28157,85,9 +2020-06-04,Wilkinson,Mississippi,28157,85,9 +2020-06-05,Wilkinson,Mississippi,28157,85,9 +2020-06-06,Wilkinson,Mississippi,28157,85,9 +2020-06-07,Wilkinson,Mississippi,28157,85,9 +2020-06-08,Wilkinson,Mississippi,28157,85,9 +2020-06-09,Wilkinson,Mississippi,28157,85,9 +2020-06-10,Wilkinson,Mississippi,28157,85,9 +2020-06-11,Wilkinson,Mississippi,28157,85,9 +2020-06-12,Wilkinson,Mississippi,28157,85,9 +2020-06-13,Wilkinson,Mississippi,28157,85,9 +2020-06-14,Wilkinson,Mississippi,28157,85,9 +2020-06-15,Wilkinson,Mississippi,28157,85,9 +2020-06-16,Wilkinson,Mississippi,28157,85,9 +2020-06-17,Wilkinson,Mississippi,28157,85,9 +2020-06-18,Wilkinson,Mississippi,28157,85,9 +2020-06-19,Wilkinson,Mississippi,28157,85,9 +2020-06-20,Wilkinson,Mississippi,28157,85,9 +2020-06-21,Wilkinson,Mississippi,28157,85,9 +2020-06-22,Wilkinson,Mississippi,28157,85,9 +2020-06-23,Wilkinson,Mississippi,28157,85,9 +2020-06-24,Wilkinson,Mississippi,28157,86,9 +2020-06-25,Wilkinson,Mississippi,28157,87,9 +2020-06-26,Wilkinson,Mississippi,28157,88,9 +2020-06-27,Wilkinson,Mississippi,28157,89,9 +2020-06-28,Wilkinson,Mississippi,28157,89,9 +2020-06-29,Wilkinson,Mississippi,28157,89,9 +2020-06-30,Wilkinson,Mississippi,28157,89,9 +2020-07-01,Wilkinson,Mississippi,28157,91,9 +2020-07-02,Wilkinson,Mississippi,28157,92,9 +2020-07-03,Wilkinson,Mississippi,28157,92,9 +2020-07-04,Wilkinson,Mississippi,28157,94,9 +2020-07-05,Wilkinson,Mississippi,28157,94,9 +2020-07-06,Wilkinson,Mississippi,28157,94,9 +2020-07-07,Wilkinson,Mississippi,28157,93,9 +2020-07-08,Wilkinson,Mississippi,28157,94,9 +2020-07-09,Wilkinson,Mississippi,28157,95,9 +2020-03-19,Winston,Mississippi,28159,1,0 +2020-03-20,Winston,Mississippi,28159,1,0 +2020-03-21,Winston,Mississippi,28159,1,0 +2020-03-22,Winston,Mississippi,28159,2,0 +2020-03-23,Winston,Mississippi,28159,2,0 +2020-03-24,Winston,Mississippi,28159,2,0 +2020-03-25,Winston,Mississippi,28159,3,0 +2020-03-26,Winston,Mississippi,28159,3,0 +2020-03-27,Winston,Mississippi,28159,3,0 +2020-03-28,Winston,Mississippi,28159,4,0 +2020-03-29,Winston,Mississippi,28159,4,0 +2020-03-30,Winston,Mississippi,28159,6,0 +2020-03-31,Winston,Mississippi,28159,7,0 +2020-04-01,Winston,Mississippi,28159,9,0 +2020-04-02,Winston,Mississippi,28159,9,0 +2020-04-03,Winston,Mississippi,28159,11,0 +2020-04-04,Winston,Mississippi,28159,11,0 +2020-04-05,Winston,Mississippi,28159,12,0 +2020-04-06,Winston,Mississippi,28159,15,0 +2020-04-07,Winston,Mississippi,28159,17,0 +2020-04-08,Winston,Mississippi,28159,16,0 +2020-04-09,Winston,Mississippi,28159,17,0 +2020-04-10,Winston,Mississippi,28159,17,0 +2020-04-11,Winston,Mississippi,28159,18,0 +2020-04-12,Winston,Mississippi,28159,19,0 +2020-04-13,Winston,Mississippi,28159,20,0 +2020-04-14,Winston,Mississippi,28159,20,0 +2020-04-15,Winston,Mississippi,28159,22,0 +2020-04-16,Winston,Mississippi,28159,24,0 +2020-04-17,Winston,Mississippi,28159,27,0 +2020-04-18,Winston,Mississippi,28159,29,0 +2020-04-19,Winston,Mississippi,28159,33,0 +2020-04-20,Winston,Mississippi,28159,36,0 +2020-04-21,Winston,Mississippi,28159,34,0 +2020-04-22,Winston,Mississippi,28159,36,0 +2020-04-23,Winston,Mississippi,28159,37,0 +2020-04-24,Winston,Mississippi,28159,38,0 +2020-04-25,Winston,Mississippi,28159,38,0 +2020-04-26,Winston,Mississippi,28159,38,0 +2020-04-27,Winston,Mississippi,28159,40,0 +2020-04-28,Winston,Mississippi,28159,41,0 +2020-04-29,Winston,Mississippi,28159,43,0 +2020-04-30,Winston,Mississippi,28159,42,0 +2020-05-01,Winston,Mississippi,28159,44,0 +2020-05-02,Winston,Mississippi,28159,47,0 +2020-05-03,Winston,Mississippi,28159,47,0 +2020-05-04,Winston,Mississippi,28159,49,0 +2020-05-05,Winston,Mississippi,28159,52,0 +2020-05-06,Winston,Mississippi,28159,53,0 +2020-05-07,Winston,Mississippi,28159,57,0 +2020-05-08,Winston,Mississippi,28159,61,0 +2020-05-09,Winston,Mississippi,28159,61,0 +2020-05-10,Winston,Mississippi,28159,63,0 +2020-05-11,Winston,Mississippi,28159,66,0 +2020-05-12,Winston,Mississippi,28159,67,0 +2020-05-13,Winston,Mississippi,28159,67,0 +2020-05-14,Winston,Mississippi,28159,70,0 +2020-05-15,Winston,Mississippi,28159,73,0 +2020-05-16,Winston,Mississippi,28159,75,0 +2020-05-17,Winston,Mississippi,28159,81,0 +2020-05-18,Winston,Mississippi,28159,83,0 +2020-05-19,Winston,Mississippi,28159,86,0 +2020-05-20,Winston,Mississippi,28159,86,0 +2020-05-21,Winston,Mississippi,28159,92,0 +2020-05-22,Winston,Mississippi,28159,92,0 +2020-05-23,Winston,Mississippi,28159,98,1 +2020-05-24,Winston,Mississippi,28159,98,1 +2020-05-25,Winston,Mississippi,28159,98,1 +2020-05-26,Winston,Mississippi,28159,102,1 +2020-05-27,Winston,Mississippi,28159,105,1 +2020-05-28,Winston,Mississippi,28159,105,1 +2020-05-29,Winston,Mississippi,28159,109,1 +2020-05-30,Winston,Mississippi,28159,112,1 +2020-05-31,Winston,Mississippi,28159,117,1 +2020-06-01,Winston,Mississippi,28159,120,1 +2020-06-02,Winston,Mississippi,28159,121,1 +2020-06-03,Winston,Mississippi,28159,122,1 +2020-06-04,Winston,Mississippi,28159,124,1 +2020-06-05,Winston,Mississippi,28159,124,1 +2020-06-06,Winston,Mississippi,28159,125,1 +2020-06-07,Winston,Mississippi,28159,128,1 +2020-06-08,Winston,Mississippi,28159,136,1 +2020-06-09,Winston,Mississippi,28159,136,1 +2020-06-10,Winston,Mississippi,28159,139,2 +2020-06-11,Winston,Mississippi,28159,139,2 +2020-06-12,Winston,Mississippi,28159,143,2 +2020-06-13,Winston,Mississippi,28159,148,2 +2020-06-14,Winston,Mississippi,28159,149,2 +2020-06-15,Winston,Mississippi,28159,150,2 +2020-06-16,Winston,Mississippi,28159,155,2 +2020-06-17,Winston,Mississippi,28159,158,2 +2020-06-18,Winston,Mississippi,28159,158,2 +2020-06-19,Winston,Mississippi,28159,158,2 +2020-06-20,Winston,Mississippi,28159,158,2 +2020-06-21,Winston,Mississippi,28159,158,2 +2020-06-22,Winston,Mississippi,28159,178,2 +2020-06-23,Winston,Mississippi,28159,193,3 +2020-06-24,Winston,Mississippi,28159,194,4 +2020-06-25,Winston,Mississippi,28159,217,4 +2020-06-26,Winston,Mississippi,28159,223,4 +2020-06-27,Winston,Mississippi,28159,228,4 +2020-06-28,Winston,Mississippi,28159,230,4 +2020-06-29,Winston,Mississippi,28159,230,5 +2020-06-30,Winston,Mississippi,28159,240,5 +2020-07-01,Winston,Mississippi,28159,243,5 +2020-07-02,Winston,Mississippi,28159,244,6 +2020-07-03,Winston,Mississippi,28159,254,6 +2020-07-04,Winston,Mississippi,28159,259,6 +2020-07-05,Winston,Mississippi,28159,261,6 +2020-07-06,Winston,Mississippi,28159,266,6 +2020-07-07,Winston,Mississippi,28159,280,8 +2020-07-08,Winston,Mississippi,28159,282,10 +2020-07-09,Winston,Mississippi,28159,287,11 +2020-03-26,Yalobusha,Mississippi,28161,3,0 +2020-03-27,Yalobusha,Mississippi,28161,3,0 +2020-03-28,Yalobusha,Mississippi,28161,3,0 +2020-03-29,Yalobusha,Mississippi,28161,3,0 +2020-03-30,Yalobusha,Mississippi,28161,5,0 +2020-03-31,Yalobusha,Mississippi,28161,6,0 +2020-04-01,Yalobusha,Mississippi,28161,6,0 +2020-04-02,Yalobusha,Mississippi,28161,7,0 +2020-04-03,Yalobusha,Mississippi,28161,7,0 +2020-04-04,Yalobusha,Mississippi,28161,9,0 +2020-04-05,Yalobusha,Mississippi,28161,9,0 +2020-04-06,Yalobusha,Mississippi,28161,11,0 +2020-04-07,Yalobusha,Mississippi,28161,11,0 +2020-04-08,Yalobusha,Mississippi,28161,11,0 +2020-04-09,Yalobusha,Mississippi,28161,11,0 +2020-04-10,Yalobusha,Mississippi,28161,11,0 +2020-04-11,Yalobusha,Mississippi,28161,13,0 +2020-04-12,Yalobusha,Mississippi,28161,14,0 +2020-04-13,Yalobusha,Mississippi,28161,14,0 +2020-04-14,Yalobusha,Mississippi,28161,14,0 +2020-04-15,Yalobusha,Mississippi,28161,14,0 +2020-04-16,Yalobusha,Mississippi,28161,14,0 +2020-04-17,Yalobusha,Mississippi,28161,14,0 +2020-04-18,Yalobusha,Mississippi,28161,15,0 +2020-04-19,Yalobusha,Mississippi,28161,15,0 +2020-04-20,Yalobusha,Mississippi,28161,16,0 +2020-04-21,Yalobusha,Mississippi,28161,17,0 +2020-04-22,Yalobusha,Mississippi,28161,17,0 +2020-04-23,Yalobusha,Mississippi,28161,17,0 +2020-04-24,Yalobusha,Mississippi,28161,17,0 +2020-04-25,Yalobusha,Mississippi,28161,17,0 +2020-04-26,Yalobusha,Mississippi,28161,18,0 +2020-04-27,Yalobusha,Mississippi,28161,19,0 +2020-04-28,Yalobusha,Mississippi,28161,19,0 +2020-04-29,Yalobusha,Mississippi,28161,19,0 +2020-04-30,Yalobusha,Mississippi,28161,19,0 +2020-05-01,Yalobusha,Mississippi,28161,20,0 +2020-05-02,Yalobusha,Mississippi,28161,20,0 +2020-05-03,Yalobusha,Mississippi,28161,20,0 +2020-05-04,Yalobusha,Mississippi,28161,20,0 +2020-05-05,Yalobusha,Mississippi,28161,21,0 +2020-05-06,Yalobusha,Mississippi,28161,23,0 +2020-05-07,Yalobusha,Mississippi,28161,25,0 +2020-05-08,Yalobusha,Mississippi,28161,27,0 +2020-05-09,Yalobusha,Mississippi,28161,30,0 +2020-05-10,Yalobusha,Mississippi,28161,31,0 +2020-05-11,Yalobusha,Mississippi,28161,36,0 +2020-05-12,Yalobusha,Mississippi,28161,36,0 +2020-05-13,Yalobusha,Mississippi,28161,44,0 +2020-05-14,Yalobusha,Mississippi,28161,65,0 +2020-05-15,Yalobusha,Mississippi,28161,66,0 +2020-05-16,Yalobusha,Mississippi,28161,71,0 +2020-05-17,Yalobusha,Mississippi,28161,71,0 +2020-05-18,Yalobusha,Mississippi,28161,73,1 +2020-05-19,Yalobusha,Mississippi,28161,75,2 +2020-05-20,Yalobusha,Mississippi,28161,75,3 +2020-05-21,Yalobusha,Mississippi,28161,76,4 +2020-05-22,Yalobusha,Mississippi,28161,79,4 +2020-05-23,Yalobusha,Mississippi,28161,82,4 +2020-05-24,Yalobusha,Mississippi,28161,82,4 +2020-05-25,Yalobusha,Mississippi,28161,84,5 +2020-05-26,Yalobusha,Mississippi,28161,84,5 +2020-05-27,Yalobusha,Mississippi,28161,85,5 +2020-05-28,Yalobusha,Mississippi,28161,85,5 +2020-05-29,Yalobusha,Mississippi,28161,87,5 +2020-05-30,Yalobusha,Mississippi,28161,90,5 +2020-05-31,Yalobusha,Mississippi,28161,93,5 +2020-06-01,Yalobusha,Mississippi,28161,94,5 +2020-06-02,Yalobusha,Mississippi,28161,96,6 +2020-06-03,Yalobusha,Mississippi,28161,97,6 +2020-06-04,Yalobusha,Mississippi,28161,104,6 +2020-06-05,Yalobusha,Mississippi,28161,111,6 +2020-06-06,Yalobusha,Mississippi,28161,112,6 +2020-06-07,Yalobusha,Mississippi,28161,114,7 +2020-06-08,Yalobusha,Mississippi,28161,121,7 +2020-06-09,Yalobusha,Mississippi,28161,123,7 +2020-06-10,Yalobusha,Mississippi,28161,128,7 +2020-06-11,Yalobusha,Mississippi,28161,128,7 +2020-06-12,Yalobusha,Mississippi,28161,136,7 +2020-06-13,Yalobusha,Mississippi,28161,137,7 +2020-06-14,Yalobusha,Mississippi,28161,138,7 +2020-06-15,Yalobusha,Mississippi,28161,138,7 +2020-06-16,Yalobusha,Mississippi,28161,139,7 +2020-06-17,Yalobusha,Mississippi,28161,139,7 +2020-06-18,Yalobusha,Mississippi,28161,139,7 +2020-06-19,Yalobusha,Mississippi,28161,139,7 +2020-06-20,Yalobusha,Mississippi,28161,139,7 +2020-06-21,Yalobusha,Mississippi,28161,139,7 +2020-06-22,Yalobusha,Mississippi,28161,132,7 +2020-06-23,Yalobusha,Mississippi,28161,133,7 +2020-06-24,Yalobusha,Mississippi,28161,136,7 +2020-06-25,Yalobusha,Mississippi,28161,141,7 +2020-06-26,Yalobusha,Mississippi,28161,144,7 +2020-06-27,Yalobusha,Mississippi,28161,148,7 +2020-06-28,Yalobusha,Mississippi,28161,148,7 +2020-06-29,Yalobusha,Mississippi,28161,151,7 +2020-06-30,Yalobusha,Mississippi,28161,152,7 +2020-07-01,Yalobusha,Mississippi,28161,161,7 +2020-07-02,Yalobusha,Mississippi,28161,166,7 +2020-07-03,Yalobusha,Mississippi,28161,167,7 +2020-07-04,Yalobusha,Mississippi,28161,171,7 +2020-07-05,Yalobusha,Mississippi,28161,170,7 +2020-07-06,Yalobusha,Mississippi,28161,173,7 +2020-07-07,Yalobusha,Mississippi,28161,180,7 +2020-07-08,Yalobusha,Mississippi,28161,183,8 +2020-07-09,Yalobusha,Mississippi,28161,193,8 +2020-03-19,Yazoo,Mississippi,28163,1,0 +2020-03-20,Yazoo,Mississippi,28163,1,0 +2020-03-21,Yazoo,Mississippi,28163,1,0 +2020-03-22,Yazoo,Mississippi,28163,1,0 +2020-03-23,Yazoo,Mississippi,28163,1,0 +2020-03-24,Yazoo,Mississippi,28163,3,0 +2020-03-25,Yazoo,Mississippi,28163,3,0 +2020-03-26,Yazoo,Mississippi,28163,4,0 +2020-03-27,Yazoo,Mississippi,28163,4,0 +2020-03-28,Yazoo,Mississippi,28163,4,0 +2020-03-29,Yazoo,Mississippi,28163,5,0 +2020-03-30,Yazoo,Mississippi,28163,7,0 +2020-03-31,Yazoo,Mississippi,28163,9,0 +2020-04-01,Yazoo,Mississippi,28163,9,0 +2020-04-02,Yazoo,Mississippi,28163,11,1 +2020-04-03,Yazoo,Mississippi,28163,13,1 +2020-04-04,Yazoo,Mississippi,28163,19,1 +2020-04-05,Yazoo,Mississippi,28163,31,1 +2020-04-06,Yazoo,Mississippi,28163,32,1 +2020-04-07,Yazoo,Mississippi,28163,32,1 +2020-04-08,Yazoo,Mississippi,28163,38,1 +2020-04-09,Yazoo,Mississippi,28163,47,1 +2020-04-10,Yazoo,Mississippi,28163,55,1 +2020-04-11,Yazoo,Mississippi,28163,58,1 +2020-04-12,Yazoo,Mississippi,28163,63,1 +2020-04-13,Yazoo,Mississippi,28163,64,1 +2020-04-14,Yazoo,Mississippi,28163,64,1 +2020-04-15,Yazoo,Mississippi,28163,65,1 +2020-04-16,Yazoo,Mississippi,28163,72,1 +2020-04-17,Yazoo,Mississippi,28163,81,1 +2020-04-18,Yazoo,Mississippi,28163,85,1 +2020-04-19,Yazoo,Mississippi,28163,91,1 +2020-04-20,Yazoo,Mississippi,28163,95,1 +2020-04-21,Yazoo,Mississippi,28163,103,1 +2020-04-22,Yazoo,Mississippi,28163,103,1 +2020-04-23,Yazoo,Mississippi,28163,110,1 +2020-04-24,Yazoo,Mississippi,28163,117,1 +2020-04-25,Yazoo,Mississippi,28163,120,1 +2020-04-26,Yazoo,Mississippi,28163,122,1 +2020-04-27,Yazoo,Mississippi,28163,126,1 +2020-04-28,Yazoo,Mississippi,28163,129,1 +2020-04-29,Yazoo,Mississippi,28163,134,1 +2020-04-30,Yazoo,Mississippi,28163,135,1 +2020-05-01,Yazoo,Mississippi,28163,139,1 +2020-05-02,Yazoo,Mississippi,28163,144,1 +2020-05-03,Yazoo,Mississippi,28163,147,2 +2020-05-04,Yazoo,Mississippi,28163,151,2 +2020-05-05,Yazoo,Mississippi,28163,154,2 +2020-05-06,Yazoo,Mississippi,28163,155,2 +2020-05-07,Yazoo,Mississippi,28163,154,2 +2020-05-08,Yazoo,Mississippi,28163,162,2 +2020-05-09,Yazoo,Mississippi,28163,162,2 +2020-05-10,Yazoo,Mississippi,28163,164,2 +2020-05-11,Yazoo,Mississippi,28163,169,2 +2020-05-12,Yazoo,Mississippi,28163,169,2 +2020-05-13,Yazoo,Mississippi,28163,171,2 +2020-05-14,Yazoo,Mississippi,28163,176,2 +2020-05-15,Yazoo,Mississippi,28163,180,2 +2020-05-16,Yazoo,Mississippi,28163,182,2 +2020-05-17,Yazoo,Mississippi,28163,188,2 +2020-05-18,Yazoo,Mississippi,28163,190,2 +2020-05-19,Yazoo,Mississippi,28163,192,2 +2020-05-20,Yazoo,Mississippi,28163,194,2 +2020-05-21,Yazoo,Mississippi,28163,194,2 +2020-05-22,Yazoo,Mississippi,28163,198,2 +2020-05-23,Yazoo,Mississippi,28163,204,2 +2020-05-24,Yazoo,Mississippi,28163,215,2 +2020-05-25,Yazoo,Mississippi,28163,219,2 +2020-05-26,Yazoo,Mississippi,28163,221,2 +2020-05-27,Yazoo,Mississippi,28163,223,3 +2020-05-28,Yazoo,Mississippi,28163,227,4 +2020-05-29,Yazoo,Mississippi,28163,239,4 +2020-05-30,Yazoo,Mississippi,28163,273,4 +2020-05-31,Yazoo,Mississippi,28163,281,4 +2020-06-01,Yazoo,Mississippi,28163,283,4 +2020-06-02,Yazoo,Mississippi,28163,286,4 +2020-06-03,Yazoo,Mississippi,28163,291,4 +2020-06-04,Yazoo,Mississippi,28163,296,4 +2020-06-05,Yazoo,Mississippi,28163,298,5 +2020-06-06,Yazoo,Mississippi,28163,300,5 +2020-06-07,Yazoo,Mississippi,28163,301,5 +2020-06-08,Yazoo,Mississippi,28163,310,6 +2020-06-09,Yazoo,Mississippi,28163,321,6 +2020-06-10,Yazoo,Mississippi,28163,329,6 +2020-06-11,Yazoo,Mississippi,28163,329,6 +2020-06-12,Yazoo,Mississippi,28163,337,6 +2020-06-13,Yazoo,Mississippi,28163,347,6 +2020-06-14,Yazoo,Mississippi,28163,348,6 +2020-06-15,Yazoo,Mississippi,28163,348,6 +2020-06-16,Yazoo,Mississippi,28163,350,6 +2020-06-17,Yazoo,Mississippi,28163,354,6 +2020-06-18,Yazoo,Mississippi,28163,354,6 +2020-06-19,Yazoo,Mississippi,28163,354,6 +2020-06-20,Yazoo,Mississippi,28163,354,6 +2020-06-21,Yazoo,Mississippi,28163,354,6 +2020-06-22,Yazoo,Mississippi,28163,395,6 +2020-06-23,Yazoo,Mississippi,28163,407,6 +2020-06-24,Yazoo,Mississippi,28163,412,6 +2020-06-25,Yazoo,Mississippi,28163,426,6 +2020-06-26,Yazoo,Mississippi,28163,441,6 +2020-06-27,Yazoo,Mississippi,28163,444,6 +2020-06-28,Yazoo,Mississippi,28163,445,6 +2020-06-29,Yazoo,Mississippi,28163,454,6 +2020-06-30,Yazoo,Mississippi,28163,467,6 +2020-07-01,Yazoo,Mississippi,28163,473,6 +2020-07-02,Yazoo,Mississippi,28163,478,6 +2020-07-03,Yazoo,Mississippi,28163,493,6 +2020-07-04,Yazoo,Mississippi,28163,505,6 +2020-07-05,Yazoo,Mississippi,28163,509,6 +2020-07-06,Yazoo,Mississippi,28163,513,6 +2020-07-07,Yazoo,Mississippi,28163,523,6 +2020-07-08,Yazoo,Mississippi,28163,533,6 +2020-07-09,Yazoo,Mississippi,28163,543,6 +2020-03-23,Adair,Missouri,29001,2,0 +2020-03-24,Adair,Missouri,29001,2,0 +2020-03-25,Adair,Missouri,29001,2,0 +2020-03-26,Adair,Missouri,29001,2,0 +2020-03-27,Adair,Missouri,29001,2,0 +2020-03-28,Adair,Missouri,29001,2,0 +2020-03-29,Adair,Missouri,29001,2,0 +2020-03-30,Adair,Missouri,29001,2,0 +2020-03-31,Adair,Missouri,29001,2,0 +2020-04-01,Adair,Missouri,29001,3,0 +2020-04-02,Adair,Missouri,29001,6,0 +2020-04-03,Adair,Missouri,29001,8,0 +2020-04-04,Adair,Missouri,29001,10,0 +2020-04-05,Adair,Missouri,29001,10,0 +2020-04-06,Adair,Missouri,29001,10,0 +2020-04-07,Adair,Missouri,29001,11,0 +2020-04-08,Adair,Missouri,29001,11,0 +2020-04-09,Adair,Missouri,29001,11,0 +2020-04-10,Adair,Missouri,29001,11,0 +2020-04-11,Adair,Missouri,29001,11,0 +2020-04-12,Adair,Missouri,29001,11,0 +2020-04-13,Adair,Missouri,29001,11,0 +2020-04-14,Adair,Missouri,29001,11,0 +2020-04-15,Adair,Missouri,29001,12,0 +2020-04-16,Adair,Missouri,29001,12,0 +2020-04-17,Adair,Missouri,29001,12,0 +2020-04-18,Adair,Missouri,29001,12,0 +2020-04-19,Adair,Missouri,29001,12,0 +2020-04-20,Adair,Missouri,29001,12,0 +2020-04-21,Adair,Missouri,29001,12,0 +2020-04-22,Adair,Missouri,29001,12,0 +2020-04-23,Adair,Missouri,29001,12,0 +2020-04-24,Adair,Missouri,29001,12,0 +2020-04-25,Adair,Missouri,29001,12,0 +2020-04-26,Adair,Missouri,29001,12,0 +2020-04-27,Adair,Missouri,29001,12,0 +2020-04-28,Adair,Missouri,29001,12,0 +2020-04-29,Adair,Missouri,29001,12,0 +2020-04-30,Adair,Missouri,29001,12,0 +2020-05-01,Adair,Missouri,29001,12,0 +2020-05-02,Adair,Missouri,29001,12,0 +2020-05-03,Adair,Missouri,29001,12,0 +2020-05-04,Adair,Missouri,29001,12,0 +2020-05-05,Adair,Missouri,29001,12,0 +2020-05-06,Adair,Missouri,29001,12,0 +2020-05-07,Adair,Missouri,29001,12,0 +2020-05-08,Adair,Missouri,29001,12,0 +2020-05-09,Adair,Missouri,29001,12,0 +2020-05-10,Adair,Missouri,29001,12,0 +2020-05-11,Adair,Missouri,29001,12,0 +2020-05-12,Adair,Missouri,29001,12,0 +2020-05-13,Adair,Missouri,29001,12,0 +2020-05-14,Adair,Missouri,29001,15,0 +2020-05-15,Adair,Missouri,29001,17,0 +2020-05-16,Adair,Missouri,29001,23,0 +2020-05-17,Adair,Missouri,29001,26,0 +2020-05-18,Adair,Missouri,29001,29,0 +2020-05-19,Adair,Missouri,29001,29,0 +2020-05-20,Adair,Missouri,29001,34,0 +2020-05-21,Adair,Missouri,29001,34,0 +2020-05-22,Adair,Missouri,29001,38,0 +2020-05-23,Adair,Missouri,29001,38,0 +2020-05-24,Adair,Missouri,29001,41,0 +2020-05-25,Adair,Missouri,29001,44,0 +2020-05-26,Adair,Missouri,29001,46,0 +2020-05-27,Adair,Missouri,29001,45,0 +2020-05-28,Adair,Missouri,29001,49,0 +2020-05-29,Adair,Missouri,29001,50,0 +2020-05-30,Adair,Missouri,29001,51,0 +2020-05-31,Adair,Missouri,29001,55,0 +2020-06-01,Adair,Missouri,29001,60,0 +2020-06-02,Adair,Missouri,29001,60,0 +2020-06-03,Adair,Missouri,29001,60,0 +2020-06-04,Adair,Missouri,29001,62,0 +2020-06-05,Adair,Missouri,29001,67,0 +2020-06-06,Adair,Missouri,29001,68,0 +2020-06-07,Adair,Missouri,29001,72,0 +2020-06-08,Adair,Missouri,29001,72,0 +2020-06-09,Adair,Missouri,29001,74,0 +2020-06-10,Adair,Missouri,29001,74,0 +2020-06-11,Adair,Missouri,29001,74,0 +2020-06-12,Adair,Missouri,29001,75,0 +2020-06-13,Adair,Missouri,29001,80,0 +2020-06-14,Adair,Missouri,29001,80,0 +2020-06-15,Adair,Missouri,29001,83,0 +2020-06-16,Adair,Missouri,29001,84,0 +2020-06-17,Adair,Missouri,29001,85,0 +2020-06-18,Adair,Missouri,29001,85,0 +2020-06-19,Adair,Missouri,29001,85,0 +2020-06-20,Adair,Missouri,29001,84,0 +2020-06-21,Adair,Missouri,29001,85,0 +2020-06-22,Adair,Missouri,29001,86,0 +2020-06-23,Adair,Missouri,29001,86,0 +2020-06-24,Adair,Missouri,29001,87,0 +2020-06-25,Adair,Missouri,29001,88,0 +2020-06-26,Adair,Missouri,29001,88,0 +2020-06-27,Adair,Missouri,29001,90,0 +2020-06-28,Adair,Missouri,29001,90,0 +2020-06-29,Adair,Missouri,29001,90,0 +2020-06-30,Adair,Missouri,29001,91,0 +2020-07-01,Adair,Missouri,29001,91,0 +2020-07-02,Adair,Missouri,29001,91,0 +2020-07-03,Adair,Missouri,29001,91,0 +2020-07-04,Adair,Missouri,29001,99,0 +2020-07-05,Adair,Missouri,29001,99,0 +2020-07-06,Adair,Missouri,29001,100,0 +2020-07-07,Adair,Missouri,29001,104,0 +2020-07-08,Adair,Missouri,29001,104,0 +2020-07-09,Adair,Missouri,29001,104,0 +2020-04-11,Andrew,Missouri,29003,1,0 +2020-04-12,Andrew,Missouri,29003,1,0 +2020-04-13,Andrew,Missouri,29003,1,0 +2020-04-14,Andrew,Missouri,29003,1,0 +2020-04-15,Andrew,Missouri,29003,1,0 +2020-04-16,Andrew,Missouri,29003,1,0 +2020-04-17,Andrew,Missouri,29003,1,0 +2020-04-18,Andrew,Missouri,29003,1,0 +2020-04-19,Andrew,Missouri,29003,1,0 +2020-04-20,Andrew,Missouri,29003,1,0 +2020-04-21,Andrew,Missouri,29003,1,0 +2020-04-22,Andrew,Missouri,29003,1,0 +2020-04-23,Andrew,Missouri,29003,1,0 +2020-04-24,Andrew,Missouri,29003,1,0 +2020-04-25,Andrew,Missouri,29003,1,0 +2020-04-26,Andrew,Missouri,29003,1,0 +2020-04-27,Andrew,Missouri,29003,2,0 +2020-04-28,Andrew,Missouri,29003,2,0 +2020-04-29,Andrew,Missouri,29003,2,0 +2020-04-30,Andrew,Missouri,29003,2,0 +2020-05-01,Andrew,Missouri,29003,3,0 +2020-05-02,Andrew,Missouri,29003,3,0 +2020-05-03,Andrew,Missouri,29003,5,0 +2020-05-04,Andrew,Missouri,29003,6,0 +2020-05-05,Andrew,Missouri,29003,6,0 +2020-05-06,Andrew,Missouri,29003,6,0 +2020-05-07,Andrew,Missouri,29003,5,0 +2020-05-08,Andrew,Missouri,29003,6,0 +2020-05-09,Andrew,Missouri,29003,7,0 +2020-05-10,Andrew,Missouri,29003,8,0 +2020-05-11,Andrew,Missouri,29003,8,0 +2020-05-12,Andrew,Missouri,29003,8,0 +2020-05-13,Andrew,Missouri,29003,11,0 +2020-05-14,Andrew,Missouri,29003,11,0 +2020-05-15,Andrew,Missouri,29003,14,0 +2020-05-16,Andrew,Missouri,29003,14,0 +2020-05-17,Andrew,Missouri,29003,15,0 +2020-05-18,Andrew,Missouri,29003,17,0 +2020-05-19,Andrew,Missouri,29003,19,0 +2020-05-20,Andrew,Missouri,29003,20,0 +2020-05-21,Andrew,Missouri,29003,20,0 +2020-05-22,Andrew,Missouri,29003,20,0 +2020-05-23,Andrew,Missouri,29003,20,0 +2020-05-24,Andrew,Missouri,29003,23,0 +2020-05-25,Andrew,Missouri,29003,24,0 +2020-05-26,Andrew,Missouri,29003,24,0 +2020-05-27,Andrew,Missouri,29003,30,0 +2020-05-28,Andrew,Missouri,29003,30,0 +2020-05-29,Andrew,Missouri,29003,30,0 +2020-05-30,Andrew,Missouri,29003,30,0 +2020-05-31,Andrew,Missouri,29003,30,0 +2020-06-01,Andrew,Missouri,29003,30,0 +2020-06-02,Andrew,Missouri,29003,30,0 +2020-06-03,Andrew,Missouri,29003,31,0 +2020-06-04,Andrew,Missouri,29003,31,0 +2020-06-05,Andrew,Missouri,29003,32,0 +2020-06-06,Andrew,Missouri,29003,33,0 +2020-06-07,Andrew,Missouri,29003,33,0 +2020-06-08,Andrew,Missouri,29003,33,0 +2020-06-09,Andrew,Missouri,29003,33,0 +2020-06-10,Andrew,Missouri,29003,34,0 +2020-06-11,Andrew,Missouri,29003,34,0 +2020-06-12,Andrew,Missouri,29003,34,0 +2020-06-13,Andrew,Missouri,29003,35,0 +2020-06-14,Andrew,Missouri,29003,35,0 +2020-06-15,Andrew,Missouri,29003,35,0 +2020-06-16,Andrew,Missouri,29003,35,0 +2020-06-17,Andrew,Missouri,29003,35,0 +2020-06-18,Andrew,Missouri,29003,36,0 +2020-06-19,Andrew,Missouri,29003,39,0 +2020-06-20,Andrew,Missouri,29003,41,0 +2020-06-21,Andrew,Missouri,29003,41,0 +2020-06-22,Andrew,Missouri,29003,42,0 +2020-06-23,Andrew,Missouri,29003,43,0 +2020-06-24,Andrew,Missouri,29003,45,0 +2020-06-25,Andrew,Missouri,29003,45,0 +2020-06-26,Andrew,Missouri,29003,45,0 +2020-06-27,Andrew,Missouri,29003,49,0 +2020-06-28,Andrew,Missouri,29003,49,0 +2020-06-29,Andrew,Missouri,29003,50,0 +2020-06-30,Andrew,Missouri,29003,51,0 +2020-07-01,Andrew,Missouri,29003,52,0 +2020-07-02,Andrew,Missouri,29003,54,0 +2020-07-03,Andrew,Missouri,29003,55,0 +2020-07-04,Andrew,Missouri,29003,55,0 +2020-07-05,Andrew,Missouri,29003,55,0 +2020-07-06,Andrew,Missouri,29003,56,0 +2020-07-07,Andrew,Missouri,29003,59,0 +2020-07-08,Andrew,Missouri,29003,59,0 +2020-07-09,Andrew,Missouri,29003,58,0 +2020-03-27,Atchison,Missouri,29005,1,0 +2020-03-28,Atchison,Missouri,29005,1,0 +2020-03-29,Atchison,Missouri,29005,1,0 +2020-03-30,Atchison,Missouri,29005,1,0 +2020-03-31,Atchison,Missouri,29005,1,0 +2020-04-01,Atchison,Missouri,29005,1,0 +2020-04-02,Atchison,Missouri,29005,1,0 +2020-04-03,Atchison,Missouri,29005,1,0 +2020-04-04,Atchison,Missouri,29005,1,0 +2020-04-05,Atchison,Missouri,29005,1,0 +2020-04-06,Atchison,Missouri,29005,1,0 +2020-04-07,Atchison,Missouri,29005,1,0 +2020-04-08,Atchison,Missouri,29005,1,0 +2020-04-09,Atchison,Missouri,29005,1,0 +2020-04-10,Atchison,Missouri,29005,1,0 +2020-04-11,Atchison,Missouri,29005,1,0 +2020-04-12,Atchison,Missouri,29005,1,0 +2020-04-13,Atchison,Missouri,29005,1,0 +2020-04-14,Atchison,Missouri,29005,2,0 +2020-04-15,Atchison,Missouri,29005,2,0 +2020-04-16,Atchison,Missouri,29005,2,0 +2020-04-17,Atchison,Missouri,29005,2,0 +2020-04-18,Atchison,Missouri,29005,2,0 +2020-04-19,Atchison,Missouri,29005,2,0 +2020-04-20,Atchison,Missouri,29005,2,0 +2020-04-21,Atchison,Missouri,29005,2,0 +2020-04-22,Atchison,Missouri,29005,2,0 +2020-04-23,Atchison,Missouri,29005,2,0 +2020-04-24,Atchison,Missouri,29005,2,0 +2020-04-25,Atchison,Missouri,29005,2,0 +2020-04-26,Atchison,Missouri,29005,2,0 +2020-04-27,Atchison,Missouri,29005,2,0 +2020-04-28,Atchison,Missouri,29005,2,0 +2020-04-29,Atchison,Missouri,29005,2,0 +2020-04-30,Atchison,Missouri,29005,2,0 +2020-05-01,Atchison,Missouri,29005,2,0 +2020-05-02,Atchison,Missouri,29005,2,0 +2020-05-03,Atchison,Missouri,29005,2,0 +2020-05-04,Atchison,Missouri,29005,2,0 +2020-05-05,Atchison,Missouri,29005,2,0 +2020-05-06,Atchison,Missouri,29005,2,0 +2020-05-07,Atchison,Missouri,29005,2,0 +2020-05-08,Atchison,Missouri,29005,2,0 +2020-05-09,Atchison,Missouri,29005,2,0 +2020-05-10,Atchison,Missouri,29005,2,0 +2020-05-11,Atchison,Missouri,29005,2,0 +2020-05-12,Atchison,Missouri,29005,2,0 +2020-05-13,Atchison,Missouri,29005,2,0 +2020-05-14,Atchison,Missouri,29005,2,0 +2020-05-15,Atchison,Missouri,29005,2,0 +2020-05-16,Atchison,Missouri,29005,2,0 +2020-05-17,Atchison,Missouri,29005,2,0 +2020-05-18,Atchison,Missouri,29005,2,0 +2020-05-19,Atchison,Missouri,29005,2,0 +2020-05-20,Atchison,Missouri,29005,3,0 +2020-05-21,Atchison,Missouri,29005,3,0 +2020-05-22,Atchison,Missouri,29005,3,0 +2020-05-23,Atchison,Missouri,29005,3,0 +2020-05-24,Atchison,Missouri,29005,3,0 +2020-05-25,Atchison,Missouri,29005,3,0 +2020-05-26,Atchison,Missouri,29005,3,0 +2020-05-27,Atchison,Missouri,29005,3,0 +2020-05-28,Atchison,Missouri,29005,3,0 +2020-05-29,Atchison,Missouri,29005,3,0 +2020-05-30,Atchison,Missouri,29005,3,0 +2020-05-31,Atchison,Missouri,29005,3,0 +2020-06-01,Atchison,Missouri,29005,3,0 +2020-06-02,Atchison,Missouri,29005,3,0 +2020-06-03,Atchison,Missouri,29005,3,0 +2020-06-04,Atchison,Missouri,29005,3,0 +2020-06-05,Atchison,Missouri,29005,3,0 +2020-06-06,Atchison,Missouri,29005,3,0 +2020-06-07,Atchison,Missouri,29005,3,0 +2020-06-08,Atchison,Missouri,29005,3,0 +2020-06-09,Atchison,Missouri,29005,3,0 +2020-06-10,Atchison,Missouri,29005,3,0 +2020-06-11,Atchison,Missouri,29005,3,0 +2020-06-12,Atchison,Missouri,29005,3,0 +2020-06-13,Atchison,Missouri,29005,3,0 +2020-06-14,Atchison,Missouri,29005,3,0 +2020-06-15,Atchison,Missouri,29005,3,0 +2020-06-16,Atchison,Missouri,29005,3,0 +2020-06-17,Atchison,Missouri,29005,3,0 +2020-06-18,Atchison,Missouri,29005,3,0 +2020-06-19,Atchison,Missouri,29005,3,0 +2020-06-20,Atchison,Missouri,29005,3,0 +2020-06-21,Atchison,Missouri,29005,3,0 +2020-06-22,Atchison,Missouri,29005,3,0 +2020-06-23,Atchison,Missouri,29005,3,0 +2020-06-24,Atchison,Missouri,29005,3,0 +2020-06-25,Atchison,Missouri,29005,3,0 +2020-06-26,Atchison,Missouri,29005,3,0 +2020-06-27,Atchison,Missouri,29005,3,0 +2020-06-28,Atchison,Missouri,29005,3,0 +2020-06-29,Atchison,Missouri,29005,3,0 +2020-06-30,Atchison,Missouri,29005,3,0 +2020-07-01,Atchison,Missouri,29005,3,0 +2020-07-02,Atchison,Missouri,29005,4,0 +2020-07-03,Atchison,Missouri,29005,4,0 +2020-07-04,Atchison,Missouri,29005,5,0 +2020-07-05,Atchison,Missouri,29005,5,0 +2020-07-06,Atchison,Missouri,29005,5,0 +2020-07-07,Atchison,Missouri,29005,6,0 +2020-07-08,Atchison,Missouri,29005,6,0 +2020-07-09,Atchison,Missouri,29005,6,0 +2020-04-19,Audrain,Missouri,29007,1,0 +2020-04-20,Audrain,Missouri,29007,1,0 +2020-04-21,Audrain,Missouri,29007,1,0 +2020-04-22,Audrain,Missouri,29007,1,0 +2020-04-23,Audrain,Missouri,29007,1,0 +2020-04-24,Audrain,Missouri,29007,1,0 +2020-04-25,Audrain,Missouri,29007,1,0 +2020-04-26,Audrain,Missouri,29007,1,0 +2020-04-27,Audrain,Missouri,29007,1,0 +2020-04-28,Audrain,Missouri,29007,1,0 +2020-04-29,Audrain,Missouri,29007,1,0 +2020-04-30,Audrain,Missouri,29007,1,0 +2020-05-01,Audrain,Missouri,29007,1,0 +2020-05-02,Audrain,Missouri,29007,1,0 +2020-05-03,Audrain,Missouri,29007,1,0 +2020-05-04,Audrain,Missouri,29007,1,0 +2020-05-05,Audrain,Missouri,29007,1,0 +2020-05-06,Audrain,Missouri,29007,1,0 +2020-05-07,Audrain,Missouri,29007,1,0 +2020-05-08,Audrain,Missouri,29007,1,0 +2020-05-09,Audrain,Missouri,29007,1,0 +2020-05-10,Audrain,Missouri,29007,2,0 +2020-05-11,Audrain,Missouri,29007,2,0 +2020-05-12,Audrain,Missouri,29007,2,0 +2020-05-13,Audrain,Missouri,29007,2,0 +2020-05-14,Audrain,Missouri,29007,2,0 +2020-05-15,Audrain,Missouri,29007,2,0 +2020-05-16,Audrain,Missouri,29007,2,0 +2020-05-17,Audrain,Missouri,29007,2,0 +2020-05-18,Audrain,Missouri,29007,2,0 +2020-05-19,Audrain,Missouri,29007,6,0 +2020-05-20,Audrain,Missouri,29007,18,0 +2020-05-21,Audrain,Missouri,29007,21,0 +2020-05-22,Audrain,Missouri,29007,27,0 +2020-05-23,Audrain,Missouri,29007,34,0 +2020-05-24,Audrain,Missouri,29007,56,0 +2020-05-25,Audrain,Missouri,29007,60,0 +2020-05-26,Audrain,Missouri,29007,61,0 +2020-05-27,Audrain,Missouri,29007,68,0 +2020-05-28,Audrain,Missouri,29007,71,0 +2020-05-29,Audrain,Missouri,29007,73,0 +2020-05-30,Audrain,Missouri,29007,79,0 +2020-05-31,Audrain,Missouri,29007,82,0 +2020-06-01,Audrain,Missouri,29007,85,0 +2020-06-02,Audrain,Missouri,29007,90,1 +2020-06-03,Audrain,Missouri,29007,97,1 +2020-06-04,Audrain,Missouri,29007,102,2 +2020-06-05,Audrain,Missouri,29007,108,2 +2020-06-06,Audrain,Missouri,29007,111,2 +2020-06-07,Audrain,Missouri,29007,111,2 +2020-06-08,Audrain,Missouri,29007,117,1 +2020-06-09,Audrain,Missouri,29007,117,2 +2020-06-10,Audrain,Missouri,29007,119,1 +2020-06-11,Audrain,Missouri,29007,120,1 +2020-06-12,Audrain,Missouri,29007,122,1 +2020-06-13,Audrain,Missouri,29007,122,1 +2020-06-14,Audrain,Missouri,29007,122,1 +2020-06-15,Audrain,Missouri,29007,122,1 +2020-06-16,Audrain,Missouri,29007,122,1 +2020-06-17,Audrain,Missouri,29007,122,1 +2020-06-18,Audrain,Missouri,29007,123,1 +2020-06-19,Audrain,Missouri,29007,133,1 +2020-06-20,Audrain,Missouri,29007,134,1 +2020-06-21,Audrain,Missouri,29007,134,1 +2020-06-22,Audrain,Missouri,29007,134,1 +2020-06-23,Audrain,Missouri,29007,137,1 +2020-06-24,Audrain,Missouri,29007,137,1 +2020-06-25,Audrain,Missouri,29007,137,1 +2020-06-26,Audrain,Missouri,29007,139,1 +2020-06-27,Audrain,Missouri,29007,138,1 +2020-06-28,Audrain,Missouri,29007,138,1 +2020-06-29,Audrain,Missouri,29007,138,1 +2020-06-30,Audrain,Missouri,29007,138,1 +2020-07-01,Audrain,Missouri,29007,138,1 +2020-07-02,Audrain,Missouri,29007,139,1 +2020-07-03,Audrain,Missouri,29007,139,1 +2020-07-04,Audrain,Missouri,29007,139,1 +2020-07-05,Audrain,Missouri,29007,139,1 +2020-07-06,Audrain,Missouri,29007,139,1 +2020-07-07,Audrain,Missouri,29007,139,1 +2020-07-08,Audrain,Missouri,29007,142,1 +2020-07-09,Audrain,Missouri,29007,142,1 +2020-03-27,Barry,Missouri,29009,1,0 +2020-03-28,Barry,Missouri,29009,1,0 +2020-03-29,Barry,Missouri,29009,1,0 +2020-03-30,Barry,Missouri,29009,1,0 +2020-03-31,Barry,Missouri,29009,1,0 +2020-04-01,Barry,Missouri,29009,1,0 +2020-04-02,Barry,Missouri,29009,1,0 +2020-04-03,Barry,Missouri,29009,1,0 +2020-04-04,Barry,Missouri,29009,1,0 +2020-04-05,Barry,Missouri,29009,1,0 +2020-04-06,Barry,Missouri,29009,1,0 +2020-04-07,Barry,Missouri,29009,1,0 +2020-04-08,Barry,Missouri,29009,2,0 +2020-04-09,Barry,Missouri,29009,1,0 +2020-04-10,Barry,Missouri,29009,2,0 +2020-04-11,Barry,Missouri,29009,2,0 +2020-04-12,Barry,Missouri,29009,2,0 +2020-04-13,Barry,Missouri,29009,2,0 +2020-04-14,Barry,Missouri,29009,2,0 +2020-04-15,Barry,Missouri,29009,2,0 +2020-04-16,Barry,Missouri,29009,3,0 +2020-04-17,Barry,Missouri,29009,3,0 +2020-04-18,Barry,Missouri,29009,3,0 +2020-04-19,Barry,Missouri,29009,3,0 +2020-04-20,Barry,Missouri,29009,4,0 +2020-04-21,Barry,Missouri,29009,5,0 +2020-04-22,Barry,Missouri,29009,5,0 +2020-04-23,Barry,Missouri,29009,5,0 +2020-04-24,Barry,Missouri,29009,5,0 +2020-04-25,Barry,Missouri,29009,6,0 +2020-04-26,Barry,Missouri,29009,6,0 +2020-04-27,Barry,Missouri,29009,6,0 +2020-04-28,Barry,Missouri,29009,5,0 +2020-04-29,Barry,Missouri,29009,5,0 +2020-04-30,Barry,Missouri,29009,5,0 +2020-05-01,Barry,Missouri,29009,5,0 +2020-05-02,Barry,Missouri,29009,5,0 +2020-05-03,Barry,Missouri,29009,5,0 +2020-05-04,Barry,Missouri,29009,5,0 +2020-05-05,Barry,Missouri,29009,5,0 +2020-05-06,Barry,Missouri,29009,5,0 +2020-05-07,Barry,Missouri,29009,6,0 +2020-05-08,Barry,Missouri,29009,6,0 +2020-05-09,Barry,Missouri,29009,6,0 +2020-05-10,Barry,Missouri,29009,6,0 +2020-05-11,Barry,Missouri,29009,6,0 +2020-05-12,Barry,Missouri,29009,6,0 +2020-05-13,Barry,Missouri,29009,6,0 +2020-05-14,Barry,Missouri,29009,6,0 +2020-05-15,Barry,Missouri,29009,6,0 +2020-05-16,Barry,Missouri,29009,6,0 +2020-05-17,Barry,Missouri,29009,6,0 +2020-05-18,Barry,Missouri,29009,6,0 +2020-05-19,Barry,Missouri,29009,6,0 +2020-05-20,Barry,Missouri,29009,6,0 +2020-05-21,Barry,Missouri,29009,7,0 +2020-05-22,Barry,Missouri,29009,8,0 +2020-05-23,Barry,Missouri,29009,8,0 +2020-05-24,Barry,Missouri,29009,9,0 +2020-05-25,Barry,Missouri,29009,9,0 +2020-05-26,Barry,Missouri,29009,9,0 +2020-05-27,Barry,Missouri,29009,9,0 +2020-05-28,Barry,Missouri,29009,9,0 +2020-05-29,Barry,Missouri,29009,9,0 +2020-05-30,Barry,Missouri,29009,9,0 +2020-05-31,Barry,Missouri,29009,9,0 +2020-06-01,Barry,Missouri,29009,9,0 +2020-06-02,Barry,Missouri,29009,9,0 +2020-06-03,Barry,Missouri,29009,9,0 +2020-06-04,Barry,Missouri,29009,9,0 +2020-06-05,Barry,Missouri,29009,9,0 +2020-06-06,Barry,Missouri,29009,9,0 +2020-06-07,Barry,Missouri,29009,9,0 +2020-06-08,Barry,Missouri,29009,9,0 +2020-06-09,Barry,Missouri,29009,9,0 +2020-06-10,Barry,Missouri,29009,9,0 +2020-06-11,Barry,Missouri,29009,8,0 +2020-06-12,Barry,Missouri,29009,9,0 +2020-06-13,Barry,Missouri,29009,10,0 +2020-06-14,Barry,Missouri,29009,10,0 +2020-06-15,Barry,Missouri,29009,14,0 +2020-06-16,Barry,Missouri,29009,15,0 +2020-06-17,Barry,Missouri,29009,20,0 +2020-06-18,Barry,Missouri,29009,25,0 +2020-06-19,Barry,Missouri,29009,28,0 +2020-06-20,Barry,Missouri,29009,31,0 +2020-06-21,Barry,Missouri,29009,31,0 +2020-06-22,Barry,Missouri,29009,31,0 +2020-06-23,Barry,Missouri,29009,31,0 +2020-06-24,Barry,Missouri,29009,32,0 +2020-06-25,Barry,Missouri,29009,34,0 +2020-06-26,Barry,Missouri,29009,36,0 +2020-06-27,Barry,Missouri,29009,43,0 +2020-06-28,Barry,Missouri,29009,45,0 +2020-06-29,Barry,Missouri,29009,47,0 +2020-06-30,Barry,Missouri,29009,52,0 +2020-07-01,Barry,Missouri,29009,52,0 +2020-07-02,Barry,Missouri,29009,66,0 +2020-07-03,Barry,Missouri,29009,71,0 +2020-07-04,Barry,Missouri,29009,74,0 +2020-07-05,Barry,Missouri,29009,72,0 +2020-07-06,Barry,Missouri,29009,72,0 +2020-07-07,Barry,Missouri,29009,81,0 +2020-07-08,Barry,Missouri,29009,86,0 +2020-07-09,Barry,Missouri,29009,87,0 +2020-06-11,Barton,Missouri,29011,1,0 +2020-06-12,Barton,Missouri,29011,1,0 +2020-06-13,Barton,Missouri,29011,1,0 +2020-06-14,Barton,Missouri,29011,1,0 +2020-06-15,Barton,Missouri,29011,7,0 +2020-06-16,Barton,Missouri,29011,9,0 +2020-06-17,Barton,Missouri,29011,11,0 +2020-06-18,Barton,Missouri,29011,10,0 +2020-06-19,Barton,Missouri,29011,15,0 +2020-06-20,Barton,Missouri,29011,15,0 +2020-06-21,Barton,Missouri,29011,15,0 +2020-06-22,Barton,Missouri,29011,15,0 +2020-06-23,Barton,Missouri,29011,16,0 +2020-06-24,Barton,Missouri,29011,17,0 +2020-06-25,Barton,Missouri,29011,21,0 +2020-06-26,Barton,Missouri,29011,21,0 +2020-06-27,Barton,Missouri,29011,21,0 +2020-06-28,Barton,Missouri,29011,22,0 +2020-06-29,Barton,Missouri,29011,24,0 +2020-06-30,Barton,Missouri,29011,25,0 +2020-07-01,Barton,Missouri,29011,26,0 +2020-07-02,Barton,Missouri,29011,26,0 +2020-07-03,Barton,Missouri,29011,26,0 +2020-07-04,Barton,Missouri,29011,28,0 +2020-07-05,Barton,Missouri,29011,28,0 +2020-07-06,Barton,Missouri,29011,29,0 +2020-07-07,Barton,Missouri,29011,30,0 +2020-07-08,Barton,Missouri,29011,31,0 +2020-07-09,Barton,Missouri,29011,31,0 +2020-03-21,Bates,Missouri,29013,1,0 +2020-03-22,Bates,Missouri,29013,1,0 +2020-03-23,Bates,Missouri,29013,1,0 +2020-03-24,Bates,Missouri,29013,1,0 +2020-03-25,Bates,Missouri,29013,1,0 +2020-03-26,Bates,Missouri,29013,1,0 +2020-03-27,Bates,Missouri,29013,1,0 +2020-03-28,Bates,Missouri,29013,1,0 +2020-03-29,Bates,Missouri,29013,2,0 +2020-03-30,Bates,Missouri,29013,1,0 +2020-03-31,Bates,Missouri,29013,1,0 +2020-04-01,Bates,Missouri,29013,2,0 +2020-04-02,Bates,Missouri,29013,2,0 +2020-04-03,Bates,Missouri,29013,3,0 +2020-04-04,Bates,Missouri,29013,3,0 +2020-04-05,Bates,Missouri,29013,3,0 +2020-04-06,Bates,Missouri,29013,3,0 +2020-04-07,Bates,Missouri,29013,3,0 +2020-04-08,Bates,Missouri,29013,4,0 +2020-04-09,Bates,Missouri,29013,4,0 +2020-04-10,Bates,Missouri,29013,6,0 +2020-04-11,Bates,Missouri,29013,6,0 +2020-04-12,Bates,Missouri,29013,6,0 +2020-04-13,Bates,Missouri,29013,6,1 +2020-04-14,Bates,Missouri,29013,6,1 +2020-04-15,Bates,Missouri,29013,6,1 +2020-04-16,Bates,Missouri,29013,6,1 +2020-04-17,Bates,Missouri,29013,6,1 +2020-04-18,Bates,Missouri,29013,6,1 +2020-04-19,Bates,Missouri,29013,6,1 +2020-04-20,Bates,Missouri,29013,6,1 +2020-04-21,Bates,Missouri,29013,6,1 +2020-04-22,Bates,Missouri,29013,6,1 +2020-04-23,Bates,Missouri,29013,6,1 +2020-04-24,Bates,Missouri,29013,6,1 +2020-04-25,Bates,Missouri,29013,6,1 +2020-04-26,Bates,Missouri,29013,6,1 +2020-04-27,Bates,Missouri,29013,6,1 +2020-04-28,Bates,Missouri,29013,6,1 +2020-04-29,Bates,Missouri,29013,6,1 +2020-04-30,Bates,Missouri,29013,6,1 +2020-05-01,Bates,Missouri,29013,6,1 +2020-05-02,Bates,Missouri,29013,6,1 +2020-05-03,Bates,Missouri,29013,6,1 +2020-05-04,Bates,Missouri,29013,6,1 +2020-05-05,Bates,Missouri,29013,6,1 +2020-05-06,Bates,Missouri,29013,6,1 +2020-05-07,Bates,Missouri,29013,6,1 +2020-05-08,Bates,Missouri,29013,6,1 +2020-05-09,Bates,Missouri,29013,6,1 +2020-05-10,Bates,Missouri,29013,6,1 +2020-05-11,Bates,Missouri,29013,6,1 +2020-05-12,Bates,Missouri,29013,6,1 +2020-05-13,Bates,Missouri,29013,6,1 +2020-05-14,Bates,Missouri,29013,6,1 +2020-05-15,Bates,Missouri,29013,6,1 +2020-05-16,Bates,Missouri,29013,7,1 +2020-05-17,Bates,Missouri,29013,7,1 +2020-05-18,Bates,Missouri,29013,7,1 +2020-05-19,Bates,Missouri,29013,7,1 +2020-05-20,Bates,Missouri,29013,7,1 +2020-05-21,Bates,Missouri,29013,7,1 +2020-05-22,Bates,Missouri,29013,7,1 +2020-05-23,Bates,Missouri,29013,7,1 +2020-05-24,Bates,Missouri,29013,7,1 +2020-05-25,Bates,Missouri,29013,7,1 +2020-05-26,Bates,Missouri,29013,7,1 +2020-05-27,Bates,Missouri,29013,7,1 +2020-05-28,Bates,Missouri,29013,7,1 +2020-05-29,Bates,Missouri,29013,7,1 +2020-05-30,Bates,Missouri,29013,7,1 +2020-05-31,Bates,Missouri,29013,7,1 +2020-06-01,Bates,Missouri,29013,9,1 +2020-06-02,Bates,Missouri,29013,10,1 +2020-06-03,Bates,Missouri,29013,10,1 +2020-06-04,Bates,Missouri,29013,12,1 +2020-06-05,Bates,Missouri,29013,12,1 +2020-06-06,Bates,Missouri,29013,12,1 +2020-06-07,Bates,Missouri,29013,12,1 +2020-06-08,Bates,Missouri,29013,12,1 +2020-06-09,Bates,Missouri,29013,12,1 +2020-06-10,Bates,Missouri,29013,12,1 +2020-06-11,Bates,Missouri,29013,12,1 +2020-06-12,Bates,Missouri,29013,12,1 +2020-06-13,Bates,Missouri,29013,12,1 +2020-06-14,Bates,Missouri,29013,12,1 +2020-06-15,Bates,Missouri,29013,12,1 +2020-06-16,Bates,Missouri,29013,12,1 +2020-06-17,Bates,Missouri,29013,12,1 +2020-06-18,Bates,Missouri,29013,12,1 +2020-06-19,Bates,Missouri,29013,12,1 +2020-06-20,Bates,Missouri,29013,12,1 +2020-06-21,Bates,Missouri,29013,12,1 +2020-06-22,Bates,Missouri,29013,12,1 +2020-06-23,Bates,Missouri,29013,12,1 +2020-06-24,Bates,Missouri,29013,12,1 +2020-06-25,Bates,Missouri,29013,12,1 +2020-06-26,Bates,Missouri,29013,12,1 +2020-06-27,Bates,Missouri,29013,12,1 +2020-06-28,Bates,Missouri,29013,12,1 +2020-06-29,Bates,Missouri,29013,12,1 +2020-06-30,Bates,Missouri,29013,12,1 +2020-07-01,Bates,Missouri,29013,12,1 +2020-07-02,Bates,Missouri,29013,12,1 +2020-07-03,Bates,Missouri,29013,12,1 +2020-07-04,Bates,Missouri,29013,12,1 +2020-07-05,Bates,Missouri,29013,12,1 +2020-07-06,Bates,Missouri,29013,12,1 +2020-07-07,Bates,Missouri,29013,12,1 +2020-07-08,Bates,Missouri,29013,12,1 +2020-07-09,Bates,Missouri,29013,12,1 +2020-03-26,Benton,Missouri,29015,1,0 +2020-03-27,Benton,Missouri,29015,1,0 +2020-03-28,Benton,Missouri,29015,1,0 +2020-03-29,Benton,Missouri,29015,1,0 +2020-03-30,Benton,Missouri,29015,1,0 +2020-03-31,Benton,Missouri,29015,2,0 +2020-04-01,Benton,Missouri,29015,3,0 +2020-04-02,Benton,Missouri,29015,3,0 +2020-04-03,Benton,Missouri,29015,3,0 +2020-04-04,Benton,Missouri,29015,3,0 +2020-04-05,Benton,Missouri,29015,3,0 +2020-04-06,Benton,Missouri,29015,3,0 +2020-04-07,Benton,Missouri,29015,3,0 +2020-04-08,Benton,Missouri,29015,3,0 +2020-04-09,Benton,Missouri,29015,3,0 +2020-04-10,Benton,Missouri,29015,3,0 +2020-04-11,Benton,Missouri,29015,3,0 +2020-04-12,Benton,Missouri,29015,3,0 +2020-04-13,Benton,Missouri,29015,3,0 +2020-04-14,Benton,Missouri,29015,3,0 +2020-04-15,Benton,Missouri,29015,3,0 +2020-04-16,Benton,Missouri,29015,3,0 +2020-04-17,Benton,Missouri,29015,3,0 +2020-04-18,Benton,Missouri,29015,3,0 +2020-04-19,Benton,Missouri,29015,3,0 +2020-04-20,Benton,Missouri,29015,3,0 +2020-04-21,Benton,Missouri,29015,3,0 +2020-04-22,Benton,Missouri,29015,3,0 +2020-04-23,Benton,Missouri,29015,4,0 +2020-04-24,Benton,Missouri,29015,4,0 +2020-04-25,Benton,Missouri,29015,4,0 +2020-04-26,Benton,Missouri,29015,4,0 +2020-04-27,Benton,Missouri,29015,4,0 +2020-04-28,Benton,Missouri,29015,4,0 +2020-04-29,Benton,Missouri,29015,4,0 +2020-04-30,Benton,Missouri,29015,8,0 +2020-05-01,Benton,Missouri,29015,8,0 +2020-05-02,Benton,Missouri,29015,8,0 +2020-05-03,Benton,Missouri,29015,8,0 +2020-05-04,Benton,Missouri,29015,8,0 +2020-05-05,Benton,Missouri,29015,8,0 +2020-05-06,Benton,Missouri,29015,8,0 +2020-05-07,Benton,Missouri,29015,8,0 +2020-05-08,Benton,Missouri,29015,8,0 +2020-05-09,Benton,Missouri,29015,8,0 +2020-05-10,Benton,Missouri,29015,8,0 +2020-05-11,Benton,Missouri,29015,8,0 +2020-05-12,Benton,Missouri,29015,8,0 +2020-05-13,Benton,Missouri,29015,8,0 +2020-05-14,Benton,Missouri,29015,9,0 +2020-05-15,Benton,Missouri,29015,9,0 +2020-05-16,Benton,Missouri,29015,8,0 +2020-05-17,Benton,Missouri,29015,8,0 +2020-05-18,Benton,Missouri,29015,9,0 +2020-05-19,Benton,Missouri,29015,9,0 +2020-05-20,Benton,Missouri,29015,9,0 +2020-05-21,Benton,Missouri,29015,10,0 +2020-05-22,Benton,Missouri,29015,10,0 +2020-05-23,Benton,Missouri,29015,10,0 +2020-05-24,Benton,Missouri,29015,10,0 +2020-05-25,Benton,Missouri,29015,10,0 +2020-05-26,Benton,Missouri,29015,10,0 +2020-05-27,Benton,Missouri,29015,10,0 +2020-05-28,Benton,Missouri,29015,10,0 +2020-05-29,Benton,Missouri,29015,10,0 +2020-05-30,Benton,Missouri,29015,11,0 +2020-05-31,Benton,Missouri,29015,11,0 +2020-06-01,Benton,Missouri,29015,11,0 +2020-06-02,Benton,Missouri,29015,11,0 +2020-06-03,Benton,Missouri,29015,11,0 +2020-06-04,Benton,Missouri,29015,12,0 +2020-06-05,Benton,Missouri,29015,12,0 +2020-06-06,Benton,Missouri,29015,13,0 +2020-06-07,Benton,Missouri,29015,13,0 +2020-06-08,Benton,Missouri,29015,13,0 +2020-06-09,Benton,Missouri,29015,13,0 +2020-06-10,Benton,Missouri,29015,13,0 +2020-06-11,Benton,Missouri,29015,13,0 +2020-06-12,Benton,Missouri,29015,14,0 +2020-06-13,Benton,Missouri,29015,14,0 +2020-06-14,Benton,Missouri,29015,14,0 +2020-06-15,Benton,Missouri,29015,14,0 +2020-06-16,Benton,Missouri,29015,14,0 +2020-06-17,Benton,Missouri,29015,14,0 +2020-06-18,Benton,Missouri,29015,14,0 +2020-06-19,Benton,Missouri,29015,14,0 +2020-06-20,Benton,Missouri,29015,15,0 +2020-06-21,Benton,Missouri,29015,15,0 +2020-06-22,Benton,Missouri,29015,15,0 +2020-06-23,Benton,Missouri,29015,16,0 +2020-06-24,Benton,Missouri,29015,16,0 +2020-06-25,Benton,Missouri,29015,16,0 +2020-06-26,Benton,Missouri,29015,17,0 +2020-06-27,Benton,Missouri,29015,17,0 +2020-06-28,Benton,Missouri,29015,17,0 +2020-06-29,Benton,Missouri,29015,17,0 +2020-06-30,Benton,Missouri,29015,17,0 +2020-07-01,Benton,Missouri,29015,17,0 +2020-07-02,Benton,Missouri,29015,17,0 +2020-07-03,Benton,Missouri,29015,18,0 +2020-07-04,Benton,Missouri,29015,18,0 +2020-07-05,Benton,Missouri,29015,18,0 +2020-07-06,Benton,Missouri,29015,19,0 +2020-07-07,Benton,Missouri,29015,20,0 +2020-07-08,Benton,Missouri,29015,20,0 +2020-07-09,Benton,Missouri,29015,21,0 +2020-03-26,Bollinger,Missouri,29017,1,0 +2020-03-27,Bollinger,Missouri,29017,1,0 +2020-03-28,Bollinger,Missouri,29017,1,0 +2020-03-29,Bollinger,Missouri,29017,1,0 +2020-03-30,Bollinger,Missouri,29017,1,0 +2020-03-31,Bollinger,Missouri,29017,1,0 +2020-04-01,Bollinger,Missouri,29017,1,0 +2020-04-02,Bollinger,Missouri,29017,1,0 +2020-04-03,Bollinger,Missouri,29017,1,0 +2020-04-04,Bollinger,Missouri,29017,1,0 +2020-04-05,Bollinger,Missouri,29017,1,0 +2020-04-06,Bollinger,Missouri,29017,1,0 +2020-04-07,Bollinger,Missouri,29017,2,0 +2020-04-08,Bollinger,Missouri,29017,2,0 +2020-04-09,Bollinger,Missouri,29017,3,0 +2020-04-10,Bollinger,Missouri,29017,3,0 +2020-04-11,Bollinger,Missouri,29017,3,0 +2020-04-12,Bollinger,Missouri,29017,3,0 +2020-04-13,Bollinger,Missouri,29017,3,0 +2020-04-14,Bollinger,Missouri,29017,3,0 +2020-04-15,Bollinger,Missouri,29017,3,0 +2020-04-16,Bollinger,Missouri,29017,3,0 +2020-04-17,Bollinger,Missouri,29017,3,0 +2020-04-18,Bollinger,Missouri,29017,3,0 +2020-04-19,Bollinger,Missouri,29017,3,0 +2020-04-20,Bollinger,Missouri,29017,3,0 +2020-04-21,Bollinger,Missouri,29017,3,0 +2020-04-22,Bollinger,Missouri,29017,3,0 +2020-04-23,Bollinger,Missouri,29017,3,0 +2020-04-24,Bollinger,Missouri,29017,4,0 +2020-04-25,Bollinger,Missouri,29017,4,0 +2020-04-26,Bollinger,Missouri,29017,4,0 +2020-04-27,Bollinger,Missouri,29017,4,0 +2020-04-28,Bollinger,Missouri,29017,4,0 +2020-04-29,Bollinger,Missouri,29017,4,0 +2020-04-30,Bollinger,Missouri,29017,4,0 +2020-05-01,Bollinger,Missouri,29017,4,0 +2020-05-02,Bollinger,Missouri,29017,4,0 +2020-05-03,Bollinger,Missouri,29017,4,0 +2020-05-04,Bollinger,Missouri,29017,4,0 +2020-05-05,Bollinger,Missouri,29017,4,0 +2020-05-06,Bollinger,Missouri,29017,4,0 +2020-05-07,Bollinger,Missouri,29017,4,0 +2020-05-08,Bollinger,Missouri,29017,4,0 +2020-05-09,Bollinger,Missouri,29017,4,0 +2020-05-10,Bollinger,Missouri,29017,4,0 +2020-05-11,Bollinger,Missouri,29017,4,0 +2020-05-12,Bollinger,Missouri,29017,4,0 +2020-05-13,Bollinger,Missouri,29017,4,0 +2020-05-14,Bollinger,Missouri,29017,4,0 +2020-05-15,Bollinger,Missouri,29017,4,0 +2020-05-16,Bollinger,Missouri,29017,4,0 +2020-05-17,Bollinger,Missouri,29017,4,0 +2020-05-18,Bollinger,Missouri,29017,4,0 +2020-05-19,Bollinger,Missouri,29017,4,0 +2020-05-20,Bollinger,Missouri,29017,4,0 +2020-05-21,Bollinger,Missouri,29017,5,0 +2020-05-22,Bollinger,Missouri,29017,6,0 +2020-05-23,Bollinger,Missouri,29017,6,0 +2020-05-24,Bollinger,Missouri,29017,6,0 +2020-05-25,Bollinger,Missouri,29017,6,0 +2020-05-26,Bollinger,Missouri,29017,6,0 +2020-05-27,Bollinger,Missouri,29017,6,0 +2020-05-28,Bollinger,Missouri,29017,6,0 +2020-05-29,Bollinger,Missouri,29017,6,0 +2020-05-30,Bollinger,Missouri,29017,6,0 +2020-05-31,Bollinger,Missouri,29017,6,0 +2020-06-01,Bollinger,Missouri,29017,6,0 +2020-06-02,Bollinger,Missouri,29017,6,0 +2020-06-03,Bollinger,Missouri,29017,7,0 +2020-06-04,Bollinger,Missouri,29017,7,0 +2020-06-05,Bollinger,Missouri,29017,7,0 +2020-06-06,Bollinger,Missouri,29017,7,0 +2020-06-07,Bollinger,Missouri,29017,7,0 +2020-06-08,Bollinger,Missouri,29017,7,0 +2020-06-09,Bollinger,Missouri,29017,7,0 +2020-06-10,Bollinger,Missouri,29017,7,0 +2020-06-11,Bollinger,Missouri,29017,8,0 +2020-06-12,Bollinger,Missouri,29017,8,0 +2020-06-13,Bollinger,Missouri,29017,9,0 +2020-06-14,Bollinger,Missouri,29017,9,0 +2020-06-15,Bollinger,Missouri,29017,10,0 +2020-06-16,Bollinger,Missouri,29017,10,0 +2020-06-17,Bollinger,Missouri,29017,10,0 +2020-06-18,Bollinger,Missouri,29017,11,0 +2020-06-19,Bollinger,Missouri,29017,11,0 +2020-06-20,Bollinger,Missouri,29017,12,0 +2020-06-21,Bollinger,Missouri,29017,13,0 +2020-06-22,Bollinger,Missouri,29017,12,0 +2020-06-23,Bollinger,Missouri,29017,12,0 +2020-06-24,Bollinger,Missouri,29017,12,0 +2020-06-25,Bollinger,Missouri,29017,12,0 +2020-06-26,Bollinger,Missouri,29017,13,0 +2020-06-27,Bollinger,Missouri,29017,12,0 +2020-06-28,Bollinger,Missouri,29017,12,0 +2020-06-29,Bollinger,Missouri,29017,12,0 +2020-06-30,Bollinger,Missouri,29017,12,0 +2020-07-01,Bollinger,Missouri,29017,12,0 +2020-07-02,Bollinger,Missouri,29017,12,0 +2020-07-03,Bollinger,Missouri,29017,14,0 +2020-07-04,Bollinger,Missouri,29017,14,0 +2020-07-05,Bollinger,Missouri,29017,14,0 +2020-07-06,Bollinger,Missouri,29017,14,0 +2020-07-07,Bollinger,Missouri,29017,16,0 +2020-07-08,Bollinger,Missouri,29017,18,0 +2020-07-09,Bollinger,Missouri,29017,20,0 +2020-03-17,Boone,Missouri,29019,1,0 +2020-03-18,Boone,Missouri,29019,1,1 +2020-03-19,Boone,Missouri,29019,3,1 +2020-03-20,Boone,Missouri,29019,10,1 +2020-03-21,Boone,Missouri,29019,11,1 +2020-03-22,Boone,Missouri,29019,11,1 +2020-03-23,Boone,Missouri,29019,17,1 +2020-03-24,Boone,Missouri,29019,20,1 +2020-03-25,Boone,Missouri,29019,20,1 +2020-03-26,Boone,Missouri,29019,25,1 +2020-03-27,Boone,Missouri,29019,37,1 +2020-03-28,Boone,Missouri,29019,49,1 +2020-03-29,Boone,Missouri,29019,50,1 +2020-03-30,Boone,Missouri,29019,59,1 +2020-03-31,Boone,Missouri,29019,64,1 +2020-04-01,Boone,Missouri,29019,65,1 +2020-04-02,Boone,Missouri,29019,69,1 +2020-04-03,Boone,Missouri,29019,74,1 +2020-04-04,Boone,Missouri,29019,75,1 +2020-04-05,Boone,Missouri,29019,76,1 +2020-04-06,Boone,Missouri,29019,76,1 +2020-04-07,Boone,Missouri,29019,77,1 +2020-04-08,Boone,Missouri,29019,78,1 +2020-04-09,Boone,Missouri,29019,78,1 +2020-04-10,Boone,Missouri,29019,77,1 +2020-04-11,Boone,Missouri,29019,79,1 +2020-04-12,Boone,Missouri,29019,80,1 +2020-04-13,Boone,Missouri,29019,82,1 +2020-04-14,Boone,Missouri,29019,87,1 +2020-04-15,Boone,Missouri,29019,90,1 +2020-04-16,Boone,Missouri,29019,92,1 +2020-04-17,Boone,Missouri,29019,93,1 +2020-04-18,Boone,Missouri,29019,93,1 +2020-04-19,Boone,Missouri,29019,93,1 +2020-04-20,Boone,Missouri,29019,94,1 +2020-04-21,Boone,Missouri,29019,96,1 +2020-04-22,Boone,Missouri,29019,97,1 +2020-04-23,Boone,Missouri,29019,98,1 +2020-04-24,Boone,Missouri,29019,99,1 +2020-04-25,Boone,Missouri,29019,98,1 +2020-04-26,Boone,Missouri,29019,98,1 +2020-04-27,Boone,Missouri,29019,98,1 +2020-04-28,Boone,Missouri,29019,99,1 +2020-04-29,Boone,Missouri,29019,99,1 +2020-04-30,Boone,Missouri,29019,100,1 +2020-05-01,Boone,Missouri,29019,102,1 +2020-05-02,Boone,Missouri,29019,102,1 +2020-05-03,Boone,Missouri,29019,102,1 +2020-05-04,Boone,Missouri,29019,97,1 +2020-05-05,Boone,Missouri,29019,97,1 +2020-05-06,Boone,Missouri,29019,98,1 +2020-05-07,Boone,Missouri,29019,97,1 +2020-05-08,Boone,Missouri,29019,98,1 +2020-05-09,Boone,Missouri,29019,98,1 +2020-05-10,Boone,Missouri,29019,100,1 +2020-05-11,Boone,Missouri,29019,100,1 +2020-05-12,Boone,Missouri,29019,100,1 +2020-05-13,Boone,Missouri,29019,100,1 +2020-05-14,Boone,Missouri,29019,100,1 +2020-05-15,Boone,Missouri,29019,100,1 +2020-05-16,Boone,Missouri,29019,100,1 +2020-05-17,Boone,Missouri,29019,104,1 +2020-05-18,Boone,Missouri,29019,105,1 +2020-05-19,Boone,Missouri,29019,106,1 +2020-05-20,Boone,Missouri,29019,106,1 +2020-05-21,Boone,Missouri,29019,107,1 +2020-05-22,Boone,Missouri,29019,111,1 +2020-05-23,Boone,Missouri,29019,113,1 +2020-05-24,Boone,Missouri,29019,116,1 +2020-05-25,Boone,Missouri,29019,122,1 +2020-05-26,Boone,Missouri,29019,123,1 +2020-05-27,Boone,Missouri,29019,130,1 +2020-05-28,Boone,Missouri,29019,137,1 +2020-05-29,Boone,Missouri,29019,144,1 +2020-05-30,Boone,Missouri,29019,143,1 +2020-05-31,Boone,Missouri,29019,152,1 +2020-06-01,Boone,Missouri,29019,153,1 +2020-06-02,Boone,Missouri,29019,154,1 +2020-06-03,Boone,Missouri,29019,156,1 +2020-06-04,Boone,Missouri,29019,163,1 +2020-06-05,Boone,Missouri,29019,173,1 +2020-06-06,Boone,Missouri,29019,178,1 +2020-06-07,Boone,Missouri,29019,189,1 +2020-06-08,Boone,Missouri,29019,193,1 +2020-06-09,Boone,Missouri,29019,194,1 +2020-06-10,Boone,Missouri,29019,197,1 +2020-06-11,Boone,Missouri,29019,201,1 +2020-06-12,Boone,Missouri,29019,204,2 +2020-06-13,Boone,Missouri,29019,208,2 +2020-06-14,Boone,Missouri,29019,208,2 +2020-06-15,Boone,Missouri,29019,215,2 +2020-06-16,Boone,Missouri,29019,216,2 +2020-06-17,Boone,Missouri,29019,222,2 +2020-06-18,Boone,Missouri,29019,226,2 +2020-06-19,Boone,Missouri,29019,246,2 +2020-06-20,Boone,Missouri,29019,257,2 +2020-06-21,Boone,Missouri,29019,258,2 +2020-06-22,Boone,Missouri,29019,266,2 +2020-06-23,Boone,Missouri,29019,280,2 +2020-06-24,Boone,Missouri,29019,288,2 +2020-06-25,Boone,Missouri,29019,319,2 +2020-06-26,Boone,Missouri,29019,334,2 +2020-06-27,Boone,Missouri,29019,342,2 +2020-06-28,Boone,Missouri,29019,353,2 +2020-06-29,Boone,Missouri,29019,354,2 +2020-06-30,Boone,Missouri,29019,379,2 +2020-07-01,Boone,Missouri,29019,390,2 +2020-07-02,Boone,Missouri,29019,429,2 +2020-07-03,Boone,Missouri,29019,460,2 +2020-07-04,Boone,Missouri,29019,478,2 +2020-07-05,Boone,Missouri,29019,498,2 +2020-07-06,Boone,Missouri,29019,513,2 +2020-07-07,Boone,Missouri,29019,547,2 +2020-07-08,Boone,Missouri,29019,597,2 +2020-07-09,Boone,Missouri,29019,639,2 +2020-03-27,Buchanan,Missouri,29021,2,0 +2020-03-28,Buchanan,Missouri,29021,3,0 +2020-03-29,Buchanan,Missouri,29021,3,0 +2020-03-30,Buchanan,Missouri,29021,3,0 +2020-03-31,Buchanan,Missouri,29021,5,0 +2020-04-01,Buchanan,Missouri,29021,5,0 +2020-04-02,Buchanan,Missouri,29021,5,0 +2020-04-03,Buchanan,Missouri,29021,8,0 +2020-04-04,Buchanan,Missouri,29021,8,0 +2020-04-05,Buchanan,Missouri,29021,8,0 +2020-04-06,Buchanan,Missouri,29021,11,0 +2020-04-07,Buchanan,Missouri,29021,14,0 +2020-04-08,Buchanan,Missouri,29021,16,0 +2020-04-09,Buchanan,Missouri,29021,17,1 +2020-04-10,Buchanan,Missouri,29021,20,1 +2020-04-11,Buchanan,Missouri,29021,20,1 +2020-04-12,Buchanan,Missouri,29021,20,1 +2020-04-13,Buchanan,Missouri,29021,22,1 +2020-04-14,Buchanan,Missouri,29021,22,1 +2020-04-15,Buchanan,Missouri,29021,26,1 +2020-04-16,Buchanan,Missouri,29021,26,1 +2020-04-17,Buchanan,Missouri,29021,28,1 +2020-04-18,Buchanan,Missouri,29021,30,1 +2020-04-19,Buchanan,Missouri,29021,31,1 +2020-04-20,Buchanan,Missouri,29021,32,1 +2020-04-21,Buchanan,Missouri,29021,33,1 +2020-04-22,Buchanan,Missouri,29021,35,1 +2020-04-23,Buchanan,Missouri,29021,43,1 +2020-04-24,Buchanan,Missouri,29021,48,1 +2020-04-25,Buchanan,Missouri,29021,48,1 +2020-04-26,Buchanan,Missouri,29021,57,1 +2020-04-27,Buchanan,Missouri,29021,63,1 +2020-04-28,Buchanan,Missouri,29021,68,1 +2020-04-29,Buchanan,Missouri,29021,76,1 +2020-04-30,Buchanan,Missouri,29021,87,1 +2020-05-01,Buchanan,Missouri,29021,141,1 +2020-05-02,Buchanan,Missouri,29021,185,1 +2020-05-03,Buchanan,Missouri,29021,229,1 +2020-05-04,Buchanan,Missouri,29021,341,2 +2020-05-05,Buchanan,Missouri,29021,369,2 +2020-05-06,Buchanan,Missouri,29021,386,2 +2020-05-07,Buchanan,Missouri,29021,404,3 +2020-05-08,Buchanan,Missouri,29021,409,3 +2020-05-09,Buchanan,Missouri,29021,432,2 +2020-05-10,Buchanan,Missouri,29021,442,2 +2020-05-11,Buchanan,Missouri,29021,447,2 +2020-05-12,Buchanan,Missouri,29021,464,2 +2020-05-13,Buchanan,Missouri,29021,476,2 +2020-05-14,Buchanan,Missouri,29021,496,2 +2020-05-15,Buchanan,Missouri,29021,502,2 +2020-05-16,Buchanan,Missouri,29021,506,2 +2020-05-17,Buchanan,Missouri,29021,505,2 +2020-05-18,Buchanan,Missouri,29021,520,2 +2020-05-19,Buchanan,Missouri,29021,543,2 +2020-05-20,Buchanan,Missouri,29021,562,2 +2020-05-21,Buchanan,Missouri,29021,587,2 +2020-05-22,Buchanan,Missouri,29021,599,2 +2020-05-23,Buchanan,Missouri,29021,609,2 +2020-05-24,Buchanan,Missouri,29021,617,2 +2020-05-25,Buchanan,Missouri,29021,628,2 +2020-05-26,Buchanan,Missouri,29021,640,2 +2020-05-27,Buchanan,Missouri,29021,662,2 +2020-05-28,Buchanan,Missouri,29021,677,2 +2020-05-29,Buchanan,Missouri,29021,687,2 +2020-05-30,Buchanan,Missouri,29021,690,2 +2020-05-31,Buchanan,Missouri,29021,692,2 +2020-06-01,Buchanan,Missouri,29021,709,2 +2020-06-02,Buchanan,Missouri,29021,719,2 +2020-06-03,Buchanan,Missouri,29021,725,2 +2020-06-04,Buchanan,Missouri,29021,736,2 +2020-06-05,Buchanan,Missouri,29021,741,2 +2020-06-06,Buchanan,Missouri,29021,744,2 +2020-06-07,Buchanan,Missouri,29021,748,2 +2020-06-08,Buchanan,Missouri,29021,754,2 +2020-06-09,Buchanan,Missouri,29021,755,2 +2020-06-10,Buchanan,Missouri,29021,762,2 +2020-06-11,Buchanan,Missouri,29021,768,2 +2020-06-12,Buchanan,Missouri,29021,772,2 +2020-06-13,Buchanan,Missouri,29021,784,2 +2020-06-14,Buchanan,Missouri,29021,784,2 +2020-06-15,Buchanan,Missouri,29021,787,2 +2020-06-16,Buchanan,Missouri,29021,791,2 +2020-06-17,Buchanan,Missouri,29021,793,3 +2020-06-18,Buchanan,Missouri,29021,800,3 +2020-06-19,Buchanan,Missouri,29021,802,3 +2020-06-20,Buchanan,Missouri,29021,805,3 +2020-06-21,Buchanan,Missouri,29021,805,3 +2020-06-22,Buchanan,Missouri,29021,809,3 +2020-06-23,Buchanan,Missouri,29021,812,3 +2020-06-24,Buchanan,Missouri,29021,819,3 +2020-06-25,Buchanan,Missouri,29021,827,3 +2020-06-26,Buchanan,Missouri,29021,834,3 +2020-06-27,Buchanan,Missouri,29021,838,3 +2020-06-28,Buchanan,Missouri,29021,855,3 +2020-06-29,Buchanan,Missouri,29021,862,3 +2020-06-30,Buchanan,Missouri,29021,869,3 +2020-07-01,Buchanan,Missouri,29021,873,3 +2020-07-02,Buchanan,Missouri,29021,880,3 +2020-07-03,Buchanan,Missouri,29021,883,3 +2020-07-04,Buchanan,Missouri,29021,883,3 +2020-07-05,Buchanan,Missouri,29021,884,3 +2020-07-06,Buchanan,Missouri,29021,892,3 +2020-07-07,Buchanan,Missouri,29021,911,4 +2020-07-08,Buchanan,Missouri,29021,923,4 +2020-07-09,Buchanan,Missouri,29021,927,4 +2020-04-01,Butler,Missouri,29023,1,0 +2020-04-02,Butler,Missouri,29023,1,0 +2020-04-03,Butler,Missouri,29023,1,0 +2020-04-04,Butler,Missouri,29023,2,0 +2020-04-05,Butler,Missouri,29023,2,0 +2020-04-06,Butler,Missouri,29023,2,0 +2020-04-07,Butler,Missouri,29023,5,0 +2020-04-08,Butler,Missouri,29023,6,0 +2020-04-09,Butler,Missouri,29023,6,0 +2020-04-10,Butler,Missouri,29023,10,0 +2020-04-11,Butler,Missouri,29023,13,0 +2020-04-12,Butler,Missouri,29023,13,0 +2020-04-13,Butler,Missouri,29023,16,0 +2020-04-14,Butler,Missouri,29023,16,0 +2020-04-15,Butler,Missouri,29023,17,0 +2020-04-16,Butler,Missouri,29023,21,0 +2020-04-17,Butler,Missouri,29023,22,0 +2020-04-18,Butler,Missouri,29023,23,0 +2020-04-19,Butler,Missouri,29023,23,0 +2020-04-20,Butler,Missouri,29023,24,0 +2020-04-21,Butler,Missouri,29023,24,0 +2020-04-22,Butler,Missouri,29023,24,0 +2020-04-23,Butler,Missouri,29023,26,0 +2020-04-24,Butler,Missouri,29023,25,0 +2020-04-25,Butler,Missouri,29023,25,0 +2020-04-26,Butler,Missouri,29023,26,0 +2020-04-27,Butler,Missouri,29023,26,0 +2020-04-28,Butler,Missouri,29023,26,0 +2020-04-29,Butler,Missouri,29023,25,0 +2020-04-30,Butler,Missouri,29023,25,0 +2020-05-01,Butler,Missouri,29023,25,0 +2020-05-02,Butler,Missouri,29023,26,0 +2020-05-03,Butler,Missouri,29023,26,0 +2020-05-04,Butler,Missouri,29023,26,0 +2020-05-05,Butler,Missouri,29023,26,0 +2020-05-06,Butler,Missouri,29023,26,0 +2020-05-07,Butler,Missouri,29023,26,0 +2020-05-08,Butler,Missouri,29023,26,0 +2020-05-09,Butler,Missouri,29023,26,0 +2020-05-10,Butler,Missouri,29023,27,0 +2020-05-11,Butler,Missouri,29023,27,0 +2020-05-12,Butler,Missouri,29023,27,0 +2020-05-13,Butler,Missouri,29023,27,0 +2020-05-14,Butler,Missouri,29023,27,0 +2020-05-15,Butler,Missouri,29023,27,0 +2020-05-16,Butler,Missouri,29023,28,0 +2020-05-17,Butler,Missouri,29023,28,0 +2020-05-18,Butler,Missouri,29023,30,0 +2020-05-19,Butler,Missouri,29023,32,0 +2020-05-20,Butler,Missouri,29023,34,0 +2020-05-21,Butler,Missouri,29023,28,0 +2020-05-22,Butler,Missouri,29023,28,0 +2020-05-23,Butler,Missouri,29023,28,0 +2020-05-24,Butler,Missouri,29023,28,0 +2020-05-25,Butler,Missouri,29023,28,0 +2020-05-26,Butler,Missouri,29023,28,0 +2020-05-27,Butler,Missouri,29023,28,0 +2020-05-28,Butler,Missouri,29023,29,0 +2020-05-29,Butler,Missouri,29023,32,0 +2020-05-30,Butler,Missouri,29023,32,0 +2020-05-31,Butler,Missouri,29023,33,0 +2020-06-01,Butler,Missouri,29023,34,0 +2020-06-02,Butler,Missouri,29023,35,0 +2020-06-03,Butler,Missouri,29023,35,0 +2020-06-04,Butler,Missouri,29023,35,0 +2020-06-05,Butler,Missouri,29023,37,0 +2020-06-06,Butler,Missouri,29023,37,0 +2020-06-07,Butler,Missouri,29023,37,0 +2020-06-08,Butler,Missouri,29023,39,0 +2020-06-09,Butler,Missouri,29023,41,0 +2020-06-10,Butler,Missouri,29023,39,0 +2020-06-11,Butler,Missouri,29023,39,0 +2020-06-12,Butler,Missouri,29023,40,0 +2020-06-13,Butler,Missouri,29023,41,0 +2020-06-14,Butler,Missouri,29023,41,0 +2020-06-15,Butler,Missouri,29023,46,0 +2020-06-16,Butler,Missouri,29023,48,0 +2020-06-17,Butler,Missouri,29023,53,0 +2020-06-18,Butler,Missouri,29023,58,0 +2020-06-19,Butler,Missouri,29023,59,0 +2020-06-20,Butler,Missouri,29023,62,0 +2020-06-21,Butler,Missouri,29023,62,0 +2020-06-22,Butler,Missouri,29023,62,0 +2020-06-23,Butler,Missouri,29023,67,0 +2020-06-24,Butler,Missouri,29023,68,0 +2020-06-25,Butler,Missouri,29023,71,0 +2020-06-26,Butler,Missouri,29023,75,0 +2020-06-27,Butler,Missouri,29023,75,0 +2020-06-28,Butler,Missouri,29023,75,0 +2020-06-29,Butler,Missouri,29023,99,0 +2020-06-30,Butler,Missouri,29023,101,0 +2020-07-01,Butler,Missouri,29023,106,0 +2020-07-02,Butler,Missouri,29023,108,0 +2020-07-03,Butler,Missouri,29023,108,0 +2020-07-04,Butler,Missouri,29023,108,0 +2020-07-05,Butler,Missouri,29023,108,0 +2020-07-06,Butler,Missouri,29023,108,0 +2020-07-07,Butler,Missouri,29023,111,0 +2020-07-08,Butler,Missouri,29023,111,0 +2020-07-09,Butler,Missouri,29023,116,0 +2020-04-01,Caldwell,Missouri,29025,1,0 +2020-04-02,Caldwell,Missouri,29025,1,0 +2020-04-03,Caldwell,Missouri,29025,1,0 +2020-04-04,Caldwell,Missouri,29025,1,0 +2020-04-05,Caldwell,Missouri,29025,1,0 +2020-04-06,Caldwell,Missouri,29025,1,0 +2020-04-07,Caldwell,Missouri,29025,1,0 +2020-04-08,Caldwell,Missouri,29025,1,0 +2020-04-09,Caldwell,Missouri,29025,1,0 +2020-04-10,Caldwell,Missouri,29025,1,0 +2020-04-11,Caldwell,Missouri,29025,1,0 +2020-04-12,Caldwell,Missouri,29025,1,0 +2020-04-13,Caldwell,Missouri,29025,1,0 +2020-04-14,Caldwell,Missouri,29025,1,0 +2020-04-15,Caldwell,Missouri,29025,2,0 +2020-04-16,Caldwell,Missouri,29025,2,0 +2020-04-17,Caldwell,Missouri,29025,2,0 +2020-04-18,Caldwell,Missouri,29025,2,0 +2020-04-19,Caldwell,Missouri,29025,2,0 +2020-04-20,Caldwell,Missouri,29025,2,0 +2020-04-21,Caldwell,Missouri,29025,2,0 +2020-04-22,Caldwell,Missouri,29025,2,0 +2020-04-23,Caldwell,Missouri,29025,2,0 +2020-04-24,Caldwell,Missouri,29025,2,0 +2020-04-25,Caldwell,Missouri,29025,2,0 +2020-04-26,Caldwell,Missouri,29025,2,0 +2020-04-27,Caldwell,Missouri,29025,3,0 +2020-04-28,Caldwell,Missouri,29025,3,0 +2020-04-29,Caldwell,Missouri,29025,3,0 +2020-04-30,Caldwell,Missouri,29025,3,0 +2020-05-01,Caldwell,Missouri,29025,3,0 +2020-05-02,Caldwell,Missouri,29025,3,0 +2020-05-03,Caldwell,Missouri,29025,3,0 +2020-05-04,Caldwell,Missouri,29025,3,0 +2020-05-05,Caldwell,Missouri,29025,3,0 +2020-05-06,Caldwell,Missouri,29025,3,0 +2020-05-07,Caldwell,Missouri,29025,3,0 +2020-05-08,Caldwell,Missouri,29025,3,0 +2020-05-09,Caldwell,Missouri,29025,3,0 +2020-05-10,Caldwell,Missouri,29025,3,0 +2020-05-11,Caldwell,Missouri,29025,3,0 +2020-05-12,Caldwell,Missouri,29025,3,0 +2020-05-13,Caldwell,Missouri,29025,3,0 +2020-05-14,Caldwell,Missouri,29025,3,0 +2020-05-15,Caldwell,Missouri,29025,3,0 +2020-05-16,Caldwell,Missouri,29025,3,0 +2020-05-17,Caldwell,Missouri,29025,3,0 +2020-05-18,Caldwell,Missouri,29025,4,0 +2020-05-19,Caldwell,Missouri,29025,4,0 +2020-05-20,Caldwell,Missouri,29025,5,0 +2020-05-21,Caldwell,Missouri,29025,5,0 +2020-05-22,Caldwell,Missouri,29025,5,0 +2020-05-23,Caldwell,Missouri,29025,5,0 +2020-05-24,Caldwell,Missouri,29025,5,0 +2020-05-25,Caldwell,Missouri,29025,5,0 +2020-05-26,Caldwell,Missouri,29025,5,0 +2020-05-27,Caldwell,Missouri,29025,5,0 +2020-05-28,Caldwell,Missouri,29025,5,0 +2020-05-29,Caldwell,Missouri,29025,5,0 +2020-05-30,Caldwell,Missouri,29025,5,0 +2020-05-31,Caldwell,Missouri,29025,5,0 +2020-06-01,Caldwell,Missouri,29025,6,0 +2020-06-02,Caldwell,Missouri,29025,6,0 +2020-06-03,Caldwell,Missouri,29025,6,0 +2020-06-04,Caldwell,Missouri,29025,6,0 +2020-06-05,Caldwell,Missouri,29025,7,0 +2020-06-06,Caldwell,Missouri,29025,8,0 +2020-06-07,Caldwell,Missouri,29025,8,0 +2020-06-08,Caldwell,Missouri,29025,8,0 +2020-06-09,Caldwell,Missouri,29025,6,0 +2020-06-10,Caldwell,Missouri,29025,7,0 +2020-06-11,Caldwell,Missouri,29025,7,0 +2020-06-12,Caldwell,Missouri,29025,7,0 +2020-06-13,Caldwell,Missouri,29025,7,0 +2020-06-14,Caldwell,Missouri,29025,7,0 +2020-06-15,Caldwell,Missouri,29025,7,0 +2020-06-16,Caldwell,Missouri,29025,7,0 +2020-06-17,Caldwell,Missouri,29025,8,0 +2020-06-18,Caldwell,Missouri,29025,8,0 +2020-06-19,Caldwell,Missouri,29025,8,0 +2020-06-20,Caldwell,Missouri,29025,9,0 +2020-06-21,Caldwell,Missouri,29025,9,0 +2020-06-22,Caldwell,Missouri,29025,9,0 +2020-06-23,Caldwell,Missouri,29025,9,0 +2020-06-24,Caldwell,Missouri,29025,9,0 +2020-06-25,Caldwell,Missouri,29025,9,0 +2020-06-26,Caldwell,Missouri,29025,9,0 +2020-06-27,Caldwell,Missouri,29025,9,0 +2020-06-28,Caldwell,Missouri,29025,9,0 +2020-06-29,Caldwell,Missouri,29025,9,0 +2020-06-30,Caldwell,Missouri,29025,9,0 +2020-07-01,Caldwell,Missouri,29025,10,0 +2020-07-02,Caldwell,Missouri,29025,11,0 +2020-07-03,Caldwell,Missouri,29025,12,0 +2020-07-04,Caldwell,Missouri,29025,13,0 +2020-07-05,Caldwell,Missouri,29025,13,0 +2020-07-06,Caldwell,Missouri,29025,13,0 +2020-07-07,Caldwell,Missouri,29025,12,0 +2020-07-08,Caldwell,Missouri,29025,12,0 +2020-07-09,Caldwell,Missouri,29025,14,0 +2020-03-23,Callaway,Missouri,29027,1,0 +2020-03-24,Callaway,Missouri,29027,2,0 +2020-03-25,Callaway,Missouri,29027,2,0 +2020-03-26,Callaway,Missouri,29027,2,0 +2020-03-27,Callaway,Missouri,29027,3,0 +2020-03-28,Callaway,Missouri,29027,6,0 +2020-03-29,Callaway,Missouri,29027,8,0 +2020-03-30,Callaway,Missouri,29027,13,0 +2020-03-31,Callaway,Missouri,29027,14,0 +2020-04-01,Callaway,Missouri,29027,17,0 +2020-04-02,Callaway,Missouri,29027,18,0 +2020-04-03,Callaway,Missouri,29027,18,0 +2020-04-04,Callaway,Missouri,29027,18,0 +2020-04-05,Callaway,Missouri,29027,19,0 +2020-04-06,Callaway,Missouri,29027,19,1 +2020-04-07,Callaway,Missouri,29027,19,1 +2020-04-08,Callaway,Missouri,29027,20,1 +2020-04-09,Callaway,Missouri,29027,20,1 +2020-04-10,Callaway,Missouri,29027,21,1 +2020-04-11,Callaway,Missouri,29027,20,1 +2020-04-12,Callaway,Missouri,29027,20,1 +2020-04-13,Callaway,Missouri,29027,20,1 +2020-04-14,Callaway,Missouri,29027,20,1 +2020-04-15,Callaway,Missouri,29027,20,1 +2020-04-16,Callaway,Missouri,29027,20,1 +2020-04-17,Callaway,Missouri,29027,21,1 +2020-04-18,Callaway,Missouri,29027,20,1 +2020-04-19,Callaway,Missouri,29027,21,1 +2020-04-20,Callaway,Missouri,29027,21,1 +2020-04-21,Callaway,Missouri,29027,21,1 +2020-04-22,Callaway,Missouri,29027,21,1 +2020-04-23,Callaway,Missouri,29027,21,1 +2020-04-24,Callaway,Missouri,29027,21,1 +2020-04-25,Callaway,Missouri,29027,21,1 +2020-04-26,Callaway,Missouri,29027,21,1 +2020-04-27,Callaway,Missouri,29027,21,1 +2020-04-28,Callaway,Missouri,29027,22,1 +2020-04-29,Callaway,Missouri,29027,21,1 +2020-04-30,Callaway,Missouri,29027,21,1 +2020-05-01,Callaway,Missouri,29027,22,1 +2020-05-02,Callaway,Missouri,29027,23,1 +2020-05-03,Callaway,Missouri,29027,23,1 +2020-05-04,Callaway,Missouri,29027,23,1 +2020-05-05,Callaway,Missouri,29027,23,1 +2020-05-06,Callaway,Missouri,29027,23,1 +2020-05-07,Callaway,Missouri,29027,23,1 +2020-05-08,Callaway,Missouri,29027,23,1 +2020-05-09,Callaway,Missouri,29027,23,1 +2020-05-10,Callaway,Missouri,29027,23,1 +2020-05-11,Callaway,Missouri,29027,23,1 +2020-05-12,Callaway,Missouri,29027,23,1 +2020-05-13,Callaway,Missouri,29027,23,1 +2020-05-14,Callaway,Missouri,29027,23,1 +2020-05-15,Callaway,Missouri,29027,23,1 +2020-05-16,Callaway,Missouri,29027,23,1 +2020-05-17,Callaway,Missouri,29027,23,1 +2020-05-18,Callaway,Missouri,29027,23,1 +2020-05-19,Callaway,Missouri,29027,23,1 +2020-05-20,Callaway,Missouri,29027,23,1 +2020-05-21,Callaway,Missouri,29027,23,1 +2020-05-22,Callaway,Missouri,29027,23,1 +2020-05-23,Callaway,Missouri,29027,24,1 +2020-05-24,Callaway,Missouri,29027,24,1 +2020-05-25,Callaway,Missouri,29027,26,1 +2020-05-26,Callaway,Missouri,29027,26,1 +2020-05-27,Callaway,Missouri,29027,26,1 +2020-05-28,Callaway,Missouri,29027,27,1 +2020-05-29,Callaway,Missouri,29027,27,1 +2020-05-30,Callaway,Missouri,29027,29,1 +2020-05-31,Callaway,Missouri,29027,29,1 +2020-06-01,Callaway,Missouri,29027,29,1 +2020-06-02,Callaway,Missouri,29027,30,1 +2020-06-03,Callaway,Missouri,29027,30,1 +2020-06-04,Callaway,Missouri,29027,32,1 +2020-06-05,Callaway,Missouri,29027,32,1 +2020-06-06,Callaway,Missouri,29027,32,1 +2020-06-07,Callaway,Missouri,29027,33,1 +2020-06-08,Callaway,Missouri,29027,34,1 +2020-06-09,Callaway,Missouri,29027,32,1 +2020-06-10,Callaway,Missouri,29027,32,1 +2020-06-11,Callaway,Missouri,29027,33,1 +2020-06-12,Callaway,Missouri,29027,34,1 +2020-06-13,Callaway,Missouri,29027,36,1 +2020-06-14,Callaway,Missouri,29027,36,1 +2020-06-15,Callaway,Missouri,29027,40,1 +2020-06-16,Callaway,Missouri,29027,40,1 +2020-06-17,Callaway,Missouri,29027,40,1 +2020-06-18,Callaway,Missouri,29027,42,1 +2020-06-19,Callaway,Missouri,29027,42,1 +2020-06-20,Callaway,Missouri,29027,42,1 +2020-06-21,Callaway,Missouri,29027,42,1 +2020-06-22,Callaway,Missouri,29027,42,1 +2020-06-23,Callaway,Missouri,29027,45,1 +2020-06-24,Callaway,Missouri,29027,46,1 +2020-06-25,Callaway,Missouri,29027,45,1 +2020-06-26,Callaway,Missouri,29027,46,1 +2020-06-27,Callaway,Missouri,29027,44,1 +2020-06-28,Callaway,Missouri,29027,44,1 +2020-06-29,Callaway,Missouri,29027,45,1 +2020-06-30,Callaway,Missouri,29027,46,1 +2020-07-01,Callaway,Missouri,29027,46,1 +2020-07-02,Callaway,Missouri,29027,51,1 +2020-07-03,Callaway,Missouri,29027,55,1 +2020-07-04,Callaway,Missouri,29027,56,1 +2020-07-05,Callaway,Missouri,29027,57,1 +2020-07-06,Callaway,Missouri,29027,57,1 +2020-07-07,Callaway,Missouri,29027,61,1 +2020-07-08,Callaway,Missouri,29027,61,1 +2020-07-09,Callaway,Missouri,29027,61,1 +2020-03-23,Camden,Missouri,29029,1,0 +2020-03-24,Camden,Missouri,29029,1,0 +2020-03-25,Camden,Missouri,29029,1,0 +2020-03-26,Camden,Missouri,29029,1,0 +2020-03-27,Camden,Missouri,29029,1,0 +2020-03-28,Camden,Missouri,29029,4,1 +2020-03-29,Camden,Missouri,29029,7,1 +2020-03-30,Camden,Missouri,29029,11,1 +2020-03-31,Camden,Missouri,29029,12,1 +2020-04-01,Camden,Missouri,29029,17,1 +2020-04-02,Camden,Missouri,29029,19,1 +2020-04-03,Camden,Missouri,29029,21,1 +2020-04-04,Camden,Missouri,29029,20,1 +2020-04-05,Camden,Missouri,29029,24,1 +2020-04-06,Camden,Missouri,29029,24,1 +2020-04-07,Camden,Missouri,29029,24,1 +2020-04-08,Camden,Missouri,29029,25,1 +2020-04-09,Camden,Missouri,29029,26,1 +2020-04-10,Camden,Missouri,29029,26,1 +2020-04-11,Camden,Missouri,29029,26,1 +2020-04-12,Camden,Missouri,29029,26,1 +2020-04-13,Camden,Missouri,29029,26,1 +2020-04-14,Camden,Missouri,29029,26,1 +2020-04-15,Camden,Missouri,29029,28,1 +2020-04-16,Camden,Missouri,29029,31,1 +2020-04-17,Camden,Missouri,29029,32,1 +2020-04-18,Camden,Missouri,29029,32,1 +2020-04-19,Camden,Missouri,29029,32,1 +2020-04-20,Camden,Missouri,29029,33,1 +2020-04-21,Camden,Missouri,29029,35,1 +2020-04-22,Camden,Missouri,29029,35,1 +2020-04-23,Camden,Missouri,29029,35,1 +2020-04-24,Camden,Missouri,29029,35,1 +2020-04-25,Camden,Missouri,29029,35,1 +2020-04-26,Camden,Missouri,29029,35,1 +2020-04-27,Camden,Missouri,29029,35,1 +2020-04-28,Camden,Missouri,29029,35,1 +2020-04-29,Camden,Missouri,29029,35,1 +2020-04-30,Camden,Missouri,29029,35,1 +2020-05-01,Camden,Missouri,29029,35,1 +2020-05-02,Camden,Missouri,29029,35,1 +2020-05-03,Camden,Missouri,29029,35,1 +2020-05-04,Camden,Missouri,29029,35,1 +2020-05-05,Camden,Missouri,29029,35,1 +2020-05-06,Camden,Missouri,29029,35,1 +2020-05-07,Camden,Missouri,29029,35,1 +2020-05-08,Camden,Missouri,29029,35,1 +2020-05-09,Camden,Missouri,29029,35,1 +2020-05-10,Camden,Missouri,29029,36,1 +2020-05-11,Camden,Missouri,29029,36,1 +2020-05-12,Camden,Missouri,29029,36,1 +2020-05-13,Camden,Missouri,29029,36,1 +2020-05-14,Camden,Missouri,29029,36,1 +2020-05-15,Camden,Missouri,29029,36,1 +2020-05-16,Camden,Missouri,29029,36,1 +2020-05-17,Camden,Missouri,29029,36,1 +2020-05-18,Camden,Missouri,29029,36,1 +2020-05-19,Camden,Missouri,29029,36,1 +2020-05-20,Camden,Missouri,29029,36,1 +2020-05-21,Camden,Missouri,29029,36,1 +2020-05-22,Camden,Missouri,29029,36,1 +2020-05-23,Camden,Missouri,29029,36,1 +2020-05-24,Camden,Missouri,29029,38,1 +2020-05-25,Camden,Missouri,29029,38,1 +2020-05-26,Camden,Missouri,29029,37,1 +2020-05-27,Camden,Missouri,29029,37,1 +2020-05-28,Camden,Missouri,29029,37,1 +2020-05-29,Camden,Missouri,29029,37,1 +2020-05-30,Camden,Missouri,29029,37,1 +2020-05-31,Camden,Missouri,29029,37,1 +2020-06-01,Camden,Missouri,29029,37,1 +2020-06-02,Camden,Missouri,29029,37,1 +2020-06-03,Camden,Missouri,29029,37,1 +2020-06-04,Camden,Missouri,29029,37,1 +2020-06-05,Camden,Missouri,29029,37,1 +2020-06-06,Camden,Missouri,29029,37,1 +2020-06-07,Camden,Missouri,29029,37,1 +2020-06-08,Camden,Missouri,29029,37,1 +2020-06-09,Camden,Missouri,29029,37,1 +2020-06-10,Camden,Missouri,29029,37,1 +2020-06-11,Camden,Missouri,29029,37,1 +2020-06-12,Camden,Missouri,29029,38,1 +2020-06-13,Camden,Missouri,29029,38,1 +2020-06-14,Camden,Missouri,29029,38,1 +2020-06-15,Camden,Missouri,29029,40,1 +2020-06-16,Camden,Missouri,29029,43,1 +2020-06-17,Camden,Missouri,29029,45,1 +2020-06-18,Camden,Missouri,29029,45,1 +2020-06-19,Camden,Missouri,29029,45,1 +2020-06-20,Camden,Missouri,29029,47,1 +2020-06-21,Camden,Missouri,29029,48,1 +2020-06-22,Camden,Missouri,29029,50,1 +2020-06-23,Camden,Missouri,29029,54,1 +2020-06-24,Camden,Missouri,29029,55,1 +2020-06-25,Camden,Missouri,29029,57,1 +2020-06-26,Camden,Missouri,29029,60,1 +2020-06-27,Camden,Missouri,29029,60,1 +2020-06-28,Camden,Missouri,29029,60,1 +2020-06-29,Camden,Missouri,29029,63,1 +2020-06-30,Camden,Missouri,29029,66,1 +2020-07-01,Camden,Missouri,29029,66,1 +2020-07-02,Camden,Missouri,29029,67,1 +2020-07-03,Camden,Missouri,29029,66,1 +2020-07-04,Camden,Missouri,29029,69,1 +2020-07-05,Camden,Missouri,29029,70,1 +2020-07-06,Camden,Missouri,29029,71,1 +2020-07-07,Camden,Missouri,29029,74,1 +2020-07-08,Camden,Missouri,29029,76,2 +2020-07-09,Camden,Missouri,29029,77,2 +2020-03-24,Cape Girardeau,Missouri,29031,1,0 +2020-03-25,Cape Girardeau,Missouri,29031,3,0 +2020-03-26,Cape Girardeau,Missouri,29031,6,0 +2020-03-27,Cape Girardeau,Missouri,29031,6,0 +2020-03-28,Cape Girardeau,Missouri,29031,6,0 +2020-03-29,Cape Girardeau,Missouri,29031,6,0 +2020-03-30,Cape Girardeau,Missouri,29031,13,0 +2020-03-31,Cape Girardeau,Missouri,29031,15,0 +2020-04-01,Cape Girardeau,Missouri,29031,15,0 +2020-04-02,Cape Girardeau,Missouri,29031,15,0 +2020-04-03,Cape Girardeau,Missouri,29031,15,0 +2020-04-04,Cape Girardeau,Missouri,29031,16,0 +2020-04-05,Cape Girardeau,Missouri,29031,17,0 +2020-04-06,Cape Girardeau,Missouri,29031,20,0 +2020-04-07,Cape Girardeau,Missouri,29031,20,1 +2020-04-08,Cape Girardeau,Missouri,29031,23,1 +2020-04-09,Cape Girardeau,Missouri,29031,24,1 +2020-04-10,Cape Girardeau,Missouri,29031,26,1 +2020-04-11,Cape Girardeau,Missouri,29031,28,1 +2020-04-12,Cape Girardeau,Missouri,29031,28,1 +2020-04-13,Cape Girardeau,Missouri,29031,30,1 +2020-04-14,Cape Girardeau,Missouri,29031,30,1 +2020-04-15,Cape Girardeau,Missouri,29031,31,1 +2020-04-16,Cape Girardeau,Missouri,29031,33,1 +2020-04-17,Cape Girardeau,Missouri,29031,35,1 +2020-04-18,Cape Girardeau,Missouri,29031,36,1 +2020-04-19,Cape Girardeau,Missouri,29031,36,1 +2020-04-20,Cape Girardeau,Missouri,29031,36,1 +2020-04-21,Cape Girardeau,Missouri,29031,37,1 +2020-04-22,Cape Girardeau,Missouri,29031,40,1 +2020-04-23,Cape Girardeau,Missouri,29031,42,1 +2020-04-24,Cape Girardeau,Missouri,29031,43,1 +2020-04-25,Cape Girardeau,Missouri,29031,43,1 +2020-04-26,Cape Girardeau,Missouri,29031,47,1 +2020-04-27,Cape Girardeau,Missouri,29031,48,1 +2020-04-28,Cape Girardeau,Missouri,29031,48,1 +2020-04-29,Cape Girardeau,Missouri,29031,49,1 +2020-04-30,Cape Girardeau,Missouri,29031,49,1 +2020-05-01,Cape Girardeau,Missouri,29031,49,1 +2020-05-02,Cape Girardeau,Missouri,29031,49,1 +2020-05-03,Cape Girardeau,Missouri,29031,49,1 +2020-05-04,Cape Girardeau,Missouri,29031,49,1 +2020-05-05,Cape Girardeau,Missouri,29031,49,1 +2020-05-06,Cape Girardeau,Missouri,29031,49,1 +2020-05-07,Cape Girardeau,Missouri,29031,49,1 +2020-05-08,Cape Girardeau,Missouri,29031,49,1 +2020-05-09,Cape Girardeau,Missouri,29031,49,1 +2020-05-10,Cape Girardeau,Missouri,29031,51,1 +2020-05-11,Cape Girardeau,Missouri,29031,51,1 +2020-05-12,Cape Girardeau,Missouri,29031,50,1 +2020-05-13,Cape Girardeau,Missouri,29031,51,1 +2020-05-14,Cape Girardeau,Missouri,29031,51,1 +2020-05-15,Cape Girardeau,Missouri,29031,51,1 +2020-05-16,Cape Girardeau,Missouri,29031,54,2 +2020-05-17,Cape Girardeau,Missouri,29031,53,2 +2020-05-18,Cape Girardeau,Missouri,29031,54,2 +2020-05-19,Cape Girardeau,Missouri,29031,54,2 +2020-05-20,Cape Girardeau,Missouri,29031,55,2 +2020-05-21,Cape Girardeau,Missouri,29031,56,2 +2020-05-22,Cape Girardeau,Missouri,29031,57,2 +2020-05-23,Cape Girardeau,Missouri,29031,58,2 +2020-05-24,Cape Girardeau,Missouri,29031,59,2 +2020-05-25,Cape Girardeau,Missouri,29031,62,2 +2020-05-26,Cape Girardeau,Missouri,29031,64,2 +2020-05-27,Cape Girardeau,Missouri,29031,68,2 +2020-05-28,Cape Girardeau,Missouri,29031,70,2 +2020-05-29,Cape Girardeau,Missouri,29031,73,2 +2020-05-30,Cape Girardeau,Missouri,29031,73,2 +2020-05-31,Cape Girardeau,Missouri,29031,73,2 +2020-06-01,Cape Girardeau,Missouri,29031,74,2 +2020-06-02,Cape Girardeau,Missouri,29031,76,2 +2020-06-03,Cape Girardeau,Missouri,29031,76,2 +2020-06-04,Cape Girardeau,Missouri,29031,77,2 +2020-06-05,Cape Girardeau,Missouri,29031,83,3 +2020-06-06,Cape Girardeau,Missouri,29031,85,3 +2020-06-07,Cape Girardeau,Missouri,29031,85,3 +2020-06-08,Cape Girardeau,Missouri,29031,87,3 +2020-06-09,Cape Girardeau,Missouri,29031,86,3 +2020-06-10,Cape Girardeau,Missouri,29031,88,3 +2020-06-11,Cape Girardeau,Missouri,29031,98,3 +2020-06-12,Cape Girardeau,Missouri,29031,101,3 +2020-06-13,Cape Girardeau,Missouri,29031,104,3 +2020-06-14,Cape Girardeau,Missouri,29031,104,3 +2020-06-15,Cape Girardeau,Missouri,29031,108,3 +2020-06-16,Cape Girardeau,Missouri,29031,110,3 +2020-06-17,Cape Girardeau,Missouri,29031,111,3 +2020-06-18,Cape Girardeau,Missouri,29031,114,3 +2020-06-19,Cape Girardeau,Missouri,29031,117,3 +2020-06-20,Cape Girardeau,Missouri,29031,119,3 +2020-06-21,Cape Girardeau,Missouri,29031,120,3 +2020-06-22,Cape Girardeau,Missouri,29031,121,3 +2020-06-23,Cape Girardeau,Missouri,29031,123,3 +2020-06-24,Cape Girardeau,Missouri,29031,123,3 +2020-06-25,Cape Girardeau,Missouri,29031,126,3 +2020-06-26,Cape Girardeau,Missouri,29031,133,3 +2020-06-27,Cape Girardeau,Missouri,29031,141,3 +2020-06-28,Cape Girardeau,Missouri,29031,145,3 +2020-06-29,Cape Girardeau,Missouri,29031,153,3 +2020-06-30,Cape Girardeau,Missouri,29031,161,3 +2020-07-01,Cape Girardeau,Missouri,29031,171,3 +2020-07-02,Cape Girardeau,Missouri,29031,182,3 +2020-07-03,Cape Girardeau,Missouri,29031,193,3 +2020-07-04,Cape Girardeau,Missouri,29031,210,3 +2020-07-05,Cape Girardeau,Missouri,29031,214,3 +2020-07-06,Cape Girardeau,Missouri,29031,221,3 +2020-07-07,Cape Girardeau,Missouri,29031,252,3 +2020-07-08,Cape Girardeau,Missouri,29031,271,3 +2020-07-09,Cape Girardeau,Missouri,29031,292,3 +2020-04-22,Carroll,Missouri,29033,1,0 +2020-04-23,Carroll,Missouri,29033,1,0 +2020-04-24,Carroll,Missouri,29033,3,0 +2020-04-25,Carroll,Missouri,29033,3,0 +2020-04-26,Carroll,Missouri,29033,3,0 +2020-04-27,Carroll,Missouri,29033,2,0 +2020-04-28,Carroll,Missouri,29033,2,0 +2020-04-29,Carroll,Missouri,29033,2,0 +2020-04-30,Carroll,Missouri,29033,2,0 +2020-05-01,Carroll,Missouri,29033,2,0 +2020-05-02,Carroll,Missouri,29033,2,0 +2020-05-03,Carroll,Missouri,29033,2,0 +2020-05-04,Carroll,Missouri,29033,2,0 +2020-05-05,Carroll,Missouri,29033,2,0 +2020-05-06,Carroll,Missouri,29033,2,0 +2020-05-07,Carroll,Missouri,29033,3,0 +2020-05-08,Carroll,Missouri,29033,3,0 +2020-05-09,Carroll,Missouri,29033,3,0 +2020-05-10,Carroll,Missouri,29033,3,0 +2020-05-11,Carroll,Missouri,29033,3,0 +2020-05-12,Carroll,Missouri,29033,4,0 +2020-05-13,Carroll,Missouri,29033,4,0 +2020-05-14,Carroll,Missouri,29033,4,0 +2020-05-15,Carroll,Missouri,29033,7,0 +2020-05-16,Carroll,Missouri,29033,7,0 +2020-05-17,Carroll,Missouri,29033,7,0 +2020-05-18,Carroll,Missouri,29033,7,0 +2020-05-19,Carroll,Missouri,29033,7,0 +2020-05-20,Carroll,Missouri,29033,7,0 +2020-05-21,Carroll,Missouri,29033,7,0 +2020-05-22,Carroll,Missouri,29033,7,0 +2020-05-23,Carroll,Missouri,29033,7,0 +2020-05-24,Carroll,Missouri,29033,7,0 +2020-05-25,Carroll,Missouri,29033,7,0 +2020-05-26,Carroll,Missouri,29033,7,0 +2020-05-27,Carroll,Missouri,29033,7,0 +2020-05-28,Carroll,Missouri,29033,8,0 +2020-05-29,Carroll,Missouri,29033,8,0 +2020-05-30,Carroll,Missouri,29033,8,0 +2020-05-31,Carroll,Missouri,29033,8,0 +2020-06-01,Carroll,Missouri,29033,8,0 +2020-06-02,Carroll,Missouri,29033,8,0 +2020-06-03,Carroll,Missouri,29033,8,0 +2020-06-04,Carroll,Missouri,29033,9,0 +2020-06-05,Carroll,Missouri,29033,9,0 +2020-06-06,Carroll,Missouri,29033,9,0 +2020-06-07,Carroll,Missouri,29033,9,0 +2020-06-08,Carroll,Missouri,29033,9,0 +2020-06-09,Carroll,Missouri,29033,9,0 +2020-06-10,Carroll,Missouri,29033,9,0 +2020-06-11,Carroll,Missouri,29033,9,0 +2020-06-12,Carroll,Missouri,29033,9,0 +2020-06-13,Carroll,Missouri,29033,10,0 +2020-06-14,Carroll,Missouri,29033,10,0 +2020-06-15,Carroll,Missouri,29033,10,0 +2020-06-16,Carroll,Missouri,29033,11,0 +2020-06-17,Carroll,Missouri,29033,11,0 +2020-06-18,Carroll,Missouri,29033,11,0 +2020-06-19,Carroll,Missouri,29033,11,0 +2020-06-20,Carroll,Missouri,29033,11,0 +2020-06-21,Carroll,Missouri,29033,11,0 +2020-06-22,Carroll,Missouri,29033,11,0 +2020-06-23,Carroll,Missouri,29033,11,0 +2020-06-24,Carroll,Missouri,29033,11,0 +2020-06-25,Carroll,Missouri,29033,11,0 +2020-06-26,Carroll,Missouri,29033,11,0 +2020-06-27,Carroll,Missouri,29033,11,0 +2020-06-28,Carroll,Missouri,29033,11,0 +2020-06-29,Carroll,Missouri,29033,11,0 +2020-06-30,Carroll,Missouri,29033,11,0 +2020-07-01,Carroll,Missouri,29033,12,0 +2020-07-02,Carroll,Missouri,29033,12,0 +2020-07-03,Carroll,Missouri,29033,14,0 +2020-07-04,Carroll,Missouri,29033,16,0 +2020-07-05,Carroll,Missouri,29033,16,0 +2020-07-06,Carroll,Missouri,29033,19,0 +2020-07-07,Carroll,Missouri,29033,20,0 +2020-07-08,Carroll,Missouri,29033,20,0 +2020-07-09,Carroll,Missouri,29033,25,0 +2020-03-26,Carter,Missouri,29035,1,0 +2020-03-27,Carter,Missouri,29035,1,0 +2020-03-28,Carter,Missouri,29035,2,0 +2020-03-29,Carter,Missouri,29035,2,0 +2020-03-30,Carter,Missouri,29035,2,0 +2020-03-31,Carter,Missouri,29035,4,0 +2020-04-01,Carter,Missouri,29035,4,0 +2020-04-02,Carter,Missouri,29035,4,0 +2020-04-03,Carter,Missouri,29035,3,0 +2020-04-04,Carter,Missouri,29035,3,1 +2020-04-05,Carter,Missouri,29035,3,1 +2020-04-06,Carter,Missouri,29035,3,1 +2020-04-07,Carter,Missouri,29035,3,1 +2020-04-08,Carter,Missouri,29035,3,1 +2020-04-09,Carter,Missouri,29035,3,1 +2020-04-10,Carter,Missouri,29035,3,1 +2020-04-11,Carter,Missouri,29035,3,1 +2020-04-12,Carter,Missouri,29035,3,1 +2020-04-13,Carter,Missouri,29035,3,1 +2020-04-14,Carter,Missouri,29035,3,1 +2020-04-15,Carter,Missouri,29035,3,1 +2020-04-16,Carter,Missouri,29035,3,1 +2020-04-17,Carter,Missouri,29035,3,1 +2020-04-18,Carter,Missouri,29035,3,1 +2020-04-19,Carter,Missouri,29035,3,1 +2020-04-20,Carter,Missouri,29035,3,1 +2020-04-21,Carter,Missouri,29035,3,1 +2020-04-22,Carter,Missouri,29035,3,1 +2020-04-23,Carter,Missouri,29035,3,1 +2020-04-24,Carter,Missouri,29035,3,1 +2020-04-25,Carter,Missouri,29035,3,1 +2020-04-26,Carter,Missouri,29035,3,1 +2020-04-27,Carter,Missouri,29035,3,1 +2020-04-28,Carter,Missouri,29035,3,1 +2020-04-29,Carter,Missouri,29035,3,1 +2020-04-30,Carter,Missouri,29035,3,1 +2020-05-01,Carter,Missouri,29035,3,1 +2020-05-02,Carter,Missouri,29035,3,1 +2020-05-03,Carter,Missouri,29035,3,1 +2020-05-04,Carter,Missouri,29035,3,1 +2020-05-05,Carter,Missouri,29035,3,1 +2020-05-06,Carter,Missouri,29035,3,1 +2020-05-07,Carter,Missouri,29035,3,1 +2020-05-08,Carter,Missouri,29035,3,1 +2020-05-09,Carter,Missouri,29035,3,1 +2020-05-10,Carter,Missouri,29035,3,1 +2020-05-11,Carter,Missouri,29035,3,1 +2020-05-12,Carter,Missouri,29035,3,1 +2020-05-13,Carter,Missouri,29035,3,1 +2020-05-14,Carter,Missouri,29035,3,1 +2020-05-15,Carter,Missouri,29035,3,1 +2020-05-16,Carter,Missouri,29035,3,1 +2020-05-17,Carter,Missouri,29035,3,1 +2020-05-18,Carter,Missouri,29035,3,1 +2020-05-19,Carter,Missouri,29035,4,1 +2020-05-20,Carter,Missouri,29035,4,1 +2020-05-21,Carter,Missouri,29035,4,1 +2020-05-22,Carter,Missouri,29035,4,1 +2020-05-23,Carter,Missouri,29035,4,1 +2020-05-24,Carter,Missouri,29035,5,1 +2020-05-25,Carter,Missouri,29035,5,1 +2020-05-26,Carter,Missouri,29035,5,1 +2020-05-27,Carter,Missouri,29035,5,1 +2020-05-28,Carter,Missouri,29035,5,1 +2020-05-29,Carter,Missouri,29035,5,1 +2020-05-30,Carter,Missouri,29035,5,1 +2020-05-31,Carter,Missouri,29035,5,1 +2020-06-01,Carter,Missouri,29035,5,1 +2020-06-02,Carter,Missouri,29035,5,1 +2020-06-03,Carter,Missouri,29035,5,1 +2020-06-04,Carter,Missouri,29035,5,1 +2020-06-05,Carter,Missouri,29035,5,1 +2020-06-06,Carter,Missouri,29035,5,1 +2020-06-07,Carter,Missouri,29035,5,1 +2020-06-08,Carter,Missouri,29035,5,1 +2020-06-09,Carter,Missouri,29035,5,1 +2020-06-10,Carter,Missouri,29035,5,1 +2020-06-11,Carter,Missouri,29035,5,1 +2020-06-12,Carter,Missouri,29035,5,1 +2020-06-13,Carter,Missouri,29035,5,1 +2020-06-14,Carter,Missouri,29035,5,1 +2020-06-15,Carter,Missouri,29035,5,1 +2020-06-16,Carter,Missouri,29035,5,1 +2020-06-17,Carter,Missouri,29035,5,1 +2020-06-18,Carter,Missouri,29035,5,1 +2020-06-19,Carter,Missouri,29035,6,1 +2020-06-20,Carter,Missouri,29035,6,1 +2020-06-21,Carter,Missouri,29035,6,1 +2020-06-22,Carter,Missouri,29035,6,1 +2020-06-23,Carter,Missouri,29035,6,1 +2020-06-24,Carter,Missouri,29035,6,1 +2020-06-25,Carter,Missouri,29035,6,1 +2020-06-26,Carter,Missouri,29035,6,1 +2020-06-27,Carter,Missouri,29035,6,1 +2020-06-28,Carter,Missouri,29035,6,1 +2020-06-29,Carter,Missouri,29035,6,1 +2020-06-30,Carter,Missouri,29035,6,1 +2020-07-01,Carter,Missouri,29035,6,1 +2020-07-02,Carter,Missouri,29035,6,1 +2020-07-03,Carter,Missouri,29035,6,1 +2020-07-04,Carter,Missouri,29035,6,1 +2020-07-05,Carter,Missouri,29035,6,1 +2020-07-06,Carter,Missouri,29035,6,1 +2020-07-07,Carter,Missouri,29035,6,1 +2020-07-08,Carter,Missouri,29035,6,1 +2020-07-09,Carter,Missouri,29035,7,1 +2020-03-16,Cass,Missouri,29037,1,0 +2020-03-17,Cass,Missouri,29037,2,0 +2020-03-18,Cass,Missouri,29037,2,0 +2020-03-19,Cass,Missouri,29037,4,0 +2020-03-20,Cass,Missouri,29037,6,0 +2020-03-21,Cass,Missouri,29037,6,0 +2020-03-22,Cass,Missouri,29037,6,0 +2020-03-23,Cass,Missouri,29037,6,0 +2020-03-24,Cass,Missouri,29037,6,0 +2020-03-25,Cass,Missouri,29037,8,0 +2020-03-26,Cass,Missouri,29037,8,0 +2020-03-27,Cass,Missouri,29037,8,0 +2020-03-28,Cass,Missouri,29037,8,0 +2020-03-29,Cass,Missouri,29037,8,0 +2020-03-30,Cass,Missouri,29037,9,0 +2020-03-31,Cass,Missouri,29037,14,0 +2020-04-01,Cass,Missouri,29037,17,1 +2020-04-02,Cass,Missouri,29037,21,1 +2020-04-03,Cass,Missouri,29037,21,1 +2020-04-04,Cass,Missouri,29037,22,1 +2020-04-05,Cass,Missouri,29037,23,1 +2020-04-06,Cass,Missouri,29037,26,1 +2020-04-07,Cass,Missouri,29037,25,1 +2020-04-08,Cass,Missouri,29037,26,1 +2020-04-09,Cass,Missouri,29037,27,1 +2020-04-10,Cass,Missouri,29037,27,2 +2020-04-11,Cass,Missouri,29037,32,2 +2020-04-12,Cass,Missouri,29037,32,2 +2020-04-13,Cass,Missouri,29037,36,2 +2020-04-14,Cass,Missouri,29037,44,4 +2020-04-15,Cass,Missouri,29037,44,4 +2020-04-16,Cass,Missouri,29037,47,5 +2020-04-17,Cass,Missouri,29037,50,5 +2020-04-18,Cass,Missouri,29037,52,6 +2020-04-19,Cass,Missouri,29037,53,6 +2020-04-20,Cass,Missouri,29037,53,6 +2020-04-21,Cass,Missouri,29037,54,6 +2020-04-22,Cass,Missouri,29037,55,6 +2020-04-23,Cass,Missouri,29037,55,6 +2020-04-24,Cass,Missouri,29037,55,6 +2020-04-25,Cass,Missouri,29037,58,6 +2020-04-26,Cass,Missouri,29037,58,6 +2020-04-27,Cass,Missouri,29037,58,6 +2020-04-28,Cass,Missouri,29037,61,6 +2020-04-29,Cass,Missouri,29037,62,6 +2020-04-30,Cass,Missouri,29037,62,6 +2020-05-01,Cass,Missouri,29037,63,6 +2020-05-02,Cass,Missouri,29037,64,6 +2020-05-03,Cass,Missouri,29037,64,6 +2020-05-04,Cass,Missouri,29037,64,6 +2020-05-05,Cass,Missouri,29037,65,6 +2020-05-06,Cass,Missouri,29037,66,6 +2020-05-07,Cass,Missouri,29037,67,7 +2020-05-08,Cass,Missouri,29037,69,8 +2020-05-09,Cass,Missouri,29037,69,8 +2020-05-10,Cass,Missouri,29037,70,8 +2020-05-11,Cass,Missouri,29037,70,8 +2020-05-12,Cass,Missouri,29037,70,8 +2020-05-13,Cass,Missouri,29037,70,8 +2020-05-14,Cass,Missouri,29037,73,8 +2020-05-15,Cass,Missouri,29037,73,8 +2020-05-16,Cass,Missouri,29037,74,8 +2020-05-17,Cass,Missouri,29037,74,8 +2020-05-18,Cass,Missouri,29037,75,8 +2020-05-19,Cass,Missouri,29037,75,8 +2020-05-20,Cass,Missouri,29037,77,8 +2020-05-21,Cass,Missouri,29037,77,8 +2020-05-22,Cass,Missouri,29037,77,8 +2020-05-23,Cass,Missouri,29037,77,8 +2020-05-24,Cass,Missouri,29037,79,8 +2020-05-25,Cass,Missouri,29037,80,8 +2020-05-26,Cass,Missouri,29037,82,8 +2020-05-27,Cass,Missouri,29037,83,8 +2020-05-28,Cass,Missouri,29037,85,8 +2020-05-29,Cass,Missouri,29037,86,8 +2020-05-30,Cass,Missouri,29037,89,8 +2020-05-31,Cass,Missouri,29037,90,8 +2020-06-01,Cass,Missouri,29037,93,8 +2020-06-02,Cass,Missouri,29037,96,8 +2020-06-03,Cass,Missouri,29037,97,8 +2020-06-04,Cass,Missouri,29037,100,8 +2020-06-05,Cass,Missouri,29037,99,8 +2020-06-06,Cass,Missouri,29037,102,8 +2020-06-07,Cass,Missouri,29037,102,8 +2020-06-08,Cass,Missouri,29037,104,8 +2020-06-09,Cass,Missouri,29037,105,8 +2020-06-10,Cass,Missouri,29037,108,8 +2020-06-11,Cass,Missouri,29037,110,8 +2020-06-12,Cass,Missouri,29037,111,8 +2020-06-13,Cass,Missouri,29037,111,8 +2020-06-14,Cass,Missouri,29037,111,8 +2020-06-15,Cass,Missouri,29037,114,8 +2020-06-16,Cass,Missouri,29037,115,8 +2020-06-17,Cass,Missouri,29037,111,8 +2020-06-18,Cass,Missouri,29037,114,8 +2020-06-19,Cass,Missouri,29037,115,8 +2020-06-20,Cass,Missouri,29037,116,8 +2020-06-21,Cass,Missouri,29037,116,8 +2020-06-22,Cass,Missouri,29037,116,8 +2020-06-23,Cass,Missouri,29037,117,8 +2020-06-24,Cass,Missouri,29037,119,8 +2020-06-25,Cass,Missouri,29037,123,8 +2020-06-26,Cass,Missouri,29037,127,9 +2020-06-27,Cass,Missouri,29037,134,9 +2020-06-28,Cass,Missouri,29037,134,9 +2020-06-29,Cass,Missouri,29037,137,9 +2020-06-30,Cass,Missouri,29037,143,9 +2020-07-01,Cass,Missouri,29037,147,9 +2020-07-02,Cass,Missouri,29037,156,9 +2020-07-03,Cass,Missouri,29037,162,9 +2020-07-04,Cass,Missouri,29037,166,9 +2020-07-05,Cass,Missouri,29037,171,9 +2020-07-06,Cass,Missouri,29037,185,9 +2020-07-07,Cass,Missouri,29037,191,9 +2020-07-08,Cass,Missouri,29037,203,9 +2020-07-09,Cass,Missouri,29037,214,9 +2020-03-30,Cedar,Missouri,29039,5,0 +2020-03-31,Cedar,Missouri,29039,3,0 +2020-04-01,Cedar,Missouri,29039,3,0 +2020-04-02,Cedar,Missouri,29039,3,0 +2020-04-03,Cedar,Missouri,29039,4,0 +2020-04-04,Cedar,Missouri,29039,4,0 +2020-04-05,Cedar,Missouri,29039,4,0 +2020-04-06,Cedar,Missouri,29039,4,0 +2020-04-07,Cedar,Missouri,29039,7,0 +2020-04-08,Cedar,Missouri,29039,8,0 +2020-04-09,Cedar,Missouri,29039,5,0 +2020-04-10,Cedar,Missouri,29039,5,0 +2020-04-11,Cedar,Missouri,29039,5,0 +2020-04-12,Cedar,Missouri,29039,5,0 +2020-04-13,Cedar,Missouri,29039,5,0 +2020-04-14,Cedar,Missouri,29039,5,0 +2020-04-15,Cedar,Missouri,29039,5,0 +2020-04-16,Cedar,Missouri,29039,5,0 +2020-04-17,Cedar,Missouri,29039,5,0 +2020-04-18,Cedar,Missouri,29039,5,0 +2020-04-19,Cedar,Missouri,29039,5,0 +2020-04-20,Cedar,Missouri,29039,5,0 +2020-04-21,Cedar,Missouri,29039,5,0 +2020-04-22,Cedar,Missouri,29039,5,0 +2020-04-23,Cedar,Missouri,29039,5,0 +2020-04-24,Cedar,Missouri,29039,5,0 +2020-04-25,Cedar,Missouri,29039,5,0 +2020-04-26,Cedar,Missouri,29039,5,0 +2020-04-27,Cedar,Missouri,29039,5,0 +2020-04-28,Cedar,Missouri,29039,5,0 +2020-04-29,Cedar,Missouri,29039,5,0 +2020-04-30,Cedar,Missouri,29039,5,0 +2020-05-01,Cedar,Missouri,29039,5,0 +2020-05-02,Cedar,Missouri,29039,5,0 +2020-05-03,Cedar,Missouri,29039,5,0 +2020-05-04,Cedar,Missouri,29039,5,0 +2020-05-05,Cedar,Missouri,29039,5,0 +2020-05-06,Cedar,Missouri,29039,7,0 +2020-05-07,Cedar,Missouri,29039,9,0 +2020-05-08,Cedar,Missouri,29039,9,0 +2020-05-09,Cedar,Missouri,29039,9,0 +2020-05-10,Cedar,Missouri,29039,9,0 +2020-05-11,Cedar,Missouri,29039,9,0 +2020-05-12,Cedar,Missouri,29039,9,0 +2020-05-13,Cedar,Missouri,29039,9,0 +2020-05-14,Cedar,Missouri,29039,9,0 +2020-05-15,Cedar,Missouri,29039,9,0 +2020-05-16,Cedar,Missouri,29039,9,0 +2020-05-17,Cedar,Missouri,29039,9,0 +2020-05-18,Cedar,Missouri,29039,9,0 +2020-05-19,Cedar,Missouri,29039,9,0 +2020-05-20,Cedar,Missouri,29039,9,0 +2020-05-21,Cedar,Missouri,29039,9,0 +2020-05-22,Cedar,Missouri,29039,9,0 +2020-05-23,Cedar,Missouri,29039,9,0 +2020-05-24,Cedar,Missouri,29039,9,0 +2020-05-25,Cedar,Missouri,29039,9,0 +2020-05-26,Cedar,Missouri,29039,9,0 +2020-05-27,Cedar,Missouri,29039,9,0 +2020-05-28,Cedar,Missouri,29039,9,0 +2020-05-29,Cedar,Missouri,29039,9,0 +2020-05-30,Cedar,Missouri,29039,9,0 +2020-05-31,Cedar,Missouri,29039,9,0 +2020-06-01,Cedar,Missouri,29039,9,0 +2020-06-02,Cedar,Missouri,29039,9,0 +2020-06-03,Cedar,Missouri,29039,9,0 +2020-06-04,Cedar,Missouri,29039,9,0 +2020-06-05,Cedar,Missouri,29039,9,0 +2020-06-06,Cedar,Missouri,29039,9,0 +2020-06-07,Cedar,Missouri,29039,9,0 +2020-06-08,Cedar,Missouri,29039,9,0 +2020-06-09,Cedar,Missouri,29039,9,0 +2020-06-10,Cedar,Missouri,29039,9,0 +2020-06-11,Cedar,Missouri,29039,9,0 +2020-06-12,Cedar,Missouri,29039,9,0 +2020-06-13,Cedar,Missouri,29039,9,0 +2020-06-14,Cedar,Missouri,29039,9,0 +2020-06-15,Cedar,Missouri,29039,9,0 +2020-06-16,Cedar,Missouri,29039,9,0 +2020-06-17,Cedar,Missouri,29039,9,0 +2020-06-18,Cedar,Missouri,29039,9,0 +2020-06-19,Cedar,Missouri,29039,9,0 +2020-06-20,Cedar,Missouri,29039,9,0 +2020-06-21,Cedar,Missouri,29039,9,0 +2020-06-22,Cedar,Missouri,29039,9,0 +2020-06-23,Cedar,Missouri,29039,9,0 +2020-06-24,Cedar,Missouri,29039,9,0 +2020-06-25,Cedar,Missouri,29039,9,0 +2020-06-26,Cedar,Missouri,29039,9,0 +2020-06-27,Cedar,Missouri,29039,9,0 +2020-06-28,Cedar,Missouri,29039,9,0 +2020-06-29,Cedar,Missouri,29039,10,0 +2020-06-30,Cedar,Missouri,29039,9,0 +2020-07-01,Cedar,Missouri,29039,9,0 +2020-07-02,Cedar,Missouri,29039,9,0 +2020-07-03,Cedar,Missouri,29039,11,0 +2020-07-04,Cedar,Missouri,29039,11,0 +2020-07-05,Cedar,Missouri,29039,11,0 +2020-07-06,Cedar,Missouri,29039,11,0 +2020-07-07,Cedar,Missouri,29039,12,0 +2020-07-08,Cedar,Missouri,29039,12,0 +2020-07-09,Cedar,Missouri,29039,12,0 +2020-03-27,Chariton,Missouri,29041,1,0 +2020-03-28,Chariton,Missouri,29041,1,0 +2020-03-29,Chariton,Missouri,29041,1,0 +2020-03-30,Chariton,Missouri,29041,3,0 +2020-03-31,Chariton,Missouri,29041,4,0 +2020-04-01,Chariton,Missouri,29041,4,0 +2020-04-02,Chariton,Missouri,29041,4,0 +2020-04-03,Chariton,Missouri,29041,4,0 +2020-04-04,Chariton,Missouri,29041,4,0 +2020-04-05,Chariton,Missouri,29041,4,0 +2020-04-06,Chariton,Missouri,29041,4,0 +2020-04-07,Chariton,Missouri,29041,4,0 +2020-04-08,Chariton,Missouri,29041,4,0 +2020-04-09,Chariton,Missouri,29041,4,0 +2020-04-10,Chariton,Missouri,29041,4,0 +2020-04-11,Chariton,Missouri,29041,4,0 +2020-04-12,Chariton,Missouri,29041,4,0 +2020-04-13,Chariton,Missouri,29041,4,0 +2020-04-14,Chariton,Missouri,29041,4,0 +2020-04-15,Chariton,Missouri,29041,4,0 +2020-04-16,Chariton,Missouri,29041,4,0 +2020-04-17,Chariton,Missouri,29041,4,0 +2020-04-18,Chariton,Missouri,29041,4,0 +2020-04-19,Chariton,Missouri,29041,4,0 +2020-04-20,Chariton,Missouri,29041,4,0 +2020-04-21,Chariton,Missouri,29041,4,0 +2020-04-22,Chariton,Missouri,29041,4,0 +2020-04-23,Chariton,Missouri,29041,4,0 +2020-04-24,Chariton,Missouri,29041,5,0 +2020-04-25,Chariton,Missouri,29041,5,0 +2020-04-26,Chariton,Missouri,29041,5,0 +2020-04-27,Chariton,Missouri,29041,5,0 +2020-04-28,Chariton,Missouri,29041,5,0 +2020-04-29,Chariton,Missouri,29041,5,0 +2020-04-30,Chariton,Missouri,29041,5,0 +2020-05-01,Chariton,Missouri,29041,5,0 +2020-05-02,Chariton,Missouri,29041,5,0 +2020-05-03,Chariton,Missouri,29041,5,0 +2020-05-04,Chariton,Missouri,29041,5,0 +2020-05-05,Chariton,Missouri,29041,5,0 +2020-05-06,Chariton,Missouri,29041,5,0 +2020-05-07,Chariton,Missouri,29041,6,0 +2020-05-08,Chariton,Missouri,29041,5,0 +2020-05-09,Chariton,Missouri,29041,5,0 +2020-05-10,Chariton,Missouri,29041,5,0 +2020-05-11,Chariton,Missouri,29041,5,0 +2020-05-12,Chariton,Missouri,29041,5,0 +2020-05-13,Chariton,Missouri,29041,6,0 +2020-05-14,Chariton,Missouri,29041,6,0 +2020-05-15,Chariton,Missouri,29041,6,0 +2020-05-16,Chariton,Missouri,29041,6,0 +2020-05-17,Chariton,Missouri,29041,6,0 +2020-05-18,Chariton,Missouri,29041,6,0 +2020-05-19,Chariton,Missouri,29041,6,0 +2020-05-20,Chariton,Missouri,29041,6,0 +2020-05-21,Chariton,Missouri,29041,6,0 +2020-05-22,Chariton,Missouri,29041,6,0 +2020-05-23,Chariton,Missouri,29041,5,0 +2020-05-24,Chariton,Missouri,29041,5,0 +2020-05-25,Chariton,Missouri,29041,5,0 +2020-05-26,Chariton,Missouri,29041,5,0 +2020-05-27,Chariton,Missouri,29041,6,0 +2020-05-28,Chariton,Missouri,29041,6,0 +2020-05-29,Chariton,Missouri,29041,6,0 +2020-05-30,Chariton,Missouri,29041,6,0 +2020-05-31,Chariton,Missouri,29041,6,0 +2020-06-01,Chariton,Missouri,29041,6,0 +2020-06-02,Chariton,Missouri,29041,6,0 +2020-06-03,Chariton,Missouri,29041,6,0 +2020-06-04,Chariton,Missouri,29041,6,0 +2020-06-05,Chariton,Missouri,29041,6,0 +2020-06-06,Chariton,Missouri,29041,6,0 +2020-06-07,Chariton,Missouri,29041,6,0 +2020-06-08,Chariton,Missouri,29041,6,0 +2020-06-09,Chariton,Missouri,29041,6,0 +2020-06-10,Chariton,Missouri,29041,6,0 +2020-06-11,Chariton,Missouri,29041,6,0 +2020-06-12,Chariton,Missouri,29041,6,0 +2020-06-13,Chariton,Missouri,29041,6,0 +2020-06-14,Chariton,Missouri,29041,6,0 +2020-06-15,Chariton,Missouri,29041,6,0 +2020-06-16,Chariton,Missouri,29041,6,0 +2020-06-17,Chariton,Missouri,29041,6,0 +2020-06-18,Chariton,Missouri,29041,6,0 +2020-06-19,Chariton,Missouri,29041,6,0 +2020-06-20,Chariton,Missouri,29041,6,0 +2020-06-21,Chariton,Missouri,29041,6,0 +2020-06-22,Chariton,Missouri,29041,6,0 +2020-06-23,Chariton,Missouri,29041,6,0 +2020-06-24,Chariton,Missouri,29041,6,0 +2020-06-25,Chariton,Missouri,29041,6,0 +2020-06-26,Chariton,Missouri,29041,6,0 +2020-06-27,Chariton,Missouri,29041,6,0 +2020-06-28,Chariton,Missouri,29041,6,0 +2020-06-29,Chariton,Missouri,29041,6,0 +2020-06-30,Chariton,Missouri,29041,6,0 +2020-07-01,Chariton,Missouri,29041,6,0 +2020-07-02,Chariton,Missouri,29041,6,0 +2020-07-03,Chariton,Missouri,29041,6,0 +2020-07-04,Chariton,Missouri,29041,6,0 +2020-07-05,Chariton,Missouri,29041,6,0 +2020-07-06,Chariton,Missouri,29041,6,0 +2020-07-07,Chariton,Missouri,29041,6,0 +2020-07-08,Chariton,Missouri,29041,6,0 +2020-07-09,Chariton,Missouri,29041,6,0 +2020-03-20,Christian,Missouri,29043,2,0 +2020-03-21,Christian,Missouri,29043,2,0 +2020-03-22,Christian,Missouri,29043,2,0 +2020-03-23,Christian,Missouri,29043,2,0 +2020-03-24,Christian,Missouri,29043,2,0 +2020-03-25,Christian,Missouri,29043,2,0 +2020-03-26,Christian,Missouri,29043,2,0 +2020-03-27,Christian,Missouri,29043,3,0 +2020-03-28,Christian,Missouri,29043,6,0 +2020-03-29,Christian,Missouri,29043,7,0 +2020-03-30,Christian,Missouri,29043,12,0 +2020-03-31,Christian,Missouri,29043,11,0 +2020-04-01,Christian,Missouri,29043,11,0 +2020-04-02,Christian,Missouri,29043,12,0 +2020-04-03,Christian,Missouri,29043,13,0 +2020-04-04,Christian,Missouri,29043,16,0 +2020-04-05,Christian,Missouri,29043,16,0 +2020-04-06,Christian,Missouri,29043,17,0 +2020-04-07,Christian,Missouri,29043,17,0 +2020-04-08,Christian,Missouri,29043,17,0 +2020-04-09,Christian,Missouri,29043,17,0 +2020-04-10,Christian,Missouri,29043,17,0 +2020-04-11,Christian,Missouri,29043,17,0 +2020-04-12,Christian,Missouri,29043,17,0 +2020-04-13,Christian,Missouri,29043,17,0 +2020-04-14,Christian,Missouri,29043,19,0 +2020-04-15,Christian,Missouri,29043,18,0 +2020-04-16,Christian,Missouri,29043,17,0 +2020-04-17,Christian,Missouri,29043,17,0 +2020-04-18,Christian,Missouri,29043,17,0 +2020-04-19,Christian,Missouri,29043,17,0 +2020-04-20,Christian,Missouri,29043,18,0 +2020-04-21,Christian,Missouri,29043,18,0 +2020-04-22,Christian,Missouri,29043,18,0 +2020-04-23,Christian,Missouri,29043,18,0 +2020-04-24,Christian,Missouri,29043,18,0 +2020-04-25,Christian,Missouri,29043,18,0 +2020-04-26,Christian,Missouri,29043,18,0 +2020-04-27,Christian,Missouri,29043,19,0 +2020-04-28,Christian,Missouri,29043,19,0 +2020-04-29,Christian,Missouri,29043,19,0 +2020-04-30,Christian,Missouri,29043,19,0 +2020-05-01,Christian,Missouri,29043,19,0 +2020-05-02,Christian,Missouri,29043,19,0 +2020-05-03,Christian,Missouri,29043,19,0 +2020-05-04,Christian,Missouri,29043,19,0 +2020-05-05,Christian,Missouri,29043,19,0 +2020-05-06,Christian,Missouri,29043,19,0 +2020-05-07,Christian,Missouri,29043,20,0 +2020-05-08,Christian,Missouri,29043,20,0 +2020-05-09,Christian,Missouri,29043,20,0 +2020-05-10,Christian,Missouri,29043,20,0 +2020-05-11,Christian,Missouri,29043,20,0 +2020-05-12,Christian,Missouri,29043,21,0 +2020-05-13,Christian,Missouri,29043,21,0 +2020-05-14,Christian,Missouri,29043,21,0 +2020-05-15,Christian,Missouri,29043,21,0 +2020-05-16,Christian,Missouri,29043,21,0 +2020-05-17,Christian,Missouri,29043,21,0 +2020-05-18,Christian,Missouri,29043,21,0 +2020-05-19,Christian,Missouri,29043,21,0 +2020-05-20,Christian,Missouri,29043,21,0 +2020-05-21,Christian,Missouri,29043,21,0 +2020-05-22,Christian,Missouri,29043,21,0 +2020-05-23,Christian,Missouri,29043,22,0 +2020-05-24,Christian,Missouri,29043,22,0 +2020-05-25,Christian,Missouri,29043,22,0 +2020-05-26,Christian,Missouri,29043,22,0 +2020-05-27,Christian,Missouri,29043,22,0 +2020-05-28,Christian,Missouri,29043,22,0 +2020-05-29,Christian,Missouri,29043,22,0 +2020-05-30,Christian,Missouri,29043,23,0 +2020-05-31,Christian,Missouri,29043,23,0 +2020-06-01,Christian,Missouri,29043,24,0 +2020-06-02,Christian,Missouri,29043,24,0 +2020-06-03,Christian,Missouri,29043,27,0 +2020-06-04,Christian,Missouri,29043,29,0 +2020-06-05,Christian,Missouri,29043,29,0 +2020-06-06,Christian,Missouri,29043,28,0 +2020-06-07,Christian,Missouri,29043,28,0 +2020-06-08,Christian,Missouri,29043,28,0 +2020-06-09,Christian,Missouri,29043,28,0 +2020-06-10,Christian,Missouri,29043,28,0 +2020-06-11,Christian,Missouri,29043,28,0 +2020-06-12,Christian,Missouri,29043,29,0 +2020-06-13,Christian,Missouri,29043,29,0 +2020-06-14,Christian,Missouri,29043,29,0 +2020-06-15,Christian,Missouri,29043,30,0 +2020-06-16,Christian,Missouri,29043,30,0 +2020-06-17,Christian,Missouri,29043,30,0 +2020-06-18,Christian,Missouri,29043,31,0 +2020-06-19,Christian,Missouri,29043,31,0 +2020-06-20,Christian,Missouri,29043,32,0 +2020-06-21,Christian,Missouri,29043,32,0 +2020-06-22,Christian,Missouri,29043,32,0 +2020-06-23,Christian,Missouri,29043,35,0 +2020-06-24,Christian,Missouri,29043,37,0 +2020-06-25,Christian,Missouri,29043,38,0 +2020-06-26,Christian,Missouri,29043,39,0 +2020-06-27,Christian,Missouri,29043,40,0 +2020-06-28,Christian,Missouri,29043,41,0 +2020-06-29,Christian,Missouri,29043,43,0 +2020-06-30,Christian,Missouri,29043,44,0 +2020-07-01,Christian,Missouri,29043,45,0 +2020-07-02,Christian,Missouri,29043,54,1 +2020-07-03,Christian,Missouri,29043,54,1 +2020-07-04,Christian,Missouri,29043,54,1 +2020-07-05,Christian,Missouri,29043,54,1 +2020-07-06,Christian,Missouri,29043,58,1 +2020-07-07,Christian,Missouri,29043,71,1 +2020-07-08,Christian,Missouri,29043,71,1 +2020-07-09,Christian,Missouri,29043,85,1 +2020-04-03,Clark,Missouri,29045,1,0 +2020-04-04,Clark,Missouri,29045,1,0 +2020-04-05,Clark,Missouri,29045,1,0 +2020-04-06,Clark,Missouri,29045,1,0 +2020-04-07,Clark,Missouri,29045,1,0 +2020-04-08,Clark,Missouri,29045,1,0 +2020-04-09,Clark,Missouri,29045,1,0 +2020-04-10,Clark,Missouri,29045,1,0 +2020-04-11,Clark,Missouri,29045,1,0 +2020-04-12,Clark,Missouri,29045,1,0 +2020-04-13,Clark,Missouri,29045,1,0 +2020-04-14,Clark,Missouri,29045,1,0 +2020-04-15,Clark,Missouri,29045,1,0 +2020-04-16,Clark,Missouri,29045,1,0 +2020-04-17,Clark,Missouri,29045,1,0 +2020-04-18,Clark,Missouri,29045,1,0 +2020-04-19,Clark,Missouri,29045,1,0 +2020-04-20,Clark,Missouri,29045,1,0 +2020-04-21,Clark,Missouri,29045,1,0 +2020-04-22,Clark,Missouri,29045,1,0 +2020-04-23,Clark,Missouri,29045,1,0 +2020-04-24,Clark,Missouri,29045,1,0 +2020-04-25,Clark,Missouri,29045,1,0 +2020-04-26,Clark,Missouri,29045,1,0 +2020-04-27,Clark,Missouri,29045,1,0 +2020-04-28,Clark,Missouri,29045,1,0 +2020-04-29,Clark,Missouri,29045,1,0 +2020-04-30,Clark,Missouri,29045,1,0 +2020-05-01,Clark,Missouri,29045,1,0 +2020-05-02,Clark,Missouri,29045,1,0 +2020-05-03,Clark,Missouri,29045,1,0 +2020-05-04,Clark,Missouri,29045,1,0 +2020-05-05,Clark,Missouri,29045,1,0 +2020-05-06,Clark,Missouri,29045,1,0 +2020-05-07,Clark,Missouri,29045,1,0 +2020-05-08,Clark,Missouri,29045,1,0 +2020-05-09,Clark,Missouri,29045,1,0 +2020-05-10,Clark,Missouri,29045,1,0 +2020-05-11,Clark,Missouri,29045,1,0 +2020-05-12,Clark,Missouri,29045,1,0 +2020-05-13,Clark,Missouri,29045,1,0 +2020-05-14,Clark,Missouri,29045,1,0 +2020-05-15,Clark,Missouri,29045,1,0 +2020-05-16,Clark,Missouri,29045,1,0 +2020-05-17,Clark,Missouri,29045,1,0 +2020-05-18,Clark,Missouri,29045,1,0 +2020-05-19,Clark,Missouri,29045,1,0 +2020-05-20,Clark,Missouri,29045,1,0 +2020-05-21,Clark,Missouri,29045,1,0 +2020-05-22,Clark,Missouri,29045,1,0 +2020-05-23,Clark,Missouri,29045,1,0 +2020-05-24,Clark,Missouri,29045,1,0 +2020-05-25,Clark,Missouri,29045,1,0 +2020-05-26,Clark,Missouri,29045,1,0 +2020-05-27,Clark,Missouri,29045,1,0 +2020-05-28,Clark,Missouri,29045,1,0 +2020-05-29,Clark,Missouri,29045,1,0 +2020-05-30,Clark,Missouri,29045,1,0 +2020-05-31,Clark,Missouri,29045,1,0 +2020-06-01,Clark,Missouri,29045,1,0 +2020-06-02,Clark,Missouri,29045,1,0 +2020-06-03,Clark,Missouri,29045,1,0 +2020-06-04,Clark,Missouri,29045,1,0 +2020-06-05,Clark,Missouri,29045,1,0 +2020-06-06,Clark,Missouri,29045,1,0 +2020-06-07,Clark,Missouri,29045,1,0 +2020-06-08,Clark,Missouri,29045,1,0 +2020-06-09,Clark,Missouri,29045,1,0 +2020-06-10,Clark,Missouri,29045,2,0 +2020-06-11,Clark,Missouri,29045,2,0 +2020-06-12,Clark,Missouri,29045,1,0 +2020-06-13,Clark,Missouri,29045,1,0 +2020-06-14,Clark,Missouri,29045,1,0 +2020-06-15,Clark,Missouri,29045,1,0 +2020-06-16,Clark,Missouri,29045,1,0 +2020-06-17,Clark,Missouri,29045,1,0 +2020-06-18,Clark,Missouri,29045,1,0 +2020-06-19,Clark,Missouri,29045,1,0 +2020-06-20,Clark,Missouri,29045,1,0 +2020-06-21,Clark,Missouri,29045,1,0 +2020-06-22,Clark,Missouri,29045,1,0 +2020-06-23,Clark,Missouri,29045,1,0 +2020-06-24,Clark,Missouri,29045,2,0 +2020-06-25,Clark,Missouri,29045,2,0 +2020-06-26,Clark,Missouri,29045,2,0 +2020-06-27,Clark,Missouri,29045,2,0 +2020-06-28,Clark,Missouri,29045,2,0 +2020-06-29,Clark,Missouri,29045,2,0 +2020-06-30,Clark,Missouri,29045,2,0 +2020-07-01,Clark,Missouri,29045,2,0 +2020-07-02,Clark,Missouri,29045,2,0 +2020-07-03,Clark,Missouri,29045,2,0 +2020-07-04,Clark,Missouri,29045,2,0 +2020-07-05,Clark,Missouri,29045,2,0 +2020-07-06,Clark,Missouri,29045,2,0 +2020-07-07,Clark,Missouri,29045,2,0 +2020-07-08,Clark,Missouri,29045,2,0 +2020-07-09,Clark,Missouri,29045,2,0 +2020-03-23,Clay,Missouri,29047,3,0 +2020-03-24,Clay,Missouri,29047,3,0 +2020-03-25,Clay,Missouri,29047,5,0 +2020-03-26,Clay,Missouri,29047,5,0 +2020-03-27,Clay,Missouri,29047,9,0 +2020-03-28,Clay,Missouri,29047,10,0 +2020-03-29,Clay,Missouri,29047,11,0 +2020-03-30,Clay,Missouri,29047,13,0 +2020-03-31,Clay,Missouri,29047,16,0 +2020-04-01,Clay,Missouri,29047,21,0 +2020-04-02,Clay,Missouri,29047,23,0 +2020-04-03,Clay,Missouri,29047,26,0 +2020-04-04,Clay,Missouri,29047,32,0 +2020-04-05,Clay,Missouri,29047,33,0 +2020-04-06,Clay,Missouri,29047,37,1 +2020-04-07,Clay,Missouri,29047,37,1 +2020-04-08,Clay,Missouri,29047,37,1 +2020-04-09,Clay,Missouri,29047,38,1 +2020-04-10,Clay,Missouri,29047,40,1 +2020-04-11,Clay,Missouri,29047,46,1 +2020-04-12,Clay,Missouri,29047,48,1 +2020-04-13,Clay,Missouri,29047,51,1 +2020-04-14,Clay,Missouri,29047,51,1 +2020-04-15,Clay,Missouri,29047,52,1 +2020-04-16,Clay,Missouri,29047,52,1 +2020-04-17,Clay,Missouri,29047,55,1 +2020-04-18,Clay,Missouri,29047,56,1 +2020-04-19,Clay,Missouri,29047,57,1 +2020-04-20,Clay,Missouri,29047,59,1 +2020-04-21,Clay,Missouri,29047,61,1 +2020-04-22,Clay,Missouri,29047,61,1 +2020-04-23,Clay,Missouri,29047,62,1 +2020-04-24,Clay,Missouri,29047,63,1 +2020-04-25,Clay,Missouri,29047,65,1 +2020-04-26,Clay,Missouri,29047,67,1 +2020-04-27,Clay,Missouri,29047,68,1 +2020-04-28,Clay,Missouri,29047,69,1 +2020-04-29,Clay,Missouri,29047,69,1 +2020-04-30,Clay,Missouri,29047,70,1 +2020-05-01,Clay,Missouri,29047,77,1 +2020-05-02,Clay,Missouri,29047,77,1 +2020-05-03,Clay,Missouri,29047,77,1 +2020-05-04,Clay,Missouri,29047,81,1 +2020-05-05,Clay,Missouri,29047,86,1 +2020-05-06,Clay,Missouri,29047,88,1 +2020-05-07,Clay,Missouri,29047,91,1 +2020-05-08,Clay,Missouri,29047,96,1 +2020-05-09,Clay,Missouri,29047,96,1 +2020-05-10,Clay,Missouri,29047,96,1 +2020-05-11,Clay,Missouri,29047,101,1 +2020-05-12,Clay,Missouri,29047,102,1 +2020-05-13,Clay,Missouri,29047,106,1 +2020-05-14,Clay,Missouri,29047,111,1 +2020-05-15,Clay,Missouri,29047,113,1 +2020-05-16,Clay,Missouri,29047,116,1 +2020-05-17,Clay,Missouri,29047,114,1 +2020-05-18,Clay,Missouri,29047,120,1 +2020-05-19,Clay,Missouri,29047,123,1 +2020-05-20,Clay,Missouri,29047,125,1 +2020-05-21,Clay,Missouri,29047,127,1 +2020-05-22,Clay,Missouri,29047,133,1 +2020-05-23,Clay,Missouri,29047,141,2 +2020-05-24,Clay,Missouri,29047,149,2 +2020-05-25,Clay,Missouri,29047,148,2 +2020-05-26,Clay,Missouri,29047,152,2 +2020-05-27,Clay,Missouri,29047,158,3 +2020-05-28,Clay,Missouri,29047,162,3 +2020-05-29,Clay,Missouri,29047,169,3 +2020-05-30,Clay,Missouri,29047,171,3 +2020-05-31,Clay,Missouri,29047,173,3 +2020-06-01,Clay,Missouri,29047,179,3 +2020-06-02,Clay,Missouri,29047,184,3 +2020-06-03,Clay,Missouri,29047,189,3 +2020-06-04,Clay,Missouri,29047,192,3 +2020-06-05,Clay,Missouri,29047,228,3 +2020-06-06,Clay,Missouri,29047,228,4 +2020-06-07,Clay,Missouri,29047,233,4 +2020-06-08,Clay,Missouri,29047,243,3 +2020-06-09,Clay,Missouri,29047,255,3 +2020-06-10,Clay,Missouri,29047,263,3 +2020-06-11,Clay,Missouri,29047,291,3 +2020-06-12,Clay,Missouri,29047,295,3 +2020-06-13,Clay,Missouri,29047,295,3 +2020-06-14,Clay,Missouri,29047,295,3 +2020-06-15,Clay,Missouri,29047,298,6 +2020-06-16,Clay,Missouri,29047,299,7 +2020-06-17,Clay,Missouri,29047,305,8 +2020-06-18,Clay,Missouri,29047,319,8 +2020-06-19,Clay,Missouri,29047,334,9 +2020-06-20,Clay,Missouri,29047,342,9 +2020-06-21,Clay,Missouri,29047,342,9 +2020-06-22,Clay,Missouri,29047,348,9 +2020-06-23,Clay,Missouri,29047,367,9 +2020-06-24,Clay,Missouri,29047,375,11 +2020-06-25,Clay,Missouri,29047,386,11 +2020-06-26,Clay,Missouri,29047,406,12 +2020-06-27,Clay,Missouri,29047,414,12 +2020-06-28,Clay,Missouri,29047,431,12 +2020-06-29,Clay,Missouri,29047,443,14 +2020-06-30,Clay,Missouri,29047,454,16 +2020-07-01,Clay,Missouri,29047,460,16 +2020-07-02,Clay,Missouri,29047,472,16 +2020-07-03,Clay,Missouri,29047,478,16 +2020-07-04,Clay,Missouri,29047,493,16 +2020-07-05,Clay,Missouri,29047,500,16 +2020-07-06,Clay,Missouri,29047,504,17 +2020-07-07,Clay,Missouri,29047,510,17 +2020-07-08,Clay,Missouri,29047,526,20 +2020-07-09,Clay,Missouri,29047,539,20 +2020-03-23,Clinton,Missouri,29049,1,0 +2020-03-24,Clinton,Missouri,29049,1,0 +2020-03-25,Clinton,Missouri,29049,1,0 +2020-03-26,Clinton,Missouri,29049,1,0 +2020-03-27,Clinton,Missouri,29049,1,0 +2020-03-28,Clinton,Missouri,29049,1,0 +2020-03-29,Clinton,Missouri,29049,1,0 +2020-03-30,Clinton,Missouri,29049,4,0 +2020-03-31,Clinton,Missouri,29049,4,0 +2020-04-01,Clinton,Missouri,29049,5,0 +2020-04-02,Clinton,Missouri,29049,6,0 +2020-04-03,Clinton,Missouri,29049,8,0 +2020-04-04,Clinton,Missouri,29049,7,0 +2020-04-05,Clinton,Missouri,29049,7,0 +2020-04-06,Clinton,Missouri,29049,8,0 +2020-04-07,Clinton,Missouri,29049,8,0 +2020-04-08,Clinton,Missouri,29049,11,0 +2020-04-09,Clinton,Missouri,29049,9,0 +2020-04-10,Clinton,Missouri,29049,10,0 +2020-04-11,Clinton,Missouri,29049,11,0 +2020-04-12,Clinton,Missouri,29049,11,0 +2020-04-13,Clinton,Missouri,29049,11,0 +2020-04-14,Clinton,Missouri,29049,11,0 +2020-04-15,Clinton,Missouri,29049,11,0 +2020-04-16,Clinton,Missouri,29049,11,0 +2020-04-17,Clinton,Missouri,29049,11,0 +2020-04-18,Clinton,Missouri,29049,11,0 +2020-04-19,Clinton,Missouri,29049,11,0 +2020-04-20,Clinton,Missouri,29049,11,0 +2020-04-21,Clinton,Missouri,29049,11,0 +2020-04-22,Clinton,Missouri,29049,11,0 +2020-04-23,Clinton,Missouri,29049,11,0 +2020-04-24,Clinton,Missouri,29049,11,0 +2020-04-25,Clinton,Missouri,29049,11,0 +2020-04-26,Clinton,Missouri,29049,11,0 +2020-04-27,Clinton,Missouri,29049,11,0 +2020-04-28,Clinton,Missouri,29049,11,0 +2020-04-29,Clinton,Missouri,29049,11,0 +2020-04-30,Clinton,Missouri,29049,11,0 +2020-05-01,Clinton,Missouri,29049,11,0 +2020-05-02,Clinton,Missouri,29049,11,0 +2020-05-03,Clinton,Missouri,29049,11,0 +2020-05-04,Clinton,Missouri,29049,11,0 +2020-05-05,Clinton,Missouri,29049,11,0 +2020-05-06,Clinton,Missouri,29049,13,0 +2020-05-07,Clinton,Missouri,29049,13,0 +2020-05-08,Clinton,Missouri,29049,14,0 +2020-05-09,Clinton,Missouri,29049,14,0 +2020-05-10,Clinton,Missouri,29049,14,0 +2020-05-11,Clinton,Missouri,29049,14,0 +2020-05-12,Clinton,Missouri,29049,14,0 +2020-05-13,Clinton,Missouri,29049,14,0 +2020-05-14,Clinton,Missouri,29049,14,0 +2020-05-15,Clinton,Missouri,29049,14,0 +2020-05-16,Clinton,Missouri,29049,14,0 +2020-05-17,Clinton,Missouri,29049,17,0 +2020-05-18,Clinton,Missouri,29049,17,0 +2020-05-19,Clinton,Missouri,29049,17,0 +2020-05-20,Clinton,Missouri,29049,18,0 +2020-05-21,Clinton,Missouri,29049,16,0 +2020-05-22,Clinton,Missouri,29049,16,0 +2020-05-23,Clinton,Missouri,29049,17,0 +2020-05-24,Clinton,Missouri,29049,18,0 +2020-05-25,Clinton,Missouri,29049,18,0 +2020-05-26,Clinton,Missouri,29049,18,0 +2020-05-27,Clinton,Missouri,29049,18,0 +2020-05-28,Clinton,Missouri,29049,18,0 +2020-05-29,Clinton,Missouri,29049,18,0 +2020-05-30,Clinton,Missouri,29049,18,0 +2020-05-31,Clinton,Missouri,29049,18,0 +2020-06-01,Clinton,Missouri,29049,18,0 +2020-06-02,Clinton,Missouri,29049,18,0 +2020-06-03,Clinton,Missouri,29049,18,0 +2020-06-04,Clinton,Missouri,29049,20,0 +2020-06-05,Clinton,Missouri,29049,19,0 +2020-06-06,Clinton,Missouri,29049,19,0 +2020-06-07,Clinton,Missouri,29049,19,0 +2020-06-08,Clinton,Missouri,29049,19,0 +2020-06-09,Clinton,Missouri,29049,19,0 +2020-06-10,Clinton,Missouri,29049,19,0 +2020-06-11,Clinton,Missouri,29049,19,0 +2020-06-12,Clinton,Missouri,29049,19,0 +2020-06-13,Clinton,Missouri,29049,20,0 +2020-06-14,Clinton,Missouri,29049,20,0 +2020-06-15,Clinton,Missouri,29049,21,0 +2020-06-16,Clinton,Missouri,29049,21,0 +2020-06-17,Clinton,Missouri,29049,21,0 +2020-06-18,Clinton,Missouri,29049,23,0 +2020-06-19,Clinton,Missouri,29049,22,0 +2020-06-20,Clinton,Missouri,29049,23,0 +2020-06-21,Clinton,Missouri,29049,23,0 +2020-06-22,Clinton,Missouri,29049,23,0 +2020-06-23,Clinton,Missouri,29049,23,0 +2020-06-24,Clinton,Missouri,29049,23,0 +2020-06-25,Clinton,Missouri,29049,23,0 +2020-06-26,Clinton,Missouri,29049,23,0 +2020-06-27,Clinton,Missouri,29049,23,0 +2020-06-28,Clinton,Missouri,29049,23,0 +2020-06-29,Clinton,Missouri,29049,23,0 +2020-06-30,Clinton,Missouri,29049,25,0 +2020-07-01,Clinton,Missouri,29049,25,0 +2020-07-02,Clinton,Missouri,29049,26,0 +2020-07-03,Clinton,Missouri,29049,28,0 +2020-07-04,Clinton,Missouri,29049,29,0 +2020-07-05,Clinton,Missouri,29049,29,0 +2020-07-06,Clinton,Missouri,29049,28,0 +2020-07-07,Clinton,Missouri,29049,29,0 +2020-07-08,Clinton,Missouri,29049,31,0 +2020-07-09,Clinton,Missouri,29049,31,0 +2020-03-17,Cole,Missouri,29051,1,0 +2020-03-18,Cole,Missouri,29051,2,0 +2020-03-19,Cole,Missouri,29051,2,0 +2020-03-20,Cole,Missouri,29051,3,0 +2020-03-21,Cole,Missouri,29051,3,0 +2020-03-22,Cole,Missouri,29051,3,0 +2020-03-23,Cole,Missouri,29051,5,0 +2020-03-24,Cole,Missouri,29051,5,0 +2020-03-25,Cole,Missouri,29051,6,0 +2020-03-26,Cole,Missouri,29051,8,0 +2020-03-27,Cole,Missouri,29051,10,0 +2020-03-28,Cole,Missouri,29051,17,0 +2020-03-29,Cole,Missouri,29051,17,0 +2020-03-30,Cole,Missouri,29051,25,0 +2020-03-31,Cole,Missouri,29051,23,0 +2020-04-01,Cole,Missouri,29051,24,0 +2020-04-02,Cole,Missouri,29051,25,0 +2020-04-03,Cole,Missouri,29051,26,1 +2020-04-04,Cole,Missouri,29051,28,1 +2020-04-05,Cole,Missouri,29051,30,1 +2020-04-06,Cole,Missouri,29051,30,1 +2020-04-07,Cole,Missouri,29051,32,1 +2020-04-08,Cole,Missouri,29051,35,1 +2020-04-09,Cole,Missouri,29051,35,1 +2020-04-10,Cole,Missouri,29051,35,1 +2020-04-11,Cole,Missouri,29051,36,1 +2020-04-12,Cole,Missouri,29051,36,1 +2020-04-13,Cole,Missouri,29051,37,1 +2020-04-14,Cole,Missouri,29051,38,1 +2020-04-15,Cole,Missouri,29051,41,1 +2020-04-16,Cole,Missouri,29051,41,1 +2020-04-17,Cole,Missouri,29051,42,1 +2020-04-18,Cole,Missouri,29051,44,1 +2020-04-19,Cole,Missouri,29051,46,1 +2020-04-20,Cole,Missouri,29051,46,1 +2020-04-21,Cole,Missouri,29051,46,1 +2020-04-22,Cole,Missouri,29051,45,1 +2020-04-23,Cole,Missouri,29051,47,1 +2020-04-24,Cole,Missouri,29051,49,1 +2020-04-25,Cole,Missouri,29051,50,1 +2020-04-26,Cole,Missouri,29051,50,1 +2020-04-27,Cole,Missouri,29051,50,1 +2020-04-28,Cole,Missouri,29051,50,1 +2020-04-29,Cole,Missouri,29051,50,1 +2020-04-30,Cole,Missouri,29051,51,1 +2020-05-01,Cole,Missouri,29051,51,1 +2020-05-02,Cole,Missouri,29051,53,1 +2020-05-03,Cole,Missouri,29051,54,1 +2020-05-04,Cole,Missouri,29051,54,1 +2020-05-05,Cole,Missouri,29051,52,1 +2020-05-06,Cole,Missouri,29051,53,1 +2020-05-07,Cole,Missouri,29051,55,1 +2020-05-08,Cole,Missouri,29051,54,1 +2020-05-09,Cole,Missouri,29051,54,1 +2020-05-10,Cole,Missouri,29051,56,1 +2020-05-11,Cole,Missouri,29051,55,1 +2020-05-12,Cole,Missouri,29051,55,1 +2020-05-13,Cole,Missouri,29051,55,1 +2020-05-14,Cole,Missouri,29051,55,1 +2020-05-15,Cole,Missouri,29051,55,1 +2020-05-16,Cole,Missouri,29051,55,1 +2020-05-17,Cole,Missouri,29051,55,1 +2020-05-18,Cole,Missouri,29051,56,1 +2020-05-19,Cole,Missouri,29051,55,1 +2020-05-20,Cole,Missouri,29051,55,1 +2020-05-21,Cole,Missouri,29051,55,1 +2020-05-22,Cole,Missouri,29051,58,1 +2020-05-23,Cole,Missouri,29051,59,1 +2020-05-24,Cole,Missouri,29051,59,1 +2020-05-25,Cole,Missouri,29051,60,1 +2020-05-26,Cole,Missouri,29051,60,1 +2020-05-27,Cole,Missouri,29051,60,1 +2020-05-28,Cole,Missouri,29051,60,1 +2020-05-29,Cole,Missouri,29051,60,1 +2020-05-30,Cole,Missouri,29051,60,1 +2020-05-31,Cole,Missouri,29051,60,1 +2020-06-01,Cole,Missouri,29051,61,1 +2020-06-02,Cole,Missouri,29051,60,1 +2020-06-03,Cole,Missouri,29051,60,1 +2020-06-04,Cole,Missouri,29051,60,1 +2020-06-05,Cole,Missouri,29051,57,1 +2020-06-06,Cole,Missouri,29051,57,1 +2020-06-07,Cole,Missouri,29051,57,1 +2020-06-08,Cole,Missouri,29051,57,1 +2020-06-09,Cole,Missouri,29051,57,1 +2020-06-10,Cole,Missouri,29051,57,1 +2020-06-11,Cole,Missouri,29051,57,1 +2020-06-12,Cole,Missouri,29051,57,1 +2020-06-13,Cole,Missouri,29051,57,1 +2020-06-14,Cole,Missouri,29051,57,1 +2020-06-15,Cole,Missouri,29051,57,1 +2020-06-16,Cole,Missouri,29051,57,1 +2020-06-17,Cole,Missouri,29051,57,1 +2020-06-18,Cole,Missouri,29051,57,1 +2020-06-19,Cole,Missouri,29051,58,1 +2020-06-20,Cole,Missouri,29051,60,1 +2020-06-21,Cole,Missouri,29051,60,1 +2020-06-22,Cole,Missouri,29051,61,1 +2020-06-23,Cole,Missouri,29051,63,2 +2020-06-24,Cole,Missouri,29051,64,2 +2020-06-25,Cole,Missouri,29051,67,2 +2020-06-26,Cole,Missouri,29051,73,2 +2020-06-27,Cole,Missouri,29051,72,2 +2020-06-28,Cole,Missouri,29051,73,2 +2020-06-29,Cole,Missouri,29051,76,2 +2020-06-30,Cole,Missouri,29051,77,2 +2020-07-01,Cole,Missouri,29051,78,2 +2020-07-02,Cole,Missouri,29051,79,2 +2020-07-03,Cole,Missouri,29051,81,2 +2020-07-04,Cole,Missouri,29051,82,2 +2020-07-05,Cole,Missouri,29051,84,2 +2020-07-06,Cole,Missouri,29051,91,2 +2020-07-07,Cole,Missouri,29051,94,2 +2020-07-08,Cole,Missouri,29051,102,2 +2020-07-09,Cole,Missouri,29051,115,2 +2020-03-25,Cooper,Missouri,29053,1,0 +2020-03-26,Cooper,Missouri,29053,1,0 +2020-03-27,Cooper,Missouri,29053,1,0 +2020-03-28,Cooper,Missouri,29053,1,0 +2020-03-29,Cooper,Missouri,29053,1,0 +2020-03-30,Cooper,Missouri,29053,1,0 +2020-03-31,Cooper,Missouri,29053,2,0 +2020-04-01,Cooper,Missouri,29053,2,0 +2020-04-02,Cooper,Missouri,29053,2,0 +2020-04-03,Cooper,Missouri,29053,2,0 +2020-04-04,Cooper,Missouri,29053,2,0 +2020-04-05,Cooper,Missouri,29053,2,0 +2020-04-06,Cooper,Missouri,29053,2,0 +2020-04-07,Cooper,Missouri,29053,2,0 +2020-04-08,Cooper,Missouri,29053,2,0 +2020-04-09,Cooper,Missouri,29053,3,0 +2020-04-10,Cooper,Missouri,29053,3,0 +2020-04-11,Cooper,Missouri,29053,4,0 +2020-04-12,Cooper,Missouri,29053,4,0 +2020-04-13,Cooper,Missouri,29053,4,0 +2020-04-14,Cooper,Missouri,29053,4,0 +2020-04-15,Cooper,Missouri,29053,4,0 +2020-04-16,Cooper,Missouri,29053,4,0 +2020-04-17,Cooper,Missouri,29053,4,0 +2020-04-18,Cooper,Missouri,29053,4,0 +2020-04-19,Cooper,Missouri,29053,4,0 +2020-04-20,Cooper,Missouri,29053,4,0 +2020-04-21,Cooper,Missouri,29053,5,0 +2020-04-22,Cooper,Missouri,29053,5,0 +2020-04-23,Cooper,Missouri,29053,5,0 +2020-04-24,Cooper,Missouri,29053,7,0 +2020-04-25,Cooper,Missouri,29053,7,0 +2020-04-26,Cooper,Missouri,29053,7,0 +2020-04-27,Cooper,Missouri,29053,7,0 +2020-04-28,Cooper,Missouri,29053,7,0 +2020-04-29,Cooper,Missouri,29053,7,0 +2020-04-30,Cooper,Missouri,29053,7,0 +2020-05-01,Cooper,Missouri,29053,9,0 +2020-05-02,Cooper,Missouri,29053,9,0 +2020-05-03,Cooper,Missouri,29053,9,0 +2020-05-04,Cooper,Missouri,29053,9,0 +2020-05-05,Cooper,Missouri,29053,9,0 +2020-05-06,Cooper,Missouri,29053,9,0 +2020-05-07,Cooper,Missouri,29053,9,0 +2020-05-08,Cooper,Missouri,29053,9,0 +2020-05-09,Cooper,Missouri,29053,9,0 +2020-05-10,Cooper,Missouri,29053,9,0 +2020-05-11,Cooper,Missouri,29053,9,0 +2020-05-12,Cooper,Missouri,29053,9,0 +2020-05-13,Cooper,Missouri,29053,9,0 +2020-05-14,Cooper,Missouri,29053,9,0 +2020-05-15,Cooper,Missouri,29053,9,0 +2020-05-16,Cooper,Missouri,29053,9,0 +2020-05-17,Cooper,Missouri,29053,9,0 +2020-05-18,Cooper,Missouri,29053,9,0 +2020-05-19,Cooper,Missouri,29053,9,0 +2020-05-20,Cooper,Missouri,29053,9,0 +2020-05-21,Cooper,Missouri,29053,9,0 +2020-05-22,Cooper,Missouri,29053,9,0 +2020-05-23,Cooper,Missouri,29053,9,0 +2020-05-24,Cooper,Missouri,29053,9,0 +2020-05-25,Cooper,Missouri,29053,9,0 +2020-05-26,Cooper,Missouri,29053,9,0 +2020-05-27,Cooper,Missouri,29053,9,0 +2020-05-28,Cooper,Missouri,29053,9,0 +2020-05-29,Cooper,Missouri,29053,9,0 +2020-05-30,Cooper,Missouri,29053,9,0 +2020-05-31,Cooper,Missouri,29053,9,0 +2020-06-01,Cooper,Missouri,29053,9,0 +2020-06-02,Cooper,Missouri,29053,9,0 +2020-06-03,Cooper,Missouri,29053,9,0 +2020-06-04,Cooper,Missouri,29053,9,0 +2020-06-05,Cooper,Missouri,29053,9,0 +2020-06-06,Cooper,Missouri,29053,9,0 +2020-06-07,Cooper,Missouri,29053,9,0 +2020-06-08,Cooper,Missouri,29053,9,0 +2020-06-09,Cooper,Missouri,29053,9,0 +2020-06-10,Cooper,Missouri,29053,9,0 +2020-06-11,Cooper,Missouri,29053,9,0 +2020-06-12,Cooper,Missouri,29053,9,0 +2020-06-13,Cooper,Missouri,29053,9,0 +2020-06-14,Cooper,Missouri,29053,9,0 +2020-06-15,Cooper,Missouri,29053,9,0 +2020-06-16,Cooper,Missouri,29053,9,0 +2020-06-17,Cooper,Missouri,29053,11,0 +2020-06-18,Cooper,Missouri,29053,12,0 +2020-06-19,Cooper,Missouri,29053,12,0 +2020-06-20,Cooper,Missouri,29053,12,0 +2020-06-21,Cooper,Missouri,29053,12,0 +2020-06-22,Cooper,Missouri,29053,13,0 +2020-06-23,Cooper,Missouri,29053,13,0 +2020-06-24,Cooper,Missouri,29053,13,0 +2020-06-25,Cooper,Missouri,29053,14,0 +2020-06-26,Cooper,Missouri,29053,14,0 +2020-06-27,Cooper,Missouri,29053,14,0 +2020-06-28,Cooper,Missouri,29053,14,0 +2020-06-29,Cooper,Missouri,29053,14,0 +2020-06-30,Cooper,Missouri,29053,14,0 +2020-07-01,Cooper,Missouri,29053,14,0 +2020-07-02,Cooper,Missouri,29053,16,0 +2020-07-03,Cooper,Missouri,29053,20,0 +2020-07-04,Cooper,Missouri,29053,20,0 +2020-07-05,Cooper,Missouri,29053,20,0 +2020-07-06,Cooper,Missouri,29053,20,0 +2020-07-07,Cooper,Missouri,29053,23,0 +2020-07-08,Cooper,Missouri,29053,23,0 +2020-07-09,Cooper,Missouri,29053,25,0 +2020-03-30,Crawford,Missouri,29055,1,0 +2020-03-31,Crawford,Missouri,29055,1,0 +2020-04-01,Crawford,Missouri,29055,1,0 +2020-04-02,Crawford,Missouri,29055,1,0 +2020-04-03,Crawford,Missouri,29055,1,0 +2020-04-04,Crawford,Missouri,29055,2,0 +2020-04-05,Crawford,Missouri,29055,3,0 +2020-04-06,Crawford,Missouri,29055,3,0 +2020-04-07,Crawford,Missouri,29055,3,0 +2020-04-08,Crawford,Missouri,29055,5,0 +2020-04-09,Crawford,Missouri,29055,4,0 +2020-04-10,Crawford,Missouri,29055,4,0 +2020-04-11,Crawford,Missouri,29055,4,0 +2020-04-12,Crawford,Missouri,29055,4,0 +2020-04-13,Crawford,Missouri,29055,4,0 +2020-04-14,Crawford,Missouri,29055,5,0 +2020-04-15,Crawford,Missouri,29055,5,0 +2020-04-16,Crawford,Missouri,29055,5,0 +2020-04-17,Crawford,Missouri,29055,6,0 +2020-04-18,Crawford,Missouri,29055,5,0 +2020-04-19,Crawford,Missouri,29055,5,0 +2020-04-20,Crawford,Missouri,29055,5,0 +2020-04-21,Crawford,Missouri,29055,5,0 +2020-04-22,Crawford,Missouri,29055,5,0 +2020-04-23,Crawford,Missouri,29055,6,0 +2020-04-24,Crawford,Missouri,29055,7,0 +2020-04-25,Crawford,Missouri,29055,7,0 +2020-04-26,Crawford,Missouri,29055,7,0 +2020-04-27,Crawford,Missouri,29055,7,0 +2020-04-28,Crawford,Missouri,29055,7,0 +2020-04-29,Crawford,Missouri,29055,7,0 +2020-04-30,Crawford,Missouri,29055,8,0 +2020-05-01,Crawford,Missouri,29055,8,0 +2020-05-02,Crawford,Missouri,29055,8,0 +2020-05-03,Crawford,Missouri,29055,8,0 +2020-05-04,Crawford,Missouri,29055,8,0 +2020-05-05,Crawford,Missouri,29055,8,0 +2020-05-06,Crawford,Missouri,29055,8,0 +2020-05-07,Crawford,Missouri,29055,8,0 +2020-05-08,Crawford,Missouri,29055,8,0 +2020-05-09,Crawford,Missouri,29055,8,0 +2020-05-10,Crawford,Missouri,29055,8,0 +2020-05-11,Crawford,Missouri,29055,8,0 +2020-05-12,Crawford,Missouri,29055,8,0 +2020-05-13,Crawford,Missouri,29055,8,0 +2020-05-14,Crawford,Missouri,29055,8,0 +2020-05-15,Crawford,Missouri,29055,8,0 +2020-05-16,Crawford,Missouri,29055,8,0 +2020-05-17,Crawford,Missouri,29055,9,0 +2020-05-18,Crawford,Missouri,29055,9,0 +2020-05-19,Crawford,Missouri,29055,8,0 +2020-05-20,Crawford,Missouri,29055,8,0 +2020-05-21,Crawford,Missouri,29055,8,0 +2020-05-22,Crawford,Missouri,29055,8,0 +2020-05-23,Crawford,Missouri,29055,8,0 +2020-05-24,Crawford,Missouri,29055,8,0 +2020-05-25,Crawford,Missouri,29055,8,0 +2020-05-26,Crawford,Missouri,29055,8,0 +2020-05-27,Crawford,Missouri,29055,8,0 +2020-05-28,Crawford,Missouri,29055,8,0 +2020-05-29,Crawford,Missouri,29055,8,0 +2020-05-30,Crawford,Missouri,29055,8,0 +2020-05-31,Crawford,Missouri,29055,8,0 +2020-06-01,Crawford,Missouri,29055,8,0 +2020-06-02,Crawford,Missouri,29055,8,0 +2020-06-03,Crawford,Missouri,29055,8,0 +2020-06-04,Crawford,Missouri,29055,8,0 +2020-06-05,Crawford,Missouri,29055,8,0 +2020-06-06,Crawford,Missouri,29055,8,0 +2020-06-07,Crawford,Missouri,29055,8,0 +2020-06-08,Crawford,Missouri,29055,8,0 +2020-06-09,Crawford,Missouri,29055,8,0 +2020-06-10,Crawford,Missouri,29055,8,0 +2020-06-11,Crawford,Missouri,29055,8,0 +2020-06-12,Crawford,Missouri,29055,8,0 +2020-06-13,Crawford,Missouri,29055,8,0 +2020-06-14,Crawford,Missouri,29055,8,0 +2020-06-15,Crawford,Missouri,29055,9,0 +2020-06-16,Crawford,Missouri,29055,9,0 +2020-06-17,Crawford,Missouri,29055,9,0 +2020-06-18,Crawford,Missouri,29055,10,0 +2020-06-19,Crawford,Missouri,29055,10,0 +2020-06-20,Crawford,Missouri,29055,10,0 +2020-06-21,Crawford,Missouri,29055,10,0 +2020-06-22,Crawford,Missouri,29055,10,0 +2020-06-23,Crawford,Missouri,29055,10,0 +2020-06-24,Crawford,Missouri,29055,10,0 +2020-06-25,Crawford,Missouri,29055,10,0 +2020-06-26,Crawford,Missouri,29055,11,0 +2020-06-27,Crawford,Missouri,29055,11,0 +2020-06-28,Crawford,Missouri,29055,11,0 +2020-06-29,Crawford,Missouri,29055,12,0 +2020-06-30,Crawford,Missouri,29055,12,0 +2020-07-01,Crawford,Missouri,29055,12,0 +2020-07-02,Crawford,Missouri,29055,13,0 +2020-07-03,Crawford,Missouri,29055,15,0 +2020-07-04,Crawford,Missouri,29055,16,0 +2020-07-05,Crawford,Missouri,29055,17,0 +2020-07-06,Crawford,Missouri,29055,17,0 +2020-07-07,Crawford,Missouri,29055,18,0 +2020-07-08,Crawford,Missouri,29055,19,0 +2020-07-09,Crawford,Missouri,29055,19,0 +2020-06-15,Dade,Missouri,29057,1,0 +2020-06-16,Dade,Missouri,29057,1,0 +2020-06-17,Dade,Missouri,29057,1,0 +2020-06-18,Dade,Missouri,29057,1,0 +2020-06-19,Dade,Missouri,29057,1,0 +2020-06-20,Dade,Missouri,29057,1,0 +2020-06-21,Dade,Missouri,29057,1,0 +2020-06-22,Dade,Missouri,29057,1,0 +2020-06-23,Dade,Missouri,29057,1,0 +2020-06-24,Dade,Missouri,29057,1,0 +2020-06-25,Dade,Missouri,29057,1,0 +2020-06-26,Dade,Missouri,29057,1,0 +2020-06-27,Dade,Missouri,29057,1,0 +2020-06-28,Dade,Missouri,29057,1,0 +2020-06-29,Dade,Missouri,29057,1,0 +2020-06-30,Dade,Missouri,29057,1,0 +2020-07-01,Dade,Missouri,29057,1,0 +2020-07-02,Dade,Missouri,29057,1,0 +2020-07-03,Dade,Missouri,29057,1,0 +2020-07-04,Dade,Missouri,29057,1,0 +2020-07-05,Dade,Missouri,29057,1,0 +2020-07-06,Dade,Missouri,29057,1,0 +2020-07-07,Dade,Missouri,29057,1,0 +2020-07-08,Dade,Missouri,29057,1,0 +2020-07-09,Dade,Missouri,29057,2,0 +2020-04-07,Dallas,Missouri,29059,1,0 +2020-04-08,Dallas,Missouri,29059,1,0 +2020-04-09,Dallas,Missouri,29059,2,0 +2020-04-10,Dallas,Missouri,29059,2,0 +2020-04-11,Dallas,Missouri,29059,2,0 +2020-04-12,Dallas,Missouri,29059,2,0 +2020-04-13,Dallas,Missouri,29059,2,0 +2020-04-14,Dallas,Missouri,29059,2,0 +2020-04-15,Dallas,Missouri,29059,2,0 +2020-04-16,Dallas,Missouri,29059,2,0 +2020-04-17,Dallas,Missouri,29059,2,0 +2020-04-18,Dallas,Missouri,29059,2,0 +2020-04-19,Dallas,Missouri,29059,2,0 +2020-04-20,Dallas,Missouri,29059,2,0 +2020-04-21,Dallas,Missouri,29059,2,0 +2020-04-22,Dallas,Missouri,29059,2,0 +2020-04-23,Dallas,Missouri,29059,2,0 +2020-04-24,Dallas,Missouri,29059,2,0 +2020-04-25,Dallas,Missouri,29059,2,0 +2020-04-26,Dallas,Missouri,29059,2,0 +2020-04-27,Dallas,Missouri,29059,2,0 +2020-04-28,Dallas,Missouri,29059,2,0 +2020-04-29,Dallas,Missouri,29059,2,0 +2020-04-30,Dallas,Missouri,29059,2,0 +2020-05-01,Dallas,Missouri,29059,2,0 +2020-05-02,Dallas,Missouri,29059,2,0 +2020-05-03,Dallas,Missouri,29059,2,0 +2020-05-04,Dallas,Missouri,29059,2,0 +2020-05-05,Dallas,Missouri,29059,2,0 +2020-05-06,Dallas,Missouri,29059,2,0 +2020-05-07,Dallas,Missouri,29059,2,0 +2020-05-08,Dallas,Missouri,29059,2,0 +2020-05-09,Dallas,Missouri,29059,2,0 +2020-05-10,Dallas,Missouri,29059,2,0 +2020-05-11,Dallas,Missouri,29059,2,0 +2020-05-12,Dallas,Missouri,29059,2,0 +2020-05-13,Dallas,Missouri,29059,2,0 +2020-05-14,Dallas,Missouri,29059,2,0 +2020-05-15,Dallas,Missouri,29059,2,0 +2020-05-16,Dallas,Missouri,29059,2,0 +2020-05-17,Dallas,Missouri,29059,2,0 +2020-05-18,Dallas,Missouri,29059,2,0 +2020-05-19,Dallas,Missouri,29059,3,0 +2020-05-20,Dallas,Missouri,29059,2,0 +2020-05-21,Dallas,Missouri,29059,2,0 +2020-05-22,Dallas,Missouri,29059,2,0 +2020-05-23,Dallas,Missouri,29059,2,0 +2020-05-24,Dallas,Missouri,29059,2,0 +2020-05-25,Dallas,Missouri,29059,2,0 +2020-05-26,Dallas,Missouri,29059,2,0 +2020-05-27,Dallas,Missouri,29059,2,0 +2020-05-28,Dallas,Missouri,29059,3,0 +2020-05-29,Dallas,Missouri,29059,3,0 +2020-05-30,Dallas,Missouri,29059,3,0 +2020-05-31,Dallas,Missouri,29059,3,0 +2020-06-01,Dallas,Missouri,29059,3,0 +2020-06-02,Dallas,Missouri,29059,3,0 +2020-06-03,Dallas,Missouri,29059,3,0 +2020-06-04,Dallas,Missouri,29059,4,0 +2020-06-05,Dallas,Missouri,29059,4,0 +2020-06-06,Dallas,Missouri,29059,4,0 +2020-06-07,Dallas,Missouri,29059,5,0 +2020-06-08,Dallas,Missouri,29059,5,0 +2020-06-09,Dallas,Missouri,29059,6,0 +2020-06-10,Dallas,Missouri,29059,6,0 +2020-06-11,Dallas,Missouri,29059,6,0 +2020-06-12,Dallas,Missouri,29059,6,0 +2020-06-13,Dallas,Missouri,29059,6,0 +2020-06-14,Dallas,Missouri,29059,6,0 +2020-06-15,Dallas,Missouri,29059,6,0 +2020-06-16,Dallas,Missouri,29059,6,0 +2020-06-17,Dallas,Missouri,29059,6,0 +2020-06-18,Dallas,Missouri,29059,7,0 +2020-06-19,Dallas,Missouri,29059,9,0 +2020-06-20,Dallas,Missouri,29059,9,0 +2020-06-21,Dallas,Missouri,29059,9,0 +2020-06-22,Dallas,Missouri,29059,10,0 +2020-06-23,Dallas,Missouri,29059,12,0 +2020-06-24,Dallas,Missouri,29059,12,1 +2020-06-25,Dallas,Missouri,29059,12,1 +2020-06-26,Dallas,Missouri,29059,12,1 +2020-06-27,Dallas,Missouri,29059,12,1 +2020-06-28,Dallas,Missouri,29059,13,1 +2020-06-29,Dallas,Missouri,29059,13,1 +2020-06-30,Dallas,Missouri,29059,13,1 +2020-07-01,Dallas,Missouri,29059,13,1 +2020-07-02,Dallas,Missouri,29059,14,1 +2020-07-03,Dallas,Missouri,29059,14,1 +2020-07-04,Dallas,Missouri,29059,14,1 +2020-07-05,Dallas,Missouri,29059,14,1 +2020-07-06,Dallas,Missouri,29059,15,1 +2020-07-07,Dallas,Missouri,29059,15,1 +2020-07-08,Dallas,Missouri,29059,16,1 +2020-07-09,Dallas,Missouri,29059,17,1 +2020-04-15,Daviess,Missouri,29061,1,0 +2020-04-16,Daviess,Missouri,29061,2,0 +2020-04-17,Daviess,Missouri,29061,2,0 +2020-04-18,Daviess,Missouri,29061,2,0 +2020-04-19,Daviess,Missouri,29061,2,0 +2020-04-20,Daviess,Missouri,29061,2,0 +2020-04-21,Daviess,Missouri,29061,2,0 +2020-04-22,Daviess,Missouri,29061,2,0 +2020-04-23,Daviess,Missouri,29061,2,0 +2020-04-24,Daviess,Missouri,29061,2,0 +2020-04-25,Daviess,Missouri,29061,2,0 +2020-04-26,Daviess,Missouri,29061,2,0 +2020-04-27,Daviess,Missouri,29061,2,0 +2020-04-28,Daviess,Missouri,29061,2,0 +2020-04-29,Daviess,Missouri,29061,2,0 +2020-04-30,Daviess,Missouri,29061,2,0 +2020-05-01,Daviess,Missouri,29061,2,0 +2020-05-02,Daviess,Missouri,29061,3,0 +2020-05-03,Daviess,Missouri,29061,3,0 +2020-05-04,Daviess,Missouri,29061,3,0 +2020-05-05,Daviess,Missouri,29061,3,0 +2020-05-06,Daviess,Missouri,29061,3,0 +2020-05-07,Daviess,Missouri,29061,3,0 +2020-05-08,Daviess,Missouri,29061,3,0 +2020-05-09,Daviess,Missouri,29061,3,0 +2020-05-10,Daviess,Missouri,29061,3,0 +2020-05-11,Daviess,Missouri,29061,3,0 +2020-05-12,Daviess,Missouri,29061,3,0 +2020-05-13,Daviess,Missouri,29061,3,0 +2020-05-14,Daviess,Missouri,29061,3,0 +2020-05-15,Daviess,Missouri,29061,3,0 +2020-05-16,Daviess,Missouri,29061,3,0 +2020-05-17,Daviess,Missouri,29061,3,0 +2020-05-18,Daviess,Missouri,29061,3,0 +2020-05-19,Daviess,Missouri,29061,3,0 +2020-05-20,Daviess,Missouri,29061,3,0 +2020-05-21,Daviess,Missouri,29061,3,0 +2020-05-22,Daviess,Missouri,29061,4,0 +2020-05-23,Daviess,Missouri,29061,4,0 +2020-05-24,Daviess,Missouri,29061,4,0 +2020-05-25,Daviess,Missouri,29061,4,0 +2020-05-26,Daviess,Missouri,29061,4,0 +2020-05-27,Daviess,Missouri,29061,4,0 +2020-05-28,Daviess,Missouri,29061,4,0 +2020-05-29,Daviess,Missouri,29061,4,0 +2020-05-30,Daviess,Missouri,29061,4,0 +2020-05-31,Daviess,Missouri,29061,4,0 +2020-06-01,Daviess,Missouri,29061,4,0 +2020-06-02,Daviess,Missouri,29061,4,0 +2020-06-03,Daviess,Missouri,29061,4,0 +2020-06-04,Daviess,Missouri,29061,4,0 +2020-06-05,Daviess,Missouri,29061,5,0 +2020-06-06,Daviess,Missouri,29061,4,0 +2020-06-07,Daviess,Missouri,29061,4,0 +2020-06-08,Daviess,Missouri,29061,4,0 +2020-06-09,Daviess,Missouri,29061,6,0 +2020-06-10,Daviess,Missouri,29061,7,0 +2020-06-11,Daviess,Missouri,29061,7,0 +2020-06-12,Daviess,Missouri,29061,7,0 +2020-06-13,Daviess,Missouri,29061,7,0 +2020-06-14,Daviess,Missouri,29061,7,0 +2020-06-15,Daviess,Missouri,29061,7,0 +2020-06-16,Daviess,Missouri,29061,7,0 +2020-06-17,Daviess,Missouri,29061,7,0 +2020-06-18,Daviess,Missouri,29061,7,0 +2020-06-19,Daviess,Missouri,29061,7,0 +2020-06-20,Daviess,Missouri,29061,7,0 +2020-06-21,Daviess,Missouri,29061,7,0 +2020-06-22,Daviess,Missouri,29061,7,0 +2020-06-23,Daviess,Missouri,29061,7,0 +2020-06-24,Daviess,Missouri,29061,7,0 +2020-06-25,Daviess,Missouri,29061,7,0 +2020-06-26,Daviess,Missouri,29061,8,0 +2020-06-27,Daviess,Missouri,29061,8,0 +2020-06-28,Daviess,Missouri,29061,8,0 +2020-06-29,Daviess,Missouri,29061,8,0 +2020-06-30,Daviess,Missouri,29061,9,0 +2020-07-01,Daviess,Missouri,29061,9,0 +2020-07-02,Daviess,Missouri,29061,9,0 +2020-07-03,Daviess,Missouri,29061,9,0 +2020-07-04,Daviess,Missouri,29061,9,0 +2020-07-05,Daviess,Missouri,29061,9,0 +2020-07-06,Daviess,Missouri,29061,9,0 +2020-07-07,Daviess,Missouri,29061,10,0 +2020-07-08,Daviess,Missouri,29061,10,0 +2020-07-09,Daviess,Missouri,29061,11,0 +2020-04-01,DeKalb,Missouri,29063,1,0 +2020-04-02,DeKalb,Missouri,29063,1,0 +2020-04-03,DeKalb,Missouri,29063,1,0 +2020-04-04,DeKalb,Missouri,29063,1,0 +2020-04-05,DeKalb,Missouri,29063,1,0 +2020-04-06,DeKalb,Missouri,29063,1,0 +2020-04-07,DeKalb,Missouri,29063,1,0 +2020-04-08,DeKalb,Missouri,29063,2,0 +2020-04-09,DeKalb,Missouri,29063,3,0 +2020-04-10,DeKalb,Missouri,29063,3,0 +2020-04-11,DeKalb,Missouri,29063,3,0 +2020-04-12,DeKalb,Missouri,29063,3,0 +2020-04-13,DeKalb,Missouri,29063,3,0 +2020-04-14,DeKalb,Missouri,29063,3,0 +2020-04-15,DeKalb,Missouri,29063,3,0 +2020-04-16,DeKalb,Missouri,29063,3,0 +2020-04-17,DeKalb,Missouri,29063,3,0 +2020-04-18,DeKalb,Missouri,29063,3,0 +2020-04-19,DeKalb,Missouri,29063,3,0 +2020-04-20,DeKalb,Missouri,29063,3,0 +2020-04-21,DeKalb,Missouri,29063,3,0 +2020-04-22,DeKalb,Missouri,29063,3,0 +2020-04-23,DeKalb,Missouri,29063,3,0 +2020-04-24,DeKalb,Missouri,29063,3,0 +2020-04-25,DeKalb,Missouri,29063,3,0 +2020-04-26,DeKalb,Missouri,29063,3,0 +2020-04-27,DeKalb,Missouri,29063,3,0 +2020-04-28,DeKalb,Missouri,29063,3,0 +2020-04-29,DeKalb,Missouri,29063,3,0 +2020-04-30,DeKalb,Missouri,29063,3,0 +2020-05-01,DeKalb,Missouri,29063,3,0 +2020-05-02,DeKalb,Missouri,29063,3,0 +2020-05-03,DeKalb,Missouri,29063,3,0 +2020-05-04,DeKalb,Missouri,29063,3,0 +2020-05-05,DeKalb,Missouri,29063,3,0 +2020-05-06,DeKalb,Missouri,29063,3,0 +2020-05-07,DeKalb,Missouri,29063,3,0 +2020-05-08,DeKalb,Missouri,29063,4,0 +2020-05-09,DeKalb,Missouri,29063,3,0 +2020-05-10,DeKalb,Missouri,29063,3,0 +2020-05-11,DeKalb,Missouri,29063,3,0 +2020-05-12,DeKalb,Missouri,29063,4,0 +2020-05-13,DeKalb,Missouri,29063,4,0 +2020-05-14,DeKalb,Missouri,29063,4,0 +2020-05-15,DeKalb,Missouri,29063,4,0 +2020-05-16,DeKalb,Missouri,29063,4,0 +2020-05-17,DeKalb,Missouri,29063,4,0 +2020-05-18,DeKalb,Missouri,29063,4,0 +2020-05-19,DeKalb,Missouri,29063,4,0 +2020-05-20,DeKalb,Missouri,29063,5,0 +2020-05-21,DeKalb,Missouri,29063,5,0 +2020-05-22,DeKalb,Missouri,29063,5,0 +2020-05-23,DeKalb,Missouri,29063,5,0 +2020-05-24,DeKalb,Missouri,29063,5,0 +2020-05-25,DeKalb,Missouri,29063,5,0 +2020-05-26,DeKalb,Missouri,29063,6,0 +2020-05-27,DeKalb,Missouri,29063,6,0 +2020-05-28,DeKalb,Missouri,29063,6,0 +2020-05-29,DeKalb,Missouri,29063,6,0 +2020-05-30,DeKalb,Missouri,29063,6,0 +2020-05-31,DeKalb,Missouri,29063,6,0 +2020-06-01,DeKalb,Missouri,29063,6,0 +2020-06-02,DeKalb,Missouri,29063,6,0 +2020-06-03,DeKalb,Missouri,29063,6,0 +2020-06-04,DeKalb,Missouri,29063,6,0 +2020-06-05,DeKalb,Missouri,29063,6,0 +2020-06-06,DeKalb,Missouri,29063,7,0 +2020-06-07,DeKalb,Missouri,29063,7,0 +2020-06-08,DeKalb,Missouri,29063,7,0 +2020-06-09,DeKalb,Missouri,29063,6,0 +2020-06-10,DeKalb,Missouri,29063,6,0 +2020-06-11,DeKalb,Missouri,29063,6,0 +2020-06-12,DeKalb,Missouri,29063,7,0 +2020-06-13,DeKalb,Missouri,29063,8,0 +2020-06-14,DeKalb,Missouri,29063,8,0 +2020-06-15,DeKalb,Missouri,29063,9,0 +2020-06-16,DeKalb,Missouri,29063,9,0 +2020-06-17,DeKalb,Missouri,29063,9,0 +2020-06-18,DeKalb,Missouri,29063,9,0 +2020-06-19,DeKalb,Missouri,29063,10,0 +2020-06-20,DeKalb,Missouri,29063,10,0 +2020-06-21,DeKalb,Missouri,29063,10,0 +2020-06-22,DeKalb,Missouri,29063,10,0 +2020-06-23,DeKalb,Missouri,29063,10,0 +2020-06-24,DeKalb,Missouri,29063,10,0 +2020-06-25,DeKalb,Missouri,29063,10,0 +2020-06-26,DeKalb,Missouri,29063,10,0 +2020-06-27,DeKalb,Missouri,29063,11,0 +2020-06-28,DeKalb,Missouri,29063,12,0 +2020-06-29,DeKalb,Missouri,29063,12,0 +2020-06-30,DeKalb,Missouri,29063,12,0 +2020-07-01,DeKalb,Missouri,29063,13,0 +2020-07-02,DeKalb,Missouri,29063,13,0 +2020-07-03,DeKalb,Missouri,29063,14,0 +2020-07-04,DeKalb,Missouri,29063,14,0 +2020-07-05,DeKalb,Missouri,29063,14,0 +2020-07-06,DeKalb,Missouri,29063,14,0 +2020-07-07,DeKalb,Missouri,29063,15,0 +2020-07-08,DeKalb,Missouri,29063,15,0 +2020-07-09,DeKalb,Missouri,29063,15,0 +2020-05-15,Dent,Missouri,29065,1,0 +2020-05-16,Dent,Missouri,29065,1,0 +2020-05-17,Dent,Missouri,29065,1,0 +2020-05-18,Dent,Missouri,29065,1,0 +2020-05-19,Dent,Missouri,29065,1,0 +2020-05-20,Dent,Missouri,29065,1,0 +2020-05-21,Dent,Missouri,29065,1,0 +2020-05-22,Dent,Missouri,29065,1,0 +2020-05-23,Dent,Missouri,29065,1,0 +2020-05-24,Dent,Missouri,29065,1,0 +2020-05-25,Dent,Missouri,29065,1,0 +2020-05-26,Dent,Missouri,29065,1,0 +2020-05-27,Dent,Missouri,29065,1,0 +2020-05-28,Dent,Missouri,29065,1,0 +2020-05-29,Dent,Missouri,29065,1,0 +2020-05-30,Dent,Missouri,29065,1,0 +2020-05-31,Dent,Missouri,29065,1,0 +2020-06-01,Dent,Missouri,29065,1,0 +2020-06-02,Dent,Missouri,29065,1,0 +2020-06-03,Dent,Missouri,29065,1,0 +2020-06-04,Dent,Missouri,29065,1,0 +2020-06-05,Dent,Missouri,29065,1,0 +2020-06-06,Dent,Missouri,29065,1,0 +2020-06-07,Dent,Missouri,29065,1,0 +2020-06-08,Dent,Missouri,29065,1,0 +2020-06-09,Dent,Missouri,29065,1,0 +2020-06-10,Dent,Missouri,29065,1,0 +2020-06-11,Dent,Missouri,29065,1,0 +2020-06-12,Dent,Missouri,29065,1,0 +2020-06-13,Dent,Missouri,29065,1,0 +2020-06-14,Dent,Missouri,29065,1,0 +2020-06-15,Dent,Missouri,29065,1,0 +2020-06-16,Dent,Missouri,29065,1,0 +2020-06-17,Dent,Missouri,29065,1,0 +2020-06-18,Dent,Missouri,29065,1,0 +2020-06-19,Dent,Missouri,29065,1,0 +2020-06-20,Dent,Missouri,29065,1,0 +2020-06-21,Dent,Missouri,29065,1,0 +2020-06-22,Dent,Missouri,29065,1,0 +2020-06-23,Dent,Missouri,29065,2,0 +2020-06-24,Dent,Missouri,29065,2,0 +2020-06-25,Dent,Missouri,29065,3,0 +2020-06-26,Dent,Missouri,29065,3,0 +2020-06-27,Dent,Missouri,29065,3,0 +2020-06-28,Dent,Missouri,29065,5,0 +2020-06-29,Dent,Missouri,29065,5,0 +2020-06-30,Dent,Missouri,29065,5,0 +2020-07-01,Dent,Missouri,29065,5,0 +2020-07-02,Dent,Missouri,29065,5,0 +2020-07-03,Dent,Missouri,29065,5,0 +2020-07-04,Dent,Missouri,29065,5,0 +2020-07-05,Dent,Missouri,29065,5,0 +2020-07-06,Dent,Missouri,29065,5,0 +2020-07-07,Dent,Missouri,29065,5,0 +2020-07-08,Dent,Missouri,29065,5,0 +2020-07-09,Dent,Missouri,29065,5,0 +2020-05-31,Douglas,Missouri,29067,1,0 +2020-06-01,Douglas,Missouri,29067,1,0 +2020-06-02,Douglas,Missouri,29067,2,0 +2020-06-03,Douglas,Missouri,29067,2,0 +2020-06-04,Douglas,Missouri,29067,2,0 +2020-06-05,Douglas,Missouri,29067,2,0 +2020-06-06,Douglas,Missouri,29067,2,0 +2020-06-07,Douglas,Missouri,29067,2,0 +2020-06-08,Douglas,Missouri,29067,3,0 +2020-06-09,Douglas,Missouri,29067,3,0 +2020-06-10,Douglas,Missouri,29067,3,0 +2020-06-11,Douglas,Missouri,29067,3,0 +2020-06-12,Douglas,Missouri,29067,3,0 +2020-06-13,Douglas,Missouri,29067,3,0 +2020-06-14,Douglas,Missouri,29067,3,0 +2020-06-15,Douglas,Missouri,29067,3,0 +2020-06-16,Douglas,Missouri,29067,3,0 +2020-06-17,Douglas,Missouri,29067,3,0 +2020-06-18,Douglas,Missouri,29067,3,0 +2020-06-19,Douglas,Missouri,29067,3,0 +2020-06-20,Douglas,Missouri,29067,3,0 +2020-06-21,Douglas,Missouri,29067,3,0 +2020-06-22,Douglas,Missouri,29067,3,0 +2020-06-23,Douglas,Missouri,29067,3,0 +2020-06-24,Douglas,Missouri,29067,3,0 +2020-06-25,Douglas,Missouri,29067,3,0 +2020-06-26,Douglas,Missouri,29067,3,0 +2020-06-27,Douglas,Missouri,29067,3,0 +2020-06-28,Douglas,Missouri,29067,3,0 +2020-06-29,Douglas,Missouri,29067,4,0 +2020-06-30,Douglas,Missouri,29067,4,0 +2020-07-01,Douglas,Missouri,29067,5,0 +2020-07-02,Douglas,Missouri,29067,6,0 +2020-07-03,Douglas,Missouri,29067,6,0 +2020-07-04,Douglas,Missouri,29067,6,0 +2020-07-05,Douglas,Missouri,29067,6,0 +2020-07-06,Douglas,Missouri,29067,6,0 +2020-07-07,Douglas,Missouri,29067,6,0 +2020-07-08,Douglas,Missouri,29067,6,0 +2020-07-09,Douglas,Missouri,29067,8,0 +2020-03-20,Dunklin,Missouri,29069,1,0 +2020-03-21,Dunklin,Missouri,29069,1,0 +2020-03-22,Dunklin,Missouri,29069,1,0 +2020-03-23,Dunklin,Missouri,29069,1,0 +2020-03-24,Dunklin,Missouri,29069,1,0 +2020-03-25,Dunklin,Missouri,29069,1,0 +2020-03-26,Dunklin,Missouri,29069,2,0 +2020-03-27,Dunklin,Missouri,29069,3,0 +2020-03-28,Dunklin,Missouri,29069,3,0 +2020-03-29,Dunklin,Missouri,29069,3,0 +2020-03-30,Dunklin,Missouri,29069,6,0 +2020-03-31,Dunklin,Missouri,29069,5,0 +2020-04-01,Dunklin,Missouri,29069,5,0 +2020-04-02,Dunklin,Missouri,29069,6,0 +2020-04-03,Dunklin,Missouri,29069,7,0 +2020-04-04,Dunklin,Missouri,29069,7,0 +2020-04-05,Dunklin,Missouri,29069,7,0 +2020-04-06,Dunklin,Missouri,29069,8,0 +2020-04-07,Dunklin,Missouri,29069,8,0 +2020-04-08,Dunklin,Missouri,29069,9,0 +2020-04-09,Dunklin,Missouri,29069,10,0 +2020-04-10,Dunklin,Missouri,29069,12,0 +2020-04-11,Dunklin,Missouri,29069,13,0 +2020-04-12,Dunklin,Missouri,29069,14,0 +2020-04-13,Dunklin,Missouri,29069,16,0 +2020-04-14,Dunklin,Missouri,29069,16,0 +2020-04-15,Dunklin,Missouri,29069,18,1 +2020-04-16,Dunklin,Missouri,29069,18,1 +2020-04-17,Dunklin,Missouri,29069,18,2 +2020-04-18,Dunklin,Missouri,29069,19,2 +2020-04-19,Dunklin,Missouri,29069,19,2 +2020-04-20,Dunklin,Missouri,29069,19,2 +2020-04-21,Dunklin,Missouri,29069,18,2 +2020-04-22,Dunklin,Missouri,29069,19,2 +2020-04-23,Dunklin,Missouri,29069,19,2 +2020-04-24,Dunklin,Missouri,29069,19,2 +2020-04-25,Dunklin,Missouri,29069,19,2 +2020-04-26,Dunklin,Missouri,29069,20,2 +2020-04-27,Dunklin,Missouri,29069,20,2 +2020-04-28,Dunklin,Missouri,29069,20,2 +2020-04-29,Dunklin,Missouri,29069,20,2 +2020-04-30,Dunklin,Missouri,29069,20,2 +2020-05-01,Dunklin,Missouri,29069,21,2 +2020-05-02,Dunklin,Missouri,29069,22,2 +2020-05-03,Dunklin,Missouri,29069,23,2 +2020-05-04,Dunklin,Missouri,29069,23,2 +2020-05-05,Dunklin,Missouri,29069,24,2 +2020-05-06,Dunklin,Missouri,29069,23,2 +2020-05-07,Dunklin,Missouri,29069,23,2 +2020-05-08,Dunklin,Missouri,29069,24,2 +2020-05-09,Dunklin,Missouri,29069,24,2 +2020-05-10,Dunklin,Missouri,29069,24,2 +2020-05-11,Dunklin,Missouri,29069,24,2 +2020-05-12,Dunklin,Missouri,29069,24,2 +2020-05-13,Dunklin,Missouri,29069,24,2 +2020-05-14,Dunklin,Missouri,29069,24,2 +2020-05-15,Dunklin,Missouri,29069,24,2 +2020-05-16,Dunklin,Missouri,29069,25,2 +2020-05-17,Dunklin,Missouri,29069,25,2 +2020-05-18,Dunklin,Missouri,29069,26,2 +2020-05-19,Dunklin,Missouri,29069,26,2 +2020-05-20,Dunklin,Missouri,29069,26,2 +2020-05-21,Dunklin,Missouri,29069,25,2 +2020-05-22,Dunklin,Missouri,29069,25,2 +2020-05-23,Dunklin,Missouri,29069,28,2 +2020-05-24,Dunklin,Missouri,29069,28,2 +2020-05-25,Dunklin,Missouri,29069,30,2 +2020-05-26,Dunklin,Missouri,29069,30,2 +2020-05-27,Dunklin,Missouri,29069,31,2 +2020-05-28,Dunklin,Missouri,29069,32,2 +2020-05-29,Dunklin,Missouri,29069,33,2 +2020-05-30,Dunklin,Missouri,29069,38,2 +2020-05-31,Dunklin,Missouri,29069,38,2 +2020-06-01,Dunklin,Missouri,29069,45,2 +2020-06-02,Dunklin,Missouri,29069,45,2 +2020-06-03,Dunklin,Missouri,29069,44,2 +2020-06-04,Dunklin,Missouri,29069,44,2 +2020-06-05,Dunklin,Missouri,29069,48,2 +2020-06-06,Dunklin,Missouri,29069,48,2 +2020-06-07,Dunklin,Missouri,29069,49,2 +2020-06-08,Dunklin,Missouri,29069,49,2 +2020-06-09,Dunklin,Missouri,29069,48,2 +2020-06-10,Dunklin,Missouri,29069,51,3 +2020-06-11,Dunklin,Missouri,29069,54,3 +2020-06-12,Dunklin,Missouri,29069,54,3 +2020-06-13,Dunklin,Missouri,29069,55,3 +2020-06-14,Dunklin,Missouri,29069,55,3 +2020-06-15,Dunklin,Missouri,29069,61,3 +2020-06-16,Dunklin,Missouri,29069,64,3 +2020-06-17,Dunklin,Missouri,29069,64,3 +2020-06-18,Dunklin,Missouri,29069,65,3 +2020-06-19,Dunklin,Missouri,29069,66,3 +2020-06-20,Dunklin,Missouri,29069,79,3 +2020-06-21,Dunklin,Missouri,29069,79,3 +2020-06-22,Dunklin,Missouri,29069,79,3 +2020-06-23,Dunklin,Missouri,29069,81,3 +2020-06-24,Dunklin,Missouri,29069,82,3 +2020-06-25,Dunklin,Missouri,29069,84,3 +2020-06-26,Dunklin,Missouri,29069,92,3 +2020-06-27,Dunklin,Missouri,29069,92,3 +2020-06-28,Dunklin,Missouri,29069,93,3 +2020-06-29,Dunklin,Missouri,29069,93,3 +2020-06-30,Dunklin,Missouri,29069,98,3 +2020-07-01,Dunklin,Missouri,29069,104,3 +2020-07-02,Dunklin,Missouri,29069,106,3 +2020-07-03,Dunklin,Missouri,29069,108,3 +2020-07-04,Dunklin,Missouri,29069,109,3 +2020-07-05,Dunklin,Missouri,29069,110,3 +2020-07-06,Dunklin,Missouri,29069,110,3 +2020-07-07,Dunklin,Missouri,29069,116,3 +2020-07-08,Dunklin,Missouri,29069,115,3 +2020-07-09,Dunklin,Missouri,29069,119,3 +2020-03-24,Franklin,Missouri,29071,1,0 +2020-03-25,Franklin,Missouri,29071,3,0 +2020-03-26,Franklin,Missouri,29071,4,0 +2020-03-27,Franklin,Missouri,29071,4,0 +2020-03-28,Franklin,Missouri,29071,6,0 +2020-03-29,Franklin,Missouri,29071,7,0 +2020-03-30,Franklin,Missouri,29071,7,0 +2020-03-31,Franklin,Missouri,29071,13,0 +2020-04-01,Franklin,Missouri,29071,16,0 +2020-04-02,Franklin,Missouri,29071,19,0 +2020-04-03,Franklin,Missouri,29071,23,0 +2020-04-04,Franklin,Missouri,29071,24,0 +2020-04-05,Franklin,Missouri,29071,25,2 +2020-04-06,Franklin,Missouri,29071,33,2 +2020-04-07,Franklin,Missouri,29071,35,3 +2020-04-08,Franklin,Missouri,29071,56,3 +2020-04-09,Franklin,Missouri,29071,62,3 +2020-04-10,Franklin,Missouri,29071,68,3 +2020-04-11,Franklin,Missouri,29071,75,3 +2020-04-12,Franklin,Missouri,29071,81,3 +2020-04-13,Franklin,Missouri,29071,84,3 +2020-04-14,Franklin,Missouri,29071,84,3 +2020-04-15,Franklin,Missouri,29071,83,3 +2020-04-16,Franklin,Missouri,29071,89,3 +2020-04-17,Franklin,Missouri,29071,91,5 +2020-04-18,Franklin,Missouri,29071,95,5 +2020-04-19,Franklin,Missouri,29071,98,5 +2020-04-20,Franklin,Missouri,29071,99,5 +2020-04-21,Franklin,Missouri,29071,102,5 +2020-04-22,Franklin,Missouri,29071,102,5 +2020-04-23,Franklin,Missouri,29071,103,5 +2020-04-24,Franklin,Missouri,29071,106,5 +2020-04-25,Franklin,Missouri,29071,106,6 +2020-04-26,Franklin,Missouri,29071,106,6 +2020-04-27,Franklin,Missouri,29071,106,6 +2020-04-28,Franklin,Missouri,29071,110,6 +2020-04-29,Franklin,Missouri,29071,110,6 +2020-04-30,Franklin,Missouri,29071,114,8 +2020-05-01,Franklin,Missouri,29071,114,10 +2020-05-02,Franklin,Missouri,29071,119,12 +2020-05-03,Franklin,Missouri,29071,122,12 +2020-05-04,Franklin,Missouri,29071,125,13 +2020-05-05,Franklin,Missouri,29071,127,13 +2020-05-06,Franklin,Missouri,29071,132,13 +2020-05-07,Franklin,Missouri,29071,137,13 +2020-05-08,Franklin,Missouri,29071,129,13 +2020-05-09,Franklin,Missouri,29071,128,13 +2020-05-10,Franklin,Missouri,29071,128,13 +2020-05-11,Franklin,Missouri,29071,130,13 +2020-05-12,Franklin,Missouri,29071,131,14 +2020-05-13,Franklin,Missouri,29071,133,14 +2020-05-14,Franklin,Missouri,29071,134,14 +2020-05-15,Franklin,Missouri,29071,134,14 +2020-05-16,Franklin,Missouri,29071,134,14 +2020-05-17,Franklin,Missouri,29071,134,14 +2020-05-18,Franklin,Missouri,29071,135,14 +2020-05-19,Franklin,Missouri,29071,135,14 +2020-05-20,Franklin,Missouri,29071,136,15 +2020-05-21,Franklin,Missouri,29071,137,15 +2020-05-22,Franklin,Missouri,29071,137,16 +2020-05-23,Franklin,Missouri,29071,137,16 +2020-05-24,Franklin,Missouri,29071,138,16 +2020-05-25,Franklin,Missouri,29071,140,16 +2020-05-26,Franklin,Missouri,29071,139,16 +2020-05-27,Franklin,Missouri,29071,140,16 +2020-05-28,Franklin,Missouri,29071,140,16 +2020-05-29,Franklin,Missouri,29071,139,16 +2020-05-30,Franklin,Missouri,29071,139,16 +2020-05-31,Franklin,Missouri,29071,139,16 +2020-06-01,Franklin,Missouri,29071,141,16 +2020-06-02,Franklin,Missouri,29071,142,17 +2020-06-03,Franklin,Missouri,29071,143,17 +2020-06-04,Franklin,Missouri,29071,149,17 +2020-06-05,Franklin,Missouri,29071,149,17 +2020-06-06,Franklin,Missouri,29071,150,17 +2020-06-07,Franklin,Missouri,29071,150,17 +2020-06-08,Franklin,Missouri,29071,153,18 +2020-06-09,Franklin,Missouri,29071,156,18 +2020-06-10,Franklin,Missouri,29071,155,18 +2020-06-11,Franklin,Missouri,29071,164,18 +2020-06-12,Franklin,Missouri,29071,166,18 +2020-06-13,Franklin,Missouri,29071,166,18 +2020-06-14,Franklin,Missouri,29071,166,18 +2020-06-15,Franklin,Missouri,29071,168,18 +2020-06-16,Franklin,Missouri,29071,172,18 +2020-06-17,Franklin,Missouri,29071,173,18 +2020-06-18,Franklin,Missouri,29071,178,18 +2020-06-19,Franklin,Missouri,29071,180,18 +2020-06-20,Franklin,Missouri,29071,188,18 +2020-06-21,Franklin,Missouri,29071,188,18 +2020-06-22,Franklin,Missouri,29071,191,18 +2020-06-23,Franklin,Missouri,29071,193,18 +2020-06-24,Franklin,Missouri,29071,192,18 +2020-06-25,Franklin,Missouri,29071,201,18 +2020-06-26,Franklin,Missouri,29071,202,18 +2020-06-27,Franklin,Missouri,29071,204,18 +2020-06-28,Franklin,Missouri,29071,206,18 +2020-06-29,Franklin,Missouri,29071,207,18 +2020-06-30,Franklin,Missouri,29071,206,18 +2020-07-01,Franklin,Missouri,29071,208,18 +2020-07-02,Franklin,Missouri,29071,213,18 +2020-07-03,Franklin,Missouri,29071,217,18 +2020-07-04,Franklin,Missouri,29071,217,18 +2020-07-05,Franklin,Missouri,29071,217,18 +2020-07-06,Franklin,Missouri,29071,227,18 +2020-07-07,Franklin,Missouri,29071,231,18 +2020-07-08,Franklin,Missouri,29071,235,18 +2020-07-09,Franklin,Missouri,29071,248,18 +2020-04-01,Gasconade,Missouri,29073,1,0 +2020-04-02,Gasconade,Missouri,29073,1,0 +2020-04-03,Gasconade,Missouri,29073,1,0 +2020-04-04,Gasconade,Missouri,29073,2,0 +2020-04-05,Gasconade,Missouri,29073,2,0 +2020-04-06,Gasconade,Missouri,29073,2,0 +2020-04-07,Gasconade,Missouri,29073,2,0 +2020-04-08,Gasconade,Missouri,29073,2,0 +2020-04-09,Gasconade,Missouri,29073,2,0 +2020-04-10,Gasconade,Missouri,29073,2,0 +2020-04-11,Gasconade,Missouri,29073,2,0 +2020-04-12,Gasconade,Missouri,29073,2,0 +2020-04-13,Gasconade,Missouri,29073,2,0 +2020-04-14,Gasconade,Missouri,29073,2,0 +2020-04-15,Gasconade,Missouri,29073,2,0 +2020-04-16,Gasconade,Missouri,29073,2,0 +2020-04-17,Gasconade,Missouri,29073,2,0 +2020-04-18,Gasconade,Missouri,29073,2,0 +2020-04-19,Gasconade,Missouri,29073,2,0 +2020-04-20,Gasconade,Missouri,29073,2,0 +2020-04-21,Gasconade,Missouri,29073,2,0 +2020-04-22,Gasconade,Missouri,29073,2,0 +2020-04-23,Gasconade,Missouri,29073,2,0 +2020-04-24,Gasconade,Missouri,29073,2,0 +2020-04-25,Gasconade,Missouri,29073,2,0 +2020-04-26,Gasconade,Missouri,29073,2,0 +2020-04-27,Gasconade,Missouri,29073,2,0 +2020-04-28,Gasconade,Missouri,29073,2,0 +2020-04-29,Gasconade,Missouri,29073,2,0 +2020-04-30,Gasconade,Missouri,29073,2,0 +2020-05-01,Gasconade,Missouri,29073,3,0 +2020-05-02,Gasconade,Missouri,29073,2,0 +2020-05-03,Gasconade,Missouri,29073,2,0 +2020-05-04,Gasconade,Missouri,29073,2,0 +2020-05-05,Gasconade,Missouri,29073,2,0 +2020-05-06,Gasconade,Missouri,29073,2,0 +2020-05-07,Gasconade,Missouri,29073,2,0 +2020-05-08,Gasconade,Missouri,29073,2,0 +2020-05-09,Gasconade,Missouri,29073,2,0 +2020-05-10,Gasconade,Missouri,29073,2,0 +2020-05-11,Gasconade,Missouri,29073,2,0 +2020-05-12,Gasconade,Missouri,29073,2,0 +2020-05-13,Gasconade,Missouri,29073,2,0 +2020-05-14,Gasconade,Missouri,29073,2,0 +2020-05-15,Gasconade,Missouri,29073,2,0 +2020-05-16,Gasconade,Missouri,29073,2,0 +2020-05-17,Gasconade,Missouri,29073,2,0 +2020-05-18,Gasconade,Missouri,29073,2,0 +2020-05-19,Gasconade,Missouri,29073,2,0 +2020-05-20,Gasconade,Missouri,29073,2,0 +2020-05-21,Gasconade,Missouri,29073,2,0 +2020-05-22,Gasconade,Missouri,29073,2,0 +2020-05-23,Gasconade,Missouri,29073,2,0 +2020-05-24,Gasconade,Missouri,29073,2,0 +2020-05-25,Gasconade,Missouri,29073,2,0 +2020-05-26,Gasconade,Missouri,29073,2,0 +2020-05-27,Gasconade,Missouri,29073,2,0 +2020-05-28,Gasconade,Missouri,29073,2,0 +2020-05-29,Gasconade,Missouri,29073,2,0 +2020-05-30,Gasconade,Missouri,29073,2,0 +2020-05-31,Gasconade,Missouri,29073,2,0 +2020-06-01,Gasconade,Missouri,29073,2,0 +2020-06-02,Gasconade,Missouri,29073,2,0 +2020-06-03,Gasconade,Missouri,29073,2,0 +2020-06-04,Gasconade,Missouri,29073,2,0 +2020-06-05,Gasconade,Missouri,29073,2,0 +2020-06-06,Gasconade,Missouri,29073,2,0 +2020-06-07,Gasconade,Missouri,29073,2,0 +2020-06-08,Gasconade,Missouri,29073,2,0 +2020-06-09,Gasconade,Missouri,29073,2,0 +2020-06-10,Gasconade,Missouri,29073,2,0 +2020-06-11,Gasconade,Missouri,29073,2,0 +2020-06-12,Gasconade,Missouri,29073,2,0 +2020-06-13,Gasconade,Missouri,29073,2,0 +2020-06-14,Gasconade,Missouri,29073,2,0 +2020-06-15,Gasconade,Missouri,29073,2,0 +2020-06-16,Gasconade,Missouri,29073,2,0 +2020-06-17,Gasconade,Missouri,29073,2,0 +2020-06-18,Gasconade,Missouri,29073,2,0 +2020-06-19,Gasconade,Missouri,29073,3,0 +2020-06-20,Gasconade,Missouri,29073,4,0 +2020-06-21,Gasconade,Missouri,29073,4,0 +2020-06-22,Gasconade,Missouri,29073,4,0 +2020-06-23,Gasconade,Missouri,29073,5,0 +2020-06-24,Gasconade,Missouri,29073,6,0 +2020-06-25,Gasconade,Missouri,29073,7,0 +2020-06-26,Gasconade,Missouri,29073,9,0 +2020-06-27,Gasconade,Missouri,29073,11,0 +2020-06-28,Gasconade,Missouri,29073,11,0 +2020-06-29,Gasconade,Missouri,29073,12,0 +2020-06-30,Gasconade,Missouri,29073,13,0 +2020-07-01,Gasconade,Missouri,29073,13,0 +2020-07-02,Gasconade,Missouri,29073,12,0 +2020-07-03,Gasconade,Missouri,29073,12,0 +2020-07-04,Gasconade,Missouri,29073,12,0 +2020-07-05,Gasconade,Missouri,29073,12,0 +2020-07-06,Gasconade,Missouri,29073,12,0 +2020-07-07,Gasconade,Missouri,29073,12,0 +2020-07-08,Gasconade,Missouri,29073,13,0 +2020-07-09,Gasconade,Missouri,29073,13,0 +2020-04-06,Gentry,Missouri,29075,1,0 +2020-04-07,Gentry,Missouri,29075,1,0 +2020-04-08,Gentry,Missouri,29075,1,0 +2020-04-09,Gentry,Missouri,29075,1,0 +2020-04-10,Gentry,Missouri,29075,1,0 +2020-04-11,Gentry,Missouri,29075,1,0 +2020-04-12,Gentry,Missouri,29075,1,0 +2020-04-13,Gentry,Missouri,29075,1,0 +2020-04-14,Gentry,Missouri,29075,1,0 +2020-04-15,Gentry,Missouri,29075,1,0 +2020-04-16,Gentry,Missouri,29075,1,0 +2020-04-17,Gentry,Missouri,29075,1,0 +2020-04-18,Gentry,Missouri,29075,1,0 +2020-04-19,Gentry,Missouri,29075,1,0 +2020-04-20,Gentry,Missouri,29075,1,0 +2020-04-21,Gentry,Missouri,29075,1,0 +2020-04-22,Gentry,Missouri,29075,1,0 +2020-04-23,Gentry,Missouri,29075,1,0 +2020-04-24,Gentry,Missouri,29075,1,0 +2020-04-25,Gentry,Missouri,29075,1,0 +2020-04-26,Gentry,Missouri,29075,1,0 +2020-04-27,Gentry,Missouri,29075,1,0 +2020-04-28,Gentry,Missouri,29075,1,0 +2020-04-29,Gentry,Missouri,29075,1,0 +2020-04-30,Gentry,Missouri,29075,1,0 +2020-05-01,Gentry,Missouri,29075,1,0 +2020-05-02,Gentry,Missouri,29075,1,0 +2020-05-03,Gentry,Missouri,29075,1,0 +2020-05-04,Gentry,Missouri,29075,1,0 +2020-05-05,Gentry,Missouri,29075,1,0 +2020-05-06,Gentry,Missouri,29075,1,0 +2020-05-07,Gentry,Missouri,29075,1,0 +2020-05-08,Gentry,Missouri,29075,1,0 +2020-05-09,Gentry,Missouri,29075,1,0 +2020-05-10,Gentry,Missouri,29075,1,0 +2020-05-11,Gentry,Missouri,29075,1,0 +2020-05-12,Gentry,Missouri,29075,1,0 +2020-05-13,Gentry,Missouri,29075,1,0 +2020-05-14,Gentry,Missouri,29075,2,0 +2020-05-15,Gentry,Missouri,29075,2,0 +2020-05-16,Gentry,Missouri,29075,2,0 +2020-05-17,Gentry,Missouri,29075,3,0 +2020-05-18,Gentry,Missouri,29075,3,0 +2020-05-19,Gentry,Missouri,29075,3,0 +2020-05-20,Gentry,Missouri,29075,4,0 +2020-05-21,Gentry,Missouri,29075,4,0 +2020-05-22,Gentry,Missouri,29075,6,0 +2020-05-23,Gentry,Missouri,29075,6,0 +2020-05-24,Gentry,Missouri,29075,17,0 +2020-05-25,Gentry,Missouri,29075,17,0 +2020-05-26,Gentry,Missouri,29075,19,0 +2020-05-27,Gentry,Missouri,29075,21,0 +2020-05-28,Gentry,Missouri,29075,25,0 +2020-05-29,Gentry,Missouri,29075,26,1 +2020-05-30,Gentry,Missouri,29075,26,1 +2020-05-31,Gentry,Missouri,29075,31,1 +2020-06-01,Gentry,Missouri,29075,35,1 +2020-06-02,Gentry,Missouri,29075,41,2 +2020-06-03,Gentry,Missouri,29075,41,4 +2020-06-04,Gentry,Missouri,29075,43,4 +2020-06-05,Gentry,Missouri,29075,46,4 +2020-06-06,Gentry,Missouri,29075,52,4 +2020-06-07,Gentry,Missouri,29075,52,4 +2020-06-08,Gentry,Missouri,29075,54,4 +2020-06-09,Gentry,Missouri,29075,54,4 +2020-06-10,Gentry,Missouri,29075,54,4 +2020-06-11,Gentry,Missouri,29075,54,4 +2020-06-12,Gentry,Missouri,29075,54,6 +2020-06-13,Gentry,Missouri,29075,54,6 +2020-06-14,Gentry,Missouri,29075,54,6 +2020-06-15,Gentry,Missouri,29075,54,8 +2020-06-16,Gentry,Missouri,29075,54,8 +2020-06-17,Gentry,Missouri,29075,54,8 +2020-06-18,Gentry,Missouri,29075,54,9 +2020-06-19,Gentry,Missouri,29075,54,9 +2020-06-20,Gentry,Missouri,29075,54,9 +2020-06-21,Gentry,Missouri,29075,55,9 +2020-06-22,Gentry,Missouri,29075,55,9 +2020-06-23,Gentry,Missouri,29075,56,9 +2020-06-24,Gentry,Missouri,29075,57,9 +2020-06-25,Gentry,Missouri,29075,56,9 +2020-06-26,Gentry,Missouri,29075,57,9 +2020-06-27,Gentry,Missouri,29075,57,9 +2020-06-28,Gentry,Missouri,29075,57,9 +2020-06-29,Gentry,Missouri,29075,57,9 +2020-06-30,Gentry,Missouri,29075,58,9 +2020-07-01,Gentry,Missouri,29075,58,9 +2020-07-02,Gentry,Missouri,29075,58,9 +2020-07-03,Gentry,Missouri,29075,58,9 +2020-07-04,Gentry,Missouri,29075,58,9 +2020-07-05,Gentry,Missouri,29075,58,9 +2020-07-06,Gentry,Missouri,29075,60,9 +2020-07-07,Gentry,Missouri,29075,63,9 +2020-07-08,Gentry,Missouri,29075,63,9 +2020-07-09,Gentry,Missouri,29075,66,9 +2020-03-12,Greene,Missouri,29077,1,0 +2020-03-13,Greene,Missouri,29077,1,0 +2020-03-14,Greene,Missouri,29077,2,0 +2020-03-15,Greene,Missouri,29077,2,0 +2020-03-16,Greene,Missouri,29077,3,0 +2020-03-17,Greene,Missouri,29077,4,0 +2020-03-18,Greene,Missouri,29077,4,0 +2020-03-19,Greene,Missouri,29077,6,0 +2020-03-20,Greene,Missouri,29077,8,0 +2020-03-21,Greene,Missouri,29077,10,0 +2020-03-22,Greene,Missouri,29077,10,0 +2020-03-23,Greene,Missouri,29077,17,0 +2020-03-24,Greene,Missouri,29077,19,1 +2020-03-25,Greene,Missouri,29077,23,3 +2020-03-26,Greene,Missouri,29077,25,3 +2020-03-27,Greene,Missouri,29077,31,3 +2020-03-28,Greene,Missouri,29077,41,3 +2020-03-29,Greene,Missouri,29077,41,3 +2020-03-30,Greene,Missouri,29077,38,3 +2020-03-31,Greene,Missouri,29077,49,3 +2020-04-01,Greene,Missouri,29077,51,6 +2020-04-02,Greene,Missouri,29077,54,6 +2020-04-03,Greene,Missouri,29077,60,7 +2020-04-04,Greene,Missouri,29077,62,7 +2020-04-05,Greene,Missouri,29077,61,7 +2020-04-06,Greene,Missouri,29077,66,7 +2020-04-07,Greene,Missouri,29077,67,7 +2020-04-08,Greene,Missouri,29077,71,7 +2020-04-09,Greene,Missouri,29077,72,8 +2020-04-10,Greene,Missouri,29077,71,8 +2020-04-11,Greene,Missouri,29077,71,8 +2020-04-12,Greene,Missouri,29077,71,8 +2020-04-13,Greene,Missouri,29077,71,8 +2020-04-14,Greene,Missouri,29077,73,8 +2020-04-15,Greene,Missouri,29077,78,8 +2020-04-16,Greene,Missouri,29077,81,8 +2020-04-17,Greene,Missouri,29077,83,8 +2020-04-18,Greene,Missouri,29077,84,8 +2020-04-19,Greene,Missouri,29077,84,8 +2020-04-20,Greene,Missouri,29077,85,8 +2020-04-21,Greene,Missouri,29077,84,8 +2020-04-22,Greene,Missouri,29077,83,8 +2020-04-23,Greene,Missouri,29077,82,8 +2020-04-24,Greene,Missouri,29077,84,8 +2020-04-25,Greene,Missouri,29077,83,8 +2020-04-26,Greene,Missouri,29077,83,8 +2020-04-27,Greene,Missouri,29077,83,8 +2020-04-28,Greene,Missouri,29077,82,8 +2020-04-29,Greene,Missouri,29077,83,8 +2020-04-30,Greene,Missouri,29077,85,8 +2020-05-01,Greene,Missouri,29077,86,8 +2020-05-02,Greene,Missouri,29077,89,8 +2020-05-03,Greene,Missouri,29077,90,8 +2020-05-04,Greene,Missouri,29077,91,8 +2020-05-05,Greene,Missouri,29077,91,8 +2020-05-06,Greene,Missouri,29077,90,8 +2020-05-07,Greene,Missouri,29077,91,8 +2020-05-08,Greene,Missouri,29077,93,8 +2020-05-09,Greene,Missouri,29077,94,8 +2020-05-10,Greene,Missouri,29077,93,8 +2020-05-11,Greene,Missouri,29077,103,8 +2020-05-12,Greene,Missouri,29077,103,8 +2020-05-13,Greene,Missouri,29077,104,8 +2020-05-14,Greene,Missouri,29077,105,8 +2020-05-15,Greene,Missouri,29077,105,8 +2020-05-16,Greene,Missouri,29077,105,8 +2020-05-17,Greene,Missouri,29077,105,8 +2020-05-18,Greene,Missouri,29077,111,8 +2020-05-19,Greene,Missouri,29077,111,8 +2020-05-20,Greene,Missouri,29077,111,8 +2020-05-21,Greene,Missouri,29077,111,8 +2020-05-22,Greene,Missouri,29077,112,8 +2020-05-23,Greene,Missouri,29077,113,8 +2020-05-24,Greene,Missouri,29077,116,8 +2020-05-25,Greene,Missouri,29077,119,8 +2020-05-26,Greene,Missouri,29077,120,8 +2020-05-27,Greene,Missouri,29077,120,8 +2020-05-28,Greene,Missouri,29077,124,8 +2020-05-29,Greene,Missouri,29077,136,8 +2020-05-30,Greene,Missouri,29077,148,8 +2020-05-31,Greene,Missouri,29077,151,8 +2020-06-01,Greene,Missouri,29077,175,8 +2020-06-02,Greene,Missouri,29077,181,8 +2020-06-03,Greene,Missouri,29077,186,8 +2020-06-04,Greene,Missouri,29077,188,8 +2020-06-05,Greene,Missouri,29077,191,8 +2020-06-06,Greene,Missouri,29077,194,8 +2020-06-07,Greene,Missouri,29077,194,8 +2020-06-08,Greene,Missouri,29077,197,8 +2020-06-09,Greene,Missouri,29077,201,8 +2020-06-10,Greene,Missouri,29077,203,8 +2020-06-11,Greene,Missouri,29077,212,8 +2020-06-12,Greene,Missouri,29077,216,10 +2020-06-13,Greene,Missouri,29077,218,9 +2020-06-14,Greene,Missouri,29077,220,9 +2020-06-15,Greene,Missouri,29077,226,9 +2020-06-16,Greene,Missouri,29077,232,9 +2020-06-17,Greene,Missouri,29077,236,9 +2020-06-18,Greene,Missouri,29077,240,8 +2020-06-19,Greene,Missouri,29077,243,8 +2020-06-20,Greene,Missouri,29077,250,8 +2020-06-21,Greene,Missouri,29077,253,8 +2020-06-22,Greene,Missouri,29077,261,8 +2020-06-23,Greene,Missouri,29077,267,8 +2020-06-24,Greene,Missouri,29077,278,8 +2020-06-25,Greene,Missouri,29077,285,8 +2020-06-26,Greene,Missouri,29077,292,8 +2020-06-27,Greene,Missouri,29077,297,8 +2020-06-28,Greene,Missouri,29077,301,8 +2020-06-29,Greene,Missouri,29077,311,8 +2020-06-30,Greene,Missouri,29077,319,8 +2020-07-01,Greene,Missouri,29077,329,8 +2020-07-02,Greene,Missouri,29077,343,8 +2020-07-03,Greene,Missouri,29077,346,8 +2020-07-04,Greene,Missouri,29077,354,8 +2020-07-05,Greene,Missouri,29077,360,8 +2020-07-06,Greene,Missouri,29077,394,8 +2020-07-07,Greene,Missouri,29077,408,8 +2020-07-08,Greene,Missouri,29077,429,9 +2020-07-09,Greene,Missouri,29077,463,9 +2020-05-23,Grundy,Missouri,29079,2,0 +2020-05-24,Grundy,Missouri,29079,2,0 +2020-05-25,Grundy,Missouri,29079,2,0 +2020-05-26,Grundy,Missouri,29079,2,0 +2020-05-27,Grundy,Missouri,29079,2,0 +2020-05-28,Grundy,Missouri,29079,2,0 +2020-05-29,Grundy,Missouri,29079,2,0 +2020-05-30,Grundy,Missouri,29079,2,0 +2020-05-31,Grundy,Missouri,29079,3,0 +2020-06-01,Grundy,Missouri,29079,3,0 +2020-06-02,Grundy,Missouri,29079,3,0 +2020-06-03,Grundy,Missouri,29079,4,0 +2020-06-04,Grundy,Missouri,29079,3,0 +2020-06-05,Grundy,Missouri,29079,3,0 +2020-06-06,Grundy,Missouri,29079,4,0 +2020-06-07,Grundy,Missouri,29079,5,0 +2020-06-08,Grundy,Missouri,29079,4,0 +2020-06-09,Grundy,Missouri,29079,4,0 +2020-06-10,Grundy,Missouri,29079,7,0 +2020-06-11,Grundy,Missouri,29079,8,0 +2020-06-12,Grundy,Missouri,29079,8,0 +2020-06-13,Grundy,Missouri,29079,12,0 +2020-06-14,Grundy,Missouri,29079,12,0 +2020-06-15,Grundy,Missouri,29079,12,0 +2020-06-16,Grundy,Missouri,29079,11,0 +2020-06-17,Grundy,Missouri,29079,11,0 +2020-06-18,Grundy,Missouri,29079,12,0 +2020-06-19,Grundy,Missouri,29079,16,0 +2020-06-20,Grundy,Missouri,29079,17,0 +2020-06-21,Grundy,Missouri,29079,17,0 +2020-06-22,Grundy,Missouri,29079,17,0 +2020-06-23,Grundy,Missouri,29079,17,0 +2020-06-24,Grundy,Missouri,29079,18,0 +2020-06-25,Grundy,Missouri,29079,18,0 +2020-06-26,Grundy,Missouri,29079,18,0 +2020-06-27,Grundy,Missouri,29079,18,0 +2020-06-28,Grundy,Missouri,29079,19,0 +2020-06-29,Grundy,Missouri,29079,19,0 +2020-06-30,Grundy,Missouri,29079,19,0 +2020-07-01,Grundy,Missouri,29079,19,0 +2020-07-02,Grundy,Missouri,29079,20,0 +2020-07-03,Grundy,Missouri,29079,20,0 +2020-07-04,Grundy,Missouri,29079,20,0 +2020-07-05,Grundy,Missouri,29079,20,0 +2020-07-06,Grundy,Missouri,29079,20,0 +2020-07-07,Grundy,Missouri,29079,20,1 +2020-07-08,Grundy,Missouri,29079,20,1 +2020-07-09,Grundy,Missouri,29079,20,1 +2020-03-31,Harrison,Missouri,29081,1,0 +2020-04-01,Harrison,Missouri,29081,1,0 +2020-04-02,Harrison,Missouri,29081,2,0 +2020-04-03,Harrison,Missouri,29081,2,0 +2020-04-04,Harrison,Missouri,29081,2,0 +2020-04-05,Harrison,Missouri,29081,2,0 +2020-04-06,Harrison,Missouri,29081,3,0 +2020-04-07,Harrison,Missouri,29081,4,0 +2020-04-08,Harrison,Missouri,29081,4,0 +2020-04-09,Harrison,Missouri,29081,4,0 +2020-04-10,Harrison,Missouri,29081,6,0 +2020-04-11,Harrison,Missouri,29081,6,0 +2020-04-12,Harrison,Missouri,29081,6,0 +2020-04-13,Harrison,Missouri,29081,6,0 +2020-04-14,Harrison,Missouri,29081,6,0 +2020-04-15,Harrison,Missouri,29081,6,0 +2020-04-16,Harrison,Missouri,29081,6,0 +2020-04-17,Harrison,Missouri,29081,6,0 +2020-04-18,Harrison,Missouri,29081,6,0 +2020-04-19,Harrison,Missouri,29081,6,0 +2020-04-20,Harrison,Missouri,29081,6,0 +2020-04-21,Harrison,Missouri,29081,6,0 +2020-04-22,Harrison,Missouri,29081,6,0 +2020-04-23,Harrison,Missouri,29081,6,0 +2020-04-24,Harrison,Missouri,29081,6,0 +2020-04-25,Harrison,Missouri,29081,6,0 +2020-04-26,Harrison,Missouri,29081,6,0 +2020-04-27,Harrison,Missouri,29081,6,0 +2020-04-28,Harrison,Missouri,29081,6,0 +2020-04-29,Harrison,Missouri,29081,6,0 +2020-04-30,Harrison,Missouri,29081,6,0 +2020-05-01,Harrison,Missouri,29081,6,0 +2020-05-02,Harrison,Missouri,29081,6,0 +2020-05-03,Harrison,Missouri,29081,6,0 +2020-05-04,Harrison,Missouri,29081,6,0 +2020-05-05,Harrison,Missouri,29081,6,0 +2020-05-06,Harrison,Missouri,29081,6,0 +2020-05-07,Harrison,Missouri,29081,6,0 +2020-05-08,Harrison,Missouri,29081,6,0 +2020-05-09,Harrison,Missouri,29081,6,0 +2020-05-10,Harrison,Missouri,29081,6,0 +2020-05-11,Harrison,Missouri,29081,6,0 +2020-05-12,Harrison,Missouri,29081,6,0 +2020-05-13,Harrison,Missouri,29081,7,0 +2020-05-14,Harrison,Missouri,29081,7,0 +2020-05-15,Harrison,Missouri,29081,7,0 +2020-05-16,Harrison,Missouri,29081,7,0 +2020-05-17,Harrison,Missouri,29081,7,0 +2020-05-18,Harrison,Missouri,29081,7,0 +2020-05-19,Harrison,Missouri,29081,8,0 +2020-05-20,Harrison,Missouri,29081,8,0 +2020-05-21,Harrison,Missouri,29081,7,0 +2020-05-22,Harrison,Missouri,29081,8,0 +2020-05-23,Harrison,Missouri,29081,8,0 +2020-05-24,Harrison,Missouri,29081,8,0 +2020-05-25,Harrison,Missouri,29081,8,0 +2020-05-26,Harrison,Missouri,29081,9,0 +2020-05-27,Harrison,Missouri,29081,8,0 +2020-05-28,Harrison,Missouri,29081,9,0 +2020-05-29,Harrison,Missouri,29081,9,0 +2020-05-30,Harrison,Missouri,29081,9,0 +2020-05-31,Harrison,Missouri,29081,9,0 +2020-06-01,Harrison,Missouri,29081,9,0 +2020-06-02,Harrison,Missouri,29081,9,0 +2020-06-03,Harrison,Missouri,29081,9,0 +2020-06-04,Harrison,Missouri,29081,9,0 +2020-06-05,Harrison,Missouri,29081,9,0 +2020-06-06,Harrison,Missouri,29081,9,0 +2020-06-07,Harrison,Missouri,29081,9,0 +2020-06-08,Harrison,Missouri,29081,9,0 +2020-06-09,Harrison,Missouri,29081,9,0 +2020-06-10,Harrison,Missouri,29081,9,0 +2020-06-11,Harrison,Missouri,29081,9,0 +2020-06-12,Harrison,Missouri,29081,9,0 +2020-06-13,Harrison,Missouri,29081,9,0 +2020-06-14,Harrison,Missouri,29081,9,0 +2020-06-15,Harrison,Missouri,29081,9,0 +2020-06-16,Harrison,Missouri,29081,9,0 +2020-06-17,Harrison,Missouri,29081,9,0 +2020-06-18,Harrison,Missouri,29081,9,0 +2020-06-19,Harrison,Missouri,29081,9,0 +2020-06-20,Harrison,Missouri,29081,9,0 +2020-06-21,Harrison,Missouri,29081,9,0 +2020-06-22,Harrison,Missouri,29081,11,0 +2020-06-23,Harrison,Missouri,29081,12,0 +2020-06-24,Harrison,Missouri,29081,12,0 +2020-06-25,Harrison,Missouri,29081,12,0 +2020-06-26,Harrison,Missouri,29081,12,0 +2020-06-27,Harrison,Missouri,29081,13,0 +2020-06-28,Harrison,Missouri,29081,13,0 +2020-06-29,Harrison,Missouri,29081,13,0 +2020-06-30,Harrison,Missouri,29081,14,0 +2020-07-01,Harrison,Missouri,29081,14,0 +2020-07-02,Harrison,Missouri,29081,14,0 +2020-07-03,Harrison,Missouri,29081,17,0 +2020-07-04,Harrison,Missouri,29081,17,0 +2020-07-05,Harrison,Missouri,29081,17,0 +2020-07-06,Harrison,Missouri,29081,17,0 +2020-07-07,Harrison,Missouri,29081,19,0 +2020-07-08,Harrison,Missouri,29081,21,0 +2020-07-09,Harrison,Missouri,29081,28,0 +2020-03-13,Henry,Missouri,29083,1,0 +2020-03-14,Henry,Missouri,29083,1,0 +2020-03-15,Henry,Missouri,29083,1,0 +2020-03-16,Henry,Missouri,29083,1,0 +2020-03-17,Henry,Missouri,29083,1,0 +2020-03-18,Henry,Missouri,29083,1,0 +2020-03-19,Henry,Missouri,29083,1,0 +2020-03-20,Henry,Missouri,29083,1,0 +2020-03-21,Henry,Missouri,29083,1,0 +2020-03-22,Henry,Missouri,29083,1,0 +2020-03-23,Henry,Missouri,29083,1,0 +2020-03-24,Henry,Missouri,29083,1,0 +2020-03-25,Henry,Missouri,29083,1,0 +2020-03-26,Henry,Missouri,29083,1,0 +2020-03-27,Henry,Missouri,29083,1,0 +2020-03-28,Henry,Missouri,29083,1,0 +2020-03-29,Henry,Missouri,29083,1,1 +2020-03-30,Henry,Missouri,29083,1,1 +2020-03-31,Henry,Missouri,29083,1,1 +2020-04-01,Henry,Missouri,29083,1,1 +2020-04-02,Henry,Missouri,29083,1,1 +2020-04-03,Henry,Missouri,29083,1,1 +2020-04-04,Henry,Missouri,29083,1,1 +2020-04-05,Henry,Missouri,29083,2,1 +2020-04-06,Henry,Missouri,29083,2,1 +2020-04-07,Henry,Missouri,29083,2,1 +2020-04-08,Henry,Missouri,29083,2,1 +2020-04-09,Henry,Missouri,29083,2,1 +2020-04-10,Henry,Missouri,29083,2,1 +2020-04-11,Henry,Missouri,29083,4,1 +2020-04-12,Henry,Missouri,29083,4,1 +2020-04-13,Henry,Missouri,29083,4,1 +2020-04-14,Henry,Missouri,29083,5,1 +2020-04-15,Henry,Missouri,29083,5,1 +2020-04-16,Henry,Missouri,29083,6,1 +2020-04-17,Henry,Missouri,29083,6,1 +2020-04-18,Henry,Missouri,29083,6,1 +2020-04-19,Henry,Missouri,29083,6,1 +2020-04-20,Henry,Missouri,29083,6,1 +2020-04-21,Henry,Missouri,29083,6,1 +2020-04-22,Henry,Missouri,29083,6,1 +2020-04-23,Henry,Missouri,29083,6,1 +2020-04-24,Henry,Missouri,29083,6,1 +2020-04-25,Henry,Missouri,29083,6,1 +2020-04-26,Henry,Missouri,29083,8,1 +2020-04-27,Henry,Missouri,29083,8,1 +2020-04-28,Henry,Missouri,29083,6,1 +2020-04-29,Henry,Missouri,29083,6,1 +2020-04-30,Henry,Missouri,29083,7,1 +2020-05-01,Henry,Missouri,29083,7,1 +2020-05-02,Henry,Missouri,29083,7,1 +2020-05-03,Henry,Missouri,29083,7,1 +2020-05-04,Henry,Missouri,29083,7,1 +2020-05-05,Henry,Missouri,29083,8,1 +2020-05-06,Henry,Missouri,29083,8,1 +2020-05-07,Henry,Missouri,29083,8,1 +2020-05-08,Henry,Missouri,29083,9,1 +2020-05-09,Henry,Missouri,29083,9,1 +2020-05-10,Henry,Missouri,29083,9,1 +2020-05-11,Henry,Missouri,29083,9,1 +2020-05-12,Henry,Missouri,29083,9,1 +2020-05-13,Henry,Missouri,29083,9,1 +2020-05-14,Henry,Missouri,29083,9,1 +2020-05-15,Henry,Missouri,29083,9,1 +2020-05-16,Henry,Missouri,29083,9,1 +2020-05-17,Henry,Missouri,29083,9,1 +2020-05-18,Henry,Missouri,29083,9,1 +2020-05-19,Henry,Missouri,29083,9,1 +2020-05-20,Henry,Missouri,29083,9,1 +2020-05-21,Henry,Missouri,29083,9,1 +2020-05-22,Henry,Missouri,29083,9,3 +2020-05-23,Henry,Missouri,29083,9,3 +2020-05-24,Henry,Missouri,29083,10,3 +2020-05-25,Henry,Missouri,29083,10,3 +2020-05-26,Henry,Missouri,29083,10,3 +2020-05-27,Henry,Missouri,29083,10,3 +2020-05-28,Henry,Missouri,29083,10,3 +2020-05-29,Henry,Missouri,29083,11,3 +2020-05-30,Henry,Missouri,29083,12,3 +2020-05-31,Henry,Missouri,29083,12,3 +2020-06-01,Henry,Missouri,29083,12,3 +2020-06-02,Henry,Missouri,29083,11,3 +2020-06-03,Henry,Missouri,29083,11,3 +2020-06-04,Henry,Missouri,29083,11,3 +2020-06-05,Henry,Missouri,29083,12,3 +2020-06-06,Henry,Missouri,29083,12,3 +2020-06-07,Henry,Missouri,29083,12,3 +2020-06-08,Henry,Missouri,29083,12,3 +2020-06-09,Henry,Missouri,29083,12,3 +2020-06-10,Henry,Missouri,29083,15,3 +2020-06-11,Henry,Missouri,29083,15,3 +2020-06-12,Henry,Missouri,29083,16,3 +2020-06-13,Henry,Missouri,29083,16,3 +2020-06-14,Henry,Missouri,29083,16,3 +2020-06-15,Henry,Missouri,29083,16,3 +2020-06-16,Henry,Missouri,29083,17,3 +2020-06-17,Henry,Missouri,29083,18,3 +2020-06-18,Henry,Missouri,29083,17,3 +2020-06-19,Henry,Missouri,29083,17,3 +2020-06-20,Henry,Missouri,29083,17,3 +2020-06-21,Henry,Missouri,29083,17,3 +2020-06-22,Henry,Missouri,29083,17,3 +2020-06-23,Henry,Missouri,29083,17,3 +2020-06-24,Henry,Missouri,29083,17,3 +2020-06-25,Henry,Missouri,29083,19,3 +2020-06-26,Henry,Missouri,29083,19,3 +2020-06-27,Henry,Missouri,29083,19,3 +2020-06-28,Henry,Missouri,29083,19,3 +2020-06-29,Henry,Missouri,29083,21,3 +2020-06-30,Henry,Missouri,29083,20,3 +2020-07-01,Henry,Missouri,29083,20,3 +2020-07-02,Henry,Missouri,29083,20,3 +2020-07-03,Henry,Missouri,29083,20,3 +2020-07-04,Henry,Missouri,29083,20,3 +2020-07-05,Henry,Missouri,29083,20,3 +2020-07-06,Henry,Missouri,29083,20,3 +2020-07-07,Henry,Missouri,29083,20,3 +2020-07-08,Henry,Missouri,29083,20,3 +2020-07-09,Henry,Missouri,29083,20,3 +2020-07-08,Hickory,Missouri,29085,1,0 +2020-07-09,Hickory,Missouri,29085,1,0 +2020-04-15,Holt,Missouri,29087,1,0 +2020-04-16,Holt,Missouri,29087,1,0 +2020-04-17,Holt,Missouri,29087,1,0 +2020-04-18,Holt,Missouri,29087,1,0 +2020-04-19,Holt,Missouri,29087,1,0 +2020-04-20,Holt,Missouri,29087,1,0 +2020-04-21,Holt,Missouri,29087,1,0 +2020-04-22,Holt,Missouri,29087,1,0 +2020-04-23,Holt,Missouri,29087,1,0 +2020-04-24,Holt,Missouri,29087,1,0 +2020-04-25,Holt,Missouri,29087,1,0 +2020-04-26,Holt,Missouri,29087,1,0 +2020-04-27,Holt,Missouri,29087,1,0 +2020-04-28,Holt,Missouri,29087,1,0 +2020-04-29,Holt,Missouri,29087,1,0 +2020-04-30,Holt,Missouri,29087,1,0 +2020-05-01,Holt,Missouri,29087,1,0 +2020-05-02,Holt,Missouri,29087,1,0 +2020-05-03,Holt,Missouri,29087,1,0 +2020-05-04,Holt,Missouri,29087,1,0 +2020-05-05,Holt,Missouri,29087,1,0 +2020-05-06,Holt,Missouri,29087,1,0 +2020-05-07,Holt,Missouri,29087,1,0 +2020-05-08,Holt,Missouri,29087,1,0 +2020-05-09,Holt,Missouri,29087,1,0 +2020-05-10,Holt,Missouri,29087,1,0 +2020-05-11,Holt,Missouri,29087,1,0 +2020-05-12,Holt,Missouri,29087,1,0 +2020-05-13,Holt,Missouri,29087,1,0 +2020-05-14,Holt,Missouri,29087,1,0 +2020-05-15,Holt,Missouri,29087,1,0 +2020-05-16,Holt,Missouri,29087,1,0 +2020-05-17,Holt,Missouri,29087,1,0 +2020-05-18,Holt,Missouri,29087,1,0 +2020-05-19,Holt,Missouri,29087,1,0 +2020-05-20,Holt,Missouri,29087,1,0 +2020-05-21,Holt,Missouri,29087,1,0 +2020-05-22,Holt,Missouri,29087,1,0 +2020-05-23,Holt,Missouri,29087,1,0 +2020-05-24,Holt,Missouri,29087,1,0 +2020-05-25,Holt,Missouri,29087,1,0 +2020-05-26,Holt,Missouri,29087,1,0 +2020-05-27,Holt,Missouri,29087,1,0 +2020-05-28,Holt,Missouri,29087,1,0 +2020-05-29,Holt,Missouri,29087,1,0 +2020-05-30,Holt,Missouri,29087,1,0 +2020-05-31,Holt,Missouri,29087,2,0 +2020-06-01,Holt,Missouri,29087,2,0 +2020-06-02,Holt,Missouri,29087,2,0 +2020-06-03,Holt,Missouri,29087,1,0 +2020-06-04,Holt,Missouri,29087,1,0 +2020-06-05,Holt,Missouri,29087,1,0 +2020-06-06,Holt,Missouri,29087,1,0 +2020-06-07,Holt,Missouri,29087,1,0 +2020-06-08,Holt,Missouri,29087,1,0 +2020-06-09,Holt,Missouri,29087,1,0 +2020-06-10,Holt,Missouri,29087,1,0 +2020-06-11,Holt,Missouri,29087,1,0 +2020-06-12,Holt,Missouri,29087,1,0 +2020-06-13,Holt,Missouri,29087,1,0 +2020-06-14,Holt,Missouri,29087,1,0 +2020-06-15,Holt,Missouri,29087,1,0 +2020-06-16,Holt,Missouri,29087,1,0 +2020-06-17,Holt,Missouri,29087,1,0 +2020-06-18,Holt,Missouri,29087,1,0 +2020-06-19,Holt,Missouri,29087,1,0 +2020-06-20,Holt,Missouri,29087,2,0 +2020-06-21,Holt,Missouri,29087,2,0 +2020-06-22,Holt,Missouri,29087,1,0 +2020-06-23,Holt,Missouri,29087,1,0 +2020-06-24,Holt,Missouri,29087,1,0 +2020-06-25,Holt,Missouri,29087,1,0 +2020-06-26,Holt,Missouri,29087,1,0 +2020-06-27,Holt,Missouri,29087,1,0 +2020-06-28,Holt,Missouri,29087,1,0 +2020-06-29,Holt,Missouri,29087,1,0 +2020-06-30,Holt,Missouri,29087,1,0 +2020-07-01,Holt,Missouri,29087,1,0 +2020-07-02,Holt,Missouri,29087,1,0 +2020-07-03,Holt,Missouri,29087,1,0 +2020-07-04,Holt,Missouri,29087,1,0 +2020-07-05,Holt,Missouri,29087,1,0 +2020-07-06,Holt,Missouri,29087,1,0 +2020-07-07,Holt,Missouri,29087,1,0 +2020-07-08,Holt,Missouri,29087,1,0 +2020-07-09,Holt,Missouri,29087,1,0 +2020-04-07,Howard,Missouri,29089,1,0 +2020-04-08,Howard,Missouri,29089,1,0 +2020-04-09,Howard,Missouri,29089,1,0 +2020-04-10,Howard,Missouri,29089,1,0 +2020-04-11,Howard,Missouri,29089,1,0 +2020-04-12,Howard,Missouri,29089,1,0 +2020-04-13,Howard,Missouri,29089,2,0 +2020-04-14,Howard,Missouri,29089,2,0 +2020-04-15,Howard,Missouri,29089,2,0 +2020-04-16,Howard,Missouri,29089,2,0 +2020-04-17,Howard,Missouri,29089,2,0 +2020-04-18,Howard,Missouri,29089,2,0 +2020-04-19,Howard,Missouri,29089,2,0 +2020-04-20,Howard,Missouri,29089,2,0 +2020-04-21,Howard,Missouri,29089,2,0 +2020-04-22,Howard,Missouri,29089,2,0 +2020-04-23,Howard,Missouri,29089,2,0 +2020-04-24,Howard,Missouri,29089,2,0 +2020-04-25,Howard,Missouri,29089,2,0 +2020-04-26,Howard,Missouri,29089,2,0 +2020-04-27,Howard,Missouri,29089,2,0 +2020-04-28,Howard,Missouri,29089,2,0 +2020-04-29,Howard,Missouri,29089,2,0 +2020-04-30,Howard,Missouri,29089,2,0 +2020-05-01,Howard,Missouri,29089,2,0 +2020-05-02,Howard,Missouri,29089,2,0 +2020-05-03,Howard,Missouri,29089,2,0 +2020-05-04,Howard,Missouri,29089,2,0 +2020-05-05,Howard,Missouri,29089,2,0 +2020-05-06,Howard,Missouri,29089,2,0 +2020-05-07,Howard,Missouri,29089,3,0 +2020-05-08,Howard,Missouri,29089,3,0 +2020-05-09,Howard,Missouri,29089,3,0 +2020-05-10,Howard,Missouri,29089,3,0 +2020-05-11,Howard,Missouri,29089,3,0 +2020-05-12,Howard,Missouri,29089,2,0 +2020-05-13,Howard,Missouri,29089,2,0 +2020-05-14,Howard,Missouri,29089,2,0 +2020-05-15,Howard,Missouri,29089,2,0 +2020-05-16,Howard,Missouri,29089,2,0 +2020-05-17,Howard,Missouri,29089,2,0 +2020-05-18,Howard,Missouri,29089,2,0 +2020-05-19,Howard,Missouri,29089,3,0 +2020-05-20,Howard,Missouri,29089,3,0 +2020-05-21,Howard,Missouri,29089,3,0 +2020-05-22,Howard,Missouri,29089,3,0 +2020-05-23,Howard,Missouri,29089,3,0 +2020-05-24,Howard,Missouri,29089,3,0 +2020-05-25,Howard,Missouri,29089,3,0 +2020-05-26,Howard,Missouri,29089,3,0 +2020-05-27,Howard,Missouri,29089,3,0 +2020-05-28,Howard,Missouri,29089,3,0 +2020-05-29,Howard,Missouri,29089,3,0 +2020-05-30,Howard,Missouri,29089,3,0 +2020-05-31,Howard,Missouri,29089,3,0 +2020-06-01,Howard,Missouri,29089,3,0 +2020-06-02,Howard,Missouri,29089,3,0 +2020-06-03,Howard,Missouri,29089,3,0 +2020-06-04,Howard,Missouri,29089,3,0 +2020-06-05,Howard,Missouri,29089,3,0 +2020-06-06,Howard,Missouri,29089,3,0 +2020-06-07,Howard,Missouri,29089,3,0 +2020-06-08,Howard,Missouri,29089,3,0 +2020-06-09,Howard,Missouri,29089,3,0 +2020-06-10,Howard,Missouri,29089,3,0 +2020-06-11,Howard,Missouri,29089,3,0 +2020-06-12,Howard,Missouri,29089,3,0 +2020-06-13,Howard,Missouri,29089,3,0 +2020-06-14,Howard,Missouri,29089,3,0 +2020-06-15,Howard,Missouri,29089,3,0 +2020-06-16,Howard,Missouri,29089,3,0 +2020-06-17,Howard,Missouri,29089,3,0 +2020-06-18,Howard,Missouri,29089,3,0 +2020-06-19,Howard,Missouri,29089,3,0 +2020-06-20,Howard,Missouri,29089,3,0 +2020-06-21,Howard,Missouri,29089,3,0 +2020-06-22,Howard,Missouri,29089,5,0 +2020-06-23,Howard,Missouri,29089,5,0 +2020-06-24,Howard,Missouri,29089,5,0 +2020-06-25,Howard,Missouri,29089,5,0 +2020-06-26,Howard,Missouri,29089,5,0 +2020-06-27,Howard,Missouri,29089,5,0 +2020-06-28,Howard,Missouri,29089,5,0 +2020-06-29,Howard,Missouri,29089,5,0 +2020-06-30,Howard,Missouri,29089,5,0 +2020-07-01,Howard,Missouri,29089,5,0 +2020-07-02,Howard,Missouri,29089,5,0 +2020-07-03,Howard,Missouri,29089,5,0 +2020-07-04,Howard,Missouri,29089,5,0 +2020-07-05,Howard,Missouri,29089,5,0 +2020-07-06,Howard,Missouri,29089,5,0 +2020-07-07,Howard,Missouri,29089,5,0 +2020-07-08,Howard,Missouri,29089,5,0 +2020-07-09,Howard,Missouri,29089,5,0 +2020-04-02,Howell,Missouri,29091,1,0 +2020-04-03,Howell,Missouri,29091,1,0 +2020-04-04,Howell,Missouri,29091,1,0 +2020-04-05,Howell,Missouri,29091,1,0 +2020-04-06,Howell,Missouri,29091,1,0 +2020-04-07,Howell,Missouri,29091,4,0 +2020-04-08,Howell,Missouri,29091,4,0 +2020-04-09,Howell,Missouri,29091,4,0 +2020-04-10,Howell,Missouri,29091,4,0 +2020-04-11,Howell,Missouri,29091,4,0 +2020-04-12,Howell,Missouri,29091,4,0 +2020-04-13,Howell,Missouri,29091,4,0 +2020-04-14,Howell,Missouri,29091,4,0 +2020-04-15,Howell,Missouri,29091,4,0 +2020-04-16,Howell,Missouri,29091,5,0 +2020-04-17,Howell,Missouri,29091,5,0 +2020-04-18,Howell,Missouri,29091,5,0 +2020-04-19,Howell,Missouri,29091,5,0 +2020-04-20,Howell,Missouri,29091,5,0 +2020-04-21,Howell,Missouri,29091,5,0 +2020-04-22,Howell,Missouri,29091,5,0 +2020-04-23,Howell,Missouri,29091,5,0 +2020-04-24,Howell,Missouri,29091,5,0 +2020-04-25,Howell,Missouri,29091,5,0 +2020-04-26,Howell,Missouri,29091,5,0 +2020-04-27,Howell,Missouri,29091,5,0 +2020-04-28,Howell,Missouri,29091,5,0 +2020-04-29,Howell,Missouri,29091,5,0 +2020-04-30,Howell,Missouri,29091,5,0 +2020-05-01,Howell,Missouri,29091,5,0 +2020-05-02,Howell,Missouri,29091,5,0 +2020-05-03,Howell,Missouri,29091,5,0 +2020-05-04,Howell,Missouri,29091,5,0 +2020-05-05,Howell,Missouri,29091,5,0 +2020-05-06,Howell,Missouri,29091,5,0 +2020-05-07,Howell,Missouri,29091,5,0 +2020-05-08,Howell,Missouri,29091,5,0 +2020-05-09,Howell,Missouri,29091,5,0 +2020-05-10,Howell,Missouri,29091,5,0 +2020-05-11,Howell,Missouri,29091,5,0 +2020-05-12,Howell,Missouri,29091,5,0 +2020-05-13,Howell,Missouri,29091,5,0 +2020-05-14,Howell,Missouri,29091,5,0 +2020-05-15,Howell,Missouri,29091,5,0 +2020-05-16,Howell,Missouri,29091,5,0 +2020-05-17,Howell,Missouri,29091,5,0 +2020-05-18,Howell,Missouri,29091,5,0 +2020-05-19,Howell,Missouri,29091,5,0 +2020-05-20,Howell,Missouri,29091,5,0 +2020-05-21,Howell,Missouri,29091,5,0 +2020-05-22,Howell,Missouri,29091,5,0 +2020-05-23,Howell,Missouri,29091,5,0 +2020-05-24,Howell,Missouri,29091,5,0 +2020-05-25,Howell,Missouri,29091,5,0 +2020-05-26,Howell,Missouri,29091,5,0 +2020-05-27,Howell,Missouri,29091,5,0 +2020-05-28,Howell,Missouri,29091,6,0 +2020-05-29,Howell,Missouri,29091,6,0 +2020-05-30,Howell,Missouri,29091,7,0 +2020-05-31,Howell,Missouri,29091,7,0 +2020-06-01,Howell,Missouri,29091,7,0 +2020-06-02,Howell,Missouri,29091,9,0 +2020-06-03,Howell,Missouri,29091,9,0 +2020-06-04,Howell,Missouri,29091,10,0 +2020-06-05,Howell,Missouri,29091,11,0 +2020-06-06,Howell,Missouri,29091,12,0 +2020-06-07,Howell,Missouri,29091,12,0 +2020-06-08,Howell,Missouri,29091,15,0 +2020-06-09,Howell,Missouri,29091,14,0 +2020-06-10,Howell,Missouri,29091,17,0 +2020-06-11,Howell,Missouri,29091,18,0 +2020-06-12,Howell,Missouri,29091,19,0 +2020-06-13,Howell,Missouri,29091,20,0 +2020-06-14,Howell,Missouri,29091,20,0 +2020-06-15,Howell,Missouri,29091,26,0 +2020-06-16,Howell,Missouri,29091,27,0 +2020-06-17,Howell,Missouri,29091,28,0 +2020-06-18,Howell,Missouri,29091,29,0 +2020-06-19,Howell,Missouri,29091,31,0 +2020-06-20,Howell,Missouri,29091,30,0 +2020-06-21,Howell,Missouri,29091,30,0 +2020-06-22,Howell,Missouri,29091,30,0 +2020-06-23,Howell,Missouri,29091,30,0 +2020-06-24,Howell,Missouri,29091,34,0 +2020-06-25,Howell,Missouri,29091,36,0 +2020-06-26,Howell,Missouri,29091,36,0 +2020-06-27,Howell,Missouri,29091,36,0 +2020-06-28,Howell,Missouri,29091,36,0 +2020-06-29,Howell,Missouri,29091,37,0 +2020-06-30,Howell,Missouri,29091,38,0 +2020-07-01,Howell,Missouri,29091,40,0 +2020-07-02,Howell,Missouri,29091,41,0 +2020-07-03,Howell,Missouri,29091,45,0 +2020-07-04,Howell,Missouri,29091,45,0 +2020-07-05,Howell,Missouri,29091,45,0 +2020-07-06,Howell,Missouri,29091,45,0 +2020-07-07,Howell,Missouri,29091,44,0 +2020-07-08,Howell,Missouri,29091,44,0 +2020-07-09,Howell,Missouri,29091,48,0 +2020-04-11,Iron,Missouri,29093,1,0 +2020-04-12,Iron,Missouri,29093,1,0 +2020-04-13,Iron,Missouri,29093,1,0 +2020-04-14,Iron,Missouri,29093,1,0 +2020-04-15,Iron,Missouri,29093,1,0 +2020-04-16,Iron,Missouri,29093,1,0 +2020-04-17,Iron,Missouri,29093,1,0 +2020-04-18,Iron,Missouri,29093,1,0 +2020-04-19,Iron,Missouri,29093,2,0 +2020-04-20,Iron,Missouri,29093,2,0 +2020-04-21,Iron,Missouri,29093,2,0 +2020-04-22,Iron,Missouri,29093,2,0 +2020-04-23,Iron,Missouri,29093,2,0 +2020-04-24,Iron,Missouri,29093,2,0 +2020-04-25,Iron,Missouri,29093,2,0 +2020-04-26,Iron,Missouri,29093,2,0 +2020-04-27,Iron,Missouri,29093,2,0 +2020-04-28,Iron,Missouri,29093,2,0 +2020-04-29,Iron,Missouri,29093,2,0 +2020-04-30,Iron,Missouri,29093,2,0 +2020-05-01,Iron,Missouri,29093,2,0 +2020-05-02,Iron,Missouri,29093,2,0 +2020-05-03,Iron,Missouri,29093,2,0 +2020-05-04,Iron,Missouri,29093,2,0 +2020-05-05,Iron,Missouri,29093,2,0 +2020-05-06,Iron,Missouri,29093,2,0 +2020-05-07,Iron,Missouri,29093,2,0 +2020-05-08,Iron,Missouri,29093,2,0 +2020-05-09,Iron,Missouri,29093,2,0 +2020-05-10,Iron,Missouri,29093,2,0 +2020-05-11,Iron,Missouri,29093,2,0 +2020-05-12,Iron,Missouri,29093,2,0 +2020-05-13,Iron,Missouri,29093,2,0 +2020-05-14,Iron,Missouri,29093,2,0 +2020-05-15,Iron,Missouri,29093,2,0 +2020-05-16,Iron,Missouri,29093,2,0 +2020-05-17,Iron,Missouri,29093,2,0 +2020-05-18,Iron,Missouri,29093,2,0 +2020-05-19,Iron,Missouri,29093,2,0 +2020-05-20,Iron,Missouri,29093,2,0 +2020-05-21,Iron,Missouri,29093,2,0 +2020-05-22,Iron,Missouri,29093,2,0 +2020-05-23,Iron,Missouri,29093,2,0 +2020-05-24,Iron,Missouri,29093,2,0 +2020-05-25,Iron,Missouri,29093,2,0 +2020-05-26,Iron,Missouri,29093,2,0 +2020-05-27,Iron,Missouri,29093,2,0 +2020-05-28,Iron,Missouri,29093,2,0 +2020-05-29,Iron,Missouri,29093,2,0 +2020-05-30,Iron,Missouri,29093,2,0 +2020-05-31,Iron,Missouri,29093,2,0 +2020-06-01,Iron,Missouri,29093,3,0 +2020-06-02,Iron,Missouri,29093,2,0 +2020-06-03,Iron,Missouri,29093,2,0 +2020-06-04,Iron,Missouri,29093,2,0 +2020-06-05,Iron,Missouri,29093,2,0 +2020-06-06,Iron,Missouri,29093,2,0 +2020-06-07,Iron,Missouri,29093,2,0 +2020-06-08,Iron,Missouri,29093,2,0 +2020-06-09,Iron,Missouri,29093,2,0 +2020-06-10,Iron,Missouri,29093,2,0 +2020-06-11,Iron,Missouri,29093,2,0 +2020-06-12,Iron,Missouri,29093,2,0 +2020-06-13,Iron,Missouri,29093,2,0 +2020-06-14,Iron,Missouri,29093,2,0 +2020-06-15,Iron,Missouri,29093,2,0 +2020-06-16,Iron,Missouri,29093,2,0 +2020-06-17,Iron,Missouri,29093,2,0 +2020-06-18,Iron,Missouri,29093,2,0 +2020-06-19,Iron,Missouri,29093,2,0 +2020-06-20,Iron,Missouri,29093,2,0 +2020-06-21,Iron,Missouri,29093,2,0 +2020-06-22,Iron,Missouri,29093,2,0 +2020-06-23,Iron,Missouri,29093,2,0 +2020-06-24,Iron,Missouri,29093,2,0 +2020-06-25,Iron,Missouri,29093,2,0 +2020-06-26,Iron,Missouri,29093,3,0 +2020-06-27,Iron,Missouri,29093,3,0 +2020-06-28,Iron,Missouri,29093,3,0 +2020-06-29,Iron,Missouri,29093,3,0 +2020-06-30,Iron,Missouri,29093,3,0 +2020-07-01,Iron,Missouri,29093,3,0 +2020-07-02,Iron,Missouri,29093,3,0 +2020-07-03,Iron,Missouri,29093,3,0 +2020-07-04,Iron,Missouri,29093,3,0 +2020-07-05,Iron,Missouri,29093,3,0 +2020-07-06,Iron,Missouri,29093,3,0 +2020-07-07,Iron,Missouri,29093,3,0 +2020-07-08,Iron,Missouri,29093,3,0 +2020-07-09,Iron,Missouri,29093,3,0 +2020-03-17,Jackson,Missouri,29095,2,0 +2020-03-18,Jackson,Missouri,29095,3,0 +2020-03-19,Jackson,Missouri,29095,3,0 +2020-03-20,Jackson,Missouri,29095,5,1 +2020-03-21,Jackson,Missouri,29095,5,1 +2020-03-22,Jackson,Missouri,29095,5,1 +2020-03-23,Jackson,Missouri,29095,10,1 +2020-03-24,Jackson,Missouri,29095,14,1 +2020-03-25,Jackson,Missouri,29095,17,1 +2020-03-26,Jackson,Missouri,29095,31,1 +2020-03-27,Jackson,Missouri,29095,41,1 +2020-03-28,Jackson,Missouri,29095,43,1 +2020-03-29,Jackson,Missouri,29095,48,1 +2020-03-30,Jackson,Missouri,29095,56,1 +2020-03-31,Jackson,Missouri,29095,77,1 +2020-04-01,Jackson,Missouri,29095,86,2 +2020-04-02,Jackson,Missouri,29095,103,2 +2020-04-03,Jackson,Missouri,29095,120,3 +2020-04-04,Jackson,Missouri,29095,135,3 +2020-04-05,Jackson,Missouri,29095,139,4 +2020-04-06,Jackson,Missouri,29095,149,4 +2020-04-07,Jackson,Missouri,29095,154,4 +2020-04-08,Jackson,Missouri,29095,167,5 +2020-04-09,Jackson,Missouri,29095,177,5 +2020-04-10,Jackson,Missouri,29095,193,5 +2020-04-11,Jackson,Missouri,29095,208,7 +2020-04-12,Jackson,Missouri,29095,213,7 +2020-04-13,Jackson,Missouri,29095,223,7 +2020-04-14,Jackson,Missouri,29095,237,9 +2020-04-15,Jackson,Missouri,29095,243,9 +2020-04-16,Jackson,Missouri,29095,260,11 +2020-04-17,Jackson,Missouri,29095,267,11 +2020-04-18,Jackson,Missouri,29095,268,11 +2020-04-19,Jackson,Missouri,29095,268,11 +2020-04-20,Jackson,Missouri,29095,271,11 +2020-04-21,Jackson,Missouri,29095,279,11 +2020-04-22,Jackson,Missouri,29095,288,12 +2020-04-23,Jackson,Missouri,29095,296,12 +2020-04-24,Jackson,Missouri,29095,300,12 +2020-04-25,Jackson,Missouri,29095,303,12 +2020-04-26,Jackson,Missouri,29095,307,12 +2020-04-27,Jackson,Missouri,29095,309,12 +2020-04-28,Jackson,Missouri,29095,309,12 +2020-04-29,Jackson,Missouri,29095,313,13 +2020-04-30,Jackson,Missouri,29095,323,14 +2020-05-01,Jackson,Missouri,29095,329,14 +2020-05-02,Jackson,Missouri,29095,339,14 +2020-05-03,Jackson,Missouri,29095,342,14 +2020-05-04,Jackson,Missouri,29095,351,15 +2020-05-05,Jackson,Missouri,29095,357,16 +2020-05-06,Jackson,Missouri,29095,362,16 +2020-05-07,Jackson,Missouri,29095,373,16 +2020-05-08,Jackson,Missouri,29095,380,16 +2020-05-09,Jackson,Missouri,29095,390,16 +2020-05-10,Jackson,Missouri,29095,398,16 +2020-05-11,Jackson,Missouri,29095,401,16 +2020-05-12,Jackson,Missouri,29095,402,16 +2020-05-13,Jackson,Missouri,29095,402,16 +2020-05-14,Jackson,Missouri,29095,407,16 +2020-05-15,Jackson,Missouri,29095,425,16 +2020-05-16,Jackson,Missouri,29095,432,16 +2020-05-17,Jackson,Missouri,29095,446,16 +2020-05-18,Jackson,Missouri,29095,454,16 +2020-05-19,Jackson,Missouri,29095,457,16 +2020-05-20,Jackson,Missouri,29095,465,16 +2020-05-21,Jackson,Missouri,29095,469,16 +2020-05-22,Jackson,Missouri,29095,485,16 +2020-05-23,Jackson,Missouri,29095,495,16 +2020-05-24,Jackson,Missouri,29095,517,16 +2020-05-25,Jackson,Missouri,29095,520,16 +2020-05-26,Jackson,Missouri,29095,528,16 +2020-05-27,Jackson,Missouri,29095,540,16 +2020-05-28,Jackson,Missouri,29095,554,17 +2020-05-29,Jackson,Missouri,29095,560,17 +2020-05-30,Jackson,Missouri,29095,570,19 +2020-05-31,Jackson,Missouri,29095,596,19 +2020-06-01,Jackson,Missouri,29095,613,19 +2020-06-02,Jackson,Missouri,29095,637,22 +2020-06-03,Jackson,Missouri,29095,656,22 +2020-06-04,Jackson,Missouri,29095,676,22 +2020-06-05,Jackson,Missouri,29095,686,22 +2020-06-06,Jackson,Missouri,29095,696,22 +2020-06-07,Jackson,Missouri,29095,702,22 +2020-06-08,Jackson,Missouri,29095,716,22 +2020-06-09,Jackson,Missouri,29095,727,22 +2020-06-10,Jackson,Missouri,29095,752,22 +2020-06-11,Jackson,Missouri,29095,782,22 +2020-06-12,Jackson,Missouri,29095,791,22 +2020-06-13,Jackson,Missouri,29095,819,22 +2020-06-14,Jackson,Missouri,29095,819,22 +2020-06-15,Jackson,Missouri,29095,865,22 +2020-06-16,Jackson,Missouri,29095,889,26 +2020-06-17,Jackson,Missouri,29095,916,26 +2020-06-18,Jackson,Missouri,29095,933,27 +2020-06-19,Jackson,Missouri,29095,976,27 +2020-06-20,Jackson,Missouri,29095,1016,27 +2020-06-21,Jackson,Missouri,29095,1018,27 +2020-06-22,Jackson,Missouri,29095,1030,27 +2020-06-23,Jackson,Missouri,29095,1054,33 +2020-06-24,Jackson,Missouri,29095,1076,33 +2020-06-25,Jackson,Missouri,29095,1074,36 +2020-06-26,Jackson,Missouri,29095,1103,36 +2020-06-27,Jackson,Missouri,29095,1132,35 +2020-06-28,Jackson,Missouri,29095,1149,36 +2020-06-29,Jackson,Missouri,29095,1172,36 +2020-06-30,Jackson,Missouri,29095,1210,36 +2020-07-01,Jackson,Missouri,29095,1233,37 +2020-07-02,Jackson,Missouri,29095,1257,39 +2020-07-03,Jackson,Missouri,29095,1306,39 +2020-07-04,Jackson,Missouri,29095,1361,40 +2020-07-05,Jackson,Missouri,29095,1367,40 +2020-07-06,Jackson,Missouri,29095,1399,40 +2020-07-07,Jackson,Missouri,29095,1436,42 +2020-07-08,Jackson,Missouri,29095,1479,42 +2020-07-09,Jackson,Missouri,29095,1527,42 +2020-03-21,Jasper,Missouri,29097,1,0 +2020-03-22,Jasper,Missouri,29097,1,0 +2020-03-23,Jasper,Missouri,29097,1,0 +2020-03-24,Jasper,Missouri,29097,1,0 +2020-03-25,Jasper,Missouri,29097,2,0 +2020-03-26,Jasper,Missouri,29097,2,0 +2020-03-27,Jasper,Missouri,29097,2,0 +2020-03-28,Jasper,Missouri,29097,2,0 +2020-03-29,Jasper,Missouri,29097,2,0 +2020-03-30,Jasper,Missouri,29097,4,0 +2020-03-31,Jasper,Missouri,29097,4,0 +2020-04-01,Jasper,Missouri,29097,5,0 +2020-04-02,Jasper,Missouri,29097,5,0 +2020-04-03,Jasper,Missouri,29097,8,0 +2020-04-04,Jasper,Missouri,29097,8,0 +2020-04-05,Jasper,Missouri,29097,8,0 +2020-04-06,Jasper,Missouri,29097,9,0 +2020-04-07,Jasper,Missouri,29097,9,0 +2020-04-08,Jasper,Missouri,29097,10,0 +2020-04-09,Jasper,Missouri,29097,11,0 +2020-04-10,Jasper,Missouri,29097,13,0 +2020-04-11,Jasper,Missouri,29097,13,0 +2020-04-12,Jasper,Missouri,29097,13,0 +2020-04-13,Jasper,Missouri,29097,21,0 +2020-04-14,Jasper,Missouri,29097,21,0 +2020-04-15,Jasper,Missouri,29097,22,0 +2020-04-16,Jasper,Missouri,29097,22,0 +2020-04-17,Jasper,Missouri,29097,22,0 +2020-04-18,Jasper,Missouri,29097,22,0 +2020-04-19,Jasper,Missouri,29097,22,0 +2020-04-20,Jasper,Missouri,29097,22,0 +2020-04-21,Jasper,Missouri,29097,22,0 +2020-04-22,Jasper,Missouri,29097,22,0 +2020-04-23,Jasper,Missouri,29097,22,0 +2020-04-24,Jasper,Missouri,29097,22,0 +2020-04-25,Jasper,Missouri,29097,22,0 +2020-04-26,Jasper,Missouri,29097,23,0 +2020-04-27,Jasper,Missouri,29097,23,0 +2020-04-28,Jasper,Missouri,29097,23,0 +2020-04-29,Jasper,Missouri,29097,23,0 +2020-04-30,Jasper,Missouri,29097,24,0 +2020-05-01,Jasper,Missouri,29097,24,0 +2020-05-02,Jasper,Missouri,29097,24,0 +2020-05-03,Jasper,Missouri,29097,24,0 +2020-05-04,Jasper,Missouri,29097,24,0 +2020-05-05,Jasper,Missouri,29097,24,0 +2020-05-06,Jasper,Missouri,29097,24,0 +2020-05-07,Jasper,Missouri,29097,24,0 +2020-05-08,Jasper,Missouri,29097,24,0 +2020-05-09,Jasper,Missouri,29097,26,0 +2020-05-10,Jasper,Missouri,29097,26,0 +2020-05-11,Jasper,Missouri,29097,26,0 +2020-05-12,Jasper,Missouri,29097,27,0 +2020-05-13,Jasper,Missouri,29097,27,0 +2020-05-14,Jasper,Missouri,29097,27,0 +2020-05-15,Jasper,Missouri,29097,27,0 +2020-05-16,Jasper,Missouri,29097,27,0 +2020-05-17,Jasper,Missouri,29097,27,0 +2020-05-18,Jasper,Missouri,29097,27,0 +2020-05-19,Jasper,Missouri,29097,27,0 +2020-05-20,Jasper,Missouri,29097,27,0 +2020-05-21,Jasper,Missouri,29097,28,0 +2020-05-22,Jasper,Missouri,29097,29,0 +2020-05-23,Jasper,Missouri,29097,29,0 +2020-05-24,Jasper,Missouri,29097,30,0 +2020-05-25,Jasper,Missouri,29097,30,0 +2020-05-26,Jasper,Missouri,29097,30,0 +2020-05-27,Jasper,Missouri,29097,30,0 +2020-05-28,Jasper,Missouri,29097,30,0 +2020-05-29,Jasper,Missouri,29097,32,0 +2020-05-30,Jasper,Missouri,29097,32,0 +2020-05-31,Jasper,Missouri,29097,32,0 +2020-06-01,Jasper,Missouri,29097,32,0 +2020-06-02,Jasper,Missouri,29097,35,0 +2020-06-03,Jasper,Missouri,29097,36,0 +2020-06-04,Jasper,Missouri,29097,39,0 +2020-06-05,Jasper,Missouri,29097,40,0 +2020-06-06,Jasper,Missouri,29097,45,0 +2020-06-07,Jasper,Missouri,29097,50,0 +2020-06-08,Jasper,Missouri,29097,58,0 +2020-06-09,Jasper,Missouri,29097,65,0 +2020-06-10,Jasper,Missouri,29097,73,0 +2020-06-11,Jasper,Missouri,29097,80,0 +2020-06-12,Jasper,Missouri,29097,103,0 +2020-06-13,Jasper,Missouri,29097,115,0 +2020-06-14,Jasper,Missouri,29097,115,0 +2020-06-15,Jasper,Missouri,29097,131,0 +2020-06-16,Jasper,Missouri,29097,163,0 +2020-06-17,Jasper,Missouri,29097,168,0 +2020-06-18,Jasper,Missouri,29097,191,0 +2020-06-19,Jasper,Missouri,29097,195,0 +2020-06-20,Jasper,Missouri,29097,235,0 +2020-06-21,Jasper,Missouri,29097,260,0 +2020-06-22,Jasper,Missouri,29097,260,0 +2020-06-23,Jasper,Missouri,29097,303,0 +2020-06-24,Jasper,Missouri,29097,309,0 +2020-06-25,Jasper,Missouri,29097,311,1 +2020-06-26,Jasper,Missouri,29097,338,1 +2020-06-27,Jasper,Missouri,29097,356,1 +2020-06-28,Jasper,Missouri,29097,368,1 +2020-06-29,Jasper,Missouri,29097,398,1 +2020-06-30,Jasper,Missouri,29097,449,1 +2020-07-01,Jasper,Missouri,29097,474,1 +2020-07-02,Jasper,Missouri,29097,481,1 +2020-07-03,Jasper,Missouri,29097,515,1 +2020-07-04,Jasper,Missouri,29097,582,1 +2020-07-05,Jasper,Missouri,29097,587,1 +2020-07-06,Jasper,Missouri,29097,611,1 +2020-07-07,Jasper,Missouri,29097,652,1 +2020-07-08,Jasper,Missouri,29097,692,1 +2020-07-09,Jasper,Missouri,29097,733,2 +2020-03-24,Jefferson,Missouri,29099,4,0 +2020-03-25,Jefferson,Missouri,29099,5,0 +2020-03-26,Jefferson,Missouri,29099,10,0 +2020-03-27,Jefferson,Missouri,29099,15,0 +2020-03-28,Jefferson,Missouri,29099,17,0 +2020-03-29,Jefferson,Missouri,29099,17,0 +2020-03-30,Jefferson,Missouri,29099,18,0 +2020-03-31,Jefferson,Missouri,29099,30,0 +2020-04-01,Jefferson,Missouri,29099,38,0 +2020-04-02,Jefferson,Missouri,29099,47,1 +2020-04-03,Jefferson,Missouri,29099,62,1 +2020-04-04,Jefferson,Missouri,29099,69,1 +2020-04-05,Jefferson,Missouri,29099,71,2 +2020-04-06,Jefferson,Missouri,29099,81,2 +2020-04-07,Jefferson,Missouri,29099,92,2 +2020-04-08,Jefferson,Missouri,29099,95,2 +2020-04-09,Jefferson,Missouri,29099,98,2 +2020-04-10,Jefferson,Missouri,29099,107,3 +2020-04-11,Jefferson,Missouri,29099,115,3 +2020-04-12,Jefferson,Missouri,29099,115,3 +2020-04-13,Jefferson,Missouri,29099,129,3 +2020-04-14,Jefferson,Missouri,29099,138,3 +2020-04-15,Jefferson,Missouri,29099,147,3 +2020-04-16,Jefferson,Missouri,29099,155,3 +2020-04-17,Jefferson,Missouri,29099,179,4 +2020-04-18,Jefferson,Missouri,29099,183,3 +2020-04-19,Jefferson,Missouri,29099,214,3 +2020-04-20,Jefferson,Missouri,29099,222,3 +2020-04-21,Jefferson,Missouri,29099,230,3 +2020-04-22,Jefferson,Missouri,29099,238,3 +2020-04-23,Jefferson,Missouri,29099,240,3 +2020-04-24,Jefferson,Missouri,29099,251,3 +2020-04-25,Jefferson,Missouri,29099,251,3 +2020-04-26,Jefferson,Missouri,29099,250,3 +2020-04-27,Jefferson,Missouri,29099,249,3 +2020-04-28,Jefferson,Missouri,29099,255,3 +2020-04-29,Jefferson,Missouri,29099,256,4 +2020-04-30,Jefferson,Missouri,29099,260,8 +2020-05-01,Jefferson,Missouri,29099,261,8 +2020-05-02,Jefferson,Missouri,29099,265,8 +2020-05-03,Jefferson,Missouri,29099,271,8 +2020-05-04,Jefferson,Missouri,29099,279,10 +2020-05-05,Jefferson,Missouri,29099,278,10 +2020-05-06,Jefferson,Missouri,29099,286,10 +2020-05-07,Jefferson,Missouri,29099,289,10 +2020-05-08,Jefferson,Missouri,29099,289,10 +2020-05-09,Jefferson,Missouri,29099,292,12 +2020-05-10,Jefferson,Missouri,29099,292,12 +2020-05-11,Jefferson,Missouri,29099,309,12 +2020-05-12,Jefferson,Missouri,29099,310,12 +2020-05-13,Jefferson,Missouri,29099,314,13 +2020-05-14,Jefferson,Missouri,29099,316,13 +2020-05-15,Jefferson,Missouri,29099,318,14 +2020-05-16,Jefferson,Missouri,29099,326,14 +2020-05-17,Jefferson,Missouri,29099,328,14 +2020-05-18,Jefferson,Missouri,29099,330,14 +2020-05-19,Jefferson,Missouri,29099,331,14 +2020-05-20,Jefferson,Missouri,29099,331,14 +2020-05-21,Jefferson,Missouri,29099,333,15 +2020-05-22,Jefferson,Missouri,29099,334,15 +2020-05-23,Jefferson,Missouri,29099,337,15 +2020-05-24,Jefferson,Missouri,29099,337,16 +2020-05-25,Jefferson,Missouri,29099,337,16 +2020-05-26,Jefferson,Missouri,29099,344,16 +2020-05-27,Jefferson,Missouri,29099,345,16 +2020-05-28,Jefferson,Missouri,29099,348,16 +2020-05-29,Jefferson,Missouri,29099,349,16 +2020-05-30,Jefferson,Missouri,29099,349,17 +2020-05-31,Jefferson,Missouri,29099,349,17 +2020-06-01,Jefferson,Missouri,29099,363,17 +2020-06-02,Jefferson,Missouri,29099,390,18 +2020-06-03,Jefferson,Missouri,29099,395,18 +2020-06-04,Jefferson,Missouri,29099,396,18 +2020-06-05,Jefferson,Missouri,29099,398,18 +2020-06-06,Jefferson,Missouri,29099,398,18 +2020-06-07,Jefferson,Missouri,29099,398,18 +2020-06-08,Jefferson,Missouri,29099,407,19 +2020-06-09,Jefferson,Missouri,29099,411,20 +2020-06-10,Jefferson,Missouri,29099,411,20 +2020-06-11,Jefferson,Missouri,29099,427,20 +2020-06-12,Jefferson,Missouri,29099,428,20 +2020-06-13,Jefferson,Missouri,29099,428,20 +2020-06-14,Jefferson,Missouri,29099,428,20 +2020-06-15,Jefferson,Missouri,29099,432,20 +2020-06-16,Jefferson,Missouri,29099,439,20 +2020-06-17,Jefferson,Missouri,29099,445,20 +2020-06-18,Jefferson,Missouri,29099,456,20 +2020-06-19,Jefferson,Missouri,29099,461,20 +2020-06-20,Jefferson,Missouri,29099,461,20 +2020-06-21,Jefferson,Missouri,29099,461,20 +2020-06-22,Jefferson,Missouri,29099,465,21 +2020-06-23,Jefferson,Missouri,29099,473,21 +2020-06-24,Jefferson,Missouri,29099,501,21 +2020-06-25,Jefferson,Missouri,29099,506,21 +2020-06-26,Jefferson,Missouri,29099,519,21 +2020-06-27,Jefferson,Missouri,29099,519,21 +2020-06-28,Jefferson,Missouri,29099,519,21 +2020-06-29,Jefferson,Missouri,29099,535,21 +2020-06-30,Jefferson,Missouri,29099,539,21 +2020-07-01,Jefferson,Missouri,29099,540,23 +2020-07-02,Jefferson,Missouri,29099,551,23 +2020-07-03,Jefferson,Missouri,29099,551,23 +2020-07-04,Jefferson,Missouri,29099,551,23 +2020-07-05,Jefferson,Missouri,29099,551,23 +2020-07-06,Jefferson,Missouri,29099,582,23 +2020-07-07,Jefferson,Missouri,29099,604,23 +2020-07-08,Jefferson,Missouri,29099,631,23 +2020-07-09,Jefferson,Missouri,29099,666,23 +2020-03-21,Johnson,Missouri,29101,1,0 +2020-03-22,Johnson,Missouri,29101,1,0 +2020-03-23,Johnson,Missouri,29101,1,0 +2020-03-24,Johnson,Missouri,29101,1,0 +2020-03-25,Johnson,Missouri,29101,2,0 +2020-03-26,Johnson,Missouri,29101,8,0 +2020-03-27,Johnson,Missouri,29101,8,0 +2020-03-28,Johnson,Missouri,29101,9,0 +2020-03-29,Johnson,Missouri,29101,9,0 +2020-03-30,Johnson,Missouri,29101,9,0 +2020-03-31,Johnson,Missouri,29101,10,0 +2020-04-01,Johnson,Missouri,29101,14,0 +2020-04-02,Johnson,Missouri,29101,26,0 +2020-04-03,Johnson,Missouri,29101,28,0 +2020-04-04,Johnson,Missouri,29101,29,0 +2020-04-05,Johnson,Missouri,29101,29,0 +2020-04-06,Johnson,Missouri,29101,32,0 +2020-04-07,Johnson,Missouri,29101,33,0 +2020-04-08,Johnson,Missouri,29101,35,0 +2020-04-09,Johnson,Missouri,29101,36,0 +2020-04-10,Johnson,Missouri,29101,36,0 +2020-04-11,Johnson,Missouri,29101,37,0 +2020-04-12,Johnson,Missouri,29101,37,0 +2020-04-13,Johnson,Missouri,29101,39,0 +2020-04-14,Johnson,Missouri,29101,40,0 +2020-04-15,Johnson,Missouri,29101,41,0 +2020-04-16,Johnson,Missouri,29101,45,0 +2020-04-17,Johnson,Missouri,29101,48,0 +2020-04-18,Johnson,Missouri,29101,48,0 +2020-04-19,Johnson,Missouri,29101,48,0 +2020-04-20,Johnson,Missouri,29101,50,0 +2020-04-21,Johnson,Missouri,29101,52,0 +2020-04-22,Johnson,Missouri,29101,52,0 +2020-04-23,Johnson,Missouri,29101,52,0 +2020-04-24,Johnson,Missouri,29101,53,0 +2020-04-25,Johnson,Missouri,29101,53,0 +2020-04-26,Johnson,Missouri,29101,53,0 +2020-04-27,Johnson,Missouri,29101,54,0 +2020-04-28,Johnson,Missouri,29101,54,0 +2020-04-29,Johnson,Missouri,29101,54,0 +2020-04-30,Johnson,Missouri,29101,54,0 +2020-05-01,Johnson,Missouri,29101,55,0 +2020-05-02,Johnson,Missouri,29101,57,0 +2020-05-03,Johnson,Missouri,29101,59,0 +2020-05-04,Johnson,Missouri,29101,59,0 +2020-05-05,Johnson,Missouri,29101,60,0 +2020-05-06,Johnson,Missouri,29101,60,0 +2020-05-07,Johnson,Missouri,29101,62,0 +2020-05-08,Johnson,Missouri,29101,62,0 +2020-05-09,Johnson,Missouri,29101,62,0 +2020-05-10,Johnson,Missouri,29101,63,0 +2020-05-11,Johnson,Missouri,29101,63,0 +2020-05-12,Johnson,Missouri,29101,65,0 +2020-05-13,Johnson,Missouri,29101,65,0 +2020-05-14,Johnson,Missouri,29101,69,0 +2020-05-15,Johnson,Missouri,29101,71,0 +2020-05-16,Johnson,Missouri,29101,71,0 +2020-05-17,Johnson,Missouri,29101,71,0 +2020-05-18,Johnson,Missouri,29101,72,0 +2020-05-19,Johnson,Missouri,29101,72,0 +2020-05-20,Johnson,Missouri,29101,72,0 +2020-05-21,Johnson,Missouri,29101,72,0 +2020-05-22,Johnson,Missouri,29101,71,0 +2020-05-23,Johnson,Missouri,29101,72,0 +2020-05-24,Johnson,Missouri,29101,72,0 +2020-05-25,Johnson,Missouri,29101,73,0 +2020-05-26,Johnson,Missouri,29101,73,0 +2020-05-27,Johnson,Missouri,29101,73,0 +2020-05-28,Johnson,Missouri,29101,74,0 +2020-05-29,Johnson,Missouri,29101,76,0 +2020-05-30,Johnson,Missouri,29101,76,0 +2020-05-31,Johnson,Missouri,29101,76,0 +2020-06-01,Johnson,Missouri,29101,76,0 +2020-06-02,Johnson,Missouri,29101,76,0 +2020-06-03,Johnson,Missouri,29101,77,0 +2020-06-04,Johnson,Missouri,29101,77,0 +2020-06-05,Johnson,Missouri,29101,77,0 +2020-06-06,Johnson,Missouri,29101,77,0 +2020-06-07,Johnson,Missouri,29101,77,0 +2020-06-08,Johnson,Missouri,29101,78,0 +2020-06-09,Johnson,Missouri,29101,78,0 +2020-06-10,Johnson,Missouri,29101,78,0 +2020-06-11,Johnson,Missouri,29101,79,0 +2020-06-12,Johnson,Missouri,29101,79,0 +2020-06-13,Johnson,Missouri,29101,80,0 +2020-06-14,Johnson,Missouri,29101,80,0 +2020-06-15,Johnson,Missouri,29101,80,0 +2020-06-16,Johnson,Missouri,29101,81,0 +2020-06-17,Johnson,Missouri,29101,84,0 +2020-06-18,Johnson,Missouri,29101,87,0 +2020-06-19,Johnson,Missouri,29101,90,0 +2020-06-20,Johnson,Missouri,29101,89,0 +2020-06-21,Johnson,Missouri,29101,89,0 +2020-06-22,Johnson,Missouri,29101,89,0 +2020-06-23,Johnson,Missouri,29101,91,0 +2020-06-24,Johnson,Missouri,29101,91,0 +2020-06-25,Johnson,Missouri,29101,100,0 +2020-06-26,Johnson,Missouri,29101,101,0 +2020-06-27,Johnson,Missouri,29101,112,0 +2020-06-28,Johnson,Missouri,29101,113,0 +2020-06-29,Johnson,Missouri,29101,120,0 +2020-06-30,Johnson,Missouri,29101,124,0 +2020-07-01,Johnson,Missouri,29101,124,0 +2020-07-02,Johnson,Missouri,29101,141,0 +2020-07-03,Johnson,Missouri,29101,151,0 +2020-07-04,Johnson,Missouri,29101,161,0 +2020-07-05,Johnson,Missouri,29101,162,0 +2020-07-06,Johnson,Missouri,29101,185,0 +2020-07-07,Johnson,Missouri,29101,197,0 +2020-07-08,Johnson,Missouri,29101,215,1 +2020-07-09,Johnson,Missouri,29101,215,1 +2020-06-10,Knox,Missouri,29103,2,0 +2020-06-11,Knox,Missouri,29103,2,0 +2020-06-12,Knox,Missouri,29103,2,0 +2020-06-13,Knox,Missouri,29103,2,0 +2020-06-14,Knox,Missouri,29103,2,0 +2020-06-15,Knox,Missouri,29103,2,0 +2020-06-16,Knox,Missouri,29103,2,0 +2020-06-17,Knox,Missouri,29103,2,0 +2020-06-18,Knox,Missouri,29103,2,0 +2020-06-19,Knox,Missouri,29103,2,0 +2020-06-20,Knox,Missouri,29103,2,0 +2020-06-21,Knox,Missouri,29103,2,0 +2020-06-22,Knox,Missouri,29103,2,0 +2020-06-23,Knox,Missouri,29103,2,0 +2020-06-24,Knox,Missouri,29103,2,0 +2020-06-25,Knox,Missouri,29103,2,0 +2020-06-26,Knox,Missouri,29103,2,0 +2020-06-27,Knox,Missouri,29103,2,0 +2020-06-28,Knox,Missouri,29103,2,0 +2020-06-29,Knox,Missouri,29103,2,0 +2020-06-30,Knox,Missouri,29103,2,0 +2020-07-01,Knox,Missouri,29103,2,0 +2020-07-02,Knox,Missouri,29103,2,0 +2020-07-03,Knox,Missouri,29103,2,0 +2020-07-04,Knox,Missouri,29103,2,0 +2020-07-05,Knox,Missouri,29103,2,0 +2020-07-06,Knox,Missouri,29103,2,0 +2020-07-07,Knox,Missouri,29103,2,0 +2020-07-08,Knox,Missouri,29103,2,0 +2020-07-09,Knox,Missouri,29103,2,0 +2020-05-09,Laclede,Missouri,29105,1,0 +2020-05-10,Laclede,Missouri,29105,2,0 +2020-05-11,Laclede,Missouri,29105,2,0 +2020-05-12,Laclede,Missouri,29105,3,0 +2020-05-13,Laclede,Missouri,29105,3,0 +2020-05-14,Laclede,Missouri,29105,3,0 +2020-05-15,Laclede,Missouri,29105,3,0 +2020-05-16,Laclede,Missouri,29105,3,0 +2020-05-17,Laclede,Missouri,29105,3,0 +2020-05-18,Laclede,Missouri,29105,3,0 +2020-05-19,Laclede,Missouri,29105,3,0 +2020-05-20,Laclede,Missouri,29105,3,0 +2020-05-21,Laclede,Missouri,29105,3,0 +2020-05-22,Laclede,Missouri,29105,3,0 +2020-05-23,Laclede,Missouri,29105,3,0 +2020-05-24,Laclede,Missouri,29105,3,0 +2020-05-25,Laclede,Missouri,29105,3,0 +2020-05-26,Laclede,Missouri,29105,3,0 +2020-05-27,Laclede,Missouri,29105,3,0 +2020-05-28,Laclede,Missouri,29105,3,0 +2020-05-29,Laclede,Missouri,29105,3,0 +2020-05-30,Laclede,Missouri,29105,3,0 +2020-05-31,Laclede,Missouri,29105,4,0 +2020-06-01,Laclede,Missouri,29105,5,0 +2020-06-02,Laclede,Missouri,29105,7,0 +2020-06-03,Laclede,Missouri,29105,7,0 +2020-06-04,Laclede,Missouri,29105,7,0 +2020-06-05,Laclede,Missouri,29105,7,0 +2020-06-06,Laclede,Missouri,29105,7,0 +2020-06-07,Laclede,Missouri,29105,7,0 +2020-06-08,Laclede,Missouri,29105,7,0 +2020-06-09,Laclede,Missouri,29105,7,0 +2020-06-10,Laclede,Missouri,29105,7,0 +2020-06-11,Laclede,Missouri,29105,8,0 +2020-06-12,Laclede,Missouri,29105,9,0 +2020-06-13,Laclede,Missouri,29105,9,0 +2020-06-14,Laclede,Missouri,29105,9,0 +2020-06-15,Laclede,Missouri,29105,9,0 +2020-06-16,Laclede,Missouri,29105,9,0 +2020-06-17,Laclede,Missouri,29105,10,0 +2020-06-18,Laclede,Missouri,29105,12,0 +2020-06-19,Laclede,Missouri,29105,12,0 +2020-06-20,Laclede,Missouri,29105,16,0 +2020-06-21,Laclede,Missouri,29105,16,0 +2020-06-22,Laclede,Missouri,29105,20,0 +2020-06-23,Laclede,Missouri,29105,19,0 +2020-06-24,Laclede,Missouri,29105,20,0 +2020-06-25,Laclede,Missouri,29105,23,0 +2020-06-26,Laclede,Missouri,29105,25,0 +2020-06-27,Laclede,Missouri,29105,25,0 +2020-06-28,Laclede,Missouri,29105,26,0 +2020-06-29,Laclede,Missouri,29105,26,0 +2020-06-30,Laclede,Missouri,29105,29,0 +2020-07-01,Laclede,Missouri,29105,30,0 +2020-07-02,Laclede,Missouri,29105,33,0 +2020-07-03,Laclede,Missouri,29105,33,0 +2020-07-04,Laclede,Missouri,29105,40,0 +2020-07-05,Laclede,Missouri,29105,40,0 +2020-07-06,Laclede,Missouri,29105,48,0 +2020-07-07,Laclede,Missouri,29105,57,0 +2020-07-08,Laclede,Missouri,29105,70,0 +2020-07-09,Laclede,Missouri,29105,76,0 +2020-03-23,Lafayette,Missouri,29107,1,0 +2020-03-24,Lafayette,Missouri,29107,1,0 +2020-03-25,Lafayette,Missouri,29107,2,0 +2020-03-26,Lafayette,Missouri,29107,2,0 +2020-03-27,Lafayette,Missouri,29107,4,0 +2020-03-28,Lafayette,Missouri,29107,4,0 +2020-03-29,Lafayette,Missouri,29107,4,0 +2020-03-30,Lafayette,Missouri,29107,17,1 +2020-03-31,Lafayette,Missouri,29107,19,1 +2020-04-01,Lafayette,Missouri,29107,20,1 +2020-04-02,Lafayette,Missouri,29107,20,1 +2020-04-03,Lafayette,Missouri,29107,20,1 +2020-04-04,Lafayette,Missouri,29107,26,1 +2020-04-05,Lafayette,Missouri,29107,27,1 +2020-04-06,Lafayette,Missouri,29107,28,1 +2020-04-07,Lafayette,Missouri,29107,28,1 +2020-04-08,Lafayette,Missouri,29107,27,1 +2020-04-09,Lafayette,Missouri,29107,26,1 +2020-04-10,Lafayette,Missouri,29107,28,1 +2020-04-11,Lafayette,Missouri,29107,27,1 +2020-04-12,Lafayette,Missouri,29107,27,1 +2020-04-13,Lafayette,Missouri,29107,27,1 +2020-04-14,Lafayette,Missouri,29107,28,1 +2020-04-15,Lafayette,Missouri,29107,29,1 +2020-04-16,Lafayette,Missouri,29107,29,1 +2020-04-17,Lafayette,Missouri,29107,29,1 +2020-04-18,Lafayette,Missouri,29107,29,1 +2020-04-19,Lafayette,Missouri,29107,30,1 +2020-04-20,Lafayette,Missouri,29107,30,1 +2020-04-21,Lafayette,Missouri,29107,30,1 +2020-04-22,Lafayette,Missouri,29107,30,1 +2020-04-23,Lafayette,Missouri,29107,33,1 +2020-04-24,Lafayette,Missouri,29107,32,1 +2020-04-25,Lafayette,Missouri,29107,33,1 +2020-04-26,Lafayette,Missouri,29107,35,1 +2020-04-27,Lafayette,Missouri,29107,35,1 +2020-04-28,Lafayette,Missouri,29107,34,1 +2020-04-29,Lafayette,Missouri,29107,36,1 +2020-04-30,Lafayette,Missouri,29107,37,1 +2020-05-01,Lafayette,Missouri,29107,38,1 +2020-05-02,Lafayette,Missouri,29107,39,1 +2020-05-03,Lafayette,Missouri,29107,42,1 +2020-05-04,Lafayette,Missouri,29107,45,1 +2020-05-05,Lafayette,Missouri,29107,47,1 +2020-05-06,Lafayette,Missouri,29107,50,1 +2020-05-07,Lafayette,Missouri,29107,58,1 +2020-05-08,Lafayette,Missouri,29107,59,1 +2020-05-09,Lafayette,Missouri,29107,59,1 +2020-05-10,Lafayette,Missouri,29107,62,1 +2020-05-11,Lafayette,Missouri,29107,62,1 +2020-05-12,Lafayette,Missouri,29107,62,1 +2020-05-13,Lafayette,Missouri,29107,65,1 +2020-05-14,Lafayette,Missouri,29107,67,1 +2020-05-15,Lafayette,Missouri,29107,68,1 +2020-05-16,Lafayette,Missouri,29107,68,1 +2020-05-17,Lafayette,Missouri,29107,67,1 +2020-05-18,Lafayette,Missouri,29107,68,1 +2020-05-19,Lafayette,Missouri,29107,68,1 +2020-05-20,Lafayette,Missouri,29107,69,1 +2020-05-21,Lafayette,Missouri,29107,69,2 +2020-05-22,Lafayette,Missouri,29107,69,2 +2020-05-23,Lafayette,Missouri,29107,69,2 +2020-05-24,Lafayette,Missouri,29107,69,2 +2020-05-25,Lafayette,Missouri,29107,70,2 +2020-05-26,Lafayette,Missouri,29107,71,2 +2020-05-27,Lafayette,Missouri,29107,72,2 +2020-05-28,Lafayette,Missouri,29107,73,2 +2020-05-29,Lafayette,Missouri,29107,73,2 +2020-05-30,Lafayette,Missouri,29107,73,2 +2020-05-31,Lafayette,Missouri,29107,74,2 +2020-06-01,Lafayette,Missouri,29107,74,2 +2020-06-02,Lafayette,Missouri,29107,75,2 +2020-06-03,Lafayette,Missouri,29107,76,2 +2020-06-04,Lafayette,Missouri,29107,80,2 +2020-06-05,Lafayette,Missouri,29107,80,2 +2020-06-06,Lafayette,Missouri,29107,81,2 +2020-06-07,Lafayette,Missouri,29107,81,2 +2020-06-08,Lafayette,Missouri,29107,81,2 +2020-06-09,Lafayette,Missouri,29107,83,2 +2020-06-10,Lafayette,Missouri,29107,83,2 +2020-06-11,Lafayette,Missouri,29107,83,2 +2020-06-12,Lafayette,Missouri,29107,84,2 +2020-06-13,Lafayette,Missouri,29107,85,2 +2020-06-14,Lafayette,Missouri,29107,85,2 +2020-06-15,Lafayette,Missouri,29107,85,2 +2020-06-16,Lafayette,Missouri,29107,85,2 +2020-06-17,Lafayette,Missouri,29107,86,2 +2020-06-18,Lafayette,Missouri,29107,86,2 +2020-06-19,Lafayette,Missouri,29107,86,2 +2020-06-20,Lafayette,Missouri,29107,86,2 +2020-06-21,Lafayette,Missouri,29107,86,2 +2020-06-22,Lafayette,Missouri,29107,86,2 +2020-06-23,Lafayette,Missouri,29107,86,2 +2020-06-24,Lafayette,Missouri,29107,86,2 +2020-06-25,Lafayette,Missouri,29107,87,2 +2020-06-26,Lafayette,Missouri,29107,87,2 +2020-06-27,Lafayette,Missouri,29107,87,2 +2020-06-28,Lafayette,Missouri,29107,88,2 +2020-06-29,Lafayette,Missouri,29107,88,2 +2020-06-30,Lafayette,Missouri,29107,88,2 +2020-07-01,Lafayette,Missouri,29107,91,2 +2020-07-02,Lafayette,Missouri,29107,91,2 +2020-07-03,Lafayette,Missouri,29107,92,2 +2020-07-04,Lafayette,Missouri,29107,92,2 +2020-07-05,Lafayette,Missouri,29107,93,2 +2020-07-06,Lafayette,Missouri,29107,93,2 +2020-07-07,Lafayette,Missouri,29107,94,2 +2020-07-08,Lafayette,Missouri,29107,97,2 +2020-07-09,Lafayette,Missouri,29107,100,2 +2020-05-03,Lawrence,Missouri,29109,1,0 +2020-05-04,Lawrence,Missouri,29109,1,0 +2020-05-05,Lawrence,Missouri,29109,1,0 +2020-05-06,Lawrence,Missouri,29109,1,0 +2020-05-07,Lawrence,Missouri,29109,2,0 +2020-05-08,Lawrence,Missouri,29109,7,0 +2020-05-09,Lawrence,Missouri,29109,7,0 +2020-05-10,Lawrence,Missouri,29109,7,0 +2020-05-11,Lawrence,Missouri,29109,7,0 +2020-05-12,Lawrence,Missouri,29109,7,0 +2020-05-13,Lawrence,Missouri,29109,7,0 +2020-05-14,Lawrence,Missouri,29109,7,0 +2020-05-15,Lawrence,Missouri,29109,7,0 +2020-05-16,Lawrence,Missouri,29109,7,0 +2020-05-17,Lawrence,Missouri,29109,7,0 +2020-05-18,Lawrence,Missouri,29109,7,0 +2020-05-19,Lawrence,Missouri,29109,8,0 +2020-05-20,Lawrence,Missouri,29109,7,0 +2020-05-21,Lawrence,Missouri,29109,7,0 +2020-05-22,Lawrence,Missouri,29109,7,0 +2020-05-23,Lawrence,Missouri,29109,7,0 +2020-05-24,Lawrence,Missouri,29109,7,0 +2020-05-25,Lawrence,Missouri,29109,7,0 +2020-05-26,Lawrence,Missouri,29109,7,0 +2020-05-27,Lawrence,Missouri,29109,7,0 +2020-05-28,Lawrence,Missouri,29109,7,0 +2020-05-29,Lawrence,Missouri,29109,7,0 +2020-05-30,Lawrence,Missouri,29109,7,0 +2020-05-31,Lawrence,Missouri,29109,7,0 +2020-06-01,Lawrence,Missouri,29109,7,0 +2020-06-02,Lawrence,Missouri,29109,7,0 +2020-06-03,Lawrence,Missouri,29109,7,0 +2020-06-04,Lawrence,Missouri,29109,7,0 +2020-06-05,Lawrence,Missouri,29109,7,0 +2020-06-06,Lawrence,Missouri,29109,7,0 +2020-06-07,Lawrence,Missouri,29109,7,0 +2020-06-08,Lawrence,Missouri,29109,7,0 +2020-06-09,Lawrence,Missouri,29109,7,0 +2020-06-10,Lawrence,Missouri,29109,7,0 +2020-06-11,Lawrence,Missouri,29109,7,0 +2020-06-12,Lawrence,Missouri,29109,7,0 +2020-06-13,Lawrence,Missouri,29109,7,0 +2020-06-14,Lawrence,Missouri,29109,7,0 +2020-06-15,Lawrence,Missouri,29109,7,0 +2020-06-16,Lawrence,Missouri,29109,8,0 +2020-06-17,Lawrence,Missouri,29109,8,0 +2020-06-18,Lawrence,Missouri,29109,10,0 +2020-06-19,Lawrence,Missouri,29109,11,0 +2020-06-20,Lawrence,Missouri,29109,11,0 +2020-06-21,Lawrence,Missouri,29109,13,0 +2020-06-22,Lawrence,Missouri,29109,13,0 +2020-06-23,Lawrence,Missouri,29109,19,0 +2020-06-24,Lawrence,Missouri,29109,20,0 +2020-06-25,Lawrence,Missouri,29109,20,0 +2020-06-26,Lawrence,Missouri,29109,28,0 +2020-06-27,Lawrence,Missouri,29109,30,0 +2020-06-28,Lawrence,Missouri,29109,31,1 +2020-06-29,Lawrence,Missouri,29109,32,1 +2020-06-30,Lawrence,Missouri,29109,34,1 +2020-07-01,Lawrence,Missouri,29109,37,1 +2020-07-02,Lawrence,Missouri,29109,37,1 +2020-07-03,Lawrence,Missouri,29109,41,1 +2020-07-04,Lawrence,Missouri,29109,41,1 +2020-07-05,Lawrence,Missouri,29109,45,1 +2020-07-06,Lawrence,Missouri,29109,46,1 +2020-07-07,Lawrence,Missouri,29109,48,1 +2020-07-08,Lawrence,Missouri,29109,52,1 +2020-07-09,Lawrence,Missouri,29109,53,1 +2020-04-18,Lewis,Missouri,29111,1,0 +2020-04-19,Lewis,Missouri,29111,1,0 +2020-04-20,Lewis,Missouri,29111,1,0 +2020-04-21,Lewis,Missouri,29111,1,0 +2020-04-22,Lewis,Missouri,29111,1,1 +2020-04-23,Lewis,Missouri,29111,6,1 +2020-04-24,Lewis,Missouri,29111,6,1 +2020-04-25,Lewis,Missouri,29111,6,1 +2020-04-26,Lewis,Missouri,29111,6,1 +2020-04-27,Lewis,Missouri,29111,6,1 +2020-04-28,Lewis,Missouri,29111,6,1 +2020-04-29,Lewis,Missouri,29111,6,1 +2020-04-30,Lewis,Missouri,29111,6,1 +2020-05-01,Lewis,Missouri,29111,6,1 +2020-05-02,Lewis,Missouri,29111,6,1 +2020-05-03,Lewis,Missouri,29111,6,1 +2020-05-04,Lewis,Missouri,29111,6,1 +2020-05-05,Lewis,Missouri,29111,6,1 +2020-05-06,Lewis,Missouri,29111,6,1 +2020-05-07,Lewis,Missouri,29111,6,1 +2020-05-08,Lewis,Missouri,29111,6,1 +2020-05-09,Lewis,Missouri,29111,6,1 +2020-05-10,Lewis,Missouri,29111,6,1 +2020-05-11,Lewis,Missouri,29111,6,1 +2020-05-12,Lewis,Missouri,29111,6,1 +2020-05-13,Lewis,Missouri,29111,6,1 +2020-05-14,Lewis,Missouri,29111,6,1 +2020-05-15,Lewis,Missouri,29111,7,1 +2020-05-16,Lewis,Missouri,29111,7,1 +2020-05-17,Lewis,Missouri,29111,7,1 +2020-05-18,Lewis,Missouri,29111,7,1 +2020-05-19,Lewis,Missouri,29111,7,1 +2020-05-20,Lewis,Missouri,29111,7,1 +2020-05-21,Lewis,Missouri,29111,7,1 +2020-05-22,Lewis,Missouri,29111,7,1 +2020-05-23,Lewis,Missouri,29111,7,1 +2020-05-24,Lewis,Missouri,29111,7,1 +2020-05-25,Lewis,Missouri,29111,7,1 +2020-05-26,Lewis,Missouri,29111,7,1 +2020-05-27,Lewis,Missouri,29111,7,1 +2020-05-28,Lewis,Missouri,29111,7,1 +2020-05-29,Lewis,Missouri,29111,7,1 +2020-05-30,Lewis,Missouri,29111,7,1 +2020-05-31,Lewis,Missouri,29111,7,1 +2020-06-01,Lewis,Missouri,29111,7,1 +2020-06-02,Lewis,Missouri,29111,7,1 +2020-06-03,Lewis,Missouri,29111,7,1 +2020-06-04,Lewis,Missouri,29111,7,1 +2020-06-05,Lewis,Missouri,29111,7,1 +2020-06-06,Lewis,Missouri,29111,7,1 +2020-06-07,Lewis,Missouri,29111,7,1 +2020-06-08,Lewis,Missouri,29111,7,1 +2020-06-09,Lewis,Missouri,29111,7,1 +2020-06-10,Lewis,Missouri,29111,7,1 +2020-06-11,Lewis,Missouri,29111,7,1 +2020-06-12,Lewis,Missouri,29111,7,1 +2020-06-13,Lewis,Missouri,29111,7,1 +2020-06-14,Lewis,Missouri,29111,7,1 +2020-06-15,Lewis,Missouri,29111,7,1 +2020-06-16,Lewis,Missouri,29111,7,1 +2020-06-17,Lewis,Missouri,29111,7,1 +2020-06-18,Lewis,Missouri,29111,7,1 +2020-06-19,Lewis,Missouri,29111,7,1 +2020-06-20,Lewis,Missouri,29111,7,1 +2020-06-21,Lewis,Missouri,29111,7,1 +2020-06-22,Lewis,Missouri,29111,7,1 +2020-06-23,Lewis,Missouri,29111,7,1 +2020-06-24,Lewis,Missouri,29111,7,1 +2020-06-25,Lewis,Missouri,29111,7,1 +2020-06-26,Lewis,Missouri,29111,7,1 +2020-06-27,Lewis,Missouri,29111,7,1 +2020-06-28,Lewis,Missouri,29111,7,1 +2020-06-29,Lewis,Missouri,29111,7,1 +2020-06-30,Lewis,Missouri,29111,7,1 +2020-07-01,Lewis,Missouri,29111,7,1 +2020-07-02,Lewis,Missouri,29111,7,1 +2020-07-03,Lewis,Missouri,29111,7,1 +2020-07-04,Lewis,Missouri,29111,7,1 +2020-07-05,Lewis,Missouri,29111,8,1 +2020-07-06,Lewis,Missouri,29111,8,1 +2020-07-07,Lewis,Missouri,29111,8,1 +2020-07-08,Lewis,Missouri,29111,8,1 +2020-07-09,Lewis,Missouri,29111,8,1 +2020-03-27,Lincoln,Missouri,29113,2,0 +2020-03-28,Lincoln,Missouri,29113,2,0 +2020-03-29,Lincoln,Missouri,29113,2,0 +2020-03-30,Lincoln,Missouri,29113,5,0 +2020-03-31,Lincoln,Missouri,29113,7,0 +2020-04-01,Lincoln,Missouri,29113,10,0 +2020-04-02,Lincoln,Missouri,29113,12,0 +2020-04-03,Lincoln,Missouri,29113,16,0 +2020-04-04,Lincoln,Missouri,29113,16,0 +2020-04-05,Lincoln,Missouri,29113,17,0 +2020-04-06,Lincoln,Missouri,29113,18,0 +2020-04-07,Lincoln,Missouri,29113,21,0 +2020-04-08,Lincoln,Missouri,29113,25,1 +2020-04-09,Lincoln,Missouri,29113,25,1 +2020-04-10,Lincoln,Missouri,29113,25,1 +2020-04-11,Lincoln,Missouri,29113,26,1 +2020-04-12,Lincoln,Missouri,29113,26,1 +2020-04-13,Lincoln,Missouri,29113,26,1 +2020-04-14,Lincoln,Missouri,29113,27,1 +2020-04-15,Lincoln,Missouri,29113,28,1 +2020-04-16,Lincoln,Missouri,29113,29,1 +2020-04-17,Lincoln,Missouri,29113,30,1 +2020-04-18,Lincoln,Missouri,29113,31,1 +2020-04-19,Lincoln,Missouri,29113,31,1 +2020-04-20,Lincoln,Missouri,29113,33,1 +2020-04-21,Lincoln,Missouri,29113,34,1 +2020-04-22,Lincoln,Missouri,29113,37,1 +2020-04-23,Lincoln,Missouri,29113,35,1 +2020-04-24,Lincoln,Missouri,29113,36,1 +2020-04-25,Lincoln,Missouri,29113,43,1 +2020-04-26,Lincoln,Missouri,29113,43,1 +2020-04-27,Lincoln,Missouri,29113,45,1 +2020-04-28,Lincoln,Missouri,29113,46,1 +2020-04-29,Lincoln,Missouri,29113,46,1 +2020-04-30,Lincoln,Missouri,29113,46,1 +2020-05-01,Lincoln,Missouri,29113,46,1 +2020-05-02,Lincoln,Missouri,29113,48,1 +2020-05-03,Lincoln,Missouri,29113,48,1 +2020-05-04,Lincoln,Missouri,29113,51,1 +2020-05-05,Lincoln,Missouri,29113,49,1 +2020-05-06,Lincoln,Missouri,29113,51,1 +2020-05-07,Lincoln,Missouri,29113,51,1 +2020-05-08,Lincoln,Missouri,29113,54,1 +2020-05-09,Lincoln,Missouri,29113,75,1 +2020-05-10,Lincoln,Missouri,29113,76,1 +2020-05-11,Lincoln,Missouri,29113,77,1 +2020-05-12,Lincoln,Missouri,29113,76,1 +2020-05-13,Lincoln,Missouri,29113,76,1 +2020-05-14,Lincoln,Missouri,29113,76,1 +2020-05-15,Lincoln,Missouri,29113,77,1 +2020-05-16,Lincoln,Missouri,29113,78,1 +2020-05-17,Lincoln,Missouri,29113,78,1 +2020-05-18,Lincoln,Missouri,29113,78,1 +2020-05-19,Lincoln,Missouri,29113,78,1 +2020-05-20,Lincoln,Missouri,29113,78,1 +2020-05-21,Lincoln,Missouri,29113,78,1 +2020-05-22,Lincoln,Missouri,29113,78,1 +2020-05-23,Lincoln,Missouri,29113,79,1 +2020-05-24,Lincoln,Missouri,29113,79,1 +2020-05-25,Lincoln,Missouri,29113,80,1 +2020-05-26,Lincoln,Missouri,29113,81,1 +2020-05-27,Lincoln,Missouri,29113,81,1 +2020-05-28,Lincoln,Missouri,29113,81,1 +2020-05-29,Lincoln,Missouri,29113,81,1 +2020-05-30,Lincoln,Missouri,29113,81,1 +2020-05-31,Lincoln,Missouri,29113,82,1 +2020-06-01,Lincoln,Missouri,29113,84,1 +2020-06-02,Lincoln,Missouri,29113,85,1 +2020-06-03,Lincoln,Missouri,29113,84,1 +2020-06-04,Lincoln,Missouri,29113,85,1 +2020-06-05,Lincoln,Missouri,29113,86,1 +2020-06-06,Lincoln,Missouri,29113,86,1 +2020-06-07,Lincoln,Missouri,29113,87,1 +2020-06-08,Lincoln,Missouri,29113,87,1 +2020-06-09,Lincoln,Missouri,29113,87,1 +2020-06-10,Lincoln,Missouri,29113,87,1 +2020-06-11,Lincoln,Missouri,29113,87,1 +2020-06-12,Lincoln,Missouri,29113,88,1 +2020-06-13,Lincoln,Missouri,29113,87,1 +2020-06-14,Lincoln,Missouri,29113,87,1 +2020-06-15,Lincoln,Missouri,29113,87,1 +2020-06-16,Lincoln,Missouri,29113,87,1 +2020-06-17,Lincoln,Missouri,29113,90,1 +2020-06-18,Lincoln,Missouri,29113,91,1 +2020-06-19,Lincoln,Missouri,29113,91,1 +2020-06-20,Lincoln,Missouri,29113,91,1 +2020-06-21,Lincoln,Missouri,29113,91,1 +2020-06-22,Lincoln,Missouri,29113,92,1 +2020-06-23,Lincoln,Missouri,29113,94,1 +2020-06-24,Lincoln,Missouri,29113,95,1 +2020-06-25,Lincoln,Missouri,29113,96,1 +2020-06-26,Lincoln,Missouri,29113,95,1 +2020-06-27,Lincoln,Missouri,29113,96,1 +2020-06-28,Lincoln,Missouri,29113,96,1 +2020-06-29,Lincoln,Missouri,29113,97,1 +2020-06-30,Lincoln,Missouri,29113,96,1 +2020-07-01,Lincoln,Missouri,29113,96,1 +2020-07-02,Lincoln,Missouri,29113,99,1 +2020-07-03,Lincoln,Missouri,29113,98,1 +2020-07-04,Lincoln,Missouri,29113,98,1 +2020-07-05,Lincoln,Missouri,29113,98,1 +2020-07-06,Lincoln,Missouri,29113,102,1 +2020-07-07,Lincoln,Missouri,29113,105,1 +2020-07-08,Lincoln,Missouri,29113,106,1 +2020-07-09,Lincoln,Missouri,29113,110,1 +2020-04-03,Linn,Missouri,29115,1,0 +2020-04-04,Linn,Missouri,29115,1,0 +2020-04-05,Linn,Missouri,29115,1,0 +2020-04-06,Linn,Missouri,29115,2,0 +2020-04-07,Linn,Missouri,29115,3,0 +2020-04-08,Linn,Missouri,29115,3,0 +2020-04-09,Linn,Missouri,29115,3,0 +2020-04-10,Linn,Missouri,29115,3,0 +2020-04-11,Linn,Missouri,29115,3,0 +2020-04-12,Linn,Missouri,29115,3,0 +2020-04-13,Linn,Missouri,29115,4,1 +2020-04-14,Linn,Missouri,29115,5,1 +2020-04-15,Linn,Missouri,29115,5,1 +2020-04-16,Linn,Missouri,29115,5,1 +2020-04-17,Linn,Missouri,29115,5,1 +2020-04-18,Linn,Missouri,29115,5,1 +2020-04-19,Linn,Missouri,29115,5,1 +2020-04-20,Linn,Missouri,29115,5,1 +2020-04-21,Linn,Missouri,29115,5,1 +2020-04-22,Linn,Missouri,29115,5,1 +2020-04-23,Linn,Missouri,29115,5,1 +2020-04-24,Linn,Missouri,29115,5,1 +2020-04-25,Linn,Missouri,29115,5,1 +2020-04-26,Linn,Missouri,29115,5,1 +2020-04-27,Linn,Missouri,29115,5,1 +2020-04-28,Linn,Missouri,29115,5,1 +2020-04-29,Linn,Missouri,29115,5,1 +2020-04-30,Linn,Missouri,29115,5,1 +2020-05-01,Linn,Missouri,29115,5,1 +2020-05-02,Linn,Missouri,29115,5,1 +2020-05-03,Linn,Missouri,29115,5,1 +2020-05-04,Linn,Missouri,29115,5,1 +2020-05-05,Linn,Missouri,29115,5,1 +2020-05-06,Linn,Missouri,29115,5,1 +2020-05-07,Linn,Missouri,29115,5,1 +2020-05-08,Linn,Missouri,29115,5,1 +2020-05-09,Linn,Missouri,29115,5,1 +2020-05-10,Linn,Missouri,29115,5,1 +2020-05-11,Linn,Missouri,29115,5,1 +2020-05-12,Linn,Missouri,29115,5,1 +2020-05-13,Linn,Missouri,29115,5,1 +2020-05-14,Linn,Missouri,29115,5,1 +2020-05-15,Linn,Missouri,29115,5,1 +2020-05-16,Linn,Missouri,29115,5,1 +2020-05-17,Linn,Missouri,29115,5,1 +2020-05-18,Linn,Missouri,29115,5,1 +2020-05-19,Linn,Missouri,29115,5,1 +2020-05-20,Linn,Missouri,29115,5,1 +2020-05-21,Linn,Missouri,29115,5,1 +2020-05-22,Linn,Missouri,29115,5,1 +2020-05-23,Linn,Missouri,29115,5,1 +2020-05-24,Linn,Missouri,29115,6,1 +2020-05-25,Linn,Missouri,29115,6,1 +2020-05-26,Linn,Missouri,29115,6,1 +2020-05-27,Linn,Missouri,29115,6,1 +2020-05-28,Linn,Missouri,29115,6,1 +2020-05-29,Linn,Missouri,29115,6,1 +2020-05-30,Linn,Missouri,29115,9,1 +2020-05-31,Linn,Missouri,29115,9,1 +2020-06-01,Linn,Missouri,29115,9,1 +2020-06-02,Linn,Missouri,29115,9,1 +2020-06-03,Linn,Missouri,29115,10,1 +2020-06-04,Linn,Missouri,29115,10,1 +2020-06-05,Linn,Missouri,29115,10,1 +2020-06-06,Linn,Missouri,29115,10,1 +2020-06-07,Linn,Missouri,29115,10,1 +2020-06-08,Linn,Missouri,29115,10,1 +2020-06-09,Linn,Missouri,29115,10,1 +2020-06-10,Linn,Missouri,29115,11,1 +2020-06-11,Linn,Missouri,29115,11,1 +2020-06-12,Linn,Missouri,29115,11,1 +2020-06-13,Linn,Missouri,29115,11,1 +2020-06-14,Linn,Missouri,29115,11,1 +2020-06-15,Linn,Missouri,29115,11,1 +2020-06-16,Linn,Missouri,29115,11,1 +2020-06-17,Linn,Missouri,29115,12,1 +2020-06-18,Linn,Missouri,29115,13,1 +2020-06-19,Linn,Missouri,29115,13,1 +2020-06-20,Linn,Missouri,29115,13,1 +2020-06-21,Linn,Missouri,29115,13,1 +2020-06-22,Linn,Missouri,29115,13,1 +2020-06-23,Linn,Missouri,29115,14,1 +2020-06-24,Linn,Missouri,29115,14,1 +2020-06-25,Linn,Missouri,29115,14,1 +2020-06-26,Linn,Missouri,29115,14,1 +2020-06-27,Linn,Missouri,29115,15,1 +2020-06-28,Linn,Missouri,29115,16,1 +2020-06-29,Linn,Missouri,29115,16,1 +2020-06-30,Linn,Missouri,29115,16,1 +2020-07-01,Linn,Missouri,29115,16,1 +2020-07-02,Linn,Missouri,29115,16,1 +2020-07-03,Linn,Missouri,29115,17,1 +2020-07-04,Linn,Missouri,29115,18,1 +2020-07-05,Linn,Missouri,29115,18,1 +2020-07-06,Linn,Missouri,29115,18,1 +2020-07-07,Linn,Missouri,29115,19,1 +2020-07-08,Linn,Missouri,29115,19,1 +2020-07-09,Linn,Missouri,29115,20,1 +2020-03-30,Livingston,Missouri,29117,1,0 +2020-03-31,Livingston,Missouri,29117,1,0 +2020-04-01,Livingston,Missouri,29117,1,0 +2020-04-02,Livingston,Missouri,29117,1,0 +2020-04-03,Livingston,Missouri,29117,1,0 +2020-04-04,Livingston,Missouri,29117,1,0 +2020-04-05,Livingston,Missouri,29117,1,0 +2020-04-06,Livingston,Missouri,29117,1,0 +2020-04-07,Livingston,Missouri,29117,1,0 +2020-04-08,Livingston,Missouri,29117,1,0 +2020-04-09,Livingston,Missouri,29117,1,0 +2020-04-10,Livingston,Missouri,29117,1,0 +2020-04-11,Livingston,Missouri,29117,1,0 +2020-04-12,Livingston,Missouri,29117,1,0 +2020-04-13,Livingston,Missouri,29117,1,0 +2020-04-14,Livingston,Missouri,29117,2,0 +2020-04-15,Livingston,Missouri,29117,2,0 +2020-04-16,Livingston,Missouri,29117,2,0 +2020-04-17,Livingston,Missouri,29117,2,0 +2020-04-18,Livingston,Missouri,29117,2,0 +2020-04-19,Livingston,Missouri,29117,2,0 +2020-04-20,Livingston,Missouri,29117,2,0 +2020-04-21,Livingston,Missouri,29117,2,0 +2020-04-22,Livingston,Missouri,29117,2,0 +2020-04-23,Livingston,Missouri,29117,2,0 +2020-04-24,Livingston,Missouri,29117,2,0 +2020-04-25,Livingston,Missouri,29117,2,0 +2020-04-26,Livingston,Missouri,29117,2,0 +2020-04-27,Livingston,Missouri,29117,2,0 +2020-04-28,Livingston,Missouri,29117,2,0 +2020-04-29,Livingston,Missouri,29117,2,0 +2020-04-30,Livingston,Missouri,29117,2,0 +2020-05-01,Livingston,Missouri,29117,2,0 +2020-05-02,Livingston,Missouri,29117,2,0 +2020-05-03,Livingston,Missouri,29117,2,0 +2020-05-04,Livingston,Missouri,29117,2,0 +2020-05-05,Livingston,Missouri,29117,3,0 +2020-05-06,Livingston,Missouri,29117,4,0 +2020-05-07,Livingston,Missouri,29117,3,0 +2020-05-08,Livingston,Missouri,29117,3,0 +2020-05-09,Livingston,Missouri,29117,3,0 +2020-05-10,Livingston,Missouri,29117,3,0 +2020-05-11,Livingston,Missouri,29117,3,0 +2020-05-12,Livingston,Missouri,29117,3,0 +2020-05-13,Livingston,Missouri,29117,3,0 +2020-05-14,Livingston,Missouri,29117,3,0 +2020-05-15,Livingston,Missouri,29117,3,0 +2020-05-16,Livingston,Missouri,29117,3,0 +2020-05-17,Livingston,Missouri,29117,3,0 +2020-05-18,Livingston,Missouri,29117,3,0 +2020-05-19,Livingston,Missouri,29117,3,0 +2020-05-20,Livingston,Missouri,29117,3,0 +2020-05-21,Livingston,Missouri,29117,3,0 +2020-05-22,Livingston,Missouri,29117,3,0 +2020-05-23,Livingston,Missouri,29117,3,0 +2020-05-24,Livingston,Missouri,29117,3,0 +2020-05-25,Livingston,Missouri,29117,3,0 +2020-05-26,Livingston,Missouri,29117,3,0 +2020-05-27,Livingston,Missouri,29117,3,0 +2020-05-28,Livingston,Missouri,29117,3,0 +2020-05-29,Livingston,Missouri,29117,3,0 +2020-05-30,Livingston,Missouri,29117,3,0 +2020-05-31,Livingston,Missouri,29117,3,0 +2020-06-01,Livingston,Missouri,29117,3,0 +2020-06-02,Livingston,Missouri,29117,3,0 +2020-06-03,Livingston,Missouri,29117,3,0 +2020-06-04,Livingston,Missouri,29117,3,0 +2020-06-05,Livingston,Missouri,29117,4,0 +2020-06-06,Livingston,Missouri,29117,5,0 +2020-06-07,Livingston,Missouri,29117,5,0 +2020-06-08,Livingston,Missouri,29117,4,0 +2020-06-09,Livingston,Missouri,29117,4,0 +2020-06-10,Livingston,Missouri,29117,4,0 +2020-06-11,Livingston,Missouri,29117,4,0 +2020-06-12,Livingston,Missouri,29117,4,0 +2020-06-13,Livingston,Missouri,29117,7,0 +2020-06-14,Livingston,Missouri,29117,7,0 +2020-06-15,Livingston,Missouri,29117,6,0 +2020-06-16,Livingston,Missouri,29117,6,0 +2020-06-17,Livingston,Missouri,29117,6,0 +2020-06-18,Livingston,Missouri,29117,6,0 +2020-06-19,Livingston,Missouri,29117,6,0 +2020-06-20,Livingston,Missouri,29117,6,0 +2020-06-21,Livingston,Missouri,29117,7,0 +2020-06-22,Livingston,Missouri,29117,7,0 +2020-06-23,Livingston,Missouri,29117,7,0 +2020-06-24,Livingston,Missouri,29117,10,0 +2020-06-25,Livingston,Missouri,29117,10,0 +2020-06-26,Livingston,Missouri,29117,11,0 +2020-06-27,Livingston,Missouri,29117,11,0 +2020-06-28,Livingston,Missouri,29117,11,0 +2020-06-29,Livingston,Missouri,29117,12,0 +2020-06-30,Livingston,Missouri,29117,12,0 +2020-07-01,Livingston,Missouri,29117,13,0 +2020-07-02,Livingston,Missouri,29117,13,0 +2020-07-03,Livingston,Missouri,29117,15,0 +2020-07-04,Livingston,Missouri,29117,16,0 +2020-07-05,Livingston,Missouri,29117,16,0 +2020-07-06,Livingston,Missouri,29117,20,0 +2020-07-07,Livingston,Missouri,29117,21,0 +2020-07-08,Livingston,Missouri,29117,21,0 +2020-07-09,Livingston,Missouri,29117,24,0 +2020-03-25,McDonald,Missouri,29119,1,0 +2020-03-26,McDonald,Missouri,29119,1,0 +2020-03-27,McDonald,Missouri,29119,1,0 +2020-03-28,McDonald,Missouri,29119,1,0 +2020-03-29,McDonald,Missouri,29119,1,0 +2020-03-30,McDonald,Missouri,29119,2,0 +2020-03-31,McDonald,Missouri,29119,2,0 +2020-04-01,McDonald,Missouri,29119,2,0 +2020-04-02,McDonald,Missouri,29119,2,0 +2020-04-03,McDonald,Missouri,29119,2,0 +2020-04-04,McDonald,Missouri,29119,2,0 +2020-04-05,McDonald,Missouri,29119,3,0 +2020-04-06,McDonald,Missouri,29119,3,0 +2020-04-07,McDonald,Missouri,29119,3,0 +2020-04-08,McDonald,Missouri,29119,3,0 +2020-04-09,McDonald,Missouri,29119,4,0 +2020-04-10,McDonald,Missouri,29119,3,0 +2020-04-11,McDonald,Missouri,29119,3,0 +2020-04-12,McDonald,Missouri,29119,3,0 +2020-04-13,McDonald,Missouri,29119,4,0 +2020-04-14,McDonald,Missouri,29119,4,0 +2020-04-15,McDonald,Missouri,29119,4,0 +2020-04-16,McDonald,Missouri,29119,4,0 +2020-04-17,McDonald,Missouri,29119,4,0 +2020-04-18,McDonald,Missouri,29119,4,0 +2020-04-19,McDonald,Missouri,29119,4,0 +2020-04-20,McDonald,Missouri,29119,4,0 +2020-04-21,McDonald,Missouri,29119,4,0 +2020-04-22,McDonald,Missouri,29119,4,0 +2020-04-23,McDonald,Missouri,29119,5,0 +2020-04-24,McDonald,Missouri,29119,4,0 +2020-04-25,McDonald,Missouri,29119,4,0 +2020-04-26,McDonald,Missouri,29119,4,0 +2020-04-27,McDonald,Missouri,29119,4,0 +2020-04-28,McDonald,Missouri,29119,4,0 +2020-04-29,McDonald,Missouri,29119,4,0 +2020-04-30,McDonald,Missouri,29119,4,0 +2020-05-01,McDonald,Missouri,29119,4,0 +2020-05-02,McDonald,Missouri,29119,4,0 +2020-05-03,McDonald,Missouri,29119,4,0 +2020-05-04,McDonald,Missouri,29119,4,0 +2020-05-05,McDonald,Missouri,29119,4,0 +2020-05-06,McDonald,Missouri,29119,4,0 +2020-05-07,McDonald,Missouri,29119,4,0 +2020-05-08,McDonald,Missouri,29119,4,0 +2020-05-09,McDonald,Missouri,29119,4,0 +2020-05-10,McDonald,Missouri,29119,4,0 +2020-05-11,McDonald,Missouri,29119,5,0 +2020-05-12,McDonald,Missouri,29119,5,0 +2020-05-13,McDonald,Missouri,29119,5,0 +2020-05-14,McDonald,Missouri,29119,6,0 +2020-05-15,McDonald,Missouri,29119,7,0 +2020-05-16,McDonald,Missouri,29119,7,0 +2020-05-17,McDonald,Missouri,29119,7,0 +2020-05-18,McDonald,Missouri,29119,13,0 +2020-05-19,McDonald,Missouri,29119,14,0 +2020-05-20,McDonald,Missouri,29119,14,0 +2020-05-21,McDonald,Missouri,29119,14,0 +2020-05-22,McDonald,Missouri,29119,15,0 +2020-05-23,McDonald,Missouri,29119,15,0 +2020-05-24,McDonald,Missouri,29119,17,0 +2020-05-25,McDonald,Missouri,29119,17,0 +2020-05-26,McDonald,Missouri,29119,17,0 +2020-05-27,McDonald,Missouri,29119,18,0 +2020-05-28,McDonald,Missouri,29119,19,0 +2020-05-29,McDonald,Missouri,29119,20,0 +2020-05-30,McDonald,Missouri,29119,20,0 +2020-05-31,McDonald,Missouri,29119,20,0 +2020-06-01,McDonald,Missouri,29119,22,0 +2020-06-02,McDonald,Missouri,29119,22,0 +2020-06-03,McDonald,Missouri,29119,22,0 +2020-06-04,McDonald,Missouri,29119,22,0 +2020-06-05,McDonald,Missouri,29119,23,0 +2020-06-06,McDonald,Missouri,29119,25,0 +2020-06-07,McDonald,Missouri,29119,26,0 +2020-06-08,McDonald,Missouri,29119,29,0 +2020-06-09,McDonald,Missouri,29119,40,0 +2020-06-10,McDonald,Missouri,29119,42,0 +2020-06-11,McDonald,Missouri,29119,46,0 +2020-06-12,McDonald,Missouri,29119,63,0 +2020-06-13,McDonald,Missouri,29119,70,0 +2020-06-14,McDonald,Missouri,29119,70,0 +2020-06-15,McDonald,Missouri,29119,78,0 +2020-06-16,McDonald,Missouri,29119,98,0 +2020-06-17,McDonald,Missouri,29119,116,0 +2020-06-18,McDonald,Missouri,29119,124,0 +2020-06-19,McDonald,Missouri,29119,132,0 +2020-06-20,McDonald,Missouri,29119,170,0 +2020-06-21,McDonald,Missouri,29119,366,0 +2020-06-22,McDonald,Missouri,29119,371,0 +2020-06-23,McDonald,Missouri,29119,403,0 +2020-06-24,McDonald,Missouri,29119,422,1 +2020-06-25,McDonald,Missouri,29119,605,1 +2020-06-26,McDonald,Missouri,29119,640,1 +2020-06-27,McDonald,Missouri,29119,653,1 +2020-06-28,McDonald,Missouri,29119,670,1 +2020-06-29,McDonald,Missouri,29119,697,1 +2020-06-30,McDonald,Missouri,29119,712,1 +2020-07-01,McDonald,Missouri,29119,714,1 +2020-07-02,McDonald,Missouri,29119,714,1 +2020-07-03,McDonald,Missouri,29119,747,1 +2020-07-04,McDonald,Missouri,29119,749,1 +2020-07-05,McDonald,Missouri,29119,765,1 +2020-07-06,McDonald,Missouri,29119,798,1 +2020-07-07,McDonald,Missouri,29119,808,1 +2020-07-08,McDonald,Missouri,29119,817,1 +2020-07-09,McDonald,Missouri,29119,839,1 +2020-03-30,Macon,Missouri,29121,1,0 +2020-03-31,Macon,Missouri,29121,3,0 +2020-04-01,Macon,Missouri,29121,3,0 +2020-04-02,Macon,Missouri,29121,3,0 +2020-04-03,Macon,Missouri,29121,2,0 +2020-04-04,Macon,Missouri,29121,2,0 +2020-04-05,Macon,Missouri,29121,2,0 +2020-04-06,Macon,Missouri,29121,2,0 +2020-04-07,Macon,Missouri,29121,2,0 +2020-04-08,Macon,Missouri,29121,2,0 +2020-04-09,Macon,Missouri,29121,2,0 +2020-04-10,Macon,Missouri,29121,2,0 +2020-04-11,Macon,Missouri,29121,2,0 +2020-04-12,Macon,Missouri,29121,2,0 +2020-04-13,Macon,Missouri,29121,2,0 +2020-04-14,Macon,Missouri,29121,2,0 +2020-04-15,Macon,Missouri,29121,2,0 +2020-04-16,Macon,Missouri,29121,2,0 +2020-04-17,Macon,Missouri,29121,2,0 +2020-04-18,Macon,Missouri,29121,2,0 +2020-04-19,Macon,Missouri,29121,2,0 +2020-04-20,Macon,Missouri,29121,2,0 +2020-04-21,Macon,Missouri,29121,2,0 +2020-04-22,Macon,Missouri,29121,2,0 +2020-04-23,Macon,Missouri,29121,2,0 +2020-04-24,Macon,Missouri,29121,2,0 +2020-04-25,Macon,Missouri,29121,2,0 +2020-04-26,Macon,Missouri,29121,2,0 +2020-04-27,Macon,Missouri,29121,2,0 +2020-04-28,Macon,Missouri,29121,2,0 +2020-04-29,Macon,Missouri,29121,2,0 +2020-04-30,Macon,Missouri,29121,2,0 +2020-05-01,Macon,Missouri,29121,2,0 +2020-05-02,Macon,Missouri,29121,2,0 +2020-05-03,Macon,Missouri,29121,2,0 +2020-05-04,Macon,Missouri,29121,2,0 +2020-05-05,Macon,Missouri,29121,2,0 +2020-05-06,Macon,Missouri,29121,2,0 +2020-05-07,Macon,Missouri,29121,3,0 +2020-05-08,Macon,Missouri,29121,2,0 +2020-05-09,Macon,Missouri,29121,2,0 +2020-05-10,Macon,Missouri,29121,2,0 +2020-05-11,Macon,Missouri,29121,2,0 +2020-05-12,Macon,Missouri,29121,2,0 +2020-05-13,Macon,Missouri,29121,2,0 +2020-05-14,Macon,Missouri,29121,2,0 +2020-05-15,Macon,Missouri,29121,2,0 +2020-05-16,Macon,Missouri,29121,2,0 +2020-05-17,Macon,Missouri,29121,2,0 +2020-05-18,Macon,Missouri,29121,2,0 +2020-05-19,Macon,Missouri,29121,2,0 +2020-05-20,Macon,Missouri,29121,2,0 +2020-05-21,Macon,Missouri,29121,2,0 +2020-05-22,Macon,Missouri,29121,2,0 +2020-05-23,Macon,Missouri,29121,2,0 +2020-05-24,Macon,Missouri,29121,2,0 +2020-05-25,Macon,Missouri,29121,2,0 +2020-05-26,Macon,Missouri,29121,2,0 +2020-05-27,Macon,Missouri,29121,2,0 +2020-05-28,Macon,Missouri,29121,3,0 +2020-05-29,Macon,Missouri,29121,4,0 +2020-05-30,Macon,Missouri,29121,4,0 +2020-05-31,Macon,Missouri,29121,4,0 +2020-06-01,Macon,Missouri,29121,4,0 +2020-06-02,Macon,Missouri,29121,5,0 +2020-06-03,Macon,Missouri,29121,6,0 +2020-06-04,Macon,Missouri,29121,6,0 +2020-06-05,Macon,Missouri,29121,6,0 +2020-06-06,Macon,Missouri,29121,6,0 +2020-06-07,Macon,Missouri,29121,6,0 +2020-06-08,Macon,Missouri,29121,6,0 +2020-06-09,Macon,Missouri,29121,6,0 +2020-06-10,Macon,Missouri,29121,6,0 +2020-06-11,Macon,Missouri,29121,6,0 +2020-06-12,Macon,Missouri,29121,6,0 +2020-06-13,Macon,Missouri,29121,7,0 +2020-06-14,Macon,Missouri,29121,7,0 +2020-06-15,Macon,Missouri,29121,7,0 +2020-06-16,Macon,Missouri,29121,7,0 +2020-06-17,Macon,Missouri,29121,7,0 +2020-06-18,Macon,Missouri,29121,7,0 +2020-06-19,Macon,Missouri,29121,7,0 +2020-06-20,Macon,Missouri,29121,7,0 +2020-06-21,Macon,Missouri,29121,7,0 +2020-06-22,Macon,Missouri,29121,7,0 +2020-06-23,Macon,Missouri,29121,7,0 +2020-06-24,Macon,Missouri,29121,7,0 +2020-06-25,Macon,Missouri,29121,7,0 +2020-06-26,Macon,Missouri,29121,7,0 +2020-06-27,Macon,Missouri,29121,7,0 +2020-06-28,Macon,Missouri,29121,8,0 +2020-06-29,Macon,Missouri,29121,8,0 +2020-06-30,Macon,Missouri,29121,8,0 +2020-07-01,Macon,Missouri,29121,8,0 +2020-07-02,Macon,Missouri,29121,8,0 +2020-07-03,Macon,Missouri,29121,8,0 +2020-07-04,Macon,Missouri,29121,8,0 +2020-07-05,Macon,Missouri,29121,8,0 +2020-07-06,Macon,Missouri,29121,8,0 +2020-07-07,Macon,Missouri,29121,10,0 +2020-07-08,Macon,Missouri,29121,15,0 +2020-07-09,Macon,Missouri,29121,17,0 +2020-04-06,Madison,Missouri,29123,1,0 +2020-04-07,Madison,Missouri,29123,1,0 +2020-04-08,Madison,Missouri,29123,1,0 +2020-04-09,Madison,Missouri,29123,1,0 +2020-04-10,Madison,Missouri,29123,1,0 +2020-04-11,Madison,Missouri,29123,1,0 +2020-04-12,Madison,Missouri,29123,1,0 +2020-04-13,Madison,Missouri,29123,1,0 +2020-04-14,Madison,Missouri,29123,1,0 +2020-04-15,Madison,Missouri,29123,1,0 +2020-04-16,Madison,Missouri,29123,1,0 +2020-04-17,Madison,Missouri,29123,1,0 +2020-04-18,Madison,Missouri,29123,1,0 +2020-04-19,Madison,Missouri,29123,1,0 +2020-04-20,Madison,Missouri,29123,1,0 +2020-04-21,Madison,Missouri,29123,1,0 +2020-04-22,Madison,Missouri,29123,1,0 +2020-04-23,Madison,Missouri,29123,1,0 +2020-04-24,Madison,Missouri,29123,1,0 +2020-04-25,Madison,Missouri,29123,1,0 +2020-04-26,Madison,Missouri,29123,1,0 +2020-04-27,Madison,Missouri,29123,1,0 +2020-04-28,Madison,Missouri,29123,1,0 +2020-04-29,Madison,Missouri,29123,1,0 +2020-04-30,Madison,Missouri,29123,1,0 +2020-05-01,Madison,Missouri,29123,1,0 +2020-05-02,Madison,Missouri,29123,1,0 +2020-05-03,Madison,Missouri,29123,1,0 +2020-05-04,Madison,Missouri,29123,1,0 +2020-05-05,Madison,Missouri,29123,2,0 +2020-05-06,Madison,Missouri,29123,2,0 +2020-05-07,Madison,Missouri,29123,2,0 +2020-05-08,Madison,Missouri,29123,2,0 +2020-05-09,Madison,Missouri,29123,3,0 +2020-05-10,Madison,Missouri,29123,3,0 +2020-05-11,Madison,Missouri,29123,3,0 +2020-05-12,Madison,Missouri,29123,3,0 +2020-05-13,Madison,Missouri,29123,3,0 +2020-05-14,Madison,Missouri,29123,3,0 +2020-05-15,Madison,Missouri,29123,3,0 +2020-05-16,Madison,Missouri,29123,3,0 +2020-05-17,Madison,Missouri,29123,3,0 +2020-05-18,Madison,Missouri,29123,3,0 +2020-05-19,Madison,Missouri,29123,3,0 +2020-05-20,Madison,Missouri,29123,3,0 +2020-05-21,Madison,Missouri,29123,3,0 +2020-05-22,Madison,Missouri,29123,3,0 +2020-05-23,Madison,Missouri,29123,3,0 +2020-05-24,Madison,Missouri,29123,3,0 +2020-05-25,Madison,Missouri,29123,3,0 +2020-05-26,Madison,Missouri,29123,3,0 +2020-05-27,Madison,Missouri,29123,3,0 +2020-05-28,Madison,Missouri,29123,3,0 +2020-05-29,Madison,Missouri,29123,3,0 +2020-05-30,Madison,Missouri,29123,3,0 +2020-05-31,Madison,Missouri,29123,3,0 +2020-06-01,Madison,Missouri,29123,3,0 +2020-06-02,Madison,Missouri,29123,3,0 +2020-06-03,Madison,Missouri,29123,3,0 +2020-06-04,Madison,Missouri,29123,3,0 +2020-06-05,Madison,Missouri,29123,3,0 +2020-06-06,Madison,Missouri,29123,3,0 +2020-06-07,Madison,Missouri,29123,3,0 +2020-06-08,Madison,Missouri,29123,3,0 +2020-06-09,Madison,Missouri,29123,3,0 +2020-06-10,Madison,Missouri,29123,3,0 +2020-06-11,Madison,Missouri,29123,3,0 +2020-06-12,Madison,Missouri,29123,3,0 +2020-06-13,Madison,Missouri,29123,3,0 +2020-06-14,Madison,Missouri,29123,3,0 +2020-06-15,Madison,Missouri,29123,3,0 +2020-06-16,Madison,Missouri,29123,3,0 +2020-06-17,Madison,Missouri,29123,3,0 +2020-06-18,Madison,Missouri,29123,3,0 +2020-06-19,Madison,Missouri,29123,3,0 +2020-06-20,Madison,Missouri,29123,3,0 +2020-06-21,Madison,Missouri,29123,3,0 +2020-06-22,Madison,Missouri,29123,3,0 +2020-06-23,Madison,Missouri,29123,3,0 +2020-06-24,Madison,Missouri,29123,3,0 +2020-06-25,Madison,Missouri,29123,3,0 +2020-06-26,Madison,Missouri,29123,3,0 +2020-06-27,Madison,Missouri,29123,4,0 +2020-06-28,Madison,Missouri,29123,5,0 +2020-06-29,Madison,Missouri,29123,6,0 +2020-06-30,Madison,Missouri,29123,6,0 +2020-07-01,Madison,Missouri,29123,6,0 +2020-07-02,Madison,Missouri,29123,6,0 +2020-07-03,Madison,Missouri,29123,6,0 +2020-07-04,Madison,Missouri,29123,7,0 +2020-07-05,Madison,Missouri,29123,7,0 +2020-07-06,Madison,Missouri,29123,7,0 +2020-07-07,Madison,Missouri,29123,7,0 +2020-07-08,Madison,Missouri,29123,7,0 +2020-07-09,Madison,Missouri,29123,7,0 +2020-03-30,Maries,Missouri,29125,1,0 +2020-03-31,Maries,Missouri,29125,1,0 +2020-04-01,Maries,Missouri,29125,2,0 +2020-04-02,Maries,Missouri,29125,2,0 +2020-04-03,Maries,Missouri,29125,2,0 +2020-04-04,Maries,Missouri,29125,2,0 +2020-04-05,Maries,Missouri,29125,2,0 +2020-04-06,Maries,Missouri,29125,2,0 +2020-04-07,Maries,Missouri,29125,2,0 +2020-04-08,Maries,Missouri,29125,2,0 +2020-04-09,Maries,Missouri,29125,2,0 +2020-04-10,Maries,Missouri,29125,2,0 +2020-04-11,Maries,Missouri,29125,2,0 +2020-04-12,Maries,Missouri,29125,2,0 +2020-04-13,Maries,Missouri,29125,2,0 +2020-04-14,Maries,Missouri,29125,2,0 +2020-04-15,Maries,Missouri,29125,2,0 +2020-04-16,Maries,Missouri,29125,2,0 +2020-04-17,Maries,Missouri,29125,2,0 +2020-04-18,Maries,Missouri,29125,2,0 +2020-04-19,Maries,Missouri,29125,1,0 +2020-04-20,Maries,Missouri,29125,1,0 +2020-04-21,Maries,Missouri,29125,2,0 +2020-04-22,Maries,Missouri,29125,2,0 +2020-04-23,Maries,Missouri,29125,2,0 +2020-04-24,Maries,Missouri,29125,2,0 +2020-04-25,Maries,Missouri,29125,2,0 +2020-04-26,Maries,Missouri,29125,2,0 +2020-04-27,Maries,Missouri,29125,2,0 +2020-04-28,Maries,Missouri,29125,2,0 +2020-04-29,Maries,Missouri,29125,2,0 +2020-04-30,Maries,Missouri,29125,2,0 +2020-05-01,Maries,Missouri,29125,2,0 +2020-05-02,Maries,Missouri,29125,2,0 +2020-05-03,Maries,Missouri,29125,2,0 +2020-05-04,Maries,Missouri,29125,2,0 +2020-05-05,Maries,Missouri,29125,2,0 +2020-05-06,Maries,Missouri,29125,2,0 +2020-05-07,Maries,Missouri,29125,2,0 +2020-05-08,Maries,Missouri,29125,2,0 +2020-05-09,Maries,Missouri,29125,2,0 +2020-05-10,Maries,Missouri,29125,2,0 +2020-05-11,Maries,Missouri,29125,2,0 +2020-05-12,Maries,Missouri,29125,2,0 +2020-05-13,Maries,Missouri,29125,2,0 +2020-05-14,Maries,Missouri,29125,2,0 +2020-05-15,Maries,Missouri,29125,2,0 +2020-05-16,Maries,Missouri,29125,2,0 +2020-05-17,Maries,Missouri,29125,2,0 +2020-05-18,Maries,Missouri,29125,2,0 +2020-05-19,Maries,Missouri,29125,2,0 +2020-05-20,Maries,Missouri,29125,2,0 +2020-05-21,Maries,Missouri,29125,2,0 +2020-05-22,Maries,Missouri,29125,2,0 +2020-05-23,Maries,Missouri,29125,2,0 +2020-05-24,Maries,Missouri,29125,2,0 +2020-05-25,Maries,Missouri,29125,2,0 +2020-05-26,Maries,Missouri,29125,2,0 +2020-05-27,Maries,Missouri,29125,2,0 +2020-05-28,Maries,Missouri,29125,2,0 +2020-05-29,Maries,Missouri,29125,2,0 +2020-05-30,Maries,Missouri,29125,2,0 +2020-05-31,Maries,Missouri,29125,2,0 +2020-06-01,Maries,Missouri,29125,2,0 +2020-06-02,Maries,Missouri,29125,2,0 +2020-06-03,Maries,Missouri,29125,2,0 +2020-06-04,Maries,Missouri,29125,2,0 +2020-06-05,Maries,Missouri,29125,2,0 +2020-06-06,Maries,Missouri,29125,2,0 +2020-06-07,Maries,Missouri,29125,2,0 +2020-06-08,Maries,Missouri,29125,2,0 +2020-06-09,Maries,Missouri,29125,2,0 +2020-06-10,Maries,Missouri,29125,2,0 +2020-06-11,Maries,Missouri,29125,2,0 +2020-06-12,Maries,Missouri,29125,2,0 +2020-06-13,Maries,Missouri,29125,2,0 +2020-06-14,Maries,Missouri,29125,2,0 +2020-06-15,Maries,Missouri,29125,2,0 +2020-06-16,Maries,Missouri,29125,2,0 +2020-06-17,Maries,Missouri,29125,2,0 +2020-06-18,Maries,Missouri,29125,2,0 +2020-06-19,Maries,Missouri,29125,2,0 +2020-06-20,Maries,Missouri,29125,2,0 +2020-06-21,Maries,Missouri,29125,2,0 +2020-06-22,Maries,Missouri,29125,3,0 +2020-06-23,Maries,Missouri,29125,4,0 +2020-06-24,Maries,Missouri,29125,4,0 +2020-06-25,Maries,Missouri,29125,4,0 +2020-06-26,Maries,Missouri,29125,4,0 +2020-06-27,Maries,Missouri,29125,4,0 +2020-06-28,Maries,Missouri,29125,4,0 +2020-06-29,Maries,Missouri,29125,5,0 +2020-06-30,Maries,Missouri,29125,5,0 +2020-07-01,Maries,Missouri,29125,5,0 +2020-07-02,Maries,Missouri,29125,6,0 +2020-07-03,Maries,Missouri,29125,6,0 +2020-07-04,Maries,Missouri,29125,6,0 +2020-07-05,Maries,Missouri,29125,6,0 +2020-07-06,Maries,Missouri,29125,6,0 +2020-07-07,Maries,Missouri,29125,6,0 +2020-07-08,Maries,Missouri,29125,6,0 +2020-07-09,Maries,Missouri,29125,6,0 +2020-04-18,Marion,Missouri,29127,1,0 +2020-04-19,Marion,Missouri,29127,1,0 +2020-04-20,Marion,Missouri,29127,3,0 +2020-04-21,Marion,Missouri,29127,3,0 +2020-04-22,Marion,Missouri,29127,4,0 +2020-04-23,Marion,Missouri,29127,4,0 +2020-04-24,Marion,Missouri,29127,4,0 +2020-04-25,Marion,Missouri,29127,4,0 +2020-04-26,Marion,Missouri,29127,5,0 +2020-04-27,Marion,Missouri,29127,5,0 +2020-04-28,Marion,Missouri,29127,4,0 +2020-04-29,Marion,Missouri,29127,4,0 +2020-04-30,Marion,Missouri,29127,4,0 +2020-05-01,Marion,Missouri,29127,4,0 +2020-05-02,Marion,Missouri,29127,4,0 +2020-05-03,Marion,Missouri,29127,4,0 +2020-05-04,Marion,Missouri,29127,4,0 +2020-05-05,Marion,Missouri,29127,4,0 +2020-05-06,Marion,Missouri,29127,5,0 +2020-05-07,Marion,Missouri,29127,5,0 +2020-05-08,Marion,Missouri,29127,5,0 +2020-05-09,Marion,Missouri,29127,5,0 +2020-05-10,Marion,Missouri,29127,5,0 +2020-05-11,Marion,Missouri,29127,5,0 +2020-05-12,Marion,Missouri,29127,5,0 +2020-05-13,Marion,Missouri,29127,5,0 +2020-05-14,Marion,Missouri,29127,5,0 +2020-05-15,Marion,Missouri,29127,5,0 +2020-05-16,Marion,Missouri,29127,5,0 +2020-05-17,Marion,Missouri,29127,5,0 +2020-05-18,Marion,Missouri,29127,5,0 +2020-05-19,Marion,Missouri,29127,5,0 +2020-05-20,Marion,Missouri,29127,5,0 +2020-05-21,Marion,Missouri,29127,5,0 +2020-05-22,Marion,Missouri,29127,5,0 +2020-05-23,Marion,Missouri,29127,5,0 +2020-05-24,Marion,Missouri,29127,5,0 +2020-05-25,Marion,Missouri,29127,5,0 +2020-05-26,Marion,Missouri,29127,5,0 +2020-05-27,Marion,Missouri,29127,5,0 +2020-05-28,Marion,Missouri,29127,5,0 +2020-05-29,Marion,Missouri,29127,5,0 +2020-05-30,Marion,Missouri,29127,5,0 +2020-05-31,Marion,Missouri,29127,5,0 +2020-06-01,Marion,Missouri,29127,5,0 +2020-06-02,Marion,Missouri,29127,5,0 +2020-06-03,Marion,Missouri,29127,5,0 +2020-06-04,Marion,Missouri,29127,5,0 +2020-06-05,Marion,Missouri,29127,5,0 +2020-06-06,Marion,Missouri,29127,5,0 +2020-06-07,Marion,Missouri,29127,5,0 +2020-06-08,Marion,Missouri,29127,5,0 +2020-06-09,Marion,Missouri,29127,6,0 +2020-06-10,Marion,Missouri,29127,6,0 +2020-06-11,Marion,Missouri,29127,7,0 +2020-06-12,Marion,Missouri,29127,7,0 +2020-06-13,Marion,Missouri,29127,8,0 +2020-06-14,Marion,Missouri,29127,8,0 +2020-06-15,Marion,Missouri,29127,8,0 +2020-06-16,Marion,Missouri,29127,8,0 +2020-06-17,Marion,Missouri,29127,9,0 +2020-06-18,Marion,Missouri,29127,9,0 +2020-06-19,Marion,Missouri,29127,10,0 +2020-06-20,Marion,Missouri,29127,11,0 +2020-06-21,Marion,Missouri,29127,11,0 +2020-06-22,Marion,Missouri,29127,11,0 +2020-06-23,Marion,Missouri,29127,13,0 +2020-06-24,Marion,Missouri,29127,13,0 +2020-06-25,Marion,Missouri,29127,14,0 +2020-06-26,Marion,Missouri,29127,14,0 +2020-06-27,Marion,Missouri,29127,15,0 +2020-06-28,Marion,Missouri,29127,16,0 +2020-06-29,Marion,Missouri,29127,16,0 +2020-06-30,Marion,Missouri,29127,17,0 +2020-07-01,Marion,Missouri,29127,19,0 +2020-07-02,Marion,Missouri,29127,20,0 +2020-07-03,Marion,Missouri,29127,25,0 +2020-07-04,Marion,Missouri,29127,25,0 +2020-07-05,Marion,Missouri,29127,25,0 +2020-07-06,Marion,Missouri,29127,25,0 +2020-07-07,Marion,Missouri,29127,26,0 +2020-07-08,Marion,Missouri,29127,27,0 +2020-07-09,Marion,Missouri,29127,29,0 +2020-05-31,Mercer,Missouri,29129,1,0 +2020-06-01,Mercer,Missouri,29129,1,0 +2020-06-02,Mercer,Missouri,29129,1,0 +2020-06-03,Mercer,Missouri,29129,1,0 +2020-06-04,Mercer,Missouri,29129,3,0 +2020-06-05,Mercer,Missouri,29129,4,0 +2020-06-06,Mercer,Missouri,29129,4,0 +2020-06-07,Mercer,Missouri,29129,4,0 +2020-06-08,Mercer,Missouri,29129,4,0 +2020-06-09,Mercer,Missouri,29129,4,0 +2020-06-10,Mercer,Missouri,29129,4,0 +2020-06-11,Mercer,Missouri,29129,5,0 +2020-06-12,Mercer,Missouri,29129,5,0 +2020-06-13,Mercer,Missouri,29129,5,0 +2020-06-14,Mercer,Missouri,29129,5,0 +2020-06-15,Mercer,Missouri,29129,5,0 +2020-06-16,Mercer,Missouri,29129,5,0 +2020-06-17,Mercer,Missouri,29129,5,0 +2020-06-18,Mercer,Missouri,29129,5,0 +2020-06-19,Mercer,Missouri,29129,5,0 +2020-06-20,Mercer,Missouri,29129,5,0 +2020-06-21,Mercer,Missouri,29129,5,0 +2020-06-22,Mercer,Missouri,29129,5,0 +2020-06-23,Mercer,Missouri,29129,5,0 +2020-06-24,Mercer,Missouri,29129,5,0 +2020-06-25,Mercer,Missouri,29129,5,0 +2020-06-26,Mercer,Missouri,29129,6,0 +2020-06-27,Mercer,Missouri,29129,6,0 +2020-06-28,Mercer,Missouri,29129,6,0 +2020-06-29,Mercer,Missouri,29129,6,0 +2020-06-30,Mercer,Missouri,29129,6,0 +2020-07-01,Mercer,Missouri,29129,6,0 +2020-07-02,Mercer,Missouri,29129,6,0 +2020-07-03,Mercer,Missouri,29129,6,0 +2020-07-04,Mercer,Missouri,29129,6,0 +2020-07-05,Mercer,Missouri,29129,6,0 +2020-07-06,Mercer,Missouri,29129,6,0 +2020-07-07,Mercer,Missouri,29129,6,0 +2020-07-08,Mercer,Missouri,29129,6,0 +2020-07-09,Mercer,Missouri,29129,6,0 +2020-04-15,Miller,Missouri,29131,1,0 +2020-04-16,Miller,Missouri,29131,1,0 +2020-04-17,Miller,Missouri,29131,1,0 +2020-04-18,Miller,Missouri,29131,1,0 +2020-04-19,Miller,Missouri,29131,1,0 +2020-04-20,Miller,Missouri,29131,1,0 +2020-04-21,Miller,Missouri,29131,1,0 +2020-04-22,Miller,Missouri,29131,1,0 +2020-04-23,Miller,Missouri,29131,1,0 +2020-04-24,Miller,Missouri,29131,1,0 +2020-04-25,Miller,Missouri,29131,1,0 +2020-04-26,Miller,Missouri,29131,1,0 +2020-04-27,Miller,Missouri,29131,1,0 +2020-04-28,Miller,Missouri,29131,1,0 +2020-04-29,Miller,Missouri,29131,1,0 +2020-04-30,Miller,Missouri,29131,1,0 +2020-05-01,Miller,Missouri,29131,1,0 +2020-05-02,Miller,Missouri,29131,2,0 +2020-05-03,Miller,Missouri,29131,2,0 +2020-05-04,Miller,Missouri,29131,2,0 +2020-05-05,Miller,Missouri,29131,2,0 +2020-05-06,Miller,Missouri,29131,2,0 +2020-05-07,Miller,Missouri,29131,3,0 +2020-05-08,Miller,Missouri,29131,3,0 +2020-05-09,Miller,Missouri,29131,3,0 +2020-05-10,Miller,Missouri,29131,3,0 +2020-05-11,Miller,Missouri,29131,3,0 +2020-05-12,Miller,Missouri,29131,4,0 +2020-05-13,Miller,Missouri,29131,4,0 +2020-05-14,Miller,Missouri,29131,4,0 +2020-05-15,Miller,Missouri,29131,4,0 +2020-05-16,Miller,Missouri,29131,4,0 +2020-05-17,Miller,Missouri,29131,4,0 +2020-05-18,Miller,Missouri,29131,4,0 +2020-05-19,Miller,Missouri,29131,4,0 +2020-05-20,Miller,Missouri,29131,4,0 +2020-05-21,Miller,Missouri,29131,4,0 +2020-05-22,Miller,Missouri,29131,4,0 +2020-05-23,Miller,Missouri,29131,4,0 +2020-05-24,Miller,Missouri,29131,4,0 +2020-05-25,Miller,Missouri,29131,4,0 +2020-05-26,Miller,Missouri,29131,4,0 +2020-05-27,Miller,Missouri,29131,4,0 +2020-05-28,Miller,Missouri,29131,4,0 +2020-05-29,Miller,Missouri,29131,4,0 +2020-05-30,Miller,Missouri,29131,4,0 +2020-05-31,Miller,Missouri,29131,4,0 +2020-06-01,Miller,Missouri,29131,4,0 +2020-06-02,Miller,Missouri,29131,4,0 +2020-06-03,Miller,Missouri,29131,4,0 +2020-06-04,Miller,Missouri,29131,4,0 +2020-06-05,Miller,Missouri,29131,4,0 +2020-06-06,Miller,Missouri,29131,4,0 +2020-06-07,Miller,Missouri,29131,4,0 +2020-06-08,Miller,Missouri,29131,4,0 +2020-06-09,Miller,Missouri,29131,4,0 +2020-06-10,Miller,Missouri,29131,5,0 +2020-06-11,Miller,Missouri,29131,4,0 +2020-06-12,Miller,Missouri,29131,4,0 +2020-06-13,Miller,Missouri,29131,4,0 +2020-06-14,Miller,Missouri,29131,4,0 +2020-06-15,Miller,Missouri,29131,6,0 +2020-06-16,Miller,Missouri,29131,7,0 +2020-06-17,Miller,Missouri,29131,7,0 +2020-06-18,Miller,Missouri,29131,8,0 +2020-06-19,Miller,Missouri,29131,8,0 +2020-06-20,Miller,Missouri,29131,10,0 +2020-06-21,Miller,Missouri,29131,10,0 +2020-06-22,Miller,Missouri,29131,11,0 +2020-06-23,Miller,Missouri,29131,11,0 +2020-06-24,Miller,Missouri,29131,11,0 +2020-06-25,Miller,Missouri,29131,11,0 +2020-06-26,Miller,Missouri,29131,12,0 +2020-06-27,Miller,Missouri,29131,12,0 +2020-06-28,Miller,Missouri,29131,12,0 +2020-06-29,Miller,Missouri,29131,14,0 +2020-06-30,Miller,Missouri,29131,15,0 +2020-07-01,Miller,Missouri,29131,15,0 +2020-07-02,Miller,Missouri,29131,17,0 +2020-07-03,Miller,Missouri,29131,19,0 +2020-07-04,Miller,Missouri,29131,19,0 +2020-07-05,Miller,Missouri,29131,19,0 +2020-07-06,Miller,Missouri,29131,19,0 +2020-07-07,Miller,Missouri,29131,20,0 +2020-07-08,Miller,Missouri,29131,22,0 +2020-07-09,Miller,Missouri,29131,22,0 +2020-04-22,Mississippi,Missouri,29133,1,0 +2020-04-23,Mississippi,Missouri,29133,3,0 +2020-04-24,Mississippi,Missouri,29133,3,0 +2020-04-25,Mississippi,Missouri,29133,23,0 +2020-04-26,Mississippi,Missouri,29133,23,0 +2020-04-27,Mississippi,Missouri,29133,23,0 +2020-04-28,Mississippi,Missouri,29133,23,0 +2020-04-29,Mississippi,Missouri,29133,23,0 +2020-04-30,Mississippi,Missouri,29133,29,0 +2020-05-01,Mississippi,Missouri,29133,29,0 +2020-05-02,Mississippi,Missouri,29133,29,0 +2020-05-03,Mississippi,Missouri,29133,29,0 +2020-05-04,Mississippi,Missouri,29133,29,0 +2020-05-05,Mississippi,Missouri,29133,29,0 +2020-05-06,Mississippi,Missouri,29133,32,0 +2020-05-07,Mississippi,Missouri,29133,33,0 +2020-05-08,Mississippi,Missouri,29133,49,0 +2020-05-09,Mississippi,Missouri,29133,47,0 +2020-05-10,Mississippi,Missouri,29133,47,0 +2020-05-11,Mississippi,Missouri,29133,47,0 +2020-05-12,Mississippi,Missouri,29133,47,0 +2020-05-13,Mississippi,Missouri,29133,47,0 +2020-05-14,Mississippi,Missouri,29133,47,0 +2020-05-15,Mississippi,Missouri,29133,47,0 +2020-05-16,Mississippi,Missouri,29133,47,0 +2020-05-17,Mississippi,Missouri,29133,47,0 +2020-05-18,Mississippi,Missouri,29133,48,0 +2020-05-19,Mississippi,Missouri,29133,49,0 +2020-05-20,Mississippi,Missouri,29133,49,0 +2020-05-21,Mississippi,Missouri,29133,50,0 +2020-05-22,Mississippi,Missouri,29133,53,0 +2020-05-23,Mississippi,Missouri,29133,54,0 +2020-05-24,Mississippi,Missouri,29133,53,0 +2020-05-25,Mississippi,Missouri,29133,53,0 +2020-05-26,Mississippi,Missouri,29133,53,0 +2020-05-27,Mississippi,Missouri,29133,54,0 +2020-05-28,Mississippi,Missouri,29133,55,0 +2020-05-29,Mississippi,Missouri,29133,56,0 +2020-05-30,Mississippi,Missouri,29133,55,0 +2020-05-31,Mississippi,Missouri,29133,58,0 +2020-06-01,Mississippi,Missouri,29133,58,0 +2020-06-02,Mississippi,Missouri,29133,59,0 +2020-06-03,Mississippi,Missouri,29133,59,0 +2020-06-04,Mississippi,Missouri,29133,61,0 +2020-06-05,Mississippi,Missouri,29133,61,0 +2020-06-06,Mississippi,Missouri,29133,61,0 +2020-06-07,Mississippi,Missouri,29133,61,0 +2020-06-08,Mississippi,Missouri,29133,63,0 +2020-06-09,Mississippi,Missouri,29133,65,0 +2020-06-10,Mississippi,Missouri,29133,66,0 +2020-06-11,Mississippi,Missouri,29133,68,0 +2020-06-12,Mississippi,Missouri,29133,70,0 +2020-06-13,Mississippi,Missouri,29133,71,0 +2020-06-14,Mississippi,Missouri,29133,71,0 +2020-06-15,Mississippi,Missouri,29133,74,0 +2020-06-16,Mississippi,Missouri,29133,75,0 +2020-06-17,Mississippi,Missouri,29133,75,0 +2020-06-18,Mississippi,Missouri,29133,77,0 +2020-06-19,Mississippi,Missouri,29133,77,0 +2020-06-20,Mississippi,Missouri,29133,77,0 +2020-06-21,Mississippi,Missouri,29133,77,0 +2020-06-22,Mississippi,Missouri,29133,79,0 +2020-06-23,Mississippi,Missouri,29133,80,0 +2020-06-24,Mississippi,Missouri,29133,80,0 +2020-06-25,Mississippi,Missouri,29133,82,0 +2020-06-26,Mississippi,Missouri,29133,88,0 +2020-06-27,Mississippi,Missouri,29133,88,0 +2020-06-28,Mississippi,Missouri,29133,88,0 +2020-06-29,Mississippi,Missouri,29133,89,0 +2020-06-30,Mississippi,Missouri,29133,90,0 +2020-07-01,Mississippi,Missouri,29133,91,0 +2020-07-02,Mississippi,Missouri,29133,91,0 +2020-07-03,Mississippi,Missouri,29133,91,0 +2020-07-04,Mississippi,Missouri,29133,91,0 +2020-07-05,Mississippi,Missouri,29133,91,0 +2020-07-06,Mississippi,Missouri,29133,91,0 +2020-07-07,Mississippi,Missouri,29133,95,0 +2020-07-08,Mississippi,Missouri,29133,95,0 +2020-07-09,Mississippi,Missouri,29133,98,0 +2020-03-23,Moniteau,Missouri,29135,1,0 +2020-03-24,Moniteau,Missouri,29135,1,0 +2020-03-25,Moniteau,Missouri,29135,2,0 +2020-03-26,Moniteau,Missouri,29135,2,0 +2020-03-27,Moniteau,Missouri,29135,2,0 +2020-03-28,Moniteau,Missouri,29135,3,0 +2020-03-29,Moniteau,Missouri,29135,4,0 +2020-03-30,Moniteau,Missouri,29135,2,0 +2020-03-31,Moniteau,Missouri,29135,2,0 +2020-04-01,Moniteau,Missouri,29135,2,0 +2020-04-02,Moniteau,Missouri,29135,2,0 +2020-04-03,Moniteau,Missouri,29135,2,0 +2020-04-04,Moniteau,Missouri,29135,2,0 +2020-04-05,Moniteau,Missouri,29135,4,0 +2020-04-06,Moniteau,Missouri,29135,4,0 +2020-04-07,Moniteau,Missouri,29135,4,0 +2020-04-08,Moniteau,Missouri,29135,4,0 +2020-04-09,Moniteau,Missouri,29135,3,0 +2020-04-10,Moniteau,Missouri,29135,3,0 +2020-04-11,Moniteau,Missouri,29135,3,0 +2020-04-12,Moniteau,Missouri,29135,3,0 +2020-04-13,Moniteau,Missouri,29135,3,0 +2020-04-14,Moniteau,Missouri,29135,4,0 +2020-04-15,Moniteau,Missouri,29135,6,0 +2020-04-16,Moniteau,Missouri,29135,12,0 +2020-04-17,Moniteau,Missouri,29135,15,0 +2020-04-18,Moniteau,Missouri,29135,19,0 +2020-04-19,Moniteau,Missouri,29135,26,0 +2020-04-20,Moniteau,Missouri,29135,21,0 +2020-04-21,Moniteau,Missouri,29135,25,0 +2020-04-22,Moniteau,Missouri,29135,32,0 +2020-04-23,Moniteau,Missouri,29135,33,0 +2020-04-24,Moniteau,Missouri,29135,35,0 +2020-04-25,Moniteau,Missouri,29135,36,0 +2020-04-26,Moniteau,Missouri,29135,39,0 +2020-04-27,Moniteau,Missouri,29135,40,0 +2020-04-28,Moniteau,Missouri,29135,40,0 +2020-04-29,Moniteau,Missouri,29135,40,0 +2020-04-30,Moniteau,Missouri,29135,40,0 +2020-05-01,Moniteau,Missouri,29135,41,0 +2020-05-02,Moniteau,Missouri,29135,41,0 +2020-05-03,Moniteau,Missouri,29135,42,0 +2020-05-04,Moniteau,Missouri,29135,42,0 +2020-05-05,Moniteau,Missouri,29135,42,0 +2020-05-06,Moniteau,Missouri,29135,42,0 +2020-05-07,Moniteau,Missouri,29135,43,0 +2020-05-08,Moniteau,Missouri,29135,43,0 +2020-05-09,Moniteau,Missouri,29135,44,0 +2020-05-10,Moniteau,Missouri,29135,44,0 +2020-05-11,Moniteau,Missouri,29135,44,0 +2020-05-12,Moniteau,Missouri,29135,44,0 +2020-05-13,Moniteau,Missouri,29135,44,0 +2020-05-14,Moniteau,Missouri,29135,44,0 +2020-05-15,Moniteau,Missouri,29135,44,0 +2020-05-16,Moniteau,Missouri,29135,44,1 +2020-05-17,Moniteau,Missouri,29135,44,1 +2020-05-18,Moniteau,Missouri,29135,44,1 +2020-05-19,Moniteau,Missouri,29135,44,1 +2020-05-20,Moniteau,Missouri,29135,44,1 +2020-05-21,Moniteau,Missouri,29135,44,1 +2020-05-22,Moniteau,Missouri,29135,44,1 +2020-05-23,Moniteau,Missouri,29135,45,1 +2020-05-24,Moniteau,Missouri,29135,45,1 +2020-05-25,Moniteau,Missouri,29135,45,1 +2020-05-26,Moniteau,Missouri,29135,45,1 +2020-05-27,Moniteau,Missouri,29135,45,1 +2020-05-28,Moniteau,Missouri,29135,46,1 +2020-05-29,Moniteau,Missouri,29135,46,1 +2020-05-30,Moniteau,Missouri,29135,46,1 +2020-05-31,Moniteau,Missouri,29135,47,1 +2020-06-01,Moniteau,Missouri,29135,47,1 +2020-06-02,Moniteau,Missouri,29135,48,1 +2020-06-03,Moniteau,Missouri,29135,48,1 +2020-06-04,Moniteau,Missouri,29135,49,1 +2020-06-05,Moniteau,Missouri,29135,49,1 +2020-06-06,Moniteau,Missouri,29135,49,1 +2020-06-07,Moniteau,Missouri,29135,49,1 +2020-06-08,Moniteau,Missouri,29135,49,1 +2020-06-09,Moniteau,Missouri,29135,49,1 +2020-06-10,Moniteau,Missouri,29135,49,1 +2020-06-11,Moniteau,Missouri,29135,49,1 +2020-06-12,Moniteau,Missouri,29135,49,1 +2020-06-13,Moniteau,Missouri,29135,49,1 +2020-06-14,Moniteau,Missouri,29135,49,1 +2020-06-15,Moniteau,Missouri,29135,49,1 +2020-06-16,Moniteau,Missouri,29135,49,1 +2020-06-17,Moniteau,Missouri,29135,49,1 +2020-06-18,Moniteau,Missouri,29135,49,1 +2020-06-19,Moniteau,Missouri,29135,49,1 +2020-06-20,Moniteau,Missouri,29135,49,1 +2020-06-21,Moniteau,Missouri,29135,49,1 +2020-06-22,Moniteau,Missouri,29135,49,1 +2020-06-23,Moniteau,Missouri,29135,49,1 +2020-06-24,Moniteau,Missouri,29135,49,1 +2020-06-25,Moniteau,Missouri,29135,49,1 +2020-06-26,Moniteau,Missouri,29135,49,1 +2020-06-27,Moniteau,Missouri,29135,49,1 +2020-06-28,Moniteau,Missouri,29135,49,1 +2020-06-29,Moniteau,Missouri,29135,50,1 +2020-06-30,Moniteau,Missouri,29135,52,1 +2020-07-01,Moniteau,Missouri,29135,52,1 +2020-07-02,Moniteau,Missouri,29135,62,1 +2020-07-03,Moniteau,Missouri,29135,62,1 +2020-07-04,Moniteau,Missouri,29135,62,1 +2020-07-05,Moniteau,Missouri,29135,62,1 +2020-07-06,Moniteau,Missouri,29135,72,1 +2020-07-07,Moniteau,Missouri,29135,72,1 +2020-07-08,Moniteau,Missouri,29135,72,1 +2020-07-09,Moniteau,Missouri,29135,72,1 +2020-05-27,Monroe,Missouri,29137,2,0 +2020-05-28,Monroe,Missouri,29137,2,0 +2020-05-29,Monroe,Missouri,29137,2,0 +2020-05-30,Monroe,Missouri,29137,2,0 +2020-05-31,Monroe,Missouri,29137,2,0 +2020-06-01,Monroe,Missouri,29137,2,0 +2020-06-02,Monroe,Missouri,29137,2,0 +2020-06-03,Monroe,Missouri,29137,2,0 +2020-06-04,Monroe,Missouri,29137,2,0 +2020-06-05,Monroe,Missouri,29137,2,0 +2020-06-06,Monroe,Missouri,29137,3,0 +2020-06-07,Monroe,Missouri,29137,3,0 +2020-06-08,Monroe,Missouri,29137,3,0 +2020-06-09,Monroe,Missouri,29137,3,0 +2020-06-10,Monroe,Missouri,29137,3,0 +2020-06-11,Monroe,Missouri,29137,3,0 +2020-06-12,Monroe,Missouri,29137,3,0 +2020-06-13,Monroe,Missouri,29137,3,0 +2020-06-14,Monroe,Missouri,29137,3,0 +2020-06-15,Monroe,Missouri,29137,3,0 +2020-06-16,Monroe,Missouri,29137,3,0 +2020-06-17,Monroe,Missouri,29137,3,0 +2020-06-18,Monroe,Missouri,29137,3,0 +2020-06-19,Monroe,Missouri,29137,4,0 +2020-06-20,Monroe,Missouri,29137,5,0 +2020-06-21,Monroe,Missouri,29137,5,0 +2020-06-22,Monroe,Missouri,29137,5,0 +2020-06-23,Monroe,Missouri,29137,5,0 +2020-06-24,Monroe,Missouri,29137,5,0 +2020-06-25,Monroe,Missouri,29137,5,0 +2020-06-26,Monroe,Missouri,29137,5,0 +2020-06-27,Monroe,Missouri,29137,5,0 +2020-06-28,Monroe,Missouri,29137,5,0 +2020-06-29,Monroe,Missouri,29137,5,0 +2020-06-30,Monroe,Missouri,29137,5,0 +2020-07-01,Monroe,Missouri,29137,5,0 +2020-07-02,Monroe,Missouri,29137,5,0 +2020-07-03,Monroe,Missouri,29137,5,0 +2020-07-04,Monroe,Missouri,29137,5,0 +2020-07-05,Monroe,Missouri,29137,5,0 +2020-07-06,Monroe,Missouri,29137,5,0 +2020-07-07,Monroe,Missouri,29137,5,0 +2020-07-08,Monroe,Missouri,29137,5,0 +2020-07-09,Monroe,Missouri,29137,5,0 +2020-03-25,Montgomery,Missouri,29139,1,0 +2020-03-26,Montgomery,Missouri,29139,2,0 +2020-03-27,Montgomery,Missouri,29139,3,0 +2020-03-28,Montgomery,Missouri,29139,3,0 +2020-03-29,Montgomery,Missouri,29139,3,0 +2020-03-30,Montgomery,Missouri,29139,2,0 +2020-03-31,Montgomery,Missouri,29139,2,0 +2020-04-01,Montgomery,Missouri,29139,2,0 +2020-04-02,Montgomery,Missouri,29139,2,0 +2020-04-03,Montgomery,Missouri,29139,3,0 +2020-04-04,Montgomery,Missouri,29139,4,0 +2020-04-05,Montgomery,Missouri,29139,4,0 +2020-04-06,Montgomery,Missouri,29139,5,0 +2020-04-07,Montgomery,Missouri,29139,5,0 +2020-04-08,Montgomery,Missouri,29139,5,0 +2020-04-09,Montgomery,Missouri,29139,6,0 +2020-04-10,Montgomery,Missouri,29139,6,0 +2020-04-11,Montgomery,Missouri,29139,6,0 +2020-04-12,Montgomery,Missouri,29139,6,0 +2020-04-13,Montgomery,Missouri,29139,6,0 +2020-04-14,Montgomery,Missouri,29139,6,0 +2020-04-15,Montgomery,Missouri,29139,6,0 +2020-04-16,Montgomery,Missouri,29139,6,0 +2020-04-17,Montgomery,Missouri,29139,7,0 +2020-04-18,Montgomery,Missouri,29139,7,0 +2020-04-19,Montgomery,Missouri,29139,7,0 +2020-04-20,Montgomery,Missouri,29139,7,0 +2020-04-21,Montgomery,Missouri,29139,7,0 +2020-04-22,Montgomery,Missouri,29139,7,0 +2020-04-23,Montgomery,Missouri,29139,7,0 +2020-04-24,Montgomery,Missouri,29139,7,0 +2020-04-25,Montgomery,Missouri,29139,7,0 +2020-04-26,Montgomery,Missouri,29139,7,0 +2020-04-27,Montgomery,Missouri,29139,7,0 +2020-04-28,Montgomery,Missouri,29139,7,0 +2020-04-29,Montgomery,Missouri,29139,7,0 +2020-04-30,Montgomery,Missouri,29139,7,0 +2020-05-01,Montgomery,Missouri,29139,7,0 +2020-05-02,Montgomery,Missouri,29139,7,0 +2020-05-03,Montgomery,Missouri,29139,7,0 +2020-05-04,Montgomery,Missouri,29139,7,0 +2020-05-05,Montgomery,Missouri,29139,7,0 +2020-05-06,Montgomery,Missouri,29139,7,0 +2020-05-07,Montgomery,Missouri,29139,7,0 +2020-05-08,Montgomery,Missouri,29139,7,0 +2020-05-09,Montgomery,Missouri,29139,7,0 +2020-05-10,Montgomery,Missouri,29139,7,0 +2020-05-11,Montgomery,Missouri,29139,7,0 +2020-05-12,Montgomery,Missouri,29139,7,0 +2020-05-13,Montgomery,Missouri,29139,7,0 +2020-05-14,Montgomery,Missouri,29139,7,0 +2020-05-15,Montgomery,Missouri,29139,7,0 +2020-05-16,Montgomery,Missouri,29139,7,0 +2020-05-17,Montgomery,Missouri,29139,7,0 +2020-05-18,Montgomery,Missouri,29139,7,0 +2020-05-19,Montgomery,Missouri,29139,7,0 +2020-05-20,Montgomery,Missouri,29139,7,0 +2020-05-21,Montgomery,Missouri,29139,7,0 +2020-05-22,Montgomery,Missouri,29139,7,0 +2020-05-23,Montgomery,Missouri,29139,8,0 +2020-05-24,Montgomery,Missouri,29139,8,0 +2020-05-25,Montgomery,Missouri,29139,8,0 +2020-05-26,Montgomery,Missouri,29139,8,0 +2020-05-27,Montgomery,Missouri,29139,8,0 +2020-05-28,Montgomery,Missouri,29139,9,0 +2020-05-29,Montgomery,Missouri,29139,9,0 +2020-05-30,Montgomery,Missouri,29139,9,0 +2020-05-31,Montgomery,Missouri,29139,9,0 +2020-06-01,Montgomery,Missouri,29139,9,0 +2020-06-02,Montgomery,Missouri,29139,9,0 +2020-06-03,Montgomery,Missouri,29139,9,0 +2020-06-04,Montgomery,Missouri,29139,10,0 +2020-06-05,Montgomery,Missouri,29139,10,0 +2020-06-06,Montgomery,Missouri,29139,11,0 +2020-06-07,Montgomery,Missouri,29139,11,0 +2020-06-08,Montgomery,Missouri,29139,13,0 +2020-06-09,Montgomery,Missouri,29139,12,0 +2020-06-10,Montgomery,Missouri,29139,12,0 +2020-06-11,Montgomery,Missouri,29139,12,0 +2020-06-12,Montgomery,Missouri,29139,12,0 +2020-06-13,Montgomery,Missouri,29139,12,0 +2020-06-14,Montgomery,Missouri,29139,12,0 +2020-06-15,Montgomery,Missouri,29139,12,0 +2020-06-16,Montgomery,Missouri,29139,12,0 +2020-06-17,Montgomery,Missouri,29139,12,0 +2020-06-18,Montgomery,Missouri,29139,12,0 +2020-06-19,Montgomery,Missouri,29139,13,0 +2020-06-20,Montgomery,Missouri,29139,13,0 +2020-06-21,Montgomery,Missouri,29139,13,0 +2020-06-22,Montgomery,Missouri,29139,13,0 +2020-06-23,Montgomery,Missouri,29139,15,0 +2020-06-24,Montgomery,Missouri,29139,15,0 +2020-06-25,Montgomery,Missouri,29139,16,0 +2020-06-26,Montgomery,Missouri,29139,16,0 +2020-06-27,Montgomery,Missouri,29139,16,0 +2020-06-28,Montgomery,Missouri,29139,16,0 +2020-06-29,Montgomery,Missouri,29139,16,0 +2020-06-30,Montgomery,Missouri,29139,17,0 +2020-07-01,Montgomery,Missouri,29139,20,0 +2020-07-02,Montgomery,Missouri,29139,20,0 +2020-07-03,Montgomery,Missouri,29139,20,0 +2020-07-04,Montgomery,Missouri,29139,20,0 +2020-07-05,Montgomery,Missouri,29139,20,0 +2020-07-06,Montgomery,Missouri,29139,21,0 +2020-07-07,Montgomery,Missouri,29139,21,0 +2020-07-08,Montgomery,Missouri,29139,21,0 +2020-07-09,Montgomery,Missouri,29139,23,0 +2020-03-30,Morgan,Missouri,29141,1,0 +2020-03-31,Morgan,Missouri,29141,1,0 +2020-04-01,Morgan,Missouri,29141,1,0 +2020-04-02,Morgan,Missouri,29141,1,0 +2020-04-03,Morgan,Missouri,29141,1,0 +2020-04-04,Morgan,Missouri,29141,1,0 +2020-04-05,Morgan,Missouri,29141,1,0 +2020-04-06,Morgan,Missouri,29141,1,0 +2020-04-07,Morgan,Missouri,29141,1,0 +2020-04-08,Morgan,Missouri,29141,1,0 +2020-04-09,Morgan,Missouri,29141,1,0 +2020-04-10,Morgan,Missouri,29141,1,0 +2020-04-11,Morgan,Missouri,29141,1,0 +2020-04-12,Morgan,Missouri,29141,1,0 +2020-04-13,Morgan,Missouri,29141,1,0 +2020-04-14,Morgan,Missouri,29141,1,0 +2020-04-15,Morgan,Missouri,29141,1,0 +2020-04-16,Morgan,Missouri,29141,2,0 +2020-04-17,Morgan,Missouri,29141,2,0 +2020-04-18,Morgan,Missouri,29141,2,0 +2020-04-19,Morgan,Missouri,29141,2,0 +2020-04-20,Morgan,Missouri,29141,2,0 +2020-04-21,Morgan,Missouri,29141,2,0 +2020-04-22,Morgan,Missouri,29141,3,0 +2020-04-23,Morgan,Missouri,29141,3,0 +2020-04-24,Morgan,Missouri,29141,3,0 +2020-04-25,Morgan,Missouri,29141,3,0 +2020-04-26,Morgan,Missouri,29141,3,0 +2020-04-27,Morgan,Missouri,29141,3,0 +2020-04-28,Morgan,Missouri,29141,3,0 +2020-04-29,Morgan,Missouri,29141,3,0 +2020-04-30,Morgan,Missouri,29141,3,0 +2020-05-01,Morgan,Missouri,29141,4,0 +2020-05-02,Morgan,Missouri,29141,5,0 +2020-05-03,Morgan,Missouri,29141,5,0 +2020-05-04,Morgan,Missouri,29141,5,0 +2020-05-05,Morgan,Missouri,29141,5,0 +2020-05-06,Morgan,Missouri,29141,6,0 +2020-05-07,Morgan,Missouri,29141,6,0 +2020-05-08,Morgan,Missouri,29141,7,0 +2020-05-09,Morgan,Missouri,29141,7,0 +2020-05-10,Morgan,Missouri,29141,7,0 +2020-05-11,Morgan,Missouri,29141,7,0 +2020-05-12,Morgan,Missouri,29141,7,0 +2020-05-13,Morgan,Missouri,29141,7,0 +2020-05-14,Morgan,Missouri,29141,7,0 +2020-05-15,Morgan,Missouri,29141,7,0 +2020-05-16,Morgan,Missouri,29141,8,0 +2020-05-17,Morgan,Missouri,29141,8,0 +2020-05-18,Morgan,Missouri,29141,8,0 +2020-05-19,Morgan,Missouri,29141,8,0 +2020-05-20,Morgan,Missouri,29141,7,0 +2020-05-21,Morgan,Missouri,29141,8,0 +2020-05-22,Morgan,Missouri,29141,8,0 +2020-05-23,Morgan,Missouri,29141,8,0 +2020-05-24,Morgan,Missouri,29141,8,0 +2020-05-25,Morgan,Missouri,29141,9,0 +2020-05-26,Morgan,Missouri,29141,9,0 +2020-05-27,Morgan,Missouri,29141,9,0 +2020-05-28,Morgan,Missouri,29141,9,0 +2020-05-29,Morgan,Missouri,29141,9,0 +2020-05-30,Morgan,Missouri,29141,9,0 +2020-05-31,Morgan,Missouri,29141,9,0 +2020-06-01,Morgan,Missouri,29141,9,0 +2020-06-02,Morgan,Missouri,29141,9,0 +2020-06-03,Morgan,Missouri,29141,9,0 +2020-06-04,Morgan,Missouri,29141,9,0 +2020-06-05,Morgan,Missouri,29141,9,0 +2020-06-06,Morgan,Missouri,29141,9,0 +2020-06-07,Morgan,Missouri,29141,9,0 +2020-06-08,Morgan,Missouri,29141,9,0 +2020-06-09,Morgan,Missouri,29141,9,0 +2020-06-10,Morgan,Missouri,29141,9,0 +2020-06-11,Morgan,Missouri,29141,9,0 +2020-06-12,Morgan,Missouri,29141,9,0 +2020-06-13,Morgan,Missouri,29141,9,0 +2020-06-14,Morgan,Missouri,29141,9,0 +2020-06-15,Morgan,Missouri,29141,9,0 +2020-06-16,Morgan,Missouri,29141,9,0 +2020-06-17,Morgan,Missouri,29141,11,0 +2020-06-18,Morgan,Missouri,29141,12,0 +2020-06-19,Morgan,Missouri,29141,12,0 +2020-06-20,Morgan,Missouri,29141,12,0 +2020-06-21,Morgan,Missouri,29141,12,0 +2020-06-22,Morgan,Missouri,29141,12,0 +2020-06-23,Morgan,Missouri,29141,11,0 +2020-06-24,Morgan,Missouri,29141,13,0 +2020-06-25,Morgan,Missouri,29141,13,0 +2020-06-26,Morgan,Missouri,29141,13,0 +2020-06-27,Morgan,Missouri,29141,13,0 +2020-06-28,Morgan,Missouri,29141,13,0 +2020-06-29,Morgan,Missouri,29141,13,0 +2020-06-30,Morgan,Missouri,29141,14,0 +2020-07-01,Morgan,Missouri,29141,14,0 +2020-07-02,Morgan,Missouri,29141,14,0 +2020-07-03,Morgan,Missouri,29141,15,0 +2020-07-04,Morgan,Missouri,29141,19,0 +2020-07-05,Morgan,Missouri,29141,19,0 +2020-07-06,Morgan,Missouri,29141,19,0 +2020-07-07,Morgan,Missouri,29141,22,0 +2020-07-08,Morgan,Missouri,29141,26,0 +2020-07-09,Morgan,Missouri,29141,26,0 +2020-04-02,New Madrid,Missouri,29143,1,0 +2020-04-03,New Madrid,Missouri,29143,1,0 +2020-04-04,New Madrid,Missouri,29143,1,0 +2020-04-05,New Madrid,Missouri,29143,1,0 +2020-04-06,New Madrid,Missouri,29143,2,0 +2020-04-07,New Madrid,Missouri,29143,5,0 +2020-04-08,New Madrid,Missouri,29143,5,0 +2020-04-09,New Madrid,Missouri,29143,6,0 +2020-04-10,New Madrid,Missouri,29143,6,0 +2020-04-11,New Madrid,Missouri,29143,6,0 +2020-04-12,New Madrid,Missouri,29143,8,0 +2020-04-13,New Madrid,Missouri,29143,8,0 +2020-04-14,New Madrid,Missouri,29143,8,0 +2020-04-15,New Madrid,Missouri,29143,8,0 +2020-04-16,New Madrid,Missouri,29143,8,0 +2020-04-17,New Madrid,Missouri,29143,8,0 +2020-04-18,New Madrid,Missouri,29143,8,0 +2020-04-19,New Madrid,Missouri,29143,9,0 +2020-04-20,New Madrid,Missouri,29143,9,0 +2020-04-21,New Madrid,Missouri,29143,9,0 +2020-04-22,New Madrid,Missouri,29143,9,0 +2020-04-23,New Madrid,Missouri,29143,9,0 +2020-04-24,New Madrid,Missouri,29143,9,0 +2020-04-25,New Madrid,Missouri,29143,9,0 +2020-04-26,New Madrid,Missouri,29143,9,0 +2020-04-27,New Madrid,Missouri,29143,9,0 +2020-04-28,New Madrid,Missouri,29143,9,0 +2020-04-29,New Madrid,Missouri,29143,9,0 +2020-04-30,New Madrid,Missouri,29143,9,0 +2020-05-01,New Madrid,Missouri,29143,9,0 +2020-05-02,New Madrid,Missouri,29143,10,0 +2020-05-03,New Madrid,Missouri,29143,10,0 +2020-05-04,New Madrid,Missouri,29143,11,0 +2020-05-05,New Madrid,Missouri,29143,11,0 +2020-05-06,New Madrid,Missouri,29143,11,0 +2020-05-07,New Madrid,Missouri,29143,11,0 +2020-05-08,New Madrid,Missouri,29143,11,0 +2020-05-09,New Madrid,Missouri,29143,12,0 +2020-05-10,New Madrid,Missouri,29143,12,0 +2020-05-11,New Madrid,Missouri,29143,12,0 +2020-05-12,New Madrid,Missouri,29143,13,0 +2020-05-13,New Madrid,Missouri,29143,13,0 +2020-05-14,New Madrid,Missouri,29143,13,0 +2020-05-15,New Madrid,Missouri,29143,13,0 +2020-05-16,New Madrid,Missouri,29143,14,0 +2020-05-17,New Madrid,Missouri,29143,14,0 +2020-05-18,New Madrid,Missouri,29143,14,1 +2020-05-19,New Madrid,Missouri,29143,14,1 +2020-05-20,New Madrid,Missouri,29143,14,1 +2020-05-21,New Madrid,Missouri,29143,14,1 +2020-05-22,New Madrid,Missouri,29143,15,1 +2020-05-23,New Madrid,Missouri,29143,17,1 +2020-05-24,New Madrid,Missouri,29143,17,1 +2020-05-25,New Madrid,Missouri,29143,17,1 +2020-05-26,New Madrid,Missouri,29143,17,1 +2020-05-27,New Madrid,Missouri,29143,17,1 +2020-05-28,New Madrid,Missouri,29143,19,1 +2020-05-29,New Madrid,Missouri,29143,20,1 +2020-05-30,New Madrid,Missouri,29143,21,1 +2020-05-31,New Madrid,Missouri,29143,21,1 +2020-06-01,New Madrid,Missouri,29143,21,1 +2020-06-02,New Madrid,Missouri,29143,21,1 +2020-06-03,New Madrid,Missouri,29143,21,1 +2020-06-04,New Madrid,Missouri,29143,21,1 +2020-06-05,New Madrid,Missouri,29143,21,1 +2020-06-06,New Madrid,Missouri,29143,21,1 +2020-06-07,New Madrid,Missouri,29143,21,1 +2020-06-08,New Madrid,Missouri,29143,22,1 +2020-06-09,New Madrid,Missouri,29143,23,1 +2020-06-10,New Madrid,Missouri,29143,24,1 +2020-06-11,New Madrid,Missouri,29143,28,1 +2020-06-12,New Madrid,Missouri,29143,32,1 +2020-06-13,New Madrid,Missouri,29143,35,1 +2020-06-14,New Madrid,Missouri,29143,35,1 +2020-06-15,New Madrid,Missouri,29143,35,1 +2020-06-16,New Madrid,Missouri,29143,34,1 +2020-06-17,New Madrid,Missouri,29143,34,2 +2020-06-18,New Madrid,Missouri,29143,34,2 +2020-06-19,New Madrid,Missouri,29143,34,2 +2020-06-20,New Madrid,Missouri,29143,34,1 +2020-06-21,New Madrid,Missouri,29143,36,1 +2020-06-22,New Madrid,Missouri,29143,34,1 +2020-06-23,New Madrid,Missouri,29143,36,1 +2020-06-24,New Madrid,Missouri,29143,36,1 +2020-06-25,New Madrid,Missouri,29143,36,1 +2020-06-26,New Madrid,Missouri,29143,36,1 +2020-06-27,New Madrid,Missouri,29143,38,1 +2020-06-28,New Madrid,Missouri,29143,42,1 +2020-06-29,New Madrid,Missouri,29143,43,1 +2020-06-30,New Madrid,Missouri,29143,43,1 +2020-07-01,New Madrid,Missouri,29143,42,1 +2020-07-02,New Madrid,Missouri,29143,43,1 +2020-07-03,New Madrid,Missouri,29143,44,1 +2020-07-04,New Madrid,Missouri,29143,44,1 +2020-07-05,New Madrid,Missouri,29143,44,1 +2020-07-06,New Madrid,Missouri,29143,45,1 +2020-07-07,New Madrid,Missouri,29143,45,1 +2020-07-08,New Madrid,Missouri,29143,46,1 +2020-07-09,New Madrid,Missouri,29143,47,1 +2020-03-25,Newton,Missouri,29145,1,0 +2020-03-26,Newton,Missouri,29145,3,0 +2020-03-27,Newton,Missouri,29145,3,0 +2020-03-28,Newton,Missouri,29145,4,0 +2020-03-29,Newton,Missouri,29145,4,0 +2020-03-30,Newton,Missouri,29145,4,0 +2020-03-31,Newton,Missouri,29145,5,0 +2020-04-01,Newton,Missouri,29145,5,0 +2020-04-02,Newton,Missouri,29145,6,0 +2020-04-03,Newton,Missouri,29145,6,0 +2020-04-04,Newton,Missouri,29145,6,0 +2020-04-05,Newton,Missouri,29145,6,0 +2020-04-06,Newton,Missouri,29145,6,0 +2020-04-07,Newton,Missouri,29145,6,0 +2020-04-08,Newton,Missouri,29145,6,0 +2020-04-09,Newton,Missouri,29145,7,0 +2020-04-10,Newton,Missouri,29145,7,0 +2020-04-11,Newton,Missouri,29145,8,0 +2020-04-12,Newton,Missouri,29145,8,0 +2020-04-13,Newton,Missouri,29145,8,0 +2020-04-14,Newton,Missouri,29145,9,0 +2020-04-15,Newton,Missouri,29145,9,0 +2020-04-16,Newton,Missouri,29145,9,0 +2020-04-17,Newton,Missouri,29145,9,0 +2020-04-18,Newton,Missouri,29145,9,0 +2020-04-19,Newton,Missouri,29145,9,0 +2020-04-20,Newton,Missouri,29145,9,0 +2020-04-21,Newton,Missouri,29145,10,0 +2020-04-22,Newton,Missouri,29145,9,1 +2020-04-23,Newton,Missouri,29145,10,1 +2020-04-24,Newton,Missouri,29145,10,1 +2020-04-25,Newton,Missouri,29145,10,1 +2020-04-26,Newton,Missouri,29145,10,1 +2020-04-27,Newton,Missouri,29145,10,1 +2020-04-28,Newton,Missouri,29145,10,1 +2020-04-29,Newton,Missouri,29145,10,1 +2020-04-30,Newton,Missouri,29145,10,1 +2020-05-01,Newton,Missouri,29145,10,1 +2020-05-02,Newton,Missouri,29145,10,1 +2020-05-03,Newton,Missouri,29145,10,1 +2020-05-04,Newton,Missouri,29145,10,1 +2020-05-05,Newton,Missouri,29145,11,1 +2020-05-06,Newton,Missouri,29145,11,1 +2020-05-07,Newton,Missouri,29145,11,1 +2020-05-08,Newton,Missouri,29145,13,1 +2020-05-09,Newton,Missouri,29145,13,1 +2020-05-10,Newton,Missouri,29145,13,1 +2020-05-11,Newton,Missouri,29145,13,1 +2020-05-12,Newton,Missouri,29145,13,1 +2020-05-13,Newton,Missouri,29145,14,1 +2020-05-14,Newton,Missouri,29145,14,1 +2020-05-15,Newton,Missouri,29145,15,1 +2020-05-16,Newton,Missouri,29145,15,1 +2020-05-17,Newton,Missouri,29145,15,1 +2020-05-18,Newton,Missouri,29145,18,1 +2020-05-19,Newton,Missouri,29145,18,1 +2020-05-20,Newton,Missouri,29145,18,1 +2020-05-21,Newton,Missouri,29145,18,1 +2020-05-22,Newton,Missouri,29145,18,1 +2020-05-23,Newton,Missouri,29145,18,1 +2020-05-24,Newton,Missouri,29145,18,1 +2020-05-25,Newton,Missouri,29145,18,1 +2020-05-26,Newton,Missouri,29145,18,1 +2020-05-27,Newton,Missouri,29145,18,1 +2020-05-28,Newton,Missouri,29145,18,1 +2020-05-29,Newton,Missouri,29145,18,1 +2020-05-30,Newton,Missouri,29145,18,1 +2020-05-31,Newton,Missouri,29145,20,1 +2020-06-01,Newton,Missouri,29145,21,1 +2020-06-02,Newton,Missouri,29145,22,1 +2020-06-03,Newton,Missouri,29145,24,1 +2020-06-04,Newton,Missouri,29145,24,1 +2020-06-05,Newton,Missouri,29145,26,1 +2020-06-06,Newton,Missouri,29145,32,1 +2020-06-07,Newton,Missouri,29145,32,1 +2020-06-08,Newton,Missouri,29145,35,1 +2020-06-09,Newton,Missouri,29145,43,1 +2020-06-10,Newton,Missouri,29145,53,1 +2020-06-11,Newton,Missouri,29145,56,1 +2020-06-12,Newton,Missouri,29145,58,1 +2020-06-13,Newton,Missouri,29145,71,1 +2020-06-14,Newton,Missouri,29145,71,1 +2020-06-15,Newton,Missouri,29145,88,1 +2020-06-16,Newton,Missouri,29145,93,1 +2020-06-17,Newton,Missouri,29145,97,2 +2020-06-18,Newton,Missouri,29145,119,2 +2020-06-19,Newton,Missouri,29145,134,2 +2020-06-20,Newton,Missouri,29145,188,2 +2020-06-21,Newton,Missouri,29145,276,2 +2020-06-22,Newton,Missouri,29145,279,2 +2020-06-23,Newton,Missouri,29145,295,2 +2020-06-24,Newton,Missouri,29145,312,2 +2020-06-25,Newton,Missouri,29145,312,2 +2020-06-26,Newton,Missouri,29145,332,2 +2020-06-27,Newton,Missouri,29145,348,2 +2020-06-28,Newton,Missouri,29145,351,2 +2020-06-29,Newton,Missouri,29145,368,2 +2020-06-30,Newton,Missouri,29145,398,2 +2020-07-01,Newton,Missouri,29145,427,2 +2020-07-02,Newton,Missouri,29145,448,2 +2020-07-03,Newton,Missouri,29145,451,2 +2020-07-04,Newton,Missouri,29145,457,2 +2020-07-05,Newton,Missouri,29145,467,2 +2020-07-06,Newton,Missouri,29145,478,2 +2020-07-07,Newton,Missouri,29145,502,2 +2020-07-08,Newton,Missouri,29145,518,2 +2020-07-09,Newton,Missouri,29145,540,2 +2020-04-04,Nodaway,Missouri,29147,1,0 +2020-04-05,Nodaway,Missouri,29147,1,0 +2020-04-06,Nodaway,Missouri,29147,2,0 +2020-04-07,Nodaway,Missouri,29147,2,0 +2020-04-08,Nodaway,Missouri,29147,2,0 +2020-04-09,Nodaway,Missouri,29147,2,0 +2020-04-10,Nodaway,Missouri,29147,2,0 +2020-04-11,Nodaway,Missouri,29147,2,0 +2020-04-12,Nodaway,Missouri,29147,2,0 +2020-04-13,Nodaway,Missouri,29147,2,0 +2020-04-14,Nodaway,Missouri,29147,3,0 +2020-04-15,Nodaway,Missouri,29147,3,0 +2020-04-16,Nodaway,Missouri,29147,3,0 +2020-04-17,Nodaway,Missouri,29147,3,0 +2020-04-18,Nodaway,Missouri,29147,3,0 +2020-04-19,Nodaway,Missouri,29147,3,0 +2020-04-20,Nodaway,Missouri,29147,3,0 +2020-04-21,Nodaway,Missouri,29147,3,0 +2020-04-22,Nodaway,Missouri,29147,3,0 +2020-04-23,Nodaway,Missouri,29147,3,0 +2020-04-24,Nodaway,Missouri,29147,3,0 +2020-04-25,Nodaway,Missouri,29147,3,0 +2020-04-26,Nodaway,Missouri,29147,3,0 +2020-04-27,Nodaway,Missouri,29147,3,0 +2020-04-28,Nodaway,Missouri,29147,3,0 +2020-04-29,Nodaway,Missouri,29147,3,0 +2020-04-30,Nodaway,Missouri,29147,3,0 +2020-05-01,Nodaway,Missouri,29147,3,0 +2020-05-02,Nodaway,Missouri,29147,4,0 +2020-05-03,Nodaway,Missouri,29147,4,0 +2020-05-04,Nodaway,Missouri,29147,4,0 +2020-05-05,Nodaway,Missouri,29147,4,0 +2020-05-06,Nodaway,Missouri,29147,5,0 +2020-05-07,Nodaway,Missouri,29147,5,0 +2020-05-08,Nodaway,Missouri,29147,5,0 +2020-05-09,Nodaway,Missouri,29147,5,0 +2020-05-10,Nodaway,Missouri,29147,5,0 +2020-05-11,Nodaway,Missouri,29147,5,0 +2020-05-12,Nodaway,Missouri,29147,5,0 +2020-05-13,Nodaway,Missouri,29147,5,0 +2020-05-14,Nodaway,Missouri,29147,5,0 +2020-05-15,Nodaway,Missouri,29147,5,0 +2020-05-16,Nodaway,Missouri,29147,5,0 +2020-05-17,Nodaway,Missouri,29147,5,0 +2020-05-18,Nodaway,Missouri,29147,5,0 +2020-05-19,Nodaway,Missouri,29147,6,0 +2020-05-20,Nodaway,Missouri,29147,8,0 +2020-05-21,Nodaway,Missouri,29147,8,0 +2020-05-22,Nodaway,Missouri,29147,8,0 +2020-05-23,Nodaway,Missouri,29147,8,0 +2020-05-24,Nodaway,Missouri,29147,12,0 +2020-05-25,Nodaway,Missouri,29147,12,0 +2020-05-26,Nodaway,Missouri,29147,12,0 +2020-05-27,Nodaway,Missouri,29147,9,0 +2020-05-28,Nodaway,Missouri,29147,9,0 +2020-05-29,Nodaway,Missouri,29147,9,0 +2020-05-30,Nodaway,Missouri,29147,13,0 +2020-05-31,Nodaway,Missouri,29147,13,0 +2020-06-01,Nodaway,Missouri,29147,14,0 +2020-06-02,Nodaway,Missouri,29147,13,0 +2020-06-03,Nodaway,Missouri,29147,14,0 +2020-06-04,Nodaway,Missouri,29147,14,0 +2020-06-05,Nodaway,Missouri,29147,14,0 +2020-06-06,Nodaway,Missouri,29147,14,0 +2020-06-07,Nodaway,Missouri,29147,14,0 +2020-06-08,Nodaway,Missouri,29147,14,0 +2020-06-09,Nodaway,Missouri,29147,14,0 +2020-06-10,Nodaway,Missouri,29147,14,0 +2020-06-11,Nodaway,Missouri,29147,15,0 +2020-06-12,Nodaway,Missouri,29147,15,0 +2020-06-13,Nodaway,Missouri,29147,15,0 +2020-06-14,Nodaway,Missouri,29147,15,0 +2020-06-15,Nodaway,Missouri,29147,15,0 +2020-06-16,Nodaway,Missouri,29147,15,0 +2020-06-17,Nodaway,Missouri,29147,16,0 +2020-06-18,Nodaway,Missouri,29147,18,0 +2020-06-19,Nodaway,Missouri,29147,17,0 +2020-06-20,Nodaway,Missouri,29147,17,0 +2020-06-21,Nodaway,Missouri,29147,17,0 +2020-06-22,Nodaway,Missouri,29147,17,0 +2020-06-23,Nodaway,Missouri,29147,18,0 +2020-06-24,Nodaway,Missouri,29147,17,0 +2020-06-25,Nodaway,Missouri,29147,17,0 +2020-06-26,Nodaway,Missouri,29147,17,0 +2020-06-27,Nodaway,Missouri,29147,17,0 +2020-06-28,Nodaway,Missouri,29147,18,0 +2020-06-29,Nodaway,Missouri,29147,19,0 +2020-06-30,Nodaway,Missouri,29147,20,0 +2020-07-01,Nodaway,Missouri,29147,20,0 +2020-07-02,Nodaway,Missouri,29147,21,0 +2020-07-03,Nodaway,Missouri,29147,22,0 +2020-07-04,Nodaway,Missouri,29147,23,0 +2020-07-05,Nodaway,Missouri,29147,23,0 +2020-07-06,Nodaway,Missouri,29147,23,0 +2020-07-07,Nodaway,Missouri,29147,24,0 +2020-07-08,Nodaway,Missouri,29147,24,0 +2020-07-09,Nodaway,Missouri,29147,25,0 +2020-04-07,Oregon,Missouri,29149,1,0 +2020-04-08,Oregon,Missouri,29149,1,0 +2020-04-09,Oregon,Missouri,29149,1,0 +2020-04-10,Oregon,Missouri,29149,1,0 +2020-04-11,Oregon,Missouri,29149,1,0 +2020-04-12,Oregon,Missouri,29149,1,0 +2020-04-13,Oregon,Missouri,29149,1,0 +2020-04-14,Oregon,Missouri,29149,1,0 +2020-04-15,Oregon,Missouri,29149,1,0 +2020-04-16,Oregon,Missouri,29149,1,0 +2020-04-17,Oregon,Missouri,29149,1,0 +2020-04-18,Oregon,Missouri,29149,1,0 +2020-04-19,Oregon,Missouri,29149,1,0 +2020-04-20,Oregon,Missouri,29149,1,0 +2020-04-21,Oregon,Missouri,29149,1,0 +2020-04-22,Oregon,Missouri,29149,1,0 +2020-04-23,Oregon,Missouri,29149,1,0 +2020-04-24,Oregon,Missouri,29149,1,0 +2020-04-25,Oregon,Missouri,29149,1,0 +2020-04-26,Oregon,Missouri,29149,1,0 +2020-04-27,Oregon,Missouri,29149,1,0 +2020-04-28,Oregon,Missouri,29149,1,0 +2020-04-29,Oregon,Missouri,29149,1,0 +2020-04-30,Oregon,Missouri,29149,1,0 +2020-05-01,Oregon,Missouri,29149,1,0 +2020-05-02,Oregon,Missouri,29149,2,0 +2020-05-03,Oregon,Missouri,29149,2,0 +2020-05-04,Oregon,Missouri,29149,2,0 +2020-05-05,Oregon,Missouri,29149,2,0 +2020-05-06,Oregon,Missouri,29149,2,0 +2020-05-07,Oregon,Missouri,29149,2,0 +2020-05-08,Oregon,Missouri,29149,2,0 +2020-05-09,Oregon,Missouri,29149,2,0 +2020-05-10,Oregon,Missouri,29149,2,0 +2020-05-11,Oregon,Missouri,29149,2,0 +2020-05-12,Oregon,Missouri,29149,2,0 +2020-05-13,Oregon,Missouri,29149,2,0 +2020-05-14,Oregon,Missouri,29149,2,0 +2020-05-15,Oregon,Missouri,29149,2,0 +2020-05-16,Oregon,Missouri,29149,2,0 +2020-05-17,Oregon,Missouri,29149,2,0 +2020-05-18,Oregon,Missouri,29149,2,0 +2020-05-19,Oregon,Missouri,29149,2,0 +2020-05-20,Oregon,Missouri,29149,2,0 +2020-05-21,Oregon,Missouri,29149,2,0 +2020-05-22,Oregon,Missouri,29149,2,0 +2020-05-23,Oregon,Missouri,29149,2,0 +2020-05-24,Oregon,Missouri,29149,2,0 +2020-05-25,Oregon,Missouri,29149,2,0 +2020-05-26,Oregon,Missouri,29149,2,0 +2020-05-27,Oregon,Missouri,29149,2,0 +2020-05-28,Oregon,Missouri,29149,2,0 +2020-05-29,Oregon,Missouri,29149,2,0 +2020-05-30,Oregon,Missouri,29149,2,0 +2020-05-31,Oregon,Missouri,29149,2,0 +2020-06-01,Oregon,Missouri,29149,2,0 +2020-06-02,Oregon,Missouri,29149,2,0 +2020-06-03,Oregon,Missouri,29149,2,0 +2020-06-04,Oregon,Missouri,29149,2,0 +2020-06-05,Oregon,Missouri,29149,2,0 +2020-06-06,Oregon,Missouri,29149,2,0 +2020-06-07,Oregon,Missouri,29149,2,0 +2020-06-08,Oregon,Missouri,29149,2,0 +2020-06-09,Oregon,Missouri,29149,2,0 +2020-06-10,Oregon,Missouri,29149,2,0 +2020-06-11,Oregon,Missouri,29149,3,0 +2020-06-12,Oregon,Missouri,29149,3,0 +2020-06-13,Oregon,Missouri,29149,4,0 +2020-06-14,Oregon,Missouri,29149,4,0 +2020-06-15,Oregon,Missouri,29149,4,0 +2020-06-16,Oregon,Missouri,29149,4,0 +2020-06-17,Oregon,Missouri,29149,6,0 +2020-06-18,Oregon,Missouri,29149,6,0 +2020-06-19,Oregon,Missouri,29149,6,0 +2020-06-20,Oregon,Missouri,29149,6,0 +2020-06-21,Oregon,Missouri,29149,6,0 +2020-06-22,Oregon,Missouri,29149,6,0 +2020-06-23,Oregon,Missouri,29149,6,0 +2020-06-24,Oregon,Missouri,29149,6,0 +2020-06-25,Oregon,Missouri,29149,6,0 +2020-06-26,Oregon,Missouri,29149,6,0 +2020-06-27,Oregon,Missouri,29149,7,0 +2020-06-28,Oregon,Missouri,29149,7,0 +2020-06-29,Oregon,Missouri,29149,8,0 +2020-06-30,Oregon,Missouri,29149,7,0 +2020-07-01,Oregon,Missouri,29149,7,0 +2020-07-02,Oregon,Missouri,29149,7,0 +2020-07-03,Oregon,Missouri,29149,7,0 +2020-07-04,Oregon,Missouri,29149,8,0 +2020-07-05,Oregon,Missouri,29149,8,0 +2020-07-06,Oregon,Missouri,29149,8,0 +2020-07-07,Oregon,Missouri,29149,8,0 +2020-07-08,Oregon,Missouri,29149,9,0 +2020-07-09,Oregon,Missouri,29149,9,0 +2020-03-30,Osage,Missouri,29151,1,0 +2020-03-31,Osage,Missouri,29151,1,0 +2020-04-01,Osage,Missouri,29151,2,0 +2020-04-02,Osage,Missouri,29151,2,0 +2020-04-03,Osage,Missouri,29151,2,0 +2020-04-04,Osage,Missouri,29151,2,0 +2020-04-05,Osage,Missouri,29151,3,0 +2020-04-06,Osage,Missouri,29151,3,0 +2020-04-07,Osage,Missouri,29151,4,0 +2020-04-08,Osage,Missouri,29151,4,0 +2020-04-09,Osage,Missouri,29151,4,0 +2020-04-10,Osage,Missouri,29151,4,0 +2020-04-11,Osage,Missouri,29151,4,0 +2020-04-12,Osage,Missouri,29151,4,0 +2020-04-13,Osage,Missouri,29151,4,0 +2020-04-14,Osage,Missouri,29151,4,0 +2020-04-15,Osage,Missouri,29151,4,0 +2020-04-16,Osage,Missouri,29151,4,0 +2020-04-17,Osage,Missouri,29151,4,0 +2020-04-18,Osage,Missouri,29151,4,0 +2020-04-19,Osage,Missouri,29151,4,0 +2020-04-20,Osage,Missouri,29151,4,0 +2020-04-21,Osage,Missouri,29151,5,0 +2020-04-22,Osage,Missouri,29151,5,0 +2020-04-23,Osage,Missouri,29151,5,0 +2020-04-24,Osage,Missouri,29151,5,0 +2020-04-25,Osage,Missouri,29151,5,0 +2020-04-26,Osage,Missouri,29151,5,0 +2020-04-27,Osage,Missouri,29151,5,0 +2020-04-28,Osage,Missouri,29151,5,0 +2020-04-29,Osage,Missouri,29151,5,0 +2020-04-30,Osage,Missouri,29151,5,0 +2020-05-01,Osage,Missouri,29151,5,0 +2020-05-02,Osage,Missouri,29151,5,0 +2020-05-03,Osage,Missouri,29151,5,0 +2020-05-04,Osage,Missouri,29151,5,0 +2020-05-05,Osage,Missouri,29151,5,0 +2020-05-06,Osage,Missouri,29151,5,0 +2020-05-07,Osage,Missouri,29151,5,0 +2020-05-08,Osage,Missouri,29151,5,0 +2020-05-09,Osage,Missouri,29151,5,0 +2020-05-10,Osage,Missouri,29151,5,0 +2020-05-11,Osage,Missouri,29151,5,0 +2020-05-12,Osage,Missouri,29151,5,0 +2020-05-13,Osage,Missouri,29151,5,0 +2020-05-14,Osage,Missouri,29151,5,0 +2020-05-15,Osage,Missouri,29151,5,0 +2020-05-16,Osage,Missouri,29151,5,0 +2020-05-17,Osage,Missouri,29151,5,0 +2020-05-18,Osage,Missouri,29151,5,0 +2020-05-19,Osage,Missouri,29151,5,0 +2020-05-20,Osage,Missouri,29151,5,0 +2020-05-21,Osage,Missouri,29151,5,0 +2020-05-22,Osage,Missouri,29151,5,0 +2020-05-23,Osage,Missouri,29151,5,0 +2020-05-24,Osage,Missouri,29151,5,0 +2020-05-25,Osage,Missouri,29151,5,0 +2020-05-26,Osage,Missouri,29151,5,0 +2020-05-27,Osage,Missouri,29151,5,0 +2020-05-28,Osage,Missouri,29151,5,0 +2020-05-29,Osage,Missouri,29151,5,0 +2020-05-30,Osage,Missouri,29151,5,0 +2020-05-31,Osage,Missouri,29151,5,0 +2020-06-01,Osage,Missouri,29151,5,0 +2020-06-02,Osage,Missouri,29151,5,0 +2020-06-03,Osage,Missouri,29151,5,0 +2020-06-04,Osage,Missouri,29151,5,0 +2020-06-05,Osage,Missouri,29151,5,0 +2020-06-06,Osage,Missouri,29151,5,0 +2020-06-07,Osage,Missouri,29151,5,0 +2020-06-08,Osage,Missouri,29151,6,0 +2020-06-09,Osage,Missouri,29151,6,0 +2020-06-10,Osage,Missouri,29151,5,0 +2020-06-11,Osage,Missouri,29151,5,0 +2020-06-12,Osage,Missouri,29151,5,0 +2020-06-13,Osage,Missouri,29151,5,0 +2020-06-14,Osage,Missouri,29151,5,0 +2020-06-15,Osage,Missouri,29151,5,0 +2020-06-16,Osage,Missouri,29151,5,0 +2020-06-17,Osage,Missouri,29151,5,0 +2020-06-18,Osage,Missouri,29151,5,0 +2020-06-19,Osage,Missouri,29151,5,0 +2020-06-20,Osage,Missouri,29151,5,0 +2020-06-21,Osage,Missouri,29151,5,0 +2020-06-22,Osage,Missouri,29151,5,0 +2020-06-23,Osage,Missouri,29151,6,0 +2020-06-24,Osage,Missouri,29151,6,0 +2020-06-25,Osage,Missouri,29151,6,0 +2020-06-26,Osage,Missouri,29151,6,0 +2020-06-27,Osage,Missouri,29151,7,0 +2020-06-28,Osage,Missouri,29151,7,0 +2020-06-29,Osage,Missouri,29151,7,0 +2020-06-30,Osage,Missouri,29151,7,0 +2020-07-01,Osage,Missouri,29151,7,0 +2020-07-02,Osage,Missouri,29151,7,0 +2020-07-03,Osage,Missouri,29151,7,0 +2020-07-04,Osage,Missouri,29151,9,0 +2020-07-05,Osage,Missouri,29151,9,0 +2020-07-06,Osage,Missouri,29151,9,0 +2020-07-07,Osage,Missouri,29151,10,0 +2020-07-08,Osage,Missouri,29151,11,0 +2020-07-09,Osage,Missouri,29151,11,0 +2020-06-20,Ozark,Missouri,29153,1,0 +2020-06-21,Ozark,Missouri,29153,1,0 +2020-06-22,Ozark,Missouri,29153,1,0 +2020-06-23,Ozark,Missouri,29153,1,0 +2020-06-24,Ozark,Missouri,29153,1,0 +2020-06-25,Ozark,Missouri,29153,1,0 +2020-06-26,Ozark,Missouri,29153,1,0 +2020-06-27,Ozark,Missouri,29153,1,0 +2020-06-28,Ozark,Missouri,29153,1,0 +2020-06-29,Ozark,Missouri,29153,1,0 +2020-06-30,Ozark,Missouri,29153,2,0 +2020-07-01,Ozark,Missouri,29153,2,0 +2020-07-02,Ozark,Missouri,29153,2,0 +2020-07-03,Ozark,Missouri,29153,2,0 +2020-07-04,Ozark,Missouri,29153,2,0 +2020-07-05,Ozark,Missouri,29153,2,0 +2020-07-06,Ozark,Missouri,29153,2,0 +2020-07-07,Ozark,Missouri,29153,2,0 +2020-07-08,Ozark,Missouri,29153,2,0 +2020-07-09,Ozark,Missouri,29153,2,0 +2020-03-24,Pemiscot,Missouri,29155,1,0 +2020-03-25,Pemiscot,Missouri,29155,1,0 +2020-03-26,Pemiscot,Missouri,29155,1,0 +2020-03-27,Pemiscot,Missouri,29155,1,0 +2020-03-28,Pemiscot,Missouri,29155,1,0 +2020-03-29,Pemiscot,Missouri,29155,1,0 +2020-03-30,Pemiscot,Missouri,29155,2,0 +2020-03-31,Pemiscot,Missouri,29155,2,0 +2020-04-01,Pemiscot,Missouri,29155,2,0 +2020-04-02,Pemiscot,Missouri,29155,3,0 +2020-04-03,Pemiscot,Missouri,29155,3,0 +2020-04-04,Pemiscot,Missouri,29155,3,0 +2020-04-05,Pemiscot,Missouri,29155,3,0 +2020-04-06,Pemiscot,Missouri,29155,3,0 +2020-04-07,Pemiscot,Missouri,29155,3,0 +2020-04-08,Pemiscot,Missouri,29155,4,0 +2020-04-09,Pemiscot,Missouri,29155,4,0 +2020-04-10,Pemiscot,Missouri,29155,4,0 +2020-04-11,Pemiscot,Missouri,29155,4,0 +2020-04-12,Pemiscot,Missouri,29155,4,0 +2020-04-13,Pemiscot,Missouri,29155,8,0 +2020-04-14,Pemiscot,Missouri,29155,8,0 +2020-04-15,Pemiscot,Missouri,29155,11,0 +2020-04-16,Pemiscot,Missouri,29155,11,0 +2020-04-17,Pemiscot,Missouri,29155,11,0 +2020-04-18,Pemiscot,Missouri,29155,12,0 +2020-04-19,Pemiscot,Missouri,29155,13,0 +2020-04-20,Pemiscot,Missouri,29155,13,0 +2020-04-21,Pemiscot,Missouri,29155,13,0 +2020-04-22,Pemiscot,Missouri,29155,17,0 +2020-04-23,Pemiscot,Missouri,29155,18,1 +2020-04-24,Pemiscot,Missouri,29155,17,1 +2020-04-25,Pemiscot,Missouri,29155,17,1 +2020-04-26,Pemiscot,Missouri,29155,17,1 +2020-04-27,Pemiscot,Missouri,29155,19,1 +2020-04-28,Pemiscot,Missouri,29155,21,1 +2020-04-29,Pemiscot,Missouri,29155,25,1 +2020-04-30,Pemiscot,Missouri,29155,28,1 +2020-05-01,Pemiscot,Missouri,29155,32,1 +2020-05-02,Pemiscot,Missouri,29155,32,1 +2020-05-03,Pemiscot,Missouri,29155,32,1 +2020-05-04,Pemiscot,Missouri,29155,40,3 +2020-05-05,Pemiscot,Missouri,29155,46,3 +2020-05-06,Pemiscot,Missouri,29155,48,3 +2020-05-07,Pemiscot,Missouri,29155,55,3 +2020-05-08,Pemiscot,Missouri,29155,57,3 +2020-05-09,Pemiscot,Missouri,29155,57,3 +2020-05-10,Pemiscot,Missouri,29155,63,3 +2020-05-11,Pemiscot,Missouri,29155,65,3 +2020-05-12,Pemiscot,Missouri,29155,65,3 +2020-05-13,Pemiscot,Missouri,29155,67,3 +2020-05-14,Pemiscot,Missouri,29155,67,3 +2020-05-15,Pemiscot,Missouri,29155,68,3 +2020-05-16,Pemiscot,Missouri,29155,68,3 +2020-05-17,Pemiscot,Missouri,29155,68,3 +2020-05-18,Pemiscot,Missouri,29155,68,3 +2020-05-19,Pemiscot,Missouri,29155,70,3 +2020-05-20,Pemiscot,Missouri,29155,70,3 +2020-05-21,Pemiscot,Missouri,29155,70,3 +2020-05-22,Pemiscot,Missouri,29155,72,4 +2020-05-23,Pemiscot,Missouri,29155,72,4 +2020-05-24,Pemiscot,Missouri,29155,72,4 +2020-05-25,Pemiscot,Missouri,29155,72,4 +2020-05-26,Pemiscot,Missouri,29155,76,4 +2020-05-27,Pemiscot,Missouri,29155,76,4 +2020-05-28,Pemiscot,Missouri,29155,76,4 +2020-05-29,Pemiscot,Missouri,29155,76,4 +2020-05-30,Pemiscot,Missouri,29155,78,4 +2020-05-31,Pemiscot,Missouri,29155,83,4 +2020-06-01,Pemiscot,Missouri,29155,87,4 +2020-06-02,Pemiscot,Missouri,29155,88,5 +2020-06-03,Pemiscot,Missouri,29155,89,5 +2020-06-04,Pemiscot,Missouri,29155,90,5 +2020-06-05,Pemiscot,Missouri,29155,90,5 +2020-06-06,Pemiscot,Missouri,29155,91,5 +2020-06-07,Pemiscot,Missouri,29155,91,5 +2020-06-08,Pemiscot,Missouri,29155,94,5 +2020-06-09,Pemiscot,Missouri,29155,97,5 +2020-06-10,Pemiscot,Missouri,29155,99,6 +2020-06-11,Pemiscot,Missouri,29155,99,6 +2020-06-12,Pemiscot,Missouri,29155,99,6 +2020-06-13,Pemiscot,Missouri,29155,102,6 +2020-06-14,Pemiscot,Missouri,29155,102,6 +2020-06-15,Pemiscot,Missouri,29155,104,6 +2020-06-16,Pemiscot,Missouri,29155,104,6 +2020-06-17,Pemiscot,Missouri,29155,104,6 +2020-06-18,Pemiscot,Missouri,29155,105,6 +2020-06-19,Pemiscot,Missouri,29155,105,6 +2020-06-20,Pemiscot,Missouri,29155,105,6 +2020-06-21,Pemiscot,Missouri,29155,105,6 +2020-06-22,Pemiscot,Missouri,29155,106,6 +2020-06-23,Pemiscot,Missouri,29155,106,6 +2020-06-24,Pemiscot,Missouri,29155,108,6 +2020-06-25,Pemiscot,Missouri,29155,109,6 +2020-06-26,Pemiscot,Missouri,29155,109,6 +2020-06-27,Pemiscot,Missouri,29155,110,6 +2020-06-28,Pemiscot,Missouri,29155,110,6 +2020-06-29,Pemiscot,Missouri,29155,111,6 +2020-06-30,Pemiscot,Missouri,29155,111,6 +2020-07-01,Pemiscot,Missouri,29155,110,6 +2020-07-02,Pemiscot,Missouri,29155,111,6 +2020-07-03,Pemiscot,Missouri,29155,111,6 +2020-07-04,Pemiscot,Missouri,29155,111,6 +2020-07-05,Pemiscot,Missouri,29155,111,6 +2020-07-06,Pemiscot,Missouri,29155,111,6 +2020-07-07,Pemiscot,Missouri,29155,114,6 +2020-07-08,Pemiscot,Missouri,29155,115,6 +2020-07-09,Pemiscot,Missouri,29155,115,6 +2020-03-23,Perry,Missouri,29157,1,0 +2020-03-24,Perry,Missouri,29157,2,0 +2020-03-25,Perry,Missouri,29157,2,0 +2020-03-26,Perry,Missouri,29157,4,0 +2020-03-27,Perry,Missouri,29157,6,0 +2020-03-28,Perry,Missouri,29157,7,0 +2020-03-29,Perry,Missouri,29157,7,0 +2020-03-30,Perry,Missouri,29157,12,0 +2020-03-31,Perry,Missouri,29157,14,0 +2020-04-01,Perry,Missouri,29157,18,0 +2020-04-02,Perry,Missouri,29157,19,0 +2020-04-03,Perry,Missouri,29157,21,0 +2020-04-04,Perry,Missouri,29157,22,0 +2020-04-05,Perry,Missouri,29157,25,0 +2020-04-06,Perry,Missouri,29157,28,0 +2020-04-07,Perry,Missouri,29157,28,0 +2020-04-08,Perry,Missouri,29157,30,0 +2020-04-09,Perry,Missouri,29157,31,0 +2020-04-10,Perry,Missouri,29157,31,0 +2020-04-11,Perry,Missouri,29157,34,0 +2020-04-12,Perry,Missouri,29157,35,0 +2020-04-13,Perry,Missouri,29157,36,0 +2020-04-14,Perry,Missouri,29157,38,0 +2020-04-15,Perry,Missouri,29157,38,0 +2020-04-16,Perry,Missouri,29157,38,0 +2020-04-17,Perry,Missouri,29157,39,0 +2020-04-18,Perry,Missouri,29157,39,0 +2020-04-19,Perry,Missouri,29157,39,0 +2020-04-20,Perry,Missouri,29157,38,0 +2020-04-21,Perry,Missouri,29157,38,0 +2020-04-22,Perry,Missouri,29157,38,0 +2020-04-23,Perry,Missouri,29157,38,0 +2020-04-24,Perry,Missouri,29157,39,0 +2020-04-25,Perry,Missouri,29157,39,0 +2020-04-26,Perry,Missouri,29157,41,0 +2020-04-27,Perry,Missouri,29157,41,0 +2020-04-28,Perry,Missouri,29157,41,0 +2020-04-29,Perry,Missouri,29157,43,0 +2020-04-30,Perry,Missouri,29157,43,0 +2020-05-01,Perry,Missouri,29157,43,0 +2020-05-02,Perry,Missouri,29157,43,0 +2020-05-03,Perry,Missouri,29157,43,0 +2020-05-04,Perry,Missouri,29157,43,0 +2020-05-05,Perry,Missouri,29157,43,0 +2020-05-06,Perry,Missouri,29157,44,0 +2020-05-07,Perry,Missouri,29157,44,0 +2020-05-08,Perry,Missouri,29157,45,0 +2020-05-09,Perry,Missouri,29157,45,0 +2020-05-10,Perry,Missouri,29157,45,0 +2020-05-11,Perry,Missouri,29157,45,0 +2020-05-12,Perry,Missouri,29157,45,0 +2020-05-13,Perry,Missouri,29157,46,0 +2020-05-14,Perry,Missouri,29157,46,0 +2020-05-15,Perry,Missouri,29157,46,0 +2020-05-16,Perry,Missouri,29157,46,0 +2020-05-17,Perry,Missouri,29157,46,0 +2020-05-18,Perry,Missouri,29157,47,0 +2020-05-19,Perry,Missouri,29157,47,0 +2020-05-20,Perry,Missouri,29157,47,0 +2020-05-21,Perry,Missouri,29157,48,0 +2020-05-22,Perry,Missouri,29157,48,0 +2020-05-23,Perry,Missouri,29157,49,0 +2020-05-24,Perry,Missouri,29157,49,0 +2020-05-25,Perry,Missouri,29157,49,0 +2020-05-26,Perry,Missouri,29157,49,0 +2020-05-27,Perry,Missouri,29157,50,0 +2020-05-28,Perry,Missouri,29157,50,0 +2020-05-29,Perry,Missouri,29157,55,0 +2020-05-30,Perry,Missouri,29157,57,0 +2020-05-31,Perry,Missouri,29157,57,0 +2020-06-01,Perry,Missouri,29157,61,0 +2020-06-02,Perry,Missouri,29157,63,0 +2020-06-03,Perry,Missouri,29157,64,0 +2020-06-04,Perry,Missouri,29157,65,0 +2020-06-05,Perry,Missouri,29157,69,0 +2020-06-06,Perry,Missouri,29157,69,0 +2020-06-07,Perry,Missouri,29157,70,0 +2020-06-08,Perry,Missouri,29157,71,0 +2020-06-09,Perry,Missouri,29157,75,0 +2020-06-10,Perry,Missouri,29157,75,0 +2020-06-11,Perry,Missouri,29157,79,0 +2020-06-12,Perry,Missouri,29157,80,0 +2020-06-13,Perry,Missouri,29157,84,0 +2020-06-14,Perry,Missouri,29157,84,0 +2020-06-15,Perry,Missouri,29157,85,0 +2020-06-16,Perry,Missouri,29157,86,0 +2020-06-17,Perry,Missouri,29157,87,0 +2020-06-18,Perry,Missouri,29157,87,0 +2020-06-19,Perry,Missouri,29157,88,0 +2020-06-20,Perry,Missouri,29157,91,0 +2020-06-21,Perry,Missouri,29157,102,0 +2020-06-22,Perry,Missouri,29157,104,0 +2020-06-23,Perry,Missouri,29157,111,0 +2020-06-24,Perry,Missouri,29157,111,0 +2020-06-25,Perry,Missouri,29157,112,0 +2020-06-26,Perry,Missouri,29157,119,0 +2020-06-27,Perry,Missouri,29157,123,0 +2020-06-28,Perry,Missouri,29157,126,0 +2020-06-29,Perry,Missouri,29157,134,0 +2020-06-30,Perry,Missouri,29157,146,0 +2020-07-01,Perry,Missouri,29157,146,0 +2020-07-02,Perry,Missouri,29157,147,0 +2020-07-03,Perry,Missouri,29157,149,0 +2020-07-04,Perry,Missouri,29157,149,0 +2020-07-05,Perry,Missouri,29157,151,0 +2020-07-06,Perry,Missouri,29157,156,0 +2020-07-07,Perry,Missouri,29157,163,1 +2020-07-08,Perry,Missouri,29157,164,1 +2020-07-09,Perry,Missouri,29157,168,1 +2020-03-27,Pettis,Missouri,29159,1,0 +2020-03-28,Pettis,Missouri,29159,1,0 +2020-03-29,Pettis,Missouri,29159,1,0 +2020-03-30,Pettis,Missouri,29159,1,0 +2020-03-31,Pettis,Missouri,29159,1,0 +2020-04-01,Pettis,Missouri,29159,1,0 +2020-04-02,Pettis,Missouri,29159,1,0 +2020-04-03,Pettis,Missouri,29159,2,0 +2020-04-04,Pettis,Missouri,29159,2,0 +2020-04-05,Pettis,Missouri,29159,2,0 +2020-04-06,Pettis,Missouri,29159,2,0 +2020-04-07,Pettis,Missouri,29159,3,0 +2020-04-08,Pettis,Missouri,29159,3,0 +2020-04-09,Pettis,Missouri,29159,3,0 +2020-04-10,Pettis,Missouri,29159,4,0 +2020-04-11,Pettis,Missouri,29159,3,0 +2020-04-12,Pettis,Missouri,29159,3,0 +2020-04-13,Pettis,Missouri,29159,3,0 +2020-04-14,Pettis,Missouri,29159,3,0 +2020-04-15,Pettis,Missouri,29159,4,0 +2020-04-16,Pettis,Missouri,29159,8,0 +2020-04-17,Pettis,Missouri,29159,10,0 +2020-04-18,Pettis,Missouri,29159,13,0 +2020-04-19,Pettis,Missouri,29159,13,0 +2020-04-20,Pettis,Missouri,29159,13,0 +2020-04-21,Pettis,Missouri,29159,14,0 +2020-04-22,Pettis,Missouri,29159,16,0 +2020-04-23,Pettis,Missouri,29159,19,0 +2020-04-24,Pettis,Missouri,29159,25,0 +2020-04-25,Pettis,Missouri,29159,25,0 +2020-04-26,Pettis,Missouri,29159,27,0 +2020-04-27,Pettis,Missouri,29159,27,0 +2020-04-28,Pettis,Missouri,29159,31,0 +2020-04-29,Pettis,Missouri,29159,34,0 +2020-04-30,Pettis,Missouri,29159,35,0 +2020-05-01,Pettis,Missouri,29159,36,0 +2020-05-02,Pettis,Missouri,29159,41,0 +2020-05-03,Pettis,Missouri,29159,43,0 +2020-05-04,Pettis,Missouri,29159,48,0 +2020-05-05,Pettis,Missouri,29159,53,0 +2020-05-06,Pettis,Missouri,29159,55,0 +2020-05-07,Pettis,Missouri,29159,56,0 +2020-05-08,Pettis,Missouri,29159,57,0 +2020-05-09,Pettis,Missouri,29159,64,0 +2020-05-10,Pettis,Missouri,29159,64,0 +2020-05-11,Pettis,Missouri,29159,67,0 +2020-05-12,Pettis,Missouri,29159,68,1 +2020-05-13,Pettis,Missouri,29159,69,1 +2020-05-14,Pettis,Missouri,29159,70,1 +2020-05-15,Pettis,Missouri,29159,69,1 +2020-05-16,Pettis,Missouri,29159,69,1 +2020-05-17,Pettis,Missouri,29159,69,1 +2020-05-18,Pettis,Missouri,29159,69,1 +2020-05-19,Pettis,Missouri,29159,69,1 +2020-05-20,Pettis,Missouri,29159,69,1 +2020-05-21,Pettis,Missouri,29159,69,1 +2020-05-22,Pettis,Missouri,29159,69,1 +2020-05-23,Pettis,Missouri,29159,69,1 +2020-05-24,Pettis,Missouri,29159,69,1 +2020-05-25,Pettis,Missouri,29159,69,1 +2020-05-26,Pettis,Missouri,29159,70,1 +2020-05-27,Pettis,Missouri,29159,71,1 +2020-05-28,Pettis,Missouri,29159,77,1 +2020-05-29,Pettis,Missouri,29159,77,1 +2020-05-30,Pettis,Missouri,29159,77,1 +2020-05-31,Pettis,Missouri,29159,77,1 +2020-06-01,Pettis,Missouri,29159,77,1 +2020-06-02,Pettis,Missouri,29159,77,1 +2020-06-03,Pettis,Missouri,29159,78,1 +2020-06-04,Pettis,Missouri,29159,78,1 +2020-06-05,Pettis,Missouri,29159,78,1 +2020-06-06,Pettis,Missouri,29159,79,1 +2020-06-07,Pettis,Missouri,29159,81,1 +2020-06-08,Pettis,Missouri,29159,81,1 +2020-06-09,Pettis,Missouri,29159,82,1 +2020-06-10,Pettis,Missouri,29159,84,1 +2020-06-11,Pettis,Missouri,29159,84,1 +2020-06-12,Pettis,Missouri,29159,84,1 +2020-06-13,Pettis,Missouri,29159,85,1 +2020-06-14,Pettis,Missouri,29159,85,1 +2020-06-15,Pettis,Missouri,29159,86,1 +2020-06-16,Pettis,Missouri,29159,89,1 +2020-06-17,Pettis,Missouri,29159,89,1 +2020-06-18,Pettis,Missouri,29159,94,1 +2020-06-19,Pettis,Missouri,29159,95,1 +2020-06-20,Pettis,Missouri,29159,98,1 +2020-06-21,Pettis,Missouri,29159,98,1 +2020-06-22,Pettis,Missouri,29159,100,1 +2020-06-23,Pettis,Missouri,29159,102,1 +2020-06-24,Pettis,Missouri,29159,102,1 +2020-06-25,Pettis,Missouri,29159,110,1 +2020-06-26,Pettis,Missouri,29159,110,1 +2020-06-27,Pettis,Missouri,29159,116,1 +2020-06-28,Pettis,Missouri,29159,116,1 +2020-06-29,Pettis,Missouri,29159,116,1 +2020-06-30,Pettis,Missouri,29159,120,1 +2020-07-01,Pettis,Missouri,29159,120,1 +2020-07-02,Pettis,Missouri,29159,122,1 +2020-07-03,Pettis,Missouri,29159,125,1 +2020-07-04,Pettis,Missouri,29159,128,1 +2020-07-05,Pettis,Missouri,29159,134,1 +2020-07-06,Pettis,Missouri,29159,135,1 +2020-07-07,Pettis,Missouri,29159,136,1 +2020-07-08,Pettis,Missouri,29159,139,1 +2020-07-09,Pettis,Missouri,29159,150,1 +2020-04-06,Phelps,Missouri,29161,1,0 +2020-04-07,Phelps,Missouri,29161,1,0 +2020-04-08,Phelps,Missouri,29161,1,0 +2020-04-09,Phelps,Missouri,29161,1,0 +2020-04-10,Phelps,Missouri,29161,1,0 +2020-04-11,Phelps,Missouri,29161,1,0 +2020-04-12,Phelps,Missouri,29161,1,0 +2020-04-13,Phelps,Missouri,29161,1,0 +2020-04-14,Phelps,Missouri,29161,1,0 +2020-04-15,Phelps,Missouri,29161,1,0 +2020-04-16,Phelps,Missouri,29161,1,0 +2020-04-17,Phelps,Missouri,29161,1,0 +2020-04-18,Phelps,Missouri,29161,1,0 +2020-04-19,Phelps,Missouri,29161,1,0 +2020-04-20,Phelps,Missouri,29161,1,0 +2020-04-21,Phelps,Missouri,29161,1,0 +2020-04-22,Phelps,Missouri,29161,1,0 +2020-04-23,Phelps,Missouri,29161,1,0 +2020-04-24,Phelps,Missouri,29161,1,0 +2020-04-25,Phelps,Missouri,29161,1,0 +2020-04-26,Phelps,Missouri,29161,2,0 +2020-04-27,Phelps,Missouri,29161,2,0 +2020-04-28,Phelps,Missouri,29161,2,0 +2020-04-29,Phelps,Missouri,29161,2,0 +2020-04-30,Phelps,Missouri,29161,2,0 +2020-05-01,Phelps,Missouri,29161,2,0 +2020-05-02,Phelps,Missouri,29161,2,0 +2020-05-03,Phelps,Missouri,29161,2,0 +2020-05-04,Phelps,Missouri,29161,2,0 +2020-05-05,Phelps,Missouri,29161,3,0 +2020-05-06,Phelps,Missouri,29161,2,0 +2020-05-07,Phelps,Missouri,29161,2,0 +2020-05-08,Phelps,Missouri,29161,2,0 +2020-05-09,Phelps,Missouri,29161,2,0 +2020-05-10,Phelps,Missouri,29161,2,0 +2020-05-11,Phelps,Missouri,29161,2,0 +2020-05-12,Phelps,Missouri,29161,2,0 +2020-05-13,Phelps,Missouri,29161,2,0 +2020-05-14,Phelps,Missouri,29161,2,0 +2020-05-15,Phelps,Missouri,29161,2,0 +2020-05-16,Phelps,Missouri,29161,2,0 +2020-05-17,Phelps,Missouri,29161,2,0 +2020-05-18,Phelps,Missouri,29161,2,0 +2020-05-19,Phelps,Missouri,29161,3,0 +2020-05-20,Phelps,Missouri,29161,3,0 +2020-05-21,Phelps,Missouri,29161,3,0 +2020-05-22,Phelps,Missouri,29161,4,0 +2020-05-23,Phelps,Missouri,29161,4,0 +2020-05-24,Phelps,Missouri,29161,4,0 +2020-05-25,Phelps,Missouri,29161,4,0 +2020-05-26,Phelps,Missouri,29161,4,0 +2020-05-27,Phelps,Missouri,29161,4,0 +2020-05-28,Phelps,Missouri,29161,4,0 +2020-05-29,Phelps,Missouri,29161,4,0 +2020-05-30,Phelps,Missouri,29161,4,0 +2020-05-31,Phelps,Missouri,29161,4,0 +2020-06-01,Phelps,Missouri,29161,4,0 +2020-06-02,Phelps,Missouri,29161,4,0 +2020-06-03,Phelps,Missouri,29161,5,0 +2020-06-04,Phelps,Missouri,29161,5,0 +2020-06-05,Phelps,Missouri,29161,5,0 +2020-06-06,Phelps,Missouri,29161,5,0 +2020-06-07,Phelps,Missouri,29161,5,0 +2020-06-08,Phelps,Missouri,29161,5,0 +2020-06-09,Phelps,Missouri,29161,5,0 +2020-06-10,Phelps,Missouri,29161,6,0 +2020-06-11,Phelps,Missouri,29161,6,0 +2020-06-12,Phelps,Missouri,29161,6,0 +2020-06-13,Phelps,Missouri,29161,6,0 +2020-06-14,Phelps,Missouri,29161,6,0 +2020-06-15,Phelps,Missouri,29161,6,0 +2020-06-16,Phelps,Missouri,29161,6,0 +2020-06-17,Phelps,Missouri,29161,7,0 +2020-06-18,Phelps,Missouri,29161,7,0 +2020-06-19,Phelps,Missouri,29161,6,0 +2020-06-20,Phelps,Missouri,29161,7,0 +2020-06-21,Phelps,Missouri,29161,7,0 +2020-06-22,Phelps,Missouri,29161,7,0 +2020-06-23,Phelps,Missouri,29161,8,0 +2020-06-24,Phelps,Missouri,29161,12,0 +2020-06-25,Phelps,Missouri,29161,15,0 +2020-06-26,Phelps,Missouri,29161,22,0 +2020-06-27,Phelps,Missouri,29161,21,0 +2020-06-28,Phelps,Missouri,29161,23,0 +2020-06-29,Phelps,Missouri,29161,25,0 +2020-06-30,Phelps,Missouri,29161,35,0 +2020-07-01,Phelps,Missouri,29161,40,0 +2020-07-02,Phelps,Missouri,29161,44,0 +2020-07-03,Phelps,Missouri,29161,45,0 +2020-07-04,Phelps,Missouri,29161,45,0 +2020-07-05,Phelps,Missouri,29161,46,0 +2020-07-06,Phelps,Missouri,29161,49,0 +2020-07-07,Phelps,Missouri,29161,48,0 +2020-07-08,Phelps,Missouri,29161,51,0 +2020-07-09,Phelps,Missouri,29161,53,0 +2020-03-30,Pike,Missouri,29163,1,0 +2020-03-31,Pike,Missouri,29163,1,0 +2020-04-01,Pike,Missouri,29163,1,0 +2020-04-02,Pike,Missouri,29163,1,0 +2020-04-03,Pike,Missouri,29163,2,0 +2020-04-04,Pike,Missouri,29163,2,0 +2020-04-05,Pike,Missouri,29163,2,0 +2020-04-06,Pike,Missouri,29163,2,0 +2020-04-07,Pike,Missouri,29163,2,0 +2020-04-08,Pike,Missouri,29163,4,0 +2020-04-09,Pike,Missouri,29163,5,0 +2020-04-10,Pike,Missouri,29163,5,0 +2020-04-11,Pike,Missouri,29163,6,0 +2020-04-12,Pike,Missouri,29163,6,0 +2020-04-13,Pike,Missouri,29163,6,0 +2020-04-14,Pike,Missouri,29163,6,0 +2020-04-15,Pike,Missouri,29163,6,0 +2020-04-16,Pike,Missouri,29163,6,0 +2020-04-17,Pike,Missouri,29163,6,0 +2020-04-18,Pike,Missouri,29163,6,0 +2020-04-19,Pike,Missouri,29163,6,0 +2020-04-20,Pike,Missouri,29163,6,0 +2020-04-21,Pike,Missouri,29163,6,0 +2020-04-22,Pike,Missouri,29163,6,0 +2020-04-23,Pike,Missouri,29163,6,0 +2020-04-24,Pike,Missouri,29163,6,0 +2020-04-25,Pike,Missouri,29163,7,0 +2020-04-26,Pike,Missouri,29163,8,0 +2020-04-27,Pike,Missouri,29163,9,0 +2020-04-28,Pike,Missouri,29163,9,0 +2020-04-29,Pike,Missouri,29163,10,0 +2020-04-30,Pike,Missouri,29163,11,0 +2020-05-01,Pike,Missouri,29163,11,0 +2020-05-02,Pike,Missouri,29163,11,0 +2020-05-03,Pike,Missouri,29163,11,0 +2020-05-04,Pike,Missouri,29163,11,0 +2020-05-05,Pike,Missouri,29163,11,0 +2020-05-06,Pike,Missouri,29163,12,0 +2020-05-07,Pike,Missouri,29163,12,0 +2020-05-08,Pike,Missouri,29163,13,0 +2020-05-09,Pike,Missouri,29163,12,0 +2020-05-10,Pike,Missouri,29163,12,0 +2020-05-11,Pike,Missouri,29163,12,0 +2020-05-12,Pike,Missouri,29163,12,1 +2020-05-13,Pike,Missouri,29163,13,1 +2020-05-14,Pike,Missouri,29163,14,1 +2020-05-15,Pike,Missouri,29163,13,1 +2020-05-16,Pike,Missouri,29163,13,1 +2020-05-17,Pike,Missouri,29163,13,1 +2020-05-18,Pike,Missouri,29163,14,1 +2020-05-19,Pike,Missouri,29163,14,1 +2020-05-20,Pike,Missouri,29163,14,1 +2020-05-21,Pike,Missouri,29163,14,1 +2020-05-22,Pike,Missouri,29163,14,1 +2020-05-23,Pike,Missouri,29163,14,1 +2020-05-24,Pike,Missouri,29163,14,1 +2020-05-25,Pike,Missouri,29163,14,1 +2020-05-26,Pike,Missouri,29163,15,1 +2020-05-27,Pike,Missouri,29163,16,1 +2020-05-28,Pike,Missouri,29163,17,1 +2020-05-29,Pike,Missouri,29163,17,1 +2020-05-30,Pike,Missouri,29163,19,1 +2020-05-31,Pike,Missouri,29163,22,1 +2020-06-01,Pike,Missouri,29163,22,1 +2020-06-02,Pike,Missouri,29163,25,1 +2020-06-03,Pike,Missouri,29163,27,1 +2020-06-04,Pike,Missouri,29163,27,1 +2020-06-05,Pike,Missouri,29163,28,1 +2020-06-06,Pike,Missouri,29163,28,1 +2020-06-07,Pike,Missouri,29163,28,1 +2020-06-08,Pike,Missouri,29163,28,1 +2020-06-09,Pike,Missouri,29163,28,1 +2020-06-10,Pike,Missouri,29163,29,1 +2020-06-11,Pike,Missouri,29163,29,1 +2020-06-12,Pike,Missouri,29163,31,1 +2020-06-13,Pike,Missouri,29163,31,1 +2020-06-14,Pike,Missouri,29163,31,1 +2020-06-15,Pike,Missouri,29163,32,1 +2020-06-16,Pike,Missouri,29163,31,1 +2020-06-17,Pike,Missouri,29163,31,1 +2020-06-18,Pike,Missouri,29163,31,1 +2020-06-19,Pike,Missouri,29163,33,1 +2020-06-20,Pike,Missouri,29163,33,1 +2020-06-21,Pike,Missouri,29163,33,1 +2020-06-22,Pike,Missouri,29163,34,1 +2020-06-23,Pike,Missouri,29163,34,1 +2020-06-24,Pike,Missouri,29163,34,1 +2020-06-25,Pike,Missouri,29163,36,1 +2020-06-26,Pike,Missouri,29163,36,1 +2020-06-27,Pike,Missouri,29163,36,1 +2020-06-28,Pike,Missouri,29163,37,1 +2020-06-29,Pike,Missouri,29163,37,1 +2020-06-30,Pike,Missouri,29163,37,1 +2020-07-01,Pike,Missouri,29163,37,1 +2020-07-02,Pike,Missouri,29163,37,1 +2020-07-03,Pike,Missouri,29163,37,1 +2020-07-04,Pike,Missouri,29163,37,1 +2020-07-05,Pike,Missouri,29163,37,1 +2020-07-06,Pike,Missouri,29163,37,1 +2020-07-07,Pike,Missouri,29163,37,1 +2020-07-08,Pike,Missouri,29163,37,1 +2020-07-09,Pike,Missouri,29163,38,1 +2020-03-25,Platte,Missouri,29165,2,0 +2020-03-26,Platte,Missouri,29165,5,0 +2020-03-27,Platte,Missouri,29165,5,0 +2020-03-28,Platte,Missouri,29165,6,0 +2020-03-29,Platte,Missouri,29165,6,0 +2020-03-30,Platte,Missouri,29165,7,0 +2020-03-31,Platte,Missouri,29165,9,0 +2020-04-01,Platte,Missouri,29165,12,0 +2020-04-02,Platte,Missouri,29165,13,0 +2020-04-03,Platte,Missouri,29165,13,0 +2020-04-04,Platte,Missouri,29165,14,0 +2020-04-05,Platte,Missouri,29165,15,0 +2020-04-06,Platte,Missouri,29165,17,0 +2020-04-07,Platte,Missouri,29165,17,0 +2020-04-08,Platte,Missouri,29165,19,0 +2020-04-09,Platte,Missouri,29165,21,0 +2020-04-10,Platte,Missouri,29165,23,0 +2020-04-11,Platte,Missouri,29165,25,0 +2020-04-12,Platte,Missouri,29165,25,0 +2020-04-13,Platte,Missouri,29165,25,0 +2020-04-14,Platte,Missouri,29165,26,0 +2020-04-15,Platte,Missouri,29165,26,0 +2020-04-16,Platte,Missouri,29165,27,0 +2020-04-17,Platte,Missouri,29165,27,0 +2020-04-18,Platte,Missouri,29165,27,0 +2020-04-19,Platte,Missouri,29165,27,0 +2020-04-20,Platte,Missouri,29165,27,0 +2020-04-21,Platte,Missouri,29165,27,0 +2020-04-22,Platte,Missouri,29165,27,0 +2020-04-23,Platte,Missouri,29165,28,0 +2020-04-24,Platte,Missouri,29165,30,0 +2020-04-25,Platte,Missouri,29165,31,0 +2020-04-26,Platte,Missouri,29165,31,0 +2020-04-27,Platte,Missouri,29165,31,0 +2020-04-28,Platte,Missouri,29165,31,0 +2020-04-29,Platte,Missouri,29165,32,0 +2020-04-30,Platte,Missouri,29165,32,0 +2020-05-01,Platte,Missouri,29165,32,0 +2020-05-02,Platte,Missouri,29165,34,0 +2020-05-03,Platte,Missouri,29165,33,0 +2020-05-04,Platte,Missouri,29165,35,0 +2020-05-05,Platte,Missouri,29165,36,0 +2020-05-06,Platte,Missouri,29165,36,0 +2020-05-07,Platte,Missouri,29165,38,0 +2020-05-08,Platte,Missouri,29165,39,0 +2020-05-09,Platte,Missouri,29165,41,0 +2020-05-10,Platte,Missouri,29165,41,0 +2020-05-11,Platte,Missouri,29165,45,0 +2020-05-12,Platte,Missouri,29165,45,0 +2020-05-13,Platte,Missouri,29165,50,0 +2020-05-14,Platte,Missouri,29165,50,0 +2020-05-15,Platte,Missouri,29165,54,0 +2020-05-16,Platte,Missouri,29165,53,0 +2020-05-17,Platte,Missouri,29165,53,0 +2020-05-18,Platte,Missouri,29165,58,0 +2020-05-19,Platte,Missouri,29165,61,0 +2020-05-20,Platte,Missouri,29165,64,0 +2020-05-21,Platte,Missouri,29165,65,1 +2020-05-22,Platte,Missouri,29165,66,1 +2020-05-23,Platte,Missouri,29165,66,1 +2020-05-24,Platte,Missouri,29165,68,1 +2020-05-25,Platte,Missouri,29165,68,2 +2020-05-26,Platte,Missouri,29165,68,2 +2020-05-27,Platte,Missouri,29165,68,2 +2020-05-28,Platte,Missouri,29165,69,2 +2020-05-29,Platte,Missouri,29165,70,3 +2020-05-30,Platte,Missouri,29165,70,2 +2020-05-31,Platte,Missouri,29165,70,2 +2020-06-01,Platte,Missouri,29165,70,2 +2020-06-02,Platte,Missouri,29165,73,2 +2020-06-03,Platte,Missouri,29165,75,2 +2020-06-04,Platte,Missouri,29165,77,2 +2020-06-05,Platte,Missouri,29165,78,2 +2020-06-06,Platte,Missouri,29165,78,2 +2020-06-07,Platte,Missouri,29165,78,2 +2020-06-08,Platte,Missouri,29165,80,2 +2020-06-09,Platte,Missouri,29165,81,3 +2020-06-10,Platte,Missouri,29165,84,3 +2020-06-11,Platte,Missouri,29165,87,3 +2020-06-12,Platte,Missouri,29165,97,3 +2020-06-13,Platte,Missouri,29165,97,3 +2020-06-14,Platte,Missouri,29165,97,3 +2020-06-15,Platte,Missouri,29165,99,3 +2020-06-16,Platte,Missouri,29165,99,3 +2020-06-17,Platte,Missouri,29165,100,3 +2020-06-18,Platte,Missouri,29165,101,4 +2020-06-19,Platte,Missouri,29165,102,4 +2020-06-20,Platte,Missouri,29165,102,4 +2020-06-21,Platte,Missouri,29165,102,4 +2020-06-22,Platte,Missouri,29165,102,4 +2020-06-23,Platte,Missouri,29165,106,4 +2020-06-24,Platte,Missouri,29165,109,4 +2020-06-25,Platte,Missouri,29165,110,4 +2020-06-26,Platte,Missouri,29165,111,4 +2020-06-27,Platte,Missouri,29165,114,6 +2020-06-28,Platte,Missouri,29165,115,6 +2020-06-29,Platte,Missouri,29165,119,6 +2020-06-30,Platte,Missouri,29165,119,6 +2020-07-01,Platte,Missouri,29165,120,6 +2020-07-02,Platte,Missouri,29165,125,6 +2020-07-03,Platte,Missouri,29165,125,6 +2020-07-04,Platte,Missouri,29165,130,6 +2020-07-05,Platte,Missouri,29165,130,6 +2020-07-06,Platte,Missouri,29165,138,6 +2020-07-07,Platte,Missouri,29165,142,6 +2020-07-08,Platte,Missouri,29165,146,6 +2020-07-09,Platte,Missouri,29165,150,6 +2020-04-07,Polk,Missouri,29167,1,0 +2020-04-08,Polk,Missouri,29167,1,0 +2020-04-09,Polk,Missouri,29167,1,0 +2020-04-10,Polk,Missouri,29167,1,0 +2020-04-11,Polk,Missouri,29167,1,0 +2020-04-12,Polk,Missouri,29167,1,0 +2020-04-13,Polk,Missouri,29167,1,0 +2020-04-14,Polk,Missouri,29167,1,0 +2020-04-15,Polk,Missouri,29167,1,0 +2020-04-16,Polk,Missouri,29167,1,0 +2020-04-17,Polk,Missouri,29167,1,0 +2020-04-18,Polk,Missouri,29167,1,0 +2020-04-19,Polk,Missouri,29167,1,0 +2020-04-20,Polk,Missouri,29167,1,0 +2020-04-21,Polk,Missouri,29167,1,0 +2020-04-22,Polk,Missouri,29167,1,0 +2020-04-23,Polk,Missouri,29167,1,0 +2020-04-24,Polk,Missouri,29167,1,0 +2020-04-25,Polk,Missouri,29167,1,0 +2020-04-26,Polk,Missouri,29167,1,0 +2020-04-27,Polk,Missouri,29167,1,0 +2020-04-28,Polk,Missouri,29167,1,0 +2020-04-29,Polk,Missouri,29167,1,0 +2020-04-30,Polk,Missouri,29167,1,0 +2020-05-01,Polk,Missouri,29167,1,0 +2020-05-02,Polk,Missouri,29167,1,0 +2020-05-03,Polk,Missouri,29167,1,0 +2020-05-04,Polk,Missouri,29167,1,0 +2020-05-05,Polk,Missouri,29167,1,0 +2020-05-06,Polk,Missouri,29167,1,0 +2020-05-07,Polk,Missouri,29167,1,0 +2020-05-08,Polk,Missouri,29167,1,0 +2020-05-09,Polk,Missouri,29167,1,0 +2020-05-10,Polk,Missouri,29167,1,0 +2020-05-11,Polk,Missouri,29167,1,0 +2020-05-12,Polk,Missouri,29167,1,0 +2020-05-13,Polk,Missouri,29167,1,0 +2020-05-14,Polk,Missouri,29167,1,0 +2020-05-15,Polk,Missouri,29167,1,0 +2020-05-16,Polk,Missouri,29167,2,0 +2020-05-17,Polk,Missouri,29167,2,0 +2020-05-18,Polk,Missouri,29167,2,0 +2020-05-19,Polk,Missouri,29167,2,0 +2020-05-20,Polk,Missouri,29167,2,0 +2020-05-21,Polk,Missouri,29167,2,0 +2020-05-22,Polk,Missouri,29167,2,0 +2020-05-23,Polk,Missouri,29167,3,0 +2020-05-24,Polk,Missouri,29167,2,0 +2020-05-25,Polk,Missouri,29167,2,0 +2020-05-26,Polk,Missouri,29167,2,0 +2020-05-27,Polk,Missouri,29167,2,0 +2020-05-28,Polk,Missouri,29167,2,0 +2020-05-29,Polk,Missouri,29167,2,0 +2020-05-30,Polk,Missouri,29167,2,0 +2020-05-31,Polk,Missouri,29167,2,0 +2020-06-01,Polk,Missouri,29167,2,0 +2020-06-02,Polk,Missouri,29167,3,0 +2020-06-03,Polk,Missouri,29167,3,0 +2020-06-04,Polk,Missouri,29167,4,0 +2020-06-05,Polk,Missouri,29167,4,0 +2020-06-06,Polk,Missouri,29167,4,0 +2020-06-07,Polk,Missouri,29167,4,0 +2020-06-08,Polk,Missouri,29167,4,0 +2020-06-09,Polk,Missouri,29167,4,0 +2020-06-10,Polk,Missouri,29167,4,0 +2020-06-11,Polk,Missouri,29167,7,0 +2020-06-12,Polk,Missouri,29167,7,0 +2020-06-13,Polk,Missouri,29167,8,0 +2020-06-14,Polk,Missouri,29167,8,0 +2020-06-15,Polk,Missouri,29167,10,0 +2020-06-16,Polk,Missouri,29167,9,0 +2020-06-17,Polk,Missouri,29167,10,0 +2020-06-18,Polk,Missouri,29167,11,0 +2020-06-19,Polk,Missouri,29167,10,0 +2020-06-20,Polk,Missouri,29167,10,0 +2020-06-21,Polk,Missouri,29167,10,0 +2020-06-22,Polk,Missouri,29167,10,0 +2020-06-23,Polk,Missouri,29167,12,0 +2020-06-24,Polk,Missouri,29167,11,0 +2020-06-25,Polk,Missouri,29167,11,0 +2020-06-26,Polk,Missouri,29167,13,0 +2020-06-27,Polk,Missouri,29167,13,0 +2020-06-28,Polk,Missouri,29167,13,0 +2020-06-29,Polk,Missouri,29167,13,0 +2020-06-30,Polk,Missouri,29167,15,0 +2020-07-01,Polk,Missouri,29167,16,0 +2020-07-02,Polk,Missouri,29167,16,0 +2020-07-03,Polk,Missouri,29167,15,0 +2020-07-04,Polk,Missouri,29167,15,0 +2020-07-05,Polk,Missouri,29167,15,0 +2020-07-06,Polk,Missouri,29167,15,0 +2020-07-07,Polk,Missouri,29167,16,0 +2020-07-08,Polk,Missouri,29167,17,0 +2020-07-09,Polk,Missouri,29167,19,0 +2020-03-20,Pulaski,Missouri,29169,1,0 +2020-03-21,Pulaski,Missouri,29169,1,0 +2020-03-22,Pulaski,Missouri,29169,1,0 +2020-03-23,Pulaski,Missouri,29169,1,0 +2020-03-24,Pulaski,Missouri,29169,4,0 +2020-03-25,Pulaski,Missouri,29169,4,0 +2020-03-26,Pulaski,Missouri,29169,4,0 +2020-03-27,Pulaski,Missouri,29169,4,0 +2020-03-28,Pulaski,Missouri,29169,5,0 +2020-03-29,Pulaski,Missouri,29169,5,0 +2020-03-30,Pulaski,Missouri,29169,6,0 +2020-03-31,Pulaski,Missouri,29169,7,0 +2020-04-01,Pulaski,Missouri,29169,8,1 +2020-04-02,Pulaski,Missouri,29169,8,1 +2020-04-03,Pulaski,Missouri,29169,10,1 +2020-04-04,Pulaski,Missouri,29169,10,1 +2020-04-05,Pulaski,Missouri,29169,10,1 +2020-04-06,Pulaski,Missouri,29169,11,1 +2020-04-07,Pulaski,Missouri,29169,12,1 +2020-04-08,Pulaski,Missouri,29169,12,1 +2020-04-09,Pulaski,Missouri,29169,11,1 +2020-04-10,Pulaski,Missouri,29169,10,1 +2020-04-11,Pulaski,Missouri,29169,10,1 +2020-04-12,Pulaski,Missouri,29169,10,1 +2020-04-13,Pulaski,Missouri,29169,10,1 +2020-04-14,Pulaski,Missouri,29169,12,1 +2020-04-15,Pulaski,Missouri,29169,18,1 +2020-04-16,Pulaski,Missouri,29169,18,1 +2020-04-17,Pulaski,Missouri,29169,23,1 +2020-04-18,Pulaski,Missouri,29169,26,1 +2020-04-19,Pulaski,Missouri,29169,31,1 +2020-04-20,Pulaski,Missouri,29169,31,1 +2020-04-21,Pulaski,Missouri,29169,30,1 +2020-04-22,Pulaski,Missouri,29169,30,1 +2020-04-23,Pulaski,Missouri,29169,30,1 +2020-04-24,Pulaski,Missouri,29169,33,1 +2020-04-25,Pulaski,Missouri,29169,33,1 +2020-04-26,Pulaski,Missouri,29169,33,1 +2020-04-27,Pulaski,Missouri,29169,33,1 +2020-04-28,Pulaski,Missouri,29169,33,1 +2020-04-29,Pulaski,Missouri,29169,34,1 +2020-04-30,Pulaski,Missouri,29169,34,1 +2020-05-01,Pulaski,Missouri,29169,36,1 +2020-05-02,Pulaski,Missouri,29169,36,1 +2020-05-03,Pulaski,Missouri,29169,36,1 +2020-05-04,Pulaski,Missouri,29169,36,1 +2020-05-05,Pulaski,Missouri,29169,36,1 +2020-05-06,Pulaski,Missouri,29169,36,1 +2020-05-07,Pulaski,Missouri,29169,36,1 +2020-05-08,Pulaski,Missouri,29169,36,1 +2020-05-09,Pulaski,Missouri,29169,36,1 +2020-05-10,Pulaski,Missouri,29169,36,1 +2020-05-11,Pulaski,Missouri,29169,36,1 +2020-05-12,Pulaski,Missouri,29169,36,1 +2020-05-13,Pulaski,Missouri,29169,36,1 +2020-05-14,Pulaski,Missouri,29169,36,1 +2020-05-15,Pulaski,Missouri,29169,36,1 +2020-05-16,Pulaski,Missouri,29169,36,1 +2020-05-17,Pulaski,Missouri,29169,36,1 +2020-05-18,Pulaski,Missouri,29169,36,1 +2020-05-19,Pulaski,Missouri,29169,36,1 +2020-05-20,Pulaski,Missouri,29169,36,1 +2020-05-21,Pulaski,Missouri,29169,36,1 +2020-05-22,Pulaski,Missouri,29169,36,1 +2020-05-23,Pulaski,Missouri,29169,36,1 +2020-05-24,Pulaski,Missouri,29169,36,1 +2020-05-25,Pulaski,Missouri,29169,36,1 +2020-05-26,Pulaski,Missouri,29169,36,1 +2020-05-27,Pulaski,Missouri,29169,36,1 +2020-05-28,Pulaski,Missouri,29169,36,1 +2020-05-29,Pulaski,Missouri,29169,36,1 +2020-05-30,Pulaski,Missouri,29169,36,1 +2020-05-31,Pulaski,Missouri,29169,36,1 +2020-06-01,Pulaski,Missouri,29169,36,1 +2020-06-02,Pulaski,Missouri,29169,36,1 +2020-06-03,Pulaski,Missouri,29169,39,1 +2020-06-04,Pulaski,Missouri,29169,39,1 +2020-06-05,Pulaski,Missouri,29169,39,1 +2020-06-06,Pulaski,Missouri,29169,40,1 +2020-06-07,Pulaski,Missouri,29169,39,1 +2020-06-08,Pulaski,Missouri,29169,39,1 +2020-06-09,Pulaski,Missouri,29169,39,1 +2020-06-10,Pulaski,Missouri,29169,106,1 +2020-06-11,Pulaski,Missouri,29169,106,1 +2020-06-12,Pulaski,Missouri,29169,106,1 +2020-06-13,Pulaski,Missouri,29169,106,1 +2020-06-14,Pulaski,Missouri,29169,106,1 +2020-06-15,Pulaski,Missouri,29169,106,1 +2020-06-16,Pulaski,Missouri,29169,106,1 +2020-06-17,Pulaski,Missouri,29169,106,1 +2020-06-18,Pulaski,Missouri,29169,106,1 +2020-06-19,Pulaski,Missouri,29169,106,1 +2020-06-20,Pulaski,Missouri,29169,106,1 +2020-06-21,Pulaski,Missouri,29169,106,1 +2020-06-22,Pulaski,Missouri,29169,106,1 +2020-06-23,Pulaski,Missouri,29169,106,1 +2020-06-24,Pulaski,Missouri,29169,115,1 +2020-06-25,Pulaski,Missouri,29169,116,1 +2020-06-26,Pulaski,Missouri,29169,117,1 +2020-06-27,Pulaski,Missouri,29169,120,1 +2020-06-28,Pulaski,Missouri,29169,120,1 +2020-06-29,Pulaski,Missouri,29169,120,1 +2020-06-30,Pulaski,Missouri,29169,125,1 +2020-07-01,Pulaski,Missouri,29169,125,1 +2020-07-02,Pulaski,Missouri,29169,128,1 +2020-07-03,Pulaski,Missouri,29169,127,1 +2020-07-04,Pulaski,Missouri,29169,128,1 +2020-07-05,Pulaski,Missouri,29169,128,1 +2020-07-06,Pulaski,Missouri,29169,129,1 +2020-07-07,Pulaski,Missouri,29169,130,1 +2020-07-08,Pulaski,Missouri,29169,134,1 +2020-07-09,Pulaski,Missouri,29169,134,1 +2020-06-07,Putnam,Missouri,29171,1,0 +2020-06-08,Putnam,Missouri,29171,1,0 +2020-06-09,Putnam,Missouri,29171,1,0 +2020-06-10,Putnam,Missouri,29171,1,0 +2020-06-11,Putnam,Missouri,29171,1,0 +2020-06-12,Putnam,Missouri,29171,1,0 +2020-06-13,Putnam,Missouri,29171,1,0 +2020-06-14,Putnam,Missouri,29171,1,0 +2020-06-15,Putnam,Missouri,29171,1,0 +2020-06-16,Putnam,Missouri,29171,2,0 +2020-06-17,Putnam,Missouri,29171,2,0 +2020-06-18,Putnam,Missouri,29171,2,0 +2020-06-19,Putnam,Missouri,29171,2,0 +2020-06-20,Putnam,Missouri,29171,2,0 +2020-06-21,Putnam,Missouri,29171,2,0 +2020-06-22,Putnam,Missouri,29171,2,0 +2020-06-23,Putnam,Missouri,29171,2,0 +2020-06-24,Putnam,Missouri,29171,2,0 +2020-06-25,Putnam,Missouri,29171,2,0 +2020-06-26,Putnam,Missouri,29171,2,0 +2020-06-27,Putnam,Missouri,29171,2,0 +2020-06-28,Putnam,Missouri,29171,2,0 +2020-06-29,Putnam,Missouri,29171,2,0 +2020-06-30,Putnam,Missouri,29171,3,0 +2020-07-01,Putnam,Missouri,29171,3,0 +2020-07-02,Putnam,Missouri,29171,3,0 +2020-07-03,Putnam,Missouri,29171,3,0 +2020-07-04,Putnam,Missouri,29171,3,0 +2020-07-05,Putnam,Missouri,29171,3,0 +2020-07-06,Putnam,Missouri,29171,3,0 +2020-07-07,Putnam,Missouri,29171,4,0 +2020-07-08,Putnam,Missouri,29171,4,0 +2020-07-09,Putnam,Missouri,29171,3,0 +2020-03-25,Ralls,Missouri,29173,1,0 +2020-03-26,Ralls,Missouri,29173,1,0 +2020-03-27,Ralls,Missouri,29173,1,0 +2020-03-28,Ralls,Missouri,29173,1,0 +2020-03-29,Ralls,Missouri,29173,1,0 +2020-03-30,Ralls,Missouri,29173,1,0 +2020-03-31,Ralls,Missouri,29173,1,0 +2020-04-01,Ralls,Missouri,29173,1,0 +2020-04-02,Ralls,Missouri,29173,1,0 +2020-04-03,Ralls,Missouri,29173,1,0 +2020-04-04,Ralls,Missouri,29173,1,0 +2020-04-05,Ralls,Missouri,29173,1,0 +2020-04-06,Ralls,Missouri,29173,1,0 +2020-04-07,Ralls,Missouri,29173,1,0 +2020-04-08,Ralls,Missouri,29173,1,0 +2020-04-09,Ralls,Missouri,29173,1,0 +2020-04-10,Ralls,Missouri,29173,1,0 +2020-04-11,Ralls,Missouri,29173,1,0 +2020-04-12,Ralls,Missouri,29173,1,0 +2020-04-13,Ralls,Missouri,29173,1,0 +2020-04-14,Ralls,Missouri,29173,1,0 +2020-04-15,Ralls,Missouri,29173,1,0 +2020-04-16,Ralls,Missouri,29173,1,0 +2020-04-17,Ralls,Missouri,29173,1,0 +2020-04-18,Ralls,Missouri,29173,1,0 +2020-04-19,Ralls,Missouri,29173,1,0 +2020-04-20,Ralls,Missouri,29173,1,0 +2020-04-21,Ralls,Missouri,29173,1,0 +2020-04-22,Ralls,Missouri,29173,1,0 +2020-04-23,Ralls,Missouri,29173,1,0 +2020-04-24,Ralls,Missouri,29173,1,0 +2020-04-25,Ralls,Missouri,29173,1,0 +2020-04-26,Ralls,Missouri,29173,1,0 +2020-04-27,Ralls,Missouri,29173,1,0 +2020-04-28,Ralls,Missouri,29173,1,0 +2020-04-29,Ralls,Missouri,29173,1,0 +2020-04-30,Ralls,Missouri,29173,1,0 +2020-05-01,Ralls,Missouri,29173,1,0 +2020-05-02,Ralls,Missouri,29173,1,0 +2020-05-03,Ralls,Missouri,29173,1,0 +2020-05-04,Ralls,Missouri,29173,1,0 +2020-05-05,Ralls,Missouri,29173,1,0 +2020-05-06,Ralls,Missouri,29173,1,0 +2020-05-07,Ralls,Missouri,29173,1,0 +2020-05-08,Ralls,Missouri,29173,1,0 +2020-05-09,Ralls,Missouri,29173,1,0 +2020-05-10,Ralls,Missouri,29173,1,0 +2020-05-11,Ralls,Missouri,29173,1,0 +2020-05-12,Ralls,Missouri,29173,2,0 +2020-05-13,Ralls,Missouri,29173,2,0 +2020-05-14,Ralls,Missouri,29173,2,0 +2020-05-15,Ralls,Missouri,29173,2,0 +2020-05-16,Ralls,Missouri,29173,2,0 +2020-05-17,Ralls,Missouri,29173,2,0 +2020-05-18,Ralls,Missouri,29173,2,0 +2020-05-19,Ralls,Missouri,29173,2,0 +2020-05-20,Ralls,Missouri,29173,2,0 +2020-05-21,Ralls,Missouri,29173,2,0 +2020-05-22,Ralls,Missouri,29173,2,0 +2020-05-23,Ralls,Missouri,29173,2,0 +2020-05-24,Ralls,Missouri,29173,2,0 +2020-05-25,Ralls,Missouri,29173,2,0 +2020-05-26,Ralls,Missouri,29173,3,0 +2020-05-27,Ralls,Missouri,29173,3,0 +2020-05-28,Ralls,Missouri,29173,3,0 +2020-05-29,Ralls,Missouri,29173,3,0 +2020-05-30,Ralls,Missouri,29173,3,0 +2020-05-31,Ralls,Missouri,29173,5,0 +2020-06-01,Ralls,Missouri,29173,5,0 +2020-06-02,Ralls,Missouri,29173,5,0 +2020-06-03,Ralls,Missouri,29173,5,0 +2020-06-04,Ralls,Missouri,29173,5,0 +2020-06-05,Ralls,Missouri,29173,5,0 +2020-06-06,Ralls,Missouri,29173,5,0 +2020-06-07,Ralls,Missouri,29173,5,0 +2020-06-08,Ralls,Missouri,29173,5,0 +2020-06-09,Ralls,Missouri,29173,5,0 +2020-06-10,Ralls,Missouri,29173,5,0 +2020-06-11,Ralls,Missouri,29173,5,0 +2020-06-12,Ralls,Missouri,29173,5,0 +2020-06-13,Ralls,Missouri,29173,5,0 +2020-06-14,Ralls,Missouri,29173,5,0 +2020-06-15,Ralls,Missouri,29173,5,0 +2020-06-16,Ralls,Missouri,29173,5,0 +2020-06-17,Ralls,Missouri,29173,5,0 +2020-06-18,Ralls,Missouri,29173,5,0 +2020-06-19,Ralls,Missouri,29173,5,0 +2020-06-20,Ralls,Missouri,29173,6,0 +2020-06-21,Ralls,Missouri,29173,6,0 +2020-06-22,Ralls,Missouri,29173,6,0 +2020-06-23,Ralls,Missouri,29173,7,0 +2020-06-24,Ralls,Missouri,29173,9,0 +2020-06-25,Ralls,Missouri,29173,9,0 +2020-06-26,Ralls,Missouri,29173,9,0 +2020-06-27,Ralls,Missouri,29173,9,0 +2020-06-28,Ralls,Missouri,29173,9,0 +2020-06-29,Ralls,Missouri,29173,9,0 +2020-06-30,Ralls,Missouri,29173,10,0 +2020-07-01,Ralls,Missouri,29173,10,0 +2020-07-02,Ralls,Missouri,29173,10,0 +2020-07-03,Ralls,Missouri,29173,10,0 +2020-07-04,Ralls,Missouri,29173,10,0 +2020-07-05,Ralls,Missouri,29173,10,0 +2020-07-06,Ralls,Missouri,29173,10,0 +2020-07-07,Ralls,Missouri,29173,10,0 +2020-07-08,Ralls,Missouri,29173,10,0 +2020-07-09,Ralls,Missouri,29173,10,0 +2020-03-25,Randolph,Missouri,29175,1,0 +2020-03-26,Randolph,Missouri,29175,1,0 +2020-03-27,Randolph,Missouri,29175,1,0 +2020-03-28,Randolph,Missouri,29175,1,0 +2020-03-29,Randolph,Missouri,29175,1,0 +2020-03-30,Randolph,Missouri,29175,1,0 +2020-03-31,Randolph,Missouri,29175,2,0 +2020-04-01,Randolph,Missouri,29175,2,0 +2020-04-02,Randolph,Missouri,29175,2,0 +2020-04-03,Randolph,Missouri,29175,4,0 +2020-04-04,Randolph,Missouri,29175,7,0 +2020-04-05,Randolph,Missouri,29175,7,0 +2020-04-06,Randolph,Missouri,29175,7,0 +2020-04-07,Randolph,Missouri,29175,7,0 +2020-04-08,Randolph,Missouri,29175,7,0 +2020-04-09,Randolph,Missouri,29175,7,0 +2020-04-10,Randolph,Missouri,29175,8,0 +2020-04-11,Randolph,Missouri,29175,8,0 +2020-04-12,Randolph,Missouri,29175,8,0 +2020-04-13,Randolph,Missouri,29175,8,0 +2020-04-14,Randolph,Missouri,29175,8,0 +2020-04-15,Randolph,Missouri,29175,8,0 +2020-04-16,Randolph,Missouri,29175,8,0 +2020-04-17,Randolph,Missouri,29175,8,0 +2020-04-18,Randolph,Missouri,29175,8,0 +2020-04-19,Randolph,Missouri,29175,8,0 +2020-04-20,Randolph,Missouri,29175,8,0 +2020-04-21,Randolph,Missouri,29175,8,0 +2020-04-22,Randolph,Missouri,29175,8,0 +2020-04-23,Randolph,Missouri,29175,8,0 +2020-04-24,Randolph,Missouri,29175,8,0 +2020-04-25,Randolph,Missouri,29175,8,0 +2020-04-26,Randolph,Missouri,29175,8,0 +2020-04-27,Randolph,Missouri,29175,8,0 +2020-04-28,Randolph,Missouri,29175,8,0 +2020-04-29,Randolph,Missouri,29175,8,0 +2020-04-30,Randolph,Missouri,29175,8,0 +2020-05-01,Randolph,Missouri,29175,8,0 +2020-05-02,Randolph,Missouri,29175,8,0 +2020-05-03,Randolph,Missouri,29175,8,0 +2020-05-04,Randolph,Missouri,29175,8,0 +2020-05-05,Randolph,Missouri,29175,8,0 +2020-05-06,Randolph,Missouri,29175,8,0 +2020-05-07,Randolph,Missouri,29175,8,0 +2020-05-08,Randolph,Missouri,29175,8,0 +2020-05-09,Randolph,Missouri,29175,8,0 +2020-05-10,Randolph,Missouri,29175,8,0 +2020-05-11,Randolph,Missouri,29175,8,0 +2020-05-12,Randolph,Missouri,29175,8,0 +2020-05-13,Randolph,Missouri,29175,8,0 +2020-05-14,Randolph,Missouri,29175,8,0 +2020-05-15,Randolph,Missouri,29175,8,0 +2020-05-16,Randolph,Missouri,29175,8,0 +2020-05-17,Randolph,Missouri,29175,8,0 +2020-05-18,Randolph,Missouri,29175,8,0 +2020-05-19,Randolph,Missouri,29175,8,0 +2020-05-20,Randolph,Missouri,29175,8,0 +2020-05-21,Randolph,Missouri,29175,8,0 +2020-05-22,Randolph,Missouri,29175,8,0 +2020-05-23,Randolph,Missouri,29175,8,0 +2020-05-24,Randolph,Missouri,29175,9,0 +2020-05-25,Randolph,Missouri,29175,9,0 +2020-05-26,Randolph,Missouri,29175,9,0 +2020-05-27,Randolph,Missouri,29175,9,0 +2020-05-28,Randolph,Missouri,29175,9,0 +2020-05-29,Randolph,Missouri,29175,9,0 +2020-05-30,Randolph,Missouri,29175,10,0 +2020-05-31,Randolph,Missouri,29175,10,0 +2020-06-01,Randolph,Missouri,29175,10,0 +2020-06-02,Randolph,Missouri,29175,10,0 +2020-06-03,Randolph,Missouri,29175,10,0 +2020-06-04,Randolph,Missouri,29175,10,0 +2020-06-05,Randolph,Missouri,29175,10,0 +2020-06-06,Randolph,Missouri,29175,10,0 +2020-06-07,Randolph,Missouri,29175,10,0 +2020-06-08,Randolph,Missouri,29175,10,0 +2020-06-09,Randolph,Missouri,29175,10,0 +2020-06-10,Randolph,Missouri,29175,10,0 +2020-06-11,Randolph,Missouri,29175,10,0 +2020-06-12,Randolph,Missouri,29175,10,0 +2020-06-13,Randolph,Missouri,29175,10,0 +2020-06-14,Randolph,Missouri,29175,10,0 +2020-06-15,Randolph,Missouri,29175,11,0 +2020-06-16,Randolph,Missouri,29175,11,0 +2020-06-17,Randolph,Missouri,29175,11,0 +2020-06-18,Randolph,Missouri,29175,12,0 +2020-06-19,Randolph,Missouri,29175,12,0 +2020-06-20,Randolph,Missouri,29175,12,0 +2020-06-21,Randolph,Missouri,29175,12,0 +2020-06-22,Randolph,Missouri,29175,12,0 +2020-06-23,Randolph,Missouri,29175,12,0 +2020-06-24,Randolph,Missouri,29175,12,0 +2020-06-25,Randolph,Missouri,29175,12,0 +2020-06-26,Randolph,Missouri,29175,12,0 +2020-06-27,Randolph,Missouri,29175,12,0 +2020-06-28,Randolph,Missouri,29175,12,0 +2020-06-29,Randolph,Missouri,29175,12,0 +2020-06-30,Randolph,Missouri,29175,12,0 +2020-07-01,Randolph,Missouri,29175,12,0 +2020-07-02,Randolph,Missouri,29175,12,0 +2020-07-03,Randolph,Missouri,29175,12,0 +2020-07-04,Randolph,Missouri,29175,12,0 +2020-07-05,Randolph,Missouri,29175,12,0 +2020-07-06,Randolph,Missouri,29175,13,0 +2020-07-07,Randolph,Missouri,29175,13,0 +2020-07-08,Randolph,Missouri,29175,14,0 +2020-07-09,Randolph,Missouri,29175,14,0 +2020-03-27,Ray,Missouri,29177,1,0 +2020-03-28,Ray,Missouri,29177,1,0 +2020-03-29,Ray,Missouri,29177,1,0 +2020-03-30,Ray,Missouri,29177,1,0 +2020-03-31,Ray,Missouri,29177,1,0 +2020-04-01,Ray,Missouri,29177,1,0 +2020-04-02,Ray,Missouri,29177,1,0 +2020-04-03,Ray,Missouri,29177,2,0 +2020-04-04,Ray,Missouri,29177,3,0 +2020-04-05,Ray,Missouri,29177,4,0 +2020-04-06,Ray,Missouri,29177,4,0 +2020-04-07,Ray,Missouri,29177,7,0 +2020-04-08,Ray,Missouri,29177,7,0 +2020-04-09,Ray,Missouri,29177,7,0 +2020-04-10,Ray,Missouri,29177,7,0 +2020-04-11,Ray,Missouri,29177,7,0 +2020-04-12,Ray,Missouri,29177,7,0 +2020-04-13,Ray,Missouri,29177,7,0 +2020-04-14,Ray,Missouri,29177,7,0 +2020-04-15,Ray,Missouri,29177,7,0 +2020-04-16,Ray,Missouri,29177,7,0 +2020-04-17,Ray,Missouri,29177,7,0 +2020-04-18,Ray,Missouri,29177,7,0 +2020-04-19,Ray,Missouri,29177,7,0 +2020-04-20,Ray,Missouri,29177,7,0 +2020-04-21,Ray,Missouri,29177,7,0 +2020-04-22,Ray,Missouri,29177,7,0 +2020-04-23,Ray,Missouri,29177,10,0 +2020-04-24,Ray,Missouri,29177,10,0 +2020-04-25,Ray,Missouri,29177,10,0 +2020-04-26,Ray,Missouri,29177,11,0 +2020-04-27,Ray,Missouri,29177,11,0 +2020-04-28,Ray,Missouri,29177,12,0 +2020-04-29,Ray,Missouri,29177,11,0 +2020-04-30,Ray,Missouri,29177,11,0 +2020-05-01,Ray,Missouri,29177,11,0 +2020-05-02,Ray,Missouri,29177,11,0 +2020-05-03,Ray,Missouri,29177,11,0 +2020-05-04,Ray,Missouri,29177,11,0 +2020-05-05,Ray,Missouri,29177,11,0 +2020-05-06,Ray,Missouri,29177,11,0 +2020-05-07,Ray,Missouri,29177,12,0 +2020-05-08,Ray,Missouri,29177,12,0 +2020-05-09,Ray,Missouri,29177,12,0 +2020-05-10,Ray,Missouri,29177,12,0 +2020-05-11,Ray,Missouri,29177,12,0 +2020-05-12,Ray,Missouri,29177,12,0 +2020-05-13,Ray,Missouri,29177,12,0 +2020-05-14,Ray,Missouri,29177,12,0 +2020-05-15,Ray,Missouri,29177,12,0 +2020-05-16,Ray,Missouri,29177,13,0 +2020-05-17,Ray,Missouri,29177,13,0 +2020-05-18,Ray,Missouri,29177,14,0 +2020-05-19,Ray,Missouri,29177,14,0 +2020-05-20,Ray,Missouri,29177,14,0 +2020-05-21,Ray,Missouri,29177,14,0 +2020-05-22,Ray,Missouri,29177,15,0 +2020-05-23,Ray,Missouri,29177,15,0 +2020-05-24,Ray,Missouri,29177,16,0 +2020-05-25,Ray,Missouri,29177,16,0 +2020-05-26,Ray,Missouri,29177,18,0 +2020-05-27,Ray,Missouri,29177,19,0 +2020-05-28,Ray,Missouri,29177,19,0 +2020-05-29,Ray,Missouri,29177,19,0 +2020-05-30,Ray,Missouri,29177,19,0 +2020-05-31,Ray,Missouri,29177,19,0 +2020-06-01,Ray,Missouri,29177,19,0 +2020-06-02,Ray,Missouri,29177,19,0 +2020-06-03,Ray,Missouri,29177,22,0 +2020-06-04,Ray,Missouri,29177,23,0 +2020-06-05,Ray,Missouri,29177,23,0 +2020-06-06,Ray,Missouri,29177,23,0 +2020-06-07,Ray,Missouri,29177,23,0 +2020-06-08,Ray,Missouri,29177,23,0 +2020-06-09,Ray,Missouri,29177,24,0 +2020-06-10,Ray,Missouri,29177,24,0 +2020-06-11,Ray,Missouri,29177,24,0 +2020-06-12,Ray,Missouri,29177,24,0 +2020-06-13,Ray,Missouri,29177,25,0 +2020-06-14,Ray,Missouri,29177,25,0 +2020-06-15,Ray,Missouri,29177,25,0 +2020-06-16,Ray,Missouri,29177,25,0 +2020-06-17,Ray,Missouri,29177,25,0 +2020-06-18,Ray,Missouri,29177,25,0 +2020-06-19,Ray,Missouri,29177,25,0 +2020-06-20,Ray,Missouri,29177,25,0 +2020-06-21,Ray,Missouri,29177,25,0 +2020-06-22,Ray,Missouri,29177,25,0 +2020-06-23,Ray,Missouri,29177,25,0 +2020-06-24,Ray,Missouri,29177,25,0 +2020-06-25,Ray,Missouri,29177,25,0 +2020-06-26,Ray,Missouri,29177,25,0 +2020-06-27,Ray,Missouri,29177,25,0 +2020-06-28,Ray,Missouri,29177,25,0 +2020-06-29,Ray,Missouri,29177,25,0 +2020-06-30,Ray,Missouri,29177,25,0 +2020-07-01,Ray,Missouri,29177,26,0 +2020-07-02,Ray,Missouri,29177,26,0 +2020-07-03,Ray,Missouri,29177,27,0 +2020-07-04,Ray,Missouri,29177,27,0 +2020-07-05,Ray,Missouri,29177,27,0 +2020-07-06,Ray,Missouri,29177,28,0 +2020-07-07,Ray,Missouri,29177,29,0 +2020-07-08,Ray,Missouri,29177,30,0 +2020-07-09,Ray,Missouri,29177,30,0 +2020-03-30,Reynolds,Missouri,29179,2,0 +2020-03-31,Reynolds,Missouri,29179,2,0 +2020-04-01,Reynolds,Missouri,29179,2,0 +2020-04-02,Reynolds,Missouri,29179,2,0 +2020-04-03,Reynolds,Missouri,29179,2,0 +2020-04-04,Reynolds,Missouri,29179,2,0 +2020-04-05,Reynolds,Missouri,29179,2,0 +2020-04-06,Reynolds,Missouri,29179,2,0 +2020-04-07,Reynolds,Missouri,29179,2,0 +2020-04-08,Reynolds,Missouri,29179,2,0 +2020-04-09,Reynolds,Missouri,29179,2,0 +2020-04-10,Reynolds,Missouri,29179,2,0 +2020-04-11,Reynolds,Missouri,29179,2,0 +2020-04-12,Reynolds,Missouri,29179,2,0 +2020-04-13,Reynolds,Missouri,29179,2,0 +2020-04-14,Reynolds,Missouri,29179,2,0 +2020-04-15,Reynolds,Missouri,29179,2,0 +2020-04-16,Reynolds,Missouri,29179,2,0 +2020-04-17,Reynolds,Missouri,29179,2,0 +2020-04-18,Reynolds,Missouri,29179,2,0 +2020-04-19,Reynolds,Missouri,29179,2,0 +2020-04-20,Reynolds,Missouri,29179,2,0 +2020-04-21,Reynolds,Missouri,29179,2,0 +2020-04-22,Reynolds,Missouri,29179,2,0 +2020-04-23,Reynolds,Missouri,29179,2,0 +2020-04-24,Reynolds,Missouri,29179,2,0 +2020-04-25,Reynolds,Missouri,29179,2,0 +2020-04-26,Reynolds,Missouri,29179,2,0 +2020-04-27,Reynolds,Missouri,29179,2,0 +2020-04-28,Reynolds,Missouri,29179,2,0 +2020-04-29,Reynolds,Missouri,29179,2,0 +2020-04-30,Reynolds,Missouri,29179,2,0 +2020-05-01,Reynolds,Missouri,29179,2,0 +2020-05-02,Reynolds,Missouri,29179,2,0 +2020-05-03,Reynolds,Missouri,29179,2,0 +2020-05-04,Reynolds,Missouri,29179,2,0 +2020-05-05,Reynolds,Missouri,29179,2,0 +2020-05-06,Reynolds,Missouri,29179,2,0 +2020-05-07,Reynolds,Missouri,29179,2,0 +2020-05-08,Reynolds,Missouri,29179,2,0 +2020-05-09,Reynolds,Missouri,29179,2,0 +2020-05-10,Reynolds,Missouri,29179,2,0 +2020-05-11,Reynolds,Missouri,29179,2,0 +2020-05-12,Reynolds,Missouri,29179,2,0 +2020-05-13,Reynolds,Missouri,29179,2,0 +2020-05-14,Reynolds,Missouri,29179,2,0 +2020-05-15,Reynolds,Missouri,29179,2,0 +2020-05-16,Reynolds,Missouri,29179,2,0 +2020-05-17,Reynolds,Missouri,29179,2,0 +2020-05-18,Reynolds,Missouri,29179,2,0 +2020-05-19,Reynolds,Missouri,29179,2,0 +2020-05-20,Reynolds,Missouri,29179,2,0 +2020-05-21,Reynolds,Missouri,29179,2,0 +2020-05-22,Reynolds,Missouri,29179,2,0 +2020-05-23,Reynolds,Missouri,29179,2,0 +2020-05-24,Reynolds,Missouri,29179,2,0 +2020-05-25,Reynolds,Missouri,29179,2,0 +2020-05-26,Reynolds,Missouri,29179,2,0 +2020-05-27,Reynolds,Missouri,29179,2,0 +2020-05-28,Reynolds,Missouri,29179,2,0 +2020-05-29,Reynolds,Missouri,29179,2,0 +2020-05-30,Reynolds,Missouri,29179,2,0 +2020-05-31,Reynolds,Missouri,29179,2,0 +2020-06-01,Reynolds,Missouri,29179,2,0 +2020-06-02,Reynolds,Missouri,29179,2,0 +2020-06-03,Reynolds,Missouri,29179,2,0 +2020-06-04,Reynolds,Missouri,29179,2,0 +2020-06-05,Reynolds,Missouri,29179,2,0 +2020-06-06,Reynolds,Missouri,29179,2,0 +2020-06-07,Reynolds,Missouri,29179,2,0 +2020-06-08,Reynolds,Missouri,29179,2,0 +2020-06-09,Reynolds,Missouri,29179,2,0 +2020-06-10,Reynolds,Missouri,29179,2,0 +2020-06-11,Reynolds,Missouri,29179,2,0 +2020-06-12,Reynolds,Missouri,29179,2,0 +2020-06-13,Reynolds,Missouri,29179,2,0 +2020-06-14,Reynolds,Missouri,29179,2,0 +2020-06-15,Reynolds,Missouri,29179,2,0 +2020-06-16,Reynolds,Missouri,29179,2,0 +2020-06-17,Reynolds,Missouri,29179,2,0 +2020-06-18,Reynolds,Missouri,29179,3,0 +2020-06-19,Reynolds,Missouri,29179,2,0 +2020-06-20,Reynolds,Missouri,29179,2,0 +2020-06-21,Reynolds,Missouri,29179,2,0 +2020-06-22,Reynolds,Missouri,29179,2,0 +2020-06-23,Reynolds,Missouri,29179,2,0 +2020-06-24,Reynolds,Missouri,29179,2,0 +2020-06-25,Reynolds,Missouri,29179,2,0 +2020-06-26,Reynolds,Missouri,29179,2,0 +2020-06-27,Reynolds,Missouri,29179,2,0 +2020-06-28,Reynolds,Missouri,29179,2,0 +2020-06-29,Reynolds,Missouri,29179,2,0 +2020-06-30,Reynolds,Missouri,29179,2,0 +2020-07-01,Reynolds,Missouri,29179,2,0 +2020-07-02,Reynolds,Missouri,29179,2,0 +2020-07-03,Reynolds,Missouri,29179,2,0 +2020-07-04,Reynolds,Missouri,29179,2,0 +2020-07-05,Reynolds,Missouri,29179,2,0 +2020-07-06,Reynolds,Missouri,29179,2,0 +2020-07-07,Reynolds,Missouri,29179,2,0 +2020-07-08,Reynolds,Missouri,29179,2,0 +2020-07-09,Reynolds,Missouri,29179,5,0 +2020-03-28,Ripley,Missouri,29181,1,0 +2020-03-29,Ripley,Missouri,29181,2,0 +2020-03-30,Ripley,Missouri,29181,2,0 +2020-03-31,Ripley,Missouri,29181,2,0 +2020-04-01,Ripley,Missouri,29181,2,0 +2020-04-02,Ripley,Missouri,29181,2,0 +2020-04-03,Ripley,Missouri,29181,2,0 +2020-04-04,Ripley,Missouri,29181,2,0 +2020-04-05,Ripley,Missouri,29181,2,0 +2020-04-06,Ripley,Missouri,29181,2,0 +2020-04-07,Ripley,Missouri,29181,2,0 +2020-04-08,Ripley,Missouri,29181,2,0 +2020-04-09,Ripley,Missouri,29181,2,0 +2020-04-10,Ripley,Missouri,29181,3,0 +2020-04-11,Ripley,Missouri,29181,3,0 +2020-04-12,Ripley,Missouri,29181,3,0 +2020-04-13,Ripley,Missouri,29181,3,0 +2020-04-14,Ripley,Missouri,29181,3,0 +2020-04-15,Ripley,Missouri,29181,3,0 +2020-04-16,Ripley,Missouri,29181,3,0 +2020-04-17,Ripley,Missouri,29181,3,0 +2020-04-18,Ripley,Missouri,29181,4,0 +2020-04-19,Ripley,Missouri,29181,3,0 +2020-04-20,Ripley,Missouri,29181,3,0 +2020-04-21,Ripley,Missouri,29181,3,0 +2020-04-22,Ripley,Missouri,29181,4,0 +2020-04-23,Ripley,Missouri,29181,4,0 +2020-04-24,Ripley,Missouri,29181,4,0 +2020-04-25,Ripley,Missouri,29181,5,0 +2020-04-26,Ripley,Missouri,29181,5,0 +2020-04-27,Ripley,Missouri,29181,5,0 +2020-04-28,Ripley,Missouri,29181,5,0 +2020-04-29,Ripley,Missouri,29181,5,0 +2020-04-30,Ripley,Missouri,29181,5,0 +2020-05-01,Ripley,Missouri,29181,5,0 +2020-05-02,Ripley,Missouri,29181,5,0 +2020-05-03,Ripley,Missouri,29181,5,0 +2020-05-04,Ripley,Missouri,29181,5,0 +2020-05-05,Ripley,Missouri,29181,5,0 +2020-05-06,Ripley,Missouri,29181,5,0 +2020-05-07,Ripley,Missouri,29181,5,0 +2020-05-08,Ripley,Missouri,29181,5,0 +2020-05-09,Ripley,Missouri,29181,5,0 +2020-05-10,Ripley,Missouri,29181,5,0 +2020-05-11,Ripley,Missouri,29181,5,0 +2020-05-12,Ripley,Missouri,29181,5,0 +2020-05-13,Ripley,Missouri,29181,5,0 +2020-05-14,Ripley,Missouri,29181,6,0 +2020-05-15,Ripley,Missouri,29181,6,0 +2020-05-16,Ripley,Missouri,29181,6,0 +2020-05-17,Ripley,Missouri,29181,6,0 +2020-05-18,Ripley,Missouri,29181,7,0 +2020-05-19,Ripley,Missouri,29181,7,0 +2020-05-20,Ripley,Missouri,29181,7,0 +2020-05-21,Ripley,Missouri,29181,7,0 +2020-05-22,Ripley,Missouri,29181,7,0 +2020-05-23,Ripley,Missouri,29181,7,0 +2020-05-24,Ripley,Missouri,29181,7,0 +2020-05-25,Ripley,Missouri,29181,7,0 +2020-05-26,Ripley,Missouri,29181,7,0 +2020-05-27,Ripley,Missouri,29181,7,0 +2020-05-28,Ripley,Missouri,29181,7,0 +2020-05-29,Ripley,Missouri,29181,7,0 +2020-05-30,Ripley,Missouri,29181,7,0 +2020-05-31,Ripley,Missouri,29181,7,0 +2020-06-01,Ripley,Missouri,29181,7,0 +2020-06-02,Ripley,Missouri,29181,8,0 +2020-06-03,Ripley,Missouri,29181,10,0 +2020-06-04,Ripley,Missouri,29181,10,0 +2020-06-05,Ripley,Missouri,29181,11,0 +2020-06-06,Ripley,Missouri,29181,11,0 +2020-06-07,Ripley,Missouri,29181,11,0 +2020-06-08,Ripley,Missouri,29181,11,0 +2020-06-09,Ripley,Missouri,29181,11,0 +2020-06-10,Ripley,Missouri,29181,11,0 +2020-06-11,Ripley,Missouri,29181,11,0 +2020-06-12,Ripley,Missouri,29181,12,0 +2020-06-13,Ripley,Missouri,29181,11,0 +2020-06-14,Ripley,Missouri,29181,11,0 +2020-06-15,Ripley,Missouri,29181,11,0 +2020-06-16,Ripley,Missouri,29181,11,0 +2020-06-17,Ripley,Missouri,29181,12,0 +2020-06-18,Ripley,Missouri,29181,12,0 +2020-06-19,Ripley,Missouri,29181,12,0 +2020-06-20,Ripley,Missouri,29181,14,0 +2020-06-21,Ripley,Missouri,29181,14,0 +2020-06-22,Ripley,Missouri,29181,14,0 +2020-06-23,Ripley,Missouri,29181,14,0 +2020-06-24,Ripley,Missouri,29181,16,0 +2020-06-25,Ripley,Missouri,29181,17,0 +2020-06-26,Ripley,Missouri,29181,17,0 +2020-06-27,Ripley,Missouri,29181,17,0 +2020-06-28,Ripley,Missouri,29181,18,0 +2020-06-29,Ripley,Missouri,29181,19,0 +2020-06-30,Ripley,Missouri,29181,19,0 +2020-07-01,Ripley,Missouri,29181,19,0 +2020-07-02,Ripley,Missouri,29181,19,0 +2020-07-03,Ripley,Missouri,29181,19,0 +2020-07-04,Ripley,Missouri,29181,19,0 +2020-07-05,Ripley,Missouri,29181,19,0 +2020-07-06,Ripley,Missouri,29181,19,0 +2020-07-07,Ripley,Missouri,29181,19,0 +2020-07-08,Ripley,Missouri,29181,20,0 +2020-07-09,Ripley,Missouri,29181,20,0 +2020-03-18,St. Charles,Missouri,29183,1,0 +2020-03-19,St. Charles,Missouri,29183,1,0 +2020-03-20,St. Charles,Missouri,29183,3,0 +2020-03-21,St. Charles,Missouri,29183,3,0 +2020-03-22,St. Charles,Missouri,29183,3,0 +2020-03-23,St. Charles,Missouri,29183,4,0 +2020-03-24,St. Charles,Missouri,29183,4,0 +2020-03-25,St. Charles,Missouri,29183,18,1 +2020-03-26,St. Charles,Missouri,29183,22,1 +2020-03-27,St. Charles,Missouri,29183,32,1 +2020-03-28,St. Charles,Missouri,29183,37,2 +2020-03-29,St. Charles,Missouri,29183,43,2 +2020-03-30,St. Charles,Missouri,29183,56,2 +2020-03-31,St. Charles,Missouri,29183,95,3 +2020-04-01,St. Charles,Missouri,29183,95,3 +2020-04-02,St. Charles,Missouri,29183,105,5 +2020-04-03,St. Charles,Missouri,29183,132,5 +2020-04-04,St. Charles,Missouri,29183,143,7 +2020-04-05,St. Charles,Missouri,29183,157,7 +2020-04-06,St. Charles,Missouri,29183,188,7 +2020-04-07,St. Charles,Missouri,29183,221,9 +2020-04-08,St. Charles,Missouri,29183,254,10 +2020-04-09,St. Charles,Missouri,29183,274,11 +2020-04-10,St. Charles,Missouri,29183,298,11 +2020-04-11,St. Charles,Missouri,29183,320,11 +2020-04-12,St. Charles,Missouri,29183,328,11 +2020-04-13,St. Charles,Missouri,29183,346,14 +2020-04-14,St. Charles,Missouri,29183,368,16 +2020-04-15,St. Charles,Missouri,29183,392,17 +2020-04-16,St. Charles,Missouri,29183,405,17 +2020-04-17,St. Charles,Missouri,29183,417,17 +2020-04-18,St. Charles,Missouri,29183,426,18 +2020-04-19,St. Charles,Missouri,29183,435,19 +2020-04-20,St. Charles,Missouri,29183,447,23 +2020-04-21,St. Charles,Missouri,29183,458,24 +2020-04-22,St. Charles,Missouri,29183,467,25 +2020-04-23,St. Charles,Missouri,29183,476,26 +2020-04-24,St. Charles,Missouri,29183,502,26 +2020-04-25,St. Charles,Missouri,29183,513,29 +2020-04-26,St. Charles,Missouri,29183,526,31 +2020-04-27,St. Charles,Missouri,29183,543,31 +2020-04-28,St. Charles,Missouri,29183,555,34 +2020-04-29,St. Charles,Missouri,29183,560,34 +2020-04-30,St. Charles,Missouri,29183,566,34 +2020-05-01,St. Charles,Missouri,29183,577,35 +2020-05-02,St. Charles,Missouri,29183,596,41 +2020-05-03,St. Charles,Missouri,29183,612,41 +2020-05-04,St. Charles,Missouri,29183,624,42 +2020-05-05,St. Charles,Missouri,29183,626,43 +2020-05-06,St. Charles,Missouri,29183,639,45 +2020-05-07,St. Charles,Missouri,29183,646,46 +2020-05-08,St. Charles,Missouri,29183,663,46 +2020-05-09,St. Charles,Missouri,29183,668,46 +2020-05-10,St. Charles,Missouri,29183,670,47 +2020-05-11,St. Charles,Missouri,29183,684,50 +2020-05-12,St. Charles,Missouri,29183,680,50 +2020-05-13,St. Charles,Missouri,29183,681,50 +2020-05-14,St. Charles,Missouri,29183,688,52 +2020-05-15,St. Charles,Missouri,29183,688,52 +2020-05-16,St. Charles,Missouri,29183,695,52 +2020-05-17,St. Charles,Missouri,29183,701,52 +2020-05-18,St. Charles,Missouri,29183,705,53 +2020-05-19,St. Charles,Missouri,29183,712,53 +2020-05-20,St. Charles,Missouri,29183,715,55 +2020-05-21,St. Charles,Missouri,29183,714,54 +2020-05-22,St. Charles,Missouri,29183,726,54 +2020-05-23,St. Charles,Missouri,29183,730,54 +2020-05-24,St. Charles,Missouri,29183,741,54 +2020-05-25,St. Charles,Missouri,29183,743,54 +2020-05-26,St. Charles,Missouri,29183,748,54 +2020-05-27,St. Charles,Missouri,29183,755,55 +2020-05-28,St. Charles,Missouri,29183,763,55 +2020-05-29,St. Charles,Missouri,29183,768,57 +2020-05-30,St. Charles,Missouri,29183,775,58 +2020-05-31,St. Charles,Missouri,29183,780,59 +2020-06-01,St. Charles,Missouri,29183,787,60 +2020-06-02,St. Charles,Missouri,29183,799,61 +2020-06-03,St. Charles,Missouri,29183,809,61 +2020-06-04,St. Charles,Missouri,29183,821,62 +2020-06-05,St. Charles,Missouri,29183,835,62 +2020-06-06,St. Charles,Missouri,29183,838,62 +2020-06-07,St. Charles,Missouri,29183,844,62 +2020-06-08,St. Charles,Missouri,29183,851,63 +2020-06-09,St. Charles,Missouri,29183,867,63 +2020-06-10,St. Charles,Missouri,29183,879,63 +2020-06-11,St. Charles,Missouri,29183,879,63 +2020-06-12,St. Charles,Missouri,29183,888,64 +2020-06-13,St. Charles,Missouri,29183,895,67 +2020-06-14,St. Charles,Missouri,29183,909,67 +2020-06-15,St. Charles,Missouri,29183,918,67 +2020-06-16,St. Charles,Missouri,29183,924,67 +2020-06-17,St. Charles,Missouri,29183,934,67 +2020-06-18,St. Charles,Missouri,29183,939,72 +2020-06-19,St. Charles,Missouri,29183,945,72 +2020-06-20,St. Charles,Missouri,29183,951,72 +2020-06-21,St. Charles,Missouri,29183,954,72 +2020-06-22,St. Charles,Missouri,29183,959,72 +2020-06-23,St. Charles,Missouri,29183,974,73 +2020-06-24,St. Charles,Missouri,29183,997,73 +2020-06-25,St. Charles,Missouri,29183,1011,73 +2020-06-26,St. Charles,Missouri,29183,1020,73 +2020-06-27,St. Charles,Missouri,29183,1020,73 +2020-06-28,St. Charles,Missouri,29183,1045,73 +2020-06-29,St. Charles,Missouri,29183,1073,74 +2020-06-30,St. Charles,Missouri,29183,1078,74 +2020-07-01,St. Charles,Missouri,29183,1095,76 +2020-07-02,St. Charles,Missouri,29183,1135,76 +2020-07-03,St. Charles,Missouri,29183,1163,76 +2020-07-04,St. Charles,Missouri,29183,1183,76 +2020-07-05,St. Charles,Missouri,29183,1204,76 +2020-07-06,St. Charles,Missouri,29183,1239,77 +2020-07-07,St. Charles,Missouri,29183,1288,77 +2020-07-08,St. Charles,Missouri,29183,1355,77 +2020-07-09,St. Charles,Missouri,29183,1456,77 +2020-04-09,St. Clair,Missouri,29185,2,0 +2020-04-10,St. Clair,Missouri,29185,2,0 +2020-04-11,St. Clair,Missouri,29185,2,0 +2020-04-12,St. Clair,Missouri,29185,2,0 +2020-04-13,St. Clair,Missouri,29185,2,0 +2020-04-14,St. Clair,Missouri,29185,2,0 +2020-04-15,St. Clair,Missouri,29185,2,0 +2020-04-16,St. Clair,Missouri,29185,2,0 +2020-04-17,St. Clair,Missouri,29185,2,0 +2020-04-18,St. Clair,Missouri,29185,2,0 +2020-04-19,St. Clair,Missouri,29185,2,0 +2020-04-20,St. Clair,Missouri,29185,2,0 +2020-04-21,St. Clair,Missouri,29185,2,0 +2020-04-22,St. Clair,Missouri,29185,2,0 +2020-04-23,St. Clair,Missouri,29185,2,0 +2020-04-24,St. Clair,Missouri,29185,2,0 +2020-04-25,St. Clair,Missouri,29185,2,0 +2020-04-26,St. Clair,Missouri,29185,2,0 +2020-04-27,St. Clair,Missouri,29185,2,0 +2020-04-28,St. Clair,Missouri,29185,2,0 +2020-04-29,St. Clair,Missouri,29185,2,0 +2020-04-30,St. Clair,Missouri,29185,2,0 +2020-05-01,St. Clair,Missouri,29185,2,0 +2020-05-02,St. Clair,Missouri,29185,2,0 +2020-05-03,St. Clair,Missouri,29185,2,0 +2020-05-04,St. Clair,Missouri,29185,2,0 +2020-05-05,St. Clair,Missouri,29185,2,0 +2020-05-06,St. Clair,Missouri,29185,2,0 +2020-05-07,St. Clair,Missouri,29185,2,0 +2020-05-08,St. Clair,Missouri,29185,2,0 +2020-05-09,St. Clair,Missouri,29185,2,0 +2020-05-10,St. Clair,Missouri,29185,2,0 +2020-05-11,St. Clair,Missouri,29185,2,0 +2020-05-12,St. Clair,Missouri,29185,2,0 +2020-05-13,St. Clair,Missouri,29185,2,0 +2020-05-14,St. Clair,Missouri,29185,2,0 +2020-05-15,St. Clair,Missouri,29185,2,0 +2020-05-16,St. Clair,Missouri,29185,2,0 +2020-05-17,St. Clair,Missouri,29185,2,0 +2020-05-18,St. Clair,Missouri,29185,2,0 +2020-05-19,St. Clair,Missouri,29185,3,0 +2020-05-20,St. Clair,Missouri,29185,2,0 +2020-05-21,St. Clair,Missouri,29185,2,0 +2020-05-22,St. Clair,Missouri,29185,2,0 +2020-05-23,St. Clair,Missouri,29185,2,0 +2020-05-24,St. Clair,Missouri,29185,2,0 +2020-05-25,St. Clair,Missouri,29185,2,0 +2020-05-26,St. Clair,Missouri,29185,2,0 +2020-05-27,St. Clair,Missouri,29185,2,0 +2020-05-28,St. Clair,Missouri,29185,2,0 +2020-05-29,St. Clair,Missouri,29185,2,0 +2020-05-30,St. Clair,Missouri,29185,2,0 +2020-05-31,St. Clair,Missouri,29185,2,0 +2020-06-01,St. Clair,Missouri,29185,2,0 +2020-06-02,St. Clair,Missouri,29185,2,0 +2020-06-03,St. Clair,Missouri,29185,2,0 +2020-06-04,St. Clair,Missouri,29185,2,0 +2020-06-05,St. Clair,Missouri,29185,2,0 +2020-06-06,St. Clair,Missouri,29185,2,0 +2020-06-07,St. Clair,Missouri,29185,2,0 +2020-06-08,St. Clair,Missouri,29185,2,0 +2020-06-09,St. Clair,Missouri,29185,2,0 +2020-06-10,St. Clair,Missouri,29185,2,0 +2020-06-11,St. Clair,Missouri,29185,2,0 +2020-06-12,St. Clair,Missouri,29185,2,0 +2020-06-13,St. Clair,Missouri,29185,2,0 +2020-06-14,St. Clair,Missouri,29185,2,0 +2020-06-15,St. Clair,Missouri,29185,2,0 +2020-06-16,St. Clair,Missouri,29185,2,0 +2020-06-17,St. Clair,Missouri,29185,2,0 +2020-06-18,St. Clair,Missouri,29185,2,0 +2020-06-19,St. Clair,Missouri,29185,2,0 +2020-06-20,St. Clair,Missouri,29185,2,0 +2020-06-21,St. Clair,Missouri,29185,2,0 +2020-06-22,St. Clair,Missouri,29185,2,0 +2020-06-23,St. Clair,Missouri,29185,2,0 +2020-06-24,St. Clair,Missouri,29185,2,0 +2020-06-25,St. Clair,Missouri,29185,2,0 +2020-06-26,St. Clair,Missouri,29185,2,0 +2020-06-27,St. Clair,Missouri,29185,2,0 +2020-06-28,St. Clair,Missouri,29185,2,0 +2020-06-29,St. Clair,Missouri,29185,2,0 +2020-06-30,St. Clair,Missouri,29185,2,0 +2020-07-01,St. Clair,Missouri,29185,2,0 +2020-07-02,St. Clair,Missouri,29185,2,0 +2020-07-03,St. Clair,Missouri,29185,2,0 +2020-07-04,St. Clair,Missouri,29185,2,0 +2020-07-05,St. Clair,Missouri,29185,2,0 +2020-07-06,St. Clair,Missouri,29185,2,0 +2020-07-07,St. Clair,Missouri,29185,2,0 +2020-07-08,St. Clair,Missouri,29185,3,0 +2020-07-09,St. Clair,Missouri,29185,3,0 +2020-03-31,Ste. Genevieve,Missouri,29186,2,0 +2020-04-01,Ste. Genevieve,Missouri,29186,2,0 +2020-04-02,Ste. Genevieve,Missouri,29186,3,0 +2020-04-03,Ste. Genevieve,Missouri,29186,6,0 +2020-04-04,Ste. Genevieve,Missouri,29186,6,0 +2020-04-05,Ste. Genevieve,Missouri,29186,6,0 +2020-04-06,Ste. Genevieve,Missouri,29186,6,1 +2020-04-07,Ste. Genevieve,Missouri,29186,6,1 +2020-04-08,Ste. Genevieve,Missouri,29186,6,1 +2020-04-09,Ste. Genevieve,Missouri,29186,6,1 +2020-04-10,Ste. Genevieve,Missouri,29186,6,1 +2020-04-11,Ste. Genevieve,Missouri,29186,6,1 +2020-04-12,Ste. Genevieve,Missouri,29186,7,1 +2020-04-13,Ste. Genevieve,Missouri,29186,7,1 +2020-04-14,Ste. Genevieve,Missouri,29186,7,1 +2020-04-15,Ste. Genevieve,Missouri,29186,7,1 +2020-04-16,Ste. Genevieve,Missouri,29186,7,1 +2020-04-17,Ste. Genevieve,Missouri,29186,7,1 +2020-04-18,Ste. Genevieve,Missouri,29186,7,1 +2020-04-19,Ste. Genevieve,Missouri,29186,7,1 +2020-04-20,Ste. Genevieve,Missouri,29186,7,1 +2020-04-21,Ste. Genevieve,Missouri,29186,7,1 +2020-04-22,Ste. Genevieve,Missouri,29186,7,1 +2020-04-23,Ste. Genevieve,Missouri,29186,7,1 +2020-04-24,Ste. Genevieve,Missouri,29186,7,1 +2020-04-25,Ste. Genevieve,Missouri,29186,7,1 +2020-04-26,Ste. Genevieve,Missouri,29186,7,1 +2020-04-27,Ste. Genevieve,Missouri,29186,7,1 +2020-04-28,Ste. Genevieve,Missouri,29186,7,1 +2020-04-29,Ste. Genevieve,Missouri,29186,7,1 +2020-04-30,Ste. Genevieve,Missouri,29186,7,1 +2020-05-01,Ste. Genevieve,Missouri,29186,8,1 +2020-05-02,Ste. Genevieve,Missouri,29186,8,1 +2020-05-03,Ste. Genevieve,Missouri,29186,7,1 +2020-05-04,Ste. Genevieve,Missouri,29186,9,1 +2020-05-05,Ste. Genevieve,Missouri,29186,9,1 +2020-05-06,Ste. Genevieve,Missouri,29186,9,1 +2020-05-07,Ste. Genevieve,Missouri,29186,8,1 +2020-05-08,Ste. Genevieve,Missouri,29186,8,1 +2020-05-09,Ste. Genevieve,Missouri,29186,8,1 +2020-05-10,Ste. Genevieve,Missouri,29186,8,1 +2020-05-11,Ste. Genevieve,Missouri,29186,8,1 +2020-05-12,Ste. Genevieve,Missouri,29186,8,1 +2020-05-13,Ste. Genevieve,Missouri,29186,8,1 +2020-05-14,Ste. Genevieve,Missouri,29186,8,1 +2020-05-15,Ste. Genevieve,Missouri,29186,8,1 +2020-05-16,Ste. Genevieve,Missouri,29186,8,1 +2020-05-17,Ste. Genevieve,Missouri,29186,8,1 +2020-05-18,Ste. Genevieve,Missouri,29186,8,1 +2020-05-19,Ste. Genevieve,Missouri,29186,8,1 +2020-05-20,Ste. Genevieve,Missouri,29186,8,1 +2020-05-21,Ste. Genevieve,Missouri,29186,8,1 +2020-05-22,Ste. Genevieve,Missouri,29186,8,1 +2020-05-23,Ste. Genevieve,Missouri,29186,8,1 +2020-05-24,Ste. Genevieve,Missouri,29186,8,1 +2020-05-25,Ste. Genevieve,Missouri,29186,8,1 +2020-05-26,Ste. Genevieve,Missouri,29186,9,1 +2020-05-27,Ste. Genevieve,Missouri,29186,9,1 +2020-05-28,Ste. Genevieve,Missouri,29186,9,1 +2020-05-29,Ste. Genevieve,Missouri,29186,11,1 +2020-05-30,Ste. Genevieve,Missouri,29186,12,1 +2020-05-31,Ste. Genevieve,Missouri,29186,12,1 +2020-06-01,Ste. Genevieve,Missouri,29186,11,1 +2020-06-02,Ste. Genevieve,Missouri,29186,11,1 +2020-06-03,Ste. Genevieve,Missouri,29186,12,1 +2020-06-04,Ste. Genevieve,Missouri,29186,12,1 +2020-06-05,Ste. Genevieve,Missouri,29186,12,1 +2020-06-06,Ste. Genevieve,Missouri,29186,12,1 +2020-06-07,Ste. Genevieve,Missouri,29186,12,1 +2020-06-08,Ste. Genevieve,Missouri,29186,12,1 +2020-06-09,Ste. Genevieve,Missouri,29186,12,1 +2020-06-10,Ste. Genevieve,Missouri,29186,13,1 +2020-06-11,Ste. Genevieve,Missouri,29186,13,1 +2020-06-12,Ste. Genevieve,Missouri,29186,13,1 +2020-06-13,Ste. Genevieve,Missouri,29186,14,1 +2020-06-14,Ste. Genevieve,Missouri,29186,14,1 +2020-06-15,Ste. Genevieve,Missouri,29186,14,1 +2020-06-16,Ste. Genevieve,Missouri,29186,14,1 +2020-06-17,Ste. Genevieve,Missouri,29186,14,1 +2020-06-18,Ste. Genevieve,Missouri,29186,14,1 +2020-06-19,Ste. Genevieve,Missouri,29186,14,1 +2020-06-20,Ste. Genevieve,Missouri,29186,16,1 +2020-06-21,Ste. Genevieve,Missouri,29186,16,1 +2020-06-22,Ste. Genevieve,Missouri,29186,16,1 +2020-06-23,Ste. Genevieve,Missouri,29186,16,1 +2020-06-24,Ste. Genevieve,Missouri,29186,16,1 +2020-06-25,Ste. Genevieve,Missouri,29186,17,1 +2020-06-26,Ste. Genevieve,Missouri,29186,17,1 +2020-06-27,Ste. Genevieve,Missouri,29186,17,1 +2020-06-28,Ste. Genevieve,Missouri,29186,18,1 +2020-06-29,Ste. Genevieve,Missouri,29186,19,1 +2020-06-30,Ste. Genevieve,Missouri,29186,20,1 +2020-07-01,Ste. Genevieve,Missouri,29186,20,1 +2020-07-02,Ste. Genevieve,Missouri,29186,20,1 +2020-07-03,Ste. Genevieve,Missouri,29186,20,1 +2020-07-04,Ste. Genevieve,Missouri,29186,20,1 +2020-07-05,Ste. Genevieve,Missouri,29186,20,1 +2020-07-06,Ste. Genevieve,Missouri,29186,21,1 +2020-07-07,Ste. Genevieve,Missouri,29186,22,1 +2020-07-08,Ste. Genevieve,Missouri,29186,22,1 +2020-07-09,Ste. Genevieve,Missouri,29186,23,1 +2020-03-23,St. Francois,Missouri,29187,1,0 +2020-03-24,St. Francois,Missouri,29187,1,0 +2020-03-25,St. Francois,Missouri,29187,2,0 +2020-03-26,St. Francois,Missouri,29187,2,0 +2020-03-27,St. Francois,Missouri,29187,4,0 +2020-03-28,St. Francois,Missouri,29187,4,0 +2020-03-29,St. Francois,Missouri,29187,4,0 +2020-03-30,St. Francois,Missouri,29187,3,0 +2020-03-31,St. Francois,Missouri,29187,5,0 +2020-04-01,St. Francois,Missouri,29187,5,0 +2020-04-02,St. Francois,Missouri,29187,9,0 +2020-04-03,St. Francois,Missouri,29187,12,0 +2020-04-04,St. Francois,Missouri,29187,14,0 +2020-04-05,St. Francois,Missouri,29187,15,0 +2020-04-06,St. Francois,Missouri,29187,17,0 +2020-04-07,St. Francois,Missouri,29187,19,0 +2020-04-08,St. Francois,Missouri,29187,20,1 +2020-04-09,St. Francois,Missouri,29187,20,1 +2020-04-10,St. Francois,Missouri,29187,20,1 +2020-04-11,St. Francois,Missouri,29187,21,1 +2020-04-12,St. Francois,Missouri,29187,23,1 +2020-04-13,St. Francois,Missouri,29187,23,1 +2020-04-14,St. Francois,Missouri,29187,22,1 +2020-04-15,St. Francois,Missouri,29187,22,1 +2020-04-16,St. Francois,Missouri,29187,23,1 +2020-04-17,St. Francois,Missouri,29187,24,1 +2020-04-18,St. Francois,Missouri,29187,23,1 +2020-04-19,St. Francois,Missouri,29187,23,1 +2020-04-20,St. Francois,Missouri,29187,23,1 +2020-04-21,St. Francois,Missouri,29187,24,1 +2020-04-22,St. Francois,Missouri,29187,24,1 +2020-04-23,St. Francois,Missouri,29187,25,1 +2020-04-24,St. Francois,Missouri,29187,25,1 +2020-04-25,St. Francois,Missouri,29187,26,1 +2020-04-26,St. Francois,Missouri,29187,28,1 +2020-04-27,St. Francois,Missouri,29187,28,1 +2020-04-28,St. Francois,Missouri,29187,27,1 +2020-04-29,St. Francois,Missouri,29187,27,1 +2020-04-30,St. Francois,Missouri,29187,27,1 +2020-05-01,St. Francois,Missouri,29187,27,1 +2020-05-02,St. Francois,Missouri,29187,27,1 +2020-05-03,St. Francois,Missouri,29187,27,1 +2020-05-04,St. Francois,Missouri,29187,27,1 +2020-05-05,St. Francois,Missouri,29187,27,1 +2020-05-06,St. Francois,Missouri,29187,27,1 +2020-05-07,St. Francois,Missouri,29187,27,1 +2020-05-08,St. Francois,Missouri,29187,29,1 +2020-05-09,St. Francois,Missouri,29187,29,1 +2020-05-10,St. Francois,Missouri,29187,30,1 +2020-05-11,St. Francois,Missouri,29187,30,1 +2020-05-12,St. Francois,Missouri,29187,30,1 +2020-05-13,St. Francois,Missouri,29187,30,1 +2020-05-14,St. Francois,Missouri,29187,30,2 +2020-05-15,St. Francois,Missouri,29187,30,2 +2020-05-16,St. Francois,Missouri,29187,30,2 +2020-05-17,St. Francois,Missouri,29187,30,2 +2020-05-18,St. Francois,Missouri,29187,30,2 +2020-05-19,St. Francois,Missouri,29187,30,2 +2020-05-20,St. Francois,Missouri,29187,30,2 +2020-05-21,St. Francois,Missouri,29187,30,2 +2020-05-22,St. Francois,Missouri,29187,31,2 +2020-05-23,St. Francois,Missouri,29187,31,2 +2020-05-24,St. Francois,Missouri,29187,31,2 +2020-05-25,St. Francois,Missouri,29187,31,2 +2020-05-26,St. Francois,Missouri,29187,32,2 +2020-05-27,St. Francois,Missouri,29187,32,2 +2020-05-28,St. Francois,Missouri,29187,33,2 +2020-05-29,St. Francois,Missouri,29187,34,2 +2020-05-30,St. Francois,Missouri,29187,35,2 +2020-05-31,St. Francois,Missouri,29187,35,2 +2020-06-01,St. Francois,Missouri,29187,35,2 +2020-06-02,St. Francois,Missouri,29187,36,2 +2020-06-03,St. Francois,Missouri,29187,36,2 +2020-06-04,St. Francois,Missouri,29187,38,2 +2020-06-05,St. Francois,Missouri,29187,38,2 +2020-06-06,St. Francois,Missouri,29187,39,2 +2020-06-07,St. Francois,Missouri,29187,39,2 +2020-06-08,St. Francois,Missouri,29187,41,2 +2020-06-09,St. Francois,Missouri,29187,41,2 +2020-06-10,St. Francois,Missouri,29187,40,2 +2020-06-11,St. Francois,Missouri,29187,40,2 +2020-06-12,St. Francois,Missouri,29187,40,2 +2020-06-13,St. Francois,Missouri,29187,40,2 +2020-06-14,St. Francois,Missouri,29187,40,2 +2020-06-15,St. Francois,Missouri,29187,42,2 +2020-06-16,St. Francois,Missouri,29187,43,2 +2020-06-17,St. Francois,Missouri,29187,43,2 +2020-06-18,St. Francois,Missouri,29187,49,2 +2020-06-19,St. Francois,Missouri,29187,50,2 +2020-06-20,St. Francois,Missouri,29187,50,2 +2020-06-21,St. Francois,Missouri,29187,66,2 +2020-06-22,St. Francois,Missouri,29187,68,2 +2020-06-23,St. Francois,Missouri,29187,84,2 +2020-06-24,St. Francois,Missouri,29187,97,2 +2020-06-25,St. Francois,Missouri,29187,100,2 +2020-06-26,St. Francois,Missouri,29187,129,2 +2020-06-27,St. Francois,Missouri,29187,138,2 +2020-06-28,St. Francois,Missouri,29187,139,2 +2020-06-29,St. Francois,Missouri,29187,140,2 +2020-06-30,St. Francois,Missouri,29187,145,2 +2020-07-01,St. Francois,Missouri,29187,147,2 +2020-07-02,St. Francois,Missouri,29187,155,2 +2020-07-03,St. Francois,Missouri,29187,155,2 +2020-07-04,St. Francois,Missouri,29187,155,2 +2020-07-05,St. Francois,Missouri,29187,155,2 +2020-07-06,St. Francois,Missouri,29187,156,2 +2020-07-07,St. Francois,Missouri,29187,165,2 +2020-07-08,St. Francois,Missouri,29187,168,2 +2020-07-09,St. Francois,Missouri,29187,168,2 +2020-03-07,St. Louis,Missouri,29189,1,0 +2020-03-08,St. Louis,Missouri,29189,1,0 +2020-03-09,St. Louis,Missouri,29189,1,0 +2020-03-10,St. Louis,Missouri,29189,1,0 +2020-03-11,St. Louis,Missouri,29189,1,0 +2020-03-12,St. Louis,Missouri,29189,1,0 +2020-03-13,St. Louis,Missouri,29189,2,0 +2020-03-14,St. Louis,Missouri,29189,2,0 +2020-03-15,St. Louis,Missouri,29189,2,0 +2020-03-16,St. Louis,Missouri,29189,4,0 +2020-03-17,St. Louis,Missouri,29189,5,0 +2020-03-18,St. Louis,Missouri,29189,6,0 +2020-03-19,St. Louis,Missouri,29189,10,0 +2020-03-20,St. Louis,Missouri,29189,13,1 +2020-03-21,St. Louis,Missouri,29189,22,1 +2020-03-22,St. Louis,Missouri,29189,55,1 +2020-03-23,St. Louis,Missouri,29189,68,1 +2020-03-24,St. Louis,Missouri,29189,68,1 +2020-03-25,St. Louis,Missouri,29189,129,1 +2020-03-26,St. Louis,Missouri,29189,173,1 +2020-03-27,St. Louis,Missouri,29189,247,2 +2020-03-28,St. Louis,Missouri,29189,313,2 +2020-03-29,St. Louis,Missouri,29189,336,2 +2020-03-30,St. Louis,Missouri,29189,366,2 +2020-03-31,St. Louis,Missouri,29189,492,3 +2020-04-01,St. Louis,Missouri,29189,492,3 +2020-04-02,St. Louis,Missouri,29189,712,6 +2020-04-03,St. Louis,Missouri,29189,794,7 +2020-04-04,St. Louis,Missouri,29189,864,11 +2020-04-05,St. Louis,Missouri,29189,883,13 +2020-04-06,St. Louis,Missouri,29189,1033,14 +2020-04-07,St. Louis,Missouri,29189,1203,24 +2020-04-08,St. Louis,Missouri,29189,1302,26 +2020-04-09,St. Louis,Missouri,29189,1393,28 +2020-04-10,St. Louis,Missouri,29189,1498,33 +2020-04-11,St. Louis,Missouri,29189,1568,42 +2020-04-12,St. Louis,Missouri,29189,1633,42 +2020-04-13,St. Louis,Missouri,29189,1724,50 +2020-04-14,St. Louis,Missouri,29189,1851,53 +2020-04-15,St. Louis,Missouri,29189,1938,63 +2020-04-16,St. Louis,Missouri,29189,2026,66 +2020-04-17,St. Louis,Missouri,29189,2088,72 +2020-04-18,St. Louis,Missouri,29189,2163,80 +2020-04-19,St. Louis,Missouri,29189,2214,81 +2020-04-20,St. Louis,Missouri,29189,2289,82 +2020-04-21,St. Louis,Missouri,29189,2333,91 +2020-04-22,St. Louis,Missouri,29189,2436,97 +2020-04-23,St. Louis,Missouri,29189,2507,105 +2020-04-24,St. Louis,Missouri,29189,2625,121 +2020-04-25,St. Louis,Missouri,29189,2718,127 +2020-04-26,St. Louis,Missouri,29189,2794,127 +2020-04-27,St. Louis,Missouri,29189,2897,137 +2020-04-28,St. Louis,Missouri,29189,2958,159 +2020-04-29,St. Louis,Missouri,29189,3008,159 +2020-04-30,St. Louis,Missouri,29189,3049,162 +2020-05-01,St. Louis,Missouri,29189,3151,168 +2020-05-02,St. Louis,Missouri,29189,3244,177 +2020-05-03,St. Louis,Missouri,29189,3325,177 +2020-05-04,St. Louis,Missouri,29189,3419,177 +2020-05-05,St. Louis,Missouri,29189,3467,189 +2020-05-06,St. Louis,Missouri,29189,3539,204 +2020-05-07,St. Louis,Missouri,29189,3621,220 +2020-05-08,St. Louis,Missouri,29189,3667,246 +2020-05-09,St. Louis,Missouri,29189,3727,255 +2020-05-10,St. Louis,Missouri,29189,3804,262 +2020-05-11,St. Louis,Missouri,29189,3828,266 +2020-05-12,St. Louis,Missouri,29189,3868,278 +2020-05-13,St. Louis,Missouri,29189,4022,293 +2020-05-14,St. Louis,Missouri,29189,4022,305 +2020-05-15,St. Louis,Missouri,29189,4025,318 +2020-05-16,St. Louis,Missouri,29189,4106,329 +2020-05-17,St. Louis,Missouri,29189,4287,335 +2020-05-18,St. Louis,Missouri,29189,4324,336 +2020-05-19,St. Louis,Missouri,29189,4374,347 +2020-05-20,St. Louis,Missouri,29189,4410,352 +2020-05-21,St. Louis,Missouri,29189,4472,376 +2020-05-22,St. Louis,Missouri,29189,4472,380 +2020-05-23,St. Louis,Missouri,29189,4472,384 +2020-05-24,St. Louis,Missouri,29189,4479,385 +2020-05-25,St. Louis,Missouri,29189,4544,387 +2020-05-26,St. Louis,Missouri,29189,4583,387 +2020-05-27,St. Louis,Missouri,29189,4656,389 +2020-05-28,St. Louis,Missouri,29189,4704,395 +2020-05-29,St. Louis,Missouri,29189,4730,415 +2020-05-30,St. Louis,Missouri,29189,4773,442 +2020-05-31,St. Louis,Missouri,29189,4802,443 +2020-06-01,St. Louis,Missouri,29189,4834,443 +2020-06-02,St. Louis,Missouri,29189,4886,444 +2020-06-03,St. Louis,Missouri,29189,4913,446 +2020-06-04,St. Louis,Missouri,29189,4955,449 +2020-06-05,St. Louis,Missouri,29189,5005,455 +2020-06-06,St. Louis,Missouri,29189,5029,460 +2020-06-07,St. Louis,Missouri,29189,5272,460 +2020-06-08,St. Louis,Missouri,29189,5301,466 +2020-06-09,St. Louis,Missouri,29189,5345,480 +2020-06-10,St. Louis,Missouri,29189,5388,485 +2020-06-11,St. Louis,Missouri,29189,5440,496 +2020-06-12,St. Louis,Missouri,29189,5460,499 +2020-06-13,St. Louis,Missouri,29189,5506,500 +2020-06-14,St. Louis,Missouri,29189,5536,500 +2020-06-15,St. Louis,Missouri,29189,5604,500 +2020-06-16,St. Louis,Missouri,29189,5653,503 +2020-06-17,St. Louis,Missouri,29189,5669,518 +2020-06-18,St. Louis,Missouri,29189,5731,544 +2020-06-19,St. Louis,Missouri,29189,5769,547 +2020-06-20,St. Louis,Missouri,29189,5825,550 +2020-06-21,St. Louis,Missouri,29189,5850,550 +2020-06-22,St. Louis,Missouri,29189,5878,551 +2020-06-23,St. Louis,Missouri,29189,5941,555 +2020-06-24,St. Louis,Missouri,29189,6004,558 +2020-06-25,St. Louis,Missouri,29189,6092,558 +2020-06-26,St. Louis,Missouri,29189,6201,567 +2020-06-27,St. Louis,Missouri,29189,6293,568 +2020-06-28,St. Louis,Missouri,29189,6357,568 +2020-06-29,St. Louis,Missouri,29189,6446,568 +2020-06-30,St. Louis,Missouri,29189,6582,575 +2020-07-01,St. Louis,Missouri,29189,6616,581 +2020-07-02,St. Louis,Missouri,29189,6682,582 +2020-07-03,St. Louis,Missouri,29189,6755,583 +2020-07-04,St. Louis,Missouri,29189,6837,584 +2020-07-05,St. Louis,Missouri,29189,6887,584 +2020-07-06,St. Louis,Missouri,29189,6931,584 +2020-07-07,St. Louis,Missouri,29189,7066,593 +2020-07-08,St. Louis,Missouri,29189,7284,593 +2020-07-09,St. Louis,Missouri,29189,7469,593 +2020-04-03,Saline,Missouri,29195,2,0 +2020-04-04,Saline,Missouri,29195,2,0 +2020-04-05,Saline,Missouri,29195,3,0 +2020-04-06,Saline,Missouri,29195,3,0 +2020-04-07,Saline,Missouri,29195,5,0 +2020-04-08,Saline,Missouri,29195,7,0 +2020-04-09,Saline,Missouri,29195,11,0 +2020-04-10,Saline,Missouri,29195,18,0 +2020-04-11,Saline,Missouri,29195,22,0 +2020-04-12,Saline,Missouri,29195,22,0 +2020-04-13,Saline,Missouri,29195,23,0 +2020-04-14,Saline,Missouri,29195,35,0 +2020-04-15,Saline,Missouri,29195,44,0 +2020-04-16,Saline,Missouri,29195,49,0 +2020-04-17,Saline,Missouri,29195,51,0 +2020-04-18,Saline,Missouri,29195,51,0 +2020-04-19,Saline,Missouri,29195,54,0 +2020-04-20,Saline,Missouri,29195,54,0 +2020-04-21,Saline,Missouri,29195,54,0 +2020-04-22,Saline,Missouri,29195,55,0 +2020-04-23,Saline,Missouri,29195,81,0 +2020-04-24,Saline,Missouri,29195,139,0 +2020-04-25,Saline,Missouri,29195,143,0 +2020-04-26,Saline,Missouri,29195,159,0 +2020-04-27,Saline,Missouri,29195,168,0 +2020-04-28,Saline,Missouri,29195,170,0 +2020-04-29,Saline,Missouri,29195,182,0 +2020-04-30,Saline,Missouri,29195,184,0 +2020-05-01,Saline,Missouri,29195,190,0 +2020-05-02,Saline,Missouri,29195,193,0 +2020-05-03,Saline,Missouri,29195,199,0 +2020-05-04,Saline,Missouri,29195,204,0 +2020-05-05,Saline,Missouri,29195,205,0 +2020-05-06,Saline,Missouri,29195,208,0 +2020-05-07,Saline,Missouri,29195,208,0 +2020-05-08,Saline,Missouri,29195,214,0 +2020-05-09,Saline,Missouri,29195,215,0 +2020-05-10,Saline,Missouri,29195,219,0 +2020-05-11,Saline,Missouri,29195,219,0 +2020-05-12,Saline,Missouri,29195,219,0 +2020-05-13,Saline,Missouri,29195,224,0 +2020-05-14,Saline,Missouri,29195,224,0 +2020-05-15,Saline,Missouri,29195,225,0 +2020-05-16,Saline,Missouri,29195,241,0 +2020-05-17,Saline,Missouri,29195,246,0 +2020-05-18,Saline,Missouri,29195,249,0 +2020-05-19,Saline,Missouri,29195,253,0 +2020-05-20,Saline,Missouri,29195,256,0 +2020-05-21,Saline,Missouri,29195,256,0 +2020-05-22,Saline,Missouri,29195,260,0 +2020-05-23,Saline,Missouri,29195,263,0 +2020-05-24,Saline,Missouri,29195,265,0 +2020-05-25,Saline,Missouri,29195,267,0 +2020-05-26,Saline,Missouri,29195,267,0 +2020-05-27,Saline,Missouri,29195,267,0 +2020-05-28,Saline,Missouri,29195,267,2 +2020-05-29,Saline,Missouri,29195,267,2 +2020-05-30,Saline,Missouri,29195,267,2 +2020-05-31,Saline,Missouri,29195,267,2 +2020-06-01,Saline,Missouri,29195,268,2 +2020-06-02,Saline,Missouri,29195,268,2 +2020-06-03,Saline,Missouri,29195,268,2 +2020-06-04,Saline,Missouri,29195,268,2 +2020-06-05,Saline,Missouri,29195,268,2 +2020-06-06,Saline,Missouri,29195,268,2 +2020-06-07,Saline,Missouri,29195,269,2 +2020-06-08,Saline,Missouri,29195,270,2 +2020-06-09,Saline,Missouri,29195,270,3 +2020-06-10,Saline,Missouri,29195,270,3 +2020-06-11,Saline,Missouri,29195,270,3 +2020-06-12,Saline,Missouri,29195,270,3 +2020-06-13,Saline,Missouri,29195,271,4 +2020-06-14,Saline,Missouri,29195,271,4 +2020-06-15,Saline,Missouri,29195,270,4 +2020-06-16,Saline,Missouri,29195,272,4 +2020-06-17,Saline,Missouri,29195,274,4 +2020-06-18,Saline,Missouri,29195,277,4 +2020-06-19,Saline,Missouri,29195,278,4 +2020-06-20,Saline,Missouri,29195,278,4 +2020-06-21,Saline,Missouri,29195,278,4 +2020-06-22,Saline,Missouri,29195,278,4 +2020-06-23,Saline,Missouri,29195,278,4 +2020-06-24,Saline,Missouri,29195,278,4 +2020-06-25,Saline,Missouri,29195,282,4 +2020-06-26,Saline,Missouri,29195,282,4 +2020-06-27,Saline,Missouri,29195,282,4 +2020-06-28,Saline,Missouri,29195,283,4 +2020-06-29,Saline,Missouri,29195,283,4 +2020-06-30,Saline,Missouri,29195,283,4 +2020-07-01,Saline,Missouri,29195,283,4 +2020-07-02,Saline,Missouri,29195,283,4 +2020-07-03,Saline,Missouri,29195,284,4 +2020-07-04,Saline,Missouri,29195,284,4 +2020-07-05,Saline,Missouri,29195,284,4 +2020-07-06,Saline,Missouri,29195,287,4 +2020-07-07,Saline,Missouri,29195,290,4 +2020-07-08,Saline,Missouri,29195,295,4 +2020-07-09,Saline,Missouri,29195,299,5 +2020-05-16,Schuyler,Missouri,29197,1,0 +2020-05-17,Schuyler,Missouri,29197,1,0 +2020-05-18,Schuyler,Missouri,29197,1,0 +2020-05-19,Schuyler,Missouri,29197,1,0 +2020-05-20,Schuyler,Missouri,29197,1,0 +2020-05-21,Schuyler,Missouri,29197,1,0 +2020-05-22,Schuyler,Missouri,29197,1,0 +2020-05-23,Schuyler,Missouri,29197,2,0 +2020-05-24,Schuyler,Missouri,29197,2,0 +2020-05-25,Schuyler,Missouri,29197,2,0 +2020-05-26,Schuyler,Missouri,29197,2,0 +2020-05-27,Schuyler,Missouri,29197,1,0 +2020-05-28,Schuyler,Missouri,29197,1,0 +2020-05-29,Schuyler,Missouri,29197,1,0 +2020-05-30,Schuyler,Missouri,29197,1,0 +2020-05-31,Schuyler,Missouri,29197,1,0 +2020-06-01,Schuyler,Missouri,29197,1,0 +2020-06-02,Schuyler,Missouri,29197,1,0 +2020-06-03,Schuyler,Missouri,29197,1,0 +2020-06-04,Schuyler,Missouri,29197,1,0 +2020-06-05,Schuyler,Missouri,29197,1,0 +2020-06-06,Schuyler,Missouri,29197,1,0 +2020-06-07,Schuyler,Missouri,29197,1,0 +2020-06-08,Schuyler,Missouri,29197,1,0 +2020-06-09,Schuyler,Missouri,29197,1,0 +2020-06-10,Schuyler,Missouri,29197,1,0 +2020-06-11,Schuyler,Missouri,29197,2,0 +2020-06-12,Schuyler,Missouri,29197,1,0 +2020-06-13,Schuyler,Missouri,29197,1,0 +2020-06-14,Schuyler,Missouri,29197,1,0 +2020-06-15,Schuyler,Missouri,29197,1,0 +2020-06-16,Schuyler,Missouri,29197,1,0 +2020-06-17,Schuyler,Missouri,29197,1,0 +2020-06-18,Schuyler,Missouri,29197,1,0 +2020-06-19,Schuyler,Missouri,29197,2,0 +2020-06-20,Schuyler,Missouri,29197,2,0 +2020-06-21,Schuyler,Missouri,29197,4,0 +2020-06-22,Schuyler,Missouri,29197,4,0 +2020-06-23,Schuyler,Missouri,29197,4,0 +2020-06-24,Schuyler,Missouri,29197,4,0 +2020-06-25,Schuyler,Missouri,29197,4,0 +2020-06-26,Schuyler,Missouri,29197,5,0 +2020-06-27,Schuyler,Missouri,29197,5,0 +2020-06-28,Schuyler,Missouri,29197,5,0 +2020-06-29,Schuyler,Missouri,29197,5,0 +2020-06-30,Schuyler,Missouri,29197,5,0 +2020-07-01,Schuyler,Missouri,29197,5,0 +2020-07-02,Schuyler,Missouri,29197,5,0 +2020-07-03,Schuyler,Missouri,29197,5,0 +2020-07-04,Schuyler,Missouri,29197,5,0 +2020-07-05,Schuyler,Missouri,29197,5,0 +2020-07-06,Schuyler,Missouri,29197,5,0 +2020-07-07,Schuyler,Missouri,29197,5,0 +2020-07-08,Schuyler,Missouri,29197,5,0 +2020-07-09,Schuyler,Missouri,29197,5,0 +2020-04-07,Scotland,Missouri,29199,1,0 +2020-04-08,Scotland,Missouri,29199,1,0 +2020-04-09,Scotland,Missouri,29199,1,0 +2020-04-10,Scotland,Missouri,29199,2,0 +2020-04-11,Scotland,Missouri,29199,3,0 +2020-04-12,Scotland,Missouri,29199,3,0 +2020-04-13,Scotland,Missouri,29199,3,0 +2020-04-14,Scotland,Missouri,29199,3,0 +2020-04-15,Scotland,Missouri,29199,3,0 +2020-04-16,Scotland,Missouri,29199,4,0 +2020-04-17,Scotland,Missouri,29199,4,0 +2020-04-18,Scotland,Missouri,29199,4,0 +2020-04-19,Scotland,Missouri,29199,4,0 +2020-04-20,Scotland,Missouri,29199,4,0 +2020-04-21,Scotland,Missouri,29199,4,0 +2020-04-22,Scotland,Missouri,29199,4,0 +2020-04-23,Scotland,Missouri,29199,4,0 +2020-04-24,Scotland,Missouri,29199,4,0 +2020-04-25,Scotland,Missouri,29199,4,0 +2020-04-26,Scotland,Missouri,29199,4,0 +2020-04-27,Scotland,Missouri,29199,4,0 +2020-04-28,Scotland,Missouri,29199,4,0 +2020-04-29,Scotland,Missouri,29199,4,0 +2020-04-30,Scotland,Missouri,29199,4,0 +2020-05-01,Scotland,Missouri,29199,4,0 +2020-05-02,Scotland,Missouri,29199,4,0 +2020-05-03,Scotland,Missouri,29199,4,0 +2020-05-04,Scotland,Missouri,29199,4,0 +2020-05-05,Scotland,Missouri,29199,4,0 +2020-05-06,Scotland,Missouri,29199,4,0 +2020-05-07,Scotland,Missouri,29199,4,0 +2020-05-08,Scotland,Missouri,29199,4,0 +2020-05-09,Scotland,Missouri,29199,4,0 +2020-05-10,Scotland,Missouri,29199,4,0 +2020-05-11,Scotland,Missouri,29199,4,0 +2020-05-12,Scotland,Missouri,29199,4,0 +2020-05-13,Scotland,Missouri,29199,4,0 +2020-05-14,Scotland,Missouri,29199,4,0 +2020-05-15,Scotland,Missouri,29199,4,0 +2020-05-16,Scotland,Missouri,29199,4,0 +2020-05-17,Scotland,Missouri,29199,4,0 +2020-05-18,Scotland,Missouri,29199,4,0 +2020-05-19,Scotland,Missouri,29199,4,0 +2020-05-20,Scotland,Missouri,29199,4,0 +2020-05-21,Scotland,Missouri,29199,4,0 +2020-05-22,Scotland,Missouri,29199,4,0 +2020-05-23,Scotland,Missouri,29199,4,0 +2020-05-24,Scotland,Missouri,29199,4,0 +2020-05-25,Scotland,Missouri,29199,4,0 +2020-05-26,Scotland,Missouri,29199,4,0 +2020-05-27,Scotland,Missouri,29199,4,0 +2020-05-28,Scotland,Missouri,29199,4,0 +2020-05-29,Scotland,Missouri,29199,4,0 +2020-05-30,Scotland,Missouri,29199,4,0 +2020-05-31,Scotland,Missouri,29199,5,0 +2020-06-01,Scotland,Missouri,29199,6,0 +2020-06-02,Scotland,Missouri,29199,6,0 +2020-06-03,Scotland,Missouri,29199,8,0 +2020-06-04,Scotland,Missouri,29199,8,0 +2020-06-05,Scotland,Missouri,29199,9,0 +2020-06-06,Scotland,Missouri,29199,9,0 +2020-06-07,Scotland,Missouri,29199,9,0 +2020-06-08,Scotland,Missouri,29199,9,0 +2020-06-09,Scotland,Missouri,29199,9,0 +2020-06-10,Scotland,Missouri,29199,8,1 +2020-06-11,Scotland,Missouri,29199,8,1 +2020-06-12,Scotland,Missouri,29199,8,1 +2020-06-13,Scotland,Missouri,29199,8,1 +2020-06-14,Scotland,Missouri,29199,8,1 +2020-06-15,Scotland,Missouri,29199,8,1 +2020-06-16,Scotland,Missouri,29199,8,1 +2020-06-17,Scotland,Missouri,29199,8,1 +2020-06-18,Scotland,Missouri,29199,8,1 +2020-06-19,Scotland,Missouri,29199,8,1 +2020-06-20,Scotland,Missouri,29199,8,1 +2020-06-21,Scotland,Missouri,29199,8,1 +2020-06-22,Scotland,Missouri,29199,8,1 +2020-06-23,Scotland,Missouri,29199,8,1 +2020-06-24,Scotland,Missouri,29199,8,1 +2020-06-25,Scotland,Missouri,29199,8,1 +2020-06-26,Scotland,Missouri,29199,10,1 +2020-06-27,Scotland,Missouri,29199,11,1 +2020-06-28,Scotland,Missouri,29199,11,1 +2020-06-29,Scotland,Missouri,29199,11,1 +2020-06-30,Scotland,Missouri,29199,11,1 +2020-07-01,Scotland,Missouri,29199,11,1 +2020-07-02,Scotland,Missouri,29199,11,1 +2020-07-03,Scotland,Missouri,29199,11,1 +2020-07-04,Scotland,Missouri,29199,11,1 +2020-07-05,Scotland,Missouri,29199,11,1 +2020-07-06,Scotland,Missouri,29199,11,1 +2020-07-07,Scotland,Missouri,29199,11,1 +2020-07-08,Scotland,Missouri,29199,11,1 +2020-07-09,Scotland,Missouri,29199,11,1 +2020-03-20,Scott,Missouri,29201,1,0 +2020-03-21,Scott,Missouri,29201,1,0 +2020-03-22,Scott,Missouri,29201,1,0 +2020-03-23,Scott,Missouri,29201,1,0 +2020-03-24,Scott,Missouri,29201,1,0 +2020-03-25,Scott,Missouri,29201,1,0 +2020-03-26,Scott,Missouri,29201,1,0 +2020-03-27,Scott,Missouri,29201,1,0 +2020-03-28,Scott,Missouri,29201,3,0 +2020-03-29,Scott,Missouri,29201,3,0 +2020-03-30,Scott,Missouri,29201,5,0 +2020-03-31,Scott,Missouri,29201,6,0 +2020-04-01,Scott,Missouri,29201,6,0 +2020-04-02,Scott,Missouri,29201,6,0 +2020-04-03,Scott,Missouri,29201,7,0 +2020-04-04,Scott,Missouri,29201,7,0 +2020-04-05,Scott,Missouri,29201,7,0 +2020-04-06,Scott,Missouri,29201,10,0 +2020-04-07,Scott,Missouri,29201,10,0 +2020-04-08,Scott,Missouri,29201,11,0 +2020-04-09,Scott,Missouri,29201,13,0 +2020-04-10,Scott,Missouri,29201,13,0 +2020-04-11,Scott,Missouri,29201,14,0 +2020-04-12,Scott,Missouri,29201,15,0 +2020-04-13,Scott,Missouri,29201,24,0 +2020-04-14,Scott,Missouri,29201,25,0 +2020-04-15,Scott,Missouri,29201,26,0 +2020-04-16,Scott,Missouri,29201,41,0 +2020-04-17,Scott,Missouri,29201,42,0 +2020-04-18,Scott,Missouri,29201,49,1 +2020-04-19,Scott,Missouri,29201,51,1 +2020-04-20,Scott,Missouri,29201,50,1 +2020-04-21,Scott,Missouri,29201,52,1 +2020-04-22,Scott,Missouri,29201,59,1 +2020-04-23,Scott,Missouri,29201,59,1 +2020-04-24,Scott,Missouri,29201,59,1 +2020-04-25,Scott,Missouri,29201,60,1 +2020-04-26,Scott,Missouri,29201,61,1 +2020-04-27,Scott,Missouri,29201,61,1 +2020-04-28,Scott,Missouri,29201,62,2 +2020-04-29,Scott,Missouri,29201,63,2 +2020-04-30,Scott,Missouri,29201,64,2 +2020-05-01,Scott,Missouri,29201,70,2 +2020-05-02,Scott,Missouri,29201,76,2 +2020-05-03,Scott,Missouri,29201,76,2 +2020-05-04,Scott,Missouri,29201,76,2 +2020-05-05,Scott,Missouri,29201,75,2 +2020-05-06,Scott,Missouri,29201,76,2 +2020-05-07,Scott,Missouri,29201,77,2 +2020-05-08,Scott,Missouri,29201,78,5 +2020-05-09,Scott,Missouri,29201,79,5 +2020-05-10,Scott,Missouri,29201,80,5 +2020-05-11,Scott,Missouri,29201,80,6 +2020-05-12,Scott,Missouri,29201,82,6 +2020-05-13,Scott,Missouri,29201,83,6 +2020-05-14,Scott,Missouri,29201,84,6 +2020-05-15,Scott,Missouri,29201,85,6 +2020-05-16,Scott,Missouri,29201,86,6 +2020-05-17,Scott,Missouri,29201,87,6 +2020-05-18,Scott,Missouri,29201,87,7 +2020-05-19,Scott,Missouri,29201,86,7 +2020-05-20,Scott,Missouri,29201,88,8 +2020-05-21,Scott,Missouri,29201,89,8 +2020-05-22,Scott,Missouri,29201,91,8 +2020-05-23,Scott,Missouri,29201,91,8 +2020-05-24,Scott,Missouri,29201,93,8 +2020-05-25,Scott,Missouri,29201,93,8 +2020-05-26,Scott,Missouri,29201,94,8 +2020-05-27,Scott,Missouri,29201,94,8 +2020-05-28,Scott,Missouri,29201,98,8 +2020-05-29,Scott,Missouri,29201,100,9 +2020-05-30,Scott,Missouri,29201,108,9 +2020-05-31,Scott,Missouri,29201,110,9 +2020-06-01,Scott,Missouri,29201,108,9 +2020-06-02,Scott,Missouri,29201,109,9 +2020-06-03,Scott,Missouri,29201,113,9 +2020-06-04,Scott,Missouri,29201,117,9 +2020-06-05,Scott,Missouri,29201,119,9 +2020-06-06,Scott,Missouri,29201,121,9 +2020-06-07,Scott,Missouri,29201,121,9 +2020-06-08,Scott,Missouri,29201,123,10 +2020-06-09,Scott,Missouri,29201,127,10 +2020-06-10,Scott,Missouri,29201,128,10 +2020-06-11,Scott,Missouri,29201,132,10 +2020-06-12,Scott,Missouri,29201,134,10 +2020-06-13,Scott,Missouri,29201,139,10 +2020-06-14,Scott,Missouri,29201,139,10 +2020-06-15,Scott,Missouri,29201,145,10 +2020-06-16,Scott,Missouri,29201,145,10 +2020-06-17,Scott,Missouri,29201,149,10 +2020-06-18,Scott,Missouri,29201,149,10 +2020-06-19,Scott,Missouri,29201,155,10 +2020-06-20,Scott,Missouri,29201,157,10 +2020-06-21,Scott,Missouri,29201,159,10 +2020-06-22,Scott,Missouri,29201,160,11 +2020-06-23,Scott,Missouri,29201,159,11 +2020-06-24,Scott,Missouri,29201,159,11 +2020-06-25,Scott,Missouri,29201,159,11 +2020-06-26,Scott,Missouri,29201,161,11 +2020-06-27,Scott,Missouri,29201,161,11 +2020-06-28,Scott,Missouri,29201,162,11 +2020-06-29,Scott,Missouri,29201,164,11 +2020-06-30,Scott,Missouri,29201,168,11 +2020-07-01,Scott,Missouri,29201,169,11 +2020-07-02,Scott,Missouri,29201,170,11 +2020-07-03,Scott,Missouri,29201,172,11 +2020-07-04,Scott,Missouri,29201,173,11 +2020-07-05,Scott,Missouri,29201,181,11 +2020-07-06,Scott,Missouri,29201,185,11 +2020-07-07,Scott,Missouri,29201,188,11 +2020-07-08,Scott,Missouri,29201,191,11 +2020-07-09,Scott,Missouri,29201,192,11 +2020-05-27,Shannon,Missouri,29203,1,0 +2020-05-28,Shannon,Missouri,29203,1,0 +2020-05-29,Shannon,Missouri,29203,2,0 +2020-05-30,Shannon,Missouri,29203,2,0 +2020-05-31,Shannon,Missouri,29203,2,0 +2020-06-01,Shannon,Missouri,29203,3,0 +2020-06-02,Shannon,Missouri,29203,3,0 +2020-06-03,Shannon,Missouri,29203,5,0 +2020-06-04,Shannon,Missouri,29203,5,0 +2020-06-05,Shannon,Missouri,29203,5,0 +2020-06-06,Shannon,Missouri,29203,5,0 +2020-06-07,Shannon,Missouri,29203,5,0 +2020-06-08,Shannon,Missouri,29203,5,0 +2020-06-09,Shannon,Missouri,29203,6,0 +2020-06-10,Shannon,Missouri,29203,6,0 +2020-06-11,Shannon,Missouri,29203,6,0 +2020-06-12,Shannon,Missouri,29203,6,0 +2020-06-13,Shannon,Missouri,29203,6,0 +2020-06-14,Shannon,Missouri,29203,6,0 +2020-06-15,Shannon,Missouri,29203,6,0 +2020-06-16,Shannon,Missouri,29203,6,0 +2020-06-17,Shannon,Missouri,29203,6,0 +2020-06-18,Shannon,Missouri,29203,6,0 +2020-06-19,Shannon,Missouri,29203,6,0 +2020-06-20,Shannon,Missouri,29203,6,0 +2020-06-21,Shannon,Missouri,29203,6,0 +2020-06-22,Shannon,Missouri,29203,6,0 +2020-06-23,Shannon,Missouri,29203,6,0 +2020-06-24,Shannon,Missouri,29203,6,0 +2020-06-25,Shannon,Missouri,29203,6,0 +2020-06-26,Shannon,Missouri,29203,6,0 +2020-06-27,Shannon,Missouri,29203,6,0 +2020-06-28,Shannon,Missouri,29203,6,0 +2020-06-29,Shannon,Missouri,29203,7,0 +2020-06-30,Shannon,Missouri,29203,8,0 +2020-07-01,Shannon,Missouri,29203,8,0 +2020-07-02,Shannon,Missouri,29203,11,0 +2020-07-03,Shannon,Missouri,29203,13,0 +2020-07-04,Shannon,Missouri,29203,17,0 +2020-07-05,Shannon,Missouri,29203,18,0 +2020-07-06,Shannon,Missouri,29203,19,0 +2020-07-07,Shannon,Missouri,29203,22,0 +2020-07-08,Shannon,Missouri,29203,23,0 +2020-07-09,Shannon,Missouri,29203,23,0 +2020-03-25,Shelby,Missouri,29205,1,0 +2020-03-26,Shelby,Missouri,29205,1,0 +2020-03-27,Shelby,Missouri,29205,1,0 +2020-03-28,Shelby,Missouri,29205,1,0 +2020-03-29,Shelby,Missouri,29205,1,0 +2020-03-30,Shelby,Missouri,29205,1,0 +2020-03-31,Shelby,Missouri,29205,1,0 +2020-04-01,Shelby,Missouri,29205,1,0 +2020-04-02,Shelby,Missouri,29205,1,0 +2020-04-03,Shelby,Missouri,29205,1,0 +2020-04-04,Shelby,Missouri,29205,1,0 +2020-04-05,Shelby,Missouri,29205,1,0 +2020-04-06,Shelby,Missouri,29205,1,0 +2020-04-07,Shelby,Missouri,29205,1,0 +2020-04-08,Shelby,Missouri,29205,1,0 +2020-04-09,Shelby,Missouri,29205,1,0 +2020-04-10,Shelby,Missouri,29205,1,0 +2020-04-11,Shelby,Missouri,29205,1,0 +2020-04-12,Shelby,Missouri,29205,1,0 +2020-04-13,Shelby,Missouri,29205,1,0 +2020-04-14,Shelby,Missouri,29205,1,0 +2020-04-15,Shelby,Missouri,29205,1,0 +2020-04-16,Shelby,Missouri,29205,1,0 +2020-04-17,Shelby,Missouri,29205,1,0 +2020-04-18,Shelby,Missouri,29205,1,0 +2020-04-19,Shelby,Missouri,29205,1,0 +2020-04-20,Shelby,Missouri,29205,1,0 +2020-04-21,Shelby,Missouri,29205,1,0 +2020-04-22,Shelby,Missouri,29205,1,0 +2020-04-23,Shelby,Missouri,29205,1,0 +2020-04-24,Shelby,Missouri,29205,1,0 +2020-04-25,Shelby,Missouri,29205,1,0 +2020-04-26,Shelby,Missouri,29205,1,0 +2020-04-27,Shelby,Missouri,29205,1,0 +2020-04-28,Shelby,Missouri,29205,1,0 +2020-04-29,Shelby,Missouri,29205,1,0 +2020-04-30,Shelby,Missouri,29205,1,0 +2020-05-01,Shelby,Missouri,29205,1,0 +2020-05-02,Shelby,Missouri,29205,1,0 +2020-05-03,Shelby,Missouri,29205,1,0 +2020-05-04,Shelby,Missouri,29205,1,0 +2020-05-05,Shelby,Missouri,29205,1,0 +2020-05-06,Shelby,Missouri,29205,1,0 +2020-05-07,Shelby,Missouri,29205,1,0 +2020-05-08,Shelby,Missouri,29205,1,0 +2020-05-09,Shelby,Missouri,29205,1,0 +2020-05-10,Shelby,Missouri,29205,1,0 +2020-05-11,Shelby,Missouri,29205,1,0 +2020-05-12,Shelby,Missouri,29205,1,0 +2020-05-13,Shelby,Missouri,29205,1,0 +2020-05-14,Shelby,Missouri,29205,1,0 +2020-05-15,Shelby,Missouri,29205,1,0 +2020-05-16,Shelby,Missouri,29205,1,0 +2020-05-17,Shelby,Missouri,29205,1,0 +2020-05-18,Shelby,Missouri,29205,1,0 +2020-05-19,Shelby,Missouri,29205,1,0 +2020-05-20,Shelby,Missouri,29205,1,0 +2020-05-21,Shelby,Missouri,29205,1,0 +2020-05-22,Shelby,Missouri,29205,1,0 +2020-05-23,Shelby,Missouri,29205,1,0 +2020-05-24,Shelby,Missouri,29205,1,0 +2020-05-25,Shelby,Missouri,29205,1,0 +2020-05-26,Shelby,Missouri,29205,1,0 +2020-05-27,Shelby,Missouri,29205,1,0 +2020-05-28,Shelby,Missouri,29205,1,0 +2020-05-29,Shelby,Missouri,29205,1,0 +2020-05-30,Shelby,Missouri,29205,1,0 +2020-05-31,Shelby,Missouri,29205,1,0 +2020-06-01,Shelby,Missouri,29205,1,0 +2020-06-02,Shelby,Missouri,29205,1,0 +2020-06-03,Shelby,Missouri,29205,1,0 +2020-06-04,Shelby,Missouri,29205,1,0 +2020-06-05,Shelby,Missouri,29205,1,0 +2020-06-06,Shelby,Missouri,29205,1,0 +2020-06-07,Shelby,Missouri,29205,1,0 +2020-06-08,Shelby,Missouri,29205,1,0 +2020-06-09,Shelby,Missouri,29205,1,0 +2020-06-10,Shelby,Missouri,29205,1,0 +2020-06-11,Shelby,Missouri,29205,1,0 +2020-06-12,Shelby,Missouri,29205,1,0 +2020-06-13,Shelby,Missouri,29205,1,0 +2020-06-14,Shelby,Missouri,29205,1,0 +2020-06-15,Shelby,Missouri,29205,1,0 +2020-06-16,Shelby,Missouri,29205,1,0 +2020-06-17,Shelby,Missouri,29205,1,0 +2020-06-18,Shelby,Missouri,29205,1,0 +2020-06-19,Shelby,Missouri,29205,2,0 +2020-06-20,Shelby,Missouri,29205,2,0 +2020-06-21,Shelby,Missouri,29205,2,0 +2020-06-22,Shelby,Missouri,29205,2,0 +2020-06-23,Shelby,Missouri,29205,2,0 +2020-06-24,Shelby,Missouri,29205,3,0 +2020-06-25,Shelby,Missouri,29205,3,0 +2020-06-26,Shelby,Missouri,29205,3,0 +2020-06-27,Shelby,Missouri,29205,3,0 +2020-06-28,Shelby,Missouri,29205,3,0 +2020-06-29,Shelby,Missouri,29205,3,0 +2020-06-30,Shelby,Missouri,29205,3,0 +2020-07-01,Shelby,Missouri,29205,4,0 +2020-07-02,Shelby,Missouri,29205,4,0 +2020-07-03,Shelby,Missouri,29205,4,0 +2020-07-04,Shelby,Missouri,29205,4,0 +2020-07-05,Shelby,Missouri,29205,4,0 +2020-07-06,Shelby,Missouri,29205,4,0 +2020-07-07,Shelby,Missouri,29205,4,0 +2020-07-08,Shelby,Missouri,29205,4,0 +2020-07-09,Shelby,Missouri,29205,4,0 +2020-03-26,Stoddard,Missouri,29207,1,0 +2020-03-27,Stoddard,Missouri,29207,1,0 +2020-03-28,Stoddard,Missouri,29207,1,0 +2020-03-29,Stoddard,Missouri,29207,2,0 +2020-03-30,Stoddard,Missouri,29207,2,0 +2020-03-31,Stoddard,Missouri,29207,3,0 +2020-04-01,Stoddard,Missouri,29207,3,0 +2020-04-02,Stoddard,Missouri,29207,6,0 +2020-04-03,Stoddard,Missouri,29207,7,0 +2020-04-04,Stoddard,Missouri,29207,7,0 +2020-04-05,Stoddard,Missouri,29207,7,0 +2020-04-06,Stoddard,Missouri,29207,7,0 +2020-04-07,Stoddard,Missouri,29207,8,0 +2020-04-08,Stoddard,Missouri,29207,8,0 +2020-04-09,Stoddard,Missouri,29207,9,0 +2020-04-10,Stoddard,Missouri,29207,9,0 +2020-04-11,Stoddard,Missouri,29207,9,0 +2020-04-12,Stoddard,Missouri,29207,9,0 +2020-04-13,Stoddard,Missouri,29207,11,0 +2020-04-14,Stoddard,Missouri,29207,12,0 +2020-04-15,Stoddard,Missouri,29207,13,0 +2020-04-16,Stoddard,Missouri,29207,13,0 +2020-04-17,Stoddard,Missouri,29207,15,0 +2020-04-18,Stoddard,Missouri,29207,16,0 +2020-04-19,Stoddard,Missouri,29207,18,0 +2020-04-20,Stoddard,Missouri,29207,18,0 +2020-04-21,Stoddard,Missouri,29207,19,0 +2020-04-22,Stoddard,Missouri,29207,19,0 +2020-04-23,Stoddard,Missouri,29207,19,0 +2020-04-24,Stoddard,Missouri,29207,19,0 +2020-04-25,Stoddard,Missouri,29207,19,0 +2020-04-26,Stoddard,Missouri,29207,19,0 +2020-04-27,Stoddard,Missouri,29207,19,0 +2020-04-28,Stoddard,Missouri,29207,19,0 +2020-04-29,Stoddard,Missouri,29207,19,0 +2020-04-30,Stoddard,Missouri,29207,19,0 +2020-05-01,Stoddard,Missouri,29207,20,0 +2020-05-02,Stoddard,Missouri,29207,20,0 +2020-05-03,Stoddard,Missouri,29207,20,0 +2020-05-04,Stoddard,Missouri,29207,21,0 +2020-05-05,Stoddard,Missouri,29207,22,0 +2020-05-06,Stoddard,Missouri,29207,24,0 +2020-05-07,Stoddard,Missouri,29207,24,0 +2020-05-08,Stoddard,Missouri,29207,24,0 +2020-05-09,Stoddard,Missouri,29207,29,0 +2020-05-10,Stoddard,Missouri,29207,29,0 +2020-05-11,Stoddard,Missouri,29207,29,0 +2020-05-12,Stoddard,Missouri,29207,29,0 +2020-05-13,Stoddard,Missouri,29207,30,0 +2020-05-14,Stoddard,Missouri,29207,30,0 +2020-05-15,Stoddard,Missouri,29207,34,0 +2020-05-16,Stoddard,Missouri,29207,51,0 +2020-05-17,Stoddard,Missouri,29207,51,0 +2020-05-18,Stoddard,Missouri,29207,53,0 +2020-05-19,Stoddard,Missouri,29207,58,1 +2020-05-20,Stoddard,Missouri,29207,61,2 +2020-05-21,Stoddard,Missouri,29207,64,3 +2020-05-22,Stoddard,Missouri,29207,67,3 +2020-05-23,Stoddard,Missouri,29207,70,3 +2020-05-24,Stoddard,Missouri,29207,70,3 +2020-05-25,Stoddard,Missouri,29207,74,4 +2020-05-26,Stoddard,Missouri,29207,74,4 +2020-05-27,Stoddard,Missouri,29207,74,5 +2020-05-28,Stoddard,Missouri,29207,76,5 +2020-05-29,Stoddard,Missouri,29207,78,5 +2020-05-30,Stoddard,Missouri,29207,79,5 +2020-05-31,Stoddard,Missouri,29207,81,5 +2020-06-01,Stoddard,Missouri,29207,84,5 +2020-06-02,Stoddard,Missouri,29207,87,5 +2020-06-03,Stoddard,Missouri,29207,94,4 +2020-06-04,Stoddard,Missouri,29207,99,4 +2020-06-05,Stoddard,Missouri,29207,105,5 +2020-06-06,Stoddard,Missouri,29207,106,5 +2020-06-07,Stoddard,Missouri,29207,106,5 +2020-06-08,Stoddard,Missouri,29207,106,5 +2020-06-09,Stoddard,Missouri,29207,109,5 +2020-06-10,Stoddard,Missouri,29207,106,5 +2020-06-11,Stoddard,Missouri,29207,108,6 +2020-06-12,Stoddard,Missouri,29207,113,6 +2020-06-13,Stoddard,Missouri,29207,118,7 +2020-06-14,Stoddard,Missouri,29207,118,7 +2020-06-15,Stoddard,Missouri,29207,118,7 +2020-06-16,Stoddard,Missouri,29207,121,7 +2020-06-17,Stoddard,Missouri,29207,124,7 +2020-06-18,Stoddard,Missouri,29207,126,7 +2020-06-19,Stoddard,Missouri,29207,127,7 +2020-06-20,Stoddard,Missouri,29207,126,7 +2020-06-21,Stoddard,Missouri,29207,126,7 +2020-06-22,Stoddard,Missouri,29207,127,8 +2020-06-23,Stoddard,Missouri,29207,129,8 +2020-06-24,Stoddard,Missouri,29207,129,8 +2020-06-25,Stoddard,Missouri,29207,132,8 +2020-06-26,Stoddard,Missouri,29207,134,8 +2020-06-27,Stoddard,Missouri,29207,134,8 +2020-06-28,Stoddard,Missouri,29207,135,8 +2020-06-29,Stoddard,Missouri,29207,136,8 +2020-06-30,Stoddard,Missouri,29207,137,8 +2020-07-01,Stoddard,Missouri,29207,137,8 +2020-07-02,Stoddard,Missouri,29207,137,8 +2020-07-03,Stoddard,Missouri,29207,141,8 +2020-07-04,Stoddard,Missouri,29207,142,8 +2020-07-05,Stoddard,Missouri,29207,142,8 +2020-07-06,Stoddard,Missouri,29207,145,9 +2020-07-07,Stoddard,Missouri,29207,146,9 +2020-07-08,Stoddard,Missouri,29207,148,9 +2020-07-09,Stoddard,Missouri,29207,150,9 +2020-03-30,Stone,Missouri,29209,1,0 +2020-03-31,Stone,Missouri,29209,1,0 +2020-04-01,Stone,Missouri,29209,2,0 +2020-04-02,Stone,Missouri,29209,2,0 +2020-04-03,Stone,Missouri,29209,2,0 +2020-04-04,Stone,Missouri,29209,2,0 +2020-04-05,Stone,Missouri,29209,3,0 +2020-04-06,Stone,Missouri,29209,3,0 +2020-04-07,Stone,Missouri,29209,3,0 +2020-04-08,Stone,Missouri,29209,3,0 +2020-04-09,Stone,Missouri,29209,4,0 +2020-04-10,Stone,Missouri,29209,3,0 +2020-04-11,Stone,Missouri,29209,3,0 +2020-04-12,Stone,Missouri,29209,3,0 +2020-04-13,Stone,Missouri,29209,3,0 +2020-04-14,Stone,Missouri,29209,3,0 +2020-04-15,Stone,Missouri,29209,3,0 +2020-04-16,Stone,Missouri,29209,3,0 +2020-04-17,Stone,Missouri,29209,3,0 +2020-04-18,Stone,Missouri,29209,3,0 +2020-04-19,Stone,Missouri,29209,3,0 +2020-04-20,Stone,Missouri,29209,3,0 +2020-04-21,Stone,Missouri,29209,3,0 +2020-04-22,Stone,Missouri,29209,3,0 +2020-04-23,Stone,Missouri,29209,3,0 +2020-04-24,Stone,Missouri,29209,3,0 +2020-04-25,Stone,Missouri,29209,3,0 +2020-04-26,Stone,Missouri,29209,3,0 +2020-04-27,Stone,Missouri,29209,3,0 +2020-04-28,Stone,Missouri,29209,3,0 +2020-04-29,Stone,Missouri,29209,3,0 +2020-04-30,Stone,Missouri,29209,3,0 +2020-05-01,Stone,Missouri,29209,3,0 +2020-05-02,Stone,Missouri,29209,3,0 +2020-05-03,Stone,Missouri,29209,3,0 +2020-05-04,Stone,Missouri,29209,3,0 +2020-05-05,Stone,Missouri,29209,3,0 +2020-05-06,Stone,Missouri,29209,3,0 +2020-05-07,Stone,Missouri,29209,3,0 +2020-05-08,Stone,Missouri,29209,3,0 +2020-05-09,Stone,Missouri,29209,3,0 +2020-05-10,Stone,Missouri,29209,3,0 +2020-05-11,Stone,Missouri,29209,3,0 +2020-05-12,Stone,Missouri,29209,3,0 +2020-05-13,Stone,Missouri,29209,3,0 +2020-05-14,Stone,Missouri,29209,3,0 +2020-05-15,Stone,Missouri,29209,3,0 +2020-05-16,Stone,Missouri,29209,3,0 +2020-05-17,Stone,Missouri,29209,3,0 +2020-05-18,Stone,Missouri,29209,4,0 +2020-05-19,Stone,Missouri,29209,4,0 +2020-05-20,Stone,Missouri,29209,4,0 +2020-05-21,Stone,Missouri,29209,4,0 +2020-05-22,Stone,Missouri,29209,4,0 +2020-05-23,Stone,Missouri,29209,4,0 +2020-05-24,Stone,Missouri,29209,4,0 +2020-05-25,Stone,Missouri,29209,4,0 +2020-05-26,Stone,Missouri,29209,4,0 +2020-05-27,Stone,Missouri,29209,4,0 +2020-05-28,Stone,Missouri,29209,4,0 +2020-05-29,Stone,Missouri,29209,4,0 +2020-05-30,Stone,Missouri,29209,4,0 +2020-05-31,Stone,Missouri,29209,4,0 +2020-06-01,Stone,Missouri,29209,4,0 +2020-06-02,Stone,Missouri,29209,5,0 +2020-06-03,Stone,Missouri,29209,5,0 +2020-06-04,Stone,Missouri,29209,10,0 +2020-06-05,Stone,Missouri,29209,9,0 +2020-06-06,Stone,Missouri,29209,8,0 +2020-06-07,Stone,Missouri,29209,8,0 +2020-06-08,Stone,Missouri,29209,8,0 +2020-06-09,Stone,Missouri,29209,8,0 +2020-06-10,Stone,Missouri,29209,7,0 +2020-06-11,Stone,Missouri,29209,7,0 +2020-06-12,Stone,Missouri,29209,7,0 +2020-06-13,Stone,Missouri,29209,7,0 +2020-06-14,Stone,Missouri,29209,7,0 +2020-06-15,Stone,Missouri,29209,7,0 +2020-06-16,Stone,Missouri,29209,7,0 +2020-06-17,Stone,Missouri,29209,7,0 +2020-06-18,Stone,Missouri,29209,8,0 +2020-06-19,Stone,Missouri,29209,10,0 +2020-06-20,Stone,Missouri,29209,10,0 +2020-06-21,Stone,Missouri,29209,10,0 +2020-06-22,Stone,Missouri,29209,10,0 +2020-06-23,Stone,Missouri,29209,11,0 +2020-06-24,Stone,Missouri,29209,11,0 +2020-06-25,Stone,Missouri,29209,11,0 +2020-06-26,Stone,Missouri,29209,12,0 +2020-06-27,Stone,Missouri,29209,12,0 +2020-06-28,Stone,Missouri,29209,13,0 +2020-06-29,Stone,Missouri,29209,14,0 +2020-06-30,Stone,Missouri,29209,14,0 +2020-07-01,Stone,Missouri,29209,14,0 +2020-07-02,Stone,Missouri,29209,16,0 +2020-07-03,Stone,Missouri,29209,20,0 +2020-07-04,Stone,Missouri,29209,20,0 +2020-07-05,Stone,Missouri,29209,20,0 +2020-07-06,Stone,Missouri,29209,20,0 +2020-07-07,Stone,Missouri,29209,19,0 +2020-07-08,Stone,Missouri,29209,21,0 +2020-07-09,Stone,Missouri,29209,21,0 +2020-05-03,Sullivan,Missouri,29211,1,0 +2020-05-04,Sullivan,Missouri,29211,2,0 +2020-05-05,Sullivan,Missouri,29211,1,0 +2020-05-06,Sullivan,Missouri,29211,1,0 +2020-05-07,Sullivan,Missouri,29211,1,0 +2020-05-08,Sullivan,Missouri,29211,1,0 +2020-05-09,Sullivan,Missouri,29211,1,0 +2020-05-10,Sullivan,Missouri,29211,1,0 +2020-05-11,Sullivan,Missouri,29211,1,0 +2020-05-12,Sullivan,Missouri,29211,2,0 +2020-05-13,Sullivan,Missouri,29211,3,0 +2020-05-14,Sullivan,Missouri,29211,9,0 +2020-05-15,Sullivan,Missouri,29211,13,0 +2020-05-16,Sullivan,Missouri,29211,34,0 +2020-05-17,Sullivan,Missouri,29211,36,0 +2020-05-18,Sullivan,Missouri,29211,36,0 +2020-05-19,Sullivan,Missouri,29211,37,0 +2020-05-20,Sullivan,Missouri,29211,37,0 +2020-05-21,Sullivan,Missouri,29211,38,0 +2020-05-22,Sullivan,Missouri,29211,39,0 +2020-05-23,Sullivan,Missouri,29211,44,0 +2020-05-24,Sullivan,Missouri,29211,49,0 +2020-05-25,Sullivan,Missouri,29211,53,0 +2020-05-26,Sullivan,Missouri,29211,53,0 +2020-05-27,Sullivan,Missouri,29211,53,0 +2020-05-28,Sullivan,Missouri,29211,54,0 +2020-05-29,Sullivan,Missouri,29211,55,0 +2020-05-30,Sullivan,Missouri,29211,57,0 +2020-05-31,Sullivan,Missouri,29211,59,0 +2020-06-01,Sullivan,Missouri,29211,60,0 +2020-06-02,Sullivan,Missouri,29211,61,0 +2020-06-03,Sullivan,Missouri,29211,61,0 +2020-06-04,Sullivan,Missouri,29211,63,0 +2020-06-05,Sullivan,Missouri,29211,63,0 +2020-06-06,Sullivan,Missouri,29211,65,0 +2020-06-07,Sullivan,Missouri,29211,66,0 +2020-06-08,Sullivan,Missouri,29211,67,0 +2020-06-09,Sullivan,Missouri,29211,68,0 +2020-06-10,Sullivan,Missouri,29211,71,0 +2020-06-11,Sullivan,Missouri,29211,71,0 +2020-06-12,Sullivan,Missouri,29211,72,0 +2020-06-13,Sullivan,Missouri,29211,77,0 +2020-06-14,Sullivan,Missouri,29211,77,0 +2020-06-15,Sullivan,Missouri,29211,77,0 +2020-06-16,Sullivan,Missouri,29211,78,0 +2020-06-17,Sullivan,Missouri,29211,91,0 +2020-06-18,Sullivan,Missouri,29211,91,0 +2020-06-19,Sullivan,Missouri,29211,93,0 +2020-06-20,Sullivan,Missouri,29211,96,0 +2020-06-21,Sullivan,Missouri,29211,101,0 +2020-06-22,Sullivan,Missouri,29211,102,0 +2020-06-23,Sullivan,Missouri,29211,103,0 +2020-06-24,Sullivan,Missouri,29211,102,0 +2020-06-25,Sullivan,Missouri,29211,108,0 +2020-06-26,Sullivan,Missouri,29211,107,0 +2020-06-27,Sullivan,Missouri,29211,108,0 +2020-06-28,Sullivan,Missouri,29211,109,0 +2020-06-29,Sullivan,Missouri,29211,109,0 +2020-06-30,Sullivan,Missouri,29211,110,0 +2020-07-01,Sullivan,Missouri,29211,111,0 +2020-07-02,Sullivan,Missouri,29211,112,0 +2020-07-03,Sullivan,Missouri,29211,115,0 +2020-07-04,Sullivan,Missouri,29211,115,0 +2020-07-05,Sullivan,Missouri,29211,115,0 +2020-07-06,Sullivan,Missouri,29211,115,0 +2020-07-07,Sullivan,Missouri,29211,119,0 +2020-07-08,Sullivan,Missouri,29211,118,0 +2020-07-09,Sullivan,Missouri,29211,118,0 +2020-03-23,Taney,Missouri,29213,1,0 +2020-03-24,Taney,Missouri,29213,1,0 +2020-03-25,Taney,Missouri,29213,1,0 +2020-03-26,Taney,Missouri,29213,1,0 +2020-03-27,Taney,Missouri,29213,1,0 +2020-03-28,Taney,Missouri,29213,2,0 +2020-03-29,Taney,Missouri,29213,2,0 +2020-03-30,Taney,Missouri,29213,2,0 +2020-03-31,Taney,Missouri,29213,2,0 +2020-04-01,Taney,Missouri,29213,2,0 +2020-04-02,Taney,Missouri,29213,2,0 +2020-04-03,Taney,Missouri,29213,5,0 +2020-04-04,Taney,Missouri,29213,5,0 +2020-04-05,Taney,Missouri,29213,5,0 +2020-04-06,Taney,Missouri,29213,7,0 +2020-04-07,Taney,Missouri,29213,7,0 +2020-04-08,Taney,Missouri,29213,7,0 +2020-04-09,Taney,Missouri,29213,7,1 +2020-04-10,Taney,Missouri,29213,7,1 +2020-04-11,Taney,Missouri,29213,7,1 +2020-04-12,Taney,Missouri,29213,7,1 +2020-04-13,Taney,Missouri,29213,8,1 +2020-04-14,Taney,Missouri,29213,7,1 +2020-04-15,Taney,Missouri,29213,8,1 +2020-04-16,Taney,Missouri,29213,8,1 +2020-04-17,Taney,Missouri,29213,8,1 +2020-04-18,Taney,Missouri,29213,9,1 +2020-04-19,Taney,Missouri,29213,9,1 +2020-04-20,Taney,Missouri,29213,9,1 +2020-04-21,Taney,Missouri,29213,9,1 +2020-04-22,Taney,Missouri,29213,9,1 +2020-04-23,Taney,Missouri,29213,10,1 +2020-04-24,Taney,Missouri,29213,10,1 +2020-04-25,Taney,Missouri,29213,10,1 +2020-04-26,Taney,Missouri,29213,10,1 +2020-04-27,Taney,Missouri,29213,10,1 +2020-04-28,Taney,Missouri,29213,11,1 +2020-04-29,Taney,Missouri,29213,11,1 +2020-04-30,Taney,Missouri,29213,11,1 +2020-05-01,Taney,Missouri,29213,11,2 +2020-05-02,Taney,Missouri,29213,12,2 +2020-05-03,Taney,Missouri,29213,12,2 +2020-05-04,Taney,Missouri,29213,12,2 +2020-05-05,Taney,Missouri,29213,12,2 +2020-05-06,Taney,Missouri,29213,12,2 +2020-05-07,Taney,Missouri,29213,12,2 +2020-05-08,Taney,Missouri,29213,12,2 +2020-05-09,Taney,Missouri,29213,12,2 +2020-05-10,Taney,Missouri,29213,12,2 +2020-05-11,Taney,Missouri,29213,12,2 +2020-05-12,Taney,Missouri,29213,12,2 +2020-05-13,Taney,Missouri,29213,12,2 +2020-05-14,Taney,Missouri,29213,12,2 +2020-05-15,Taney,Missouri,29213,12,2 +2020-05-16,Taney,Missouri,29213,12,2 +2020-05-17,Taney,Missouri,29213,12,2 +2020-05-18,Taney,Missouri,29213,12,2 +2020-05-19,Taney,Missouri,29213,12,2 +2020-05-20,Taney,Missouri,29213,12,2 +2020-05-21,Taney,Missouri,29213,12,2 +2020-05-22,Taney,Missouri,29213,12,2 +2020-05-23,Taney,Missouri,29213,12,2 +2020-05-24,Taney,Missouri,29213,13,2 +2020-05-25,Taney,Missouri,29213,13,2 +2020-05-26,Taney,Missouri,29213,13,2 +2020-05-27,Taney,Missouri,29213,13,2 +2020-05-28,Taney,Missouri,29213,13,2 +2020-05-29,Taney,Missouri,29213,13,2 +2020-05-30,Taney,Missouri,29213,13,2 +2020-05-31,Taney,Missouri,29213,13,2 +2020-06-01,Taney,Missouri,29213,13,2 +2020-06-02,Taney,Missouri,29213,13,2 +2020-06-03,Taney,Missouri,29213,13,2 +2020-06-04,Taney,Missouri,29213,13,2 +2020-06-05,Taney,Missouri,29213,13,2 +2020-06-06,Taney,Missouri,29213,13,2 +2020-06-07,Taney,Missouri,29213,13,2 +2020-06-08,Taney,Missouri,29213,13,2 +2020-06-09,Taney,Missouri,29213,13,2 +2020-06-10,Taney,Missouri,29213,13,2 +2020-06-11,Taney,Missouri,29213,15,2 +2020-06-12,Taney,Missouri,29213,15,2 +2020-06-13,Taney,Missouri,29213,15,2 +2020-06-14,Taney,Missouri,29213,15,2 +2020-06-15,Taney,Missouri,29213,24,2 +2020-06-16,Taney,Missouri,29213,26,2 +2020-06-17,Taney,Missouri,29213,27,2 +2020-06-18,Taney,Missouri,29213,29,2 +2020-06-19,Taney,Missouri,29213,30,2 +2020-06-20,Taney,Missouri,29213,30,2 +2020-06-21,Taney,Missouri,29213,30,2 +2020-06-22,Taney,Missouri,29213,32,2 +2020-06-23,Taney,Missouri,29213,34,2 +2020-06-24,Taney,Missouri,29213,35,2 +2020-06-25,Taney,Missouri,29213,39,2 +2020-06-26,Taney,Missouri,29213,40,2 +2020-06-27,Taney,Missouri,29213,48,2 +2020-06-28,Taney,Missouri,29213,56,2 +2020-06-29,Taney,Missouri,29213,60,2 +2020-06-30,Taney,Missouri,29213,60,2 +2020-07-01,Taney,Missouri,29213,63,2 +2020-07-02,Taney,Missouri,29213,67,2 +2020-07-03,Taney,Missouri,29213,74,2 +2020-07-04,Taney,Missouri,29213,83,2 +2020-07-05,Taney,Missouri,29213,84,2 +2020-07-06,Taney,Missouri,29213,96,2 +2020-07-07,Taney,Missouri,29213,105,2 +2020-07-08,Taney,Missouri,29213,112,2 +2020-07-09,Taney,Missouri,29213,119,2 +2020-05-29,Texas,Missouri,29215,1,0 +2020-05-30,Texas,Missouri,29215,1,0 +2020-05-31,Texas,Missouri,29215,1,0 +2020-06-01,Texas,Missouri,29215,1,0 +2020-06-02,Texas,Missouri,29215,1,0 +2020-06-03,Texas,Missouri,29215,1,0 +2020-06-04,Texas,Missouri,29215,1,0 +2020-06-05,Texas,Missouri,29215,1,0 +2020-06-06,Texas,Missouri,29215,1,0 +2020-06-07,Texas,Missouri,29215,1,0 +2020-06-08,Texas,Missouri,29215,1,0 +2020-06-09,Texas,Missouri,29215,1,0 +2020-06-10,Texas,Missouri,29215,1,0 +2020-06-11,Texas,Missouri,29215,1,0 +2020-06-12,Texas,Missouri,29215,1,0 +2020-06-13,Texas,Missouri,29215,1,0 +2020-06-14,Texas,Missouri,29215,1,0 +2020-06-15,Texas,Missouri,29215,1,0 +2020-06-16,Texas,Missouri,29215,1,0 +2020-06-17,Texas,Missouri,29215,1,0 +2020-06-18,Texas,Missouri,29215,1,0 +2020-06-19,Texas,Missouri,29215,1,0 +2020-06-20,Texas,Missouri,29215,2,0 +2020-06-21,Texas,Missouri,29215,2,0 +2020-06-22,Texas,Missouri,29215,2,0 +2020-06-23,Texas,Missouri,29215,2,0 +2020-06-24,Texas,Missouri,29215,5,0 +2020-06-25,Texas,Missouri,29215,4,0 +2020-06-26,Texas,Missouri,29215,4,0 +2020-06-27,Texas,Missouri,29215,4,0 +2020-06-28,Texas,Missouri,29215,4,0 +2020-06-29,Texas,Missouri,29215,4,0 +2020-06-30,Texas,Missouri,29215,4,0 +2020-07-01,Texas,Missouri,29215,5,0 +2020-07-02,Texas,Missouri,29215,6,0 +2020-07-03,Texas,Missouri,29215,6,0 +2020-07-04,Texas,Missouri,29215,6,0 +2020-07-05,Texas,Missouri,29215,7,0 +2020-07-06,Texas,Missouri,29215,9,0 +2020-07-07,Texas,Missouri,29215,9,0 +2020-07-08,Texas,Missouri,29215,9,0 +2020-07-09,Texas,Missouri,29215,10,0 +2020-04-09,Vernon,Missouri,29217,1,0 +2020-04-10,Vernon,Missouri,29217,3,0 +2020-04-11,Vernon,Missouri,29217,3,0 +2020-04-12,Vernon,Missouri,29217,3,0 +2020-04-13,Vernon,Missouri,29217,3,0 +2020-04-14,Vernon,Missouri,29217,3,0 +2020-04-15,Vernon,Missouri,29217,3,0 +2020-04-16,Vernon,Missouri,29217,4,0 +2020-04-17,Vernon,Missouri,29217,4,0 +2020-04-18,Vernon,Missouri,29217,4,0 +2020-04-19,Vernon,Missouri,29217,4,0 +2020-04-20,Vernon,Missouri,29217,4,0 +2020-04-21,Vernon,Missouri,29217,3,0 +2020-04-22,Vernon,Missouri,29217,4,0 +2020-04-23,Vernon,Missouri,29217,4,0 +2020-04-24,Vernon,Missouri,29217,4,0 +2020-04-25,Vernon,Missouri,29217,4,0 +2020-04-26,Vernon,Missouri,29217,4,0 +2020-04-27,Vernon,Missouri,29217,4,0 +2020-04-28,Vernon,Missouri,29217,4,0 +2020-04-29,Vernon,Missouri,29217,4,0 +2020-04-30,Vernon,Missouri,29217,4,0 +2020-05-01,Vernon,Missouri,29217,4,0 +2020-05-02,Vernon,Missouri,29217,4,0 +2020-05-03,Vernon,Missouri,29217,4,0 +2020-05-04,Vernon,Missouri,29217,4,0 +2020-05-05,Vernon,Missouri,29217,4,0 +2020-05-06,Vernon,Missouri,29217,5,0 +2020-05-07,Vernon,Missouri,29217,4,0 +2020-05-08,Vernon,Missouri,29217,4,0 +2020-05-09,Vernon,Missouri,29217,4,0 +2020-05-10,Vernon,Missouri,29217,4,0 +2020-05-11,Vernon,Missouri,29217,4,0 +2020-05-12,Vernon,Missouri,29217,4,0 +2020-05-13,Vernon,Missouri,29217,4,0 +2020-05-14,Vernon,Missouri,29217,4,0 +2020-05-15,Vernon,Missouri,29217,4,0 +2020-05-16,Vernon,Missouri,29217,5,0 +2020-05-17,Vernon,Missouri,29217,5,0 +2020-05-18,Vernon,Missouri,29217,5,0 +2020-05-19,Vernon,Missouri,29217,5,0 +2020-05-20,Vernon,Missouri,29217,6,0 +2020-05-21,Vernon,Missouri,29217,7,0 +2020-05-22,Vernon,Missouri,29217,7,0 +2020-05-23,Vernon,Missouri,29217,7,0 +2020-05-24,Vernon,Missouri,29217,7,0 +2020-05-25,Vernon,Missouri,29217,7,0 +2020-05-26,Vernon,Missouri,29217,9,0 +2020-05-27,Vernon,Missouri,29217,9,0 +2020-05-28,Vernon,Missouri,29217,9,0 +2020-05-29,Vernon,Missouri,29217,9,0 +2020-05-30,Vernon,Missouri,29217,9,0 +2020-05-31,Vernon,Missouri,29217,9,0 +2020-06-01,Vernon,Missouri,29217,9,0 +2020-06-02,Vernon,Missouri,29217,10,0 +2020-06-03,Vernon,Missouri,29217,10,0 +2020-06-04,Vernon,Missouri,29217,10,0 +2020-06-05,Vernon,Missouri,29217,10,0 +2020-06-06,Vernon,Missouri,29217,10,0 +2020-06-07,Vernon,Missouri,29217,11,0 +2020-06-08,Vernon,Missouri,29217,12,0 +2020-06-09,Vernon,Missouri,29217,12,0 +2020-06-10,Vernon,Missouri,29217,12,0 +2020-06-11,Vernon,Missouri,29217,12,0 +2020-06-12,Vernon,Missouri,29217,12,0 +2020-06-13,Vernon,Missouri,29217,12,0 +2020-06-14,Vernon,Missouri,29217,12,0 +2020-06-15,Vernon,Missouri,29217,12,0 +2020-06-16,Vernon,Missouri,29217,12,0 +2020-06-17,Vernon,Missouri,29217,12,0 +2020-06-18,Vernon,Missouri,29217,12,0 +2020-06-19,Vernon,Missouri,29217,12,0 +2020-06-20,Vernon,Missouri,29217,12,0 +2020-06-21,Vernon,Missouri,29217,12,0 +2020-06-22,Vernon,Missouri,29217,13,0 +2020-06-23,Vernon,Missouri,29217,13,0 +2020-06-24,Vernon,Missouri,29217,13,0 +2020-06-25,Vernon,Missouri,29217,15,0 +2020-06-26,Vernon,Missouri,29217,16,0 +2020-06-27,Vernon,Missouri,29217,16,0 +2020-06-28,Vernon,Missouri,29217,16,0 +2020-06-29,Vernon,Missouri,29217,16,0 +2020-06-30,Vernon,Missouri,29217,17,0 +2020-07-01,Vernon,Missouri,29217,17,0 +2020-07-02,Vernon,Missouri,29217,17,0 +2020-07-03,Vernon,Missouri,29217,26,1 +2020-07-04,Vernon,Missouri,29217,27,1 +2020-07-05,Vernon,Missouri,29217,27,1 +2020-07-06,Vernon,Missouri,29217,27,0 +2020-07-07,Vernon,Missouri,29217,26,0 +2020-07-08,Vernon,Missouri,29217,26,0 +2020-07-09,Vernon,Missouri,29217,28,0 +2020-03-28,Warren,Missouri,29219,1,0 +2020-03-29,Warren,Missouri,29219,2,0 +2020-03-30,Warren,Missouri,29219,2,0 +2020-03-31,Warren,Missouri,29219,5,0 +2020-04-01,Warren,Missouri,29219,6,0 +2020-04-02,Warren,Missouri,29219,7,0 +2020-04-03,Warren,Missouri,29219,7,0 +2020-04-04,Warren,Missouri,29219,7,0 +2020-04-05,Warren,Missouri,29219,9,0 +2020-04-06,Warren,Missouri,29219,9,0 +2020-04-07,Warren,Missouri,29219,11,0 +2020-04-08,Warren,Missouri,29219,13,0 +2020-04-09,Warren,Missouri,29219,12,0 +2020-04-10,Warren,Missouri,29219,11,0 +2020-04-11,Warren,Missouri,29219,11,0 +2020-04-12,Warren,Missouri,29219,12,0 +2020-04-13,Warren,Missouri,29219,12,0 +2020-04-14,Warren,Missouri,29219,16,0 +2020-04-15,Warren,Missouri,29219,16,0 +2020-04-16,Warren,Missouri,29219,16,0 +2020-04-17,Warren,Missouri,29219,17,0 +2020-04-18,Warren,Missouri,29219,18,0 +2020-04-19,Warren,Missouri,29219,18,0 +2020-04-20,Warren,Missouri,29219,18,0 +2020-04-21,Warren,Missouri,29219,20,0 +2020-04-22,Warren,Missouri,29219,20,0 +2020-04-23,Warren,Missouri,29219,20,0 +2020-04-24,Warren,Missouri,29219,20,0 +2020-04-25,Warren,Missouri,29219,22,0 +2020-04-26,Warren,Missouri,29219,22,0 +2020-04-27,Warren,Missouri,29219,22,0 +2020-04-28,Warren,Missouri,29219,20,0 +2020-04-29,Warren,Missouri,29219,20,0 +2020-04-30,Warren,Missouri,29219,20,0 +2020-05-01,Warren,Missouri,29219,20,0 +2020-05-02,Warren,Missouri,29219,20,0 +2020-05-03,Warren,Missouri,29219,21,0 +2020-05-04,Warren,Missouri,29219,22,0 +2020-05-05,Warren,Missouri,29219,21,0 +2020-05-06,Warren,Missouri,29219,23,0 +2020-05-07,Warren,Missouri,29219,23,0 +2020-05-08,Warren,Missouri,29219,24,0 +2020-05-09,Warren,Missouri,29219,24,0 +2020-05-10,Warren,Missouri,29219,24,0 +2020-05-11,Warren,Missouri,29219,24,0 +2020-05-12,Warren,Missouri,29219,24,0 +2020-05-13,Warren,Missouri,29219,24,0 +2020-05-14,Warren,Missouri,29219,24,0 +2020-05-15,Warren,Missouri,29219,24,0 +2020-05-16,Warren,Missouri,29219,24,0 +2020-05-17,Warren,Missouri,29219,25,0 +2020-05-18,Warren,Missouri,29219,25,0 +2020-05-19,Warren,Missouri,29219,25,0 +2020-05-20,Warren,Missouri,29219,25,0 +2020-05-21,Warren,Missouri,29219,25,0 +2020-05-22,Warren,Missouri,29219,25,0 +2020-05-23,Warren,Missouri,29219,25,0 +2020-05-24,Warren,Missouri,29219,26,0 +2020-05-25,Warren,Missouri,29219,26,0 +2020-05-26,Warren,Missouri,29219,26,0 +2020-05-27,Warren,Missouri,29219,26,0 +2020-05-28,Warren,Missouri,29219,26,0 +2020-05-29,Warren,Missouri,29219,27,0 +2020-05-30,Warren,Missouri,29219,26,0 +2020-05-31,Warren,Missouri,29219,27,0 +2020-06-01,Warren,Missouri,29219,26,0 +2020-06-02,Warren,Missouri,29219,27,0 +2020-06-03,Warren,Missouri,29219,27,0 +2020-06-04,Warren,Missouri,29219,28,0 +2020-06-05,Warren,Missouri,29219,29,0 +2020-06-06,Warren,Missouri,29219,29,0 +2020-06-07,Warren,Missouri,29219,29,0 +2020-06-08,Warren,Missouri,29219,29,0 +2020-06-09,Warren,Missouri,29219,30,0 +2020-06-10,Warren,Missouri,29219,31,0 +2020-06-11,Warren,Missouri,29219,30,0 +2020-06-12,Warren,Missouri,29219,31,0 +2020-06-13,Warren,Missouri,29219,30,0 +2020-06-14,Warren,Missouri,29219,30,0 +2020-06-15,Warren,Missouri,29219,30,0 +2020-06-16,Warren,Missouri,29219,32,0 +2020-06-17,Warren,Missouri,29219,32,0 +2020-06-18,Warren,Missouri,29219,32,0 +2020-06-19,Warren,Missouri,29219,32,0 +2020-06-20,Warren,Missouri,29219,33,0 +2020-06-21,Warren,Missouri,29219,33,0 +2020-06-22,Warren,Missouri,29219,33,0 +2020-06-23,Warren,Missouri,29219,34,0 +2020-06-24,Warren,Missouri,29219,34,0 +2020-06-25,Warren,Missouri,29219,37,0 +2020-06-26,Warren,Missouri,29219,39,0 +2020-06-27,Warren,Missouri,29219,40,0 +2020-06-28,Warren,Missouri,29219,40,0 +2020-06-29,Warren,Missouri,29219,40,0 +2020-06-30,Warren,Missouri,29219,43,0 +2020-07-01,Warren,Missouri,29219,43,0 +2020-07-02,Warren,Missouri,29219,44,0 +2020-07-03,Warren,Missouri,29219,45,0 +2020-07-04,Warren,Missouri,29219,57,0 +2020-07-05,Warren,Missouri,29219,58,0 +2020-07-06,Warren,Missouri,29219,59,0 +2020-07-07,Warren,Missouri,29219,59,0 +2020-07-08,Warren,Missouri,29219,63,0 +2020-07-09,Warren,Missouri,29219,67,0 +2020-04-08,Washington,Missouri,29221,1,0 +2020-04-09,Washington,Missouri,29221,1,0 +2020-04-10,Washington,Missouri,29221,1,0 +2020-04-11,Washington,Missouri,29221,1,0 +2020-04-12,Washington,Missouri,29221,1,0 +2020-04-13,Washington,Missouri,29221,1,0 +2020-04-14,Washington,Missouri,29221,1,0 +2020-04-15,Washington,Missouri,29221,2,0 +2020-04-16,Washington,Missouri,29221,3,0 +2020-04-17,Washington,Missouri,29221,4,0 +2020-04-18,Washington,Missouri,29221,4,0 +2020-04-19,Washington,Missouri,29221,4,0 +2020-04-20,Washington,Missouri,29221,5,0 +2020-04-21,Washington,Missouri,29221,6,0 +2020-04-22,Washington,Missouri,29221,6,0 +2020-04-23,Washington,Missouri,29221,7,0 +2020-04-24,Washington,Missouri,29221,8,0 +2020-04-25,Washington,Missouri,29221,8,1 +2020-04-26,Washington,Missouri,29221,8,1 +2020-04-27,Washington,Missouri,29221,8,1 +2020-04-28,Washington,Missouri,29221,8,1 +2020-04-29,Washington,Missouri,29221,8,1 +2020-04-30,Washington,Missouri,29221,8,1 +2020-05-01,Washington,Missouri,29221,8,1 +2020-05-02,Washington,Missouri,29221,8,1 +2020-05-03,Washington,Missouri,29221,8,1 +2020-05-04,Washington,Missouri,29221,9,1 +2020-05-05,Washington,Missouri,29221,9,1 +2020-05-06,Washington,Missouri,29221,9,1 +2020-05-07,Washington,Missouri,29221,9,1 +2020-05-08,Washington,Missouri,29221,9,1 +2020-05-09,Washington,Missouri,29221,9,1 +2020-05-10,Washington,Missouri,29221,9,1 +2020-05-11,Washington,Missouri,29221,9,1 +2020-05-12,Washington,Missouri,29221,9,1 +2020-05-13,Washington,Missouri,29221,9,1 +2020-05-14,Washington,Missouri,29221,9,1 +2020-05-15,Washington,Missouri,29221,9,1 +2020-05-16,Washington,Missouri,29221,9,1 +2020-05-17,Washington,Missouri,29221,9,1 +2020-05-18,Washington,Missouri,29221,9,1 +2020-05-19,Washington,Missouri,29221,9,1 +2020-05-20,Washington,Missouri,29221,9,1 +2020-05-21,Washington,Missouri,29221,10,1 +2020-05-22,Washington,Missouri,29221,10,1 +2020-05-23,Washington,Missouri,29221,10,1 +2020-05-24,Washington,Missouri,29221,10,1 +2020-05-25,Washington,Missouri,29221,10,1 +2020-05-26,Washington,Missouri,29221,10,1 +2020-05-27,Washington,Missouri,29221,10,1 +2020-05-28,Washington,Missouri,29221,10,1 +2020-05-29,Washington,Missouri,29221,11,1 +2020-05-30,Washington,Missouri,29221,11,1 +2020-05-31,Washington,Missouri,29221,11,1 +2020-06-01,Washington,Missouri,29221,12,1 +2020-06-02,Washington,Missouri,29221,12,1 +2020-06-03,Washington,Missouri,29221,12,1 +2020-06-04,Washington,Missouri,29221,12,1 +2020-06-05,Washington,Missouri,29221,12,1 +2020-06-06,Washington,Missouri,29221,13,1 +2020-06-07,Washington,Missouri,29221,13,1 +2020-06-08,Washington,Missouri,29221,13,1 +2020-06-09,Washington,Missouri,29221,13,1 +2020-06-10,Washington,Missouri,29221,13,1 +2020-06-11,Washington,Missouri,29221,13,1 +2020-06-12,Washington,Missouri,29221,13,1 +2020-06-13,Washington,Missouri,29221,13,1 +2020-06-14,Washington,Missouri,29221,13,1 +2020-06-15,Washington,Missouri,29221,13,1 +2020-06-16,Washington,Missouri,29221,13,1 +2020-06-17,Washington,Missouri,29221,13,1 +2020-06-18,Washington,Missouri,29221,14,1 +2020-06-19,Washington,Missouri,29221,14,1 +2020-06-20,Washington,Missouri,29221,14,1 +2020-06-21,Washington,Missouri,29221,14,1 +2020-06-22,Washington,Missouri,29221,14,1 +2020-06-23,Washington,Missouri,29221,15,1 +2020-06-24,Washington,Missouri,29221,17,1 +2020-06-25,Washington,Missouri,29221,19,1 +2020-06-26,Washington,Missouri,29221,21,1 +2020-06-27,Washington,Missouri,29221,21,1 +2020-06-28,Washington,Missouri,29221,23,1 +2020-06-29,Washington,Missouri,29221,23,1 +2020-06-30,Washington,Missouri,29221,23,1 +2020-07-01,Washington,Missouri,29221,23,1 +2020-07-02,Washington,Missouri,29221,23,1 +2020-07-03,Washington,Missouri,29221,25,1 +2020-07-04,Washington,Missouri,29221,25,1 +2020-07-05,Washington,Missouri,29221,25,1 +2020-07-06,Washington,Missouri,29221,25,1 +2020-07-07,Washington,Missouri,29221,25,1 +2020-07-08,Washington,Missouri,29221,26,1 +2020-07-09,Washington,Missouri,29221,26,1 +2020-06-20,Wayne,Missouri,29223,1,0 +2020-06-21,Wayne,Missouri,29223,1,0 +2020-06-22,Wayne,Missouri,29223,1,0 +2020-06-23,Wayne,Missouri,29223,3,0 +2020-06-24,Wayne,Missouri,29223,3,0 +2020-06-25,Wayne,Missouri,29223,3,0 +2020-06-26,Wayne,Missouri,29223,3,0 +2020-06-27,Wayne,Missouri,29223,3,0 +2020-06-28,Wayne,Missouri,29223,3,0 +2020-06-29,Wayne,Missouri,29223,5,0 +2020-06-30,Wayne,Missouri,29223,5,0 +2020-07-01,Wayne,Missouri,29223,5,0 +2020-07-02,Wayne,Missouri,29223,4,0 +2020-07-03,Wayne,Missouri,29223,4,0 +2020-07-04,Wayne,Missouri,29223,4,0 +2020-07-05,Wayne,Missouri,29223,4,0 +2020-07-06,Wayne,Missouri,29223,5,0 +2020-07-07,Wayne,Missouri,29223,5,0 +2020-07-08,Wayne,Missouri,29223,5,0 +2020-07-09,Wayne,Missouri,29223,5,0 +2020-03-30,Webster,Missouri,29225,1,0 +2020-03-31,Webster,Missouri,29225,2,0 +2020-04-01,Webster,Missouri,29225,2,0 +2020-04-02,Webster,Missouri,29225,2,0 +2020-04-03,Webster,Missouri,29225,2,0 +2020-04-04,Webster,Missouri,29225,3,0 +2020-04-05,Webster,Missouri,29225,3,0 +2020-04-06,Webster,Missouri,29225,3,0 +2020-04-07,Webster,Missouri,29225,3,0 +2020-04-08,Webster,Missouri,29225,3,0 +2020-04-09,Webster,Missouri,29225,3,0 +2020-04-10,Webster,Missouri,29225,3,0 +2020-04-11,Webster,Missouri,29225,4,0 +2020-04-12,Webster,Missouri,29225,4,0 +2020-04-13,Webster,Missouri,29225,4,0 +2020-04-14,Webster,Missouri,29225,5,0 +2020-04-15,Webster,Missouri,29225,5,0 +2020-04-16,Webster,Missouri,29225,5,0 +2020-04-17,Webster,Missouri,29225,6,0 +2020-04-18,Webster,Missouri,29225,8,0 +2020-04-19,Webster,Missouri,29225,8,0 +2020-04-20,Webster,Missouri,29225,10,0 +2020-04-21,Webster,Missouri,29225,10,0 +2020-04-22,Webster,Missouri,29225,13,0 +2020-04-23,Webster,Missouri,29225,13,0 +2020-04-24,Webster,Missouri,29225,13,0 +2020-04-25,Webster,Missouri,29225,13,0 +2020-04-26,Webster,Missouri,29225,13,0 +2020-04-27,Webster,Missouri,29225,13,0 +2020-04-28,Webster,Missouri,29225,13,0 +2020-04-29,Webster,Missouri,29225,15,0 +2020-04-30,Webster,Missouri,29225,15,0 +2020-05-01,Webster,Missouri,29225,15,0 +2020-05-02,Webster,Missouri,29225,15,0 +2020-05-03,Webster,Missouri,29225,15,0 +2020-05-04,Webster,Missouri,29225,15,0 +2020-05-05,Webster,Missouri,29225,15,0 +2020-05-06,Webster,Missouri,29225,15,0 +2020-05-07,Webster,Missouri,29225,15,0 +2020-05-08,Webster,Missouri,29225,16,0 +2020-05-09,Webster,Missouri,29225,16,0 +2020-05-10,Webster,Missouri,29225,16,0 +2020-05-11,Webster,Missouri,29225,16,0 +2020-05-12,Webster,Missouri,29225,16,0 +2020-05-13,Webster,Missouri,29225,16,0 +2020-05-14,Webster,Missouri,29225,16,0 +2020-05-15,Webster,Missouri,29225,16,0 +2020-05-16,Webster,Missouri,29225,16,0 +2020-05-17,Webster,Missouri,29225,16,0 +2020-05-18,Webster,Missouri,29225,17,0 +2020-05-19,Webster,Missouri,29225,17,0 +2020-05-20,Webster,Missouri,29225,17,0 +2020-05-21,Webster,Missouri,29225,17,0 +2020-05-22,Webster,Missouri,29225,17,0 +2020-05-23,Webster,Missouri,29225,17,0 +2020-05-24,Webster,Missouri,29225,17,0 +2020-05-25,Webster,Missouri,29225,17,0 +2020-05-26,Webster,Missouri,29225,17,0 +2020-05-27,Webster,Missouri,29225,17,0 +2020-05-28,Webster,Missouri,29225,17,0 +2020-05-29,Webster,Missouri,29225,17,0 +2020-05-30,Webster,Missouri,29225,17,0 +2020-05-31,Webster,Missouri,29225,17,0 +2020-06-01,Webster,Missouri,29225,18,0 +2020-06-02,Webster,Missouri,29225,18,0 +2020-06-03,Webster,Missouri,29225,18,0 +2020-06-04,Webster,Missouri,29225,18,0 +2020-06-05,Webster,Missouri,29225,18,0 +2020-06-06,Webster,Missouri,29225,18,0 +2020-06-07,Webster,Missouri,29225,18,0 +2020-06-08,Webster,Missouri,29225,18,0 +2020-06-09,Webster,Missouri,29225,18,0 +2020-06-10,Webster,Missouri,29225,18,0 +2020-06-11,Webster,Missouri,29225,18,0 +2020-06-12,Webster,Missouri,29225,18,0 +2020-06-13,Webster,Missouri,29225,18,0 +2020-06-14,Webster,Missouri,29225,18,0 +2020-06-15,Webster,Missouri,29225,18,0 +2020-06-16,Webster,Missouri,29225,18,0 +2020-06-17,Webster,Missouri,29225,19,0 +2020-06-18,Webster,Missouri,29225,19,0 +2020-06-19,Webster,Missouri,29225,20,0 +2020-06-20,Webster,Missouri,29225,20,0 +2020-06-21,Webster,Missouri,29225,21,0 +2020-06-22,Webster,Missouri,29225,21,0 +2020-06-23,Webster,Missouri,29225,22,1 +2020-06-24,Webster,Missouri,29225,23,1 +2020-06-25,Webster,Missouri,29225,24,1 +2020-06-26,Webster,Missouri,29225,26,1 +2020-06-27,Webster,Missouri,29225,27,1 +2020-06-28,Webster,Missouri,29225,27,1 +2020-06-29,Webster,Missouri,29225,28,1 +2020-06-30,Webster,Missouri,29225,31,1 +2020-07-01,Webster,Missouri,29225,33,1 +2020-07-02,Webster,Missouri,29225,35,1 +2020-07-03,Webster,Missouri,29225,39,1 +2020-07-04,Webster,Missouri,29225,39,1 +2020-07-05,Webster,Missouri,29225,42,1 +2020-07-06,Webster,Missouri,29225,44,1 +2020-07-07,Webster,Missouri,29225,48,1 +2020-07-08,Webster,Missouri,29225,46,1 +2020-07-09,Webster,Missouri,29225,47,1 +2020-04-06,Worth,Missouri,29227,1,0 +2020-04-07,Worth,Missouri,29227,1,0 +2020-04-08,Worth,Missouri,29227,1,0 +2020-04-09,Worth,Missouri,29227,1,0 +2020-04-10,Worth,Missouri,29227,1,0 +2020-04-11,Worth,Missouri,29227,1,0 +2020-04-12,Worth,Missouri,29227,1,0 +2020-04-13,Worth,Missouri,29227,1,0 +2020-04-14,Worth,Missouri,29227,1,0 +2020-04-15,Worth,Missouri,29227,1,0 +2020-04-16,Worth,Missouri,29227,1,0 +2020-04-17,Worth,Missouri,29227,1,0 +2020-04-18,Worth,Missouri,29227,1,0 +2020-04-19,Worth,Missouri,29227,1,0 +2020-04-20,Worth,Missouri,29227,1,0 +2020-04-21,Worth,Missouri,29227,1,0 +2020-04-22,Worth,Missouri,29227,1,0 +2020-04-23,Worth,Missouri,29227,1,0 +2020-04-24,Worth,Missouri,29227,1,0 +2020-04-25,Worth,Missouri,29227,1,0 +2020-04-26,Worth,Missouri,29227,1,0 +2020-04-27,Worth,Missouri,29227,1,0 +2020-04-28,Worth,Missouri,29227,1,0 +2020-04-29,Worth,Missouri,29227,1,0 +2020-04-30,Worth,Missouri,29227,1,0 +2020-05-01,Worth,Missouri,29227,1,0 +2020-05-02,Worth,Missouri,29227,1,0 +2020-05-03,Worth,Missouri,29227,1,0 +2020-05-04,Worth,Missouri,29227,1,0 +2020-05-05,Worth,Missouri,29227,1,0 +2020-05-06,Worth,Missouri,29227,1,0 +2020-05-07,Worth,Missouri,29227,1,0 +2020-05-08,Worth,Missouri,29227,1,0 +2020-05-09,Worth,Missouri,29227,1,0 +2020-05-10,Worth,Missouri,29227,1,0 +2020-05-11,Worth,Missouri,29227,1,0 +2020-05-12,Worth,Missouri,29227,1,0 +2020-05-13,Worth,Missouri,29227,1,0 +2020-05-14,Worth,Missouri,29227,1,0 +2020-05-15,Worth,Missouri,29227,2,0 +2020-05-16,Worth,Missouri,29227,2,0 +2020-05-17,Worth,Missouri,29227,2,0 +2020-05-18,Worth,Missouri,29227,3,0 +2020-05-19,Worth,Missouri,29227,3,0 +2020-05-20,Worth,Missouri,29227,3,0 +2020-05-21,Worth,Missouri,29227,3,0 +2020-05-22,Worth,Missouri,29227,3,0 +2020-05-23,Worth,Missouri,29227,3,0 +2020-05-24,Worth,Missouri,29227,4,0 +2020-05-25,Worth,Missouri,29227,4,0 +2020-05-26,Worth,Missouri,29227,4,0 +2020-05-27,Worth,Missouri,29227,4,0 +2020-05-28,Worth,Missouri,29227,4,0 +2020-05-29,Worth,Missouri,29227,4,0 +2020-05-30,Worth,Missouri,29227,4,0 +2020-05-31,Worth,Missouri,29227,4,0 +2020-06-01,Worth,Missouri,29227,4,0 +2020-06-02,Worth,Missouri,29227,4,0 +2020-06-03,Worth,Missouri,29227,4,0 +2020-06-04,Worth,Missouri,29227,4,0 +2020-06-05,Worth,Missouri,29227,4,0 +2020-06-06,Worth,Missouri,29227,4,0 +2020-06-07,Worth,Missouri,29227,4,0 +2020-06-08,Worth,Missouri,29227,4,0 +2020-06-09,Worth,Missouri,29227,4,0 +2020-06-10,Worth,Missouri,29227,4,0 +2020-06-11,Worth,Missouri,29227,4,0 +2020-06-12,Worth,Missouri,29227,4,0 +2020-06-13,Worth,Missouri,29227,4,0 +2020-06-14,Worth,Missouri,29227,4,0 +2020-06-15,Worth,Missouri,29227,4,0 +2020-06-16,Worth,Missouri,29227,4,0 +2020-06-17,Worth,Missouri,29227,4,0 +2020-06-18,Worth,Missouri,29227,4,0 +2020-06-19,Worth,Missouri,29227,4,0 +2020-06-20,Worth,Missouri,29227,4,0 +2020-06-21,Worth,Missouri,29227,4,0 +2020-06-22,Worth,Missouri,29227,4,0 +2020-06-23,Worth,Missouri,29227,4,0 +2020-06-24,Worth,Missouri,29227,4,0 +2020-06-25,Worth,Missouri,29227,4,0 +2020-06-26,Worth,Missouri,29227,4,0 +2020-06-27,Worth,Missouri,29227,4,0 +2020-06-28,Worth,Missouri,29227,4,0 +2020-06-29,Worth,Missouri,29227,4,0 +2020-06-30,Worth,Missouri,29227,4,0 +2020-07-01,Worth,Missouri,29227,4,0 +2020-07-02,Worth,Missouri,29227,4,0 +2020-07-03,Worth,Missouri,29227,4,0 +2020-07-04,Worth,Missouri,29227,4,0 +2020-07-05,Worth,Missouri,29227,4,0 +2020-07-06,Worth,Missouri,29227,4,0 +2020-07-07,Worth,Missouri,29227,4,0 +2020-07-08,Worth,Missouri,29227,4,0 +2020-07-09,Worth,Missouri,29227,4,0 +2020-03-27,Wright,Missouri,29229,1,0 +2020-03-28,Wright,Missouri,29229,1,0 +2020-03-29,Wright,Missouri,29229,3,0 +2020-03-30,Wright,Missouri,29229,4,0 +2020-03-31,Wright,Missouri,29229,4,0 +2020-04-01,Wright,Missouri,29229,4,0 +2020-04-02,Wright,Missouri,29229,6,0 +2020-04-03,Wright,Missouri,29229,6,0 +2020-04-04,Wright,Missouri,29229,6,0 +2020-04-05,Wright,Missouri,29229,7,0 +2020-04-06,Wright,Missouri,29229,7,0 +2020-04-07,Wright,Missouri,29229,7,0 +2020-04-08,Wright,Missouri,29229,7,0 +2020-04-09,Wright,Missouri,29229,7,0 +2020-04-10,Wright,Missouri,29229,7,0 +2020-04-11,Wright,Missouri,29229,7,0 +2020-04-12,Wright,Missouri,29229,7,0 +2020-04-13,Wright,Missouri,29229,8,0 +2020-04-14,Wright,Missouri,29229,9,0 +2020-04-15,Wright,Missouri,29229,9,0 +2020-04-16,Wright,Missouri,29229,9,0 +2020-04-17,Wright,Missouri,29229,9,0 +2020-04-18,Wright,Missouri,29229,9,0 +2020-04-19,Wright,Missouri,29229,9,0 +2020-04-20,Wright,Missouri,29229,9,0 +2020-04-21,Wright,Missouri,29229,9,0 +2020-04-22,Wright,Missouri,29229,9,0 +2020-04-23,Wright,Missouri,29229,9,0 +2020-04-24,Wright,Missouri,29229,9,0 +2020-04-25,Wright,Missouri,29229,9,0 +2020-04-26,Wright,Missouri,29229,9,0 +2020-04-27,Wright,Missouri,29229,9,0 +2020-04-28,Wright,Missouri,29229,9,0 +2020-04-29,Wright,Missouri,29229,10,0 +2020-04-30,Wright,Missouri,29229,9,0 +2020-05-01,Wright,Missouri,29229,9,0 +2020-05-02,Wright,Missouri,29229,9,0 +2020-05-03,Wright,Missouri,29229,9,0 +2020-05-04,Wright,Missouri,29229,9,0 +2020-05-05,Wright,Missouri,29229,10,0 +2020-05-06,Wright,Missouri,29229,10,0 +2020-05-07,Wright,Missouri,29229,10,0 +2020-05-08,Wright,Missouri,29229,10,0 +2020-05-09,Wright,Missouri,29229,10,0 +2020-05-10,Wright,Missouri,29229,10,0 +2020-05-11,Wright,Missouri,29229,10,0 +2020-05-12,Wright,Missouri,29229,10,0 +2020-05-13,Wright,Missouri,29229,10,0 +2020-05-14,Wright,Missouri,29229,10,0 +2020-05-15,Wright,Missouri,29229,10,0 +2020-05-16,Wright,Missouri,29229,10,0 +2020-05-17,Wright,Missouri,29229,10,0 +2020-05-18,Wright,Missouri,29229,10,0 +2020-05-19,Wright,Missouri,29229,11,0 +2020-05-20,Wright,Missouri,29229,11,0 +2020-05-21,Wright,Missouri,29229,11,0 +2020-05-22,Wright,Missouri,29229,11,0 +2020-05-23,Wright,Missouri,29229,11,0 +2020-05-24,Wright,Missouri,29229,11,0 +2020-05-25,Wright,Missouri,29229,11,0 +2020-05-26,Wright,Missouri,29229,11,0 +2020-05-27,Wright,Missouri,29229,11,0 +2020-05-28,Wright,Missouri,29229,11,0 +2020-05-29,Wright,Missouri,29229,11,0 +2020-05-30,Wright,Missouri,29229,11,0 +2020-05-31,Wright,Missouri,29229,11,0 +2020-06-01,Wright,Missouri,29229,11,0 +2020-06-02,Wright,Missouri,29229,11,0 +2020-06-03,Wright,Missouri,29229,11,0 +2020-06-04,Wright,Missouri,29229,11,0 +2020-06-05,Wright,Missouri,29229,11,0 +2020-06-06,Wright,Missouri,29229,13,0 +2020-06-07,Wright,Missouri,29229,14,0 +2020-06-08,Wright,Missouri,29229,14,0 +2020-06-09,Wright,Missouri,29229,14,0 +2020-06-10,Wright,Missouri,29229,14,0 +2020-06-11,Wright,Missouri,29229,14,0 +2020-06-12,Wright,Missouri,29229,14,0 +2020-06-13,Wright,Missouri,29229,14,0 +2020-06-14,Wright,Missouri,29229,14,0 +2020-06-15,Wright,Missouri,29229,14,0 +2020-06-16,Wright,Missouri,29229,14,0 +2020-06-17,Wright,Missouri,29229,14,0 +2020-06-18,Wright,Missouri,29229,14,0 +2020-06-19,Wright,Missouri,29229,14,0 +2020-06-20,Wright,Missouri,29229,14,0 +2020-06-21,Wright,Missouri,29229,14,0 +2020-06-22,Wright,Missouri,29229,14,0 +2020-06-23,Wright,Missouri,29229,14,0 +2020-06-24,Wright,Missouri,29229,14,0 +2020-06-25,Wright,Missouri,29229,14,0 +2020-06-26,Wright,Missouri,29229,14,0 +2020-06-27,Wright,Missouri,29229,14,0 +2020-06-28,Wright,Missouri,29229,14,0 +2020-06-29,Wright,Missouri,29229,15,0 +2020-06-30,Wright,Missouri,29229,15,0 +2020-07-01,Wright,Missouri,29229,15,0 +2020-07-02,Wright,Missouri,29229,15,0 +2020-07-03,Wright,Missouri,29229,20,0 +2020-07-04,Wright,Missouri,29229,22,0 +2020-07-05,Wright,Missouri,29229,26,0 +2020-07-06,Wright,Missouri,29229,28,0 +2020-07-07,Wright,Missouri,29229,29,0 +2020-07-08,Wright,Missouri,29229,30,0 +2020-07-09,Wright,Missouri,29229,31,0 +2020-03-18,St. Louis city,Missouri,29510,1,0 +2020-03-19,St. Louis city,Missouri,29510,5,0 +2020-03-20,St. Louis city,Missouri,29510,6,0 +2020-03-21,St. Louis city,Missouri,29510,10,0 +2020-03-22,St. Louis city,Missouri,29510,14,0 +2020-03-23,St. Louis city,Missouri,29510,15,1 +2020-03-24,St. Louis city,Missouri,29510,15,1 +2020-03-25,St. Louis city,Missouri,29510,53,1 +2020-03-26,St. Louis city,Missouri,29510,69,1 +2020-03-27,St. Louis city,Missouri,29510,72,1 +2020-03-28,St. Louis city,Missouri,29510,93,1 +2020-03-29,St. Louis city,Missouri,29510,97,1 +2020-03-30,St. Louis city,Missouri,29510,102,1 +2020-03-31,St. Louis city,Missouri,29510,136,1 +2020-04-01,St. Louis city,Missouri,29510,136,1 +2020-04-02,St. Louis city,Missouri,29510,216,1 +2020-04-03,St. Louis city,Missouri,29510,275,5 +2020-04-04,St. Louis city,Missouri,29510,287,6 +2020-04-05,St. Louis city,Missouri,29510,298,8 +2020-04-06,St. Louis city,Missouri,29510,357,8 +2020-04-07,St. Louis city,Missouri,29510,399,12 +2020-04-08,St. Louis city,Missouri,29510,444,12 +2020-04-09,St. Louis city,Missouri,29510,498,13 +2020-04-10,St. Louis city,Missouri,29510,536,17 +2020-04-11,St. Louis city,Missouri,29510,585,17 +2020-04-12,St. Louis city,Missouri,29510,614,17 +2020-04-13,St. Louis city,Missouri,29510,639,24 +2020-04-14,St. Louis city,Missouri,29510,695,26 +2020-04-15,St. Louis city,Missouri,29510,700,27 +2020-04-16,St. Louis city,Missouri,29510,706,27 +2020-04-17,St. Louis city,Missouri,29510,711,30 +2020-04-18,St. Louis city,Missouri,29510,808,30 +2020-04-19,St. Louis city,Missouri,29510,831,30 +2020-04-20,St. Louis city,Missouri,29510,859,30 +2020-04-21,St. Louis city,Missouri,29510,877,40 +2020-04-22,St. Louis city,Missouri,29510,893,45 +2020-04-23,St. Louis city,Missouri,29510,909,46 +2020-04-24,St. Louis city,Missouri,29510,950,48 +2020-04-25,St. Louis city,Missouri,29510,985,50 +2020-04-26,St. Louis city,Missouri,29510,1007,50 +2020-04-27,St. Louis city,Missouri,29510,1027,54 +2020-04-28,St. Louis city,Missouri,29510,1054,55 +2020-04-29,St. Louis city,Missouri,29510,1067,60 +2020-04-30,St. Louis city,Missouri,29510,1077,60 +2020-05-01,St. Louis city,Missouri,29510,1105,64 +2020-05-02,St. Louis city,Missouri,29510,1186,65 +2020-05-03,St. Louis city,Missouri,29510,1304,70 +2020-05-04,St. Louis city,Missouri,29510,1304,71 +2020-05-05,St. Louis city,Missouri,29510,1315,78 +2020-05-06,St. Louis city,Missouri,29510,1384,82 +2020-05-07,St. Louis city,Missouri,29510,1450,83 +2020-05-08,St. Louis city,Missouri,29510,1474,85 +2020-05-09,St. Louis city,Missouri,29510,1484,86 +2020-05-10,St. Louis city,Missouri,29510,1513,88 +2020-05-11,St. Louis city,Missouri,29510,1526,90 +2020-05-12,St. Louis city,Missouri,29510,1549,91 +2020-05-13,St. Louis city,Missouri,29510,1571,95 +2020-05-14,St. Louis city,Missouri,29510,1596,95 +2020-05-15,St. Louis city,Missouri,29510,1602,95 +2020-05-16,St. Louis city,Missouri,29510,1631,96 +2020-05-17,St. Louis city,Missouri,29510,1654,97 +2020-05-18,St. Louis city,Missouri,29510,1682,100 +2020-05-19,St. Louis city,Missouri,29510,1705,108 +2020-05-20,St. Louis city,Missouri,29510,1717,109 +2020-05-21,St. Louis city,Missouri,29510,1744,109 +2020-05-22,St. Louis city,Missouri,29510,1763,110 +2020-05-23,St. Louis city,Missouri,29510,1789,110 +2020-05-24,St. Louis city,Missouri,29510,1815,112 +2020-05-25,St. Louis city,Missouri,29510,1849,112 +2020-05-26,St. Louis city,Missouri,29510,1867,116 +2020-05-27,St. Louis city,Missouri,29510,1884,117 +2020-05-28,St. Louis city,Missouri,29510,1906,118 +2020-05-29,St. Louis city,Missouri,29510,1916,118 +2020-05-30,St. Louis city,Missouri,29510,1930,130 +2020-05-31,St. Louis city,Missouri,29510,1955,130 +2020-06-01,St. Louis city,Missouri,29510,1974,130 +2020-06-02,St. Louis city,Missouri,29510,1990,131 +2020-06-03,St. Louis city,Missouri,29510,2006,132 +2020-06-04,St. Louis city,Missouri,29510,2034,132 +2020-06-05,St. Louis city,Missouri,29510,2053,134 +2020-06-06,St. Louis city,Missouri,29510,2068,135 +2020-06-07,St. Louis city,Missouri,29510,2071,135 +2020-06-08,St. Louis city,Missouri,29510,2071,135 +2020-06-09,St. Louis city,Missouri,29510,2132,139 +2020-06-10,St. Louis city,Missouri,29510,2145,139 +2020-06-11,St. Louis city,Missouri,29510,2162,139 +2020-06-12,St. Louis city,Missouri,29510,2179,141 +2020-06-13,St. Louis city,Missouri,29510,2195,141 +2020-06-14,St. Louis city,Missouri,29510,2206,141 +2020-06-15,St. Louis city,Missouri,29510,2219,141 +2020-06-16,St. Louis city,Missouri,29510,2219,141 +2020-06-17,St. Louis city,Missouri,29510,2234,142 +2020-06-18,St. Louis city,Missouri,29510,2292,148 +2020-06-19,St. Louis city,Missouri,29510,2319,154 +2020-06-20,St. Louis city,Missouri,29510,2319,154 +2020-06-21,St. Louis city,Missouri,29510,2319,154 +2020-06-22,St. Louis city,Missouri,29510,2319,154 +2020-06-23,St. Louis city,Missouri,29510,2319,154 +2020-06-24,St. Louis city,Missouri,29510,2319,154 +2020-06-25,St. Louis city,Missouri,29510,2310,155 +2020-06-26,St. Louis city,Missouri,29510,2323,155 +2020-06-27,St. Louis city,Missouri,29510,2353,155 +2020-06-28,St. Louis city,Missouri,29510,2406,155 +2020-06-29,St. Louis city,Missouri,29510,2453,155 +2020-06-30,St. Louis city,Missouri,29510,2493,156 +2020-07-01,St. Louis city,Missouri,29510,2493,156 +2020-07-02,St. Louis city,Missouri,29510,2545,157 +2020-07-03,St. Louis city,Missouri,29510,2565,158 +2020-07-04,St. Louis city,Missouri,29510,2580,158 +2020-07-05,St. Louis city,Missouri,29510,2587,158 +2020-07-06,St. Louis city,Missouri,29510,2621,158 +2020-07-07,St. Louis city,Missouri,29510,2657,158 +2020-07-08,St. Louis city,Missouri,29510,2692,158 +2020-07-09,St. Louis city,Missouri,29510,2811,158 +2020-04-04,Beaverhead,Montana,30001,1,0 +2020-04-05,Beaverhead,Montana,30001,1,0 +2020-04-06,Beaverhead,Montana,30001,1,0 +2020-04-07,Beaverhead,Montana,30001,1,0 +2020-04-08,Beaverhead,Montana,30001,1,0 +2020-04-09,Beaverhead,Montana,30001,1,0 +2020-04-10,Beaverhead,Montana,30001,1,0 +2020-04-11,Beaverhead,Montana,30001,1,0 +2020-04-12,Beaverhead,Montana,30001,1,0 +2020-04-13,Beaverhead,Montana,30001,1,0 +2020-04-14,Beaverhead,Montana,30001,1,0 +2020-04-15,Beaverhead,Montana,30001,1,0 +2020-04-16,Beaverhead,Montana,30001,1,0 +2020-04-17,Beaverhead,Montana,30001,1,0 +2020-04-18,Beaverhead,Montana,30001,1,0 +2020-04-19,Beaverhead,Montana,30001,1,0 +2020-04-20,Beaverhead,Montana,30001,1,0 +2020-04-21,Beaverhead,Montana,30001,1,0 +2020-04-22,Beaverhead,Montana,30001,1,0 +2020-04-23,Beaverhead,Montana,30001,1,0 +2020-04-24,Beaverhead,Montana,30001,1,0 +2020-04-25,Beaverhead,Montana,30001,1,0 +2020-04-26,Beaverhead,Montana,30001,1,0 +2020-04-27,Beaverhead,Montana,30001,1,0 +2020-04-28,Beaverhead,Montana,30001,1,0 +2020-04-29,Beaverhead,Montana,30001,1,0 +2020-04-30,Beaverhead,Montana,30001,1,0 +2020-05-01,Beaverhead,Montana,30001,1,0 +2020-05-02,Beaverhead,Montana,30001,1,0 +2020-05-03,Beaverhead,Montana,30001,1,0 +2020-05-04,Beaverhead,Montana,30001,1,0 +2020-05-05,Beaverhead,Montana,30001,1,0 +2020-05-06,Beaverhead,Montana,30001,1,0 +2020-05-07,Beaverhead,Montana,30001,1,0 +2020-05-08,Beaverhead,Montana,30001,1,0 +2020-05-09,Beaverhead,Montana,30001,1,0 +2020-05-10,Beaverhead,Montana,30001,1,0 +2020-05-11,Beaverhead,Montana,30001,1,0 +2020-05-12,Beaverhead,Montana,30001,1,0 +2020-05-13,Beaverhead,Montana,30001,1,0 +2020-05-14,Beaverhead,Montana,30001,1,0 +2020-05-15,Beaverhead,Montana,30001,1,0 +2020-05-16,Beaverhead,Montana,30001,1,0 +2020-05-17,Beaverhead,Montana,30001,1,0 +2020-05-18,Beaverhead,Montana,30001,1,0 +2020-05-19,Beaverhead,Montana,30001,1,0 +2020-05-20,Beaverhead,Montana,30001,1,0 +2020-05-21,Beaverhead,Montana,30001,1,0 +2020-05-22,Beaverhead,Montana,30001,1,0 +2020-05-23,Beaverhead,Montana,30001,1,0 +2020-05-24,Beaverhead,Montana,30001,1,0 +2020-05-25,Beaverhead,Montana,30001,1,0 +2020-05-26,Beaverhead,Montana,30001,1,0 +2020-05-27,Beaverhead,Montana,30001,1,0 +2020-05-28,Beaverhead,Montana,30001,1,0 +2020-05-29,Beaverhead,Montana,30001,1,0 +2020-05-30,Beaverhead,Montana,30001,1,0 +2020-05-31,Beaverhead,Montana,30001,1,0 +2020-06-01,Beaverhead,Montana,30001,1,0 +2020-06-02,Beaverhead,Montana,30001,1,0 +2020-06-03,Beaverhead,Montana,30001,1,0 +2020-06-04,Beaverhead,Montana,30001,1,0 +2020-06-05,Beaverhead,Montana,30001,1,0 +2020-06-06,Beaverhead,Montana,30001,1,0 +2020-06-07,Beaverhead,Montana,30001,1,0 +2020-06-08,Beaverhead,Montana,30001,1,0 +2020-06-09,Beaverhead,Montana,30001,1,0 +2020-06-10,Beaverhead,Montana,30001,1,0 +2020-06-11,Beaverhead,Montana,30001,1,0 +2020-06-12,Beaverhead,Montana,30001,1,0 +2020-06-13,Beaverhead,Montana,30001,1,0 +2020-06-14,Beaverhead,Montana,30001,1,0 +2020-06-15,Beaverhead,Montana,30001,1,0 +2020-06-16,Beaverhead,Montana,30001,1,0 +2020-06-17,Beaverhead,Montana,30001,1,0 +2020-06-18,Beaverhead,Montana,30001,1,0 +2020-06-19,Beaverhead,Montana,30001,1,0 +2020-06-20,Beaverhead,Montana,30001,1,0 +2020-06-21,Beaverhead,Montana,30001,1,0 +2020-06-22,Beaverhead,Montana,30001,1,0 +2020-06-23,Beaverhead,Montana,30001,1,0 +2020-06-24,Beaverhead,Montana,30001,1,0 +2020-06-25,Beaverhead,Montana,30001,1,0 +2020-06-26,Beaverhead,Montana,30001,1,0 +2020-06-27,Beaverhead,Montana,30001,1,0 +2020-06-28,Beaverhead,Montana,30001,1,0 +2020-06-29,Beaverhead,Montana,30001,1,0 +2020-06-30,Beaverhead,Montana,30001,1,0 +2020-07-01,Beaverhead,Montana,30001,1,0 +2020-07-02,Beaverhead,Montana,30001,1,0 +2020-07-03,Beaverhead,Montana,30001,1,0 +2020-07-04,Beaverhead,Montana,30001,1,0 +2020-07-05,Beaverhead,Montana,30001,2,0 +2020-07-06,Beaverhead,Montana,30001,2,0 +2020-07-07,Beaverhead,Montana,30001,2,0 +2020-07-08,Beaverhead,Montana,30001,2,0 +2020-07-09,Beaverhead,Montana,30001,3,0 +2020-04-10,Big Horn,Montana,30003,1,0 +2020-04-11,Big Horn,Montana,30003,1,0 +2020-04-12,Big Horn,Montana,30003,1,0 +2020-04-13,Big Horn,Montana,30003,1,0 +2020-04-14,Big Horn,Montana,30003,2,0 +2020-04-15,Big Horn,Montana,30003,2,0 +2020-04-16,Big Horn,Montana,30003,3,0 +2020-04-17,Big Horn,Montana,30003,3,0 +2020-04-18,Big Horn,Montana,30003,3,0 +2020-04-19,Big Horn,Montana,30003,3,0 +2020-04-20,Big Horn,Montana,30003,3,0 +2020-04-21,Big Horn,Montana,30003,3,0 +2020-04-22,Big Horn,Montana,30003,3,0 +2020-04-23,Big Horn,Montana,30003,3,0 +2020-04-24,Big Horn,Montana,30003,3,0 +2020-04-25,Big Horn,Montana,30003,3,0 +2020-04-26,Big Horn,Montana,30003,3,0 +2020-04-27,Big Horn,Montana,30003,3,0 +2020-04-28,Big Horn,Montana,30003,3,0 +2020-04-29,Big Horn,Montana,30003,3,0 +2020-04-30,Big Horn,Montana,30003,3,0 +2020-05-01,Big Horn,Montana,30003,3,0 +2020-05-02,Big Horn,Montana,30003,3,0 +2020-05-03,Big Horn,Montana,30003,3,0 +2020-05-04,Big Horn,Montana,30003,3,0 +2020-05-05,Big Horn,Montana,30003,3,0 +2020-05-06,Big Horn,Montana,30003,3,0 +2020-05-07,Big Horn,Montana,30003,3,0 +2020-05-08,Big Horn,Montana,30003,3,0 +2020-05-09,Big Horn,Montana,30003,3,0 +2020-05-10,Big Horn,Montana,30003,3,0 +2020-05-11,Big Horn,Montana,30003,3,0 +2020-05-12,Big Horn,Montana,30003,4,0 +2020-05-13,Big Horn,Montana,30003,4,0 +2020-05-14,Big Horn,Montana,30003,4,0 +2020-05-15,Big Horn,Montana,30003,8,0 +2020-05-16,Big Horn,Montana,30003,8,0 +2020-05-17,Big Horn,Montana,30003,8,0 +2020-05-18,Big Horn,Montana,30003,8,0 +2020-05-19,Big Horn,Montana,30003,8,0 +2020-05-20,Big Horn,Montana,30003,8,0 +2020-05-21,Big Horn,Montana,30003,8,0 +2020-05-22,Big Horn,Montana,30003,8,0 +2020-05-23,Big Horn,Montana,30003,8,0 +2020-05-24,Big Horn,Montana,30003,8,0 +2020-05-25,Big Horn,Montana,30003,8,0 +2020-05-26,Big Horn,Montana,30003,8,0 +2020-05-27,Big Horn,Montana,30003,9,0 +2020-05-28,Big Horn,Montana,30003,12,0 +2020-05-29,Big Horn,Montana,30003,18,0 +2020-05-30,Big Horn,Montana,30003,28,0 +2020-05-31,Big Horn,Montana,30003,29,0 +2020-06-01,Big Horn,Montana,30003,30,0 +2020-06-02,Big Horn,Montana,30003,31,0 +2020-06-03,Big Horn,Montana,30003,31,0 +2020-06-04,Big Horn,Montana,30003,36,0 +2020-06-05,Big Horn,Montana,30003,36,1 +2020-06-06,Big Horn,Montana,30003,36,1 +2020-06-07,Big Horn,Montana,30003,39,1 +2020-06-08,Big Horn,Montana,30003,39,1 +2020-06-09,Big Horn,Montana,30003,41,1 +2020-06-10,Big Horn,Montana,30003,43,1 +2020-06-11,Big Horn,Montana,30003,42,1 +2020-06-12,Big Horn,Montana,30003,43,1 +2020-06-13,Big Horn,Montana,30003,44,1 +2020-06-14,Big Horn,Montana,30003,46,2 +2020-06-15,Big Horn,Montana,30003,47,2 +2020-06-16,Big Horn,Montana,30003,47,2 +2020-06-17,Big Horn,Montana,30003,49,3 +2020-06-18,Big Horn,Montana,30003,53,3 +2020-06-19,Big Horn,Montana,30003,53,3 +2020-06-20,Big Horn,Montana,30003,55,3 +2020-06-21,Big Horn,Montana,30003,59,3 +2020-06-22,Big Horn,Montana,30003,63,3 +2020-06-23,Big Horn,Montana,30003,66,3 +2020-06-24,Big Horn,Montana,30003,68,3 +2020-06-25,Big Horn,Montana,30003,70,3 +2020-06-26,Big Horn,Montana,30003,72,3 +2020-06-27,Big Horn,Montana,30003,72,3 +2020-06-28,Big Horn,Montana,30003,72,3 +2020-06-29,Big Horn,Montana,30003,73,3 +2020-06-30,Big Horn,Montana,30003,74,3 +2020-07-01,Big Horn,Montana,30003,77,3 +2020-07-02,Big Horn,Montana,30003,82,3 +2020-07-03,Big Horn,Montana,30003,86,4 +2020-07-04,Big Horn,Montana,30003,86,4 +2020-07-05,Big Horn,Montana,30003,89,4 +2020-07-06,Big Horn,Montana,30003,90,4 +2020-07-07,Big Horn,Montana,30003,92,4 +2020-07-08,Big Horn,Montana,30003,95,4 +2020-07-09,Big Horn,Montana,30003,102,4 +2020-03-19,Broadwater,Montana,30007,1,0 +2020-03-20,Broadwater,Montana,30007,1,0 +2020-03-21,Broadwater,Montana,30007,1,0 +2020-03-22,Broadwater,Montana,30007,1,0 +2020-03-23,Broadwater,Montana,30007,1,0 +2020-03-24,Broadwater,Montana,30007,1,0 +2020-03-25,Broadwater,Montana,30007,2,0 +2020-03-26,Broadwater,Montana,30007,2,0 +2020-03-27,Broadwater,Montana,30007,2,0 +2020-03-28,Broadwater,Montana,30007,3,0 +2020-03-29,Broadwater,Montana,30007,3,0 +2020-03-30,Broadwater,Montana,30007,3,0 +2020-03-31,Broadwater,Montana,30007,3,0 +2020-04-01,Broadwater,Montana,30007,3,0 +2020-04-02,Broadwater,Montana,30007,3,0 +2020-04-03,Broadwater,Montana,30007,4,0 +2020-04-04,Broadwater,Montana,30007,4,0 +2020-04-05,Broadwater,Montana,30007,4,0 +2020-04-06,Broadwater,Montana,30007,4,0 +2020-04-07,Broadwater,Montana,30007,4,0 +2020-04-08,Broadwater,Montana,30007,4,0 +2020-04-09,Broadwater,Montana,30007,4,0 +2020-04-10,Broadwater,Montana,30007,4,0 +2020-04-11,Broadwater,Montana,30007,4,0 +2020-04-12,Broadwater,Montana,30007,4,0 +2020-04-13,Broadwater,Montana,30007,4,0 +2020-04-14,Broadwater,Montana,30007,4,0 +2020-04-15,Broadwater,Montana,30007,4,0 +2020-04-16,Broadwater,Montana,30007,4,0 +2020-04-17,Broadwater,Montana,30007,4,0 +2020-04-18,Broadwater,Montana,30007,4,0 +2020-04-19,Broadwater,Montana,30007,4,0 +2020-04-20,Broadwater,Montana,30007,4,0 +2020-04-21,Broadwater,Montana,30007,4,0 +2020-04-22,Broadwater,Montana,30007,4,0 +2020-04-23,Broadwater,Montana,30007,4,0 +2020-04-24,Broadwater,Montana,30007,4,0 +2020-04-25,Broadwater,Montana,30007,4,0 +2020-04-26,Broadwater,Montana,30007,4,0 +2020-04-27,Broadwater,Montana,30007,4,0 +2020-04-28,Broadwater,Montana,30007,4,0 +2020-04-29,Broadwater,Montana,30007,4,0 +2020-04-30,Broadwater,Montana,30007,4,0 +2020-05-01,Broadwater,Montana,30007,4,0 +2020-05-02,Broadwater,Montana,30007,4,0 +2020-05-03,Broadwater,Montana,30007,4,0 +2020-05-04,Broadwater,Montana,30007,4,0 +2020-05-05,Broadwater,Montana,30007,4,0 +2020-05-06,Broadwater,Montana,30007,4,0 +2020-05-07,Broadwater,Montana,30007,4,0 +2020-05-08,Broadwater,Montana,30007,4,0 +2020-05-09,Broadwater,Montana,30007,4,0 +2020-05-10,Broadwater,Montana,30007,4,0 +2020-05-11,Broadwater,Montana,30007,4,0 +2020-05-12,Broadwater,Montana,30007,4,0 +2020-05-13,Broadwater,Montana,30007,4,0 +2020-05-14,Broadwater,Montana,30007,4,0 +2020-05-15,Broadwater,Montana,30007,4,0 +2020-05-16,Broadwater,Montana,30007,4,0 +2020-05-17,Broadwater,Montana,30007,4,0 +2020-05-18,Broadwater,Montana,30007,4,0 +2020-05-19,Broadwater,Montana,30007,4,0 +2020-05-20,Broadwater,Montana,30007,4,0 +2020-05-21,Broadwater,Montana,30007,4,0 +2020-05-22,Broadwater,Montana,30007,4,0 +2020-05-23,Broadwater,Montana,30007,4,0 +2020-05-24,Broadwater,Montana,30007,4,0 +2020-05-25,Broadwater,Montana,30007,4,0 +2020-05-26,Broadwater,Montana,30007,4,0 +2020-05-27,Broadwater,Montana,30007,4,0 +2020-05-28,Broadwater,Montana,30007,4,0 +2020-05-29,Broadwater,Montana,30007,4,0 +2020-05-30,Broadwater,Montana,30007,4,0 +2020-05-31,Broadwater,Montana,30007,4,0 +2020-06-01,Broadwater,Montana,30007,4,0 +2020-06-02,Broadwater,Montana,30007,4,0 +2020-06-03,Broadwater,Montana,30007,4,0 +2020-06-04,Broadwater,Montana,30007,4,0 +2020-06-05,Broadwater,Montana,30007,4,0 +2020-06-06,Broadwater,Montana,30007,4,0 +2020-06-07,Broadwater,Montana,30007,4,0 +2020-06-08,Broadwater,Montana,30007,4,0 +2020-06-09,Broadwater,Montana,30007,4,0 +2020-06-10,Broadwater,Montana,30007,4,0 +2020-06-11,Broadwater,Montana,30007,4,0 +2020-06-12,Broadwater,Montana,30007,4,0 +2020-06-13,Broadwater,Montana,30007,4,0 +2020-06-14,Broadwater,Montana,30007,4,0 +2020-06-15,Broadwater,Montana,30007,4,0 +2020-06-16,Broadwater,Montana,30007,4,0 +2020-06-17,Broadwater,Montana,30007,4,0 +2020-06-18,Broadwater,Montana,30007,4,0 +2020-06-19,Broadwater,Montana,30007,4,0 +2020-06-20,Broadwater,Montana,30007,4,0 +2020-06-21,Broadwater,Montana,30007,5,0 +2020-06-22,Broadwater,Montana,30007,5,0 +2020-06-23,Broadwater,Montana,30007,5,0 +2020-06-24,Broadwater,Montana,30007,5,0 +2020-06-25,Broadwater,Montana,30007,5,0 +2020-06-26,Broadwater,Montana,30007,5,0 +2020-06-27,Broadwater,Montana,30007,5,0 +2020-06-28,Broadwater,Montana,30007,5,0 +2020-06-29,Broadwater,Montana,30007,5,0 +2020-06-30,Broadwater,Montana,30007,5,0 +2020-07-01,Broadwater,Montana,30007,5,0 +2020-07-02,Broadwater,Montana,30007,5,0 +2020-07-03,Broadwater,Montana,30007,5,0 +2020-07-04,Broadwater,Montana,30007,5,0 +2020-07-05,Broadwater,Montana,30007,5,0 +2020-07-06,Broadwater,Montana,30007,5,0 +2020-07-07,Broadwater,Montana,30007,5,0 +2020-07-08,Broadwater,Montana,30007,5,0 +2020-07-09,Broadwater,Montana,30007,5,0 +2020-04-01,Carbon,Montana,30009,1,0 +2020-04-02,Carbon,Montana,30009,1,0 +2020-04-03,Carbon,Montana,30009,1,0 +2020-04-04,Carbon,Montana,30009,1,0 +2020-04-05,Carbon,Montana,30009,1,0 +2020-04-06,Carbon,Montana,30009,2,0 +2020-04-07,Carbon,Montana,30009,2,0 +2020-04-08,Carbon,Montana,30009,3,0 +2020-04-09,Carbon,Montana,30009,3,0 +2020-04-10,Carbon,Montana,30009,6,0 +2020-04-11,Carbon,Montana,30009,6,0 +2020-04-12,Carbon,Montana,30009,6,0 +2020-04-13,Carbon,Montana,30009,6,0 +2020-04-14,Carbon,Montana,30009,6,0 +2020-04-15,Carbon,Montana,30009,6,0 +2020-04-16,Carbon,Montana,30009,6,0 +2020-04-17,Carbon,Montana,30009,6,0 +2020-04-18,Carbon,Montana,30009,6,0 +2020-04-19,Carbon,Montana,30009,6,0 +2020-04-20,Carbon,Montana,30009,6,0 +2020-04-21,Carbon,Montana,30009,6,0 +2020-04-22,Carbon,Montana,30009,6,0 +2020-04-23,Carbon,Montana,30009,6,0 +2020-04-24,Carbon,Montana,30009,6,0 +2020-04-25,Carbon,Montana,30009,6,0 +2020-04-26,Carbon,Montana,30009,6,0 +2020-04-27,Carbon,Montana,30009,6,0 +2020-04-28,Carbon,Montana,30009,6,0 +2020-04-29,Carbon,Montana,30009,6,0 +2020-04-30,Carbon,Montana,30009,6,0 +2020-05-01,Carbon,Montana,30009,6,0 +2020-05-02,Carbon,Montana,30009,6,0 +2020-05-03,Carbon,Montana,30009,6,0 +2020-05-04,Carbon,Montana,30009,6,0 +2020-05-05,Carbon,Montana,30009,6,0 +2020-05-06,Carbon,Montana,30009,6,0 +2020-05-07,Carbon,Montana,30009,6,0 +2020-05-08,Carbon,Montana,30009,6,0 +2020-05-09,Carbon,Montana,30009,6,0 +2020-05-10,Carbon,Montana,30009,6,0 +2020-05-11,Carbon,Montana,30009,6,0 +2020-05-12,Carbon,Montana,30009,6,0 +2020-05-13,Carbon,Montana,30009,6,0 +2020-05-14,Carbon,Montana,30009,6,0 +2020-05-15,Carbon,Montana,30009,6,0 +2020-05-16,Carbon,Montana,30009,6,0 +2020-05-17,Carbon,Montana,30009,6,0 +2020-05-18,Carbon,Montana,30009,6,0 +2020-05-19,Carbon,Montana,30009,6,0 +2020-05-20,Carbon,Montana,30009,6,0 +2020-05-21,Carbon,Montana,30009,6,0 +2020-05-22,Carbon,Montana,30009,6,0 +2020-05-23,Carbon,Montana,30009,6,0 +2020-05-24,Carbon,Montana,30009,6,0 +2020-05-25,Carbon,Montana,30009,6,0 +2020-05-26,Carbon,Montana,30009,6,0 +2020-05-27,Carbon,Montana,30009,6,0 +2020-05-28,Carbon,Montana,30009,6,0 +2020-05-29,Carbon,Montana,30009,6,0 +2020-05-30,Carbon,Montana,30009,6,0 +2020-05-31,Carbon,Montana,30009,6,0 +2020-06-01,Carbon,Montana,30009,6,0 +2020-06-02,Carbon,Montana,30009,6,0 +2020-06-03,Carbon,Montana,30009,6,0 +2020-06-04,Carbon,Montana,30009,6,0 +2020-06-05,Carbon,Montana,30009,6,0 +2020-06-06,Carbon,Montana,30009,6,0 +2020-06-07,Carbon,Montana,30009,6,0 +2020-06-08,Carbon,Montana,30009,6,0 +2020-06-09,Carbon,Montana,30009,6,0 +2020-06-10,Carbon,Montana,30009,6,0 +2020-06-11,Carbon,Montana,30009,6,0 +2020-06-12,Carbon,Montana,30009,6,0 +2020-06-13,Carbon,Montana,30009,6,0 +2020-06-14,Carbon,Montana,30009,6,0 +2020-06-15,Carbon,Montana,30009,6,0 +2020-06-16,Carbon,Montana,30009,6,0 +2020-06-17,Carbon,Montana,30009,7,0 +2020-06-18,Carbon,Montana,30009,9,0 +2020-06-19,Carbon,Montana,30009,10,0 +2020-06-20,Carbon,Montana,30009,13,0 +2020-06-21,Carbon,Montana,30009,13,0 +2020-06-22,Carbon,Montana,30009,15,0 +2020-06-23,Carbon,Montana,30009,15,0 +2020-06-24,Carbon,Montana,30009,15,0 +2020-06-25,Carbon,Montana,30009,16,0 +2020-06-26,Carbon,Montana,30009,17,0 +2020-06-27,Carbon,Montana,30009,18,0 +2020-06-28,Carbon,Montana,30009,18,0 +2020-06-29,Carbon,Montana,30009,19,0 +2020-06-30,Carbon,Montana,30009,20,0 +2020-07-01,Carbon,Montana,30009,23,0 +2020-07-02,Carbon,Montana,30009,26,0 +2020-07-03,Carbon,Montana,30009,26,0 +2020-07-04,Carbon,Montana,30009,27,0 +2020-07-05,Carbon,Montana,30009,27,0 +2020-07-06,Carbon,Montana,30009,28,0 +2020-07-07,Carbon,Montana,30009,29,0 +2020-07-08,Carbon,Montana,30009,30,0 +2020-07-09,Carbon,Montana,30009,30,0 +2020-03-21,Cascade,Montana,30013,3,0 +2020-03-22,Cascade,Montana,30013,3,0 +2020-03-23,Cascade,Montana,30013,3,0 +2020-03-24,Cascade,Montana,30013,3,0 +2020-03-25,Cascade,Montana,30013,3,0 +2020-03-26,Cascade,Montana,30013,5,0 +2020-03-27,Cascade,Montana,30013,7,0 +2020-03-28,Cascade,Montana,30013,7,0 +2020-03-29,Cascade,Montana,30013,7,0 +2020-03-30,Cascade,Montana,30013,7,0 +2020-03-31,Cascade,Montana,30013,9,0 +2020-04-01,Cascade,Montana,30013,9,0 +2020-04-02,Cascade,Montana,30013,11,0 +2020-04-03,Cascade,Montana,30013,11,0 +2020-04-04,Cascade,Montana,30013,11,0 +2020-04-05,Cascade,Montana,30013,11,0 +2020-04-06,Cascade,Montana,30013,11,0 +2020-04-07,Cascade,Montana,30013,11,0 +2020-04-08,Cascade,Montana,30013,11,0 +2020-04-09,Cascade,Montana,30013,12,0 +2020-04-10,Cascade,Montana,30013,12,0 +2020-04-11,Cascade,Montana,30013,13,0 +2020-04-12,Cascade,Montana,30013,13,0 +2020-04-13,Cascade,Montana,30013,13,0 +2020-04-14,Cascade,Montana,30013,13,0 +2020-04-15,Cascade,Montana,30013,13,0 +2020-04-16,Cascade,Montana,30013,13,0 +2020-04-17,Cascade,Montana,30013,13,0 +2020-04-18,Cascade,Montana,30013,13,1 +2020-04-19,Cascade,Montana,30013,13,1 +2020-04-20,Cascade,Montana,30013,13,2 +2020-04-21,Cascade,Montana,30013,13,2 +2020-04-22,Cascade,Montana,30013,13,2 +2020-04-23,Cascade,Montana,30013,13,2 +2020-04-24,Cascade,Montana,30013,13,2 +2020-04-25,Cascade,Montana,30013,14,2 +2020-04-26,Cascade,Montana,30013,14,2 +2020-04-27,Cascade,Montana,30013,14,2 +2020-04-28,Cascade,Montana,30013,15,2 +2020-04-29,Cascade,Montana,30013,15,2 +2020-04-30,Cascade,Montana,30013,15,2 +2020-05-01,Cascade,Montana,30013,15,2 +2020-05-02,Cascade,Montana,30013,15,2 +2020-05-03,Cascade,Montana,30013,15,2 +2020-05-04,Cascade,Montana,30013,16,2 +2020-05-05,Cascade,Montana,30013,16,2 +2020-05-06,Cascade,Montana,30013,16,2 +2020-05-07,Cascade,Montana,30013,16,2 +2020-05-08,Cascade,Montana,30013,16,2 +2020-05-09,Cascade,Montana,30013,16,2 +2020-05-10,Cascade,Montana,30013,16,2 +2020-05-11,Cascade,Montana,30013,16,2 +2020-05-12,Cascade,Montana,30013,17,2 +2020-05-13,Cascade,Montana,30013,17,2 +2020-05-14,Cascade,Montana,30013,17,2 +2020-05-15,Cascade,Montana,30013,17,2 +2020-05-16,Cascade,Montana,30013,17,2 +2020-05-17,Cascade,Montana,30013,17,2 +2020-05-18,Cascade,Montana,30013,17,2 +2020-05-19,Cascade,Montana,30013,17,2 +2020-05-20,Cascade,Montana,30013,17,2 +2020-05-21,Cascade,Montana,30013,17,2 +2020-05-22,Cascade,Montana,30013,17,2 +2020-05-23,Cascade,Montana,30013,17,2 +2020-05-24,Cascade,Montana,30013,17,2 +2020-05-25,Cascade,Montana,30013,17,2 +2020-05-26,Cascade,Montana,30013,17,2 +2020-05-27,Cascade,Montana,30013,17,2 +2020-05-28,Cascade,Montana,30013,17,2 +2020-05-29,Cascade,Montana,30013,17,2 +2020-05-30,Cascade,Montana,30013,17,2 +2020-05-31,Cascade,Montana,30013,17,2 +2020-06-01,Cascade,Montana,30013,17,2 +2020-06-02,Cascade,Montana,30013,17,2 +2020-06-03,Cascade,Montana,30013,17,2 +2020-06-04,Cascade,Montana,30013,17,2 +2020-06-05,Cascade,Montana,30013,17,2 +2020-06-06,Cascade,Montana,30013,17,2 +2020-06-07,Cascade,Montana,30013,17,2 +2020-06-08,Cascade,Montana,30013,17,2 +2020-06-09,Cascade,Montana,30013,17,2 +2020-06-10,Cascade,Montana,30013,17,2 +2020-06-11,Cascade,Montana,30013,17,2 +2020-06-12,Cascade,Montana,30013,17,2 +2020-06-13,Cascade,Montana,30013,17,2 +2020-06-14,Cascade,Montana,30013,18,2 +2020-06-15,Cascade,Montana,30013,19,2 +2020-06-16,Cascade,Montana,30013,19,2 +2020-06-17,Cascade,Montana,30013,20,2 +2020-06-18,Cascade,Montana,30013,20,2 +2020-06-19,Cascade,Montana,30013,20,2 +2020-06-20,Cascade,Montana,30013,21,2 +2020-06-21,Cascade,Montana,30013,22,2 +2020-06-22,Cascade,Montana,30013,22,2 +2020-06-23,Cascade,Montana,30013,25,2 +2020-06-24,Cascade,Montana,30013,26,2 +2020-06-25,Cascade,Montana,30013,26,2 +2020-06-26,Cascade,Montana,30013,26,2 +2020-06-27,Cascade,Montana,30013,27,2 +2020-06-28,Cascade,Montana,30013,27,2 +2020-06-29,Cascade,Montana,30013,28,2 +2020-06-30,Cascade,Montana,30013,29,2 +2020-07-01,Cascade,Montana,30013,33,2 +2020-07-02,Cascade,Montana,30013,34,2 +2020-07-03,Cascade,Montana,30013,34,2 +2020-07-04,Cascade,Montana,30013,34,2 +2020-07-05,Cascade,Montana,30013,34,2 +2020-07-06,Cascade,Montana,30013,34,2 +2020-07-07,Cascade,Montana,30013,36,2 +2020-07-08,Cascade,Montana,30013,37,2 +2020-07-09,Cascade,Montana,30013,41,2 +2020-06-12,Custer,Montana,30017,1,0 +2020-06-13,Custer,Montana,30017,3,0 +2020-06-14,Custer,Montana,30017,8,0 +2020-06-15,Custer,Montana,30017,11,0 +2020-06-16,Custer,Montana,30017,13,0 +2020-06-17,Custer,Montana,30017,19,0 +2020-06-18,Custer,Montana,30017,19,0 +2020-06-19,Custer,Montana,30017,20,0 +2020-06-20,Custer,Montana,30017,21,0 +2020-06-21,Custer,Montana,30017,22,0 +2020-06-22,Custer,Montana,30017,22,0 +2020-06-23,Custer,Montana,30017,22,0 +2020-06-24,Custer,Montana,30017,23,0 +2020-06-25,Custer,Montana,30017,24,0 +2020-06-26,Custer,Montana,30017,25,0 +2020-06-27,Custer,Montana,30017,25,0 +2020-06-28,Custer,Montana,30017,25,0 +2020-06-29,Custer,Montana,30017,27,0 +2020-06-30,Custer,Montana,30017,27,0 +2020-07-01,Custer,Montana,30017,29,0 +2020-07-02,Custer,Montana,30017,30,0 +2020-07-03,Custer,Montana,30017,30,0 +2020-07-04,Custer,Montana,30017,30,0 +2020-07-05,Custer,Montana,30017,30,0 +2020-07-06,Custer,Montana,30017,30,0 +2020-07-07,Custer,Montana,30017,30,0 +2020-07-08,Custer,Montana,30017,30,0 +2020-07-09,Custer,Montana,30017,34,0 +2020-06-20,Dawson,Montana,30021,1,0 +2020-06-21,Dawson,Montana,30021,1,0 +2020-06-22,Dawson,Montana,30021,1,0 +2020-06-23,Dawson,Montana,30021,2,0 +2020-06-24,Dawson,Montana,30021,3,0 +2020-06-25,Dawson,Montana,30021,9,0 +2020-06-26,Dawson,Montana,30021,8,0 +2020-06-27,Dawson,Montana,30021,8,0 +2020-06-28,Dawson,Montana,30021,8,0 +2020-06-29,Dawson,Montana,30021,8,0 +2020-06-30,Dawson,Montana,30021,8,0 +2020-07-01,Dawson,Montana,30021,8,0 +2020-07-02,Dawson,Montana,30021,8,0 +2020-07-03,Dawson,Montana,30021,8,0 +2020-07-04,Dawson,Montana,30021,8,0 +2020-07-05,Dawson,Montana,30021,8,0 +2020-07-06,Dawson,Montana,30021,8,0 +2020-07-07,Dawson,Montana,30021,8,0 +2020-07-08,Dawson,Montana,30021,8,0 +2020-07-09,Dawson,Montana,30021,8,0 +2020-03-29,Deer Lodge,Montana,30023,1,0 +2020-03-30,Deer Lodge,Montana,30023,3,0 +2020-03-31,Deer Lodge,Montana,30023,3,0 +2020-04-01,Deer Lodge,Montana,30023,3,0 +2020-04-02,Deer Lodge,Montana,30023,3,0 +2020-04-03,Deer Lodge,Montana,30023,3,0 +2020-04-04,Deer Lodge,Montana,30023,3,0 +2020-04-05,Deer Lodge,Montana,30023,3,0 +2020-04-06,Deer Lodge,Montana,30023,3,0 +2020-04-07,Deer Lodge,Montana,30023,3,0 +2020-04-08,Deer Lodge,Montana,30023,3,0 +2020-04-09,Deer Lodge,Montana,30023,4,0 +2020-04-10,Deer Lodge,Montana,30023,3,0 +2020-04-11,Deer Lodge,Montana,30023,3,0 +2020-04-12,Deer Lodge,Montana,30023,3,0 +2020-04-13,Deer Lodge,Montana,30023,3,0 +2020-04-14,Deer Lodge,Montana,30023,3,0 +2020-04-15,Deer Lodge,Montana,30023,3,0 +2020-04-16,Deer Lodge,Montana,30023,3,0 +2020-04-17,Deer Lodge,Montana,30023,3,0 +2020-04-18,Deer Lodge,Montana,30023,3,0 +2020-04-19,Deer Lodge,Montana,30023,3,0 +2020-04-20,Deer Lodge,Montana,30023,3,0 +2020-04-21,Deer Lodge,Montana,30023,3,0 +2020-04-22,Deer Lodge,Montana,30023,3,0 +2020-04-23,Deer Lodge,Montana,30023,3,0 +2020-04-24,Deer Lodge,Montana,30023,3,0 +2020-04-25,Deer Lodge,Montana,30023,3,0 +2020-04-26,Deer Lodge,Montana,30023,3,0 +2020-04-27,Deer Lodge,Montana,30023,3,0 +2020-04-28,Deer Lodge,Montana,30023,3,0 +2020-04-29,Deer Lodge,Montana,30023,3,0 +2020-04-30,Deer Lodge,Montana,30023,3,0 +2020-05-01,Deer Lodge,Montana,30023,3,0 +2020-05-02,Deer Lodge,Montana,30023,3,0 +2020-05-03,Deer Lodge,Montana,30023,3,0 +2020-05-04,Deer Lodge,Montana,30023,3,0 +2020-05-05,Deer Lodge,Montana,30023,3,0 +2020-05-06,Deer Lodge,Montana,30023,3,0 +2020-05-07,Deer Lodge,Montana,30023,3,0 +2020-05-08,Deer Lodge,Montana,30023,3,0 +2020-05-09,Deer Lodge,Montana,30023,3,0 +2020-05-10,Deer Lodge,Montana,30023,3,0 +2020-05-11,Deer Lodge,Montana,30023,3,0 +2020-05-12,Deer Lodge,Montana,30023,3,0 +2020-05-13,Deer Lodge,Montana,30023,3,0 +2020-05-14,Deer Lodge,Montana,30023,3,0 +2020-05-15,Deer Lodge,Montana,30023,3,0 +2020-05-16,Deer Lodge,Montana,30023,3,0 +2020-05-17,Deer Lodge,Montana,30023,3,0 +2020-05-18,Deer Lodge,Montana,30023,3,0 +2020-05-19,Deer Lodge,Montana,30023,3,0 +2020-05-20,Deer Lodge,Montana,30023,3,0 +2020-05-21,Deer Lodge,Montana,30023,3,0 +2020-05-22,Deer Lodge,Montana,30023,3,0 +2020-05-23,Deer Lodge,Montana,30023,3,0 +2020-05-24,Deer Lodge,Montana,30023,3,0 +2020-05-25,Deer Lodge,Montana,30023,3,0 +2020-05-26,Deer Lodge,Montana,30023,3,0 +2020-05-27,Deer Lodge,Montana,30023,3,0 +2020-05-28,Deer Lodge,Montana,30023,3,0 +2020-05-29,Deer Lodge,Montana,30023,3,0 +2020-05-30,Deer Lodge,Montana,30023,3,0 +2020-05-31,Deer Lodge,Montana,30023,3,0 +2020-06-01,Deer Lodge,Montana,30023,3,0 +2020-06-02,Deer Lodge,Montana,30023,3,0 +2020-06-03,Deer Lodge,Montana,30023,3,0 +2020-06-04,Deer Lodge,Montana,30023,3,0 +2020-06-05,Deer Lodge,Montana,30023,3,0 +2020-06-06,Deer Lodge,Montana,30023,3,0 +2020-06-07,Deer Lodge,Montana,30023,3,0 +2020-06-08,Deer Lodge,Montana,30023,3,0 +2020-06-09,Deer Lodge,Montana,30023,3,0 +2020-06-10,Deer Lodge,Montana,30023,3,0 +2020-06-11,Deer Lodge,Montana,30023,3,0 +2020-06-12,Deer Lodge,Montana,30023,3,0 +2020-06-13,Deer Lodge,Montana,30023,3,0 +2020-06-14,Deer Lodge,Montana,30023,3,0 +2020-06-15,Deer Lodge,Montana,30023,3,0 +2020-06-16,Deer Lodge,Montana,30023,3,0 +2020-06-17,Deer Lodge,Montana,30023,3,0 +2020-06-18,Deer Lodge,Montana,30023,3,0 +2020-06-19,Deer Lodge,Montana,30023,3,0 +2020-06-20,Deer Lodge,Montana,30023,3,0 +2020-06-21,Deer Lodge,Montana,30023,3,0 +2020-06-22,Deer Lodge,Montana,30023,3,0 +2020-06-23,Deer Lodge,Montana,30023,3,0 +2020-06-24,Deer Lodge,Montana,30023,3,0 +2020-06-25,Deer Lodge,Montana,30023,3,0 +2020-06-26,Deer Lodge,Montana,30023,3,0 +2020-06-27,Deer Lodge,Montana,30023,3,0 +2020-06-28,Deer Lodge,Montana,30023,3,0 +2020-06-29,Deer Lodge,Montana,30023,3,0 +2020-06-30,Deer Lodge,Montana,30023,4,0 +2020-07-01,Deer Lodge,Montana,30023,4,0 +2020-07-02,Deer Lodge,Montana,30023,4,0 +2020-07-03,Deer Lodge,Montana,30023,4,0 +2020-07-04,Deer Lodge,Montana,30023,4,0 +2020-07-05,Deer Lodge,Montana,30023,4,0 +2020-07-06,Deer Lodge,Montana,30023,4,0 +2020-07-07,Deer Lodge,Montana,30023,4,0 +2020-07-08,Deer Lodge,Montana,30023,4,0 +2020-07-09,Deer Lodge,Montana,30023,4,0 +2020-06-18,Fergus,Montana,30027,2,0 +2020-06-19,Fergus,Montana,30027,2,0 +2020-06-20,Fergus,Montana,30027,2,0 +2020-06-21,Fergus,Montana,30027,2,0 +2020-06-22,Fergus,Montana,30027,2,0 +2020-06-23,Fergus,Montana,30027,2,0 +2020-06-24,Fergus,Montana,30027,2,0 +2020-06-25,Fergus,Montana,30027,2,0 +2020-06-26,Fergus,Montana,30027,2,0 +2020-06-27,Fergus,Montana,30027,2,0 +2020-06-28,Fergus,Montana,30027,2,0 +2020-06-29,Fergus,Montana,30027,2,0 +2020-06-30,Fergus,Montana,30027,2,0 +2020-07-01,Fergus,Montana,30027,2,0 +2020-07-02,Fergus,Montana,30027,2,0 +2020-07-03,Fergus,Montana,30027,2,0 +2020-07-04,Fergus,Montana,30027,2,0 +2020-07-05,Fergus,Montana,30027,2,0 +2020-07-06,Fergus,Montana,30027,2,0 +2020-07-07,Fergus,Montana,30027,2,0 +2020-07-08,Fergus,Montana,30027,2,0 +2020-07-09,Fergus,Montana,30027,2,0 +2020-03-19,Flathead,Montana,30029,1,0 +2020-03-20,Flathead,Montana,30029,1,0 +2020-03-21,Flathead,Montana,30029,2,0 +2020-03-22,Flathead,Montana,30029,2,0 +2020-03-23,Flathead,Montana,30029,4,0 +2020-03-24,Flathead,Montana,30029,4,0 +2020-03-25,Flathead,Montana,30029,5,0 +2020-03-26,Flathead,Montana,30029,5,0 +2020-03-27,Flathead,Montana,30029,6,0 +2020-03-28,Flathead,Montana,30029,6,0 +2020-03-29,Flathead,Montana,30029,8,0 +2020-03-30,Flathead,Montana,30029,9,0 +2020-03-31,Flathead,Montana,30029,11,0 +2020-04-01,Flathead,Montana,30029,17,0 +2020-04-02,Flathead,Montana,30029,18,0 +2020-04-03,Flathead,Montana,30029,20,0 +2020-04-04,Flathead,Montana,30029,23,0 +2020-04-05,Flathead,Montana,30029,25,0 +2020-04-06,Flathead,Montana,30029,31,0 +2020-04-07,Flathead,Montana,30029,31,0 +2020-04-08,Flathead,Montana,30029,31,0 +2020-04-09,Flathead,Montana,30029,34,0 +2020-04-10,Flathead,Montana,30029,34,0 +2020-04-11,Flathead,Montana,30029,34,0 +2020-04-12,Flathead,Montana,30029,34,0 +2020-04-13,Flathead,Montana,30029,36,1 +2020-04-14,Flathead,Montana,30029,36,1 +2020-04-15,Flathead,Montana,30029,37,1 +2020-04-16,Flathead,Montana,30029,37,1 +2020-04-17,Flathead,Montana,30029,37,1 +2020-04-18,Flathead,Montana,30029,37,1 +2020-04-19,Flathead,Montana,30029,37,1 +2020-04-20,Flathead,Montana,30029,37,1 +2020-04-21,Flathead,Montana,30029,37,1 +2020-04-22,Flathead,Montana,30029,37,2 +2020-04-23,Flathead,Montana,30029,37,2 +2020-04-24,Flathead,Montana,30029,37,2 +2020-04-25,Flathead,Montana,30029,37,2 +2020-04-26,Flathead,Montana,30029,37,2 +2020-04-27,Flathead,Montana,30029,37,2 +2020-04-28,Flathead,Montana,30029,37,2 +2020-04-29,Flathead,Montana,30029,37,2 +2020-04-30,Flathead,Montana,30029,37,2 +2020-05-01,Flathead,Montana,30029,37,2 +2020-05-02,Flathead,Montana,30029,37,2 +2020-05-03,Flathead,Montana,30029,37,2 +2020-05-04,Flathead,Montana,30029,37,2 +2020-05-05,Flathead,Montana,30029,37,2 +2020-05-06,Flathead,Montana,30029,37,2 +2020-05-07,Flathead,Montana,30029,37,2 +2020-05-08,Flathead,Montana,30029,37,2 +2020-05-09,Flathead,Montana,30029,37,2 +2020-05-10,Flathead,Montana,30029,37,2 +2020-05-11,Flathead,Montana,30029,37,2 +2020-05-12,Flathead,Montana,30029,37,2 +2020-05-13,Flathead,Montana,30029,37,2 +2020-05-14,Flathead,Montana,30029,37,2 +2020-05-15,Flathead,Montana,30029,37,2 +2020-05-16,Flathead,Montana,30029,37,2 +2020-05-17,Flathead,Montana,30029,37,2 +2020-05-18,Flathead,Montana,30029,37,2 +2020-05-19,Flathead,Montana,30029,37,2 +2020-05-20,Flathead,Montana,30029,37,2 +2020-05-21,Flathead,Montana,30029,37,2 +2020-05-22,Flathead,Montana,30029,37,2 +2020-05-23,Flathead,Montana,30029,37,2 +2020-05-24,Flathead,Montana,30029,37,2 +2020-05-25,Flathead,Montana,30029,37,2 +2020-05-26,Flathead,Montana,30029,37,2 +2020-05-27,Flathead,Montana,30029,37,2 +2020-05-28,Flathead,Montana,30029,37,2 +2020-05-29,Flathead,Montana,30029,37,2 +2020-05-30,Flathead,Montana,30029,37,2 +2020-05-31,Flathead,Montana,30029,37,2 +2020-06-01,Flathead,Montana,30029,37,2 +2020-06-02,Flathead,Montana,30029,37,2 +2020-06-03,Flathead,Montana,30029,37,2 +2020-06-04,Flathead,Montana,30029,37,2 +2020-06-05,Flathead,Montana,30029,37,2 +2020-06-06,Flathead,Montana,30029,37,2 +2020-06-07,Flathead,Montana,30029,37,2 +2020-06-08,Flathead,Montana,30029,37,2 +2020-06-09,Flathead,Montana,30029,37,2 +2020-06-10,Flathead,Montana,30029,37,2 +2020-06-11,Flathead,Montana,30029,37,2 +2020-06-12,Flathead,Montana,30029,37,2 +2020-06-13,Flathead,Montana,30029,37,2 +2020-06-14,Flathead,Montana,30029,38,2 +2020-06-15,Flathead,Montana,30029,39,2 +2020-06-16,Flathead,Montana,30029,39,2 +2020-06-17,Flathead,Montana,30029,41,2 +2020-06-18,Flathead,Montana,30029,45,2 +2020-06-19,Flathead,Montana,30029,45,2 +2020-06-20,Flathead,Montana,30029,45,2 +2020-06-21,Flathead,Montana,30029,46,2 +2020-06-22,Flathead,Montana,30029,48,2 +2020-06-23,Flathead,Montana,30029,48,2 +2020-06-24,Flathead,Montana,30029,49,2 +2020-06-25,Flathead,Montana,30029,51,2 +2020-06-26,Flathead,Montana,30029,52,2 +2020-06-27,Flathead,Montana,30029,53,2 +2020-06-28,Flathead,Montana,30029,53,2 +2020-06-29,Flathead,Montana,30029,59,2 +2020-06-30,Flathead,Montana,30029,58,2 +2020-07-01,Flathead,Montana,30029,58,2 +2020-07-02,Flathead,Montana,30029,62,2 +2020-07-03,Flathead,Montana,30029,62,2 +2020-07-04,Flathead,Montana,30029,63,2 +2020-07-05,Flathead,Montana,30029,64,2 +2020-07-06,Flathead,Montana,30029,65,2 +2020-07-07,Flathead,Montana,30029,64,2 +2020-07-08,Flathead,Montana,30029,64,2 +2020-07-09,Flathead,Montana,30029,64,2 +2020-03-13,Gallatin,Montana,30031,1,0 +2020-03-14,Gallatin,Montana,30031,1,0 +2020-03-15,Gallatin,Montana,30031,1,0 +2020-03-16,Gallatin,Montana,30031,1,0 +2020-03-17,Gallatin,Montana,30031,1,0 +2020-03-18,Gallatin,Montana,30031,2,0 +2020-03-19,Gallatin,Montana,30031,2,0 +2020-03-20,Gallatin,Montana,30031,2,0 +2020-03-21,Gallatin,Montana,30031,7,0 +2020-03-22,Gallatin,Montana,30031,10,0 +2020-03-23,Gallatin,Montana,30031,16,0 +2020-03-24,Gallatin,Montana,30031,19,0 +2020-03-25,Gallatin,Montana,30031,24,0 +2020-03-26,Gallatin,Montana,30031,38,0 +2020-03-27,Gallatin,Montana,30031,42,0 +2020-03-28,Gallatin,Montana,30031,57,0 +2020-03-29,Gallatin,Montana,30031,62,0 +2020-03-30,Gallatin,Montana,30031,69,0 +2020-03-31,Gallatin,Montana,30031,74,0 +2020-04-01,Gallatin,Montana,30031,79,0 +2020-04-02,Gallatin,Montana,30031,93,0 +2020-04-03,Gallatin,Montana,30031,101,0 +2020-04-04,Gallatin,Montana,30031,109,0 +2020-04-05,Gallatin,Montana,30031,115,0 +2020-04-06,Gallatin,Montana,30031,118,0 +2020-04-07,Gallatin,Montana,30031,118,0 +2020-04-08,Gallatin,Montana,30031,119,0 +2020-04-09,Gallatin,Montana,30031,128,0 +2020-04-10,Gallatin,Montana,30031,134,0 +2020-04-11,Gallatin,Montana,30031,135,0 +2020-04-12,Gallatin,Montana,30031,138,0 +2020-04-13,Gallatin,Montana,30031,138,0 +2020-04-14,Gallatin,Montana,30031,138,0 +2020-04-15,Gallatin,Montana,30031,139,0 +2020-04-16,Gallatin,Montana,30031,141,0 +2020-04-17,Gallatin,Montana,30031,142,0 +2020-04-18,Gallatin,Montana,30031,142,0 +2020-04-19,Gallatin,Montana,30031,143,0 +2020-04-20,Gallatin,Montana,30031,143,0 +2020-04-21,Gallatin,Montana,30031,145,0 +2020-04-22,Gallatin,Montana,30031,145,0 +2020-04-23,Gallatin,Montana,30031,146,0 +2020-04-24,Gallatin,Montana,30031,146,0 +2020-04-25,Gallatin,Montana,30031,146,0 +2020-04-26,Gallatin,Montana,30031,146,0 +2020-04-27,Gallatin,Montana,30031,146,0 +2020-04-28,Gallatin,Montana,30031,146,1 +2020-04-29,Gallatin,Montana,30031,146,1 +2020-04-30,Gallatin,Montana,30031,146,1 +2020-05-01,Gallatin,Montana,30031,146,1 +2020-05-02,Gallatin,Montana,30031,146,1 +2020-05-03,Gallatin,Montana,30031,146,1 +2020-05-04,Gallatin,Montana,30031,146,1 +2020-05-05,Gallatin,Montana,30031,146,1 +2020-05-06,Gallatin,Montana,30031,146,1 +2020-05-07,Gallatin,Montana,30031,146,1 +2020-05-08,Gallatin,Montana,30031,148,1 +2020-05-09,Gallatin,Montana,30031,149,1 +2020-05-10,Gallatin,Montana,30031,149,1 +2020-05-11,Gallatin,Montana,30031,149,1 +2020-05-12,Gallatin,Montana,30031,149,1 +2020-05-13,Gallatin,Montana,30031,149,1 +2020-05-14,Gallatin,Montana,30031,149,1 +2020-05-15,Gallatin,Montana,30031,149,1 +2020-05-16,Gallatin,Montana,30031,149,1 +2020-05-17,Gallatin,Montana,30031,149,1 +2020-05-18,Gallatin,Montana,30031,149,1 +2020-05-19,Gallatin,Montana,30031,149,1 +2020-05-20,Gallatin,Montana,30031,149,1 +2020-05-21,Gallatin,Montana,30031,149,1 +2020-05-22,Gallatin,Montana,30031,149,1 +2020-05-23,Gallatin,Montana,30031,149,1 +2020-05-24,Gallatin,Montana,30031,149,1 +2020-05-25,Gallatin,Montana,30031,149,1 +2020-05-26,Gallatin,Montana,30031,149,1 +2020-05-27,Gallatin,Montana,30031,149,1 +2020-05-28,Gallatin,Montana,30031,149,1 +2020-05-29,Gallatin,Montana,30031,150,1 +2020-05-30,Gallatin,Montana,30031,151,1 +2020-05-31,Gallatin,Montana,30031,151,1 +2020-06-01,Gallatin,Montana,30031,153,1 +2020-06-02,Gallatin,Montana,30031,155,1 +2020-06-03,Gallatin,Montana,30031,155,1 +2020-06-04,Gallatin,Montana,30031,161,1 +2020-06-05,Gallatin,Montana,30031,161,1 +2020-06-06,Gallatin,Montana,30031,161,1 +2020-06-07,Gallatin,Montana,30031,162,1 +2020-06-08,Gallatin,Montana,30031,164,1 +2020-06-09,Gallatin,Montana,30031,168,1 +2020-06-10,Gallatin,Montana,30031,174,1 +2020-06-11,Gallatin,Montana,30031,176,1 +2020-06-12,Gallatin,Montana,30031,182,1 +2020-06-13,Gallatin,Montana,30031,187,1 +2020-06-14,Gallatin,Montana,30031,188,1 +2020-06-15,Gallatin,Montana,30031,188,1 +2020-06-16,Gallatin,Montana,30031,188,1 +2020-06-17,Gallatin,Montana,30031,191,1 +2020-06-18,Gallatin,Montana,30031,195,1 +2020-06-19,Gallatin,Montana,30031,197,1 +2020-06-20,Gallatin,Montana,30031,204,1 +2020-06-21,Gallatin,Montana,30031,209,1 +2020-06-22,Gallatin,Montana,30031,213,1 +2020-06-23,Gallatin,Montana,30031,213,1 +2020-06-24,Gallatin,Montana,30031,216,1 +2020-06-25,Gallatin,Montana,30031,223,1 +2020-06-26,Gallatin,Montana,30031,231,1 +2020-06-27,Gallatin,Montana,30031,239,1 +2020-06-28,Gallatin,Montana,30031,240,1 +2020-06-29,Gallatin,Montana,30031,253,1 +2020-06-30,Gallatin,Montana,30031,263,1 +2020-07-01,Gallatin,Montana,30031,271,1 +2020-07-02,Gallatin,Montana,30031,277,1 +2020-07-03,Gallatin,Montana,30031,282,1 +2020-07-04,Gallatin,Montana,30031,287,1 +2020-07-05,Gallatin,Montana,30031,298,1 +2020-07-06,Gallatin,Montana,30031,305,1 +2020-07-07,Gallatin,Montana,30031,308,1 +2020-07-08,Gallatin,Montana,30031,327,1 +2020-07-09,Gallatin,Montana,30031,334,1 +2020-04-03,Glacier,Montana,30035,1,0 +2020-04-04,Glacier,Montana,30035,1,0 +2020-04-05,Glacier,Montana,30035,1,0 +2020-04-06,Glacier,Montana,30035,1,0 +2020-04-07,Glacier,Montana,30035,1,0 +2020-04-08,Glacier,Montana,30035,2,0 +2020-04-09,Glacier,Montana,30035,3,0 +2020-04-10,Glacier,Montana,30035,3,0 +2020-04-11,Glacier,Montana,30035,3,0 +2020-04-12,Glacier,Montana,30035,3,0 +2020-04-13,Glacier,Montana,30035,4,0 +2020-04-14,Glacier,Montana,30035,4,0 +2020-04-15,Glacier,Montana,30035,4,0 +2020-04-16,Glacier,Montana,30035,4,0 +2020-04-17,Glacier,Montana,30035,4,0 +2020-04-18,Glacier,Montana,30035,4,0 +2020-04-19,Glacier,Montana,30035,4,0 +2020-04-20,Glacier,Montana,30035,4,0 +2020-04-21,Glacier,Montana,30035,4,0 +2020-04-22,Glacier,Montana,30035,4,0 +2020-04-23,Glacier,Montana,30035,4,0 +2020-04-24,Glacier,Montana,30035,4,0 +2020-04-25,Glacier,Montana,30035,4,0 +2020-04-26,Glacier,Montana,30035,6,0 +2020-04-27,Glacier,Montana,30035,6,0 +2020-04-28,Glacier,Montana,30035,6,0 +2020-04-29,Glacier,Montana,30035,6,0 +2020-04-30,Glacier,Montana,30035,6,0 +2020-05-01,Glacier,Montana,30035,6,0 +2020-05-02,Glacier,Montana,30035,6,0 +2020-05-03,Glacier,Montana,30035,6,0 +2020-05-04,Glacier,Montana,30035,6,0 +2020-05-05,Glacier,Montana,30035,6,0 +2020-05-06,Glacier,Montana,30035,6,0 +2020-05-07,Glacier,Montana,30035,6,0 +2020-05-08,Glacier,Montana,30035,6,0 +2020-05-09,Glacier,Montana,30035,6,0 +2020-05-10,Glacier,Montana,30035,6,0 +2020-05-11,Glacier,Montana,30035,6,0 +2020-05-12,Glacier,Montana,30035,6,0 +2020-05-13,Glacier,Montana,30035,6,0 +2020-05-14,Glacier,Montana,30035,6,0 +2020-05-15,Glacier,Montana,30035,6,0 +2020-05-16,Glacier,Montana,30035,6,0 +2020-05-17,Glacier,Montana,30035,6,0 +2020-05-18,Glacier,Montana,30035,6,0 +2020-05-19,Glacier,Montana,30035,6,0 +2020-05-20,Glacier,Montana,30035,6,0 +2020-05-21,Glacier,Montana,30035,6,0 +2020-05-22,Glacier,Montana,30035,6,0 +2020-05-23,Glacier,Montana,30035,6,0 +2020-05-24,Glacier,Montana,30035,6,0 +2020-05-25,Glacier,Montana,30035,6,0 +2020-05-26,Glacier,Montana,30035,6,0 +2020-05-27,Glacier,Montana,30035,6,0 +2020-05-28,Glacier,Montana,30035,6,0 +2020-05-29,Glacier,Montana,30035,6,0 +2020-05-30,Glacier,Montana,30035,6,0 +2020-05-31,Glacier,Montana,30035,6,0 +2020-06-01,Glacier,Montana,30035,6,0 +2020-06-02,Glacier,Montana,30035,6,0 +2020-06-03,Glacier,Montana,30035,6,0 +2020-06-04,Glacier,Montana,30035,6,0 +2020-06-05,Glacier,Montana,30035,6,0 +2020-06-06,Glacier,Montana,30035,6,0 +2020-06-07,Glacier,Montana,30035,6,0 +2020-06-08,Glacier,Montana,30035,6,0 +2020-06-09,Glacier,Montana,30035,6,0 +2020-06-10,Glacier,Montana,30035,6,0 +2020-06-11,Glacier,Montana,30035,6,0 +2020-06-12,Glacier,Montana,30035,6,0 +2020-06-13,Glacier,Montana,30035,6,0 +2020-06-14,Glacier,Montana,30035,6,0 +2020-06-15,Glacier,Montana,30035,6,0 +2020-06-16,Glacier,Montana,30035,6,0 +2020-06-17,Glacier,Montana,30035,6,0 +2020-06-18,Glacier,Montana,30035,6,0 +2020-06-19,Glacier,Montana,30035,6,0 +2020-06-20,Glacier,Montana,30035,7,0 +2020-06-21,Glacier,Montana,30035,7,0 +2020-06-22,Glacier,Montana,30035,7,0 +2020-06-23,Glacier,Montana,30035,7,0 +2020-06-24,Glacier,Montana,30035,7,0 +2020-06-25,Glacier,Montana,30035,7,0 +2020-06-26,Glacier,Montana,30035,7,0 +2020-06-27,Glacier,Montana,30035,8,0 +2020-06-28,Glacier,Montana,30035,9,0 +2020-06-29,Glacier,Montana,30035,18,0 +2020-06-30,Glacier,Montana,30035,18,0 +2020-07-01,Glacier,Montana,30035,18,0 +2020-07-02,Glacier,Montana,30035,22,0 +2020-07-03,Glacier,Montana,30035,22,0 +2020-07-04,Glacier,Montana,30035,22,0 +2020-07-05,Glacier,Montana,30035,25,0 +2020-07-06,Glacier,Montana,30035,25,0 +2020-07-07,Glacier,Montana,30035,25,0 +2020-07-08,Glacier,Montana,30035,25,0 +2020-07-09,Glacier,Montana,30035,25,0 +2020-04-11,Golden Valley,Montana,30037,1,0 +2020-04-12,Golden Valley,Montana,30037,1,0 +2020-04-13,Golden Valley,Montana,30037,1,0 +2020-04-14,Golden Valley,Montana,30037,1,0 +2020-04-15,Golden Valley,Montana,30037,1,0 +2020-04-16,Golden Valley,Montana,30037,1,0 +2020-04-17,Golden Valley,Montana,30037,3,0 +2020-04-18,Golden Valley,Montana,30037,3,0 +2020-04-19,Golden Valley,Montana,30037,3,0 +2020-04-20,Golden Valley,Montana,30037,3,0 +2020-04-21,Golden Valley,Montana,30037,3,0 +2020-04-22,Golden Valley,Montana,30037,3,0 +2020-04-23,Golden Valley,Montana,30037,3,0 +2020-04-24,Golden Valley,Montana,30037,3,0 +2020-04-25,Golden Valley,Montana,30037,3,0 +2020-04-26,Golden Valley,Montana,30037,3,0 +2020-04-27,Golden Valley,Montana,30037,3,0 +2020-04-28,Golden Valley,Montana,30037,3,0 +2020-04-29,Golden Valley,Montana,30037,3,0 +2020-04-30,Golden Valley,Montana,30037,3,0 +2020-05-01,Golden Valley,Montana,30037,3,0 +2020-05-02,Golden Valley,Montana,30037,3,0 +2020-05-03,Golden Valley,Montana,30037,3,0 +2020-05-04,Golden Valley,Montana,30037,3,0 +2020-05-05,Golden Valley,Montana,30037,3,0 +2020-05-06,Golden Valley,Montana,30037,3,0 +2020-05-07,Golden Valley,Montana,30037,3,0 +2020-05-08,Golden Valley,Montana,30037,3,0 +2020-05-09,Golden Valley,Montana,30037,3,0 +2020-05-10,Golden Valley,Montana,30037,3,0 +2020-05-11,Golden Valley,Montana,30037,3,0 +2020-05-12,Golden Valley,Montana,30037,3,0 +2020-05-13,Golden Valley,Montana,30037,3,0 +2020-05-14,Golden Valley,Montana,30037,3,0 +2020-05-15,Golden Valley,Montana,30037,3,0 +2020-05-16,Golden Valley,Montana,30037,3,0 +2020-05-17,Golden Valley,Montana,30037,3,0 +2020-05-18,Golden Valley,Montana,30037,3,0 +2020-05-19,Golden Valley,Montana,30037,3,0 +2020-05-20,Golden Valley,Montana,30037,3,0 +2020-05-21,Golden Valley,Montana,30037,3,0 +2020-05-22,Golden Valley,Montana,30037,3,0 +2020-05-23,Golden Valley,Montana,30037,3,0 +2020-05-24,Golden Valley,Montana,30037,3,0 +2020-05-25,Golden Valley,Montana,30037,3,0 +2020-05-26,Golden Valley,Montana,30037,3,0 +2020-05-27,Golden Valley,Montana,30037,3,0 +2020-05-28,Golden Valley,Montana,30037,3,0 +2020-05-29,Golden Valley,Montana,30037,3,0 +2020-05-30,Golden Valley,Montana,30037,3,0 +2020-05-31,Golden Valley,Montana,30037,3,0 +2020-06-01,Golden Valley,Montana,30037,3,0 +2020-06-02,Golden Valley,Montana,30037,3,0 +2020-06-03,Golden Valley,Montana,30037,3,0 +2020-06-04,Golden Valley,Montana,30037,3,0 +2020-06-05,Golden Valley,Montana,30037,3,0 +2020-06-06,Golden Valley,Montana,30037,3,0 +2020-06-07,Golden Valley,Montana,30037,3,0 +2020-06-08,Golden Valley,Montana,30037,3,0 +2020-06-09,Golden Valley,Montana,30037,3,0 +2020-06-10,Golden Valley,Montana,30037,3,0 +2020-06-11,Golden Valley,Montana,30037,3,0 +2020-06-12,Golden Valley,Montana,30037,3,0 +2020-06-13,Golden Valley,Montana,30037,3,0 +2020-06-14,Golden Valley,Montana,30037,3,0 +2020-06-15,Golden Valley,Montana,30037,3,0 +2020-06-16,Golden Valley,Montana,30037,3,0 +2020-06-17,Golden Valley,Montana,30037,3,0 +2020-06-18,Golden Valley,Montana,30037,3,0 +2020-06-19,Golden Valley,Montana,30037,3,0 +2020-06-20,Golden Valley,Montana,30037,3,0 +2020-06-21,Golden Valley,Montana,30037,3,0 +2020-06-22,Golden Valley,Montana,30037,3,0 +2020-06-23,Golden Valley,Montana,30037,3,0 +2020-06-24,Golden Valley,Montana,30037,3,0 +2020-06-25,Golden Valley,Montana,30037,3,0 +2020-06-26,Golden Valley,Montana,30037,3,0 +2020-06-27,Golden Valley,Montana,30037,3,0 +2020-06-28,Golden Valley,Montana,30037,3,0 +2020-06-29,Golden Valley,Montana,30037,3,0 +2020-06-30,Golden Valley,Montana,30037,3,0 +2020-07-01,Golden Valley,Montana,30037,3,0 +2020-07-02,Golden Valley,Montana,30037,3,0 +2020-07-03,Golden Valley,Montana,30037,3,0 +2020-07-04,Golden Valley,Montana,30037,3,0 +2020-07-05,Golden Valley,Montana,30037,3,0 +2020-07-06,Golden Valley,Montana,30037,3,0 +2020-07-07,Golden Valley,Montana,30037,3,0 +2020-07-08,Golden Valley,Montana,30037,3,0 +2020-07-09,Golden Valley,Montana,30037,3,0 +2020-06-25,Granite,Montana,30039,1,0 +2020-06-26,Granite,Montana,30039,1,0 +2020-06-27,Granite,Montana,30039,2,0 +2020-06-28,Granite,Montana,30039,2,0 +2020-06-29,Granite,Montana,30039,3,0 +2020-06-30,Granite,Montana,30039,3,0 +2020-07-01,Granite,Montana,30039,4,0 +2020-07-02,Granite,Montana,30039,4,0 +2020-07-03,Granite,Montana,30039,4,0 +2020-07-04,Granite,Montana,30039,4,0 +2020-07-05,Granite,Montana,30039,4,0 +2020-07-06,Granite,Montana,30039,4,0 +2020-07-07,Granite,Montana,30039,4,0 +2020-07-08,Granite,Montana,30039,5,0 +2020-07-09,Granite,Montana,30039,5,0 +2020-03-25,Hill,Montana,30041,1,0 +2020-03-26,Hill,Montana,30041,1,0 +2020-03-27,Hill,Montana,30041,1,0 +2020-03-28,Hill,Montana,30041,1,0 +2020-03-29,Hill,Montana,30041,1,0 +2020-03-30,Hill,Montana,30041,1,0 +2020-03-31,Hill,Montana,30041,1,0 +2020-04-01,Hill,Montana,30041,1,0 +2020-04-02,Hill,Montana,30041,1,0 +2020-04-03,Hill,Montana,30041,1,0 +2020-04-04,Hill,Montana,30041,1,0 +2020-04-05,Hill,Montana,30041,1,0 +2020-04-06,Hill,Montana,30041,1,0 +2020-04-07,Hill,Montana,30041,1,0 +2020-04-08,Hill,Montana,30041,1,0 +2020-04-09,Hill,Montana,30041,1,0 +2020-04-10,Hill,Montana,30041,1,0 +2020-04-11,Hill,Montana,30041,1,0 +2020-04-12,Hill,Montana,30041,1,0 +2020-04-13,Hill,Montana,30041,1,0 +2020-04-14,Hill,Montana,30041,1,0 +2020-04-15,Hill,Montana,30041,1,0 +2020-04-16,Hill,Montana,30041,1,0 +2020-04-17,Hill,Montana,30041,1,0 +2020-04-18,Hill,Montana,30041,1,0 +2020-04-19,Hill,Montana,30041,1,0 +2020-04-20,Hill,Montana,30041,1,0 +2020-04-21,Hill,Montana,30041,1,0 +2020-04-22,Hill,Montana,30041,1,0 +2020-04-23,Hill,Montana,30041,1,0 +2020-04-24,Hill,Montana,30041,1,0 +2020-04-25,Hill,Montana,30041,1,0 +2020-04-26,Hill,Montana,30041,1,0 +2020-04-27,Hill,Montana,30041,1,0 +2020-04-28,Hill,Montana,30041,1,0 +2020-04-29,Hill,Montana,30041,1,0 +2020-04-30,Hill,Montana,30041,1,0 +2020-05-01,Hill,Montana,30041,1,0 +2020-05-02,Hill,Montana,30041,1,0 +2020-05-03,Hill,Montana,30041,1,0 +2020-05-04,Hill,Montana,30041,1,0 +2020-05-05,Hill,Montana,30041,1,0 +2020-05-06,Hill,Montana,30041,1,0 +2020-05-07,Hill,Montana,30041,1,0 +2020-05-08,Hill,Montana,30041,1,0 +2020-05-09,Hill,Montana,30041,1,0 +2020-05-10,Hill,Montana,30041,1,0 +2020-05-11,Hill,Montana,30041,1,0 +2020-05-12,Hill,Montana,30041,1,0 +2020-05-13,Hill,Montana,30041,1,0 +2020-05-14,Hill,Montana,30041,1,0 +2020-05-15,Hill,Montana,30041,1,0 +2020-05-16,Hill,Montana,30041,1,0 +2020-05-17,Hill,Montana,30041,1,0 +2020-05-18,Hill,Montana,30041,1,0 +2020-05-19,Hill,Montana,30041,1,0 +2020-05-20,Hill,Montana,30041,1,0 +2020-05-21,Hill,Montana,30041,1,0 +2020-05-22,Hill,Montana,30041,1,0 +2020-05-23,Hill,Montana,30041,1,0 +2020-05-24,Hill,Montana,30041,1,0 +2020-05-25,Hill,Montana,30041,1,0 +2020-05-26,Hill,Montana,30041,1,0 +2020-05-27,Hill,Montana,30041,1,0 +2020-05-28,Hill,Montana,30041,1,0 +2020-05-29,Hill,Montana,30041,1,0 +2020-05-30,Hill,Montana,30041,1,0 +2020-05-31,Hill,Montana,30041,1,0 +2020-06-01,Hill,Montana,30041,1,0 +2020-06-02,Hill,Montana,30041,1,0 +2020-06-03,Hill,Montana,30041,1,0 +2020-06-04,Hill,Montana,30041,1,0 +2020-06-05,Hill,Montana,30041,1,0 +2020-06-06,Hill,Montana,30041,1,0 +2020-06-07,Hill,Montana,30041,1,0 +2020-06-08,Hill,Montana,30041,1,0 +2020-06-09,Hill,Montana,30041,1,0 +2020-06-10,Hill,Montana,30041,1,0 +2020-06-11,Hill,Montana,30041,1,0 +2020-06-12,Hill,Montana,30041,1,0 +2020-06-13,Hill,Montana,30041,1,0 +2020-06-14,Hill,Montana,30041,1,0 +2020-06-15,Hill,Montana,30041,1,0 +2020-06-16,Hill,Montana,30041,1,0 +2020-06-17,Hill,Montana,30041,1,0 +2020-06-18,Hill,Montana,30041,1,0 +2020-06-19,Hill,Montana,30041,1,0 +2020-06-20,Hill,Montana,30041,1,0 +2020-06-21,Hill,Montana,30041,1,0 +2020-06-22,Hill,Montana,30041,1,0 +2020-06-23,Hill,Montana,30041,1,0 +2020-06-24,Hill,Montana,30041,1,0 +2020-06-25,Hill,Montana,30041,1,0 +2020-06-26,Hill,Montana,30041,1,0 +2020-06-27,Hill,Montana,30041,1,0 +2020-06-28,Hill,Montana,30041,1,0 +2020-06-29,Hill,Montana,30041,1,0 +2020-06-30,Hill,Montana,30041,1,0 +2020-07-01,Hill,Montana,30041,1,0 +2020-07-02,Hill,Montana,30041,1,0 +2020-07-03,Hill,Montana,30041,1,0 +2020-07-04,Hill,Montana,30041,1,0 +2020-07-05,Hill,Montana,30041,2,0 +2020-07-06,Hill,Montana,30041,2,0 +2020-07-07,Hill,Montana,30041,7,0 +2020-07-08,Hill,Montana,30041,7,0 +2020-07-09,Hill,Montana,30041,8,0 +2020-03-24,Jefferson,Montana,30043,1,0 +2020-03-25,Jefferson,Montana,30043,1,0 +2020-03-26,Jefferson,Montana,30043,1,0 +2020-03-27,Jefferson,Montana,30043,2,0 +2020-03-28,Jefferson,Montana,30043,2,0 +2020-03-29,Jefferson,Montana,30043,2,0 +2020-03-30,Jefferson,Montana,30043,2,0 +2020-03-31,Jefferson,Montana,30043,2,0 +2020-04-01,Jefferson,Montana,30043,2,0 +2020-04-02,Jefferson,Montana,30043,2,0 +2020-04-03,Jefferson,Montana,30043,2,0 +2020-04-04,Jefferson,Montana,30043,2,0 +2020-04-05,Jefferson,Montana,30043,2,0 +2020-04-06,Jefferson,Montana,30043,2,0 +2020-04-07,Jefferson,Montana,30043,2,0 +2020-04-08,Jefferson,Montana,30043,2,0 +2020-04-09,Jefferson,Montana,30043,2,0 +2020-04-10,Jefferson,Montana,30043,2,0 +2020-04-11,Jefferson,Montana,30043,2,0 +2020-04-12,Jefferson,Montana,30043,2,0 +2020-04-13,Jefferson,Montana,30043,2,0 +2020-04-14,Jefferson,Montana,30043,2,0 +2020-04-15,Jefferson,Montana,30043,2,0 +2020-04-16,Jefferson,Montana,30043,2,0 +2020-04-17,Jefferson,Montana,30043,2,0 +2020-04-18,Jefferson,Montana,30043,2,0 +2020-04-19,Jefferson,Montana,30043,2,0 +2020-04-20,Jefferson,Montana,30043,2,0 +2020-04-21,Jefferson,Montana,30043,2,0 +2020-04-22,Jefferson,Montana,30043,2,0 +2020-04-23,Jefferson,Montana,30043,2,0 +2020-04-24,Jefferson,Montana,30043,2,0 +2020-04-25,Jefferson,Montana,30043,2,0 +2020-04-26,Jefferson,Montana,30043,2,0 +2020-04-27,Jefferson,Montana,30043,2,0 +2020-04-28,Jefferson,Montana,30043,2,0 +2020-04-29,Jefferson,Montana,30043,2,0 +2020-04-30,Jefferson,Montana,30043,2,0 +2020-05-01,Jefferson,Montana,30043,2,0 +2020-05-02,Jefferson,Montana,30043,2,0 +2020-05-03,Jefferson,Montana,30043,2,0 +2020-05-04,Jefferson,Montana,30043,2,0 +2020-05-05,Jefferson,Montana,30043,2,0 +2020-05-06,Jefferson,Montana,30043,2,0 +2020-05-07,Jefferson,Montana,30043,2,0 +2020-05-08,Jefferson,Montana,30043,2,0 +2020-05-09,Jefferson,Montana,30043,2,0 +2020-05-10,Jefferson,Montana,30043,2,0 +2020-05-11,Jefferson,Montana,30043,3,0 +2020-05-12,Jefferson,Montana,30043,3,0 +2020-05-13,Jefferson,Montana,30043,3,0 +2020-05-14,Jefferson,Montana,30043,3,0 +2020-05-15,Jefferson,Montana,30043,3,0 +2020-05-16,Jefferson,Montana,30043,3,0 +2020-05-17,Jefferson,Montana,30043,3,0 +2020-05-18,Jefferson,Montana,30043,3,0 +2020-05-19,Jefferson,Montana,30043,3,0 +2020-05-20,Jefferson,Montana,30043,3,0 +2020-05-21,Jefferson,Montana,30043,3,0 +2020-05-22,Jefferson,Montana,30043,3,0 +2020-05-23,Jefferson,Montana,30043,3,0 +2020-05-24,Jefferson,Montana,30043,3,0 +2020-05-25,Jefferson,Montana,30043,3,0 +2020-05-26,Jefferson,Montana,30043,3,0 +2020-05-27,Jefferson,Montana,30043,3,0 +2020-05-28,Jefferson,Montana,30043,3,0 +2020-05-29,Jefferson,Montana,30043,3,0 +2020-05-30,Jefferson,Montana,30043,3,0 +2020-05-31,Jefferson,Montana,30043,3,0 +2020-06-01,Jefferson,Montana,30043,3,0 +2020-06-02,Jefferson,Montana,30043,3,0 +2020-06-03,Jefferson,Montana,30043,3,0 +2020-06-04,Jefferson,Montana,30043,3,0 +2020-06-05,Jefferson,Montana,30043,3,0 +2020-06-06,Jefferson,Montana,30043,3,0 +2020-06-07,Jefferson,Montana,30043,3,0 +2020-06-08,Jefferson,Montana,30043,3,0 +2020-06-09,Jefferson,Montana,30043,3,0 +2020-06-10,Jefferson,Montana,30043,3,0 +2020-06-11,Jefferson,Montana,30043,3,0 +2020-06-12,Jefferson,Montana,30043,3,0 +2020-06-13,Jefferson,Montana,30043,3,0 +2020-06-14,Jefferson,Montana,30043,3,0 +2020-06-15,Jefferson,Montana,30043,3,0 +2020-06-16,Jefferson,Montana,30043,3,0 +2020-06-17,Jefferson,Montana,30043,3,0 +2020-06-18,Jefferson,Montana,30043,3,0 +2020-06-19,Jefferson,Montana,30043,3,0 +2020-06-20,Jefferson,Montana,30043,3,0 +2020-06-21,Jefferson,Montana,30043,3,0 +2020-06-22,Jefferson,Montana,30043,3,0 +2020-06-23,Jefferson,Montana,30043,3,0 +2020-06-24,Jefferson,Montana,30043,3,0 +2020-06-25,Jefferson,Montana,30043,3,0 +2020-06-26,Jefferson,Montana,30043,3,0 +2020-06-27,Jefferson,Montana,30043,3,0 +2020-06-28,Jefferson,Montana,30043,4,0 +2020-06-29,Jefferson,Montana,30043,4,0 +2020-06-30,Jefferson,Montana,30043,4,0 +2020-07-01,Jefferson,Montana,30043,3,0 +2020-07-02,Jefferson,Montana,30043,3,0 +2020-07-03,Jefferson,Montana,30043,3,0 +2020-07-04,Jefferson,Montana,30043,3,0 +2020-07-05,Jefferson,Montana,30043,3,0 +2020-07-06,Jefferson,Montana,30043,3,0 +2020-07-07,Jefferson,Montana,30043,3,0 +2020-07-08,Jefferson,Montana,30043,5,0 +2020-07-09,Jefferson,Montana,30043,5,0 +2020-03-27,Lake,Montana,30047,1,0 +2020-03-28,Lake,Montana,30047,2,0 +2020-03-29,Lake,Montana,30047,3,0 +2020-03-30,Lake,Montana,30047,3,0 +2020-03-31,Lake,Montana,30047,3,0 +2020-04-01,Lake,Montana,30047,4,0 +2020-04-02,Lake,Montana,30047,4,0 +2020-04-03,Lake,Montana,30047,4,0 +2020-04-04,Lake,Montana,30047,4,0 +2020-04-05,Lake,Montana,30047,4,0 +2020-04-06,Lake,Montana,30047,5,0 +2020-04-07,Lake,Montana,30047,5,0 +2020-04-08,Lake,Montana,30047,5,0 +2020-04-09,Lake,Montana,30047,6,0 +2020-04-10,Lake,Montana,30047,5,0 +2020-04-11,Lake,Montana,30047,5,0 +2020-04-12,Lake,Montana,30047,5,0 +2020-04-13,Lake,Montana,30047,5,0 +2020-04-14,Lake,Montana,30047,5,0 +2020-04-15,Lake,Montana,30047,5,0 +2020-04-16,Lake,Montana,30047,5,0 +2020-04-17,Lake,Montana,30047,5,0 +2020-04-18,Lake,Montana,30047,5,0 +2020-04-19,Lake,Montana,30047,5,0 +2020-04-20,Lake,Montana,30047,5,0 +2020-04-21,Lake,Montana,30047,5,0 +2020-04-22,Lake,Montana,30047,5,0 +2020-04-23,Lake,Montana,30047,5,0 +2020-04-24,Lake,Montana,30047,5,0 +2020-04-25,Lake,Montana,30047,5,0 +2020-04-26,Lake,Montana,30047,5,0 +2020-04-27,Lake,Montana,30047,5,0 +2020-04-28,Lake,Montana,30047,5,0 +2020-04-29,Lake,Montana,30047,5,0 +2020-04-30,Lake,Montana,30047,5,0 +2020-05-01,Lake,Montana,30047,5,0 +2020-05-02,Lake,Montana,30047,5,0 +2020-05-03,Lake,Montana,30047,5,0 +2020-05-04,Lake,Montana,30047,5,0 +2020-05-05,Lake,Montana,30047,5,0 +2020-05-06,Lake,Montana,30047,5,0 +2020-05-07,Lake,Montana,30047,5,0 +2020-05-08,Lake,Montana,30047,5,0 +2020-05-09,Lake,Montana,30047,5,0 +2020-05-10,Lake,Montana,30047,5,0 +2020-05-11,Lake,Montana,30047,5,0 +2020-05-12,Lake,Montana,30047,5,0 +2020-05-13,Lake,Montana,30047,5,0 +2020-05-14,Lake,Montana,30047,5,0 +2020-05-15,Lake,Montana,30047,5,0 +2020-05-16,Lake,Montana,30047,5,0 +2020-05-17,Lake,Montana,30047,5,0 +2020-05-18,Lake,Montana,30047,5,0 +2020-05-19,Lake,Montana,30047,5,0 +2020-05-20,Lake,Montana,30047,5,0 +2020-05-21,Lake,Montana,30047,5,0 +2020-05-22,Lake,Montana,30047,5,0 +2020-05-23,Lake,Montana,30047,5,0 +2020-05-24,Lake,Montana,30047,5,0 +2020-05-25,Lake,Montana,30047,5,0 +2020-05-26,Lake,Montana,30047,5,0 +2020-05-27,Lake,Montana,30047,5,0 +2020-05-28,Lake,Montana,30047,5,0 +2020-05-29,Lake,Montana,30047,5,0 +2020-05-30,Lake,Montana,30047,5,0 +2020-05-31,Lake,Montana,30047,5,0 +2020-06-01,Lake,Montana,30047,5,0 +2020-06-02,Lake,Montana,30047,5,0 +2020-06-03,Lake,Montana,30047,5,0 +2020-06-04,Lake,Montana,30047,5,0 +2020-06-05,Lake,Montana,30047,5,0 +2020-06-06,Lake,Montana,30047,5,0 +2020-06-07,Lake,Montana,30047,5,0 +2020-06-08,Lake,Montana,30047,5,0 +2020-06-09,Lake,Montana,30047,5,0 +2020-06-10,Lake,Montana,30047,5,0 +2020-06-11,Lake,Montana,30047,5,0 +2020-06-12,Lake,Montana,30047,6,0 +2020-06-13,Lake,Montana,30047,9,0 +2020-06-14,Lake,Montana,30047,9,0 +2020-06-15,Lake,Montana,30047,9,0 +2020-06-16,Lake,Montana,30047,9,0 +2020-06-17,Lake,Montana,30047,9,0 +2020-06-18,Lake,Montana,30047,10,0 +2020-06-19,Lake,Montana,30047,10,0 +2020-06-20,Lake,Montana,30047,10,0 +2020-06-21,Lake,Montana,30047,11,0 +2020-06-22,Lake,Montana,30047,12,0 +2020-06-23,Lake,Montana,30047,12,0 +2020-06-24,Lake,Montana,30047,12,0 +2020-06-25,Lake,Montana,30047,12,0 +2020-06-26,Lake,Montana,30047,12,0 +2020-06-27,Lake,Montana,30047,12,0 +2020-06-28,Lake,Montana,30047,16,0 +2020-06-29,Lake,Montana,30047,16,0 +2020-06-30,Lake,Montana,30047,17,0 +2020-07-01,Lake,Montana,30047,18,0 +2020-07-02,Lake,Montana,30047,18,0 +2020-07-03,Lake,Montana,30047,18,0 +2020-07-04,Lake,Montana,30047,19,0 +2020-07-05,Lake,Montana,30047,21,0 +2020-07-06,Lake,Montana,30047,21,0 +2020-07-07,Lake,Montana,30047,22,0 +2020-07-08,Lake,Montana,30047,24,0 +2020-07-09,Lake,Montana,30047,38,0 +2020-03-13,Lewis and Clark,Montana,30049,1,0 +2020-03-14,Lewis and Clark,Montana,30049,1,0 +2020-03-15,Lewis and Clark,Montana,30049,1,0 +2020-03-16,Lewis and Clark,Montana,30049,1,0 +2020-03-17,Lewis and Clark,Montana,30049,1,0 +2020-03-18,Lewis and Clark,Montana,30049,1,0 +2020-03-19,Lewis and Clark,Montana,30049,3,0 +2020-03-20,Lewis and Clark,Montana,30049,3,0 +2020-03-21,Lewis and Clark,Montana,30049,3,0 +2020-03-22,Lewis and Clark,Montana,30049,3,0 +2020-03-23,Lewis and Clark,Montana,30049,3,0 +2020-03-24,Lewis and Clark,Montana,30049,3,0 +2020-03-25,Lewis and Clark,Montana,30049,3,0 +2020-03-26,Lewis and Clark,Montana,30049,5,0 +2020-03-27,Lewis and Clark,Montana,30049,7,0 +2020-03-28,Lewis and Clark,Montana,30049,10,0 +2020-03-29,Lewis and Clark,Montana,30049,10,0 +2020-03-30,Lewis and Clark,Montana,30049,11,0 +2020-03-31,Lewis and Clark,Montana,30049,12,0 +2020-04-01,Lewis and Clark,Montana,30049,14,0 +2020-04-02,Lewis and Clark,Montana,30049,13,0 +2020-04-03,Lewis and Clark,Montana,30049,13,0 +2020-04-04,Lewis and Clark,Montana,30049,14,0 +2020-04-05,Lewis and Clark,Montana,30049,14,0 +2020-04-06,Lewis and Clark,Montana,30049,15,0 +2020-04-07,Lewis and Clark,Montana,30049,15,0 +2020-04-08,Lewis and Clark,Montana,30049,16,0 +2020-04-09,Lewis and Clark,Montana,30049,16,0 +2020-04-10,Lewis and Clark,Montana,30049,16,0 +2020-04-11,Lewis and Clark,Montana,30049,16,0 +2020-04-12,Lewis and Clark,Montana,30049,16,0 +2020-04-13,Lewis and Clark,Montana,30049,16,0 +2020-04-14,Lewis and Clark,Montana,30049,16,0 +2020-04-15,Lewis and Clark,Montana,30049,16,0 +2020-04-16,Lewis and Clark,Montana,30049,16,0 +2020-04-17,Lewis and Clark,Montana,30049,16,0 +2020-04-18,Lewis and Clark,Montana,30049,16,0 +2020-04-19,Lewis and Clark,Montana,30049,16,0 +2020-04-20,Lewis and Clark,Montana,30049,16,0 +2020-04-21,Lewis and Clark,Montana,30049,16,0 +2020-04-22,Lewis and Clark,Montana,30049,16,0 +2020-04-23,Lewis and Clark,Montana,30049,16,0 +2020-04-24,Lewis and Clark,Montana,30049,16,0 +2020-04-25,Lewis and Clark,Montana,30049,16,0 +2020-04-26,Lewis and Clark,Montana,30049,16,0 +2020-04-27,Lewis and Clark,Montana,30049,16,0 +2020-04-28,Lewis and Clark,Montana,30049,16,0 +2020-04-29,Lewis and Clark,Montana,30049,16,0 +2020-04-30,Lewis and Clark,Montana,30049,16,0 +2020-05-01,Lewis and Clark,Montana,30049,16,0 +2020-05-02,Lewis and Clark,Montana,30049,16,0 +2020-05-03,Lewis and Clark,Montana,30049,16,0 +2020-05-04,Lewis and Clark,Montana,30049,16,0 +2020-05-05,Lewis and Clark,Montana,30049,16,0 +2020-05-06,Lewis and Clark,Montana,30049,16,0 +2020-05-07,Lewis and Clark,Montana,30049,16,0 +2020-05-08,Lewis and Clark,Montana,30049,16,0 +2020-05-09,Lewis and Clark,Montana,30049,16,0 +2020-05-10,Lewis and Clark,Montana,30049,16,0 +2020-05-11,Lewis and Clark,Montana,30049,16,0 +2020-05-12,Lewis and Clark,Montana,30049,16,0 +2020-05-13,Lewis and Clark,Montana,30049,16,0 +2020-05-14,Lewis and Clark,Montana,30049,16,0 +2020-05-15,Lewis and Clark,Montana,30049,16,0 +2020-05-16,Lewis and Clark,Montana,30049,16,0 +2020-05-17,Lewis and Clark,Montana,30049,16,0 +2020-05-18,Lewis and Clark,Montana,30049,16,0 +2020-05-19,Lewis and Clark,Montana,30049,16,0 +2020-05-20,Lewis and Clark,Montana,30049,16,0 +2020-05-21,Lewis and Clark,Montana,30049,16,0 +2020-05-22,Lewis and Clark,Montana,30049,16,0 +2020-05-23,Lewis and Clark,Montana,30049,16,0 +2020-05-24,Lewis and Clark,Montana,30049,16,0 +2020-05-25,Lewis and Clark,Montana,30049,16,0 +2020-05-26,Lewis and Clark,Montana,30049,16,0 +2020-05-27,Lewis and Clark,Montana,30049,16,0 +2020-05-28,Lewis and Clark,Montana,30049,16,0 +2020-05-29,Lewis and Clark,Montana,30049,16,0 +2020-05-30,Lewis and Clark,Montana,30049,16,0 +2020-05-31,Lewis and Clark,Montana,30049,16,0 +2020-06-01,Lewis and Clark,Montana,30049,16,0 +2020-06-02,Lewis and Clark,Montana,30049,16,0 +2020-06-03,Lewis and Clark,Montana,30049,16,0 +2020-06-04,Lewis and Clark,Montana,30049,16,0 +2020-06-05,Lewis and Clark,Montana,30049,18,0 +2020-06-06,Lewis and Clark,Montana,30049,18,0 +2020-06-07,Lewis and Clark,Montana,30049,18,0 +2020-06-08,Lewis and Clark,Montana,30049,18,0 +2020-06-09,Lewis and Clark,Montana,30049,18,0 +2020-06-10,Lewis and Clark,Montana,30049,18,0 +2020-06-11,Lewis and Clark,Montana,30049,18,0 +2020-06-12,Lewis and Clark,Montana,30049,19,0 +2020-06-13,Lewis and Clark,Montana,30049,19,0 +2020-06-14,Lewis and Clark,Montana,30049,20,0 +2020-06-15,Lewis and Clark,Montana,30049,20,0 +2020-06-16,Lewis and Clark,Montana,30049,20,0 +2020-06-17,Lewis and Clark,Montana,30049,20,0 +2020-06-18,Lewis and Clark,Montana,30049,20,0 +2020-06-19,Lewis and Clark,Montana,30049,22,0 +2020-06-20,Lewis and Clark,Montana,30049,22,0 +2020-06-21,Lewis and Clark,Montana,30049,22,0 +2020-06-22,Lewis and Clark,Montana,30049,23,0 +2020-06-23,Lewis and Clark,Montana,30049,24,0 +2020-06-24,Lewis and Clark,Montana,30049,24,0 +2020-06-25,Lewis and Clark,Montana,30049,24,0 +2020-06-26,Lewis and Clark,Montana,30049,24,0 +2020-06-27,Lewis and Clark,Montana,30049,25,0 +2020-06-28,Lewis and Clark,Montana,30049,25,0 +2020-06-29,Lewis and Clark,Montana,30049,25,0 +2020-06-30,Lewis and Clark,Montana,30049,26,0 +2020-07-01,Lewis and Clark,Montana,30049,28,0 +2020-07-02,Lewis and Clark,Montana,30049,29,0 +2020-07-03,Lewis and Clark,Montana,30049,30,0 +2020-07-04,Lewis and Clark,Montana,30049,31,0 +2020-07-05,Lewis and Clark,Montana,30049,32,0 +2020-07-06,Lewis and Clark,Montana,30049,35,0 +2020-07-07,Lewis and Clark,Montana,30049,36,0 +2020-07-08,Lewis and Clark,Montana,30049,39,0 +2020-07-09,Lewis and Clark,Montana,30049,40,0 +2020-03-31,Liberty,Montana,30051,1,0 +2020-04-01,Liberty,Montana,30051,1,0 +2020-04-02,Liberty,Montana,30051,1,0 +2020-04-03,Liberty,Montana,30051,1,0 +2020-04-04,Liberty,Montana,30051,1,0 +2020-04-05,Liberty,Montana,30051,1,0 +2020-04-06,Liberty,Montana,30051,1,0 +2020-04-07,Liberty,Montana,30051,1,0 +2020-04-08,Liberty,Montana,30051,1,0 +2020-04-09,Liberty,Montana,30051,1,0 +2020-04-10,Liberty,Montana,30051,1,0 +2020-04-11,Liberty,Montana,30051,1,0 +2020-04-12,Liberty,Montana,30051,1,0 +2020-04-13,Liberty,Montana,30051,1,0 +2020-04-14,Liberty,Montana,30051,1,0 +2020-04-15,Liberty,Montana,30051,1,0 +2020-04-16,Liberty,Montana,30051,1,0 +2020-04-17,Liberty,Montana,30051,1,0 +2020-04-18,Liberty,Montana,30051,1,0 +2020-04-19,Liberty,Montana,30051,1,0 +2020-04-20,Liberty,Montana,30051,1,0 +2020-04-21,Liberty,Montana,30051,1,0 +2020-04-22,Liberty,Montana,30051,1,0 +2020-04-23,Liberty,Montana,30051,1,0 +2020-04-24,Liberty,Montana,30051,1,0 +2020-04-25,Liberty,Montana,30051,1,0 +2020-04-26,Liberty,Montana,30051,1,0 +2020-04-27,Liberty,Montana,30051,1,0 +2020-04-28,Liberty,Montana,30051,1,0 +2020-04-29,Liberty,Montana,30051,1,0 +2020-04-30,Liberty,Montana,30051,1,0 +2020-05-01,Liberty,Montana,30051,1,0 +2020-05-02,Liberty,Montana,30051,1,0 +2020-05-03,Liberty,Montana,30051,1,0 +2020-05-04,Liberty,Montana,30051,1,0 +2020-05-05,Liberty,Montana,30051,1,0 +2020-05-06,Liberty,Montana,30051,1,0 +2020-05-07,Liberty,Montana,30051,1,0 +2020-05-08,Liberty,Montana,30051,1,0 +2020-05-09,Liberty,Montana,30051,1,0 +2020-05-10,Liberty,Montana,30051,1,0 +2020-05-11,Liberty,Montana,30051,1,0 +2020-05-12,Liberty,Montana,30051,1,0 +2020-05-13,Liberty,Montana,30051,1,0 +2020-05-14,Liberty,Montana,30051,1,0 +2020-05-15,Liberty,Montana,30051,1,0 +2020-05-16,Liberty,Montana,30051,1,0 +2020-05-17,Liberty,Montana,30051,1,0 +2020-05-18,Liberty,Montana,30051,1,0 +2020-05-19,Liberty,Montana,30051,1,0 +2020-05-20,Liberty,Montana,30051,1,0 +2020-05-21,Liberty,Montana,30051,1,0 +2020-05-22,Liberty,Montana,30051,1,0 +2020-05-23,Liberty,Montana,30051,1,0 +2020-05-24,Liberty,Montana,30051,1,0 +2020-05-25,Liberty,Montana,30051,1,0 +2020-05-26,Liberty,Montana,30051,1,0 +2020-05-27,Liberty,Montana,30051,1,0 +2020-05-28,Liberty,Montana,30051,1,0 +2020-05-29,Liberty,Montana,30051,1,0 +2020-05-30,Liberty,Montana,30051,1,0 +2020-05-31,Liberty,Montana,30051,1,0 +2020-06-01,Liberty,Montana,30051,1,0 +2020-06-02,Liberty,Montana,30051,1,0 +2020-06-03,Liberty,Montana,30051,1,0 +2020-06-04,Liberty,Montana,30051,1,0 +2020-06-05,Liberty,Montana,30051,1,0 +2020-06-06,Liberty,Montana,30051,1,0 +2020-06-07,Liberty,Montana,30051,1,0 +2020-06-08,Liberty,Montana,30051,1,0 +2020-06-09,Liberty,Montana,30051,1,0 +2020-06-10,Liberty,Montana,30051,1,0 +2020-06-11,Liberty,Montana,30051,1,0 +2020-06-12,Liberty,Montana,30051,1,0 +2020-06-13,Liberty,Montana,30051,1,0 +2020-06-14,Liberty,Montana,30051,1,0 +2020-06-15,Liberty,Montana,30051,1,0 +2020-06-16,Liberty,Montana,30051,1,0 +2020-06-17,Liberty,Montana,30051,1,0 +2020-06-18,Liberty,Montana,30051,1,0 +2020-06-19,Liberty,Montana,30051,1,0 +2020-06-20,Liberty,Montana,30051,1,0 +2020-06-21,Liberty,Montana,30051,1,0 +2020-06-22,Liberty,Montana,30051,1,0 +2020-06-23,Liberty,Montana,30051,1,0 +2020-06-24,Liberty,Montana,30051,1,0 +2020-06-25,Liberty,Montana,30051,1,0 +2020-06-26,Liberty,Montana,30051,1,0 +2020-06-27,Liberty,Montana,30051,1,0 +2020-06-28,Liberty,Montana,30051,1,0 +2020-06-29,Liberty,Montana,30051,1,0 +2020-06-30,Liberty,Montana,30051,1,0 +2020-07-01,Liberty,Montana,30051,1,0 +2020-07-02,Liberty,Montana,30051,1,0 +2020-07-03,Liberty,Montana,30051,1,0 +2020-07-04,Liberty,Montana,30051,1,0 +2020-07-05,Liberty,Montana,30051,1,0 +2020-07-06,Liberty,Montana,30051,1,0 +2020-07-07,Liberty,Montana,30051,1,0 +2020-07-08,Liberty,Montana,30051,1,0 +2020-07-09,Liberty,Montana,30051,1,0 +2020-03-26,Lincoln,Montana,30053,1,0 +2020-03-27,Lincoln,Montana,30053,3,1 +2020-03-28,Lincoln,Montana,30053,3,1 +2020-03-29,Lincoln,Montana,30053,4,1 +2020-03-30,Lincoln,Montana,30053,4,1 +2020-03-31,Lincoln,Montana,30053,5,1 +2020-04-01,Lincoln,Montana,30053,6,1 +2020-04-02,Lincoln,Montana,30053,6,1 +2020-04-03,Lincoln,Montana,30053,6,1 +2020-04-04,Lincoln,Montana,30053,6,1 +2020-04-05,Lincoln,Montana,30053,7,1 +2020-04-06,Lincoln,Montana,30053,7,1 +2020-04-07,Lincoln,Montana,30053,7,1 +2020-04-08,Lincoln,Montana,30053,7,1 +2020-04-09,Lincoln,Montana,30053,7,1 +2020-04-10,Lincoln,Montana,30053,7,1 +2020-04-11,Lincoln,Montana,30053,7,1 +2020-04-12,Lincoln,Montana,30053,7,1 +2020-04-13,Lincoln,Montana,30053,7,1 +2020-04-14,Lincoln,Montana,30053,7,1 +2020-04-15,Lincoln,Montana,30053,7,1 +2020-04-16,Lincoln,Montana,30053,7,1 +2020-04-17,Lincoln,Montana,30053,7,1 +2020-04-18,Lincoln,Montana,30053,7,1 +2020-04-19,Lincoln,Montana,30053,7,1 +2020-04-20,Lincoln,Montana,30053,7,1 +2020-04-21,Lincoln,Montana,30053,7,1 +2020-04-22,Lincoln,Montana,30053,7,1 +2020-04-23,Lincoln,Montana,30053,7,1 +2020-04-24,Lincoln,Montana,30053,7,1 +2020-04-25,Lincoln,Montana,30053,7,1 +2020-04-26,Lincoln,Montana,30053,7,1 +2020-04-27,Lincoln,Montana,30053,7,1 +2020-04-28,Lincoln,Montana,30053,7,1 +2020-04-29,Lincoln,Montana,30053,7,1 +2020-04-30,Lincoln,Montana,30053,7,1 +2020-05-01,Lincoln,Montana,30053,7,1 +2020-05-02,Lincoln,Montana,30053,7,1 +2020-05-03,Lincoln,Montana,30053,7,1 +2020-05-04,Lincoln,Montana,30053,7,1 +2020-05-05,Lincoln,Montana,30053,7,1 +2020-05-06,Lincoln,Montana,30053,7,1 +2020-05-07,Lincoln,Montana,30053,7,1 +2020-05-08,Lincoln,Montana,30053,7,1 +2020-05-09,Lincoln,Montana,30053,7,1 +2020-05-10,Lincoln,Montana,30053,7,1 +2020-05-11,Lincoln,Montana,30053,7,1 +2020-05-12,Lincoln,Montana,30053,7,1 +2020-05-13,Lincoln,Montana,30053,7,1 +2020-05-14,Lincoln,Montana,30053,7,1 +2020-05-15,Lincoln,Montana,30053,7,1 +2020-05-16,Lincoln,Montana,30053,7,1 +2020-05-17,Lincoln,Montana,30053,7,1 +2020-05-18,Lincoln,Montana,30053,7,1 +2020-05-19,Lincoln,Montana,30053,7,1 +2020-05-20,Lincoln,Montana,30053,7,1 +2020-05-21,Lincoln,Montana,30053,7,1 +2020-05-22,Lincoln,Montana,30053,7,1 +2020-05-23,Lincoln,Montana,30053,7,1 +2020-05-24,Lincoln,Montana,30053,7,1 +2020-05-25,Lincoln,Montana,30053,7,1 +2020-05-26,Lincoln,Montana,30053,7,1 +2020-05-27,Lincoln,Montana,30053,7,1 +2020-05-28,Lincoln,Montana,30053,7,1 +2020-05-29,Lincoln,Montana,30053,7,1 +2020-05-30,Lincoln,Montana,30053,7,1 +2020-05-31,Lincoln,Montana,30053,7,1 +2020-06-01,Lincoln,Montana,30053,7,1 +2020-06-02,Lincoln,Montana,30053,7,1 +2020-06-03,Lincoln,Montana,30053,7,1 +2020-06-04,Lincoln,Montana,30053,7,1 +2020-06-05,Lincoln,Montana,30053,7,1 +2020-06-06,Lincoln,Montana,30053,7,1 +2020-06-07,Lincoln,Montana,30053,7,1 +2020-06-08,Lincoln,Montana,30053,7,1 +2020-06-09,Lincoln,Montana,30053,7,1 +2020-06-10,Lincoln,Montana,30053,7,1 +2020-06-11,Lincoln,Montana,30053,7,1 +2020-06-12,Lincoln,Montana,30053,7,1 +2020-06-13,Lincoln,Montana,30053,7,1 +2020-06-14,Lincoln,Montana,30053,7,1 +2020-06-15,Lincoln,Montana,30053,7,1 +2020-06-16,Lincoln,Montana,30053,7,1 +2020-06-17,Lincoln,Montana,30053,7,1 +2020-06-18,Lincoln,Montana,30053,7,1 +2020-06-19,Lincoln,Montana,30053,7,1 +2020-06-20,Lincoln,Montana,30053,7,1 +2020-06-21,Lincoln,Montana,30053,7,1 +2020-06-22,Lincoln,Montana,30053,7,1 +2020-06-23,Lincoln,Montana,30053,7,1 +2020-06-24,Lincoln,Montana,30053,7,1 +2020-06-25,Lincoln,Montana,30053,7,1 +2020-06-26,Lincoln,Montana,30053,7,1 +2020-06-27,Lincoln,Montana,30053,7,1 +2020-06-28,Lincoln,Montana,30053,7,1 +2020-06-29,Lincoln,Montana,30053,8,1 +2020-06-30,Lincoln,Montana,30053,8,1 +2020-07-01,Lincoln,Montana,30053,8,1 +2020-07-02,Lincoln,Montana,30053,8,1 +2020-07-03,Lincoln,Montana,30053,8,1 +2020-07-04,Lincoln,Montana,30053,9,1 +2020-07-05,Lincoln,Montana,30053,9,1 +2020-07-06,Lincoln,Montana,30053,9,1 +2020-07-07,Lincoln,Montana,30053,9,1 +2020-07-08,Lincoln,Montana,30053,9,1 +2020-07-09,Lincoln,Montana,30053,11,1 +2020-03-19,Madison,Montana,30057,1,0 +2020-03-20,Madison,Montana,30057,1,0 +2020-03-21,Madison,Montana,30057,1,0 +2020-03-22,Madison,Montana,30057,1,0 +2020-03-23,Madison,Montana,30057,1,0 +2020-03-24,Madison,Montana,30057,1,0 +2020-03-25,Madison,Montana,30057,2,0 +2020-03-26,Madison,Montana,30057,2,0 +2020-03-27,Madison,Montana,30057,3,0 +2020-03-28,Madison,Montana,30057,3,0 +2020-03-29,Madison,Montana,30057,4,0 +2020-03-30,Madison,Montana,30057,4,1 +2020-03-31,Madison,Montana,30057,6,1 +2020-04-01,Madison,Montana,30057,6,1 +2020-04-02,Madison,Montana,30057,6,1 +2020-04-03,Madison,Montana,30057,6,1 +2020-04-04,Madison,Montana,30057,6,1 +2020-04-05,Madison,Montana,30057,9,1 +2020-04-06,Madison,Montana,30057,9,1 +2020-04-07,Madison,Montana,30057,9,1 +2020-04-08,Madison,Montana,30057,9,1 +2020-04-09,Madison,Montana,30057,8,1 +2020-04-10,Madison,Montana,30057,8,1 +2020-04-11,Madison,Montana,30057,8,1 +2020-04-12,Madison,Montana,30057,8,1 +2020-04-13,Madison,Montana,30057,8,1 +2020-04-14,Madison,Montana,30057,8,1 +2020-04-15,Madison,Montana,30057,8,1 +2020-04-16,Madison,Montana,30057,8,1 +2020-04-17,Madison,Montana,30057,8,1 +2020-04-18,Madison,Montana,30057,8,1 +2020-04-19,Madison,Montana,30057,8,1 +2020-04-20,Madison,Montana,30057,8,1 +2020-04-21,Madison,Montana,30057,8,1 +2020-04-22,Madison,Montana,30057,8,1 +2020-04-23,Madison,Montana,30057,8,1 +2020-04-24,Madison,Montana,30057,8,1 +2020-04-25,Madison,Montana,30057,8,1 +2020-04-26,Madison,Montana,30057,8,1 +2020-04-27,Madison,Montana,30057,8,1 +2020-04-28,Madison,Montana,30057,8,1 +2020-04-29,Madison,Montana,30057,8,1 +2020-04-30,Madison,Montana,30057,8,1 +2020-05-01,Madison,Montana,30057,8,1 +2020-05-02,Madison,Montana,30057,8,1 +2020-05-03,Madison,Montana,30057,8,1 +2020-05-04,Madison,Montana,30057,8,1 +2020-05-05,Madison,Montana,30057,8,1 +2020-05-06,Madison,Montana,30057,8,1 +2020-05-07,Madison,Montana,30057,8,1 +2020-05-08,Madison,Montana,30057,8,1 +2020-05-09,Madison,Montana,30057,8,1 +2020-05-10,Madison,Montana,30057,8,1 +2020-05-11,Madison,Montana,30057,8,1 +2020-05-12,Madison,Montana,30057,8,1 +2020-05-13,Madison,Montana,30057,8,1 +2020-05-14,Madison,Montana,30057,8,1 +2020-05-15,Madison,Montana,30057,8,1 +2020-05-16,Madison,Montana,30057,8,1 +2020-05-17,Madison,Montana,30057,8,1 +2020-05-18,Madison,Montana,30057,8,1 +2020-05-19,Madison,Montana,30057,8,1 +2020-05-20,Madison,Montana,30057,8,1 +2020-05-21,Madison,Montana,30057,8,1 +2020-05-22,Madison,Montana,30057,8,1 +2020-05-23,Madison,Montana,30057,8,1 +2020-05-24,Madison,Montana,30057,8,1 +2020-05-25,Madison,Montana,30057,8,1 +2020-05-26,Madison,Montana,30057,8,1 +2020-05-27,Madison,Montana,30057,8,1 +2020-05-28,Madison,Montana,30057,8,1 +2020-05-29,Madison,Montana,30057,8,1 +2020-05-30,Madison,Montana,30057,8,1 +2020-05-31,Madison,Montana,30057,8,1 +2020-06-01,Madison,Montana,30057,8,1 +2020-06-02,Madison,Montana,30057,8,1 +2020-06-03,Madison,Montana,30057,8,1 +2020-06-04,Madison,Montana,30057,8,1 +2020-06-05,Madison,Montana,30057,8,1 +2020-06-06,Madison,Montana,30057,8,1 +2020-06-07,Madison,Montana,30057,8,1 +2020-06-08,Madison,Montana,30057,8,1 +2020-06-09,Madison,Montana,30057,8,1 +2020-06-10,Madison,Montana,30057,8,1 +2020-06-11,Madison,Montana,30057,8,1 +2020-06-12,Madison,Montana,30057,8,1 +2020-06-13,Madison,Montana,30057,8,1 +2020-06-14,Madison,Montana,30057,8,1 +2020-06-15,Madison,Montana,30057,8,1 +2020-06-16,Madison,Montana,30057,8,1 +2020-06-17,Madison,Montana,30057,8,1 +2020-06-18,Madison,Montana,30057,8,1 +2020-06-19,Madison,Montana,30057,8,1 +2020-06-20,Madison,Montana,30057,8,1 +2020-06-21,Madison,Montana,30057,8,1 +2020-06-22,Madison,Montana,30057,8,1 +2020-06-23,Madison,Montana,30057,8,1 +2020-06-24,Madison,Montana,30057,8,1 +2020-06-25,Madison,Montana,30057,8,1 +2020-06-26,Madison,Montana,30057,8,1 +2020-06-27,Madison,Montana,30057,8,1 +2020-06-28,Madison,Montana,30057,8,1 +2020-06-29,Madison,Montana,30057,8,1 +2020-06-30,Madison,Montana,30057,8,1 +2020-07-01,Madison,Montana,30057,8,1 +2020-07-02,Madison,Montana,30057,11,1 +2020-07-03,Madison,Montana,30057,13,1 +2020-07-04,Madison,Montana,30057,15,1 +2020-07-05,Madison,Montana,30057,17,1 +2020-07-06,Madison,Montana,30057,18,1 +2020-07-07,Madison,Montana,30057,19,1 +2020-07-08,Madison,Montana,30057,21,1 +2020-07-09,Madison,Montana,30057,22,1 +2020-03-26,Meagher,Montana,30059,1,0 +2020-03-27,Meagher,Montana,30059,1,0 +2020-03-28,Meagher,Montana,30059,1,0 +2020-03-29,Meagher,Montana,30059,1,0 +2020-03-30,Meagher,Montana,30059,1,0 +2020-03-31,Meagher,Montana,30059,1,0 +2020-04-01,Meagher,Montana,30059,1,0 +2020-04-02,Meagher,Montana,30059,1,0 +2020-04-03,Meagher,Montana,30059,1,0 +2020-04-04,Meagher,Montana,30059,1,0 +2020-04-05,Meagher,Montana,30059,1,0 +2020-04-06,Meagher,Montana,30059,1,0 +2020-04-07,Meagher,Montana,30059,1,0 +2020-04-08,Meagher,Montana,30059,1,0 +2020-04-09,Meagher,Montana,30059,1,0 +2020-04-10,Meagher,Montana,30059,1,0 +2020-04-11,Meagher,Montana,30059,1,0 +2020-04-12,Meagher,Montana,30059,1,0 +2020-04-13,Meagher,Montana,30059,1,0 +2020-04-14,Meagher,Montana,30059,1,0 +2020-04-15,Meagher,Montana,30059,1,0 +2020-04-16,Meagher,Montana,30059,1,0 +2020-04-17,Meagher,Montana,30059,1,0 +2020-04-18,Meagher,Montana,30059,1,0 +2020-04-19,Meagher,Montana,30059,1,0 +2020-04-20,Meagher,Montana,30059,1,0 +2020-04-21,Meagher,Montana,30059,1,0 +2020-04-22,Meagher,Montana,30059,1,0 +2020-04-23,Meagher,Montana,30059,1,0 +2020-04-24,Meagher,Montana,30059,1,0 +2020-04-25,Meagher,Montana,30059,1,0 +2020-04-26,Meagher,Montana,30059,1,0 +2020-04-27,Meagher,Montana,30059,1,0 +2020-04-28,Meagher,Montana,30059,1,0 +2020-04-29,Meagher,Montana,30059,1,0 +2020-04-30,Meagher,Montana,30059,1,0 +2020-05-01,Meagher,Montana,30059,1,0 +2020-05-02,Meagher,Montana,30059,1,0 +2020-05-03,Meagher,Montana,30059,1,0 +2020-05-04,Meagher,Montana,30059,1,0 +2020-05-05,Meagher,Montana,30059,1,0 +2020-05-06,Meagher,Montana,30059,1,0 +2020-05-07,Meagher,Montana,30059,1,0 +2020-05-08,Meagher,Montana,30059,1,0 +2020-05-09,Meagher,Montana,30059,1,0 +2020-05-10,Meagher,Montana,30059,1,0 +2020-05-11,Meagher,Montana,30059,1,0 +2020-05-12,Meagher,Montana,30059,1,0 +2020-05-13,Meagher,Montana,30059,1,0 +2020-05-14,Meagher,Montana,30059,1,0 +2020-05-15,Meagher,Montana,30059,1,0 +2020-05-16,Meagher,Montana,30059,1,0 +2020-05-17,Meagher,Montana,30059,1,0 +2020-05-18,Meagher,Montana,30059,1,0 +2020-05-19,Meagher,Montana,30059,1,0 +2020-05-20,Meagher,Montana,30059,1,0 +2020-05-21,Meagher,Montana,30059,1,0 +2020-05-22,Meagher,Montana,30059,1,0 +2020-05-23,Meagher,Montana,30059,1,0 +2020-05-24,Meagher,Montana,30059,1,0 +2020-05-25,Meagher,Montana,30059,1,0 +2020-05-26,Meagher,Montana,30059,1,0 +2020-05-27,Meagher,Montana,30059,1,0 +2020-05-28,Meagher,Montana,30059,1,0 +2020-05-29,Meagher,Montana,30059,1,0 +2020-05-30,Meagher,Montana,30059,1,0 +2020-05-31,Meagher,Montana,30059,1,0 +2020-06-01,Meagher,Montana,30059,1,0 +2020-06-02,Meagher,Montana,30059,1,0 +2020-06-03,Meagher,Montana,30059,1,0 +2020-06-04,Meagher,Montana,30059,1,0 +2020-06-05,Meagher,Montana,30059,1,0 +2020-06-06,Meagher,Montana,30059,1,0 +2020-06-07,Meagher,Montana,30059,1,0 +2020-06-08,Meagher,Montana,30059,1,0 +2020-06-09,Meagher,Montana,30059,1,0 +2020-06-10,Meagher,Montana,30059,1,0 +2020-06-11,Meagher,Montana,30059,1,0 +2020-06-12,Meagher,Montana,30059,1,0 +2020-06-13,Meagher,Montana,30059,1,0 +2020-06-14,Meagher,Montana,30059,1,0 +2020-06-15,Meagher,Montana,30059,1,0 +2020-06-16,Meagher,Montana,30059,1,0 +2020-06-17,Meagher,Montana,30059,1,0 +2020-06-18,Meagher,Montana,30059,1,0 +2020-06-19,Meagher,Montana,30059,1,0 +2020-06-20,Meagher,Montana,30059,1,0 +2020-06-21,Meagher,Montana,30059,1,0 +2020-06-22,Meagher,Montana,30059,1,0 +2020-06-23,Meagher,Montana,30059,1,0 +2020-06-24,Meagher,Montana,30059,1,0 +2020-06-25,Meagher,Montana,30059,1,0 +2020-06-26,Meagher,Montana,30059,1,0 +2020-06-27,Meagher,Montana,30059,1,0 +2020-06-28,Meagher,Montana,30059,1,0 +2020-06-29,Meagher,Montana,30059,1,0 +2020-06-30,Meagher,Montana,30059,2,0 +2020-07-01,Meagher,Montana,30059,2,0 +2020-07-02,Meagher,Montana,30059,2,0 +2020-07-03,Meagher,Montana,30059,2,0 +2020-07-04,Meagher,Montana,30059,2,0 +2020-07-05,Meagher,Montana,30059,2,0 +2020-07-06,Meagher,Montana,30059,2,0 +2020-07-07,Meagher,Montana,30059,2,0 +2020-07-08,Meagher,Montana,30059,4,0 +2020-07-09,Meagher,Montana,30059,4,0 +2020-03-14,Missoula,Montana,30063,2,0 +2020-03-15,Missoula,Montana,30063,2,0 +2020-03-16,Missoula,Montana,30063,2,0 +2020-03-17,Missoula,Montana,30063,2,0 +2020-03-18,Missoula,Montana,30063,3,0 +2020-03-19,Missoula,Montana,30063,4,0 +2020-03-20,Missoula,Montana,30063,4,0 +2020-03-21,Missoula,Montana,30063,4,0 +2020-03-22,Missoula,Montana,30063,4,0 +2020-03-23,Missoula,Montana,30063,6,0 +2020-03-24,Missoula,Montana,30063,6,0 +2020-03-25,Missoula,Montana,30063,6,0 +2020-03-26,Missoula,Montana,30063,7,0 +2020-03-27,Missoula,Montana,30063,8,0 +2020-03-28,Missoula,Montana,30063,9,0 +2020-03-29,Missoula,Montana,30063,11,0 +2020-03-30,Missoula,Montana,30063,12,0 +2020-03-31,Missoula,Montana,30063,14,0 +2020-04-01,Missoula,Montana,30063,15,0 +2020-04-02,Missoula,Montana,30063,17,0 +2020-04-03,Missoula,Montana,30063,17,0 +2020-04-04,Missoula,Montana,30063,19,1 +2020-04-05,Missoula,Montana,30063,21,1 +2020-04-06,Missoula,Montana,30063,24,1 +2020-04-07,Missoula,Montana,30063,24,1 +2020-04-08,Missoula,Montana,30063,25,1 +2020-04-09,Missoula,Montana,30063,26,1 +2020-04-10,Missoula,Montana,30063,26,1 +2020-04-11,Missoula,Montana,30063,29,1 +2020-04-12,Missoula,Montana,30063,30,1 +2020-04-13,Missoula,Montana,30063,30,1 +2020-04-14,Missoula,Montana,30063,30,1 +2020-04-15,Missoula,Montana,30063,30,1 +2020-04-16,Missoula,Montana,30063,33,1 +2020-04-17,Missoula,Montana,30063,34,1 +2020-04-18,Missoula,Montana,30063,35,1 +2020-04-19,Missoula,Montana,30063,38,1 +2020-04-20,Missoula,Montana,30063,38,1 +2020-04-21,Missoula,Montana,30063,38,1 +2020-04-22,Missoula,Montana,30063,39,1 +2020-04-23,Missoula,Montana,30063,39,1 +2020-04-24,Missoula,Montana,30063,39,1 +2020-04-25,Missoula,Montana,30063,39,1 +2020-04-26,Missoula,Montana,30063,39,1 +2020-04-27,Missoula,Montana,30063,39,1 +2020-04-28,Missoula,Montana,30063,39,1 +2020-04-29,Missoula,Montana,30063,39,1 +2020-04-30,Missoula,Montana,30063,39,1 +2020-05-01,Missoula,Montana,30063,39,1 +2020-05-02,Missoula,Montana,30063,39,1 +2020-05-03,Missoula,Montana,30063,39,1 +2020-05-04,Missoula,Montana,30063,39,1 +2020-05-05,Missoula,Montana,30063,39,1 +2020-05-06,Missoula,Montana,30063,39,1 +2020-05-07,Missoula,Montana,30063,39,1 +2020-05-08,Missoula,Montana,30063,39,1 +2020-05-09,Missoula,Montana,30063,39,1 +2020-05-10,Missoula,Montana,30063,39,1 +2020-05-11,Missoula,Montana,30063,39,1 +2020-05-12,Missoula,Montana,30063,39,1 +2020-05-13,Missoula,Montana,30063,39,1 +2020-05-14,Missoula,Montana,30063,39,1 +2020-05-15,Missoula,Montana,30063,39,1 +2020-05-16,Missoula,Montana,30063,39,1 +2020-05-17,Missoula,Montana,30063,39,1 +2020-05-18,Missoula,Montana,30063,39,1 +2020-05-19,Missoula,Montana,30063,39,1 +2020-05-20,Missoula,Montana,30063,39,1 +2020-05-21,Missoula,Montana,30063,39,1 +2020-05-22,Missoula,Montana,30063,39,1 +2020-05-23,Missoula,Montana,30063,39,1 +2020-05-24,Missoula,Montana,30063,39,1 +2020-05-25,Missoula,Montana,30063,39,1 +2020-05-26,Missoula,Montana,30063,39,1 +2020-05-27,Missoula,Montana,30063,39,1 +2020-05-28,Missoula,Montana,30063,39,1 +2020-05-29,Missoula,Montana,30063,40,1 +2020-05-30,Missoula,Montana,30063,40,1 +2020-05-31,Missoula,Montana,30063,40,1 +2020-06-01,Missoula,Montana,30063,40,1 +2020-06-02,Missoula,Montana,30063,40,1 +2020-06-03,Missoula,Montana,30063,40,1 +2020-06-04,Missoula,Montana,30063,40,1 +2020-06-05,Missoula,Montana,30063,40,1 +2020-06-06,Missoula,Montana,30063,40,1 +2020-06-07,Missoula,Montana,30063,40,1 +2020-06-08,Missoula,Montana,30063,40,1 +2020-06-09,Missoula,Montana,30063,40,1 +2020-06-10,Missoula,Montana,30063,39,1 +2020-06-11,Missoula,Montana,30063,39,1 +2020-06-12,Missoula,Montana,30063,39,1 +2020-06-13,Missoula,Montana,30063,40,1 +2020-06-14,Missoula,Montana,30063,40,1 +2020-06-15,Missoula,Montana,30063,40,1 +2020-06-16,Missoula,Montana,30063,42,1 +2020-06-17,Missoula,Montana,30063,44,1 +2020-06-18,Missoula,Montana,30063,46,1 +2020-06-19,Missoula,Montana,30063,46,1 +2020-06-20,Missoula,Montana,30063,48,1 +2020-06-21,Missoula,Montana,30063,49,1 +2020-06-22,Missoula,Montana,30063,49,1 +2020-06-23,Missoula,Montana,30063,49,1 +2020-06-24,Missoula,Montana,30063,54,1 +2020-06-25,Missoula,Montana,30063,58,1 +2020-06-26,Missoula,Montana,30063,63,1 +2020-06-27,Missoula,Montana,30063,66,1 +2020-06-28,Missoula,Montana,30063,66,1 +2020-06-29,Missoula,Montana,30063,66,1 +2020-06-30,Missoula,Montana,30063,86,1 +2020-07-01,Missoula,Montana,30063,89,1 +2020-07-02,Missoula,Montana,30063,99,1 +2020-07-03,Missoula,Montana,30063,105,1 +2020-07-04,Missoula,Montana,30063,106,1 +2020-07-05,Missoula,Montana,30063,107,1 +2020-07-06,Missoula,Montana,30063,121,1 +2020-07-07,Missoula,Montana,30063,121,1 +2020-07-08,Missoula,Montana,30063,121,1 +2020-07-09,Missoula,Montana,30063,123,1 +2020-03-31,Musselshell,Montana,30065,1,0 +2020-04-01,Musselshell,Montana,30065,1,0 +2020-04-02,Musselshell,Montana,30065,1,0 +2020-04-03,Musselshell,Montana,30065,1,0 +2020-04-04,Musselshell,Montana,30065,1,0 +2020-04-05,Musselshell,Montana,30065,1,0 +2020-04-06,Musselshell,Montana,30065,1,0 +2020-04-07,Musselshell,Montana,30065,1,0 +2020-04-08,Musselshell,Montana,30065,1,0 +2020-04-09,Musselshell,Montana,30065,1,0 +2020-04-10,Musselshell,Montana,30065,1,0 +2020-04-11,Musselshell,Montana,30065,1,0 +2020-04-12,Musselshell,Montana,30065,1,0 +2020-04-13,Musselshell,Montana,30065,1,0 +2020-04-14,Musselshell,Montana,30065,1,0 +2020-04-15,Musselshell,Montana,30065,1,0 +2020-04-16,Musselshell,Montana,30065,3,0 +2020-04-17,Musselshell,Montana,30065,1,0 +2020-04-18,Musselshell,Montana,30065,1,0 +2020-04-19,Musselshell,Montana,30065,1,0 +2020-04-20,Musselshell,Montana,30065,1,0 +2020-04-21,Musselshell,Montana,30065,1,0 +2020-04-22,Musselshell,Montana,30065,1,0 +2020-04-23,Musselshell,Montana,30065,1,0 +2020-04-24,Musselshell,Montana,30065,1,0 +2020-04-25,Musselshell,Montana,30065,1,0 +2020-04-26,Musselshell,Montana,30065,1,0 +2020-04-27,Musselshell,Montana,30065,1,0 +2020-04-28,Musselshell,Montana,30065,1,0 +2020-04-29,Musselshell,Montana,30065,1,0 +2020-04-30,Musselshell,Montana,30065,1,0 +2020-05-01,Musselshell,Montana,30065,1,0 +2020-05-02,Musselshell,Montana,30065,1,0 +2020-05-03,Musselshell,Montana,30065,1,0 +2020-05-04,Musselshell,Montana,30065,1,0 +2020-05-05,Musselshell,Montana,30065,1,0 +2020-05-06,Musselshell,Montana,30065,1,0 +2020-05-07,Musselshell,Montana,30065,1,0 +2020-05-08,Musselshell,Montana,30065,1,0 +2020-05-09,Musselshell,Montana,30065,1,0 +2020-05-10,Musselshell,Montana,30065,1,0 +2020-05-11,Musselshell,Montana,30065,1,0 +2020-05-12,Musselshell,Montana,30065,1,0 +2020-05-13,Musselshell,Montana,30065,1,0 +2020-05-14,Musselshell,Montana,30065,1,0 +2020-05-15,Musselshell,Montana,30065,1,0 +2020-05-16,Musselshell,Montana,30065,1,0 +2020-05-17,Musselshell,Montana,30065,1,0 +2020-05-18,Musselshell,Montana,30065,1,0 +2020-05-19,Musselshell,Montana,30065,1,0 +2020-05-20,Musselshell,Montana,30065,1,0 +2020-05-21,Musselshell,Montana,30065,1,0 +2020-05-22,Musselshell,Montana,30065,1,0 +2020-05-23,Musselshell,Montana,30065,1,0 +2020-05-24,Musselshell,Montana,30065,1,0 +2020-05-25,Musselshell,Montana,30065,1,0 +2020-05-26,Musselshell,Montana,30065,1,0 +2020-05-27,Musselshell,Montana,30065,1,0 +2020-05-28,Musselshell,Montana,30065,1,0 +2020-05-29,Musselshell,Montana,30065,1,0 +2020-05-30,Musselshell,Montana,30065,1,0 +2020-05-31,Musselshell,Montana,30065,1,0 +2020-06-01,Musselshell,Montana,30065,1,0 +2020-06-02,Musselshell,Montana,30065,1,0 +2020-06-03,Musselshell,Montana,30065,1,0 +2020-06-04,Musselshell,Montana,30065,1,0 +2020-06-05,Musselshell,Montana,30065,1,0 +2020-06-06,Musselshell,Montana,30065,1,0 +2020-06-07,Musselshell,Montana,30065,1,0 +2020-06-08,Musselshell,Montana,30065,1,0 +2020-06-09,Musselshell,Montana,30065,1,0 +2020-06-10,Musselshell,Montana,30065,1,0 +2020-06-11,Musselshell,Montana,30065,1,0 +2020-06-12,Musselshell,Montana,30065,1,0 +2020-06-13,Musselshell,Montana,30065,1,0 +2020-06-14,Musselshell,Montana,30065,1,0 +2020-06-15,Musselshell,Montana,30065,1,0 +2020-06-16,Musselshell,Montana,30065,1,0 +2020-06-17,Musselshell,Montana,30065,1,0 +2020-06-18,Musselshell,Montana,30065,1,0 +2020-06-19,Musselshell,Montana,30065,1,0 +2020-06-20,Musselshell,Montana,30065,1,0 +2020-06-21,Musselshell,Montana,30065,1,0 +2020-06-22,Musselshell,Montana,30065,1,0 +2020-06-23,Musselshell,Montana,30065,1,0 +2020-06-24,Musselshell,Montana,30065,1,0 +2020-06-25,Musselshell,Montana,30065,1,0 +2020-06-26,Musselshell,Montana,30065,1,0 +2020-06-27,Musselshell,Montana,30065,1,0 +2020-06-28,Musselshell,Montana,30065,1,0 +2020-06-29,Musselshell,Montana,30065,1,0 +2020-06-30,Musselshell,Montana,30065,1,0 +2020-07-01,Musselshell,Montana,30065,1,0 +2020-07-02,Musselshell,Montana,30065,1,0 +2020-07-03,Musselshell,Montana,30065,1,0 +2020-07-04,Musselshell,Montana,30065,1,0 +2020-07-05,Musselshell,Montana,30065,1,0 +2020-07-06,Musselshell,Montana,30065,1,0 +2020-07-07,Musselshell,Montana,30065,1,0 +2020-07-08,Musselshell,Montana,30065,1,0 +2020-07-09,Musselshell,Montana,30065,1,0 +2020-03-27,Park,Montana,30067,1,0 +2020-03-28,Park,Montana,30067,2,0 +2020-03-29,Park,Montana,30067,2,0 +2020-03-30,Park,Montana,30067,3,0 +2020-03-31,Park,Montana,30067,3,0 +2020-04-01,Park,Montana,30067,5,0 +2020-04-02,Park,Montana,30067,6,0 +2020-04-03,Park,Montana,30067,6,0 +2020-04-04,Park,Montana,30067,6,0 +2020-04-05,Park,Montana,30067,6,0 +2020-04-06,Park,Montana,30067,6,0 +2020-04-07,Park,Montana,30067,6,0 +2020-04-08,Park,Montana,30067,7,0 +2020-04-09,Park,Montana,30067,7,0 +2020-04-10,Park,Montana,30067,7,0 +2020-04-11,Park,Montana,30067,7,0 +2020-04-12,Park,Montana,30067,7,0 +2020-04-13,Park,Montana,30067,7,0 +2020-04-14,Park,Montana,30067,7,0 +2020-04-15,Park,Montana,30067,7,0 +2020-04-16,Park,Montana,30067,7,0 +2020-04-17,Park,Montana,30067,7,0 +2020-04-18,Park,Montana,30067,7,0 +2020-04-19,Park,Montana,30067,7,0 +2020-04-20,Park,Montana,30067,7,0 +2020-04-21,Park,Montana,30067,7,0 +2020-04-22,Park,Montana,30067,7,0 +2020-04-23,Park,Montana,30067,7,0 +2020-04-24,Park,Montana,30067,7,0 +2020-04-25,Park,Montana,30067,7,0 +2020-04-26,Park,Montana,30067,7,0 +2020-04-27,Park,Montana,30067,7,0 +2020-04-28,Park,Montana,30067,7,0 +2020-04-29,Park,Montana,30067,7,0 +2020-04-30,Park,Montana,30067,8,0 +2020-05-01,Park,Montana,30067,8,0 +2020-05-02,Park,Montana,30067,8,0 +2020-05-03,Park,Montana,30067,8,0 +2020-05-04,Park,Montana,30067,8,0 +2020-05-05,Park,Montana,30067,8,0 +2020-05-06,Park,Montana,30067,8,0 +2020-05-07,Park,Montana,30067,8,0 +2020-05-08,Park,Montana,30067,8,0 +2020-05-09,Park,Montana,30067,8,0 +2020-05-10,Park,Montana,30067,8,0 +2020-05-11,Park,Montana,30067,8,0 +2020-05-12,Park,Montana,30067,8,0 +2020-05-13,Park,Montana,30067,8,0 +2020-05-14,Park,Montana,30067,8,0 +2020-05-15,Park,Montana,30067,8,0 +2020-05-16,Park,Montana,30067,8,0 +2020-05-17,Park,Montana,30067,8,0 +2020-05-18,Park,Montana,30067,8,0 +2020-05-19,Park,Montana,30067,8,0 +2020-05-20,Park,Montana,30067,8,0 +2020-05-21,Park,Montana,30067,8,0 +2020-05-22,Park,Montana,30067,8,0 +2020-05-23,Park,Montana,30067,8,0 +2020-05-24,Park,Montana,30067,8,0 +2020-05-25,Park,Montana,30067,8,0 +2020-05-26,Park,Montana,30067,8,0 +2020-05-27,Park,Montana,30067,8,0 +2020-05-28,Park,Montana,30067,8,0 +2020-05-29,Park,Montana,30067,8,0 +2020-05-30,Park,Montana,30067,8,0 +2020-05-31,Park,Montana,30067,8,0 +2020-06-01,Park,Montana,30067,8,0 +2020-06-02,Park,Montana,30067,8,0 +2020-06-03,Park,Montana,30067,8,0 +2020-06-04,Park,Montana,30067,8,0 +2020-06-05,Park,Montana,30067,8,0 +2020-06-06,Park,Montana,30067,8,0 +2020-06-07,Park,Montana,30067,8,0 +2020-06-08,Park,Montana,30067,8,0 +2020-06-09,Park,Montana,30067,8,0 +2020-06-10,Park,Montana,30067,8,0 +2020-06-11,Park,Montana,30067,8,0 +2020-06-12,Park,Montana,30067,8,0 +2020-06-13,Park,Montana,30067,8,0 +2020-06-14,Park,Montana,30067,8,0 +2020-06-15,Park,Montana,30067,8,0 +2020-06-16,Park,Montana,30067,8,0 +2020-06-17,Park,Montana,30067,8,0 +2020-06-18,Park,Montana,30067,8,0 +2020-06-19,Park,Montana,30067,8,0 +2020-06-20,Park,Montana,30067,9,0 +2020-06-21,Park,Montana,30067,9,0 +2020-06-22,Park,Montana,30067,9,0 +2020-06-23,Park,Montana,30067,9,0 +2020-06-24,Park,Montana,30067,9,0 +2020-06-25,Park,Montana,30067,9,0 +2020-06-26,Park,Montana,30067,8,0 +2020-06-27,Park,Montana,30067,9,0 +2020-06-28,Park,Montana,30067,9,0 +2020-06-29,Park,Montana,30067,9,0 +2020-06-30,Park,Montana,30067,11,0 +2020-07-01,Park,Montana,30067,11,0 +2020-07-02,Park,Montana,30067,12,0 +2020-07-03,Park,Montana,30067,12,0 +2020-07-04,Park,Montana,30067,13,0 +2020-07-05,Park,Montana,30067,13,0 +2020-07-06,Park,Montana,30067,13,0 +2020-07-07,Park,Montana,30067,16,0 +2020-07-08,Park,Montana,30067,16,0 +2020-07-09,Park,Montana,30067,16,0 +2020-04-15,Pondera,Montana,30073,1,0 +2020-04-16,Pondera,Montana,30073,1,0 +2020-04-17,Pondera,Montana,30073,1,0 +2020-04-18,Pondera,Montana,30073,1,0 +2020-04-19,Pondera,Montana,30073,2,0 +2020-04-20,Pondera,Montana,30073,2,0 +2020-04-21,Pondera,Montana,30073,2,0 +2020-04-22,Pondera,Montana,30073,2,0 +2020-04-23,Pondera,Montana,30073,2,0 +2020-04-24,Pondera,Montana,30073,2,0 +2020-04-25,Pondera,Montana,30073,2,0 +2020-04-26,Pondera,Montana,30073,2,0 +2020-04-27,Pondera,Montana,30073,2,0 +2020-04-28,Pondera,Montana,30073,2,0 +2020-04-29,Pondera,Montana,30073,2,0 +2020-04-30,Pondera,Montana,30073,2,0 +2020-05-01,Pondera,Montana,30073,2,0 +2020-05-02,Pondera,Montana,30073,2,0 +2020-05-03,Pondera,Montana,30073,2,0 +2020-05-04,Pondera,Montana,30073,2,0 +2020-05-05,Pondera,Montana,30073,2,0 +2020-05-06,Pondera,Montana,30073,2,0 +2020-05-07,Pondera,Montana,30073,2,0 +2020-05-08,Pondera,Montana,30073,2,0 +2020-05-09,Pondera,Montana,30073,2,0 +2020-05-10,Pondera,Montana,30073,2,0 +2020-05-11,Pondera,Montana,30073,2,0 +2020-05-12,Pondera,Montana,30073,2,0 +2020-05-13,Pondera,Montana,30073,2,0 +2020-05-14,Pondera,Montana,30073,2,0 +2020-05-15,Pondera,Montana,30073,2,0 +2020-05-16,Pondera,Montana,30073,2,0 +2020-05-17,Pondera,Montana,30073,2,0 +2020-05-18,Pondera,Montana,30073,2,0 +2020-05-19,Pondera,Montana,30073,2,0 +2020-05-20,Pondera,Montana,30073,2,0 +2020-05-21,Pondera,Montana,30073,2,0 +2020-05-22,Pondera,Montana,30073,2,0 +2020-05-23,Pondera,Montana,30073,2,0 +2020-05-24,Pondera,Montana,30073,2,0 +2020-05-25,Pondera,Montana,30073,2,0 +2020-05-26,Pondera,Montana,30073,2,0 +2020-05-27,Pondera,Montana,30073,2,0 +2020-05-28,Pondera,Montana,30073,2,0 +2020-05-29,Pondera,Montana,30073,2,0 +2020-05-30,Pondera,Montana,30073,2,0 +2020-05-31,Pondera,Montana,30073,2,0 +2020-06-01,Pondera,Montana,30073,2,0 +2020-06-02,Pondera,Montana,30073,2,0 +2020-06-03,Pondera,Montana,30073,2,0 +2020-06-04,Pondera,Montana,30073,2,0 +2020-06-05,Pondera,Montana,30073,2,0 +2020-06-06,Pondera,Montana,30073,2,0 +2020-06-07,Pondera,Montana,30073,2,0 +2020-06-08,Pondera,Montana,30073,2,0 +2020-06-09,Pondera,Montana,30073,2,0 +2020-06-10,Pondera,Montana,30073,2,0 +2020-06-11,Pondera,Montana,30073,2,0 +2020-06-12,Pondera,Montana,30073,2,0 +2020-06-13,Pondera,Montana,30073,2,0 +2020-06-14,Pondera,Montana,30073,2,0 +2020-06-15,Pondera,Montana,30073,2,0 +2020-06-16,Pondera,Montana,30073,2,0 +2020-06-17,Pondera,Montana,30073,2,0 +2020-06-18,Pondera,Montana,30073,2,0 +2020-06-19,Pondera,Montana,30073,2,0 +2020-06-20,Pondera,Montana,30073,2,0 +2020-06-21,Pondera,Montana,30073,2,0 +2020-06-22,Pondera,Montana,30073,2,0 +2020-06-23,Pondera,Montana,30073,2,0 +2020-06-24,Pondera,Montana,30073,2,0 +2020-06-25,Pondera,Montana,30073,2,0 +2020-06-26,Pondera,Montana,30073,2,0 +2020-06-27,Pondera,Montana,30073,2,0 +2020-06-28,Pondera,Montana,30073,2,0 +2020-06-29,Pondera,Montana,30073,2,0 +2020-06-30,Pondera,Montana,30073,2,0 +2020-07-01,Pondera,Montana,30073,2,0 +2020-07-02,Pondera,Montana,30073,2,0 +2020-07-03,Pondera,Montana,30073,3,0 +2020-07-04,Pondera,Montana,30073,2,0 +2020-07-05,Pondera,Montana,30073,2,0 +2020-07-06,Pondera,Montana,30073,2,0 +2020-07-07,Pondera,Montana,30073,2,0 +2020-07-08,Pondera,Montana,30073,2,0 +2020-07-09,Pondera,Montana,30073,2,0 +2020-03-21,Ravalli,Montana,30081,1,0 +2020-03-22,Ravalli,Montana,30081,1,0 +2020-03-23,Ravalli,Montana,30081,1,0 +2020-03-24,Ravalli,Montana,30081,1,0 +2020-03-25,Ravalli,Montana,30081,1,0 +2020-03-26,Ravalli,Montana,30081,1,0 +2020-03-27,Ravalli,Montana,30081,1,0 +2020-03-28,Ravalli,Montana,30081,1,0 +2020-03-29,Ravalli,Montana,30081,1,0 +2020-03-30,Ravalli,Montana,30081,1,0 +2020-03-31,Ravalli,Montana,30081,1,0 +2020-04-01,Ravalli,Montana,30081,1,0 +2020-04-02,Ravalli,Montana,30081,1,0 +2020-04-03,Ravalli,Montana,30081,1,0 +2020-04-04,Ravalli,Montana,30081,2,0 +2020-04-05,Ravalli,Montana,30081,2,0 +2020-04-06,Ravalli,Montana,30081,2,0 +2020-04-07,Ravalli,Montana,30081,2,0 +2020-04-08,Ravalli,Montana,30081,3,0 +2020-04-09,Ravalli,Montana,30081,3,0 +2020-04-10,Ravalli,Montana,30081,3,0 +2020-04-11,Ravalli,Montana,30081,3,0 +2020-04-12,Ravalli,Montana,30081,3,0 +2020-04-13,Ravalli,Montana,30081,5,0 +2020-04-14,Ravalli,Montana,30081,5,0 +2020-04-15,Ravalli,Montana,30081,5,0 +2020-04-16,Ravalli,Montana,30081,5,0 +2020-04-17,Ravalli,Montana,30081,5,0 +2020-04-18,Ravalli,Montana,30081,5,0 +2020-04-19,Ravalli,Montana,30081,5,0 +2020-04-20,Ravalli,Montana,30081,5,0 +2020-04-21,Ravalli,Montana,30081,5,0 +2020-04-22,Ravalli,Montana,30081,5,0 +2020-04-23,Ravalli,Montana,30081,5,0 +2020-04-24,Ravalli,Montana,30081,5,0 +2020-04-25,Ravalli,Montana,30081,5,0 +2020-04-26,Ravalli,Montana,30081,5,0 +2020-04-27,Ravalli,Montana,30081,5,0 +2020-04-28,Ravalli,Montana,30081,5,0 +2020-04-29,Ravalli,Montana,30081,5,0 +2020-04-30,Ravalli,Montana,30081,5,0 +2020-05-01,Ravalli,Montana,30081,5,0 +2020-05-02,Ravalli,Montana,30081,5,0 +2020-05-03,Ravalli,Montana,30081,5,0 +2020-05-04,Ravalli,Montana,30081,5,0 +2020-05-05,Ravalli,Montana,30081,5,0 +2020-05-06,Ravalli,Montana,30081,5,0 +2020-05-07,Ravalli,Montana,30081,5,0 +2020-05-08,Ravalli,Montana,30081,5,0 +2020-05-09,Ravalli,Montana,30081,5,0 +2020-05-10,Ravalli,Montana,30081,5,0 +2020-05-11,Ravalli,Montana,30081,5,0 +2020-05-12,Ravalli,Montana,30081,5,0 +2020-05-13,Ravalli,Montana,30081,5,0 +2020-05-14,Ravalli,Montana,30081,5,0 +2020-05-15,Ravalli,Montana,30081,5,0 +2020-05-16,Ravalli,Montana,30081,5,0 +2020-05-17,Ravalli,Montana,30081,5,0 +2020-05-18,Ravalli,Montana,30081,6,0 +2020-05-19,Ravalli,Montana,30081,6,0 +2020-05-20,Ravalli,Montana,30081,13,0 +2020-05-21,Ravalli,Montana,30081,13,0 +2020-05-22,Ravalli,Montana,30081,13,0 +2020-05-23,Ravalli,Montana,30081,13,0 +2020-05-24,Ravalli,Montana,30081,13,0 +2020-05-25,Ravalli,Montana,30081,13,0 +2020-05-26,Ravalli,Montana,30081,13,0 +2020-05-27,Ravalli,Montana,30081,13,0 +2020-05-28,Ravalli,Montana,30081,13,0 +2020-05-29,Ravalli,Montana,30081,13,0 +2020-05-30,Ravalli,Montana,30081,13,0 +2020-05-31,Ravalli,Montana,30081,14,0 +2020-06-01,Ravalli,Montana,30081,14,0 +2020-06-02,Ravalli,Montana,30081,14,0 +2020-06-03,Ravalli,Montana,30081,14,0 +2020-06-04,Ravalli,Montana,30081,14,0 +2020-06-05,Ravalli,Montana,30081,14,0 +2020-06-06,Ravalli,Montana,30081,14,0 +2020-06-07,Ravalli,Montana,30081,14,0 +2020-06-08,Ravalli,Montana,30081,14,0 +2020-06-09,Ravalli,Montana,30081,14,0 +2020-06-10,Ravalli,Montana,30081,14,0 +2020-06-11,Ravalli,Montana,30081,14,0 +2020-06-12,Ravalli,Montana,30081,14,0 +2020-06-13,Ravalli,Montana,30081,15,0 +2020-06-14,Ravalli,Montana,30081,17,0 +2020-06-15,Ravalli,Montana,30081,18,0 +2020-06-16,Ravalli,Montana,30081,18,0 +2020-06-17,Ravalli,Montana,30081,17,0 +2020-06-18,Ravalli,Montana,30081,17,0 +2020-06-19,Ravalli,Montana,30081,17,0 +2020-06-20,Ravalli,Montana,30081,18,0 +2020-06-21,Ravalli,Montana,30081,17,0 +2020-06-22,Ravalli,Montana,30081,17,0 +2020-06-23,Ravalli,Montana,30081,17,0 +2020-06-24,Ravalli,Montana,30081,17,0 +2020-06-25,Ravalli,Montana,30081,18,0 +2020-06-26,Ravalli,Montana,30081,22,0 +2020-06-27,Ravalli,Montana,30081,22,0 +2020-06-28,Ravalli,Montana,30081,23,0 +2020-06-29,Ravalli,Montana,30081,27,0 +2020-06-30,Ravalli,Montana,30081,27,0 +2020-07-01,Ravalli,Montana,30081,31,0 +2020-07-02,Ravalli,Montana,30081,31,0 +2020-07-03,Ravalli,Montana,30081,33,0 +2020-07-04,Ravalli,Montana,30081,33,0 +2020-07-05,Ravalli,Montana,30081,33,0 +2020-07-06,Ravalli,Montana,30081,33,0 +2020-07-07,Ravalli,Montana,30081,36,0 +2020-07-08,Ravalli,Montana,30081,36,0 +2020-07-09,Ravalli,Montana,30081,38,0 +2020-04-08,Richland,Montana,30083,2,0 +2020-04-09,Richland,Montana,30083,2,0 +2020-04-10,Richland,Montana,30083,2,0 +2020-04-11,Richland,Montana,30083,3,0 +2020-04-12,Richland,Montana,30083,3,0 +2020-04-13,Richland,Montana,30083,3,0 +2020-04-14,Richland,Montana,30083,3,0 +2020-04-15,Richland,Montana,30083,3,0 +2020-04-16,Richland,Montana,30083,3,0 +2020-04-17,Richland,Montana,30083,3,0 +2020-04-18,Richland,Montana,30083,3,0 +2020-04-19,Richland,Montana,30083,3,0 +2020-04-20,Richland,Montana,30083,3,0 +2020-04-21,Richland,Montana,30083,3,0 +2020-04-22,Richland,Montana,30083,3,0 +2020-04-23,Richland,Montana,30083,3,0 +2020-04-24,Richland,Montana,30083,3,0 +2020-04-25,Richland,Montana,30083,3,0 +2020-04-26,Richland,Montana,30083,3,0 +2020-04-27,Richland,Montana,30083,3,0 +2020-04-28,Richland,Montana,30083,3,0 +2020-04-29,Richland,Montana,30083,3,0 +2020-04-30,Richland,Montana,30083,3,0 +2020-05-01,Richland,Montana,30083,3,0 +2020-05-02,Richland,Montana,30083,3,0 +2020-05-03,Richland,Montana,30083,3,0 +2020-05-04,Richland,Montana,30083,3,0 +2020-05-05,Richland,Montana,30083,3,0 +2020-05-06,Richland,Montana,30083,3,0 +2020-05-07,Richland,Montana,30083,3,0 +2020-05-08,Richland,Montana,30083,3,0 +2020-05-09,Richland,Montana,30083,3,0 +2020-05-10,Richland,Montana,30083,3,0 +2020-05-11,Richland,Montana,30083,3,0 +2020-05-12,Richland,Montana,30083,3,0 +2020-05-13,Richland,Montana,30083,3,0 +2020-05-14,Richland,Montana,30083,3,0 +2020-05-15,Richland,Montana,30083,3,0 +2020-05-16,Richland,Montana,30083,3,0 +2020-05-17,Richland,Montana,30083,3,0 +2020-05-18,Richland,Montana,30083,3,0 +2020-05-19,Richland,Montana,30083,3,0 +2020-05-20,Richland,Montana,30083,3,0 +2020-05-21,Richland,Montana,30083,3,0 +2020-05-22,Richland,Montana,30083,3,0 +2020-05-23,Richland,Montana,30083,3,0 +2020-05-24,Richland,Montana,30083,3,0 +2020-05-25,Richland,Montana,30083,3,0 +2020-05-26,Richland,Montana,30083,3,0 +2020-05-27,Richland,Montana,30083,3,0 +2020-05-28,Richland,Montana,30083,3,0 +2020-05-29,Richland,Montana,30083,3,0 +2020-05-30,Richland,Montana,30083,3,0 +2020-05-31,Richland,Montana,30083,3,0 +2020-06-01,Richland,Montana,30083,3,0 +2020-06-02,Richland,Montana,30083,3,0 +2020-06-03,Richland,Montana,30083,3,0 +2020-06-04,Richland,Montana,30083,3,0 +2020-06-05,Richland,Montana,30083,3,0 +2020-06-06,Richland,Montana,30083,3,0 +2020-06-07,Richland,Montana,30083,3,0 +2020-06-08,Richland,Montana,30083,3,0 +2020-06-09,Richland,Montana,30083,3,0 +2020-06-10,Richland,Montana,30083,3,0 +2020-06-11,Richland,Montana,30083,3,0 +2020-06-12,Richland,Montana,30083,3,0 +2020-06-13,Richland,Montana,30083,3,0 +2020-06-14,Richland,Montana,30083,3,0 +2020-06-15,Richland,Montana,30083,3,0 +2020-06-16,Richland,Montana,30083,3,0 +2020-06-17,Richland,Montana,30083,3,0 +2020-06-18,Richland,Montana,30083,5,0 +2020-06-19,Richland,Montana,30083,5,0 +2020-06-20,Richland,Montana,30083,6,0 +2020-06-21,Richland,Montana,30083,8,0 +2020-06-22,Richland,Montana,30083,8,0 +2020-06-23,Richland,Montana,30083,8,0 +2020-06-24,Richland,Montana,30083,9,0 +2020-06-25,Richland,Montana,30083,9,0 +2020-06-26,Richland,Montana,30083,10,0 +2020-06-27,Richland,Montana,30083,10,0 +2020-06-28,Richland,Montana,30083,10,0 +2020-06-29,Richland,Montana,30083,12,0 +2020-06-30,Richland,Montana,30083,12,0 +2020-07-01,Richland,Montana,30083,12,0 +2020-07-02,Richland,Montana,30083,18,0 +2020-07-03,Richland,Montana,30083,18,0 +2020-07-04,Richland,Montana,30083,19,0 +2020-07-05,Richland,Montana,30083,22,0 +2020-07-06,Richland,Montana,30083,22,0 +2020-07-07,Richland,Montana,30083,22,0 +2020-07-08,Richland,Montana,30083,22,0 +2020-07-09,Richland,Montana,30083,22,0 +2020-03-19,Roosevelt,Montana,30085,1,0 +2020-03-20,Roosevelt,Montana,30085,1,0 +2020-03-21,Roosevelt,Montana,30085,1,0 +2020-03-22,Roosevelt,Montana,30085,1,0 +2020-03-23,Roosevelt,Montana,30085,1,0 +2020-03-24,Roosevelt,Montana,30085,1,0 +2020-03-25,Roosevelt,Montana,30085,1,0 +2020-03-26,Roosevelt,Montana,30085,1,0 +2020-03-27,Roosevelt,Montana,30085,1,0 +2020-03-28,Roosevelt,Montana,30085,1,0 +2020-03-29,Roosevelt,Montana,30085,1,0 +2020-03-30,Roosevelt,Montana,30085,1,0 +2020-03-31,Roosevelt,Montana,30085,1,0 +2020-04-01,Roosevelt,Montana,30085,1,0 +2020-04-02,Roosevelt,Montana,30085,1,0 +2020-04-03,Roosevelt,Montana,30085,1,0 +2020-04-04,Roosevelt,Montana,30085,1,0 +2020-04-05,Roosevelt,Montana,30085,1,0 +2020-04-06,Roosevelt,Montana,30085,1,0 +2020-04-07,Roosevelt,Montana,30085,1,0 +2020-04-08,Roosevelt,Montana,30085,2,0 +2020-04-09,Roosevelt,Montana,30085,2,0 +2020-04-10,Roosevelt,Montana,30085,2,0 +2020-04-11,Roosevelt,Montana,30085,3,0 +2020-04-12,Roosevelt,Montana,30085,3,0 +2020-04-13,Roosevelt,Montana,30085,3,0 +2020-04-14,Roosevelt,Montana,30085,3,0 +2020-04-15,Roosevelt,Montana,30085,4,0 +2020-04-16,Roosevelt,Montana,30085,4,0 +2020-04-17,Roosevelt,Montana,30085,6,0 +2020-04-18,Roosevelt,Montana,30085,6,0 +2020-04-19,Roosevelt,Montana,30085,6,0 +2020-04-20,Roosevelt,Montana,30085,6,0 +2020-04-21,Roosevelt,Montana,30085,7,0 +2020-04-22,Roosevelt,Montana,30085,7,0 +2020-04-23,Roosevelt,Montana,30085,7,0 +2020-04-24,Roosevelt,Montana,30085,7,0 +2020-04-25,Roosevelt,Montana,30085,7,0 +2020-04-26,Roosevelt,Montana,30085,7,0 +2020-04-27,Roosevelt,Montana,30085,7,0 +2020-04-28,Roosevelt,Montana,30085,7,0 +2020-04-29,Roosevelt,Montana,30085,7,0 +2020-04-30,Roosevelt,Montana,30085,7,0 +2020-05-01,Roosevelt,Montana,30085,7,0 +2020-05-02,Roosevelt,Montana,30085,7,0 +2020-05-03,Roosevelt,Montana,30085,7,0 +2020-05-04,Roosevelt,Montana,30085,7,0 +2020-05-05,Roosevelt,Montana,30085,7,0 +2020-05-06,Roosevelt,Montana,30085,7,0 +2020-05-07,Roosevelt,Montana,30085,7,0 +2020-05-08,Roosevelt,Montana,30085,7,0 +2020-05-09,Roosevelt,Montana,30085,7,0 +2020-05-10,Roosevelt,Montana,30085,7,0 +2020-05-11,Roosevelt,Montana,30085,7,0 +2020-05-12,Roosevelt,Montana,30085,7,0 +2020-05-13,Roosevelt,Montana,30085,7,0 +2020-05-14,Roosevelt,Montana,30085,7,0 +2020-05-15,Roosevelt,Montana,30085,7,0 +2020-05-16,Roosevelt,Montana,30085,7,0 +2020-05-17,Roosevelt,Montana,30085,7,0 +2020-05-18,Roosevelt,Montana,30085,7,0 +2020-05-19,Roosevelt,Montana,30085,7,0 +2020-05-20,Roosevelt,Montana,30085,7,0 +2020-05-21,Roosevelt,Montana,30085,7,0 +2020-05-22,Roosevelt,Montana,30085,7,0 +2020-05-23,Roosevelt,Montana,30085,7,0 +2020-05-24,Roosevelt,Montana,30085,7,0 +2020-05-25,Roosevelt,Montana,30085,7,0 +2020-05-26,Roosevelt,Montana,30085,7,0 +2020-05-27,Roosevelt,Montana,30085,7,0 +2020-05-28,Roosevelt,Montana,30085,7,0 +2020-05-29,Roosevelt,Montana,30085,7,0 +2020-05-30,Roosevelt,Montana,30085,7,0 +2020-05-31,Roosevelt,Montana,30085,7,0 +2020-06-01,Roosevelt,Montana,30085,7,0 +2020-06-02,Roosevelt,Montana,30085,7,0 +2020-06-03,Roosevelt,Montana,30085,7,0 +2020-06-04,Roosevelt,Montana,30085,7,0 +2020-06-05,Roosevelt,Montana,30085,7,0 +2020-06-06,Roosevelt,Montana,30085,7,0 +2020-06-07,Roosevelt,Montana,30085,7,0 +2020-06-08,Roosevelt,Montana,30085,7,0 +2020-06-09,Roosevelt,Montana,30085,7,0 +2020-06-10,Roosevelt,Montana,30085,7,0 +2020-06-11,Roosevelt,Montana,30085,7,0 +2020-06-12,Roosevelt,Montana,30085,7,0 +2020-06-13,Roosevelt,Montana,30085,7,0 +2020-06-14,Roosevelt,Montana,30085,7,0 +2020-06-15,Roosevelt,Montana,30085,7,0 +2020-06-16,Roosevelt,Montana,30085,7,0 +2020-06-17,Roosevelt,Montana,30085,7,0 +2020-06-18,Roosevelt,Montana,30085,7,0 +2020-06-19,Roosevelt,Montana,30085,7,0 +2020-06-20,Roosevelt,Montana,30085,7,0 +2020-06-21,Roosevelt,Montana,30085,7,0 +2020-06-22,Roosevelt,Montana,30085,7,0 +2020-06-23,Roosevelt,Montana,30085,7,0 +2020-06-24,Roosevelt,Montana,30085,7,0 +2020-06-25,Roosevelt,Montana,30085,7,0 +2020-06-26,Roosevelt,Montana,30085,8,0 +2020-06-27,Roosevelt,Montana,30085,8,0 +2020-06-28,Roosevelt,Montana,30085,8,0 +2020-06-29,Roosevelt,Montana,30085,7,0 +2020-06-30,Roosevelt,Montana,30085,7,0 +2020-07-01,Roosevelt,Montana,30085,7,0 +2020-07-02,Roosevelt,Montana,30085,7,0 +2020-07-03,Roosevelt,Montana,30085,7,0 +2020-07-04,Roosevelt,Montana,30085,7,0 +2020-07-05,Roosevelt,Montana,30085,7,0 +2020-07-06,Roosevelt,Montana,30085,7,0 +2020-07-07,Roosevelt,Montana,30085,7,0 +2020-07-08,Roosevelt,Montana,30085,7,0 +2020-07-09,Roosevelt,Montana,30085,8,0 +2020-06-02,Rosebud,Montana,30087,1,0 +2020-06-03,Rosebud,Montana,30087,1,0 +2020-06-04,Rosebud,Montana,30087,1,0 +2020-06-05,Rosebud,Montana,30087,1,0 +2020-06-06,Rosebud,Montana,30087,1,0 +2020-06-07,Rosebud,Montana,30087,1,0 +2020-06-08,Rosebud,Montana,30087,1,0 +2020-06-09,Rosebud,Montana,30087,1,0 +2020-06-10,Rosebud,Montana,30087,1,0 +2020-06-11,Rosebud,Montana,30087,1,0 +2020-06-12,Rosebud,Montana,30087,1,0 +2020-06-13,Rosebud,Montana,30087,1,0 +2020-06-14,Rosebud,Montana,30087,1,0 +2020-06-15,Rosebud,Montana,30087,1,0 +2020-06-16,Rosebud,Montana,30087,1,0 +2020-06-17,Rosebud,Montana,30087,1,0 +2020-06-18,Rosebud,Montana,30087,1,0 +2020-06-19,Rosebud,Montana,30087,3,0 +2020-06-20,Rosebud,Montana,30087,7,0 +2020-06-21,Rosebud,Montana,30087,7,0 +2020-06-22,Rosebud,Montana,30087,7,0 +2020-06-23,Rosebud,Montana,30087,7,0 +2020-06-24,Rosebud,Montana,30087,10,0 +2020-06-25,Rosebud,Montana,30087,10,0 +2020-06-26,Rosebud,Montana,30087,9,1 +2020-06-27,Rosebud,Montana,30087,9,1 +2020-06-28,Rosebud,Montana,30087,9,1 +2020-06-29,Rosebud,Montana,30087,9,1 +2020-06-30,Rosebud,Montana,30087,9,1 +2020-07-01,Rosebud,Montana,30087,10,1 +2020-07-02,Rosebud,Montana,30087,10,1 +2020-07-03,Rosebud,Montana,30087,10,1 +2020-07-04,Rosebud,Montana,30087,10,1 +2020-07-05,Rosebud,Montana,30087,10,1 +2020-07-06,Rosebud,Montana,30087,10,1 +2020-07-07,Rosebud,Montana,30087,10,1 +2020-07-08,Rosebud,Montana,30087,10,1 +2020-07-09,Rosebud,Montana,30087,10,1 +2020-07-03,Sheridan,Montana,30091,1,0 +2020-07-04,Sheridan,Montana,30091,1,0 +2020-07-05,Sheridan,Montana,30091,1,0 +2020-07-06,Sheridan,Montana,30091,1,0 +2020-07-07,Sheridan,Montana,30091,1,0 +2020-07-08,Sheridan,Montana,30091,1,0 +2020-07-09,Sheridan,Montana,30091,1,0 +2020-03-13,Silver Bow,Montana,30093,1,0 +2020-03-14,Silver Bow,Montana,30093,1,0 +2020-03-15,Silver Bow,Montana,30093,1,0 +2020-03-16,Silver Bow,Montana,30093,1,0 +2020-03-17,Silver Bow,Montana,30093,1,0 +2020-03-18,Silver Bow,Montana,30093,1,0 +2020-03-19,Silver Bow,Montana,30093,1,0 +2020-03-20,Silver Bow,Montana,30093,1,0 +2020-03-21,Silver Bow,Montana,30093,1,0 +2020-03-22,Silver Bow,Montana,30093,2,0 +2020-03-23,Silver Bow,Montana,30093,2,0 +2020-03-24,Silver Bow,Montana,30093,3,0 +2020-03-25,Silver Bow,Montana,30093,4,0 +2020-03-26,Silver Bow,Montana,30093,5,0 +2020-03-27,Silver Bow,Montana,30093,7,0 +2020-03-28,Silver Bow,Montana,30093,8,0 +2020-03-29,Silver Bow,Montana,30093,9,0 +2020-03-30,Silver Bow,Montana,30093,9,0 +2020-03-31,Silver Bow,Montana,30093,10,0 +2020-04-01,Silver Bow,Montana,30093,11,0 +2020-04-02,Silver Bow,Montana,30093,11,0 +2020-04-03,Silver Bow,Montana,30093,11,0 +2020-04-04,Silver Bow,Montana,30093,11,0 +2020-04-05,Silver Bow,Montana,30093,11,0 +2020-04-06,Silver Bow,Montana,30093,11,0 +2020-04-07,Silver Bow,Montana,30093,11,0 +2020-04-08,Silver Bow,Montana,30093,11,0 +2020-04-09,Silver Bow,Montana,30093,11,0 +2020-04-10,Silver Bow,Montana,30093,11,0 +2020-04-11,Silver Bow,Montana,30093,11,0 +2020-04-12,Silver Bow,Montana,30093,11,0 +2020-04-13,Silver Bow,Montana,30093,11,0 +2020-04-14,Silver Bow,Montana,30093,11,0 +2020-04-15,Silver Bow,Montana,30093,11,0 +2020-04-16,Silver Bow,Montana,30093,11,0 +2020-04-17,Silver Bow,Montana,30093,11,0 +2020-04-18,Silver Bow,Montana,30093,11,0 +2020-04-19,Silver Bow,Montana,30093,11,0 +2020-04-20,Silver Bow,Montana,30093,11,0 +2020-04-21,Silver Bow,Montana,30093,11,0 +2020-04-22,Silver Bow,Montana,30093,11,0 +2020-04-23,Silver Bow,Montana,30093,11,0 +2020-04-24,Silver Bow,Montana,30093,11,0 +2020-04-25,Silver Bow,Montana,30093,11,0 +2020-04-26,Silver Bow,Montana,30093,11,0 +2020-04-27,Silver Bow,Montana,30093,11,0 +2020-04-28,Silver Bow,Montana,30093,11,0 +2020-04-29,Silver Bow,Montana,30093,11,0 +2020-04-30,Silver Bow,Montana,30093,11,0 +2020-05-01,Silver Bow,Montana,30093,11,0 +2020-05-02,Silver Bow,Montana,30093,11,0 +2020-05-03,Silver Bow,Montana,30093,11,0 +2020-05-04,Silver Bow,Montana,30093,11,0 +2020-05-05,Silver Bow,Montana,30093,11,0 +2020-05-06,Silver Bow,Montana,30093,11,0 +2020-05-07,Silver Bow,Montana,30093,11,0 +2020-05-08,Silver Bow,Montana,30093,11,0 +2020-05-09,Silver Bow,Montana,30093,11,0 +2020-05-10,Silver Bow,Montana,30093,11,0 +2020-05-11,Silver Bow,Montana,30093,11,0 +2020-05-12,Silver Bow,Montana,30093,11,0 +2020-05-13,Silver Bow,Montana,30093,11,0 +2020-05-14,Silver Bow,Montana,30093,11,0 +2020-05-15,Silver Bow,Montana,30093,11,0 +2020-05-16,Silver Bow,Montana,30093,11,0 +2020-05-17,Silver Bow,Montana,30093,11,0 +2020-05-18,Silver Bow,Montana,30093,11,0 +2020-05-19,Silver Bow,Montana,30093,11,0 +2020-05-20,Silver Bow,Montana,30093,11,0 +2020-05-21,Silver Bow,Montana,30093,11,0 +2020-05-22,Silver Bow,Montana,30093,11,0 +2020-05-23,Silver Bow,Montana,30093,11,0 +2020-05-24,Silver Bow,Montana,30093,11,0 +2020-05-25,Silver Bow,Montana,30093,11,0 +2020-05-26,Silver Bow,Montana,30093,11,0 +2020-05-27,Silver Bow,Montana,30093,11,0 +2020-05-28,Silver Bow,Montana,30093,11,0 +2020-05-29,Silver Bow,Montana,30093,11,0 +2020-05-30,Silver Bow,Montana,30093,11,0 +2020-05-31,Silver Bow,Montana,30093,11,0 +2020-06-01,Silver Bow,Montana,30093,11,0 +2020-06-02,Silver Bow,Montana,30093,11,0 +2020-06-03,Silver Bow,Montana,30093,11,0 +2020-06-04,Silver Bow,Montana,30093,11,0 +2020-06-05,Silver Bow,Montana,30093,11,0 +2020-06-06,Silver Bow,Montana,30093,11,0 +2020-06-07,Silver Bow,Montana,30093,11,0 +2020-06-08,Silver Bow,Montana,30093,11,0 +2020-06-09,Silver Bow,Montana,30093,11,0 +2020-06-10,Silver Bow,Montana,30093,11,0 +2020-06-11,Silver Bow,Montana,30093,11,0 +2020-06-12,Silver Bow,Montana,30093,11,0 +2020-06-13,Silver Bow,Montana,30093,11,0 +2020-06-14,Silver Bow,Montana,30093,11,0 +2020-06-15,Silver Bow,Montana,30093,11,0 +2020-06-16,Silver Bow,Montana,30093,11,0 +2020-06-17,Silver Bow,Montana,30093,11,0 +2020-06-18,Silver Bow,Montana,30093,11,0 +2020-06-19,Silver Bow,Montana,30093,11,0 +2020-06-20,Silver Bow,Montana,30093,11,0 +2020-06-21,Silver Bow,Montana,30093,11,0 +2020-06-22,Silver Bow,Montana,30093,11,0 +2020-06-23,Silver Bow,Montana,30093,11,0 +2020-06-24,Silver Bow,Montana,30093,11,0 +2020-06-25,Silver Bow,Montana,30093,13,0 +2020-06-26,Silver Bow,Montana,30093,13,0 +2020-06-27,Silver Bow,Montana,30093,13,0 +2020-06-28,Silver Bow,Montana,30093,14,0 +2020-06-29,Silver Bow,Montana,30093,14,0 +2020-06-30,Silver Bow,Montana,30093,14,0 +2020-07-01,Silver Bow,Montana,30093,15,0 +2020-07-02,Silver Bow,Montana,30093,18,0 +2020-07-03,Silver Bow,Montana,30093,18,0 +2020-07-04,Silver Bow,Montana,30093,19,0 +2020-07-05,Silver Bow,Montana,30093,19,0 +2020-07-06,Silver Bow,Montana,30093,19,0 +2020-07-07,Silver Bow,Montana,30093,19,0 +2020-07-08,Silver Bow,Montana,30093,22,0 +2020-07-09,Silver Bow,Montana,30093,22,0 +2020-04-09,Stillwater,Montana,30095,1,0 +2020-04-10,Stillwater,Montana,30095,1,0 +2020-04-11,Stillwater,Montana,30095,1,0 +2020-04-12,Stillwater,Montana,30095,1,0 +2020-04-13,Stillwater,Montana,30095,1,0 +2020-04-14,Stillwater,Montana,30095,1,0 +2020-04-15,Stillwater,Montana,30095,1,0 +2020-04-16,Stillwater,Montana,30095,1,0 +2020-04-17,Stillwater,Montana,30095,1,0 +2020-04-18,Stillwater,Montana,30095,1,0 +2020-04-19,Stillwater,Montana,30095,1,0 +2020-04-20,Stillwater,Montana,30095,1,0 +2020-04-21,Stillwater,Montana,30095,1,0 +2020-04-22,Stillwater,Montana,30095,1,0 +2020-04-23,Stillwater,Montana,30095,1,0 +2020-04-24,Stillwater,Montana,30095,1,0 +2020-04-25,Stillwater,Montana,30095,1,0 +2020-04-26,Stillwater,Montana,30095,1,0 +2020-04-27,Stillwater,Montana,30095,1,0 +2020-04-28,Stillwater,Montana,30095,1,0 +2020-04-29,Stillwater,Montana,30095,1,0 +2020-04-30,Stillwater,Montana,30095,1,0 +2020-05-01,Stillwater,Montana,30095,1,0 +2020-05-02,Stillwater,Montana,30095,1,0 +2020-05-03,Stillwater,Montana,30095,1,0 +2020-05-04,Stillwater,Montana,30095,1,0 +2020-05-05,Stillwater,Montana,30095,1,0 +2020-05-06,Stillwater,Montana,30095,1,0 +2020-05-07,Stillwater,Montana,30095,1,0 +2020-05-08,Stillwater,Montana,30095,1,0 +2020-05-09,Stillwater,Montana,30095,1,0 +2020-05-10,Stillwater,Montana,30095,1,0 +2020-05-11,Stillwater,Montana,30095,1,0 +2020-05-12,Stillwater,Montana,30095,1,0 +2020-05-13,Stillwater,Montana,30095,1,0 +2020-05-14,Stillwater,Montana,30095,1,0 +2020-05-15,Stillwater,Montana,30095,1,0 +2020-05-16,Stillwater,Montana,30095,1,0 +2020-05-17,Stillwater,Montana,30095,1,0 +2020-05-18,Stillwater,Montana,30095,1,0 +2020-05-19,Stillwater,Montana,30095,1,0 +2020-05-20,Stillwater,Montana,30095,1,0 +2020-05-21,Stillwater,Montana,30095,1,0 +2020-05-22,Stillwater,Montana,30095,1,0 +2020-05-23,Stillwater,Montana,30095,1,0 +2020-05-24,Stillwater,Montana,30095,1,0 +2020-05-25,Stillwater,Montana,30095,1,0 +2020-05-26,Stillwater,Montana,30095,1,0 +2020-05-27,Stillwater,Montana,30095,1,0 +2020-05-28,Stillwater,Montana,30095,1,0 +2020-05-29,Stillwater,Montana,30095,1,0 +2020-05-30,Stillwater,Montana,30095,1,0 +2020-05-31,Stillwater,Montana,30095,1,0 +2020-06-01,Stillwater,Montana,30095,1,0 +2020-06-02,Stillwater,Montana,30095,1,0 +2020-06-03,Stillwater,Montana,30095,1,0 +2020-06-04,Stillwater,Montana,30095,1,0 +2020-06-05,Stillwater,Montana,30095,1,0 +2020-06-06,Stillwater,Montana,30095,1,0 +2020-06-07,Stillwater,Montana,30095,1,0 +2020-06-08,Stillwater,Montana,30095,2,0 +2020-06-09,Stillwater,Montana,30095,2,0 +2020-06-10,Stillwater,Montana,30095,2,0 +2020-06-11,Stillwater,Montana,30095,2,0 +2020-06-12,Stillwater,Montana,30095,2,0 +2020-06-13,Stillwater,Montana,30095,2,0 +2020-06-14,Stillwater,Montana,30095,2,0 +2020-06-15,Stillwater,Montana,30095,3,0 +2020-06-16,Stillwater,Montana,30095,3,0 +2020-06-17,Stillwater,Montana,30095,3,0 +2020-06-18,Stillwater,Montana,30095,3,0 +2020-06-19,Stillwater,Montana,30095,3,0 +2020-06-20,Stillwater,Montana,30095,3,0 +2020-06-21,Stillwater,Montana,30095,3,0 +2020-06-22,Stillwater,Montana,30095,4,0 +2020-06-23,Stillwater,Montana,30095,4,0 +2020-06-24,Stillwater,Montana,30095,4,0 +2020-06-25,Stillwater,Montana,30095,4,0 +2020-06-26,Stillwater,Montana,30095,4,0 +2020-06-27,Stillwater,Montana,30095,4,0 +2020-06-28,Stillwater,Montana,30095,4,0 +2020-06-29,Stillwater,Montana,30095,5,0 +2020-06-30,Stillwater,Montana,30095,5,0 +2020-07-01,Stillwater,Montana,30095,6,0 +2020-07-02,Stillwater,Montana,30095,6,0 +2020-07-03,Stillwater,Montana,30095,6,0 +2020-07-04,Stillwater,Montana,30095,6,0 +2020-07-05,Stillwater,Montana,30095,6,0 +2020-07-06,Stillwater,Montana,30095,6,0 +2020-07-07,Stillwater,Montana,30095,7,0 +2020-07-08,Stillwater,Montana,30095,7,0 +2020-07-09,Stillwater,Montana,30095,8,0 +2020-07-02,Teton,Montana,30099,5,0 +2020-07-03,Teton,Montana,30099,5,0 +2020-07-04,Teton,Montana,30099,10,0 +2020-07-05,Teton,Montana,30099,10,0 +2020-07-06,Teton,Montana,30099,10,0 +2020-07-07,Teton,Montana,30099,10,0 +2020-07-08,Teton,Montana,30099,10,0 +2020-07-09,Teton,Montana,30099,10,0 +2020-03-26,Toole,Montana,30101,1,0 +2020-03-27,Toole,Montana,30101,5,0 +2020-03-28,Toole,Montana,30101,5,0 +2020-03-29,Toole,Montana,30101,5,0 +2020-03-30,Toole,Montana,30101,6,2 +2020-03-31,Toole,Montana,30101,6,2 +2020-04-01,Toole,Montana,30101,6,2 +2020-04-02,Toole,Montana,30101,6,3 +2020-04-03,Toole,Montana,30101,12,3 +2020-04-04,Toole,Montana,30101,15,3 +2020-04-05,Toole,Montana,30101,16,3 +2020-04-06,Toole,Montana,30101,15,3 +2020-04-07,Toole,Montana,30101,15,3 +2020-04-08,Toole,Montana,30101,17,3 +2020-04-09,Toole,Montana,30101,18,3 +2020-04-10,Toole,Montana,30101,18,3 +2020-04-11,Toole,Montana,30101,20,3 +2020-04-12,Toole,Montana,30101,25,3 +2020-04-13,Toole,Montana,30101,26,3 +2020-04-14,Toole,Montana,30101,26,3 +2020-04-15,Toole,Montana,30101,26,3 +2020-04-16,Toole,Montana,30101,26,3 +2020-04-17,Toole,Montana,30101,29,4 +2020-04-18,Toole,Montana,30101,29,4 +2020-04-19,Toole,Montana,30101,29,4 +2020-04-20,Toole,Montana,30101,29,5 +2020-04-21,Toole,Montana,30101,29,5 +2020-04-22,Toole,Montana,30101,29,6 +2020-04-23,Toole,Montana,30101,29,6 +2020-04-24,Toole,Montana,30101,29,6 +2020-04-25,Toole,Montana,30101,29,6 +2020-04-26,Toole,Montana,30101,29,6 +2020-04-27,Toole,Montana,30101,29,6 +2020-04-28,Toole,Montana,30101,29,6 +2020-04-29,Toole,Montana,30101,29,6 +2020-04-30,Toole,Montana,30101,29,6 +2020-05-01,Toole,Montana,30101,29,6 +2020-05-02,Toole,Montana,30101,29,6 +2020-05-03,Toole,Montana,30101,29,6 +2020-05-04,Toole,Montana,30101,29,6 +2020-05-05,Toole,Montana,30101,29,6 +2020-05-06,Toole,Montana,30101,29,6 +2020-05-07,Toole,Montana,30101,29,6 +2020-05-08,Toole,Montana,30101,29,6 +2020-05-09,Toole,Montana,30101,29,6 +2020-05-10,Toole,Montana,30101,29,6 +2020-05-11,Toole,Montana,30101,29,6 +2020-05-12,Toole,Montana,30101,29,6 +2020-05-13,Toole,Montana,30101,29,6 +2020-05-14,Toole,Montana,30101,29,6 +2020-05-15,Toole,Montana,30101,29,6 +2020-05-16,Toole,Montana,30101,29,6 +2020-05-17,Toole,Montana,30101,29,6 +2020-05-18,Toole,Montana,30101,29,6 +2020-05-19,Toole,Montana,30101,29,6 +2020-05-20,Toole,Montana,30101,29,6 +2020-05-21,Toole,Montana,30101,29,6 +2020-05-22,Toole,Montana,30101,29,6 +2020-05-23,Toole,Montana,30101,29,6 +2020-05-24,Toole,Montana,30101,29,6 +2020-05-25,Toole,Montana,30101,29,6 +2020-05-26,Toole,Montana,30101,29,6 +2020-05-27,Toole,Montana,30101,29,6 +2020-05-28,Toole,Montana,30101,29,6 +2020-05-29,Toole,Montana,30101,29,6 +2020-05-30,Toole,Montana,30101,29,6 +2020-05-31,Toole,Montana,30101,29,6 +2020-06-01,Toole,Montana,30101,29,6 +2020-06-02,Toole,Montana,30101,29,6 +2020-06-03,Toole,Montana,30101,29,6 +2020-06-04,Toole,Montana,30101,29,6 +2020-06-05,Toole,Montana,30101,29,6 +2020-06-06,Toole,Montana,30101,29,6 +2020-06-07,Toole,Montana,30101,29,6 +2020-06-08,Toole,Montana,30101,29,6 +2020-06-09,Toole,Montana,30101,29,6 +2020-06-10,Toole,Montana,30101,29,6 +2020-06-11,Toole,Montana,30101,29,6 +2020-06-12,Toole,Montana,30101,29,6 +2020-06-13,Toole,Montana,30101,29,6 +2020-06-14,Toole,Montana,30101,29,6 +2020-06-15,Toole,Montana,30101,29,6 +2020-06-16,Toole,Montana,30101,29,6 +2020-06-17,Toole,Montana,30101,29,6 +2020-06-18,Toole,Montana,30101,29,6 +2020-06-19,Toole,Montana,30101,29,6 +2020-06-20,Toole,Montana,30101,31,6 +2020-06-21,Toole,Montana,30101,31,6 +2020-06-22,Toole,Montana,30101,31,6 +2020-06-23,Toole,Montana,30101,31,6 +2020-06-24,Toole,Montana,30101,31,6 +2020-06-25,Toole,Montana,30101,31,6 +2020-06-26,Toole,Montana,30101,31,6 +2020-06-27,Toole,Montana,30101,31,6 +2020-06-28,Toole,Montana,30101,31,6 +2020-06-29,Toole,Montana,30101,31,6 +2020-06-30,Toole,Montana,30101,31,6 +2020-07-01,Toole,Montana,30101,31,6 +2020-07-02,Toole,Montana,30101,31,6 +2020-07-03,Toole,Montana,30101,31,6 +2020-07-04,Toole,Montana,30101,31,6 +2020-07-05,Toole,Montana,30101,31,6 +2020-07-06,Toole,Montana,30101,31,6 +2020-07-07,Toole,Montana,30101,31,6 +2020-07-08,Toole,Montana,30101,31,6 +2020-07-09,Toole,Montana,30101,31,6 +2020-06-24,Treasure,Montana,30103,2,0 +2020-06-25,Treasure,Montana,30103,2,0 +2020-06-26,Treasure,Montana,30103,2,0 +2020-06-27,Treasure,Montana,30103,2,0 +2020-06-28,Treasure,Montana,30103,2,0 +2020-06-29,Treasure,Montana,30103,2,0 +2020-06-30,Treasure,Montana,30103,2,0 +2020-07-01,Treasure,Montana,30103,2,0 +2020-07-02,Treasure,Montana,30103,2,0 +2020-07-03,Treasure,Montana,30103,2,0 +2020-07-04,Treasure,Montana,30103,2,0 +2020-07-05,Treasure,Montana,30103,2,0 +2020-07-06,Treasure,Montana,30103,2,0 +2020-07-07,Treasure,Montana,30103,2,0 +2020-07-08,Treasure,Montana,30103,2,0 +2020-07-09,Treasure,Montana,30103,2,0 +2020-06-18,Valley,Montana,30105,1,0 +2020-06-19,Valley,Montana,30105,1,0 +2020-06-20,Valley,Montana,30105,1,0 +2020-06-21,Valley,Montana,30105,1,0 +2020-06-22,Valley,Montana,30105,1,0 +2020-06-23,Valley,Montana,30105,1,0 +2020-06-24,Valley,Montana,30105,1,0 +2020-06-25,Valley,Montana,30105,1,0 +2020-06-26,Valley,Montana,30105,1,0 +2020-06-27,Valley,Montana,30105,1,0 +2020-06-28,Valley,Montana,30105,1,0 +2020-06-29,Valley,Montana,30105,2,0 +2020-06-30,Valley,Montana,30105,3,0 +2020-07-01,Valley,Montana,30105,4,0 +2020-07-02,Valley,Montana,30105,4,0 +2020-07-03,Valley,Montana,30105,4,0 +2020-07-04,Valley,Montana,30105,4,0 +2020-07-05,Valley,Montana,30105,4,0 +2020-07-06,Valley,Montana,30105,4,0 +2020-07-07,Valley,Montana,30105,4,0 +2020-07-08,Valley,Montana,30105,4,0 +2020-07-09,Valley,Montana,30105,4,0 +2020-04-24,Wheatland,Montana,30107,1,0 +2020-04-25,Wheatland,Montana,30107,1,0 +2020-04-26,Wheatland,Montana,30107,1,0 +2020-04-27,Wheatland,Montana,30107,1,0 +2020-04-28,Wheatland,Montana,30107,1,0 +2020-04-29,Wheatland,Montana,30107,1,0 +2020-04-30,Wheatland,Montana,30107,1,0 +2020-05-01,Wheatland,Montana,30107,1,0 +2020-05-02,Wheatland,Montana,30107,1,0 +2020-05-03,Wheatland,Montana,30107,1,0 +2020-05-04,Wheatland,Montana,30107,1,0 +2020-05-05,Wheatland,Montana,30107,1,0 +2020-05-06,Wheatland,Montana,30107,1,0 +2020-05-07,Wheatland,Montana,30107,1,0 +2020-05-08,Wheatland,Montana,30107,1,0 +2020-05-09,Wheatland,Montana,30107,1,0 +2020-05-10,Wheatland,Montana,30107,1,0 +2020-05-11,Wheatland,Montana,30107,1,0 +2020-05-12,Wheatland,Montana,30107,1,0 +2020-05-13,Wheatland,Montana,30107,1,0 +2020-05-14,Wheatland,Montana,30107,1,0 +2020-05-15,Wheatland,Montana,30107,1,0 +2020-05-16,Wheatland,Montana,30107,1,0 +2020-05-17,Wheatland,Montana,30107,1,0 +2020-05-18,Wheatland,Montana,30107,1,0 +2020-05-19,Wheatland,Montana,30107,1,0 +2020-05-20,Wheatland,Montana,30107,1,0 +2020-05-21,Wheatland,Montana,30107,1,0 +2020-05-22,Wheatland,Montana,30107,1,0 +2020-05-23,Wheatland,Montana,30107,1,0 +2020-05-24,Wheatland,Montana,30107,1,0 +2020-05-25,Wheatland,Montana,30107,1,0 +2020-05-26,Wheatland,Montana,30107,1,0 +2020-05-27,Wheatland,Montana,30107,1,0 +2020-05-28,Wheatland,Montana,30107,1,0 +2020-05-29,Wheatland,Montana,30107,1,0 +2020-05-30,Wheatland,Montana,30107,1,0 +2020-05-31,Wheatland,Montana,30107,1,0 +2020-06-01,Wheatland,Montana,30107,1,0 +2020-06-02,Wheatland,Montana,30107,1,0 +2020-06-03,Wheatland,Montana,30107,1,0 +2020-06-04,Wheatland,Montana,30107,1,0 +2020-06-05,Wheatland,Montana,30107,1,0 +2020-06-06,Wheatland,Montana,30107,1,0 +2020-06-07,Wheatland,Montana,30107,1,0 +2020-06-08,Wheatland,Montana,30107,1,0 +2020-06-09,Wheatland,Montana,30107,1,0 +2020-06-10,Wheatland,Montana,30107,1,0 +2020-06-11,Wheatland,Montana,30107,1,0 +2020-06-12,Wheatland,Montana,30107,1,0 +2020-06-13,Wheatland,Montana,30107,1,0 +2020-06-14,Wheatland,Montana,30107,1,0 +2020-06-15,Wheatland,Montana,30107,1,0 +2020-06-16,Wheatland,Montana,30107,1,0 +2020-06-17,Wheatland,Montana,30107,1,0 +2020-06-18,Wheatland,Montana,30107,1,0 +2020-06-19,Wheatland,Montana,30107,1,0 +2020-06-20,Wheatland,Montana,30107,1,0 +2020-06-21,Wheatland,Montana,30107,1,0 +2020-06-22,Wheatland,Montana,30107,1,0 +2020-06-23,Wheatland,Montana,30107,1,0 +2020-06-24,Wheatland,Montana,30107,1,0 +2020-06-25,Wheatland,Montana,30107,1,0 +2020-06-26,Wheatland,Montana,30107,1,0 +2020-06-27,Wheatland,Montana,30107,1,0 +2020-06-28,Wheatland,Montana,30107,1,0 +2020-06-29,Wheatland,Montana,30107,1,0 +2020-06-30,Wheatland,Montana,30107,1,0 +2020-07-01,Wheatland,Montana,30107,1,0 +2020-07-02,Wheatland,Montana,30107,1,0 +2020-07-03,Wheatland,Montana,30107,1,0 +2020-07-04,Wheatland,Montana,30107,1,0 +2020-07-05,Wheatland,Montana,30107,1,0 +2020-07-06,Wheatland,Montana,30107,1,0 +2020-07-07,Wheatland,Montana,30107,2,0 +2020-07-08,Wheatland,Montana,30107,2,0 +2020-07-09,Wheatland,Montana,30107,2,0 +2020-03-13,Yellowstone,Montana,30111,1,0 +2020-03-14,Yellowstone,Montana,30111,1,0 +2020-03-15,Yellowstone,Montana,30111,1,0 +2020-03-16,Yellowstone,Montana,30111,3,0 +2020-03-17,Yellowstone,Montana,30111,3,0 +2020-03-18,Yellowstone,Montana,30111,5,0 +2020-03-19,Yellowstone,Montana,30111,5,0 +2020-03-20,Yellowstone,Montana,30111,5,0 +2020-03-21,Yellowstone,Montana,30111,5,0 +2020-03-22,Yellowstone,Montana,30111,6,0 +2020-03-23,Yellowstone,Montana,30111,7,0 +2020-03-24,Yellowstone,Montana,30111,8,0 +2020-03-25,Yellowstone,Montana,30111,12,0 +2020-03-26,Yellowstone,Montana,30111,14,0 +2020-03-27,Yellowstone,Montana,30111,23,0 +2020-03-28,Yellowstone,Montana,30111,26,0 +2020-03-29,Yellowstone,Montana,30111,26,0 +2020-03-30,Yellowstone,Montana,30111,28,0 +2020-03-31,Yellowstone,Montana,30111,31,0 +2020-04-01,Yellowstone,Montana,30111,32,0 +2020-04-02,Yellowstone,Montana,30111,35,0 +2020-04-03,Yellowstone,Montana,30111,38,0 +2020-04-04,Yellowstone,Montana,30111,38,0 +2020-04-05,Yellowstone,Montana,30111,40,0 +2020-04-06,Yellowstone,Montana,30111,47,0 +2020-04-07,Yellowstone,Montana,30111,47,0 +2020-04-08,Yellowstone,Montana,30111,48,0 +2020-04-09,Yellowstone,Montana,30111,52,0 +2020-04-10,Yellowstone,Montana,30111,55,0 +2020-04-11,Yellowstone,Montana,30111,57,0 +2020-04-12,Yellowstone,Montana,30111,58,0 +2020-04-13,Yellowstone,Montana,30111,59,0 +2020-04-14,Yellowstone,Montana,30111,63,0 +2020-04-15,Yellowstone,Montana,30111,64,0 +2020-04-16,Yellowstone,Montana,30111,67,0 +2020-04-17,Yellowstone,Montana,30111,67,0 +2020-04-18,Yellowstone,Montana,30111,70,1 +2020-04-19,Yellowstone,Montana,30111,72,1 +2020-04-20,Yellowstone,Montana,30111,72,1 +2020-04-21,Yellowstone,Montana,30111,73,1 +2020-04-22,Yellowstone,Montana,30111,74,1 +2020-04-23,Yellowstone,Montana,30111,76,1 +2020-04-24,Yellowstone,Montana,30111,77,1 +2020-04-25,Yellowstone,Montana,30111,77,1 +2020-04-26,Yellowstone,Montana,30111,78,1 +2020-04-27,Yellowstone,Montana,30111,79,1 +2020-04-28,Yellowstone,Montana,30111,80,1 +2020-04-29,Yellowstone,Montana,30111,80,2 +2020-04-30,Yellowstone,Montana,30111,80,2 +2020-05-01,Yellowstone,Montana,30111,80,2 +2020-05-02,Yellowstone,Montana,30111,82,2 +2020-05-03,Yellowstone,Montana,30111,82,2 +2020-05-04,Yellowstone,Montana,30111,83,2 +2020-05-05,Yellowstone,Montana,30111,83,2 +2020-05-06,Yellowstone,Montana,30111,83,2 +2020-05-07,Yellowstone,Montana,30111,83,2 +2020-05-08,Yellowstone,Montana,30111,83,2 +2020-05-09,Yellowstone,Montana,30111,82,2 +2020-05-10,Yellowstone,Montana,30111,82,2 +2020-05-11,Yellowstone,Montana,30111,82,2 +2020-05-12,Yellowstone,Montana,30111,82,2 +2020-05-13,Yellowstone,Montana,30111,83,2 +2020-05-14,Yellowstone,Montana,30111,83,2 +2020-05-15,Yellowstone,Montana,30111,83,2 +2020-05-16,Yellowstone,Montana,30111,85,2 +2020-05-17,Yellowstone,Montana,30111,85,2 +2020-05-18,Yellowstone,Montana,30111,86,2 +2020-05-19,Yellowstone,Montana,30111,87,2 +2020-05-20,Yellowstone,Montana,30111,87,2 +2020-05-21,Yellowstone,Montana,30111,88,2 +2020-05-22,Yellowstone,Montana,30111,88,2 +2020-05-23,Yellowstone,Montana,30111,88,2 +2020-05-24,Yellowstone,Montana,30111,88,2 +2020-05-25,Yellowstone,Montana,30111,88,2 +2020-05-26,Yellowstone,Montana,30111,88,3 +2020-05-27,Yellowstone,Montana,30111,89,3 +2020-05-28,Yellowstone,Montana,30111,90,3 +2020-05-29,Yellowstone,Montana,30111,90,3 +2020-05-30,Yellowstone,Montana,30111,91,3 +2020-05-31,Yellowstone,Montana,30111,99,3 +2020-06-01,Yellowstone,Montana,30111,100,3 +2020-06-02,Yellowstone,Montana,30111,100,3 +2020-06-03,Yellowstone,Montana,30111,102,3 +2020-06-04,Yellowstone,Montana,30111,103,3 +2020-06-05,Yellowstone,Montana,30111,103,3 +2020-06-06,Yellowstone,Montana,30111,104,3 +2020-06-07,Yellowstone,Montana,30111,105,3 +2020-06-08,Yellowstone,Montana,30111,105,3 +2020-06-09,Yellowstone,Montana,30111,105,3 +2020-06-10,Yellowstone,Montana,30111,105,3 +2020-06-11,Yellowstone,Montana,30111,106,3 +2020-06-12,Yellowstone,Montana,30111,106,3 +2020-06-13,Yellowstone,Montana,30111,108,3 +2020-06-14,Yellowstone,Montana,30111,108,3 +2020-06-15,Yellowstone,Montana,30111,108,3 +2020-06-16,Yellowstone,Montana,30111,109,3 +2020-06-17,Yellowstone,Montana,30111,109,3 +2020-06-18,Yellowstone,Montana,30111,112,3 +2020-06-19,Yellowstone,Montana,30111,115,3 +2020-06-20,Yellowstone,Montana,30111,120,3 +2020-06-21,Yellowstone,Montana,30111,123,3 +2020-06-22,Yellowstone,Montana,30111,125,4 +2020-06-23,Yellowstone,Montana,30111,126,4 +2020-06-24,Yellowstone,Montana,30111,129,4 +2020-06-25,Yellowstone,Montana,30111,139,4 +2020-06-26,Yellowstone,Montana,30111,144,4 +2020-06-27,Yellowstone,Montana,30111,149,4 +2020-06-28,Yellowstone,Montana,30111,151,4 +2020-06-29,Yellowstone,Montana,30111,165,4 +2020-06-30,Yellowstone,Montana,30111,174,4 +2020-07-01,Yellowstone,Montana,30111,189,4 +2020-07-02,Yellowstone,Montana,30111,203,4 +2020-07-03,Yellowstone,Montana,30111,226,4 +2020-07-04,Yellowstone,Montana,30111,245,4 +2020-07-05,Yellowstone,Montana,30111,261,4 +2020-07-06,Yellowstone,Montana,30111,270,4 +2020-07-07,Yellowstone,Montana,30111,325,4 +2020-07-08,Yellowstone,Montana,30111,330,4 +2020-07-09,Yellowstone,Montana,30111,377,6 +2020-03-18,Adams,Nebraska,31001,1,0 +2020-03-19,Adams,Nebraska,31001,1,0 +2020-03-20,Adams,Nebraska,31001,1,0 +2020-03-21,Adams,Nebraska,31001,1,0 +2020-03-22,Adams,Nebraska,31001,1,0 +2020-03-23,Adams,Nebraska,31001,1,0 +2020-03-24,Adams,Nebraska,31001,1,0 +2020-03-25,Adams,Nebraska,31001,1,0 +2020-03-26,Adams,Nebraska,31001,1,0 +2020-03-27,Adams,Nebraska,31001,2,0 +2020-03-28,Adams,Nebraska,31001,2,0 +2020-03-29,Adams,Nebraska,31001,2,0 +2020-03-30,Adams,Nebraska,31001,3,0 +2020-03-31,Adams,Nebraska,31001,3,0 +2020-04-01,Adams,Nebraska,31001,4,0 +2020-04-02,Adams,Nebraska,31001,6,0 +2020-04-03,Adams,Nebraska,31001,6,0 +2020-04-04,Adams,Nebraska,31001,8,0 +2020-04-05,Adams,Nebraska,31001,11,0 +2020-04-06,Adams,Nebraska,31001,15,0 +2020-04-07,Adams,Nebraska,31001,19,0 +2020-04-08,Adams,Nebraska,31001,27,0 +2020-04-09,Adams,Nebraska,31001,28,0 +2020-04-10,Adams,Nebraska,31001,39,0 +2020-04-11,Adams,Nebraska,31001,45,0 +2020-04-12,Adams,Nebraska,31001,54,0 +2020-04-13,Adams,Nebraska,31001,58,0 +2020-04-14,Adams,Nebraska,31001,62,0 +2020-04-15,Adams,Nebraska,31001,65,0 +2020-04-16,Adams,Nebraska,31001,73,0 +2020-04-17,Adams,Nebraska,31001,85,0 +2020-04-18,Adams,Nebraska,31001,94,1 +2020-04-19,Adams,Nebraska,31001,98,1 +2020-04-20,Adams,Nebraska,31001,100,1 +2020-04-21,Adams,Nebraska,31001,101,1 +2020-04-22,Adams,Nebraska,31001,103,1 +2020-04-23,Adams,Nebraska,31001,111,1 +2020-04-24,Adams,Nebraska,31001,120,1 +2020-04-25,Adams,Nebraska,31001,125,1 +2020-04-26,Adams,Nebraska,31001,133,2 +2020-04-27,Adams,Nebraska,31001,141,2 +2020-04-28,Adams,Nebraska,31001,143,2 +2020-04-29,Adams,Nebraska,31001,147,2 +2020-04-30,Adams,Nebraska,31001,164,2 +2020-05-01,Adams,Nebraska,31001,187,2 +2020-05-02,Adams,Nebraska,31001,202,4 +2020-05-03,Adams,Nebraska,31001,203,4 +2020-05-04,Adams,Nebraska,31001,203,4 +2020-05-05,Adams,Nebraska,31001,204,4 +2020-05-06,Adams,Nebraska,31001,212,5 +2020-05-07,Adams,Nebraska,31001,216,5 +2020-05-08,Adams,Nebraska,31001,218,5 +2020-05-09,Adams,Nebraska,31001,223,5 +2020-05-10,Adams,Nebraska,31001,223,5 +2020-05-11,Adams,Nebraska,31001,227,5 +2020-05-12,Adams,Nebraska,31001,228,5 +2020-05-13,Adams,Nebraska,31001,236,5 +2020-05-14,Adams,Nebraska,31001,238,7 +2020-05-15,Adams,Nebraska,31001,246,8 +2020-05-16,Adams,Nebraska,31001,251,8 +2020-05-17,Adams,Nebraska,31001,252,8 +2020-05-18,Adams,Nebraska,31001,252,10 +2020-05-19,Adams,Nebraska,31001,255,11 +2020-05-20,Adams,Nebraska,31001,256,11 +2020-05-21,Adams,Nebraska,31001,258,11 +2020-05-22,Adams,Nebraska,31001,258,11 +2020-05-23,Adams,Nebraska,31001,264,11 +2020-05-24,Adams,Nebraska,31001,265,11 +2020-05-25,Adams,Nebraska,31001,265,11 +2020-05-26,Adams,Nebraska,31001,264,11 +2020-05-27,Adams,Nebraska,31001,264,11 +2020-05-28,Adams,Nebraska,31001,265,11 +2020-05-29,Adams,Nebraska,31001,268,11 +2020-05-30,Adams,Nebraska,31001,270,11 +2020-05-31,Adams,Nebraska,31001,270,11 +2020-06-01,Adams,Nebraska,31001,272,11 +2020-06-02,Adams,Nebraska,31001,272,11 +2020-06-03,Adams,Nebraska,31001,273,11 +2020-06-04,Adams,Nebraska,31001,275,11 +2020-06-05,Adams,Nebraska,31001,275,11 +2020-06-06,Adams,Nebraska,31001,275,11 +2020-06-07,Adams,Nebraska,31001,275,11 +2020-06-08,Adams,Nebraska,31001,276,11 +2020-06-09,Adams,Nebraska,31001,277,11 +2020-06-10,Adams,Nebraska,31001,277,11 +2020-06-11,Adams,Nebraska,31001,277,11 +2020-06-12,Adams,Nebraska,31001,278,11 +2020-06-13,Adams,Nebraska,31001,278,11 +2020-06-14,Adams,Nebraska,31001,278,11 +2020-06-15,Adams,Nebraska,31001,278,11 +2020-06-16,Adams,Nebraska,31001,277,11 +2020-06-17,Adams,Nebraska,31001,277,11 +2020-06-18,Adams,Nebraska,31001,277,11 +2020-06-19,Adams,Nebraska,31001,280,11 +2020-06-20,Adams,Nebraska,31001,281,11 +2020-06-21,Adams,Nebraska,31001,282,11 +2020-06-22,Adams,Nebraska,31001,282,11 +2020-06-23,Adams,Nebraska,31001,282,11 +2020-06-24,Adams,Nebraska,31001,283,11 +2020-06-25,Adams,Nebraska,31001,285,11 +2020-06-26,Adams,Nebraska,31001,287,11 +2020-06-27,Adams,Nebraska,31001,287,11 +2020-06-28,Adams,Nebraska,31001,288,11 +2020-06-29,Adams,Nebraska,31001,292,11 +2020-06-30,Adams,Nebraska,31001,294,11 +2020-07-01,Adams,Nebraska,31001,296,11 +2020-07-02,Adams,Nebraska,31001,296,11 +2020-07-03,Adams,Nebraska,31001,298,11 +2020-07-04,Adams,Nebraska,31001,299,11 +2020-07-05,Adams,Nebraska,31001,299,11 +2020-07-06,Adams,Nebraska,31001,301,11 +2020-07-07,Adams,Nebraska,31001,302,11 +2020-07-08,Adams,Nebraska,31001,304,11 +2020-07-09,Adams,Nebraska,31001,309,11 +2020-03-30,Antelope,Nebraska,31003,1,0 +2020-03-31,Antelope,Nebraska,31003,1,0 +2020-04-01,Antelope,Nebraska,31003,1,0 +2020-04-02,Antelope,Nebraska,31003,1,0 +2020-04-03,Antelope,Nebraska,31003,1,0 +2020-04-04,Antelope,Nebraska,31003,1,0 +2020-04-05,Antelope,Nebraska,31003,1,0 +2020-04-06,Antelope,Nebraska,31003,1,0 +2020-04-07,Antelope,Nebraska,31003,1,0 +2020-04-08,Antelope,Nebraska,31003,1,0 +2020-04-09,Antelope,Nebraska,31003,1,0 +2020-04-10,Antelope,Nebraska,31003,1,0 +2020-04-11,Antelope,Nebraska,31003,1,0 +2020-04-12,Antelope,Nebraska,31003,1,0 +2020-04-13,Antelope,Nebraska,31003,1,0 +2020-04-14,Antelope,Nebraska,31003,1,0 +2020-04-15,Antelope,Nebraska,31003,1,0 +2020-04-16,Antelope,Nebraska,31003,1,0 +2020-04-17,Antelope,Nebraska,31003,1,0 +2020-04-18,Antelope,Nebraska,31003,1,0 +2020-04-19,Antelope,Nebraska,31003,1,0 +2020-04-20,Antelope,Nebraska,31003,1,0 +2020-04-21,Antelope,Nebraska,31003,1,0 +2020-04-22,Antelope,Nebraska,31003,1,0 +2020-04-23,Antelope,Nebraska,31003,1,0 +2020-04-24,Antelope,Nebraska,31003,1,0 +2020-04-25,Antelope,Nebraska,31003,2,0 +2020-04-26,Antelope,Nebraska,31003,2,0 +2020-04-27,Antelope,Nebraska,31003,2,0 +2020-04-28,Antelope,Nebraska,31003,2,0 +2020-04-29,Antelope,Nebraska,31003,2,0 +2020-04-30,Antelope,Nebraska,31003,2,0 +2020-05-01,Antelope,Nebraska,31003,3,0 +2020-05-02,Antelope,Nebraska,31003,3,0 +2020-05-03,Antelope,Nebraska,31003,3,0 +2020-05-04,Antelope,Nebraska,31003,4,0 +2020-05-05,Antelope,Nebraska,31003,4,0 +2020-05-06,Antelope,Nebraska,31003,5,0 +2020-05-07,Antelope,Nebraska,31003,6,0 +2020-05-08,Antelope,Nebraska,31003,6,0 +2020-05-09,Antelope,Nebraska,31003,6,0 +2020-05-10,Antelope,Nebraska,31003,6,0 +2020-05-11,Antelope,Nebraska,31003,6,0 +2020-05-12,Antelope,Nebraska,31003,6,0 +2020-05-13,Antelope,Nebraska,31003,6,0 +2020-05-14,Antelope,Nebraska,31003,6,0 +2020-05-15,Antelope,Nebraska,31003,6,0 +2020-05-16,Antelope,Nebraska,31003,6,0 +2020-05-17,Antelope,Nebraska,31003,6,0 +2020-05-18,Antelope,Nebraska,31003,6,0 +2020-05-19,Antelope,Nebraska,31003,7,0 +2020-05-20,Antelope,Nebraska,31003,7,0 +2020-05-21,Antelope,Nebraska,31003,7,0 +2020-05-22,Antelope,Nebraska,31003,7,0 +2020-05-23,Antelope,Nebraska,31003,7,0 +2020-05-24,Antelope,Nebraska,31003,7,0 +2020-05-25,Antelope,Nebraska,31003,7,0 +2020-05-26,Antelope,Nebraska,31003,8,0 +2020-05-27,Antelope,Nebraska,31003,8,0 +2020-05-28,Antelope,Nebraska,31003,8,0 +2020-05-29,Antelope,Nebraska,31003,8,0 +2020-05-30,Antelope,Nebraska,31003,8,0 +2020-05-31,Antelope,Nebraska,31003,8,0 +2020-06-01,Antelope,Nebraska,31003,8,0 +2020-06-02,Antelope,Nebraska,31003,8,0 +2020-06-03,Antelope,Nebraska,31003,8,0 +2020-06-04,Antelope,Nebraska,31003,8,0 +2020-06-05,Antelope,Nebraska,31003,8,0 +2020-06-06,Antelope,Nebraska,31003,8,0 +2020-06-07,Antelope,Nebraska,31003,8,0 +2020-06-08,Antelope,Nebraska,31003,8,0 +2020-06-09,Antelope,Nebraska,31003,8,0 +2020-06-10,Antelope,Nebraska,31003,8,0 +2020-06-11,Antelope,Nebraska,31003,8,0 +2020-06-12,Antelope,Nebraska,31003,8,0 +2020-06-13,Antelope,Nebraska,31003,8,0 +2020-06-14,Antelope,Nebraska,31003,8,0 +2020-06-15,Antelope,Nebraska,31003,8,0 +2020-06-16,Antelope,Nebraska,31003,8,0 +2020-06-17,Antelope,Nebraska,31003,8,0 +2020-06-18,Antelope,Nebraska,31003,8,0 +2020-06-19,Antelope,Nebraska,31003,8,0 +2020-06-20,Antelope,Nebraska,31003,8,0 +2020-06-21,Antelope,Nebraska,31003,8,0 +2020-06-22,Antelope,Nebraska,31003,8,0 +2020-06-23,Antelope,Nebraska,31003,8,0 +2020-06-24,Antelope,Nebraska,31003,9,1 +2020-06-25,Antelope,Nebraska,31003,9,1 +2020-06-26,Antelope,Nebraska,31003,9,1 +2020-06-27,Antelope,Nebraska,31003,9,1 +2020-06-28,Antelope,Nebraska,31003,9,1 +2020-06-29,Antelope,Nebraska,31003,9,1 +2020-06-30,Antelope,Nebraska,31003,9,1 +2020-07-01,Antelope,Nebraska,31003,9,1 +2020-07-02,Antelope,Nebraska,31003,9,1 +2020-07-03,Antelope,Nebraska,31003,9,1 +2020-07-04,Antelope,Nebraska,31003,9,1 +2020-07-05,Antelope,Nebraska,31003,9,1 +2020-07-06,Antelope,Nebraska,31003,9,1 +2020-07-07,Antelope,Nebraska,31003,9,1 +2020-07-08,Antelope,Nebraska,31003,9,1 +2020-07-09,Antelope,Nebraska,31003,11,1 +2020-06-09,Banner,Nebraska,31007,1,0 +2020-06-10,Banner,Nebraska,31007,1,0 +2020-06-11,Banner,Nebraska,31007,1,0 +2020-06-12,Banner,Nebraska,31007,1,0 +2020-06-13,Banner,Nebraska,31007,1,0 +2020-06-14,Banner,Nebraska,31007,1,0 +2020-06-15,Banner,Nebraska,31007,1,0 +2020-06-16,Banner,Nebraska,31007,1,0 +2020-06-17,Banner,Nebraska,31007,1,0 +2020-06-18,Banner,Nebraska,31007,1,0 +2020-06-19,Banner,Nebraska,31007,1,0 +2020-06-20,Banner,Nebraska,31007,1,0 +2020-06-21,Banner,Nebraska,31007,1,0 +2020-06-22,Banner,Nebraska,31007,1,0 +2020-06-23,Banner,Nebraska,31007,1,0 +2020-06-24,Banner,Nebraska,31007,1,0 +2020-06-25,Banner,Nebraska,31007,1,0 +2020-06-26,Banner,Nebraska,31007,1,0 +2020-06-27,Banner,Nebraska,31007,1,0 +2020-06-28,Banner,Nebraska,31007,1,0 +2020-06-29,Banner,Nebraska,31007,1,0 +2020-06-30,Banner,Nebraska,31007,1,0 +2020-07-01,Banner,Nebraska,31007,1,0 +2020-07-02,Banner,Nebraska,31007,1,0 +2020-07-03,Banner,Nebraska,31007,2,0 +2020-07-04,Banner,Nebraska,31007,2,0 +2020-07-05,Banner,Nebraska,31007,2,0 +2020-07-06,Banner,Nebraska,31007,2,0 +2020-07-07,Banner,Nebraska,31007,2,0 +2020-07-08,Banner,Nebraska,31007,2,0 +2020-07-09,Banner,Nebraska,31007,2,0 +2020-05-04,Boone,Nebraska,31011,1,0 +2020-05-05,Boone,Nebraska,31011,2,0 +2020-05-06,Boone,Nebraska,31011,2,0 +2020-05-07,Boone,Nebraska,31011,2,0 +2020-05-08,Boone,Nebraska,31011,2,0 +2020-05-09,Boone,Nebraska,31011,2,0 +2020-05-10,Boone,Nebraska,31011,2,0 +2020-05-11,Boone,Nebraska,31011,2,0 +2020-05-12,Boone,Nebraska,31011,2,0 +2020-05-13,Boone,Nebraska,31011,2,0 +2020-05-14,Boone,Nebraska,31011,3,0 +2020-05-15,Boone,Nebraska,31011,3,0 +2020-05-16,Boone,Nebraska,31011,3,0 +2020-05-17,Boone,Nebraska,31011,3,0 +2020-05-18,Boone,Nebraska,31011,3,0 +2020-05-19,Boone,Nebraska,31011,3,0 +2020-05-20,Boone,Nebraska,31011,3,0 +2020-05-21,Boone,Nebraska,31011,3,0 +2020-05-22,Boone,Nebraska,31011,3,0 +2020-05-23,Boone,Nebraska,31011,3,0 +2020-05-24,Boone,Nebraska,31011,3,0 +2020-05-25,Boone,Nebraska,31011,3,0 +2020-05-26,Boone,Nebraska,31011,3,0 +2020-05-27,Boone,Nebraska,31011,3,0 +2020-05-28,Boone,Nebraska,31011,4,0 +2020-05-29,Boone,Nebraska,31011,5,0 +2020-05-30,Boone,Nebraska,31011,6,0 +2020-05-31,Boone,Nebraska,31011,6,0 +2020-06-01,Boone,Nebraska,31011,6,0 +2020-06-02,Boone,Nebraska,31011,6,0 +2020-06-03,Boone,Nebraska,31011,6,0 +2020-06-04,Boone,Nebraska,31011,7,0 +2020-06-05,Boone,Nebraska,31011,7,0 +2020-06-06,Boone,Nebraska,31011,7,0 +2020-06-07,Boone,Nebraska,31011,7,0 +2020-06-08,Boone,Nebraska,31011,7,0 +2020-06-09,Boone,Nebraska,31011,7,0 +2020-06-10,Boone,Nebraska,31011,7,0 +2020-06-11,Boone,Nebraska,31011,7,0 +2020-06-12,Boone,Nebraska,31011,7,0 +2020-06-13,Boone,Nebraska,31011,7,0 +2020-06-14,Boone,Nebraska,31011,7,0 +2020-06-15,Boone,Nebraska,31011,7,0 +2020-06-16,Boone,Nebraska,31011,7,0 +2020-06-17,Boone,Nebraska,31011,7,0 +2020-06-18,Boone,Nebraska,31011,7,0 +2020-06-19,Boone,Nebraska,31011,7,0 +2020-06-20,Boone,Nebraska,31011,7,0 +2020-06-21,Boone,Nebraska,31011,7,0 +2020-06-22,Boone,Nebraska,31011,7,0 +2020-06-23,Boone,Nebraska,31011,7,0 +2020-06-24,Boone,Nebraska,31011,7,0 +2020-06-25,Boone,Nebraska,31011,7,0 +2020-06-26,Boone,Nebraska,31011,7,0 +2020-06-27,Boone,Nebraska,31011,7,0 +2020-06-28,Boone,Nebraska,31011,7,0 +2020-06-29,Boone,Nebraska,31011,7,0 +2020-06-30,Boone,Nebraska,31011,7,0 +2020-07-01,Boone,Nebraska,31011,7,0 +2020-07-02,Boone,Nebraska,31011,7,0 +2020-07-03,Boone,Nebraska,31011,7,0 +2020-07-04,Boone,Nebraska,31011,7,0 +2020-07-05,Boone,Nebraska,31011,7,0 +2020-07-06,Boone,Nebraska,31011,7,0 +2020-07-07,Boone,Nebraska,31011,7,0 +2020-07-08,Boone,Nebraska,31011,7,0 +2020-07-09,Boone,Nebraska,31011,7,0 +2020-04-11,Box Butte,Nebraska,31013,1,0 +2020-04-12,Box Butte,Nebraska,31013,1,0 +2020-04-13,Box Butte,Nebraska,31013,1,0 +2020-04-14,Box Butte,Nebraska,31013,1,0 +2020-04-15,Box Butte,Nebraska,31013,1,0 +2020-04-16,Box Butte,Nebraska,31013,1,0 +2020-04-17,Box Butte,Nebraska,31013,1,0 +2020-04-18,Box Butte,Nebraska,31013,1,0 +2020-04-19,Box Butte,Nebraska,31013,1,0 +2020-04-20,Box Butte,Nebraska,31013,1,0 +2020-04-21,Box Butte,Nebraska,31013,1,0 +2020-04-22,Box Butte,Nebraska,31013,1,0 +2020-04-23,Box Butte,Nebraska,31013,1,0 +2020-04-24,Box Butte,Nebraska,31013,1,0 +2020-04-25,Box Butte,Nebraska,31013,1,0 +2020-04-26,Box Butte,Nebraska,31013,1,0 +2020-04-27,Box Butte,Nebraska,31013,1,0 +2020-04-28,Box Butte,Nebraska,31013,1,0 +2020-04-29,Box Butte,Nebraska,31013,1,0 +2020-04-30,Box Butte,Nebraska,31013,1,0 +2020-05-01,Box Butte,Nebraska,31013,1,0 +2020-05-02,Box Butte,Nebraska,31013,1,0 +2020-05-03,Box Butte,Nebraska,31013,1,0 +2020-05-04,Box Butte,Nebraska,31013,1,0 +2020-05-05,Box Butte,Nebraska,31013,1,0 +2020-05-06,Box Butte,Nebraska,31013,1,0 +2020-05-07,Box Butte,Nebraska,31013,1,0 +2020-05-08,Box Butte,Nebraska,31013,1,0 +2020-05-09,Box Butte,Nebraska,31013,1,0 +2020-05-10,Box Butte,Nebraska,31013,1,0 +2020-05-11,Box Butte,Nebraska,31013,1,0 +2020-05-12,Box Butte,Nebraska,31013,1,0 +2020-05-13,Box Butte,Nebraska,31013,1,0 +2020-05-14,Box Butte,Nebraska,31013,1,0 +2020-05-15,Box Butte,Nebraska,31013,1,0 +2020-05-16,Box Butte,Nebraska,31013,1,0 +2020-05-17,Box Butte,Nebraska,31013,1,0 +2020-05-18,Box Butte,Nebraska,31013,1,0 +2020-05-19,Box Butte,Nebraska,31013,1,0 +2020-05-20,Box Butte,Nebraska,31013,1,0 +2020-05-21,Box Butte,Nebraska,31013,1,0 +2020-05-22,Box Butte,Nebraska,31013,1,0 +2020-05-23,Box Butte,Nebraska,31013,1,0 +2020-05-24,Box Butte,Nebraska,31013,2,0 +2020-05-25,Box Butte,Nebraska,31013,2,0 +2020-05-26,Box Butte,Nebraska,31013,2,0 +2020-05-27,Box Butte,Nebraska,31013,2,0 +2020-05-28,Box Butte,Nebraska,31013,2,0 +2020-05-29,Box Butte,Nebraska,31013,2,0 +2020-05-30,Box Butte,Nebraska,31013,2,0 +2020-05-31,Box Butte,Nebraska,31013,2,0 +2020-06-01,Box Butte,Nebraska,31013,2,0 +2020-06-02,Box Butte,Nebraska,31013,2,0 +2020-06-03,Box Butte,Nebraska,31013,2,0 +2020-06-04,Box Butte,Nebraska,31013,2,0 +2020-06-05,Box Butte,Nebraska,31013,2,0 +2020-06-06,Box Butte,Nebraska,31013,2,0 +2020-06-07,Box Butte,Nebraska,31013,3,0 +2020-06-08,Box Butte,Nebraska,31013,3,0 +2020-06-09,Box Butte,Nebraska,31013,3,0 +2020-06-10,Box Butte,Nebraska,31013,3,0 +2020-06-11,Box Butte,Nebraska,31013,3,0 +2020-06-12,Box Butte,Nebraska,31013,3,0 +2020-06-13,Box Butte,Nebraska,31013,3,0 +2020-06-14,Box Butte,Nebraska,31013,3,0 +2020-06-15,Box Butte,Nebraska,31013,3,0 +2020-06-16,Box Butte,Nebraska,31013,3,0 +2020-06-17,Box Butte,Nebraska,31013,3,0 +2020-06-18,Box Butte,Nebraska,31013,3,0 +2020-06-19,Box Butte,Nebraska,31013,3,0 +2020-06-20,Box Butte,Nebraska,31013,3,0 +2020-06-21,Box Butte,Nebraska,31013,3,0 +2020-06-22,Box Butte,Nebraska,31013,3,0 +2020-06-23,Box Butte,Nebraska,31013,3,0 +2020-06-24,Box Butte,Nebraska,31013,3,0 +2020-06-25,Box Butte,Nebraska,31013,3,0 +2020-06-26,Box Butte,Nebraska,31013,3,0 +2020-06-27,Box Butte,Nebraska,31013,3,0 +2020-06-28,Box Butte,Nebraska,31013,3,0 +2020-06-29,Box Butte,Nebraska,31013,3,0 +2020-06-30,Box Butte,Nebraska,31013,3,0 +2020-07-01,Box Butte,Nebraska,31013,3,0 +2020-07-02,Box Butte,Nebraska,31013,3,0 +2020-07-03,Box Butte,Nebraska,31013,3,0 +2020-07-04,Box Butte,Nebraska,31013,3,0 +2020-07-05,Box Butte,Nebraska,31013,3,0 +2020-07-06,Box Butte,Nebraska,31013,3,0 +2020-07-07,Box Butte,Nebraska,31013,3,0 +2020-07-08,Box Butte,Nebraska,31013,3,0 +2020-07-09,Box Butte,Nebraska,31013,4,0 +2020-06-01,Boyd,Nebraska,31015,1,0 +2020-06-02,Boyd,Nebraska,31015,1,0 +2020-06-03,Boyd,Nebraska,31015,1,0 +2020-06-04,Boyd,Nebraska,31015,1,0 +2020-06-05,Boyd,Nebraska,31015,1,0 +2020-06-06,Boyd,Nebraska,31015,1,0 +2020-06-07,Boyd,Nebraska,31015,1,0 +2020-06-08,Boyd,Nebraska,31015,1,0 +2020-06-09,Boyd,Nebraska,31015,1,0 +2020-06-10,Boyd,Nebraska,31015,1,0 +2020-06-11,Boyd,Nebraska,31015,1,0 +2020-06-12,Boyd,Nebraska,31015,1,0 +2020-06-13,Boyd,Nebraska,31015,1,0 +2020-06-14,Boyd,Nebraska,31015,1,0 +2020-06-15,Boyd,Nebraska,31015,1,0 +2020-06-16,Boyd,Nebraska,31015,1,0 +2020-06-17,Boyd,Nebraska,31015,1,0 +2020-06-18,Boyd,Nebraska,31015,1,0 +2020-06-19,Boyd,Nebraska,31015,1,0 +2020-06-20,Boyd,Nebraska,31015,1,0 +2020-06-21,Boyd,Nebraska,31015,1,0 +2020-06-22,Boyd,Nebraska,31015,1,0 +2020-06-23,Boyd,Nebraska,31015,1,0 +2020-06-24,Boyd,Nebraska,31015,1,0 +2020-06-25,Boyd,Nebraska,31015,1,0 +2020-06-26,Boyd,Nebraska,31015,1,0 +2020-06-27,Boyd,Nebraska,31015,1,0 +2020-06-28,Boyd,Nebraska,31015,1,0 +2020-06-29,Boyd,Nebraska,31015,1,0 +2020-06-30,Boyd,Nebraska,31015,1,0 +2020-07-01,Boyd,Nebraska,31015,1,0 +2020-07-02,Boyd,Nebraska,31015,1,0 +2020-07-03,Boyd,Nebraska,31015,1,0 +2020-07-04,Boyd,Nebraska,31015,1,0 +2020-07-05,Boyd,Nebraska,31015,1,0 +2020-07-06,Boyd,Nebraska,31015,1,0 +2020-07-07,Boyd,Nebraska,31015,1,0 +2020-07-08,Boyd,Nebraska,31015,1,0 +2020-07-09,Boyd,Nebraska,31015,1,0 +2020-03-20,Buffalo,Nebraska,31019,1,0 +2020-03-21,Buffalo,Nebraska,31019,2,0 +2020-03-22,Buffalo,Nebraska,31019,2,0 +2020-03-23,Buffalo,Nebraska,31019,2,0 +2020-03-24,Buffalo,Nebraska,31019,2,0 +2020-03-25,Buffalo,Nebraska,31019,2,0 +2020-03-26,Buffalo,Nebraska,31019,2,0 +2020-03-27,Buffalo,Nebraska,31019,4,0 +2020-03-28,Buffalo,Nebraska,31019,5,0 +2020-03-29,Buffalo,Nebraska,31019,5,0 +2020-03-30,Buffalo,Nebraska,31019,6,0 +2020-03-31,Buffalo,Nebraska,31019,6,1 +2020-04-01,Buffalo,Nebraska,31019,7,1 +2020-04-02,Buffalo,Nebraska,31019,8,1 +2020-04-03,Buffalo,Nebraska,31019,10,1 +2020-04-04,Buffalo,Nebraska,31019,14,1 +2020-04-05,Buffalo,Nebraska,31019,17,1 +2020-04-06,Buffalo,Nebraska,31019,18,1 +2020-04-07,Buffalo,Nebraska,31019,23,1 +2020-04-08,Buffalo,Nebraska,31019,28,1 +2020-04-09,Buffalo,Nebraska,31019,31,1 +2020-04-10,Buffalo,Nebraska,31019,31,1 +2020-04-11,Buffalo,Nebraska,31019,33,1 +2020-04-12,Buffalo,Nebraska,31019,36,1 +2020-04-13,Buffalo,Nebraska,31019,37,1 +2020-04-14,Buffalo,Nebraska,31019,41,1 +2020-04-15,Buffalo,Nebraska,31019,42,1 +2020-04-16,Buffalo,Nebraska,31019,44,1 +2020-04-17,Buffalo,Nebraska,31019,47,1 +2020-04-18,Buffalo,Nebraska,31019,49,1 +2020-04-19,Buffalo,Nebraska,31019,52,1 +2020-04-20,Buffalo,Nebraska,31019,55,1 +2020-04-21,Buffalo,Nebraska,31019,55,1 +2020-04-22,Buffalo,Nebraska,31019,61,1 +2020-04-23,Buffalo,Nebraska,31019,70,1 +2020-04-24,Buffalo,Nebraska,31019,75,1 +2020-04-25,Buffalo,Nebraska,31019,85,1 +2020-04-26,Buffalo,Nebraska,31019,88,1 +2020-04-27,Buffalo,Nebraska,31019,91,1 +2020-04-28,Buffalo,Nebraska,31019,94,1 +2020-04-29,Buffalo,Nebraska,31019,97,1 +2020-04-30,Buffalo,Nebraska,31019,101,1 +2020-05-01,Buffalo,Nebraska,31019,111,1 +2020-05-02,Buffalo,Nebraska,31019,113,1 +2020-05-03,Buffalo,Nebraska,31019,114,1 +2020-05-04,Buffalo,Nebraska,31019,116,1 +2020-05-05,Buffalo,Nebraska,31019,116,1 +2020-05-06,Buffalo,Nebraska,31019,116,1 +2020-05-07,Buffalo,Nebraska,31019,119,1 +2020-05-08,Buffalo,Nebraska,31019,119,1 +2020-05-09,Buffalo,Nebraska,31019,121,1 +2020-05-10,Buffalo,Nebraska,31019,121,1 +2020-05-11,Buffalo,Nebraska,31019,121,1 +2020-05-12,Buffalo,Nebraska,31019,126,1 +2020-05-13,Buffalo,Nebraska,31019,128,1 +2020-05-14,Buffalo,Nebraska,31019,130,1 +2020-05-15,Buffalo,Nebraska,31019,134,1 +2020-05-16,Buffalo,Nebraska,31019,136,1 +2020-05-17,Buffalo,Nebraska,31019,136,1 +2020-05-18,Buffalo,Nebraska,31019,136,1 +2020-05-19,Buffalo,Nebraska,31019,136,1 +2020-05-20,Buffalo,Nebraska,31019,136,1 +2020-05-21,Buffalo,Nebraska,31019,136,1 +2020-05-22,Buffalo,Nebraska,31019,137,1 +2020-05-23,Buffalo,Nebraska,31019,140,1 +2020-05-24,Buffalo,Nebraska,31019,142,1 +2020-05-25,Buffalo,Nebraska,31019,142,1 +2020-05-26,Buffalo,Nebraska,31019,145,1 +2020-05-27,Buffalo,Nebraska,31019,148,1 +2020-05-28,Buffalo,Nebraska,31019,150,1 +2020-05-29,Buffalo,Nebraska,31019,153,1 +2020-05-30,Buffalo,Nebraska,31019,156,1 +2020-05-31,Buffalo,Nebraska,31019,157,1 +2020-06-01,Buffalo,Nebraska,31019,159,1 +2020-06-02,Buffalo,Nebraska,31019,166,1 +2020-06-03,Buffalo,Nebraska,31019,168,1 +2020-06-04,Buffalo,Nebraska,31019,171,1 +2020-06-05,Buffalo,Nebraska,31019,172,1 +2020-06-06,Buffalo,Nebraska,31019,174,1 +2020-06-07,Buffalo,Nebraska,31019,173,1 +2020-06-08,Buffalo,Nebraska,31019,174,1 +2020-06-09,Buffalo,Nebraska,31019,175,1 +2020-06-10,Buffalo,Nebraska,31019,175,1 +2020-06-11,Buffalo,Nebraska,31019,177,1 +2020-06-12,Buffalo,Nebraska,31019,177,1 +2020-06-13,Buffalo,Nebraska,31019,177,1 +2020-06-14,Buffalo,Nebraska,31019,177,1 +2020-06-15,Buffalo,Nebraska,31019,176,1 +2020-06-16,Buffalo,Nebraska,31019,176,1 +2020-06-17,Buffalo,Nebraska,31019,176,1 +2020-06-18,Buffalo,Nebraska,31019,177,1 +2020-06-19,Buffalo,Nebraska,31019,178,1 +2020-06-20,Buffalo,Nebraska,31019,179,1 +2020-06-21,Buffalo,Nebraska,31019,179,1 +2020-06-22,Buffalo,Nebraska,31019,180,1 +2020-06-23,Buffalo,Nebraska,31019,181,1 +2020-06-24,Buffalo,Nebraska,31019,181,1 +2020-06-25,Buffalo,Nebraska,31019,181,1 +2020-06-26,Buffalo,Nebraska,31019,182,1 +2020-06-27,Buffalo,Nebraska,31019,183,1 +2020-06-28,Buffalo,Nebraska,31019,183,1 +2020-06-29,Buffalo,Nebraska,31019,184,1 +2020-06-30,Buffalo,Nebraska,31019,184,1 +2020-07-01,Buffalo,Nebraska,31019,189,1 +2020-07-02,Buffalo,Nebraska,31019,187,1 +2020-07-03,Buffalo,Nebraska,31019,192,1 +2020-07-04,Buffalo,Nebraska,31019,195,1 +2020-07-05,Buffalo,Nebraska,31019,194,1 +2020-07-06,Buffalo,Nebraska,31019,194,1 +2020-07-07,Buffalo,Nebraska,31019,196,1 +2020-07-08,Buffalo,Nebraska,31019,198,1 +2020-07-09,Buffalo,Nebraska,31019,202,1 +2020-04-09,Burt,Nebraska,31021,1,0 +2020-04-10,Burt,Nebraska,31021,1,0 +2020-04-11,Burt,Nebraska,31021,1,0 +2020-04-12,Burt,Nebraska,31021,1,0 +2020-04-13,Burt,Nebraska,31021,1,0 +2020-04-14,Burt,Nebraska,31021,1,0 +2020-04-15,Burt,Nebraska,31021,1,0 +2020-04-16,Burt,Nebraska,31021,1,0 +2020-04-17,Burt,Nebraska,31021,1,0 +2020-04-18,Burt,Nebraska,31021,1,0 +2020-04-19,Burt,Nebraska,31021,1,0 +2020-04-20,Burt,Nebraska,31021,1,0 +2020-04-21,Burt,Nebraska,31021,1,0 +2020-04-22,Burt,Nebraska,31021,1,0 +2020-04-23,Burt,Nebraska,31021,1,0 +2020-04-24,Burt,Nebraska,31021,1,0 +2020-04-25,Burt,Nebraska,31021,1,0 +2020-04-26,Burt,Nebraska,31021,2,0 +2020-04-27,Burt,Nebraska,31021,2,0 +2020-04-28,Burt,Nebraska,31021,2,0 +2020-04-29,Burt,Nebraska,31021,2,0 +2020-04-30,Burt,Nebraska,31021,3,0 +2020-05-01,Burt,Nebraska,31021,3,0 +2020-05-02,Burt,Nebraska,31021,4,0 +2020-05-03,Burt,Nebraska,31021,5,0 +2020-05-04,Burt,Nebraska,31021,5,0 +2020-05-05,Burt,Nebraska,31021,5,0 +2020-05-06,Burt,Nebraska,31021,5,0 +2020-05-07,Burt,Nebraska,31021,5,0 +2020-05-08,Burt,Nebraska,31021,5,0 +2020-05-09,Burt,Nebraska,31021,6,0 +2020-05-10,Burt,Nebraska,31021,6,0 +2020-05-11,Burt,Nebraska,31021,6,0 +2020-05-12,Burt,Nebraska,31021,6,0 +2020-05-13,Burt,Nebraska,31021,6,0 +2020-05-14,Burt,Nebraska,31021,6,0 +2020-05-15,Burt,Nebraska,31021,6,0 +2020-05-16,Burt,Nebraska,31021,6,0 +2020-05-17,Burt,Nebraska,31021,6,0 +2020-05-18,Burt,Nebraska,31021,6,0 +2020-05-19,Burt,Nebraska,31021,6,0 +2020-05-20,Burt,Nebraska,31021,6,0 +2020-05-21,Burt,Nebraska,31021,7,0 +2020-05-22,Burt,Nebraska,31021,8,0 +2020-05-23,Burt,Nebraska,31021,8,0 +2020-05-24,Burt,Nebraska,31021,8,0 +2020-05-25,Burt,Nebraska,31021,8,0 +2020-05-26,Burt,Nebraska,31021,9,0 +2020-05-27,Burt,Nebraska,31021,9,0 +2020-05-28,Burt,Nebraska,31021,9,0 +2020-05-29,Burt,Nebraska,31021,9,0 +2020-05-30,Burt,Nebraska,31021,9,0 +2020-05-31,Burt,Nebraska,31021,9,0 +2020-06-01,Burt,Nebraska,31021,8,0 +2020-06-02,Burt,Nebraska,31021,8,0 +2020-06-03,Burt,Nebraska,31021,8,0 +2020-06-04,Burt,Nebraska,31021,9,0 +2020-06-05,Burt,Nebraska,31021,10,0 +2020-06-06,Burt,Nebraska,31021,10,0 +2020-06-07,Burt,Nebraska,31021,10,0 +2020-06-08,Burt,Nebraska,31021,9,0 +2020-06-09,Burt,Nebraska,31021,9,0 +2020-06-10,Burt,Nebraska,31021,9,0 +2020-06-11,Burt,Nebraska,31021,9,0 +2020-06-12,Burt,Nebraska,31021,9,0 +2020-06-13,Burt,Nebraska,31021,9,0 +2020-06-14,Burt,Nebraska,31021,10,0 +2020-06-15,Burt,Nebraska,31021,11,0 +2020-06-16,Burt,Nebraska,31021,11,0 +2020-06-17,Burt,Nebraska,31021,11,0 +2020-06-18,Burt,Nebraska,31021,11,0 +2020-06-19,Burt,Nebraska,31021,11,0 +2020-06-20,Burt,Nebraska,31021,11,0 +2020-06-21,Burt,Nebraska,31021,11,0 +2020-06-22,Burt,Nebraska,31021,11,0 +2020-06-23,Burt,Nebraska,31021,11,0 +2020-06-24,Burt,Nebraska,31021,11,0 +2020-06-25,Burt,Nebraska,31021,11,0 +2020-06-26,Burt,Nebraska,31021,11,0 +2020-06-27,Burt,Nebraska,31021,12,0 +2020-06-28,Burt,Nebraska,31021,13,0 +2020-06-29,Burt,Nebraska,31021,13,0 +2020-06-30,Burt,Nebraska,31021,14,0 +2020-07-01,Burt,Nebraska,31021,14,0 +2020-07-02,Burt,Nebraska,31021,14,0 +2020-07-03,Burt,Nebraska,31021,14,0 +2020-07-04,Burt,Nebraska,31021,14,0 +2020-07-05,Burt,Nebraska,31021,14,0 +2020-07-06,Burt,Nebraska,31021,14,0 +2020-07-07,Burt,Nebraska,31021,14,0 +2020-07-08,Burt,Nebraska,31021,14,0 +2020-07-09,Burt,Nebraska,31021,14,0 +2020-04-17,Butler,Nebraska,31023,1,0 +2020-04-18,Butler,Nebraska,31023,1,0 +2020-04-19,Butler,Nebraska,31023,1,0 +2020-04-20,Butler,Nebraska,31023,1,0 +2020-04-21,Butler,Nebraska,31023,1,0 +2020-04-22,Butler,Nebraska,31023,1,0 +2020-04-23,Butler,Nebraska,31023,1,0 +2020-04-24,Butler,Nebraska,31023,1,0 +2020-04-25,Butler,Nebraska,31023,1,0 +2020-04-26,Butler,Nebraska,31023,2,0 +2020-04-27,Butler,Nebraska,31023,2,0 +2020-04-28,Butler,Nebraska,31023,2,0 +2020-04-29,Butler,Nebraska,31023,2,0 +2020-04-30,Butler,Nebraska,31023,4,0 +2020-05-01,Butler,Nebraska,31023,5,0 +2020-05-02,Butler,Nebraska,31023,6,0 +2020-05-03,Butler,Nebraska,31023,7,0 +2020-05-04,Butler,Nebraska,31023,8,0 +2020-05-05,Butler,Nebraska,31023,9,0 +2020-05-06,Butler,Nebraska,31023,11,0 +2020-05-07,Butler,Nebraska,31023,13,0 +2020-05-08,Butler,Nebraska,31023,15,0 +2020-05-09,Butler,Nebraska,31023,16,0 +2020-05-10,Butler,Nebraska,31023,16,0 +2020-05-11,Butler,Nebraska,31023,22,0 +2020-05-12,Butler,Nebraska,31023,23,0 +2020-05-13,Butler,Nebraska,31023,23,0 +2020-05-14,Butler,Nebraska,31023,27,0 +2020-05-15,Butler,Nebraska,31023,28,0 +2020-05-16,Butler,Nebraska,31023,29,0 +2020-05-17,Butler,Nebraska,31023,29,0 +2020-05-18,Butler,Nebraska,31023,31,0 +2020-05-19,Butler,Nebraska,31023,34,0 +2020-05-20,Butler,Nebraska,31023,37,0 +2020-05-21,Butler,Nebraska,31023,37,0 +2020-05-22,Butler,Nebraska,31023,44,0 +2020-05-23,Butler,Nebraska,31023,45,0 +2020-05-24,Butler,Nebraska,31023,45,0 +2020-05-25,Butler,Nebraska,31023,45,0 +2020-05-26,Butler,Nebraska,31023,45,0 +2020-05-27,Butler,Nebraska,31023,45,0 +2020-05-28,Butler,Nebraska,31023,47,0 +2020-05-29,Butler,Nebraska,31023,47,0 +2020-05-30,Butler,Nebraska,31023,48,0 +2020-05-31,Butler,Nebraska,31023,48,0 +2020-06-01,Butler,Nebraska,31023,48,0 +2020-06-02,Butler,Nebraska,31023,49,0 +2020-06-03,Butler,Nebraska,31023,50,0 +2020-06-04,Butler,Nebraska,31023,50,0 +2020-06-05,Butler,Nebraska,31023,50,0 +2020-06-06,Butler,Nebraska,31023,51,0 +2020-06-07,Butler,Nebraska,31023,51,0 +2020-06-08,Butler,Nebraska,31023,51,0 +2020-06-09,Butler,Nebraska,31023,50,0 +2020-06-10,Butler,Nebraska,31023,50,0 +2020-06-11,Butler,Nebraska,31023,50,0 +2020-06-12,Butler,Nebraska,31023,51,0 +2020-06-13,Butler,Nebraska,31023,51,0 +2020-06-14,Butler,Nebraska,31023,51,0 +2020-06-15,Butler,Nebraska,31023,51,0 +2020-06-16,Butler,Nebraska,31023,51,0 +2020-06-17,Butler,Nebraska,31023,51,0 +2020-06-18,Butler,Nebraska,31023,51,0 +2020-06-19,Butler,Nebraska,31023,51,0 +2020-06-20,Butler,Nebraska,31023,51,0 +2020-06-21,Butler,Nebraska,31023,51,0 +2020-06-22,Butler,Nebraska,31023,51,0 +2020-06-23,Butler,Nebraska,31023,51,0 +2020-06-24,Butler,Nebraska,31023,51,0 +2020-06-25,Butler,Nebraska,31023,51,0 +2020-06-26,Butler,Nebraska,31023,51,0 +2020-06-27,Butler,Nebraska,31023,51,0 +2020-06-28,Butler,Nebraska,31023,51,0 +2020-06-29,Butler,Nebraska,31023,51,0 +2020-06-30,Butler,Nebraska,31023,51,0 +2020-07-01,Butler,Nebraska,31023,51,0 +2020-07-02,Butler,Nebraska,31023,51,0 +2020-07-03,Butler,Nebraska,31023,51,0 +2020-07-04,Butler,Nebraska,31023,51,0 +2020-07-05,Butler,Nebraska,31023,51,0 +2020-07-06,Butler,Nebraska,31023,52,0 +2020-07-07,Butler,Nebraska,31023,51,0 +2020-07-08,Butler,Nebraska,31023,52,0 +2020-07-09,Butler,Nebraska,31023,51,0 +2020-03-12,Cass,Nebraska,31025,1,0 +2020-03-13,Cass,Nebraska,31025,1,0 +2020-03-14,Cass,Nebraska,31025,1,0 +2020-03-15,Cass,Nebraska,31025,1,0 +2020-03-16,Cass,Nebraska,31025,1,0 +2020-03-17,Cass,Nebraska,31025,1,0 +2020-03-18,Cass,Nebraska,31025,1,0 +2020-03-19,Cass,Nebraska,31025,1,0 +2020-03-20,Cass,Nebraska,31025,1,0 +2020-03-21,Cass,Nebraska,31025,1,0 +2020-03-22,Cass,Nebraska,31025,1,0 +2020-03-23,Cass,Nebraska,31025,2,0 +2020-03-24,Cass,Nebraska,31025,2,0 +2020-03-25,Cass,Nebraska,31025,2,0 +2020-03-26,Cass,Nebraska,31025,2,0 +2020-03-27,Cass,Nebraska,31025,2,0 +2020-03-28,Cass,Nebraska,31025,2,0 +2020-03-29,Cass,Nebraska,31025,2,0 +2020-03-30,Cass,Nebraska,31025,2,0 +2020-03-31,Cass,Nebraska,31025,2,0 +2020-04-01,Cass,Nebraska,31025,2,0 +2020-04-02,Cass,Nebraska,31025,2,0 +2020-04-03,Cass,Nebraska,31025,2,0 +2020-04-04,Cass,Nebraska,31025,2,0 +2020-04-05,Cass,Nebraska,31025,2,0 +2020-04-06,Cass,Nebraska,31025,2,0 +2020-04-07,Cass,Nebraska,31025,2,0 +2020-04-08,Cass,Nebraska,31025,3,0 +2020-04-09,Cass,Nebraska,31025,3,0 +2020-04-10,Cass,Nebraska,31025,3,0 +2020-04-11,Cass,Nebraska,31025,3,0 +2020-04-12,Cass,Nebraska,31025,3,0 +2020-04-13,Cass,Nebraska,31025,3,0 +2020-04-14,Cass,Nebraska,31025,3,0 +2020-04-15,Cass,Nebraska,31025,3,0 +2020-04-16,Cass,Nebraska,31025,3,0 +2020-04-17,Cass,Nebraska,31025,3,0 +2020-04-18,Cass,Nebraska,31025,3,0 +2020-04-19,Cass,Nebraska,31025,5,0 +2020-04-20,Cass,Nebraska,31025,5,0 +2020-04-21,Cass,Nebraska,31025,4,0 +2020-04-22,Cass,Nebraska,31025,4,0 +2020-04-23,Cass,Nebraska,31025,4,0 +2020-04-24,Cass,Nebraska,31025,4,0 +2020-04-25,Cass,Nebraska,31025,4,0 +2020-04-26,Cass,Nebraska,31025,4,0 +2020-04-27,Cass,Nebraska,31025,4,0 +2020-04-28,Cass,Nebraska,31025,4,0 +2020-04-29,Cass,Nebraska,31025,5,0 +2020-04-30,Cass,Nebraska,31025,5,0 +2020-05-01,Cass,Nebraska,31025,5,0 +2020-05-02,Cass,Nebraska,31025,6,0 +2020-05-03,Cass,Nebraska,31025,6,0 +2020-05-04,Cass,Nebraska,31025,6,0 +2020-05-05,Cass,Nebraska,31025,6,0 +2020-05-06,Cass,Nebraska,31025,7,0 +2020-05-07,Cass,Nebraska,31025,9,0 +2020-05-08,Cass,Nebraska,31025,9,0 +2020-05-09,Cass,Nebraska,31025,11,0 +2020-05-10,Cass,Nebraska,31025,11,0 +2020-05-11,Cass,Nebraska,31025,11,0 +2020-05-12,Cass,Nebraska,31025,13,0 +2020-05-13,Cass,Nebraska,31025,15,0 +2020-05-14,Cass,Nebraska,31025,15,0 +2020-05-15,Cass,Nebraska,31025,15,0 +2020-05-16,Cass,Nebraska,31025,18,0 +2020-05-17,Cass,Nebraska,31025,18,0 +2020-05-18,Cass,Nebraska,31025,21,0 +2020-05-19,Cass,Nebraska,31025,23,0 +2020-05-20,Cass,Nebraska,31025,26,0 +2020-05-21,Cass,Nebraska,31025,27,0 +2020-05-22,Cass,Nebraska,31025,28,0 +2020-05-23,Cass,Nebraska,31025,34,0 +2020-05-24,Cass,Nebraska,31025,37,0 +2020-05-25,Cass,Nebraska,31025,38,0 +2020-05-26,Cass,Nebraska,31025,39,0 +2020-05-27,Cass,Nebraska,31025,40,0 +2020-05-28,Cass,Nebraska,31025,42,0 +2020-05-29,Cass,Nebraska,31025,46,0 +2020-05-30,Cass,Nebraska,31025,47,0 +2020-05-31,Cass,Nebraska,31025,50,0 +2020-06-01,Cass,Nebraska,31025,51,0 +2020-06-02,Cass,Nebraska,31025,53,0 +2020-06-03,Cass,Nebraska,31025,53,0 +2020-06-04,Cass,Nebraska,31025,53,0 +2020-06-05,Cass,Nebraska,31025,54,0 +2020-06-06,Cass,Nebraska,31025,54,0 +2020-06-07,Cass,Nebraska,31025,55,0 +2020-06-08,Cass,Nebraska,31025,55,0 +2020-06-09,Cass,Nebraska,31025,57,0 +2020-06-10,Cass,Nebraska,31025,58,0 +2020-06-11,Cass,Nebraska,31025,59,0 +2020-06-12,Cass,Nebraska,31025,59,0 +2020-06-13,Cass,Nebraska,31025,60,0 +2020-06-14,Cass,Nebraska,31025,60,0 +2020-06-15,Cass,Nebraska,31025,60,0 +2020-06-16,Cass,Nebraska,31025,59,0 +2020-06-17,Cass,Nebraska,31025,59,0 +2020-06-18,Cass,Nebraska,31025,60,0 +2020-06-19,Cass,Nebraska,31025,60,0 +2020-06-20,Cass,Nebraska,31025,61,0 +2020-06-21,Cass,Nebraska,31025,61,0 +2020-06-22,Cass,Nebraska,31025,61,0 +2020-06-23,Cass,Nebraska,31025,61,0 +2020-06-24,Cass,Nebraska,31025,62,0 +2020-06-25,Cass,Nebraska,31025,63,0 +2020-06-26,Cass,Nebraska,31025,64,0 +2020-06-27,Cass,Nebraska,31025,65,1 +2020-06-28,Cass,Nebraska,31025,65,1 +2020-06-29,Cass,Nebraska,31025,66,1 +2020-06-30,Cass,Nebraska,31025,66,1 +2020-07-01,Cass,Nebraska,31025,67,1 +2020-07-02,Cass,Nebraska,31025,68,1 +2020-07-03,Cass,Nebraska,31025,70,1 +2020-07-04,Cass,Nebraska,31025,71,1 +2020-07-05,Cass,Nebraska,31025,71,1 +2020-07-06,Cass,Nebraska,31025,71,1 +2020-07-07,Cass,Nebraska,31025,74,1 +2020-07-08,Cass,Nebraska,31025,76,1 +2020-07-09,Cass,Nebraska,31025,80,1 +2020-04-27,Cedar,Nebraska,31027,2,0 +2020-04-28,Cedar,Nebraska,31027,2,0 +2020-04-29,Cedar,Nebraska,31027,2,0 +2020-04-30,Cedar,Nebraska,31027,4,0 +2020-05-01,Cedar,Nebraska,31027,4,0 +2020-05-02,Cedar,Nebraska,31027,4,0 +2020-05-03,Cedar,Nebraska,31027,4,0 +2020-05-04,Cedar,Nebraska,31027,4,0 +2020-05-05,Cedar,Nebraska,31027,4,0 +2020-05-06,Cedar,Nebraska,31027,4,0 +2020-05-07,Cedar,Nebraska,31027,5,0 +2020-05-08,Cedar,Nebraska,31027,5,0 +2020-05-09,Cedar,Nebraska,31027,5,0 +2020-05-10,Cedar,Nebraska,31027,6,0 +2020-05-11,Cedar,Nebraska,31027,6,0 +2020-05-12,Cedar,Nebraska,31027,6,0 +2020-05-13,Cedar,Nebraska,31027,6,0 +2020-05-14,Cedar,Nebraska,31027,6,0 +2020-05-15,Cedar,Nebraska,31027,6,0 +2020-05-16,Cedar,Nebraska,31027,6,0 +2020-05-17,Cedar,Nebraska,31027,6,0 +2020-05-18,Cedar,Nebraska,31027,6,0 +2020-05-19,Cedar,Nebraska,31027,6,0 +2020-05-20,Cedar,Nebraska,31027,6,0 +2020-05-21,Cedar,Nebraska,31027,6,0 +2020-05-22,Cedar,Nebraska,31027,7,0 +2020-05-23,Cedar,Nebraska,31027,7,0 +2020-05-24,Cedar,Nebraska,31027,7,0 +2020-05-25,Cedar,Nebraska,31027,7,0 +2020-05-26,Cedar,Nebraska,31027,7,0 +2020-05-27,Cedar,Nebraska,31027,7,0 +2020-05-28,Cedar,Nebraska,31027,7,0 +2020-05-29,Cedar,Nebraska,31027,7,0 +2020-05-30,Cedar,Nebraska,31027,8,0 +2020-05-31,Cedar,Nebraska,31027,8,0 +2020-06-01,Cedar,Nebraska,31027,8,0 +2020-06-02,Cedar,Nebraska,31027,8,0 +2020-06-03,Cedar,Nebraska,31027,8,0 +2020-06-04,Cedar,Nebraska,31027,8,0 +2020-06-05,Cedar,Nebraska,31027,8,0 +2020-06-06,Cedar,Nebraska,31027,8,0 +2020-06-07,Cedar,Nebraska,31027,8,0 +2020-06-08,Cedar,Nebraska,31027,8,0 +2020-06-09,Cedar,Nebraska,31027,8,0 +2020-06-10,Cedar,Nebraska,31027,8,0 +2020-06-11,Cedar,Nebraska,31027,8,0 +2020-06-12,Cedar,Nebraska,31027,8,0 +2020-06-13,Cedar,Nebraska,31027,8,0 +2020-06-14,Cedar,Nebraska,31027,8,0 +2020-06-15,Cedar,Nebraska,31027,8,0 +2020-06-16,Cedar,Nebraska,31027,8,0 +2020-06-17,Cedar,Nebraska,31027,8,0 +2020-06-18,Cedar,Nebraska,31027,8,0 +2020-06-19,Cedar,Nebraska,31027,9,0 +2020-06-20,Cedar,Nebraska,31027,9,0 +2020-06-21,Cedar,Nebraska,31027,9,0 +2020-06-22,Cedar,Nebraska,31027,10,0 +2020-06-23,Cedar,Nebraska,31027,11,0 +2020-06-24,Cedar,Nebraska,31027,11,0 +2020-06-25,Cedar,Nebraska,31027,11,0 +2020-06-26,Cedar,Nebraska,31027,13,0 +2020-06-27,Cedar,Nebraska,31027,13,0 +2020-06-28,Cedar,Nebraska,31027,13,0 +2020-06-29,Cedar,Nebraska,31027,17,0 +2020-06-30,Cedar,Nebraska,31027,17,0 +2020-07-01,Cedar,Nebraska,31027,17,0 +2020-07-02,Cedar,Nebraska,31027,17,0 +2020-07-03,Cedar,Nebraska,31027,17,0 +2020-07-04,Cedar,Nebraska,31027,17,0 +2020-07-05,Cedar,Nebraska,31027,17,0 +2020-07-06,Cedar,Nebraska,31027,17,0 +2020-07-07,Cedar,Nebraska,31027,17,0 +2020-07-08,Cedar,Nebraska,31027,18,0 +2020-07-09,Cedar,Nebraska,31027,18,0 +2020-05-24,Chase,Nebraska,31029,1,0 +2020-05-25,Chase,Nebraska,31029,1,0 +2020-05-26,Chase,Nebraska,31029,1,0 +2020-05-27,Chase,Nebraska,31029,1,0 +2020-05-28,Chase,Nebraska,31029,1,0 +2020-05-29,Chase,Nebraska,31029,1,0 +2020-05-30,Chase,Nebraska,31029,1,0 +2020-05-31,Chase,Nebraska,31029,1,0 +2020-06-01,Chase,Nebraska,31029,1,0 +2020-06-02,Chase,Nebraska,31029,1,0 +2020-06-03,Chase,Nebraska,31029,1,0 +2020-06-04,Chase,Nebraska,31029,1,0 +2020-06-05,Chase,Nebraska,31029,1,0 +2020-06-06,Chase,Nebraska,31029,1,0 +2020-06-07,Chase,Nebraska,31029,1,0 +2020-06-08,Chase,Nebraska,31029,1,0 +2020-06-09,Chase,Nebraska,31029,1,0 +2020-06-10,Chase,Nebraska,31029,1,0 +2020-06-11,Chase,Nebraska,31029,1,0 +2020-06-12,Chase,Nebraska,31029,1,0 +2020-06-13,Chase,Nebraska,31029,1,0 +2020-06-14,Chase,Nebraska,31029,1,0 +2020-06-15,Chase,Nebraska,31029,1,0 +2020-06-16,Chase,Nebraska,31029,1,0 +2020-06-17,Chase,Nebraska,31029,1,0 +2020-06-18,Chase,Nebraska,31029,1,0 +2020-06-19,Chase,Nebraska,31029,1,0 +2020-06-20,Chase,Nebraska,31029,1,0 +2020-06-21,Chase,Nebraska,31029,1,0 +2020-06-22,Chase,Nebraska,31029,1,0 +2020-06-23,Chase,Nebraska,31029,1,0 +2020-06-24,Chase,Nebraska,31029,1,0 +2020-06-25,Chase,Nebraska,31029,1,0 +2020-06-26,Chase,Nebraska,31029,1,0 +2020-06-27,Chase,Nebraska,31029,1,0 +2020-06-28,Chase,Nebraska,31029,1,0 +2020-06-29,Chase,Nebraska,31029,1,0 +2020-06-30,Chase,Nebraska,31029,1,0 +2020-07-01,Chase,Nebraska,31029,1,0 +2020-07-02,Chase,Nebraska,31029,1,0 +2020-07-03,Chase,Nebraska,31029,1,0 +2020-07-04,Chase,Nebraska,31029,1,0 +2020-07-05,Chase,Nebraska,31029,1,0 +2020-07-06,Chase,Nebraska,31029,1,0 +2020-07-07,Chase,Nebraska,31029,1,0 +2020-07-08,Chase,Nebraska,31029,1,0 +2020-07-09,Chase,Nebraska,31029,1,0 +2020-04-04,Cherry,Nebraska,31031,1,0 +2020-04-05,Cherry,Nebraska,31031,1,0 +2020-04-06,Cherry,Nebraska,31031,1,0 +2020-04-07,Cherry,Nebraska,31031,1,0 +2020-04-08,Cherry,Nebraska,31031,1,0 +2020-04-09,Cherry,Nebraska,31031,1,0 +2020-04-10,Cherry,Nebraska,31031,1,0 +2020-04-11,Cherry,Nebraska,31031,1,0 +2020-04-12,Cherry,Nebraska,31031,1,0 +2020-04-13,Cherry,Nebraska,31031,1,0 +2020-04-14,Cherry,Nebraska,31031,1,0 +2020-04-15,Cherry,Nebraska,31031,1,0 +2020-04-16,Cherry,Nebraska,31031,1,0 +2020-04-17,Cherry,Nebraska,31031,1,0 +2020-04-18,Cherry,Nebraska,31031,1,0 +2020-04-19,Cherry,Nebraska,31031,1,0 +2020-04-20,Cherry,Nebraska,31031,1,0 +2020-04-21,Cherry,Nebraska,31031,1,0 +2020-04-22,Cherry,Nebraska,31031,1,0 +2020-04-23,Cherry,Nebraska,31031,1,0 +2020-04-24,Cherry,Nebraska,31031,1,0 +2020-04-25,Cherry,Nebraska,31031,1,0 +2020-04-26,Cherry,Nebraska,31031,1,0 +2020-04-27,Cherry,Nebraska,31031,1,0 +2020-04-28,Cherry,Nebraska,31031,1,0 +2020-04-29,Cherry,Nebraska,31031,1,0 +2020-04-30,Cherry,Nebraska,31031,1,0 +2020-05-01,Cherry,Nebraska,31031,1,0 +2020-05-02,Cherry,Nebraska,31031,1,0 +2020-05-03,Cherry,Nebraska,31031,1,0 +2020-05-04,Cherry,Nebraska,31031,1,0 +2020-05-05,Cherry,Nebraska,31031,1,0 +2020-05-06,Cherry,Nebraska,31031,1,0 +2020-05-07,Cherry,Nebraska,31031,1,0 +2020-05-08,Cherry,Nebraska,31031,1,0 +2020-05-09,Cherry,Nebraska,31031,1,0 +2020-05-10,Cherry,Nebraska,31031,1,0 +2020-05-11,Cherry,Nebraska,31031,1,0 +2020-05-12,Cherry,Nebraska,31031,1,0 +2020-05-13,Cherry,Nebraska,31031,1,0 +2020-05-14,Cherry,Nebraska,31031,1,0 +2020-05-15,Cherry,Nebraska,31031,1,0 +2020-05-16,Cherry,Nebraska,31031,1,0 +2020-05-17,Cherry,Nebraska,31031,1,0 +2020-05-18,Cherry,Nebraska,31031,1,0 +2020-05-19,Cherry,Nebraska,31031,1,0 +2020-05-20,Cherry,Nebraska,31031,1,0 +2020-05-21,Cherry,Nebraska,31031,1,0 +2020-05-22,Cherry,Nebraska,31031,1,0 +2020-05-23,Cherry,Nebraska,31031,1,0 +2020-05-24,Cherry,Nebraska,31031,1,0 +2020-05-25,Cherry,Nebraska,31031,1,0 +2020-05-26,Cherry,Nebraska,31031,1,0 +2020-05-27,Cherry,Nebraska,31031,1,0 +2020-05-28,Cherry,Nebraska,31031,1,0 +2020-05-29,Cherry,Nebraska,31031,1,0 +2020-05-30,Cherry,Nebraska,31031,1,0 +2020-05-31,Cherry,Nebraska,31031,1,0 +2020-06-01,Cherry,Nebraska,31031,1,0 +2020-06-02,Cherry,Nebraska,31031,1,0 +2020-06-03,Cherry,Nebraska,31031,1,0 +2020-06-04,Cherry,Nebraska,31031,1,0 +2020-06-05,Cherry,Nebraska,31031,1,0 +2020-06-06,Cherry,Nebraska,31031,1,0 +2020-06-07,Cherry,Nebraska,31031,1,0 +2020-06-08,Cherry,Nebraska,31031,1,0 +2020-06-09,Cherry,Nebraska,31031,1,0 +2020-06-10,Cherry,Nebraska,31031,1,0 +2020-06-11,Cherry,Nebraska,31031,1,0 +2020-06-12,Cherry,Nebraska,31031,1,0 +2020-06-13,Cherry,Nebraska,31031,1,0 +2020-06-14,Cherry,Nebraska,31031,1,0 +2020-06-15,Cherry,Nebraska,31031,1,0 +2020-06-16,Cherry,Nebraska,31031,1,0 +2020-06-17,Cherry,Nebraska,31031,1,0 +2020-06-18,Cherry,Nebraska,31031,1,0 +2020-06-19,Cherry,Nebraska,31031,1,0 +2020-06-20,Cherry,Nebraska,31031,1,0 +2020-06-21,Cherry,Nebraska,31031,1,0 +2020-06-22,Cherry,Nebraska,31031,1,0 +2020-06-23,Cherry,Nebraska,31031,1,0 +2020-06-24,Cherry,Nebraska,31031,1,0 +2020-06-25,Cherry,Nebraska,31031,1,0 +2020-06-26,Cherry,Nebraska,31031,1,0 +2020-06-27,Cherry,Nebraska,31031,1,0 +2020-06-28,Cherry,Nebraska,31031,1,0 +2020-06-29,Cherry,Nebraska,31031,1,0 +2020-06-30,Cherry,Nebraska,31031,1,0 +2020-07-01,Cherry,Nebraska,31031,1,0 +2020-07-02,Cherry,Nebraska,31031,2,0 +2020-07-03,Cherry,Nebraska,31031,2,0 +2020-07-04,Cherry,Nebraska,31031,2,0 +2020-07-05,Cherry,Nebraska,31031,2,0 +2020-07-06,Cherry,Nebraska,31031,2,0 +2020-07-07,Cherry,Nebraska,31031,2,0 +2020-07-08,Cherry,Nebraska,31031,2,0 +2020-07-09,Cherry,Nebraska,31031,2,0 +2020-04-06,Cheyenne,Nebraska,31033,1,0 +2020-04-07,Cheyenne,Nebraska,31033,1,0 +2020-04-08,Cheyenne,Nebraska,31033,1,0 +2020-04-09,Cheyenne,Nebraska,31033,1,0 +2020-04-10,Cheyenne,Nebraska,31033,1,0 +2020-04-11,Cheyenne,Nebraska,31033,2,0 +2020-04-12,Cheyenne,Nebraska,31033,3,0 +2020-04-13,Cheyenne,Nebraska,31033,3,0 +2020-04-14,Cheyenne,Nebraska,31033,2,0 +2020-04-15,Cheyenne,Nebraska,31033,3,0 +2020-04-16,Cheyenne,Nebraska,31033,3,0 +2020-04-17,Cheyenne,Nebraska,31033,4,0 +2020-04-18,Cheyenne,Nebraska,31033,4,0 +2020-04-19,Cheyenne,Nebraska,31033,4,0 +2020-04-20,Cheyenne,Nebraska,31033,4,0 +2020-04-21,Cheyenne,Nebraska,31033,4,0 +2020-04-22,Cheyenne,Nebraska,31033,5,0 +2020-04-23,Cheyenne,Nebraska,31033,5,0 +2020-04-24,Cheyenne,Nebraska,31033,5,0 +2020-04-25,Cheyenne,Nebraska,31033,5,0 +2020-04-26,Cheyenne,Nebraska,31033,5,0 +2020-04-27,Cheyenne,Nebraska,31033,6,0 +2020-04-28,Cheyenne,Nebraska,31033,6,0 +2020-04-29,Cheyenne,Nebraska,31033,6,0 +2020-04-30,Cheyenne,Nebraska,31033,6,0 +2020-05-01,Cheyenne,Nebraska,31033,6,0 +2020-05-02,Cheyenne,Nebraska,31033,7,0 +2020-05-03,Cheyenne,Nebraska,31033,7,0 +2020-05-04,Cheyenne,Nebraska,31033,7,0 +2020-05-05,Cheyenne,Nebraska,31033,7,0 +2020-05-06,Cheyenne,Nebraska,31033,7,0 +2020-05-07,Cheyenne,Nebraska,31033,8,0 +2020-05-08,Cheyenne,Nebraska,31033,8,0 +2020-05-09,Cheyenne,Nebraska,31033,8,0 +2020-05-10,Cheyenne,Nebraska,31033,8,0 +2020-05-11,Cheyenne,Nebraska,31033,8,0 +2020-05-12,Cheyenne,Nebraska,31033,9,0 +2020-05-13,Cheyenne,Nebraska,31033,9,0 +2020-05-14,Cheyenne,Nebraska,31033,9,0 +2020-05-15,Cheyenne,Nebraska,31033,9,0 +2020-05-16,Cheyenne,Nebraska,31033,9,0 +2020-05-17,Cheyenne,Nebraska,31033,9,0 +2020-05-18,Cheyenne,Nebraska,31033,9,0 +2020-05-19,Cheyenne,Nebraska,31033,9,0 +2020-05-20,Cheyenne,Nebraska,31033,9,0 +2020-05-21,Cheyenne,Nebraska,31033,9,0 +2020-05-22,Cheyenne,Nebraska,31033,9,0 +2020-05-23,Cheyenne,Nebraska,31033,9,0 +2020-05-24,Cheyenne,Nebraska,31033,9,0 +2020-05-25,Cheyenne,Nebraska,31033,9,0 +2020-05-26,Cheyenne,Nebraska,31033,9,0 +2020-05-27,Cheyenne,Nebraska,31033,9,0 +2020-05-28,Cheyenne,Nebraska,31033,9,0 +2020-05-29,Cheyenne,Nebraska,31033,9,0 +2020-05-30,Cheyenne,Nebraska,31033,9,0 +2020-05-31,Cheyenne,Nebraska,31033,9,0 +2020-06-01,Cheyenne,Nebraska,31033,9,0 +2020-06-02,Cheyenne,Nebraska,31033,9,0 +2020-06-03,Cheyenne,Nebraska,31033,9,0 +2020-06-04,Cheyenne,Nebraska,31033,9,0 +2020-06-05,Cheyenne,Nebraska,31033,10,0 +2020-06-06,Cheyenne,Nebraska,31033,10,0 +2020-06-07,Cheyenne,Nebraska,31033,10,0 +2020-06-08,Cheyenne,Nebraska,31033,10,0 +2020-06-09,Cheyenne,Nebraska,31033,10,0 +2020-06-10,Cheyenne,Nebraska,31033,10,0 +2020-06-11,Cheyenne,Nebraska,31033,10,0 +2020-06-12,Cheyenne,Nebraska,31033,10,0 +2020-06-13,Cheyenne,Nebraska,31033,10,0 +2020-06-14,Cheyenne,Nebraska,31033,10,0 +2020-06-15,Cheyenne,Nebraska,31033,10,0 +2020-06-16,Cheyenne,Nebraska,31033,11,0 +2020-06-17,Cheyenne,Nebraska,31033,11,0 +2020-06-18,Cheyenne,Nebraska,31033,12,0 +2020-06-19,Cheyenne,Nebraska,31033,13,0 +2020-06-20,Cheyenne,Nebraska,31033,13,0 +2020-06-21,Cheyenne,Nebraska,31033,13,0 +2020-06-22,Cheyenne,Nebraska,31033,14,0 +2020-06-23,Cheyenne,Nebraska,31033,18,0 +2020-06-24,Cheyenne,Nebraska,31033,18,0 +2020-06-25,Cheyenne,Nebraska,31033,18,0 +2020-06-26,Cheyenne,Nebraska,31033,18,0 +2020-06-27,Cheyenne,Nebraska,31033,18,0 +2020-06-28,Cheyenne,Nebraska,31033,18,0 +2020-06-29,Cheyenne,Nebraska,31033,18,0 +2020-06-30,Cheyenne,Nebraska,31033,19,0 +2020-07-01,Cheyenne,Nebraska,31033,19,0 +2020-07-02,Cheyenne,Nebraska,31033,19,0 +2020-07-03,Cheyenne,Nebraska,31033,19,0 +2020-07-04,Cheyenne,Nebraska,31033,19,0 +2020-07-05,Cheyenne,Nebraska,31033,19,0 +2020-07-06,Cheyenne,Nebraska,31033,19,0 +2020-07-07,Cheyenne,Nebraska,31033,19,0 +2020-07-08,Cheyenne,Nebraska,31033,20,0 +2020-07-09,Cheyenne,Nebraska,31033,20,0 +2020-04-10,Clay,Nebraska,31035,1,0 +2020-04-11,Clay,Nebraska,31035,2,0 +2020-04-12,Clay,Nebraska,31035,2,0 +2020-04-13,Clay,Nebraska,31035,2,0 +2020-04-14,Clay,Nebraska,31035,2,0 +2020-04-15,Clay,Nebraska,31035,2,0 +2020-04-16,Clay,Nebraska,31035,3,0 +2020-04-17,Clay,Nebraska,31035,3,0 +2020-04-18,Clay,Nebraska,31035,3,0 +2020-04-19,Clay,Nebraska,31035,4,0 +2020-04-20,Clay,Nebraska,31035,4,0 +2020-04-21,Clay,Nebraska,31035,5,0 +2020-04-22,Clay,Nebraska,31035,5,0 +2020-04-23,Clay,Nebraska,31035,5,0 +2020-04-24,Clay,Nebraska,31035,5,0 +2020-04-25,Clay,Nebraska,31035,5,0 +2020-04-26,Clay,Nebraska,31035,6,0 +2020-04-27,Clay,Nebraska,31035,5,0 +2020-04-28,Clay,Nebraska,31035,5,0 +2020-04-29,Clay,Nebraska,31035,9,0 +2020-04-30,Clay,Nebraska,31035,9,0 +2020-05-01,Clay,Nebraska,31035,10,0 +2020-05-02,Clay,Nebraska,31035,11,0 +2020-05-03,Clay,Nebraska,31035,12,0 +2020-05-04,Clay,Nebraska,31035,13,0 +2020-05-05,Clay,Nebraska,31035,13,0 +2020-05-06,Clay,Nebraska,31035,13,0 +2020-05-07,Clay,Nebraska,31035,13,0 +2020-05-08,Clay,Nebraska,31035,13,0 +2020-05-09,Clay,Nebraska,31035,14,0 +2020-05-10,Clay,Nebraska,31035,14,0 +2020-05-11,Clay,Nebraska,31035,14,0 +2020-05-12,Clay,Nebraska,31035,14,0 +2020-05-13,Clay,Nebraska,31035,14,0 +2020-05-14,Clay,Nebraska,31035,20,0 +2020-05-15,Clay,Nebraska,31035,20,0 +2020-05-16,Clay,Nebraska,31035,20,0 +2020-05-17,Clay,Nebraska,31035,20,0 +2020-05-18,Clay,Nebraska,31035,20,0 +2020-05-19,Clay,Nebraska,31035,20,0 +2020-05-20,Clay,Nebraska,31035,20,0 +2020-05-21,Clay,Nebraska,31035,20,0 +2020-05-22,Clay,Nebraska,31035,22,0 +2020-05-23,Clay,Nebraska,31035,22,0 +2020-05-24,Clay,Nebraska,31035,22,0 +2020-05-25,Clay,Nebraska,31035,22,0 +2020-05-26,Clay,Nebraska,31035,23,0 +2020-05-27,Clay,Nebraska,31035,24,0 +2020-05-28,Clay,Nebraska,31035,24,0 +2020-05-29,Clay,Nebraska,31035,24,0 +2020-05-30,Clay,Nebraska,31035,24,0 +2020-05-31,Clay,Nebraska,31035,24,0 +2020-06-01,Clay,Nebraska,31035,24,0 +2020-06-02,Clay,Nebraska,31035,24,0 +2020-06-03,Clay,Nebraska,31035,24,0 +2020-06-04,Clay,Nebraska,31035,24,0 +2020-06-05,Clay,Nebraska,31035,24,0 +2020-06-06,Clay,Nebraska,31035,24,0 +2020-06-07,Clay,Nebraska,31035,24,0 +2020-06-08,Clay,Nebraska,31035,24,0 +2020-06-09,Clay,Nebraska,31035,24,0 +2020-06-10,Clay,Nebraska,31035,24,0 +2020-06-11,Clay,Nebraska,31035,24,0 +2020-06-12,Clay,Nebraska,31035,24,0 +2020-06-13,Clay,Nebraska,31035,24,0 +2020-06-14,Clay,Nebraska,31035,24,0 +2020-06-15,Clay,Nebraska,31035,24,0 +2020-06-16,Clay,Nebraska,31035,24,0 +2020-06-17,Clay,Nebraska,31035,24,0 +2020-06-18,Clay,Nebraska,31035,24,0 +2020-06-19,Clay,Nebraska,31035,25,0 +2020-06-20,Clay,Nebraska,31035,27,0 +2020-06-21,Clay,Nebraska,31035,27,0 +2020-06-22,Clay,Nebraska,31035,27,0 +2020-06-23,Clay,Nebraska,31035,27,0 +2020-06-24,Clay,Nebraska,31035,27,0 +2020-06-25,Clay,Nebraska,31035,27,0 +2020-06-26,Clay,Nebraska,31035,27,0 +2020-06-27,Clay,Nebraska,31035,27,0 +2020-06-28,Clay,Nebraska,31035,27,0 +2020-06-29,Clay,Nebraska,31035,27,0 +2020-06-30,Clay,Nebraska,31035,27,0 +2020-07-01,Clay,Nebraska,31035,27,0 +2020-07-02,Clay,Nebraska,31035,27,0 +2020-07-03,Clay,Nebraska,31035,27,0 +2020-07-04,Clay,Nebraska,31035,27,0 +2020-07-05,Clay,Nebraska,31035,27,0 +2020-07-06,Clay,Nebraska,31035,27,0 +2020-07-07,Clay,Nebraska,31035,28,0 +2020-07-08,Clay,Nebraska,31035,28,0 +2020-07-09,Clay,Nebraska,31035,28,0 +2020-04-02,Colfax,Nebraska,31037,1,0 +2020-04-03,Colfax,Nebraska,31037,1,0 +2020-04-04,Colfax,Nebraska,31037,1,0 +2020-04-05,Colfax,Nebraska,31037,2,0 +2020-04-06,Colfax,Nebraska,31037,3,0 +2020-04-07,Colfax,Nebraska,31037,3,0 +2020-04-08,Colfax,Nebraska,31037,3,0 +2020-04-09,Colfax,Nebraska,31037,3,0 +2020-04-10,Colfax,Nebraska,31037,4,0 +2020-04-11,Colfax,Nebraska,31037,4,0 +2020-04-12,Colfax,Nebraska,31037,4,0 +2020-04-13,Colfax,Nebraska,31037,4,0 +2020-04-14,Colfax,Nebraska,31037,4,0 +2020-04-15,Colfax,Nebraska,31037,4,0 +2020-04-16,Colfax,Nebraska,31037,4,0 +2020-04-17,Colfax,Nebraska,31037,4,0 +2020-04-18,Colfax,Nebraska,31037,4,0 +2020-04-19,Colfax,Nebraska,31037,4,0 +2020-04-20,Colfax,Nebraska,31037,5,0 +2020-04-21,Colfax,Nebraska,31037,5,0 +2020-04-22,Colfax,Nebraska,31037,5,0 +2020-04-23,Colfax,Nebraska,31037,6,0 +2020-04-24,Colfax,Nebraska,31037,9,0 +2020-04-25,Colfax,Nebraska,31037,9,0 +2020-04-26,Colfax,Nebraska,31037,20,0 +2020-04-27,Colfax,Nebraska,31037,22,0 +2020-04-28,Colfax,Nebraska,31037,23,0 +2020-04-29,Colfax,Nebraska,31037,44,0 +2020-04-30,Colfax,Nebraska,31037,69,0 +2020-05-01,Colfax,Nebraska,31037,116,0 +2020-05-02,Colfax,Nebraska,31037,153,0 +2020-05-03,Colfax,Nebraska,31037,161,0 +2020-05-04,Colfax,Nebraska,31037,241,0 +2020-05-05,Colfax,Nebraska,31037,255,0 +2020-05-06,Colfax,Nebraska,31037,292,1 +2020-05-07,Colfax,Nebraska,31037,338,1 +2020-05-08,Colfax,Nebraska,31037,391,1 +2020-05-09,Colfax,Nebraska,31037,413,1 +2020-05-10,Colfax,Nebraska,31037,411,1 +2020-05-11,Colfax,Nebraska,31037,419,1 +2020-05-12,Colfax,Nebraska,31037,431,1 +2020-05-13,Colfax,Nebraska,31037,446,1 +2020-05-14,Colfax,Nebraska,31037,467,1 +2020-05-15,Colfax,Nebraska,31037,481,1 +2020-05-16,Colfax,Nebraska,31037,508,1 +2020-05-17,Colfax,Nebraska,31037,516,1 +2020-05-18,Colfax,Nebraska,31037,528,1 +2020-05-19,Colfax,Nebraska,31037,532,1 +2020-05-20,Colfax,Nebraska,31037,559,2 +2020-05-21,Colfax,Nebraska,31037,573,2 +2020-05-22,Colfax,Nebraska,31037,580,2 +2020-05-23,Colfax,Nebraska,31037,592,2 +2020-05-24,Colfax,Nebraska,31037,599,3 +2020-05-25,Colfax,Nebraska,31037,602,3 +2020-05-26,Colfax,Nebraska,31037,604,3 +2020-05-27,Colfax,Nebraska,31037,604,3 +2020-05-28,Colfax,Nebraska,31037,609,4 +2020-05-29,Colfax,Nebraska,31037,612,5 +2020-05-30,Colfax,Nebraska,31037,612,4 +2020-05-31,Colfax,Nebraska,31037,617,4 +2020-06-01,Colfax,Nebraska,31037,619,4 +2020-06-02,Colfax,Nebraska,31037,620,4 +2020-06-03,Colfax,Nebraska,31037,624,4 +2020-06-04,Colfax,Nebraska,31037,626,4 +2020-06-05,Colfax,Nebraska,31037,631,4 +2020-06-06,Colfax,Nebraska,31037,635,4 +2020-06-07,Colfax,Nebraska,31037,637,4 +2020-06-08,Colfax,Nebraska,31037,636,4 +2020-06-09,Colfax,Nebraska,31037,639,4 +2020-06-10,Colfax,Nebraska,31037,638,4 +2020-06-11,Colfax,Nebraska,31037,643,4 +2020-06-12,Colfax,Nebraska,31037,646,4 +2020-06-13,Colfax,Nebraska,31037,646,4 +2020-06-14,Colfax,Nebraska,31037,647,4 +2020-06-15,Colfax,Nebraska,31037,647,4 +2020-06-16,Colfax,Nebraska,31037,651,4 +2020-06-17,Colfax,Nebraska,31037,653,4 +2020-06-18,Colfax,Nebraska,31037,653,4 +2020-06-19,Colfax,Nebraska,31037,655,4 +2020-06-20,Colfax,Nebraska,31037,657,4 +2020-06-21,Colfax,Nebraska,31037,658,4 +2020-06-22,Colfax,Nebraska,31037,661,4 +2020-06-23,Colfax,Nebraska,31037,661,4 +2020-06-24,Colfax,Nebraska,31037,663,4 +2020-06-25,Colfax,Nebraska,31037,664,4 +2020-06-26,Colfax,Nebraska,31037,665,4 +2020-06-27,Colfax,Nebraska,31037,665,4 +2020-06-28,Colfax,Nebraska,31037,666,4 +2020-06-29,Colfax,Nebraska,31037,667,4 +2020-06-30,Colfax,Nebraska,31037,668,4 +2020-07-01,Colfax,Nebraska,31037,670,4 +2020-07-02,Colfax,Nebraska,31037,670,4 +2020-07-03,Colfax,Nebraska,31037,668,4 +2020-07-04,Colfax,Nebraska,31037,669,4 +2020-07-05,Colfax,Nebraska,31037,670,4 +2020-07-06,Colfax,Nebraska,31037,670,4 +2020-07-07,Colfax,Nebraska,31037,671,4 +2020-07-08,Colfax,Nebraska,31037,671,4 +2020-07-09,Colfax,Nebraska,31037,676,4 +2020-04-01,Cuming,Nebraska,31039,1,0 +2020-04-02,Cuming,Nebraska,31039,1,0 +2020-04-03,Cuming,Nebraska,31039,1,0 +2020-04-04,Cuming,Nebraska,31039,1,0 +2020-04-05,Cuming,Nebraska,31039,2,0 +2020-04-06,Cuming,Nebraska,31039,2,0 +2020-04-07,Cuming,Nebraska,31039,2,0 +2020-04-08,Cuming,Nebraska,31039,2,0 +2020-04-09,Cuming,Nebraska,31039,2,0 +2020-04-10,Cuming,Nebraska,31039,2,0 +2020-04-11,Cuming,Nebraska,31039,2,0 +2020-04-12,Cuming,Nebraska,31039,2,0 +2020-04-13,Cuming,Nebraska,31039,2,0 +2020-04-14,Cuming,Nebraska,31039,2,0 +2020-04-15,Cuming,Nebraska,31039,2,0 +2020-04-16,Cuming,Nebraska,31039,2,0 +2020-04-17,Cuming,Nebraska,31039,2,0 +2020-04-18,Cuming,Nebraska,31039,2,0 +2020-04-19,Cuming,Nebraska,31039,2,0 +2020-04-20,Cuming,Nebraska,31039,2,0 +2020-04-21,Cuming,Nebraska,31039,2,0 +2020-04-22,Cuming,Nebraska,31039,2,0 +2020-04-23,Cuming,Nebraska,31039,3,0 +2020-04-24,Cuming,Nebraska,31039,3,0 +2020-04-25,Cuming,Nebraska,31039,3,0 +2020-04-26,Cuming,Nebraska,31039,3,0 +2020-04-27,Cuming,Nebraska,31039,4,0 +2020-04-28,Cuming,Nebraska,31039,5,0 +2020-04-29,Cuming,Nebraska,31039,5,0 +2020-04-30,Cuming,Nebraska,31039,6,0 +2020-05-01,Cuming,Nebraska,31039,6,0 +2020-05-02,Cuming,Nebraska,31039,7,0 +2020-05-03,Cuming,Nebraska,31039,7,0 +2020-05-04,Cuming,Nebraska,31039,9,0 +2020-05-05,Cuming,Nebraska,31039,11,0 +2020-05-06,Cuming,Nebraska,31039,11,0 +2020-05-07,Cuming,Nebraska,31039,11,0 +2020-05-08,Cuming,Nebraska,31039,11,0 +2020-05-09,Cuming,Nebraska,31039,12,0 +2020-05-10,Cuming,Nebraska,31039,14,0 +2020-05-11,Cuming,Nebraska,31039,15,0 +2020-05-12,Cuming,Nebraska,31039,15,0 +2020-05-13,Cuming,Nebraska,31039,15,0 +2020-05-14,Cuming,Nebraska,31039,15,0 +2020-05-15,Cuming,Nebraska,31039,16,0 +2020-05-16,Cuming,Nebraska,31039,16,0 +2020-05-17,Cuming,Nebraska,31039,17,0 +2020-05-18,Cuming,Nebraska,31039,17,0 +2020-05-19,Cuming,Nebraska,31039,17,0 +2020-05-20,Cuming,Nebraska,31039,18,0 +2020-05-21,Cuming,Nebraska,31039,26,0 +2020-05-22,Cuming,Nebraska,31039,26,0 +2020-05-23,Cuming,Nebraska,31039,32,0 +2020-05-24,Cuming,Nebraska,31039,31,0 +2020-05-25,Cuming,Nebraska,31039,31,0 +2020-05-26,Cuming,Nebraska,31039,31,0 +2020-05-27,Cuming,Nebraska,31039,31,0 +2020-05-28,Cuming,Nebraska,31039,31,0 +2020-05-29,Cuming,Nebraska,31039,31,0 +2020-05-30,Cuming,Nebraska,31039,31,0 +2020-05-31,Cuming,Nebraska,31039,31,0 +2020-06-01,Cuming,Nebraska,31039,32,0 +2020-06-02,Cuming,Nebraska,31039,34,0 +2020-06-03,Cuming,Nebraska,31039,34,0 +2020-06-04,Cuming,Nebraska,31039,34,0 +2020-06-05,Cuming,Nebraska,31039,34,0 +2020-06-06,Cuming,Nebraska,31039,34,0 +2020-06-07,Cuming,Nebraska,31039,34,0 +2020-06-08,Cuming,Nebraska,31039,34,0 +2020-06-09,Cuming,Nebraska,31039,34,0 +2020-06-10,Cuming,Nebraska,31039,34,0 +2020-06-11,Cuming,Nebraska,31039,34,0 +2020-06-12,Cuming,Nebraska,31039,34,0 +2020-06-13,Cuming,Nebraska,31039,34,0 +2020-06-14,Cuming,Nebraska,31039,34,0 +2020-06-15,Cuming,Nebraska,31039,34,0 +2020-06-16,Cuming,Nebraska,31039,34,0 +2020-06-17,Cuming,Nebraska,31039,34,0 +2020-06-18,Cuming,Nebraska,31039,34,0 +2020-06-19,Cuming,Nebraska,31039,34,0 +2020-06-20,Cuming,Nebraska,31039,34,0 +2020-06-21,Cuming,Nebraska,31039,34,0 +2020-06-22,Cuming,Nebraska,31039,34,0 +2020-06-23,Cuming,Nebraska,31039,34,0 +2020-06-24,Cuming,Nebraska,31039,34,0 +2020-06-25,Cuming,Nebraska,31039,34,0 +2020-06-26,Cuming,Nebraska,31039,34,0 +2020-06-27,Cuming,Nebraska,31039,34,0 +2020-06-28,Cuming,Nebraska,31039,35,0 +2020-06-29,Cuming,Nebraska,31039,36,0 +2020-06-30,Cuming,Nebraska,31039,35,0 +2020-07-01,Cuming,Nebraska,31039,35,1 +2020-07-02,Cuming,Nebraska,31039,35,1 +2020-07-03,Cuming,Nebraska,31039,36,1 +2020-07-04,Cuming,Nebraska,31039,36,1 +2020-07-05,Cuming,Nebraska,31039,36,1 +2020-07-06,Cuming,Nebraska,31039,37,1 +2020-07-07,Cuming,Nebraska,31039,37,0 +2020-07-08,Cuming,Nebraska,31039,38,0 +2020-07-09,Cuming,Nebraska,31039,38,0 +2020-04-06,Custer,Nebraska,31041,1,1 +2020-04-07,Custer,Nebraska,31041,2,1 +2020-04-08,Custer,Nebraska,31041,3,1 +2020-04-09,Custer,Nebraska,31041,3,1 +2020-04-10,Custer,Nebraska,31041,3,1 +2020-04-11,Custer,Nebraska,31041,13,1 +2020-04-12,Custer,Nebraska,31041,19,1 +2020-04-13,Custer,Nebraska,31041,19,1 +2020-04-14,Custer,Nebraska,31041,19,2 +2020-04-15,Custer,Nebraska,31041,19,2 +2020-04-16,Custer,Nebraska,31041,19,2 +2020-04-17,Custer,Nebraska,31041,19,2 +2020-04-18,Custer,Nebraska,31041,19,2 +2020-04-19,Custer,Nebraska,31041,20,2 +2020-04-20,Custer,Nebraska,31041,20,2 +2020-04-21,Custer,Nebraska,31041,20,2 +2020-04-22,Custer,Nebraska,31041,20,2 +2020-04-23,Custer,Nebraska,31041,20,2 +2020-04-24,Custer,Nebraska,31041,21,2 +2020-04-25,Custer,Nebraska,31041,21,2 +2020-04-26,Custer,Nebraska,31041,22,2 +2020-04-27,Custer,Nebraska,31041,22,2 +2020-04-28,Custer,Nebraska,31041,22,2 +2020-04-29,Custer,Nebraska,31041,22,2 +2020-04-30,Custer,Nebraska,31041,23,3 +2020-05-01,Custer,Nebraska,31041,24,3 +2020-05-02,Custer,Nebraska,31041,29,3 +2020-05-03,Custer,Nebraska,31041,32,3 +2020-05-04,Custer,Nebraska,31041,32,3 +2020-05-05,Custer,Nebraska,31041,32,3 +2020-05-06,Custer,Nebraska,31041,32,4 +2020-05-07,Custer,Nebraska,31041,33,4 +2020-05-08,Custer,Nebraska,31041,33,4 +2020-05-09,Custer,Nebraska,31041,33,4 +2020-05-10,Custer,Nebraska,31041,33,4 +2020-05-11,Custer,Nebraska,31041,33,4 +2020-05-12,Custer,Nebraska,31041,33,4 +2020-05-13,Custer,Nebraska,31041,33,4 +2020-05-14,Custer,Nebraska,31041,35,4 +2020-05-15,Custer,Nebraska,31041,35,4 +2020-05-16,Custer,Nebraska,31041,35,4 +2020-05-17,Custer,Nebraska,31041,35,4 +2020-05-18,Custer,Nebraska,31041,35,4 +2020-05-19,Custer,Nebraska,31041,35,4 +2020-05-20,Custer,Nebraska,31041,35,4 +2020-05-21,Custer,Nebraska,31041,35,4 +2020-05-22,Custer,Nebraska,31041,36,4 +2020-05-23,Custer,Nebraska,31041,36,4 +2020-05-24,Custer,Nebraska,31041,36,4 +2020-05-25,Custer,Nebraska,31041,36,4 +2020-05-26,Custer,Nebraska,31041,36,4 +2020-05-27,Custer,Nebraska,31041,36,4 +2020-05-28,Custer,Nebraska,31041,36,4 +2020-05-29,Custer,Nebraska,31041,36,4 +2020-05-30,Custer,Nebraska,31041,36,4 +2020-05-31,Custer,Nebraska,31041,36,4 +2020-06-01,Custer,Nebraska,31041,36,4 +2020-06-02,Custer,Nebraska,31041,36,4 +2020-06-03,Custer,Nebraska,31041,36,4 +2020-06-04,Custer,Nebraska,31041,36,4 +2020-06-05,Custer,Nebraska,31041,39,4 +2020-06-06,Custer,Nebraska,31041,39,4 +2020-06-07,Custer,Nebraska,31041,39,4 +2020-06-08,Custer,Nebraska,31041,39,4 +2020-06-09,Custer,Nebraska,31041,39,4 +2020-06-10,Custer,Nebraska,31041,39,4 +2020-06-11,Custer,Nebraska,31041,39,4 +2020-06-12,Custer,Nebraska,31041,39,4 +2020-06-13,Custer,Nebraska,31041,39,4 +2020-06-14,Custer,Nebraska,31041,39,4 +2020-06-15,Custer,Nebraska,31041,39,4 +2020-06-16,Custer,Nebraska,31041,39,4 +2020-06-17,Custer,Nebraska,31041,39,4 +2020-06-18,Custer,Nebraska,31041,39,4 +2020-06-19,Custer,Nebraska,31041,39,4 +2020-06-20,Custer,Nebraska,31041,39,4 +2020-06-21,Custer,Nebraska,31041,39,4 +2020-06-22,Custer,Nebraska,31041,39,4 +2020-06-23,Custer,Nebraska,31041,39,4 +2020-06-24,Custer,Nebraska,31041,41,4 +2020-06-25,Custer,Nebraska,31041,41,4 +2020-06-26,Custer,Nebraska,31041,40,4 +2020-06-27,Custer,Nebraska,31041,40,4 +2020-06-28,Custer,Nebraska,31041,40,4 +2020-06-29,Custer,Nebraska,31041,40,4 +2020-06-30,Custer,Nebraska,31041,40,4 +2020-07-01,Custer,Nebraska,31041,40,4 +2020-07-02,Custer,Nebraska,31041,40,4 +2020-07-03,Custer,Nebraska,31041,40,4 +2020-07-04,Custer,Nebraska,31041,40,4 +2020-07-05,Custer,Nebraska,31041,40,4 +2020-07-06,Custer,Nebraska,31041,41,4 +2020-07-07,Custer,Nebraska,31041,40,4 +2020-07-08,Custer,Nebraska,31041,40,4 +2020-07-09,Custer,Nebraska,31041,40,4 +2020-04-12,Dakota,Nebraska,31043,2,0 +2020-04-13,Dakota,Nebraska,31043,2,0 +2020-04-14,Dakota,Nebraska,31043,2,0 +2020-04-15,Dakota,Nebraska,31043,3,0 +2020-04-16,Dakota,Nebraska,31043,7,0 +2020-04-17,Dakota,Nebraska,31043,22,0 +2020-04-18,Dakota,Nebraska,31043,28,0 +2020-04-19,Dakota,Nebraska,31043,29,0 +2020-04-20,Dakota,Nebraska,31043,51,0 +2020-04-21,Dakota,Nebraska,31043,73,0 +2020-04-22,Dakota,Nebraska,31043,86,0 +2020-04-23,Dakota,Nebraska,31043,168,0 +2020-04-24,Dakota,Nebraska,31043,233,0 +2020-04-25,Dakota,Nebraska,31043,462,1 +2020-04-26,Dakota,Nebraska,31043,472,1 +2020-04-27,Dakota,Nebraska,31043,608,1 +2020-04-28,Dakota,Nebraska,31043,629,1 +2020-04-29,Dakota,Nebraska,31043,629,1 +2020-04-30,Dakota,Nebraska,31043,704,1 +2020-05-01,Dakota,Nebraska,31043,714,1 +2020-05-02,Dakota,Nebraska,31043,942,2 +2020-05-03,Dakota,Nebraska,31043,980,2 +2020-05-04,Dakota,Nebraska,31043,1005,2 +2020-05-05,Dakota,Nebraska,31043,1014,3 +2020-05-06,Dakota,Nebraska,31043,1014,3 +2020-05-07,Dakota,Nebraska,31043,1046,5 +2020-05-08,Dakota,Nebraska,31043,1407,5 +2020-05-09,Dakota,Nebraska,31043,1407,5 +2020-05-10,Dakota,Nebraska,31043,1407,5 +2020-05-11,Dakota,Nebraska,31043,1452,7 +2020-05-12,Dakota,Nebraska,31043,1453,7 +2020-05-13,Dakota,Nebraska,31043,1453,7 +2020-05-14,Dakota,Nebraska,31043,1492,9 +2020-05-15,Dakota,Nebraska,31043,1492,10 +2020-05-16,Dakota,Nebraska,31043,1509,14 +2020-05-17,Dakota,Nebraska,31043,1511,14 +2020-05-18,Dakota,Nebraska,31043,1565,14 +2020-05-19,Dakota,Nebraska,31043,1565,16 +2020-05-20,Dakota,Nebraska,31043,1576,17 +2020-05-21,Dakota,Nebraska,31043,1579,17 +2020-05-22,Dakota,Nebraska,31043,1585,17 +2020-05-23,Dakota,Nebraska,31043,1585,18 +2020-05-24,Dakota,Nebraska,31043,1596,18 +2020-05-25,Dakota,Nebraska,31043,1622,20 +2020-05-26,Dakota,Nebraska,31043,1648,21 +2020-05-27,Dakota,Nebraska,31043,1649,23 +2020-05-28,Dakota,Nebraska,31043,1651,23 +2020-05-29,Dakota,Nebraska,31043,1654,24 +2020-05-30,Dakota,Nebraska,31043,1663,25 +2020-05-31,Dakota,Nebraska,31043,1669,25 +2020-06-01,Dakota,Nebraska,31043,1681,25 +2020-06-02,Dakota,Nebraska,31043,1683,26 +2020-06-03,Dakota,Nebraska,31043,1689,26 +2020-06-04,Dakota,Nebraska,31043,1696,27 +2020-06-05,Dakota,Nebraska,31043,1708,27 +2020-06-06,Dakota,Nebraska,31043,1708,27 +2020-06-07,Dakota,Nebraska,31043,1710,27 +2020-06-08,Dakota,Nebraska,31043,1720,27 +2020-06-09,Dakota,Nebraska,31043,1720,27 +2020-06-10,Dakota,Nebraska,31043,1721,30 +2020-06-11,Dakota,Nebraska,31043,1731,31 +2020-06-12,Dakota,Nebraska,31043,1731,31 +2020-06-13,Dakota,Nebraska,31043,1738,31 +2020-06-14,Dakota,Nebraska,31043,1739,31 +2020-06-15,Dakota,Nebraska,31043,1741,32 +2020-06-16,Dakota,Nebraska,31043,1742,32 +2020-06-17,Dakota,Nebraska,31043,1743,32 +2020-06-18,Dakota,Nebraska,31043,1746,33 +2020-06-19,Dakota,Nebraska,31043,1751,33 +2020-06-20,Dakota,Nebraska,31043,1751,33 +2020-06-21,Dakota,Nebraska,31043,1751,33 +2020-06-22,Dakota,Nebraska,31043,1753,34 +2020-06-23,Dakota,Nebraska,31043,1757,34 +2020-06-24,Dakota,Nebraska,31043,1758,34 +2020-06-25,Dakota,Nebraska,31043,1761,34 +2020-06-26,Dakota,Nebraska,31043,1764,34 +2020-06-27,Dakota,Nebraska,31043,1764,34 +2020-06-28,Dakota,Nebraska,31043,1764,34 +2020-06-29,Dakota,Nebraska,31043,1778,35 +2020-06-30,Dakota,Nebraska,31043,1781,36 +2020-07-01,Dakota,Nebraska,31043,1781,36 +2020-07-02,Dakota,Nebraska,31043,1785,37 +2020-07-03,Dakota,Nebraska,31043,1789,37 +2020-07-04,Dakota,Nebraska,31043,1789,37 +2020-07-05,Dakota,Nebraska,31043,1789,37 +2020-07-06,Dakota,Nebraska,31043,1793,37 +2020-07-07,Dakota,Nebraska,31043,1797,38 +2020-07-08,Dakota,Nebraska,31043,1800,38 +2020-07-09,Dakota,Nebraska,31043,1805,38 +2020-05-09,Dawes,Nebraska,31045,1,0 +2020-05-10,Dawes,Nebraska,31045,1,0 +2020-05-11,Dawes,Nebraska,31045,1,0 +2020-05-12,Dawes,Nebraska,31045,1,0 +2020-05-13,Dawes,Nebraska,31045,1,0 +2020-05-14,Dawes,Nebraska,31045,1,0 +2020-05-15,Dawes,Nebraska,31045,1,0 +2020-05-16,Dawes,Nebraska,31045,2,0 +2020-05-17,Dawes,Nebraska,31045,1,0 +2020-05-18,Dawes,Nebraska,31045,1,0 +2020-05-19,Dawes,Nebraska,31045,2,0 +2020-05-20,Dawes,Nebraska,31045,1,0 +2020-05-21,Dawes,Nebraska,31045,1,0 +2020-05-22,Dawes,Nebraska,31045,1,0 +2020-05-23,Dawes,Nebraska,31045,1,0 +2020-05-24,Dawes,Nebraska,31045,1,0 +2020-05-25,Dawes,Nebraska,31045,1,0 +2020-05-26,Dawes,Nebraska,31045,1,0 +2020-05-27,Dawes,Nebraska,31045,1,0 +2020-05-28,Dawes,Nebraska,31045,1,0 +2020-05-29,Dawes,Nebraska,31045,1,0 +2020-05-30,Dawes,Nebraska,31045,1,0 +2020-05-31,Dawes,Nebraska,31045,1,0 +2020-06-01,Dawes,Nebraska,31045,1,0 +2020-06-02,Dawes,Nebraska,31045,1,0 +2020-06-03,Dawes,Nebraska,31045,1,0 +2020-06-04,Dawes,Nebraska,31045,1,0 +2020-06-05,Dawes,Nebraska,31045,1,0 +2020-06-06,Dawes,Nebraska,31045,1,0 +2020-06-07,Dawes,Nebraska,31045,1,0 +2020-06-08,Dawes,Nebraska,31045,1,0 +2020-06-09,Dawes,Nebraska,31045,1,0 +2020-06-10,Dawes,Nebraska,31045,1,0 +2020-06-11,Dawes,Nebraska,31045,1,0 +2020-06-12,Dawes,Nebraska,31045,1,0 +2020-06-13,Dawes,Nebraska,31045,1,0 +2020-06-14,Dawes,Nebraska,31045,1,0 +2020-06-15,Dawes,Nebraska,31045,1,0 +2020-06-16,Dawes,Nebraska,31045,1,0 +2020-06-17,Dawes,Nebraska,31045,1,0 +2020-06-18,Dawes,Nebraska,31045,1,0 +2020-06-19,Dawes,Nebraska,31045,2,0 +2020-06-20,Dawes,Nebraska,31045,2,0 +2020-06-21,Dawes,Nebraska,31045,2,0 +2020-06-22,Dawes,Nebraska,31045,2,0 +2020-06-23,Dawes,Nebraska,31045,2,0 +2020-06-24,Dawes,Nebraska,31045,2,0 +2020-06-25,Dawes,Nebraska,31045,2,0 +2020-06-26,Dawes,Nebraska,31045,2,0 +2020-06-27,Dawes,Nebraska,31045,2,0 +2020-06-28,Dawes,Nebraska,31045,2,0 +2020-06-29,Dawes,Nebraska,31045,2,0 +2020-06-30,Dawes,Nebraska,31045,3,0 +2020-07-01,Dawes,Nebraska,31045,4,0 +2020-07-02,Dawes,Nebraska,31045,4,0 +2020-07-03,Dawes,Nebraska,31045,5,0 +2020-07-04,Dawes,Nebraska,31045,5,0 +2020-07-05,Dawes,Nebraska,31045,5,0 +2020-07-06,Dawes,Nebraska,31045,5,0 +2020-07-07,Dawes,Nebraska,31045,5,0 +2020-07-08,Dawes,Nebraska,31045,4,0 +2020-07-09,Dawes,Nebraska,31045,4,0 +2020-03-22,Dawson,Nebraska,31047,1,0 +2020-03-23,Dawson,Nebraska,31047,1,0 +2020-03-24,Dawson,Nebraska,31047,1,0 +2020-03-25,Dawson,Nebraska,31047,1,0 +2020-03-26,Dawson,Nebraska,31047,1,0 +2020-03-27,Dawson,Nebraska,31047,1,0 +2020-03-28,Dawson,Nebraska,31047,1,0 +2020-03-29,Dawson,Nebraska,31047,1,0 +2020-03-30,Dawson,Nebraska,31047,1,0 +2020-03-31,Dawson,Nebraska,31047,1,0 +2020-04-01,Dawson,Nebraska,31047,1,0 +2020-04-02,Dawson,Nebraska,31047,1,0 +2020-04-03,Dawson,Nebraska,31047,1,0 +2020-04-04,Dawson,Nebraska,31047,1,0 +2020-04-05,Dawson,Nebraska,31047,1,0 +2020-04-06,Dawson,Nebraska,31047,1,0 +2020-04-07,Dawson,Nebraska,31047,1,0 +2020-04-08,Dawson,Nebraska,31047,1,0 +2020-04-09,Dawson,Nebraska,31047,2,0 +2020-04-10,Dawson,Nebraska,31047,3,0 +2020-04-11,Dawson,Nebraska,31047,3,0 +2020-04-12,Dawson,Nebraska,31047,13,0 +2020-04-13,Dawson,Nebraska,31047,17,0 +2020-04-14,Dawson,Nebraska,31047,21,0 +2020-04-15,Dawson,Nebraska,31047,21,0 +2020-04-16,Dawson,Nebraska,31047,24,0 +2020-04-17,Dawson,Nebraska,31047,30,0 +2020-04-18,Dawson,Nebraska,31047,43,0 +2020-04-19,Dawson,Nebraska,31047,124,0 +2020-04-20,Dawson,Nebraska,31047,172,0 +2020-04-21,Dawson,Nebraska,31047,176,0 +2020-04-22,Dawson,Nebraska,31047,197,0 +2020-04-23,Dawson,Nebraska,31047,256,0 +2020-04-24,Dawson,Nebraska,31047,307,0 +2020-04-25,Dawson,Nebraska,31047,352,0 +2020-04-26,Dawson,Nebraska,31047,367,0 +2020-04-27,Dawson,Nebraska,31047,409,0 +2020-04-28,Dawson,Nebraska,31047,410,0 +2020-04-29,Dawson,Nebraska,31047,424,0 +2020-04-30,Dawson,Nebraska,31047,458,0 +2020-05-01,Dawson,Nebraska,31047,505,1 +2020-05-02,Dawson,Nebraska,31047,518,1 +2020-05-03,Dawson,Nebraska,31047,543,3 +2020-05-04,Dawson,Nebraska,31047,552,3 +2020-05-05,Dawson,Nebraska,31047,617,3 +2020-05-06,Dawson,Nebraska,31047,676,3 +2020-05-07,Dawson,Nebraska,31047,680,3 +2020-05-08,Dawson,Nebraska,31047,686,3 +2020-05-09,Dawson,Nebraska,31047,705,3 +2020-05-10,Dawson,Nebraska,31047,707,3 +2020-05-11,Dawson,Nebraska,31047,712,3 +2020-05-12,Dawson,Nebraska,31047,717,3 +2020-05-13,Dawson,Nebraska,31047,753,3 +2020-05-14,Dawson,Nebraska,31047,756,6 +2020-05-15,Dawson,Nebraska,31047,778,7 +2020-05-16,Dawson,Nebraska,31047,804,7 +2020-05-17,Dawson,Nebraska,31047,805,7 +2020-05-18,Dawson,Nebraska,31047,811,7 +2020-05-19,Dawson,Nebraska,31047,810,7 +2020-05-20,Dawson,Nebraska,31047,812,7 +2020-05-21,Dawson,Nebraska,31047,813,7 +2020-05-22,Dawson,Nebraska,31047,814,7 +2020-05-23,Dawson,Nebraska,31047,816,7 +2020-05-24,Dawson,Nebraska,31047,820,7 +2020-05-25,Dawson,Nebraska,31047,820,7 +2020-05-26,Dawson,Nebraska,31047,826,7 +2020-05-27,Dawson,Nebraska,31047,827,7 +2020-05-28,Dawson,Nebraska,31047,833,7 +2020-05-29,Dawson,Nebraska,31047,833,7 +2020-05-30,Dawson,Nebraska,31047,835,7 +2020-05-31,Dawson,Nebraska,31047,838,7 +2020-06-01,Dawson,Nebraska,31047,839,8 +2020-06-02,Dawson,Nebraska,31047,839,8 +2020-06-03,Dawson,Nebraska,31047,840,8 +2020-06-04,Dawson,Nebraska,31047,841,8 +2020-06-05,Dawson,Nebraska,31047,842,8 +2020-06-06,Dawson,Nebraska,31047,841,8 +2020-06-07,Dawson,Nebraska,31047,843,8 +2020-06-08,Dawson,Nebraska,31047,843,8 +2020-06-09,Dawson,Nebraska,31047,843,8 +2020-06-10,Dawson,Nebraska,31047,844,8 +2020-06-11,Dawson,Nebraska,31047,844,8 +2020-06-12,Dawson,Nebraska,31047,844,8 +2020-06-13,Dawson,Nebraska,31047,844,8 +2020-06-14,Dawson,Nebraska,31047,844,8 +2020-06-15,Dawson,Nebraska,31047,845,8 +2020-06-16,Dawson,Nebraska,31047,846,8 +2020-06-17,Dawson,Nebraska,31047,847,8 +2020-06-18,Dawson,Nebraska,31047,847,8 +2020-06-19,Dawson,Nebraska,31047,848,8 +2020-06-20,Dawson,Nebraska,31047,849,8 +2020-06-21,Dawson,Nebraska,31047,850,8 +2020-06-22,Dawson,Nebraska,31047,849,8 +2020-06-23,Dawson,Nebraska,31047,851,8 +2020-06-24,Dawson,Nebraska,31047,854,8 +2020-06-25,Dawson,Nebraska,31047,854,8 +2020-06-26,Dawson,Nebraska,31047,854,8 +2020-06-27,Dawson,Nebraska,31047,857,8 +2020-06-28,Dawson,Nebraska,31047,857,8 +2020-06-29,Dawson,Nebraska,31047,857,8 +2020-06-30,Dawson,Nebraska,31047,857,8 +2020-07-01,Dawson,Nebraska,31047,859,8 +2020-07-02,Dawson,Nebraska,31047,860,8 +2020-07-03,Dawson,Nebraska,31047,861,8 +2020-07-04,Dawson,Nebraska,31047,861,8 +2020-07-05,Dawson,Nebraska,31047,861,8 +2020-07-06,Dawson,Nebraska,31047,861,8 +2020-07-07,Dawson,Nebraska,31047,863,8 +2020-07-08,Dawson,Nebraska,31047,867,8 +2020-07-09,Dawson,Nebraska,31047,869,8 +2020-04-20,Dixon,Nebraska,31051,1,0 +2020-04-21,Dixon,Nebraska,31051,1,0 +2020-04-22,Dixon,Nebraska,31051,1,0 +2020-04-23,Dixon,Nebraska,31051,1,0 +2020-04-24,Dixon,Nebraska,31051,1,0 +2020-04-25,Dixon,Nebraska,31051,2,0 +2020-04-26,Dixon,Nebraska,31051,2,0 +2020-04-27,Dixon,Nebraska,31051,3,0 +2020-04-28,Dixon,Nebraska,31051,3,0 +2020-04-29,Dixon,Nebraska,31051,5,0 +2020-04-30,Dixon,Nebraska,31051,7,0 +2020-05-01,Dixon,Nebraska,31051,7,0 +2020-05-02,Dixon,Nebraska,31051,12,0 +2020-05-03,Dixon,Nebraska,31051,13,0 +2020-05-04,Dixon,Nebraska,31051,14,0 +2020-05-05,Dixon,Nebraska,31051,14,0 +2020-05-06,Dixon,Nebraska,31051,14,0 +2020-05-07,Dixon,Nebraska,31051,15,0 +2020-05-08,Dixon,Nebraska,31051,23,0 +2020-05-09,Dixon,Nebraska,31051,24,0 +2020-05-10,Dixon,Nebraska,31051,24,0 +2020-05-11,Dixon,Nebraska,31051,24,0 +2020-05-12,Dixon,Nebraska,31051,24,0 +2020-05-13,Dixon,Nebraska,31051,25,0 +2020-05-14,Dixon,Nebraska,31051,25,0 +2020-05-15,Dixon,Nebraska,31051,25,0 +2020-05-16,Dixon,Nebraska,31051,26,0 +2020-05-17,Dixon,Nebraska,31051,27,0 +2020-05-18,Dixon,Nebraska,31051,27,0 +2020-05-19,Dixon,Nebraska,31051,27,0 +2020-05-20,Dixon,Nebraska,31051,27,0 +2020-05-21,Dixon,Nebraska,31051,25,0 +2020-05-22,Dixon,Nebraska,31051,25,0 +2020-05-23,Dixon,Nebraska,31051,25,0 +2020-05-24,Dixon,Nebraska,31051,25,0 +2020-05-25,Dixon,Nebraska,31051,25,0 +2020-05-26,Dixon,Nebraska,31051,25,0 +2020-05-27,Dixon,Nebraska,31051,25,0 +2020-05-28,Dixon,Nebraska,31051,26,0 +2020-05-29,Dixon,Nebraska,31051,26,0 +2020-05-30,Dixon,Nebraska,31051,27,0 +2020-05-31,Dixon,Nebraska,31051,27,0 +2020-06-01,Dixon,Nebraska,31051,29,0 +2020-06-02,Dixon,Nebraska,31051,29,0 +2020-06-03,Dixon,Nebraska,31051,29,0 +2020-06-04,Dixon,Nebraska,31051,29,0 +2020-06-05,Dixon,Nebraska,31051,32,0 +2020-06-06,Dixon,Nebraska,31051,32,1 +2020-06-07,Dixon,Nebraska,31051,32,1 +2020-06-08,Dixon,Nebraska,31051,32,1 +2020-06-09,Dixon,Nebraska,31051,32,1 +2020-06-10,Dixon,Nebraska,31051,34,1 +2020-06-11,Dixon,Nebraska,31051,35,1 +2020-06-12,Dixon,Nebraska,31051,38,1 +2020-06-13,Dixon,Nebraska,31051,39,1 +2020-06-14,Dixon,Nebraska,31051,40,1 +2020-06-15,Dixon,Nebraska,31051,40,1 +2020-06-16,Dixon,Nebraska,31051,39,1 +2020-06-17,Dixon,Nebraska,31051,39,1 +2020-06-18,Dixon,Nebraska,31051,39,1 +2020-06-19,Dixon,Nebraska,31051,40,1 +2020-06-20,Dixon,Nebraska,31051,40,1 +2020-06-21,Dixon,Nebraska,31051,43,1 +2020-06-22,Dixon,Nebraska,31051,44,1 +2020-06-23,Dixon,Nebraska,31051,44,1 +2020-06-24,Dixon,Nebraska,31051,43,1 +2020-06-25,Dixon,Nebraska,31051,44,2 +2020-06-26,Dixon,Nebraska,31051,44,2 +2020-06-27,Dixon,Nebraska,31051,46,2 +2020-06-28,Dixon,Nebraska,31051,46,2 +2020-06-29,Dixon,Nebraska,31051,47,2 +2020-06-30,Dixon,Nebraska,31051,48,2 +2020-07-01,Dixon,Nebraska,31051,48,2 +2020-07-02,Dixon,Nebraska,31051,49,2 +2020-07-03,Dixon,Nebraska,31051,50,2 +2020-07-04,Dixon,Nebraska,31051,50,2 +2020-07-05,Dixon,Nebraska,31051,50,2 +2020-07-06,Dixon,Nebraska,31051,51,2 +2020-07-07,Dixon,Nebraska,31051,52,2 +2020-07-08,Dixon,Nebraska,31051,52,2 +2020-07-09,Dixon,Nebraska,31051,52,2 +2020-03-25,Dodge,Nebraska,31053,1,0 +2020-03-26,Dodge,Nebraska,31053,1,0 +2020-03-27,Dodge,Nebraska,31053,1,0 +2020-03-28,Dodge,Nebraska,31053,2,0 +2020-03-29,Dodge,Nebraska,31053,3,0 +2020-03-30,Dodge,Nebraska,31053,3,0 +2020-03-31,Dodge,Nebraska,31053,3,0 +2020-04-01,Dodge,Nebraska,31053,4,0 +2020-04-02,Dodge,Nebraska,31053,4,0 +2020-04-03,Dodge,Nebraska,31053,5,0 +2020-04-04,Dodge,Nebraska,31053,6,0 +2020-04-05,Dodge,Nebraska,31053,7,0 +2020-04-06,Dodge,Nebraska,31053,7,0 +2020-04-07,Dodge,Nebraska,31053,7,0 +2020-04-08,Dodge,Nebraska,31053,7,0 +2020-04-09,Dodge,Nebraska,31053,7,0 +2020-04-10,Dodge,Nebraska,31053,7,0 +2020-04-11,Dodge,Nebraska,31053,7,0 +2020-04-12,Dodge,Nebraska,31053,10,0 +2020-04-13,Dodge,Nebraska,31053,11,0 +2020-04-14,Dodge,Nebraska,31053,12,0 +2020-04-15,Dodge,Nebraska,31053,12,0 +2020-04-16,Dodge,Nebraska,31053,12,0 +2020-04-17,Dodge,Nebraska,31053,12,0 +2020-04-18,Dodge,Nebraska,31053,16,0 +2020-04-19,Dodge,Nebraska,31053,16,0 +2020-04-20,Dodge,Nebraska,31053,18,0 +2020-04-21,Dodge,Nebraska,31053,18,0 +2020-04-22,Dodge,Nebraska,31053,18,0 +2020-04-23,Dodge,Nebraska,31053,41,0 +2020-04-24,Dodge,Nebraska,31053,43,0 +2020-04-25,Dodge,Nebraska,31053,45,0 +2020-04-26,Dodge,Nebraska,31053,45,0 +2020-04-27,Dodge,Nebraska,31053,50,0 +2020-04-28,Dodge,Nebraska,31053,50,0 +2020-04-29,Dodge,Nebraska,31053,53,0 +2020-04-30,Dodge,Nebraska,31053,66,0 +2020-05-01,Dodge,Nebraska,31053,66,0 +2020-05-02,Dodge,Nebraska,31053,73,0 +2020-05-03,Dodge,Nebraska,31053,111,0 +2020-05-04,Dodge,Nebraska,31053,119,0 +2020-05-05,Dodge,Nebraska,31053,124,0 +2020-05-06,Dodge,Nebraska,31053,126,0 +2020-05-07,Dodge,Nebraska,31053,138,0 +2020-05-08,Dodge,Nebraska,31053,139,0 +2020-05-09,Dodge,Nebraska,31053,147,0 +2020-05-10,Dodge,Nebraska,31053,147,0 +2020-05-11,Dodge,Nebraska,31053,165,0 +2020-05-12,Dodge,Nebraska,31053,166,0 +2020-05-13,Dodge,Nebraska,31053,202,0 +2020-05-14,Dodge,Nebraska,31053,203,0 +2020-05-15,Dodge,Nebraska,31053,225,1 +2020-05-16,Dodge,Nebraska,31053,236,1 +2020-05-17,Dodge,Nebraska,31053,242,1 +2020-05-18,Dodge,Nebraska,31053,266,1 +2020-05-19,Dodge,Nebraska,31053,274,1 +2020-05-20,Dodge,Nebraska,31053,282,1 +2020-05-21,Dodge,Nebraska,31053,295,1 +2020-05-22,Dodge,Nebraska,31053,314,1 +2020-05-23,Dodge,Nebraska,31053,351,1 +2020-05-24,Dodge,Nebraska,31053,355,1 +2020-05-25,Dodge,Nebraska,31053,376,1 +2020-05-26,Dodge,Nebraska,31053,390,1 +2020-05-27,Dodge,Nebraska,31053,407,1 +2020-05-28,Dodge,Nebraska,31053,413,1 +2020-05-29,Dodge,Nebraska,31053,439,1 +2020-05-30,Dodge,Nebraska,31053,463,1 +2020-05-31,Dodge,Nebraska,31053,465,1 +2020-06-01,Dodge,Nebraska,31053,478,1 +2020-06-02,Dodge,Nebraska,31053,487,1 +2020-06-03,Dodge,Nebraska,31053,503,1 +2020-06-04,Dodge,Nebraska,31053,531,1 +2020-06-05,Dodge,Nebraska,31053,557,1 +2020-06-06,Dodge,Nebraska,31053,565,1 +2020-06-07,Dodge,Nebraska,31053,567,1 +2020-06-08,Dodge,Nebraska,31053,571,1 +2020-06-09,Dodge,Nebraska,31053,582,1 +2020-06-10,Dodge,Nebraska,31053,591,1 +2020-06-11,Dodge,Nebraska,31053,611,1 +2020-06-12,Dodge,Nebraska,31053,616,2 +2020-06-13,Dodge,Nebraska,31053,621,2 +2020-06-14,Dodge,Nebraska,31053,621,2 +2020-06-15,Dodge,Nebraska,31053,638,3 +2020-06-16,Dodge,Nebraska,31053,639,5 +2020-06-17,Dodge,Nebraska,31053,642,6 +2020-06-18,Dodge,Nebraska,31053,645,6 +2020-06-19,Dodge,Nebraska,31053,652,6 +2020-06-20,Dodge,Nebraska,31053,654,6 +2020-06-21,Dodge,Nebraska,31053,654,6 +2020-06-22,Dodge,Nebraska,31053,655,6 +2020-06-23,Dodge,Nebraska,31053,660,8 +2020-06-24,Dodge,Nebraska,31053,664,8 +2020-06-25,Dodge,Nebraska,31053,672,8 +2020-06-26,Dodge,Nebraska,31053,673,8 +2020-06-27,Dodge,Nebraska,31053,679,8 +2020-06-28,Dodge,Nebraska,31053,681,8 +2020-06-29,Dodge,Nebraska,31053,684,8 +2020-06-30,Dodge,Nebraska,31053,687,8 +2020-07-01,Dodge,Nebraska,31053,687,8 +2020-07-02,Dodge,Nebraska,31053,689,8 +2020-07-03,Dodge,Nebraska,31053,690,8 +2020-07-04,Dodge,Nebraska,31053,693,8 +2020-07-05,Dodge,Nebraska,31053,694,8 +2020-07-06,Dodge,Nebraska,31053,699,8 +2020-07-07,Dodge,Nebraska,31053,698,8 +2020-07-08,Dodge,Nebraska,31053,699,8 +2020-07-09,Dodge,Nebraska,31053,706,8 +2020-02-17,Douglas,Nebraska,31055,10,0 +2020-02-18,Douglas,Nebraska,31055,10,0 +2020-02-19,Douglas,Nebraska,31055,10,0 +2020-02-20,Douglas,Nebraska,31055,11,0 +2020-02-21,Douglas,Nebraska,31055,11,0 +2020-02-22,Douglas,Nebraska,31055,11,0 +2020-02-23,Douglas,Nebraska,31055,11,0 +2020-02-24,Douglas,Nebraska,31055,12,0 +2020-02-25,Douglas,Nebraska,31055,13,0 +2020-02-26,Douglas,Nebraska,31055,13,0 +2020-02-27,Douglas,Nebraska,31055,13,0 +2020-02-28,Douglas,Nebraska,31055,13,0 +2020-02-29,Douglas,Nebraska,31055,13,0 +2020-03-01,Douglas,Nebraska,31055,13,0 +2020-03-02,Douglas,Nebraska,31055,13,0 +2020-03-03,Douglas,Nebraska,31055,13,0 +2020-03-04,Douglas,Nebraska,31055,13,0 +2020-03-05,Douglas,Nebraska,31055,13,0 +2020-03-06,Douglas,Nebraska,31055,14,0 +2020-03-07,Douglas,Nebraska,31055,14,0 +2020-03-08,Douglas,Nebraska,31055,16,0 +2020-03-09,Douglas,Nebraska,31055,16,0 +2020-03-10,Douglas,Nebraska,31055,17,0 +2020-03-11,Douglas,Nebraska,31055,23,0 +2020-03-12,Douglas,Nebraska,31055,23,0 +2020-03-13,Douglas,Nebraska,31055,26,0 +2020-03-14,Douglas,Nebraska,31055,28,0 +2020-03-15,Douglas,Nebraska,31055,30,0 +2020-03-16,Douglas,Nebraska,31055,32,0 +2020-03-17,Douglas,Nebraska,31055,33,0 +2020-03-18,Douglas,Nebraska,31055,37,0 +2020-03-19,Douglas,Nebraska,31055,37,0 +2020-03-20,Douglas,Nebraska,31055,40,0 +2020-03-21,Douglas,Nebraska,31055,46,0 +2020-03-22,Douglas,Nebraska,31055,46,0 +2020-03-23,Douglas,Nebraska,31055,50,0 +2020-03-24,Douglas,Nebraska,31055,52,0 +2020-03-25,Douglas,Nebraska,31055,54,0 +2020-03-26,Douglas,Nebraska,31055,58,0 +2020-03-27,Douglas,Nebraska,31055,60,1 +2020-03-28,Douglas,Nebraska,31055,74,1 +2020-03-29,Douglas,Nebraska,31055,79,1 +2020-03-30,Douglas,Nebraska,31055,104,1 +2020-03-31,Douglas,Nebraska,31055,113,1 +2020-04-01,Douglas,Nebraska,31055,116,1 +2020-04-02,Douglas,Nebraska,31055,130,1 +2020-04-03,Douglas,Nebraska,31055,138,1 +2020-04-04,Douglas,Nebraska,31055,148,3 +2020-04-05,Douglas,Nebraska,31055,158,3 +2020-04-06,Douglas,Nebraska,31055,173,4 +2020-04-07,Douglas,Nebraska,31055,189,5 +2020-04-08,Douglas,Nebraska,31055,199,5 +2020-04-09,Douglas,Nebraska,31055,225,6 +2020-04-10,Douglas,Nebraska,31055,236,7 +2020-04-11,Douglas,Nebraska,31055,244,7 +2020-04-12,Douglas,Nebraska,31055,256,7 +2020-04-13,Douglas,Nebraska,31055,261,7 +2020-04-14,Douglas,Nebraska,31055,269,8 +2020-04-15,Douglas,Nebraska,31055,273,8 +2020-04-16,Douglas,Nebraska,31055,280,8 +2020-04-17,Douglas,Nebraska,31055,287,8 +2020-04-18,Douglas,Nebraska,31055,297,8 +2020-04-19,Douglas,Nebraska,31055,302,8 +2020-04-20,Douglas,Nebraska,31055,313,10 +2020-04-21,Douglas,Nebraska,31055,319,14 +2020-04-22,Douglas,Nebraska,31055,324,14 +2020-04-23,Douglas,Nebraska,31055,362,14 +2020-04-24,Douglas,Nebraska,31055,390,14 +2020-04-25,Douglas,Nebraska,31055,396,14 +2020-04-26,Douglas,Nebraska,31055,433,14 +2020-04-27,Douglas,Nebraska,31055,476,14 +2020-04-28,Douglas,Nebraska,31055,518,15 +2020-04-29,Douglas,Nebraska,31055,594,16 +2020-04-30,Douglas,Nebraska,31055,670,16 +2020-05-01,Douglas,Nebraska,31055,758,16 +2020-05-02,Douglas,Nebraska,31055,825,16 +2020-05-03,Douglas,Nebraska,31055,879,16 +2020-05-04,Douglas,Nebraska,31055,977,16 +2020-05-05,Douglas,Nebraska,31055,1049,16 +2020-05-06,Douglas,Nebraska,31055,1127,17 +2020-05-07,Douglas,Nebraska,31055,1235,17 +2020-05-08,Douglas,Nebraska,31055,1356,17 +2020-05-09,Douglas,Nebraska,31055,1515,18 +2020-05-10,Douglas,Nebraska,31055,1610,20 +2020-05-11,Douglas,Nebraska,31055,1649,21 +2020-05-12,Douglas,Nebraska,31055,1729,21 +2020-05-13,Douglas,Nebraska,31055,1801,21 +2020-05-14,Douglas,Nebraska,31055,1925,23 +2020-05-15,Douglas,Nebraska,31055,2107,24 +2020-05-16,Douglas,Nebraska,31055,2319,24 +2020-05-17,Douglas,Nebraska,31055,2428,24 +2020-05-18,Douglas,Nebraska,31055,2492,24 +2020-05-19,Douglas,Nebraska,31055,2597,24 +2020-05-20,Douglas,Nebraska,31055,2729,24 +2020-05-21,Douglas,Nebraska,31055,2855,27 +2020-05-22,Douglas,Nebraska,31055,2942,29 +2020-05-23,Douglas,Nebraska,31055,3038,29 +2020-05-24,Douglas,Nebraska,31055,3108,29 +2020-05-25,Douglas,Nebraska,31055,3200,29 +2020-05-26,Douglas,Nebraska,31055,3369,29 +2020-05-27,Douglas,Nebraska,31055,3597,33 +2020-05-28,Douglas,Nebraska,31055,3783,34 +2020-05-29,Douglas,Nebraska,31055,3969,37 +2020-05-30,Douglas,Nebraska,31055,4187,37 +2020-05-31,Douglas,Nebraska,31055,4314,37 +2020-06-01,Douglas,Nebraska,31055,4426,38 +2020-06-02,Douglas,Nebraska,31055,4571,41 +2020-06-03,Douglas,Nebraska,31055,4690,42 +2020-06-04,Douglas,Nebraska,31055,4879,45 +2020-06-05,Douglas,Nebraska,31055,5004,45 +2020-06-06,Douglas,Nebraska,31055,5080,47 +2020-06-07,Douglas,Nebraska,31055,5166,47 +2020-06-08,Douglas,Nebraska,31055,5220,47 +2020-06-09,Douglas,Nebraska,31055,5316,49 +2020-06-10,Douglas,Nebraska,31055,5350,53 +2020-06-11,Douglas,Nebraska,31055,5447,58 +2020-06-12,Douglas,Nebraska,31055,5600,60 +2020-06-13,Douglas,Nebraska,31055,5729,60 +2020-06-14,Douglas,Nebraska,31055,5794,60 +2020-06-15,Douglas,Nebraska,31055,5862,61 +2020-06-16,Douglas,Nebraska,31055,5957,68 +2020-06-17,Douglas,Nebraska,31055,6043,69 +2020-06-18,Douglas,Nebraska,31055,6152,72 +2020-06-19,Douglas,Nebraska,31055,6254,77 +2020-06-20,Douglas,Nebraska,31055,6254,77 +2020-06-21,Douglas,Nebraska,31055,6426,80 +2020-06-22,Douglas,Nebraska,31055,6489,80 +2020-06-23,Douglas,Nebraska,31055,6591,83 +2020-06-24,Douglas,Nebraska,31055,6652,83 +2020-06-25,Douglas,Nebraska,31055,6716,84 +2020-06-26,Douglas,Nebraska,31055,6778,88 +2020-06-27,Douglas,Nebraska,31055,6937,88 +2020-06-28,Douglas,Nebraska,31055,7107,88 +2020-06-29,Douglas,Nebraska,31055,7170,88 +2020-06-30,Douglas,Nebraska,31055,7235,93 +2020-07-01,Douglas,Nebraska,31055,7294,94 +2020-07-02,Douglas,Nebraska,31055,7344,95 +2020-07-03,Douglas,Nebraska,31055,7344,96 +2020-07-04,Douglas,Nebraska,31055,7406,96 +2020-07-05,Douglas,Nebraska,31055,7593,96 +2020-07-06,Douglas,Nebraska,31055,7643,97 +2020-07-07,Douglas,Nebraska,31055,7687,98 +2020-07-08,Douglas,Nebraska,31055,7789,100 +2020-07-09,Douglas,Nebraska,31055,7876,102 +2020-04-22,Fillmore,Nebraska,31059,1,0 +2020-04-23,Fillmore,Nebraska,31059,1,0 +2020-04-24,Fillmore,Nebraska,31059,1,0 +2020-04-25,Fillmore,Nebraska,31059,1,0 +2020-04-26,Fillmore,Nebraska,31059,1,0 +2020-04-27,Fillmore,Nebraska,31059,1,0 +2020-04-28,Fillmore,Nebraska,31059,1,0 +2020-04-29,Fillmore,Nebraska,31059,1,0 +2020-04-30,Fillmore,Nebraska,31059,1,0 +2020-05-01,Fillmore,Nebraska,31059,1,0 +2020-05-02,Fillmore,Nebraska,31059,2,0 +2020-05-03,Fillmore,Nebraska,31059,2,0 +2020-05-04,Fillmore,Nebraska,31059,2,0 +2020-05-05,Fillmore,Nebraska,31059,3,0 +2020-05-06,Fillmore,Nebraska,31059,3,0 +2020-05-07,Fillmore,Nebraska,31059,3,0 +2020-05-08,Fillmore,Nebraska,31059,3,0 +2020-05-09,Fillmore,Nebraska,31059,3,0 +2020-05-10,Fillmore,Nebraska,31059,3,0 +2020-05-11,Fillmore,Nebraska,31059,3,0 +2020-05-12,Fillmore,Nebraska,31059,3,0 +2020-05-13,Fillmore,Nebraska,31059,3,0 +2020-05-14,Fillmore,Nebraska,31059,4,0 +2020-05-15,Fillmore,Nebraska,31059,4,0 +2020-05-16,Fillmore,Nebraska,31059,4,0 +2020-05-17,Fillmore,Nebraska,31059,4,0 +2020-05-18,Fillmore,Nebraska,31059,4,0 +2020-05-19,Fillmore,Nebraska,31059,4,0 +2020-05-20,Fillmore,Nebraska,31059,5,0 +2020-05-21,Fillmore,Nebraska,31059,5,0 +2020-05-22,Fillmore,Nebraska,31059,5,0 +2020-05-23,Fillmore,Nebraska,31059,5,0 +2020-05-24,Fillmore,Nebraska,31059,5,0 +2020-05-25,Fillmore,Nebraska,31059,5,0 +2020-05-26,Fillmore,Nebraska,31059,5,0 +2020-05-27,Fillmore,Nebraska,31059,5,0 +2020-05-28,Fillmore,Nebraska,31059,5,0 +2020-05-29,Fillmore,Nebraska,31059,5,0 +2020-05-30,Fillmore,Nebraska,31059,6,0 +2020-05-31,Fillmore,Nebraska,31059,6,0 +2020-06-01,Fillmore,Nebraska,31059,7,1 +2020-06-02,Fillmore,Nebraska,31059,7,1 +2020-06-03,Fillmore,Nebraska,31059,7,1 +2020-06-04,Fillmore,Nebraska,31059,7,1 +2020-06-05,Fillmore,Nebraska,31059,7,1 +2020-06-06,Fillmore,Nebraska,31059,7,1 +2020-06-07,Fillmore,Nebraska,31059,7,1 +2020-06-08,Fillmore,Nebraska,31059,7,1 +2020-06-09,Fillmore,Nebraska,31059,7,1 +2020-06-10,Fillmore,Nebraska,31059,9,1 +2020-06-11,Fillmore,Nebraska,31059,9,1 +2020-06-12,Fillmore,Nebraska,31059,9,1 +2020-06-13,Fillmore,Nebraska,31059,9,1 +2020-06-14,Fillmore,Nebraska,31059,10,1 +2020-06-15,Fillmore,Nebraska,31059,11,1 +2020-06-16,Fillmore,Nebraska,31059,13,1 +2020-06-17,Fillmore,Nebraska,31059,13,1 +2020-06-18,Fillmore,Nebraska,31059,13,1 +2020-06-19,Fillmore,Nebraska,31059,13,1 +2020-06-20,Fillmore,Nebraska,31059,13,1 +2020-06-21,Fillmore,Nebraska,31059,13,1 +2020-06-22,Fillmore,Nebraska,31059,13,1 +2020-06-23,Fillmore,Nebraska,31059,13,1 +2020-06-24,Fillmore,Nebraska,31059,13,1 +2020-06-25,Fillmore,Nebraska,31059,13,1 +2020-06-26,Fillmore,Nebraska,31059,13,1 +2020-06-27,Fillmore,Nebraska,31059,13,1 +2020-06-28,Fillmore,Nebraska,31059,13,1 +2020-06-29,Fillmore,Nebraska,31059,14,1 +2020-06-30,Fillmore,Nebraska,31059,14,1 +2020-07-01,Fillmore,Nebraska,31059,14,1 +2020-07-02,Fillmore,Nebraska,31059,14,1 +2020-07-03,Fillmore,Nebraska,31059,14,1 +2020-07-04,Fillmore,Nebraska,31059,14,1 +2020-07-05,Fillmore,Nebraska,31059,14,1 +2020-07-06,Fillmore,Nebraska,31059,15,1 +2020-07-07,Fillmore,Nebraska,31059,15,1 +2020-07-08,Fillmore,Nebraska,31059,17,1 +2020-07-09,Fillmore,Nebraska,31059,18,1 +2020-04-10,Franklin,Nebraska,31061,2,0 +2020-04-11,Franklin,Nebraska,31061,2,0 +2020-04-12,Franklin,Nebraska,31061,3,0 +2020-04-13,Franklin,Nebraska,31061,3,0 +2020-04-14,Franklin,Nebraska,31061,3,0 +2020-04-15,Franklin,Nebraska,31061,3,0 +2020-04-16,Franklin,Nebraska,31061,3,0 +2020-04-17,Franklin,Nebraska,31061,3,0 +2020-04-18,Franklin,Nebraska,31061,3,0 +2020-04-19,Franklin,Nebraska,31061,3,0 +2020-04-20,Franklin,Nebraska,31061,3,0 +2020-04-21,Franklin,Nebraska,31061,3,0 +2020-04-22,Franklin,Nebraska,31061,3,0 +2020-04-23,Franklin,Nebraska,31061,3,0 +2020-04-24,Franklin,Nebraska,31061,3,0 +2020-04-25,Franklin,Nebraska,31061,3,0 +2020-04-26,Franklin,Nebraska,31061,3,0 +2020-04-27,Franklin,Nebraska,31061,3,0 +2020-04-28,Franklin,Nebraska,31061,3,0 +2020-04-29,Franklin,Nebraska,31061,3,0 +2020-04-30,Franklin,Nebraska,31061,5,0 +2020-05-01,Franklin,Nebraska,31061,5,0 +2020-05-02,Franklin,Nebraska,31061,5,0 +2020-05-03,Franklin,Nebraska,31061,5,0 +2020-05-04,Franklin,Nebraska,31061,5,0 +2020-05-05,Franklin,Nebraska,31061,5,0 +2020-05-06,Franklin,Nebraska,31061,5,0 +2020-05-07,Franklin,Nebraska,31061,5,0 +2020-05-08,Franklin,Nebraska,31061,5,0 +2020-05-09,Franklin,Nebraska,31061,5,0 +2020-05-10,Franklin,Nebraska,31061,5,0 +2020-05-11,Franklin,Nebraska,31061,5,0 +2020-05-12,Franklin,Nebraska,31061,5,0 +2020-05-13,Franklin,Nebraska,31061,5,0 +2020-05-14,Franklin,Nebraska,31061,5,0 +2020-05-15,Franklin,Nebraska,31061,5,0 +2020-05-16,Franklin,Nebraska,31061,5,0 +2020-05-17,Franklin,Nebraska,31061,5,0 +2020-05-18,Franklin,Nebraska,31061,5,0 +2020-05-19,Franklin,Nebraska,31061,5,0 +2020-05-20,Franklin,Nebraska,31061,5,0 +2020-05-21,Franklin,Nebraska,31061,6,0 +2020-05-22,Franklin,Nebraska,31061,6,0 +2020-05-23,Franklin,Nebraska,31061,6,0 +2020-05-24,Franklin,Nebraska,31061,6,0 +2020-05-25,Franklin,Nebraska,31061,6,0 +2020-05-26,Franklin,Nebraska,31061,6,0 +2020-05-27,Franklin,Nebraska,31061,6,0 +2020-05-28,Franklin,Nebraska,31061,6,0 +2020-05-29,Franklin,Nebraska,31061,6,0 +2020-05-30,Franklin,Nebraska,31061,6,0 +2020-05-31,Franklin,Nebraska,31061,6,0 +2020-06-01,Franklin,Nebraska,31061,6,0 +2020-06-02,Franklin,Nebraska,31061,6,0 +2020-06-03,Franklin,Nebraska,31061,6,0 +2020-06-04,Franklin,Nebraska,31061,6,0 +2020-06-05,Franklin,Nebraska,31061,6,0 +2020-06-06,Franklin,Nebraska,31061,6,0 +2020-06-07,Franklin,Nebraska,31061,6,0 +2020-06-08,Franklin,Nebraska,31061,6,0 +2020-06-09,Franklin,Nebraska,31061,6,0 +2020-06-10,Franklin,Nebraska,31061,6,0 +2020-06-11,Franklin,Nebraska,31061,6,0 +2020-06-12,Franklin,Nebraska,31061,6,0 +2020-06-13,Franklin,Nebraska,31061,6,0 +2020-06-14,Franklin,Nebraska,31061,6,0 +2020-06-15,Franklin,Nebraska,31061,6,0 +2020-06-16,Franklin,Nebraska,31061,6,0 +2020-06-17,Franklin,Nebraska,31061,6,0 +2020-06-18,Franklin,Nebraska,31061,6,0 +2020-06-19,Franklin,Nebraska,31061,6,0 +2020-06-20,Franklin,Nebraska,31061,6,0 +2020-06-21,Franklin,Nebraska,31061,6,0 +2020-06-22,Franklin,Nebraska,31061,6,0 +2020-06-23,Franklin,Nebraska,31061,6,0 +2020-06-24,Franklin,Nebraska,31061,6,0 +2020-06-25,Franklin,Nebraska,31061,6,0 +2020-06-26,Franklin,Nebraska,31061,6,0 +2020-06-27,Franklin,Nebraska,31061,7,0 +2020-06-28,Franklin,Nebraska,31061,7,0 +2020-06-29,Franklin,Nebraska,31061,6,0 +2020-06-30,Franklin,Nebraska,31061,6,0 +2020-07-01,Franklin,Nebraska,31061,6,0 +2020-07-02,Franklin,Nebraska,31061,7,0 +2020-07-03,Franklin,Nebraska,31061,7,0 +2020-07-04,Franklin,Nebraska,31061,7,0 +2020-07-05,Franklin,Nebraska,31061,7,0 +2020-07-06,Franklin,Nebraska,31061,8,0 +2020-07-07,Franklin,Nebraska,31061,8,0 +2020-07-08,Franklin,Nebraska,31061,8,0 +2020-07-09,Franklin,Nebraska,31061,8,0 +2020-04-29,Frontier,Nebraska,31063,1,0 +2020-04-30,Frontier,Nebraska,31063,1,0 +2020-05-01,Frontier,Nebraska,31063,1,0 +2020-05-02,Frontier,Nebraska,31063,1,0 +2020-05-03,Frontier,Nebraska,31063,1,0 +2020-05-04,Frontier,Nebraska,31063,1,0 +2020-05-05,Frontier,Nebraska,31063,1,0 +2020-05-06,Frontier,Nebraska,31063,1,0 +2020-05-07,Frontier,Nebraska,31063,1,0 +2020-05-08,Frontier,Nebraska,31063,1,0 +2020-05-09,Frontier,Nebraska,31063,1,0 +2020-05-10,Frontier,Nebraska,31063,1,0 +2020-05-11,Frontier,Nebraska,31063,1,0 +2020-05-12,Frontier,Nebraska,31063,1,0 +2020-05-13,Frontier,Nebraska,31063,1,0 +2020-05-14,Frontier,Nebraska,31063,1,0 +2020-05-15,Frontier,Nebraska,31063,1,0 +2020-05-16,Frontier,Nebraska,31063,1,0 +2020-05-17,Frontier,Nebraska,31063,1,0 +2020-05-18,Frontier,Nebraska,31063,1,0 +2020-05-19,Frontier,Nebraska,31063,1,0 +2020-05-20,Frontier,Nebraska,31063,1,0 +2020-05-21,Frontier,Nebraska,31063,1,0 +2020-05-22,Frontier,Nebraska,31063,1,0 +2020-05-23,Frontier,Nebraska,31063,1,0 +2020-05-24,Frontier,Nebraska,31063,1,0 +2020-05-25,Frontier,Nebraska,31063,1,0 +2020-05-26,Frontier,Nebraska,31063,1,0 +2020-05-27,Frontier,Nebraska,31063,1,0 +2020-05-28,Frontier,Nebraska,31063,1,0 +2020-05-29,Frontier,Nebraska,31063,1,0 +2020-05-30,Frontier,Nebraska,31063,1,0 +2020-05-31,Frontier,Nebraska,31063,1,0 +2020-06-01,Frontier,Nebraska,31063,1,0 +2020-06-02,Frontier,Nebraska,31063,1,0 +2020-06-03,Frontier,Nebraska,31063,1,0 +2020-06-04,Frontier,Nebraska,31063,1,0 +2020-06-05,Frontier,Nebraska,31063,1,0 +2020-06-06,Frontier,Nebraska,31063,1,0 +2020-06-07,Frontier,Nebraska,31063,1,0 +2020-06-08,Frontier,Nebraska,31063,1,0 +2020-06-09,Frontier,Nebraska,31063,1,0 +2020-06-10,Frontier,Nebraska,31063,1,0 +2020-06-11,Frontier,Nebraska,31063,1,0 +2020-06-12,Frontier,Nebraska,31063,1,0 +2020-06-13,Frontier,Nebraska,31063,1,0 +2020-06-14,Frontier,Nebraska,31063,1,0 +2020-06-15,Frontier,Nebraska,31063,1,0 +2020-06-16,Frontier,Nebraska,31063,1,0 +2020-06-17,Frontier,Nebraska,31063,1,0 +2020-06-18,Frontier,Nebraska,31063,1,0 +2020-06-19,Frontier,Nebraska,31063,1,0 +2020-06-20,Frontier,Nebraska,31063,1,0 +2020-06-21,Frontier,Nebraska,31063,1,0 +2020-06-22,Frontier,Nebraska,31063,1,0 +2020-06-23,Frontier,Nebraska,31063,1,0 +2020-06-24,Frontier,Nebraska,31063,1,0 +2020-06-25,Frontier,Nebraska,31063,1,0 +2020-06-26,Frontier,Nebraska,31063,1,0 +2020-06-27,Frontier,Nebraska,31063,1,0 +2020-06-28,Frontier,Nebraska,31063,1,0 +2020-06-29,Frontier,Nebraska,31063,1,0 +2020-06-30,Frontier,Nebraska,31063,1,0 +2020-07-01,Frontier,Nebraska,31063,1,0 +2020-07-02,Frontier,Nebraska,31063,1,0 +2020-07-03,Frontier,Nebraska,31063,1,0 +2020-07-04,Frontier,Nebraska,31063,1,0 +2020-07-05,Frontier,Nebraska,31063,1,0 +2020-07-06,Frontier,Nebraska,31063,1,0 +2020-07-07,Frontier,Nebraska,31063,1,0 +2020-07-08,Frontier,Nebraska,31063,1,0 +2020-07-09,Frontier,Nebraska,31063,1,0 +2020-04-18,Furnas,Nebraska,31065,1,0 +2020-04-19,Furnas,Nebraska,31065,2,0 +2020-04-20,Furnas,Nebraska,31065,2,0 +2020-04-21,Furnas,Nebraska,31065,2,0 +2020-04-22,Furnas,Nebraska,31065,2,0 +2020-04-23,Furnas,Nebraska,31065,2,0 +2020-04-24,Furnas,Nebraska,31065,2,0 +2020-04-25,Furnas,Nebraska,31065,2,0 +2020-04-26,Furnas,Nebraska,31065,2,0 +2020-04-27,Furnas,Nebraska,31065,2,0 +2020-04-28,Furnas,Nebraska,31065,2,0 +2020-04-29,Furnas,Nebraska,31065,3,0 +2020-04-30,Furnas,Nebraska,31065,3,0 +2020-05-01,Furnas,Nebraska,31065,3,0 +2020-05-02,Furnas,Nebraska,31065,4,0 +2020-05-03,Furnas,Nebraska,31065,4,0 +2020-05-04,Furnas,Nebraska,31065,4,0 +2020-05-05,Furnas,Nebraska,31065,4,0 +2020-05-06,Furnas,Nebraska,31065,4,0 +2020-05-07,Furnas,Nebraska,31065,4,0 +2020-05-08,Furnas,Nebraska,31065,4,0 +2020-05-09,Furnas,Nebraska,31065,4,0 +2020-05-10,Furnas,Nebraska,31065,4,0 +2020-05-11,Furnas,Nebraska,31065,4,0 +2020-05-12,Furnas,Nebraska,31065,4,0 +2020-05-13,Furnas,Nebraska,31065,4,0 +2020-05-14,Furnas,Nebraska,31065,4,0 +2020-05-15,Furnas,Nebraska,31065,5,0 +2020-05-16,Furnas,Nebraska,31065,5,0 +2020-05-17,Furnas,Nebraska,31065,6,0 +2020-05-18,Furnas,Nebraska,31065,6,0 +2020-05-19,Furnas,Nebraska,31065,6,0 +2020-05-20,Furnas,Nebraska,31065,6,0 +2020-05-21,Furnas,Nebraska,31065,6,0 +2020-05-22,Furnas,Nebraska,31065,6,0 +2020-05-23,Furnas,Nebraska,31065,7,0 +2020-05-24,Furnas,Nebraska,31065,7,0 +2020-05-25,Furnas,Nebraska,31065,7,0 +2020-05-26,Furnas,Nebraska,31065,8,0 +2020-05-27,Furnas,Nebraska,31065,8,0 +2020-05-28,Furnas,Nebraska,31065,8,0 +2020-05-29,Furnas,Nebraska,31065,8,0 +2020-05-30,Furnas,Nebraska,31065,9,0 +2020-05-31,Furnas,Nebraska,31065,9,0 +2020-06-01,Furnas,Nebraska,31065,9,0 +2020-06-02,Furnas,Nebraska,31065,9,0 +2020-06-03,Furnas,Nebraska,31065,9,0 +2020-06-04,Furnas,Nebraska,31065,9,0 +2020-06-05,Furnas,Nebraska,31065,9,0 +2020-06-06,Furnas,Nebraska,31065,9,0 +2020-06-07,Furnas,Nebraska,31065,9,0 +2020-06-08,Furnas,Nebraska,31065,9,0 +2020-06-09,Furnas,Nebraska,31065,9,0 +2020-06-10,Furnas,Nebraska,31065,9,1 +2020-06-11,Furnas,Nebraska,31065,9,1 +2020-06-12,Furnas,Nebraska,31065,9,1 +2020-06-13,Furnas,Nebraska,31065,9,1 +2020-06-14,Furnas,Nebraska,31065,9,1 +2020-06-15,Furnas,Nebraska,31065,9,1 +2020-06-16,Furnas,Nebraska,31065,9,1 +2020-06-17,Furnas,Nebraska,31065,9,1 +2020-06-18,Furnas,Nebraska,31065,9,1 +2020-06-19,Furnas,Nebraska,31065,9,1 +2020-06-20,Furnas,Nebraska,31065,9,1 +2020-06-21,Furnas,Nebraska,31065,9,1 +2020-06-22,Furnas,Nebraska,31065,9,1 +2020-06-23,Furnas,Nebraska,31065,9,1 +2020-06-24,Furnas,Nebraska,31065,10,1 +2020-06-25,Furnas,Nebraska,31065,10,1 +2020-06-26,Furnas,Nebraska,31065,10,1 +2020-06-27,Furnas,Nebraska,31065,10,1 +2020-06-28,Furnas,Nebraska,31065,10,1 +2020-06-29,Furnas,Nebraska,31065,10,1 +2020-06-30,Furnas,Nebraska,31065,10,1 +2020-07-01,Furnas,Nebraska,31065,10,1 +2020-07-02,Furnas,Nebraska,31065,10,1 +2020-07-03,Furnas,Nebraska,31065,10,1 +2020-07-04,Furnas,Nebraska,31065,10,1 +2020-07-05,Furnas,Nebraska,31065,10,1 +2020-07-06,Furnas,Nebraska,31065,10,1 +2020-07-07,Furnas,Nebraska,31065,10,1 +2020-07-08,Furnas,Nebraska,31065,10,1 +2020-07-09,Furnas,Nebraska,31065,10,1 +2020-04-02,Gage,Nebraska,31067,1,1 +2020-04-03,Gage,Nebraska,31067,2,1 +2020-04-04,Gage,Nebraska,31067,2,1 +2020-04-05,Gage,Nebraska,31067,9,1 +2020-04-06,Gage,Nebraska,31067,9,1 +2020-04-07,Gage,Nebraska,31067,23,1 +2020-04-08,Gage,Nebraska,31067,23,1 +2020-04-09,Gage,Nebraska,31067,24,1 +2020-04-10,Gage,Nebraska,31067,25,1 +2020-04-11,Gage,Nebraska,31067,25,1 +2020-04-12,Gage,Nebraska,31067,26,1 +2020-04-13,Gage,Nebraska,31067,26,1 +2020-04-14,Gage,Nebraska,31067,26,1 +2020-04-15,Gage,Nebraska,31067,26,1 +2020-04-16,Gage,Nebraska,31067,26,2 +2020-04-17,Gage,Nebraska,31067,27,2 +2020-04-18,Gage,Nebraska,31067,28,2 +2020-04-19,Gage,Nebraska,31067,28,2 +2020-04-20,Gage,Nebraska,31067,28,2 +2020-04-21,Gage,Nebraska,31067,28,2 +2020-04-22,Gage,Nebraska,31067,28,2 +2020-04-23,Gage,Nebraska,31067,28,2 +2020-04-24,Gage,Nebraska,31067,29,2 +2020-04-25,Gage,Nebraska,31067,29,2 +2020-04-26,Gage,Nebraska,31067,29,2 +2020-04-27,Gage,Nebraska,31067,33,2 +2020-04-28,Gage,Nebraska,31067,33,2 +2020-04-29,Gage,Nebraska,31067,35,2 +2020-04-30,Gage,Nebraska,31067,36,2 +2020-05-01,Gage,Nebraska,31067,38,2 +2020-05-02,Gage,Nebraska,31067,38,2 +2020-05-03,Gage,Nebraska,31067,38,2 +2020-05-04,Gage,Nebraska,31067,39,2 +2020-05-05,Gage,Nebraska,31067,39,2 +2020-05-06,Gage,Nebraska,31067,39,2 +2020-05-07,Gage,Nebraska,31067,40,3 +2020-05-08,Gage,Nebraska,31067,40,3 +2020-05-09,Gage,Nebraska,31067,40,3 +2020-05-10,Gage,Nebraska,31067,41,3 +2020-05-11,Gage,Nebraska,31067,41,3 +2020-05-12,Gage,Nebraska,31067,41,4 +2020-05-13,Gage,Nebraska,31067,41,4 +2020-05-14,Gage,Nebraska,31067,41,4 +2020-05-15,Gage,Nebraska,31067,42,4 +2020-05-16,Gage,Nebraska,31067,42,4 +2020-05-17,Gage,Nebraska,31067,41,4 +2020-05-18,Gage,Nebraska,31067,42,4 +2020-05-19,Gage,Nebraska,31067,43,4 +2020-05-20,Gage,Nebraska,31067,43,4 +2020-05-21,Gage,Nebraska,31067,44,4 +2020-05-22,Gage,Nebraska,31067,44,4 +2020-05-23,Gage,Nebraska,31067,44,4 +2020-05-24,Gage,Nebraska,31067,44,4 +2020-05-25,Gage,Nebraska,31067,44,4 +2020-05-26,Gage,Nebraska,31067,44,4 +2020-05-27,Gage,Nebraska,31067,44,4 +2020-05-28,Gage,Nebraska,31067,44,4 +2020-05-29,Gage,Nebraska,31067,45,4 +2020-05-30,Gage,Nebraska,31067,45,4 +2020-05-31,Gage,Nebraska,31067,45,4 +2020-06-01,Gage,Nebraska,31067,45,4 +2020-06-02,Gage,Nebraska,31067,45,4 +2020-06-03,Gage,Nebraska,31067,45,4 +2020-06-04,Gage,Nebraska,31067,45,4 +2020-06-05,Gage,Nebraska,31067,45,4 +2020-06-06,Gage,Nebraska,31067,45,4 +2020-06-07,Gage,Nebraska,31067,45,4 +2020-06-08,Gage,Nebraska,31067,45,4 +2020-06-09,Gage,Nebraska,31067,45,4 +2020-06-10,Gage,Nebraska,31067,45,4 +2020-06-11,Gage,Nebraska,31067,45,4 +2020-06-12,Gage,Nebraska,31067,45,4 +2020-06-13,Gage,Nebraska,31067,45,4 +2020-06-14,Gage,Nebraska,31067,45,4 +2020-06-15,Gage,Nebraska,31067,45,4 +2020-06-16,Gage,Nebraska,31067,45,4 +2020-06-17,Gage,Nebraska,31067,46,4 +2020-06-18,Gage,Nebraska,31067,46,4 +2020-06-19,Gage,Nebraska,31067,46,4 +2020-06-20,Gage,Nebraska,31067,47,4 +2020-06-21,Gage,Nebraska,31067,47,4 +2020-06-22,Gage,Nebraska,31067,47,4 +2020-06-23,Gage,Nebraska,31067,47,4 +2020-06-24,Gage,Nebraska,31067,47,4 +2020-06-25,Gage,Nebraska,31067,48,4 +2020-06-26,Gage,Nebraska,31067,50,4 +2020-06-27,Gage,Nebraska,31067,50,4 +2020-06-28,Gage,Nebraska,31067,50,4 +2020-06-29,Gage,Nebraska,31067,49,4 +2020-06-30,Gage,Nebraska,31067,52,4 +2020-07-01,Gage,Nebraska,31067,52,4 +2020-07-02,Gage,Nebraska,31067,54,4 +2020-07-03,Gage,Nebraska,31067,55,4 +2020-07-04,Gage,Nebraska,31067,56,4 +2020-07-05,Gage,Nebraska,31067,56,4 +2020-07-06,Gage,Nebraska,31067,58,4 +2020-07-07,Gage,Nebraska,31067,58,4 +2020-07-08,Gage,Nebraska,31067,59,4 +2020-07-09,Gage,Nebraska,31067,61,4 +2020-06-01,Garden,Nebraska,31069,2,0 +2020-06-02,Garden,Nebraska,31069,2,0 +2020-06-03,Garden,Nebraska,31069,4,0 +2020-06-04,Garden,Nebraska,31069,4,0 +2020-06-05,Garden,Nebraska,31069,4,0 +2020-06-06,Garden,Nebraska,31069,4,0 +2020-06-07,Garden,Nebraska,31069,4,0 +2020-06-08,Garden,Nebraska,31069,4,0 +2020-06-09,Garden,Nebraska,31069,4,0 +2020-06-10,Garden,Nebraska,31069,4,0 +2020-06-11,Garden,Nebraska,31069,4,0 +2020-06-12,Garden,Nebraska,31069,4,0 +2020-06-13,Garden,Nebraska,31069,4,0 +2020-06-14,Garden,Nebraska,31069,4,0 +2020-06-15,Garden,Nebraska,31069,4,0 +2020-06-16,Garden,Nebraska,31069,4,0 +2020-06-17,Garden,Nebraska,31069,4,0 +2020-06-18,Garden,Nebraska,31069,4,0 +2020-06-19,Garden,Nebraska,31069,4,0 +2020-06-20,Garden,Nebraska,31069,4,0 +2020-06-21,Garden,Nebraska,31069,4,0 +2020-06-22,Garden,Nebraska,31069,4,0 +2020-06-23,Garden,Nebraska,31069,4,0 +2020-06-24,Garden,Nebraska,31069,4,0 +2020-06-25,Garden,Nebraska,31069,4,0 +2020-06-26,Garden,Nebraska,31069,4,0 +2020-06-27,Garden,Nebraska,31069,4,0 +2020-06-28,Garden,Nebraska,31069,5,0 +2020-06-29,Garden,Nebraska,31069,4,0 +2020-06-30,Garden,Nebraska,31069,4,0 +2020-07-01,Garden,Nebraska,31069,4,0 +2020-07-02,Garden,Nebraska,31069,4,0 +2020-07-03,Garden,Nebraska,31069,4,0 +2020-07-04,Garden,Nebraska,31069,4,0 +2020-07-05,Garden,Nebraska,31069,4,0 +2020-07-06,Garden,Nebraska,31069,4,0 +2020-07-07,Garden,Nebraska,31069,4,0 +2020-07-08,Garden,Nebraska,31069,4,0 +2020-07-09,Garden,Nebraska,31069,4,0 +2020-06-05,Garfield,Nebraska,31071,1,0 +2020-06-06,Garfield,Nebraska,31071,1,0 +2020-06-07,Garfield,Nebraska,31071,1,0 +2020-06-08,Garfield,Nebraska,31071,1,0 +2020-06-09,Garfield,Nebraska,31071,1,0 +2020-06-10,Garfield,Nebraska,31071,1,0 +2020-06-11,Garfield,Nebraska,31071,1,0 +2020-06-12,Garfield,Nebraska,31071,1,0 +2020-06-13,Garfield,Nebraska,31071,1,0 +2020-06-14,Garfield,Nebraska,31071,1,0 +2020-06-15,Garfield,Nebraska,31071,1,0 +2020-06-16,Garfield,Nebraska,31071,1,0 +2020-06-17,Garfield,Nebraska,31071,1,0 +2020-06-18,Garfield,Nebraska,31071,1,0 +2020-06-19,Garfield,Nebraska,31071,1,0 +2020-06-20,Garfield,Nebraska,31071,1,0 +2020-06-21,Garfield,Nebraska,31071,1,0 +2020-06-22,Garfield,Nebraska,31071,1,0 +2020-06-23,Garfield,Nebraska,31071,1,0 +2020-06-24,Garfield,Nebraska,31071,1,0 +2020-06-25,Garfield,Nebraska,31071,1,0 +2020-06-26,Garfield,Nebraska,31071,1,0 +2020-06-27,Garfield,Nebraska,31071,1,0 +2020-06-28,Garfield,Nebraska,31071,1,0 +2020-06-29,Garfield,Nebraska,31071,1,0 +2020-06-30,Garfield,Nebraska,31071,1,0 +2020-07-01,Garfield,Nebraska,31071,1,0 +2020-07-02,Garfield,Nebraska,31071,1,0 +2020-07-03,Garfield,Nebraska,31071,1,0 +2020-07-04,Garfield,Nebraska,31071,1,0 +2020-07-05,Garfield,Nebraska,31071,1,0 +2020-07-06,Garfield,Nebraska,31071,1,0 +2020-07-07,Garfield,Nebraska,31071,1,0 +2020-07-08,Garfield,Nebraska,31071,1,0 +2020-07-09,Garfield,Nebraska,31071,1,0 +2020-03-28,Gosper,Nebraska,31073,1,0 +2020-03-29,Gosper,Nebraska,31073,1,0 +2020-03-30,Gosper,Nebraska,31073,1,0 +2020-03-31,Gosper,Nebraska,31073,1,0 +2020-04-01,Gosper,Nebraska,31073,1,0 +2020-04-02,Gosper,Nebraska,31073,1,0 +2020-04-03,Gosper,Nebraska,31073,1,0 +2020-04-04,Gosper,Nebraska,31073,1,0 +2020-04-05,Gosper,Nebraska,31073,1,0 +2020-04-06,Gosper,Nebraska,31073,1,0 +2020-04-07,Gosper,Nebraska,31073,1,0 +2020-04-08,Gosper,Nebraska,31073,1,0 +2020-04-09,Gosper,Nebraska,31073,1,0 +2020-04-10,Gosper,Nebraska,31073,1,0 +2020-04-11,Gosper,Nebraska,31073,1,0 +2020-04-12,Gosper,Nebraska,31073,1,0 +2020-04-13,Gosper,Nebraska,31073,1,0 +2020-04-14,Gosper,Nebraska,31073,1,0 +2020-04-15,Gosper,Nebraska,31073,1,0 +2020-04-16,Gosper,Nebraska,31073,1,0 +2020-04-17,Gosper,Nebraska,31073,3,0 +2020-04-18,Gosper,Nebraska,31073,5,0 +2020-04-19,Gosper,Nebraska,31073,5,0 +2020-04-20,Gosper,Nebraska,31073,6,0 +2020-04-21,Gosper,Nebraska,31073,7,0 +2020-04-22,Gosper,Nebraska,31073,7,0 +2020-04-23,Gosper,Nebraska,31073,8,0 +2020-04-24,Gosper,Nebraska,31073,8,0 +2020-04-25,Gosper,Nebraska,31073,8,0 +2020-04-26,Gosper,Nebraska,31073,8,0 +2020-04-27,Gosper,Nebraska,31073,8,0 +2020-04-28,Gosper,Nebraska,31073,8,0 +2020-04-29,Gosper,Nebraska,31073,9,0 +2020-04-30,Gosper,Nebraska,31073,9,0 +2020-05-01,Gosper,Nebraska,31073,10,0 +2020-05-02,Gosper,Nebraska,31073,11,0 +2020-05-03,Gosper,Nebraska,31073,11,0 +2020-05-04,Gosper,Nebraska,31073,11,0 +2020-05-05,Gosper,Nebraska,31073,12,0 +2020-05-06,Gosper,Nebraska,31073,12,0 +2020-05-07,Gosper,Nebraska,31073,12,0 +2020-05-08,Gosper,Nebraska,31073,12,0 +2020-05-09,Gosper,Nebraska,31073,12,0 +2020-05-10,Gosper,Nebraska,31073,12,0 +2020-05-11,Gosper,Nebraska,31073,12,0 +2020-05-12,Gosper,Nebraska,31073,13,0 +2020-05-13,Gosper,Nebraska,31073,13,0 +2020-05-14,Gosper,Nebraska,31073,13,0 +2020-05-15,Gosper,Nebraska,31073,13,0 +2020-05-16,Gosper,Nebraska,31073,13,0 +2020-05-17,Gosper,Nebraska,31073,13,0 +2020-05-18,Gosper,Nebraska,31073,13,0 +2020-05-19,Gosper,Nebraska,31073,13,0 +2020-05-20,Gosper,Nebraska,31073,13,0 +2020-05-21,Gosper,Nebraska,31073,13,0 +2020-05-22,Gosper,Nebraska,31073,13,0 +2020-05-23,Gosper,Nebraska,31073,13,0 +2020-05-24,Gosper,Nebraska,31073,13,0 +2020-05-25,Gosper,Nebraska,31073,13,0 +2020-05-26,Gosper,Nebraska,31073,13,0 +2020-05-27,Gosper,Nebraska,31073,13,0 +2020-05-28,Gosper,Nebraska,31073,13,0 +2020-05-29,Gosper,Nebraska,31073,13,0 +2020-05-30,Gosper,Nebraska,31073,13,0 +2020-05-31,Gosper,Nebraska,31073,13,0 +2020-06-01,Gosper,Nebraska,31073,13,0 +2020-06-02,Gosper,Nebraska,31073,13,0 +2020-06-03,Gosper,Nebraska,31073,13,0 +2020-06-04,Gosper,Nebraska,31073,13,0 +2020-06-05,Gosper,Nebraska,31073,13,0 +2020-06-06,Gosper,Nebraska,31073,13,0 +2020-06-07,Gosper,Nebraska,31073,13,0 +2020-06-08,Gosper,Nebraska,31073,13,0 +2020-06-09,Gosper,Nebraska,31073,13,0 +2020-06-10,Gosper,Nebraska,31073,13,0 +2020-06-11,Gosper,Nebraska,31073,13,0 +2020-06-12,Gosper,Nebraska,31073,13,0 +2020-06-13,Gosper,Nebraska,31073,13,0 +2020-06-14,Gosper,Nebraska,31073,13,0 +2020-06-15,Gosper,Nebraska,31073,13,0 +2020-06-16,Gosper,Nebraska,31073,13,0 +2020-06-17,Gosper,Nebraska,31073,13,0 +2020-06-18,Gosper,Nebraska,31073,13,0 +2020-06-19,Gosper,Nebraska,31073,13,0 +2020-06-20,Gosper,Nebraska,31073,13,0 +2020-06-21,Gosper,Nebraska,31073,13,0 +2020-06-22,Gosper,Nebraska,31073,13,0 +2020-06-23,Gosper,Nebraska,31073,13,0 +2020-06-24,Gosper,Nebraska,31073,13,0 +2020-06-25,Gosper,Nebraska,31073,13,0 +2020-06-26,Gosper,Nebraska,31073,13,0 +2020-06-27,Gosper,Nebraska,31073,13,0 +2020-06-28,Gosper,Nebraska,31073,13,0 +2020-06-29,Gosper,Nebraska,31073,13,0 +2020-06-30,Gosper,Nebraska,31073,13,0 +2020-07-01,Gosper,Nebraska,31073,13,0 +2020-07-02,Gosper,Nebraska,31073,13,0 +2020-07-03,Gosper,Nebraska,31073,13,0 +2020-07-04,Gosper,Nebraska,31073,13,0 +2020-07-05,Gosper,Nebraska,31073,13,0 +2020-07-06,Gosper,Nebraska,31073,13,0 +2020-07-07,Gosper,Nebraska,31073,13,0 +2020-07-08,Gosper,Nebraska,31073,13,0 +2020-07-09,Gosper,Nebraska,31073,13,0 +2020-04-23,Greeley,Nebraska,31077,1,0 +2020-04-24,Greeley,Nebraska,31077,1,0 +2020-04-25,Greeley,Nebraska,31077,1,0 +2020-04-26,Greeley,Nebraska,31077,1,0 +2020-04-27,Greeley,Nebraska,31077,2,0 +2020-04-28,Greeley,Nebraska,31077,2,0 +2020-04-29,Greeley,Nebraska,31077,2,0 +2020-04-30,Greeley,Nebraska,31077,2,0 +2020-05-01,Greeley,Nebraska,31077,2,0 +2020-05-02,Greeley,Nebraska,31077,2,0 +2020-05-03,Greeley,Nebraska,31077,2,0 +2020-05-04,Greeley,Nebraska,31077,2,0 +2020-05-05,Greeley,Nebraska,31077,2,0 +2020-05-06,Greeley,Nebraska,31077,2,0 +2020-05-07,Greeley,Nebraska,31077,2,0 +2020-05-08,Greeley,Nebraska,31077,2,0 +2020-05-09,Greeley,Nebraska,31077,2,0 +2020-05-10,Greeley,Nebraska,31077,2,0 +2020-05-11,Greeley,Nebraska,31077,2,0 +2020-05-12,Greeley,Nebraska,31077,2,0 +2020-05-13,Greeley,Nebraska,31077,2,0 +2020-05-14,Greeley,Nebraska,31077,2,0 +2020-05-15,Greeley,Nebraska,31077,2,0 +2020-05-16,Greeley,Nebraska,31077,2,0 +2020-05-17,Greeley,Nebraska,31077,2,0 +2020-05-18,Greeley,Nebraska,31077,2,0 +2020-05-19,Greeley,Nebraska,31077,2,0 +2020-05-20,Greeley,Nebraska,31077,2,0 +2020-05-21,Greeley,Nebraska,31077,2,0 +2020-05-22,Greeley,Nebraska,31077,2,0 +2020-05-23,Greeley,Nebraska,31077,3,0 +2020-05-24,Greeley,Nebraska,31077,3,0 +2020-05-25,Greeley,Nebraska,31077,3,0 +2020-05-26,Greeley,Nebraska,31077,2,0 +2020-05-27,Greeley,Nebraska,31077,2,0 +2020-05-28,Greeley,Nebraska,31077,2,0 +2020-05-29,Greeley,Nebraska,31077,2,0 +2020-05-30,Greeley,Nebraska,31077,2,0 +2020-05-31,Greeley,Nebraska,31077,2,0 +2020-06-01,Greeley,Nebraska,31077,2,0 +2020-06-02,Greeley,Nebraska,31077,2,0 +2020-06-03,Greeley,Nebraska,31077,2,0 +2020-06-04,Greeley,Nebraska,31077,2,0 +2020-06-05,Greeley,Nebraska,31077,3,0 +2020-06-06,Greeley,Nebraska,31077,3,0 +2020-06-07,Greeley,Nebraska,31077,3,0 +2020-06-08,Greeley,Nebraska,31077,3,0 +2020-06-09,Greeley,Nebraska,31077,3,0 +2020-06-10,Greeley,Nebraska,31077,3,0 +2020-06-11,Greeley,Nebraska,31077,3,0 +2020-06-12,Greeley,Nebraska,31077,3,0 +2020-06-13,Greeley,Nebraska,31077,3,0 +2020-06-14,Greeley,Nebraska,31077,3,0 +2020-06-15,Greeley,Nebraska,31077,3,0 +2020-06-16,Greeley,Nebraska,31077,3,0 +2020-06-17,Greeley,Nebraska,31077,3,0 +2020-06-18,Greeley,Nebraska,31077,3,0 +2020-06-19,Greeley,Nebraska,31077,3,0 +2020-06-20,Greeley,Nebraska,31077,3,0 +2020-06-21,Greeley,Nebraska,31077,3,0 +2020-06-22,Greeley,Nebraska,31077,3,0 +2020-06-23,Greeley,Nebraska,31077,3,0 +2020-06-24,Greeley,Nebraska,31077,3,0 +2020-06-25,Greeley,Nebraska,31077,3,0 +2020-06-26,Greeley,Nebraska,31077,3,0 +2020-06-27,Greeley,Nebraska,31077,3,0 +2020-06-28,Greeley,Nebraska,31077,3,0 +2020-06-29,Greeley,Nebraska,31077,3,0 +2020-06-30,Greeley,Nebraska,31077,3,0 +2020-07-01,Greeley,Nebraska,31077,3,0 +2020-07-02,Greeley,Nebraska,31077,3,0 +2020-07-03,Greeley,Nebraska,31077,3,0 +2020-07-04,Greeley,Nebraska,31077,3,0 +2020-07-05,Greeley,Nebraska,31077,3,0 +2020-07-06,Greeley,Nebraska,31077,5,0 +2020-07-07,Greeley,Nebraska,31077,5,0 +2020-07-08,Greeley,Nebraska,31077,5,0 +2020-07-09,Greeley,Nebraska,31077,5,0 +2020-03-26,Hall,Nebraska,31079,1,0 +2020-03-27,Hall,Nebraska,31079,2,1 +2020-03-28,Hall,Nebraska,31079,3,1 +2020-03-29,Hall,Nebraska,31079,6,1 +2020-03-30,Hall,Nebraska,31079,6,1 +2020-03-31,Hall,Nebraska,31079,9,1 +2020-04-01,Hall,Nebraska,31079,15,1 +2020-04-02,Hall,Nebraska,31079,19,1 +2020-04-03,Hall,Nebraska,31079,27,1 +2020-04-04,Hall,Nebraska,31079,40,1 +2020-04-05,Hall,Nebraska,31079,44,1 +2020-04-06,Hall,Nebraska,31079,55,1 +2020-04-07,Hall,Nebraska,31079,60,2 +2020-04-08,Hall,Nebraska,31079,69,2 +2020-04-09,Hall,Nebraska,31079,84,2 +2020-04-10,Hall,Nebraska,31079,129,4 +2020-04-11,Hall,Nebraska,31079,131,4 +2020-04-12,Hall,Nebraska,31079,161,4 +2020-04-13,Hall,Nebraska,31079,199,4 +2020-04-14,Hall,Nebraska,31079,235,4 +2020-04-15,Hall,Nebraska,31079,278,5 +2020-04-16,Hall,Nebraska,31079,339,5 +2020-04-17,Hall,Nebraska,31079,403,5 +2020-04-18,Hall,Nebraska,31079,468,8 +2020-04-19,Hall,Nebraska,31079,468,8 +2020-04-20,Hall,Nebraska,31079,531,10 +2020-04-21,Hall,Nebraska,31079,560,10 +2020-04-22,Hall,Nebraska,31079,588,13 +2020-04-23,Hall,Nebraska,31079,664,16 +2020-04-24,Hall,Nebraska,31079,760,21 +2020-04-25,Hall,Nebraska,31079,811,21 +2020-04-26,Hall,Nebraska,31079,877,19 +2020-04-27,Hall,Nebraska,31079,908,19 +2020-04-28,Hall,Nebraska,31079,933,19 +2020-04-29,Hall,Nebraska,31079,943,27 +2020-04-30,Hall,Nebraska,31079,1042,28 +2020-05-01,Hall,Nebraska,31079,1111,28 +2020-05-02,Hall,Nebraska,31079,1160,28 +2020-05-03,Hall,Nebraska,31079,1256,28 +2020-05-04,Hall,Nebraska,31079,1281,28 +2020-05-05,Hall,Nebraska,31079,1284,31 +2020-05-06,Hall,Nebraska,31079,1290,31 +2020-05-07,Hall,Nebraska,31079,1306,31 +2020-05-08,Hall,Nebraska,31079,1311,34 +2020-05-09,Hall,Nebraska,31079,1325,34 +2020-05-10,Hall,Nebraska,31079,1328,34 +2020-05-11,Hall,Nebraska,31079,1338,35 +2020-05-12,Hall,Nebraska,31079,1344,35 +2020-05-13,Hall,Nebraska,31079,1377,35 +2020-05-14,Hall,Nebraska,31079,1392,37 +2020-05-15,Hall,Nebraska,31079,1409,37 +2020-05-16,Hall,Nebraska,31079,1424,39 +2020-05-17,Hall,Nebraska,31079,1430,39 +2020-05-18,Hall,Nebraska,31079,1433,39 +2020-05-19,Hall,Nebraska,31079,1435,39 +2020-05-20,Hall,Nebraska,31079,1446,39 +2020-05-21,Hall,Nebraska,31079,1452,39 +2020-05-22,Hall,Nebraska,31079,1465,39 +2020-05-23,Hall,Nebraska,31079,1465,39 +2020-05-24,Hall,Nebraska,31079,1465,40 +2020-05-25,Hall,Nebraska,31079,1466,40 +2020-05-26,Hall,Nebraska,31079,1470,42 +2020-05-27,Hall,Nebraska,31079,1482,42 +2020-05-28,Hall,Nebraska,31079,1482,42 +2020-05-29,Hall,Nebraska,31079,1507,42 +2020-05-30,Hall,Nebraska,31079,1507,42 +2020-05-31,Hall,Nebraska,31079,1507,42 +2020-06-01,Hall,Nebraska,31079,1515,43 +2020-06-02,Hall,Nebraska,31079,1533,43 +2020-06-03,Hall,Nebraska,31079,1540,44 +2020-06-04,Hall,Nebraska,31079,1540,44 +2020-06-05,Hall,Nebraska,31079,1553,44 +2020-06-06,Hall,Nebraska,31079,1553,44 +2020-06-07,Hall,Nebraska,31079,1553,44 +2020-06-08,Hall,Nebraska,31079,1567,44 +2020-06-09,Hall,Nebraska,31079,1567,44 +2020-06-10,Hall,Nebraska,31079,1567,44 +2020-06-11,Hall,Nebraska,31079,1571,45 +2020-06-12,Hall,Nebraska,31079,1578,45 +2020-06-13,Hall,Nebraska,31079,1578,45 +2020-06-14,Hall,Nebraska,31079,1578,45 +2020-06-15,Hall,Nebraska,31079,1578,45 +2020-06-16,Hall,Nebraska,31079,1578,45 +2020-06-17,Hall,Nebraska,31079,1588,45 +2020-06-18,Hall,Nebraska,31079,1588,45 +2020-06-19,Hall,Nebraska,31079,1588,45 +2020-06-20,Hall,Nebraska,31079,1588,45 +2020-06-21,Hall,Nebraska,31079,1588,45 +2020-06-22,Hall,Nebraska,31079,1591,45 +2020-06-23,Hall,Nebraska,31079,1591,46 +2020-06-24,Hall,Nebraska,31079,1594,46 +2020-06-25,Hall,Nebraska,31079,1594,46 +2020-06-26,Hall,Nebraska,31079,1598,46 +2020-06-27,Hall,Nebraska,31079,1598,46 +2020-06-28,Hall,Nebraska,31079,1598,46 +2020-06-29,Hall,Nebraska,31079,1602,47 +2020-06-30,Hall,Nebraska,31079,1602,47 +2020-07-01,Hall,Nebraska,31079,1603,47 +2020-07-02,Hall,Nebraska,31079,1603,47 +2020-07-03,Hall,Nebraska,31079,1603,47 +2020-07-04,Hall,Nebraska,31079,1603,47 +2020-07-05,Hall,Nebraska,31079,1603,47 +2020-07-06,Hall,Nebraska,31079,1611,47 +2020-07-07,Hall,Nebraska,31079,1611,47 +2020-07-08,Hall,Nebraska,31079,1620,47 +2020-07-09,Hall,Nebraska,31079,1620,47 +2020-04-02,Hamilton,Nebraska,31081,2,0 +2020-04-03,Hamilton,Nebraska,31081,3,0 +2020-04-04,Hamilton,Nebraska,31081,4,0 +2020-04-05,Hamilton,Nebraska,31081,6,0 +2020-04-06,Hamilton,Nebraska,31081,6,0 +2020-04-07,Hamilton,Nebraska,31081,7,0 +2020-04-08,Hamilton,Nebraska,31081,7,0 +2020-04-09,Hamilton,Nebraska,31081,8,0 +2020-04-10,Hamilton,Nebraska,31081,9,0 +2020-04-11,Hamilton,Nebraska,31081,10,0 +2020-04-12,Hamilton,Nebraska,31081,11,0 +2020-04-13,Hamilton,Nebraska,31081,13,0 +2020-04-14,Hamilton,Nebraska,31081,13,0 +2020-04-15,Hamilton,Nebraska,31081,15,0 +2020-04-16,Hamilton,Nebraska,31081,15,1 +2020-04-17,Hamilton,Nebraska,31081,16,1 +2020-04-18,Hamilton,Nebraska,31081,17,1 +2020-04-19,Hamilton,Nebraska,31081,19,1 +2020-04-20,Hamilton,Nebraska,31081,20,2 +2020-04-21,Hamilton,Nebraska,31081,24,2 +2020-04-22,Hamilton,Nebraska,31081,27,3 +2020-04-23,Hamilton,Nebraska,31081,29,3 +2020-04-24,Hamilton,Nebraska,31081,32,3 +2020-04-25,Hamilton,Nebraska,31081,47,3 +2020-04-26,Hamilton,Nebraska,31081,47,6 +2020-04-27,Hamilton,Nebraska,31081,47,6 +2020-04-28,Hamilton,Nebraska,31081,48,6 +2020-04-29,Hamilton,Nebraska,31081,48,8 +2020-04-30,Hamilton,Nebraska,31081,48,8 +2020-05-01,Hamilton,Nebraska,31081,48,8 +2020-05-02,Hamilton,Nebraska,31081,48,9 +2020-05-03,Hamilton,Nebraska,31081,50,9 +2020-05-04,Hamilton,Nebraska,31081,50,9 +2020-05-05,Hamilton,Nebraska,31081,50,9 +2020-05-06,Hamilton,Nebraska,31081,52,9 +2020-05-07,Hamilton,Nebraska,31081,52,9 +2020-05-08,Hamilton,Nebraska,31081,52,8 +2020-05-09,Hamilton,Nebraska,31081,52,8 +2020-05-10,Hamilton,Nebraska,31081,52,8 +2020-05-11,Hamilton,Nebraska,31081,53,8 +2020-05-12,Hamilton,Nebraska,31081,53,8 +2020-05-13,Hamilton,Nebraska,31081,53,9 +2020-05-14,Hamilton,Nebraska,31081,53,9 +2020-05-15,Hamilton,Nebraska,31081,54,9 +2020-05-16,Hamilton,Nebraska,31081,54,9 +2020-05-17,Hamilton,Nebraska,31081,54,9 +2020-05-18,Hamilton,Nebraska,31081,54,9 +2020-05-19,Hamilton,Nebraska,31081,54,9 +2020-05-20,Hamilton,Nebraska,31081,58,12 +2020-05-21,Hamilton,Nebraska,31081,58,12 +2020-05-22,Hamilton,Nebraska,31081,58,12 +2020-05-23,Hamilton,Nebraska,31081,58,12 +2020-05-24,Hamilton,Nebraska,31081,58,12 +2020-05-25,Hamilton,Nebraska,31081,58,12 +2020-05-26,Hamilton,Nebraska,31081,58,12 +2020-05-27,Hamilton,Nebraska,31081,60,12 +2020-05-28,Hamilton,Nebraska,31081,60,12 +2020-05-29,Hamilton,Nebraska,31081,60,13 +2020-05-30,Hamilton,Nebraska,31081,60,13 +2020-05-31,Hamilton,Nebraska,31081,60,13 +2020-06-01,Hamilton,Nebraska,31081,60,13 +2020-06-02,Hamilton,Nebraska,31081,61,13 +2020-06-03,Hamilton,Nebraska,31081,61,13 +2020-06-04,Hamilton,Nebraska,31081,61,13 +2020-06-05,Hamilton,Nebraska,31081,61,13 +2020-06-06,Hamilton,Nebraska,31081,61,13 +2020-06-07,Hamilton,Nebraska,31081,61,13 +2020-06-08,Hamilton,Nebraska,31081,61,13 +2020-06-09,Hamilton,Nebraska,31081,61,13 +2020-06-10,Hamilton,Nebraska,31081,61,13 +2020-06-11,Hamilton,Nebraska,31081,61,13 +2020-06-12,Hamilton,Nebraska,31081,61,13 +2020-06-13,Hamilton,Nebraska,31081,61,13 +2020-06-14,Hamilton,Nebraska,31081,61,13 +2020-06-15,Hamilton,Nebraska,31081,61,13 +2020-06-16,Hamilton,Nebraska,31081,61,13 +2020-06-17,Hamilton,Nebraska,31081,61,13 +2020-06-18,Hamilton,Nebraska,31081,61,13 +2020-06-19,Hamilton,Nebraska,31081,62,13 +2020-06-20,Hamilton,Nebraska,31081,62,13 +2020-06-21,Hamilton,Nebraska,31081,62,13 +2020-06-22,Hamilton,Nebraska,31081,62,13 +2020-06-23,Hamilton,Nebraska,31081,62,13 +2020-06-24,Hamilton,Nebraska,31081,64,13 +2020-06-25,Hamilton,Nebraska,31081,64,13 +2020-06-26,Hamilton,Nebraska,31081,64,13 +2020-06-27,Hamilton,Nebraska,31081,64,13 +2020-06-28,Hamilton,Nebraska,31081,64,13 +2020-06-29,Hamilton,Nebraska,31081,64,13 +2020-06-30,Hamilton,Nebraska,31081,64,13 +2020-07-01,Hamilton,Nebraska,31081,67,13 +2020-07-02,Hamilton,Nebraska,31081,67,13 +2020-07-03,Hamilton,Nebraska,31081,67,13 +2020-07-04,Hamilton,Nebraska,31081,67,13 +2020-07-05,Hamilton,Nebraska,31081,67,13 +2020-07-06,Hamilton,Nebraska,31081,67,13 +2020-07-07,Hamilton,Nebraska,31081,67,13 +2020-07-08,Hamilton,Nebraska,31081,70,13 +2020-07-09,Hamilton,Nebraska,31081,70,13 +2020-06-23,Harlan,Nebraska,31083,1,0 +2020-06-24,Harlan,Nebraska,31083,1,0 +2020-06-25,Harlan,Nebraska,31083,1,0 +2020-06-26,Harlan,Nebraska,31083,1,0 +2020-06-27,Harlan,Nebraska,31083,1,0 +2020-06-28,Harlan,Nebraska,31083,1,0 +2020-06-29,Harlan,Nebraska,31083,1,0 +2020-06-30,Harlan,Nebraska,31083,1,0 +2020-07-01,Harlan,Nebraska,31083,1,0 +2020-07-02,Harlan,Nebraska,31083,1,0 +2020-07-03,Harlan,Nebraska,31083,1,0 +2020-07-04,Harlan,Nebraska,31083,1,0 +2020-07-05,Harlan,Nebraska,31083,1,0 +2020-07-06,Harlan,Nebraska,31083,1,0 +2020-07-07,Harlan,Nebraska,31083,1,0 +2020-07-08,Harlan,Nebraska,31083,1,0 +2020-07-09,Harlan,Nebraska,31083,1,0 +2020-04-30,Hitchcock,Nebraska,31087,1,0 +2020-05-01,Hitchcock,Nebraska,31087,1,0 +2020-05-02,Hitchcock,Nebraska,31087,1,0 +2020-05-03,Hitchcock,Nebraska,31087,1,0 +2020-05-04,Hitchcock,Nebraska,31087,1,0 +2020-05-05,Hitchcock,Nebraska,31087,1,0 +2020-05-06,Hitchcock,Nebraska,31087,1,0 +2020-05-07,Hitchcock,Nebraska,31087,1,0 +2020-05-08,Hitchcock,Nebraska,31087,1,0 +2020-05-09,Hitchcock,Nebraska,31087,1,0 +2020-05-10,Hitchcock,Nebraska,31087,1,0 +2020-05-11,Hitchcock,Nebraska,31087,1,0 +2020-05-12,Hitchcock,Nebraska,31087,1,0 +2020-05-13,Hitchcock,Nebraska,31087,1,0 +2020-05-14,Hitchcock,Nebraska,31087,1,0 +2020-05-15,Hitchcock,Nebraska,31087,1,0 +2020-05-16,Hitchcock,Nebraska,31087,1,0 +2020-05-17,Hitchcock,Nebraska,31087,1,0 +2020-05-18,Hitchcock,Nebraska,31087,1,0 +2020-05-19,Hitchcock,Nebraska,31087,1,0 +2020-05-20,Hitchcock,Nebraska,31087,1,0 +2020-05-21,Hitchcock,Nebraska,31087,1,0 +2020-05-22,Hitchcock,Nebraska,31087,1,0 +2020-05-23,Hitchcock,Nebraska,31087,1,0 +2020-05-24,Hitchcock,Nebraska,31087,1,0 +2020-05-25,Hitchcock,Nebraska,31087,1,0 +2020-05-26,Hitchcock,Nebraska,31087,1,0 +2020-05-27,Hitchcock,Nebraska,31087,1,0 +2020-05-28,Hitchcock,Nebraska,31087,1,0 +2020-05-29,Hitchcock,Nebraska,31087,1,0 +2020-05-30,Hitchcock,Nebraska,31087,1,0 +2020-05-31,Hitchcock,Nebraska,31087,1,0 +2020-06-01,Hitchcock,Nebraska,31087,1,0 +2020-06-02,Hitchcock,Nebraska,31087,1,0 +2020-06-03,Hitchcock,Nebraska,31087,1,0 +2020-06-04,Hitchcock,Nebraska,31087,1,0 +2020-06-05,Hitchcock,Nebraska,31087,1,0 +2020-06-06,Hitchcock,Nebraska,31087,1,0 +2020-06-07,Hitchcock,Nebraska,31087,1,0 +2020-06-08,Hitchcock,Nebraska,31087,1,0 +2020-06-09,Hitchcock,Nebraska,31087,1,0 +2020-06-10,Hitchcock,Nebraska,31087,1,0 +2020-06-11,Hitchcock,Nebraska,31087,1,0 +2020-06-12,Hitchcock,Nebraska,31087,1,0 +2020-06-13,Hitchcock,Nebraska,31087,1,0 +2020-06-14,Hitchcock,Nebraska,31087,1,0 +2020-06-15,Hitchcock,Nebraska,31087,1,0 +2020-06-16,Hitchcock,Nebraska,31087,1,0 +2020-06-17,Hitchcock,Nebraska,31087,1,0 +2020-06-18,Hitchcock,Nebraska,31087,1,0 +2020-06-19,Hitchcock,Nebraska,31087,1,0 +2020-06-20,Hitchcock,Nebraska,31087,1,0 +2020-06-21,Hitchcock,Nebraska,31087,1,0 +2020-06-22,Hitchcock,Nebraska,31087,1,0 +2020-06-23,Hitchcock,Nebraska,31087,1,0 +2020-06-24,Hitchcock,Nebraska,31087,1,0 +2020-06-25,Hitchcock,Nebraska,31087,1,0 +2020-06-26,Hitchcock,Nebraska,31087,1,0 +2020-06-27,Hitchcock,Nebraska,31087,1,0 +2020-06-28,Hitchcock,Nebraska,31087,1,0 +2020-06-29,Hitchcock,Nebraska,31087,1,0 +2020-06-30,Hitchcock,Nebraska,31087,1,0 +2020-07-01,Hitchcock,Nebraska,31087,1,0 +2020-07-02,Hitchcock,Nebraska,31087,1,0 +2020-07-03,Hitchcock,Nebraska,31087,1,0 +2020-07-04,Hitchcock,Nebraska,31087,1,0 +2020-07-05,Hitchcock,Nebraska,31087,1,0 +2020-07-06,Hitchcock,Nebraska,31087,1,0 +2020-07-07,Hitchcock,Nebraska,31087,1,0 +2020-07-08,Hitchcock,Nebraska,31087,1,0 +2020-07-09,Hitchcock,Nebraska,31087,1,0 +2020-05-03,Holt,Nebraska,31089,1,0 +2020-05-04,Holt,Nebraska,31089,1,0 +2020-05-05,Holt,Nebraska,31089,1,0 +2020-05-06,Holt,Nebraska,31089,1,0 +2020-05-07,Holt,Nebraska,31089,1,0 +2020-05-08,Holt,Nebraska,31089,1,0 +2020-05-09,Holt,Nebraska,31089,1,0 +2020-05-10,Holt,Nebraska,31089,1,0 +2020-05-11,Holt,Nebraska,31089,1,0 +2020-05-12,Holt,Nebraska,31089,1,0 +2020-05-13,Holt,Nebraska,31089,1,0 +2020-05-14,Holt,Nebraska,31089,1,0 +2020-05-15,Holt,Nebraska,31089,1,0 +2020-05-16,Holt,Nebraska,31089,1,0 +2020-05-17,Holt,Nebraska,31089,1,0 +2020-05-18,Holt,Nebraska,31089,1,0 +2020-05-19,Holt,Nebraska,31089,1,0 +2020-05-20,Holt,Nebraska,31089,1,0 +2020-05-21,Holt,Nebraska,31089,1,0 +2020-05-22,Holt,Nebraska,31089,1,0 +2020-05-23,Holt,Nebraska,31089,1,0 +2020-05-24,Holt,Nebraska,31089,1,0 +2020-05-25,Holt,Nebraska,31089,1,0 +2020-05-26,Holt,Nebraska,31089,1,0 +2020-05-27,Holt,Nebraska,31089,1,0 +2020-05-28,Holt,Nebraska,31089,1,0 +2020-05-29,Holt,Nebraska,31089,1,0 +2020-05-30,Holt,Nebraska,31089,1,0 +2020-05-31,Holt,Nebraska,31089,1,0 +2020-06-01,Holt,Nebraska,31089,1,0 +2020-06-02,Holt,Nebraska,31089,1,0 +2020-06-03,Holt,Nebraska,31089,1,0 +2020-06-04,Holt,Nebraska,31089,1,0 +2020-06-05,Holt,Nebraska,31089,1,0 +2020-06-06,Holt,Nebraska,31089,1,0 +2020-06-07,Holt,Nebraska,31089,1,0 +2020-06-08,Holt,Nebraska,31089,1,0 +2020-06-09,Holt,Nebraska,31089,1,0 +2020-06-10,Holt,Nebraska,31089,1,0 +2020-06-11,Holt,Nebraska,31089,1,0 +2020-06-12,Holt,Nebraska,31089,1,0 +2020-06-13,Holt,Nebraska,31089,1,0 +2020-06-14,Holt,Nebraska,31089,1,0 +2020-06-15,Holt,Nebraska,31089,1,0 +2020-06-16,Holt,Nebraska,31089,1,0 +2020-06-17,Holt,Nebraska,31089,1,0 +2020-06-18,Holt,Nebraska,31089,1,0 +2020-06-19,Holt,Nebraska,31089,1,0 +2020-06-20,Holt,Nebraska,31089,1,0 +2020-06-21,Holt,Nebraska,31089,1,0 +2020-06-22,Holt,Nebraska,31089,2,0 +2020-06-23,Holt,Nebraska,31089,3,0 +2020-06-24,Holt,Nebraska,31089,3,0 +2020-06-25,Holt,Nebraska,31089,3,0 +2020-06-26,Holt,Nebraska,31089,3,0 +2020-06-27,Holt,Nebraska,31089,3,0 +2020-06-28,Holt,Nebraska,31089,3,0 +2020-06-29,Holt,Nebraska,31089,3,0 +2020-06-30,Holt,Nebraska,31089,3,0 +2020-07-01,Holt,Nebraska,31089,3,0 +2020-07-02,Holt,Nebraska,31089,3,0 +2020-07-03,Holt,Nebraska,31089,3,0 +2020-07-04,Holt,Nebraska,31089,3,0 +2020-07-05,Holt,Nebraska,31089,3,0 +2020-07-06,Holt,Nebraska,31089,3,0 +2020-07-07,Holt,Nebraska,31089,3,0 +2020-07-08,Holt,Nebraska,31089,4,0 +2020-07-09,Holt,Nebraska,31089,4,0 +2020-07-01,Hooker,Nebraska,31091,1,0 +2020-07-02,Hooker,Nebraska,31091,1,0 +2020-07-03,Hooker,Nebraska,31091,1,0 +2020-07-04,Hooker,Nebraska,31091,1,0 +2020-07-05,Hooker,Nebraska,31091,1,0 +2020-07-06,Hooker,Nebraska,31091,2,0 +2020-07-07,Hooker,Nebraska,31091,2,0 +2020-07-08,Hooker,Nebraska,31091,2,0 +2020-07-09,Hooker,Nebraska,31091,2,0 +2020-04-16,Howard,Nebraska,31093,2,0 +2020-04-17,Howard,Nebraska,31093,3,0 +2020-04-18,Howard,Nebraska,31093,3,0 +2020-04-19,Howard,Nebraska,31093,3,0 +2020-04-20,Howard,Nebraska,31093,3,0 +2020-04-21,Howard,Nebraska,31093,5,0 +2020-04-22,Howard,Nebraska,31093,5,0 +2020-04-23,Howard,Nebraska,31093,9,0 +2020-04-24,Howard,Nebraska,31093,9,0 +2020-04-25,Howard,Nebraska,31093,11,0 +2020-04-26,Howard,Nebraska,31093,12,0 +2020-04-27,Howard,Nebraska,31093,12,0 +2020-04-28,Howard,Nebraska,31093,10,0 +2020-04-29,Howard,Nebraska,31093,12,0 +2020-04-30,Howard,Nebraska,31093,12,0 +2020-05-01,Howard,Nebraska,31093,15,0 +2020-05-02,Howard,Nebraska,31093,18,0 +2020-05-03,Howard,Nebraska,31093,18,0 +2020-05-04,Howard,Nebraska,31093,19,0 +2020-05-05,Howard,Nebraska,31093,21,0 +2020-05-06,Howard,Nebraska,31093,21,0 +2020-05-07,Howard,Nebraska,31093,21,0 +2020-05-08,Howard,Nebraska,31093,22,0 +2020-05-09,Howard,Nebraska,31093,22,0 +2020-05-10,Howard,Nebraska,31093,22,0 +2020-05-11,Howard,Nebraska,31093,22,0 +2020-05-12,Howard,Nebraska,31093,23,0 +2020-05-13,Howard,Nebraska,31093,28,0 +2020-05-14,Howard,Nebraska,31093,28,0 +2020-05-15,Howard,Nebraska,31093,32,0 +2020-05-16,Howard,Nebraska,31093,35,0 +2020-05-17,Howard,Nebraska,31093,36,0 +2020-05-18,Howard,Nebraska,31093,36,0 +2020-05-19,Howard,Nebraska,31093,38,0 +2020-05-20,Howard,Nebraska,31093,38,0 +2020-05-21,Howard,Nebraska,31093,38,0 +2020-05-22,Howard,Nebraska,31093,38,2 +2020-05-23,Howard,Nebraska,31093,39,2 +2020-05-24,Howard,Nebraska,31093,39,2 +2020-05-25,Howard,Nebraska,31093,39,2 +2020-05-26,Howard,Nebraska,31093,40,3 +2020-05-27,Howard,Nebraska,31093,39,4 +2020-05-28,Howard,Nebraska,31093,40,4 +2020-05-29,Howard,Nebraska,31093,42,4 +2020-05-30,Howard,Nebraska,31093,42,4 +2020-05-31,Howard,Nebraska,31093,42,4 +2020-06-01,Howard,Nebraska,31093,42,4 +2020-06-02,Howard,Nebraska,31093,42,4 +2020-06-03,Howard,Nebraska,31093,42,4 +2020-06-04,Howard,Nebraska,31093,42,4 +2020-06-05,Howard,Nebraska,31093,43,4 +2020-06-06,Howard,Nebraska,31093,43,4 +2020-06-07,Howard,Nebraska,31093,43,4 +2020-06-08,Howard,Nebraska,31093,43,4 +2020-06-09,Howard,Nebraska,31093,43,4 +2020-06-10,Howard,Nebraska,31093,44,4 +2020-06-11,Howard,Nebraska,31093,44,4 +2020-06-12,Howard,Nebraska,31093,44,4 +2020-06-13,Howard,Nebraska,31093,45,4 +2020-06-14,Howard,Nebraska,31093,45,4 +2020-06-15,Howard,Nebraska,31093,44,4 +2020-06-16,Howard,Nebraska,31093,44,4 +2020-06-17,Howard,Nebraska,31093,44,4 +2020-06-18,Howard,Nebraska,31093,44,4 +2020-06-19,Howard,Nebraska,31093,44,4 +2020-06-20,Howard,Nebraska,31093,44,4 +2020-06-21,Howard,Nebraska,31093,44,4 +2020-06-22,Howard,Nebraska,31093,45,4 +2020-06-23,Howard,Nebraska,31093,45,4 +2020-06-24,Howard,Nebraska,31093,46,4 +2020-06-25,Howard,Nebraska,31093,46,4 +2020-06-26,Howard,Nebraska,31093,46,4 +2020-06-27,Howard,Nebraska,31093,46,4 +2020-06-28,Howard,Nebraska,31093,46,4 +2020-06-29,Howard,Nebraska,31093,46,4 +2020-06-30,Howard,Nebraska,31093,46,4 +2020-07-01,Howard,Nebraska,31093,46,4 +2020-07-02,Howard,Nebraska,31093,46,4 +2020-07-03,Howard,Nebraska,31093,46,4 +2020-07-04,Howard,Nebraska,31093,46,4 +2020-07-05,Howard,Nebraska,31093,46,4 +2020-07-06,Howard,Nebraska,31093,44,4 +2020-07-07,Howard,Nebraska,31093,44,4 +2020-07-08,Howard,Nebraska,31093,44,4 +2020-07-09,Howard,Nebraska,31093,44,4 +2020-04-26,Jefferson,Nebraska,31095,1,0 +2020-04-27,Jefferson,Nebraska,31095,2,0 +2020-04-28,Jefferson,Nebraska,31095,3,0 +2020-04-29,Jefferson,Nebraska,31095,3,0 +2020-04-30,Jefferson,Nebraska,31095,4,0 +2020-05-01,Jefferson,Nebraska,31095,4,0 +2020-05-02,Jefferson,Nebraska,31095,4,0 +2020-05-03,Jefferson,Nebraska,31095,4,0 +2020-05-04,Jefferson,Nebraska,31095,4,0 +2020-05-05,Jefferson,Nebraska,31095,4,0 +2020-05-06,Jefferson,Nebraska,31095,4,0 +2020-05-07,Jefferson,Nebraska,31095,4,0 +2020-05-08,Jefferson,Nebraska,31095,4,0 +2020-05-09,Jefferson,Nebraska,31095,4,0 +2020-05-10,Jefferson,Nebraska,31095,4,0 +2020-05-11,Jefferson,Nebraska,31095,5,0 +2020-05-12,Jefferson,Nebraska,31095,5,0 +2020-05-13,Jefferson,Nebraska,31095,6,0 +2020-05-14,Jefferson,Nebraska,31095,6,0 +2020-05-15,Jefferson,Nebraska,31095,6,0 +2020-05-16,Jefferson,Nebraska,31095,6,0 +2020-05-17,Jefferson,Nebraska,31095,6,0 +2020-05-18,Jefferson,Nebraska,31095,6,0 +2020-05-19,Jefferson,Nebraska,31095,6,0 +2020-05-20,Jefferson,Nebraska,31095,6,0 +2020-05-21,Jefferson,Nebraska,31095,6,0 +2020-05-22,Jefferson,Nebraska,31095,6,0 +2020-05-23,Jefferson,Nebraska,31095,6,0 +2020-05-24,Jefferson,Nebraska,31095,6,0 +2020-05-25,Jefferson,Nebraska,31095,6,0 +2020-05-26,Jefferson,Nebraska,31095,6,0 +2020-05-27,Jefferson,Nebraska,31095,6,0 +2020-05-28,Jefferson,Nebraska,31095,6,0 +2020-05-29,Jefferson,Nebraska,31095,6,0 +2020-05-30,Jefferson,Nebraska,31095,6,0 +2020-05-31,Jefferson,Nebraska,31095,6,0 +2020-06-01,Jefferson,Nebraska,31095,6,0 +2020-06-02,Jefferson,Nebraska,31095,7,0 +2020-06-03,Jefferson,Nebraska,31095,7,0 +2020-06-04,Jefferson,Nebraska,31095,7,0 +2020-06-05,Jefferson,Nebraska,31095,7,0 +2020-06-06,Jefferson,Nebraska,31095,7,0 +2020-06-07,Jefferson,Nebraska,31095,8,0 +2020-06-08,Jefferson,Nebraska,31095,8,0 +2020-06-09,Jefferson,Nebraska,31095,9,0 +2020-06-10,Jefferson,Nebraska,31095,9,0 +2020-06-11,Jefferson,Nebraska,31095,9,0 +2020-06-12,Jefferson,Nebraska,31095,9,0 +2020-06-13,Jefferson,Nebraska,31095,9,0 +2020-06-14,Jefferson,Nebraska,31095,9,0 +2020-06-15,Jefferson,Nebraska,31095,9,0 +2020-06-16,Jefferson,Nebraska,31095,9,0 +2020-06-17,Jefferson,Nebraska,31095,9,0 +2020-06-18,Jefferson,Nebraska,31095,9,0 +2020-06-19,Jefferson,Nebraska,31095,9,0 +2020-06-20,Jefferson,Nebraska,31095,9,0 +2020-06-21,Jefferson,Nebraska,31095,9,0 +2020-06-22,Jefferson,Nebraska,31095,9,0 +2020-06-23,Jefferson,Nebraska,31095,9,0 +2020-06-24,Jefferson,Nebraska,31095,9,0 +2020-06-25,Jefferson,Nebraska,31095,9,0 +2020-06-26,Jefferson,Nebraska,31095,9,0 +2020-06-27,Jefferson,Nebraska,31095,9,0 +2020-06-28,Jefferson,Nebraska,31095,9,0 +2020-06-29,Jefferson,Nebraska,31095,9,0 +2020-06-30,Jefferson,Nebraska,31095,9,0 +2020-07-01,Jefferson,Nebraska,31095,10,0 +2020-07-02,Jefferson,Nebraska,31095,10,0 +2020-07-03,Jefferson,Nebraska,31095,10,0 +2020-07-04,Jefferson,Nebraska,31095,10,0 +2020-07-05,Jefferson,Nebraska,31095,10,0 +2020-07-06,Jefferson,Nebraska,31095,10,0 +2020-07-07,Jefferson,Nebraska,31095,10,0 +2020-07-08,Jefferson,Nebraska,31095,10,0 +2020-07-09,Jefferson,Nebraska,31095,10,0 +2020-04-05,Johnson,Nebraska,31097,1,0 +2020-04-06,Johnson,Nebraska,31097,1,0 +2020-04-07,Johnson,Nebraska,31097,1,0 +2020-04-08,Johnson,Nebraska,31097,1,0 +2020-04-09,Johnson,Nebraska,31097,1,0 +2020-04-10,Johnson,Nebraska,31097,1,0 +2020-04-11,Johnson,Nebraska,31097,1,0 +2020-04-12,Johnson,Nebraska,31097,1,0 +2020-04-13,Johnson,Nebraska,31097,1,0 +2020-04-14,Johnson,Nebraska,31097,1,0 +2020-04-15,Johnson,Nebraska,31097,1,0 +2020-04-16,Johnson,Nebraska,31097,2,0 +2020-04-17,Johnson,Nebraska,31097,2,0 +2020-04-18,Johnson,Nebraska,31097,2,0 +2020-04-19,Johnson,Nebraska,31097,2,0 +2020-04-20,Johnson,Nebraska,31097,2,0 +2020-04-21,Johnson,Nebraska,31097,2,0 +2020-04-22,Johnson,Nebraska,31097,2,0 +2020-04-23,Johnson,Nebraska,31097,2,0 +2020-04-24,Johnson,Nebraska,31097,2,0 +2020-04-25,Johnson,Nebraska,31097,2,0 +2020-04-26,Johnson,Nebraska,31097,4,0 +2020-04-27,Johnson,Nebraska,31097,4,0 +2020-04-28,Johnson,Nebraska,31097,4,0 +2020-04-29,Johnson,Nebraska,31097,4,0 +2020-04-30,Johnson,Nebraska,31097,4,0 +2020-05-01,Johnson,Nebraska,31097,4,0 +2020-05-02,Johnson,Nebraska,31097,4,0 +2020-05-03,Johnson,Nebraska,31097,4,0 +2020-05-04,Johnson,Nebraska,31097,4,0 +2020-05-05,Johnson,Nebraska,31097,4,0 +2020-05-06,Johnson,Nebraska,31097,4,0 +2020-05-07,Johnson,Nebraska,31097,4,0 +2020-05-08,Johnson,Nebraska,31097,5,0 +2020-05-09,Johnson,Nebraska,31097,5,0 +2020-05-10,Johnson,Nebraska,31097,5,0 +2020-05-11,Johnson,Nebraska,31097,5,0 +2020-05-12,Johnson,Nebraska,31097,5,0 +2020-05-13,Johnson,Nebraska,31097,5,0 +2020-05-14,Johnson,Nebraska,31097,5,0 +2020-05-15,Johnson,Nebraska,31097,6,0 +2020-05-16,Johnson,Nebraska,31097,6,0 +2020-05-17,Johnson,Nebraska,31097,7,0 +2020-05-18,Johnson,Nebraska,31097,7,0 +2020-05-19,Johnson,Nebraska,31097,7,0 +2020-05-20,Johnson,Nebraska,31097,7,0 +2020-05-21,Johnson,Nebraska,31097,7,0 +2020-05-22,Johnson,Nebraska,31097,7,0 +2020-05-23,Johnson,Nebraska,31097,7,0 +2020-05-24,Johnson,Nebraska,31097,7,0 +2020-05-25,Johnson,Nebraska,31097,7,0 +2020-05-26,Johnson,Nebraska,31097,7,0 +2020-05-27,Johnson,Nebraska,31097,7,0 +2020-05-28,Johnson,Nebraska,31097,7,0 +2020-05-29,Johnson,Nebraska,31097,6,0 +2020-05-30,Johnson,Nebraska,31097,6,0 +2020-05-31,Johnson,Nebraska,31097,6,0 +2020-06-01,Johnson,Nebraska,31097,6,0 +2020-06-02,Johnson,Nebraska,31097,6,0 +2020-06-03,Johnson,Nebraska,31097,6,0 +2020-06-04,Johnson,Nebraska,31097,6,0 +2020-06-05,Johnson,Nebraska,31097,6,0 +2020-06-06,Johnson,Nebraska,31097,6,0 +2020-06-07,Johnson,Nebraska,31097,6,0 +2020-06-08,Johnson,Nebraska,31097,6,0 +2020-06-09,Johnson,Nebraska,31097,6,0 +2020-06-10,Johnson,Nebraska,31097,6,0 +2020-06-11,Johnson,Nebraska,31097,6,0 +2020-06-12,Johnson,Nebraska,31097,6,0 +2020-06-13,Johnson,Nebraska,31097,6,0 +2020-06-14,Johnson,Nebraska,31097,6,0 +2020-06-15,Johnson,Nebraska,31097,6,0 +2020-06-16,Johnson,Nebraska,31097,6,0 +2020-06-17,Johnson,Nebraska,31097,6,0 +2020-06-18,Johnson,Nebraska,31097,6,0 +2020-06-19,Johnson,Nebraska,31097,6,0 +2020-06-20,Johnson,Nebraska,31097,6,0 +2020-06-21,Johnson,Nebraska,31097,6,0 +2020-06-22,Johnson,Nebraska,31097,6,0 +2020-06-23,Johnson,Nebraska,31097,6,0 +2020-06-24,Johnson,Nebraska,31097,6,0 +2020-06-25,Johnson,Nebraska,31097,6,0 +2020-06-26,Johnson,Nebraska,31097,6,0 +2020-06-27,Johnson,Nebraska,31097,6,0 +2020-06-28,Johnson,Nebraska,31097,6,0 +2020-06-29,Johnson,Nebraska,31097,6,0 +2020-06-30,Johnson,Nebraska,31097,7,0 +2020-07-01,Johnson,Nebraska,31097,7,0 +2020-07-02,Johnson,Nebraska,31097,7,0 +2020-07-03,Johnson,Nebraska,31097,7,0 +2020-07-04,Johnson,Nebraska,31097,7,0 +2020-07-05,Johnson,Nebraska,31097,7,0 +2020-07-06,Johnson,Nebraska,31097,7,0 +2020-07-07,Johnson,Nebraska,31097,7,0 +2020-07-08,Johnson,Nebraska,31097,7,0 +2020-07-09,Johnson,Nebraska,31097,7,0 +2020-03-26,Kearney,Nebraska,31099,1,0 +2020-03-27,Kearney,Nebraska,31099,1,0 +2020-03-28,Kearney,Nebraska,31099,1,0 +2020-03-29,Kearney,Nebraska,31099,1,0 +2020-03-30,Kearney,Nebraska,31099,1,0 +2020-03-31,Kearney,Nebraska,31099,1,0 +2020-04-01,Kearney,Nebraska,31099,1,0 +2020-04-02,Kearney,Nebraska,31099,2,0 +2020-04-03,Kearney,Nebraska,31099,1,0 +2020-04-04,Kearney,Nebraska,31099,1,0 +2020-04-05,Kearney,Nebraska,31099,2,0 +2020-04-06,Kearney,Nebraska,31099,2,0 +2020-04-07,Kearney,Nebraska,31099,2,0 +2020-04-08,Kearney,Nebraska,31099,3,0 +2020-04-09,Kearney,Nebraska,31099,3,0 +2020-04-10,Kearney,Nebraska,31099,3,0 +2020-04-11,Kearney,Nebraska,31099,3,0 +2020-04-12,Kearney,Nebraska,31099,3,0 +2020-04-13,Kearney,Nebraska,31099,3,0 +2020-04-14,Kearney,Nebraska,31099,3,0 +2020-04-15,Kearney,Nebraska,31099,3,0 +2020-04-16,Kearney,Nebraska,31099,3,0 +2020-04-17,Kearney,Nebraska,31099,3,0 +2020-04-18,Kearney,Nebraska,31099,3,0 +2020-04-19,Kearney,Nebraska,31099,4,0 +2020-04-20,Kearney,Nebraska,31099,4,0 +2020-04-21,Kearney,Nebraska,31099,4,0 +2020-04-22,Kearney,Nebraska,31099,4,0 +2020-04-23,Kearney,Nebraska,31099,4,0 +2020-04-24,Kearney,Nebraska,31099,4,0 +2020-04-25,Kearney,Nebraska,31099,4,0 +2020-04-26,Kearney,Nebraska,31099,4,0 +2020-04-27,Kearney,Nebraska,31099,4,0 +2020-04-28,Kearney,Nebraska,31099,4,0 +2020-04-29,Kearney,Nebraska,31099,4,0 +2020-04-30,Kearney,Nebraska,31099,4,0 +2020-05-01,Kearney,Nebraska,31099,4,0 +2020-05-02,Kearney,Nebraska,31099,4,0 +2020-05-03,Kearney,Nebraska,31099,4,0 +2020-05-04,Kearney,Nebraska,31099,5,0 +2020-05-05,Kearney,Nebraska,31099,5,0 +2020-05-06,Kearney,Nebraska,31099,6,0 +2020-05-07,Kearney,Nebraska,31099,7,0 +2020-05-08,Kearney,Nebraska,31099,7,0 +2020-05-09,Kearney,Nebraska,31099,7,0 +2020-05-10,Kearney,Nebraska,31099,7,0 +2020-05-11,Kearney,Nebraska,31099,7,0 +2020-05-12,Kearney,Nebraska,31099,9,0 +2020-05-13,Kearney,Nebraska,31099,9,0 +2020-05-14,Kearney,Nebraska,31099,10,0 +2020-05-15,Kearney,Nebraska,31099,10,0 +2020-05-16,Kearney,Nebraska,31099,11,0 +2020-05-17,Kearney,Nebraska,31099,11,0 +2020-05-18,Kearney,Nebraska,31099,11,0 +2020-05-19,Kearney,Nebraska,31099,11,0 +2020-05-20,Kearney,Nebraska,31099,11,0 +2020-05-21,Kearney,Nebraska,31099,11,0 +2020-05-22,Kearney,Nebraska,31099,11,0 +2020-05-23,Kearney,Nebraska,31099,11,0 +2020-05-24,Kearney,Nebraska,31099,11,0 +2020-05-25,Kearney,Nebraska,31099,12,0 +2020-05-26,Kearney,Nebraska,31099,12,0 +2020-05-27,Kearney,Nebraska,31099,11,0 +2020-05-28,Kearney,Nebraska,31099,11,0 +2020-05-29,Kearney,Nebraska,31099,11,0 +2020-05-30,Kearney,Nebraska,31099,11,0 +2020-05-31,Kearney,Nebraska,31099,11,0 +2020-06-01,Kearney,Nebraska,31099,11,0 +2020-06-02,Kearney,Nebraska,31099,11,0 +2020-06-03,Kearney,Nebraska,31099,11,0 +2020-06-04,Kearney,Nebraska,31099,12,0 +2020-06-05,Kearney,Nebraska,31099,12,0 +2020-06-06,Kearney,Nebraska,31099,12,0 +2020-06-07,Kearney,Nebraska,31099,12,0 +2020-06-08,Kearney,Nebraska,31099,12,0 +2020-06-09,Kearney,Nebraska,31099,12,0 +2020-06-10,Kearney,Nebraska,31099,12,0 +2020-06-11,Kearney,Nebraska,31099,12,0 +2020-06-12,Kearney,Nebraska,31099,12,0 +2020-06-13,Kearney,Nebraska,31099,12,0 +2020-06-14,Kearney,Nebraska,31099,12,0 +2020-06-15,Kearney,Nebraska,31099,12,0 +2020-06-16,Kearney,Nebraska,31099,12,0 +2020-06-17,Kearney,Nebraska,31099,12,0 +2020-06-18,Kearney,Nebraska,31099,12,0 +2020-06-19,Kearney,Nebraska,31099,12,0 +2020-06-20,Kearney,Nebraska,31099,12,0 +2020-06-21,Kearney,Nebraska,31099,12,0 +2020-06-22,Kearney,Nebraska,31099,13,0 +2020-06-23,Kearney,Nebraska,31099,13,0 +2020-06-24,Kearney,Nebraska,31099,13,0 +2020-06-25,Kearney,Nebraska,31099,13,0 +2020-06-26,Kearney,Nebraska,31099,13,0 +2020-06-27,Kearney,Nebraska,31099,13,0 +2020-06-28,Kearney,Nebraska,31099,13,0 +2020-06-29,Kearney,Nebraska,31099,13,0 +2020-06-30,Kearney,Nebraska,31099,13,0 +2020-07-01,Kearney,Nebraska,31099,14,0 +2020-07-02,Kearney,Nebraska,31099,15,0 +2020-07-03,Kearney,Nebraska,31099,15,0 +2020-07-04,Kearney,Nebraska,31099,16,0 +2020-07-05,Kearney,Nebraska,31099,16,0 +2020-07-06,Kearney,Nebraska,31099,17,0 +2020-07-07,Kearney,Nebraska,31099,17,0 +2020-07-08,Kearney,Nebraska,31099,17,0 +2020-07-09,Kearney,Nebraska,31099,18,0 +2020-05-02,Keith,Nebraska,31101,1,0 +2020-05-03,Keith,Nebraska,31101,1,0 +2020-05-04,Keith,Nebraska,31101,1,0 +2020-05-05,Keith,Nebraska,31101,1,0 +2020-05-06,Keith,Nebraska,31101,1,0 +2020-05-07,Keith,Nebraska,31101,1,0 +2020-05-08,Keith,Nebraska,31101,2,0 +2020-05-09,Keith,Nebraska,31101,2,0 +2020-05-10,Keith,Nebraska,31101,2,0 +2020-05-11,Keith,Nebraska,31101,2,0 +2020-05-12,Keith,Nebraska,31101,2,0 +2020-05-13,Keith,Nebraska,31101,2,0 +2020-05-14,Keith,Nebraska,31101,2,0 +2020-05-15,Keith,Nebraska,31101,2,0 +2020-05-16,Keith,Nebraska,31101,2,0 +2020-05-17,Keith,Nebraska,31101,2,0 +2020-05-18,Keith,Nebraska,31101,2,0 +2020-05-19,Keith,Nebraska,31101,2,0 +2020-05-20,Keith,Nebraska,31101,2,0 +2020-05-21,Keith,Nebraska,31101,2,0 +2020-05-22,Keith,Nebraska,31101,2,0 +2020-05-23,Keith,Nebraska,31101,2,0 +2020-05-24,Keith,Nebraska,31101,2,0 +2020-05-25,Keith,Nebraska,31101,2,0 +2020-05-26,Keith,Nebraska,31101,2,0 +2020-05-27,Keith,Nebraska,31101,2,0 +2020-05-28,Keith,Nebraska,31101,2,0 +2020-05-29,Keith,Nebraska,31101,2,0 +2020-05-30,Keith,Nebraska,31101,2,0 +2020-05-31,Keith,Nebraska,31101,2,0 +2020-06-01,Keith,Nebraska,31101,2,0 +2020-06-02,Keith,Nebraska,31101,2,0 +2020-06-03,Keith,Nebraska,31101,2,0 +2020-06-04,Keith,Nebraska,31101,2,0 +2020-06-05,Keith,Nebraska,31101,2,0 +2020-06-06,Keith,Nebraska,31101,2,0 +2020-06-07,Keith,Nebraska,31101,2,0 +2020-06-08,Keith,Nebraska,31101,2,0 +2020-06-09,Keith,Nebraska,31101,2,0 +2020-06-10,Keith,Nebraska,31101,2,0 +2020-06-11,Keith,Nebraska,31101,2,0 +2020-06-12,Keith,Nebraska,31101,2,0 +2020-06-13,Keith,Nebraska,31101,2,0 +2020-06-14,Keith,Nebraska,31101,2,0 +2020-06-15,Keith,Nebraska,31101,2,0 +2020-06-16,Keith,Nebraska,31101,2,0 +2020-06-17,Keith,Nebraska,31101,2,0 +2020-06-18,Keith,Nebraska,31101,2,0 +2020-06-19,Keith,Nebraska,31101,2,0 +2020-06-20,Keith,Nebraska,31101,2,0 +2020-06-21,Keith,Nebraska,31101,2,0 +2020-06-22,Keith,Nebraska,31101,2,0 +2020-06-23,Keith,Nebraska,31101,2,0 +2020-06-24,Keith,Nebraska,31101,2,0 +2020-06-25,Keith,Nebraska,31101,2,0 +2020-06-26,Keith,Nebraska,31101,2,0 +2020-06-27,Keith,Nebraska,31101,3,0 +2020-06-28,Keith,Nebraska,31101,3,0 +2020-06-29,Keith,Nebraska,31101,4,0 +2020-06-30,Keith,Nebraska,31101,4,0 +2020-07-01,Keith,Nebraska,31101,4,0 +2020-07-02,Keith,Nebraska,31101,4,0 +2020-07-03,Keith,Nebraska,31101,4,0 +2020-07-04,Keith,Nebraska,31101,4,0 +2020-07-05,Keith,Nebraska,31101,4,0 +2020-07-06,Keith,Nebraska,31101,4,0 +2020-07-07,Keith,Nebraska,31101,4,0 +2020-07-08,Keith,Nebraska,31101,4,0 +2020-07-09,Keith,Nebraska,31101,4,0 +2020-03-31,Kimball,Nebraska,31105,1,0 +2020-04-01,Kimball,Nebraska,31105,1,0 +2020-04-02,Kimball,Nebraska,31105,3,0 +2020-04-03,Kimball,Nebraska,31105,5,0 +2020-04-04,Kimball,Nebraska,31105,5,0 +2020-04-05,Kimball,Nebraska,31105,5,0 +2020-04-06,Kimball,Nebraska,31105,9,0 +2020-04-07,Kimball,Nebraska,31105,9,0 +2020-04-08,Kimball,Nebraska,31105,9,0 +2020-04-09,Kimball,Nebraska,31105,9,0 +2020-04-10,Kimball,Nebraska,31105,9,0 +2020-04-11,Kimball,Nebraska,31105,9,0 +2020-04-12,Kimball,Nebraska,31105,9,0 +2020-04-13,Kimball,Nebraska,31105,9,0 +2020-04-14,Kimball,Nebraska,31105,10,0 +2020-04-15,Kimball,Nebraska,31105,10,0 +2020-04-16,Kimball,Nebraska,31105,10,0 +2020-04-17,Kimball,Nebraska,31105,10,0 +2020-04-18,Kimball,Nebraska,31105,10,0 +2020-04-19,Kimball,Nebraska,31105,10,0 +2020-04-20,Kimball,Nebraska,31105,10,0 +2020-04-21,Kimball,Nebraska,31105,10,0 +2020-04-22,Kimball,Nebraska,31105,10,0 +2020-04-23,Kimball,Nebraska,31105,10,0 +2020-04-24,Kimball,Nebraska,31105,10,0 +2020-04-25,Kimball,Nebraska,31105,10,0 +2020-04-26,Kimball,Nebraska,31105,10,0 +2020-04-27,Kimball,Nebraska,31105,10,0 +2020-04-28,Kimball,Nebraska,31105,10,0 +2020-04-29,Kimball,Nebraska,31105,10,0 +2020-04-30,Kimball,Nebraska,31105,10,0 +2020-05-01,Kimball,Nebraska,31105,10,0 +2020-05-02,Kimball,Nebraska,31105,10,0 +2020-05-03,Kimball,Nebraska,31105,10,0 +2020-05-04,Kimball,Nebraska,31105,10,0 +2020-05-05,Kimball,Nebraska,31105,10,0 +2020-05-06,Kimball,Nebraska,31105,10,0 +2020-05-07,Kimball,Nebraska,31105,10,0 +2020-05-08,Kimball,Nebraska,31105,10,0 +2020-05-09,Kimball,Nebraska,31105,10,0 +2020-05-10,Kimball,Nebraska,31105,10,0 +2020-05-11,Kimball,Nebraska,31105,10,0 +2020-05-12,Kimball,Nebraska,31105,10,0 +2020-05-13,Kimball,Nebraska,31105,10,0 +2020-05-14,Kimball,Nebraska,31105,10,0 +2020-05-15,Kimball,Nebraska,31105,10,0 +2020-05-16,Kimball,Nebraska,31105,10,0 +2020-05-17,Kimball,Nebraska,31105,10,0 +2020-05-18,Kimball,Nebraska,31105,10,0 +2020-05-19,Kimball,Nebraska,31105,10,0 +2020-05-20,Kimball,Nebraska,31105,10,0 +2020-05-21,Kimball,Nebraska,31105,10,0 +2020-05-22,Kimball,Nebraska,31105,10,0 +2020-05-23,Kimball,Nebraska,31105,10,0 +2020-05-24,Kimball,Nebraska,31105,10,0 +2020-05-25,Kimball,Nebraska,31105,10,0 +2020-05-26,Kimball,Nebraska,31105,10,0 +2020-05-27,Kimball,Nebraska,31105,10,0 +2020-05-28,Kimball,Nebraska,31105,10,0 +2020-05-29,Kimball,Nebraska,31105,10,0 +2020-05-30,Kimball,Nebraska,31105,10,0 +2020-05-31,Kimball,Nebraska,31105,10,0 +2020-06-01,Kimball,Nebraska,31105,10,0 +2020-06-02,Kimball,Nebraska,31105,10,0 +2020-06-03,Kimball,Nebraska,31105,10,0 +2020-06-04,Kimball,Nebraska,31105,10,0 +2020-06-05,Kimball,Nebraska,31105,10,0 +2020-06-06,Kimball,Nebraska,31105,10,0 +2020-06-07,Kimball,Nebraska,31105,10,0 +2020-06-08,Kimball,Nebraska,31105,10,0 +2020-06-09,Kimball,Nebraska,31105,10,0 +2020-06-10,Kimball,Nebraska,31105,10,0 +2020-06-11,Kimball,Nebraska,31105,10,0 +2020-06-12,Kimball,Nebraska,31105,10,0 +2020-06-13,Kimball,Nebraska,31105,10,0 +2020-06-14,Kimball,Nebraska,31105,10,0 +2020-06-15,Kimball,Nebraska,31105,10,0 +2020-06-16,Kimball,Nebraska,31105,10,0 +2020-06-17,Kimball,Nebraska,31105,10,0 +2020-06-18,Kimball,Nebraska,31105,10,0 +2020-06-19,Kimball,Nebraska,31105,10,0 +2020-06-20,Kimball,Nebraska,31105,10,0 +2020-06-21,Kimball,Nebraska,31105,10,0 +2020-06-22,Kimball,Nebraska,31105,10,0 +2020-06-23,Kimball,Nebraska,31105,10,0 +2020-06-24,Kimball,Nebraska,31105,10,0 +2020-06-25,Kimball,Nebraska,31105,10,0 +2020-06-26,Kimball,Nebraska,31105,10,0 +2020-06-27,Kimball,Nebraska,31105,10,0 +2020-06-28,Kimball,Nebraska,31105,10,0 +2020-06-29,Kimball,Nebraska,31105,10,0 +2020-06-30,Kimball,Nebraska,31105,10,0 +2020-07-01,Kimball,Nebraska,31105,10,0 +2020-07-02,Kimball,Nebraska,31105,10,0 +2020-07-03,Kimball,Nebraska,31105,11,0 +2020-07-04,Kimball,Nebraska,31105,11,0 +2020-07-05,Kimball,Nebraska,31105,11,0 +2020-07-06,Kimball,Nebraska,31105,11,0 +2020-07-07,Kimball,Nebraska,31105,11,0 +2020-07-08,Kimball,Nebraska,31105,11,0 +2020-07-09,Kimball,Nebraska,31105,11,0 +2020-03-17,Knox,Nebraska,31107,1,0 +2020-03-18,Knox,Nebraska,31107,2,0 +2020-03-19,Knox,Nebraska,31107,2,0 +2020-03-20,Knox,Nebraska,31107,2,0 +2020-03-21,Knox,Nebraska,31107,2,0 +2020-03-22,Knox,Nebraska,31107,2,0 +2020-03-23,Knox,Nebraska,31107,2,0 +2020-03-24,Knox,Nebraska,31107,2,0 +2020-03-25,Knox,Nebraska,31107,2,0 +2020-03-26,Knox,Nebraska,31107,2,0 +2020-03-27,Knox,Nebraska,31107,2,0 +2020-03-28,Knox,Nebraska,31107,2,0 +2020-03-29,Knox,Nebraska,31107,2,0 +2020-03-30,Knox,Nebraska,31107,2,0 +2020-03-31,Knox,Nebraska,31107,2,0 +2020-04-01,Knox,Nebraska,31107,2,0 +2020-04-02,Knox,Nebraska,31107,2,0 +2020-04-03,Knox,Nebraska,31107,2,0 +2020-04-04,Knox,Nebraska,31107,2,0 +2020-04-05,Knox,Nebraska,31107,2,0 +2020-04-06,Knox,Nebraska,31107,2,0 +2020-04-07,Knox,Nebraska,31107,2,0 +2020-04-08,Knox,Nebraska,31107,2,0 +2020-04-09,Knox,Nebraska,31107,2,0 +2020-04-10,Knox,Nebraska,31107,2,0 +2020-04-11,Knox,Nebraska,31107,2,0 +2020-04-12,Knox,Nebraska,31107,2,0 +2020-04-13,Knox,Nebraska,31107,2,0 +2020-04-14,Knox,Nebraska,31107,2,0 +2020-04-15,Knox,Nebraska,31107,2,0 +2020-04-16,Knox,Nebraska,31107,2,0 +2020-04-17,Knox,Nebraska,31107,2,0 +2020-04-18,Knox,Nebraska,31107,2,0 +2020-04-19,Knox,Nebraska,31107,1,0 +2020-04-20,Knox,Nebraska,31107,1,0 +2020-04-21,Knox,Nebraska,31107,1,0 +2020-04-22,Knox,Nebraska,31107,1,0 +2020-04-23,Knox,Nebraska,31107,1,0 +2020-04-24,Knox,Nebraska,31107,1,0 +2020-04-25,Knox,Nebraska,31107,2,0 +2020-04-26,Knox,Nebraska,31107,1,0 +2020-04-27,Knox,Nebraska,31107,1,0 +2020-04-28,Knox,Nebraska,31107,2,0 +2020-04-29,Knox,Nebraska,31107,2,0 +2020-04-30,Knox,Nebraska,31107,2,0 +2020-05-01,Knox,Nebraska,31107,2,0 +2020-05-02,Knox,Nebraska,31107,2,0 +2020-05-03,Knox,Nebraska,31107,1,0 +2020-05-04,Knox,Nebraska,31107,2,0 +2020-05-05,Knox,Nebraska,31107,4,0 +2020-05-06,Knox,Nebraska,31107,5,0 +2020-05-07,Knox,Nebraska,31107,5,0 +2020-05-08,Knox,Nebraska,31107,5,0 +2020-05-09,Knox,Nebraska,31107,6,0 +2020-05-10,Knox,Nebraska,31107,6,0 +2020-05-11,Knox,Nebraska,31107,6,0 +2020-05-12,Knox,Nebraska,31107,6,0 +2020-05-13,Knox,Nebraska,31107,6,0 +2020-05-14,Knox,Nebraska,31107,6,0 +2020-05-15,Knox,Nebraska,31107,8,0 +2020-05-16,Knox,Nebraska,31107,8,0 +2020-05-17,Knox,Nebraska,31107,8,0 +2020-05-18,Knox,Nebraska,31107,8,0 +2020-05-19,Knox,Nebraska,31107,8,0 +2020-05-20,Knox,Nebraska,31107,8,0 +2020-05-21,Knox,Nebraska,31107,8,0 +2020-05-22,Knox,Nebraska,31107,8,0 +2020-05-23,Knox,Nebraska,31107,8,0 +2020-05-24,Knox,Nebraska,31107,7,0 +2020-05-25,Knox,Nebraska,31107,8,0 +2020-05-26,Knox,Nebraska,31107,9,0 +2020-05-27,Knox,Nebraska,31107,9,0 +2020-05-28,Knox,Nebraska,31107,9,0 +2020-05-29,Knox,Nebraska,31107,9,0 +2020-05-30,Knox,Nebraska,31107,9,0 +2020-05-31,Knox,Nebraska,31107,9,0 +2020-06-01,Knox,Nebraska,31107,9,0 +2020-06-02,Knox,Nebraska,31107,9,0 +2020-06-03,Knox,Nebraska,31107,9,0 +2020-06-04,Knox,Nebraska,31107,9,0 +2020-06-05,Knox,Nebraska,31107,9,0 +2020-06-06,Knox,Nebraska,31107,10,0 +2020-06-07,Knox,Nebraska,31107,10,0 +2020-06-08,Knox,Nebraska,31107,10,0 +2020-06-09,Knox,Nebraska,31107,10,0 +2020-06-10,Knox,Nebraska,31107,10,0 +2020-06-11,Knox,Nebraska,31107,10,0 +2020-06-12,Knox,Nebraska,31107,10,0 +2020-06-13,Knox,Nebraska,31107,10,0 +2020-06-14,Knox,Nebraska,31107,11,0 +2020-06-15,Knox,Nebraska,31107,12,0 +2020-06-16,Knox,Nebraska,31107,12,0 +2020-06-17,Knox,Nebraska,31107,12,0 +2020-06-18,Knox,Nebraska,31107,15,0 +2020-06-19,Knox,Nebraska,31107,15,0 +2020-06-20,Knox,Nebraska,31107,15,0 +2020-06-21,Knox,Nebraska,31107,15,0 +2020-06-22,Knox,Nebraska,31107,15,0 +2020-06-23,Knox,Nebraska,31107,16,0 +2020-06-24,Knox,Nebraska,31107,16,0 +2020-06-25,Knox,Nebraska,31107,20,0 +2020-06-26,Knox,Nebraska,31107,20,0 +2020-06-27,Knox,Nebraska,31107,20,0 +2020-06-28,Knox,Nebraska,31107,20,0 +2020-06-29,Knox,Nebraska,31107,20,0 +2020-06-30,Knox,Nebraska,31107,20,0 +2020-07-01,Knox,Nebraska,31107,20,0 +2020-07-02,Knox,Nebraska,31107,20,0 +2020-07-03,Knox,Nebraska,31107,20,0 +2020-07-04,Knox,Nebraska,31107,21,0 +2020-07-05,Knox,Nebraska,31107,24,0 +2020-07-06,Knox,Nebraska,31107,24,0 +2020-07-07,Knox,Nebraska,31107,24,0 +2020-07-08,Knox,Nebraska,31107,24,0 +2020-07-09,Knox,Nebraska,31107,24,0 +2020-03-20,Lancaster,Nebraska,31109,1,0 +2020-03-21,Lancaster,Nebraska,31109,2,0 +2020-03-22,Lancaster,Nebraska,31109,2,0 +2020-03-23,Lancaster,Nebraska,31109,2,0 +2020-03-24,Lancaster,Nebraska,31109,3,0 +2020-03-25,Lancaster,Nebraska,31109,3,0 +2020-03-26,Lancaster,Nebraska,31109,3,0 +2020-03-27,Lancaster,Nebraska,31109,4,0 +2020-03-28,Lancaster,Nebraska,31109,4,0 +2020-03-29,Lancaster,Nebraska,31109,6,0 +2020-03-30,Lancaster,Nebraska,31109,8,0 +2020-03-31,Lancaster,Nebraska,31109,8,0 +2020-04-01,Lancaster,Nebraska,31109,9,0 +2020-04-02,Lancaster,Nebraska,31109,12,0 +2020-04-03,Lancaster,Nebraska,31109,14,0 +2020-04-04,Lancaster,Nebraska,31109,18,0 +2020-04-05,Lancaster,Nebraska,31109,18,0 +2020-04-06,Lancaster,Nebraska,31109,31,0 +2020-04-07,Lancaster,Nebraska,31109,34,0 +2020-04-08,Lancaster,Nebraska,31109,39,1 +2020-04-09,Lancaster,Nebraska,31109,44,1 +2020-04-10,Lancaster,Nebraska,31109,49,1 +2020-04-11,Lancaster,Nebraska,31109,50,1 +2020-04-12,Lancaster,Nebraska,31109,54,1 +2020-04-13,Lancaster,Nebraska,31109,57,1 +2020-04-14,Lancaster,Nebraska,31109,57,1 +2020-04-15,Lancaster,Nebraska,31109,59,1 +2020-04-16,Lancaster,Nebraska,31109,62,1 +2020-04-17,Lancaster,Nebraska,31109,63,1 +2020-04-18,Lancaster,Nebraska,31109,73,1 +2020-04-19,Lancaster,Nebraska,31109,81,1 +2020-04-20,Lancaster,Nebraska,31109,87,1 +2020-04-21,Lancaster,Nebraska,31109,92,1 +2020-04-22,Lancaster,Nebraska,31109,97,1 +2020-04-23,Lancaster,Nebraska,31109,106,1 +2020-04-24,Lancaster,Nebraska,31109,114,1 +2020-04-25,Lancaster,Nebraska,31109,120,1 +2020-04-26,Lancaster,Nebraska,31109,140,1 +2020-04-27,Lancaster,Nebraska,31109,157,1 +2020-04-28,Lancaster,Nebraska,31109,158,1 +2020-04-29,Lancaster,Nebraska,31109,204,1 +2020-04-30,Lancaster,Nebraska,31109,240,1 +2020-05-01,Lancaster,Nebraska,31109,281,1 +2020-05-02,Lancaster,Nebraska,31109,299,1 +2020-05-03,Lancaster,Nebraska,31109,330,1 +2020-05-04,Lancaster,Nebraska,31109,394,1 +2020-05-05,Lancaster,Nebraska,31109,441,1 +2020-05-06,Lancaster,Nebraska,31109,462,1 +2020-05-07,Lancaster,Nebraska,31109,509,2 +2020-05-08,Lancaster,Nebraska,31109,547,2 +2020-05-09,Lancaster,Nebraska,31109,606,2 +2020-05-10,Lancaster,Nebraska,31109,607,2 +2020-05-11,Lancaster,Nebraska,31109,647,2 +2020-05-12,Lancaster,Nebraska,31109,665,3 +2020-05-13,Lancaster,Nebraska,31109,687,3 +2020-05-14,Lancaster,Nebraska,31109,701,5 +2020-05-15,Lancaster,Nebraska,31109,735,5 +2020-05-16,Lancaster,Nebraska,31109,791,5 +2020-05-17,Lancaster,Nebraska,31109,800,5 +2020-05-18,Lancaster,Nebraska,31109,892,6 +2020-05-19,Lancaster,Nebraska,31109,912,7 +2020-05-20,Lancaster,Nebraska,31109,934,7 +2020-05-21,Lancaster,Nebraska,31109,995,7 +2020-05-22,Lancaster,Nebraska,31109,1005,8 +2020-05-23,Lancaster,Nebraska,31109,1033,8 +2020-05-24,Lancaster,Nebraska,31109,1056,8 +2020-05-25,Lancaster,Nebraska,31109,1090,8 +2020-05-26,Lancaster,Nebraska,31109,1098,9 +2020-05-27,Lancaster,Nebraska,31109,1120,9 +2020-05-28,Lancaster,Nebraska,31109,1140,9 +2020-05-29,Lancaster,Nebraska,31109,1176,9 +2020-05-30,Lancaster,Nebraska,31109,1195,9 +2020-05-31,Lancaster,Nebraska,31109,1212,9 +2020-06-01,Lancaster,Nebraska,31109,1228,9 +2020-06-02,Lancaster,Nebraska,31109,1245,9 +2020-06-03,Lancaster,Nebraska,31109,1263,9 +2020-06-04,Lancaster,Nebraska,31109,1278,10 +2020-06-05,Lancaster,Nebraska,31109,1310,10 +2020-06-06,Lancaster,Nebraska,31109,1340,10 +2020-06-07,Lancaster,Nebraska,31109,1356,10 +2020-06-08,Lancaster,Nebraska,31109,1372,10 +2020-06-09,Lancaster,Nebraska,31109,1376,10 +2020-06-10,Lancaster,Nebraska,31109,1397,10 +2020-06-11,Lancaster,Nebraska,31109,1429,10 +2020-06-12,Lancaster,Nebraska,31109,1445,10 +2020-06-13,Lancaster,Nebraska,31109,1464,10 +2020-06-14,Lancaster,Nebraska,31109,1472,10 +2020-06-15,Lancaster,Nebraska,31109,1487,10 +2020-06-16,Lancaster,Nebraska,31109,1521,10 +2020-06-17,Lancaster,Nebraska,31109,1545,10 +2020-06-18,Lancaster,Nebraska,31109,1569,10 +2020-06-19,Lancaster,Nebraska,31109,1588,10 +2020-06-20,Lancaster,Nebraska,31109,1603,10 +2020-06-21,Lancaster,Nebraska,31109,1611,10 +2020-06-22,Lancaster,Nebraska,31109,1623,10 +2020-06-23,Lancaster,Nebraska,31109,1634,11 +2020-06-24,Lancaster,Nebraska,31109,1649,11 +2020-06-25,Lancaster,Nebraska,31109,1660,12 +2020-06-26,Lancaster,Nebraska,31109,1670,12 +2020-06-27,Lancaster,Nebraska,31109,1688,12 +2020-06-28,Lancaster,Nebraska,31109,1697,12 +2020-06-29,Lancaster,Nebraska,31109,1718,12 +2020-06-30,Lancaster,Nebraska,31109,1728,12 +2020-07-01,Lancaster,Nebraska,31109,1751,13 +2020-07-02,Lancaster,Nebraska,31109,1766,13 +2020-07-03,Lancaster,Nebraska,31109,1791,13 +2020-07-04,Lancaster,Nebraska,31109,1838,13 +2020-07-05,Lancaster,Nebraska,31109,1866,13 +2020-07-06,Lancaster,Nebraska,31109,1882,13 +2020-07-07,Lancaster,Nebraska,31109,1909,13 +2020-07-08,Lancaster,Nebraska,31109,1963,13 +2020-07-09,Lancaster,Nebraska,31109,1998,13 +2020-03-18,Lincoln,Nebraska,31111,1,0 +2020-03-19,Lincoln,Nebraska,31111,3,0 +2020-03-20,Lincoln,Nebraska,31111,3,0 +2020-03-21,Lincoln,Nebraska,31111,3,0 +2020-03-22,Lincoln,Nebraska,31111,3,0 +2020-03-23,Lincoln,Nebraska,31111,3,0 +2020-03-24,Lincoln,Nebraska,31111,3,0 +2020-03-25,Lincoln,Nebraska,31111,3,0 +2020-03-26,Lincoln,Nebraska,31111,3,0 +2020-03-27,Lincoln,Nebraska,31111,3,0 +2020-03-28,Lincoln,Nebraska,31111,3,0 +2020-03-29,Lincoln,Nebraska,31111,3,0 +2020-03-30,Lincoln,Nebraska,31111,5,1 +2020-03-31,Lincoln,Nebraska,31111,5,1 +2020-04-01,Lincoln,Nebraska,31111,9,1 +2020-04-02,Lincoln,Nebraska,31111,13,1 +2020-04-03,Lincoln,Nebraska,31111,14,1 +2020-04-04,Lincoln,Nebraska,31111,15,1 +2020-04-05,Lincoln,Nebraska,31111,15,1 +2020-04-06,Lincoln,Nebraska,31111,16,1 +2020-04-07,Lincoln,Nebraska,31111,16,1 +2020-04-08,Lincoln,Nebraska,31111,17,1 +2020-04-09,Lincoln,Nebraska,31111,17,1 +2020-04-10,Lincoln,Nebraska,31111,17,1 +2020-04-11,Lincoln,Nebraska,31111,17,1 +2020-04-12,Lincoln,Nebraska,31111,17,1 +2020-04-13,Lincoln,Nebraska,31111,17,1 +2020-04-14,Lincoln,Nebraska,31111,17,1 +2020-04-15,Lincoln,Nebraska,31111,17,1 +2020-04-16,Lincoln,Nebraska,31111,17,1 +2020-04-17,Lincoln,Nebraska,31111,18,1 +2020-04-18,Lincoln,Nebraska,31111,18,1 +2020-04-19,Lincoln,Nebraska,31111,18,1 +2020-04-20,Lincoln,Nebraska,31111,18,1 +2020-04-21,Lincoln,Nebraska,31111,18,1 +2020-04-22,Lincoln,Nebraska,31111,18,1 +2020-04-23,Lincoln,Nebraska,31111,18,1 +2020-04-24,Lincoln,Nebraska,31111,18,1 +2020-04-25,Lincoln,Nebraska,31111,20,1 +2020-04-26,Lincoln,Nebraska,31111,20,1 +2020-04-27,Lincoln,Nebraska,31111,20,1 +2020-04-28,Lincoln,Nebraska,31111,20,2 +2020-04-29,Lincoln,Nebraska,31111,23,2 +2020-04-30,Lincoln,Nebraska,31111,25,2 +2020-05-01,Lincoln,Nebraska,31111,30,2 +2020-05-02,Lincoln,Nebraska,31111,33,2 +2020-05-03,Lincoln,Nebraska,31111,33,2 +2020-05-04,Lincoln,Nebraska,31111,33,2 +2020-05-05,Lincoln,Nebraska,31111,34,2 +2020-05-06,Lincoln,Nebraska,31111,36,2 +2020-05-07,Lincoln,Nebraska,31111,37,2 +2020-05-08,Lincoln,Nebraska,31111,39,2 +2020-05-09,Lincoln,Nebraska,31111,39,2 +2020-05-10,Lincoln,Nebraska,31111,39,2 +2020-05-11,Lincoln,Nebraska,31111,40,2 +2020-05-12,Lincoln,Nebraska,31111,40,2 +2020-05-13,Lincoln,Nebraska,31111,40,2 +2020-05-14,Lincoln,Nebraska,31111,40,2 +2020-05-15,Lincoln,Nebraska,31111,42,2 +2020-05-16,Lincoln,Nebraska,31111,43,2 +2020-05-17,Lincoln,Nebraska,31111,44,2 +2020-05-18,Lincoln,Nebraska,31111,45,2 +2020-05-19,Lincoln,Nebraska,31111,45,2 +2020-05-20,Lincoln,Nebraska,31111,46,2 +2020-05-21,Lincoln,Nebraska,31111,48,2 +2020-05-22,Lincoln,Nebraska,31111,46,2 +2020-05-23,Lincoln,Nebraska,31111,47,2 +2020-05-24,Lincoln,Nebraska,31111,47,2 +2020-05-25,Lincoln,Nebraska,31111,47,2 +2020-05-26,Lincoln,Nebraska,31111,47,2 +2020-05-27,Lincoln,Nebraska,31111,47,2 +2020-05-28,Lincoln,Nebraska,31111,47,2 +2020-05-29,Lincoln,Nebraska,31111,47,2 +2020-05-30,Lincoln,Nebraska,31111,47,2 +2020-05-31,Lincoln,Nebraska,31111,48,2 +2020-06-01,Lincoln,Nebraska,31111,48,2 +2020-06-02,Lincoln,Nebraska,31111,47,2 +2020-06-03,Lincoln,Nebraska,31111,47,2 +2020-06-04,Lincoln,Nebraska,31111,47,2 +2020-06-05,Lincoln,Nebraska,31111,48,2 +2020-06-06,Lincoln,Nebraska,31111,49,2 +2020-06-07,Lincoln,Nebraska,31111,49,2 +2020-06-08,Lincoln,Nebraska,31111,49,2 +2020-06-09,Lincoln,Nebraska,31111,50,2 +2020-06-10,Lincoln,Nebraska,31111,51,2 +2020-06-11,Lincoln,Nebraska,31111,52,2 +2020-06-12,Lincoln,Nebraska,31111,52,2 +2020-06-13,Lincoln,Nebraska,31111,53,2 +2020-06-14,Lincoln,Nebraska,31111,53,2 +2020-06-15,Lincoln,Nebraska,31111,53,2 +2020-06-16,Lincoln,Nebraska,31111,53,2 +2020-06-17,Lincoln,Nebraska,31111,54,2 +2020-06-18,Lincoln,Nebraska,31111,54,2 +2020-06-19,Lincoln,Nebraska,31111,54,2 +2020-06-20,Lincoln,Nebraska,31111,54,2 +2020-06-21,Lincoln,Nebraska,31111,54,2 +2020-06-22,Lincoln,Nebraska,31111,54,2 +2020-06-23,Lincoln,Nebraska,31111,54,2 +2020-06-24,Lincoln,Nebraska,31111,54,2 +2020-06-25,Lincoln,Nebraska,31111,54,2 +2020-06-26,Lincoln,Nebraska,31111,54,2 +2020-06-27,Lincoln,Nebraska,31111,54,2 +2020-06-28,Lincoln,Nebraska,31111,55,2 +2020-06-29,Lincoln,Nebraska,31111,57,2 +2020-06-30,Lincoln,Nebraska,31111,57,2 +2020-07-01,Lincoln,Nebraska,31111,59,2 +2020-07-02,Lincoln,Nebraska,31111,58,2 +2020-07-03,Lincoln,Nebraska,31111,58,2 +2020-07-04,Lincoln,Nebraska,31111,58,2 +2020-07-05,Lincoln,Nebraska,31111,58,2 +2020-07-06,Lincoln,Nebraska,31111,61,2 +2020-07-07,Lincoln,Nebraska,31111,63,2 +2020-07-08,Lincoln,Nebraska,31111,63,2 +2020-07-09,Lincoln,Nebraska,31111,65,2 +2020-03-23,Madison,Nebraska,31119,1,0 +2020-03-24,Madison,Nebraska,31119,1,0 +2020-03-25,Madison,Nebraska,31119,1,0 +2020-03-26,Madison,Nebraska,31119,1,0 +2020-03-27,Madison,Nebraska,31119,1,0 +2020-03-28,Madison,Nebraska,31119,2,0 +2020-03-29,Madison,Nebraska,31119,2,0 +2020-03-30,Madison,Nebraska,31119,2,0 +2020-03-31,Madison,Nebraska,31119,2,0 +2020-04-01,Madison,Nebraska,31119,4,1 +2020-04-02,Madison,Nebraska,31119,5,1 +2020-04-03,Madison,Nebraska,31119,5,1 +2020-04-04,Madison,Nebraska,31119,5,1 +2020-04-05,Madison,Nebraska,31119,5,1 +2020-04-06,Madison,Nebraska,31119,5,1 +2020-04-07,Madison,Nebraska,31119,5,1 +2020-04-08,Madison,Nebraska,31119,6,2 +2020-04-09,Madison,Nebraska,31119,6,2 +2020-04-10,Madison,Nebraska,31119,6,2 +2020-04-11,Madison,Nebraska,31119,6,2 +2020-04-12,Madison,Nebraska,31119,6,2 +2020-04-13,Madison,Nebraska,31119,6,2 +2020-04-14,Madison,Nebraska,31119,6,2 +2020-04-15,Madison,Nebraska,31119,7,2 +2020-04-16,Madison,Nebraska,31119,7,2 +2020-04-17,Madison,Nebraska,31119,8,2 +2020-04-18,Madison,Nebraska,31119,8,2 +2020-04-19,Madison,Nebraska,31119,9,2 +2020-04-20,Madison,Nebraska,31119,11,2 +2020-04-21,Madison,Nebraska,31119,15,2 +2020-04-22,Madison,Nebraska,31119,16,2 +2020-04-23,Madison,Nebraska,31119,50,2 +2020-04-24,Madison,Nebraska,31119,50,2 +2020-04-25,Madison,Nebraska,31119,74,3 +2020-04-26,Madison,Nebraska,31119,77,3 +2020-04-27,Madison,Nebraska,31119,91,3 +2020-04-28,Madison,Nebraska,31119,112,3 +2020-04-29,Madison,Nebraska,31119,112,3 +2020-04-30,Madison,Nebraska,31119,115,3 +2020-05-01,Madison,Nebraska,31119,132,3 +2020-05-02,Madison,Nebraska,31119,148,3 +2020-05-03,Madison,Nebraska,31119,155,3 +2020-05-04,Madison,Nebraska,31119,157,3 +2020-05-05,Madison,Nebraska,31119,193,3 +2020-05-06,Madison,Nebraska,31119,226,3 +2020-05-07,Madison,Nebraska,31119,242,3 +2020-05-08,Madison,Nebraska,31119,243,3 +2020-05-09,Madison,Nebraska,31119,249,3 +2020-05-10,Madison,Nebraska,31119,251,3 +2020-05-11,Madison,Nebraska,31119,265,3 +2020-05-12,Madison,Nebraska,31119,265,3 +2020-05-13,Madison,Nebraska,31119,265,3 +2020-05-14,Madison,Nebraska,31119,281,3 +2020-05-15,Madison,Nebraska,31119,273,3 +2020-05-16,Madison,Nebraska,31119,273,3 +2020-05-17,Madison,Nebraska,31119,273,3 +2020-05-18,Madison,Nebraska,31119,278,3 +2020-05-19,Madison,Nebraska,31119,278,3 +2020-05-20,Madison,Nebraska,31119,289,3 +2020-05-21,Madison,Nebraska,31119,296,3 +2020-05-22,Madison,Nebraska,31119,309,3 +2020-05-23,Madison,Nebraska,31119,309,3 +2020-05-24,Madison,Nebraska,31119,309,3 +2020-05-25,Madison,Nebraska,31119,309,3 +2020-05-26,Madison,Nebraska,31119,313,3 +2020-05-27,Madison,Nebraska,31119,316,4 +2020-05-28,Madison,Nebraska,31119,316,4 +2020-05-29,Madison,Nebraska,31119,316,4 +2020-05-30,Madison,Nebraska,31119,316,4 +2020-05-31,Madison,Nebraska,31119,316,4 +2020-06-01,Madison,Nebraska,31119,326,4 +2020-06-02,Madison,Nebraska,31119,326,4 +2020-06-03,Madison,Nebraska,31119,329,4 +2020-06-04,Madison,Nebraska,31119,329,4 +2020-06-05,Madison,Nebraska,31119,332,4 +2020-06-06,Madison,Nebraska,31119,332,4 +2020-06-07,Madison,Nebraska,31119,332,4 +2020-06-08,Madison,Nebraska,31119,334,4 +2020-06-09,Madison,Nebraska,31119,334,4 +2020-06-10,Madison,Nebraska,31119,334,4 +2020-06-11,Madison,Nebraska,31119,339,4 +2020-06-12,Madison,Nebraska,31119,339,4 +2020-06-13,Madison,Nebraska,31119,339,4 +2020-06-14,Madison,Nebraska,31119,339,4 +2020-06-15,Madison,Nebraska,31119,339,4 +2020-06-16,Madison,Nebraska,31119,347,4 +2020-06-17,Madison,Nebraska,31119,347,4 +2020-06-18,Madison,Nebraska,31119,350,4 +2020-06-19,Madison,Nebraska,31119,350,4 +2020-06-20,Madison,Nebraska,31119,350,4 +2020-06-21,Madison,Nebraska,31119,350,4 +2020-06-22,Madison,Nebraska,31119,350,4 +2020-06-23,Madison,Nebraska,31119,350,4 +2020-06-24,Madison,Nebraska,31119,355,4 +2020-06-25,Madison,Nebraska,31119,365,4 +2020-06-26,Madison,Nebraska,31119,365,4 +2020-06-27,Madison,Nebraska,31119,365,4 +2020-06-28,Madison,Nebraska,31119,365,4 +2020-06-29,Madison,Nebraska,31119,365,4 +2020-06-30,Madison,Nebraska,31119,365,4 +2020-07-01,Madison,Nebraska,31119,373,4 +2020-07-02,Madison,Nebraska,31119,373,4 +2020-07-03,Madison,Nebraska,31119,373,4 +2020-07-04,Madison,Nebraska,31119,373,4 +2020-07-05,Madison,Nebraska,31119,373,4 +2020-07-06,Madison,Nebraska,31119,377,4 +2020-07-07,Madison,Nebraska,31119,378,4 +2020-07-08,Madison,Nebraska,31119,379,4 +2020-07-09,Madison,Nebraska,31119,390,4 +2020-04-03,Merrick,Nebraska,31121,1,0 +2020-04-04,Merrick,Nebraska,31121,2,0 +2020-04-05,Merrick,Nebraska,31121,2,0 +2020-04-06,Merrick,Nebraska,31121,2,0 +2020-04-07,Merrick,Nebraska,31121,2,0 +2020-04-08,Merrick,Nebraska,31121,2,0 +2020-04-09,Merrick,Nebraska,31121,2,0 +2020-04-10,Merrick,Nebraska,31121,2,0 +2020-04-11,Merrick,Nebraska,31121,2,0 +2020-04-12,Merrick,Nebraska,31121,2,0 +2020-04-13,Merrick,Nebraska,31121,2,0 +2020-04-14,Merrick,Nebraska,31121,3,0 +2020-04-15,Merrick,Nebraska,31121,5,0 +2020-04-16,Merrick,Nebraska,31121,5,0 +2020-04-17,Merrick,Nebraska,31121,6,0 +2020-04-18,Merrick,Nebraska,31121,6,0 +2020-04-19,Merrick,Nebraska,31121,7,0 +2020-04-20,Merrick,Nebraska,31121,9,0 +2020-04-21,Merrick,Nebraska,31121,9,0 +2020-04-22,Merrick,Nebraska,31121,9,0 +2020-04-23,Merrick,Nebraska,31121,9,0 +2020-04-24,Merrick,Nebraska,31121,10,0 +2020-04-25,Merrick,Nebraska,31121,10,0 +2020-04-26,Merrick,Nebraska,31121,10,0 +2020-04-27,Merrick,Nebraska,31121,11,0 +2020-04-28,Merrick,Nebraska,31121,11,0 +2020-04-29,Merrick,Nebraska,31121,12,0 +2020-04-30,Merrick,Nebraska,31121,12,0 +2020-05-01,Merrick,Nebraska,31121,13,0 +2020-05-02,Merrick,Nebraska,31121,16,0 +2020-05-03,Merrick,Nebraska,31121,19,0 +2020-05-04,Merrick,Nebraska,31121,19,0 +2020-05-05,Merrick,Nebraska,31121,19,0 +2020-05-06,Merrick,Nebraska,31121,20,0 +2020-05-07,Merrick,Nebraska,31121,20,0 +2020-05-08,Merrick,Nebraska,31121,21,0 +2020-05-09,Merrick,Nebraska,31121,21,0 +2020-05-10,Merrick,Nebraska,31121,21,0 +2020-05-11,Merrick,Nebraska,31121,23,0 +2020-05-12,Merrick,Nebraska,31121,23,0 +2020-05-13,Merrick,Nebraska,31121,26,0 +2020-05-14,Merrick,Nebraska,31121,26,0 +2020-05-15,Merrick,Nebraska,31121,28,0 +2020-05-16,Merrick,Nebraska,31121,28,0 +2020-05-17,Merrick,Nebraska,31121,29,0 +2020-05-18,Merrick,Nebraska,31121,29,0 +2020-05-19,Merrick,Nebraska,31121,29,0 +2020-05-20,Merrick,Nebraska,31121,30,0 +2020-05-21,Merrick,Nebraska,31121,32,0 +2020-05-22,Merrick,Nebraska,31121,32,0 +2020-05-23,Merrick,Nebraska,31121,32,0 +2020-05-24,Merrick,Nebraska,31121,32,0 +2020-05-25,Merrick,Nebraska,31121,32,0 +2020-05-26,Merrick,Nebraska,31121,32,0 +2020-05-27,Merrick,Nebraska,31121,33,0 +2020-05-28,Merrick,Nebraska,31121,33,0 +2020-05-29,Merrick,Nebraska,31121,33,0 +2020-05-30,Merrick,Nebraska,31121,33,0 +2020-05-31,Merrick,Nebraska,31121,33,0 +2020-06-01,Merrick,Nebraska,31121,32,0 +2020-06-02,Merrick,Nebraska,31121,32,0 +2020-06-03,Merrick,Nebraska,31121,33,0 +2020-06-04,Merrick,Nebraska,31121,33,0 +2020-06-05,Merrick,Nebraska,31121,34,0 +2020-06-06,Merrick,Nebraska,31121,34,0 +2020-06-07,Merrick,Nebraska,31121,35,0 +2020-06-08,Merrick,Nebraska,31121,36,0 +2020-06-09,Merrick,Nebraska,31121,36,0 +2020-06-10,Merrick,Nebraska,31121,36,0 +2020-06-11,Merrick,Nebraska,31121,37,0 +2020-06-12,Merrick,Nebraska,31121,36,0 +2020-06-13,Merrick,Nebraska,31121,36,0 +2020-06-14,Merrick,Nebraska,31121,36,0 +2020-06-15,Merrick,Nebraska,31121,36,0 +2020-06-16,Merrick,Nebraska,31121,36,0 +2020-06-17,Merrick,Nebraska,31121,36,0 +2020-06-18,Merrick,Nebraska,31121,37,0 +2020-06-19,Merrick,Nebraska,31121,37,0 +2020-06-20,Merrick,Nebraska,31121,37,0 +2020-06-21,Merrick,Nebraska,31121,37,0 +2020-06-22,Merrick,Nebraska,31121,37,0 +2020-06-23,Merrick,Nebraska,31121,38,0 +2020-06-24,Merrick,Nebraska,31121,38,0 +2020-06-25,Merrick,Nebraska,31121,38,0 +2020-06-26,Merrick,Nebraska,31121,38,0 +2020-06-27,Merrick,Nebraska,31121,38,0 +2020-06-28,Merrick,Nebraska,31121,38,0 +2020-06-29,Merrick,Nebraska,31121,38,0 +2020-06-30,Merrick,Nebraska,31121,38,0 +2020-07-01,Merrick,Nebraska,31121,38,0 +2020-07-02,Merrick,Nebraska,31121,39,0 +2020-07-03,Merrick,Nebraska,31121,39,0 +2020-07-04,Merrick,Nebraska,31121,39,0 +2020-07-05,Merrick,Nebraska,31121,39,0 +2020-07-06,Merrick,Nebraska,31121,39,0 +2020-07-07,Merrick,Nebraska,31121,39,0 +2020-07-08,Merrick,Nebraska,31121,39,0 +2020-07-09,Merrick,Nebraska,31121,39,0 +2020-04-15,Morrill,Nebraska,31123,1,0 +2020-04-16,Morrill,Nebraska,31123,1,0 +2020-04-17,Morrill,Nebraska,31123,1,0 +2020-04-18,Morrill,Nebraska,31123,1,0 +2020-04-19,Morrill,Nebraska,31123,1,0 +2020-04-20,Morrill,Nebraska,31123,1,0 +2020-04-21,Morrill,Nebraska,31123,1,0 +2020-04-22,Morrill,Nebraska,31123,1,0 +2020-04-23,Morrill,Nebraska,31123,1,0 +2020-04-24,Morrill,Nebraska,31123,1,0 +2020-04-25,Morrill,Nebraska,31123,1,0 +2020-04-26,Morrill,Nebraska,31123,1,0 +2020-04-27,Morrill,Nebraska,31123,1,0 +2020-04-28,Morrill,Nebraska,31123,1,0 +2020-04-29,Morrill,Nebraska,31123,1,0 +2020-04-30,Morrill,Nebraska,31123,1,0 +2020-05-01,Morrill,Nebraska,31123,1,0 +2020-05-02,Morrill,Nebraska,31123,1,0 +2020-05-03,Morrill,Nebraska,31123,1,0 +2020-05-04,Morrill,Nebraska,31123,3,0 +2020-05-05,Morrill,Nebraska,31123,3,0 +2020-05-06,Morrill,Nebraska,31123,7,0 +2020-05-07,Morrill,Nebraska,31123,7,0 +2020-05-08,Morrill,Nebraska,31123,8,0 +2020-05-09,Morrill,Nebraska,31123,9,0 +2020-05-10,Morrill,Nebraska,31123,9,0 +2020-05-11,Morrill,Nebraska,31123,9,0 +2020-05-12,Morrill,Nebraska,31123,9,0 +2020-05-13,Morrill,Nebraska,31123,9,0 +2020-05-14,Morrill,Nebraska,31123,10,0 +2020-05-15,Morrill,Nebraska,31123,10,0 +2020-05-16,Morrill,Nebraska,31123,10,0 +2020-05-17,Morrill,Nebraska,31123,10,0 +2020-05-18,Morrill,Nebraska,31123,10,0 +2020-05-19,Morrill,Nebraska,31123,10,0 +2020-05-20,Morrill,Nebraska,31123,10,0 +2020-05-21,Morrill,Nebraska,31123,10,0 +2020-05-22,Morrill,Nebraska,31123,10,0 +2020-05-23,Morrill,Nebraska,31123,10,0 +2020-05-24,Morrill,Nebraska,31123,10,0 +2020-05-25,Morrill,Nebraska,31123,10,0 +2020-05-26,Morrill,Nebraska,31123,11,0 +2020-05-27,Morrill,Nebraska,31123,11,0 +2020-05-28,Morrill,Nebraska,31123,11,0 +2020-05-29,Morrill,Nebraska,31123,11,0 +2020-05-30,Morrill,Nebraska,31123,11,0 +2020-05-31,Morrill,Nebraska,31123,11,0 +2020-06-01,Morrill,Nebraska,31123,11,0 +2020-06-02,Morrill,Nebraska,31123,11,0 +2020-06-03,Morrill,Nebraska,31123,11,0 +2020-06-04,Morrill,Nebraska,31123,11,0 +2020-06-05,Morrill,Nebraska,31123,11,0 +2020-06-06,Morrill,Nebraska,31123,11,0 +2020-06-07,Morrill,Nebraska,31123,11,0 +2020-06-08,Morrill,Nebraska,31123,11,0 +2020-06-09,Morrill,Nebraska,31123,11,0 +2020-06-10,Morrill,Nebraska,31123,11,0 +2020-06-11,Morrill,Nebraska,31123,11,0 +2020-06-12,Morrill,Nebraska,31123,12,0 +2020-06-13,Morrill,Nebraska,31123,11,0 +2020-06-14,Morrill,Nebraska,31123,11,0 +2020-06-15,Morrill,Nebraska,31123,12,0 +2020-06-16,Morrill,Nebraska,31123,12,0 +2020-06-17,Morrill,Nebraska,31123,14,0 +2020-06-18,Morrill,Nebraska,31123,14,0 +2020-06-19,Morrill,Nebraska,31123,14,0 +2020-06-20,Morrill,Nebraska,31123,14,0 +2020-06-21,Morrill,Nebraska,31123,14,0 +2020-06-22,Morrill,Nebraska,31123,14,0 +2020-06-23,Morrill,Nebraska,31123,14,0 +2020-06-24,Morrill,Nebraska,31123,14,0 +2020-06-25,Morrill,Nebraska,31123,20,0 +2020-06-26,Morrill,Nebraska,31123,24,0 +2020-06-27,Morrill,Nebraska,31123,24,0 +2020-06-28,Morrill,Nebraska,31123,25,0 +2020-06-29,Morrill,Nebraska,31123,31,0 +2020-06-30,Morrill,Nebraska,31123,37,0 +2020-07-01,Morrill,Nebraska,31123,38,0 +2020-07-02,Morrill,Nebraska,31123,44,0 +2020-07-03,Morrill,Nebraska,31123,46,0 +2020-07-04,Morrill,Nebraska,31123,46,0 +2020-07-05,Morrill,Nebraska,31123,46,0 +2020-07-06,Morrill,Nebraska,31123,50,0 +2020-07-07,Morrill,Nebraska,31123,51,0 +2020-07-08,Morrill,Nebraska,31123,51,0 +2020-07-09,Morrill,Nebraska,31123,52,0 +2020-04-16,Nance,Nebraska,31125,1,0 +2020-04-17,Nance,Nebraska,31125,1,0 +2020-04-18,Nance,Nebraska,31125,1,0 +2020-04-19,Nance,Nebraska,31125,1,0 +2020-04-20,Nance,Nebraska,31125,1,0 +2020-04-21,Nance,Nebraska,31125,1,0 +2020-04-22,Nance,Nebraska,31125,1,0 +2020-04-23,Nance,Nebraska,31125,1,0 +2020-04-24,Nance,Nebraska,31125,1,0 +2020-04-25,Nance,Nebraska,31125,1,0 +2020-04-26,Nance,Nebraska,31125,1,0 +2020-04-27,Nance,Nebraska,31125,1,0 +2020-04-28,Nance,Nebraska,31125,1,0 +2020-04-29,Nance,Nebraska,31125,1,0 +2020-04-30,Nance,Nebraska,31125,2,0 +2020-05-01,Nance,Nebraska,31125,2,0 +2020-05-02,Nance,Nebraska,31125,3,0 +2020-05-03,Nance,Nebraska,31125,3,0 +2020-05-04,Nance,Nebraska,31125,4,0 +2020-05-05,Nance,Nebraska,31125,4,0 +2020-05-06,Nance,Nebraska,31125,4,0 +2020-05-07,Nance,Nebraska,31125,4,0 +2020-05-08,Nance,Nebraska,31125,4,0 +2020-05-09,Nance,Nebraska,31125,4,0 +2020-05-10,Nance,Nebraska,31125,4,0 +2020-05-11,Nance,Nebraska,31125,4,0 +2020-05-12,Nance,Nebraska,31125,4,0 +2020-05-13,Nance,Nebraska,31125,4,0 +2020-05-14,Nance,Nebraska,31125,4,0 +2020-05-15,Nance,Nebraska,31125,4,0 +2020-05-16,Nance,Nebraska,31125,4,0 +2020-05-17,Nance,Nebraska,31125,4,0 +2020-05-18,Nance,Nebraska,31125,4,0 +2020-05-19,Nance,Nebraska,31125,4,0 +2020-05-20,Nance,Nebraska,31125,4,0 +2020-05-21,Nance,Nebraska,31125,5,0 +2020-05-22,Nance,Nebraska,31125,5,0 +2020-05-23,Nance,Nebraska,31125,5,0 +2020-05-24,Nance,Nebraska,31125,5,0 +2020-05-25,Nance,Nebraska,31125,5,0 +2020-05-26,Nance,Nebraska,31125,5,0 +2020-05-27,Nance,Nebraska,31125,4,0 +2020-05-28,Nance,Nebraska,31125,4,0 +2020-05-29,Nance,Nebraska,31125,4,0 +2020-05-30,Nance,Nebraska,31125,4,0 +2020-05-31,Nance,Nebraska,31125,4,0 +2020-06-01,Nance,Nebraska,31125,4,0 +2020-06-02,Nance,Nebraska,31125,4,0 +2020-06-03,Nance,Nebraska,31125,4,0 +2020-06-04,Nance,Nebraska,31125,4,0 +2020-06-05,Nance,Nebraska,31125,4,0 +2020-06-06,Nance,Nebraska,31125,4,0 +2020-06-07,Nance,Nebraska,31125,4,0 +2020-06-08,Nance,Nebraska,31125,4,0 +2020-06-09,Nance,Nebraska,31125,4,0 +2020-06-10,Nance,Nebraska,31125,4,0 +2020-06-11,Nance,Nebraska,31125,4,0 +2020-06-12,Nance,Nebraska,31125,4,0 +2020-06-13,Nance,Nebraska,31125,4,0 +2020-06-14,Nance,Nebraska,31125,4,0 +2020-06-15,Nance,Nebraska,31125,4,0 +2020-06-16,Nance,Nebraska,31125,4,0 +2020-06-17,Nance,Nebraska,31125,4,0 +2020-06-18,Nance,Nebraska,31125,4,0 +2020-06-19,Nance,Nebraska,31125,4,0 +2020-06-20,Nance,Nebraska,31125,4,0 +2020-06-21,Nance,Nebraska,31125,4,0 +2020-06-22,Nance,Nebraska,31125,4,0 +2020-06-23,Nance,Nebraska,31125,4,0 +2020-06-24,Nance,Nebraska,31125,4,0 +2020-06-25,Nance,Nebraska,31125,4,0 +2020-06-26,Nance,Nebraska,31125,4,0 +2020-06-27,Nance,Nebraska,31125,4,0 +2020-06-28,Nance,Nebraska,31125,4,0 +2020-06-29,Nance,Nebraska,31125,4,0 +2020-06-30,Nance,Nebraska,31125,4,0 +2020-07-01,Nance,Nebraska,31125,4,0 +2020-07-02,Nance,Nebraska,31125,4,0 +2020-07-03,Nance,Nebraska,31125,4,0 +2020-07-04,Nance,Nebraska,31125,4,0 +2020-07-05,Nance,Nebraska,31125,4,0 +2020-07-06,Nance,Nebraska,31125,4,0 +2020-07-07,Nance,Nebraska,31125,4,0 +2020-07-08,Nance,Nebraska,31125,4,0 +2020-07-09,Nance,Nebraska,31125,4,0 +2020-03-19,Nemaha,Nebraska,31127,1,0 +2020-03-20,Nemaha,Nebraska,31127,1,0 +2020-03-21,Nemaha,Nebraska,31127,1,0 +2020-03-22,Nemaha,Nebraska,31127,1,0 +2020-03-23,Nemaha,Nebraska,31127,1,0 +2020-03-24,Nemaha,Nebraska,31127,1,0 +2020-03-25,Nemaha,Nebraska,31127,1,0 +2020-03-26,Nemaha,Nebraska,31127,1,0 +2020-03-27,Nemaha,Nebraska,31127,1,0 +2020-03-28,Nemaha,Nebraska,31127,1,0 +2020-03-29,Nemaha,Nebraska,31127,1,0 +2020-03-30,Nemaha,Nebraska,31127,1,0 +2020-03-31,Nemaha,Nebraska,31127,1,0 +2020-04-01,Nemaha,Nebraska,31127,1,0 +2020-04-02,Nemaha,Nebraska,31127,1,0 +2020-04-03,Nemaha,Nebraska,31127,1,0 +2020-04-04,Nemaha,Nebraska,31127,1,0 +2020-04-05,Nemaha,Nebraska,31127,1,0 +2020-04-06,Nemaha,Nebraska,31127,1,0 +2020-04-07,Nemaha,Nebraska,31127,1,0 +2020-04-08,Nemaha,Nebraska,31127,1,0 +2020-04-09,Nemaha,Nebraska,31127,1,0 +2020-04-10,Nemaha,Nebraska,31127,1,0 +2020-04-11,Nemaha,Nebraska,31127,1,0 +2020-04-12,Nemaha,Nebraska,31127,1,0 +2020-04-13,Nemaha,Nebraska,31127,1,0 +2020-04-14,Nemaha,Nebraska,31127,1,0 +2020-04-15,Nemaha,Nebraska,31127,1,0 +2020-04-16,Nemaha,Nebraska,31127,1,0 +2020-04-17,Nemaha,Nebraska,31127,1,0 +2020-04-18,Nemaha,Nebraska,31127,1,0 +2020-04-19,Nemaha,Nebraska,31127,1,0 +2020-04-20,Nemaha,Nebraska,31127,1,0 +2020-04-21,Nemaha,Nebraska,31127,1,0 +2020-04-22,Nemaha,Nebraska,31127,1,0 +2020-04-23,Nemaha,Nebraska,31127,1,0 +2020-04-24,Nemaha,Nebraska,31127,1,0 +2020-04-25,Nemaha,Nebraska,31127,1,0 +2020-04-26,Nemaha,Nebraska,31127,1,0 +2020-04-27,Nemaha,Nebraska,31127,1,0 +2020-04-28,Nemaha,Nebraska,31127,1,0 +2020-04-29,Nemaha,Nebraska,31127,1,0 +2020-04-30,Nemaha,Nebraska,31127,1,0 +2020-05-01,Nemaha,Nebraska,31127,1,0 +2020-05-02,Nemaha,Nebraska,31127,1,0 +2020-05-03,Nemaha,Nebraska,31127,1,0 +2020-05-04,Nemaha,Nebraska,31127,1,0 +2020-05-05,Nemaha,Nebraska,31127,1,0 +2020-05-06,Nemaha,Nebraska,31127,1,0 +2020-05-07,Nemaha,Nebraska,31127,1,0 +2020-05-08,Nemaha,Nebraska,31127,1,0 +2020-05-09,Nemaha,Nebraska,31127,1,0 +2020-05-10,Nemaha,Nebraska,31127,1,0 +2020-05-11,Nemaha,Nebraska,31127,1,0 +2020-05-12,Nemaha,Nebraska,31127,1,0 +2020-05-13,Nemaha,Nebraska,31127,2,0 +2020-05-14,Nemaha,Nebraska,31127,2,0 +2020-05-15,Nemaha,Nebraska,31127,2,0 +2020-05-16,Nemaha,Nebraska,31127,2,0 +2020-05-17,Nemaha,Nebraska,31127,2,0 +2020-05-18,Nemaha,Nebraska,31127,3,0 +2020-05-19,Nemaha,Nebraska,31127,3,0 +2020-05-20,Nemaha,Nebraska,31127,3,0 +2020-05-21,Nemaha,Nebraska,31127,3,0 +2020-05-22,Nemaha,Nebraska,31127,3,0 +2020-05-23,Nemaha,Nebraska,31127,3,0 +2020-05-24,Nemaha,Nebraska,31127,3,0 +2020-05-25,Nemaha,Nebraska,31127,3,0 +2020-05-26,Nemaha,Nebraska,31127,3,0 +2020-05-27,Nemaha,Nebraska,31127,3,0 +2020-05-28,Nemaha,Nebraska,31127,3,0 +2020-05-29,Nemaha,Nebraska,31127,3,0 +2020-05-30,Nemaha,Nebraska,31127,3,0 +2020-05-31,Nemaha,Nebraska,31127,3,0 +2020-06-01,Nemaha,Nebraska,31127,3,0 +2020-06-02,Nemaha,Nebraska,31127,4,0 +2020-06-03,Nemaha,Nebraska,31127,4,0 +2020-06-04,Nemaha,Nebraska,31127,4,0 +2020-06-05,Nemaha,Nebraska,31127,4,0 +2020-06-06,Nemaha,Nebraska,31127,4,0 +2020-06-07,Nemaha,Nebraska,31127,4,0 +2020-06-08,Nemaha,Nebraska,31127,4,0 +2020-06-09,Nemaha,Nebraska,31127,4,0 +2020-06-10,Nemaha,Nebraska,31127,4,0 +2020-06-11,Nemaha,Nebraska,31127,4,0 +2020-06-12,Nemaha,Nebraska,31127,4,0 +2020-06-13,Nemaha,Nebraska,31127,4,0 +2020-06-14,Nemaha,Nebraska,31127,4,0 +2020-06-15,Nemaha,Nebraska,31127,4,0 +2020-06-16,Nemaha,Nebraska,31127,4,0 +2020-06-17,Nemaha,Nebraska,31127,4,0 +2020-06-18,Nemaha,Nebraska,31127,4,0 +2020-06-19,Nemaha,Nebraska,31127,5,0 +2020-06-20,Nemaha,Nebraska,31127,5,0 +2020-06-21,Nemaha,Nebraska,31127,5,0 +2020-06-22,Nemaha,Nebraska,31127,5,0 +2020-06-23,Nemaha,Nebraska,31127,5,0 +2020-06-24,Nemaha,Nebraska,31127,5,0 +2020-06-25,Nemaha,Nebraska,31127,5,0 +2020-06-26,Nemaha,Nebraska,31127,5,0 +2020-06-27,Nemaha,Nebraska,31127,5,0 +2020-06-28,Nemaha,Nebraska,31127,5,0 +2020-06-29,Nemaha,Nebraska,31127,5,0 +2020-06-30,Nemaha,Nebraska,31127,5,0 +2020-07-01,Nemaha,Nebraska,31127,5,0 +2020-07-02,Nemaha,Nebraska,31127,6,0 +2020-07-03,Nemaha,Nebraska,31127,6,0 +2020-07-04,Nemaha,Nebraska,31127,6,0 +2020-07-05,Nemaha,Nebraska,31127,6,0 +2020-07-06,Nemaha,Nebraska,31127,5,0 +2020-07-07,Nemaha,Nebraska,31127,5,0 +2020-07-08,Nemaha,Nebraska,31127,5,0 +2020-07-09,Nemaha,Nebraska,31127,5,0 +2020-05-16,Nuckolls,Nebraska,31129,1,0 +2020-05-17,Nuckolls,Nebraska,31129,1,0 +2020-05-18,Nuckolls,Nebraska,31129,1,0 +2020-05-19,Nuckolls,Nebraska,31129,1,0 +2020-05-20,Nuckolls,Nebraska,31129,1,0 +2020-05-21,Nuckolls,Nebraska,31129,1,0 +2020-05-22,Nuckolls,Nebraska,31129,1,0 +2020-05-23,Nuckolls,Nebraska,31129,1,0 +2020-05-24,Nuckolls,Nebraska,31129,1,0 +2020-05-25,Nuckolls,Nebraska,31129,1,0 +2020-05-26,Nuckolls,Nebraska,31129,1,0 +2020-05-27,Nuckolls,Nebraska,31129,1,0 +2020-05-28,Nuckolls,Nebraska,31129,1,0 +2020-05-29,Nuckolls,Nebraska,31129,1,0 +2020-05-30,Nuckolls,Nebraska,31129,1,0 +2020-05-31,Nuckolls,Nebraska,31129,1,0 +2020-06-01,Nuckolls,Nebraska,31129,1,0 +2020-06-02,Nuckolls,Nebraska,31129,1,0 +2020-06-03,Nuckolls,Nebraska,31129,1,0 +2020-06-04,Nuckolls,Nebraska,31129,1,0 +2020-06-05,Nuckolls,Nebraska,31129,1,0 +2020-06-06,Nuckolls,Nebraska,31129,1,0 +2020-06-07,Nuckolls,Nebraska,31129,1,0 +2020-06-08,Nuckolls,Nebraska,31129,1,0 +2020-06-09,Nuckolls,Nebraska,31129,1,0 +2020-06-10,Nuckolls,Nebraska,31129,1,0 +2020-06-11,Nuckolls,Nebraska,31129,1,0 +2020-06-12,Nuckolls,Nebraska,31129,1,0 +2020-06-13,Nuckolls,Nebraska,31129,1,0 +2020-06-14,Nuckolls,Nebraska,31129,1,0 +2020-06-15,Nuckolls,Nebraska,31129,1,0 +2020-06-16,Nuckolls,Nebraska,31129,1,0 +2020-06-17,Nuckolls,Nebraska,31129,1,0 +2020-06-18,Nuckolls,Nebraska,31129,1,0 +2020-06-19,Nuckolls,Nebraska,31129,1,0 +2020-06-20,Nuckolls,Nebraska,31129,1,0 +2020-06-21,Nuckolls,Nebraska,31129,1,0 +2020-06-22,Nuckolls,Nebraska,31129,1,0 +2020-06-23,Nuckolls,Nebraska,31129,1,0 +2020-06-24,Nuckolls,Nebraska,31129,1,0 +2020-06-25,Nuckolls,Nebraska,31129,1,0 +2020-06-26,Nuckolls,Nebraska,31129,1,0 +2020-06-27,Nuckolls,Nebraska,31129,1,0 +2020-06-28,Nuckolls,Nebraska,31129,1,0 +2020-06-29,Nuckolls,Nebraska,31129,1,0 +2020-06-30,Nuckolls,Nebraska,31129,1,0 +2020-07-01,Nuckolls,Nebraska,31129,1,0 +2020-07-02,Nuckolls,Nebraska,31129,2,0 +2020-07-03,Nuckolls,Nebraska,31129,2,0 +2020-07-04,Nuckolls,Nebraska,31129,2,0 +2020-07-05,Nuckolls,Nebraska,31129,2,0 +2020-07-06,Nuckolls,Nebraska,31129,1,0 +2020-07-07,Nuckolls,Nebraska,31129,1,0 +2020-07-08,Nuckolls,Nebraska,31129,1,0 +2020-07-09,Nuckolls,Nebraska,31129,1,0 +2020-04-02,Otoe,Nebraska,31131,1,0 +2020-04-03,Otoe,Nebraska,31131,1,0 +2020-04-04,Otoe,Nebraska,31131,1,0 +2020-04-05,Otoe,Nebraska,31131,1,0 +2020-04-06,Otoe,Nebraska,31131,1,0 +2020-04-07,Otoe,Nebraska,31131,1,0 +2020-04-08,Otoe,Nebraska,31131,1,0 +2020-04-09,Otoe,Nebraska,31131,1,0 +2020-04-10,Otoe,Nebraska,31131,1,0 +2020-04-11,Otoe,Nebraska,31131,1,0 +2020-04-12,Otoe,Nebraska,31131,1,0 +2020-04-13,Otoe,Nebraska,31131,1,0 +2020-04-14,Otoe,Nebraska,31131,1,0 +2020-04-15,Otoe,Nebraska,31131,1,0 +2020-04-16,Otoe,Nebraska,31131,1,0 +2020-04-17,Otoe,Nebraska,31131,1,0 +2020-04-18,Otoe,Nebraska,31131,1,0 +2020-04-19,Otoe,Nebraska,31131,1,0 +2020-04-20,Otoe,Nebraska,31131,1,0 +2020-04-21,Otoe,Nebraska,31131,1,0 +2020-04-22,Otoe,Nebraska,31131,1,0 +2020-04-23,Otoe,Nebraska,31131,1,0 +2020-04-24,Otoe,Nebraska,31131,1,0 +2020-04-25,Otoe,Nebraska,31131,1,0 +2020-04-26,Otoe,Nebraska,31131,1,0 +2020-04-27,Otoe,Nebraska,31131,1,0 +2020-04-28,Otoe,Nebraska,31131,1,0 +2020-04-29,Otoe,Nebraska,31131,1,0 +2020-04-30,Otoe,Nebraska,31131,1,0 +2020-05-01,Otoe,Nebraska,31131,2,0 +2020-05-02,Otoe,Nebraska,31131,2,0 +2020-05-03,Otoe,Nebraska,31131,2,0 +2020-05-04,Otoe,Nebraska,31131,3,0 +2020-05-05,Otoe,Nebraska,31131,3,0 +2020-05-06,Otoe,Nebraska,31131,3,0 +2020-05-07,Otoe,Nebraska,31131,2,0 +2020-05-08,Otoe,Nebraska,31131,2,0 +2020-05-09,Otoe,Nebraska,31131,2,0 +2020-05-10,Otoe,Nebraska,31131,2,0 +2020-05-11,Otoe,Nebraska,31131,2,0 +2020-05-12,Otoe,Nebraska,31131,2,0 +2020-05-13,Otoe,Nebraska,31131,4,0 +2020-05-14,Otoe,Nebraska,31131,5,0 +2020-05-15,Otoe,Nebraska,31131,5,0 +2020-05-16,Otoe,Nebraska,31131,5,0 +2020-05-17,Otoe,Nebraska,31131,6,0 +2020-05-18,Otoe,Nebraska,31131,6,0 +2020-05-19,Otoe,Nebraska,31131,6,0 +2020-05-20,Otoe,Nebraska,31131,6,0 +2020-05-21,Otoe,Nebraska,31131,6,0 +2020-05-22,Otoe,Nebraska,31131,6,0 +2020-05-23,Otoe,Nebraska,31131,6,0 +2020-05-24,Otoe,Nebraska,31131,6,0 +2020-05-25,Otoe,Nebraska,31131,6,0 +2020-05-26,Otoe,Nebraska,31131,6,0 +2020-05-27,Otoe,Nebraska,31131,6,0 +2020-05-28,Otoe,Nebraska,31131,6,0 +2020-05-29,Otoe,Nebraska,31131,7,0 +2020-05-30,Otoe,Nebraska,31131,7,0 +2020-05-31,Otoe,Nebraska,31131,7,0 +2020-06-01,Otoe,Nebraska,31131,7,0 +2020-06-02,Otoe,Nebraska,31131,7,0 +2020-06-03,Otoe,Nebraska,31131,7,0 +2020-06-04,Otoe,Nebraska,31131,7,0 +2020-06-05,Otoe,Nebraska,31131,10,0 +2020-06-06,Otoe,Nebraska,31131,11,0 +2020-06-07,Otoe,Nebraska,31131,11,0 +2020-06-08,Otoe,Nebraska,31131,11,0 +2020-06-09,Otoe,Nebraska,31131,11,0 +2020-06-10,Otoe,Nebraska,31131,11,0 +2020-06-11,Otoe,Nebraska,31131,11,0 +2020-06-12,Otoe,Nebraska,31131,12,0 +2020-06-13,Otoe,Nebraska,31131,12,0 +2020-06-14,Otoe,Nebraska,31131,12,0 +2020-06-15,Otoe,Nebraska,31131,12,0 +2020-06-16,Otoe,Nebraska,31131,13,0 +2020-06-17,Otoe,Nebraska,31131,14,0 +2020-06-18,Otoe,Nebraska,31131,14,0 +2020-06-19,Otoe,Nebraska,31131,13,0 +2020-06-20,Otoe,Nebraska,31131,13,0 +2020-06-21,Otoe,Nebraska,31131,14,0 +2020-06-22,Otoe,Nebraska,31131,15,0 +2020-06-23,Otoe,Nebraska,31131,15,0 +2020-06-24,Otoe,Nebraska,31131,15,0 +2020-06-25,Otoe,Nebraska,31131,15,0 +2020-06-26,Otoe,Nebraska,31131,16,0 +2020-06-27,Otoe,Nebraska,31131,16,0 +2020-06-28,Otoe,Nebraska,31131,18,0 +2020-06-29,Otoe,Nebraska,31131,20,0 +2020-06-30,Otoe,Nebraska,31131,22,0 +2020-07-01,Otoe,Nebraska,31131,22,0 +2020-07-02,Otoe,Nebraska,31131,25,0 +2020-07-03,Otoe,Nebraska,31131,25,0 +2020-07-04,Otoe,Nebraska,31131,25,0 +2020-07-05,Otoe,Nebraska,31131,25,0 +2020-07-06,Otoe,Nebraska,31131,25,0 +2020-07-07,Otoe,Nebraska,31131,25,0 +2020-07-08,Otoe,Nebraska,31131,25,0 +2020-07-09,Otoe,Nebraska,31131,27,0 +2020-04-05,Phelps,Nebraska,31137,1,0 +2020-04-06,Phelps,Nebraska,31137,1,0 +2020-04-07,Phelps,Nebraska,31137,1,0 +2020-04-08,Phelps,Nebraska,31137,1,0 +2020-04-09,Phelps,Nebraska,31137,1,0 +2020-04-10,Phelps,Nebraska,31137,1,0 +2020-04-11,Phelps,Nebraska,31137,1,0 +2020-04-12,Phelps,Nebraska,31137,1,0 +2020-04-13,Phelps,Nebraska,31137,1,0 +2020-04-14,Phelps,Nebraska,31137,1,0 +2020-04-15,Phelps,Nebraska,31137,1,0 +2020-04-16,Phelps,Nebraska,31137,1,0 +2020-04-17,Phelps,Nebraska,31137,1,0 +2020-04-18,Phelps,Nebraska,31137,1,0 +2020-04-19,Phelps,Nebraska,31137,1,0 +2020-04-20,Phelps,Nebraska,31137,1,0 +2020-04-21,Phelps,Nebraska,31137,1,0 +2020-04-22,Phelps,Nebraska,31137,1,0 +2020-04-23,Phelps,Nebraska,31137,1,0 +2020-04-24,Phelps,Nebraska,31137,1,0 +2020-04-25,Phelps,Nebraska,31137,1,0 +2020-04-26,Phelps,Nebraska,31137,1,0 +2020-04-27,Phelps,Nebraska,31137,2,0 +2020-04-28,Phelps,Nebraska,31137,2,0 +2020-04-29,Phelps,Nebraska,31137,2,0 +2020-04-30,Phelps,Nebraska,31137,5,0 +2020-05-01,Phelps,Nebraska,31137,9,0 +2020-05-02,Phelps,Nebraska,31137,9,0 +2020-05-03,Phelps,Nebraska,31137,9,0 +2020-05-04,Phelps,Nebraska,31137,9,0 +2020-05-05,Phelps,Nebraska,31137,9,0 +2020-05-06,Phelps,Nebraska,31137,9,0 +2020-05-07,Phelps,Nebraska,31137,9,0 +2020-05-08,Phelps,Nebraska,31137,10,0 +2020-05-09,Phelps,Nebraska,31137,10,0 +2020-05-10,Phelps,Nebraska,31137,10,0 +2020-05-11,Phelps,Nebraska,31137,11,0 +2020-05-12,Phelps,Nebraska,31137,11,0 +2020-05-13,Phelps,Nebraska,31137,11,0 +2020-05-14,Phelps,Nebraska,31137,11,0 +2020-05-15,Phelps,Nebraska,31137,13,0 +2020-05-16,Phelps,Nebraska,31137,13,0 +2020-05-17,Phelps,Nebraska,31137,13,0 +2020-05-18,Phelps,Nebraska,31137,13,0 +2020-05-19,Phelps,Nebraska,31137,13,0 +2020-05-20,Phelps,Nebraska,31137,16,0 +2020-05-21,Phelps,Nebraska,31137,16,0 +2020-05-22,Phelps,Nebraska,31137,16,0 +2020-05-23,Phelps,Nebraska,31137,18,0 +2020-05-24,Phelps,Nebraska,31137,20,0 +2020-05-25,Phelps,Nebraska,31137,20,0 +2020-05-26,Phelps,Nebraska,31137,20,0 +2020-05-27,Phelps,Nebraska,31137,20,0 +2020-05-28,Phelps,Nebraska,31137,20,0 +2020-05-29,Phelps,Nebraska,31137,20,0 +2020-05-30,Phelps,Nebraska,31137,20,0 +2020-05-31,Phelps,Nebraska,31137,20,0 +2020-06-01,Phelps,Nebraska,31137,20,0 +2020-06-02,Phelps,Nebraska,31137,20,0 +2020-06-03,Phelps,Nebraska,31137,20,0 +2020-06-04,Phelps,Nebraska,31137,20,0 +2020-06-05,Phelps,Nebraska,31137,20,0 +2020-06-06,Phelps,Nebraska,31137,20,0 +2020-06-07,Phelps,Nebraska,31137,20,0 +2020-06-08,Phelps,Nebraska,31137,20,0 +2020-06-09,Phelps,Nebraska,31137,20,0 +2020-06-10,Phelps,Nebraska,31137,20,0 +2020-06-11,Phelps,Nebraska,31137,20,0 +2020-06-12,Phelps,Nebraska,31137,20,0 +2020-06-13,Phelps,Nebraska,31137,20,0 +2020-06-14,Phelps,Nebraska,31137,20,0 +2020-06-15,Phelps,Nebraska,31137,20,0 +2020-06-16,Phelps,Nebraska,31137,20,0 +2020-06-17,Phelps,Nebraska,31137,21,0 +2020-06-18,Phelps,Nebraska,31137,21,0 +2020-06-19,Phelps,Nebraska,31137,21,0 +2020-06-20,Phelps,Nebraska,31137,21,0 +2020-06-21,Phelps,Nebraska,31137,21,0 +2020-06-22,Phelps,Nebraska,31137,21,0 +2020-06-23,Phelps,Nebraska,31137,22,0 +2020-06-24,Phelps,Nebraska,31137,23,0 +2020-06-25,Phelps,Nebraska,31137,23,0 +2020-06-26,Phelps,Nebraska,31137,23,0 +2020-06-27,Phelps,Nebraska,31137,23,0 +2020-06-28,Phelps,Nebraska,31137,23,0 +2020-06-29,Phelps,Nebraska,31137,25,0 +2020-06-30,Phelps,Nebraska,31137,26,0 +2020-07-01,Phelps,Nebraska,31137,26,0 +2020-07-02,Phelps,Nebraska,31137,26,0 +2020-07-03,Phelps,Nebraska,31137,26,0 +2020-07-04,Phelps,Nebraska,31137,26,0 +2020-07-05,Phelps,Nebraska,31137,27,0 +2020-07-06,Phelps,Nebraska,31137,27,0 +2020-07-07,Phelps,Nebraska,31137,27,0 +2020-07-08,Phelps,Nebraska,31137,27,0 +2020-07-09,Phelps,Nebraska,31137,27,0 +2020-04-11,Pierce,Nebraska,31139,1,0 +2020-04-12,Pierce,Nebraska,31139,1,0 +2020-04-13,Pierce,Nebraska,31139,1,0 +2020-04-14,Pierce,Nebraska,31139,1,0 +2020-04-15,Pierce,Nebraska,31139,1,0 +2020-04-16,Pierce,Nebraska,31139,1,0 +2020-04-17,Pierce,Nebraska,31139,1,0 +2020-04-18,Pierce,Nebraska,31139,1,0 +2020-04-19,Pierce,Nebraska,31139,1,0 +2020-04-20,Pierce,Nebraska,31139,1,0 +2020-04-21,Pierce,Nebraska,31139,1,0 +2020-04-22,Pierce,Nebraska,31139,1,0 +2020-04-23,Pierce,Nebraska,31139,1,0 +2020-04-24,Pierce,Nebraska,31139,1,0 +2020-04-25,Pierce,Nebraska,31139,1,0 +2020-04-26,Pierce,Nebraska,31139,1,0 +2020-04-27,Pierce,Nebraska,31139,1,0 +2020-04-28,Pierce,Nebraska,31139,1,0 +2020-04-29,Pierce,Nebraska,31139,1,0 +2020-04-30,Pierce,Nebraska,31139,1,0 +2020-05-01,Pierce,Nebraska,31139,1,0 +2020-05-02,Pierce,Nebraska,31139,1,0 +2020-05-03,Pierce,Nebraska,31139,1,0 +2020-05-04,Pierce,Nebraska,31139,2,0 +2020-05-05,Pierce,Nebraska,31139,2,0 +2020-05-06,Pierce,Nebraska,31139,1,0 +2020-05-07,Pierce,Nebraska,31139,1,0 +2020-05-08,Pierce,Nebraska,31139,1,0 +2020-05-09,Pierce,Nebraska,31139,1,0 +2020-05-10,Pierce,Nebraska,31139,1,0 +2020-05-11,Pierce,Nebraska,31139,1,0 +2020-05-12,Pierce,Nebraska,31139,1,0 +2020-05-13,Pierce,Nebraska,31139,1,0 +2020-05-14,Pierce,Nebraska,31139,1,0 +2020-05-15,Pierce,Nebraska,31139,1,0 +2020-05-16,Pierce,Nebraska,31139,1,0 +2020-05-17,Pierce,Nebraska,31139,1,0 +2020-05-18,Pierce,Nebraska,31139,1,0 +2020-05-19,Pierce,Nebraska,31139,1,0 +2020-05-20,Pierce,Nebraska,31139,1,0 +2020-05-21,Pierce,Nebraska,31139,2,0 +2020-05-22,Pierce,Nebraska,31139,2,0 +2020-05-23,Pierce,Nebraska,31139,2,0 +2020-05-24,Pierce,Nebraska,31139,2,0 +2020-05-25,Pierce,Nebraska,31139,2,0 +2020-05-26,Pierce,Nebraska,31139,3,0 +2020-05-27,Pierce,Nebraska,31139,3,0 +2020-05-28,Pierce,Nebraska,31139,5,0 +2020-05-29,Pierce,Nebraska,31139,5,0 +2020-05-30,Pierce,Nebraska,31139,6,0 +2020-05-31,Pierce,Nebraska,31139,6,0 +2020-06-01,Pierce,Nebraska,31139,6,0 +2020-06-02,Pierce,Nebraska,31139,6,0 +2020-06-03,Pierce,Nebraska,31139,6,0 +2020-06-04,Pierce,Nebraska,31139,6,0 +2020-06-05,Pierce,Nebraska,31139,6,0 +2020-06-06,Pierce,Nebraska,31139,6,0 +2020-06-07,Pierce,Nebraska,31139,6,0 +2020-06-08,Pierce,Nebraska,31139,6,0 +2020-06-09,Pierce,Nebraska,31139,6,0 +2020-06-10,Pierce,Nebraska,31139,6,0 +2020-06-11,Pierce,Nebraska,31139,6,0 +2020-06-12,Pierce,Nebraska,31139,6,0 +2020-06-13,Pierce,Nebraska,31139,6,0 +2020-06-14,Pierce,Nebraska,31139,6,0 +2020-06-15,Pierce,Nebraska,31139,6,0 +2020-06-16,Pierce,Nebraska,31139,6,0 +2020-06-17,Pierce,Nebraska,31139,6,0 +2020-06-18,Pierce,Nebraska,31139,6,0 +2020-06-19,Pierce,Nebraska,31139,6,0 +2020-06-20,Pierce,Nebraska,31139,6,0 +2020-06-21,Pierce,Nebraska,31139,6,0 +2020-06-22,Pierce,Nebraska,31139,6,0 +2020-06-23,Pierce,Nebraska,31139,6,0 +2020-06-24,Pierce,Nebraska,31139,7,0 +2020-06-25,Pierce,Nebraska,31139,7,0 +2020-06-26,Pierce,Nebraska,31139,7,0 +2020-06-27,Pierce,Nebraska,31139,8,0 +2020-06-28,Pierce,Nebraska,31139,8,0 +2020-06-29,Pierce,Nebraska,31139,8,0 +2020-06-30,Pierce,Nebraska,31139,8,0 +2020-07-01,Pierce,Nebraska,31139,8,0 +2020-07-02,Pierce,Nebraska,31139,8,0 +2020-07-03,Pierce,Nebraska,31139,9,0 +2020-07-04,Pierce,Nebraska,31139,9,0 +2020-07-05,Pierce,Nebraska,31139,9,0 +2020-07-06,Pierce,Nebraska,31139,9,0 +2020-07-07,Pierce,Nebraska,31139,9,0 +2020-07-08,Pierce,Nebraska,31139,10,0 +2020-07-09,Pierce,Nebraska,31139,10,0 +2020-03-28,Platte,Nebraska,31141,1,0 +2020-03-29,Platte,Nebraska,31141,1,0 +2020-03-30,Platte,Nebraska,31141,1,0 +2020-03-31,Platte,Nebraska,31141,1,0 +2020-04-01,Platte,Nebraska,31141,2,0 +2020-04-02,Platte,Nebraska,31141,3,0 +2020-04-03,Platte,Nebraska,31141,3,0 +2020-04-04,Platte,Nebraska,31141,4,0 +2020-04-05,Platte,Nebraska,31141,5,0 +2020-04-06,Platte,Nebraska,31141,5,0 +2020-04-07,Platte,Nebraska,31141,5,0 +2020-04-08,Platte,Nebraska,31141,5,0 +2020-04-09,Platte,Nebraska,31141,5,0 +2020-04-10,Platte,Nebraska,31141,6,0 +2020-04-11,Platte,Nebraska,31141,6,0 +2020-04-12,Platte,Nebraska,31141,6,0 +2020-04-13,Platte,Nebraska,31141,6,0 +2020-04-14,Platte,Nebraska,31141,6,0 +2020-04-15,Platte,Nebraska,31141,6,0 +2020-04-16,Platte,Nebraska,31141,6,0 +2020-04-17,Platte,Nebraska,31141,6,0 +2020-04-18,Platte,Nebraska,31141,7,0 +2020-04-19,Platte,Nebraska,31141,7,0 +2020-04-20,Platte,Nebraska,31141,7,0 +2020-04-21,Platte,Nebraska,31141,8,0 +2020-04-22,Platte,Nebraska,31141,11,0 +2020-04-23,Platte,Nebraska,31141,11,0 +2020-04-24,Platte,Nebraska,31141,12,0 +2020-04-25,Platte,Nebraska,31141,16,0 +2020-04-26,Platte,Nebraska,31141,27,0 +2020-04-27,Platte,Nebraska,31141,38,0 +2020-04-28,Platte,Nebraska,31141,39,0 +2020-04-29,Platte,Nebraska,31141,66,0 +2020-04-30,Platte,Nebraska,31141,83,0 +2020-05-01,Platte,Nebraska,31141,110,0 +2020-05-02,Platte,Nebraska,31141,138,0 +2020-05-03,Platte,Nebraska,31141,157,0 +2020-05-04,Platte,Nebraska,31141,185,0 +2020-05-05,Platte,Nebraska,31141,205,0 +2020-05-06,Platte,Nebraska,31141,260,0 +2020-05-07,Platte,Nebraska,31141,286,0 +2020-05-08,Platte,Nebraska,31141,324,0 +2020-05-09,Platte,Nebraska,31141,353,0 +2020-05-10,Platte,Nebraska,31141,361,0 +2020-05-11,Platte,Nebraska,31141,373,0 +2020-05-12,Platte,Nebraska,31141,382,1 +2020-05-13,Platte,Nebraska,31141,390,1 +2020-05-14,Platte,Nebraska,31141,407,1 +2020-05-15,Platte,Nebraska,31141,426,1 +2020-05-16,Platte,Nebraska,31141,448,1 +2020-05-17,Platte,Nebraska,31141,451,1 +2020-05-18,Platte,Nebraska,31141,462,1 +2020-05-19,Platte,Nebraska,31141,481,1 +2020-05-20,Platte,Nebraska,31141,505,1 +2020-05-21,Platte,Nebraska,31141,515,1 +2020-05-22,Platte,Nebraska,31141,516,1 +2020-05-23,Platte,Nebraska,31141,522,1 +2020-05-24,Platte,Nebraska,31141,523,1 +2020-05-25,Platte,Nebraska,31141,530,1 +2020-05-26,Platte,Nebraska,31141,534,1 +2020-05-27,Platte,Nebraska,31141,547,1 +2020-05-28,Platte,Nebraska,31141,549,1 +2020-05-29,Platte,Nebraska,31141,560,1 +2020-05-30,Platte,Nebraska,31141,571,1 +2020-05-31,Platte,Nebraska,31141,577,1 +2020-06-01,Platte,Nebraska,31141,586,2 +2020-06-02,Platte,Nebraska,31141,603,2 +2020-06-03,Platte,Nebraska,31141,611,1 +2020-06-04,Platte,Nebraska,31141,617,1 +2020-06-05,Platte,Nebraska,31141,619,1 +2020-06-06,Platte,Nebraska,31141,621,1 +2020-06-07,Platte,Nebraska,31141,624,1 +2020-06-08,Platte,Nebraska,31141,629,1 +2020-06-09,Platte,Nebraska,31141,630,1 +2020-06-10,Platte,Nebraska,31141,631,1 +2020-06-11,Platte,Nebraska,31141,639,1 +2020-06-12,Platte,Nebraska,31141,637,1 +2020-06-13,Platte,Nebraska,31141,642,1 +2020-06-14,Platte,Nebraska,31141,642,1 +2020-06-15,Platte,Nebraska,31141,647,1 +2020-06-16,Platte,Nebraska,31141,648,1 +2020-06-17,Platte,Nebraska,31141,650,1 +2020-06-18,Platte,Nebraska,31141,651,2 +2020-06-19,Platte,Nebraska,31141,652,2 +2020-06-20,Platte,Nebraska,31141,652,2 +2020-06-21,Platte,Nebraska,31141,651,2 +2020-06-22,Platte,Nebraska,31141,649,3 +2020-06-23,Platte,Nebraska,31141,650,3 +2020-06-24,Platte,Nebraska,31141,651,3 +2020-06-25,Platte,Nebraska,31141,656,3 +2020-06-26,Platte,Nebraska,31141,657,3 +2020-06-27,Platte,Nebraska,31141,659,3 +2020-06-28,Platte,Nebraska,31141,660,3 +2020-06-29,Platte,Nebraska,31141,663,3 +2020-06-30,Platte,Nebraska,31141,664,3 +2020-07-01,Platte,Nebraska,31141,664,3 +2020-07-02,Platte,Nebraska,31141,665,3 +2020-07-03,Platte,Nebraska,31141,669,3 +2020-07-04,Platte,Nebraska,31141,670,3 +2020-07-05,Platte,Nebraska,31141,669,3 +2020-07-06,Platte,Nebraska,31141,671,3 +2020-07-07,Platte,Nebraska,31141,672,3 +2020-07-08,Platte,Nebraska,31141,681,3 +2020-07-09,Platte,Nebraska,31141,684,3 +2020-04-09,Polk,Nebraska,31143,1,0 +2020-04-10,Polk,Nebraska,31143,1,0 +2020-04-11,Polk,Nebraska,31143,1,0 +2020-04-12,Polk,Nebraska,31143,2,0 +2020-04-13,Polk,Nebraska,31143,2,0 +2020-04-14,Polk,Nebraska,31143,2,0 +2020-04-15,Polk,Nebraska,31143,3,0 +2020-04-16,Polk,Nebraska,31143,4,0 +2020-04-17,Polk,Nebraska,31143,5,0 +2020-04-18,Polk,Nebraska,31143,5,0 +2020-04-19,Polk,Nebraska,31143,5,0 +2020-04-20,Polk,Nebraska,31143,6,0 +2020-04-21,Polk,Nebraska,31143,6,0 +2020-04-22,Polk,Nebraska,31143,6,0 +2020-04-23,Polk,Nebraska,31143,6,0 +2020-04-24,Polk,Nebraska,31143,6,0 +2020-04-25,Polk,Nebraska,31143,5,0 +2020-04-26,Polk,Nebraska,31143,5,0 +2020-04-27,Polk,Nebraska,31143,5,0 +2020-04-28,Polk,Nebraska,31143,5,0 +2020-04-29,Polk,Nebraska,31143,7,0 +2020-04-30,Polk,Nebraska,31143,7,0 +2020-05-01,Polk,Nebraska,31143,9,0 +2020-05-02,Polk,Nebraska,31143,10,0 +2020-05-03,Polk,Nebraska,31143,10,0 +2020-05-04,Polk,Nebraska,31143,9,0 +2020-05-05,Polk,Nebraska,31143,9,0 +2020-05-06,Polk,Nebraska,31143,9,0 +2020-05-07,Polk,Nebraska,31143,9,0 +2020-05-08,Polk,Nebraska,31143,9,0 +2020-05-09,Polk,Nebraska,31143,9,0 +2020-05-10,Polk,Nebraska,31143,9,0 +2020-05-11,Polk,Nebraska,31143,9,0 +2020-05-12,Polk,Nebraska,31143,9,0 +2020-05-13,Polk,Nebraska,31143,9,0 +2020-05-14,Polk,Nebraska,31143,9,0 +2020-05-15,Polk,Nebraska,31143,9,0 +2020-05-16,Polk,Nebraska,31143,9,0 +2020-05-17,Polk,Nebraska,31143,9,0 +2020-05-18,Polk,Nebraska,31143,9,0 +2020-05-19,Polk,Nebraska,31143,9,0 +2020-05-20,Polk,Nebraska,31143,9,0 +2020-05-21,Polk,Nebraska,31143,9,0 +2020-05-22,Polk,Nebraska,31143,9,0 +2020-05-23,Polk,Nebraska,31143,9,0 +2020-05-24,Polk,Nebraska,31143,9,0 +2020-05-25,Polk,Nebraska,31143,9,0 +2020-05-26,Polk,Nebraska,31143,9,0 +2020-05-27,Polk,Nebraska,31143,10,0 +2020-05-28,Polk,Nebraska,31143,10,0 +2020-05-29,Polk,Nebraska,31143,11,0 +2020-05-30,Polk,Nebraska,31143,11,0 +2020-05-31,Polk,Nebraska,31143,11,0 +2020-06-01,Polk,Nebraska,31143,11,0 +2020-06-02,Polk,Nebraska,31143,11,0 +2020-06-03,Polk,Nebraska,31143,11,0 +2020-06-04,Polk,Nebraska,31143,11,0 +2020-06-05,Polk,Nebraska,31143,11,0 +2020-06-06,Polk,Nebraska,31143,11,0 +2020-06-07,Polk,Nebraska,31143,11,0 +2020-06-08,Polk,Nebraska,31143,11,0 +2020-06-09,Polk,Nebraska,31143,12,0 +2020-06-10,Polk,Nebraska,31143,12,0 +2020-06-11,Polk,Nebraska,31143,12,0 +2020-06-12,Polk,Nebraska,31143,12,0 +2020-06-13,Polk,Nebraska,31143,12,0 +2020-06-14,Polk,Nebraska,31143,12,0 +2020-06-15,Polk,Nebraska,31143,12,0 +2020-06-16,Polk,Nebraska,31143,12,0 +2020-06-17,Polk,Nebraska,31143,12,0 +2020-06-18,Polk,Nebraska,31143,12,0 +2020-06-19,Polk,Nebraska,31143,12,0 +2020-06-20,Polk,Nebraska,31143,12,0 +2020-06-21,Polk,Nebraska,31143,12,0 +2020-06-22,Polk,Nebraska,31143,12,0 +2020-06-23,Polk,Nebraska,31143,12,0 +2020-06-24,Polk,Nebraska,31143,12,0 +2020-06-25,Polk,Nebraska,31143,12,0 +2020-06-26,Polk,Nebraska,31143,12,0 +2020-06-27,Polk,Nebraska,31143,12,0 +2020-06-28,Polk,Nebraska,31143,12,0 +2020-06-29,Polk,Nebraska,31143,12,0 +2020-06-30,Polk,Nebraska,31143,12,0 +2020-07-01,Polk,Nebraska,31143,12,0 +2020-07-02,Polk,Nebraska,31143,12,0 +2020-07-03,Polk,Nebraska,31143,12,0 +2020-07-04,Polk,Nebraska,31143,13,0 +2020-07-05,Polk,Nebraska,31143,13,0 +2020-07-06,Polk,Nebraska,31143,13,0 +2020-07-07,Polk,Nebraska,31143,13,0 +2020-07-08,Polk,Nebraska,31143,13,0 +2020-07-09,Polk,Nebraska,31143,13,0 +2020-04-17,Red Willow,Nebraska,31145,1,0 +2020-04-18,Red Willow,Nebraska,31145,1,0 +2020-04-19,Red Willow,Nebraska,31145,1,0 +2020-04-20,Red Willow,Nebraska,31145,1,0 +2020-04-21,Red Willow,Nebraska,31145,1,0 +2020-04-22,Red Willow,Nebraska,31145,1,0 +2020-04-23,Red Willow,Nebraska,31145,1,0 +2020-04-24,Red Willow,Nebraska,31145,1,0 +2020-04-25,Red Willow,Nebraska,31145,1,0 +2020-04-26,Red Willow,Nebraska,31145,2,0 +2020-04-27,Red Willow,Nebraska,31145,2,0 +2020-04-28,Red Willow,Nebraska,31145,2,0 +2020-04-29,Red Willow,Nebraska,31145,2,0 +2020-04-30,Red Willow,Nebraska,31145,3,0 +2020-05-01,Red Willow,Nebraska,31145,3,0 +2020-05-02,Red Willow,Nebraska,31145,3,0 +2020-05-03,Red Willow,Nebraska,31145,3,0 +2020-05-04,Red Willow,Nebraska,31145,4,0 +2020-05-05,Red Willow,Nebraska,31145,4,0 +2020-05-06,Red Willow,Nebraska,31145,5,0 +2020-05-07,Red Willow,Nebraska,31145,5,0 +2020-05-08,Red Willow,Nebraska,31145,5,0 +2020-05-09,Red Willow,Nebraska,31145,5,0 +2020-05-10,Red Willow,Nebraska,31145,5,0 +2020-05-11,Red Willow,Nebraska,31145,5,0 +2020-05-12,Red Willow,Nebraska,31145,5,0 +2020-05-13,Red Willow,Nebraska,31145,5,0 +2020-05-14,Red Willow,Nebraska,31145,5,0 +2020-05-15,Red Willow,Nebraska,31145,5,0 +2020-05-16,Red Willow,Nebraska,31145,5,0 +2020-05-17,Red Willow,Nebraska,31145,5,0 +2020-05-18,Red Willow,Nebraska,31145,5,0 +2020-05-19,Red Willow,Nebraska,31145,5,0 +2020-05-20,Red Willow,Nebraska,31145,5,0 +2020-05-21,Red Willow,Nebraska,31145,5,0 +2020-05-22,Red Willow,Nebraska,31145,5,0 +2020-05-23,Red Willow,Nebraska,31145,5,0 +2020-05-24,Red Willow,Nebraska,31145,5,0 +2020-05-25,Red Willow,Nebraska,31145,5,0 +2020-05-26,Red Willow,Nebraska,31145,5,0 +2020-05-27,Red Willow,Nebraska,31145,5,0 +2020-05-28,Red Willow,Nebraska,31145,5,0 +2020-05-29,Red Willow,Nebraska,31145,5,0 +2020-05-30,Red Willow,Nebraska,31145,5,0 +2020-05-31,Red Willow,Nebraska,31145,5,0 +2020-06-01,Red Willow,Nebraska,31145,5,0 +2020-06-02,Red Willow,Nebraska,31145,5,0 +2020-06-03,Red Willow,Nebraska,31145,5,0 +2020-06-04,Red Willow,Nebraska,31145,5,0 +2020-06-05,Red Willow,Nebraska,31145,5,0 +2020-06-06,Red Willow,Nebraska,31145,5,0 +2020-06-07,Red Willow,Nebraska,31145,5,0 +2020-06-08,Red Willow,Nebraska,31145,5,0 +2020-06-09,Red Willow,Nebraska,31145,5,0 +2020-06-10,Red Willow,Nebraska,31145,5,0 +2020-06-11,Red Willow,Nebraska,31145,5,0 +2020-06-12,Red Willow,Nebraska,31145,5,0 +2020-06-13,Red Willow,Nebraska,31145,5,0 +2020-06-14,Red Willow,Nebraska,31145,5,0 +2020-06-15,Red Willow,Nebraska,31145,5,0 +2020-06-16,Red Willow,Nebraska,31145,6,0 +2020-06-17,Red Willow,Nebraska,31145,6,0 +2020-06-18,Red Willow,Nebraska,31145,6,0 +2020-06-19,Red Willow,Nebraska,31145,6,0 +2020-06-20,Red Willow,Nebraska,31145,6,0 +2020-06-21,Red Willow,Nebraska,31145,6,0 +2020-06-22,Red Willow,Nebraska,31145,6,0 +2020-06-23,Red Willow,Nebraska,31145,6,0 +2020-06-24,Red Willow,Nebraska,31145,6,0 +2020-06-25,Red Willow,Nebraska,31145,6,0 +2020-06-26,Red Willow,Nebraska,31145,6,0 +2020-06-27,Red Willow,Nebraska,31145,6,0 +2020-06-28,Red Willow,Nebraska,31145,6,0 +2020-06-29,Red Willow,Nebraska,31145,6,0 +2020-06-30,Red Willow,Nebraska,31145,6,0 +2020-07-01,Red Willow,Nebraska,31145,6,0 +2020-07-02,Red Willow,Nebraska,31145,6,0 +2020-07-03,Red Willow,Nebraska,31145,6,0 +2020-07-04,Red Willow,Nebraska,31145,6,0 +2020-07-05,Red Willow,Nebraska,31145,8,0 +2020-07-06,Red Willow,Nebraska,31145,8,0 +2020-07-07,Red Willow,Nebraska,31145,8,0 +2020-07-08,Red Willow,Nebraska,31145,8,0 +2020-07-09,Red Willow,Nebraska,31145,8,0 +2020-05-13,Richardson,Nebraska,31147,1,0 +2020-05-14,Richardson,Nebraska,31147,1,0 +2020-05-15,Richardson,Nebraska,31147,1,0 +2020-05-16,Richardson,Nebraska,31147,1,0 +2020-05-17,Richardson,Nebraska,31147,1,0 +2020-05-18,Richardson,Nebraska,31147,1,0 +2020-05-19,Richardson,Nebraska,31147,1,0 +2020-05-20,Richardson,Nebraska,31147,1,0 +2020-05-21,Richardson,Nebraska,31147,1,0 +2020-05-22,Richardson,Nebraska,31147,1,0 +2020-05-23,Richardson,Nebraska,31147,1,0 +2020-05-24,Richardson,Nebraska,31147,1,0 +2020-05-25,Richardson,Nebraska,31147,1,0 +2020-05-26,Richardson,Nebraska,31147,1,0 +2020-05-27,Richardson,Nebraska,31147,1,0 +2020-05-28,Richardson,Nebraska,31147,1,0 +2020-05-29,Richardson,Nebraska,31147,1,0 +2020-05-30,Richardson,Nebraska,31147,1,0 +2020-05-31,Richardson,Nebraska,31147,1,0 +2020-06-01,Richardson,Nebraska,31147,1,0 +2020-06-02,Richardson,Nebraska,31147,1,0 +2020-06-03,Richardson,Nebraska,31147,1,0 +2020-06-04,Richardson,Nebraska,31147,1,0 +2020-06-05,Richardson,Nebraska,31147,1,0 +2020-06-06,Richardson,Nebraska,31147,1,0 +2020-06-07,Richardson,Nebraska,31147,1,0 +2020-06-08,Richardson,Nebraska,31147,1,0 +2020-06-09,Richardson,Nebraska,31147,1,0 +2020-06-10,Richardson,Nebraska,31147,1,1 +2020-06-11,Richardson,Nebraska,31147,1,1 +2020-06-12,Richardson,Nebraska,31147,1,1 +2020-06-13,Richardson,Nebraska,31147,1,1 +2020-06-14,Richardson,Nebraska,31147,1,1 +2020-06-15,Richardson,Nebraska,31147,1,1 +2020-06-16,Richardson,Nebraska,31147,1,1 +2020-06-17,Richardson,Nebraska,31147,1,1 +2020-06-18,Richardson,Nebraska,31147,2,1 +2020-06-19,Richardson,Nebraska,31147,5,1 +2020-06-20,Richardson,Nebraska,31147,5,1 +2020-06-21,Richardson,Nebraska,31147,5,1 +2020-06-22,Richardson,Nebraska,31147,5,1 +2020-06-23,Richardson,Nebraska,31147,5,1 +2020-06-24,Richardson,Nebraska,31147,5,1 +2020-06-25,Richardson,Nebraska,31147,5,1 +2020-06-26,Richardson,Nebraska,31147,5,1 +2020-06-27,Richardson,Nebraska,31147,5,1 +2020-06-28,Richardson,Nebraska,31147,5,1 +2020-06-29,Richardson,Nebraska,31147,5,1 +2020-06-30,Richardson,Nebraska,31147,5,1 +2020-07-01,Richardson,Nebraska,31147,5,1 +2020-07-02,Richardson,Nebraska,31147,5,1 +2020-07-03,Richardson,Nebraska,31147,5,1 +2020-07-04,Richardson,Nebraska,31147,5,1 +2020-07-05,Richardson,Nebraska,31147,5,1 +2020-07-06,Richardson,Nebraska,31147,5,1 +2020-07-07,Richardson,Nebraska,31147,5,1 +2020-07-08,Richardson,Nebraska,31147,5,1 +2020-07-09,Richardson,Nebraska,31147,6,1 +2020-06-24,Rock,Nebraska,31149,1,0 +2020-06-25,Rock,Nebraska,31149,1,0 +2020-06-26,Rock,Nebraska,31149,1,0 +2020-06-27,Rock,Nebraska,31149,1,0 +2020-06-28,Rock,Nebraska,31149,1,0 +2020-06-29,Rock,Nebraska,31149,1,0 +2020-06-30,Rock,Nebraska,31149,1,0 +2020-07-01,Rock,Nebraska,31149,1,0 +2020-07-02,Rock,Nebraska,31149,1,0 +2020-07-03,Rock,Nebraska,31149,2,0 +2020-07-04,Rock,Nebraska,31149,2,0 +2020-07-05,Rock,Nebraska,31149,2,0 +2020-07-06,Rock,Nebraska,31149,2,0 +2020-07-07,Rock,Nebraska,31149,2,0 +2020-07-08,Rock,Nebraska,31149,2,0 +2020-07-09,Rock,Nebraska,31149,2,0 +2020-04-14,Saline,Nebraska,31151,1,0 +2020-04-15,Saline,Nebraska,31151,1,0 +2020-04-16,Saline,Nebraska,31151,3,0 +2020-04-17,Saline,Nebraska,31151,4,0 +2020-04-18,Saline,Nebraska,31151,6,0 +2020-04-19,Saline,Nebraska,31151,7,0 +2020-04-20,Saline,Nebraska,31151,8,0 +2020-04-21,Saline,Nebraska,31151,11,0 +2020-04-22,Saline,Nebraska,31151,16,0 +2020-04-23,Saline,Nebraska,31151,20,0 +2020-04-24,Saline,Nebraska,31151,26,0 +2020-04-25,Saline,Nebraska,31151,38,0 +2020-04-26,Saline,Nebraska,31151,60,0 +2020-04-27,Saline,Nebraska,31151,87,0 +2020-04-28,Saline,Nebraska,31151,87,0 +2020-04-29,Saline,Nebraska,31151,107,0 +2020-04-30,Saline,Nebraska,31151,129,0 +2020-05-01,Saline,Nebraska,31151,194,0 +2020-05-02,Saline,Nebraska,31151,196,0 +2020-05-03,Saline,Nebraska,31151,212,0 +2020-05-04,Saline,Nebraska,31151,264,0 +2020-05-05,Saline,Nebraska,31151,285,0 +2020-05-06,Saline,Nebraska,31151,285,0 +2020-05-07,Saline,Nebraska,31151,320,0 +2020-05-08,Saline,Nebraska,31151,320,0 +2020-05-09,Saline,Nebraska,31151,349,0 +2020-05-10,Saline,Nebraska,31151,349,0 +2020-05-11,Saline,Nebraska,31151,367,0 +2020-05-12,Saline,Nebraska,31151,367,0 +2020-05-13,Saline,Nebraska,31151,392,0 +2020-05-14,Saline,Nebraska,31151,395,1 +2020-05-15,Saline,Nebraska,31151,403,1 +2020-05-16,Saline,Nebraska,31151,413,1 +2020-05-17,Saline,Nebraska,31151,413,1 +2020-05-18,Saline,Nebraska,31151,432,1 +2020-05-19,Saline,Nebraska,31151,436,1 +2020-05-20,Saline,Nebraska,31151,448,1 +2020-05-21,Saline,Nebraska,31151,463,1 +2020-05-22,Saline,Nebraska,31151,465,1 +2020-05-23,Saline,Nebraska,31151,467,1 +2020-05-24,Saline,Nebraska,31151,469,1 +2020-05-25,Saline,Nebraska,31151,482,1 +2020-05-26,Saline,Nebraska,31151,484,1 +2020-05-27,Saline,Nebraska,31151,491,1 +2020-05-28,Saline,Nebraska,31151,495,1 +2020-05-29,Saline,Nebraska,31151,498,2 +2020-05-30,Saline,Nebraska,31151,497,2 +2020-05-31,Saline,Nebraska,31151,497,2 +2020-06-01,Saline,Nebraska,31151,504,2 +2020-06-02,Saline,Nebraska,31151,506,2 +2020-06-03,Saline,Nebraska,31151,508,2 +2020-06-04,Saline,Nebraska,31151,510,2 +2020-06-05,Saline,Nebraska,31151,513,2 +2020-06-06,Saline,Nebraska,31151,515,2 +2020-06-07,Saline,Nebraska,31151,517,2 +2020-06-08,Saline,Nebraska,31151,518,2 +2020-06-09,Saline,Nebraska,31151,517,2 +2020-06-10,Saline,Nebraska,31151,518,2 +2020-06-11,Saline,Nebraska,31151,518,2 +2020-06-12,Saline,Nebraska,31151,518,2 +2020-06-13,Saline,Nebraska,31151,518,2 +2020-06-14,Saline,Nebraska,31151,519,2 +2020-06-15,Saline,Nebraska,31151,520,2 +2020-06-16,Saline,Nebraska,31151,523,2 +2020-06-17,Saline,Nebraska,31151,525,2 +2020-06-18,Saline,Nebraska,31151,525,2 +2020-06-19,Saline,Nebraska,31151,525,2 +2020-06-20,Saline,Nebraska,31151,525,2 +2020-06-21,Saline,Nebraska,31151,525,2 +2020-06-22,Saline,Nebraska,31151,530,2 +2020-06-23,Saline,Nebraska,31151,530,2 +2020-06-24,Saline,Nebraska,31151,530,2 +2020-06-25,Saline,Nebraska,31151,531,2 +2020-06-26,Saline,Nebraska,31151,531,2 +2020-06-27,Saline,Nebraska,31151,533,2 +2020-06-28,Saline,Nebraska,31151,533,2 +2020-06-29,Saline,Nebraska,31151,534,2 +2020-06-30,Saline,Nebraska,31151,533,2 +2020-07-01,Saline,Nebraska,31151,535,2 +2020-07-02,Saline,Nebraska,31151,536,2 +2020-07-03,Saline,Nebraska,31151,540,2 +2020-07-04,Saline,Nebraska,31151,540,2 +2020-07-05,Saline,Nebraska,31151,540,2 +2020-07-06,Saline,Nebraska,31151,539,2 +2020-07-07,Saline,Nebraska,31151,540,2 +2020-07-08,Saline,Nebraska,31151,544,2 +2020-07-09,Saline,Nebraska,31151,545,2 +2020-03-17,Sarpy,Nebraska,31153,1,0 +2020-03-18,Sarpy,Nebraska,31153,1,0 +2020-03-19,Sarpy,Nebraska,31153,2,0 +2020-03-20,Sarpy,Nebraska,31153,3,0 +2020-03-21,Sarpy,Nebraska,31153,3,0 +2020-03-22,Sarpy,Nebraska,31153,3,0 +2020-03-23,Sarpy,Nebraska,31153,6,0 +2020-03-24,Sarpy,Nebraska,31153,6,0 +2020-03-25,Sarpy,Nebraska,31153,6,0 +2020-03-26,Sarpy,Nebraska,31153,7,0 +2020-03-27,Sarpy,Nebraska,31153,11,0 +2020-03-28,Sarpy,Nebraska,31153,11,0 +2020-03-29,Sarpy,Nebraska,31153,11,0 +2020-03-30,Sarpy,Nebraska,31153,13,0 +2020-03-31,Sarpy,Nebraska,31153,16,0 +2020-04-01,Sarpy,Nebraska,31153,17,0 +2020-04-02,Sarpy,Nebraska,31153,23,0 +2020-04-03,Sarpy,Nebraska,31153,26,0 +2020-04-04,Sarpy,Nebraska,31153,28,0 +2020-04-05,Sarpy,Nebraska,31153,28,0 +2020-04-06,Sarpy,Nebraska,31153,33,0 +2020-04-07,Sarpy,Nebraska,31153,36,0 +2020-04-08,Sarpy,Nebraska,31153,37,0 +2020-04-09,Sarpy,Nebraska,31153,38,0 +2020-04-10,Sarpy,Nebraska,31153,39,0 +2020-04-11,Sarpy,Nebraska,31153,41,0 +2020-04-12,Sarpy,Nebraska,31153,41,0 +2020-04-13,Sarpy,Nebraska,31153,45,0 +2020-04-14,Sarpy,Nebraska,31153,46,0 +2020-04-15,Sarpy,Nebraska,31153,46,0 +2020-04-16,Sarpy,Nebraska,31153,47,0 +2020-04-17,Sarpy,Nebraska,31153,48,0 +2020-04-18,Sarpy,Nebraska,31153,52,0 +2020-04-19,Sarpy,Nebraska,31153,53,0 +2020-04-20,Sarpy,Nebraska,31153,55,0 +2020-04-21,Sarpy,Nebraska,31153,55,0 +2020-04-22,Sarpy,Nebraska,31153,57,0 +2020-04-23,Sarpy,Nebraska,31153,64,0 +2020-04-24,Sarpy,Nebraska,31153,73,0 +2020-04-25,Sarpy,Nebraska,31153,77,0 +2020-04-26,Sarpy,Nebraska,31153,87,0 +2020-04-27,Sarpy,Nebraska,31153,95,0 +2020-04-28,Sarpy,Nebraska,31153,97,0 +2020-04-29,Sarpy,Nebraska,31153,113,0 +2020-04-30,Sarpy,Nebraska,31153,123,1 +2020-05-01,Sarpy,Nebraska,31153,133,1 +2020-05-02,Sarpy,Nebraska,31153,137,1 +2020-05-03,Sarpy,Nebraska,31153,142,1 +2020-05-04,Sarpy,Nebraska,31153,158,1 +2020-05-05,Sarpy,Nebraska,31153,168,1 +2020-05-06,Sarpy,Nebraska,31153,180,1 +2020-05-07,Sarpy,Nebraska,31153,198,1 +2020-05-08,Sarpy,Nebraska,31153,218,1 +2020-05-09,Sarpy,Nebraska,31153,234,1 +2020-05-10,Sarpy,Nebraska,31153,236,1 +2020-05-11,Sarpy,Nebraska,31153,248,1 +2020-05-12,Sarpy,Nebraska,31153,257,1 +2020-05-13,Sarpy,Nebraska,31153,272,1 +2020-05-14,Sarpy,Nebraska,31153,291,1 +2020-05-15,Sarpy,Nebraska,31153,309,1 +2020-05-16,Sarpy,Nebraska,31153,331,2 +2020-05-17,Sarpy,Nebraska,31153,342,2 +2020-05-18,Sarpy,Nebraska,31153,349,2 +2020-05-19,Sarpy,Nebraska,31153,366,2 +2020-05-20,Sarpy,Nebraska,31153,382,2 +2020-05-21,Sarpy,Nebraska,31153,404,2 +2020-05-22,Sarpy,Nebraska,31153,419,2 +2020-05-23,Sarpy,Nebraska,31153,434,2 +2020-05-24,Sarpy,Nebraska,31153,448,3 +2020-05-25,Sarpy,Nebraska,31153,463,3 +2020-05-26,Sarpy,Nebraska,31153,476,3 +2020-05-27,Sarpy,Nebraska,31153,503,3 +2020-05-28,Sarpy,Nebraska,31153,531,3 +2020-05-29,Sarpy,Nebraska,31153,578,3 +2020-05-30,Sarpy,Nebraska,31153,596,3 +2020-05-31,Sarpy,Nebraska,31153,620,4 +2020-06-01,Sarpy,Nebraska,31153,650,4 +2020-06-02,Sarpy,Nebraska,31153,680,4 +2020-06-03,Sarpy,Nebraska,31153,703,4 +2020-06-04,Sarpy,Nebraska,31153,736,4 +2020-06-05,Sarpy,Nebraska,31153,753,4 +2020-06-06,Sarpy,Nebraska,31153,765,4 +2020-06-07,Sarpy,Nebraska,31153,773,4 +2020-06-08,Sarpy,Nebraska,31153,787,4 +2020-06-09,Sarpy,Nebraska,31153,796,4 +2020-06-10,Sarpy,Nebraska,31153,809,5 +2020-06-11,Sarpy,Nebraska,31153,842,5 +2020-06-12,Sarpy,Nebraska,31153,868,5 +2020-06-13,Sarpy,Nebraska,31153,882,5 +2020-06-14,Sarpy,Nebraska,31153,898,5 +2020-06-15,Sarpy,Nebraska,31153,907,7 +2020-06-16,Sarpy,Nebraska,31153,920,7 +2020-06-17,Sarpy,Nebraska,31153,948,8 +2020-06-18,Sarpy,Nebraska,31153,967,8 +2020-06-19,Sarpy,Nebraska,31153,982,8 +2020-06-20,Sarpy,Nebraska,31153,998,8 +2020-06-21,Sarpy,Nebraska,31153,1018,8 +2020-06-22,Sarpy,Nebraska,31153,1038,8 +2020-06-23,Sarpy,Nebraska,31153,1049,8 +2020-06-24,Sarpy,Nebraska,31153,1060,8 +2020-06-25,Sarpy,Nebraska,31153,1068,8 +2020-06-26,Sarpy,Nebraska,31153,1089,8 +2020-06-27,Sarpy,Nebraska,31153,1111,8 +2020-06-28,Sarpy,Nebraska,31153,1123,8 +2020-06-29,Sarpy,Nebraska,31153,1145,8 +2020-06-30,Sarpy,Nebraska,31153,1167,8 +2020-07-01,Sarpy,Nebraska,31153,1178,8 +2020-07-02,Sarpy,Nebraska,31153,1192,8 +2020-07-03,Sarpy,Nebraska,31153,1212,8 +2020-07-04,Sarpy,Nebraska,31153,1230,8 +2020-07-05,Sarpy,Nebraska,31153,1237,8 +2020-07-06,Sarpy,Nebraska,31153,1242,8 +2020-07-07,Sarpy,Nebraska,31153,1259,8 +2020-07-08,Sarpy,Nebraska,31153,1272,8 +2020-07-09,Sarpy,Nebraska,31153,1299,8 +2020-03-24,Saunders,Nebraska,31155,1,0 +2020-03-25,Saunders,Nebraska,31155,2,0 +2020-03-26,Saunders,Nebraska,31155,2,0 +2020-03-27,Saunders,Nebraska,31155,2,0 +2020-03-28,Saunders,Nebraska,31155,2,0 +2020-03-29,Saunders,Nebraska,31155,2,0 +2020-03-30,Saunders,Nebraska,31155,2,0 +2020-03-31,Saunders,Nebraska,31155,2,0 +2020-04-01,Saunders,Nebraska,31155,2,0 +2020-04-02,Saunders,Nebraska,31155,3,0 +2020-04-03,Saunders,Nebraska,31155,3,0 +2020-04-04,Saunders,Nebraska,31155,4,0 +2020-04-05,Saunders,Nebraska,31155,4,0 +2020-04-06,Saunders,Nebraska,31155,4,0 +2020-04-07,Saunders,Nebraska,31155,4,0 +2020-04-08,Saunders,Nebraska,31155,4,0 +2020-04-09,Saunders,Nebraska,31155,4,0 +2020-04-10,Saunders,Nebraska,31155,5,0 +2020-04-11,Saunders,Nebraska,31155,6,0 +2020-04-12,Saunders,Nebraska,31155,6,0 +2020-04-13,Saunders,Nebraska,31155,6,0 +2020-04-14,Saunders,Nebraska,31155,6,0 +2020-04-15,Saunders,Nebraska,31155,6,0 +2020-04-16,Saunders,Nebraska,31155,6,0 +2020-04-17,Saunders,Nebraska,31155,6,0 +2020-04-18,Saunders,Nebraska,31155,6,0 +2020-04-19,Saunders,Nebraska,31155,6,0 +2020-04-20,Saunders,Nebraska,31155,6,0 +2020-04-21,Saunders,Nebraska,31155,6,0 +2020-04-22,Saunders,Nebraska,31155,6,0 +2020-04-23,Saunders,Nebraska,31155,8,0 +2020-04-24,Saunders,Nebraska,31155,8,0 +2020-04-25,Saunders,Nebraska,31155,9,0 +2020-04-26,Saunders,Nebraska,31155,10,0 +2020-04-27,Saunders,Nebraska,31155,10,0 +2020-04-28,Saunders,Nebraska,31155,10,0 +2020-04-29,Saunders,Nebraska,31155,10,0 +2020-04-30,Saunders,Nebraska,31155,10,0 +2020-05-01,Saunders,Nebraska,31155,10,0 +2020-05-02,Saunders,Nebraska,31155,10,0 +2020-05-03,Saunders,Nebraska,31155,10,0 +2020-05-04,Saunders,Nebraska,31155,11,0 +2020-05-05,Saunders,Nebraska,31155,11,0 +2020-05-06,Saunders,Nebraska,31155,11,0 +2020-05-07,Saunders,Nebraska,31155,11,0 +2020-05-08,Saunders,Nebraska,31155,11,1 +2020-05-09,Saunders,Nebraska,31155,11,1 +2020-05-10,Saunders,Nebraska,31155,11,1 +2020-05-11,Saunders,Nebraska,31155,12,1 +2020-05-12,Saunders,Nebraska,31155,12,1 +2020-05-13,Saunders,Nebraska,31155,12,1 +2020-05-14,Saunders,Nebraska,31155,15,1 +2020-05-15,Saunders,Nebraska,31155,18,1 +2020-05-16,Saunders,Nebraska,31155,20,1 +2020-05-17,Saunders,Nebraska,31155,20,1 +2020-05-18,Saunders,Nebraska,31155,21,1 +2020-05-19,Saunders,Nebraska,31155,22,1 +2020-05-20,Saunders,Nebraska,31155,22,1 +2020-05-21,Saunders,Nebraska,31155,22,1 +2020-05-22,Saunders,Nebraska,31155,25,1 +2020-05-23,Saunders,Nebraska,31155,27,1 +2020-05-24,Saunders,Nebraska,31155,27,1 +2020-05-25,Saunders,Nebraska,31155,28,1 +2020-05-26,Saunders,Nebraska,31155,30,1 +2020-05-27,Saunders,Nebraska,31155,31,1 +2020-05-28,Saunders,Nebraska,31155,33,1 +2020-05-29,Saunders,Nebraska,31155,34,1 +2020-05-30,Saunders,Nebraska,31155,36,1 +2020-05-31,Saunders,Nebraska,31155,36,1 +2020-06-01,Saunders,Nebraska,31155,38,1 +2020-06-02,Saunders,Nebraska,31155,40,1 +2020-06-03,Saunders,Nebraska,31155,42,1 +2020-06-04,Saunders,Nebraska,31155,46,1 +2020-06-05,Saunders,Nebraska,31155,47,1 +2020-06-06,Saunders,Nebraska,31155,51,1 +2020-06-07,Saunders,Nebraska,31155,51,1 +2020-06-08,Saunders,Nebraska,31155,51,1 +2020-06-09,Saunders,Nebraska,31155,54,1 +2020-06-10,Saunders,Nebraska,31155,55,1 +2020-06-11,Saunders,Nebraska,31155,56,1 +2020-06-12,Saunders,Nebraska,31155,56,1 +2020-06-13,Saunders,Nebraska,31155,56,1 +2020-06-14,Saunders,Nebraska,31155,57,1 +2020-06-15,Saunders,Nebraska,31155,57,1 +2020-06-16,Saunders,Nebraska,31155,57,2 +2020-06-17,Saunders,Nebraska,31155,59,2 +2020-06-18,Saunders,Nebraska,31155,60,2 +2020-06-19,Saunders,Nebraska,31155,60,2 +2020-06-20,Saunders,Nebraska,31155,61,2 +2020-06-21,Saunders,Nebraska,31155,63,2 +2020-06-22,Saunders,Nebraska,31155,63,2 +2020-06-23,Saunders,Nebraska,31155,65,2 +2020-06-24,Saunders,Nebraska,31155,66,2 +2020-06-25,Saunders,Nebraska,31155,67,2 +2020-06-26,Saunders,Nebraska,31155,69,2 +2020-06-27,Saunders,Nebraska,31155,73,2 +2020-06-28,Saunders,Nebraska,31155,74,2 +2020-06-29,Saunders,Nebraska,31155,74,2 +2020-06-30,Saunders,Nebraska,31155,77,2 +2020-07-01,Saunders,Nebraska,31155,78,2 +2020-07-02,Saunders,Nebraska,31155,79,2 +2020-07-03,Saunders,Nebraska,31155,79,2 +2020-07-04,Saunders,Nebraska,31155,79,2 +2020-07-05,Saunders,Nebraska,31155,79,2 +2020-07-06,Saunders,Nebraska,31155,79,2 +2020-07-07,Saunders,Nebraska,31155,81,2 +2020-07-08,Saunders,Nebraska,31155,83,2 +2020-07-09,Saunders,Nebraska,31155,85,2 +2020-03-29,Scotts Bluff,Nebraska,31157,1,0 +2020-03-30,Scotts Bluff,Nebraska,31157,1,0 +2020-03-31,Scotts Bluff,Nebraska,31157,1,0 +2020-04-01,Scotts Bluff,Nebraska,31157,3,0 +2020-04-02,Scotts Bluff,Nebraska,31157,3,0 +2020-04-03,Scotts Bluff,Nebraska,31157,3,0 +2020-04-04,Scotts Bluff,Nebraska,31157,3,0 +2020-04-05,Scotts Bluff,Nebraska,31157,3,0 +2020-04-06,Scotts Bluff,Nebraska,31157,6,0 +2020-04-07,Scotts Bluff,Nebraska,31157,6,0 +2020-04-08,Scotts Bluff,Nebraska,31157,10,0 +2020-04-09,Scotts Bluff,Nebraska,31157,10,0 +2020-04-10,Scotts Bluff,Nebraska,31157,10,0 +2020-04-11,Scotts Bluff,Nebraska,31157,12,0 +2020-04-12,Scotts Bluff,Nebraska,31157,14,0 +2020-04-13,Scotts Bluff,Nebraska,31157,14,0 +2020-04-14,Scotts Bluff,Nebraska,31157,14,0 +2020-04-15,Scotts Bluff,Nebraska,31157,16,0 +2020-04-16,Scotts Bluff,Nebraska,31157,17,0 +2020-04-17,Scotts Bluff,Nebraska,31157,18,0 +2020-04-18,Scotts Bluff,Nebraska,31157,18,0 +2020-04-19,Scotts Bluff,Nebraska,31157,22,0 +2020-04-20,Scotts Bluff,Nebraska,31157,22,0 +2020-04-21,Scotts Bluff,Nebraska,31157,22,0 +2020-04-22,Scotts Bluff,Nebraska,31157,22,0 +2020-04-23,Scotts Bluff,Nebraska,31157,23,0 +2020-04-24,Scotts Bluff,Nebraska,31157,23,0 +2020-04-25,Scotts Bluff,Nebraska,31157,26,0 +2020-04-26,Scotts Bluff,Nebraska,31157,27,0 +2020-04-27,Scotts Bluff,Nebraska,31157,27,0 +2020-04-28,Scotts Bluff,Nebraska,31157,29,0 +2020-04-29,Scotts Bluff,Nebraska,31157,29,0 +2020-04-30,Scotts Bluff,Nebraska,31157,29,0 +2020-05-01,Scotts Bluff,Nebraska,31157,29,0 +2020-05-02,Scotts Bluff,Nebraska,31157,31,0 +2020-05-03,Scotts Bluff,Nebraska,31157,34,0 +2020-05-04,Scotts Bluff,Nebraska,31157,34,0 +2020-05-05,Scotts Bluff,Nebraska,31157,34,0 +2020-05-06,Scotts Bluff,Nebraska,31157,36,0 +2020-05-07,Scotts Bluff,Nebraska,31157,36,0 +2020-05-08,Scotts Bluff,Nebraska,31157,42,0 +2020-05-09,Scotts Bluff,Nebraska,31157,44,0 +2020-05-10,Scotts Bluff,Nebraska,31157,44,0 +2020-05-11,Scotts Bluff,Nebraska,31157,44,0 +2020-05-12,Scotts Bluff,Nebraska,31157,46,0 +2020-05-13,Scotts Bluff,Nebraska,31157,47,0 +2020-05-14,Scotts Bluff,Nebraska,31157,48,0 +2020-05-15,Scotts Bluff,Nebraska,31157,51,0 +2020-05-16,Scotts Bluff,Nebraska,31157,51,0 +2020-05-17,Scotts Bluff,Nebraska,31157,54,0 +2020-05-18,Scotts Bluff,Nebraska,31157,54,0 +2020-05-19,Scotts Bluff,Nebraska,31157,54,0 +2020-05-20,Scotts Bluff,Nebraska,31157,55,0 +2020-05-21,Scotts Bluff,Nebraska,31157,58,0 +2020-05-22,Scotts Bluff,Nebraska,31157,58,0 +2020-05-23,Scotts Bluff,Nebraska,31157,62,0 +2020-05-24,Scotts Bluff,Nebraska,31157,67,0 +2020-05-25,Scotts Bluff,Nebraska,31157,67,0 +2020-05-26,Scotts Bluff,Nebraska,31157,72,0 +2020-05-27,Scotts Bluff,Nebraska,31157,75,0 +2020-05-28,Scotts Bluff,Nebraska,31157,84,0 +2020-05-29,Scotts Bluff,Nebraska,31157,88,0 +2020-05-30,Scotts Bluff,Nebraska,31157,102,0 +2020-05-31,Scotts Bluff,Nebraska,31157,102,0 +2020-06-01,Scotts Bluff,Nebraska,31157,107,0 +2020-06-02,Scotts Bluff,Nebraska,31157,112,0 +2020-06-03,Scotts Bluff,Nebraska,31157,120,0 +2020-06-04,Scotts Bluff,Nebraska,31157,124,0 +2020-06-05,Scotts Bluff,Nebraska,31157,137,0 +2020-06-06,Scotts Bluff,Nebraska,31157,140,0 +2020-06-07,Scotts Bluff,Nebraska,31157,143,0 +2020-06-08,Scotts Bluff,Nebraska,31157,145,0 +2020-06-09,Scotts Bluff,Nebraska,31157,149,1 +2020-06-10,Scotts Bluff,Nebraska,31157,149,1 +2020-06-11,Scotts Bluff,Nebraska,31157,162,2 +2020-06-12,Scotts Bluff,Nebraska,31157,170,2 +2020-06-13,Scotts Bluff,Nebraska,31157,172,2 +2020-06-14,Scotts Bluff,Nebraska,31157,172,2 +2020-06-15,Scotts Bluff,Nebraska,31157,177,2 +2020-06-16,Scotts Bluff,Nebraska,31157,178,2 +2020-06-17,Scotts Bluff,Nebraska,31157,184,2 +2020-06-18,Scotts Bluff,Nebraska,31157,187,2 +2020-06-19,Scotts Bluff,Nebraska,31157,187,2 +2020-06-20,Scotts Bluff,Nebraska,31157,188,2 +2020-06-21,Scotts Bluff,Nebraska,31157,190,2 +2020-06-22,Scotts Bluff,Nebraska,31157,193,3 +2020-06-23,Scotts Bluff,Nebraska,31157,199,3 +2020-06-24,Scotts Bluff,Nebraska,31157,202,3 +2020-06-25,Scotts Bluff,Nebraska,31157,205,3 +2020-06-26,Scotts Bluff,Nebraska,31157,208,3 +2020-06-27,Scotts Bluff,Nebraska,31157,209,3 +2020-06-28,Scotts Bluff,Nebraska,31157,209,3 +2020-06-29,Scotts Bluff,Nebraska,31157,213,3 +2020-06-30,Scotts Bluff,Nebraska,31157,215,3 +2020-07-01,Scotts Bluff,Nebraska,31157,216,3 +2020-07-02,Scotts Bluff,Nebraska,31157,216,3 +2020-07-03,Scotts Bluff,Nebraska,31157,224,3 +2020-07-04,Scotts Bluff,Nebraska,31157,224,3 +2020-07-05,Scotts Bluff,Nebraska,31157,224,3 +2020-07-06,Scotts Bluff,Nebraska,31157,227,3 +2020-07-07,Scotts Bluff,Nebraska,31157,229,3 +2020-07-08,Scotts Bluff,Nebraska,31157,231,5 +2020-07-09,Scotts Bluff,Nebraska,31157,233,5 +2020-04-05,Seward,Nebraska,31159,1,0 +2020-04-06,Seward,Nebraska,31159,1,0 +2020-04-07,Seward,Nebraska,31159,1,0 +2020-04-08,Seward,Nebraska,31159,1,0 +2020-04-09,Seward,Nebraska,31159,1,0 +2020-04-10,Seward,Nebraska,31159,1,0 +2020-04-11,Seward,Nebraska,31159,1,0 +2020-04-12,Seward,Nebraska,31159,1,0 +2020-04-13,Seward,Nebraska,31159,1,0 +2020-04-14,Seward,Nebraska,31159,1,0 +2020-04-15,Seward,Nebraska,31159,1,0 +2020-04-16,Seward,Nebraska,31159,1,0 +2020-04-17,Seward,Nebraska,31159,1,0 +2020-04-18,Seward,Nebraska,31159,2,0 +2020-04-19,Seward,Nebraska,31159,2,0 +2020-04-20,Seward,Nebraska,31159,2,0 +2020-04-21,Seward,Nebraska,31159,4,1 +2020-04-22,Seward,Nebraska,31159,4,1 +2020-04-23,Seward,Nebraska,31159,5,1 +2020-04-24,Seward,Nebraska,31159,6,1 +2020-04-25,Seward,Nebraska,31159,6,1 +2020-04-26,Seward,Nebraska,31159,6,1 +2020-04-27,Seward,Nebraska,31159,7,1 +2020-04-28,Seward,Nebraska,31159,7,1 +2020-04-29,Seward,Nebraska,31159,7,1 +2020-04-30,Seward,Nebraska,31159,8,1 +2020-05-01,Seward,Nebraska,31159,8,1 +2020-05-02,Seward,Nebraska,31159,8,1 +2020-05-03,Seward,Nebraska,31159,8,1 +2020-05-04,Seward,Nebraska,31159,12,1 +2020-05-05,Seward,Nebraska,31159,13,1 +2020-05-06,Seward,Nebraska,31159,13,1 +2020-05-07,Seward,Nebraska,31159,15,1 +2020-05-08,Seward,Nebraska,31159,16,1 +2020-05-09,Seward,Nebraska,31159,17,1 +2020-05-10,Seward,Nebraska,31159,17,1 +2020-05-11,Seward,Nebraska,31159,17,1 +2020-05-12,Seward,Nebraska,31159,17,1 +2020-05-13,Seward,Nebraska,31159,18,1 +2020-05-14,Seward,Nebraska,31159,19,1 +2020-05-15,Seward,Nebraska,31159,23,1 +2020-05-16,Seward,Nebraska,31159,24,1 +2020-05-17,Seward,Nebraska,31159,25,1 +2020-05-18,Seward,Nebraska,31159,26,1 +2020-05-19,Seward,Nebraska,31159,26,1 +2020-05-20,Seward,Nebraska,31159,26,1 +2020-05-21,Seward,Nebraska,31159,27,1 +2020-05-22,Seward,Nebraska,31159,27,1 +2020-05-23,Seward,Nebraska,31159,27,1 +2020-05-24,Seward,Nebraska,31159,27,1 +2020-05-25,Seward,Nebraska,31159,27,1 +2020-05-26,Seward,Nebraska,31159,27,1 +2020-05-27,Seward,Nebraska,31159,27,1 +2020-05-28,Seward,Nebraska,31159,27,1 +2020-05-29,Seward,Nebraska,31159,27,1 +2020-05-30,Seward,Nebraska,31159,28,1 +2020-05-31,Seward,Nebraska,31159,28,1 +2020-06-01,Seward,Nebraska,31159,28,1 +2020-06-02,Seward,Nebraska,31159,28,1 +2020-06-03,Seward,Nebraska,31159,29,1 +2020-06-04,Seward,Nebraska,31159,29,1 +2020-06-05,Seward,Nebraska,31159,29,1 +2020-06-06,Seward,Nebraska,31159,29,1 +2020-06-07,Seward,Nebraska,31159,29,1 +2020-06-08,Seward,Nebraska,31159,29,1 +2020-06-09,Seward,Nebraska,31159,29,1 +2020-06-10,Seward,Nebraska,31159,29,1 +2020-06-11,Seward,Nebraska,31159,30,1 +2020-06-12,Seward,Nebraska,31159,31,1 +2020-06-13,Seward,Nebraska,31159,31,1 +2020-06-14,Seward,Nebraska,31159,32,1 +2020-06-15,Seward,Nebraska,31159,32,1 +2020-06-16,Seward,Nebraska,31159,32,1 +2020-06-17,Seward,Nebraska,31159,32,1 +2020-06-18,Seward,Nebraska,31159,32,1 +2020-06-19,Seward,Nebraska,31159,32,1 +2020-06-20,Seward,Nebraska,31159,32,1 +2020-06-21,Seward,Nebraska,31159,32,1 +2020-06-22,Seward,Nebraska,31159,32,1 +2020-06-23,Seward,Nebraska,31159,32,1 +2020-06-24,Seward,Nebraska,31159,32,1 +2020-06-25,Seward,Nebraska,31159,33,1 +2020-06-26,Seward,Nebraska,31159,33,1 +2020-06-27,Seward,Nebraska,31159,33,1 +2020-06-28,Seward,Nebraska,31159,33,1 +2020-06-29,Seward,Nebraska,31159,33,1 +2020-06-30,Seward,Nebraska,31159,34,1 +2020-07-01,Seward,Nebraska,31159,36,1 +2020-07-02,Seward,Nebraska,31159,36,1 +2020-07-03,Seward,Nebraska,31159,37,1 +2020-07-04,Seward,Nebraska,31159,39,1 +2020-07-05,Seward,Nebraska,31159,39,1 +2020-07-06,Seward,Nebraska,31159,41,1 +2020-07-07,Seward,Nebraska,31159,44,1 +2020-07-08,Seward,Nebraska,31159,46,1 +2020-07-09,Seward,Nebraska,31159,46,1 +2020-06-26,Sheridan,Nebraska,31161,2,0 +2020-06-27,Sheridan,Nebraska,31161,2,0 +2020-06-28,Sheridan,Nebraska,31161,2,0 +2020-06-29,Sheridan,Nebraska,31161,4,0 +2020-06-30,Sheridan,Nebraska,31161,4,0 +2020-07-01,Sheridan,Nebraska,31161,4,0 +2020-07-02,Sheridan,Nebraska,31161,5,0 +2020-07-03,Sheridan,Nebraska,31161,8,0 +2020-07-04,Sheridan,Nebraska,31161,8,0 +2020-07-05,Sheridan,Nebraska,31161,8,0 +2020-07-06,Sheridan,Nebraska,31161,8,0 +2020-07-07,Sheridan,Nebraska,31161,8,0 +2020-07-08,Sheridan,Nebraska,31161,8,0 +2020-07-09,Sheridan,Nebraska,31161,8,0 +2020-04-23,Sherman,Nebraska,31163,1,0 +2020-04-24,Sherman,Nebraska,31163,1,0 +2020-04-25,Sherman,Nebraska,31163,1,0 +2020-04-26,Sherman,Nebraska,31163,1,0 +2020-04-27,Sherman,Nebraska,31163,1,0 +2020-04-28,Sherman,Nebraska,31163,1,0 +2020-04-29,Sherman,Nebraska,31163,1,0 +2020-04-30,Sherman,Nebraska,31163,1,0 +2020-05-01,Sherman,Nebraska,31163,2,0 +2020-05-02,Sherman,Nebraska,31163,2,0 +2020-05-03,Sherman,Nebraska,31163,2,0 +2020-05-04,Sherman,Nebraska,31163,2,0 +2020-05-05,Sherman,Nebraska,31163,2,0 +2020-05-06,Sherman,Nebraska,31163,2,0 +2020-05-07,Sherman,Nebraska,31163,2,0 +2020-05-08,Sherman,Nebraska,31163,2,0 +2020-05-09,Sherman,Nebraska,31163,2,0 +2020-05-10,Sherman,Nebraska,31163,2,0 +2020-05-11,Sherman,Nebraska,31163,2,0 +2020-05-12,Sherman,Nebraska,31163,2,0 +2020-05-13,Sherman,Nebraska,31163,2,0 +2020-05-14,Sherman,Nebraska,31163,2,0 +2020-05-15,Sherman,Nebraska,31163,2,0 +2020-05-16,Sherman,Nebraska,31163,2,0 +2020-05-17,Sherman,Nebraska,31163,2,0 +2020-05-18,Sherman,Nebraska,31163,2,0 +2020-05-19,Sherman,Nebraska,31163,2,0 +2020-05-20,Sherman,Nebraska,31163,2,0 +2020-05-21,Sherman,Nebraska,31163,2,0 +2020-05-22,Sherman,Nebraska,31163,2,0 +2020-05-23,Sherman,Nebraska,31163,2,0 +2020-05-24,Sherman,Nebraska,31163,2,0 +2020-05-25,Sherman,Nebraska,31163,3,0 +2020-05-26,Sherman,Nebraska,31163,4,0 +2020-05-27,Sherman,Nebraska,31163,4,0 +2020-05-28,Sherman,Nebraska,31163,4,0 +2020-05-29,Sherman,Nebraska,31163,4,0 +2020-05-30,Sherman,Nebraska,31163,4,0 +2020-05-31,Sherman,Nebraska,31163,4,0 +2020-06-01,Sherman,Nebraska,31163,4,0 +2020-06-02,Sherman,Nebraska,31163,4,0 +2020-06-03,Sherman,Nebraska,31163,4,0 +2020-06-04,Sherman,Nebraska,31163,4,0 +2020-06-05,Sherman,Nebraska,31163,5,0 +2020-06-06,Sherman,Nebraska,31163,5,0 +2020-06-07,Sherman,Nebraska,31163,5,0 +2020-06-08,Sherman,Nebraska,31163,5,0 +2020-06-09,Sherman,Nebraska,31163,4,0 +2020-06-10,Sherman,Nebraska,31163,4,0 +2020-06-11,Sherman,Nebraska,31163,4,0 +2020-06-12,Sherman,Nebraska,31163,4,0 +2020-06-13,Sherman,Nebraska,31163,4,0 +2020-06-14,Sherman,Nebraska,31163,4,0 +2020-06-15,Sherman,Nebraska,31163,5,0 +2020-06-16,Sherman,Nebraska,31163,5,0 +2020-06-17,Sherman,Nebraska,31163,5,0 +2020-06-18,Sherman,Nebraska,31163,5,0 +2020-06-19,Sherman,Nebraska,31163,5,0 +2020-06-20,Sherman,Nebraska,31163,5,0 +2020-06-21,Sherman,Nebraska,31163,5,0 +2020-06-22,Sherman,Nebraska,31163,5,0 +2020-06-23,Sherman,Nebraska,31163,5,0 +2020-06-24,Sherman,Nebraska,31163,5,0 +2020-06-25,Sherman,Nebraska,31163,5,0 +2020-06-26,Sherman,Nebraska,31163,5,0 +2020-06-27,Sherman,Nebraska,31163,5,0 +2020-06-28,Sherman,Nebraska,31163,5,0 +2020-06-29,Sherman,Nebraska,31163,5,0 +2020-06-30,Sherman,Nebraska,31163,5,0 +2020-07-01,Sherman,Nebraska,31163,5,0 +2020-07-02,Sherman,Nebraska,31163,5,0 +2020-07-03,Sherman,Nebraska,31163,5,0 +2020-07-04,Sherman,Nebraska,31163,5,0 +2020-07-05,Sherman,Nebraska,31163,5,0 +2020-07-06,Sherman,Nebraska,31163,5,0 +2020-07-07,Sherman,Nebraska,31163,5,0 +2020-07-08,Sherman,Nebraska,31163,5,0 +2020-07-09,Sherman,Nebraska,31163,5,0 +2020-06-11,Sioux,Nebraska,31165,1,0 +2020-06-12,Sioux,Nebraska,31165,2,0 +2020-06-13,Sioux,Nebraska,31165,2,0 +2020-06-14,Sioux,Nebraska,31165,2,0 +2020-06-15,Sioux,Nebraska,31165,1,0 +2020-06-16,Sioux,Nebraska,31165,1,0 +2020-06-17,Sioux,Nebraska,31165,1,0 +2020-06-18,Sioux,Nebraska,31165,1,0 +2020-06-19,Sioux,Nebraska,31165,1,0 +2020-06-20,Sioux,Nebraska,31165,1,0 +2020-06-21,Sioux,Nebraska,31165,1,0 +2020-06-22,Sioux,Nebraska,31165,1,0 +2020-06-23,Sioux,Nebraska,31165,3,0 +2020-06-24,Sioux,Nebraska,31165,3,0 +2020-06-25,Sioux,Nebraska,31165,4,0 +2020-06-26,Sioux,Nebraska,31165,6,0 +2020-06-27,Sioux,Nebraska,31165,6,0 +2020-06-28,Sioux,Nebraska,31165,6,0 +2020-06-29,Sioux,Nebraska,31165,6,0 +2020-06-30,Sioux,Nebraska,31165,6,0 +2020-07-01,Sioux,Nebraska,31165,6,0 +2020-07-02,Sioux,Nebraska,31165,6,0 +2020-07-03,Sioux,Nebraska,31165,6,0 +2020-07-04,Sioux,Nebraska,31165,6,0 +2020-07-05,Sioux,Nebraska,31165,6,0 +2020-07-06,Sioux,Nebraska,31165,6,0 +2020-07-07,Sioux,Nebraska,31165,6,0 +2020-07-08,Sioux,Nebraska,31165,6,0 +2020-07-09,Sioux,Nebraska,31165,6,0 +2020-04-06,Stanton,Nebraska,31167,1,0 +2020-04-07,Stanton,Nebraska,31167,1,0 +2020-04-08,Stanton,Nebraska,31167,1,0 +2020-04-09,Stanton,Nebraska,31167,1,0 +2020-04-10,Stanton,Nebraska,31167,1,0 +2020-04-11,Stanton,Nebraska,31167,1,0 +2020-04-12,Stanton,Nebraska,31167,1,0 +2020-04-13,Stanton,Nebraska,31167,1,0 +2020-04-14,Stanton,Nebraska,31167,1,0 +2020-04-15,Stanton,Nebraska,31167,1,0 +2020-04-16,Stanton,Nebraska,31167,1,0 +2020-04-17,Stanton,Nebraska,31167,2,0 +2020-04-18,Stanton,Nebraska,31167,1,0 +2020-04-19,Stanton,Nebraska,31167,2,0 +2020-04-20,Stanton,Nebraska,31167,2,0 +2020-04-21,Stanton,Nebraska,31167,2,0 +2020-04-22,Stanton,Nebraska,31167,2,0 +2020-04-23,Stanton,Nebraska,31167,2,0 +2020-04-24,Stanton,Nebraska,31167,2,0 +2020-04-25,Stanton,Nebraska,31167,2,0 +2020-04-26,Stanton,Nebraska,31167,2,0 +2020-04-27,Stanton,Nebraska,31167,2,0 +2020-04-28,Stanton,Nebraska,31167,2,0 +2020-04-29,Stanton,Nebraska,31167,4,0 +2020-04-30,Stanton,Nebraska,31167,5,0 +2020-05-01,Stanton,Nebraska,31167,5,0 +2020-05-02,Stanton,Nebraska,31167,5,0 +2020-05-03,Stanton,Nebraska,31167,5,0 +2020-05-04,Stanton,Nebraska,31167,10,0 +2020-05-05,Stanton,Nebraska,31167,11,0 +2020-05-06,Stanton,Nebraska,31167,11,0 +2020-05-07,Stanton,Nebraska,31167,11,0 +2020-05-08,Stanton,Nebraska,31167,11,0 +2020-05-09,Stanton,Nebraska,31167,12,0 +2020-05-10,Stanton,Nebraska,31167,12,0 +2020-05-11,Stanton,Nebraska,31167,12,0 +2020-05-12,Stanton,Nebraska,31167,12,0 +2020-05-13,Stanton,Nebraska,31167,12,0 +2020-05-14,Stanton,Nebraska,31167,12,0 +2020-05-15,Stanton,Nebraska,31167,15,0 +2020-05-16,Stanton,Nebraska,31167,15,0 +2020-05-17,Stanton,Nebraska,31167,15,0 +2020-05-18,Stanton,Nebraska,31167,15,0 +2020-05-19,Stanton,Nebraska,31167,15,0 +2020-05-20,Stanton,Nebraska,31167,15,0 +2020-05-21,Stanton,Nebraska,31167,15,0 +2020-05-22,Stanton,Nebraska,31167,15,0 +2020-05-23,Stanton,Nebraska,31167,16,0 +2020-05-24,Stanton,Nebraska,31167,17,0 +2020-05-25,Stanton,Nebraska,31167,17,0 +2020-05-26,Stanton,Nebraska,31167,20,0 +2020-05-27,Stanton,Nebraska,31167,21,0 +2020-05-28,Stanton,Nebraska,31167,20,0 +2020-05-29,Stanton,Nebraska,31167,20,0 +2020-05-30,Stanton,Nebraska,31167,20,0 +2020-05-31,Stanton,Nebraska,31167,20,0 +2020-06-01,Stanton,Nebraska,31167,20,0 +2020-06-02,Stanton,Nebraska,31167,20,0 +2020-06-03,Stanton,Nebraska,31167,21,0 +2020-06-04,Stanton,Nebraska,31167,21,0 +2020-06-05,Stanton,Nebraska,31167,21,0 +2020-06-06,Stanton,Nebraska,31167,21,0 +2020-06-07,Stanton,Nebraska,31167,21,0 +2020-06-08,Stanton,Nebraska,31167,21,0 +2020-06-09,Stanton,Nebraska,31167,21,0 +2020-06-10,Stanton,Nebraska,31167,21,0 +2020-06-11,Stanton,Nebraska,31167,21,0 +2020-06-12,Stanton,Nebraska,31167,21,0 +2020-06-13,Stanton,Nebraska,31167,21,0 +2020-06-14,Stanton,Nebraska,31167,21,0 +2020-06-15,Stanton,Nebraska,31167,21,0 +2020-06-16,Stanton,Nebraska,31167,21,0 +2020-06-17,Stanton,Nebraska,31167,21,0 +2020-06-18,Stanton,Nebraska,31167,21,0 +2020-06-19,Stanton,Nebraska,31167,21,0 +2020-06-20,Stanton,Nebraska,31167,21,0 +2020-06-21,Stanton,Nebraska,31167,21,0 +2020-06-22,Stanton,Nebraska,31167,21,0 +2020-06-23,Stanton,Nebraska,31167,21,0 +2020-06-24,Stanton,Nebraska,31167,21,0 +2020-06-25,Stanton,Nebraska,31167,21,0 +2020-06-26,Stanton,Nebraska,31167,21,0 +2020-06-27,Stanton,Nebraska,31167,21,0 +2020-06-28,Stanton,Nebraska,31167,21,0 +2020-06-29,Stanton,Nebraska,31167,21,0 +2020-06-30,Stanton,Nebraska,31167,21,0 +2020-07-01,Stanton,Nebraska,31167,21,0 +2020-07-02,Stanton,Nebraska,31167,21,0 +2020-07-03,Stanton,Nebraska,31167,21,0 +2020-07-04,Stanton,Nebraska,31167,21,0 +2020-07-05,Stanton,Nebraska,31167,21,0 +2020-07-06,Stanton,Nebraska,31167,21,0 +2020-07-07,Stanton,Nebraska,31167,21,0 +2020-07-08,Stanton,Nebraska,31167,21,0 +2020-07-09,Stanton,Nebraska,31167,21,0 +2020-05-29,Thayer,Nebraska,31169,1,0 +2020-05-30,Thayer,Nebraska,31169,1,0 +2020-05-31,Thayer,Nebraska,31169,1,0 +2020-06-01,Thayer,Nebraska,31169,1,0 +2020-06-02,Thayer,Nebraska,31169,1,0 +2020-06-03,Thayer,Nebraska,31169,1,0 +2020-06-04,Thayer,Nebraska,31169,1,0 +2020-06-05,Thayer,Nebraska,31169,1,0 +2020-06-06,Thayer,Nebraska,31169,1,0 +2020-06-07,Thayer,Nebraska,31169,1,0 +2020-06-08,Thayer,Nebraska,31169,1,0 +2020-06-09,Thayer,Nebraska,31169,1,0 +2020-06-10,Thayer,Nebraska,31169,1,0 +2020-06-11,Thayer,Nebraska,31169,1,0 +2020-06-12,Thayer,Nebraska,31169,1,0 +2020-06-13,Thayer,Nebraska,31169,1,0 +2020-06-14,Thayer,Nebraska,31169,1,0 +2020-06-15,Thayer,Nebraska,31169,1,0 +2020-06-16,Thayer,Nebraska,31169,1,0 +2020-06-17,Thayer,Nebraska,31169,1,0 +2020-06-18,Thayer,Nebraska,31169,1,0 +2020-06-19,Thayer,Nebraska,31169,1,0 +2020-06-20,Thayer,Nebraska,31169,1,0 +2020-06-21,Thayer,Nebraska,31169,1,0 +2020-06-22,Thayer,Nebraska,31169,1,0 +2020-06-23,Thayer,Nebraska,31169,1,0 +2020-06-24,Thayer,Nebraska,31169,1,0 +2020-06-25,Thayer,Nebraska,31169,1,0 +2020-06-26,Thayer,Nebraska,31169,1,0 +2020-06-27,Thayer,Nebraska,31169,1,0 +2020-06-28,Thayer,Nebraska,31169,1,0 +2020-06-29,Thayer,Nebraska,31169,1,0 +2020-06-30,Thayer,Nebraska,31169,1,0 +2020-07-01,Thayer,Nebraska,31169,1,0 +2020-07-02,Thayer,Nebraska,31169,1,0 +2020-07-03,Thayer,Nebraska,31169,1,0 +2020-07-04,Thayer,Nebraska,31169,1,0 +2020-07-05,Thayer,Nebraska,31169,1,0 +2020-07-06,Thayer,Nebraska,31169,1,0 +2020-07-07,Thayer,Nebraska,31169,1,0 +2020-07-08,Thayer,Nebraska,31169,4,0 +2020-07-09,Thayer,Nebraska,31169,7,0 +2020-05-06,Thomas,Nebraska,31171,1,0 +2020-05-07,Thomas,Nebraska,31171,1,0 +2020-05-08,Thomas,Nebraska,31171,1,0 +2020-05-09,Thomas,Nebraska,31171,1,0 +2020-05-10,Thomas,Nebraska,31171,1,0 +2020-05-11,Thomas,Nebraska,31171,1,0 +2020-05-12,Thomas,Nebraska,31171,1,0 +2020-05-13,Thomas,Nebraska,31171,1,0 +2020-05-14,Thomas,Nebraska,31171,1,0 +2020-05-15,Thomas,Nebraska,31171,1,0 +2020-05-16,Thomas,Nebraska,31171,1,0 +2020-05-17,Thomas,Nebraska,31171,1,0 +2020-05-18,Thomas,Nebraska,31171,1,0 +2020-05-19,Thomas,Nebraska,31171,1,0 +2020-05-20,Thomas,Nebraska,31171,1,0 +2020-05-21,Thomas,Nebraska,31171,1,0 +2020-05-22,Thomas,Nebraska,31171,1,0 +2020-05-23,Thomas,Nebraska,31171,1,0 +2020-05-24,Thomas,Nebraska,31171,1,0 +2020-05-25,Thomas,Nebraska,31171,1,0 +2020-05-26,Thomas,Nebraska,31171,1,0 +2020-05-27,Thomas,Nebraska,31171,1,0 +2020-05-28,Thomas,Nebraska,31171,1,0 +2020-05-29,Thomas,Nebraska,31171,1,0 +2020-05-30,Thomas,Nebraska,31171,1,0 +2020-05-31,Thomas,Nebraska,31171,1,0 +2020-06-01,Thomas,Nebraska,31171,1,0 +2020-06-02,Thomas,Nebraska,31171,1,0 +2020-06-03,Thomas,Nebraska,31171,1,0 +2020-06-04,Thomas,Nebraska,31171,1,0 +2020-06-05,Thomas,Nebraska,31171,1,0 +2020-06-06,Thomas,Nebraska,31171,1,0 +2020-06-07,Thomas,Nebraska,31171,1,0 +2020-06-08,Thomas,Nebraska,31171,1,0 +2020-06-09,Thomas,Nebraska,31171,1,0 +2020-06-10,Thomas,Nebraska,31171,1,0 +2020-06-11,Thomas,Nebraska,31171,1,0 +2020-06-12,Thomas,Nebraska,31171,1,0 +2020-06-13,Thomas,Nebraska,31171,1,0 +2020-06-14,Thomas,Nebraska,31171,1,0 +2020-06-15,Thomas,Nebraska,31171,1,0 +2020-06-16,Thomas,Nebraska,31171,1,0 +2020-06-17,Thomas,Nebraska,31171,1,0 +2020-06-18,Thomas,Nebraska,31171,1,0 +2020-06-19,Thomas,Nebraska,31171,1,0 +2020-06-20,Thomas,Nebraska,31171,1,0 +2020-06-21,Thomas,Nebraska,31171,1,0 +2020-06-22,Thomas,Nebraska,31171,1,0 +2020-06-23,Thomas,Nebraska,31171,1,0 +2020-06-24,Thomas,Nebraska,31171,1,0 +2020-06-25,Thomas,Nebraska,31171,1,0 +2020-06-26,Thomas,Nebraska,31171,1,0 +2020-06-27,Thomas,Nebraska,31171,1,0 +2020-06-28,Thomas,Nebraska,31171,1,0 +2020-06-29,Thomas,Nebraska,31171,1,0 +2020-06-30,Thomas,Nebraska,31171,1,0 +2020-07-01,Thomas,Nebraska,31171,1,0 +2020-07-02,Thomas,Nebraska,31171,1,0 +2020-07-03,Thomas,Nebraska,31171,1,0 +2020-07-04,Thomas,Nebraska,31171,1,0 +2020-07-05,Thomas,Nebraska,31171,1,0 +2020-07-06,Thomas,Nebraska,31171,1,0 +2020-07-07,Thomas,Nebraska,31171,1,0 +2020-07-08,Thomas,Nebraska,31171,1,0 +2020-07-09,Thomas,Nebraska,31171,1,0 +2020-04-25,Thurston,Nebraska,31173,1,0 +2020-04-26,Thurston,Nebraska,31173,1,0 +2020-04-27,Thurston,Nebraska,31173,1,0 +2020-04-28,Thurston,Nebraska,31173,3,0 +2020-04-29,Thurston,Nebraska,31173,4,0 +2020-04-30,Thurston,Nebraska,31173,4,0 +2020-05-01,Thurston,Nebraska,31173,5,0 +2020-05-02,Thurston,Nebraska,31173,6,0 +2020-05-03,Thurston,Nebraska,31173,6,0 +2020-05-04,Thurston,Nebraska,31173,6,0 +2020-05-05,Thurston,Nebraska,31173,7,0 +2020-05-06,Thurston,Nebraska,31173,7,0 +2020-05-07,Thurston,Nebraska,31173,9,0 +2020-05-08,Thurston,Nebraska,31173,12,0 +2020-05-09,Thurston,Nebraska,31173,12,0 +2020-05-10,Thurston,Nebraska,31173,13,0 +2020-05-11,Thurston,Nebraska,31173,13,0 +2020-05-12,Thurston,Nebraska,31173,13,0 +2020-05-13,Thurston,Nebraska,31173,19,0 +2020-05-14,Thurston,Nebraska,31173,19,0 +2020-05-15,Thurston,Nebraska,31173,19,0 +2020-05-16,Thurston,Nebraska,31173,19,0 +2020-05-17,Thurston,Nebraska,31173,19,0 +2020-05-18,Thurston,Nebraska,31173,19,0 +2020-05-19,Thurston,Nebraska,31173,19,0 +2020-05-20,Thurston,Nebraska,31173,20,0 +2020-05-21,Thurston,Nebraska,31173,23,0 +2020-05-22,Thurston,Nebraska,31173,24,0 +2020-05-23,Thurston,Nebraska,31173,24,0 +2020-05-24,Thurston,Nebraska,31173,28,0 +2020-05-25,Thurston,Nebraska,31173,30,0 +2020-05-26,Thurston,Nebraska,31173,34,0 +2020-05-27,Thurston,Nebraska,31173,37,0 +2020-05-28,Thurston,Nebraska,31173,38,0 +2020-05-29,Thurston,Nebraska,31173,41,0 +2020-05-30,Thurston,Nebraska,31173,44,0 +2020-05-31,Thurston,Nebraska,31173,46,0 +2020-06-01,Thurston,Nebraska,31173,45,0 +2020-06-02,Thurston,Nebraska,31173,49,0 +2020-06-03,Thurston,Nebraska,31173,49,0 +2020-06-04,Thurston,Nebraska,31173,50,0 +2020-06-05,Thurston,Nebraska,31173,49,0 +2020-06-06,Thurston,Nebraska,31173,50,0 +2020-06-07,Thurston,Nebraska,31173,51,0 +2020-06-08,Thurston,Nebraska,31173,55,0 +2020-06-09,Thurston,Nebraska,31173,56,0 +2020-06-10,Thurston,Nebraska,31173,61,0 +2020-06-11,Thurston,Nebraska,31173,63,0 +2020-06-12,Thurston,Nebraska,31173,63,1 +2020-06-13,Thurston,Nebraska,31173,65,1 +2020-06-14,Thurston,Nebraska,31173,66,1 +2020-06-15,Thurston,Nebraska,31173,66,1 +2020-06-16,Thurston,Nebraska,31173,68,1 +2020-06-17,Thurston,Nebraska,31173,71,1 +2020-06-18,Thurston,Nebraska,31173,71,1 +2020-06-19,Thurston,Nebraska,31173,72,1 +2020-06-20,Thurston,Nebraska,31173,72,1 +2020-06-21,Thurston,Nebraska,31173,72,1 +2020-06-22,Thurston,Nebraska,31173,72,1 +2020-06-23,Thurston,Nebraska,31173,73,1 +2020-06-24,Thurston,Nebraska,31173,73,1 +2020-06-25,Thurston,Nebraska,31173,83,1 +2020-06-26,Thurston,Nebraska,31173,84,1 +2020-06-27,Thurston,Nebraska,31173,84,1 +2020-06-28,Thurston,Nebraska,31173,84,1 +2020-06-29,Thurston,Nebraska,31173,85,1 +2020-06-30,Thurston,Nebraska,31173,85,1 +2020-07-01,Thurston,Nebraska,31173,84,1 +2020-07-02,Thurston,Nebraska,31173,126,1 +2020-07-03,Thurston,Nebraska,31173,126,1 +2020-07-04,Thurston,Nebraska,31173,127,1 +2020-07-05,Thurston,Nebraska,31173,128,1 +2020-07-06,Thurston,Nebraska,31173,128,1 +2020-07-07,Thurston,Nebraska,31173,166,1 +2020-07-08,Thurston,Nebraska,31173,167,1 +2020-07-09,Thurston,Nebraska,31173,167,2 +2020-04-27,Valley,Nebraska,31175,1,0 +2020-04-28,Valley,Nebraska,31175,1,0 +2020-04-29,Valley,Nebraska,31175,1,0 +2020-04-30,Valley,Nebraska,31175,1,0 +2020-05-01,Valley,Nebraska,31175,1,0 +2020-05-02,Valley,Nebraska,31175,1,0 +2020-05-03,Valley,Nebraska,31175,1,0 +2020-05-04,Valley,Nebraska,31175,1,0 +2020-05-05,Valley,Nebraska,31175,1,0 +2020-05-06,Valley,Nebraska,31175,1,0 +2020-05-07,Valley,Nebraska,31175,1,0 +2020-05-08,Valley,Nebraska,31175,1,0 +2020-05-09,Valley,Nebraska,31175,1,0 +2020-05-10,Valley,Nebraska,31175,1,0 +2020-05-11,Valley,Nebraska,31175,1,0 +2020-05-12,Valley,Nebraska,31175,1,0 +2020-05-13,Valley,Nebraska,31175,2,0 +2020-05-14,Valley,Nebraska,31175,3,0 +2020-05-15,Valley,Nebraska,31175,3,0 +2020-05-16,Valley,Nebraska,31175,3,0 +2020-05-17,Valley,Nebraska,31175,3,0 +2020-05-18,Valley,Nebraska,31175,3,0 +2020-05-19,Valley,Nebraska,31175,3,0 +2020-05-20,Valley,Nebraska,31175,3,0 +2020-05-21,Valley,Nebraska,31175,3,0 +2020-05-22,Valley,Nebraska,31175,3,0 +2020-05-23,Valley,Nebraska,31175,3,0 +2020-05-24,Valley,Nebraska,31175,3,0 +2020-05-25,Valley,Nebraska,31175,3,0 +2020-05-26,Valley,Nebraska,31175,3,0 +2020-05-27,Valley,Nebraska,31175,3,0 +2020-05-28,Valley,Nebraska,31175,3,0 +2020-05-29,Valley,Nebraska,31175,4,0 +2020-05-30,Valley,Nebraska,31175,4,0 +2020-05-31,Valley,Nebraska,31175,4,0 +2020-06-01,Valley,Nebraska,31175,4,0 +2020-06-02,Valley,Nebraska,31175,4,0 +2020-06-03,Valley,Nebraska,31175,4,0 +2020-06-04,Valley,Nebraska,31175,5,0 +2020-06-05,Valley,Nebraska,31175,5,0 +2020-06-06,Valley,Nebraska,31175,5,0 +2020-06-07,Valley,Nebraska,31175,5,0 +2020-06-08,Valley,Nebraska,31175,6,0 +2020-06-09,Valley,Nebraska,31175,6,0 +2020-06-10,Valley,Nebraska,31175,7,0 +2020-06-11,Valley,Nebraska,31175,7,0 +2020-06-12,Valley,Nebraska,31175,7,0 +2020-06-13,Valley,Nebraska,31175,7,0 +2020-06-14,Valley,Nebraska,31175,7,0 +2020-06-15,Valley,Nebraska,31175,7,0 +2020-06-16,Valley,Nebraska,31175,7,0 +2020-06-17,Valley,Nebraska,31175,7,0 +2020-06-18,Valley,Nebraska,31175,7,0 +2020-06-19,Valley,Nebraska,31175,7,0 +2020-06-20,Valley,Nebraska,31175,7,0 +2020-06-21,Valley,Nebraska,31175,7,0 +2020-06-22,Valley,Nebraska,31175,7,0 +2020-06-23,Valley,Nebraska,31175,7,0 +2020-06-24,Valley,Nebraska,31175,7,0 +2020-06-25,Valley,Nebraska,31175,8,0 +2020-06-26,Valley,Nebraska,31175,8,0 +2020-06-27,Valley,Nebraska,31175,8,0 +2020-06-28,Valley,Nebraska,31175,8,0 +2020-06-29,Valley,Nebraska,31175,8,0 +2020-06-30,Valley,Nebraska,31175,8,0 +2020-07-01,Valley,Nebraska,31175,8,0 +2020-07-02,Valley,Nebraska,31175,8,0 +2020-07-03,Valley,Nebraska,31175,8,0 +2020-07-04,Valley,Nebraska,31175,8,0 +2020-07-05,Valley,Nebraska,31175,8,0 +2020-07-06,Valley,Nebraska,31175,8,0 +2020-07-07,Valley,Nebraska,31175,8,0 +2020-07-08,Valley,Nebraska,31175,8,0 +2020-07-09,Valley,Nebraska,31175,8,0 +2020-03-23,Washington,Nebraska,31177,2,0 +2020-03-24,Washington,Nebraska,31177,2,0 +2020-03-25,Washington,Nebraska,31177,5,0 +2020-03-26,Washington,Nebraska,31177,5,0 +2020-03-27,Washington,Nebraska,31177,5,0 +2020-03-28,Washington,Nebraska,31177,5,0 +2020-03-29,Washington,Nebraska,31177,9,0 +2020-03-30,Washington,Nebraska,31177,19,0 +2020-03-31,Washington,Nebraska,31177,19,0 +2020-04-01,Washington,Nebraska,31177,19,0 +2020-04-02,Washington,Nebraska,31177,19,0 +2020-04-03,Washington,Nebraska,31177,19,0 +2020-04-04,Washington,Nebraska,31177,19,0 +2020-04-05,Washington,Nebraska,31177,20,0 +2020-04-06,Washington,Nebraska,31177,20,0 +2020-04-07,Washington,Nebraska,31177,20,0 +2020-04-08,Washington,Nebraska,31177,20,0 +2020-04-09,Washington,Nebraska,31177,20,0 +2020-04-10,Washington,Nebraska,31177,20,0 +2020-04-11,Washington,Nebraska,31177,20,0 +2020-04-12,Washington,Nebraska,31177,20,0 +2020-04-13,Washington,Nebraska,31177,22,1 +2020-04-14,Washington,Nebraska,31177,22,1 +2020-04-15,Washington,Nebraska,31177,22,1 +2020-04-16,Washington,Nebraska,31177,22,1 +2020-04-17,Washington,Nebraska,31177,20,1 +2020-04-18,Washington,Nebraska,31177,20,1 +2020-04-19,Washington,Nebraska,31177,20,1 +2020-04-20,Washington,Nebraska,31177,21,1 +2020-04-21,Washington,Nebraska,31177,21,1 +2020-04-22,Washington,Nebraska,31177,21,1 +2020-04-23,Washington,Nebraska,31177,22,1 +2020-04-24,Washington,Nebraska,31177,22,1 +2020-04-25,Washington,Nebraska,31177,22,1 +2020-04-26,Washington,Nebraska,31177,22,1 +2020-04-27,Washington,Nebraska,31177,22,1 +2020-04-28,Washington,Nebraska,31177,22,1 +2020-04-29,Washington,Nebraska,31177,22,1 +2020-04-30,Washington,Nebraska,31177,22,1 +2020-05-01,Washington,Nebraska,31177,22,1 +2020-05-02,Washington,Nebraska,31177,22,1 +2020-05-03,Washington,Nebraska,31177,22,1 +2020-05-04,Washington,Nebraska,31177,23,1 +2020-05-05,Washington,Nebraska,31177,23,1 +2020-05-06,Washington,Nebraska,31177,23,1 +2020-05-07,Washington,Nebraska,31177,23,1 +2020-05-08,Washington,Nebraska,31177,23,1 +2020-05-09,Washington,Nebraska,31177,23,1 +2020-05-10,Washington,Nebraska,31177,23,1 +2020-05-11,Washington,Nebraska,31177,23,1 +2020-05-12,Washington,Nebraska,31177,23,1 +2020-05-13,Washington,Nebraska,31177,23,1 +2020-05-14,Washington,Nebraska,31177,24,1 +2020-05-15,Washington,Nebraska,31177,24,1 +2020-05-16,Washington,Nebraska,31177,24,1 +2020-05-17,Washington,Nebraska,31177,24,1 +2020-05-18,Washington,Nebraska,31177,24,1 +2020-05-19,Washington,Nebraska,31177,24,1 +2020-05-20,Washington,Nebraska,31177,26,1 +2020-05-21,Washington,Nebraska,31177,26,1 +2020-05-22,Washington,Nebraska,31177,26,1 +2020-05-23,Washington,Nebraska,31177,26,1 +2020-05-24,Washington,Nebraska,31177,26,1 +2020-05-25,Washington,Nebraska,31177,26,1 +2020-05-26,Washington,Nebraska,31177,27,1 +2020-05-27,Washington,Nebraska,31177,28,1 +2020-05-28,Washington,Nebraska,31177,28,1 +2020-05-29,Washington,Nebraska,31177,29,1 +2020-05-30,Washington,Nebraska,31177,29,1 +2020-05-31,Washington,Nebraska,31177,30,1 +2020-06-01,Washington,Nebraska,31177,32,1 +2020-06-02,Washington,Nebraska,31177,32,1 +2020-06-03,Washington,Nebraska,31177,32,1 +2020-06-04,Washington,Nebraska,31177,33,1 +2020-06-05,Washington,Nebraska,31177,33,1 +2020-06-06,Washington,Nebraska,31177,34,1 +2020-06-07,Washington,Nebraska,31177,36,1 +2020-06-08,Washington,Nebraska,31177,36,1 +2020-06-09,Washington,Nebraska,31177,36,1 +2020-06-10,Washington,Nebraska,31177,36,1 +2020-06-11,Washington,Nebraska,31177,38,1 +2020-06-12,Washington,Nebraska,31177,39,1 +2020-06-13,Washington,Nebraska,31177,40,1 +2020-06-14,Washington,Nebraska,31177,41,1 +2020-06-15,Washington,Nebraska,31177,41,1 +2020-06-16,Washington,Nebraska,31177,41,1 +2020-06-17,Washington,Nebraska,31177,41,1 +2020-06-18,Washington,Nebraska,31177,41,1 +2020-06-19,Washington,Nebraska,31177,43,1 +2020-06-20,Washington,Nebraska,31177,45,1 +2020-06-21,Washington,Nebraska,31177,45,1 +2020-06-22,Washington,Nebraska,31177,45,1 +2020-06-23,Washington,Nebraska,31177,45,1 +2020-06-24,Washington,Nebraska,31177,45,1 +2020-06-25,Washington,Nebraska,31177,46,1 +2020-06-26,Washington,Nebraska,31177,46,1 +2020-06-27,Washington,Nebraska,31177,46,1 +2020-06-28,Washington,Nebraska,31177,46,1 +2020-06-29,Washington,Nebraska,31177,48,1 +2020-06-30,Washington,Nebraska,31177,50,1 +2020-07-01,Washington,Nebraska,31177,51,1 +2020-07-02,Washington,Nebraska,31177,51,1 +2020-07-03,Washington,Nebraska,31177,50,1 +2020-07-04,Washington,Nebraska,31177,50,1 +2020-07-05,Washington,Nebraska,31177,50,1 +2020-07-06,Washington,Nebraska,31177,50,1 +2020-07-07,Washington,Nebraska,31177,50,1 +2020-07-08,Washington,Nebraska,31177,53,1 +2020-07-09,Washington,Nebraska,31177,55,1 +2020-04-11,Wayne,Nebraska,31179,1,0 +2020-04-12,Wayne,Nebraska,31179,1,0 +2020-04-13,Wayne,Nebraska,31179,1,0 +2020-04-14,Wayne,Nebraska,31179,1,0 +2020-04-15,Wayne,Nebraska,31179,1,0 +2020-04-16,Wayne,Nebraska,31179,1,0 +2020-04-17,Wayne,Nebraska,31179,1,0 +2020-04-18,Wayne,Nebraska,31179,1,0 +2020-04-19,Wayne,Nebraska,31179,1,0 +2020-04-20,Wayne,Nebraska,31179,1,0 +2020-04-21,Wayne,Nebraska,31179,1,0 +2020-04-22,Wayne,Nebraska,31179,1,0 +2020-04-23,Wayne,Nebraska,31179,1,0 +2020-04-24,Wayne,Nebraska,31179,1,0 +2020-04-25,Wayne,Nebraska,31179,1,0 +2020-04-26,Wayne,Nebraska,31179,1,0 +2020-04-27,Wayne,Nebraska,31179,1,0 +2020-04-28,Wayne,Nebraska,31179,1,0 +2020-04-29,Wayne,Nebraska,31179,1,0 +2020-04-30,Wayne,Nebraska,31179,1,0 +2020-05-01,Wayne,Nebraska,31179,1,0 +2020-05-02,Wayne,Nebraska,31179,1,0 +2020-05-03,Wayne,Nebraska,31179,1,0 +2020-05-04,Wayne,Nebraska,31179,1,0 +2020-05-05,Wayne,Nebraska,31179,1,0 +2020-05-06,Wayne,Nebraska,31179,1,0 +2020-05-07,Wayne,Nebraska,31179,1,0 +2020-05-08,Wayne,Nebraska,31179,1,0 +2020-05-09,Wayne,Nebraska,31179,2,0 +2020-05-10,Wayne,Nebraska,31179,2,0 +2020-05-11,Wayne,Nebraska,31179,2,0 +2020-05-12,Wayne,Nebraska,31179,2,0 +2020-05-13,Wayne,Nebraska,31179,3,0 +2020-05-14,Wayne,Nebraska,31179,3,0 +2020-05-15,Wayne,Nebraska,31179,4,0 +2020-05-16,Wayne,Nebraska,31179,4,0 +2020-05-17,Wayne,Nebraska,31179,4,0 +2020-05-18,Wayne,Nebraska,31179,4,0 +2020-05-19,Wayne,Nebraska,31179,4,0 +2020-05-20,Wayne,Nebraska,31179,4,0 +2020-05-21,Wayne,Nebraska,31179,7,0 +2020-05-22,Wayne,Nebraska,31179,7,0 +2020-05-23,Wayne,Nebraska,31179,12,0 +2020-05-24,Wayne,Nebraska,31179,13,0 +2020-05-25,Wayne,Nebraska,31179,13,0 +2020-05-26,Wayne,Nebraska,31179,13,0 +2020-05-27,Wayne,Nebraska,31179,13,0 +2020-05-28,Wayne,Nebraska,31179,14,0 +2020-05-29,Wayne,Nebraska,31179,14,0 +2020-05-30,Wayne,Nebraska,31179,15,0 +2020-05-31,Wayne,Nebraska,31179,15,0 +2020-06-01,Wayne,Nebraska,31179,15,0 +2020-06-02,Wayne,Nebraska,31179,18,0 +2020-06-03,Wayne,Nebraska,31179,18,0 +2020-06-04,Wayne,Nebraska,31179,18,0 +2020-06-05,Wayne,Nebraska,31179,23,0 +2020-06-06,Wayne,Nebraska,31179,24,0 +2020-06-07,Wayne,Nebraska,31179,25,0 +2020-06-08,Wayne,Nebraska,31179,25,0 +2020-06-09,Wayne,Nebraska,31179,26,0 +2020-06-10,Wayne,Nebraska,31179,26,0 +2020-06-11,Wayne,Nebraska,31179,26,0 +2020-06-12,Wayne,Nebraska,31179,26,0 +2020-06-13,Wayne,Nebraska,31179,26,0 +2020-06-14,Wayne,Nebraska,31179,26,0 +2020-06-15,Wayne,Nebraska,31179,26,0 +2020-06-16,Wayne,Nebraska,31179,26,0 +2020-06-17,Wayne,Nebraska,31179,26,0 +2020-06-18,Wayne,Nebraska,31179,26,0 +2020-06-19,Wayne,Nebraska,31179,26,0 +2020-06-20,Wayne,Nebraska,31179,26,0 +2020-06-21,Wayne,Nebraska,31179,26,0 +2020-06-22,Wayne,Nebraska,31179,26,0 +2020-06-23,Wayne,Nebraska,31179,26,0 +2020-06-24,Wayne,Nebraska,31179,27,0 +2020-06-25,Wayne,Nebraska,31179,27,0 +2020-06-26,Wayne,Nebraska,31179,27,0 +2020-06-27,Wayne,Nebraska,31179,28,0 +2020-06-28,Wayne,Nebraska,31179,28,0 +2020-06-29,Wayne,Nebraska,31179,28,0 +2020-06-30,Wayne,Nebraska,31179,28,0 +2020-07-01,Wayne,Nebraska,31179,28,0 +2020-07-02,Wayne,Nebraska,31179,28,0 +2020-07-03,Wayne,Nebraska,31179,28,0 +2020-07-04,Wayne,Nebraska,31179,28,0 +2020-07-05,Wayne,Nebraska,31179,28,0 +2020-07-06,Wayne,Nebraska,31179,28,0 +2020-07-07,Wayne,Nebraska,31179,28,0 +2020-07-08,Wayne,Nebraska,31179,28,0 +2020-07-09,Wayne,Nebraska,31179,31,0 +2020-04-10,Webster,Nebraska,31181,1,0 +2020-04-11,Webster,Nebraska,31181,1,0 +2020-04-12,Webster,Nebraska,31181,1,0 +2020-04-13,Webster,Nebraska,31181,1,0 +2020-04-14,Webster,Nebraska,31181,1,0 +2020-04-15,Webster,Nebraska,31181,1,0 +2020-04-16,Webster,Nebraska,31181,2,0 +2020-04-17,Webster,Nebraska,31181,2,0 +2020-04-18,Webster,Nebraska,31181,2,0 +2020-04-19,Webster,Nebraska,31181,2,0 +2020-04-20,Webster,Nebraska,31181,2,0 +2020-04-21,Webster,Nebraska,31181,2,0 +2020-04-22,Webster,Nebraska,31181,2,0 +2020-04-23,Webster,Nebraska,31181,2,0 +2020-04-24,Webster,Nebraska,31181,3,0 +2020-04-25,Webster,Nebraska,31181,3,0 +2020-04-26,Webster,Nebraska,31181,3,0 +2020-04-27,Webster,Nebraska,31181,3,0 +2020-04-28,Webster,Nebraska,31181,3,0 +2020-04-29,Webster,Nebraska,31181,3,0 +2020-04-30,Webster,Nebraska,31181,4,0 +2020-05-01,Webster,Nebraska,31181,5,0 +2020-05-02,Webster,Nebraska,31181,5,0 +2020-05-03,Webster,Nebraska,31181,5,0 +2020-05-04,Webster,Nebraska,31181,5,0 +2020-05-05,Webster,Nebraska,31181,5,0 +2020-05-06,Webster,Nebraska,31181,5,0 +2020-05-07,Webster,Nebraska,31181,5,0 +2020-05-08,Webster,Nebraska,31181,5,0 +2020-05-09,Webster,Nebraska,31181,5,0 +2020-05-10,Webster,Nebraska,31181,5,0 +2020-05-11,Webster,Nebraska,31181,5,0 +2020-05-12,Webster,Nebraska,31181,5,0 +2020-05-13,Webster,Nebraska,31181,5,0 +2020-05-14,Webster,Nebraska,31181,5,0 +2020-05-15,Webster,Nebraska,31181,5,0 +2020-05-16,Webster,Nebraska,31181,5,0 +2020-05-17,Webster,Nebraska,31181,5,0 +2020-05-18,Webster,Nebraska,31181,5,0 +2020-05-19,Webster,Nebraska,31181,5,0 +2020-05-20,Webster,Nebraska,31181,5,0 +2020-05-21,Webster,Nebraska,31181,5,0 +2020-05-22,Webster,Nebraska,31181,5,0 +2020-05-23,Webster,Nebraska,31181,5,0 +2020-05-24,Webster,Nebraska,31181,5,0 +2020-05-25,Webster,Nebraska,31181,5,0 +2020-05-26,Webster,Nebraska,31181,5,0 +2020-05-27,Webster,Nebraska,31181,5,0 +2020-05-28,Webster,Nebraska,31181,5,0 +2020-05-29,Webster,Nebraska,31181,5,0 +2020-05-30,Webster,Nebraska,31181,5,0 +2020-05-31,Webster,Nebraska,31181,5,0 +2020-06-01,Webster,Nebraska,31181,5,0 +2020-06-02,Webster,Nebraska,31181,5,0 +2020-06-03,Webster,Nebraska,31181,5,0 +2020-06-04,Webster,Nebraska,31181,5,0 +2020-06-05,Webster,Nebraska,31181,5,0 +2020-06-06,Webster,Nebraska,31181,5,0 +2020-06-07,Webster,Nebraska,31181,5,0 +2020-06-08,Webster,Nebraska,31181,5,0 +2020-06-09,Webster,Nebraska,31181,5,0 +2020-06-10,Webster,Nebraska,31181,5,0 +2020-06-11,Webster,Nebraska,31181,6,0 +2020-06-12,Webster,Nebraska,31181,6,0 +2020-06-13,Webster,Nebraska,31181,6,0 +2020-06-14,Webster,Nebraska,31181,6,0 +2020-06-15,Webster,Nebraska,31181,6,0 +2020-06-16,Webster,Nebraska,31181,6,0 +2020-06-17,Webster,Nebraska,31181,6,0 +2020-06-18,Webster,Nebraska,31181,6,0 +2020-06-19,Webster,Nebraska,31181,6,0 +2020-06-20,Webster,Nebraska,31181,6,0 +2020-06-21,Webster,Nebraska,31181,6,0 +2020-06-22,Webster,Nebraska,31181,6,0 +2020-06-23,Webster,Nebraska,31181,6,0 +2020-06-24,Webster,Nebraska,31181,6,0 +2020-06-25,Webster,Nebraska,31181,6,0 +2020-06-26,Webster,Nebraska,31181,6,0 +2020-06-27,Webster,Nebraska,31181,6,0 +2020-06-28,Webster,Nebraska,31181,6,0 +2020-06-29,Webster,Nebraska,31181,6,0 +2020-06-30,Webster,Nebraska,31181,6,0 +2020-07-01,Webster,Nebraska,31181,6,0 +2020-07-02,Webster,Nebraska,31181,7,0 +2020-07-03,Webster,Nebraska,31181,7,0 +2020-07-04,Webster,Nebraska,31181,7,0 +2020-07-05,Webster,Nebraska,31181,7,0 +2020-07-06,Webster,Nebraska,31181,7,0 +2020-07-07,Webster,Nebraska,31181,7,0 +2020-07-08,Webster,Nebraska,31181,7,0 +2020-07-09,Webster,Nebraska,31181,7,0 +2020-03-30,York,Nebraska,31185,1,0 +2020-03-31,York,Nebraska,31185,1,0 +2020-04-01,York,Nebraska,31185,1,0 +2020-04-02,York,Nebraska,31185,1,0 +2020-04-03,York,Nebraska,31185,1,0 +2020-04-04,York,Nebraska,31185,1,0 +2020-04-05,York,Nebraska,31185,1,0 +2020-04-06,York,Nebraska,31185,1,0 +2020-04-07,York,Nebraska,31185,2,0 +2020-04-08,York,Nebraska,31185,2,0 +2020-04-09,York,Nebraska,31185,2,0 +2020-04-10,York,Nebraska,31185,3,0 +2020-04-11,York,Nebraska,31185,3,0 +2020-04-12,York,Nebraska,31185,4,0 +2020-04-13,York,Nebraska,31185,4,0 +2020-04-14,York,Nebraska,31185,5,0 +2020-04-15,York,Nebraska,31185,5,0 +2020-04-16,York,Nebraska,31185,6,0 +2020-04-17,York,Nebraska,31185,6,0 +2020-04-18,York,Nebraska,31185,7,0 +2020-04-19,York,Nebraska,31185,7,0 +2020-04-20,York,Nebraska,31185,7,0 +2020-04-21,York,Nebraska,31185,7,0 +2020-04-22,York,Nebraska,31185,7,0 +2020-04-23,York,Nebraska,31185,8,0 +2020-04-24,York,Nebraska,31185,9,0 +2020-04-25,York,Nebraska,31185,9,0 +2020-04-26,York,Nebraska,31185,11,0 +2020-04-27,York,Nebraska,31185,11,0 +2020-04-28,York,Nebraska,31185,11,0 +2020-04-29,York,Nebraska,31185,11,0 +2020-04-30,York,Nebraska,31185,12,0 +2020-05-01,York,Nebraska,31185,12,0 +2020-05-02,York,Nebraska,31185,12,0 +2020-05-03,York,Nebraska,31185,12,0 +2020-05-04,York,Nebraska,31185,13,0 +2020-05-05,York,Nebraska,31185,15,0 +2020-05-06,York,Nebraska,31185,15,0 +2020-05-07,York,Nebraska,31185,15,0 +2020-05-08,York,Nebraska,31185,15,0 +2020-05-09,York,Nebraska,31185,17,0 +2020-05-10,York,Nebraska,31185,17,0 +2020-05-11,York,Nebraska,31185,25,0 +2020-05-12,York,Nebraska,31185,25,0 +2020-05-13,York,Nebraska,31185,25,0 +2020-05-14,York,Nebraska,31185,27,0 +2020-05-15,York,Nebraska,31185,28,0 +2020-05-16,York,Nebraska,31185,29,0 +2020-05-17,York,Nebraska,31185,30,0 +2020-05-18,York,Nebraska,31185,30,0 +2020-05-19,York,Nebraska,31185,30,0 +2020-05-20,York,Nebraska,31185,30,0 +2020-05-21,York,Nebraska,31185,30,0 +2020-05-22,York,Nebraska,31185,35,0 +2020-05-23,York,Nebraska,31185,35,0 +2020-05-24,York,Nebraska,31185,35,0 +2020-05-25,York,Nebraska,31185,35,0 +2020-05-26,York,Nebraska,31185,35,0 +2020-05-27,York,Nebraska,31185,35,0 +2020-05-28,York,Nebraska,31185,35,0 +2020-05-29,York,Nebraska,31185,36,0 +2020-05-30,York,Nebraska,31185,36,0 +2020-05-31,York,Nebraska,31185,36,0 +2020-06-01,York,Nebraska,31185,36,0 +2020-06-02,York,Nebraska,31185,36,0 +2020-06-03,York,Nebraska,31185,36,0 +2020-06-04,York,Nebraska,31185,36,0 +2020-06-05,York,Nebraska,31185,37,0 +2020-06-06,York,Nebraska,31185,36,0 +2020-06-07,York,Nebraska,31185,37,0 +2020-06-08,York,Nebraska,31185,37,0 +2020-06-09,York,Nebraska,31185,37,0 +2020-06-10,York,Nebraska,31185,37,0 +2020-06-11,York,Nebraska,31185,37,0 +2020-06-12,York,Nebraska,31185,36,0 +2020-06-13,York,Nebraska,31185,36,0 +2020-06-14,York,Nebraska,31185,37,0 +2020-06-15,York,Nebraska,31185,37,0 +2020-06-16,York,Nebraska,31185,37,0 +2020-06-17,York,Nebraska,31185,37,0 +2020-06-18,York,Nebraska,31185,37,0 +2020-06-19,York,Nebraska,31185,39,0 +2020-06-20,York,Nebraska,31185,40,0 +2020-06-21,York,Nebraska,31185,40,0 +2020-06-22,York,Nebraska,31185,40,0 +2020-06-23,York,Nebraska,31185,41,0 +2020-06-24,York,Nebraska,31185,41,0 +2020-06-25,York,Nebraska,31185,41,0 +2020-06-26,York,Nebraska,31185,41,0 +2020-06-27,York,Nebraska,31185,41,0 +2020-06-28,York,Nebraska,31185,41,0 +2020-06-29,York,Nebraska,31185,41,0 +2020-06-30,York,Nebraska,31185,41,0 +2020-07-01,York,Nebraska,31185,42,0 +2020-07-02,York,Nebraska,31185,44,0 +2020-07-03,York,Nebraska,31185,45,0 +2020-07-04,York,Nebraska,31185,45,0 +2020-07-05,York,Nebraska,31185,45,0 +2020-07-06,York,Nebraska,31185,45,0 +2020-07-07,York,Nebraska,31185,47,0 +2020-07-08,York,Nebraska,31185,49,0 +2020-07-09,York,Nebraska,31185,50,0 +2020-04-13,Churchill,Nevada,32001,1,0 +2020-04-14,Churchill,Nevada,32001,1,0 +2020-04-15,Churchill,Nevada,32001,1,0 +2020-04-16,Churchill,Nevada,32001,1,0 +2020-04-17,Churchill,Nevada,32001,3,0 +2020-04-18,Churchill,Nevada,32001,3,0 +2020-04-19,Churchill,Nevada,32001,3,0 +2020-04-20,Churchill,Nevada,32001,3,1 +2020-04-21,Churchill,Nevada,32001,3,1 +2020-04-22,Churchill,Nevada,32001,3,1 +2020-04-23,Churchill,Nevada,32001,3,1 +2020-04-24,Churchill,Nevada,32001,3,1 +2020-04-25,Churchill,Nevada,32001,3,1 +2020-04-26,Churchill,Nevada,32001,3,1 +2020-04-27,Churchill,Nevada,32001,3,1 +2020-04-28,Churchill,Nevada,32001,3,1 +2020-04-29,Churchill,Nevada,32001,3,1 +2020-04-30,Churchill,Nevada,32001,3,1 +2020-05-01,Churchill,Nevada,32001,3,1 +2020-05-02,Churchill,Nevada,32001,3,1 +2020-05-03,Churchill,Nevada,32001,3,1 +2020-05-04,Churchill,Nevada,32001,3,1 +2020-05-05,Churchill,Nevada,32001,5,1 +2020-05-06,Churchill,Nevada,32001,5,1 +2020-05-07,Churchill,Nevada,32001,5,1 +2020-05-08,Churchill,Nevada,32001,5,1 +2020-05-09,Churchill,Nevada,32001,5,1 +2020-05-10,Churchill,Nevada,32001,5,1 +2020-05-11,Churchill,Nevada,32001,5,1 +2020-05-12,Churchill,Nevada,32001,6,1 +2020-05-13,Churchill,Nevada,32001,6,1 +2020-05-14,Churchill,Nevada,32001,6,1 +2020-05-15,Churchill,Nevada,32001,6,1 +2020-05-16,Churchill,Nevada,32001,6,1 +2020-05-17,Churchill,Nevada,32001,6,1 +2020-05-18,Churchill,Nevada,32001,7,1 +2020-05-19,Churchill,Nevada,32001,7,1 +2020-05-20,Churchill,Nevada,32001,7,1 +2020-05-21,Churchill,Nevada,32001,7,1 +2020-05-22,Churchill,Nevada,32001,7,1 +2020-05-23,Churchill,Nevada,32001,7,1 +2020-05-24,Churchill,Nevada,32001,12,1 +2020-05-25,Churchill,Nevada,32001,12,1 +2020-05-26,Churchill,Nevada,32001,7,1 +2020-05-27,Churchill,Nevada,32001,7,1 +2020-05-28,Churchill,Nevada,32001,7,1 +2020-05-29,Churchill,Nevada,32001,7,1 +2020-05-30,Churchill,Nevada,32001,7,1 +2020-05-31,Churchill,Nevada,32001,7,1 +2020-06-01,Churchill,Nevada,32001,7,1 +2020-06-02,Churchill,Nevada,32001,8,1 +2020-06-03,Churchill,Nevada,32001,8,1 +2020-06-04,Churchill,Nevada,32001,10,1 +2020-06-05,Churchill,Nevada,32001,10,1 +2020-06-06,Churchill,Nevada,32001,10,1 +2020-06-07,Churchill,Nevada,32001,10,1 +2020-06-08,Churchill,Nevada,32001,10,1 +2020-06-09,Churchill,Nevada,32001,10,1 +2020-06-10,Churchill,Nevada,32001,10,1 +2020-06-11,Churchill,Nevada,32001,10,1 +2020-06-12,Churchill,Nevada,32001,10,1 +2020-06-13,Churchill,Nevada,32001,10,1 +2020-06-14,Churchill,Nevada,32001,10,1 +2020-06-15,Churchill,Nevada,32001,10,1 +2020-06-16,Churchill,Nevada,32001,10,1 +2020-06-17,Churchill,Nevada,32001,10,1 +2020-06-18,Churchill,Nevada,32001,10,1 +2020-06-19,Churchill,Nevada,32001,10,1 +2020-06-20,Churchill,Nevada,32001,10,1 +2020-06-21,Churchill,Nevada,32001,10,1 +2020-06-22,Churchill,Nevada,32001,10,1 +2020-06-23,Churchill,Nevada,32001,11,1 +2020-06-24,Churchill,Nevada,32001,11,1 +2020-06-25,Churchill,Nevada,32001,11,1 +2020-06-26,Churchill,Nevada,32001,11,1 +2020-06-27,Churchill,Nevada,32001,10,1 +2020-06-28,Churchill,Nevada,32001,10,1 +2020-06-29,Churchill,Nevada,32001,11,1 +2020-06-30,Churchill,Nevada,32001,11,1 +2020-07-01,Churchill,Nevada,32001,12,1 +2020-07-02,Churchill,Nevada,32001,13,1 +2020-07-03,Churchill,Nevada,32001,14,1 +2020-07-04,Churchill,Nevada,32001,16,1 +2020-07-05,Churchill,Nevada,32001,18,1 +2020-07-06,Churchill,Nevada,32001,18,1 +2020-07-07,Churchill,Nevada,32001,20,1 +2020-07-08,Churchill,Nevada,32001,20,1 +2020-07-09,Churchill,Nevada,32001,26,1 +2020-03-05,Clark,Nevada,32003,1,0 +2020-03-06,Clark,Nevada,32003,1,0 +2020-03-07,Clark,Nevada,32003,1,0 +2020-03-08,Clark,Nevada,32003,2,0 +2020-03-09,Clark,Nevada,32003,2,0 +2020-03-10,Clark,Nevada,32003,2,0 +2020-03-11,Clark,Nevada,32003,5,0 +2020-03-12,Clark,Nevada,32003,8,0 +2020-03-13,Clark,Nevada,32003,16,0 +2020-03-14,Clark,Nevada,32003,16,0 +2020-03-15,Clark,Nevada,32003,16,0 +2020-03-16,Clark,Nevada,32003,35,1 +2020-03-17,Clark,Nevada,32003,42,1 +2020-03-18,Clark,Nevada,32003,69,1 +2020-03-19,Clark,Nevada,32003,74,1 +2020-03-20,Clark,Nevada,32003,126,2 +2020-03-21,Clark,Nevada,32003,126,2 +2020-03-22,Clark,Nevada,32003,126,2 +2020-03-23,Clark,Nevada,32003,151,4 +2020-03-24,Clark,Nevada,32003,249,6 +2020-03-25,Clark,Nevada,32003,249,6 +2020-03-26,Clark,Nevada,32003,350,10 +2020-03-27,Clark,Nevada,32003,443,10 +2020-03-28,Clark,Nevada,32003,528,14 +2020-03-29,Clark,Nevada,32003,528,14 +2020-03-30,Clark,Nevada,32003,753,15 +2020-03-31,Clark,Nevada,32003,869,23 +2020-04-01,Clark,Nevada,32003,961,28 +2020-04-02,Clark,Nevada,32003,1125,34 +2020-04-03,Clark,Nevada,32003,1279,39 +2020-04-04,Clark,Nevada,32003,1418,41 +2020-04-05,Clark,Nevada,32003,1519,41 +2020-04-06,Clark,Nevada,32003,1608,41 +2020-04-07,Clark,Nevada,32003,1734,54 +2020-04-08,Clark,Nevada,32003,1878,65 +2020-04-09,Clark,Nevada,32003,2009,71 +2020-04-10,Clark,Nevada,32003,2144,75 +2020-04-11,Clark,Nevada,32003,2258,96 +2020-04-12,Clark,Nevada,32003,2324,100 +2020-04-13,Clark,Nevada,32003,2444,101 +2020-04-14,Clark,Nevada,32003,2509,106 +2020-04-15,Clark,Nevada,32003,2559,115 +2020-04-16,Clark,Nevada,32003,2625,121 +2020-04-17,Clark,Nevada,32003,2738,124 +2020-04-18,Clark,Nevada,32003,2882,133 +2020-04-19,Clark,Nevada,32003,2940,137 +2020-04-20,Clark,Nevada,32003,2998,137 +2020-04-21,Clark,Nevada,32003,3099,141 +2020-04-22,Clark,Nevada,32003,3218,150 +2020-04-23,Clark,Nevada,32003,3314,163 +2020-04-24,Clark,Nevada,32003,3443,168 +2020-04-25,Clark,Nevada,32003,3570,174 +2020-04-26,Clark,Nevada,32003,3665,174 +2020-04-27,Clark,Nevada,32003,3717,174 +2020-04-28,Clark,Nevada,32003,3793,186 +2020-04-29,Clark,Nevada,32003,3891,196 +2020-04-30,Clark,Nevada,32003,3979,202 +2020-05-01,Clark,Nevada,32003,4118,206 +2020-05-02,Clark,Nevada,32003,4225,215 +2020-05-03,Clark,Nevada,32003,4274,218 +2020-05-04,Clark,Nevada,32003,4411,223 +2020-05-05,Clark,Nevada,32003,4411,226 +2020-05-06,Clark,Nevada,32003,4473,238 +2020-05-07,Clark,Nevada,32003,4573,245 +2020-05-08,Clark,Nevada,32003,4616,253 +2020-05-09,Clark,Nevada,32003,4704,256 +2020-05-10,Clark,Nevada,32003,4750,260 +2020-05-11,Clark,Nevada,32003,4762,260 +2020-05-12,Clark,Nevada,32003,4869,267 +2020-05-13,Clark,Nevada,32003,5045,275 +2020-05-14,Clark,Nevada,32003,5144,282 +2020-05-15,Clark,Nevada,32003,5235,291 +2020-05-16,Clark,Nevada,32003,5298,293 +2020-05-17,Clark,Nevada,32003,5366,296 +2020-05-18,Clark,Nevada,32003,5463,296 +2020-05-19,Clark,Nevada,32003,5536,304 +2020-05-20,Clark,Nevada,32003,5650,314 +2020-05-21,Clark,Nevada,32003,5734,320 +2020-05-22,Clark,Nevada,32003,5815,322 +2020-05-23,Clark,Nevada,32003,6048,329 +2020-05-24,Clark,Nevada,32003,6140,331 +2020-05-25,Clark,Nevada,32003,6182,331 +2020-05-26,Clark,Nevada,32003,6226,331 +2020-05-27,Clark,Nevada,32003,6287,336 +2020-05-28,Clark,Nevada,32003,6352,342 +2020-05-29,Clark,Nevada,32003,6457,343 +2020-05-30,Clark,Nevada,32003,6579,344 +2020-05-31,Clark,Nevada,32003,6657,346 +2020-06-01,Clark,Nevada,32003,6719,346 +2020-06-02,Clark,Nevada,32003,6845,346 +2020-06-03,Clark,Nevada,32003,6923,355 +2020-06-04,Clark,Nevada,32003,7056,355 +2020-06-05,Clark,Nevada,32003,7186,357 +2020-06-06,Clark,Nevada,32003,7331,358 +2020-06-07,Clark,Nevada,32003,7483,359 +2020-06-08,Clark,Nevada,32003,7592,363 +2020-06-09,Clark,Nevada,32003,7804,365 +2020-06-10,Clark,Nevada,32003,7915,367 +2020-06-11,Clark,Nevada,32003,8100,375 +2020-06-12,Clark,Nevada,32003,8314,377 +2020-06-13,Clark,Nevada,32003,8556,377 +2020-06-14,Clark,Nevada,32003,8735,378 +2020-06-15,Clark,Nevada,32003,8815,379 +2020-06-16,Clark,Nevada,32003,9157,380 +2020-06-17,Clark,Nevada,32003,9318,386 +2020-06-18,Clark,Nevada,32003,9535,387 +2020-06-19,Clark,Nevada,32003,9852,390 +2020-06-20,Clark,Nevada,32003,10259,397 +2020-06-21,Clark,Nevada,32003,10486,398 +2020-06-22,Clark,Nevada,32003,10774,400 +2020-06-23,Clark,Nevada,32003,11186,402 +2020-06-24,Clark,Nevada,32003,11481,404 +2020-06-25,Clark,Nevada,32003,11878,405 +2020-06-26,Clark,Nevada,32003,12204,408 +2020-06-27,Clark,Nevada,32003,13174,410 +2020-06-28,Clark,Nevada,32003,13910,410 +2020-06-29,Clark,Nevada,32003,14607,414 +2020-06-30,Clark,Nevada,32003,15095,416 +2020-07-01,Clark,Nevada,32003,15604,420 +2020-07-02,Clark,Nevada,32003,16180,432 +2020-07-03,Clark,Nevada,32003,17028,435 +2020-07-04,Clark,Nevada,32003,17707,435 +2020-07-05,Clark,Nevada,32003,18442,439 +2020-07-06,Clark,Nevada,32003,18818,439 +2020-07-07,Clark,Nevada,32003,19654,450 +2020-07-08,Clark,Nevada,32003,20126,454 +2020-07-09,Clark,Nevada,32003,20622,468 +2020-03-23,Douglas,Nevada,32005,1,0 +2020-03-24,Douglas,Nevada,32005,2,0 +2020-03-25,Douglas,Nevada,32005,3,0 +2020-03-26,Douglas,Nevada,32005,3,0 +2020-03-27,Douglas,Nevada,32005,4,0 +2020-03-28,Douglas,Nevada,32005,5,0 +2020-03-29,Douglas,Nevada,32005,5,0 +2020-03-30,Douglas,Nevada,32005,5,0 +2020-03-31,Douglas,Nevada,32005,5,0 +2020-04-01,Douglas,Nevada,32005,6,0 +2020-04-02,Douglas,Nevada,32005,6,0 +2020-04-03,Douglas,Nevada,32005,7,0 +2020-04-04,Douglas,Nevada,32005,7,0 +2020-04-05,Douglas,Nevada,32005,7,0 +2020-04-06,Douglas,Nevada,32005,7,0 +2020-04-07,Douglas,Nevada,32005,8,0 +2020-04-08,Douglas,Nevada,32005,9,0 +2020-04-09,Douglas,Nevada,32005,9,0 +2020-04-10,Douglas,Nevada,32005,10,0 +2020-04-11,Douglas,Nevada,32005,10,0 +2020-04-12,Douglas,Nevada,32005,10,0 +2020-04-13,Douglas,Nevada,32005,10,0 +2020-04-14,Douglas,Nevada,32005,10,0 +2020-04-15,Douglas,Nevada,32005,13,0 +2020-04-16,Douglas,Nevada,32005,13,0 +2020-04-17,Douglas,Nevada,32005,14,0 +2020-04-18,Douglas,Nevada,32005,15,0 +2020-04-19,Douglas,Nevada,32005,15,0 +2020-04-20,Douglas,Nevada,32005,15,0 +2020-04-21,Douglas,Nevada,32005,15,0 +2020-04-22,Douglas,Nevada,32005,15,0 +2020-04-23,Douglas,Nevada,32005,17,0 +2020-04-24,Douglas,Nevada,32005,17,0 +2020-04-25,Douglas,Nevada,32005,18,0 +2020-04-26,Douglas,Nevada,32005,19,0 +2020-04-27,Douglas,Nevada,32005,19,0 +2020-04-28,Douglas,Nevada,32005,19,0 +2020-04-29,Douglas,Nevada,32005,19,0 +2020-04-30,Douglas,Nevada,32005,19,0 +2020-05-01,Douglas,Nevada,32005,20,0 +2020-05-02,Douglas,Nevada,32005,21,0 +2020-05-03,Douglas,Nevada,32005,21,0 +2020-05-04,Douglas,Nevada,32005,21,0 +2020-05-05,Douglas,Nevada,32005,22,0 +2020-05-06,Douglas,Nevada,32005,22,0 +2020-05-07,Douglas,Nevada,32005,22,0 +2020-05-08,Douglas,Nevada,32005,23,0 +2020-05-09,Douglas,Nevada,32005,23,0 +2020-05-10,Douglas,Nevada,32005,24,0 +2020-05-11,Douglas,Nevada,32005,24,0 +2020-05-12,Douglas,Nevada,32005,24,0 +2020-05-13,Douglas,Nevada,32005,24,0 +2020-05-14,Douglas,Nevada,32005,24,0 +2020-05-15,Douglas,Nevada,32005,24,0 +2020-05-16,Douglas,Nevada,32005,24,0 +2020-05-17,Douglas,Nevada,32005,24,0 +2020-05-18,Douglas,Nevada,32005,25,0 +2020-05-19,Douglas,Nevada,32005,25,0 +2020-05-20,Douglas,Nevada,32005,26,0 +2020-05-21,Douglas,Nevada,32005,26,0 +2020-05-22,Douglas,Nevada,32005,26,0 +2020-05-23,Douglas,Nevada,32005,26,0 +2020-05-24,Douglas,Nevada,32005,27,0 +2020-05-25,Douglas,Nevada,32005,27,0 +2020-05-26,Douglas,Nevada,32005,28,0 +2020-05-27,Douglas,Nevada,32005,29,0 +2020-05-28,Douglas,Nevada,32005,30,0 +2020-05-29,Douglas,Nevada,32005,30,0 +2020-05-30,Douglas,Nevada,32005,30,0 +2020-05-31,Douglas,Nevada,32005,31,0 +2020-06-01,Douglas,Nevada,32005,32,0 +2020-06-02,Douglas,Nevada,32005,32,0 +2020-06-03,Douglas,Nevada,32005,32,0 +2020-06-04,Douglas,Nevada,32005,35,0 +2020-06-05,Douglas,Nevada,32005,37,0 +2020-06-06,Douglas,Nevada,32005,38,0 +2020-06-07,Douglas,Nevada,32005,38,0 +2020-06-08,Douglas,Nevada,32005,38,0 +2020-06-09,Douglas,Nevada,32005,38,0 +2020-06-10,Douglas,Nevada,32005,38,0 +2020-06-11,Douglas,Nevada,32005,39,0 +2020-06-12,Douglas,Nevada,32005,39,0 +2020-06-13,Douglas,Nevada,32005,39,0 +2020-06-14,Douglas,Nevada,32005,42,0 +2020-06-15,Douglas,Nevada,32005,46,0 +2020-06-16,Douglas,Nevada,32005,47,0 +2020-06-17,Douglas,Nevada,32005,47,0 +2020-06-18,Douglas,Nevada,32005,47,0 +2020-06-19,Douglas,Nevada,32005,48,0 +2020-06-20,Douglas,Nevada,32005,49,0 +2020-06-21,Douglas,Nevada,32005,49,0 +2020-06-22,Douglas,Nevada,32005,52,0 +2020-06-23,Douglas,Nevada,32005,54,0 +2020-06-24,Douglas,Nevada,32005,58,0 +2020-06-25,Douglas,Nevada,32005,60,0 +2020-06-26,Douglas,Nevada,32005,60,0 +2020-06-27,Douglas,Nevada,32005,62,0 +2020-06-28,Douglas,Nevada,32005,64,0 +2020-06-29,Douglas,Nevada,32005,64,0 +2020-06-30,Douglas,Nevada,32005,65,0 +2020-07-01,Douglas,Nevada,32005,69,0 +2020-07-02,Douglas,Nevada,32005,70,0 +2020-07-03,Douglas,Nevada,32005,70,0 +2020-07-04,Douglas,Nevada,32005,72,0 +2020-07-05,Douglas,Nevada,32005,74,0 +2020-07-06,Douglas,Nevada,32005,76,0 +2020-07-07,Douglas,Nevada,32005,79,0 +2020-07-08,Douglas,Nevada,32005,79,0 +2020-07-09,Douglas,Nevada,32005,80,0 +2020-03-19,Elko,Nevada,32007,1,0 +2020-03-20,Elko,Nevada,32007,2,0 +2020-03-21,Elko,Nevada,32007,2,0 +2020-03-22,Elko,Nevada,32007,2,0 +2020-03-23,Elko,Nevada,32007,2,0 +2020-03-24,Elko,Nevada,32007,2,0 +2020-03-25,Elko,Nevada,32007,2,0 +2020-03-26,Elko,Nevada,32007,2,0 +2020-03-27,Elko,Nevada,32007,2,0 +2020-03-28,Elko,Nevada,32007,3,0 +2020-03-29,Elko,Nevada,32007,3,0 +2020-03-30,Elko,Nevada,32007,5,0 +2020-03-31,Elko,Nevada,32007,5,0 +2020-04-01,Elko,Nevada,32007,5,0 +2020-04-02,Elko,Nevada,32007,5,0 +2020-04-03,Elko,Nevada,32007,7,0 +2020-04-04,Elko,Nevada,32007,7,1 +2020-04-05,Elko,Nevada,32007,7,1 +2020-04-06,Elko,Nevada,32007,7,1 +2020-04-07,Elko,Nevada,32007,8,1 +2020-04-08,Elko,Nevada,32007,9,1 +2020-04-09,Elko,Nevada,32007,9,1 +2020-04-10,Elko,Nevada,32007,11,1 +2020-04-11,Elko,Nevada,32007,11,1 +2020-04-12,Elko,Nevada,32007,11,1 +2020-04-13,Elko,Nevada,32007,11,1 +2020-04-14,Elko,Nevada,32007,11,1 +2020-04-15,Elko,Nevada,32007,11,1 +2020-04-16,Elko,Nevada,32007,11,1 +2020-04-17,Elko,Nevada,32007,12,1 +2020-04-18,Elko,Nevada,32007,12,1 +2020-04-19,Elko,Nevada,32007,12,1 +2020-04-20,Elko,Nevada,32007,12,1 +2020-04-21,Elko,Nevada,32007,12,1 +2020-04-22,Elko,Nevada,32007,12,1 +2020-04-23,Elko,Nevada,32007,12,1 +2020-04-24,Elko,Nevada,32007,12,1 +2020-04-25,Elko,Nevada,32007,12,1 +2020-04-26,Elko,Nevada,32007,12,1 +2020-04-27,Elko,Nevada,32007,12,1 +2020-04-28,Elko,Nevada,32007,15,1 +2020-04-29,Elko,Nevada,32007,15,1 +2020-04-30,Elko,Nevada,32007,15,1 +2020-05-01,Elko,Nevada,32007,15,1 +2020-05-02,Elko,Nevada,32007,15,1 +2020-05-03,Elko,Nevada,32007,15,1 +2020-05-04,Elko,Nevada,32007,15,1 +2020-05-05,Elko,Nevada,32007,15,1 +2020-05-06,Elko,Nevada,32007,15,1 +2020-05-07,Elko,Nevada,32007,15,1 +2020-05-08,Elko,Nevada,32007,15,1 +2020-05-09,Elko,Nevada,32007,15,1 +2020-05-10,Elko,Nevada,32007,15,1 +2020-05-11,Elko,Nevada,32007,18,1 +2020-05-12,Elko,Nevada,32007,18,1 +2020-05-13,Elko,Nevada,32007,18,1 +2020-05-14,Elko,Nevada,32007,18,1 +2020-05-15,Elko,Nevada,32007,18,1 +2020-05-16,Elko,Nevada,32007,20,1 +2020-05-17,Elko,Nevada,32007,20,1 +2020-05-18,Elko,Nevada,32007,21,1 +2020-05-19,Elko,Nevada,32007,22,1 +2020-05-20,Elko,Nevada,32007,22,1 +2020-05-21,Elko,Nevada,32007,22,1 +2020-05-22,Elko,Nevada,32007,22,1 +2020-05-23,Elko,Nevada,32007,22,1 +2020-05-24,Elko,Nevada,32007,22,1 +2020-05-25,Elko,Nevada,32007,22,1 +2020-05-26,Elko,Nevada,32007,22,1 +2020-05-27,Elko,Nevada,32007,24,1 +2020-05-28,Elko,Nevada,32007,24,1 +2020-05-29,Elko,Nevada,32007,24,1 +2020-05-30,Elko,Nevada,32007,24,1 +2020-05-31,Elko,Nevada,32007,24,1 +2020-06-01,Elko,Nevada,32007,24,1 +2020-06-02,Elko,Nevada,32007,25,1 +2020-06-03,Elko,Nevada,32007,26,1 +2020-06-04,Elko,Nevada,32007,26,1 +2020-06-05,Elko,Nevada,32007,27,1 +2020-06-06,Elko,Nevada,32007,27,1 +2020-06-07,Elko,Nevada,32007,27,1 +2020-06-08,Elko,Nevada,32007,27,1 +2020-06-09,Elko,Nevada,32007,27,1 +2020-06-10,Elko,Nevada,32007,33,1 +2020-06-11,Elko,Nevada,32007,33,1 +2020-06-12,Elko,Nevada,32007,37,1 +2020-06-13,Elko,Nevada,32007,37,1 +2020-06-14,Elko,Nevada,32007,37,1 +2020-06-15,Elko,Nevada,32007,37,1 +2020-06-16,Elko,Nevada,32007,37,1 +2020-06-17,Elko,Nevada,32007,47,1 +2020-06-18,Elko,Nevada,32007,55,1 +2020-06-19,Elko,Nevada,32007,61,1 +2020-06-20,Elko,Nevada,32007,61,1 +2020-06-21,Elko,Nevada,32007,61,1 +2020-06-22,Elko,Nevada,32007,76,1 +2020-06-23,Elko,Nevada,32007,81,1 +2020-06-24,Elko,Nevada,32007,81,1 +2020-06-25,Elko,Nevada,32007,99,1 +2020-06-26,Elko,Nevada,32007,99,1 +2020-06-27,Elko,Nevada,32007,105,1 +2020-06-28,Elko,Nevada,32007,115,1 +2020-06-29,Elko,Nevada,32007,124,1 +2020-06-30,Elko,Nevada,32007,127,1 +2020-07-01,Elko,Nevada,32007,131,1 +2020-07-02,Elko,Nevada,32007,134,1 +2020-07-03,Elko,Nevada,32007,135,1 +2020-07-04,Elko,Nevada,32007,140,1 +2020-07-05,Elko,Nevada,32007,144,1 +2020-07-06,Elko,Nevada,32007,162,1 +2020-07-07,Elko,Nevada,32007,162,1 +2020-07-08,Elko,Nevada,32007,185,1 +2020-07-09,Elko,Nevada,32007,199,1 +2020-06-26,Eureka,Nevada,32011,1,0 +2020-06-27,Eureka,Nevada,32011,1,0 +2020-06-28,Eureka,Nevada,32011,1,0 +2020-06-29,Eureka,Nevada,32011,1,0 +2020-06-30,Eureka,Nevada,32011,1,0 +2020-07-01,Eureka,Nevada,32011,1,0 +2020-07-02,Eureka,Nevada,32011,1,0 +2020-07-03,Eureka,Nevada,32011,1,0 +2020-07-04,Eureka,Nevada,32011,1,0 +2020-07-05,Eureka,Nevada,32011,1,0 +2020-07-06,Eureka,Nevada,32011,1,0 +2020-07-07,Eureka,Nevada,32011,1,0 +2020-07-08,Eureka,Nevada,32011,1,0 +2020-07-09,Eureka,Nevada,32011,1,0 +2020-03-28,Humboldt,Nevada,32013,1,0 +2020-03-29,Humboldt,Nevada,32013,1,0 +2020-03-30,Humboldt,Nevada,32013,3,0 +2020-03-31,Humboldt,Nevada,32013,3,0 +2020-04-01,Humboldt,Nevada,32013,3,0 +2020-04-02,Humboldt,Nevada,32013,3,0 +2020-04-03,Humboldt,Nevada,32013,9,0 +2020-04-04,Humboldt,Nevada,32013,9,0 +2020-04-05,Humboldt,Nevada,32013,11,0 +2020-04-06,Humboldt,Nevada,32013,14,0 +2020-04-07,Humboldt,Nevada,32013,14,0 +2020-04-08,Humboldt,Nevada,32013,14,0 +2020-04-09,Humboldt,Nevada,32013,16,0 +2020-04-10,Humboldt,Nevada,32013,18,0 +2020-04-11,Humboldt,Nevada,32013,18,0 +2020-04-12,Humboldt,Nevada,32013,20,0 +2020-04-13,Humboldt,Nevada,32013,20,0 +2020-04-14,Humboldt,Nevada,32013,20,1 +2020-04-15,Humboldt,Nevada,32013,20,1 +2020-04-16,Humboldt,Nevada,32013,22,1 +2020-04-17,Humboldt,Nevada,32013,26,1 +2020-04-18,Humboldt,Nevada,32013,26,2 +2020-04-19,Humboldt,Nevada,32013,27,2 +2020-04-20,Humboldt,Nevada,32013,27,2 +2020-04-21,Humboldt,Nevada,32013,34,2 +2020-04-22,Humboldt,Nevada,32013,34,2 +2020-04-23,Humboldt,Nevada,32013,34,2 +2020-04-24,Humboldt,Nevada,32013,34,2 +2020-04-25,Humboldt,Nevada,32013,36,2 +2020-04-26,Humboldt,Nevada,32013,36,2 +2020-04-27,Humboldt,Nevada,32013,36,2 +2020-04-28,Humboldt,Nevada,32013,37,2 +2020-04-29,Humboldt,Nevada,32013,38,2 +2020-04-30,Humboldt,Nevada,32013,40,2 +2020-05-01,Humboldt,Nevada,32013,44,2 +2020-05-02,Humboldt,Nevada,32013,44,2 +2020-05-03,Humboldt,Nevada,32013,49,3 +2020-05-04,Humboldt,Nevada,32013,53,3 +2020-05-05,Humboldt,Nevada,32013,53,3 +2020-05-06,Humboldt,Nevada,32013,58,3 +2020-05-07,Humboldt,Nevada,32013,58,3 +2020-05-08,Humboldt,Nevada,32013,61,3 +2020-05-09,Humboldt,Nevada,32013,65,3 +2020-05-10,Humboldt,Nevada,32013,65,3 +2020-05-11,Humboldt,Nevada,32013,69,3 +2020-05-12,Humboldt,Nevada,32013,71,3 +2020-05-13,Humboldt,Nevada,32013,71,3 +2020-05-14,Humboldt,Nevada,32013,71,3 +2020-05-15,Humboldt,Nevada,32013,71,3 +2020-05-16,Humboldt,Nevada,32013,71,3 +2020-05-17,Humboldt,Nevada,32013,74,3 +2020-05-18,Humboldt,Nevada,32013,74,3 +2020-05-19,Humboldt,Nevada,32013,74,3 +2020-05-20,Humboldt,Nevada,32013,76,4 +2020-05-21,Humboldt,Nevada,32013,77,4 +2020-05-22,Humboldt,Nevada,32013,78,4 +2020-05-23,Humboldt,Nevada,32013,78,4 +2020-05-24,Humboldt,Nevada,32013,78,4 +2020-05-25,Humboldt,Nevada,32013,78,4 +2020-05-26,Humboldt,Nevada,32013,78,4 +2020-05-27,Humboldt,Nevada,32013,78,4 +2020-05-28,Humboldt,Nevada,32013,78,4 +2020-05-29,Humboldt,Nevada,32013,78,4 +2020-05-30,Humboldt,Nevada,32013,78,4 +2020-05-31,Humboldt,Nevada,32013,78,4 +2020-06-01,Humboldt,Nevada,32013,77,4 +2020-06-02,Humboldt,Nevada,32013,78,4 +2020-06-03,Humboldt,Nevada,32013,78,4 +2020-06-04,Humboldt,Nevada,32013,78,4 +2020-06-05,Humboldt,Nevada,32013,78,4 +2020-06-06,Humboldt,Nevada,32013,78,4 +2020-06-07,Humboldt,Nevada,32013,78,4 +2020-06-08,Humboldt,Nevada,32013,78,4 +2020-06-09,Humboldt,Nevada,32013,78,4 +2020-06-10,Humboldt,Nevada,32013,78,4 +2020-06-11,Humboldt,Nevada,32013,78,4 +2020-06-12,Humboldt,Nevada,32013,78,4 +2020-06-13,Humboldt,Nevada,32013,78,4 +2020-06-14,Humboldt,Nevada,32013,78,4 +2020-06-15,Humboldt,Nevada,32013,78,4 +2020-06-16,Humboldt,Nevada,32013,78,4 +2020-06-17,Humboldt,Nevada,32013,78,4 +2020-06-18,Humboldt,Nevada,32013,79,4 +2020-06-19,Humboldt,Nevada,32013,79,4 +2020-06-20,Humboldt,Nevada,32013,79,4 +2020-06-21,Humboldt,Nevada,32013,79,4 +2020-06-22,Humboldt,Nevada,32013,79,4 +2020-06-23,Humboldt,Nevada,32013,80,4 +2020-06-24,Humboldt,Nevada,32013,81,4 +2020-06-25,Humboldt,Nevada,32013,82,4 +2020-06-26,Humboldt,Nevada,32013,81,4 +2020-06-27,Humboldt,Nevada,32013,81,4 +2020-06-28,Humboldt,Nevada,32013,82,4 +2020-06-29,Humboldt,Nevada,32013,83,4 +2020-06-30,Humboldt,Nevada,32013,83,4 +2020-07-01,Humboldt,Nevada,32013,83,4 +2020-07-02,Humboldt,Nevada,32013,85,4 +2020-07-03,Humboldt,Nevada,32013,85,4 +2020-07-04,Humboldt,Nevada,32013,84,4 +2020-07-05,Humboldt,Nevada,32013,84,4 +2020-07-06,Humboldt,Nevada,32013,84,4 +2020-07-07,Humboldt,Nevada,32013,86,4 +2020-07-08,Humboldt,Nevada,32013,86,4 +2020-07-09,Humboldt,Nevada,32013,89,4 +2020-04-21,Lander,Nevada,32015,1,0 +2020-04-22,Lander,Nevada,32015,1,0 +2020-04-23,Lander,Nevada,32015,1,0 +2020-04-24,Lander,Nevada,32015,1,0 +2020-04-25,Lander,Nevada,32015,1,0 +2020-04-26,Lander,Nevada,32015,1,0 +2020-04-27,Lander,Nevada,32015,1,0 +2020-04-28,Lander,Nevada,32015,1,0 +2020-04-29,Lander,Nevada,32015,7,0 +2020-04-30,Lander,Nevada,32015,7,0 +2020-05-01,Lander,Nevada,32015,8,0 +2020-05-02,Lander,Nevada,32015,8,0 +2020-05-03,Lander,Nevada,32015,8,0 +2020-05-04,Lander,Nevada,32015,8,0 +2020-05-05,Lander,Nevada,32015,13,0 +2020-05-06,Lander,Nevada,32015,14,0 +2020-05-07,Lander,Nevada,32015,17,0 +2020-05-08,Lander,Nevada,32015,17,0 +2020-05-09,Lander,Nevada,32015,17,0 +2020-05-10,Lander,Nevada,32015,17,0 +2020-05-11,Lander,Nevada,32015,17,0 +2020-05-12,Lander,Nevada,32015,17,0 +2020-05-13,Lander,Nevada,32015,19,0 +2020-05-14,Lander,Nevada,32015,19,0 +2020-05-15,Lander,Nevada,32015,19,0 +2020-05-16,Lander,Nevada,32015,19,0 +2020-05-17,Lander,Nevada,32015,19,0 +2020-05-18,Lander,Nevada,32015,19,0 +2020-05-19,Lander,Nevada,32015,19,0 +2020-05-20,Lander,Nevada,32015,19,0 +2020-05-21,Lander,Nevada,32015,19,0 +2020-05-22,Lander,Nevada,32015,22,0 +2020-05-23,Lander,Nevada,32015,22,0 +2020-05-24,Lander,Nevada,32015,22,0 +2020-05-25,Lander,Nevada,32015,22,0 +2020-05-26,Lander,Nevada,32015,22,0 +2020-05-27,Lander,Nevada,32015,22,0 +2020-05-28,Lander,Nevada,32015,22,0 +2020-05-29,Lander,Nevada,32015,22,0 +2020-05-30,Lander,Nevada,32015,22,0 +2020-05-31,Lander,Nevada,32015,22,0 +2020-06-01,Lander,Nevada,32015,22,0 +2020-06-02,Lander,Nevada,32015,23,0 +2020-06-03,Lander,Nevada,32015,23,0 +2020-06-04,Lander,Nevada,32015,23,0 +2020-06-05,Lander,Nevada,32015,23,0 +2020-06-06,Lander,Nevada,32015,23,0 +2020-06-07,Lander,Nevada,32015,23,0 +2020-06-08,Lander,Nevada,32015,23,0 +2020-06-09,Lander,Nevada,32015,23,0 +2020-06-10,Lander,Nevada,32015,23,0 +2020-06-11,Lander,Nevada,32015,23,0 +2020-06-12,Lander,Nevada,32015,23,0 +2020-06-13,Lander,Nevada,32015,23,0 +2020-06-14,Lander,Nevada,32015,23,0 +2020-06-15,Lander,Nevada,32015,23,0 +2020-06-16,Lander,Nevada,32015,23,0 +2020-06-17,Lander,Nevada,32015,23,0 +2020-06-18,Lander,Nevada,32015,23,0 +2020-06-19,Lander,Nevada,32015,24,0 +2020-06-20,Lander,Nevada,32015,24,0 +2020-06-21,Lander,Nevada,32015,24,0 +2020-06-22,Lander,Nevada,32015,27,0 +2020-06-23,Lander,Nevada,32015,28,0 +2020-06-24,Lander,Nevada,32015,33,0 +2020-06-25,Lander,Nevada,32015,32,0 +2020-06-26,Lander,Nevada,32015,32,0 +2020-06-27,Lander,Nevada,32015,32,0 +2020-06-28,Lander,Nevada,32015,35,0 +2020-06-29,Lander,Nevada,32015,35,0 +2020-06-30,Lander,Nevada,32015,35,0 +2020-07-01,Lander,Nevada,32015,35,0 +2020-07-02,Lander,Nevada,32015,35,0 +2020-07-03,Lander,Nevada,32015,35,0 +2020-07-04,Lander,Nevada,32015,38,0 +2020-07-05,Lander,Nevada,32015,38,0 +2020-07-06,Lander,Nevada,32015,38,0 +2020-07-07,Lander,Nevada,32015,38,0 +2020-07-08,Lander,Nevada,32015,38,0 +2020-07-09,Lander,Nevada,32015,38,0 +2020-05-08,Lincoln,Nevada,32017,1,0 +2020-05-09,Lincoln,Nevada,32017,1,0 +2020-05-10,Lincoln,Nevada,32017,1,0 +2020-05-11,Lincoln,Nevada,32017,1,0 +2020-05-12,Lincoln,Nevada,32017,1,0 +2020-05-13,Lincoln,Nevada,32017,2,0 +2020-05-14,Lincoln,Nevada,32017,2,0 +2020-05-15,Lincoln,Nevada,32017,2,0 +2020-05-16,Lincoln,Nevada,32017,2,0 +2020-05-17,Lincoln,Nevada,32017,2,0 +2020-05-18,Lincoln,Nevada,32017,2,0 +2020-05-19,Lincoln,Nevada,32017,2,0 +2020-05-20,Lincoln,Nevada,32017,2,0 +2020-05-21,Lincoln,Nevada,32017,2,0 +2020-05-22,Lincoln,Nevada,32017,2,0 +2020-05-23,Lincoln,Nevada,32017,2,0 +2020-05-24,Lincoln,Nevada,32017,2,0 +2020-05-25,Lincoln,Nevada,32017,2,0 +2020-05-26,Lincoln,Nevada,32017,2,0 +2020-05-27,Lincoln,Nevada,32017,2,0 +2020-05-28,Lincoln,Nevada,32017,2,0 +2020-05-29,Lincoln,Nevada,32017,2,0 +2020-05-30,Lincoln,Nevada,32017,2,0 +2020-05-31,Lincoln,Nevada,32017,2,0 +2020-06-01,Lincoln,Nevada,32017,2,0 +2020-06-02,Lincoln,Nevada,32017,2,0 +2020-06-03,Lincoln,Nevada,32017,2,0 +2020-06-04,Lincoln,Nevada,32017,2,0 +2020-06-05,Lincoln,Nevada,32017,2,0 +2020-06-06,Lincoln,Nevada,32017,2,0 +2020-06-07,Lincoln,Nevada,32017,2,0 +2020-06-08,Lincoln,Nevada,32017,2,0 +2020-06-09,Lincoln,Nevada,32017,2,0 +2020-06-10,Lincoln,Nevada,32017,2,0 +2020-06-11,Lincoln,Nevada,32017,2,0 +2020-06-12,Lincoln,Nevada,32017,2,0 +2020-06-13,Lincoln,Nevada,32017,2,0 +2020-06-14,Lincoln,Nevada,32017,2,0 +2020-06-15,Lincoln,Nevada,32017,2,0 +2020-06-16,Lincoln,Nevada,32017,2,0 +2020-06-17,Lincoln,Nevada,32017,2,0 +2020-06-18,Lincoln,Nevada,32017,2,0 +2020-06-19,Lincoln,Nevada,32017,2,0 +2020-06-20,Lincoln,Nevada,32017,2,0 +2020-06-21,Lincoln,Nevada,32017,2,0 +2020-06-22,Lincoln,Nevada,32017,2,0 +2020-06-23,Lincoln,Nevada,32017,2,0 +2020-06-24,Lincoln,Nevada,32017,2,0 +2020-06-25,Lincoln,Nevada,32017,2,0 +2020-06-26,Lincoln,Nevada,32017,2,0 +2020-06-27,Lincoln,Nevada,32017,2,0 +2020-06-28,Lincoln,Nevada,32017,2,0 +2020-06-29,Lincoln,Nevada,32017,2,0 +2020-06-30,Lincoln,Nevada,32017,2,0 +2020-07-01,Lincoln,Nevada,32017,2,0 +2020-07-02,Lincoln,Nevada,32017,2,0 +2020-07-03,Lincoln,Nevada,32017,2,0 +2020-07-04,Lincoln,Nevada,32017,2,0 +2020-07-05,Lincoln,Nevada,32017,2,0 +2020-07-06,Lincoln,Nevada,32017,2,0 +2020-07-07,Lincoln,Nevada,32017,2,0 +2020-07-08,Lincoln,Nevada,32017,2,0 +2020-07-09,Lincoln,Nevada,32017,2,0 +2020-03-25,Lyon,Nevada,32019,1,0 +2020-03-26,Lyon,Nevada,32019,1,0 +2020-03-27,Lyon,Nevada,32019,1,0 +2020-03-28,Lyon,Nevada,32019,1,0 +2020-03-29,Lyon,Nevada,32019,1,0 +2020-03-30,Lyon,Nevada,32019,1,0 +2020-03-31,Lyon,Nevada,32019,1,0 +2020-04-01,Lyon,Nevada,32019,1,0 +2020-04-02,Lyon,Nevada,32019,2,0 +2020-04-03,Lyon,Nevada,32019,2,0 +2020-04-04,Lyon,Nevada,32019,3,0 +2020-04-05,Lyon,Nevada,32019,3,0 +2020-04-06,Lyon,Nevada,32019,4,0 +2020-04-07,Lyon,Nevada,32019,4,0 +2020-04-08,Lyon,Nevada,32019,4,0 +2020-04-09,Lyon,Nevada,32019,4,0 +2020-04-10,Lyon,Nevada,32019,7,0 +2020-04-11,Lyon,Nevada,32019,7,0 +2020-04-12,Lyon,Nevada,32019,7,0 +2020-04-13,Lyon,Nevada,32019,10,0 +2020-04-14,Lyon,Nevada,32019,10,0 +2020-04-15,Lyon,Nevada,32019,11,0 +2020-04-16,Lyon,Nevada,32019,12,0 +2020-04-17,Lyon,Nevada,32019,12,0 +2020-04-18,Lyon,Nevada,32019,16,0 +2020-04-19,Lyon,Nevada,32019,16,0 +2020-04-20,Lyon,Nevada,32019,18,0 +2020-04-21,Lyon,Nevada,32019,18,0 +2020-04-22,Lyon,Nevada,32019,18,0 +2020-04-23,Lyon,Nevada,32019,22,0 +2020-04-24,Lyon,Nevada,32019,22,0 +2020-04-25,Lyon,Nevada,32019,23,0 +2020-04-26,Lyon,Nevada,32019,26,0 +2020-04-27,Lyon,Nevada,32019,26,0 +2020-04-28,Lyon,Nevada,32019,27,0 +2020-04-29,Lyon,Nevada,32019,27,0 +2020-04-30,Lyon,Nevada,32019,28,0 +2020-05-01,Lyon,Nevada,32019,29,0 +2020-05-02,Lyon,Nevada,32019,33,0 +2020-05-03,Lyon,Nevada,32019,34,0 +2020-05-04,Lyon,Nevada,32019,34,0 +2020-05-05,Lyon,Nevada,32019,35,0 +2020-05-06,Lyon,Nevada,32019,35,0 +2020-05-07,Lyon,Nevada,32019,36,0 +2020-05-08,Lyon,Nevada,32019,37,0 +2020-05-09,Lyon,Nevada,32019,37,0 +2020-05-10,Lyon,Nevada,32019,42,0 +2020-05-11,Lyon,Nevada,32019,42,0 +2020-05-12,Lyon,Nevada,32019,44,0 +2020-05-13,Lyon,Nevada,32019,48,0 +2020-05-14,Lyon,Nevada,32019,48,0 +2020-05-15,Lyon,Nevada,32019,48,0 +2020-05-16,Lyon,Nevada,32019,48,0 +2020-05-17,Lyon,Nevada,32019,48,0 +2020-05-18,Lyon,Nevada,32019,47,0 +2020-05-19,Lyon,Nevada,32019,49,0 +2020-05-20,Lyon,Nevada,32019,49,0 +2020-05-21,Lyon,Nevada,32019,51,0 +2020-05-22,Lyon,Nevada,32019,51,0 +2020-05-23,Lyon,Nevada,32019,51,0 +2020-05-24,Lyon,Nevada,32019,52,0 +2020-05-25,Lyon,Nevada,32019,55,0 +2020-05-26,Lyon,Nevada,32019,55,0 +2020-05-27,Lyon,Nevada,32019,56,0 +2020-05-28,Lyon,Nevada,32019,56,1 +2020-05-29,Lyon,Nevada,32019,57,1 +2020-05-30,Lyon,Nevada,32019,61,1 +2020-05-31,Lyon,Nevada,32019,62,1 +2020-06-01,Lyon,Nevada,32019,62,1 +2020-06-02,Lyon,Nevada,32019,65,1 +2020-06-03,Lyon,Nevada,32019,66,1 +2020-06-04,Lyon,Nevada,32019,67,1 +2020-06-05,Lyon,Nevada,32019,80,1 +2020-06-06,Lyon,Nevada,32019,81,1 +2020-06-07,Lyon,Nevada,32019,82,1 +2020-06-08,Lyon,Nevada,32019,85,1 +2020-06-09,Lyon,Nevada,32019,87,1 +2020-06-10,Lyon,Nevada,32019,89,2 +2020-06-11,Lyon,Nevada,32019,89,2 +2020-06-12,Lyon,Nevada,32019,89,2 +2020-06-13,Lyon,Nevada,32019,91,2 +2020-06-14,Lyon,Nevada,32019,91,2 +2020-06-15,Lyon,Nevada,32019,92,2 +2020-06-16,Lyon,Nevada,32019,92,2 +2020-06-17,Lyon,Nevada,32019,92,2 +2020-06-18,Lyon,Nevada,32019,94,2 +2020-06-19,Lyon,Nevada,32019,96,2 +2020-06-20,Lyon,Nevada,32019,98,2 +2020-06-21,Lyon,Nevada,32019,98,2 +2020-06-22,Lyon,Nevada,32019,99,2 +2020-06-23,Lyon,Nevada,32019,102,2 +2020-06-24,Lyon,Nevada,32019,102,2 +2020-06-25,Lyon,Nevada,32019,104,2 +2020-06-26,Lyon,Nevada,32019,107,2 +2020-06-27,Lyon,Nevada,32019,108,2 +2020-06-28,Lyon,Nevada,32019,110,2 +2020-06-29,Lyon,Nevada,32019,112,2 +2020-06-30,Lyon,Nevada,32019,115,2 +2020-07-01,Lyon,Nevada,32019,120,2 +2020-07-02,Lyon,Nevada,32019,123,2 +2020-07-03,Lyon,Nevada,32019,123,2 +2020-07-04,Lyon,Nevada,32019,126,2 +2020-07-05,Lyon,Nevada,32019,129,2 +2020-07-06,Lyon,Nevada,32019,131,2 +2020-07-07,Lyon,Nevada,32019,135,2 +2020-07-08,Lyon,Nevada,32019,135,2 +2020-07-09,Lyon,Nevada,32019,136,2 +2020-04-18,Mineral,Nevada,32021,1,0 +2020-04-19,Mineral,Nevada,32021,1,0 +2020-04-20,Mineral,Nevada,32021,1,0 +2020-04-21,Mineral,Nevada,32021,1,0 +2020-04-22,Mineral,Nevada,32021,1,0 +2020-04-23,Mineral,Nevada,32021,1,0 +2020-04-24,Mineral,Nevada,32021,1,0 +2020-04-25,Mineral,Nevada,32021,1,0 +2020-04-26,Mineral,Nevada,32021,1,0 +2020-04-27,Mineral,Nevada,32021,1,0 +2020-04-28,Mineral,Nevada,32021,1,0 +2020-04-29,Mineral,Nevada,32021,4,0 +2020-04-30,Mineral,Nevada,32021,4,0 +2020-05-01,Mineral,Nevada,32021,4,0 +2020-05-02,Mineral,Nevada,32021,4,0 +2020-05-03,Mineral,Nevada,32021,4,0 +2020-05-04,Mineral,Nevada,32021,4,0 +2020-05-05,Mineral,Nevada,32021,4,0 +2020-05-06,Mineral,Nevada,32021,4,0 +2020-05-07,Mineral,Nevada,32021,4,0 +2020-05-08,Mineral,Nevada,32021,4,0 +2020-05-09,Mineral,Nevada,32021,4,0 +2020-05-10,Mineral,Nevada,32021,4,0 +2020-05-11,Mineral,Nevada,32021,4,0 +2020-05-12,Mineral,Nevada,32021,4,0 +2020-05-13,Mineral,Nevada,32021,4,0 +2020-05-14,Mineral,Nevada,32021,4,0 +2020-05-15,Mineral,Nevada,32021,4,0 +2020-05-16,Mineral,Nevada,32021,4,0 +2020-05-17,Mineral,Nevada,32021,4,0 +2020-05-18,Mineral,Nevada,32021,4,0 +2020-05-19,Mineral,Nevada,32021,4,0 +2020-05-20,Mineral,Nevada,32021,4,0 +2020-05-21,Mineral,Nevada,32021,4,0 +2020-05-22,Mineral,Nevada,32021,4,0 +2020-05-23,Mineral,Nevada,32021,4,0 +2020-05-24,Mineral,Nevada,32021,4,0 +2020-05-25,Mineral,Nevada,32021,4,0 +2020-05-26,Mineral,Nevada,32021,4,0 +2020-05-27,Mineral,Nevada,32021,4,0 +2020-05-28,Mineral,Nevada,32021,4,0 +2020-05-29,Mineral,Nevada,32021,4,0 +2020-05-30,Mineral,Nevada,32021,4,0 +2020-05-31,Mineral,Nevada,32021,4,0 +2020-06-01,Mineral,Nevada,32021,4,0 +2020-06-02,Mineral,Nevada,32021,4,0 +2020-06-03,Mineral,Nevada,32021,4,0 +2020-06-04,Mineral,Nevada,32021,5,0 +2020-06-05,Mineral,Nevada,32021,4,0 +2020-06-06,Mineral,Nevada,32021,4,0 +2020-06-07,Mineral,Nevada,32021,4,0 +2020-06-08,Mineral,Nevada,32021,4,0 +2020-06-09,Mineral,Nevada,32021,4,0 +2020-06-10,Mineral,Nevada,32021,4,0 +2020-06-11,Mineral,Nevada,32021,4,0 +2020-06-12,Mineral,Nevada,32021,4,0 +2020-06-13,Mineral,Nevada,32021,4,0 +2020-06-14,Mineral,Nevada,32021,4,0 +2020-06-15,Mineral,Nevada,32021,4,0 +2020-06-16,Mineral,Nevada,32021,4,0 +2020-06-17,Mineral,Nevada,32021,4,0 +2020-06-18,Mineral,Nevada,32021,4,0 +2020-06-19,Mineral,Nevada,32021,4,0 +2020-06-20,Mineral,Nevada,32021,4,0 +2020-06-21,Mineral,Nevada,32021,4,0 +2020-06-22,Mineral,Nevada,32021,4,0 +2020-06-23,Mineral,Nevada,32021,4,0 +2020-06-24,Mineral,Nevada,32021,4,0 +2020-06-25,Mineral,Nevada,32021,4,0 +2020-06-26,Mineral,Nevada,32021,4,0 +2020-06-27,Mineral,Nevada,32021,4,0 +2020-06-28,Mineral,Nevada,32021,4,0 +2020-06-29,Mineral,Nevada,32021,5,0 +2020-06-30,Mineral,Nevada,32021,5,0 +2020-07-01,Mineral,Nevada,32021,5,0 +2020-07-02,Mineral,Nevada,32021,5,0 +2020-07-03,Mineral,Nevada,32021,5,0 +2020-07-04,Mineral,Nevada,32021,5,0 +2020-07-05,Mineral,Nevada,32021,5,0 +2020-07-06,Mineral,Nevada,32021,5,0 +2020-07-07,Mineral,Nevada,32021,5,0 +2020-07-08,Mineral,Nevada,32021,5,0 +2020-07-09,Mineral,Nevada,32021,5,0 +2020-03-20,Nye,Nevada,32023,1,0 +2020-03-21,Nye,Nevada,32023,1,0 +2020-03-22,Nye,Nevada,32023,1,0 +2020-03-23,Nye,Nevada,32023,1,0 +2020-03-24,Nye,Nevada,32023,1,0 +2020-03-25,Nye,Nevada,32023,1,0 +2020-03-26,Nye,Nevada,32023,1,0 +2020-03-27,Nye,Nevada,32023,1,0 +2020-03-28,Nye,Nevada,32023,1,0 +2020-03-29,Nye,Nevada,32023,1,0 +2020-03-30,Nye,Nevada,32023,1,0 +2020-03-31,Nye,Nevada,32023,1,0 +2020-04-01,Nye,Nevada,32023,4,0 +2020-04-02,Nye,Nevada,32023,4,0 +2020-04-03,Nye,Nevada,32023,7,0 +2020-04-04,Nye,Nevada,32023,7,0 +2020-04-05,Nye,Nevada,32023,7,0 +2020-04-06,Nye,Nevada,32023,7,0 +2020-04-07,Nye,Nevada,32023,11,0 +2020-04-08,Nye,Nevada,32023,11,0 +2020-04-09,Nye,Nevada,32023,11,0 +2020-04-10,Nye,Nevada,32023,10,0 +2020-04-11,Nye,Nevada,32023,10,0 +2020-04-12,Nye,Nevada,32023,10,0 +2020-04-13,Nye,Nevada,32023,15,0 +2020-04-14,Nye,Nevada,32023,18,0 +2020-04-15,Nye,Nevada,32023,20,0 +2020-04-16,Nye,Nevada,32023,20,0 +2020-04-17,Nye,Nevada,32023,21,0 +2020-04-18,Nye,Nevada,32023,28,0 +2020-04-19,Nye,Nevada,32023,28,0 +2020-04-20,Nye,Nevada,32023,29,0 +2020-04-21,Nye,Nevada,32023,29,0 +2020-04-22,Nye,Nevada,32023,29,0 +2020-04-23,Nye,Nevada,32023,31,0 +2020-04-24,Nye,Nevada,32023,31,0 +2020-04-25,Nye,Nevada,32023,31,0 +2020-04-26,Nye,Nevada,32023,31,0 +2020-04-27,Nye,Nevada,32023,31,0 +2020-04-28,Nye,Nevada,32023,35,0 +2020-04-29,Nye,Nevada,32023,35,0 +2020-04-30,Nye,Nevada,32023,37,0 +2020-05-01,Nye,Nevada,32023,37,0 +2020-05-02,Nye,Nevada,32023,37,0 +2020-05-03,Nye,Nevada,32023,37,0 +2020-05-04,Nye,Nevada,32023,39,0 +2020-05-05,Nye,Nevada,32023,39,0 +2020-05-06,Nye,Nevada,32023,42,0 +2020-05-07,Nye,Nevada,32023,44,0 +2020-05-08,Nye,Nevada,32023,44,0 +2020-05-09,Nye,Nevada,32023,44,0 +2020-05-10,Nye,Nevada,32023,44,0 +2020-05-11,Nye,Nevada,32023,44,0 +2020-05-12,Nye,Nevada,32023,48,0 +2020-05-13,Nye,Nevada,32023,52,0 +2020-05-14,Nye,Nevada,32023,53,0 +2020-05-15,Nye,Nevada,32023,55,0 +2020-05-16,Nye,Nevada,32023,55,0 +2020-05-17,Nye,Nevada,32023,55,0 +2020-05-18,Nye,Nevada,32023,56,1 +2020-05-19,Nye,Nevada,32023,57,1 +2020-05-20,Nye,Nevada,32023,59,1 +2020-05-21,Nye,Nevada,32023,60,1 +2020-05-22,Nye,Nevada,32023,60,1 +2020-05-23,Nye,Nevada,32023,60,1 +2020-05-24,Nye,Nevada,32023,60,1 +2020-05-25,Nye,Nevada,32023,60,1 +2020-05-26,Nye,Nevada,32023,62,1 +2020-05-27,Nye,Nevada,32023,62,1 +2020-05-28,Nye,Nevada,32023,62,2 +2020-05-29,Nye,Nevada,32023,63,2 +2020-05-30,Nye,Nevada,32023,63,2 +2020-05-31,Nye,Nevada,32023,63,2 +2020-06-01,Nye,Nevada,32023,63,2 +2020-06-02,Nye,Nevada,32023,65,2 +2020-06-03,Nye,Nevada,32023,65,2 +2020-06-04,Nye,Nevada,32023,65,2 +2020-06-05,Nye,Nevada,32023,67,2 +2020-06-06,Nye,Nevada,32023,67,2 +2020-06-07,Nye,Nevada,32023,67,2 +2020-06-08,Nye,Nevada,32023,67,2 +2020-06-09,Nye,Nevada,32023,67,2 +2020-06-10,Nye,Nevada,32023,70,2 +2020-06-11,Nye,Nevada,32023,70,3 +2020-06-12,Nye,Nevada,32023,70,3 +2020-06-13,Nye,Nevada,32023,73,3 +2020-06-14,Nye,Nevada,32023,73,3 +2020-06-15,Nye,Nevada,32023,74,3 +2020-06-16,Nye,Nevada,32023,74,3 +2020-06-17,Nye,Nevada,32023,75,3 +2020-06-18,Nye,Nevada,32023,76,3 +2020-06-19,Nye,Nevada,32023,77,3 +2020-06-20,Nye,Nevada,32023,77,3 +2020-06-21,Nye,Nevada,32023,78,3 +2020-06-22,Nye,Nevada,32023,81,3 +2020-06-23,Nye,Nevada,32023,81,3 +2020-06-24,Nye,Nevada,32023,85,3 +2020-06-25,Nye,Nevada,32023,85,3 +2020-06-26,Nye,Nevada,32023,89,3 +2020-06-27,Nye,Nevada,32023,90,3 +2020-06-28,Nye,Nevada,32023,94,3 +2020-06-29,Nye,Nevada,32023,108,3 +2020-06-30,Nye,Nevada,32023,114,3 +2020-07-01,Nye,Nevada,32023,118,3 +2020-07-02,Nye,Nevada,32023,121,3 +2020-07-03,Nye,Nevada,32023,126,3 +2020-07-04,Nye,Nevada,32023,126,3 +2020-07-05,Nye,Nevada,32023,126,3 +2020-07-06,Nye,Nevada,32023,136,3 +2020-07-07,Nye,Nevada,32023,169,3 +2020-07-08,Nye,Nevada,32023,171,3 +2020-07-09,Nye,Nevada,32023,186,3 +2020-05-28,Pershing,Nevada,32027,1,0 +2020-05-29,Pershing,Nevada,32027,2,0 +2020-05-30,Pershing,Nevada,32027,2,0 +2020-05-31,Pershing,Nevada,32027,2,0 +2020-06-01,Pershing,Nevada,32027,2,0 +2020-06-02,Pershing,Nevada,32027,2,0 +2020-06-03,Pershing,Nevada,32027,2,0 +2020-06-04,Pershing,Nevada,32027,3,0 +2020-06-05,Pershing,Nevada,32027,1,0 +2020-06-06,Pershing,Nevada,32027,3,0 +2020-06-07,Pershing,Nevada,32027,3,0 +2020-06-08,Pershing,Nevada,32027,3,0 +2020-06-09,Pershing,Nevada,32027,3,0 +2020-06-10,Pershing,Nevada,32027,4,0 +2020-06-11,Pershing,Nevada,32027,4,0 +2020-06-12,Pershing,Nevada,32027,5,0 +2020-06-13,Pershing,Nevada,32027,5,0 +2020-06-14,Pershing,Nevada,32027,5,0 +2020-06-15,Pershing,Nevada,32027,5,0 +2020-06-16,Pershing,Nevada,32027,5,0 +2020-06-17,Pershing,Nevada,32027,5,0 +2020-06-18,Pershing,Nevada,32027,5,0 +2020-06-19,Pershing,Nevada,32027,5,0 +2020-06-20,Pershing,Nevada,32027,5,0 +2020-06-21,Pershing,Nevada,32027,5,0 +2020-06-22,Pershing,Nevada,32027,7,0 +2020-06-23,Pershing,Nevada,32027,7,0 +2020-06-24,Pershing,Nevada,32027,7,0 +2020-06-25,Pershing,Nevada,32027,6,0 +2020-06-26,Pershing,Nevada,32027,6,0 +2020-06-27,Pershing,Nevada,32027,6,0 +2020-06-28,Pershing,Nevada,32027,6,0 +2020-06-29,Pershing,Nevada,32027,6,0 +2020-06-30,Pershing,Nevada,32027,6,0 +2020-07-01,Pershing,Nevada,32027,6,0 +2020-07-02,Pershing,Nevada,32027,6,0 +2020-07-03,Pershing,Nevada,32027,6,0 +2020-07-04,Pershing,Nevada,32027,9,0 +2020-07-05,Pershing,Nevada,32027,9,0 +2020-07-06,Pershing,Nevada,32027,9,0 +2020-07-07,Pershing,Nevada,32027,9,0 +2020-07-08,Pershing,Nevada,32027,9,0 +2020-07-09,Pershing,Nevada,32027,10,0 +2020-05-18,Storey,Nevada,32029,1,0 +2020-05-19,Storey,Nevada,32029,1,0 +2020-05-20,Storey,Nevada,32029,1,0 +2020-05-21,Storey,Nevada,32029,1,0 +2020-05-22,Storey,Nevada,32029,1,0 +2020-05-23,Storey,Nevada,32029,1,0 +2020-05-24,Storey,Nevada,32029,1,0 +2020-05-25,Storey,Nevada,32029,1,0 +2020-05-26,Storey,Nevada,32029,1,0 +2020-05-27,Storey,Nevada,32029,1,0 +2020-05-28,Storey,Nevada,32029,1,0 +2020-05-29,Storey,Nevada,32029,1,0 +2020-05-30,Storey,Nevada,32029,1,0 +2020-05-31,Storey,Nevada,32029,1,0 +2020-06-01,Storey,Nevada,32029,1,0 +2020-06-02,Storey,Nevada,32029,1,0 +2020-06-03,Storey,Nevada,32029,1,0 +2020-06-04,Storey,Nevada,32029,1,0 +2020-06-05,Storey,Nevada,32029,1,0 +2020-06-06,Storey,Nevada,32029,1,0 +2020-06-07,Storey,Nevada,32029,1,0 +2020-06-08,Storey,Nevada,32029,1,0 +2020-06-09,Storey,Nevada,32029,1,0 +2020-06-10,Storey,Nevada,32029,1,0 +2020-06-11,Storey,Nevada,32029,1,0 +2020-06-12,Storey,Nevada,32029,1,0 +2020-06-13,Storey,Nevada,32029,1,0 +2020-06-14,Storey,Nevada,32029,1,0 +2020-06-15,Storey,Nevada,32029,1,0 +2020-06-16,Storey,Nevada,32029,1,0 +2020-06-17,Storey,Nevada,32029,1,0 +2020-06-18,Storey,Nevada,32029,1,0 +2020-06-19,Storey,Nevada,32029,1,0 +2020-06-20,Storey,Nevada,32029,1,0 +2020-06-21,Storey,Nevada,32029,1,0 +2020-06-22,Storey,Nevada,32029,1,0 +2020-06-23,Storey,Nevada,32029,1,0 +2020-06-24,Storey,Nevada,32029,2,0 +2020-06-25,Storey,Nevada,32029,2,0 +2020-06-26,Storey,Nevada,32029,2,0 +2020-06-27,Storey,Nevada,32029,2,0 +2020-06-28,Storey,Nevada,32029,2,0 +2020-06-29,Storey,Nevada,32029,2,0 +2020-06-30,Storey,Nevada,32029,2,0 +2020-07-01,Storey,Nevada,32029,2,0 +2020-07-02,Storey,Nevada,32029,2,0 +2020-07-03,Storey,Nevada,32029,2,0 +2020-07-04,Storey,Nevada,32029,2,0 +2020-07-05,Storey,Nevada,32029,2,0 +2020-07-06,Storey,Nevada,32029,2,0 +2020-07-07,Storey,Nevada,32029,2,0 +2020-07-08,Storey,Nevada,32029,2,0 +2020-07-09,Storey,Nevada,32029,2,0 +2020-03-05,Washoe,Nevada,32031,1,0 +2020-03-06,Washoe,Nevada,32031,1,0 +2020-03-07,Washoe,Nevada,32031,1,0 +2020-03-08,Washoe,Nevada,32031,2,0 +2020-03-09,Washoe,Nevada,32031,2,0 +2020-03-10,Washoe,Nevada,32031,2,0 +2020-03-11,Washoe,Nevada,32031,2,0 +2020-03-12,Washoe,Nevada,32031,2,0 +2020-03-13,Washoe,Nevada,32031,2,0 +2020-03-14,Washoe,Nevada,32031,4,0 +2020-03-15,Washoe,Nevada,32031,9,0 +2020-03-16,Washoe,Nevada,32031,9,0 +2020-03-17,Washoe,Nevada,32031,12,0 +2020-03-18,Washoe,Nevada,32031,12,0 +2020-03-19,Washoe,Nevada,32031,18,0 +2020-03-20,Washoe,Nevada,32031,22,0 +2020-03-21,Washoe,Nevada,32031,22,0 +2020-03-22,Washoe,Nevada,32031,25,0 +2020-03-23,Washoe,Nevada,32031,25,0 +2020-03-24,Washoe,Nevada,32031,44,0 +2020-03-25,Washoe,Nevada,32031,57,0 +2020-03-26,Washoe,Nevada,32031,67,0 +2020-03-27,Washoe,Nevada,32031,75,0 +2020-03-28,Washoe,Nevada,32031,93,0 +2020-03-29,Washoe,Nevada,32031,107,1 +2020-03-30,Washoe,Nevada,32031,121,3 +2020-03-31,Washoe,Nevada,32031,121,3 +2020-04-01,Washoe,Nevada,32031,163,4 +2020-04-02,Washoe,Nevada,32031,163,4 +2020-04-03,Washoe,Nevada,32031,229,4 +2020-04-04,Washoe,Nevada,32031,245,4 +2020-04-05,Washoe,Nevada,32031,264,4 +2020-04-06,Washoe,Nevada,32031,281,4 +2020-04-07,Washoe,Nevada,32031,309,5 +2020-04-08,Washoe,Nevada,32031,326,8 +2020-04-09,Washoe,Nevada,32031,363,10 +2020-04-10,Washoe,Nevada,32031,389,10 +2020-04-11,Washoe,Nevada,32031,389,11 +2020-04-12,Washoe,Nevada,32031,461,12 +2020-04-13,Washoe,Nevada,32031,500,12 +2020-04-14,Washoe,Nevada,32031,532,13 +2020-04-15,Washoe,Nevada,32031,549,14 +2020-04-16,Washoe,Nevada,32031,572,15 +2020-04-17,Washoe,Nevada,32031,588,16 +2020-04-18,Washoe,Nevada,32031,606,16 +2020-04-19,Washoe,Nevada,32031,637,18 +2020-04-20,Washoe,Nevada,32031,662,18 +2020-04-21,Washoe,Nevada,32031,684,18 +2020-04-22,Washoe,Nevada,32031,710,21 +2020-04-23,Washoe,Nevada,32031,736,22 +2020-04-24,Washoe,Nevada,32031,755,25 +2020-04-25,Washoe,Nevada,32031,791,27 +2020-04-26,Washoe,Nevada,32031,804,27 +2020-04-27,Washoe,Nevada,32031,820,28 +2020-04-28,Washoe,Nevada,32031,834,29 +2020-04-29,Washoe,Nevada,32031,848,30 +2020-04-30,Washoe,Nevada,32031,873,30 +2020-05-01,Washoe,Nevada,32031,921,33 +2020-05-02,Washoe,Nevada,32031,949,33 +2020-05-03,Washoe,Nevada,32031,977,33 +2020-05-04,Washoe,Nevada,32031,988,35 +2020-05-05,Washoe,Nevada,32031,1014,36 +2020-05-06,Washoe,Nevada,32031,1022,37 +2020-05-07,Washoe,Nevada,32031,1030,38 +2020-05-08,Washoe,Nevada,32031,1065,39 +2020-05-09,Washoe,Nevada,32031,1077,39 +2020-05-10,Washoe,Nevada,32031,1095,39 +2020-05-11,Washoe,Nevada,32031,1100,39 +2020-05-12,Washoe,Nevada,32031,1116,40 +2020-05-13,Washoe,Nevada,32031,1132,43 +2020-05-14,Washoe,Nevada,32031,1154,45 +2020-05-15,Washoe,Nevada,32031,1190,46 +2020-05-16,Washoe,Nevada,32031,1202,46 +2020-05-17,Washoe,Nevada,32031,1256,47 +2020-05-18,Washoe,Nevada,32031,1266,48 +2020-05-19,Washoe,Nevada,32031,1295,48 +2020-05-20,Washoe,Nevada,32031,1305,48 +2020-05-21,Washoe,Nevada,32031,1316,48 +2020-05-22,Washoe,Nevada,32031,1356,48 +2020-05-23,Washoe,Nevada,32031,1361,50 +2020-05-24,Washoe,Nevada,32031,1378,52 +2020-05-25,Washoe,Nevada,32031,1405,54 +2020-05-26,Washoe,Nevada,32031,1459,54 +2020-05-27,Washoe,Nevada,32031,1485,55 +2020-05-28,Washoe,Nevada,32031,1514,55 +2020-05-29,Washoe,Nevada,32031,1531,59 +2020-05-30,Washoe,Nevada,32031,1548,60 +2020-05-31,Washoe,Nevada,32031,1577,60 +2020-06-01,Washoe,Nevada,32031,1585,61 +2020-06-02,Washoe,Nevada,32031,1606,61 +2020-06-03,Washoe,Nevada,32031,1618,61 +2020-06-04,Washoe,Nevada,32031,1645,61 +2020-06-05,Washoe,Nevada,32031,1685,65 +2020-06-06,Washoe,Nevada,32031,1719,65 +2020-06-07,Washoe,Nevada,32031,1743,65 +2020-06-08,Washoe,Nevada,32031,1772,65 +2020-06-09,Washoe,Nevada,32031,1788,66 +2020-06-10,Washoe,Nevada,32031,1832,67 +2020-06-11,Washoe,Nevada,32031,1893,69 +2020-06-12,Washoe,Nevada,32031,1914,69 +2020-06-13,Washoe,Nevada,32031,1955,70 +2020-06-14,Washoe,Nevada,32031,1977,70 +2020-06-15,Washoe,Nevada,32031,2003,71 +2020-06-16,Washoe,Nevada,32031,2016,71 +2020-06-17,Washoe,Nevada,32031,2023,71 +2020-06-18,Washoe,Nevada,32031,2106,72 +2020-06-19,Washoe,Nevada,32031,2137,73 +2020-06-20,Washoe,Nevada,32031,2179,73 +2020-06-21,Washoe,Nevada,32031,2209,73 +2020-06-22,Washoe,Nevada,32031,2232,74 +2020-06-23,Washoe,Nevada,32031,2286,74 +2020-06-24,Washoe,Nevada,32031,2376,74 +2020-06-25,Washoe,Nevada,32031,2404,74 +2020-06-26,Washoe,Nevada,32031,2512,74 +2020-06-27,Washoe,Nevada,32031,2573,74 +2020-06-28,Washoe,Nevada,32031,2600,74 +2020-06-29,Washoe,Nevada,32031,2656,75 +2020-06-30,Washoe,Nevada,32031,2766,75 +2020-07-01,Washoe,Nevada,32031,2804,76 +2020-07-02,Washoe,Nevada,32031,2923,77 +2020-07-03,Washoe,Nevada,32031,3073,79 +2020-07-04,Washoe,Nevada,32031,3165,79 +2020-07-05,Washoe,Nevada,32031,3258,82 +2020-07-06,Washoe,Nevada,32031,3260,82 +2020-07-07,Washoe,Nevada,32031,3295,82 +2020-07-08,Washoe,Nevada,32031,3328,85 +2020-07-09,Washoe,Nevada,32031,3459,89 +2020-04-09,White Pine,Nevada,32033,1,0 +2020-04-10,White Pine,Nevada,32033,1,0 +2020-04-11,White Pine,Nevada,32033,1,0 +2020-04-12,White Pine,Nevada,32033,1,0 +2020-04-13,White Pine,Nevada,32033,3,0 +2020-04-14,White Pine,Nevada,32033,3,0 +2020-04-15,White Pine,Nevada,32033,3,0 +2020-04-16,White Pine,Nevada,32033,3,0 +2020-04-17,White Pine,Nevada,32033,3,0 +2020-04-18,White Pine,Nevada,32033,3,0 +2020-04-19,White Pine,Nevada,32033,3,0 +2020-04-20,White Pine,Nevada,32033,3,0 +2020-04-21,White Pine,Nevada,32033,3,0 +2020-04-22,White Pine,Nevada,32033,3,0 +2020-04-23,White Pine,Nevada,32033,3,0 +2020-04-24,White Pine,Nevada,32033,3,0 +2020-04-25,White Pine,Nevada,32033,3,0 +2020-04-26,White Pine,Nevada,32033,3,0 +2020-04-27,White Pine,Nevada,32033,3,0 +2020-04-28,White Pine,Nevada,32033,3,0 +2020-04-29,White Pine,Nevada,32033,3,0 +2020-04-30,White Pine,Nevada,32033,3,0 +2020-05-01,White Pine,Nevada,32033,3,0 +2020-05-02,White Pine,Nevada,32033,3,0 +2020-05-03,White Pine,Nevada,32033,3,0 +2020-05-04,White Pine,Nevada,32033,3,0 +2020-05-05,White Pine,Nevada,32033,3,0 +2020-05-06,White Pine,Nevada,32033,3,0 +2020-05-07,White Pine,Nevada,32033,3,0 +2020-05-08,White Pine,Nevada,32033,3,0 +2020-05-09,White Pine,Nevada,32033,3,0 +2020-05-10,White Pine,Nevada,32033,3,0 +2020-05-11,White Pine,Nevada,32033,3,0 +2020-05-12,White Pine,Nevada,32033,3,0 +2020-05-13,White Pine,Nevada,32033,3,0 +2020-05-14,White Pine,Nevada,32033,3,0 +2020-05-15,White Pine,Nevada,32033,3,0 +2020-05-16,White Pine,Nevada,32033,3,0 +2020-05-17,White Pine,Nevada,32033,3,0 +2020-05-18,White Pine,Nevada,32033,3,0 +2020-05-19,White Pine,Nevada,32033,3,0 +2020-05-20,White Pine,Nevada,32033,4,0 +2020-05-21,White Pine,Nevada,32033,4,0 +2020-05-22,White Pine,Nevada,32033,4,0 +2020-05-23,White Pine,Nevada,32033,4,0 +2020-05-24,White Pine,Nevada,32033,3,0 +2020-05-25,White Pine,Nevada,32033,3,0 +2020-05-26,White Pine,Nevada,32033,3,0 +2020-05-27,White Pine,Nevada,32033,3,0 +2020-05-28,White Pine,Nevada,32033,3,0 +2020-05-29,White Pine,Nevada,32033,3,0 +2020-05-30,White Pine,Nevada,32033,3,0 +2020-05-31,White Pine,Nevada,32033,3,0 +2020-06-01,White Pine,Nevada,32033,3,0 +2020-06-02,White Pine,Nevada,32033,3,0 +2020-06-03,White Pine,Nevada,32033,3,0 +2020-06-04,White Pine,Nevada,32033,3,0 +2020-06-05,White Pine,Nevada,32033,3,0 +2020-06-06,White Pine,Nevada,32033,3,0 +2020-06-07,White Pine,Nevada,32033,3,0 +2020-06-08,White Pine,Nevada,32033,3,0 +2020-06-09,White Pine,Nevada,32033,3,0 +2020-06-10,White Pine,Nevada,32033,3,0 +2020-06-11,White Pine,Nevada,32033,3,0 +2020-06-12,White Pine,Nevada,32033,3,0 +2020-06-13,White Pine,Nevada,32033,3,0 +2020-06-14,White Pine,Nevada,32033,3,0 +2020-06-15,White Pine,Nevada,32033,3,0 +2020-06-16,White Pine,Nevada,32033,3,0 +2020-06-17,White Pine,Nevada,32033,3,0 +2020-06-18,White Pine,Nevada,32033,3,0 +2020-06-19,White Pine,Nevada,32033,3,0 +2020-06-20,White Pine,Nevada,32033,3,0 +2020-06-21,White Pine,Nevada,32033,3,0 +2020-06-22,White Pine,Nevada,32033,3,0 +2020-06-23,White Pine,Nevada,32033,3,0 +2020-06-24,White Pine,Nevada,32033,3,0 +2020-06-25,White Pine,Nevada,32033,3,0 +2020-06-26,White Pine,Nevada,32033,3,0 +2020-06-27,White Pine,Nevada,32033,3,0 +2020-06-28,White Pine,Nevada,32033,3,0 +2020-06-29,White Pine,Nevada,32033,4,0 +2020-06-30,White Pine,Nevada,32033,4,0 +2020-07-01,White Pine,Nevada,32033,4,0 +2020-07-02,White Pine,Nevada,32033,5,0 +2020-07-03,White Pine,Nevada,32033,6,0 +2020-07-04,White Pine,Nevada,32033,6,0 +2020-07-05,White Pine,Nevada,32033,6,0 +2020-07-06,White Pine,Nevada,32033,6,0 +2020-07-07,White Pine,Nevada,32033,6,0 +2020-07-08,White Pine,Nevada,32033,6,0 +2020-07-09,White Pine,Nevada,32033,6,0 +2020-03-12,Carson City,Nevada,32510,1,0 +2020-03-13,Carson City,Nevada,32510,1,0 +2020-03-14,Carson City,Nevada,32510,1,0 +2020-03-15,Carson City,Nevada,32510,1,0 +2020-03-16,Carson City,Nevada,32510,1,0 +2020-03-17,Carson City,Nevada,32510,1,0 +2020-03-18,Carson City,Nevada,32510,1,0 +2020-03-19,Carson City,Nevada,32510,2,0 +2020-03-20,Carson City,Nevada,32510,3,0 +2020-03-21,Carson City,Nevada,32510,3,0 +2020-03-22,Carson City,Nevada,32510,3,0 +2020-03-23,Carson City,Nevada,32510,3,0 +2020-03-24,Carson City,Nevada,32510,3,0 +2020-03-25,Carson City,Nevada,32510,3,0 +2020-03-26,Carson City,Nevada,32510,4,0 +2020-03-27,Carson City,Nevada,32510,4,0 +2020-03-28,Carson City,Nevada,32510,5,0 +2020-03-29,Carson City,Nevada,32510,5,0 +2020-03-30,Carson City,Nevada,32510,5,0 +2020-03-31,Carson City,Nevada,32510,5,0 +2020-04-01,Carson City,Nevada,32510,5,0 +2020-04-02,Carson City,Nevada,32510,8,0 +2020-04-03,Carson City,Nevada,32510,9,0 +2020-04-04,Carson City,Nevada,32510,10,0 +2020-04-05,Carson City,Nevada,32510,10,0 +2020-04-06,Carson City,Nevada,32510,11,0 +2020-04-07,Carson City,Nevada,32510,13,0 +2020-04-08,Carson City,Nevada,32510,14,0 +2020-04-09,Carson City,Nevada,32510,14,0 +2020-04-10,Carson City,Nevada,32510,16,0 +2020-04-11,Carson City,Nevada,32510,16,0 +2020-04-12,Carson City,Nevada,32510,16,0 +2020-04-13,Carson City,Nevada,32510,22,0 +2020-04-14,Carson City,Nevada,32510,23,0 +2020-04-15,Carson City,Nevada,32510,25,0 +2020-04-16,Carson City,Nevada,32510,26,0 +2020-04-17,Carson City,Nevada,32510,27,0 +2020-04-18,Carson City,Nevada,32510,28,0 +2020-04-19,Carson City,Nevada,32510,28,0 +2020-04-20,Carson City,Nevada,32510,28,0 +2020-04-21,Carson City,Nevada,32510,28,0 +2020-04-22,Carson City,Nevada,32510,28,1 +2020-04-23,Carson City,Nevada,32510,33,1 +2020-04-24,Carson City,Nevada,32510,33,1 +2020-04-25,Carson City,Nevada,32510,34,1 +2020-04-26,Carson City,Nevada,32510,37,1 +2020-04-27,Carson City,Nevada,32510,39,1 +2020-04-28,Carson City,Nevada,32510,44,1 +2020-04-29,Carson City,Nevada,32510,44,1 +2020-04-30,Carson City,Nevada,32510,45,1 +2020-05-01,Carson City,Nevada,32510,47,1 +2020-05-02,Carson City,Nevada,32510,48,1 +2020-05-03,Carson City,Nevada,32510,48,1 +2020-05-04,Carson City,Nevada,32510,48,1 +2020-05-05,Carson City,Nevada,32510,51,1 +2020-05-06,Carson City,Nevada,32510,51,1 +2020-05-07,Carson City,Nevada,32510,51,1 +2020-05-08,Carson City,Nevada,32510,51,1 +2020-05-09,Carson City,Nevada,32510,51,1 +2020-05-10,Carson City,Nevada,32510,55,2 +2020-05-11,Carson City,Nevada,32510,55,2 +2020-05-12,Carson City,Nevada,32510,56,2 +2020-05-13,Carson City,Nevada,32510,58,2 +2020-05-14,Carson City,Nevada,32510,58,2 +2020-05-15,Carson City,Nevada,32510,58,2 +2020-05-16,Carson City,Nevada,32510,58,2 +2020-05-17,Carson City,Nevada,32510,58,2 +2020-05-18,Carson City,Nevada,32510,71,2 +2020-05-19,Carson City,Nevada,32510,75,3 +2020-05-20,Carson City,Nevada,32510,77,3 +2020-05-21,Carson City,Nevada,32510,81,3 +2020-05-22,Carson City,Nevada,32510,83,4 +2020-05-23,Carson City,Nevada,32510,83,4 +2020-05-24,Carson City,Nevada,32510,85,4 +2020-05-25,Carson City,Nevada,32510,86,4 +2020-05-26,Carson City,Nevada,32510,90,4 +2020-05-27,Carson City,Nevada,32510,90,4 +2020-05-28,Carson City,Nevada,32510,91,4 +2020-05-29,Carson City,Nevada,32510,94,4 +2020-05-30,Carson City,Nevada,32510,95,4 +2020-05-31,Carson City,Nevada,32510,95,4 +2020-06-01,Carson City,Nevada,32510,98,4 +2020-06-02,Carson City,Nevada,32510,99,4 +2020-06-03,Carson City,Nevada,32510,99,4 +2020-06-04,Carson City,Nevada,32510,99,4 +2020-06-05,Carson City,Nevada,32510,102,5 +2020-06-06,Carson City,Nevada,32510,107,5 +2020-06-07,Carson City,Nevada,32510,109,5 +2020-06-08,Carson City,Nevada,32510,110,5 +2020-06-09,Carson City,Nevada,32510,111,5 +2020-06-10,Carson City,Nevada,32510,114,5 +2020-06-11,Carson City,Nevada,32510,115,5 +2020-06-12,Carson City,Nevada,32510,115,5 +2020-06-13,Carson City,Nevada,32510,115,5 +2020-06-14,Carson City,Nevada,32510,118,5 +2020-06-15,Carson City,Nevada,32510,123,5 +2020-06-16,Carson City,Nevada,32510,124,5 +2020-06-17,Carson City,Nevada,32510,124,5 +2020-06-18,Carson City,Nevada,32510,124,5 +2020-06-19,Carson City,Nevada,32510,126,5 +2020-06-20,Carson City,Nevada,32510,126,5 +2020-06-21,Carson City,Nevada,32510,127,5 +2020-06-22,Carson City,Nevada,32510,128,5 +2020-06-23,Carson City,Nevada,32510,132,5 +2020-06-24,Carson City,Nevada,32510,134,5 +2020-06-25,Carson City,Nevada,32510,139,5 +2020-06-26,Carson City,Nevada,32510,146,5 +2020-06-27,Carson City,Nevada,32510,147,5 +2020-06-28,Carson City,Nevada,32510,149,5 +2020-06-29,Carson City,Nevada,32510,151,5 +2020-06-30,Carson City,Nevada,32510,151,5 +2020-07-01,Carson City,Nevada,32510,155,5 +2020-07-02,Carson City,Nevada,32510,166,5 +2020-07-03,Carson City,Nevada,32510,167,5 +2020-07-04,Carson City,Nevada,32510,172,5 +2020-07-05,Carson City,Nevada,32510,180,5 +2020-07-06,Carson City,Nevada,32510,182,5 +2020-07-07,Carson City,Nevada,32510,185,6 +2020-07-08,Carson City,Nevada,32510,185,6 +2020-07-09,Carson City,Nevada,32510,194,6 +2020-03-18,Belknap,New Hampshire,33001,2,0 +2020-03-19,Belknap,New Hampshire,33001,3,0 +2020-03-20,Belknap,New Hampshire,33001,3,0 +2020-03-21,Belknap,New Hampshire,33001,3,0 +2020-03-22,Belknap,New Hampshire,33001,4,0 +2020-03-23,Belknap,New Hampshire,33001,7,0 +2020-03-24,Belknap,New Hampshire,33001,7,0 +2020-03-25,Belknap,New Hampshire,33001,8,0 +2020-03-26,Belknap,New Hampshire,33001,8,0 +2020-03-27,Belknap,New Hampshire,33001,9,0 +2020-03-28,Belknap,New Hampshire,33001,9,0 +2020-03-29,Belknap,New Hampshire,33001,9,0 +2020-03-30,Belknap,New Hampshire,33001,12,0 +2020-03-31,Belknap,New Hampshire,33001,12,0 +2020-04-01,Belknap,New Hampshire,33001,13,0 +2020-04-02,Belknap,New Hampshire,33001,13,0 +2020-04-03,Belknap,New Hampshire,33001,14,0 +2020-04-04,Belknap,New Hampshire,33001,17,0 +2020-04-05,Belknap,New Hampshire,33001,17,0 +2020-04-06,Belknap,New Hampshire,33001,18,0 +2020-04-07,Belknap,New Hampshire,33001,21,0 +2020-04-08,Belknap,New Hampshire,33001,21,0 +2020-04-09,Belknap,New Hampshire,33001,21,0 +2020-04-10,Belknap,New Hampshire,33001,21,0 +2020-04-11,Belknap,New Hampshire,33001,21,0 +2020-04-12,Belknap,New Hampshire,33001,22,0 +2020-04-13,Belknap,New Hampshire,33001,22,0 +2020-04-14,Belknap,New Hampshire,33001,24,0 +2020-04-15,Belknap,New Hampshire,33001,24,0 +2020-04-16,Belknap,New Hampshire,33001,24,0 +2020-04-17,Belknap,New Hampshire,33001,25,0 +2020-04-18,Belknap,New Hampshire,33001,25,0 +2020-04-19,Belknap,New Hampshire,33001,26,0 +2020-04-20,Belknap,New Hampshire,33001,26,0 +2020-04-21,Belknap,New Hampshire,33001,28,0 +2020-04-22,Belknap,New Hampshire,33001,28,0 +2020-04-23,Belknap,New Hampshire,33001,28,0 +2020-04-24,Belknap,New Hampshire,33001,30,0 +2020-04-25,Belknap,New Hampshire,33001,31,0 +2020-04-26,Belknap,New Hampshire,33001,31,0 +2020-04-27,Belknap,New Hampshire,33001,35,0 +2020-04-28,Belknap,New Hampshire,33001,34,0 +2020-04-29,Belknap,New Hampshire,33001,33,0 +2020-04-30,Belknap,New Hampshire,33001,34,0 +2020-05-01,Belknap,New Hampshire,33001,37,0 +2020-05-02,Belknap,New Hampshire,33001,38,0 +2020-05-03,Belknap,New Hampshire,33001,39,0 +2020-05-04,Belknap,New Hampshire,33001,40,0 +2020-05-05,Belknap,New Hampshire,33001,40,0 +2020-05-06,Belknap,New Hampshire,33001,41,0 +2020-05-07,Belknap,New Hampshire,33001,42,0 +2020-05-08,Belknap,New Hampshire,33001,42,0 +2020-05-09,Belknap,New Hampshire,33001,44,0 +2020-05-10,Belknap,New Hampshire,33001,46,0 +2020-05-11,Belknap,New Hampshire,33001,46,0 +2020-05-12,Belknap,New Hampshire,33001,47,0 +2020-05-13,Belknap,New Hampshire,33001,47,0 +2020-05-14,Belknap,New Hampshire,33001,49,0 +2020-05-15,Belknap,New Hampshire,33001,50,0 +2020-05-16,Belknap,New Hampshire,33001,51,0 +2020-05-17,Belknap,New Hampshire,33001,53,0 +2020-05-18,Belknap,New Hampshire,33001,53,0 +2020-05-19,Belknap,New Hampshire,33001,53,0 +2020-05-20,Belknap,New Hampshire,33001,54,0 +2020-05-21,Belknap,New Hampshire,33001,54,0 +2020-05-22,Belknap,New Hampshire,33001,54,0 +2020-05-23,Belknap,New Hampshire,33001,55,0 +2020-05-24,Belknap,New Hampshire,33001,55,0 +2020-05-25,Belknap,New Hampshire,33001,55,0 +2020-05-26,Belknap,New Hampshire,33001,56,0 +2020-05-27,Belknap,New Hampshire,33001,57,0 +2020-05-28,Belknap,New Hampshire,33001,57,0 +2020-05-29,Belknap,New Hampshire,33001,58,0 +2020-05-30,Belknap,New Hampshire,33001,59,0 +2020-05-31,Belknap,New Hampshire,33001,60,0 +2020-06-01,Belknap,New Hampshire,33001,60,0 +2020-06-02,Belknap,New Hampshire,33001,63,0 +2020-06-03,Belknap,New Hampshire,33001,63,0 +2020-06-04,Belknap,New Hampshire,33001,64,0 +2020-06-05,Belknap,New Hampshire,33001,67,0 +2020-06-06,Belknap,New Hampshire,33001,67,0 +2020-06-07,Belknap,New Hampshire,33001,68,0 +2020-06-08,Belknap,New Hampshire,33001,70,0 +2020-06-09,Belknap,New Hampshire,33001,70,0 +2020-06-10,Belknap,New Hampshire,33001,70,0 +2020-06-11,Belknap,New Hampshire,33001,72,0 +2020-06-12,Belknap,New Hampshire,33001,73,1 +2020-06-13,Belknap,New Hampshire,33001,74,1 +2020-06-14,Belknap,New Hampshire,33001,74,1 +2020-06-15,Belknap,New Hampshire,33001,74,1 +2020-06-16,Belknap,New Hampshire,33001,74,1 +2020-06-17,Belknap,New Hampshire,33001,74,1 +2020-06-18,Belknap,New Hampshire,33001,76,1 +2020-06-19,Belknap,New Hampshire,33001,77,1 +2020-06-20,Belknap,New Hampshire,33001,78,1 +2020-06-21,Belknap,New Hampshire,33001,78,1 +2020-06-22,Belknap,New Hampshire,33001,78,1 +2020-06-23,Belknap,New Hampshire,33001,78,1 +2020-06-24,Belknap,New Hampshire,33001,78,1 +2020-06-25,Belknap,New Hampshire,33001,78,1 +2020-06-26,Belknap,New Hampshire,33001,79,1 +2020-06-27,Belknap,New Hampshire,33001,81,1 +2020-06-28,Belknap,New Hampshire,33001,81,1 +2020-06-29,Belknap,New Hampshire,33001,81,1 +2020-06-30,Belknap,New Hampshire,33001,81,1 +2020-07-01,Belknap,New Hampshire,33001,81,1 +2020-07-02,Belknap,New Hampshire,33001,81,1 +2020-07-03,Belknap,New Hampshire,33001,82,1 +2020-07-04,Belknap,New Hampshire,33001,81,2 +2020-07-05,Belknap,New Hampshire,33001,82,2 +2020-07-06,Belknap,New Hampshire,33001,85,2 +2020-07-07,Belknap,New Hampshire,33001,86,2 +2020-07-08,Belknap,New Hampshire,33001,87,2 +2020-07-09,Belknap,New Hampshire,33001,87,2 +2020-03-16,Carroll,New Hampshire,33003,1,0 +2020-03-17,Carroll,New Hampshire,33003,1,0 +2020-03-18,Carroll,New Hampshire,33003,4,0 +2020-03-19,Carroll,New Hampshire,33003,4,0 +2020-03-20,Carroll,New Hampshire,33003,5,0 +2020-03-21,Carroll,New Hampshire,33003,5,0 +2020-03-22,Carroll,New Hampshire,33003,6,0 +2020-03-23,Carroll,New Hampshire,33003,7,0 +2020-03-24,Carroll,New Hampshire,33003,7,0 +2020-03-25,Carroll,New Hampshire,33003,7,0 +2020-03-26,Carroll,New Hampshire,33003,7,0 +2020-03-27,Carroll,New Hampshire,33003,8,0 +2020-03-28,Carroll,New Hampshire,33003,8,0 +2020-03-29,Carroll,New Hampshire,33003,10,0 +2020-03-30,Carroll,New Hampshire,33003,10,0 +2020-03-31,Carroll,New Hampshire,33003,12,0 +2020-04-01,Carroll,New Hampshire,33003,14,0 +2020-04-02,Carroll,New Hampshire,33003,14,0 +2020-04-03,Carroll,New Hampshire,33003,17,0 +2020-04-04,Carroll,New Hampshire,33003,17,0 +2020-04-05,Carroll,New Hampshire,33003,19,0 +2020-04-06,Carroll,New Hampshire,33003,19,0 +2020-04-07,Carroll,New Hampshire,33003,19,0 +2020-04-08,Carroll,New Hampshire,33003,23,0 +2020-04-09,Carroll,New Hampshire,33003,27,0 +2020-04-10,Carroll,New Hampshire,33003,28,0 +2020-04-11,Carroll,New Hampshire,33003,28,0 +2020-04-12,Carroll,New Hampshire,33003,28,0 +2020-04-13,Carroll,New Hampshire,33003,30,0 +2020-04-14,Carroll,New Hampshire,33003,29,0 +2020-04-15,Carroll,New Hampshire,33003,29,0 +2020-04-16,Carroll,New Hampshire,33003,29,0 +2020-04-17,Carroll,New Hampshire,33003,32,0 +2020-04-18,Carroll,New Hampshire,33003,30,0 +2020-04-19,Carroll,New Hampshire,33003,30,0 +2020-04-20,Carroll,New Hampshire,33003,30,0 +2020-04-21,Carroll,New Hampshire,33003,30,0 +2020-04-22,Carroll,New Hampshire,33003,30,0 +2020-04-23,Carroll,New Hampshire,33003,30,0 +2020-04-24,Carroll,New Hampshire,33003,30,0 +2020-04-25,Carroll,New Hampshire,33003,30,0 +2020-04-26,Carroll,New Hampshire,33003,30,0 +2020-04-27,Carroll,New Hampshire,33003,31,0 +2020-04-28,Carroll,New Hampshire,33003,31,0 +2020-04-29,Carroll,New Hampshire,33003,31,0 +2020-04-30,Carroll,New Hampshire,33003,31,0 +2020-05-01,Carroll,New Hampshire,33003,32,0 +2020-05-02,Carroll,New Hampshire,33003,32,0 +2020-05-03,Carroll,New Hampshire,33003,32,0 +2020-05-04,Carroll,New Hampshire,33003,33,0 +2020-05-05,Carroll,New Hampshire,33003,34,0 +2020-05-06,Carroll,New Hampshire,33003,34,0 +2020-05-07,Carroll,New Hampshire,33003,35,0 +2020-05-08,Carroll,New Hampshire,33003,36,0 +2020-05-09,Carroll,New Hampshire,33003,36,0 +2020-05-10,Carroll,New Hampshire,33003,37,0 +2020-05-11,Carroll,New Hampshire,33003,37,0 +2020-05-12,Carroll,New Hampshire,33003,37,0 +2020-05-13,Carroll,New Hampshire,33003,37,0 +2020-05-14,Carroll,New Hampshire,33003,39,0 +2020-05-15,Carroll,New Hampshire,33003,39,0 +2020-05-16,Carroll,New Hampshire,33003,41,0 +2020-05-17,Carroll,New Hampshire,33003,44,0 +2020-05-18,Carroll,New Hampshire,33003,44,0 +2020-05-19,Carroll,New Hampshire,33003,44,0 +2020-05-20,Carroll,New Hampshire,33003,44,0 +2020-05-21,Carroll,New Hampshire,33003,46,0 +2020-05-22,Carroll,New Hampshire,33003,46,0 +2020-05-23,Carroll,New Hampshire,33003,46,0 +2020-05-24,Carroll,New Hampshire,33003,46,0 +2020-05-25,Carroll,New Hampshire,33003,46,0 +2020-05-26,Carroll,New Hampshire,33003,46,0 +2020-05-27,Carroll,New Hampshire,33003,46,0 +2020-05-28,Carroll,New Hampshire,33003,46,0 +2020-05-29,Carroll,New Hampshire,33003,46,0 +2020-05-30,Carroll,New Hampshire,33003,47,0 +2020-05-31,Carroll,New Hampshire,33003,47,0 +2020-06-01,Carroll,New Hampshire,33003,48,0 +2020-06-02,Carroll,New Hampshire,33003,48,0 +2020-06-03,Carroll,New Hampshire,33003,48,0 +2020-06-04,Carroll,New Hampshire,33003,48,0 +2020-06-05,Carroll,New Hampshire,33003,48,0 +2020-06-06,Carroll,New Hampshire,33003,48,0 +2020-06-07,Carroll,New Hampshire,33003,48,0 +2020-06-08,Carroll,New Hampshire,33003,48,0 +2020-06-09,Carroll,New Hampshire,33003,49,0 +2020-06-10,Carroll,New Hampshire,33003,49,0 +2020-06-11,Carroll,New Hampshire,33003,49,0 +2020-06-12,Carroll,New Hampshire,33003,49,0 +2020-06-13,Carroll,New Hampshire,33003,49,0 +2020-06-14,Carroll,New Hampshire,33003,49,0 +2020-06-15,Carroll,New Hampshire,33003,49,0 +2020-06-16,Carroll,New Hampshire,33003,49,0 +2020-06-17,Carroll,New Hampshire,33003,49,0 +2020-06-18,Carroll,New Hampshire,33003,49,0 +2020-06-19,Carroll,New Hampshire,33003,51,0 +2020-06-20,Carroll,New Hampshire,33003,51,0 +2020-06-21,Carroll,New Hampshire,33003,52,0 +2020-06-22,Carroll,New Hampshire,33003,52,0 +2020-06-23,Carroll,New Hampshire,33003,52,0 +2020-06-24,Carroll,New Hampshire,33003,52,0 +2020-06-25,Carroll,New Hampshire,33003,53,0 +2020-06-26,Carroll,New Hampshire,33003,53,0 +2020-06-27,Carroll,New Hampshire,33003,53,0 +2020-06-28,Carroll,New Hampshire,33003,54,0 +2020-06-29,Carroll,New Hampshire,33003,54,0 +2020-06-30,Carroll,New Hampshire,33003,54,0 +2020-07-01,Carroll,New Hampshire,33003,54,0 +2020-07-02,Carroll,New Hampshire,33003,61,0 +2020-07-03,Carroll,New Hampshire,33003,61,0 +2020-07-04,Carroll,New Hampshire,33003,61,0 +2020-07-05,Carroll,New Hampshire,33003,60,0 +2020-07-06,Carroll,New Hampshire,33003,63,0 +2020-07-07,Carroll,New Hampshire,33003,64,0 +2020-07-08,Carroll,New Hampshire,33003,64,0 +2020-07-09,Carroll,New Hampshire,33003,65,0 +2020-03-20,Cheshire,New Hampshire,33005,1,0 +2020-03-21,Cheshire,New Hampshire,33005,1,0 +2020-03-22,Cheshire,New Hampshire,33005,1,0 +2020-03-23,Cheshire,New Hampshire,33005,1,0 +2020-03-24,Cheshire,New Hampshire,33005,1,0 +2020-03-25,Cheshire,New Hampshire,33005,1,0 +2020-03-26,Cheshire,New Hampshire,33005,2,0 +2020-03-27,Cheshire,New Hampshire,33005,2,0 +2020-03-28,Cheshire,New Hampshire,33005,2,0 +2020-03-29,Cheshire,New Hampshire,33005,3,0 +2020-03-30,Cheshire,New Hampshire,33005,3,0 +2020-03-31,Cheshire,New Hampshire,33005,4,0 +2020-04-01,Cheshire,New Hampshire,33005,7,0 +2020-04-02,Cheshire,New Hampshire,33005,8,0 +2020-04-03,Cheshire,New Hampshire,33005,9,0 +2020-04-04,Cheshire,New Hampshire,33005,10,0 +2020-04-05,Cheshire,New Hampshire,33005,11,0 +2020-04-06,Cheshire,New Hampshire,33005,13,0 +2020-04-07,Cheshire,New Hampshire,33005,13,1 +2020-04-08,Cheshire,New Hampshire,33005,14,1 +2020-04-09,Cheshire,New Hampshire,33005,14,2 +2020-04-10,Cheshire,New Hampshire,33005,17,2 +2020-04-11,Cheshire,New Hampshire,33005,18,2 +2020-04-12,Cheshire,New Hampshire,33005,19,2 +2020-04-13,Cheshire,New Hampshire,33005,20,2 +2020-04-14,Cheshire,New Hampshire,33005,21,2 +2020-04-15,Cheshire,New Hampshire,33005,26,2 +2020-04-16,Cheshire,New Hampshire,33005,26,2 +2020-04-17,Cheshire,New Hampshire,33005,27,2 +2020-04-18,Cheshire,New Hampshire,33005,28,2 +2020-04-19,Cheshire,New Hampshire,33005,29,2 +2020-04-20,Cheshire,New Hampshire,33005,30,2 +2020-04-21,Cheshire,New Hampshire,33005,30,2 +2020-04-22,Cheshire,New Hampshire,33005,33,2 +2020-04-23,Cheshire,New Hampshire,33005,35,2 +2020-04-24,Cheshire,New Hampshire,33005,35,2 +2020-04-25,Cheshire,New Hampshire,33005,36,2 +2020-04-26,Cheshire,New Hampshire,33005,36,2 +2020-04-27,Cheshire,New Hampshire,33005,38,2 +2020-04-28,Cheshire,New Hampshire,33005,40,2 +2020-04-29,Cheshire,New Hampshire,33005,40,2 +2020-04-30,Cheshire,New Hampshire,33005,40,2 +2020-05-01,Cheshire,New Hampshire,33005,40,2 +2020-05-02,Cheshire,New Hampshire,33005,40,2 +2020-05-03,Cheshire,New Hampshire,33005,40,2 +2020-05-04,Cheshire,New Hampshire,33005,40,2 +2020-05-05,Cheshire,New Hampshire,33005,41,2 +2020-05-06,Cheshire,New Hampshire,33005,41,2 +2020-05-07,Cheshire,New Hampshire,33005,41,2 +2020-05-08,Cheshire,New Hampshire,33005,43,2 +2020-05-09,Cheshire,New Hampshire,33005,43,2 +2020-05-10,Cheshire,New Hampshire,33005,43,2 +2020-05-11,Cheshire,New Hampshire,33005,43,2 +2020-05-12,Cheshire,New Hampshire,33005,44,2 +2020-05-13,Cheshire,New Hampshire,33005,45,2 +2020-05-14,Cheshire,New Hampshire,33005,45,2 +2020-05-15,Cheshire,New Hampshire,33005,47,2 +2020-05-16,Cheshire,New Hampshire,33005,47,2 +2020-05-17,Cheshire,New Hampshire,33005,47,2 +2020-05-18,Cheshire,New Hampshire,33005,48,2 +2020-05-19,Cheshire,New Hampshire,33005,49,2 +2020-05-20,Cheshire,New Hampshire,33005,49,2 +2020-05-21,Cheshire,New Hampshire,33005,50,2 +2020-05-22,Cheshire,New Hampshire,33005,51,2 +2020-05-23,Cheshire,New Hampshire,33005,51,2 +2020-05-24,Cheshire,New Hampshire,33005,52,2 +2020-05-25,Cheshire,New Hampshire,33005,54,2 +2020-05-26,Cheshire,New Hampshire,33005,54,2 +2020-05-27,Cheshire,New Hampshire,33005,54,2 +2020-05-28,Cheshire,New Hampshire,33005,55,2 +2020-05-29,Cheshire,New Hampshire,33005,57,2 +2020-05-30,Cheshire,New Hampshire,33005,57,2 +2020-05-31,Cheshire,New Hampshire,33005,57,2 +2020-06-01,Cheshire,New Hampshire,33005,57,2 +2020-06-02,Cheshire,New Hampshire,33005,57,2 +2020-06-03,Cheshire,New Hampshire,33005,57,2 +2020-06-04,Cheshire,New Hampshire,33005,57,2 +2020-06-05,Cheshire,New Hampshire,33005,57,2 +2020-06-06,Cheshire,New Hampshire,33005,57,2 +2020-06-07,Cheshire,New Hampshire,33005,57,2 +2020-06-08,Cheshire,New Hampshire,33005,59,2 +2020-06-09,Cheshire,New Hampshire,33005,59,2 +2020-06-10,Cheshire,New Hampshire,33005,59,2 +2020-06-11,Cheshire,New Hampshire,33005,60,2 +2020-06-12,Cheshire,New Hampshire,33005,60,2 +2020-06-13,Cheshire,New Hampshire,33005,60,2 +2020-06-14,Cheshire,New Hampshire,33005,60,2 +2020-06-15,Cheshire,New Hampshire,33005,60,2 +2020-06-16,Cheshire,New Hampshire,33005,62,2 +2020-06-17,Cheshire,New Hampshire,33005,63,2 +2020-06-18,Cheshire,New Hampshire,33005,62,2 +2020-06-19,Cheshire,New Hampshire,33005,63,2 +2020-06-20,Cheshire,New Hampshire,33005,64,2 +2020-06-21,Cheshire,New Hampshire,33005,64,2 +2020-06-22,Cheshire,New Hampshire,33005,64,2 +2020-06-23,Cheshire,New Hampshire,33005,64,2 +2020-06-24,Cheshire,New Hampshire,33005,66,2 +2020-06-25,Cheshire,New Hampshire,33005,66,2 +2020-06-26,Cheshire,New Hampshire,33005,67,2 +2020-06-27,Cheshire,New Hampshire,33005,67,2 +2020-06-28,Cheshire,New Hampshire,33005,67,2 +2020-06-29,Cheshire,New Hampshire,33005,69,2 +2020-06-30,Cheshire,New Hampshire,33005,71,2 +2020-07-01,Cheshire,New Hampshire,33005,72,2 +2020-07-02,Cheshire,New Hampshire,33005,72,2 +2020-07-03,Cheshire,New Hampshire,33005,72,2 +2020-07-04,Cheshire,New Hampshire,33005,72,2 +2020-07-05,Cheshire,New Hampshire,33005,73,2 +2020-07-06,Cheshire,New Hampshire,33005,73,2 +2020-07-07,Cheshire,New Hampshire,33005,74,2 +2020-07-08,Cheshire,New Hampshire,33005,74,2 +2020-07-09,Cheshire,New Hampshire,33005,75,2 +2020-04-03,Coos,New Hampshire,33007,1,0 +2020-04-04,Coos,New Hampshire,33007,1,0 +2020-04-05,Coos,New Hampshire,33007,1,0 +2020-04-06,Coos,New Hampshire,33007,1,0 +2020-04-07,Coos,New Hampshire,33007,1,0 +2020-04-08,Coos,New Hampshire,33007,1,0 +2020-04-09,Coos,New Hampshire,33007,1,0 +2020-04-10,Coos,New Hampshire,33007,2,0 +2020-04-11,Coos,New Hampshire,33007,2,0 +2020-04-12,Coos,New Hampshire,33007,2,0 +2020-04-13,Coos,New Hampshire,33007,2,0 +2020-04-14,Coos,New Hampshire,33007,2,0 +2020-04-15,Coos,New Hampshire,33007,2,0 +2020-04-16,Coos,New Hampshire,33007,2,0 +2020-04-17,Coos,New Hampshire,33007,2,0 +2020-04-18,Coos,New Hampshire,33007,2,0 +2020-04-19,Coos,New Hampshire,33007,2,0 +2020-04-20,Coos,New Hampshire,33007,2,0 +2020-04-21,Coos,New Hampshire,33007,2,0 +2020-04-22,Coos,New Hampshire,33007,2,0 +2020-04-23,Coos,New Hampshire,33007,2,0 +2020-04-24,Coos,New Hampshire,33007,2,0 +2020-04-25,Coos,New Hampshire,33007,2,0 +2020-04-26,Coos,New Hampshire,33007,2,0 +2020-04-27,Coos,New Hampshire,33007,2,0 +2020-04-28,Coos,New Hampshire,33007,2,0 +2020-04-29,Coos,New Hampshire,33007,2,0 +2020-04-30,Coos,New Hampshire,33007,2,0 +2020-05-01,Coos,New Hampshire,33007,2,0 +2020-05-02,Coos,New Hampshire,33007,2,0 +2020-05-03,Coos,New Hampshire,33007,2,0 +2020-05-04,Coos,New Hampshire,33007,2,0 +2020-05-05,Coos,New Hampshire,33007,2,0 +2020-05-06,Coos,New Hampshire,33007,2,0 +2020-05-07,Coos,New Hampshire,33007,2,0 +2020-05-08,Coos,New Hampshire,33007,2,0 +2020-05-09,Coos,New Hampshire,33007,2,0 +2020-05-10,Coos,New Hampshire,33007,2,0 +2020-05-11,Coos,New Hampshire,33007,2,0 +2020-05-12,Coos,New Hampshire,33007,2,0 +2020-05-13,Coos,New Hampshire,33007,2,0 +2020-05-14,Coos,New Hampshire,33007,2,0 +2020-05-15,Coos,New Hampshire,33007,4,0 +2020-05-16,Coos,New Hampshire,33007,4,0 +2020-05-17,Coos,New Hampshire,33007,4,0 +2020-05-18,Coos,New Hampshire,33007,4,0 +2020-05-19,Coos,New Hampshire,33007,4,0 +2020-05-20,Coos,New Hampshire,33007,4,0 +2020-05-21,Coos,New Hampshire,33007,4,0 +2020-05-22,Coos,New Hampshire,33007,4,0 +2020-05-23,Coos,New Hampshire,33007,4,0 +2020-05-24,Coos,New Hampshire,33007,4,0 +2020-05-25,Coos,New Hampshire,33007,4,0 +2020-05-26,Coos,New Hampshire,33007,5,0 +2020-05-27,Coos,New Hampshire,33007,5,0 +2020-05-28,Coos,New Hampshire,33007,5,0 +2020-05-29,Coos,New Hampshire,33007,5,0 +2020-05-30,Coos,New Hampshire,33007,5,0 +2020-05-31,Coos,New Hampshire,33007,5,0 +2020-06-01,Coos,New Hampshire,33007,5,0 +2020-06-02,Coos,New Hampshire,33007,5,0 +2020-06-03,Coos,New Hampshire,33007,5,0 +2020-06-04,Coos,New Hampshire,33007,5,0 +2020-06-05,Coos,New Hampshire,33007,5,0 +2020-06-06,Coos,New Hampshire,33007,5,0 +2020-06-07,Coos,New Hampshire,33007,5,0 +2020-06-08,Coos,New Hampshire,33007,6,0 +2020-06-09,Coos,New Hampshire,33007,6,0 +2020-06-10,Coos,New Hampshire,33007,6,0 +2020-06-11,Coos,New Hampshire,33007,6,0 +2020-06-12,Coos,New Hampshire,33007,6,0 +2020-06-13,Coos,New Hampshire,33007,6,0 +2020-06-14,Coos,New Hampshire,33007,6,0 +2020-06-15,Coos,New Hampshire,33007,6,0 +2020-06-16,Coos,New Hampshire,33007,6,0 +2020-06-17,Coos,New Hampshire,33007,6,0 +2020-06-18,Coos,New Hampshire,33007,6,0 +2020-06-19,Coos,New Hampshire,33007,6,0 +2020-06-20,Coos,New Hampshire,33007,6,0 +2020-06-21,Coos,New Hampshire,33007,6,0 +2020-06-22,Coos,New Hampshire,33007,6,0 +2020-06-23,Coos,New Hampshire,33007,6,0 +2020-06-24,Coos,New Hampshire,33007,6,0 +2020-06-25,Coos,New Hampshire,33007,6,0 +2020-06-26,Coos,New Hampshire,33007,6,0 +2020-06-27,Coos,New Hampshire,33007,6,0 +2020-06-28,Coos,New Hampshire,33007,6,0 +2020-06-29,Coos,New Hampshire,33007,6,0 +2020-06-30,Coos,New Hampshire,33007,7,0 +2020-07-01,Coos,New Hampshire,33007,7,0 +2020-07-02,Coos,New Hampshire,33007,7,0 +2020-07-03,Coos,New Hampshire,33007,7,0 +2020-07-04,Coos,New Hampshire,33007,7,0 +2020-07-05,Coos,New Hampshire,33007,7,0 +2020-07-06,Coos,New Hampshire,33007,9,0 +2020-07-07,Coos,New Hampshire,33007,9,0 +2020-07-08,Coos,New Hampshire,33007,9,0 +2020-07-09,Coos,New Hampshire,33007,9,0 +2020-03-02,Grafton,New Hampshire,33009,1,0 +2020-03-03,Grafton,New Hampshire,33009,2,0 +2020-03-04,Grafton,New Hampshire,33009,2,0 +2020-03-05,Grafton,New Hampshire,33009,2,0 +2020-03-06,Grafton,New Hampshire,33009,2,0 +2020-03-07,Grafton,New Hampshire,33009,3,0 +2020-03-08,Grafton,New Hampshire,33009,3,0 +2020-03-09,Grafton,New Hampshire,33009,3,0 +2020-03-10,Grafton,New Hampshire,33009,3,0 +2020-03-11,Grafton,New Hampshire,33009,3,0 +2020-03-12,Grafton,New Hampshire,33009,3,0 +2020-03-13,Grafton,New Hampshire,33009,3,0 +2020-03-14,Grafton,New Hampshire,33009,3,0 +2020-03-15,Grafton,New Hampshire,33009,3,0 +2020-03-16,Grafton,New Hampshire,33009,5,0 +2020-03-17,Grafton,New Hampshire,33009,7,0 +2020-03-18,Grafton,New Hampshire,33009,7,0 +2020-03-19,Grafton,New Hampshire,33009,9,0 +2020-03-20,Grafton,New Hampshire,33009,13,0 +2020-03-21,Grafton,New Hampshire,33009,14,0 +2020-03-22,Grafton,New Hampshire,33009,15,0 +2020-03-23,Grafton,New Hampshire,33009,20,0 +2020-03-24,Grafton,New Hampshire,33009,21,0 +2020-03-25,Grafton,New Hampshire,33009,22,0 +2020-03-26,Grafton,New Hampshire,33009,23,0 +2020-03-27,Grafton,New Hampshire,33009,26,0 +2020-03-28,Grafton,New Hampshire,33009,28,0 +2020-03-29,Grafton,New Hampshire,33009,30,0 +2020-03-30,Grafton,New Hampshire,33009,35,0 +2020-03-31,Grafton,New Hampshire,33009,35,0 +2020-04-01,Grafton,New Hampshire,33009,36,0 +2020-04-02,Grafton,New Hampshire,33009,38,0 +2020-04-03,Grafton,New Hampshire,33009,38,0 +2020-04-04,Grafton,New Hampshire,33009,41,0 +2020-04-05,Grafton,New Hampshire,33009,41,0 +2020-04-06,Grafton,New Hampshire,33009,41,0 +2020-04-07,Grafton,New Hampshire,33009,41,0 +2020-04-08,Grafton,New Hampshire,33009,43,0 +2020-04-09,Grafton,New Hampshire,33009,43,0 +2020-04-10,Grafton,New Hampshire,33009,43,0 +2020-04-11,Grafton,New Hampshire,33009,43,0 +2020-04-12,Grafton,New Hampshire,33009,45,0 +2020-04-13,Grafton,New Hampshire,33009,45,0 +2020-04-14,Grafton,New Hampshire,33009,45,0 +2020-04-15,Grafton,New Hampshire,33009,44,0 +2020-04-16,Grafton,New Hampshire,33009,44,0 +2020-04-17,Grafton,New Hampshire,33009,44,0 +2020-04-18,Grafton,New Hampshire,33009,45,0 +2020-04-19,Grafton,New Hampshire,33009,45,0 +2020-04-20,Grafton,New Hampshire,33009,45,0 +2020-04-21,Grafton,New Hampshire,33009,45,0 +2020-04-22,Grafton,New Hampshire,33009,45,0 +2020-04-23,Grafton,New Hampshire,33009,46,0 +2020-04-24,Grafton,New Hampshire,33009,47,0 +2020-04-25,Grafton,New Hampshire,33009,47,0 +2020-04-26,Grafton,New Hampshire,33009,48,0 +2020-04-27,Grafton,New Hampshire,33009,48,0 +2020-04-28,Grafton,New Hampshire,33009,48,0 +2020-04-29,Grafton,New Hampshire,33009,48,0 +2020-04-30,Grafton,New Hampshire,33009,50,0 +2020-05-01,Grafton,New Hampshire,33009,51,1 +2020-05-02,Grafton,New Hampshire,33009,53,1 +2020-05-03,Grafton,New Hampshire,33009,53,1 +2020-05-04,Grafton,New Hampshire,33009,53,1 +2020-05-05,Grafton,New Hampshire,33009,54,1 +2020-05-06,Grafton,New Hampshire,33009,54,1 +2020-05-07,Grafton,New Hampshire,33009,55,1 +2020-05-08,Grafton,New Hampshire,33009,56,1 +2020-05-09,Grafton,New Hampshire,33009,55,1 +2020-05-10,Grafton,New Hampshire,33009,56,1 +2020-05-11,Grafton,New Hampshire,33009,58,1 +2020-05-12,Grafton,New Hampshire,33009,57,1 +2020-05-13,Grafton,New Hampshire,33009,58,1 +2020-05-14,Grafton,New Hampshire,33009,59,1 +2020-05-15,Grafton,New Hampshire,33009,61,1 +2020-05-16,Grafton,New Hampshire,33009,61,1 +2020-05-17,Grafton,New Hampshire,33009,61,1 +2020-05-18,Grafton,New Hampshire,33009,62,1 +2020-05-19,Grafton,New Hampshire,33009,63,1 +2020-05-20,Grafton,New Hampshire,33009,64,1 +2020-05-21,Grafton,New Hampshire,33009,66,1 +2020-05-22,Grafton,New Hampshire,33009,68,1 +2020-05-23,Grafton,New Hampshire,33009,69,1 +2020-05-24,Grafton,New Hampshire,33009,69,1 +2020-05-25,Grafton,New Hampshire,33009,69,1 +2020-05-26,Grafton,New Hampshire,33009,69,1 +2020-05-27,Grafton,New Hampshire,33009,72,1 +2020-05-28,Grafton,New Hampshire,33009,74,1 +2020-05-29,Grafton,New Hampshire,33009,74,1 +2020-05-30,Grafton,New Hampshire,33009,75,1 +2020-05-31,Grafton,New Hampshire,33009,76,1 +2020-06-01,Grafton,New Hampshire,33009,76,1 +2020-06-02,Grafton,New Hampshire,33009,76,1 +2020-06-03,Grafton,New Hampshire,33009,76,1 +2020-06-04,Grafton,New Hampshire,33009,76,1 +2020-06-05,Grafton,New Hampshire,33009,76,1 +2020-06-06,Grafton,New Hampshire,33009,77,1 +2020-06-07,Grafton,New Hampshire,33009,76,1 +2020-06-08,Grafton,New Hampshire,33009,76,1 +2020-06-09,Grafton,New Hampshire,33009,76,1 +2020-06-10,Grafton,New Hampshire,33009,76,1 +2020-06-11,Grafton,New Hampshire,33009,76,1 +2020-06-12,Grafton,New Hampshire,33009,76,1 +2020-06-13,Grafton,New Hampshire,33009,76,1 +2020-06-14,Grafton,New Hampshire,33009,76,1 +2020-06-15,Grafton,New Hampshire,33009,76,1 +2020-06-16,Grafton,New Hampshire,33009,75,1 +2020-06-17,Grafton,New Hampshire,33009,75,1 +2020-06-18,Grafton,New Hampshire,33009,76,1 +2020-06-19,Grafton,New Hampshire,33009,76,1 +2020-06-20,Grafton,New Hampshire,33009,76,1 +2020-06-21,Grafton,New Hampshire,33009,76,1 +2020-06-22,Grafton,New Hampshire,33009,76,1 +2020-06-23,Grafton,New Hampshire,33009,76,1 +2020-06-24,Grafton,New Hampshire,33009,77,1 +2020-06-25,Grafton,New Hampshire,33009,80,1 +2020-06-26,Grafton,New Hampshire,33009,83,1 +2020-06-27,Grafton,New Hampshire,33009,83,1 +2020-06-28,Grafton,New Hampshire,33009,84,1 +2020-06-29,Grafton,New Hampshire,33009,84,1 +2020-06-30,Grafton,New Hampshire,33009,85,1 +2020-07-01,Grafton,New Hampshire,33009,86,1 +2020-07-02,Grafton,New Hampshire,33009,86,1 +2020-07-03,Grafton,New Hampshire,33009,87,1 +2020-07-04,Grafton,New Hampshire,33009,87,1 +2020-07-05,Grafton,New Hampshire,33009,88,1 +2020-07-06,Grafton,New Hampshire,33009,88,1 +2020-07-07,Grafton,New Hampshire,33009,88,1 +2020-07-08,Grafton,New Hampshire,33009,90,1 +2020-07-09,Grafton,New Hampshire,33009,90,1 +2020-03-15,Hillsborough,New Hampshire,33011,1,0 +2020-03-16,Hillsborough,New Hampshire,33011,1,0 +2020-03-17,Hillsborough,New Hampshire,33011,4,0 +2020-03-18,Hillsborough,New Hampshire,33011,8,0 +2020-03-19,Hillsborough,New Hampshire,33011,8,0 +2020-03-20,Hillsborough,New Hampshire,33011,11,0 +2020-03-21,Hillsborough,New Hampshire,33011,12,0 +2020-03-22,Hillsborough,New Hampshire,33011,16,0 +2020-03-23,Hillsborough,New Hampshire,33011,19,1 +2020-03-24,Hillsborough,New Hampshire,33011,20,1 +2020-03-25,Hillsborough,New Hampshire,33011,30,1 +2020-03-26,Hillsborough,New Hampshire,33011,35,1 +2020-03-27,Hillsborough,New Hampshire,33011,43,2 +2020-03-28,Hillsborough,New Hampshire,33011,53,2 +2020-03-29,Hillsborough,New Hampshire,33011,68,2 +2020-03-30,Hillsborough,New Hampshire,33011,91,2 +2020-03-31,Hillsborough,New Hampshire,33011,108,2 +2020-04-01,Hillsborough,New Hampshire,33011,129,2 +2020-04-02,Hillsborough,New Hampshire,33011,163,3 +2020-04-03,Hillsborough,New Hampshire,33011,194,5 +2020-04-04,Hillsborough,New Hampshire,33011,231,7 +2020-04-05,Hillsborough,New Hampshire,33011,249,7 +2020-04-06,Hillsborough,New Hampshire,33011,272,7 +2020-04-07,Hillsborough,New Hampshire,33011,288,9 +2020-04-08,Hillsborough,New Hampshire,33011,303,13 +2020-04-09,Hillsborough,New Hampshire,33011,318,14 +2020-04-10,Hillsborough,New Hampshire,33011,344,15 +2020-04-11,Hillsborough,New Hampshire,33011,367,15 +2020-04-12,Hillsborough,New Hampshire,33011,385,15 +2020-04-13,Hillsborough,New Hampshire,33011,398,15 +2020-04-14,Hillsborough,New Hampshire,33011,440,19 +2020-04-15,Hillsborough,New Hampshire,33011,458,21 +2020-04-16,Hillsborough,New Hampshire,33011,483,22 +2020-04-17,Hillsborough,New Hampshire,33011,525,23 +2020-04-18,Hillsborough,New Hampshire,33011,552,23 +2020-04-19,Hillsborough,New Hampshire,33011,581,24 +2020-04-20,Hillsborough,New Hampshire,33011,604,24 +2020-04-21,Hillsborough,New Hampshire,33011,626,24 +2020-04-22,Hillsborough,New Hampshire,33011,681,27 +2020-04-23,Hillsborough,New Hampshire,33011,721,28 +2020-04-24,Hillsborough,New Hampshire,33011,753,28 +2020-04-25,Hillsborough,New Hampshire,33011,780,31 +2020-04-26,Hillsborough,New Hampshire,33011,824,31 +2020-04-27,Hillsborough,New Hampshire,33011,859,31 +2020-04-28,Hillsborough,New Hampshire,33011,896,31 +2020-04-29,Hillsborough,New Hampshire,33011,931,32 +2020-04-30,Hillsborough,New Hampshire,33011,964,35 +2020-05-01,Hillsborough,New Hampshire,33011,1012,39 +2020-05-02,Hillsborough,New Hampshire,33011,1058,40 +2020-05-03,Hillsborough,New Hampshire,33011,1109,41 +2020-05-04,Hillsborough,New Hampshire,33011,1157,41 +2020-05-05,Hillsborough,New Hampshire,33011,1181,43 +2020-05-06,Hillsborough,New Hampshire,33011,1252,47 +2020-05-07,Hillsborough,New Hampshire,33011,1308,48 +2020-05-08,Hillsborough,New Hampshire,33011,1375,51 +2020-05-09,Hillsborough,New Hampshire,33011,1404,54 +2020-05-10,Hillsborough,New Hampshire,33011,1438,55 +2020-05-11,Hillsborough,New Hampshire,33011,1496,55 +2020-05-12,Hillsborough,New Hampshire,33011,1551,61 +2020-05-13,Hillsborough,New Hampshire,33011,1592,66 +2020-05-14,Hillsborough,New Hampshire,33011,1624,67 +2020-05-15,Hillsborough,New Hampshire,33011,1680,73 +2020-05-16,Hillsborough,New Hampshire,33011,1723,83 +2020-05-17,Hillsborough,New Hampshire,33011,1747,84 +2020-05-18,Hillsborough,New Hampshire,33011,1764,84 +2020-05-19,Hillsborough,New Hampshire,33011,1820,91 +2020-05-20,Hillsborough,New Hampshire,33011,1932,96 +2020-05-21,Hillsborough,New Hampshire,33011,1963,104 +2020-05-22,Hillsborough,New Hampshire,33011,2004,107 +2020-05-23,Hillsborough,New Hampshire,33011,2049,111 +2020-05-24,Hillsborough,New Hampshire,33011,2095,112 +2020-05-25,Hillsborough,New Hampshire,33011,2132,113 +2020-05-26,Hillsborough,New Hampshire,33011,2149,117 +2020-05-27,Hillsborough,New Hampshire,33011,2183,124 +2020-05-28,Hillsborough,New Hampshire,33011,2254,132 +2020-05-29,Hillsborough,New Hampshire,33011,2342,138 +2020-05-30,Hillsborough,New Hampshire,33011,2378,138 +2020-05-31,Hillsborough,New Hampshire,33011,2464,139 +2020-06-01,Hillsborough,New Hampshire,33011,2486,139 +2020-06-02,Hillsborough,New Hampshire,33011,2528,148 +2020-06-03,Hillsborough,New Hampshire,33011,2554,155 +2020-06-04,Hillsborough,New Hampshire,33011,2614,162 +2020-06-05,Hillsborough,New Hampshire,33011,2670,167 +2020-06-06,Hillsborough,New Hampshire,33011,2709,172 +2020-06-07,Hillsborough,New Hampshire,33011,2731,175 +2020-06-08,Hillsborough,New Hampshire,33011,2753,175 +2020-06-09,Hillsborough,New Hampshire,33011,2792,181 +2020-06-10,Hillsborough,New Hampshire,33011,2833,187 +2020-06-11,Hillsborough,New Hampshire,33011,2853,194 +2020-06-12,Hillsborough,New Hampshire,33011,2883,200 +2020-06-13,Hillsborough,New Hampshire,33011,2925,203 +2020-06-14,Hillsborough,New Hampshire,33011,2942,205 +2020-06-15,Hillsborough,New Hampshire,33011,2963,205 +2020-06-16,Hillsborough,New Hampshire,33011,2981,209 +2020-06-17,Hillsborough,New Hampshire,33011,3048,213 +2020-06-18,Hillsborough,New Hampshire,33011,3060,214 +2020-06-19,Hillsborough,New Hampshire,33011,3087,218 +2020-06-20,Hillsborough,New Hampshire,33011,3110,220 +2020-06-21,Hillsborough,New Hampshire,33011,3126,220 +2020-06-22,Hillsborough,New Hampshire,33011,3134,220 +2020-06-23,Hillsborough,New Hampshire,33011,3145,224 +2020-06-24,Hillsborough,New Hampshire,33011,3163,226 +2020-06-25,Hillsborough,New Hampshire,33011,3187,234 +2020-06-26,Hillsborough,New Hampshire,33011,3199,241 +2020-06-27,Hillsborough,New Hampshire,33011,3231,242 +2020-06-28,Hillsborough,New Hampshire,33011,3254,242 +2020-06-29,Hillsborough,New Hampshire,33011,3263,242 +2020-06-30,Hillsborough,New Hampshire,33011,3275,246 +2020-07-01,Hillsborough,New Hampshire,33011,3288,248 +2020-07-02,Hillsborough,New Hampshire,33011,3295,250 +2020-07-03,Hillsborough,New Hampshire,33011,3312,251 +2020-07-04,Hillsborough,New Hampshire,33011,3322,253 +2020-07-05,Hillsborough,New Hampshire,33011,3341,253 +2020-07-06,Hillsborough,New Hampshire,33011,3348,253 +2020-07-07,Hillsborough,New Hampshire,33011,3361,254 +2020-07-08,Hillsborough,New Hampshire,33011,3370,256 +2020-07-09,Hillsborough,New Hampshire,33011,3387,257 +2020-03-18,Merrimack,New Hampshire,33013,1,0 +2020-03-19,Merrimack,New Hampshire,33013,2,0 +2020-03-20,Merrimack,New Hampshire,33013,2,0 +2020-03-21,Merrimack,New Hampshire,33013,4,0 +2020-03-22,Merrimack,New Hampshire,33013,4,0 +2020-03-23,Merrimack,New Hampshire,33013,4,0 +2020-03-24,Merrimack,New Hampshire,33013,4,0 +2020-03-25,Merrimack,New Hampshire,33013,5,0 +2020-03-26,Merrimack,New Hampshire,33013,7,0 +2020-03-27,Merrimack,New Hampshire,33013,11,0 +2020-03-28,Merrimack,New Hampshire,33013,14,0 +2020-03-29,Merrimack,New Hampshire,33013,18,0 +2020-03-30,Merrimack,New Hampshire,33013,22,0 +2020-03-31,Merrimack,New Hampshire,33013,27,0 +2020-04-01,Merrimack,New Hampshire,33013,28,0 +2020-04-02,Merrimack,New Hampshire,33013,33,0 +2020-04-03,Merrimack,New Hampshire,33013,36,0 +2020-04-04,Merrimack,New Hampshire,33013,39,0 +2020-04-05,Merrimack,New Hampshire,33013,45,0 +2020-04-06,Merrimack,New Hampshire,33013,52,0 +2020-04-07,Merrimack,New Hampshire,33013,56,0 +2020-04-08,Merrimack,New Hampshire,33013,60,1 +2020-04-09,Merrimack,New Hampshire,33013,63,2 +2020-04-10,Merrimack,New Hampshire,33013,66,2 +2020-04-11,Merrimack,New Hampshire,33013,71,2 +2020-04-12,Merrimack,New Hampshire,33013,73,2 +2020-04-13,Merrimack,New Hampshire,33013,75,2 +2020-04-14,Merrimack,New Hampshire,33013,75,2 +2020-04-15,Merrimack,New Hampshire,33013,81,3 +2020-04-16,Merrimack,New Hampshire,33013,85,3 +2020-04-17,Merrimack,New Hampshire,33013,88,3 +2020-04-18,Merrimack,New Hampshire,33013,92,3 +2020-04-19,Merrimack,New Hampshire,33013,94,3 +2020-04-20,Merrimack,New Hampshire,33013,96,3 +2020-04-21,Merrimack,New Hampshire,33013,101,3 +2020-04-22,Merrimack,New Hampshire,33013,105,3 +2020-04-23,Merrimack,New Hampshire,33013,113,3 +2020-04-24,Merrimack,New Hampshire,33013,115,3 +2020-04-25,Merrimack,New Hampshire,33013,129,3 +2020-04-26,Merrimack,New Hampshire,33013,126,3 +2020-04-27,Merrimack,New Hampshire,33013,128,3 +2020-04-28,Merrimack,New Hampshire,33013,144,3 +2020-04-29,Merrimack,New Hampshire,33013,145,3 +2020-04-30,Merrimack,New Hampshire,33013,177,3 +2020-05-01,Merrimack,New Hampshire,33013,185,4 +2020-05-02,Merrimack,New Hampshire,33013,191,4 +2020-05-03,Merrimack,New Hampshire,33013,195,4 +2020-05-04,Merrimack,New Hampshire,33013,200,4 +2020-05-05,Merrimack,New Hampshire,33013,206,4 +2020-05-06,Merrimack,New Hampshire,33013,213,7 +2020-05-07,Merrimack,New Hampshire,33013,220,7 +2020-05-08,Merrimack,New Hampshire,33013,227,8 +2020-05-09,Merrimack,New Hampshire,33013,234,9 +2020-05-10,Merrimack,New Hampshire,33013,237,10 +2020-05-11,Merrimack,New Hampshire,33013,243,10 +2020-05-12,Merrimack,New Hampshire,33013,252,11 +2020-05-13,Merrimack,New Hampshire,33013,256,12 +2020-05-14,Merrimack,New Hampshire,33013,261,12 +2020-05-15,Merrimack,New Hampshire,33013,221,12 +2020-05-16,Merrimack,New Hampshire,33013,278,12 +2020-05-17,Merrimack,New Hampshire,33013,278,12 +2020-05-18,Merrimack,New Hampshire,33013,282,12 +2020-05-19,Merrimack,New Hampshire,33013,283,12 +2020-05-20,Merrimack,New Hampshire,33013,290,12 +2020-05-21,Merrimack,New Hampshire,33013,299,12 +2020-05-22,Merrimack,New Hampshire,33013,307,13 +2020-05-23,Merrimack,New Hampshire,33013,312,13 +2020-05-24,Merrimack,New Hampshire,33013,320,13 +2020-05-25,Merrimack,New Hampshire,33013,321,13 +2020-05-26,Merrimack,New Hampshire,33013,324,13 +2020-05-27,Merrimack,New Hampshire,33013,327,13 +2020-05-28,Merrimack,New Hampshire,33013,331,13 +2020-05-29,Merrimack,New Hampshire,33013,334,13 +2020-05-30,Merrimack,New Hampshire,33013,340,14 +2020-05-31,Merrimack,New Hampshire,33013,342,14 +2020-06-01,Merrimack,New Hampshire,33013,346,14 +2020-06-02,Merrimack,New Hampshire,33013,352,15 +2020-06-03,Merrimack,New Hampshire,33013,353,17 +2020-06-04,Merrimack,New Hampshire,33013,359,18 +2020-06-05,Merrimack,New Hampshire,33013,367,18 +2020-06-06,Merrimack,New Hampshire,33013,371,18 +2020-06-07,Merrimack,New Hampshire,33013,372,18 +2020-06-08,Merrimack,New Hampshire,33013,375,18 +2020-06-09,Merrimack,New Hampshire,33013,380,18 +2020-06-10,Merrimack,New Hampshire,33013,383,18 +2020-06-11,Merrimack,New Hampshire,33013,386,18 +2020-06-12,Merrimack,New Hampshire,33013,390,18 +2020-06-13,Merrimack,New Hampshire,33013,391,18 +2020-06-14,Merrimack,New Hampshire,33013,391,18 +2020-06-15,Merrimack,New Hampshire,33013,392,18 +2020-06-16,Merrimack,New Hampshire,33013,392,18 +2020-06-17,Merrimack,New Hampshire,33013,392,18 +2020-06-18,Merrimack,New Hampshire,33013,392,18 +2020-06-19,Merrimack,New Hampshire,33013,393,18 +2020-06-20,Merrimack,New Hampshire,33013,396,18 +2020-06-21,Merrimack,New Hampshire,33013,396,18 +2020-06-22,Merrimack,New Hampshire,33013,397,18 +2020-06-23,Merrimack,New Hampshire,33013,398,18 +2020-06-24,Merrimack,New Hampshire,33013,400,18 +2020-06-25,Merrimack,New Hampshire,33013,401,18 +2020-06-26,Merrimack,New Hampshire,33013,407,18 +2020-06-27,Merrimack,New Hampshire,33013,408,18 +2020-06-28,Merrimack,New Hampshire,33013,407,18 +2020-06-29,Merrimack,New Hampshire,33013,409,18 +2020-06-30,Merrimack,New Hampshire,33013,410,18 +2020-07-01,Merrimack,New Hampshire,33013,412,18 +2020-07-02,Merrimack,New Hampshire,33013,414,18 +2020-07-03,Merrimack,New Hampshire,33013,417,18 +2020-07-04,Merrimack,New Hampshire,33013,418,18 +2020-07-05,Merrimack,New Hampshire,33013,418,18 +2020-07-06,Merrimack,New Hampshire,33013,419,18 +2020-07-07,Merrimack,New Hampshire,33013,420,19 +2020-07-08,Merrimack,New Hampshire,33013,421,19 +2020-07-09,Merrimack,New Hampshire,33013,422,19 +2020-03-07,Rockingham,New Hampshire,33015,1,0 +2020-03-08,Rockingham,New Hampshire,33015,1,0 +2020-03-09,Rockingham,New Hampshire,33015,1,0 +2020-03-10,Rockingham,New Hampshire,33015,2,0 +2020-03-11,Rockingham,New Hampshire,33015,2,0 +2020-03-12,Rockingham,New Hampshire,33015,3,0 +2020-03-13,Rockingham,New Hampshire,33015,4,0 +2020-03-14,Rockingham,New Hampshire,33015,4,0 +2020-03-15,Rockingham,New Hampshire,33015,9,0 +2020-03-16,Rockingham,New Hampshire,33015,10,0 +2020-03-17,Rockingham,New Hampshire,33015,14,0 +2020-03-18,Rockingham,New Hampshire,33015,17,0 +2020-03-19,Rockingham,New Hampshire,33015,18,0 +2020-03-20,Rockingham,New Hampshire,33015,20,0 +2020-03-21,Rockingham,New Hampshire,33015,25,0 +2020-03-22,Rockingham,New Hampshire,33015,28,0 +2020-03-23,Rockingham,New Hampshire,33015,38,0 +2020-03-24,Rockingham,New Hampshire,33015,42,0 +2020-03-25,Rockingham,New Hampshire,33015,56,0 +2020-03-26,Rockingham,New Hampshire,33015,67,0 +2020-03-27,Rockingham,New Hampshire,33015,75,0 +2020-03-28,Rockingham,New Hampshire,33015,86,0 +2020-03-29,Rockingham,New Hampshire,33015,100,1 +2020-03-30,Rockingham,New Hampshire,33015,116,1 +2020-03-31,Rockingham,New Hampshire,33015,137,1 +2020-04-01,Rockingham,New Hampshire,33015,154,1 +2020-04-02,Rockingham,New Hampshire,33015,170,1 +2020-04-03,Rockingham,New Hampshire,33015,190,1 +2020-04-04,Rockingham,New Hampshire,33015,213,1 +2020-04-05,Rockingham,New Hampshire,33015,230,1 +2020-04-06,Rockingham,New Hampshire,33015,246,1 +2020-04-07,Rockingham,New Hampshire,33015,255,2 +2020-04-08,Rockingham,New Hampshire,33015,268,2 +2020-04-09,Rockingham,New Hampshire,33015,277,2 +2020-04-10,Rockingham,New Hampshire,33015,305,2 +2020-04-11,Rockingham,New Hampshire,33015,314,3 +2020-04-12,Rockingham,New Hampshire,33015,345,3 +2020-04-13,Rockingham,New Hampshire,33015,360,3 +2020-04-14,Rockingham,New Hampshire,33015,378,3 +2020-04-15,Rockingham,New Hampshire,33015,399,5 +2020-04-16,Rockingham,New Hampshire,33015,433,6 +2020-04-17,Rockingham,New Hampshire,33015,449,8 +2020-04-18,Rockingham,New Hampshire,33015,466,8 +2020-04-19,Rockingham,New Hampshire,33015,479,10 +2020-04-20,Rockingham,New Hampshire,33015,489,11 +2020-04-21,Rockingham,New Hampshire,33015,493,11 +2020-04-22,Rockingham,New Hampshire,33015,519,13 +2020-04-23,Rockingham,New Hampshire,33015,551,14 +2020-04-24,Rockingham,New Hampshire,33015,568,15 +2020-04-25,Rockingham,New Hampshire,33015,593,15 +2020-04-26,Rockingham,New Hampshire,33015,619,15 +2020-04-27,Rockingham,New Hampshire,33015,643,15 +2020-04-28,Rockingham,New Hampshire,33015,664,15 +2020-04-29,Rockingham,New Hampshire,33015,670,19 +2020-04-30,Rockingham,New Hampshire,33015,692,22 +2020-05-01,Rockingham,New Hampshire,33015,779,25 +2020-05-02,Rockingham,New Hampshire,33015,828,27 +2020-05-03,Rockingham,New Hampshire,33015,862,28 +2020-05-04,Rockingham,New Hampshire,33015,878,28 +2020-05-05,Rockingham,New Hampshire,33015,888,31 +2020-05-06,Rockingham,New Hampshire,33015,903,43 +2020-05-07,Rockingham,New Hampshire,33015,933,44 +2020-05-08,Rockingham,New Hampshire,33015,949,47 +2020-05-09,Rockingham,New Hampshire,33015,964,53 +2020-05-10,Rockingham,New Hampshire,33015,978,53 +2020-05-11,Rockingham,New Hampshire,33015,994,53 +2020-05-12,Rockingham,New Hampshire,33015,1010,55 +2020-05-13,Rockingham,New Hampshire,33015,1021,57 +2020-05-14,Rockingham,New Hampshire,33015,1040,57 +2020-05-15,Rockingham,New Hampshire,33015,1069,59 +2020-05-16,Rockingham,New Hampshire,33015,1095,60 +2020-05-17,Rockingham,New Hampshire,33015,1104,60 +2020-05-18,Rockingham,New Hampshire,33015,1113,60 +2020-05-19,Rockingham,New Hampshire,33015,1138,63 +2020-05-20,Rockingham,New Hampshire,33015,1159,65 +2020-05-21,Rockingham,New Hampshire,33015,1179,66 +2020-05-22,Rockingham,New Hampshire,33015,1199,67 +2020-05-23,Rockingham,New Hampshire,33015,1218,67 +2020-05-24,Rockingham,New Hampshire,33015,1223,67 +2020-05-25,Rockingham,New Hampshire,33015,1230,67 +2020-05-26,Rockingham,New Hampshire,33015,1240,67 +2020-05-27,Rockingham,New Hampshire,33015,1254,69 +2020-05-28,Rockingham,New Hampshire,33015,1277,70 +2020-05-29,Rockingham,New Hampshire,33015,1284,70 +2020-05-30,Rockingham,New Hampshire,33015,1293,73 +2020-05-31,Rockingham,New Hampshire,33015,1306,75 +2020-06-01,Rockingham,New Hampshire,33015,1313,75 +2020-06-02,Rockingham,New Hampshire,33015,1320,76 +2020-06-03,Rockingham,New Hampshire,33015,1336,76 +2020-06-04,Rockingham,New Hampshire,33015,1347,76 +2020-06-05,Rockingham,New Hampshire,33015,1359,76 +2020-06-06,Rockingham,New Hampshire,33015,1378,76 +2020-06-07,Rockingham,New Hampshire,33015,1380,76 +2020-06-08,Rockingham,New Hampshire,33015,1386,76 +2020-06-09,Rockingham,New Hampshire,33015,1393,78 +2020-06-10,Rockingham,New Hampshire,33015,1392,79 +2020-06-11,Rockingham,New Hampshire,33015,1400,79 +2020-06-12,Rockingham,New Hampshire,33015,1406,79 +2020-06-13,Rockingham,New Hampshire,33015,1410,79 +2020-06-14,Rockingham,New Hampshire,33015,1412,79 +2020-06-15,Rockingham,New Hampshire,33015,1416,79 +2020-06-16,Rockingham,New Hampshire,33015,1418,81 +2020-06-17,Rockingham,New Hampshire,33015,1422,81 +2020-06-18,Rockingham,New Hampshire,33015,1424,81 +2020-06-19,Rockingham,New Hampshire,33015,1427,83 +2020-06-20,Rockingham,New Hampshire,33015,1429,83 +2020-06-21,Rockingham,New Hampshire,33015,1436,83 +2020-06-22,Rockingham,New Hampshire,33015,1439,83 +2020-06-23,Rockingham,New Hampshire,33015,1442,83 +2020-06-24,Rockingham,New Hampshire,33015,1443,85 +2020-06-25,Rockingham,New Hampshire,33015,1450,87 +2020-06-26,Rockingham,New Hampshire,33015,1455,88 +2020-06-27,Rockingham,New Hampshire,33015,1465,89 +2020-06-28,Rockingham,New Hampshire,33015,1470,89 +2020-06-29,Rockingham,New Hampshire,33015,1470,89 +2020-06-30,Rockingham,New Hampshire,33015,1474,89 +2020-07-01,Rockingham,New Hampshire,33015,1476,89 +2020-07-02,Rockingham,New Hampshire,33015,1479,89 +2020-07-03,Rockingham,New Hampshire,33015,1489,89 +2020-07-04,Rockingham,New Hampshire,33015,1492,90 +2020-07-05,Rockingham,New Hampshire,33015,1494,91 +2020-07-06,Rockingham,New Hampshire,33015,1495,92 +2020-07-07,Rockingham,New Hampshire,33015,1499,92 +2020-07-08,Rockingham,New Hampshire,33015,1505,92 +2020-07-09,Rockingham,New Hampshire,33015,1505,92 +2020-03-21,Strafford,New Hampshire,33017,1,0 +2020-03-22,Strafford,New Hampshire,33017,3,0 +2020-03-23,Strafford,New Hampshire,33017,4,0 +2020-03-24,Strafford,New Hampshire,33017,5,0 +2020-03-25,Strafford,New Hampshire,33017,7,0 +2020-03-26,Strafford,New Hampshire,33017,7,0 +2020-03-27,Strafford,New Hampshire,33017,11,0 +2020-03-28,Strafford,New Hampshire,33017,12,0 +2020-03-29,Strafford,New Hampshire,33017,17,0 +2020-03-30,Strafford,New Hampshire,33017,22,0 +2020-03-31,Strafford,New Hampshire,33017,28,0 +2020-04-01,Strafford,New Hampshire,33017,30,0 +2020-04-02,Strafford,New Hampshire,33017,35,0 +2020-04-03,Strafford,New Hampshire,33017,36,0 +2020-04-04,Strafford,New Hampshire,33017,43,0 +2020-04-05,Strafford,New Hampshire,33017,44,0 +2020-04-06,Strafford,New Hampshire,33017,46,0 +2020-04-07,Strafford,New Hampshire,33017,46,0 +2020-04-08,Strafford,New Hampshire,33017,48,0 +2020-04-09,Strafford,New Hampshire,33017,49,0 +2020-04-10,Strafford,New Hampshire,33017,53,0 +2020-04-11,Strafford,New Hampshire,33017,58,0 +2020-04-12,Strafford,New Hampshire,33017,59,0 +2020-04-13,Strafford,New Hampshire,33017,61,0 +2020-04-14,Strafford,New Hampshire,33017,69,0 +2020-04-15,Strafford,New Hampshire,33017,69,0 +2020-04-16,Strafford,New Hampshire,33017,76,0 +2020-04-17,Strafford,New Hampshire,33017,84,0 +2020-04-18,Strafford,New Hampshire,33017,92,0 +2020-04-19,Strafford,New Hampshire,33017,94,0 +2020-04-20,Strafford,New Hampshire,33017,111,0 +2020-04-21,Strafford,New Hampshire,33017,111,0 +2020-04-22,Strafford,New Hampshire,33017,118,1 +2020-04-23,Strafford,New Hampshire,33017,123,2 +2020-04-24,Strafford,New Hampshire,33017,126,3 +2020-04-25,Strafford,New Hampshire,33017,129,7 +2020-04-26,Strafford,New Hampshire,33017,132,7 +2020-04-27,Strafford,New Hampshire,33017,132,7 +2020-04-28,Strafford,New Hampshire,33017,133,7 +2020-04-29,Strafford,New Hampshire,33017,139,8 +2020-04-30,Strafford,New Hampshire,33017,141,9 +2020-05-01,Strafford,New Hampshire,33017,145,9 +2020-05-02,Strafford,New Hampshire,33017,149,9 +2020-05-03,Strafford,New Hampshire,33017,155,9 +2020-05-04,Strafford,New Hampshire,33017,158,9 +2020-05-05,Strafford,New Hampshire,33017,163,10 +2020-05-06,Strafford,New Hampshire,33017,168,10 +2020-05-07,Strafford,New Hampshire,33017,172,11 +2020-05-08,Strafford,New Hampshire,33017,175,11 +2020-05-09,Strafford,New Hampshire,33017,183,11 +2020-05-10,Strafford,New Hampshire,33017,192,11 +2020-05-11,Strafford,New Hampshire,33017,196,11 +2020-05-12,Strafford,New Hampshire,33017,199,11 +2020-05-13,Strafford,New Hampshire,33017,201,11 +2020-05-14,Strafford,New Hampshire,33017,215,11 +2020-05-15,Strafford,New Hampshire,33017,221,11 +2020-05-16,Strafford,New Hampshire,33017,230,12 +2020-05-17,Strafford,New Hampshire,33017,232,12 +2020-05-18,Strafford,New Hampshire,33017,234,12 +2020-05-19,Strafford,New Hampshire,33017,240,12 +2020-05-20,Strafford,New Hampshire,33017,242,13 +2020-05-21,Strafford,New Hampshire,33017,243,13 +2020-05-22,Strafford,New Hampshire,33017,248,13 +2020-05-23,Strafford,New Hampshire,33017,253,13 +2020-05-24,Strafford,New Hampshire,33017,254,13 +2020-05-25,Strafford,New Hampshire,33017,257,13 +2020-05-26,Strafford,New Hampshire,33017,259,13 +2020-05-27,Strafford,New Hampshire,33017,261,13 +2020-05-28,Strafford,New Hampshire,33017,263,13 +2020-05-29,Strafford,New Hampshire,33017,267,13 +2020-05-30,Strafford,New Hampshire,33017,268,13 +2020-05-31,Strafford,New Hampshire,33017,269,13 +2020-06-01,Strafford,New Hampshire,33017,269,13 +2020-06-02,Strafford,New Hampshire,33017,271,13 +2020-06-03,Strafford,New Hampshire,33017,273,13 +2020-06-04,Strafford,New Hampshire,33017,278,13 +2020-06-05,Strafford,New Hampshire,33017,277,13 +2020-06-06,Strafford,New Hampshire,33017,277,13 +2020-06-07,Strafford,New Hampshire,33017,277,13 +2020-06-08,Strafford,New Hampshire,33017,277,13 +2020-06-09,Strafford,New Hampshire,33017,278,13 +2020-06-10,Strafford,New Hampshire,33017,278,13 +2020-06-11,Strafford,New Hampshire,33017,278,13 +2020-06-12,Strafford,New Hampshire,33017,278,13 +2020-06-13,Strafford,New Hampshire,33017,278,13 +2020-06-14,Strafford,New Hampshire,33017,278,13 +2020-06-15,Strafford,New Hampshire,33017,279,13 +2020-06-16,Strafford,New Hampshire,33017,279,13 +2020-06-17,Strafford,New Hampshire,33017,280,13 +2020-06-18,Strafford,New Hampshire,33017,280,13 +2020-06-19,Strafford,New Hampshire,33017,281,13 +2020-06-20,Strafford,New Hampshire,33017,283,13 +2020-06-21,Strafford,New Hampshire,33017,284,13 +2020-06-22,Strafford,New Hampshire,33017,285,13 +2020-06-23,Strafford,New Hampshire,33017,285,13 +2020-06-24,Strafford,New Hampshire,33017,286,13 +2020-06-25,Strafford,New Hampshire,33017,288,13 +2020-06-26,Strafford,New Hampshire,33017,290,13 +2020-06-27,Strafford,New Hampshire,33017,290,13 +2020-06-28,Strafford,New Hampshire,33017,291,13 +2020-06-29,Strafford,New Hampshire,33017,292,13 +2020-06-30,Strafford,New Hampshire,33017,292,13 +2020-07-01,Strafford,New Hampshire,33017,292,13 +2020-07-02,Strafford,New Hampshire,33017,292,13 +2020-07-03,Strafford,New Hampshire,33017,294,13 +2020-07-04,Strafford,New Hampshire,33017,295,13 +2020-07-05,Strafford,New Hampshire,33017,295,13 +2020-07-06,Strafford,New Hampshire,33017,296,13 +2020-07-07,Strafford,New Hampshire,33017,295,13 +2020-07-08,Strafford,New Hampshire,33017,296,13 +2020-07-09,Strafford,New Hampshire,33017,297,13 +2020-03-22,Sullivan,New Hampshire,33019,1,0 +2020-03-23,Sullivan,New Hampshire,33019,1,0 +2020-03-24,Sullivan,New Hampshire,33019,1,0 +2020-03-25,Sullivan,New Hampshire,33019,1,0 +2020-03-26,Sullivan,New Hampshire,33019,2,0 +2020-03-27,Sullivan,New Hampshire,33019,2,0 +2020-03-28,Sullivan,New Hampshire,33019,2,0 +2020-03-29,Sullivan,New Hampshire,33019,3,0 +2020-03-30,Sullivan,New Hampshire,33019,3,0 +2020-03-31,Sullivan,New Hampshire,33019,4,0 +2020-04-01,Sullivan,New Hampshire,33019,4,1 +2020-04-02,Sullivan,New Hampshire,33019,5,1 +2020-04-03,Sullivan,New Hampshire,33019,5,1 +2020-04-04,Sullivan,New Hampshire,33019,5,1 +2020-04-05,Sullivan,New Hampshire,33019,6,1 +2020-04-06,Sullivan,New Hampshire,33019,6,1 +2020-04-07,Sullivan,New Hampshire,33019,6,1 +2020-04-08,Sullivan,New Hampshire,33019,6,1 +2020-04-09,Sullivan,New Hampshire,33019,6,1 +2020-04-10,Sullivan,New Hampshire,33019,6,1 +2020-04-11,Sullivan,New Hampshire,33019,6,1 +2020-04-12,Sullivan,New Hampshire,33019,6,1 +2020-04-13,Sullivan,New Hampshire,33019,6,1 +2020-04-14,Sullivan,New Hampshire,33019,7,1 +2020-04-15,Sullivan,New Hampshire,33019,7,1 +2020-04-16,Sullivan,New Hampshire,33019,8,1 +2020-04-17,Sullivan,New Hampshire,33019,9,1 +2020-04-18,Sullivan,New Hampshire,33019,10,1 +2020-04-19,Sullivan,New Hampshire,33019,10,1 +2020-04-20,Sullivan,New Hampshire,33019,10,1 +2020-04-21,Sullivan,New Hampshire,33019,10,1 +2020-04-22,Sullivan,New Hampshire,33019,10,1 +2020-04-23,Sullivan,New Hampshire,33019,10,1 +2020-04-24,Sullivan,New Hampshire,33019,11,1 +2020-04-25,Sullivan,New Hampshire,33019,10,1 +2020-04-26,Sullivan,New Hampshire,33019,11,1 +2020-04-27,Sullivan,New Hampshire,33019,11,1 +2020-04-28,Sullivan,New Hampshire,33019,11,1 +2020-04-29,Sullivan,New Hampshire,33019,11,1 +2020-04-30,Sullivan,New Hampshire,33019,12,1 +2020-05-01,Sullivan,New Hampshire,33019,12,1 +2020-05-02,Sullivan,New Hampshire,33019,12,1 +2020-05-03,Sullivan,New Hampshire,33019,12,1 +2020-05-04,Sullivan,New Hampshire,33019,12,1 +2020-05-05,Sullivan,New Hampshire,33019,12,1 +2020-05-06,Sullivan,New Hampshire,33019,13,1 +2020-05-07,Sullivan,New Hampshire,33019,14,1 +2020-05-08,Sullivan,New Hampshire,33019,14,1 +2020-05-09,Sullivan,New Hampshire,33019,14,1 +2020-05-10,Sullivan,New Hampshire,33019,14,1 +2020-05-11,Sullivan,New Hampshire,33019,14,1 +2020-05-12,Sullivan,New Hampshire,33019,14,1 +2020-05-13,Sullivan,New Hampshire,33019,14,1 +2020-05-14,Sullivan,New Hampshire,33019,14,1 +2020-05-15,Sullivan,New Hampshire,33019,16,1 +2020-05-16,Sullivan,New Hampshire,33019,16,1 +2020-05-17,Sullivan,New Hampshire,33019,16,1 +2020-05-18,Sullivan,New Hampshire,33019,16,1 +2020-05-19,Sullivan,New Hampshire,33019,16,1 +2020-05-20,Sullivan,New Hampshire,33019,16,1 +2020-05-21,Sullivan,New Hampshire,33019,16,1 +2020-05-22,Sullivan,New Hampshire,33019,16,1 +2020-05-23,Sullivan,New Hampshire,33019,17,1 +2020-05-24,Sullivan,New Hampshire,33019,17,1 +2020-05-25,Sullivan,New Hampshire,33019,17,1 +2020-05-26,Sullivan,New Hampshire,33019,17,1 +2020-05-27,Sullivan,New Hampshire,33019,17,1 +2020-05-28,Sullivan,New Hampshire,33019,17,1 +2020-05-29,Sullivan,New Hampshire,33019,19,1 +2020-05-30,Sullivan,New Hampshire,33019,19,1 +2020-05-31,Sullivan,New Hampshire,33019,19,1 +2020-06-01,Sullivan,New Hampshire,33019,19,1 +2020-06-02,Sullivan,New Hampshire,33019,19,1 +2020-06-03,Sullivan,New Hampshire,33019,20,1 +2020-06-04,Sullivan,New Hampshire,33019,20,1 +2020-06-05,Sullivan,New Hampshire,33019,20,1 +2020-06-06,Sullivan,New Hampshire,33019,20,1 +2020-06-07,Sullivan,New Hampshire,33019,20,1 +2020-06-08,Sullivan,New Hampshire,33019,20,1 +2020-06-09,Sullivan,New Hampshire,33019,21,1 +2020-06-10,Sullivan,New Hampshire,33019,24,1 +2020-06-11,Sullivan,New Hampshire,33019,25,1 +2020-06-12,Sullivan,New Hampshire,33019,25,1 +2020-06-13,Sullivan,New Hampshire,33019,25,1 +2020-06-14,Sullivan,New Hampshire,33019,25,1 +2020-06-15,Sullivan,New Hampshire,33019,25,1 +2020-06-16,Sullivan,New Hampshire,33019,24,1 +2020-06-17,Sullivan,New Hampshire,33019,24,1 +2020-06-18,Sullivan,New Hampshire,33019,24,1 +2020-06-19,Sullivan,New Hampshire,33019,24,1 +2020-06-20,Sullivan,New Hampshire,33019,24,1 +2020-06-21,Sullivan,New Hampshire,33019,24,1 +2020-06-22,Sullivan,New Hampshire,33019,24,1 +2020-06-23,Sullivan,New Hampshire,33019,24,1 +2020-06-24,Sullivan,New Hampshire,33019,25,1 +2020-06-25,Sullivan,New Hampshire,33019,27,1 +2020-06-26,Sullivan,New Hampshire,33019,30,1 +2020-06-27,Sullivan,New Hampshire,33019,31,1 +2020-06-28,Sullivan,New Hampshire,33019,31,1 +2020-06-29,Sullivan,New Hampshire,33019,31,1 +2020-06-30,Sullivan,New Hampshire,33019,32,1 +2020-07-01,Sullivan,New Hampshire,33019,33,1 +2020-07-02,Sullivan,New Hampshire,33019,34,1 +2020-07-03,Sullivan,New Hampshire,33019,34,1 +2020-07-04,Sullivan,New Hampshire,33019,35,1 +2020-07-05,Sullivan,New Hampshire,33019,35,1 +2020-07-06,Sullivan,New Hampshire,33019,35,1 +2020-07-07,Sullivan,New Hampshire,33019,35,1 +2020-07-08,Sullivan,New Hampshire,33019,35,1 +2020-07-09,Sullivan,New Hampshire,33019,35,1 +2020-03-18,Atlantic,New Jersey,34001,3,0 +2020-03-19,Atlantic,New Jersey,34001,3,0 +2020-03-20,Atlantic,New Jersey,34001,3,0 +2020-03-21,Atlantic,New Jersey,34001,4,0 +2020-03-22,Atlantic,New Jersey,34001,5,0 +2020-03-23,Atlantic,New Jersey,34001,6,0 +2020-03-24,Atlantic,New Jersey,34001,6,0 +2020-03-25,Atlantic,New Jersey,34001,9,0 +2020-03-26,Atlantic,New Jersey,34001,10,0 +2020-03-27,Atlantic,New Jersey,34001,14,0 +2020-03-28,Atlantic,New Jersey,34001,17,0 +2020-03-29,Atlantic,New Jersey,34001,24,0 +2020-03-30,Atlantic,New Jersey,34001,30,0 +2020-03-31,Atlantic,New Jersey,34001,31,0 +2020-04-01,Atlantic,New Jersey,34001,40,0 +2020-04-02,Atlantic,New Jersey,34001,50,1 +2020-04-03,Atlantic,New Jersey,34001,75,1 +2020-04-04,Atlantic,New Jersey,34001,98,1 +2020-04-05,Atlantic,New Jersey,34001,121,1 +2020-04-06,Atlantic,New Jersey,34001,132,1 +2020-04-07,Atlantic,New Jersey,34001,144,4 +2020-04-08,Atlantic,New Jersey,34001,168,4 +2020-04-09,Atlantic,New Jersey,34001,191,4 +2020-04-10,Atlantic,New Jersey,34001,211,6 +2020-04-11,Atlantic,New Jersey,34001,230,7 +2020-04-12,Atlantic,New Jersey,34001,253,8 +2020-04-13,Atlantic,New Jersey,34001,267,8 +2020-04-14,Atlantic,New Jersey,34001,284,11 +2020-04-15,Atlantic,New Jersey,34001,322,13 +2020-04-16,Atlantic,New Jersey,34001,344,13 +2020-04-17,Atlantic,New Jersey,34001,370,17 +2020-04-18,Atlantic,New Jersey,34001,382,19 +2020-04-19,Atlantic,New Jersey,34001,398,19 +2020-04-20,Atlantic,New Jersey,34001,410,19 +2020-04-21,Atlantic,New Jersey,34001,469,22 +2020-04-22,Atlantic,New Jersey,34001,505,24 +2020-04-23,Atlantic,New Jersey,34001,544,30 +2020-04-24,Atlantic,New Jersey,34001,566,29 +2020-04-25,Atlantic,New Jersey,34001,596,29 +2020-04-26,Atlantic,New Jersey,34001,638,29 +2020-04-27,Atlantic,New Jersey,34001,749,30 +2020-04-28,Atlantic,New Jersey,34001,868,35 +2020-04-29,Atlantic,New Jersey,34001,908,37 +2020-04-30,Atlantic,New Jersey,34001,964,41 +2020-05-01,Atlantic,New Jersey,34001,1012,45 +2020-05-02,Atlantic,New Jersey,34001,1050,48 +2020-05-03,Atlantic,New Jersey,34001,1075,49 +2020-05-04,Atlantic,New Jersey,34001,1135,51 +2020-05-05,Atlantic,New Jersey,34001,1190,51 +2020-05-06,Atlantic,New Jersey,34001,1246,54 +2020-05-07,Atlantic,New Jersey,34001,1302,62 +2020-05-08,Atlantic,New Jersey,34001,1423,68 +2020-05-09,Atlantic,New Jersey,34001,1494,72 +2020-05-10,Atlantic,New Jersey,34001,1510,72 +2020-05-11,Atlantic,New Jersey,34001,1533,77 +2020-05-12,Atlantic,New Jersey,34001,1558,79 +2020-05-13,Atlantic,New Jersey,34001,1584,88 +2020-05-14,Atlantic,New Jersey,34001,1649,99 +2020-05-15,Atlantic,New Jersey,34001,1678,107 +2020-05-16,Atlantic,New Jersey,34001,1716,110 +2020-05-17,Atlantic,New Jersey,34001,1758,112 +2020-05-18,Atlantic,New Jersey,34001,1807,112 +2020-05-19,Atlantic,New Jersey,34001,1838,121 +2020-05-20,Atlantic,New Jersey,34001,1875,126 +2020-05-21,Atlantic,New Jersey,34001,1895,128 +2020-05-22,Atlantic,New Jersey,34001,1919,130 +2020-05-23,Atlantic,New Jersey,34001,1936,143 +2020-05-24,Atlantic,New Jersey,34001,1961,144 +2020-05-25,Atlantic,New Jersey,34001,2028,144 +2020-05-26,Atlantic,New Jersey,34001,2049,149 +2020-05-27,Atlantic,New Jersey,34001,2087,155 +2020-05-28,Atlantic,New Jersey,34001,2120,156 +2020-05-29,Atlantic,New Jersey,34001,2154,158 +2020-05-30,Atlantic,New Jersey,34001,2183,159 +2020-05-31,Atlantic,New Jersey,34001,2214,159 +2020-06-01,Atlantic,New Jersey,34001,2222,159 +2020-06-02,Atlantic,New Jersey,34001,2251,162 +2020-06-03,Atlantic,New Jersey,34001,2284,163 +2020-06-04,Atlantic,New Jersey,34001,2286,164 +2020-06-05,Atlantic,New Jersey,34001,2309,167 +2020-06-06,Atlantic,New Jersey,34001,2330,167 +2020-06-07,Atlantic,New Jersey,34001,2364,167 +2020-06-08,Atlantic,New Jersey,34001,2383,167 +2020-06-09,Atlantic,New Jersey,34001,2401,167 +2020-06-10,Atlantic,New Jersey,34001,2422,168 +2020-06-11,Atlantic,New Jersey,34001,2431,171 +2020-06-12,Atlantic,New Jersey,34001,2453,172 +2020-06-13,Atlantic,New Jersey,34001,2475,179 +2020-06-14,Atlantic,New Jersey,34001,2490,180 +2020-06-15,Atlantic,New Jersey,34001,2497,180 +2020-06-16,Atlantic,New Jersey,34001,2539,180 +2020-06-17,Atlantic,New Jersey,34001,2553,184 +2020-06-18,Atlantic,New Jersey,34001,2583,187 +2020-06-19,Atlantic,New Jersey,34001,2619,188 +2020-06-20,Atlantic,New Jersey,34001,2638,189 +2020-06-21,Atlantic,New Jersey,34001,2702,188 +2020-06-22,Atlantic,New Jersey,34001,2722,188 +2020-06-23,Atlantic,New Jersey,34001,2750,190 +2020-06-24,Atlantic,New Jersey,34001,2771,192 +2020-06-25,Atlantic,New Jersey,34001,2801,206 +2020-06-26,Atlantic,New Jersey,34001,2825,208 +2020-06-27,Atlantic,New Jersey,34001,2836,211 +2020-06-28,Atlantic,New Jersey,34001,2853,211 +2020-06-29,Atlantic,New Jersey,34001,2859,214 +2020-06-30,Atlantic,New Jersey,34001,2877,216 +2020-07-01,Atlantic,New Jersey,34001,2892,216 +2020-07-02,Atlantic,New Jersey,34001,2912,219 +2020-07-03,Atlantic,New Jersey,34001,2938,220 +2020-07-04,Atlantic,New Jersey,34001,2940,220 +2020-07-05,Atlantic,New Jersey,34001,2950,221 +2020-07-06,Atlantic,New Jersey,34001,2963,221 +2020-07-07,Atlantic,New Jersey,34001,2975,222 +2020-07-08,Atlantic,New Jersey,34001,2976,224 +2020-07-09,Atlantic,New Jersey,34001,2991,226 +2020-03-04,Bergen,New Jersey,34003,1,0 +2020-03-05,Bergen,New Jersey,34003,2,0 +2020-03-06,Bergen,New Jersey,34003,3,0 +2020-03-07,Bergen,New Jersey,34003,3,0 +2020-03-08,Bergen,New Jersey,34003,4,0 +2020-03-09,Bergen,New Jersey,34003,5,0 +2020-03-10,Bergen,New Jersey,34003,7,1 +2020-03-11,Bergen,New Jersey,34003,11,1 +2020-03-12,Bergen,New Jersey,34003,13,1 +2020-03-13,Bergen,New Jersey,34003,17,1 +2020-03-14,Bergen,New Jersey,34003,31,1 +2020-03-15,Bergen,New Jersey,34003,32,1 +2020-03-16,Bergen,New Jersey,34003,61,2 +2020-03-17,Bergen,New Jersey,34003,84,2 +2020-03-18,Bergen,New Jersey,34003,133,4 +2020-03-19,Bergen,New Jersey,34003,297,6 +2020-03-20,Bergen,New Jersey,34003,342,7 +2020-03-21,Bergen,New Jersey,34003,362,9 +2020-03-22,Bergen,New Jersey,34003,457,10 +2020-03-23,Bergen,New Jersey,34003,609,12 +2020-03-24,Bergen,New Jersey,34003,701,14 +2020-03-25,Bergen,New Jersey,34003,819,15 +2020-03-26,Bergen,New Jersey,34003,1206,21 +2020-03-27,Bergen,New Jersey,34003,1505,28 +2020-03-28,Bergen,New Jersey,34003,1838,35 +2020-03-29,Bergen,New Jersey,34003,2169,35 +2020-03-30,Bergen,New Jersey,34003,2482,41 +2020-03-31,Bergen,New Jersey,34003,2909,53 +2020-04-01,Bergen,New Jersey,34003,3494,75 +2020-04-02,Bergen,New Jersey,34003,4099,120 +2020-04-03,Bergen,New Jersey,34003,4866,132 +2020-04-04,Bergen,New Jersey,34003,5760,179 +2020-04-05,Bergen,New Jersey,34003,6187,189 +2020-04-06,Bergen,New Jersey,34003,6862,200 +2020-04-07,Bergen,New Jersey,34003,7533,263 +2020-04-08,Bergen,New Jersey,34003,7874,314 +2020-04-09,Bergen,New Jersey,34003,8343,345 +2020-04-10,Bergen,New Jersey,34003,8928,390 +2020-04-11,Bergen,New Jersey,34003,9362,435 +2020-04-12,Bergen,New Jersey,34003,9784,453 +2020-04-13,Bergen,New Jersey,34003,10092,482 +2020-04-14,Bergen,New Jersey,34003,10426,550 +2020-04-15,Bergen,New Jersey,34003,10848,608 +2020-04-16,Bergen,New Jersey,34003,11409,668 +2020-04-17,Bergen,New Jersey,34003,11863,714 +2020-04-18,Bergen,New Jersey,34003,12163,741 +2020-04-19,Bergen,New Jersey,34003,12639,767 +2020-04-20,Bergen,New Jersey,34003,13011,787 +2020-04-21,Bergen,New Jersey,34003,13356,835 +2020-04-22,Bergen,New Jersey,34003,13686,876 +2020-04-23,Bergen,New Jersey,34003,14049,907 +2020-04-24,Bergen,New Jersey,34003,14363,934 +2020-04-25,Bergen,New Jersey,34003,14738,954 +2020-04-26,Bergen,New Jersey,34003,14965,955 +2020-04-27,Bergen,New Jersey,34003,15104,960 +2020-04-28,Bergen,New Jersey,34003,15251,1002 +2020-04-29,Bergen,New Jersey,34003,15446,1057 +2020-04-30,Bergen,New Jersey,34003,15610,1136 +2020-05-01,Bergen,New Jersey,34003,15830,1187 +2020-05-02,Bergen,New Jersey,34003,15974,1202 +2020-05-03,Bergen,New Jersey,34003,16185,1210 +2020-05-04,Bergen,New Jersey,34003,16282,1215 +2020-05-05,Bergen,New Jersey,34003,16460,1261 +2020-05-06,Bergen,New Jersey,34003,16520,1289 +2020-05-07,Bergen,New Jersey,34003,16609,1319 +2020-05-08,Bergen,New Jersey,34003,16709,1329 +2020-05-09,Bergen,New Jersey,34003,16804,1348 +2020-05-10,Bergen,New Jersey,34003,16929,1355 +2020-05-11,Bergen,New Jersey,34003,17028,1358 +2020-05-12,Bergen,New Jersey,34003,17091,1388 +2020-05-13,Bergen,New Jersey,34003,17150,1409 +2020-05-14,Bergen,New Jersey,34003,17080,1423 +2020-05-15,Bergen,New Jersey,34003,17195,1443 +2020-05-16,Bergen,New Jersey,34003,17246,1450 +2020-05-17,Bergen,New Jersey,34003,17361,1455 +2020-05-18,Bergen,New Jersey,34003,17459,1460 +2020-05-19,Bergen,New Jersey,34003,17522,1474 +2020-05-20,Bergen,New Jersey,34003,17518,1500 +2020-05-21,Bergen,New Jersey,34003,17583,1508 +2020-05-22,Bergen,New Jersey,34003,17653,1515 +2020-05-23,Bergen,New Jersey,34003,17668,1521 +2020-05-24,Bergen,New Jersey,34003,17804,1525 +2020-05-25,Bergen,New Jersey,34003,17901,1525 +2020-05-26,Bergen,New Jersey,34003,17963,1528 +2020-05-27,Bergen,New Jersey,34003,18023,1547 +2020-05-28,Bergen,New Jersey,34003,18158,1553 +2020-05-29,Bergen,New Jersey,34003,18223,1567 +2020-05-30,Bergen,New Jersey,34003,18211,1573 +2020-05-31,Bergen,New Jersey,34003,18272,1579 +2020-06-01,Bergen,New Jersey,34003,18302,1580 +2020-06-02,Bergen,New Jersey,34003,18333,1584 +2020-06-03,Bergen,New Jersey,34003,18376,1595 +2020-06-04,Bergen,New Jersey,34003,18408,1603 +2020-06-05,Bergen,New Jersey,34003,18463,1611 +2020-06-06,Bergen,New Jersey,34003,18492,1612 +2020-06-07,Bergen,New Jersey,34003,18512,1618 +2020-06-08,Bergen,New Jersey,34003,18538,1621 +2020-06-09,Bergen,New Jersey,34003,18573,1628 +2020-06-10,Bergen,New Jersey,34003,18667,1635 +2020-06-11,Bergen,New Jersey,34003,18719,1646 +2020-06-12,Bergen,New Jersey,34003,18743,1649 +2020-06-13,Bergen,New Jersey,34003,18805,1664 +2020-06-14,Bergen,New Jersey,34003,18818,1662 +2020-06-15,Bergen,New Jersey,34003,18848,1664 +2020-06-16,Bergen,New Jersey,34003,18901,1673 +2020-06-17,Bergen,New Jersey,34003,18928,1681 +2020-06-18,Bergen,New Jersey,34003,18949,1684 +2020-06-19,Bergen,New Jersey,34003,18967,1691 +2020-06-20,Bergen,New Jersey,34003,18996,1693 +2020-06-21,Bergen,New Jersey,34003,19010,1696 +2020-06-22,Bergen,New Jersey,34003,19037,1701 +2020-06-23,Bergen,New Jersey,34003,19069,1706 +2020-06-24,Bergen,New Jersey,34003,19097,1714 +2020-06-25,Bergen,New Jersey,34003,19430,1979 +2020-06-26,Bergen,New Jersey,34003,19527,1981 +2020-06-27,Bergen,New Jersey,34003,19538,1983 +2020-06-28,Bergen,New Jersey,34003,19617,1983 +2020-06-29,Bergen,New Jersey,34003,19638,1985 +2020-06-30,Bergen,New Jersey,34003,19686,1989 +2020-07-01,Bergen,New Jersey,34003,19708,1996 +2020-07-02,Bergen,New Jersey,34003,19735,1994 +2020-07-03,Bergen,New Jersey,34003,19793,2000 +2020-07-04,Bergen,New Jersey,34003,19823,2003 +2020-07-05,Bergen,New Jersey,34003,19886,2004 +2020-07-06,Bergen,New Jersey,34003,19916,2006 +2020-07-07,Bergen,New Jersey,34003,19937,2009 +2020-07-08,Bergen,New Jersey,34003,19993,2010 +2020-07-09,Bergen,New Jersey,34003,20043,2020 +2020-03-10,Burlington,New Jersey,34005,2,0 +2020-03-11,Burlington,New Jersey,34005,2,0 +2020-03-12,Burlington,New Jersey,34005,2,0 +2020-03-13,Burlington,New Jersey,34005,3,0 +2020-03-14,Burlington,New Jersey,34005,3,0 +2020-03-15,Burlington,New Jersey,34005,4,0 +2020-03-16,Burlington,New Jersey,34005,5,0 +2020-03-17,Burlington,New Jersey,34005,5,0 +2020-03-18,Burlington,New Jersey,34005,10,0 +2020-03-19,Burlington,New Jersey,34005,14,0 +2020-03-20,Burlington,New Jersey,34005,17,0 +2020-03-21,Burlington,New Jersey,34005,20,0 +2020-03-22,Burlington,New Jersey,34005,26,0 +2020-03-23,Burlington,New Jersey,34005,36,0 +2020-03-24,Burlington,New Jersey,34005,42,0 +2020-03-25,Burlington,New Jersey,34005,48,1 +2020-03-26,Burlington,New Jersey,34005,64,3 +2020-03-27,Burlington,New Jersey,34005,88,3 +2020-03-28,Burlington,New Jersey,34005,115,3 +2020-03-29,Burlington,New Jersey,34005,142,3 +2020-03-30,Burlington,New Jersey,34005,178,5 +2020-03-31,Burlington,New Jersey,34005,202,5 +2020-04-01,Burlington,New Jersey,34005,255,5 +2020-04-02,Burlington,New Jersey,34005,294,8 +2020-04-03,Burlington,New Jersey,34005,367,9 +2020-04-04,Burlington,New Jersey,34005,469,10 +2020-04-05,Burlington,New Jersey,34005,547,11 +2020-04-06,Burlington,New Jersey,34005,646,11 +2020-04-07,Burlington,New Jersey,34005,733,13 +2020-04-08,Burlington,New Jersey,34005,801,17 +2020-04-09,Burlington,New Jersey,34005,883,21 +2020-04-10,Burlington,New Jersey,34005,954,22 +2020-04-11,Burlington,New Jersey,34005,1031,22 +2020-04-12,Burlington,New Jersey,34005,1095,23 +2020-04-13,Burlington,New Jersey,34005,1155,24 +2020-04-14,Burlington,New Jersey,34005,1207,28 +2020-04-15,Burlington,New Jersey,34005,1261,45 +2020-04-16,Burlington,New Jersey,34005,1326,52 +2020-04-17,Burlington,New Jersey,34005,1366,54 +2020-04-18,Burlington,New Jersey,34005,1456,57 +2020-04-19,Burlington,New Jersey,34005,1587,58 +2020-04-20,Burlington,New Jersey,34005,1663,61 +2020-04-21,Burlington,New Jersey,34005,1765,66 +2020-04-22,Burlington,New Jersey,34005,1878,68 +2020-04-23,Burlington,New Jersey,34005,1969,76 +2020-04-24,Burlington,New Jersey,34005,2054,81 +2020-04-25,Burlington,New Jersey,34005,2153,88 +2020-04-26,Burlington,New Jersey,34005,2333,94 +2020-04-27,Burlington,New Jersey,34005,2407,98 +2020-04-28,Burlington,New Jersey,34005,2543,106 +2020-04-29,Burlington,New Jersey,34005,2606,117 +2020-04-30,Burlington,New Jersey,34005,2690,130 +2020-05-01,Burlington,New Jersey,34005,2769,144 +2020-05-02,Burlington,New Jersey,34005,2879,146 +2020-05-03,Burlington,New Jersey,34005,3043,149 +2020-05-04,Burlington,New Jersey,34005,3100,149 +2020-05-05,Burlington,New Jersey,34005,3207,164 +2020-05-06,Burlington,New Jersey,34005,3235,177 +2020-05-07,Burlington,New Jersey,34005,3367,185 +2020-05-08,Burlington,New Jersey,34005,3431,190 +2020-05-09,Burlington,New Jersey,34005,3531,194 +2020-05-10,Burlington,New Jersey,34005,3574,198 +2020-05-11,Burlington,New Jersey,34005,3665,200 +2020-05-12,Burlington,New Jersey,34005,3697,208 +2020-05-13,Burlington,New Jersey,34005,3726,214 +2020-05-14,Burlington,New Jersey,34005,3782,228 +2020-05-15,Burlington,New Jersey,34005,3849,238 +2020-05-16,Burlington,New Jersey,34005,3875,239 +2020-05-17,Burlington,New Jersey,34005,3937,239 +2020-05-18,Burlington,New Jersey,34005,3986,245 +2020-05-19,Burlington,New Jersey,34005,4000,247 +2020-05-20,Burlington,New Jersey,34005,4058,249 +2020-05-21,Burlington,New Jersey,34005,4097,249 +2020-05-22,Burlington,New Jersey,34005,4217,261 +2020-05-23,Burlington,New Jersey,34005,4252,266 +2020-05-24,Burlington,New Jersey,34005,4308,270 +2020-05-25,Burlington,New Jersey,34005,4355,271 +2020-05-26,Burlington,New Jersey,34005,4381,273 +2020-05-27,Burlington,New Jersey,34005,4432,275 +2020-05-28,Burlington,New Jersey,34005,4476,277 +2020-05-29,Burlington,New Jersey,34005,4519,286 +2020-05-30,Burlington,New Jersey,34005,4567,290 +2020-05-31,Burlington,New Jersey,34005,4627,291 +2020-06-01,Burlington,New Jersey,34005,4657,294 +2020-06-02,Burlington,New Jersey,34005,4680,297 +2020-06-03,Burlington,New Jersey,34005,4700,302 +2020-06-04,Burlington,New Jersey,34005,4725,307 +2020-06-05,Burlington,New Jersey,34005,4746,311 +2020-06-06,Burlington,New Jersey,34005,4769,314 +2020-06-07,Burlington,New Jersey,34005,4785,327 +2020-06-08,Burlington,New Jersey,34005,4798,327 +2020-06-09,Burlington,New Jersey,34005,4808,334 +2020-06-10,Burlington,New Jersey,34005,4826,344 +2020-06-11,Burlington,New Jersey,34005,4832,349 +2020-06-12,Burlington,New Jersey,34005,4848,350 +2020-06-13,Burlington,New Jersey,34005,4866,356 +2020-06-14,Burlington,New Jersey,34005,4876,363 +2020-06-15,Burlington,New Jersey,34005,4894,364 +2020-06-16,Burlington,New Jersey,34005,4929,364 +2020-06-17,Burlington,New Jersey,34005,4935,364 +2020-06-18,Burlington,New Jersey,34005,4954,367 +2020-06-19,Burlington,New Jersey,34005,4981,370 +2020-06-20,Burlington,New Jersey,34005,4994,370 +2020-06-21,Burlington,New Jersey,34005,5023,371 +2020-06-22,Burlington,New Jersey,34005,5046,372 +2020-06-23,Burlington,New Jersey,34005,5056,372 +2020-06-24,Burlington,New Jersey,34005,5068,373 +2020-06-25,Burlington,New Jersey,34005,5122,414 +2020-06-26,Burlington,New Jersey,34005,5130,414 +2020-06-27,Burlington,New Jersey,34005,5163,416 +2020-06-28,Burlington,New Jersey,34005,5174,419 +2020-06-29,Burlington,New Jersey,34005,5180,421 +2020-06-30,Burlington,New Jersey,34005,5206,424 +2020-07-01,Burlington,New Jersey,34005,5227,428 +2020-07-02,Burlington,New Jersey,34005,5259,429 +2020-07-03,Burlington,New Jersey,34005,5276,431 +2020-07-04,Burlington,New Jersey,34005,5281,433 +2020-07-05,Burlington,New Jersey,34005,5300,433 +2020-07-06,Burlington,New Jersey,34005,5315,434 +2020-07-07,Burlington,New Jersey,34005,5333,438 +2020-07-08,Burlington,New Jersey,34005,5344,441 +2020-07-09,Burlington,New Jersey,34005,5357,446 +2020-03-06,Camden,New Jersey,34007,1,0 +2020-03-07,Camden,New Jersey,34007,1,0 +2020-03-08,Camden,New Jersey,34007,1,0 +2020-03-09,Camden,New Jersey,34007,1,0 +2020-03-10,Camden,New Jersey,34007,1,0 +2020-03-11,Camden,New Jersey,34007,1,0 +2020-03-12,Camden,New Jersey,34007,1,0 +2020-03-13,Camden,New Jersey,34007,2,0 +2020-03-14,Camden,New Jersey,34007,2,0 +2020-03-15,Camden,New Jersey,34007,2,0 +2020-03-16,Camden,New Jersey,34007,3,0 +2020-03-17,Camden,New Jersey,34007,3,0 +2020-03-18,Camden,New Jersey,34007,10,0 +2020-03-19,Camden,New Jersey,34007,11,0 +2020-03-20,Camden,New Jersey,34007,15,0 +2020-03-21,Camden,New Jersey,34007,15,0 +2020-03-22,Camden,New Jersey,34007,22,0 +2020-03-23,Camden,New Jersey,34007,33,0 +2020-03-24,Camden,New Jersey,34007,51,1 +2020-03-25,Camden,New Jersey,34007,61,1 +2020-03-26,Camden,New Jersey,34007,73,1 +2020-03-27,Camden,New Jersey,34007,95,1 +2020-03-28,Camden,New Jersey,34007,123,1 +2020-03-29,Camden,New Jersey,34007,163,1 +2020-03-30,Camden,New Jersey,34007,200,1 +2020-03-31,Camden,New Jersey,34007,228,3 +2020-04-01,Camden,New Jersey,34007,289,3 +2020-04-02,Camden,New Jersey,34007,343,8 +2020-04-03,Camden,New Jersey,34007,406,8 +2020-04-04,Camden,New Jersey,34007,481,10 +2020-04-05,Camden,New Jersey,34007,556,10 +2020-04-06,Camden,New Jersey,34007,645,10 +2020-04-07,Camden,New Jersey,34007,736,12 +2020-04-08,Camden,New Jersey,34007,838,22 +2020-04-09,Camden,New Jersey,34007,990,23 +2020-04-10,Camden,New Jersey,34007,1072,29 +2020-04-11,Camden,New Jersey,34007,1180,29 +2020-04-12,Camden,New Jersey,34007,1270,32 +2020-04-13,Camden,New Jersey,34007,1401,35 +2020-04-14,Camden,New Jersey,34007,1477,41 +2020-04-15,Camden,New Jersey,34007,1587,49 +2020-04-16,Camden,New Jersey,34007,1734,60 +2020-04-17,Camden,New Jersey,34007,1807,64 +2020-04-18,Camden,New Jersey,34007,1918,73 +2020-04-19,Camden,New Jersey,34007,2131,74 +2020-04-20,Camden,New Jersey,34007,2255,81 +2020-04-21,Camden,New Jersey,34007,2379,89 +2020-04-22,Camden,New Jersey,34007,2528,94 +2020-04-23,Camden,New Jersey,34007,2683,104 +2020-04-24,Camden,New Jersey,34007,2750,106 +2020-04-25,Camden,New Jersey,34007,2870,118 +2020-04-26,Camden,New Jersey,34007,2983,121 +2020-04-27,Camden,New Jersey,34007,3124,122 +2020-04-28,Camden,New Jersey,34007,3285,124 +2020-04-29,Camden,New Jersey,34007,3385,136 +2020-04-30,Camden,New Jersey,34007,3519,147 +2020-05-01,Camden,New Jersey,34007,3646,155 +2020-05-02,Camden,New Jersey,34007,3773,161 +2020-05-03,Camden,New Jersey,34007,3973,163 +2020-05-04,Camden,New Jersey,34007,4073,163 +2020-05-05,Camden,New Jersey,34007,4251,180 +2020-05-06,Camden,New Jersey,34007,4307,189 +2020-05-07,Camden,New Jersey,34007,4479,193 +2020-05-08,Camden,New Jersey,34007,4619,199 +2020-05-09,Camden,New Jersey,34007,4758,217 +2020-05-10,Camden,New Jersey,34007,4870,225 +2020-05-11,Camden,New Jersey,34007,4959,227 +2020-05-12,Camden,New Jersey,34007,5043,236 +2020-05-13,Camden,New Jersey,34007,5099,246 +2020-05-14,Camden,New Jersey,34007,5172,256 +2020-05-15,Camden,New Jersey,34007,5255,262 +2020-05-16,Camden,New Jersey,34007,5381,268 +2020-05-17,Camden,New Jersey,34007,5455,272 +2020-05-18,Camden,New Jersey,34007,5573,275 +2020-05-19,Camden,New Jersey,34007,5644,279 +2020-05-20,Camden,New Jersey,34007,5738,286 +2020-05-21,Camden,New Jersey,34007,5818,290 +2020-05-22,Camden,New Jersey,34007,5923,299 +2020-05-23,Camden,New Jersey,34007,5953,303 +2020-05-24,Camden,New Jersey,34007,6024,307 +2020-05-25,Camden,New Jersey,34007,6103,308 +2020-05-26,Camden,New Jersey,34007,6171,307 +2020-05-27,Camden,New Jersey,34007,6227,313 +2020-05-28,Camden,New Jersey,34007,6292,318 +2020-05-29,Camden,New Jersey,34007,6350,327 +2020-05-30,Camden,New Jersey,34007,6425,334 +2020-05-31,Camden,New Jersey,34007,6510,338 +2020-06-01,Camden,New Jersey,34007,6543,338 +2020-06-02,Camden,New Jersey,34007,6603,339 +2020-06-03,Camden,New Jersey,34007,6645,346 +2020-06-04,Camden,New Jersey,34007,6663,352 +2020-06-05,Camden,New Jersey,34007,6732,357 +2020-06-06,Camden,New Jersey,34007,6785,364 +2020-06-07,Camden,New Jersey,34007,6799,369 +2020-06-08,Camden,New Jersey,34007,6827,374 +2020-06-09,Camden,New Jersey,34007,6849,381 +2020-06-10,Camden,New Jersey,34007,6903,394 +2020-06-11,Camden,New Jersey,34007,6938,400 +2020-06-12,Camden,New Jersey,34007,6952,399 +2020-06-13,Camden,New Jersey,34007,6986,405 +2020-06-14,Camden,New Jersey,34007,7018,407 +2020-06-15,Camden,New Jersey,34007,7025,416 +2020-06-16,Camden,New Jersey,34007,7040,417 +2020-06-17,Camden,New Jersey,34007,7047,417 +2020-06-18,Camden,New Jersey,34007,7061,417 +2020-06-19,Camden,New Jersey,34007,7088,415 +2020-06-20,Camden,New Jersey,34007,7117,416 +2020-06-21,Camden,New Jersey,34007,7135,416 +2020-06-22,Camden,New Jersey,34007,7153,417 +2020-06-23,Camden,New Jersey,34007,7163,421 +2020-06-24,Camden,New Jersey,34007,7185,425 +2020-06-25,Camden,New Jersey,34007,7259,474 +2020-06-26,Camden,New Jersey,34007,7292,478 +2020-06-27,Camden,New Jersey,34007,7325,480 +2020-06-28,Camden,New Jersey,34007,7331,483 +2020-06-29,Camden,New Jersey,34007,7344,485 +2020-06-30,Camden,New Jersey,34007,7364,489 +2020-07-01,Camden,New Jersey,34007,7415,493 +2020-07-02,Camden,New Jersey,34007,7457,503 +2020-07-03,Camden,New Jersey,34007,7470,513 +2020-07-04,Camden,New Jersey,34007,7485,518 +2020-07-05,Camden,New Jersey,34007,7530,521 +2020-07-06,Camden,New Jersey,34007,7547,525 +2020-07-07,Camden,New Jersey,34007,7587,534 +2020-07-08,Camden,New Jersey,34007,7624,538 +2020-07-09,Camden,New Jersey,34007,7652,540 +2020-03-19,Cape May,New Jersey,34009,1,0 +2020-03-20,Cape May,New Jersey,34009,1,0 +2020-03-21,Cape May,New Jersey,34009,2,0 +2020-03-22,Cape May,New Jersey,34009,2,0 +2020-03-23,Cape May,New Jersey,34009,2,0 +2020-03-24,Cape May,New Jersey,34009,3,0 +2020-03-25,Cape May,New Jersey,34009,4,0 +2020-03-26,Cape May,New Jersey,34009,6,0 +2020-03-27,Cape May,New Jersey,34009,7,0 +2020-03-28,Cape May,New Jersey,34009,7,0 +2020-03-29,Cape May,New Jersey,34009,9,0 +2020-03-30,Cape May,New Jersey,34009,15,0 +2020-03-31,Cape May,New Jersey,34009,15,0 +2020-04-01,Cape May,New Jersey,34009,22,0 +2020-04-02,Cape May,New Jersey,34009,34,0 +2020-04-03,Cape May,New Jersey,34009,44,0 +2020-04-04,Cape May,New Jersey,34009,50,1 +2020-04-05,Cape May,New Jersey,34009,77,2 +2020-04-06,Cape May,New Jersey,34009,85,3 +2020-04-07,Cape May,New Jersey,34009,94,3 +2020-04-08,Cape May,New Jersey,34009,100,3 +2020-04-09,Cape May,New Jersey,34009,109,3 +2020-04-10,Cape May,New Jersey,34009,116,5 +2020-04-11,Cape May,New Jersey,34009,129,5 +2020-04-12,Cape May,New Jersey,34009,145,9 +2020-04-13,Cape May,New Jersey,34009,164,9 +2020-04-14,Cape May,New Jersey,34009,169,10 +2020-04-15,Cape May,New Jersey,34009,178,10 +2020-04-16,Cape May,New Jersey,34009,186,10 +2020-04-17,Cape May,New Jersey,34009,189,14 +2020-04-18,Cape May,New Jersey,34009,199,14 +2020-04-19,Cape May,New Jersey,34009,206,14 +2020-04-20,Cape May,New Jersey,34009,212,15 +2020-04-21,Cape May,New Jersey,34009,217,16 +2020-04-22,Cape May,New Jersey,34009,227,16 +2020-04-23,Cape May,New Jersey,34009,236,16 +2020-04-24,Cape May,New Jersey,34009,247,16 +2020-04-25,Cape May,New Jersey,34009,261,18 +2020-04-26,Cape May,New Jersey,34009,281,18 +2020-04-27,Cape May,New Jersey,34009,281,18 +2020-04-28,Cape May,New Jersey,34009,299,20 +2020-04-29,Cape May,New Jersey,34009,305,21 +2020-04-30,Cape May,New Jersey,34009,323,22 +2020-05-01,Cape May,New Jersey,34009,334,22 +2020-05-02,Cape May,New Jersey,34009,337,23 +2020-05-03,Cape May,New Jersey,34009,344,24 +2020-05-04,Cape May,New Jersey,34009,355,24 +2020-05-05,Cape May,New Jersey,34009,369,26 +2020-05-06,Cape May,New Jersey,34009,378,28 +2020-05-07,Cape May,New Jersey,34009,401,31 +2020-05-08,Cape May,New Jersey,34009,424,31 +2020-05-09,Cape May,New Jersey,34009,442,32 +2020-05-10,Cape May,New Jersey,34009,458,32 +2020-05-11,Cape May,New Jersey,34009,462,32 +2020-05-12,Cape May,New Jersey,34009,471,35 +2020-05-13,Cape May,New Jersey,34009,479,37 +2020-05-14,Cape May,New Jersey,34009,483,39 +2020-05-15,Cape May,New Jersey,34009,487,40 +2020-05-16,Cape May,New Jersey,34009,500,41 +2020-05-17,Cape May,New Jersey,34009,503,41 +2020-05-18,Cape May,New Jersey,34009,506,41 +2020-05-19,Cape May,New Jersey,34009,518,42 +2020-05-20,Cape May,New Jersey,34009,531,42 +2020-05-21,Cape May,New Jersey,34009,534,44 +2020-05-22,Cape May,New Jersey,34009,545,46 +2020-05-23,Cape May,New Jersey,34009,558,48 +2020-05-24,Cape May,New Jersey,34009,561,48 +2020-05-25,Cape May,New Jersey,34009,570,48 +2020-05-26,Cape May,New Jersey,34009,571,48 +2020-05-27,Cape May,New Jersey,34009,592,48 +2020-05-28,Cape May,New Jersey,34009,602,48 +2020-05-29,Cape May,New Jersey,34009,611,48 +2020-05-30,Cape May,New Jersey,34009,615,49 +2020-05-31,Cape May,New Jersey,34009,617,49 +2020-06-01,Cape May,New Jersey,34009,623,49 +2020-06-02,Cape May,New Jersey,34009,628,50 +2020-06-03,Cape May,New Jersey,34009,629,50 +2020-06-04,Cape May,New Jersey,34009,630,50 +2020-06-05,Cape May,New Jersey,34009,637,50 +2020-06-06,Cape May,New Jersey,34009,643,50 +2020-06-07,Cape May,New Jersey,34009,646,51 +2020-06-08,Cape May,New Jersey,34009,647,51 +2020-06-09,Cape May,New Jersey,34009,654,54 +2020-06-10,Cape May,New Jersey,34009,662,54 +2020-06-11,Cape May,New Jersey,34009,663,55 +2020-06-12,Cape May,New Jersey,34009,664,57 +2020-06-13,Cape May,New Jersey,34009,669,58 +2020-06-14,Cape May,New Jersey,34009,671,59 +2020-06-15,Cape May,New Jersey,34009,672,61 +2020-06-16,Cape May,New Jersey,34009,681,61 +2020-06-17,Cape May,New Jersey,34009,682,61 +2020-06-18,Cape May,New Jersey,34009,680,62 +2020-06-19,Cape May,New Jersey,34009,681,62 +2020-06-20,Cape May,New Jersey,34009,705,62 +2020-06-21,Cape May,New Jersey,34009,688,62 +2020-06-22,Cape May,New Jersey,34009,692,62 +2020-06-23,Cape May,New Jersey,34009,694,63 +2020-06-24,Cape May,New Jersey,34009,697,63 +2020-06-25,Cape May,New Jersey,34009,708,67 +2020-06-26,Cape May,New Jersey,34009,710,68 +2020-06-27,Cape May,New Jersey,34009,709,68 +2020-06-28,Cape May,New Jersey,34009,736,68 +2020-06-29,Cape May,New Jersey,34009,716,68 +2020-06-30,Cape May,New Jersey,34009,744,73 +2020-07-01,Cape May,New Jersey,34009,716,73 +2020-07-02,Cape May,New Jersey,34009,717,73 +2020-07-03,Cape May,New Jersey,34009,718,74 +2020-07-04,Cape May,New Jersey,34009,719,74 +2020-07-05,Cape May,New Jersey,34009,720,74 +2020-07-06,Cape May,New Jersey,34009,724,74 +2020-07-07,Cape May,New Jersey,34009,724,75 +2020-07-08,Cape May,New Jersey,34009,722,76 +2020-07-09,Cape May,New Jersey,34009,727,76 +2020-03-20,Cumberland,New Jersey,34011,1,0 +2020-03-21,Cumberland,New Jersey,34011,1,0 +2020-03-22,Cumberland,New Jersey,34011,1,0 +2020-03-23,Cumberland,New Jersey,34011,1,0 +2020-03-24,Cumberland,New Jersey,34011,2,0 +2020-03-25,Cumberland,New Jersey,34011,3,1 +2020-03-26,Cumberland,New Jersey,34011,4,1 +2020-03-27,Cumberland,New Jersey,34011,9,1 +2020-03-28,Cumberland,New Jersey,34011,11,1 +2020-03-29,Cumberland,New Jersey,34011,11,1 +2020-03-30,Cumberland,New Jersey,34011,12,1 +2020-03-31,Cumberland,New Jersey,34011,18,1 +2020-04-01,Cumberland,New Jersey,34011,27,1 +2020-04-02,Cumberland,New Jersey,34011,31,1 +2020-04-03,Cumberland,New Jersey,34011,36,1 +2020-04-04,Cumberland,New Jersey,34011,40,2 +2020-04-05,Cumberland,New Jersey,34011,54,2 +2020-04-06,Cumberland,New Jersey,34011,64,2 +2020-04-07,Cumberland,New Jersey,34011,71,2 +2020-04-08,Cumberland,New Jersey,34011,80,2 +2020-04-09,Cumberland,New Jersey,34011,111,3 +2020-04-10,Cumberland,New Jersey,34011,138,3 +2020-04-11,Cumberland,New Jersey,34011,154,3 +2020-04-12,Cumberland,New Jersey,34011,165,3 +2020-04-13,Cumberland,New Jersey,34011,187,3 +2020-04-14,Cumberland,New Jersey,34011,201,3 +2020-04-15,Cumberland,New Jersey,34011,210,3 +2020-04-16,Cumberland,New Jersey,34011,223,3 +2020-04-17,Cumberland,New Jersey,34011,263,3 +2020-04-18,Cumberland,New Jersey,34011,272,4 +2020-04-19,Cumberland,New Jersey,34011,308,4 +2020-04-20,Cumberland,New Jersey,34011,338,4 +2020-04-21,Cumberland,New Jersey,34011,360,5 +2020-04-22,Cumberland,New Jersey,34011,382,5 +2020-04-23,Cumberland,New Jersey,34011,424,5 +2020-04-24,Cumberland,New Jersey,34011,466,5 +2020-04-25,Cumberland,New Jersey,34011,504,6 +2020-04-26,Cumberland,New Jersey,34011,520,6 +2020-04-27,Cumberland,New Jersey,34011,595,8 +2020-04-28,Cumberland,New Jersey,34011,659,10 +2020-04-29,Cumberland,New Jersey,34011,687,10 +2020-04-30,Cumberland,New Jersey,34011,723,12 +2020-05-01,Cumberland,New Jersey,34011,746,13 +2020-05-02,Cumberland,New Jersey,34011,809,16 +2020-05-03,Cumberland,New Jersey,34011,881,17 +2020-05-04,Cumberland,New Jersey,34011,940,19 +2020-05-05,Cumberland,New Jersey,34011,985,23 +2020-05-06,Cumberland,New Jersey,34011,1059,25 +2020-05-07,Cumberland,New Jersey,34011,1090,25 +2020-05-08,Cumberland,New Jersey,34011,1124,28 +2020-05-09,Cumberland,New Jersey,34011,1245,34 +2020-05-10,Cumberland,New Jersey,34011,1287,36 +2020-05-11,Cumberland,New Jersey,34011,1363,40 +2020-05-12,Cumberland,New Jersey,34011,1427,43 +2020-05-13,Cumberland,New Jersey,34011,1447,43 +2020-05-14,Cumberland,New Jersey,34011,1471,48 +2020-05-15,Cumberland,New Jersey,34011,1488,48 +2020-05-16,Cumberland,New Jersey,34011,1592,49 +2020-05-17,Cumberland,New Jersey,34011,1608,51 +2020-05-18,Cumberland,New Jersey,34011,1679,53 +2020-05-19,Cumberland,New Jersey,34011,1759,56 +2020-05-20,Cumberland,New Jersey,34011,1830,57 +2020-05-21,Cumberland,New Jersey,34011,1869,60 +2020-05-22,Cumberland,New Jersey,34011,1921,61 +2020-05-23,Cumberland,New Jersey,34011,1924,62 +2020-05-24,Cumberland,New Jersey,34011,1947,63 +2020-05-25,Cumberland,New Jersey,34011,1991,63 +2020-05-26,Cumberland,New Jersey,34011,2024,63 +2020-05-27,Cumberland,New Jersey,34011,2098,65 +2020-05-28,Cumberland,New Jersey,34011,2146,65 +2020-05-29,Cumberland,New Jersey,34011,2209,69 +2020-05-30,Cumberland,New Jersey,34011,2259,72 +2020-05-31,Cumberland,New Jersey,34011,2298,73 +2020-06-01,Cumberland,New Jersey,34011,2310,75 +2020-06-02,Cumberland,New Jersey,34011,2345,78 +2020-06-03,Cumberland,New Jersey,34011,2431,79 +2020-06-04,Cumberland,New Jersey,34011,2469,79 +2020-06-05,Cumberland,New Jersey,34011,2531,86 +2020-06-06,Cumberland,New Jersey,34011,2557,90 +2020-06-07,Cumberland,New Jersey,34011,2564,90 +2020-06-08,Cumberland,New Jersey,34011,2575,90 +2020-06-09,Cumberland,New Jersey,34011,2583,95 +2020-06-10,Cumberland,New Jersey,34011,2604,100 +2020-06-11,Cumberland,New Jersey,34011,2627,102 +2020-06-12,Cumberland,New Jersey,34011,2645,104 +2020-06-13,Cumberland,New Jersey,34011,2661,107 +2020-06-14,Cumberland,New Jersey,34011,2666,107 +2020-06-15,Cumberland,New Jersey,34011,2697,108 +2020-06-16,Cumberland,New Jersey,34011,2728,114 +2020-06-17,Cumberland,New Jersey,34011,2745,118 +2020-06-18,Cumberland,New Jersey,34011,2755,118 +2020-06-19,Cumberland,New Jersey,34011,2767,119 +2020-06-20,Cumberland,New Jersey,34011,2792,123 +2020-06-21,Cumberland,New Jersey,34011,2847,124 +2020-06-22,Cumberland,New Jersey,34011,2876,124 +2020-06-23,Cumberland,New Jersey,34011,2894,126 +2020-06-24,Cumberland,New Jersey,34011,2908,126 +2020-06-25,Cumberland,New Jersey,34011,2929,138 +2020-06-26,Cumberland,New Jersey,34011,2937,140 +2020-06-27,Cumberland,New Jersey,34011,2948,141 +2020-06-28,Cumberland,New Jersey,34011,2954,141 +2020-06-29,Cumberland,New Jersey,34011,2958,141 +2020-06-30,Cumberland,New Jersey,34011,2975,143 +2020-07-01,Cumberland,New Jersey,34011,2992,145 +2020-07-02,Cumberland,New Jersey,34011,3004,146 +2020-07-03,Cumberland,New Jersey,34011,3011,147 +2020-07-04,Cumberland,New Jersey,34011,3018,147 +2020-07-05,Cumberland,New Jersey,34011,3030,149 +2020-07-06,Cumberland,New Jersey,34011,3034,149 +2020-07-07,Cumberland,New Jersey,34011,3042,149 +2020-07-08,Cumberland,New Jersey,34011,3043,149 +2020-07-09,Cumberland,New Jersey,34011,3045,149 +2020-03-12,Essex,New Jersey,34013,1,0 +2020-03-13,Essex,New Jersey,34013,6,0 +2020-03-14,Essex,New Jersey,34013,7,0 +2020-03-15,Essex,New Jersey,34013,11,0 +2020-03-16,Essex,New Jersey,34013,20,0 +2020-03-17,Essex,New Jersey,34013,32,0 +2020-03-18,Essex,New Jersey,34013,45,0 +2020-03-19,Essex,New Jersey,34013,63,2 +2020-03-20,Essex,New Jersey,34013,73,3 +2020-03-21,Essex,New Jersey,34013,107,4 +2020-03-22,Essex,New Jersey,34013,172,4 +2020-03-23,Essex,New Jersey,34013,273,5 +2020-03-24,Essex,New Jersey,34013,342,8 +2020-03-25,Essex,New Jersey,34013,381,11 +2020-03-26,Essex,New Jersey,34013,609,15 +2020-03-27,Essex,New Jersey,34013,826,18 +2020-03-28,Essex,New Jersey,34013,1086,20 +2020-03-29,Essex,New Jersey,34013,1227,20 +2020-03-30,Essex,New Jersey,34013,1564,36 +2020-03-31,Essex,New Jersey,34013,1900,47 +2020-04-01,Essex,New Jersey,34013,2262,69 +2020-04-02,Essex,New Jersey,34013,2617,99 +2020-04-03,Essex,New Jersey,34013,3067,118 +2020-04-04,Essex,New Jersey,34013,3584,156 +2020-04-05,Essex,New Jersey,34013,4082,172 +2020-04-06,Essex,New Jersey,34013,4493,186 +2020-04-07,Essex,New Jersey,34013,5078,232 +2020-04-08,Essex,New Jersey,34013,5598,276 +2020-04-09,Essex,New Jersey,34013,6069,312 +2020-04-10,Essex,New Jersey,34013,6580,352 +2020-04-11,Essex,New Jersey,34013,7007,412 +2020-04-12,Essex,New Jersey,34013,7410,428 +2020-04-13,Essex,New Jersey,34013,7634,433 +2020-04-14,Essex,New Jersey,34013,8212,535 +2020-04-15,Essex,New Jersey,34013,8579,590 +2020-04-16,Essex,New Jersey,34013,9084,642 +2020-04-17,Essex,New Jersey,34013,9672,684 +2020-04-18,Essex,New Jersey,34013,9901,732 +2020-04-19,Essex,New Jersey,34013,10304,740 +2020-04-20,Essex,New Jersey,34013,10729,751 +2020-04-21,Essex,New Jersey,34013,11128,849 +2020-04-22,Essex,New Jersey,34013,11387,888 +2020-04-23,Essex,New Jersey,34013,11811,932 +2020-04-24,Essex,New Jersey,34013,12110,975 +2020-04-25,Essex,New Jersey,34013,12520,1019 +2020-04-26,Essex,New Jersey,34013,12863,1023 +2020-04-27,Essex,New Jersey,34013,13047,1028 +2020-04-28,Essex,New Jersey,34013,13190,1090 +2020-04-29,Essex,New Jersey,34013,13445,1139 +2020-04-30,Essex,New Jersey,34013,13682,1186 +2020-05-01,Essex,New Jersey,34013,13994,1240 +2020-05-02,Essex,New Jersey,34013,14248,1265 +2020-05-03,Essex,New Jersey,34013,14521,1282 +2020-05-04,Essex,New Jersey,34013,14621,1292 +2020-05-05,Essex,New Jersey,34013,14840,1319 +2020-05-06,Essex,New Jersey,34013,14951,1349 +2020-05-07,Essex,New Jersey,34013,15095,1381 +2020-05-08,Essex,New Jersey,34013,15256,1398 +2020-05-09,Essex,New Jersey,34013,15365,1414 +2020-05-10,Essex,New Jersey,34013,15524,1423 +2020-05-11,Essex,New Jersey,34013,15602,1426 +2020-05-12,Essex,New Jersey,34013,15658,1444 +2020-05-13,Essex,New Jersey,34013,15749,1471 +2020-05-14,Essex,New Jersey,34013,15824,1496 +2020-05-15,Essex,New Jersey,34013,15953,1510 +2020-05-16,Essex,New Jersey,34013,16032,1522 +2020-05-17,Essex,New Jersey,34013,16140,1528 +2020-05-18,Essex,New Jersey,34013,16600,1546 +2020-05-19,Essex,New Jersey,34013,16686,1565 +2020-05-20,Essex,New Jersey,34013,16852,1569 +2020-05-21,Essex,New Jersey,34013,16906,1576 +2020-05-22,Essex,New Jersey,34013,17014,1585 +2020-05-23,Essex,New Jersey,34013,17065,1588 +2020-05-24,Essex,New Jersey,34013,17142,1595 +2020-05-25,Essex,New Jersey,34013,17202,1595 +2020-05-26,Essex,New Jersey,34013,17255,1605 +2020-05-27,Essex,New Jersey,34013,17338,1624 +2020-05-28,Essex,New Jersey,34013,17450,1628 +2020-05-29,Essex,New Jersey,34013,17546,1647 +2020-05-30,Essex,New Jersey,34013,17594,1657 +2020-05-31,Essex,New Jersey,34013,17629,1664 +2020-06-01,Essex,New Jersey,34013,17695,1667 +2020-06-02,Essex,New Jersey,34013,17752,1672 +2020-06-03,Essex,New Jersey,34013,17811,1687 +2020-06-04,Essex,New Jersey,34013,17912,1694 +2020-06-05,Essex,New Jersey,34013,18019,1702 +2020-06-06,Essex,New Jersey,34013,18066,1701 +2020-06-07,Essex,New Jersey,34013,18077,1707 +2020-06-08,Essex,New Jersey,34013,18117,1710 +2020-06-09,Essex,New Jersey,34013,18151,1722 +2020-06-10,Essex,New Jersey,34013,18206,1723 +2020-06-11,Essex,New Jersey,34013,18234,1723 +2020-06-12,Essex,New Jersey,34013,18295,1728 +2020-06-13,Essex,New Jersey,34013,18336,1741 +2020-06-14,Essex,New Jersey,34013,18364,1745 +2020-06-15,Essex,New Jersey,34013,18375,1751 +2020-06-16,Essex,New Jersey,34013,18388,1751 +2020-06-17,Essex,New Jersey,34013,18421,1755 +2020-06-18,Essex,New Jersey,34013,18499,1758 +2020-06-19,Essex,New Jersey,34013,18533,1758 +2020-06-20,Essex,New Jersey,34013,18515,1759 +2020-06-21,Essex,New Jersey,34013,18551,1760 +2020-06-22,Essex,New Jersey,34013,18578,1761 +2020-06-23,Essex,New Jersey,34013,18592,1765 +2020-06-24,Essex,New Jersey,34013,18617,1764 +2020-06-25,Essex,New Jersey,34013,18874,2011 +2020-06-26,Essex,New Jersey,34013,18903,2015 +2020-06-27,Essex,New Jersey,34013,18933,2018 +2020-06-28,Essex,New Jersey,34013,18953,2021 +2020-06-29,Essex,New Jersey,34013,18968,2021 +2020-06-30,Essex,New Jersey,34013,18995,2021 +2020-07-01,Essex,New Jersey,34013,19008,2024 +2020-07-02,Essex,New Jersey,34013,19045,2030 +2020-07-03,Essex,New Jersey,34013,19083,2034 +2020-07-04,Essex,New Jersey,34013,19100,2038 +2020-07-05,Essex,New Jersey,34013,19128,2040 +2020-07-06,Essex,New Jersey,34013,19136,2041 +2020-07-07,Essex,New Jersey,34013,19159,2042 +2020-07-08,Essex,New Jersey,34013,19161,2046 +2020-07-09,Essex,New Jersey,34013,19177,2060 +2020-03-17,Gloucester,New Jersey,34015,2,0 +2020-03-18,Gloucester,New Jersey,34015,2,0 +2020-03-19,Gloucester,New Jersey,34015,3,0 +2020-03-20,Gloucester,New Jersey,34015,3,0 +2020-03-21,Gloucester,New Jersey,34015,6,0 +2020-03-22,Gloucester,New Jersey,34015,8,0 +2020-03-23,Gloucester,New Jersey,34015,13,0 +2020-03-24,Gloucester,New Jersey,34015,19,0 +2020-03-25,Gloucester,New Jersey,34015,23,0 +2020-03-26,Gloucester,New Jersey,34015,33,0 +2020-03-27,Gloucester,New Jersey,34015,40,1 +2020-03-28,Gloucester,New Jersey,34015,51,1 +2020-03-29,Gloucester,New Jersey,34015,72,1 +2020-03-30,Gloucester,New Jersey,34015,89,1 +2020-03-31,Gloucester,New Jersey,34015,114,2 +2020-04-01,Gloucester,New Jersey,34015,149,2 +2020-04-02,Gloucester,New Jersey,34015,169,2 +2020-04-03,Gloucester,New Jersey,34015,183,3 +2020-04-04,Gloucester,New Jersey,34015,215,3 +2020-04-05,Gloucester,New Jersey,34015,248,3 +2020-04-06,Gloucester,New Jersey,34015,279,3 +2020-04-07,Gloucester,New Jersey,34015,311,5 +2020-04-08,Gloucester,New Jersey,34015,340,7 +2020-04-09,Gloucester,New Jersey,34015,413,8 +2020-04-10,Gloucester,New Jersey,34015,447,8 +2020-04-11,Gloucester,New Jersey,34015,487,9 +2020-04-12,Gloucester,New Jersey,34015,532,9 +2020-04-13,Gloucester,New Jersey,34015,566,9 +2020-04-14,Gloucester,New Jersey,34015,587,11 +2020-04-15,Gloucester,New Jersey,34015,602,14 +2020-04-16,Gloucester,New Jersey,34015,624,18 +2020-04-17,Gloucester,New Jersey,34015,664,22 +2020-04-18,Gloucester,New Jersey,34015,683,23 +2020-04-19,Gloucester,New Jersey,34015,737,24 +2020-04-20,Gloucester,New Jersey,34015,770,25 +2020-04-21,Gloucester,New Jersey,34015,808,27 +2020-04-22,Gloucester,New Jersey,34015,856,29 +2020-04-23,Gloucester,New Jersey,34015,899,30 +2020-04-24,Gloucester,New Jersey,34015,923,30 +2020-04-25,Gloucester,New Jersey,34015,949,30 +2020-04-26,Gloucester,New Jersey,34015,976,31 +2020-04-27,Gloucester,New Jersey,34015,1111,33 +2020-04-28,Gloucester,New Jersey,34015,1179,38 +2020-04-29,Gloucester,New Jersey,34015,1208,40 +2020-04-30,Gloucester,New Jersey,34015,1251,46 +2020-05-01,Gloucester,New Jersey,34015,1282,48 +2020-05-02,Gloucester,New Jersey,34015,1334,50 +2020-05-03,Gloucester,New Jersey,34015,1384,51 +2020-05-04,Gloucester,New Jersey,34015,1433,51 +2020-05-05,Gloucester,New Jersey,34015,1467,61 +2020-05-06,Gloucester,New Jersey,34015,1499,63 +2020-05-07,Gloucester,New Jersey,34015,1548,66 +2020-05-08,Gloucester,New Jersey,34015,1593,72 +2020-05-09,Gloucester,New Jersey,34015,1631,79 +2020-05-10,Gloucester,New Jersey,34015,1654,81 +2020-05-11,Gloucester,New Jersey,34015,1690,83 +2020-05-12,Gloucester,New Jersey,34015,1710,90 +2020-05-13,Gloucester,New Jersey,34015,1728,92 +2020-05-14,Gloucester,New Jersey,34015,1756,98 +2020-05-15,Gloucester,New Jersey,34015,1788,106 +2020-05-16,Gloucester,New Jersey,34015,1811,113 +2020-05-17,Gloucester,New Jersey,34015,1832,116 +2020-05-18,Gloucester,New Jersey,34015,1907,117 +2020-05-19,Gloucester,New Jersey,34015,1935,125 +2020-05-20,Gloucester,New Jersey,34015,1966,127 +2020-05-21,Gloucester,New Jersey,34015,2002,129 +2020-05-22,Gloucester,New Jersey,34015,2031,132 +2020-05-23,Gloucester,New Jersey,34015,2044,134 +2020-05-24,Gloucester,New Jersey,34015,2066,134 +2020-05-25,Gloucester,New Jersey,34015,2089,138 +2020-05-26,Gloucester,New Jersey,34015,2103,138 +2020-05-27,Gloucester,New Jersey,34015,2130,140 +2020-05-28,Gloucester,New Jersey,34015,2165,143 +2020-05-29,Gloucester,New Jersey,34015,2198,147 +2020-05-30,Gloucester,New Jersey,34015,2217,147 +2020-05-31,Gloucester,New Jersey,34015,2234,147 +2020-06-01,Gloucester,New Jersey,34015,2245,148 +2020-06-02,Gloucester,New Jersey,34015,2262,148 +2020-06-03,Gloucester,New Jersey,34015,2278,149 +2020-06-04,Gloucester,New Jersey,34015,2290,150 +2020-06-05,Gloucester,New Jersey,34015,2310,151 +2020-06-06,Gloucester,New Jersey,34015,2319,152 +2020-06-07,Gloucester,New Jersey,34015,2328,153 +2020-06-08,Gloucester,New Jersey,34015,2332,152 +2020-06-09,Gloucester,New Jersey,34015,2340,153 +2020-06-10,Gloucester,New Jersey,34015,2357,153 +2020-06-11,Gloucester,New Jersey,34015,2367,155 +2020-06-12,Gloucester,New Jersey,34015,2379,156 +2020-06-13,Gloucester,New Jersey,34015,2402,156 +2020-06-14,Gloucester,New Jersey,34015,2414,157 +2020-06-15,Gloucester,New Jersey,34015,2416,163 +2020-06-16,Gloucester,New Jersey,34015,2423,164 +2020-06-17,Gloucester,New Jersey,34015,2428,166 +2020-06-18,Gloucester,New Jersey,34015,2438,167 +2020-06-19,Gloucester,New Jersey,34015,2451,169 +2020-06-20,Gloucester,New Jersey,34015,2457,171 +2020-06-21,Gloucester,New Jersey,34015,2467,171 +2020-06-22,Gloucester,New Jersey,34015,2471,171 +2020-06-23,Gloucester,New Jersey,34015,2489,172 +2020-06-24,Gloucester,New Jersey,34015,2497,172 +2020-06-25,Gloucester,New Jersey,34015,2525,180 +2020-06-26,Gloucester,New Jersey,34015,2538,180 +2020-06-27,Gloucester,New Jersey,34015,2554,180 +2020-06-28,Gloucester,New Jersey,34015,2564,181 +2020-06-29,Gloucester,New Jersey,34015,2570,182 +2020-06-30,Gloucester,New Jersey,34015,2585,182 +2020-07-01,Gloucester,New Jersey,34015,2603,182 +2020-07-02,Gloucester,New Jersey,34015,2617,182 +2020-07-03,Gloucester,New Jersey,34015,2626,187 +2020-07-04,Gloucester,New Jersey,34015,2637,187 +2020-07-05,Gloucester,New Jersey,34015,2652,188 +2020-07-06,Gloucester,New Jersey,34015,2663,188 +2020-07-07,Gloucester,New Jersey,34015,2678,190 +2020-07-08,Gloucester,New Jersey,34015,2698,192 +2020-07-09,Gloucester,New Jersey,34015,2704,193 +2020-03-09,Hudson,New Jersey,34017,1,0 +2020-03-10,Hudson,New Jersey,34017,1,0 +2020-03-11,Hudson,New Jersey,34017,1,0 +2020-03-12,Hudson,New Jersey,34017,1,0 +2020-03-13,Hudson,New Jersey,34017,3,0 +2020-03-14,Hudson,New Jersey,34017,5,0 +2020-03-15,Hudson,New Jersey,34017,10,0 +2020-03-16,Hudson,New Jersey,34017,19,0 +2020-03-17,Hudson,New Jersey,34017,24,0 +2020-03-18,Hudson,New Jersey,34017,34,0 +2020-03-19,Hudson,New Jersey,34017,55,0 +2020-03-20,Hudson,New Jersey,34017,66,0 +2020-03-21,Hudson,New Jersey,34017,97,0 +2020-03-22,Hudson,New Jersey,34017,126,0 +2020-03-23,Hudson,New Jersey,34017,190,0 +2020-03-24,Hudson,New Jersey,34017,234,3 +2020-03-25,Hudson,New Jersey,34017,260,4 +2020-03-26,Hudson,New Jersey,34017,441,4 +2020-03-27,Hudson,New Jersey,34017,594,4 +2020-03-28,Hudson,New Jersey,34017,771,6 +2020-03-29,Hudson,New Jersey,34017,974,6 +2020-03-30,Hudson,New Jersey,34017,1314,11 +2020-03-31,Hudson,New Jersey,34017,1606,16 +2020-04-01,Hudson,New Jersey,34017,1910,29 +2020-04-02,Hudson,New Jersey,34017,2270,44 +2020-04-03,Hudson,New Jersey,34017,2835,59 +2020-04-04,Hudson,New Jersey,34017,3491,78 +2020-04-05,Hudson,New Jersey,34017,3924,87 +2020-04-06,Hudson,New Jersey,34017,4395,92 +2020-04-07,Hudson,New Jersey,34017,4949,103 +2020-04-08,Hudson,New Jersey,34017,5437,122 +2020-04-09,Hudson,New Jersey,34017,5879,132 +2020-04-10,Hudson,New Jersey,34017,6411,163 +2020-04-11,Hudson,New Jersey,34017,6851,183 +2020-04-12,Hudson,New Jersey,34017,7469,226 +2020-04-13,Hudson,New Jersey,34017,7879,236 +2020-04-14,Hudson,New Jersey,34017,8242,277 +2020-04-15,Hudson,New Jersey,34017,8511,312 +2020-04-16,Hudson,New Jersey,34017,9165,365 +2020-04-17,Hudson,New Jersey,34017,9636,420 +2020-04-18,Hudson,New Jersey,34017,9956,434 +2020-04-19,Hudson,New Jersey,34017,10486,452 +2020-04-20,Hudson,New Jersey,34017,11150,492 +2020-04-21,Hudson,New Jersey,34017,11636,525 +2020-04-22,Hudson,New Jersey,34017,12039,568 +2020-04-23,Hudson,New Jersey,34017,12645,606 +2020-04-24,Hudson,New Jersey,34017,13011,640 +2020-04-25,Hudson,New Jersey,34017,13367,655 +2020-04-26,Hudson,New Jersey,34017,13708,661 +2020-04-27,Hudson,New Jersey,34017,13925,673 +2020-04-28,Hudson,New Jersey,34017,14309,722 +2020-04-29,Hudson,New Jersey,34017,14596,758 +2020-04-30,Hudson,New Jersey,34017,14916,798 +2020-05-01,Hudson,New Jersey,34017,15148,819 +2020-05-02,Hudson,New Jersey,34017,15401,834 +2020-05-03,Hudson,New Jersey,34017,15769,845 +2020-05-04,Hudson,New Jersey,34017,15881,845 +2020-05-05,Hudson,New Jersey,34017,16099,870 +2020-05-06,Hudson,New Jersey,34017,16197,903 +2020-05-07,Hudson,New Jersey,34017,16354,923 +2020-05-08,Hudson,New Jersey,34017,16520,940 +2020-05-09,Hudson,New Jersey,34017,16675,954 +2020-05-10,Hudson,New Jersey,34017,16822,969 +2020-05-11,Hudson,New Jersey,34017,16936,971 +2020-05-12,Hudson,New Jersey,34017,16975,981 +2020-05-13,Hudson,New Jersey,34017,17035,1007 +2020-05-14,Hudson,New Jersey,34017,17134,1032 +2020-05-15,Hudson,New Jersey,34017,17237,1042 +2020-05-16,Hudson,New Jersey,34017,17326,1045 +2020-05-17,Hudson,New Jersey,34017,17447,1057 +2020-05-18,Hudson,New Jersey,34017,17574,1068 +2020-05-19,Hudson,New Jersey,34017,17621,1082 +2020-05-20,Hudson,New Jersey,34017,17748,1106 +2020-05-21,Hudson,New Jersey,34017,17814,1121 +2020-05-22,Hudson,New Jersey,34017,17897,1134 +2020-05-23,Hudson,New Jersey,34017,17910,1138 +2020-05-24,Hudson,New Jersey,34017,17977,1139 +2020-05-25,Hudson,New Jersey,34017,18051,1137 +2020-05-26,Hudson,New Jersey,34017,18096,1143 +2020-05-27,Hudson,New Jersey,34017,18132,1158 +2020-05-28,Hudson,New Jersey,34017,18226,1161 +2020-05-29,Hudson,New Jersey,34017,18287,1168 +2020-05-30,Hudson,New Jersey,34017,18343,1173 +2020-05-31,Hudson,New Jersey,34017,18419,1183 +2020-06-01,Hudson,New Jersey,34017,18428,1182 +2020-06-02,Hudson,New Jersey,34017,18455,1188 +2020-06-03,Hudson,New Jersey,34017,18460,1192 +2020-06-04,Hudson,New Jersey,34017,18465,1199 +2020-06-05,Hudson,New Jersey,34017,18518,1205 +2020-06-06,Hudson,New Jersey,34017,18548,1210 +2020-06-07,Hudson,New Jersey,34017,18565,1218 +2020-06-08,Hudson,New Jersey,34017,18584,1226 +2020-06-09,Hudson,New Jersey,34017,18607,1235 +2020-06-10,Hudson,New Jersey,34017,18647,1242 +2020-06-11,Hudson,New Jersey,34017,18675,1242 +2020-06-12,Hudson,New Jersey,34017,18693,1246 +2020-06-13,Hudson,New Jersey,34017,18717,1253 +2020-06-14,Hudson,New Jersey,34017,18746,1254 +2020-06-15,Hudson,New Jersey,34017,18765,1256 +2020-06-16,Hudson,New Jersey,34017,18744,1255 +2020-06-17,Hudson,New Jersey,34017,18755,1257 +2020-06-18,Hudson,New Jersey,34017,18753,1256 +2020-06-19,Hudson,New Jersey,34017,18761,1261 +2020-06-20,Hudson,New Jersey,34017,18775,1261 +2020-06-21,Hudson,New Jersey,34017,18744,1262 +2020-06-22,Hudson,New Jersey,34017,18755,1266 +2020-06-23,Hudson,New Jersey,34017,18773,1268 +2020-06-24,Hudson,New Jersey,34017,18771,1272 +2020-06-25,Hudson,New Jersey,34017,18946,1444 +2020-06-26,Hudson,New Jersey,34017,18959,1445 +2020-06-27,Hudson,New Jersey,34017,18985,1448 +2020-06-28,Hudson,New Jersey,34017,19005,1449 +2020-06-29,Hudson,New Jersey,34017,19009,1449 +2020-06-30,Hudson,New Jersey,34017,19012,1451 +2020-07-01,Hudson,New Jersey,34017,19013,1457 +2020-07-02,Hudson,New Jersey,34017,19041,1454 +2020-07-03,Hudson,New Jersey,34017,19080,1454 +2020-07-04,Hudson,New Jersey,34017,19112,1455 +2020-07-05,Hudson,New Jersey,34017,19143,1455 +2020-07-06,Hudson,New Jersey,34017,19157,1456 +2020-07-07,Hudson,New Jersey,34017,19183,1460 +2020-07-08,Hudson,New Jersey,34017,19191,1462 +2020-07-09,Hudson,New Jersey,34017,19216,1477 +2020-03-16,Hunterdon,New Jersey,34019,1,0 +2020-03-17,Hunterdon,New Jersey,34019,4,0 +2020-03-18,Hunterdon,New Jersey,34019,6,0 +2020-03-19,Hunterdon,New Jersey,34019,8,0 +2020-03-20,Hunterdon,New Jersey,34019,11,0 +2020-03-21,Hunterdon,New Jersey,34019,14,0 +2020-03-22,Hunterdon,New Jersey,34019,16,0 +2020-03-23,Hunterdon,New Jersey,34019,18,0 +2020-03-24,Hunterdon,New Jersey,34019,25,0 +2020-03-25,Hunterdon,New Jersey,34019,25,0 +2020-03-26,Hunterdon,New Jersey,34019,39,0 +2020-03-27,Hunterdon,New Jersey,34019,52,0 +2020-03-28,Hunterdon,New Jersey,34019,61,0 +2020-03-29,Hunterdon,New Jersey,34019,66,0 +2020-03-30,Hunterdon,New Jersey,34019,79,0 +2020-03-31,Hunterdon,New Jersey,34019,97,0 +2020-04-01,Hunterdon,New Jersey,34019,117,0 +2020-04-02,Hunterdon,New Jersey,34019,130,0 +2020-04-03,Hunterdon,New Jersey,34019,148,0 +2020-04-04,Hunterdon,New Jersey,34019,171,1 +2020-04-05,Hunterdon,New Jersey,34019,189,2 +2020-04-06,Hunterdon,New Jersey,34019,211,2 +2020-04-07,Hunterdon,New Jersey,34019,234,2 +2020-04-08,Hunterdon,New Jersey,34019,255,2 +2020-04-09,Hunterdon,New Jersey,34019,286,4 +2020-04-10,Hunterdon,New Jersey,34019,293,7 +2020-04-11,Hunterdon,New Jersey,34019,301,11 +2020-04-12,Hunterdon,New Jersey,34019,314,11 +2020-04-13,Hunterdon,New Jersey,34019,325,11 +2020-04-14,Hunterdon,New Jersey,34019,349,11 +2020-04-15,Hunterdon,New Jersey,34019,356,14 +2020-04-16,Hunterdon,New Jersey,34019,373,15 +2020-04-17,Hunterdon,New Jersey,34019,385,16 +2020-04-18,Hunterdon,New Jersey,34019,391,17 +2020-04-19,Hunterdon,New Jersey,34019,407,18 +2020-04-20,Hunterdon,New Jersey,34019,419,18 +2020-04-21,Hunterdon,New Jersey,34019,422,19 +2020-04-22,Hunterdon,New Jersey,34019,434,21 +2020-04-23,Hunterdon,New Jersey,34019,464,22 +2020-04-24,Hunterdon,New Jersey,34019,490,22 +2020-04-25,Hunterdon,New Jersey,34019,505,23 +2020-04-26,Hunterdon,New Jersey,34019,536,23 +2020-04-27,Hunterdon,New Jersey,34019,564,23 +2020-04-28,Hunterdon,New Jersey,34019,573,24 +2020-04-29,Hunterdon,New Jersey,34019,583,23 +2020-04-30,Hunterdon,New Jersey,34019,603,29 +2020-05-01,Hunterdon,New Jersey,34019,608,31 +2020-05-02,Hunterdon,New Jersey,34019,622,35 +2020-05-03,Hunterdon,New Jersey,34019,661,37 +2020-05-04,Hunterdon,New Jersey,34019,665,37 +2020-05-05,Hunterdon,New Jersey,34019,679,38 +2020-05-06,Hunterdon,New Jersey,34019,682,39 +2020-05-07,Hunterdon,New Jersey,34019,685,43 +2020-05-08,Hunterdon,New Jersey,34019,701,44 +2020-05-09,Hunterdon,New Jersey,34019,706,46 +2020-05-10,Hunterdon,New Jersey,34019,714,45 +2020-05-11,Hunterdon,New Jersey,34019,723,45 +2020-05-12,Hunterdon,New Jersey,34019,729,45 +2020-05-13,Hunterdon,New Jersey,34019,732,47 +2020-05-14,Hunterdon,New Jersey,34019,764,48 +2020-05-15,Hunterdon,New Jersey,34019,777,49 +2020-05-16,Hunterdon,New Jersey,34019,795,49 +2020-05-17,Hunterdon,New Jersey,34019,808,52 +2020-05-18,Hunterdon,New Jersey,34019,846,52 +2020-05-19,Hunterdon,New Jersey,34019,885,53 +2020-05-20,Hunterdon,New Jersey,34019,920,55 +2020-05-21,Hunterdon,New Jersey,34019,925,55 +2020-05-22,Hunterdon,New Jersey,34019,938,55 +2020-05-23,Hunterdon,New Jersey,34019,938,57 +2020-05-24,Hunterdon,New Jersey,34019,960,57 +2020-05-25,Hunterdon,New Jersey,34019,966,57 +2020-05-26,Hunterdon,New Jersey,34019,967,57 +2020-05-27,Hunterdon,New Jersey,34019,973,57 +2020-05-28,Hunterdon,New Jersey,34019,974,58 +2020-05-29,Hunterdon,New Jersey,34019,981,58 +2020-05-30,Hunterdon,New Jersey,34019,985,60 +2020-05-31,Hunterdon,New Jersey,34019,993,60 +2020-06-01,Hunterdon,New Jersey,34019,996,60 +2020-06-02,Hunterdon,New Jersey,34019,999,60 +2020-06-03,Hunterdon,New Jersey,34019,1006,61 +2020-06-04,Hunterdon,New Jersey,34019,1009,61 +2020-06-05,Hunterdon,New Jersey,34019,1015,62 +2020-06-06,Hunterdon,New Jersey,34019,1022,63 +2020-06-07,Hunterdon,New Jersey,34019,1023,64 +2020-06-08,Hunterdon,New Jersey,34019,1025,64 +2020-06-09,Hunterdon,New Jersey,34019,1027,64 +2020-06-10,Hunterdon,New Jersey,34019,1028,64 +2020-06-11,Hunterdon,New Jersey,34019,1032,65 +2020-06-12,Hunterdon,New Jersey,34019,1034,66 +2020-06-13,Hunterdon,New Jersey,34019,1038,66 +2020-06-14,Hunterdon,New Jersey,34019,1039,66 +2020-06-15,Hunterdon,New Jersey,34019,1041,66 +2020-06-16,Hunterdon,New Jersey,34019,1042,66 +2020-06-17,Hunterdon,New Jersey,34019,1049,67 +2020-06-18,Hunterdon,New Jersey,34019,1049,67 +2020-06-19,Hunterdon,New Jersey,34019,1050,67 +2020-06-20,Hunterdon,New Jersey,34019,1053,67 +2020-06-21,Hunterdon,New Jersey,34019,1054,67 +2020-06-22,Hunterdon,New Jersey,34019,1060,67 +2020-06-23,Hunterdon,New Jersey,34019,1062,67 +2020-06-24,Hunterdon,New Jersey,34019,1064,67 +2020-06-25,Hunterdon,New Jersey,34019,1120,122 +2020-06-26,Hunterdon,New Jersey,34019,1120,122 +2020-06-27,Hunterdon,New Jersey,34019,1120,122 +2020-06-28,Hunterdon,New Jersey,34019,1129,123 +2020-06-29,Hunterdon,New Jersey,34019,1131,123 +2020-06-30,Hunterdon,New Jersey,34019,1135,124 +2020-07-01,Hunterdon,New Jersey,34019,1136,124 +2020-07-02,Hunterdon,New Jersey,34019,1138,124 +2020-07-03,Hunterdon,New Jersey,34019,1140,124 +2020-07-04,Hunterdon,New Jersey,34019,1142,124 +2020-07-05,Hunterdon,New Jersey,34019,1143,124 +2020-07-06,Hunterdon,New Jersey,34019,1145,124 +2020-07-07,Hunterdon,New Jersey,34019,1145,124 +2020-07-08,Hunterdon,New Jersey,34019,1146,124 +2020-07-09,Hunterdon,New Jersey,34019,1150,125 +2020-03-14,Mercer,New Jersey,34021,1,0 +2020-03-15,Mercer,New Jersey,34021,1,0 +2020-03-16,Mercer,New Jersey,34021,6,0 +2020-03-17,Mercer,New Jersey,34021,9,0 +2020-03-18,Mercer,New Jersey,34021,15,0 +2020-03-19,Mercer,New Jersey,34021,20,0 +2020-03-20,Mercer,New Jersey,34021,22,0 +2020-03-21,Mercer,New Jersey,34021,30,0 +2020-03-22,Mercer,New Jersey,34021,40,0 +2020-03-23,Mercer,New Jersey,34021,50,0 +2020-03-24,Mercer,New Jersey,34021,58,0 +2020-03-25,Mercer,New Jersey,34021,82,0 +2020-03-26,Mercer,New Jersey,34021,111,0 +2020-03-27,Mercer,New Jersey,34021,131,0 +2020-03-28,Mercer,New Jersey,34021,168,0 +2020-03-29,Mercer,New Jersey,34021,202,0 +2020-03-30,Mercer,New Jersey,34021,249,0 +2020-03-31,Mercer,New Jersey,34021,268,1 +2020-04-01,Mercer,New Jersey,34021,333,3 +2020-04-02,Mercer,New Jersey,34021,386,4 +2020-04-03,Mercer,New Jersey,34021,484,5 +2020-04-04,Mercer,New Jersey,34021,586,13 +2020-04-05,Mercer,New Jersey,34021,654,16 +2020-04-06,Mercer,New Jersey,34021,740,19 +2020-04-07,Mercer,New Jersey,34021,837,24 +2020-04-08,Mercer,New Jersey,34021,992,28 +2020-04-09,Mercer,New Jersey,34021,1161,36 +2020-04-10,Mercer,New Jersey,34021,1282,39 +2020-04-11,Mercer,New Jersey,34021,1434,49 +2020-04-12,Mercer,New Jersey,34021,1567,50 +2020-04-13,Mercer,New Jersey,34021,1646,53 +2020-04-14,Mercer,New Jersey,34021,1731,71 +2020-04-15,Mercer,New Jersey,34021,1856,76 +2020-04-16,Mercer,New Jersey,34021,2037,87 +2020-04-17,Mercer,New Jersey,34021,2123,101 +2020-04-18,Mercer,New Jersey,34021,2215,110 +2020-04-19,Mercer,New Jersey,34021,2395,113 +2020-04-20,Mercer,New Jersey,34021,2591,122 +2020-04-21,Mercer,New Jersey,34021,2753,133 +2020-04-22,Mercer,New Jersey,34021,2845,145 +2020-04-23,Mercer,New Jersey,34021,2991,163 +2020-04-24,Mercer,New Jersey,34021,3086,178 +2020-04-25,Mercer,New Jersey,34021,3245,183 +2020-04-26,Mercer,New Jersey,34021,3355,188 +2020-04-27,Mercer,New Jersey,34021,3433,194 +2020-04-28,Mercer,New Jersey,34021,3605,212 +2020-04-29,Mercer,New Jersey,34021,3725,220 +2020-04-30,Mercer,New Jersey,34021,3937,231 +2020-05-01,Mercer,New Jersey,34021,4077,239 +2020-05-02,Mercer,New Jersey,34021,4271,252 +2020-05-03,Mercer,New Jersey,34021,4504,255 +2020-05-04,Mercer,New Jersey,34021,4594,256 +2020-05-05,Mercer,New Jersey,34021,4743,280 +2020-05-06,Mercer,New Jersey,34021,4860,298 +2020-05-07,Mercer,New Jersey,34021,4986,313 +2020-05-08,Mercer,New Jersey,34021,5111,322 +2020-05-09,Mercer,New Jersey,34021,5233,330 +2020-05-10,Mercer,New Jersey,34021,5317,334 +2020-05-11,Mercer,New Jersey,34021,5393,340 +2020-05-12,Mercer,New Jersey,34021,5426,349 +2020-05-13,Mercer,New Jersey,34021,5499,360 +2020-05-14,Mercer,New Jersey,34021,5612,374 +2020-05-15,Mercer,New Jersey,34021,5673,386 +2020-05-16,Mercer,New Jersey,34021,5719,396 +2020-05-17,Mercer,New Jersey,34021,5825,407 +2020-05-18,Mercer,New Jersey,34021,5950,408 +2020-05-19,Mercer,New Jersey,34021,6018,422 +2020-05-20,Mercer,New Jersey,34021,6162,431 +2020-05-21,Mercer,New Jersey,34021,6205,438 +2020-05-22,Mercer,New Jersey,34021,6295,443 +2020-05-23,Mercer,New Jersey,34021,6351,447 +2020-05-24,Mercer,New Jersey,34021,6413,449 +2020-05-25,Mercer,New Jersey,34021,6491,450 +2020-05-26,Mercer,New Jersey,34021,6544,452 +2020-05-27,Mercer,New Jersey,34021,6592,458 +2020-05-28,Mercer,New Jersey,34021,6670,462 +2020-05-29,Mercer,New Jersey,34021,6775,466 +2020-05-30,Mercer,New Jersey,34021,6850,470 +2020-05-31,Mercer,New Jersey,34021,6933,472 +2020-06-01,Mercer,New Jersey,34021,6961,475 +2020-06-02,Mercer,New Jersey,34021,7004,477 +2020-06-03,Mercer,New Jersey,34021,7033,485 +2020-06-04,Mercer,New Jersey,34021,7072,492 +2020-06-05,Mercer,New Jersey,34021,7120,499 +2020-06-06,Mercer,New Jersey,34021,7148,500 +2020-06-07,Mercer,New Jersey,34021,7166,501 +2020-06-08,Mercer,New Jersey,34021,7184,504 +2020-06-09,Mercer,New Jersey,34021,7204,509 +2020-06-10,Mercer,New Jersey,34021,7245,510 +2020-06-11,Mercer,New Jersey,34021,7275,510 +2020-06-12,Mercer,New Jersey,34021,7295,515 +2020-06-13,Mercer,New Jersey,34021,7323,517 +2020-06-14,Mercer,New Jersey,34021,7351,518 +2020-06-15,Mercer,New Jersey,34021,7371,517 +2020-06-16,Mercer,New Jersey,34021,7381,522 +2020-06-17,Mercer,New Jersey,34021,7393,523 +2020-06-18,Mercer,New Jersey,34021,7416,524 +2020-06-19,Mercer,New Jersey,34021,7463,525 +2020-06-20,Mercer,New Jersey,34021,7489,524 +2020-06-21,Mercer,New Jersey,34021,7541,524 +2020-06-22,Mercer,New Jersey,34021,7549,524 +2020-06-23,Mercer,New Jersey,34021,7560,530 +2020-06-24,Mercer,New Jersey,34021,7572,535 +2020-06-25,Mercer,New Jersey,34021,7633,573 +2020-06-26,Mercer,New Jersey,34021,7659,577 +2020-06-27,Mercer,New Jersey,34021,7657,578 +2020-06-28,Mercer,New Jersey,34021,7664,578 +2020-06-29,Mercer,New Jersey,34021,7672,578 +2020-06-30,Mercer,New Jersey,34021,7697,577 +2020-07-01,Mercer,New Jersey,34021,7714,579 +2020-07-02,Mercer,New Jersey,34021,7736,585 +2020-07-03,Mercer,New Jersey,34021,7754,585 +2020-07-04,Mercer,New Jersey,34021,7770,586 +2020-07-05,Mercer,New Jersey,34021,7783,589 +2020-07-06,Mercer,New Jersey,34021,7788,591 +2020-07-07,Mercer,New Jersey,34021,7799,592 +2020-07-08,Mercer,New Jersey,34021,7794,595 +2020-07-09,Mercer,New Jersey,34021,7809,596 +2020-03-11,Middlesex,New Jersey,34023,2,0 +2020-03-12,Middlesex,New Jersey,34023,2,0 +2020-03-13,Middlesex,New Jersey,34023,4,0 +2020-03-14,Middlesex,New Jersey,34023,8,0 +2020-03-15,Middlesex,New Jersey,34023,9,0 +2020-03-16,Middlesex,New Jersey,34023,15,0 +2020-03-17,Middlesex,New Jersey,34023,20,0 +2020-03-18,Middlesex,New Jersey,34023,40,0 +2020-03-19,Middlesex,New Jersey,34023,64,0 +2020-03-20,Middlesex,New Jersey,34023,76,0 +2020-03-21,Middlesex,New Jersey,34023,116,0 +2020-03-22,Middlesex,New Jersey,34023,147,1 +2020-03-23,Middlesex,New Jersey,34023,210,1 +2020-03-24,Middlesex,New Jersey,34023,277,1 +2020-03-25,Middlesex,New Jersey,34023,316,2 +2020-03-26,Middlesex,New Jersey,34023,505,5 +2020-03-27,Middlesex,New Jersey,34023,640,9 +2020-03-28,Middlesex,New Jersey,34023,808,14 +2020-03-29,Middlesex,New Jersey,34023,938,14 +2020-03-30,Middlesex,New Jersey,34023,1123,20 +2020-03-31,Middlesex,New Jersey,34023,1277,24 +2020-04-01,Middlesex,New Jersey,34023,1493,27 +2020-04-02,Middlesex,New Jersey,34023,1766,48 +2020-04-03,Middlesex,New Jersey,34023,2125,56 +2020-04-04,Middlesex,New Jersey,34023,2578,76 +2020-04-05,Middlesex,New Jersey,34023,2950,80 +2020-04-06,Middlesex,New Jersey,34023,3263,87 +2020-04-07,Middlesex,New Jersey,34023,3717,100 +2020-04-08,Middlesex,New Jersey,34023,4156,139 +2020-04-09,Middlesex,New Jersey,34023,4628,152 +2020-04-10,Middlesex,New Jersey,34023,5060,168 +2020-04-11,Middlesex,New Jersey,34023,5406,177 +2020-04-12,Middlesex,New Jersey,34023,5693,193 +2020-04-13,Middlesex,New Jersey,34023,5987,204 +2020-04-14,Middlesex,New Jersey,34023,6313,216 +2020-04-15,Middlesex,New Jersey,34023,6576,248 +2020-04-16,Middlesex,New Jersey,34023,6994,278 +2020-04-17,Middlesex,New Jersey,34023,7308,309 +2020-04-18,Middlesex,New Jersey,34023,7624,313 +2020-04-19,Middlesex,New Jersey,34023,8017,329 +2020-04-20,Middlesex,New Jersey,34023,8346,345 +2020-04-21,Middlesex,New Jersey,34023,8767,360 +2020-04-22,Middlesex,New Jersey,34023,9047,369 +2020-04-23,Middlesex,New Jersey,34023,9530,396 +2020-04-24,Middlesex,New Jersey,34023,9789,413 +2020-04-25,Middlesex,New Jersey,34023,10075,431 +2020-04-26,Middlesex,New Jersey,34023,10642,442 +2020-04-27,Middlesex,New Jersey,34023,10767,455 +2020-04-28,Middlesex,New Jersey,34023,11102,515 +2020-04-29,Middlesex,New Jersey,34023,11436,531 +2020-04-30,Middlesex,New Jersey,34023,11715,571 +2020-05-01,Middlesex,New Jersey,34023,11947,591 +2020-05-02,Middlesex,New Jersey,34023,12213,618 +2020-05-03,Middlesex,New Jersey,34023,12597,639 +2020-05-04,Middlesex,New Jersey,34023,12768,642 +2020-05-05,Middlesex,New Jersey,34023,13142,667 +2020-05-06,Middlesex,New Jersey,34023,13254,706 +2020-05-07,Middlesex,New Jersey,34023,13411,737 +2020-05-08,Middlesex,New Jersey,34023,13617,748 +2020-05-09,Middlesex,New Jersey,34023,13759,759 +2020-05-10,Middlesex,New Jersey,34023,13937,793 +2020-05-11,Middlesex,New Jersey,34023,14036,794 +2020-05-12,Middlesex,New Jersey,34023,14121,801 +2020-05-13,Middlesex,New Jersey,34023,14241,819 +2020-05-14,Middlesex,New Jersey,34023,14332,841 +2020-05-15,Middlesex,New Jersey,34023,14429,865 +2020-05-16,Middlesex,New Jersey,34023,14514,872 +2020-05-17,Middlesex,New Jersey,34023,14668,884 +2020-05-18,Middlesex,New Jersey,34023,14752,888 +2020-05-19,Middlesex,New Jersey,34023,14834,903 +2020-05-20,Middlesex,New Jersey,34023,14954,913 +2020-05-21,Middlesex,New Jersey,34023,15057,921 +2020-05-22,Middlesex,New Jersey,34023,15165,935 +2020-05-23,Middlesex,New Jersey,34023,15215,942 +2020-05-24,Middlesex,New Jersey,34023,15351,955 +2020-05-25,Middlesex,New Jersey,34023,15437,955 +2020-05-26,Middlesex,New Jersey,34023,15499,959 +2020-05-27,Middlesex,New Jersey,34023,15547,964 +2020-05-28,Middlesex,New Jersey,34023,15633,968 +2020-05-29,Middlesex,New Jersey,34023,15734,972 +2020-05-30,Middlesex,New Jersey,34023,15824,989 +2020-05-31,Middlesex,New Jersey,34023,15921,994 +2020-06-01,Middlesex,New Jersey,34023,15977,996 +2020-06-02,Middlesex,New Jersey,34023,16021,997 +2020-06-03,Middlesex,New Jersey,34023,16066,1004 +2020-06-04,Middlesex,New Jersey,34023,16072,1015 +2020-06-05,Middlesex,New Jersey,34023,16137,1025 +2020-06-06,Middlesex,New Jersey,34023,16203,1032 +2020-06-07,Middlesex,New Jersey,34023,16198,1040 +2020-06-08,Middlesex,New Jersey,34023,16227,1043 +2020-06-09,Middlesex,New Jersey,34023,16251,1053 +2020-06-10,Middlesex,New Jersey,34023,16288,1064 +2020-06-11,Middlesex,New Jersey,34023,16327,1069 +2020-06-12,Middlesex,New Jersey,34023,16353,1070 +2020-06-13,Middlesex,New Jersey,34023,16385,1074 +2020-06-14,Middlesex,New Jersey,34023,16430,1076 +2020-06-15,Middlesex,New Jersey,34023,16458,1083 +2020-06-16,Middlesex,New Jersey,34023,16474,1085 +2020-06-17,Middlesex,New Jersey,34023,16513,1094 +2020-06-18,Middlesex,New Jersey,34023,16547,1094 +2020-06-19,Middlesex,New Jersey,34023,16563,1097 +2020-06-20,Middlesex,New Jersey,34023,16592,1100 +2020-06-21,Middlesex,New Jersey,34023,16605,1101 +2020-06-22,Middlesex,New Jersey,34023,16618,1101 +2020-06-23,Middlesex,New Jersey,34023,16640,1104 +2020-06-24,Middlesex,New Jersey,34023,16640,1107 +2020-06-25,Middlesex,New Jersey,34023,16867,1307 +2020-06-26,Middlesex,New Jersey,34023,16885,1310 +2020-06-27,Middlesex,New Jersey,34023,16924,1317 +2020-06-28,Middlesex,New Jersey,34023,16964,1318 +2020-06-29,Middlesex,New Jersey,34023,16964,1319 +2020-06-30,Middlesex,New Jersey,34023,17016,1322 +2020-07-01,Middlesex,New Jersey,34023,17025,1324 +2020-07-02,Middlesex,New Jersey,34023,17048,1323 +2020-07-03,Middlesex,New Jersey,34023,17080,1328 +2020-07-04,Middlesex,New Jersey,34023,17097,1330 +2020-07-05,Middlesex,New Jersey,34023,17109,1331 +2020-07-06,Middlesex,New Jersey,34023,17153,1333 +2020-07-07,Middlesex,New Jersey,34023,17162,1338 +2020-07-08,Middlesex,New Jersey,34023,17152,1348 +2020-07-09,Middlesex,New Jersey,34023,17158,1361 +2020-03-09,Monmouth,New Jersey,34025,2,0 +2020-03-10,Monmouth,New Jersey,34025,2,0 +2020-03-11,Monmouth,New Jersey,34025,4,0 +2020-03-12,Monmouth,New Jersey,34025,5,0 +2020-03-13,Monmouth,New Jersey,34025,7,0 +2020-03-14,Monmouth,New Jersey,34025,8,1 +2020-03-15,Monmouth,New Jersey,34025,11,1 +2020-03-16,Monmouth,New Jersey,34025,14,1 +2020-03-17,Monmouth,New Jersey,34025,22,1 +2020-03-18,Monmouth,New Jersey,34025,32,1 +2020-03-19,Monmouth,New Jersey,34025,43,1 +2020-03-20,Monmouth,New Jersey,34025,53,1 +2020-03-21,Monmouth,New Jersey,34025,92,2 +2020-03-22,Monmouth,New Jersey,34025,158,2 +2020-03-23,Monmouth,New Jersey,34025,238,2 +2020-03-24,Monmouth,New Jersey,34025,288,4 +2020-03-25,Monmouth,New Jersey,34025,313,6 +2020-03-26,Monmouth,New Jersey,34025,501,7 +2020-03-27,Monmouth,New Jersey,34025,634,10 +2020-03-28,Monmouth,New Jersey,34025,781,10 +2020-03-29,Monmouth,New Jersey,34025,870,10 +2020-03-30,Monmouth,New Jersey,34025,1030,15 +2020-03-31,Monmouth,New Jersey,34025,1140,21 +2020-04-01,Monmouth,New Jersey,34025,1301,24 +2020-04-02,Monmouth,New Jersey,34025,1458,38 +2020-04-03,Monmouth,New Jersey,34025,1743,48 +2020-04-04,Monmouth,New Jersey,34025,2065,54 +2020-04-05,Monmouth,New Jersey,34025,2354,58 +2020-04-06,Monmouth,New Jersey,34025,2545,62 +2020-04-07,Monmouth,New Jersey,34025,2770,71 +2020-04-08,Monmouth,New Jersey,34025,3038,86 +2020-04-09,Monmouth,New Jersey,34025,3248,98 +2020-04-10,Monmouth,New Jersey,34025,3496,107 +2020-04-11,Monmouth,New Jersey,34025,3651,115 +2020-04-12,Monmouth,New Jersey,34025,3785,123 +2020-04-13,Monmouth,New Jersey,34025,3875,127 +2020-04-14,Monmouth,New Jersey,34025,4003,145 +2020-04-15,Monmouth,New Jersey,34025,4122,167 +2020-04-16,Monmouth,New Jersey,34025,4299,190 +2020-04-17,Monmouth,New Jersey,34025,4414,206 +2020-04-18,Monmouth,New Jersey,34025,4528,221 +2020-04-19,Monmouth,New Jersey,34025,4669,226 +2020-04-20,Monmouth,New Jersey,34025,4787,230 +2020-04-21,Monmouth,New Jersey,34025,4947,244 +2020-04-22,Monmouth,New Jersey,34025,5086,251 +2020-04-23,Monmouth,New Jersey,34025,5238,260 +2020-04-24,Monmouth,New Jersey,34025,5368,273 +2020-04-25,Monmouth,New Jersey,34025,5521,287 +2020-04-26,Monmouth,New Jersey,34025,5671,291 +2020-04-27,Monmouth,New Jersey,34025,5759,302 +2020-04-28,Monmouth,New Jersey,34025,5826,305 +2020-04-29,Monmouth,New Jersey,34025,5907,317 +2020-04-30,Monmouth,New Jersey,34025,6033,341 +2020-05-01,Monmouth,New Jersey,34025,6132,355 +2020-05-02,Monmouth,New Jersey,34025,6198,372 +2020-05-03,Monmouth,New Jersey,34025,6290,382 +2020-05-04,Monmouth,New Jersey,34025,6378,385 +2020-05-05,Monmouth,New Jersey,34025,6490,398 +2020-05-06,Monmouth,New Jersey,34025,6552,417 +2020-05-07,Monmouth,New Jersey,34025,6649,428 +2020-05-08,Monmouth,New Jersey,34025,6752,429 +2020-05-09,Monmouth,New Jersey,34025,6815,439 +2020-05-10,Monmouth,New Jersey,34025,6894,443 +2020-05-11,Monmouth,New Jersey,34025,6988,445 +2020-05-12,Monmouth,New Jersey,34025,7041,460 +2020-05-13,Monmouth,New Jersey,34025,7090,466 +2020-05-14,Monmouth,New Jersey,34025,7164,480 +2020-05-15,Monmouth,New Jersey,34025,7224,495 +2020-05-16,Monmouth,New Jersey,34025,7297,503 +2020-05-17,Monmouth,New Jersey,34025,7339,508 +2020-05-18,Monmouth,New Jersey,34025,7408,513 +2020-05-19,Monmouth,New Jersey,34025,7470,520 +2020-05-20,Monmouth,New Jersey,34025,7541,531 +2020-05-21,Monmouth,New Jersey,34025,7637,537 +2020-05-22,Monmouth,New Jersey,34025,7695,543 +2020-05-23,Monmouth,New Jersey,34025,7720,551 +2020-05-24,Monmouth,New Jersey,34025,7800,556 +2020-05-25,Monmouth,New Jersey,34025,7865,556 +2020-05-26,Monmouth,New Jersey,34025,7911,559 +2020-05-27,Monmouth,New Jersey,34025,7961,575 +2020-05-28,Monmouth,New Jersey,34025,8012,578 +2020-05-29,Monmouth,New Jersey,34025,8100,587 +2020-05-30,Monmouth,New Jersey,34025,8159,596 +2020-05-31,Monmouth,New Jersey,34025,8219,597 +2020-06-01,Monmouth,New Jersey,34025,8249,599 +2020-06-02,Monmouth,New Jersey,34025,8289,608 +2020-06-03,Monmouth,New Jersey,34025,8332,619 +2020-06-04,Monmouth,New Jersey,34025,8379,627 +2020-06-05,Monmouth,New Jersey,34025,8428,630 +2020-06-06,Monmouth,New Jersey,34025,8454,636 +2020-06-07,Monmouth,New Jersey,34025,8478,641 +2020-06-08,Monmouth,New Jersey,34025,8498,640 +2020-06-09,Monmouth,New Jersey,34025,8512,650 +2020-06-10,Monmouth,New Jersey,34025,8563,652 +2020-06-11,Monmouth,New Jersey,34025,8627,661 +2020-06-12,Monmouth,New Jersey,34025,8660,662 +2020-06-13,Monmouth,New Jersey,34025,8720,667 +2020-06-14,Monmouth,New Jersey,34025,8740,672 +2020-06-15,Monmouth,New Jersey,34025,8761,678 +2020-06-16,Monmouth,New Jersey,34025,8786,687 +2020-06-17,Monmouth,New Jersey,34025,8804,688 +2020-06-18,Monmouth,New Jersey,34025,8830,692 +2020-06-19,Monmouth,New Jersey,34025,8876,694 +2020-06-20,Monmouth,New Jersey,34025,8925,694 +2020-06-21,Monmouth,New Jersey,34025,8942,695 +2020-06-22,Monmouth,New Jersey,34025,8965,696 +2020-06-23,Monmouth,New Jersey,34025,8998,700 +2020-06-24,Monmouth,New Jersey,34025,9008,702 +2020-06-25,Monmouth,New Jersey,34025,9123,797 +2020-06-26,Monmouth,New Jersey,34025,9150,802 +2020-06-27,Monmouth,New Jersey,34025,9175,803 +2020-06-28,Monmouth,New Jersey,34025,9201,805 +2020-06-29,Monmouth,New Jersey,34025,9203,805 +2020-06-30,Monmouth,New Jersey,34025,9233,807 +2020-07-01,Monmouth,New Jersey,34025,9256,808 +2020-07-02,Monmouth,New Jersey,34025,9307,814 +2020-07-03,Monmouth,New Jersey,34025,9344,817 +2020-07-04,Monmouth,New Jersey,34025,9368,820 +2020-07-05,Monmouth,New Jersey,34025,9404,821 +2020-07-06,Monmouth,New Jersey,34025,9416,820 +2020-07-07,Monmouth,New Jersey,34025,9442,822 +2020-07-08,Monmouth,New Jersey,34025,9458,825 +2020-07-09,Monmouth,New Jersey,34025,9469,831 +2020-03-12,Morris,New Jersey,34027,1,0 +2020-03-13,Morris,New Jersey,34027,3,0 +2020-03-14,Morris,New Jersey,34027,5,0 +2020-03-15,Morris,New Jersey,34027,6,0 +2020-03-16,Morris,New Jersey,34027,8,0 +2020-03-17,Morris,New Jersey,34027,19,0 +2020-03-18,Morris,New Jersey,34027,19,0 +2020-03-19,Morris,New Jersey,34027,26,0 +2020-03-20,Morris,New Jersey,34027,35,0 +2020-03-21,Morris,New Jersey,34027,64,1 +2020-03-22,Morris,New Jersey,34027,119,1 +2020-03-23,Morris,New Jersey,34027,177,1 +2020-03-24,Morris,New Jersey,34027,204,4 +2020-03-25,Morris,New Jersey,34027,223,5 +2020-03-26,Morris,New Jersey,34027,315,7 +2020-03-27,Morris,New Jersey,34027,391,9 +2020-03-28,Morris,New Jersey,34027,442,12 +2020-03-29,Morris,New Jersey,34027,566,12 +2020-03-30,Morris,New Jersey,34027,720,13 +2020-03-31,Morris,New Jersey,34027,841,21 +2020-04-01,Morris,New Jersey,34027,942,25 +2020-04-02,Morris,New Jersey,34027,1082,40 +2020-04-03,Morris,New Jersey,34027,1298,43 +2020-04-04,Morris,New Jersey,34027,1618,51 +2020-04-05,Morris,New Jersey,34027,1800,55 +2020-04-06,Morris,New Jersey,34027,1956,60 +2020-04-07,Morris,New Jersey,34027,2239,87 +2020-04-08,Morris,New Jersey,34027,2468,102 +2020-04-09,Morris,New Jersey,34027,2645,117 +2020-04-10,Morris,New Jersey,34027,2771,135 +2020-04-11,Morris,New Jersey,34027,2925,152 +2020-04-12,Morris,New Jersey,34027,3099,162 +2020-04-13,Morris,New Jersey,34027,3225,162 +2020-04-14,Morris,New Jersey,34027,3424,192 +2020-04-15,Morris,New Jersey,34027,3525,212 +2020-04-16,Morris,New Jersey,34027,3701,216 +2020-04-17,Morris,New Jersey,34027,3822,232 +2020-04-18,Morris,New Jersey,34027,3984,255 +2020-04-19,Morris,New Jersey,34027,4136,257 +2020-04-20,Morris,New Jersey,34027,4236,269 +2020-04-21,Morris,New Jersey,34027,4435,291 +2020-04-22,Morris,New Jersey,34027,4556,309 +2020-04-23,Morris,New Jersey,34027,4680,324 +2020-04-24,Morris,New Jersey,34027,4716,340 +2020-04-25,Morris,New Jersey,34027,4821,347 +2020-04-26,Morris,New Jersey,34027,4976,351 +2020-04-27,Morris,New Jersey,34027,5030,355 +2020-04-28,Morris,New Jersey,34027,5128,377 +2020-04-29,Morris,New Jersey,34027,5213,387 +2020-04-30,Morris,New Jersey,34027,5287,413 +2020-05-01,Morris,New Jersey,34027,5354,430 +2020-05-02,Morris,New Jersey,34027,5406,440 +2020-05-03,Morris,New Jersey,34027,5517,449 +2020-05-04,Morris,New Jersey,34027,5549,449 +2020-05-05,Morris,New Jersey,34027,5625,474 +2020-05-06,Morris,New Jersey,34027,5655,491 +2020-05-07,Morris,New Jersey,34027,5702,503 +2020-05-08,Morris,New Jersey,34027,5767,506 +2020-05-09,Morris,New Jersey,34027,5833,511 +2020-05-10,Morris,New Jersey,34027,5854,516 +2020-05-11,Morris,New Jersey,34027,5876,518 +2020-05-12,Morris,New Jersey,34027,5908,523 +2020-05-13,Morris,New Jersey,34027,5926,531 +2020-05-14,Morris,New Jersey,34027,5954,539 +2020-05-15,Morris,New Jersey,34027,5990,550 +2020-05-16,Morris,New Jersey,34027,6012,561 +2020-05-17,Morris,New Jersey,34027,6036,561 +2020-05-18,Morris,New Jersey,34027,6092,569 +2020-05-19,Morris,New Jersey,34027,6100,572 +2020-05-20,Morris,New Jersey,34027,6139,581 +2020-05-21,Morris,New Jersey,34027,6155,583 +2020-05-22,Morris,New Jersey,34027,6171,587 +2020-05-23,Morris,New Jersey,34027,6192,590 +2020-05-24,Morris,New Jersey,34027,6207,592 +2020-05-25,Morris,New Jersey,34027,6259,593 +2020-05-26,Morris,New Jersey,34027,6279,595 +2020-05-27,Morris,New Jersey,34027,6289,600 +2020-05-28,Morris,New Jersey,34027,6354,605 +2020-05-29,Morris,New Jersey,34027,6367,610 +2020-05-30,Morris,New Jersey,34027,6383,613 +2020-05-31,Morris,New Jersey,34027,6463,615 +2020-06-01,Morris,New Jersey,34027,6506,616 +2020-06-02,Morris,New Jersey,34027,6512,617 +2020-06-03,Morris,New Jersey,34027,6540,619 +2020-06-04,Morris,New Jersey,34027,6548,622 +2020-06-05,Morris,New Jersey,34027,6572,625 +2020-06-06,Morris,New Jersey,34027,6584,626 +2020-06-07,Morris,New Jersey,34027,6592,626 +2020-06-08,Morris,New Jersey,34027,6602,625 +2020-06-09,Morris,New Jersey,34027,6605,626 +2020-06-10,Morris,New Jersey,34027,6596,627 +2020-06-11,Morris,New Jersey,34027,6601,631 +2020-06-12,Morris,New Jersey,34027,6556,632 +2020-06-13,Morris,New Jersey,34027,6568,635 +2020-06-14,Morris,New Jersey,34027,6581,636 +2020-06-15,Morris,New Jersey,34027,6588,639 +2020-06-16,Morris,New Jersey,34027,6599,640 +2020-06-17,Morris,New Jersey,34027,6627,640 +2020-06-18,Morris,New Jersey,34027,6652,638 +2020-06-19,Morris,New Jersey,34027,6679,639 +2020-06-20,Morris,New Jersey,34027,6689,639 +2020-06-21,Morris,New Jersey,34027,6699,641 +2020-06-22,Morris,New Jersey,34027,6718,643 +2020-06-23,Morris,New Jersey,34027,6727,642 +2020-06-24,Morris,New Jersey,34027,6724,644 +2020-06-25,Morris,New Jersey,34027,6831,789 +2020-06-26,Morris,New Jersey,34027,6844,792 +2020-06-27,Morris,New Jersey,34027,6861,793 +2020-06-28,Morris,New Jersey,34027,6876,795 +2020-06-29,Morris,New Jersey,34027,6881,796 +2020-06-30,Morris,New Jersey,34027,6884,798 +2020-07-01,Morris,New Jersey,34027,6903,799 +2020-07-02,Morris,New Jersey,34027,6924,801 +2020-07-03,Morris,New Jersey,34027,6937,805 +2020-07-04,Morris,New Jersey,34027,6947,806 +2020-07-05,Morris,New Jersey,34027,6956,806 +2020-07-06,Morris,New Jersey,34027,6967,806 +2020-07-07,Morris,New Jersey,34027,6977,806 +2020-07-08,Morris,New Jersey,34027,7001,810 +2020-07-09,Morris,New Jersey,34027,7018,817 +2020-03-13,Ocean,New Jersey,34029,1,0 +2020-03-14,Ocean,New Jersey,34029,1,0 +2020-03-15,Ocean,New Jersey,34029,2,0 +2020-03-16,Ocean,New Jersey,34029,3,0 +2020-03-17,Ocean,New Jersey,34029,4,0 +2020-03-18,Ocean,New Jersey,34029,16,0 +2020-03-19,Ocean,New Jersey,34029,33,0 +2020-03-20,Ocean,New Jersey,34029,49,0 +2020-03-21,Ocean,New Jersey,34029,62,0 +2020-03-22,Ocean,New Jersey,34029,102,0 +2020-03-23,Ocean,New Jersey,34029,144,0 +2020-03-24,Ocean,New Jersey,34029,180,1 +2020-03-25,Ocean,New Jersey,34029,222,5 +2020-03-26,Ocean,New Jersey,34029,389,5 +2020-03-27,Ocean,New Jersey,34029,484,8 +2020-03-28,Ocean,New Jersey,34029,624,9 +2020-03-29,Ocean,New Jersey,34029,759,9 +2020-03-30,Ocean,New Jersey,34029,874,12 +2020-03-31,Ocean,New Jersey,34029,1022,18 +2020-04-01,Ocean,New Jersey,34029,1209,23 +2020-04-02,Ocean,New Jersey,34029,1371,38 +2020-04-03,Ocean,New Jersey,34029,1685,45 +2020-04-04,Ocean,New Jersey,34029,2003,56 +2020-04-05,Ocean,New Jersey,34029,2177,62 +2020-04-06,Ocean,New Jersey,34029,2374,71 +2020-04-07,Ocean,New Jersey,34029,2641,85 +2020-04-08,Ocean,New Jersey,34029,2856,101 +2020-04-09,Ocean,New Jersey,34029,3093,119 +2020-04-10,Ocean,New Jersey,34029,3269,121 +2020-04-11,Ocean,New Jersey,34029,3403,132 +2020-04-12,Ocean,New Jersey,34029,3554,138 +2020-04-13,Ocean,New Jersey,34029,3593,141 +2020-04-14,Ocean,New Jersey,34029,3833,149 +2020-04-15,Ocean,New Jersey,34029,4016,166 +2020-04-16,Ocean,New Jersey,34029,4272,185 +2020-04-17,Ocean,New Jersey,34029,4424,201 +2020-04-18,Ocean,New Jersey,34029,4548,212 +2020-04-19,Ocean,New Jersey,34029,4648,217 +2020-04-20,Ocean,New Jersey,34029,4868,222 +2020-04-21,Ocean,New Jersey,34029,5036,253 +2020-04-22,Ocean,New Jersey,34029,5234,270 +2020-04-23,Ocean,New Jersey,34029,5444,286 +2020-04-24,Ocean,New Jersey,34029,5612,301 +2020-04-25,Ocean,New Jersey,34029,5811,317 +2020-04-26,Ocean,New Jersey,34029,5962,322 +2020-04-27,Ocean,New Jersey,34029,6024,330 +2020-04-28,Ocean,New Jersey,34029,6151,342 +2020-04-29,Ocean,New Jersey,34029,6253,367 +2020-04-30,Ocean,New Jersey,34029,6375,397 +2020-05-01,Ocean,New Jersey,34029,6505,420 +2020-05-02,Ocean,New Jersey,34029,6692,426 +2020-05-03,Ocean,New Jersey,34029,6871,440 +2020-05-04,Ocean,New Jersey,34029,6974,447 +2020-05-05,Ocean,New Jersey,34029,7060,469 +2020-05-06,Ocean,New Jersey,34029,7125,483 +2020-05-07,Ocean,New Jersey,34029,7209,500 +2020-05-08,Ocean,New Jersey,34029,7277,516 +2020-05-09,Ocean,New Jersey,34029,7366,522 +2020-05-10,Ocean,New Jersey,34029,7462,540 +2020-05-11,Ocean,New Jersey,34029,7569,547 +2020-05-12,Ocean,New Jersey,34029,7633,562 +2020-05-13,Ocean,New Jersey,34029,7688,571 +2020-05-14,Ocean,New Jersey,34029,7742,595 +2020-05-15,Ocean,New Jersey,34029,7829,610 +2020-05-16,Ocean,New Jersey,34029,7878,617 +2020-05-17,Ocean,New Jersey,34029,7913,626 +2020-05-18,Ocean,New Jersey,34029,7994,633 +2020-05-19,Ocean,New Jersey,34029,8067,643 +2020-05-20,Ocean,New Jersey,34029,8165,656 +2020-05-21,Ocean,New Jersey,34029,8214,661 +2020-05-22,Ocean,New Jersey,34029,8285,678 +2020-05-23,Ocean,New Jersey,34029,8316,686 +2020-05-24,Ocean,New Jersey,34029,8372,686 +2020-05-25,Ocean,New Jersey,34029,8430,690 +2020-05-26,Ocean,New Jersey,34029,8462,692 +2020-05-27,Ocean,New Jersey,34029,8514,704 +2020-05-28,Ocean,New Jersey,34029,8577,711 +2020-05-29,Ocean,New Jersey,34029,8627,721 +2020-05-30,Ocean,New Jersey,34029,8700,726 +2020-05-31,Ocean,New Jersey,34029,8748,739 +2020-06-01,Ocean,New Jersey,34029,8770,740 +2020-06-02,Ocean,New Jersey,34029,8817,743 +2020-06-03,Ocean,New Jersey,34029,8853,755 +2020-06-04,Ocean,New Jersey,34029,8900,763 +2020-06-05,Ocean,New Jersey,34029,8954,765 +2020-06-06,Ocean,New Jersey,34029,8979,767 +2020-06-07,Ocean,New Jersey,34029,9022,774 +2020-06-08,Ocean,New Jersey,34029,9041,781 +2020-06-09,Ocean,New Jersey,34029,9059,787 +2020-06-10,Ocean,New Jersey,34029,9100,792 +2020-06-11,Ocean,New Jersey,34029,9166,803 +2020-06-12,Ocean,New Jersey,34029,9200,807 +2020-06-13,Ocean,New Jersey,34029,9222,813 +2020-06-14,Ocean,New Jersey,34029,9244,817 +2020-06-15,Ocean,New Jersey,34029,9258,820 +2020-06-16,Ocean,New Jersey,34029,9279,826 +2020-06-17,Ocean,New Jersey,34029,9306,828 +2020-06-18,Ocean,New Jersey,34029,9351,835 +2020-06-19,Ocean,New Jersey,34029,9382,842 +2020-06-20,Ocean,New Jersey,34029,9413,845 +2020-06-21,Ocean,New Jersey,34029,9425,847 +2020-06-22,Ocean,New Jersey,34029,9440,850 +2020-06-23,Ocean,New Jersey,34029,9466,860 +2020-06-24,Ocean,New Jersey,34029,9486,866 +2020-06-25,Ocean,New Jersey,34029,9576,936 +2020-06-26,Ocean,New Jersey,34029,9603,940 +2020-06-27,Ocean,New Jersey,34029,9613,941 +2020-06-28,Ocean,New Jersey,34029,9638,944 +2020-06-29,Ocean,New Jersey,34029,9643,946 +2020-06-30,Ocean,New Jersey,34029,9682,955 +2020-07-01,Ocean,New Jersey,34029,9695,959 +2020-07-02,Ocean,New Jersey,34029,9699,961 +2020-07-03,Ocean,New Jersey,34029,9734,967 +2020-07-04,Ocean,New Jersey,34029,9750,969 +2020-07-05,Ocean,New Jersey,34029,9774,972 +2020-07-06,Ocean,New Jersey,34029,9784,974 +2020-07-07,Ocean,New Jersey,34029,9806,982 +2020-07-08,Ocean,New Jersey,34029,9821,986 +2020-07-09,Ocean,New Jersey,34029,9846,992 +2020-03-08,Passaic,New Jersey,34031,1,0 +2020-03-09,Passaic,New Jersey,34031,1,0 +2020-03-10,Passaic,New Jersey,34031,1,0 +2020-03-11,Passaic,New Jersey,34031,1,0 +2020-03-12,Passaic,New Jersey,34031,1,0 +2020-03-13,Passaic,New Jersey,34031,2,0 +2020-03-14,Passaic,New Jersey,34031,2,0 +2020-03-15,Passaic,New Jersey,34031,5,0 +2020-03-16,Passaic,New Jersey,34031,8,0 +2020-03-17,Passaic,New Jersey,34031,10,0 +2020-03-18,Passaic,New Jersey,34031,18,0 +2020-03-19,Passaic,New Jersey,34031,38,0 +2020-03-20,Passaic,New Jersey,34031,49,0 +2020-03-21,Passaic,New Jersey,34031,67,0 +2020-03-22,Passaic,New Jersey,34031,95,1 +2020-03-23,Passaic,New Jersey,34031,141,2 +2020-03-24,Passaic,New Jersey,34031,216,3 +2020-03-25,Passaic,New Jersey,34031,255,4 +2020-03-26,Passaic,New Jersey,34031,399,5 +2020-03-27,Passaic,New Jersey,34031,484,5 +2020-03-28,Passaic,New Jersey,34031,608,7 +2020-03-29,Passaic,New Jersey,34031,831,7 +2020-03-30,Passaic,New Jersey,34031,1091,9 +2020-03-31,Passaic,New Jersey,34031,1294,11 +2020-04-01,Passaic,New Jersey,34031,1494,15 +2020-04-02,Passaic,New Jersey,34031,1750,22 +2020-04-03,Passaic,New Jersey,34031,2216,34 +2020-04-04,Passaic,New Jersey,34031,2856,38 +2020-04-05,Passaic,New Jersey,34031,3227,42 +2020-04-06,Passaic,New Jersey,34031,3756,53 +2020-04-07,Passaic,New Jersey,34031,4101,62 +2020-04-08,Passaic,New Jersey,34031,4372,71 +2020-04-09,Passaic,New Jersey,34031,4690,82 +2020-04-10,Passaic,New Jersey,34031,5017,101 +2020-04-11,Passaic,New Jersey,34031,5295,119 +2020-04-12,Passaic,New Jersey,34031,5590,131 +2020-04-13,Passaic,New Jersey,34031,5950,136 +2020-04-14,Passaic,New Jersey,34031,6438,156 +2020-04-15,Passaic,New Jersey,34031,6750,182 +2020-04-16,Passaic,New Jersey,34031,7317,211 +2020-04-17,Passaic,New Jersey,34031,7604,221 +2020-04-18,Passaic,New Jersey,34031,7936,243 +2020-04-19,Passaic,New Jersey,34031,8288,250 +2020-04-20,Passaic,New Jersey,34031,8479,263 +2020-04-21,Passaic,New Jersey,34031,8941,294 +2020-04-22,Passaic,New Jersey,34031,9392,327 +2020-04-23,Passaic,New Jersey,34031,9874,350 +2020-04-24,Passaic,New Jersey,34031,10291,383 +2020-04-25,Passaic,New Jersey,34031,10738,416 +2020-04-26,Passaic,New Jersey,34031,11137,426 +2020-04-27,Passaic,New Jersey,34031,11349,438 +2020-04-28,Passaic,New Jersey,34031,11755,475 +2020-04-29,Passaic,New Jersey,34031,12185,516 +2020-04-30,Passaic,New Jersey,34031,12449,573 +2020-05-01,Passaic,New Jersey,34031,12814,599 +2020-05-02,Passaic,New Jersey,34031,13082,624 +2020-05-03,Passaic,New Jersey,34031,13364,632 +2020-05-04,Passaic,New Jersey,34031,13496,633 +2020-05-05,Passaic,New Jersey,34031,13797,663 +2020-05-06,Passaic,New Jersey,34031,13971,690 +2020-05-07,Passaic,New Jersey,34031,14133,703 +2020-05-08,Passaic,New Jersey,34031,14280,715 +2020-05-09,Passaic,New Jersey,34031,14428,734 +2020-05-10,Passaic,New Jersey,34031,14543,744 +2020-05-11,Passaic,New Jersey,34031,14645,747 +2020-05-12,Passaic,New Jersey,34031,14716,765 +2020-05-13,Passaic,New Jersey,34031,14757,785 +2020-05-14,Passaic,New Jersey,34031,14887,802 +2020-05-15,Passaic,New Jersey,34031,14930,816 +2020-05-16,Passaic,New Jersey,34031,15031,831 +2020-05-17,Passaic,New Jersey,34031,15205,838 +2020-05-18,Passaic,New Jersey,34031,15278,839 +2020-05-19,Passaic,New Jersey,34031,15371,842 +2020-05-20,Passaic,New Jersey,34031,15426,855 +2020-05-21,Passaic,New Jersey,34031,15497,864 +2020-05-22,Passaic,New Jersey,34031,15604,881 +2020-05-23,Passaic,New Jersey,34031,15610,888 +2020-05-24,Passaic,New Jersey,34031,15686,890 +2020-05-25,Passaic,New Jersey,34031,15774,891 +2020-05-26,Passaic,New Jersey,34031,15826,892 +2020-05-27,Passaic,New Jersey,34031,15873,899 +2020-05-28,Passaic,New Jersey,34031,15959,903 +2020-05-29,Passaic,New Jersey,34031,16045,917 +2020-05-30,Passaic,New Jersey,34031,16099,925 +2020-05-31,Passaic,New Jersey,34031,16170,928 +2020-06-01,Passaic,New Jersey,34031,16200,929 +2020-06-02,Passaic,New Jersey,34031,16234,931 +2020-06-03,Passaic,New Jersey,34031,16277,940 +2020-06-04,Passaic,New Jersey,34031,16311,954 +2020-06-05,Passaic,New Jersey,34031,16387,957 +2020-06-06,Passaic,New Jersey,34031,16436,969 +2020-06-07,Passaic,New Jersey,34031,16449,972 +2020-06-08,Passaic,New Jersey,34031,16461,975 +2020-06-09,Passaic,New Jersey,34031,16492,977 +2020-06-10,Passaic,New Jersey,34031,16524,982 +2020-06-11,Passaic,New Jersey,34031,16555,984 +2020-06-12,Passaic,New Jersey,34031,16581,988 +2020-06-13,Passaic,New Jersey,34031,16612,997 +2020-06-14,Passaic,New Jersey,34031,16627,999 +2020-06-15,Passaic,New Jersey,34031,16649,1001 +2020-06-16,Passaic,New Jersey,34031,16664,1006 +2020-06-17,Passaic,New Jersey,34031,16683,1007 +2020-06-18,Passaic,New Jersey,34031,16706,1009 +2020-06-19,Passaic,New Jersey,34031,16725,1013 +2020-06-20,Passaic,New Jersey,34031,16735,1013 +2020-06-21,Passaic,New Jersey,34031,16769,1014 +2020-06-22,Passaic,New Jersey,34031,16772,1015 +2020-06-23,Passaic,New Jersey,34031,16794,1019 +2020-06-24,Passaic,New Jersey,34031,16788,1025 +2020-06-25,Passaic,New Jersey,34031,16967,1173 +2020-06-26,Passaic,New Jersey,34031,16991,1177 +2020-06-27,Passaic,New Jersey,34031,17016,1180 +2020-06-28,Passaic,New Jersey,34031,17015,1181 +2020-06-29,Passaic,New Jersey,34031,17024,1183 +2020-06-30,Passaic,New Jersey,34031,17027,1186 +2020-07-01,Passaic,New Jersey,34031,17042,1187 +2020-07-02,Passaic,New Jersey,34031,17067,1187 +2020-07-03,Passaic,New Jersey,34031,17074,1192 +2020-07-04,Passaic,New Jersey,34031,17088,1192 +2020-07-05,Passaic,New Jersey,34031,17101,1194 +2020-07-06,Passaic,New Jersey,34031,17110,1196 +2020-07-07,Passaic,New Jersey,34031,17121,1200 +2020-07-08,Passaic,New Jersey,34031,17125,1204 +2020-07-09,Passaic,New Jersey,34031,17158,1216 +2020-03-22,Salem,New Jersey,34033,1,0 +2020-03-23,Salem,New Jersey,34033,1,0 +2020-03-24,Salem,New Jersey,34033,1,0 +2020-03-25,Salem,New Jersey,34033,1,0 +2020-03-26,Salem,New Jersey,34033,2,0 +2020-03-27,Salem,New Jersey,34033,3,0 +2020-03-28,Salem,New Jersey,34033,3,0 +2020-03-29,Salem,New Jersey,34033,3,0 +2020-03-30,Salem,New Jersey,34033,3,0 +2020-03-31,Salem,New Jersey,34033,12,1 +2020-04-01,Salem,New Jersey,34033,19,1 +2020-04-02,Salem,New Jersey,34033,20,1 +2020-04-03,Salem,New Jersey,34033,25,2 +2020-04-04,Salem,New Jersey,34033,25,2 +2020-04-05,Salem,New Jersey,34033,26,2 +2020-04-06,Salem,New Jersey,34033,29,2 +2020-04-07,Salem,New Jersey,34033,31,3 +2020-04-08,Salem,New Jersey,34033,36,3 +2020-04-09,Salem,New Jersey,34033,43,3 +2020-04-10,Salem,New Jersey,34033,46,3 +2020-04-11,Salem,New Jersey,34033,56,3 +2020-04-12,Salem,New Jersey,34033,61,4 +2020-04-13,Salem,New Jersey,34033,66,4 +2020-04-14,Salem,New Jersey,34033,73,4 +2020-04-15,Salem,New Jersey,34033,84,4 +2020-04-16,Salem,New Jersey,34033,95,4 +2020-04-17,Salem,New Jersey,34033,102,4 +2020-04-18,Salem,New Jersey,34033,105,4 +2020-04-19,Salem,New Jersey,34033,116,4 +2020-04-20,Salem,New Jersey,34033,120,4 +2020-04-21,Salem,New Jersey,34033,127,5 +2020-04-22,Salem,New Jersey,34033,134,6 +2020-04-23,Salem,New Jersey,34033,164,6 +2020-04-24,Salem,New Jersey,34033,169,6 +2020-04-25,Salem,New Jersey,34033,177,6 +2020-04-26,Salem,New Jersey,34033,181,6 +2020-04-27,Salem,New Jersey,34033,212,7 +2020-04-28,Salem,New Jersey,34033,219,8 +2020-04-29,Salem,New Jersey,34033,227,9 +2020-04-30,Salem,New Jersey,34033,231,10 +2020-05-01,Salem,New Jersey,34033,237,11 +2020-05-02,Salem,New Jersey,34033,261,12 +2020-05-03,Salem,New Jersey,34033,270,13 +2020-05-04,Salem,New Jersey,34033,312,14 +2020-05-05,Salem,New Jersey,34033,347,15 +2020-05-06,Salem,New Jersey,34033,353,17 +2020-05-07,Salem,New Jersey,34033,358,18 +2020-05-08,Salem,New Jersey,34033,363,18 +2020-05-09,Salem,New Jersey,34033,400,18 +2020-05-10,Salem,New Jersey,34033,411,18 +2020-05-11,Salem,New Jersey,34033,411,18 +2020-05-12,Salem,New Jersey,34033,418,18 +2020-05-13,Salem,New Jersey,34033,428,18 +2020-05-14,Salem,New Jersey,34033,438,18 +2020-05-15,Salem,New Jersey,34033,446,18 +2020-05-16,Salem,New Jersey,34033,457,19 +2020-05-17,Salem,New Jersey,34033,459,19 +2020-05-18,Salem,New Jersey,34033,465,20 +2020-05-19,Salem,New Jersey,34033,470,21 +2020-05-20,Salem,New Jersey,34033,481,23 +2020-05-21,Salem,New Jersey,34033,484,24 +2020-05-22,Salem,New Jersey,34033,523,26 +2020-05-23,Salem,New Jersey,34033,535,27 +2020-05-24,Salem,New Jersey,34033,552,28 +2020-05-25,Salem,New Jersey,34033,566,29 +2020-05-26,Salem,New Jersey,34033,573,29 +2020-05-27,Salem,New Jersey,34033,579,32 +2020-05-28,Salem,New Jersey,34033,592,34 +2020-05-29,Salem,New Jersey,34033,602,34 +2020-05-30,Salem,New Jersey,34033,621,37 +2020-05-31,Salem,New Jersey,34033,634,38 +2020-06-01,Salem,New Jersey,34033,639,41 +2020-06-02,Salem,New Jersey,34033,645,42 +2020-06-03,Salem,New Jersey,34033,653,44 +2020-06-04,Salem,New Jersey,34033,659,46 +2020-06-05,Salem,New Jersey,34033,665,49 +2020-06-06,Salem,New Jersey,34033,670,52 +2020-06-07,Salem,New Jersey,34033,675,53 +2020-06-08,Salem,New Jersey,34033,682,53 +2020-06-09,Salem,New Jersey,34033,686,54 +2020-06-10,Salem,New Jersey,34033,687,55 +2020-06-11,Salem,New Jersey,34033,689,55 +2020-06-12,Salem,New Jersey,34033,699,56 +2020-06-13,Salem,New Jersey,34033,705,57 +2020-06-14,Salem,New Jersey,34033,706,57 +2020-06-15,Salem,New Jersey,34033,708,57 +2020-06-16,Salem,New Jersey,34033,711,58 +2020-06-17,Salem,New Jersey,34033,723,60 +2020-06-18,Salem,New Jersey,34033,736,64 +2020-06-19,Salem,New Jersey,34033,745,64 +2020-06-20,Salem,New Jersey,34033,748,64 +2020-06-21,Salem,New Jersey,34033,750,64 +2020-06-22,Salem,New Jersey,34033,752,65 +2020-06-23,Salem,New Jersey,34033,752,67 +2020-06-24,Salem,New Jersey,34033,750,67 +2020-06-25,Salem,New Jersey,34033,755,71 +2020-06-26,Salem,New Jersey,34033,758,72 +2020-06-27,Salem,New Jersey,34033,759,74 +2020-06-28,Salem,New Jersey,34033,760,75 +2020-06-29,Salem,New Jersey,34033,766,75 +2020-06-30,Salem,New Jersey,34033,772,75 +2020-07-01,Salem,New Jersey,34033,782,75 +2020-07-02,Salem,New Jersey,34033,784,76 +2020-07-03,Salem,New Jersey,34033,799,77 +2020-07-04,Salem,New Jersey,34033,802,77 +2020-07-05,Salem,New Jersey,34033,807,77 +2020-07-06,Salem,New Jersey,34033,810,77 +2020-07-07,Salem,New Jersey,34033,812,77 +2020-07-08,Salem,New Jersey,34033,813,77 +2020-07-09,Salem,New Jersey,34033,816,77 +2020-03-16,Somerset,New Jersey,34035,4,0 +2020-03-17,Somerset,New Jersey,34035,6,0 +2020-03-18,Somerset,New Jersey,34035,15,0 +2020-03-19,Somerset,New Jersey,34035,20,0 +2020-03-20,Somerset,New Jersey,34035,27,0 +2020-03-21,Somerset,New Jersey,34035,34,0 +2020-03-22,Somerset,New Jersey,34035,51,1 +2020-03-23,Somerset,New Jersey,34035,67,2 +2020-03-24,Somerset,New Jersey,34035,102,2 +2020-03-25,Somerset,New Jersey,34035,117,3 +2020-03-26,Somerset,New Jersey,34035,179,4 +2020-03-27,Somerset,New Jersey,34035,222,7 +2020-03-28,Somerset,New Jersey,34035,258,8 +2020-03-29,Somerset,New Jersey,34035,295,8 +2020-03-30,Somerset,New Jersey,34035,349,14 +2020-03-31,Somerset,New Jersey,34035,413,14 +2020-04-01,Somerset,New Jersey,34035,472,15 +2020-04-02,Somerset,New Jersey,34035,549,17 +2020-04-03,Somerset,New Jersey,34035,641,23 +2020-04-04,Somerset,New Jersey,34035,765,24 +2020-04-05,Somerset,New Jersey,34035,833,26 +2020-04-06,Somerset,New Jersey,34035,902,31 +2020-04-07,Somerset,New Jersey,34035,1033,40 +2020-04-08,Somerset,New Jersey,34035,1189,46 +2020-04-09,Somerset,New Jersey,34035,1335,59 +2020-04-10,Somerset,New Jersey,34035,1523,69 +2020-04-11,Somerset,New Jersey,34035,1642,78 +2020-04-12,Somerset,New Jersey,34035,1732,79 +2020-04-13,Somerset,New Jersey,34035,1809,85 +2020-04-14,Somerset,New Jersey,34035,1911,91 +2020-04-15,Somerset,New Jersey,34035,2001,101 +2020-04-16,Somerset,New Jersey,34035,2103,121 +2020-04-17,Somerset,New Jersey,34035,2195,135 +2020-04-18,Somerset,New Jersey,34035,2283,146 +2020-04-19,Somerset,New Jersey,34035,2384,158 +2020-04-20,Somerset,New Jersey,34035,2488,170 +2020-04-21,Somerset,New Jersey,34035,2599,176 +2020-04-22,Somerset,New Jersey,34035,2688,183 +2020-04-23,Somerset,New Jersey,34035,2798,196 +2020-04-24,Somerset,New Jersey,34035,2921,198 +2020-04-25,Somerset,New Jersey,34035,3030,219 +2020-04-26,Somerset,New Jersey,34035,3144,223 +2020-04-27,Somerset,New Jersey,34035,3204,227 +2020-04-28,Somerset,New Jersey,34035,3278,242 +2020-04-29,Somerset,New Jersey,34035,3372,252 +2020-04-30,Somerset,New Jersey,34035,3464,270 +2020-05-01,Somerset,New Jersey,34035,3537,282 +2020-05-02,Somerset,New Jersey,34035,3605,289 +2020-05-03,Somerset,New Jersey,34035,3703,295 +2020-05-04,Somerset,New Jersey,34035,3753,298 +2020-05-05,Somerset,New Jersey,34035,3820,306 +2020-05-06,Somerset,New Jersey,34035,3860,315 +2020-05-07,Somerset,New Jersey,34035,3914,320 +2020-05-08,Somerset,New Jersey,34035,3968,328 +2020-05-09,Somerset,New Jersey,34035,3996,331 +2020-05-10,Somerset,New Jersey,34035,4054,333 +2020-05-11,Somerset,New Jersey,34035,4093,335 +2020-05-12,Somerset,New Jersey,34035,4115,339 +2020-05-13,Somerset,New Jersey,34035,4127,340 +2020-05-14,Somerset,New Jersey,34035,4159,348 +2020-05-15,Somerset,New Jersey,34035,4181,359 +2020-05-16,Somerset,New Jersey,34035,4212,363 +2020-05-17,Somerset,New Jersey,34035,4255,375 +2020-05-18,Somerset,New Jersey,34035,4278,375 +2020-05-19,Somerset,New Jersey,34035,4312,382 +2020-05-20,Somerset,New Jersey,34035,4349,384 +2020-05-21,Somerset,New Jersey,34035,4390,387 +2020-05-22,Somerset,New Jersey,34035,4416,392 +2020-05-23,Somerset,New Jersey,34035,4425,397 +2020-05-24,Somerset,New Jersey,34035,4450,399 +2020-05-25,Somerset,New Jersey,34035,4480,399 +2020-05-26,Somerset,New Jersey,34035,4489,399 +2020-05-27,Somerset,New Jersey,34035,4505,408 +2020-05-28,Somerset,New Jersey,34035,4522,410 +2020-05-29,Somerset,New Jersey,34035,4552,411 +2020-05-30,Somerset,New Jersey,34035,4567,417 +2020-05-31,Somerset,New Jersey,34035,4583,419 +2020-06-01,Somerset,New Jersey,34035,4595,419 +2020-06-02,Somerset,New Jersey,34035,4605,419 +2020-06-03,Somerset,New Jersey,34035,4619,423 +2020-06-04,Somerset,New Jersey,34035,4626,423 +2020-06-05,Somerset,New Jersey,34035,4651,424 +2020-06-06,Somerset,New Jersey,34035,4664,425 +2020-06-07,Somerset,New Jersey,34035,4662,426 +2020-06-08,Somerset,New Jersey,34035,4670,427 +2020-06-09,Somerset,New Jersey,34035,4679,430 +2020-06-10,Somerset,New Jersey,34035,4698,431 +2020-06-11,Somerset,New Jersey,34035,4721,432 +2020-06-12,Somerset,New Jersey,34035,4736,433 +2020-06-13,Somerset,New Jersey,34035,4756,436 +2020-06-14,Somerset,New Jersey,34035,4759,437 +2020-06-15,Somerset,New Jersey,34035,4764,437 +2020-06-16,Somerset,New Jersey,34035,4767,438 +2020-06-17,Somerset,New Jersey,34035,4780,438 +2020-06-18,Somerset,New Jersey,34035,4786,439 +2020-06-19,Somerset,New Jersey,34035,4796,438 +2020-06-20,Somerset,New Jersey,34035,4806,438 +2020-06-21,Somerset,New Jersey,34035,4813,438 +2020-06-22,Somerset,New Jersey,34035,4819,440 +2020-06-23,Somerset,New Jersey,34035,4818,441 +2020-06-24,Somerset,New Jersey,34035,4819,444 +2020-06-25,Somerset,New Jersey,34035,4909,524 +2020-06-26,Somerset,New Jersey,34035,4912,524 +2020-06-27,Somerset,New Jersey,34035,4922,524 +2020-06-28,Somerset,New Jersey,34035,4938,527 +2020-06-29,Somerset,New Jersey,34035,4939,528 +2020-06-30,Somerset,New Jersey,34035,4950,528 +2020-07-01,Somerset,New Jersey,34035,4962,528 +2020-07-02,Somerset,New Jersey,34035,4992,527 +2020-07-03,Somerset,New Jersey,34035,4999,529 +2020-07-04,Somerset,New Jersey,34035,5008,529 +2020-07-05,Somerset,New Jersey,34035,5017,530 +2020-07-06,Somerset,New Jersey,34035,5023,531 +2020-07-07,Somerset,New Jersey,34035,5025,535 +2020-07-08,Somerset,New Jersey,34035,5030,537 +2020-07-09,Somerset,New Jersey,34035,5038,544 +2020-03-19,Sussex,New Jersey,34037,2,0 +2020-03-20,Sussex,New Jersey,34037,3,0 +2020-03-21,Sussex,New Jersey,34037,6,0 +2020-03-22,Sussex,New Jersey,34037,12,0 +2020-03-23,Sussex,New Jersey,34037,15,0 +2020-03-24,Sussex,New Jersey,34037,18,0 +2020-03-25,Sussex,New Jersey,34037,27,0 +2020-03-26,Sussex,New Jersey,34037,49,0 +2020-03-27,Sussex,New Jersey,34037,65,0 +2020-03-28,Sussex,New Jersey,34037,81,1 +2020-03-29,Sussex,New Jersey,34037,93,1 +2020-03-30,Sussex,New Jersey,34037,113,3 +2020-03-31,Sussex,New Jersey,34037,132,3 +2020-04-01,Sussex,New Jersey,34037,158,6 +2020-04-02,Sussex,New Jersey,34037,179,7 +2020-04-03,Sussex,New Jersey,34037,210,8 +2020-04-04,Sussex,New Jersey,34037,236,9 +2020-04-05,Sussex,New Jersey,34037,267,9 +2020-04-06,Sussex,New Jersey,34037,292,11 +2020-04-07,Sussex,New Jersey,34037,331,15 +2020-04-08,Sussex,New Jersey,34037,357,21 +2020-04-09,Sussex,New Jersey,34037,392,21 +2020-04-10,Sussex,New Jersey,34037,413,26 +2020-04-11,Sussex,New Jersey,34037,456,27 +2020-04-12,Sussex,New Jersey,34037,483,35 +2020-04-13,Sussex,New Jersey,34037,508,38 +2020-04-14,Sussex,New Jersey,34037,535,39 +2020-04-15,Sussex,New Jersey,34037,551,41 +2020-04-16,Sussex,New Jersey,34037,578,43 +2020-04-17,Sussex,New Jersey,34037,591,54 +2020-04-18,Sussex,New Jersey,34037,626,55 +2020-04-19,Sussex,New Jersey,34037,659,62 +2020-04-20,Sussex,New Jersey,34037,680,64 +2020-04-21,Sussex,New Jersey,34037,712,69 +2020-04-22,Sussex,New Jersey,34037,743,76 +2020-04-23,Sussex,New Jersey,34037,784,82 +2020-04-24,Sussex,New Jersey,34037,795,84 +2020-04-25,Sussex,New Jersey,34037,812,91 +2020-04-26,Sussex,New Jersey,34037,855,92 +2020-04-27,Sussex,New Jersey,34037,864,93 +2020-04-28,Sussex,New Jersey,34037,882,97 +2020-04-29,Sussex,New Jersey,34037,900,99 +2020-04-30,Sussex,New Jersey,34037,921,103 +2020-05-01,Sussex,New Jersey,34037,936,110 +2020-05-02,Sussex,New Jersey,34037,949,114 +2020-05-03,Sussex,New Jersey,34037,969,115 +2020-05-04,Sussex,New Jersey,34037,979,116 +2020-05-05,Sussex,New Jersey,34037,987,120 +2020-05-06,Sussex,New Jersey,34037,995,122 +2020-05-07,Sussex,New Jersey,34037,1006,123 +2020-05-08,Sussex,New Jersey,34037,1015,125 +2020-05-09,Sussex,New Jersey,34037,1023,127 +2020-05-10,Sussex,New Jersey,34037,1026,127 +2020-05-11,Sussex,New Jersey,34037,1033,128 +2020-05-12,Sussex,New Jersey,34037,1038,135 +2020-05-13,Sussex,New Jersey,34037,1041,136 +2020-05-14,Sussex,New Jersey,34037,1046,137 +2020-05-15,Sussex,New Jersey,34037,1047,137 +2020-05-16,Sussex,New Jersey,34037,1053,137 +2020-05-17,Sussex,New Jersey,34037,1056,138 +2020-05-18,Sussex,New Jersey,34037,1061,138 +2020-05-19,Sussex,New Jersey,34037,1063,139 +2020-05-20,Sussex,New Jersey,34037,1069,140 +2020-05-21,Sussex,New Jersey,34037,1077,140 +2020-05-22,Sussex,New Jersey,34037,1075,141 +2020-05-23,Sussex,New Jersey,34037,1077,145 +2020-05-24,Sussex,New Jersey,34037,1079,145 +2020-05-25,Sussex,New Jersey,34037,1084,145 +2020-05-26,Sussex,New Jersey,34037,1089,145 +2020-05-27,Sussex,New Jersey,34037,1095,146 +2020-05-28,Sussex,New Jersey,34037,1104,147 +2020-05-29,Sussex,New Jersey,34037,1106,147 +2020-05-30,Sussex,New Jersey,34037,1110,149 +2020-05-31,Sussex,New Jersey,34037,1110,149 +2020-06-01,Sussex,New Jersey,34037,1114,148 +2020-06-02,Sussex,New Jersey,34037,1123,148 +2020-06-03,Sussex,New Jersey,34037,1128,149 +2020-06-04,Sussex,New Jersey,34037,1131,149 +2020-06-05,Sussex,New Jersey,34037,1130,149 +2020-06-06,Sussex,New Jersey,34037,1136,149 +2020-06-07,Sussex,New Jersey,34037,1140,149 +2020-06-08,Sussex,New Jersey,34037,1141,149 +2020-06-09,Sussex,New Jersey,34037,1140,149 +2020-06-10,Sussex,New Jersey,34037,1144,149 +2020-06-11,Sussex,New Jersey,34037,1149,149 +2020-06-12,Sussex,New Jersey,34037,1150,149 +2020-06-13,Sussex,New Jersey,34037,1153,149 +2020-06-14,Sussex,New Jersey,34037,1154,149 +2020-06-15,Sussex,New Jersey,34037,1155,149 +2020-06-16,Sussex,New Jersey,34037,1161,150 +2020-06-17,Sussex,New Jersey,34037,1167,150 +2020-06-18,Sussex,New Jersey,34037,1170,151 +2020-06-19,Sussex,New Jersey,34037,1176,151 +2020-06-20,Sussex,New Jersey,34037,1176,152 +2020-06-21,Sussex,New Jersey,34037,1176,152 +2020-06-22,Sussex,New Jersey,34037,1178,152 +2020-06-23,Sussex,New Jersey,34037,1178,153 +2020-06-24,Sussex,New Jersey,34037,1180,153 +2020-06-25,Sussex,New Jersey,34037,1220,191 +2020-06-26,Sussex,New Jersey,34037,1222,191 +2020-06-27,Sussex,New Jersey,34037,1221,191 +2020-06-28,Sussex,New Jersey,34037,1226,192 +2020-06-29,Sussex,New Jersey,34037,1227,192 +2020-06-30,Sussex,New Jersey,34037,1229,191 +2020-07-01,Sussex,New Jersey,34037,1234,193 +2020-07-02,Sussex,New Jersey,34037,1235,194 +2020-07-03,Sussex,New Jersey,34037,1236,193 +2020-07-04,Sussex,New Jersey,34037,1247,193 +2020-07-05,Sussex,New Jersey,34037,1246,193 +2020-07-06,Sussex,New Jersey,34037,1248,193 +2020-07-07,Sussex,New Jersey,34037,1251,193 +2020-07-08,Sussex,New Jersey,34037,1256,194 +2020-07-09,Sussex,New Jersey,34037,1257,194 +2020-03-09,Union,New Jersey,34039,1,0 +2020-03-10,Union,New Jersey,34039,1,0 +2020-03-11,Union,New Jersey,34039,1,0 +2020-03-12,Union,New Jersey,34039,1,0 +2020-03-13,Union,New Jersey,34039,1,0 +2020-03-14,Union,New Jersey,34039,1,0 +2020-03-15,Union,New Jersey,34039,4,0 +2020-03-16,Union,New Jersey,34039,8,0 +2020-03-17,Union,New Jersey,34039,22,0 +2020-03-18,Union,New Jersey,34039,26,0 +2020-03-19,Union,New Jersey,34039,29,0 +2020-03-20,Union,New Jersey,34039,43,0 +2020-03-21,Union,New Jersey,34039,81,0 +2020-03-22,Union,New Jersey,34039,124,0 +2020-03-23,Union,New Jersey,34039,189,1 +2020-03-24,Union,New Jersey,34039,246,2 +2020-03-25,Union,New Jersey,34039,262,3 +2020-03-26,Union,New Jersey,34039,432,3 +2020-03-27,Union,New Jersey,34039,519,3 +2020-03-28,Union,New Jersey,34039,742,10 +2020-03-29,Union,New Jersey,34039,896,10 +2020-03-30,Union,New Jersey,34039,1213,15 +2020-03-31,Union,New Jersey,34039,1418,24 +2020-04-01,Union,New Jersey,34039,1661,29 +2020-04-02,Union,New Jersey,34039,2010,34 +2020-04-03,Union,New Jersey,34039,2487,45 +2020-04-04,Union,New Jersey,34039,2916,66 +2020-04-05,Union,New Jersey,34039,3216,71 +2020-04-06,Union,New Jersey,34039,3685,78 +2020-04-07,Union,New Jersey,34039,4358,95 +2020-04-08,Union,New Jersey,34039,4831,125 +2020-04-09,Union,New Jersey,34039,5203,145 +2020-04-10,Union,New Jersey,34039,5575,161 +2020-04-11,Union,New Jersey,34039,5865,195 +2020-04-12,Union,New Jersey,34039,6180,209 +2020-04-13,Union,New Jersey,34039,6636,217 +2020-04-14,Union,New Jersey,34039,7265,238 +2020-04-15,Union,New Jersey,34039,7438,269 +2020-04-16,Union,New Jersey,34039,7904,301 +2020-04-17,Union,New Jersey,34039,8429,330 +2020-04-18,Union,New Jersey,34039,8959,356 +2020-04-19,Union,New Jersey,34039,9609,372 +2020-04-20,Union,New Jersey,34039,9972,387 +2020-04-21,Union,New Jersey,34039,10289,427 +2020-04-22,Union,New Jersey,34039,10484,481 +2020-04-23,Union,New Jersey,34039,10935,515 +2020-04-24,Union,New Jersey,34039,11208,542 +2020-04-25,Union,New Jersey,34039,11523,563 +2020-04-26,Union,New Jersey,34039,11853,571 +2020-04-27,Union,New Jersey,34039,12011,583 +2020-04-28,Union,New Jersey,34039,12188,627 +2020-04-29,Union,New Jersey,34039,12380,653 +2020-04-30,Union,New Jersey,34039,12578,690 +2020-05-01,Union,New Jersey,34039,12779,714 +2020-05-02,Union,New Jersey,34039,12996,731 +2020-05-03,Union,New Jersey,34039,13225,738 +2020-05-04,Union,New Jersey,34039,13357,737 +2020-05-05,Union,New Jersey,34039,13503,768 +2020-05-06,Union,New Jersey,34039,13604,800 +2020-05-07,Union,New Jersey,34039,13781,829 +2020-05-08,Union,New Jersey,34039,13917,844 +2020-05-09,Union,New Jersey,34039,13984,852 +2020-05-10,Union,New Jersey,34039,14057,867 +2020-05-11,Union,New Jersey,34039,14164,875 +2020-05-12,Union,New Jersey,34039,14203,899 +2020-05-13,Union,New Jersey,34039,14306,908 +2020-05-14,Union,New Jersey,34039,14385,930 +2020-05-15,Union,New Jersey,34039,14492,939 +2020-05-16,Union,New Jersey,34039,14569,946 +2020-05-17,Union,New Jersey,34039,14702,957 +2020-05-18,Union,New Jersey,34039,14903,962 +2020-05-19,Union,New Jersey,34039,15031,977 +2020-05-20,Union,New Jersey,34039,15122,994 +2020-05-21,Union,New Jersey,34039,15176,1005 +2020-05-22,Union,New Jersey,34039,15191,1018 +2020-05-23,Union,New Jersey,34039,15186,1022 +2020-05-24,Union,New Jersey,34039,15169,1025 +2020-05-25,Union,New Jersey,34039,15218,1024 +2020-05-26,Union,New Jersey,34039,15293,1030 +2020-05-27,Union,New Jersey,34039,15324,1042 +2020-05-28,Union,New Jersey,34039,15475,1047 +2020-05-29,Union,New Jersey,34039,15610,1060 +2020-05-30,Union,New Jersey,34039,15764,1067 +2020-05-31,Union,New Jersey,34039,15821,1073 +2020-06-01,Union,New Jersey,34039,15858,1074 +2020-06-02,Union,New Jersey,34039,15868,1078 +2020-06-03,Union,New Jersey,34039,15911,1086 +2020-06-04,Union,New Jersey,34039,15953,1088 +2020-06-05,Union,New Jersey,34039,16038,1092 +2020-06-06,Union,New Jersey,34039,16116,1095 +2020-06-07,Union,New Jersey,34039,16186,1098 +2020-06-08,Union,New Jersey,34039,16241,1100 +2020-06-09,Union,New Jersey,34039,16302,1100 +2020-06-10,Union,New Jersey,34039,16317,1103 +2020-06-11,Union,New Jersey,34039,16337,1104 +2020-06-12,Union,New Jersey,34039,16351,1112 +2020-06-13,Union,New Jersey,34039,16337,1121 +2020-06-14,Union,New Jersey,34039,16322,1126 +2020-06-15,Union,New Jersey,34039,16308,1128 +2020-06-16,Union,New Jersey,34039,16320,1130 +2020-06-17,Union,New Jersey,34039,16315,1131 +2020-06-18,Union,New Jersey,34039,16304,1132 +2020-06-19,Union,New Jersey,34039,16291,1131 +2020-06-20,Union,New Jersey,34039,16298,1135 +2020-06-21,Union,New Jersey,34039,16322,1135 +2020-06-22,Union,New Jersey,34039,16340,1138 +2020-06-23,Union,New Jersey,34039,16341,1139 +2020-06-24,Union,New Jersey,34039,16330,1140 +2020-06-25,Union,New Jersey,34039,16514,1321 +2020-06-26,Union,New Jersey,34039,16536,1323 +2020-06-27,Union,New Jersey,34039,16533,1324 +2020-06-28,Union,New Jersey,34039,16548,1325 +2020-06-29,Union,New Jersey,34039,16557,1325 +2020-06-30,Union,New Jersey,34039,16566,1326 +2020-07-01,Union,New Jersey,34039,16564,1329 +2020-07-02,Union,New Jersey,34039,16569,1325 +2020-07-03,Union,New Jersey,34039,16591,1326 +2020-07-04,Union,New Jersey,34039,16616,1327 +2020-07-05,Union,New Jersey,34039,16630,1328 +2020-07-06,Union,New Jersey,34039,16607,1328 +2020-07-07,Union,New Jersey,34039,16625,1331 +2020-07-08,Union,New Jersey,34039,16618,1330 +2020-07-09,Union,New Jersey,34039,16646,1341 +2020-03-17,Warren,New Jersey,34041,1,0 +2020-03-18,Warren,New Jersey,34041,2,0 +2020-03-19,Warren,New Jersey,34041,4,0 +2020-03-20,Warren,New Jersey,34041,4,0 +2020-03-21,Warren,New Jersey,34041,5,0 +2020-03-22,Warren,New Jersey,34041,9,0 +2020-03-23,Warren,New Jersey,34041,15,1 +2020-03-24,Warren,New Jersey,34041,15,1 +2020-03-25,Warren,New Jersey,34041,18,1 +2020-03-26,Warren,New Jersey,34041,31,1 +2020-03-27,Warren,New Jersey,34041,38,1 +2020-03-28,Warren,New Jersey,34041,51,2 +2020-03-29,Warren,New Jersey,34041,56,2 +2020-03-30,Warren,New Jersey,34041,68,2 +2020-03-31,Warren,New Jersey,34041,76,2 +2020-04-01,Warren,New Jersey,34041,96,3 +2020-04-02,Warren,New Jersey,34041,116,3 +2020-04-03,Warren,New Jersey,34041,149,3 +2020-04-04,Warren,New Jersey,34041,182,6 +2020-04-05,Warren,New Jersey,34041,195,6 +2020-04-06,Warren,New Jersey,34041,215,7 +2020-04-07,Warren,New Jersey,34041,255,7 +2020-04-08,Warren,New Jersey,34041,289,9 +2020-04-09,Warren,New Jersey,34041,319,7 +2020-04-10,Warren,New Jersey,34041,337,15 +2020-04-11,Warren,New Jersey,34041,362,18 +2020-04-12,Warren,New Jersey,34041,395,22 +2020-04-13,Warren,New Jersey,34041,416,24 +2020-04-14,Warren,New Jersey,34041,442,25 +2020-04-15,Warren,New Jersey,34041,468,30 +2020-04-16,Warren,New Jersey,34041,501,33 +2020-04-17,Warren,New Jersey,34041,521,36 +2020-04-18,Warren,New Jersey,34041,543,39 +2020-04-19,Warren,New Jersey,34041,592,44 +2020-04-20,Warren,New Jersey,34041,613,47 +2020-04-21,Warren,New Jersey,34041,642,48 +2020-04-22,Warren,New Jersey,34041,689,55 +2020-04-23,Warren,New Jersey,34041,719,60 +2020-04-24,Warren,New Jersey,34041,729,61 +2020-04-25,Warren,New Jersey,34041,750,63 +2020-04-26,Warren,New Jersey,34041,778,65 +2020-04-27,Warren,New Jersey,34041,810,67 +2020-04-28,Warren,New Jersey,34041,848,71 +2020-04-29,Warren,New Jersey,34041,880,81 +2020-04-30,Warren,New Jersey,34041,903,82 +2020-05-01,Warren,New Jersey,34041,920,83 +2020-05-02,Warren,New Jersey,34041,941,84 +2020-05-03,Warren,New Jersey,34041,957,86 +2020-05-04,Warren,New Jersey,34041,977,87 +2020-05-05,Warren,New Jersey,34041,982,91 +2020-05-06,Warren,New Jersey,34041,993,94 +2020-05-07,Warren,New Jersey,34041,1004,99 +2020-05-08,Warren,New Jersey,34041,1034,101 +2020-05-09,Warren,New Jersey,34041,1040,103 +2020-05-10,Warren,New Jersey,34041,1044,104 +2020-05-11,Warren,New Jersey,34041,1047,104 +2020-05-12,Warren,New Jersey,34041,1061,108 +2020-05-13,Warren,New Jersey,34041,1066,114 +2020-05-14,Warren,New Jersey,34041,1068,115 +2020-05-15,Warren,New Jersey,34041,1072,118 +2020-05-16,Warren,New Jersey,34041,1077,118 +2020-05-17,Warren,New Jersey,34041,1078,120 +2020-05-18,Warren,New Jersey,34041,1086,121 +2020-05-19,Warren,New Jersey,34041,1091,121 +2020-05-20,Warren,New Jersey,34041,1100,122 +2020-05-21,Warren,New Jersey,34041,1111,123 +2020-05-22,Warren,New Jersey,34041,1118,123 +2020-05-23,Warren,New Jersey,34041,1119,126 +2020-05-24,Warren,New Jersey,34041,1125,126 +2020-05-25,Warren,New Jersey,34041,1132,126 +2020-05-26,Warren,New Jersey,34041,1136,128 +2020-05-27,Warren,New Jersey,34041,1145,129 +2020-05-28,Warren,New Jersey,34041,1146,129 +2020-05-29,Warren,New Jersey,34041,1153,131 +2020-05-30,Warren,New Jersey,34041,1162,131 +2020-05-31,Warren,New Jersey,34041,1160,131 +2020-06-01,Warren,New Jersey,34041,1165,132 +2020-06-02,Warren,New Jersey,34041,1173,132 +2020-06-03,Warren,New Jersey,34041,1182,132 +2020-06-04,Warren,New Jersey,34041,1186,132 +2020-06-05,Warren,New Jersey,34041,1189,132 +2020-06-06,Warren,New Jersey,34041,1190,132 +2020-06-07,Warren,New Jersey,34041,1189,132 +2020-06-08,Warren,New Jersey,34041,1192,135 +2020-06-09,Warren,New Jersey,34041,1193,135 +2020-06-10,Warren,New Jersey,34041,1197,135 +2020-06-11,Warren,New Jersey,34041,1198,137 +2020-06-12,Warren,New Jersey,34041,1200,138 +2020-06-13,Warren,New Jersey,34041,1202,138 +2020-06-14,Warren,New Jersey,34041,1202,138 +2020-06-15,Warren,New Jersey,34041,1202,138 +2020-06-16,Warren,New Jersey,34041,1205,140 +2020-06-17,Warren,New Jersey,34041,1206,140 +2020-06-18,Warren,New Jersey,34041,1205,139 +2020-06-19,Warren,New Jersey,34041,1209,141 +2020-06-20,Warren,New Jersey,34041,1211,142 +2020-06-21,Warren,New Jersey,34041,1216,142 +2020-06-22,Warren,New Jersey,34041,1218,142 +2020-06-23,Warren,New Jersey,34041,1221,144 +2020-06-24,Warren,New Jersey,34041,1222,144 +2020-06-25,Warren,New Jersey,34041,1235,155 +2020-06-26,Warren,New Jersey,34041,1236,155 +2020-06-27,Warren,New Jersey,34041,1238,156 +2020-06-28,Warren,New Jersey,34041,1239,156 +2020-06-29,Warren,New Jersey,34041,1241,156 +2020-06-30,Warren,New Jersey,34041,1244,158 +2020-07-01,Warren,New Jersey,34041,1252,159 +2020-07-02,Warren,New Jersey,34041,1254,160 +2020-07-03,Warren,New Jersey,34041,1257,161 +2020-07-04,Warren,New Jersey,34041,1260,161 +2020-07-05,Warren,New Jersey,34041,1264,161 +2020-07-06,Warren,New Jersey,34041,1266,162 +2020-07-07,Warren,New Jersey,34041,1269,162 +2020-07-08,Warren,New Jersey,34041,1273,164 +2020-07-09,Warren,New Jersey,34041,1275,167 +2020-03-11,Bernalillo,New Mexico,35001,1,0 +2020-03-12,Bernalillo,New Mexico,35001,2,0 +2020-03-13,Bernalillo,New Mexico,35001,5,0 +2020-03-14,Bernalillo,New Mexico,35001,6,0 +2020-03-15,Bernalillo,New Mexico,35001,10,0 +2020-03-16,Bernalillo,New Mexico,35001,14,0 +2020-03-17,Bernalillo,New Mexico,35001,14,0 +2020-03-18,Bernalillo,New Mexico,35001,17,0 +2020-03-19,Bernalillo,New Mexico,35001,20,0 +2020-03-20,Bernalillo,New Mexico,35001,23,0 +2020-03-21,Bernalillo,New Mexico,35001,32,0 +2020-03-22,Bernalillo,New Mexico,35001,34,0 +2020-03-23,Bernalillo,New Mexico,35001,38,0 +2020-03-24,Bernalillo,New Mexico,35001,43,0 +2020-03-25,Bernalillo,New Mexico,35001,48,0 +2020-03-26,Bernalillo,New Mexico,35001,55,0 +2020-03-27,Bernalillo,New Mexico,35001,82,0 +2020-03-28,Bernalillo,New Mexico,35001,93,1 +2020-03-29,Bernalillo,New Mexico,35001,101,1 +2020-03-30,Bernalillo,New Mexico,35001,117,3 +2020-03-31,Bernalillo,New Mexico,35001,129,4 +2020-04-01,Bernalillo,New Mexico,35001,148,4 +2020-04-02,Bernalillo,New Mexico,35001,163,5 +2020-04-03,Bernalillo,New Mexico,35001,202,7 +2020-04-04,Bernalillo,New Mexico,35001,225,7 +2020-04-05,Bernalillo,New Mexico,35001,246,7 +2020-04-06,Bernalillo,New Mexico,35001,262,7 +2020-04-07,Bernalillo,New Mexico,35001,307,8 +2020-04-08,Bernalillo,New Mexico,35001,325,11 +2020-04-09,Bernalillo,New Mexico,35001,369,12 +2020-04-10,Bernalillo,New Mexico,35001,407,13 +2020-04-11,Bernalillo,New Mexico,35001,422,13 +2020-04-12,Bernalillo,New Mexico,35001,440,16 +2020-04-13,Bernalillo,New Mexico,35001,455,16 +2020-04-14,Bernalillo,New Mexico,35001,464,17 +2020-04-15,Bernalillo,New Mexico,35001,477,17 +2020-04-16,Bernalillo,New Mexico,35001,491,18 +2020-04-17,Bernalillo,New Mexico,35001,514,22 +2020-04-18,Bernalillo,New Mexico,35001,527,23 +2020-04-19,Bernalillo,New Mexico,35001,542,24 +2020-04-20,Bernalillo,New Mexico,35001,566,24 +2020-04-21,Bernalillo,New Mexico,35001,585,29 +2020-04-22,Bernalillo,New Mexico,35001,600,29 +2020-04-23,Bernalillo,New Mexico,35001,631,31 +2020-04-24,Bernalillo,New Mexico,35001,651,33 +2020-04-25,Bernalillo,New Mexico,35001,670,33 +2020-04-26,Bernalillo,New Mexico,35001,688,33 +2020-04-27,Bernalillo,New Mexico,35001,694,33 +2020-04-28,Bernalillo,New Mexico,35001,738,35 +2020-04-29,Bernalillo,New Mexico,35001,765,35 +2020-04-30,Bernalillo,New Mexico,35001,811,35 +2020-05-01,Bernalillo,New Mexico,35001,830,36 +2020-05-02,Bernalillo,New Mexico,35001,883,38 +2020-05-03,Bernalillo,New Mexico,35001,920,40 +2020-05-04,Bernalillo,New Mexico,35001,944,40 +2020-05-05,Bernalillo,New Mexico,35001,963,42 +2020-05-06,Bernalillo,New Mexico,35001,981,44 +2020-05-07,Bernalillo,New Mexico,35001,1012,44 +2020-05-08,Bernalillo,New Mexico,35001,1030,45 +2020-05-09,Bernalillo,New Mexico,35001,1050,46 +2020-05-10,Bernalillo,New Mexico,35001,1073,46 +2020-05-11,Bernalillo,New Mexico,35001,1086,48 +2020-05-12,Bernalillo,New Mexico,35001,1111,50 +2020-05-13,Bernalillo,New Mexico,35001,1124,53 +2020-05-14,Bernalillo,New Mexico,35001,1149,54 +2020-05-15,Bernalillo,New Mexico,35001,1180,56 +2020-05-16,Bernalillo,New Mexico,35001,1194,56 +2020-05-17,Bernalillo,New Mexico,35001,1210,57 +2020-05-18,Bernalillo,New Mexico,35001,1218,59 +2020-05-19,Bernalillo,New Mexico,35001,1225,59 +2020-05-20,Bernalillo,New Mexico,35001,1254,59 +2020-05-21,Bernalillo,New Mexico,35001,1273,63 +2020-05-22,Bernalillo,New Mexico,35001,1313,66 +2020-05-23,Bernalillo,New Mexico,35001,1326,68 +2020-05-24,Bernalillo,New Mexico,35001,1337,68 +2020-05-25,Bernalillo,New Mexico,35001,1347,68 +2020-05-26,Bernalillo,New Mexico,35001,1362,68 +2020-05-27,Bernalillo,New Mexico,35001,1383,69 +2020-05-28,Bernalillo,New Mexico,35001,1434,70 +2020-05-29,Bernalillo,New Mexico,35001,1445,71 +2020-05-30,Bernalillo,New Mexico,35001,1464,71 +2020-05-31,Bernalillo,New Mexico,35001,1476,71 +2020-06-01,Bernalillo,New Mexico,35001,1486,71 +2020-06-02,Bernalillo,New Mexico,35001,1499,72 +2020-06-03,Bernalillo,New Mexico,35001,1524,72 +2020-06-04,Bernalillo,New Mexico,35001,1543,73 +2020-06-05,Bernalillo,New Mexico,35001,1559,74 +2020-06-06,Bernalillo,New Mexico,35001,1575,74 +2020-06-07,Bernalillo,New Mexico,35001,1592,75 +2020-06-08,Bernalillo,New Mexico,35001,1600,75 +2020-06-09,Bernalillo,New Mexico,35001,1612,76 +2020-06-10,Bernalillo,New Mexico,35001,1623,77 +2020-06-11,Bernalillo,New Mexico,35001,1652,77 +2020-06-12,Bernalillo,New Mexico,35001,1669,77 +2020-06-13,Bernalillo,New Mexico,35001,1682,78 +2020-06-14,Bernalillo,New Mexico,35001,1693,80 +2020-06-15,Bernalillo,New Mexico,35001,1705,80 +2020-06-16,Bernalillo,New Mexico,35001,1733,80 +2020-06-17,Bernalillo,New Mexico,35001,1752,81 +2020-06-18,Bernalillo,New Mexico,35001,1763,82 +2020-06-19,Bernalillo,New Mexico,35001,1777,82 +2020-06-20,Bernalillo,New Mexico,35001,1792,82 +2020-06-21,Bernalillo,New Mexico,35001,1805,82 +2020-06-22,Bernalillo,New Mexico,35001,1828,82 +2020-06-23,Bernalillo,New Mexico,35001,1848,82 +2020-06-24,Bernalillo,New Mexico,35001,1879,84 +2020-06-25,Bernalillo,New Mexico,35001,1937,85 +2020-06-26,Bernalillo,New Mexico,35001,1987,85 +2020-06-27,Bernalillo,New Mexico,35001,2021,85 +2020-06-28,Bernalillo,New Mexico,35001,2064,85 +2020-06-29,Bernalillo,New Mexico,35001,2109,85 +2020-06-30,Bernalillo,New Mexico,35001,2143,85 +2020-07-01,Bernalillo,New Mexico,35001,2178,86 +2020-07-02,Bernalillo,New Mexico,35001,2277,87 +2020-07-03,Bernalillo,New Mexico,35001,2331,87 +2020-07-04,Bernalillo,New Mexico,35001,2410,87 +2020-07-05,Bernalillo,New Mexico,35001,2471,87 +2020-07-06,Bernalillo,New Mexico,35001,2531,88 +2020-07-07,Bernalillo,New Mexico,35001,2618,89 +2020-07-08,Bernalillo,New Mexico,35001,2717,92 +2020-07-09,Bernalillo,New Mexico,35001,2816,94 +2020-04-01,Catron,New Mexico,35003,1,0 +2020-04-02,Catron,New Mexico,35003,1,0 +2020-04-03,Catron,New Mexico,35003,1,0 +2020-04-04,Catron,New Mexico,35003,1,0 +2020-04-05,Catron,New Mexico,35003,1,0 +2020-04-06,Catron,New Mexico,35003,1,0 +2020-04-07,Catron,New Mexico,35003,1,0 +2020-04-08,Catron,New Mexico,35003,1,0 +2020-04-09,Catron,New Mexico,35003,1,0 +2020-04-10,Catron,New Mexico,35003,1,0 +2020-04-11,Catron,New Mexico,35003,1,0 +2020-04-12,Catron,New Mexico,35003,1,0 +2020-04-13,Catron,New Mexico,35003,1,0 +2020-04-14,Catron,New Mexico,35003,1,0 +2020-04-15,Catron,New Mexico,35003,1,0 +2020-04-16,Catron,New Mexico,35003,1,0 +2020-04-17,Catron,New Mexico,35003,1,0 +2020-04-18,Catron,New Mexico,35003,1,0 +2020-04-19,Catron,New Mexico,35003,1,0 +2020-04-20,Catron,New Mexico,35003,1,0 +2020-04-21,Catron,New Mexico,35003,1,0 +2020-04-22,Catron,New Mexico,35003,1,0 +2020-04-23,Catron,New Mexico,35003,1,0 +2020-04-24,Catron,New Mexico,35003,1,0 +2020-04-25,Catron,New Mexico,35003,1,1 +2020-04-26,Catron,New Mexico,35003,1,1 +2020-04-27,Catron,New Mexico,35003,1,1 +2020-04-28,Catron,New Mexico,35003,1,1 +2020-04-29,Catron,New Mexico,35003,1,1 +2020-04-30,Catron,New Mexico,35003,1,1 +2020-05-01,Catron,New Mexico,35003,1,1 +2020-05-02,Catron,New Mexico,35003,1,1 +2020-05-03,Catron,New Mexico,35003,1,1 +2020-05-04,Catron,New Mexico,35003,1,1 +2020-05-05,Catron,New Mexico,35003,1,1 +2020-05-06,Catron,New Mexico,35003,2,1 +2020-05-07,Catron,New Mexico,35003,2,1 +2020-05-08,Catron,New Mexico,35003,2,1 +2020-05-09,Catron,New Mexico,35003,2,1 +2020-05-10,Catron,New Mexico,35003,2,1 +2020-05-11,Catron,New Mexico,35003,2,1 +2020-05-12,Catron,New Mexico,35003,2,1 +2020-05-13,Catron,New Mexico,35003,2,1 +2020-05-14,Catron,New Mexico,35003,2,1 +2020-05-15,Catron,New Mexico,35003,2,1 +2020-05-16,Catron,New Mexico,35003,2,1 +2020-05-17,Catron,New Mexico,35003,2,1 +2020-05-18,Catron,New Mexico,35003,2,1 +2020-05-19,Catron,New Mexico,35003,2,1 +2020-05-20,Catron,New Mexico,35003,2,1 +2020-05-21,Catron,New Mexico,35003,2,1 +2020-05-22,Catron,New Mexico,35003,2,1 +2020-05-23,Catron,New Mexico,35003,2,1 +2020-05-24,Catron,New Mexico,35003,2,1 +2020-05-25,Catron,New Mexico,35003,2,1 +2020-05-26,Catron,New Mexico,35003,2,1 +2020-05-27,Catron,New Mexico,35003,2,1 +2020-05-28,Catron,New Mexico,35003,2,1 +2020-05-29,Catron,New Mexico,35003,2,1 +2020-05-30,Catron,New Mexico,35003,2,1 +2020-05-31,Catron,New Mexico,35003,2,1 +2020-06-01,Catron,New Mexico,35003,2,1 +2020-06-02,Catron,New Mexico,35003,2,1 +2020-06-03,Catron,New Mexico,35003,2,1 +2020-06-04,Catron,New Mexico,35003,2,1 +2020-06-05,Catron,New Mexico,35003,2,1 +2020-06-06,Catron,New Mexico,35003,2,1 +2020-06-07,Catron,New Mexico,35003,2,1 +2020-06-08,Catron,New Mexico,35003,2,1 +2020-06-09,Catron,New Mexico,35003,2,1 +2020-06-10,Catron,New Mexico,35003,2,1 +2020-06-11,Catron,New Mexico,35003,2,1 +2020-06-12,Catron,New Mexico,35003,2,1 +2020-06-13,Catron,New Mexico,35003,2,1 +2020-06-14,Catron,New Mexico,35003,2,1 +2020-06-15,Catron,New Mexico,35003,2,1 +2020-06-16,Catron,New Mexico,35003,2,1 +2020-06-17,Catron,New Mexico,35003,2,1 +2020-06-18,Catron,New Mexico,35003,2,1 +2020-06-19,Catron,New Mexico,35003,2,1 +2020-06-20,Catron,New Mexico,35003,2,1 +2020-06-21,Catron,New Mexico,35003,2,1 +2020-06-22,Catron,New Mexico,35003,2,1 +2020-06-23,Catron,New Mexico,35003,2,1 +2020-06-24,Catron,New Mexico,35003,2,1 +2020-06-25,Catron,New Mexico,35003,2,1 +2020-06-26,Catron,New Mexico,35003,2,1 +2020-06-27,Catron,New Mexico,35003,2,1 +2020-06-28,Catron,New Mexico,35003,2,1 +2020-06-29,Catron,New Mexico,35003,2,1 +2020-06-30,Catron,New Mexico,35003,2,1 +2020-07-01,Catron,New Mexico,35003,2,1 +2020-07-02,Catron,New Mexico,35003,2,1 +2020-07-03,Catron,New Mexico,35003,2,1 +2020-07-04,Catron,New Mexico,35003,2,1 +2020-07-05,Catron,New Mexico,35003,2,1 +2020-07-06,Catron,New Mexico,35003,2,1 +2020-07-07,Catron,New Mexico,35003,2,1 +2020-07-08,Catron,New Mexico,35003,2,1 +2020-07-09,Catron,New Mexico,35003,2,1 +2020-03-23,Chaves,New Mexico,35005,4,0 +2020-03-24,Chaves,New Mexico,35005,4,0 +2020-03-25,Chaves,New Mexico,35005,4,0 +2020-03-26,Chaves,New Mexico,35005,4,0 +2020-03-27,Chaves,New Mexico,35005,4,0 +2020-03-28,Chaves,New Mexico,35005,7,0 +2020-03-29,Chaves,New Mexico,35005,8,0 +2020-03-30,Chaves,New Mexico,35005,10,0 +2020-03-31,Chaves,New Mexico,35005,10,0 +2020-04-01,Chaves,New Mexico,35005,10,0 +2020-04-02,Chaves,New Mexico,35005,13,0 +2020-04-03,Chaves,New Mexico,35005,13,0 +2020-04-04,Chaves,New Mexico,35005,13,0 +2020-04-05,Chaves,New Mexico,35005,13,0 +2020-04-06,Chaves,New Mexico,35005,14,0 +2020-04-07,Chaves,New Mexico,35005,15,0 +2020-04-08,Chaves,New Mexico,35005,16,0 +2020-04-09,Chaves,New Mexico,35005,18,0 +2020-04-10,Chaves,New Mexico,35005,18,0 +2020-04-11,Chaves,New Mexico,35005,19,0 +2020-04-12,Chaves,New Mexico,35005,19,0 +2020-04-13,Chaves,New Mexico,35005,19,0 +2020-04-14,Chaves,New Mexico,35005,19,0 +2020-04-15,Chaves,New Mexico,35005,19,0 +2020-04-16,Chaves,New Mexico,35005,19,0 +2020-04-17,Chaves,New Mexico,35005,21,0 +2020-04-18,Chaves,New Mexico,35005,21,0 +2020-04-19,Chaves,New Mexico,35005,21,0 +2020-04-20,Chaves,New Mexico,35005,21,0 +2020-04-21,Chaves,New Mexico,35005,21,1 +2020-04-22,Chaves,New Mexico,35005,21,1 +2020-04-23,Chaves,New Mexico,35005,22,1 +2020-04-24,Chaves,New Mexico,35005,22,1 +2020-04-25,Chaves,New Mexico,35005,22,1 +2020-04-26,Chaves,New Mexico,35005,22,1 +2020-04-27,Chaves,New Mexico,35005,22,1 +2020-04-28,Chaves,New Mexico,35005,22,1 +2020-04-29,Chaves,New Mexico,35005,22,1 +2020-04-30,Chaves,New Mexico,35005,22,1 +2020-05-01,Chaves,New Mexico,35005,23,1 +2020-05-02,Chaves,New Mexico,35005,23,1 +2020-05-03,Chaves,New Mexico,35005,23,1 +2020-05-04,Chaves,New Mexico,35005,24,1 +2020-05-05,Chaves,New Mexico,35005,25,1 +2020-05-06,Chaves,New Mexico,35005,25,1 +2020-05-07,Chaves,New Mexico,35005,26,1 +2020-05-08,Chaves,New Mexico,35005,27,2 +2020-05-09,Chaves,New Mexico,35005,27,2 +2020-05-10,Chaves,New Mexico,35005,27,2 +2020-05-11,Chaves,New Mexico,35005,27,2 +2020-05-12,Chaves,New Mexico,35005,28,2 +2020-05-13,Chaves,New Mexico,35005,30,2 +2020-05-14,Chaves,New Mexico,35005,30,2 +2020-05-15,Chaves,New Mexico,35005,30,2 +2020-05-16,Chaves,New Mexico,35005,30,2 +2020-05-17,Chaves,New Mexico,35005,30,2 +2020-05-18,Chaves,New Mexico,35005,31,2 +2020-05-19,Chaves,New Mexico,35005,31,2 +2020-05-20,Chaves,New Mexico,35005,32,2 +2020-05-21,Chaves,New Mexico,35005,34,2 +2020-05-22,Chaves,New Mexico,35005,35,2 +2020-05-23,Chaves,New Mexico,35005,36,2 +2020-05-24,Chaves,New Mexico,35005,39,2 +2020-05-25,Chaves,New Mexico,35005,40,2 +2020-05-26,Chaves,New Mexico,35005,42,2 +2020-05-27,Chaves,New Mexico,35005,42,2 +2020-05-28,Chaves,New Mexico,35005,42,2 +2020-05-29,Chaves,New Mexico,35005,44,2 +2020-05-30,Chaves,New Mexico,35005,45,2 +2020-05-31,Chaves,New Mexico,35005,47,2 +2020-06-01,Chaves,New Mexico,35005,50,2 +2020-06-02,Chaves,New Mexico,35005,51,2 +2020-06-03,Chaves,New Mexico,35005,50,2 +2020-06-04,Chaves,New Mexico,35005,51,2 +2020-06-05,Chaves,New Mexico,35005,50,2 +2020-06-06,Chaves,New Mexico,35005,49,2 +2020-06-07,Chaves,New Mexico,35005,49,2 +2020-06-08,Chaves,New Mexico,35005,49,2 +2020-06-09,Chaves,New Mexico,35005,48,2 +2020-06-10,Chaves,New Mexico,35005,50,2 +2020-06-11,Chaves,New Mexico,35005,52,2 +2020-06-12,Chaves,New Mexico,35005,53,2 +2020-06-13,Chaves,New Mexico,35005,56,2 +2020-06-14,Chaves,New Mexico,35005,59,2 +2020-06-15,Chaves,New Mexico,35005,59,2 +2020-06-16,Chaves,New Mexico,35005,59,2 +2020-06-17,Chaves,New Mexico,35005,61,2 +2020-06-18,Chaves,New Mexico,35005,61,2 +2020-06-19,Chaves,New Mexico,35005,64,2 +2020-06-20,Chaves,New Mexico,35005,64,2 +2020-06-21,Chaves,New Mexico,35005,64,2 +2020-06-22,Chaves,New Mexico,35005,66,2 +2020-06-23,Chaves,New Mexico,35005,65,2 +2020-06-24,Chaves,New Mexico,35005,69,2 +2020-06-25,Chaves,New Mexico,35005,71,2 +2020-06-26,Chaves,New Mexico,35005,79,2 +2020-06-27,Chaves,New Mexico,35005,79,2 +2020-06-28,Chaves,New Mexico,35005,83,2 +2020-06-29,Chaves,New Mexico,35005,89,2 +2020-06-30,Chaves,New Mexico,35005,94,2 +2020-07-01,Chaves,New Mexico,35005,95,2 +2020-07-02,Chaves,New Mexico,35005,100,2 +2020-07-03,Chaves,New Mexico,35005,105,2 +2020-07-04,Chaves,New Mexico,35005,112,2 +2020-07-05,Chaves,New Mexico,35005,120,2 +2020-07-06,Chaves,New Mexico,35005,127,2 +2020-07-07,Chaves,New Mexico,35005,133,2 +2020-07-08,Chaves,New Mexico,35005,147,2 +2020-07-09,Chaves,New Mexico,35005,151,2 +2020-03-24,Cibola,New Mexico,35006,1,0 +2020-03-25,Cibola,New Mexico,35006,1,0 +2020-03-26,Cibola,New Mexico,35006,1,0 +2020-03-27,Cibola,New Mexico,35006,2,0 +2020-03-28,Cibola,New Mexico,35006,2,0 +2020-03-29,Cibola,New Mexico,35006,2,0 +2020-03-30,Cibola,New Mexico,35006,2,0 +2020-03-31,Cibola,New Mexico,35006,2,0 +2020-04-01,Cibola,New Mexico,35006,4,0 +2020-04-02,Cibola,New Mexico,35006,5,0 +2020-04-03,Cibola,New Mexico,35006,8,0 +2020-04-04,Cibola,New Mexico,35006,12,0 +2020-04-05,Cibola,New Mexico,35006,14,0 +2020-04-06,Cibola,New Mexico,35006,14,0 +2020-04-07,Cibola,New Mexico,35006,15,0 +2020-04-08,Cibola,New Mexico,35006,16,0 +2020-04-09,Cibola,New Mexico,35006,21,0 +2020-04-10,Cibola,New Mexico,35006,24,0 +2020-04-11,Cibola,New Mexico,35006,25,0 +2020-04-12,Cibola,New Mexico,35006,25,1 +2020-04-13,Cibola,New Mexico,35006,25,1 +2020-04-14,Cibola,New Mexico,35006,28,1 +2020-04-15,Cibola,New Mexico,35006,29,1 +2020-04-16,Cibola,New Mexico,35006,30,2 +2020-04-17,Cibola,New Mexico,35006,32,2 +2020-04-18,Cibola,New Mexico,35006,33,2 +2020-04-19,Cibola,New Mexico,35006,33,2 +2020-04-20,Cibola,New Mexico,35006,33,2 +2020-04-21,Cibola,New Mexico,35006,35,2 +2020-04-22,Cibola,New Mexico,35006,35,2 +2020-04-23,Cibola,New Mexico,35006,38,2 +2020-04-24,Cibola,New Mexico,35006,38,2 +2020-04-25,Cibola,New Mexico,35006,39,2 +2020-04-26,Cibola,New Mexico,35006,41,2 +2020-04-27,Cibola,New Mexico,35006,41,2 +2020-04-28,Cibola,New Mexico,35006,46,2 +2020-04-29,Cibola,New Mexico,35006,47,3 +2020-04-30,Cibola,New Mexico,35006,52,3 +2020-05-01,Cibola,New Mexico,35006,63,3 +2020-05-02,Cibola,New Mexico,35006,63,3 +2020-05-03,Cibola,New Mexico,35006,68,3 +2020-05-04,Cibola,New Mexico,35006,69,3 +2020-05-05,Cibola,New Mexico,35006,74,3 +2020-05-06,Cibola,New Mexico,35006,82,3 +2020-05-07,Cibola,New Mexico,35006,82,3 +2020-05-08,Cibola,New Mexico,35006,85,3 +2020-05-09,Cibola,New Mexico,35006,86,3 +2020-05-10,Cibola,New Mexico,35006,86,3 +2020-05-11,Cibola,New Mexico,35006,86,4 +2020-05-12,Cibola,New Mexico,35006,89,4 +2020-05-13,Cibola,New Mexico,35006,95,4 +2020-05-14,Cibola,New Mexico,35006,102,4 +2020-05-15,Cibola,New Mexico,35006,102,4 +2020-05-16,Cibola,New Mexico,35006,103,4 +2020-05-17,Cibola,New Mexico,35006,104,4 +2020-05-18,Cibola,New Mexico,35006,105,4 +2020-05-19,Cibola,New Mexico,35006,110,4 +2020-05-20,Cibola,New Mexico,35006,113,4 +2020-05-21,Cibola,New Mexico,35006,115,4 +2020-05-22,Cibola,New Mexico,35006,124,4 +2020-05-23,Cibola,New Mexico,35006,124,4 +2020-05-24,Cibola,New Mexico,35006,131,4 +2020-05-25,Cibola,New Mexico,35006,131,4 +2020-05-26,Cibola,New Mexico,35006,132,5 +2020-05-27,Cibola,New Mexico,35006,136,5 +2020-05-28,Cibola,New Mexico,35006,138,5 +2020-05-29,Cibola,New Mexico,35006,141,5 +2020-05-30,Cibola,New Mexico,35006,143,5 +2020-05-31,Cibola,New Mexico,35006,145,5 +2020-06-01,Cibola,New Mexico,35006,145,5 +2020-06-02,Cibola,New Mexico,35006,147,6 +2020-06-03,Cibola,New Mexico,35006,149,6 +2020-06-04,Cibola,New Mexico,35006,150,6 +2020-06-05,Cibola,New Mexico,35006,154,6 +2020-06-06,Cibola,New Mexico,35006,161,6 +2020-06-07,Cibola,New Mexico,35006,168,6 +2020-06-08,Cibola,New Mexico,35006,170,6 +2020-06-09,Cibola,New Mexico,35006,171,7 +2020-06-10,Cibola,New Mexico,35006,172,7 +2020-06-11,Cibola,New Mexico,35006,175,7 +2020-06-12,Cibola,New Mexico,35006,183,8 +2020-06-13,Cibola,New Mexico,35006,186,8 +2020-06-14,Cibola,New Mexico,35006,187,8 +2020-06-15,Cibola,New Mexico,35006,188,8 +2020-06-16,Cibola,New Mexico,35006,189,9 +2020-06-17,Cibola,New Mexico,35006,189,10 +2020-06-18,Cibola,New Mexico,35006,191,10 +2020-06-19,Cibola,New Mexico,35006,197,11 +2020-06-20,Cibola,New Mexico,35006,197,11 +2020-06-21,Cibola,New Mexico,35006,199,11 +2020-06-22,Cibola,New Mexico,35006,200,11 +2020-06-23,Cibola,New Mexico,35006,201,13 +2020-06-24,Cibola,New Mexico,35006,203,13 +2020-06-25,Cibola,New Mexico,35006,207,13 +2020-06-26,Cibola,New Mexico,35006,209,13 +2020-06-27,Cibola,New Mexico,35006,210,14 +2020-06-28,Cibola,New Mexico,35006,214,14 +2020-06-29,Cibola,New Mexico,35006,214,14 +2020-06-30,Cibola,New Mexico,35006,215,14 +2020-07-01,Cibola,New Mexico,35006,215,14 +2020-07-02,Cibola,New Mexico,35006,217,14 +2020-07-03,Cibola,New Mexico,35006,224,14 +2020-07-04,Cibola,New Mexico,35006,234,14 +2020-07-05,Cibola,New Mexico,35006,236,14 +2020-07-06,Cibola,New Mexico,35006,244,14 +2020-07-07,Cibola,New Mexico,35006,245,14 +2020-07-08,Cibola,New Mexico,35006,246,14 +2020-07-09,Cibola,New Mexico,35006,247,14 +2020-04-09,Colfax,New Mexico,35007,1,0 +2020-04-10,Colfax,New Mexico,35007,1,0 +2020-04-11,Colfax,New Mexico,35007,1,0 +2020-04-12,Colfax,New Mexico,35007,1,0 +2020-04-13,Colfax,New Mexico,35007,2,0 +2020-04-14,Colfax,New Mexico,35007,2,0 +2020-04-15,Colfax,New Mexico,35007,2,0 +2020-04-16,Colfax,New Mexico,35007,3,0 +2020-04-17,Colfax,New Mexico,35007,4,0 +2020-04-18,Colfax,New Mexico,35007,4,0 +2020-04-19,Colfax,New Mexico,35007,4,0 +2020-04-20,Colfax,New Mexico,35007,5,0 +2020-04-21,Colfax,New Mexico,35007,5,0 +2020-04-22,Colfax,New Mexico,35007,5,0 +2020-04-23,Colfax,New Mexico,35007,5,0 +2020-04-24,Colfax,New Mexico,35007,5,0 +2020-04-25,Colfax,New Mexico,35007,5,0 +2020-04-26,Colfax,New Mexico,35007,5,0 +2020-04-27,Colfax,New Mexico,35007,5,0 +2020-04-28,Colfax,New Mexico,35007,5,0 +2020-04-29,Colfax,New Mexico,35007,5,0 +2020-04-30,Colfax,New Mexico,35007,5,0 +2020-05-01,Colfax,New Mexico,35007,5,0 +2020-05-02,Colfax,New Mexico,35007,5,0 +2020-05-03,Colfax,New Mexico,35007,5,0 +2020-05-04,Colfax,New Mexico,35007,5,0 +2020-05-05,Colfax,New Mexico,35007,5,0 +2020-05-06,Colfax,New Mexico,35007,5,0 +2020-05-07,Colfax,New Mexico,35007,5,0 +2020-05-08,Colfax,New Mexico,35007,5,0 +2020-05-09,Colfax,New Mexico,35007,5,0 +2020-05-10,Colfax,New Mexico,35007,5,0 +2020-05-11,Colfax,New Mexico,35007,5,0 +2020-05-12,Colfax,New Mexico,35007,5,0 +2020-05-13,Colfax,New Mexico,35007,5,0 +2020-05-14,Colfax,New Mexico,35007,5,0 +2020-05-15,Colfax,New Mexico,35007,5,0 +2020-05-16,Colfax,New Mexico,35007,5,0 +2020-05-17,Colfax,New Mexico,35007,5,0 +2020-05-18,Colfax,New Mexico,35007,5,0 +2020-05-19,Colfax,New Mexico,35007,5,0 +2020-05-20,Colfax,New Mexico,35007,5,0 +2020-05-21,Colfax,New Mexico,35007,5,0 +2020-05-22,Colfax,New Mexico,35007,5,0 +2020-05-23,Colfax,New Mexico,35007,5,0 +2020-05-24,Colfax,New Mexico,35007,5,0 +2020-05-25,Colfax,New Mexico,35007,5,0 +2020-05-26,Colfax,New Mexico,35007,5,0 +2020-05-27,Colfax,New Mexico,35007,5,0 +2020-05-28,Colfax,New Mexico,35007,5,0 +2020-05-29,Colfax,New Mexico,35007,5,0 +2020-05-30,Colfax,New Mexico,35007,5,0 +2020-05-31,Colfax,New Mexico,35007,5,0 +2020-06-01,Colfax,New Mexico,35007,5,0 +2020-06-02,Colfax,New Mexico,35007,5,0 +2020-06-03,Colfax,New Mexico,35007,5,0 +2020-06-04,Colfax,New Mexico,35007,5,0 +2020-06-05,Colfax,New Mexico,35007,5,0 +2020-06-06,Colfax,New Mexico,35007,5,0 +2020-06-07,Colfax,New Mexico,35007,5,0 +2020-06-08,Colfax,New Mexico,35007,5,0 +2020-06-09,Colfax,New Mexico,35007,5,0 +2020-06-10,Colfax,New Mexico,35007,6,0 +2020-06-11,Colfax,New Mexico,35007,6,0 +2020-06-12,Colfax,New Mexico,35007,5,0 +2020-06-13,Colfax,New Mexico,35007,7,0 +2020-06-14,Colfax,New Mexico,35007,7,0 +2020-06-15,Colfax,New Mexico,35007,8,0 +2020-06-16,Colfax,New Mexico,35007,8,0 +2020-06-17,Colfax,New Mexico,35007,8,0 +2020-06-18,Colfax,New Mexico,35007,8,0 +2020-06-19,Colfax,New Mexico,35007,8,0 +2020-06-20,Colfax,New Mexico,35007,9,0 +2020-06-21,Colfax,New Mexico,35007,9,0 +2020-06-22,Colfax,New Mexico,35007,9,0 +2020-06-23,Colfax,New Mexico,35007,9,0 +2020-06-24,Colfax,New Mexico,35007,9,1 +2020-06-25,Colfax,New Mexico,35007,9,1 +2020-06-26,Colfax,New Mexico,35007,9,1 +2020-06-27,Colfax,New Mexico,35007,9,1 +2020-06-28,Colfax,New Mexico,35007,9,1 +2020-06-29,Colfax,New Mexico,35007,9,1 +2020-06-30,Colfax,New Mexico,35007,9,1 +2020-07-01,Colfax,New Mexico,35007,9,1 +2020-07-02,Colfax,New Mexico,35007,10,1 +2020-07-03,Colfax,New Mexico,35007,10,1 +2020-07-04,Colfax,New Mexico,35007,10,1 +2020-07-05,Colfax,New Mexico,35007,9,1 +2020-07-06,Colfax,New Mexico,35007,9,1 +2020-07-07,Colfax,New Mexico,35007,9,1 +2020-07-08,Colfax,New Mexico,35007,9,1 +2020-07-09,Colfax,New Mexico,35007,9,1 +2020-03-24,Curry,New Mexico,35009,1,0 +2020-03-25,Curry,New Mexico,35009,1,0 +2020-03-26,Curry,New Mexico,35009,1,0 +2020-03-27,Curry,New Mexico,35009,1,0 +2020-03-28,Curry,New Mexico,35009,1,0 +2020-03-29,Curry,New Mexico,35009,3,0 +2020-03-30,Curry,New Mexico,35009,3,0 +2020-03-31,Curry,New Mexico,35009,3,0 +2020-04-01,Curry,New Mexico,35009,5,0 +2020-04-02,Curry,New Mexico,35009,6,0 +2020-04-03,Curry,New Mexico,35009,6,0 +2020-04-04,Curry,New Mexico,35009,6,0 +2020-04-05,Curry,New Mexico,35009,6,0 +2020-04-06,Curry,New Mexico,35009,6,0 +2020-04-07,Curry,New Mexico,35009,8,0 +2020-04-08,Curry,New Mexico,35009,8,0 +2020-04-09,Curry,New Mexico,35009,9,0 +2020-04-10,Curry,New Mexico,35009,9,0 +2020-04-11,Curry,New Mexico,35009,9,0 +2020-04-12,Curry,New Mexico,35009,10,0 +2020-04-13,Curry,New Mexico,35009,10,0 +2020-04-14,Curry,New Mexico,35009,10,0 +2020-04-15,Curry,New Mexico,35009,10,0 +2020-04-16,Curry,New Mexico,35009,10,0 +2020-04-17,Curry,New Mexico,35009,10,0 +2020-04-18,Curry,New Mexico,35009,10,0 +2020-04-19,Curry,New Mexico,35009,10,0 +2020-04-20,Curry,New Mexico,35009,10,0 +2020-04-21,Curry,New Mexico,35009,10,0 +2020-04-22,Curry,New Mexico,35009,10,0 +2020-04-23,Curry,New Mexico,35009,10,0 +2020-04-24,Curry,New Mexico,35009,10,0 +2020-04-25,Curry,New Mexico,35009,11,0 +2020-04-26,Curry,New Mexico,35009,13,0 +2020-04-27,Curry,New Mexico,35009,12,0 +2020-04-28,Curry,New Mexico,35009,13,0 +2020-04-29,Curry,New Mexico,35009,13,0 +2020-04-30,Curry,New Mexico,35009,17,0 +2020-05-01,Curry,New Mexico,35009,17,0 +2020-05-02,Curry,New Mexico,35009,18,0 +2020-05-03,Curry,New Mexico,35009,18,0 +2020-05-04,Curry,New Mexico,35009,19,0 +2020-05-05,Curry,New Mexico,35009,20,0 +2020-05-06,Curry,New Mexico,35009,23,0 +2020-05-07,Curry,New Mexico,35009,26,0 +2020-05-08,Curry,New Mexico,35009,28,0 +2020-05-09,Curry,New Mexico,35009,29,0 +2020-05-10,Curry,New Mexico,35009,29,0 +2020-05-11,Curry,New Mexico,35009,31,0 +2020-05-12,Curry,New Mexico,35009,32,0 +2020-05-13,Curry,New Mexico,35009,34,0 +2020-05-14,Curry,New Mexico,35009,34,0 +2020-05-15,Curry,New Mexico,35009,36,0 +2020-05-16,Curry,New Mexico,35009,40,0 +2020-05-17,Curry,New Mexico,35009,41,0 +2020-05-18,Curry,New Mexico,35009,41,0 +2020-05-19,Curry,New Mexico,35009,43,0 +2020-05-20,Curry,New Mexico,35009,44,0 +2020-05-21,Curry,New Mexico,35009,44,0 +2020-05-22,Curry,New Mexico,35009,45,0 +2020-05-23,Curry,New Mexico,35009,46,0 +2020-05-24,Curry,New Mexico,35009,46,0 +2020-05-25,Curry,New Mexico,35009,46,0 +2020-05-26,Curry,New Mexico,35009,49,0 +2020-05-27,Curry,New Mexico,35009,50,0 +2020-05-28,Curry,New Mexico,35009,51,0 +2020-05-29,Curry,New Mexico,35009,52,0 +2020-05-30,Curry,New Mexico,35009,51,0 +2020-05-31,Curry,New Mexico,35009,52,0 +2020-06-01,Curry,New Mexico,35009,53,0 +2020-06-02,Curry,New Mexico,35009,55,0 +2020-06-03,Curry,New Mexico,35009,56,0 +2020-06-04,Curry,New Mexico,35009,57,0 +2020-06-05,Curry,New Mexico,35009,62,0 +2020-06-06,Curry,New Mexico,35009,62,0 +2020-06-07,Curry,New Mexico,35009,62,0 +2020-06-08,Curry,New Mexico,35009,64,0 +2020-06-09,Curry,New Mexico,35009,64,0 +2020-06-10,Curry,New Mexico,35009,68,0 +2020-06-11,Curry,New Mexico,35009,68,0 +2020-06-12,Curry,New Mexico,35009,71,0 +2020-06-13,Curry,New Mexico,35009,77,0 +2020-06-14,Curry,New Mexico,35009,81,0 +2020-06-15,Curry,New Mexico,35009,83,0 +2020-06-16,Curry,New Mexico,35009,89,0 +2020-06-17,Curry,New Mexico,35009,92,0 +2020-06-18,Curry,New Mexico,35009,97,0 +2020-06-19,Curry,New Mexico,35009,101,0 +2020-06-20,Curry,New Mexico,35009,108,0 +2020-06-21,Curry,New Mexico,35009,110,0 +2020-06-22,Curry,New Mexico,35009,111,0 +2020-06-23,Curry,New Mexico,35009,115,0 +2020-06-24,Curry,New Mexico,35009,123,0 +2020-06-25,Curry,New Mexico,35009,125,0 +2020-06-26,Curry,New Mexico,35009,132,0 +2020-06-27,Curry,New Mexico,35009,136,0 +2020-06-28,Curry,New Mexico,35009,142,0 +2020-06-29,Curry,New Mexico,35009,153,0 +2020-06-30,Curry,New Mexico,35009,163,0 +2020-07-01,Curry,New Mexico,35009,165,0 +2020-07-02,Curry,New Mexico,35009,182,0 +2020-07-03,Curry,New Mexico,35009,186,0 +2020-07-04,Curry,New Mexico,35009,190,0 +2020-07-05,Curry,New Mexico,35009,193,0 +2020-07-06,Curry,New Mexico,35009,199,0 +2020-07-07,Curry,New Mexico,35009,201,0 +2020-07-08,Curry,New Mexico,35009,207,0 +2020-07-09,Curry,New Mexico,35009,227,1 +2020-03-20,Doña Ana,New Mexico,35013,1,0 +2020-03-21,Doña Ana,New Mexico,35013,2,0 +2020-03-22,Doña Ana,New Mexico,35013,4,0 +2020-03-23,Doña Ana,New Mexico,35013,10,0 +2020-03-24,Doña Ana,New Mexico,35013,13,0 +2020-03-25,Doña Ana,New Mexico,35013,13,0 +2020-03-26,Doña Ana,New Mexico,35013,16,0 +2020-03-27,Doña Ana,New Mexico,35013,16,0 +2020-03-28,Doña Ana,New Mexico,35013,17,0 +2020-03-29,Doña Ana,New Mexico,35013,17,0 +2020-03-30,Doña Ana,New Mexico,35013,18,0 +2020-03-31,Doña Ana,New Mexico,35013,18,0 +2020-04-01,Doña Ana,New Mexico,35013,21,0 +2020-04-02,Doña Ana,New Mexico,35013,21,0 +2020-04-03,Doña Ana,New Mexico,35013,22,0 +2020-04-04,Doña Ana,New Mexico,35013,23,0 +2020-04-05,Doña Ana,New Mexico,35013,29,0 +2020-04-06,Doña Ana,New Mexico,35013,30,0 +2020-04-07,Doña Ana,New Mexico,35013,35,0 +2020-04-08,Doña Ana,New Mexico,35013,39,0 +2020-04-09,Doña Ana,New Mexico,35013,44,0 +2020-04-10,Doña Ana,New Mexico,35013,44,0 +2020-04-11,Doña Ana,New Mexico,35013,49,0 +2020-04-12,Doña Ana,New Mexico,35013,49,1 +2020-04-13,Doña Ana,New Mexico,35013,50,1 +2020-04-14,Doña Ana,New Mexico,35013,50,1 +2020-04-15,Doña Ana,New Mexico,35013,54,1 +2020-04-16,Doña Ana,New Mexico,35013,58,1 +2020-04-17,Doña Ana,New Mexico,35013,65,1 +2020-04-18,Doña Ana,New Mexico,35013,67,1 +2020-04-19,Doña Ana,New Mexico,35013,69,1 +2020-04-20,Doña Ana,New Mexico,35013,73,1 +2020-04-21,Doña Ana,New Mexico,35013,76,1 +2020-04-22,Doña Ana,New Mexico,35013,82,1 +2020-04-23,Doña Ana,New Mexico,35013,88,1 +2020-04-24,Doña Ana,New Mexico,35013,94,1 +2020-04-25,Doña Ana,New Mexico,35013,110,1 +2020-04-26,Doña Ana,New Mexico,35013,116,1 +2020-04-27,Doña Ana,New Mexico,35013,126,1 +2020-04-28,Doña Ana,New Mexico,35013,129,1 +2020-04-29,Doña Ana,New Mexico,35013,130,1 +2020-04-30,Doña Ana,New Mexico,35013,144,1 +2020-05-01,Doña Ana,New Mexico,35013,147,1 +2020-05-02,Doña Ana,New Mexico,35013,153,2 +2020-05-03,Doña Ana,New Mexico,35013,159,2 +2020-05-04,Doña Ana,New Mexico,35013,170,2 +2020-05-05,Doña Ana,New Mexico,35013,173,2 +2020-05-06,Doña Ana,New Mexico,35013,180,2 +2020-05-07,Doña Ana,New Mexico,35013,197,2 +2020-05-08,Doña Ana,New Mexico,35013,206,2 +2020-05-09,Doña Ana,New Mexico,35013,212,2 +2020-05-10,Doña Ana,New Mexico,35013,232,2 +2020-05-11,Doña Ana,New Mexico,35013,256,2 +2020-05-12,Doña Ana,New Mexico,35013,256,2 +2020-05-13,Doña Ana,New Mexico,35013,260,2 +2020-05-14,Doña Ana,New Mexico,35013,270,2 +2020-05-15,Doña Ana,New Mexico,35013,281,2 +2020-05-16,Doña Ana,New Mexico,35013,293,2 +2020-05-17,Doña Ana,New Mexico,35013,305,2 +2020-05-18,Doña Ana,New Mexico,35013,320,2 +2020-05-19,Doña Ana,New Mexico,35013,330,2 +2020-05-20,Doña Ana,New Mexico,35013,333,2 +2020-05-21,Doña Ana,New Mexico,35013,373,2 +2020-05-22,Doña Ana,New Mexico,35013,381,2 +2020-05-23,Doña Ana,New Mexico,35013,402,2 +2020-05-24,Doña Ana,New Mexico,35013,418,2 +2020-05-25,Doña Ana,New Mexico,35013,434,2 +2020-05-26,Doña Ana,New Mexico,35013,439,2 +2020-05-27,Doña Ana,New Mexico,35013,450,2 +2020-05-28,Doña Ana,New Mexico,35013,453,2 +2020-05-29,Doña Ana,New Mexico,35013,460,3 +2020-05-30,Doña Ana,New Mexico,35013,471,3 +2020-05-31,Doña Ana,New Mexico,35013,477,3 +2020-06-01,Doña Ana,New Mexico,35013,487,3 +2020-06-02,Doña Ana,New Mexico,35013,490,3 +2020-06-03,Doña Ana,New Mexico,35013,499,3 +2020-06-04,Doña Ana,New Mexico,35013,520,3 +2020-06-05,Doña Ana,New Mexico,35013,546,3 +2020-06-06,Doña Ana,New Mexico,35013,569,3 +2020-06-07,Doña Ana,New Mexico,35013,581,3 +2020-06-08,Doña Ana,New Mexico,35013,598,3 +2020-06-09,Doña Ana,New Mexico,35013,600,3 +2020-06-10,Doña Ana,New Mexico,35013,626,3 +2020-06-11,Doña Ana,New Mexico,35013,643,5 +2020-06-12,Doña Ana,New Mexico,35013,648,6 +2020-06-13,Doña Ana,New Mexico,35013,656,6 +2020-06-14,Doña Ana,New Mexico,35013,669,6 +2020-06-15,Doña Ana,New Mexico,35013,668,6 +2020-06-16,Doña Ana,New Mexico,35013,670,6 +2020-06-17,Doña Ana,New Mexico,35013,687,6 +2020-06-18,Doña Ana,New Mexico,35013,696,6 +2020-06-19,Doña Ana,New Mexico,35013,703,6 +2020-06-20,Doña Ana,New Mexico,35013,711,6 +2020-06-21,Doña Ana,New Mexico,35013,729,6 +2020-06-22,Doña Ana,New Mexico,35013,745,6 +2020-06-23,Doña Ana,New Mexico,35013,751,8 +2020-06-24,Doña Ana,New Mexico,35013,771,8 +2020-06-25,Doña Ana,New Mexico,35013,817,8 +2020-06-26,Doña Ana,New Mexico,35013,853,8 +2020-06-27,Doña Ana,New Mexico,35013,879,8 +2020-06-28,Doña Ana,New Mexico,35013,906,9 +2020-06-29,Doña Ana,New Mexico,35013,940,9 +2020-06-30,Doña Ana,New Mexico,35013,960,9 +2020-07-01,Doña Ana,New Mexico,35013,968,9 +2020-07-02,Doña Ana,New Mexico,35013,1010,9 +2020-07-03,Doña Ana,New Mexico,35013,1050,10 +2020-07-04,Doña Ana,New Mexico,35013,1105,10 +2020-07-05,Doña Ana,New Mexico,35013,1139,10 +2020-07-06,Doña Ana,New Mexico,35013,1222,10 +2020-07-07,Doña Ana,New Mexico,35013,1244,10 +2020-07-08,Doña Ana,New Mexico,35013,1296,11 +2020-07-09,Doña Ana,New Mexico,35013,1317,11 +2020-03-25,Eddy,New Mexico,35015,1,1 +2020-03-26,Eddy,New Mexico,35015,1,1 +2020-03-27,Eddy,New Mexico,35015,2,1 +2020-03-28,Eddy,New Mexico,35015,3,1 +2020-03-29,Eddy,New Mexico,35015,4,1 +2020-03-30,Eddy,New Mexico,35015,4,1 +2020-03-31,Eddy,New Mexico,35015,4,1 +2020-04-01,Eddy,New Mexico,35015,4,1 +2020-04-02,Eddy,New Mexico,35015,4,1 +2020-04-03,Eddy,New Mexico,35015,4,1 +2020-04-04,Eddy,New Mexico,35015,4,1 +2020-04-05,Eddy,New Mexico,35015,4,1 +2020-04-06,Eddy,New Mexico,35015,4,1 +2020-04-07,Eddy,New Mexico,35015,4,1 +2020-04-08,Eddy,New Mexico,35015,6,1 +2020-04-09,Eddy,New Mexico,35015,6,1 +2020-04-10,Eddy,New Mexico,35015,6,1 +2020-04-11,Eddy,New Mexico,35015,6,1 +2020-04-12,Eddy,New Mexico,35015,7,1 +2020-04-13,Eddy,New Mexico,35015,7,1 +2020-04-14,Eddy,New Mexico,35015,7,1 +2020-04-15,Eddy,New Mexico,35015,7,1 +2020-04-16,Eddy,New Mexico,35015,7,1 +2020-04-17,Eddy,New Mexico,35015,9,1 +2020-04-18,Eddy,New Mexico,35015,9,1 +2020-04-19,Eddy,New Mexico,35015,9,1 +2020-04-20,Eddy,New Mexico,35015,10,1 +2020-04-21,Eddy,New Mexico,35015,10,1 +2020-04-22,Eddy,New Mexico,35015,11,1 +2020-04-23,Eddy,New Mexico,35015,11,1 +2020-04-24,Eddy,New Mexico,35015,11,1 +2020-04-25,Eddy,New Mexico,35015,11,1 +2020-04-26,Eddy,New Mexico,35015,13,1 +2020-04-27,Eddy,New Mexico,35015,12,1 +2020-04-28,Eddy,New Mexico,35015,12,1 +2020-04-29,Eddy,New Mexico,35015,12,1 +2020-04-30,Eddy,New Mexico,35015,12,1 +2020-05-01,Eddy,New Mexico,35015,12,1 +2020-05-02,Eddy,New Mexico,35015,13,1 +2020-05-03,Eddy,New Mexico,35015,13,1 +2020-05-04,Eddy,New Mexico,35015,13,1 +2020-05-05,Eddy,New Mexico,35015,13,1 +2020-05-06,Eddy,New Mexico,35015,13,1 +2020-05-07,Eddy,New Mexico,35015,13,1 +2020-05-08,Eddy,New Mexico,35015,14,1 +2020-05-09,Eddy,New Mexico,35015,14,1 +2020-05-10,Eddy,New Mexico,35015,14,1 +2020-05-11,Eddy,New Mexico,35015,14,1 +2020-05-12,Eddy,New Mexico,35015,14,1 +2020-05-13,Eddy,New Mexico,35015,14,1 +2020-05-14,Eddy,New Mexico,35015,17,1 +2020-05-15,Eddy,New Mexico,35015,17,1 +2020-05-16,Eddy,New Mexico,35015,17,1 +2020-05-17,Eddy,New Mexico,35015,17,1 +2020-05-18,Eddy,New Mexico,35015,17,1 +2020-05-19,Eddy,New Mexico,35015,17,1 +2020-05-20,Eddy,New Mexico,35015,17,1 +2020-05-21,Eddy,New Mexico,35015,17,1 +2020-05-22,Eddy,New Mexico,35015,17,1 +2020-05-23,Eddy,New Mexico,35015,17,1 +2020-05-24,Eddy,New Mexico,35015,18,1 +2020-05-25,Eddy,New Mexico,35015,19,1 +2020-05-26,Eddy,New Mexico,35015,19,1 +2020-05-27,Eddy,New Mexico,35015,19,1 +2020-05-28,Eddy,New Mexico,35015,21,1 +2020-05-29,Eddy,New Mexico,35015,20,1 +2020-05-30,Eddy,New Mexico,35015,20,1 +2020-05-31,Eddy,New Mexico,35015,22,1 +2020-06-01,Eddy,New Mexico,35015,24,1 +2020-06-02,Eddy,New Mexico,35015,23,1 +2020-06-03,Eddy,New Mexico,35015,23,1 +2020-06-04,Eddy,New Mexico,35015,26,1 +2020-06-05,Eddy,New Mexico,35015,28,1 +2020-06-06,Eddy,New Mexico,35015,30,1 +2020-06-07,Eddy,New Mexico,35015,35,1 +2020-06-08,Eddy,New Mexico,35015,38,1 +2020-06-09,Eddy,New Mexico,35015,38,1 +2020-06-10,Eddy,New Mexico,35015,42,1 +2020-06-11,Eddy,New Mexico,35015,45,1 +2020-06-12,Eddy,New Mexico,35015,46,1 +2020-06-13,Eddy,New Mexico,35015,46,1 +2020-06-14,Eddy,New Mexico,35015,47,1 +2020-06-15,Eddy,New Mexico,35015,47,1 +2020-06-16,Eddy,New Mexico,35015,48,1 +2020-06-17,Eddy,New Mexico,35015,48,1 +2020-06-18,Eddy,New Mexico,35015,49,1 +2020-06-19,Eddy,New Mexico,35015,49,1 +2020-06-20,Eddy,New Mexico,35015,51,1 +2020-06-21,Eddy,New Mexico,35015,53,1 +2020-06-22,Eddy,New Mexico,35015,56,1 +2020-06-23,Eddy,New Mexico,35015,58,1 +2020-06-24,Eddy,New Mexico,35015,61,1 +2020-06-25,Eddy,New Mexico,35015,63,1 +2020-06-26,Eddy,New Mexico,35015,62,1 +2020-06-27,Eddy,New Mexico,35015,66,1 +2020-06-28,Eddy,New Mexico,35015,69,1 +2020-06-29,Eddy,New Mexico,35015,78,1 +2020-06-30,Eddy,New Mexico,35015,80,1 +2020-07-01,Eddy,New Mexico,35015,82,1 +2020-07-02,Eddy,New Mexico,35015,84,1 +2020-07-03,Eddy,New Mexico,35015,92,1 +2020-07-04,Eddy,New Mexico,35015,102,1 +2020-07-05,Eddy,New Mexico,35015,103,1 +2020-07-06,Eddy,New Mexico,35015,104,1 +2020-07-07,Eddy,New Mexico,35015,107,1 +2020-07-08,Eddy,New Mexico,35015,116,1 +2020-07-09,Eddy,New Mexico,35015,122,1 +2020-04-01,Grant,New Mexico,35017,1,0 +2020-04-02,Grant,New Mexico,35017,1,0 +2020-04-03,Grant,New Mexico,35017,1,0 +2020-04-04,Grant,New Mexico,35017,1,0 +2020-04-05,Grant,New Mexico,35017,1,0 +2020-04-06,Grant,New Mexico,35017,3,0 +2020-04-07,Grant,New Mexico,35017,4,0 +2020-04-08,Grant,New Mexico,35017,4,0 +2020-04-09,Grant,New Mexico,35017,4,0 +2020-04-10,Grant,New Mexico,35017,7,0 +2020-04-11,Grant,New Mexico,35017,8,0 +2020-04-12,Grant,New Mexico,35017,9,0 +2020-04-13,Grant,New Mexico,35017,10,0 +2020-04-14,Grant,New Mexico,35017,10,0 +2020-04-15,Grant,New Mexico,35017,11,0 +2020-04-16,Grant,New Mexico,35017,12,0 +2020-04-17,Grant,New Mexico,35017,13,0 +2020-04-18,Grant,New Mexico,35017,13,0 +2020-04-19,Grant,New Mexico,35017,13,0 +2020-04-20,Grant,New Mexico,35017,14,0 +2020-04-21,Grant,New Mexico,35017,14,0 +2020-04-22,Grant,New Mexico,35017,14,0 +2020-04-23,Grant,New Mexico,35017,14,0 +2020-04-24,Grant,New Mexico,35017,14,0 +2020-04-25,Grant,New Mexico,35017,14,0 +2020-04-26,Grant,New Mexico,35017,14,0 +2020-04-27,Grant,New Mexico,35017,14,0 +2020-04-28,Grant,New Mexico,35017,14,0 +2020-04-29,Grant,New Mexico,35017,14,0 +2020-04-30,Grant,New Mexico,35017,14,0 +2020-05-01,Grant,New Mexico,35017,14,0 +2020-05-02,Grant,New Mexico,35017,15,0 +2020-05-03,Grant,New Mexico,35017,16,0 +2020-05-04,Grant,New Mexico,35017,15,0 +2020-05-05,Grant,New Mexico,35017,15,0 +2020-05-06,Grant,New Mexico,35017,15,0 +2020-05-07,Grant,New Mexico,35017,15,0 +2020-05-08,Grant,New Mexico,35017,15,0 +2020-05-09,Grant,New Mexico,35017,15,0 +2020-05-10,Grant,New Mexico,35017,15,0 +2020-05-11,Grant,New Mexico,35017,15,0 +2020-05-12,Grant,New Mexico,35017,15,0 +2020-05-13,Grant,New Mexico,35017,15,0 +2020-05-14,Grant,New Mexico,35017,16,0 +2020-05-15,Grant,New Mexico,35017,16,0 +2020-05-16,Grant,New Mexico,35017,16,0 +2020-05-17,Grant,New Mexico,35017,16,0 +2020-05-18,Grant,New Mexico,35017,16,0 +2020-05-19,Grant,New Mexico,35017,16,0 +2020-05-20,Grant,New Mexico,35017,16,0 +2020-05-21,Grant,New Mexico,35017,16,0 +2020-05-22,Grant,New Mexico,35017,16,0 +2020-05-23,Grant,New Mexico,35017,16,0 +2020-05-24,Grant,New Mexico,35017,16,0 +2020-05-25,Grant,New Mexico,35017,16,0 +2020-05-26,Grant,New Mexico,35017,15,0 +2020-05-27,Grant,New Mexico,35017,15,0 +2020-05-28,Grant,New Mexico,35017,15,0 +2020-05-29,Grant,New Mexico,35017,15,0 +2020-05-30,Grant,New Mexico,35017,15,0 +2020-05-31,Grant,New Mexico,35017,15,0 +2020-06-01,Grant,New Mexico,35017,15,0 +2020-06-02,Grant,New Mexico,35017,15,0 +2020-06-03,Grant,New Mexico,35017,15,0 +2020-06-04,Grant,New Mexico,35017,15,0 +2020-06-05,Grant,New Mexico,35017,15,0 +2020-06-06,Grant,New Mexico,35017,15,0 +2020-06-07,Grant,New Mexico,35017,15,0 +2020-06-08,Grant,New Mexico,35017,15,0 +2020-06-09,Grant,New Mexico,35017,15,0 +2020-06-10,Grant,New Mexico,35017,15,0 +2020-06-11,Grant,New Mexico,35017,16,0 +2020-06-12,Grant,New Mexico,35017,17,0 +2020-06-13,Grant,New Mexico,35017,16,0 +2020-06-14,Grant,New Mexico,35017,16,0 +2020-06-15,Grant,New Mexico,35017,16,0 +2020-06-16,Grant,New Mexico,35017,16,0 +2020-06-17,Grant,New Mexico,35017,16,0 +2020-06-18,Grant,New Mexico,35017,16,0 +2020-06-19,Grant,New Mexico,35017,16,0 +2020-06-20,Grant,New Mexico,35017,16,0 +2020-06-21,Grant,New Mexico,35017,17,0 +2020-06-22,Grant,New Mexico,35017,17,0 +2020-06-23,Grant,New Mexico,35017,17,0 +2020-06-24,Grant,New Mexico,35017,17,0 +2020-06-25,Grant,New Mexico,35017,17,0 +2020-06-26,Grant,New Mexico,35017,17,0 +2020-06-27,Grant,New Mexico,35017,18,0 +2020-06-28,Grant,New Mexico,35017,18,0 +2020-06-29,Grant,New Mexico,35017,18,0 +2020-06-30,Grant,New Mexico,35017,18,0 +2020-07-01,Grant,New Mexico,35017,19,0 +2020-07-02,Grant,New Mexico,35017,20,0 +2020-07-03,Grant,New Mexico,35017,21,0 +2020-07-04,Grant,New Mexico,35017,22,0 +2020-07-05,Grant,New Mexico,35017,24,0 +2020-07-06,Grant,New Mexico,35017,24,0 +2020-07-07,Grant,New Mexico,35017,24,0 +2020-07-08,Grant,New Mexico,35017,27,0 +2020-07-09,Grant,New Mexico,35017,29,0 +2020-04-18,Guadalupe,New Mexico,35019,1,0 +2020-04-19,Guadalupe,New Mexico,35019,1,0 +2020-04-20,Guadalupe,New Mexico,35019,1,0 +2020-04-21,Guadalupe,New Mexico,35019,1,0 +2020-04-22,Guadalupe,New Mexico,35019,2,0 +2020-04-23,Guadalupe,New Mexico,35019,3,0 +2020-04-24,Guadalupe,New Mexico,35019,7,0 +2020-04-25,Guadalupe,New Mexico,35019,12,0 +2020-04-26,Guadalupe,New Mexico,35019,13,0 +2020-04-27,Guadalupe,New Mexico,35019,13,0 +2020-04-28,Guadalupe,New Mexico,35019,13,0 +2020-04-29,Guadalupe,New Mexico,35019,14,0 +2020-04-30,Guadalupe,New Mexico,35019,14,0 +2020-05-01,Guadalupe,New Mexico,35019,14,0 +2020-05-02,Guadalupe,New Mexico,35019,14,0 +2020-05-03,Guadalupe,New Mexico,35019,15,0 +2020-05-04,Guadalupe,New Mexico,35019,15,0 +2020-05-05,Guadalupe,New Mexico,35019,15,0 +2020-05-06,Guadalupe,New Mexico,35019,15,0 +2020-05-07,Guadalupe,New Mexico,35019,15,0 +2020-05-08,Guadalupe,New Mexico,35019,15,0 +2020-05-09,Guadalupe,New Mexico,35019,15,0 +2020-05-10,Guadalupe,New Mexico,35019,15,0 +2020-05-11,Guadalupe,New Mexico,35019,15,0 +2020-05-12,Guadalupe,New Mexico,35019,17,0 +2020-05-13,Guadalupe,New Mexico,35019,17,0 +2020-05-14,Guadalupe,New Mexico,35019,17,0 +2020-05-15,Guadalupe,New Mexico,35019,19,0 +2020-05-16,Guadalupe,New Mexico,35019,19,0 +2020-05-17,Guadalupe,New Mexico,35019,19,0 +2020-05-18,Guadalupe,New Mexico,35019,19,0 +2020-05-19,Guadalupe,New Mexico,35019,19,0 +2020-05-20,Guadalupe,New Mexico,35019,19,0 +2020-05-21,Guadalupe,New Mexico,35019,19,0 +2020-05-22,Guadalupe,New Mexico,35019,19,0 +2020-05-23,Guadalupe,New Mexico,35019,19,0 +2020-05-24,Guadalupe,New Mexico,35019,19,0 +2020-05-25,Guadalupe,New Mexico,35019,19,0 +2020-05-26,Guadalupe,New Mexico,35019,20,0 +2020-05-27,Guadalupe,New Mexico,35019,20,0 +2020-05-28,Guadalupe,New Mexico,35019,20,0 +2020-05-29,Guadalupe,New Mexico,35019,20,0 +2020-05-30,Guadalupe,New Mexico,35019,20,0 +2020-05-31,Guadalupe,New Mexico,35019,20,0 +2020-06-01,Guadalupe,New Mexico,35019,20,0 +2020-06-02,Guadalupe,New Mexico,35019,20,0 +2020-06-03,Guadalupe,New Mexico,35019,20,0 +2020-06-04,Guadalupe,New Mexico,35019,20,0 +2020-06-05,Guadalupe,New Mexico,35019,20,0 +2020-06-06,Guadalupe,New Mexico,35019,20,0 +2020-06-07,Guadalupe,New Mexico,35019,20,0 +2020-06-08,Guadalupe,New Mexico,35019,20,0 +2020-06-09,Guadalupe,New Mexico,35019,20,0 +2020-06-10,Guadalupe,New Mexico,35019,20,0 +2020-06-11,Guadalupe,New Mexico,35019,20,0 +2020-06-12,Guadalupe,New Mexico,35019,20,0 +2020-06-13,Guadalupe,New Mexico,35019,20,0 +2020-06-14,Guadalupe,New Mexico,35019,20,0 +2020-06-15,Guadalupe,New Mexico,35019,20,0 +2020-06-16,Guadalupe,New Mexico,35019,20,0 +2020-06-17,Guadalupe,New Mexico,35019,20,0 +2020-06-18,Guadalupe,New Mexico,35019,20,0 +2020-06-19,Guadalupe,New Mexico,35019,20,0 +2020-06-20,Guadalupe,New Mexico,35019,20,0 +2020-06-21,Guadalupe,New Mexico,35019,20,0 +2020-06-22,Guadalupe,New Mexico,35019,20,0 +2020-06-23,Guadalupe,New Mexico,35019,20,0 +2020-06-24,Guadalupe,New Mexico,35019,20,0 +2020-06-25,Guadalupe,New Mexico,35019,20,0 +2020-06-26,Guadalupe,New Mexico,35019,20,0 +2020-06-27,Guadalupe,New Mexico,35019,20,0 +2020-06-28,Guadalupe,New Mexico,35019,20,0 +2020-06-29,Guadalupe,New Mexico,35019,20,0 +2020-06-30,Guadalupe,New Mexico,35019,20,0 +2020-07-01,Guadalupe,New Mexico,35019,20,0 +2020-07-02,Guadalupe,New Mexico,35019,20,0 +2020-07-03,Guadalupe,New Mexico,35019,20,0 +2020-07-04,Guadalupe,New Mexico,35019,20,0 +2020-07-05,Guadalupe,New Mexico,35019,20,0 +2020-07-06,Guadalupe,New Mexico,35019,20,0 +2020-07-07,Guadalupe,New Mexico,35019,20,0 +2020-07-08,Guadalupe,New Mexico,35019,20,0 +2020-07-09,Guadalupe,New Mexico,35019,20,0 +2020-04-23,Harding,New Mexico,35021,1,0 +2020-04-24,Harding,New Mexico,35021,1,0 +2020-04-25,Harding,New Mexico,35021,1,0 +2020-04-26,Harding,New Mexico,35021,1,0 +2020-04-27,Harding,New Mexico,35021,1,0 +2020-04-28,Harding,New Mexico,35021,1,0 +2020-04-29,Harding,New Mexico,35021,1,0 +2020-04-30,Harding,New Mexico,35021,1,0 +2020-05-01,Harding,New Mexico,35021,1,0 +2020-05-02,Harding,New Mexico,35021,1,0 +2020-05-03,Harding,New Mexico,35021,1,0 +2020-05-04,Harding,New Mexico,35021,1,0 +2020-05-05,Harding,New Mexico,35021,1,0 +2020-05-06,Harding,New Mexico,35021,1,0 +2020-05-07,Harding,New Mexico,35021,1,0 +2020-05-08,Harding,New Mexico,35021,1,0 +2020-05-09,Harding,New Mexico,35021,1,0 +2020-05-10,Harding,New Mexico,35021,1,0 +2020-05-11,Harding,New Mexico,35021,1,0 +2020-05-12,Harding,New Mexico,35021,1,0 +2020-05-13,Harding,New Mexico,35021,1,0 +2020-05-14,Harding,New Mexico,35021,1,0 +2020-05-15,Harding,New Mexico,35021,1,0 +2020-05-16,Harding,New Mexico,35021,1,0 +2020-05-17,Harding,New Mexico,35021,1,0 +2020-05-18,Harding,New Mexico,35021,1,0 +2020-05-19,Harding,New Mexico,35021,1,0 +2020-05-20,Harding,New Mexico,35021,1,0 +2020-05-21,Harding,New Mexico,35021,1,0 +2020-05-22,Harding,New Mexico,35021,1,0 +2020-05-23,Harding,New Mexico,35021,1,0 +2020-05-24,Harding,New Mexico,35021,1,0 +2020-05-25,Harding,New Mexico,35021,1,0 +2020-05-26,Harding,New Mexico,35021,1,0 +2020-05-27,Harding,New Mexico,35021,1,0 +2020-05-28,Harding,New Mexico,35021,1,0 +2020-05-29,Harding,New Mexico,35021,1,0 +2020-05-30,Harding,New Mexico,35021,1,0 +2020-05-31,Harding,New Mexico,35021,1,0 +2020-06-01,Harding,New Mexico,35021,1,0 +2020-06-02,Harding,New Mexico,35021,1,0 +2020-06-03,Harding,New Mexico,35021,1,0 +2020-06-04,Harding,New Mexico,35021,1,0 +2020-06-05,Harding,New Mexico,35021,1,0 +2020-06-06,Harding,New Mexico,35021,1,0 +2020-06-07,Harding,New Mexico,35021,1,0 +2020-06-08,Harding,New Mexico,35021,1,0 +2020-06-09,Harding,New Mexico,35021,1,0 +2020-06-10,Harding,New Mexico,35021,1,0 +2020-06-11,Harding,New Mexico,35021,1,0 +2020-06-12,Harding,New Mexico,35021,1,0 +2020-06-13,Harding,New Mexico,35021,1,0 +2020-06-14,Harding,New Mexico,35021,1,0 +2020-06-15,Harding,New Mexico,35021,1,0 +2020-06-16,Harding,New Mexico,35021,1,0 +2020-06-17,Harding,New Mexico,35021,1,0 +2020-06-18,Harding,New Mexico,35021,1,0 +2020-06-19,Harding,New Mexico,35021,1,0 +2020-06-20,Harding,New Mexico,35021,1,0 +2020-06-21,Harding,New Mexico,35021,1,0 +2020-06-22,Harding,New Mexico,35021,1,0 +2020-06-23,Harding,New Mexico,35021,1,0 +2020-06-24,Harding,New Mexico,35021,1,0 +2020-06-25,Harding,New Mexico,35021,1,0 +2020-06-26,Harding,New Mexico,35021,1,0 +2020-06-27,Harding,New Mexico,35021,1,0 +2020-06-28,Harding,New Mexico,35021,1,0 +2020-06-29,Harding,New Mexico,35021,1,0 +2020-06-30,Harding,New Mexico,35021,1,0 +2020-07-01,Harding,New Mexico,35021,1,0 +2020-07-02,Harding,New Mexico,35021,1,0 +2020-07-03,Harding,New Mexico,35021,1,0 +2020-07-04,Harding,New Mexico,35021,1,0 +2020-07-05,Harding,New Mexico,35021,1,0 +2020-07-06,Harding,New Mexico,35021,1,0 +2020-07-07,Harding,New Mexico,35021,1,0 +2020-07-08,Harding,New Mexico,35021,1,0 +2020-07-09,Harding,New Mexico,35021,1,0 +2020-05-18,Hidalgo,New Mexico,35023,1,0 +2020-05-19,Hidalgo,New Mexico,35023,1,0 +2020-05-20,Hidalgo,New Mexico,35023,1,0 +2020-05-21,Hidalgo,New Mexico,35023,1,0 +2020-05-22,Hidalgo,New Mexico,35023,1,0 +2020-05-23,Hidalgo,New Mexico,35023,1,0 +2020-05-24,Hidalgo,New Mexico,35023,1,0 +2020-05-25,Hidalgo,New Mexico,35023,1,0 +2020-05-26,Hidalgo,New Mexico,35023,1,0 +2020-05-27,Hidalgo,New Mexico,35023,1,0 +2020-05-28,Hidalgo,New Mexico,35023,1,0 +2020-05-29,Hidalgo,New Mexico,35023,1,0 +2020-05-30,Hidalgo,New Mexico,35023,1,0 +2020-05-31,Hidalgo,New Mexico,35023,1,0 +2020-06-01,Hidalgo,New Mexico,35023,1,0 +2020-06-02,Hidalgo,New Mexico,35023,1,0 +2020-06-03,Hidalgo,New Mexico,35023,1,0 +2020-06-04,Hidalgo,New Mexico,35023,1,0 +2020-06-05,Hidalgo,New Mexico,35023,1,0 +2020-06-06,Hidalgo,New Mexico,35023,1,0 +2020-06-07,Hidalgo,New Mexico,35023,1,0 +2020-06-08,Hidalgo,New Mexico,35023,1,0 +2020-06-09,Hidalgo,New Mexico,35023,1,0 +2020-06-10,Hidalgo,New Mexico,35023,1,0 +2020-06-11,Hidalgo,New Mexico,35023,1,0 +2020-06-12,Hidalgo,New Mexico,35023,2,0 +2020-06-13,Hidalgo,New Mexico,35023,3,0 +2020-06-14,Hidalgo,New Mexico,35023,3,0 +2020-06-15,Hidalgo,New Mexico,35023,20,0 +2020-06-16,Hidalgo,New Mexico,35023,23,0 +2020-06-17,Hidalgo,New Mexico,35023,23,0 +2020-06-18,Hidalgo,New Mexico,35023,23,0 +2020-06-19,Hidalgo,New Mexico,35023,26,0 +2020-06-20,Hidalgo,New Mexico,35023,26,0 +2020-06-21,Hidalgo,New Mexico,35023,28,0 +2020-06-22,Hidalgo,New Mexico,35023,39,0 +2020-06-23,Hidalgo,New Mexico,35023,39,0 +2020-06-24,Hidalgo,New Mexico,35023,39,0 +2020-06-25,Hidalgo,New Mexico,35023,40,0 +2020-06-26,Hidalgo,New Mexico,35023,39,0 +2020-06-27,Hidalgo,New Mexico,35023,46,0 +2020-06-28,Hidalgo,New Mexico,35023,46,0 +2020-06-29,Hidalgo,New Mexico,35023,49,0 +2020-06-30,Hidalgo,New Mexico,35023,49,0 +2020-07-01,Hidalgo,New Mexico,35023,49,0 +2020-07-02,Hidalgo,New Mexico,35023,54,0 +2020-07-03,Hidalgo,New Mexico,35023,54,0 +2020-07-04,Hidalgo,New Mexico,35023,58,0 +2020-07-05,Hidalgo,New Mexico,35023,59,0 +2020-07-06,Hidalgo,New Mexico,35023,60,0 +2020-07-07,Hidalgo,New Mexico,35023,61,0 +2020-07-08,Hidalgo,New Mexico,35023,62,0 +2020-07-09,Hidalgo,New Mexico,35023,64,0 +2020-03-21,Lea,New Mexico,35025,1,0 +2020-03-22,Lea,New Mexico,35025,1,0 +2020-03-23,Lea,New Mexico,35025,1,0 +2020-03-24,Lea,New Mexico,35025,1,0 +2020-03-25,Lea,New Mexico,35025,1,0 +2020-03-26,Lea,New Mexico,35025,1,0 +2020-03-27,Lea,New Mexico,35025,2,0 +2020-03-28,Lea,New Mexico,35025,2,0 +2020-03-29,Lea,New Mexico,35025,2,0 +2020-03-30,Lea,New Mexico,35025,2,0 +2020-03-31,Lea,New Mexico,35025,2,0 +2020-04-01,Lea,New Mexico,35025,2,0 +2020-04-02,Lea,New Mexico,35025,2,0 +2020-04-03,Lea,New Mexico,35025,2,0 +2020-04-04,Lea,New Mexico,35025,2,0 +2020-04-05,Lea,New Mexico,35025,2,0 +2020-04-06,Lea,New Mexico,35025,2,0 +2020-04-07,Lea,New Mexico,35025,2,0 +2020-04-08,Lea,New Mexico,35025,2,0 +2020-04-09,Lea,New Mexico,35025,2,0 +2020-04-10,Lea,New Mexico,35025,2,0 +2020-04-11,Lea,New Mexico,35025,2,0 +2020-04-12,Lea,New Mexico,35025,2,0 +2020-04-13,Lea,New Mexico,35025,2,0 +2020-04-14,Lea,New Mexico,35025,2,0 +2020-04-15,Lea,New Mexico,35025,2,0 +2020-04-16,Lea,New Mexico,35025,2,0 +2020-04-17,Lea,New Mexico,35025,2,0 +2020-04-18,Lea,New Mexico,35025,2,0 +2020-04-19,Lea,New Mexico,35025,2,0 +2020-04-20,Lea,New Mexico,35025,2,0 +2020-04-21,Lea,New Mexico,35025,2,0 +2020-04-22,Lea,New Mexico,35025,5,0 +2020-04-23,Lea,New Mexico,35025,8,0 +2020-04-24,Lea,New Mexico,35025,10,0 +2020-04-25,Lea,New Mexico,35025,10,0 +2020-04-26,Lea,New Mexico,35025,10,0 +2020-04-27,Lea,New Mexico,35025,10,0 +2020-04-28,Lea,New Mexico,35025,10,0 +2020-04-29,Lea,New Mexico,35025,10,0 +2020-04-30,Lea,New Mexico,35025,10,0 +2020-05-01,Lea,New Mexico,35025,10,0 +2020-05-02,Lea,New Mexico,35025,12,0 +2020-05-03,Lea,New Mexico,35025,12,0 +2020-05-04,Lea,New Mexico,35025,12,0 +2020-05-05,Lea,New Mexico,35025,12,0 +2020-05-06,Lea,New Mexico,35025,14,0 +2020-05-07,Lea,New Mexico,35025,14,0 +2020-05-08,Lea,New Mexico,35025,14,0 +2020-05-09,Lea,New Mexico,35025,14,0 +2020-05-10,Lea,New Mexico,35025,15,0 +2020-05-11,Lea,New Mexico,35025,15,0 +2020-05-12,Lea,New Mexico,35025,15,0 +2020-05-13,Lea,New Mexico,35025,15,0 +2020-05-14,Lea,New Mexico,35025,15,0 +2020-05-15,Lea,New Mexico,35025,15,0 +2020-05-16,Lea,New Mexico,35025,15,0 +2020-05-17,Lea,New Mexico,35025,16,0 +2020-05-18,Lea,New Mexico,35025,18,0 +2020-05-19,Lea,New Mexico,35025,18,0 +2020-05-20,Lea,New Mexico,35025,18,0 +2020-05-21,Lea,New Mexico,35025,21,0 +2020-05-22,Lea,New Mexico,35025,21,0 +2020-05-23,Lea,New Mexico,35025,23,0 +2020-05-24,Lea,New Mexico,35025,23,0 +2020-05-25,Lea,New Mexico,35025,24,0 +2020-05-26,Lea,New Mexico,35025,24,0 +2020-05-27,Lea,New Mexico,35025,24,0 +2020-05-28,Lea,New Mexico,35025,24,0 +2020-05-29,Lea,New Mexico,35025,26,0 +2020-05-30,Lea,New Mexico,35025,26,0 +2020-05-31,Lea,New Mexico,35025,26,0 +2020-06-01,Lea,New Mexico,35025,26,0 +2020-06-02,Lea,New Mexico,35025,26,0 +2020-06-03,Lea,New Mexico,35025,26,0 +2020-06-04,Lea,New Mexico,35025,26,0 +2020-06-05,Lea,New Mexico,35025,29,0 +2020-06-06,Lea,New Mexico,35025,29,0 +2020-06-07,Lea,New Mexico,35025,29,0 +2020-06-08,Lea,New Mexico,35025,32,0 +2020-06-09,Lea,New Mexico,35025,33,0 +2020-06-10,Lea,New Mexico,35025,34,0 +2020-06-11,Lea,New Mexico,35025,35,0 +2020-06-12,Lea,New Mexico,35025,38,0 +2020-06-13,Lea,New Mexico,35025,41,0 +2020-06-14,Lea,New Mexico,35025,42,0 +2020-06-15,Lea,New Mexico,35025,44,0 +2020-06-16,Lea,New Mexico,35025,49,0 +2020-06-17,Lea,New Mexico,35025,55,0 +2020-06-18,Lea,New Mexico,35025,55,0 +2020-06-19,Lea,New Mexico,35025,58,0 +2020-06-20,Lea,New Mexico,35025,66,0 +2020-06-21,Lea,New Mexico,35025,67,0 +2020-06-22,Lea,New Mexico,35025,75,0 +2020-06-23,Lea,New Mexico,35025,79,0 +2020-06-24,Lea,New Mexico,35025,86,0 +2020-06-25,Lea,New Mexico,35025,89,0 +2020-06-26,Lea,New Mexico,35025,94,0 +2020-06-27,Lea,New Mexico,35025,100,0 +2020-06-28,Lea,New Mexico,35025,106,0 +2020-06-29,Lea,New Mexico,35025,113,0 +2020-06-30,Lea,New Mexico,35025,132,0 +2020-07-01,Lea,New Mexico,35025,134,0 +2020-07-02,Lea,New Mexico,35025,142,0 +2020-07-03,Lea,New Mexico,35025,147,0 +2020-07-04,Lea,New Mexico,35025,172,0 +2020-07-05,Lea,New Mexico,35025,187,0 +2020-07-06,Lea,New Mexico,35025,204,0 +2020-07-07,Lea,New Mexico,35025,211,0 +2020-07-08,Lea,New Mexico,35025,223,0 +2020-07-09,Lea,New Mexico,35025,230,0 +2020-04-04,Lincoln,New Mexico,35027,1,0 +2020-04-05,Lincoln,New Mexico,35027,1,0 +2020-04-06,Lincoln,New Mexico,35027,1,0 +2020-04-07,Lincoln,New Mexico,35027,1,0 +2020-04-08,Lincoln,New Mexico,35027,1,0 +2020-04-09,Lincoln,New Mexico,35027,1,0 +2020-04-10,Lincoln,New Mexico,35027,1,0 +2020-04-11,Lincoln,New Mexico,35027,1,0 +2020-04-12,Lincoln,New Mexico,35027,1,0 +2020-04-13,Lincoln,New Mexico,35027,1,0 +2020-04-14,Lincoln,New Mexico,35027,1,0 +2020-04-15,Lincoln,New Mexico,35027,1,0 +2020-04-16,Lincoln,New Mexico,35027,1,0 +2020-04-17,Lincoln,New Mexico,35027,1,0 +2020-04-18,Lincoln,New Mexico,35027,1,0 +2020-04-19,Lincoln,New Mexico,35027,1,0 +2020-04-20,Lincoln,New Mexico,35027,1,0 +2020-04-21,Lincoln,New Mexico,35027,2,0 +2020-04-22,Lincoln,New Mexico,35027,2,0 +2020-04-23,Lincoln,New Mexico,35027,2,0 +2020-04-24,Lincoln,New Mexico,35027,2,0 +2020-04-25,Lincoln,New Mexico,35027,2,0 +2020-04-26,Lincoln,New Mexico,35027,2,0 +2020-04-27,Lincoln,New Mexico,35027,2,0 +2020-04-28,Lincoln,New Mexico,35027,2,0 +2020-04-29,Lincoln,New Mexico,35027,2,0 +2020-04-30,Lincoln,New Mexico,35027,2,0 +2020-05-01,Lincoln,New Mexico,35027,2,0 +2020-05-02,Lincoln,New Mexico,35027,2,0 +2020-05-03,Lincoln,New Mexico,35027,2,0 +2020-05-04,Lincoln,New Mexico,35027,2,0 +2020-05-05,Lincoln,New Mexico,35027,2,0 +2020-05-06,Lincoln,New Mexico,35027,2,0 +2020-05-07,Lincoln,New Mexico,35027,2,0 +2020-05-08,Lincoln,New Mexico,35027,2,0 +2020-05-09,Lincoln,New Mexico,35027,2,0 +2020-05-10,Lincoln,New Mexico,35027,2,0 +2020-05-11,Lincoln,New Mexico,35027,2,0 +2020-05-12,Lincoln,New Mexico,35027,2,0 +2020-05-13,Lincoln,New Mexico,35027,2,0 +2020-05-14,Lincoln,New Mexico,35027,2,0 +2020-05-15,Lincoln,New Mexico,35027,2,0 +2020-05-16,Lincoln,New Mexico,35027,3,0 +2020-05-17,Lincoln,New Mexico,35027,3,0 +2020-05-18,Lincoln,New Mexico,35027,3,0 +2020-05-19,Lincoln,New Mexico,35027,3,0 +2020-05-20,Lincoln,New Mexico,35027,3,0 +2020-05-21,Lincoln,New Mexico,35027,3,0 +2020-05-22,Lincoln,New Mexico,35027,3,0 +2020-05-23,Lincoln,New Mexico,35027,3,0 +2020-05-24,Lincoln,New Mexico,35027,3,0 +2020-05-25,Lincoln,New Mexico,35027,3,0 +2020-05-26,Lincoln,New Mexico,35027,2,0 +2020-05-27,Lincoln,New Mexico,35027,2,0 +2020-05-28,Lincoln,New Mexico,35027,2,0 +2020-05-29,Lincoln,New Mexico,35027,2,0 +2020-05-30,Lincoln,New Mexico,35027,2,0 +2020-05-31,Lincoln,New Mexico,35027,2,0 +2020-06-01,Lincoln,New Mexico,35027,2,0 +2020-06-02,Lincoln,New Mexico,35027,4,0 +2020-06-03,Lincoln,New Mexico,35027,5,0 +2020-06-04,Lincoln,New Mexico,35027,5,0 +2020-06-05,Lincoln,New Mexico,35027,5,0 +2020-06-06,Lincoln,New Mexico,35027,5,0 +2020-06-07,Lincoln,New Mexico,35027,5,0 +2020-06-08,Lincoln,New Mexico,35027,5,0 +2020-06-09,Lincoln,New Mexico,35027,5,0 +2020-06-10,Lincoln,New Mexico,35027,5,0 +2020-06-11,Lincoln,New Mexico,35027,5,0 +2020-06-12,Lincoln,New Mexico,35027,5,0 +2020-06-13,Lincoln,New Mexico,35027,5,0 +2020-06-14,Lincoln,New Mexico,35027,6,0 +2020-06-15,Lincoln,New Mexico,35027,6,0 +2020-06-16,Lincoln,New Mexico,35027,6,0 +2020-06-17,Lincoln,New Mexico,35027,6,0 +2020-06-18,Lincoln,New Mexico,35027,7,0 +2020-06-19,Lincoln,New Mexico,35027,7,0 +2020-06-20,Lincoln,New Mexico,35027,7,0 +2020-06-21,Lincoln,New Mexico,35027,7,0 +2020-06-22,Lincoln,New Mexico,35027,7,0 +2020-06-23,Lincoln,New Mexico,35027,7,0 +2020-06-24,Lincoln,New Mexico,35027,8,0 +2020-06-25,Lincoln,New Mexico,35027,9,0 +2020-06-26,Lincoln,New Mexico,35027,11,0 +2020-06-27,Lincoln,New Mexico,35027,11,0 +2020-06-28,Lincoln,New Mexico,35027,11,0 +2020-06-29,Lincoln,New Mexico,35027,11,0 +2020-06-30,Lincoln,New Mexico,35027,11,0 +2020-07-01,Lincoln,New Mexico,35027,11,0 +2020-07-02,Lincoln,New Mexico,35027,12,0 +2020-07-03,Lincoln,New Mexico,35027,13,0 +2020-07-04,Lincoln,New Mexico,35027,13,0 +2020-07-05,Lincoln,New Mexico,35027,13,0 +2020-07-06,Lincoln,New Mexico,35027,14,0 +2020-07-07,Lincoln,New Mexico,35027,14,0 +2020-07-08,Lincoln,New Mexico,35027,16,0 +2020-07-09,Lincoln,New Mexico,35027,18,0 +2020-04-04,Los Alamos,New Mexico,35028,1,0 +2020-04-05,Los Alamos,New Mexico,35028,2,0 +2020-04-06,Los Alamos,New Mexico,35028,2,0 +2020-04-07,Los Alamos,New Mexico,35028,2,0 +2020-04-08,Los Alamos,New Mexico,35028,2,0 +2020-04-09,Los Alamos,New Mexico,35028,4,0 +2020-04-10,Los Alamos,New Mexico,35028,4,0 +2020-04-11,Los Alamos,New Mexico,35028,4,0 +2020-04-12,Los Alamos,New Mexico,35028,5,0 +2020-04-13,Los Alamos,New Mexico,35028,5,0 +2020-04-14,Los Alamos,New Mexico,35028,6,0 +2020-04-15,Los Alamos,New Mexico,35028,6,0 +2020-04-16,Los Alamos,New Mexico,35028,6,0 +2020-04-17,Los Alamos,New Mexico,35028,6,0 +2020-04-18,Los Alamos,New Mexico,35028,6,0 +2020-04-19,Los Alamos,New Mexico,35028,6,0 +2020-04-20,Los Alamos,New Mexico,35028,6,0 +2020-04-21,Los Alamos,New Mexico,35028,6,0 +2020-04-22,Los Alamos,New Mexico,35028,6,0 +2020-04-23,Los Alamos,New Mexico,35028,6,0 +2020-04-24,Los Alamos,New Mexico,35028,6,0 +2020-04-25,Los Alamos,New Mexico,35028,6,0 +2020-04-26,Los Alamos,New Mexico,35028,6,0 +2020-04-27,Los Alamos,New Mexico,35028,6,0 +2020-04-28,Los Alamos,New Mexico,35028,6,0 +2020-04-29,Los Alamos,New Mexico,35028,6,0 +2020-04-30,Los Alamos,New Mexico,35028,6,0 +2020-05-01,Los Alamos,New Mexico,35028,6,0 +2020-05-02,Los Alamos,New Mexico,35028,6,0 +2020-05-03,Los Alamos,New Mexico,35028,6,0 +2020-05-04,Los Alamos,New Mexico,35028,6,0 +2020-05-05,Los Alamos,New Mexico,35028,6,0 +2020-05-06,Los Alamos,New Mexico,35028,6,0 +2020-05-07,Los Alamos,New Mexico,35028,6,0 +2020-05-08,Los Alamos,New Mexico,35028,6,0 +2020-05-09,Los Alamos,New Mexico,35028,6,0 +2020-05-10,Los Alamos,New Mexico,35028,6,0 +2020-05-11,Los Alamos,New Mexico,35028,6,0 +2020-05-12,Los Alamos,New Mexico,35028,6,0 +2020-05-13,Los Alamos,New Mexico,35028,6,0 +2020-05-14,Los Alamos,New Mexico,35028,6,0 +2020-05-15,Los Alamos,New Mexico,35028,6,0 +2020-05-16,Los Alamos,New Mexico,35028,6,0 +2020-05-17,Los Alamos,New Mexico,35028,6,0 +2020-05-18,Los Alamos,New Mexico,35028,6,0 +2020-05-19,Los Alamos,New Mexico,35028,6,0 +2020-05-20,Los Alamos,New Mexico,35028,6,0 +2020-05-21,Los Alamos,New Mexico,35028,6,0 +2020-05-22,Los Alamos,New Mexico,35028,6,0 +2020-05-23,Los Alamos,New Mexico,35028,6,0 +2020-05-24,Los Alamos,New Mexico,35028,6,0 +2020-05-25,Los Alamos,New Mexico,35028,6,0 +2020-05-26,Los Alamos,New Mexico,35028,6,0 +2020-05-27,Los Alamos,New Mexico,35028,6,0 +2020-05-28,Los Alamos,New Mexico,35028,6,0 +2020-05-29,Los Alamos,New Mexico,35028,6,0 +2020-05-30,Los Alamos,New Mexico,35028,6,0 +2020-05-31,Los Alamos,New Mexico,35028,6,0 +2020-06-01,Los Alamos,New Mexico,35028,6,0 +2020-06-02,Los Alamos,New Mexico,35028,6,0 +2020-06-03,Los Alamos,New Mexico,35028,6,0 +2020-06-04,Los Alamos,New Mexico,35028,6,0 +2020-06-05,Los Alamos,New Mexico,35028,6,0 +2020-06-06,Los Alamos,New Mexico,35028,6,0 +2020-06-07,Los Alamos,New Mexico,35028,6,0 +2020-06-08,Los Alamos,New Mexico,35028,6,0 +2020-06-09,Los Alamos,New Mexico,35028,6,0 +2020-06-10,Los Alamos,New Mexico,35028,6,0 +2020-06-11,Los Alamos,New Mexico,35028,6,0 +2020-06-12,Los Alamos,New Mexico,35028,6,0 +2020-06-13,Los Alamos,New Mexico,35028,6,0 +2020-06-14,Los Alamos,New Mexico,35028,7,0 +2020-06-15,Los Alamos,New Mexico,35028,7,0 +2020-06-16,Los Alamos,New Mexico,35028,7,0 +2020-06-17,Los Alamos,New Mexico,35028,7,0 +2020-06-18,Los Alamos,New Mexico,35028,7,0 +2020-06-19,Los Alamos,New Mexico,35028,7,0 +2020-06-20,Los Alamos,New Mexico,35028,7,0 +2020-06-21,Los Alamos,New Mexico,35028,7,0 +2020-06-22,Los Alamos,New Mexico,35028,7,0 +2020-06-23,Los Alamos,New Mexico,35028,7,0 +2020-06-24,Los Alamos,New Mexico,35028,7,0 +2020-06-25,Los Alamos,New Mexico,35028,7,0 +2020-06-26,Los Alamos,New Mexico,35028,7,0 +2020-06-27,Los Alamos,New Mexico,35028,7,0 +2020-06-28,Los Alamos,New Mexico,35028,8,0 +2020-06-29,Los Alamos,New Mexico,35028,8,0 +2020-06-30,Los Alamos,New Mexico,35028,8,0 +2020-07-01,Los Alamos,New Mexico,35028,8,0 +2020-07-02,Los Alamos,New Mexico,35028,8,0 +2020-07-03,Los Alamos,New Mexico,35028,8,0 +2020-07-04,Los Alamos,New Mexico,35028,8,0 +2020-07-05,Los Alamos,New Mexico,35028,8,0 +2020-07-06,Los Alamos,New Mexico,35028,9,0 +2020-07-07,Los Alamos,New Mexico,35028,11,0 +2020-07-08,Los Alamos,New Mexico,35028,11,0 +2020-07-09,Los Alamos,New Mexico,35028,11,0 +2020-04-10,Luna,New Mexico,35029,2,0 +2020-04-11,Luna,New Mexico,35029,2,0 +2020-04-12,Luna,New Mexico,35029,2,0 +2020-04-13,Luna,New Mexico,35029,2,0 +2020-04-14,Luna,New Mexico,35029,2,0 +2020-04-15,Luna,New Mexico,35029,2,0 +2020-04-16,Luna,New Mexico,35029,3,0 +2020-04-17,Luna,New Mexico,35029,3,0 +2020-04-18,Luna,New Mexico,35029,3,0 +2020-04-19,Luna,New Mexico,35029,3,0 +2020-04-20,Luna,New Mexico,35029,3,0 +2020-04-21,Luna,New Mexico,35029,3,0 +2020-04-22,Luna,New Mexico,35029,3,0 +2020-04-23,Luna,New Mexico,35029,3,0 +2020-04-24,Luna,New Mexico,35029,3,0 +2020-04-25,Luna,New Mexico,35029,3,0 +2020-04-26,Luna,New Mexico,35029,3,0 +2020-04-27,Luna,New Mexico,35029,3,0 +2020-04-28,Luna,New Mexico,35029,3,0 +2020-04-29,Luna,New Mexico,35029,4,0 +2020-04-30,Luna,New Mexico,35029,5,1 +2020-05-01,Luna,New Mexico,35029,5,1 +2020-05-02,Luna,New Mexico,35029,6,1 +2020-05-03,Luna,New Mexico,35029,7,1 +2020-05-04,Luna,New Mexico,35029,7,1 +2020-05-05,Luna,New Mexico,35029,7,1 +2020-05-06,Luna,New Mexico,35029,7,1 +2020-05-07,Luna,New Mexico,35029,7,1 +2020-05-08,Luna,New Mexico,35029,7,1 +2020-05-09,Luna,New Mexico,35029,7,1 +2020-05-10,Luna,New Mexico,35029,7,1 +2020-05-11,Luna,New Mexico,35029,8,1 +2020-05-12,Luna,New Mexico,35029,8,1 +2020-05-13,Luna,New Mexico,35029,8,1 +2020-05-14,Luna,New Mexico,35029,8,1 +2020-05-15,Luna,New Mexico,35029,8,1 +2020-05-16,Luna,New Mexico,35029,8,1 +2020-05-17,Luna,New Mexico,35029,8,1 +2020-05-18,Luna,New Mexico,35029,8,1 +2020-05-19,Luna,New Mexico,35029,8,1 +2020-05-20,Luna,New Mexico,35029,8,1 +2020-05-21,Luna,New Mexico,35029,8,1 +2020-05-22,Luna,New Mexico,35029,8,1 +2020-05-23,Luna,New Mexico,35029,8,1 +2020-05-24,Luna,New Mexico,35029,8,1 +2020-05-25,Luna,New Mexico,35029,7,1 +2020-05-26,Luna,New Mexico,35029,7,1 +2020-05-27,Luna,New Mexico,35029,7,1 +2020-05-28,Luna,New Mexico,35029,7,1 +2020-05-29,Luna,New Mexico,35029,8,1 +2020-05-30,Luna,New Mexico,35029,8,1 +2020-05-31,Luna,New Mexico,35029,8,1 +2020-06-01,Luna,New Mexico,35029,8,1 +2020-06-02,Luna,New Mexico,35029,9,1 +2020-06-03,Luna,New Mexico,35029,10,1 +2020-06-04,Luna,New Mexico,35029,9,1 +2020-06-05,Luna,New Mexico,35029,11,1 +2020-06-06,Luna,New Mexico,35029,11,1 +2020-06-07,Luna,New Mexico,35029,12,1 +2020-06-08,Luna,New Mexico,35029,12,1 +2020-06-09,Luna,New Mexico,35029,12,1 +2020-06-10,Luna,New Mexico,35029,12,1 +2020-06-11,Luna,New Mexico,35029,20,1 +2020-06-12,Luna,New Mexico,35029,21,1 +2020-06-13,Luna,New Mexico,35029,27,1 +2020-06-14,Luna,New Mexico,35029,28,1 +2020-06-15,Luna,New Mexico,35029,30,1 +2020-06-16,Luna,New Mexico,35029,33,1 +2020-06-17,Luna,New Mexico,35029,33,1 +2020-06-18,Luna,New Mexico,35029,45,1 +2020-06-19,Luna,New Mexico,35029,48,2 +2020-06-20,Luna,New Mexico,35029,50,2 +2020-06-21,Luna,New Mexico,35029,55,2 +2020-06-22,Luna,New Mexico,35029,56,2 +2020-06-23,Luna,New Mexico,35029,58,2 +2020-06-24,Luna,New Mexico,35029,58,2 +2020-06-25,Luna,New Mexico,35029,64,2 +2020-06-26,Luna,New Mexico,35029,65,2 +2020-06-27,Luna,New Mexico,35029,68,2 +2020-06-28,Luna,New Mexico,35029,73,2 +2020-06-29,Luna,New Mexico,35029,77,2 +2020-06-30,Luna,New Mexico,35029,79,3 +2020-07-01,Luna,New Mexico,35029,80,3 +2020-07-02,Luna,New Mexico,35029,82,3 +2020-07-03,Luna,New Mexico,35029,93,3 +2020-07-04,Luna,New Mexico,35029,97,3 +2020-07-05,Luna,New Mexico,35029,101,3 +2020-07-06,Luna,New Mexico,35029,104,3 +2020-07-07,Luna,New Mexico,35029,112,3 +2020-07-08,Luna,New Mexico,35029,113,3 +2020-07-09,Luna,New Mexico,35029,113,3 +2020-03-20,McKinley,New Mexico,35031,1,0 +2020-03-21,McKinley,New Mexico,35031,1,0 +2020-03-22,McKinley,New Mexico,35031,2,0 +2020-03-23,McKinley,New Mexico,35031,2,0 +2020-03-24,McKinley,New Mexico,35031,3,0 +2020-03-25,McKinley,New Mexico,35031,3,0 +2020-03-26,McKinley,New Mexico,35031,3,0 +2020-03-27,McKinley,New Mexico,35031,5,0 +2020-03-28,McKinley,New Mexico,35031,5,0 +2020-03-29,McKinley,New Mexico,35031,9,0 +2020-03-30,McKinley,New Mexico,35031,12,0 +2020-03-31,McKinley,New Mexico,35031,16,0 +2020-04-01,McKinley,New Mexico,35031,20,0 +2020-04-02,McKinley,New Mexico,35031,24,0 +2020-04-03,McKinley,New Mexico,35031,32,0 +2020-04-04,McKinley,New Mexico,35031,32,1 +2020-04-05,McKinley,New Mexico,35031,40,2 +2020-04-06,McKinley,New Mexico,35031,44,2 +2020-04-07,McKinley,New Mexico,35031,55,2 +2020-04-08,McKinley,New Mexico,35031,70,2 +2020-04-09,McKinley,New Mexico,35031,84,2 +2020-04-10,McKinley,New Mexico,35031,113,2 +2020-04-11,McKinley,New Mexico,35031,140,2 +2020-04-12,McKinley,New Mexico,35031,144,2 +2020-04-13,McKinley,New Mexico,35031,191,2 +2020-04-14,McKinley,New Mexico,35031,204,2 +2020-04-15,McKinley,New Mexico,35031,242,2 +2020-04-16,McKinley,New Mexico,35031,265,4 +2020-04-17,McKinley,New Mexico,35031,316,4 +2020-04-18,McKinley,New Mexico,35031,356,5 +2020-04-19,McKinley,New Mexico,35031,363,5 +2020-04-20,McKinley,New Mexico,35031,416,5 +2020-04-21,McKinley,New Mexico,35031,460,6 +2020-04-22,McKinley,New Mexico,35031,519,7 +2020-04-23,McKinley,New Mexico,35031,573,8 +2020-04-24,McKinley,New Mexico,35031,639,9 +2020-04-25,McKinley,New Mexico,35031,708,9 +2020-04-26,McKinley,New Mexico,35031,720,12 +2020-04-27,McKinley,New Mexico,35031,778,12 +2020-04-28,McKinley,New Mexico,35031,820,15 +2020-04-29,McKinley,New Mexico,35031,953,16 +2020-04-30,McKinley,New Mexico,35031,1027,19 +2020-05-01,McKinley,New Mexico,35031,1064,20 +2020-05-02,McKinley,New Mexico,35031,1116,20 +2020-05-03,McKinley,New Mexico,35031,1144,21 +2020-05-04,McKinley,New Mexico,35031,1233,21 +2020-05-05,McKinley,New Mexico,35031,1274,25 +2020-05-06,McKinley,New Mexico,35031,1337,29 +2020-05-07,McKinley,New Mexico,35031,1402,31 +2020-05-08,McKinley,New Mexico,35031,1460,36 +2020-05-09,McKinley,New Mexico,35031,1508,40 +2020-05-10,McKinley,New Mexico,35031,1522,46 +2020-05-11,McKinley,New Mexico,35031,1585,50 +2020-05-12,McKinley,New Mexico,35031,1628,55 +2020-05-13,McKinley,New Mexico,35031,1681,57 +2020-05-14,McKinley,New Mexico,35031,1730,63 +2020-05-15,McKinley,New Mexico,35031,1787,69 +2020-05-16,McKinley,New Mexico,35031,1864,73 +2020-05-17,McKinley,New Mexico,35031,1888,76 +2020-05-18,McKinley,New Mexico,35031,1953,78 +2020-05-19,McKinley,New Mexico,35031,1987,79 +2020-05-20,McKinley,New Mexico,35031,2009,82 +2020-05-21,McKinley,New Mexico,35031,2044,86 +2020-05-22,McKinley,New Mexico,35031,2086,87 +2020-05-23,McKinley,New Mexico,35031,2128,87 +2020-05-24,McKinley,New Mexico,35031,2192,93 +2020-05-25,McKinley,New Mexico,35031,2215,94 +2020-05-26,McKinley,New Mexico,35031,2236,95 +2020-05-27,McKinley,New Mexico,35031,2270,97 +2020-05-28,McKinley,New Mexico,35031,2291,100 +2020-05-29,McKinley,New Mexico,35031,2348,104 +2020-05-30,McKinley,New Mexico,35031,2406,109 +2020-05-31,McKinley,New Mexico,35031,2415,110 +2020-06-01,McKinley,New Mexico,35031,2451,112 +2020-06-02,McKinley,New Mexico,35031,2480,114 +2020-06-03,McKinley,New Mexico,35031,2515,119 +2020-06-04,McKinley,New Mexico,35031,2542,124 +2020-06-05,McKinley,New Mexico,35031,2617,125 +2020-06-06,McKinley,New Mexico,35031,2657,129 +2020-06-07,McKinley,New Mexico,35031,2694,130 +2020-06-08,McKinley,New Mexico,35031,2746,133 +2020-06-09,McKinley,New Mexico,35031,2757,134 +2020-06-10,McKinley,New Mexico,35031,2807,137 +2020-06-11,McKinley,New Mexico,35031,2822,139 +2020-06-12,McKinley,New Mexico,35031,2870,141 +2020-06-13,McKinley,New Mexico,35031,2896,143 +2020-06-14,McKinley,New Mexico,35031,2912,145 +2020-06-15,McKinley,New Mexico,35031,2936,148 +2020-06-16,McKinley,New Mexico,35031,2949,151 +2020-06-17,McKinley,New Mexico,35031,2968,152 +2020-06-18,McKinley,New Mexico,35031,2987,153 +2020-06-19,McKinley,New Mexico,35031,3009,157 +2020-06-20,McKinley,New Mexico,35031,3041,159 +2020-06-21,McKinley,New Mexico,35031,3073,161 +2020-06-22,McKinley,New Mexico,35031,3105,161 +2020-06-23,McKinley,New Mexico,35031,3155,161 +2020-06-24,McKinley,New Mexico,35031,3179,161 +2020-06-25,McKinley,New Mexico,35031,3215,162 +2020-06-26,McKinley,New Mexico,35031,3287,166 +2020-06-27,McKinley,New Mexico,35031,3309,166 +2020-06-28,McKinley,New Mexico,35031,3336,166 +2020-06-29,McKinley,New Mexico,35031,3347,166 +2020-06-30,McKinley,New Mexico,35031,3375,168 +2020-07-01,McKinley,New Mexico,35031,3395,170 +2020-07-02,McKinley,New Mexico,35031,3408,172 +2020-07-03,McKinley,New Mexico,35031,3450,177 +2020-07-04,McKinley,New Mexico,35031,3483,179 +2020-07-05,McKinley,New Mexico,35031,3502,179 +2020-07-06,McKinley,New Mexico,35031,3514,179 +2020-07-07,McKinley,New Mexico,35031,3525,181 +2020-07-08,McKinley,New Mexico,35031,3548,184 +2020-07-09,McKinley,New Mexico,35031,3567,186 +2020-04-01,Otero,New Mexico,35035,1,0 +2020-04-02,Otero,New Mexico,35035,2,0 +2020-04-03,Otero,New Mexico,35035,2,0 +2020-04-04,Otero,New Mexico,35035,2,0 +2020-04-05,Otero,New Mexico,35035,3,0 +2020-04-06,Otero,New Mexico,35035,3,0 +2020-04-07,Otero,New Mexico,35035,3,0 +2020-04-08,Otero,New Mexico,35035,3,0 +2020-04-09,Otero,New Mexico,35035,3,0 +2020-04-10,Otero,New Mexico,35035,3,0 +2020-04-11,Otero,New Mexico,35035,3,0 +2020-04-12,Otero,New Mexico,35035,4,0 +2020-04-13,Otero,New Mexico,35035,3,0 +2020-04-14,Otero,New Mexico,35035,3,0 +2020-04-15,Otero,New Mexico,35035,3,0 +2020-04-16,Otero,New Mexico,35035,3,0 +2020-04-17,Otero,New Mexico,35035,3,0 +2020-04-18,Otero,New Mexico,35035,3,0 +2020-04-19,Otero,New Mexico,35035,3,0 +2020-04-20,Otero,New Mexico,35035,3,0 +2020-04-21,Otero,New Mexico,35035,3,0 +2020-04-22,Otero,New Mexico,35035,3,0 +2020-04-23,Otero,New Mexico,35035,5,0 +2020-04-24,Otero,New Mexico,35035,5,0 +2020-04-25,Otero,New Mexico,35035,5,0 +2020-04-26,Otero,New Mexico,35035,5,0 +2020-04-27,Otero,New Mexico,35035,5,0 +2020-04-28,Otero,New Mexico,35035,5,0 +2020-04-29,Otero,New Mexico,35035,5,0 +2020-04-30,Otero,New Mexico,35035,5,0 +2020-05-01,Otero,New Mexico,35035,5,0 +2020-05-02,Otero,New Mexico,35035,6,0 +2020-05-03,Otero,New Mexico,35035,6,0 +2020-05-04,Otero,New Mexico,35035,8,0 +2020-05-05,Otero,New Mexico,35035,8,0 +2020-05-06,Otero,New Mexico,35035,9,0 +2020-05-07,Otero,New Mexico,35035,9,0 +2020-05-08,Otero,New Mexico,35035,15,0 +2020-05-09,Otero,New Mexico,35035,15,0 +2020-05-10,Otero,New Mexico,35035,16,0 +2020-05-11,Otero,New Mexico,35035,31,0 +2020-05-12,Otero,New Mexico,35035,46,0 +2020-05-13,Otero,New Mexico,35035,56,0 +2020-05-14,Otero,New Mexico,35035,60,1 +2020-05-15,Otero,New Mexico,35035,68,1 +2020-05-16,Otero,New Mexico,35035,75,1 +2020-05-17,Otero,New Mexico,35035,75,1 +2020-05-18,Otero,New Mexico,35035,99,1 +2020-05-19,Otero,New Mexico,35035,99,1 +2020-05-20,Otero,New Mexico,35035,118,1 +2020-05-21,Otero,New Mexico,35035,118,1 +2020-05-22,Otero,New Mexico,35035,146,1 +2020-05-23,Otero,New Mexico,35035,183,1 +2020-05-24,Otero,New Mexico,35035,186,1 +2020-05-25,Otero,New Mexico,35035,186,1 +2020-05-26,Otero,New Mexico,35035,192,2 +2020-05-27,Otero,New Mexico,35035,194,2 +2020-05-28,Otero,New Mexico,35035,196,2 +2020-05-29,Otero,New Mexico,35035,204,2 +2020-05-30,Otero,New Mexico,35035,211,2 +2020-05-31,Otero,New Mexico,35035,215,2 +2020-06-01,Otero,New Mexico,35035,215,3 +2020-06-02,Otero,New Mexico,35035,331,3 +2020-06-03,Otero,New Mexico,35035,356,3 +2020-06-04,Otero,New Mexico,35035,467,3 +2020-06-05,Otero,New Mexico,35035,597,4 +2020-06-06,Otero,New Mexico,35035,600,4 +2020-06-07,Otero,New Mexico,35035,601,4 +2020-06-08,Otero,New Mexico,35035,601,4 +2020-06-09,Otero,New Mexico,35035,604,4 +2020-06-10,Otero,New Mexico,35035,604,4 +2020-06-11,Otero,New Mexico,35035,623,4 +2020-06-12,Otero,New Mexico,35035,644,4 +2020-06-13,Otero,New Mexico,35035,654,4 +2020-06-14,Otero,New Mexico,35035,653,4 +2020-06-15,Otero,New Mexico,35035,697,4 +2020-06-16,Otero,New Mexico,35035,700,4 +2020-06-17,Otero,New Mexico,35035,739,5 +2020-06-18,Otero,New Mexico,35035,742,5 +2020-06-19,Otero,New Mexico,35035,749,6 +2020-06-20,Otero,New Mexico,35035,813,6 +2020-06-21,Otero,New Mexico,35035,812,6 +2020-06-22,Otero,New Mexico,35035,854,6 +2020-06-23,Otero,New Mexico,35035,854,6 +2020-06-24,Otero,New Mexico,35035,869,6 +2020-06-25,Otero,New Mexico,35035,871,6 +2020-06-26,Otero,New Mexico,35035,872,6 +2020-06-27,Otero,New Mexico,35035,872,6 +2020-06-28,Otero,New Mexico,35035,886,6 +2020-06-29,Otero,New Mexico,35035,889,6 +2020-06-30,Otero,New Mexico,35035,895,6 +2020-07-01,Otero,New Mexico,35035,898,6 +2020-07-02,Otero,New Mexico,35035,900,6 +2020-07-03,Otero,New Mexico,35035,911,7 +2020-07-04,Otero,New Mexico,35035,919,7 +2020-07-05,Otero,New Mexico,35035,919,7 +2020-07-06,Otero,New Mexico,35035,923,7 +2020-07-07,Otero,New Mexico,35035,927,7 +2020-07-08,Otero,New Mexico,35035,934,7 +2020-07-09,Otero,New Mexico,35035,937,7 +2020-04-11,Quay,New Mexico,35037,1,0 +2020-04-12,Quay,New Mexico,35037,1,0 +2020-04-13,Quay,New Mexico,35037,1,0 +2020-04-14,Quay,New Mexico,35037,1,0 +2020-04-15,Quay,New Mexico,35037,1,0 +2020-04-16,Quay,New Mexico,35037,1,0 +2020-04-17,Quay,New Mexico,35037,1,0 +2020-04-18,Quay,New Mexico,35037,2,0 +2020-04-19,Quay,New Mexico,35037,2,0 +2020-04-20,Quay,New Mexico,35037,3,1 +2020-04-21,Quay,New Mexico,35037,3,1 +2020-04-22,Quay,New Mexico,35037,3,1 +2020-04-23,Quay,New Mexico,35037,4,1 +2020-04-24,Quay,New Mexico,35037,4,1 +2020-04-25,Quay,New Mexico,35037,4,1 +2020-04-26,Quay,New Mexico,35037,4,1 +2020-04-27,Quay,New Mexico,35037,4,1 +2020-04-28,Quay,New Mexico,35037,4,1 +2020-04-29,Quay,New Mexico,35037,4,1 +2020-04-30,Quay,New Mexico,35037,4,1 +2020-05-01,Quay,New Mexico,35037,4,1 +2020-05-02,Quay,New Mexico,35037,4,1 +2020-05-03,Quay,New Mexico,35037,4,1 +2020-05-04,Quay,New Mexico,35037,4,1 +2020-05-05,Quay,New Mexico,35037,4,1 +2020-05-06,Quay,New Mexico,35037,4,1 +2020-05-07,Quay,New Mexico,35037,4,1 +2020-05-08,Quay,New Mexico,35037,4,1 +2020-05-09,Quay,New Mexico,35037,4,1 +2020-05-10,Quay,New Mexico,35037,4,1 +2020-05-11,Quay,New Mexico,35037,4,1 +2020-05-12,Quay,New Mexico,35037,5,1 +2020-05-13,Quay,New Mexico,35037,5,1 +2020-05-14,Quay,New Mexico,35037,5,1 +2020-05-15,Quay,New Mexico,35037,5,1 +2020-05-16,Quay,New Mexico,35037,5,1 +2020-05-17,Quay,New Mexico,35037,5,1 +2020-05-18,Quay,New Mexico,35037,5,1 +2020-05-19,Quay,New Mexico,35037,5,1 +2020-05-20,Quay,New Mexico,35037,5,1 +2020-05-21,Quay,New Mexico,35037,5,1 +2020-05-22,Quay,New Mexico,35037,5,1 +2020-05-23,Quay,New Mexico,35037,5,1 +2020-05-24,Quay,New Mexico,35037,5,1 +2020-05-25,Quay,New Mexico,35037,5,1 +2020-05-26,Quay,New Mexico,35037,5,1 +2020-05-27,Quay,New Mexico,35037,5,1 +2020-05-28,Quay,New Mexico,35037,5,1 +2020-05-29,Quay,New Mexico,35037,5,1 +2020-05-30,Quay,New Mexico,35037,5,1 +2020-05-31,Quay,New Mexico,35037,5,1 +2020-06-01,Quay,New Mexico,35037,5,1 +2020-06-02,Quay,New Mexico,35037,5,1 +2020-06-03,Quay,New Mexico,35037,5,1 +2020-06-04,Quay,New Mexico,35037,5,1 +2020-06-05,Quay,New Mexico,35037,5,1 +2020-06-06,Quay,New Mexico,35037,5,1 +2020-06-07,Quay,New Mexico,35037,5,1 +2020-06-08,Quay,New Mexico,35037,5,1 +2020-06-09,Quay,New Mexico,35037,4,1 +2020-06-10,Quay,New Mexico,35037,4,1 +2020-06-11,Quay,New Mexico,35037,4,1 +2020-06-12,Quay,New Mexico,35037,4,1 +2020-06-13,Quay,New Mexico,35037,4,1 +2020-06-14,Quay,New Mexico,35037,4,1 +2020-06-15,Quay,New Mexico,35037,4,1 +2020-06-16,Quay,New Mexico,35037,4,1 +2020-06-17,Quay,New Mexico,35037,4,1 +2020-06-18,Quay,New Mexico,35037,5,1 +2020-06-19,Quay,New Mexico,35037,5,1 +2020-06-20,Quay,New Mexico,35037,5,1 +2020-06-21,Quay,New Mexico,35037,5,1 +2020-06-22,Quay,New Mexico,35037,5,1 +2020-06-23,Quay,New Mexico,35037,5,1 +2020-06-24,Quay,New Mexico,35037,5,1 +2020-06-25,Quay,New Mexico,35037,5,1 +2020-06-26,Quay,New Mexico,35037,6,1 +2020-06-27,Quay,New Mexico,35037,6,1 +2020-06-28,Quay,New Mexico,35037,6,1 +2020-06-29,Quay,New Mexico,35037,6,1 +2020-06-30,Quay,New Mexico,35037,6,1 +2020-07-01,Quay,New Mexico,35037,6,1 +2020-07-02,Quay,New Mexico,35037,6,1 +2020-07-03,Quay,New Mexico,35037,6,1 +2020-07-04,Quay,New Mexico,35037,6,1 +2020-07-05,Quay,New Mexico,35037,6,1 +2020-07-06,Quay,New Mexico,35037,7,1 +2020-07-07,Quay,New Mexico,35037,8,1 +2020-07-08,Quay,New Mexico,35037,9,1 +2020-07-09,Quay,New Mexico,35037,12,1 +2020-03-25,Rio Arriba,New Mexico,35039,2,0 +2020-03-26,Rio Arriba,New Mexico,35039,2,0 +2020-03-27,Rio Arriba,New Mexico,35039,3,0 +2020-03-28,Rio Arriba,New Mexico,35039,3,0 +2020-03-29,Rio Arriba,New Mexico,35039,2,0 +2020-03-30,Rio Arriba,New Mexico,35039,3,0 +2020-03-31,Rio Arriba,New Mexico,35039,4,0 +2020-04-01,Rio Arriba,New Mexico,35039,4,0 +2020-04-02,Rio Arriba,New Mexico,35039,5,0 +2020-04-03,Rio Arriba,New Mexico,35039,5,0 +2020-04-04,Rio Arriba,New Mexico,35039,6,0 +2020-04-05,Rio Arriba,New Mexico,35039,6,0 +2020-04-06,Rio Arriba,New Mexico,35039,6,0 +2020-04-07,Rio Arriba,New Mexico,35039,6,0 +2020-04-08,Rio Arriba,New Mexico,35039,7,0 +2020-04-09,Rio Arriba,New Mexico,35039,7,0 +2020-04-10,Rio Arriba,New Mexico,35039,7,0 +2020-04-11,Rio Arriba,New Mexico,35039,7,0 +2020-04-12,Rio Arriba,New Mexico,35039,7,0 +2020-04-13,Rio Arriba,New Mexico,35039,7,0 +2020-04-14,Rio Arriba,New Mexico,35039,10,0 +2020-04-15,Rio Arriba,New Mexico,35039,10,0 +2020-04-16,Rio Arriba,New Mexico,35039,10,0 +2020-04-17,Rio Arriba,New Mexico,35039,10,0 +2020-04-18,Rio Arriba,New Mexico,35039,10,0 +2020-04-19,Rio Arriba,New Mexico,35039,10,0 +2020-04-20,Rio Arriba,New Mexico,35039,11,0 +2020-04-21,Rio Arriba,New Mexico,35039,11,0 +2020-04-22,Rio Arriba,New Mexico,35039,11,0 +2020-04-23,Rio Arriba,New Mexico,35039,11,0 +2020-04-24,Rio Arriba,New Mexico,35039,12,0 +2020-04-25,Rio Arriba,New Mexico,35039,12,0 +2020-04-26,Rio Arriba,New Mexico,35039,14,0 +2020-04-27,Rio Arriba,New Mexico,35039,14,0 +2020-04-28,Rio Arriba,New Mexico,35039,14,0 +2020-04-29,Rio Arriba,New Mexico,35039,14,0 +2020-04-30,Rio Arriba,New Mexico,35039,14,0 +2020-05-01,Rio Arriba,New Mexico,35039,18,0 +2020-05-02,Rio Arriba,New Mexico,35039,22,0 +2020-05-03,Rio Arriba,New Mexico,35039,24,0 +2020-05-04,Rio Arriba,New Mexico,35039,24,0 +2020-05-05,Rio Arriba,New Mexico,35039,24,0 +2020-05-06,Rio Arriba,New Mexico,35039,24,0 +2020-05-07,Rio Arriba,New Mexico,35039,26,0 +2020-05-08,Rio Arriba,New Mexico,35039,27,0 +2020-05-09,Rio Arriba,New Mexico,35039,27,0 +2020-05-10,Rio Arriba,New Mexico,35039,27,0 +2020-05-11,Rio Arriba,New Mexico,35039,28,0 +2020-05-12,Rio Arriba,New Mexico,35039,28,0 +2020-05-13,Rio Arriba,New Mexico,35039,28,0 +2020-05-14,Rio Arriba,New Mexico,35039,30,0 +2020-05-15,Rio Arriba,New Mexico,35039,30,0 +2020-05-16,Rio Arriba,New Mexico,35039,31,0 +2020-05-17,Rio Arriba,New Mexico,35039,31,0 +2020-05-18,Rio Arriba,New Mexico,35039,33,0 +2020-05-19,Rio Arriba,New Mexico,35039,33,0 +2020-05-20,Rio Arriba,New Mexico,35039,33,0 +2020-05-21,Rio Arriba,New Mexico,35039,36,0 +2020-05-22,Rio Arriba,New Mexico,35039,36,0 +2020-05-23,Rio Arriba,New Mexico,35039,36,0 +2020-05-24,Rio Arriba,New Mexico,35039,37,0 +2020-05-25,Rio Arriba,New Mexico,35039,37,0 +2020-05-26,Rio Arriba,New Mexico,35039,37,0 +2020-05-27,Rio Arriba,New Mexico,35039,38,0 +2020-05-28,Rio Arriba,New Mexico,35039,41,1 +2020-05-29,Rio Arriba,New Mexico,35039,43,1 +2020-05-30,Rio Arriba,New Mexico,35039,44,1 +2020-05-31,Rio Arriba,New Mexico,35039,47,1 +2020-06-01,Rio Arriba,New Mexico,35039,48,1 +2020-06-02,Rio Arriba,New Mexico,35039,49,1 +2020-06-03,Rio Arriba,New Mexico,35039,52,1 +2020-06-04,Rio Arriba,New Mexico,35039,52,1 +2020-06-05,Rio Arriba,New Mexico,35039,54,1 +2020-06-06,Rio Arriba,New Mexico,35039,54,1 +2020-06-07,Rio Arriba,New Mexico,35039,54,1 +2020-06-08,Rio Arriba,New Mexico,35039,57,1 +2020-06-09,Rio Arriba,New Mexico,35039,57,1 +2020-06-10,Rio Arriba,New Mexico,35039,59,1 +2020-06-11,Rio Arriba,New Mexico,35039,60,1 +2020-06-12,Rio Arriba,New Mexico,35039,60,1 +2020-06-13,Rio Arriba,New Mexico,35039,60,1 +2020-06-14,Rio Arriba,New Mexico,35039,60,1 +2020-06-15,Rio Arriba,New Mexico,35039,59,1 +2020-06-16,Rio Arriba,New Mexico,35039,59,1 +2020-06-17,Rio Arriba,New Mexico,35039,61,1 +2020-06-18,Rio Arriba,New Mexico,35039,66,1 +2020-06-19,Rio Arriba,New Mexico,35039,73,1 +2020-06-20,Rio Arriba,New Mexico,35039,79,1 +2020-06-21,Rio Arriba,New Mexico,35039,79,1 +2020-06-22,Rio Arriba,New Mexico,35039,79,1 +2020-06-23,Rio Arriba,New Mexico,35039,82,1 +2020-06-24,Rio Arriba,New Mexico,35039,86,1 +2020-06-25,Rio Arriba,New Mexico,35039,89,1 +2020-06-26,Rio Arriba,New Mexico,35039,91,1 +2020-06-27,Rio Arriba,New Mexico,35039,93,1 +2020-06-28,Rio Arriba,New Mexico,35039,93,1 +2020-06-29,Rio Arriba,New Mexico,35039,96,1 +2020-06-30,Rio Arriba,New Mexico,35039,98,1 +2020-07-01,Rio Arriba,New Mexico,35039,101,1 +2020-07-02,Rio Arriba,New Mexico,35039,105,1 +2020-07-03,Rio Arriba,New Mexico,35039,106,1 +2020-07-04,Rio Arriba,New Mexico,35039,106,1 +2020-07-05,Rio Arriba,New Mexico,35039,106,1 +2020-07-06,Rio Arriba,New Mexico,35039,110,1 +2020-07-07,Rio Arriba,New Mexico,35039,119,1 +2020-07-08,Rio Arriba,New Mexico,35039,124,1 +2020-07-09,Rio Arriba,New Mexico,35039,128,1 +2020-03-27,Roosevelt,New Mexico,35041,1,0 +2020-03-28,Roosevelt,New Mexico,35041,1,0 +2020-03-29,Roosevelt,New Mexico,35041,1,0 +2020-03-30,Roosevelt,New Mexico,35041,1,0 +2020-03-31,Roosevelt,New Mexico,35041,1,0 +2020-04-01,Roosevelt,New Mexico,35041,1,0 +2020-04-02,Roosevelt,New Mexico,35041,1,0 +2020-04-03,Roosevelt,New Mexico,35041,1,0 +2020-04-04,Roosevelt,New Mexico,35041,1,0 +2020-04-05,Roosevelt,New Mexico,35041,1,0 +2020-04-06,Roosevelt,New Mexico,35041,1,0 +2020-04-07,Roosevelt,New Mexico,35041,1,0 +2020-04-08,Roosevelt,New Mexico,35041,1,0 +2020-04-09,Roosevelt,New Mexico,35041,1,0 +2020-04-10,Roosevelt,New Mexico,35041,1,0 +2020-04-11,Roosevelt,New Mexico,35041,1,0 +2020-04-12,Roosevelt,New Mexico,35041,1,0 +2020-04-13,Roosevelt,New Mexico,35041,1,0 +2020-04-14,Roosevelt,New Mexico,35041,1,0 +2020-04-15,Roosevelt,New Mexico,35041,1,0 +2020-04-16,Roosevelt,New Mexico,35041,1,0 +2020-04-17,Roosevelt,New Mexico,35041,1,0 +2020-04-18,Roosevelt,New Mexico,35041,1,0 +2020-04-19,Roosevelt,New Mexico,35041,1,0 +2020-04-20,Roosevelt,New Mexico,35041,1,0 +2020-04-21,Roosevelt,New Mexico,35041,1,0 +2020-04-22,Roosevelt,New Mexico,35041,4,0 +2020-04-23,Roosevelt,New Mexico,35041,4,0 +2020-04-24,Roosevelt,New Mexico,35041,4,0 +2020-04-25,Roosevelt,New Mexico,35041,6,0 +2020-04-26,Roosevelt,New Mexico,35041,7,0 +2020-04-27,Roosevelt,New Mexico,35041,7,0 +2020-04-28,Roosevelt,New Mexico,35041,8,0 +2020-04-29,Roosevelt,New Mexico,35041,8,0 +2020-04-30,Roosevelt,New Mexico,35041,9,0 +2020-05-01,Roosevelt,New Mexico,35041,9,0 +2020-05-02,Roosevelt,New Mexico,35041,9,0 +2020-05-03,Roosevelt,New Mexico,35041,10,0 +2020-05-04,Roosevelt,New Mexico,35041,10,0 +2020-05-05,Roosevelt,New Mexico,35041,10,0 +2020-05-06,Roosevelt,New Mexico,35041,11,0 +2020-05-07,Roosevelt,New Mexico,35041,11,0 +2020-05-08,Roosevelt,New Mexico,35041,11,0 +2020-05-09,Roosevelt,New Mexico,35041,11,0 +2020-05-10,Roosevelt,New Mexico,35041,11,0 +2020-05-11,Roosevelt,New Mexico,35041,11,0 +2020-05-12,Roosevelt,New Mexico,35041,12,0 +2020-05-13,Roosevelt,New Mexico,35041,13,0 +2020-05-14,Roosevelt,New Mexico,35041,14,0 +2020-05-15,Roosevelt,New Mexico,35041,14,0 +2020-05-16,Roosevelt,New Mexico,35041,26,0 +2020-05-17,Roosevelt,New Mexico,35041,26,0 +2020-05-18,Roosevelt,New Mexico,35041,27,0 +2020-05-19,Roosevelt,New Mexico,35041,27,0 +2020-05-20,Roosevelt,New Mexico,35041,26,0 +2020-05-21,Roosevelt,New Mexico,35041,26,0 +2020-05-22,Roosevelt,New Mexico,35041,31,0 +2020-05-23,Roosevelt,New Mexico,35041,33,0 +2020-05-24,Roosevelt,New Mexico,35041,34,0 +2020-05-25,Roosevelt,New Mexico,35041,36,0 +2020-05-26,Roosevelt,New Mexico,35041,36,0 +2020-05-27,Roosevelt,New Mexico,35041,37,0 +2020-05-28,Roosevelt,New Mexico,35041,37,0 +2020-05-29,Roosevelt,New Mexico,35041,37,0 +2020-05-30,Roosevelt,New Mexico,35041,38,0 +2020-05-31,Roosevelt,New Mexico,35041,40,0 +2020-06-01,Roosevelt,New Mexico,35041,42,0 +2020-06-02,Roosevelt,New Mexico,35041,41,0 +2020-06-03,Roosevelt,New Mexico,35041,41,0 +2020-06-04,Roosevelt,New Mexico,35041,42,0 +2020-06-05,Roosevelt,New Mexico,35041,42,0 +2020-06-06,Roosevelt,New Mexico,35041,42,0 +2020-06-07,Roosevelt,New Mexico,35041,42,0 +2020-06-08,Roosevelt,New Mexico,35041,45,0 +2020-06-09,Roosevelt,New Mexico,35041,45,0 +2020-06-10,Roosevelt,New Mexico,35041,46,0 +2020-06-11,Roosevelt,New Mexico,35041,51,0 +2020-06-12,Roosevelt,New Mexico,35041,53,0 +2020-06-13,Roosevelt,New Mexico,35041,53,0 +2020-06-14,Roosevelt,New Mexico,35041,53,0 +2020-06-15,Roosevelt,New Mexico,35041,53,1 +2020-06-16,Roosevelt,New Mexico,35041,53,1 +2020-06-17,Roosevelt,New Mexico,35041,53,1 +2020-06-18,Roosevelt,New Mexico,35041,54,1 +2020-06-19,Roosevelt,New Mexico,35041,54,1 +2020-06-20,Roosevelt,New Mexico,35041,53,1 +2020-06-21,Roosevelt,New Mexico,35041,53,1 +2020-06-22,Roosevelt,New Mexico,35041,54,1 +2020-06-23,Roosevelt,New Mexico,35041,53,1 +2020-06-24,Roosevelt,New Mexico,35041,54,1 +2020-06-25,Roosevelt,New Mexico,35041,55,1 +2020-06-26,Roosevelt,New Mexico,35041,55,1 +2020-06-27,Roosevelt,New Mexico,35041,55,1 +2020-06-28,Roosevelt,New Mexico,35041,57,1 +2020-06-29,Roosevelt,New Mexico,35041,57,1 +2020-06-30,Roosevelt,New Mexico,35041,59,1 +2020-07-01,Roosevelt,New Mexico,35041,59,1 +2020-07-02,Roosevelt,New Mexico,35041,62,1 +2020-07-03,Roosevelt,New Mexico,35041,68,1 +2020-07-04,Roosevelt,New Mexico,35041,70,1 +2020-07-05,Roosevelt,New Mexico,35041,71,1 +2020-07-06,Roosevelt,New Mexico,35041,72,1 +2020-07-07,Roosevelt,New Mexico,35041,74,1 +2020-07-08,Roosevelt,New Mexico,35041,74,1 +2020-07-09,Roosevelt,New Mexico,35041,76,1 +2020-03-14,Sandoval,New Mexico,35043,2,0 +2020-03-15,Sandoval,New Mexico,35043,2,0 +2020-03-16,Sandoval,New Mexico,35043,2,0 +2020-03-17,Sandoval,New Mexico,35043,2,0 +2020-03-18,Sandoval,New Mexico,35043,2,0 +2020-03-19,Sandoval,New Mexico,35043,4,0 +2020-03-20,Sandoval,New Mexico,35043,6,0 +2020-03-21,Sandoval,New Mexico,35043,7,0 +2020-03-22,Sandoval,New Mexico,35043,7,0 +2020-03-23,Sandoval,New Mexico,35043,7,0 +2020-03-24,Sandoval,New Mexico,35043,7,0 +2020-03-25,Sandoval,New Mexico,35043,8,0 +2020-03-26,Sandoval,New Mexico,35043,10,0 +2020-03-27,Sandoval,New Mexico,35043,15,0 +2020-03-28,Sandoval,New Mexico,35043,15,0 +2020-03-29,Sandoval,New Mexico,35043,18,0 +2020-03-30,Sandoval,New Mexico,35043,23,0 +2020-03-31,Sandoval,New Mexico,35043,29,0 +2020-04-01,Sandoval,New Mexico,35043,32,1 +2020-04-02,Sandoval,New Mexico,35043,40,1 +2020-04-03,Sandoval,New Mexico,35043,66,2 +2020-04-04,Sandoval,New Mexico,35043,69,2 +2020-04-05,Sandoval,New Mexico,35043,103,2 +2020-04-06,Sandoval,New Mexico,35043,114,2 +2020-04-07,Sandoval,New Mexico,35043,128,2 +2020-04-08,Sandoval,New Mexico,35043,143,2 +2020-04-09,Sandoval,New Mexico,35043,174,2 +2020-04-10,Sandoval,New Mexico,35043,177,3 +2020-04-11,Sandoval,New Mexico,35043,199,3 +2020-04-12,Sandoval,New Mexico,35043,235,3 +2020-04-13,Sandoval,New Mexico,35043,244,3 +2020-04-14,Sandoval,New Mexico,35043,253,4 +2020-04-15,Sandoval,New Mexico,35043,262,4 +2020-04-16,Sandoval,New Mexico,35043,293,5 +2020-04-17,Sandoval,New Mexico,35043,301,6 +2020-04-18,Sandoval,New Mexico,35043,311,6 +2020-04-19,Sandoval,New Mexico,35043,315,6 +2020-04-20,Sandoval,New Mexico,35043,317,6 +2020-04-21,Sandoval,New Mexico,35043,322,6 +2020-04-22,Sandoval,New Mexico,35043,341,6 +2020-04-23,Sandoval,New Mexico,35043,345,8 +2020-04-24,Sandoval,New Mexico,35043,357,8 +2020-04-25,Sandoval,New Mexico,35043,365,10 +2020-04-26,Sandoval,New Mexico,35043,374,11 +2020-04-27,Sandoval,New Mexico,35043,378,11 +2020-04-28,Sandoval,New Mexico,35043,383,11 +2020-04-29,Sandoval,New Mexico,35043,385,13 +2020-04-30,Sandoval,New Mexico,35043,389,13 +2020-05-01,Sandoval,New Mexico,35043,396,15 +2020-05-02,Sandoval,New Mexico,35043,410,17 +2020-05-03,Sandoval,New Mexico,35043,416,19 +2020-05-04,Sandoval,New Mexico,35043,421,19 +2020-05-05,Sandoval,New Mexico,35043,426,20 +2020-05-06,Sandoval,New Mexico,35043,432,20 +2020-05-07,Sandoval,New Mexico,35043,439,20 +2020-05-08,Sandoval,New Mexico,35043,451,20 +2020-05-09,Sandoval,New Mexico,35043,452,20 +2020-05-10,Sandoval,New Mexico,35043,458,21 +2020-05-11,Sandoval,New Mexico,35043,467,21 +2020-05-12,Sandoval,New Mexico,35043,474,21 +2020-05-13,Sandoval,New Mexico,35043,477,22 +2020-05-14,Sandoval,New Mexico,35043,479,22 +2020-05-15,Sandoval,New Mexico,35043,483,22 +2020-05-16,Sandoval,New Mexico,35043,488,23 +2020-05-17,Sandoval,New Mexico,35043,493,24 +2020-05-18,Sandoval,New Mexico,35043,495,24 +2020-05-19,Sandoval,New Mexico,35043,498,24 +2020-05-20,Sandoval,New Mexico,35043,520,24 +2020-05-21,Sandoval,New Mexico,35043,528,24 +2020-05-22,Sandoval,New Mexico,35043,529,24 +2020-05-23,Sandoval,New Mexico,35043,534,26 +2020-05-24,Sandoval,New Mexico,35043,543,26 +2020-05-25,Sandoval,New Mexico,35043,544,26 +2020-05-26,Sandoval,New Mexico,35043,546,26 +2020-05-27,Sandoval,New Mexico,35043,551,26 +2020-05-28,Sandoval,New Mexico,35043,556,26 +2020-05-29,Sandoval,New Mexico,35043,559,27 +2020-05-30,Sandoval,New Mexico,35043,566,27 +2020-05-31,Sandoval,New Mexico,35043,568,27 +2020-06-01,Sandoval,New Mexico,35043,568,27 +2020-06-02,Sandoval,New Mexico,35043,572,27 +2020-06-03,Sandoval,New Mexico,35043,575,27 +2020-06-04,Sandoval,New Mexico,35043,578,27 +2020-06-05,Sandoval,New Mexico,35043,579,27 +2020-06-06,Sandoval,New Mexico,35043,585,27 +2020-06-07,Sandoval,New Mexico,35043,597,27 +2020-06-08,Sandoval,New Mexico,35043,600,27 +2020-06-09,Sandoval,New Mexico,35043,604,27 +2020-06-10,Sandoval,New Mexico,35043,604,27 +2020-06-11,Sandoval,New Mexico,35043,607,27 +2020-06-12,Sandoval,New Mexico,35043,609,27 +2020-06-13,Sandoval,New Mexico,35043,616,27 +2020-06-14,Sandoval,New Mexico,35043,630,27 +2020-06-15,Sandoval,New Mexico,35043,634,27 +2020-06-16,Sandoval,New Mexico,35043,642,27 +2020-06-17,Sandoval,New Mexico,35043,651,27 +2020-06-18,Sandoval,New Mexico,35043,656,28 +2020-06-19,Sandoval,New Mexico,35043,662,28 +2020-06-20,Sandoval,New Mexico,35043,672,28 +2020-06-21,Sandoval,New Mexico,35043,675,28 +2020-06-22,Sandoval,New Mexico,35043,681,28 +2020-06-23,Sandoval,New Mexico,35043,685,29 +2020-06-24,Sandoval,New Mexico,35043,693,29 +2020-06-25,Sandoval,New Mexico,35043,701,29 +2020-06-26,Sandoval,New Mexico,35043,706,29 +2020-06-27,Sandoval,New Mexico,35043,713,29 +2020-06-28,Sandoval,New Mexico,35043,716,29 +2020-06-29,Sandoval,New Mexico,35043,720,29 +2020-06-30,Sandoval,New Mexico,35043,728,29 +2020-07-01,Sandoval,New Mexico,35043,731,29 +2020-07-02,Sandoval,New Mexico,35043,740,29 +2020-07-03,Sandoval,New Mexico,35043,753,29 +2020-07-04,Sandoval,New Mexico,35043,761,29 +2020-07-05,Sandoval,New Mexico,35043,761,29 +2020-07-06,Sandoval,New Mexico,35043,769,30 +2020-07-07,Sandoval,New Mexico,35043,776,30 +2020-07-08,Sandoval,New Mexico,35043,793,30 +2020-07-09,Sandoval,New Mexico,35043,802,30 +2020-03-22,San Juan,New Mexico,35045,1,0 +2020-03-23,San Juan,New Mexico,35045,3,0 +2020-03-24,San Juan,New Mexico,35045,7,0 +2020-03-25,San Juan,New Mexico,35045,8,0 +2020-03-26,San Juan,New Mexico,35045,14,0 +2020-03-27,San Juan,New Mexico,35045,17,0 +2020-03-28,San Juan,New Mexico,35045,18,0 +2020-03-29,San Juan,New Mexico,35045,22,0 +2020-03-30,San Juan,New Mexico,35045,27,0 +2020-03-31,San Juan,New Mexico,35045,32,0 +2020-04-01,San Juan,New Mexico,35045,37,0 +2020-04-02,San Juan,New Mexico,35045,41,0 +2020-04-03,San Juan,New Mexico,35045,50,0 +2020-04-04,San Juan,New Mexico,35045,58,0 +2020-04-05,San Juan,New Mexico,35045,58,0 +2020-04-06,San Juan,New Mexico,35045,83,0 +2020-04-07,San Juan,New Mexico,35045,107,0 +2020-04-08,San Juan,New Mexico,35045,116,0 +2020-04-09,San Juan,New Mexico,35045,126,0 +2020-04-10,San Juan,New Mexico,35045,142,0 +2020-04-11,San Juan,New Mexico,35045,149,1 +2020-04-12,San Juan,New Mexico,35045,151,2 +2020-04-13,San Juan,New Mexico,35045,173,7 +2020-04-14,San Juan,New Mexico,35045,192,10 +2020-04-15,San Juan,New Mexico,35045,200,10 +2020-04-16,San Juan,New Mexico,35045,229,13 +2020-04-17,San Juan,New Mexico,35045,243,14 +2020-04-18,San Juan,New Mexico,35045,260,14 +2020-04-19,San Juan,New Mexico,35045,275,15 +2020-04-20,San Juan,New Mexico,35045,293,17 +2020-04-21,San Juan,New Mexico,35045,314,17 +2020-04-22,San Juan,New Mexico,35045,339,22 +2020-04-23,San Juan,New Mexico,35045,390,24 +2020-04-24,San Juan,New Mexico,35045,420,27 +2020-04-25,San Juan,New Mexico,35045,435,33 +2020-04-26,San Juan,New Mexico,35045,442,35 +2020-04-27,San Juan,New Mexico,35045,463,35 +2020-04-28,San Juan,New Mexico,35045,508,36 +2020-04-29,San Juan,New Mexico,35045,576,38 +2020-04-30,San Juan,New Mexico,35045,621,45 +2020-05-01,San Juan,New Mexico,35045,637,49 +2020-05-02,San Juan,New Mexico,35045,710,51 +2020-05-03,San Juan,New Mexico,35045,736,57 +2020-05-04,San Juan,New Mexico,35045,781,57 +2020-05-05,San Juan,New Mexico,35045,806,62 +2020-05-06,San Juan,New Mexico,35045,844,62 +2020-05-07,San Juan,New Mexico,35045,921,62 +2020-05-08,San Juan,New Mexico,35045,989,64 +2020-05-09,San Juan,New Mexico,35045,1015,69 +2020-05-10,San Juan,New Mexico,35045,1034,71 +2020-05-11,San Juan,New Mexico,35045,1107,71 +2020-05-12,San Juan,New Mexico,35045,1149,74 +2020-05-13,San Juan,New Mexico,35045,1203,80 +2020-05-14,San Juan,New Mexico,35045,1237,81 +2020-05-15,San Juan,New Mexico,35045,1274,84 +2020-05-16,San Juan,New Mexico,35045,1316,85 +2020-05-17,San Juan,New Mexico,35045,1344,86 +2020-05-18,San Juan,New Mexico,35045,1376,87 +2020-05-19,San Juan,New Mexico,35045,1408,92 +2020-05-20,San Juan,New Mexico,35045,1432,96 +2020-05-21,San Juan,New Mexico,35045,1451,99 +2020-05-22,San Juan,New Mexico,35045,1490,103 +2020-05-23,San Juan,New Mexico,35045,1533,105 +2020-05-24,San Juan,New Mexico,35045,1558,108 +2020-05-25,San Juan,New Mexico,35045,1581,110 +2020-05-26,San Juan,New Mexico,35045,1605,112 +2020-05-27,San Juan,New Mexico,35045,1642,113 +2020-05-28,San Juan,New Mexico,35045,1662,114 +2020-05-29,San Juan,New Mexico,35045,1692,115 +2020-05-30,San Juan,New Mexico,35045,1715,117 +2020-05-31,San Juan,New Mexico,35045,1733,121 +2020-06-01,San Juan,New Mexico,35045,1771,123 +2020-06-02,San Juan,New Mexico,35045,1813,124 +2020-06-03,San Juan,New Mexico,35045,1821,127 +2020-06-04,San Juan,New Mexico,35045,1842,129 +2020-06-05,San Juan,New Mexico,35045,1893,130 +2020-06-06,San Juan,New Mexico,35045,1923,131 +2020-06-07,San Juan,New Mexico,35045,1966,132 +2020-06-08,San Juan,New Mexico,35045,1990,134 +2020-06-09,San Juan,New Mexico,35045,1999,135 +2020-06-10,San Juan,New Mexico,35045,2034,137 +2020-06-11,San Juan,New Mexico,35045,2043,144 +2020-06-12,San Juan,New Mexico,35045,2081,145 +2020-06-13,San Juan,New Mexico,35045,2083,147 +2020-06-14,San Juan,New Mexico,35045,2098,147 +2020-06-15,San Juan,New Mexico,35045,2123,148 +2020-06-16,San Juan,New Mexico,35045,2129,151 +2020-06-17,San Juan,New Mexico,35045,2140,152 +2020-06-18,San Juan,New Mexico,35045,2148,153 +2020-06-19,San Juan,New Mexico,35045,2165,154 +2020-06-20,San Juan,New Mexico,35045,2173,154 +2020-06-21,San Juan,New Mexico,35045,2183,155 +2020-06-22,San Juan,New Mexico,35045,2194,155 +2020-06-23,San Juan,New Mexico,35045,2235,156 +2020-06-24,San Juan,New Mexico,35045,2250,157 +2020-06-25,San Juan,New Mexico,35045,2268,160 +2020-06-26,San Juan,New Mexico,35045,2276,160 +2020-06-27,San Juan,New Mexico,35045,2357,161 +2020-06-28,San Juan,New Mexico,35045,2392,161 +2020-06-29,San Juan,New Mexico,35045,2405,162 +2020-06-30,San Juan,New Mexico,35045,2422,163 +2020-07-01,San Juan,New Mexico,35045,2460,163 +2020-07-02,San Juan,New Mexico,35045,2472,163 +2020-07-03,San Juan,New Mexico,35045,2494,164 +2020-07-04,San Juan,New Mexico,35045,2515,164 +2020-07-05,San Juan,New Mexico,35045,2542,164 +2020-07-06,San Juan,New Mexico,35045,2560,164 +2020-07-07,San Juan,New Mexico,35045,2594,165 +2020-07-08,San Juan,New Mexico,35045,2612,166 +2020-07-09,San Juan,New Mexico,35045,2628,167 +2020-03-19,San Miguel,New Mexico,35047,1,0 +2020-03-20,San Miguel,New Mexico,35047,1,0 +2020-03-21,San Miguel,New Mexico,35047,1,0 +2020-03-22,San Miguel,New Mexico,35047,1,0 +2020-03-23,San Miguel,New Mexico,35047,1,0 +2020-03-24,San Miguel,New Mexico,35047,1,0 +2020-03-25,San Miguel,New Mexico,35047,1,0 +2020-03-26,San Miguel,New Mexico,35047,1,0 +2020-03-27,San Miguel,New Mexico,35047,1,0 +2020-03-28,San Miguel,New Mexico,35047,1,0 +2020-03-29,San Miguel,New Mexico,35047,1,0 +2020-03-30,San Miguel,New Mexico,35047,1,0 +2020-03-31,San Miguel,New Mexico,35047,1,0 +2020-04-01,San Miguel,New Mexico,35047,1,0 +2020-04-02,San Miguel,New Mexico,35047,1,0 +2020-04-03,San Miguel,New Mexico,35047,1,0 +2020-04-04,San Miguel,New Mexico,35047,1,0 +2020-04-05,San Miguel,New Mexico,35047,1,0 +2020-04-06,San Miguel,New Mexico,35047,1,0 +2020-04-07,San Miguel,New Mexico,35047,1,0 +2020-04-08,San Miguel,New Mexico,35047,1,0 +2020-04-09,San Miguel,New Mexico,35047,1,0 +2020-04-10,San Miguel,New Mexico,35047,1,0 +2020-04-11,San Miguel,New Mexico,35047,1,0 +2020-04-12,San Miguel,New Mexico,35047,1,0 +2020-04-13,San Miguel,New Mexico,35047,1,0 +2020-04-14,San Miguel,New Mexico,35047,2,0 +2020-04-15,San Miguel,New Mexico,35047,2,0 +2020-04-16,San Miguel,New Mexico,35047,2,0 +2020-04-17,San Miguel,New Mexico,35047,2,0 +2020-04-18,San Miguel,New Mexico,35047,2,0 +2020-04-19,San Miguel,New Mexico,35047,2,0 +2020-04-20,San Miguel,New Mexico,35047,2,0 +2020-04-21,San Miguel,New Mexico,35047,2,0 +2020-04-22,San Miguel,New Mexico,35047,2,0 +2020-04-23,San Miguel,New Mexico,35047,2,0 +2020-04-24,San Miguel,New Mexico,35047,2,0 +2020-04-25,San Miguel,New Mexico,35047,2,0 +2020-04-26,San Miguel,New Mexico,35047,2,0 +2020-04-27,San Miguel,New Mexico,35047,2,0 +2020-04-28,San Miguel,New Mexico,35047,2,0 +2020-04-29,San Miguel,New Mexico,35047,2,0 +2020-04-30,San Miguel,New Mexico,35047,2,0 +2020-05-01,San Miguel,New Mexico,35047,2,0 +2020-05-02,San Miguel,New Mexico,35047,2,0 +2020-05-03,San Miguel,New Mexico,35047,2,0 +2020-05-04,San Miguel,New Mexico,35047,2,0 +2020-05-05,San Miguel,New Mexico,35047,3,0 +2020-05-06,San Miguel,New Mexico,35047,4,0 +2020-05-07,San Miguel,New Mexico,35047,4,0 +2020-05-08,San Miguel,New Mexico,35047,5,0 +2020-05-09,San Miguel,New Mexico,35047,6,0 +2020-05-10,San Miguel,New Mexico,35047,6,0 +2020-05-11,San Miguel,New Mexico,35047,7,0 +2020-05-12,San Miguel,New Mexico,35047,7,0 +2020-05-13,San Miguel,New Mexico,35047,7,0 +2020-05-14,San Miguel,New Mexico,35047,7,0 +2020-05-15,San Miguel,New Mexico,35047,9,0 +2020-05-16,San Miguel,New Mexico,35047,10,0 +2020-05-17,San Miguel,New Mexico,35047,10,0 +2020-05-18,San Miguel,New Mexico,35047,10,0 +2020-05-19,San Miguel,New Mexico,35047,10,0 +2020-05-20,San Miguel,New Mexico,35047,10,0 +2020-05-21,San Miguel,New Mexico,35047,10,0 +2020-05-22,San Miguel,New Mexico,35047,10,0 +2020-05-23,San Miguel,New Mexico,35047,11,0 +2020-05-24,San Miguel,New Mexico,35047,11,0 +2020-05-25,San Miguel,New Mexico,35047,15,0 +2020-05-26,San Miguel,New Mexico,35047,15,0 +2020-05-27,San Miguel,New Mexico,35047,14,0 +2020-05-28,San Miguel,New Mexico,35047,14,0 +2020-05-29,San Miguel,New Mexico,35047,15,0 +2020-05-30,San Miguel,New Mexico,35047,15,0 +2020-05-31,San Miguel,New Mexico,35047,15,0 +2020-06-01,San Miguel,New Mexico,35047,15,0 +2020-06-02,San Miguel,New Mexico,35047,15,0 +2020-06-03,San Miguel,New Mexico,35047,15,0 +2020-06-04,San Miguel,New Mexico,35047,15,0 +2020-06-05,San Miguel,New Mexico,35047,15,0 +2020-06-06,San Miguel,New Mexico,35047,15,0 +2020-06-07,San Miguel,New Mexico,35047,15,0 +2020-06-08,San Miguel,New Mexico,35047,16,0 +2020-06-09,San Miguel,New Mexico,35047,16,0 +2020-06-10,San Miguel,New Mexico,35047,16,0 +2020-06-11,San Miguel,New Mexico,35047,16,0 +2020-06-12,San Miguel,New Mexico,35047,16,0 +2020-06-13,San Miguel,New Mexico,35047,16,0 +2020-06-14,San Miguel,New Mexico,35047,16,0 +2020-06-15,San Miguel,New Mexico,35047,16,0 +2020-06-16,San Miguel,New Mexico,35047,16,0 +2020-06-17,San Miguel,New Mexico,35047,16,0 +2020-06-18,San Miguel,New Mexico,35047,18,0 +2020-06-19,San Miguel,New Mexico,35047,18,0 +2020-06-20,San Miguel,New Mexico,35047,18,0 +2020-06-21,San Miguel,New Mexico,35047,18,0 +2020-06-22,San Miguel,New Mexico,35047,18,0 +2020-06-23,San Miguel,New Mexico,35047,18,0 +2020-06-24,San Miguel,New Mexico,35047,18,0 +2020-06-25,San Miguel,New Mexico,35047,18,0 +2020-06-26,San Miguel,New Mexico,35047,20,0 +2020-06-27,San Miguel,New Mexico,35047,20,0 +2020-06-28,San Miguel,New Mexico,35047,21,0 +2020-06-29,San Miguel,New Mexico,35047,21,0 +2020-06-30,San Miguel,New Mexico,35047,21,0 +2020-07-01,San Miguel,New Mexico,35047,21,0 +2020-07-02,San Miguel,New Mexico,35047,22,0 +2020-07-03,San Miguel,New Mexico,35047,22,0 +2020-07-04,San Miguel,New Mexico,35047,22,0 +2020-07-05,San Miguel,New Mexico,35047,22,0 +2020-07-06,San Miguel,New Mexico,35047,22,0 +2020-07-07,San Miguel,New Mexico,35047,23,0 +2020-07-08,San Miguel,New Mexico,35047,23,0 +2020-07-09,San Miguel,New Mexico,35047,23,0 +2020-03-11,Santa Fe,New Mexico,35049,1,0 +2020-03-12,Santa Fe,New Mexico,35049,2,0 +2020-03-13,Santa Fe,New Mexico,35049,3,0 +2020-03-14,Santa Fe,New Mexico,35049,3,0 +2020-03-15,Santa Fe,New Mexico,35049,3,0 +2020-03-16,Santa Fe,New Mexico,35049,3,0 +2020-03-17,Santa Fe,New Mexico,35049,4,0 +2020-03-18,Santa Fe,New Mexico,35049,6,0 +2020-03-19,Santa Fe,New Mexico,35049,7,0 +2020-03-20,Santa Fe,New Mexico,35049,7,0 +2020-03-21,Santa Fe,New Mexico,35049,8,0 +2020-03-22,Santa Fe,New Mexico,35049,10,0 +2020-03-23,Santa Fe,New Mexico,35049,12,0 +2020-03-24,Santa Fe,New Mexico,35049,14,0 +2020-03-25,Santa Fe,New Mexico,35049,17,0 +2020-03-26,Santa Fe,New Mexico,35049,22,0 +2020-03-27,Santa Fe,New Mexico,35049,29,0 +2020-03-28,Santa Fe,New Mexico,35049,30,0 +2020-03-29,Santa Fe,New Mexico,35049,34,0 +2020-03-30,Santa Fe,New Mexico,35049,38,0 +2020-03-31,Santa Fe,New Mexico,35049,42,0 +2020-04-01,Santa Fe,New Mexico,35049,48,0 +2020-04-02,Santa Fe,New Mexico,35049,48,0 +2020-04-03,Santa Fe,New Mexico,35049,52,0 +2020-04-04,Santa Fe,New Mexico,35049,58,0 +2020-04-05,Santa Fe,New Mexico,35049,62,0 +2020-04-06,Santa Fe,New Mexico,35049,64,0 +2020-04-07,Santa Fe,New Mexico,35049,66,0 +2020-04-08,Santa Fe,New Mexico,35049,68,0 +2020-04-09,Santa Fe,New Mexico,35049,70,0 +2020-04-10,Santa Fe,New Mexico,35049,72,0 +2020-04-11,Santa Fe,New Mexico,35049,74,0 +2020-04-12,Santa Fe,New Mexico,35049,75,0 +2020-04-13,Santa Fe,New Mexico,35049,76,0 +2020-04-14,Santa Fe,New Mexico,35049,76,0 +2020-04-15,Santa Fe,New Mexico,35049,78,0 +2020-04-16,Santa Fe,New Mexico,35049,79,0 +2020-04-17,Santa Fe,New Mexico,35049,80,0 +2020-04-18,Santa Fe,New Mexico,35049,82,0 +2020-04-19,Santa Fe,New Mexico,35049,83,0 +2020-04-20,Santa Fe,New Mexico,35049,86,0 +2020-04-21,Santa Fe,New Mexico,35049,88,0 +2020-04-22,Santa Fe,New Mexico,35049,93,0 +2020-04-23,Santa Fe,New Mexico,35049,96,0 +2020-04-24,Santa Fe,New Mexico,35049,96,0 +2020-04-25,Santa Fe,New Mexico,35049,96,0 +2020-04-26,Santa Fe,New Mexico,35049,96,0 +2020-04-27,Santa Fe,New Mexico,35049,96,0 +2020-04-28,Santa Fe,New Mexico,35049,98,0 +2020-04-29,Santa Fe,New Mexico,35049,98,0 +2020-04-30,Santa Fe,New Mexico,35049,100,0 +2020-05-01,Santa Fe,New Mexico,35049,100,0 +2020-05-02,Santa Fe,New Mexico,35049,107,0 +2020-05-03,Santa Fe,New Mexico,35049,107,0 +2020-05-04,Santa Fe,New Mexico,35049,108,0 +2020-05-05,Santa Fe,New Mexico,35049,108,0 +2020-05-06,Santa Fe,New Mexico,35049,110,1 +2020-05-07,Santa Fe,New Mexico,35049,110,1 +2020-05-08,Santa Fe,New Mexico,35049,110,1 +2020-05-09,Santa Fe,New Mexico,35049,110,1 +2020-05-10,Santa Fe,New Mexico,35049,111,1 +2020-05-11,Santa Fe,New Mexico,35049,112,1 +2020-05-12,Santa Fe,New Mexico,35049,112,2 +2020-05-13,Santa Fe,New Mexico,35049,113,2 +2020-05-14,Santa Fe,New Mexico,35049,113,3 +2020-05-15,Santa Fe,New Mexico,35049,114,3 +2020-05-16,Santa Fe,New Mexico,35049,122,3 +2020-05-17,Santa Fe,New Mexico,35049,123,3 +2020-05-18,Santa Fe,New Mexico,35049,124,3 +2020-05-19,Santa Fe,New Mexico,35049,126,3 +2020-05-20,Santa Fe,New Mexico,35049,127,3 +2020-05-21,Santa Fe,New Mexico,35049,127,3 +2020-05-22,Santa Fe,New Mexico,35049,129,3 +2020-05-23,Santa Fe,New Mexico,35049,130,3 +2020-05-24,Santa Fe,New Mexico,35049,132,3 +2020-05-25,Santa Fe,New Mexico,35049,133,3 +2020-05-26,Santa Fe,New Mexico,35049,133,3 +2020-05-27,Santa Fe,New Mexico,35049,137,3 +2020-05-28,Santa Fe,New Mexico,35049,138,3 +2020-05-29,Santa Fe,New Mexico,35049,137,3 +2020-05-30,Santa Fe,New Mexico,35049,140,3 +2020-05-31,Santa Fe,New Mexico,35049,142,3 +2020-06-01,Santa Fe,New Mexico,35049,144,3 +2020-06-02,Santa Fe,New Mexico,35049,149,3 +2020-06-03,Santa Fe,New Mexico,35049,151,3 +2020-06-04,Santa Fe,New Mexico,35049,151,3 +2020-06-05,Santa Fe,New Mexico,35049,151,3 +2020-06-06,Santa Fe,New Mexico,35049,151,3 +2020-06-07,Santa Fe,New Mexico,35049,156,3 +2020-06-08,Santa Fe,New Mexico,35049,156,3 +2020-06-09,Santa Fe,New Mexico,35049,159,3 +2020-06-10,Santa Fe,New Mexico,35049,161,3 +2020-06-11,Santa Fe,New Mexico,35049,162,3 +2020-06-12,Santa Fe,New Mexico,35049,166,3 +2020-06-13,Santa Fe,New Mexico,35049,171,3 +2020-06-14,Santa Fe,New Mexico,35049,171,3 +2020-06-15,Santa Fe,New Mexico,35049,174,3 +2020-06-16,Santa Fe,New Mexico,35049,179,3 +2020-06-17,Santa Fe,New Mexico,35049,183,3 +2020-06-18,Santa Fe,New Mexico,35049,185,3 +2020-06-19,Santa Fe,New Mexico,35049,189,3 +2020-06-20,Santa Fe,New Mexico,35049,194,3 +2020-06-21,Santa Fe,New Mexico,35049,197,3 +2020-06-22,Santa Fe,New Mexico,35049,202,3 +2020-06-23,Santa Fe,New Mexico,35049,203,3 +2020-06-24,Santa Fe,New Mexico,35049,204,3 +2020-06-25,Santa Fe,New Mexico,35049,207,3 +2020-06-26,Santa Fe,New Mexico,35049,211,3 +2020-06-27,Santa Fe,New Mexico,35049,219,3 +2020-06-28,Santa Fe,New Mexico,35049,229,3 +2020-06-29,Santa Fe,New Mexico,35049,235,3 +2020-06-30,Santa Fe,New Mexico,35049,238,3 +2020-07-01,Santa Fe,New Mexico,35049,241,3 +2020-07-02,Santa Fe,New Mexico,35049,247,3 +2020-07-03,Santa Fe,New Mexico,35049,254,3 +2020-07-04,Santa Fe,New Mexico,35049,260,3 +2020-07-05,Santa Fe,New Mexico,35049,268,3 +2020-07-06,Santa Fe,New Mexico,35049,276,3 +2020-07-07,Santa Fe,New Mexico,35049,284,3 +2020-07-08,Santa Fe,New Mexico,35049,294,3 +2020-07-09,Santa Fe,New Mexico,35049,303,3 +2020-04-29,Sierra,New Mexico,35051,1,0 +2020-04-30,Sierra,New Mexico,35051,1,0 +2020-05-01,Sierra,New Mexico,35051,1,0 +2020-05-02,Sierra,New Mexico,35051,1,0 +2020-05-03,Sierra,New Mexico,35051,1,0 +2020-05-04,Sierra,New Mexico,35051,1,0 +2020-05-05,Sierra,New Mexico,35051,1,0 +2020-05-06,Sierra,New Mexico,35051,1,0 +2020-05-07,Sierra,New Mexico,35051,1,0 +2020-05-08,Sierra,New Mexico,35051,1,0 +2020-05-09,Sierra,New Mexico,35051,1,0 +2020-05-10,Sierra,New Mexico,35051,1,0 +2020-05-11,Sierra,New Mexico,35051,1,0 +2020-05-12,Sierra,New Mexico,35051,1,0 +2020-05-13,Sierra,New Mexico,35051,1,0 +2020-05-14,Sierra,New Mexico,35051,1,0 +2020-05-15,Sierra,New Mexico,35051,1,0 +2020-05-16,Sierra,New Mexico,35051,1,0 +2020-05-17,Sierra,New Mexico,35051,1,0 +2020-05-18,Sierra,New Mexico,35051,1,0 +2020-05-19,Sierra,New Mexico,35051,1,0 +2020-05-20,Sierra,New Mexico,35051,1,0 +2020-05-21,Sierra,New Mexico,35051,1,0 +2020-05-22,Sierra,New Mexico,35051,1,0 +2020-05-23,Sierra,New Mexico,35051,1,0 +2020-05-24,Sierra,New Mexico,35051,1,0 +2020-05-25,Sierra,New Mexico,35051,1,0 +2020-05-26,Sierra,New Mexico,35051,1,0 +2020-05-27,Sierra,New Mexico,35051,1,0 +2020-05-28,Sierra,New Mexico,35051,1,0 +2020-05-29,Sierra,New Mexico,35051,1,0 +2020-05-30,Sierra,New Mexico,35051,1,0 +2020-05-31,Sierra,New Mexico,35051,1,0 +2020-06-01,Sierra,New Mexico,35051,1,0 +2020-06-02,Sierra,New Mexico,35051,1,0 +2020-06-03,Sierra,New Mexico,35051,1,0 +2020-06-04,Sierra,New Mexico,35051,1,0 +2020-06-05,Sierra,New Mexico,35051,1,0 +2020-06-06,Sierra,New Mexico,35051,1,0 +2020-06-07,Sierra,New Mexico,35051,1,0 +2020-06-08,Sierra,New Mexico,35051,1,0 +2020-06-09,Sierra,New Mexico,35051,1,0 +2020-06-10,Sierra,New Mexico,35051,3,0 +2020-06-11,Sierra,New Mexico,35051,3,0 +2020-06-12,Sierra,New Mexico,35051,3,0 +2020-06-13,Sierra,New Mexico,35051,4,0 +2020-06-14,Sierra,New Mexico,35051,4,0 +2020-06-15,Sierra,New Mexico,35051,4,0 +2020-06-16,Sierra,New Mexico,35051,4,0 +2020-06-17,Sierra,New Mexico,35051,4,0 +2020-06-18,Sierra,New Mexico,35051,5,0 +2020-06-19,Sierra,New Mexico,35051,5,0 +2020-06-20,Sierra,New Mexico,35051,5,0 +2020-06-21,Sierra,New Mexico,35051,5,0 +2020-06-22,Sierra,New Mexico,35051,7,0 +2020-06-23,Sierra,New Mexico,35051,7,0 +2020-06-24,Sierra,New Mexico,35051,7,0 +2020-06-25,Sierra,New Mexico,35051,9,0 +2020-06-26,Sierra,New Mexico,35051,11,0 +2020-06-27,Sierra,New Mexico,35051,12,0 +2020-06-28,Sierra,New Mexico,35051,12,0 +2020-06-29,Sierra,New Mexico,35051,12,0 +2020-06-30,Sierra,New Mexico,35051,11,0 +2020-07-01,Sierra,New Mexico,35051,12,0 +2020-07-02,Sierra,New Mexico,35051,13,0 +2020-07-03,Sierra,New Mexico,35051,13,0 +2020-07-04,Sierra,New Mexico,35051,14,0 +2020-07-05,Sierra,New Mexico,35051,14,0 +2020-07-06,Sierra,New Mexico,35051,14,0 +2020-07-07,Sierra,New Mexico,35051,14,0 +2020-07-08,Sierra,New Mexico,35051,14,0 +2020-07-09,Sierra,New Mexico,35051,14,0 +2020-03-11,Socorro,New Mexico,35053,2,0 +2020-03-12,Socorro,New Mexico,35053,2,0 +2020-03-13,Socorro,New Mexico,35053,2,0 +2020-03-14,Socorro,New Mexico,35053,2,0 +2020-03-15,Socorro,New Mexico,35053,2,0 +2020-03-16,Socorro,New Mexico,35053,2,0 +2020-03-17,Socorro,New Mexico,35053,2,0 +2020-03-18,Socorro,New Mexico,35053,2,0 +2020-03-19,Socorro,New Mexico,35053,2,0 +2020-03-20,Socorro,New Mexico,35053,2,0 +2020-03-21,Socorro,New Mexico,35053,2,0 +2020-03-22,Socorro,New Mexico,35053,2,0 +2020-03-23,Socorro,New Mexico,35053,2,0 +2020-03-24,Socorro,New Mexico,35053,2,0 +2020-03-25,Socorro,New Mexico,35053,2,0 +2020-03-26,Socorro,New Mexico,35053,2,0 +2020-03-27,Socorro,New Mexico,35053,2,0 +2020-03-28,Socorro,New Mexico,35053,2,0 +2020-03-29,Socorro,New Mexico,35053,2,0 +2020-03-30,Socorro,New Mexico,35053,3,0 +2020-03-31,Socorro,New Mexico,35053,3,0 +2020-04-01,Socorro,New Mexico,35053,3,0 +2020-04-02,Socorro,New Mexico,35053,4,0 +2020-04-03,Socorro,New Mexico,35053,4,0 +2020-04-04,Socorro,New Mexico,35053,4,0 +2020-04-05,Socorro,New Mexico,35053,5,0 +2020-04-06,Socorro,New Mexico,35053,5,0 +2020-04-07,Socorro,New Mexico,35053,5,0 +2020-04-08,Socorro,New Mexico,35053,7,0 +2020-04-09,Socorro,New Mexico,35053,9,0 +2020-04-10,Socorro,New Mexico,35053,10,0 +2020-04-11,Socorro,New Mexico,35053,11,0 +2020-04-12,Socorro,New Mexico,35053,12,0 +2020-04-13,Socorro,New Mexico,35053,14,0 +2020-04-14,Socorro,New Mexico,35053,15,0 +2020-04-15,Socorro,New Mexico,35053,16,0 +2020-04-16,Socorro,New Mexico,35053,20,0 +2020-04-17,Socorro,New Mexico,35053,20,1 +2020-04-18,Socorro,New Mexico,35053,20,1 +2020-04-19,Socorro,New Mexico,35053,20,1 +2020-04-20,Socorro,New Mexico,35053,31,1 +2020-04-21,Socorro,New Mexico,35053,34,1 +2020-04-22,Socorro,New Mexico,35053,34,1 +2020-04-23,Socorro,New Mexico,35053,38,1 +2020-04-24,Socorro,New Mexico,35053,39,1 +2020-04-25,Socorro,New Mexico,35053,40,1 +2020-04-26,Socorro,New Mexico,35053,40,1 +2020-04-27,Socorro,New Mexico,35053,40,1 +2020-04-28,Socorro,New Mexico,35053,41,1 +2020-04-29,Socorro,New Mexico,35053,42,2 +2020-04-30,Socorro,New Mexico,35053,42,2 +2020-05-01,Socorro,New Mexico,35053,43,2 +2020-05-02,Socorro,New Mexico,35053,43,2 +2020-05-03,Socorro,New Mexico,35053,45,2 +2020-05-04,Socorro,New Mexico,35053,46,2 +2020-05-05,Socorro,New Mexico,35053,48,2 +2020-05-06,Socorro,New Mexico,35053,48,2 +2020-05-07,Socorro,New Mexico,35053,48,2 +2020-05-08,Socorro,New Mexico,35053,48,2 +2020-05-09,Socorro,New Mexico,35053,48,2 +2020-05-10,Socorro,New Mexico,35053,48,2 +2020-05-11,Socorro,New Mexico,35053,49,3 +2020-05-12,Socorro,New Mexico,35053,49,3 +2020-05-13,Socorro,New Mexico,35053,49,3 +2020-05-14,Socorro,New Mexico,35053,49,4 +2020-05-15,Socorro,New Mexico,35053,49,4 +2020-05-16,Socorro,New Mexico,35053,49,4 +2020-05-17,Socorro,New Mexico,35053,49,4 +2020-05-18,Socorro,New Mexico,35053,49,4 +2020-05-19,Socorro,New Mexico,35053,49,4 +2020-05-20,Socorro,New Mexico,35053,49,4 +2020-05-21,Socorro,New Mexico,35053,49,4 +2020-05-22,Socorro,New Mexico,35053,49,4 +2020-05-23,Socorro,New Mexico,35053,49,4 +2020-05-24,Socorro,New Mexico,35053,49,4 +2020-05-25,Socorro,New Mexico,35053,49,4 +2020-05-26,Socorro,New Mexico,35053,49,4 +2020-05-27,Socorro,New Mexico,35053,49,4 +2020-05-28,Socorro,New Mexico,35053,50,4 +2020-05-29,Socorro,New Mexico,35053,50,4 +2020-05-30,Socorro,New Mexico,35053,50,4 +2020-05-31,Socorro,New Mexico,35053,50,4 +2020-06-01,Socorro,New Mexico,35053,51,5 +2020-06-02,Socorro,New Mexico,35053,52,5 +2020-06-03,Socorro,New Mexico,35053,52,5 +2020-06-04,Socorro,New Mexico,35053,54,5 +2020-06-05,Socorro,New Mexico,35053,54,5 +2020-06-06,Socorro,New Mexico,35053,55,5 +2020-06-07,Socorro,New Mexico,35053,55,5 +2020-06-08,Socorro,New Mexico,35053,55,5 +2020-06-09,Socorro,New Mexico,35053,55,5 +2020-06-10,Socorro,New Mexico,35053,55,5 +2020-06-11,Socorro,New Mexico,35053,55,5 +2020-06-12,Socorro,New Mexico,35053,55,5 +2020-06-13,Socorro,New Mexico,35053,55,5 +2020-06-14,Socorro,New Mexico,35053,55,5 +2020-06-15,Socorro,New Mexico,35053,55,5 +2020-06-16,Socorro,New Mexico,35053,55,5 +2020-06-17,Socorro,New Mexico,35053,55,5 +2020-06-18,Socorro,New Mexico,35053,55,5 +2020-06-19,Socorro,New Mexico,35053,55,5 +2020-06-20,Socorro,New Mexico,35053,55,5 +2020-06-21,Socorro,New Mexico,35053,56,5 +2020-06-22,Socorro,New Mexico,35053,58,5 +2020-06-23,Socorro,New Mexico,35053,58,5 +2020-06-24,Socorro,New Mexico,35053,58,5 +2020-06-25,Socorro,New Mexico,35053,59,5 +2020-06-26,Socorro,New Mexico,35053,59,5 +2020-06-27,Socorro,New Mexico,35053,59,5 +2020-06-28,Socorro,New Mexico,35053,59,5 +2020-06-29,Socorro,New Mexico,35053,60,5 +2020-06-30,Socorro,New Mexico,35053,60,5 +2020-07-01,Socorro,New Mexico,35053,60,5 +2020-07-02,Socorro,New Mexico,35053,60,5 +2020-07-03,Socorro,New Mexico,35053,60,5 +2020-07-04,Socorro,New Mexico,35053,60,5 +2020-07-05,Socorro,New Mexico,35053,60,5 +2020-07-06,Socorro,New Mexico,35053,61,5 +2020-07-07,Socorro,New Mexico,35053,61,5 +2020-07-08,Socorro,New Mexico,35053,61,5 +2020-07-09,Socorro,New Mexico,35053,61,5 +2020-03-17,Taos,New Mexico,35055,1,0 +2020-03-18,Taos,New Mexico,35055,1,0 +2020-03-19,Taos,New Mexico,35055,1,0 +2020-03-20,Taos,New Mexico,35055,2,0 +2020-03-21,Taos,New Mexico,35055,3,0 +2020-03-22,Taos,New Mexico,35055,3,0 +2020-03-23,Taos,New Mexico,35055,3,0 +2020-03-24,Taos,New Mexico,35055,3,0 +2020-03-25,Taos,New Mexico,35055,3,0 +2020-03-26,Taos,New Mexico,35055,3,0 +2020-03-27,Taos,New Mexico,35055,8,0 +2020-03-28,Taos,New Mexico,35055,9,0 +2020-03-29,Taos,New Mexico,35055,9,0 +2020-03-30,Taos,New Mexico,35055,10,0 +2020-03-31,Taos,New Mexico,35055,11,0 +2020-04-01,Taos,New Mexico,35055,12,0 +2020-04-02,Taos,New Mexico,35055,13,0 +2020-04-03,Taos,New Mexico,35055,13,0 +2020-04-04,Taos,New Mexico,35055,13,0 +2020-04-05,Taos,New Mexico,35055,13,0 +2020-04-06,Taos,New Mexico,35055,13,0 +2020-04-07,Taos,New Mexico,35055,14,0 +2020-04-08,Taos,New Mexico,35055,14,0 +2020-04-09,Taos,New Mexico,35055,15,0 +2020-04-10,Taos,New Mexico,35055,15,0 +2020-04-11,Taos,New Mexico,35055,15,0 +2020-04-12,Taos,New Mexico,35055,15,0 +2020-04-13,Taos,New Mexico,35055,15,0 +2020-04-14,Taos,New Mexico,35055,15,0 +2020-04-15,Taos,New Mexico,35055,15,0 +2020-04-16,Taos,New Mexico,35055,15,0 +2020-04-17,Taos,New Mexico,35055,15,0 +2020-04-18,Taos,New Mexico,35055,15,0 +2020-04-19,Taos,New Mexico,35055,15,0 +2020-04-20,Taos,New Mexico,35055,16,0 +2020-04-21,Taos,New Mexico,35055,16,0 +2020-04-22,Taos,New Mexico,35055,16,0 +2020-04-23,Taos,New Mexico,35055,17,0 +2020-04-24,Taos,New Mexico,35055,17,0 +2020-04-25,Taos,New Mexico,35055,17,0 +2020-04-26,Taos,New Mexico,35055,17,0 +2020-04-27,Taos,New Mexico,35055,17,0 +2020-04-28,Taos,New Mexico,35055,17,0 +2020-04-29,Taos,New Mexico,35055,17,0 +2020-04-30,Taos,New Mexico,35055,18,0 +2020-05-01,Taos,New Mexico,35055,19,0 +2020-05-02,Taos,New Mexico,35055,19,0 +2020-05-03,Taos,New Mexico,35055,20,0 +2020-05-04,Taos,New Mexico,35055,20,0 +2020-05-05,Taos,New Mexico,35055,20,0 +2020-05-06,Taos,New Mexico,35055,20,0 +2020-05-07,Taos,New Mexico,35055,20,0 +2020-05-08,Taos,New Mexico,35055,20,0 +2020-05-09,Taos,New Mexico,35055,20,0 +2020-05-10,Taos,New Mexico,35055,20,0 +2020-05-11,Taos,New Mexico,35055,20,0 +2020-05-12,Taos,New Mexico,35055,21,0 +2020-05-13,Taos,New Mexico,35055,22,0 +2020-05-14,Taos,New Mexico,35055,22,0 +2020-05-15,Taos,New Mexico,35055,23,0 +2020-05-16,Taos,New Mexico,35055,22,0 +2020-05-17,Taos,New Mexico,35055,22,0 +2020-05-18,Taos,New Mexico,35055,23,0 +2020-05-19,Taos,New Mexico,35055,22,0 +2020-05-20,Taos,New Mexico,35055,22,0 +2020-05-21,Taos,New Mexico,35055,22,0 +2020-05-22,Taos,New Mexico,35055,22,0 +2020-05-23,Taos,New Mexico,35055,23,0 +2020-05-24,Taos,New Mexico,35055,24,0 +2020-05-25,Taos,New Mexico,35055,24,0 +2020-05-26,Taos,New Mexico,35055,24,0 +2020-05-27,Taos,New Mexico,35055,24,0 +2020-05-28,Taos,New Mexico,35055,24,0 +2020-05-29,Taos,New Mexico,35055,25,0 +2020-05-30,Taos,New Mexico,35055,25,0 +2020-05-31,Taos,New Mexico,35055,24,0 +2020-06-01,Taos,New Mexico,35055,29,0 +2020-06-02,Taos,New Mexico,35055,30,0 +2020-06-03,Taos,New Mexico,35055,30,0 +2020-06-04,Taos,New Mexico,35055,31,0 +2020-06-05,Taos,New Mexico,35055,31,0 +2020-06-06,Taos,New Mexico,35055,31,0 +2020-06-07,Taos,New Mexico,35055,31,0 +2020-06-08,Taos,New Mexico,35055,31,0 +2020-06-09,Taos,New Mexico,35055,31,0 +2020-06-10,Taos,New Mexico,35055,31,0 +2020-06-11,Taos,New Mexico,35055,31,0 +2020-06-12,Taos,New Mexico,35055,32,0 +2020-06-13,Taos,New Mexico,35055,32,0 +2020-06-14,Taos,New Mexico,35055,32,0 +2020-06-15,Taos,New Mexico,35055,33,0 +2020-06-16,Taos,New Mexico,35055,33,0 +2020-06-17,Taos,New Mexico,35055,33,0 +2020-06-18,Taos,New Mexico,35055,33,0 +2020-06-19,Taos,New Mexico,35055,33,0 +2020-06-20,Taos,New Mexico,35055,33,0 +2020-06-21,Taos,New Mexico,35055,33,0 +2020-06-22,Taos,New Mexico,35055,35,0 +2020-06-23,Taos,New Mexico,35055,35,1 +2020-06-24,Taos,New Mexico,35055,37,1 +2020-06-25,Taos,New Mexico,35055,37,1 +2020-06-26,Taos,New Mexico,35055,38,1 +2020-06-27,Taos,New Mexico,35055,39,1 +2020-06-28,Taos,New Mexico,35055,40,1 +2020-06-29,Taos,New Mexico,35055,40,1 +2020-06-30,Taos,New Mexico,35055,42,1 +2020-07-01,Taos,New Mexico,35055,43,1 +2020-07-02,Taos,New Mexico,35055,43,1 +2020-07-03,Taos,New Mexico,35055,46,1 +2020-07-04,Taos,New Mexico,35055,48,1 +2020-07-05,Taos,New Mexico,35055,48,1 +2020-07-06,Taos,New Mexico,35055,49,1 +2020-07-07,Taos,New Mexico,35055,49,1 +2020-07-08,Taos,New Mexico,35055,51,1 +2020-07-09,Taos,New Mexico,35055,51,1 +2020-03-30,Torrance,New Mexico,35057,3,0 +2020-03-31,Torrance,New Mexico,35057,3,0 +2020-04-01,Torrance,New Mexico,35057,3,0 +2020-04-02,Torrance,New Mexico,35057,3,0 +2020-04-03,Torrance,New Mexico,35057,3,0 +2020-04-04,Torrance,New Mexico,35057,6,0 +2020-04-05,Torrance,New Mexico,35057,6,0 +2020-04-06,Torrance,New Mexico,35057,6,0 +2020-04-07,Torrance,New Mexico,35057,7,0 +2020-04-08,Torrance,New Mexico,35057,7,0 +2020-04-09,Torrance,New Mexico,35057,8,0 +2020-04-10,Torrance,New Mexico,35057,9,0 +2020-04-11,Torrance,New Mexico,35057,9,0 +2020-04-12,Torrance,New Mexico,35057,10,0 +2020-04-13,Torrance,New Mexico,35057,10,0 +2020-04-14,Torrance,New Mexico,35057,12,0 +2020-04-15,Torrance,New Mexico,35057,12,0 +2020-04-16,Torrance,New Mexico,35057,12,0 +2020-04-17,Torrance,New Mexico,35057,12,0 +2020-04-18,Torrance,New Mexico,35057,12,0 +2020-04-19,Torrance,New Mexico,35057,12,0 +2020-04-20,Torrance,New Mexico,35057,13,0 +2020-04-21,Torrance,New Mexico,35057,13,0 +2020-04-22,Torrance,New Mexico,35057,13,0 +2020-04-23,Torrance,New Mexico,35057,13,0 +2020-04-24,Torrance,New Mexico,35057,13,0 +2020-04-25,Torrance,New Mexico,35057,13,0 +2020-04-26,Torrance,New Mexico,35057,14,0 +2020-04-27,Torrance,New Mexico,35057,14,0 +2020-04-28,Torrance,New Mexico,35057,15,0 +2020-04-29,Torrance,New Mexico,35057,15,0 +2020-04-30,Torrance,New Mexico,35057,15,0 +2020-05-01,Torrance,New Mexico,35057,15,0 +2020-05-02,Torrance,New Mexico,35057,16,0 +2020-05-03,Torrance,New Mexico,35057,16,0 +2020-05-04,Torrance,New Mexico,35057,16,0 +2020-05-05,Torrance,New Mexico,35057,17,0 +2020-05-06,Torrance,New Mexico,35057,17,0 +2020-05-07,Torrance,New Mexico,35057,17,1 +2020-05-08,Torrance,New Mexico,35057,17,1 +2020-05-09,Torrance,New Mexico,35057,18,1 +2020-05-10,Torrance,New Mexico,35057,18,1 +2020-05-11,Torrance,New Mexico,35057,18,1 +2020-05-12,Torrance,New Mexico,35057,19,1 +2020-05-13,Torrance,New Mexico,35057,19,1 +2020-05-14,Torrance,New Mexico,35057,19,1 +2020-05-15,Torrance,New Mexico,35057,19,1 +2020-05-16,Torrance,New Mexico,35057,19,1 +2020-05-17,Torrance,New Mexico,35057,19,1 +2020-05-18,Torrance,New Mexico,35057,19,1 +2020-05-19,Torrance,New Mexico,35057,20,1 +2020-05-20,Torrance,New Mexico,35057,20,1 +2020-05-21,Torrance,New Mexico,35057,20,1 +2020-05-22,Torrance,New Mexico,35057,20,1 +2020-05-23,Torrance,New Mexico,35057,21,1 +2020-05-24,Torrance,New Mexico,35057,22,1 +2020-05-25,Torrance,New Mexico,35057,22,1 +2020-05-26,Torrance,New Mexico,35057,48,1 +2020-05-27,Torrance,New Mexico,35057,50,1 +2020-05-28,Torrance,New Mexico,35057,50,1 +2020-05-29,Torrance,New Mexico,35057,50,1 +2020-05-30,Torrance,New Mexico,35057,50,1 +2020-05-31,Torrance,New Mexico,35057,50,1 +2020-06-01,Torrance,New Mexico,35057,50,1 +2020-06-02,Torrance,New Mexico,35057,50,1 +2020-06-03,Torrance,New Mexico,35057,50,1 +2020-06-04,Torrance,New Mexico,35057,51,1 +2020-06-05,Torrance,New Mexico,35057,52,1 +2020-06-06,Torrance,New Mexico,35057,53,1 +2020-06-07,Torrance,New Mexico,35057,53,1 +2020-06-08,Torrance,New Mexico,35057,53,1 +2020-06-09,Torrance,New Mexico,35057,53,1 +2020-06-10,Torrance,New Mexico,35057,53,1 +2020-06-11,Torrance,New Mexico,35057,52,1 +2020-06-12,Torrance,New Mexico,35057,53,1 +2020-06-13,Torrance,New Mexico,35057,53,1 +2020-06-14,Torrance,New Mexico,35057,53,1 +2020-06-15,Torrance,New Mexico,35057,58,1 +2020-06-16,Torrance,New Mexico,35057,58,1 +2020-06-17,Torrance,New Mexico,35057,58,1 +2020-06-18,Torrance,New Mexico,35057,58,1 +2020-06-19,Torrance,New Mexico,35057,58,1 +2020-06-20,Torrance,New Mexico,35057,60,1 +2020-06-21,Torrance,New Mexico,35057,60,1 +2020-06-22,Torrance,New Mexico,35057,60,1 +2020-06-23,Torrance,New Mexico,35057,62,1 +2020-06-24,Torrance,New Mexico,35057,72,1 +2020-06-25,Torrance,New Mexico,35057,74,1 +2020-06-26,Torrance,New Mexico,35057,73,1 +2020-06-27,Torrance,New Mexico,35057,73,1 +2020-06-28,Torrance,New Mexico,35057,74,1 +2020-06-29,Torrance,New Mexico,35057,75,1 +2020-06-30,Torrance,New Mexico,35057,75,1 +2020-07-01,Torrance,New Mexico,35057,75,1 +2020-07-02,Torrance,New Mexico,35057,75,1 +2020-07-03,Torrance,New Mexico,35057,86,1 +2020-07-04,Torrance,New Mexico,35057,89,1 +2020-07-05,Torrance,New Mexico,35057,91,1 +2020-07-06,Torrance,New Mexico,35057,91,1 +2020-07-07,Torrance,New Mexico,35057,91,1 +2020-07-08,Torrance,New Mexico,35057,90,1 +2020-07-09,Torrance,New Mexico,35057,90,1 +2020-04-25,Union,New Mexico,35059,1,0 +2020-04-26,Union,New Mexico,35059,3,0 +2020-04-27,Union,New Mexico,35059,3,0 +2020-04-28,Union,New Mexico,35059,3,0 +2020-04-29,Union,New Mexico,35059,3,0 +2020-04-30,Union,New Mexico,35059,3,0 +2020-05-01,Union,New Mexico,35059,3,0 +2020-05-02,Union,New Mexico,35059,3,0 +2020-05-03,Union,New Mexico,35059,3,0 +2020-05-04,Union,New Mexico,35059,3,0 +2020-05-05,Union,New Mexico,35059,3,0 +2020-05-06,Union,New Mexico,35059,3,0 +2020-05-07,Union,New Mexico,35059,3,0 +2020-05-08,Union,New Mexico,35059,3,0 +2020-05-09,Union,New Mexico,35059,3,0 +2020-05-10,Union,New Mexico,35059,3,0 +2020-05-11,Union,New Mexico,35059,3,0 +2020-05-12,Union,New Mexico,35059,3,0 +2020-05-13,Union,New Mexico,35059,3,0 +2020-05-14,Union,New Mexico,35059,3,0 +2020-05-15,Union,New Mexico,35059,3,0 +2020-05-16,Union,New Mexico,35059,3,0 +2020-05-17,Union,New Mexico,35059,3,0 +2020-05-18,Union,New Mexico,35059,3,0 +2020-05-19,Union,New Mexico,35059,3,0 +2020-05-20,Union,New Mexico,35059,3,0 +2020-05-21,Union,New Mexico,35059,3,0 +2020-05-22,Union,New Mexico,35059,3,0 +2020-05-23,Union,New Mexico,35059,3,0 +2020-05-24,Union,New Mexico,35059,3,0 +2020-05-25,Union,New Mexico,35059,3,0 +2020-05-26,Union,New Mexico,35059,3,0 +2020-05-27,Union,New Mexico,35059,3,0 +2020-05-28,Union,New Mexico,35059,3,0 +2020-05-29,Union,New Mexico,35059,4,0 +2020-05-30,Union,New Mexico,35059,4,0 +2020-05-31,Union,New Mexico,35059,4,0 +2020-06-01,Union,New Mexico,35059,4,0 +2020-06-02,Union,New Mexico,35059,4,0 +2020-06-03,Union,New Mexico,35059,4,0 +2020-06-04,Union,New Mexico,35059,4,0 +2020-06-05,Union,New Mexico,35059,5,0 +2020-06-06,Union,New Mexico,35059,5,0 +2020-06-07,Union,New Mexico,35059,5,0 +2020-06-08,Union,New Mexico,35059,5,0 +2020-06-09,Union,New Mexico,35059,5,0 +2020-06-10,Union,New Mexico,35059,5,0 +2020-06-11,Union,New Mexico,35059,5,0 +2020-06-12,Union,New Mexico,35059,5,0 +2020-06-13,Union,New Mexico,35059,5,0 +2020-06-14,Union,New Mexico,35059,5,0 +2020-06-15,Union,New Mexico,35059,5,0 +2020-06-16,Union,New Mexico,35059,5,0 +2020-06-17,Union,New Mexico,35059,5,0 +2020-06-18,Union,New Mexico,35059,5,0 +2020-06-19,Union,New Mexico,35059,5,0 +2020-06-20,Union,New Mexico,35059,5,0 +2020-06-21,Union,New Mexico,35059,5,0 +2020-06-22,Union,New Mexico,35059,5,0 +2020-06-23,Union,New Mexico,35059,5,0 +2020-06-24,Union,New Mexico,35059,6,0 +2020-06-25,Union,New Mexico,35059,6,0 +2020-06-26,Union,New Mexico,35059,7,0 +2020-06-27,Union,New Mexico,35059,7,0 +2020-06-28,Union,New Mexico,35059,7,0 +2020-06-29,Union,New Mexico,35059,7,0 +2020-06-30,Union,New Mexico,35059,7,0 +2020-07-01,Union,New Mexico,35059,8,0 +2020-07-02,Union,New Mexico,35059,8,0 +2020-07-03,Union,New Mexico,35059,8,0 +2020-07-04,Union,New Mexico,35059,8,0 +2020-07-05,Union,New Mexico,35059,8,0 +2020-07-06,Union,New Mexico,35059,8,0 +2020-07-07,Union,New Mexico,35059,8,0 +2020-07-08,Union,New Mexico,35059,8,0 +2020-07-09,Union,New Mexico,35059,8,0 +2020-03-27,Valencia,New Mexico,35061,1,0 +2020-03-28,Valencia,New Mexico,35061,1,0 +2020-03-29,Valencia,New Mexico,35061,2,0 +2020-03-30,Valencia,New Mexico,35061,5,0 +2020-03-31,Valencia,New Mexico,35061,5,0 +2020-04-01,Valencia,New Mexico,35061,5,0 +2020-04-02,Valencia,New Mexico,35061,5,0 +2020-04-03,Valencia,New Mexico,35061,5,0 +2020-04-04,Valencia,New Mexico,35061,5,0 +2020-04-05,Valencia,New Mexico,35061,7,0 +2020-04-06,Valencia,New Mexico,35061,7,0 +2020-04-07,Valencia,New Mexico,35061,7,0 +2020-04-08,Valencia,New Mexico,35061,8,0 +2020-04-09,Valencia,New Mexico,35061,11,0 +2020-04-10,Valencia,New Mexico,35061,14,0 +2020-04-11,Valencia,New Mexico,35061,15,0 +2020-04-12,Valencia,New Mexico,35061,18,0 +2020-04-13,Valencia,New Mexico,35061,20,0 +2020-04-14,Valencia,New Mexico,35061,21,0 +2020-04-15,Valencia,New Mexico,35061,21,0 +2020-04-16,Valencia,New Mexico,35061,24,0 +2020-04-17,Valencia,New Mexico,35061,26,0 +2020-04-18,Valencia,New Mexico,35061,26,0 +2020-04-19,Valencia,New Mexico,35061,29,0 +2020-04-20,Valencia,New Mexico,35061,33,0 +2020-04-21,Valencia,New Mexico,35061,34,0 +2020-04-22,Valencia,New Mexico,35061,35,0 +2020-04-23,Valencia,New Mexico,35061,38,0 +2020-04-24,Valencia,New Mexico,35061,41,0 +2020-04-25,Valencia,New Mexico,35061,41,0 +2020-04-26,Valencia,New Mexico,35061,42,0 +2020-04-27,Valencia,New Mexico,35061,42,0 +2020-04-28,Valencia,New Mexico,35061,42,0 +2020-04-29,Valencia,New Mexico,35061,44,0 +2020-04-30,Valencia,New Mexico,35061,45,0 +2020-05-01,Valencia,New Mexico,35061,47,0 +2020-05-02,Valencia,New Mexico,35061,49,0 +2020-05-03,Valencia,New Mexico,35061,50,1 +2020-05-04,Valencia,New Mexico,35061,50,1 +2020-05-05,Valencia,New Mexico,35061,53,1 +2020-05-06,Valencia,New Mexico,35061,55,1 +2020-05-07,Valencia,New Mexico,35061,54,1 +2020-05-08,Valencia,New Mexico,35061,55,1 +2020-05-09,Valencia,New Mexico,35061,55,1 +2020-05-10,Valencia,New Mexico,35061,55,1 +2020-05-11,Valencia,New Mexico,35061,57,1 +2020-05-12,Valencia,New Mexico,35061,57,1 +2020-05-13,Valencia,New Mexico,35061,59,1 +2020-05-14,Valencia,New Mexico,35061,60,1 +2020-05-15,Valencia,New Mexico,35061,63,1 +2020-05-16,Valencia,New Mexico,35061,64,1 +2020-05-17,Valencia,New Mexico,35061,66,1 +2020-05-18,Valencia,New Mexico,35061,68,1 +2020-05-19,Valencia,New Mexico,35061,69,1 +2020-05-20,Valencia,New Mexico,35061,70,1 +2020-05-21,Valencia,New Mexico,35061,70,1 +2020-05-22,Valencia,New Mexico,35061,71,1 +2020-05-23,Valencia,New Mexico,35061,70,1 +2020-05-24,Valencia,New Mexico,35061,73,1 +2020-05-25,Valencia,New Mexico,35061,73,1 +2020-05-26,Valencia,New Mexico,35061,74,1 +2020-05-27,Valencia,New Mexico,35061,74,1 +2020-05-28,Valencia,New Mexico,35061,74,1 +2020-05-29,Valencia,New Mexico,35061,75,2 +2020-05-30,Valencia,New Mexico,35061,74,2 +2020-05-31,Valencia,New Mexico,35061,75,2 +2020-06-01,Valencia,New Mexico,35061,75,2 +2020-06-02,Valencia,New Mexico,35061,78,2 +2020-06-03,Valencia,New Mexico,35061,80,2 +2020-06-04,Valencia,New Mexico,35061,81,2 +2020-06-05,Valencia,New Mexico,35061,82,2 +2020-06-06,Valencia,New Mexico,35061,82,2 +2020-06-07,Valencia,New Mexico,35061,82,2 +2020-06-08,Valencia,New Mexico,35061,82,2 +2020-06-09,Valencia,New Mexico,35061,82,2 +2020-06-10,Valencia,New Mexico,35061,85,2 +2020-06-11,Valencia,New Mexico,35061,87,2 +2020-06-12,Valencia,New Mexico,35061,88,2 +2020-06-13,Valencia,New Mexico,35061,88,2 +2020-06-14,Valencia,New Mexico,35061,90,2 +2020-06-15,Valencia,New Mexico,35061,90,2 +2020-06-16,Valencia,New Mexico,35061,94,2 +2020-06-17,Valencia,New Mexico,35061,95,2 +2020-06-18,Valencia,New Mexico,35061,95,2 +2020-06-19,Valencia,New Mexico,35061,96,2 +2020-06-20,Valencia,New Mexico,35061,97,2 +2020-06-21,Valencia,New Mexico,35061,97,2 +2020-06-22,Valencia,New Mexico,35061,98,2 +2020-06-23,Valencia,New Mexico,35061,98,2 +2020-06-24,Valencia,New Mexico,35061,99,2 +2020-06-25,Valencia,New Mexico,35061,100,2 +2020-06-26,Valencia,New Mexico,35061,102,2 +2020-06-27,Valencia,New Mexico,35061,105,2 +2020-06-28,Valencia,New Mexico,35061,109,2 +2020-06-29,Valencia,New Mexico,35061,121,2 +2020-06-30,Valencia,New Mexico,35061,126,2 +2020-07-01,Valencia,New Mexico,35061,130,2 +2020-07-02,Valencia,New Mexico,35061,138,2 +2020-07-03,Valencia,New Mexico,35061,142,2 +2020-07-04,Valencia,New Mexico,35061,146,2 +2020-07-05,Valencia,New Mexico,35061,152,2 +2020-07-06,Valencia,New Mexico,35061,157,2 +2020-07-07,Valencia,New Mexico,35061,161,2 +2020-07-08,Valencia,New Mexico,35061,169,2 +2020-07-09,Valencia,New Mexico,35061,174,2 +2020-03-12,Albany,New York,36001,2,0 +2020-03-13,Albany,New York,36001,2,0 +2020-03-14,Albany,New York,36001,5,0 +2020-03-15,Albany,New York,36001,11,0 +2020-03-16,Albany,New York,36001,12,0 +2020-03-17,Albany,New York,36001,23,0 +2020-03-18,Albany,New York,36001,36,0 +2020-03-19,Albany,New York,36001,43,0 +2020-03-20,Albany,New York,36001,61,0 +2020-03-21,Albany,New York,36001,88,0 +2020-03-22,Albany,New York,36001,123,0 +2020-03-23,Albany,New York,36001,127,0 +2020-03-24,Albany,New York,36001,146,0 +2020-03-25,Albany,New York,36001,152,0 +2020-03-26,Albany,New York,36001,171,0 +2020-03-27,Albany,New York,36001,187,0 +2020-03-28,Albany,New York,36001,195,1 +2020-03-29,Albany,New York,36001,205,1 +2020-03-30,Albany,New York,36001,217,1 +2020-03-31,Albany,New York,36001,226,1 +2020-04-01,Albany,New York,36001,240,2 +2020-04-02,Albany,New York,36001,253,2 +2020-04-03,Albany,New York,36001,267,4 +2020-04-04,Albany,New York,36001,293,6 +2020-04-05,Albany,New York,36001,305,8 +2020-04-06,Albany,New York,36001,319,9 +2020-04-07,Albany,New York,36001,333,9 +2020-04-08,Albany,New York,36001,342,10 +2020-04-09,Albany,New York,36001,379,12 +2020-04-10,Albany,New York,36001,426,14 +2020-04-11,Albany,New York,36001,446,16 +2020-04-12,Albany,New York,36001,478,16 +2020-04-13,Albany,New York,36001,499,17 +2020-04-14,Albany,New York,36001,535,21 +2020-04-15,Albany,New York,36001,548,26 +2020-04-16,Albany,New York,36001,581,26 +2020-04-17,Albany,New York,36001,619,26 +2020-04-18,Albany,New York,36001,648,26 +2020-04-19,Albany,New York,36001,682,33 +2020-04-20,Albany,New York,36001,687,35 +2020-04-21,Albany,New York,36001,704,36 +2020-04-22,Albany,New York,36001,737,36 +2020-04-23,Albany,New York,36001,758,41 +2020-04-24,Albany,New York,36001,805,42 +2020-04-25,Albany,New York,36001,899,43 +2020-04-26,Albany,New York,36001,948,45 +2020-04-27,Albany,New York,36001,979,45 +2020-04-28,Albany,New York,36001,1009,45 +2020-04-29,Albany,New York,36001,1067,47 +2020-04-30,Albany,New York,36001,1165,53 +2020-05-01,Albany,New York,36001,1204,55 +2020-05-02,Albany,New York,36001,1238,60 +2020-05-03,Albany,New York,36001,1258,61 +2020-05-04,Albany,New York,36001,1287,65 +2020-05-05,Albany,New York,36001,1294,70 +2020-05-06,Albany,New York,36001,1321,93 +2020-05-07,Albany,New York,36001,1348,100 +2020-05-08,Albany,New York,36001,1384,103 +2020-05-09,Albany,New York,36001,1416,107 +2020-05-10,Albany,New York,36001,1432,109 +2020-05-11,Albany,New York,36001,1456,112 +2020-05-12,Albany,New York,36001,1479,116 +2020-05-13,Albany,New York,36001,1494,118 +2020-05-14,Albany,New York,36001,1509,120 +2020-05-15,Albany,New York,36001,1538,124 +2020-05-16,Albany,New York,36001,1572,127 +2020-05-17,Albany,New York,36001,1579,128 +2020-05-18,Albany,New York,36001,1610,129 +2020-05-19,Albany,New York,36001,1655,130 +2020-05-20,Albany,New York,36001,1682,132 +2020-05-21,Albany,New York,36001,1700,134 +2020-05-22,Albany,New York,36001,1756,136 +2020-05-23,Albany,New York,36001,1770,138 +2020-05-24,Albany,New York,36001,1782,140 +2020-05-25,Albany,New York,36001,1791,141 +2020-05-26,Albany,New York,36001,1793,141 +2020-05-27,Albany,New York,36001,1796,141 +2020-05-28,Albany,New York,36001,1814,142 +2020-05-29,Albany,New York,36001,1834,142 +2020-05-30,Albany,New York,36001,1843,142 +2020-05-31,Albany,New York,36001,1860,142 +2020-06-01,Albany,New York,36001,1882,143 +2020-06-02,Albany,New York,36001,1900,143 +2020-06-03,Albany,New York,36001,1920,145 +2020-06-04,Albany,New York,36001,1930,145 +2020-06-05,Albany,New York,36001,1941,145 +2020-06-06,Albany,New York,36001,1953,146 +2020-06-07,Albany,New York,36001,1961,148 +2020-06-08,Albany,New York,36001,1978,148 +2020-06-09,Albany,New York,36001,1983,149 +2020-06-10,Albany,New York,36001,1986,150 +2020-06-11,Albany,New York,36001,1996,152 +2020-06-12,Albany,New York,36001,2007,152 +2020-06-13,Albany,New York,36001,2016,152 +2020-06-14,Albany,New York,36001,2020,153 +2020-06-15,Albany,New York,36001,2022,154 +2020-06-16,Albany,New York,36001,2026,156 +2020-06-17,Albany,New York,36001,2029,157 +2020-06-18,Albany,New York,36001,2034,157 +2020-06-19,Albany,New York,36001,2049,157 +2020-06-20,Albany,New York,36001,2053,157 +2020-06-21,Albany,New York,36001,2054,157 +2020-06-22,Albany,New York,36001,2060,157 +2020-06-23,Albany,New York,36001,2062,157 +2020-06-24,Albany,New York,36001,2065,157 +2020-06-25,Albany,New York,36001,2076,159 +2020-06-26,Albany,New York,36001,2084,159 +2020-06-27,Albany,New York,36001,2091,159 +2020-06-28,Albany,New York,36001,2097,159 +2020-06-29,Albany,New York,36001,2099,159 +2020-06-30,Albany,New York,36001,2102,159 +2020-07-01,Albany,New York,36001,2112,160 +2020-07-02,Albany,New York,36001,2125,160 +2020-07-03,Albany,New York,36001,2130,160 +2020-07-04,Albany,New York,36001,2145,160 +2020-07-05,Albany,New York,36001,2152,160 +2020-07-06,Albany,New York,36001,2160,161 +2020-07-07,Albany,New York,36001,2164,161 +2020-07-08,Albany,New York,36001,2175,161 +2020-07-09,Albany,New York,36001,2183,161 +2020-03-16,Allegany,New York,36003,2,0 +2020-03-17,Allegany,New York,36003,2,0 +2020-03-18,Allegany,New York,36003,2,0 +2020-03-19,Allegany,New York,36003,2,0 +2020-03-20,Allegany,New York,36003,2,0 +2020-03-21,Allegany,New York,36003,2,0 +2020-03-22,Allegany,New York,36003,2,0 +2020-03-23,Allegany,New York,36003,2,0 +2020-03-24,Allegany,New York,36003,2,0 +2020-03-25,Allegany,New York,36003,2,0 +2020-03-26,Allegany,New York,36003,2,0 +2020-03-27,Allegany,New York,36003,2,0 +2020-03-28,Allegany,New York,36003,2,0 +2020-03-29,Allegany,New York,36003,6,0 +2020-03-30,Allegany,New York,36003,7,0 +2020-03-31,Allegany,New York,36003,7,0 +2020-04-01,Allegany,New York,36003,10,1 +2020-04-02,Allegany,New York,36003,12,1 +2020-04-03,Allegany,New York,36003,12,1 +2020-04-04,Allegany,New York,36003,16,1 +2020-04-05,Allegany,New York,36003,16,1 +2020-04-06,Allegany,New York,36003,17,1 +2020-04-07,Allegany,New York,36003,17,1 +2020-04-08,Allegany,New York,36003,21,0 +2020-04-09,Allegany,New York,36003,22,0 +2020-04-10,Allegany,New York,36003,26,0 +2020-04-11,Allegany,New York,36003,26,0 +2020-04-12,Allegany,New York,36003,26,0 +2020-04-13,Allegany,New York,36003,26,0 +2020-04-14,Allegany,New York,36003,28,0 +2020-04-15,Allegany,New York,36003,28,0 +2020-04-16,Allegany,New York,36003,28,0 +2020-04-17,Allegany,New York,36003,29,0 +2020-04-18,Allegany,New York,36003,30,0 +2020-04-19,Allegany,New York,36003,30,0 +2020-04-20,Allegany,New York,36003,30,0 +2020-04-21,Allegany,New York,36003,30,0 +2020-04-22,Allegany,New York,36003,30,0 +2020-04-23,Allegany,New York,36003,30,0 +2020-04-24,Allegany,New York,36003,31,0 +2020-04-25,Allegany,New York,36003,35,0 +2020-04-26,Allegany,New York,36003,35,0 +2020-04-27,Allegany,New York,36003,35,0 +2020-04-28,Allegany,New York,36003,35,0 +2020-04-29,Allegany,New York,36003,35,0 +2020-04-30,Allegany,New York,36003,35,0 +2020-05-01,Allegany,New York,36003,35,0 +2020-05-02,Allegany,New York,36003,35,0 +2020-05-03,Allegany,New York,36003,35,0 +2020-05-04,Allegany,New York,36003,35,0 +2020-05-05,Allegany,New York,36003,35,0 +2020-05-06,Allegany,New York,36003,35,0 +2020-05-07,Allegany,New York,36003,35,0 +2020-05-08,Allegany,New York,36003,35,0 +2020-05-09,Allegany,New York,36003,35,0 +2020-05-10,Allegany,New York,36003,36,0 +2020-05-11,Allegany,New York,36003,38,0 +2020-05-12,Allegany,New York,36003,42,0 +2020-05-13,Allegany,New York,36003,44,0 +2020-05-14,Allegany,New York,36003,44,0 +2020-05-15,Allegany,New York,36003,44,0 +2020-05-16,Allegany,New York,36003,44,0 +2020-05-17,Allegany,New York,36003,44,0 +2020-05-18,Allegany,New York,36003,44,0 +2020-05-19,Allegany,New York,36003,44,0 +2020-05-20,Allegany,New York,36003,44,0 +2020-05-21,Allegany,New York,36003,44,0 +2020-05-22,Allegany,New York,36003,44,0 +2020-05-23,Allegany,New York,36003,44,0 +2020-05-24,Allegany,New York,36003,44,0 +2020-05-25,Allegany,New York,36003,44,0 +2020-05-26,Allegany,New York,36003,44,0 +2020-05-27,Allegany,New York,36003,45,0 +2020-05-28,Allegany,New York,36003,45,0 +2020-05-29,Allegany,New York,36003,45,0 +2020-05-30,Allegany,New York,36003,45,0 +2020-05-31,Allegany,New York,36003,45,0 +2020-06-01,Allegany,New York,36003,48,0 +2020-06-02,Allegany,New York,36003,48,0 +2020-06-03,Allegany,New York,36003,49,0 +2020-06-04,Allegany,New York,36003,49,0 +2020-06-05,Allegany,New York,36003,51,0 +2020-06-06,Allegany,New York,36003,51,0 +2020-06-07,Allegany,New York,36003,51,0 +2020-06-08,Allegany,New York,36003,51,0 +2020-06-09,Allegany,New York,36003,51,0 +2020-06-10,Allegany,New York,36003,52,0 +2020-06-11,Allegany,New York,36003,53,0 +2020-06-12,Allegany,New York,36003,53,0 +2020-06-13,Allegany,New York,36003,54,0 +2020-06-14,Allegany,New York,36003,54,0 +2020-06-15,Allegany,New York,36003,55,0 +2020-06-16,Allegany,New York,36003,55,0 +2020-06-17,Allegany,New York,36003,55,0 +2020-06-18,Allegany,New York,36003,57,0 +2020-06-19,Allegany,New York,36003,58,0 +2020-06-20,Allegany,New York,36003,58,0 +2020-06-21,Allegany,New York,36003,58,0 +2020-06-22,Allegany,New York,36003,58,0 +2020-06-23,Allegany,New York,36003,58,0 +2020-06-24,Allegany,New York,36003,58,0 +2020-06-25,Allegany,New York,36003,58,0 +2020-06-26,Allegany,New York,36003,58,0 +2020-06-27,Allegany,New York,36003,58,0 +2020-06-28,Allegany,New York,36003,59,0 +2020-06-29,Allegany,New York,36003,59,0 +2020-06-30,Allegany,New York,36003,59,0 +2020-07-01,Allegany,New York,36003,61,0 +2020-07-02,Allegany,New York,36003,62,0 +2020-07-03,Allegany,New York,36003,63,0 +2020-07-04,Allegany,New York,36003,63,0 +2020-07-05,Allegany,New York,36003,63,0 +2020-07-06,Allegany,New York,36003,63,0 +2020-07-07,Allegany,New York,36003,63,0 +2020-07-08,Allegany,New York,36003,64,0 +2020-07-09,Allegany,New York,36003,64,0 +2020-03-14,Broome,New York,36007,1,0 +2020-03-15,Broome,New York,36007,1,0 +2020-03-16,Broome,New York,36007,1,0 +2020-03-17,Broome,New York,36007,1,0 +2020-03-18,Broome,New York,36007,2,0 +2020-03-19,Broome,New York,36007,2,0 +2020-03-20,Broome,New York,36007,2,0 +2020-03-21,Broome,New York,36007,2,1 +2020-03-22,Broome,New York,36007,3,1 +2020-03-23,Broome,New York,36007,7,1 +2020-03-24,Broome,New York,36007,9,1 +2020-03-25,Broome,New York,36007,11,1 +2020-03-26,Broome,New York,36007,16,2 +2020-03-27,Broome,New York,36007,18,3 +2020-03-28,Broome,New York,36007,23,3 +2020-03-29,Broome,New York,36007,29,3 +2020-03-30,Broome,New York,36007,35,3 +2020-03-31,Broome,New York,36007,38,3 +2020-04-01,Broome,New York,36007,42,4 +2020-04-02,Broome,New York,36007,46,4 +2020-04-03,Broome,New York,36007,46,4 +2020-04-04,Broome,New York,36007,65,4 +2020-04-05,Broome,New York,36007,71,4 +2020-04-06,Broome,New York,36007,76,5 +2020-04-07,Broome,New York,36007,86,5 +2020-04-08,Broome,New York,36007,88,6 +2020-04-09,Broome,New York,36007,105,6 +2020-04-10,Broome,New York,36007,112,6 +2020-04-11,Broome,New York,36007,117,6 +2020-04-12,Broome,New York,36007,126,6 +2020-04-13,Broome,New York,36007,133,6 +2020-04-14,Broome,New York,36007,146,6 +2020-04-15,Broome,New York,36007,153,6 +2020-04-16,Broome,New York,36007,167,6 +2020-04-17,Broome,New York,36007,178,6 +2020-04-18,Broome,New York,36007,186,6 +2020-04-19,Broome,New York,36007,192,7 +2020-04-20,Broome,New York,36007,199,7 +2020-04-21,Broome,New York,36007,205,7 +2020-04-22,Broome,New York,36007,219,8 +2020-04-23,Broome,New York,36007,224,10 +2020-04-24,Broome,New York,36007,232,11 +2020-04-25,Broome,New York,36007,251,13 +2020-04-26,Broome,New York,36007,257,13 +2020-04-27,Broome,New York,36007,261,14 +2020-04-28,Broome,New York,36007,266,15 +2020-04-29,Broome,New York,36007,273,15 +2020-04-30,Broome,New York,36007,284,15 +2020-05-01,Broome,New York,36007,299,18 +2020-05-02,Broome,New York,36007,305,18 +2020-05-03,Broome,New York,36007,327,18 +2020-05-04,Broome,New York,36007,334,18 +2020-05-05,Broome,New York,36007,338,18 +2020-05-06,Broome,New York,36007,345,25 +2020-05-07,Broome,New York,36007,360,25 +2020-05-08,Broome,New York,36007,364,25 +2020-05-09,Broome,New York,36007,372,25 +2020-05-10,Broome,New York,36007,373,28 +2020-05-11,Broome,New York,36007,378,28 +2020-05-12,Broome,New York,36007,379,30 +2020-05-13,Broome,New York,36007,382,31 +2020-05-14,Broome,New York,36007,383,32 +2020-05-15,Broome,New York,36007,390,32 +2020-05-16,Broome,New York,36007,413,32 +2020-05-17,Broome,New York,36007,414,33 +2020-05-18,Broome,New York,36007,423,34 +2020-05-19,Broome,New York,36007,429,36 +2020-05-20,Broome,New York,36007,436,37 +2020-05-21,Broome,New York,36007,451,37 +2020-05-22,Broome,New York,36007,468,39 +2020-05-23,Broome,New York,36007,485,41 +2020-05-24,Broome,New York,36007,501,42 +2020-05-25,Broome,New York,36007,519,44 +2020-05-26,Broome,New York,36007,522,45 +2020-05-27,Broome,New York,36007,528,46 +2020-05-28,Broome,New York,36007,545,46 +2020-05-29,Broome,New York,36007,557,48 +2020-05-30,Broome,New York,36007,561,50 +2020-05-31,Broome,New York,36007,566,51 +2020-06-01,Broome,New York,36007,574,51 +2020-06-02,Broome,New York,36007,578,51 +2020-06-03,Broome,New York,36007,589,51 +2020-06-04,Broome,New York,36007,593,52 +2020-06-05,Broome,New York,36007,605,54 +2020-06-06,Broome,New York,36007,613,54 +2020-06-07,Broome,New York,36007,620,55 +2020-06-08,Broome,New York,36007,624,56 +2020-06-09,Broome,New York,36007,627,57 +2020-06-10,Broome,New York,36007,630,57 +2020-06-11,Broome,New York,36007,641,58 +2020-06-12,Broome,New York,36007,644,58 +2020-06-13,Broome,New York,36007,647,59 +2020-06-14,Broome,New York,36007,651,59 +2020-06-15,Broome,New York,36007,655,59 +2020-06-16,Broome,New York,36007,656,59 +2020-06-17,Broome,New York,36007,657,59 +2020-06-18,Broome,New York,36007,657,59 +2020-06-19,Broome,New York,36007,663,59 +2020-06-20,Broome,New York,36007,665,59 +2020-06-21,Broome,New York,36007,668,59 +2020-06-22,Broome,New York,36007,670,59 +2020-06-23,Broome,New York,36007,671,61 +2020-06-24,Broome,New York,36007,671,61 +2020-06-25,Broome,New York,36007,680,61 +2020-06-26,Broome,New York,36007,697,61 +2020-06-27,Broome,New York,36007,701,61 +2020-06-28,Broome,New York,36007,703,61 +2020-06-29,Broome,New York,36007,710,61 +2020-06-30,Broome,New York,36007,716,61 +2020-07-01,Broome,New York,36007,722,61 +2020-07-02,Broome,New York,36007,729,62 +2020-07-03,Broome,New York,36007,736,62 +2020-07-04,Broome,New York,36007,752,62 +2020-07-05,Broome,New York,36007,753,62 +2020-07-06,Broome,New York,36007,757,62 +2020-07-07,Broome,New York,36007,762,62 +2020-07-08,Broome,New York,36007,766,63 +2020-07-09,Broome,New York,36007,770,63 +2020-03-28,Cattaraugus,New York,36009,1,0 +2020-03-29,Cattaraugus,New York,36009,4,0 +2020-03-30,Cattaraugus,New York,36009,6,0 +2020-03-31,Cattaraugus,New York,36009,6,0 +2020-04-01,Cattaraugus,New York,36009,7,0 +2020-04-02,Cattaraugus,New York,36009,8,0 +2020-04-03,Cattaraugus,New York,36009,8,0 +2020-04-04,Cattaraugus,New York,36009,8,0 +2020-04-05,Cattaraugus,New York,36009,10,0 +2020-04-06,Cattaraugus,New York,36009,15,0 +2020-04-07,Cattaraugus,New York,36009,13,0 +2020-04-08,Cattaraugus,New York,36009,15,0 +2020-04-09,Cattaraugus,New York,36009,17,0 +2020-04-10,Cattaraugus,New York,36009,18,0 +2020-04-11,Cattaraugus,New York,36009,19,0 +2020-04-12,Cattaraugus,New York,36009,28,0 +2020-04-13,Cattaraugus,New York,36009,28,0 +2020-04-14,Cattaraugus,New York,36009,32,0 +2020-04-15,Cattaraugus,New York,36009,32,0 +2020-04-16,Cattaraugus,New York,36009,32,0 +2020-04-17,Cattaraugus,New York,36009,34,0 +2020-04-18,Cattaraugus,New York,36009,34,0 +2020-04-19,Cattaraugus,New York,36009,34,0 +2020-04-20,Cattaraugus,New York,36009,34,0 +2020-04-21,Cattaraugus,New York,36009,35,0 +2020-04-22,Cattaraugus,New York,36009,37,0 +2020-04-23,Cattaraugus,New York,36009,37,0 +2020-04-24,Cattaraugus,New York,36009,39,0 +2020-04-25,Cattaraugus,New York,36009,45,1 +2020-04-26,Cattaraugus,New York,36009,45,1 +2020-04-27,Cattaraugus,New York,36009,45,1 +2020-04-28,Cattaraugus,New York,36009,45,1 +2020-04-29,Cattaraugus,New York,36009,47,1 +2020-04-30,Cattaraugus,New York,36009,47,1 +2020-05-01,Cattaraugus,New York,36009,49,1 +2020-05-02,Cattaraugus,New York,36009,50,1 +2020-05-03,Cattaraugus,New York,36009,53,1 +2020-05-04,Cattaraugus,New York,36009,53,1 +2020-05-05,Cattaraugus,New York,36009,53,1 +2020-05-06,Cattaraugus,New York,36009,54,1 +2020-05-07,Cattaraugus,New York,36009,59,1 +2020-05-08,Cattaraugus,New York,36009,59,1 +2020-05-09,Cattaraugus,New York,36009,60,1 +2020-05-10,Cattaraugus,New York,36009,60,1 +2020-05-11,Cattaraugus,New York,36009,61,1 +2020-05-12,Cattaraugus,New York,36009,61,1 +2020-05-13,Cattaraugus,New York,36009,61,1 +2020-05-14,Cattaraugus,New York,36009,64,1 +2020-05-15,Cattaraugus,New York,36009,64,1 +2020-05-16,Cattaraugus,New York,36009,65,1 +2020-05-17,Cattaraugus,New York,36009,65,1 +2020-05-18,Cattaraugus,New York,36009,67,1 +2020-05-19,Cattaraugus,New York,36009,69,1 +2020-05-20,Cattaraugus,New York,36009,70,1 +2020-05-21,Cattaraugus,New York,36009,71,1 +2020-05-22,Cattaraugus,New York,36009,74,1 +2020-05-23,Cattaraugus,New York,36009,78,1 +2020-05-24,Cattaraugus,New York,36009,78,1 +2020-05-25,Cattaraugus,New York,36009,81,2 +2020-05-26,Cattaraugus,New York,36009,81,2 +2020-05-27,Cattaraugus,New York,36009,82,2 +2020-05-28,Cattaraugus,New York,36009,85,2 +2020-05-29,Cattaraugus,New York,36009,86,2 +2020-05-30,Cattaraugus,New York,36009,87,2 +2020-05-31,Cattaraugus,New York,36009,88,3 +2020-06-01,Cattaraugus,New York,36009,89,3 +2020-06-02,Cattaraugus,New York,36009,89,3 +2020-06-03,Cattaraugus,New York,36009,90,3 +2020-06-04,Cattaraugus,New York,36009,91,3 +2020-06-05,Cattaraugus,New York,36009,92,4 +2020-06-06,Cattaraugus,New York,36009,92,4 +2020-06-07,Cattaraugus,New York,36009,94,4 +2020-06-08,Cattaraugus,New York,36009,95,4 +2020-06-09,Cattaraugus,New York,36009,95,4 +2020-06-10,Cattaraugus,New York,36009,96,4 +2020-06-11,Cattaraugus,New York,36009,98,4 +2020-06-12,Cattaraugus,New York,36009,101,4 +2020-06-13,Cattaraugus,New York,36009,101,5 +2020-06-14,Cattaraugus,New York,36009,104,5 +2020-06-15,Cattaraugus,New York,36009,106,5 +2020-06-16,Cattaraugus,New York,36009,107,5 +2020-06-17,Cattaraugus,New York,36009,109,5 +2020-06-18,Cattaraugus,New York,36009,109,5 +2020-06-19,Cattaraugus,New York,36009,109,5 +2020-06-20,Cattaraugus,New York,36009,113,5 +2020-06-21,Cattaraugus,New York,36009,115,5 +2020-06-22,Cattaraugus,New York,36009,115,5 +2020-06-23,Cattaraugus,New York,36009,118,5 +2020-06-24,Cattaraugus,New York,36009,120,5 +2020-06-25,Cattaraugus,New York,36009,121,5 +2020-06-26,Cattaraugus,New York,36009,123,5 +2020-06-27,Cattaraugus,New York,36009,123,5 +2020-06-28,Cattaraugus,New York,36009,123,5 +2020-06-29,Cattaraugus,New York,36009,123,5 +2020-06-30,Cattaraugus,New York,36009,123,5 +2020-07-01,Cattaraugus,New York,36009,123,5 +2020-07-02,Cattaraugus,New York,36009,124,5 +2020-07-03,Cattaraugus,New York,36009,124,5 +2020-07-04,Cattaraugus,New York,36009,127,5 +2020-07-05,Cattaraugus,New York,36009,127,5 +2020-07-06,Cattaraugus,New York,36009,128,5 +2020-07-07,Cattaraugus,New York,36009,128,5 +2020-07-08,Cattaraugus,New York,36009,130,5 +2020-07-09,Cattaraugus,New York,36009,131,5 +2020-03-23,Cayuga,New York,36011,2,0 +2020-03-24,Cayuga,New York,36011,2,0 +2020-03-25,Cayuga,New York,36011,2,0 +2020-03-26,Cayuga,New York,36011,2,0 +2020-03-27,Cayuga,New York,36011,2,0 +2020-03-28,Cayuga,New York,36011,2,0 +2020-03-29,Cayuga,New York,36011,2,0 +2020-03-30,Cayuga,New York,36011,3,0 +2020-03-31,Cayuga,New York,36011,3,0 +2020-04-01,Cayuga,New York,36011,3,0 +2020-04-02,Cayuga,New York,36011,6,0 +2020-04-03,Cayuga,New York,36011,6,0 +2020-04-04,Cayuga,New York,36011,8,0 +2020-04-05,Cayuga,New York,36011,8,0 +2020-04-06,Cayuga,New York,36011,11,1 +2020-04-07,Cayuga,New York,36011,14,1 +2020-04-08,Cayuga,New York,36011,15,1 +2020-04-09,Cayuga,New York,36011,16,1 +2020-04-10,Cayuga,New York,36011,27,1 +2020-04-11,Cayuga,New York,36011,28,1 +2020-04-12,Cayuga,New York,36011,29,1 +2020-04-13,Cayuga,New York,36011,30,1 +2020-04-14,Cayuga,New York,36011,33,1 +2020-04-15,Cayuga,New York,36011,36,1 +2020-04-16,Cayuga,New York,36011,36,1 +2020-04-17,Cayuga,New York,36011,36,1 +2020-04-18,Cayuga,New York,36011,36,1 +2020-04-19,Cayuga,New York,36011,36,1 +2020-04-20,Cayuga,New York,36011,36,1 +2020-04-21,Cayuga,New York,36011,36,1 +2020-04-22,Cayuga,New York,36011,36,1 +2020-04-23,Cayuga,New York,36011,37,1 +2020-04-24,Cayuga,New York,36011,39,1 +2020-04-25,Cayuga,New York,36011,47,1 +2020-04-26,Cayuga,New York,36011,47,1 +2020-04-27,Cayuga,New York,36011,48,1 +2020-04-28,Cayuga,New York,36011,48,1 +2020-04-29,Cayuga,New York,36011,48,1 +2020-04-30,Cayuga,New York,36011,48,1 +2020-05-01,Cayuga,New York,36011,51,1 +2020-05-02,Cayuga,New York,36011,51,1 +2020-05-03,Cayuga,New York,36011,51,1 +2020-05-04,Cayuga,New York,36011,51,1 +2020-05-05,Cayuga,New York,36011,51,1 +2020-05-06,Cayuga,New York,36011,51,1 +2020-05-07,Cayuga,New York,36011,52,1 +2020-05-08,Cayuga,New York,36011,52,1 +2020-05-09,Cayuga,New York,36011,53,1 +2020-05-10,Cayuga,New York,36011,58,1 +2020-05-11,Cayuga,New York,36011,60,1 +2020-05-12,Cayuga,New York,36011,60,1 +2020-05-13,Cayuga,New York,36011,60,1 +2020-05-14,Cayuga,New York,36011,60,1 +2020-05-15,Cayuga,New York,36011,61,1 +2020-05-16,Cayuga,New York,36011,63,1 +2020-05-17,Cayuga,New York,36011,63,1 +2020-05-18,Cayuga,New York,36011,65,1 +2020-05-19,Cayuga,New York,36011,68,1 +2020-05-20,Cayuga,New York,36011,68,1 +2020-05-21,Cayuga,New York,36011,72,1 +2020-05-22,Cayuga,New York,36011,73,1 +2020-05-23,Cayuga,New York,36011,76,1 +2020-05-24,Cayuga,New York,36011,77,1 +2020-05-25,Cayuga,New York,36011,77,1 +2020-05-26,Cayuga,New York,36011,78,1 +2020-05-27,Cayuga,New York,36011,80,1 +2020-05-28,Cayuga,New York,36011,84,1 +2020-05-29,Cayuga,New York,36011,89,1 +2020-05-30,Cayuga,New York,36011,90,1 +2020-05-31,Cayuga,New York,36011,91,1 +2020-06-01,Cayuga,New York,36011,92,1 +2020-06-02,Cayuga,New York,36011,93,1 +2020-06-03,Cayuga,New York,36011,96,1 +2020-06-04,Cayuga,New York,36011,96,1 +2020-06-05,Cayuga,New York,36011,98,1 +2020-06-06,Cayuga,New York,36011,100,1 +2020-06-07,Cayuga,New York,36011,101,1 +2020-06-08,Cayuga,New York,36011,101,1 +2020-06-09,Cayuga,New York,36011,102,1 +2020-06-10,Cayuga,New York,36011,102,1 +2020-06-11,Cayuga,New York,36011,102,1 +2020-06-12,Cayuga,New York,36011,103,1 +2020-06-13,Cayuga,New York,36011,103,1 +2020-06-14,Cayuga,New York,36011,106,1 +2020-06-15,Cayuga,New York,36011,106,1 +2020-06-16,Cayuga,New York,36011,106,1 +2020-06-17,Cayuga,New York,36011,106,1 +2020-06-18,Cayuga,New York,36011,106,1 +2020-06-19,Cayuga,New York,36011,107,1 +2020-06-20,Cayuga,New York,36011,108,1 +2020-06-21,Cayuga,New York,36011,108,1 +2020-06-22,Cayuga,New York,36011,108,1 +2020-06-23,Cayuga,New York,36011,108,1 +2020-06-24,Cayuga,New York,36011,109,1 +2020-06-25,Cayuga,New York,36011,109,1 +2020-06-26,Cayuga,New York,36011,109,1 +2020-06-27,Cayuga,New York,36011,111,1 +2020-06-28,Cayuga,New York,36011,113,1 +2020-06-29,Cayuga,New York,36011,114,1 +2020-06-30,Cayuga,New York,36011,115,1 +2020-07-01,Cayuga,New York,36011,119,1 +2020-07-02,Cayuga,New York,36011,119,1 +2020-07-03,Cayuga,New York,36011,120,1 +2020-07-04,Cayuga,New York,36011,120,1 +2020-07-05,Cayuga,New York,36011,120,1 +2020-07-06,Cayuga,New York,36011,122,1 +2020-07-07,Cayuga,New York,36011,122,1 +2020-07-08,Cayuga,New York,36011,122,1 +2020-07-09,Cayuga,New York,36011,124,1 +2020-03-25,Chautauqua,New York,36013,1,0 +2020-03-26,Chautauqua,New York,36013,1,0 +2020-03-27,Chautauqua,New York,36013,1,0 +2020-03-28,Chautauqua,New York,36013,5,0 +2020-03-29,Chautauqua,New York,36013,5,0 +2020-03-30,Chautauqua,New York,36013,5,0 +2020-03-31,Chautauqua,New York,36013,6,0 +2020-04-01,Chautauqua,New York,36013,10,1 +2020-04-02,Chautauqua,New York,36013,10,1 +2020-04-03,Chautauqua,New York,36013,10,1 +2020-04-04,Chautauqua,New York,36013,12,0 +2020-04-05,Chautauqua,New York,36013,12,0 +2020-04-06,Chautauqua,New York,36013,15,0 +2020-04-07,Chautauqua,New York,36013,16,0 +2020-04-08,Chautauqua,New York,36013,17,1 +2020-04-09,Chautauqua,New York,36013,18,1 +2020-04-10,Chautauqua,New York,36013,20,1 +2020-04-11,Chautauqua,New York,36013,21,1 +2020-04-12,Chautauqua,New York,36013,22,1 +2020-04-13,Chautauqua,New York,36013,23,1 +2020-04-14,Chautauqua,New York,36013,23,1 +2020-04-15,Chautauqua,New York,36013,24,1 +2020-04-16,Chautauqua,New York,36013,24,1 +2020-04-17,Chautauqua,New York,36013,25,1 +2020-04-18,Chautauqua,New York,36013,25,1 +2020-04-19,Chautauqua,New York,36013,25,1 +2020-04-20,Chautauqua,New York,36013,25,1 +2020-04-21,Chautauqua,New York,36013,25,1 +2020-04-22,Chautauqua,New York,36013,26,1 +2020-04-23,Chautauqua,New York,36013,26,1 +2020-04-24,Chautauqua,New York,36013,27,1 +2020-04-25,Chautauqua,New York,36013,27,1 +2020-04-26,Chautauqua,New York,36013,29,1 +2020-04-27,Chautauqua,New York,36013,30,1 +2020-04-28,Chautauqua,New York,36013,30,1 +2020-04-29,Chautauqua,New York,36013,31,1 +2020-04-30,Chautauqua,New York,36013,33,1 +2020-05-01,Chautauqua,New York,36013,35,1 +2020-05-02,Chautauqua,New York,36013,35,1 +2020-05-03,Chautauqua,New York,36013,36,2 +2020-05-04,Chautauqua,New York,36013,37,2 +2020-05-05,Chautauqua,New York,36013,37,2 +2020-05-06,Chautauqua,New York,36013,38,2 +2020-05-07,Chautauqua,New York,36013,40,2 +2020-05-08,Chautauqua,New York,36013,40,2 +2020-05-09,Chautauqua,New York,36013,40,2 +2020-05-10,Chautauqua,New York,36013,41,2 +2020-05-11,Chautauqua,New York,36013,41,2 +2020-05-12,Chautauqua,New York,36013,42,3 +2020-05-13,Chautauqua,New York,36013,43,3 +2020-05-14,Chautauqua,New York,36013,44,3 +2020-05-15,Chautauqua,New York,36013,45,3 +2020-05-16,Chautauqua,New York,36013,48,3 +2020-05-17,Chautauqua,New York,36013,48,3 +2020-05-18,Chautauqua,New York,36013,49,3 +2020-05-19,Chautauqua,New York,36013,49,3 +2020-05-20,Chautauqua,New York,36013,50,3 +2020-05-21,Chautauqua,New York,36013,58,3 +2020-05-22,Chautauqua,New York,36013,63,3 +2020-05-23,Chautauqua,New York,36013,72,3 +2020-05-24,Chautauqua,New York,36013,75,3 +2020-05-25,Chautauqua,New York,36013,75,3 +2020-05-26,Chautauqua,New York,36013,77,3 +2020-05-27,Chautauqua,New York,36013,78,3 +2020-05-28,Chautauqua,New York,36013,81,3 +2020-05-29,Chautauqua,New York,36013,82,3 +2020-05-30,Chautauqua,New York,36013,83,3 +2020-05-31,Chautauqua,New York,36013,84,3 +2020-06-01,Chautauqua,New York,36013,85,3 +2020-06-02,Chautauqua,New York,36013,86,3 +2020-06-03,Chautauqua,New York,36013,89,3 +2020-06-04,Chautauqua,New York,36013,95,4 +2020-06-05,Chautauqua,New York,36013,97,4 +2020-06-06,Chautauqua,New York,36013,99,4 +2020-06-07,Chautauqua,New York,36013,101,4 +2020-06-08,Chautauqua,New York,36013,101,4 +2020-06-09,Chautauqua,New York,36013,103,4 +2020-06-10,Chautauqua,New York,36013,105,4 +2020-06-11,Chautauqua,New York,36013,106,4 +2020-06-12,Chautauqua,New York,36013,106,4 +2020-06-13,Chautauqua,New York,36013,106,4 +2020-06-14,Chautauqua,New York,36013,107,4 +2020-06-15,Chautauqua,New York,36013,107,4 +2020-06-16,Chautauqua,New York,36013,108,4 +2020-06-17,Chautauqua,New York,36013,108,4 +2020-06-18,Chautauqua,New York,36013,110,4 +2020-06-19,Chautauqua,New York,36013,112,4 +2020-06-20,Chautauqua,New York,36013,115,4 +2020-06-21,Chautauqua,New York,36013,116,4 +2020-06-22,Chautauqua,New York,36013,116,4 +2020-06-23,Chautauqua,New York,36013,116,4 +2020-06-24,Chautauqua,New York,36013,118,4 +2020-06-25,Chautauqua,New York,36013,121,4 +2020-06-26,Chautauqua,New York,36013,122,4 +2020-06-27,Chautauqua,New York,36013,123,4 +2020-06-28,Chautauqua,New York,36013,123,4 +2020-06-29,Chautauqua,New York,36013,123,4 +2020-06-30,Chautauqua,New York,36013,127,4 +2020-07-01,Chautauqua,New York,36013,127,4 +2020-07-02,Chautauqua,New York,36013,127,4 +2020-07-03,Chautauqua,New York,36013,129,4 +2020-07-04,Chautauqua,New York,36013,131,4 +2020-07-05,Chautauqua,New York,36013,132,4 +2020-07-06,Chautauqua,New York,36013,134,4 +2020-07-07,Chautauqua,New York,36013,135,4 +2020-07-08,Chautauqua,New York,36013,149,4 +2020-07-09,Chautauqua,New York,36013,152,4 +2020-03-24,Chemung,New York,36015,1,0 +2020-03-25,Chemung,New York,36015,1,0 +2020-03-26,Chemung,New York,36015,7,0 +2020-03-27,Chemung,New York,36015,11,0 +2020-03-28,Chemung,New York,36015,12,0 +2020-03-29,Chemung,New York,36015,15,0 +2020-03-30,Chemung,New York,36015,15,0 +2020-03-31,Chemung,New York,36015,20,0 +2020-04-01,Chemung,New York,36015,22,0 +2020-04-02,Chemung,New York,36015,22,0 +2020-04-03,Chemung,New York,36015,22,0 +2020-04-04,Chemung,New York,36015,36,0 +2020-04-05,Chemung,New York,36015,38,0 +2020-04-06,Chemung,New York,36015,47,0 +2020-04-07,Chemung,New York,36015,49,0 +2020-04-08,Chemung,New York,36015,55,1 +2020-04-09,Chemung,New York,36015,59,2 +2020-04-10,Chemung,New York,36015,59,2 +2020-04-11,Chemung,New York,36015,60,2 +2020-04-12,Chemung,New York,36015,60,2 +2020-04-13,Chemung,New York,36015,60,2 +2020-04-14,Chemung,New York,36015,64,2 +2020-04-15,Chemung,New York,36015,69,2 +2020-04-16,Chemung,New York,36015,70,2 +2020-04-17,Chemung,New York,36015,71,2 +2020-04-18,Chemung,New York,36015,72,2 +2020-04-19,Chemung,New York,36015,73,2 +2020-04-20,Chemung,New York,36015,73,2 +2020-04-21,Chemung,New York,36015,75,2 +2020-04-22,Chemung,New York,36015,75,2 +2020-04-23,Chemung,New York,36015,76,3 +2020-04-24,Chemung,New York,36015,79,3 +2020-04-25,Chemung,New York,36015,103,3 +2020-04-26,Chemung,New York,36015,106,3 +2020-04-27,Chemung,New York,36015,108,3 +2020-04-28,Chemung,New York,36015,113,3 +2020-04-29,Chemung,New York,36015,119,3 +2020-04-30,Chemung,New York,36015,122,3 +2020-05-01,Chemung,New York,36015,123,3 +2020-05-02,Chemung,New York,36015,124,3 +2020-05-03,Chemung,New York,36015,125,3 +2020-05-04,Chemung,New York,36015,126,3 +2020-05-05,Chemung,New York,36015,126,3 +2020-05-06,Chemung,New York,36015,128,4 +2020-05-07,Chemung,New York,36015,129,4 +2020-05-08,Chemung,New York,36015,130,5 +2020-05-09,Chemung,New York,36015,131,5 +2020-05-10,Chemung,New York,36015,131,5 +2020-05-11,Chemung,New York,36015,131,5 +2020-05-12,Chemung,New York,36015,131,5 +2020-05-13,Chemung,New York,36015,132,5 +2020-05-14,Chemung,New York,36015,132,5 +2020-05-15,Chemung,New York,36015,133,5 +2020-05-16,Chemung,New York,36015,134,5 +2020-05-17,Chemung,New York,36015,134,5 +2020-05-18,Chemung,New York,36015,134,5 +2020-05-19,Chemung,New York,36015,134,5 +2020-05-20,Chemung,New York,36015,134,5 +2020-05-21,Chemung,New York,36015,134,5 +2020-05-22,Chemung,New York,36015,135,5 +2020-05-23,Chemung,New York,36015,136,5 +2020-05-24,Chemung,New York,36015,136,5 +2020-05-25,Chemung,New York,36015,136,5 +2020-05-26,Chemung,New York,36015,136,5 +2020-05-27,Chemung,New York,36015,136,5 +2020-05-28,Chemung,New York,36015,136,5 +2020-05-29,Chemung,New York,36015,137,5 +2020-05-30,Chemung,New York,36015,137,5 +2020-05-31,Chemung,New York,36015,137,5 +2020-06-01,Chemung,New York,36015,137,5 +2020-06-02,Chemung,New York,36015,137,5 +2020-06-03,Chemung,New York,36015,137,5 +2020-06-04,Chemung,New York,36015,137,5 +2020-06-05,Chemung,New York,36015,137,5 +2020-06-06,Chemung,New York,36015,137,5 +2020-06-07,Chemung,New York,36015,137,5 +2020-06-08,Chemung,New York,36015,137,5 +2020-06-09,Chemung,New York,36015,138,5 +2020-06-10,Chemung,New York,36015,138,5 +2020-06-11,Chemung,New York,36015,138,5 +2020-06-12,Chemung,New York,36015,138,5 +2020-06-13,Chemung,New York,36015,138,5 +2020-06-14,Chemung,New York,36015,138,5 +2020-06-15,Chemung,New York,36015,138,5 +2020-06-16,Chemung,New York,36015,138,5 +2020-06-17,Chemung,New York,36015,138,5 +2020-06-18,Chemung,New York,36015,138,5 +2020-06-19,Chemung,New York,36015,139,5 +2020-06-20,Chemung,New York,36015,139,5 +2020-06-21,Chemung,New York,36015,139,5 +2020-06-22,Chemung,New York,36015,139,5 +2020-06-23,Chemung,New York,36015,139,5 +2020-06-24,Chemung,New York,36015,139,5 +2020-06-25,Chemung,New York,36015,139,5 +2020-06-26,Chemung,New York,36015,139,5 +2020-06-27,Chemung,New York,36015,139,5 +2020-06-28,Chemung,New York,36015,140,5 +2020-06-29,Chemung,New York,36015,140,5 +2020-06-30,Chemung,New York,36015,141,5 +2020-07-01,Chemung,New York,36015,144,5 +2020-07-02,Chemung,New York,36015,144,5 +2020-07-03,Chemung,New York,36015,145,5 +2020-07-04,Chemung,New York,36015,146,5 +2020-07-05,Chemung,New York,36015,146,5 +2020-07-06,Chemung,New York,36015,146,5 +2020-07-07,Chemung,New York,36015,147,5 +2020-07-08,Chemung,New York,36015,147,5 +2020-07-09,Chemung,New York,36015,148,5 +2020-03-18,Chenango,New York,36017,1,0 +2020-03-19,Chenango,New York,36017,1,0 +2020-03-20,Chenango,New York,36017,2,0 +2020-03-21,Chenango,New York,36017,2,0 +2020-03-22,Chenango,New York,36017,3,0 +2020-03-23,Chenango,New York,36017,3,0 +2020-03-24,Chenango,New York,36017,3,0 +2020-03-25,Chenango,New York,36017,3,0 +2020-03-26,Chenango,New York,36017,3,0 +2020-03-27,Chenango,New York,36017,4,0 +2020-03-28,Chenango,New York,36017,8,0 +2020-03-29,Chenango,New York,36017,15,0 +2020-03-30,Chenango,New York,36017,17,0 +2020-03-31,Chenango,New York,36017,19,0 +2020-04-01,Chenango,New York,36017,26,0 +2020-04-02,Chenango,New York,36017,28,0 +2020-04-03,Chenango,New York,36017,28,0 +2020-04-04,Chenango,New York,36017,39,0 +2020-04-05,Chenango,New York,36017,43,0 +2020-04-06,Chenango,New York,36017,46,0 +2020-04-07,Chenango,New York,36017,51,0 +2020-04-08,Chenango,New York,36017,53,0 +2020-04-09,Chenango,New York,36017,55,0 +2020-04-10,Chenango,New York,36017,60,0 +2020-04-11,Chenango,New York,36017,61,0 +2020-04-12,Chenango,New York,36017,63,0 +2020-04-13,Chenango,New York,36017,65,0 +2020-04-14,Chenango,New York,36017,68,0 +2020-04-15,Chenango,New York,36017,71,0 +2020-04-16,Chenango,New York,36017,73,0 +2020-04-17,Chenango,New York,36017,76,0 +2020-04-18,Chenango,New York,36017,77,0 +2020-04-19,Chenango,New York,36017,78,0 +2020-04-20,Chenango,New York,36017,78,0 +2020-04-21,Chenango,New York,36017,79,0 +2020-04-22,Chenango,New York,36017,79,0 +2020-04-23,Chenango,New York,36017,82,0 +2020-04-24,Chenango,New York,36017,84,0 +2020-04-25,Chenango,New York,36017,91,0 +2020-04-26,Chenango,New York,36017,93,0 +2020-04-27,Chenango,New York,36017,95,0 +2020-04-28,Chenango,New York,36017,95,0 +2020-04-29,Chenango,New York,36017,96,0 +2020-04-30,Chenango,New York,36017,98,0 +2020-05-01,Chenango,New York,36017,99,0 +2020-05-02,Chenango,New York,36017,99,0 +2020-05-03,Chenango,New York,36017,99,0 +2020-05-04,Chenango,New York,36017,100,0 +2020-05-05,Chenango,New York,36017,100,0 +2020-05-06,Chenango,New York,36017,102,2 +2020-05-07,Chenango,New York,36017,105,2 +2020-05-08,Chenango,New York,36017,105,2 +2020-05-09,Chenango,New York,36017,109,2 +2020-05-10,Chenango,New York,36017,109,2 +2020-05-11,Chenango,New York,36017,111,2 +2020-05-12,Chenango,New York,36017,112,2 +2020-05-13,Chenango,New York,36017,112,2 +2020-05-14,Chenango,New York,36017,112,2 +2020-05-15,Chenango,New York,36017,113,2 +2020-05-16,Chenango,New York,36017,115,2 +2020-05-17,Chenango,New York,36017,117,2 +2020-05-18,Chenango,New York,36017,118,2 +2020-05-19,Chenango,New York,36017,118,2 +2020-05-20,Chenango,New York,36017,118,2 +2020-05-21,Chenango,New York,36017,118,2 +2020-05-22,Chenango,New York,36017,118,2 +2020-05-23,Chenango,New York,36017,118,2 +2020-05-24,Chenango,New York,36017,118,2 +2020-05-25,Chenango,New York,36017,119,2 +2020-05-26,Chenango,New York,36017,123,2 +2020-05-27,Chenango,New York,36017,125,2 +2020-05-28,Chenango,New York,36017,126,2 +2020-05-29,Chenango,New York,36017,130,2 +2020-05-30,Chenango,New York,36017,132,2 +2020-05-31,Chenango,New York,36017,133,2 +2020-06-01,Chenango,New York,36017,133,2 +2020-06-02,Chenango,New York,36017,133,2 +2020-06-03,Chenango,New York,36017,133,2 +2020-06-04,Chenango,New York,36017,133,2 +2020-06-05,Chenango,New York,36017,133,2 +2020-06-06,Chenango,New York,36017,133,2 +2020-06-07,Chenango,New York,36017,134,2 +2020-06-08,Chenango,New York,36017,135,2 +2020-06-09,Chenango,New York,36017,135,3 +2020-06-10,Chenango,New York,36017,137,3 +2020-06-11,Chenango,New York,36017,137,3 +2020-06-12,Chenango,New York,36017,138,3 +2020-06-13,Chenango,New York,36017,138,3 +2020-06-14,Chenango,New York,36017,138,3 +2020-06-15,Chenango,New York,36017,138,3 +2020-06-16,Chenango,New York,36017,139,3 +2020-06-17,Chenango,New York,36017,139,3 +2020-06-18,Chenango,New York,36017,139,3 +2020-06-19,Chenango,New York,36017,139,3 +2020-06-20,Chenango,New York,36017,139,3 +2020-06-21,Chenango,New York,36017,139,3 +2020-06-22,Chenango,New York,36017,140,3 +2020-06-23,Chenango,New York,36017,141,3 +2020-06-24,Chenango,New York,36017,142,3 +2020-06-25,Chenango,New York,36017,144,3 +2020-06-26,Chenango,New York,36017,145,3 +2020-06-27,Chenango,New York,36017,146,3 +2020-06-28,Chenango,New York,36017,146,3 +2020-06-29,Chenango,New York,36017,146,3 +2020-06-30,Chenango,New York,36017,146,3 +2020-07-01,Chenango,New York,36017,146,3 +2020-07-02,Chenango,New York,36017,148,3 +2020-07-03,Chenango,New York,36017,148,3 +2020-07-04,Chenango,New York,36017,149,3 +2020-07-05,Chenango,New York,36017,150,3 +2020-07-06,Chenango,New York,36017,156,3 +2020-07-07,Chenango,New York,36017,157,3 +2020-07-08,Chenango,New York,36017,159,3 +2020-07-09,Chenango,New York,36017,163,3 +2020-03-17,Clinton,New York,36019,1,0 +2020-03-18,Clinton,New York,36019,1,0 +2020-03-19,Clinton,New York,36019,1,0 +2020-03-20,Clinton,New York,36019,2,0 +2020-03-21,Clinton,New York,36019,4,0 +2020-03-22,Clinton,New York,36019,4,0 +2020-03-23,Clinton,New York,36019,6,0 +2020-03-24,Clinton,New York,36019,8,0 +2020-03-25,Clinton,New York,36019,10,0 +2020-03-26,Clinton,New York,36019,11,0 +2020-03-27,Clinton,New York,36019,11,0 +2020-03-28,Clinton,New York,36019,12,0 +2020-03-29,Clinton,New York,36019,13,0 +2020-03-30,Clinton,New York,36019,17,0 +2020-03-31,Clinton,New York,36019,21,0 +2020-04-01,Clinton,New York,36019,25,0 +2020-04-02,Clinton,New York,36019,25,0 +2020-04-03,Clinton,New York,36019,25,0 +2020-04-04,Clinton,New York,36019,31,0 +2020-04-05,Clinton,New York,36019,33,0 +2020-04-06,Clinton,New York,36019,36,0 +2020-04-07,Clinton,New York,36019,37,0 +2020-04-08,Clinton,New York,36019,39,0 +2020-04-09,Clinton,New York,36019,40,0 +2020-04-10,Clinton,New York,36019,43,0 +2020-04-11,Clinton,New York,36019,43,0 +2020-04-12,Clinton,New York,36019,43,2 +2020-04-13,Clinton,New York,36019,44,3 +2020-04-14,Clinton,New York,36019,45,3 +2020-04-15,Clinton,New York,36019,45,3 +2020-04-16,Clinton,New York,36019,46,3 +2020-04-17,Clinton,New York,36019,47,3 +2020-04-18,Clinton,New York,36019,48,3 +2020-04-19,Clinton,New York,36019,49,3 +2020-04-20,Clinton,New York,36019,51,3 +2020-04-21,Clinton,New York,36019,51,3 +2020-04-22,Clinton,New York,36019,51,3 +2020-04-23,Clinton,New York,36019,52,4 +2020-04-24,Clinton,New York,36019,53,4 +2020-04-25,Clinton,New York,36019,54,4 +2020-04-26,Clinton,New York,36019,57,4 +2020-04-27,Clinton,New York,36019,59,4 +2020-04-28,Clinton,New York,36019,59,4 +2020-04-29,Clinton,New York,36019,59,4 +2020-04-30,Clinton,New York,36019,59,4 +2020-05-01,Clinton,New York,36019,61,4 +2020-05-02,Clinton,New York,36019,62,4 +2020-05-03,Clinton,New York,36019,66,4 +2020-05-04,Clinton,New York,36019,68,4 +2020-05-05,Clinton,New York,36019,69,4 +2020-05-06,Clinton,New York,36019,69,4 +2020-05-07,Clinton,New York,36019,69,4 +2020-05-08,Clinton,New York,36019,74,4 +2020-05-09,Clinton,New York,36019,76,4 +2020-05-10,Clinton,New York,36019,76,4 +2020-05-11,Clinton,New York,36019,76,4 +2020-05-12,Clinton,New York,36019,77,4 +2020-05-13,Clinton,New York,36019,78,4 +2020-05-14,Clinton,New York,36019,81,4 +2020-05-15,Clinton,New York,36019,85,4 +2020-05-16,Clinton,New York,36019,91,4 +2020-05-17,Clinton,New York,36019,92,4 +2020-05-18,Clinton,New York,36019,94,4 +2020-05-19,Clinton,New York,36019,94,4 +2020-05-20,Clinton,New York,36019,94,4 +2020-05-21,Clinton,New York,36019,94,4 +2020-05-22,Clinton,New York,36019,94,4 +2020-05-23,Clinton,New York,36019,95,4 +2020-05-24,Clinton,New York,36019,95,4 +2020-05-25,Clinton,New York,36019,95,4 +2020-05-26,Clinton,New York,36019,95,4 +2020-05-27,Clinton,New York,36019,95,4 +2020-05-28,Clinton,New York,36019,95,4 +2020-05-29,Clinton,New York,36019,95,4 +2020-05-30,Clinton,New York,36019,95,4 +2020-05-31,Clinton,New York,36019,95,4 +2020-06-01,Clinton,New York,36019,96,4 +2020-06-02,Clinton,New York,36019,97,4 +2020-06-03,Clinton,New York,36019,97,4 +2020-06-04,Clinton,New York,36019,97,4 +2020-06-05,Clinton,New York,36019,97,4 +2020-06-06,Clinton,New York,36019,97,4 +2020-06-07,Clinton,New York,36019,97,4 +2020-06-08,Clinton,New York,36019,97,4 +2020-06-09,Clinton,New York,36019,97,4 +2020-06-10,Clinton,New York,36019,97,4 +2020-06-11,Clinton,New York,36019,98,4 +2020-06-12,Clinton,New York,36019,98,4 +2020-06-13,Clinton,New York,36019,98,4 +2020-06-14,Clinton,New York,36019,98,4 +2020-06-15,Clinton,New York,36019,98,4 +2020-06-16,Clinton,New York,36019,99,4 +2020-06-17,Clinton,New York,36019,99,4 +2020-06-18,Clinton,New York,36019,99,4 +2020-06-19,Clinton,New York,36019,99,4 +2020-06-20,Clinton,New York,36019,100,4 +2020-06-21,Clinton,New York,36019,100,4 +2020-06-22,Clinton,New York,36019,100,4 +2020-06-23,Clinton,New York,36019,100,4 +2020-06-24,Clinton,New York,36019,100,4 +2020-06-25,Clinton,New York,36019,101,4 +2020-06-26,Clinton,New York,36019,101,4 +2020-06-27,Clinton,New York,36019,101,4 +2020-06-28,Clinton,New York,36019,101,4 +2020-06-29,Clinton,New York,36019,101,4 +2020-06-30,Clinton,New York,36019,101,4 +2020-07-01,Clinton,New York,36019,101,4 +2020-07-02,Clinton,New York,36019,101,4 +2020-07-03,Clinton,New York,36019,101,4 +2020-07-04,Clinton,New York,36019,101,4 +2020-07-05,Clinton,New York,36019,103,4 +2020-07-06,Clinton,New York,36019,103,4 +2020-07-07,Clinton,New York,36019,105,4 +2020-07-08,Clinton,New York,36019,106,4 +2020-07-09,Clinton,New York,36019,107,4 +2020-03-20,Columbia,New York,36021,1,0 +2020-03-21,Columbia,New York,36021,2,0 +2020-03-22,Columbia,New York,36021,5,0 +2020-03-23,Columbia,New York,36021,10,0 +2020-03-24,Columbia,New York,36021,11,0 +2020-03-25,Columbia,New York,36021,12,0 +2020-03-26,Columbia,New York,36021,13,0 +2020-03-27,Columbia,New York,36021,20,0 +2020-03-28,Columbia,New York,36021,22,0 +2020-03-29,Columbia,New York,36021,23,1 +2020-03-30,Columbia,New York,36021,26,1 +2020-03-31,Columbia,New York,36021,36,1 +2020-04-01,Columbia,New York,36021,41,1 +2020-04-02,Columbia,New York,36021,41,2 +2020-04-03,Columbia,New York,36021,41,2 +2020-04-04,Columbia,New York,36021,61,3 +2020-04-05,Columbia,New York,36021,61,3 +2020-04-06,Columbia,New York,36021,70,3 +2020-04-07,Columbia,New York,36021,72,3 +2020-04-08,Columbia,New York,36021,72,4 +2020-04-09,Columbia,New York,36021,70,4 +2020-04-10,Columbia,New York,36021,74,4 +2020-04-11,Columbia,New York,36021,77,6 +2020-04-12,Columbia,New York,36021,79,8 +2020-04-13,Columbia,New York,36021,80,9 +2020-04-14,Columbia,New York,36021,84,10 +2020-04-15,Columbia,New York,36021,96,11 +2020-04-16,Columbia,New York,36021,99,13 +2020-04-17,Columbia,New York,36021,101,13 +2020-04-18,Columbia,New York,36021,105,13 +2020-04-19,Columbia,New York,36021,107,15 +2020-04-20,Columbia,New York,36021,111,15 +2020-04-21,Columbia,New York,36021,113,16 +2020-04-22,Columbia,New York,36021,117,16 +2020-04-23,Columbia,New York,36021,123,16 +2020-04-24,Columbia,New York,36021,129,16 +2020-04-25,Columbia,New York,36021,140,16 +2020-04-26,Columbia,New York,36021,143,16 +2020-04-27,Columbia,New York,36021,146,16 +2020-04-28,Columbia,New York,36021,154,16 +2020-04-29,Columbia,New York,36021,165,16 +2020-04-30,Columbia,New York,36021,170,16 +2020-05-01,Columbia,New York,36021,202,16 +2020-05-02,Columbia,New York,36021,205,16 +2020-05-03,Columbia,New York,36021,209,17 +2020-05-04,Columbia,New York,36021,213,17 +2020-05-05,Columbia,New York,36021,229,18 +2020-05-06,Columbia,New York,36021,291,21 +2020-05-07,Columbia,New York,36021,302,21 +2020-05-08,Columbia,New York,36021,304,21 +2020-05-09,Columbia,New York,36021,304,23 +2020-05-10,Columbia,New York,36021,312,23 +2020-05-11,Columbia,New York,36021,314,23 +2020-05-12,Columbia,New York,36021,314,26 +2020-05-13,Columbia,New York,36021,318,29 +2020-05-14,Columbia,New York,36021,327,30 +2020-05-15,Columbia,New York,36021,333,30 +2020-05-16,Columbia,New York,36021,338,30 +2020-05-17,Columbia,New York,36021,340,30 +2020-05-18,Columbia,New York,36021,346,31 +2020-05-19,Columbia,New York,36021,350,32 +2020-05-20,Columbia,New York,36021,350,32 +2020-05-21,Columbia,New York,36021,355,34 +2020-05-22,Columbia,New York,36021,356,34 +2020-05-23,Columbia,New York,36021,359,35 +2020-05-24,Columbia,New York,36021,365,36 +2020-05-25,Columbia,New York,36021,372,36 +2020-05-26,Columbia,New York,36021,373,36 +2020-05-27,Columbia,New York,36021,380,37 +2020-05-28,Columbia,New York,36021,380,37 +2020-05-29,Columbia,New York,36021,382,37 +2020-05-30,Columbia,New York,36021,383,37 +2020-05-31,Columbia,New York,36021,387,38 +2020-06-01,Columbia,New York,36021,389,38 +2020-06-02,Columbia,New York,36021,391,38 +2020-06-03,Columbia,New York,36021,399,38 +2020-06-04,Columbia,New York,36021,400,39 +2020-06-05,Columbia,New York,36021,411,39 +2020-06-06,Columbia,New York,36021,412,39 +2020-06-07,Columbia,New York,36021,414,39 +2020-06-08,Columbia,New York,36021,414,39 +2020-06-09,Columbia,New York,36021,414,40 +2020-06-10,Columbia,New York,36021,420,41 +2020-06-11,Columbia,New York,36021,424,41 +2020-06-12,Columbia,New York,36021,428,42 +2020-06-13,Columbia,New York,36021,431,42 +2020-06-14,Columbia,New York,36021,436,42 +2020-06-15,Columbia,New York,36021,439,42 +2020-06-16,Columbia,New York,36021,442,43 +2020-06-17,Columbia,New York,36021,442,43 +2020-06-18,Columbia,New York,36021,443,43 +2020-06-19,Columbia,New York,36021,446,43 +2020-06-20,Columbia,New York,36021,451,43 +2020-06-21,Columbia,New York,36021,451,43 +2020-06-22,Columbia,New York,36021,452,43 +2020-06-23,Columbia,New York,36021,454,43 +2020-06-24,Columbia,New York,36021,454,43 +2020-06-25,Columbia,New York,36021,455,43 +2020-06-26,Columbia,New York,36021,460,43 +2020-06-27,Columbia,New York,36021,461,43 +2020-06-28,Columbia,New York,36021,463,43 +2020-06-29,Columbia,New York,36021,463,43 +2020-06-30,Columbia,New York,36021,464,43 +2020-07-01,Columbia,New York,36021,466,43 +2020-07-02,Columbia,New York,36021,472,43 +2020-07-03,Columbia,New York,36021,474,43 +2020-07-04,Columbia,New York,36021,474,43 +2020-07-05,Columbia,New York,36021,475,43 +2020-07-06,Columbia,New York,36021,477,43 +2020-07-07,Columbia,New York,36021,479,43 +2020-07-08,Columbia,New York,36021,482,43 +2020-07-09,Columbia,New York,36021,482,43 +2020-03-22,Cortland,New York,36023,1,0 +2020-03-23,Cortland,New York,36023,2,0 +2020-03-24,Cortland,New York,36023,2,0 +2020-03-25,Cortland,New York,36023,2,0 +2020-03-26,Cortland,New York,36023,2,0 +2020-03-27,Cortland,New York,36023,4,0 +2020-03-28,Cortland,New York,36023,5,0 +2020-03-29,Cortland,New York,36023,6,0 +2020-03-30,Cortland,New York,36023,8,0 +2020-03-31,Cortland,New York,36023,8,0 +2020-04-01,Cortland,New York,36023,10,0 +2020-04-02,Cortland,New York,36023,10,0 +2020-04-03,Cortland,New York,36023,10,0 +2020-04-04,Cortland,New York,36023,14,0 +2020-04-05,Cortland,New York,36023,14,0 +2020-04-06,Cortland,New York,36023,15,0 +2020-04-07,Cortland,New York,36023,16,0 +2020-04-08,Cortland,New York,36023,16,0 +2020-04-09,Cortland,New York,36023,16,0 +2020-04-10,Cortland,New York,36023,17,0 +2020-04-11,Cortland,New York,36023,17,0 +2020-04-12,Cortland,New York,36023,18,0 +2020-04-13,Cortland,New York,36023,20,0 +2020-04-14,Cortland,New York,36023,22,0 +2020-04-15,Cortland,New York,36023,23,0 +2020-04-16,Cortland,New York,36023,24,0 +2020-04-17,Cortland,New York,36023,25,0 +2020-04-18,Cortland,New York,36023,25,0 +2020-04-19,Cortland,New York,36023,25,0 +2020-04-20,Cortland,New York,36023,25,0 +2020-04-21,Cortland,New York,36023,25,0 +2020-04-22,Cortland,New York,36023,25,0 +2020-04-23,Cortland,New York,36023,25,0 +2020-04-24,Cortland,New York,36023,25,0 +2020-04-25,Cortland,New York,36023,28,0 +2020-04-26,Cortland,New York,36023,28,0 +2020-04-27,Cortland,New York,36023,28,0 +2020-04-28,Cortland,New York,36023,28,0 +2020-04-29,Cortland,New York,36023,28,0 +2020-04-30,Cortland,New York,36023,28,0 +2020-05-01,Cortland,New York,36023,28,0 +2020-05-02,Cortland,New York,36023,28,0 +2020-05-03,Cortland,New York,36023,28,0 +2020-05-04,Cortland,New York,36023,28,0 +2020-05-05,Cortland,New York,36023,28,0 +2020-05-06,Cortland,New York,36023,28,0 +2020-05-07,Cortland,New York,36023,29,0 +2020-05-08,Cortland,New York,36023,29,0 +2020-05-09,Cortland,New York,36023,29,0 +2020-05-10,Cortland,New York,36023,29,0 +2020-05-11,Cortland,New York,36023,29,0 +2020-05-12,Cortland,New York,36023,30,0 +2020-05-13,Cortland,New York,36023,31,0 +2020-05-14,Cortland,New York,36023,33,0 +2020-05-15,Cortland,New York,36023,33,0 +2020-05-16,Cortland,New York,36023,34,0 +2020-05-17,Cortland,New York,36023,34,0 +2020-05-18,Cortland,New York,36023,35,0 +2020-05-19,Cortland,New York,36023,36,0 +2020-05-20,Cortland,New York,36023,36,0 +2020-05-21,Cortland,New York,36023,36,0 +2020-05-22,Cortland,New York,36023,37,0 +2020-05-23,Cortland,New York,36023,38,0 +2020-05-24,Cortland,New York,36023,39,0 +2020-05-25,Cortland,New York,36023,39,0 +2020-05-26,Cortland,New York,36023,39,0 +2020-05-27,Cortland,New York,36023,39,0 +2020-05-28,Cortland,New York,36023,39,0 +2020-05-29,Cortland,New York,36023,39,0 +2020-05-30,Cortland,New York,36023,41,0 +2020-05-31,Cortland,New York,36023,41,0 +2020-06-01,Cortland,New York,36023,41,0 +2020-06-02,Cortland,New York,36023,41,0 +2020-06-03,Cortland,New York,36023,41,0 +2020-06-04,Cortland,New York,36023,41,0 +2020-06-05,Cortland,New York,36023,41,0 +2020-06-06,Cortland,New York,36023,41,0 +2020-06-07,Cortland,New York,36023,41,0 +2020-06-08,Cortland,New York,36023,42,0 +2020-06-09,Cortland,New York,36023,42,0 +2020-06-10,Cortland,New York,36023,42,0 +2020-06-11,Cortland,New York,36023,42,0 +2020-06-12,Cortland,New York,36023,42,0 +2020-06-13,Cortland,New York,36023,42,0 +2020-06-14,Cortland,New York,36023,42,0 +2020-06-15,Cortland,New York,36023,42,0 +2020-06-16,Cortland,New York,36023,42,0 +2020-06-17,Cortland,New York,36023,42,0 +2020-06-18,Cortland,New York,36023,44,0 +2020-06-19,Cortland,New York,36023,44,0 +2020-06-20,Cortland,New York,36023,44,0 +2020-06-21,Cortland,New York,36023,44,0 +2020-06-22,Cortland,New York,36023,44,0 +2020-06-23,Cortland,New York,36023,44,0 +2020-06-24,Cortland,New York,36023,44,0 +2020-06-25,Cortland,New York,36023,44,0 +2020-06-26,Cortland,New York,36023,44,0 +2020-06-27,Cortland,New York,36023,44,0 +2020-06-28,Cortland,New York,36023,46,0 +2020-06-29,Cortland,New York,36023,47,0 +2020-06-30,Cortland,New York,36023,47,0 +2020-07-01,Cortland,New York,36023,47,0 +2020-07-02,Cortland,New York,36023,47,0 +2020-07-03,Cortland,New York,36023,48,0 +2020-07-04,Cortland,New York,36023,50,0 +2020-07-05,Cortland,New York,36023,51,0 +2020-07-06,Cortland,New York,36023,52,0 +2020-07-07,Cortland,New York,36023,53,0 +2020-07-08,Cortland,New York,36023,54,0 +2020-07-09,Cortland,New York,36023,55,0 +2020-03-12,Delaware,New York,36025,1,0 +2020-03-13,Delaware,New York,36025,1,0 +2020-03-14,Delaware,New York,36025,1,0 +2020-03-15,Delaware,New York,36025,1,0 +2020-03-16,Delaware,New York,36025,1,0 +2020-03-17,Delaware,New York,36025,1,0 +2020-03-18,Delaware,New York,36025,1,0 +2020-03-19,Delaware,New York,36025,1,0 +2020-03-20,Delaware,New York,36025,1,0 +2020-03-21,Delaware,New York,36025,1,0 +2020-03-22,Delaware,New York,36025,3,0 +2020-03-23,Delaware,New York,36025,3,0 +2020-03-24,Delaware,New York,36025,3,0 +2020-03-25,Delaware,New York,36025,5,0 +2020-03-26,Delaware,New York,36025,7,0 +2020-03-27,Delaware,New York,36025,8,0 +2020-03-28,Delaware,New York,36025,8,0 +2020-03-29,Delaware,New York,36025,8,0 +2020-03-30,Delaware,New York,36025,11,0 +2020-03-31,Delaware,New York,36025,16,0 +2020-04-01,Delaware,New York,36025,20,0 +2020-04-02,Delaware,New York,36025,23,1 +2020-04-03,Delaware,New York,36025,23,1 +2020-04-04,Delaware,New York,36025,30,1 +2020-04-05,Delaware,New York,36025,30,1 +2020-04-06,Delaware,New York,36025,32,1 +2020-04-07,Delaware,New York,36025,36,1 +2020-04-08,Delaware,New York,36025,37,0 +2020-04-09,Delaware,New York,36025,37,0 +2020-04-10,Delaware,New York,36025,39,0 +2020-04-11,Delaware,New York,36025,39,0 +2020-04-12,Delaware,New York,36025,39,0 +2020-04-13,Delaware,New York,36025,42,0 +2020-04-14,Delaware,New York,36025,45,0 +2020-04-15,Delaware,New York,36025,46,0 +2020-04-16,Delaware,New York,36025,47,0 +2020-04-17,Delaware,New York,36025,48,0 +2020-04-18,Delaware,New York,36025,49,0 +2020-04-19,Delaware,New York,36025,49,0 +2020-04-20,Delaware,New York,36025,49,0 +2020-04-21,Delaware,New York,36025,49,0 +2020-04-22,Delaware,New York,36025,50,0 +2020-04-23,Delaware,New York,36025,50,0 +2020-04-24,Delaware,New York,36025,51,0 +2020-04-25,Delaware,New York,36025,58,0 +2020-04-26,Delaware,New York,36025,58,0 +2020-04-27,Delaware,New York,36025,58,0 +2020-04-28,Delaware,New York,36025,59,0 +2020-04-29,Delaware,New York,36025,60,0 +2020-04-30,Delaware,New York,36025,61,0 +2020-05-01,Delaware,New York,36025,61,0 +2020-05-02,Delaware,New York,36025,61,0 +2020-05-03,Delaware,New York,36025,61,0 +2020-05-04,Delaware,New York,36025,62,0 +2020-05-05,Delaware,New York,36025,62,0 +2020-05-06,Delaware,New York,36025,62,0 +2020-05-07,Delaware,New York,36025,63,0 +2020-05-08,Delaware,New York,36025,63,0 +2020-05-09,Delaware,New York,36025,63,0 +2020-05-10,Delaware,New York,36025,64,0 +2020-05-11,Delaware,New York,36025,65,0 +2020-05-12,Delaware,New York,36025,65,0 +2020-05-13,Delaware,New York,36025,66,0 +2020-05-14,Delaware,New York,36025,67,0 +2020-05-15,Delaware,New York,36025,67,0 +2020-05-16,Delaware,New York,36025,68,0 +2020-05-17,Delaware,New York,36025,69,0 +2020-05-18,Delaware,New York,36025,69,0 +2020-05-19,Delaware,New York,36025,69,0 +2020-05-20,Delaware,New York,36025,69,0 +2020-05-21,Delaware,New York,36025,71,0 +2020-05-22,Delaware,New York,36025,72,0 +2020-05-23,Delaware,New York,36025,74,0 +2020-05-24,Delaware,New York,36025,77,0 +2020-05-25,Delaware,New York,36025,77,0 +2020-05-26,Delaware,New York,36025,77,0 +2020-05-27,Delaware,New York,36025,78,0 +2020-05-28,Delaware,New York,36025,78,0 +2020-05-29,Delaware,New York,36025,79,0 +2020-05-30,Delaware,New York,36025,79,0 +2020-05-31,Delaware,New York,36025,79,0 +2020-06-01,Delaware,New York,36025,81,0 +2020-06-02,Delaware,New York,36025,82,0 +2020-06-03,Delaware,New York,36025,82,0 +2020-06-04,Delaware,New York,36025,82,0 +2020-06-05,Delaware,New York,36025,84,0 +2020-06-06,Delaware,New York,36025,85,0 +2020-06-07,Delaware,New York,36025,85,0 +2020-06-08,Delaware,New York,36025,85,0 +2020-06-09,Delaware,New York,36025,86,0 +2020-06-10,Delaware,New York,36025,87,0 +2020-06-11,Delaware,New York,36025,88,0 +2020-06-12,Delaware,New York,36025,88,0 +2020-06-13,Delaware,New York,36025,88,0 +2020-06-14,Delaware,New York,36025,88,0 +2020-06-15,Delaware,New York,36025,88,0 +2020-06-16,Delaware,New York,36025,88,0 +2020-06-17,Delaware,New York,36025,89,0 +2020-06-18,Delaware,New York,36025,89,0 +2020-06-19,Delaware,New York,36025,89,0 +2020-06-20,Delaware,New York,36025,90,0 +2020-06-21,Delaware,New York,36025,90,0 +2020-06-22,Delaware,New York,36025,90,0 +2020-06-23,Delaware,New York,36025,91,0 +2020-06-24,Delaware,New York,36025,91,0 +2020-06-25,Delaware,New York,36025,91,0 +2020-06-26,Delaware,New York,36025,91,0 +2020-06-27,Delaware,New York,36025,91,0 +2020-06-28,Delaware,New York,36025,91,0 +2020-06-29,Delaware,New York,36025,91,0 +2020-06-30,Delaware,New York,36025,91,0 +2020-07-01,Delaware,New York,36025,91,0 +2020-07-02,Delaware,New York,36025,91,0 +2020-07-03,Delaware,New York,36025,91,0 +2020-07-04,Delaware,New York,36025,91,0 +2020-07-05,Delaware,New York,36025,91,0 +2020-07-06,Delaware,New York,36025,91,0 +2020-07-07,Delaware,New York,36025,91,0 +2020-07-08,Delaware,New York,36025,91,0 +2020-07-09,Delaware,New York,36025,91,0 +2020-03-12,Dutchess,New York,36027,1,0 +2020-03-13,Dutchess,New York,36027,3,0 +2020-03-14,Dutchess,New York,36027,4,0 +2020-03-15,Dutchess,New York,36027,7,0 +2020-03-16,Dutchess,New York,36027,10,0 +2020-03-17,Dutchess,New York,36027,16,0 +2020-03-18,Dutchess,New York,36027,20,0 +2020-03-19,Dutchess,New York,36027,31,0 +2020-03-20,Dutchess,New York,36027,36,0 +2020-03-21,Dutchess,New York,36027,49,0 +2020-03-22,Dutchess,New York,36027,82,0 +2020-03-23,Dutchess,New York,36027,100,0 +2020-03-24,Dutchess,New York,36027,124,0 +2020-03-25,Dutchess,New York,36027,153,0 +2020-03-26,Dutchess,New York,36027,190,2 +2020-03-27,Dutchess,New York,36027,225,2 +2020-03-28,Dutchess,New York,36027,262,2 +2020-03-29,Dutchess,New York,36027,320,2 +2020-03-30,Dutchess,New York,36027,392,3 +2020-03-31,Dutchess,New York,36027,484,4 +2020-04-01,Dutchess,New York,36027,547,5 +2020-04-02,Dutchess,New York,36027,667,9 +2020-04-03,Dutchess,New York,36027,809,9 +2020-04-04,Dutchess,New York,36027,938,11 +2020-04-05,Dutchess,New York,36027,1077,11 +2020-04-06,Dutchess,New York,36027,1189,12 +2020-04-07,Dutchess,New York,36027,1249,15 +2020-04-08,Dutchess,New York,36027,1395,16 +2020-04-09,Dutchess,New York,36027,1493,21 +2020-04-10,Dutchess,New York,36027,1598,25 +2020-04-11,Dutchess,New York,36027,1744,27 +2020-04-12,Dutchess,New York,36027,1838,30 +2020-04-13,Dutchess,New York,36027,1881,37 +2020-04-14,Dutchess,New York,36027,1934,41 +2020-04-15,Dutchess,New York,36027,2048,45 +2020-04-16,Dutchess,New York,36027,2085,45 +2020-04-17,Dutchess,New York,36027,2142,45 +2020-04-18,Dutchess,New York,36027,2201,45 +2020-04-19,Dutchess,New York,36027,2240,51 +2020-04-20,Dutchess,New York,36027,2284,52 +2020-04-21,Dutchess,New York,36027,2331,53 +2020-04-22,Dutchess,New York,36027,2391,57 +2020-04-23,Dutchess,New York,36027,2460,60 +2020-04-24,Dutchess,New York,36027,2517,63 +2020-04-25,Dutchess,New York,36027,2660,65 +2020-04-26,Dutchess,New York,36027,2729,65 +2020-04-27,Dutchess,New York,36027,2793,66 +2020-04-28,Dutchess,New York,36027,2817,66 +2020-04-29,Dutchess,New York,36027,2881,69 +2020-04-30,Dutchess,New York,36027,2954,70 +2020-05-01,Dutchess,New York,36027,3002,71 +2020-05-02,Dutchess,New York,36027,3049,74 +2020-05-03,Dutchess,New York,36027,3086,76 +2020-05-04,Dutchess,New York,36027,3131,81 +2020-05-05,Dutchess,New York,36027,3151,85 +2020-05-06,Dutchess,New York,36027,3192,96 +2020-05-07,Dutchess,New York,36027,3233,98 +2020-05-08,Dutchess,New York,36027,3277,100 +2020-05-09,Dutchess,New York,36027,3319,103 +2020-05-10,Dutchess,New York,36027,3359,106 +2020-05-11,Dutchess,New York,36027,3378,106 +2020-05-12,Dutchess,New York,36027,3399,111 +2020-05-13,Dutchess,New York,36027,3429,115 +2020-05-14,Dutchess,New York,36027,3474,120 +2020-05-15,Dutchess,New York,36027,3498,123 +2020-05-16,Dutchess,New York,36027,3527,126 +2020-05-17,Dutchess,New York,36027,3543,127 +2020-05-18,Dutchess,New York,36027,3552,129 +2020-05-19,Dutchess,New York,36027,3710,131 +2020-05-20,Dutchess,New York,36027,3724,134 +2020-05-21,Dutchess,New York,36027,3745,135 +2020-05-22,Dutchess,New York,36027,3767,136 +2020-05-23,Dutchess,New York,36027,3793,139 +2020-05-24,Dutchess,New York,36027,3807,141 +2020-05-25,Dutchess,New York,36027,3825,143 +2020-05-26,Dutchess,New York,36027,3834,143 +2020-05-27,Dutchess,New York,36027,3847,145 +2020-05-28,Dutchess,New York,36027,3867,146 +2020-05-29,Dutchess,New York,36027,3887,146 +2020-05-30,Dutchess,New York,36027,3899,150 +2020-05-31,Dutchess,New York,36027,3909,150 +2020-06-01,Dutchess,New York,36027,3924,150 +2020-06-02,Dutchess,New York,36027,3936,150 +2020-06-03,Dutchess,New York,36027,3951,151 +2020-06-04,Dutchess,New York,36027,3962,151 +2020-06-05,Dutchess,New York,36027,3984,151 +2020-06-06,Dutchess,New York,36027,3995,152 +2020-06-07,Dutchess,New York,36027,4000,153 +2020-06-08,Dutchess,New York,36027,4006,153 +2020-06-09,Dutchess,New York,36027,4016,154 +2020-06-10,Dutchess,New York,36027,4022,154 +2020-06-11,Dutchess,New York,36027,4027,154 +2020-06-12,Dutchess,New York,36027,4035,155 +2020-06-13,Dutchess,New York,36027,4049,155 +2020-06-14,Dutchess,New York,36027,4056,155 +2020-06-15,Dutchess,New York,36027,4068,155 +2020-06-16,Dutchess,New York,36027,4075,155 +2020-06-17,Dutchess,New York,36027,4077,156 +2020-06-18,Dutchess,New York,36027,4088,156 +2020-06-19,Dutchess,New York,36027,4110,158 +2020-06-20,Dutchess,New York,36027,4127,159 +2020-06-21,Dutchess,New York,36027,4138,159 +2020-06-22,Dutchess,New York,36027,4145,159 +2020-06-23,Dutchess,New York,36027,4150,159 +2020-06-24,Dutchess,New York,36027,4158,159 +2020-06-25,Dutchess,New York,36027,4176,159 +2020-06-26,Dutchess,New York,36027,4179,159 +2020-06-27,Dutchess,New York,36027,4191,159 +2020-06-28,Dutchess,New York,36027,4198,159 +2020-06-29,Dutchess,New York,36027,4201,159 +2020-06-30,Dutchess,New York,36027,4207,159 +2020-07-01,Dutchess,New York,36027,4213,159 +2020-07-02,Dutchess,New York,36027,4225,159 +2020-07-03,Dutchess,New York,36027,4231,159 +2020-07-04,Dutchess,New York,36027,4238,160 +2020-07-05,Dutchess,New York,36027,4243,160 +2020-07-06,Dutchess,New York,36027,4246,160 +2020-07-07,Dutchess,New York,36027,4248,160 +2020-07-08,Dutchess,New York,36027,4250,160 +2020-07-09,Dutchess,New York,36027,4255,160 +2020-03-15,Erie,New York,36029,3,0 +2020-03-16,Erie,New York,36029,6,0 +2020-03-17,Erie,New York,36029,7,0 +2020-03-18,Erie,New York,36029,7,0 +2020-03-19,Erie,New York,36029,28,0 +2020-03-20,Erie,New York,36029,31,0 +2020-03-21,Erie,New York,36029,38,0 +2020-03-22,Erie,New York,36029,54,0 +2020-03-23,Erie,New York,36029,87,0 +2020-03-24,Erie,New York,36029,107,0 +2020-03-25,Erie,New York,36029,122,0 +2020-03-26,Erie,New York,36029,134,2 +2020-03-27,Erie,New York,36029,219,6 +2020-03-28,Erie,New York,36029,354,6 +2020-03-29,Erie,New York,36029,380,6 +2020-03-30,Erie,New York,36029,443,8 +2020-03-31,Erie,New York,36029,438,8 +2020-04-01,Erie,New York,36029,553,12 +2020-04-02,Erie,New York,36029,734,19 +2020-04-03,Erie,New York,36029,802,22 +2020-04-04,Erie,New York,36029,945,26 +2020-04-05,Erie,New York,36029,1059,27 +2020-04-06,Erie,New York,36029,1163,30 +2020-04-07,Erie,New York,36029,1163,36 +2020-04-08,Erie,New York,36029,1205,38 +2020-04-09,Erie,New York,36029,1362,46 +2020-04-10,Erie,New York,36029,1409,58 +2020-04-11,Erie,New York,36029,1472,62 +2020-04-12,Erie,New York,36029,1571,75 +2020-04-13,Erie,New York,36029,1624,86 +2020-04-14,Erie,New York,36029,1668,99 +2020-04-15,Erie,New York,36029,1751,110 +2020-04-16,Erie,New York,36029,1850,115 +2020-04-17,Erie,New York,36029,1929,115 +2020-04-18,Erie,New York,36029,1997,115 +2020-04-19,Erie,New York,36029,2070,146 +2020-04-20,Erie,New York,36029,2109,153 +2020-04-21,Erie,New York,36029,2147,161 +2020-04-22,Erie,New York,36029,2233,174 +2020-04-23,Erie,New York,36029,2450,179 +2020-04-24,Erie,New York,36029,2603,184 +2020-04-25,Erie,New York,36029,2773,199 +2020-04-26,Erie,New York,36029,2954,205 +2020-04-27,Erie,New York,36029,3021,208 +2020-04-28,Erie,New York,36029,3089,216 +2020-04-29,Erie,New York,36029,3196,220 +2020-04-30,Erie,New York,36029,3319,227 +2020-05-01,Erie,New York,36029,3481,233 +2020-05-02,Erie,New York,36029,3598,243 +2020-05-03,Erie,New York,36029,3710,250 +2020-05-04,Erie,New York,36029,3802,254 +2020-05-05,Erie,New York,36029,3891,264 +2020-05-06,Erie,New York,36029,4008,338 +2020-05-07,Erie,New York,36029,4136,350 +2020-05-08,Erie,New York,36029,4255,356 +2020-05-09,Erie,New York,36029,4337,368 +2020-05-10,Erie,New York,36029,4453,376 +2020-05-11,Erie,New York,36029,4483,387 +2020-05-12,Erie,New York,36029,4530,395 +2020-05-13,Erie,New York,36029,4606,402 +2020-05-14,Erie,New York,36029,4671,411 +2020-05-15,Erie,New York,36029,4782,417 +2020-05-16,Erie,New York,36029,4867,428 +2020-05-17,Erie,New York,36029,4954,438 +2020-05-18,Erie,New York,36029,4993,444 +2020-05-19,Erie,New York,36029,5037,450 +2020-05-20,Erie,New York,36029,5131,455 +2020-05-21,Erie,New York,36029,5270,463 +2020-05-22,Erie,New York,36029,5397,473 +2020-05-23,Erie,New York,36029,5552,479 +2020-05-24,Erie,New York,36029,5626,484 +2020-05-25,Erie,New York,36029,5700,490 +2020-05-26,Erie,New York,36029,5753,498 +2020-05-27,Erie,New York,36029,5810,504 +2020-05-28,Erie,New York,36029,5886,514 +2020-05-29,Erie,New York,36029,5935,517 +2020-05-30,Erie,New York,36029,6014,521 +2020-05-31,Erie,New York,36029,6070,521 +2020-06-01,Erie,New York,36029,6123,528 +2020-06-02,Erie,New York,36029,6173,532 +2020-06-03,Erie,New York,36029,6234,536 +2020-06-04,Erie,New York,36029,6308,541 +2020-06-05,Erie,New York,36029,6359,543 +2020-06-06,Erie,New York,36029,6429,547 +2020-06-07,Erie,New York,36029,6486,550 +2020-06-08,Erie,New York,36029,6531,554 +2020-06-09,Erie,New York,36029,6595,560 +2020-06-10,Erie,New York,36029,6616,563 +2020-06-11,Erie,New York,36029,6659,566 +2020-06-12,Erie,New York,36029,6717,568 +2020-06-13,Erie,New York,36029,6753,573 +2020-06-14,Erie,New York,36029,6785,577 +2020-06-15,Erie,New York,36029,6817,579 +2020-06-16,Erie,New York,36029,6852,582 +2020-06-17,Erie,New York,36029,6882,583 +2020-06-18,Erie,New York,36029,6920,585 +2020-06-19,Erie,New York,36029,6955,586 +2020-06-20,Erie,New York,36029,6980,588 +2020-06-21,Erie,New York,36029,7004,590 +2020-06-22,Erie,New York,36029,7035,592 +2020-06-23,Erie,New York,36029,7073,593 +2020-06-24,Erie,New York,36029,7108,593 +2020-06-25,Erie,New York,36029,7138,594 +2020-06-26,Erie,New York,36029,7181,594 +2020-06-27,Erie,New York,36029,7206,594 +2020-06-28,Erie,New York,36029,7228,594 +2020-06-29,Erie,New York,36029,7249,594 +2020-06-30,Erie,New York,36029,7292,596 +2020-07-01,Erie,New York,36029,7337,597 +2020-07-02,Erie,New York,36029,7370,598 +2020-07-03,Erie,New York,36029,7427,598 +2020-07-04,Erie,New York,36029,7462,598 +2020-07-05,Erie,New York,36029,7475,599 +2020-07-06,Erie,New York,36029,7500,599 +2020-07-07,Erie,New York,36029,7544,601 +2020-07-08,Erie,New York,36029,7596,601 +2020-07-09,Erie,New York,36029,7624,601 +2020-03-18,Essex,New York,36031,1,0 +2020-03-19,Essex,New York,36031,1,0 +2020-03-20,Essex,New York,36031,1,0 +2020-03-21,Essex,New York,36031,2,0 +2020-03-22,Essex,New York,36031,3,0 +2020-03-23,Essex,New York,36031,3,0 +2020-03-24,Essex,New York,36031,3,0 +2020-03-25,Essex,New York,36031,4,0 +2020-03-26,Essex,New York,36031,4,0 +2020-03-27,Essex,New York,36031,4,0 +2020-03-28,Essex,New York,36031,4,0 +2020-03-29,Essex,New York,36031,4,0 +2020-03-30,Essex,New York,36031,5,0 +2020-03-31,Essex,New York,36031,5,0 +2020-04-01,Essex,New York,36031,6,0 +2020-04-02,Essex,New York,36031,6,0 +2020-04-03,Essex,New York,36031,6,0 +2020-04-04,Essex,New York,36031,7,0 +2020-04-05,Essex,New York,36031,7,0 +2020-04-06,Essex,New York,36031,7,0 +2020-04-07,Essex,New York,36031,7,0 +2020-04-08,Essex,New York,36031,7,0 +2020-04-09,Essex,New York,36031,8,0 +2020-04-10,Essex,New York,36031,10,0 +2020-04-11,Essex,New York,36031,12,0 +2020-04-12,Essex,New York,36031,12,0 +2020-04-13,Essex,New York,36031,12,0 +2020-04-14,Essex,New York,36031,12,0 +2020-04-15,Essex,New York,36031,12,0 +2020-04-16,Essex,New York,36031,12,0 +2020-04-17,Essex,New York,36031,15,0 +2020-04-18,Essex,New York,36031,22,0 +2020-04-19,Essex,New York,36031,24,0 +2020-04-20,Essex,New York,36031,26,0 +2020-04-21,Essex,New York,36031,27,0 +2020-04-22,Essex,New York,36031,28,0 +2020-04-23,Essex,New York,36031,22,0 +2020-04-24,Essex,New York,36031,28,0 +2020-04-25,Essex,New York,36031,30,0 +2020-04-26,Essex,New York,36031,30,0 +2020-04-27,Essex,New York,36031,30,0 +2020-04-28,Essex,New York,36031,32,0 +2020-04-29,Essex,New York,36031,33,0 +2020-04-30,Essex,New York,36031,34,0 +2020-05-01,Essex,New York,36031,34,0 +2020-05-02,Essex,New York,36031,34,0 +2020-05-03,Essex,New York,36031,35,0 +2020-05-04,Essex,New York,36031,35,0 +2020-05-05,Essex,New York,36031,38,0 +2020-05-06,Essex,New York,36031,38,0 +2020-05-07,Essex,New York,36031,38,0 +2020-05-08,Essex,New York,36031,39,0 +2020-05-09,Essex,New York,36031,39,0 +2020-05-10,Essex,New York,36031,40,0 +2020-05-11,Essex,New York,36031,40,0 +2020-05-12,Essex,New York,36031,40,0 +2020-05-13,Essex,New York,36031,40,0 +2020-05-14,Essex,New York,36031,40,0 +2020-05-15,Essex,New York,36031,40,0 +2020-05-16,Essex,New York,36031,40,0 +2020-05-17,Essex,New York,36031,41,0 +2020-05-18,Essex,New York,36031,41,0 +2020-05-19,Essex,New York,36031,42,0 +2020-05-20,Essex,New York,36031,42,0 +2020-05-21,Essex,New York,36031,44,0 +2020-05-22,Essex,New York,36031,44,0 +2020-05-23,Essex,New York,36031,44,0 +2020-05-24,Essex,New York,36031,44,0 +2020-05-25,Essex,New York,36031,44,0 +2020-05-26,Essex,New York,36031,44,0 +2020-05-27,Essex,New York,36031,44,0 +2020-05-28,Essex,New York,36031,44,0 +2020-05-29,Essex,New York,36031,44,0 +2020-05-30,Essex,New York,36031,44,0 +2020-05-31,Essex,New York,36031,45,0 +2020-06-01,Essex,New York,36031,45,0 +2020-06-02,Essex,New York,36031,46,0 +2020-06-03,Essex,New York,36031,46,0 +2020-06-04,Essex,New York,36031,46,0 +2020-06-05,Essex,New York,36031,46,0 +2020-06-06,Essex,New York,36031,46,0 +2020-06-07,Essex,New York,36031,46,0 +2020-06-08,Essex,New York,36031,47,0 +2020-06-09,Essex,New York,36031,48,0 +2020-06-10,Essex,New York,36031,48,0 +2020-06-11,Essex,New York,36031,48,0 +2020-06-12,Essex,New York,36031,48,0 +2020-06-13,Essex,New York,36031,48,0 +2020-06-14,Essex,New York,36031,48,0 +2020-06-15,Essex,New York,36031,48,0 +2020-06-16,Essex,New York,36031,48,0 +2020-06-17,Essex,New York,36031,48,0 +2020-06-18,Essex,New York,36031,48,0 +2020-06-19,Essex,New York,36031,48,0 +2020-06-20,Essex,New York,36031,49,0 +2020-06-21,Essex,New York,36031,49,0 +2020-06-22,Essex,New York,36031,49,0 +2020-06-23,Essex,New York,36031,49,0 +2020-06-24,Essex,New York,36031,49,0 +2020-06-25,Essex,New York,36031,49,0 +2020-06-26,Essex,New York,36031,49,0 +2020-06-27,Essex,New York,36031,50,0 +2020-06-28,Essex,New York,36031,50,0 +2020-06-29,Essex,New York,36031,50,0 +2020-06-30,Essex,New York,36031,50,0 +2020-07-01,Essex,New York,36031,50,0 +2020-07-02,Essex,New York,36031,50,0 +2020-07-03,Essex,New York,36031,54,0 +2020-07-04,Essex,New York,36031,55,0 +2020-07-05,Essex,New York,36031,56,0 +2020-07-06,Essex,New York,36031,57,0 +2020-07-07,Essex,New York,36031,57,0 +2020-07-08,Essex,New York,36031,57,0 +2020-07-09,Essex,New York,36031,59,0 +2020-03-25,Franklin,New York,36033,1,0 +2020-03-26,Franklin,New York,36033,1,0 +2020-03-27,Franklin,New York,36033,2,0 +2020-03-28,Franklin,New York,36033,4,0 +2020-03-29,Franklin,New York,36033,6,0 +2020-03-30,Franklin,New York,36033,6,0 +2020-03-31,Franklin,New York,36033,9,0 +2020-04-01,Franklin,New York,36033,9,0 +2020-04-02,Franklin,New York,36033,9,0 +2020-04-03,Franklin,New York,36033,9,0 +2020-04-04,Franklin,New York,36033,10,0 +2020-04-05,Franklin,New York,36033,10,0 +2020-04-06,Franklin,New York,36033,10,0 +2020-04-07,Franklin,New York,36033,10,0 +2020-04-08,Franklin,New York,36033,10,0 +2020-04-09,Franklin,New York,36033,11,0 +2020-04-10,Franklin,New York,36033,11,0 +2020-04-11,Franklin,New York,36033,11,0 +2020-04-12,Franklin,New York,36033,12,0 +2020-04-13,Franklin,New York,36033,12,0 +2020-04-14,Franklin,New York,36033,13,0 +2020-04-15,Franklin,New York,36033,13,0 +2020-04-16,Franklin,New York,36033,13,0 +2020-04-17,Franklin,New York,36033,13,0 +2020-04-18,Franklin,New York,36033,13,0 +2020-04-19,Franklin,New York,36033,13,0 +2020-04-20,Franklin,New York,36033,13,0 +2020-04-21,Franklin,New York,36033,13,0 +2020-04-22,Franklin,New York,36033,13,0 +2020-04-23,Franklin,New York,36033,13,0 +2020-04-24,Franklin,New York,36033,13,0 +2020-04-25,Franklin,New York,36033,14,0 +2020-04-26,Franklin,New York,36033,14,0 +2020-04-27,Franklin,New York,36033,14,0 +2020-04-28,Franklin,New York,36033,14,0 +2020-04-29,Franklin,New York,36033,15,0 +2020-04-30,Franklin,New York,36033,15,0 +2020-05-01,Franklin,New York,36033,15,0 +2020-05-02,Franklin,New York,36033,15,0 +2020-05-03,Franklin,New York,36033,15,0 +2020-05-04,Franklin,New York,36033,16,0 +2020-05-05,Franklin,New York,36033,16,0 +2020-05-06,Franklin,New York,36033,16,0 +2020-05-07,Franklin,New York,36033,16,0 +2020-05-08,Franklin,New York,36033,17,0 +2020-05-09,Franklin,New York,36033,17,0 +2020-05-10,Franklin,New York,36033,17,0 +2020-05-11,Franklin,New York,36033,17,0 +2020-05-12,Franklin,New York,36033,17,0 +2020-05-13,Franklin,New York,36033,17,0 +2020-05-14,Franklin,New York,36033,17,0 +2020-05-15,Franklin,New York,36033,17,0 +2020-05-16,Franklin,New York,36033,18,0 +2020-05-17,Franklin,New York,36033,18,0 +2020-05-18,Franklin,New York,36033,18,0 +2020-05-19,Franklin,New York,36033,18,0 +2020-05-20,Franklin,New York,36033,18,0 +2020-05-21,Franklin,New York,36033,19,0 +2020-05-22,Franklin,New York,36033,19,0 +2020-05-23,Franklin,New York,36033,20,0 +2020-05-24,Franklin,New York,36033,20,0 +2020-05-25,Franklin,New York,36033,20,0 +2020-05-26,Franklin,New York,36033,20,0 +2020-05-27,Franklin,New York,36033,20,0 +2020-05-28,Franklin,New York,36033,20,0 +2020-05-29,Franklin,New York,36033,21,0 +2020-05-30,Franklin,New York,36033,22,0 +2020-05-31,Franklin,New York,36033,22,0 +2020-06-01,Franklin,New York,36033,23,0 +2020-06-02,Franklin,New York,36033,23,0 +2020-06-03,Franklin,New York,36033,23,0 +2020-06-04,Franklin,New York,36033,23,0 +2020-06-05,Franklin,New York,36033,23,0 +2020-06-06,Franklin,New York,36033,23,0 +2020-06-07,Franklin,New York,36033,23,0 +2020-06-08,Franklin,New York,36033,23,0 +2020-06-09,Franklin,New York,36033,23,0 +2020-06-10,Franklin,New York,36033,23,0 +2020-06-11,Franklin,New York,36033,23,0 +2020-06-12,Franklin,New York,36033,24,0 +2020-06-13,Franklin,New York,36033,25,0 +2020-06-14,Franklin,New York,36033,25,0 +2020-06-15,Franklin,New York,36033,25,0 +2020-06-16,Franklin,New York,36033,25,0 +2020-06-17,Franklin,New York,36033,25,0 +2020-06-18,Franklin,New York,36033,26,0 +2020-06-19,Franklin,New York,36033,27,0 +2020-06-20,Franklin,New York,36033,27,0 +2020-06-21,Franklin,New York,36033,27,0 +2020-06-22,Franklin,New York,36033,27,0 +2020-06-23,Franklin,New York,36033,28,0 +2020-06-24,Franklin,New York,36033,28,0 +2020-06-25,Franklin,New York,36033,28,0 +2020-06-26,Franklin,New York,36033,28,0 +2020-06-27,Franklin,New York,36033,29,0 +2020-06-28,Franklin,New York,36033,29,0 +2020-06-29,Franklin,New York,36033,30,0 +2020-06-30,Franklin,New York,36033,30,0 +2020-07-01,Franklin,New York,36033,31,0 +2020-07-02,Franklin,New York,36033,32,0 +2020-07-03,Franklin,New York,36033,33,0 +2020-07-04,Franklin,New York,36033,33,0 +2020-07-05,Franklin,New York,36033,33,0 +2020-07-06,Franklin,New York,36033,33,0 +2020-07-07,Franklin,New York,36033,33,0 +2020-07-08,Franklin,New York,36033,33,0 +2020-07-09,Franklin,New York,36033,34,0 +2020-03-20,Fulton,New York,36035,1,0 +2020-03-21,Fulton,New York,36035,1,0 +2020-03-22,Fulton,New York,36035,1,0 +2020-03-23,Fulton,New York,36035,1,0 +2020-03-24,Fulton,New York,36035,1,0 +2020-03-25,Fulton,New York,36035,1,0 +2020-03-26,Fulton,New York,36035,1,0 +2020-03-27,Fulton,New York,36035,1,0 +2020-03-28,Fulton,New York,36035,1,0 +2020-03-29,Fulton,New York,36035,1,0 +2020-03-30,Fulton,New York,36035,1,0 +2020-03-31,Fulton,New York,36035,1,0 +2020-04-01,Fulton,New York,36035,2,0 +2020-04-02,Fulton,New York,36035,6,0 +2020-04-03,Fulton,New York,36035,6,0 +2020-04-04,Fulton,New York,36035,9,0 +2020-04-05,Fulton,New York,36035,9,0 +2020-04-06,Fulton,New York,36035,9,0 +2020-04-07,Fulton,New York,36035,13,0 +2020-04-08,Fulton,New York,36035,14,0 +2020-04-09,Fulton,New York,36035,15,0 +2020-04-10,Fulton,New York,36035,18,0 +2020-04-11,Fulton,New York,36035,21,0 +2020-04-12,Fulton,New York,36035,21,0 +2020-04-13,Fulton,New York,36035,21,0 +2020-04-14,Fulton,New York,36035,22,0 +2020-04-15,Fulton,New York,36035,24,0 +2020-04-16,Fulton,New York,36035,25,0 +2020-04-17,Fulton,New York,36035,27,0 +2020-04-18,Fulton,New York,36035,27,0 +2020-04-19,Fulton,New York,36035,27,0 +2020-04-20,Fulton,New York,36035,27,0 +2020-04-21,Fulton,New York,36035,27,0 +2020-04-22,Fulton,New York,36035,28,0 +2020-04-23,Fulton,New York,36035,28,0 +2020-04-24,Fulton,New York,36035,29,1 +2020-04-25,Fulton,New York,36035,61,1 +2020-04-26,Fulton,New York,36035,62,1 +2020-04-27,Fulton,New York,36035,62,1 +2020-04-28,Fulton,New York,36035,66,1 +2020-04-29,Fulton,New York,36035,67,1 +2020-04-30,Fulton,New York,36035,71,1 +2020-05-01,Fulton,New York,36035,75,1 +2020-05-02,Fulton,New York,36035,79,1 +2020-05-03,Fulton,New York,36035,82,2 +2020-05-04,Fulton,New York,36035,84,2 +2020-05-05,Fulton,New York,36035,97,3 +2020-05-06,Fulton,New York,36035,100,4 +2020-05-07,Fulton,New York,36035,101,4 +2020-05-08,Fulton,New York,36035,103,5 +2020-05-09,Fulton,New York,36035,104,6 +2020-05-10,Fulton,New York,36035,107,6 +2020-05-11,Fulton,New York,36035,109,7 +2020-05-12,Fulton,New York,36035,135,8 +2020-05-13,Fulton,New York,36035,140,9 +2020-05-14,Fulton,New York,36035,144,9 +2020-05-15,Fulton,New York,36035,145,10 +2020-05-16,Fulton,New York,36035,148,11 +2020-05-17,Fulton,New York,36035,171,11 +2020-05-18,Fulton,New York,36035,182,11 +2020-05-19,Fulton,New York,36035,182,11 +2020-05-20,Fulton,New York,36035,184,11 +2020-05-21,Fulton,New York,36035,186,11 +2020-05-22,Fulton,New York,36035,189,11 +2020-05-23,Fulton,New York,36035,193,11 +2020-05-24,Fulton,New York,36035,194,11 +2020-05-25,Fulton,New York,36035,196,11 +2020-05-26,Fulton,New York,36035,196,12 +2020-05-27,Fulton,New York,36035,198,12 +2020-05-28,Fulton,New York,36035,200,12 +2020-05-29,Fulton,New York,36035,206,12 +2020-05-30,Fulton,New York,36035,207,12 +2020-05-31,Fulton,New York,36035,208,13 +2020-06-01,Fulton,New York,36035,210,13 +2020-06-02,Fulton,New York,36035,212,14 +2020-06-03,Fulton,New York,36035,213,14 +2020-06-04,Fulton,New York,36035,215,14 +2020-06-05,Fulton,New York,36035,219,16 +2020-06-06,Fulton,New York,36035,222,16 +2020-06-07,Fulton,New York,36035,224,16 +2020-06-08,Fulton,New York,36035,227,17 +2020-06-09,Fulton,New York,36035,228,17 +2020-06-10,Fulton,New York,36035,228,17 +2020-06-11,Fulton,New York,36035,230,17 +2020-06-12,Fulton,New York,36035,231,17 +2020-06-13,Fulton,New York,36035,232,18 +2020-06-14,Fulton,New York,36035,234,18 +2020-06-15,Fulton,New York,36035,235,18 +2020-06-16,Fulton,New York,36035,236,18 +2020-06-17,Fulton,New York,36035,236,18 +2020-06-18,Fulton,New York,36035,236,18 +2020-06-19,Fulton,New York,36035,237,18 +2020-06-20,Fulton,New York,36035,243,18 +2020-06-21,Fulton,New York,36035,243,18 +2020-06-22,Fulton,New York,36035,244,18 +2020-06-23,Fulton,New York,36035,244,18 +2020-06-24,Fulton,New York,36035,244,18 +2020-06-25,Fulton,New York,36035,244,18 +2020-06-26,Fulton,New York,36035,248,18 +2020-06-27,Fulton,New York,36035,249,18 +2020-06-28,Fulton,New York,36035,255,18 +2020-06-29,Fulton,New York,36035,256,18 +2020-06-30,Fulton,New York,36035,256,18 +2020-07-01,Fulton,New York,36035,257,18 +2020-07-02,Fulton,New York,36035,260,18 +2020-07-03,Fulton,New York,36035,261,18 +2020-07-04,Fulton,New York,36035,261,18 +2020-07-05,Fulton,New York,36035,261,18 +2020-07-06,Fulton,New York,36035,262,18 +2020-07-07,Fulton,New York,36035,262,18 +2020-07-08,Fulton,New York,36035,262,18 +2020-07-09,Fulton,New York,36035,263,18 +2020-03-20,Genesee,New York,36037,1,0 +2020-03-21,Genesee,New York,36037,1,0 +2020-03-22,Genesee,New York,36037,1,0 +2020-03-23,Genesee,New York,36037,1,0 +2020-03-24,Genesee,New York,36037,1,0 +2020-03-25,Genesee,New York,36037,2,0 +2020-03-26,Genesee,New York,36037,4,0 +2020-03-27,Genesee,New York,36037,6,0 +2020-03-28,Genesee,New York,36037,7,0 +2020-03-29,Genesee,New York,36037,9,0 +2020-03-30,Genesee,New York,36037,9,0 +2020-03-31,Genesee,New York,36037,10,0 +2020-04-01,Genesee,New York,36037,13,1 +2020-04-02,Genesee,New York,36037,17,1 +2020-04-03,Genesee,New York,36037,17,1 +2020-04-04,Genesee,New York,36037,21,1 +2020-04-05,Genesee,New York,36037,22,1 +2020-04-06,Genesee,New York,36037,23,1 +2020-04-07,Genesee,New York,36037,33,1 +2020-04-08,Genesee,New York,36037,47,0 +2020-04-09,Genesee,New York,36037,56,0 +2020-04-10,Genesee,New York,36037,65,0 +2020-04-11,Genesee,New York,36037,67,0 +2020-04-12,Genesee,New York,36037,69,0 +2020-04-13,Genesee,New York,36037,71,0 +2020-04-14,Genesee,New York,36037,76,0 +2020-04-15,Genesee,New York,36037,76,1 +2020-04-16,Genesee,New York,36037,78,2 +2020-04-17,Genesee,New York,36037,83,2 +2020-04-18,Genesee,New York,36037,87,2 +2020-04-19,Genesee,New York,36037,117,2 +2020-04-20,Genesee,New York,36037,119,2 +2020-04-21,Genesee,New York,36037,121,2 +2020-04-22,Genesee,New York,36037,122,2 +2020-04-23,Genesee,New York,36037,126,2 +2020-04-24,Genesee,New York,36037,127,2 +2020-04-25,Genesee,New York,36037,141,2 +2020-04-26,Genesee,New York,36037,144,2 +2020-04-27,Genesee,New York,36037,148,2 +2020-04-28,Genesee,New York,36037,149,2 +2020-04-29,Genesee,New York,36037,152,2 +2020-04-30,Genesee,New York,36037,153,2 +2020-05-01,Genesee,New York,36037,154,2 +2020-05-02,Genesee,New York,36037,155,2 +2020-05-03,Genesee,New York,36037,155,2 +2020-05-04,Genesee,New York,36037,159,2 +2020-05-05,Genesee,New York,36037,159,2 +2020-05-06,Genesee,New York,36037,162,2 +2020-05-07,Genesee,New York,36037,168,2 +2020-05-08,Genesee,New York,36037,169,3 +2020-05-09,Genesee,New York,36037,170,3 +2020-05-10,Genesee,New York,36037,172,3 +2020-05-11,Genesee,New York,36037,173,3 +2020-05-12,Genesee,New York,36037,174,3 +2020-05-13,Genesee,New York,36037,174,3 +2020-05-14,Genesee,New York,36037,175,3 +2020-05-15,Genesee,New York,36037,175,3 +2020-05-16,Genesee,New York,36037,178,3 +2020-05-17,Genesee,New York,36037,180,3 +2020-05-18,Genesee,New York,36037,180,3 +2020-05-19,Genesee,New York,36037,182,4 +2020-05-20,Genesee,New York,36037,184,4 +2020-05-21,Genesee,New York,36037,188,4 +2020-05-22,Genesee,New York,36037,189,4 +2020-05-23,Genesee,New York,36037,191,4 +2020-05-24,Genesee,New York,36037,191,5 +2020-05-25,Genesee,New York,36037,192,5 +2020-05-26,Genesee,New York,36037,193,5 +2020-05-27,Genesee,New York,36037,195,5 +2020-05-28,Genesee,New York,36037,197,5 +2020-05-29,Genesee,New York,36037,199,5 +2020-05-30,Genesee,New York,36037,200,5 +2020-05-31,Genesee,New York,36037,202,5 +2020-06-01,Genesee,New York,36037,202,5 +2020-06-02,Genesee,New York,36037,202,5 +2020-06-03,Genesee,New York,36037,202,5 +2020-06-04,Genesee,New York,36037,205,6 +2020-06-05,Genesee,New York,36037,205,6 +2020-06-06,Genesee,New York,36037,206,6 +2020-06-07,Genesee,New York,36037,208,6 +2020-06-08,Genesee,New York,36037,208,6 +2020-06-09,Genesee,New York,36037,210,6 +2020-06-10,Genesee,New York,36037,211,6 +2020-06-11,Genesee,New York,36037,212,6 +2020-06-12,Genesee,New York,36037,212,6 +2020-06-13,Genesee,New York,36037,212,6 +2020-06-14,Genesee,New York,36037,212,6 +2020-06-15,Genesee,New York,36037,213,6 +2020-06-16,Genesee,New York,36037,213,6 +2020-06-17,Genesee,New York,36037,216,6 +2020-06-18,Genesee,New York,36037,217,6 +2020-06-19,Genesee,New York,36037,218,6 +2020-06-20,Genesee,New York,36037,222,6 +2020-06-21,Genesee,New York,36037,222,6 +2020-06-22,Genesee,New York,36037,225,6 +2020-06-23,Genesee,New York,36037,229,6 +2020-06-24,Genesee,New York,36037,230,6 +2020-06-25,Genesee,New York,36037,231,6 +2020-06-26,Genesee,New York,36037,232,6 +2020-06-27,Genesee,New York,36037,237,6 +2020-06-28,Genesee,New York,36037,238,6 +2020-06-29,Genesee,New York,36037,238,6 +2020-06-30,Genesee,New York,36037,238,6 +2020-07-01,Genesee,New York,36037,238,6 +2020-07-02,Genesee,New York,36037,238,6 +2020-07-03,Genesee,New York,36037,239,6 +2020-07-04,Genesee,New York,36037,239,6 +2020-07-05,Genesee,New York,36037,239,6 +2020-07-06,Genesee,New York,36037,242,6 +2020-07-07,Genesee,New York,36037,242,6 +2020-07-08,Genesee,New York,36037,244,6 +2020-07-09,Genesee,New York,36037,244,6 +2020-03-15,Greene,New York,36039,2,0 +2020-03-16,Greene,New York,36039,2,0 +2020-03-17,Greene,New York,36039,2,0 +2020-03-18,Greene,New York,36039,2,0 +2020-03-19,Greene,New York,36039,2,0 +2020-03-20,Greene,New York,36039,2,0 +2020-03-21,Greene,New York,36039,2,0 +2020-03-22,Greene,New York,36039,2,0 +2020-03-23,Greene,New York,36039,4,0 +2020-03-24,Greene,New York,36039,4,0 +2020-03-25,Greene,New York,36039,4,0 +2020-03-26,Greene,New York,36039,5,0 +2020-03-27,Greene,New York,36039,6,0 +2020-03-28,Greene,New York,36039,7,0 +2020-03-29,Greene,New York,36039,7,0 +2020-03-30,Greene,New York,36039,10,0 +2020-03-31,Greene,New York,36039,16,0 +2020-04-01,Greene,New York,36039,18,0 +2020-04-02,Greene,New York,36039,21,0 +2020-04-03,Greene,New York,36039,21,0 +2020-04-04,Greene,New York,36039,27,0 +2020-04-05,Greene,New York,36039,27,0 +2020-04-06,Greene,New York,36039,27,0 +2020-04-07,Greene,New York,36039,24,0 +2020-04-08,Greene,New York,36039,25,0 +2020-04-09,Greene,New York,36039,28,0 +2020-04-10,Greene,New York,36039,34,0 +2020-04-11,Greene,New York,36039,37,0 +2020-04-12,Greene,New York,36039,44,0 +2020-04-13,Greene,New York,36039,45,0 +2020-04-14,Greene,New York,36039,66,0 +2020-04-15,Greene,New York,36039,73,0 +2020-04-16,Greene,New York,36039,74,0 +2020-04-17,Greene,New York,36039,77,0 +2020-04-18,Greene,New York,36039,82,0 +2020-04-19,Greene,New York,36039,85,0 +2020-04-20,Greene,New York,36039,86,0 +2020-04-21,Greene,New York,36039,87,0 +2020-04-22,Greene,New York,36039,87,0 +2020-04-23,Greene,New York,36039,89,0 +2020-04-24,Greene,New York,36039,90,0 +2020-04-25,Greene,New York,36039,107,0 +2020-04-26,Greene,New York,36039,110,0 +2020-04-27,Greene,New York,36039,111,0 +2020-04-28,Greene,New York,36039,112,0 +2020-04-29,Greene,New York,36039,114,0 +2020-04-30,Greene,New York,36039,131,0 +2020-05-01,Greene,New York,36039,139,1 +2020-05-02,Greene,New York,36039,142,1 +2020-05-03,Greene,New York,36039,151,1 +2020-05-04,Greene,New York,36039,154,1 +2020-05-05,Greene,New York,36039,166,1 +2020-05-06,Greene,New York,36039,188,2 +2020-05-07,Greene,New York,36039,198,2 +2020-05-08,Greene,New York,36039,199,2 +2020-05-09,Greene,New York,36039,204,2 +2020-05-10,Greene,New York,36039,206,2 +2020-05-11,Greene,New York,36039,206,2 +2020-05-12,Greene,New York,36039,206,2 +2020-05-13,Greene,New York,36039,206,2 +2020-05-14,Greene,New York,36039,207,2 +2020-05-15,Greene,New York,36039,209,2 +2020-05-16,Greene,New York,36039,211,3 +2020-05-17,Greene,New York,36039,212,3 +2020-05-18,Greene,New York,36039,213,3 +2020-05-19,Greene,New York,36039,214,4 +2020-05-20,Greene,New York,36039,215,4 +2020-05-21,Greene,New York,36039,215,4 +2020-05-22,Greene,New York,36039,215,4 +2020-05-23,Greene,New York,36039,217,5 +2020-05-24,Greene,New York,36039,220,5 +2020-05-25,Greene,New York,36039,225,5 +2020-05-26,Greene,New York,36039,225,5 +2020-05-27,Greene,New York,36039,231,5 +2020-05-28,Greene,New York,36039,236,5 +2020-05-29,Greene,New York,36039,237,5 +2020-05-30,Greene,New York,36039,238,5 +2020-05-31,Greene,New York,36039,238,5 +2020-06-01,Greene,New York,36039,239,5 +2020-06-02,Greene,New York,36039,241,5 +2020-06-03,Greene,New York,36039,241,5 +2020-06-04,Greene,New York,36039,241,5 +2020-06-05,Greene,New York,36039,242,5 +2020-06-06,Greene,New York,36039,246,5 +2020-06-07,Greene,New York,36039,246,5 +2020-06-08,Greene,New York,36039,247,5 +2020-06-09,Greene,New York,36039,248,5 +2020-06-10,Greene,New York,36039,249,5 +2020-06-11,Greene,New York,36039,249,5 +2020-06-12,Greene,New York,36039,249,5 +2020-06-13,Greene,New York,36039,250,5 +2020-06-14,Greene,New York,36039,251,5 +2020-06-15,Greene,New York,36039,251,5 +2020-06-16,Greene,New York,36039,252,5 +2020-06-17,Greene,New York,36039,252,5 +2020-06-18,Greene,New York,36039,252,5 +2020-06-19,Greene,New York,36039,254,5 +2020-06-20,Greene,New York,36039,255,5 +2020-06-21,Greene,New York,36039,256,5 +2020-06-22,Greene,New York,36039,256,5 +2020-06-23,Greene,New York,36039,256,5 +2020-06-24,Greene,New York,36039,256,5 +2020-06-25,Greene,New York,36039,257,5 +2020-06-26,Greene,New York,36039,257,5 +2020-06-27,Greene,New York,36039,260,5 +2020-06-28,Greene,New York,36039,260,5 +2020-06-29,Greene,New York,36039,260,5 +2020-06-30,Greene,New York,36039,260,5 +2020-07-01,Greene,New York,36039,260,5 +2020-07-02,Greene,New York,36039,260,5 +2020-07-03,Greene,New York,36039,263,5 +2020-07-04,Greene,New York,36039,263,5 +2020-07-05,Greene,New York,36039,263,5 +2020-07-06,Greene,New York,36039,263,5 +2020-07-07,Greene,New York,36039,263,5 +2020-07-08,Greene,New York,36039,263,5 +2020-07-09,Greene,New York,36039,263,5 +2020-03-18,Hamilton,New York,36041,1,0 +2020-03-19,Hamilton,New York,36041,1,0 +2020-03-20,Hamilton,New York,36041,2,0 +2020-03-21,Hamilton,New York,36041,2,0 +2020-03-22,Hamilton,New York,36041,2,0 +2020-03-23,Hamilton,New York,36041,2,0 +2020-03-24,Hamilton,New York,36041,2,0 +2020-03-25,Hamilton,New York,36041,2,0 +2020-03-26,Hamilton,New York,36041,2,0 +2020-03-27,Hamilton,New York,36041,2,0 +2020-03-28,Hamilton,New York,36041,2,0 +2020-03-29,Hamilton,New York,36041,2,0 +2020-03-30,Hamilton,New York,36041,2,0 +2020-03-31,Hamilton,New York,36041,2,0 +2020-04-01,Hamilton,New York,36041,2,0 +2020-04-02,Hamilton,New York,36041,2,0 +2020-04-03,Hamilton,New York,36041,2,0 +2020-04-04,Hamilton,New York,36041,2,0 +2020-04-05,Hamilton,New York,36041,2,0 +2020-04-06,Hamilton,New York,36041,2,0 +2020-04-07,Hamilton,New York,36041,2,0 +2020-04-08,Hamilton,New York,36041,2,0 +2020-04-09,Hamilton,New York,36041,3,0 +2020-04-10,Hamilton,New York,36041,3,0 +2020-04-11,Hamilton,New York,36041,3,0 +2020-04-12,Hamilton,New York,36041,3,0 +2020-04-13,Hamilton,New York,36041,3,0 +2020-04-14,Hamilton,New York,36041,3,0 +2020-04-15,Hamilton,New York,36041,3,0 +2020-04-16,Hamilton,New York,36041,3,0 +2020-04-17,Hamilton,New York,36041,3,0 +2020-04-18,Hamilton,New York,36041,3,0 +2020-04-19,Hamilton,New York,36041,3,0 +2020-04-20,Hamilton,New York,36041,3,0 +2020-04-21,Hamilton,New York,36041,3,0 +2020-04-22,Hamilton,New York,36041,3,0 +2020-04-23,Hamilton,New York,36041,3,0 +2020-04-24,Hamilton,New York,36041,3,0 +2020-04-25,Hamilton,New York,36041,3,0 +2020-04-26,Hamilton,New York,36041,3,0 +2020-04-27,Hamilton,New York,36041,3,0 +2020-04-28,Hamilton,New York,36041,3,0 +2020-04-29,Hamilton,New York,36041,3,0 +2020-04-30,Hamilton,New York,36041,3,0 +2020-05-01,Hamilton,New York,36041,3,0 +2020-05-02,Hamilton,New York,36041,3,0 +2020-05-03,Hamilton,New York,36041,3,0 +2020-05-04,Hamilton,New York,36041,3,0 +2020-05-05,Hamilton,New York,36041,3,0 +2020-05-06,Hamilton,New York,36041,5,0 +2020-05-07,Hamilton,New York,36041,5,0 +2020-05-08,Hamilton,New York,36041,5,0 +2020-05-09,Hamilton,New York,36041,5,0 +2020-05-10,Hamilton,New York,36041,5,0 +2020-05-11,Hamilton,New York,36041,5,0 +2020-05-12,Hamilton,New York,36041,5,0 +2020-05-13,Hamilton,New York,36041,5,0 +2020-05-14,Hamilton,New York,36041,5,0 +2020-05-15,Hamilton,New York,36041,5,0 +2020-05-16,Hamilton,New York,36041,5,0 +2020-05-17,Hamilton,New York,36041,5,0 +2020-05-18,Hamilton,New York,36041,5,0 +2020-05-19,Hamilton,New York,36041,5,0 +2020-05-20,Hamilton,New York,36041,5,0 +2020-05-21,Hamilton,New York,36041,5,0 +2020-05-22,Hamilton,New York,36041,5,0 +2020-05-23,Hamilton,New York,36041,5,0 +2020-05-24,Hamilton,New York,36041,5,0 +2020-05-25,Hamilton,New York,36041,5,0 +2020-05-26,Hamilton,New York,36041,5,0 +2020-05-27,Hamilton,New York,36041,5,0 +2020-05-28,Hamilton,New York,36041,5,0 +2020-05-29,Hamilton,New York,36041,5,0 +2020-05-30,Hamilton,New York,36041,5,0 +2020-05-31,Hamilton,New York,36041,5,0 +2020-06-01,Hamilton,New York,36041,5,0 +2020-06-02,Hamilton,New York,36041,5,0 +2020-06-03,Hamilton,New York,36041,5,0 +2020-06-04,Hamilton,New York,36041,5,0 +2020-06-05,Hamilton,New York,36041,5,0 +2020-06-06,Hamilton,New York,36041,5,0 +2020-06-07,Hamilton,New York,36041,5,0 +2020-06-08,Hamilton,New York,36041,5,0 +2020-06-09,Hamilton,New York,36041,5,0 +2020-06-10,Hamilton,New York,36041,5,0 +2020-06-11,Hamilton,New York,36041,5,0 +2020-06-12,Hamilton,New York,36041,5,0 +2020-06-13,Hamilton,New York,36041,5,0 +2020-06-14,Hamilton,New York,36041,6,0 +2020-06-15,Hamilton,New York,36041,6,0 +2020-06-16,Hamilton,New York,36041,6,0 +2020-06-17,Hamilton,New York,36041,6,0 +2020-06-18,Hamilton,New York,36041,6,0 +2020-06-19,Hamilton,New York,36041,6,0 +2020-06-20,Hamilton,New York,36041,6,0 +2020-06-21,Hamilton,New York,36041,6,0 +2020-06-22,Hamilton,New York,36041,6,0 +2020-06-23,Hamilton,New York,36041,6,0 +2020-06-24,Hamilton,New York,36041,6,0 +2020-06-25,Hamilton,New York,36041,6,0 +2020-06-26,Hamilton,New York,36041,6,0 +2020-06-27,Hamilton,New York,36041,6,0 +2020-06-28,Hamilton,New York,36041,6,0 +2020-06-29,Hamilton,New York,36041,6,0 +2020-06-30,Hamilton,New York,36041,6,0 +2020-07-01,Hamilton,New York,36041,6,0 +2020-07-02,Hamilton,New York,36041,6,0 +2020-07-03,Hamilton,New York,36041,6,0 +2020-07-04,Hamilton,New York,36041,6,0 +2020-07-05,Hamilton,New York,36041,6,0 +2020-07-06,Hamilton,New York,36041,6,0 +2020-07-07,Hamilton,New York,36041,6,0 +2020-07-08,Hamilton,New York,36041,6,0 +2020-07-09,Hamilton,New York,36041,6,0 +2020-03-12,Herkimer,New York,36043,1,0 +2020-03-13,Herkimer,New York,36043,1,0 +2020-03-14,Herkimer,New York,36043,1,0 +2020-03-15,Herkimer,New York,36043,1,0 +2020-03-16,Herkimer,New York,36043,1,0 +2020-03-17,Herkimer,New York,36043,1,0 +2020-03-18,Herkimer,New York,36043,1,0 +2020-03-19,Herkimer,New York,36043,1,0 +2020-03-20,Herkimer,New York,36043,2,0 +2020-03-21,Herkimer,New York,36043,3,0 +2020-03-22,Herkimer,New York,36043,4,0 +2020-03-23,Herkimer,New York,36043,4,0 +2020-03-24,Herkimer,New York,36043,4,0 +2020-03-25,Herkimer,New York,36043,5,0 +2020-03-26,Herkimer,New York,36043,7,0 +2020-03-27,Herkimer,New York,36043,9,0 +2020-03-28,Herkimer,New York,36043,9,0 +2020-03-29,Herkimer,New York,36043,10,0 +2020-03-30,Herkimer,New York,36043,12,2 +2020-03-31,Herkimer,New York,36043,12,2 +2020-04-01,Herkimer,New York,36043,16,2 +2020-04-02,Herkimer,New York,36043,16,2 +2020-04-03,Herkimer,New York,36043,16,2 +2020-04-04,Herkimer,New York,36043,22,3 +2020-04-05,Herkimer,New York,36043,22,3 +2020-04-06,Herkimer,New York,36043,25,3 +2020-04-07,Herkimer,New York,36043,32,3 +2020-04-08,Herkimer,New York,36043,32,1 +2020-04-09,Herkimer,New York,36043,32,1 +2020-04-10,Herkimer,New York,36043,36,1 +2020-04-11,Herkimer,New York,36043,37,1 +2020-04-12,Herkimer,New York,36043,37,1 +2020-04-13,Herkimer,New York,36043,38,1 +2020-04-14,Herkimer,New York,36043,39,1 +2020-04-15,Herkimer,New York,36043,40,1 +2020-04-16,Herkimer,New York,36043,43,1 +2020-04-17,Herkimer,New York,36043,46,1 +2020-04-18,Herkimer,New York,36043,47,1 +2020-04-19,Herkimer,New York,36043,49,1 +2020-04-20,Herkimer,New York,36043,49,1 +2020-04-21,Herkimer,New York,36043,50,1 +2020-04-22,Herkimer,New York,36043,53,1 +2020-04-23,Herkimer,New York,36043,54,1 +2020-04-24,Herkimer,New York,36043,56,1 +2020-04-25,Herkimer,New York,36043,56,1 +2020-04-26,Herkimer,New York,36043,57,1 +2020-04-27,Herkimer,New York,36043,58,1 +2020-04-28,Herkimer,New York,36043,58,1 +2020-04-29,Herkimer,New York,36043,58,1 +2020-04-30,Herkimer,New York,36043,58,1 +2020-05-01,Herkimer,New York,36043,60,1 +2020-05-02,Herkimer,New York,36043,61,1 +2020-05-03,Herkimer,New York,36043,62,1 +2020-05-04,Herkimer,New York,36043,63,1 +2020-05-05,Herkimer,New York,36043,67,1 +2020-05-06,Herkimer,New York,36043,68,1 +2020-05-07,Herkimer,New York,36043,74,1 +2020-05-08,Herkimer,New York,36043,76,1 +2020-05-09,Herkimer,New York,36043,77,1 +2020-05-10,Herkimer,New York,36043,79,1 +2020-05-11,Herkimer,New York,36043,81,1 +2020-05-12,Herkimer,New York,36043,81,1 +2020-05-13,Herkimer,New York,36043,84,1 +2020-05-14,Herkimer,New York,36043,86,1 +2020-05-15,Herkimer,New York,36043,87,1 +2020-05-16,Herkimer,New York,36043,91,1 +2020-05-17,Herkimer,New York,36043,91,1 +2020-05-18,Herkimer,New York,36043,92,1 +2020-05-19,Herkimer,New York,36043,92,1 +2020-05-20,Herkimer,New York,36043,93,1 +2020-05-21,Herkimer,New York,36043,93,1 +2020-05-22,Herkimer,New York,36043,95,1 +2020-05-23,Herkimer,New York,36043,100,1 +2020-05-24,Herkimer,New York,36043,101,1 +2020-05-25,Herkimer,New York,36043,103,1 +2020-05-26,Herkimer,New York,36043,103,1 +2020-05-27,Herkimer,New York,36043,105,1 +2020-05-28,Herkimer,New York,36043,106,1 +2020-05-29,Herkimer,New York,36043,107,1 +2020-05-30,Herkimer,New York,36043,107,1 +2020-05-31,Herkimer,New York,36043,108,1 +2020-06-01,Herkimer,New York,36043,109,1 +2020-06-02,Herkimer,New York,36043,111,1 +2020-06-03,Herkimer,New York,36043,113,1 +2020-06-04,Herkimer,New York,36043,113,1 +2020-06-05,Herkimer,New York,36043,115,1 +2020-06-06,Herkimer,New York,36043,122,1 +2020-06-07,Herkimer,New York,36043,123,1 +2020-06-08,Herkimer,New York,36043,124,1 +2020-06-09,Herkimer,New York,36043,125,1 +2020-06-10,Herkimer,New York,36043,125,1 +2020-06-11,Herkimer,New York,36043,125,1 +2020-06-12,Herkimer,New York,36043,127,1 +2020-06-13,Herkimer,New York,36043,128,1 +2020-06-14,Herkimer,New York,36043,128,1 +2020-06-15,Herkimer,New York,36043,128,1 +2020-06-16,Herkimer,New York,36043,128,1 +2020-06-17,Herkimer,New York,36043,128,1 +2020-06-18,Herkimer,New York,36043,128,1 +2020-06-19,Herkimer,New York,36043,131,1 +2020-06-20,Herkimer,New York,36043,134,1 +2020-06-21,Herkimer,New York,36043,136,1 +2020-06-22,Herkimer,New York,36043,137,1 +2020-06-23,Herkimer,New York,36043,137,1 +2020-06-24,Herkimer,New York,36043,142,1 +2020-06-25,Herkimer,New York,36043,143,1 +2020-06-26,Herkimer,New York,36043,149,1 +2020-06-27,Herkimer,New York,36043,154,1 +2020-06-28,Herkimer,New York,36043,158,1 +2020-06-29,Herkimer,New York,36043,159,1 +2020-06-30,Herkimer,New York,36043,159,1 +2020-07-01,Herkimer,New York,36043,162,1 +2020-07-02,Herkimer,New York,36043,164,1 +2020-07-03,Herkimer,New York,36043,172,1 +2020-07-04,Herkimer,New York,36043,172,1 +2020-07-05,Herkimer,New York,36043,173,1 +2020-07-06,Herkimer,New York,36043,179,1 +2020-07-07,Herkimer,New York,36043,181,1 +2020-07-08,Herkimer,New York,36043,181,1 +2020-07-09,Herkimer,New York,36043,182,1 +2020-03-18,Jefferson,New York,36045,1,0 +2020-03-19,Jefferson,New York,36045,1,0 +2020-03-20,Jefferson,New York,36045,1,0 +2020-03-21,Jefferson,New York,36045,1,0 +2020-03-22,Jefferson,New York,36045,1,0 +2020-03-23,Jefferson,New York,36045,2,0 +2020-03-24,Jefferson,New York,36045,2,0 +2020-03-25,Jefferson,New York,36045,2,0 +2020-03-26,Jefferson,New York,36045,3,0 +2020-03-27,Jefferson,New York,36045,3,0 +2020-03-28,Jefferson,New York,36045,6,0 +2020-03-29,Jefferson,New York,36045,7,0 +2020-03-30,Jefferson,New York,36045,11,0 +2020-03-31,Jefferson,New York,36045,12,0 +2020-04-01,Jefferson,New York,36045,12,0 +2020-04-02,Jefferson,New York,36045,15,0 +2020-04-03,Jefferson,New York,36045,15,0 +2020-04-04,Jefferson,New York,36045,20,0 +2020-04-05,Jefferson,New York,36045,26,0 +2020-04-06,Jefferson,New York,36045,33,0 +2020-04-07,Jefferson,New York,36045,39,0 +2020-04-08,Jefferson,New York,36045,40,0 +2020-04-09,Jefferson,New York,36045,42,0 +2020-04-10,Jefferson,New York,36045,43,0 +2020-04-11,Jefferson,New York,36045,44,0 +2020-04-12,Jefferson,New York,36045,46,0 +2020-04-13,Jefferson,New York,36045,46,0 +2020-04-14,Jefferson,New York,36045,47,0 +2020-04-15,Jefferson,New York,36045,47,0 +2020-04-16,Jefferson,New York,36045,48,0 +2020-04-17,Jefferson,New York,36045,50,0 +2020-04-18,Jefferson,New York,36045,50,0 +2020-04-19,Jefferson,New York,36045,54,0 +2020-04-20,Jefferson,New York,36045,54,0 +2020-04-21,Jefferson,New York,36045,54,0 +2020-04-22,Jefferson,New York,36045,54,0 +2020-04-23,Jefferson,New York,36045,56,0 +2020-04-24,Jefferson,New York,36045,58,0 +2020-04-25,Jefferson,New York,36045,59,0 +2020-04-26,Jefferson,New York,36045,60,0 +2020-04-27,Jefferson,New York,36045,60,0 +2020-04-28,Jefferson,New York,36045,60,0 +2020-04-29,Jefferson,New York,36045,60,0 +2020-04-30,Jefferson,New York,36045,61,0 +2020-05-01,Jefferson,New York,36045,61,0 +2020-05-02,Jefferson,New York,36045,62,0 +2020-05-03,Jefferson,New York,36045,62,0 +2020-05-04,Jefferson,New York,36045,63,0 +2020-05-05,Jefferson,New York,36045,63,0 +2020-05-06,Jefferson,New York,36045,63,0 +2020-05-07,Jefferson,New York,36045,64,0 +2020-05-08,Jefferson,New York,36045,66,0 +2020-05-09,Jefferson,New York,36045,67,0 +2020-05-10,Jefferson,New York,36045,68,0 +2020-05-11,Jefferson,New York,36045,68,0 +2020-05-12,Jefferson,New York,36045,68,0 +2020-05-13,Jefferson,New York,36045,68,0 +2020-05-14,Jefferson,New York,36045,69,0 +2020-05-15,Jefferson,New York,36045,71,0 +2020-05-16,Jefferson,New York,36045,71,0 +2020-05-17,Jefferson,New York,36045,71,0 +2020-05-18,Jefferson,New York,36045,71,0 +2020-05-19,Jefferson,New York,36045,71,0 +2020-05-20,Jefferson,New York,36045,71,0 +2020-05-21,Jefferson,New York,36045,71,0 +2020-05-22,Jefferson,New York,36045,72,0 +2020-05-23,Jefferson,New York,36045,72,0 +2020-05-24,Jefferson,New York,36045,72,0 +2020-05-25,Jefferson,New York,36045,72,0 +2020-05-26,Jefferson,New York,36045,72,0 +2020-05-27,Jefferson,New York,36045,72,0 +2020-05-28,Jefferson,New York,36045,72,0 +2020-05-29,Jefferson,New York,36045,74,0 +2020-05-30,Jefferson,New York,36045,74,0 +2020-05-31,Jefferson,New York,36045,74,0 +2020-06-01,Jefferson,New York,36045,74,0 +2020-06-02,Jefferson,New York,36045,74,0 +2020-06-03,Jefferson,New York,36045,74,0 +2020-06-04,Jefferson,New York,36045,74,0 +2020-06-05,Jefferson,New York,36045,75,0 +2020-06-06,Jefferson,New York,36045,75,0 +2020-06-07,Jefferson,New York,36045,77,0 +2020-06-08,Jefferson,New York,36045,78,0 +2020-06-09,Jefferson,New York,36045,79,0 +2020-06-10,Jefferson,New York,36045,79,0 +2020-06-11,Jefferson,New York,36045,79,0 +2020-06-12,Jefferson,New York,36045,80,0 +2020-06-13,Jefferson,New York,36045,81,0 +2020-06-14,Jefferson,New York,36045,81,0 +2020-06-15,Jefferson,New York,36045,81,0 +2020-06-16,Jefferson,New York,36045,81,0 +2020-06-17,Jefferson,New York,36045,82,0 +2020-06-18,Jefferson,New York,36045,82,0 +2020-06-19,Jefferson,New York,36045,82,0 +2020-06-20,Jefferson,New York,36045,83,0 +2020-06-21,Jefferson,New York,36045,84,0 +2020-06-22,Jefferson,New York,36045,84,0 +2020-06-23,Jefferson,New York,36045,84,0 +2020-06-24,Jefferson,New York,36045,84,0 +2020-06-25,Jefferson,New York,36045,85,0 +2020-06-26,Jefferson,New York,36045,85,0 +2020-06-27,Jefferson,New York,36045,85,0 +2020-06-28,Jefferson,New York,36045,85,0 +2020-06-29,Jefferson,New York,36045,86,0 +2020-06-30,Jefferson,New York,36045,86,0 +2020-07-01,Jefferson,New York,36045,88,0 +2020-07-02,Jefferson,New York,36045,90,0 +2020-07-03,Jefferson,New York,36045,93,0 +2020-07-04,Jefferson,New York,36045,93,0 +2020-07-05,Jefferson,New York,36045,94,0 +2020-07-06,Jefferson,New York,36045,94,0 +2020-07-07,Jefferson,New York,36045,94,0 +2020-07-08,Jefferson,New York,36045,94,0 +2020-07-09,Jefferson,New York,36045,95,0 +2020-03-29,Lewis,New York,36049,2,0 +2020-03-30,Lewis,New York,36049,2,0 +2020-03-31,Lewis,New York,36049,2,0 +2020-04-01,Lewis,New York,36049,2,0 +2020-04-02,Lewis,New York,36049,3,0 +2020-04-03,Lewis,New York,36049,3,0 +2020-04-04,Lewis,New York,36049,5,0 +2020-04-05,Lewis,New York,36049,8,0 +2020-04-06,Lewis,New York,36049,8,0 +2020-04-07,Lewis,New York,36049,8,0 +2020-04-08,Lewis,New York,36049,8,0 +2020-04-09,Lewis,New York,36049,6,0 +2020-04-10,Lewis,New York,36049,6,0 +2020-04-11,Lewis,New York,36049,6,0 +2020-04-12,Lewis,New York,36049,6,0 +2020-04-13,Lewis,New York,36049,6,0 +2020-04-14,Lewis,New York,36049,7,0 +2020-04-15,Lewis,New York,36049,7,0 +2020-04-16,Lewis,New York,36049,8,0 +2020-04-17,Lewis,New York,36049,8,0 +2020-04-18,Lewis,New York,36049,8,0 +2020-04-19,Lewis,New York,36049,8,0 +2020-04-20,Lewis,New York,36049,9,0 +2020-04-21,Lewis,New York,36049,9,0 +2020-04-22,Lewis,New York,36049,9,0 +2020-04-23,Lewis,New York,36049,9,0 +2020-04-24,Lewis,New York,36049,9,0 +2020-04-25,Lewis,New York,36049,9,0 +2020-04-26,Lewis,New York,36049,9,0 +2020-04-27,Lewis,New York,36049,9,0 +2020-04-28,Lewis,New York,36049,9,0 +2020-04-29,Lewis,New York,36049,9,0 +2020-04-30,Lewis,New York,36049,9,0 +2020-05-01,Lewis,New York,36049,9,0 +2020-05-02,Lewis,New York,36049,9,0 +2020-05-03,Lewis,New York,36049,9,0 +2020-05-04,Lewis,New York,36049,9,0 +2020-05-05,Lewis,New York,36049,9,0 +2020-05-06,Lewis,New York,36049,9,0 +2020-05-07,Lewis,New York,36049,10,0 +2020-05-08,Lewis,New York,36049,10,0 +2020-05-09,Lewis,New York,36049,11,0 +2020-05-10,Lewis,New York,36049,11,0 +2020-05-11,Lewis,New York,36049,11,0 +2020-05-12,Lewis,New York,36049,11,0 +2020-05-13,Lewis,New York,36049,11,0 +2020-05-14,Lewis,New York,36049,12,0 +2020-05-15,Lewis,New York,36049,12,0 +2020-05-16,Lewis,New York,36049,13,0 +2020-05-17,Lewis,New York,36049,16,0 +2020-05-18,Lewis,New York,36049,17,0 +2020-05-19,Lewis,New York,36049,18,0 +2020-05-20,Lewis,New York,36049,18,0 +2020-05-21,Lewis,New York,36049,18,0 +2020-05-22,Lewis,New York,36049,19,0 +2020-05-23,Lewis,New York,36049,19,0 +2020-05-24,Lewis,New York,36049,19,0 +2020-05-25,Lewis,New York,36049,19,0 +2020-05-26,Lewis,New York,36049,20,0 +2020-05-27,Lewis,New York,36049,20,0 +2020-05-28,Lewis,New York,36049,20,0 +2020-05-29,Lewis,New York,36049,20,0 +2020-05-30,Lewis,New York,36049,20,0 +2020-05-31,Lewis,New York,36049,20,0 +2020-06-01,Lewis,New York,36049,20,0 +2020-06-02,Lewis,New York,36049,20,0 +2020-06-03,Lewis,New York,36049,20,0 +2020-06-04,Lewis,New York,36049,20,0 +2020-06-05,Lewis,New York,36049,20,0 +2020-06-06,Lewis,New York,36049,20,0 +2020-06-07,Lewis,New York,36049,20,0 +2020-06-08,Lewis,New York,36049,20,0 +2020-06-09,Lewis,New York,36049,20,0 +2020-06-10,Lewis,New York,36049,20,0 +2020-06-11,Lewis,New York,36049,20,0 +2020-06-12,Lewis,New York,36049,20,0 +2020-06-13,Lewis,New York,36049,20,0 +2020-06-14,Lewis,New York,36049,20,0 +2020-06-15,Lewis,New York,36049,20,0 +2020-06-16,Lewis,New York,36049,20,0 +2020-06-17,Lewis,New York,36049,21,0 +2020-06-18,Lewis,New York,36049,21,0 +2020-06-19,Lewis,New York,36049,21,0 +2020-06-20,Lewis,New York,36049,22,0 +2020-06-21,Lewis,New York,36049,23,0 +2020-06-22,Lewis,New York,36049,23,0 +2020-06-23,Lewis,New York,36049,24,0 +2020-06-24,Lewis,New York,36049,24,0 +2020-06-25,Lewis,New York,36049,25,0 +2020-06-26,Lewis,New York,36049,26,0 +2020-06-27,Lewis,New York,36049,26,0 +2020-06-28,Lewis,New York,36049,29,0 +2020-06-29,Lewis,New York,36049,30,0 +2020-06-30,Lewis,New York,36049,30,0 +2020-07-01,Lewis,New York,36049,30,0 +2020-07-02,Lewis,New York,36049,30,0 +2020-07-03,Lewis,New York,36049,30,0 +2020-07-04,Lewis,New York,36049,31,0 +2020-07-05,Lewis,New York,36049,31,0 +2020-07-06,Lewis,New York,36049,31,0 +2020-07-07,Lewis,New York,36049,31,0 +2020-07-08,Lewis,New York,36049,31,0 +2020-07-09,Lewis,New York,36049,31,0 +2020-03-18,Livingston,New York,36051,1,0 +2020-03-19,Livingston,New York,36051,1,0 +2020-03-20,Livingston,New York,36051,1,0 +2020-03-21,Livingston,New York,36051,2,0 +2020-03-22,Livingston,New York,36051,2,0 +2020-03-23,Livingston,New York,36051,3,0 +2020-03-24,Livingston,New York,36051,3,0 +2020-03-25,Livingston,New York,36051,3,0 +2020-03-26,Livingston,New York,36051,3,0 +2020-03-27,Livingston,New York,36051,3,0 +2020-03-28,Livingston,New York,36051,5,0 +2020-03-29,Livingston,New York,36051,10,0 +2020-03-30,Livingston,New York,36051,12,0 +2020-03-31,Livingston,New York,36051,13,0 +2020-04-01,Livingston,New York,36051,14,0 +2020-04-02,Livingston,New York,36051,18,1 +2020-04-03,Livingston,New York,36051,18,1 +2020-04-04,Livingston,New York,36051,18,1 +2020-04-05,Livingston,New York,36051,19,1 +2020-04-06,Livingston,New York,36051,26,1 +2020-04-07,Livingston,New York,36051,28,1 +2020-04-08,Livingston,New York,36051,28,0 +2020-04-09,Livingston,New York,36051,26,1 +2020-04-10,Livingston,New York,36051,29,1 +2020-04-11,Livingston,New York,36051,30,1 +2020-04-12,Livingston,New York,36051,30,1 +2020-04-13,Livingston,New York,36051,30,1 +2020-04-14,Livingston,New York,36051,31,1 +2020-04-15,Livingston,New York,36051,31,1 +2020-04-16,Livingston,New York,36051,32,1 +2020-04-17,Livingston,New York,36051,34,1 +2020-04-18,Livingston,New York,36051,37,1 +2020-04-19,Livingston,New York,36051,39,2 +2020-04-20,Livingston,New York,36051,39,2 +2020-04-21,Livingston,New York,36051,39,2 +2020-04-22,Livingston,New York,36051,39,2 +2020-04-23,Livingston,New York,36051,41,2 +2020-04-24,Livingston,New York,36051,44,2 +2020-04-25,Livingston,New York,36051,58,2 +2020-04-26,Livingston,New York,36051,60,2 +2020-04-27,Livingston,New York,36051,62,2 +2020-04-28,Livingston,New York,36051,65,2 +2020-04-29,Livingston,New York,36051,67,2 +2020-04-30,Livingston,New York,36051,69,2 +2020-05-01,Livingston,New York,36051,73,2 +2020-05-02,Livingston,New York,36051,76,2 +2020-05-03,Livingston,New York,36051,83,2 +2020-05-04,Livingston,New York,36051,85,2 +2020-05-05,Livingston,New York,36051,86,2 +2020-05-06,Livingston,New York,36051,89,2 +2020-05-07,Livingston,New York,36051,95,2 +2020-05-08,Livingston,New York,36051,100,3 +2020-05-09,Livingston,New York,36051,101,3 +2020-05-10,Livingston,New York,36051,102,3 +2020-05-11,Livingston,New York,36051,102,3 +2020-05-12,Livingston,New York,36051,102,3 +2020-05-13,Livingston,New York,36051,103,4 +2020-05-14,Livingston,New York,36051,106,4 +2020-05-15,Livingston,New York,36051,106,4 +2020-05-16,Livingston,New York,36051,107,4 +2020-05-17,Livingston,New York,36051,110,4 +2020-05-18,Livingston,New York,36051,110,4 +2020-05-19,Livingston,New York,36051,111,4 +2020-05-20,Livingston,New York,36051,111,4 +2020-05-21,Livingston,New York,36051,114,4 +2020-05-22,Livingston,New York,36051,114,4 +2020-05-23,Livingston,New York,36051,114,4 +2020-05-24,Livingston,New York,36051,114,4 +2020-05-25,Livingston,New York,36051,115,4 +2020-05-26,Livingston,New York,36051,118,4 +2020-05-27,Livingston,New York,36051,118,4 +2020-05-28,Livingston,New York,36051,118,4 +2020-05-29,Livingston,New York,36051,118,4 +2020-05-30,Livingston,New York,36051,118,4 +2020-05-31,Livingston,New York,36051,119,4 +2020-06-01,Livingston,New York,36051,119,4 +2020-06-02,Livingston,New York,36051,119,4 +2020-06-03,Livingston,New York,36051,120,4 +2020-06-04,Livingston,New York,36051,120,4 +2020-06-05,Livingston,New York,36051,121,4 +2020-06-06,Livingston,New York,36051,121,4 +2020-06-07,Livingston,New York,36051,121,4 +2020-06-08,Livingston,New York,36051,121,4 +2020-06-09,Livingston,New York,36051,121,4 +2020-06-10,Livingston,New York,36051,121,4 +2020-06-11,Livingston,New York,36051,121,4 +2020-06-12,Livingston,New York,36051,121,4 +2020-06-13,Livingston,New York,36051,122,4 +2020-06-14,Livingston,New York,36051,123,4 +2020-06-15,Livingston,New York,36051,123,4 +2020-06-16,Livingston,New York,36051,123,4 +2020-06-17,Livingston,New York,36051,123,4 +2020-06-18,Livingston,New York,36051,123,4 +2020-06-19,Livingston,New York,36051,123,4 +2020-06-20,Livingston,New York,36051,123,4 +2020-06-21,Livingston,New York,36051,123,4 +2020-06-22,Livingston,New York,36051,124,4 +2020-06-23,Livingston,New York,36051,125,4 +2020-06-24,Livingston,New York,36051,125,4 +2020-06-25,Livingston,New York,36051,126,4 +2020-06-26,Livingston,New York,36051,126,4 +2020-06-27,Livingston,New York,36051,126,4 +2020-06-28,Livingston,New York,36051,128,4 +2020-06-29,Livingston,New York,36051,128,4 +2020-06-30,Livingston,New York,36051,129,4 +2020-07-01,Livingston,New York,36051,130,4 +2020-07-02,Livingston,New York,36051,130,4 +2020-07-03,Livingston,New York,36051,130,4 +2020-07-04,Livingston,New York,36051,131,4 +2020-07-05,Livingston,New York,36051,132,4 +2020-07-06,Livingston,New York,36051,133,4 +2020-07-07,Livingston,New York,36051,134,4 +2020-07-08,Livingston,New York,36051,137,4 +2020-07-09,Livingston,New York,36051,140,4 +2020-03-22,Madison,New York,36053,1,0 +2020-03-23,Madison,New York,36053,4,0 +2020-03-24,Madison,New York,36053,5,0 +2020-03-25,Madison,New York,36053,7,0 +2020-03-26,Madison,New York,36053,9,0 +2020-03-27,Madison,New York,36053,17,0 +2020-03-28,Madison,New York,36053,19,0 +2020-03-29,Madison,New York,36053,24,0 +2020-03-30,Madison,New York,36053,34,0 +2020-03-31,Madison,New York,36053,41,0 +2020-04-01,Madison,New York,36053,67,2 +2020-04-02,Madison,New York,36053,77,2 +2020-04-03,Madison,New York,36053,77,2 +2020-04-04,Madison,New York,36053,77,2 +2020-04-05,Madison,New York,36053,89,2 +2020-04-06,Madison,New York,36053,92,2 +2020-04-07,Madison,New York,36053,92,2 +2020-04-08,Madison,New York,36053,92,1 +2020-04-09,Madison,New York,36053,91,1 +2020-04-10,Madison,New York,36053,99,1 +2020-04-11,Madison,New York,36053,99,1 +2020-04-12,Madison,New York,36053,101,1 +2020-04-13,Madison,New York,36053,101,1 +2020-04-14,Madison,New York,36053,104,1 +2020-04-15,Madison,New York,36053,105,1 +2020-04-16,Madison,New York,36053,105,1 +2020-04-17,Madison,New York,36053,105,1 +2020-04-18,Madison,New York,36053,105,1 +2020-04-19,Madison,New York,36053,106,3 +2020-04-20,Madison,New York,36053,106,3 +2020-04-21,Madison,New York,36053,106,3 +2020-04-22,Madison,New York,36053,106,3 +2020-04-23,Madison,New York,36053,106,3 +2020-04-24,Madison,New York,36053,106,3 +2020-04-25,Madison,New York,36053,121,3 +2020-04-26,Madison,New York,36053,123,3 +2020-04-27,Madison,New York,36053,124,3 +2020-04-28,Madison,New York,36053,126,3 +2020-04-29,Madison,New York,36053,126,3 +2020-04-30,Madison,New York,36053,131,3 +2020-05-01,Madison,New York,36053,139,3 +2020-05-02,Madison,New York,36053,149,3 +2020-05-03,Madison,New York,36053,151,3 +2020-05-04,Madison,New York,36053,217,3 +2020-05-05,Madison,New York,36053,223,3 +2020-05-06,Madison,New York,36053,231,3 +2020-05-07,Madison,New York,36053,246,3 +2020-05-08,Madison,New York,36053,249,3 +2020-05-09,Madison,New York,36053,250,3 +2020-05-10,Madison,New York,36053,251,3 +2020-05-11,Madison,New York,36053,251,3 +2020-05-12,Madison,New York,36053,251,3 +2020-05-13,Madison,New York,36053,253,3 +2020-05-14,Madison,New York,36053,255,3 +2020-05-15,Madison,New York,36053,256,3 +2020-05-16,Madison,New York,36053,258,3 +2020-05-17,Madison,New York,36053,258,3 +2020-05-18,Madison,New York,36053,258,3 +2020-05-19,Madison,New York,36053,260,3 +2020-05-20,Madison,New York,36053,292,3 +2020-05-21,Madison,New York,36053,294,3 +2020-05-22,Madison,New York,36053,297,4 +2020-05-23,Madison,New York,36053,301,4 +2020-05-24,Madison,New York,36053,301,4 +2020-05-25,Madison,New York,36053,303,4 +2020-05-26,Madison,New York,36053,303,4 +2020-05-27,Madison,New York,36053,310,4 +2020-05-28,Madison,New York,36053,310,4 +2020-05-29,Madison,New York,36053,310,4 +2020-05-30,Madison,New York,36053,311,4 +2020-05-31,Madison,New York,36053,316,4 +2020-06-01,Madison,New York,36053,316,4 +2020-06-02,Madison,New York,36053,317,4 +2020-06-03,Madison,New York,36053,319,4 +2020-06-04,Madison,New York,36053,319,4 +2020-06-05,Madison,New York,36053,323,4 +2020-06-06,Madison,New York,36053,325,4 +2020-06-07,Madison,New York,36053,327,4 +2020-06-08,Madison,New York,36053,327,4 +2020-06-09,Madison,New York,36053,331,4 +2020-06-10,Madison,New York,36053,331,4 +2020-06-11,Madison,New York,36053,333,4 +2020-06-12,Madison,New York,36053,333,4 +2020-06-13,Madison,New York,36053,333,4 +2020-06-14,Madison,New York,36053,334,4 +2020-06-15,Madison,New York,36053,335,4 +2020-06-16,Madison,New York,36053,336,4 +2020-06-17,Madison,New York,36053,338,4 +2020-06-18,Madison,New York,36053,341,4 +2020-06-19,Madison,New York,36053,342,4 +2020-06-20,Madison,New York,36053,343,4 +2020-06-21,Madison,New York,36053,345,4 +2020-06-22,Madison,New York,36053,347,4 +2020-06-23,Madison,New York,36053,347,4 +2020-06-24,Madison,New York,36053,347,4 +2020-06-25,Madison,New York,36053,349,4 +2020-06-26,Madison,New York,36053,351,4 +2020-06-27,Madison,New York,36053,351,4 +2020-06-28,Madison,New York,36053,352,4 +2020-06-29,Madison,New York,36053,353,4 +2020-06-30,Madison,New York,36053,357,4 +2020-07-01,Madison,New York,36053,357,4 +2020-07-02,Madison,New York,36053,359,4 +2020-07-03,Madison,New York,36053,360,4 +2020-07-04,Madison,New York,36053,363,4 +2020-07-05,Madison,New York,36053,363,4 +2020-07-06,Madison,New York,36053,364,4 +2020-07-07,Madison,New York,36053,367,4 +2020-07-08,Madison,New York,36053,368,4 +2020-07-09,Madison,New York,36053,368,4 +2020-03-11,Monroe,New York,36055,1,0 +2020-03-12,Monroe,New York,36055,1,0 +2020-03-13,Monroe,New York,36055,1,0 +2020-03-14,Monroe,New York,36055,2,0 +2020-03-15,Monroe,New York,36055,2,0 +2020-03-16,Monroe,New York,36055,10,0 +2020-03-17,Monroe,New York,36055,11,0 +2020-03-18,Monroe,New York,36055,14,0 +2020-03-19,Monroe,New York,36055,28,0 +2020-03-20,Monroe,New York,36055,32,0 +2020-03-21,Monroe,New York,36055,42,0 +2020-03-22,Monroe,New York,36055,57,0 +2020-03-23,Monroe,New York,36055,76,0 +2020-03-24,Monroe,New York,36055,96,0 +2020-03-25,Monroe,New York,36055,118,0 +2020-03-26,Monroe,New York,36055,139,3 +2020-03-27,Monroe,New York,36055,160,4 +2020-03-28,Monroe,New York,36055,202,5 +2020-03-29,Monroe,New York,36055,219,6 +2020-03-30,Monroe,New York,36055,242,6 +2020-03-31,Monroe,New York,36055,300,9 +2020-04-01,Monroe,New York,36055,349,9 +2020-04-02,Monroe,New York,36055,420,10 +2020-04-03,Monroe,New York,36055,464,14 +2020-04-04,Monroe,New York,36055,512,17 +2020-04-05,Monroe,New York,36055,548,19 +2020-04-06,Monroe,New York,36055,574,23 +2020-04-07,Monroe,New York,36055,596,31 +2020-04-08,Monroe,New York,36055,651,27 +2020-04-09,Monroe,New York,36055,698,31 +2020-04-10,Monroe,New York,36055,742,35 +2020-04-11,Monroe,New York,36055,767,42 +2020-04-12,Monroe,New York,36055,798,42 +2020-04-13,Monroe,New York,36055,823,43 +2020-04-14,Monroe,New York,36055,850,47 +2020-04-15,Monroe,New York,36055,884,48 +2020-04-16,Monroe,New York,36055,932,49 +2020-04-17,Monroe,New York,36055,975,49 +2020-04-18,Monroe,New York,36055,1008,49 +2020-04-19,Monroe,New York,36055,1032,61 +2020-04-20,Monroe,New York,36055,1054,66 +2020-04-21,Monroe,New York,36055,1070,69 +2020-04-22,Monroe,New York,36055,1112,72 +2020-04-23,Monroe,New York,36055,1152,77 +2020-04-24,Monroe,New York,36055,1199,78 +2020-04-25,Monroe,New York,36055,1285,82 +2020-04-26,Monroe,New York,36055,1316,85 +2020-04-27,Monroe,New York,36055,1331,89 +2020-04-28,Monroe,New York,36055,1371,91 +2020-04-29,Monroe,New York,36055,1404,93 +2020-04-30,Monroe,New York,36055,1441,93 +2020-05-01,Monroe,New York,36055,1478,95 +2020-05-02,Monroe,New York,36055,1534,96 +2020-05-03,Monroe,New York,36055,1566,96 +2020-05-04,Monroe,New York,36055,1595,97 +2020-05-05,Monroe,New York,36055,1624,101 +2020-05-06,Monroe,New York,36055,1655,130 +2020-05-07,Monroe,New York,36055,1689,135 +2020-05-08,Monroe,New York,36055,1736,136 +2020-05-09,Monroe,New York,36055,1776,139 +2020-05-10,Monroe,New York,36055,1822,143 +2020-05-11,Monroe,New York,36055,1851,149 +2020-05-12,Monroe,New York,36055,1891,151 +2020-05-13,Monroe,New York,36055,1960,152 +2020-05-14,Monroe,New York,36055,2020,154 +2020-05-15,Monroe,New York,36055,2092,156 +2020-05-16,Monroe,New York,36055,2193,165 +2020-05-17,Monroe,New York,36055,2259,168 +2020-05-18,Monroe,New York,36055,2304,170 +2020-05-19,Monroe,New York,36055,2377,172 +2020-05-20,Monroe,New York,36055,2466,174 +2020-05-21,Monroe,New York,36055,2531,178 +2020-05-22,Monroe,New York,36055,2602,181 +2020-05-23,Monroe,New York,36055,2662,185 +2020-05-24,Monroe,New York,36055,2698,192 +2020-05-25,Monroe,New York,36055,2734,200 +2020-05-26,Monroe,New York,36055,2763,201 +2020-05-27,Monroe,New York,36055,2792,208 +2020-05-28,Monroe,New York,36055,2825,210 +2020-05-29,Monroe,New York,36055,2861,213 +2020-05-30,Monroe,New York,36055,2910,218 +2020-05-31,Monroe,New York,36055,2943,218 +2020-06-01,Monroe,New York,36055,2965,220 +2020-06-02,Monroe,New York,36055,2990,225 +2020-06-03,Monroe,New York,36055,3049,227 +2020-06-04,Monroe,New York,36055,3082,230 +2020-06-05,Monroe,New York,36055,3118,232 +2020-06-06,Monroe,New York,36055,3168,233 +2020-06-07,Monroe,New York,36055,3191,234 +2020-06-08,Monroe,New York,36055,3204,235 +2020-06-09,Monroe,New York,36055,3244,235 +2020-06-10,Monroe,New York,36055,3256,239 +2020-06-11,Monroe,New York,36055,3294,242 +2020-06-12,Monroe,New York,36055,3321,244 +2020-06-13,Monroe,New York,36055,3341,245 +2020-06-14,Monroe,New York,36055,3371,246 +2020-06-15,Monroe,New York,36055,3381,247 +2020-06-16,Monroe,New York,36055,3403,248 +2020-06-17,Monroe,New York,36055,3419,248 +2020-06-18,Monroe,New York,36055,3440,249 +2020-06-19,Monroe,New York,36055,3462,250 +2020-06-20,Monroe,New York,36055,3488,253 +2020-06-21,Monroe,New York,36055,3499,255 +2020-06-22,Monroe,New York,36055,3513,256 +2020-06-23,Monroe,New York,36055,3541,256 +2020-06-24,Monroe,New York,36055,3568,257 +2020-06-25,Monroe,New York,36055,3603,258 +2020-06-26,Monroe,New York,36055,3642,258 +2020-06-27,Monroe,New York,36055,3677,260 +2020-06-28,Monroe,New York,36055,3691,261 +2020-06-29,Monroe,New York,36055,3710,261 +2020-06-30,Monroe,New York,36055,3743,261 +2020-07-01,Monroe,New York,36055,3781,262 +2020-07-02,Monroe,New York,36055,3834,262 +2020-07-03,Monroe,New York,36055,3886,262 +2020-07-04,Monroe,New York,36055,3923,262 +2020-07-05,Monroe,New York,36055,3954,262 +2020-07-06,Monroe,New York,36055,3975,262 +2020-07-07,Monroe,New York,36055,4005,262 +2020-07-08,Monroe,New York,36055,4047,262 +2020-07-09,Monroe,New York,36055,4075,263 +2020-03-15,Montgomery,New York,36057,1,0 +2020-03-16,Montgomery,New York,36057,1,0 +2020-03-17,Montgomery,New York,36057,1,0 +2020-03-18,Montgomery,New York,36057,1,0 +2020-03-19,Montgomery,New York,36057,1,0 +2020-03-20,Montgomery,New York,36057,2,0 +2020-03-21,Montgomery,New York,36057,3,0 +2020-03-22,Montgomery,New York,36057,3,0 +2020-03-23,Montgomery,New York,36057,3,0 +2020-03-24,Montgomery,New York,36057,3,0 +2020-03-25,Montgomery,New York,36057,4,0 +2020-03-26,Montgomery,New York,36057,5,0 +2020-03-27,Montgomery,New York,36057,5,0 +2020-03-28,Montgomery,New York,36057,5,0 +2020-03-29,Montgomery,New York,36057,6,0 +2020-03-30,Montgomery,New York,36057,6,0 +2020-03-31,Montgomery,New York,36057,7,0 +2020-04-01,Montgomery,New York,36057,7,0 +2020-04-02,Montgomery,New York,36057,8,0 +2020-04-03,Montgomery,New York,36057,8,0 +2020-04-04,Montgomery,New York,36057,13,1 +2020-04-05,Montgomery,New York,36057,15,1 +2020-04-06,Montgomery,New York,36057,15,1 +2020-04-07,Montgomery,New York,36057,18,1 +2020-04-08,Montgomery,New York,36057,18,1 +2020-04-09,Montgomery,New York,36057,28,1 +2020-04-10,Montgomery,New York,36057,29,1 +2020-04-11,Montgomery,New York,36057,29,1 +2020-04-12,Montgomery,New York,36057,29,1 +2020-04-13,Montgomery,New York,36057,29,1 +2020-04-14,Montgomery,New York,36057,32,1 +2020-04-15,Montgomery,New York,36057,32,1 +2020-04-16,Montgomery,New York,36057,32,1 +2020-04-17,Montgomery,New York,36057,33,1 +2020-04-18,Montgomery,New York,36057,34,1 +2020-04-19,Montgomery,New York,36057,35,1 +2020-04-20,Montgomery,New York,36057,35,1 +2020-04-21,Montgomery,New York,36057,37,1 +2020-04-22,Montgomery,New York,36057,38,1 +2020-04-23,Montgomery,New York,36057,39,1 +2020-04-24,Montgomery,New York,36057,39,1 +2020-04-25,Montgomery,New York,36057,46,1 +2020-04-26,Montgomery,New York,36057,47,1 +2020-04-27,Montgomery,New York,36057,47,1 +2020-04-28,Montgomery,New York,36057,49,1 +2020-04-29,Montgomery,New York,36057,51,1 +2020-04-30,Montgomery,New York,36057,53,1 +2020-05-01,Montgomery,New York,36057,54,1 +2020-05-02,Montgomery,New York,36057,54,1 +2020-05-03,Montgomery,New York,36057,56,1 +2020-05-04,Montgomery,New York,36057,56,1 +2020-05-05,Montgomery,New York,36057,61,1 +2020-05-06,Montgomery,New York,36057,63,1 +2020-05-07,Montgomery,New York,36057,63,2 +2020-05-08,Montgomery,New York,36057,64,2 +2020-05-09,Montgomery,New York,36057,66,2 +2020-05-10,Montgomery,New York,36057,67,2 +2020-05-11,Montgomery,New York,36057,67,3 +2020-05-12,Montgomery,New York,36057,67,3 +2020-05-13,Montgomery,New York,36057,68,3 +2020-05-14,Montgomery,New York,36057,69,3 +2020-05-15,Montgomery,New York,36057,72,3 +2020-05-16,Montgomery,New York,36057,75,3 +2020-05-17,Montgomery,New York,36057,75,3 +2020-05-18,Montgomery,New York,36057,75,3 +2020-05-19,Montgomery,New York,36057,75,3 +2020-05-20,Montgomery,New York,36057,75,3 +2020-05-21,Montgomery,New York,36057,77,3 +2020-05-22,Montgomery,New York,36057,77,4 +2020-05-23,Montgomery,New York,36057,77,4 +2020-05-24,Montgomery,New York,36057,79,4 +2020-05-25,Montgomery,New York,36057,79,4 +2020-05-26,Montgomery,New York,36057,80,4 +2020-05-27,Montgomery,New York,36057,82,4 +2020-05-28,Montgomery,New York,36057,82,4 +2020-05-29,Montgomery,New York,36057,84,4 +2020-05-30,Montgomery,New York,36057,89,4 +2020-05-31,Montgomery,New York,36057,91,5 +2020-06-01,Montgomery,New York,36057,91,5 +2020-06-02,Montgomery,New York,36057,93,5 +2020-06-03,Montgomery,New York,36057,94,5 +2020-06-04,Montgomery,New York,36057,96,5 +2020-06-05,Montgomery,New York,36057,96,5 +2020-06-06,Montgomery,New York,36057,98,5 +2020-06-07,Montgomery,New York,36057,100,5 +2020-06-08,Montgomery,New York,36057,100,5 +2020-06-09,Montgomery,New York,36057,100,5 +2020-06-10,Montgomery,New York,36057,100,5 +2020-06-11,Montgomery,New York,36057,101,5 +2020-06-12,Montgomery,New York,36057,103,5 +2020-06-13,Montgomery,New York,36057,103,5 +2020-06-14,Montgomery,New York,36057,104,5 +2020-06-15,Montgomery,New York,36057,104,5 +2020-06-16,Montgomery,New York,36057,104,5 +2020-06-17,Montgomery,New York,36057,104,5 +2020-06-18,Montgomery,New York,36057,105,5 +2020-06-19,Montgomery,New York,36057,106,5 +2020-06-20,Montgomery,New York,36057,106,5 +2020-06-21,Montgomery,New York,36057,106,5 +2020-06-22,Montgomery,New York,36057,108,5 +2020-06-23,Montgomery,New York,36057,109,5 +2020-06-24,Montgomery,New York,36057,110,5 +2020-06-25,Montgomery,New York,36057,111,5 +2020-06-26,Montgomery,New York,36057,113,5 +2020-06-27,Montgomery,New York,36057,116,5 +2020-06-28,Montgomery,New York,36057,118,5 +2020-06-29,Montgomery,New York,36057,118,5 +2020-06-30,Montgomery,New York,36057,118,5 +2020-07-01,Montgomery,New York,36057,118,5 +2020-07-02,Montgomery,New York,36057,119,5 +2020-07-03,Montgomery,New York,36057,119,5 +2020-07-04,Montgomery,New York,36057,119,5 +2020-07-05,Montgomery,New York,36057,119,5 +2020-07-06,Montgomery,New York,36057,120,5 +2020-07-07,Montgomery,New York,36057,121,5 +2020-07-08,Montgomery,New York,36057,121,5 +2020-07-09,Montgomery,New York,36057,125,5 +2020-03-05,Nassau,New York,36059,1,0 +2020-03-06,Nassau,New York,36059,4,0 +2020-03-07,Nassau,New York,36059,4,0 +2020-03-08,Nassau,New York,36059,5,0 +2020-03-09,Nassau,New York,36059,17,0 +2020-03-10,Nassau,New York,36059,19,0 +2020-03-11,Nassau,New York,36059,28,0 +2020-03-12,Nassau,New York,36059,41,0 +2020-03-13,Nassau,New York,36059,51,0 +2020-03-14,Nassau,New York,36059,79,0 +2020-03-15,Nassau,New York,36059,98,0 +2020-03-16,Nassau,New York,36059,109,0 +2020-03-17,Nassau,New York,36059,131,2 +2020-03-18,Nassau,New York,36059,183,2 +2020-03-19,Nassau,New York,36059,382,3 +2020-03-20,Nassau,New York,36059,754,4 +2020-03-21,Nassau,New York,36059,1234,7 +2020-03-22,Nassau,New York,36059,1900,7 +2020-03-23,Nassau,New York,36059,2442,9 +2020-03-24,Nassau,New York,36059,2869,9 +2020-03-25,Nassau,New York,36059,3285,17 +2020-03-26,Nassau,New York,36059,3914,19 +2020-03-27,Nassau,New York,36059,4657,27 +2020-03-28,Nassau,New York,36059,5537,35 +2020-03-29,Nassau,New York,36059,6445,39 +2020-03-30,Nassau,New York,36059,7344,48 +2020-03-31,Nassau,New York,36059,8544,63 +2020-04-01,Nassau,New York,36059,9555,76 +2020-04-02,Nassau,New York,36059,10587,95 +2020-04-03,Nassau,New York,36059,12024,138 +2020-04-04,Nassau,New York,36059,13346,396 +2020-04-05,Nassau,New York,36059,14398,396 +2020-04-06,Nassau,New York,36059,15616,535 +2020-04-07,Nassau,New York,36059,16610,620 +2020-04-08,Nassau,New York,36059,18548,701 +2020-04-09,Nassau,New York,36059,20140,778 +2020-04-10,Nassau,New York,36059,21512,890 +2020-04-11,Nassau,New York,36059,22584,965 +2020-04-12,Nassau,New York,36059,23553,1030 +2020-04-13,Nassau,New York,36059,24358,1109 +2020-04-14,Nassau,New York,36059,25250,1217 +2020-04-15,Nassau,New York,36059,26715,1286 +2020-04-16,Nassau,New York,36059,27772,1356 +2020-04-17,Nassau,New York,36059,28539,1356 +2020-04-18,Nassau,New York,36059,29180,1356 +2020-04-19,Nassau,New York,36059,30013,1577 +2020-04-20,Nassau,New York,36059,30677,1638 +2020-04-21,Nassau,New York,36059,31079,1717 +2020-04-22,Nassau,New York,36059,31555,1764 +2020-04-23,Nassau,New York,36059,32124,1813 +2020-04-24,Nassau,New York,36059,32765,1867 +2020-04-25,Nassau,New York,36059,33798,1917 +2020-04-26,Nassau,New York,36059,34522,1962 +2020-04-27,Nassau,New York,36059,34865,2003 +2020-04-28,Nassau,New York,36059,35085,2039 +2020-04-29,Nassau,New York,36059,35505,2077 +2020-04-30,Nassau,New York,36059,35854,2111 +2020-05-01,Nassau,New York,36059,36161,2140 +2020-05-02,Nassau,New York,36059,36519,2167 +2020-05-03,Nassau,New York,36059,36780,2194 +2020-05-04,Nassau,New York,36059,36965,2221 +2020-05-05,Nassau,New York,36059,37152,2250 +2020-05-06,Nassau,New York,36059,37350,2325 +2020-05-07,Nassau,New York,36059,37593,2340 +2020-05-08,Nassau,New York,36059,37812,2362 +2020-05-09,Nassau,New York,36059,38028,2388 +2020-05-10,Nassau,New York,36059,38217,2413 +2020-05-11,Nassau,New York,36059,38337,2425 +2020-05-12,Nassau,New York,36059,38434,2453 +2020-05-13,Nassau,New York,36059,38587,2468 +2020-05-14,Nassau,New York,36059,38743,2485 +2020-05-15,Nassau,New York,36059,38864,2499 +2020-05-16,Nassau,New York,36059,39033,2507 +2020-05-17,Nassau,New York,36059,39136,2517 +2020-05-18,Nassau,New York,36059,39225,2530 +2020-05-19,Nassau,New York,36059,39295,2541 +2020-05-20,Nassau,New York,36059,39368,2550 +2020-05-21,Nassau,New York,36059,39487,2558 +2020-05-22,Nassau,New York,36059,39608,2572 +2020-05-23,Nassau,New York,36059,39726,2578 +2020-05-24,Nassau,New York,36059,39837,2586 +2020-05-25,Nassau,New York,36059,39907,2597 +2020-05-26,Nassau,New York,36059,39974,2601 +2020-05-27,Nassau,New York,36059,40034,2604 +2020-05-28,Nassau,New York,36059,40140,2608 +2020-05-29,Nassau,New York,36059,40226,2611 +2020-05-30,Nassau,New York,36059,40307,2615 +2020-05-31,Nassau,New York,36059,40396,2615 +2020-06-01,Nassau,New York,36059,40479,2619 +2020-06-02,Nassau,New York,36059,40572,2622 +2020-06-03,Nassau,New York,36059,40644,2626 +2020-06-04,Nassau,New York,36059,40713,2629 +2020-06-05,Nassau,New York,36059,40797,2631 +2020-06-06,Nassau,New York,36059,40853,2635 +2020-06-07,Nassau,New York,36059,40904,2642 +2020-06-08,Nassau,New York,36059,40947,2645 +2020-06-09,Nassau,New York,36059,40980,2650 +2020-06-10,Nassau,New York,36059,41015,2653 +2020-06-11,Nassau,New York,36059,41060,2654 +2020-06-12,Nassau,New York,36059,41114,2667 +2020-06-13,Nassau,New York,36059,41172,2668 +2020-06-14,Nassau,New York,36059,41204,2670 +2020-06-15,Nassau,New York,36059,41240,2672 +2020-06-16,Nassau,New York,36059,41290,2676 +2020-06-17,Nassau,New York,36059,41320,2677 +2020-06-18,Nassau,New York,36059,41349,2677 +2020-06-19,Nassau,New York,36059,41387,2680 +2020-06-20,Nassau,New York,36059,41443,2680 +2020-06-21,Nassau,New York,36059,41479,2683 +2020-06-22,Nassau,New York,36059,41513,2683 +2020-06-23,Nassau,New York,36059,41544,2686 +2020-06-24,Nassau,New York,36059,41585,2687 +2020-06-25,Nassau,New York,36059,41646,2688 +2020-06-26,Nassau,New York,36059,41684,2690 +2020-06-27,Nassau,New York,36059,41725,2691 +2020-06-28,Nassau,New York,36059,41754,2692 +2020-06-29,Nassau,New York,36059,41780,2692 +2020-06-30,Nassau,New York,36059,41807,2693 +2020-07-01,Nassau,New York,36059,41853,2694 +2020-07-02,Nassau,New York,36059,41910,2695 +2020-07-03,Nassau,New York,36059,41947,2697 +2020-07-04,Nassau,New York,36059,41988,2697 +2020-07-05,Nassau,New York,36059,42031,2697 +2020-07-06,Nassau,New York,36059,42053,2698 +2020-07-07,Nassau,New York,36059,42088,2698 +2020-07-08,Nassau,New York,36059,42122,2699 +2020-07-09,Nassau,New York,36059,42164,2699 +2020-03-20,Niagara,New York,36063,3,0 +2020-03-21,Niagara,New York,36063,4,0 +2020-03-22,Niagara,New York,36063,6,0 +2020-03-23,Niagara,New York,36063,10,0 +2020-03-24,Niagara,New York,36063,11,0 +2020-03-25,Niagara,New York,36063,12,0 +2020-03-26,Niagara,New York,36063,14,0 +2020-03-27,Niagara,New York,36063,23,0 +2020-03-28,Niagara,New York,36063,33,0 +2020-03-29,Niagara,New York,36063,38,0 +2020-03-30,Niagara,New York,36063,41,0 +2020-03-31,Niagara,New York,36063,42,0 +2020-04-01,Niagara,New York,36063,46,0 +2020-04-02,Niagara,New York,36063,91,0 +2020-04-03,Niagara,New York,36063,91,0 +2020-04-04,Niagara,New York,36063,103,0 +2020-04-05,Niagara,New York,36063,116,0 +2020-04-06,Niagara,New York,36063,130,0 +2020-04-07,Niagara,New York,36063,143,0 +2020-04-08,Niagara,New York,36063,143,0 +2020-04-09,Niagara,New York,36063,146,0 +2020-04-10,Niagara,New York,36063,156,1 +2020-04-11,Niagara,New York,36063,167,2 +2020-04-12,Niagara,New York,36063,183,5 +2020-04-13,Niagara,New York,36063,189,5 +2020-04-14,Niagara,New York,36063,197,6 +2020-04-15,Niagara,New York,36063,204,6 +2020-04-16,Niagara,New York,36063,216,8 +2020-04-17,Niagara,New York,36063,227,8 +2020-04-18,Niagara,New York,36063,234,8 +2020-04-19,Niagara,New York,36063,246,9 +2020-04-20,Niagara,New York,36063,255,9 +2020-04-21,Niagara,New York,36063,260,9 +2020-04-22,Niagara,New York,36063,268,10 +2020-04-23,Niagara,New York,36063,295,11 +2020-04-24,Niagara,New York,36063,332,11 +2020-04-25,Niagara,New York,36063,344,11 +2020-04-26,Niagara,New York,36063,368,11 +2020-04-27,Niagara,New York,36063,378,11 +2020-04-28,Niagara,New York,36063,386,11 +2020-04-29,Niagara,New York,36063,401,11 +2020-04-30,Niagara,New York,36063,420,13 +2020-05-01,Niagara,New York,36063,440,14 +2020-05-02,Niagara,New York,36063,457,14 +2020-05-03,Niagara,New York,36063,474,14 +2020-05-04,Niagara,New York,36063,493,14 +2020-05-05,Niagara,New York,36063,508,14 +2020-05-06,Niagara,New York,36063,549,24 +2020-05-07,Niagara,New York,36063,588,27 +2020-05-08,Niagara,New York,36063,605,31 +2020-05-09,Niagara,New York,36063,627,32 +2020-05-10,Niagara,New York,36063,643,33 +2020-05-11,Niagara,New York,36063,655,34 +2020-05-12,Niagara,New York,36063,671,36 +2020-05-13,Niagara,New York,36063,690,37 +2020-05-14,Niagara,New York,36063,710,38 +2020-05-15,Niagara,New York,36063,743,38 +2020-05-16,Niagara,New York,36063,770,39 +2020-05-17,Niagara,New York,36063,792,39 +2020-05-18,Niagara,New York,36063,818,39 +2020-05-19,Niagara,New York,36063,845,39 +2020-05-20,Niagara,New York,36063,858,39 +2020-05-21,Niagara,New York,36063,880,40 +2020-05-22,Niagara,New York,36063,897,40 +2020-05-23,Niagara,New York,36063,927,40 +2020-05-24,Niagara,New York,36063,941,41 +2020-05-25,Niagara,New York,36063,955,43 +2020-05-26,Niagara,New York,36063,965,44 +2020-05-27,Niagara,New York,36063,972,48 +2020-05-28,Niagara,New York,36063,984,50 +2020-05-29,Niagara,New York,36063,1008,50 +2020-05-30,Niagara,New York,36063,1020,51 +2020-05-31,Niagara,New York,36063,1037,51 +2020-06-01,Niagara,New York,36063,1046,51 +2020-06-02,Niagara,New York,36063,1048,53 +2020-06-03,Niagara,New York,36063,1067,54 +2020-06-04,Niagara,New York,36063,1085,54 +2020-06-05,Niagara,New York,36063,1099,55 +2020-06-06,Niagara,New York,36063,1109,55 +2020-06-07,Niagara,New York,36063,1112,55 +2020-06-08,Niagara,New York,36063,1116,57 +2020-06-09,Niagara,New York,36063,1125,57 +2020-06-10,Niagara,New York,36063,1129,59 +2020-06-11,Niagara,New York,36063,1136,60 +2020-06-12,Niagara,New York,36063,1143,60 +2020-06-13,Niagara,New York,36063,1154,63 +2020-06-14,Niagara,New York,36063,1166,63 +2020-06-15,Niagara,New York,36063,1169,64 +2020-06-16,Niagara,New York,36063,1171,64 +2020-06-17,Niagara,New York,36063,1177,64 +2020-06-18,Niagara,New York,36063,1183,65 +2020-06-19,Niagara,New York,36063,1185,65 +2020-06-20,Niagara,New York,36063,1188,65 +2020-06-21,Niagara,New York,36063,1192,65 +2020-06-22,Niagara,New York,36063,1193,65 +2020-06-23,Niagara,New York,36063,1195,65 +2020-06-24,Niagara,New York,36063,1199,66 +2020-06-25,Niagara,New York,36063,1203,66 +2020-06-26,Niagara,New York,36063,1213,66 +2020-06-27,Niagara,New York,36063,1223,66 +2020-06-28,Niagara,New York,36063,1226,66 +2020-06-29,Niagara,New York,36063,1228,66 +2020-06-30,Niagara,New York,36063,1234,66 +2020-07-01,Niagara,New York,36063,1237,66 +2020-07-02,Niagara,New York,36063,1248,66 +2020-07-03,Niagara,New York,36063,1262,66 +2020-07-04,Niagara,New York,36063,1277,66 +2020-07-05,Niagara,New York,36063,1284,66 +2020-07-06,Niagara,New York,36063,1290,66 +2020-07-07,Niagara,New York,36063,1297,66 +2020-07-08,Niagara,New York,36063,1307,67 +2020-07-09,Niagara,New York,36063,1315,67 +2020-03-20,Oneida,New York,36065,2,0 +2020-03-21,Oneida,New York,36065,4,0 +2020-03-22,Oneida,New York,36065,5,0 +2020-03-23,Oneida,New York,36065,7,0 +2020-03-24,Oneida,New York,36065,8,0 +2020-03-25,Oneida,New York,36065,9,0 +2020-03-26,Oneida,New York,36065,13,0 +2020-03-27,Oneida,New York,36065,13,0 +2020-03-28,Oneida,New York,36065,23,0 +2020-03-29,Oneida,New York,36065,26,0 +2020-03-30,Oneida,New York,36065,34,0 +2020-03-31,Oneida,New York,36065,40,0 +2020-04-01,Oneida,New York,36065,50,1 +2020-04-02,Oneida,New York,36065,68,1 +2020-04-03,Oneida,New York,36065,68,1 +2020-04-04,Oneida,New York,36065,80,2 +2020-04-05,Oneida,New York,36065,87,2 +2020-04-06,Oneida,New York,36065,100,2 +2020-04-07,Oneida,New York,36065,118,2 +2020-04-08,Oneida,New York,36065,125,2 +2020-04-09,Oneida,New York,36065,158,2 +2020-04-10,Oneida,New York,36065,172,2 +2020-04-11,Oneida,New York,36065,181,2 +2020-04-12,Oneida,New York,36065,195,2 +2020-04-13,Oneida,New York,36065,206,3 +2020-04-14,Oneida,New York,36065,229,3 +2020-04-15,Oneida,New York,36065,246,4 +2020-04-16,Oneida,New York,36065,249,4 +2020-04-17,Oneida,New York,36065,261,4 +2020-04-18,Oneida,New York,36065,268,4 +2020-04-19,Oneida,New York,36065,275,4 +2020-04-20,Oneida,New York,36065,279,6 +2020-04-21,Oneida,New York,36065,284,6 +2020-04-22,Oneida,New York,36065,301,8 +2020-04-23,Oneida,New York,36065,317,8 +2020-04-24,Oneida,New York,36065,323,8 +2020-04-25,Oneida,New York,36065,364,8 +2020-04-26,Oneida,New York,36065,384,11 +2020-04-27,Oneida,New York,36065,397,11 +2020-04-28,Oneida,New York,36065,411,12 +2020-04-29,Oneida,New York,36065,422,14 +2020-04-30,Oneida,New York,36065,439,14 +2020-05-01,Oneida,New York,36065,451,14 +2020-05-02,Oneida,New York,36065,474,14 +2020-05-03,Oneida,New York,36065,489,16 +2020-05-04,Oneida,New York,36065,550,17 +2020-05-05,Oneida,New York,36065,574,17 +2020-05-06,Oneida,New York,36065,579,22 +2020-05-07,Oneida,New York,36065,609,22 +2020-05-08,Oneida,New York,36065,620,23 +2020-05-09,Oneida,New York,36065,638,24 +2020-05-10,Oneida,New York,36065,660,25 +2020-05-11,Oneida,New York,36065,669,25 +2020-05-12,Oneida,New York,36065,676,26 +2020-05-13,Oneida,New York,36065,686,26 +2020-05-14,Oneida,New York,36065,698,29 +2020-05-15,Oneida,New York,36065,713,30 +2020-05-16,Oneida,New York,36065,751,33 +2020-05-17,Oneida,New York,36065,760,35 +2020-05-18,Oneida,New York,36065,772,38 +2020-05-19,Oneida,New York,36065,785,38 +2020-05-20,Oneida,New York,36065,802,39 +2020-05-21,Oneida,New York,36065,817,39 +2020-05-22,Oneida,New York,36065,828,41 +2020-05-23,Oneida,New York,36065,864,41 +2020-05-24,Oneida,New York,36065,878,42 +2020-05-25,Oneida,New York,36065,905,42 +2020-05-26,Oneida,New York,36065,917,45 +2020-05-27,Oneida,New York,36065,929,47 +2020-05-28,Oneida,New York,36065,959,52 +2020-05-29,Oneida,New York,36065,988,54 +2020-05-30,Oneida,New York,36065,1006,54 +2020-05-31,Oneida,New York,36065,1027,56 +2020-06-01,Oneida,New York,36065,1036,56 +2020-06-02,Oneida,New York,36065,1049,57 +2020-06-03,Oneida,New York,36065,1058,58 +2020-06-04,Oneida,New York,36065,1069,63 +2020-06-05,Oneida,New York,36065,1077,64 +2020-06-06,Oneida,New York,36065,1127,64 +2020-06-07,Oneida,New York,36065,1143,66 +2020-06-08,Oneida,New York,36065,1170,67 +2020-06-09,Oneida,New York,36065,1185,69 +2020-06-10,Oneida,New York,36065,1203,70 +2020-06-11,Oneida,New York,36065,1216,72 +2020-06-12,Oneida,New York,36065,1237,75 +2020-06-13,Oneida,New York,36065,1253,78 +2020-06-14,Oneida,New York,36065,1273,80 +2020-06-15,Oneida,New York,36065,1280,80 +2020-06-16,Oneida,New York,36065,1301,81 +2020-06-17,Oneida,New York,36065,1307,83 +2020-06-18,Oneida,New York,36065,1332,83 +2020-06-19,Oneida,New York,36065,1357,86 +2020-06-20,Oneida,New York,36065,1378,87 +2020-06-21,Oneida,New York,36065,1393,87 +2020-06-22,Oneida,New York,36065,1416,87 +2020-06-23,Oneida,New York,36065,1421,89 +2020-06-24,Oneida,New York,36065,1445,90 +2020-06-25,Oneida,New York,36065,1479,90 +2020-06-26,Oneida,New York,36065,1520,92 +2020-06-27,Oneida,New York,36065,1547,92 +2020-06-28,Oneida,New York,36065,1586,92 +2020-06-29,Oneida,New York,36065,1616,92 +2020-06-30,Oneida,New York,36065,1627,92 +2020-07-01,Oneida,New York,36065,1642,93 +2020-07-02,Oneida,New York,36065,1672,93 +2020-07-03,Oneida,New York,36065,1708,96 +2020-07-04,Oneida,New York,36065,1725,97 +2020-07-05,Oneida,New York,36065,1742,98 +2020-07-06,Oneida,New York,36065,1749,98 +2020-07-07,Oneida,New York,36065,1760,98 +2020-07-08,Oneida,New York,36065,1776,99 +2020-07-09,Oneida,New York,36065,1791,100 +2020-03-16,Onondaga,New York,36067,1,0 +2020-03-17,Onondaga,New York,36067,2,0 +2020-03-18,Onondaga,New York,36067,2,0 +2020-03-19,Onondaga,New York,36067,2,0 +2020-03-20,Onondaga,New York,36067,8,0 +2020-03-21,Onondaga,New York,36067,17,0 +2020-03-22,Onondaga,New York,36067,29,0 +2020-03-23,Onondaga,New York,36067,52,0 +2020-03-24,Onondaga,New York,36067,60,0 +2020-03-25,Onondaga,New York,36067,65,0 +2020-03-26,Onondaga,New York,36067,83,0 +2020-03-27,Onondaga,New York,36067,115,0 +2020-03-28,Onondaga,New York,36067,129,0 +2020-03-29,Onondaga,New York,36067,152,0 +2020-03-30,Onondaga,New York,36067,180,0 +2020-03-31,Onondaga,New York,36067,194,0 +2020-04-01,Onondaga,New York,36067,249,1 +2020-04-02,Onondaga,New York,36067,301,2 +2020-04-03,Onondaga,New York,36067,301,2 +2020-04-04,Onondaga,New York,36067,349,4 +2020-04-05,Onondaga,New York,36067,349,4 +2020-04-06,Onondaga,New York,36067,377,6 +2020-04-07,Onondaga,New York,36067,377,7 +2020-04-08,Onondaga,New York,36067,377,9 +2020-04-09,Onondaga,New York,36067,358,10 +2020-04-10,Onondaga,New York,36067,369,11 +2020-04-11,Onondaga,New York,36067,380,12 +2020-04-12,Onondaga,New York,36067,397,13 +2020-04-13,Onondaga,New York,36067,416,13 +2020-04-14,Onondaga,New York,36067,431,15 +2020-04-15,Onondaga,New York,36067,449,15 +2020-04-16,Onondaga,New York,36067,462,15 +2020-04-17,Onondaga,New York,36067,483,15 +2020-04-18,Onondaga,New York,36067,492,15 +2020-04-19,Onondaga,New York,36067,498,22 +2020-04-20,Onondaga,New York,36067,509,24 +2020-04-21,Onondaga,New York,36067,514,26 +2020-04-22,Onondaga,New York,36067,526,28 +2020-04-23,Onondaga,New York,36067,600,28 +2020-04-24,Onondaga,New York,36067,639,29 +2020-04-25,Onondaga,New York,36067,664,30 +2020-04-26,Onondaga,New York,36067,692,30 +2020-04-27,Onondaga,New York,36067,726,30 +2020-04-28,Onondaga,New York,36067,742,31 +2020-04-29,Onondaga,New York,36067,782,33 +2020-04-30,Onondaga,New York,36067,832,35 +2020-05-01,Onondaga,New York,36067,860,37 +2020-05-02,Onondaga,New York,36067,903,38 +2020-05-03,Onondaga,New York,36067,952,42 +2020-05-04,Onondaga,New York,36067,971,43 +2020-05-05,Onondaga,New York,36067,1002,44 +2020-05-06,Onondaga,New York,36067,1056,53 +2020-05-07,Onondaga,New York,36067,1115,54 +2020-05-08,Onondaga,New York,36067,1169,57 +2020-05-09,Onondaga,New York,36067,1218,61 +2020-05-10,Onondaga,New York,36067,1265,64 +2020-05-11,Onondaga,New York,36067,1287,65 +2020-05-12,Onondaga,New York,36067,1308,69 +2020-05-13,Onondaga,New York,36067,1395,73 +2020-05-14,Onondaga,New York,36067,1423,77 +2020-05-15,Onondaga,New York,36067,1440,82 +2020-05-16,Onondaga,New York,36067,1469,91 +2020-05-17,Onondaga,New York,36067,1501,95 +2020-05-18,Onondaga,New York,36067,1520,97 +2020-05-19,Onondaga,New York,36067,1665,99 +2020-05-20,Onondaga,New York,36067,1718,99 +2020-05-21,Onondaga,New York,36067,1771,102 +2020-05-22,Onondaga,New York,36067,1828,105 +2020-05-23,Onondaga,New York,36067,1904,106 +2020-05-24,Onondaga,New York,36067,1953,112 +2020-05-25,Onondaga,New York,36067,1981,113 +2020-05-26,Onondaga,New York,36067,2012,118 +2020-05-27,Onondaga,New York,36067,2033,121 +2020-05-28,Onondaga,New York,36067,2054,123 +2020-05-29,Onondaga,New York,36067,2092,126 +2020-05-30,Onondaga,New York,36067,2133,128 +2020-05-31,Onondaga,New York,36067,2170,130 +2020-06-01,Onondaga,New York,36067,2197,132 +2020-06-02,Onondaga,New York,36067,2228,138 +2020-06-03,Onondaga,New York,36067,2256,141 +2020-06-04,Onondaga,New York,36067,2295,142 +2020-06-05,Onondaga,New York,36067,2329,143 +2020-06-06,Onondaga,New York,36067,2375,147 +2020-06-07,Onondaga,New York,36067,2392,148 +2020-06-08,Onondaga,New York,36067,2408,149 +2020-06-09,Onondaga,New York,36067,2427,151 +2020-06-10,Onondaga,New York,36067,2433,153 +2020-06-11,Onondaga,New York,36067,2454,156 +2020-06-12,Onondaga,New York,36067,2474,158 +2020-06-13,Onondaga,New York,36067,2498,159 +2020-06-14,Onondaga,New York,36067,2519,161 +2020-06-15,Onondaga,New York,36067,2531,165 +2020-06-16,Onondaga,New York,36067,2545,166 +2020-06-17,Onondaga,New York,36067,2558,166 +2020-06-18,Onondaga,New York,36067,2615,168 +2020-06-19,Onondaga,New York,36067,2634,168 +2020-06-20,Onondaga,New York,36067,2644,170 +2020-06-21,Onondaga,New York,36067,2666,170 +2020-06-22,Onondaga,New York,36067,2675,170 +2020-06-23,Onondaga,New York,36067,2702,171 +2020-06-24,Onondaga,New York,36067,2734,174 +2020-06-25,Onondaga,New York,36067,2751,174 +2020-06-26,Onondaga,New York,36067,2782,175 +2020-06-27,Onondaga,New York,36067,2791,175 +2020-06-28,Onondaga,New York,36067,2816,175 +2020-06-29,Onondaga,New York,36067,2822,176 +2020-06-30,Onondaga,New York,36067,2842,178 +2020-07-01,Onondaga,New York,36067,2863,178 +2020-07-02,Onondaga,New York,36067,2897,178 +2020-07-03,Onondaga,New York,36067,2909,178 +2020-07-04,Onondaga,New York,36067,2928,180 +2020-07-05,Onondaga,New York,36067,2949,180 +2020-07-06,Onondaga,New York,36067,2963,180 +2020-07-07,Onondaga,New York,36067,2997,180 +2020-07-08,Onondaga,New York,36067,3029,180 +2020-07-09,Onondaga,New York,36067,3050,180 +2020-03-16,Ontario,New York,36069,1,0 +2020-03-17,Ontario,New York,36069,1,0 +2020-03-18,Ontario,New York,36069,1,0 +2020-03-19,Ontario,New York,36069,1,0 +2020-03-20,Ontario,New York,36069,3,0 +2020-03-21,Ontario,New York,36069,4,0 +2020-03-22,Ontario,New York,36069,6,0 +2020-03-23,Ontario,New York,36069,6,0 +2020-03-24,Ontario,New York,36069,7,0 +2020-03-25,Ontario,New York,36069,9,0 +2020-03-26,Ontario,New York,36069,11,0 +2020-03-27,Ontario,New York,36069,14,0 +2020-03-28,Ontario,New York,36069,16,0 +2020-03-29,Ontario,New York,36069,18,0 +2020-03-30,Ontario,New York,36069,20,0 +2020-03-31,Ontario,New York,36069,22,0 +2020-04-01,Ontario,New York,36069,24,0 +2020-04-02,Ontario,New York,36069,31,0 +2020-04-03,Ontario,New York,36069,31,0 +2020-04-04,Ontario,New York,36069,35,0 +2020-04-05,Ontario,New York,36069,35,0 +2020-04-06,Ontario,New York,36069,39,0 +2020-04-07,Ontario,New York,36069,39,0 +2020-04-08,Ontario,New York,36069,39,0 +2020-04-09,Ontario,New York,36069,43,0 +2020-04-10,Ontario,New York,36069,51,0 +2020-04-11,Ontario,New York,36069,56,0 +2020-04-12,Ontario,New York,36069,57,1 +2020-04-13,Ontario,New York,36069,57,1 +2020-04-14,Ontario,New York,36069,61,2 +2020-04-15,Ontario,New York,36069,62,2 +2020-04-16,Ontario,New York,36069,65,2 +2020-04-17,Ontario,New York,36069,67,2 +2020-04-18,Ontario,New York,36069,69,2 +2020-04-19,Ontario,New York,36069,70,2 +2020-04-20,Ontario,New York,36069,71,2 +2020-04-21,Ontario,New York,36069,72,2 +2020-04-22,Ontario,New York,36069,73,3 +2020-04-23,Ontario,New York,36069,73,3 +2020-04-24,Ontario,New York,36069,73,3 +2020-04-25,Ontario,New York,36069,82,3 +2020-04-26,Ontario,New York,36069,84,3 +2020-04-27,Ontario,New York,36069,86,3 +2020-04-28,Ontario,New York,36069,90,3 +2020-04-29,Ontario,New York,36069,90,3 +2020-04-30,Ontario,New York,36069,90,4 +2020-05-01,Ontario,New York,36069,91,4 +2020-05-02,Ontario,New York,36069,92,4 +2020-05-03,Ontario,New York,36069,95,4 +2020-05-04,Ontario,New York,36069,96,4 +2020-05-05,Ontario,New York,36069,97,4 +2020-05-06,Ontario,New York,36069,99,7 +2020-05-07,Ontario,New York,36069,101,7 +2020-05-08,Ontario,New York,36069,104,7 +2020-05-09,Ontario,New York,36069,104,7 +2020-05-10,Ontario,New York,36069,106,7 +2020-05-11,Ontario,New York,36069,107,7 +2020-05-12,Ontario,New York,36069,107,7 +2020-05-13,Ontario,New York,36069,109,7 +2020-05-14,Ontario,New York,36069,129,7 +2020-05-15,Ontario,New York,36069,133,7 +2020-05-16,Ontario,New York,36069,139,7 +2020-05-17,Ontario,New York,36069,146,7 +2020-05-18,Ontario,New York,36069,148,7 +2020-05-19,Ontario,New York,36069,152,7 +2020-05-20,Ontario,New York,36069,170,8 +2020-05-21,Ontario,New York,36069,176,8 +2020-05-22,Ontario,New York,36069,180,8 +2020-05-23,Ontario,New York,36069,182,9 +2020-05-24,Ontario,New York,36069,184,11 +2020-05-25,Ontario,New York,36069,185,12 +2020-05-26,Ontario,New York,36069,195,14 +2020-05-27,Ontario,New York,36069,198,16 +2020-05-28,Ontario,New York,36069,201,16 +2020-05-29,Ontario,New York,36069,205,17 +2020-05-30,Ontario,New York,36069,206,17 +2020-05-31,Ontario,New York,36069,207,17 +2020-06-01,Ontario,New York,36069,208,19 +2020-06-02,Ontario,New York,36069,209,19 +2020-06-03,Ontario,New York,36069,215,20 +2020-06-04,Ontario,New York,36069,218,20 +2020-06-05,Ontario,New York,36069,219,20 +2020-06-06,Ontario,New York,36069,220,20 +2020-06-07,Ontario,New York,36069,221,22 +2020-06-08,Ontario,New York,36069,221,22 +2020-06-09,Ontario,New York,36069,222,22 +2020-06-10,Ontario,New York,36069,222,22 +2020-06-11,Ontario,New York,36069,229,22 +2020-06-12,Ontario,New York,36069,230,22 +2020-06-13,Ontario,New York,36069,230,22 +2020-06-14,Ontario,New York,36069,233,22 +2020-06-15,Ontario,New York,36069,233,22 +2020-06-16,Ontario,New York,36069,234,22 +2020-06-17,Ontario,New York,36069,234,22 +2020-06-18,Ontario,New York,36069,235,22 +2020-06-19,Ontario,New York,36069,239,22 +2020-06-20,Ontario,New York,36069,239,23 +2020-06-21,Ontario,New York,36069,240,24 +2020-06-22,Ontario,New York,36069,242,25 +2020-06-23,Ontario,New York,36069,242,25 +2020-06-24,Ontario,New York,36069,246,25 +2020-06-25,Ontario,New York,36069,248,25 +2020-06-26,Ontario,New York,36069,252,25 +2020-06-27,Ontario,New York,36069,254,25 +2020-06-28,Ontario,New York,36069,256,25 +2020-06-29,Ontario,New York,36069,257,25 +2020-06-30,Ontario,New York,36069,259,25 +2020-07-01,Ontario,New York,36069,265,25 +2020-07-02,Ontario,New York,36069,268,25 +2020-07-03,Ontario,New York,36069,275,25 +2020-07-04,Ontario,New York,36069,278,25 +2020-07-05,Ontario,New York,36069,280,25 +2020-07-06,Ontario,New York,36069,282,25 +2020-07-07,Ontario,New York,36069,283,25 +2020-07-08,Ontario,New York,36069,286,25 +2020-07-09,Ontario,New York,36069,290,25 +2020-03-12,Orange,New York,36071,1,0 +2020-03-13,Orange,New York,36071,3,0 +2020-03-14,Orange,New York,36071,6,0 +2020-03-15,Orange,New York,36071,6,0 +2020-03-16,Orange,New York,36071,11,0 +2020-03-17,Orange,New York,36071,15,0 +2020-03-18,Orange,New York,36071,32,0 +2020-03-19,Orange,New York,36071,51,0 +2020-03-20,Orange,New York,36071,84,0 +2020-03-21,Orange,New York,36071,163,0 +2020-03-22,Orange,New York,36071,247,0 +2020-03-23,Orange,New York,36071,389,0 +2020-03-24,Orange,New York,36071,498,0 +2020-03-25,Orange,New York,36071,638,0 +2020-03-26,Orange,New York,36071,751,2 +2020-03-27,Orange,New York,36071,910,3 +2020-03-28,Orange,New York,36071,1101,3 +2020-03-29,Orange,New York,36071,1247,3 +2020-03-30,Orange,New York,36071,1435,3 +2020-03-31,Orange,New York,36071,1560,3 +2020-04-01,Orange,New York,36071,1756,25 +2020-04-02,Orange,New York,36071,2048,30 +2020-04-03,Orange,New York,36071,2397,30 +2020-04-04,Orange,New York,36071,2741,51 +2020-04-05,Orange,New York,36071,3102,51 +2020-04-06,Orange,New York,36071,3397,47 +2020-04-07,Orange,New York,36071,3599,76 +2020-04-08,Orange,New York,36071,3865,68 +2020-04-09,Orange,New York,36071,4090,79 +2020-04-10,Orange,New York,36071,4532,91 +2020-04-11,Orange,New York,36071,4847,99 +2020-04-12,Orange,New York,36071,5027,112 +2020-04-13,Orange,New York,36071,5182,122 +2020-04-14,Orange,New York,36071,5578,129 +2020-04-15,Orange,New York,36071,5716,135 +2020-04-16,Orange,New York,36071,5888,144 +2020-04-17,Orange,New York,36071,6084,144 +2020-04-18,Orange,New York,36071,6281,144 +2020-04-19,Orange,New York,36071,6394,165 +2020-04-20,Orange,New York,36071,6497,169 +2020-04-21,Orange,New York,36071,6576,181 +2020-04-22,Orange,New York,36071,6705,183 +2020-04-23,Orange,New York,36071,6816,190 +2020-04-24,Orange,New York,36071,7170,194 +2020-04-25,Orange,New York,36071,7988,200 +2020-04-26,Orange,New York,36071,8121,203 +2020-04-27,Orange,New York,36071,8253,213 +2020-04-28,Orange,New York,36071,8389,223 +2020-04-29,Orange,New York,36071,8503,232 +2020-04-30,Orange,New York,36071,8665,237 +2020-05-01,Orange,New York,36071,8766,243 +2020-05-02,Orange,New York,36071,8925,247 +2020-05-03,Orange,New York,36071,8982,250 +2020-05-04,Orange,New York,36071,9030,254 +2020-05-05,Orange,New York,36071,9159,256 +2020-05-06,Orange,New York,36071,9215,298 +2020-05-07,Orange,New York,36071,9343,302 +2020-05-08,Orange,New York,36071,9417,307 +2020-05-09,Orange,New York,36071,9501,311 +2020-05-10,Orange,New York,36071,9558,315 +2020-05-11,Orange,New York,36071,9599,318 +2020-05-12,Orange,New York,36071,9647,324 +2020-05-13,Orange,New York,36071,9708,331 +2020-05-14,Orange,New York,36071,9786,333 +2020-05-15,Orange,New York,36071,9840,335 +2020-05-16,Orange,New York,36071,9894,342 +2020-05-17,Orange,New York,36071,9958,347 +2020-05-18,Orange,New York,36071,9980,350 +2020-05-19,Orange,New York,36071,10003,352 +2020-05-20,Orange,New York,36071,10058,358 +2020-05-21,Orange,New York,36071,10107,359 +2020-05-22,Orange,New York,36071,10157,359 +2020-05-23,Orange,New York,36071,10212,359 +2020-05-24,Orange,New York,36071,10240,361 +2020-05-25,Orange,New York,36071,10259,364 +2020-05-26,Orange,New York,36071,10292,369 +2020-05-27,Orange,New York,36071,10307,370 +2020-05-28,Orange,New York,36071,10340,374 +2020-05-29,Orange,New York,36071,10376,374 +2020-05-30,Orange,New York,36071,10404,374 +2020-05-31,Orange,New York,36071,10421,375 +2020-06-01,Orange,New York,36071,10437,376 +2020-06-02,Orange,New York,36071,10464,378 +2020-06-03,Orange,New York,36071,10475,379 +2020-06-04,Orange,New York,36071,10486,381 +2020-06-05,Orange,New York,36071,10499,383 +2020-06-06,Orange,New York,36071,10523,384 +2020-06-07,Orange,New York,36071,10529,386 +2020-06-08,Orange,New York,36071,10538,386 +2020-06-09,Orange,New York,36071,10548,387 +2020-06-10,Orange,New York,36071,10556,388 +2020-06-11,Orange,New York,36071,10565,389 +2020-06-12,Orange,New York,36071,10573,391 +2020-06-13,Orange,New York,36071,10578,391 +2020-06-14,Orange,New York,36071,10586,391 +2020-06-15,Orange,New York,36071,10588,391 +2020-06-16,Orange,New York,36071,10595,392 +2020-06-17,Orange,New York,36071,10614,392 +2020-06-18,Orange,New York,36071,10619,394 +2020-06-19,Orange,New York,36071,10635,395 +2020-06-20,Orange,New York,36071,10653,395 +2020-06-21,Orange,New York,36071,10663,396 +2020-06-22,Orange,New York,36071,10669,396 +2020-06-23,Orange,New York,36071,10681,396 +2020-06-24,Orange,New York,36071,10684,396 +2020-06-25,Orange,New York,36071,10694,397 +2020-06-26,Orange,New York,36071,10713,398 +2020-06-27,Orange,New York,36071,10725,399 +2020-06-28,Orange,New York,36071,10728,399 +2020-06-29,Orange,New York,36071,10731,399 +2020-06-30,Orange,New York,36071,10738,399 +2020-07-01,Orange,New York,36071,10745,401 +2020-07-02,Orange,New York,36071,10759,401 +2020-07-03,Orange,New York,36071,10774,401 +2020-07-04,Orange,New York,36071,10781,401 +2020-07-05,Orange,New York,36071,10790,401 +2020-07-06,Orange,New York,36071,10796,402 +2020-07-07,Orange,New York,36071,10813,402 +2020-07-08,Orange,New York,36071,10821,402 +2020-07-09,Orange,New York,36071,10825,403 +2020-03-24,Orleans,New York,36073,2,0 +2020-03-25,Orleans,New York,36073,2,0 +2020-03-26,Orleans,New York,36073,2,0 +2020-03-27,Orleans,New York,36073,3,0 +2020-03-28,Orleans,New York,36073,3,0 +2020-03-29,Orleans,New York,36073,3,0 +2020-03-30,Orleans,New York,36073,4,0 +2020-03-31,Orleans,New York,36073,6,0 +2020-04-01,Orleans,New York,36073,6,0 +2020-04-02,Orleans,New York,36073,6,0 +2020-04-03,Orleans,New York,36073,6,0 +2020-04-04,Orleans,New York,36073,10,0 +2020-04-05,Orleans,New York,36073,11,0 +2020-04-06,Orleans,New York,36073,13,0 +2020-04-07,Orleans,New York,36073,15,0 +2020-04-08,Orleans,New York,36073,16,0 +2020-04-09,Orleans,New York,36073,22,0 +2020-04-10,Orleans,New York,36073,24,0 +2020-04-11,Orleans,New York,36073,24,0 +2020-04-12,Orleans,New York,36073,25,0 +2020-04-13,Orleans,New York,36073,26,0 +2020-04-14,Orleans,New York,36073,31,0 +2020-04-15,Orleans,New York,36073,33,0 +2020-04-16,Orleans,New York,36073,34,0 +2020-04-17,Orleans,New York,36073,34,0 +2020-04-18,Orleans,New York,36073,41,0 +2020-04-19,Orleans,New York,36073,46,1 +2020-04-20,Orleans,New York,36073,46,1 +2020-04-21,Orleans,New York,36073,53,1 +2020-04-22,Orleans,New York,36073,56,1 +2020-04-23,Orleans,New York,36073,59,2 +2020-04-24,Orleans,New York,36073,60,2 +2020-04-25,Orleans,New York,36073,75,3 +2020-04-26,Orleans,New York,36073,80,4 +2020-04-27,Orleans,New York,36073,80,4 +2020-04-28,Orleans,New York,36073,80,5 +2020-04-29,Orleans,New York,36073,85,5 +2020-04-30,Orleans,New York,36073,89,5 +2020-05-01,Orleans,New York,36073,92,5 +2020-05-02,Orleans,New York,36073,93,6 +2020-05-03,Orleans,New York,36073,97,6 +2020-05-04,Orleans,New York,36073,97,6 +2020-05-05,Orleans,New York,36073,99,6 +2020-05-06,Orleans,New York,36073,103,12 +2020-05-07,Orleans,New York,36073,108,13 +2020-05-08,Orleans,New York,36073,121,14 +2020-05-09,Orleans,New York,36073,122,14 +2020-05-10,Orleans,New York,36073,126,15 +2020-05-11,Orleans,New York,36073,130,15 +2020-05-12,Orleans,New York,36073,133,15 +2020-05-13,Orleans,New York,36073,142,16 +2020-05-14,Orleans,New York,36073,145,17 +2020-05-15,Orleans,New York,36073,147,17 +2020-05-16,Orleans,New York,36073,163,17 +2020-05-17,Orleans,New York,36073,167,18 +2020-05-18,Orleans,New York,36073,167,18 +2020-05-19,Orleans,New York,36073,168,18 +2020-05-20,Orleans,New York,36073,171,18 +2020-05-21,Orleans,New York,36073,174,19 +2020-05-22,Orleans,New York,36073,175,19 +2020-05-23,Orleans,New York,36073,196,20 +2020-05-24,Orleans,New York,36073,202,23 +2020-05-25,Orleans,New York,36073,205,23 +2020-05-26,Orleans,New York,36073,208,24 +2020-05-27,Orleans,New York,36073,210,24 +2020-05-28,Orleans,New York,36073,212,24 +2020-05-29,Orleans,New York,36073,216,24 +2020-05-30,Orleans,New York,36073,228,26 +2020-05-31,Orleans,New York,36073,229,26 +2020-06-01,Orleans,New York,36073,236,26 +2020-06-02,Orleans,New York,36073,241,26 +2020-06-03,Orleans,New York,36073,246,27 +2020-06-04,Orleans,New York,36073,247,29 +2020-06-05,Orleans,New York,36073,247,29 +2020-06-06,Orleans,New York,36073,254,29 +2020-06-07,Orleans,New York,36073,255,29 +2020-06-08,Orleans,New York,36073,256,30 +2020-06-09,Orleans,New York,36073,257,33 +2020-06-10,Orleans,New York,36073,259,35 +2020-06-11,Orleans,New York,36073,260,35 +2020-06-12,Orleans,New York,36073,260,36 +2020-06-13,Orleans,New York,36073,261,36 +2020-06-14,Orleans,New York,36073,267,36 +2020-06-15,Orleans,New York,36073,268,36 +2020-06-16,Orleans,New York,36073,268,36 +2020-06-17,Orleans,New York,36073,270,36 +2020-06-18,Orleans,New York,36073,271,37 +2020-06-19,Orleans,New York,36073,274,37 +2020-06-20,Orleans,New York,36073,275,37 +2020-06-21,Orleans,New York,36073,276,37 +2020-06-22,Orleans,New York,36073,276,37 +2020-06-23,Orleans,New York,36073,277,38 +2020-06-24,Orleans,New York,36073,277,38 +2020-06-25,Orleans,New York,36073,279,38 +2020-06-26,Orleans,New York,36073,279,39 +2020-06-27,Orleans,New York,36073,280,40 +2020-06-28,Orleans,New York,36073,281,40 +2020-06-29,Orleans,New York,36073,281,41 +2020-06-30,Orleans,New York,36073,281,41 +2020-07-01,Orleans,New York,36073,281,41 +2020-07-02,Orleans,New York,36073,282,41 +2020-07-03,Orleans,New York,36073,282,41 +2020-07-04,Orleans,New York,36073,282,41 +2020-07-05,Orleans,New York,36073,282,41 +2020-07-06,Orleans,New York,36073,284,41 +2020-07-07,Orleans,New York,36073,285,41 +2020-07-08,Orleans,New York,36073,286,41 +2020-07-09,Orleans,New York,36073,286,41 +2020-03-23,Oswego,New York,36075,1,0 +2020-03-24,Oswego,New York,36075,2,0 +2020-03-25,Oswego,New York,36075,2,0 +2020-03-26,Oswego,New York,36075,4,0 +2020-03-27,Oswego,New York,36075,4,0 +2020-03-28,Oswego,New York,36075,7,0 +2020-03-29,Oswego,New York,36075,8,0 +2020-03-30,Oswego,New York,36075,14,0 +2020-03-31,Oswego,New York,36075,15,0 +2020-04-01,Oswego,New York,36075,17,2 +2020-04-02,Oswego,New York,36075,28,2 +2020-04-03,Oswego,New York,36075,28,2 +2020-04-04,Oswego,New York,36075,30,2 +2020-04-05,Oswego,New York,36075,30,2 +2020-04-06,Oswego,New York,36075,33,2 +2020-04-07,Oswego,New York,36075,34,2 +2020-04-08,Oswego,New York,36075,34,0 +2020-04-09,Oswego,New York,36075,36,0 +2020-04-10,Oswego,New York,36075,36,0 +2020-04-11,Oswego,New York,36075,37,0 +2020-04-12,Oswego,New York,36075,38,0 +2020-04-13,Oswego,New York,36075,38,0 +2020-04-14,Oswego,New York,36075,41,0 +2020-04-15,Oswego,New York,36075,42,0 +2020-04-16,Oswego,New York,36075,44,0 +2020-04-17,Oswego,New York,36075,45,0 +2020-04-18,Oswego,New York,36075,45,0 +2020-04-19,Oswego,New York,36075,47,0 +2020-04-20,Oswego,New York,36075,48,0 +2020-04-21,Oswego,New York,36075,49,0 +2020-04-22,Oswego,New York,36075,49,0 +2020-04-23,Oswego,New York,36075,49,0 +2020-04-24,Oswego,New York,36075,51,0 +2020-04-25,Oswego,New York,36075,57,0 +2020-04-26,Oswego,New York,36075,61,0 +2020-04-27,Oswego,New York,36075,61,0 +2020-04-28,Oswego,New York,36075,63,0 +2020-04-29,Oswego,New York,36075,63,0 +2020-04-30,Oswego,New York,36075,63,0 +2020-05-01,Oswego,New York,36075,64,0 +2020-05-02,Oswego,New York,36075,66,0 +2020-05-03,Oswego,New York,36075,66,0 +2020-05-04,Oswego,New York,36075,67,0 +2020-05-05,Oswego,New York,36075,68,0 +2020-05-06,Oswego,New York,36075,70,0 +2020-05-07,Oswego,New York,36075,70,0 +2020-05-08,Oswego,New York,36075,72,0 +2020-05-09,Oswego,New York,36075,75,0 +2020-05-10,Oswego,New York,36075,75,0 +2020-05-11,Oswego,New York,36075,75,0 +2020-05-12,Oswego,New York,36075,76,0 +2020-05-13,Oswego,New York,36075,76,0 +2020-05-14,Oswego,New York,36075,78,0 +2020-05-15,Oswego,New York,36075,80,0 +2020-05-16,Oswego,New York,36075,83,0 +2020-05-17,Oswego,New York,36075,84,0 +2020-05-18,Oswego,New York,36075,84,0 +2020-05-19,Oswego,New York,36075,89,0 +2020-05-20,Oswego,New York,36075,90,0 +2020-05-21,Oswego,New York,36075,92,0 +2020-05-22,Oswego,New York,36075,96,0 +2020-05-23,Oswego,New York,36075,99,0 +2020-05-24,Oswego,New York,36075,100,0 +2020-05-25,Oswego,New York,36075,104,0 +2020-05-26,Oswego,New York,36075,104,0 +2020-05-27,Oswego,New York,36075,105,0 +2020-05-28,Oswego,New York,36075,107,0 +2020-05-29,Oswego,New York,36075,108,0 +2020-05-30,Oswego,New York,36075,108,0 +2020-05-31,Oswego,New York,36075,109,0 +2020-06-01,Oswego,New York,36075,110,0 +2020-06-02,Oswego,New York,36075,110,0 +2020-06-03,Oswego,New York,36075,112,0 +2020-06-04,Oswego,New York,36075,112,0 +2020-06-05,Oswego,New York,36075,112,0 +2020-06-06,Oswego,New York,36075,114,0 +2020-06-07,Oswego,New York,36075,115,0 +2020-06-08,Oswego,New York,36075,115,0 +2020-06-09,Oswego,New York,36075,115,0 +2020-06-10,Oswego,New York,36075,115,0 +2020-06-11,Oswego,New York,36075,119,0 +2020-06-12,Oswego,New York,36075,120,0 +2020-06-13,Oswego,New York,36075,122,0 +2020-06-14,Oswego,New York,36075,122,0 +2020-06-15,Oswego,New York,36075,126,0 +2020-06-16,Oswego,New York,36075,139,0 +2020-06-17,Oswego,New York,36075,139,0 +2020-06-18,Oswego,New York,36075,144,0 +2020-06-19,Oswego,New York,36075,167,0 +2020-06-20,Oswego,New York,36075,169,0 +2020-06-21,Oswego,New York,36075,173,0 +2020-06-22,Oswego,New York,36075,173,0 +2020-06-23,Oswego,New York,36075,179,0 +2020-06-24,Oswego,New York,36075,188,0 +2020-06-25,Oswego,New York,36075,191,0 +2020-06-26,Oswego,New York,36075,192,0 +2020-06-27,Oswego,New York,36075,194,0 +2020-06-28,Oswego,New York,36075,195,0 +2020-06-29,Oswego,New York,36075,196,0 +2020-06-30,Oswego,New York,36075,197,0 +2020-07-01,Oswego,New York,36075,201,0 +2020-07-02,Oswego,New York,36075,206,0 +2020-07-03,Oswego,New York,36075,206,0 +2020-07-04,Oswego,New York,36075,206,0 +2020-07-05,Oswego,New York,36075,206,0 +2020-07-06,Oswego,New York,36075,206,0 +2020-07-07,Oswego,New York,36075,207,0 +2020-07-08,Oswego,New York,36075,210,0 +2020-07-09,Oswego,New York,36075,211,0 +2020-03-23,Otsego,New York,36077,1,0 +2020-03-24,Otsego,New York,36077,1,0 +2020-03-25,Otsego,New York,36077,2,0 +2020-03-26,Otsego,New York,36077,3,0 +2020-03-27,Otsego,New York,36077,5,0 +2020-03-28,Otsego,New York,36077,7,0 +2020-03-29,Otsego,New York,36077,10,0 +2020-03-30,Otsego,New York,36077,17,0 +2020-03-31,Otsego,New York,36077,18,0 +2020-04-01,Otsego,New York,36077,19,1 +2020-04-02,Otsego,New York,36077,21,1 +2020-04-03,Otsego,New York,36077,21,1 +2020-04-04,Otsego,New York,36077,26,2 +2020-04-05,Otsego,New York,36077,29,2 +2020-04-06,Otsego,New York,36077,34,2 +2020-04-07,Otsego,New York,36077,34,2 +2020-04-08,Otsego,New York,36077,38,2 +2020-04-09,Otsego,New York,36077,39,2 +2020-04-10,Otsego,New York,36077,41,2 +2020-04-11,Otsego,New York,36077,43,2 +2020-04-12,Otsego,New York,36077,43,2 +2020-04-13,Otsego,New York,36077,43,3 +2020-04-14,Otsego,New York,36077,44,3 +2020-04-15,Otsego,New York,36077,44,4 +2020-04-16,Otsego,New York,36077,44,4 +2020-04-17,Otsego,New York,36077,44,4 +2020-04-18,Otsego,New York,36077,47,4 +2020-04-19,Otsego,New York,36077,48,5 +2020-04-20,Otsego,New York,36077,49,5 +2020-04-21,Otsego,New York,36077,49,5 +2020-04-22,Otsego,New York,36077,49,5 +2020-04-23,Otsego,New York,36077,50,5 +2020-04-24,Otsego,New York,36077,50,5 +2020-04-25,Otsego,New York,36077,60,5 +2020-04-26,Otsego,New York,36077,60,5 +2020-04-27,Otsego,New York,36077,62,5 +2020-04-28,Otsego,New York,36077,65,5 +2020-04-29,Otsego,New York,36077,66,5 +2020-04-30,Otsego,New York,36077,67,5 +2020-05-01,Otsego,New York,36077,67,5 +2020-05-02,Otsego,New York,36077,67,5 +2020-05-03,Otsego,New York,36077,67,5 +2020-05-04,Otsego,New York,36077,67,5 +2020-05-05,Otsego,New York,36077,67,5 +2020-05-06,Otsego,New York,36077,67,5 +2020-05-07,Otsego,New York,36077,67,5 +2020-05-08,Otsego,New York,36077,67,5 +2020-05-09,Otsego,New York,36077,67,5 +2020-05-10,Otsego,New York,36077,67,5 +2020-05-11,Otsego,New York,36077,67,5 +2020-05-12,Otsego,New York,36077,67,5 +2020-05-13,Otsego,New York,36077,67,5 +2020-05-14,Otsego,New York,36077,67,5 +2020-05-15,Otsego,New York,36077,67,5 +2020-05-16,Otsego,New York,36077,67,5 +2020-05-17,Otsego,New York,36077,67,5 +2020-05-18,Otsego,New York,36077,67,5 +2020-05-19,Otsego,New York,36077,67,5 +2020-05-20,Otsego,New York,36077,67,6 +2020-05-21,Otsego,New York,36077,67,6 +2020-05-22,Otsego,New York,36077,67,6 +2020-05-23,Otsego,New York,36077,68,6 +2020-05-24,Otsego,New York,36077,69,6 +2020-05-25,Otsego,New York,36077,69,6 +2020-05-26,Otsego,New York,36077,69,6 +2020-05-27,Otsego,New York,36077,69,6 +2020-05-28,Otsego,New York,36077,70,6 +2020-05-29,Otsego,New York,36077,71,6 +2020-05-30,Otsego,New York,36077,71,6 +2020-05-31,Otsego,New York,36077,72,6 +2020-06-01,Otsego,New York,36077,72,6 +2020-06-02,Otsego,New York,36077,73,6 +2020-06-03,Otsego,New York,36077,73,6 +2020-06-04,Otsego,New York,36077,73,6 +2020-06-05,Otsego,New York,36077,73,6 +2020-06-06,Otsego,New York,36077,74,6 +2020-06-07,Otsego,New York,36077,74,6 +2020-06-08,Otsego,New York,36077,75,6 +2020-06-09,Otsego,New York,36077,75,6 +2020-06-10,Otsego,New York,36077,77,6 +2020-06-11,Otsego,New York,36077,78,6 +2020-06-12,Otsego,New York,36077,78,6 +2020-06-13,Otsego,New York,36077,80,6 +2020-06-14,Otsego,New York,36077,80,6 +2020-06-15,Otsego,New York,36077,80,6 +2020-06-16,Otsego,New York,36077,81,6 +2020-06-17,Otsego,New York,36077,82,6 +2020-06-18,Otsego,New York,36077,82,6 +2020-06-19,Otsego,New York,36077,82,6 +2020-06-20,Otsego,New York,36077,82,6 +2020-06-21,Otsego,New York,36077,82,6 +2020-06-22,Otsego,New York,36077,83,6 +2020-06-23,Otsego,New York,36077,83,6 +2020-06-24,Otsego,New York,36077,83,6 +2020-06-25,Otsego,New York,36077,83,6 +2020-06-26,Otsego,New York,36077,83,6 +2020-06-27,Otsego,New York,36077,84,6 +2020-06-28,Otsego,New York,36077,84,6 +2020-06-29,Otsego,New York,36077,84,6 +2020-06-30,Otsego,New York,36077,84,6 +2020-07-01,Otsego,New York,36077,84,6 +2020-07-02,Otsego,New York,36077,84,6 +2020-07-03,Otsego,New York,36077,84,6 +2020-07-04,Otsego,New York,36077,86,6 +2020-07-05,Otsego,New York,36077,86,6 +2020-07-06,Otsego,New York,36077,86,6 +2020-07-07,Otsego,New York,36077,86,6 +2020-07-08,Otsego,New York,36077,86,6 +2020-07-09,Otsego,New York,36077,86,6 +2020-03-15,Putnam,New York,36079,2,0 +2020-03-16,Putnam,New York,36079,2,0 +2020-03-17,Putnam,New York,36079,2,0 +2020-03-18,Putnam,New York,36079,2,0 +2020-03-19,Putnam,New York,36079,2,0 +2020-03-20,Putnam,New York,36079,7,0 +2020-03-21,Putnam,New York,36079,22,0 +2020-03-22,Putnam,New York,36079,37,0 +2020-03-23,Putnam,New York,36079,45,0 +2020-03-24,Putnam,New York,36079,67,0 +2020-03-25,Putnam,New York,36079,84,0 +2020-03-26,Putnam,New York,36079,94,0 +2020-03-27,Putnam,New York,36079,111,0 +2020-03-28,Putnam,New York,36079,131,0 +2020-03-29,Putnam,New York,36079,144,0 +2020-03-30,Putnam,New York,36079,167,0 +2020-03-31,Putnam,New York,36079,186,0 +2020-04-01,Putnam,New York,36079,207,0 +2020-04-02,Putnam,New York,36079,236,0 +2020-04-03,Putnam,New York,36079,236,0 +2020-04-04,Putnam,New York,36079,283,9 +2020-04-05,Putnam,New York,36079,314,9 +2020-04-06,Putnam,New York,36079,345,12 +2020-04-07,Putnam,New York,36079,366,13 +2020-04-08,Putnam,New York,36079,403,15 +2020-04-09,Putnam,New York,36079,438,16 +2020-04-10,Putnam,New York,36079,487,18 +2020-04-11,Putnam,New York,36079,494,20 +2020-04-12,Putnam,New York,36079,497,23 +2020-04-13,Putnam,New York,36079,502,25 +2020-04-14,Putnam,New York,36079,558,27 +2020-04-15,Putnam,New York,36079,571,28 +2020-04-16,Putnam,New York,36079,573,29 +2020-04-17,Putnam,New York,36079,578,29 +2020-04-18,Putnam,New York,36079,582,29 +2020-04-19,Putnam,New York,36079,592,35 +2020-04-20,Putnam,New York,36079,599,37 +2020-04-21,Putnam,New York,36079,605,38 +2020-04-22,Putnam,New York,36079,611,39 +2020-04-23,Putnam,New York,36079,615,41 +2020-04-24,Putnam,New York,36079,619,42 +2020-04-25,Putnam,New York,36079,885,42 +2020-04-26,Putnam,New York,36079,904,42 +2020-04-27,Putnam,New York,36079,925,42 +2020-04-28,Putnam,New York,36079,932,45 +2020-04-29,Putnam,New York,36079,946,45 +2020-04-30,Putnam,New York,36079,970,45 +2020-05-01,Putnam,New York,36079,990,45 +2020-05-02,Putnam,New York,36079,1003,46 +2020-05-03,Putnam,New York,36079,1013,47 +2020-05-04,Putnam,New York,36079,1026,47 +2020-05-05,Putnam,New York,36079,1031,47 +2020-05-06,Putnam,New York,36079,1040,56 +2020-05-07,Putnam,New York,36079,1066,56 +2020-05-08,Putnam,New York,36079,1074,56 +2020-05-09,Putnam,New York,36079,1080,56 +2020-05-10,Putnam,New York,36079,1089,58 +2020-05-11,Putnam,New York,36079,1098,58 +2020-05-12,Putnam,New York,36079,1098,58 +2020-05-13,Putnam,New York,36079,1108,58 +2020-05-14,Putnam,New York,36079,1115,58 +2020-05-15,Putnam,New York,36079,1121,58 +2020-05-16,Putnam,New York,36079,1127,59 +2020-05-17,Putnam,New York,36079,1136,59 +2020-05-18,Putnam,New York,36079,1141,59 +2020-05-19,Putnam,New York,36079,1159,59 +2020-05-20,Putnam,New York,36079,1168,59 +2020-05-21,Putnam,New York,36079,1175,59 +2020-05-22,Putnam,New York,36079,1187,59 +2020-05-23,Putnam,New York,36079,1200,59 +2020-05-24,Putnam,New York,36079,1208,59 +2020-05-25,Putnam,New York,36079,1214,59 +2020-05-26,Putnam,New York,36079,1222,59 +2020-05-27,Putnam,New York,36079,1227,59 +2020-05-28,Putnam,New York,36079,1236,59 +2020-05-29,Putnam,New York,36079,1241,60 +2020-05-30,Putnam,New York,36079,1248,60 +2020-05-31,Putnam,New York,36079,1252,60 +2020-06-01,Putnam,New York,36079,1257,60 +2020-06-02,Putnam,New York,36079,1262,60 +2020-06-03,Putnam,New York,36079,1264,60 +2020-06-04,Putnam,New York,36079,1268,60 +2020-06-05,Putnam,New York,36079,1270,60 +2020-06-06,Putnam,New York,36079,1274,60 +2020-06-07,Putnam,New York,36079,1277,60 +2020-06-08,Putnam,New York,36079,1279,60 +2020-06-09,Putnam,New York,36079,1280,60 +2020-06-10,Putnam,New York,36079,1282,60 +2020-06-11,Putnam,New York,36079,1282,60 +2020-06-12,Putnam,New York,36079,1282,60 +2020-06-13,Putnam,New York,36079,1285,60 +2020-06-14,Putnam,New York,36079,1288,60 +2020-06-15,Putnam,New York,36079,1291,60 +2020-06-16,Putnam,New York,36079,1292,60 +2020-06-17,Putnam,New York,36079,1294,60 +2020-06-18,Putnam,New York,36079,1295,60 +2020-06-19,Putnam,New York,36079,1299,60 +2020-06-20,Putnam,New York,36079,1301,60 +2020-06-21,Putnam,New York,36079,1301,60 +2020-06-22,Putnam,New York,36079,1305,60 +2020-06-23,Putnam,New York,36079,1305,60 +2020-06-24,Putnam,New York,36079,1306,60 +2020-06-25,Putnam,New York,36079,1311,60 +2020-06-26,Putnam,New York,36079,1317,60 +2020-06-27,Putnam,New York,36079,1319,61 +2020-06-28,Putnam,New York,36079,1323,61 +2020-06-29,Putnam,New York,36079,1325,61 +2020-06-30,Putnam,New York,36079,1326,61 +2020-07-01,Putnam,New York,36079,1329,61 +2020-07-02,Putnam,New York,36079,1332,61 +2020-07-03,Putnam,New York,36079,1333,61 +2020-07-04,Putnam,New York,36079,1335,61 +2020-07-05,Putnam,New York,36079,1336,61 +2020-07-06,Putnam,New York,36079,1337,61 +2020-07-07,Putnam,New York,36079,1340,61 +2020-07-08,Putnam,New York,36079,1344,61 +2020-07-09,Putnam,New York,36079,1348,61 +2020-03-17,Rensselaer,New York,36083,1,0 +2020-03-18,Rensselaer,New York,36083,4,0 +2020-03-19,Rensselaer,New York,36083,4,0 +2020-03-20,Rensselaer,New York,36083,8,0 +2020-03-21,Rensselaer,New York,36083,20,0 +2020-03-22,Rensselaer,New York,36083,26,0 +2020-03-23,Rensselaer,New York,36083,29,0 +2020-03-24,Rensselaer,New York,36083,30,0 +2020-03-25,Rensselaer,New York,36083,31,0 +2020-03-26,Rensselaer,New York,36083,32,0 +2020-03-27,Rensselaer,New York,36083,35,0 +2020-03-28,Rensselaer,New York,36083,38,0 +2020-03-29,Rensselaer,New York,36083,39,0 +2020-03-30,Rensselaer,New York,36083,40,0 +2020-03-31,Rensselaer,New York,36083,55,0 +2020-04-01,Rensselaer,New York,36083,60,0 +2020-04-02,Rensselaer,New York,36083,67,1 +2020-04-03,Rensselaer,New York,36083,71,1 +2020-04-04,Rensselaer,New York,36083,73,1 +2020-04-05,Rensselaer,New York,36083,74,1 +2020-04-06,Rensselaer,New York,36083,78,1 +2020-04-07,Rensselaer,New York,36083,91,3 +2020-04-08,Rensselaer,New York,36083,91,1 +2020-04-09,Rensselaer,New York,36083,79,3 +2020-04-10,Rensselaer,New York,36083,91,4 +2020-04-11,Rensselaer,New York,36083,96,4 +2020-04-12,Rensselaer,New York,36083,105,6 +2020-04-13,Rensselaer,New York,36083,113,6 +2020-04-14,Rensselaer,New York,36083,120,7 +2020-04-15,Rensselaer,New York,36083,124,8 +2020-04-16,Rensselaer,New York,36083,137,9 +2020-04-17,Rensselaer,New York,36083,150,9 +2020-04-18,Rensselaer,New York,36083,164,9 +2020-04-19,Rensselaer,New York,36083,173,10 +2020-04-20,Rensselaer,New York,36083,177,10 +2020-04-21,Rensselaer,New York,36083,183,11 +2020-04-22,Rensselaer,New York,36083,186,11 +2020-04-23,Rensselaer,New York,36083,191,12 +2020-04-24,Rensselaer,New York,36083,198,12 +2020-04-25,Rensselaer,New York,36083,221,12 +2020-04-26,Rensselaer,New York,36083,242,13 +2020-04-27,Rensselaer,New York,36083,246,17 +2020-04-28,Rensselaer,New York,36083,250,17 +2020-04-29,Rensselaer,New York,36083,262,17 +2020-04-30,Rensselaer,New York,36083,287,20 +2020-05-01,Rensselaer,New York,36083,298,20 +2020-05-02,Rensselaer,New York,36083,311,21 +2020-05-03,Rensselaer,New York,36083,322,23 +2020-05-04,Rensselaer,New York,36083,337,23 +2020-05-05,Rensselaer,New York,36083,339,23 +2020-05-06,Rensselaer,New York,36083,347,28 +2020-05-07,Rensselaer,New York,36083,367,28 +2020-05-08,Rensselaer,New York,36083,380,28 +2020-05-09,Rensselaer,New York,36083,407,29 +2020-05-10,Rensselaer,New York,36083,409,29 +2020-05-11,Rensselaer,New York,36083,411,30 +2020-05-12,Rensselaer,New York,36083,416,30 +2020-05-13,Rensselaer,New York,36083,420,30 +2020-05-14,Rensselaer,New York,36083,423,30 +2020-05-15,Rensselaer,New York,36083,428,30 +2020-05-16,Rensselaer,New York,36083,438,30 +2020-05-17,Rensselaer,New York,36083,439,32 +2020-05-18,Rensselaer,New York,36083,444,32 +2020-05-19,Rensselaer,New York,36083,444,32 +2020-05-20,Rensselaer,New York,36083,453,32 +2020-05-21,Rensselaer,New York,36083,456,32 +2020-05-22,Rensselaer,New York,36083,460,32 +2020-05-23,Rensselaer,New York,36083,463,32 +2020-05-24,Rensselaer,New York,36083,463,32 +2020-05-25,Rensselaer,New York,36083,465,32 +2020-05-26,Rensselaer,New York,36083,466,32 +2020-05-27,Rensselaer,New York,36083,466,32 +2020-05-28,Rensselaer,New York,36083,469,32 +2020-05-29,Rensselaer,New York,36083,478,32 +2020-05-30,Rensselaer,New York,36083,486,32 +2020-05-31,Rensselaer,New York,36083,491,32 +2020-06-01,Rensselaer,New York,36083,492,32 +2020-06-02,Rensselaer,New York,36083,493,32 +2020-06-03,Rensselaer,New York,36083,495,32 +2020-06-04,Rensselaer,New York,36083,495,32 +2020-06-05,Rensselaer,New York,36083,497,32 +2020-06-06,Rensselaer,New York,36083,499,32 +2020-06-07,Rensselaer,New York,36083,502,32 +2020-06-08,Rensselaer,New York,36083,503,32 +2020-06-09,Rensselaer,New York,36083,505,32 +2020-06-10,Rensselaer,New York,36083,507,33 +2020-06-11,Rensselaer,New York,36083,508,33 +2020-06-12,Rensselaer,New York,36083,510,33 +2020-06-13,Rensselaer,New York,36083,511,34 +2020-06-14,Rensselaer,New York,36083,513,34 +2020-06-15,Rensselaer,New York,36083,514,34 +2020-06-16,Rensselaer,New York,36083,514,34 +2020-06-17,Rensselaer,New York,36083,515,37 +2020-06-18,Rensselaer,New York,36083,515,36 +2020-06-19,Rensselaer,New York,36083,519,36 +2020-06-20,Rensselaer,New York,36083,521,37 +2020-06-21,Rensselaer,New York,36083,524,37 +2020-06-22,Rensselaer,New York,36083,528,37 +2020-06-23,Rensselaer,New York,36083,533,37 +2020-06-24,Rensselaer,New York,36083,534,37 +2020-06-25,Rensselaer,New York,36083,541,37 +2020-06-26,Rensselaer,New York,36083,549,37 +2020-06-27,Rensselaer,New York,36083,550,37 +2020-06-28,Rensselaer,New York,36083,551,37 +2020-06-29,Rensselaer,New York,36083,553,37 +2020-06-30,Rensselaer,New York,36083,553,37 +2020-07-01,Rensselaer,New York,36083,555,37 +2020-07-02,Rensselaer,New York,36083,556,37 +2020-07-03,Rensselaer,New York,36083,559,37 +2020-07-04,Rensselaer,New York,36083,563,37 +2020-07-05,Rensselaer,New York,36083,565,37 +2020-07-06,Rensselaer,New York,36083,568,38 +2020-07-07,Rensselaer,New York,36083,571,38 +2020-07-08,Rensselaer,New York,36083,580,38 +2020-07-09,Rensselaer,New York,36083,586,38 +2020-03-06,Rockland,New York,36087,2,0 +2020-03-07,Rockland,New York,36087,2,0 +2020-03-08,Rockland,New York,36087,2,0 +2020-03-09,Rockland,New York,36087,4,0 +2020-03-10,Rockland,New York,36087,6,0 +2020-03-11,Rockland,New York,36087,6,0 +2020-03-12,Rockland,New York,36087,7,0 +2020-03-13,Rockland,New York,36087,9,0 +2020-03-14,Rockland,New York,36087,12,1 +2020-03-15,Rockland,New York,36087,13,1 +2020-03-16,Rockland,New York,36087,16,1 +2020-03-17,Rockland,New York,36087,22,2 +2020-03-18,Rockland,New York,36087,30,2 +2020-03-19,Rockland,New York,36087,53,2 +2020-03-20,Rockland,New York,36087,101,3 +2020-03-21,Rockland,New York,36087,262,3 +2020-03-22,Rockland,New York,36087,455,3 +2020-03-23,Rockland,New York,36087,592,5 +2020-03-24,Rockland,New York,36087,671,5 +2020-03-25,Rockland,New York,36087,1069,7 +2020-03-26,Rockland,New York,36087,1197,7 +2020-03-27,Rockland,New York,36087,1457,8 +2020-03-28,Rockland,New York,36087,1896,8 +2020-03-29,Rockland,New York,36087,2209,8 +2020-03-30,Rockland,New York,36087,2511,8 +2020-03-31,Rockland,New York,36087,2863,8 +2020-04-01,Rockland,New York,36087,3321,29 +2020-04-02,Rockland,New York,36087,3751,42 +2020-04-03,Rockland,New York,36087,4289,42 +2020-04-04,Rockland,New York,36087,4872,69 +2020-04-05,Rockland,New York,36087,5362,69 +2020-04-06,Rockland,New York,36087,5703,76 +2020-04-07,Rockland,New York,36087,5990,119 +2020-04-08,Rockland,New York,36087,6413,98 +2020-04-09,Rockland,New York,36087,6665,117 +2020-04-10,Rockland,New York,36087,7122,135 +2020-04-11,Rockland,New York,36087,7477,153 +2020-04-12,Rockland,New York,36087,7721,166 +2020-04-13,Rockland,New York,36087,7965,182 +2020-04-14,Rockland,New York,36087,8335,192 +2020-04-15,Rockland,New York,36087,8474,212 +2020-04-16,Rockland,New York,36087,8752,234 +2020-04-17,Rockland,New York,36087,8987,234 +2020-04-18,Rockland,New York,36087,9171,234 +2020-04-19,Rockland,New York,36087,9364,276 +2020-04-20,Rockland,New York,36087,9457,286 +2020-04-21,Rockland,New York,36087,9568,297 +2020-04-22,Rockland,New York,36087,9699,309 +2020-04-23,Rockland,New York,36087,9828,322 +2020-04-24,Rockland,New York,36087,10091,334 +2020-04-25,Rockland,New York,36087,11091,340 +2020-04-26,Rockland,New York,36087,11256,349 +2020-04-27,Rockland,New York,36087,11366,355 +2020-04-28,Rockland,New York,36087,11453,359 +2020-04-29,Rockland,New York,36087,11586,364 +2020-04-30,Rockland,New York,36087,11708,370 +2020-05-01,Rockland,New York,36087,11812,371 +2020-05-02,Rockland,New York,36087,11945,376 +2020-05-03,Rockland,New York,36087,12025,378 +2020-05-04,Rockland,New York,36087,12095,380 +2020-05-05,Rockland,New York,36087,12144,383 +2020-05-06,Rockland,New York,36087,12204,400 +2020-05-07,Rockland,New York,36087,12280,404 +2020-05-08,Rockland,New York,36087,12349,404 +2020-05-09,Rockland,New York,36087,12400,410 +2020-05-10,Rockland,New York,36087,12451,417 +2020-05-11,Rockland,New York,36087,12484,421 +2020-05-12,Rockland,New York,36087,12504,427 +2020-05-13,Rockland,New York,36087,12543,429 +2020-05-14,Rockland,New York,36087,12596,431 +2020-05-15,Rockland,New York,36087,12637,434 +2020-05-16,Rockland,New York,36087,12688,439 +2020-05-17,Rockland,New York,36087,12758,440 +2020-05-18,Rockland,New York,36087,12777,442 +2020-05-19,Rockland,New York,36087,12798,445 +2020-05-20,Rockland,New York,36087,12831,447 +2020-05-21,Rockland,New York,36087,12877,448 +2020-05-22,Rockland,New York,36087,12905,450 +2020-05-23,Rockland,New York,36087,12934,452 +2020-05-24,Rockland,New York,36087,12963,454 +2020-05-25,Rockland,New York,36087,12996,454 +2020-05-26,Rockland,New York,36087,13019,455 +2020-05-27,Rockland,New York,36087,13047,455 +2020-05-28,Rockland,New York,36087,13076,457 +2020-05-29,Rockland,New York,36087,13100,457 +2020-05-30,Rockland,New York,36087,13128,457 +2020-05-31,Rockland,New York,36087,13151,458 +2020-06-01,Rockland,New York,36087,13185,458 +2020-06-02,Rockland,New York,36087,13223,463 +2020-06-03,Rockland,New York,36087,13259,464 +2020-06-04,Rockland,New York,36087,13280,464 +2020-06-05,Rockland,New York,36087,13297,465 +2020-06-06,Rockland,New York,36087,13315,465 +2020-06-07,Rockland,New York,36087,13325,465 +2020-06-08,Rockland,New York,36087,13340,465 +2020-06-09,Rockland,New York,36087,13353,465 +2020-06-10,Rockland,New York,36087,13372,466 +2020-06-11,Rockland,New York,36087,13385,466 +2020-06-12,Rockland,New York,36087,13396,466 +2020-06-13,Rockland,New York,36087,13411,466 +2020-06-14,Rockland,New York,36087,13423,466 +2020-06-15,Rockland,New York,36087,13441,466 +2020-06-16,Rockland,New York,36087,13460,468 +2020-06-17,Rockland,New York,36087,13467,469 +2020-06-18,Rockland,New York,36087,13474,469 +2020-06-19,Rockland,New York,36087,13486,469 +2020-06-20,Rockland,New York,36087,13495,469 +2020-06-21,Rockland,New York,36087,13504,469 +2020-06-22,Rockland,New York,36087,13514,469 +2020-06-23,Rockland,New York,36087,13529,469 +2020-06-24,Rockland,New York,36087,13534,469 +2020-06-25,Rockland,New York,36087,13549,469 +2020-06-26,Rockland,New York,36087,13557,469 +2020-06-27,Rockland,New York,36087,13566,469 +2020-06-28,Rockland,New York,36087,13576,469 +2020-06-29,Rockland,New York,36087,13580,469 +2020-06-30,Rockland,New York,36087,13590,469 +2020-07-01,Rockland,New York,36087,13602,469 +2020-07-02,Rockland,New York,36087,13612,469 +2020-07-03,Rockland,New York,36087,13623,469 +2020-07-04,Rockland,New York,36087,13629,469 +2020-07-05,Rockland,New York,36087,13648,469 +2020-07-06,Rockland,New York,36087,13656,469 +2020-07-07,Rockland,New York,36087,13668,469 +2020-07-08,Rockland,New York,36087,13679,469 +2020-07-09,Rockland,New York,36087,13683,469 +2020-03-22,St. Lawrence,New York,36089,1,0 +2020-03-23,St. Lawrence,New York,36089,1,0 +2020-03-24,St. Lawrence,New York,36089,1,0 +2020-03-25,St. Lawrence,New York,36089,1,0 +2020-03-26,St. Lawrence,New York,36089,2,0 +2020-03-27,St. Lawrence,New York,36089,3,0 +2020-03-28,St. Lawrence,New York,36089,8,0 +2020-03-29,St. Lawrence,New York,36089,12,0 +2020-03-30,St. Lawrence,New York,36089,13,0 +2020-03-31,St. Lawrence,New York,36089,30,0 +2020-04-01,St. Lawrence,New York,36089,34,0 +2020-04-02,St. Lawrence,New York,36089,42,0 +2020-04-03,St. Lawrence,New York,36089,42,0 +2020-04-04,St. Lawrence,New York,36089,58,0 +2020-04-05,St. Lawrence,New York,36089,58,0 +2020-04-06,St. Lawrence,New York,36089,63,0 +2020-04-07,St. Lawrence,New York,36089,63,0 +2020-04-08,St. Lawrence,New York,36089,69,0 +2020-04-09,St. Lawrence,New York,36089,76,1 +2020-04-10,St. Lawrence,New York,36089,78,1 +2020-04-11,St. Lawrence,New York,36089,80,1 +2020-04-12,St. Lawrence,New York,36089,85,1 +2020-04-13,St. Lawrence,New York,36089,89,1 +2020-04-14,St. Lawrence,New York,36089,92,1 +2020-04-15,St. Lawrence,New York,36089,92,1 +2020-04-16,St. Lawrence,New York,36089,93,1 +2020-04-17,St. Lawrence,New York,36089,96,1 +2020-04-18,St. Lawrence,New York,36089,98,1 +2020-04-19,St. Lawrence,New York,36089,105,1 +2020-04-20,St. Lawrence,New York,36089,110,1 +2020-04-21,St. Lawrence,New York,36089,120,1 +2020-04-22,St. Lawrence,New York,36089,123,1 +2020-04-23,St. Lawrence,New York,36089,139,1 +2020-04-24,St. Lawrence,New York,36089,144,1 +2020-04-25,St. Lawrence,New York,36089,156,1 +2020-04-26,St. Lawrence,New York,36089,167,1 +2020-04-27,St. Lawrence,New York,36089,169,2 +2020-04-28,St. Lawrence,New York,36089,170,2 +2020-04-29,St. Lawrence,New York,36089,170,2 +2020-04-30,St. Lawrence,New York,36089,173,2 +2020-05-01,St. Lawrence,New York,36089,176,2 +2020-05-02,St. Lawrence,New York,36089,176,2 +2020-05-03,St. Lawrence,New York,36089,177,2 +2020-05-04,St. Lawrence,New York,36089,178,2 +2020-05-05,St. Lawrence,New York,36089,178,2 +2020-05-06,St. Lawrence,New York,36089,180,2 +2020-05-07,St. Lawrence,New York,36089,181,2 +2020-05-08,St. Lawrence,New York,36089,187,2 +2020-05-09,St. Lawrence,New York,36089,187,2 +2020-05-10,St. Lawrence,New York,36089,187,2 +2020-05-11,St. Lawrence,New York,36089,190,2 +2020-05-12,St. Lawrence,New York,36089,191,2 +2020-05-13,St. Lawrence,New York,36089,192,2 +2020-05-14,St. Lawrence,New York,36089,192,2 +2020-05-15,St. Lawrence,New York,36089,192,2 +2020-05-16,St. Lawrence,New York,36089,192,2 +2020-05-17,St. Lawrence,New York,36089,192,2 +2020-05-18,St. Lawrence,New York,36089,192,2 +2020-05-19,St. Lawrence,New York,36089,192,2 +2020-05-20,St. Lawrence,New York,36089,195,2 +2020-05-21,St. Lawrence,New York,36089,195,2 +2020-05-22,St. Lawrence,New York,36089,195,2 +2020-05-23,St. Lawrence,New York,36089,196,2 +2020-05-24,St. Lawrence,New York,36089,197,2 +2020-05-25,St. Lawrence,New York,36089,197,2 +2020-05-26,St. Lawrence,New York,36089,197,2 +2020-05-27,St. Lawrence,New York,36089,200,2 +2020-05-28,St. Lawrence,New York,36089,201,2 +2020-05-29,St. Lawrence,New York,36089,202,2 +2020-05-30,St. Lawrence,New York,36089,202,2 +2020-05-31,St. Lawrence,New York,36089,204,2 +2020-06-01,St. Lawrence,New York,36089,205,2 +2020-06-02,St. Lawrence,New York,36089,205,2 +2020-06-03,St. Lawrence,New York,36089,206,2 +2020-06-04,St. Lawrence,New York,36089,207,2 +2020-06-05,St. Lawrence,New York,36089,207,2 +2020-06-06,St. Lawrence,New York,36089,209,2 +2020-06-07,St. Lawrence,New York,36089,209,2 +2020-06-08,St. Lawrence,New York,36089,209,2 +2020-06-09,St. Lawrence,New York,36089,209,2 +2020-06-10,St. Lawrence,New York,36089,209,2 +2020-06-11,St. Lawrence,New York,36089,212,3 +2020-06-12,St. Lawrence,New York,36089,214,3 +2020-06-13,St. Lawrence,New York,36089,214,3 +2020-06-14,St. Lawrence,New York,36089,215,3 +2020-06-15,St. Lawrence,New York,36089,215,3 +2020-06-16,St. Lawrence,New York,36089,215,3 +2020-06-17,St. Lawrence,New York,36089,215,3 +2020-06-18,St. Lawrence,New York,36089,215,3 +2020-06-19,St. Lawrence,New York,36089,215,3 +2020-06-20,St. Lawrence,New York,36089,216,3 +2020-06-21,St. Lawrence,New York,36089,216,3 +2020-06-22,St. Lawrence,New York,36089,217,3 +2020-06-23,St. Lawrence,New York,36089,217,3 +2020-06-24,St. Lawrence,New York,36089,217,3 +2020-06-25,St. Lawrence,New York,36089,217,3 +2020-06-26,St. Lawrence,New York,36089,218,3 +2020-06-27,St. Lawrence,New York,36089,218,3 +2020-06-28,St. Lawrence,New York,36089,218,3 +2020-06-29,St. Lawrence,New York,36089,219,3 +2020-06-30,St. Lawrence,New York,36089,219,3 +2020-07-01,St. Lawrence,New York,36089,219,3 +2020-07-02,St. Lawrence,New York,36089,220,3 +2020-07-03,St. Lawrence,New York,36089,222,3 +2020-07-04,St. Lawrence,New York,36089,223,3 +2020-07-05,St. Lawrence,New York,36089,224,3 +2020-07-06,St. Lawrence,New York,36089,226,3 +2020-07-07,St. Lawrence,New York,36089,226,3 +2020-07-08,St. Lawrence,New York,36089,227,3 +2020-07-09,St. Lawrence,New York,36089,227,3 +2020-03-07,Saratoga,New York,36091,2,0 +2020-03-08,Saratoga,New York,36091,2,0 +2020-03-09,Saratoga,New York,36091,2,0 +2020-03-10,Saratoga,New York,36091,2,0 +2020-03-11,Saratoga,New York,36091,2,0 +2020-03-12,Saratoga,New York,36091,3,0 +2020-03-13,Saratoga,New York,36091,3,0 +2020-03-14,Saratoga,New York,36091,3,0 +2020-03-15,Saratoga,New York,36091,3,0 +2020-03-16,Saratoga,New York,36091,5,0 +2020-03-17,Saratoga,New York,36091,9,0 +2020-03-18,Saratoga,New York,36091,14,0 +2020-03-19,Saratoga,New York,36091,14,0 +2020-03-20,Saratoga,New York,36091,24,0 +2020-03-21,Saratoga,New York,36091,35,0 +2020-03-22,Saratoga,New York,36091,41,0 +2020-03-23,Saratoga,New York,36091,53,0 +2020-03-24,Saratoga,New York,36091,60,0 +2020-03-25,Saratoga,New York,36091,64,0 +2020-03-26,Saratoga,New York,36091,73,0 +2020-03-27,Saratoga,New York,36091,82,0 +2020-03-28,Saratoga,New York,36091,96,0 +2020-03-29,Saratoga,New York,36091,102,1 +2020-03-30,Saratoga,New York,36091,105,1 +2020-03-31,Saratoga,New York,36091,108,1 +2020-04-01,Saratoga,New York,36091,122,1 +2020-04-02,Saratoga,New York,36091,132,1 +2020-04-03,Saratoga,New York,36091,132,1 +2020-04-04,Saratoga,New York,36091,141,1 +2020-04-05,Saratoga,New York,36091,148,1 +2020-04-06,Saratoga,New York,36091,153,1 +2020-04-07,Saratoga,New York,36091,163,3 +2020-04-08,Saratoga,New York,36091,167,1 +2020-04-09,Saratoga,New York,36091,172,1 +2020-04-10,Saratoga,New York,36091,182,1 +2020-04-11,Saratoga,New York,36091,187,1 +2020-04-12,Saratoga,New York,36091,196,1 +2020-04-13,Saratoga,New York,36091,201,1 +2020-04-14,Saratoga,New York,36091,224,1 +2020-04-15,Saratoga,New York,36091,227,1 +2020-04-16,Saratoga,New York,36091,231,1 +2020-04-17,Saratoga,New York,36091,236,1 +2020-04-18,Saratoga,New York,36091,244,1 +2020-04-19,Saratoga,New York,36091,251,1 +2020-04-20,Saratoga,New York,36091,254,2 +2020-04-21,Saratoga,New York,36091,257,2 +2020-04-22,Saratoga,New York,36091,264,2 +2020-04-23,Saratoga,New York,36091,265,2 +2020-04-24,Saratoga,New York,36091,278,2 +2020-04-25,Saratoga,New York,36091,320,3 +2020-04-26,Saratoga,New York,36091,330,3 +2020-04-27,Saratoga,New York,36091,336,3 +2020-04-28,Saratoga,New York,36091,343,3 +2020-04-29,Saratoga,New York,36091,346,3 +2020-04-30,Saratoga,New York,36091,354,3 +2020-05-01,Saratoga,New York,36091,358,3 +2020-05-02,Saratoga,New York,36091,361,3 +2020-05-03,Saratoga,New York,36091,363,3 +2020-05-04,Saratoga,New York,36091,367,3 +2020-05-05,Saratoga,New York,36091,368,3 +2020-05-06,Saratoga,New York,36091,371,3 +2020-05-07,Saratoga,New York,36091,374,3 +2020-05-08,Saratoga,New York,36091,388,3 +2020-05-09,Saratoga,New York,36091,399,3 +2020-05-10,Saratoga,New York,36091,402,3 +2020-05-11,Saratoga,New York,36091,403,3 +2020-05-12,Saratoga,New York,36091,407,3 +2020-05-13,Saratoga,New York,36091,410,3 +2020-05-14,Saratoga,New York,36091,415,3 +2020-05-15,Saratoga,New York,36091,421,3 +2020-05-16,Saratoga,New York,36091,423,3 +2020-05-17,Saratoga,New York,36091,428,3 +2020-05-18,Saratoga,New York,36091,434,4 +2020-05-19,Saratoga,New York,36091,436,4 +2020-05-20,Saratoga,New York,36091,438,4 +2020-05-21,Saratoga,New York,36091,440,4 +2020-05-22,Saratoga,New York,36091,448,4 +2020-05-23,Saratoga,New York,36091,452,4 +2020-05-24,Saratoga,New York,36091,456,4 +2020-05-25,Saratoga,New York,36091,461,4 +2020-05-26,Saratoga,New York,36091,463,4 +2020-05-27,Saratoga,New York,36091,465,4 +2020-05-28,Saratoga,New York,36091,468,4 +2020-05-29,Saratoga,New York,36091,473,4 +2020-05-30,Saratoga,New York,36091,477,4 +2020-05-31,Saratoga,New York,36091,480,4 +2020-06-01,Saratoga,New York,36091,483,4 +2020-06-02,Saratoga,New York,36091,484,4 +2020-06-03,Saratoga,New York,36091,489,4 +2020-06-04,Saratoga,New York,36091,493,4 +2020-06-05,Saratoga,New York,36091,496,4 +2020-06-06,Saratoga,New York,36091,501,4 +2020-06-07,Saratoga,New York,36091,502,5 +2020-06-08,Saratoga,New York,36091,504,5 +2020-06-09,Saratoga,New York,36091,511,5 +2020-06-10,Saratoga,New York,36091,511,5 +2020-06-11,Saratoga,New York,36091,513,5 +2020-06-12,Saratoga,New York,36091,514,5 +2020-06-13,Saratoga,New York,36091,514,5 +2020-06-14,Saratoga,New York,36091,515,5 +2020-06-15,Saratoga,New York,36091,517,5 +2020-06-16,Saratoga,New York,36091,522,5 +2020-06-17,Saratoga,New York,36091,523,5 +2020-06-18,Saratoga,New York,36091,526,5 +2020-06-19,Saratoga,New York,36091,528,5 +2020-06-20,Saratoga,New York,36091,531,5 +2020-06-21,Saratoga,New York,36091,533,5 +2020-06-22,Saratoga,New York,36091,535,5 +2020-06-23,Saratoga,New York,36091,538,5 +2020-06-24,Saratoga,New York,36091,538,5 +2020-06-25,Saratoga,New York,36091,540,5 +2020-06-26,Saratoga,New York,36091,540,5 +2020-06-27,Saratoga,New York,36091,546,5 +2020-06-28,Saratoga,New York,36091,548,5 +2020-06-29,Saratoga,New York,36091,549,5 +2020-06-30,Saratoga,New York,36091,549,5 +2020-07-01,Saratoga,New York,36091,550,5 +2020-07-02,Saratoga,New York,36091,555,5 +2020-07-03,Saratoga,New York,36091,561,5 +2020-07-04,Saratoga,New York,36091,562,5 +2020-07-05,Saratoga,New York,36091,566,5 +2020-07-06,Saratoga,New York,36091,572,5 +2020-07-07,Saratoga,New York,36091,578,5 +2020-07-08,Saratoga,New York,36091,582,5 +2020-07-09,Saratoga,New York,36091,585,5 +2020-03-13,Schenectady,New York,36093,1,0 +2020-03-14,Schenectady,New York,36093,1,0 +2020-03-15,Schenectady,New York,36093,2,0 +2020-03-16,Schenectady,New York,36093,4,0 +2020-03-17,Schenectady,New York,36093,5,0 +2020-03-18,Schenectady,New York,36093,14,0 +2020-03-19,Schenectady,New York,36093,21,0 +2020-03-20,Schenectady,New York,36093,21,0 +2020-03-21,Schenectady,New York,36093,32,0 +2020-03-22,Schenectady,New York,36093,39,0 +2020-03-23,Schenectady,New York,36093,44,0 +2020-03-24,Schenectady,New York,36093,46,0 +2020-03-25,Schenectady,New York,36093,55,0 +2020-03-26,Schenectady,New York,36093,62,0 +2020-03-27,Schenectady,New York,36093,66,0 +2020-03-28,Schenectady,New York,36093,72,0 +2020-03-29,Schenectady,New York,36093,76,0 +2020-03-30,Schenectady,New York,36093,80,0 +2020-03-31,Schenectady,New York,36093,85,0 +2020-04-01,Schenectady,New York,36093,93,0 +2020-04-02,Schenectady,New York,36093,101,5 +2020-04-03,Schenectady,New York,36093,101,5 +2020-04-04,Schenectady,New York,36093,117,6 +2020-04-05,Schenectady,New York,36093,128,7 +2020-04-06,Schenectady,New York,36093,138,7 +2020-04-07,Schenectady,New York,36093,145,8 +2020-04-08,Schenectady,New York,36093,149,9 +2020-04-09,Schenectady,New York,36093,167,9 +2020-04-10,Schenectady,New York,36093,191,9 +2020-04-11,Schenectady,New York,36093,194,10 +2020-04-12,Schenectady,New York,36093,199,12 +2020-04-13,Schenectady,New York,36093,204,12 +2020-04-14,Schenectady,New York,36093,235,12 +2020-04-15,Schenectady,New York,36093,237,16 +2020-04-16,Schenectady,New York,36093,245,17 +2020-04-17,Schenectady,New York,36093,250,17 +2020-04-18,Schenectady,New York,36093,259,17 +2020-04-19,Schenectady,New York,36093,268,18 +2020-04-20,Schenectady,New York,36093,269,18 +2020-04-21,Schenectady,New York,36093,273,18 +2020-04-22,Schenectady,New York,36093,280,19 +2020-04-23,Schenectady,New York,36093,288,20 +2020-04-24,Schenectady,New York,36093,297,20 +2020-04-25,Schenectady,New York,36093,431,21 +2020-04-26,Schenectady,New York,36093,449,22 +2020-04-27,Schenectady,New York,36093,457,22 +2020-04-28,Schenectady,New York,36093,469,25 +2020-04-29,Schenectady,New York,36093,479,25 +2020-04-30,Schenectady,New York,36093,501,25 +2020-05-01,Schenectady,New York,36093,514,25 +2020-05-02,Schenectady,New York,36093,521,25 +2020-05-03,Schenectady,New York,36093,527,25 +2020-05-04,Schenectady,New York,36093,535,25 +2020-05-05,Schenectady,New York,36093,537,26 +2020-05-06,Schenectady,New York,36093,551,26 +2020-05-07,Schenectady,New York,36093,551,26 +2020-05-08,Schenectady,New York,36093,558,26 +2020-05-09,Schenectady,New York,36093,571,26 +2020-05-10,Schenectady,New York,36093,571,26 +2020-05-11,Schenectady,New York,36093,575,26 +2020-05-12,Schenectady,New York,36093,581,26 +2020-05-13,Schenectady,New York,36093,587,26 +2020-05-14,Schenectady,New York,36093,597,27 +2020-05-15,Schenectady,New York,36093,603,27 +2020-05-16,Schenectady,New York,36093,613,27 +2020-05-17,Schenectady,New York,36093,620,27 +2020-05-18,Schenectady,New York,36093,629,27 +2020-05-19,Schenectady,New York,36093,631,27 +2020-05-20,Schenectady,New York,36093,633,27 +2020-05-21,Schenectady,New York,36093,638,27 +2020-05-22,Schenectady,New York,36093,645,28 +2020-05-23,Schenectady,New York,36093,648,28 +2020-05-24,Schenectady,New York,36093,658,28 +2020-05-25,Schenectady,New York,36093,664,29 +2020-05-26,Schenectady,New York,36093,668,29 +2020-05-27,Schenectady,New York,36093,673,29 +2020-05-28,Schenectady,New York,36093,676,29 +2020-05-29,Schenectady,New York,36093,680,30 +2020-05-30,Schenectady,New York,36093,686,30 +2020-05-31,Schenectady,New York,36093,689,30 +2020-06-01,Schenectady,New York,36093,693,31 +2020-06-02,Schenectady,New York,36093,696,32 +2020-06-03,Schenectady,New York,36093,701,32 +2020-06-04,Schenectady,New York,36093,701,32 +2020-06-05,Schenectady,New York,36093,706,32 +2020-06-06,Schenectady,New York,36093,710,32 +2020-06-07,Schenectady,New York,36093,711,32 +2020-06-08,Schenectady,New York,36093,712,32 +2020-06-09,Schenectady,New York,36093,715,32 +2020-06-10,Schenectady,New York,36093,716,32 +2020-06-11,Schenectady,New York,36093,717,32 +2020-06-12,Schenectady,New York,36093,721,32 +2020-06-13,Schenectady,New York,36093,723,32 +2020-06-14,Schenectady,New York,36093,725,32 +2020-06-15,Schenectady,New York,36093,732,32 +2020-06-16,Schenectady,New York,36093,735,32 +2020-06-17,Schenectady,New York,36093,737,32 +2020-06-18,Schenectady,New York,36093,738,32 +2020-06-19,Schenectady,New York,36093,746,32 +2020-06-20,Schenectady,New York,36093,749,32 +2020-06-21,Schenectady,New York,36093,754,32 +2020-06-22,Schenectady,New York,36093,761,33 +2020-06-23,Schenectady,New York,36093,770,33 +2020-06-24,Schenectady,New York,36093,772,33 +2020-06-25,Schenectady,New York,36093,778,34 +2020-06-26,Schenectady,New York,36093,781,34 +2020-06-27,Schenectady,New York,36093,786,34 +2020-06-28,Schenectady,New York,36093,792,34 +2020-06-29,Schenectady,New York,36093,799,34 +2020-06-30,Schenectady,New York,36093,800,34 +2020-07-01,Schenectady,New York,36093,805,34 +2020-07-02,Schenectady,New York,36093,816,34 +2020-07-03,Schenectady,New York,36093,824,34 +2020-07-04,Schenectady,New York,36093,831,34 +2020-07-05,Schenectady,New York,36093,834,34 +2020-07-06,Schenectady,New York,36093,838,34 +2020-07-07,Schenectady,New York,36093,843,34 +2020-07-08,Schenectady,New York,36093,844,34 +2020-07-09,Schenectady,New York,36093,848,34 +2020-03-19,Schoharie,New York,36095,1,0 +2020-03-20,Schoharie,New York,36095,1,0 +2020-03-21,Schoharie,New York,36095,1,0 +2020-03-22,Schoharie,New York,36095,1,0 +2020-03-23,Schoharie,New York,36095,1,0 +2020-03-24,Schoharie,New York,36095,1,0 +2020-03-25,Schoharie,New York,36095,2,0 +2020-03-26,Schoharie,New York,36095,2,0 +2020-03-27,Schoharie,New York,36095,3,0 +2020-03-28,Schoharie,New York,36095,5,0 +2020-03-29,Schoharie,New York,36095,5,0 +2020-03-30,Schoharie,New York,36095,6,0 +2020-03-31,Schoharie,New York,36095,6,0 +2020-04-01,Schoharie,New York,36095,8,0 +2020-04-02,Schoharie,New York,36095,8,0 +2020-04-03,Schoharie,New York,36095,8,0 +2020-04-04,Schoharie,New York,36095,11,0 +2020-04-05,Schoharie,New York,36095,11,0 +2020-04-06,Schoharie,New York,36095,11,0 +2020-04-07,Schoharie,New York,36095,12,0 +2020-04-08,Schoharie,New York,36095,12,0 +2020-04-09,Schoharie,New York,36095,12,0 +2020-04-10,Schoharie,New York,36095,12,0 +2020-04-11,Schoharie,New York,36095,12,0 +2020-04-12,Schoharie,New York,36095,12,0 +2020-04-13,Schoharie,New York,36095,12,0 +2020-04-14,Schoharie,New York,36095,20,0 +2020-04-15,Schoharie,New York,36095,20,0 +2020-04-16,Schoharie,New York,36095,20,0 +2020-04-17,Schoharie,New York,36095,20,0 +2020-04-18,Schoharie,New York,36095,20,0 +2020-04-19,Schoharie,New York,36095,20,0 +2020-04-20,Schoharie,New York,36095,20,0 +2020-04-21,Schoharie,New York,36095,20,0 +2020-04-22,Schoharie,New York,36095,20,0 +2020-04-23,Schoharie,New York,36095,21,0 +2020-04-24,Schoharie,New York,36095,21,0 +2020-04-25,Schoharie,New York,36095,33,0 +2020-04-26,Schoharie,New York,36095,35,0 +2020-04-27,Schoharie,New York,36095,35,0 +2020-04-28,Schoharie,New York,36095,38,0 +2020-04-29,Schoharie,New York,36095,39,0 +2020-04-30,Schoharie,New York,36095,42,0 +2020-05-01,Schoharie,New York,36095,43,0 +2020-05-02,Schoharie,New York,36095,43,0 +2020-05-03,Schoharie,New York,36095,45,0 +2020-05-04,Schoharie,New York,36095,45,0 +2020-05-05,Schoharie,New York,36095,45,0 +2020-05-06,Schoharie,New York,36095,45,0 +2020-05-07,Schoharie,New York,36095,45,0 +2020-05-08,Schoharie,New York,36095,45,0 +2020-05-09,Schoharie,New York,36095,46,0 +2020-05-10,Schoharie,New York,36095,46,0 +2020-05-11,Schoharie,New York,36095,46,0 +2020-05-12,Schoharie,New York,36095,46,0 +2020-05-13,Schoharie,New York,36095,47,0 +2020-05-14,Schoharie,New York,36095,47,0 +2020-05-15,Schoharie,New York,36095,47,0 +2020-05-16,Schoharie,New York,36095,47,0 +2020-05-17,Schoharie,New York,36095,47,0 +2020-05-18,Schoharie,New York,36095,48,0 +2020-05-19,Schoharie,New York,36095,48,0 +2020-05-20,Schoharie,New York,36095,48,0 +2020-05-21,Schoharie,New York,36095,49,0 +2020-05-22,Schoharie,New York,36095,49,0 +2020-05-23,Schoharie,New York,36095,49,0 +2020-05-24,Schoharie,New York,36095,49,0 +2020-05-25,Schoharie,New York,36095,49,0 +2020-05-26,Schoharie,New York,36095,49,0 +2020-05-27,Schoharie,New York,36095,49,0 +2020-05-28,Schoharie,New York,36095,49,0 +2020-05-29,Schoharie,New York,36095,49,0 +2020-05-30,Schoharie,New York,36095,50,0 +2020-05-31,Schoharie,New York,36095,50,0 +2020-06-01,Schoharie,New York,36095,50,0 +2020-06-02,Schoharie,New York,36095,51,0 +2020-06-03,Schoharie,New York,36095,51,0 +2020-06-04,Schoharie,New York,36095,51,0 +2020-06-05,Schoharie,New York,36095,51,0 +2020-06-06,Schoharie,New York,36095,54,0 +2020-06-07,Schoharie,New York,36095,54,0 +2020-06-08,Schoharie,New York,36095,54,0 +2020-06-09,Schoharie,New York,36095,54,0 +2020-06-10,Schoharie,New York,36095,54,0 +2020-06-11,Schoharie,New York,36095,54,0 +2020-06-12,Schoharie,New York,36095,54,0 +2020-06-13,Schoharie,New York,36095,54,0 +2020-06-14,Schoharie,New York,36095,54,0 +2020-06-15,Schoharie,New York,36095,54,0 +2020-06-16,Schoharie,New York,36095,54,0 +2020-06-17,Schoharie,New York,36095,55,0 +2020-06-18,Schoharie,New York,36095,55,0 +2020-06-19,Schoharie,New York,36095,55,0 +2020-06-20,Schoharie,New York,36095,56,0 +2020-06-21,Schoharie,New York,36095,57,0 +2020-06-22,Schoharie,New York,36095,57,0 +2020-06-23,Schoharie,New York,36095,57,0 +2020-06-24,Schoharie,New York,36095,57,0 +2020-06-25,Schoharie,New York,36095,57,0 +2020-06-26,Schoharie,New York,36095,57,0 +2020-06-27,Schoharie,New York,36095,57,0 +2020-06-28,Schoharie,New York,36095,58,0 +2020-06-29,Schoharie,New York,36095,58,0 +2020-06-30,Schoharie,New York,36095,58,0 +2020-07-01,Schoharie,New York,36095,58,0 +2020-07-02,Schoharie,New York,36095,58,0 +2020-07-03,Schoharie,New York,36095,58,0 +2020-07-04,Schoharie,New York,36095,58,0 +2020-07-05,Schoharie,New York,36095,59,0 +2020-07-06,Schoharie,New York,36095,59,0 +2020-07-07,Schoharie,New York,36095,59,0 +2020-07-08,Schoharie,New York,36095,60,0 +2020-07-09,Schoharie,New York,36095,61,0 +2020-03-28,Schuyler,New York,36097,1,0 +2020-03-29,Schuyler,New York,36097,1,0 +2020-03-30,Schuyler,New York,36097,2,0 +2020-03-31,Schuyler,New York,36097,2,0 +2020-04-01,Schuyler,New York,36097,2,0 +2020-04-02,Schuyler,New York,36097,3,0 +2020-04-03,Schuyler,New York,36097,3,0 +2020-04-04,Schuyler,New York,36097,4,0 +2020-04-05,Schuyler,New York,36097,4,0 +2020-04-06,Schuyler,New York,36097,4,0 +2020-04-07,Schuyler,New York,36097,4,0 +2020-04-08,Schuyler,New York,36097,4,0 +2020-04-09,Schuyler,New York,36097,4,0 +2020-04-10,Schuyler,New York,36097,5,0 +2020-04-11,Schuyler,New York,36097,5,0 +2020-04-12,Schuyler,New York,36097,5,0 +2020-04-13,Schuyler,New York,36097,5,0 +2020-04-14,Schuyler,New York,36097,6,0 +2020-04-15,Schuyler,New York,36097,6,0 +2020-04-16,Schuyler,New York,36097,6,0 +2020-04-17,Schuyler,New York,36097,6,0 +2020-04-18,Schuyler,New York,36097,6,0 +2020-04-19,Schuyler,New York,36097,6,0 +2020-04-20,Schuyler,New York,36097,7,0 +2020-04-21,Schuyler,New York,36097,7,0 +2020-04-22,Schuyler,New York,36097,7,0 +2020-04-23,Schuyler,New York,36097,7,0 +2020-04-24,Schuyler,New York,36097,7,0 +2020-04-25,Schuyler,New York,36097,7,0 +2020-04-26,Schuyler,New York,36097,7,0 +2020-04-27,Schuyler,New York,36097,7,0 +2020-04-28,Schuyler,New York,36097,7,0 +2020-04-29,Schuyler,New York,36097,7,0 +2020-04-30,Schuyler,New York,36097,7,0 +2020-05-01,Schuyler,New York,36097,7,0 +2020-05-02,Schuyler,New York,36097,7,0 +2020-05-03,Schuyler,New York,36097,7,0 +2020-05-04,Schuyler,New York,36097,7,0 +2020-05-05,Schuyler,New York,36097,7,0 +2020-05-06,Schuyler,New York,36097,7,0 +2020-05-07,Schuyler,New York,36097,7,0 +2020-05-08,Schuyler,New York,36097,7,0 +2020-05-09,Schuyler,New York,36097,7,0 +2020-05-10,Schuyler,New York,36097,7,0 +2020-05-11,Schuyler,New York,36097,7,0 +2020-05-12,Schuyler,New York,36097,8,0 +2020-05-13,Schuyler,New York,36097,8,0 +2020-05-14,Schuyler,New York,36097,8,0 +2020-05-15,Schuyler,New York,36097,8,0 +2020-05-16,Schuyler,New York,36097,8,0 +2020-05-17,Schuyler,New York,36097,9,0 +2020-05-18,Schuyler,New York,36097,10,0 +2020-05-19,Schuyler,New York,36097,10,0 +2020-05-20,Schuyler,New York,36097,10,0 +2020-05-21,Schuyler,New York,36097,10,0 +2020-05-22,Schuyler,New York,36097,11,0 +2020-05-23,Schuyler,New York,36097,11,0 +2020-05-24,Schuyler,New York,36097,11,0 +2020-05-25,Schuyler,New York,36097,11,0 +2020-05-26,Schuyler,New York,36097,11,0 +2020-05-27,Schuyler,New York,36097,11,0 +2020-05-28,Schuyler,New York,36097,11,0 +2020-05-29,Schuyler,New York,36097,11,0 +2020-05-30,Schuyler,New York,36097,11,0 +2020-05-31,Schuyler,New York,36097,11,0 +2020-06-01,Schuyler,New York,36097,11,0 +2020-06-02,Schuyler,New York,36097,12,0 +2020-06-03,Schuyler,New York,36097,12,0 +2020-06-04,Schuyler,New York,36097,12,0 +2020-06-05,Schuyler,New York,36097,12,0 +2020-06-06,Schuyler,New York,36097,12,0 +2020-06-07,Schuyler,New York,36097,12,0 +2020-06-08,Schuyler,New York,36097,12,0 +2020-06-09,Schuyler,New York,36097,12,0 +2020-06-10,Schuyler,New York,36097,12,0 +2020-06-11,Schuyler,New York,36097,12,0 +2020-06-12,Schuyler,New York,36097,12,0 +2020-06-13,Schuyler,New York,36097,12,0 +2020-06-14,Schuyler,New York,36097,12,0 +2020-06-15,Schuyler,New York,36097,12,0 +2020-06-16,Schuyler,New York,36097,12,0 +2020-06-17,Schuyler,New York,36097,12,0 +2020-06-18,Schuyler,New York,36097,12,0 +2020-06-19,Schuyler,New York,36097,12,0 +2020-06-20,Schuyler,New York,36097,12,0 +2020-06-21,Schuyler,New York,36097,12,0 +2020-06-22,Schuyler,New York,36097,12,0 +2020-06-23,Schuyler,New York,36097,12,0 +2020-06-24,Schuyler,New York,36097,12,0 +2020-06-25,Schuyler,New York,36097,12,0 +2020-06-26,Schuyler,New York,36097,12,0 +2020-06-27,Schuyler,New York,36097,12,0 +2020-06-28,Schuyler,New York,36097,12,0 +2020-06-29,Schuyler,New York,36097,12,0 +2020-06-30,Schuyler,New York,36097,12,0 +2020-07-01,Schuyler,New York,36097,13,0 +2020-07-02,Schuyler,New York,36097,13,0 +2020-07-03,Schuyler,New York,36097,13,0 +2020-07-04,Schuyler,New York,36097,13,0 +2020-07-05,Schuyler,New York,36097,13,0 +2020-07-06,Schuyler,New York,36097,13,0 +2020-07-07,Schuyler,New York,36097,13,0 +2020-07-08,Schuyler,New York,36097,13,0 +2020-07-09,Schuyler,New York,36097,13,0 +2020-03-31,Seneca,New York,36099,2,0 +2020-04-01,Seneca,New York,36099,2,0 +2020-04-02,Seneca,New York,36099,5,0 +2020-04-03,Seneca,New York,36099,5,0 +2020-04-04,Seneca,New York,36099,6,0 +2020-04-05,Seneca,New York,36099,9,0 +2020-04-06,Seneca,New York,36099,9,0 +2020-04-07,Seneca,New York,36099,10,0 +2020-04-08,Seneca,New York,36099,12,0 +2020-04-09,Seneca,New York,36099,15,0 +2020-04-10,Seneca,New York,36099,15,0 +2020-04-11,Seneca,New York,36099,16,0 +2020-04-12,Seneca,New York,36099,16,0 +2020-04-13,Seneca,New York,36099,16,0 +2020-04-14,Seneca,New York,36099,18,1 +2020-04-15,Seneca,New York,36099,18,1 +2020-04-16,Seneca,New York,36099,18,1 +2020-04-17,Seneca,New York,36099,18,1 +2020-04-18,Seneca,New York,36099,18,1 +2020-04-19,Seneca,New York,36099,18,1 +2020-04-20,Seneca,New York,36099,18,1 +2020-04-21,Seneca,New York,36099,18,1 +2020-04-22,Seneca,New York,36099,18,1 +2020-04-23,Seneca,New York,36099,18,1 +2020-04-24,Seneca,New York,36099,18,1 +2020-04-25,Seneca,New York,36099,36,1 +2020-04-26,Seneca,New York,36099,38,1 +2020-04-27,Seneca,New York,36099,38,1 +2020-04-28,Seneca,New York,36099,38,1 +2020-04-29,Seneca,New York,36099,38,1 +2020-04-30,Seneca,New York,36099,39,1 +2020-05-01,Seneca,New York,36099,41,1 +2020-05-02,Seneca,New York,36099,42,1 +2020-05-03,Seneca,New York,36099,45,1 +2020-05-04,Seneca,New York,36099,45,1 +2020-05-05,Seneca,New York,36099,46,1 +2020-05-06,Seneca,New York,36099,46,0 +2020-05-07,Seneca,New York,36099,46,0 +2020-05-08,Seneca,New York,36099,46,0 +2020-05-09,Seneca,New York,36099,48,0 +2020-05-10,Seneca,New York,36099,49,0 +2020-05-11,Seneca,New York,36099,49,0 +2020-05-12,Seneca,New York,36099,49,0 +2020-05-13,Seneca,New York,36099,49,0 +2020-05-14,Seneca,New York,36099,49,0 +2020-05-15,Seneca,New York,36099,49,0 +2020-05-16,Seneca,New York,36099,50,0 +2020-05-17,Seneca,New York,36099,51,0 +2020-05-18,Seneca,New York,36099,51,0 +2020-05-19,Seneca,New York,36099,51,0 +2020-05-20,Seneca,New York,36099,52,0 +2020-05-21,Seneca,New York,36099,52,0 +2020-05-22,Seneca,New York,36099,54,0 +2020-05-23,Seneca,New York,36099,54,0 +2020-05-24,Seneca,New York,36099,55,0 +2020-05-25,Seneca,New York,36099,55,0 +2020-05-26,Seneca,New York,36099,55,0 +2020-05-27,Seneca,New York,36099,55,0 +2020-05-28,Seneca,New York,36099,56,0 +2020-05-29,Seneca,New York,36099,57,0 +2020-05-30,Seneca,New York,36099,58,0 +2020-05-31,Seneca,New York,36099,58,0 +2020-06-01,Seneca,New York,36099,59,0 +2020-06-02,Seneca,New York,36099,59,0 +2020-06-03,Seneca,New York,36099,60,0 +2020-06-04,Seneca,New York,36099,60,0 +2020-06-05,Seneca,New York,36099,61,0 +2020-06-06,Seneca,New York,36099,61,0 +2020-06-07,Seneca,New York,36099,61,0 +2020-06-08,Seneca,New York,36099,61,0 +2020-06-09,Seneca,New York,36099,61,0 +2020-06-10,Seneca,New York,36099,61,0 +2020-06-11,Seneca,New York,36099,62,0 +2020-06-12,Seneca,New York,36099,63,0 +2020-06-13,Seneca,New York,36099,63,0 +2020-06-14,Seneca,New York,36099,63,0 +2020-06-15,Seneca,New York,36099,64,0 +2020-06-16,Seneca,New York,36099,64,0 +2020-06-17,Seneca,New York,36099,64,0 +2020-06-18,Seneca,New York,36099,64,0 +2020-06-19,Seneca,New York,36099,64,0 +2020-06-20,Seneca,New York,36099,64,0 +2020-06-21,Seneca,New York,36099,64,0 +2020-06-22,Seneca,New York,36099,64,0 +2020-06-23,Seneca,New York,36099,64,0 +2020-06-24,Seneca,New York,36099,64,0 +2020-06-25,Seneca,New York,36099,66,0 +2020-06-26,Seneca,New York,36099,69,0 +2020-06-27,Seneca,New York,36099,69,0 +2020-06-28,Seneca,New York,36099,69,0 +2020-06-29,Seneca,New York,36099,69,0 +2020-06-30,Seneca,New York,36099,69,0 +2020-07-01,Seneca,New York,36099,70,0 +2020-07-02,Seneca,New York,36099,70,0 +2020-07-03,Seneca,New York,36099,70,0 +2020-07-04,Seneca,New York,36099,70,0 +2020-07-05,Seneca,New York,36099,71,0 +2020-07-06,Seneca,New York,36099,71,0 +2020-07-07,Seneca,New York,36099,71,0 +2020-07-08,Seneca,New York,36099,71,0 +2020-07-09,Seneca,New York,36099,73,0 +2020-03-21,Steuben,New York,36101,2,0 +2020-03-22,Steuben,New York,36101,3,0 +2020-03-23,Steuben,New York,36101,4,0 +2020-03-24,Steuben,New York,36101,5,0 +2020-03-25,Steuben,New York,36101,8,0 +2020-03-26,Steuben,New York,36101,11,0 +2020-03-27,Steuben,New York,36101,12,0 +2020-03-28,Steuben,New York,36101,13,0 +2020-03-29,Steuben,New York,36101,17,0 +2020-03-30,Steuben,New York,36101,19,0 +2020-03-31,Steuben,New York,36101,24,0 +2020-04-01,Steuben,New York,36101,38,0 +2020-04-02,Steuben,New York,36101,49,1 +2020-04-03,Steuben,New York,36101,49,1 +2020-04-04,Steuben,New York,36101,64,1 +2020-04-05,Steuben,New York,36101,64,1 +2020-04-06,Steuben,New York,36101,73,4 +2020-04-07,Steuben,New York,36101,79,4 +2020-04-08,Steuben,New York,36101,82,3 +2020-04-09,Steuben,New York,36101,89,3 +2020-04-10,Steuben,New York,36101,117,3 +2020-04-11,Steuben,New York,36101,119,3 +2020-04-12,Steuben,New York,36101,121,4 +2020-04-13,Steuben,New York,36101,123,5 +2020-04-14,Steuben,New York,36101,147,5 +2020-04-15,Steuben,New York,36101,151,5 +2020-04-16,Steuben,New York,36101,154,5 +2020-04-17,Steuben,New York,36101,154,5 +2020-04-18,Steuben,New York,36101,160,5 +2020-04-19,Steuben,New York,36101,167,7 +2020-04-20,Steuben,New York,36101,167,9 +2020-04-21,Steuben,New York,36101,170,9 +2020-04-22,Steuben,New York,36101,171,9 +2020-04-23,Steuben,New York,36101,171,9 +2020-04-24,Steuben,New York,36101,171,10 +2020-04-25,Steuben,New York,36101,204,10 +2020-04-26,Steuben,New York,36101,207,10 +2020-04-27,Steuben,New York,36101,209,10 +2020-04-28,Steuben,New York,36101,210,11 +2020-04-29,Steuben,New York,36101,214,11 +2020-04-30,Steuben,New York,36101,216,11 +2020-05-01,Steuben,New York,36101,216,11 +2020-05-02,Steuben,New York,36101,217,11 +2020-05-03,Steuben,New York,36101,218,11 +2020-05-04,Steuben,New York,36101,219,11 +2020-05-05,Steuben,New York,36101,221,11 +2020-05-06,Steuben,New York,36101,223,16 +2020-05-07,Steuben,New York,36101,224,16 +2020-05-08,Steuben,New York,36101,225,16 +2020-05-09,Steuben,New York,36101,226,16 +2020-05-10,Steuben,New York,36101,227,16 +2020-05-11,Steuben,New York,36101,228,16 +2020-05-12,Steuben,New York,36101,229,16 +2020-05-13,Steuben,New York,36101,230,16 +2020-05-14,Steuben,New York,36101,230,16 +2020-05-15,Steuben,New York,36101,231,17 +2020-05-16,Steuben,New York,36101,233,18 +2020-05-17,Steuben,New York,36101,234,18 +2020-05-18,Steuben,New York,36101,235,18 +2020-05-19,Steuben,New York,36101,236,18 +2020-05-20,Steuben,New York,36101,237,18 +2020-05-21,Steuben,New York,36101,238,18 +2020-05-22,Steuben,New York,36101,240,18 +2020-05-23,Steuben,New York,36101,240,18 +2020-05-24,Steuben,New York,36101,240,18 +2020-05-25,Steuben,New York,36101,240,18 +2020-05-26,Steuben,New York,36101,240,18 +2020-05-27,Steuben,New York,36101,241,18 +2020-05-28,Steuben,New York,36101,241,18 +2020-05-29,Steuben,New York,36101,241,18 +2020-05-30,Steuben,New York,36101,241,18 +2020-05-31,Steuben,New York,36101,241,18 +2020-06-01,Steuben,New York,36101,241,18 +2020-06-02,Steuben,New York,36101,242,19 +2020-06-03,Steuben,New York,36101,243,19 +2020-06-04,Steuben,New York,36101,245,19 +2020-06-05,Steuben,New York,36101,246,19 +2020-06-06,Steuben,New York,36101,251,19 +2020-06-07,Steuben,New York,36101,251,19 +2020-06-08,Steuben,New York,36101,251,19 +2020-06-09,Steuben,New York,36101,252,19 +2020-06-10,Steuben,New York,36101,253,19 +2020-06-11,Steuben,New York,36101,254,19 +2020-06-12,Steuben,New York,36101,254,19 +2020-06-13,Steuben,New York,36101,255,19 +2020-06-14,Steuben,New York,36101,255,19 +2020-06-15,Steuben,New York,36101,256,19 +2020-06-16,Steuben,New York,36101,257,19 +2020-06-17,Steuben,New York,36101,257,19 +2020-06-18,Steuben,New York,36101,257,19 +2020-06-19,Steuben,New York,36101,257,19 +2020-06-20,Steuben,New York,36101,261,19 +2020-06-21,Steuben,New York,36101,261,19 +2020-06-22,Steuben,New York,36101,263,19 +2020-06-23,Steuben,New York,36101,263,19 +2020-06-24,Steuben,New York,36101,263,19 +2020-06-25,Steuben,New York,36101,264,19 +2020-06-26,Steuben,New York,36101,264,19 +2020-06-27,Steuben,New York,36101,264,19 +2020-06-28,Steuben,New York,36101,266,19 +2020-06-29,Steuben,New York,36101,266,19 +2020-06-30,Steuben,New York,36101,266,19 +2020-07-01,Steuben,New York,36101,268,19 +2020-07-02,Steuben,New York,36101,268,19 +2020-07-03,Steuben,New York,36101,268,19 +2020-07-04,Steuben,New York,36101,269,19 +2020-07-05,Steuben,New York,36101,270,19 +2020-07-06,Steuben,New York,36101,271,19 +2020-07-07,Steuben,New York,36101,271,19 +2020-07-08,Steuben,New York,36101,271,19 +2020-07-09,Steuben,New York,36101,272,19 +2020-03-08,Suffolk,New York,36103,1,0 +2020-03-09,Suffolk,New York,36103,1,0 +2020-03-10,Suffolk,New York,36103,1,0 +2020-03-11,Suffolk,New York,36103,6,0 +2020-03-12,Suffolk,New York,36103,21,0 +2020-03-13,Suffolk,New York,36103,29,0 +2020-03-14,Suffolk,New York,36103,41,0 +2020-03-15,Suffolk,New York,36103,47,0 +2020-03-16,Suffolk,New York,36103,63,2 +2020-03-17,Suffolk,New York,36103,84,3 +2020-03-18,Suffolk,New York,36103,116,3 +2020-03-19,Suffolk,New York,36103,178,3 +2020-03-20,Suffolk,New York,36103,371,7 +2020-03-21,Suffolk,New York,36103,662,9 +2020-03-22,Suffolk,New York,36103,1034,12 +2020-03-23,Suffolk,New York,36103,1458,13 +2020-03-24,Suffolk,New York,36103,1880,13 +2020-03-25,Suffolk,New York,36103,2260,20 +2020-03-26,Suffolk,New York,36103,2735,22 +2020-03-27,Suffolk,New York,36103,3385,22 +2020-03-28,Suffolk,New York,36103,4138,37 +2020-03-29,Suffolk,New York,36103,5023,40 +2020-03-30,Suffolk,New York,36103,5791,44 +2020-03-31,Suffolk,New York,36103,6713,53 +2020-04-01,Suffolk,New York,36103,7605,69 +2020-04-02,Suffolk,New York,36103,8746,84 +2020-04-03,Suffolk,New York,36103,10154,96 +2020-04-04,Suffolk,New York,36103,12328,175 +2020-04-05,Suffolk,New York,36103,12933,175 +2020-04-06,Suffolk,New York,36103,14473,237 +2020-04-07,Suffolk,New York,36103,15561,266 +2020-04-08,Suffolk,New York,36103,15844,328 +2020-04-09,Suffolk,New York,36103,17413,369 +2020-04-10,Suffolk,New York,36103,18692,425 +2020-04-11,Suffolk,New York,36103,19883,469 +2020-04-12,Suffolk,New York,36103,20816,529 +2020-04-13,Suffolk,New York,36103,21643,580 +2020-04-14,Suffolk,New York,36103,22462,617 +2020-04-15,Suffolk,New York,36103,23278,663 +2020-04-16,Suffolk,New York,36103,24182,706 +2020-04-17,Suffolk,New York,36103,25035,706 +2020-04-18,Suffolk,New York,36103,26143,706 +2020-04-19,Suffolk,New York,36103,26888,845 +2020-04-20,Suffolk,New York,36103,27662,887 +2020-04-21,Suffolk,New York,36103,28154,918 +2020-04-22,Suffolk,New York,36103,28854,959 +2020-04-23,Suffolk,New York,36103,29567,994 +2020-04-24,Suffolk,New York,36103,30606,1035 +2020-04-25,Suffolk,New York,36103,31368,1085 +2020-04-26,Suffolk,New York,36103,32059,1115 +2020-04-27,Suffolk,New York,36103,32470,1147 +2020-04-28,Suffolk,New York,36103,32724,1179 +2020-04-29,Suffolk,New York,36103,33265,1205 +2020-04-30,Suffolk,New York,36103,33664,1228 +2020-05-01,Suffolk,New York,36103,34037,1252 +2020-05-02,Suffolk,New York,36103,34478,1277 +2020-05-03,Suffolk,New York,36103,34855,1309 +2020-05-04,Suffolk,New York,36103,35077,1325 +2020-05-05,Suffolk,New York,36103,35275,1347 +2020-05-06,Suffolk,New York,36103,35543,1574 +2020-05-07,Suffolk,New York,36103,35892,1599 +2020-05-08,Suffolk,New York,36103,36223,1616 +2020-05-09,Suffolk,New York,36103,36461,1647 +2020-05-10,Suffolk,New York,36103,36702,1667 +2020-05-11,Suffolk,New York,36103,36911,1689 +2020-05-12,Suffolk,New York,36103,37062,1704 +2020-05-13,Suffolk,New York,36103,37305,1729 +2020-05-14,Suffolk,New York,36103,37544,1745 +2020-05-15,Suffolk,New York,36103,37719,1757 +2020-05-16,Suffolk,New York,36103,37942,1783 +2020-05-17,Suffolk,New York,36103,38117,1799 +2020-05-18,Suffolk,New York,36103,38224,1804 +2020-05-19,Suffolk,New York,36103,38327,1822 +2020-05-20,Suffolk,New York,36103,38411,1840 +2020-05-21,Suffolk,New York,36103,38553,1851 +2020-05-22,Suffolk,New York,36103,38672,1863 +2020-05-23,Suffolk,New York,36103,38802,1871 +2020-05-24,Suffolk,New York,36103,38964,1883 +2020-05-25,Suffolk,New York,36103,39090,1888 +2020-05-26,Suffolk,New York,36103,39199,1900 +2020-05-27,Suffolk,New York,36103,39258,1910 +2020-05-28,Suffolk,New York,36103,39359,1920 +2020-05-29,Suffolk,New York,36103,39445,1928 +2020-05-30,Suffolk,New York,36103,39532,1941 +2020-05-31,Suffolk,New York,36103,39643,1949 +2020-06-01,Suffolk,New York,36103,39705,1954 +2020-06-02,Suffolk,New York,36103,39980,1957 +2020-06-03,Suffolk,New York,36103,40062,1963 +2020-06-04,Suffolk,New York,36103,40153,1963 +2020-06-05,Suffolk,New York,36103,40239,1965 +2020-06-06,Suffolk,New York,36103,40278,1970 +2020-06-07,Suffolk,New York,36103,40329,1978 +2020-06-08,Suffolk,New York,36103,40377,1983 +2020-06-09,Suffolk,New York,36103,40426,1988 +2020-06-10,Suffolk,New York,36103,40464,1990 +2020-06-11,Suffolk,New York,36103,40512,1994 +2020-06-12,Suffolk,New York,36103,40559,1994 +2020-06-13,Suffolk,New York,36103,40615,1996 +2020-06-14,Suffolk,New York,36103,40659,1997 +2020-06-15,Suffolk,New York,36103,40692,2004 +2020-06-16,Suffolk,New York,36103,40738,2005 +2020-06-17,Suffolk,New York,36103,40770,2006 +2020-06-18,Suffolk,New York,36103,40810,2010 +2020-06-19,Suffolk,New York,36103,40864,2011 +2020-06-20,Suffolk,New York,36103,40908,2012 +2020-06-21,Suffolk,New York,36103,40972,2013 +2020-06-22,Suffolk,New York,36103,41010,2014 +2020-06-23,Suffolk,New York,36103,41056,2018 +2020-06-24,Suffolk,New York,36103,41101,2020 +2020-06-25,Suffolk,New York,36103,41151,2022 +2020-06-26,Suffolk,New York,36103,41208,2022 +2020-06-27,Suffolk,New York,36103,41253,2025 +2020-06-28,Suffolk,New York,36103,41306,2026 +2020-06-29,Suffolk,New York,36103,41339,2026 +2020-06-30,Suffolk,New York,36103,41385,2028 +2020-07-01,Suffolk,New York,36103,41427,2028 +2020-07-02,Suffolk,New York,36103,41491,2028 +2020-07-03,Suffolk,New York,36103,41538,2029 +2020-07-04,Suffolk,New York,36103,41585,2029 +2020-07-05,Suffolk,New York,36103,41642,2029 +2020-07-06,Suffolk,New York,36103,41685,2030 +2020-07-07,Suffolk,New York,36103,41730,2031 +2020-07-08,Suffolk,New York,36103,41799,2030 +2020-07-09,Suffolk,New York,36103,41849,2037 +2020-03-17,Sullivan,New York,36105,1,0 +2020-03-18,Sullivan,New York,36105,1,0 +2020-03-19,Sullivan,New York,36105,8,0 +2020-03-20,Sullivan,New York,36105,8,0 +2020-03-21,Sullivan,New York,36105,12,0 +2020-03-22,Sullivan,New York,36105,16,0 +2020-03-23,Sullivan,New York,36105,23,0 +2020-03-24,Sullivan,New York,36105,30,0 +2020-03-25,Sullivan,New York,36105,39,0 +2020-03-26,Sullivan,New York,36105,53,0 +2020-03-27,Sullivan,New York,36105,64,0 +2020-03-28,Sullivan,New York,36105,72,0 +2020-03-29,Sullivan,New York,36105,88,0 +2020-03-30,Sullivan,New York,36105,101,0 +2020-03-31,Sullivan,New York,36105,109,1 +2020-04-01,Sullivan,New York,36105,121,4 +2020-04-02,Sullivan,New York,36105,156,5 +2020-04-03,Sullivan,New York,36105,156,5 +2020-04-04,Sullivan,New York,36105,193,5 +2020-04-05,Sullivan,New York,36105,234,5 +2020-04-06,Sullivan,New York,36105,259,7 +2020-04-07,Sullivan,New York,36105,270,7 +2020-04-08,Sullivan,New York,36105,279,7 +2020-04-09,Sullivan,New York,36105,294,7 +2020-04-10,Sullivan,New York,36105,318,7 +2020-04-11,Sullivan,New York,36105,340,7 +2020-04-12,Sullivan,New York,36105,358,7 +2020-04-13,Sullivan,New York,36105,380,7 +2020-04-14,Sullivan,New York,36105,415,7 +2020-04-15,Sullivan,New York,36105,424,7 +2020-04-16,Sullivan,New York,36105,437,7 +2020-04-17,Sullivan,New York,36105,505,7 +2020-04-18,Sullivan,New York,36105,524,7 +2020-04-19,Sullivan,New York,36105,537,8 +2020-04-20,Sullivan,New York,36105,544,8 +2020-04-21,Sullivan,New York,36105,555,8 +2020-04-22,Sullivan,New York,36105,561,8 +2020-04-23,Sullivan,New York,36105,580,8 +2020-04-24,Sullivan,New York,36105,628,9 +2020-04-25,Sullivan,New York,36105,689,9 +2020-04-26,Sullivan,New York,36105,724,10 +2020-04-27,Sullivan,New York,36105,748,11 +2020-04-28,Sullivan,New York,36105,769,12 +2020-04-29,Sullivan,New York,36105,811,12 +2020-04-30,Sullivan,New York,36105,838,12 +2020-05-01,Sullivan,New York,36105,880,12 +2020-05-02,Sullivan,New York,36105,931,12 +2020-05-03,Sullivan,New York,36105,951,13 +2020-05-04,Sullivan,New York,36105,976,13 +2020-05-05,Sullivan,New York,36105,984,13 +2020-05-06,Sullivan,New York,36105,996,20 +2020-05-07,Sullivan,New York,36105,1021,20 +2020-05-08,Sullivan,New York,36105,1039,20 +2020-05-09,Sullivan,New York,36105,1071,20 +2020-05-10,Sullivan,New York,36105,1093,22 +2020-05-11,Sullivan,New York,36105,1109,22 +2020-05-12,Sullivan,New York,36105,1119,24 +2020-05-13,Sullivan,New York,36105,1135,24 +2020-05-14,Sullivan,New York,36105,1168,24 +2020-05-15,Sullivan,New York,36105,1189,24 +2020-05-16,Sullivan,New York,36105,1217,24 +2020-05-17,Sullivan,New York,36105,1231,24 +2020-05-18,Sullivan,New York,36105,1246,24 +2020-05-19,Sullivan,New York,36105,1258,24 +2020-05-20,Sullivan,New York,36105,1267,24 +2020-05-21,Sullivan,New York,36105,1281,24 +2020-05-22,Sullivan,New York,36105,1287,24 +2020-05-23,Sullivan,New York,36105,1297,24 +2020-05-24,Sullivan,New York,36105,1310,26 +2020-05-25,Sullivan,New York,36105,1324,26 +2020-05-26,Sullivan,New York,36105,1338,27 +2020-05-27,Sullivan,New York,36105,1340,27 +2020-05-28,Sullivan,New York,36105,1351,27 +2020-05-29,Sullivan,New York,36105,1364,28 +2020-05-30,Sullivan,New York,36105,1375,28 +2020-05-31,Sullivan,New York,36105,1387,29 +2020-06-01,Sullivan,New York,36105,1389,29 +2020-06-02,Sullivan,New York,36105,1392,29 +2020-06-03,Sullivan,New York,36105,1393,29 +2020-06-04,Sullivan,New York,36105,1405,29 +2020-06-05,Sullivan,New York,36105,1409,31 +2020-06-06,Sullivan,New York,36105,1411,31 +2020-06-07,Sullivan,New York,36105,1415,31 +2020-06-08,Sullivan,New York,36105,1417,31 +2020-06-09,Sullivan,New York,36105,1418,31 +2020-06-10,Sullivan,New York,36105,1425,31 +2020-06-11,Sullivan,New York,36105,1426,31 +2020-06-12,Sullivan,New York,36105,1428,31 +2020-06-13,Sullivan,New York,36105,1430,31 +2020-06-14,Sullivan,New York,36105,1430,31 +2020-06-15,Sullivan,New York,36105,1432,31 +2020-06-16,Sullivan,New York,36105,1433,31 +2020-06-17,Sullivan,New York,36105,1433,31 +2020-06-18,Sullivan,New York,36105,1434,31 +2020-06-19,Sullivan,New York,36105,1434,31 +2020-06-20,Sullivan,New York,36105,1435,31 +2020-06-21,Sullivan,New York,36105,1437,31 +2020-06-22,Sullivan,New York,36105,1438,31 +2020-06-23,Sullivan,New York,36105,1440,31 +2020-06-24,Sullivan,New York,36105,1447,31 +2020-06-25,Sullivan,New York,36105,1448,31 +2020-06-26,Sullivan,New York,36105,1449,31 +2020-06-27,Sullivan,New York,36105,1451,31 +2020-06-28,Sullivan,New York,36105,1451,31 +2020-06-29,Sullivan,New York,36105,1451,31 +2020-06-30,Sullivan,New York,36105,1451,31 +2020-07-01,Sullivan,New York,36105,1452,31 +2020-07-02,Sullivan,New York,36105,1453,31 +2020-07-03,Sullivan,New York,36105,1455,31 +2020-07-04,Sullivan,New York,36105,1456,31 +2020-07-05,Sullivan,New York,36105,1456,31 +2020-07-06,Sullivan,New York,36105,1457,31 +2020-07-07,Sullivan,New York,36105,1459,31 +2020-07-08,Sullivan,New York,36105,1460,31 +2020-07-09,Sullivan,New York,36105,1460,31 +2020-03-14,Tioga,New York,36107,1,0 +2020-03-15,Tioga,New York,36107,1,0 +2020-03-16,Tioga,New York,36107,1,0 +2020-03-17,Tioga,New York,36107,1,0 +2020-03-18,Tioga,New York,36107,1,0 +2020-03-19,Tioga,New York,36107,1,0 +2020-03-20,Tioga,New York,36107,1,0 +2020-03-21,Tioga,New York,36107,1,0 +2020-03-22,Tioga,New York,36107,1,0 +2020-03-23,Tioga,New York,36107,1,0 +2020-03-24,Tioga,New York,36107,1,0 +2020-03-25,Tioga,New York,36107,1,0 +2020-03-26,Tioga,New York,36107,2,0 +2020-03-27,Tioga,New York,36107,2,0 +2020-03-28,Tioga,New York,36107,4,0 +2020-03-29,Tioga,New York,36107,4,0 +2020-03-30,Tioga,New York,36107,4,0 +2020-03-31,Tioga,New York,36107,7,0 +2020-04-01,Tioga,New York,36107,7,0 +2020-04-02,Tioga,New York,36107,8,0 +2020-04-03,Tioga,New York,36107,8,0 +2020-04-04,Tioga,New York,36107,8,0 +2020-04-05,Tioga,New York,36107,8,0 +2020-04-06,Tioga,New York,36107,9,0 +2020-04-07,Tioga,New York,36107,10,0 +2020-04-08,Tioga,New York,36107,12,0 +2020-04-09,Tioga,New York,36107,17,0 +2020-04-10,Tioga,New York,36107,18,0 +2020-04-11,Tioga,New York,36107,19,0 +2020-04-12,Tioga,New York,36107,19,0 +2020-04-13,Tioga,New York,36107,20,0 +2020-04-14,Tioga,New York,36107,24,0 +2020-04-15,Tioga,New York,36107,25,0 +2020-04-16,Tioga,New York,36107,27,0 +2020-04-17,Tioga,New York,36107,30,0 +2020-04-18,Tioga,New York,36107,32,0 +2020-04-19,Tioga,New York,36107,35,1 +2020-04-20,Tioga,New York,36107,37,1 +2020-04-21,Tioga,New York,36107,37,2 +2020-04-22,Tioga,New York,36107,39,2 +2020-04-23,Tioga,New York,36107,40,2 +2020-04-24,Tioga,New York,36107,40,2 +2020-04-25,Tioga,New York,36107,71,3 +2020-04-26,Tioga,New York,36107,71,3 +2020-04-27,Tioga,New York,36107,71,3 +2020-04-28,Tioga,New York,36107,82,4 +2020-04-29,Tioga,New York,36107,84,5 +2020-04-30,Tioga,New York,36107,88,6 +2020-05-01,Tioga,New York,36107,90,6 +2020-05-02,Tioga,New York,36107,90,6 +2020-05-03,Tioga,New York,36107,90,8 +2020-05-04,Tioga,New York,36107,90,8 +2020-05-05,Tioga,New York,36107,92,8 +2020-05-06,Tioga,New York,36107,96,12 +2020-05-07,Tioga,New York,36107,97,12 +2020-05-08,Tioga,New York,36107,99,12 +2020-05-09,Tioga,New York,36107,104,12 +2020-05-10,Tioga,New York,36107,105,14 +2020-05-11,Tioga,New York,36107,107,14 +2020-05-12,Tioga,New York,36107,107,15 +2020-05-13,Tioga,New York,36107,108,16 +2020-05-14,Tioga,New York,36107,108,16 +2020-05-15,Tioga,New York,36107,110,16 +2020-05-16,Tioga,New York,36107,112,16 +2020-05-17,Tioga,New York,36107,113,16 +2020-05-18,Tioga,New York,36107,113,16 +2020-05-19,Tioga,New York,36107,113,16 +2020-05-20,Tioga,New York,36107,114,16 +2020-05-21,Tioga,New York,36107,117,16 +2020-05-22,Tioga,New York,36107,118,17 +2020-05-23,Tioga,New York,36107,121,18 +2020-05-24,Tioga,New York,36107,122,18 +2020-05-25,Tioga,New York,36107,122,18 +2020-05-26,Tioga,New York,36107,122,18 +2020-05-27,Tioga,New York,36107,124,18 +2020-05-28,Tioga,New York,36107,126,18 +2020-05-29,Tioga,New York,36107,126,17 +2020-05-30,Tioga,New York,36107,128,17 +2020-05-31,Tioga,New York,36107,130,17 +2020-06-01,Tioga,New York,36107,130,17 +2020-06-02,Tioga,New York,36107,131,17 +2020-06-03,Tioga,New York,36107,133,17 +2020-06-04,Tioga,New York,36107,133,17 +2020-06-05,Tioga,New York,36107,134,18 +2020-06-06,Tioga,New York,36107,134,18 +2020-06-07,Tioga,New York,36107,134,18 +2020-06-08,Tioga,New York,36107,134,18 +2020-06-09,Tioga,New York,36107,134,18 +2020-06-10,Tioga,New York,36107,135,18 +2020-06-11,Tioga,New York,36107,135,18 +2020-06-12,Tioga,New York,36107,137,18 +2020-06-13,Tioga,New York,36107,137,18 +2020-06-14,Tioga,New York,36107,139,18 +2020-06-15,Tioga,New York,36107,139,18 +2020-06-16,Tioga,New York,36107,140,18 +2020-06-17,Tioga,New York,36107,140,18 +2020-06-18,Tioga,New York,36107,140,18 +2020-06-19,Tioga,New York,36107,140,18 +2020-06-20,Tioga,New York,36107,140,18 +2020-06-21,Tioga,New York,36107,140,18 +2020-06-22,Tioga,New York,36107,140,18 +2020-06-23,Tioga,New York,36107,141,18 +2020-06-24,Tioga,New York,36107,141,18 +2020-06-25,Tioga,New York,36107,141,18 +2020-06-26,Tioga,New York,36107,141,18 +2020-06-27,Tioga,New York,36107,142,18 +2020-06-28,Tioga,New York,36107,142,18 +2020-06-29,Tioga,New York,36107,142,18 +2020-06-30,Tioga,New York,36107,143,18 +2020-07-01,Tioga,New York,36107,143,18 +2020-07-02,Tioga,New York,36107,143,18 +2020-07-03,Tioga,New York,36107,143,18 +2020-07-04,Tioga,New York,36107,145,18 +2020-07-05,Tioga,New York,36107,146,18 +2020-07-06,Tioga,New York,36107,148,18 +2020-07-07,Tioga,New York,36107,150,18 +2020-07-08,Tioga,New York,36107,150,19 +2020-07-09,Tioga,New York,36107,151,19 +2020-03-14,Tompkins,New York,36109,1,0 +2020-03-15,Tompkins,New York,36109,1,0 +2020-03-16,Tompkins,New York,36109,1,0 +2020-03-17,Tompkins,New York,36109,1,0 +2020-03-18,Tompkins,New York,36109,2,0 +2020-03-19,Tompkins,New York,36109,7,0 +2020-03-20,Tompkins,New York,36109,7,0 +2020-03-21,Tompkins,New York,36109,11,0 +2020-03-22,Tompkins,New York,36109,13,0 +2020-03-23,Tompkins,New York,36109,15,0 +2020-03-24,Tompkins,New York,36109,16,0 +2020-03-25,Tompkins,New York,36109,16,0 +2020-03-26,Tompkins,New York,36109,22,0 +2020-03-27,Tompkins,New York,36109,26,0 +2020-03-28,Tompkins,New York,36109,45,0 +2020-03-29,Tompkins,New York,36109,52,0 +2020-03-30,Tompkins,New York,36109,66,0 +2020-03-31,Tompkins,New York,36109,66,0 +2020-04-01,Tompkins,New York,36109,68,0 +2020-04-02,Tompkins,New York,36109,87,0 +2020-04-03,Tompkins,New York,36109,87,0 +2020-04-04,Tompkins,New York,36109,87,0 +2020-04-05,Tompkins,New York,36109,95,0 +2020-04-06,Tompkins,New York,36109,98,0 +2020-04-07,Tompkins,New York,36109,102,0 +2020-04-08,Tompkins,New York,36109,102,0 +2020-04-09,Tompkins,New York,36109,105,0 +2020-04-10,Tompkins,New York,36109,105,0 +2020-04-11,Tompkins,New York,36109,108,0 +2020-04-12,Tompkins,New York,36109,109,2 +2020-04-13,Tompkins,New York,36109,110,2 +2020-04-14,Tompkins,New York,36109,112,2 +2020-04-15,Tompkins,New York,36109,115,2 +2020-04-16,Tompkins,New York,36109,116,2 +2020-04-17,Tompkins,New York,36109,117,2 +2020-04-18,Tompkins,New York,36109,117,2 +2020-04-19,Tompkins,New York,36109,117,2 +2020-04-20,Tompkins,New York,36109,119,2 +2020-04-21,Tompkins,New York,36109,119,2 +2020-04-22,Tompkins,New York,36109,119,2 +2020-04-23,Tompkins,New York,36109,119,2 +2020-04-24,Tompkins,New York,36109,121,2 +2020-04-25,Tompkins,New York,36109,126,2 +2020-04-26,Tompkins,New York,36109,126,2 +2020-04-27,Tompkins,New York,36109,126,2 +2020-04-28,Tompkins,New York,36109,126,2 +2020-04-29,Tompkins,New York,36109,127,2 +2020-04-30,Tompkins,New York,36109,128,2 +2020-05-01,Tompkins,New York,36109,128,2 +2020-05-02,Tompkins,New York,36109,128,2 +2020-05-03,Tompkins,New York,36109,129,2 +2020-05-04,Tompkins,New York,36109,129,2 +2020-05-05,Tompkins,New York,36109,129,2 +2020-05-06,Tompkins,New York,36109,129,2 +2020-05-07,Tompkins,New York,36109,130,2 +2020-05-08,Tompkins,New York,36109,131,2 +2020-05-09,Tompkins,New York,36109,132,2 +2020-05-10,Tompkins,New York,36109,132,2 +2020-05-11,Tompkins,New York,36109,132,2 +2020-05-12,Tompkins,New York,36109,132,2 +2020-05-13,Tompkins,New York,36109,136,2 +2020-05-14,Tompkins,New York,36109,136,2 +2020-05-15,Tompkins,New York,36109,136,2 +2020-05-16,Tompkins,New York,36109,138,2 +2020-05-17,Tompkins,New York,36109,139,2 +2020-05-18,Tompkins,New York,36109,141,2 +2020-05-19,Tompkins,New York,36109,142,2 +2020-05-20,Tompkins,New York,36109,145,2 +2020-05-21,Tompkins,New York,36109,145,2 +2020-05-22,Tompkins,New York,36109,147,2 +2020-05-23,Tompkins,New York,36109,149,2 +2020-05-24,Tompkins,New York,36109,151,2 +2020-05-25,Tompkins,New York,36109,154,2 +2020-05-26,Tompkins,New York,36109,154,2 +2020-05-27,Tompkins,New York,36109,155,2 +2020-05-28,Tompkins,New York,36109,156,2 +2020-05-29,Tompkins,New York,36109,157,2 +2020-05-30,Tompkins,New York,36109,161,2 +2020-05-31,Tompkins,New York,36109,164,2 +2020-06-01,Tompkins,New York,36109,164,2 +2020-06-02,Tompkins,New York,36109,164,2 +2020-06-03,Tompkins,New York,36109,165,2 +2020-06-04,Tompkins,New York,36109,165,2 +2020-06-05,Tompkins,New York,36109,167,2 +2020-06-06,Tompkins,New York,36109,171,2 +2020-06-07,Tompkins,New York,36109,171,2 +2020-06-08,Tompkins,New York,36109,171,2 +2020-06-09,Tompkins,New York,36109,171,2 +2020-06-10,Tompkins,New York,36109,171,2 +2020-06-11,Tompkins,New York,36109,171,2 +2020-06-12,Tompkins,New York,36109,172,2 +2020-06-13,Tompkins,New York,36109,173,2 +2020-06-14,Tompkins,New York,36109,173,2 +2020-06-15,Tompkins,New York,36109,173,2 +2020-06-16,Tompkins,New York,36109,173,2 +2020-06-17,Tompkins,New York,36109,173,2 +2020-06-18,Tompkins,New York,36109,173,2 +2020-06-19,Tompkins,New York,36109,173,2 +2020-06-20,Tompkins,New York,36109,174,2 +2020-06-21,Tompkins,New York,36109,175,2 +2020-06-22,Tompkins,New York,36109,175,2 +2020-06-23,Tompkins,New York,36109,175,2 +2020-06-24,Tompkins,New York,36109,175,2 +2020-06-25,Tompkins,New York,36109,175,2 +2020-06-26,Tompkins,New York,36109,175,2 +2020-06-27,Tompkins,New York,36109,175,2 +2020-06-28,Tompkins,New York,36109,176,2 +2020-06-29,Tompkins,New York,36109,177,2 +2020-06-30,Tompkins,New York,36109,177,2 +2020-07-01,Tompkins,New York,36109,177,2 +2020-07-02,Tompkins,New York,36109,178,2 +2020-07-03,Tompkins,New York,36109,178,2 +2020-07-04,Tompkins,New York,36109,178,2 +2020-07-05,Tompkins,New York,36109,179,2 +2020-07-06,Tompkins,New York,36109,179,2 +2020-07-07,Tompkins,New York,36109,179,2 +2020-07-08,Tompkins,New York,36109,180,2 +2020-07-09,Tompkins,New York,36109,180,2 +2020-03-08,Ulster,New York,36111,1,0 +2020-03-09,Ulster,New York,36111,1,0 +2020-03-10,Ulster,New York,36111,1,0 +2020-03-11,Ulster,New York,36111,2,0 +2020-03-12,Ulster,New York,36111,4,0 +2020-03-13,Ulster,New York,36111,5,0 +2020-03-14,Ulster,New York,36111,5,0 +2020-03-15,Ulster,New York,36111,5,0 +2020-03-16,Ulster,New York,36111,7,0 +2020-03-17,Ulster,New York,36111,8,0 +2020-03-18,Ulster,New York,36111,9,0 +2020-03-19,Ulster,New York,36111,12,0 +2020-03-20,Ulster,New York,36111,12,0 +2020-03-21,Ulster,New York,36111,18,0 +2020-03-22,Ulster,New York,36111,26,0 +2020-03-23,Ulster,New York,36111,35,0 +2020-03-24,Ulster,New York,36111,47,0 +2020-03-25,Ulster,New York,36111,65,0 +2020-03-26,Ulster,New York,36111,89,0 +2020-03-27,Ulster,New York,36111,98,0 +2020-03-28,Ulster,New York,36111,128,0 +2020-03-29,Ulster,New York,36111,179,1 +2020-03-30,Ulster,New York,36111,207,1 +2020-03-31,Ulster,New York,36111,215,3 +2020-04-01,Ulster,New York,36111,222,3 +2020-04-02,Ulster,New York,36111,243,3 +2020-04-03,Ulster,New York,36111,243,3 +2020-04-04,Ulster,New York,36111,318,4 +2020-04-05,Ulster,New York,36111,358,4 +2020-04-06,Ulster,New York,36111,382,4 +2020-04-07,Ulster,New York,36111,402,5 +2020-04-08,Ulster,New York,36111,422,2 +2020-04-09,Ulster,New York,36111,460,2 +2020-04-10,Ulster,New York,36111,530,2 +2020-04-11,Ulster,New York,36111,589,2 +2020-04-12,Ulster,New York,36111,612,2 +2020-04-13,Ulster,New York,36111,630,2 +2020-04-14,Ulster,New York,36111,690,2 +2020-04-15,Ulster,New York,36111,733,2 +2020-04-16,Ulster,New York,36111,761,2 +2020-04-17,Ulster,New York,36111,788,2 +2020-04-18,Ulster,New York,36111,820,2 +2020-04-19,Ulster,New York,36111,854,2 +2020-04-20,Ulster,New York,36111,877,2 +2020-04-21,Ulster,New York,36111,893,2 +2020-04-22,Ulster,New York,36111,913,3 +2020-04-23,Ulster,New York,36111,942,3 +2020-04-24,Ulster,New York,36111,976,3 +2020-04-25,Ulster,New York,36111,1166,3 +2020-04-26,Ulster,New York,36111,1190,3 +2020-04-27,Ulster,New York,36111,1219,4 +2020-04-28,Ulster,New York,36111,1230,5 +2020-04-29,Ulster,New York,36111,1252,6 +2020-04-30,Ulster,New York,36111,1279,7 +2020-05-01,Ulster,New York,36111,1298,9 +2020-05-02,Ulster,New York,36111,1327,10 +2020-05-03,Ulster,New York,36111,1341,11 +2020-05-04,Ulster,New York,36111,1354,12 +2020-05-05,Ulster,New York,36111,1357,12 +2020-05-06,Ulster,New York,36111,1383,26 +2020-05-07,Ulster,New York,36111,1416,27 +2020-05-08,Ulster,New York,36111,1429,28 +2020-05-09,Ulster,New York,36111,1440,29 +2020-05-10,Ulster,New York,36111,1450,30 +2020-05-11,Ulster,New York,36111,1454,32 +2020-05-12,Ulster,New York,36111,1465,35 +2020-05-13,Ulster,New York,36111,1481,37 +2020-05-14,Ulster,New York,36111,1495,37 +2020-05-15,Ulster,New York,36111,1511,39 +2020-05-16,Ulster,New York,36111,1537,41 +2020-05-17,Ulster,New York,36111,1552,42 +2020-05-18,Ulster,New York,36111,1557,43 +2020-05-19,Ulster,New York,36111,1565,43 +2020-05-20,Ulster,New York,36111,1571,43 +2020-05-21,Ulster,New York,36111,1584,44 +2020-05-22,Ulster,New York,36111,1595,44 +2020-05-23,Ulster,New York,36111,1606,44 +2020-05-24,Ulster,New York,36111,1617,45 +2020-05-25,Ulster,New York,36111,1632,45 +2020-05-26,Ulster,New York,36111,1638,45 +2020-05-27,Ulster,New York,36111,1645,45 +2020-05-28,Ulster,New York,36111,1658,45 +2020-05-29,Ulster,New York,36111,1663,46 +2020-05-30,Ulster,New York,36111,1678,47 +2020-05-31,Ulster,New York,36111,1685,47 +2020-06-01,Ulster,New York,36111,1691,47 +2020-06-02,Ulster,New York,36111,1696,47 +2020-06-03,Ulster,New York,36111,1701,47 +2020-06-04,Ulster,New York,36111,1704,47 +2020-06-05,Ulster,New York,36111,1711,47 +2020-06-06,Ulster,New York,36111,1714,47 +2020-06-07,Ulster,New York,36111,1718,47 +2020-06-08,Ulster,New York,36111,1721,47 +2020-06-09,Ulster,New York,36111,1724,47 +2020-06-10,Ulster,New York,36111,1726,47 +2020-06-11,Ulster,New York,36111,1729,47 +2020-06-12,Ulster,New York,36111,1734,47 +2020-06-13,Ulster,New York,36111,1739,47 +2020-06-14,Ulster,New York,36111,1741,47 +2020-06-15,Ulster,New York,36111,1741,47 +2020-06-16,Ulster,New York,36111,1742,47 +2020-06-17,Ulster,New York,36111,1744,47 +2020-06-18,Ulster,New York,36111,1746,49 +2020-06-19,Ulster,New York,36111,1749,49 +2020-06-20,Ulster,New York,36111,1750,49 +2020-06-21,Ulster,New York,36111,1754,49 +2020-06-22,Ulster,New York,36111,1756,49 +2020-06-23,Ulster,New York,36111,1757,49 +2020-06-24,Ulster,New York,36111,1760,49 +2020-06-25,Ulster,New York,36111,1765,49 +2020-06-26,Ulster,New York,36111,1768,49 +2020-06-27,Ulster,New York,36111,1773,49 +2020-06-28,Ulster,New York,36111,1778,49 +2020-06-29,Ulster,New York,36111,1778,49 +2020-06-30,Ulster,New York,36111,1781,49 +2020-07-01,Ulster,New York,36111,1782,49 +2020-07-02,Ulster,New York,36111,1790,49 +2020-07-03,Ulster,New York,36111,1815,49 +2020-07-04,Ulster,New York,36111,1825,49 +2020-07-05,Ulster,New York,36111,1834,49 +2020-07-06,Ulster,New York,36111,1840,49 +2020-07-07,Ulster,New York,36111,1843,49 +2020-07-08,Ulster,New York,36111,1845,49 +2020-07-09,Ulster,New York,36111,1851,49 +2020-03-18,Warren,New York,36113,1,0 +2020-03-19,Warren,New York,36113,1,0 +2020-03-20,Warren,New York,36113,1,0 +2020-03-21,Warren,New York,36113,1,0 +2020-03-22,Warren,New York,36113,1,0 +2020-03-23,Warren,New York,36113,2,0 +2020-03-24,Warren,New York,36113,2,0 +2020-03-25,Warren,New York,36113,2,0 +2020-03-26,Warren,New York,36113,2,0 +2020-03-27,Warren,New York,36113,8,0 +2020-03-28,Warren,New York,36113,13,0 +2020-03-29,Warren,New York,36113,18,0 +2020-03-30,Warren,New York,36113,18,0 +2020-03-31,Warren,New York,36113,18,0 +2020-04-01,Warren,New York,36113,18,0 +2020-04-02,Warren,New York,36113,19,0 +2020-04-03,Warren,New York,36113,19,0 +2020-04-04,Warren,New York,36113,20,1 +2020-04-05,Warren,New York,36113,25,1 +2020-04-06,Warren,New York,36113,26,1 +2020-04-07,Warren,New York,36113,31,1 +2020-04-08,Warren,New York,36113,33,1 +2020-04-09,Warren,New York,36113,40,1 +2020-04-10,Warren,New York,36113,43,1 +2020-04-11,Warren,New York,36113,44,1 +2020-04-12,Warren,New York,36113,46,1 +2020-04-13,Warren,New York,36113,48,1 +2020-04-14,Warren,New York,36113,77,3 +2020-04-15,Warren,New York,36113,77,4 +2020-04-16,Warren,New York,36113,81,5 +2020-04-17,Warren,New York,36113,91,5 +2020-04-18,Warren,New York,36113,94,5 +2020-04-19,Warren,New York,36113,96,6 +2020-04-20,Warren,New York,36113,101,6 +2020-04-21,Warren,New York,36113,102,6 +2020-04-22,Warren,New York,36113,108,6 +2020-04-23,Warren,New York,36113,119,7 +2020-04-24,Warren,New York,36113,122,7 +2020-04-25,Warren,New York,36113,132,7 +2020-04-26,Warren,New York,36113,135,8 +2020-04-27,Warren,New York,36113,147,8 +2020-04-28,Warren,New York,36113,150,8 +2020-04-29,Warren,New York,36113,152,9 +2020-04-30,Warren,New York,36113,176,9 +2020-05-01,Warren,New York,36113,182,9 +2020-05-02,Warren,New York,36113,185,10 +2020-05-03,Warren,New York,36113,188,11 +2020-05-04,Warren,New York,36113,192,11 +2020-05-05,Warren,New York,36113,192,12 +2020-05-06,Warren,New York,36113,193,20 +2020-05-07,Warren,New York,36113,193,21 +2020-05-08,Warren,New York,36113,199,22 +2020-05-09,Warren,New York,36113,202,22 +2020-05-10,Warren,New York,36113,207,22 +2020-05-11,Warren,New York,36113,217,22 +2020-05-12,Warren,New York,36113,221,23 +2020-05-13,Warren,New York,36113,223,24 +2020-05-14,Warren,New York,36113,227,24 +2020-05-15,Warren,New York,36113,228,26 +2020-05-16,Warren,New York,36113,228,27 +2020-05-17,Warren,New York,36113,232,27 +2020-05-18,Warren,New York,36113,234,27 +2020-05-19,Warren,New York,36113,235,27 +2020-05-20,Warren,New York,36113,235,27 +2020-05-21,Warren,New York,36113,241,28 +2020-05-22,Warren,New York,36113,246,28 +2020-05-23,Warren,New York,36113,249,28 +2020-05-24,Warren,New York,36113,250,28 +2020-05-25,Warren,New York,36113,251,28 +2020-05-26,Warren,New York,36113,251,28 +2020-05-27,Warren,New York,36113,252,28 +2020-05-28,Warren,New York,36113,253,28 +2020-05-29,Warren,New York,36113,254,29 +2020-05-30,Warren,New York,36113,255,29 +2020-05-31,Warren,New York,36113,255,30 +2020-06-01,Warren,New York,36113,255,30 +2020-06-02,Warren,New York,36113,255,30 +2020-06-03,Warren,New York,36113,256,31 +2020-06-04,Warren,New York,36113,256,31 +2020-06-05,Warren,New York,36113,256,31 +2020-06-06,Warren,New York,36113,257,31 +2020-06-07,Warren,New York,36113,257,31 +2020-06-08,Warren,New York,36113,257,31 +2020-06-09,Warren,New York,36113,257,31 +2020-06-10,Warren,New York,36113,257,31 +2020-06-11,Warren,New York,36113,257,31 +2020-06-12,Warren,New York,36113,257,31 +2020-06-13,Warren,New York,36113,257,31 +2020-06-14,Warren,New York,36113,257,31 +2020-06-15,Warren,New York,36113,257,31 +2020-06-16,Warren,New York,36113,257,31 +2020-06-17,Warren,New York,36113,257,31 +2020-06-18,Warren,New York,36113,258,31 +2020-06-19,Warren,New York,36113,261,31 +2020-06-20,Warren,New York,36113,261,31 +2020-06-21,Warren,New York,36113,261,31 +2020-06-22,Warren,New York,36113,262,31 +2020-06-23,Warren,New York,36113,262,31 +2020-06-24,Warren,New York,36113,262,31 +2020-06-25,Warren,New York,36113,263,31 +2020-06-26,Warren,New York,36113,263,31 +2020-06-27,Warren,New York,36113,263,31 +2020-06-28,Warren,New York,36113,263,31 +2020-06-29,Warren,New York,36113,263,31 +2020-06-30,Warren,New York,36113,263,31 +2020-07-01,Warren,New York,36113,263,31 +2020-07-02,Warren,New York,36113,264,31 +2020-07-03,Warren,New York,36113,266,31 +2020-07-04,Warren,New York,36113,268,31 +2020-07-05,Warren,New York,36113,269,31 +2020-07-06,Warren,New York,36113,272,31 +2020-07-07,Warren,New York,36113,273,31 +2020-07-08,Warren,New York,36113,273,31 +2020-07-09,Warren,New York,36113,273,31 +2020-03-18,Washington,New York,36115,1,0 +2020-03-19,Washington,New York,36115,1,0 +2020-03-20,Washington,New York,36115,1,0 +2020-03-21,Washington,New York,36115,1,0 +2020-03-22,Washington,New York,36115,1,0 +2020-03-23,Washington,New York,36115,3,0 +2020-03-24,Washington,New York,36115,3,0 +2020-03-25,Washington,New York,36115,4,0 +2020-03-26,Washington,New York,36115,4,0 +2020-03-27,Washington,New York,36115,6,0 +2020-03-28,Washington,New York,36115,6,0 +2020-03-29,Washington,New York,36115,7,0 +2020-03-30,Washington,New York,36115,7,0 +2020-03-31,Washington,New York,36115,10,0 +2020-04-01,Washington,New York,36115,10,0 +2020-04-02,Washington,New York,36115,13,0 +2020-04-03,Washington,New York,36115,13,0 +2020-04-04,Washington,New York,36115,17,1 +2020-04-05,Washington,New York,36115,18,1 +2020-04-06,Washington,New York,36115,19,1 +2020-04-07,Washington,New York,36115,19,1 +2020-04-08,Washington,New York,36115,20,0 +2020-04-09,Washington,New York,36115,25,0 +2020-04-10,Washington,New York,36115,26,0 +2020-04-11,Washington,New York,36115,31,0 +2020-04-12,Washington,New York,36115,34,0 +2020-04-13,Washington,New York,36115,37,0 +2020-04-14,Washington,New York,36115,40,0 +2020-04-15,Washington,New York,36115,42,0 +2020-04-16,Washington,New York,36115,46,0 +2020-04-17,Washington,New York,36115,48,0 +2020-04-18,Washington,New York,36115,52,0 +2020-04-19,Washington,New York,36115,63,0 +2020-04-20,Washington,New York,36115,65,0 +2020-04-21,Washington,New York,36115,68,0 +2020-04-22,Washington,New York,36115,73,0 +2020-04-23,Washington,New York,36115,80,0 +2020-04-24,Washington,New York,36115,83,0 +2020-04-25,Washington,New York,36115,113,0 +2020-04-26,Washington,New York,36115,127,0 +2020-04-27,Washington,New York,36115,130,0 +2020-04-28,Washington,New York,36115,131,0 +2020-04-29,Washington,New York,36115,134,0 +2020-04-30,Washington,New York,36115,148,0 +2020-05-01,Washington,New York,36115,170,2 +2020-05-02,Washington,New York,36115,184,2 +2020-05-03,Washington,New York,36115,186,2 +2020-05-04,Washington,New York,36115,188,2 +2020-05-05,Washington,New York,36115,188,2 +2020-05-06,Washington,New York,36115,189,8 +2020-05-07,Washington,New York,36115,190,8 +2020-05-08,Washington,New York,36115,201,9 +2020-05-09,Washington,New York,36115,204,9 +2020-05-10,Washington,New York,36115,206,9 +2020-05-11,Washington,New York,36115,210,10 +2020-05-12,Washington,New York,36115,210,10 +2020-05-13,Washington,New York,36115,214,10 +2020-05-14,Washington,New York,36115,215,11 +2020-05-15,Washington,New York,36115,217,11 +2020-05-16,Washington,New York,36115,218,11 +2020-05-17,Washington,New York,36115,219,11 +2020-05-18,Washington,New York,36115,219,11 +2020-05-19,Washington,New York,36115,220,11 +2020-05-20,Washington,New York,36115,221,11 +2020-05-21,Washington,New York,36115,222,11 +2020-05-22,Washington,New York,36115,224,11 +2020-05-23,Washington,New York,36115,225,11 +2020-05-24,Washington,New York,36115,226,11 +2020-05-25,Washington,New York,36115,228,11 +2020-05-26,Washington,New York,36115,228,11 +2020-05-27,Washington,New York,36115,228,11 +2020-05-28,Washington,New York,36115,231,11 +2020-05-29,Washington,New York,36115,232,11 +2020-05-30,Washington,New York,36115,235,11 +2020-05-31,Washington,New York,36115,235,11 +2020-06-01,Washington,New York,36115,235,11 +2020-06-02,Washington,New York,36115,237,11 +2020-06-03,Washington,New York,36115,238,11 +2020-06-04,Washington,New York,36115,238,11 +2020-06-05,Washington,New York,36115,240,11 +2020-06-06,Washington,New York,36115,240,11 +2020-06-07,Washington,New York,36115,240,11 +2020-06-08,Washington,New York,36115,240,11 +2020-06-09,Washington,New York,36115,240,11 +2020-06-10,Washington,New York,36115,240,11 +2020-06-11,Washington,New York,36115,241,11 +2020-06-12,Washington,New York,36115,242,11 +2020-06-13,Washington,New York,36115,242,11 +2020-06-14,Washington,New York,36115,243,11 +2020-06-15,Washington,New York,36115,243,11 +2020-06-16,Washington,New York,36115,243,11 +2020-06-17,Washington,New York,36115,243,11 +2020-06-18,Washington,New York,36115,243,11 +2020-06-19,Washington,New York,36115,243,11 +2020-06-20,Washington,New York,36115,244,11 +2020-06-21,Washington,New York,36115,244,11 +2020-06-22,Washington,New York,36115,244,11 +2020-06-23,Washington,New York,36115,244,11 +2020-06-24,Washington,New York,36115,244,11 +2020-06-25,Washington,New York,36115,245,11 +2020-06-26,Washington,New York,36115,245,11 +2020-06-27,Washington,New York,36115,245,11 +2020-06-28,Washington,New York,36115,246,11 +2020-06-29,Washington,New York,36115,246,11 +2020-06-30,Washington,New York,36115,246,11 +2020-07-01,Washington,New York,36115,246,11 +2020-07-02,Washington,New York,36115,246,11 +2020-07-03,Washington,New York,36115,246,11 +2020-07-04,Washington,New York,36115,246,11 +2020-07-05,Washington,New York,36115,246,11 +2020-07-06,Washington,New York,36115,247,11 +2020-07-07,Washington,New York,36115,247,11 +2020-07-08,Washington,New York,36115,247,11 +2020-07-09,Washington,New York,36115,248,11 +2020-03-19,Wayne,New York,36117,1,0 +2020-03-20,Wayne,New York,36117,1,0 +2020-03-21,Wayne,New York,36117,3,0 +2020-03-22,Wayne,New York,36117,3,0 +2020-03-23,Wayne,New York,36117,6,0 +2020-03-24,Wayne,New York,36117,6,0 +2020-03-25,Wayne,New York,36117,7,0 +2020-03-26,Wayne,New York,36117,8,0 +2020-03-27,Wayne,New York,36117,11,0 +2020-03-28,Wayne,New York,36117,12,0 +2020-03-29,Wayne,New York,36117,12,0 +2020-03-30,Wayne,New York,36117,15,0 +2020-03-31,Wayne,New York,36117,19,0 +2020-04-01,Wayne,New York,36117,24,0 +2020-04-02,Wayne,New York,36117,27,0 +2020-04-03,Wayne,New York,36117,27,0 +2020-04-04,Wayne,New York,36117,30,0 +2020-04-05,Wayne,New York,36117,32,0 +2020-04-06,Wayne,New York,36117,34,0 +2020-04-07,Wayne,New York,36117,35,0 +2020-04-08,Wayne,New York,36117,39,0 +2020-04-09,Wayne,New York,36117,39,0 +2020-04-10,Wayne,New York,36117,41,0 +2020-04-11,Wayne,New York,36117,42,0 +2020-04-12,Wayne,New York,36117,42,0 +2020-04-13,Wayne,New York,36117,42,0 +2020-04-14,Wayne,New York,36117,48,0 +2020-04-15,Wayne,New York,36117,48,0 +2020-04-16,Wayne,New York,36117,49,0 +2020-04-17,Wayne,New York,36117,49,0 +2020-04-18,Wayne,New York,36117,49,0 +2020-04-19,Wayne,New York,36117,50,0 +2020-04-20,Wayne,New York,36117,50,0 +2020-04-21,Wayne,New York,36117,51,0 +2020-04-22,Wayne,New York,36117,52,0 +2020-04-23,Wayne,New York,36117,53,0 +2020-04-24,Wayne,New York,36117,53,0 +2020-04-25,Wayne,New York,36117,65,0 +2020-04-26,Wayne,New York,36117,65,0 +2020-04-27,Wayne,New York,36117,69,0 +2020-04-28,Wayne,New York,36117,70,0 +2020-04-29,Wayne,New York,36117,70,0 +2020-04-30,Wayne,New York,36117,71,0 +2020-05-01,Wayne,New York,36117,71,0 +2020-05-02,Wayne,New York,36117,73,0 +2020-05-03,Wayne,New York,36117,75,0 +2020-05-04,Wayne,New York,36117,76,0 +2020-05-05,Wayne,New York,36117,78,0 +2020-05-06,Wayne,New York,36117,78,1 +2020-05-07,Wayne,New York,36117,78,1 +2020-05-08,Wayne,New York,36117,79,1 +2020-05-09,Wayne,New York,36117,79,1 +2020-05-10,Wayne,New York,36117,80,1 +2020-05-11,Wayne,New York,36117,81,1 +2020-05-12,Wayne,New York,36117,83,1 +2020-05-13,Wayne,New York,36117,84,1 +2020-05-14,Wayne,New York,36117,89,1 +2020-05-15,Wayne,New York,36117,91,1 +2020-05-16,Wayne,New York,36117,92,1 +2020-05-17,Wayne,New York,36117,96,1 +2020-05-18,Wayne,New York,36117,97,1 +2020-05-19,Wayne,New York,36117,98,1 +2020-05-20,Wayne,New York,36117,103,1 +2020-05-21,Wayne,New York,36117,103,1 +2020-05-22,Wayne,New York,36117,104,1 +2020-05-23,Wayne,New York,36117,107,1 +2020-05-24,Wayne,New York,36117,108,1 +2020-05-25,Wayne,New York,36117,109,1 +2020-05-26,Wayne,New York,36117,110,1 +2020-05-27,Wayne,New York,36117,110,1 +2020-05-28,Wayne,New York,36117,112,1 +2020-05-29,Wayne,New York,36117,113,1 +2020-05-30,Wayne,New York,36117,113,1 +2020-05-31,Wayne,New York,36117,115,1 +2020-06-01,Wayne,New York,36117,116,1 +2020-06-02,Wayne,New York,36117,116,1 +2020-06-03,Wayne,New York,36117,120,1 +2020-06-04,Wayne,New York,36117,121,1 +2020-06-05,Wayne,New York,36117,122,1 +2020-06-06,Wayne,New York,36117,123,1 +2020-06-07,Wayne,New York,36117,124,1 +2020-06-08,Wayne,New York,36117,125,1 +2020-06-09,Wayne,New York,36117,126,1 +2020-06-10,Wayne,New York,36117,126,1 +2020-06-11,Wayne,New York,36117,127,1 +2020-06-12,Wayne,New York,36117,129,1 +2020-06-13,Wayne,New York,36117,131,1 +2020-06-14,Wayne,New York,36117,133,1 +2020-06-15,Wayne,New York,36117,133,1 +2020-06-16,Wayne,New York,36117,134,1 +2020-06-17,Wayne,New York,36117,137,1 +2020-06-18,Wayne,New York,36117,139,1 +2020-06-19,Wayne,New York,36117,141,1 +2020-06-20,Wayne,New York,36117,143,1 +2020-06-21,Wayne,New York,36117,143,1 +2020-06-22,Wayne,New York,36117,143,1 +2020-06-23,Wayne,New York,36117,145,1 +2020-06-24,Wayne,New York,36117,150,1 +2020-06-25,Wayne,New York,36117,154,1 +2020-06-26,Wayne,New York,36117,159,1 +2020-06-27,Wayne,New York,36117,161,1 +2020-06-28,Wayne,New York,36117,162,1 +2020-06-29,Wayne,New York,36117,165,1 +2020-06-30,Wayne,New York,36117,170,1 +2020-07-01,Wayne,New York,36117,174,1 +2020-07-02,Wayne,New York,36117,176,1 +2020-07-03,Wayne,New York,36117,181,1 +2020-07-04,Wayne,New York,36117,183,1 +2020-07-05,Wayne,New York,36117,185,1 +2020-07-06,Wayne,New York,36117,186,1 +2020-07-07,Wayne,New York,36117,191,1 +2020-07-08,Wayne,New York,36117,193,1 +2020-07-09,Wayne,New York,36117,195,1 +2020-03-04,Westchester,New York,36119,9,0 +2020-03-05,Westchester,New York,36119,17,0 +2020-03-06,Westchester,New York,36119,33,0 +2020-03-07,Westchester,New York,36119,69,0 +2020-03-08,Westchester,New York,36119,81,0 +2020-03-09,Westchester,New York,36119,97,0 +2020-03-10,Westchester,New York,36119,107,0 +2020-03-11,Westchester,New York,36119,120,0 +2020-03-12,Westchester,New York,36119,147,0 +2020-03-13,Westchester,New York,36119,157,0 +2020-03-14,Westchester,New York,36119,178,0 +2020-03-15,Westchester,New York,36119,195,0 +2020-03-16,Westchester,New York,36119,219,0 +2020-03-17,Westchester,New York,36119,379,0 +2020-03-18,Westchester,New York,36119,537,0 +2020-03-19,Westchester,New York,36119,797,0 +2020-03-20,Westchester,New York,36119,1091,0 +2020-03-21,Westchester,New York,36119,1387,0 +2020-03-22,Westchester,New York,36119,1873,0 +2020-03-23,Westchester,New York,36119,2894,0 +2020-03-24,Westchester,New York,36119,3891,6 +2020-03-25,Westchester,New York,36119,4691,6 +2020-03-26,Westchester,New York,36119,5944,8 +2020-03-27,Westchester,New York,36119,7187,10 +2020-03-28,Westchester,New York,36119,7875,10 +2020-03-29,Westchester,New York,36119,8519,10 +2020-03-30,Westchester,New York,36119,9326,19 +2020-03-31,Westchester,New York,36119,9967,25 +2020-04-01,Westchester,New York,36119,10683,25 +2020-04-02,Westchester,New York,36119,11566,67 +2020-04-03,Westchester,New York,36119,12350,67 +2020-04-04,Westchester,New York,36119,13080,197 +2020-04-05,Westchester,New York,36119,13722,197 +2020-04-06,Westchester,New York,36119,14293,253 +2020-04-07,Westchester,New York,36119,14804,304 +2020-04-08,Westchester,New York,36119,15887,343 +2020-04-09,Westchester,New York,36119,17004,389 +2020-04-10,Westchester,New York,36119,18077,428 +2020-04-11,Westchester,New York,36119,18729,505 +2020-04-12,Westchester,New York,36119,19313,562 +2020-04-13,Westchester,New York,36119,19785,610 +2020-04-14,Westchester,New York,36119,20191,654 +2020-04-15,Westchester,New York,36119,20947,708 +2020-04-16,Westchester,New York,36119,21828,738 +2020-04-17,Westchester,New York,36119,22476,738 +2020-04-18,Westchester,New York,36119,23179,738 +2020-04-19,Westchester,New York,36119,23803,831 +2020-04-20,Westchester,New York,36119,24306,867 +2020-04-21,Westchester,New York,36119,24655,904 +2020-04-22,Westchester,New York,36119,25275,932 +2020-04-23,Westchester,New York,36119,25959,962 +2020-04-24,Westchester,New York,36119,26632,989 +2020-04-25,Westchester,New York,36119,27230,1022 +2020-04-26,Westchester,New York,36119,27664,1054 +2020-04-27,Westchester,New York,36119,28007,1077 +2020-04-28,Westchester,New York,36119,28245,1096 +2020-04-29,Westchester,New York,36119,28625,1119 +2020-04-30,Westchester,New York,36119,28969,1144 +2020-05-01,Westchester,New York,36119,29231,1165 +2020-05-02,Westchester,New York,36119,29626,1183 +2020-05-03,Westchester,New York,36119,29884,1203 +2020-05-04,Westchester,New York,36119,30097,1220 +2020-05-05,Westchester,New York,36119,30239,1236 +2020-05-06,Westchester,New York,36119,30426,1285 +2020-05-07,Westchester,New York,36119,30709,1305 +2020-05-08,Westchester,New York,36119,30904,1316 +2020-05-09,Westchester,New York,36119,31086,1328 +2020-05-10,Westchester,New York,36119,31293,1341 +2020-05-11,Westchester,New York,36119,31383,1349 +2020-05-12,Westchester,New York,36119,31471,1360 +2020-05-13,Westchester,New York,36119,31610,1368 +2020-05-14,Westchester,New York,36119,31791,1380 +2020-05-15,Westchester,New York,36119,31942,1392 +2020-05-16,Westchester,New York,36119,32096,1398 +2020-05-17,Westchester,New York,36119,32223,1412 +2020-05-18,Westchester,New York,36119,32322,1419 +2020-05-19,Westchester,New York,36119,32401,1424 +2020-05-20,Westchester,New York,36119,32516,1430 +2020-05-21,Westchester,New York,36119,32672,1438 +2020-05-22,Westchester,New York,36119,32766,1444 +2020-05-23,Westchester,New York,36119,32880,1451 +2020-05-24,Westchester,New York,36119,32967,1462 +2020-05-25,Westchester,New York,36119,33048,1467 +2020-05-26,Westchester,New York,36119,33106,1469 +2020-05-27,Westchester,New York,36119,33185,1476 +2020-05-28,Westchester,New York,36119,33292,1481 +2020-05-29,Westchester,New York,36119,33348,1484 +2020-05-30,Westchester,New York,36119,33428,1492 +2020-05-31,Westchester,New York,36119,33480,1499 +2020-06-01,Westchester,New York,36119,33551,1501 +2020-06-02,Westchester,New York,36119,33632,1506 +2020-06-03,Westchester,New York,36119,33690,1510 +2020-06-04,Westchester,New York,36119,33766,1514 +2020-06-05,Westchester,New York,36119,33853,1519 +2020-06-06,Westchester,New York,36119,33923,1523 +2020-06-07,Westchester,New York,36119,33953,1523 +2020-06-08,Westchester,New York,36119,33999,1526 +2020-06-09,Westchester,New York,36119,34034,1527 +2020-06-10,Westchester,New York,36119,34075,1530 +2020-06-11,Westchester,New York,36119,34105,1531 +2020-06-12,Westchester,New York,36119,34174,1533 +2020-06-13,Westchester,New York,36119,34252,1535 +2020-06-14,Westchester,New York,36119,34289,1535 +2020-06-15,Westchester,New York,36119,34326,1535 +2020-06-16,Westchester,New York,36119,34357,1537 +2020-06-17,Westchester,New York,36119,34384,1539 +2020-06-18,Westchester,New York,36119,34408,1542 +2020-06-19,Westchester,New York,36119,34454,1542 +2020-06-20,Westchester,New York,36119,34485,1544 +2020-06-21,Westchester,New York,36119,34520,1545 +2020-06-22,Westchester,New York,36119,34556,1546 +2020-06-23,Westchester,New York,36119,34580,1547 +2020-06-24,Westchester,New York,36119,34596,1548 +2020-06-25,Westchester,New York,36119,34641,1549 +2020-06-26,Westchester,New York,36119,34699,1551 +2020-06-27,Westchester,New York,36119,34747,1552 +2020-06-28,Westchester,New York,36119,34779,1554 +2020-06-29,Westchester,New York,36119,34797,1557 +2020-06-30,Westchester,New York,36119,34837,1558 +2020-07-01,Westchester,New York,36119,34865,1558 +2020-07-02,Westchester,New York,36119,34911,1559 +2020-07-03,Westchester,New York,36119,34979,1558 +2020-07-04,Westchester,New York,36119,35019,1558 +2020-07-05,Westchester,New York,36119,35042,1560 +2020-07-06,Westchester,New York,36119,35083,1560 +2020-07-07,Westchester,New York,36119,35105,1562 +2020-07-08,Westchester,New York,36119,35153,1563 +2020-07-09,Westchester,New York,36119,35182,1564 +2020-03-17,Wyoming,New York,36121,1,0 +2020-03-18,Wyoming,New York,36121,1,0 +2020-03-19,Wyoming,New York,36121,2,0 +2020-03-20,Wyoming,New York,36121,2,0 +2020-03-21,Wyoming,New York,36121,2,0 +2020-03-22,Wyoming,New York,36121,2,0 +2020-03-23,Wyoming,New York,36121,4,0 +2020-03-24,Wyoming,New York,36121,4,0 +2020-03-25,Wyoming,New York,36121,4,0 +2020-03-26,Wyoming,New York,36121,7,0 +2020-03-27,Wyoming,New York,36121,7,0 +2020-03-28,Wyoming,New York,36121,7,0 +2020-03-29,Wyoming,New York,36121,8,0 +2020-03-30,Wyoming,New York,36121,8,0 +2020-03-31,Wyoming,New York,36121,9,1 +2020-04-01,Wyoming,New York,36121,10,1 +2020-04-02,Wyoming,New York,36121,15,1 +2020-04-03,Wyoming,New York,36121,15,1 +2020-04-04,Wyoming,New York,36121,18,1 +2020-04-05,Wyoming,New York,36121,22,1 +2020-04-06,Wyoming,New York,36121,23,1 +2020-04-07,Wyoming,New York,36121,23,1 +2020-04-08,Wyoming,New York,36121,27,0 +2020-04-09,Wyoming,New York,36121,29,0 +2020-04-10,Wyoming,New York,36121,30,0 +2020-04-11,Wyoming,New York,36121,31,0 +2020-04-12,Wyoming,New York,36121,31,0 +2020-04-13,Wyoming,New York,36121,31,3 +2020-04-14,Wyoming,New York,36121,32,3 +2020-04-15,Wyoming,New York,36121,34,3 +2020-04-16,Wyoming,New York,36121,34,3 +2020-04-17,Wyoming,New York,36121,35,3 +2020-04-18,Wyoming,New York,36121,36,3 +2020-04-19,Wyoming,New York,36121,36,3 +2020-04-20,Wyoming,New York,36121,36,3 +2020-04-21,Wyoming,New York,36121,36,3 +2020-04-22,Wyoming,New York,36121,40,3 +2020-04-23,Wyoming,New York,36121,41,3 +2020-04-24,Wyoming,New York,36121,43,3 +2020-04-25,Wyoming,New York,36121,57,3 +2020-04-26,Wyoming,New York,36121,59,3 +2020-04-27,Wyoming,New York,36121,63,3 +2020-04-28,Wyoming,New York,36121,63,3 +2020-04-29,Wyoming,New York,36121,65,3 +2020-04-30,Wyoming,New York,36121,65,3 +2020-05-01,Wyoming,New York,36121,68,3 +2020-05-02,Wyoming,New York,36121,69,3 +2020-05-03,Wyoming,New York,36121,69,3 +2020-05-04,Wyoming,New York,36121,69,3 +2020-05-05,Wyoming,New York,36121,70,3 +2020-05-06,Wyoming,New York,36121,70,3 +2020-05-07,Wyoming,New York,36121,71,3 +2020-05-08,Wyoming,New York,36121,73,3 +2020-05-09,Wyoming,New York,36121,75,3 +2020-05-10,Wyoming,New York,36121,77,3 +2020-05-11,Wyoming,New York,36121,77,3 +2020-05-12,Wyoming,New York,36121,77,3 +2020-05-13,Wyoming,New York,36121,77,3 +2020-05-14,Wyoming,New York,36121,77,3 +2020-05-15,Wyoming,New York,36121,77,3 +2020-05-16,Wyoming,New York,36121,78,3 +2020-05-17,Wyoming,New York,36121,78,3 +2020-05-18,Wyoming,New York,36121,79,3 +2020-05-19,Wyoming,New York,36121,79,3 +2020-05-20,Wyoming,New York,36121,79,3 +2020-05-21,Wyoming,New York,36121,79,3 +2020-05-22,Wyoming,New York,36121,79,3 +2020-05-23,Wyoming,New York,36121,80,3 +2020-05-24,Wyoming,New York,36121,81,3 +2020-05-25,Wyoming,New York,36121,82,3 +2020-05-26,Wyoming,New York,36121,82,3 +2020-05-27,Wyoming,New York,36121,82,3 +2020-05-28,Wyoming,New York,36121,82,3 +2020-05-29,Wyoming,New York,36121,82,3 +2020-05-30,Wyoming,New York,36121,84,3 +2020-05-31,Wyoming,New York,36121,86,3 +2020-06-01,Wyoming,New York,36121,86,3 +2020-06-02,Wyoming,New York,36121,86,3 +2020-06-03,Wyoming,New York,36121,87,3 +2020-06-04,Wyoming,New York,36121,87,3 +2020-06-05,Wyoming,New York,36121,88,3 +2020-06-06,Wyoming,New York,36121,89,3 +2020-06-07,Wyoming,New York,36121,89,3 +2020-06-08,Wyoming,New York,36121,90,3 +2020-06-09,Wyoming,New York,36121,91,3 +2020-06-10,Wyoming,New York,36121,91,3 +2020-06-11,Wyoming,New York,36121,91,3 +2020-06-12,Wyoming,New York,36121,91,3 +2020-06-13,Wyoming,New York,36121,91,3 +2020-06-14,Wyoming,New York,36121,92,3 +2020-06-15,Wyoming,New York,36121,92,3 +2020-06-16,Wyoming,New York,36121,93,3 +2020-06-17,Wyoming,New York,36121,93,3 +2020-06-18,Wyoming,New York,36121,93,3 +2020-06-19,Wyoming,New York,36121,93,3 +2020-06-20,Wyoming,New York,36121,93,3 +2020-06-21,Wyoming,New York,36121,93,3 +2020-06-22,Wyoming,New York,36121,93,3 +2020-06-23,Wyoming,New York,36121,93,3 +2020-06-24,Wyoming,New York,36121,93,3 +2020-06-25,Wyoming,New York,36121,93,3 +2020-06-26,Wyoming,New York,36121,94,3 +2020-06-27,Wyoming,New York,36121,95,3 +2020-06-28,Wyoming,New York,36121,95,3 +2020-06-29,Wyoming,New York,36121,95,3 +2020-06-30,Wyoming,New York,36121,95,3 +2020-07-01,Wyoming,New York,36121,95,3 +2020-07-02,Wyoming,New York,36121,95,3 +2020-07-03,Wyoming,New York,36121,95,3 +2020-07-04,Wyoming,New York,36121,96,3 +2020-07-05,Wyoming,New York,36121,97,3 +2020-07-06,Wyoming,New York,36121,97,3 +2020-07-07,Wyoming,New York,36121,97,3 +2020-07-08,Wyoming,New York,36121,98,3 +2020-07-09,Wyoming,New York,36121,99,3 +2020-04-02,Yates,New York,36123,2,0 +2020-04-03,Yates,New York,36123,2,0 +2020-04-04,Yates,New York,36123,2,0 +2020-04-05,Yates,New York,36123,2,0 +2020-04-06,Yates,New York,36123,2,0 +2020-04-07,Yates,New York,36123,2,0 +2020-04-08,Yates,New York,36123,2,0 +2020-04-09,Yates,New York,36123,1,0 +2020-04-10,Yates,New York,36123,2,0 +2020-04-11,Yates,New York,36123,2,0 +2020-04-12,Yates,New York,36123,3,0 +2020-04-13,Yates,New York,36123,4,0 +2020-04-14,Yates,New York,36123,6,0 +2020-04-15,Yates,New York,36123,6,0 +2020-04-16,Yates,New York,36123,7,0 +2020-04-17,Yates,New York,36123,8,0 +2020-04-18,Yates,New York,36123,9,0 +2020-04-19,Yates,New York,36123,9,0 +2020-04-20,Yates,New York,36123,10,0 +2020-04-21,Yates,New York,36123,10,0 +2020-04-22,Yates,New York,36123,11,1 +2020-04-23,Yates,New York,36123,11,1 +2020-04-24,Yates,New York,36123,11,1 +2020-04-25,Yates,New York,36123,16,1 +2020-04-26,Yates,New York,36123,17,1 +2020-04-27,Yates,New York,36123,17,1 +2020-04-28,Yates,New York,36123,17,1 +2020-04-29,Yates,New York,36123,17,1 +2020-04-30,Yates,New York,36123,18,1 +2020-05-01,Yates,New York,36123,18,1 +2020-05-02,Yates,New York,36123,18,1 +2020-05-03,Yates,New York,36123,19,1 +2020-05-04,Yates,New York,36123,19,1 +2020-05-05,Yates,New York,36123,19,2 +2020-05-06,Yates,New York,36123,19,3 +2020-05-07,Yates,New York,36123,19,3 +2020-05-08,Yates,New York,36123,20,3 +2020-05-09,Yates,New York,36123,20,3 +2020-05-10,Yates,New York,36123,21,3 +2020-05-11,Yates,New York,36123,21,4 +2020-05-12,Yates,New York,36123,21,4 +2020-05-13,Yates,New York,36123,22,4 +2020-05-14,Yates,New York,36123,22,4 +2020-05-15,Yates,New York,36123,22,4 +2020-05-16,Yates,New York,36123,22,5 +2020-05-17,Yates,New York,36123,23,5 +2020-05-18,Yates,New York,36123,25,5 +2020-05-19,Yates,New York,36123,26,5 +2020-05-20,Yates,New York,36123,34,5 +2020-05-21,Yates,New York,36123,34,6 +2020-05-22,Yates,New York,36123,34,6 +2020-05-23,Yates,New York,36123,37,6 +2020-05-24,Yates,New York,36123,37,6 +2020-05-25,Yates,New York,36123,37,6 +2020-05-26,Yates,New York,36123,37,6 +2020-05-27,Yates,New York,36123,39,6 +2020-05-28,Yates,New York,36123,39,6 +2020-05-29,Yates,New York,36123,39,6 +2020-05-30,Yates,New York,36123,39,6 +2020-05-31,Yates,New York,36123,39,6 +2020-06-01,Yates,New York,36123,39,6 +2020-06-02,Yates,New York,36123,39,6 +2020-06-03,Yates,New York,36123,39,6 +2020-06-04,Yates,New York,36123,39,6 +2020-06-05,Yates,New York,36123,39,6 +2020-06-06,Yates,New York,36123,39,6 +2020-06-07,Yates,New York,36123,39,6 +2020-06-08,Yates,New York,36123,39,6 +2020-06-09,Yates,New York,36123,39,6 +2020-06-10,Yates,New York,36123,39,6 +2020-06-11,Yates,New York,36123,39,6 +2020-06-12,Yates,New York,36123,39,6 +2020-06-13,Yates,New York,36123,39,6 +2020-06-14,Yates,New York,36123,40,6 +2020-06-15,Yates,New York,36123,40,6 +2020-06-16,Yates,New York,36123,40,6 +2020-06-17,Yates,New York,36123,40,6 +2020-06-18,Yates,New York,36123,40,6 +2020-06-19,Yates,New York,36123,40,6 +2020-06-20,Yates,New York,36123,41,6 +2020-06-21,Yates,New York,36123,41,6 +2020-06-22,Yates,New York,36123,42,6 +2020-06-23,Yates,New York,36123,43,6 +2020-06-24,Yates,New York,36123,44,6 +2020-06-25,Yates,New York,36123,44,6 +2020-06-26,Yates,New York,36123,45,6 +2020-06-27,Yates,New York,36123,45,6 +2020-06-28,Yates,New York,36123,45,6 +2020-06-29,Yates,New York,36123,46,6 +2020-06-30,Yates,New York,36123,46,6 +2020-07-01,Yates,New York,36123,46,6 +2020-07-02,Yates,New York,36123,46,6 +2020-07-03,Yates,New York,36123,46,6 +2020-07-04,Yates,New York,36123,48,6 +2020-07-05,Yates,New York,36123,48,6 +2020-07-06,Yates,New York,36123,48,6 +2020-07-07,Yates,New York,36123,48,6 +2020-07-08,Yates,New York,36123,48,6 +2020-07-09,Yates,New York,36123,48,6 +2020-03-23,Alamance,North Carolina,37001,3,0 +2020-03-24,Alamance,North Carolina,37001,3,0 +2020-03-25,Alamance,North Carolina,37001,3,0 +2020-03-26,Alamance,North Carolina,37001,4,0 +2020-03-27,Alamance,North Carolina,37001,5,0 +2020-03-28,Alamance,North Carolina,37001,5,0 +2020-03-29,Alamance,North Carolina,37001,6,0 +2020-03-30,Alamance,North Carolina,37001,7,0 +2020-03-31,Alamance,North Carolina,37001,7,0 +2020-04-01,Alamance,North Carolina,37001,7,0 +2020-04-02,Alamance,North Carolina,37001,13,0 +2020-04-03,Alamance,North Carolina,37001,14,0 +2020-04-04,Alamance,North Carolina,37001,16,0 +2020-04-05,Alamance,North Carolina,37001,18,0 +2020-04-06,Alamance,North Carolina,37001,18,0 +2020-04-07,Alamance,North Carolina,37001,24,0 +2020-04-08,Alamance,North Carolina,37001,27,0 +2020-04-09,Alamance,North Carolina,37001,29,0 +2020-04-10,Alamance,North Carolina,37001,33,0 +2020-04-11,Alamance,North Carolina,37001,34,0 +2020-04-12,Alamance,North Carolina,37001,36,0 +2020-04-13,Alamance,North Carolina,37001,41,0 +2020-04-14,Alamance,North Carolina,37001,41,0 +2020-04-15,Alamance,North Carolina,37001,42,0 +2020-04-16,Alamance,North Carolina,37001,45,0 +2020-04-17,Alamance,North Carolina,37001,48,0 +2020-04-18,Alamance,North Carolina,37001,47,0 +2020-04-19,Alamance,North Carolina,37001,49,0 +2020-04-20,Alamance,North Carolina,37001,49,0 +2020-04-21,Alamance,North Carolina,37001,52,0 +2020-04-22,Alamance,North Carolina,37001,55,0 +2020-04-23,Alamance,North Carolina,37001,63,0 +2020-04-24,Alamance,North Carolina,37001,73,1 +2020-04-25,Alamance,North Carolina,37001,77,1 +2020-04-26,Alamance,North Carolina,37001,82,1 +2020-04-27,Alamance,North Carolina,37001,91,1 +2020-04-28,Alamance,North Carolina,37001,92,1 +2020-04-29,Alamance,North Carolina,37001,95,1 +2020-04-30,Alamance,North Carolina,37001,99,1 +2020-05-01,Alamance,North Carolina,37001,106,1 +2020-05-02,Alamance,North Carolina,37001,121,2 +2020-05-03,Alamance,North Carolina,37001,124,2 +2020-05-04,Alamance,North Carolina,37001,128,2 +2020-05-05,Alamance,North Carolina,37001,126,3 +2020-05-06,Alamance,North Carolina,37001,128,3 +2020-05-07,Alamance,North Carolina,37001,143,3 +2020-05-08,Alamance,North Carolina,37001,149,3 +2020-05-09,Alamance,North Carolina,37001,152,5 +2020-05-10,Alamance,North Carolina,37001,172,5 +2020-05-11,Alamance,North Carolina,37001,178,5 +2020-05-12,Alamance,North Carolina,37001,180,8 +2020-05-13,Alamance,North Carolina,37001,181,8 +2020-05-14,Alamance,North Carolina,37001,190,9 +2020-05-15,Alamance,North Carolina,37001,195,9 +2020-05-16,Alamance,North Carolina,37001,203,9 +2020-05-17,Alamance,North Carolina,37001,207,11 +2020-05-18,Alamance,North Carolina,37001,215,11 +2020-05-19,Alamance,North Carolina,37001,223,12 +2020-05-20,Alamance,North Carolina,37001,229,12 +2020-05-21,Alamance,North Carolina,37001,236,12 +2020-05-22,Alamance,North Carolina,37001,246,12 +2020-05-23,Alamance,North Carolina,37001,257,13 +2020-05-24,Alamance,North Carolina,37001,261,13 +2020-05-25,Alamance,North Carolina,37001,282,21 +2020-05-26,Alamance,North Carolina,37001,282,21 +2020-05-27,Alamance,North Carolina,37001,282,21 +2020-05-28,Alamance,North Carolina,37001,293,21 +2020-05-29,Alamance,North Carolina,37001,307,21 +2020-05-30,Alamance,North Carolina,37001,329,21 +2020-05-31,Alamance,North Carolina,37001,349,21 +2020-06-01,Alamance,North Carolina,37001,364,21 +2020-06-02,Alamance,North Carolina,37001,368,21 +2020-06-03,Alamance,North Carolina,37001,382,21 +2020-06-04,Alamance,North Carolina,37001,398,21 +2020-06-05,Alamance,North Carolina,37001,427,21 +2020-06-06,Alamance,North Carolina,37001,451,23 +2020-06-07,Alamance,North Carolina,37001,465,23 +2020-06-08,Alamance,North Carolina,37001,494,23 +2020-06-09,Alamance,North Carolina,37001,519,23 +2020-06-10,Alamance,North Carolina,37001,544,23 +2020-06-11,Alamance,North Carolina,37001,581,23 +2020-06-12,Alamance,North Carolina,37001,641,31 +2020-06-13,Alamance,North Carolina,37001,700,32 +2020-06-14,Alamance,North Carolina,37001,742,33 +2020-06-15,Alamance,North Carolina,37001,778,34 +2020-06-16,Alamance,North Carolina,37001,796,34 +2020-06-17,Alamance,North Carolina,37001,810,35 +2020-06-18,Alamance,North Carolina,37001,838,35 +2020-06-19,Alamance,North Carolina,37001,883,35 +2020-06-20,Alamance,North Carolina,37001,919,35 +2020-06-21,Alamance,North Carolina,37001,939,35 +2020-06-22,Alamance,North Carolina,37001,946,35 +2020-06-23,Alamance,North Carolina,37001,969,36 +2020-06-24,Alamance,North Carolina,37001,994,36 +2020-06-25,Alamance,North Carolina,37001,1009,36 +2020-06-26,Alamance,North Carolina,37001,1032,36 +2020-06-27,Alamance,North Carolina,37001,1066,36 +2020-06-28,Alamance,North Carolina,37001,1088,37 +2020-06-29,Alamance,North Carolina,37001,1114,37 +2020-06-30,Alamance,North Carolina,37001,1121,37 +2020-07-01,Alamance,North Carolina,37001,1151,37 +2020-07-02,Alamance,North Carolina,37001,1179,37 +2020-07-03,Alamance,North Carolina,37001,1207,37 +2020-07-04,Alamance,North Carolina,37001,1240,37 +2020-07-05,Alamance,North Carolina,37001,1274,37 +2020-07-06,Alamance,North Carolina,37001,1292,37 +2020-07-07,Alamance,North Carolina,37001,1309,37 +2020-07-08,Alamance,North Carolina,37001,1319,37 +2020-07-09,Alamance,North Carolina,37001,1357,37 +2020-03-30,Alexander,North Carolina,37003,1,0 +2020-03-31,Alexander,North Carolina,37003,2,0 +2020-04-01,Alexander,North Carolina,37003,2,0 +2020-04-02,Alexander,North Carolina,37003,2,0 +2020-04-03,Alexander,North Carolina,37003,2,0 +2020-04-04,Alexander,North Carolina,37003,2,0 +2020-04-05,Alexander,North Carolina,37003,2,0 +2020-04-06,Alexander,North Carolina,37003,2,0 +2020-04-07,Alexander,North Carolina,37003,2,0 +2020-04-08,Alexander,North Carolina,37003,2,0 +2020-04-09,Alexander,North Carolina,37003,2,0 +2020-04-10,Alexander,North Carolina,37003,2,0 +2020-04-11,Alexander,North Carolina,37003,2,0 +2020-04-12,Alexander,North Carolina,37003,2,0 +2020-04-13,Alexander,North Carolina,37003,2,0 +2020-04-14,Alexander,North Carolina,37003,3,0 +2020-04-15,Alexander,North Carolina,37003,3,0 +2020-04-16,Alexander,North Carolina,37003,3,0 +2020-04-17,Alexander,North Carolina,37003,3,0 +2020-04-18,Alexander,North Carolina,37003,3,0 +2020-04-19,Alexander,North Carolina,37003,3,0 +2020-04-20,Alexander,North Carolina,37003,3,0 +2020-04-21,Alexander,North Carolina,37003,3,0 +2020-04-22,Alexander,North Carolina,37003,3,0 +2020-04-23,Alexander,North Carolina,37003,4,0 +2020-04-24,Alexander,North Carolina,37003,4,0 +2020-04-25,Alexander,North Carolina,37003,4,0 +2020-04-26,Alexander,North Carolina,37003,4,0 +2020-04-27,Alexander,North Carolina,37003,4,0 +2020-04-28,Alexander,North Carolina,37003,4,0 +2020-04-29,Alexander,North Carolina,37003,4,0 +2020-04-30,Alexander,North Carolina,37003,4,0 +2020-05-01,Alexander,North Carolina,37003,4,0 +2020-05-02,Alexander,North Carolina,37003,4,0 +2020-05-03,Alexander,North Carolina,37003,4,0 +2020-05-04,Alexander,North Carolina,37003,4,0 +2020-05-05,Alexander,North Carolina,37003,5,0 +2020-05-06,Alexander,North Carolina,37003,6,0 +2020-05-07,Alexander,North Carolina,37003,8,0 +2020-05-08,Alexander,North Carolina,37003,8,0 +2020-05-09,Alexander,North Carolina,37003,10,0 +2020-05-10,Alexander,North Carolina,37003,12,0 +2020-05-11,Alexander,North Carolina,37003,12,0 +2020-05-12,Alexander,North Carolina,37003,13,0 +2020-05-13,Alexander,North Carolina,37003,14,0 +2020-05-14,Alexander,North Carolina,37003,15,0 +2020-05-15,Alexander,North Carolina,37003,15,0 +2020-05-16,Alexander,North Carolina,37003,18,0 +2020-05-17,Alexander,North Carolina,37003,21,0 +2020-05-18,Alexander,North Carolina,37003,21,0 +2020-05-19,Alexander,North Carolina,37003,21,0 +2020-05-20,Alexander,North Carolina,37003,23,0 +2020-05-21,Alexander,North Carolina,37003,23,0 +2020-05-22,Alexander,North Carolina,37003,23,0 +2020-05-23,Alexander,North Carolina,37003,27,0 +2020-05-24,Alexander,North Carolina,37003,27,0 +2020-05-25,Alexander,North Carolina,37003,27,0 +2020-05-26,Alexander,North Carolina,37003,27,0 +2020-05-27,Alexander,North Carolina,37003,28,0 +2020-05-28,Alexander,North Carolina,37003,30,0 +2020-05-29,Alexander,North Carolina,37003,30,0 +2020-05-30,Alexander,North Carolina,37003,33,0 +2020-05-31,Alexander,North Carolina,37003,33,0 +2020-06-01,Alexander,North Carolina,37003,35,0 +2020-06-02,Alexander,North Carolina,37003,38,0 +2020-06-03,Alexander,North Carolina,37003,38,0 +2020-06-04,Alexander,North Carolina,37003,38,0 +2020-06-05,Alexander,North Carolina,37003,38,0 +2020-06-06,Alexander,North Carolina,37003,43,0 +2020-06-07,Alexander,North Carolina,37003,43,0 +2020-06-08,Alexander,North Carolina,37003,43,0 +2020-06-09,Alexander,North Carolina,37003,43,0 +2020-06-10,Alexander,North Carolina,37003,43,0 +2020-06-11,Alexander,North Carolina,37003,43,0 +2020-06-12,Alexander,North Carolina,37003,46,0 +2020-06-13,Alexander,North Carolina,37003,48,0 +2020-06-14,Alexander,North Carolina,37003,49,0 +2020-06-15,Alexander,North Carolina,37003,50,0 +2020-06-16,Alexander,North Carolina,37003,49,0 +2020-06-17,Alexander,North Carolina,37003,51,0 +2020-06-18,Alexander,North Carolina,37003,56,0 +2020-06-19,Alexander,North Carolina,37003,59,0 +2020-06-20,Alexander,North Carolina,37003,60,0 +2020-06-21,Alexander,North Carolina,37003,65,0 +2020-06-22,Alexander,North Carolina,37003,66,0 +2020-06-23,Alexander,North Carolina,37003,68,0 +2020-06-24,Alexander,North Carolina,37003,73,0 +2020-06-25,Alexander,North Carolina,37003,76,0 +2020-06-26,Alexander,North Carolina,37003,79,0 +2020-06-27,Alexander,North Carolina,37003,84,0 +2020-06-28,Alexander,North Carolina,37003,84,0 +2020-06-29,Alexander,North Carolina,37003,87,0 +2020-06-30,Alexander,North Carolina,37003,91,1 +2020-07-01,Alexander,North Carolina,37003,93,1 +2020-07-02,Alexander,North Carolina,37003,101,1 +2020-07-03,Alexander,North Carolina,37003,105,1 +2020-07-04,Alexander,North Carolina,37003,112,1 +2020-07-05,Alexander,North Carolina,37003,118,1 +2020-07-06,Alexander,North Carolina,37003,124,1 +2020-07-07,Alexander,North Carolina,37003,134,1 +2020-07-08,Alexander,North Carolina,37003,138,1 +2020-07-09,Alexander,North Carolina,37003,140,1 +2020-03-29,Alleghany,North Carolina,37005,1,0 +2020-03-30,Alleghany,North Carolina,37005,2,0 +2020-03-31,Alleghany,North Carolina,37005,2,0 +2020-04-01,Alleghany,North Carolina,37005,2,0 +2020-04-02,Alleghany,North Carolina,37005,2,0 +2020-04-03,Alleghany,North Carolina,37005,2,0 +2020-04-04,Alleghany,North Carolina,37005,2,0 +2020-04-05,Alleghany,North Carolina,37005,2,0 +2020-04-06,Alleghany,North Carolina,37005,2,0 +2020-04-07,Alleghany,North Carolina,37005,2,0 +2020-04-08,Alleghany,North Carolina,37005,2,0 +2020-04-09,Alleghany,North Carolina,37005,2,0 +2020-04-10,Alleghany,North Carolina,37005,2,0 +2020-04-11,Alleghany,North Carolina,37005,2,0 +2020-04-12,Alleghany,North Carolina,37005,2,0 +2020-04-13,Alleghany,North Carolina,37005,2,0 +2020-04-14,Alleghany,North Carolina,37005,2,0 +2020-04-15,Alleghany,North Carolina,37005,2,0 +2020-04-16,Alleghany,North Carolina,37005,2,0 +2020-04-17,Alleghany,North Carolina,37005,2,0 +2020-04-18,Alleghany,North Carolina,37005,2,0 +2020-04-19,Alleghany,North Carolina,37005,2,0 +2020-04-20,Alleghany,North Carolina,37005,2,0 +2020-04-21,Alleghany,North Carolina,37005,2,0 +2020-04-22,Alleghany,North Carolina,37005,2,0 +2020-04-23,Alleghany,North Carolina,37005,2,0 +2020-04-24,Alleghany,North Carolina,37005,2,0 +2020-04-25,Alleghany,North Carolina,37005,2,0 +2020-04-26,Alleghany,North Carolina,37005,2,0 +2020-04-27,Alleghany,North Carolina,37005,2,0 +2020-04-28,Alleghany,North Carolina,37005,2,0 +2020-04-29,Alleghany,North Carolina,37005,2,0 +2020-04-30,Alleghany,North Carolina,37005,3,0 +2020-05-01,Alleghany,North Carolina,37005,4,0 +2020-05-02,Alleghany,North Carolina,37005,6,0 +2020-05-03,Alleghany,North Carolina,37005,6,0 +2020-05-04,Alleghany,North Carolina,37005,6,0 +2020-05-05,Alleghany,North Carolina,37005,6,0 +2020-05-06,Alleghany,North Carolina,37005,7,0 +2020-05-07,Alleghany,North Carolina,37005,7,0 +2020-05-08,Alleghany,North Carolina,37005,7,0 +2020-05-09,Alleghany,North Carolina,37005,7,0 +2020-05-10,Alleghany,North Carolina,37005,8,0 +2020-05-11,Alleghany,North Carolina,37005,8,0 +2020-05-12,Alleghany,North Carolina,37005,8,0 +2020-05-13,Alleghany,North Carolina,37005,9,0 +2020-05-14,Alleghany,North Carolina,37005,10,0 +2020-05-15,Alleghany,North Carolina,37005,10,0 +2020-05-16,Alleghany,North Carolina,37005,11,0 +2020-05-17,Alleghany,North Carolina,37005,11,0 +2020-05-18,Alleghany,North Carolina,37005,12,0 +2020-05-19,Alleghany,North Carolina,37005,12,0 +2020-05-20,Alleghany,North Carolina,37005,12,0 +2020-05-21,Alleghany,North Carolina,37005,12,0 +2020-05-22,Alleghany,North Carolina,37005,12,0 +2020-05-23,Alleghany,North Carolina,37005,12,0 +2020-05-24,Alleghany,North Carolina,37005,12,0 +2020-05-25,Alleghany,North Carolina,37005,13,0 +2020-05-26,Alleghany,North Carolina,37005,13,0 +2020-05-27,Alleghany,North Carolina,37005,14,0 +2020-05-28,Alleghany,North Carolina,37005,14,0 +2020-05-29,Alleghany,North Carolina,37005,14,0 +2020-05-30,Alleghany,North Carolina,37005,15,0 +2020-05-31,Alleghany,North Carolina,37005,16,0 +2020-06-01,Alleghany,North Carolina,37005,17,0 +2020-06-02,Alleghany,North Carolina,37005,18,0 +2020-06-03,Alleghany,North Carolina,37005,18,0 +2020-06-04,Alleghany,North Carolina,37005,22,0 +2020-06-05,Alleghany,North Carolina,37005,24,0 +2020-06-06,Alleghany,North Carolina,37005,28,0 +2020-06-07,Alleghany,North Carolina,37005,28,0 +2020-06-08,Alleghany,North Carolina,37005,29,0 +2020-06-09,Alleghany,North Carolina,37005,30,0 +2020-06-10,Alleghany,North Carolina,37005,30,0 +2020-06-11,Alleghany,North Carolina,37005,30,0 +2020-06-12,Alleghany,North Carolina,37005,30,0 +2020-06-13,Alleghany,North Carolina,37005,30,0 +2020-06-14,Alleghany,North Carolina,37005,30,0 +2020-06-15,Alleghany,North Carolina,37005,30,0 +2020-06-16,Alleghany,North Carolina,37005,30,0 +2020-06-17,Alleghany,North Carolina,37005,30,0 +2020-06-18,Alleghany,North Carolina,37005,30,0 +2020-06-19,Alleghany,North Carolina,37005,30,0 +2020-06-20,Alleghany,North Carolina,37005,30,0 +2020-06-21,Alleghany,North Carolina,37005,30,0 +2020-06-22,Alleghany,North Carolina,37005,30,0 +2020-06-23,Alleghany,North Carolina,37005,30,0 +2020-06-24,Alleghany,North Carolina,37005,31,0 +2020-06-25,Alleghany,North Carolina,37005,31,0 +2020-06-26,Alleghany,North Carolina,37005,31,0 +2020-06-27,Alleghany,North Carolina,37005,31,0 +2020-06-28,Alleghany,North Carolina,37005,31,0 +2020-06-29,Alleghany,North Carolina,37005,31,0 +2020-06-30,Alleghany,North Carolina,37005,31,0 +2020-07-01,Alleghany,North Carolina,37005,32,0 +2020-07-02,Alleghany,North Carolina,37005,36,0 +2020-07-03,Alleghany,North Carolina,37005,36,0 +2020-07-04,Alleghany,North Carolina,37005,36,0 +2020-07-05,Alleghany,North Carolina,37005,37,0 +2020-07-06,Alleghany,North Carolina,37005,37,0 +2020-07-07,Alleghany,North Carolina,37005,37,0 +2020-07-08,Alleghany,North Carolina,37005,37,0 +2020-07-09,Alleghany,North Carolina,37005,39,0 +2020-03-31,Anson,North Carolina,37007,1,0 +2020-04-01,Anson,North Carolina,37007,1,0 +2020-04-02,Anson,North Carolina,37007,1,0 +2020-04-03,Anson,North Carolina,37007,3,0 +2020-04-04,Anson,North Carolina,37007,3,0 +2020-04-05,Anson,North Carolina,37007,5,0 +2020-04-06,Anson,North Carolina,37007,5,0 +2020-04-07,Anson,North Carolina,37007,6,0 +2020-04-08,Anson,North Carolina,37007,6,0 +2020-04-09,Anson,North Carolina,37007,9,0 +2020-04-10,Anson,North Carolina,37007,9,0 +2020-04-11,Anson,North Carolina,37007,10,0 +2020-04-12,Anson,North Carolina,37007,10,0 +2020-04-13,Anson,North Carolina,37007,10,0 +2020-04-14,Anson,North Carolina,37007,11,0 +2020-04-15,Anson,North Carolina,37007,12,0 +2020-04-16,Anson,North Carolina,37007,14,0 +2020-04-17,Anson,North Carolina,37007,14,0 +2020-04-18,Anson,North Carolina,37007,15,0 +2020-04-19,Anson,North Carolina,37007,15,0 +2020-04-20,Anson,North Carolina,37007,18,0 +2020-04-21,Anson,North Carolina,37007,18,0 +2020-04-22,Anson,North Carolina,37007,18,0 +2020-04-23,Anson,North Carolina,37007,18,0 +2020-04-24,Anson,North Carolina,37007,19,0 +2020-04-25,Anson,North Carolina,37007,20,0 +2020-04-26,Anson,North Carolina,37007,20,0 +2020-04-27,Anson,North Carolina,37007,20,0 +2020-04-28,Anson,North Carolina,37007,22,0 +2020-04-29,Anson,North Carolina,37007,24,0 +2020-04-30,Anson,North Carolina,37007,25,0 +2020-05-01,Anson,North Carolina,37007,27,0 +2020-05-02,Anson,North Carolina,37007,29,0 +2020-05-03,Anson,North Carolina,37007,30,0 +2020-05-04,Anson,North Carolina,37007,30,0 +2020-05-05,Anson,North Carolina,37007,30,0 +2020-05-06,Anson,North Carolina,37007,31,0 +2020-05-07,Anson,North Carolina,37007,33,0 +2020-05-08,Anson,North Carolina,37007,37,0 +2020-05-09,Anson,North Carolina,37007,38,0 +2020-05-10,Anson,North Carolina,37007,38,0 +2020-05-11,Anson,North Carolina,37007,38,0 +2020-05-12,Anson,North Carolina,37007,39,0 +2020-05-13,Anson,North Carolina,37007,34,0 +2020-05-14,Anson,North Carolina,37007,41,0 +2020-05-15,Anson,North Carolina,37007,43,0 +2020-05-16,Anson,North Carolina,37007,46,0 +2020-05-17,Anson,North Carolina,37007,47,0 +2020-05-18,Anson,North Carolina,37007,48,0 +2020-05-19,Anson,North Carolina,37007,49,0 +2020-05-20,Anson,North Carolina,37007,50,0 +2020-05-21,Anson,North Carolina,37007,50,0 +2020-05-22,Anson,North Carolina,37007,54,0 +2020-05-23,Anson,North Carolina,37007,58,0 +2020-05-24,Anson,North Carolina,37007,57,0 +2020-05-25,Anson,North Carolina,37007,59,0 +2020-05-26,Anson,North Carolina,37007,61,0 +2020-05-27,Anson,North Carolina,37007,59,0 +2020-05-28,Anson,North Carolina,37007,63,1 +2020-05-29,Anson,North Carolina,37007,63,1 +2020-05-30,Anson,North Carolina,37007,64,1 +2020-05-31,Anson,North Carolina,37007,65,1 +2020-06-01,Anson,North Carolina,37007,65,1 +2020-06-02,Anson,North Carolina,37007,66,1 +2020-06-03,Anson,North Carolina,37007,68,1 +2020-06-04,Anson,North Carolina,37007,68,1 +2020-06-05,Anson,North Carolina,37007,70,1 +2020-06-06,Anson,North Carolina,37007,71,1 +2020-06-07,Anson,North Carolina,37007,72,1 +2020-06-08,Anson,North Carolina,37007,74,1 +2020-06-09,Anson,North Carolina,37007,78,1 +2020-06-10,Anson,North Carolina,37007,78,1 +2020-06-11,Anson,North Carolina,37007,81,1 +2020-06-12,Anson,North Carolina,37007,83,1 +2020-06-13,Anson,North Carolina,37007,85,1 +2020-06-14,Anson,North Carolina,37007,86,1 +2020-06-15,Anson,North Carolina,37007,87,1 +2020-06-16,Anson,North Carolina,37007,89,1 +2020-06-17,Anson,North Carolina,37007,91,1 +2020-06-18,Anson,North Carolina,37007,91,1 +2020-06-19,Anson,North Carolina,37007,95,1 +2020-06-20,Anson,North Carolina,37007,96,1 +2020-06-21,Anson,North Carolina,37007,102,1 +2020-06-22,Anson,North Carolina,37007,106,1 +2020-06-23,Anson,North Carolina,37007,107,1 +2020-06-24,Anson,North Carolina,37007,108,1 +2020-06-25,Anson,North Carolina,37007,115,1 +2020-06-26,Anson,North Carolina,37007,119,1 +2020-06-27,Anson,North Carolina,37007,121,1 +2020-06-28,Anson,North Carolina,37007,125,1 +2020-06-29,Anson,North Carolina,37007,126,1 +2020-06-30,Anson,North Carolina,37007,128,1 +2020-07-01,Anson,North Carolina,37007,132,1 +2020-07-02,Anson,North Carolina,37007,138,1 +2020-07-03,Anson,North Carolina,37007,142,1 +2020-07-04,Anson,North Carolina,37007,148,1 +2020-07-05,Anson,North Carolina,37007,149,1 +2020-07-06,Anson,North Carolina,37007,155,1 +2020-07-07,Anson,North Carolina,37007,162,1 +2020-07-08,Anson,North Carolina,37007,171,1 +2020-07-09,Anson,North Carolina,37007,176,1 +2020-04-04,Ashe,North Carolina,37009,1,0 +2020-04-05,Ashe,North Carolina,37009,1,0 +2020-04-06,Ashe,North Carolina,37009,1,0 +2020-04-07,Ashe,North Carolina,37009,2,0 +2020-04-08,Ashe,North Carolina,37009,2,0 +2020-04-09,Ashe,North Carolina,37009,2,0 +2020-04-10,Ashe,North Carolina,37009,3,0 +2020-04-11,Ashe,North Carolina,37009,4,0 +2020-04-12,Ashe,North Carolina,37009,4,0 +2020-04-13,Ashe,North Carolina,37009,4,0 +2020-04-14,Ashe,North Carolina,37009,4,0 +2020-04-15,Ashe,North Carolina,37009,4,0 +2020-04-16,Ashe,North Carolina,37009,4,0 +2020-04-17,Ashe,North Carolina,37009,4,0 +2020-04-18,Ashe,North Carolina,37009,4,0 +2020-04-19,Ashe,North Carolina,37009,4,0 +2020-04-20,Ashe,North Carolina,37009,4,0 +2020-04-21,Ashe,North Carolina,37009,4,0 +2020-04-22,Ashe,North Carolina,37009,4,0 +2020-04-23,Ashe,North Carolina,37009,4,0 +2020-04-24,Ashe,North Carolina,37009,4,0 +2020-04-25,Ashe,North Carolina,37009,4,0 +2020-04-26,Ashe,North Carolina,37009,4,0 +2020-04-27,Ashe,North Carolina,37009,4,0 +2020-04-28,Ashe,North Carolina,37009,4,0 +2020-04-29,Ashe,North Carolina,37009,5,0 +2020-04-30,Ashe,North Carolina,37009,5,0 +2020-05-01,Ashe,North Carolina,37009,5,0 +2020-05-02,Ashe,North Carolina,37009,5,0 +2020-05-03,Ashe,North Carolina,37009,5,0 +2020-05-04,Ashe,North Carolina,37009,5,0 +2020-05-05,Ashe,North Carolina,37009,5,0 +2020-05-06,Ashe,North Carolina,37009,5,0 +2020-05-07,Ashe,North Carolina,37009,6,0 +2020-05-08,Ashe,North Carolina,37009,7,0 +2020-05-09,Ashe,North Carolina,37009,8,0 +2020-05-10,Ashe,North Carolina,37009,10,0 +2020-05-11,Ashe,North Carolina,37009,10,0 +2020-05-12,Ashe,North Carolina,37009,14,0 +2020-05-13,Ashe,North Carolina,37009,16,0 +2020-05-14,Ashe,North Carolina,37009,17,0 +2020-05-15,Ashe,North Carolina,37009,17,0 +2020-05-16,Ashe,North Carolina,37009,26,0 +2020-05-17,Ashe,North Carolina,37009,27,0 +2020-05-18,Ashe,North Carolina,37009,28,0 +2020-05-19,Ashe,North Carolina,37009,28,0 +2020-05-20,Ashe,North Carolina,37009,28,0 +2020-05-21,Ashe,North Carolina,37009,31,0 +2020-05-22,Ashe,North Carolina,37009,31,0 +2020-05-23,Ashe,North Carolina,37009,33,0 +2020-05-24,Ashe,North Carolina,37009,35,0 +2020-05-25,Ashe,North Carolina,37009,34,0 +2020-05-26,Ashe,North Carolina,37009,34,0 +2020-05-27,Ashe,North Carolina,37009,34,0 +2020-05-28,Ashe,North Carolina,37009,34,0 +2020-05-29,Ashe,North Carolina,37009,36,0 +2020-05-30,Ashe,North Carolina,37009,36,0 +2020-05-31,Ashe,North Carolina,37009,37,0 +2020-06-01,Ashe,North Carolina,37009,37,0 +2020-06-02,Ashe,North Carolina,37009,36,0 +2020-06-03,Ashe,North Carolina,37009,36,0 +2020-06-04,Ashe,North Carolina,37009,39,0 +2020-06-05,Ashe,North Carolina,37009,39,0 +2020-06-06,Ashe,North Carolina,37009,40,0 +2020-06-07,Ashe,North Carolina,37009,40,0 +2020-06-08,Ashe,North Carolina,37009,40,0 +2020-06-09,Ashe,North Carolina,37009,41,0 +2020-06-10,Ashe,North Carolina,37009,42,1 +2020-06-11,Ashe,North Carolina,37009,42,1 +2020-06-12,Ashe,North Carolina,37009,43,1 +2020-06-13,Ashe,North Carolina,37009,43,1 +2020-06-14,Ashe,North Carolina,37009,43,1 +2020-06-15,Ashe,North Carolina,37009,43,1 +2020-06-16,Ashe,North Carolina,37009,43,1 +2020-06-17,Ashe,North Carolina,37009,43,1 +2020-06-18,Ashe,North Carolina,37009,44,1 +2020-06-19,Ashe,North Carolina,37009,45,1 +2020-06-20,Ashe,North Carolina,37009,47,1 +2020-06-21,Ashe,North Carolina,37009,47,1 +2020-06-22,Ashe,North Carolina,37009,47,1 +2020-06-23,Ashe,North Carolina,37009,49,1 +2020-06-24,Ashe,North Carolina,37009,49,1 +2020-06-25,Ashe,North Carolina,37009,50,1 +2020-06-26,Ashe,North Carolina,37009,51,1 +2020-06-27,Ashe,North Carolina,37009,52,1 +2020-06-28,Ashe,North Carolina,37009,52,1 +2020-06-29,Ashe,North Carolina,37009,52,1 +2020-06-30,Ashe,North Carolina,37009,54,1 +2020-07-01,Ashe,North Carolina,37009,54,1 +2020-07-02,Ashe,North Carolina,37009,54,1 +2020-07-03,Ashe,North Carolina,37009,54,1 +2020-07-04,Ashe,North Carolina,37009,54,1 +2020-07-05,Ashe,North Carolina,37009,57,1 +2020-07-06,Ashe,North Carolina,37009,60,1 +2020-07-07,Ashe,North Carolina,37009,60,1 +2020-07-08,Ashe,North Carolina,37009,61,1 +2020-07-09,Ashe,North Carolina,37009,61,1 +2020-05-19,Avery,North Carolina,37011,1,0 +2020-05-20,Avery,North Carolina,37011,1,0 +2020-05-21,Avery,North Carolina,37011,1,0 +2020-05-22,Avery,North Carolina,37011,2,0 +2020-05-23,Avery,North Carolina,37011,2,0 +2020-05-24,Avery,North Carolina,37011,2,0 +2020-05-25,Avery,North Carolina,37011,2,0 +2020-05-26,Avery,North Carolina,37011,2,0 +2020-05-27,Avery,North Carolina,37011,2,0 +2020-05-28,Avery,North Carolina,37011,2,0 +2020-05-29,Avery,North Carolina,37011,2,0 +2020-05-30,Avery,North Carolina,37011,2,0 +2020-05-31,Avery,North Carolina,37011,2,0 +2020-06-01,Avery,North Carolina,37011,2,0 +2020-06-02,Avery,North Carolina,37011,2,0 +2020-06-03,Avery,North Carolina,37011,2,0 +2020-06-04,Avery,North Carolina,37011,2,0 +2020-06-05,Avery,North Carolina,37011,3,0 +2020-06-06,Avery,North Carolina,37011,3,0 +2020-06-07,Avery,North Carolina,37011,3,0 +2020-06-08,Avery,North Carolina,37011,4,0 +2020-06-09,Avery,North Carolina,37011,6,0 +2020-06-10,Avery,North Carolina,37011,6,0 +2020-06-11,Avery,North Carolina,37011,6,0 +2020-06-12,Avery,North Carolina,37011,6,0 +2020-06-13,Avery,North Carolina,37011,6,0 +2020-06-14,Avery,North Carolina,37011,6,0 +2020-06-15,Avery,North Carolina,37011,6,0 +2020-06-16,Avery,North Carolina,37011,6,0 +2020-06-17,Avery,North Carolina,37011,6,0 +2020-06-18,Avery,North Carolina,37011,6,0 +2020-06-19,Avery,North Carolina,37011,8,0 +2020-06-20,Avery,North Carolina,37011,7,0 +2020-06-21,Avery,North Carolina,37011,8,0 +2020-06-22,Avery,North Carolina,37011,8,0 +2020-06-23,Avery,North Carolina,37011,8,0 +2020-06-24,Avery,North Carolina,37011,8,0 +2020-06-25,Avery,North Carolina,37011,8,0 +2020-06-26,Avery,North Carolina,37011,8,0 +2020-06-27,Avery,North Carolina,37011,9,0 +2020-06-28,Avery,North Carolina,37011,9,0 +2020-06-29,Avery,North Carolina,37011,9,0 +2020-06-30,Avery,North Carolina,37011,12,0 +2020-07-01,Avery,North Carolina,37011,12,0 +2020-07-02,Avery,North Carolina,37011,13,0 +2020-07-03,Avery,North Carolina,37011,13,0 +2020-07-04,Avery,North Carolina,37011,14,0 +2020-07-05,Avery,North Carolina,37011,15,0 +2020-07-06,Avery,North Carolina,37011,18,0 +2020-07-07,Avery,North Carolina,37011,18,0 +2020-07-08,Avery,North Carolina,37011,19,0 +2020-07-09,Avery,North Carolina,37011,21,0 +2020-03-26,Beaufort,North Carolina,37013,2,0 +2020-03-27,Beaufort,North Carolina,37013,3,0 +2020-03-28,Beaufort,North Carolina,37013,3,0 +2020-03-29,Beaufort,North Carolina,37013,3,0 +2020-03-30,Beaufort,North Carolina,37013,3,0 +2020-03-31,Beaufort,North Carolina,37013,4,0 +2020-04-01,Beaufort,North Carolina,37013,5,0 +2020-04-02,Beaufort,North Carolina,37013,7,0 +2020-04-03,Beaufort,North Carolina,37013,7,0 +2020-04-04,Beaufort,North Carolina,37013,8,0 +2020-04-05,Beaufort,North Carolina,37013,8,0 +2020-04-06,Beaufort,North Carolina,37013,8,0 +2020-04-07,Beaufort,North Carolina,37013,9,0 +2020-04-08,Beaufort,North Carolina,37013,9,0 +2020-04-09,Beaufort,North Carolina,37013,10,0 +2020-04-10,Beaufort,North Carolina,37013,12,0 +2020-04-11,Beaufort,North Carolina,37013,13,0 +2020-04-12,Beaufort,North Carolina,37013,13,0 +2020-04-13,Beaufort,North Carolina,37013,14,0 +2020-04-14,Beaufort,North Carolina,37013,13,0 +2020-04-15,Beaufort,North Carolina,37013,13,0 +2020-04-16,Beaufort,North Carolina,37013,13,0 +2020-04-17,Beaufort,North Carolina,37013,13,0 +2020-04-18,Beaufort,North Carolina,37013,13,0 +2020-04-19,Beaufort,North Carolina,37013,14,0 +2020-04-20,Beaufort,North Carolina,37013,14,0 +2020-04-21,Beaufort,North Carolina,37013,15,0 +2020-04-22,Beaufort,North Carolina,37013,16,0 +2020-04-23,Beaufort,North Carolina,37013,16,0 +2020-04-24,Beaufort,North Carolina,37013,16,0 +2020-04-25,Beaufort,North Carolina,37013,20,0 +2020-04-26,Beaufort,North Carolina,37013,20,0 +2020-04-27,Beaufort,North Carolina,37013,20,0 +2020-04-28,Beaufort,North Carolina,37013,20,0 +2020-04-29,Beaufort,North Carolina,37013,20,0 +2020-04-30,Beaufort,North Carolina,37013,21,0 +2020-05-01,Beaufort,North Carolina,37013,22,0 +2020-05-02,Beaufort,North Carolina,37013,21,0 +2020-05-03,Beaufort,North Carolina,37013,21,0 +2020-05-04,Beaufort,North Carolina,37013,21,0 +2020-05-05,Beaufort,North Carolina,37013,21,0 +2020-05-06,Beaufort,North Carolina,37013,21,0 +2020-05-07,Beaufort,North Carolina,37013,22,0 +2020-05-08,Beaufort,North Carolina,37013,24,0 +2020-05-09,Beaufort,North Carolina,37013,24,0 +2020-05-10,Beaufort,North Carolina,37013,25,0 +2020-05-11,Beaufort,North Carolina,37013,25,0 +2020-05-12,Beaufort,North Carolina,37013,25,0 +2020-05-13,Beaufort,North Carolina,37013,25,0 +2020-05-14,Beaufort,North Carolina,37013,26,0 +2020-05-15,Beaufort,North Carolina,37013,26,0 +2020-05-16,Beaufort,North Carolina,37013,27,0 +2020-05-17,Beaufort,North Carolina,37013,27,0 +2020-05-18,Beaufort,North Carolina,37013,30,0 +2020-05-19,Beaufort,North Carolina,37013,30,0 +2020-05-20,Beaufort,North Carolina,37013,30,0 +2020-05-21,Beaufort,North Carolina,37013,30,0 +2020-05-22,Beaufort,North Carolina,37013,32,0 +2020-05-23,Beaufort,North Carolina,37013,32,0 +2020-05-24,Beaufort,North Carolina,37013,32,0 +2020-05-25,Beaufort,North Carolina,37013,32,0 +2020-05-26,Beaufort,North Carolina,37013,32,0 +2020-05-27,Beaufort,North Carolina,37013,33,0 +2020-05-28,Beaufort,North Carolina,37013,33,0 +2020-05-29,Beaufort,North Carolina,37013,33,0 +2020-05-30,Beaufort,North Carolina,37013,34,0 +2020-05-31,Beaufort,North Carolina,37013,34,0 +2020-06-01,Beaufort,North Carolina,37013,34,0 +2020-06-02,Beaufort,North Carolina,37013,36,0 +2020-06-03,Beaufort,North Carolina,37013,36,0 +2020-06-04,Beaufort,North Carolina,37013,39,0 +2020-06-05,Beaufort,North Carolina,37013,41,0 +2020-06-06,Beaufort,North Carolina,37013,41,0 +2020-06-07,Beaufort,North Carolina,37013,41,0 +2020-06-08,Beaufort,North Carolina,37013,41,0 +2020-06-09,Beaufort,North Carolina,37013,43,0 +2020-06-10,Beaufort,North Carolina,37013,43,0 +2020-06-11,Beaufort,North Carolina,37013,45,0 +2020-06-12,Beaufort,North Carolina,37013,49,0 +2020-06-13,Beaufort,North Carolina,37013,51,0 +2020-06-14,Beaufort,North Carolina,37013,50,0 +2020-06-15,Beaufort,North Carolina,37013,51,0 +2020-06-16,Beaufort,North Carolina,37013,52,0 +2020-06-17,Beaufort,North Carolina,37013,53,0 +2020-06-18,Beaufort,North Carolina,37013,55,0 +2020-06-19,Beaufort,North Carolina,37013,54,0 +2020-06-20,Beaufort,North Carolina,37013,55,0 +2020-06-21,Beaufort,North Carolina,37013,57,0 +2020-06-22,Beaufort,North Carolina,37013,59,0 +2020-06-23,Beaufort,North Carolina,37013,61,0 +2020-06-24,Beaufort,North Carolina,37013,61,0 +2020-06-25,Beaufort,North Carolina,37013,62,0 +2020-06-26,Beaufort,North Carolina,37013,66,0 +2020-06-27,Beaufort,North Carolina,37013,74,0 +2020-06-28,Beaufort,North Carolina,37013,77,0 +2020-06-29,Beaufort,North Carolina,37013,80,0 +2020-06-30,Beaufort,North Carolina,37013,83,0 +2020-07-01,Beaufort,North Carolina,37013,83,0 +2020-07-02,Beaufort,North Carolina,37013,93,0 +2020-07-03,Beaufort,North Carolina,37013,100,0 +2020-07-04,Beaufort,North Carolina,37013,103,0 +2020-07-05,Beaufort,North Carolina,37013,104,0 +2020-07-06,Beaufort,North Carolina,37013,108,0 +2020-07-07,Beaufort,North Carolina,37013,110,0 +2020-07-08,Beaufort,North Carolina,37013,118,0 +2020-07-09,Beaufort,North Carolina,37013,123,0 +2020-03-25,Bertie,North Carolina,37015,2,0 +2020-03-26,Bertie,North Carolina,37015,3,0 +2020-03-27,Bertie,North Carolina,37015,3,0 +2020-03-28,Bertie,North Carolina,37015,3,0 +2020-03-29,Bertie,North Carolina,37015,3,0 +2020-03-30,Bertie,North Carolina,37015,5,0 +2020-03-31,Bertie,North Carolina,37015,6,0 +2020-04-01,Bertie,North Carolina,37015,6,0 +2020-04-02,Bertie,North Carolina,37015,6,1 +2020-04-03,Bertie,North Carolina,37015,6,1 +2020-04-04,Bertie,North Carolina,37015,7,1 +2020-04-05,Bertie,North Carolina,37015,7,1 +2020-04-06,Bertie,North Carolina,37015,7,1 +2020-04-07,Bertie,North Carolina,37015,9,1 +2020-04-08,Bertie,North Carolina,37015,10,1 +2020-04-09,Bertie,North Carolina,37015,11,1 +2020-04-10,Bertie,North Carolina,37015,12,1 +2020-04-11,Bertie,North Carolina,37015,12,1 +2020-04-12,Bertie,North Carolina,37015,12,1 +2020-04-13,Bertie,North Carolina,37015,12,1 +2020-04-14,Bertie,North Carolina,37015,15,1 +2020-04-15,Bertie,North Carolina,37015,16,1 +2020-04-16,Bertie,North Carolina,37015,17,1 +2020-04-17,Bertie,North Carolina,37015,18,1 +2020-04-18,Bertie,North Carolina,37015,20,1 +2020-04-19,Bertie,North Carolina,37015,21,1 +2020-04-20,Bertie,North Carolina,37015,24,1 +2020-04-21,Bertie,North Carolina,37015,24,1 +2020-04-22,Bertie,North Carolina,37015,27,1 +2020-04-23,Bertie,North Carolina,37015,31,1 +2020-04-24,Bertie,North Carolina,37015,33,1 +2020-04-25,Bertie,North Carolina,37015,37,1 +2020-04-26,Bertie,North Carolina,37015,37,1 +2020-04-27,Bertie,North Carolina,37015,38,1 +2020-04-28,Bertie,North Carolina,37015,38,2 +2020-04-29,Bertie,North Carolina,37015,38,2 +2020-04-30,Bertie,North Carolina,37015,44,2 +2020-05-01,Bertie,North Carolina,37015,44,2 +2020-05-02,Bertie,North Carolina,37015,47,2 +2020-05-03,Bertie,North Carolina,37015,47,2 +2020-05-04,Bertie,North Carolina,37015,48,2 +2020-05-05,Bertie,North Carolina,37015,51,2 +2020-05-06,Bertie,North Carolina,37015,53,2 +2020-05-07,Bertie,North Carolina,37015,57,2 +2020-05-08,Bertie,North Carolina,37015,58,2 +2020-05-09,Bertie,North Carolina,37015,60,2 +2020-05-10,Bertie,North Carolina,37015,61,2 +2020-05-11,Bertie,North Carolina,37015,61,2 +2020-05-12,Bertie,North Carolina,37015,67,3 +2020-05-13,Bertie,North Carolina,37015,72,3 +2020-05-14,Bertie,North Carolina,37015,74,3 +2020-05-15,Bertie,North Carolina,37015,76,3 +2020-05-16,Bertie,North Carolina,37015,84,3 +2020-05-17,Bertie,North Carolina,37015,87,3 +2020-05-18,Bertie,North Carolina,37015,89,3 +2020-05-19,Bertie,North Carolina,37015,95,3 +2020-05-20,Bertie,North Carolina,37015,98,3 +2020-05-21,Bertie,North Carolina,37015,99,3 +2020-05-22,Bertie,North Carolina,37015,108,3 +2020-05-23,Bertie,North Carolina,37015,109,3 +2020-05-24,Bertie,North Carolina,37015,113,3 +2020-05-25,Bertie,North Carolina,37015,115,3 +2020-05-26,Bertie,North Carolina,37015,115,4 +2020-05-27,Bertie,North Carolina,37015,115,4 +2020-05-28,Bertie,North Carolina,37015,118,4 +2020-05-29,Bertie,North Carolina,37015,119,4 +2020-05-30,Bertie,North Carolina,37015,122,4 +2020-05-31,Bertie,North Carolina,37015,122,4 +2020-06-01,Bertie,North Carolina,37015,122,4 +2020-06-02,Bertie,North Carolina,37015,125,4 +2020-06-03,Bertie,North Carolina,37015,126,4 +2020-06-04,Bertie,North Carolina,37015,127,4 +2020-06-05,Bertie,North Carolina,37015,129,4 +2020-06-06,Bertie,North Carolina,37015,133,4 +2020-06-07,Bertie,North Carolina,37015,134,4 +2020-06-08,Bertie,North Carolina,37015,134,4 +2020-06-09,Bertie,North Carolina,37015,134,4 +2020-06-10,Bertie,North Carolina,37015,134,4 +2020-06-11,Bertie,North Carolina,37015,135,4 +2020-06-12,Bertie,North Carolina,37015,134,4 +2020-06-13,Bertie,North Carolina,37015,134,4 +2020-06-14,Bertie,North Carolina,37015,134,4 +2020-06-15,Bertie,North Carolina,37015,134,4 +2020-06-16,Bertie,North Carolina,37015,134,4 +2020-06-17,Bertie,North Carolina,37015,135,4 +2020-06-18,Bertie,North Carolina,37015,135,4 +2020-06-19,Bertie,North Carolina,37015,136,4 +2020-06-20,Bertie,North Carolina,37015,136,4 +2020-06-21,Bertie,North Carolina,37015,136,4 +2020-06-22,Bertie,North Carolina,37015,136,4 +2020-06-23,Bertie,North Carolina,37015,137,4 +2020-06-24,Bertie,North Carolina,37015,138,4 +2020-06-25,Bertie,North Carolina,37015,139,4 +2020-06-26,Bertie,North Carolina,37015,140,4 +2020-06-27,Bertie,North Carolina,37015,141,4 +2020-06-28,Bertie,North Carolina,37015,141,4 +2020-06-29,Bertie,North Carolina,37015,145,4 +2020-06-30,Bertie,North Carolina,37015,145,4 +2020-07-01,Bertie,North Carolina,37015,146,4 +2020-07-02,Bertie,North Carolina,37015,146,4 +2020-07-03,Bertie,North Carolina,37015,146,4 +2020-07-04,Bertie,North Carolina,37015,149,4 +2020-07-05,Bertie,North Carolina,37015,151,4 +2020-07-06,Bertie,North Carolina,37015,151,4 +2020-07-07,Bertie,North Carolina,37015,151,4 +2020-07-08,Bertie,North Carolina,37015,152,4 +2020-07-09,Bertie,North Carolina,37015,154,4 +2020-04-03,Bladen,North Carolina,37017,1,0 +2020-04-04,Bladen,North Carolina,37017,1,0 +2020-04-05,Bladen,North Carolina,37017,1,0 +2020-04-06,Bladen,North Carolina,37017,1,0 +2020-04-07,Bladen,North Carolina,37017,1,0 +2020-04-08,Bladen,North Carolina,37017,1,0 +2020-04-09,Bladen,North Carolina,37017,1,0 +2020-04-10,Bladen,North Carolina,37017,1,0 +2020-04-11,Bladen,North Carolina,37017,1,0 +2020-04-12,Bladen,North Carolina,37017,2,0 +2020-04-13,Bladen,North Carolina,37017,1,0 +2020-04-14,Bladen,North Carolina,37017,1,0 +2020-04-15,Bladen,North Carolina,37017,1,0 +2020-04-16,Bladen,North Carolina,37017,1,0 +2020-04-17,Bladen,North Carolina,37017,1,0 +2020-04-18,Bladen,North Carolina,37017,2,0 +2020-04-19,Bladen,North Carolina,37017,2,0 +2020-04-20,Bladen,North Carolina,37017,2,0 +2020-04-21,Bladen,North Carolina,37017,4,0 +2020-04-22,Bladen,North Carolina,37017,4,0 +2020-04-23,Bladen,North Carolina,37017,4,0 +2020-04-24,Bladen,North Carolina,37017,6,0 +2020-04-25,Bladen,North Carolina,37017,7,0 +2020-04-26,Bladen,North Carolina,37017,10,0 +2020-04-27,Bladen,North Carolina,37017,10,0 +2020-04-28,Bladen,North Carolina,37017,13,0 +2020-04-29,Bladen,North Carolina,37017,20,0 +2020-04-30,Bladen,North Carolina,37017,21,0 +2020-05-01,Bladen,North Carolina,37017,25,0 +2020-05-02,Bladen,North Carolina,37017,27,0 +2020-05-03,Bladen,North Carolina,37017,27,0 +2020-05-04,Bladen,North Carolina,37017,29,0 +2020-05-05,Bladen,North Carolina,37017,34,0 +2020-05-06,Bladen,North Carolina,37017,40,1 +2020-05-07,Bladen,North Carolina,37017,45,1 +2020-05-08,Bladen,North Carolina,37017,50,1 +2020-05-09,Bladen,North Carolina,37017,51,1 +2020-05-10,Bladen,North Carolina,37017,52,1 +2020-05-11,Bladen,North Carolina,37017,54,1 +2020-05-12,Bladen,North Carolina,37017,60,1 +2020-05-13,Bladen,North Carolina,37017,63,1 +2020-05-14,Bladen,North Carolina,37017,66,2 +2020-05-15,Bladen,North Carolina,37017,68,2 +2020-05-16,Bladen,North Carolina,37017,70,2 +2020-05-17,Bladen,North Carolina,37017,71,2 +2020-05-18,Bladen,North Carolina,37017,73,2 +2020-05-19,Bladen,North Carolina,37017,78,2 +2020-05-20,Bladen,North Carolina,37017,81,2 +2020-05-21,Bladen,North Carolina,37017,83,2 +2020-05-22,Bladen,North Carolina,37017,91,2 +2020-05-23,Bladen,North Carolina,37017,92,2 +2020-05-24,Bladen,North Carolina,37017,94,2 +2020-05-25,Bladen,North Carolina,37017,94,2 +2020-05-26,Bladen,North Carolina,37017,94,2 +2020-05-27,Bladen,North Carolina,37017,94,2 +2020-05-28,Bladen,North Carolina,37017,94,2 +2020-05-29,Bladen,North Carolina,37017,95,2 +2020-05-30,Bladen,North Carolina,37017,100,2 +2020-05-31,Bladen,North Carolina,37017,101,2 +2020-06-01,Bladen,North Carolina,37017,105,2 +2020-06-02,Bladen,North Carolina,37017,104,2 +2020-06-03,Bladen,North Carolina,37017,106,2 +2020-06-04,Bladen,North Carolina,37017,132,2 +2020-06-05,Bladen,North Carolina,37017,143,2 +2020-06-06,Bladen,North Carolina,37017,153,2 +2020-06-07,Bladen,North Carolina,37017,162,2 +2020-06-08,Bladen,North Carolina,37017,165,2 +2020-06-09,Bladen,North Carolina,37017,163,2 +2020-06-10,Bladen,North Carolina,37017,164,2 +2020-06-11,Bladen,North Carolina,37017,173,2 +2020-06-12,Bladen,North Carolina,37017,186,2 +2020-06-13,Bladen,North Carolina,37017,188,2 +2020-06-14,Bladen,North Carolina,37017,194,2 +2020-06-15,Bladen,North Carolina,37017,196,2 +2020-06-16,Bladen,North Carolina,37017,199,2 +2020-06-17,Bladen,North Carolina,37017,214,2 +2020-06-18,Bladen,North Carolina,37017,220,2 +2020-06-19,Bladen,North Carolina,37017,232,2 +2020-06-20,Bladen,North Carolina,37017,262,2 +2020-06-21,Bladen,North Carolina,37017,307,2 +2020-06-22,Bladen,North Carolina,37017,310,2 +2020-06-23,Bladen,North Carolina,37017,321,2 +2020-06-24,Bladen,North Carolina,37017,333,2 +2020-06-25,Bladen,North Carolina,37017,341,3 +2020-06-26,Bladen,North Carolina,37017,344,3 +2020-06-27,Bladen,North Carolina,37017,349,3 +2020-06-28,Bladen,North Carolina,37017,357,3 +2020-06-29,Bladen,North Carolina,37017,366,3 +2020-06-30,Bladen,North Carolina,37017,371,3 +2020-07-01,Bladen,North Carolina,37017,379,3 +2020-07-02,Bladen,North Carolina,37017,384,3 +2020-07-03,Bladen,North Carolina,37017,397,3 +2020-07-04,Bladen,North Carolina,37017,398,3 +2020-07-05,Bladen,North Carolina,37017,399,3 +2020-07-06,Bladen,North Carolina,37017,399,3 +2020-07-07,Bladen,North Carolina,37017,406,4 +2020-07-08,Bladen,North Carolina,37017,411,4 +2020-07-09,Bladen,North Carolina,37017,419,5 +2020-03-14,Brunswick,North Carolina,37019,1,0 +2020-03-15,Brunswick,North Carolina,37019,1,0 +2020-03-16,Brunswick,North Carolina,37019,1,0 +2020-03-17,Brunswick,North Carolina,37019,1,0 +2020-03-18,Brunswick,North Carolina,37019,1,0 +2020-03-19,Brunswick,North Carolina,37019,2,0 +2020-03-20,Brunswick,North Carolina,37019,4,0 +2020-03-21,Brunswick,North Carolina,37019,4,0 +2020-03-22,Brunswick,North Carolina,37019,5,0 +2020-03-23,Brunswick,North Carolina,37019,5,0 +2020-03-24,Brunswick,North Carolina,37019,8,0 +2020-03-25,Brunswick,North Carolina,37019,10,0 +2020-03-26,Brunswick,North Carolina,37019,11,0 +2020-03-27,Brunswick,North Carolina,37019,11,0 +2020-03-28,Brunswick,North Carolina,37019,12,0 +2020-03-29,Brunswick,North Carolina,37019,12,0 +2020-03-30,Brunswick,North Carolina,37019,13,0 +2020-03-31,Brunswick,North Carolina,37019,14,0 +2020-04-01,Brunswick,North Carolina,37019,14,0 +2020-04-02,Brunswick,North Carolina,37019,19,0 +2020-04-03,Brunswick,North Carolina,37019,22,1 +2020-04-04,Brunswick,North Carolina,37019,23,1 +2020-04-05,Brunswick,North Carolina,37019,24,1 +2020-04-06,Brunswick,North Carolina,37019,26,1 +2020-04-07,Brunswick,North Carolina,37019,26,1 +2020-04-08,Brunswick,North Carolina,37019,26,1 +2020-04-09,Brunswick,North Carolina,37019,28,1 +2020-04-10,Brunswick,North Carolina,37019,30,2 +2020-04-11,Brunswick,North Carolina,37019,34,2 +2020-04-12,Brunswick,North Carolina,37019,33,2 +2020-04-13,Brunswick,North Carolina,37019,35,2 +2020-04-14,Brunswick,North Carolina,37019,35,2 +2020-04-15,Brunswick,North Carolina,37019,35,2 +2020-04-16,Brunswick,North Carolina,37019,36,2 +2020-04-17,Brunswick,North Carolina,37019,36,2 +2020-04-18,Brunswick,North Carolina,37019,36,2 +2020-04-19,Brunswick,North Carolina,37019,36,2 +2020-04-20,Brunswick,North Carolina,37019,36,2 +2020-04-21,Brunswick,North Carolina,37019,37,2 +2020-04-22,Brunswick,North Carolina,37019,38,2 +2020-04-23,Brunswick,North Carolina,37019,39,2 +2020-04-24,Brunswick,North Carolina,37019,39,3 +2020-04-25,Brunswick,North Carolina,37019,39,3 +2020-04-26,Brunswick,North Carolina,37019,39,3 +2020-04-27,Brunswick,North Carolina,37019,40,3 +2020-04-28,Brunswick,North Carolina,37019,43,3 +2020-04-29,Brunswick,North Carolina,37019,43,3 +2020-04-30,Brunswick,North Carolina,37019,43,3 +2020-05-01,Brunswick,North Carolina,37019,43,3 +2020-05-02,Brunswick,North Carolina,37019,44,3 +2020-05-03,Brunswick,North Carolina,37019,44,3 +2020-05-04,Brunswick,North Carolina,37019,46,3 +2020-05-05,Brunswick,North Carolina,37019,50,3 +2020-05-06,Brunswick,North Carolina,37019,49,3 +2020-05-07,Brunswick,North Carolina,37019,49,3 +2020-05-08,Brunswick,North Carolina,37019,49,3 +2020-05-09,Brunswick,North Carolina,37019,50,3 +2020-05-10,Brunswick,North Carolina,37019,50,4 +2020-05-11,Brunswick,North Carolina,37019,50,4 +2020-05-12,Brunswick,North Carolina,37019,50,4 +2020-05-13,Brunswick,North Carolina,37019,50,4 +2020-05-14,Brunswick,North Carolina,37019,51,4 +2020-05-15,Brunswick,North Carolina,37019,51,4 +2020-05-16,Brunswick,North Carolina,37019,55,4 +2020-05-17,Brunswick,North Carolina,37019,55,4 +2020-05-18,Brunswick,North Carolina,37019,57,4 +2020-05-19,Brunswick,North Carolina,37019,59,4 +2020-05-20,Brunswick,North Carolina,37019,74,4 +2020-05-21,Brunswick,North Carolina,37019,74,4 +2020-05-22,Brunswick,North Carolina,37019,74,4 +2020-05-23,Brunswick,North Carolina,37019,81,4 +2020-05-24,Brunswick,North Carolina,37019,81,4 +2020-05-25,Brunswick,North Carolina,37019,83,4 +2020-05-26,Brunswick,North Carolina,37019,88,4 +2020-05-27,Brunswick,North Carolina,37019,90,4 +2020-05-28,Brunswick,North Carolina,37019,90,4 +2020-05-29,Brunswick,North Carolina,37019,95,4 +2020-05-30,Brunswick,North Carolina,37019,103,4 +2020-05-31,Brunswick,North Carolina,37019,105,4 +2020-06-01,Brunswick,North Carolina,37019,107,4 +2020-06-02,Brunswick,North Carolina,37019,121,5 +2020-06-03,Brunswick,North Carolina,37019,121,5 +2020-06-04,Brunswick,North Carolina,37019,141,5 +2020-06-05,Brunswick,North Carolina,37019,144,5 +2020-06-06,Brunswick,North Carolina,37019,149,5 +2020-06-07,Brunswick,North Carolina,37019,155,5 +2020-06-08,Brunswick,North Carolina,37019,171,5 +2020-06-09,Brunswick,North Carolina,37019,178,5 +2020-06-10,Brunswick,North Carolina,37019,196,5 +2020-06-11,Brunswick,North Carolina,37019,203,5 +2020-06-12,Brunswick,North Carolina,37019,207,5 +2020-06-13,Brunswick,North Carolina,37019,221,5 +2020-06-14,Brunswick,North Carolina,37019,233,5 +2020-06-15,Brunswick,North Carolina,37019,243,5 +2020-06-16,Brunswick,North Carolina,37019,263,5 +2020-06-17,Brunswick,North Carolina,37019,273,5 +2020-06-18,Brunswick,North Carolina,37019,301,5 +2020-06-19,Brunswick,North Carolina,37019,316,5 +2020-06-20,Brunswick,North Carolina,37019,339,5 +2020-06-21,Brunswick,North Carolina,37019,353,5 +2020-06-22,Brunswick,North Carolina,37019,357,5 +2020-06-23,Brunswick,North Carolina,37019,380,5 +2020-06-24,Brunswick,North Carolina,37019,403,5 +2020-06-25,Brunswick,North Carolina,37019,419,5 +2020-06-26,Brunswick,North Carolina,37019,445,5 +2020-06-27,Brunswick,North Carolina,37019,466,6 +2020-06-28,Brunswick,North Carolina,37019,482,6 +2020-06-29,Brunswick,North Carolina,37019,499,7 +2020-06-30,Brunswick,North Carolina,37019,522,7 +2020-07-01,Brunswick,North Carolina,37019,546,8 +2020-07-02,Brunswick,North Carolina,37019,574,8 +2020-07-03,Brunswick,North Carolina,37019,603,8 +2020-07-04,Brunswick,North Carolina,37019,628,8 +2020-07-05,Brunswick,North Carolina,37019,667,8 +2020-07-06,Brunswick,North Carolina,37019,674,8 +2020-07-07,Brunswick,North Carolina,37019,698,9 +2020-07-08,Brunswick,North Carolina,37019,726,9 +2020-07-09,Brunswick,North Carolina,37019,753,9 +2020-03-21,Buncombe,North Carolina,37021,1,0 +2020-03-22,Buncombe,North Carolina,37021,1,0 +2020-03-23,Buncombe,North Carolina,37021,1,0 +2020-03-24,Buncombe,North Carolina,37021,5,0 +2020-03-25,Buncombe,North Carolina,37021,12,0 +2020-03-26,Buncombe,North Carolina,37021,15,0 +2020-03-27,Buncombe,North Carolina,37021,15,0 +2020-03-28,Buncombe,North Carolina,37021,17,0 +2020-03-29,Buncombe,North Carolina,37021,19,1 +2020-03-30,Buncombe,North Carolina,37021,20,1 +2020-03-31,Buncombe,North Carolina,37021,22,1 +2020-04-01,Buncombe,North Carolina,37021,22,1 +2020-04-02,Buncombe,North Carolina,37021,22,1 +2020-04-03,Buncombe,North Carolina,37021,24,1 +2020-04-04,Buncombe,North Carolina,37021,27,1 +2020-04-05,Buncombe,North Carolina,37021,28,1 +2020-04-06,Buncombe,North Carolina,37021,31,1 +2020-04-07,Buncombe,North Carolina,37021,33,1 +2020-04-08,Buncombe,North Carolina,37021,33,1 +2020-04-09,Buncombe,North Carolina,37021,34,1 +2020-04-10,Buncombe,North Carolina,37021,36,2 +2020-04-11,Buncombe,North Carolina,37021,36,2 +2020-04-12,Buncombe,North Carolina,37021,36,2 +2020-04-13,Buncombe,North Carolina,37021,36,3 +2020-04-14,Buncombe,North Carolina,37021,37,3 +2020-04-15,Buncombe,North Carolina,37021,37,3 +2020-04-16,Buncombe,North Carolina,37021,41,3 +2020-04-17,Buncombe,North Carolina,37021,42,3 +2020-04-18,Buncombe,North Carolina,37021,45,3 +2020-04-19,Buncombe,North Carolina,37021,46,3 +2020-04-20,Buncombe,North Carolina,37021,45,3 +2020-04-21,Buncombe,North Carolina,37021,46,3 +2020-04-22,Buncombe,North Carolina,37021,46,3 +2020-04-23,Buncombe,North Carolina,37021,49,3 +2020-04-24,Buncombe,North Carolina,37021,49,3 +2020-04-25,Buncombe,North Carolina,37021,50,3 +2020-04-26,Buncombe,North Carolina,37021,51,3 +2020-04-27,Buncombe,North Carolina,37021,51,3 +2020-04-28,Buncombe,North Carolina,37021,53,4 +2020-04-29,Buncombe,North Carolina,37021,54,4 +2020-04-30,Buncombe,North Carolina,37021,63,4 +2020-05-01,Buncombe,North Carolina,37021,65,4 +2020-05-02,Buncombe,North Carolina,37021,72,4 +2020-05-03,Buncombe,North Carolina,37021,73,4 +2020-05-04,Buncombe,North Carolina,37021,77,4 +2020-05-05,Buncombe,North Carolina,37021,78,4 +2020-05-06,Buncombe,North Carolina,37021,78,4 +2020-05-07,Buncombe,North Carolina,37021,88,4 +2020-05-08,Buncombe,North Carolina,37021,88,4 +2020-05-09,Buncombe,North Carolina,37021,92,4 +2020-05-10,Buncombe,North Carolina,37021,100,4 +2020-05-11,Buncombe,North Carolina,37021,101,4 +2020-05-12,Buncombe,North Carolina,37021,103,4 +2020-05-13,Buncombe,North Carolina,37021,105,4 +2020-05-14,Buncombe,North Carolina,37021,116,4 +2020-05-15,Buncombe,North Carolina,37021,138,4 +2020-05-16,Buncombe,North Carolina,37021,152,4 +2020-05-17,Buncombe,North Carolina,37021,168,4 +2020-05-18,Buncombe,North Carolina,37021,176,4 +2020-05-19,Buncombe,North Carolina,37021,182,6 +2020-05-20,Buncombe,North Carolina,37021,183,7 +2020-05-21,Buncombe,North Carolina,37021,209,7 +2020-05-22,Buncombe,North Carolina,37021,246,7 +2020-05-23,Buncombe,North Carolina,37021,251,7 +2020-05-24,Buncombe,North Carolina,37021,262,11 +2020-05-25,Buncombe,North Carolina,37021,276,15 +2020-05-26,Buncombe,North Carolina,37021,277,15 +2020-05-27,Buncombe,North Carolina,37021,279,16 +2020-05-28,Buncombe,North Carolina,37021,303,18 +2020-05-29,Buncombe,North Carolina,37021,310,20 +2020-05-30,Buncombe,North Carolina,37021,323,20 +2020-05-31,Buncombe,North Carolina,37021,335,23 +2020-06-01,Buncombe,North Carolina,37021,346,24 +2020-06-02,Buncombe,North Carolina,37021,354,29 +2020-06-03,Buncombe,North Carolina,37021,361,29 +2020-06-04,Buncombe,North Carolina,37021,374,30 +2020-06-05,Buncombe,North Carolina,37021,382,30 +2020-06-06,Buncombe,North Carolina,37021,389,32 +2020-06-07,Buncombe,North Carolina,37021,396,33 +2020-06-08,Buncombe,North Carolina,37021,399,33 +2020-06-09,Buncombe,North Carolina,37021,401,34 +2020-06-10,Buncombe,North Carolina,37021,408,34 +2020-06-11,Buncombe,North Carolina,37021,417,34 +2020-06-12,Buncombe,North Carolina,37021,426,34 +2020-06-13,Buncombe,North Carolina,37021,439,34 +2020-06-14,Buncombe,North Carolina,37021,449,34 +2020-06-15,Buncombe,North Carolina,37021,456,34 +2020-06-16,Buncombe,North Carolina,37021,461,35 +2020-06-17,Buncombe,North Carolina,37021,464,35 +2020-06-18,Buncombe,North Carolina,37021,478,35 +2020-06-19,Buncombe,North Carolina,37021,484,35 +2020-06-20,Buncombe,North Carolina,37021,494,35 +2020-06-21,Buncombe,North Carolina,37021,501,35 +2020-06-22,Buncombe,North Carolina,37021,504,35 +2020-06-23,Buncombe,North Carolina,37021,509,36 +2020-06-24,Buncombe,North Carolina,37021,514,36 +2020-06-25,Buncombe,North Carolina,37021,519,36 +2020-06-26,Buncombe,North Carolina,37021,528,36 +2020-06-27,Buncombe,North Carolina,37021,536,36 +2020-06-28,Buncombe,North Carolina,37021,547,36 +2020-06-29,Buncombe,North Carolina,37021,574,36 +2020-06-30,Buncombe,North Carolina,37021,591,38 +2020-07-01,Buncombe,North Carolina,37021,603,38 +2020-07-02,Buncombe,North Carolina,37021,624,38 +2020-07-03,Buncombe,North Carolina,37021,625,39 +2020-07-04,Buncombe,North Carolina,37021,646,39 +2020-07-05,Buncombe,North Carolina,37021,675,39 +2020-07-06,Buncombe,North Carolina,37021,693,39 +2020-07-07,Buncombe,North Carolina,37021,711,39 +2020-07-08,Buncombe,North Carolina,37021,737,39 +2020-07-09,Buncombe,North Carolina,37021,777,40 +2020-03-25,Burke,North Carolina,37023,2,0 +2020-03-26,Burke,North Carolina,37023,2,0 +2020-03-27,Burke,North Carolina,37023,2,0 +2020-03-28,Burke,North Carolina,37023,2,0 +2020-03-29,Burke,North Carolina,37023,4,0 +2020-03-30,Burke,North Carolina,37023,5,0 +2020-03-31,Burke,North Carolina,37023,5,0 +2020-04-01,Burke,North Carolina,37023,5,0 +2020-04-02,Burke,North Carolina,37023,9,0 +2020-04-03,Burke,North Carolina,37023,10,0 +2020-04-04,Burke,North Carolina,37023,13,0 +2020-04-05,Burke,North Carolina,37023,15,1 +2020-04-06,Burke,North Carolina,37023,25,1 +2020-04-07,Burke,North Carolina,37023,29,2 +2020-04-08,Burke,North Carolina,37023,29,2 +2020-04-09,Burke,North Carolina,37023,42,2 +2020-04-10,Burke,North Carolina,37023,44,2 +2020-04-11,Burke,North Carolina,37023,61,2 +2020-04-12,Burke,North Carolina,37023,60,3 +2020-04-13,Burke,North Carolina,37023,61,3 +2020-04-14,Burke,North Carolina,37023,59,3 +2020-04-15,Burke,North Carolina,37023,59,4 +2020-04-16,Burke,North Carolina,37023,59,5 +2020-04-17,Burke,North Carolina,37023,64,5 +2020-04-18,Burke,North Carolina,37023,66,5 +2020-04-19,Burke,North Carolina,37023,67,6 +2020-04-20,Burke,North Carolina,37023,70,6 +2020-04-21,Burke,North Carolina,37023,75,8 +2020-04-22,Burke,North Carolina,37023,77,8 +2020-04-23,Burke,North Carolina,37023,81,8 +2020-04-24,Burke,North Carolina,37023,82,8 +2020-04-25,Burke,North Carolina,37023,86,8 +2020-04-26,Burke,North Carolina,37023,86,8 +2020-04-27,Burke,North Carolina,37023,88,8 +2020-04-28,Burke,North Carolina,37023,89,8 +2020-04-29,Burke,North Carolina,37023,93,8 +2020-04-30,Burke,North Carolina,37023,102,8 +2020-05-01,Burke,North Carolina,37023,106,8 +2020-05-02,Burke,North Carolina,37023,110,9 +2020-05-03,Burke,North Carolina,37023,110,9 +2020-05-04,Burke,North Carolina,37023,112,9 +2020-05-05,Burke,North Carolina,37023,117,9 +2020-05-06,Burke,North Carolina,37023,117,10 +2020-05-07,Burke,North Carolina,37023,126,11 +2020-05-08,Burke,North Carolina,37023,128,11 +2020-05-09,Burke,North Carolina,37023,131,11 +2020-05-10,Burke,North Carolina,37023,136,11 +2020-05-11,Burke,North Carolina,37023,137,11 +2020-05-12,Burke,North Carolina,37023,146,11 +2020-05-13,Burke,North Carolina,37023,148,13 +2020-05-14,Burke,North Carolina,37023,159,14 +2020-05-15,Burke,North Carolina,37023,174,14 +2020-05-16,Burke,North Carolina,37023,191,14 +2020-05-17,Burke,North Carolina,37023,195,14 +2020-05-18,Burke,North Carolina,37023,198,14 +2020-05-19,Burke,North Carolina,37023,206,14 +2020-05-20,Burke,North Carolina,37023,210,14 +2020-05-21,Burke,North Carolina,37023,223,14 +2020-05-22,Burke,North Carolina,37023,248,14 +2020-05-23,Burke,North Carolina,37023,266,14 +2020-05-24,Burke,North Carolina,37023,277,14 +2020-05-25,Burke,North Carolina,37023,296,14 +2020-05-26,Burke,North Carolina,37023,296,14 +2020-05-27,Burke,North Carolina,37023,337,14 +2020-05-28,Burke,North Carolina,37023,338,14 +2020-05-29,Burke,North Carolina,37023,372,14 +2020-05-30,Burke,North Carolina,37023,390,14 +2020-05-31,Burke,North Carolina,37023,404,14 +2020-06-01,Burke,North Carolina,37023,418,14 +2020-06-02,Burke,North Carolina,37023,436,14 +2020-06-03,Burke,North Carolina,37023,474,15 +2020-06-04,Burke,North Carolina,37023,497,15 +2020-06-05,Burke,North Carolina,37023,508,15 +2020-06-06,Burke,North Carolina,37023,540,16 +2020-06-07,Burke,North Carolina,37023,547,16 +2020-06-08,Burke,North Carolina,37023,567,16 +2020-06-09,Burke,North Carolina,37023,584,16 +2020-06-10,Burke,North Carolina,37023,595,16 +2020-06-11,Burke,North Carolina,37023,656,16 +2020-06-12,Burke,North Carolina,37023,669,16 +2020-06-13,Burke,North Carolina,37023,706,16 +2020-06-14,Burke,North Carolina,37023,716,16 +2020-06-15,Burke,North Carolina,37023,726,16 +2020-06-16,Burke,North Carolina,37023,751,16 +2020-06-17,Burke,North Carolina,37023,838,16 +2020-06-18,Burke,North Carolina,37023,872,16 +2020-06-19,Burke,North Carolina,37023,882,17 +2020-06-20,Burke,North Carolina,37023,895,17 +2020-06-21,Burke,North Carolina,37023,911,17 +2020-06-22,Burke,North Carolina,37023,912,17 +2020-06-23,Burke,North Carolina,37023,918,17 +2020-06-24,Burke,North Carolina,37023,934,17 +2020-06-25,Burke,North Carolina,37023,954,17 +2020-06-26,Burke,North Carolina,37023,983,18 +2020-06-27,Burke,North Carolina,37023,1000,19 +2020-06-28,Burke,North Carolina,37023,1016,20 +2020-06-29,Burke,North Carolina,37023,1022,20 +2020-06-30,Burke,North Carolina,37023,1033,20 +2020-07-01,Burke,North Carolina,37023,1042,20 +2020-07-02,Burke,North Carolina,37023,1057,20 +2020-07-03,Burke,North Carolina,37023,1074,20 +2020-07-04,Burke,North Carolina,37023,1099,20 +2020-07-05,Burke,North Carolina,37023,1105,20 +2020-07-06,Burke,North Carolina,37023,1110,20 +2020-07-07,Burke,North Carolina,37023,1129,20 +2020-07-08,Burke,North Carolina,37023,1134,20 +2020-07-09,Burke,North Carolina,37023,1144,20 +2020-03-12,Cabarrus,North Carolina,37025,1,0 +2020-03-13,Cabarrus,North Carolina,37025,1,0 +2020-03-14,Cabarrus,North Carolina,37025,1,0 +2020-03-15,Cabarrus,North Carolina,37025,1,0 +2020-03-16,Cabarrus,North Carolina,37025,1,0 +2020-03-17,Cabarrus,North Carolina,37025,1,0 +2020-03-18,Cabarrus,North Carolina,37025,1,0 +2020-03-19,Cabarrus,North Carolina,37025,1,0 +2020-03-20,Cabarrus,North Carolina,37025,2,0 +2020-03-21,Cabarrus,North Carolina,37025,2,0 +2020-03-22,Cabarrus,North Carolina,37025,4,0 +2020-03-23,Cabarrus,North Carolina,37025,6,0 +2020-03-24,Cabarrus,North Carolina,37025,8,0 +2020-03-25,Cabarrus,North Carolina,37025,12,1 +2020-03-26,Cabarrus,North Carolina,37025,16,1 +2020-03-27,Cabarrus,North Carolina,37025,21,1 +2020-03-28,Cabarrus,North Carolina,37025,23,1 +2020-03-29,Cabarrus,North Carolina,37025,29,1 +2020-03-30,Cabarrus,North Carolina,37025,38,1 +2020-03-31,Cabarrus,North Carolina,37025,47,1 +2020-04-01,Cabarrus,North Carolina,37025,47,1 +2020-04-02,Cabarrus,North Carolina,37025,50,1 +2020-04-03,Cabarrus,North Carolina,37025,56,1 +2020-04-04,Cabarrus,North Carolina,37025,65,1 +2020-04-05,Cabarrus,North Carolina,37025,67,1 +2020-04-06,Cabarrus,North Carolina,37025,76,2 +2020-04-07,Cabarrus,North Carolina,37025,81,2 +2020-04-08,Cabarrus,North Carolina,37025,86,2 +2020-04-09,Cabarrus,North Carolina,37025,86,2 +2020-04-10,Cabarrus,North Carolina,37025,94,2 +2020-04-11,Cabarrus,North Carolina,37025,107,2 +2020-04-12,Cabarrus,North Carolina,37025,117,1 +2020-04-13,Cabarrus,North Carolina,37025,165,1 +2020-04-14,Cabarrus,North Carolina,37025,190,3 +2020-04-15,Cabarrus,North Carolina,37025,191,3 +2020-04-16,Cabarrus,North Carolina,37025,198,3 +2020-04-17,Cabarrus,North Carolina,37025,201,3 +2020-04-18,Cabarrus,North Carolina,37025,204,3 +2020-04-19,Cabarrus,North Carolina,37025,208,3 +2020-04-20,Cabarrus,North Carolina,37025,212,3 +2020-04-21,Cabarrus,North Carolina,37025,216,5 +2020-04-22,Cabarrus,North Carolina,37025,228,6 +2020-04-23,Cabarrus,North Carolina,37025,231,6 +2020-04-24,Cabarrus,North Carolina,37025,239,6 +2020-04-25,Cabarrus,North Carolina,37025,247,8 +2020-04-26,Cabarrus,North Carolina,37025,250,8 +2020-04-27,Cabarrus,North Carolina,37025,254,10 +2020-04-28,Cabarrus,North Carolina,37025,258,10 +2020-04-29,Cabarrus,North Carolina,37025,267,10 +2020-04-30,Cabarrus,North Carolina,37025,296,11 +2020-05-01,Cabarrus,North Carolina,37025,308,11 +2020-05-02,Cabarrus,North Carolina,37025,310,12 +2020-05-03,Cabarrus,North Carolina,37025,313,13 +2020-05-04,Cabarrus,North Carolina,37025,314,15 +2020-05-05,Cabarrus,North Carolina,37025,318,16 +2020-05-06,Cabarrus,North Carolina,37025,323,17 +2020-05-07,Cabarrus,North Carolina,37025,333,17 +2020-05-08,Cabarrus,North Carolina,37025,338,17 +2020-05-09,Cabarrus,North Carolina,37025,341,17 +2020-05-10,Cabarrus,North Carolina,37025,352,17 +2020-05-11,Cabarrus,North Carolina,37025,350,17 +2020-05-12,Cabarrus,North Carolina,37025,356,18 +2020-05-13,Cabarrus,North Carolina,37025,361,18 +2020-05-14,Cabarrus,North Carolina,37025,362,18 +2020-05-15,Cabarrus,North Carolina,37025,370,20 +2020-05-16,Cabarrus,North Carolina,37025,372,20 +2020-05-17,Cabarrus,North Carolina,37025,379,20 +2020-05-18,Cabarrus,North Carolina,37025,379,21 +2020-05-19,Cabarrus,North Carolina,37025,389,21 +2020-05-20,Cabarrus,North Carolina,37025,395,21 +2020-05-21,Cabarrus,North Carolina,37025,406,21 +2020-05-22,Cabarrus,North Carolina,37025,420,21 +2020-05-23,Cabarrus,North Carolina,37025,428,21 +2020-05-24,Cabarrus,North Carolina,37025,429,21 +2020-05-25,Cabarrus,North Carolina,37025,449,21 +2020-05-26,Cabarrus,North Carolina,37025,449,21 +2020-05-27,Cabarrus,North Carolina,37025,449,21 +2020-05-28,Cabarrus,North Carolina,37025,455,21 +2020-05-29,Cabarrus,North Carolina,37025,460,21 +2020-05-30,Cabarrus,North Carolina,37025,478,21 +2020-05-31,Cabarrus,North Carolina,37025,488,21 +2020-06-01,Cabarrus,North Carolina,37025,497,21 +2020-06-02,Cabarrus,North Carolina,37025,498,21 +2020-06-03,Cabarrus,North Carolina,37025,500,22 +2020-06-04,Cabarrus,North Carolina,37025,521,23 +2020-06-05,Cabarrus,North Carolina,37025,536,23 +2020-06-06,Cabarrus,North Carolina,37025,571,23 +2020-06-07,Cabarrus,North Carolina,37025,588,23 +2020-06-08,Cabarrus,North Carolina,37025,599,23 +2020-06-09,Cabarrus,North Carolina,37025,612,23 +2020-06-10,Cabarrus,North Carolina,37025,614,23 +2020-06-11,Cabarrus,North Carolina,37025,641,24 +2020-06-12,Cabarrus,North Carolina,37025,670,24 +2020-06-13,Cabarrus,North Carolina,37025,686,24 +2020-06-14,Cabarrus,North Carolina,37025,711,24 +2020-06-15,Cabarrus,North Carolina,37025,716,24 +2020-06-16,Cabarrus,North Carolina,37025,729,25 +2020-06-17,Cabarrus,North Carolina,37025,746,25 +2020-06-18,Cabarrus,North Carolina,37025,773,25 +2020-06-19,Cabarrus,North Carolina,37025,805,25 +2020-06-20,Cabarrus,North Carolina,37025,835,25 +2020-06-21,Cabarrus,North Carolina,37025,869,25 +2020-06-22,Cabarrus,North Carolina,37025,883,25 +2020-06-23,Cabarrus,North Carolina,37025,888,26 +2020-06-24,Cabarrus,North Carolina,37025,912,27 +2020-06-25,Cabarrus,North Carolina,37025,936,27 +2020-06-26,Cabarrus,North Carolina,37025,978,27 +2020-06-27,Cabarrus,North Carolina,37025,1021,27 +2020-06-28,Cabarrus,North Carolina,37025,1064,27 +2020-06-29,Cabarrus,North Carolina,37025,1105,28 +2020-06-30,Cabarrus,North Carolina,37025,1107,28 +2020-07-01,Cabarrus,North Carolina,37025,1141,33 +2020-07-02,Cabarrus,North Carolina,37025,1187,33 +2020-07-03,Cabarrus,North Carolina,37025,1237,33 +2020-07-04,Cabarrus,North Carolina,37025,1313,33 +2020-07-05,Cabarrus,North Carolina,37025,1343,33 +2020-07-06,Cabarrus,North Carolina,37025,1368,33 +2020-07-07,Cabarrus,North Carolina,37025,1399,33 +2020-07-08,Cabarrus,North Carolina,37025,1424,33 +2020-07-09,Cabarrus,North Carolina,37025,1454,33 +2020-03-25,Caldwell,North Carolina,37027,1,0 +2020-03-26,Caldwell,North Carolina,37027,3,0 +2020-03-27,Caldwell,North Carolina,37027,3,0 +2020-03-28,Caldwell,North Carolina,37027,3,0 +2020-03-29,Caldwell,North Carolina,37027,3,0 +2020-03-30,Caldwell,North Carolina,37027,3,0 +2020-03-31,Caldwell,North Carolina,37027,3,0 +2020-04-01,Caldwell,North Carolina,37027,3,0 +2020-04-02,Caldwell,North Carolina,37027,3,0 +2020-04-03,Caldwell,North Carolina,37027,3,0 +2020-04-04,Caldwell,North Carolina,37027,5,0 +2020-04-05,Caldwell,North Carolina,37027,6,0 +2020-04-06,Caldwell,North Carolina,37027,9,0 +2020-04-07,Caldwell,North Carolina,37027,10,0 +2020-04-08,Caldwell,North Carolina,37027,10,0 +2020-04-09,Caldwell,North Carolina,37027,11,0 +2020-04-10,Caldwell,North Carolina,37027,14,0 +2020-04-11,Caldwell,North Carolina,37027,15,0 +2020-04-12,Caldwell,North Carolina,37027,17,0 +2020-04-13,Caldwell,North Carolina,37027,19,0 +2020-04-14,Caldwell,North Carolina,37027,19,0 +2020-04-15,Caldwell,North Carolina,37027,19,0 +2020-04-16,Caldwell,North Carolina,37027,19,0 +2020-04-17,Caldwell,North Carolina,37027,22,0 +2020-04-18,Caldwell,North Carolina,37027,21,0 +2020-04-19,Caldwell,North Carolina,37027,22,0 +2020-04-20,Caldwell,North Carolina,37027,23,0 +2020-04-21,Caldwell,North Carolina,37027,23,0 +2020-04-22,Caldwell,North Carolina,37027,23,0 +2020-04-23,Caldwell,North Carolina,37027,26,0 +2020-04-24,Caldwell,North Carolina,37027,27,0 +2020-04-25,Caldwell,North Carolina,37027,30,0 +2020-04-26,Caldwell,North Carolina,37027,30,0 +2020-04-27,Caldwell,North Carolina,37027,31,0 +2020-04-28,Caldwell,North Carolina,37027,33,0 +2020-04-29,Caldwell,North Carolina,37027,32,0 +2020-04-30,Caldwell,North Carolina,37027,32,0 +2020-05-01,Caldwell,North Carolina,37027,34,0 +2020-05-02,Caldwell,North Carolina,37027,34,0 +2020-05-03,Caldwell,North Carolina,37027,36,0 +2020-05-04,Caldwell,North Carolina,37027,36,0 +2020-05-05,Caldwell,North Carolina,37027,44,0 +2020-05-06,Caldwell,North Carolina,37027,43,0 +2020-05-07,Caldwell,North Carolina,37027,50,0 +2020-05-08,Caldwell,North Carolina,37027,52,0 +2020-05-09,Caldwell,North Carolina,37027,55,0 +2020-05-10,Caldwell,North Carolina,37027,60,0 +2020-05-11,Caldwell,North Carolina,37027,60,0 +2020-05-12,Caldwell,North Carolina,37027,63,0 +2020-05-13,Caldwell,North Carolina,37027,67,1 +2020-05-14,Caldwell,North Carolina,37027,71,1 +2020-05-15,Caldwell,North Carolina,37027,74,1 +2020-05-16,Caldwell,North Carolina,37027,78,2 +2020-05-17,Caldwell,North Carolina,37027,83,2 +2020-05-18,Caldwell,North Carolina,37027,86,2 +2020-05-19,Caldwell,North Carolina,37027,92,2 +2020-05-20,Caldwell,North Carolina,37027,90,2 +2020-05-21,Caldwell,North Carolina,37027,93,2 +2020-05-22,Caldwell,North Carolina,37027,96,2 +2020-05-23,Caldwell,North Carolina,37027,105,2 +2020-05-24,Caldwell,North Carolina,37027,106,2 +2020-05-25,Caldwell,North Carolina,37027,107,2 +2020-05-26,Caldwell,North Carolina,37027,107,2 +2020-05-27,Caldwell,North Carolina,37027,110,2 +2020-05-28,Caldwell,North Carolina,37027,120,2 +2020-05-29,Caldwell,North Carolina,37027,127,2 +2020-05-30,Caldwell,North Carolina,37027,132,3 +2020-05-31,Caldwell,North Carolina,37027,138,3 +2020-06-01,Caldwell,North Carolina,37027,155,3 +2020-06-02,Caldwell,North Carolina,37027,157,3 +2020-06-03,Caldwell,North Carolina,37027,160,3 +2020-06-04,Caldwell,North Carolina,37027,172,3 +2020-06-05,Caldwell,North Carolina,37027,183,3 +2020-06-06,Caldwell,North Carolina,37027,196,3 +2020-06-07,Caldwell,North Carolina,37027,201,3 +2020-06-08,Caldwell,North Carolina,37027,204,3 +2020-06-09,Caldwell,North Carolina,37027,214,3 +2020-06-10,Caldwell,North Carolina,37027,219,3 +2020-06-11,Caldwell,North Carolina,37027,228,3 +2020-06-12,Caldwell,North Carolina,37027,238,3 +2020-06-13,Caldwell,North Carolina,37027,240,3 +2020-06-14,Caldwell,North Carolina,37027,248,3 +2020-06-15,Caldwell,North Carolina,37027,249,3 +2020-06-16,Caldwell,North Carolina,37027,252,4 +2020-06-17,Caldwell,North Carolina,37027,258,4 +2020-06-18,Caldwell,North Carolina,37027,273,4 +2020-06-19,Caldwell,North Carolina,37027,296,4 +2020-06-20,Caldwell,North Carolina,37027,304,4 +2020-06-21,Caldwell,North Carolina,37027,314,4 +2020-06-22,Caldwell,North Carolina,37027,315,4 +2020-06-23,Caldwell,North Carolina,37027,322,4 +2020-06-24,Caldwell,North Carolina,37027,328,4 +2020-06-25,Caldwell,North Carolina,37027,335,4 +2020-06-26,Caldwell,North Carolina,37027,348,4 +2020-06-27,Caldwell,North Carolina,37027,358,4 +2020-06-28,Caldwell,North Carolina,37027,398,4 +2020-06-29,Caldwell,North Carolina,37027,411,4 +2020-06-30,Caldwell,North Carolina,37027,419,4 +2020-07-01,Caldwell,North Carolina,37027,434,4 +2020-07-02,Caldwell,North Carolina,37027,452,4 +2020-07-03,Caldwell,North Carolina,37027,469,4 +2020-07-04,Caldwell,North Carolina,37027,486,4 +2020-07-05,Caldwell,North Carolina,37027,504,4 +2020-07-06,Caldwell,North Carolina,37027,522,4 +2020-07-07,Caldwell,North Carolina,37027,534,4 +2020-07-08,Caldwell,North Carolina,37027,546,4 +2020-07-09,Caldwell,North Carolina,37027,563,4 +2020-04-27,Camden,North Carolina,37029,1,0 +2020-04-28,Camden,North Carolina,37029,1,0 +2020-04-29,Camden,North Carolina,37029,1,0 +2020-04-30,Camden,North Carolina,37029,1,0 +2020-05-01,Camden,North Carolina,37029,1,0 +2020-05-02,Camden,North Carolina,37029,2,0 +2020-05-03,Camden,North Carolina,37029,2,0 +2020-05-04,Camden,North Carolina,37029,2,0 +2020-05-05,Camden,North Carolina,37029,2,0 +2020-05-06,Camden,North Carolina,37029,2,0 +2020-05-07,Camden,North Carolina,37029,2,0 +2020-05-08,Camden,North Carolina,37029,2,0 +2020-05-09,Camden,North Carolina,37029,2,0 +2020-05-10,Camden,North Carolina,37029,2,0 +2020-05-11,Camden,North Carolina,37029,2,0 +2020-05-12,Camden,North Carolina,37029,2,0 +2020-05-13,Camden,North Carolina,37029,2,0 +2020-05-14,Camden,North Carolina,37029,2,0 +2020-05-15,Camden,North Carolina,37029,2,0 +2020-05-16,Camden,North Carolina,37029,2,0 +2020-05-17,Camden,North Carolina,37029,2,0 +2020-05-18,Camden,North Carolina,37029,2,0 +2020-05-19,Camden,North Carolina,37029,3,0 +2020-05-20,Camden,North Carolina,37029,3,0 +2020-05-21,Camden,North Carolina,37029,3,0 +2020-05-22,Camden,North Carolina,37029,3,0 +2020-05-23,Camden,North Carolina,37029,3,0 +2020-05-24,Camden,North Carolina,37029,3,0 +2020-05-25,Camden,North Carolina,37029,3,0 +2020-05-26,Camden,North Carolina,37029,3,0 +2020-05-27,Camden,North Carolina,37029,3,0 +2020-05-28,Camden,North Carolina,37029,3,0 +2020-05-29,Camden,North Carolina,37029,3,0 +2020-05-30,Camden,North Carolina,37029,3,0 +2020-05-31,Camden,North Carolina,37029,3,0 +2020-06-01,Camden,North Carolina,37029,3,0 +2020-06-02,Camden,North Carolina,37029,3,0 +2020-06-03,Camden,North Carolina,37029,3,0 +2020-06-04,Camden,North Carolina,37029,3,0 +2020-06-05,Camden,North Carolina,37029,3,0 +2020-06-06,Camden,North Carolina,37029,3,0 +2020-06-07,Camden,North Carolina,37029,3,0 +2020-06-08,Camden,North Carolina,37029,3,0 +2020-06-09,Camden,North Carolina,37029,3,0 +2020-06-10,Camden,North Carolina,37029,3,0 +2020-06-11,Camden,North Carolina,37029,3,0 +2020-06-12,Camden,North Carolina,37029,3,0 +2020-06-13,Camden,North Carolina,37029,6,0 +2020-06-14,Camden,North Carolina,37029,6,0 +2020-06-15,Camden,North Carolina,37029,6,0 +2020-06-16,Camden,North Carolina,37029,7,0 +2020-06-17,Camden,North Carolina,37029,7,0 +2020-06-18,Camden,North Carolina,37029,9,0 +2020-06-19,Camden,North Carolina,37029,12,0 +2020-06-20,Camden,North Carolina,37029,16,0 +2020-06-21,Camden,North Carolina,37029,19,0 +2020-06-22,Camden,North Carolina,37029,19,0 +2020-06-23,Camden,North Carolina,37029,22,0 +2020-06-24,Camden,North Carolina,37029,23,0 +2020-06-25,Camden,North Carolina,37029,23,0 +2020-06-26,Camden,North Carolina,37029,23,0 +2020-06-27,Camden,North Carolina,37029,24,0 +2020-06-28,Camden,North Carolina,37029,24,0 +2020-06-29,Camden,North Carolina,37029,26,0 +2020-06-30,Camden,North Carolina,37029,28,0 +2020-07-01,Camden,North Carolina,37029,29,0 +2020-07-02,Camden,North Carolina,37029,30,0 +2020-07-03,Camden,North Carolina,37029,31,0 +2020-07-04,Camden,North Carolina,37029,31,0 +2020-07-05,Camden,North Carolina,37029,31,0 +2020-07-06,Camden,North Carolina,37029,31,0 +2020-07-07,Camden,North Carolina,37029,33,0 +2020-07-08,Camden,North Carolina,37029,34,1 +2020-07-09,Camden,North Carolina,37029,34,1 +2020-03-20,Carteret,North Carolina,37031,1,0 +2020-03-21,Carteret,North Carolina,37031,1,0 +2020-03-22,Carteret,North Carolina,37031,2,0 +2020-03-23,Carteret,North Carolina,37031,4,0 +2020-03-24,Carteret,North Carolina,37031,4,0 +2020-03-25,Carteret,North Carolina,37031,5,0 +2020-03-26,Carteret,North Carolina,37031,5,0 +2020-03-27,Carteret,North Carolina,37031,5,0 +2020-03-28,Carteret,North Carolina,37031,6,0 +2020-03-29,Carteret,North Carolina,37031,8,0 +2020-03-30,Carteret,North Carolina,37031,10,0 +2020-03-31,Carteret,North Carolina,37031,12,0 +2020-04-01,Carteret,North Carolina,37031,12,0 +2020-04-02,Carteret,North Carolina,37031,13,0 +2020-04-03,Carteret,North Carolina,37031,14,0 +2020-04-04,Carteret,North Carolina,37031,15,0 +2020-04-05,Carteret,North Carolina,37031,15,0 +2020-04-06,Carteret,North Carolina,37031,17,0 +2020-04-07,Carteret,North Carolina,37031,17,1 +2020-04-08,Carteret,North Carolina,37031,18,1 +2020-04-09,Carteret,North Carolina,37031,19,1 +2020-04-10,Carteret,North Carolina,37031,20,1 +2020-04-11,Carteret,North Carolina,37031,21,1 +2020-04-12,Carteret,North Carolina,37031,21,1 +2020-04-13,Carteret,North Carolina,37031,22,1 +2020-04-14,Carteret,North Carolina,37031,22,1 +2020-04-15,Carteret,North Carolina,37031,22,1 +2020-04-16,Carteret,North Carolina,37031,22,1 +2020-04-17,Carteret,North Carolina,37031,22,1 +2020-04-18,Carteret,North Carolina,37031,22,2 +2020-04-19,Carteret,North Carolina,37031,22,2 +2020-04-20,Carteret,North Carolina,37031,22,2 +2020-04-21,Carteret,North Carolina,37031,21,2 +2020-04-22,Carteret,North Carolina,37031,21,2 +2020-04-23,Carteret,North Carolina,37031,22,2 +2020-04-24,Carteret,North Carolina,37031,22,2 +2020-04-25,Carteret,North Carolina,37031,26,3 +2020-04-26,Carteret,North Carolina,37031,26,3 +2020-04-27,Carteret,North Carolina,37031,28,3 +2020-04-28,Carteret,North Carolina,37031,28,3 +2020-04-29,Carteret,North Carolina,37031,27,3 +2020-04-30,Carteret,North Carolina,37031,27,3 +2020-05-01,Carteret,North Carolina,37031,29,3 +2020-05-02,Carteret,North Carolina,37031,27,3 +2020-05-03,Carteret,North Carolina,37031,27,3 +2020-05-04,Carteret,North Carolina,37031,27,3 +2020-05-05,Carteret,North Carolina,37031,27,3 +2020-05-06,Carteret,North Carolina,37031,28,3 +2020-05-07,Carteret,North Carolina,37031,29,3 +2020-05-08,Carteret,North Carolina,37031,29,3 +2020-05-09,Carteret,North Carolina,37031,29,3 +2020-05-10,Carteret,North Carolina,37031,31,3 +2020-05-11,Carteret,North Carolina,37031,31,3 +2020-05-12,Carteret,North Carolina,37031,32,3 +2020-05-13,Carteret,North Carolina,37031,34,3 +2020-05-14,Carteret,North Carolina,37031,34,3 +2020-05-15,Carteret,North Carolina,37031,35,3 +2020-05-16,Carteret,North Carolina,37031,35,3 +2020-05-17,Carteret,North Carolina,37031,35,3 +2020-05-18,Carteret,North Carolina,37031,35,3 +2020-05-19,Carteret,North Carolina,37031,35,3 +2020-05-20,Carteret,North Carolina,37031,35,3 +2020-05-21,Carteret,North Carolina,37031,35,3 +2020-05-22,Carteret,North Carolina,37031,35,9 +2020-05-23,Carteret,North Carolina,37031,35,9 +2020-05-24,Carteret,North Carolina,37031,35,9 +2020-05-25,Carteret,North Carolina,37031,36,3 +2020-05-26,Carteret,North Carolina,37031,36,3 +2020-05-27,Carteret,North Carolina,37031,36,3 +2020-05-28,Carteret,North Carolina,37031,36,3 +2020-05-29,Carteret,North Carolina,37031,36,3 +2020-05-30,Carteret,North Carolina,37031,36,3 +2020-05-31,Carteret,North Carolina,37031,36,3 +2020-06-01,Carteret,North Carolina,37031,36,3 +2020-06-02,Carteret,North Carolina,37031,36,3 +2020-06-03,Carteret,North Carolina,37031,36,3 +2020-06-04,Carteret,North Carolina,37031,37,3 +2020-06-05,Carteret,North Carolina,37031,39,3 +2020-06-06,Carteret,North Carolina,37031,39,3 +2020-06-07,Carteret,North Carolina,37031,39,3 +2020-06-08,Carteret,North Carolina,37031,40,3 +2020-06-09,Carteret,North Carolina,37031,40,3 +2020-06-10,Carteret,North Carolina,37031,42,3 +2020-06-11,Carteret,North Carolina,37031,43,3 +2020-06-12,Carteret,North Carolina,37031,45,3 +2020-06-13,Carteret,North Carolina,37031,46,3 +2020-06-14,Carteret,North Carolina,37031,46,3 +2020-06-15,Carteret,North Carolina,37031,47,3 +2020-06-16,Carteret,North Carolina,37031,48,3 +2020-06-17,Carteret,North Carolina,37031,47,3 +2020-06-18,Carteret,North Carolina,37031,49,3 +2020-06-19,Carteret,North Carolina,37031,51,3 +2020-06-20,Carteret,North Carolina,37031,52,3 +2020-06-21,Carteret,North Carolina,37031,53,3 +2020-06-22,Carteret,North Carolina,37031,57,3 +2020-06-23,Carteret,North Carolina,37031,59,3 +2020-06-24,Carteret,North Carolina,37031,61,3 +2020-06-25,Carteret,North Carolina,37031,64,3 +2020-06-26,Carteret,North Carolina,37031,67,3 +2020-06-27,Carteret,North Carolina,37031,70,3 +2020-06-28,Carteret,North Carolina,37031,76,3 +2020-06-29,Carteret,North Carolina,37031,84,3 +2020-06-30,Carteret,North Carolina,37031,87,3 +2020-07-01,Carteret,North Carolina,37031,87,3 +2020-07-02,Carteret,North Carolina,37031,91,3 +2020-07-03,Carteret,North Carolina,37031,100,3 +2020-07-04,Carteret,North Carolina,37031,101,3 +2020-07-05,Carteret,North Carolina,37031,105,3 +2020-07-06,Carteret,North Carolina,37031,109,3 +2020-07-07,Carteret,North Carolina,37031,110,3 +2020-07-08,Carteret,North Carolina,37031,111,3 +2020-07-09,Carteret,North Carolina,37031,111,3 +2020-03-29,Caswell,North Carolina,37033,1,0 +2020-03-30,Caswell,North Carolina,37033,1,0 +2020-03-31,Caswell,North Carolina,37033,1,0 +2020-04-01,Caswell,North Carolina,37033,1,0 +2020-04-02,Caswell,North Carolina,37033,1,0 +2020-04-03,Caswell,North Carolina,37033,1,0 +2020-04-04,Caswell,North Carolina,37033,1,0 +2020-04-05,Caswell,North Carolina,37033,2,0 +2020-04-06,Caswell,North Carolina,37033,2,0 +2020-04-07,Caswell,North Carolina,37033,2,0 +2020-04-08,Caswell,North Carolina,37033,2,0 +2020-04-09,Caswell,North Carolina,37033,2,0 +2020-04-10,Caswell,North Carolina,37033,3,0 +2020-04-11,Caswell,North Carolina,37033,3,0 +2020-04-12,Caswell,North Carolina,37033,3,0 +2020-04-13,Caswell,North Carolina,37033,3,0 +2020-04-14,Caswell,North Carolina,37033,3,0 +2020-04-15,Caswell,North Carolina,37033,3,0 +2020-04-16,Caswell,North Carolina,37033,4,0 +2020-04-17,Caswell,North Carolina,37033,7,0 +2020-04-18,Caswell,North Carolina,37033,7,0 +2020-04-19,Caswell,North Carolina,37033,7,0 +2020-04-20,Caswell,North Carolina,37033,8,0 +2020-04-21,Caswell,North Carolina,37033,8,0 +2020-04-22,Caswell,North Carolina,37033,9,0 +2020-04-23,Caswell,North Carolina,37033,13,0 +2020-04-24,Caswell,North Carolina,37033,14,0 +2020-04-25,Caswell,North Carolina,37033,15,0 +2020-04-26,Caswell,North Carolina,37033,16,0 +2020-04-27,Caswell,North Carolina,37033,18,0 +2020-04-28,Caswell,North Carolina,37033,18,0 +2020-04-29,Caswell,North Carolina,37033,19,0 +2020-04-30,Caswell,North Carolina,37033,22,0 +2020-05-01,Caswell,North Carolina,37033,24,0 +2020-05-02,Caswell,North Carolina,37033,30,0 +2020-05-03,Caswell,North Carolina,37033,32,0 +2020-05-04,Caswell,North Carolina,37033,32,0 +2020-05-05,Caswell,North Carolina,37033,34,0 +2020-05-06,Caswell,North Carolina,37033,36,0 +2020-05-07,Caswell,North Carolina,37033,38,0 +2020-05-08,Caswell,North Carolina,37033,38,1 +2020-05-09,Caswell,North Carolina,37033,38,1 +2020-05-10,Caswell,North Carolina,37033,39,1 +2020-05-11,Caswell,North Carolina,37033,41,1 +2020-05-12,Caswell,North Carolina,37033,41,1 +2020-05-13,Caswell,North Carolina,37033,40,1 +2020-05-14,Caswell,North Carolina,37033,41,1 +2020-05-15,Caswell,North Carolina,37033,43,1 +2020-05-16,Caswell,North Carolina,37033,43,1 +2020-05-17,Caswell,North Carolina,37033,43,1 +2020-05-18,Caswell,North Carolina,37033,44,1 +2020-05-19,Caswell,North Carolina,37033,45,1 +2020-05-20,Caswell,North Carolina,37033,45,1 +2020-05-21,Caswell,North Carolina,37033,45,1 +2020-05-22,Caswell,North Carolina,37033,49,1 +2020-05-23,Caswell,North Carolina,37033,52,1 +2020-05-24,Caswell,North Carolina,37033,54,1 +2020-05-25,Caswell,North Carolina,37033,55,1 +2020-05-26,Caswell,North Carolina,37033,55,1 +2020-05-27,Caswell,North Carolina,37033,55,1 +2020-05-28,Caswell,North Carolina,37033,57,1 +2020-05-29,Caswell,North Carolina,37033,58,1 +2020-05-30,Caswell,North Carolina,37033,60,1 +2020-05-31,Caswell,North Carolina,37033,61,1 +2020-06-01,Caswell,North Carolina,37033,87,1 +2020-06-02,Caswell,North Carolina,37033,93,1 +2020-06-03,Caswell,North Carolina,37033,94,1 +2020-06-04,Caswell,North Carolina,37033,94,1 +2020-06-05,Caswell,North Carolina,37033,94,1 +2020-06-06,Caswell,North Carolina,37033,96,1 +2020-06-07,Caswell,North Carolina,37033,96,1 +2020-06-08,Caswell,North Carolina,37033,97,1 +2020-06-09,Caswell,North Carolina,37033,97,1 +2020-06-10,Caswell,North Carolina,37033,98,1 +2020-06-11,Caswell,North Carolina,37033,101,1 +2020-06-12,Caswell,North Carolina,37033,100,1 +2020-06-13,Caswell,North Carolina,37033,101,1 +2020-06-14,Caswell,North Carolina,37033,102,1 +2020-06-15,Caswell,North Carolina,37033,103,1 +2020-06-16,Caswell,North Carolina,37033,104,1 +2020-06-17,Caswell,North Carolina,37033,106,1 +2020-06-18,Caswell,North Carolina,37033,110,1 +2020-06-19,Caswell,North Carolina,37033,112,1 +2020-06-20,Caswell,North Carolina,37033,113,1 +2020-06-21,Caswell,North Carolina,37033,116,1 +2020-06-22,Caswell,North Carolina,37033,115,1 +2020-06-23,Caswell,North Carolina,37033,121,1 +2020-06-24,Caswell,North Carolina,37033,122,1 +2020-06-25,Caswell,North Carolina,37033,125,1 +2020-06-26,Caswell,North Carolina,37033,128,1 +2020-06-27,Caswell,North Carolina,37033,134,1 +2020-06-28,Caswell,North Carolina,37033,135,1 +2020-06-29,Caswell,North Carolina,37033,135,1 +2020-06-30,Caswell,North Carolina,37033,135,1 +2020-07-01,Caswell,North Carolina,37033,135,1 +2020-07-02,Caswell,North Carolina,37033,141,1 +2020-07-03,Caswell,North Carolina,37033,142,2 +2020-07-04,Caswell,North Carolina,37033,144,2 +2020-07-05,Caswell,North Carolina,37033,147,2 +2020-07-06,Caswell,North Carolina,37033,147,2 +2020-07-07,Caswell,North Carolina,37033,147,2 +2020-07-08,Caswell,North Carolina,37033,148,2 +2020-07-09,Caswell,North Carolina,37033,149,2 +2020-03-21,Catawba,North Carolina,37035,1,0 +2020-03-22,Catawba,North Carolina,37035,1,0 +2020-03-23,Catawba,North Carolina,37035,1,0 +2020-03-24,Catawba,North Carolina,37035,4,0 +2020-03-25,Catawba,North Carolina,37035,4,0 +2020-03-26,Catawba,North Carolina,37035,4,0 +2020-03-27,Catawba,North Carolina,37035,7,0 +2020-03-28,Catawba,North Carolina,37035,10,0 +2020-03-29,Catawba,North Carolina,37035,14,0 +2020-03-30,Catawba,North Carolina,37035,14,0 +2020-03-31,Catawba,North Carolina,37035,15,0 +2020-04-01,Catawba,North Carolina,37035,15,0 +2020-04-02,Catawba,North Carolina,37035,16,0 +2020-04-03,Catawba,North Carolina,37035,16,1 +2020-04-04,Catawba,North Carolina,37035,16,1 +2020-04-05,Catawba,North Carolina,37035,22,1 +2020-04-06,Catawba,North Carolina,37035,25,1 +2020-04-07,Catawba,North Carolina,37035,27,1 +2020-04-08,Catawba,North Carolina,37035,28,1 +2020-04-09,Catawba,North Carolina,37035,27,1 +2020-04-10,Catawba,North Carolina,37035,29,1 +2020-04-11,Catawba,North Carolina,37035,33,1 +2020-04-12,Catawba,North Carolina,37035,32,1 +2020-04-13,Catawba,North Carolina,37035,33,1 +2020-04-14,Catawba,North Carolina,37035,35,1 +2020-04-15,Catawba,North Carolina,37035,35,1 +2020-04-16,Catawba,North Carolina,37035,37,1 +2020-04-17,Catawba,North Carolina,37035,40,1 +2020-04-18,Catawba,North Carolina,37035,40,1 +2020-04-19,Catawba,North Carolina,37035,40,1 +2020-04-20,Catawba,North Carolina,37035,40,1 +2020-04-21,Catawba,North Carolina,37035,43,1 +2020-04-22,Catawba,North Carolina,37035,43,1 +2020-04-23,Catawba,North Carolina,37035,46,1 +2020-04-24,Catawba,North Carolina,37035,47,1 +2020-04-25,Catawba,North Carolina,37035,47,1 +2020-04-26,Catawba,North Carolina,37035,49,1 +2020-04-27,Catawba,North Carolina,37035,49,1 +2020-04-28,Catawba,North Carolina,37035,51,1 +2020-04-29,Catawba,North Carolina,37035,52,1 +2020-04-30,Catawba,North Carolina,37035,53,1 +2020-05-01,Catawba,North Carolina,37035,54,1 +2020-05-02,Catawba,North Carolina,37035,56,1 +2020-05-03,Catawba,North Carolina,37035,56,1 +2020-05-04,Catawba,North Carolina,37035,57,1 +2020-05-05,Catawba,North Carolina,37035,59,1 +2020-05-06,Catawba,North Carolina,37035,63,1 +2020-05-07,Catawba,North Carolina,37035,65,1 +2020-05-08,Catawba,North Carolina,37035,67,1 +2020-05-09,Catawba,North Carolina,37035,78,1 +2020-05-10,Catawba,North Carolina,37035,79,1 +2020-05-11,Catawba,North Carolina,37035,82,2 +2020-05-12,Catawba,North Carolina,37035,83,2 +2020-05-13,Catawba,North Carolina,37035,85,2 +2020-05-14,Catawba,North Carolina,37035,90,2 +2020-05-15,Catawba,North Carolina,37035,92,2 +2020-05-16,Catawba,North Carolina,37035,96,2 +2020-05-17,Catawba,North Carolina,37035,100,2 +2020-05-18,Catawba,North Carolina,37035,104,2 +2020-05-19,Catawba,North Carolina,37035,117,3 +2020-05-20,Catawba,North Carolina,37035,118,3 +2020-05-21,Catawba,North Carolina,37035,129,3 +2020-05-22,Catawba,North Carolina,37035,134,3 +2020-05-23,Catawba,North Carolina,37035,142,3 +2020-05-24,Catawba,North Carolina,37035,146,3 +2020-05-25,Catawba,North Carolina,37035,152,3 +2020-05-26,Catawba,North Carolina,37035,153,3 +2020-05-27,Catawba,North Carolina,37035,167,3 +2020-05-28,Catawba,North Carolina,37035,175,5 +2020-05-29,Catawba,North Carolina,37035,189,5 +2020-05-30,Catawba,North Carolina,37035,199,5 +2020-05-31,Catawba,North Carolina,37035,211,6 +2020-06-01,Catawba,North Carolina,37035,217,6 +2020-06-02,Catawba,North Carolina,37035,229,6 +2020-06-03,Catawba,North Carolina,37035,241,7 +2020-06-04,Catawba,North Carolina,37035,258,7 +2020-06-05,Catawba,North Carolina,37035,267,7 +2020-06-06,Catawba,North Carolina,37035,284,8 +2020-06-07,Catawba,North Carolina,37035,293,8 +2020-06-08,Catawba,North Carolina,37035,300,8 +2020-06-09,Catawba,North Carolina,37035,310,10 +2020-06-10,Catawba,North Carolina,37035,326,11 +2020-06-11,Catawba,North Carolina,37035,341,10 +2020-06-12,Catawba,North Carolina,37035,371,10 +2020-06-13,Catawba,North Carolina,37035,399,10 +2020-06-14,Catawba,North Carolina,37035,417,10 +2020-06-15,Catawba,North Carolina,37035,435,10 +2020-06-16,Catawba,North Carolina,37035,452,10 +2020-06-17,Catawba,North Carolina,37035,465,10 +2020-06-18,Catawba,North Carolina,37035,485,10 +2020-06-19,Catawba,North Carolina,37035,519,10 +2020-06-20,Catawba,North Carolina,37035,538,10 +2020-06-21,Catawba,North Carolina,37035,552,10 +2020-06-22,Catawba,North Carolina,37035,560,10 +2020-06-23,Catawba,North Carolina,37035,570,10 +2020-06-24,Catawba,North Carolina,37035,600,10 +2020-06-25,Catawba,North Carolina,37035,641,10 +2020-06-26,Catawba,North Carolina,37035,660,10 +2020-06-27,Catawba,North Carolina,37035,686,10 +2020-06-28,Catawba,North Carolina,37035,720,10 +2020-06-29,Catawba,North Carolina,37035,759,10 +2020-06-30,Catawba,North Carolina,37035,780,12 +2020-07-01,Catawba,North Carolina,37035,811,12 +2020-07-02,Catawba,North Carolina,37035,826,12 +2020-07-03,Catawba,North Carolina,37035,887,12 +2020-07-04,Catawba,North Carolina,37035,907,12 +2020-07-05,Catawba,North Carolina,37035,942,12 +2020-07-06,Catawba,North Carolina,37035,980,12 +2020-07-07,Catawba,North Carolina,37035,1018,13 +2020-07-08,Catawba,North Carolina,37035,1066,13 +2020-07-09,Catawba,North Carolina,37035,1093,13 +2020-03-06,Chatham,North Carolina,37037,1,0 +2020-03-07,Chatham,North Carolina,37037,1,0 +2020-03-08,Chatham,North Carolina,37037,1,0 +2020-03-09,Chatham,North Carolina,37037,1,0 +2020-03-10,Chatham,North Carolina,37037,1,0 +2020-03-11,Chatham,North Carolina,37037,1,0 +2020-03-12,Chatham,North Carolina,37037,1,0 +2020-03-13,Chatham,North Carolina,37037,1,0 +2020-03-14,Chatham,North Carolina,37037,1,0 +2020-03-15,Chatham,North Carolina,37037,1,0 +2020-03-16,Chatham,North Carolina,37037,1,0 +2020-03-17,Chatham,North Carolina,37037,1,0 +2020-03-18,Chatham,North Carolina,37037,3,0 +2020-03-19,Chatham,North Carolina,37037,3,0 +2020-03-20,Chatham,North Carolina,37037,3,0 +2020-03-21,Chatham,North Carolina,37037,3,0 +2020-03-22,Chatham,North Carolina,37037,3,0 +2020-03-23,Chatham,North Carolina,37037,3,0 +2020-03-24,Chatham,North Carolina,37037,3,0 +2020-03-25,Chatham,North Carolina,37037,6,0 +2020-03-26,Chatham,North Carolina,37037,9,0 +2020-03-27,Chatham,North Carolina,37037,11,0 +2020-03-28,Chatham,North Carolina,37037,12,0 +2020-03-29,Chatham,North Carolina,37037,13,0 +2020-03-30,Chatham,North Carolina,37037,14,0 +2020-03-31,Chatham,North Carolina,37037,17,0 +2020-04-01,Chatham,North Carolina,37037,17,0 +2020-04-02,Chatham,North Carolina,37037,19,0 +2020-04-03,Chatham,North Carolina,37037,19,0 +2020-04-04,Chatham,North Carolina,37037,21,0 +2020-04-05,Chatham,North Carolina,37037,21,0 +2020-04-06,Chatham,North Carolina,37037,21,0 +2020-04-07,Chatham,North Carolina,37037,21,0 +2020-04-08,Chatham,North Carolina,37037,24,0 +2020-04-09,Chatham,North Carolina,37037,26,0 +2020-04-10,Chatham,North Carolina,37037,26,0 +2020-04-11,Chatham,North Carolina,37037,37,0 +2020-04-12,Chatham,North Carolina,37037,63,0 +2020-04-13,Chatham,North Carolina,37037,69,0 +2020-04-14,Chatham,North Carolina,37037,75,0 +2020-04-15,Chatham,North Carolina,37037,77,0 +2020-04-16,Chatham,North Carolina,37037,80,0 +2020-04-17,Chatham,North Carolina,37037,85,0 +2020-04-18,Chatham,North Carolina,37037,101,0 +2020-04-19,Chatham,North Carolina,37037,119,0 +2020-04-20,Chatham,North Carolina,37037,127,0 +2020-04-21,Chatham,North Carolina,37037,131,1 +2020-04-22,Chatham,North Carolina,37037,135,6 +2020-04-23,Chatham,North Carolina,37037,156,6 +2020-04-24,Chatham,North Carolina,37037,179,6 +2020-04-25,Chatham,North Carolina,37037,211,6 +2020-04-26,Chatham,North Carolina,37037,240,6 +2020-04-27,Chatham,North Carolina,37037,262,6 +2020-04-28,Chatham,North Carolina,37037,274,6 +2020-04-29,Chatham,North Carolina,37037,287,6 +2020-04-30,Chatham,North Carolina,37037,316,8 +2020-05-01,Chatham,North Carolina,37037,343,9 +2020-05-02,Chatham,North Carolina,37037,375,9 +2020-05-03,Chatham,North Carolina,37037,378,9 +2020-05-04,Chatham,North Carolina,37037,383,10 +2020-05-05,Chatham,North Carolina,37037,403,11 +2020-05-06,Chatham,North Carolina,37037,412,11 +2020-05-07,Chatham,North Carolina,37037,421,11 +2020-05-08,Chatham,North Carolina,37037,435,11 +2020-05-09,Chatham,North Carolina,37037,447,11 +2020-05-10,Chatham,North Carolina,37037,455,11 +2020-05-11,Chatham,North Carolina,37037,458,11 +2020-05-12,Chatham,North Carolina,37037,461,11 +2020-05-13,Chatham,North Carolina,37037,468,11 +2020-05-14,Chatham,North Carolina,37037,490,11 +2020-05-15,Chatham,North Carolina,37037,495,24 +2020-05-16,Chatham,North Carolina,37037,504,24 +2020-05-17,Chatham,North Carolina,37037,507,24 +2020-05-18,Chatham,North Carolina,37037,512,24 +2020-05-19,Chatham,North Carolina,37037,541,24 +2020-05-20,Chatham,North Carolina,37037,543,25 +2020-05-21,Chatham,North Carolina,37037,546,25 +2020-05-22,Chatham,North Carolina,37037,564,26 +2020-05-23,Chatham,North Carolina,37037,573,26 +2020-05-24,Chatham,North Carolina,37037,578,26 +2020-05-25,Chatham,North Carolina,37037,588,26 +2020-05-26,Chatham,North Carolina,37037,588,26 +2020-05-27,Chatham,North Carolina,37037,588,26 +2020-05-28,Chatham,North Carolina,37037,595,26 +2020-05-29,Chatham,North Carolina,37037,610,26 +2020-05-30,Chatham,North Carolina,37037,630,26 +2020-05-31,Chatham,North Carolina,37037,634,26 +2020-06-01,Chatham,North Carolina,37037,637,26 +2020-06-02,Chatham,North Carolina,37037,638,26 +2020-06-03,Chatham,North Carolina,37037,660,27 +2020-06-04,Chatham,North Carolina,37037,677,27 +2020-06-05,Chatham,North Carolina,37037,690,29 +2020-06-06,Chatham,North Carolina,37037,720,29 +2020-06-07,Chatham,North Carolina,37037,723,29 +2020-06-08,Chatham,North Carolina,37037,733,36 +2020-06-09,Chatham,North Carolina,37037,745,37 +2020-06-10,Chatham,North Carolina,37037,749,37 +2020-06-11,Chatham,North Carolina,37037,759,37 +2020-06-12,Chatham,North Carolina,37037,780,37 +2020-06-13,Chatham,North Carolina,37037,784,37 +2020-06-14,Chatham,North Carolina,37037,808,37 +2020-06-15,Chatham,North Carolina,37037,808,37 +2020-06-16,Chatham,North Carolina,37037,813,39 +2020-06-17,Chatham,North Carolina,37037,821,39 +2020-06-18,Chatham,North Carolina,37037,841,39 +2020-06-19,Chatham,North Carolina,37037,848,39 +2020-06-20,Chatham,North Carolina,37037,860,39 +2020-06-21,Chatham,North Carolina,37037,882,39 +2020-06-22,Chatham,North Carolina,37037,881,39 +2020-06-23,Chatham,North Carolina,37037,890,42 +2020-06-24,Chatham,North Carolina,37037,901,42 +2020-06-25,Chatham,North Carolina,37037,910,42 +2020-06-26,Chatham,North Carolina,37037,916,42 +2020-06-27,Chatham,North Carolina,37037,924,42 +2020-06-28,Chatham,North Carolina,37037,936,42 +2020-06-29,Chatham,North Carolina,37037,947,42 +2020-06-30,Chatham,North Carolina,37037,950,43 +2020-07-01,Chatham,North Carolina,37037,956,43 +2020-07-02,Chatham,North Carolina,37037,964,43 +2020-07-03,Chatham,North Carolina,37037,975,43 +2020-07-04,Chatham,North Carolina,37037,984,43 +2020-07-05,Chatham,North Carolina,37037,990,43 +2020-07-06,Chatham,North Carolina,37037,994,43 +2020-07-07,Chatham,North Carolina,37037,999,43 +2020-07-08,Chatham,North Carolina,37037,1001,43 +2020-07-09,Chatham,North Carolina,37037,1009,44 +2020-03-22,Cherokee,North Carolina,37039,4,0 +2020-03-23,Cherokee,North Carolina,37039,4,0 +2020-03-24,Cherokee,North Carolina,37039,4,0 +2020-03-25,Cherokee,North Carolina,37039,4,0 +2020-03-26,Cherokee,North Carolina,37039,4,0 +2020-03-27,Cherokee,North Carolina,37039,4,0 +2020-03-28,Cherokee,North Carolina,37039,4,0 +2020-03-29,Cherokee,North Carolina,37039,6,0 +2020-03-30,Cherokee,North Carolina,37039,7,0 +2020-03-31,Cherokee,North Carolina,37039,8,1 +2020-04-01,Cherokee,North Carolina,37039,8,1 +2020-04-02,Cherokee,North Carolina,37039,8,1 +2020-04-03,Cherokee,North Carolina,37039,8,1 +2020-04-04,Cherokee,North Carolina,37039,8,1 +2020-04-05,Cherokee,North Carolina,37039,8,1 +2020-04-06,Cherokee,North Carolina,37039,8,1 +2020-04-07,Cherokee,North Carolina,37039,9,1 +2020-04-08,Cherokee,North Carolina,37039,9,1 +2020-04-09,Cherokee,North Carolina,37039,9,1 +2020-04-10,Cherokee,North Carolina,37039,10,1 +2020-04-11,Cherokee,North Carolina,37039,10,1 +2020-04-12,Cherokee,North Carolina,37039,10,1 +2020-04-13,Cherokee,North Carolina,37039,10,1 +2020-04-14,Cherokee,North Carolina,37039,12,1 +2020-04-15,Cherokee,North Carolina,37039,12,1 +2020-04-16,Cherokee,North Carolina,37039,13,1 +2020-04-17,Cherokee,North Carolina,37039,14,1 +2020-04-18,Cherokee,North Carolina,37039,14,1 +2020-04-19,Cherokee,North Carolina,37039,14,1 +2020-04-20,Cherokee,North Carolina,37039,14,1 +2020-04-21,Cherokee,North Carolina,37039,14,1 +2020-04-22,Cherokee,North Carolina,37039,14,1 +2020-04-23,Cherokee,North Carolina,37039,14,1 +2020-04-24,Cherokee,North Carolina,37039,15,1 +2020-04-25,Cherokee,North Carolina,37039,15,1 +2020-04-26,Cherokee,North Carolina,37039,15,1 +2020-04-27,Cherokee,North Carolina,37039,16,1 +2020-04-28,Cherokee,North Carolina,37039,16,1 +2020-04-29,Cherokee,North Carolina,37039,16,1 +2020-04-30,Cherokee,North Carolina,37039,16,1 +2020-05-01,Cherokee,North Carolina,37039,16,1 +2020-05-02,Cherokee,North Carolina,37039,16,1 +2020-05-03,Cherokee,North Carolina,37039,19,1 +2020-05-04,Cherokee,North Carolina,37039,19,1 +2020-05-05,Cherokee,North Carolina,37039,19,1 +2020-05-06,Cherokee,North Carolina,37039,19,1 +2020-05-07,Cherokee,North Carolina,37039,18,1 +2020-05-08,Cherokee,North Carolina,37039,18,1 +2020-05-09,Cherokee,North Carolina,37039,18,1 +2020-05-10,Cherokee,North Carolina,37039,18,1 +2020-05-11,Cherokee,North Carolina,37039,18,1 +2020-05-12,Cherokee,North Carolina,37039,18,1 +2020-05-13,Cherokee,North Carolina,37039,18,1 +2020-05-14,Cherokee,North Carolina,37039,18,1 +2020-05-15,Cherokee,North Carolina,37039,17,1 +2020-05-16,Cherokee,North Carolina,37039,17,1 +2020-05-17,Cherokee,North Carolina,37039,17,1 +2020-05-18,Cherokee,North Carolina,37039,17,1 +2020-05-19,Cherokee,North Carolina,37039,17,1 +2020-05-20,Cherokee,North Carolina,37039,20,1 +2020-05-21,Cherokee,North Carolina,37039,20,1 +2020-05-22,Cherokee,North Carolina,37039,20,1 +2020-05-23,Cherokee,North Carolina,37039,20,1 +2020-05-24,Cherokee,North Carolina,37039,20,1 +2020-05-25,Cherokee,North Carolina,37039,20,1 +2020-05-26,Cherokee,North Carolina,37039,20,1 +2020-05-27,Cherokee,North Carolina,37039,20,1 +2020-05-28,Cherokee,North Carolina,37039,20,1 +2020-05-29,Cherokee,North Carolina,37039,20,1 +2020-05-30,Cherokee,North Carolina,37039,20,1 +2020-05-31,Cherokee,North Carolina,37039,20,1 +2020-06-01,Cherokee,North Carolina,37039,20,1 +2020-06-02,Cherokee,North Carolina,37039,20,1 +2020-06-03,Cherokee,North Carolina,37039,20,1 +2020-06-04,Cherokee,North Carolina,37039,21,1 +2020-06-05,Cherokee,North Carolina,37039,21,1 +2020-06-06,Cherokee,North Carolina,37039,21,1 +2020-06-07,Cherokee,North Carolina,37039,22,1 +2020-06-08,Cherokee,North Carolina,37039,22,1 +2020-06-09,Cherokee,North Carolina,37039,22,1 +2020-06-10,Cherokee,North Carolina,37039,21,1 +2020-06-11,Cherokee,North Carolina,37039,26,1 +2020-06-12,Cherokee,North Carolina,37039,30,1 +2020-06-13,Cherokee,North Carolina,37039,30,1 +2020-06-14,Cherokee,North Carolina,37039,30,1 +2020-06-15,Cherokee,North Carolina,37039,30,1 +2020-06-16,Cherokee,North Carolina,37039,30,1 +2020-06-17,Cherokee,North Carolina,37039,30,1 +2020-06-18,Cherokee,North Carolina,37039,31,1 +2020-06-19,Cherokee,North Carolina,37039,32,1 +2020-06-20,Cherokee,North Carolina,37039,32,1 +2020-06-21,Cherokee,North Carolina,37039,32,1 +2020-06-22,Cherokee,North Carolina,37039,32,1 +2020-06-23,Cherokee,North Carolina,37039,32,1 +2020-06-24,Cherokee,North Carolina,37039,32,1 +2020-06-25,Cherokee,North Carolina,37039,32,1 +2020-06-26,Cherokee,North Carolina,37039,33,1 +2020-06-27,Cherokee,North Carolina,37039,33,1 +2020-06-28,Cherokee,North Carolina,37039,33,1 +2020-06-29,Cherokee,North Carolina,37039,33,1 +2020-06-30,Cherokee,North Carolina,37039,34,1 +2020-07-01,Cherokee,North Carolina,37039,35,1 +2020-07-02,Cherokee,North Carolina,37039,45,2 +2020-07-03,Cherokee,North Carolina,37039,45,2 +2020-07-04,Cherokee,North Carolina,37039,44,2 +2020-07-05,Cherokee,North Carolina,37039,44,2 +2020-07-06,Cherokee,North Carolina,37039,45,2 +2020-07-07,Cherokee,North Carolina,37039,48,2 +2020-07-08,Cherokee,North Carolina,37039,51,2 +2020-07-09,Cherokee,North Carolina,37039,52,2 +2020-04-03,Chowan,North Carolina,37041,1,0 +2020-04-04,Chowan,North Carolina,37041,1,0 +2020-04-05,Chowan,North Carolina,37041,1,0 +2020-04-06,Chowan,North Carolina,37041,1,0 +2020-04-07,Chowan,North Carolina,37041,1,0 +2020-04-08,Chowan,North Carolina,37041,1,0 +2020-04-09,Chowan,North Carolina,37041,1,0 +2020-04-10,Chowan,North Carolina,37041,2,0 +2020-04-11,Chowan,North Carolina,37041,3,0 +2020-04-12,Chowan,North Carolina,37041,3,0 +2020-04-13,Chowan,North Carolina,37041,3,0 +2020-04-14,Chowan,North Carolina,37041,4,0 +2020-04-15,Chowan,North Carolina,37041,5,0 +2020-04-16,Chowan,North Carolina,37041,5,0 +2020-04-17,Chowan,North Carolina,37041,6,0 +2020-04-18,Chowan,North Carolina,37041,6,0 +2020-04-19,Chowan,North Carolina,37041,6,0 +2020-04-20,Chowan,North Carolina,37041,6,0 +2020-04-21,Chowan,North Carolina,37041,6,0 +2020-04-22,Chowan,North Carolina,37041,6,0 +2020-04-23,Chowan,North Carolina,37041,6,0 +2020-04-24,Chowan,North Carolina,37041,6,0 +2020-04-25,Chowan,North Carolina,37041,7,0 +2020-04-26,Chowan,North Carolina,37041,7,0 +2020-04-27,Chowan,North Carolina,37041,6,0 +2020-04-28,Chowan,North Carolina,37041,6,0 +2020-04-29,Chowan,North Carolina,37041,6,0 +2020-04-30,Chowan,North Carolina,37041,6,0 +2020-05-01,Chowan,North Carolina,37041,6,0 +2020-05-02,Chowan,North Carolina,37041,6,0 +2020-05-03,Chowan,North Carolina,37041,6,0 +2020-05-04,Chowan,North Carolina,37041,6,0 +2020-05-05,Chowan,North Carolina,37041,6,0 +2020-05-06,Chowan,North Carolina,37041,7,0 +2020-05-07,Chowan,North Carolina,37041,7,0 +2020-05-08,Chowan,North Carolina,37041,8,0 +2020-05-09,Chowan,North Carolina,37041,10,0 +2020-05-10,Chowan,North Carolina,37041,11,0 +2020-05-11,Chowan,North Carolina,37041,11,0 +2020-05-12,Chowan,North Carolina,37041,11,0 +2020-05-13,Chowan,North Carolina,37041,12,0 +2020-05-14,Chowan,North Carolina,37041,12,0 +2020-05-15,Chowan,North Carolina,37041,12,0 +2020-05-16,Chowan,North Carolina,37041,14,0 +2020-05-17,Chowan,North Carolina,37041,14,0 +2020-05-18,Chowan,North Carolina,37041,15,0 +2020-05-19,Chowan,North Carolina,37041,14,0 +2020-05-20,Chowan,North Carolina,37041,14,0 +2020-05-21,Chowan,North Carolina,37041,14,0 +2020-05-22,Chowan,North Carolina,37041,14,0 +2020-05-23,Chowan,North Carolina,37041,14,0 +2020-05-24,Chowan,North Carolina,37041,15,0 +2020-05-25,Chowan,North Carolina,37041,15,0 +2020-05-26,Chowan,North Carolina,37041,15,0 +2020-05-27,Chowan,North Carolina,37041,16,0 +2020-05-28,Chowan,North Carolina,37041,16,0 +2020-05-29,Chowan,North Carolina,37041,17,0 +2020-05-30,Chowan,North Carolina,37041,17,0 +2020-05-31,Chowan,North Carolina,37041,17,0 +2020-06-01,Chowan,North Carolina,37041,17,0 +2020-06-02,Chowan,North Carolina,37041,17,0 +2020-06-03,Chowan,North Carolina,37041,17,0 +2020-06-04,Chowan,North Carolina,37041,17,0 +2020-06-05,Chowan,North Carolina,37041,17,0 +2020-06-06,Chowan,North Carolina,37041,17,0 +2020-06-07,Chowan,North Carolina,37041,17,0 +2020-06-08,Chowan,North Carolina,37041,17,0 +2020-06-09,Chowan,North Carolina,37041,17,0 +2020-06-10,Chowan,North Carolina,37041,18,0 +2020-06-11,Chowan,North Carolina,37041,19,0 +2020-06-12,Chowan,North Carolina,37041,19,0 +2020-06-13,Chowan,North Carolina,37041,19,0 +2020-06-14,Chowan,North Carolina,37041,19,0 +2020-06-15,Chowan,North Carolina,37041,19,0 +2020-06-16,Chowan,North Carolina,37041,19,0 +2020-06-17,Chowan,North Carolina,37041,19,0 +2020-06-18,Chowan,North Carolina,37041,19,0 +2020-06-19,Chowan,North Carolina,37041,19,0 +2020-06-20,Chowan,North Carolina,37041,19,0 +2020-06-21,Chowan,North Carolina,37041,19,0 +2020-06-22,Chowan,North Carolina,37041,19,0 +2020-06-23,Chowan,North Carolina,37041,19,0 +2020-06-24,Chowan,North Carolina,37041,19,0 +2020-06-25,Chowan,North Carolina,37041,19,0 +2020-06-26,Chowan,North Carolina,37041,19,0 +2020-06-27,Chowan,North Carolina,37041,22,0 +2020-06-28,Chowan,North Carolina,37041,24,0 +2020-06-29,Chowan,North Carolina,37041,24,0 +2020-06-30,Chowan,North Carolina,37041,24,0 +2020-07-01,Chowan,North Carolina,37041,24,0 +2020-07-02,Chowan,North Carolina,37041,25,0 +2020-07-03,Chowan,North Carolina,37041,26,0 +2020-07-04,Chowan,North Carolina,37041,27,0 +2020-07-05,Chowan,North Carolina,37041,27,0 +2020-07-06,Chowan,North Carolina,37041,29,0 +2020-07-07,Chowan,North Carolina,37041,30,0 +2020-07-08,Chowan,North Carolina,37041,31,0 +2020-07-09,Chowan,North Carolina,37041,31,0 +2020-03-31,Clay,North Carolina,37043,1,0 +2020-04-01,Clay,North Carolina,37043,1,0 +2020-04-02,Clay,North Carolina,37043,2,0 +2020-04-03,Clay,North Carolina,37043,3,0 +2020-04-04,Clay,North Carolina,37043,3,0 +2020-04-05,Clay,North Carolina,37043,3,0 +2020-04-06,Clay,North Carolina,37043,3,0 +2020-04-07,Clay,North Carolina,37043,3,0 +2020-04-08,Clay,North Carolina,37043,3,0 +2020-04-09,Clay,North Carolina,37043,4,0 +2020-04-10,Clay,North Carolina,37043,3,0 +2020-04-11,Clay,North Carolina,37043,3,0 +2020-04-12,Clay,North Carolina,37043,3,0 +2020-04-13,Clay,North Carolina,37043,3,0 +2020-04-14,Clay,North Carolina,37043,3,0 +2020-04-15,Clay,North Carolina,37043,3,0 +2020-04-16,Clay,North Carolina,37043,4,0 +2020-04-17,Clay,North Carolina,37043,5,0 +2020-04-18,Clay,North Carolina,37043,5,0 +2020-04-19,Clay,North Carolina,37043,5,0 +2020-04-20,Clay,North Carolina,37043,5,0 +2020-04-21,Clay,North Carolina,37043,5,0 +2020-04-22,Clay,North Carolina,37043,5,0 +2020-04-23,Clay,North Carolina,37043,5,0 +2020-04-24,Clay,North Carolina,37043,5,0 +2020-04-25,Clay,North Carolina,37043,5,0 +2020-04-26,Clay,North Carolina,37043,5,0 +2020-04-27,Clay,North Carolina,37043,5,0 +2020-04-28,Clay,North Carolina,37043,5,0 +2020-04-29,Clay,North Carolina,37043,5,0 +2020-04-30,Clay,North Carolina,37043,5,0 +2020-05-01,Clay,North Carolina,37043,5,0 +2020-05-02,Clay,North Carolina,37043,5,0 +2020-05-03,Clay,North Carolina,37043,5,0 +2020-05-04,Clay,North Carolina,37043,5,0 +2020-05-05,Clay,North Carolina,37043,5,0 +2020-05-06,Clay,North Carolina,37043,5,0 +2020-05-07,Clay,North Carolina,37043,5,0 +2020-05-08,Clay,North Carolina,37043,5,0 +2020-05-09,Clay,North Carolina,37043,5,0 +2020-05-10,Clay,North Carolina,37043,5,0 +2020-05-11,Clay,North Carolina,37043,5,0 +2020-05-12,Clay,North Carolina,37043,5,0 +2020-05-13,Clay,North Carolina,37043,5,0 +2020-05-14,Clay,North Carolina,37043,5,0 +2020-05-15,Clay,North Carolina,37043,5,0 +2020-05-16,Clay,North Carolina,37043,5,0 +2020-05-17,Clay,North Carolina,37043,5,0 +2020-05-18,Clay,North Carolina,37043,5,0 +2020-05-19,Clay,North Carolina,37043,5,0 +2020-05-20,Clay,North Carolina,37043,5,0 +2020-05-21,Clay,North Carolina,37043,5,0 +2020-05-22,Clay,North Carolina,37043,5,0 +2020-05-23,Clay,North Carolina,37043,5,0 +2020-05-24,Clay,North Carolina,37043,5,0 +2020-05-25,Clay,North Carolina,37043,5,0 +2020-05-26,Clay,North Carolina,37043,5,0 +2020-05-27,Clay,North Carolina,37043,5,0 +2020-05-28,Clay,North Carolina,37043,5,0 +2020-05-29,Clay,North Carolina,37043,5,0 +2020-05-30,Clay,North Carolina,37043,5,0 +2020-05-31,Clay,North Carolina,37043,5,0 +2020-06-01,Clay,North Carolina,37043,5,0 +2020-06-02,Clay,North Carolina,37043,5,0 +2020-06-03,Clay,North Carolina,37043,5,0 +2020-06-04,Clay,North Carolina,37043,5,0 +2020-06-05,Clay,North Carolina,37043,5,0 +2020-06-06,Clay,North Carolina,37043,5,0 +2020-06-07,Clay,North Carolina,37043,5,0 +2020-06-08,Clay,North Carolina,37043,6,0 +2020-06-09,Clay,North Carolina,37043,8,0 +2020-06-10,Clay,North Carolina,37043,8,0 +2020-06-11,Clay,North Carolina,37043,8,0 +2020-06-12,Clay,North Carolina,37043,8,0 +2020-06-13,Clay,North Carolina,37043,9,0 +2020-06-14,Clay,North Carolina,37043,9,0 +2020-06-15,Clay,North Carolina,37043,9,0 +2020-06-16,Clay,North Carolina,37043,9,0 +2020-06-17,Clay,North Carolina,37043,9,0 +2020-06-18,Clay,North Carolina,37043,9,0 +2020-06-19,Clay,North Carolina,37043,9,0 +2020-06-20,Clay,North Carolina,37043,9,0 +2020-06-21,Clay,North Carolina,37043,9,0 +2020-06-22,Clay,North Carolina,37043,9,0 +2020-06-23,Clay,North Carolina,37043,9,0 +2020-06-24,Clay,North Carolina,37043,9,0 +2020-06-25,Clay,North Carolina,37043,9,0 +2020-06-26,Clay,North Carolina,37043,9,0 +2020-06-27,Clay,North Carolina,37043,9,0 +2020-06-28,Clay,North Carolina,37043,9,0 +2020-06-29,Clay,North Carolina,37043,9,0 +2020-06-30,Clay,North Carolina,37043,10,0 +2020-07-01,Clay,North Carolina,37043,10,0 +2020-07-02,Clay,North Carolina,37043,10,0 +2020-07-03,Clay,North Carolina,37043,12,0 +2020-07-04,Clay,North Carolina,37043,12,0 +2020-07-05,Clay,North Carolina,37043,12,0 +2020-07-06,Clay,North Carolina,37043,12,0 +2020-07-07,Clay,North Carolina,37043,11,0 +2020-07-08,Clay,North Carolina,37043,11,0 +2020-07-09,Clay,North Carolina,37043,11,0 +2020-03-25,Cleveland,North Carolina,37045,1,0 +2020-03-26,Cleveland,North Carolina,37045,2,0 +2020-03-27,Cleveland,North Carolina,37045,2,0 +2020-03-28,Cleveland,North Carolina,37045,3,0 +2020-03-29,Cleveland,North Carolina,37045,5,0 +2020-03-30,Cleveland,North Carolina,37045,5,0 +2020-03-31,Cleveland,North Carolina,37045,6,0 +2020-04-01,Cleveland,North Carolina,37045,6,0 +2020-04-02,Cleveland,North Carolina,37045,7,0 +2020-04-03,Cleveland,North Carolina,37045,10,0 +2020-04-04,Cleveland,North Carolina,37045,15,0 +2020-04-05,Cleveland,North Carolina,37045,15,0 +2020-04-06,Cleveland,North Carolina,37045,18,0 +2020-04-07,Cleveland,North Carolina,37045,23,0 +2020-04-08,Cleveland,North Carolina,37045,26,0 +2020-04-09,Cleveland,North Carolina,37045,27,0 +2020-04-10,Cleveland,North Carolina,37045,32,0 +2020-04-11,Cleveland,North Carolina,37045,35,0 +2020-04-12,Cleveland,North Carolina,37045,38,0 +2020-04-13,Cleveland,North Carolina,37045,39,0 +2020-04-14,Cleveland,North Carolina,37045,39,0 +2020-04-15,Cleveland,North Carolina,37045,40,1 +2020-04-16,Cleveland,North Carolina,37045,41,1 +2020-04-17,Cleveland,North Carolina,37045,42,1 +2020-04-18,Cleveland,North Carolina,37045,42,1 +2020-04-19,Cleveland,North Carolina,37045,44,1 +2020-04-20,Cleveland,North Carolina,37045,43,1 +2020-04-21,Cleveland,North Carolina,37045,44,1 +2020-04-22,Cleveland,North Carolina,37045,45,2 +2020-04-23,Cleveland,North Carolina,37045,45,2 +2020-04-24,Cleveland,North Carolina,37045,45,2 +2020-04-25,Cleveland,North Carolina,37045,46,2 +2020-04-26,Cleveland,North Carolina,37045,46,2 +2020-04-27,Cleveland,North Carolina,37045,46,2 +2020-04-28,Cleveland,North Carolina,37045,46,2 +2020-04-29,Cleveland,North Carolina,37045,46,2 +2020-04-30,Cleveland,North Carolina,37045,47,2 +2020-05-01,Cleveland,North Carolina,37045,47,2 +2020-05-02,Cleveland,North Carolina,37045,47,2 +2020-05-03,Cleveland,North Carolina,37045,47,2 +2020-05-04,Cleveland,North Carolina,37045,47,2 +2020-05-05,Cleveland,North Carolina,37045,48,2 +2020-05-06,Cleveland,North Carolina,37045,48,2 +2020-05-07,Cleveland,North Carolina,37045,50,2 +2020-05-08,Cleveland,North Carolina,37045,50,2 +2020-05-09,Cleveland,North Carolina,37045,50,2 +2020-05-10,Cleveland,North Carolina,37045,50,2 +2020-05-11,Cleveland,North Carolina,37045,50,2 +2020-05-12,Cleveland,North Carolina,37045,50,2 +2020-05-13,Cleveland,North Carolina,37045,51,2 +2020-05-14,Cleveland,North Carolina,37045,53,2 +2020-05-15,Cleveland,North Carolina,37045,54,2 +2020-05-16,Cleveland,North Carolina,37045,54,2 +2020-05-17,Cleveland,North Carolina,37045,54,2 +2020-05-18,Cleveland,North Carolina,37045,55,2 +2020-05-19,Cleveland,North Carolina,37045,55,2 +2020-05-20,Cleveland,North Carolina,37045,60,2 +2020-05-21,Cleveland,North Carolina,37045,60,2 +2020-05-22,Cleveland,North Carolina,37045,63,2 +2020-05-23,Cleveland,North Carolina,37045,67,2 +2020-05-24,Cleveland,North Carolina,37045,67,2 +2020-05-25,Cleveland,North Carolina,37045,69,2 +2020-05-26,Cleveland,North Carolina,37045,69,2 +2020-05-27,Cleveland,North Carolina,37045,73,2 +2020-05-28,Cleveland,North Carolina,37045,78,2 +2020-05-29,Cleveland,North Carolina,37045,79,2 +2020-05-30,Cleveland,North Carolina,37045,89,2 +2020-05-31,Cleveland,North Carolina,37045,90,2 +2020-06-01,Cleveland,North Carolina,37045,94,2 +2020-06-02,Cleveland,North Carolina,37045,99,2 +2020-06-03,Cleveland,North Carolina,37045,102,2 +2020-06-04,Cleveland,North Carolina,37045,104,2 +2020-06-05,Cleveland,North Carolina,37045,108,2 +2020-06-06,Cleveland,North Carolina,37045,113,2 +2020-06-07,Cleveland,North Carolina,37045,121,2 +2020-06-08,Cleveland,North Carolina,37045,121,2 +2020-06-09,Cleveland,North Carolina,37045,127,2 +2020-06-10,Cleveland,North Carolina,37045,127,2 +2020-06-11,Cleveland,North Carolina,37045,134,2 +2020-06-12,Cleveland,North Carolina,37045,143,2 +2020-06-13,Cleveland,North Carolina,37045,152,2 +2020-06-14,Cleveland,North Carolina,37045,159,2 +2020-06-15,Cleveland,North Carolina,37045,159,2 +2020-06-16,Cleveland,North Carolina,37045,164,2 +2020-06-17,Cleveland,North Carolina,37045,180,2 +2020-06-18,Cleveland,North Carolina,37045,189,2 +2020-06-19,Cleveland,North Carolina,37045,202,2 +2020-06-20,Cleveland,North Carolina,37045,213,2 +2020-06-21,Cleveland,North Carolina,37045,225,2 +2020-06-22,Cleveland,North Carolina,37045,227,2 +2020-06-23,Cleveland,North Carolina,37045,239,2 +2020-06-24,Cleveland,North Carolina,37045,242,2 +2020-06-25,Cleveland,North Carolina,37045,248,3 +2020-06-26,Cleveland,North Carolina,37045,257,3 +2020-06-27,Cleveland,North Carolina,37045,268,3 +2020-06-28,Cleveland,North Carolina,37045,277,3 +2020-06-29,Cleveland,North Carolina,37045,283,4 +2020-06-30,Cleveland,North Carolina,37045,297,4 +2020-07-01,Cleveland,North Carolina,37045,315,4 +2020-07-02,Cleveland,North Carolina,37045,324,4 +2020-07-03,Cleveland,North Carolina,37045,349,4 +2020-07-04,Cleveland,North Carolina,37045,365,4 +2020-07-05,Cleveland,North Carolina,37045,375,4 +2020-07-06,Cleveland,North Carolina,37045,398,5 +2020-07-07,Cleveland,North Carolina,37045,407,5 +2020-07-08,Cleveland,North Carolina,37045,423,6 +2020-07-09,Cleveland,North Carolina,37045,448,8 +2020-03-29,Columbus,North Carolina,37047,1,0 +2020-03-30,Columbus,North Carolina,37047,2,0 +2020-03-31,Columbus,North Carolina,37047,2,0 +2020-04-01,Columbus,North Carolina,37047,2,0 +2020-04-02,Columbus,North Carolina,37047,2,0 +2020-04-03,Columbus,North Carolina,37047,2,0 +2020-04-04,Columbus,North Carolina,37047,4,0 +2020-04-05,Columbus,North Carolina,37047,5,0 +2020-04-06,Columbus,North Carolina,37047,12,1 +2020-04-07,Columbus,North Carolina,37047,13,1 +2020-04-08,Columbus,North Carolina,37047,14,1 +2020-04-09,Columbus,North Carolina,37047,16,1 +2020-04-10,Columbus,North Carolina,37047,20,1 +2020-04-11,Columbus,North Carolina,37047,31,1 +2020-04-12,Columbus,North Carolina,37047,31,1 +2020-04-13,Columbus,North Carolina,37047,37,1 +2020-04-14,Columbus,North Carolina,37047,37,1 +2020-04-15,Columbus,North Carolina,37047,37,1 +2020-04-16,Columbus,North Carolina,37047,41,1 +2020-04-17,Columbus,North Carolina,37047,50,2 +2020-04-18,Columbus,North Carolina,37047,51,2 +2020-04-19,Columbus,North Carolina,37047,57,3 +2020-04-20,Columbus,North Carolina,37047,59,3 +2020-04-21,Columbus,North Carolina,37047,61,3 +2020-04-22,Columbus,North Carolina,37047,66,4 +2020-04-23,Columbus,North Carolina,37047,74,5 +2020-04-24,Columbus,North Carolina,37047,80,5 +2020-04-25,Columbus,North Carolina,37047,87,6 +2020-04-26,Columbus,North Carolina,37047,90,7 +2020-04-27,Columbus,North Carolina,37047,90,8 +2020-04-28,Columbus,North Carolina,37047,94,8 +2020-04-29,Columbus,North Carolina,37047,102,8 +2020-04-30,Columbus,North Carolina,37047,139,9 +2020-05-01,Columbus,North Carolina,37047,149,10 +2020-05-02,Columbus,North Carolina,37047,164,10 +2020-05-03,Columbus,North Carolina,37047,166,10 +2020-05-04,Columbus,North Carolina,37047,167,11 +2020-05-05,Columbus,North Carolina,37047,167,11 +2020-05-06,Columbus,North Carolina,37047,175,11 +2020-05-07,Columbus,North Carolina,37047,184,11 +2020-05-08,Columbus,North Carolina,37047,186,13 +2020-05-09,Columbus,North Carolina,37047,196,13 +2020-05-10,Columbus,North Carolina,37047,200,14 +2020-05-11,Columbus,North Carolina,37047,205,14 +2020-05-12,Columbus,North Carolina,37047,212,16 +2020-05-13,Columbus,North Carolina,37047,216,17 +2020-05-14,Columbus,North Carolina,37047,226,17 +2020-05-15,Columbus,North Carolina,37047,226,17 +2020-05-16,Columbus,North Carolina,37047,228,18 +2020-05-17,Columbus,North Carolina,37047,235,18 +2020-05-18,Columbus,North Carolina,37047,242,18 +2020-05-19,Columbus,North Carolina,37047,251,21 +2020-05-20,Columbus,North Carolina,37047,253,21 +2020-05-21,Columbus,North Carolina,37047,271,21 +2020-05-22,Columbus,North Carolina,37047,278,21 +2020-05-23,Columbus,North Carolina,37047,289,21 +2020-05-24,Columbus,North Carolina,37047,292,21 +2020-05-25,Columbus,North Carolina,37047,296,21 +2020-05-26,Columbus,North Carolina,37047,299,21 +2020-05-27,Columbus,North Carolina,37047,304,22 +2020-05-28,Columbus,North Carolina,37047,314,24 +2020-05-29,Columbus,North Carolina,37047,320,25 +2020-05-30,Columbus,North Carolina,37047,327,26 +2020-05-31,Columbus,North Carolina,37047,335,26 +2020-06-01,Columbus,North Carolina,37047,335,26 +2020-06-02,Columbus,North Carolina,37047,337,27 +2020-06-03,Columbus,North Carolina,37047,340,27 +2020-06-04,Columbus,North Carolina,37047,349,27 +2020-06-05,Columbus,North Carolina,37047,355,27 +2020-06-06,Columbus,North Carolina,37047,361,27 +2020-06-07,Columbus,North Carolina,37047,368,27 +2020-06-08,Columbus,North Carolina,37047,373,28 +2020-06-09,Columbus,North Carolina,37047,374,28 +2020-06-10,Columbus,North Carolina,37047,379,28 +2020-06-11,Columbus,North Carolina,37047,388,28 +2020-06-12,Columbus,North Carolina,37047,404,29 +2020-06-13,Columbus,North Carolina,37047,415,29 +2020-06-14,Columbus,North Carolina,37047,419,29 +2020-06-15,Columbus,North Carolina,37047,427,31 +2020-06-16,Columbus,North Carolina,37047,429,33 +2020-06-17,Columbus,North Carolina,37047,432,33 +2020-06-18,Columbus,North Carolina,37047,446,33 +2020-06-19,Columbus,North Carolina,37047,452,33 +2020-06-20,Columbus,North Carolina,37047,460,35 +2020-06-21,Columbus,North Carolina,37047,461,35 +2020-06-22,Columbus,North Carolina,37047,464,35 +2020-06-23,Columbus,North Carolina,37047,471,35 +2020-06-24,Columbus,North Carolina,37047,484,35 +2020-06-25,Columbus,North Carolina,37047,492,35 +2020-06-26,Columbus,North Carolina,37047,494,37 +2020-06-27,Columbus,North Carolina,37047,502,37 +2020-06-28,Columbus,North Carolina,37047,513,37 +2020-06-29,Columbus,North Carolina,37047,517,37 +2020-06-30,Columbus,North Carolina,37047,521,38 +2020-07-01,Columbus,North Carolina,37047,535,39 +2020-07-02,Columbus,North Carolina,37047,543,39 +2020-07-03,Columbus,North Carolina,37047,553,39 +2020-07-04,Columbus,North Carolina,37047,555,39 +2020-07-05,Columbus,North Carolina,37047,556,39 +2020-07-06,Columbus,North Carolina,37047,565,39 +2020-07-07,Columbus,North Carolina,37047,570,39 +2020-07-08,Columbus,North Carolina,37047,577,39 +2020-07-09,Columbus,North Carolina,37047,585,39 +2020-03-14,Craven,North Carolina,37049,1,0 +2020-03-15,Craven,North Carolina,37049,1,0 +2020-03-16,Craven,North Carolina,37049,1,0 +2020-03-17,Craven,North Carolina,37049,1,0 +2020-03-18,Craven,North Carolina,37049,1,0 +2020-03-19,Craven,North Carolina,37049,1,0 +2020-03-20,Craven,North Carolina,37049,2,0 +2020-03-21,Craven,North Carolina,37049,2,0 +2020-03-22,Craven,North Carolina,37049,2,0 +2020-03-23,Craven,North Carolina,37049,2,0 +2020-03-24,Craven,North Carolina,37049,2,0 +2020-03-25,Craven,North Carolina,37049,3,0 +2020-03-26,Craven,North Carolina,37049,3,0 +2020-03-27,Craven,North Carolina,37049,3,0 +2020-03-28,Craven,North Carolina,37049,4,0 +2020-03-29,Craven,North Carolina,37049,5,0 +2020-03-30,Craven,North Carolina,37049,5,0 +2020-03-31,Craven,North Carolina,37049,6,0 +2020-04-01,Craven,North Carolina,37049,6,0 +2020-04-02,Craven,North Carolina,37049,7,0 +2020-04-03,Craven,North Carolina,37049,11,0 +2020-04-04,Craven,North Carolina,37049,13,0 +2020-04-05,Craven,North Carolina,37049,15,0 +2020-04-06,Craven,North Carolina,37049,17,0 +2020-04-07,Craven,North Carolina,37049,18,0 +2020-04-08,Craven,North Carolina,37049,19,0 +2020-04-09,Craven,North Carolina,37049,19,1 +2020-04-10,Craven,North Carolina,37049,22,1 +2020-04-11,Craven,North Carolina,37049,24,1 +2020-04-12,Craven,North Carolina,37049,25,1 +2020-04-13,Craven,North Carolina,37049,27,1 +2020-04-14,Craven,North Carolina,37049,29,1 +2020-04-15,Craven,North Carolina,37049,31,1 +2020-04-16,Craven,North Carolina,37049,31,1 +2020-04-17,Craven,North Carolina,37049,33,1 +2020-04-18,Craven,North Carolina,37049,33,2 +2020-04-19,Craven,North Carolina,37049,34,2 +2020-04-20,Craven,North Carolina,37049,36,3 +2020-04-21,Craven,North Carolina,37049,36,4 +2020-04-22,Craven,North Carolina,37049,36,4 +2020-04-23,Craven,North Carolina,37049,37,4 +2020-04-24,Craven,North Carolina,37049,39,4 +2020-04-25,Craven,North Carolina,37049,39,4 +2020-04-26,Craven,North Carolina,37049,39,4 +2020-04-27,Craven,North Carolina,37049,39,4 +2020-04-28,Craven,North Carolina,37049,39,4 +2020-04-29,Craven,North Carolina,37049,39,4 +2020-04-30,Craven,North Carolina,37049,40,4 +2020-05-01,Craven,North Carolina,37049,42,4 +2020-05-02,Craven,North Carolina,37049,42,4 +2020-05-03,Craven,North Carolina,37049,42,4 +2020-05-04,Craven,North Carolina,37049,44,4 +2020-05-05,Craven,North Carolina,37049,44,4 +2020-05-06,Craven,North Carolina,37049,43,4 +2020-05-07,Craven,North Carolina,37049,46,4 +2020-05-08,Craven,North Carolina,37049,49,4 +2020-05-09,Craven,North Carolina,37049,51,4 +2020-05-10,Craven,North Carolina,37049,54,4 +2020-05-11,Craven,North Carolina,37049,55,4 +2020-05-12,Craven,North Carolina,37049,57,4 +2020-05-13,Craven,North Carolina,37049,55,4 +2020-05-14,Craven,North Carolina,37049,72,4 +2020-05-15,Craven,North Carolina,37049,81,4 +2020-05-16,Craven,North Carolina,37049,84,4 +2020-05-17,Craven,North Carolina,37049,94,4 +2020-05-18,Craven,North Carolina,37049,127,4 +2020-05-19,Craven,North Carolina,37049,133,4 +2020-05-20,Craven,North Carolina,37049,135,4 +2020-05-21,Craven,North Carolina,37049,140,4 +2020-05-22,Craven,North Carolina,37049,142,4 +2020-05-23,Craven,North Carolina,37049,177,4 +2020-05-24,Craven,North Carolina,37049,189,4 +2020-05-25,Craven,North Carolina,37049,192,4 +2020-05-26,Craven,North Carolina,37049,192,4 +2020-05-27,Craven,North Carolina,37049,192,4 +2020-05-28,Craven,North Carolina,37049,192,5 +2020-05-29,Craven,North Carolina,37049,192,5 +2020-05-30,Craven,North Carolina,37049,204,5 +2020-05-31,Craven,North Carolina,37049,204,5 +2020-06-01,Craven,North Carolina,37049,209,5 +2020-06-02,Craven,North Carolina,37049,210,5 +2020-06-03,Craven,North Carolina,37049,210,5 +2020-06-04,Craven,North Carolina,37049,216,5 +2020-06-05,Craven,North Carolina,37049,218,5 +2020-06-06,Craven,North Carolina,37049,223,5 +2020-06-07,Craven,North Carolina,37049,232,5 +2020-06-08,Craven,North Carolina,37049,237,5 +2020-06-09,Craven,North Carolina,37049,238,5 +2020-06-10,Craven,North Carolina,37049,241,5 +2020-06-11,Craven,North Carolina,37049,243,5 +2020-06-12,Craven,North Carolina,37049,256,5 +2020-06-13,Craven,North Carolina,37049,255,5 +2020-06-14,Craven,North Carolina,37049,264,5 +2020-06-15,Craven,North Carolina,37049,276,5 +2020-06-16,Craven,North Carolina,37049,275,5 +2020-06-17,Craven,North Carolina,37049,280,5 +2020-06-18,Craven,North Carolina,37049,283,5 +2020-06-19,Craven,North Carolina,37049,292,5 +2020-06-20,Craven,North Carolina,37049,300,6 +2020-06-21,Craven,North Carolina,37049,310,6 +2020-06-22,Craven,North Carolina,37049,312,6 +2020-06-23,Craven,North Carolina,37049,318,6 +2020-06-24,Craven,North Carolina,37049,328,6 +2020-06-25,Craven,North Carolina,37049,332,6 +2020-06-26,Craven,North Carolina,37049,338,6 +2020-06-27,Craven,North Carolina,37049,350,6 +2020-06-28,Craven,North Carolina,37049,354,6 +2020-06-29,Craven,North Carolina,37049,365,6 +2020-06-30,Craven,North Carolina,37049,365,6 +2020-07-01,Craven,North Carolina,37049,372,6 +2020-07-02,Craven,North Carolina,37049,382,6 +2020-07-03,Craven,North Carolina,37049,391,6 +2020-07-04,Craven,North Carolina,37049,387,6 +2020-07-05,Craven,North Carolina,37049,396,6 +2020-07-06,Craven,North Carolina,37049,402,6 +2020-07-07,Craven,North Carolina,37049,405,7 +2020-07-08,Craven,North Carolina,37049,411,8 +2020-07-09,Craven,North Carolina,37049,426,8 +2020-03-22,Cumberland,North Carolina,37051,2,0 +2020-03-23,Cumberland,North Carolina,37051,2,0 +2020-03-24,Cumberland,North Carolina,37051,2,0 +2020-03-25,Cumberland,North Carolina,37051,5,0 +2020-03-26,Cumberland,North Carolina,37051,7,0 +2020-03-27,Cumberland,North Carolina,37051,8,0 +2020-03-28,Cumberland,North Carolina,37051,10,0 +2020-03-29,Cumberland,North Carolina,37051,13,0 +2020-03-30,Cumberland,North Carolina,37051,15,0 +2020-03-31,Cumberland,North Carolina,37051,18,0 +2020-04-01,Cumberland,North Carolina,37051,19,0 +2020-04-02,Cumberland,North Carolina,37051,25,0 +2020-04-03,Cumberland,North Carolina,37051,35,0 +2020-04-04,Cumberland,North Carolina,37051,42,0 +2020-04-05,Cumberland,North Carolina,37051,42,0 +2020-04-06,Cumberland,North Carolina,37051,45,0 +2020-04-07,Cumberland,North Carolina,37051,62,0 +2020-04-08,Cumberland,North Carolina,37051,64,0 +2020-04-09,Cumberland,North Carolina,37051,72,1 +2020-04-10,Cumberland,North Carolina,37051,75,1 +2020-04-11,Cumberland,North Carolina,37051,82,1 +2020-04-12,Cumberland,North Carolina,37051,84,1 +2020-04-13,Cumberland,North Carolina,37051,84,2 +2020-04-14,Cumberland,North Carolina,37051,86,2 +2020-04-15,Cumberland,North Carolina,37051,87,2 +2020-04-16,Cumberland,North Carolina,37051,93,2 +2020-04-17,Cumberland,North Carolina,37051,97,3 +2020-04-18,Cumberland,North Carolina,37051,105,3 +2020-04-19,Cumberland,North Carolina,37051,112,3 +2020-04-20,Cumberland,North Carolina,37051,112,3 +2020-04-21,Cumberland,North Carolina,37051,127,6 +2020-04-22,Cumberland,North Carolina,37051,129,6 +2020-04-23,Cumberland,North Carolina,37051,137,5 +2020-04-24,Cumberland,North Carolina,37051,161,6 +2020-04-25,Cumberland,North Carolina,37051,184,6 +2020-04-26,Cumberland,North Carolina,37051,192,6 +2020-04-27,Cumberland,North Carolina,37051,193,6 +2020-04-28,Cumberland,North Carolina,37051,218,7 +2020-04-29,Cumberland,North Carolina,37051,223,7 +2020-04-30,Cumberland,North Carolina,37051,238,7 +2020-05-01,Cumberland,North Carolina,37051,256,8 +2020-05-02,Cumberland,North Carolina,37051,275,8 +2020-05-03,Cumberland,North Carolina,37051,276,8 +2020-05-04,Cumberland,North Carolina,37051,279,8 +2020-05-05,Cumberland,North Carolina,37051,290,8 +2020-05-06,Cumberland,North Carolina,37051,318,8 +2020-05-07,Cumberland,North Carolina,37051,336,9 +2020-05-08,Cumberland,North Carolina,37051,342,9 +2020-05-09,Cumberland,North Carolina,37051,347,9 +2020-05-10,Cumberland,North Carolina,37051,348,9 +2020-05-11,Cumberland,North Carolina,37051,351,9 +2020-05-12,Cumberland,North Carolina,37051,368,10 +2020-05-13,Cumberland,North Carolina,37051,398,10 +2020-05-14,Cumberland,North Carolina,37051,413,11 +2020-05-15,Cumberland,North Carolina,37051,435,11 +2020-05-16,Cumberland,North Carolina,37051,463,12 +2020-05-17,Cumberland,North Carolina,37051,468,12 +2020-05-18,Cumberland,North Carolina,37051,471,12 +2020-05-19,Cumberland,North Carolina,37051,500,13 +2020-05-20,Cumberland,North Carolina,37051,505,13 +2020-05-21,Cumberland,North Carolina,37051,524,14 +2020-05-22,Cumberland,North Carolina,37051,541,14 +2020-05-23,Cumberland,North Carolina,37051,559,14 +2020-05-24,Cumberland,North Carolina,37051,578,14 +2020-05-25,Cumberland,North Carolina,37051,588,15 +2020-05-26,Cumberland,North Carolina,37051,590,15 +2020-05-27,Cumberland,North Carolina,37051,600,16 +2020-05-28,Cumberland,North Carolina,37051,622,16 +2020-05-29,Cumberland,North Carolina,37051,658,17 +2020-05-30,Cumberland,North Carolina,37051,682,17 +2020-05-31,Cumberland,North Carolina,37051,691,17 +2020-06-01,Cumberland,North Carolina,37051,696,17 +2020-06-02,Cumberland,North Carolina,37051,708,23 +2020-06-03,Cumberland,North Carolina,37051,721,23 +2020-06-04,Cumberland,North Carolina,37051,733,24 +2020-06-05,Cumberland,North Carolina,37051,744,24 +2020-06-06,Cumberland,North Carolina,37051,768,26 +2020-06-07,Cumberland,North Carolina,37051,775,26 +2020-06-08,Cumberland,North Carolina,37051,781,26 +2020-06-09,Cumberland,North Carolina,37051,798,26 +2020-06-10,Cumberland,North Carolina,37051,811,30 +2020-06-11,Cumberland,North Carolina,37051,828,29 +2020-06-12,Cumberland,North Carolina,37051,855,30 +2020-06-13,Cumberland,North Carolina,37051,874,30 +2020-06-14,Cumberland,North Carolina,37051,888,30 +2020-06-15,Cumberland,North Carolina,37051,895,30 +2020-06-16,Cumberland,North Carolina,37051,904,30 +2020-06-17,Cumberland,North Carolina,37051,935,30 +2020-06-18,Cumberland,North Carolina,37051,948,30 +2020-06-19,Cumberland,North Carolina,37051,965,30 +2020-06-20,Cumberland,North Carolina,37051,988,31 +2020-06-21,Cumberland,North Carolina,37051,1008,31 +2020-06-22,Cumberland,North Carolina,37051,1014,31 +2020-06-23,Cumberland,North Carolina,37051,1031,36 +2020-06-24,Cumberland,North Carolina,37051,1053,39 +2020-06-25,Cumberland,North Carolina,37051,1065,40 +2020-06-26,Cumberland,North Carolina,37051,1087,41 +2020-06-27,Cumberland,North Carolina,37051,1101,41 +2020-06-28,Cumberland,North Carolina,37051,1142,41 +2020-06-29,Cumberland,North Carolina,37051,1157,41 +2020-06-30,Cumberland,North Carolina,37051,1180,41 +2020-07-01,Cumberland,North Carolina,37051,1218,41 +2020-07-02,Cumberland,North Carolina,37051,1266,41 +2020-07-03,Cumberland,North Carolina,37051,1311,41 +2020-07-04,Cumberland,North Carolina,37051,1337,41 +2020-07-05,Cumberland,North Carolina,37051,1355,41 +2020-07-06,Cumberland,North Carolina,37051,1374,41 +2020-07-07,Cumberland,North Carolina,37051,1402,41 +2020-07-08,Cumberland,North Carolina,37051,1440,41 +2020-07-09,Cumberland,North Carolina,37051,1490,41 +2020-03-29,Currituck,North Carolina,37053,1,0 +2020-03-30,Currituck,North Carolina,37053,1,0 +2020-03-31,Currituck,North Carolina,37053,1,0 +2020-04-01,Currituck,North Carolina,37053,1,0 +2020-04-02,Currituck,North Carolina,37053,2,0 +2020-04-03,Currituck,North Carolina,37053,2,0 +2020-04-04,Currituck,North Carolina,37053,2,0 +2020-04-05,Currituck,North Carolina,37053,2,0 +2020-04-06,Currituck,North Carolina,37053,2,0 +2020-04-07,Currituck,North Carolina,37053,3,0 +2020-04-08,Currituck,North Carolina,37053,3,0 +2020-04-09,Currituck,North Carolina,37053,3,0 +2020-04-10,Currituck,North Carolina,37053,3,0 +2020-04-11,Currituck,North Carolina,37053,3,0 +2020-04-12,Currituck,North Carolina,37053,3,0 +2020-04-13,Currituck,North Carolina,37053,3,0 +2020-04-14,Currituck,North Carolina,37053,3,0 +2020-04-15,Currituck,North Carolina,37053,2,0 +2020-04-16,Currituck,North Carolina,37053,2,0 +2020-04-17,Currituck,North Carolina,37053,2,0 +2020-04-18,Currituck,North Carolina,37053,2,0 +2020-04-19,Currituck,North Carolina,37053,2,0 +2020-04-20,Currituck,North Carolina,37053,2,0 +2020-04-21,Currituck,North Carolina,37053,2,0 +2020-04-22,Currituck,North Carolina,37053,2,0 +2020-04-23,Currituck,North Carolina,37053,2,0 +2020-04-24,Currituck,North Carolina,37053,2,0 +2020-04-25,Currituck,North Carolina,37053,2,0 +2020-04-26,Currituck,North Carolina,37053,2,0 +2020-04-27,Currituck,North Carolina,37053,2,0 +2020-04-28,Currituck,North Carolina,37053,2,0 +2020-04-29,Currituck,North Carolina,37053,5,0 +2020-04-30,Currituck,North Carolina,37053,5,0 +2020-05-01,Currituck,North Carolina,37053,4,0 +2020-05-02,Currituck,North Carolina,37053,5,0 +2020-05-03,Currituck,North Carolina,37053,5,0 +2020-05-04,Currituck,North Carolina,37053,5,0 +2020-05-05,Currituck,North Carolina,37053,5,0 +2020-05-06,Currituck,North Carolina,37053,5,0 +2020-05-07,Currituck,North Carolina,37053,7,0 +2020-05-08,Currituck,North Carolina,37053,9,0 +2020-05-09,Currituck,North Carolina,37053,9,0 +2020-05-10,Currituck,North Carolina,37053,9,0 +2020-05-11,Currituck,North Carolina,37053,9,0 +2020-05-12,Currituck,North Carolina,37053,9,0 +2020-05-13,Currituck,North Carolina,37053,9,0 +2020-05-14,Currituck,North Carolina,37053,11,0 +2020-05-15,Currituck,North Carolina,37053,11,0 +2020-05-16,Currituck,North Carolina,37053,11,0 +2020-05-17,Currituck,North Carolina,37053,11,0 +2020-05-18,Currituck,North Carolina,37053,11,0 +2020-05-19,Currituck,North Carolina,37053,11,0 +2020-05-20,Currituck,North Carolina,37053,11,0 +2020-05-21,Currituck,North Carolina,37053,11,0 +2020-05-22,Currituck,North Carolina,37053,11,0 +2020-05-23,Currituck,North Carolina,37053,11,0 +2020-05-24,Currituck,North Carolina,37053,11,0 +2020-05-25,Currituck,North Carolina,37053,11,0 +2020-05-26,Currituck,North Carolina,37053,11,0 +2020-05-27,Currituck,North Carolina,37053,13,0 +2020-05-28,Currituck,North Carolina,37053,13,0 +2020-05-29,Currituck,North Carolina,37053,13,0 +2020-05-30,Currituck,North Carolina,37053,13,0 +2020-05-31,Currituck,North Carolina,37053,13,0 +2020-06-01,Currituck,North Carolina,37053,14,0 +2020-06-02,Currituck,North Carolina,37053,14,0 +2020-06-03,Currituck,North Carolina,37053,14,0 +2020-06-04,Currituck,North Carolina,37053,15,0 +2020-06-05,Currituck,North Carolina,37053,15,0 +2020-06-06,Currituck,North Carolina,37053,15,0 +2020-06-07,Currituck,North Carolina,37053,15,0 +2020-06-08,Currituck,North Carolina,37053,15,0 +2020-06-09,Currituck,North Carolina,37053,15,0 +2020-06-10,Currituck,North Carolina,37053,15,0 +2020-06-11,Currituck,North Carolina,37053,15,0 +2020-06-12,Currituck,North Carolina,37053,15,0 +2020-06-13,Currituck,North Carolina,37053,16,0 +2020-06-14,Currituck,North Carolina,37053,16,0 +2020-06-15,Currituck,North Carolina,37053,16,0 +2020-06-16,Currituck,North Carolina,37053,16,0 +2020-06-17,Currituck,North Carolina,37053,16,0 +2020-06-18,Currituck,North Carolina,37053,17,0 +2020-06-19,Currituck,North Carolina,37053,17,0 +2020-06-20,Currituck,North Carolina,37053,16,0 +2020-06-21,Currituck,North Carolina,37053,16,0 +2020-06-22,Currituck,North Carolina,37053,16,0 +2020-06-23,Currituck,North Carolina,37053,16,0 +2020-06-24,Currituck,North Carolina,37053,16,0 +2020-06-25,Currituck,North Carolina,37053,16,0 +2020-06-26,Currituck,North Carolina,37053,16,0 +2020-06-27,Currituck,North Carolina,37053,18,0 +2020-06-28,Currituck,North Carolina,37053,18,0 +2020-06-29,Currituck,North Carolina,37053,19,0 +2020-06-30,Currituck,North Carolina,37053,19,0 +2020-07-01,Currituck,North Carolina,37053,19,0 +2020-07-02,Currituck,North Carolina,37053,19,0 +2020-07-03,Currituck,North Carolina,37053,20,0 +2020-07-04,Currituck,North Carolina,37053,18,0 +2020-07-05,Currituck,North Carolina,37053,20,0 +2020-07-06,Currituck,North Carolina,37053,20,0 +2020-07-07,Currituck,North Carolina,37053,21,0 +2020-07-08,Currituck,North Carolina,37053,22,0 +2020-07-09,Currituck,North Carolina,37053,22,0 +2020-04-02,Dare,North Carolina,37055,1,0 +2020-04-03,Dare,North Carolina,37055,1,0 +2020-04-04,Dare,North Carolina,37055,1,0 +2020-04-05,Dare,North Carolina,37055,1,0 +2020-04-06,Dare,North Carolina,37055,3,0 +2020-04-07,Dare,North Carolina,37055,6,0 +2020-04-08,Dare,North Carolina,37055,7,0 +2020-04-09,Dare,North Carolina,37055,7,1 +2020-04-10,Dare,North Carolina,37055,8,1 +2020-04-11,Dare,North Carolina,37055,10,1 +2020-04-12,Dare,North Carolina,37055,11,1 +2020-04-13,Dare,North Carolina,37055,12,1 +2020-04-14,Dare,North Carolina,37055,12,1 +2020-04-15,Dare,North Carolina,37055,11,1 +2020-04-16,Dare,North Carolina,37055,11,1 +2020-04-17,Dare,North Carolina,37055,11,1 +2020-04-18,Dare,North Carolina,37055,11,1 +2020-04-19,Dare,North Carolina,37055,11,1 +2020-04-20,Dare,North Carolina,37055,11,1 +2020-04-21,Dare,North Carolina,37055,11,1 +2020-04-22,Dare,North Carolina,37055,11,1 +2020-04-23,Dare,North Carolina,37055,12,1 +2020-04-24,Dare,North Carolina,37055,11,1 +2020-04-25,Dare,North Carolina,37055,11,1 +2020-04-26,Dare,North Carolina,37055,11,1 +2020-04-27,Dare,North Carolina,37055,11,1 +2020-04-28,Dare,North Carolina,37055,11,1 +2020-04-29,Dare,North Carolina,37055,11,1 +2020-04-30,Dare,North Carolina,37055,11,1 +2020-05-01,Dare,North Carolina,37055,11,1 +2020-05-02,Dare,North Carolina,37055,13,1 +2020-05-03,Dare,North Carolina,37055,13,1 +2020-05-04,Dare,North Carolina,37055,13,1 +2020-05-05,Dare,North Carolina,37055,14,1 +2020-05-06,Dare,North Carolina,37055,14,1 +2020-05-07,Dare,North Carolina,37055,14,1 +2020-05-08,Dare,North Carolina,37055,14,1 +2020-05-09,Dare,North Carolina,37055,15,1 +2020-05-10,Dare,North Carolina,37055,15,1 +2020-05-11,Dare,North Carolina,37055,17,1 +2020-05-12,Dare,North Carolina,37055,17,1 +2020-05-13,Dare,North Carolina,37055,17,1 +2020-05-14,Dare,North Carolina,37055,17,1 +2020-05-15,Dare,North Carolina,37055,18,1 +2020-05-16,Dare,North Carolina,37055,18,1 +2020-05-17,Dare,North Carolina,37055,18,1 +2020-05-18,Dare,North Carolina,37055,18,1 +2020-05-19,Dare,North Carolina,37055,18,1 +2020-05-20,Dare,North Carolina,37055,18,1 +2020-05-21,Dare,North Carolina,37055,18,1 +2020-05-22,Dare,North Carolina,37055,18,3 +2020-05-23,Dare,North Carolina,37055,18,3 +2020-05-24,Dare,North Carolina,37055,18,3 +2020-05-25,Dare,North Carolina,37055,22,1 +2020-05-26,Dare,North Carolina,37055,22,1 +2020-05-27,Dare,North Carolina,37055,22,1 +2020-05-28,Dare,North Carolina,37055,22,1 +2020-05-29,Dare,North Carolina,37055,22,1 +2020-05-30,Dare,North Carolina,37055,22,1 +2020-05-31,Dare,North Carolina,37055,22,1 +2020-06-01,Dare,North Carolina,37055,22,1 +2020-06-02,Dare,North Carolina,37055,22,1 +2020-06-03,Dare,North Carolina,37055,22,1 +2020-06-04,Dare,North Carolina,37055,22,1 +2020-06-05,Dare,North Carolina,37055,22,1 +2020-06-06,Dare,North Carolina,37055,22,1 +2020-06-07,Dare,North Carolina,37055,22,1 +2020-06-08,Dare,North Carolina,37055,25,1 +2020-06-09,Dare,North Carolina,37055,23,1 +2020-06-10,Dare,North Carolina,37055,22,1 +2020-06-11,Dare,North Carolina,37055,22,1 +2020-06-12,Dare,North Carolina,37055,22,1 +2020-06-13,Dare,North Carolina,37055,22,1 +2020-06-14,Dare,North Carolina,37055,23,1 +2020-06-15,Dare,North Carolina,37055,24,1 +2020-06-16,Dare,North Carolina,37055,24,1 +2020-06-17,Dare,North Carolina,37055,27,1 +2020-06-18,Dare,North Carolina,37055,27,1 +2020-06-19,Dare,North Carolina,37055,27,1 +2020-06-20,Dare,North Carolina,37055,27,1 +2020-06-21,Dare,North Carolina,37055,27,1 +2020-06-22,Dare,North Carolina,37055,27,1 +2020-06-23,Dare,North Carolina,37055,27,1 +2020-06-24,Dare,North Carolina,37055,29,1 +2020-06-25,Dare,North Carolina,37055,32,1 +2020-06-26,Dare,North Carolina,37055,36,1 +2020-06-27,Dare,North Carolina,37055,42,1 +2020-06-28,Dare,North Carolina,37055,43,1 +2020-06-29,Dare,North Carolina,37055,48,1 +2020-06-30,Dare,North Carolina,37055,57,1 +2020-07-01,Dare,North Carolina,37055,59,1 +2020-07-02,Dare,North Carolina,37055,59,1 +2020-07-03,Dare,North Carolina,37055,64,1 +2020-07-04,Dare,North Carolina,37055,70,1 +2020-07-05,Dare,North Carolina,37055,72,1 +2020-07-06,Dare,North Carolina,37055,73,1 +2020-07-07,Dare,North Carolina,37055,150,1 +2020-07-08,Dare,North Carolina,37055,156,1 +2020-07-09,Dare,North Carolina,37055,171,1 +2020-03-20,Davidson,North Carolina,37057,1,0 +2020-03-21,Davidson,North Carolina,37057,1,0 +2020-03-22,Davidson,North Carolina,37057,1,0 +2020-03-23,Davidson,North Carolina,37057,2,0 +2020-03-24,Davidson,North Carolina,37057,2,0 +2020-03-25,Davidson,North Carolina,37057,2,0 +2020-03-26,Davidson,North Carolina,37057,3,0 +2020-03-27,Davidson,North Carolina,37057,4,0 +2020-03-28,Davidson,North Carolina,37057,14,0 +2020-03-29,Davidson,North Carolina,37057,16,0 +2020-03-30,Davidson,North Carolina,37057,19,0 +2020-03-31,Davidson,North Carolina,37057,23,0 +2020-04-01,Davidson,North Carolina,37057,28,0 +2020-04-02,Davidson,North Carolina,37057,35,0 +2020-04-03,Davidson,North Carolina,37057,43,0 +2020-04-04,Davidson,North Carolina,37057,53,0 +2020-04-05,Davidson,North Carolina,37057,57,0 +2020-04-06,Davidson,North Carolina,37057,63,0 +2020-04-07,Davidson,North Carolina,37057,70,1 +2020-04-08,Davidson,North Carolina,37057,73,1 +2020-04-09,Davidson,North Carolina,37057,78,2 +2020-04-10,Davidson,North Carolina,37057,81,2 +2020-04-11,Davidson,North Carolina,37057,85,2 +2020-04-12,Davidson,North Carolina,37057,85,2 +2020-04-13,Davidson,North Carolina,37057,84,2 +2020-04-14,Davidson,North Carolina,37057,86,2 +2020-04-15,Davidson,North Carolina,37057,87,2 +2020-04-16,Davidson,North Carolina,37057,91,2 +2020-04-17,Davidson,North Carolina,37057,94,2 +2020-04-18,Davidson,North Carolina,37057,94,2 +2020-04-19,Davidson,North Carolina,37057,94,2 +2020-04-20,Davidson,North Carolina,37057,94,2 +2020-04-21,Davidson,North Carolina,37057,96,2 +2020-04-22,Davidson,North Carolina,37057,103,2 +2020-04-23,Davidson,North Carolina,37057,107,2 +2020-04-24,Davidson,North Carolina,37057,113,2 +2020-04-25,Davidson,North Carolina,37057,120,4 +2020-04-26,Davidson,North Carolina,37057,156,4 +2020-04-27,Davidson,North Carolina,37057,155,4 +2020-04-28,Davidson,North Carolina,37057,166,5 +2020-04-29,Davidson,North Carolina,37057,160,7 +2020-04-30,Davidson,North Carolina,37057,163,7 +2020-05-01,Davidson,North Carolina,37057,166,8 +2020-05-02,Davidson,North Carolina,37057,180,8 +2020-05-03,Davidson,North Carolina,37057,179,8 +2020-05-04,Davidson,North Carolina,37057,179,10 +2020-05-05,Davidson,North Carolina,37057,183,10 +2020-05-06,Davidson,North Carolina,37057,186,10 +2020-05-07,Davidson,North Carolina,37057,191,10 +2020-05-08,Davidson,North Carolina,37057,199,10 +2020-05-09,Davidson,North Carolina,37057,201,10 +2020-05-10,Davidson,North Carolina,37057,202,10 +2020-05-11,Davidson,North Carolina,37057,205,10 +2020-05-12,Davidson,North Carolina,37057,227,10 +2020-05-13,Davidson,North Carolina,37057,232,10 +2020-05-14,Davidson,North Carolina,37057,243,10 +2020-05-15,Davidson,North Carolina,37057,255,10 +2020-05-16,Davidson,North Carolina,37057,274,10 +2020-05-17,Davidson,North Carolina,37057,288,10 +2020-05-18,Davidson,North Carolina,37057,293,10 +2020-05-19,Davidson,North Carolina,37057,306,11 +2020-05-20,Davidson,North Carolina,37057,314,11 +2020-05-21,Davidson,North Carolina,37057,323,11 +2020-05-22,Davidson,North Carolina,37057,332,11 +2020-05-23,Davidson,North Carolina,37057,345,11 +2020-05-24,Davidson,North Carolina,37057,352,11 +2020-05-25,Davidson,North Carolina,37057,361,11 +2020-05-26,Davidson,North Carolina,37057,361,11 +2020-05-27,Davidson,North Carolina,37057,361,11 +2020-05-28,Davidson,North Carolina,37057,368,12 +2020-05-29,Davidson,North Carolina,37057,385,12 +2020-05-30,Davidson,North Carolina,37057,398,13 +2020-05-31,Davidson,North Carolina,37057,413,13 +2020-06-01,Davidson,North Carolina,37057,430,13 +2020-06-02,Davidson,North Carolina,37057,434,13 +2020-06-03,Davidson,North Carolina,37057,446,13 +2020-06-04,Davidson,North Carolina,37057,477,13 +2020-06-05,Davidson,North Carolina,37057,500,13 +2020-06-06,Davidson,North Carolina,37057,505,13 +2020-06-07,Davidson,North Carolina,37057,511,13 +2020-06-08,Davidson,North Carolina,37057,520,13 +2020-06-09,Davidson,North Carolina,37057,529,12 +2020-06-10,Davidson,North Carolina,37057,544,12 +2020-06-11,Davidson,North Carolina,37057,556,12 +2020-06-12,Davidson,North Carolina,37057,589,12 +2020-06-13,Davidson,North Carolina,37057,620,13 +2020-06-14,Davidson,North Carolina,37057,643,13 +2020-06-15,Davidson,North Carolina,37057,655,14 +2020-06-16,Davidson,North Carolina,37057,664,15 +2020-06-17,Davidson,North Carolina,37057,678,15 +2020-06-18,Davidson,North Carolina,37057,691,15 +2020-06-19,Davidson,North Carolina,37057,725,15 +2020-06-20,Davidson,North Carolina,37057,729,15 +2020-06-21,Davidson,North Carolina,37057,735,15 +2020-06-22,Davidson,North Carolina,37057,759,15 +2020-06-23,Davidson,North Carolina,37057,772,15 +2020-06-24,Davidson,North Carolina,37057,797,15 +2020-06-25,Davidson,North Carolina,37057,831,15 +2020-06-26,Davidson,North Carolina,37057,868,15 +2020-06-27,Davidson,North Carolina,37057,908,15 +2020-06-28,Davidson,North Carolina,37057,925,15 +2020-06-29,Davidson,North Carolina,37057,936,15 +2020-06-30,Davidson,North Carolina,37057,946,15 +2020-07-01,Davidson,North Carolina,37057,989,15 +2020-07-02,Davidson,North Carolina,37057,1012,15 +2020-07-03,Davidson,North Carolina,37057,1035,15 +2020-07-04,Davidson,North Carolina,37057,1056,15 +2020-07-05,Davidson,North Carolina,37057,1072,15 +2020-07-06,Davidson,North Carolina,37057,1102,15 +2020-07-07,Davidson,North Carolina,37057,1114,15 +2020-07-08,Davidson,North Carolina,37057,1134,15 +2020-07-09,Davidson,North Carolina,37057,1175,15 +2020-03-22,Davie,North Carolina,37059,1,0 +2020-03-23,Davie,North Carolina,37059,1,0 +2020-03-24,Davie,North Carolina,37059,1,0 +2020-03-25,Davie,North Carolina,37059,1,0 +2020-03-26,Davie,North Carolina,37059,1,0 +2020-03-27,Davie,North Carolina,37059,2,0 +2020-03-28,Davie,North Carolina,37059,4,0 +2020-03-29,Davie,North Carolina,37059,6,0 +2020-03-30,Davie,North Carolina,37059,12,0 +2020-03-31,Davie,North Carolina,37059,11,0 +2020-04-01,Davie,North Carolina,37059,11,0 +2020-04-02,Davie,North Carolina,37059,11,1 +2020-04-03,Davie,North Carolina,37059,12,1 +2020-04-04,Davie,North Carolina,37059,14,2 +2020-04-05,Davie,North Carolina,37059,16,2 +2020-04-06,Davie,North Carolina,37059,17,2 +2020-04-07,Davie,North Carolina,37059,20,2 +2020-04-08,Davie,North Carolina,37059,20,2 +2020-04-09,Davie,North Carolina,37059,20,2 +2020-04-10,Davie,North Carolina,37059,21,2 +2020-04-11,Davie,North Carolina,37059,21,2 +2020-04-12,Davie,North Carolina,37059,21,2 +2020-04-13,Davie,North Carolina,37059,21,2 +2020-04-14,Davie,North Carolina,37059,22,2 +2020-04-15,Davie,North Carolina,37059,22,2 +2020-04-16,Davie,North Carolina,37059,23,2 +2020-04-17,Davie,North Carolina,37059,23,2 +2020-04-18,Davie,North Carolina,37059,23,2 +2020-04-19,Davie,North Carolina,37059,23,2 +2020-04-20,Davie,North Carolina,37059,23,2 +2020-04-21,Davie,North Carolina,37059,24,2 +2020-04-22,Davie,North Carolina,37059,24,2 +2020-04-23,Davie,North Carolina,37059,24,2 +2020-04-24,Davie,North Carolina,37059,28,2 +2020-04-25,Davie,North Carolina,37059,29,2 +2020-04-26,Davie,North Carolina,37059,29,2 +2020-04-27,Davie,North Carolina,37059,29,2 +2020-04-28,Davie,North Carolina,37059,29,2 +2020-04-29,Davie,North Carolina,37059,29,2 +2020-04-30,Davie,North Carolina,37059,30,2 +2020-05-01,Davie,North Carolina,37059,31,2 +2020-05-02,Davie,North Carolina,37059,31,2 +2020-05-03,Davie,North Carolina,37059,31,2 +2020-05-04,Davie,North Carolina,37059,31,2 +2020-05-05,Davie,North Carolina,37059,31,2 +2020-05-06,Davie,North Carolina,37059,31,2 +2020-05-07,Davie,North Carolina,37059,31,2 +2020-05-08,Davie,North Carolina,37059,31,2 +2020-05-09,Davie,North Carolina,37059,32,2 +2020-05-10,Davie,North Carolina,37059,35,2 +2020-05-11,Davie,North Carolina,37059,36,2 +2020-05-12,Davie,North Carolina,37059,37,2 +2020-05-13,Davie,North Carolina,37059,37,2 +2020-05-14,Davie,North Carolina,37059,40,2 +2020-05-15,Davie,North Carolina,37059,43,2 +2020-05-16,Davie,North Carolina,37059,46,2 +2020-05-17,Davie,North Carolina,37059,45,2 +2020-05-18,Davie,North Carolina,37059,46,2 +2020-05-19,Davie,North Carolina,37059,52,2 +2020-05-20,Davie,North Carolina,37059,55,2 +2020-05-21,Davie,North Carolina,37059,57,2 +2020-05-22,Davie,North Carolina,37059,62,2 +2020-05-23,Davie,North Carolina,37059,67,2 +2020-05-24,Davie,North Carolina,37059,69,2 +2020-05-25,Davie,North Carolina,37059,74,2 +2020-05-26,Davie,North Carolina,37059,76,2 +2020-05-27,Davie,North Carolina,37059,79,2 +2020-05-28,Davie,North Carolina,37059,82,2 +2020-05-29,Davie,North Carolina,37059,87,2 +2020-05-30,Davie,North Carolina,37059,90,2 +2020-05-31,Davie,North Carolina,37059,98,2 +2020-06-01,Davie,North Carolina,37059,103,2 +2020-06-02,Davie,North Carolina,37059,105,2 +2020-06-03,Davie,North Carolina,37059,105,2 +2020-06-04,Davie,North Carolina,37059,107,2 +2020-06-05,Davie,North Carolina,37059,110,2 +2020-06-06,Davie,North Carolina,37059,115,2 +2020-06-07,Davie,North Carolina,37059,117,2 +2020-06-08,Davie,North Carolina,37059,119,2 +2020-06-09,Davie,North Carolina,37059,122,2 +2020-06-10,Davie,North Carolina,37059,126,2 +2020-06-11,Davie,North Carolina,37059,131,2 +2020-06-12,Davie,North Carolina,37059,132,2 +2020-06-13,Davie,North Carolina,37059,134,2 +2020-06-14,Davie,North Carolina,37059,139,2 +2020-06-15,Davie,North Carolina,37059,142,2 +2020-06-16,Davie,North Carolina,37059,144,2 +2020-06-17,Davie,North Carolina,37059,145,2 +2020-06-18,Davie,North Carolina,37059,152,2 +2020-06-19,Davie,North Carolina,37059,154,2 +2020-06-20,Davie,North Carolina,37059,155,2 +2020-06-21,Davie,North Carolina,37059,156,2 +2020-06-22,Davie,North Carolina,37059,158,2 +2020-06-23,Davie,North Carolina,37059,161,3 +2020-06-24,Davie,North Carolina,37059,163,3 +2020-06-25,Davie,North Carolina,37059,169,3 +2020-06-26,Davie,North Carolina,37059,177,3 +2020-06-27,Davie,North Carolina,37059,183,3 +2020-06-28,Davie,North Carolina,37059,188,3 +2020-06-29,Davie,North Carolina,37059,193,3 +2020-06-30,Davie,North Carolina,37059,199,3 +2020-07-01,Davie,North Carolina,37059,203,3 +2020-07-02,Davie,North Carolina,37059,206,3 +2020-07-03,Davie,North Carolina,37059,208,3 +2020-07-04,Davie,North Carolina,37059,210,3 +2020-07-05,Davie,North Carolina,37059,215,3 +2020-07-06,Davie,North Carolina,37059,223,3 +2020-07-07,Davie,North Carolina,37059,234,3 +2020-07-08,Davie,North Carolina,37059,235,3 +2020-07-09,Davie,North Carolina,37059,236,3 +2020-03-25,Duplin,North Carolina,37061,1,0 +2020-03-26,Duplin,North Carolina,37061,1,0 +2020-03-27,Duplin,North Carolina,37061,1,0 +2020-03-28,Duplin,North Carolina,37061,1,0 +2020-03-29,Duplin,North Carolina,37061,1,0 +2020-03-30,Duplin,North Carolina,37061,1,0 +2020-03-31,Duplin,North Carolina,37061,1,0 +2020-04-01,Duplin,North Carolina,37061,1,0 +2020-04-02,Duplin,North Carolina,37061,2,0 +2020-04-03,Duplin,North Carolina,37061,3,0 +2020-04-04,Duplin,North Carolina,37061,4,0 +2020-04-05,Duplin,North Carolina,37061,4,0 +2020-04-06,Duplin,North Carolina,37061,4,0 +2020-04-07,Duplin,North Carolina,37061,7,0 +2020-04-08,Duplin,North Carolina,37061,8,0 +2020-04-09,Duplin,North Carolina,37061,11,0 +2020-04-10,Duplin,North Carolina,37061,12,0 +2020-04-11,Duplin,North Carolina,37061,15,0 +2020-04-12,Duplin,North Carolina,37061,15,0 +2020-04-13,Duplin,North Carolina,37061,15,0 +2020-04-14,Duplin,North Carolina,37061,19,0 +2020-04-15,Duplin,North Carolina,37061,18,0 +2020-04-16,Duplin,North Carolina,37061,17,0 +2020-04-17,Duplin,North Carolina,37061,19,0 +2020-04-18,Duplin,North Carolina,37061,22,0 +2020-04-19,Duplin,North Carolina,37061,24,0 +2020-04-20,Duplin,North Carolina,37061,26,0 +2020-04-21,Duplin,North Carolina,37061,32,0 +2020-04-22,Duplin,North Carolina,37061,35,0 +2020-04-23,Duplin,North Carolina,37061,41,0 +2020-04-24,Duplin,North Carolina,37061,45,0 +2020-04-25,Duplin,North Carolina,37061,61,0 +2020-04-26,Duplin,North Carolina,37061,66,0 +2020-04-27,Duplin,North Carolina,37061,72,0 +2020-04-28,Duplin,North Carolina,37061,74,0 +2020-04-29,Duplin,North Carolina,37061,75,0 +2020-04-30,Duplin,North Carolina,37061,92,0 +2020-05-01,Duplin,North Carolina,37061,103,0 +2020-05-02,Duplin,North Carolina,37061,113,0 +2020-05-03,Duplin,North Carolina,37061,115,1 +2020-05-04,Duplin,North Carolina,37061,120,1 +2020-05-05,Duplin,North Carolina,37061,132,2 +2020-05-06,Duplin,North Carolina,37061,146,3 +2020-05-07,Duplin,North Carolina,37061,161,3 +2020-05-08,Duplin,North Carolina,37061,180,3 +2020-05-09,Duplin,North Carolina,37061,225,3 +2020-05-10,Duplin,North Carolina,37061,242,3 +2020-05-11,Duplin,North Carolina,37061,258,3 +2020-05-12,Duplin,North Carolina,37061,266,4 +2020-05-13,Duplin,North Carolina,37061,274,4 +2020-05-14,Duplin,North Carolina,37061,305,4 +2020-05-15,Duplin,North Carolina,37061,338,7 +2020-05-16,Duplin,North Carolina,37061,368,7 +2020-05-17,Duplin,North Carolina,37061,388,8 +2020-05-18,Duplin,North Carolina,37061,438,11 +2020-05-19,Duplin,North Carolina,37061,462,12 +2020-05-20,Duplin,North Carolina,37061,470,12 +2020-05-21,Duplin,North Carolina,37061,508,12 +2020-05-22,Duplin,North Carolina,37061,545,12 +2020-05-23,Duplin,North Carolina,37061,597,12 +2020-05-24,Duplin,North Carolina,37061,628,12 +2020-05-25,Duplin,North Carolina,37061,659,12 +2020-05-26,Duplin,North Carolina,37061,670,12 +2020-05-27,Duplin,North Carolina,37061,707,12 +2020-05-28,Duplin,North Carolina,37061,719,12 +2020-05-29,Duplin,North Carolina,37061,750,12 +2020-05-30,Duplin,North Carolina,37061,794,12 +2020-05-31,Duplin,North Carolina,37061,831,14 +2020-06-01,Duplin,North Carolina,37061,846,17 +2020-06-02,Duplin,North Carolina,37061,870,17 +2020-06-03,Duplin,North Carolina,37061,890,19 +2020-06-04,Duplin,North Carolina,37061,915,19 +2020-06-05,Duplin,North Carolina,37061,943,19 +2020-06-06,Duplin,North Carolina,37061,976,19 +2020-06-07,Duplin,North Carolina,37061,1006,19 +2020-06-08,Duplin,North Carolina,37061,1047,19 +2020-06-09,Duplin,North Carolina,37061,1062,20 +2020-06-10,Duplin,North Carolina,37061,1072,20 +2020-06-11,Duplin,North Carolina,37061,1096,20 +2020-06-12,Duplin,North Carolina,37061,1130,20 +2020-06-13,Duplin,North Carolina,37061,1150,20 +2020-06-14,Duplin,North Carolina,37061,1182,20 +2020-06-15,Duplin,North Carolina,37061,1213,20 +2020-06-16,Duplin,North Carolina,37061,1228,20 +2020-06-17,Duplin,North Carolina,37061,1231,20 +2020-06-18,Duplin,North Carolina,37061,1257,20 +2020-06-19,Duplin,North Carolina,37061,1279,20 +2020-06-20,Duplin,North Carolina,37061,1317,20 +2020-06-21,Duplin,North Carolina,37061,1332,20 +2020-06-22,Duplin,North Carolina,37061,1345,20 +2020-06-23,Duplin,North Carolina,37061,1355,20 +2020-06-24,Duplin,North Carolina,37061,1369,20 +2020-06-25,Duplin,North Carolina,37061,1373,20 +2020-06-26,Duplin,North Carolina,37061,1398,21 +2020-06-27,Duplin,North Carolina,37061,1422,27 +2020-06-28,Duplin,North Carolina,37061,1438,27 +2020-06-29,Duplin,North Carolina,37061,1460,27 +2020-06-30,Duplin,North Carolina,37061,1468,27 +2020-07-01,Duplin,North Carolina,37061,1486,27 +2020-07-02,Duplin,North Carolina,37061,1509,27 +2020-07-03,Duplin,North Carolina,37061,1533,27 +2020-07-04,Duplin,North Carolina,37061,1542,28 +2020-07-05,Duplin,North Carolina,37061,1561,28 +2020-07-06,Duplin,North Carolina,37061,1579,28 +2020-07-07,Duplin,North Carolina,37061,1595,28 +2020-07-08,Duplin,North Carolina,37061,1620,28 +2020-07-09,Duplin,North Carolina,37061,1637,29 +2020-03-16,Durham,North Carolina,37063,1,0 +2020-03-17,Durham,North Carolina,37063,1,0 +2020-03-18,Durham,North Carolina,37063,12,0 +2020-03-19,Durham,North Carolina,37063,32,0 +2020-03-20,Durham,North Carolina,37063,33,0 +2020-03-21,Durham,North Carolina,37063,33,0 +2020-03-22,Durham,North Carolina,37063,40,0 +2020-03-23,Durham,North Carolina,37063,40,0 +2020-03-24,Durham,North Carolina,37063,63,0 +2020-03-25,Durham,North Carolina,37063,74,0 +2020-03-26,Durham,North Carolina,37063,75,0 +2020-03-27,Durham,North Carolina,37063,83,0 +2020-03-28,Durham,North Carolina,37063,101,0 +2020-03-29,Durham,North Carolina,37063,105,0 +2020-03-30,Durham,North Carolina,37063,106,0 +2020-03-31,Durham,North Carolina,37063,122,0 +2020-04-01,Durham,North Carolina,37063,126,0 +2020-04-02,Durham,North Carolina,37063,147,0 +2020-04-03,Durham,North Carolina,37063,159,0 +2020-04-04,Durham,North Carolina,37063,181,0 +2020-04-05,Durham,North Carolina,37063,186,1 +2020-04-06,Durham,North Carolina,37063,191,1 +2020-04-07,Durham,North Carolina,37063,205,1 +2020-04-08,Durham,North Carolina,37063,236,1 +2020-04-09,Durham,North Carolina,37063,243,1 +2020-04-10,Durham,North Carolina,37063,259,1 +2020-04-11,Durham,North Carolina,37063,275,1 +2020-04-12,Durham,North Carolina,37063,278,1 +2020-04-13,Durham,North Carolina,37063,287,1 +2020-04-14,Durham,North Carolina,37063,297,2 +2020-04-15,Durham,North Carolina,37063,330,2 +2020-04-16,Durham,North Carolina,37063,350,2 +2020-04-17,Durham,North Carolina,37063,360,4 +2020-04-18,Durham,North Carolina,37063,380,4 +2020-04-19,Durham,North Carolina,37063,383,5 +2020-04-20,Durham,North Carolina,37063,392,5 +2020-04-21,Durham,North Carolina,37063,398,5 +2020-04-22,Durham,North Carolina,37063,438,6 +2020-04-23,Durham,North Carolina,37063,459,7 +2020-04-24,Durham,North Carolina,37063,494,8 +2020-04-25,Durham,North Carolina,37063,517,9 +2020-04-26,Durham,North Carolina,37063,535,10 +2020-04-27,Durham,North Carolina,37063,539,13 +2020-04-28,Durham,North Carolina,37063,702,16 +2020-04-29,Durham,North Carolina,37063,708,17 +2020-04-30,Durham,North Carolina,37063,728,18 +2020-05-01,Durham,North Carolina,37063,736,21 +2020-05-02,Durham,North Carolina,37063,755,23 +2020-05-03,Durham,North Carolina,37063,767,24 +2020-05-04,Durham,North Carolina,37063,790,26 +2020-05-05,Durham,North Carolina,37063,800,28 +2020-05-06,Durham,North Carolina,37063,818,30 +2020-05-07,Durham,North Carolina,37063,841,31 +2020-05-08,Durham,North Carolina,37063,841,31 +2020-05-09,Durham,North Carolina,37063,876,32 +2020-05-10,Durham,North Carolina,37063,886,34 +2020-05-11,Durham,North Carolina,37063,897,35 +2020-05-12,Durham,North Carolina,37063,914,36 +2020-05-13,Durham,North Carolina,37063,932,37 +2020-05-14,Durham,North Carolina,37063,932,37 +2020-05-15,Durham,North Carolina,37063,938,37 +2020-05-16,Durham,North Carolina,37063,980,37 +2020-05-17,Durham,North Carolina,37063,996,39 +2020-05-18,Durham,North Carolina,37063,1040,39 +2020-05-19,Durham,North Carolina,37063,1053,39 +2020-05-20,Durham,North Carolina,37063,1131,43 +2020-05-21,Durham,North Carolina,37063,1131,43 +2020-05-22,Durham,North Carolina,37063,1162,43 +2020-05-23,Durham,North Carolina,37063,1230,43 +2020-05-24,Durham,North Carolina,37063,1262,44 +2020-05-25,Durham,North Carolina,37063,1312,45 +2020-05-26,Durham,North Carolina,37063,1333,45 +2020-05-27,Durham,North Carolina,37063,1359,45 +2020-05-28,Durham,North Carolina,37063,1411,46 +2020-05-29,Durham,North Carolina,37063,1525,47 +2020-05-30,Durham,North Carolina,37063,1552,47 +2020-05-31,Durham,North Carolina,37063,1619,47 +2020-06-01,Durham,North Carolina,37063,1660,47 +2020-06-02,Durham,North Carolina,37063,1706,47 +2020-06-03,Durham,North Carolina,37063,1774,49 +2020-06-04,Durham,North Carolina,37063,1921,49 +2020-06-05,Durham,North Carolina,37063,1921,49 +2020-06-06,Durham,North Carolina,37063,2067,49 +2020-06-07,Durham,North Carolina,37063,2114,49 +2020-06-08,Durham,North Carolina,37063,2180,49 +2020-06-09,Durham,North Carolina,37063,2227,51 +2020-06-10,Durham,North Carolina,37063,2307,53 +2020-06-11,Durham,North Carolina,37063,2473,57 +2020-06-12,Durham,North Carolina,37063,2563,57 +2020-06-13,Durham,North Carolina,37063,2647,58 +2020-06-14,Durham,North Carolina,37063,2695,58 +2020-06-15,Durham,North Carolina,37063,2800,58 +2020-06-16,Durham,North Carolina,37063,2800,58 +2020-06-17,Durham,North Carolina,37063,2945,59 +2020-06-18,Durham,North Carolina,37063,3004,62 +2020-06-19,Durham,North Carolina,37063,3063,62 +2020-06-20,Durham,North Carolina,37063,3151,62 +2020-06-21,Durham,North Carolina,37063,3196,62 +2020-06-22,Durham,North Carolina,37063,3212,62 +2020-06-23,Durham,North Carolina,37063,3340,62 +2020-06-24,Durham,North Carolina,37063,3402,62 +2020-06-25,Durham,North Carolina,37063,3479,63 +2020-06-26,Durham,North Carolina,37063,3532,63 +2020-06-27,Durham,North Carolina,37063,3532,63 +2020-06-28,Durham,North Carolina,37063,3571,63 +2020-06-29,Durham,North Carolina,37063,3679,63 +2020-06-30,Durham,North Carolina,37063,3807,63 +2020-07-01,Durham,North Carolina,37063,3876,65 +2020-07-02,Durham,North Carolina,37063,3976,65 +2020-07-03,Durham,North Carolina,37063,4015,66 +2020-07-04,Durham,North Carolina,37063,4064,67 +2020-07-05,Durham,North Carolina,37063,4113,67 +2020-07-06,Durham,North Carolina,37063,4176,67 +2020-07-07,Durham,North Carolina,37063,4208,67 +2020-07-08,Durham,North Carolina,37063,4277,67 +2020-07-09,Durham,North Carolina,37063,4277,67 +2020-03-28,Edgecombe,North Carolina,37065,1,0 +2020-03-29,Edgecombe,North Carolina,37065,1,0 +2020-03-30,Edgecombe,North Carolina,37065,1,0 +2020-03-31,Edgecombe,North Carolina,37065,3,0 +2020-04-01,Edgecombe,North Carolina,37065,3,0 +2020-04-02,Edgecombe,North Carolina,37065,4,0 +2020-04-03,Edgecombe,North Carolina,37065,4,0 +2020-04-04,Edgecombe,North Carolina,37065,5,0 +2020-04-05,Edgecombe,North Carolina,37065,5,0 +2020-04-06,Edgecombe,North Carolina,37065,5,0 +2020-04-07,Edgecombe,North Carolina,37065,11,0 +2020-04-08,Edgecombe,North Carolina,37065,12,0 +2020-04-09,Edgecombe,North Carolina,37065,15,1 +2020-04-10,Edgecombe,North Carolina,37065,18,1 +2020-04-11,Edgecombe,North Carolina,37065,22,1 +2020-04-12,Edgecombe,North Carolina,37065,23,1 +2020-04-13,Edgecombe,North Carolina,37065,26,1 +2020-04-14,Edgecombe,North Carolina,37065,31,1 +2020-04-15,Edgecombe,North Carolina,37065,33,1 +2020-04-16,Edgecombe,North Carolina,37065,42,1 +2020-04-17,Edgecombe,North Carolina,37065,44,1 +2020-04-18,Edgecombe,North Carolina,37065,49,1 +2020-04-19,Edgecombe,North Carolina,37065,58,1 +2020-04-20,Edgecombe,North Carolina,37065,57,1 +2020-04-21,Edgecombe,North Carolina,37065,57,1 +2020-04-22,Edgecombe,North Carolina,37065,60,1 +2020-04-23,Edgecombe,North Carolina,37065,62,1 +2020-04-24,Edgecombe,North Carolina,37065,67,1 +2020-04-25,Edgecombe,North Carolina,37065,73,1 +2020-04-26,Edgecombe,North Carolina,37065,73,1 +2020-04-27,Edgecombe,North Carolina,37065,75,2 +2020-04-28,Edgecombe,North Carolina,37065,76,3 +2020-04-29,Edgecombe,North Carolina,37065,81,4 +2020-04-30,Edgecombe,North Carolina,37065,87,4 +2020-05-01,Edgecombe,North Carolina,37065,96,4 +2020-05-02,Edgecombe,North Carolina,37065,98,5 +2020-05-03,Edgecombe,North Carolina,37065,105,5 +2020-05-04,Edgecombe,North Carolina,37065,113,5 +2020-05-05,Edgecombe,North Carolina,37065,123,5 +2020-05-06,Edgecombe,North Carolina,37065,128,5 +2020-05-07,Edgecombe,North Carolina,37065,137,7 +2020-05-08,Edgecombe,North Carolina,37065,139,7 +2020-05-09,Edgecombe,North Carolina,37065,151,7 +2020-05-10,Edgecombe,North Carolina,37065,153,7 +2020-05-11,Edgecombe,North Carolina,37065,155,7 +2020-05-12,Edgecombe,North Carolina,37065,156,7 +2020-05-13,Edgecombe,North Carolina,37065,157,7 +2020-05-14,Edgecombe,North Carolina,37065,161,7 +2020-05-15,Edgecombe,North Carolina,37065,164,7 +2020-05-16,Edgecombe,North Carolina,37065,167,7 +2020-05-17,Edgecombe,North Carolina,37065,170,8 +2020-05-18,Edgecombe,North Carolina,37065,171,8 +2020-05-19,Edgecombe,North Carolina,37065,170,8 +2020-05-20,Edgecombe,North Carolina,37065,174,8 +2020-05-21,Edgecombe,North Carolina,37065,174,9 +2020-05-22,Edgecombe,North Carolina,37065,176,9 +2020-05-23,Edgecombe,North Carolina,37065,184,9 +2020-05-24,Edgecombe,North Carolina,37065,190,9 +2020-05-25,Edgecombe,North Carolina,37065,190,9 +2020-05-26,Edgecombe,North Carolina,37065,190,9 +2020-05-27,Edgecombe,North Carolina,37065,190,9 +2020-05-28,Edgecombe,North Carolina,37065,190,9 +2020-05-29,Edgecombe,North Carolina,37065,190,9 +2020-05-30,Edgecombe,North Carolina,37065,197,9 +2020-05-31,Edgecombe,North Carolina,37065,200,9 +2020-06-01,Edgecombe,North Carolina,37065,201,9 +2020-06-02,Edgecombe,North Carolina,37065,208,9 +2020-06-03,Edgecombe,North Carolina,37065,210,9 +2020-06-04,Edgecombe,North Carolina,37065,214,9 +2020-06-05,Edgecombe,North Carolina,37065,215,9 +2020-06-06,Edgecombe,North Carolina,37065,221,9 +2020-06-07,Edgecombe,North Carolina,37065,228,9 +2020-06-08,Edgecombe,North Carolina,37065,229,9 +2020-06-09,Edgecombe,North Carolina,37065,230,9 +2020-06-10,Edgecombe,North Carolina,37065,231,9 +2020-06-11,Edgecombe,North Carolina,37065,233,9 +2020-06-12,Edgecombe,North Carolina,37065,235,9 +2020-06-13,Edgecombe,North Carolina,37065,244,9 +2020-06-14,Edgecombe,North Carolina,37065,253,9 +2020-06-15,Edgecombe,North Carolina,37065,252,9 +2020-06-16,Edgecombe,North Carolina,37065,254,9 +2020-06-17,Edgecombe,North Carolina,37065,256,9 +2020-06-18,Edgecombe,North Carolina,37065,257,9 +2020-06-19,Edgecombe,North Carolina,37065,262,9 +2020-06-20,Edgecombe,North Carolina,37065,268,9 +2020-06-21,Edgecombe,North Carolina,37065,273,9 +2020-06-22,Edgecombe,North Carolina,37065,274,9 +2020-06-23,Edgecombe,North Carolina,37065,276,9 +2020-06-24,Edgecombe,North Carolina,37065,284,9 +2020-06-25,Edgecombe,North Carolina,37065,290,9 +2020-06-26,Edgecombe,North Carolina,37065,298,9 +2020-06-27,Edgecombe,North Carolina,37065,302,9 +2020-06-28,Edgecombe,North Carolina,37065,309,9 +2020-06-29,Edgecombe,North Carolina,37065,313,9 +2020-06-30,Edgecombe,North Carolina,37065,315,9 +2020-07-01,Edgecombe,North Carolina,37065,317,9 +2020-07-02,Edgecombe,North Carolina,37065,326,9 +2020-07-03,Edgecombe,North Carolina,37065,329,9 +2020-07-04,Edgecombe,North Carolina,37065,334,9 +2020-07-05,Edgecombe,North Carolina,37065,334,9 +2020-07-06,Edgecombe,North Carolina,37065,347,9 +2020-07-07,Edgecombe,North Carolina,37065,352,9 +2020-07-08,Edgecombe,North Carolina,37065,352,9 +2020-07-09,Edgecombe,North Carolina,37065,363,9 +2020-03-12,Forsyth,North Carolina,37067,2,0 +2020-03-13,Forsyth,North Carolina,37067,2,0 +2020-03-14,Forsyth,North Carolina,37067,2,0 +2020-03-15,Forsyth,North Carolina,37067,2,0 +2020-03-16,Forsyth,North Carolina,37067,2,0 +2020-03-17,Forsyth,North Carolina,37067,2,0 +2020-03-18,Forsyth,North Carolina,37067,2,0 +2020-03-19,Forsyth,North Carolina,37067,2,0 +2020-03-20,Forsyth,North Carolina,37067,7,0 +2020-03-21,Forsyth,North Carolina,37067,8,0 +2020-03-22,Forsyth,North Carolina,37067,12,0 +2020-03-23,Forsyth,North Carolina,37067,12,0 +2020-03-24,Forsyth,North Carolina,37067,12,0 +2020-03-25,Forsyth,North Carolina,37067,17,0 +2020-03-26,Forsyth,North Carolina,37067,17,0 +2020-03-27,Forsyth,North Carolina,37067,17,0 +2020-03-28,Forsyth,North Carolina,37067,24,0 +2020-03-29,Forsyth,North Carolina,37067,35,0 +2020-03-30,Forsyth,North Carolina,37067,39,0 +2020-03-31,Forsyth,North Carolina,37067,42,1 +2020-04-01,Forsyth,North Carolina,37067,42,1 +2020-04-02,Forsyth,North Carolina,37067,56,1 +2020-04-03,Forsyth,North Carolina,37067,63,1 +2020-04-04,Forsyth,North Carolina,37067,82,1 +2020-04-05,Forsyth,North Carolina,37067,86,2 +2020-04-06,Forsyth,North Carolina,37067,94,2 +2020-04-07,Forsyth,North Carolina,37067,105,2 +2020-04-08,Forsyth,North Carolina,37067,104,2 +2020-04-09,Forsyth,North Carolina,37067,105,2 +2020-04-10,Forsyth,North Carolina,37067,111,3 +2020-04-11,Forsyth,North Carolina,37067,112,4 +2020-04-12,Forsyth,North Carolina,37067,114,4 +2020-04-13,Forsyth,North Carolina,37067,117,4 +2020-04-14,Forsyth,North Carolina,37067,121,4 +2020-04-15,Forsyth,North Carolina,37067,123,4 +2020-04-16,Forsyth,North Carolina,37067,122,5 +2020-04-17,Forsyth,North Carolina,37067,122,5 +2020-04-18,Forsyth,North Carolina,37067,124,5 +2020-04-19,Forsyth,North Carolina,37067,125,5 +2020-04-20,Forsyth,North Carolina,37067,126,5 +2020-04-21,Forsyth,North Carolina,37067,128,5 +2020-04-22,Forsyth,North Carolina,37067,133,5 +2020-04-23,Forsyth,North Carolina,37067,139,5 +2020-04-24,Forsyth,North Carolina,37067,142,5 +2020-04-25,Forsyth,North Carolina,37067,149,5 +2020-04-26,Forsyth,North Carolina,37067,150,5 +2020-04-27,Forsyth,North Carolina,37067,156,5 +2020-04-28,Forsyth,North Carolina,37067,179,5 +2020-04-29,Forsyth,North Carolina,37067,194,5 +2020-04-30,Forsyth,North Carolina,37067,219,5 +2020-05-01,Forsyth,North Carolina,37067,245,5 +2020-05-02,Forsyth,North Carolina,37067,266,5 +2020-05-03,Forsyth,North Carolina,37067,267,5 +2020-05-04,Forsyth,North Carolina,37067,271,5 +2020-05-05,Forsyth,North Carolina,37067,287,5 +2020-05-06,Forsyth,North Carolina,37067,308,5 +2020-05-07,Forsyth,North Carolina,37067,332,5 +2020-05-08,Forsyth,North Carolina,37067,353,5 +2020-05-09,Forsyth,North Carolina,37067,369,5 +2020-05-10,Forsyth,North Carolina,37067,373,5 +2020-05-11,Forsyth,North Carolina,37067,379,5 +2020-05-12,Forsyth,North Carolina,37067,397,5 +2020-05-13,Forsyth,North Carolina,37067,449,5 +2020-05-14,Forsyth,North Carolina,37067,508,5 +2020-05-15,Forsyth,North Carolina,37067,568,5 +2020-05-16,Forsyth,North Carolina,37067,627,7 +2020-05-17,Forsyth,North Carolina,37067,651,7 +2020-05-18,Forsyth,North Carolina,37067,687,7 +2020-05-19,Forsyth,North Carolina,37067,736,7 +2020-05-20,Forsyth,North Carolina,37067,749,7 +2020-05-21,Forsyth,North Carolina,37067,801,7 +2020-05-22,Forsyth,North Carolina,37067,849,7 +2020-05-23,Forsyth,North Carolina,37067,889,7 +2020-05-24,Forsyth,North Carolina,37067,920,9 +2020-05-25,Forsyth,North Carolina,37067,969,9 +2020-05-26,Forsyth,North Carolina,37067,977,9 +2020-05-27,Forsyth,North Carolina,37067,1022,9 +2020-05-28,Forsyth,North Carolina,37067,1081,9 +2020-05-29,Forsyth,North Carolina,37067,1179,11 +2020-05-30,Forsyth,North Carolina,37067,1253,11 +2020-05-31,Forsyth,North Carolina,37067,1347,11 +2020-06-01,Forsyth,North Carolina,37067,1383,11 +2020-06-02,Forsyth,North Carolina,37067,1434,13 +2020-06-03,Forsyth,North Carolina,37067,1486,14 +2020-06-04,Forsyth,North Carolina,37067,1560,17 +2020-06-05,Forsyth,North Carolina,37067,1660,17 +2020-06-06,Forsyth,North Carolina,37067,1721,17 +2020-06-07,Forsyth,North Carolina,37067,1774,17 +2020-06-08,Forsyth,North Carolina,37067,1816,17 +2020-06-09,Forsyth,North Carolina,37067,1874,18 +2020-06-10,Forsyth,North Carolina,37067,1910,18 +2020-06-11,Forsyth,North Carolina,37067,1967,25 +2020-06-12,Forsyth,North Carolina,37067,2051,25 +2020-06-13,Forsyth,North Carolina,37067,2128,25 +2020-06-14,Forsyth,North Carolina,37067,2204,25 +2020-06-15,Forsyth,North Carolina,37067,2250,25 +2020-06-16,Forsyth,North Carolina,37067,2283,25 +2020-06-17,Forsyth,North Carolina,37067,2333,26 +2020-06-18,Forsyth,North Carolina,37067,2372,27 +2020-06-19,Forsyth,North Carolina,37067,2463,27 +2020-06-20,Forsyth,North Carolina,37067,2497,28 +2020-06-21,Forsyth,North Carolina,37067,2524,28 +2020-06-22,Forsyth,North Carolina,37067,2575,28 +2020-06-23,Forsyth,North Carolina,37067,2615,29 +2020-06-24,Forsyth,North Carolina,37067,2679,31 +2020-06-25,Forsyth,North Carolina,37067,2715,31 +2020-06-26,Forsyth,North Carolina,37067,2788,33 +2020-06-27,Forsyth,North Carolina,37067,2871,34 +2020-06-28,Forsyth,North Carolina,37067,2935,34 +2020-06-29,Forsyth,North Carolina,37067,2978,34 +2020-06-30,Forsyth,North Carolina,37067,2996,34 +2020-07-01,Forsyth,North Carolina,37067,3077,35 +2020-07-02,Forsyth,North Carolina,37067,3132,37 +2020-07-03,Forsyth,North Carolina,37067,3185,37 +2020-07-04,Forsyth,North Carolina,37067,3233,37 +2020-07-05,Forsyth,North Carolina,37067,3290,37 +2020-07-06,Forsyth,North Carolina,37067,3353,37 +2020-07-07,Forsyth,North Carolina,37067,3423,37 +2020-07-08,Forsyth,North Carolina,37067,3450,37 +2020-07-09,Forsyth,North Carolina,37067,3525,37 +2020-03-20,Franklin,North Carolina,37069,4,0 +2020-03-21,Franklin,North Carolina,37069,4,0 +2020-03-22,Franklin,North Carolina,37069,4,0 +2020-03-23,Franklin,North Carolina,37069,4,0 +2020-03-24,Franklin,North Carolina,37069,5,0 +2020-03-25,Franklin,North Carolina,37069,5,0 +2020-03-26,Franklin,North Carolina,37069,5,0 +2020-03-27,Franklin,North Carolina,37069,5,0 +2020-03-28,Franklin,North Carolina,37069,5,0 +2020-03-29,Franklin,North Carolina,37069,5,0 +2020-03-30,Franklin,North Carolina,37069,6,0 +2020-03-31,Franklin,North Carolina,37069,11,0 +2020-04-01,Franklin,North Carolina,37069,11,0 +2020-04-02,Franklin,North Carolina,37069,12,0 +2020-04-03,Franklin,North Carolina,37069,13,0 +2020-04-04,Franklin,North Carolina,37069,14,0 +2020-04-05,Franklin,North Carolina,37069,14,0 +2020-04-06,Franklin,North Carolina,37069,15,0 +2020-04-07,Franklin,North Carolina,37069,17,0 +2020-04-08,Franklin,North Carolina,37069,23,1 +2020-04-09,Franklin,North Carolina,37069,23,1 +2020-04-10,Franklin,North Carolina,37069,26,1 +2020-04-11,Franklin,North Carolina,37069,27,1 +2020-04-12,Franklin,North Carolina,37069,64,0 +2020-04-13,Franklin,North Carolina,37069,67,0 +2020-04-14,Franklin,North Carolina,37069,66,2 +2020-04-15,Franklin,North Carolina,37069,66,3 +2020-04-16,Franklin,North Carolina,37069,66,5 +2020-04-17,Franklin,North Carolina,37069,67,5 +2020-04-18,Franklin,North Carolina,37069,69,7 +2020-04-19,Franklin,North Carolina,37069,69,7 +2020-04-20,Franklin,North Carolina,37069,71,7 +2020-04-21,Franklin,North Carolina,37069,74,11 +2020-04-22,Franklin,North Carolina,37069,75,13 +2020-04-23,Franklin,North Carolina,37069,77,13 +2020-04-24,Franklin,North Carolina,37069,87,14 +2020-04-25,Franklin,North Carolina,37069,92,14 +2020-04-26,Franklin,North Carolina,37069,95,14 +2020-04-27,Franklin,North Carolina,37069,100,14 +2020-04-28,Franklin,North Carolina,37069,102,18 +2020-04-29,Franklin,North Carolina,37069,100,18 +2020-04-30,Franklin,North Carolina,37069,104,19 +2020-05-01,Franklin,North Carolina,37069,104,19 +2020-05-02,Franklin,North Carolina,37069,104,19 +2020-05-03,Franklin,North Carolina,37069,105,19 +2020-05-04,Franklin,North Carolina,37069,105,19 +2020-05-05,Franklin,North Carolina,37069,106,19 +2020-05-06,Franklin,North Carolina,37069,106,20 +2020-05-07,Franklin,North Carolina,37069,111,20 +2020-05-08,Franklin,North Carolina,37069,111,20 +2020-05-09,Franklin,North Carolina,37069,111,20 +2020-05-10,Franklin,North Carolina,37069,111,20 +2020-05-11,Franklin,North Carolina,37069,111,20 +2020-05-12,Franklin,North Carolina,37069,114,20 +2020-05-13,Franklin,North Carolina,37069,119,20 +2020-05-14,Franklin,North Carolina,37069,121,20 +2020-05-15,Franklin,North Carolina,37069,121,20 +2020-05-16,Franklin,North Carolina,37069,121,20 +2020-05-17,Franklin,North Carolina,37069,122,20 +2020-05-18,Franklin,North Carolina,37069,124,20 +2020-05-19,Franklin,North Carolina,37069,129,20 +2020-05-20,Franklin,North Carolina,37069,131,20 +2020-05-21,Franklin,North Carolina,37069,137,20 +2020-05-22,Franklin,North Carolina,37069,138,20 +2020-05-23,Franklin,North Carolina,37069,141,20 +2020-05-24,Franklin,North Carolina,37069,141,20 +2020-05-25,Franklin,North Carolina,37069,145,20 +2020-05-26,Franklin,North Carolina,37069,146,20 +2020-05-27,Franklin,North Carolina,37069,151,20 +2020-05-28,Franklin,North Carolina,37069,154,20 +2020-05-29,Franklin,North Carolina,37069,157,20 +2020-05-30,Franklin,North Carolina,37069,159,21 +2020-05-31,Franklin,North Carolina,37069,159,21 +2020-06-01,Franklin,North Carolina,37069,159,21 +2020-06-02,Franklin,North Carolina,37069,162,21 +2020-06-03,Franklin,North Carolina,37069,167,21 +2020-06-04,Franklin,North Carolina,37069,169,21 +2020-06-05,Franklin,North Carolina,37069,179,21 +2020-06-06,Franklin,North Carolina,37069,185,21 +2020-06-07,Franklin,North Carolina,37069,185,21 +2020-06-08,Franklin,North Carolina,37069,190,21 +2020-06-09,Franklin,North Carolina,37069,193,21 +2020-06-10,Franklin,North Carolina,37069,197,21 +2020-06-11,Franklin,North Carolina,37069,202,21 +2020-06-12,Franklin,North Carolina,37069,209,21 +2020-06-13,Franklin,North Carolina,37069,221,21 +2020-06-14,Franklin,North Carolina,37069,230,21 +2020-06-15,Franklin,North Carolina,37069,231,21 +2020-06-16,Franklin,North Carolina,37069,232,21 +2020-06-17,Franklin,North Carolina,37069,237,21 +2020-06-18,Franklin,North Carolina,37069,244,21 +2020-06-19,Franklin,North Carolina,37069,259,21 +2020-06-20,Franklin,North Carolina,37069,264,21 +2020-06-21,Franklin,North Carolina,37069,280,21 +2020-06-22,Franklin,North Carolina,37069,284,21 +2020-06-23,Franklin,North Carolina,37069,287,21 +2020-06-24,Franklin,North Carolina,37069,295,21 +2020-06-25,Franklin,North Carolina,37069,301,21 +2020-06-26,Franklin,North Carolina,37069,309,21 +2020-06-27,Franklin,North Carolina,37069,326,21 +2020-06-28,Franklin,North Carolina,37069,332,21 +2020-06-29,Franklin,North Carolina,37069,338,21 +2020-06-30,Franklin,North Carolina,37069,345,21 +2020-07-01,Franklin,North Carolina,37069,357,21 +2020-07-02,Franklin,North Carolina,37069,371,21 +2020-07-03,Franklin,North Carolina,37069,376,21 +2020-07-04,Franklin,North Carolina,37069,377,21 +2020-07-05,Franklin,North Carolina,37069,381,21 +2020-07-06,Franklin,North Carolina,37069,388,21 +2020-07-07,Franklin,North Carolina,37069,403,21 +2020-07-08,Franklin,North Carolina,37069,413,21 +2020-07-09,Franklin,North Carolina,37069,435,21 +2020-03-18,Gaston,North Carolina,37071,1,0 +2020-03-19,Gaston,North Carolina,37071,1,0 +2020-03-20,Gaston,North Carolina,37071,1,0 +2020-03-21,Gaston,North Carolina,37071,1,0 +2020-03-22,Gaston,North Carolina,37071,3,0 +2020-03-23,Gaston,North Carolina,37071,3,0 +2020-03-24,Gaston,North Carolina,37071,3,0 +2020-03-25,Gaston,North Carolina,37071,5,0 +2020-03-26,Gaston,North Carolina,37071,7,0 +2020-03-27,Gaston,North Carolina,37071,9,0 +2020-03-28,Gaston,North Carolina,37071,16,0 +2020-03-29,Gaston,North Carolina,37071,21,0 +2020-03-30,Gaston,North Carolina,37071,22,0 +2020-03-31,Gaston,North Carolina,37071,29,0 +2020-04-01,Gaston,North Carolina,37071,31,0 +2020-04-02,Gaston,North Carolina,37071,33,1 +2020-04-03,Gaston,North Carolina,37071,37,1 +2020-04-04,Gaston,North Carolina,37071,42,1 +2020-04-05,Gaston,North Carolina,37071,45,1 +2020-04-06,Gaston,North Carolina,37071,46,2 +2020-04-07,Gaston,North Carolina,37071,58,2 +2020-04-08,Gaston,North Carolina,37071,62,2 +2020-04-09,Gaston,North Carolina,37071,64,3 +2020-04-10,Gaston,North Carolina,37071,73,3 +2020-04-11,Gaston,North Carolina,37071,80,3 +2020-04-12,Gaston,North Carolina,37071,81,3 +2020-04-13,Gaston,North Carolina,37071,80,3 +2020-04-14,Gaston,North Carolina,37071,86,3 +2020-04-15,Gaston,North Carolina,37071,92,3 +2020-04-16,Gaston,North Carolina,37071,93,3 +2020-04-17,Gaston,North Carolina,37071,104,3 +2020-04-18,Gaston,North Carolina,37071,107,3 +2020-04-19,Gaston,North Carolina,37071,111,3 +2020-04-20,Gaston,North Carolina,37071,112,3 +2020-04-21,Gaston,North Carolina,37071,118,3 +2020-04-22,Gaston,North Carolina,37071,123,3 +2020-04-23,Gaston,North Carolina,37071,126,3 +2020-04-24,Gaston,North Carolina,37071,127,3 +2020-04-25,Gaston,North Carolina,37071,132,3 +2020-04-26,Gaston,North Carolina,37071,133,3 +2020-04-27,Gaston,North Carolina,37071,133,3 +2020-04-28,Gaston,North Carolina,37071,137,3 +2020-04-29,Gaston,North Carolina,37071,137,3 +2020-04-30,Gaston,North Carolina,37071,139,3 +2020-05-01,Gaston,North Carolina,37071,142,3 +2020-05-02,Gaston,North Carolina,37071,145,3 +2020-05-03,Gaston,North Carolina,37071,145,3 +2020-05-04,Gaston,North Carolina,37071,145,3 +2020-05-05,Gaston,North Carolina,37071,147,3 +2020-05-06,Gaston,North Carolina,37071,155,4 +2020-05-07,Gaston,North Carolina,37071,157,4 +2020-05-08,Gaston,North Carolina,37071,161,4 +2020-05-09,Gaston,North Carolina,37071,168,5 +2020-05-10,Gaston,North Carolina,37071,172,5 +2020-05-11,Gaston,North Carolina,37071,175,5 +2020-05-12,Gaston,North Carolina,37071,176,5 +2020-05-13,Gaston,North Carolina,37071,181,5 +2020-05-14,Gaston,North Carolina,37071,189,5 +2020-05-15,Gaston,North Carolina,37071,195,6 +2020-05-16,Gaston,North Carolina,37071,201,6 +2020-05-17,Gaston,North Carolina,37071,203,6 +2020-05-18,Gaston,North Carolina,37071,203,6 +2020-05-19,Gaston,North Carolina,37071,208,6 +2020-05-20,Gaston,North Carolina,37071,210,6 +2020-05-21,Gaston,North Carolina,37071,211,6 +2020-05-22,Gaston,North Carolina,37071,220,6 +2020-05-23,Gaston,North Carolina,37071,231,6 +2020-05-24,Gaston,North Carolina,37071,235,6 +2020-05-25,Gaston,North Carolina,37071,244,6 +2020-05-26,Gaston,North Carolina,37071,249,6 +2020-05-27,Gaston,North Carolina,37071,250,7 +2020-05-28,Gaston,North Carolina,37071,251,7 +2020-05-29,Gaston,North Carolina,37071,261,7 +2020-05-30,Gaston,North Carolina,37071,276,7 +2020-05-31,Gaston,North Carolina,37071,281,7 +2020-06-01,Gaston,North Carolina,37071,286,7 +2020-06-02,Gaston,North Carolina,37071,288,7 +2020-06-03,Gaston,North Carolina,37071,297,7 +2020-06-04,Gaston,North Carolina,37071,301,8 +2020-06-05,Gaston,North Carolina,37071,320,8 +2020-06-06,Gaston,North Carolina,37071,347,8 +2020-06-07,Gaston,North Carolina,37071,364,8 +2020-06-08,Gaston,North Carolina,37071,366,8 +2020-06-09,Gaston,North Carolina,37071,368,8 +2020-06-10,Gaston,North Carolina,37071,392,8 +2020-06-11,Gaston,North Carolina,37071,406,8 +2020-06-12,Gaston,North Carolina,37071,452,8 +2020-06-13,Gaston,North Carolina,37071,484,8 +2020-06-14,Gaston,North Carolina,37071,515,8 +2020-06-15,Gaston,North Carolina,37071,525,8 +2020-06-16,Gaston,North Carolina,37071,549,8 +2020-06-17,Gaston,North Carolina,37071,576,9 +2020-06-18,Gaston,North Carolina,37071,621,9 +2020-06-19,Gaston,North Carolina,37071,671,9 +2020-06-20,Gaston,North Carolina,37071,705,9 +2020-06-21,Gaston,North Carolina,37071,737,9 +2020-06-22,Gaston,North Carolina,37071,771,9 +2020-06-23,Gaston,North Carolina,37071,803,11 +2020-06-24,Gaston,North Carolina,37071,837,11 +2020-06-25,Gaston,North Carolina,37071,869,11 +2020-06-26,Gaston,North Carolina,37071,912,11 +2020-06-27,Gaston,North Carolina,37071,972,11 +2020-06-28,Gaston,North Carolina,37071,1004,11 +2020-06-29,Gaston,North Carolina,37071,1041,11 +2020-06-30,Gaston,North Carolina,37071,1083,11 +2020-07-01,Gaston,North Carolina,37071,1139,11 +2020-07-02,Gaston,North Carolina,37071,1168,11 +2020-07-03,Gaston,North Carolina,37071,1250,11 +2020-07-04,Gaston,North Carolina,37071,1291,11 +2020-07-05,Gaston,North Carolina,37071,1325,11 +2020-07-06,Gaston,North Carolina,37071,1385,12 +2020-07-07,Gaston,North Carolina,37071,1443,12 +2020-07-08,Gaston,North Carolina,37071,1479,14 +2020-07-09,Gaston,North Carolina,37071,1547,15 +2020-04-02,Gates,North Carolina,37073,1,0 +2020-04-03,Gates,North Carolina,37073,1,0 +2020-04-04,Gates,North Carolina,37073,1,0 +2020-04-05,Gates,North Carolina,37073,1,0 +2020-04-06,Gates,North Carolina,37073,1,0 +2020-04-07,Gates,North Carolina,37073,2,0 +2020-04-08,Gates,North Carolina,37073,3,0 +2020-04-09,Gates,North Carolina,37073,4,0 +2020-04-10,Gates,North Carolina,37073,4,0 +2020-04-11,Gates,North Carolina,37073,4,0 +2020-04-12,Gates,North Carolina,37073,4,0 +2020-04-13,Gates,North Carolina,37073,4,0 +2020-04-14,Gates,North Carolina,37073,4,0 +2020-04-15,Gates,North Carolina,37073,4,0 +2020-04-16,Gates,North Carolina,37073,4,0 +2020-04-17,Gates,North Carolina,37073,4,0 +2020-04-18,Gates,North Carolina,37073,4,0 +2020-04-19,Gates,North Carolina,37073,4,0 +2020-04-20,Gates,North Carolina,37073,4,0 +2020-04-21,Gates,North Carolina,37073,4,0 +2020-04-22,Gates,North Carolina,37073,4,0 +2020-04-23,Gates,North Carolina,37073,6,0 +2020-04-24,Gates,North Carolina,37073,6,0 +2020-04-25,Gates,North Carolina,37073,7,0 +2020-04-26,Gates,North Carolina,37073,7,0 +2020-04-27,Gates,North Carolina,37073,7,0 +2020-04-28,Gates,North Carolina,37073,7,0 +2020-04-29,Gates,North Carolina,37073,7,0 +2020-04-30,Gates,North Carolina,37073,7,0 +2020-05-01,Gates,North Carolina,37073,7,0 +2020-05-02,Gates,North Carolina,37073,9,0 +2020-05-03,Gates,North Carolina,37073,9,0 +2020-05-04,Gates,North Carolina,37073,9,0 +2020-05-05,Gates,North Carolina,37073,9,0 +2020-05-06,Gates,North Carolina,37073,10,0 +2020-05-07,Gates,North Carolina,37073,10,0 +2020-05-08,Gates,North Carolina,37073,10,0 +2020-05-09,Gates,North Carolina,37073,11,0 +2020-05-10,Gates,North Carolina,37073,11,0 +2020-05-11,Gates,North Carolina,37073,11,0 +2020-05-12,Gates,North Carolina,37073,11,0 +2020-05-13,Gates,North Carolina,37073,11,0 +2020-05-14,Gates,North Carolina,37073,12,0 +2020-05-15,Gates,North Carolina,37073,13,0 +2020-05-16,Gates,North Carolina,37073,14,0 +2020-05-17,Gates,North Carolina,37073,14,0 +2020-05-18,Gates,North Carolina,37073,14,0 +2020-05-19,Gates,North Carolina,37073,14,0 +2020-05-20,Gates,North Carolina,37073,14,0 +2020-05-21,Gates,North Carolina,37073,14,0 +2020-05-22,Gates,North Carolina,37073,14,1 +2020-05-23,Gates,North Carolina,37073,21,1 +2020-05-24,Gates,North Carolina,37073,21,1 +2020-05-25,Gates,North Carolina,37073,23,1 +2020-05-26,Gates,North Carolina,37073,23,1 +2020-05-27,Gates,North Carolina,37073,24,1 +2020-05-28,Gates,North Carolina,37073,24,1 +2020-05-29,Gates,North Carolina,37073,23,1 +2020-05-30,Gates,North Carolina,37073,23,1 +2020-05-31,Gates,North Carolina,37073,23,1 +2020-06-01,Gates,North Carolina,37073,23,1 +2020-06-02,Gates,North Carolina,37073,23,1 +2020-06-03,Gates,North Carolina,37073,23,1 +2020-06-04,Gates,North Carolina,37073,23,1 +2020-06-05,Gates,North Carolina,37073,23,1 +2020-06-06,Gates,North Carolina,37073,24,1 +2020-06-07,Gates,North Carolina,37073,24,1 +2020-06-08,Gates,North Carolina,37073,24,1 +2020-06-09,Gates,North Carolina,37073,24,1 +2020-06-10,Gates,North Carolina,37073,24,1 +2020-06-11,Gates,North Carolina,37073,24,1 +2020-06-12,Gates,North Carolina,37073,23,1 +2020-06-13,Gates,North Carolina,37073,24,1 +2020-06-14,Gates,North Carolina,37073,24,1 +2020-06-15,Gates,North Carolina,37073,24,1 +2020-06-16,Gates,North Carolina,37073,25,2 +2020-06-17,Gates,North Carolina,37073,24,2 +2020-06-18,Gates,North Carolina,37073,25,2 +2020-06-19,Gates,North Carolina,37073,25,2 +2020-06-20,Gates,North Carolina,37073,25,2 +2020-06-21,Gates,North Carolina,37073,25,2 +2020-06-22,Gates,North Carolina,37073,25,2 +2020-06-23,Gates,North Carolina,37073,25,2 +2020-06-24,Gates,North Carolina,37073,26,2 +2020-06-25,Gates,North Carolina,37073,26,2 +2020-06-26,Gates,North Carolina,37073,26,2 +2020-06-27,Gates,North Carolina,37073,26,2 +2020-06-28,Gates,North Carolina,37073,27,2 +2020-06-29,Gates,North Carolina,37073,28,2 +2020-06-30,Gates,North Carolina,37073,27,2 +2020-07-01,Gates,North Carolina,37073,27,2 +2020-07-02,Gates,North Carolina,37073,27,2 +2020-07-03,Gates,North Carolina,37073,27,2 +2020-07-04,Gates,North Carolina,37073,27,2 +2020-07-05,Gates,North Carolina,37073,27,2 +2020-07-06,Gates,North Carolina,37073,27,2 +2020-07-07,Gates,North Carolina,37073,27,2 +2020-07-08,Gates,North Carolina,37073,28,2 +2020-07-09,Gates,North Carolina,37073,29,2 +2020-04-28,Graham,North Carolina,37075,1,0 +2020-04-29,Graham,North Carolina,37075,1,0 +2020-04-30,Graham,North Carolina,37075,2,0 +2020-05-01,Graham,North Carolina,37075,1,0 +2020-05-02,Graham,North Carolina,37075,1,0 +2020-05-03,Graham,North Carolina,37075,1,0 +2020-05-04,Graham,North Carolina,37075,1,0 +2020-05-05,Graham,North Carolina,37075,2,0 +2020-05-06,Graham,North Carolina,37075,2,0 +2020-05-07,Graham,North Carolina,37075,2,0 +2020-05-08,Graham,North Carolina,37075,2,0 +2020-05-09,Graham,North Carolina,37075,2,0 +2020-05-10,Graham,North Carolina,37075,2,0 +2020-05-11,Graham,North Carolina,37075,2,0 +2020-05-12,Graham,North Carolina,37075,2,0 +2020-05-13,Graham,North Carolina,37075,2,0 +2020-05-14,Graham,North Carolina,37075,2,0 +2020-05-15,Graham,North Carolina,37075,2,0 +2020-05-16,Graham,North Carolina,37075,2,0 +2020-05-17,Graham,North Carolina,37075,2,0 +2020-05-18,Graham,North Carolina,37075,2,0 +2020-05-19,Graham,North Carolina,37075,2,0 +2020-05-20,Graham,North Carolina,37075,2,0 +2020-05-21,Graham,North Carolina,37075,2,0 +2020-05-22,Graham,North Carolina,37075,2,0 +2020-05-23,Graham,North Carolina,37075,2,0 +2020-05-24,Graham,North Carolina,37075,2,0 +2020-05-25,Graham,North Carolina,37075,2,0 +2020-05-26,Graham,North Carolina,37075,2,0 +2020-05-27,Graham,North Carolina,37075,2,0 +2020-05-28,Graham,North Carolina,37075,2,0 +2020-05-29,Graham,North Carolina,37075,2,0 +2020-05-30,Graham,North Carolina,37075,2,0 +2020-05-31,Graham,North Carolina,37075,2,0 +2020-06-01,Graham,North Carolina,37075,2,0 +2020-06-02,Graham,North Carolina,37075,2,0 +2020-06-03,Graham,North Carolina,37075,2,0 +2020-06-04,Graham,North Carolina,37075,2,0 +2020-06-05,Graham,North Carolina,37075,4,0 +2020-06-06,Graham,North Carolina,37075,4,0 +2020-06-07,Graham,North Carolina,37075,4,0 +2020-06-08,Graham,North Carolina,37075,4,0 +2020-06-09,Graham,North Carolina,37075,5,0 +2020-06-10,Graham,North Carolina,37075,6,0 +2020-06-11,Graham,North Carolina,37075,6,0 +2020-06-12,Graham,North Carolina,37075,6,0 +2020-06-13,Graham,North Carolina,37075,6,0 +2020-06-14,Graham,North Carolina,37075,6,0 +2020-06-15,Graham,North Carolina,37075,6,0 +2020-06-16,Graham,North Carolina,37075,6,0 +2020-06-17,Graham,North Carolina,37075,6,0 +2020-06-18,Graham,North Carolina,37075,6,0 +2020-06-19,Graham,North Carolina,37075,6,0 +2020-06-20,Graham,North Carolina,37075,6,0 +2020-06-21,Graham,North Carolina,37075,6,0 +2020-06-22,Graham,North Carolina,37075,6,0 +2020-06-23,Graham,North Carolina,37075,6,0 +2020-06-24,Graham,North Carolina,37075,8,0 +2020-06-25,Graham,North Carolina,37075,8,0 +2020-06-26,Graham,North Carolina,37075,9,0 +2020-06-27,Graham,North Carolina,37075,9,0 +2020-06-28,Graham,North Carolina,37075,9,0 +2020-06-29,Graham,North Carolina,37075,9,0 +2020-06-30,Graham,North Carolina,37075,9,0 +2020-07-01,Graham,North Carolina,37075,10,0 +2020-07-02,Graham,North Carolina,37075,10,0 +2020-07-03,Graham,North Carolina,37075,10,0 +2020-07-04,Graham,North Carolina,37075,10,0 +2020-07-05,Graham,North Carolina,37075,10,0 +2020-07-06,Graham,North Carolina,37075,10,0 +2020-07-07,Graham,North Carolina,37075,10,0 +2020-07-08,Graham,North Carolina,37075,10,0 +2020-07-09,Graham,North Carolina,37075,10,0 +2020-03-22,Granville,North Carolina,37077,1,0 +2020-03-23,Granville,North Carolina,37077,1,0 +2020-03-24,Granville,North Carolina,37077,1,0 +2020-03-25,Granville,North Carolina,37077,1,0 +2020-03-26,Granville,North Carolina,37077,1,0 +2020-03-27,Granville,North Carolina,37077,3,0 +2020-03-28,Granville,North Carolina,37077,4,0 +2020-03-29,Granville,North Carolina,37077,6,0 +2020-03-30,Granville,North Carolina,37077,7,0 +2020-03-31,Granville,North Carolina,37077,9,0 +2020-04-01,Granville,North Carolina,37077,9,0 +2020-04-02,Granville,North Carolina,37077,20,0 +2020-04-03,Granville,North Carolina,37077,22,0 +2020-04-04,Granville,North Carolina,37077,24,0 +2020-04-05,Granville,North Carolina,37077,37,0 +2020-04-06,Granville,North Carolina,37077,70,0 +2020-04-07,Granville,North Carolina,37077,76,0 +2020-04-08,Granville,North Carolina,37077,83,0 +2020-04-09,Granville,North Carolina,37077,83,0 +2020-04-10,Granville,North Carolina,37077,87,0 +2020-04-11,Granville,North Carolina,37077,88,0 +2020-04-12,Granville,North Carolina,37077,89,0 +2020-04-13,Granville,North Carolina,37077,92,0 +2020-04-14,Granville,North Carolina,37077,97,4 +2020-04-15,Granville,North Carolina,37077,98,4 +2020-04-16,Granville,North Carolina,37077,104,4 +2020-04-17,Granville,North Carolina,37077,108,4 +2020-04-18,Granville,North Carolina,37077,109,5 +2020-04-19,Granville,North Carolina,37077,110,5 +2020-04-20,Granville,North Carolina,37077,112,5 +2020-04-21,Granville,North Carolina,37077,114,5 +2020-04-22,Granville,North Carolina,37077,118,5 +2020-04-23,Granville,North Carolina,37077,123,5 +2020-04-24,Granville,North Carolina,37077,121,5 +2020-04-25,Granville,North Carolina,37077,126,5 +2020-04-26,Granville,North Carolina,37077,133,5 +2020-04-27,Granville,North Carolina,37077,133,5 +2020-04-28,Granville,North Carolina,37077,133,5 +2020-04-29,Granville,North Carolina,37077,136,5 +2020-04-30,Granville,North Carolina,37077,136,5 +2020-05-01,Granville,North Carolina,37077,137,5 +2020-05-02,Granville,North Carolina,37077,157,6 +2020-05-03,Granville,North Carolina,37077,159,6 +2020-05-04,Granville,North Carolina,37077,160,6 +2020-05-05,Granville,North Carolina,37077,160,8 +2020-05-06,Granville,North Carolina,37077,161,8 +2020-05-07,Granville,North Carolina,37077,164,8 +2020-05-08,Granville,North Carolina,37077,159,6 +2020-05-09,Granville,North Carolina,37077,164,6 +2020-05-10,Granville,North Carolina,37077,165,6 +2020-05-11,Granville,North Carolina,37077,167,6 +2020-05-12,Granville,North Carolina,37077,170,6 +2020-05-13,Granville,North Carolina,37077,171,6 +2020-05-14,Granville,North Carolina,37077,178,6 +2020-05-15,Granville,North Carolina,37077,181,6 +2020-05-16,Granville,North Carolina,37077,190,6 +2020-05-17,Granville,North Carolina,37077,196,6 +2020-05-18,Granville,North Carolina,37077,201,6 +2020-05-19,Granville,North Carolina,37077,202,6 +2020-05-20,Granville,North Carolina,37077,208,6 +2020-05-21,Granville,North Carolina,37077,222,6 +2020-05-22,Granville,North Carolina,37077,226,7 +2020-05-23,Granville,North Carolina,37077,239,7 +2020-05-24,Granville,North Carolina,37077,240,7 +2020-05-25,Granville,North Carolina,37077,247,7 +2020-05-26,Granville,North Carolina,37077,254,7 +2020-05-27,Granville,North Carolina,37077,258,8 +2020-05-28,Granville,North Carolina,37077,269,8 +2020-05-29,Granville,North Carolina,37077,277,8 +2020-05-30,Granville,North Carolina,37077,294,10 +2020-05-31,Granville,North Carolina,37077,306,10 +2020-06-01,Granville,North Carolina,37077,307,10 +2020-06-02,Granville,North Carolina,37077,309,10 +2020-06-03,Granville,North Carolina,37077,315,11 +2020-06-04,Granville,North Carolina,37077,321,12 +2020-06-05,Granville,North Carolina,37077,348,13 +2020-06-06,Granville,North Carolina,37077,462,13 +2020-06-07,Granville,North Carolina,37077,501,13 +2020-06-08,Granville,North Carolina,37077,513,13 +2020-06-09,Granville,North Carolina,37077,557,13 +2020-06-10,Granville,North Carolina,37077,610,14 +2020-06-11,Granville,North Carolina,37077,624,14 +2020-06-12,Granville,North Carolina,37077,646,15 +2020-06-13,Granville,North Carolina,37077,657,15 +2020-06-14,Granville,North Carolina,37077,668,15 +2020-06-15,Granville,North Carolina,37077,680,15 +2020-06-16,Granville,North Carolina,37077,688,16 +2020-06-17,Granville,North Carolina,37077,693,16 +2020-06-18,Granville,North Carolina,37077,701,17 +2020-06-19,Granville,North Carolina,37077,713,17 +2020-06-20,Granville,North Carolina,37077,723,17 +2020-06-21,Granville,North Carolina,37077,735,17 +2020-06-22,Granville,North Carolina,37077,738,17 +2020-06-23,Granville,North Carolina,37077,742,17 +2020-06-24,Granville,North Carolina,37077,755,17 +2020-06-25,Granville,North Carolina,37077,767,19 +2020-06-26,Granville,North Carolina,37077,771,19 +2020-06-27,Granville,North Carolina,37077,779,19 +2020-06-28,Granville,North Carolina,37077,786,19 +2020-06-29,Granville,North Carolina,37077,788,19 +2020-06-30,Granville,North Carolina,37077,798,19 +2020-07-01,Granville,North Carolina,37077,807,21 +2020-07-02,Granville,North Carolina,37077,814,21 +2020-07-03,Granville,North Carolina,37077,825,21 +2020-07-04,Granville,North Carolina,37077,833,21 +2020-07-05,Granville,North Carolina,37077,844,21 +2020-07-06,Granville,North Carolina,37077,854,21 +2020-07-07,Granville,North Carolina,37077,850,21 +2020-07-08,Granville,North Carolina,37077,859,23 +2020-07-09,Granville,North Carolina,37077,877,23 +2020-03-27,Greene,North Carolina,37079,3,0 +2020-03-28,Greene,North Carolina,37079,3,0 +2020-03-29,Greene,North Carolina,37079,3,0 +2020-03-30,Greene,North Carolina,37079,3,0 +2020-03-31,Greene,North Carolina,37079,3,0 +2020-04-01,Greene,North Carolina,37079,3,0 +2020-04-02,Greene,North Carolina,37079,4,0 +2020-04-03,Greene,North Carolina,37079,5,0 +2020-04-04,Greene,North Carolina,37079,6,0 +2020-04-05,Greene,North Carolina,37079,6,0 +2020-04-06,Greene,North Carolina,37079,8,0 +2020-04-07,Greene,North Carolina,37079,10,0 +2020-04-08,Greene,North Carolina,37079,10,0 +2020-04-09,Greene,North Carolina,37079,9,0 +2020-04-10,Greene,North Carolina,37079,9,0 +2020-04-11,Greene,North Carolina,37079,10,0 +2020-04-12,Greene,North Carolina,37079,10,0 +2020-04-13,Greene,North Carolina,37079,10,0 +2020-04-14,Greene,North Carolina,37079,13,0 +2020-04-15,Greene,North Carolina,37079,13,0 +2020-04-16,Greene,North Carolina,37079,12,0 +2020-04-17,Greene,North Carolina,37079,12,0 +2020-04-18,Greene,North Carolina,37079,13,0 +2020-04-19,Greene,North Carolina,37079,13,0 +2020-04-20,Greene,North Carolina,37079,13,0 +2020-04-21,Greene,North Carolina,37079,14,0 +2020-04-22,Greene,North Carolina,37079,14,0 +2020-04-23,Greene,North Carolina,37079,14,0 +2020-04-24,Greene,North Carolina,37079,15,0 +2020-04-25,Greene,North Carolina,37079,15,0 +2020-04-26,Greene,North Carolina,37079,15,0 +2020-04-27,Greene,North Carolina,37079,15,0 +2020-04-28,Greene,North Carolina,37079,15,0 +2020-04-29,Greene,North Carolina,37079,15,0 +2020-04-30,Greene,North Carolina,37079,16,0 +2020-05-01,Greene,North Carolina,37079,17,0 +2020-05-02,Greene,North Carolina,37079,19,0 +2020-05-03,Greene,North Carolina,37079,19,0 +2020-05-04,Greene,North Carolina,37079,22,0 +2020-05-05,Greene,North Carolina,37079,22,0 +2020-05-06,Greene,North Carolina,37079,22,0 +2020-05-07,Greene,North Carolina,37079,33,0 +2020-05-08,Greene,North Carolina,37079,34,0 +2020-05-09,Greene,North Carolina,37079,33,1 +2020-05-10,Greene,North Carolina,37079,34,1 +2020-05-11,Greene,North Carolina,37079,36,1 +2020-05-12,Greene,North Carolina,37079,37,1 +2020-05-13,Greene,North Carolina,37079,37,1 +2020-05-14,Greene,North Carolina,37079,40,1 +2020-05-15,Greene,North Carolina,37079,40,1 +2020-05-16,Greene,North Carolina,37079,44,1 +2020-05-17,Greene,North Carolina,37079,45,1 +2020-05-18,Greene,North Carolina,37079,51,1 +2020-05-19,Greene,North Carolina,37079,50,2 +2020-05-20,Greene,North Carolina,37079,50,2 +2020-05-21,Greene,North Carolina,37079,56,2 +2020-05-22,Greene,North Carolina,37079,58,2 +2020-05-23,Greene,North Carolina,37079,64,2 +2020-05-24,Greene,North Carolina,37079,65,2 +2020-05-25,Greene,North Carolina,37079,65,2 +2020-05-26,Greene,North Carolina,37079,66,2 +2020-05-27,Greene,North Carolina,37079,66,2 +2020-05-28,Greene,North Carolina,37079,68,2 +2020-05-29,Greene,North Carolina,37079,70,2 +2020-05-30,Greene,North Carolina,37079,77,2 +2020-05-31,Greene,North Carolina,37079,78,2 +2020-06-01,Greene,North Carolina,37079,79,2 +2020-06-02,Greene,North Carolina,37079,81,2 +2020-06-03,Greene,North Carolina,37079,81,2 +2020-06-04,Greene,North Carolina,37079,84,2 +2020-06-05,Greene,North Carolina,37079,88,2 +2020-06-06,Greene,North Carolina,37079,92,2 +2020-06-07,Greene,North Carolina,37079,95,2 +2020-06-08,Greene,North Carolina,37079,104,2 +2020-06-09,Greene,North Carolina,37079,106,2 +2020-06-10,Greene,North Carolina,37079,106,2 +2020-06-11,Greene,North Carolina,37079,107,2 +2020-06-12,Greene,North Carolina,37079,117,2 +2020-06-13,Greene,North Carolina,37079,116,2 +2020-06-14,Greene,North Carolina,37079,118,2 +2020-06-15,Greene,North Carolina,37079,122,2 +2020-06-16,Greene,North Carolina,37079,124,2 +2020-06-17,Greene,North Carolina,37079,128,2 +2020-06-18,Greene,North Carolina,37079,132,2 +2020-06-19,Greene,North Carolina,37079,134,2 +2020-06-20,Greene,North Carolina,37079,140,2 +2020-06-21,Greene,North Carolina,37079,144,2 +2020-06-22,Greene,North Carolina,37079,147,2 +2020-06-23,Greene,North Carolina,37079,151,2 +2020-06-24,Greene,North Carolina,37079,159,2 +2020-06-25,Greene,North Carolina,37079,160,2 +2020-06-26,Greene,North Carolina,37079,164,2 +2020-06-27,Greene,North Carolina,37079,172,2 +2020-06-28,Greene,North Carolina,37079,174,2 +2020-06-29,Greene,North Carolina,37079,174,2 +2020-06-30,Greene,North Carolina,37079,173,2 +2020-07-01,Greene,North Carolina,37079,175,3 +2020-07-02,Greene,North Carolina,37079,183,3 +2020-07-03,Greene,North Carolina,37079,182,3 +2020-07-04,Greene,North Carolina,37079,182,3 +2020-07-05,Greene,North Carolina,37079,184,3 +2020-07-06,Greene,North Carolina,37079,190,3 +2020-07-07,Greene,North Carolina,37079,192,3 +2020-07-08,Greene,North Carolina,37079,191,3 +2020-07-09,Greene,North Carolina,37079,196,3 +2020-03-18,Guilford,North Carolina,37081,1,0 +2020-03-19,Guilford,North Carolina,37081,2,0 +2020-03-20,Guilford,North Carolina,37081,4,0 +2020-03-21,Guilford,North Carolina,37081,4,0 +2020-03-22,Guilford,North Carolina,37081,11,0 +2020-03-23,Guilford,North Carolina,37081,11,0 +2020-03-24,Guilford,North Carolina,37081,16,0 +2020-03-25,Guilford,North Carolina,37081,22,0 +2020-03-26,Guilford,North Carolina,37081,24,0 +2020-03-27,Guilford,North Carolina,37081,31,0 +2020-03-28,Guilford,North Carolina,37081,34,0 +2020-03-29,Guilford,North Carolina,37081,39,0 +2020-03-30,Guilford,North Carolina,37081,44,0 +2020-03-31,Guilford,North Carolina,37081,52,1 +2020-04-01,Guilford,North Carolina,37081,55,1 +2020-04-02,Guilford,North Carolina,37081,71,1 +2020-04-03,Guilford,North Carolina,37081,79,3 +2020-04-04,Guilford,North Carolina,37081,94,4 +2020-04-05,Guilford,North Carolina,37081,96,4 +2020-04-06,Guilford,North Carolina,37081,104,4 +2020-04-07,Guilford,North Carolina,37081,119,5 +2020-04-08,Guilford,North Carolina,37081,122,8 +2020-04-09,Guilford,North Carolina,37081,125,8 +2020-04-10,Guilford,North Carolina,37081,127,9 +2020-04-11,Guilford,North Carolina,37081,134,9 +2020-04-12,Guilford,North Carolina,37081,135,9 +2020-04-13,Guilford,North Carolina,37081,138,10 +2020-04-14,Guilford,North Carolina,37081,137,10 +2020-04-15,Guilford,North Carolina,37081,149,10 +2020-04-16,Guilford,North Carolina,37081,154,10 +2020-04-17,Guilford,North Carolina,37081,162,12 +2020-04-18,Guilford,North Carolina,37081,168,13 +2020-04-19,Guilford,North Carolina,37081,172,13 +2020-04-20,Guilford,North Carolina,37081,175,13 +2020-04-21,Guilford,North Carolina,37081,190,14 +2020-04-22,Guilford,North Carolina,37081,226,14 +2020-04-23,Guilford,North Carolina,37081,240,15 +2020-04-24,Guilford,North Carolina,37081,272,16 +2020-04-25,Guilford,North Carolina,37081,293,19 +2020-04-26,Guilford,North Carolina,37081,299,19 +2020-04-27,Guilford,North Carolina,37081,301,23 +2020-04-28,Guilford,North Carolina,37081,318,23 +2020-04-29,Guilford,North Carolina,37081,357,23 +2020-04-30,Guilford,North Carolina,37081,381,26 +2020-05-01,Guilford,North Carolina,37081,415,30 +2020-05-02,Guilford,North Carolina,37081,437,31 +2020-05-03,Guilford,North Carolina,37081,439,31 +2020-05-04,Guilford,North Carolina,37081,443,31 +2020-05-05,Guilford,North Carolina,37081,464,33 +2020-05-06,Guilford,North Carolina,37081,507,35 +2020-05-07,Guilford,North Carolina,37081,536,35 +2020-05-08,Guilford,North Carolina,37081,553,38 +2020-05-09,Guilford,North Carolina,37081,574,38 +2020-05-10,Guilford,North Carolina,37081,592,38 +2020-05-11,Guilford,North Carolina,37081,609,38 +2020-05-12,Guilford,North Carolina,37081,626,42 +2020-05-13,Guilford,North Carolina,37081,670,44 +2020-05-14,Guilford,North Carolina,37081,705,45 +2020-05-15,Guilford,North Carolina,37081,725,46 +2020-05-16,Guilford,North Carolina,37081,776,47 +2020-05-17,Guilford,North Carolina,37081,846,47 +2020-05-18,Guilford,North Carolina,37081,872,47 +2020-05-19,Guilford,North Carolina,37081,904,49 +2020-05-20,Guilford,North Carolina,37081,931,49 +2020-05-21,Guilford,North Carolina,37081,962,50 +2020-05-22,Guilford,North Carolina,37081,977,50 +2020-05-23,Guilford,North Carolina,37081,1033,52 +2020-05-24,Guilford,North Carolina,37081,1049,52 +2020-05-25,Guilford,North Carolina,37081,1073,52 +2020-05-26,Guilford,North Carolina,37081,1092,53 +2020-05-27,Guilford,North Carolina,37081,1143,54 +2020-05-28,Guilford,North Carolina,37081,1173,56 +2020-05-29,Guilford,North Carolina,37081,1195,65 +2020-05-30,Guilford,North Carolina,37081,1227,65 +2020-05-31,Guilford,North Carolina,37081,1264,65 +2020-06-01,Guilford,North Carolina,37081,1288,65 +2020-06-02,Guilford,North Carolina,37081,1352,70 +2020-06-03,Guilford,North Carolina,37081,1415,71 +2020-06-04,Guilford,North Carolina,37081,1498,75 +2020-06-05,Guilford,North Carolina,37081,1574,75 +2020-06-06,Guilford,North Carolina,37081,1574,78 +2020-06-07,Guilford,North Carolina,37081,1614,78 +2020-06-08,Guilford,North Carolina,37081,1671,81 +2020-06-09,Guilford,North Carolina,37081,1779,87 +2020-06-10,Guilford,North Carolina,37081,1853,91 +2020-06-11,Guilford,North Carolina,37081,1891,93 +2020-06-12,Guilford,North Carolina,37081,1941,94 +2020-06-13,Guilford,North Carolina,37081,1983,94 +2020-06-14,Guilford,North Carolina,37081,2032,94 +2020-06-15,Guilford,North Carolina,37081,2061,95 +2020-06-16,Guilford,North Carolina,37081,2148,99 +2020-06-17,Guilford,North Carolina,37081,2194,101 +2020-06-18,Guilford,North Carolina,37081,2244,101 +2020-06-19,Guilford,North Carolina,37081,2320,105 +2020-06-20,Guilford,North Carolina,37081,2352,106 +2020-06-21,Guilford,North Carolina,37081,2402,106 +2020-06-22,Guilford,North Carolina,37081,2434,106 +2020-06-23,Guilford,North Carolina,37081,2482,106 +2020-06-24,Guilford,North Carolina,37081,2527,110 +2020-06-25,Guilford,North Carolina,37081,2586,111 +2020-06-26,Guilford,North Carolina,37081,2645,112 +2020-06-27,Guilford,North Carolina,37081,2690,112 +2020-06-28,Guilford,North Carolina,37081,2743,112 +2020-06-29,Guilford,North Carolina,37081,2775,112 +2020-06-30,Guilford,North Carolina,37081,2812,114 +2020-07-01,Guilford,North Carolina,37081,2891,115 +2020-07-02,Guilford,North Carolina,37081,2946,117 +2020-07-03,Guilford,North Carolina,37081,3000,118 +2020-07-04,Guilford,North Carolina,37081,3055,117 +2020-07-05,Guilford,North Carolina,37081,3094,117 +2020-07-06,Guilford,North Carolina,37081,3149,118 +2020-07-07,Guilford,North Carolina,37081,3208,119 +2020-07-08,Guilford,North Carolina,37081,3275,119 +2020-07-09,Guilford,North Carolina,37081,3361,121 +2020-03-29,Halifax,North Carolina,37083,2,0 +2020-03-30,Halifax,North Carolina,37083,2,0 +2020-03-31,Halifax,North Carolina,37083,4,0 +2020-04-01,Halifax,North Carolina,37083,4,0 +2020-04-02,Halifax,North Carolina,37083,6,0 +2020-04-03,Halifax,North Carolina,37083,7,0 +2020-04-04,Halifax,North Carolina,37083,10,0 +2020-04-05,Halifax,North Carolina,37083,10,0 +2020-04-06,Halifax,North Carolina,37083,10,0 +2020-04-07,Halifax,North Carolina,37083,12,0 +2020-04-08,Halifax,North Carolina,37083,12,0 +2020-04-09,Halifax,North Carolina,37083,15,0 +2020-04-10,Halifax,North Carolina,37083,17,0 +2020-04-11,Halifax,North Carolina,37083,21,0 +2020-04-12,Halifax,North Carolina,37083,20,0 +2020-04-13,Halifax,North Carolina,37083,20,0 +2020-04-14,Halifax,North Carolina,37083,25,0 +2020-04-15,Halifax,North Carolina,37083,25,0 +2020-04-16,Halifax,North Carolina,37083,26,0 +2020-04-17,Halifax,North Carolina,37083,28,1 +2020-04-18,Halifax,North Carolina,37083,30,1 +2020-04-19,Halifax,North Carolina,37083,30,1 +2020-04-20,Halifax,North Carolina,37083,33,1 +2020-04-21,Halifax,North Carolina,37083,33,1 +2020-04-22,Halifax,North Carolina,37083,34,1 +2020-04-23,Halifax,North Carolina,37083,35,1 +2020-04-24,Halifax,North Carolina,37083,39,1 +2020-04-25,Halifax,North Carolina,37083,46,1 +2020-04-26,Halifax,North Carolina,37083,49,1 +2020-04-27,Halifax,North Carolina,37083,49,1 +2020-04-28,Halifax,North Carolina,37083,52,1 +2020-04-29,Halifax,North Carolina,37083,55,1 +2020-04-30,Halifax,North Carolina,37083,56,1 +2020-05-01,Halifax,North Carolina,37083,57,1 +2020-05-02,Halifax,North Carolina,37083,62,1 +2020-05-03,Halifax,North Carolina,37083,62,1 +2020-05-04,Halifax,North Carolina,37083,64,1 +2020-05-05,Halifax,North Carolina,37083,69,1 +2020-05-06,Halifax,North Carolina,37083,73,1 +2020-05-07,Halifax,North Carolina,37083,77,1 +2020-05-08,Halifax,North Carolina,37083,82,1 +2020-05-09,Halifax,North Carolina,37083,85,1 +2020-05-10,Halifax,North Carolina,37083,91,1 +2020-05-11,Halifax,North Carolina,37083,94,1 +2020-05-12,Halifax,North Carolina,37083,94,1 +2020-05-13,Halifax,North Carolina,37083,96,1 +2020-05-14,Halifax,North Carolina,37083,100,1 +2020-05-15,Halifax,North Carolina,37083,101,1 +2020-05-16,Halifax,North Carolina,37083,106,1 +2020-05-17,Halifax,North Carolina,37083,106,1 +2020-05-18,Halifax,North Carolina,37083,113,1 +2020-05-19,Halifax,North Carolina,37083,119,1 +2020-05-20,Halifax,North Carolina,37083,125,1 +2020-05-21,Halifax,North Carolina,37083,131,1 +2020-05-22,Halifax,North Carolina,37083,139,1 +2020-05-23,Halifax,North Carolina,37083,145,1 +2020-05-24,Halifax,North Carolina,37083,148,1 +2020-05-25,Halifax,North Carolina,37083,150,1 +2020-05-26,Halifax,North Carolina,37083,152,1 +2020-05-27,Halifax,North Carolina,37083,151,1 +2020-05-28,Halifax,North Carolina,37083,159,1 +2020-05-29,Halifax,North Carolina,37083,164,1 +2020-05-30,Halifax,North Carolina,37083,176,1 +2020-05-31,Halifax,North Carolina,37083,180,1 +2020-06-01,Halifax,North Carolina,37083,182,1 +2020-06-02,Halifax,North Carolina,37083,183,1 +2020-06-03,Halifax,North Carolina,37083,187,1 +2020-06-04,Halifax,North Carolina,37083,194,1 +2020-06-05,Halifax,North Carolina,37083,197,1 +2020-06-06,Halifax,North Carolina,37083,200,1 +2020-06-07,Halifax,North Carolina,37083,201,1 +2020-06-08,Halifax,North Carolina,37083,203,1 +2020-06-09,Halifax,North Carolina,37083,209,1 +2020-06-10,Halifax,North Carolina,37083,217,1 +2020-06-11,Halifax,North Carolina,37083,224,1 +2020-06-12,Halifax,North Carolina,37083,229,1 +2020-06-13,Halifax,North Carolina,37083,238,1 +2020-06-14,Halifax,North Carolina,37083,239,1 +2020-06-15,Halifax,North Carolina,37083,239,1 +2020-06-16,Halifax,North Carolina,37083,241,3 +2020-06-17,Halifax,North Carolina,37083,241,2 +2020-06-18,Halifax,North Carolina,37083,244,2 +2020-06-19,Halifax,North Carolina,37083,253,3 +2020-06-20,Halifax,North Carolina,37083,259,3 +2020-06-21,Halifax,North Carolina,37083,265,3 +2020-06-22,Halifax,North Carolina,37083,266,3 +2020-06-23,Halifax,North Carolina,37083,266,4 +2020-06-24,Halifax,North Carolina,37083,272,4 +2020-06-25,Halifax,North Carolina,37083,281,4 +2020-06-26,Halifax,North Carolina,37083,284,4 +2020-06-27,Halifax,North Carolina,37083,291,4 +2020-06-28,Halifax,North Carolina,37083,298,4 +2020-06-29,Halifax,North Carolina,37083,306,4 +2020-06-30,Halifax,North Carolina,37083,311,4 +2020-07-01,Halifax,North Carolina,37083,313,4 +2020-07-02,Halifax,North Carolina,37083,314,4 +2020-07-03,Halifax,North Carolina,37083,319,4 +2020-07-04,Halifax,North Carolina,37083,321,4 +2020-07-05,Halifax,North Carolina,37083,323,4 +2020-07-06,Halifax,North Carolina,37083,325,4 +2020-07-07,Halifax,North Carolina,37083,329,4 +2020-07-08,Halifax,North Carolina,37083,341,4 +2020-07-09,Halifax,North Carolina,37083,346,4 +2020-03-14,Harnett,North Carolina,37085,2,0 +2020-03-15,Harnett,North Carolina,37085,2,0 +2020-03-16,Harnett,North Carolina,37085,2,0 +2020-03-17,Harnett,North Carolina,37085,3,0 +2020-03-18,Harnett,North Carolina,37085,4,0 +2020-03-19,Harnett,North Carolina,37085,6,0 +2020-03-20,Harnett,North Carolina,37085,6,0 +2020-03-21,Harnett,North Carolina,37085,6,0 +2020-03-22,Harnett,North Carolina,37085,8,0 +2020-03-23,Harnett,North Carolina,37085,9,0 +2020-03-24,Harnett,North Carolina,37085,9,0 +2020-03-25,Harnett,North Carolina,37085,10,0 +2020-03-26,Harnett,North Carolina,37085,11,1 +2020-03-27,Harnett,North Carolina,37085,11,1 +2020-03-28,Harnett,North Carolina,37085,13,1 +2020-03-29,Harnett,North Carolina,37085,14,1 +2020-03-30,Harnett,North Carolina,37085,15,1 +2020-03-31,Harnett,North Carolina,37085,18,1 +2020-04-01,Harnett,North Carolina,37085,18,1 +2020-04-02,Harnett,North Carolina,37085,19,1 +2020-04-03,Harnett,North Carolina,37085,19,1 +2020-04-04,Harnett,North Carolina,37085,23,2 +2020-04-05,Harnett,North Carolina,37085,25,2 +2020-04-06,Harnett,North Carolina,37085,31,2 +2020-04-07,Harnett,North Carolina,37085,32,2 +2020-04-08,Harnett,North Carolina,37085,34,2 +2020-04-09,Harnett,North Carolina,37085,34,2 +2020-04-10,Harnett,North Carolina,37085,35,2 +2020-04-11,Harnett,North Carolina,37085,38,2 +2020-04-12,Harnett,North Carolina,37085,41,2 +2020-04-13,Harnett,North Carolina,37085,45,2 +2020-04-14,Harnett,North Carolina,37085,49,2 +2020-04-15,Harnett,North Carolina,37085,50,2 +2020-04-16,Harnett,North Carolina,37085,53,2 +2020-04-17,Harnett,North Carolina,37085,54,3 +2020-04-18,Harnett,North Carolina,37085,55,3 +2020-04-19,Harnett,North Carolina,37085,58,3 +2020-04-20,Harnett,North Carolina,37085,61,3 +2020-04-21,Harnett,North Carolina,37085,62,5 +2020-04-22,Harnett,North Carolina,37085,66,5 +2020-04-23,Harnett,North Carolina,37085,72,5 +2020-04-24,Harnett,North Carolina,37085,77,5 +2020-04-25,Harnett,North Carolina,37085,119,5 +2020-04-26,Harnett,North Carolina,37085,128,5 +2020-04-27,Harnett,North Carolina,37085,137,5 +2020-04-28,Harnett,North Carolina,37085,145,7 +2020-04-29,Harnett,North Carolina,37085,151,7 +2020-04-30,Harnett,North Carolina,37085,155,7 +2020-05-01,Harnett,North Carolina,37085,164,7 +2020-05-02,Harnett,North Carolina,37085,173,8 +2020-05-03,Harnett,North Carolina,37085,174,8 +2020-05-04,Harnett,North Carolina,37085,182,8 +2020-05-05,Harnett,North Carolina,37085,188,9 +2020-05-06,Harnett,North Carolina,37085,192,10 +2020-05-07,Harnett,North Carolina,37085,199,12 +2020-05-08,Harnett,North Carolina,37085,207,13 +2020-05-09,Harnett,North Carolina,37085,212,13 +2020-05-10,Harnett,North Carolina,37085,217,13 +2020-05-11,Harnett,North Carolina,37085,228,13 +2020-05-12,Harnett,North Carolina,37085,228,15 +2020-05-13,Harnett,North Carolina,37085,228,15 +2020-05-14,Harnett,North Carolina,37085,235,15 +2020-05-15,Harnett,North Carolina,37085,237,17 +2020-05-16,Harnett,North Carolina,37085,240,17 +2020-05-17,Harnett,North Carolina,37085,246,17 +2020-05-18,Harnett,North Carolina,37085,247,17 +2020-05-19,Harnett,North Carolina,37085,252,20 +2020-05-20,Harnett,North Carolina,37085,255,20 +2020-05-21,Harnett,North Carolina,37085,257,20 +2020-05-22,Harnett,North Carolina,37085,258,20 +2020-05-23,Harnett,North Carolina,37085,269,21 +2020-05-24,Harnett,North Carolina,37085,272,21 +2020-05-25,Harnett,North Carolina,37085,275,21 +2020-05-26,Harnett,North Carolina,37085,276,21 +2020-05-27,Harnett,North Carolina,37085,278,21 +2020-05-28,Harnett,North Carolina,37085,281,24 +2020-05-29,Harnett,North Carolina,37085,285,24 +2020-05-30,Harnett,North Carolina,37085,287,27 +2020-05-31,Harnett,North Carolina,37085,288,27 +2020-06-01,Harnett,North Carolina,37085,292,27 +2020-06-02,Harnett,North Carolina,37085,297,28 +2020-06-03,Harnett,North Carolina,37085,306,28 +2020-06-04,Harnett,North Carolina,37085,309,28 +2020-06-05,Harnett,North Carolina,37085,318,28 +2020-06-06,Harnett,North Carolina,37085,330,28 +2020-06-07,Harnett,North Carolina,37085,333,28 +2020-06-08,Harnett,North Carolina,37085,337,28 +2020-06-09,Harnett,North Carolina,37085,345,30 +2020-06-10,Harnett,North Carolina,37085,352,30 +2020-06-11,Harnett,North Carolina,37085,363,30 +2020-06-12,Harnett,North Carolina,37085,381,30 +2020-06-13,Harnett,North Carolina,37085,391,30 +2020-06-14,Harnett,North Carolina,37085,408,30 +2020-06-15,Harnett,North Carolina,37085,411,30 +2020-06-16,Harnett,North Carolina,37085,417,30 +2020-06-17,Harnett,North Carolina,37085,422,30 +2020-06-18,Harnett,North Carolina,37085,435,30 +2020-06-19,Harnett,North Carolina,37085,457,30 +2020-06-20,Harnett,North Carolina,37085,486,30 +2020-06-21,Harnett,North Carolina,37085,499,30 +2020-06-22,Harnett,North Carolina,37085,504,30 +2020-06-23,Harnett,North Carolina,37085,515,30 +2020-06-24,Harnett,North Carolina,37085,536,30 +2020-06-25,Harnett,North Carolina,37085,553,30 +2020-06-26,Harnett,North Carolina,37085,581,30 +2020-06-27,Harnett,North Carolina,37085,598,30 +2020-06-28,Harnett,North Carolina,37085,615,30 +2020-06-29,Harnett,North Carolina,37085,621,30 +2020-06-30,Harnett,North Carolina,37085,630,30 +2020-07-01,Harnett,North Carolina,37085,648,30 +2020-07-02,Harnett,North Carolina,37085,667,30 +2020-07-03,Harnett,North Carolina,37085,682,30 +2020-07-04,Harnett,North Carolina,37085,692,30 +2020-07-05,Harnett,North Carolina,37085,698,30 +2020-07-06,Harnett,North Carolina,37085,705,30 +2020-07-07,Harnett,North Carolina,37085,712,30 +2020-07-08,Harnett,North Carolina,37085,721,30 +2020-07-09,Harnett,North Carolina,37085,744,30 +2020-04-03,Haywood,North Carolina,37087,1,0 +2020-04-04,Haywood,North Carolina,37087,2,0 +2020-04-05,Haywood,North Carolina,37087,2,0 +2020-04-06,Haywood,North Carolina,37087,3,0 +2020-04-07,Haywood,North Carolina,37087,3,0 +2020-04-08,Haywood,North Carolina,37087,3,0 +2020-04-09,Haywood,North Carolina,37087,3,0 +2020-04-10,Haywood,North Carolina,37087,3,0 +2020-04-11,Haywood,North Carolina,37087,3,0 +2020-04-12,Haywood,North Carolina,37087,3,0 +2020-04-13,Haywood,North Carolina,37087,3,0 +2020-04-14,Haywood,North Carolina,37087,3,0 +2020-04-15,Haywood,North Carolina,37087,3,0 +2020-04-16,Haywood,North Carolina,37087,4,0 +2020-04-17,Haywood,North Carolina,37087,4,0 +2020-04-18,Haywood,North Carolina,37087,5,0 +2020-04-19,Haywood,North Carolina,37087,5,0 +2020-04-20,Haywood,North Carolina,37087,5,0 +2020-04-21,Haywood,North Carolina,37087,5,0 +2020-04-22,Haywood,North Carolina,37087,5,0 +2020-04-23,Haywood,North Carolina,37087,5,0 +2020-04-24,Haywood,North Carolina,37087,5,0 +2020-04-25,Haywood,North Carolina,37087,5,0 +2020-04-26,Haywood,North Carolina,37087,5,0 +2020-04-27,Haywood,North Carolina,37087,6,0 +2020-04-28,Haywood,North Carolina,37087,6,0 +2020-04-29,Haywood,North Carolina,37087,6,0 +2020-04-30,Haywood,North Carolina,37087,10,0 +2020-05-01,Haywood,North Carolina,37087,10,0 +2020-05-02,Haywood,North Carolina,37087,12,0 +2020-05-03,Haywood,North Carolina,37087,12,0 +2020-05-04,Haywood,North Carolina,37087,13,0 +2020-05-05,Haywood,North Carolina,37087,15,0 +2020-05-06,Haywood,North Carolina,37087,15,0 +2020-05-07,Haywood,North Carolina,37087,16,0 +2020-05-08,Haywood,North Carolina,37087,16,0 +2020-05-09,Haywood,North Carolina,37087,16,0 +2020-05-10,Haywood,North Carolina,37087,16,0 +2020-05-11,Haywood,North Carolina,37087,17,0 +2020-05-12,Haywood,North Carolina,37087,18,0 +2020-05-13,Haywood,North Carolina,37087,19,0 +2020-05-14,Haywood,North Carolina,37087,19,0 +2020-05-15,Haywood,North Carolina,37087,21,0 +2020-05-16,Haywood,North Carolina,37087,22,0 +2020-05-17,Haywood,North Carolina,37087,25,0 +2020-05-18,Haywood,North Carolina,37087,26,0 +2020-05-19,Haywood,North Carolina,37087,26,0 +2020-05-20,Haywood,North Carolina,37087,26,0 +2020-05-21,Haywood,North Carolina,37087,28,0 +2020-05-22,Haywood,North Carolina,37087,35,0 +2020-05-23,Haywood,North Carolina,37087,36,0 +2020-05-24,Haywood,North Carolina,37087,38,0 +2020-05-25,Haywood,North Carolina,37087,40,0 +2020-05-26,Haywood,North Carolina,37087,40,0 +2020-05-27,Haywood,North Carolina,37087,42,0 +2020-05-28,Haywood,North Carolina,37087,43,0 +2020-05-29,Haywood,North Carolina,37087,46,0 +2020-05-30,Haywood,North Carolina,37087,46,0 +2020-05-31,Haywood,North Carolina,37087,46,0 +2020-06-01,Haywood,North Carolina,37087,48,0 +2020-06-02,Haywood,North Carolina,37087,49,0 +2020-06-03,Haywood,North Carolina,37087,53,0 +2020-06-04,Haywood,North Carolina,37087,55,0 +2020-06-05,Haywood,North Carolina,37087,55,0 +2020-06-06,Haywood,North Carolina,37087,59,0 +2020-06-07,Haywood,North Carolina,37087,59,0 +2020-06-08,Haywood,North Carolina,37087,60,0 +2020-06-09,Haywood,North Carolina,37087,63,0 +2020-06-10,Haywood,North Carolina,37087,63,0 +2020-06-11,Haywood,North Carolina,37087,63,0 +2020-06-12,Haywood,North Carolina,37087,63,0 +2020-06-13,Haywood,North Carolina,37087,65,0 +2020-06-14,Haywood,North Carolina,37087,65,0 +2020-06-15,Haywood,North Carolina,37087,65,0 +2020-06-16,Haywood,North Carolina,37087,65,0 +2020-06-17,Haywood,North Carolina,37087,67,0 +2020-06-18,Haywood,North Carolina,37087,69,0 +2020-06-19,Haywood,North Carolina,37087,71,0 +2020-06-20,Haywood,North Carolina,37087,70,0 +2020-06-21,Haywood,North Carolina,37087,70,0 +2020-06-22,Haywood,North Carolina,37087,71,0 +2020-06-23,Haywood,North Carolina,37087,71,0 +2020-06-24,Haywood,North Carolina,37087,74,0 +2020-06-25,Haywood,North Carolina,37087,75,0 +2020-06-26,Haywood,North Carolina,37087,79,0 +2020-06-27,Haywood,North Carolina,37087,86,0 +2020-06-28,Haywood,North Carolina,37087,88,0 +2020-06-29,Haywood,North Carolina,37087,89,0 +2020-06-30,Haywood,North Carolina,37087,90,0 +2020-07-01,Haywood,North Carolina,37087,90,0 +2020-07-02,Haywood,North Carolina,37087,91,0 +2020-07-03,Haywood,North Carolina,37087,92,0 +2020-07-04,Haywood,North Carolina,37087,98,0 +2020-07-05,Haywood,North Carolina,37087,98,0 +2020-07-06,Haywood,North Carolina,37087,106,0 +2020-07-07,Haywood,North Carolina,37087,107,0 +2020-07-08,Haywood,North Carolina,37087,109,0 +2020-07-09,Haywood,North Carolina,37087,113,0 +2020-03-22,Henderson,North Carolina,37089,1,0 +2020-03-23,Henderson,North Carolina,37089,1,0 +2020-03-24,Henderson,North Carolina,37089,2,0 +2020-03-25,Henderson,North Carolina,37089,2,0 +2020-03-26,Henderson,North Carolina,37089,4,0 +2020-03-27,Henderson,North Carolina,37089,6,0 +2020-03-28,Henderson,North Carolina,37089,9,0 +2020-03-29,Henderson,North Carolina,37089,13,0 +2020-03-30,Henderson,North Carolina,37089,16,0 +2020-03-31,Henderson,North Carolina,37089,18,0 +2020-04-01,Henderson,North Carolina,37089,18,0 +2020-04-02,Henderson,North Carolina,37089,22,0 +2020-04-03,Henderson,North Carolina,37089,22,1 +2020-04-04,Henderson,North Carolina,37089,25,1 +2020-04-05,Henderson,North Carolina,37089,50,1 +2020-04-06,Henderson,North Carolina,37089,51,1 +2020-04-07,Henderson,North Carolina,37089,51,1 +2020-04-08,Henderson,North Carolina,37089,50,2 +2020-04-09,Henderson,North Carolina,37089,55,2 +2020-04-10,Henderson,North Carolina,37089,55,2 +2020-04-11,Henderson,North Carolina,37089,68,2 +2020-04-12,Henderson,North Carolina,37089,76,2 +2020-04-13,Henderson,North Carolina,37089,97,2 +2020-04-14,Henderson,North Carolina,37089,97,3 +2020-04-15,Henderson,North Carolina,37089,97,4 +2020-04-16,Henderson,North Carolina,37089,106,8 +2020-04-17,Henderson,North Carolina,37089,106,11 +2020-04-18,Henderson,North Carolina,37089,108,11 +2020-04-19,Henderson,North Carolina,37089,120,11 +2020-04-20,Henderson,North Carolina,37089,128,13 +2020-04-21,Henderson,North Carolina,37089,129,13 +2020-04-22,Henderson,North Carolina,37089,129,13 +2020-04-23,Henderson,North Carolina,37089,129,14 +2020-04-24,Henderson,North Carolina,37089,147,14 +2020-04-25,Henderson,North Carolina,37089,152,14 +2020-04-26,Henderson,North Carolina,37089,156,14 +2020-04-27,Henderson,North Carolina,37089,156,14 +2020-04-28,Henderson,North Carolina,37089,155,16 +2020-04-29,Henderson,North Carolina,37089,159,18 +2020-04-30,Henderson,North Carolina,37089,177,20 +2020-05-01,Henderson,North Carolina,37089,195,21 +2020-05-02,Henderson,North Carolina,37089,201,21 +2020-05-03,Henderson,North Carolina,37089,201,21 +2020-05-04,Henderson,North Carolina,37089,203,21 +2020-05-05,Henderson,North Carolina,37089,210,21 +2020-05-06,Henderson,North Carolina,37089,213,22 +2020-05-07,Henderson,North Carolina,37089,216,23 +2020-05-08,Henderson,North Carolina,37089,218,24 +2020-05-09,Henderson,North Carolina,37089,224,27 +2020-05-10,Henderson,North Carolina,37089,226,27 +2020-05-11,Henderson,North Carolina,37089,227,28 +2020-05-12,Henderson,North Carolina,37089,237,28 +2020-05-13,Henderson,North Carolina,37089,250,30 +2020-05-14,Henderson,North Carolina,37089,261,35 +2020-05-15,Henderson,North Carolina,37089,273,36 +2020-05-16,Henderson,North Carolina,37089,279,38 +2020-05-17,Henderson,North Carolina,37089,282,38 +2020-05-18,Henderson,North Carolina,37089,287,39 +2020-05-19,Henderson,North Carolina,37089,295,41 +2020-05-20,Henderson,North Carolina,37089,298,41 +2020-05-21,Henderson,North Carolina,37089,302,41 +2020-05-22,Henderson,North Carolina,37089,305,41 +2020-05-23,Henderson,North Carolina,37089,312,42 +2020-05-24,Henderson,North Carolina,37089,315,42 +2020-05-25,Henderson,North Carolina,37089,318,42 +2020-05-26,Henderson,North Carolina,37089,318,43 +2020-05-27,Henderson,North Carolina,37089,324,46 +2020-05-28,Henderson,North Carolina,37089,326,46 +2020-05-29,Henderson,North Carolina,37089,333,45 +2020-05-30,Henderson,North Carolina,37089,338,45 +2020-05-31,Henderson,North Carolina,37089,344,45 +2020-06-01,Henderson,North Carolina,37089,346,45 +2020-06-02,Henderson,North Carolina,37089,351,45 +2020-06-03,Henderson,North Carolina,37089,351,47 +2020-06-04,Henderson,North Carolina,37089,353,47 +2020-06-05,Henderson,North Carolina,37089,365,48 +2020-06-06,Henderson,North Carolina,37089,368,48 +2020-06-07,Henderson,North Carolina,37089,372,48 +2020-06-08,Henderson,North Carolina,37089,388,48 +2020-06-09,Henderson,North Carolina,37089,388,48 +2020-06-10,Henderson,North Carolina,37089,403,49 +2020-06-11,Henderson,North Carolina,37089,403,49 +2020-06-12,Henderson,North Carolina,37089,433,49 +2020-06-13,Henderson,North Carolina,37089,433,49 +2020-06-14,Henderson,North Carolina,37089,441,49 +2020-06-15,Henderson,North Carolina,37089,455,49 +2020-06-16,Henderson,North Carolina,37089,458,49 +2020-06-17,Henderson,North Carolina,37089,463,49 +2020-06-18,Henderson,North Carolina,37089,471,49 +2020-06-19,Henderson,North Carolina,37089,480,49 +2020-06-20,Henderson,North Carolina,37089,491,49 +2020-06-21,Henderson,North Carolina,37089,497,49 +2020-06-22,Henderson,North Carolina,37089,514,49 +2020-06-23,Henderson,North Carolina,37089,514,49 +2020-06-24,Henderson,North Carolina,37089,540,50 +2020-06-25,Henderson,North Carolina,37089,540,50 +2020-06-26,Henderson,North Carolina,37089,558,50 +2020-06-27,Henderson,North Carolina,37089,558,50 +2020-06-28,Henderson,North Carolina,37089,569,50 +2020-06-29,Henderson,North Carolina,37089,606,50 +2020-06-30,Henderson,North Carolina,37089,610,50 +2020-07-01,Henderson,North Carolina,37089,655,50 +2020-07-02,Henderson,North Carolina,37089,667,50 +2020-07-03,Henderson,North Carolina,37089,675,50 +2020-07-04,Henderson,North Carolina,37089,687,50 +2020-07-05,Henderson,North Carolina,37089,703,50 +2020-07-06,Henderson,North Carolina,37089,720,51 +2020-07-07,Henderson,North Carolina,37089,738,51 +2020-07-08,Henderson,North Carolina,37089,789,51 +2020-07-09,Henderson,North Carolina,37089,820,51 +2020-03-25,Hertford,North Carolina,37091,1,0 +2020-03-26,Hertford,North Carolina,37091,2,0 +2020-03-27,Hertford,North Carolina,37091,2,0 +2020-03-28,Hertford,North Carolina,37091,2,0 +2020-03-29,Hertford,North Carolina,37091,2,0 +2020-03-30,Hertford,North Carolina,37091,2,0 +2020-03-31,Hertford,North Carolina,37091,4,0 +2020-04-01,Hertford,North Carolina,37091,4,0 +2020-04-02,Hertford,North Carolina,37091,4,0 +2020-04-03,Hertford,North Carolina,37091,4,0 +2020-04-04,Hertford,North Carolina,37091,4,0 +2020-04-05,Hertford,North Carolina,37091,4,1 +2020-04-06,Hertford,North Carolina,37091,4,1 +2020-04-07,Hertford,North Carolina,37091,5,1 +2020-04-08,Hertford,North Carolina,37091,4,1 +2020-04-09,Hertford,North Carolina,37091,4,1 +2020-04-10,Hertford,North Carolina,37091,4,1 +2020-04-11,Hertford,North Carolina,37091,4,1 +2020-04-12,Hertford,North Carolina,37091,4,1 +2020-04-13,Hertford,North Carolina,37091,4,1 +2020-04-14,Hertford,North Carolina,37091,4,1 +2020-04-15,Hertford,North Carolina,37091,5,1 +2020-04-16,Hertford,North Carolina,37091,4,1 +2020-04-17,Hertford,North Carolina,37091,7,1 +2020-04-18,Hertford,North Carolina,37091,6,1 +2020-04-19,Hertford,North Carolina,37091,9,1 +2020-04-20,Hertford,North Carolina,37091,9,1 +2020-04-21,Hertford,North Carolina,37091,10,1 +2020-04-22,Hertford,North Carolina,37091,11,1 +2020-04-23,Hertford,North Carolina,37091,14,1 +2020-04-24,Hertford,North Carolina,37091,17,1 +2020-04-25,Hertford,North Carolina,37091,27,1 +2020-04-26,Hertford,North Carolina,37091,27,1 +2020-04-27,Hertford,North Carolina,37091,28,1 +2020-04-28,Hertford,North Carolina,37091,32,1 +2020-04-29,Hertford,North Carolina,37091,34,1 +2020-04-30,Hertford,North Carolina,37091,37,1 +2020-05-01,Hertford,North Carolina,37091,39,1 +2020-05-02,Hertford,North Carolina,37091,40,1 +2020-05-03,Hertford,North Carolina,37091,42,1 +2020-05-04,Hertford,North Carolina,37091,44,1 +2020-05-05,Hertford,North Carolina,37091,45,1 +2020-05-06,Hertford,North Carolina,37091,46,1 +2020-05-07,Hertford,North Carolina,37091,45,1 +2020-05-08,Hertford,North Carolina,37091,46,1 +2020-05-09,Hertford,North Carolina,37091,48,1 +2020-05-10,Hertford,North Carolina,37091,49,1 +2020-05-11,Hertford,North Carolina,37091,51,1 +2020-05-12,Hertford,North Carolina,37091,49,1 +2020-05-13,Hertford,North Carolina,37091,49,1 +2020-05-14,Hertford,North Carolina,37091,49,1 +2020-05-15,Hertford,North Carolina,37091,50,1 +2020-05-16,Hertford,North Carolina,37091,51,1 +2020-05-17,Hertford,North Carolina,37091,52,1 +2020-05-18,Hertford,North Carolina,37091,53,1 +2020-05-19,Hertford,North Carolina,37091,59,1 +2020-05-20,Hertford,North Carolina,37091,60,1 +2020-05-21,Hertford,North Carolina,37091,60,1 +2020-05-22,Hertford,North Carolina,37091,61,1 +2020-05-23,Hertford,North Carolina,37091,65,1 +2020-05-24,Hertford,North Carolina,37091,66,1 +2020-05-25,Hertford,North Carolina,37091,69,1 +2020-05-26,Hertford,North Carolina,37091,72,1 +2020-05-27,Hertford,North Carolina,37091,72,1 +2020-05-28,Hertford,North Carolina,37091,72,1 +2020-05-29,Hertford,North Carolina,37091,89,1 +2020-05-30,Hertford,North Carolina,37091,117,2 +2020-05-31,Hertford,North Carolina,37091,120,2 +2020-06-01,Hertford,North Carolina,37091,128,2 +2020-06-02,Hertford,North Carolina,37091,128,2 +2020-06-03,Hertford,North Carolina,37091,132,3 +2020-06-04,Hertford,North Carolina,37091,130,3 +2020-06-05,Hertford,North Carolina,37091,133,3 +2020-06-06,Hertford,North Carolina,37091,134,3 +2020-06-07,Hertford,North Carolina,37091,135,3 +2020-06-08,Hertford,North Carolina,37091,135,3 +2020-06-09,Hertford,North Carolina,37091,138,6 +2020-06-10,Hertford,North Carolina,37091,140,7 +2020-06-11,Hertford,North Carolina,37091,140,7 +2020-06-12,Hertford,North Carolina,37091,143,7 +2020-06-13,Hertford,North Carolina,37091,149,6 +2020-06-14,Hertford,North Carolina,37091,150,6 +2020-06-15,Hertford,North Carolina,37091,151,6 +2020-06-16,Hertford,North Carolina,37091,152,6 +2020-06-17,Hertford,North Carolina,37091,152,6 +2020-06-18,Hertford,North Carolina,37091,153,6 +2020-06-19,Hertford,North Carolina,37091,153,7 +2020-06-20,Hertford,North Carolina,37091,154,7 +2020-06-21,Hertford,North Carolina,37091,156,7 +2020-06-22,Hertford,North Carolina,37091,156,7 +2020-06-23,Hertford,North Carolina,37091,156,8 +2020-06-24,Hertford,North Carolina,37091,156,8 +2020-06-25,Hertford,North Carolina,37091,157,10 +2020-06-26,Hertford,North Carolina,37091,157,10 +2020-06-27,Hertford,North Carolina,37091,160,10 +2020-06-28,Hertford,North Carolina,37091,160,10 +2020-06-29,Hertford,North Carolina,37091,161,10 +2020-06-30,Hertford,North Carolina,37091,162,10 +2020-07-01,Hertford,North Carolina,37091,164,10 +2020-07-02,Hertford,North Carolina,37091,166,10 +2020-07-03,Hertford,North Carolina,37091,168,10 +2020-07-04,Hertford,North Carolina,37091,169,10 +2020-07-05,Hertford,North Carolina,37091,170,10 +2020-07-06,Hertford,North Carolina,37091,171,10 +2020-07-07,Hertford,North Carolina,37091,174,10 +2020-07-08,Hertford,North Carolina,37091,174,10 +2020-07-09,Hertford,North Carolina,37091,174,10 +2020-03-18,Hoke,North Carolina,37093,1,0 +2020-03-19,Hoke,North Carolina,37093,1,0 +2020-03-20,Hoke,North Carolina,37093,1,0 +2020-03-21,Hoke,North Carolina,37093,1,0 +2020-03-22,Hoke,North Carolina,37093,1,0 +2020-03-23,Hoke,North Carolina,37093,1,0 +2020-03-24,Hoke,North Carolina,37093,2,0 +2020-03-25,Hoke,North Carolina,37093,2,0 +2020-03-26,Hoke,North Carolina,37093,2,0 +2020-03-27,Hoke,North Carolina,37093,2,0 +2020-03-28,Hoke,North Carolina,37093,3,0 +2020-03-29,Hoke,North Carolina,37093,3,0 +2020-03-30,Hoke,North Carolina,37093,3,0 +2020-03-31,Hoke,North Carolina,37093,4,0 +2020-04-01,Hoke,North Carolina,37093,4,0 +2020-04-02,Hoke,North Carolina,37093,7,0 +2020-04-03,Hoke,North Carolina,37093,9,0 +2020-04-04,Hoke,North Carolina,37093,10,0 +2020-04-05,Hoke,North Carolina,37093,10,0 +2020-04-06,Hoke,North Carolina,37093,11,0 +2020-04-07,Hoke,North Carolina,37093,12,0 +2020-04-08,Hoke,North Carolina,37093,13,0 +2020-04-09,Hoke,North Carolina,37093,15,0 +2020-04-10,Hoke,North Carolina,37093,16,0 +2020-04-11,Hoke,North Carolina,37093,18,0 +2020-04-12,Hoke,North Carolina,37093,18,0 +2020-04-13,Hoke,North Carolina,37093,18,0 +2020-04-14,Hoke,North Carolina,37093,20,0 +2020-04-15,Hoke,North Carolina,37093,20,0 +2020-04-16,Hoke,North Carolina,37093,22,0 +2020-04-17,Hoke,North Carolina,37093,22,0 +2020-04-18,Hoke,North Carolina,37093,23,0 +2020-04-19,Hoke,North Carolina,37093,23,0 +2020-04-20,Hoke,North Carolina,37093,23,0 +2020-04-21,Hoke,North Carolina,37093,25,0 +2020-04-22,Hoke,North Carolina,37093,30,0 +2020-04-23,Hoke,North Carolina,37093,34,0 +2020-04-24,Hoke,North Carolina,37093,40,0 +2020-04-25,Hoke,North Carolina,37093,46,0 +2020-04-26,Hoke,North Carolina,37093,49,0 +2020-04-27,Hoke,North Carolina,37093,61,0 +2020-04-28,Hoke,North Carolina,37093,67,0 +2020-04-29,Hoke,North Carolina,37093,72,0 +2020-04-30,Hoke,North Carolina,37093,80,0 +2020-05-01,Hoke,North Carolina,37093,82,0 +2020-05-02,Hoke,North Carolina,37093,97,0 +2020-05-03,Hoke,North Carolina,37093,97,0 +2020-05-04,Hoke,North Carolina,37093,97,0 +2020-05-05,Hoke,North Carolina,37093,101,0 +2020-05-06,Hoke,North Carolina,37093,103,0 +2020-05-07,Hoke,North Carolina,37093,113,0 +2020-05-08,Hoke,North Carolina,37093,117,0 +2020-05-09,Hoke,North Carolina,37093,120,0 +2020-05-10,Hoke,North Carolina,37093,120,0 +2020-05-11,Hoke,North Carolina,37093,123,0 +2020-05-12,Hoke,North Carolina,37093,123,0 +2020-05-13,Hoke,North Carolina,37093,128,0 +2020-05-14,Hoke,North Carolina,37093,134,0 +2020-05-15,Hoke,North Carolina,37093,140,0 +2020-05-16,Hoke,North Carolina,37093,148,0 +2020-05-17,Hoke,North Carolina,37093,149,0 +2020-05-18,Hoke,North Carolina,37093,152,0 +2020-05-19,Hoke,North Carolina,37093,160,0 +2020-05-20,Hoke,North Carolina,37093,166,0 +2020-05-21,Hoke,North Carolina,37093,173,0 +2020-05-22,Hoke,North Carolina,37093,175,1 +2020-05-23,Hoke,North Carolina,37093,187,1 +2020-05-24,Hoke,North Carolina,37093,192,1 +2020-05-25,Hoke,North Carolina,37093,197,1 +2020-05-26,Hoke,North Carolina,37093,201,1 +2020-05-27,Hoke,North Carolina,37093,214,1 +2020-05-28,Hoke,North Carolina,37093,222,1 +2020-05-29,Hoke,North Carolina,37093,232,1 +2020-05-30,Hoke,North Carolina,37093,239,1 +2020-05-31,Hoke,North Carolina,37093,240,1 +2020-06-01,Hoke,North Carolina,37093,243,1 +2020-06-02,Hoke,North Carolina,37093,248,1 +2020-06-03,Hoke,North Carolina,37093,255,1 +2020-06-04,Hoke,North Carolina,37093,259,1 +2020-06-05,Hoke,North Carolina,37093,262,1 +2020-06-06,Hoke,North Carolina,37093,271,1 +2020-06-07,Hoke,North Carolina,37093,278,1 +2020-06-08,Hoke,North Carolina,37093,278,1 +2020-06-09,Hoke,North Carolina,37093,283,1 +2020-06-10,Hoke,North Carolina,37093,288,1 +2020-06-11,Hoke,North Carolina,37093,291,1 +2020-06-12,Hoke,North Carolina,37093,296,1 +2020-06-13,Hoke,North Carolina,37093,298,1 +2020-06-14,Hoke,North Carolina,37093,299,1 +2020-06-15,Hoke,North Carolina,37093,300,1 +2020-06-16,Hoke,North Carolina,37093,303,2 +2020-06-17,Hoke,North Carolina,37093,308,2 +2020-06-18,Hoke,North Carolina,37093,312,2 +2020-06-19,Hoke,North Carolina,37093,319,3 +2020-06-20,Hoke,North Carolina,37093,323,3 +2020-06-21,Hoke,North Carolina,37093,326,3 +2020-06-22,Hoke,North Carolina,37093,326,3 +2020-06-23,Hoke,North Carolina,37093,330,3 +2020-06-24,Hoke,North Carolina,37093,332,3 +2020-06-25,Hoke,North Carolina,37093,337,3 +2020-06-26,Hoke,North Carolina,37093,341,3 +2020-06-27,Hoke,North Carolina,37093,352,3 +2020-06-28,Hoke,North Carolina,37093,357,3 +2020-06-29,Hoke,North Carolina,37093,361,3 +2020-06-30,Hoke,North Carolina,37093,371,3 +2020-07-01,Hoke,North Carolina,37093,383,3 +2020-07-02,Hoke,North Carolina,37093,388,3 +2020-07-03,Hoke,North Carolina,37093,391,3 +2020-07-04,Hoke,North Carolina,37093,389,3 +2020-07-05,Hoke,North Carolina,37093,403,3 +2020-07-06,Hoke,North Carolina,37093,407,3 +2020-07-07,Hoke,North Carolina,37093,415,3 +2020-07-08,Hoke,North Carolina,37093,423,3 +2020-07-09,Hoke,North Carolina,37093,434,4 +2020-04-29,Hyde,North Carolina,37095,1,0 +2020-04-30,Hyde,North Carolina,37095,1,0 +2020-05-01,Hyde,North Carolina,37095,1,0 +2020-05-02,Hyde,North Carolina,37095,1,0 +2020-05-03,Hyde,North Carolina,37095,1,0 +2020-05-04,Hyde,North Carolina,37095,1,0 +2020-05-05,Hyde,North Carolina,37095,1,0 +2020-05-06,Hyde,North Carolina,37095,1,0 +2020-05-07,Hyde,North Carolina,37095,1,0 +2020-05-08,Hyde,North Carolina,37095,1,0 +2020-05-09,Hyde,North Carolina,37095,1,0 +2020-05-10,Hyde,North Carolina,37095,1,0 +2020-05-11,Hyde,North Carolina,37095,1,0 +2020-05-12,Hyde,North Carolina,37095,1,0 +2020-05-13,Hyde,North Carolina,37095,1,0 +2020-05-14,Hyde,North Carolina,37095,1,0 +2020-05-15,Hyde,North Carolina,37095,1,0 +2020-05-16,Hyde,North Carolina,37095,1,0 +2020-05-17,Hyde,North Carolina,37095,1,0 +2020-05-18,Hyde,North Carolina,37095,1,0 +2020-05-19,Hyde,North Carolina,37095,1,0 +2020-05-20,Hyde,North Carolina,37095,1,0 +2020-05-21,Hyde,North Carolina,37095,1,0 +2020-05-22,Hyde,North Carolina,37095,1,0 +2020-05-23,Hyde,North Carolina,37095,1,0 +2020-05-24,Hyde,North Carolina,37095,1,0 +2020-05-25,Hyde,North Carolina,37095,1,0 +2020-05-26,Hyde,North Carolina,37095,1,0 +2020-05-27,Hyde,North Carolina,37095,1,0 +2020-05-28,Hyde,North Carolina,37095,1,0 +2020-05-29,Hyde,North Carolina,37095,1,0 +2020-05-30,Hyde,North Carolina,37095,1,0 +2020-05-31,Hyde,North Carolina,37095,1,0 +2020-06-01,Hyde,North Carolina,37095,1,0 +2020-06-02,Hyde,North Carolina,37095,1,0 +2020-06-03,Hyde,North Carolina,37095,1,0 +2020-06-04,Hyde,North Carolina,37095,1,0 +2020-06-05,Hyde,North Carolina,37095,2,0 +2020-06-06,Hyde,North Carolina,37095,2,0 +2020-06-07,Hyde,North Carolina,37095,2,0 +2020-06-08,Hyde,North Carolina,37095,2,0 +2020-06-09,Hyde,North Carolina,37095,2,0 +2020-06-10,Hyde,North Carolina,37095,2,0 +2020-06-11,Hyde,North Carolina,37095,2,0 +2020-06-12,Hyde,North Carolina,37095,2,0 +2020-06-13,Hyde,North Carolina,37095,2,0 +2020-06-14,Hyde,North Carolina,37095,3,0 +2020-06-15,Hyde,North Carolina,37095,3,0 +2020-06-16,Hyde,North Carolina,37095,3,0 +2020-06-17,Hyde,North Carolina,37095,3,0 +2020-06-18,Hyde,North Carolina,37095,3,0 +2020-06-19,Hyde,North Carolina,37095,3,0 +2020-06-20,Hyde,North Carolina,37095,6,0 +2020-06-21,Hyde,North Carolina,37095,6,0 +2020-06-22,Hyde,North Carolina,37095,6,0 +2020-06-23,Hyde,North Carolina,37095,6,0 +2020-06-24,Hyde,North Carolina,37095,6,0 +2020-06-25,Hyde,North Carolina,37095,6,0 +2020-06-26,Hyde,North Carolina,37095,6,0 +2020-06-27,Hyde,North Carolina,37095,9,0 +2020-06-28,Hyde,North Carolina,37095,10,0 +2020-06-29,Hyde,North Carolina,37095,11,0 +2020-06-30,Hyde,North Carolina,37095,11,0 +2020-07-01,Hyde,North Carolina,37095,12,0 +2020-07-02,Hyde,North Carolina,37095,12,0 +2020-07-03,Hyde,North Carolina,37095,13,0 +2020-07-04,Hyde,North Carolina,37095,13,0 +2020-07-05,Hyde,North Carolina,37095,17,0 +2020-07-06,Hyde,North Carolina,37095,20,0 +2020-07-07,Hyde,North Carolina,37095,20,0 +2020-07-08,Hyde,North Carolina,37095,23,0 +2020-07-09,Hyde,North Carolina,37095,25,0 +2020-03-17,Iredell,North Carolina,37097,1,0 +2020-03-18,Iredell,North Carolina,37097,1,0 +2020-03-19,Iredell,North Carolina,37097,2,0 +2020-03-20,Iredell,North Carolina,37097,2,0 +2020-03-21,Iredell,North Carolina,37097,2,0 +2020-03-22,Iredell,North Carolina,37097,6,0 +2020-03-23,Iredell,North Carolina,37097,6,0 +2020-03-24,Iredell,North Carolina,37097,9,0 +2020-03-25,Iredell,North Carolina,37097,11,0 +2020-03-26,Iredell,North Carolina,37097,13,0 +2020-03-27,Iredell,North Carolina,37097,15,0 +2020-03-28,Iredell,North Carolina,37097,18,0 +2020-03-29,Iredell,North Carolina,37097,21,0 +2020-03-30,Iredell,North Carolina,37097,25,0 +2020-03-31,Iredell,North Carolina,37097,25,0 +2020-04-01,Iredell,North Carolina,37097,25,0 +2020-04-02,Iredell,North Carolina,37097,31,0 +2020-04-03,Iredell,North Carolina,37097,36,0 +2020-04-04,Iredell,North Carolina,37097,42,0 +2020-04-05,Iredell,North Carolina,37097,44,0 +2020-04-06,Iredell,North Carolina,37097,49,0 +2020-04-07,Iredell,North Carolina,37097,54,0 +2020-04-08,Iredell,North Carolina,37097,57,1 +2020-04-09,Iredell,North Carolina,37097,60,1 +2020-04-10,Iredell,North Carolina,37097,63,1 +2020-04-11,Iredell,North Carolina,37097,71,1 +2020-04-12,Iredell,North Carolina,37097,70,1 +2020-04-13,Iredell,North Carolina,37097,70,1 +2020-04-14,Iredell,North Carolina,37097,71,2 +2020-04-15,Iredell,North Carolina,37097,70,2 +2020-04-16,Iredell,North Carolina,37097,70,2 +2020-04-17,Iredell,North Carolina,37097,75,2 +2020-04-18,Iredell,North Carolina,37097,79,2 +2020-04-19,Iredell,North Carolina,37097,80,2 +2020-04-20,Iredell,North Carolina,37097,82,2 +2020-04-21,Iredell,North Carolina,37097,86,2 +2020-04-22,Iredell,North Carolina,37097,89,2 +2020-04-23,Iredell,North Carolina,37097,90,2 +2020-04-24,Iredell,North Carolina,37097,93,3 +2020-04-25,Iredell,North Carolina,37097,97,3 +2020-04-26,Iredell,North Carolina,37097,97,3 +2020-04-27,Iredell,North Carolina,37097,97,3 +2020-04-28,Iredell,North Carolina,37097,102,5 +2020-04-29,Iredell,North Carolina,37097,105,5 +2020-04-30,Iredell,North Carolina,37097,111,5 +2020-05-01,Iredell,North Carolina,37097,112,5 +2020-05-02,Iredell,North Carolina,37097,119,5 +2020-05-03,Iredell,North Carolina,37097,119,5 +2020-05-04,Iredell,North Carolina,37097,120,5 +2020-05-05,Iredell,North Carolina,37097,128,5 +2020-05-06,Iredell,North Carolina,37097,136,5 +2020-05-07,Iredell,North Carolina,37097,137,5 +2020-05-08,Iredell,North Carolina,37097,141,5 +2020-05-09,Iredell,North Carolina,37097,147,5 +2020-05-10,Iredell,North Carolina,37097,151,5 +2020-05-11,Iredell,North Carolina,37097,153,5 +2020-05-12,Iredell,North Carolina,37097,158,5 +2020-05-13,Iredell,North Carolina,37097,162,5 +2020-05-14,Iredell,North Carolina,37097,166,5 +2020-05-15,Iredell,North Carolina,37097,170,5 +2020-05-16,Iredell,North Carolina,37097,181,5 +2020-05-17,Iredell,North Carolina,37097,188,5 +2020-05-18,Iredell,North Carolina,37097,192,5 +2020-05-19,Iredell,North Carolina,37097,199,5 +2020-05-20,Iredell,North Carolina,37097,202,5 +2020-05-21,Iredell,North Carolina,37097,206,5 +2020-05-22,Iredell,North Carolina,37097,212,5 +2020-05-23,Iredell,North Carolina,37097,219,5 +2020-05-24,Iredell,North Carolina,37097,228,5 +2020-05-25,Iredell,North Carolina,37097,230,5 +2020-05-26,Iredell,North Carolina,37097,230,5 +2020-05-27,Iredell,North Carolina,37097,236,5 +2020-05-28,Iredell,North Carolina,37097,239,5 +2020-05-29,Iredell,North Carolina,37097,244,5 +2020-05-30,Iredell,North Carolina,37097,254,5 +2020-05-31,Iredell,North Carolina,37097,259,5 +2020-06-01,Iredell,North Carolina,37097,264,5 +2020-06-02,Iredell,North Carolina,37097,273,5 +2020-06-03,Iredell,North Carolina,37097,280,5 +2020-06-04,Iredell,North Carolina,37097,289,5 +2020-06-05,Iredell,North Carolina,37097,301,5 +2020-06-06,Iredell,North Carolina,37097,325,5 +2020-06-07,Iredell,North Carolina,37097,332,5 +2020-06-08,Iredell,North Carolina,37097,348,5 +2020-06-09,Iredell,North Carolina,37097,354,5 +2020-06-10,Iredell,North Carolina,37097,363,5 +2020-06-11,Iredell,North Carolina,37097,378,5 +2020-06-12,Iredell,North Carolina,37097,404,5 +2020-06-13,Iredell,North Carolina,37097,419,5 +2020-06-14,Iredell,North Carolina,37097,441,5 +2020-06-15,Iredell,North Carolina,37097,446,5 +2020-06-16,Iredell,North Carolina,37097,454,5 +2020-06-17,Iredell,North Carolina,37097,475,6 +2020-06-18,Iredell,North Carolina,37097,479,6 +2020-06-19,Iredell,North Carolina,37097,523,6 +2020-06-20,Iredell,North Carolina,37097,529,7 +2020-06-21,Iredell,North Carolina,37097,540,7 +2020-06-22,Iredell,North Carolina,37097,569,7 +2020-06-23,Iredell,North Carolina,37097,575,7 +2020-06-24,Iredell,North Carolina,37097,593,7 +2020-06-25,Iredell,North Carolina,37097,624,7 +2020-06-26,Iredell,North Carolina,37097,672,7 +2020-06-27,Iredell,North Carolina,37097,707,7 +2020-06-28,Iredell,North Carolina,37097,731,7 +2020-06-29,Iredell,North Carolina,37097,748,7 +2020-06-30,Iredell,North Carolina,37097,764,7 +2020-07-01,Iredell,North Carolina,37097,785,7 +2020-07-02,Iredell,North Carolina,37097,817,7 +2020-07-03,Iredell,North Carolina,37097,873,7 +2020-07-04,Iredell,North Carolina,37097,869,7 +2020-07-05,Iredell,North Carolina,37097,890,7 +2020-07-06,Iredell,North Carolina,37097,918,7 +2020-07-07,Iredell,North Carolina,37097,945,7 +2020-07-08,Iredell,North Carolina,37097,956,9 +2020-07-09,Iredell,North Carolina,37097,985,10 +2020-04-13,Jackson,North Carolina,37099,2,0 +2020-04-14,Jackson,North Carolina,37099,2,0 +2020-04-15,Jackson,North Carolina,37099,2,0 +2020-04-16,Jackson,North Carolina,37099,2,0 +2020-04-17,Jackson,North Carolina,37099,2,0 +2020-04-18,Jackson,North Carolina,37099,3,0 +2020-04-19,Jackson,North Carolina,37099,3,0 +2020-04-20,Jackson,North Carolina,37099,3,0 +2020-04-21,Jackson,North Carolina,37099,3,0 +2020-04-22,Jackson,North Carolina,37099,3,0 +2020-04-23,Jackson,North Carolina,37099,3,0 +2020-04-24,Jackson,North Carolina,37099,3,0 +2020-04-25,Jackson,North Carolina,37099,4,0 +2020-04-26,Jackson,North Carolina,37099,5,0 +2020-04-27,Jackson,North Carolina,37099,7,0 +2020-04-28,Jackson,North Carolina,37099,10,0 +2020-04-29,Jackson,North Carolina,37099,10,0 +2020-04-30,Jackson,North Carolina,37099,13,0 +2020-05-01,Jackson,North Carolina,37099,15,0 +2020-05-02,Jackson,North Carolina,37099,16,0 +2020-05-03,Jackson,North Carolina,37099,16,0 +2020-05-04,Jackson,North Carolina,37099,16,0 +2020-05-05,Jackson,North Carolina,37099,18,1 +2020-05-06,Jackson,North Carolina,37099,20,1 +2020-05-07,Jackson,North Carolina,37099,20,1 +2020-05-08,Jackson,North Carolina,37099,21,1 +2020-05-09,Jackson,North Carolina,37099,21,1 +2020-05-10,Jackson,North Carolina,37099,21,1 +2020-05-11,Jackson,North Carolina,37099,21,1 +2020-05-12,Jackson,North Carolina,37099,21,1 +2020-05-13,Jackson,North Carolina,37099,22,1 +2020-05-14,Jackson,North Carolina,37099,22,1 +2020-05-15,Jackson,North Carolina,37099,22,1 +2020-05-16,Jackson,North Carolina,37099,24,1 +2020-05-17,Jackson,North Carolina,37099,24,1 +2020-05-18,Jackson,North Carolina,37099,24,1 +2020-05-19,Jackson,North Carolina,37099,24,1 +2020-05-20,Jackson,North Carolina,37099,24,1 +2020-05-21,Jackson,North Carolina,37099,25,1 +2020-05-22,Jackson,North Carolina,37099,24,1 +2020-05-23,Jackson,North Carolina,37099,25,1 +2020-05-24,Jackson,North Carolina,37099,25,1 +2020-05-25,Jackson,North Carolina,37099,25,1 +2020-05-26,Jackson,North Carolina,37099,25,1 +2020-05-27,Jackson,North Carolina,37099,26,1 +2020-05-28,Jackson,North Carolina,37099,26,1 +2020-05-29,Jackson,North Carolina,37099,29,1 +2020-05-30,Jackson,North Carolina,37099,32,1 +2020-05-31,Jackson,North Carolina,37099,32,1 +2020-06-01,Jackson,North Carolina,37099,34,1 +2020-06-02,Jackson,North Carolina,37099,34,1 +2020-06-03,Jackson,North Carolina,37099,36,1 +2020-06-04,Jackson,North Carolina,37099,36,1 +2020-06-05,Jackson,North Carolina,37099,38,1 +2020-06-06,Jackson,North Carolina,37099,44,1 +2020-06-07,Jackson,North Carolina,37099,47,1 +2020-06-08,Jackson,North Carolina,37099,50,1 +2020-06-09,Jackson,North Carolina,37099,55,1 +2020-06-10,Jackson,North Carolina,37099,55,1 +2020-06-11,Jackson,North Carolina,37099,55,1 +2020-06-12,Jackson,North Carolina,37099,59,1 +2020-06-13,Jackson,North Carolina,37099,57,1 +2020-06-14,Jackson,North Carolina,37099,58,1 +2020-06-15,Jackson,North Carolina,37099,58,1 +2020-06-16,Jackson,North Carolina,37099,59,1 +2020-06-17,Jackson,North Carolina,37099,61,1 +2020-06-18,Jackson,North Carolina,37099,64,1 +2020-06-19,Jackson,North Carolina,37099,65,1 +2020-06-20,Jackson,North Carolina,37099,66,1 +2020-06-21,Jackson,North Carolina,37099,71,1 +2020-06-22,Jackson,North Carolina,37099,71,1 +2020-06-23,Jackson,North Carolina,37099,77,1 +2020-06-24,Jackson,North Carolina,37099,78,1 +2020-06-25,Jackson,North Carolina,37099,83,1 +2020-06-26,Jackson,North Carolina,37099,89,1 +2020-06-27,Jackson,North Carolina,37099,91,1 +2020-06-28,Jackson,North Carolina,37099,96,1 +2020-06-29,Jackson,North Carolina,37099,105,1 +2020-06-30,Jackson,North Carolina,37099,113,1 +2020-07-01,Jackson,North Carolina,37099,117,1 +2020-07-02,Jackson,North Carolina,37099,125,1 +2020-07-03,Jackson,North Carolina,37099,126,1 +2020-07-04,Jackson,North Carolina,37099,127,1 +2020-07-05,Jackson,North Carolina,37099,138,1 +2020-07-06,Jackson,North Carolina,37099,141,1 +2020-07-07,Jackson,North Carolina,37099,147,1 +2020-07-08,Jackson,North Carolina,37099,154,1 +2020-07-09,Jackson,North Carolina,37099,157,1 +2020-03-12,Johnston,North Carolina,37101,1,0 +2020-03-13,Johnston,North Carolina,37101,1,0 +2020-03-14,Johnston,North Carolina,37101,2,0 +2020-03-15,Johnston,North Carolina,37101,2,0 +2020-03-16,Johnston,North Carolina,37101,2,0 +2020-03-17,Johnston,North Carolina,37101,2,0 +2020-03-18,Johnston,North Carolina,37101,2,0 +2020-03-19,Johnston,North Carolina,37101,2,0 +2020-03-20,Johnston,North Carolina,37101,2,0 +2020-03-21,Johnston,North Carolina,37101,2,0 +2020-03-22,Johnston,North Carolina,37101,3,0 +2020-03-23,Johnston,North Carolina,37101,3,0 +2020-03-24,Johnston,North Carolina,37101,4,0 +2020-03-25,Johnston,North Carolina,37101,8,0 +2020-03-26,Johnston,North Carolina,37101,9,0 +2020-03-27,Johnston,North Carolina,37101,9,1 +2020-03-28,Johnston,North Carolina,37101,9,1 +2020-03-29,Johnston,North Carolina,37101,10,1 +2020-03-30,Johnston,North Carolina,37101,11,1 +2020-03-31,Johnston,North Carolina,37101,15,1 +2020-04-01,Johnston,North Carolina,37101,17,1 +2020-04-02,Johnston,North Carolina,37101,20,1 +2020-04-03,Johnston,North Carolina,37101,24,1 +2020-04-04,Johnston,North Carolina,37101,26,2 +2020-04-05,Johnston,North Carolina,37101,32,3 +2020-04-06,Johnston,North Carolina,37101,37,3 +2020-04-07,Johnston,North Carolina,37101,47,4 +2020-04-08,Johnston,North Carolina,37101,51,4 +2020-04-09,Johnston,North Carolina,37101,57,5 +2020-04-10,Johnston,North Carolina,37101,80,4 +2020-04-11,Johnston,North Carolina,37101,92,4 +2020-04-12,Johnston,North Carolina,37101,97,4 +2020-04-13,Johnston,North Carolina,37101,97,4 +2020-04-14,Johnston,North Carolina,37101,104,8 +2020-04-15,Johnston,North Carolina,37101,106,9 +2020-04-16,Johnston,North Carolina,37101,109,9 +2020-04-17,Johnston,North Carolina,37101,118,9 +2020-04-18,Johnston,North Carolina,37101,121,9 +2020-04-19,Johnston,North Carolina,37101,123,9 +2020-04-20,Johnston,North Carolina,37101,123,9 +2020-04-21,Johnston,North Carolina,37101,122,9 +2020-04-22,Johnston,North Carolina,37101,122,10 +2020-04-23,Johnston,North Carolina,37101,121,10 +2020-04-24,Johnston,North Carolina,37101,125,10 +2020-04-25,Johnston,North Carolina,37101,127,10 +2020-04-26,Johnston,North Carolina,37101,135,10 +2020-04-27,Johnston,North Carolina,37101,137,10 +2020-04-28,Johnston,North Carolina,37101,140,12 +2020-04-29,Johnston,North Carolina,37101,147,12 +2020-04-30,Johnston,North Carolina,37101,150,12 +2020-05-01,Johnston,North Carolina,37101,159,12 +2020-05-02,Johnston,North Carolina,37101,162,15 +2020-05-03,Johnston,North Carolina,37101,164,15 +2020-05-04,Johnston,North Carolina,37101,166,16 +2020-05-05,Johnston,North Carolina,37101,173,17 +2020-05-06,Johnston,North Carolina,37101,188,17 +2020-05-07,Johnston,North Carolina,37101,189,17 +2020-05-08,Johnston,North Carolina,37101,191,17 +2020-05-09,Johnston,North Carolina,37101,201,17 +2020-05-10,Johnston,North Carolina,37101,205,17 +2020-05-11,Johnston,North Carolina,37101,209,18 +2020-05-12,Johnston,North Carolina,37101,217,19 +2020-05-13,Johnston,North Carolina,37101,220,19 +2020-05-14,Johnston,North Carolina,37101,228,19 +2020-05-15,Johnston,North Carolina,37101,233,19 +2020-05-16,Johnston,North Carolina,37101,234,19 +2020-05-17,Johnston,North Carolina,37101,247,19 +2020-05-18,Johnston,North Carolina,37101,259,19 +2020-05-19,Johnston,North Carolina,37101,269,19 +2020-05-20,Johnston,North Carolina,37101,276,19 +2020-05-21,Johnston,North Carolina,37101,290,20 +2020-05-22,Johnston,North Carolina,37101,305,20 +2020-05-23,Johnston,North Carolina,37101,320,20 +2020-05-24,Johnston,North Carolina,37101,330,20 +2020-05-25,Johnston,North Carolina,37101,351,20 +2020-05-26,Johnston,North Carolina,37101,361,20 +2020-05-27,Johnston,North Carolina,37101,365,20 +2020-05-28,Johnston,North Carolina,37101,408,21 +2020-05-29,Johnston,North Carolina,37101,428,21 +2020-05-30,Johnston,North Carolina,37101,440,21 +2020-05-31,Johnston,North Carolina,37101,456,21 +2020-06-01,Johnston,North Carolina,37101,466,21 +2020-06-02,Johnston,North Carolina,37101,494,22 +2020-06-03,Johnston,North Carolina,37101,513,23 +2020-06-04,Johnston,North Carolina,37101,552,23 +2020-06-05,Johnston,North Carolina,37101,582,23 +2020-06-06,Johnston,North Carolina,37101,601,23 +2020-06-07,Johnston,North Carolina,37101,620,23 +2020-06-08,Johnston,North Carolina,37101,648,23 +2020-06-09,Johnston,North Carolina,37101,669,23 +2020-06-10,Johnston,North Carolina,37101,677,23 +2020-06-11,Johnston,North Carolina,37101,699,24 +2020-06-12,Johnston,North Carolina,37101,804,25 +2020-06-13,Johnston,North Carolina,37101,804,25 +2020-06-14,Johnston,North Carolina,37101,849,25 +2020-06-15,Johnston,North Carolina,37101,903,25 +2020-06-16,Johnston,North Carolina,37101,935,25 +2020-06-17,Johnston,North Carolina,37101,972,26 +2020-06-18,Johnston,North Carolina,37101,1000,26 +2020-06-19,Johnston,North Carolina,37101,1037,26 +2020-06-20,Johnston,North Carolina,37101,1058,26 +2020-06-21,Johnston,North Carolina,37101,1111,26 +2020-06-22,Johnston,North Carolina,37101,1178,28 +2020-06-23,Johnston,North Carolina,37101,1208,29 +2020-06-24,Johnston,North Carolina,37101,1248,29 +2020-06-25,Johnston,North Carolina,37101,1284,29 +2020-06-26,Johnston,North Carolina,37101,1344,29 +2020-06-27,Johnston,North Carolina,37101,1346,29 +2020-06-28,Johnston,North Carolina,37101,1393,29 +2020-06-29,Johnston,North Carolina,37101,1475,31 +2020-06-30,Johnston,North Carolina,37101,1541,32 +2020-07-01,Johnston,North Carolina,37101,1565,32 +2020-07-02,Johnston,North Carolina,37101,1634,33 +2020-07-03,Johnston,North Carolina,37101,1641,33 +2020-07-04,Johnston,North Carolina,37101,1685,33 +2020-07-05,Johnston,North Carolina,37101,1715,33 +2020-07-06,Johnston,North Carolina,37101,1786,33 +2020-07-07,Johnston,North Carolina,37101,1821,33 +2020-07-08,Johnston,North Carolina,37101,1862,34 +2020-07-09,Johnston,North Carolina,37101,1891,35 +2020-04-09,Jones,North Carolina,37103,3,0 +2020-04-10,Jones,North Carolina,37103,3,0 +2020-04-11,Jones,North Carolina,37103,6,1 +2020-04-12,Jones,North Carolina,37103,7,1 +2020-04-13,Jones,North Carolina,37103,7,1 +2020-04-14,Jones,North Carolina,37103,7,1 +2020-04-15,Jones,North Carolina,37103,8,1 +2020-04-16,Jones,North Carolina,37103,8,1 +2020-04-17,Jones,North Carolina,37103,8,1 +2020-04-18,Jones,North Carolina,37103,8,1 +2020-04-19,Jones,North Carolina,37103,8,1 +2020-04-20,Jones,North Carolina,37103,8,1 +2020-04-21,Jones,North Carolina,37103,9,1 +2020-04-22,Jones,North Carolina,37103,9,2 +2020-04-23,Jones,North Carolina,37103,9,2 +2020-04-24,Jones,North Carolina,37103,9,2 +2020-04-25,Jones,North Carolina,37103,11,2 +2020-04-26,Jones,North Carolina,37103,11,2 +2020-04-27,Jones,North Carolina,37103,12,2 +2020-04-28,Jones,North Carolina,37103,12,2 +2020-04-29,Jones,North Carolina,37103,12,2 +2020-04-30,Jones,North Carolina,37103,14,2 +2020-05-01,Jones,North Carolina,37103,15,2 +2020-05-02,Jones,North Carolina,37103,17,2 +2020-05-03,Jones,North Carolina,37103,18,2 +2020-05-04,Jones,North Carolina,37103,18,2 +2020-05-05,Jones,North Carolina,37103,18,2 +2020-05-06,Jones,North Carolina,37103,19,2 +2020-05-07,Jones,North Carolina,37103,19,2 +2020-05-08,Jones,North Carolina,37103,18,2 +2020-05-09,Jones,North Carolina,37103,18,2 +2020-05-10,Jones,North Carolina,37103,18,2 +2020-05-11,Jones,North Carolina,37103,20,2 +2020-05-12,Jones,North Carolina,37103,19,2 +2020-05-13,Jones,North Carolina,37103,20,2 +2020-05-14,Jones,North Carolina,37103,21,2 +2020-05-15,Jones,North Carolina,37103,21,2 +2020-05-16,Jones,North Carolina,37103,21,2 +2020-05-17,Jones,North Carolina,37103,21,2 +2020-05-18,Jones,North Carolina,37103,23,2 +2020-05-19,Jones,North Carolina,37103,22,2 +2020-05-20,Jones,North Carolina,37103,22,2 +2020-05-21,Jones,North Carolina,37103,22,2 +2020-05-22,Jones,North Carolina,37103,26,2 +2020-05-23,Jones,North Carolina,37103,28,2 +2020-05-24,Jones,North Carolina,37103,26,2 +2020-05-25,Jones,North Carolina,37103,26,2 +2020-05-26,Jones,North Carolina,37103,26,2 +2020-05-27,Jones,North Carolina,37103,26,3 +2020-05-28,Jones,North Carolina,37103,26,3 +2020-05-29,Jones,North Carolina,37103,26,3 +2020-05-30,Jones,North Carolina,37103,26,3 +2020-05-31,Jones,North Carolina,37103,26,3 +2020-06-01,Jones,North Carolina,37103,26,3 +2020-06-02,Jones,North Carolina,37103,26,3 +2020-06-03,Jones,North Carolina,37103,26,3 +2020-06-04,Jones,North Carolina,37103,26,3 +2020-06-05,Jones,North Carolina,37103,26,3 +2020-06-06,Jones,North Carolina,37103,26,3 +2020-06-07,Jones,North Carolina,37103,26,3 +2020-06-08,Jones,North Carolina,37103,26,3 +2020-06-09,Jones,North Carolina,37103,26,3 +2020-06-10,Jones,North Carolina,37103,26,3 +2020-06-11,Jones,North Carolina,37103,26,3 +2020-06-12,Jones,North Carolina,37103,26,3 +2020-06-13,Jones,North Carolina,37103,26,3 +2020-06-14,Jones,North Carolina,37103,27,3 +2020-06-15,Jones,North Carolina,37103,27,3 +2020-06-16,Jones,North Carolina,37103,26,3 +2020-06-17,Jones,North Carolina,37103,26,3 +2020-06-18,Jones,North Carolina,37103,26,3 +2020-06-19,Jones,North Carolina,37103,26,3 +2020-06-20,Jones,North Carolina,37103,26,3 +2020-06-21,Jones,North Carolina,37103,28,3 +2020-06-22,Jones,North Carolina,37103,28,3 +2020-06-23,Jones,North Carolina,37103,29,3 +2020-06-24,Jones,North Carolina,37103,29,3 +2020-06-25,Jones,North Carolina,37103,29,3 +2020-06-26,Jones,North Carolina,37103,32,3 +2020-06-27,Jones,North Carolina,37103,32,3 +2020-06-28,Jones,North Carolina,37103,35,3 +2020-06-29,Jones,North Carolina,37103,35,3 +2020-06-30,Jones,North Carolina,37103,35,3 +2020-07-01,Jones,North Carolina,37103,35,3 +2020-07-02,Jones,North Carolina,37103,35,3 +2020-07-03,Jones,North Carolina,37103,36,3 +2020-07-04,Jones,North Carolina,37103,36,3 +2020-07-05,Jones,North Carolina,37103,36,3 +2020-07-06,Jones,North Carolina,37103,38,3 +2020-07-07,Jones,North Carolina,37103,39,3 +2020-07-08,Jones,North Carolina,37103,37,3 +2020-07-09,Jones,North Carolina,37103,38,3 +2020-03-22,Lee,North Carolina,37105,1,0 +2020-03-23,Lee,North Carolina,37105,1,0 +2020-03-24,Lee,North Carolina,37105,1,0 +2020-03-25,Lee,North Carolina,37105,1,0 +2020-03-26,Lee,North Carolina,37105,1,0 +2020-03-27,Lee,North Carolina,37105,2,0 +2020-03-28,Lee,North Carolina,37105,2,0 +2020-03-29,Lee,North Carolina,37105,2,0 +2020-03-30,Lee,North Carolina,37105,2,0 +2020-03-31,Lee,North Carolina,37105,2,0 +2020-04-01,Lee,North Carolina,37105,3,0 +2020-04-02,Lee,North Carolina,37105,3,0 +2020-04-03,Lee,North Carolina,37105,3,0 +2020-04-04,Lee,North Carolina,37105,3,0 +2020-04-05,Lee,North Carolina,37105,3,0 +2020-04-06,Lee,North Carolina,37105,3,0 +2020-04-07,Lee,North Carolina,37105,4,0 +2020-04-08,Lee,North Carolina,37105,5,0 +2020-04-09,Lee,North Carolina,37105,4,0 +2020-04-10,Lee,North Carolina,37105,4,0 +2020-04-11,Lee,North Carolina,37105,8,0 +2020-04-12,Lee,North Carolina,37105,15,0 +2020-04-13,Lee,North Carolina,37105,12,0 +2020-04-14,Lee,North Carolina,37105,14,0 +2020-04-15,Lee,North Carolina,37105,16,0 +2020-04-16,Lee,North Carolina,37105,18,0 +2020-04-17,Lee,North Carolina,37105,21,0 +2020-04-18,Lee,North Carolina,37105,30,0 +2020-04-19,Lee,North Carolina,37105,34,0 +2020-04-20,Lee,North Carolina,37105,38,0 +2020-04-21,Lee,North Carolina,37105,44,0 +2020-04-22,Lee,North Carolina,37105,49,0 +2020-04-23,Lee,North Carolina,37105,65,0 +2020-04-24,Lee,North Carolina,37105,81,0 +2020-04-25,Lee,North Carolina,37105,101,0 +2020-04-26,Lee,North Carolina,37105,104,0 +2020-04-27,Lee,North Carolina,37105,114,0 +2020-04-28,Lee,North Carolina,37105,127,0 +2020-04-29,Lee,North Carolina,37105,142,0 +2020-04-30,Lee,North Carolina,37105,156,0 +2020-05-01,Lee,North Carolina,37105,169,0 +2020-05-02,Lee,North Carolina,37105,197,1 +2020-05-03,Lee,North Carolina,37105,198,1 +2020-05-04,Lee,North Carolina,37105,202,1 +2020-05-05,Lee,North Carolina,37105,207,1 +2020-05-06,Lee,North Carolina,37105,207,1 +2020-05-07,Lee,North Carolina,37105,229,1 +2020-05-08,Lee,North Carolina,37105,238,1 +2020-05-09,Lee,North Carolina,37105,246,1 +2020-05-10,Lee,North Carolina,37105,268,1 +2020-05-11,Lee,North Carolina,37105,277,1 +2020-05-12,Lee,North Carolina,37105,278,1 +2020-05-13,Lee,North Carolina,37105,285,2 +2020-05-14,Lee,North Carolina,37105,293,3 +2020-05-15,Lee,North Carolina,37105,301,3 +2020-05-16,Lee,North Carolina,37105,308,3 +2020-05-17,Lee,North Carolina,37105,317,3 +2020-05-18,Lee,North Carolina,37105,322,3 +2020-05-19,Lee,North Carolina,37105,333,3 +2020-05-20,Lee,North Carolina,37105,341,3 +2020-05-21,Lee,North Carolina,37105,344,3 +2020-05-22,Lee,North Carolina,37105,350,3 +2020-05-23,Lee,North Carolina,37105,362,3 +2020-05-24,Lee,North Carolina,37105,364,3 +2020-05-25,Lee,North Carolina,37105,372,3 +2020-05-26,Lee,North Carolina,37105,372,3 +2020-05-27,Lee,North Carolina,37105,376,3 +2020-05-28,Lee,North Carolina,37105,396,3 +2020-05-29,Lee,North Carolina,37105,413,4 +2020-05-30,Lee,North Carolina,37105,432,4 +2020-05-31,Lee,North Carolina,37105,455,4 +2020-06-01,Lee,North Carolina,37105,460,4 +2020-06-02,Lee,North Carolina,37105,466,4 +2020-06-03,Lee,North Carolina,37105,481,4 +2020-06-04,Lee,North Carolina,37105,490,4 +2020-06-05,Lee,North Carolina,37105,504,4 +2020-06-06,Lee,North Carolina,37105,515,4 +2020-06-07,Lee,North Carolina,37105,530,4 +2020-06-08,Lee,North Carolina,37105,534,4 +2020-06-09,Lee,North Carolina,37105,541,4 +2020-06-10,Lee,North Carolina,37105,554,4 +2020-06-11,Lee,North Carolina,37105,561,4 +2020-06-12,Lee,North Carolina,37105,574,4 +2020-06-13,Lee,North Carolina,37105,581,5 +2020-06-14,Lee,North Carolina,37105,590,5 +2020-06-15,Lee,North Carolina,37105,596,5 +2020-06-16,Lee,North Carolina,37105,604,6 +2020-06-17,Lee,North Carolina,37105,606,6 +2020-06-18,Lee,North Carolina,37105,625,6 +2020-06-19,Lee,North Carolina,37105,634,7 +2020-06-20,Lee,North Carolina,37105,698,7 +2020-06-21,Lee,North Carolina,37105,717,7 +2020-06-22,Lee,North Carolina,37105,718,7 +2020-06-23,Lee,North Carolina,37105,716,7 +2020-06-24,Lee,North Carolina,37105,731,7 +2020-06-25,Lee,North Carolina,37105,741,7 +2020-06-26,Lee,North Carolina,37105,754,7 +2020-06-27,Lee,North Carolina,37105,770,8 +2020-06-28,Lee,North Carolina,37105,798,8 +2020-06-29,Lee,North Carolina,37105,821,8 +2020-06-30,Lee,North Carolina,37105,823,8 +2020-07-01,Lee,North Carolina,37105,841,8 +2020-07-02,Lee,North Carolina,37105,843,8 +2020-07-03,Lee,North Carolina,37105,856,8 +2020-07-04,Lee,North Carolina,37105,858,8 +2020-07-05,Lee,North Carolina,37105,869,8 +2020-07-06,Lee,North Carolina,37105,871,8 +2020-07-07,Lee,North Carolina,37105,875,8 +2020-07-08,Lee,North Carolina,37105,888,8 +2020-07-09,Lee,North Carolina,37105,901,8 +2020-03-25,Lenoir,North Carolina,37107,1,0 +2020-03-26,Lenoir,North Carolina,37107,3,0 +2020-03-27,Lenoir,North Carolina,37107,3,0 +2020-03-28,Lenoir,North Carolina,37107,3,0 +2020-03-29,Lenoir,North Carolina,37107,3,0 +2020-03-30,Lenoir,North Carolina,37107,3,0 +2020-03-31,Lenoir,North Carolina,37107,3,0 +2020-04-01,Lenoir,North Carolina,37107,3,0 +2020-04-02,Lenoir,North Carolina,37107,3,0 +2020-04-03,Lenoir,North Carolina,37107,5,0 +2020-04-04,Lenoir,North Carolina,37107,6,0 +2020-04-05,Lenoir,North Carolina,37107,7,0 +2020-04-06,Lenoir,North Carolina,37107,8,0 +2020-04-07,Lenoir,North Carolina,37107,10,0 +2020-04-08,Lenoir,North Carolina,37107,11,0 +2020-04-09,Lenoir,North Carolina,37107,12,0 +2020-04-10,Lenoir,North Carolina,37107,13,0 +2020-04-11,Lenoir,North Carolina,37107,14,0 +2020-04-12,Lenoir,North Carolina,37107,14,0 +2020-04-13,Lenoir,North Carolina,37107,15,0 +2020-04-14,Lenoir,North Carolina,37107,14,0 +2020-04-15,Lenoir,North Carolina,37107,14,0 +2020-04-16,Lenoir,North Carolina,37107,16,0 +2020-04-17,Lenoir,North Carolina,37107,17,0 +2020-04-18,Lenoir,North Carolina,37107,18,0 +2020-04-19,Lenoir,North Carolina,37107,21,0 +2020-04-20,Lenoir,North Carolina,37107,21,0 +2020-04-21,Lenoir,North Carolina,37107,26,0 +2020-04-22,Lenoir,North Carolina,37107,27,0 +2020-04-23,Lenoir,North Carolina,37107,30,1 +2020-04-24,Lenoir,North Carolina,37107,37,1 +2020-04-25,Lenoir,North Carolina,37107,43,3 +2020-04-26,Lenoir,North Carolina,37107,43,3 +2020-04-27,Lenoir,North Carolina,37107,45,3 +2020-04-28,Lenoir,North Carolina,37107,56,3 +2020-04-29,Lenoir,North Carolina,37107,60,3 +2020-04-30,Lenoir,North Carolina,37107,65,3 +2020-05-01,Lenoir,North Carolina,37107,68,4 +2020-05-02,Lenoir,North Carolina,37107,82,4 +2020-05-03,Lenoir,North Carolina,37107,81,4 +2020-05-04,Lenoir,North Carolina,37107,84,4 +2020-05-05,Lenoir,North Carolina,37107,90,4 +2020-05-06,Lenoir,North Carolina,37107,91,4 +2020-05-07,Lenoir,North Carolina,37107,97,4 +2020-05-08,Lenoir,North Carolina,37107,105,4 +2020-05-09,Lenoir,North Carolina,37107,113,4 +2020-05-10,Lenoir,North Carolina,37107,118,4 +2020-05-11,Lenoir,North Carolina,37107,122,4 +2020-05-12,Lenoir,North Carolina,37107,124,4 +2020-05-13,Lenoir,North Carolina,37107,125,5 +2020-05-14,Lenoir,North Carolina,37107,134,5 +2020-05-15,Lenoir,North Carolina,37107,139,5 +2020-05-16,Lenoir,North Carolina,37107,147,5 +2020-05-17,Lenoir,North Carolina,37107,153,5 +2020-05-18,Lenoir,North Carolina,37107,158,5 +2020-05-19,Lenoir,North Carolina,37107,160,5 +2020-05-20,Lenoir,North Carolina,37107,164,7 +2020-05-21,Lenoir,North Carolina,37107,170,7 +2020-05-22,Lenoir,North Carolina,37107,175,7 +2020-05-23,Lenoir,North Carolina,37107,182,7 +2020-05-24,Lenoir,North Carolina,37107,187,7 +2020-05-25,Lenoir,North Carolina,37107,193,7 +2020-05-26,Lenoir,North Carolina,37107,193,7 +2020-05-27,Lenoir,North Carolina,37107,194,7 +2020-05-28,Lenoir,North Carolina,37107,197,7 +2020-05-29,Lenoir,North Carolina,37107,209,7 +2020-05-30,Lenoir,North Carolina,37107,215,7 +2020-05-31,Lenoir,North Carolina,37107,216,7 +2020-06-01,Lenoir,North Carolina,37107,217,7 +2020-06-02,Lenoir,North Carolina,37107,217,7 +2020-06-03,Lenoir,North Carolina,37107,219,7 +2020-06-04,Lenoir,North Carolina,37107,220,7 +2020-06-05,Lenoir,North Carolina,37107,227,7 +2020-06-06,Lenoir,North Carolina,37107,233,7 +2020-06-07,Lenoir,North Carolina,37107,235,7 +2020-06-08,Lenoir,North Carolina,37107,241,7 +2020-06-09,Lenoir,North Carolina,37107,254,8 +2020-06-10,Lenoir,North Carolina,37107,261,8 +2020-06-11,Lenoir,North Carolina,37107,266,8 +2020-06-12,Lenoir,North Carolina,37107,277,8 +2020-06-13,Lenoir,North Carolina,37107,286,8 +2020-06-14,Lenoir,North Carolina,37107,291,8 +2020-06-15,Lenoir,North Carolina,37107,298,8 +2020-06-16,Lenoir,North Carolina,37107,303,10 +2020-06-17,Lenoir,North Carolina,37107,305,10 +2020-06-18,Lenoir,North Carolina,37107,316,10 +2020-06-19,Lenoir,North Carolina,37107,324,10 +2020-06-20,Lenoir,North Carolina,37107,329,10 +2020-06-21,Lenoir,North Carolina,37107,342,10 +2020-06-22,Lenoir,North Carolina,37107,337,10 +2020-06-23,Lenoir,North Carolina,37107,343,10 +2020-06-24,Lenoir,North Carolina,37107,344,10 +2020-06-25,Lenoir,North Carolina,37107,348,10 +2020-06-26,Lenoir,North Carolina,37107,352,10 +2020-06-27,Lenoir,North Carolina,37107,358,10 +2020-06-28,Lenoir,North Carolina,37107,363,10 +2020-06-29,Lenoir,North Carolina,37107,367,10 +2020-06-30,Lenoir,North Carolina,37107,368,11 +2020-07-01,Lenoir,North Carolina,37107,371,11 +2020-07-02,Lenoir,North Carolina,37107,375,11 +2020-07-03,Lenoir,North Carolina,37107,379,11 +2020-07-04,Lenoir,North Carolina,37107,380,11 +2020-07-05,Lenoir,North Carolina,37107,380,11 +2020-07-06,Lenoir,North Carolina,37107,382,11 +2020-07-07,Lenoir,North Carolina,37107,391,11 +2020-07-08,Lenoir,North Carolina,37107,401,11 +2020-07-09,Lenoir,North Carolina,37107,406,11 +2020-03-18,Lincoln,North Carolina,37109,1,0 +2020-03-19,Lincoln,North Carolina,37109,1,0 +2020-03-20,Lincoln,North Carolina,37109,1,0 +2020-03-21,Lincoln,North Carolina,37109,1,0 +2020-03-22,Lincoln,North Carolina,37109,1,0 +2020-03-23,Lincoln,North Carolina,37109,1,0 +2020-03-24,Lincoln,North Carolina,37109,1,0 +2020-03-25,Lincoln,North Carolina,37109,1,0 +2020-03-26,Lincoln,North Carolina,37109,1,0 +2020-03-27,Lincoln,North Carolina,37109,1,0 +2020-03-28,Lincoln,North Carolina,37109,1,0 +2020-03-29,Lincoln,North Carolina,37109,3,0 +2020-03-30,Lincoln,North Carolina,37109,3,0 +2020-03-31,Lincoln,North Carolina,37109,4,0 +2020-04-01,Lincoln,North Carolina,37109,5,0 +2020-04-02,Lincoln,North Carolina,37109,8,0 +2020-04-03,Lincoln,North Carolina,37109,9,0 +2020-04-04,Lincoln,North Carolina,37109,9,0 +2020-04-05,Lincoln,North Carolina,37109,9,0 +2020-04-06,Lincoln,North Carolina,37109,9,0 +2020-04-07,Lincoln,North Carolina,37109,11,0 +2020-04-08,Lincoln,North Carolina,37109,11,0 +2020-04-09,Lincoln,North Carolina,37109,12,0 +2020-04-10,Lincoln,North Carolina,37109,13,0 +2020-04-11,Lincoln,North Carolina,37109,15,0 +2020-04-12,Lincoln,North Carolina,37109,15,0 +2020-04-13,Lincoln,North Carolina,37109,15,0 +2020-04-14,Lincoln,North Carolina,37109,15,0 +2020-04-15,Lincoln,North Carolina,37109,15,0 +2020-04-16,Lincoln,North Carolina,37109,18,0 +2020-04-17,Lincoln,North Carolina,37109,20,0 +2020-04-18,Lincoln,North Carolina,37109,19,0 +2020-04-19,Lincoln,North Carolina,37109,19,0 +2020-04-20,Lincoln,North Carolina,37109,19,0 +2020-04-21,Lincoln,North Carolina,37109,21,0 +2020-04-22,Lincoln,North Carolina,37109,24,0 +2020-04-23,Lincoln,North Carolina,37109,24,0 +2020-04-24,Lincoln,North Carolina,37109,24,0 +2020-04-25,Lincoln,North Carolina,37109,24,0 +2020-04-26,Lincoln,North Carolina,37109,24,0 +2020-04-27,Lincoln,North Carolina,37109,25,0 +2020-04-28,Lincoln,North Carolina,37109,25,0 +2020-04-29,Lincoln,North Carolina,37109,27,0 +2020-04-30,Lincoln,North Carolina,37109,26,0 +2020-05-01,Lincoln,North Carolina,37109,27,0 +2020-05-02,Lincoln,North Carolina,37109,28,0 +2020-05-03,Lincoln,North Carolina,37109,28,0 +2020-05-04,Lincoln,North Carolina,37109,32,0 +2020-05-05,Lincoln,North Carolina,37109,35,0 +2020-05-06,Lincoln,North Carolina,37109,37,0 +2020-05-07,Lincoln,North Carolina,37109,37,0 +2020-05-08,Lincoln,North Carolina,37109,39,0 +2020-05-09,Lincoln,North Carolina,37109,39,0 +2020-05-10,Lincoln,North Carolina,37109,39,0 +2020-05-11,Lincoln,North Carolina,37109,39,0 +2020-05-12,Lincoln,North Carolina,37109,40,0 +2020-05-13,Lincoln,North Carolina,37109,42,0 +2020-05-14,Lincoln,North Carolina,37109,44,0 +2020-05-15,Lincoln,North Carolina,37109,44,0 +2020-05-16,Lincoln,North Carolina,37109,45,0 +2020-05-17,Lincoln,North Carolina,37109,48,0 +2020-05-18,Lincoln,North Carolina,37109,48,0 +2020-05-19,Lincoln,North Carolina,37109,50,0 +2020-05-20,Lincoln,North Carolina,37109,52,0 +2020-05-21,Lincoln,North Carolina,37109,54,0 +2020-05-22,Lincoln,North Carolina,37109,56,0 +2020-05-23,Lincoln,North Carolina,37109,58,0 +2020-05-24,Lincoln,North Carolina,37109,58,0 +2020-05-25,Lincoln,North Carolina,37109,60,0 +2020-05-26,Lincoln,North Carolina,37109,60,0 +2020-05-27,Lincoln,North Carolina,37109,61,0 +2020-05-28,Lincoln,North Carolina,37109,63,0 +2020-05-29,Lincoln,North Carolina,37109,67,0 +2020-05-30,Lincoln,North Carolina,37109,67,0 +2020-05-31,Lincoln,North Carolina,37109,69,0 +2020-06-01,Lincoln,North Carolina,37109,70,0 +2020-06-02,Lincoln,North Carolina,37109,72,0 +2020-06-03,Lincoln,North Carolina,37109,78,0 +2020-06-04,Lincoln,North Carolina,37109,87,0 +2020-06-05,Lincoln,North Carolina,37109,93,0 +2020-06-06,Lincoln,North Carolina,37109,101,0 +2020-06-07,Lincoln,North Carolina,37109,100,0 +2020-06-08,Lincoln,North Carolina,37109,105,0 +2020-06-09,Lincoln,North Carolina,37109,106,0 +2020-06-10,Lincoln,North Carolina,37109,108,0 +2020-06-11,Lincoln,North Carolina,37109,113,0 +2020-06-12,Lincoln,North Carolina,37109,118,0 +2020-06-13,Lincoln,North Carolina,37109,125,0 +2020-06-14,Lincoln,North Carolina,37109,138,0 +2020-06-15,Lincoln,North Carolina,37109,140,0 +2020-06-16,Lincoln,North Carolina,37109,148,0 +2020-06-17,Lincoln,North Carolina,37109,157,0 +2020-06-18,Lincoln,North Carolina,37109,164,0 +2020-06-19,Lincoln,North Carolina,37109,172,0 +2020-06-20,Lincoln,North Carolina,37109,178,0 +2020-06-21,Lincoln,North Carolina,37109,186,0 +2020-06-22,Lincoln,North Carolina,37109,189,0 +2020-06-23,Lincoln,North Carolina,37109,196,0 +2020-06-24,Lincoln,North Carolina,37109,199,0 +2020-06-25,Lincoln,North Carolina,37109,208,0 +2020-06-26,Lincoln,North Carolina,37109,220,0 +2020-06-27,Lincoln,North Carolina,37109,232,1 +2020-06-28,Lincoln,North Carolina,37109,240,1 +2020-06-29,Lincoln,North Carolina,37109,246,1 +2020-06-30,Lincoln,North Carolina,37109,252,1 +2020-07-01,Lincoln,North Carolina,37109,258,1 +2020-07-02,Lincoln,North Carolina,37109,268,1 +2020-07-03,Lincoln,North Carolina,37109,283,1 +2020-07-04,Lincoln,North Carolina,37109,295,1 +2020-07-05,Lincoln,North Carolina,37109,300,1 +2020-07-06,Lincoln,North Carolina,37109,323,1 +2020-07-07,Lincoln,North Carolina,37109,334,1 +2020-07-08,Lincoln,North Carolina,37109,341,1 +2020-07-09,Lincoln,North Carolina,37109,347,2 +2020-03-25,McDowell,North Carolina,37111,2,0 +2020-03-26,McDowell,North Carolina,37111,2,0 +2020-03-27,McDowell,North Carolina,37111,3,0 +2020-03-28,McDowell,North Carolina,37111,3,0 +2020-03-29,McDowell,North Carolina,37111,4,0 +2020-03-30,McDowell,North Carolina,37111,4,0 +2020-03-31,McDowell,North Carolina,37111,7,0 +2020-04-01,McDowell,North Carolina,37111,7,0 +2020-04-02,McDowell,North Carolina,37111,8,0 +2020-04-03,McDowell,North Carolina,37111,8,0 +2020-04-04,McDowell,North Carolina,37111,8,0 +2020-04-05,McDowell,North Carolina,37111,9,0 +2020-04-06,McDowell,North Carolina,37111,10,0 +2020-04-07,McDowell,North Carolina,37111,10,0 +2020-04-08,McDowell,North Carolina,37111,10,0 +2020-04-09,McDowell,North Carolina,37111,13,0 +2020-04-10,McDowell,North Carolina,37111,16,0 +2020-04-11,McDowell,North Carolina,37111,16,0 +2020-04-12,McDowell,North Carolina,37111,16,0 +2020-04-13,McDowell,North Carolina,37111,16,0 +2020-04-14,McDowell,North Carolina,37111,18,0 +2020-04-15,McDowell,North Carolina,37111,18,0 +2020-04-16,McDowell,North Carolina,37111,18,0 +2020-04-17,McDowell,North Carolina,37111,19,0 +2020-04-18,McDowell,North Carolina,37111,19,0 +2020-04-19,McDowell,North Carolina,37111,19,0 +2020-04-20,McDowell,North Carolina,37111,20,0 +2020-04-21,McDowell,North Carolina,37111,20,0 +2020-04-22,McDowell,North Carolina,37111,20,0 +2020-04-23,McDowell,North Carolina,37111,20,0 +2020-04-24,McDowell,North Carolina,37111,20,0 +2020-04-25,McDowell,North Carolina,37111,21,1 +2020-04-26,McDowell,North Carolina,37111,21,1 +2020-04-27,McDowell,North Carolina,37111,21,1 +2020-04-28,McDowell,North Carolina,37111,22,1 +2020-04-29,McDowell,North Carolina,37111,22,1 +2020-04-30,McDowell,North Carolina,37111,22,1 +2020-05-01,McDowell,North Carolina,37111,25,1 +2020-05-02,McDowell,North Carolina,37111,25,1 +2020-05-03,McDowell,North Carolina,37111,27,1 +2020-05-04,McDowell,North Carolina,37111,27,1 +2020-05-05,McDowell,North Carolina,37111,28,1 +2020-05-06,McDowell,North Carolina,37111,28,1 +2020-05-07,McDowell,North Carolina,37111,28,1 +2020-05-08,McDowell,North Carolina,37111,29,1 +2020-05-09,McDowell,North Carolina,37111,29,1 +2020-05-10,McDowell,North Carolina,37111,29,1 +2020-05-11,McDowell,North Carolina,37111,29,1 +2020-05-12,McDowell,North Carolina,37111,29,1 +2020-05-13,McDowell,North Carolina,37111,29,1 +2020-05-14,McDowell,North Carolina,37111,29,1 +2020-05-15,McDowell,North Carolina,37111,29,1 +2020-05-16,McDowell,North Carolina,37111,30,1 +2020-05-17,McDowell,North Carolina,37111,30,1 +2020-05-18,McDowell,North Carolina,37111,32,1 +2020-05-19,McDowell,North Carolina,37111,32,1 +2020-05-20,McDowell,North Carolina,37111,33,1 +2020-05-21,McDowell,North Carolina,37111,35,1 +2020-05-22,McDowell,North Carolina,37111,35,1 +2020-05-23,McDowell,North Carolina,37111,37,1 +2020-05-24,McDowell,North Carolina,37111,39,1 +2020-05-25,McDowell,North Carolina,37111,51,1 +2020-05-26,McDowell,North Carolina,37111,51,1 +2020-05-27,McDowell,North Carolina,37111,52,1 +2020-05-28,McDowell,North Carolina,37111,52,1 +2020-05-29,McDowell,North Carolina,37111,53,1 +2020-05-30,McDowell,North Carolina,37111,64,1 +2020-05-31,McDowell,North Carolina,37111,73,1 +2020-06-01,McDowell,North Carolina,37111,76,1 +2020-06-02,McDowell,North Carolina,37111,82,1 +2020-06-03,McDowell,North Carolina,37111,73,1 +2020-06-04,McDowell,North Carolina,37111,77,1 +2020-06-05,McDowell,North Carolina,37111,86,1 +2020-06-06,McDowell,North Carolina,37111,95,1 +2020-06-07,McDowell,North Carolina,37111,100,1 +2020-06-08,McDowell,North Carolina,37111,101,1 +2020-06-09,McDowell,North Carolina,37111,101,1 +2020-06-10,McDowell,North Carolina,37111,106,1 +2020-06-11,McDowell,North Carolina,37111,121,1 +2020-06-12,McDowell,North Carolina,37111,129,1 +2020-06-13,McDowell,North Carolina,37111,142,1 +2020-06-14,McDowell,North Carolina,37111,151,1 +2020-06-15,McDowell,North Carolina,37111,159,1 +2020-06-16,McDowell,North Carolina,37111,163,1 +2020-06-17,McDowell,North Carolina,37111,168,1 +2020-06-18,McDowell,North Carolina,37111,172,1 +2020-06-19,McDowell,North Carolina,37111,174,1 +2020-06-20,McDowell,North Carolina,37111,185,1 +2020-06-21,McDowell,North Carolina,37111,197,1 +2020-06-22,McDowell,North Carolina,37111,196,1 +2020-06-23,McDowell,North Carolina,37111,202,1 +2020-06-24,McDowell,North Carolina,37111,206,1 +2020-06-25,McDowell,North Carolina,37111,208,1 +2020-06-26,McDowell,North Carolina,37111,213,1 +2020-06-27,McDowell,North Carolina,37111,220,1 +2020-06-28,McDowell,North Carolina,37111,222,1 +2020-06-29,McDowell,North Carolina,37111,226,1 +2020-06-30,McDowell,North Carolina,37111,235,1 +2020-07-01,McDowell,North Carolina,37111,237,1 +2020-07-02,McDowell,North Carolina,37111,245,2 +2020-07-03,McDowell,North Carolina,37111,259,2 +2020-07-04,McDowell,North Carolina,37111,264,2 +2020-07-05,McDowell,North Carolina,37111,267,2 +2020-07-06,McDowell,North Carolina,37111,271,2 +2020-07-07,McDowell,North Carolina,37111,280,2 +2020-07-08,McDowell,North Carolina,37111,292,2 +2020-07-09,McDowell,North Carolina,37111,299,2 +2020-04-02,Macon,North Carolina,37113,1,0 +2020-04-03,Macon,North Carolina,37113,1,0 +2020-04-04,Macon,North Carolina,37113,1,0 +2020-04-05,Macon,North Carolina,37113,1,0 +2020-04-06,Macon,North Carolina,37113,1,0 +2020-04-07,Macon,North Carolina,37113,1,1 +2020-04-08,Macon,North Carolina,37113,1,1 +2020-04-09,Macon,North Carolina,37113,2,1 +2020-04-10,Macon,North Carolina,37113,2,1 +2020-04-11,Macon,North Carolina,37113,2,1 +2020-04-12,Macon,North Carolina,37113,2,1 +2020-04-13,Macon,North Carolina,37113,2,1 +2020-04-14,Macon,North Carolina,37113,2,1 +2020-04-15,Macon,North Carolina,37113,2,1 +2020-04-16,Macon,North Carolina,37113,2,1 +2020-04-17,Macon,North Carolina,37113,2,1 +2020-04-18,Macon,North Carolina,37113,2,1 +2020-04-19,Macon,North Carolina,37113,2,1 +2020-04-20,Macon,North Carolina,37113,2,1 +2020-04-21,Macon,North Carolina,37113,2,1 +2020-04-22,Macon,North Carolina,37113,2,1 +2020-04-23,Macon,North Carolina,37113,2,1 +2020-04-24,Macon,North Carolina,37113,2,1 +2020-04-25,Macon,North Carolina,37113,2,1 +2020-04-26,Macon,North Carolina,37113,2,1 +2020-04-27,Macon,North Carolina,37113,2,1 +2020-04-28,Macon,North Carolina,37113,2,1 +2020-04-29,Macon,North Carolina,37113,2,1 +2020-04-30,Macon,North Carolina,37113,3,1 +2020-05-01,Macon,North Carolina,37113,3,1 +2020-05-02,Macon,North Carolina,37113,3,1 +2020-05-03,Macon,North Carolina,37113,3,1 +2020-05-04,Macon,North Carolina,37113,3,1 +2020-05-05,Macon,North Carolina,37113,3,1 +2020-05-06,Macon,North Carolina,37113,3,1 +2020-05-07,Macon,North Carolina,37113,3,1 +2020-05-08,Macon,North Carolina,37113,3,1 +2020-05-09,Macon,North Carolina,37113,3,1 +2020-05-10,Macon,North Carolina,37113,3,1 +2020-05-11,Macon,North Carolina,37113,3,1 +2020-05-12,Macon,North Carolina,37113,3,1 +2020-05-13,Macon,North Carolina,37113,3,1 +2020-05-14,Macon,North Carolina,37113,3,1 +2020-05-15,Macon,North Carolina,37113,3,1 +2020-05-16,Macon,North Carolina,37113,4,1 +2020-05-17,Macon,North Carolina,37113,4,1 +2020-05-18,Macon,North Carolina,37113,5,1 +2020-05-19,Macon,North Carolina,37113,5,1 +2020-05-20,Macon,North Carolina,37113,5,1 +2020-05-21,Macon,North Carolina,37113,5,1 +2020-05-22,Macon,North Carolina,37113,7,1 +2020-05-23,Macon,North Carolina,37113,8,1 +2020-05-24,Macon,North Carolina,37113,9,1 +2020-05-25,Macon,North Carolina,37113,18,1 +2020-05-26,Macon,North Carolina,37113,18,1 +2020-05-27,Macon,North Carolina,37113,18,1 +2020-05-28,Macon,North Carolina,37113,19,1 +2020-05-29,Macon,North Carolina,37113,47,1 +2020-05-30,Macon,North Carolina,37113,62,1 +2020-05-31,Macon,North Carolina,37113,70,1 +2020-06-01,Macon,North Carolina,37113,84,1 +2020-06-02,Macon,North Carolina,37113,89,1 +2020-06-03,Macon,North Carolina,37113,89,1 +2020-06-04,Macon,North Carolina,37113,98,1 +2020-06-05,Macon,North Carolina,37113,119,1 +2020-06-06,Macon,North Carolina,37113,120,1 +2020-06-07,Macon,North Carolina,37113,121,1 +2020-06-08,Macon,North Carolina,37113,146,1 +2020-06-09,Macon,North Carolina,37113,157,1 +2020-06-10,Macon,North Carolina,37113,158,1 +2020-06-11,Macon,North Carolina,37113,159,1 +2020-06-12,Macon,North Carolina,37113,178,1 +2020-06-13,Macon,North Carolina,37113,185,1 +2020-06-14,Macon,North Carolina,37113,217,1 +2020-06-15,Macon,North Carolina,37113,231,1 +2020-06-16,Macon,North Carolina,37113,237,1 +2020-06-17,Macon,North Carolina,37113,236,1 +2020-06-18,Macon,North Carolina,37113,235,1 +2020-06-19,Macon,North Carolina,37113,243,1 +2020-06-20,Macon,North Carolina,37113,247,1 +2020-06-21,Macon,North Carolina,37113,252,1 +2020-06-22,Macon,North Carolina,37113,252,1 +2020-06-23,Macon,North Carolina,37113,256,1 +2020-06-24,Macon,North Carolina,37113,259,1 +2020-06-25,Macon,North Carolina,37113,262,1 +2020-06-26,Macon,North Carolina,37113,263,1 +2020-06-27,Macon,North Carolina,37113,266,1 +2020-06-28,Macon,North Carolina,37113,277,1 +2020-06-29,Macon,North Carolina,37113,280,1 +2020-06-30,Macon,North Carolina,37113,282,1 +2020-07-01,Macon,North Carolina,37113,282,1 +2020-07-02,Macon,North Carolina,37113,289,1 +2020-07-03,Macon,North Carolina,37113,288,1 +2020-07-04,Macon,North Carolina,37113,288,1 +2020-07-05,Macon,North Carolina,37113,289,1 +2020-07-06,Macon,North Carolina,37113,291,1 +2020-07-07,Macon,North Carolina,37113,293,1 +2020-07-08,Macon,North Carolina,37113,298,1 +2020-07-09,Macon,North Carolina,37113,315,1 +2020-04-25,Madison,North Carolina,37115,1,0 +2020-04-26,Madison,North Carolina,37115,1,0 +2020-04-27,Madison,North Carolina,37115,1,0 +2020-04-28,Madison,North Carolina,37115,1,0 +2020-04-29,Madison,North Carolina,37115,1,0 +2020-04-30,Madison,North Carolina,37115,1,0 +2020-05-01,Madison,North Carolina,37115,1,0 +2020-05-02,Madison,North Carolina,37115,1,0 +2020-05-03,Madison,North Carolina,37115,1,0 +2020-05-04,Madison,North Carolina,37115,1,0 +2020-05-05,Madison,North Carolina,37115,1,0 +2020-05-06,Madison,North Carolina,37115,1,0 +2020-05-07,Madison,North Carolina,37115,1,0 +2020-05-08,Madison,North Carolina,37115,1,0 +2020-05-09,Madison,North Carolina,37115,1,0 +2020-05-10,Madison,North Carolina,37115,1,0 +2020-05-11,Madison,North Carolina,37115,1,0 +2020-05-12,Madison,North Carolina,37115,1,0 +2020-05-13,Madison,North Carolina,37115,1,0 +2020-05-14,Madison,North Carolina,37115,1,0 +2020-05-15,Madison,North Carolina,37115,1,0 +2020-05-16,Madison,North Carolina,37115,1,0 +2020-05-17,Madison,North Carolina,37115,2,0 +2020-05-18,Madison,North Carolina,37115,2,0 +2020-05-19,Madison,North Carolina,37115,2,0 +2020-05-20,Madison,North Carolina,37115,2,0 +2020-05-21,Madison,North Carolina,37115,4,0 +2020-05-22,Madison,North Carolina,37115,2,0 +2020-05-23,Madison,North Carolina,37115,3,0 +2020-05-24,Madison,North Carolina,37115,2,0 +2020-05-25,Madison,North Carolina,37115,3,0 +2020-05-26,Madison,North Carolina,37115,3,0 +2020-05-27,Madison,North Carolina,37115,3,0 +2020-05-28,Madison,North Carolina,37115,3,0 +2020-05-29,Madison,North Carolina,37115,3,0 +2020-05-30,Madison,North Carolina,37115,3,0 +2020-05-31,Madison,North Carolina,37115,3,0 +2020-06-01,Madison,North Carolina,37115,3,0 +2020-06-02,Madison,North Carolina,37115,3,0 +2020-06-03,Madison,North Carolina,37115,4,0 +2020-06-04,Madison,North Carolina,37115,3,0 +2020-06-05,Madison,North Carolina,37115,3,0 +2020-06-06,Madison,North Carolina,37115,3,0 +2020-06-07,Madison,North Carolina,37115,3,0 +2020-06-08,Madison,North Carolina,37115,3,0 +2020-06-09,Madison,North Carolina,37115,3,0 +2020-06-10,Madison,North Carolina,37115,3,0 +2020-06-11,Madison,North Carolina,37115,4,0 +2020-06-12,Madison,North Carolina,37115,4,0 +2020-06-13,Madison,North Carolina,37115,5,0 +2020-06-14,Madison,North Carolina,37115,5,0 +2020-06-15,Madison,North Carolina,37115,5,0 +2020-06-16,Madison,North Carolina,37115,5,0 +2020-06-17,Madison,North Carolina,37115,5,0 +2020-06-18,Madison,North Carolina,37115,5,0 +2020-06-19,Madison,North Carolina,37115,5,0 +2020-06-20,Madison,North Carolina,37115,6,0 +2020-06-21,Madison,North Carolina,37115,6,0 +2020-06-22,Madison,North Carolina,37115,6,0 +2020-06-23,Madison,North Carolina,37115,7,0 +2020-06-24,Madison,North Carolina,37115,8,0 +2020-06-25,Madison,North Carolina,37115,9,0 +2020-06-26,Madison,North Carolina,37115,9,0 +2020-06-27,Madison,North Carolina,37115,11,0 +2020-06-28,Madison,North Carolina,37115,12,0 +2020-06-29,Madison,North Carolina,37115,13,0 +2020-06-30,Madison,North Carolina,37115,12,0 +2020-07-01,Madison,North Carolina,37115,14,0 +2020-07-02,Madison,North Carolina,37115,13,0 +2020-07-03,Madison,North Carolina,37115,14,0 +2020-07-04,Madison,North Carolina,37115,14,0 +2020-07-05,Madison,North Carolina,37115,16,0 +2020-07-06,Madison,North Carolina,37115,17,0 +2020-07-07,Madison,North Carolina,37115,15,0 +2020-07-08,Madison,North Carolina,37115,15,0 +2020-07-09,Madison,North Carolina,37115,15,0 +2020-03-31,Martin,North Carolina,37117,2,0 +2020-04-01,Martin,North Carolina,37117,2,0 +2020-04-02,Martin,North Carolina,37117,3,0 +2020-04-03,Martin,North Carolina,37117,3,0 +2020-04-04,Martin,North Carolina,37117,3,0 +2020-04-05,Martin,North Carolina,37117,3,0 +2020-04-06,Martin,North Carolina,37117,3,0 +2020-04-07,Martin,North Carolina,37117,4,0 +2020-04-08,Martin,North Carolina,37117,4,0 +2020-04-09,Martin,North Carolina,37117,4,0 +2020-04-10,Martin,North Carolina,37117,5,0 +2020-04-11,Martin,North Carolina,37117,5,0 +2020-04-12,Martin,North Carolina,37117,6,0 +2020-04-13,Martin,North Carolina,37117,6,0 +2020-04-14,Martin,North Carolina,37117,7,0 +2020-04-15,Martin,North Carolina,37117,7,0 +2020-04-16,Martin,North Carolina,37117,7,0 +2020-04-17,Martin,North Carolina,37117,8,0 +2020-04-18,Martin,North Carolina,37117,8,0 +2020-04-19,Martin,North Carolina,37117,9,0 +2020-04-20,Martin,North Carolina,37117,9,0 +2020-04-21,Martin,North Carolina,37117,11,0 +2020-04-22,Martin,North Carolina,37117,11,0 +2020-04-23,Martin,North Carolina,37117,12,0 +2020-04-24,Martin,North Carolina,37117,13,0 +2020-04-25,Martin,North Carolina,37117,15,0 +2020-04-26,Martin,North Carolina,37117,15,0 +2020-04-27,Martin,North Carolina,37117,15,0 +2020-04-28,Martin,North Carolina,37117,16,0 +2020-04-29,Martin,North Carolina,37117,16,0 +2020-04-30,Martin,North Carolina,37117,16,0 +2020-05-01,Martin,North Carolina,37117,16,0 +2020-05-02,Martin,North Carolina,37117,18,0 +2020-05-03,Martin,North Carolina,37117,20,0 +2020-05-04,Martin,North Carolina,37117,21,1 +2020-05-05,Martin,North Carolina,37117,21,1 +2020-05-06,Martin,North Carolina,37117,25,1 +2020-05-07,Martin,North Carolina,37117,27,1 +2020-05-08,Martin,North Carolina,37117,28,1 +2020-05-09,Martin,North Carolina,37117,29,1 +2020-05-10,Martin,North Carolina,37117,29,1 +2020-05-11,Martin,North Carolina,37117,31,1 +2020-05-12,Martin,North Carolina,37117,33,2 +2020-05-13,Martin,North Carolina,37117,33,3 +2020-05-14,Martin,North Carolina,37117,34,4 +2020-05-15,Martin,North Carolina,37117,34,4 +2020-05-16,Martin,North Carolina,37117,35,4 +2020-05-17,Martin,North Carolina,37117,35,4 +2020-05-18,Martin,North Carolina,37117,36,4 +2020-05-19,Martin,North Carolina,37117,37,4 +2020-05-20,Martin,North Carolina,37117,39,4 +2020-05-21,Martin,North Carolina,37117,42,4 +2020-05-22,Martin,North Carolina,37117,48,4 +2020-05-23,Martin,North Carolina,37117,52,4 +2020-05-24,Martin,North Carolina,37117,52,4 +2020-05-25,Martin,North Carolina,37117,54,4 +2020-05-26,Martin,North Carolina,37117,56,4 +2020-05-27,Martin,North Carolina,37117,61,4 +2020-05-28,Martin,North Carolina,37117,62,4 +2020-05-29,Martin,North Carolina,37117,65,4 +2020-05-30,Martin,North Carolina,37117,70,4 +2020-05-31,Martin,North Carolina,37117,72,4 +2020-06-01,Martin,North Carolina,37117,73,4 +2020-06-02,Martin,North Carolina,37117,73,4 +2020-06-03,Martin,North Carolina,37117,73,4 +2020-06-04,Martin,North Carolina,37117,73,4 +2020-06-05,Martin,North Carolina,37117,74,4 +2020-06-06,Martin,North Carolina,37117,77,4 +2020-06-07,Martin,North Carolina,37117,76,4 +2020-06-08,Martin,North Carolina,37117,76,4 +2020-06-09,Martin,North Carolina,37117,78,4 +2020-06-10,Martin,North Carolina,37117,78,4 +2020-06-11,Martin,North Carolina,37117,82,4 +2020-06-12,Martin,North Carolina,37117,88,4 +2020-06-13,Martin,North Carolina,37117,94,4 +2020-06-14,Martin,North Carolina,37117,96,4 +2020-06-15,Martin,North Carolina,37117,100,4 +2020-06-16,Martin,North Carolina,37117,101,4 +2020-06-17,Martin,North Carolina,37117,101,4 +2020-06-18,Martin,North Carolina,37117,103,4 +2020-06-19,Martin,North Carolina,37117,106,4 +2020-06-20,Martin,North Carolina,37117,111,4 +2020-06-21,Martin,North Carolina,37117,112,4 +2020-06-22,Martin,North Carolina,37117,113,4 +2020-06-23,Martin,North Carolina,37117,117,4 +2020-06-24,Martin,North Carolina,37117,119,4 +2020-06-25,Martin,North Carolina,37117,121,4 +2020-06-26,Martin,North Carolina,37117,122,4 +2020-06-27,Martin,North Carolina,37117,120,4 +2020-06-28,Martin,North Carolina,37117,120,4 +2020-06-29,Martin,North Carolina,37117,128,4 +2020-06-30,Martin,North Carolina,37117,131,4 +2020-07-01,Martin,North Carolina,37117,135,4 +2020-07-02,Martin,North Carolina,37117,137,4 +2020-07-03,Martin,North Carolina,37117,140,4 +2020-07-04,Martin,North Carolina,37117,141,4 +2020-07-05,Martin,North Carolina,37117,143,4 +2020-07-06,Martin,North Carolina,37117,145,4 +2020-07-07,Martin,North Carolina,37117,148,4 +2020-07-08,Martin,North Carolina,37117,152,5 +2020-07-09,Martin,North Carolina,37117,157,5 +2020-03-12,Mecklenburg,North Carolina,37119,2,0 +2020-03-13,Mecklenburg,North Carolina,37119,2,0 +2020-03-14,Mecklenburg,North Carolina,37119,2,0 +2020-03-15,Mecklenburg,North Carolina,37119,4,0 +2020-03-16,Mecklenburg,North Carolina,37119,4,0 +2020-03-17,Mecklenburg,North Carolina,37119,7,0 +2020-03-18,Mecklenburg,North Carolina,37119,11,0 +2020-03-19,Mecklenburg,North Carolina,37119,13,0 +2020-03-20,Mecklenburg,North Carolina,37119,28,0 +2020-03-21,Mecklenburg,North Carolina,37119,41,0 +2020-03-22,Mecklenburg,North Carolina,37119,66,0 +2020-03-23,Mecklenburg,North Carolina,37119,80,0 +2020-03-24,Mecklenburg,North Carolina,37119,104,0 +2020-03-25,Mecklenburg,North Carolina,37119,170,0 +2020-03-26,Mecklenburg,North Carolina,37119,181,0 +2020-03-27,Mecklenburg,North Carolina,37119,218,0 +2020-03-28,Mecklenburg,North Carolina,37119,299,0 +2020-03-29,Mecklenburg,North Carolina,37119,336,1 +2020-03-30,Mecklenburg,North Carolina,37119,382,1 +2020-03-31,Mecklenburg,North Carolina,37119,420,1 +2020-04-01,Mecklenburg,North Carolina,37119,444,2 +2020-04-02,Mecklenburg,North Carolina,37119,495,2 +2020-04-03,Mecklenburg,North Carolina,37119,564,2 +2020-04-04,Mecklenburg,North Carolina,37119,635,4 +2020-04-05,Mecklenburg,North Carolina,37119,664,6 +2020-04-06,Mecklenburg,North Carolina,37119,733,7 +2020-04-07,Mecklenburg,North Carolina,37119,810,8 +2020-04-08,Mecklenburg,North Carolina,37119,830,10 +2020-04-09,Mecklenburg,North Carolina,37119,861,10 +2020-04-10,Mecklenburg,North Carolina,37119,906,10 +2020-04-11,Mecklenburg,North Carolina,37119,935,12 +2020-04-12,Mecklenburg,North Carolina,37119,954,12 +2020-04-13,Mecklenburg,North Carolina,37119,970,12 +2020-04-14,Mecklenburg,North Carolina,37119,993,15 +2020-04-15,Mecklenburg,North Carolina,37119,1015,19 +2020-04-16,Mecklenburg,North Carolina,37119,1084,19 +2020-04-17,Mecklenburg,North Carolina,37119,1136,21 +2020-04-18,Mecklenburg,North Carolina,37119,1153,24 +2020-04-19,Mecklenburg,North Carolina,37119,1178,29 +2020-04-20,Mecklenburg,North Carolina,37119,1210,29 +2020-04-21,Mecklenburg,North Carolina,37119,1245,32 +2020-04-22,Mecklenburg,North Carolina,37119,1284,33 +2020-04-23,Mecklenburg,North Carolina,37119,1362,33 +2020-04-24,Mecklenburg,North Carolina,37119,1407,35 +2020-04-25,Mecklenburg,North Carolina,37119,1450,41 +2020-04-26,Mecklenburg,North Carolina,37119,1482,41 +2020-04-27,Mecklenburg,North Carolina,37119,1492,43 +2020-04-28,Mecklenburg,North Carolina,37119,1519,43 +2020-04-29,Mecklenburg,North Carolina,37119,1567,44 +2020-04-30,Mecklenburg,North Carolina,37119,1627,49 +2020-05-01,Mecklenburg,North Carolina,37119,1651,49 +2020-05-02,Mecklenburg,North Carolina,37119,1699,50 +2020-05-03,Mecklenburg,North Carolina,37119,1724,51 +2020-05-04,Mecklenburg,North Carolina,37119,1734,54 +2020-05-05,Mecklenburg,North Carolina,37119,1758,55 +2020-05-06,Mecklenburg,North Carolina,37119,1850,58 +2020-05-07,Mecklenburg,North Carolina,37119,1922,58 +2020-05-08,Mecklenburg,North Carolina,37119,1989,58 +2020-05-09,Mecklenburg,North Carolina,37119,2043,61 +2020-05-10,Mecklenburg,North Carolina,37119,2074,63 +2020-05-11,Mecklenburg,North Carolina,37119,2134,63 +2020-05-12,Mecklenburg,North Carolina,37119,2148,63 +2020-05-13,Mecklenburg,North Carolina,37119,2204,63 +2020-05-14,Mecklenburg,North Carolina,37119,2320,63 +2020-05-15,Mecklenburg,North Carolina,37119,2385,63 +2020-05-16,Mecklenburg,North Carolina,37119,2504,63 +2020-05-17,Mecklenburg,North Carolina,37119,2591,63 +2020-05-18,Mecklenburg,North Carolina,37119,2652,63 +2020-05-19,Mecklenburg,North Carolina,37119,2717,68 +2020-05-20,Mecklenburg,North Carolina,37119,2780,69 +2020-05-21,Mecklenburg,North Carolina,37119,2894,70 +2020-05-22,Mecklenburg,North Carolina,37119,2954,72 +2020-05-23,Mecklenburg,North Carolina,37119,3142,73 +2020-05-24,Mecklenburg,North Carolina,37119,3231,73 +2020-05-25,Mecklenburg,North Carolina,37119,3380,74 +2020-05-26,Mecklenburg,North Carolina,37119,3403,74 +2020-05-27,Mecklenburg,North Carolina,37119,3478,80 +2020-05-28,Mecklenburg,North Carolina,37119,3605,85 +2020-05-29,Mecklenburg,North Carolina,37119,3837,88 +2020-05-30,Mecklenburg,North Carolina,37119,4028,88 +2020-05-31,Mecklenburg,North Carolina,37119,4250,89 +2020-06-01,Mecklenburg,North Carolina,37119,4412,92 +2020-06-02,Mecklenburg,North Carolina,37119,4519,95 +2020-06-03,Mecklenburg,North Carolina,37119,4670,96 +2020-06-04,Mecklenburg,North Carolina,37119,4842,101 +2020-06-05,Mecklenburg,North Carolina,37119,5057,102 +2020-06-06,Mecklenburg,North Carolina,37119,5358,106 +2020-06-07,Mecklenburg,North Carolina,37119,5509,109 +2020-06-08,Mecklenburg,North Carolina,37119,5682,110 +2020-06-09,Mecklenburg,North Carolina,37119,5744,115 +2020-06-10,Mecklenburg,North Carolina,37119,5861,119 +2020-06-11,Mecklenburg,North Carolina,37119,6155,123 +2020-06-12,Mecklenburg,North Carolina,37119,6538,123 +2020-06-13,Mecklenburg,North Carolina,37119,6862,125 +2020-06-14,Mecklenburg,North Carolina,37119,7131,126 +2020-06-15,Mecklenburg,North Carolina,37119,7321,131 +2020-06-16,Mecklenburg,North Carolina,37119,7468,134 +2020-06-17,Mecklenburg,North Carolina,37119,7563,134 +2020-06-18,Mecklenburg,North Carolina,37119,7804,136 +2020-06-19,Mecklenburg,North Carolina,37119,8166,137 +2020-06-20,Mecklenburg,North Carolina,37119,8511,139 +2020-06-21,Mecklenburg,North Carolina,37119,8752,141 +2020-06-22,Mecklenburg,North Carolina,37119,8956,143 +2020-06-23,Mecklenburg,North Carolina,37119,9086,144 +2020-06-24,Mecklenburg,North Carolina,37119,9333,147 +2020-06-25,Mecklenburg,North Carolina,37119,9614,147 +2020-06-26,Mecklenburg,North Carolina,37119,9944,148 +2020-06-27,Mecklenburg,North Carolina,37119,10287,149 +2020-06-28,Mecklenburg,North Carolina,37119,10592,149 +2020-06-29,Mecklenburg,North Carolina,37119,10863,149 +2020-06-30,Mecklenburg,North Carolina,37119,11170,150 +2020-07-01,Mecklenburg,North Carolina,37119,11534,151 +2020-07-02,Mecklenburg,North Carolina,37119,11803,152 +2020-07-03,Mecklenburg,North Carolina,37119,12233,155 +2020-07-04,Mecklenburg,North Carolina,37119,12576,155 +2020-07-05,Mecklenburg,North Carolina,37119,12806,155 +2020-07-06,Mecklenburg,North Carolina,37119,13111,156 +2020-07-07,Mecklenburg,North Carolina,37119,13317,160 +2020-07-08,Mecklenburg,North Carolina,37119,13489,163 +2020-07-09,Mecklenburg,North Carolina,37119,13757,163 +2020-04-02,Mitchell,North Carolina,37121,1,0 +2020-04-03,Mitchell,North Carolina,37121,1,0 +2020-04-04,Mitchell,North Carolina,37121,1,0 +2020-04-05,Mitchell,North Carolina,37121,1,0 +2020-04-06,Mitchell,North Carolina,37121,1,0 +2020-04-07,Mitchell,North Carolina,37121,2,0 +2020-04-08,Mitchell,North Carolina,37121,3,0 +2020-04-09,Mitchell,North Carolina,37121,3,0 +2020-04-10,Mitchell,North Carolina,37121,3,0 +2020-04-11,Mitchell,North Carolina,37121,4,0 +2020-04-12,Mitchell,North Carolina,37121,4,0 +2020-04-13,Mitchell,North Carolina,37121,4,0 +2020-04-14,Mitchell,North Carolina,37121,4,0 +2020-04-15,Mitchell,North Carolina,37121,4,0 +2020-04-16,Mitchell,North Carolina,37121,4,0 +2020-04-17,Mitchell,North Carolina,37121,5,0 +2020-04-18,Mitchell,North Carolina,37121,5,0 +2020-04-19,Mitchell,North Carolina,37121,5,0 +2020-04-20,Mitchell,North Carolina,37121,5,0 +2020-04-21,Mitchell,North Carolina,37121,5,0 +2020-04-22,Mitchell,North Carolina,37121,5,0 +2020-04-23,Mitchell,North Carolina,37121,5,0 +2020-04-24,Mitchell,North Carolina,37121,5,0 +2020-04-25,Mitchell,North Carolina,37121,5,0 +2020-04-26,Mitchell,North Carolina,37121,5,0 +2020-04-27,Mitchell,North Carolina,37121,5,0 +2020-04-28,Mitchell,North Carolina,37121,5,0 +2020-04-29,Mitchell,North Carolina,37121,5,0 +2020-04-30,Mitchell,North Carolina,37121,5,0 +2020-05-01,Mitchell,North Carolina,37121,5,0 +2020-05-02,Mitchell,North Carolina,37121,5,0 +2020-05-03,Mitchell,North Carolina,37121,5,0 +2020-05-04,Mitchell,North Carolina,37121,5,0 +2020-05-05,Mitchell,North Carolina,37121,5,0 +2020-05-06,Mitchell,North Carolina,37121,5,0 +2020-05-07,Mitchell,North Carolina,37121,5,0 +2020-05-08,Mitchell,North Carolina,37121,5,0 +2020-05-09,Mitchell,North Carolina,37121,5,0 +2020-05-10,Mitchell,North Carolina,37121,5,0 +2020-05-11,Mitchell,North Carolina,37121,5,0 +2020-05-12,Mitchell,North Carolina,37121,5,0 +2020-05-13,Mitchell,North Carolina,37121,5,0 +2020-05-14,Mitchell,North Carolina,37121,5,0 +2020-05-15,Mitchell,North Carolina,37121,5,0 +2020-05-16,Mitchell,North Carolina,37121,8,0 +2020-05-17,Mitchell,North Carolina,37121,8,0 +2020-05-18,Mitchell,North Carolina,37121,8,0 +2020-05-19,Mitchell,North Carolina,37121,8,0 +2020-05-20,Mitchell,North Carolina,37121,8,0 +2020-05-21,Mitchell,North Carolina,37121,7,0 +2020-05-22,Mitchell,North Carolina,37121,9,0 +2020-05-23,Mitchell,North Carolina,37121,8,0 +2020-05-24,Mitchell,North Carolina,37121,8,0 +2020-05-25,Mitchell,North Carolina,37121,9,0 +2020-05-26,Mitchell,North Carolina,37121,9,0 +2020-05-27,Mitchell,North Carolina,37121,9,0 +2020-05-28,Mitchell,North Carolina,37121,9,0 +2020-05-29,Mitchell,North Carolina,37121,12,0 +2020-05-30,Mitchell,North Carolina,37121,12,0 +2020-05-31,Mitchell,North Carolina,37121,14,0 +2020-06-01,Mitchell,North Carolina,37121,14,0 +2020-06-02,Mitchell,North Carolina,37121,15,0 +2020-06-03,Mitchell,North Carolina,37121,14,0 +2020-06-04,Mitchell,North Carolina,37121,16,0 +2020-06-05,Mitchell,North Carolina,37121,17,0 +2020-06-06,Mitchell,North Carolina,37121,14,0 +2020-06-07,Mitchell,North Carolina,37121,14,0 +2020-06-08,Mitchell,North Carolina,37121,14,0 +2020-06-09,Mitchell,North Carolina,37121,13,0 +2020-06-10,Mitchell,North Carolina,37121,13,0 +2020-06-11,Mitchell,North Carolina,37121,15,0 +2020-06-12,Mitchell,North Carolina,37121,15,0 +2020-06-13,Mitchell,North Carolina,37121,16,0 +2020-06-14,Mitchell,North Carolina,37121,16,0 +2020-06-15,Mitchell,North Carolina,37121,16,0 +2020-06-16,Mitchell,North Carolina,37121,18,0 +2020-06-17,Mitchell,North Carolina,37121,19,0 +2020-06-18,Mitchell,North Carolina,37121,23,0 +2020-06-19,Mitchell,North Carolina,37121,24,0 +2020-06-20,Mitchell,North Carolina,37121,25,0 +2020-06-21,Mitchell,North Carolina,37121,25,0 +2020-06-22,Mitchell,North Carolina,37121,26,0 +2020-06-23,Mitchell,North Carolina,37121,26,0 +2020-06-24,Mitchell,North Carolina,37121,26,0 +2020-06-25,Mitchell,North Carolina,37121,26,0 +2020-06-26,Mitchell,North Carolina,37121,25,0 +2020-06-27,Mitchell,North Carolina,37121,27,0 +2020-06-28,Mitchell,North Carolina,37121,29,0 +2020-06-29,Mitchell,North Carolina,37121,30,0 +2020-06-30,Mitchell,North Carolina,37121,32,0 +2020-07-01,Mitchell,North Carolina,37121,33,0 +2020-07-02,Mitchell,North Carolina,37121,34,0 +2020-07-03,Mitchell,North Carolina,37121,40,0 +2020-07-04,Mitchell,North Carolina,37121,43,0 +2020-07-05,Mitchell,North Carolina,37121,44,0 +2020-07-06,Mitchell,North Carolina,37121,49,0 +2020-07-07,Mitchell,North Carolina,37121,51,0 +2020-07-08,Mitchell,North Carolina,37121,52,0 +2020-07-09,Mitchell,North Carolina,37121,56,0 +2020-03-24,Montgomery,North Carolina,37123,1,0 +2020-03-25,Montgomery,North Carolina,37123,1,0 +2020-03-26,Montgomery,North Carolina,37123,3,0 +2020-03-27,Montgomery,North Carolina,37123,3,0 +2020-03-28,Montgomery,North Carolina,37123,3,0 +2020-03-29,Montgomery,North Carolina,37123,3,0 +2020-03-30,Montgomery,North Carolina,37123,3,0 +2020-03-31,Montgomery,North Carolina,37123,6,0 +2020-04-01,Montgomery,North Carolina,37123,7,0 +2020-04-02,Montgomery,North Carolina,37123,8,1 +2020-04-03,Montgomery,North Carolina,37123,8,1 +2020-04-04,Montgomery,North Carolina,37123,9,1 +2020-04-05,Montgomery,North Carolina,37123,9,1 +2020-04-06,Montgomery,North Carolina,37123,9,1 +2020-04-07,Montgomery,North Carolina,37123,10,1 +2020-04-08,Montgomery,North Carolina,37123,10,1 +2020-04-09,Montgomery,North Carolina,37123,12,1 +2020-04-10,Montgomery,North Carolina,37123,12,1 +2020-04-11,Montgomery,North Carolina,37123,12,1 +2020-04-12,Montgomery,North Carolina,37123,12,1 +2020-04-13,Montgomery,North Carolina,37123,12,1 +2020-04-14,Montgomery,North Carolina,37123,14,1 +2020-04-15,Montgomery,North Carolina,37123,15,1 +2020-04-16,Montgomery,North Carolina,37123,15,1 +2020-04-17,Montgomery,North Carolina,37123,17,1 +2020-04-18,Montgomery,North Carolina,37123,17,1 +2020-04-19,Montgomery,North Carolina,37123,18,1 +2020-04-20,Montgomery,North Carolina,37123,18,1 +2020-04-21,Montgomery,North Carolina,37123,18,1 +2020-04-22,Montgomery,North Carolina,37123,18,1 +2020-04-23,Montgomery,North Carolina,37123,19,1 +2020-04-24,Montgomery,North Carolina,37123,20,1 +2020-04-25,Montgomery,North Carolina,37123,20,1 +2020-04-26,Montgomery,North Carolina,37123,21,1 +2020-04-27,Montgomery,North Carolina,37123,22,1 +2020-04-28,Montgomery,North Carolina,37123,28,1 +2020-04-29,Montgomery,North Carolina,37123,31,1 +2020-04-30,Montgomery,North Carolina,37123,33,1 +2020-05-01,Montgomery,North Carolina,37123,35,2 +2020-05-02,Montgomery,North Carolina,37123,36,2 +2020-05-03,Montgomery,North Carolina,37123,36,2 +2020-05-04,Montgomery,North Carolina,37123,36,2 +2020-05-05,Montgomery,North Carolina,37123,38,2 +2020-05-06,Montgomery,North Carolina,37123,41,2 +2020-05-07,Montgomery,North Carolina,37123,43,2 +2020-05-08,Montgomery,North Carolina,37123,41,2 +2020-05-09,Montgomery,North Carolina,37123,41,2 +2020-05-10,Montgomery,North Carolina,37123,41,2 +2020-05-11,Montgomery,North Carolina,37123,42,2 +2020-05-12,Montgomery,North Carolina,37123,43,2 +2020-05-13,Montgomery,North Carolina,37123,43,2 +2020-05-14,Montgomery,North Carolina,37123,47,3 +2020-05-15,Montgomery,North Carolina,37123,48,3 +2020-05-16,Montgomery,North Carolina,37123,56,3 +2020-05-17,Montgomery,North Carolina,37123,56,3 +2020-05-18,Montgomery,North Carolina,37123,57,3 +2020-05-19,Montgomery,North Carolina,37123,65,3 +2020-05-20,Montgomery,North Carolina,37123,68,3 +2020-05-21,Montgomery,North Carolina,37123,74,3 +2020-05-22,Montgomery,North Carolina,37123,78,3 +2020-05-23,Montgomery,North Carolina,37123,84,3 +2020-05-24,Montgomery,North Carolina,37123,84,3 +2020-05-25,Montgomery,North Carolina,37123,86,3 +2020-05-26,Montgomery,North Carolina,37123,88,3 +2020-05-27,Montgomery,North Carolina,37123,93,3 +2020-05-28,Montgomery,North Carolina,37123,104,4 +2020-05-29,Montgomery,North Carolina,37123,110,4 +2020-05-30,Montgomery,North Carolina,37123,123,4 +2020-05-31,Montgomery,North Carolina,37123,128,4 +2020-06-01,Montgomery,North Carolina,37123,128,4 +2020-06-02,Montgomery,North Carolina,37123,132,4 +2020-06-03,Montgomery,North Carolina,37123,141,4 +2020-06-04,Montgomery,North Carolina,37123,142,4 +2020-06-05,Montgomery,North Carolina,37123,149,4 +2020-06-06,Montgomery,North Carolina,37123,155,4 +2020-06-07,Montgomery,North Carolina,37123,160,4 +2020-06-08,Montgomery,North Carolina,37123,165,4 +2020-06-09,Montgomery,North Carolina,37123,164,5 +2020-06-10,Montgomery,North Carolina,37123,170,5 +2020-06-11,Montgomery,North Carolina,37123,172,5 +2020-06-12,Montgomery,North Carolina,37123,185,5 +2020-06-13,Montgomery,North Carolina,37123,198,5 +2020-06-14,Montgomery,North Carolina,37123,204,5 +2020-06-15,Montgomery,North Carolina,37123,210,5 +2020-06-16,Montgomery,North Carolina,37123,211,5 +2020-06-17,Montgomery,North Carolina,37123,218,5 +2020-06-18,Montgomery,North Carolina,37123,229,5 +2020-06-19,Montgomery,North Carolina,37123,234,5 +2020-06-20,Montgomery,North Carolina,37123,245,6 +2020-06-21,Montgomery,North Carolina,37123,246,6 +2020-06-22,Montgomery,North Carolina,37123,252,6 +2020-06-23,Montgomery,North Carolina,37123,253,7 +2020-06-24,Montgomery,North Carolina,37123,260,7 +2020-06-25,Montgomery,North Carolina,37123,269,7 +2020-06-26,Montgomery,North Carolina,37123,274,7 +2020-06-27,Montgomery,North Carolina,37123,284,7 +2020-06-28,Montgomery,North Carolina,37123,298,7 +2020-06-29,Montgomery,North Carolina,37123,305,7 +2020-06-30,Montgomery,North Carolina,37123,309,7 +2020-07-01,Montgomery,North Carolina,37123,317,7 +2020-07-02,Montgomery,North Carolina,37123,321,7 +2020-07-03,Montgomery,North Carolina,37123,334,7 +2020-07-04,Montgomery,North Carolina,37123,337,7 +2020-07-05,Montgomery,North Carolina,37123,343,7 +2020-07-06,Montgomery,North Carolina,37123,347,7 +2020-07-07,Montgomery,North Carolina,37123,358,9 +2020-07-08,Montgomery,North Carolina,37123,362,9 +2020-07-09,Montgomery,North Carolina,37123,368,9 +2020-03-18,Moore,North Carolina,37125,1,0 +2020-03-19,Moore,North Carolina,37125,2,0 +2020-03-20,Moore,North Carolina,37125,2,0 +2020-03-21,Moore,North Carolina,37125,2,0 +2020-03-22,Moore,North Carolina,37125,2,0 +2020-03-23,Moore,North Carolina,37125,2,0 +2020-03-24,Moore,North Carolina,37125,2,0 +2020-03-25,Moore,North Carolina,37125,2,0 +2020-03-26,Moore,North Carolina,37125,2,0 +2020-03-27,Moore,North Carolina,37125,2,0 +2020-03-28,Moore,North Carolina,37125,3,0 +2020-03-29,Moore,North Carolina,37125,6,0 +2020-03-30,Moore,North Carolina,37125,6,0 +2020-03-31,Moore,North Carolina,37125,8,0 +2020-04-01,Moore,North Carolina,37125,8,0 +2020-04-02,Moore,North Carolina,37125,8,0 +2020-04-03,Moore,North Carolina,37125,8,0 +2020-04-04,Moore,North Carolina,37125,9,0 +2020-04-05,Moore,North Carolina,37125,9,0 +2020-04-06,Moore,North Carolina,37125,10,0 +2020-04-07,Moore,North Carolina,37125,10,0 +2020-04-08,Moore,North Carolina,37125,37,0 +2020-04-09,Moore,North Carolina,37125,57,0 +2020-04-10,Moore,North Carolina,37125,57,0 +2020-04-11,Moore,North Carolina,37125,65,0 +2020-04-12,Moore,North Carolina,37125,66,0 +2020-04-13,Moore,North Carolina,37125,66,0 +2020-04-14,Moore,North Carolina,37125,66,0 +2020-04-15,Moore,North Carolina,37125,66,0 +2020-04-16,Moore,North Carolina,37125,67,0 +2020-04-17,Moore,North Carolina,37125,67,0 +2020-04-18,Moore,North Carolina,37125,67,0 +2020-04-19,Moore,North Carolina,37125,67,0 +2020-04-20,Moore,North Carolina,37125,67,0 +2020-04-21,Moore,North Carolina,37125,67,2 +2020-04-22,Moore,North Carolina,37125,67,2 +2020-04-23,Moore,North Carolina,37125,67,2 +2020-04-24,Moore,North Carolina,37125,67,2 +2020-04-25,Moore,North Carolina,37125,67,2 +2020-04-26,Moore,North Carolina,37125,68,2 +2020-04-27,Moore,North Carolina,37125,68,2 +2020-04-28,Moore,North Carolina,37125,69,2 +2020-04-29,Moore,North Carolina,37125,71,2 +2020-04-30,Moore,North Carolina,37125,79,3 +2020-05-01,Moore,North Carolina,37125,79,3 +2020-05-02,Moore,North Carolina,37125,83,3 +2020-05-03,Moore,North Carolina,37125,83,3 +2020-05-04,Moore,North Carolina,37125,84,3 +2020-05-05,Moore,North Carolina,37125,93,3 +2020-05-06,Moore,North Carolina,37125,106,3 +2020-05-07,Moore,North Carolina,37125,109,7 +2020-05-08,Moore,North Carolina,37125,109,9 +2020-05-09,Moore,North Carolina,37125,110,9 +2020-05-10,Moore,North Carolina,37125,111,9 +2020-05-11,Moore,North Carolina,37125,111,9 +2020-05-12,Moore,North Carolina,37125,110,9 +2020-05-13,Moore,North Carolina,37125,112,10 +2020-05-14,Moore,North Carolina,37125,113,10 +2020-05-15,Moore,North Carolina,37125,113,10 +2020-05-16,Moore,North Carolina,37125,114,10 +2020-05-17,Moore,North Carolina,37125,116,10 +2020-05-18,Moore,North Carolina,37125,117,10 +2020-05-19,Moore,North Carolina,37125,119,10 +2020-05-20,Moore,North Carolina,37125,119,10 +2020-05-21,Moore,North Carolina,37125,120,10 +2020-05-22,Moore,North Carolina,37125,125,10 +2020-05-23,Moore,North Carolina,37125,139,10 +2020-05-24,Moore,North Carolina,37125,140,10 +2020-05-25,Moore,North Carolina,37125,141,10 +2020-05-26,Moore,North Carolina,37125,141,10 +2020-05-27,Moore,North Carolina,37125,150,10 +2020-05-28,Moore,North Carolina,37125,174,10 +2020-05-29,Moore,North Carolina,37125,195,10 +2020-05-30,Moore,North Carolina,37125,201,10 +2020-05-31,Moore,North Carolina,37125,205,10 +2020-06-01,Moore,North Carolina,37125,207,10 +2020-06-02,Moore,North Carolina,37125,221,10 +2020-06-03,Moore,North Carolina,37125,235,10 +2020-06-04,Moore,North Carolina,37125,241,11 +2020-06-05,Moore,North Carolina,37125,248,11 +2020-06-06,Moore,North Carolina,37125,253,11 +2020-06-07,Moore,North Carolina,37125,259,11 +2020-06-08,Moore,North Carolina,37125,257,10 +2020-06-09,Moore,North Carolina,37125,259,10 +2020-06-10,Moore,North Carolina,37125,266,11 +2020-06-11,Moore,North Carolina,37125,278,10 +2020-06-12,Moore,North Carolina,37125,285,10 +2020-06-13,Moore,North Carolina,37125,298,10 +2020-06-14,Moore,North Carolina,37125,317,10 +2020-06-15,Moore,North Carolina,37125,318,10 +2020-06-16,Moore,North Carolina,37125,319,11 +2020-06-17,Moore,North Carolina,37125,320,11 +2020-06-18,Moore,North Carolina,37125,335,11 +2020-06-19,Moore,North Carolina,37125,337,11 +2020-06-20,Moore,North Carolina,37125,355,11 +2020-06-21,Moore,North Carolina,37125,370,11 +2020-06-22,Moore,North Carolina,37125,371,11 +2020-06-23,Moore,North Carolina,37125,377,11 +2020-06-24,Moore,North Carolina,37125,377,12 +2020-06-25,Moore,North Carolina,37125,396,12 +2020-06-26,Moore,North Carolina,37125,409,13 +2020-06-27,Moore,North Carolina,37125,421,13 +2020-06-28,Moore,North Carolina,37125,439,13 +2020-06-29,Moore,North Carolina,37125,450,13 +2020-06-30,Moore,North Carolina,37125,458,13 +2020-07-01,Moore,North Carolina,37125,484,13 +2020-07-02,Moore,North Carolina,37125,500,13 +2020-07-03,Moore,North Carolina,37125,506,13 +2020-07-04,Moore,North Carolina,37125,522,13 +2020-07-05,Moore,North Carolina,37125,530,13 +2020-07-06,Moore,North Carolina,37125,533,13 +2020-07-07,Moore,North Carolina,37125,543,13 +2020-07-08,Moore,North Carolina,37125,554,13 +2020-07-09,Moore,North Carolina,37125,594,13 +2020-03-22,Nash,North Carolina,37127,1,0 +2020-03-23,Nash,North Carolina,37127,1,0 +2020-03-24,Nash,North Carolina,37127,1,0 +2020-03-25,Nash,North Carolina,37127,2,0 +2020-03-26,Nash,North Carolina,37127,2,0 +2020-03-27,Nash,North Carolina,37127,2,0 +2020-03-28,Nash,North Carolina,37127,2,0 +2020-03-29,Nash,North Carolina,37127,3,0 +2020-03-30,Nash,North Carolina,37127,4,0 +2020-03-31,Nash,North Carolina,37127,9,0 +2020-04-01,Nash,North Carolina,37127,9,0 +2020-04-02,Nash,North Carolina,37127,10,0 +2020-04-03,Nash,North Carolina,37127,14,0 +2020-04-04,Nash,North Carolina,37127,18,0 +2020-04-05,Nash,North Carolina,37127,21,0 +2020-04-06,Nash,North Carolina,37127,21,0 +2020-04-07,Nash,North Carolina,37127,24,0 +2020-04-08,Nash,North Carolina,37127,24,1 +2020-04-09,Nash,North Carolina,37127,27,1 +2020-04-10,Nash,North Carolina,37127,29,1 +2020-04-11,Nash,North Carolina,37127,32,1 +2020-04-12,Nash,North Carolina,37127,32,1 +2020-04-13,Nash,North Carolina,37127,36,1 +2020-04-14,Nash,North Carolina,37127,39,1 +2020-04-15,Nash,North Carolina,37127,40,1 +2020-04-16,Nash,North Carolina,37127,45,1 +2020-04-17,Nash,North Carolina,37127,50,1 +2020-04-18,Nash,North Carolina,37127,53,1 +2020-04-19,Nash,North Carolina,37127,61,1 +2020-04-20,Nash,North Carolina,37127,61,1 +2020-04-21,Nash,North Carolina,37127,63,1 +2020-04-22,Nash,North Carolina,37127,68,1 +2020-04-23,Nash,North Carolina,37127,68,1 +2020-04-24,Nash,North Carolina,37127,71,1 +2020-04-25,Nash,North Carolina,37127,80,1 +2020-04-26,Nash,North Carolina,37127,81,1 +2020-04-27,Nash,North Carolina,37127,82,3 +2020-04-28,Nash,North Carolina,37127,82,3 +2020-04-29,Nash,North Carolina,37127,87,3 +2020-04-30,Nash,North Carolina,37127,90,3 +2020-05-01,Nash,North Carolina,37127,97,3 +2020-05-02,Nash,North Carolina,37127,99,3 +2020-05-03,Nash,North Carolina,37127,98,3 +2020-05-04,Nash,North Carolina,37127,100,3 +2020-05-05,Nash,North Carolina,37127,102,3 +2020-05-06,Nash,North Carolina,37127,104,3 +2020-05-07,Nash,North Carolina,37127,107,3 +2020-05-08,Nash,North Carolina,37127,116,3 +2020-05-09,Nash,North Carolina,37127,118,3 +2020-05-10,Nash,North Carolina,37127,119,3 +2020-05-11,Nash,North Carolina,37127,121,3 +2020-05-12,Nash,North Carolina,37127,129,3 +2020-05-13,Nash,North Carolina,37127,133,3 +2020-05-14,Nash,North Carolina,37127,140,3 +2020-05-15,Nash,North Carolina,37127,146,3 +2020-05-16,Nash,North Carolina,37127,146,3 +2020-05-17,Nash,North Carolina,37127,149,3 +2020-05-18,Nash,North Carolina,37127,153,3 +2020-05-19,Nash,North Carolina,37127,156,3 +2020-05-20,Nash,North Carolina,37127,158,3 +2020-05-21,Nash,North Carolina,37127,160,3 +2020-05-22,Nash,North Carolina,37127,166,3 +2020-05-23,Nash,North Carolina,37127,174,4 +2020-05-24,Nash,North Carolina,37127,178,4 +2020-05-25,Nash,North Carolina,37127,182,4 +2020-05-26,Nash,North Carolina,37127,184,4 +2020-05-27,Nash,North Carolina,37127,184,4 +2020-05-28,Nash,North Carolina,37127,185,4 +2020-05-29,Nash,North Carolina,37127,193,4 +2020-05-30,Nash,North Carolina,37127,201,4 +2020-05-31,Nash,North Carolina,37127,204,4 +2020-06-01,Nash,North Carolina,37127,206,4 +2020-06-02,Nash,North Carolina,37127,210,4 +2020-06-03,Nash,North Carolina,37127,213,4 +2020-06-04,Nash,North Carolina,37127,218,4 +2020-06-05,Nash,North Carolina,37127,223,4 +2020-06-06,Nash,North Carolina,37127,228,4 +2020-06-07,Nash,North Carolina,37127,236,4 +2020-06-08,Nash,North Carolina,37127,242,4 +2020-06-09,Nash,North Carolina,37127,244,4 +2020-06-10,Nash,North Carolina,37127,248,4 +2020-06-11,Nash,North Carolina,37127,255,4 +2020-06-12,Nash,North Carolina,37127,262,4 +2020-06-13,Nash,North Carolina,37127,277,4 +2020-06-14,Nash,North Carolina,37127,282,4 +2020-06-15,Nash,North Carolina,37127,292,4 +2020-06-16,Nash,North Carolina,37127,294,4 +2020-06-17,Nash,North Carolina,37127,301,4 +2020-06-18,Nash,North Carolina,37127,311,4 +2020-06-19,Nash,North Carolina,37127,323,4 +2020-06-20,Nash,North Carolina,37127,341,4 +2020-06-21,Nash,North Carolina,37127,348,4 +2020-06-22,Nash,North Carolina,37127,352,4 +2020-06-23,Nash,North Carolina,37127,357,4 +2020-06-24,Nash,North Carolina,37127,378,4 +2020-06-25,Nash,North Carolina,37127,380,4 +2020-06-26,Nash,North Carolina,37127,384,4 +2020-06-27,Nash,North Carolina,37127,403,4 +2020-06-28,Nash,North Carolina,37127,437,4 +2020-06-29,Nash,North Carolina,37127,461,4 +2020-06-30,Nash,North Carolina,37127,469,6 +2020-07-01,Nash,North Carolina,37127,478,6 +2020-07-02,Nash,North Carolina,37127,489,6 +2020-07-03,Nash,North Carolina,37127,502,6 +2020-07-04,Nash,North Carolina,37127,514,6 +2020-07-05,Nash,North Carolina,37127,525,6 +2020-07-06,Nash,North Carolina,37127,541,6 +2020-07-07,Nash,North Carolina,37127,552,6 +2020-07-08,Nash,North Carolina,37127,571,6 +2020-07-09,Nash,North Carolina,37127,586,6 +2020-03-18,New Hanover,North Carolina,37129,1,0 +2020-03-19,New Hanover,North Carolina,37129,1,0 +2020-03-20,New Hanover,North Carolina,37129,1,0 +2020-03-21,New Hanover,North Carolina,37129,1,0 +2020-03-22,New Hanover,North Carolina,37129,3,0 +2020-03-23,New Hanover,North Carolina,37129,4,0 +2020-03-24,New Hanover,North Carolina,37129,7,0 +2020-03-25,New Hanover,North Carolina,37129,9,0 +2020-03-26,New Hanover,North Carolina,37129,11,0 +2020-03-27,New Hanover,North Carolina,37129,13,0 +2020-03-28,New Hanover,North Carolina,37129,18,0 +2020-03-29,New Hanover,North Carolina,37129,22,0 +2020-03-30,New Hanover,North Carolina,37129,26,0 +2020-03-31,New Hanover,North Carolina,37129,28,0 +2020-04-01,New Hanover,North Carolina,37129,32,0 +2020-04-02,New Hanover,North Carolina,37129,33,0 +2020-04-03,New Hanover,North Carolina,37129,36,0 +2020-04-04,New Hanover,North Carolina,37129,37,0 +2020-04-05,New Hanover,North Carolina,37129,37,0 +2020-04-06,New Hanover,North Carolina,37129,45,0 +2020-04-07,New Hanover,North Carolina,37129,47,0 +2020-04-08,New Hanover,North Carolina,37129,48,0 +2020-04-09,New Hanover,North Carolina,37129,49,0 +2020-04-10,New Hanover,North Carolina,37129,50,0 +2020-04-11,New Hanover,North Carolina,37129,54,0 +2020-04-12,New Hanover,North Carolina,37129,54,1 +2020-04-13,New Hanover,North Carolina,37129,54,1 +2020-04-14,New Hanover,North Carolina,37129,55,1 +2020-04-15,New Hanover,North Carolina,37129,56,1 +2020-04-16,New Hanover,North Carolina,37129,58,1 +2020-04-17,New Hanover,North Carolina,37129,60,1 +2020-04-18,New Hanover,North Carolina,37129,62,1 +2020-04-19,New Hanover,North Carolina,37129,62,1 +2020-04-20,New Hanover,North Carolina,37129,62,1 +2020-04-21,New Hanover,North Carolina,37129,62,1 +2020-04-22,New Hanover,North Carolina,37129,62,2 +2020-04-23,New Hanover,North Carolina,37129,66,2 +2020-04-24,New Hanover,North Carolina,37129,66,3 +2020-04-25,New Hanover,North Carolina,37129,71,3 +2020-04-26,New Hanover,North Carolina,37129,72,3 +2020-04-27,New Hanover,North Carolina,37129,74,3 +2020-04-28,New Hanover,North Carolina,37129,74,3 +2020-04-29,New Hanover,North Carolina,37129,74,3 +2020-04-30,New Hanover,North Carolina,37129,75,3 +2020-05-01,New Hanover,North Carolina,37129,75,3 +2020-05-02,New Hanover,North Carolina,37129,79,3 +2020-05-03,New Hanover,North Carolina,37129,79,3 +2020-05-04,New Hanover,North Carolina,37129,79,3 +2020-05-05,New Hanover,North Carolina,37129,83,3 +2020-05-06,New Hanover,North Carolina,37129,84,3 +2020-05-07,New Hanover,North Carolina,37129,91,3 +2020-05-08,New Hanover,North Carolina,37129,95,3 +2020-05-09,New Hanover,North Carolina,37129,96,3 +2020-05-10,New Hanover,North Carolina,37129,97,3 +2020-05-11,New Hanover,North Carolina,37129,97,3 +2020-05-12,New Hanover,North Carolina,37129,104,3 +2020-05-13,New Hanover,North Carolina,37129,112,3 +2020-05-14,New Hanover,North Carolina,37129,116,3 +2020-05-15,New Hanover,North Carolina,37129,118,3 +2020-05-16,New Hanover,North Carolina,37129,120,3 +2020-05-17,New Hanover,North Carolina,37129,120,3 +2020-05-18,New Hanover,North Carolina,37129,122,3 +2020-05-19,New Hanover,North Carolina,37129,134,3 +2020-05-20,New Hanover,North Carolina,37129,137,3 +2020-05-21,New Hanover,North Carolina,37129,140,3 +2020-05-22,New Hanover,North Carolina,37129,143,3 +2020-05-23,New Hanover,North Carolina,37129,147,4 +2020-05-24,New Hanover,North Carolina,37129,153,4 +2020-05-25,New Hanover,North Carolina,37129,156,4 +2020-05-26,New Hanover,North Carolina,37129,156,4 +2020-05-27,New Hanover,North Carolina,37129,164,4 +2020-05-28,New Hanover,North Carolina,37129,167,4 +2020-05-29,New Hanover,North Carolina,37129,180,4 +2020-05-30,New Hanover,North Carolina,37129,189,5 +2020-05-31,New Hanover,North Carolina,37129,195,5 +2020-06-01,New Hanover,North Carolina,37129,197,5 +2020-06-02,New Hanover,North Carolina,37129,203,5 +2020-06-03,New Hanover,North Carolina,37129,210,5 +2020-06-04,New Hanover,North Carolina,37129,220,5 +2020-06-05,New Hanover,North Carolina,37129,230,5 +2020-06-06,New Hanover,North Carolina,37129,252,5 +2020-06-07,New Hanover,North Carolina,37129,259,5 +2020-06-08,New Hanover,North Carolina,37129,263,5 +2020-06-09,New Hanover,North Carolina,37129,269,5 +2020-06-10,New Hanover,North Carolina,37129,281,5 +2020-06-11,New Hanover,North Carolina,37129,291,5 +2020-06-12,New Hanover,North Carolina,37129,311,5 +2020-06-13,New Hanover,North Carolina,37129,334,5 +2020-06-14,New Hanover,North Carolina,37129,356,5 +2020-06-15,New Hanover,North Carolina,37129,385,5 +2020-06-16,New Hanover,North Carolina,37129,405,5 +2020-06-17,New Hanover,North Carolina,37129,414,5 +2020-06-18,New Hanover,North Carolina,37129,449,5 +2020-06-19,New Hanover,North Carolina,37129,489,5 +2020-06-20,New Hanover,North Carolina,37129,535,5 +2020-06-21,New Hanover,North Carolina,37129,557,5 +2020-06-22,New Hanover,North Carolina,37129,563,5 +2020-06-23,New Hanover,North Carolina,37129,587,5 +2020-06-24,New Hanover,North Carolina,37129,626,5 +2020-06-25,New Hanover,North Carolina,37129,673,5 +2020-06-26,New Hanover,North Carolina,37129,717,5 +2020-06-27,New Hanover,North Carolina,37129,750,5 +2020-06-28,New Hanover,North Carolina,37129,810,5 +2020-06-29,New Hanover,North Carolina,37129,840,5 +2020-06-30,New Hanover,North Carolina,37129,897,5 +2020-07-01,New Hanover,North Carolina,37129,923,5 +2020-07-02,New Hanover,North Carolina,37129,982,6 +2020-07-03,New Hanover,North Carolina,37129,1063,7 +2020-07-04,New Hanover,North Carolina,37129,1095,7 +2020-07-05,New Hanover,North Carolina,37129,1118,7 +2020-07-06,New Hanover,North Carolina,37129,1138,7 +2020-07-07,New Hanover,North Carolina,37129,1161,7 +2020-07-08,New Hanover,North Carolina,37129,1242,7 +2020-07-09,New Hanover,North Carolina,37129,1304,7 +2020-03-25,Northampton,North Carolina,37131,1,0 +2020-03-26,Northampton,North Carolina,37131,3,0 +2020-03-27,Northampton,North Carolina,37131,3,0 +2020-03-28,Northampton,North Carolina,37131,4,0 +2020-03-29,Northampton,North Carolina,37131,25,0 +2020-03-30,Northampton,North Carolina,37131,26,0 +2020-03-31,Northampton,North Carolina,37131,30,0 +2020-04-01,Northampton,North Carolina,37131,30,0 +2020-04-02,Northampton,North Carolina,37131,30,0 +2020-04-03,Northampton,North Carolina,37131,33,0 +2020-04-04,Northampton,North Carolina,37131,36,0 +2020-04-05,Northampton,North Carolina,37131,42,0 +2020-04-06,Northampton,North Carolina,37131,46,0 +2020-04-07,Northampton,North Carolina,37131,51,0 +2020-04-08,Northampton,North Carolina,37131,52,0 +2020-04-09,Northampton,North Carolina,37131,54,0 +2020-04-10,Northampton,North Carolina,37131,55,0 +2020-04-11,Northampton,North Carolina,37131,60,0 +2020-04-12,Northampton,North Carolina,37131,61,0 +2020-04-13,Northampton,North Carolina,37131,61,0 +2020-04-14,Northampton,North Carolina,37131,63,0 +2020-04-15,Northampton,North Carolina,37131,65,0 +2020-04-16,Northampton,North Carolina,37131,69,1 +2020-04-17,Northampton,North Carolina,37131,69,1 +2020-04-18,Northampton,North Carolina,37131,69,2 +2020-04-19,Northampton,North Carolina,37131,72,2 +2020-04-20,Northampton,North Carolina,37131,72,2 +2020-04-21,Northampton,North Carolina,37131,73,2 +2020-04-22,Northampton,North Carolina,37131,73,2 +2020-04-23,Northampton,North Carolina,37131,74,2 +2020-04-24,Northampton,North Carolina,37131,79,3 +2020-04-25,Northampton,North Carolina,37131,80,3 +2020-04-26,Northampton,North Carolina,37131,80,3 +2020-04-27,Northampton,North Carolina,37131,81,4 +2020-04-28,Northampton,North Carolina,37131,81,4 +2020-04-29,Northampton,North Carolina,37131,81,4 +2020-04-30,Northampton,North Carolina,37131,82,4 +2020-05-01,Northampton,North Carolina,37131,87,4 +2020-05-02,Northampton,North Carolina,37131,89,4 +2020-05-03,Northampton,North Carolina,37131,89,4 +2020-05-04,Northampton,North Carolina,37131,92,4 +2020-05-05,Northampton,North Carolina,37131,91,4 +2020-05-06,Northampton,North Carolina,37131,93,5 +2020-05-07,Northampton,North Carolina,37131,102,5 +2020-05-08,Northampton,North Carolina,37131,102,7 +2020-05-09,Northampton,North Carolina,37131,102,7 +2020-05-10,Northampton,North Carolina,37131,104,7 +2020-05-11,Northampton,North Carolina,37131,106,7 +2020-05-12,Northampton,North Carolina,37131,108,9 +2020-05-13,Northampton,North Carolina,37131,122,9 +2020-05-14,Northampton,North Carolina,37131,126,9 +2020-05-15,Northampton,North Carolina,37131,129,9 +2020-05-16,Northampton,North Carolina,37131,129,10 +2020-05-17,Northampton,North Carolina,37131,129,10 +2020-05-18,Northampton,North Carolina,37131,130,10 +2020-05-19,Northampton,North Carolina,37131,131,10 +2020-05-20,Northampton,North Carolina,37131,131,11 +2020-05-21,Northampton,North Carolina,37131,132,11 +2020-05-22,Northampton,North Carolina,37131,135,12 +2020-05-23,Northampton,North Carolina,37131,137,12 +2020-05-24,Northampton,North Carolina,37131,138,12 +2020-05-25,Northampton,North Carolina,37131,140,12 +2020-05-26,Northampton,North Carolina,37131,141,12 +2020-05-27,Northampton,North Carolina,37131,144,12 +2020-05-28,Northampton,North Carolina,37131,143,12 +2020-05-29,Northampton,North Carolina,37131,144,14 +2020-05-30,Northampton,North Carolina,37131,147,14 +2020-05-31,Northampton,North Carolina,37131,147,14 +2020-06-01,Northampton,North Carolina,37131,148,14 +2020-06-02,Northampton,North Carolina,37131,155,14 +2020-06-03,Northampton,North Carolina,37131,156,14 +2020-06-04,Northampton,North Carolina,37131,155,14 +2020-06-05,Northampton,North Carolina,37131,153,14 +2020-06-06,Northampton,North Carolina,37131,155,14 +2020-06-07,Northampton,North Carolina,37131,156,14 +2020-06-08,Northampton,North Carolina,37131,156,14 +2020-06-09,Northampton,North Carolina,37131,158,14 +2020-06-10,Northampton,North Carolina,37131,160,14 +2020-06-11,Northampton,North Carolina,37131,162,14 +2020-06-12,Northampton,North Carolina,37131,163,14 +2020-06-13,Northampton,North Carolina,37131,165,14 +2020-06-14,Northampton,North Carolina,37131,166,14 +2020-06-15,Northampton,North Carolina,37131,169,14 +2020-06-16,Northampton,North Carolina,37131,171,15 +2020-06-17,Northampton,North Carolina,37131,171,15 +2020-06-18,Northampton,North Carolina,37131,174,15 +2020-06-19,Northampton,North Carolina,37131,176,15 +2020-06-20,Northampton,North Carolina,37131,173,15 +2020-06-21,Northampton,North Carolina,37131,175,15 +2020-06-22,Northampton,North Carolina,37131,175,15 +2020-06-23,Northampton,North Carolina,37131,177,15 +2020-06-24,Northampton,North Carolina,37131,178,15 +2020-06-25,Northampton,North Carolina,37131,177,15 +2020-06-26,Northampton,North Carolina,37131,179,15 +2020-06-27,Northampton,North Carolina,37131,179,15 +2020-06-28,Northampton,North Carolina,37131,180,15 +2020-06-29,Northampton,North Carolina,37131,180,15 +2020-06-30,Northampton,North Carolina,37131,181,15 +2020-07-01,Northampton,North Carolina,37131,183,15 +2020-07-02,Northampton,North Carolina,37131,185,15 +2020-07-03,Northampton,North Carolina,37131,186,15 +2020-07-04,Northampton,North Carolina,37131,188,15 +2020-07-05,Northampton,North Carolina,37131,190,15 +2020-07-06,Northampton,North Carolina,37131,191,15 +2020-07-07,Northampton,North Carolina,37131,189,15 +2020-07-08,Northampton,North Carolina,37131,189,15 +2020-07-09,Northampton,North Carolina,37131,189,15 +2020-03-12,Onslow,North Carolina,37133,1,0 +2020-03-13,Onslow,North Carolina,37133,1,0 +2020-03-14,Onslow,North Carolina,37133,1,0 +2020-03-15,Onslow,North Carolina,37133,1,0 +2020-03-16,Onslow,North Carolina,37133,1,0 +2020-03-17,Onslow,North Carolina,37133,1,0 +2020-03-18,Onslow,North Carolina,37133,1,0 +2020-03-19,Onslow,North Carolina,37133,1,0 +2020-03-20,Onslow,North Carolina,37133,1,0 +2020-03-21,Onslow,North Carolina,37133,1,0 +2020-03-22,Onslow,North Carolina,37133,1,0 +2020-03-23,Onslow,North Carolina,37133,1,0 +2020-03-24,Onslow,North Carolina,37133,3,0 +2020-03-25,Onslow,North Carolina,37133,3,0 +2020-03-26,Onslow,North Carolina,37133,4,0 +2020-03-27,Onslow,North Carolina,37133,4,0 +2020-03-28,Onslow,North Carolina,37133,4,0 +2020-03-29,Onslow,North Carolina,37133,4,0 +2020-03-30,Onslow,North Carolina,37133,6,0 +2020-03-31,Onslow,North Carolina,37133,7,1 +2020-04-01,Onslow,North Carolina,37133,7,1 +2020-04-02,Onslow,North Carolina,37133,8,1 +2020-04-03,Onslow,North Carolina,37133,9,1 +2020-04-04,Onslow,North Carolina,37133,13,1 +2020-04-05,Onslow,North Carolina,37133,16,1 +2020-04-06,Onslow,North Carolina,37133,18,1 +2020-04-07,Onslow,North Carolina,37133,23,1 +2020-04-08,Onslow,North Carolina,37133,23,1 +2020-04-09,Onslow,North Carolina,37133,24,1 +2020-04-10,Onslow,North Carolina,37133,26,1 +2020-04-11,Onslow,North Carolina,37133,28,1 +2020-04-12,Onslow,North Carolina,37133,29,1 +2020-04-13,Onslow,North Carolina,37133,29,1 +2020-04-14,Onslow,North Carolina,37133,29,1 +2020-04-15,Onslow,North Carolina,37133,29,1 +2020-04-16,Onslow,North Carolina,37133,31,1 +2020-04-17,Onslow,North Carolina,37133,32,1 +2020-04-18,Onslow,North Carolina,37133,33,1 +2020-04-19,Onslow,North Carolina,37133,33,1 +2020-04-20,Onslow,North Carolina,37133,33,1 +2020-04-21,Onslow,North Carolina,37133,33,1 +2020-04-22,Onslow,North Carolina,37133,33,1 +2020-04-23,Onslow,North Carolina,37133,33,1 +2020-04-24,Onslow,North Carolina,37133,40,1 +2020-04-25,Onslow,North Carolina,37133,42,1 +2020-04-26,Onslow,North Carolina,37133,42,1 +2020-04-27,Onslow,North Carolina,37133,43,1 +2020-04-28,Onslow,North Carolina,37133,43,1 +2020-04-29,Onslow,North Carolina,37133,43,1 +2020-04-30,Onslow,North Carolina,37133,45,1 +2020-05-01,Onslow,North Carolina,37133,46,1 +2020-05-02,Onslow,North Carolina,37133,51,1 +2020-05-03,Onslow,North Carolina,37133,50,1 +2020-05-04,Onslow,North Carolina,37133,50,2 +2020-05-05,Onslow,North Carolina,37133,51,2 +2020-05-06,Onslow,North Carolina,37133,52,2 +2020-05-07,Onslow,North Carolina,37133,53,2 +2020-05-08,Onslow,North Carolina,37133,53,2 +2020-05-09,Onslow,North Carolina,37133,54,2 +2020-05-10,Onslow,North Carolina,37133,53,2 +2020-05-11,Onslow,North Carolina,37133,54,2 +2020-05-12,Onslow,North Carolina,37133,58,2 +2020-05-13,Onslow,North Carolina,37133,59,2 +2020-05-14,Onslow,North Carolina,37133,63,2 +2020-05-15,Onslow,North Carolina,37133,67,2 +2020-05-16,Onslow,North Carolina,37133,70,2 +2020-05-17,Onslow,North Carolina,37133,71,2 +2020-05-18,Onslow,North Carolina,37133,75,2 +2020-05-19,Onslow,North Carolina,37133,80,2 +2020-05-20,Onslow,North Carolina,37133,79,2 +2020-05-21,Onslow,North Carolina,37133,81,2 +2020-05-22,Onslow,North Carolina,37133,83,2 +2020-05-23,Onslow,North Carolina,37133,94,2 +2020-05-24,Onslow,North Carolina,37133,97,2 +2020-05-25,Onslow,North Carolina,37133,98,2 +2020-05-26,Onslow,North Carolina,37133,98,2 +2020-05-27,Onslow,North Carolina,37133,98,2 +2020-05-28,Onslow,North Carolina,37133,98,2 +2020-05-29,Onslow,North Carolina,37133,100,2 +2020-05-30,Onslow,North Carolina,37133,108,2 +2020-05-31,Onslow,North Carolina,37133,110,2 +2020-06-01,Onslow,North Carolina,37133,110,2 +2020-06-02,Onslow,North Carolina,37133,112,2 +2020-06-03,Onslow,North Carolina,37133,114,2 +2020-06-04,Onslow,North Carolina,37133,117,2 +2020-06-05,Onslow,North Carolina,37133,120,2 +2020-06-06,Onslow,North Carolina,37133,121,2 +2020-06-07,Onslow,North Carolina,37133,134,2 +2020-06-08,Onslow,North Carolina,37133,134,2 +2020-06-09,Onslow,North Carolina,37133,136,2 +2020-06-10,Onslow,North Carolina,37133,136,2 +2020-06-11,Onslow,North Carolina,37133,145,2 +2020-06-12,Onslow,North Carolina,37133,149,2 +2020-06-13,Onslow,North Carolina,37133,156,3 +2020-06-14,Onslow,North Carolina,37133,159,3 +2020-06-15,Onslow,North Carolina,37133,160,3 +2020-06-16,Onslow,North Carolina,37133,166,3 +2020-06-17,Onslow,North Carolina,37133,178,3 +2020-06-18,Onslow,North Carolina,37133,180,3 +2020-06-19,Onslow,North Carolina,37133,188,3 +2020-06-20,Onslow,North Carolina,37133,206,3 +2020-06-21,Onslow,North Carolina,37133,211,3 +2020-06-22,Onslow,North Carolina,37133,213,3 +2020-06-23,Onslow,North Carolina,37133,215,3 +2020-06-24,Onslow,North Carolina,37133,224,3 +2020-06-25,Onslow,North Carolina,37133,229,3 +2020-06-26,Onslow,North Carolina,37133,243,3 +2020-06-27,Onslow,North Carolina,37133,249,3 +2020-06-28,Onslow,North Carolina,37133,258,3 +2020-06-29,Onslow,North Carolina,37133,270,3 +2020-06-30,Onslow,North Carolina,37133,284,3 +2020-07-01,Onslow,North Carolina,37133,308,3 +2020-07-02,Onslow,North Carolina,37133,324,3 +2020-07-03,Onslow,North Carolina,37133,334,3 +2020-07-04,Onslow,North Carolina,37133,339,3 +2020-07-05,Onslow,North Carolina,37133,345,3 +2020-07-06,Onslow,North Carolina,37133,353,3 +2020-07-07,Onslow,North Carolina,37133,359,3 +2020-07-08,Onslow,North Carolina,37133,367,3 +2020-07-09,Onslow,North Carolina,37133,372,3 +2020-03-20,Orange,North Carolina,37135,3,0 +2020-03-21,Orange,North Carolina,37135,3,0 +2020-03-22,Orange,North Carolina,37135,5,0 +2020-03-23,Orange,North Carolina,37135,6,0 +2020-03-24,Orange,North Carolina,37135,11,0 +2020-03-25,Orange,North Carolina,37135,13,0 +2020-03-26,Orange,North Carolina,37135,16,0 +2020-03-27,Orange,North Carolina,37135,24,0 +2020-03-28,Orange,North Carolina,37135,27,0 +2020-03-29,Orange,North Carolina,37135,29,0 +2020-03-30,Orange,North Carolina,37135,30,0 +2020-03-31,Orange,North Carolina,37135,35,0 +2020-04-01,Orange,North Carolina,37135,37,0 +2020-04-02,Orange,North Carolina,37135,37,0 +2020-04-03,Orange,North Carolina,37135,44,0 +2020-04-04,Orange,North Carolina,37135,52,0 +2020-04-05,Orange,North Carolina,37135,52,0 +2020-04-06,Orange,North Carolina,37135,67,0 +2020-04-07,Orange,North Carolina,37135,73,0 +2020-04-08,Orange,North Carolina,37135,81,0 +2020-04-09,Orange,North Carolina,37135,98,1 +2020-04-10,Orange,North Carolina,37135,104,1 +2020-04-11,Orange,North Carolina,37135,141,2 +2020-04-12,Orange,North Carolina,37135,150,2 +2020-04-13,Orange,North Carolina,37135,151,2 +2020-04-14,Orange,North Carolina,37135,155,2 +2020-04-15,Orange,North Carolina,37135,161,2 +2020-04-16,Orange,North Carolina,37135,172,2 +2020-04-17,Orange,North Carolina,37135,175,3 +2020-04-18,Orange,North Carolina,37135,183,3 +2020-04-19,Orange,North Carolina,37135,187,3 +2020-04-20,Orange,North Carolina,37135,187,3 +2020-04-21,Orange,North Carolina,37135,189,3 +2020-04-22,Orange,North Carolina,37135,195,7 +2020-04-23,Orange,North Carolina,37135,199,8 +2020-04-24,Orange,North Carolina,37135,200,8 +2020-04-25,Orange,North Carolina,37135,208,13 +2020-04-26,Orange,North Carolina,37135,208,13 +2020-04-27,Orange,North Carolina,37135,207,13 +2020-04-28,Orange,North Carolina,37135,209,14 +2020-04-29,Orange,North Carolina,37135,217,15 +2020-04-30,Orange,North Carolina,37135,216,16 +2020-05-01,Orange,North Carolina,37135,219,17 +2020-05-02,Orange,North Carolina,37135,223,18 +2020-05-03,Orange,North Carolina,37135,226,18 +2020-05-04,Orange,North Carolina,37135,229,18 +2020-05-05,Orange,North Carolina,37135,230,18 +2020-05-06,Orange,North Carolina,37135,230,20 +2020-05-07,Orange,North Carolina,37135,239,30 +2020-05-08,Orange,North Carolina,37135,244,32 +2020-05-09,Orange,North Carolina,37135,248,33 +2020-05-10,Orange,North Carolina,37135,252,33 +2020-05-11,Orange,North Carolina,37135,253,33 +2020-05-12,Orange,North Carolina,37135,259,34 +2020-05-13,Orange,North Carolina,37135,258,34 +2020-05-14,Orange,North Carolina,37135,263,34 +2020-05-15,Orange,North Carolina,37135,266,34 +2020-05-16,Orange,North Carolina,37135,269,36 +2020-05-17,Orange,North Carolina,37135,275,36 +2020-05-18,Orange,North Carolina,37135,277,36 +2020-05-19,Orange,North Carolina,37135,283,37 +2020-05-20,Orange,North Carolina,37135,289,37 +2020-05-21,Orange,North Carolina,37135,291,39 +2020-05-22,Orange,North Carolina,37135,291,39 +2020-05-23,Orange,North Carolina,37135,294,39 +2020-05-24,Orange,North Carolina,37135,302,39 +2020-05-25,Orange,North Carolina,37135,309,39 +2020-05-26,Orange,North Carolina,37135,311,39 +2020-05-27,Orange,North Carolina,37135,314,40 +2020-05-28,Orange,North Carolina,37135,320,40 +2020-05-29,Orange,North Carolina,37135,326,40 +2020-05-30,Orange,North Carolina,37135,340,40 +2020-05-31,Orange,North Carolina,37135,348,40 +2020-06-01,Orange,North Carolina,37135,357,40 +2020-06-02,Orange,North Carolina,37135,360,40 +2020-06-03,Orange,North Carolina,37135,364,40 +2020-06-04,Orange,North Carolina,37135,370,40 +2020-06-05,Orange,North Carolina,37135,377,40 +2020-06-06,Orange,North Carolina,37135,388,40 +2020-06-07,Orange,North Carolina,37135,398,40 +2020-06-08,Orange,North Carolina,37135,405,40 +2020-06-09,Orange,North Carolina,37135,408,40 +2020-06-10,Orange,North Carolina,37135,415,40 +2020-06-11,Orange,North Carolina,37135,427,40 +2020-06-12,Orange,North Carolina,37135,440,40 +2020-06-13,Orange,North Carolina,37135,453,40 +2020-06-14,Orange,North Carolina,37135,474,40 +2020-06-15,Orange,North Carolina,37135,478,40 +2020-06-16,Orange,North Carolina,37135,479,40 +2020-06-17,Orange,North Carolina,37135,487,40 +2020-06-18,Orange,North Carolina,37135,497,40 +2020-06-19,Orange,North Carolina,37135,506,41 +2020-06-20,Orange,North Carolina,37135,522,41 +2020-06-21,Orange,North Carolina,37135,538,41 +2020-06-22,Orange,North Carolina,37135,548,41 +2020-06-23,Orange,North Carolina,37135,546,41 +2020-06-24,Orange,North Carolina,37135,568,41 +2020-06-25,Orange,North Carolina,37135,578,41 +2020-06-26,Orange,North Carolina,37135,593,41 +2020-06-27,Orange,North Carolina,37135,616,41 +2020-06-28,Orange,North Carolina,37135,635,41 +2020-06-29,Orange,North Carolina,37135,651,41 +2020-06-30,Orange,North Carolina,37135,669,41 +2020-07-01,Orange,North Carolina,37135,690,41 +2020-07-02,Orange,North Carolina,37135,715,41 +2020-07-03,Orange,North Carolina,37135,745,42 +2020-07-04,Orange,North Carolina,37135,775,42 +2020-07-05,Orange,North Carolina,37135,813,42 +2020-07-06,Orange,North Carolina,37135,839,42 +2020-07-07,Orange,North Carolina,37135,848,42 +2020-07-08,Orange,North Carolina,37135,850,42 +2020-07-09,Orange,North Carolina,37135,892,42 +2020-03-29,Pamlico,North Carolina,37137,1,0 +2020-03-30,Pamlico,North Carolina,37137,1,0 +2020-03-31,Pamlico,North Carolina,37137,1,0 +2020-04-01,Pamlico,North Carolina,37137,1,0 +2020-04-02,Pamlico,North Carolina,37137,1,0 +2020-04-03,Pamlico,North Carolina,37137,2,0 +2020-04-04,Pamlico,North Carolina,37137,3,0 +2020-04-05,Pamlico,North Carolina,37137,3,0 +2020-04-06,Pamlico,North Carolina,37137,3,0 +2020-04-07,Pamlico,North Carolina,37137,3,0 +2020-04-08,Pamlico,North Carolina,37137,3,0 +2020-04-09,Pamlico,North Carolina,37137,3,0 +2020-04-10,Pamlico,North Carolina,37137,3,0 +2020-04-11,Pamlico,North Carolina,37137,5,0 +2020-04-12,Pamlico,North Carolina,37137,6,0 +2020-04-13,Pamlico,North Carolina,37137,6,0 +2020-04-14,Pamlico,North Carolina,37137,6,0 +2020-04-15,Pamlico,North Carolina,37137,6,0 +2020-04-16,Pamlico,North Carolina,37137,6,0 +2020-04-17,Pamlico,North Carolina,37137,6,0 +2020-04-18,Pamlico,North Carolina,37137,6,0 +2020-04-19,Pamlico,North Carolina,37137,6,0 +2020-04-20,Pamlico,North Carolina,37137,6,0 +2020-04-21,Pamlico,North Carolina,37137,6,0 +2020-04-22,Pamlico,North Carolina,37137,6,0 +2020-04-23,Pamlico,North Carolina,37137,6,0 +2020-04-24,Pamlico,North Carolina,37137,7,0 +2020-04-25,Pamlico,North Carolina,37137,7,0 +2020-04-26,Pamlico,North Carolina,37137,7,0 +2020-04-27,Pamlico,North Carolina,37137,7,0 +2020-04-28,Pamlico,North Carolina,37137,7,0 +2020-04-29,Pamlico,North Carolina,37137,7,0 +2020-04-30,Pamlico,North Carolina,37137,7,0 +2020-05-01,Pamlico,North Carolina,37137,7,0 +2020-05-02,Pamlico,North Carolina,37137,8,0 +2020-05-03,Pamlico,North Carolina,37137,8,0 +2020-05-04,Pamlico,North Carolina,37137,8,0 +2020-05-05,Pamlico,North Carolina,37137,8,0 +2020-05-06,Pamlico,North Carolina,37137,8,0 +2020-05-07,Pamlico,North Carolina,37137,8,0 +2020-05-08,Pamlico,North Carolina,37137,8,0 +2020-05-09,Pamlico,North Carolina,37137,8,0 +2020-05-10,Pamlico,North Carolina,37137,8,0 +2020-05-11,Pamlico,North Carolina,37137,8,0 +2020-05-12,Pamlico,North Carolina,37137,8,0 +2020-05-13,Pamlico,North Carolina,37137,8,0 +2020-05-14,Pamlico,North Carolina,37137,8,0 +2020-05-15,Pamlico,North Carolina,37137,8,0 +2020-05-16,Pamlico,North Carolina,37137,8,0 +2020-05-17,Pamlico,North Carolina,37137,8,0 +2020-05-18,Pamlico,North Carolina,37137,9,0 +2020-05-19,Pamlico,North Carolina,37137,9,0 +2020-05-20,Pamlico,North Carolina,37137,9,0 +2020-05-21,Pamlico,North Carolina,37137,9,0 +2020-05-22,Pamlico,North Carolina,37137,10,0 +2020-05-23,Pamlico,North Carolina,37137,9,0 +2020-05-24,Pamlico,North Carolina,37137,9,0 +2020-05-25,Pamlico,North Carolina,37137,9,0 +2020-05-26,Pamlico,North Carolina,37137,9,0 +2020-05-27,Pamlico,North Carolina,37137,9,0 +2020-05-28,Pamlico,North Carolina,37137,9,0 +2020-05-29,Pamlico,North Carolina,37137,9,0 +2020-05-30,Pamlico,North Carolina,37137,10,0 +2020-05-31,Pamlico,North Carolina,37137,10,0 +2020-06-01,Pamlico,North Carolina,37137,10,0 +2020-06-02,Pamlico,North Carolina,37137,10,0 +2020-06-03,Pamlico,North Carolina,37137,10,0 +2020-06-04,Pamlico,North Carolina,37137,10,0 +2020-06-05,Pamlico,North Carolina,37137,10,0 +2020-06-06,Pamlico,North Carolina,37137,10,0 +2020-06-07,Pamlico,North Carolina,37137,12,0 +2020-06-08,Pamlico,North Carolina,37137,13,0 +2020-06-09,Pamlico,North Carolina,37137,13,0 +2020-06-10,Pamlico,North Carolina,37137,13,0 +2020-06-11,Pamlico,North Carolina,37137,14,0 +2020-06-12,Pamlico,North Carolina,37137,15,0 +2020-06-13,Pamlico,North Carolina,37137,15,0 +2020-06-14,Pamlico,North Carolina,37137,15,0 +2020-06-15,Pamlico,North Carolina,37137,15,0 +2020-06-16,Pamlico,North Carolina,37137,15,0 +2020-06-17,Pamlico,North Carolina,37137,15,0 +2020-06-18,Pamlico,North Carolina,37137,15,0 +2020-06-19,Pamlico,North Carolina,37137,16,0 +2020-06-20,Pamlico,North Carolina,37137,15,0 +2020-06-21,Pamlico,North Carolina,37137,15,0 +2020-06-22,Pamlico,North Carolina,37137,17,0 +2020-06-23,Pamlico,North Carolina,37137,16,0 +2020-06-24,Pamlico,North Carolina,37137,16,0 +2020-06-25,Pamlico,North Carolina,37137,18,0 +2020-06-26,Pamlico,North Carolina,37137,18,0 +2020-06-27,Pamlico,North Carolina,37137,18,0 +2020-06-28,Pamlico,North Carolina,37137,19,0 +2020-06-29,Pamlico,North Carolina,37137,19,0 +2020-06-30,Pamlico,North Carolina,37137,21,0 +2020-07-01,Pamlico,North Carolina,37137,21,0 +2020-07-02,Pamlico,North Carolina,37137,22,0 +2020-07-03,Pamlico,North Carolina,37137,23,0 +2020-07-04,Pamlico,North Carolina,37137,25,0 +2020-07-05,Pamlico,North Carolina,37137,25,0 +2020-07-06,Pamlico,North Carolina,37137,26,0 +2020-07-07,Pamlico,North Carolina,37137,26,0 +2020-07-08,Pamlico,North Carolina,37137,28,0 +2020-07-09,Pamlico,North Carolina,37137,27,0 +2020-03-20,Pasquotank,North Carolina,37139,1,0 +2020-03-21,Pasquotank,North Carolina,37139,1,0 +2020-03-22,Pasquotank,North Carolina,37139,1,0 +2020-03-23,Pasquotank,North Carolina,37139,1,0 +2020-03-24,Pasquotank,North Carolina,37139,1,0 +2020-03-25,Pasquotank,North Carolina,37139,1,0 +2020-03-26,Pasquotank,North Carolina,37139,1,0 +2020-03-27,Pasquotank,North Carolina,37139,1,0 +2020-03-28,Pasquotank,North Carolina,37139,1,0 +2020-03-29,Pasquotank,North Carolina,37139,2,0 +2020-03-30,Pasquotank,North Carolina,37139,2,0 +2020-03-31,Pasquotank,North Carolina,37139,4,0 +2020-04-01,Pasquotank,North Carolina,37139,4,0 +2020-04-02,Pasquotank,North Carolina,37139,7,0 +2020-04-03,Pasquotank,North Carolina,37139,7,0 +2020-04-04,Pasquotank,North Carolina,37139,8,0 +2020-04-05,Pasquotank,North Carolina,37139,8,0 +2020-04-06,Pasquotank,North Carolina,37139,8,0 +2020-04-07,Pasquotank,North Carolina,37139,9,0 +2020-04-08,Pasquotank,North Carolina,37139,10,0 +2020-04-09,Pasquotank,North Carolina,37139,10,0 +2020-04-10,Pasquotank,North Carolina,37139,11,0 +2020-04-11,Pasquotank,North Carolina,37139,15,0 +2020-04-12,Pasquotank,North Carolina,37139,15,0 +2020-04-13,Pasquotank,North Carolina,37139,15,0 +2020-04-14,Pasquotank,North Carolina,37139,15,0 +2020-04-15,Pasquotank,North Carolina,37139,15,0 +2020-04-16,Pasquotank,North Carolina,37139,16,0 +2020-04-17,Pasquotank,North Carolina,37139,20,0 +2020-04-18,Pasquotank,North Carolina,37139,20,0 +2020-04-19,Pasquotank,North Carolina,37139,20,0 +2020-04-20,Pasquotank,North Carolina,37139,32,0 +2020-04-21,Pasquotank,North Carolina,37139,32,1 +2020-04-22,Pasquotank,North Carolina,37139,32,1 +2020-04-23,Pasquotank,North Carolina,37139,33,1 +2020-04-24,Pasquotank,North Carolina,37139,34,1 +2020-04-25,Pasquotank,North Carolina,37139,34,1 +2020-04-26,Pasquotank,North Carolina,37139,34,1 +2020-04-27,Pasquotank,North Carolina,37139,34,1 +2020-04-28,Pasquotank,North Carolina,37139,35,1 +2020-04-29,Pasquotank,North Carolina,37139,36,1 +2020-04-30,Pasquotank,North Carolina,37139,36,1 +2020-05-01,Pasquotank,North Carolina,37139,36,1 +2020-05-02,Pasquotank,North Carolina,37139,36,1 +2020-05-03,Pasquotank,North Carolina,37139,37,1 +2020-05-04,Pasquotank,North Carolina,37139,37,1 +2020-05-05,Pasquotank,North Carolina,37139,38,1 +2020-05-06,Pasquotank,North Carolina,37139,38,2 +2020-05-07,Pasquotank,North Carolina,37139,39,2 +2020-05-08,Pasquotank,North Carolina,37139,75,3 +2020-05-09,Pasquotank,North Carolina,37139,81,3 +2020-05-10,Pasquotank,North Carolina,37139,82,3 +2020-05-11,Pasquotank,North Carolina,37139,81,3 +2020-05-12,Pasquotank,North Carolina,37139,81,5 +2020-05-13,Pasquotank,North Carolina,37139,81,5 +2020-05-14,Pasquotank,North Carolina,37139,80,5 +2020-05-15,Pasquotank,North Carolina,37139,83,5 +2020-05-16,Pasquotank,North Carolina,37139,87,5 +2020-05-17,Pasquotank,North Carolina,37139,88,7 +2020-05-18,Pasquotank,North Carolina,37139,87,7 +2020-05-19,Pasquotank,North Carolina,37139,87,7 +2020-05-20,Pasquotank,North Carolina,37139,90,7 +2020-05-21,Pasquotank,North Carolina,37139,93,7 +2020-05-22,Pasquotank,North Carolina,37139,95,8 +2020-05-23,Pasquotank,North Carolina,37139,95,8 +2020-05-24,Pasquotank,North Carolina,37139,96,8 +2020-05-25,Pasquotank,North Carolina,37139,96,8 +2020-05-26,Pasquotank,North Carolina,37139,96,8 +2020-05-27,Pasquotank,North Carolina,37139,100,9 +2020-05-28,Pasquotank,North Carolina,37139,102,9 +2020-05-29,Pasquotank,North Carolina,37139,104,10 +2020-05-30,Pasquotank,North Carolina,37139,105,11 +2020-05-31,Pasquotank,North Carolina,37139,105,11 +2020-06-01,Pasquotank,North Carolina,37139,105,12 +2020-06-02,Pasquotank,North Carolina,37139,110,12 +2020-06-03,Pasquotank,North Carolina,37139,112,12 +2020-06-04,Pasquotank,North Carolina,37139,115,12 +2020-06-05,Pasquotank,North Carolina,37139,117,13 +2020-06-06,Pasquotank,North Carolina,37139,119,13 +2020-06-07,Pasquotank,North Carolina,37139,117,13 +2020-06-08,Pasquotank,North Carolina,37139,114,13 +2020-06-09,Pasquotank,North Carolina,37139,115,13 +2020-06-10,Pasquotank,North Carolina,37139,120,14 +2020-06-11,Pasquotank,North Carolina,37139,125,14 +2020-06-12,Pasquotank,North Carolina,37139,128,14 +2020-06-13,Pasquotank,North Carolina,37139,131,14 +2020-06-14,Pasquotank,North Carolina,37139,131,14 +2020-06-15,Pasquotank,North Carolina,37139,131,14 +2020-06-16,Pasquotank,North Carolina,37139,131,14 +2020-06-17,Pasquotank,North Carolina,37139,147,15 +2020-06-18,Pasquotank,North Carolina,37139,152,15 +2020-06-19,Pasquotank,North Carolina,37139,153,15 +2020-06-20,Pasquotank,North Carolina,37139,155,15 +2020-06-21,Pasquotank,North Carolina,37139,163,15 +2020-06-22,Pasquotank,North Carolina,37139,164,15 +2020-06-23,Pasquotank,North Carolina,37139,168,15 +2020-06-24,Pasquotank,North Carolina,37139,172,15 +2020-06-25,Pasquotank,North Carolina,37139,172,15 +2020-06-26,Pasquotank,North Carolina,37139,180,15 +2020-06-27,Pasquotank,North Carolina,37139,198,15 +2020-06-28,Pasquotank,North Carolina,37139,204,15 +2020-06-29,Pasquotank,North Carolina,37139,204,15 +2020-06-30,Pasquotank,North Carolina,37139,203,15 +2020-07-01,Pasquotank,North Carolina,37139,210,17 +2020-07-02,Pasquotank,North Carolina,37139,212,17 +2020-07-03,Pasquotank,North Carolina,37139,217,17 +2020-07-04,Pasquotank,North Carolina,37139,218,17 +2020-07-05,Pasquotank,North Carolina,37139,220,17 +2020-07-06,Pasquotank,North Carolina,37139,221,17 +2020-07-07,Pasquotank,North Carolina,37139,225,17 +2020-07-08,Pasquotank,North Carolina,37139,233,17 +2020-07-09,Pasquotank,North Carolina,37139,233,17 +2020-04-05,Pender,North Carolina,37141,1,0 +2020-04-06,Pender,North Carolina,37141,2,0 +2020-04-07,Pender,North Carolina,37141,2,0 +2020-04-08,Pender,North Carolina,37141,2,0 +2020-04-09,Pender,North Carolina,37141,3,0 +2020-04-10,Pender,North Carolina,37141,4,0 +2020-04-11,Pender,North Carolina,37141,5,0 +2020-04-12,Pender,North Carolina,37141,5,0 +2020-04-13,Pender,North Carolina,37141,5,0 +2020-04-14,Pender,North Carolina,37141,5,0 +2020-04-15,Pender,North Carolina,37141,5,0 +2020-04-16,Pender,North Carolina,37141,5,0 +2020-04-17,Pender,North Carolina,37141,5,0 +2020-04-18,Pender,North Carolina,37141,6,0 +2020-04-19,Pender,North Carolina,37141,7,0 +2020-04-20,Pender,North Carolina,37141,8,0 +2020-04-21,Pender,North Carolina,37141,9,0 +2020-04-22,Pender,North Carolina,37141,9,0 +2020-04-23,Pender,North Carolina,37141,10,0 +2020-04-24,Pender,North Carolina,37141,10,0 +2020-04-25,Pender,North Carolina,37141,10,0 +2020-04-26,Pender,North Carolina,37141,10,0 +2020-04-27,Pender,North Carolina,37141,10,0 +2020-04-28,Pender,North Carolina,37141,10,0 +2020-04-29,Pender,North Carolina,37141,11,0 +2020-04-30,Pender,North Carolina,37141,13,0 +2020-05-01,Pender,North Carolina,37141,13,0 +2020-05-02,Pender,North Carolina,37141,16,0 +2020-05-03,Pender,North Carolina,37141,16,0 +2020-05-04,Pender,North Carolina,37141,17,0 +2020-05-05,Pender,North Carolina,37141,16,1 +2020-05-06,Pender,North Carolina,37141,19,1 +2020-05-07,Pender,North Carolina,37141,20,1 +2020-05-08,Pender,North Carolina,37141,23,1 +2020-05-09,Pender,North Carolina,37141,36,1 +2020-05-10,Pender,North Carolina,37141,39,1 +2020-05-11,Pender,North Carolina,37141,39,1 +2020-05-12,Pender,North Carolina,37141,38,1 +2020-05-13,Pender,North Carolina,37141,40,1 +2020-05-14,Pender,North Carolina,37141,43,1 +2020-05-15,Pender,North Carolina,37141,42,1 +2020-05-16,Pender,North Carolina,37141,44,1 +2020-05-17,Pender,North Carolina,37141,45,1 +2020-05-18,Pender,North Carolina,37141,49,1 +2020-05-19,Pender,North Carolina,37141,50,1 +2020-05-20,Pender,North Carolina,37141,50,1 +2020-05-21,Pender,North Carolina,37141,59,1 +2020-05-22,Pender,North Carolina,37141,61,1 +2020-05-23,Pender,North Carolina,37141,65,1 +2020-05-24,Pender,North Carolina,37141,70,1 +2020-05-25,Pender,North Carolina,37141,72,1 +2020-05-26,Pender,North Carolina,37141,72,1 +2020-05-27,Pender,North Carolina,37141,74,1 +2020-05-28,Pender,North Carolina,37141,74,1 +2020-05-29,Pender,North Carolina,37141,75,1 +2020-05-30,Pender,North Carolina,37141,75,1 +2020-05-31,Pender,North Carolina,37141,80,1 +2020-06-01,Pender,North Carolina,37141,83,1 +2020-06-02,Pender,North Carolina,37141,81,1 +2020-06-03,Pender,North Carolina,37141,82,1 +2020-06-04,Pender,North Carolina,37141,91,1 +2020-06-05,Pender,North Carolina,37141,98,1 +2020-06-06,Pender,North Carolina,37141,103,1 +2020-06-07,Pender,North Carolina,37141,108,1 +2020-06-08,Pender,North Carolina,37141,113,1 +2020-06-09,Pender,North Carolina,37141,115,1 +2020-06-10,Pender,North Carolina,37141,117,1 +2020-06-11,Pender,North Carolina,37141,122,1 +2020-06-12,Pender,North Carolina,37141,123,1 +2020-06-13,Pender,North Carolina,37141,129,1 +2020-06-14,Pender,North Carolina,37141,140,1 +2020-06-15,Pender,North Carolina,37141,143,1 +2020-06-16,Pender,North Carolina,37141,143,1 +2020-06-17,Pender,North Carolina,37141,145,1 +2020-06-18,Pender,North Carolina,37141,149,1 +2020-06-19,Pender,North Carolina,37141,165,1 +2020-06-20,Pender,North Carolina,37141,162,1 +2020-06-21,Pender,North Carolina,37141,166,1 +2020-06-22,Pender,North Carolina,37141,177,1 +2020-06-23,Pender,North Carolina,37141,177,1 +2020-06-24,Pender,North Carolina,37141,187,1 +2020-06-25,Pender,North Carolina,37141,213,1 +2020-06-26,Pender,North Carolina,37141,221,1 +2020-06-27,Pender,North Carolina,37141,222,1 +2020-06-28,Pender,North Carolina,37141,235,1 +2020-06-29,Pender,North Carolina,37141,243,1 +2020-06-30,Pender,North Carolina,37141,247,1 +2020-07-01,Pender,North Carolina,37141,262,1 +2020-07-02,Pender,North Carolina,37141,271,2 +2020-07-03,Pender,North Carolina,37141,291,2 +2020-07-04,Pender,North Carolina,37141,296,2 +2020-07-05,Pender,North Carolina,37141,298,2 +2020-07-06,Pender,North Carolina,37141,303,2 +2020-07-07,Pender,North Carolina,37141,303,2 +2020-07-08,Pender,North Carolina,37141,314,2 +2020-07-09,Pender,North Carolina,37141,330,2 +2020-03-28,Perquimans,North Carolina,37143,1,0 +2020-03-29,Perquimans,North Carolina,37143,1,0 +2020-03-30,Perquimans,North Carolina,37143,1,0 +2020-03-31,Perquimans,North Carolina,37143,1,0 +2020-04-01,Perquimans,North Carolina,37143,1,0 +2020-04-02,Perquimans,North Carolina,37143,1,0 +2020-04-03,Perquimans,North Carolina,37143,1,0 +2020-04-04,Perquimans,North Carolina,37143,1,0 +2020-04-05,Perquimans,North Carolina,37143,2,0 +2020-04-06,Perquimans,North Carolina,37143,2,0 +2020-04-07,Perquimans,North Carolina,37143,2,0 +2020-04-08,Perquimans,North Carolina,37143,2,0 +2020-04-09,Perquimans,North Carolina,37143,2,0 +2020-04-10,Perquimans,North Carolina,37143,3,0 +2020-04-11,Perquimans,North Carolina,37143,4,0 +2020-04-12,Perquimans,North Carolina,37143,4,0 +2020-04-13,Perquimans,North Carolina,37143,4,0 +2020-04-14,Perquimans,North Carolina,37143,8,0 +2020-04-15,Perquimans,North Carolina,37143,8,0 +2020-04-16,Perquimans,North Carolina,37143,8,0 +2020-04-17,Perquimans,North Carolina,37143,8,0 +2020-04-18,Perquimans,North Carolina,37143,8,0 +2020-04-19,Perquimans,North Carolina,37143,8,0 +2020-04-20,Perquimans,North Carolina,37143,8,0 +2020-04-21,Perquimans,North Carolina,37143,8,0 +2020-04-22,Perquimans,North Carolina,37143,8,0 +2020-04-23,Perquimans,North Carolina,37143,8,0 +2020-04-24,Perquimans,North Carolina,37143,10,0 +2020-04-25,Perquimans,North Carolina,37143,10,0 +2020-04-26,Perquimans,North Carolina,37143,10,0 +2020-04-27,Perquimans,North Carolina,37143,11,0 +2020-04-28,Perquimans,North Carolina,37143,12,0 +2020-04-29,Perquimans,North Carolina,37143,13,0 +2020-04-30,Perquimans,North Carolina,37143,13,0 +2020-05-01,Perquimans,North Carolina,37143,14,0 +2020-05-02,Perquimans,North Carolina,37143,14,1 +2020-05-03,Perquimans,North Carolina,37143,14,1 +2020-05-04,Perquimans,North Carolina,37143,14,1 +2020-05-05,Perquimans,North Carolina,37143,14,2 +2020-05-06,Perquimans,North Carolina,37143,14,2 +2020-05-07,Perquimans,North Carolina,37143,14,2 +2020-05-08,Perquimans,North Carolina,37143,14,2 +2020-05-09,Perquimans,North Carolina,37143,17,2 +2020-05-10,Perquimans,North Carolina,37143,17,2 +2020-05-11,Perquimans,North Carolina,37143,17,2 +2020-05-12,Perquimans,North Carolina,37143,19,2 +2020-05-13,Perquimans,North Carolina,37143,19,2 +2020-05-14,Perquimans,North Carolina,37143,20,2 +2020-05-15,Perquimans,North Carolina,37143,21,2 +2020-05-16,Perquimans,North Carolina,37143,23,2 +2020-05-17,Perquimans,North Carolina,37143,23,2 +2020-05-18,Perquimans,North Carolina,37143,23,2 +2020-05-19,Perquimans,North Carolina,37143,22,2 +2020-05-20,Perquimans,North Carolina,37143,22,2 +2020-05-21,Perquimans,North Carolina,37143,23,2 +2020-05-22,Perquimans,North Carolina,37143,22,2 +2020-05-23,Perquimans,North Carolina,37143,23,2 +2020-05-24,Perquimans,North Carolina,37143,23,2 +2020-05-25,Perquimans,North Carolina,37143,23,2 +2020-05-26,Perquimans,North Carolina,37143,23,2 +2020-05-27,Perquimans,North Carolina,37143,23,2 +2020-05-28,Perquimans,North Carolina,37143,23,2 +2020-05-29,Perquimans,North Carolina,37143,24,2 +2020-05-30,Perquimans,North Carolina,37143,24,2 +2020-05-31,Perquimans,North Carolina,37143,24,2 +2020-06-01,Perquimans,North Carolina,37143,24,2 +2020-06-02,Perquimans,North Carolina,37143,25,2 +2020-06-03,Perquimans,North Carolina,37143,25,2 +2020-06-04,Perquimans,North Carolina,37143,25,2 +2020-06-05,Perquimans,North Carolina,37143,26,2 +2020-06-06,Perquimans,North Carolina,37143,26,2 +2020-06-07,Perquimans,North Carolina,37143,26,2 +2020-06-08,Perquimans,North Carolina,37143,25,2 +2020-06-09,Perquimans,North Carolina,37143,25,2 +2020-06-10,Perquimans,North Carolina,37143,26,2 +2020-06-11,Perquimans,North Carolina,37143,28,2 +2020-06-12,Perquimans,North Carolina,37143,29,2 +2020-06-13,Perquimans,North Carolina,37143,29,2 +2020-06-14,Perquimans,North Carolina,37143,29,2 +2020-06-15,Perquimans,North Carolina,37143,29,2 +2020-06-16,Perquimans,North Carolina,37143,30,2 +2020-06-17,Perquimans,North Carolina,37143,30,2 +2020-06-18,Perquimans,North Carolina,37143,30,2 +2020-06-19,Perquimans,North Carolina,37143,30,2 +2020-06-20,Perquimans,North Carolina,37143,30,2 +2020-06-21,Perquimans,North Carolina,37143,30,2 +2020-06-22,Perquimans,North Carolina,37143,30,2 +2020-06-23,Perquimans,North Carolina,37143,30,2 +2020-06-24,Perquimans,North Carolina,37143,32,2 +2020-06-25,Perquimans,North Carolina,37143,32,2 +2020-06-26,Perquimans,North Carolina,37143,32,2 +2020-06-27,Perquimans,North Carolina,37143,36,2 +2020-06-28,Perquimans,North Carolina,37143,36,2 +2020-06-29,Perquimans,North Carolina,37143,36,2 +2020-06-30,Perquimans,North Carolina,37143,36,2 +2020-07-01,Perquimans,North Carolina,37143,36,2 +2020-07-02,Perquimans,North Carolina,37143,36,2 +2020-07-03,Perquimans,North Carolina,37143,37,2 +2020-07-04,Perquimans,North Carolina,37143,37,2 +2020-07-05,Perquimans,North Carolina,37143,37,2 +2020-07-06,Perquimans,North Carolina,37143,37,2 +2020-07-07,Perquimans,North Carolina,37143,37,2 +2020-07-08,Perquimans,North Carolina,37143,37,2 +2020-07-09,Perquimans,North Carolina,37143,37,2 +2020-03-27,Person,North Carolina,37145,1,0 +2020-03-28,Person,North Carolina,37145,1,0 +2020-03-29,Person,North Carolina,37145,1,0 +2020-03-30,Person,North Carolina,37145,1,0 +2020-03-31,Person,North Carolina,37145,2,0 +2020-04-01,Person,North Carolina,37145,2,0 +2020-04-02,Person,North Carolina,37145,2,0 +2020-04-03,Person,North Carolina,37145,2,0 +2020-04-04,Person,North Carolina,37145,3,0 +2020-04-05,Person,North Carolina,37145,4,0 +2020-04-06,Person,North Carolina,37145,6,0 +2020-04-07,Person,North Carolina,37145,7,0 +2020-04-08,Person,North Carolina,37145,7,0 +2020-04-09,Person,North Carolina,37145,8,0 +2020-04-10,Person,North Carolina,37145,8,0 +2020-04-11,Person,North Carolina,37145,8,0 +2020-04-12,Person,North Carolina,37145,8,0 +2020-04-13,Person,North Carolina,37145,8,0 +2020-04-14,Person,North Carolina,37145,11,0 +2020-04-15,Person,North Carolina,37145,11,0 +2020-04-16,Person,North Carolina,37145,11,0 +2020-04-17,Person,North Carolina,37145,14,0 +2020-04-18,Person,North Carolina,37145,16,0 +2020-04-19,Person,North Carolina,37145,15,0 +2020-04-20,Person,North Carolina,37145,15,0 +2020-04-21,Person,North Carolina,37145,18,0 +2020-04-22,Person,North Carolina,37145,17,0 +2020-04-23,Person,North Carolina,37145,19,0 +2020-04-24,Person,North Carolina,37145,18,0 +2020-04-25,Person,North Carolina,37145,18,0 +2020-04-26,Person,North Carolina,37145,19,0 +2020-04-27,Person,North Carolina,37145,19,0 +2020-04-28,Person,North Carolina,37145,19,0 +2020-04-29,Person,North Carolina,37145,20,1 +2020-04-30,Person,North Carolina,37145,20,1 +2020-05-01,Person,North Carolina,37145,21,1 +2020-05-02,Person,North Carolina,37145,22,1 +2020-05-03,Person,North Carolina,37145,23,1 +2020-05-04,Person,North Carolina,37145,23,1 +2020-05-05,Person,North Carolina,37145,23,1 +2020-05-06,Person,North Carolina,37145,23,1 +2020-05-07,Person,North Carolina,37145,27,1 +2020-05-08,Person,North Carolina,37145,29,1 +2020-05-09,Person,North Carolina,37145,30,1 +2020-05-10,Person,North Carolina,37145,30,1 +2020-05-11,Person,North Carolina,37145,31,1 +2020-05-12,Person,North Carolina,37145,31,1 +2020-05-13,Person,North Carolina,37145,31,1 +2020-05-14,Person,North Carolina,37145,31,1 +2020-05-15,Person,North Carolina,37145,32,1 +2020-05-16,Person,North Carolina,37145,32,1 +2020-05-17,Person,North Carolina,37145,31,1 +2020-05-18,Person,North Carolina,37145,33,1 +2020-05-19,Person,North Carolina,37145,34,1 +2020-05-20,Person,North Carolina,37145,34,1 +2020-05-21,Person,North Carolina,37145,34,1 +2020-05-22,Person,North Carolina,37145,34,1 +2020-05-23,Person,North Carolina,37145,37,1 +2020-05-24,Person,North Carolina,37145,37,1 +2020-05-25,Person,North Carolina,37145,37,1 +2020-05-26,Person,North Carolina,37145,38,1 +2020-05-27,Person,North Carolina,37145,39,1 +2020-05-28,Person,North Carolina,37145,44,1 +2020-05-29,Person,North Carolina,37145,45,1 +2020-05-30,Person,North Carolina,37145,48,1 +2020-05-31,Person,North Carolina,37145,48,1 +2020-06-01,Person,North Carolina,37145,50,1 +2020-06-02,Person,North Carolina,37145,50,1 +2020-06-03,Person,North Carolina,37145,54,1 +2020-06-04,Person,North Carolina,37145,55,1 +2020-06-05,Person,North Carolina,37145,57,1 +2020-06-06,Person,North Carolina,37145,57,1 +2020-06-07,Person,North Carolina,37145,58,1 +2020-06-08,Person,North Carolina,37145,61,1 +2020-06-09,Person,North Carolina,37145,63,1 +2020-06-10,Person,North Carolina,37145,65,1 +2020-06-11,Person,North Carolina,37145,70,1 +2020-06-12,Person,North Carolina,37145,72,1 +2020-06-13,Person,North Carolina,37145,73,1 +2020-06-14,Person,North Carolina,37145,79,1 +2020-06-15,Person,North Carolina,37145,79,1 +2020-06-16,Person,North Carolina,37145,82,1 +2020-06-17,Person,North Carolina,37145,83,1 +2020-06-18,Person,North Carolina,37145,86,1 +2020-06-19,Person,North Carolina,37145,88,1 +2020-06-20,Person,North Carolina,37145,91,1 +2020-06-21,Person,North Carolina,37145,92,1 +2020-06-22,Person,North Carolina,37145,92,1 +2020-06-23,Person,North Carolina,37145,92,1 +2020-06-24,Person,North Carolina,37145,97,1 +2020-06-25,Person,North Carolina,37145,96,1 +2020-06-26,Person,North Carolina,37145,100,1 +2020-06-27,Person,North Carolina,37145,103,1 +2020-06-28,Person,North Carolina,37145,104,1 +2020-06-29,Person,North Carolina,37145,107,1 +2020-06-30,Person,North Carolina,37145,106,1 +2020-07-01,Person,North Carolina,37145,107,1 +2020-07-02,Person,North Carolina,37145,107,1 +2020-07-03,Person,North Carolina,37145,112,1 +2020-07-04,Person,North Carolina,37145,114,1 +2020-07-05,Person,North Carolina,37145,117,1 +2020-07-06,Person,North Carolina,37145,120,1 +2020-07-07,Person,North Carolina,37145,123,1 +2020-07-08,Person,North Carolina,37145,124,1 +2020-07-09,Person,North Carolina,37145,125,1 +2020-03-20,Pitt,North Carolina,37147,1,0 +2020-03-21,Pitt,North Carolina,37147,1,0 +2020-03-22,Pitt,North Carolina,37147,3,0 +2020-03-23,Pitt,North Carolina,37147,3,0 +2020-03-24,Pitt,North Carolina,37147,5,0 +2020-03-25,Pitt,North Carolina,37147,6,0 +2020-03-26,Pitt,North Carolina,37147,8,0 +2020-03-27,Pitt,North Carolina,37147,10,0 +2020-03-28,Pitt,North Carolina,37147,13,0 +2020-03-29,Pitt,North Carolina,37147,15,0 +2020-03-30,Pitt,North Carolina,37147,16,0 +2020-03-31,Pitt,North Carolina,37147,27,0 +2020-04-01,Pitt,North Carolina,37147,27,0 +2020-04-02,Pitt,North Carolina,37147,29,0 +2020-04-03,Pitt,North Carolina,37147,31,0 +2020-04-04,Pitt,North Carolina,37147,35,0 +2020-04-05,Pitt,North Carolina,37147,36,0 +2020-04-06,Pitt,North Carolina,37147,36,0 +2020-04-07,Pitt,North Carolina,37147,44,0 +2020-04-08,Pitt,North Carolina,37147,51,0 +2020-04-09,Pitt,North Carolina,37147,57,0 +2020-04-10,Pitt,North Carolina,37147,60,1 +2020-04-11,Pitt,North Carolina,37147,62,1 +2020-04-12,Pitt,North Carolina,37147,63,1 +2020-04-13,Pitt,North Carolina,37147,65,1 +2020-04-14,Pitt,North Carolina,37147,68,1 +2020-04-15,Pitt,North Carolina,37147,69,1 +2020-04-16,Pitt,North Carolina,37147,80,1 +2020-04-17,Pitt,North Carolina,37147,83,1 +2020-04-18,Pitt,North Carolina,37147,89,1 +2020-04-19,Pitt,North Carolina,37147,93,1 +2020-04-20,Pitt,North Carolina,37147,93,1 +2020-04-21,Pitt,North Carolina,37147,96,1 +2020-04-22,Pitt,North Carolina,37147,99,1 +2020-04-23,Pitt,North Carolina,37147,100,2 +2020-04-24,Pitt,North Carolina,37147,104,2 +2020-04-25,Pitt,North Carolina,37147,111,2 +2020-04-26,Pitt,North Carolina,37147,111,2 +2020-04-27,Pitt,North Carolina,37147,110,2 +2020-04-28,Pitt,North Carolina,37147,115,2 +2020-04-29,Pitt,North Carolina,37147,120,2 +2020-04-30,Pitt,North Carolina,37147,123,2 +2020-05-01,Pitt,North Carolina,37147,124,2 +2020-05-02,Pitt,North Carolina,37147,128,2 +2020-05-03,Pitt,North Carolina,37147,129,2 +2020-05-04,Pitt,North Carolina,37147,135,2 +2020-05-05,Pitt,North Carolina,37147,144,2 +2020-05-06,Pitt,North Carolina,37147,145,2 +2020-05-07,Pitt,North Carolina,37147,152,2 +2020-05-08,Pitt,North Carolina,37147,160,2 +2020-05-09,Pitt,North Carolina,37147,162,2 +2020-05-10,Pitt,North Carolina,37147,165,2 +2020-05-11,Pitt,North Carolina,37147,169,2 +2020-05-12,Pitt,North Carolina,37147,178,2 +2020-05-13,Pitt,North Carolina,37147,182,2 +2020-05-14,Pitt,North Carolina,37147,185,2 +2020-05-15,Pitt,North Carolina,37147,196,2 +2020-05-16,Pitt,North Carolina,37147,202,2 +2020-05-17,Pitt,North Carolina,37147,207,2 +2020-05-18,Pitt,North Carolina,37147,213,2 +2020-05-19,Pitt,North Carolina,37147,221,2 +2020-05-20,Pitt,North Carolina,37147,228,2 +2020-05-21,Pitt,North Carolina,37147,234,2 +2020-05-22,Pitt,North Carolina,37147,246,2 +2020-05-23,Pitt,North Carolina,37147,254,2 +2020-05-24,Pitt,North Carolina,37147,257,2 +2020-05-25,Pitt,North Carolina,37147,264,2 +2020-05-26,Pitt,North Carolina,37147,267,2 +2020-05-27,Pitt,North Carolina,37147,267,2 +2020-05-28,Pitt,North Carolina,37147,273,2 +2020-05-29,Pitt,North Carolina,37147,286,2 +2020-05-30,Pitt,North Carolina,37147,295,2 +2020-05-31,Pitt,North Carolina,37147,304,2 +2020-06-01,Pitt,North Carolina,37147,313,2 +2020-06-02,Pitt,North Carolina,37147,316,2 +2020-06-03,Pitt,North Carolina,37147,321,2 +2020-06-04,Pitt,North Carolina,37147,326,2 +2020-06-05,Pitt,North Carolina,37147,332,2 +2020-06-06,Pitt,North Carolina,37147,382,2 +2020-06-07,Pitt,North Carolina,37147,394,2 +2020-06-08,Pitt,North Carolina,37147,397,2 +2020-06-09,Pitt,North Carolina,37147,404,2 +2020-06-10,Pitt,North Carolina,37147,416,2 +2020-06-11,Pitt,North Carolina,37147,432,2 +2020-06-12,Pitt,North Carolina,37147,451,2 +2020-06-13,Pitt,North Carolina,37147,464,2 +2020-06-14,Pitt,North Carolina,37147,481,2 +2020-06-15,Pitt,North Carolina,37147,493,2 +2020-06-16,Pitt,North Carolina,37147,500,2 +2020-06-17,Pitt,North Carolina,37147,502,3 +2020-06-18,Pitt,North Carolina,37147,507,3 +2020-06-19,Pitt,North Carolina,37147,528,3 +2020-06-20,Pitt,North Carolina,37147,553,4 +2020-06-21,Pitt,North Carolina,37147,561,4 +2020-06-22,Pitt,North Carolina,37147,567,4 +2020-06-23,Pitt,North Carolina,37147,579,4 +2020-06-24,Pitt,North Carolina,37147,602,5 +2020-06-25,Pitt,North Carolina,37147,611,5 +2020-06-26,Pitt,North Carolina,37147,638,5 +2020-06-27,Pitt,North Carolina,37147,650,5 +2020-06-28,Pitt,North Carolina,37147,660,6 +2020-06-29,Pitt,North Carolina,37147,679,6 +2020-06-30,Pitt,North Carolina,37147,696,6 +2020-07-01,Pitt,North Carolina,37147,709,6 +2020-07-02,Pitt,North Carolina,37147,732,6 +2020-07-03,Pitt,North Carolina,37147,758,6 +2020-07-04,Pitt,North Carolina,37147,785,6 +2020-07-05,Pitt,North Carolina,37147,804,6 +2020-07-06,Pitt,North Carolina,37147,822,6 +2020-07-07,Pitt,North Carolina,37147,844,6 +2020-07-08,Pitt,North Carolina,37147,858,6 +2020-07-09,Pitt,North Carolina,37147,876,6 +2020-03-28,Polk,North Carolina,37149,2,0 +2020-03-29,Polk,North Carolina,37149,2,0 +2020-03-30,Polk,North Carolina,37149,2,0 +2020-03-31,Polk,North Carolina,37149,3,0 +2020-04-01,Polk,North Carolina,37149,4,0 +2020-04-02,Polk,North Carolina,37149,4,0 +2020-04-03,Polk,North Carolina,37149,6,0 +2020-04-04,Polk,North Carolina,37149,6,0 +2020-04-05,Polk,North Carolina,37149,6,0 +2020-04-06,Polk,North Carolina,37149,8,0 +2020-04-07,Polk,North Carolina,37149,8,0 +2020-04-08,Polk,North Carolina,37149,8,0 +2020-04-09,Polk,North Carolina,37149,8,0 +2020-04-10,Polk,North Carolina,37149,8,0 +2020-04-11,Polk,North Carolina,37149,9,0 +2020-04-12,Polk,North Carolina,37149,9,0 +2020-04-13,Polk,North Carolina,37149,9,0 +2020-04-14,Polk,North Carolina,37149,9,0 +2020-04-15,Polk,North Carolina,37149,9,0 +2020-04-16,Polk,North Carolina,37149,9,0 +2020-04-17,Polk,North Carolina,37149,9,0 +2020-04-18,Polk,North Carolina,37149,10,0 +2020-04-19,Polk,North Carolina,37149,10,0 +2020-04-20,Polk,North Carolina,37149,10,0 +2020-04-21,Polk,North Carolina,37149,10,0 +2020-04-22,Polk,North Carolina,37149,11,0 +2020-04-23,Polk,North Carolina,37149,11,0 +2020-04-24,Polk,North Carolina,37149,13,0 +2020-04-25,Polk,North Carolina,37149,12,0 +2020-04-26,Polk,North Carolina,37149,12,0 +2020-04-27,Polk,North Carolina,37149,17,0 +2020-04-28,Polk,North Carolina,37149,17,0 +2020-04-29,Polk,North Carolina,37149,19,0 +2020-04-30,Polk,North Carolina,37149,20,0 +2020-05-01,Polk,North Carolina,37149,20,0 +2020-05-02,Polk,North Carolina,37149,23,0 +2020-05-03,Polk,North Carolina,37149,25,0 +2020-05-04,Polk,North Carolina,37149,25,0 +2020-05-05,Polk,North Carolina,37149,26,0 +2020-05-06,Polk,North Carolina,37149,27,0 +2020-05-07,Polk,North Carolina,37149,30,0 +2020-05-08,Polk,North Carolina,37149,31,0 +2020-05-09,Polk,North Carolina,37149,29,0 +2020-05-10,Polk,North Carolina,37149,29,0 +2020-05-11,Polk,North Carolina,37149,29,0 +2020-05-12,Polk,North Carolina,37149,29,0 +2020-05-13,Polk,North Carolina,37149,29,3 +2020-05-14,Polk,North Carolina,37149,32,3 +2020-05-15,Polk,North Carolina,37149,31,3 +2020-05-16,Polk,North Carolina,37149,31,3 +2020-05-17,Polk,North Carolina,37149,31,3 +2020-05-18,Polk,North Carolina,37149,31,3 +2020-05-19,Polk,North Carolina,37149,35,3 +2020-05-20,Polk,North Carolina,37149,35,3 +2020-05-21,Polk,North Carolina,37149,35,4 +2020-05-22,Polk,North Carolina,37149,35,4 +2020-05-23,Polk,North Carolina,37149,35,4 +2020-05-24,Polk,North Carolina,37149,35,4 +2020-05-25,Polk,North Carolina,37149,35,4 +2020-05-26,Polk,North Carolina,37149,35,4 +2020-05-27,Polk,North Carolina,37149,35,4 +2020-05-28,Polk,North Carolina,37149,35,4 +2020-05-29,Polk,North Carolina,37149,35,4 +2020-05-30,Polk,North Carolina,37149,36,4 +2020-05-31,Polk,North Carolina,37149,37,4 +2020-06-01,Polk,North Carolina,37149,37,4 +2020-06-02,Polk,North Carolina,37149,37,4 +2020-06-03,Polk,North Carolina,37149,39,4 +2020-06-04,Polk,North Carolina,37149,43,4 +2020-06-05,Polk,North Carolina,37149,45,4 +2020-06-06,Polk,North Carolina,37149,47,4 +2020-06-07,Polk,North Carolina,37149,47,4 +2020-06-08,Polk,North Carolina,37149,48,4 +2020-06-09,Polk,North Carolina,37149,48,4 +2020-06-10,Polk,North Carolina,37149,51,4 +2020-06-11,Polk,North Carolina,37149,51,4 +2020-06-12,Polk,North Carolina,37149,53,4 +2020-06-13,Polk,North Carolina,37149,55,4 +2020-06-14,Polk,North Carolina,37149,55,4 +2020-06-15,Polk,North Carolina,37149,55,4 +2020-06-16,Polk,North Carolina,37149,55,4 +2020-06-17,Polk,North Carolina,37149,56,4 +2020-06-18,Polk,North Carolina,37149,61,4 +2020-06-19,Polk,North Carolina,37149,63,4 +2020-06-20,Polk,North Carolina,37149,63,4 +2020-06-21,Polk,North Carolina,37149,65,4 +2020-06-22,Polk,North Carolina,37149,65,4 +2020-06-23,Polk,North Carolina,37149,67,4 +2020-06-24,Polk,North Carolina,37149,67,4 +2020-06-25,Polk,North Carolina,37149,67,4 +2020-06-26,Polk,North Carolina,37149,68,4 +2020-06-27,Polk,North Carolina,37149,68,4 +2020-06-28,Polk,North Carolina,37149,72,4 +2020-06-29,Polk,North Carolina,37149,73,4 +2020-06-30,Polk,North Carolina,37149,73,4 +2020-07-01,Polk,North Carolina,37149,73,4 +2020-07-02,Polk,North Carolina,37149,74,4 +2020-07-03,Polk,North Carolina,37149,74,4 +2020-07-04,Polk,North Carolina,37149,74,4 +2020-07-05,Polk,North Carolina,37149,79,4 +2020-07-06,Polk,North Carolina,37149,85,4 +2020-07-07,Polk,North Carolina,37149,89,4 +2020-07-08,Polk,North Carolina,37149,90,4 +2020-07-09,Polk,North Carolina,37149,92,4 +2020-03-24,Randolph,North Carolina,37151,2,0 +2020-03-25,Randolph,North Carolina,37151,3,0 +2020-03-26,Randolph,North Carolina,37151,3,0 +2020-03-27,Randolph,North Carolina,37151,5,0 +2020-03-28,Randolph,North Carolina,37151,9,0 +2020-03-29,Randolph,North Carolina,37151,15,0 +2020-03-30,Randolph,North Carolina,37151,16,0 +2020-03-31,Randolph,North Carolina,37151,17,0 +2020-04-01,Randolph,North Carolina,37151,17,0 +2020-04-02,Randolph,North Carolina,37151,19,0 +2020-04-03,Randolph,North Carolina,37151,19,1 +2020-04-04,Randolph,North Carolina,37151,26,1 +2020-04-05,Randolph,North Carolina,37151,29,1 +2020-04-06,Randolph,North Carolina,37151,33,1 +2020-04-07,Randolph,North Carolina,37151,35,1 +2020-04-08,Randolph,North Carolina,37151,37,2 +2020-04-09,Randolph,North Carolina,37151,42,2 +2020-04-10,Randolph,North Carolina,37151,46,2 +2020-04-11,Randolph,North Carolina,37151,51,2 +2020-04-12,Randolph,North Carolina,37151,50,2 +2020-04-13,Randolph,North Carolina,37151,53,2 +2020-04-14,Randolph,North Carolina,37151,55,2 +2020-04-15,Randolph,North Carolina,37151,56,2 +2020-04-16,Randolph,North Carolina,37151,63,2 +2020-04-17,Randolph,North Carolina,37151,67,2 +2020-04-18,Randolph,North Carolina,37151,69,2 +2020-04-19,Randolph,North Carolina,37151,74,2 +2020-04-20,Randolph,North Carolina,37151,77,2 +2020-04-21,Randolph,North Carolina,37151,78,2 +2020-04-22,Randolph,North Carolina,37151,82,2 +2020-04-23,Randolph,North Carolina,37151,97,2 +2020-04-24,Randolph,North Carolina,37151,107,2 +2020-04-25,Randolph,North Carolina,37151,118,2 +2020-04-26,Randolph,North Carolina,37151,128,3 +2020-04-27,Randolph,North Carolina,37151,137,3 +2020-04-28,Randolph,North Carolina,37151,154,3 +2020-04-29,Randolph,North Carolina,37151,168,3 +2020-04-30,Randolph,North Carolina,37151,185,3 +2020-05-01,Randolph,North Carolina,37151,209,3 +2020-05-02,Randolph,North Carolina,37151,228,3 +2020-05-03,Randolph,North Carolina,37151,238,3 +2020-05-04,Randolph,North Carolina,37151,242,3 +2020-05-05,Randolph,North Carolina,37151,255,4 +2020-05-06,Randolph,North Carolina,37151,275,4 +2020-05-07,Randolph,North Carolina,37151,290,5 +2020-05-08,Randolph,North Carolina,37151,307,5 +2020-05-09,Randolph,North Carolina,37151,317,5 +2020-05-10,Randolph,North Carolina,37151,338,6 +2020-05-11,Randolph,North Carolina,37151,354,6 +2020-05-12,Randolph,North Carolina,37151,355,6 +2020-05-13,Randolph,North Carolina,37151,369,6 +2020-05-14,Randolph,North Carolina,37151,392,6 +2020-05-15,Randolph,North Carolina,37151,422,6 +2020-05-16,Randolph,North Carolina,37151,438,6 +2020-05-17,Randolph,North Carolina,37151,455,6 +2020-05-18,Randolph,North Carolina,37151,461,6 +2020-05-19,Randolph,North Carolina,37151,469,6 +2020-05-20,Randolph,North Carolina,37151,486,6 +2020-05-21,Randolph,North Carolina,37151,502,6 +2020-05-22,Randolph,North Carolina,37151,528,7 +2020-05-23,Randolph,North Carolina,37151,549,8 +2020-05-24,Randolph,North Carolina,37151,567,9 +2020-05-25,Randolph,North Carolina,37151,601,10 +2020-05-26,Randolph,North Carolina,37151,613,10 +2020-05-27,Randolph,North Carolina,37151,624,12 +2020-05-28,Randolph,North Carolina,37151,639,12 +2020-05-29,Randolph,North Carolina,37151,651,12 +2020-05-30,Randolph,North Carolina,37151,659,13 +2020-05-31,Randolph,North Carolina,37151,664,13 +2020-06-01,Randolph,North Carolina,37151,671,13 +2020-06-02,Randolph,North Carolina,37151,678,13 +2020-06-03,Randolph,North Carolina,37151,697,13 +2020-06-04,Randolph,North Carolina,37151,730,14 +2020-06-05,Randolph,North Carolina,37151,751,14 +2020-06-06,Randolph,North Carolina,37151,779,15 +2020-06-07,Randolph,North Carolina,37151,792,15 +2020-06-08,Randolph,North Carolina,37151,801,15 +2020-06-09,Randolph,North Carolina,37151,809,15 +2020-06-10,Randolph,North Carolina,37151,842,17 +2020-06-11,Randolph,North Carolina,37151,866,17 +2020-06-12,Randolph,North Carolina,37151,882,18 +2020-06-13,Randolph,North Carolina,37151,908,18 +2020-06-14,Randolph,North Carolina,37151,921,18 +2020-06-15,Randolph,North Carolina,37151,927,18 +2020-06-16,Randolph,North Carolina,37151,947,20 +2020-06-17,Randolph,North Carolina,37151,969,21 +2020-06-18,Randolph,North Carolina,37151,997,22 +2020-06-19,Randolph,North Carolina,37151,1013,23 +2020-06-20,Randolph,North Carolina,37151,1032,24 +2020-06-21,Randolph,North Carolina,37151,1054,26 +2020-06-22,Randolph,North Carolina,37151,1058,27 +2020-06-23,Randolph,North Carolina,37151,1068,27 +2020-06-24,Randolph,North Carolina,37151,1077,28 +2020-06-25,Randolph,North Carolina,37151,1090,28 +2020-06-26,Randolph,North Carolina,37151,1116,29 +2020-06-27,Randolph,North Carolina,37151,1137,29 +2020-06-28,Randolph,North Carolina,37151,1149,29 +2020-06-29,Randolph,North Carolina,37151,1155,29 +2020-06-30,Randolph,North Carolina,37151,1174,29 +2020-07-01,Randolph,North Carolina,37151,1206,30 +2020-07-02,Randolph,North Carolina,37151,1234,30 +2020-07-03,Randolph,North Carolina,37151,1251,31 +2020-07-04,Randolph,North Carolina,37151,1266,31 +2020-07-05,Randolph,North Carolina,37151,1295,31 +2020-07-06,Randolph,North Carolina,37151,1316,31 +2020-07-07,Randolph,North Carolina,37151,1330,31 +2020-07-08,Randolph,North Carolina,37151,1353,31 +2020-07-09,Randolph,North Carolina,37151,1387,32 +2020-04-07,Richmond,North Carolina,37153,1,0 +2020-04-08,Richmond,North Carolina,37153,1,0 +2020-04-09,Richmond,North Carolina,37153,2,0 +2020-04-10,Richmond,North Carolina,37153,4,0 +2020-04-11,Richmond,North Carolina,37153,7,1 +2020-04-12,Richmond,North Carolina,37153,10,1 +2020-04-13,Richmond,North Carolina,37153,10,1 +2020-04-14,Richmond,North Carolina,37153,12,1 +2020-04-15,Richmond,North Carolina,37153,12,1 +2020-04-16,Richmond,North Carolina,37153,15,1 +2020-04-17,Richmond,North Carolina,37153,17,2 +2020-04-18,Richmond,North Carolina,37153,18,2 +2020-04-19,Richmond,North Carolina,37153,19,2 +2020-04-20,Richmond,North Carolina,37153,20,2 +2020-04-21,Richmond,North Carolina,37153,20,2 +2020-04-22,Richmond,North Carolina,37153,22,2 +2020-04-23,Richmond,North Carolina,37153,28,2 +2020-04-24,Richmond,North Carolina,37153,30,2 +2020-04-25,Richmond,North Carolina,37153,36,2 +2020-04-26,Richmond,North Carolina,37153,36,2 +2020-04-27,Richmond,North Carolina,37153,36,2 +2020-04-28,Richmond,North Carolina,37153,40,2 +2020-04-29,Richmond,North Carolina,37153,42,2 +2020-04-30,Richmond,North Carolina,37153,47,2 +2020-05-01,Richmond,North Carolina,37153,48,2 +2020-05-02,Richmond,North Carolina,37153,55,2 +2020-05-03,Richmond,North Carolina,37153,57,2 +2020-05-04,Richmond,North Carolina,37153,58,2 +2020-05-05,Richmond,North Carolina,37153,61,2 +2020-05-06,Richmond,North Carolina,37153,65,2 +2020-05-07,Richmond,North Carolina,37153,80,2 +2020-05-08,Richmond,North Carolina,37153,81,2 +2020-05-09,Richmond,North Carolina,37153,89,2 +2020-05-10,Richmond,North Carolina,37153,90,2 +2020-05-11,Richmond,North Carolina,37153,91,2 +2020-05-12,Richmond,North Carolina,37153,91,2 +2020-05-13,Richmond,North Carolina,37153,98,2 +2020-05-14,Richmond,North Carolina,37153,100,2 +2020-05-15,Richmond,North Carolina,37153,104,2 +2020-05-16,Richmond,North Carolina,37153,112,2 +2020-05-17,Richmond,North Carolina,37153,112,2 +2020-05-18,Richmond,North Carolina,37153,115,2 +2020-05-19,Richmond,North Carolina,37153,115,2 +2020-05-20,Richmond,North Carolina,37153,121,2 +2020-05-21,Richmond,North Carolina,37153,130,2 +2020-05-22,Richmond,North Carolina,37153,132,2 +2020-05-23,Richmond,North Carolina,37153,145,2 +2020-05-24,Richmond,North Carolina,37153,145,2 +2020-05-25,Richmond,North Carolina,37153,146,2 +2020-05-26,Richmond,North Carolina,37153,152,2 +2020-05-27,Richmond,North Carolina,37153,153,2 +2020-05-28,Richmond,North Carolina,37153,162,2 +2020-05-29,Richmond,North Carolina,37153,162,2 +2020-05-30,Richmond,North Carolina,37153,163,2 +2020-05-31,Richmond,North Carolina,37153,163,3 +2020-06-01,Richmond,North Carolina,37153,165,3 +2020-06-02,Richmond,North Carolina,37153,163,3 +2020-06-03,Richmond,North Carolina,37153,170,3 +2020-06-04,Richmond,North Carolina,37153,171,3 +2020-06-05,Richmond,North Carolina,37153,180,3 +2020-06-06,Richmond,North Carolina,37153,182,3 +2020-06-07,Richmond,North Carolina,37153,184,3 +2020-06-08,Richmond,North Carolina,37153,184,3 +2020-06-09,Richmond,North Carolina,37153,184,4 +2020-06-10,Richmond,North Carolina,37153,188,4 +2020-06-11,Richmond,North Carolina,37153,190,4 +2020-06-12,Richmond,North Carolina,37153,196,4 +2020-06-13,Richmond,North Carolina,37153,201,5 +2020-06-14,Richmond,North Carolina,37153,209,5 +2020-06-15,Richmond,North Carolina,37153,211,5 +2020-06-16,Richmond,North Carolina,37153,215,5 +2020-06-17,Richmond,North Carolina,37153,215,5 +2020-06-18,Richmond,North Carolina,37153,221,5 +2020-06-19,Richmond,North Carolina,37153,223,5 +2020-06-20,Richmond,North Carolina,37153,228,5 +2020-06-21,Richmond,North Carolina,37153,233,5 +2020-06-22,Richmond,North Carolina,37153,234,5 +2020-06-23,Richmond,North Carolina,37153,233,5 +2020-06-24,Richmond,North Carolina,37153,242,5 +2020-06-25,Richmond,North Carolina,37153,246,5 +2020-06-26,Richmond,North Carolina,37153,252,5 +2020-06-27,Richmond,North Carolina,37153,256,5 +2020-06-28,Richmond,North Carolina,37153,273,5 +2020-06-29,Richmond,North Carolina,37153,276,5 +2020-06-30,Richmond,North Carolina,37153,278,6 +2020-07-01,Richmond,North Carolina,37153,290,7 +2020-07-02,Richmond,North Carolina,37153,296,7 +2020-07-03,Richmond,North Carolina,37153,306,7 +2020-07-04,Richmond,North Carolina,37153,309,7 +2020-07-05,Richmond,North Carolina,37153,320,7 +2020-07-06,Richmond,North Carolina,37153,325,7 +2020-07-07,Richmond,North Carolina,37153,326,7 +2020-07-08,Richmond,North Carolina,37153,332,7 +2020-07-09,Richmond,North Carolina,37153,345,7 +2020-03-22,Robeson,North Carolina,37155,1,0 +2020-03-23,Robeson,North Carolina,37155,1,0 +2020-03-24,Robeson,North Carolina,37155,1,0 +2020-03-25,Robeson,North Carolina,37155,2,0 +2020-03-26,Robeson,North Carolina,37155,2,0 +2020-03-27,Robeson,North Carolina,37155,2,0 +2020-03-28,Robeson,North Carolina,37155,2,0 +2020-03-29,Robeson,North Carolina,37155,2,0 +2020-03-30,Robeson,North Carolina,37155,2,0 +2020-03-31,Robeson,North Carolina,37155,3,0 +2020-04-01,Robeson,North Carolina,37155,3,0 +2020-04-02,Robeson,North Carolina,37155,3,0 +2020-04-03,Robeson,North Carolina,37155,3,0 +2020-04-04,Robeson,North Carolina,37155,3,0 +2020-04-05,Robeson,North Carolina,37155,5,0 +2020-04-06,Robeson,North Carolina,37155,5,0 +2020-04-07,Robeson,North Carolina,37155,6,0 +2020-04-08,Robeson,North Carolina,37155,6,0 +2020-04-09,Robeson,North Carolina,37155,7,0 +2020-04-10,Robeson,North Carolina,37155,7,0 +2020-04-11,Robeson,North Carolina,37155,7,0 +2020-04-12,Robeson,North Carolina,37155,8,0 +2020-04-13,Robeson,North Carolina,37155,8,0 +2020-04-14,Robeson,North Carolina,37155,10,0 +2020-04-15,Robeson,North Carolina,37155,11,0 +2020-04-16,Robeson,North Carolina,37155,12,0 +2020-04-17,Robeson,North Carolina,37155,17,0 +2020-04-18,Robeson,North Carolina,37155,18,0 +2020-04-19,Robeson,North Carolina,37155,21,0 +2020-04-20,Robeson,North Carolina,37155,27,0 +2020-04-21,Robeson,North Carolina,37155,28,0 +2020-04-22,Robeson,North Carolina,37155,34,0 +2020-04-23,Robeson,North Carolina,37155,53,0 +2020-04-24,Robeson,North Carolina,37155,85,3 +2020-04-25,Robeson,North Carolina,37155,92,3 +2020-04-26,Robeson,North Carolina,37155,97,3 +2020-04-27,Robeson,North Carolina,37155,104,3 +2020-04-28,Robeson,North Carolina,37155,106,3 +2020-04-29,Robeson,North Carolina,37155,145,3 +2020-04-30,Robeson,North Carolina,37155,157,3 +2020-05-01,Robeson,North Carolina,37155,175,3 +2020-05-02,Robeson,North Carolina,37155,201,3 +2020-05-03,Robeson,North Carolina,37155,201,6 +2020-05-04,Robeson,North Carolina,37155,204,6 +2020-05-05,Robeson,North Carolina,37155,249,6 +2020-05-06,Robeson,North Carolina,37155,288,6 +2020-05-07,Robeson,North Carolina,37155,313,6 +2020-05-08,Robeson,North Carolina,37155,327,6 +2020-05-09,Robeson,North Carolina,37155,365,6 +2020-05-10,Robeson,North Carolina,37155,388,6 +2020-05-11,Robeson,North Carolina,37155,391,8 +2020-05-12,Robeson,North Carolina,37155,429,10 +2020-05-13,Robeson,North Carolina,37155,440,10 +2020-05-14,Robeson,North Carolina,37155,519,11 +2020-05-15,Robeson,North Carolina,37155,531,12 +2020-05-16,Robeson,North Carolina,37155,531,12 +2020-05-17,Robeson,North Carolina,37155,531,12 +2020-05-18,Robeson,North Carolina,37155,573,12 +2020-05-19,Robeson,North Carolina,37155,600,12 +2020-05-20,Robeson,North Carolina,37155,600,12 +2020-05-21,Robeson,North Carolina,37155,643,13 +2020-05-22,Robeson,North Carolina,37155,646,13 +2020-05-23,Robeson,North Carolina,37155,644,13 +2020-05-24,Robeson,North Carolina,37155,663,13 +2020-05-25,Robeson,North Carolina,37155,670,13 +2020-05-26,Robeson,North Carolina,37155,674,13 +2020-05-27,Robeson,North Carolina,37155,737,21 +2020-05-28,Robeson,North Carolina,37155,786,22 +2020-05-29,Robeson,North Carolina,37155,786,22 +2020-05-30,Robeson,North Carolina,37155,786,22 +2020-05-31,Robeson,North Carolina,37155,824,22 +2020-06-01,Robeson,North Carolina,37155,824,22 +2020-06-02,Robeson,North Carolina,37155,824,22 +2020-06-03,Robeson,North Carolina,37155,905,26 +2020-06-04,Robeson,North Carolina,37155,929,26 +2020-06-05,Robeson,North Carolina,37155,945,28 +2020-06-06,Robeson,North Carolina,37155,945,28 +2020-06-07,Robeson,North Carolina,37155,945,28 +2020-06-08,Robeson,North Carolina,37155,983,31 +2020-06-09,Robeson,North Carolina,37155,1001,31 +2020-06-10,Robeson,North Carolina,37155,1001,31 +2020-06-11,Robeson,North Carolina,37155,1001,31 +2020-06-12,Robeson,North Carolina,37155,1001,31 +2020-06-13,Robeson,North Carolina,37155,1001,31 +2020-06-14,Robeson,North Carolina,37155,1001,31 +2020-06-15,Robeson,North Carolina,37155,1091,34 +2020-06-16,Robeson,North Carolina,37155,1127,34 +2020-06-17,Robeson,North Carolina,37155,1127,34 +2020-06-18,Robeson,North Carolina,37155,1127,34 +2020-06-19,Robeson,North Carolina,37155,1127,34 +2020-06-20,Robeson,North Carolina,37155,1127,34 +2020-06-21,Robeson,North Carolina,37155,1127,34 +2020-06-22,Robeson,North Carolina,37155,1127,34 +2020-06-23,Robeson,North Carolina,37155,1185,37 +2020-06-24,Robeson,North Carolina,37155,1185,37 +2020-06-25,Robeson,North Carolina,37155,1185,37 +2020-06-26,Robeson,North Carolina,37155,1185,37 +2020-06-27,Robeson,North Carolina,37155,1185,38 +2020-06-28,Robeson,North Carolina,37155,1185,38 +2020-06-29,Robeson,North Carolina,37155,1185,38 +2020-06-30,Robeson,North Carolina,37155,1236,39 +2020-07-01,Robeson,North Carolina,37155,1236,39 +2020-07-02,Robeson,North Carolina,37155,1264,39 +2020-07-03,Robeson,North Carolina,37155,1320,39 +2020-07-04,Robeson,North Carolina,37155,1321,39 +2020-07-05,Robeson,North Carolina,37155,1332,39 +2020-07-06,Robeson,North Carolina,37155,1429,44 +2020-07-07,Robeson,North Carolina,37155,1429,44 +2020-07-08,Robeson,North Carolina,37155,1434,44 +2020-07-09,Robeson,North Carolina,37155,1479,44 +2020-03-31,Rockingham,North Carolina,37157,1,0 +2020-04-01,Rockingham,North Carolina,37157,2,0 +2020-04-02,Rockingham,North Carolina,37157,2,1 +2020-04-03,Rockingham,North Carolina,37157,3,1 +2020-04-04,Rockingham,North Carolina,37157,5,1 +2020-04-05,Rockingham,North Carolina,37157,6,1 +2020-04-06,Rockingham,North Carolina,37157,6,1 +2020-04-07,Rockingham,North Carolina,37157,8,1 +2020-04-08,Rockingham,North Carolina,37157,8,1 +2020-04-09,Rockingham,North Carolina,37157,9,2 +2020-04-10,Rockingham,North Carolina,37157,10,2 +2020-04-11,Rockingham,North Carolina,37157,14,2 +2020-04-12,Rockingham,North Carolina,37157,14,2 +2020-04-13,Rockingham,North Carolina,37157,14,2 +2020-04-14,Rockingham,North Carolina,37157,16,2 +2020-04-15,Rockingham,North Carolina,37157,15,2 +2020-04-16,Rockingham,North Carolina,37157,16,2 +2020-04-17,Rockingham,North Carolina,37157,16,2 +2020-04-18,Rockingham,North Carolina,37157,16,2 +2020-04-19,Rockingham,North Carolina,37157,18,2 +2020-04-20,Rockingham,North Carolina,37157,19,2 +2020-04-21,Rockingham,North Carolina,37157,20,2 +2020-04-22,Rockingham,North Carolina,37157,20,2 +2020-04-23,Rockingham,North Carolina,37157,22,2 +2020-04-24,Rockingham,North Carolina,37157,21,2 +2020-04-25,Rockingham,North Carolina,37157,23,2 +2020-04-26,Rockingham,North Carolina,37157,24,2 +2020-04-27,Rockingham,North Carolina,37157,24,2 +2020-04-28,Rockingham,North Carolina,37157,24,2 +2020-04-29,Rockingham,North Carolina,37157,25,2 +2020-04-30,Rockingham,North Carolina,37157,26,2 +2020-05-01,Rockingham,North Carolina,37157,26,2 +2020-05-02,Rockingham,North Carolina,37157,26,2 +2020-05-03,Rockingham,North Carolina,37157,26,2 +2020-05-04,Rockingham,North Carolina,37157,27,2 +2020-05-05,Rockingham,North Carolina,37157,30,2 +2020-05-06,Rockingham,North Carolina,37157,34,2 +2020-05-07,Rockingham,North Carolina,37157,36,2 +2020-05-08,Rockingham,North Carolina,37157,38,2 +2020-05-09,Rockingham,North Carolina,37157,39,2 +2020-05-10,Rockingham,North Carolina,37157,40,2 +2020-05-11,Rockingham,North Carolina,37157,42,2 +2020-05-12,Rockingham,North Carolina,37157,43,2 +2020-05-13,Rockingham,North Carolina,37157,43,2 +2020-05-14,Rockingham,North Carolina,37157,44,2 +2020-05-15,Rockingham,North Carolina,37157,44,2 +2020-05-16,Rockingham,North Carolina,37157,45,2 +2020-05-17,Rockingham,North Carolina,37157,46,2 +2020-05-18,Rockingham,North Carolina,37157,46,2 +2020-05-19,Rockingham,North Carolina,37157,48,2 +2020-05-20,Rockingham,North Carolina,37157,49,2 +2020-05-21,Rockingham,North Carolina,37157,52,2 +2020-05-22,Rockingham,North Carolina,37157,59,2 +2020-05-23,Rockingham,North Carolina,37157,65,2 +2020-05-24,Rockingham,North Carolina,37157,69,2 +2020-05-25,Rockingham,North Carolina,37157,72,2 +2020-05-26,Rockingham,North Carolina,37157,72,2 +2020-05-27,Rockingham,North Carolina,37157,73,2 +2020-05-28,Rockingham,North Carolina,37157,76,2 +2020-05-29,Rockingham,North Carolina,37157,86,2 +2020-05-30,Rockingham,North Carolina,37157,92,2 +2020-05-31,Rockingham,North Carolina,37157,94,2 +2020-06-01,Rockingham,North Carolina,37157,97,2 +2020-06-02,Rockingham,North Carolina,37157,100,2 +2020-06-03,Rockingham,North Carolina,37157,102,2 +2020-06-04,Rockingham,North Carolina,37157,103,2 +2020-06-05,Rockingham,North Carolina,37157,106,2 +2020-06-06,Rockingham,North Carolina,37157,113,2 +2020-06-07,Rockingham,North Carolina,37157,115,2 +2020-06-08,Rockingham,North Carolina,37157,116,2 +2020-06-09,Rockingham,North Carolina,37157,115,2 +2020-06-10,Rockingham,North Carolina,37157,118,2 +2020-06-11,Rockingham,North Carolina,37157,123,2 +2020-06-12,Rockingham,North Carolina,37157,124,2 +2020-06-13,Rockingham,North Carolina,37157,130,2 +2020-06-14,Rockingham,North Carolina,37157,135,2 +2020-06-15,Rockingham,North Carolina,37157,137,2 +2020-06-16,Rockingham,North Carolina,37157,141,2 +2020-06-17,Rockingham,North Carolina,37157,147,2 +2020-06-18,Rockingham,North Carolina,37157,150,2 +2020-06-19,Rockingham,North Carolina,37157,157,2 +2020-06-20,Rockingham,North Carolina,37157,163,2 +2020-06-21,Rockingham,North Carolina,37157,166,2 +2020-06-22,Rockingham,North Carolina,37157,170,2 +2020-06-23,Rockingham,North Carolina,37157,173,2 +2020-06-24,Rockingham,North Carolina,37157,173,2 +2020-06-25,Rockingham,North Carolina,37157,179,2 +2020-06-26,Rockingham,North Carolina,37157,194,2 +2020-06-27,Rockingham,North Carolina,37157,210,2 +2020-06-28,Rockingham,North Carolina,37157,218,2 +2020-06-29,Rockingham,North Carolina,37157,223,2 +2020-06-30,Rockingham,North Carolina,37157,231,2 +2020-07-01,Rockingham,North Carolina,37157,234,2 +2020-07-02,Rockingham,North Carolina,37157,235,2 +2020-07-03,Rockingham,North Carolina,37157,238,2 +2020-07-04,Rockingham,North Carolina,37157,257,2 +2020-07-05,Rockingham,North Carolina,37157,261,2 +2020-07-06,Rockingham,North Carolina,37157,267,2 +2020-07-07,Rockingham,North Carolina,37157,267,2 +2020-07-08,Rockingham,North Carolina,37157,274,2 +2020-07-09,Rockingham,North Carolina,37157,284,2 +2020-03-20,Rowan,North Carolina,37159,1,0 +2020-03-21,Rowan,North Carolina,37159,1,0 +2020-03-22,Rowan,North Carolina,37159,2,0 +2020-03-23,Rowan,North Carolina,37159,2,0 +2020-03-24,Rowan,North Carolina,37159,5,0 +2020-03-25,Rowan,North Carolina,37159,6,0 +2020-03-26,Rowan,North Carolina,37159,6,0 +2020-03-27,Rowan,North Carolina,37159,10,0 +2020-03-28,Rowan,North Carolina,37159,14,1 +2020-03-29,Rowan,North Carolina,37159,17,1 +2020-03-30,Rowan,North Carolina,37159,18,1 +2020-03-31,Rowan,North Carolina,37159,24,1 +2020-04-01,Rowan,North Carolina,37159,24,1 +2020-04-02,Rowan,North Carolina,37159,31,1 +2020-04-03,Rowan,North Carolina,37159,36,1 +2020-04-04,Rowan,North Carolina,37159,44,1 +2020-04-05,Rowan,North Carolina,37159,45,1 +2020-04-06,Rowan,North Carolina,37159,51,1 +2020-04-07,Rowan,North Carolina,37159,62,2 +2020-04-08,Rowan,North Carolina,37159,64,2 +2020-04-09,Rowan,North Carolina,37159,71,2 +2020-04-10,Rowan,North Carolina,37159,75,2 +2020-04-11,Rowan,North Carolina,37159,105,2 +2020-04-12,Rowan,North Carolina,37159,111,2 +2020-04-13,Rowan,North Carolina,37159,204,3 +2020-04-14,Rowan,North Carolina,37159,201,7 +2020-04-15,Rowan,North Carolina,37159,206,7 +2020-04-16,Rowan,North Carolina,37159,214,8 +2020-04-17,Rowan,North Carolina,37159,220,10 +2020-04-18,Rowan,North Carolina,37159,244,12 +2020-04-19,Rowan,North Carolina,37159,247,12 +2020-04-20,Rowan,North Carolina,37159,250,12 +2020-04-21,Rowan,North Carolina,37159,254,13 +2020-04-22,Rowan,North Carolina,37159,269,14 +2020-04-23,Rowan,North Carolina,37159,290,16 +2020-04-24,Rowan,North Carolina,37159,323,16 +2020-04-25,Rowan,North Carolina,37159,342,20 +2020-04-26,Rowan,North Carolina,37159,346,20 +2020-04-27,Rowan,North Carolina,37159,352,21 +2020-04-28,Rowan,North Carolina,37159,353,21 +2020-04-29,Rowan,North Carolina,37159,366,22 +2020-04-30,Rowan,North Carolina,37159,381,22 +2020-05-01,Rowan,North Carolina,37159,382,22 +2020-05-02,Rowan,North Carolina,37159,388,25 +2020-05-03,Rowan,North Carolina,37159,388,25 +2020-05-04,Rowan,North Carolina,37159,392,25 +2020-05-05,Rowan,North Carolina,37159,417,25 +2020-05-06,Rowan,North Carolina,37159,439,25 +2020-05-07,Rowan,North Carolina,37159,452,25 +2020-05-08,Rowan,North Carolina,37159,467,25 +2020-05-09,Rowan,North Carolina,37159,480,25 +2020-05-10,Rowan,North Carolina,37159,483,25 +2020-05-11,Rowan,North Carolina,37159,488,26 +2020-05-12,Rowan,North Carolina,37159,492,26 +2020-05-13,Rowan,North Carolina,37159,497,26 +2020-05-14,Rowan,North Carolina,37159,510,26 +2020-05-15,Rowan,North Carolina,37159,521,27 +2020-05-16,Rowan,North Carolina,37159,525,27 +2020-05-17,Rowan,North Carolina,37159,526,27 +2020-05-18,Rowan,North Carolina,37159,540,27 +2020-05-19,Rowan,North Carolina,37159,560,27 +2020-05-20,Rowan,North Carolina,37159,570,27 +2020-05-21,Rowan,North Carolina,37159,579,27 +2020-05-22,Rowan,North Carolina,37159,597,27 +2020-05-23,Rowan,North Carolina,37159,603,27 +2020-05-24,Rowan,North Carolina,37159,605,27 +2020-05-25,Rowan,North Carolina,37159,609,27 +2020-05-26,Rowan,North Carolina,37159,612,32 +2020-05-27,Rowan,North Carolina,37159,613,34 +2020-05-28,Rowan,North Carolina,37159,620,37 +2020-05-29,Rowan,North Carolina,37159,630,37 +2020-05-30,Rowan,North Carolina,37159,640,37 +2020-05-31,Rowan,North Carolina,37159,658,37 +2020-06-01,Rowan,North Carolina,37159,673,38 +2020-06-02,Rowan,North Carolina,37159,675,38 +2020-06-03,Rowan,North Carolina,37159,703,38 +2020-06-04,Rowan,North Carolina,37159,716,38 +2020-06-05,Rowan,North Carolina,37159,729,38 +2020-06-06,Rowan,North Carolina,37159,739,38 +2020-06-07,Rowan,North Carolina,37159,761,38 +2020-06-08,Rowan,North Carolina,37159,772,39 +2020-06-09,Rowan,North Carolina,37159,784,39 +2020-06-10,Rowan,North Carolina,37159,801,39 +2020-06-11,Rowan,North Carolina,37159,830,40 +2020-06-12,Rowan,North Carolina,37159,855,40 +2020-06-13,Rowan,North Carolina,37159,862,40 +2020-06-14,Rowan,North Carolina,37159,888,40 +2020-06-15,Rowan,North Carolina,37159,912,40 +2020-06-16,Rowan,North Carolina,37159,929,40 +2020-06-17,Rowan,North Carolina,37159,950,40 +2020-06-18,Rowan,North Carolina,37159,957,40 +2020-06-19,Rowan,North Carolina,37159,978,40 +2020-06-20,Rowan,North Carolina,37159,995,40 +2020-06-21,Rowan,North Carolina,37159,1022,40 +2020-06-22,Rowan,North Carolina,37159,1025,40 +2020-06-23,Rowan,North Carolina,37159,1038,40 +2020-06-24,Rowan,North Carolina,37159,1076,41 +2020-06-25,Rowan,North Carolina,37159,1090,41 +2020-06-26,Rowan,North Carolina,37159,1129,42 +2020-06-27,Rowan,North Carolina,37159,1139,42 +2020-06-28,Rowan,North Carolina,37159,1163,42 +2020-06-29,Rowan,North Carolina,37159,1183,39 +2020-06-30,Rowan,North Carolina,37159,1222,43 +2020-07-01,Rowan,North Carolina,37159,1235,43 +2020-07-02,Rowan,North Carolina,37159,1261,43 +2020-07-03,Rowan,North Carolina,37159,1284,43 +2020-07-04,Rowan,North Carolina,37159,1295,43 +2020-07-05,Rowan,North Carolina,37159,1325,43 +2020-07-06,Rowan,North Carolina,37159,1368,43 +2020-07-07,Rowan,North Carolina,37159,1387,44 +2020-07-08,Rowan,North Carolina,37159,1420,45 +2020-07-09,Rowan,North Carolina,37159,1448,45 +2020-03-30,Rutherford,North Carolina,37161,1,0 +2020-03-31,Rutherford,North Carolina,37161,5,0 +2020-04-01,Rutherford,North Carolina,37161,7,0 +2020-04-02,Rutherford,North Carolina,37161,9,0 +2020-04-03,Rutherford,North Carolina,37161,10,0 +2020-04-04,Rutherford,North Carolina,37161,12,0 +2020-04-05,Rutherford,North Carolina,37161,14,0 +2020-04-06,Rutherford,North Carolina,37161,17,0 +2020-04-07,Rutherford,North Carolina,37161,19,0 +2020-04-08,Rutherford,North Carolina,37161,25,0 +2020-04-09,Rutherford,North Carolina,37161,28,1 +2020-04-10,Rutherford,North Carolina,37161,31,1 +2020-04-11,Rutherford,North Carolina,37161,37,2 +2020-04-12,Rutherford,North Carolina,37161,37,2 +2020-04-13,Rutherford,North Carolina,37161,40,2 +2020-04-14,Rutherford,North Carolina,37161,43,2 +2020-04-15,Rutherford,North Carolina,37161,45,2 +2020-04-16,Rutherford,North Carolina,37161,55,2 +2020-04-17,Rutherford,North Carolina,37161,59,2 +2020-04-18,Rutherford,North Carolina,37161,65,2 +2020-04-19,Rutherford,North Carolina,37161,75,2 +2020-04-20,Rutherford,North Carolina,37161,84,2 +2020-04-21,Rutherford,North Carolina,37161,80,3 +2020-04-22,Rutherford,North Carolina,37161,80,4 +2020-04-23,Rutherford,North Carolina,37161,92,4 +2020-04-24,Rutherford,North Carolina,37161,105,4 +2020-04-25,Rutherford,North Carolina,37161,108,6 +2020-04-26,Rutherford,North Carolina,37161,116,6 +2020-04-27,Rutherford,North Carolina,37161,119,6 +2020-04-28,Rutherford,North Carolina,37161,120,6 +2020-04-29,Rutherford,North Carolina,37161,123,6 +2020-04-30,Rutherford,North Carolina,37161,139,6 +2020-05-01,Rutherford,North Carolina,37161,140,6 +2020-05-02,Rutherford,North Carolina,37161,142,6 +2020-05-03,Rutherford,North Carolina,37161,145,6 +2020-05-04,Rutherford,North Carolina,37161,146,6 +2020-05-05,Rutherford,North Carolina,37161,145,7 +2020-05-06,Rutherford,North Carolina,37161,145,7 +2020-05-07,Rutherford,North Carolina,37161,148,7 +2020-05-08,Rutherford,North Carolina,37161,149,7 +2020-05-09,Rutherford,North Carolina,37161,151,7 +2020-05-10,Rutherford,North Carolina,37161,151,7 +2020-05-11,Rutherford,North Carolina,37161,154,7 +2020-05-12,Rutherford,North Carolina,37161,152,7 +2020-05-13,Rutherford,North Carolina,37161,154,7 +2020-05-14,Rutherford,North Carolina,37161,153,7 +2020-05-15,Rutherford,North Carolina,37161,153,7 +2020-05-16,Rutherford,North Carolina,37161,153,7 +2020-05-17,Rutherford,North Carolina,37161,153,7 +2020-05-18,Rutherford,North Carolina,37161,155,7 +2020-05-19,Rutherford,North Carolina,37161,155,7 +2020-05-20,Rutherford,North Carolina,37161,156,7 +2020-05-21,Rutherford,North Carolina,37161,158,7 +2020-05-22,Rutherford,North Carolina,37161,161,7 +2020-05-23,Rutherford,North Carolina,37161,161,7 +2020-05-24,Rutherford,North Carolina,37161,164,7 +2020-05-25,Rutherford,North Carolina,37161,171,7 +2020-05-26,Rutherford,North Carolina,37161,171,7 +2020-05-27,Rutherford,North Carolina,37161,174,7 +2020-05-28,Rutherford,North Carolina,37161,174,7 +2020-05-29,Rutherford,North Carolina,37161,176,7 +2020-05-30,Rutherford,North Carolina,37161,182,7 +2020-05-31,Rutherford,North Carolina,37161,182,7 +2020-06-01,Rutherford,North Carolina,37161,186,7 +2020-06-02,Rutherford,North Carolina,37161,186,7 +2020-06-03,Rutherford,North Carolina,37161,188,7 +2020-06-04,Rutherford,North Carolina,37161,188,7 +2020-06-05,Rutherford,North Carolina,37161,196,7 +2020-06-06,Rutherford,North Carolina,37161,196,7 +2020-06-07,Rutherford,North Carolina,37161,198,7 +2020-06-08,Rutherford,North Carolina,37161,200,7 +2020-06-09,Rutherford,North Carolina,37161,200,7 +2020-06-10,Rutherford,North Carolina,37161,202,7 +2020-06-11,Rutherford,North Carolina,37161,202,7 +2020-06-12,Rutherford,North Carolina,37161,221,7 +2020-06-13,Rutherford,North Carolina,37161,221,7 +2020-06-14,Rutherford,North Carolina,37161,226,7 +2020-06-15,Rutherford,North Carolina,37161,228,9 +2020-06-16,Rutherford,North Carolina,37161,228,9 +2020-06-17,Rutherford,North Carolina,37161,233,9 +2020-06-18,Rutherford,North Carolina,37161,233,9 +2020-06-19,Rutherford,North Carolina,37161,241,9 +2020-06-20,Rutherford,North Carolina,37161,242,9 +2020-06-21,Rutherford,North Carolina,37161,255,9 +2020-06-22,Rutherford,North Carolina,37161,263,9 +2020-06-23,Rutherford,North Carolina,37161,263,9 +2020-06-24,Rutherford,North Carolina,37161,269,9 +2020-06-25,Rutherford,North Carolina,37161,269,9 +2020-06-26,Rutherford,North Carolina,37161,281,9 +2020-06-27,Rutherford,North Carolina,37161,281,9 +2020-06-28,Rutherford,North Carolina,37161,281,9 +2020-06-29,Rutherford,North Carolina,37161,306,9 +2020-06-30,Rutherford,North Carolina,37161,308,9 +2020-07-01,Rutherford,North Carolina,37161,308,9 +2020-07-02,Rutherford,North Carolina,37161,317,10 +2020-07-03,Rutherford,North Carolina,37161,317,10 +2020-07-04,Rutherford,North Carolina,37161,324,10 +2020-07-05,Rutherford,North Carolina,37161,328,10 +2020-07-06,Rutherford,North Carolina,37161,360,10 +2020-07-07,Rutherford,North Carolina,37161,360,10 +2020-07-08,Rutherford,North Carolina,37161,378,10 +2020-07-09,Rutherford,North Carolina,37161,378,10 +2020-03-17,Sampson,North Carolina,37163,1,0 +2020-03-18,Sampson,North Carolina,37163,1,0 +2020-03-19,Sampson,North Carolina,37163,1,0 +2020-03-20,Sampson,North Carolina,37163,1,0 +2020-03-21,Sampson,North Carolina,37163,1,0 +2020-03-22,Sampson,North Carolina,37163,1,0 +2020-03-23,Sampson,North Carolina,37163,1,0 +2020-03-24,Sampson,North Carolina,37163,1,0 +2020-03-25,Sampson,North Carolina,37163,1,0 +2020-03-26,Sampson,North Carolina,37163,1,0 +2020-03-27,Sampson,North Carolina,37163,1,0 +2020-03-28,Sampson,North Carolina,37163,1,0 +2020-03-29,Sampson,North Carolina,37163,1,0 +2020-03-30,Sampson,North Carolina,37163,1,0 +2020-03-31,Sampson,North Carolina,37163,1,0 +2020-04-01,Sampson,North Carolina,37163,1,0 +2020-04-02,Sampson,North Carolina,37163,1,0 +2020-04-03,Sampson,North Carolina,37163,1,0 +2020-04-04,Sampson,North Carolina,37163,2,0 +2020-04-05,Sampson,North Carolina,37163,2,0 +2020-04-06,Sampson,North Carolina,37163,3,0 +2020-04-07,Sampson,North Carolina,37163,4,0 +2020-04-08,Sampson,North Carolina,37163,5,0 +2020-04-09,Sampson,North Carolina,37163,8,0 +2020-04-10,Sampson,North Carolina,37163,10,0 +2020-04-11,Sampson,North Carolina,37163,11,0 +2020-04-12,Sampson,North Carolina,37163,11,0 +2020-04-13,Sampson,North Carolina,37163,13,0 +2020-04-14,Sampson,North Carolina,37163,13,0 +2020-04-15,Sampson,North Carolina,37163,13,0 +2020-04-16,Sampson,North Carolina,37163,16,0 +2020-04-17,Sampson,North Carolina,37163,18,0 +2020-04-18,Sampson,North Carolina,37163,19,0 +2020-04-19,Sampson,North Carolina,37163,22,0 +2020-04-20,Sampson,North Carolina,37163,22,0 +2020-04-21,Sampson,North Carolina,37163,21,0 +2020-04-22,Sampson,North Carolina,37163,23,0 +2020-04-23,Sampson,North Carolina,37163,25,0 +2020-04-24,Sampson,North Carolina,37163,31,0 +2020-04-25,Sampson,North Carolina,37163,36,0 +2020-04-26,Sampson,North Carolina,37163,39,0 +2020-04-27,Sampson,North Carolina,37163,39,0 +2020-04-28,Sampson,North Carolina,37163,44,0 +2020-04-29,Sampson,North Carolina,37163,51,0 +2020-04-30,Sampson,North Carolina,37163,63,0 +2020-05-01,Sampson,North Carolina,37163,65,0 +2020-05-02,Sampson,North Carolina,37163,83,0 +2020-05-03,Sampson,North Carolina,37163,88,0 +2020-05-04,Sampson,North Carolina,37163,88,0 +2020-05-05,Sampson,North Carolina,37163,94,1 +2020-05-06,Sampson,North Carolina,37163,108,1 +2020-05-07,Sampson,North Carolina,37163,126,1 +2020-05-08,Sampson,North Carolina,37163,136,1 +2020-05-09,Sampson,North Carolina,37163,145,1 +2020-05-10,Sampson,North Carolina,37163,156,1 +2020-05-11,Sampson,North Carolina,37163,167,1 +2020-05-12,Sampson,North Carolina,37163,170,1 +2020-05-13,Sampson,North Carolina,37163,176,1 +2020-05-14,Sampson,North Carolina,37163,203,1 +2020-05-15,Sampson,North Carolina,37163,219,1 +2020-05-16,Sampson,North Carolina,37163,232,1 +2020-05-17,Sampson,North Carolina,37163,244,1 +2020-05-18,Sampson,North Carolina,37163,259,1 +2020-05-19,Sampson,North Carolina,37163,265,1 +2020-05-20,Sampson,North Carolina,37163,273,1 +2020-05-21,Sampson,North Carolina,37163,315,1 +2020-05-22,Sampson,North Carolina,37163,345,1 +2020-05-23,Sampson,North Carolina,37163,367,1 +2020-05-24,Sampson,North Carolina,37163,385,1 +2020-05-25,Sampson,North Carolina,37163,408,1 +2020-05-26,Sampson,North Carolina,37163,409,1 +2020-05-27,Sampson,North Carolina,37163,408,1 +2020-05-28,Sampson,North Carolina,37163,412,4 +2020-05-29,Sampson,North Carolina,37163,429,4 +2020-05-30,Sampson,North Carolina,37163,462,4 +2020-05-31,Sampson,North Carolina,37163,479,4 +2020-06-01,Sampson,North Carolina,37163,499,4 +2020-06-02,Sampson,North Carolina,37163,499,4 +2020-06-03,Sampson,North Carolina,37163,509,4 +2020-06-04,Sampson,North Carolina,37163,531,4 +2020-06-05,Sampson,North Carolina,37163,553,4 +2020-06-06,Sampson,North Carolina,37163,571,4 +2020-06-07,Sampson,North Carolina,37163,597,4 +2020-06-08,Sampson,North Carolina,37163,621,4 +2020-06-09,Sampson,North Carolina,37163,626,4 +2020-06-10,Sampson,North Carolina,37163,627,4 +2020-06-11,Sampson,North Carolina,37163,642,4 +2020-06-12,Sampson,North Carolina,37163,702,4 +2020-06-13,Sampson,North Carolina,37163,728,4 +2020-06-14,Sampson,North Carolina,37163,760,4 +2020-06-15,Sampson,North Carolina,37163,779,4 +2020-06-16,Sampson,North Carolina,37163,783,4 +2020-06-17,Sampson,North Carolina,37163,791,4 +2020-06-18,Sampson,North Carolina,37163,802,4 +2020-06-19,Sampson,North Carolina,37163,835,4 +2020-06-20,Sampson,North Carolina,37163,865,5 +2020-06-21,Sampson,North Carolina,37163,877,5 +2020-06-22,Sampson,North Carolina,37163,894,5 +2020-06-23,Sampson,North Carolina,37163,907,5 +2020-06-24,Sampson,North Carolina,37163,932,5 +2020-06-25,Sampson,North Carolina,37163,947,5 +2020-06-26,Sampson,North Carolina,37163,973,5 +2020-06-27,Sampson,North Carolina,37163,986,6 +2020-06-28,Sampson,North Carolina,37163,1018,6 +2020-06-29,Sampson,North Carolina,37163,1030,6 +2020-06-30,Sampson,North Carolina,37163,1040,6 +2020-07-01,Sampson,North Carolina,37163,1060,6 +2020-07-02,Sampson,North Carolina,37163,1071,6 +2020-07-03,Sampson,North Carolina,37163,1084,6 +2020-07-04,Sampson,North Carolina,37163,1093,6 +2020-07-05,Sampson,North Carolina,37163,1100,6 +2020-07-06,Sampson,North Carolina,37163,1112,6 +2020-07-07,Sampson,North Carolina,37163,1117,7 +2020-07-08,Sampson,North Carolina,37163,1128,7 +2020-07-09,Sampson,North Carolina,37163,1149,7 +2020-03-22,Scotland,North Carolina,37165,1,0 +2020-03-23,Scotland,North Carolina,37165,1,0 +2020-03-24,Scotland,North Carolina,37165,1,0 +2020-03-25,Scotland,North Carolina,37165,1,0 +2020-03-26,Scotland,North Carolina,37165,1,0 +2020-03-27,Scotland,North Carolina,37165,1,0 +2020-03-28,Scotland,North Carolina,37165,1,0 +2020-03-29,Scotland,North Carolina,37165,2,0 +2020-03-30,Scotland,North Carolina,37165,2,0 +2020-03-31,Scotland,North Carolina,37165,2,0 +2020-04-01,Scotland,North Carolina,37165,2,0 +2020-04-02,Scotland,North Carolina,37165,2,0 +2020-04-03,Scotland,North Carolina,37165,2,0 +2020-04-04,Scotland,North Carolina,37165,2,0 +2020-04-05,Scotland,North Carolina,37165,2,0 +2020-04-06,Scotland,North Carolina,37165,2,0 +2020-04-07,Scotland,North Carolina,37165,3,0 +2020-04-08,Scotland,North Carolina,37165,3,0 +2020-04-09,Scotland,North Carolina,37165,4,0 +2020-04-10,Scotland,North Carolina,37165,4,0 +2020-04-11,Scotland,North Carolina,37165,9,0 +2020-04-12,Scotland,North Carolina,37165,9,0 +2020-04-13,Scotland,North Carolina,37165,9,0 +2020-04-14,Scotland,North Carolina,37165,9,0 +2020-04-15,Scotland,North Carolina,37165,9,0 +2020-04-16,Scotland,North Carolina,37165,9,0 +2020-04-17,Scotland,North Carolina,37165,11,0 +2020-04-18,Scotland,North Carolina,37165,11,0 +2020-04-19,Scotland,North Carolina,37165,12,0 +2020-04-20,Scotland,North Carolina,37165,12,0 +2020-04-21,Scotland,North Carolina,37165,13,0 +2020-04-22,Scotland,North Carolina,37165,15,0 +2020-04-23,Scotland,North Carolina,37165,16,0 +2020-04-24,Scotland,North Carolina,37165,17,0 +2020-04-25,Scotland,North Carolina,37165,21,0 +2020-04-26,Scotland,North Carolina,37165,22,0 +2020-04-27,Scotland,North Carolina,37165,23,0 +2020-04-28,Scotland,North Carolina,37165,24,0 +2020-04-29,Scotland,North Carolina,37165,24,0 +2020-04-30,Scotland,North Carolina,37165,24,0 +2020-05-01,Scotland,North Carolina,37165,26,0 +2020-05-02,Scotland,North Carolina,37165,29,0 +2020-05-03,Scotland,North Carolina,37165,29,0 +2020-05-04,Scotland,North Carolina,37165,30,0 +2020-05-05,Scotland,North Carolina,37165,30,0 +2020-05-06,Scotland,North Carolina,37165,32,0 +2020-05-07,Scotland,North Carolina,37165,34,0 +2020-05-08,Scotland,North Carolina,37165,36,0 +2020-05-09,Scotland,North Carolina,37165,36,0 +2020-05-10,Scotland,North Carolina,37165,40,0 +2020-05-11,Scotland,North Carolina,37165,41,0 +2020-05-12,Scotland,North Carolina,37165,43,0 +2020-05-13,Scotland,North Carolina,37165,43,0 +2020-05-14,Scotland,North Carolina,37165,46,0 +2020-05-15,Scotland,North Carolina,37165,48,0 +2020-05-16,Scotland,North Carolina,37165,50,0 +2020-05-17,Scotland,North Carolina,37165,52,0 +2020-05-18,Scotland,North Carolina,37165,53,0 +2020-05-19,Scotland,North Carolina,37165,55,0 +2020-05-20,Scotland,North Carolina,37165,56,0 +2020-05-21,Scotland,North Carolina,37165,59,0 +2020-05-22,Scotland,North Carolina,37165,60,0 +2020-05-23,Scotland,North Carolina,37165,62,0 +2020-05-24,Scotland,North Carolina,37165,64,0 +2020-05-25,Scotland,North Carolina,37165,67,0 +2020-05-26,Scotland,North Carolina,37165,67,0 +2020-05-27,Scotland,North Carolina,37165,69,0 +2020-05-28,Scotland,North Carolina,37165,78,0 +2020-05-29,Scotland,North Carolina,37165,84,0 +2020-05-30,Scotland,North Carolina,37165,84,0 +2020-05-31,Scotland,North Carolina,37165,85,0 +2020-06-01,Scotland,North Carolina,37165,86,0 +2020-06-02,Scotland,North Carolina,37165,86,0 +2020-06-03,Scotland,North Carolina,37165,87,0 +2020-06-04,Scotland,North Carolina,37165,89,0 +2020-06-05,Scotland,North Carolina,37165,90,0 +2020-06-06,Scotland,North Carolina,37165,95,0 +2020-06-07,Scotland,North Carolina,37165,97,0 +2020-06-08,Scotland,North Carolina,37165,98,0 +2020-06-09,Scotland,North Carolina,37165,98,0 +2020-06-10,Scotland,North Carolina,37165,99,1 +2020-06-11,Scotland,North Carolina,37165,102,0 +2020-06-12,Scotland,North Carolina,37165,104,0 +2020-06-13,Scotland,North Carolina,37165,107,0 +2020-06-14,Scotland,North Carolina,37165,107,0 +2020-06-15,Scotland,North Carolina,37165,111,0 +2020-06-16,Scotland,North Carolina,37165,114,0 +2020-06-17,Scotland,North Carolina,37165,114,0 +2020-06-18,Scotland,North Carolina,37165,113,0 +2020-06-19,Scotland,North Carolina,37165,120,0 +2020-06-20,Scotland,North Carolina,37165,123,0 +2020-06-21,Scotland,North Carolina,37165,123,0 +2020-06-22,Scotland,North Carolina,37165,123,0 +2020-06-23,Scotland,North Carolina,37165,124,0 +2020-06-24,Scotland,North Carolina,37165,129,0 +2020-06-25,Scotland,North Carolina,37165,130,0 +2020-06-26,Scotland,North Carolina,37165,132,0 +2020-06-27,Scotland,North Carolina,37165,133,0 +2020-06-28,Scotland,North Carolina,37165,134,0 +2020-06-29,Scotland,North Carolina,37165,136,0 +2020-06-30,Scotland,North Carolina,37165,137,0 +2020-07-01,Scotland,North Carolina,37165,138,2 +2020-07-02,Scotland,North Carolina,37165,142,2 +2020-07-03,Scotland,North Carolina,37165,144,2 +2020-07-04,Scotland,North Carolina,37165,146,2 +2020-07-05,Scotland,North Carolina,37165,149,2 +2020-07-06,Scotland,North Carolina,37165,151,2 +2020-07-07,Scotland,North Carolina,37165,152,2 +2020-07-08,Scotland,North Carolina,37165,157,2 +2020-07-09,Scotland,North Carolina,37165,157,2 +2020-03-20,Stanly,North Carolina,37167,1,0 +2020-03-21,Stanly,North Carolina,37167,1,0 +2020-03-22,Stanly,North Carolina,37167,1,0 +2020-03-23,Stanly,North Carolina,37167,1,0 +2020-03-24,Stanly,North Carolina,37167,1,0 +2020-03-25,Stanly,North Carolina,37167,1,0 +2020-03-26,Stanly,North Carolina,37167,1,0 +2020-03-27,Stanly,North Carolina,37167,2,0 +2020-03-28,Stanly,North Carolina,37167,2,0 +2020-03-29,Stanly,North Carolina,37167,5,0 +2020-03-30,Stanly,North Carolina,37167,5,0 +2020-03-31,Stanly,North Carolina,37167,5,0 +2020-04-01,Stanly,North Carolina,37167,5,0 +2020-04-02,Stanly,North Carolina,37167,5,0 +2020-04-03,Stanly,North Carolina,37167,7,0 +2020-04-04,Stanly,North Carolina,37167,7,0 +2020-04-05,Stanly,North Carolina,37167,7,0 +2020-04-06,Stanly,North Carolina,37167,8,0 +2020-04-07,Stanly,North Carolina,37167,8,0 +2020-04-08,Stanly,North Carolina,37167,8,0 +2020-04-09,Stanly,North Carolina,37167,8,1 +2020-04-10,Stanly,North Carolina,37167,11,1 +2020-04-11,Stanly,North Carolina,37167,14,1 +2020-04-12,Stanly,North Carolina,37167,16,1 +2020-04-13,Stanly,North Carolina,37167,17,1 +2020-04-14,Stanly,North Carolina,37167,17,1 +2020-04-15,Stanly,North Carolina,37167,17,1 +2020-04-16,Stanly,North Carolina,37167,19,1 +2020-04-17,Stanly,North Carolina,37167,20,1 +2020-04-18,Stanly,North Carolina,37167,20,3 +2020-04-19,Stanly,North Carolina,37167,20,3 +2020-04-20,Stanly,North Carolina,37167,21,3 +2020-04-21,Stanly,North Carolina,37167,21,3 +2020-04-22,Stanly,North Carolina,37167,22,4 +2020-04-23,Stanly,North Carolina,37167,24,4 +2020-04-24,Stanly,North Carolina,37167,24,4 +2020-04-25,Stanly,North Carolina,37167,28,4 +2020-04-26,Stanly,North Carolina,37167,28,4 +2020-04-27,Stanly,North Carolina,37167,29,4 +2020-04-28,Stanly,North Carolina,37167,28,4 +2020-04-29,Stanly,North Carolina,37167,28,4 +2020-04-30,Stanly,North Carolina,37167,29,4 +2020-05-01,Stanly,North Carolina,37167,29,4 +2020-05-02,Stanly,North Carolina,37167,29,4 +2020-05-03,Stanly,North Carolina,37167,29,4 +2020-05-04,Stanly,North Carolina,37167,29,4 +2020-05-05,Stanly,North Carolina,37167,29,4 +2020-05-06,Stanly,North Carolina,37167,30,4 +2020-05-07,Stanly,North Carolina,37167,29,4 +2020-05-08,Stanly,North Carolina,37167,29,4 +2020-05-09,Stanly,North Carolina,37167,29,4 +2020-05-10,Stanly,North Carolina,37167,29,4 +2020-05-11,Stanly,North Carolina,37167,29,4 +2020-05-12,Stanly,North Carolina,37167,30,4 +2020-05-13,Stanly,North Carolina,37167,30,4 +2020-05-14,Stanly,North Carolina,37167,31,4 +2020-05-15,Stanly,North Carolina,37167,31,4 +2020-05-16,Stanly,North Carolina,37167,31,4 +2020-05-17,Stanly,North Carolina,37167,32,4 +2020-05-18,Stanly,North Carolina,37167,32,4 +2020-05-19,Stanly,North Carolina,37167,32,4 +2020-05-20,Stanly,North Carolina,37167,33,4 +2020-05-21,Stanly,North Carolina,37167,34,4 +2020-05-22,Stanly,North Carolina,37167,37,4 +2020-05-23,Stanly,North Carolina,37167,42,4 +2020-05-24,Stanly,North Carolina,37167,45,4 +2020-05-25,Stanly,North Carolina,37167,50,4 +2020-05-26,Stanly,North Carolina,37167,53,4 +2020-05-27,Stanly,North Carolina,37167,54,4 +2020-05-28,Stanly,North Carolina,37167,55,4 +2020-05-29,Stanly,North Carolina,37167,57,4 +2020-05-30,Stanly,North Carolina,37167,72,4 +2020-05-31,Stanly,North Carolina,37167,78,4 +2020-06-01,Stanly,North Carolina,37167,82,4 +2020-06-02,Stanly,North Carolina,37167,86,4 +2020-06-03,Stanly,North Carolina,37167,92,4 +2020-06-04,Stanly,North Carolina,37167,96,4 +2020-06-05,Stanly,North Carolina,37167,103,4 +2020-06-06,Stanly,North Carolina,37167,115,4 +2020-06-07,Stanly,North Carolina,37167,118,4 +2020-06-08,Stanly,North Carolina,37167,117,4 +2020-06-09,Stanly,North Carolina,37167,119,4 +2020-06-10,Stanly,North Carolina,37167,124,4 +2020-06-11,Stanly,North Carolina,37167,130,4 +2020-06-12,Stanly,North Carolina,37167,144,4 +2020-06-13,Stanly,North Carolina,37167,150,4 +2020-06-14,Stanly,North Carolina,37167,163,5 +2020-06-15,Stanly,North Carolina,37167,164,5 +2020-06-16,Stanly,North Carolina,37167,167,5 +2020-06-17,Stanly,North Carolina,37167,174,5 +2020-06-18,Stanly,North Carolina,37167,180,5 +2020-06-19,Stanly,North Carolina,37167,195,5 +2020-06-20,Stanly,North Carolina,37167,208,5 +2020-06-21,Stanly,North Carolina,37167,234,5 +2020-06-22,Stanly,North Carolina,37167,277,5 +2020-06-23,Stanly,North Carolina,37167,282,5 +2020-06-24,Stanly,North Carolina,37167,298,5 +2020-06-25,Stanly,North Carolina,37167,308,5 +2020-06-26,Stanly,North Carolina,37167,315,5 +2020-06-27,Stanly,North Carolina,37167,340,5 +2020-06-28,Stanly,North Carolina,37167,359,5 +2020-06-29,Stanly,North Carolina,37167,373,5 +2020-06-30,Stanly,North Carolina,37167,378,5 +2020-07-01,Stanly,North Carolina,37167,394,5 +2020-07-02,Stanly,North Carolina,37167,411,5 +2020-07-03,Stanly,North Carolina,37167,437,5 +2020-07-04,Stanly,North Carolina,37167,459,5 +2020-07-05,Stanly,North Carolina,37167,468,5 +2020-07-06,Stanly,North Carolina,37167,479,5 +2020-07-07,Stanly,North Carolina,37167,481,5 +2020-07-08,Stanly,North Carolina,37167,484,5 +2020-07-09,Stanly,North Carolina,37167,531,5 +2020-04-02,Stokes,North Carolina,37169,2,0 +2020-04-03,Stokes,North Carolina,37169,3,0 +2020-04-04,Stokes,North Carolina,37169,5,0 +2020-04-05,Stokes,North Carolina,37169,6,0 +2020-04-06,Stokes,North Carolina,37169,8,0 +2020-04-07,Stokes,North Carolina,37169,8,0 +2020-04-08,Stokes,North Carolina,37169,8,0 +2020-04-09,Stokes,North Carolina,37169,8,0 +2020-04-10,Stokes,North Carolina,37169,8,0 +2020-04-11,Stokes,North Carolina,37169,9,0 +2020-04-12,Stokes,North Carolina,37169,9,0 +2020-04-13,Stokes,North Carolina,37169,9,0 +2020-04-14,Stokes,North Carolina,37169,9,0 +2020-04-15,Stokes,North Carolina,37169,10,0 +2020-04-16,Stokes,North Carolina,37169,10,0 +2020-04-17,Stokes,North Carolina,37169,10,0 +2020-04-18,Stokes,North Carolina,37169,10,0 +2020-04-19,Stokes,North Carolina,37169,10,0 +2020-04-20,Stokes,North Carolina,37169,10,0 +2020-04-21,Stokes,North Carolina,37169,10,0 +2020-04-22,Stokes,North Carolina,37169,11,0 +2020-04-23,Stokes,North Carolina,37169,11,0 +2020-04-24,Stokes,North Carolina,37169,11,0 +2020-04-25,Stokes,North Carolina,37169,11,0 +2020-04-26,Stokes,North Carolina,37169,11,0 +2020-04-27,Stokes,North Carolina,37169,11,0 +2020-04-28,Stokes,North Carolina,37169,11,0 +2020-04-29,Stokes,North Carolina,37169,11,0 +2020-04-30,Stokes,North Carolina,37169,11,0 +2020-05-01,Stokes,North Carolina,37169,11,0 +2020-05-02,Stokes,North Carolina,37169,11,0 +2020-05-03,Stokes,North Carolina,37169,10,0 +2020-05-04,Stokes,North Carolina,37169,10,0 +2020-05-05,Stokes,North Carolina,37169,10,0 +2020-05-06,Stokes,North Carolina,37169,10,0 +2020-05-07,Stokes,North Carolina,37169,10,0 +2020-05-08,Stokes,North Carolina,37169,11,0 +2020-05-09,Stokes,North Carolina,37169,11,0 +2020-05-10,Stokes,North Carolina,37169,11,0 +2020-05-11,Stokes,North Carolina,37169,11,0 +2020-05-12,Stokes,North Carolina,37169,14,0 +2020-05-13,Stokes,North Carolina,37169,18,0 +2020-05-14,Stokes,North Carolina,37169,20,0 +2020-05-15,Stokes,North Carolina,37169,23,0 +2020-05-16,Stokes,North Carolina,37169,26,0 +2020-05-17,Stokes,North Carolina,37169,30,0 +2020-05-18,Stokes,North Carolina,37169,36,0 +2020-05-19,Stokes,North Carolina,37169,39,0 +2020-05-20,Stokes,North Carolina,37169,39,0 +2020-05-21,Stokes,North Carolina,37169,42,0 +2020-05-22,Stokes,North Carolina,37169,42,0 +2020-05-23,Stokes,North Carolina,37169,50,0 +2020-05-24,Stokes,North Carolina,37169,55,0 +2020-05-25,Stokes,North Carolina,37169,56,0 +2020-05-26,Stokes,North Carolina,37169,57,0 +2020-05-27,Stokes,North Carolina,37169,58,0 +2020-05-28,Stokes,North Carolina,37169,60,0 +2020-05-29,Stokes,North Carolina,37169,65,0 +2020-05-30,Stokes,North Carolina,37169,66,0 +2020-05-31,Stokes,North Carolina,37169,67,0 +2020-06-01,Stokes,North Carolina,37169,69,0 +2020-06-02,Stokes,North Carolina,37169,69,0 +2020-06-03,Stokes,North Carolina,37169,75,0 +2020-06-04,Stokes,North Carolina,37169,79,0 +2020-06-05,Stokes,North Carolina,37169,81,0 +2020-06-06,Stokes,North Carolina,37169,83,0 +2020-06-07,Stokes,North Carolina,37169,85,0 +2020-06-08,Stokes,North Carolina,37169,86,0 +2020-06-09,Stokes,North Carolina,37169,89,0 +2020-06-10,Stokes,North Carolina,37169,89,0 +2020-06-11,Stokes,North Carolina,37169,90,0 +2020-06-12,Stokes,North Carolina,37169,91,0 +2020-06-13,Stokes,North Carolina,37169,92,0 +2020-06-14,Stokes,North Carolina,37169,94,0 +2020-06-15,Stokes,North Carolina,37169,95,0 +2020-06-16,Stokes,North Carolina,37169,95,0 +2020-06-17,Stokes,North Carolina,37169,96,0 +2020-06-18,Stokes,North Carolina,37169,98,0 +2020-06-19,Stokes,North Carolina,37169,101,0 +2020-06-20,Stokes,North Carolina,37169,102,0 +2020-06-21,Stokes,North Carolina,37169,105,1 +2020-06-22,Stokes,North Carolina,37169,109,1 +2020-06-23,Stokes,North Carolina,37169,110,1 +2020-06-24,Stokes,North Carolina,37169,112,1 +2020-06-25,Stokes,North Carolina,37169,115,1 +2020-06-26,Stokes,North Carolina,37169,121,1 +2020-06-27,Stokes,North Carolina,37169,124,1 +2020-06-28,Stokes,North Carolina,37169,125,1 +2020-06-29,Stokes,North Carolina,37169,125,1 +2020-06-30,Stokes,North Carolina,37169,125,1 +2020-07-01,Stokes,North Carolina,37169,129,1 +2020-07-02,Stokes,North Carolina,37169,129,1 +2020-07-03,Stokes,North Carolina,37169,133,1 +2020-07-04,Stokes,North Carolina,37169,135,1 +2020-07-05,Stokes,North Carolina,37169,139,1 +2020-07-06,Stokes,North Carolina,37169,143,1 +2020-07-07,Stokes,North Carolina,37169,147,1 +2020-07-08,Stokes,North Carolina,37169,148,1 +2020-07-09,Stokes,North Carolina,37169,155,1 +2020-03-27,Surry,North Carolina,37171,1,0 +2020-03-28,Surry,North Carolina,37171,1,0 +2020-03-29,Surry,North Carolina,37171,2,0 +2020-03-30,Surry,North Carolina,37171,2,0 +2020-03-31,Surry,North Carolina,37171,2,0 +2020-04-01,Surry,North Carolina,37171,2,0 +2020-04-02,Surry,North Carolina,37171,2,0 +2020-04-03,Surry,North Carolina,37171,2,0 +2020-04-04,Surry,North Carolina,37171,3,0 +2020-04-05,Surry,North Carolina,37171,3,0 +2020-04-06,Surry,North Carolina,37171,3,0 +2020-04-07,Surry,North Carolina,37171,10,0 +2020-04-08,Surry,North Carolina,37171,10,0 +2020-04-09,Surry,North Carolina,37171,10,0 +2020-04-10,Surry,North Carolina,37171,10,0 +2020-04-11,Surry,North Carolina,37171,10,0 +2020-04-12,Surry,North Carolina,37171,10,0 +2020-04-13,Surry,North Carolina,37171,10,0 +2020-04-14,Surry,North Carolina,37171,10,0 +2020-04-15,Surry,North Carolina,37171,10,0 +2020-04-16,Surry,North Carolina,37171,11,0 +2020-04-17,Surry,North Carolina,37171,16,0 +2020-04-18,Surry,North Carolina,37171,17,0 +2020-04-19,Surry,North Carolina,37171,17,0 +2020-04-20,Surry,North Carolina,37171,17,0 +2020-04-21,Surry,North Carolina,37171,12,0 +2020-04-22,Surry,North Carolina,37171,12,0 +2020-04-23,Surry,North Carolina,37171,12,0 +2020-04-24,Surry,North Carolina,37171,12,0 +2020-04-25,Surry,North Carolina,37171,12,0 +2020-04-26,Surry,North Carolina,37171,12,0 +2020-04-27,Surry,North Carolina,37171,12,0 +2020-04-28,Surry,North Carolina,37171,12,0 +2020-04-29,Surry,North Carolina,37171,13,0 +2020-04-30,Surry,North Carolina,37171,13,0 +2020-05-01,Surry,North Carolina,37171,13,0 +2020-05-02,Surry,North Carolina,37171,17,1 +2020-05-03,Surry,North Carolina,37171,16,1 +2020-05-04,Surry,North Carolina,37171,16,1 +2020-05-05,Surry,North Carolina,37171,20,1 +2020-05-06,Surry,North Carolina,37171,20,1 +2020-05-07,Surry,North Carolina,37171,26,1 +2020-05-08,Surry,North Carolina,37171,30,1 +2020-05-09,Surry,North Carolina,37171,33,1 +2020-05-10,Surry,North Carolina,37171,41,1 +2020-05-11,Surry,North Carolina,37171,43,1 +2020-05-12,Surry,North Carolina,37171,45,1 +2020-05-13,Surry,North Carolina,37171,47,1 +2020-05-14,Surry,North Carolina,37171,62,1 +2020-05-15,Surry,North Carolina,37171,67,1 +2020-05-16,Surry,North Carolina,37171,75,1 +2020-05-17,Surry,North Carolina,37171,89,1 +2020-05-18,Surry,North Carolina,37171,95,1 +2020-05-19,Surry,North Carolina,37171,101,1 +2020-05-20,Surry,North Carolina,37171,102,1 +2020-05-21,Surry,North Carolina,37171,109,1 +2020-05-22,Surry,North Carolina,37171,122,1 +2020-05-23,Surry,North Carolina,37171,151,1 +2020-05-24,Surry,North Carolina,37171,158,1 +2020-05-25,Surry,North Carolina,37171,167,1 +2020-05-26,Surry,North Carolina,37171,168,1 +2020-05-27,Surry,North Carolina,37171,173,1 +2020-05-28,Surry,North Carolina,37171,187,1 +2020-05-29,Surry,North Carolina,37171,197,2 +2020-05-30,Surry,North Carolina,37171,201,2 +2020-05-31,Surry,North Carolina,37171,214,2 +2020-06-01,Surry,North Carolina,37171,218,2 +2020-06-02,Surry,North Carolina,37171,224,2 +2020-06-03,Surry,North Carolina,37171,231,2 +2020-06-04,Surry,North Carolina,37171,251,2 +2020-06-05,Surry,North Carolina,37171,269,2 +2020-06-06,Surry,North Carolina,37171,273,2 +2020-06-07,Surry,North Carolina,37171,274,2 +2020-06-08,Surry,North Carolina,37171,279,2 +2020-06-09,Surry,North Carolina,37171,292,2 +2020-06-10,Surry,North Carolina,37171,294,2 +2020-06-11,Surry,North Carolina,37171,300,2 +2020-06-12,Surry,North Carolina,37171,315,2 +2020-06-13,Surry,North Carolina,37171,327,2 +2020-06-14,Surry,North Carolina,37171,333,2 +2020-06-15,Surry,North Carolina,37171,339,2 +2020-06-16,Surry,North Carolina,37171,342,2 +2020-06-17,Surry,North Carolina,37171,346,2 +2020-06-18,Surry,North Carolina,37171,353,2 +2020-06-19,Surry,North Carolina,37171,370,2 +2020-06-20,Surry,North Carolina,37171,378,2 +2020-06-21,Surry,North Carolina,37171,382,2 +2020-06-22,Surry,North Carolina,37171,386,2 +2020-06-23,Surry,North Carolina,37171,392,2 +2020-06-24,Surry,North Carolina,37171,413,2 +2020-06-25,Surry,North Carolina,37171,418,2 +2020-06-26,Surry,North Carolina,37171,437,2 +2020-06-27,Surry,North Carolina,37171,444,2 +2020-06-28,Surry,North Carolina,37171,451,2 +2020-06-29,Surry,North Carolina,37171,464,2 +2020-06-30,Surry,North Carolina,37171,470,2 +2020-07-01,Surry,North Carolina,37171,482,2 +2020-07-02,Surry,North Carolina,37171,488,2 +2020-07-03,Surry,North Carolina,37171,496,2 +2020-07-04,Surry,North Carolina,37171,497,2 +2020-07-05,Surry,North Carolina,37171,503,2 +2020-07-06,Surry,North Carolina,37171,516,2 +2020-07-07,Surry,North Carolina,37171,525,2 +2020-07-08,Surry,North Carolina,37171,535,2 +2020-07-09,Surry,North Carolina,37171,552,2 +2020-04-29,Swain,North Carolina,37173,3,0 +2020-04-30,Swain,North Carolina,37173,3,0 +2020-05-01,Swain,North Carolina,37173,3,0 +2020-05-02,Swain,North Carolina,37173,4,0 +2020-05-03,Swain,North Carolina,37173,4,0 +2020-05-04,Swain,North Carolina,37173,4,0 +2020-05-05,Swain,North Carolina,37173,4,0 +2020-05-06,Swain,North Carolina,37173,4,0 +2020-05-07,Swain,North Carolina,37173,5,0 +2020-05-08,Swain,North Carolina,37173,5,0 +2020-05-09,Swain,North Carolina,37173,5,0 +2020-05-10,Swain,North Carolina,37173,5,0 +2020-05-11,Swain,North Carolina,37173,5,0 +2020-05-12,Swain,North Carolina,37173,5,0 +2020-05-13,Swain,North Carolina,37173,5,0 +2020-05-14,Swain,North Carolina,37173,5,0 +2020-05-15,Swain,North Carolina,37173,6,0 +2020-05-16,Swain,North Carolina,37173,6,0 +2020-05-17,Swain,North Carolina,37173,6,0 +2020-05-18,Swain,North Carolina,37173,6,0 +2020-05-19,Swain,North Carolina,37173,6,0 +2020-05-20,Swain,North Carolina,37173,6,0 +2020-05-21,Swain,North Carolina,37173,8,0 +2020-05-22,Swain,North Carolina,37173,10,0 +2020-05-23,Swain,North Carolina,37173,10,0 +2020-05-24,Swain,North Carolina,37173,10,0 +2020-05-25,Swain,North Carolina,37173,10,0 +2020-05-26,Swain,North Carolina,37173,10,0 +2020-05-27,Swain,North Carolina,37173,10,0 +2020-05-28,Swain,North Carolina,37173,10,0 +2020-05-29,Swain,North Carolina,37173,11,0 +2020-05-30,Swain,North Carolina,37173,13,0 +2020-05-31,Swain,North Carolina,37173,13,0 +2020-06-01,Swain,North Carolina,37173,13,0 +2020-06-02,Swain,North Carolina,37173,13,0 +2020-06-03,Swain,North Carolina,37173,21,0 +2020-06-04,Swain,North Carolina,37173,21,0 +2020-06-05,Swain,North Carolina,37173,22,0 +2020-06-06,Swain,North Carolina,37173,25,0 +2020-06-07,Swain,North Carolina,37173,25,0 +2020-06-08,Swain,North Carolina,37173,23,0 +2020-06-09,Swain,North Carolina,37173,23,0 +2020-06-10,Swain,North Carolina,37173,32,0 +2020-06-11,Swain,North Carolina,37173,33,0 +2020-06-12,Swain,North Carolina,37173,37,0 +2020-06-13,Swain,North Carolina,37173,39,0 +2020-06-14,Swain,North Carolina,37173,39,0 +2020-06-15,Swain,North Carolina,37173,39,0 +2020-06-16,Swain,North Carolina,37173,38,0 +2020-06-17,Swain,North Carolina,37173,38,0 +2020-06-18,Swain,North Carolina,37173,38,0 +2020-06-19,Swain,North Carolina,37173,38,0 +2020-06-20,Swain,North Carolina,37173,40,0 +2020-06-21,Swain,North Carolina,37173,40,0 +2020-06-22,Swain,North Carolina,37173,40,0 +2020-06-23,Swain,North Carolina,37173,40,0 +2020-06-24,Swain,North Carolina,37173,50,0 +2020-06-25,Swain,North Carolina,37173,50,0 +2020-06-26,Swain,North Carolina,37173,50,0 +2020-06-27,Swain,North Carolina,37173,51,0 +2020-06-28,Swain,North Carolina,37173,51,0 +2020-06-29,Swain,North Carolina,37173,52,0 +2020-06-30,Swain,North Carolina,37173,51,0 +2020-07-01,Swain,North Carolina,37173,55,1 +2020-07-02,Swain,North Carolina,37173,58,1 +2020-07-03,Swain,North Carolina,37173,59,1 +2020-07-04,Swain,North Carolina,37173,58,1 +2020-07-05,Swain,North Carolina,37173,59,1 +2020-07-06,Swain,North Carolina,37173,59,1 +2020-07-07,Swain,North Carolina,37173,61,1 +2020-07-08,Swain,North Carolina,37173,68,1 +2020-07-09,Swain,North Carolina,37173,69,1 +2020-03-24,Transylvania,North Carolina,37175,1,0 +2020-03-25,Transylvania,North Carolina,37175,2,0 +2020-03-26,Transylvania,North Carolina,37175,2,0 +2020-03-27,Transylvania,North Carolina,37175,2,0 +2020-03-28,Transylvania,North Carolina,37175,3,0 +2020-03-29,Transylvania,North Carolina,37175,3,0 +2020-03-30,Transylvania,North Carolina,37175,3,0 +2020-03-31,Transylvania,North Carolina,37175,5,0 +2020-04-01,Transylvania,North Carolina,37175,5,0 +2020-04-02,Transylvania,North Carolina,37175,5,0 +2020-04-03,Transylvania,North Carolina,37175,5,0 +2020-04-04,Transylvania,North Carolina,37175,5,0 +2020-04-05,Transylvania,North Carolina,37175,5,0 +2020-04-06,Transylvania,North Carolina,37175,5,0 +2020-04-07,Transylvania,North Carolina,37175,6,0 +2020-04-08,Transylvania,North Carolina,37175,6,0 +2020-04-09,Transylvania,North Carolina,37175,6,0 +2020-04-10,Transylvania,North Carolina,37175,6,0 +2020-04-11,Transylvania,North Carolina,37175,6,0 +2020-04-12,Transylvania,North Carolina,37175,6,0 +2020-04-13,Transylvania,North Carolina,37175,6,0 +2020-04-14,Transylvania,North Carolina,37175,6,0 +2020-04-15,Transylvania,North Carolina,37175,6,0 +2020-04-16,Transylvania,North Carolina,37175,6,0 +2020-04-17,Transylvania,North Carolina,37175,6,0 +2020-04-18,Transylvania,North Carolina,37175,7,0 +2020-04-19,Transylvania,North Carolina,37175,7,0 +2020-04-20,Transylvania,North Carolina,37175,8,0 +2020-04-21,Transylvania,North Carolina,37175,7,0 +2020-04-22,Transylvania,North Carolina,37175,7,0 +2020-04-23,Transylvania,North Carolina,37175,7,0 +2020-04-24,Transylvania,North Carolina,37175,7,0 +2020-04-25,Transylvania,North Carolina,37175,7,0 +2020-04-26,Transylvania,North Carolina,37175,7,0 +2020-04-27,Transylvania,North Carolina,37175,7,0 +2020-04-28,Transylvania,North Carolina,37175,7,0 +2020-04-29,Transylvania,North Carolina,37175,7,0 +2020-04-30,Transylvania,North Carolina,37175,7,0 +2020-05-01,Transylvania,North Carolina,37175,7,0 +2020-05-02,Transylvania,North Carolina,37175,8,0 +2020-05-03,Transylvania,North Carolina,37175,7,0 +2020-05-04,Transylvania,North Carolina,37175,7,0 +2020-05-05,Transylvania,North Carolina,37175,7,0 +2020-05-06,Transylvania,North Carolina,37175,7,0 +2020-05-07,Transylvania,North Carolina,37175,7,0 +2020-05-08,Transylvania,North Carolina,37175,7,0 +2020-05-09,Transylvania,North Carolina,37175,7,0 +2020-05-10,Transylvania,North Carolina,37175,7,0 +2020-05-11,Transylvania,North Carolina,37175,7,0 +2020-05-12,Transylvania,North Carolina,37175,7,0 +2020-05-13,Transylvania,North Carolina,37175,7,0 +2020-05-14,Transylvania,North Carolina,37175,7,0 +2020-05-15,Transylvania,North Carolina,37175,7,0 +2020-05-16,Transylvania,North Carolina,37175,7,0 +2020-05-17,Transylvania,North Carolina,37175,7,0 +2020-05-18,Transylvania,North Carolina,37175,7,0 +2020-05-19,Transylvania,North Carolina,37175,8,0 +2020-05-20,Transylvania,North Carolina,37175,8,0 +2020-05-21,Transylvania,North Carolina,37175,9,0 +2020-05-22,Transylvania,North Carolina,37175,9,0 +2020-05-23,Transylvania,North Carolina,37175,11,0 +2020-05-24,Transylvania,North Carolina,37175,11,0 +2020-05-25,Transylvania,North Carolina,37175,11,0 +2020-05-26,Transylvania,North Carolina,37175,11,0 +2020-05-27,Transylvania,North Carolina,37175,11,0 +2020-05-28,Transylvania,North Carolina,37175,12,0 +2020-05-29,Transylvania,North Carolina,37175,12,0 +2020-05-30,Transylvania,North Carolina,37175,13,0 +2020-05-31,Transylvania,North Carolina,37175,13,0 +2020-06-01,Transylvania,North Carolina,37175,14,0 +2020-06-02,Transylvania,North Carolina,37175,14,0 +2020-06-03,Transylvania,North Carolina,37175,15,0 +2020-06-04,Transylvania,North Carolina,37175,15,1 +2020-06-05,Transylvania,North Carolina,37175,16,1 +2020-06-06,Transylvania,North Carolina,37175,16,1 +2020-06-07,Transylvania,North Carolina,37175,16,1 +2020-06-08,Transylvania,North Carolina,37175,16,1 +2020-06-09,Transylvania,North Carolina,37175,16,1 +2020-06-10,Transylvania,North Carolina,37175,16,1 +2020-06-11,Transylvania,North Carolina,37175,16,1 +2020-06-12,Transylvania,North Carolina,37175,16,1 +2020-06-13,Transylvania,North Carolina,37175,16,1 +2020-06-14,Transylvania,North Carolina,37175,17,1 +2020-06-15,Transylvania,North Carolina,37175,17,1 +2020-06-16,Transylvania,North Carolina,37175,17,1 +2020-06-17,Transylvania,North Carolina,37175,17,1 +2020-06-18,Transylvania,North Carolina,37175,17,1 +2020-06-19,Transylvania,North Carolina,37175,18,1 +2020-06-20,Transylvania,North Carolina,37175,19,1 +2020-06-21,Transylvania,North Carolina,37175,19,1 +2020-06-22,Transylvania,North Carolina,37175,19,1 +2020-06-23,Transylvania,North Carolina,37175,19,1 +2020-06-24,Transylvania,North Carolina,37175,19,1 +2020-06-25,Transylvania,North Carolina,37175,19,1 +2020-06-26,Transylvania,North Carolina,37175,19,1 +2020-06-27,Transylvania,North Carolina,37175,20,1 +2020-06-28,Transylvania,North Carolina,37175,21,1 +2020-06-29,Transylvania,North Carolina,37175,22,1 +2020-06-30,Transylvania,North Carolina,37175,22,1 +2020-07-01,Transylvania,North Carolina,37175,22,1 +2020-07-02,Transylvania,North Carolina,37175,22,1 +2020-07-03,Transylvania,North Carolina,37175,25,1 +2020-07-04,Transylvania,North Carolina,37175,26,1 +2020-07-05,Transylvania,North Carolina,37175,30,1 +2020-07-06,Transylvania,North Carolina,37175,36,1 +2020-07-07,Transylvania,North Carolina,37175,37,1 +2020-07-08,Transylvania,North Carolina,37175,38,1 +2020-07-09,Transylvania,North Carolina,37175,38,1 +2020-04-14,Tyrrell,North Carolina,37177,2,0 +2020-04-15,Tyrrell,North Carolina,37177,3,0 +2020-04-16,Tyrrell,North Carolina,37177,4,0 +2020-04-17,Tyrrell,North Carolina,37177,4,0 +2020-04-18,Tyrrell,North Carolina,37177,4,0 +2020-04-19,Tyrrell,North Carolina,37177,4,0 +2020-04-20,Tyrrell,North Carolina,37177,4,0 +2020-04-21,Tyrrell,North Carolina,37177,4,0 +2020-04-22,Tyrrell,North Carolina,37177,4,0 +2020-04-23,Tyrrell,North Carolina,37177,4,0 +2020-04-24,Tyrrell,North Carolina,37177,4,0 +2020-04-25,Tyrrell,North Carolina,37177,4,0 +2020-04-26,Tyrrell,North Carolina,37177,4,0 +2020-04-27,Tyrrell,North Carolina,37177,4,0 +2020-04-28,Tyrrell,North Carolina,37177,4,0 +2020-04-29,Tyrrell,North Carolina,37177,4,0 +2020-04-30,Tyrrell,North Carolina,37177,4,0 +2020-05-01,Tyrrell,North Carolina,37177,4,0 +2020-05-02,Tyrrell,North Carolina,37177,4,0 +2020-05-03,Tyrrell,North Carolina,37177,4,0 +2020-05-04,Tyrrell,North Carolina,37177,4,0 +2020-05-05,Tyrrell,North Carolina,37177,4,0 +2020-05-06,Tyrrell,North Carolina,37177,4,0 +2020-05-07,Tyrrell,North Carolina,37177,4,0 +2020-05-08,Tyrrell,North Carolina,37177,4,0 +2020-05-09,Tyrrell,North Carolina,37177,4,0 +2020-05-10,Tyrrell,North Carolina,37177,4,0 +2020-05-11,Tyrrell,North Carolina,37177,4,0 +2020-05-12,Tyrrell,North Carolina,37177,4,0 +2020-05-13,Tyrrell,North Carolina,37177,4,0 +2020-05-14,Tyrrell,North Carolina,37177,4,0 +2020-05-15,Tyrrell,North Carolina,37177,4,0 +2020-05-16,Tyrrell,North Carolina,37177,4,0 +2020-05-17,Tyrrell,North Carolina,37177,4,0 +2020-05-18,Tyrrell,North Carolina,37177,4,0 +2020-05-19,Tyrrell,North Carolina,37177,4,0 +2020-05-20,Tyrrell,North Carolina,37177,4,0 +2020-05-21,Tyrrell,North Carolina,37177,4,0 +2020-05-22,Tyrrell,North Carolina,37177,4,0 +2020-05-23,Tyrrell,North Carolina,37177,4,0 +2020-05-24,Tyrrell,North Carolina,37177,4,0 +2020-05-25,Tyrrell,North Carolina,37177,4,0 +2020-05-26,Tyrrell,North Carolina,37177,4,0 +2020-05-27,Tyrrell,North Carolina,37177,4,0 +2020-05-28,Tyrrell,North Carolina,37177,4,0 +2020-05-29,Tyrrell,North Carolina,37177,4,0 +2020-05-30,Tyrrell,North Carolina,37177,4,0 +2020-05-31,Tyrrell,North Carolina,37177,4,0 +2020-06-01,Tyrrell,North Carolina,37177,4,0 +2020-06-02,Tyrrell,North Carolina,37177,4,0 +2020-06-03,Tyrrell,North Carolina,37177,4,0 +2020-06-04,Tyrrell,North Carolina,37177,4,0 +2020-06-05,Tyrrell,North Carolina,37177,4,0 +2020-06-06,Tyrrell,North Carolina,37177,4,0 +2020-06-07,Tyrrell,North Carolina,37177,4,0 +2020-06-08,Tyrrell,North Carolina,37177,4,0 +2020-06-09,Tyrrell,North Carolina,37177,4,0 +2020-06-10,Tyrrell,North Carolina,37177,4,0 +2020-06-11,Tyrrell,North Carolina,37177,4,0 +2020-06-12,Tyrrell,North Carolina,37177,5,0 +2020-06-13,Tyrrell,North Carolina,37177,5,0 +2020-06-14,Tyrrell,North Carolina,37177,5,0 +2020-06-15,Tyrrell,North Carolina,37177,5,0 +2020-06-16,Tyrrell,North Carolina,37177,5,0 +2020-06-17,Tyrrell,North Carolina,37177,5,0 +2020-06-18,Tyrrell,North Carolina,37177,5,0 +2020-06-19,Tyrrell,North Carolina,37177,5,0 +2020-06-20,Tyrrell,North Carolina,37177,5,0 +2020-06-21,Tyrrell,North Carolina,37177,5,0 +2020-06-22,Tyrrell,North Carolina,37177,5,0 +2020-06-23,Tyrrell,North Carolina,37177,5,0 +2020-06-24,Tyrrell,North Carolina,37177,6,0 +2020-06-25,Tyrrell,North Carolina,37177,7,0 +2020-06-26,Tyrrell,North Carolina,37177,8,0 +2020-06-27,Tyrrell,North Carolina,37177,8,0 +2020-06-28,Tyrrell,North Carolina,37177,8,0 +2020-06-29,Tyrrell,North Carolina,37177,9,0 +2020-06-30,Tyrrell,North Carolina,37177,10,0 +2020-07-01,Tyrrell,North Carolina,37177,11,0 +2020-07-02,Tyrrell,North Carolina,37177,11,0 +2020-07-03,Tyrrell,North Carolina,37177,12,0 +2020-07-04,Tyrrell,North Carolina,37177,13,0 +2020-07-05,Tyrrell,North Carolina,37177,13,0 +2020-07-06,Tyrrell,North Carolina,37177,16,0 +2020-07-07,Tyrrell,North Carolina,37177,19,0 +2020-07-08,Tyrrell,North Carolina,37177,30,1 +2020-07-09,Tyrrell,North Carolina,37177,31,1 +2020-03-22,Union,North Carolina,37179,9,0 +2020-03-23,Union,North Carolina,37179,12,0 +2020-03-24,Union,North Carolina,37179,13,0 +2020-03-25,Union,North Carolina,37179,16,0 +2020-03-26,Union,North Carolina,37179,24,0 +2020-03-27,Union,North Carolina,37179,27,0 +2020-03-28,Union,North Carolina,37179,30,0 +2020-03-29,Union,North Carolina,37179,38,0 +2020-03-30,Union,North Carolina,37179,38,0 +2020-03-31,Union,North Carolina,37179,42,0 +2020-04-01,Union,North Carolina,37179,47,0 +2020-04-02,Union,North Carolina,37179,55,0 +2020-04-03,Union,North Carolina,37179,60,0 +2020-04-04,Union,North Carolina,37179,67,0 +2020-04-05,Union,North Carolina,37179,67,0 +2020-04-06,Union,North Carolina,37179,75,0 +2020-04-07,Union,North Carolina,37179,83,0 +2020-04-08,Union,North Carolina,37179,87,0 +2020-04-09,Union,North Carolina,37179,93,1 +2020-04-10,Union,North Carolina,37179,100,1 +2020-04-11,Union,North Carolina,37179,101,1 +2020-04-12,Union,North Carolina,37179,101,1 +2020-04-13,Union,North Carolina,37179,104,1 +2020-04-14,Union,North Carolina,37179,110,3 +2020-04-15,Union,North Carolina,37179,112,3 +2020-04-16,Union,North Carolina,37179,129,3 +2020-04-17,Union,North Carolina,37179,137,3 +2020-04-18,Union,North Carolina,37179,139,3 +2020-04-19,Union,North Carolina,37179,149,3 +2020-04-20,Union,North Carolina,37179,163,4 +2020-04-21,Union,North Carolina,37179,171,5 +2020-04-22,Union,North Carolina,37179,179,6 +2020-04-23,Union,North Carolina,37179,186,6 +2020-04-24,Union,North Carolina,37179,190,7 +2020-04-25,Union,North Carolina,37179,195,7 +2020-04-26,Union,North Carolina,37179,201,8 +2020-04-27,Union,North Carolina,37179,205,9 +2020-04-28,Union,North Carolina,37179,211,9 +2020-04-29,Union,North Carolina,37179,228,9 +2020-04-30,Union,North Carolina,37179,240,9 +2020-05-01,Union,North Carolina,37179,254,11 +2020-05-02,Union,North Carolina,37179,257,11 +2020-05-03,Union,North Carolina,37179,263,12 +2020-05-04,Union,North Carolina,37179,263,13 +2020-05-05,Union,North Carolina,37179,271,14 +2020-05-06,Union,North Carolina,37179,275,15 +2020-05-07,Union,North Carolina,37179,283,15 +2020-05-08,Union,North Carolina,37179,284,16 +2020-05-09,Union,North Carolina,37179,294,17 +2020-05-10,Union,North Carolina,37179,297,17 +2020-05-11,Union,North Carolina,37179,301,17 +2020-05-12,Union,North Carolina,37179,310,17 +2020-05-13,Union,North Carolina,37179,310,17 +2020-05-14,Union,North Carolina,37179,313,17 +2020-05-15,Union,North Carolina,37179,337,17 +2020-05-16,Union,North Carolina,37179,352,17 +2020-05-17,Union,North Carolina,37179,354,17 +2020-05-18,Union,North Carolina,37179,354,17 +2020-05-19,Union,North Carolina,37179,365,17 +2020-05-20,Union,North Carolina,37179,371,17 +2020-05-21,Union,North Carolina,37179,373,17 +2020-05-22,Union,North Carolina,37179,373,17 +2020-05-23,Union,North Carolina,37179,393,17 +2020-05-24,Union,North Carolina,37179,394,17 +2020-05-25,Union,North Carolina,37179,408,17 +2020-05-26,Union,North Carolina,37179,408,17 +2020-05-27,Union,North Carolina,37179,417,18 +2020-05-28,Union,North Carolina,37179,417,18 +2020-05-29,Union,North Carolina,37179,439,20 +2020-05-30,Union,North Carolina,37179,439,20 +2020-05-31,Union,North Carolina,37179,442,20 +2020-06-01,Union,North Carolina,37179,466,21 +2020-06-02,Union,North Carolina,37179,466,21 +2020-06-03,Union,North Carolina,37179,533,21 +2020-06-04,Union,North Carolina,37179,533,21 +2020-06-05,Union,North Carolina,37179,562,21 +2020-06-06,Union,North Carolina,37179,567,21 +2020-06-07,Union,North Carolina,37179,575,21 +2020-06-08,Union,North Carolina,37179,604,22 +2020-06-09,Union,North Carolina,37179,604,22 +2020-06-10,Union,North Carolina,37179,616,22 +2020-06-11,Union,North Carolina,37179,656,22 +2020-06-12,Union,North Carolina,37179,690,22 +2020-06-13,Union,North Carolina,37179,690,22 +2020-06-14,Union,North Carolina,37179,717,22 +2020-06-15,Union,North Carolina,37179,733,22 +2020-06-16,Union,North Carolina,37179,754,22 +2020-06-17,Union,North Carolina,37179,764,24 +2020-06-18,Union,North Carolina,37179,802,24 +2020-06-19,Union,North Carolina,37179,867,24 +2020-06-20,Union,North Carolina,37179,876,24 +2020-06-21,Union,North Carolina,37179,920,24 +2020-06-22,Union,North Carolina,37179,971,24 +2020-06-23,Union,North Carolina,37179,971,24 +2020-06-24,Union,North Carolina,37179,1032,24 +2020-06-25,Union,North Carolina,37179,1042,24 +2020-06-26,Union,North Carolina,37179,1114,24 +2020-06-27,Union,North Carolina,37179,1123,24 +2020-06-28,Union,North Carolina,37179,1151,24 +2020-06-29,Union,North Carolina,37179,1190,25 +2020-06-30,Union,North Carolina,37179,1201,25 +2020-07-01,Union,North Carolina,37179,1279,25 +2020-07-02,Union,North Carolina,37179,1311,25 +2020-07-03,Union,North Carolina,37179,1393,25 +2020-07-04,Union,North Carolina,37179,1420,25 +2020-07-05,Union,North Carolina,37179,1452,25 +2020-07-06,Union,North Carolina,37179,1528,25 +2020-07-07,Union,North Carolina,37179,1551,25 +2020-07-08,Union,North Carolina,37179,1579,25 +2020-07-09,Union,North Carolina,37179,1643,25 +2020-03-23,Vance,North Carolina,37181,1,0 +2020-03-24,Vance,North Carolina,37181,2,0 +2020-03-25,Vance,North Carolina,37181,2,0 +2020-03-26,Vance,North Carolina,37181,2,0 +2020-03-27,Vance,North Carolina,37181,2,0 +2020-03-28,Vance,North Carolina,37181,3,0 +2020-03-29,Vance,North Carolina,37181,3,0 +2020-03-30,Vance,North Carolina,37181,3,0 +2020-03-31,Vance,North Carolina,37181,4,0 +2020-04-01,Vance,North Carolina,37181,4,0 +2020-04-02,Vance,North Carolina,37181,6,0 +2020-04-03,Vance,North Carolina,37181,6,0 +2020-04-04,Vance,North Carolina,37181,10,0 +2020-04-05,Vance,North Carolina,37181,12,0 +2020-04-06,Vance,North Carolina,37181,12,0 +2020-04-07,Vance,North Carolina,37181,12,0 +2020-04-08,Vance,North Carolina,37181,14,0 +2020-04-09,Vance,North Carolina,37181,16,0 +2020-04-10,Vance,North Carolina,37181,19,0 +2020-04-11,Vance,North Carolina,37181,19,0 +2020-04-12,Vance,North Carolina,37181,19,0 +2020-04-13,Vance,North Carolina,37181,19,0 +2020-04-14,Vance,North Carolina,37181,21,0 +2020-04-15,Vance,North Carolina,37181,23,1 +2020-04-16,Vance,North Carolina,37181,25,1 +2020-04-17,Vance,North Carolina,37181,28,1 +2020-04-18,Vance,North Carolina,37181,30,1 +2020-04-19,Vance,North Carolina,37181,32,1 +2020-04-20,Vance,North Carolina,37181,33,1 +2020-04-21,Vance,North Carolina,37181,34,1 +2020-04-22,Vance,North Carolina,37181,36,1 +2020-04-23,Vance,North Carolina,37181,38,1 +2020-04-24,Vance,North Carolina,37181,40,2 +2020-04-25,Vance,North Carolina,37181,41,2 +2020-04-26,Vance,North Carolina,37181,51,3 +2020-04-27,Vance,North Carolina,37181,80,3 +2020-04-28,Vance,North Carolina,37181,80,4 +2020-04-29,Vance,North Carolina,37181,84,6 +2020-04-30,Vance,North Carolina,37181,88,6 +2020-05-01,Vance,North Carolina,37181,97,6 +2020-05-02,Vance,North Carolina,37181,113,7 +2020-05-03,Vance,North Carolina,37181,112,7 +2020-05-04,Vance,North Carolina,37181,112,8 +2020-05-05,Vance,North Carolina,37181,119,10 +2020-05-06,Vance,North Carolina,37181,120,10 +2020-05-07,Vance,North Carolina,37181,147,10 +2020-05-08,Vance,North Carolina,37181,153,11 +2020-05-09,Vance,North Carolina,37181,161,13 +2020-05-10,Vance,North Carolina,37181,161,13 +2020-05-11,Vance,North Carolina,37181,162,16 +2020-05-12,Vance,North Carolina,37181,168,16 +2020-05-13,Vance,North Carolina,37181,173,16 +2020-05-14,Vance,North Carolina,37181,175,16 +2020-05-15,Vance,North Carolina,37181,183,17 +2020-05-16,Vance,North Carolina,37181,187,17 +2020-05-17,Vance,North Carolina,37181,191,17 +2020-05-18,Vance,North Carolina,37181,195,17 +2020-05-19,Vance,North Carolina,37181,197,17 +2020-05-20,Vance,North Carolina,37181,202,17 +2020-05-21,Vance,North Carolina,37181,207,18 +2020-05-22,Vance,North Carolina,37181,215,18 +2020-05-23,Vance,North Carolina,37181,239,18 +2020-05-24,Vance,North Carolina,37181,239,18 +2020-05-25,Vance,North Carolina,37181,245,18 +2020-05-26,Vance,North Carolina,37181,250,18 +2020-05-27,Vance,North Carolina,37181,266,19 +2020-05-28,Vance,North Carolina,37181,297,19 +2020-05-29,Vance,North Carolina,37181,296,20 +2020-05-30,Vance,North Carolina,37181,310,21 +2020-05-31,Vance,North Carolina,37181,317,21 +2020-06-01,Vance,North Carolina,37181,323,22 +2020-06-02,Vance,North Carolina,37181,322,22 +2020-06-03,Vance,North Carolina,37181,337,23 +2020-06-04,Vance,North Carolina,37181,344,25 +2020-06-05,Vance,North Carolina,37181,351,25 +2020-06-06,Vance,North Carolina,37181,364,26 +2020-06-07,Vance,North Carolina,37181,366,26 +2020-06-08,Vance,North Carolina,37181,370,26 +2020-06-09,Vance,North Carolina,37181,375,26 +2020-06-10,Vance,North Carolina,37181,377,28 +2020-06-11,Vance,North Carolina,37181,390,30 +2020-06-12,Vance,North Carolina,37181,403,31 +2020-06-13,Vance,North Carolina,37181,408,31 +2020-06-14,Vance,North Carolina,37181,417,31 +2020-06-15,Vance,North Carolina,37181,415,32 +2020-06-16,Vance,North Carolina,37181,417,32 +2020-06-17,Vance,North Carolina,37181,421,33 +2020-06-18,Vance,North Carolina,37181,434,35 +2020-06-19,Vance,North Carolina,37181,437,35 +2020-06-20,Vance,North Carolina,37181,441,35 +2020-06-21,Vance,North Carolina,37181,452,35 +2020-06-22,Vance,North Carolina,37181,453,35 +2020-06-23,Vance,North Carolina,37181,462,35 +2020-06-24,Vance,North Carolina,37181,475,35 +2020-06-25,Vance,North Carolina,37181,486,36 +2020-06-26,Vance,North Carolina,37181,490,36 +2020-06-27,Vance,North Carolina,37181,492,36 +2020-06-28,Vance,North Carolina,37181,499,36 +2020-06-29,Vance,North Carolina,37181,501,36 +2020-06-30,Vance,North Carolina,37181,502,36 +2020-07-01,Vance,North Carolina,37181,506,37 +2020-07-02,Vance,North Carolina,37181,507,37 +2020-07-03,Vance,North Carolina,37181,521,38 +2020-07-04,Vance,North Carolina,37181,523,38 +2020-07-05,Vance,North Carolina,37181,526,38 +2020-07-06,Vance,North Carolina,37181,527,38 +2020-07-07,Vance,North Carolina,37181,532,39 +2020-07-08,Vance,North Carolina,37181,536,40 +2020-07-09,Vance,North Carolina,37181,548,40 +2020-03-03,Wake,North Carolina,37183,1,0 +2020-03-04,Wake,North Carolina,37183,1,0 +2020-03-05,Wake,North Carolina,37183,1,0 +2020-03-06,Wake,North Carolina,37183,1,0 +2020-03-07,Wake,North Carolina,37183,1,0 +2020-03-08,Wake,North Carolina,37183,1,0 +2020-03-09,Wake,North Carolina,37183,6,0 +2020-03-10,Wake,North Carolina,37183,6,0 +2020-03-11,Wake,North Carolina,37183,7,0 +2020-03-12,Wake,North Carolina,37183,8,0 +2020-03-13,Wake,North Carolina,37183,9,0 +2020-03-14,Wake,North Carolina,37183,11,0 +2020-03-15,Wake,North Carolina,37183,14,0 +2020-03-16,Wake,North Carolina,37183,15,0 +2020-03-17,Wake,North Carolina,37183,17,0 +2020-03-18,Wake,North Carolina,37183,17,0 +2020-03-19,Wake,North Carolina,37183,25,0 +2020-03-20,Wake,North Carolina,37183,25,0 +2020-03-21,Wake,North Carolina,37183,49,0 +2020-03-22,Wake,North Carolina,37183,49,0 +2020-03-23,Wake,North Carolina,37183,52,0 +2020-03-24,Wake,North Carolina,37183,54,0 +2020-03-25,Wake,North Carolina,37183,73,0 +2020-03-26,Wake,North Carolina,37183,83,0 +2020-03-27,Wake,North Carolina,37183,121,0 +2020-03-28,Wake,North Carolina,37183,124,0 +2020-03-29,Wake,North Carolina,37183,146,0 +2020-03-30,Wake,North Carolina,37183,166,0 +2020-03-31,Wake,North Carolina,37183,192,0 +2020-04-01,Wake,North Carolina,37183,195,0 +2020-04-02,Wake,North Carolina,37183,234,0 +2020-04-03,Wake,North Carolina,37183,258,0 +2020-04-04,Wake,North Carolina,37183,283,0 +2020-04-05,Wake,North Carolina,37183,304,0 +2020-04-06,Wake,North Carolina,37183,314,0 +2020-04-07,Wake,North Carolina,37183,336,0 +2020-04-08,Wake,North Carolina,37183,363,0 +2020-04-09,Wake,North Carolina,37183,371,0 +2020-04-10,Wake,North Carolina,37183,391,0 +2020-04-11,Wake,North Carolina,37183,424,0 +2020-04-12,Wake,North Carolina,37183,470,0 +2020-04-13,Wake,North Carolina,37183,476,0 +2020-04-14,Wake,North Carolina,37183,501,0 +2020-04-15,Wake,North Carolina,37183,510,1 +2020-04-16,Wake,North Carolina,37183,552,1 +2020-04-17,Wake,North Carolina,37183,566,3 +2020-04-18,Wake,North Carolina,37183,579,4 +2020-04-19,Wake,North Carolina,37183,592,4 +2020-04-20,Wake,North Carolina,37183,599,4 +2020-04-21,Wake,North Carolina,37183,611,8 +2020-04-22,Wake,North Carolina,37183,616,9 +2020-04-23,Wake,North Carolina,37183,626,11 +2020-04-24,Wake,North Carolina,37183,633,11 +2020-04-25,Wake,North Carolina,37183,645,13 +2020-04-26,Wake,North Carolina,37183,663,13 +2020-04-27,Wake,North Carolina,37183,671,15 +2020-04-28,Wake,North Carolina,37183,769,15 +2020-04-29,Wake,North Carolina,37183,788,16 +2020-04-30,Wake,North Carolina,37183,821,17 +2020-05-01,Wake,North Carolina,37183,839,18 +2020-05-02,Wake,North Carolina,37183,870,19 +2020-05-03,Wake,North Carolina,37183,874,19 +2020-05-04,Wake,North Carolina,37183,891,20 +2020-05-05,Wake,North Carolina,37183,919,21 +2020-05-06,Wake,North Carolina,37183,937,21 +2020-05-07,Wake,North Carolina,37183,961,21 +2020-05-08,Wake,North Carolina,37183,986,22 +2020-05-09,Wake,North Carolina,37183,1013,23 +2020-05-10,Wake,North Carolina,37183,1030,23 +2020-05-11,Wake,North Carolina,37183,1048,23 +2020-05-12,Wake,North Carolina,37183,1061,23 +2020-05-13,Wake,North Carolina,37183,1080,25 +2020-05-14,Wake,North Carolina,37183,1107,27 +2020-05-15,Wake,North Carolina,37183,1143,28 +2020-05-16,Wake,North Carolina,37183,1176,28 +2020-05-17,Wake,North Carolina,37183,1212,28 +2020-05-18,Wake,North Carolina,37183,1239,28 +2020-05-19,Wake,North Carolina,37183,1272,30 +2020-05-20,Wake,North Carolina,37183,1307,30 +2020-05-21,Wake,North Carolina,37183,1345,32 +2020-05-22,Wake,North Carolina,37183,1389,32 +2020-05-23,Wake,North Carolina,37183,1434,32 +2020-05-24,Wake,North Carolina,37183,1448,32 +2020-05-25,Wake,North Carolina,37183,1471,33 +2020-05-26,Wake,North Carolina,37183,1478,34 +2020-05-27,Wake,North Carolina,37183,1523,36 +2020-05-28,Wake,North Carolina,37183,1604,36 +2020-05-29,Wake,North Carolina,37183,1661,38 +2020-05-30,Wake,North Carolina,37183,1713,39 +2020-05-31,Wake,North Carolina,37183,1747,39 +2020-06-01,Wake,North Carolina,37183,1773,39 +2020-06-02,Wake,North Carolina,37183,1878,40 +2020-06-03,Wake,North Carolina,37183,1901,40 +2020-06-04,Wake,North Carolina,37183,2051,40 +2020-06-05,Wake,North Carolina,37183,2133,40 +2020-06-06,Wake,North Carolina,37183,2186,40 +2020-06-07,Wake,North Carolina,37183,2255,40 +2020-06-08,Wake,North Carolina,37183,2325,41 +2020-06-09,Wake,North Carolina,37183,2440,42 +2020-06-10,Wake,North Carolina,37183,2541,42 +2020-06-11,Wake,North Carolina,37183,2723,42 +2020-06-12,Wake,North Carolina,37183,2783,41 +2020-06-13,Wake,North Carolina,37183,2984,41 +2020-06-14,Wake,North Carolina,37183,3021,42 +2020-06-15,Wake,North Carolina,37183,3111,43 +2020-06-16,Wake,North Carolina,37183,3235,43 +2020-06-17,Wake,North Carolina,37183,3373,43 +2020-06-18,Wake,North Carolina,37183,3507,43 +2020-06-19,Wake,North Carolina,37183,3579,43 +2020-06-20,Wake,North Carolina,37183,3833,44 +2020-06-21,Wake,North Carolina,37183,3884,44 +2020-06-22,Wake,North Carolina,37183,4086,44 +2020-06-23,Wake,North Carolina,37183,4211,44 +2020-06-24,Wake,North Carolina,37183,4333,44 +2020-06-25,Wake,North Carolina,37183,4469,44 +2020-06-26,Wake,North Carolina,37183,4668,46 +2020-06-27,Wake,North Carolina,37183,4797,46 +2020-06-28,Wake,North Carolina,37183,4838,47 +2020-06-29,Wake,North Carolina,37183,5001,47 +2020-06-30,Wake,North Carolina,37183,5178,47 +2020-07-01,Wake,North Carolina,37183,5379,48 +2020-07-02,Wake,North Carolina,37183,5590,49 +2020-07-03,Wake,North Carolina,37183,5771,49 +2020-07-04,Wake,North Carolina,37183,5810,49 +2020-07-05,Wake,North Carolina,37183,5980,49 +2020-07-06,Wake,North Carolina,37183,6265,49 +2020-07-07,Wake,North Carolina,37183,6416,52 +2020-07-08,Wake,North Carolina,37183,6605,58 +2020-07-09,Wake,North Carolina,37183,6826,61 +2020-04-04,Warren,North Carolina,37185,1,0 +2020-04-05,Warren,North Carolina,37185,2,0 +2020-04-06,Warren,North Carolina,37185,2,0 +2020-04-07,Warren,North Carolina,37185,3,0 +2020-04-08,Warren,North Carolina,37185,3,0 +2020-04-09,Warren,North Carolina,37185,3,0 +2020-04-10,Warren,North Carolina,37185,3,0 +2020-04-11,Warren,North Carolina,37185,3,0 +2020-04-12,Warren,North Carolina,37185,3,0 +2020-04-13,Warren,North Carolina,37185,3,0 +2020-04-14,Warren,North Carolina,37185,3,0 +2020-04-15,Warren,North Carolina,37185,3,0 +2020-04-16,Warren,North Carolina,37185,3,0 +2020-04-17,Warren,North Carolina,37185,3,0 +2020-04-18,Warren,North Carolina,37185,3,0 +2020-04-19,Warren,North Carolina,37185,3,0 +2020-04-20,Warren,North Carolina,37185,3,0 +2020-04-21,Warren,North Carolina,37185,3,0 +2020-04-22,Warren,North Carolina,37185,3,0 +2020-04-23,Warren,North Carolina,37185,3,0 +2020-04-24,Warren,North Carolina,37185,3,0 +2020-04-25,Warren,North Carolina,37185,4,0 +2020-04-26,Warren,North Carolina,37185,4,0 +2020-04-27,Warren,North Carolina,37185,4,0 +2020-04-28,Warren,North Carolina,37185,6,0 +2020-04-29,Warren,North Carolina,37185,7,0 +2020-04-30,Warren,North Carolina,37185,10,0 +2020-05-01,Warren,North Carolina,37185,15,0 +2020-05-02,Warren,North Carolina,37185,15,0 +2020-05-03,Warren,North Carolina,37185,16,0 +2020-05-04,Warren,North Carolina,37185,17,0 +2020-05-05,Warren,North Carolina,37185,17,0 +2020-05-06,Warren,North Carolina,37185,18,0 +2020-05-07,Warren,North Carolina,37185,19,0 +2020-05-08,Warren,North Carolina,37185,22,0 +2020-05-09,Warren,North Carolina,37185,23,0 +2020-05-10,Warren,North Carolina,37185,23,0 +2020-05-11,Warren,North Carolina,37185,23,0 +2020-05-12,Warren,North Carolina,37185,23,0 +2020-05-13,Warren,North Carolina,37185,23,0 +2020-05-14,Warren,North Carolina,37185,25,0 +2020-05-15,Warren,North Carolina,37185,26,0 +2020-05-16,Warren,North Carolina,37185,28,0 +2020-05-17,Warren,North Carolina,37185,29,0 +2020-05-18,Warren,North Carolina,37185,29,0 +2020-05-19,Warren,North Carolina,37185,33,0 +2020-05-20,Warren,North Carolina,37185,36,0 +2020-05-21,Warren,North Carolina,37185,38,0 +2020-05-22,Warren,North Carolina,37185,48,0 +2020-05-23,Warren,North Carolina,37185,54,0 +2020-05-24,Warren,North Carolina,37185,54,0 +2020-05-25,Warren,North Carolina,37185,54,0 +2020-05-26,Warren,North Carolina,37185,54,0 +2020-05-27,Warren,North Carolina,37185,54,1 +2020-05-28,Warren,North Carolina,37185,57,2 +2020-05-29,Warren,North Carolina,37185,58,2 +2020-05-30,Warren,North Carolina,37185,62,2 +2020-05-31,Warren,North Carolina,37185,63,2 +2020-06-01,Warren,North Carolina,37185,63,2 +2020-06-02,Warren,North Carolina,37185,64,2 +2020-06-03,Warren,North Carolina,37185,70,2 +2020-06-04,Warren,North Carolina,37185,72,2 +2020-06-05,Warren,North Carolina,37185,82,2 +2020-06-06,Warren,North Carolina,37185,89,2 +2020-06-07,Warren,North Carolina,37185,89,2 +2020-06-08,Warren,North Carolina,37185,93,2 +2020-06-09,Warren,North Carolina,37185,110,2 +2020-06-10,Warren,North Carolina,37185,113,2 +2020-06-11,Warren,North Carolina,37185,118,2 +2020-06-12,Warren,North Carolina,37185,125,2 +2020-06-13,Warren,North Carolina,37185,129,2 +2020-06-14,Warren,North Carolina,37185,133,2 +2020-06-15,Warren,North Carolina,37185,133,2 +2020-06-16,Warren,North Carolina,37185,136,2 +2020-06-17,Warren,North Carolina,37185,134,2 +2020-06-18,Warren,North Carolina,37185,142,3 +2020-06-19,Warren,North Carolina,37185,144,4 +2020-06-20,Warren,North Carolina,37185,146,4 +2020-06-21,Warren,North Carolina,37185,148,4 +2020-06-22,Warren,North Carolina,37185,148,4 +2020-06-23,Warren,North Carolina,37185,150,5 +2020-06-24,Warren,North Carolina,37185,154,5 +2020-06-25,Warren,North Carolina,37185,154,5 +2020-06-26,Warren,North Carolina,37185,155,5 +2020-06-27,Warren,North Carolina,37185,157,5 +2020-06-28,Warren,North Carolina,37185,159,5 +2020-06-29,Warren,North Carolina,37185,159,5 +2020-06-30,Warren,North Carolina,37185,161,5 +2020-07-01,Warren,North Carolina,37185,160,5 +2020-07-02,Warren,North Carolina,37185,160,5 +2020-07-03,Warren,North Carolina,37185,161,5 +2020-07-04,Warren,North Carolina,37185,165,5 +2020-07-05,Warren,North Carolina,37185,171,5 +2020-07-06,Warren,North Carolina,37185,174,5 +2020-07-07,Warren,North Carolina,37185,174,5 +2020-07-08,Warren,North Carolina,37185,175,5 +2020-07-09,Warren,North Carolina,37185,179,5 +2020-03-29,Washington,North Carolina,37187,1,0 +2020-03-30,Washington,North Carolina,37187,1,0 +2020-03-31,Washington,North Carolina,37187,2,0 +2020-04-01,Washington,North Carolina,37187,2,0 +2020-04-02,Washington,North Carolina,37187,2,0 +2020-04-03,Washington,North Carolina,37187,2,0 +2020-04-04,Washington,North Carolina,37187,3,0 +2020-04-05,Washington,North Carolina,37187,4,0 +2020-04-06,Washington,North Carolina,37187,6,0 +2020-04-07,Washington,North Carolina,37187,7,0 +2020-04-08,Washington,North Carolina,37187,8,1 +2020-04-09,Washington,North Carolina,37187,10,1 +2020-04-10,Washington,North Carolina,37187,13,1 +2020-04-11,Washington,North Carolina,37187,15,1 +2020-04-12,Washington,North Carolina,37187,15,1 +2020-04-13,Washington,North Carolina,37187,17,2 +2020-04-14,Washington,North Carolina,37187,18,2 +2020-04-15,Washington,North Carolina,37187,18,2 +2020-04-16,Washington,North Carolina,37187,18,2 +2020-04-17,Washington,North Carolina,37187,18,2 +2020-04-18,Washington,North Carolina,37187,19,2 +2020-04-19,Washington,North Carolina,37187,20,2 +2020-04-20,Washington,North Carolina,37187,21,2 +2020-04-21,Washington,North Carolina,37187,22,2 +2020-04-22,Washington,North Carolina,37187,21,2 +2020-04-23,Washington,North Carolina,37187,21,2 +2020-04-24,Washington,North Carolina,37187,21,2 +2020-04-25,Washington,North Carolina,37187,24,2 +2020-04-26,Washington,North Carolina,37187,24,2 +2020-04-27,Washington,North Carolina,37187,23,2 +2020-04-28,Washington,North Carolina,37187,23,2 +2020-04-29,Washington,North Carolina,37187,23,2 +2020-04-30,Washington,North Carolina,37187,24,2 +2020-05-01,Washington,North Carolina,37187,24,2 +2020-05-02,Washington,North Carolina,37187,24,3 +2020-05-03,Washington,North Carolina,37187,24,3 +2020-05-04,Washington,North Carolina,37187,25,3 +2020-05-05,Washington,North Carolina,37187,25,3 +2020-05-06,Washington,North Carolina,37187,25,3 +2020-05-07,Washington,North Carolina,37187,25,3 +2020-05-08,Washington,North Carolina,37187,25,3 +2020-05-09,Washington,North Carolina,37187,25,3 +2020-05-10,Washington,North Carolina,37187,25,3 +2020-05-11,Washington,North Carolina,37187,25,3 +2020-05-12,Washington,North Carolina,37187,25,3 +2020-05-13,Washington,North Carolina,37187,25,3 +2020-05-14,Washington,North Carolina,37187,26,3 +2020-05-15,Washington,North Carolina,37187,26,3 +2020-05-16,Washington,North Carolina,37187,26,3 +2020-05-17,Washington,North Carolina,37187,26,3 +2020-05-18,Washington,North Carolina,37187,26,3 +2020-05-19,Washington,North Carolina,37187,26,3 +2020-05-20,Washington,North Carolina,37187,26,3 +2020-05-21,Washington,North Carolina,37187,26,3 +2020-05-22,Washington,North Carolina,37187,26,3 +2020-05-23,Washington,North Carolina,37187,26,3 +2020-05-24,Washington,North Carolina,37187,26,3 +2020-05-25,Washington,North Carolina,37187,26,3 +2020-05-26,Washington,North Carolina,37187,26,3 +2020-05-27,Washington,North Carolina,37187,27,3 +2020-05-28,Washington,North Carolina,37187,27,3 +2020-05-29,Washington,North Carolina,37187,27,3 +2020-05-30,Washington,North Carolina,37187,27,3 +2020-05-31,Washington,North Carolina,37187,29,3 +2020-06-01,Washington,North Carolina,37187,30,3 +2020-06-02,Washington,North Carolina,37187,30,3 +2020-06-03,Washington,North Carolina,37187,32,3 +2020-06-04,Washington,North Carolina,37187,32,3 +2020-06-05,Washington,North Carolina,37187,32,3 +2020-06-06,Washington,North Carolina,37187,32,3 +2020-06-07,Washington,North Carolina,37187,32,3 +2020-06-08,Washington,North Carolina,37187,32,3 +2020-06-09,Washington,North Carolina,37187,32,3 +2020-06-10,Washington,North Carolina,37187,32,3 +2020-06-11,Washington,North Carolina,37187,32,3 +2020-06-12,Washington,North Carolina,37187,33,3 +2020-06-13,Washington,North Carolina,37187,34,3 +2020-06-14,Washington,North Carolina,37187,35,3 +2020-06-15,Washington,North Carolina,37187,35,3 +2020-06-16,Washington,North Carolina,37187,34,3 +2020-06-17,Washington,North Carolina,37187,35,3 +2020-06-18,Washington,North Carolina,37187,35,3 +2020-06-19,Washington,North Carolina,37187,35,3 +2020-06-20,Washington,North Carolina,37187,37,3 +2020-06-21,Washington,North Carolina,37187,37,3 +2020-06-22,Washington,North Carolina,37187,37,3 +2020-06-23,Washington,North Carolina,37187,36,3 +2020-06-24,Washington,North Carolina,37187,37,3 +2020-06-25,Washington,North Carolina,37187,37,3 +2020-06-26,Washington,North Carolina,37187,37,3 +2020-06-27,Washington,North Carolina,37187,38,3 +2020-06-28,Washington,North Carolina,37187,38,3 +2020-06-29,Washington,North Carolina,37187,38,3 +2020-06-30,Washington,North Carolina,37187,38,3 +2020-07-01,Washington,North Carolina,37187,38,3 +2020-07-02,Washington,North Carolina,37187,38,3 +2020-07-03,Washington,North Carolina,37187,40,3 +2020-07-04,Washington,North Carolina,37187,40,3 +2020-07-05,Washington,North Carolina,37187,41,3 +2020-07-06,Washington,North Carolina,37187,40,3 +2020-07-07,Washington,North Carolina,37187,41,3 +2020-07-08,Washington,North Carolina,37187,43,3 +2020-07-09,Washington,North Carolina,37187,41,3 +2020-03-15,Watauga,North Carolina,37189,1,0 +2020-03-16,Watauga,North Carolina,37189,1,0 +2020-03-17,Watauga,North Carolina,37189,1,0 +2020-03-18,Watauga,North Carolina,37189,1,0 +2020-03-19,Watauga,North Carolina,37189,2,0 +2020-03-20,Watauga,North Carolina,37189,2,0 +2020-03-21,Watauga,North Carolina,37189,2,0 +2020-03-22,Watauga,North Carolina,37189,2,0 +2020-03-23,Watauga,North Carolina,37189,2,0 +2020-03-24,Watauga,North Carolina,37189,2,0 +2020-03-25,Watauga,North Carolina,37189,3,0 +2020-03-26,Watauga,North Carolina,37189,3,0 +2020-03-27,Watauga,North Carolina,37189,4,0 +2020-03-28,Watauga,North Carolina,37189,5,0 +2020-03-29,Watauga,North Carolina,37189,5,0 +2020-03-30,Watauga,North Carolina,37189,5,0 +2020-03-31,Watauga,North Carolina,37189,5,0 +2020-04-01,Watauga,North Carolina,37189,6,0 +2020-04-02,Watauga,North Carolina,37189,7,0 +2020-04-03,Watauga,North Carolina,37189,7,0 +2020-04-04,Watauga,North Carolina,37189,7,0 +2020-04-05,Watauga,North Carolina,37189,7,0 +2020-04-06,Watauga,North Carolina,37189,7,0 +2020-04-07,Watauga,North Carolina,37189,8,0 +2020-04-08,Watauga,North Carolina,37189,8,0 +2020-04-09,Watauga,North Carolina,37189,8,0 +2020-04-10,Watauga,North Carolina,37189,7,0 +2020-04-11,Watauga,North Carolina,37189,8,0 +2020-04-12,Watauga,North Carolina,37189,8,0 +2020-04-13,Watauga,North Carolina,37189,8,0 +2020-04-14,Watauga,North Carolina,37189,8,0 +2020-04-15,Watauga,North Carolina,37189,8,0 +2020-04-16,Watauga,North Carolina,37189,8,0 +2020-04-17,Watauga,North Carolina,37189,8,0 +2020-04-18,Watauga,North Carolina,37189,8,0 +2020-04-19,Watauga,North Carolina,37189,8,0 +2020-04-20,Watauga,North Carolina,37189,8,0 +2020-04-21,Watauga,North Carolina,37189,8,0 +2020-04-22,Watauga,North Carolina,37189,8,0 +2020-04-23,Watauga,North Carolina,37189,8,0 +2020-04-24,Watauga,North Carolina,37189,8,0 +2020-04-25,Watauga,North Carolina,37189,8,0 +2020-04-26,Watauga,North Carolina,37189,8,0 +2020-04-27,Watauga,North Carolina,37189,8,0 +2020-04-28,Watauga,North Carolina,37189,8,0 +2020-04-29,Watauga,North Carolina,37189,8,0 +2020-04-30,Watauga,North Carolina,37189,9,0 +2020-05-01,Watauga,North Carolina,37189,9,0 +2020-05-02,Watauga,North Carolina,37189,8,0 +2020-05-03,Watauga,North Carolina,37189,8,0 +2020-05-04,Watauga,North Carolina,37189,8,0 +2020-05-05,Watauga,North Carolina,37189,8,0 +2020-05-06,Watauga,North Carolina,37189,8,0 +2020-05-07,Watauga,North Carolina,37189,9,0 +2020-05-08,Watauga,North Carolina,37189,9,0 +2020-05-09,Watauga,North Carolina,37189,9,0 +2020-05-10,Watauga,North Carolina,37189,9,0 +2020-05-11,Watauga,North Carolina,37189,9,0 +2020-05-12,Watauga,North Carolina,37189,9,0 +2020-05-13,Watauga,North Carolina,37189,9,0 +2020-05-14,Watauga,North Carolina,37189,9,0 +2020-05-15,Watauga,North Carolina,37189,9,0 +2020-05-16,Watauga,North Carolina,37189,9,0 +2020-05-17,Watauga,North Carolina,37189,9,0 +2020-05-18,Watauga,North Carolina,37189,11,0 +2020-05-19,Watauga,North Carolina,37189,12,0 +2020-05-20,Watauga,North Carolina,37189,12,0 +2020-05-21,Watauga,North Carolina,37189,13,0 +2020-05-22,Watauga,North Carolina,37189,12,0 +2020-05-23,Watauga,North Carolina,37189,12,0 +2020-05-24,Watauga,North Carolina,37189,13,0 +2020-05-25,Watauga,North Carolina,37189,13,0 +2020-05-26,Watauga,North Carolina,37189,13,0 +2020-05-27,Watauga,North Carolina,37189,14,0 +2020-05-28,Watauga,North Carolina,37189,15,0 +2020-05-29,Watauga,North Carolina,37189,15,0 +2020-05-30,Watauga,North Carolina,37189,19,0 +2020-05-31,Watauga,North Carolina,37189,23,0 +2020-06-01,Watauga,North Carolina,37189,23,0 +2020-06-02,Watauga,North Carolina,37189,27,0 +2020-06-03,Watauga,North Carolina,37189,31,0 +2020-06-04,Watauga,North Carolina,37189,35,0 +2020-06-05,Watauga,North Carolina,37189,37,0 +2020-06-06,Watauga,North Carolina,37189,38,0 +2020-06-07,Watauga,North Carolina,37189,40,0 +2020-06-08,Watauga,North Carolina,37189,41,0 +2020-06-09,Watauga,North Carolina,37189,39,0 +2020-06-10,Watauga,North Carolina,37189,39,0 +2020-06-11,Watauga,North Carolina,37189,37,0 +2020-06-12,Watauga,North Carolina,37189,38,0 +2020-06-13,Watauga,North Carolina,37189,43,0 +2020-06-14,Watauga,North Carolina,37189,43,0 +2020-06-15,Watauga,North Carolina,37189,44,0 +2020-06-16,Watauga,North Carolina,37189,41,0 +2020-06-17,Watauga,North Carolina,37189,41,0 +2020-06-18,Watauga,North Carolina,37189,43,0 +2020-06-19,Watauga,North Carolina,37189,43,0 +2020-06-20,Watauga,North Carolina,37189,45,0 +2020-06-21,Watauga,North Carolina,37189,47,0 +2020-06-22,Watauga,North Carolina,37189,49,0 +2020-06-23,Watauga,North Carolina,37189,50,0 +2020-06-24,Watauga,North Carolina,37189,51,0 +2020-06-25,Watauga,North Carolina,37189,51,0 +2020-06-26,Watauga,North Carolina,37189,52,0 +2020-06-27,Watauga,North Carolina,37189,58,0 +2020-06-28,Watauga,North Carolina,37189,65,0 +2020-06-29,Watauga,North Carolina,37189,67,0 +2020-06-30,Watauga,North Carolina,37189,68,0 +2020-07-01,Watauga,North Carolina,37189,70,0 +2020-07-02,Watauga,North Carolina,37189,75,0 +2020-07-03,Watauga,North Carolina,37189,77,0 +2020-07-04,Watauga,North Carolina,37189,83,0 +2020-07-05,Watauga,North Carolina,37189,93,0 +2020-07-06,Watauga,North Carolina,37189,99,0 +2020-07-07,Watauga,North Carolina,37189,104,0 +2020-07-08,Watauga,North Carolina,37189,104,0 +2020-07-09,Watauga,North Carolina,37189,108,0 +2020-03-13,Wayne,North Carolina,37191,1,0 +2020-03-14,Wayne,North Carolina,37191,1,0 +2020-03-15,Wayne,North Carolina,37191,1,0 +2020-03-16,Wayne,North Carolina,37191,1,0 +2020-03-17,Wayne,North Carolina,37191,1,0 +2020-03-18,Wayne,North Carolina,37191,1,0 +2020-03-19,Wayne,North Carolina,37191,1,0 +2020-03-20,Wayne,North Carolina,37191,1,0 +2020-03-21,Wayne,North Carolina,37191,1,0 +2020-03-22,Wayne,North Carolina,37191,1,0 +2020-03-23,Wayne,North Carolina,37191,1,0 +2020-03-24,Wayne,North Carolina,37191,2,0 +2020-03-25,Wayne,North Carolina,37191,2,0 +2020-03-26,Wayne,North Carolina,37191,1,0 +2020-03-27,Wayne,North Carolina,37191,3,0 +2020-03-28,Wayne,North Carolina,37191,3,0 +2020-03-29,Wayne,North Carolina,37191,3,0 +2020-03-30,Wayne,North Carolina,37191,4,0 +2020-03-31,Wayne,North Carolina,37191,4,0 +2020-04-01,Wayne,North Carolina,37191,4,0 +2020-04-02,Wayne,North Carolina,37191,6,0 +2020-04-03,Wayne,North Carolina,37191,9,0 +2020-04-04,Wayne,North Carolina,37191,11,0 +2020-04-05,Wayne,North Carolina,37191,15,0 +2020-04-06,Wayne,North Carolina,37191,23,0 +2020-04-07,Wayne,North Carolina,37191,32,0 +2020-04-08,Wayne,North Carolina,37191,34,0 +2020-04-09,Wayne,North Carolina,37191,44,0 +2020-04-10,Wayne,North Carolina,37191,52,0 +2020-04-11,Wayne,North Carolina,37191,69,1 +2020-04-12,Wayne,North Carolina,37191,69,1 +2020-04-13,Wayne,North Carolina,37191,72,1 +2020-04-14,Wayne,North Carolina,37191,78,2 +2020-04-15,Wayne,North Carolina,37191,80,2 +2020-04-16,Wayne,North Carolina,37191,103,4 +2020-04-17,Wayne,North Carolina,37191,239,4 +2020-04-18,Wayne,North Carolina,37191,316,4 +2020-04-19,Wayne,North Carolina,37191,463,4 +2020-04-20,Wayne,North Carolina,37191,572,4 +2020-04-21,Wayne,North Carolina,37191,581,5 +2020-04-22,Wayne,North Carolina,37191,585,5 +2020-04-23,Wayne,North Carolina,37191,596,6 +2020-04-24,Wayne,North Carolina,37191,603,6 +2020-04-25,Wayne,North Carolina,37191,618,8 +2020-04-26,Wayne,North Carolina,37191,630,8 +2020-04-27,Wayne,North Carolina,37191,635,10 +2020-04-28,Wayne,North Carolina,37191,641,10 +2020-04-29,Wayne,North Carolina,37191,645,10 +2020-04-30,Wayne,North Carolina,37191,655,10 +2020-05-01,Wayne,North Carolina,37191,658,11 +2020-05-02,Wayne,North Carolina,37191,674,11 +2020-05-03,Wayne,North Carolina,37191,677,11 +2020-05-04,Wayne,North Carolina,37191,685,12 +2020-05-05,Wayne,North Carolina,37191,688,12 +2020-05-06,Wayne,North Carolina,37191,687,12 +2020-05-07,Wayne,North Carolina,37191,699,12 +2020-05-08,Wayne,North Carolina,37191,715,12 +2020-05-09,Wayne,North Carolina,37191,726,13 +2020-05-10,Wayne,North Carolina,37191,743,13 +2020-05-11,Wayne,North Carolina,37191,752,13 +2020-05-12,Wayne,North Carolina,37191,755,13 +2020-05-13,Wayne,North Carolina,37191,760,13 +2020-05-14,Wayne,North Carolina,37191,775,14 +2020-05-15,Wayne,North Carolina,37191,801,15 +2020-05-16,Wayne,North Carolina,37191,819,15 +2020-05-17,Wayne,North Carolina,37191,832,15 +2020-05-18,Wayne,North Carolina,37191,867,15 +2020-05-19,Wayne,North Carolina,37191,879,16 +2020-05-20,Wayne,North Carolina,37191,888,16 +2020-05-21,Wayne,North Carolina,37191,910,17 +2020-05-22,Wayne,North Carolina,37191,949,18 +2020-05-23,Wayne,North Carolina,37191,980,18 +2020-05-24,Wayne,North Carolina,37191,1000,18 +2020-05-25,Wayne,North Carolina,37191,1031,18 +2020-05-26,Wayne,North Carolina,37191,1031,18 +2020-05-27,Wayne,North Carolina,37191,1045,20 +2020-05-28,Wayne,North Carolina,37191,1054,20 +2020-05-29,Wayne,North Carolina,37191,1088,20 +2020-05-30,Wayne,North Carolina,37191,1112,20 +2020-05-31,Wayne,North Carolina,37191,1138,20 +2020-06-01,Wayne,North Carolina,37191,1161,20 +2020-06-02,Wayne,North Carolina,37191,1179,20 +2020-06-03,Wayne,North Carolina,37191,1188,20 +2020-06-04,Wayne,North Carolina,37191,1212,20 +2020-06-05,Wayne,North Carolina,37191,1240,20 +2020-06-06,Wayne,North Carolina,37191,1268,20 +2020-06-07,Wayne,North Carolina,37191,1306,20 +2020-06-08,Wayne,North Carolina,37191,1335,20 +2020-06-09,Wayne,North Carolina,37191,1337,20 +2020-06-10,Wayne,North Carolina,37191,1367,20 +2020-06-11,Wayne,North Carolina,37191,1403,20 +2020-06-12,Wayne,North Carolina,37191,1448,20 +2020-06-13,Wayne,North Carolina,37191,1467,20 +2020-06-14,Wayne,North Carolina,37191,1512,20 +2020-06-15,Wayne,North Carolina,37191,1533,20 +2020-06-16,Wayne,North Carolina,37191,1535,20 +2020-06-17,Wayne,North Carolina,37191,1540,20 +2020-06-18,Wayne,North Carolina,37191,1565,20 +2020-06-19,Wayne,North Carolina,37191,1587,21 +2020-06-20,Wayne,North Carolina,37191,1622,22 +2020-06-21,Wayne,North Carolina,37191,1643,23 +2020-06-22,Wayne,North Carolina,37191,1658,23 +2020-06-23,Wayne,North Carolina,37191,1673,23 +2020-06-24,Wayne,North Carolina,37191,1703,24 +2020-06-25,Wayne,North Carolina,37191,1712,24 +2020-06-26,Wayne,North Carolina,37191,1724,24 +2020-06-27,Wayne,North Carolina,37191,1740,25 +2020-06-28,Wayne,North Carolina,37191,1767,25 +2020-06-29,Wayne,North Carolina,37191,1795,25 +2020-06-30,Wayne,North Carolina,37191,1802,26 +2020-07-01,Wayne,North Carolina,37191,1822,28 +2020-07-02,Wayne,North Carolina,37191,1847,28 +2020-07-03,Wayne,North Carolina,37191,1864,28 +2020-07-04,Wayne,North Carolina,37191,1879,28 +2020-07-05,Wayne,North Carolina,37191,1897,28 +2020-07-06,Wayne,North Carolina,37191,1913,28 +2020-07-07,Wayne,North Carolina,37191,1926,29 +2020-07-08,Wayne,North Carolina,37191,1935,30 +2020-07-09,Wayne,North Carolina,37191,1942,30 +2020-03-31,Wilkes,North Carolina,37193,2,0 +2020-04-01,Wilkes,North Carolina,37193,2,0 +2020-04-02,Wilkes,North Carolina,37193,4,1 +2020-04-03,Wilkes,North Carolina,37193,4,1 +2020-04-04,Wilkes,North Carolina,37193,4,1 +2020-04-05,Wilkes,North Carolina,37193,4,1 +2020-04-06,Wilkes,North Carolina,37193,4,1 +2020-04-07,Wilkes,North Carolina,37193,4,1 +2020-04-08,Wilkes,North Carolina,37193,4,1 +2020-04-09,Wilkes,North Carolina,37193,4,1 +2020-04-10,Wilkes,North Carolina,37193,4,1 +2020-04-11,Wilkes,North Carolina,37193,4,1 +2020-04-12,Wilkes,North Carolina,37193,4,1 +2020-04-13,Wilkes,North Carolina,37193,4,1 +2020-04-14,Wilkes,North Carolina,37193,4,1 +2020-04-15,Wilkes,North Carolina,37193,4,1 +2020-04-16,Wilkes,North Carolina,37193,4,1 +2020-04-17,Wilkes,North Carolina,37193,4,1 +2020-04-18,Wilkes,North Carolina,37193,4,1 +2020-04-19,Wilkes,North Carolina,37193,4,1 +2020-04-20,Wilkes,North Carolina,37193,4,1 +2020-04-21,Wilkes,North Carolina,37193,5,1 +2020-04-22,Wilkes,North Carolina,37193,5,1 +2020-04-23,Wilkes,North Carolina,37193,8,1 +2020-04-24,Wilkes,North Carolina,37193,11,1 +2020-04-25,Wilkes,North Carolina,37193,18,1 +2020-04-26,Wilkes,North Carolina,37193,21,1 +2020-04-27,Wilkes,North Carolina,37193,21,1 +2020-04-28,Wilkes,North Carolina,37193,22,1 +2020-04-29,Wilkes,North Carolina,37193,26,1 +2020-04-30,Wilkes,North Carolina,37193,33,1 +2020-05-01,Wilkes,North Carolina,37193,42,1 +2020-05-02,Wilkes,North Carolina,37193,59,1 +2020-05-03,Wilkes,North Carolina,37193,92,1 +2020-05-04,Wilkes,North Carolina,37193,115,1 +2020-05-05,Wilkes,North Carolina,37193,128,1 +2020-05-06,Wilkes,North Carolina,37193,147,1 +2020-05-07,Wilkes,North Carolina,37193,186,1 +2020-05-08,Wilkes,North Carolina,37193,198,1 +2020-05-09,Wilkes,North Carolina,37193,202,1 +2020-05-10,Wilkes,North Carolina,37193,239,1 +2020-05-11,Wilkes,North Carolina,37193,242,1 +2020-05-12,Wilkes,North Carolina,37193,243,1 +2020-05-13,Wilkes,North Carolina,37193,262,1 +2020-05-14,Wilkes,North Carolina,37193,277,1 +2020-05-15,Wilkes,North Carolina,37193,287,1 +2020-05-16,Wilkes,North Carolina,37193,405,1 +2020-05-17,Wilkes,North Carolina,37193,423,1 +2020-05-18,Wilkes,North Carolina,37193,425,1 +2020-05-19,Wilkes,North Carolina,37193,448,1 +2020-05-20,Wilkes,North Carolina,37193,451,1 +2020-05-21,Wilkes,North Carolina,37193,456,1 +2020-05-22,Wilkes,North Carolina,37193,462,3 +2020-05-23,Wilkes,North Carolina,37193,472,3 +2020-05-24,Wilkes,North Carolina,37193,473,3 +2020-05-25,Wilkes,North Carolina,37193,478,3 +2020-05-26,Wilkes,North Carolina,37193,478,3 +2020-05-27,Wilkes,North Carolina,37193,483,3 +2020-05-28,Wilkes,North Carolina,37193,486,4 +2020-05-29,Wilkes,North Carolina,37193,492,5 +2020-05-30,Wilkes,North Carolina,37193,494,5 +2020-05-31,Wilkes,North Carolina,37193,497,5 +2020-06-01,Wilkes,North Carolina,37193,500,6 +2020-06-02,Wilkes,North Carolina,37193,500,6 +2020-06-03,Wilkes,North Carolina,37193,500,6 +2020-06-04,Wilkes,North Carolina,37193,502,6 +2020-06-05,Wilkes,North Carolina,37193,504,6 +2020-06-06,Wilkes,North Carolina,37193,507,6 +2020-06-07,Wilkes,North Carolina,37193,509,6 +2020-06-08,Wilkes,North Carolina,37193,511,6 +2020-06-09,Wilkes,North Carolina,37193,513,6 +2020-06-10,Wilkes,North Carolina,37193,513,6 +2020-06-11,Wilkes,North Carolina,37193,516,6 +2020-06-12,Wilkes,North Carolina,37193,530,6 +2020-06-13,Wilkes,North Carolina,37193,542,6 +2020-06-14,Wilkes,North Carolina,37193,542,6 +2020-06-15,Wilkes,North Carolina,37193,544,6 +2020-06-16,Wilkes,North Carolina,37193,547,6 +2020-06-17,Wilkes,North Carolina,37193,550,6 +2020-06-18,Wilkes,North Carolina,37193,551,6 +2020-06-19,Wilkes,North Carolina,37193,554,6 +2020-06-20,Wilkes,North Carolina,37193,554,6 +2020-06-21,Wilkes,North Carolina,37193,555,6 +2020-06-22,Wilkes,North Carolina,37193,555,6 +2020-06-23,Wilkes,North Carolina,37193,557,6 +2020-06-24,Wilkes,North Carolina,37193,560,6 +2020-06-25,Wilkes,North Carolina,37193,561,6 +2020-06-26,Wilkes,North Carolina,37193,564,6 +2020-06-27,Wilkes,North Carolina,37193,567,6 +2020-06-28,Wilkes,North Carolina,37193,570,6 +2020-06-29,Wilkes,North Carolina,37193,576,6 +2020-06-30,Wilkes,North Carolina,37193,576,6 +2020-07-01,Wilkes,North Carolina,37193,578,6 +2020-07-02,Wilkes,North Carolina,37193,583,6 +2020-07-03,Wilkes,North Carolina,37193,586,6 +2020-07-04,Wilkes,North Carolina,37193,588,6 +2020-07-05,Wilkes,North Carolina,37193,589,6 +2020-07-06,Wilkes,North Carolina,37193,593,6 +2020-07-07,Wilkes,North Carolina,37193,592,6 +2020-07-08,Wilkes,North Carolina,37193,600,6 +2020-07-09,Wilkes,North Carolina,37193,602,6 +2020-03-15,Wilson,North Carolina,37195,1,0 +2020-03-16,Wilson,North Carolina,37195,1,0 +2020-03-17,Wilson,North Carolina,37195,1,0 +2020-03-18,Wilson,North Carolina,37195,1,0 +2020-03-19,Wilson,North Carolina,37195,2,0 +2020-03-20,Wilson,North Carolina,37195,2,0 +2020-03-21,Wilson,North Carolina,37195,2,0 +2020-03-22,Wilson,North Carolina,37195,2,0 +2020-03-23,Wilson,North Carolina,37195,3,0 +2020-03-24,Wilson,North Carolina,37195,3,0 +2020-03-25,Wilson,North Carolina,37195,5,0 +2020-03-26,Wilson,North Carolina,37195,7,0 +2020-03-27,Wilson,North Carolina,37195,7,0 +2020-03-28,Wilson,North Carolina,37195,9,0 +2020-03-29,Wilson,North Carolina,37195,10,0 +2020-03-30,Wilson,North Carolina,37195,11,0 +2020-03-31,Wilson,North Carolina,37195,15,0 +2020-04-01,Wilson,North Carolina,37195,15,0 +2020-04-02,Wilson,North Carolina,37195,17,0 +2020-04-03,Wilson,North Carolina,37195,20,0 +2020-04-04,Wilson,North Carolina,37195,23,1 +2020-04-05,Wilson,North Carolina,37195,28,1 +2020-04-06,Wilson,North Carolina,37195,29,2 +2020-04-07,Wilson,North Carolina,37195,36,2 +2020-04-08,Wilson,North Carolina,37195,38,2 +2020-04-09,Wilson,North Carolina,37195,42,3 +2020-04-10,Wilson,North Carolina,37195,44,3 +2020-04-11,Wilson,North Carolina,37195,58,3 +2020-04-12,Wilson,North Carolina,37195,64,3 +2020-04-13,Wilson,North Carolina,37195,70,3 +2020-04-14,Wilson,North Carolina,37195,74,3 +2020-04-15,Wilson,North Carolina,37195,75,3 +2020-04-16,Wilson,North Carolina,37195,83,3 +2020-04-17,Wilson,North Carolina,37195,96,3 +2020-04-18,Wilson,North Carolina,37195,103,4 +2020-04-19,Wilson,North Carolina,37195,112,4 +2020-04-20,Wilson,North Carolina,37195,116,4 +2020-04-21,Wilson,North Carolina,37195,118,4 +2020-04-22,Wilson,North Carolina,37195,121,5 +2020-04-23,Wilson,North Carolina,37195,130,5 +2020-04-24,Wilson,North Carolina,37195,136,6 +2020-04-25,Wilson,North Carolina,37195,148,6 +2020-04-26,Wilson,North Carolina,37195,148,6 +2020-04-27,Wilson,North Carolina,37195,150,6 +2020-04-28,Wilson,North Carolina,37195,152,6 +2020-04-29,Wilson,North Carolina,37195,152,6 +2020-04-30,Wilson,North Carolina,37195,157,6 +2020-05-01,Wilson,North Carolina,37195,162,7 +2020-05-02,Wilson,North Carolina,37195,173,7 +2020-05-03,Wilson,North Carolina,37195,175,7 +2020-05-04,Wilson,North Carolina,37195,180,7 +2020-05-05,Wilson,North Carolina,37195,182,7 +2020-05-06,Wilson,North Carolina,37195,184,7 +2020-05-07,Wilson,North Carolina,37195,192,8 +2020-05-08,Wilson,North Carolina,37195,199,8 +2020-05-09,Wilson,North Carolina,37195,203,8 +2020-05-10,Wilson,North Carolina,37195,212,8 +2020-05-11,Wilson,North Carolina,37195,214,8 +2020-05-12,Wilson,North Carolina,37195,216,9 +2020-05-13,Wilson,North Carolina,37195,216,9 +2020-05-14,Wilson,North Carolina,37195,218,9 +2020-05-15,Wilson,North Carolina,37195,222,9 +2020-05-16,Wilson,North Carolina,37195,229,9 +2020-05-17,Wilson,North Carolina,37195,238,9 +2020-05-18,Wilson,North Carolina,37195,246,9 +2020-05-19,Wilson,North Carolina,37195,251,9 +2020-05-20,Wilson,North Carolina,37195,256,9 +2020-05-21,Wilson,North Carolina,37195,264,9 +2020-05-22,Wilson,North Carolina,37195,275,9 +2020-05-23,Wilson,North Carolina,37195,309,9 +2020-05-24,Wilson,North Carolina,37195,314,9 +2020-05-25,Wilson,North Carolina,37195,319,9 +2020-05-26,Wilson,North Carolina,37195,321,9 +2020-05-27,Wilson,North Carolina,37195,325,9 +2020-05-28,Wilson,North Carolina,37195,331,10 +2020-05-29,Wilson,North Carolina,37195,338,10 +2020-05-30,Wilson,North Carolina,37195,347,10 +2020-05-31,Wilson,North Carolina,37195,356,10 +2020-06-01,Wilson,North Carolina,37195,359,10 +2020-06-02,Wilson,North Carolina,37195,363,10 +2020-06-03,Wilson,North Carolina,37195,370,10 +2020-06-04,Wilson,North Carolina,37195,403,10 +2020-06-05,Wilson,North Carolina,37195,413,10 +2020-06-06,Wilson,North Carolina,37195,426,12 +2020-06-07,Wilson,North Carolina,37195,443,12 +2020-06-08,Wilson,North Carolina,37195,445,12 +2020-06-09,Wilson,North Carolina,37195,452,13 +2020-06-10,Wilson,North Carolina,37195,456,13 +2020-06-11,Wilson,North Carolina,37195,464,13 +2020-06-12,Wilson,North Carolina,37195,473,13 +2020-06-13,Wilson,North Carolina,37195,496,13 +2020-06-14,Wilson,North Carolina,37195,507,13 +2020-06-15,Wilson,North Carolina,37195,518,13 +2020-06-16,Wilson,North Carolina,37195,524,15 +2020-06-17,Wilson,North Carolina,37195,527,15 +2020-06-18,Wilson,North Carolina,37195,545,15 +2020-06-19,Wilson,North Carolina,37195,556,15 +2020-06-20,Wilson,North Carolina,37195,594,16 +2020-06-21,Wilson,North Carolina,37195,603,16 +2020-06-22,Wilson,North Carolina,37195,610,16 +2020-06-23,Wilson,North Carolina,37195,615,18 +2020-06-24,Wilson,North Carolina,37195,633,18 +2020-06-25,Wilson,North Carolina,37195,644,18 +2020-06-26,Wilson,North Carolina,37195,661,18 +2020-06-27,Wilson,North Carolina,37195,674,18 +2020-06-28,Wilson,North Carolina,37195,682,18 +2020-06-29,Wilson,North Carolina,37195,696,18 +2020-06-30,Wilson,North Carolina,37195,714,18 +2020-07-01,Wilson,North Carolina,37195,726,19 +2020-07-02,Wilson,North Carolina,37195,745,20 +2020-07-03,Wilson,North Carolina,37195,767,20 +2020-07-04,Wilson,North Carolina,37195,757,19 +2020-07-05,Wilson,North Carolina,37195,764,19 +2020-07-06,Wilson,North Carolina,37195,786,19 +2020-07-07,Wilson,North Carolina,37195,800,23 +2020-07-08,Wilson,North Carolina,37195,837,23 +2020-07-09,Wilson,North Carolina,37195,854,23 +2020-03-29,Yadkin,North Carolina,37197,1,0 +2020-03-30,Yadkin,North Carolina,37197,2,0 +2020-03-31,Yadkin,North Carolina,37197,3,0 +2020-04-01,Yadkin,North Carolina,37197,3,0 +2020-04-02,Yadkin,North Carolina,37197,4,0 +2020-04-03,Yadkin,North Carolina,37197,5,0 +2020-04-04,Yadkin,North Carolina,37197,6,0 +2020-04-05,Yadkin,North Carolina,37197,9,0 +2020-04-06,Yadkin,North Carolina,37197,9,0 +2020-04-07,Yadkin,North Carolina,37197,9,0 +2020-04-08,Yadkin,North Carolina,37197,9,0 +2020-04-09,Yadkin,North Carolina,37197,9,0 +2020-04-10,Yadkin,North Carolina,37197,10,0 +2020-04-11,Yadkin,North Carolina,37197,10,0 +2020-04-12,Yadkin,North Carolina,37197,10,0 +2020-04-13,Yadkin,North Carolina,37197,10,0 +2020-04-14,Yadkin,North Carolina,37197,11,0 +2020-04-15,Yadkin,North Carolina,37197,11,1 +2020-04-16,Yadkin,North Carolina,37197,11,1 +2020-04-17,Yadkin,North Carolina,37197,11,1 +2020-04-18,Yadkin,North Carolina,37197,11,1 +2020-04-19,Yadkin,North Carolina,37197,11,1 +2020-04-20,Yadkin,North Carolina,37197,11,1 +2020-04-21,Yadkin,North Carolina,37197,11,1 +2020-04-22,Yadkin,North Carolina,37197,11,1 +2020-04-23,Yadkin,North Carolina,37197,11,1 +2020-04-24,Yadkin,North Carolina,37197,11,1 +2020-04-25,Yadkin,North Carolina,37197,11,1 +2020-04-26,Yadkin,North Carolina,37197,12,1 +2020-04-27,Yadkin,North Carolina,37197,12,1 +2020-04-28,Yadkin,North Carolina,37197,15,1 +2020-04-29,Yadkin,North Carolina,37197,16,1 +2020-04-30,Yadkin,North Carolina,37197,16,1 +2020-05-01,Yadkin,North Carolina,37197,17,1 +2020-05-02,Yadkin,North Carolina,37197,23,1 +2020-05-03,Yadkin,North Carolina,37197,23,1 +2020-05-04,Yadkin,North Carolina,37197,24,1 +2020-05-05,Yadkin,North Carolina,37197,25,1 +2020-05-06,Yadkin,North Carolina,37197,27,1 +2020-05-07,Yadkin,North Carolina,37197,33,1 +2020-05-08,Yadkin,North Carolina,37197,39,1 +2020-05-09,Yadkin,North Carolina,37197,49,1 +2020-05-10,Yadkin,North Carolina,37197,54,1 +2020-05-11,Yadkin,North Carolina,37197,54,1 +2020-05-12,Yadkin,North Carolina,37197,60,1 +2020-05-13,Yadkin,North Carolina,37197,75,1 +2020-05-14,Yadkin,North Carolina,37197,80,1 +2020-05-15,Yadkin,North Carolina,37197,92,1 +2020-05-16,Yadkin,North Carolina,37197,98,1 +2020-05-17,Yadkin,North Carolina,37197,103,1 +2020-05-18,Yadkin,North Carolina,37197,109,1 +2020-05-19,Yadkin,North Carolina,37197,118,1 +2020-05-20,Yadkin,North Carolina,37197,123,1 +2020-05-21,Yadkin,North Carolina,37197,124,1 +2020-05-22,Yadkin,North Carolina,37197,128,1 +2020-05-23,Yadkin,North Carolina,37197,131,1 +2020-05-24,Yadkin,North Carolina,37197,132,1 +2020-05-25,Yadkin,North Carolina,37197,145,1 +2020-05-26,Yadkin,North Carolina,37197,146,1 +2020-05-27,Yadkin,North Carolina,37197,149,2 +2020-05-28,Yadkin,North Carolina,37197,154,2 +2020-05-29,Yadkin,North Carolina,37197,162,2 +2020-05-30,Yadkin,North Carolina,37197,166,2 +2020-05-31,Yadkin,North Carolina,37197,171,2 +2020-06-01,Yadkin,North Carolina,37197,177,2 +2020-06-02,Yadkin,North Carolina,37197,181,3 +2020-06-03,Yadkin,North Carolina,37197,196,3 +2020-06-04,Yadkin,North Carolina,37197,203,3 +2020-06-05,Yadkin,North Carolina,37197,208,3 +2020-06-06,Yadkin,North Carolina,37197,215,3 +2020-06-07,Yadkin,North Carolina,37197,216,3 +2020-06-08,Yadkin,North Carolina,37197,217,3 +2020-06-09,Yadkin,North Carolina,37197,221,3 +2020-06-10,Yadkin,North Carolina,37197,225,4 +2020-06-11,Yadkin,North Carolina,37197,225,4 +2020-06-12,Yadkin,North Carolina,37197,228,4 +2020-06-13,Yadkin,North Carolina,37197,233,4 +2020-06-14,Yadkin,North Carolina,37197,239,4 +2020-06-15,Yadkin,North Carolina,37197,248,4 +2020-06-16,Yadkin,North Carolina,37197,251,4 +2020-06-17,Yadkin,North Carolina,37197,255,4 +2020-06-18,Yadkin,North Carolina,37197,259,4 +2020-06-19,Yadkin,North Carolina,37197,269,4 +2020-06-20,Yadkin,North Carolina,37197,272,4 +2020-06-21,Yadkin,North Carolina,37197,280,4 +2020-06-22,Yadkin,North Carolina,37197,281,4 +2020-06-23,Yadkin,North Carolina,37197,282,4 +2020-06-24,Yadkin,North Carolina,37197,286,4 +2020-06-25,Yadkin,North Carolina,37197,293,4 +2020-06-26,Yadkin,North Carolina,37197,299,4 +2020-06-27,Yadkin,North Carolina,37197,306,4 +2020-06-28,Yadkin,North Carolina,37197,322,4 +2020-06-29,Yadkin,North Carolina,37197,330,4 +2020-06-30,Yadkin,North Carolina,37197,332,4 +2020-07-01,Yadkin,North Carolina,37197,334,4 +2020-07-02,Yadkin,North Carolina,37197,334,4 +2020-07-03,Yadkin,North Carolina,37197,338,4 +2020-07-04,Yadkin,North Carolina,37197,340,5 +2020-07-05,Yadkin,North Carolina,37197,341,5 +2020-07-06,Yadkin,North Carolina,37197,351,5 +2020-07-07,Yadkin,North Carolina,37197,357,5 +2020-07-08,Yadkin,North Carolina,37197,358,5 +2020-07-09,Yadkin,North Carolina,37197,364,5 +2020-05-03,Yancey,North Carolina,37199,1,0 +2020-05-04,Yancey,North Carolina,37199,1,0 +2020-05-05,Yancey,North Carolina,37199,1,0 +2020-05-06,Yancey,North Carolina,37199,1,0 +2020-05-07,Yancey,North Carolina,37199,7,0 +2020-05-08,Yancey,North Carolina,37199,7,0 +2020-05-09,Yancey,North Carolina,37199,7,0 +2020-05-10,Yancey,North Carolina,37199,9,0 +2020-05-11,Yancey,North Carolina,37199,9,0 +2020-05-12,Yancey,North Carolina,37199,8,0 +2020-05-13,Yancey,North Carolina,37199,8,0 +2020-05-14,Yancey,North Carolina,37199,8,0 +2020-05-15,Yancey,North Carolina,37199,8,0 +2020-05-16,Yancey,North Carolina,37199,8,0 +2020-05-17,Yancey,North Carolina,37199,8,0 +2020-05-18,Yancey,North Carolina,37199,10,0 +2020-05-19,Yancey,North Carolina,37199,10,0 +2020-05-20,Yancey,North Carolina,37199,10,0 +2020-05-21,Yancey,North Carolina,37199,10,0 +2020-05-22,Yancey,North Carolina,37199,10,0 +2020-05-23,Yancey,North Carolina,37199,10,0 +2020-05-24,Yancey,North Carolina,37199,10,0 +2020-05-25,Yancey,North Carolina,37199,10,0 +2020-05-26,Yancey,North Carolina,37199,10,0 +2020-05-27,Yancey,North Carolina,37199,10,0 +2020-05-28,Yancey,North Carolina,37199,12,0 +2020-05-29,Yancey,North Carolina,37199,14,0 +2020-05-30,Yancey,North Carolina,37199,14,0 +2020-05-31,Yancey,North Carolina,37199,14,0 +2020-06-01,Yancey,North Carolina,37199,15,0 +2020-06-02,Yancey,North Carolina,37199,15,0 +2020-06-03,Yancey,North Carolina,37199,15,0 +2020-06-04,Yancey,North Carolina,37199,15,0 +2020-06-05,Yancey,North Carolina,37199,16,0 +2020-06-06,Yancey,North Carolina,37199,21,0 +2020-06-07,Yancey,North Carolina,37199,21,0 +2020-06-08,Yancey,North Carolina,37199,21,0 +2020-06-09,Yancey,North Carolina,37199,21,0 +2020-06-10,Yancey,North Carolina,37199,23,0 +2020-06-11,Yancey,North Carolina,37199,23,0 +2020-06-12,Yancey,North Carolina,37199,23,0 +2020-06-13,Yancey,North Carolina,37199,24,0 +2020-06-14,Yancey,North Carolina,37199,26,0 +2020-06-15,Yancey,North Carolina,37199,27,0 +2020-06-16,Yancey,North Carolina,37199,29,0 +2020-06-17,Yancey,North Carolina,37199,31,0 +2020-06-18,Yancey,North Carolina,37199,33,0 +2020-06-19,Yancey,North Carolina,37199,35,0 +2020-06-20,Yancey,North Carolina,37199,35,0 +2020-06-21,Yancey,North Carolina,37199,35,0 +2020-06-22,Yancey,North Carolina,37199,35,0 +2020-06-23,Yancey,North Carolina,37199,35,0 +2020-06-24,Yancey,North Carolina,37199,37,0 +2020-06-25,Yancey,North Carolina,37199,43,0 +2020-06-26,Yancey,North Carolina,37199,44,0 +2020-06-27,Yancey,North Carolina,37199,43,0 +2020-06-28,Yancey,North Carolina,37199,43,0 +2020-06-29,Yancey,North Carolina,37199,43,0 +2020-06-30,Yancey,North Carolina,37199,43,0 +2020-07-01,Yancey,North Carolina,37199,43,0 +2020-07-02,Yancey,North Carolina,37199,43,0 +2020-07-03,Yancey,North Carolina,37199,44,0 +2020-07-04,Yancey,North Carolina,37199,44,0 +2020-07-05,Yancey,North Carolina,37199,49,0 +2020-07-06,Yancey,North Carolina,37199,51,0 +2020-07-07,Yancey,North Carolina,37199,51,0 +2020-07-08,Yancey,North Carolina,37199,50,0 +2020-07-09,Yancey,North Carolina,37199,52,0 +2020-03-28,Barnes,North Dakota,38003,2,0 +2020-03-29,Barnes,North Dakota,38003,2,0 +2020-03-30,Barnes,North Dakota,38003,2,0 +2020-03-31,Barnes,North Dakota,38003,2,0 +2020-04-01,Barnes,North Dakota,38003,2,0 +2020-04-02,Barnes,North Dakota,38003,2,0 +2020-04-03,Barnes,North Dakota,38003,2,0 +2020-04-04,Barnes,North Dakota,38003,2,0 +2020-04-05,Barnes,North Dakota,38003,2,0 +2020-04-06,Barnes,North Dakota,38003,2,0 +2020-04-07,Barnes,North Dakota,38003,2,0 +2020-04-08,Barnes,North Dakota,38003,2,0 +2020-04-09,Barnes,North Dakota,38003,2,0 +2020-04-10,Barnes,North Dakota,38003,2,0 +2020-04-11,Barnes,North Dakota,38003,2,0 +2020-04-12,Barnes,North Dakota,38003,2,0 +2020-04-13,Barnes,North Dakota,38003,2,0 +2020-04-14,Barnes,North Dakota,38003,2,0 +2020-04-15,Barnes,North Dakota,38003,2,0 +2020-04-16,Barnes,North Dakota,38003,2,0 +2020-04-17,Barnes,North Dakota,38003,2,0 +2020-04-18,Barnes,North Dakota,38003,3,0 +2020-04-19,Barnes,North Dakota,38003,3,0 +2020-04-20,Barnes,North Dakota,38003,3,0 +2020-04-21,Barnes,North Dakota,38003,3,0 +2020-04-22,Barnes,North Dakota,38003,3,0 +2020-04-23,Barnes,North Dakota,38003,3,0 +2020-04-24,Barnes,North Dakota,38003,3,0 +2020-04-25,Barnes,North Dakota,38003,4,0 +2020-04-26,Barnes,North Dakota,38003,4,0 +2020-04-27,Barnes,North Dakota,38003,4,0 +2020-04-28,Barnes,North Dakota,38003,4,0 +2020-04-29,Barnes,North Dakota,38003,4,0 +2020-04-30,Barnes,North Dakota,38003,4,0 +2020-05-01,Barnes,North Dakota,38003,4,0 +2020-05-02,Barnes,North Dakota,38003,4,0 +2020-05-03,Barnes,North Dakota,38003,4,0 +2020-05-04,Barnes,North Dakota,38003,4,0 +2020-05-05,Barnes,North Dakota,38003,4,0 +2020-05-06,Barnes,North Dakota,38003,4,0 +2020-05-07,Barnes,North Dakota,38003,4,0 +2020-05-08,Barnes,North Dakota,38003,4,0 +2020-05-09,Barnes,North Dakota,38003,4,0 +2020-05-10,Barnes,North Dakota,38003,4,0 +2020-05-11,Barnes,North Dakota,38003,4,0 +2020-05-12,Barnes,North Dakota,38003,4,0 +2020-05-13,Barnes,North Dakota,38003,4,0 +2020-05-14,Barnes,North Dakota,38003,4,0 +2020-05-15,Barnes,North Dakota,38003,4,0 +2020-05-16,Barnes,North Dakota,38003,4,0 +2020-05-17,Barnes,North Dakota,38003,4,0 +2020-05-18,Barnes,North Dakota,38003,4,0 +2020-05-19,Barnes,North Dakota,38003,4,0 +2020-05-20,Barnes,North Dakota,38003,4,0 +2020-05-21,Barnes,North Dakota,38003,4,0 +2020-05-22,Barnes,North Dakota,38003,4,0 +2020-05-23,Barnes,North Dakota,38003,4,0 +2020-05-24,Barnes,North Dakota,38003,4,0 +2020-05-25,Barnes,North Dakota,38003,4,0 +2020-05-26,Barnes,North Dakota,38003,4,0 +2020-05-27,Barnes,North Dakota,38003,4,0 +2020-05-28,Barnes,North Dakota,38003,4,0 +2020-05-29,Barnes,North Dakota,38003,4,0 +2020-05-30,Barnes,North Dakota,38003,4,0 +2020-05-31,Barnes,North Dakota,38003,4,0 +2020-06-01,Barnes,North Dakota,38003,5,0 +2020-06-02,Barnes,North Dakota,38003,5,0 +2020-06-03,Barnes,North Dakota,38003,5,0 +2020-06-04,Barnes,North Dakota,38003,6,0 +2020-06-05,Barnes,North Dakota,38003,6,0 +2020-06-06,Barnes,North Dakota,38003,9,0 +2020-06-07,Barnes,North Dakota,38003,9,0 +2020-06-08,Barnes,North Dakota,38003,9,0 +2020-06-09,Barnes,North Dakota,38003,9,0 +2020-06-10,Barnes,North Dakota,38003,9,0 +2020-06-11,Barnes,North Dakota,38003,9,0 +2020-06-12,Barnes,North Dakota,38003,9,0 +2020-06-13,Barnes,North Dakota,38003,9,0 +2020-06-14,Barnes,North Dakota,38003,9,0 +2020-06-15,Barnes,North Dakota,38003,9,0 +2020-06-16,Barnes,North Dakota,38003,9,0 +2020-06-17,Barnes,North Dakota,38003,11,0 +2020-06-18,Barnes,North Dakota,38003,16,0 +2020-06-19,Barnes,North Dakota,38003,16,0 +2020-06-20,Barnes,North Dakota,38003,16,0 +2020-06-21,Barnes,North Dakota,38003,18,0 +2020-06-22,Barnes,North Dakota,38003,18,0 +2020-06-23,Barnes,North Dakota,38003,18,0 +2020-06-24,Barnes,North Dakota,38003,18,0 +2020-06-25,Barnes,North Dakota,38003,18,0 +2020-06-26,Barnes,North Dakota,38003,18,0 +2020-06-27,Barnes,North Dakota,38003,19,0 +2020-06-28,Barnes,North Dakota,38003,19,0 +2020-06-29,Barnes,North Dakota,38003,19,0 +2020-06-30,Barnes,North Dakota,38003,19,0 +2020-07-01,Barnes,North Dakota,38003,19,0 +2020-07-02,Barnes,North Dakota,38003,19,0 +2020-07-03,Barnes,North Dakota,38003,20,0 +2020-07-04,Barnes,North Dakota,38003,20,0 +2020-07-05,Barnes,North Dakota,38003,21,0 +2020-07-06,Barnes,North Dakota,38003,22,0 +2020-07-07,Barnes,North Dakota,38003,23,0 +2020-07-08,Barnes,North Dakota,38003,23,0 +2020-07-09,Barnes,North Dakota,38003,23,0 +2020-05-07,Benson,North Dakota,38005,2,0 +2020-05-08,Benson,North Dakota,38005,2,0 +2020-05-09,Benson,North Dakota,38005,2,0 +2020-05-10,Benson,North Dakota,38005,2,0 +2020-05-11,Benson,North Dakota,38005,2,0 +2020-05-12,Benson,North Dakota,38005,2,0 +2020-05-13,Benson,North Dakota,38005,2,0 +2020-05-14,Benson,North Dakota,38005,1,0 +2020-05-15,Benson,North Dakota,38005,1,0 +2020-05-16,Benson,North Dakota,38005,1,0 +2020-05-17,Benson,North Dakota,38005,1,0 +2020-05-18,Benson,North Dakota,38005,1,0 +2020-05-19,Benson,North Dakota,38005,1,0 +2020-05-20,Benson,North Dakota,38005,1,0 +2020-05-21,Benson,North Dakota,38005,1,0 +2020-05-22,Benson,North Dakota,38005,1,0 +2020-05-23,Benson,North Dakota,38005,1,0 +2020-05-24,Benson,North Dakota,38005,1,0 +2020-05-25,Benson,North Dakota,38005,1,0 +2020-05-26,Benson,North Dakota,38005,1,0 +2020-05-27,Benson,North Dakota,38005,1,0 +2020-05-28,Benson,North Dakota,38005,1,0 +2020-05-29,Benson,North Dakota,38005,1,0 +2020-05-30,Benson,North Dakota,38005,1,0 +2020-05-31,Benson,North Dakota,38005,1,0 +2020-06-01,Benson,North Dakota,38005,1,0 +2020-06-02,Benson,North Dakota,38005,1,0 +2020-06-03,Benson,North Dakota,38005,1,0 +2020-06-04,Benson,North Dakota,38005,1,0 +2020-06-05,Benson,North Dakota,38005,1,0 +2020-06-06,Benson,North Dakota,38005,2,0 +2020-06-07,Benson,North Dakota,38005,2,0 +2020-06-08,Benson,North Dakota,38005,2,0 +2020-06-09,Benson,North Dakota,38005,3,0 +2020-06-10,Benson,North Dakota,38005,3,0 +2020-06-11,Benson,North Dakota,38005,3,0 +2020-06-12,Benson,North Dakota,38005,3,0 +2020-06-13,Benson,North Dakota,38005,3,0 +2020-06-14,Benson,North Dakota,38005,3,0 +2020-06-15,Benson,North Dakota,38005,3,0 +2020-06-16,Benson,North Dakota,38005,3,0 +2020-06-17,Benson,North Dakota,38005,3,0 +2020-06-18,Benson,North Dakota,38005,3,0 +2020-06-19,Benson,North Dakota,38005,3,0 +2020-06-20,Benson,North Dakota,38005,3,0 +2020-06-21,Benson,North Dakota,38005,3,0 +2020-06-22,Benson,North Dakota,38005,3,0 +2020-06-23,Benson,North Dakota,38005,3,0 +2020-06-24,Benson,North Dakota,38005,3,0 +2020-06-25,Benson,North Dakota,38005,3,0 +2020-06-26,Benson,North Dakota,38005,3,0 +2020-06-27,Benson,North Dakota,38005,3,0 +2020-06-28,Benson,North Dakota,38005,3,0 +2020-06-29,Benson,North Dakota,38005,3,0 +2020-06-30,Benson,North Dakota,38005,4,0 +2020-07-01,Benson,North Dakota,38005,4,0 +2020-07-02,Benson,North Dakota,38005,4,0 +2020-07-03,Benson,North Dakota,38005,4,0 +2020-07-04,Benson,North Dakota,38005,4,0 +2020-07-05,Benson,North Dakota,38005,4,0 +2020-07-06,Benson,North Dakota,38005,4,0 +2020-07-07,Benson,North Dakota,38005,5,0 +2020-07-08,Benson,North Dakota,38005,9,0 +2020-07-09,Benson,North Dakota,38005,11,0 +2020-06-20,Billings,North Dakota,38007,1,0 +2020-06-21,Billings,North Dakota,38007,1,0 +2020-06-22,Billings,North Dakota,38007,1,0 +2020-06-23,Billings,North Dakota,38007,1,0 +2020-06-24,Billings,North Dakota,38007,1,0 +2020-06-25,Billings,North Dakota,38007,1,0 +2020-06-26,Billings,North Dakota,38007,1,0 +2020-06-27,Billings,North Dakota,38007,1,0 +2020-06-28,Billings,North Dakota,38007,1,0 +2020-06-29,Billings,North Dakota,38007,1,0 +2020-06-30,Billings,North Dakota,38007,1,0 +2020-07-01,Billings,North Dakota,38007,1,0 +2020-07-02,Billings,North Dakota,38007,1,0 +2020-07-03,Billings,North Dakota,38007,1,0 +2020-07-04,Billings,North Dakota,38007,1,0 +2020-07-05,Billings,North Dakota,38007,1,0 +2020-07-06,Billings,North Dakota,38007,1,0 +2020-07-07,Billings,North Dakota,38007,1,0 +2020-07-08,Billings,North Dakota,38007,1,0 +2020-07-09,Billings,North Dakota,38007,1,0 +2020-05-19,Bottineau,North Dakota,38009,1,0 +2020-05-20,Bottineau,North Dakota,38009,1,0 +2020-05-21,Bottineau,North Dakota,38009,2,0 +2020-05-22,Bottineau,North Dakota,38009,2,0 +2020-05-23,Bottineau,North Dakota,38009,2,0 +2020-05-24,Bottineau,North Dakota,38009,2,0 +2020-05-25,Bottineau,North Dakota,38009,2,0 +2020-05-26,Bottineau,North Dakota,38009,2,0 +2020-05-27,Bottineau,North Dakota,38009,2,0 +2020-05-28,Bottineau,North Dakota,38009,2,0 +2020-05-29,Bottineau,North Dakota,38009,2,0 +2020-05-30,Bottineau,North Dakota,38009,2,0 +2020-05-31,Bottineau,North Dakota,38009,2,0 +2020-06-01,Bottineau,North Dakota,38009,2,0 +2020-06-02,Bottineau,North Dakota,38009,2,0 +2020-06-03,Bottineau,North Dakota,38009,2,0 +2020-06-04,Bottineau,North Dakota,38009,3,0 +2020-06-05,Bottineau,North Dakota,38009,3,0 +2020-06-06,Bottineau,North Dakota,38009,3,0 +2020-06-07,Bottineau,North Dakota,38009,3,0 +2020-06-08,Bottineau,North Dakota,38009,3,0 +2020-06-09,Bottineau,North Dakota,38009,4,0 +2020-06-10,Bottineau,North Dakota,38009,4,0 +2020-06-11,Bottineau,North Dakota,38009,4,0 +2020-06-12,Bottineau,North Dakota,38009,4,0 +2020-06-13,Bottineau,North Dakota,38009,4,0 +2020-06-14,Bottineau,North Dakota,38009,4,0 +2020-06-15,Bottineau,North Dakota,38009,4,0 +2020-06-16,Bottineau,North Dakota,38009,4,0 +2020-06-17,Bottineau,North Dakota,38009,4,0 +2020-06-18,Bottineau,North Dakota,38009,4,0 +2020-06-19,Bottineau,North Dakota,38009,4,0 +2020-06-20,Bottineau,North Dakota,38009,5,0 +2020-06-21,Bottineau,North Dakota,38009,5,0 +2020-06-22,Bottineau,North Dakota,38009,5,0 +2020-06-23,Bottineau,North Dakota,38009,5,0 +2020-06-24,Bottineau,North Dakota,38009,5,0 +2020-06-25,Bottineau,North Dakota,38009,5,0 +2020-06-26,Bottineau,North Dakota,38009,5,0 +2020-06-27,Bottineau,North Dakota,38009,5,0 +2020-06-28,Bottineau,North Dakota,38009,5,0 +2020-06-29,Bottineau,North Dakota,38009,5,0 +2020-06-30,Bottineau,North Dakota,38009,5,0 +2020-07-01,Bottineau,North Dakota,38009,5,0 +2020-07-02,Bottineau,North Dakota,38009,5,0 +2020-07-03,Bottineau,North Dakota,38009,5,0 +2020-07-04,Bottineau,North Dakota,38009,5,0 +2020-07-05,Bottineau,North Dakota,38009,5,0 +2020-07-06,Bottineau,North Dakota,38009,5,0 +2020-07-07,Bottineau,North Dakota,38009,5,0 +2020-07-08,Bottineau,North Dakota,38009,5,0 +2020-07-09,Bottineau,North Dakota,38009,5,0 +2020-04-07,Bowman,North Dakota,38011,1,0 +2020-04-08,Bowman,North Dakota,38011,1,0 +2020-04-09,Bowman,North Dakota,38011,1,0 +2020-04-10,Bowman,North Dakota,38011,1,0 +2020-04-11,Bowman,North Dakota,38011,1,0 +2020-04-12,Bowman,North Dakota,38011,1,0 +2020-04-13,Bowman,North Dakota,38011,1,0 +2020-04-14,Bowman,North Dakota,38011,1,0 +2020-04-15,Bowman,North Dakota,38011,1,0 +2020-04-16,Bowman,North Dakota,38011,1,0 +2020-04-17,Bowman,North Dakota,38011,1,0 +2020-04-18,Bowman,North Dakota,38011,1,0 +2020-04-19,Bowman,North Dakota,38011,1,0 +2020-04-20,Bowman,North Dakota,38011,1,0 +2020-04-21,Bowman,North Dakota,38011,1,0 +2020-04-22,Bowman,North Dakota,38011,1,0 +2020-04-23,Bowman,North Dakota,38011,1,0 +2020-04-24,Bowman,North Dakota,38011,1,0 +2020-04-25,Bowman,North Dakota,38011,1,0 +2020-04-26,Bowman,North Dakota,38011,1,0 +2020-04-27,Bowman,North Dakota,38011,1,0 +2020-04-28,Bowman,North Dakota,38011,1,0 +2020-04-29,Bowman,North Dakota,38011,1,0 +2020-04-30,Bowman,North Dakota,38011,1,0 +2020-05-01,Bowman,North Dakota,38011,1,0 +2020-05-02,Bowman,North Dakota,38011,1,0 +2020-05-03,Bowman,North Dakota,38011,1,0 +2020-05-04,Bowman,North Dakota,38011,1,0 +2020-05-05,Bowman,North Dakota,38011,1,0 +2020-05-06,Bowman,North Dakota,38011,1,0 +2020-05-07,Bowman,North Dakota,38011,1,0 +2020-05-08,Bowman,North Dakota,38011,1,0 +2020-05-09,Bowman,North Dakota,38011,1,0 +2020-05-10,Bowman,North Dakota,38011,1,0 +2020-05-11,Bowman,North Dakota,38011,1,0 +2020-05-12,Bowman,North Dakota,38011,1,0 +2020-05-13,Bowman,North Dakota,38011,1,0 +2020-05-14,Bowman,North Dakota,38011,1,0 +2020-05-15,Bowman,North Dakota,38011,1,0 +2020-05-16,Bowman,North Dakota,38011,1,0 +2020-05-17,Bowman,North Dakota,38011,1,0 +2020-05-18,Bowman,North Dakota,38011,1,0 +2020-05-19,Bowman,North Dakota,38011,1,0 +2020-05-20,Bowman,North Dakota,38011,1,0 +2020-05-21,Bowman,North Dakota,38011,1,0 +2020-05-22,Bowman,North Dakota,38011,1,0 +2020-05-23,Bowman,North Dakota,38011,1,0 +2020-05-24,Bowman,North Dakota,38011,1,0 +2020-05-25,Bowman,North Dakota,38011,1,0 +2020-05-26,Bowman,North Dakota,38011,1,0 +2020-05-27,Bowman,North Dakota,38011,1,0 +2020-05-28,Bowman,North Dakota,38011,1,0 +2020-05-29,Bowman,North Dakota,38011,1,0 +2020-05-30,Bowman,North Dakota,38011,1,0 +2020-05-31,Bowman,North Dakota,38011,1,0 +2020-06-01,Bowman,North Dakota,38011,1,0 +2020-06-02,Bowman,North Dakota,38011,1,0 +2020-06-03,Bowman,North Dakota,38011,1,0 +2020-06-04,Bowman,North Dakota,38011,1,0 +2020-06-05,Bowman,North Dakota,38011,1,0 +2020-06-06,Bowman,North Dakota,38011,1,0 +2020-06-07,Bowman,North Dakota,38011,1,0 +2020-06-08,Bowman,North Dakota,38011,1,0 +2020-06-09,Bowman,North Dakota,38011,1,0 +2020-06-10,Bowman,North Dakota,38011,1,0 +2020-06-11,Bowman,North Dakota,38011,1,0 +2020-06-12,Bowman,North Dakota,38011,1,0 +2020-06-13,Bowman,North Dakota,38011,1,0 +2020-06-14,Bowman,North Dakota,38011,1,0 +2020-06-15,Bowman,North Dakota,38011,1,0 +2020-06-16,Bowman,North Dakota,38011,1,0 +2020-06-17,Bowman,North Dakota,38011,1,0 +2020-06-18,Bowman,North Dakota,38011,1,0 +2020-06-19,Bowman,North Dakota,38011,1,0 +2020-06-20,Bowman,North Dakota,38011,1,0 +2020-06-21,Bowman,North Dakota,38011,1,0 +2020-06-22,Bowman,North Dakota,38011,1,0 +2020-06-23,Bowman,North Dakota,38011,1,0 +2020-06-24,Bowman,North Dakota,38011,1,0 +2020-06-25,Bowman,North Dakota,38011,1,0 +2020-06-26,Bowman,North Dakota,38011,1,0 +2020-06-27,Bowman,North Dakota,38011,1,0 +2020-06-28,Bowman,North Dakota,38011,1,0 +2020-06-29,Bowman,North Dakota,38011,1,0 +2020-06-30,Bowman,North Dakota,38011,1,0 +2020-07-01,Bowman,North Dakota,38011,1,0 +2020-07-02,Bowman,North Dakota,38011,1,0 +2020-07-03,Bowman,North Dakota,38011,1,0 +2020-07-04,Bowman,North Dakota,38011,1,0 +2020-07-05,Bowman,North Dakota,38011,1,0 +2020-07-06,Bowman,North Dakota,38011,1,0 +2020-07-07,Bowman,North Dakota,38011,1,0 +2020-07-08,Bowman,North Dakota,38011,1,0 +2020-07-09,Bowman,North Dakota,38011,1,0 +2020-04-01,Burke,North Dakota,38013,2,0 +2020-04-02,Burke,North Dakota,38013,2,0 +2020-04-03,Burke,North Dakota,38013,2,0 +2020-04-04,Burke,North Dakota,38013,2,0 +2020-04-05,Burke,North Dakota,38013,2,0 +2020-04-06,Burke,North Dakota,38013,2,0 +2020-04-07,Burke,North Dakota,38013,2,0 +2020-04-08,Burke,North Dakota,38013,2,0 +2020-04-09,Burke,North Dakota,38013,2,0 +2020-04-10,Burke,North Dakota,38013,2,0 +2020-04-11,Burke,North Dakota,38013,2,0 +2020-04-12,Burke,North Dakota,38013,2,0 +2020-04-13,Burke,North Dakota,38013,2,0 +2020-04-14,Burke,North Dakota,38013,2,0 +2020-04-15,Burke,North Dakota,38013,2,0 +2020-04-16,Burke,North Dakota,38013,2,0 +2020-04-17,Burke,North Dakota,38013,2,0 +2020-04-18,Burke,North Dakota,38013,2,0 +2020-04-19,Burke,North Dakota,38013,2,0 +2020-04-20,Burke,North Dakota,38013,2,0 +2020-04-21,Burke,North Dakota,38013,2,0 +2020-04-22,Burke,North Dakota,38013,2,0 +2020-04-23,Burke,North Dakota,38013,3,0 +2020-04-24,Burke,North Dakota,38013,3,0 +2020-04-25,Burke,North Dakota,38013,3,0 +2020-04-26,Burke,North Dakota,38013,3,0 +2020-04-27,Burke,North Dakota,38013,3,0 +2020-04-28,Burke,North Dakota,38013,3,0 +2020-04-29,Burke,North Dakota,38013,3,0 +2020-04-30,Burke,North Dakota,38013,3,0 +2020-05-01,Burke,North Dakota,38013,3,0 +2020-05-02,Burke,North Dakota,38013,3,0 +2020-05-03,Burke,North Dakota,38013,3,0 +2020-05-04,Burke,North Dakota,38013,3,0 +2020-05-05,Burke,North Dakota,38013,5,0 +2020-05-06,Burke,North Dakota,38013,5,0 +2020-05-07,Burke,North Dakota,38013,5,0 +2020-05-08,Burke,North Dakota,38013,5,0 +2020-05-09,Burke,North Dakota,38013,5,0 +2020-05-10,Burke,North Dakota,38013,5,0 +2020-05-11,Burke,North Dakota,38013,5,0 +2020-05-12,Burke,North Dakota,38013,5,0 +2020-05-13,Burke,North Dakota,38013,5,0 +2020-05-14,Burke,North Dakota,38013,5,0 +2020-05-15,Burke,North Dakota,38013,5,0 +2020-05-16,Burke,North Dakota,38013,5,0 +2020-05-17,Burke,North Dakota,38013,5,0 +2020-05-18,Burke,North Dakota,38013,5,0 +2020-05-19,Burke,North Dakota,38013,5,0 +2020-05-20,Burke,North Dakota,38013,5,0 +2020-05-21,Burke,North Dakota,38013,5,0 +2020-05-22,Burke,North Dakota,38013,5,0 +2020-05-23,Burke,North Dakota,38013,5,0 +2020-05-24,Burke,North Dakota,38013,5,0 +2020-05-25,Burke,North Dakota,38013,5,0 +2020-05-26,Burke,North Dakota,38013,5,0 +2020-05-27,Burke,North Dakota,38013,5,0 +2020-05-28,Burke,North Dakota,38013,5,0 +2020-05-29,Burke,North Dakota,38013,5,0 +2020-05-30,Burke,North Dakota,38013,5,0 +2020-05-31,Burke,North Dakota,38013,5,0 +2020-06-01,Burke,North Dakota,38013,5,0 +2020-06-02,Burke,North Dakota,38013,5,0 +2020-06-03,Burke,North Dakota,38013,5,0 +2020-06-04,Burke,North Dakota,38013,5,0 +2020-06-05,Burke,North Dakota,38013,5,0 +2020-06-06,Burke,North Dakota,38013,5,0 +2020-06-07,Burke,North Dakota,38013,5,0 +2020-06-08,Burke,North Dakota,38013,5,0 +2020-06-09,Burke,North Dakota,38013,5,0 +2020-06-10,Burke,North Dakota,38013,5,0 +2020-06-11,Burke,North Dakota,38013,5,0 +2020-06-12,Burke,North Dakota,38013,5,0 +2020-06-13,Burke,North Dakota,38013,5,0 +2020-06-14,Burke,North Dakota,38013,5,0 +2020-06-15,Burke,North Dakota,38013,5,0 +2020-06-16,Burke,North Dakota,38013,5,0 +2020-06-17,Burke,North Dakota,38013,5,0 +2020-06-18,Burke,North Dakota,38013,5,0 +2020-06-19,Burke,North Dakota,38013,5,0 +2020-06-20,Burke,North Dakota,38013,5,0 +2020-06-21,Burke,North Dakota,38013,5,0 +2020-06-22,Burke,North Dakota,38013,5,0 +2020-06-23,Burke,North Dakota,38013,5,0 +2020-06-24,Burke,North Dakota,38013,5,0 +2020-06-25,Burke,North Dakota,38013,5,0 +2020-06-26,Burke,North Dakota,38013,5,0 +2020-06-27,Burke,North Dakota,38013,5,0 +2020-06-28,Burke,North Dakota,38013,5,0 +2020-06-29,Burke,North Dakota,38013,5,0 +2020-06-30,Burke,North Dakota,38013,5,0 +2020-07-01,Burke,North Dakota,38013,5,0 +2020-07-02,Burke,North Dakota,38013,5,0 +2020-07-03,Burke,North Dakota,38013,6,0 +2020-07-04,Burke,North Dakota,38013,6,0 +2020-07-05,Burke,North Dakota,38013,6,0 +2020-07-06,Burke,North Dakota,38013,6,0 +2020-07-07,Burke,North Dakota,38013,6,0 +2020-07-08,Burke,North Dakota,38013,6,0 +2020-07-09,Burke,North Dakota,38013,6,0 +2020-03-17,Burleigh,North Dakota,38015,2,0 +2020-03-18,Burleigh,North Dakota,38015,2,0 +2020-03-19,Burleigh,North Dakota,38015,11,0 +2020-03-20,Burleigh,North Dakota,38015,13,0 +2020-03-21,Burleigh,North Dakota,38015,14,0 +2020-03-22,Burleigh,North Dakota,38015,15,0 +2020-03-23,Burleigh,North Dakota,38015,16,0 +2020-03-24,Burleigh,North Dakota,38015,18,0 +2020-03-25,Burleigh,North Dakota,38015,18,0 +2020-03-26,Burleigh,North Dakota,38015,23,0 +2020-03-27,Burleigh,North Dakota,38015,25,0 +2020-03-28,Burleigh,North Dakota,38015,28,0 +2020-03-29,Burleigh,North Dakota,38015,28,0 +2020-03-30,Burleigh,North Dakota,38015,29,0 +2020-03-31,Burleigh,North Dakota,38015,30,0 +2020-04-01,Burleigh,North Dakota,38015,32,0 +2020-04-02,Burleigh,North Dakota,38015,32,0 +2020-04-03,Burleigh,North Dakota,38015,32,0 +2020-04-04,Burleigh,North Dakota,38015,34,0 +2020-04-05,Burleigh,North Dakota,38015,37,0 +2020-04-06,Burleigh,North Dakota,38015,38,0 +2020-04-07,Burleigh,North Dakota,38015,39,0 +2020-04-08,Burleigh,North Dakota,38015,42,0 +2020-04-09,Burleigh,North Dakota,38015,46,0 +2020-04-10,Burleigh,North Dakota,38015,48,0 +2020-04-11,Burleigh,North Dakota,38015,49,0 +2020-04-12,Burleigh,North Dakota,38015,50,0 +2020-04-13,Burleigh,North Dakota,38015,51,0 +2020-04-14,Burleigh,North Dakota,38015,52,0 +2020-04-15,Burleigh,North Dakota,38015,52,0 +2020-04-16,Burleigh,North Dakota,38015,54,0 +2020-04-17,Burleigh,North Dakota,38015,57,0 +2020-04-18,Burleigh,North Dakota,38015,61,0 +2020-04-19,Burleigh,North Dakota,38015,63,0 +2020-04-20,Burleigh,North Dakota,38015,63,0 +2020-04-21,Burleigh,North Dakota,38015,63,0 +2020-04-22,Burleigh,North Dakota,38015,65,0 +2020-04-23,Burleigh,North Dakota,38015,67,0 +2020-04-24,Burleigh,North Dakota,38015,68,0 +2020-04-25,Burleigh,North Dakota,38015,74,0 +2020-04-26,Burleigh,North Dakota,38015,74,0 +2020-04-27,Burleigh,North Dakota,38015,74,0 +2020-04-28,Burleigh,North Dakota,38015,74,0 +2020-04-29,Burleigh,North Dakota,38015,76,0 +2020-04-30,Burleigh,North Dakota,38015,77,0 +2020-05-01,Burleigh,North Dakota,38015,79,0 +2020-05-02,Burleigh,North Dakota,38015,80,0 +2020-05-03,Burleigh,North Dakota,38015,80,0 +2020-05-04,Burleigh,North Dakota,38015,83,0 +2020-05-05,Burleigh,North Dakota,38015,92,0 +2020-05-06,Burleigh,North Dakota,38015,102,0 +2020-05-07,Burleigh,North Dakota,38015,102,0 +2020-05-08,Burleigh,North Dakota,38015,103,0 +2020-05-09,Burleigh,North Dakota,38015,103,0 +2020-05-10,Burleigh,North Dakota,38015,103,0 +2020-05-11,Burleigh,North Dakota,38015,104,0 +2020-05-12,Burleigh,North Dakota,38015,105,0 +2020-05-13,Burleigh,North Dakota,38015,106,0 +2020-05-14,Burleigh,North Dakota,38015,107,0 +2020-05-15,Burleigh,North Dakota,38015,109,0 +2020-05-16,Burleigh,North Dakota,38015,112,0 +2020-05-17,Burleigh,North Dakota,38015,113,0 +2020-05-18,Burleigh,North Dakota,38015,116,0 +2020-05-19,Burleigh,North Dakota,38015,117,0 +2020-05-20,Burleigh,North Dakota,38015,120,0 +2020-05-21,Burleigh,North Dakota,38015,126,0 +2020-05-22,Burleigh,North Dakota,38015,128,0 +2020-05-23,Burleigh,North Dakota,38015,129,0 +2020-05-24,Burleigh,North Dakota,38015,131,0 +2020-05-25,Burleigh,North Dakota,38015,131,0 +2020-05-26,Burleigh,North Dakota,38015,123,0 +2020-05-27,Burleigh,North Dakota,38015,123,0 +2020-05-28,Burleigh,North Dakota,38015,125,0 +2020-05-29,Burleigh,North Dakota,38015,126,0 +2020-05-30,Burleigh,North Dakota,38015,127,0 +2020-05-31,Burleigh,North Dakota,38015,128,0 +2020-06-01,Burleigh,North Dakota,38015,129,0 +2020-06-02,Burleigh,North Dakota,38015,130,0 +2020-06-03,Burleigh,North Dakota,38015,132,0 +2020-06-04,Burleigh,North Dakota,38015,134,0 +2020-06-05,Burleigh,North Dakota,38015,135,0 +2020-06-06,Burleigh,North Dakota,38015,141,0 +2020-06-07,Burleigh,North Dakota,38015,142,0 +2020-06-08,Burleigh,North Dakota,38015,143,0 +2020-06-09,Burleigh,North Dakota,38015,144,0 +2020-06-10,Burleigh,North Dakota,38015,147,0 +2020-06-11,Burleigh,North Dakota,38015,150,0 +2020-06-12,Burleigh,North Dakota,38015,156,0 +2020-06-13,Burleigh,North Dakota,38015,159,0 +2020-06-14,Burleigh,North Dakota,38015,165,0 +2020-06-15,Burleigh,North Dakota,38015,167,0 +2020-06-16,Burleigh,North Dakota,38015,176,0 +2020-06-17,Burleigh,North Dakota,38015,180,0 +2020-06-18,Burleigh,North Dakota,38015,180,0 +2020-06-19,Burleigh,North Dakota,38015,188,0 +2020-06-20,Burleigh,North Dakota,38015,192,0 +2020-06-21,Burleigh,North Dakota,38015,198,0 +2020-06-22,Burleigh,North Dakota,38015,202,0 +2020-06-23,Burleigh,North Dakota,38015,202,0 +2020-06-24,Burleigh,North Dakota,38015,214,0 +2020-06-25,Burleigh,North Dakota,38015,217,0 +2020-06-26,Burleigh,North Dakota,38015,223,0 +2020-06-27,Burleigh,North Dakota,38015,234,0 +2020-06-28,Burleigh,North Dakota,38015,241,0 +2020-06-29,Burleigh,North Dakota,38015,249,0 +2020-06-30,Burleigh,North Dakota,38015,258,0 +2020-07-01,Burleigh,North Dakota,38015,267,0 +2020-07-02,Burleigh,North Dakota,38015,281,0 +2020-07-03,Burleigh,North Dakota,38015,302,0 +2020-07-04,Burleigh,North Dakota,38015,314,0 +2020-07-05,Burleigh,North Dakota,38015,322,0 +2020-07-06,Burleigh,North Dakota,38015,328,0 +2020-07-07,Burleigh,North Dakota,38015,343,0 +2020-07-08,Burleigh,North Dakota,38015,363,0 +2020-07-09,Burleigh,North Dakota,38015,385,0 +2020-03-17,Cass,North Dakota,38017,1,0 +2020-03-18,Cass,North Dakota,38017,1,0 +2020-03-19,Cass,North Dakota,38017,1,0 +2020-03-20,Cass,North Dakota,38017,1,0 +2020-03-21,Cass,North Dakota,38017,1,0 +2020-03-22,Cass,North Dakota,38017,1,0 +2020-03-23,Cass,North Dakota,38017,1,0 +2020-03-24,Cass,North Dakota,38017,3,0 +2020-03-25,Cass,North Dakota,38017,6,0 +2020-03-26,Cass,North Dakota,38017,8,0 +2020-03-27,Cass,North Dakota,38017,11,1 +2020-03-28,Cass,North Dakota,38017,18,1 +2020-03-29,Cass,North Dakota,38017,20,1 +2020-03-30,Cass,North Dakota,38017,23,1 +2020-03-31,Cass,North Dakota,38017,31,1 +2020-04-01,Cass,North Dakota,38017,37,1 +2020-04-02,Cass,North Dakota,38017,43,1 +2020-04-03,Cass,North Dakota,38017,46,1 +2020-04-04,Cass,North Dakota,38017,48,1 +2020-04-05,Cass,North Dakota,38017,54,1 +2020-04-06,Cass,North Dakota,38017,65,1 +2020-04-07,Cass,North Dakota,38017,70,1 +2020-04-08,Cass,North Dakota,38017,77,1 +2020-04-09,Cass,North Dakota,38017,83,1 +2020-04-10,Cass,North Dakota,38017,88,1 +2020-04-11,Cass,North Dakota,38017,95,2 +2020-04-12,Cass,North Dakota,38017,107,2 +2020-04-13,Cass,North Dakota,38017,116,2 +2020-04-14,Cass,North Dakota,38017,123,2 +2020-04-15,Cass,North Dakota,38017,135,2 +2020-04-16,Cass,North Dakota,38017,152,2 +2020-04-17,Cass,North Dakota,38017,181,2 +2020-04-18,Cass,North Dakota,38017,197,2 +2020-04-19,Cass,North Dakota,38017,212,3 +2020-04-20,Cass,North Dakota,38017,246,6 +2020-04-21,Cass,North Dakota,38017,255,6 +2020-04-22,Cass,North Dakota,38017,274,7 +2020-04-23,Cass,North Dakota,38017,290,8 +2020-04-24,Cass,North Dakota,38017,318,8 +2020-04-25,Cass,North Dakota,38017,357,9 +2020-04-26,Cass,North Dakota,38017,397,10 +2020-04-27,Cass,North Dakota,38017,431,12 +2020-04-28,Cass,North Dakota,38017,472,12 +2020-04-29,Cass,North Dakota,38017,492,12 +2020-04-30,Cass,North Dakota,38017,513,12 +2020-05-01,Cass,North Dakota,38017,542,16 +2020-05-02,Cass,North Dakota,38017,572,17 +2020-05-03,Cass,North Dakota,38017,605,18 +2020-05-04,Cass,North Dakota,38017,630,18 +2020-05-05,Cass,North Dakota,38017,643,18 +2020-05-06,Cass,North Dakota,38017,686,23 +2020-05-07,Cass,North Dakota,38017,709,23 +2020-05-08,Cass,North Dakota,38017,752,24 +2020-05-09,Cass,North Dakota,38017,781,26 +2020-05-10,Cass,North Dakota,38017,805,26 +2020-05-11,Cass,North Dakota,38017,821,27 +2020-05-12,Cass,North Dakota,38017,866,29 +2020-05-13,Cass,North Dakota,38017,935,31 +2020-05-14,Cass,North Dakota,38017,991,31 +2020-05-15,Cass,North Dakota,38017,1032,32 +2020-05-16,Cass,North Dakota,38017,1106,32 +2020-05-17,Cass,North Dakota,38017,1147,33 +2020-05-18,Cass,North Dakota,38017,1173,33 +2020-05-19,Cass,North Dakota,38017,1229,34 +2020-05-20,Cass,North Dakota,38017,1277,38 +2020-05-21,Cass,North Dakota,38017,1370,40 +2020-05-22,Cass,North Dakota,38017,1442,41 +2020-05-23,Cass,North Dakota,38017,1487,41 +2020-05-24,Cass,North Dakota,38017,1528,42 +2020-05-25,Cass,North Dakota,38017,1564,43 +2020-05-26,Cass,North Dakota,38017,1580,43 +2020-05-27,Cass,North Dakota,38017,1596,45 +2020-05-28,Cass,North Dakota,38017,1632,46 +2020-05-29,Cass,North Dakota,38017,1661,48 +2020-05-30,Cass,North Dakota,38017,1685,49 +2020-05-31,Cass,North Dakota,38017,1705,50 +2020-06-01,Cass,North Dakota,38017,1744,50 +2020-06-02,Cass,North Dakota,38017,1762,54 +2020-06-03,Cass,North Dakota,38017,1783,55 +2020-06-04,Cass,North Dakota,38017,1803,55 +2020-06-05,Cass,North Dakota,38017,1834,59 +2020-06-06,Cass,North Dakota,38017,1880,60 +2020-06-07,Cass,North Dakota,38017,1911,60 +2020-06-08,Cass,North Dakota,38017,1917,60 +2020-06-09,Cass,North Dakota,38017,1930,60 +2020-06-10,Cass,North Dakota,38017,1958,61 +2020-06-11,Cass,North Dakota,38017,1984,62 +2020-06-12,Cass,North Dakota,38017,2006,62 +2020-06-13,Cass,North Dakota,38017,2037,62 +2020-06-14,Cass,North Dakota,38017,2044,62 +2020-06-15,Cass,North Dakota,38017,2058,62 +2020-06-16,Cass,North Dakota,38017,2067,62 +2020-06-17,Cass,North Dakota,38017,2084,62 +2020-06-18,Cass,North Dakota,38017,2091,63 +2020-06-19,Cass,North Dakota,38017,2104,64 +2020-06-20,Cass,North Dakota,38017,2118,64 +2020-06-21,Cass,North Dakota,38017,2138,64 +2020-06-22,Cass,North Dakota,38017,2143,64 +2020-06-23,Cass,North Dakota,38017,2146,65 +2020-06-24,Cass,North Dakota,38017,2165,65 +2020-06-25,Cass,North Dakota,38017,2171,65 +2020-06-26,Cass,North Dakota,38017,2181,65 +2020-06-27,Cass,North Dakota,38017,2193,65 +2020-06-28,Cass,North Dakota,38017,2208,66 +2020-06-29,Cass,North Dakota,38017,2233,66 +2020-06-30,Cass,North Dakota,38017,2245,66 +2020-07-01,Cass,North Dakota,38017,2260,66 +2020-07-02,Cass,North Dakota,38017,2277,66 +2020-07-03,Cass,North Dakota,38017,2295,66 +2020-07-04,Cass,North Dakota,38017,2323,66 +2020-07-05,Cass,North Dakota,38017,2334,66 +2020-07-06,Cass,North Dakota,38017,2351,66 +2020-07-07,Cass,North Dakota,38017,2358,69 +2020-07-08,Cass,North Dakota,38017,2373,70 +2020-07-09,Cass,North Dakota,38017,2402,70 +2020-06-20,Cavalier,North Dakota,38019,1,0 +2020-06-21,Cavalier,North Dakota,38019,1,0 +2020-06-22,Cavalier,North Dakota,38019,2,0 +2020-06-23,Cavalier,North Dakota,38019,3,0 +2020-06-24,Cavalier,North Dakota,38019,2,0 +2020-06-25,Cavalier,North Dakota,38019,2,0 +2020-06-26,Cavalier,North Dakota,38019,2,0 +2020-06-27,Cavalier,North Dakota,38019,2,0 +2020-06-28,Cavalier,North Dakota,38019,2,0 +2020-06-29,Cavalier,North Dakota,38019,2,0 +2020-06-30,Cavalier,North Dakota,38019,2,0 +2020-07-01,Cavalier,North Dakota,38019,2,0 +2020-07-02,Cavalier,North Dakota,38019,3,0 +2020-07-03,Cavalier,North Dakota,38019,3,0 +2020-07-04,Cavalier,North Dakota,38019,3,0 +2020-07-05,Cavalier,North Dakota,38019,4,0 +2020-07-06,Cavalier,North Dakota,38019,5,0 +2020-07-07,Cavalier,North Dakota,38019,6,0 +2020-07-08,Cavalier,North Dakota,38019,6,0 +2020-07-09,Cavalier,North Dakota,38019,10,0 +2020-06-02,Dickey,North Dakota,38021,1,0 +2020-06-03,Dickey,North Dakota,38021,1,0 +2020-06-04,Dickey,North Dakota,38021,1,0 +2020-06-05,Dickey,North Dakota,38021,1,0 +2020-06-06,Dickey,North Dakota,38021,1,0 +2020-06-07,Dickey,North Dakota,38021,1,0 +2020-06-08,Dickey,North Dakota,38021,1,0 +2020-06-09,Dickey,North Dakota,38021,1,0 +2020-06-10,Dickey,North Dakota,38021,1,0 +2020-06-11,Dickey,North Dakota,38021,2,0 +2020-06-12,Dickey,North Dakota,38021,2,0 +2020-06-13,Dickey,North Dakota,38021,3,0 +2020-06-14,Dickey,North Dakota,38021,3,0 +2020-06-15,Dickey,North Dakota,38021,3,0 +2020-06-16,Dickey,North Dakota,38021,3,0 +2020-06-17,Dickey,North Dakota,38021,3,0 +2020-06-18,Dickey,North Dakota,38021,3,0 +2020-06-19,Dickey,North Dakota,38021,4,0 +2020-06-20,Dickey,North Dakota,38021,4,0 +2020-06-21,Dickey,North Dakota,38021,4,0 +2020-06-22,Dickey,North Dakota,38021,4,0 +2020-06-23,Dickey,North Dakota,38021,4,0 +2020-06-24,Dickey,North Dakota,38021,4,0 +2020-06-25,Dickey,North Dakota,38021,4,0 +2020-06-26,Dickey,North Dakota,38021,4,0 +2020-06-27,Dickey,North Dakota,38021,4,0 +2020-06-28,Dickey,North Dakota,38021,4,0 +2020-06-29,Dickey,North Dakota,38021,4,0 +2020-06-30,Dickey,North Dakota,38021,4,0 +2020-07-01,Dickey,North Dakota,38021,4,0 +2020-07-02,Dickey,North Dakota,38021,4,0 +2020-07-03,Dickey,North Dakota,38021,4,0 +2020-07-04,Dickey,North Dakota,38021,4,0 +2020-07-05,Dickey,North Dakota,38021,4,0 +2020-07-06,Dickey,North Dakota,38021,4,0 +2020-07-07,Dickey,North Dakota,38021,4,0 +2020-07-08,Dickey,North Dakota,38021,4,0 +2020-07-09,Dickey,North Dakota,38021,5,0 +2020-03-28,Divide,North Dakota,38023,1,0 +2020-03-29,Divide,North Dakota,38023,1,0 +2020-03-30,Divide,North Dakota,38023,1,0 +2020-03-31,Divide,North Dakota,38023,1,0 +2020-04-01,Divide,North Dakota,38023,1,0 +2020-04-02,Divide,North Dakota,38023,1,0 +2020-04-03,Divide,North Dakota,38023,1,0 +2020-04-04,Divide,North Dakota,38023,1,0 +2020-04-05,Divide,North Dakota,38023,1,0 +2020-04-06,Divide,North Dakota,38023,1,0 +2020-04-07,Divide,North Dakota,38023,1,0 +2020-04-08,Divide,North Dakota,38023,1,0 +2020-04-09,Divide,North Dakota,38023,1,0 +2020-04-10,Divide,North Dakota,38023,1,0 +2020-04-11,Divide,North Dakota,38023,1,0 +2020-04-12,Divide,North Dakota,38023,1,0 +2020-04-13,Divide,North Dakota,38023,1,0 +2020-04-14,Divide,North Dakota,38023,1,0 +2020-04-15,Divide,North Dakota,38023,1,0 +2020-04-16,Divide,North Dakota,38023,1,0 +2020-04-17,Divide,North Dakota,38023,1,0 +2020-04-18,Divide,North Dakota,38023,1,0 +2020-04-19,Divide,North Dakota,38023,1,0 +2020-04-20,Divide,North Dakota,38023,1,0 +2020-04-21,Divide,North Dakota,38023,1,0 +2020-04-22,Divide,North Dakota,38023,1,0 +2020-04-23,Divide,North Dakota,38023,1,0 +2020-04-24,Divide,North Dakota,38023,1,0 +2020-04-25,Divide,North Dakota,38023,1,0 +2020-04-26,Divide,North Dakota,38023,1,0 +2020-04-27,Divide,North Dakota,38023,1,0 +2020-04-28,Divide,North Dakota,38023,1,0 +2020-04-29,Divide,North Dakota,38023,1,0 +2020-04-30,Divide,North Dakota,38023,1,0 +2020-05-01,Divide,North Dakota,38023,1,0 +2020-05-02,Divide,North Dakota,38023,1,0 +2020-05-03,Divide,North Dakota,38023,1,0 +2020-05-04,Divide,North Dakota,38023,1,0 +2020-05-05,Divide,North Dakota,38023,1,0 +2020-05-06,Divide,North Dakota,38023,1,0 +2020-05-07,Divide,North Dakota,38023,1,0 +2020-05-08,Divide,North Dakota,38023,1,0 +2020-05-09,Divide,North Dakota,38023,1,0 +2020-05-10,Divide,North Dakota,38023,1,0 +2020-05-11,Divide,North Dakota,38023,1,0 +2020-05-12,Divide,North Dakota,38023,1,0 +2020-05-13,Divide,North Dakota,38023,1,0 +2020-05-14,Divide,North Dakota,38023,1,0 +2020-05-15,Divide,North Dakota,38023,1,0 +2020-05-16,Divide,North Dakota,38023,1,0 +2020-05-17,Divide,North Dakota,38023,1,0 +2020-05-18,Divide,North Dakota,38023,1,0 +2020-05-19,Divide,North Dakota,38023,1,0 +2020-05-20,Divide,North Dakota,38023,1,0 +2020-05-21,Divide,North Dakota,38023,1,0 +2020-05-22,Divide,North Dakota,38023,1,0 +2020-05-23,Divide,North Dakota,38023,1,0 +2020-05-24,Divide,North Dakota,38023,1,0 +2020-05-25,Divide,North Dakota,38023,1,0 +2020-05-26,Divide,North Dakota,38023,1,0 +2020-05-27,Divide,North Dakota,38023,1,0 +2020-05-28,Divide,North Dakota,38023,1,0 +2020-05-29,Divide,North Dakota,38023,1,0 +2020-05-30,Divide,North Dakota,38023,1,0 +2020-05-31,Divide,North Dakota,38023,1,0 +2020-06-01,Divide,North Dakota,38023,1,0 +2020-06-02,Divide,North Dakota,38023,1,0 +2020-06-03,Divide,North Dakota,38023,1,0 +2020-06-04,Divide,North Dakota,38023,1,0 +2020-06-05,Divide,North Dakota,38023,1,0 +2020-06-06,Divide,North Dakota,38023,1,0 +2020-06-07,Divide,North Dakota,38023,1,0 +2020-06-08,Divide,North Dakota,38023,1,0 +2020-06-09,Divide,North Dakota,38023,1,0 +2020-06-10,Divide,North Dakota,38023,1,0 +2020-06-11,Divide,North Dakota,38023,1,0 +2020-06-12,Divide,North Dakota,38023,1,0 +2020-06-13,Divide,North Dakota,38023,1,0 +2020-06-14,Divide,North Dakota,38023,1,0 +2020-06-15,Divide,North Dakota,38023,1,0 +2020-06-16,Divide,North Dakota,38023,1,0 +2020-06-17,Divide,North Dakota,38023,1,0 +2020-06-18,Divide,North Dakota,38023,1,0 +2020-06-19,Divide,North Dakota,38023,1,0 +2020-06-20,Divide,North Dakota,38023,1,0 +2020-06-21,Divide,North Dakota,38023,1,0 +2020-06-22,Divide,North Dakota,38023,1,0 +2020-06-23,Divide,North Dakota,38023,1,0 +2020-06-24,Divide,North Dakota,38023,1,0 +2020-06-25,Divide,North Dakota,38023,1,0 +2020-06-26,Divide,North Dakota,38023,1,0 +2020-06-27,Divide,North Dakota,38023,1,0 +2020-06-28,Divide,North Dakota,38023,1,0 +2020-06-29,Divide,North Dakota,38023,1,0 +2020-06-30,Divide,North Dakota,38023,1,0 +2020-07-01,Divide,North Dakota,38023,1,0 +2020-07-02,Divide,North Dakota,38023,1,0 +2020-07-03,Divide,North Dakota,38023,1,0 +2020-07-04,Divide,North Dakota,38023,1,0 +2020-07-05,Divide,North Dakota,38023,1,0 +2020-07-06,Divide,North Dakota,38023,1,0 +2020-07-07,Divide,North Dakota,38023,1,0 +2020-07-08,Divide,North Dakota,38023,1,0 +2020-07-09,Divide,North Dakota,38023,1,0 +2020-03-24,Dunn,North Dakota,38025,1,0 +2020-03-25,Dunn,North Dakota,38025,1,0 +2020-03-26,Dunn,North Dakota,38025,1,0 +2020-03-27,Dunn,North Dakota,38025,1,0 +2020-03-28,Dunn,North Dakota,38025,1,0 +2020-03-29,Dunn,North Dakota,38025,1,0 +2020-03-30,Dunn,North Dakota,38025,1,0 +2020-03-31,Dunn,North Dakota,38025,1,0 +2020-04-01,Dunn,North Dakota,38025,1,0 +2020-04-02,Dunn,North Dakota,38025,1,0 +2020-04-03,Dunn,North Dakota,38025,1,0 +2020-04-04,Dunn,North Dakota,38025,1,0 +2020-04-05,Dunn,North Dakota,38025,1,0 +2020-04-06,Dunn,North Dakota,38025,1,0 +2020-04-07,Dunn,North Dakota,38025,1,0 +2020-04-08,Dunn,North Dakota,38025,1,0 +2020-04-09,Dunn,North Dakota,38025,1,0 +2020-04-10,Dunn,North Dakota,38025,2,0 +2020-04-11,Dunn,North Dakota,38025,2,0 +2020-04-12,Dunn,North Dakota,38025,2,0 +2020-04-13,Dunn,North Dakota,38025,3,0 +2020-04-14,Dunn,North Dakota,38025,3,0 +2020-04-15,Dunn,North Dakota,38025,3,0 +2020-04-16,Dunn,North Dakota,38025,4,0 +2020-04-17,Dunn,North Dakota,38025,5,0 +2020-04-18,Dunn,North Dakota,38025,6,0 +2020-04-19,Dunn,North Dakota,38025,9,0 +2020-04-20,Dunn,North Dakota,38025,10,0 +2020-04-21,Dunn,North Dakota,38025,10,0 +2020-04-22,Dunn,North Dakota,38025,10,0 +2020-04-23,Dunn,North Dakota,38025,10,0 +2020-04-24,Dunn,North Dakota,38025,10,0 +2020-04-25,Dunn,North Dakota,38025,10,0 +2020-04-26,Dunn,North Dakota,38025,10,0 +2020-04-27,Dunn,North Dakota,38025,10,0 +2020-04-28,Dunn,North Dakota,38025,10,0 +2020-04-29,Dunn,North Dakota,38025,10,0 +2020-04-30,Dunn,North Dakota,38025,10,0 +2020-05-01,Dunn,North Dakota,38025,10,0 +2020-05-02,Dunn,North Dakota,38025,11,0 +2020-05-03,Dunn,North Dakota,38025,11,0 +2020-05-04,Dunn,North Dakota,38025,11,0 +2020-05-05,Dunn,North Dakota,38025,11,0 +2020-05-06,Dunn,North Dakota,38025,11,0 +2020-05-07,Dunn,North Dakota,38025,11,0 +2020-05-08,Dunn,North Dakota,38025,11,0 +2020-05-09,Dunn,North Dakota,38025,11,0 +2020-05-10,Dunn,North Dakota,38025,11,0 +2020-05-11,Dunn,North Dakota,38025,12,0 +2020-05-12,Dunn,North Dakota,38025,11,0 +2020-05-13,Dunn,North Dakota,38025,11,0 +2020-05-14,Dunn,North Dakota,38025,11,0 +2020-05-15,Dunn,North Dakota,38025,11,0 +2020-05-16,Dunn,North Dakota,38025,11,0 +2020-05-17,Dunn,North Dakota,38025,11,0 +2020-05-18,Dunn,North Dakota,38025,11,0 +2020-05-19,Dunn,North Dakota,38025,12,0 +2020-05-20,Dunn,North Dakota,38025,12,0 +2020-05-21,Dunn,North Dakota,38025,12,0 +2020-05-22,Dunn,North Dakota,38025,12,0 +2020-05-23,Dunn,North Dakota,38025,12,0 +2020-05-24,Dunn,North Dakota,38025,12,0 +2020-05-25,Dunn,North Dakota,38025,12,0 +2020-05-26,Dunn,North Dakota,38025,12,0 +2020-05-27,Dunn,North Dakota,38025,12,0 +2020-05-28,Dunn,North Dakota,38025,12,0 +2020-05-29,Dunn,North Dakota,38025,12,0 +2020-05-30,Dunn,North Dakota,38025,12,0 +2020-05-31,Dunn,North Dakota,38025,12,0 +2020-06-01,Dunn,North Dakota,38025,11,0 +2020-06-02,Dunn,North Dakota,38025,11,0 +2020-06-03,Dunn,North Dakota,38025,11,0 +2020-06-04,Dunn,North Dakota,38025,11,0 +2020-06-05,Dunn,North Dakota,38025,11,0 +2020-06-06,Dunn,North Dakota,38025,11,0 +2020-06-07,Dunn,North Dakota,38025,11,0 +2020-06-08,Dunn,North Dakota,38025,11,0 +2020-06-09,Dunn,North Dakota,38025,11,0 +2020-06-10,Dunn,North Dakota,38025,11,0 +2020-06-11,Dunn,North Dakota,38025,11,0 +2020-06-12,Dunn,North Dakota,38025,11,0 +2020-06-13,Dunn,North Dakota,38025,11,0 +2020-06-14,Dunn,North Dakota,38025,11,0 +2020-06-15,Dunn,North Dakota,38025,11,0 +2020-06-16,Dunn,North Dakota,38025,11,0 +2020-06-17,Dunn,North Dakota,38025,11,0 +2020-06-18,Dunn,North Dakota,38025,11,0 +2020-06-19,Dunn,North Dakota,38025,12,0 +2020-06-20,Dunn,North Dakota,38025,12,0 +2020-06-21,Dunn,North Dakota,38025,12,0 +2020-06-22,Dunn,North Dakota,38025,13,0 +2020-06-23,Dunn,North Dakota,38025,13,0 +2020-06-24,Dunn,North Dakota,38025,13,0 +2020-06-25,Dunn,North Dakota,38025,13,0 +2020-06-26,Dunn,North Dakota,38025,13,0 +2020-06-27,Dunn,North Dakota,38025,13,0 +2020-06-28,Dunn,North Dakota,38025,13,0 +2020-06-29,Dunn,North Dakota,38025,13,0 +2020-06-30,Dunn,North Dakota,38025,13,0 +2020-07-01,Dunn,North Dakota,38025,14,0 +2020-07-02,Dunn,North Dakota,38025,14,0 +2020-07-03,Dunn,North Dakota,38025,14,0 +2020-07-04,Dunn,North Dakota,38025,14,0 +2020-07-05,Dunn,North Dakota,38025,15,0 +2020-07-06,Dunn,North Dakota,38025,15,0 +2020-07-07,Dunn,North Dakota,38025,15,0 +2020-07-08,Dunn,North Dakota,38025,15,0 +2020-07-09,Dunn,North Dakota,38025,18,0 +2020-04-03,Eddy,North Dakota,38027,1,0 +2020-04-04,Eddy,North Dakota,38027,1,0 +2020-04-05,Eddy,North Dakota,38027,1,0 +2020-04-06,Eddy,North Dakota,38027,1,0 +2020-04-07,Eddy,North Dakota,38027,1,0 +2020-04-08,Eddy,North Dakota,38027,1,0 +2020-04-09,Eddy,North Dakota,38027,1,0 +2020-04-10,Eddy,North Dakota,38027,1,0 +2020-04-11,Eddy,North Dakota,38027,1,0 +2020-04-12,Eddy,North Dakota,38027,1,0 +2020-04-13,Eddy,North Dakota,38027,1,0 +2020-04-14,Eddy,North Dakota,38027,1,0 +2020-04-15,Eddy,North Dakota,38027,1,0 +2020-04-16,Eddy,North Dakota,38027,1,0 +2020-04-17,Eddy,North Dakota,38027,1,0 +2020-04-18,Eddy,North Dakota,38027,1,0 +2020-04-19,Eddy,North Dakota,38027,1,0 +2020-04-20,Eddy,North Dakota,38027,1,0 +2020-04-21,Eddy,North Dakota,38027,1,0 +2020-04-22,Eddy,North Dakota,38027,1,0 +2020-04-23,Eddy,North Dakota,38027,1,0 +2020-04-24,Eddy,North Dakota,38027,1,0 +2020-04-25,Eddy,North Dakota,38027,1,0 +2020-04-26,Eddy,North Dakota,38027,1,0 +2020-04-27,Eddy,North Dakota,38027,1,0 +2020-04-28,Eddy,North Dakota,38027,1,0 +2020-04-29,Eddy,North Dakota,38027,1,0 +2020-04-30,Eddy,North Dakota,38027,1,0 +2020-05-01,Eddy,North Dakota,38027,1,0 +2020-05-02,Eddy,North Dakota,38027,1,0 +2020-05-03,Eddy,North Dakota,38027,1,0 +2020-05-04,Eddy,North Dakota,38027,1,0 +2020-05-05,Eddy,North Dakota,38027,1,0 +2020-05-06,Eddy,North Dakota,38027,1,0 +2020-05-07,Eddy,North Dakota,38027,1,0 +2020-05-08,Eddy,North Dakota,38027,1,0 +2020-05-09,Eddy,North Dakota,38027,1,0 +2020-05-10,Eddy,North Dakota,38027,1,0 +2020-05-11,Eddy,North Dakota,38027,2,0 +2020-05-12,Eddy,North Dakota,38027,2,0 +2020-05-13,Eddy,North Dakota,38027,2,0 +2020-05-14,Eddy,North Dakota,38027,2,0 +2020-05-15,Eddy,North Dakota,38027,2,0 +2020-05-16,Eddy,North Dakota,38027,2,0 +2020-05-17,Eddy,North Dakota,38027,2,0 +2020-05-18,Eddy,North Dakota,38027,2,0 +2020-05-19,Eddy,North Dakota,38027,2,0 +2020-05-20,Eddy,North Dakota,38027,2,0 +2020-05-21,Eddy,North Dakota,38027,2,0 +2020-05-22,Eddy,North Dakota,38027,8,0 +2020-05-23,Eddy,North Dakota,38027,7,0 +2020-05-24,Eddy,North Dakota,38027,7,0 +2020-05-25,Eddy,North Dakota,38027,7,0 +2020-05-26,Eddy,North Dakota,38027,4,0 +2020-05-27,Eddy,North Dakota,38027,4,0 +2020-05-28,Eddy,North Dakota,38027,4,0 +2020-05-29,Eddy,North Dakota,38027,4,0 +2020-05-30,Eddy,North Dakota,38027,4,0 +2020-05-31,Eddy,North Dakota,38027,4,0 +2020-06-01,Eddy,North Dakota,38027,4,0 +2020-06-02,Eddy,North Dakota,38027,4,0 +2020-06-03,Eddy,North Dakota,38027,4,0 +2020-06-04,Eddy,North Dakota,38027,4,0 +2020-06-05,Eddy,North Dakota,38027,4,0 +2020-06-06,Eddy,North Dakota,38027,4,0 +2020-06-07,Eddy,North Dakota,38027,5,0 +2020-06-08,Eddy,North Dakota,38027,5,0 +2020-06-09,Eddy,North Dakota,38027,5,0 +2020-06-10,Eddy,North Dakota,38027,5,0 +2020-06-11,Eddy,North Dakota,38027,5,0 +2020-06-12,Eddy,North Dakota,38027,5,0 +2020-06-13,Eddy,North Dakota,38027,5,0 +2020-06-14,Eddy,North Dakota,38027,5,0 +2020-06-15,Eddy,North Dakota,38027,5,0 +2020-06-16,Eddy,North Dakota,38027,5,0 +2020-06-17,Eddy,North Dakota,38027,5,0 +2020-06-18,Eddy,North Dakota,38027,5,0 +2020-06-19,Eddy,North Dakota,38027,5,0 +2020-06-20,Eddy,North Dakota,38027,5,0 +2020-06-21,Eddy,North Dakota,38027,5,0 +2020-06-22,Eddy,North Dakota,38027,5,0 +2020-06-23,Eddy,North Dakota,38027,5,0 +2020-06-24,Eddy,North Dakota,38027,5,0 +2020-06-25,Eddy,North Dakota,38027,5,0 +2020-06-26,Eddy,North Dakota,38027,5,0 +2020-06-27,Eddy,North Dakota,38027,5,0 +2020-06-28,Eddy,North Dakota,38027,5,0 +2020-06-29,Eddy,North Dakota,38027,5,0 +2020-06-30,Eddy,North Dakota,38027,5,0 +2020-07-01,Eddy,North Dakota,38027,5,0 +2020-07-02,Eddy,North Dakota,38027,5,0 +2020-07-03,Eddy,North Dakota,38027,5,0 +2020-07-04,Eddy,North Dakota,38027,5,0 +2020-07-05,Eddy,North Dakota,38027,5,0 +2020-07-06,Eddy,North Dakota,38027,5,0 +2020-07-07,Eddy,North Dakota,38027,5,0 +2020-07-08,Eddy,North Dakota,38027,5,0 +2020-07-09,Eddy,North Dakota,38027,5,0 +2020-04-05,Emmons,North Dakota,38029,1,0 +2020-04-06,Emmons,North Dakota,38029,1,0 +2020-04-07,Emmons,North Dakota,38029,1,1 +2020-04-08,Emmons,North Dakota,38029,1,1 +2020-04-09,Emmons,North Dakota,38029,1,1 +2020-04-10,Emmons,North Dakota,38029,1,1 +2020-04-11,Emmons,North Dakota,38029,1,1 +2020-04-12,Emmons,North Dakota,38029,1,1 +2020-04-13,Emmons,North Dakota,38029,1,1 +2020-04-14,Emmons,North Dakota,38029,1,1 +2020-04-15,Emmons,North Dakota,38029,1,1 +2020-04-16,Emmons,North Dakota,38029,1,1 +2020-04-17,Emmons,North Dakota,38029,1,1 +2020-04-18,Emmons,North Dakota,38029,1,1 +2020-04-19,Emmons,North Dakota,38029,1,1 +2020-04-20,Emmons,North Dakota,38029,1,1 +2020-04-21,Emmons,North Dakota,38029,1,1 +2020-04-22,Emmons,North Dakota,38029,1,1 +2020-04-23,Emmons,North Dakota,38029,1,1 +2020-04-24,Emmons,North Dakota,38029,1,1 +2020-04-25,Emmons,North Dakota,38029,1,1 +2020-04-26,Emmons,North Dakota,38029,1,1 +2020-04-27,Emmons,North Dakota,38029,1,1 +2020-04-28,Emmons,North Dakota,38029,1,1 +2020-04-29,Emmons,North Dakota,38029,1,1 +2020-04-30,Emmons,North Dakota,38029,1,1 +2020-05-01,Emmons,North Dakota,38029,1,1 +2020-05-02,Emmons,North Dakota,38029,1,1 +2020-05-03,Emmons,North Dakota,38029,1,1 +2020-05-04,Emmons,North Dakota,38029,1,1 +2020-05-05,Emmons,North Dakota,38029,1,1 +2020-05-06,Emmons,North Dakota,38029,1,1 +2020-05-07,Emmons,North Dakota,38029,1,1 +2020-05-08,Emmons,North Dakota,38029,1,1 +2020-05-09,Emmons,North Dakota,38029,1,1 +2020-05-10,Emmons,North Dakota,38029,1,1 +2020-05-11,Emmons,North Dakota,38029,1,1 +2020-05-12,Emmons,North Dakota,38029,1,1 +2020-05-13,Emmons,North Dakota,38029,1,1 +2020-05-14,Emmons,North Dakota,38029,1,1 +2020-05-15,Emmons,North Dakota,38029,1,1 +2020-05-16,Emmons,North Dakota,38029,1,1 +2020-05-17,Emmons,North Dakota,38029,1,1 +2020-05-18,Emmons,North Dakota,38029,1,1 +2020-05-19,Emmons,North Dakota,38029,1,1 +2020-05-20,Emmons,North Dakota,38029,1,1 +2020-05-21,Emmons,North Dakota,38029,5,1 +2020-05-22,Emmons,North Dakota,38029,6,1 +2020-05-23,Emmons,North Dakota,38029,6,1 +2020-05-24,Emmons,North Dakota,38029,6,1 +2020-05-25,Emmons,North Dakota,38029,6,1 +2020-05-26,Emmons,North Dakota,38029,4,1 +2020-05-27,Emmons,North Dakota,38029,4,1 +2020-05-28,Emmons,North Dakota,38029,4,1 +2020-05-29,Emmons,North Dakota,38029,4,1 +2020-05-30,Emmons,North Dakota,38029,4,1 +2020-05-31,Emmons,North Dakota,38029,4,1 +2020-06-01,Emmons,North Dakota,38029,4,1 +2020-06-02,Emmons,North Dakota,38029,4,1 +2020-06-03,Emmons,North Dakota,38029,4,1 +2020-06-04,Emmons,North Dakota,38029,4,1 +2020-06-05,Emmons,North Dakota,38029,4,1 +2020-06-06,Emmons,North Dakota,38029,4,1 +2020-06-07,Emmons,North Dakota,38029,4,1 +2020-06-08,Emmons,North Dakota,38029,4,1 +2020-06-09,Emmons,North Dakota,38029,4,1 +2020-06-10,Emmons,North Dakota,38029,4,1 +2020-06-11,Emmons,North Dakota,38029,4,1 +2020-06-12,Emmons,North Dakota,38029,4,1 +2020-06-13,Emmons,North Dakota,38029,4,1 +2020-06-14,Emmons,North Dakota,38029,4,1 +2020-06-15,Emmons,North Dakota,38029,4,1 +2020-06-16,Emmons,North Dakota,38029,4,1 +2020-06-17,Emmons,North Dakota,38029,4,1 +2020-06-18,Emmons,North Dakota,38029,4,1 +2020-06-19,Emmons,North Dakota,38029,4,1 +2020-06-20,Emmons,North Dakota,38029,4,1 +2020-06-21,Emmons,North Dakota,38029,4,1 +2020-06-22,Emmons,North Dakota,38029,4,1 +2020-06-23,Emmons,North Dakota,38029,4,1 +2020-06-24,Emmons,North Dakota,38029,4,1 +2020-06-25,Emmons,North Dakota,38029,4,1 +2020-06-26,Emmons,North Dakota,38029,4,1 +2020-06-27,Emmons,North Dakota,38029,4,1 +2020-06-28,Emmons,North Dakota,38029,4,1 +2020-06-29,Emmons,North Dakota,38029,4,1 +2020-06-30,Emmons,North Dakota,38029,4,1 +2020-07-01,Emmons,North Dakota,38029,4,1 +2020-07-02,Emmons,North Dakota,38029,4,1 +2020-07-03,Emmons,North Dakota,38029,4,1 +2020-07-04,Emmons,North Dakota,38029,4,1 +2020-07-05,Emmons,North Dakota,38029,4,1 +2020-07-06,Emmons,North Dakota,38029,4,1 +2020-07-07,Emmons,North Dakota,38029,4,1 +2020-07-08,Emmons,North Dakota,38029,4,1 +2020-07-09,Emmons,North Dakota,38029,4,1 +2020-03-25,Foster,North Dakota,38031,1,0 +2020-03-26,Foster,North Dakota,38031,1,0 +2020-03-27,Foster,North Dakota,38031,1,0 +2020-03-28,Foster,North Dakota,38031,1,0 +2020-03-29,Foster,North Dakota,38031,1,0 +2020-03-30,Foster,North Dakota,38031,1,0 +2020-03-31,Foster,North Dakota,38031,1,0 +2020-04-01,Foster,North Dakota,38031,1,0 +2020-04-02,Foster,North Dakota,38031,1,0 +2020-04-03,Foster,North Dakota,38031,1,0 +2020-04-04,Foster,North Dakota,38031,1,0 +2020-04-05,Foster,North Dakota,38031,1,0 +2020-04-06,Foster,North Dakota,38031,1,0 +2020-04-07,Foster,North Dakota,38031,1,0 +2020-04-08,Foster,North Dakota,38031,1,0 +2020-04-09,Foster,North Dakota,38031,1,0 +2020-04-10,Foster,North Dakota,38031,1,0 +2020-04-11,Foster,North Dakota,38031,1,0 +2020-04-12,Foster,North Dakota,38031,1,0 +2020-04-13,Foster,North Dakota,38031,1,0 +2020-04-14,Foster,North Dakota,38031,1,0 +2020-04-15,Foster,North Dakota,38031,1,0 +2020-04-16,Foster,North Dakota,38031,1,0 +2020-04-17,Foster,North Dakota,38031,1,0 +2020-04-18,Foster,North Dakota,38031,1,0 +2020-04-19,Foster,North Dakota,38031,1,0 +2020-04-20,Foster,North Dakota,38031,1,0 +2020-04-21,Foster,North Dakota,38031,1,0 +2020-04-22,Foster,North Dakota,38031,1,0 +2020-04-23,Foster,North Dakota,38031,1,0 +2020-04-24,Foster,North Dakota,38031,1,0 +2020-04-25,Foster,North Dakota,38031,1,0 +2020-04-26,Foster,North Dakota,38031,1,0 +2020-04-27,Foster,North Dakota,38031,1,0 +2020-04-28,Foster,North Dakota,38031,1,0 +2020-04-29,Foster,North Dakota,38031,1,0 +2020-04-30,Foster,North Dakota,38031,1,0 +2020-05-01,Foster,North Dakota,38031,1,0 +2020-05-02,Foster,North Dakota,38031,1,0 +2020-05-03,Foster,North Dakota,38031,1,0 +2020-05-04,Foster,North Dakota,38031,1,0 +2020-05-05,Foster,North Dakota,38031,1,0 +2020-05-06,Foster,North Dakota,38031,1,0 +2020-05-07,Foster,North Dakota,38031,1,0 +2020-05-08,Foster,North Dakota,38031,1,0 +2020-05-09,Foster,North Dakota,38031,1,0 +2020-05-10,Foster,North Dakota,38031,1,0 +2020-05-11,Foster,North Dakota,38031,1,0 +2020-05-12,Foster,North Dakota,38031,1,0 +2020-05-13,Foster,North Dakota,38031,1,0 +2020-05-14,Foster,North Dakota,38031,1,0 +2020-05-15,Foster,North Dakota,38031,1,0 +2020-05-16,Foster,North Dakota,38031,1,0 +2020-05-17,Foster,North Dakota,38031,1,0 +2020-05-18,Foster,North Dakota,38031,1,0 +2020-05-19,Foster,North Dakota,38031,1,0 +2020-05-20,Foster,North Dakota,38031,1,0 +2020-05-21,Foster,North Dakota,38031,1,0 +2020-05-22,Foster,North Dakota,38031,1,0 +2020-05-23,Foster,North Dakota,38031,1,0 +2020-05-24,Foster,North Dakota,38031,1,0 +2020-05-25,Foster,North Dakota,38031,1,0 +2020-05-26,Foster,North Dakota,38031,1,0 +2020-05-27,Foster,North Dakota,38031,1,0 +2020-05-28,Foster,North Dakota,38031,1,0 +2020-05-29,Foster,North Dakota,38031,1,0 +2020-05-30,Foster,North Dakota,38031,1,0 +2020-05-31,Foster,North Dakota,38031,1,0 +2020-06-01,Foster,North Dakota,38031,1,0 +2020-06-02,Foster,North Dakota,38031,1,0 +2020-06-03,Foster,North Dakota,38031,1,0 +2020-06-04,Foster,North Dakota,38031,1,0 +2020-06-05,Foster,North Dakota,38031,1,0 +2020-06-06,Foster,North Dakota,38031,1,0 +2020-06-07,Foster,North Dakota,38031,1,0 +2020-06-08,Foster,North Dakota,38031,1,0 +2020-06-09,Foster,North Dakota,38031,1,0 +2020-06-10,Foster,North Dakota,38031,1,0 +2020-06-11,Foster,North Dakota,38031,1,0 +2020-06-12,Foster,North Dakota,38031,1,0 +2020-06-13,Foster,North Dakota,38031,1,0 +2020-06-14,Foster,North Dakota,38031,1,0 +2020-06-15,Foster,North Dakota,38031,1,0 +2020-06-16,Foster,North Dakota,38031,1,0 +2020-06-17,Foster,North Dakota,38031,1,0 +2020-06-18,Foster,North Dakota,38031,1,0 +2020-06-19,Foster,North Dakota,38031,1,0 +2020-06-20,Foster,North Dakota,38031,1,0 +2020-06-21,Foster,North Dakota,38031,1,0 +2020-06-22,Foster,North Dakota,38031,1,0 +2020-06-23,Foster,North Dakota,38031,2,0 +2020-06-24,Foster,North Dakota,38031,2,0 +2020-06-25,Foster,North Dakota,38031,2,0 +2020-06-26,Foster,North Dakota,38031,2,0 +2020-06-27,Foster,North Dakota,38031,2,0 +2020-06-28,Foster,North Dakota,38031,2,0 +2020-06-29,Foster,North Dakota,38031,2,0 +2020-06-30,Foster,North Dakota,38031,2,0 +2020-07-01,Foster,North Dakota,38031,2,0 +2020-07-02,Foster,North Dakota,38031,2,0 +2020-07-03,Foster,North Dakota,38031,2,0 +2020-07-04,Foster,North Dakota,38031,2,0 +2020-07-05,Foster,North Dakota,38031,2,0 +2020-07-06,Foster,North Dakota,38031,2,0 +2020-07-07,Foster,North Dakota,38031,2,0 +2020-07-08,Foster,North Dakota,38031,4,0 +2020-07-09,Foster,North Dakota,38031,4,0 +2020-03-30,Grand Forks,North Dakota,38035,2,0 +2020-03-31,Grand Forks,North Dakota,38035,3,0 +2020-04-01,Grand Forks,North Dakota,38035,5,0 +2020-04-02,Grand Forks,North Dakota,38035,5,0 +2020-04-03,Grand Forks,North Dakota,38035,6,0 +2020-04-04,Grand Forks,North Dakota,38035,10,0 +2020-04-05,Grand Forks,North Dakota,38035,11,0 +2020-04-06,Grand Forks,North Dakota,38035,11,0 +2020-04-07,Grand Forks,North Dakota,38035,11,0 +2020-04-08,Grand Forks,North Dakota,38035,11,0 +2020-04-09,Grand Forks,North Dakota,38035,11,0 +2020-04-10,Grand Forks,North Dakota,38035,11,0 +2020-04-11,Grand Forks,North Dakota,38035,11,0 +2020-04-12,Grand Forks,North Dakota,38035,11,0 +2020-04-13,Grand Forks,North Dakota,38035,11,0 +2020-04-14,Grand Forks,North Dakota,38035,12,0 +2020-04-15,Grand Forks,North Dakota,38035,20,0 +2020-04-16,Grand Forks,North Dakota,38035,23,0 +2020-04-17,Grand Forks,North Dakota,38035,32,0 +2020-04-18,Grand Forks,North Dakota,38035,99,0 +2020-04-19,Grand Forks,North Dakota,38035,133,0 +2020-04-20,Grand Forks,North Dakota,38035,138,0 +2020-04-21,Grand Forks,North Dakota,38035,143,0 +2020-04-22,Grand Forks,North Dakota,38035,154,0 +2020-04-23,Grand Forks,North Dakota,38035,162,0 +2020-04-24,Grand Forks,North Dakota,38035,170,0 +2020-04-25,Grand Forks,North Dakota,38035,173,0 +2020-04-26,Grand Forks,North Dakota,38035,195,0 +2020-04-27,Grand Forks,North Dakota,38035,231,0 +2020-04-28,Grand Forks,North Dakota,38035,234,0 +2020-04-29,Grand Forks,North Dakota,38035,251,0 +2020-04-30,Grand Forks,North Dakota,38035,258,0 +2020-05-01,Grand Forks,North Dakota,38035,262,0 +2020-05-02,Grand Forks,North Dakota,38035,265,0 +2020-05-03,Grand Forks,North Dakota,38035,267,0 +2020-05-04,Grand Forks,North Dakota,38035,269,0 +2020-05-05,Grand Forks,North Dakota,38035,270,0 +2020-05-06,Grand Forks,North Dakota,38035,271,1 +2020-05-07,Grand Forks,North Dakota,38035,275,1 +2020-05-08,Grand Forks,North Dakota,38035,282,2 +2020-05-09,Grand Forks,North Dakota,38035,284,2 +2020-05-10,Grand Forks,North Dakota,38035,285,2 +2020-05-11,Grand Forks,North Dakota,38035,287,2 +2020-05-12,Grand Forks,North Dakota,38035,293,2 +2020-05-13,Grand Forks,North Dakota,38035,297,2 +2020-05-14,Grand Forks,North Dakota,38035,304,2 +2020-05-15,Grand Forks,North Dakota,38035,307,3 +2020-05-16,Grand Forks,North Dakota,38035,315,3 +2020-05-17,Grand Forks,North Dakota,38035,317,3 +2020-05-18,Grand Forks,North Dakota,38035,317,3 +2020-05-19,Grand Forks,North Dakota,38035,317,3 +2020-05-20,Grand Forks,North Dakota,38035,319,3 +2020-05-21,Grand Forks,North Dakota,38035,320,3 +2020-05-22,Grand Forks,North Dakota,38035,320,3 +2020-05-23,Grand Forks,North Dakota,38035,321,3 +2020-05-24,Grand Forks,North Dakota,38035,323,3 +2020-05-25,Grand Forks,North Dakota,38035,325,3 +2020-05-26,Grand Forks,North Dakota,38035,326,3 +2020-05-27,Grand Forks,North Dakota,38035,327,3 +2020-05-28,Grand Forks,North Dakota,38035,328,3 +2020-05-29,Grand Forks,North Dakota,38035,331,3 +2020-05-30,Grand Forks,North Dakota,38035,333,3 +2020-05-31,Grand Forks,North Dakota,38035,333,3 +2020-06-01,Grand Forks,North Dakota,38035,336,3 +2020-06-02,Grand Forks,North Dakota,38035,335,3 +2020-06-03,Grand Forks,North Dakota,38035,336,3 +2020-06-04,Grand Forks,North Dakota,38035,336,3 +2020-06-05,Grand Forks,North Dakota,38035,336,4 +2020-06-06,Grand Forks,North Dakota,38035,336,4 +2020-06-07,Grand Forks,North Dakota,38035,337,4 +2020-06-08,Grand Forks,North Dakota,38035,339,4 +2020-06-09,Grand Forks,North Dakota,38035,339,4 +2020-06-10,Grand Forks,North Dakota,38035,339,4 +2020-06-11,Grand Forks,North Dakota,38035,339,4 +2020-06-12,Grand Forks,North Dakota,38035,341,4 +2020-06-13,Grand Forks,North Dakota,38035,342,4 +2020-06-14,Grand Forks,North Dakota,38035,343,4 +2020-06-15,Grand Forks,North Dakota,38035,345,4 +2020-06-16,Grand Forks,North Dakota,38035,346,4 +2020-06-17,Grand Forks,North Dakota,38035,350,4 +2020-06-18,Grand Forks,North Dakota,38035,356,4 +2020-06-19,Grand Forks,North Dakota,38035,358,4 +2020-06-20,Grand Forks,North Dakota,38035,361,4 +2020-06-21,Grand Forks,North Dakota,38035,361,4 +2020-06-22,Grand Forks,North Dakota,38035,365,4 +2020-06-23,Grand Forks,North Dakota,38035,365,4 +2020-06-24,Grand Forks,North Dakota,38035,366,4 +2020-06-25,Grand Forks,North Dakota,38035,373,4 +2020-06-26,Grand Forks,North Dakota,38035,376,4 +2020-06-27,Grand Forks,North Dakota,38035,379,4 +2020-06-28,Grand Forks,North Dakota,38035,384,4 +2020-06-29,Grand Forks,North Dakota,38035,385,4 +2020-06-30,Grand Forks,North Dakota,38035,385,4 +2020-07-01,Grand Forks,North Dakota,38035,387,4 +2020-07-02,Grand Forks,North Dakota,38035,390,4 +2020-07-03,Grand Forks,North Dakota,38035,397,4 +2020-07-04,Grand Forks,North Dakota,38035,402,4 +2020-07-05,Grand Forks,North Dakota,38035,403,4 +2020-07-06,Grand Forks,North Dakota,38035,406,4 +2020-07-07,Grand Forks,North Dakota,38035,408,4 +2020-07-08,Grand Forks,North Dakota,38035,411,4 +2020-07-09,Grand Forks,North Dakota,38035,412,4 +2020-03-31,Grant,North Dakota,38037,1,0 +2020-04-01,Grant,North Dakota,38037,1,0 +2020-04-02,Grant,North Dakota,38037,1,0 +2020-04-03,Grant,North Dakota,38037,1,0 +2020-04-04,Grant,North Dakota,38037,1,0 +2020-04-05,Grant,North Dakota,38037,1,0 +2020-04-06,Grant,North Dakota,38037,1,0 +2020-04-07,Grant,North Dakota,38037,1,0 +2020-04-08,Grant,North Dakota,38037,1,0 +2020-04-09,Grant,North Dakota,38037,1,0 +2020-04-10,Grant,North Dakota,38037,1,0 +2020-04-11,Grant,North Dakota,38037,1,0 +2020-04-12,Grant,North Dakota,38037,1,0 +2020-04-13,Grant,North Dakota,38037,1,0 +2020-04-14,Grant,North Dakota,38037,1,0 +2020-04-15,Grant,North Dakota,38037,1,0 +2020-04-16,Grant,North Dakota,38037,1,0 +2020-04-17,Grant,North Dakota,38037,1,0 +2020-04-18,Grant,North Dakota,38037,1,0 +2020-04-19,Grant,North Dakota,38037,1,0 +2020-04-20,Grant,North Dakota,38037,1,0 +2020-04-21,Grant,North Dakota,38037,1,0 +2020-04-22,Grant,North Dakota,38037,1,0 +2020-04-23,Grant,North Dakota,38037,1,0 +2020-04-24,Grant,North Dakota,38037,1,0 +2020-04-25,Grant,North Dakota,38037,1,0 +2020-04-26,Grant,North Dakota,38037,1,0 +2020-04-27,Grant,North Dakota,38037,1,0 +2020-04-28,Grant,North Dakota,38037,1,0 +2020-04-29,Grant,North Dakota,38037,1,0 +2020-04-30,Grant,North Dakota,38037,1,0 +2020-05-01,Grant,North Dakota,38037,1,0 +2020-05-02,Grant,North Dakota,38037,1,0 +2020-05-03,Grant,North Dakota,38037,1,0 +2020-05-04,Grant,North Dakota,38037,1,0 +2020-05-05,Grant,North Dakota,38037,1,0 +2020-05-06,Grant,North Dakota,38037,1,0 +2020-05-07,Grant,North Dakota,38037,1,0 +2020-05-08,Grant,North Dakota,38037,1,0 +2020-05-09,Grant,North Dakota,38037,1,0 +2020-05-10,Grant,North Dakota,38037,1,0 +2020-05-11,Grant,North Dakota,38037,2,0 +2020-05-12,Grant,North Dakota,38037,2,0 +2020-05-13,Grant,North Dakota,38037,2,0 +2020-05-14,Grant,North Dakota,38037,2,0 +2020-05-15,Grant,North Dakota,38037,2,0 +2020-05-16,Grant,North Dakota,38037,2,0 +2020-05-17,Grant,North Dakota,38037,2,0 +2020-05-18,Grant,North Dakota,38037,2,0 +2020-05-19,Grant,North Dakota,38037,2,0 +2020-05-20,Grant,North Dakota,38037,2,0 +2020-05-21,Grant,North Dakota,38037,2,0 +2020-05-22,Grant,North Dakota,38037,2,0 +2020-05-23,Grant,North Dakota,38037,2,0 +2020-05-24,Grant,North Dakota,38037,2,0 +2020-05-25,Grant,North Dakota,38037,2,0 +2020-05-26,Grant,North Dakota,38037,2,0 +2020-05-27,Grant,North Dakota,38037,2,0 +2020-05-28,Grant,North Dakota,38037,2,0 +2020-05-29,Grant,North Dakota,38037,2,0 +2020-05-30,Grant,North Dakota,38037,2,0 +2020-05-31,Grant,North Dakota,38037,2,0 +2020-06-01,Grant,North Dakota,38037,2,0 +2020-06-02,Grant,North Dakota,38037,2,0 +2020-06-03,Grant,North Dakota,38037,2,0 +2020-06-04,Grant,North Dakota,38037,2,0 +2020-06-05,Grant,North Dakota,38037,2,0 +2020-06-06,Grant,North Dakota,38037,2,0 +2020-06-07,Grant,North Dakota,38037,2,0 +2020-06-08,Grant,North Dakota,38037,2,0 +2020-06-09,Grant,North Dakota,38037,2,0 +2020-06-10,Grant,North Dakota,38037,2,0 +2020-06-11,Grant,North Dakota,38037,2,0 +2020-06-12,Grant,North Dakota,38037,2,0 +2020-06-13,Grant,North Dakota,38037,2,0 +2020-06-14,Grant,North Dakota,38037,2,0 +2020-06-15,Grant,North Dakota,38037,2,0 +2020-06-16,Grant,North Dakota,38037,2,0 +2020-06-17,Grant,North Dakota,38037,2,0 +2020-06-18,Grant,North Dakota,38037,2,0 +2020-06-19,Grant,North Dakota,38037,2,0 +2020-06-20,Grant,North Dakota,38037,2,0 +2020-06-21,Grant,North Dakota,38037,2,0 +2020-06-22,Grant,North Dakota,38037,2,0 +2020-06-23,Grant,North Dakota,38037,2,0 +2020-06-24,Grant,North Dakota,38037,2,0 +2020-06-25,Grant,North Dakota,38037,2,0 +2020-06-26,Grant,North Dakota,38037,2,0 +2020-06-27,Grant,North Dakota,38037,2,0 +2020-06-28,Grant,North Dakota,38037,3,0 +2020-06-29,Grant,North Dakota,38037,3,0 +2020-06-30,Grant,North Dakota,38037,3,0 +2020-07-01,Grant,North Dakota,38037,3,0 +2020-07-02,Grant,North Dakota,38037,3,0 +2020-07-03,Grant,North Dakota,38037,3,0 +2020-07-04,Grant,North Dakota,38037,3,0 +2020-07-05,Grant,North Dakota,38037,3,0 +2020-07-06,Grant,North Dakota,38037,3,0 +2020-07-07,Grant,North Dakota,38037,3,0 +2020-07-08,Grant,North Dakota,38037,3,0 +2020-07-09,Grant,North Dakota,38037,3,0 +2020-05-22,Griggs,North Dakota,38039,1,0 +2020-05-23,Griggs,North Dakota,38039,1,0 +2020-05-24,Griggs,North Dakota,38039,1,0 +2020-05-25,Griggs,North Dakota,38039,1,0 +2020-05-26,Griggs,North Dakota,38039,1,0 +2020-05-27,Griggs,North Dakota,38039,1,0 +2020-05-28,Griggs,North Dakota,38039,1,0 +2020-05-29,Griggs,North Dakota,38039,1,0 +2020-05-30,Griggs,North Dakota,38039,1,0 +2020-05-31,Griggs,North Dakota,38039,1,0 +2020-06-01,Griggs,North Dakota,38039,1,0 +2020-06-02,Griggs,North Dakota,38039,1,0 +2020-06-03,Griggs,North Dakota,38039,1,0 +2020-06-04,Griggs,North Dakota,38039,1,0 +2020-06-05,Griggs,North Dakota,38039,1,0 +2020-06-06,Griggs,North Dakota,38039,1,0 +2020-06-07,Griggs,North Dakota,38039,1,0 +2020-06-08,Griggs,North Dakota,38039,1,0 +2020-06-09,Griggs,North Dakota,38039,1,0 +2020-06-10,Griggs,North Dakota,38039,1,0 +2020-06-11,Griggs,North Dakota,38039,1,0 +2020-06-12,Griggs,North Dakota,38039,1,0 +2020-06-13,Griggs,North Dakota,38039,1,0 +2020-06-14,Griggs,North Dakota,38039,1,0 +2020-06-15,Griggs,North Dakota,38039,1,0 +2020-06-16,Griggs,North Dakota,38039,1,0 +2020-06-17,Griggs,North Dakota,38039,1,0 +2020-06-18,Griggs,North Dakota,38039,1,0 +2020-06-19,Griggs,North Dakota,38039,1,0 +2020-06-20,Griggs,North Dakota,38039,1,0 +2020-06-21,Griggs,North Dakota,38039,2,0 +2020-06-22,Griggs,North Dakota,38039,2,0 +2020-06-23,Griggs,North Dakota,38039,2,0 +2020-06-24,Griggs,North Dakota,38039,2,0 +2020-06-25,Griggs,North Dakota,38039,2,0 +2020-06-26,Griggs,North Dakota,38039,2,0 +2020-06-27,Griggs,North Dakota,38039,2,0 +2020-06-28,Griggs,North Dakota,38039,2,0 +2020-06-29,Griggs,North Dakota,38039,2,0 +2020-06-30,Griggs,North Dakota,38039,2,0 +2020-07-01,Griggs,North Dakota,38039,2,0 +2020-07-02,Griggs,North Dakota,38039,2,0 +2020-07-03,Griggs,North Dakota,38039,2,0 +2020-07-04,Griggs,North Dakota,38039,2,0 +2020-07-05,Griggs,North Dakota,38039,2,0 +2020-07-06,Griggs,North Dakota,38039,2,0 +2020-07-07,Griggs,North Dakota,38039,2,0 +2020-07-08,Griggs,North Dakota,38039,2,0 +2020-07-09,Griggs,North Dakota,38039,2,0 +2020-06-26,Hettinger,North Dakota,38041,1,0 +2020-06-27,Hettinger,North Dakota,38041,1,0 +2020-06-28,Hettinger,North Dakota,38041,1,0 +2020-06-29,Hettinger,North Dakota,38041,1,0 +2020-06-30,Hettinger,North Dakota,38041,1,0 +2020-07-01,Hettinger,North Dakota,38041,1,0 +2020-07-02,Hettinger,North Dakota,38041,1,0 +2020-07-03,Hettinger,North Dakota,38041,1,0 +2020-07-04,Hettinger,North Dakota,38041,1,0 +2020-07-05,Hettinger,North Dakota,38041,1,0 +2020-07-06,Hettinger,North Dakota,38041,1,0 +2020-07-07,Hettinger,North Dakota,38041,1,0 +2020-07-08,Hettinger,North Dakota,38041,1,0 +2020-07-09,Hettinger,North Dakota,38041,1,0 +2020-06-09,Kidder,North Dakota,38043,1,0 +2020-06-10,Kidder,North Dakota,38043,2,0 +2020-06-11,Kidder,North Dakota,38043,2,0 +2020-06-12,Kidder,North Dakota,38043,2,0 +2020-06-13,Kidder,North Dakota,38043,2,0 +2020-06-14,Kidder,North Dakota,38043,2,0 +2020-06-15,Kidder,North Dakota,38043,2,0 +2020-06-16,Kidder,North Dakota,38043,2,0 +2020-06-17,Kidder,North Dakota,38043,2,0 +2020-06-18,Kidder,North Dakota,38043,2,0 +2020-06-19,Kidder,North Dakota,38043,2,0 +2020-06-20,Kidder,North Dakota,38043,2,0 +2020-06-21,Kidder,North Dakota,38043,2,0 +2020-06-22,Kidder,North Dakota,38043,2,0 +2020-06-23,Kidder,North Dakota,38043,2,0 +2020-06-24,Kidder,North Dakota,38043,2,0 +2020-06-25,Kidder,North Dakota,38043,2,0 +2020-06-26,Kidder,North Dakota,38043,2,0 +2020-06-27,Kidder,North Dakota,38043,2,0 +2020-06-28,Kidder,North Dakota,38043,2,0 +2020-06-29,Kidder,North Dakota,38043,2,0 +2020-06-30,Kidder,North Dakota,38043,2,0 +2020-07-01,Kidder,North Dakota,38043,2,0 +2020-07-02,Kidder,North Dakota,38043,2,0 +2020-07-03,Kidder,North Dakota,38043,2,0 +2020-07-04,Kidder,North Dakota,38043,2,0 +2020-07-05,Kidder,North Dakota,38043,2,0 +2020-07-06,Kidder,North Dakota,38043,2,0 +2020-07-07,Kidder,North Dakota,38043,2,0 +2020-07-08,Kidder,North Dakota,38043,2,0 +2020-07-09,Kidder,North Dakota,38043,2,0 +2020-06-06,LaMoure,North Dakota,38045,1,0 +2020-06-07,LaMoure,North Dakota,38045,1,0 +2020-06-08,LaMoure,North Dakota,38045,1,0 +2020-06-09,LaMoure,North Dakota,38045,1,0 +2020-06-10,LaMoure,North Dakota,38045,6,0 +2020-06-11,LaMoure,North Dakota,38045,6,0 +2020-06-12,LaMoure,North Dakota,38045,8,0 +2020-06-13,LaMoure,North Dakota,38045,9,0 +2020-06-14,LaMoure,North Dakota,38045,10,0 +2020-06-15,LaMoure,North Dakota,38045,10,0 +2020-06-16,LaMoure,North Dakota,38045,10,0 +2020-06-17,LaMoure,North Dakota,38045,10,0 +2020-06-18,LaMoure,North Dakota,38045,10,0 +2020-06-19,LaMoure,North Dakota,38045,10,0 +2020-06-20,LaMoure,North Dakota,38045,10,0 +2020-06-21,LaMoure,North Dakota,38045,11,0 +2020-06-22,LaMoure,North Dakota,38045,11,0 +2020-06-23,LaMoure,North Dakota,38045,11,0 +2020-06-24,LaMoure,North Dakota,38045,11,0 +2020-06-25,LaMoure,North Dakota,38045,11,0 +2020-06-26,LaMoure,North Dakota,38045,11,0 +2020-06-27,LaMoure,North Dakota,38045,13,0 +2020-06-28,LaMoure,North Dakota,38045,13,0 +2020-06-29,LaMoure,North Dakota,38045,13,0 +2020-06-30,LaMoure,North Dakota,38045,13,0 +2020-07-01,LaMoure,North Dakota,38045,13,0 +2020-07-02,LaMoure,North Dakota,38045,13,0 +2020-07-03,LaMoure,North Dakota,38045,13,0 +2020-07-04,LaMoure,North Dakota,38045,13,0 +2020-07-05,LaMoure,North Dakota,38045,13,0 +2020-07-06,LaMoure,North Dakota,38045,13,0 +2020-07-07,LaMoure,North Dakota,38045,13,0 +2020-07-08,LaMoure,North Dakota,38045,13,0 +2020-07-09,LaMoure,North Dakota,38045,13,0 +2020-07-08,Logan,North Dakota,38047,1,0 +2020-03-26,McHenry,North Dakota,38049,1,0 +2020-03-27,McHenry,North Dakota,38049,1,0 +2020-03-28,McHenry,North Dakota,38049,1,0 +2020-03-29,McHenry,North Dakota,38049,1,0 +2020-03-30,McHenry,North Dakota,38049,1,1 +2020-03-31,McHenry,North Dakota,38049,1,1 +2020-04-01,McHenry,North Dakota,38049,1,1 +2020-04-02,McHenry,North Dakota,38049,1,1 +2020-04-03,McHenry,North Dakota,38049,1,1 +2020-04-04,McHenry,North Dakota,38049,1,1 +2020-04-05,McHenry,North Dakota,38049,1,1 +2020-04-06,McHenry,North Dakota,38049,1,1 +2020-04-07,McHenry,North Dakota,38049,1,1 +2020-04-08,McHenry,North Dakota,38049,1,1 +2020-04-09,McHenry,North Dakota,38049,1,1 +2020-04-10,McHenry,North Dakota,38049,1,1 +2020-04-11,McHenry,North Dakota,38049,1,1 +2020-04-12,McHenry,North Dakota,38049,1,1 +2020-04-13,McHenry,North Dakota,38049,1,1 +2020-04-14,McHenry,North Dakota,38049,1,1 +2020-04-15,McHenry,North Dakota,38049,1,1 +2020-04-16,McHenry,North Dakota,38049,1,1 +2020-04-17,McHenry,North Dakota,38049,1,1 +2020-04-18,McHenry,North Dakota,38049,1,1 +2020-04-19,McHenry,North Dakota,38049,1,1 +2020-04-20,McHenry,North Dakota,38049,1,1 +2020-04-21,McHenry,North Dakota,38049,1,1 +2020-04-22,McHenry,North Dakota,38049,1,1 +2020-04-23,McHenry,North Dakota,38049,1,1 +2020-04-24,McHenry,North Dakota,38049,1,1 +2020-04-25,McHenry,North Dakota,38049,1,1 +2020-04-26,McHenry,North Dakota,38049,1,1 +2020-04-27,McHenry,North Dakota,38049,1,1 +2020-04-28,McHenry,North Dakota,38049,1,1 +2020-04-29,McHenry,North Dakota,38049,1,1 +2020-04-30,McHenry,North Dakota,38049,1,1 +2020-05-01,McHenry,North Dakota,38049,1,1 +2020-05-02,McHenry,North Dakota,38049,1,1 +2020-05-03,McHenry,North Dakota,38049,1,1 +2020-05-04,McHenry,North Dakota,38049,1,1 +2020-05-05,McHenry,North Dakota,38049,1,1 +2020-05-06,McHenry,North Dakota,38049,1,1 +2020-05-07,McHenry,North Dakota,38049,1,1 +2020-05-08,McHenry,North Dakota,38049,1,1 +2020-05-09,McHenry,North Dakota,38049,2,1 +2020-05-10,McHenry,North Dakota,38049,2,1 +2020-05-11,McHenry,North Dakota,38049,2,1 +2020-05-12,McHenry,North Dakota,38049,2,1 +2020-05-13,McHenry,North Dakota,38049,2,1 +2020-05-14,McHenry,North Dakota,38049,2,1 +2020-05-15,McHenry,North Dakota,38049,2,1 +2020-05-16,McHenry,North Dakota,38049,2,1 +2020-05-17,McHenry,North Dakota,38049,2,1 +2020-05-18,McHenry,North Dakota,38049,2,1 +2020-05-19,McHenry,North Dakota,38049,2,1 +2020-05-20,McHenry,North Dakota,38049,2,1 +2020-05-21,McHenry,North Dakota,38049,2,1 +2020-05-22,McHenry,North Dakota,38049,2,1 +2020-05-23,McHenry,North Dakota,38049,2,1 +2020-05-24,McHenry,North Dakota,38049,2,1 +2020-05-25,McHenry,North Dakota,38049,2,1 +2020-05-26,McHenry,North Dakota,38049,2,1 +2020-05-27,McHenry,North Dakota,38049,2,1 +2020-05-28,McHenry,North Dakota,38049,2,1 +2020-05-29,McHenry,North Dakota,38049,2,1 +2020-05-30,McHenry,North Dakota,38049,2,1 +2020-05-31,McHenry,North Dakota,38049,2,1 +2020-06-01,McHenry,North Dakota,38049,2,1 +2020-06-02,McHenry,North Dakota,38049,2,1 +2020-06-03,McHenry,North Dakota,38049,2,1 +2020-06-04,McHenry,North Dakota,38049,2,1 +2020-06-05,McHenry,North Dakota,38049,2,1 +2020-06-06,McHenry,North Dakota,38049,2,1 +2020-06-07,McHenry,North Dakota,38049,2,1 +2020-06-08,McHenry,North Dakota,38049,2,1 +2020-06-09,McHenry,North Dakota,38049,2,1 +2020-06-10,McHenry,North Dakota,38049,2,1 +2020-06-11,McHenry,North Dakota,38049,2,1 +2020-06-12,McHenry,North Dakota,38049,2,1 +2020-06-13,McHenry,North Dakota,38049,2,1 +2020-06-14,McHenry,North Dakota,38049,2,1 +2020-06-15,McHenry,North Dakota,38049,2,1 +2020-06-16,McHenry,North Dakota,38049,2,1 +2020-06-17,McHenry,North Dakota,38049,2,1 +2020-06-18,McHenry,North Dakota,38049,2,1 +2020-06-19,McHenry,North Dakota,38049,3,1 +2020-06-20,McHenry,North Dakota,38049,3,1 +2020-06-21,McHenry,North Dakota,38049,3,1 +2020-06-22,McHenry,North Dakota,38049,3,1 +2020-06-23,McHenry,North Dakota,38049,3,1 +2020-06-24,McHenry,North Dakota,38049,3,1 +2020-06-25,McHenry,North Dakota,38049,3,1 +2020-06-26,McHenry,North Dakota,38049,3,1 +2020-06-27,McHenry,North Dakota,38049,3,1 +2020-06-28,McHenry,North Dakota,38049,3,1 +2020-06-29,McHenry,North Dakota,38049,3,1 +2020-06-30,McHenry,North Dakota,38049,3,1 +2020-07-01,McHenry,North Dakota,38049,3,1 +2020-07-02,McHenry,North Dakota,38049,4,1 +2020-07-03,McHenry,North Dakota,38049,4,1 +2020-07-04,McHenry,North Dakota,38049,5,1 +2020-07-05,McHenry,North Dakota,38049,5,1 +2020-07-06,McHenry,North Dakota,38049,5,1 +2020-07-07,McHenry,North Dakota,38049,5,1 +2020-07-08,McHenry,North Dakota,38049,6,1 +2020-07-09,McHenry,North Dakota,38049,6,1 +2020-03-26,McIntosh,North Dakota,38051,1,0 +2020-03-27,McIntosh,North Dakota,38051,1,0 +2020-03-28,McIntosh,North Dakota,38051,1,0 +2020-03-29,McIntosh,North Dakota,38051,1,0 +2020-03-30,McIntosh,North Dakota,38051,1,0 +2020-03-31,McIntosh,North Dakota,38051,1,0 +2020-04-01,McIntosh,North Dakota,38051,1,0 +2020-04-02,McIntosh,North Dakota,38051,1,0 +2020-04-03,McIntosh,North Dakota,38051,1,0 +2020-04-04,McIntosh,North Dakota,38051,1,0 +2020-04-05,McIntosh,North Dakota,38051,1,0 +2020-04-06,McIntosh,North Dakota,38051,1,0 +2020-04-07,McIntosh,North Dakota,38051,1,0 +2020-04-08,McIntosh,North Dakota,38051,1,0 +2020-04-09,McIntosh,North Dakota,38051,1,0 +2020-04-10,McIntosh,North Dakota,38051,1,0 +2020-04-11,McIntosh,North Dakota,38051,1,0 +2020-04-12,McIntosh,North Dakota,38051,1,0 +2020-04-13,McIntosh,North Dakota,38051,1,0 +2020-04-14,McIntosh,North Dakota,38051,1,0 +2020-04-15,McIntosh,North Dakota,38051,1,0 +2020-04-16,McIntosh,North Dakota,38051,1,0 +2020-04-17,McIntosh,North Dakota,38051,1,0 +2020-04-18,McIntosh,North Dakota,38051,1,0 +2020-04-19,McIntosh,North Dakota,38051,1,0 +2020-04-20,McIntosh,North Dakota,38051,1,0 +2020-04-21,McIntosh,North Dakota,38051,1,0 +2020-04-22,McIntosh,North Dakota,38051,1,0 +2020-04-23,McIntosh,North Dakota,38051,1,0 +2020-04-24,McIntosh,North Dakota,38051,1,0 +2020-04-25,McIntosh,North Dakota,38051,1,0 +2020-04-26,McIntosh,North Dakota,38051,1,0 +2020-04-27,McIntosh,North Dakota,38051,1,0 +2020-04-28,McIntosh,North Dakota,38051,1,0 +2020-04-29,McIntosh,North Dakota,38051,1,0 +2020-04-30,McIntosh,North Dakota,38051,1,0 +2020-05-01,McIntosh,North Dakota,38051,1,0 +2020-05-02,McIntosh,North Dakota,38051,1,0 +2020-05-03,McIntosh,North Dakota,38051,1,0 +2020-05-04,McIntosh,North Dakota,38051,1,0 +2020-05-05,McIntosh,North Dakota,38051,1,0 +2020-05-06,McIntosh,North Dakota,38051,1,0 +2020-05-07,McIntosh,North Dakota,38051,1,0 +2020-05-08,McIntosh,North Dakota,38051,1,0 +2020-05-09,McIntosh,North Dakota,38051,1,0 +2020-05-10,McIntosh,North Dakota,38051,1,0 +2020-05-11,McIntosh,North Dakota,38051,1,0 +2020-05-12,McIntosh,North Dakota,38051,1,0 +2020-05-13,McIntosh,North Dakota,38051,1,0 +2020-05-14,McIntosh,North Dakota,38051,1,0 +2020-05-15,McIntosh,North Dakota,38051,1,0 +2020-05-16,McIntosh,North Dakota,38051,1,0 +2020-05-17,McIntosh,North Dakota,38051,1,0 +2020-05-18,McIntosh,North Dakota,38051,1,0 +2020-05-19,McIntosh,North Dakota,38051,1,0 +2020-05-20,McIntosh,North Dakota,38051,1,0 +2020-05-21,McIntosh,North Dakota,38051,1,0 +2020-05-22,McIntosh,North Dakota,38051,1,0 +2020-05-23,McIntosh,North Dakota,38051,1,0 +2020-05-24,McIntosh,North Dakota,38051,1,0 +2020-05-25,McIntosh,North Dakota,38051,1,0 +2020-05-26,McIntosh,North Dakota,38051,1,0 +2020-05-27,McIntosh,North Dakota,38051,1,0 +2020-05-28,McIntosh,North Dakota,38051,1,0 +2020-05-29,McIntosh,North Dakota,38051,1,0 +2020-05-30,McIntosh,North Dakota,38051,1,0 +2020-05-31,McIntosh,North Dakota,38051,1,0 +2020-06-01,McIntosh,North Dakota,38051,1,0 +2020-06-02,McIntosh,North Dakota,38051,1,0 +2020-06-03,McIntosh,North Dakota,38051,1,0 +2020-06-04,McIntosh,North Dakota,38051,1,0 +2020-06-05,McIntosh,North Dakota,38051,1,0 +2020-06-06,McIntosh,North Dakota,38051,1,0 +2020-06-07,McIntosh,North Dakota,38051,1,0 +2020-06-08,McIntosh,North Dakota,38051,1,0 +2020-06-09,McIntosh,North Dakota,38051,1,0 +2020-06-10,McIntosh,North Dakota,38051,1,0 +2020-06-11,McIntosh,North Dakota,38051,1,0 +2020-06-12,McIntosh,North Dakota,38051,1,0 +2020-06-13,McIntosh,North Dakota,38051,1,0 +2020-06-14,McIntosh,North Dakota,38051,1,0 +2020-06-15,McIntosh,North Dakota,38051,1,0 +2020-06-16,McIntosh,North Dakota,38051,1,0 +2020-06-17,McIntosh,North Dakota,38051,1,0 +2020-06-18,McIntosh,North Dakota,38051,1,0 +2020-06-19,McIntosh,North Dakota,38051,1,0 +2020-06-20,McIntosh,North Dakota,38051,1,0 +2020-06-21,McIntosh,North Dakota,38051,1,0 +2020-06-22,McIntosh,North Dakota,38051,1,0 +2020-06-23,McIntosh,North Dakota,38051,1,0 +2020-06-24,McIntosh,North Dakota,38051,1,0 +2020-06-25,McIntosh,North Dakota,38051,1,0 +2020-06-26,McIntosh,North Dakota,38051,1,0 +2020-06-27,McIntosh,North Dakota,38051,1,0 +2020-06-28,McIntosh,North Dakota,38051,2,0 +2020-06-29,McIntosh,North Dakota,38051,2,0 +2020-06-30,McIntosh,North Dakota,38051,2,0 +2020-07-01,McIntosh,North Dakota,38051,2,0 +2020-07-02,McIntosh,North Dakota,38051,2,0 +2020-07-03,McIntosh,North Dakota,38051,2,0 +2020-07-04,McIntosh,North Dakota,38051,2,0 +2020-07-05,McIntosh,North Dakota,38051,2,0 +2020-07-06,McIntosh,North Dakota,38051,2,0 +2020-07-07,McIntosh,North Dakota,38051,2,0 +2020-07-08,McIntosh,North Dakota,38051,3,0 +2020-07-09,McIntosh,North Dakota,38051,4,0 +2020-03-31,McKenzie,North Dakota,38053,1,0 +2020-04-01,McKenzie,North Dakota,38053,2,0 +2020-04-02,McKenzie,North Dakota,38053,2,0 +2020-04-03,McKenzie,North Dakota,38053,2,0 +2020-04-04,McKenzie,North Dakota,38053,2,0 +2020-04-05,McKenzie,North Dakota,38053,3,0 +2020-04-06,McKenzie,North Dakota,38053,3,0 +2020-04-07,McKenzie,North Dakota,38053,5,0 +2020-04-08,McKenzie,North Dakota,38053,5,0 +2020-04-09,McKenzie,North Dakota,38053,6,0 +2020-04-10,McKenzie,North Dakota,38053,6,0 +2020-04-11,McKenzie,North Dakota,38053,6,0 +2020-04-12,McKenzie,North Dakota,38053,6,0 +2020-04-13,McKenzie,North Dakota,38053,8,0 +2020-04-14,McKenzie,North Dakota,38053,8,0 +2020-04-15,McKenzie,North Dakota,38053,9,0 +2020-04-16,McKenzie,North Dakota,38053,10,0 +2020-04-17,McKenzie,North Dakota,38053,10,0 +2020-04-18,McKenzie,North Dakota,38053,10,0 +2020-04-19,McKenzie,North Dakota,38053,10,0 +2020-04-20,McKenzie,North Dakota,38053,10,0 +2020-04-21,McKenzie,North Dakota,38053,10,0 +2020-04-22,McKenzie,North Dakota,38053,10,0 +2020-04-23,McKenzie,North Dakota,38053,10,0 +2020-04-24,McKenzie,North Dakota,38053,10,0 +2020-04-25,McKenzie,North Dakota,38053,12,0 +2020-04-26,McKenzie,North Dakota,38053,12,0 +2020-04-27,McKenzie,North Dakota,38053,12,0 +2020-04-28,McKenzie,North Dakota,38053,12,0 +2020-04-29,McKenzie,North Dakota,38053,13,0 +2020-04-30,McKenzie,North Dakota,38053,13,0 +2020-05-01,McKenzie,North Dakota,38053,13,0 +2020-05-02,McKenzie,North Dakota,38053,13,0 +2020-05-03,McKenzie,North Dakota,38053,13,0 +2020-05-04,McKenzie,North Dakota,38053,13,0 +2020-05-05,McKenzie,North Dakota,38053,13,0 +2020-05-06,McKenzie,North Dakota,38053,13,0 +2020-05-07,McKenzie,North Dakota,38053,15,0 +2020-05-08,McKenzie,North Dakota,38053,15,0 +2020-05-09,McKenzie,North Dakota,38053,15,0 +2020-05-10,McKenzie,North Dakota,38053,15,0 +2020-05-11,McKenzie,North Dakota,38053,15,0 +2020-05-12,McKenzie,North Dakota,38053,15,0 +2020-05-13,McKenzie,North Dakota,38053,15,0 +2020-05-14,McKenzie,North Dakota,38053,15,0 +2020-05-15,McKenzie,North Dakota,38053,15,0 +2020-05-16,McKenzie,North Dakota,38053,15,0 +2020-05-17,McKenzie,North Dakota,38053,15,0 +2020-05-18,McKenzie,North Dakota,38053,15,0 +2020-05-19,McKenzie,North Dakota,38053,16,0 +2020-05-20,McKenzie,North Dakota,38053,16,0 +2020-05-21,McKenzie,North Dakota,38053,16,0 +2020-05-22,McKenzie,North Dakota,38053,16,0 +2020-05-23,McKenzie,North Dakota,38053,16,0 +2020-05-24,McKenzie,North Dakota,38053,16,0 +2020-05-25,McKenzie,North Dakota,38053,16,0 +2020-05-26,McKenzie,North Dakota,38053,16,0 +2020-05-27,McKenzie,North Dakota,38053,16,0 +2020-05-28,McKenzie,North Dakota,38053,16,0 +2020-05-29,McKenzie,North Dakota,38053,16,0 +2020-05-30,McKenzie,North Dakota,38053,17,0 +2020-05-31,McKenzie,North Dakota,38053,17,0 +2020-06-01,McKenzie,North Dakota,38053,17,0 +2020-06-02,McKenzie,North Dakota,38053,17,0 +2020-06-03,McKenzie,North Dakota,38053,17,0 +2020-06-04,McKenzie,North Dakota,38053,17,0 +2020-06-05,McKenzie,North Dakota,38053,18,0 +2020-06-06,McKenzie,North Dakota,38053,18,0 +2020-06-07,McKenzie,North Dakota,38053,18,0 +2020-06-08,McKenzie,North Dakota,38053,18,0 +2020-06-09,McKenzie,North Dakota,38053,18,0 +2020-06-10,McKenzie,North Dakota,38053,18,0 +2020-06-11,McKenzie,North Dakota,38053,21,0 +2020-06-12,McKenzie,North Dakota,38053,21,0 +2020-06-13,McKenzie,North Dakota,38053,21,0 +2020-06-14,McKenzie,North Dakota,38053,21,0 +2020-06-15,McKenzie,North Dakota,38053,21,0 +2020-06-16,McKenzie,North Dakota,38053,21,0 +2020-06-17,McKenzie,North Dakota,38053,22,0 +2020-06-18,McKenzie,North Dakota,38053,22,0 +2020-06-19,McKenzie,North Dakota,38053,23,0 +2020-06-20,McKenzie,North Dakota,38053,24,0 +2020-06-21,McKenzie,North Dakota,38053,24,0 +2020-06-22,McKenzie,North Dakota,38053,24,0 +2020-06-23,McKenzie,North Dakota,38053,24,0 +2020-06-24,McKenzie,North Dakota,38053,25,0 +2020-06-25,McKenzie,North Dakota,38053,27,0 +2020-06-26,McKenzie,North Dakota,38053,27,0 +2020-06-27,McKenzie,North Dakota,38053,27,0 +2020-06-28,McKenzie,North Dakota,38053,27,0 +2020-06-29,McKenzie,North Dakota,38053,27,0 +2020-06-30,McKenzie,North Dakota,38053,27,0 +2020-07-01,McKenzie,North Dakota,38053,27,0 +2020-07-02,McKenzie,North Dakota,38053,27,0 +2020-07-03,McKenzie,North Dakota,38053,27,0 +2020-07-04,McKenzie,North Dakota,38053,27,0 +2020-07-05,McKenzie,North Dakota,38053,27,0 +2020-07-06,McKenzie,North Dakota,38053,27,0 +2020-07-07,McKenzie,North Dakota,38053,28,0 +2020-07-08,McKenzie,North Dakota,38053,29,0 +2020-07-09,McKenzie,North Dakota,38053,31,0 +2020-03-28,McLean,North Dakota,38055,2,0 +2020-03-29,McLean,North Dakota,38055,2,0 +2020-03-30,McLean,North Dakota,38055,2,0 +2020-03-31,McLean,North Dakota,38055,2,0 +2020-04-01,McLean,North Dakota,38055,2,0 +2020-04-02,McLean,North Dakota,38055,2,0 +2020-04-03,McLean,North Dakota,38055,2,0 +2020-04-04,McLean,North Dakota,38055,2,0 +2020-04-05,McLean,North Dakota,38055,2,0 +2020-04-06,McLean,North Dakota,38055,2,0 +2020-04-07,McLean,North Dakota,38055,2,0 +2020-04-08,McLean,North Dakota,38055,2,0 +2020-04-09,McLean,North Dakota,38055,2,0 +2020-04-10,McLean,North Dakota,38055,2,0 +2020-04-11,McLean,North Dakota,38055,2,0 +2020-04-12,McLean,North Dakota,38055,2,0 +2020-04-13,McLean,North Dakota,38055,2,0 +2020-04-14,McLean,North Dakota,38055,2,0 +2020-04-15,McLean,North Dakota,38055,3,0 +2020-04-16,McLean,North Dakota,38055,3,0 +2020-04-17,McLean,North Dakota,38055,3,0 +2020-04-18,McLean,North Dakota,38055,3,0 +2020-04-19,McLean,North Dakota,38055,3,0 +2020-04-20,McLean,North Dakota,38055,3,0 +2020-04-21,McLean,North Dakota,38055,3,0 +2020-04-22,McLean,North Dakota,38055,3,0 +2020-04-23,McLean,North Dakota,38055,3,0 +2020-04-24,McLean,North Dakota,38055,3,0 +2020-04-25,McLean,North Dakota,38055,3,0 +2020-04-26,McLean,North Dakota,38055,3,0 +2020-04-27,McLean,North Dakota,38055,3,0 +2020-04-28,McLean,North Dakota,38055,3,0 +2020-04-29,McLean,North Dakota,38055,3,0 +2020-04-30,McLean,North Dakota,38055,3,0 +2020-05-01,McLean,North Dakota,38055,3,0 +2020-05-02,McLean,North Dakota,38055,5,0 +2020-05-03,McLean,North Dakota,38055,5,0 +2020-05-04,McLean,North Dakota,38055,5,0 +2020-05-05,McLean,North Dakota,38055,5,0 +2020-05-06,McLean,North Dakota,38055,5,0 +2020-05-07,McLean,North Dakota,38055,5,0 +2020-05-08,McLean,North Dakota,38055,5,0 +2020-05-09,McLean,North Dakota,38055,5,0 +2020-05-10,McLean,North Dakota,38055,5,0 +2020-05-11,McLean,North Dakota,38055,5,0 +2020-05-12,McLean,North Dakota,38055,5,0 +2020-05-13,McLean,North Dakota,38055,5,0 +2020-05-14,McLean,North Dakota,38055,5,0 +2020-05-15,McLean,North Dakota,38055,5,0 +2020-05-16,McLean,North Dakota,38055,5,0 +2020-05-17,McLean,North Dakota,38055,6,0 +2020-05-18,McLean,North Dakota,38055,6,0 +2020-05-19,McLean,North Dakota,38055,7,0 +2020-05-20,McLean,North Dakota,38055,7,0 +2020-05-21,McLean,North Dakota,38055,7,0 +2020-05-22,McLean,North Dakota,38055,7,0 +2020-05-23,McLean,North Dakota,38055,7,0 +2020-05-24,McLean,North Dakota,38055,7,0 +2020-05-25,McLean,North Dakota,38055,7,0 +2020-05-26,McLean,North Dakota,38055,7,0 +2020-05-27,McLean,North Dakota,38055,7,0 +2020-05-28,McLean,North Dakota,38055,7,0 +2020-05-29,McLean,North Dakota,38055,7,0 +2020-05-30,McLean,North Dakota,38055,7,0 +2020-05-31,McLean,North Dakota,38055,7,0 +2020-06-01,McLean,North Dakota,38055,7,0 +2020-06-02,McLean,North Dakota,38055,7,0 +2020-06-03,McLean,North Dakota,38055,7,0 +2020-06-04,McLean,North Dakota,38055,7,0 +2020-06-05,McLean,North Dakota,38055,7,0 +2020-06-06,McLean,North Dakota,38055,7,0 +2020-06-07,McLean,North Dakota,38055,7,0 +2020-06-08,McLean,North Dakota,38055,7,0 +2020-06-09,McLean,North Dakota,38055,8,0 +2020-06-10,McLean,North Dakota,38055,8,0 +2020-06-11,McLean,North Dakota,38055,8,0 +2020-06-12,McLean,North Dakota,38055,9,0 +2020-06-13,McLean,North Dakota,38055,9,0 +2020-06-14,McLean,North Dakota,38055,10,0 +2020-06-15,McLean,North Dakota,38055,10,0 +2020-06-16,McLean,North Dakota,38055,11,0 +2020-06-17,McLean,North Dakota,38055,11,0 +2020-06-18,McLean,North Dakota,38055,11,0 +2020-06-19,McLean,North Dakota,38055,11,0 +2020-06-20,McLean,North Dakota,38055,11,0 +2020-06-21,McLean,North Dakota,38055,11,0 +2020-06-22,McLean,North Dakota,38055,11,0 +2020-06-23,McLean,North Dakota,38055,11,0 +2020-06-24,McLean,North Dakota,38055,11,0 +2020-06-25,McLean,North Dakota,38055,11,0 +2020-06-26,McLean,North Dakota,38055,11,0 +2020-06-27,McLean,North Dakota,38055,11,0 +2020-06-28,McLean,North Dakota,38055,11,0 +2020-06-29,McLean,North Dakota,38055,11,0 +2020-06-30,McLean,North Dakota,38055,11,0 +2020-07-01,McLean,North Dakota,38055,11,0 +2020-07-02,McLean,North Dakota,38055,11,0 +2020-07-03,McLean,North Dakota,38055,11,0 +2020-07-04,McLean,North Dakota,38055,11,0 +2020-07-05,McLean,North Dakota,38055,11,0 +2020-07-06,McLean,North Dakota,38055,11,0 +2020-07-07,McLean,North Dakota,38055,11,0 +2020-07-08,McLean,North Dakota,38055,11,0 +2020-07-09,McLean,North Dakota,38055,11,0 +2020-05-05,Mercer,North Dakota,38057,3,0 +2020-05-06,Mercer,North Dakota,38057,3,0 +2020-05-07,Mercer,North Dakota,38057,3,0 +2020-05-08,Mercer,North Dakota,38057,3,0 +2020-05-09,Mercer,North Dakota,38057,3,0 +2020-05-10,Mercer,North Dakota,38057,3,0 +2020-05-11,Mercer,North Dakota,38057,4,0 +2020-05-12,Mercer,North Dakota,38057,4,0 +2020-05-13,Mercer,North Dakota,38057,4,0 +2020-05-14,Mercer,North Dakota,38057,4,0 +2020-05-15,Mercer,North Dakota,38057,4,0 +2020-05-16,Mercer,North Dakota,38057,4,0 +2020-05-17,Mercer,North Dakota,38057,4,0 +2020-05-18,Mercer,North Dakota,38057,4,0 +2020-05-19,Mercer,North Dakota,38057,4,0 +2020-05-20,Mercer,North Dakota,38057,4,0 +2020-05-21,Mercer,North Dakota,38057,5,0 +2020-05-22,Mercer,North Dakota,38057,5,0 +2020-05-23,Mercer,North Dakota,38057,5,0 +2020-05-24,Mercer,North Dakota,38057,5,0 +2020-05-25,Mercer,North Dakota,38057,5,0 +2020-05-26,Mercer,North Dakota,38057,5,0 +2020-05-27,Mercer,North Dakota,38057,5,0 +2020-05-28,Mercer,North Dakota,38057,5,0 +2020-05-29,Mercer,North Dakota,38057,5,0 +2020-05-30,Mercer,North Dakota,38057,5,0 +2020-05-31,Mercer,North Dakota,38057,5,0 +2020-06-01,Mercer,North Dakota,38057,5,0 +2020-06-02,Mercer,North Dakota,38057,5,0 +2020-06-03,Mercer,North Dakota,38057,5,0 +2020-06-04,Mercer,North Dakota,38057,5,0 +2020-06-05,Mercer,North Dakota,38057,6,0 +2020-06-06,Mercer,North Dakota,38057,6,0 +2020-06-07,Mercer,North Dakota,38057,6,0 +2020-06-08,Mercer,North Dakota,38057,6,0 +2020-06-09,Mercer,North Dakota,38057,6,0 +2020-06-10,Mercer,North Dakota,38057,6,0 +2020-06-11,Mercer,North Dakota,38057,6,0 +2020-06-12,Mercer,North Dakota,38057,6,0 +2020-06-13,Mercer,North Dakota,38057,6,0 +2020-06-14,Mercer,North Dakota,38057,6,0 +2020-06-15,Mercer,North Dakota,38057,6,0 +2020-06-16,Mercer,North Dakota,38057,6,0 +2020-06-17,Mercer,North Dakota,38057,6,0 +2020-06-18,Mercer,North Dakota,38057,6,0 +2020-06-19,Mercer,North Dakota,38057,6,0 +2020-06-20,Mercer,North Dakota,38057,6,0 +2020-06-21,Mercer,North Dakota,38057,6,0 +2020-06-22,Mercer,North Dakota,38057,6,0 +2020-06-23,Mercer,North Dakota,38057,6,0 +2020-06-24,Mercer,North Dakota,38057,6,0 +2020-06-25,Mercer,North Dakota,38057,6,0 +2020-06-26,Mercer,North Dakota,38057,6,0 +2020-06-27,Mercer,North Dakota,38057,6,0 +2020-06-28,Mercer,North Dakota,38057,6,0 +2020-06-29,Mercer,North Dakota,38057,6,0 +2020-06-30,Mercer,North Dakota,38057,6,0 +2020-07-01,Mercer,North Dakota,38057,7,0 +2020-07-02,Mercer,North Dakota,38057,7,0 +2020-07-03,Mercer,North Dakota,38057,7,0 +2020-07-04,Mercer,North Dakota,38057,7,0 +2020-07-05,Mercer,North Dakota,38057,7,0 +2020-07-06,Mercer,North Dakota,38057,7,0 +2020-07-07,Mercer,North Dakota,38057,7,0 +2020-07-08,Mercer,North Dakota,38057,7,0 +2020-07-09,Mercer,North Dakota,38057,7,0 +2020-03-18,Morton,North Dakota,38059,2,0 +2020-03-19,Morton,North Dakota,38059,4,0 +2020-03-20,Morton,North Dakota,38059,8,0 +2020-03-21,Morton,North Dakota,38059,8,0 +2020-03-22,Morton,North Dakota,38059,8,0 +2020-03-23,Morton,North Dakota,38059,8,0 +2020-03-24,Morton,North Dakota,38059,8,0 +2020-03-25,Morton,North Dakota,38059,8,0 +2020-03-26,Morton,North Dakota,38059,8,0 +2020-03-27,Morton,North Dakota,38059,11,0 +2020-03-28,Morton,North Dakota,38059,13,0 +2020-03-29,Morton,North Dakota,38059,14,0 +2020-03-30,Morton,North Dakota,38059,14,1 +2020-03-31,Morton,North Dakota,38059,14,1 +2020-04-01,Morton,North Dakota,38059,14,1 +2020-04-02,Morton,North Dakota,38059,14,1 +2020-04-03,Morton,North Dakota,38059,16,1 +2020-04-04,Morton,North Dakota,38059,16,1 +2020-04-05,Morton,North Dakota,38059,16,1 +2020-04-06,Morton,North Dakota,38059,17,1 +2020-04-07,Morton,North Dakota,38059,18,1 +2020-04-08,Morton,North Dakota,38059,18,1 +2020-04-09,Morton,North Dakota,38059,19,1 +2020-04-10,Morton,North Dakota,38059,19,1 +2020-04-11,Morton,North Dakota,38059,19,1 +2020-04-12,Morton,North Dakota,38059,19,1 +2020-04-13,Morton,North Dakota,38059,20,2 +2020-04-14,Morton,North Dakota,38059,21,2 +2020-04-15,Morton,North Dakota,38059,21,2 +2020-04-16,Morton,North Dakota,38059,21,2 +2020-04-17,Morton,North Dakota,38059,21,2 +2020-04-18,Morton,North Dakota,38059,21,2 +2020-04-19,Morton,North Dakota,38059,22,2 +2020-04-20,Morton,North Dakota,38059,22,2 +2020-04-21,Morton,North Dakota,38059,23,2 +2020-04-22,Morton,North Dakota,38059,23,2 +2020-04-23,Morton,North Dakota,38059,23,2 +2020-04-24,Morton,North Dakota,38059,23,2 +2020-04-25,Morton,North Dakota,38059,24,2 +2020-04-26,Morton,North Dakota,38059,24,2 +2020-04-27,Morton,North Dakota,38059,24,2 +2020-04-28,Morton,North Dakota,38059,24,2 +2020-04-29,Morton,North Dakota,38059,24,2 +2020-04-30,Morton,North Dakota,38059,24,2 +2020-05-01,Morton,North Dakota,38059,24,2 +2020-05-02,Morton,North Dakota,38059,24,2 +2020-05-03,Morton,North Dakota,38059,24,2 +2020-05-04,Morton,North Dakota,38059,26,2 +2020-05-05,Morton,North Dakota,38059,35,2 +2020-05-06,Morton,North Dakota,38059,35,2 +2020-05-07,Morton,North Dakota,38059,35,2 +2020-05-08,Morton,North Dakota,38059,35,2 +2020-05-09,Morton,North Dakota,38059,35,2 +2020-05-10,Morton,North Dakota,38059,36,2 +2020-05-11,Morton,North Dakota,38059,37,2 +2020-05-12,Morton,North Dakota,38059,37,2 +2020-05-13,Morton,North Dakota,38059,38,2 +2020-05-14,Morton,North Dakota,38059,37,2 +2020-05-15,Morton,North Dakota,38059,39,2 +2020-05-16,Morton,North Dakota,38059,39,2 +2020-05-17,Morton,North Dakota,38059,40,2 +2020-05-18,Morton,North Dakota,38059,40,2 +2020-05-19,Morton,North Dakota,38059,40,2 +2020-05-20,Morton,North Dakota,38059,63,2 +2020-05-21,Morton,North Dakota,38059,64,2 +2020-05-22,Morton,North Dakota,38059,64,2 +2020-05-23,Morton,North Dakota,38059,64,2 +2020-05-24,Morton,North Dakota,38059,64,2 +2020-05-25,Morton,North Dakota,38059,64,2 +2020-05-26,Morton,North Dakota,38059,59,2 +2020-05-27,Morton,North Dakota,38059,59,2 +2020-05-28,Morton,North Dakota,38059,59,2 +2020-05-29,Morton,North Dakota,38059,59,2 +2020-05-30,Morton,North Dakota,38059,59,2 +2020-05-31,Morton,North Dakota,38059,59,2 +2020-06-01,Morton,North Dakota,38059,60,2 +2020-06-02,Morton,North Dakota,38059,60,2 +2020-06-03,Morton,North Dakota,38059,60,2 +2020-06-04,Morton,North Dakota,38059,60,2 +2020-06-05,Morton,North Dakota,38059,60,2 +2020-06-06,Morton,North Dakota,38059,60,2 +2020-06-07,Morton,North Dakota,38059,60,2 +2020-06-08,Morton,North Dakota,38059,60,2 +2020-06-09,Morton,North Dakota,38059,60,2 +2020-06-10,Morton,North Dakota,38059,60,2 +2020-06-11,Morton,North Dakota,38059,61,2 +2020-06-12,Morton,North Dakota,38059,62,2 +2020-06-13,Morton,North Dakota,38059,63,2 +2020-06-14,Morton,North Dakota,38059,65,2 +2020-06-15,Morton,North Dakota,38059,67,2 +2020-06-16,Morton,North Dakota,38059,68,2 +2020-06-17,Morton,North Dakota,38059,70,2 +2020-06-18,Morton,North Dakota,38059,70,2 +2020-06-19,Morton,North Dakota,38059,70,2 +2020-06-20,Morton,North Dakota,38059,70,2 +2020-06-21,Morton,North Dakota,38059,70,2 +2020-06-22,Morton,North Dakota,38059,70,2 +2020-06-23,Morton,North Dakota,38059,70,2 +2020-06-24,Morton,North Dakota,38059,72,2 +2020-06-25,Morton,North Dakota,38059,73,2 +2020-06-26,Morton,North Dakota,38059,74,2 +2020-06-27,Morton,North Dakota,38059,78,2 +2020-06-28,Morton,North Dakota,38059,78,2 +2020-06-29,Morton,North Dakota,38059,81,2 +2020-06-30,Morton,North Dakota,38059,91,2 +2020-07-01,Morton,North Dakota,38059,91,2 +2020-07-02,Morton,North Dakota,38059,93,2 +2020-07-03,Morton,North Dakota,38059,100,2 +2020-07-04,Morton,North Dakota,38059,101,2 +2020-07-05,Morton,North Dakota,38059,103,2 +2020-07-06,Morton,North Dakota,38059,103,2 +2020-07-07,Morton,North Dakota,38059,109,2 +2020-07-08,Morton,North Dakota,38059,116,2 +2020-07-09,Morton,North Dakota,38059,121,2 +2020-03-28,Mountrail,North Dakota,38061,2,0 +2020-03-29,Mountrail,North Dakota,38061,2,0 +2020-03-30,Mountrail,North Dakota,38061,4,0 +2020-03-31,Mountrail,North Dakota,38061,5,0 +2020-04-01,Mountrail,North Dakota,38061,6,0 +2020-04-02,Mountrail,North Dakota,38061,8,0 +2020-04-03,Mountrail,North Dakota,38061,11,0 +2020-04-04,Mountrail,North Dakota,38061,13,0 +2020-04-05,Mountrail,North Dakota,38061,19,0 +2020-04-06,Mountrail,North Dakota,38061,19,0 +2020-04-07,Mountrail,North Dakota,38061,20,0 +2020-04-08,Mountrail,North Dakota,38061,20,0 +2020-04-09,Mountrail,North Dakota,38061,20,0 +2020-04-10,Mountrail,North Dakota,38061,20,0 +2020-04-11,Mountrail,North Dakota,38061,21,0 +2020-04-12,Mountrail,North Dakota,38061,21,0 +2020-04-13,Mountrail,North Dakota,38061,27,0 +2020-04-14,Mountrail,North Dakota,38061,27,0 +2020-04-15,Mountrail,North Dakota,38061,29,0 +2020-04-16,Mountrail,North Dakota,38061,29,0 +2020-04-17,Mountrail,North Dakota,38061,29,0 +2020-04-18,Mountrail,North Dakota,38061,29,0 +2020-04-19,Mountrail,North Dakota,38061,30,0 +2020-04-20,Mountrail,North Dakota,38061,30,0 +2020-04-21,Mountrail,North Dakota,38061,31,0 +2020-04-22,Mountrail,North Dakota,38061,31,0 +2020-04-23,Mountrail,North Dakota,38061,33,0 +2020-04-24,Mountrail,North Dakota,38061,33,0 +2020-04-25,Mountrail,North Dakota,38061,33,0 +2020-04-26,Mountrail,North Dakota,38061,33,0 +2020-04-27,Mountrail,North Dakota,38061,34,0 +2020-04-28,Mountrail,North Dakota,38061,35,0 +2020-04-29,Mountrail,North Dakota,38061,35,0 +2020-04-30,Mountrail,North Dakota,38061,35,0 +2020-05-01,Mountrail,North Dakota,38061,35,0 +2020-05-02,Mountrail,North Dakota,38061,35,0 +2020-05-03,Mountrail,North Dakota,38061,35,0 +2020-05-04,Mountrail,North Dakota,38061,35,0 +2020-05-05,Mountrail,North Dakota,38061,35,0 +2020-05-06,Mountrail,North Dakota,38061,36,0 +2020-05-07,Mountrail,North Dakota,38061,35,0 +2020-05-08,Mountrail,North Dakota,38061,37,0 +2020-05-09,Mountrail,North Dakota,38061,37,0 +2020-05-10,Mountrail,North Dakota,38061,37,0 +2020-05-11,Mountrail,North Dakota,38061,37,0 +2020-05-12,Mountrail,North Dakota,38061,37,0 +2020-05-13,Mountrail,North Dakota,38061,37,0 +2020-05-14,Mountrail,North Dakota,38061,38,0 +2020-05-15,Mountrail,North Dakota,38061,38,0 +2020-05-16,Mountrail,North Dakota,38061,40,0 +2020-05-17,Mountrail,North Dakota,38061,42,0 +2020-05-18,Mountrail,North Dakota,38061,42,0 +2020-05-19,Mountrail,North Dakota,38061,39,0 +2020-05-20,Mountrail,North Dakota,38061,39,0 +2020-05-21,Mountrail,North Dakota,38061,39,0 +2020-05-22,Mountrail,North Dakota,38061,39,0 +2020-05-23,Mountrail,North Dakota,38061,39,0 +2020-05-24,Mountrail,North Dakota,38061,39,0 +2020-05-25,Mountrail,North Dakota,38061,39,0 +2020-05-26,Mountrail,North Dakota,38061,39,0 +2020-05-27,Mountrail,North Dakota,38061,39,0 +2020-05-28,Mountrail,North Dakota,38061,39,0 +2020-05-29,Mountrail,North Dakota,38061,39,0 +2020-05-30,Mountrail,North Dakota,38061,39,0 +2020-05-31,Mountrail,North Dakota,38061,39,0 +2020-06-01,Mountrail,North Dakota,38061,40,0 +2020-06-02,Mountrail,North Dakota,38061,41,0 +2020-06-03,Mountrail,North Dakota,38061,41,0 +2020-06-04,Mountrail,North Dakota,38061,42,0 +2020-06-05,Mountrail,North Dakota,38061,42,0 +2020-06-06,Mountrail,North Dakota,38061,42,0 +2020-06-07,Mountrail,North Dakota,38061,43,0 +2020-06-08,Mountrail,North Dakota,38061,43,0 +2020-06-09,Mountrail,North Dakota,38061,43,0 +2020-06-10,Mountrail,North Dakota,38061,43,0 +2020-06-11,Mountrail,North Dakota,38061,43,0 +2020-06-12,Mountrail,North Dakota,38061,43,0 +2020-06-13,Mountrail,North Dakota,38061,43,0 +2020-06-14,Mountrail,North Dakota,38061,43,0 +2020-06-15,Mountrail,North Dakota,38061,43,0 +2020-06-16,Mountrail,North Dakota,38061,43,0 +2020-06-17,Mountrail,North Dakota,38061,43,0 +2020-06-18,Mountrail,North Dakota,38061,43,0 +2020-06-19,Mountrail,North Dakota,38061,43,0 +2020-06-20,Mountrail,North Dakota,38061,43,0 +2020-06-21,Mountrail,North Dakota,38061,43,0 +2020-06-22,Mountrail,North Dakota,38061,43,0 +2020-06-23,Mountrail,North Dakota,38061,43,0 +2020-06-24,Mountrail,North Dakota,38061,43,0 +2020-06-25,Mountrail,North Dakota,38061,43,0 +2020-06-26,Mountrail,North Dakota,38061,44,0 +2020-06-27,Mountrail,North Dakota,38061,44,0 +2020-06-28,Mountrail,North Dakota,38061,45,0 +2020-06-29,Mountrail,North Dakota,38061,47,0 +2020-06-30,Mountrail,North Dakota,38061,50,0 +2020-07-01,Mountrail,North Dakota,38061,50,0 +2020-07-02,Mountrail,North Dakota,38061,50,0 +2020-07-03,Mountrail,North Dakota,38061,51,0 +2020-07-04,Mountrail,North Dakota,38061,54,0 +2020-07-05,Mountrail,North Dakota,38061,54,0 +2020-07-06,Mountrail,North Dakota,38061,54,0 +2020-07-07,Mountrail,North Dakota,38061,54,0 +2020-07-08,Mountrail,North Dakota,38061,54,0 +2020-07-09,Mountrail,North Dakota,38061,55,0 +2020-04-19,Nelson,North Dakota,38063,1,0 +2020-04-20,Nelson,North Dakota,38063,1,0 +2020-04-21,Nelson,North Dakota,38063,1,0 +2020-04-22,Nelson,North Dakota,38063,1,0 +2020-04-23,Nelson,North Dakota,38063,1,0 +2020-04-24,Nelson,North Dakota,38063,1,0 +2020-04-25,Nelson,North Dakota,38063,1,0 +2020-04-26,Nelson,North Dakota,38063,1,0 +2020-04-27,Nelson,North Dakota,38063,1,0 +2020-04-28,Nelson,North Dakota,38063,1,0 +2020-04-29,Nelson,North Dakota,38063,1,0 +2020-04-30,Nelson,North Dakota,38063,1,0 +2020-05-01,Nelson,North Dakota,38063,1,0 +2020-05-02,Nelson,North Dakota,38063,1,0 +2020-05-03,Nelson,North Dakota,38063,1,0 +2020-05-04,Nelson,North Dakota,38063,1,0 +2020-05-05,Nelson,North Dakota,38063,1,0 +2020-05-06,Nelson,North Dakota,38063,1,0 +2020-05-07,Nelson,North Dakota,38063,1,0 +2020-05-08,Nelson,North Dakota,38063,1,0 +2020-05-09,Nelson,North Dakota,38063,1,0 +2020-05-10,Nelson,North Dakota,38063,1,0 +2020-05-11,Nelson,North Dakota,38063,1,0 +2020-05-12,Nelson,North Dakota,38063,1,0 +2020-05-13,Nelson,North Dakota,38063,1,0 +2020-05-14,Nelson,North Dakota,38063,1,0 +2020-05-15,Nelson,North Dakota,38063,1,0 +2020-05-16,Nelson,North Dakota,38063,1,0 +2020-05-17,Nelson,North Dakota,38063,1,0 +2020-05-18,Nelson,North Dakota,38063,1,0 +2020-05-19,Nelson,North Dakota,38063,1,0 +2020-05-20,Nelson,North Dakota,38063,2,0 +2020-05-21,Nelson,North Dakota,38063,2,0 +2020-05-22,Nelson,North Dakota,38063,2,0 +2020-05-23,Nelson,North Dakota,38063,2,0 +2020-05-24,Nelson,North Dakota,38063,2,0 +2020-05-25,Nelson,North Dakota,38063,2,0 +2020-05-26,Nelson,North Dakota,38063,1,0 +2020-05-27,Nelson,North Dakota,38063,1,0 +2020-05-28,Nelson,North Dakota,38063,1,0 +2020-05-29,Nelson,North Dakota,38063,1,0 +2020-05-30,Nelson,North Dakota,38063,1,0 +2020-05-31,Nelson,North Dakota,38063,1,0 +2020-06-01,Nelson,North Dakota,38063,1,0 +2020-06-02,Nelson,North Dakota,38063,1,0 +2020-06-03,Nelson,North Dakota,38063,1,0 +2020-06-04,Nelson,North Dakota,38063,1,0 +2020-06-05,Nelson,North Dakota,38063,1,0 +2020-06-06,Nelson,North Dakota,38063,1,0 +2020-06-07,Nelson,North Dakota,38063,1,0 +2020-06-08,Nelson,North Dakota,38063,1,0 +2020-06-09,Nelson,North Dakota,38063,1,0 +2020-06-10,Nelson,North Dakota,38063,1,0 +2020-06-11,Nelson,North Dakota,38063,1,0 +2020-06-12,Nelson,North Dakota,38063,1,0 +2020-06-13,Nelson,North Dakota,38063,1,0 +2020-06-14,Nelson,North Dakota,38063,1,0 +2020-06-15,Nelson,North Dakota,38063,1,0 +2020-06-16,Nelson,North Dakota,38063,1,0 +2020-06-17,Nelson,North Dakota,38063,1,0 +2020-06-18,Nelson,North Dakota,38063,1,0 +2020-06-19,Nelson,North Dakota,38063,1,0 +2020-06-20,Nelson,North Dakota,38063,1,0 +2020-06-21,Nelson,North Dakota,38063,1,0 +2020-06-22,Nelson,North Dakota,38063,1,0 +2020-06-23,Nelson,North Dakota,38063,1,0 +2020-06-24,Nelson,North Dakota,38063,1,0 +2020-06-25,Nelson,North Dakota,38063,1,0 +2020-06-26,Nelson,North Dakota,38063,1,0 +2020-06-27,Nelson,North Dakota,38063,1,0 +2020-06-28,Nelson,North Dakota,38063,1,0 +2020-06-29,Nelson,North Dakota,38063,1,0 +2020-06-30,Nelson,North Dakota,38063,1,0 +2020-07-01,Nelson,North Dakota,38063,1,0 +2020-07-02,Nelson,North Dakota,38063,1,0 +2020-07-03,Nelson,North Dakota,38063,1,0 +2020-07-04,Nelson,North Dakota,38063,1,0 +2020-07-05,Nelson,North Dakota,38063,1,0 +2020-07-06,Nelson,North Dakota,38063,1,0 +2020-07-07,Nelson,North Dakota,38063,1,0 +2020-07-08,Nelson,North Dakota,38063,2,0 +2020-07-09,Nelson,North Dakota,38063,2,0 +2020-03-30,Oliver,North Dakota,38065,1,0 +2020-03-31,Oliver,North Dakota,38065,1,0 +2020-04-01,Oliver,North Dakota,38065,1,0 +2020-04-02,Oliver,North Dakota,38065,1,0 +2020-04-03,Oliver,North Dakota,38065,1,0 +2020-04-04,Oliver,North Dakota,38065,1,0 +2020-04-05,Oliver,North Dakota,38065,1,0 +2020-04-06,Oliver,North Dakota,38065,1,0 +2020-04-07,Oliver,North Dakota,38065,1,0 +2020-04-08,Oliver,North Dakota,38065,1,0 +2020-04-09,Oliver,North Dakota,38065,1,0 +2020-04-10,Oliver,North Dakota,38065,1,0 +2020-04-11,Oliver,North Dakota,38065,1,0 +2020-04-12,Oliver,North Dakota,38065,1,0 +2020-04-13,Oliver,North Dakota,38065,1,0 +2020-04-14,Oliver,North Dakota,38065,1,0 +2020-04-15,Oliver,North Dakota,38065,1,0 +2020-04-16,Oliver,North Dakota,38065,1,0 +2020-04-17,Oliver,North Dakota,38065,1,0 +2020-04-18,Oliver,North Dakota,38065,1,0 +2020-04-19,Oliver,North Dakota,38065,1,0 +2020-04-20,Oliver,North Dakota,38065,1,0 +2020-04-21,Oliver,North Dakota,38065,1,0 +2020-04-22,Oliver,North Dakota,38065,1,0 +2020-04-23,Oliver,North Dakota,38065,1,0 +2020-04-24,Oliver,North Dakota,38065,1,0 +2020-04-25,Oliver,North Dakota,38065,1,0 +2020-04-26,Oliver,North Dakota,38065,1,0 +2020-04-27,Oliver,North Dakota,38065,1,0 +2020-04-28,Oliver,North Dakota,38065,1,0 +2020-04-29,Oliver,North Dakota,38065,1,0 +2020-04-30,Oliver,North Dakota,38065,1,0 +2020-05-01,Oliver,North Dakota,38065,1,0 +2020-05-02,Oliver,North Dakota,38065,1,0 +2020-05-03,Oliver,North Dakota,38065,1,0 +2020-05-04,Oliver,North Dakota,38065,1,0 +2020-05-05,Oliver,North Dakota,38065,1,0 +2020-05-06,Oliver,North Dakota,38065,1,0 +2020-05-07,Oliver,North Dakota,38065,1,0 +2020-05-08,Oliver,North Dakota,38065,1,0 +2020-05-09,Oliver,North Dakota,38065,1,0 +2020-05-10,Oliver,North Dakota,38065,1,0 +2020-05-11,Oliver,North Dakota,38065,1,0 +2020-05-12,Oliver,North Dakota,38065,1,0 +2020-05-13,Oliver,North Dakota,38065,1,0 +2020-05-14,Oliver,North Dakota,38065,1,0 +2020-05-15,Oliver,North Dakota,38065,1,0 +2020-05-16,Oliver,North Dakota,38065,1,0 +2020-05-17,Oliver,North Dakota,38065,1,0 +2020-05-18,Oliver,North Dakota,38065,1,0 +2020-05-19,Oliver,North Dakota,38065,1,0 +2020-05-20,Oliver,North Dakota,38065,1,0 +2020-05-21,Oliver,North Dakota,38065,1,0 +2020-05-22,Oliver,North Dakota,38065,1,0 +2020-05-23,Oliver,North Dakota,38065,1,0 +2020-05-24,Oliver,North Dakota,38065,1,0 +2020-05-25,Oliver,North Dakota,38065,1,0 +2020-05-26,Oliver,North Dakota,38065,1,0 +2020-05-27,Oliver,North Dakota,38065,1,0 +2020-05-28,Oliver,North Dakota,38065,1,0 +2020-05-29,Oliver,North Dakota,38065,1,0 +2020-05-30,Oliver,North Dakota,38065,1,0 +2020-05-31,Oliver,North Dakota,38065,1,0 +2020-06-01,Oliver,North Dakota,38065,1,0 +2020-06-02,Oliver,North Dakota,38065,1,0 +2020-06-03,Oliver,North Dakota,38065,1,0 +2020-06-04,Oliver,North Dakota,38065,1,0 +2020-06-05,Oliver,North Dakota,38065,1,0 +2020-06-06,Oliver,North Dakota,38065,1,0 +2020-06-07,Oliver,North Dakota,38065,1,0 +2020-06-08,Oliver,North Dakota,38065,1,0 +2020-06-09,Oliver,North Dakota,38065,1,0 +2020-06-10,Oliver,North Dakota,38065,1,0 +2020-06-11,Oliver,North Dakota,38065,1,0 +2020-06-12,Oliver,North Dakota,38065,1,0 +2020-06-13,Oliver,North Dakota,38065,1,0 +2020-06-14,Oliver,North Dakota,38065,1,0 +2020-06-15,Oliver,North Dakota,38065,1,0 +2020-06-16,Oliver,North Dakota,38065,1,0 +2020-06-17,Oliver,North Dakota,38065,1,0 +2020-06-18,Oliver,North Dakota,38065,1,0 +2020-06-19,Oliver,North Dakota,38065,1,0 +2020-06-20,Oliver,North Dakota,38065,1,0 +2020-06-21,Oliver,North Dakota,38065,1,0 +2020-06-22,Oliver,North Dakota,38065,1,0 +2020-06-23,Oliver,North Dakota,38065,1,0 +2020-06-24,Oliver,North Dakota,38065,1,0 +2020-06-25,Oliver,North Dakota,38065,1,0 +2020-06-26,Oliver,North Dakota,38065,1,0 +2020-06-27,Oliver,North Dakota,38065,1,0 +2020-06-28,Oliver,North Dakota,38065,1,0 +2020-06-29,Oliver,North Dakota,38065,2,0 +2020-06-30,Oliver,North Dakota,38065,2,0 +2020-07-01,Oliver,North Dakota,38065,2,0 +2020-07-02,Oliver,North Dakota,38065,2,0 +2020-07-03,Oliver,North Dakota,38065,2,0 +2020-07-04,Oliver,North Dakota,38065,2,0 +2020-07-05,Oliver,North Dakota,38065,2,0 +2020-07-06,Oliver,North Dakota,38065,2,0 +2020-07-07,Oliver,North Dakota,38065,2,0 +2020-07-08,Oliver,North Dakota,38065,2,0 +2020-07-09,Oliver,North Dakota,38065,2,0 +2020-04-25,Pembina,North Dakota,38067,1,0 +2020-04-26,Pembina,North Dakota,38067,1,0 +2020-04-27,Pembina,North Dakota,38067,1,0 +2020-04-28,Pembina,North Dakota,38067,1,0 +2020-04-29,Pembina,North Dakota,38067,1,0 +2020-04-30,Pembina,North Dakota,38067,3,0 +2020-05-01,Pembina,North Dakota,38067,3,0 +2020-05-02,Pembina,North Dakota,38067,3,0 +2020-05-03,Pembina,North Dakota,38067,3,0 +2020-05-04,Pembina,North Dakota,38067,3,0 +2020-05-05,Pembina,North Dakota,38067,4,0 +2020-05-06,Pembina,North Dakota,38067,4,0 +2020-05-07,Pembina,North Dakota,38067,5,0 +2020-05-08,Pembina,North Dakota,38067,6,0 +2020-05-09,Pembina,North Dakota,38067,6,0 +2020-05-10,Pembina,North Dakota,38067,6,0 +2020-05-11,Pembina,North Dakota,38067,6,0 +2020-05-12,Pembina,North Dakota,38067,6,0 +2020-05-13,Pembina,North Dakota,38067,6,0 +2020-05-14,Pembina,North Dakota,38067,6,0 +2020-05-15,Pembina,North Dakota,38067,6,0 +2020-05-16,Pembina,North Dakota,38067,6,0 +2020-05-17,Pembina,North Dakota,38067,6,0 +2020-05-18,Pembina,North Dakota,38067,6,0 +2020-05-19,Pembina,North Dakota,38067,6,0 +2020-05-20,Pembina,North Dakota,38067,6,0 +2020-05-21,Pembina,North Dakota,38067,6,0 +2020-05-22,Pembina,North Dakota,38067,6,0 +2020-05-23,Pembina,North Dakota,38067,6,0 +2020-05-24,Pembina,North Dakota,38067,6,0 +2020-05-25,Pembina,North Dakota,38067,6,0 +2020-05-26,Pembina,North Dakota,38067,6,0 +2020-05-27,Pembina,North Dakota,38067,6,0 +2020-05-28,Pembina,North Dakota,38067,6,0 +2020-05-29,Pembina,North Dakota,38067,6,0 +2020-05-30,Pembina,North Dakota,38067,6,0 +2020-05-31,Pembina,North Dakota,38067,6,0 +2020-06-01,Pembina,North Dakota,38067,6,0 +2020-06-02,Pembina,North Dakota,38067,6,0 +2020-06-03,Pembina,North Dakota,38067,6,0 +2020-06-04,Pembina,North Dakota,38067,6,0 +2020-06-05,Pembina,North Dakota,38067,6,0 +2020-06-06,Pembina,North Dakota,38067,6,0 +2020-06-07,Pembina,North Dakota,38067,6,0 +2020-06-08,Pembina,North Dakota,38067,6,0 +2020-06-09,Pembina,North Dakota,38067,6,0 +2020-06-10,Pembina,North Dakota,38067,6,0 +2020-06-11,Pembina,North Dakota,38067,6,0 +2020-06-12,Pembina,North Dakota,38067,6,0 +2020-06-13,Pembina,North Dakota,38067,6,0 +2020-06-14,Pembina,North Dakota,38067,7,0 +2020-06-15,Pembina,North Dakota,38067,7,0 +2020-06-16,Pembina,North Dakota,38067,7,0 +2020-06-17,Pembina,North Dakota,38067,7,0 +2020-06-18,Pembina,North Dakota,38067,7,0 +2020-06-19,Pembina,North Dakota,38067,7,0 +2020-06-20,Pembina,North Dakota,38067,7,0 +2020-06-21,Pembina,North Dakota,38067,7,0 +2020-06-22,Pembina,North Dakota,38067,7,0 +2020-06-23,Pembina,North Dakota,38067,7,0 +2020-06-24,Pembina,North Dakota,38067,9,0 +2020-06-25,Pembina,North Dakota,38067,9,0 +2020-06-26,Pembina,North Dakota,38067,9,0 +2020-06-27,Pembina,North Dakota,38067,9,0 +2020-06-28,Pembina,North Dakota,38067,9,0 +2020-06-29,Pembina,North Dakota,38067,9,0 +2020-06-30,Pembina,North Dakota,38067,9,0 +2020-07-01,Pembina,North Dakota,38067,9,0 +2020-07-02,Pembina,North Dakota,38067,9,0 +2020-07-03,Pembina,North Dakota,38067,9,0 +2020-07-04,Pembina,North Dakota,38067,10,0 +2020-07-05,Pembina,North Dakota,38067,10,0 +2020-07-06,Pembina,North Dakota,38067,10,0 +2020-07-07,Pembina,North Dakota,38067,11,0 +2020-07-08,Pembina,North Dakota,38067,13,0 +2020-07-09,Pembina,North Dakota,38067,14,0 +2020-03-20,Pierce,North Dakota,38069,1,0 +2020-03-21,Pierce,North Dakota,38069,1,0 +2020-03-22,Pierce,North Dakota,38069,2,0 +2020-03-23,Pierce,North Dakota,38069,2,0 +2020-03-24,Pierce,North Dakota,38069,2,0 +2020-03-25,Pierce,North Dakota,38069,2,0 +2020-03-26,Pierce,North Dakota,38069,2,0 +2020-03-27,Pierce,North Dakota,38069,2,0 +2020-03-28,Pierce,North Dakota,38069,2,0 +2020-03-29,Pierce,North Dakota,38069,2,0 +2020-03-30,Pierce,North Dakota,38069,2,0 +2020-03-31,Pierce,North Dakota,38069,2,0 +2020-04-01,Pierce,North Dakota,38069,2,0 +2020-04-02,Pierce,North Dakota,38069,2,0 +2020-04-03,Pierce,North Dakota,38069,2,0 +2020-04-04,Pierce,North Dakota,38069,2,0 +2020-04-05,Pierce,North Dakota,38069,2,0 +2020-04-06,Pierce,North Dakota,38069,2,0 +2020-04-07,Pierce,North Dakota,38069,2,0 +2020-04-08,Pierce,North Dakota,38069,2,0 +2020-04-09,Pierce,North Dakota,38069,2,0 +2020-04-10,Pierce,North Dakota,38069,2,0 +2020-04-11,Pierce,North Dakota,38069,2,0 +2020-04-12,Pierce,North Dakota,38069,2,0 +2020-04-13,Pierce,North Dakota,38069,2,0 +2020-04-14,Pierce,North Dakota,38069,2,0 +2020-04-15,Pierce,North Dakota,38069,2,0 +2020-04-16,Pierce,North Dakota,38069,2,0 +2020-04-17,Pierce,North Dakota,38069,2,0 +2020-04-18,Pierce,North Dakota,38069,2,0 +2020-04-19,Pierce,North Dakota,38069,2,0 +2020-04-20,Pierce,North Dakota,38069,2,0 +2020-04-21,Pierce,North Dakota,38069,2,0 +2020-04-22,Pierce,North Dakota,38069,2,0 +2020-04-23,Pierce,North Dakota,38069,2,0 +2020-04-24,Pierce,North Dakota,38069,2,0 +2020-04-25,Pierce,North Dakota,38069,2,0 +2020-04-26,Pierce,North Dakota,38069,2,0 +2020-04-27,Pierce,North Dakota,38069,2,0 +2020-04-28,Pierce,North Dakota,38069,2,0 +2020-04-29,Pierce,North Dakota,38069,2,0 +2020-04-30,Pierce,North Dakota,38069,2,0 +2020-05-01,Pierce,North Dakota,38069,2,0 +2020-05-02,Pierce,North Dakota,38069,2,0 +2020-05-03,Pierce,North Dakota,38069,2,0 +2020-05-04,Pierce,North Dakota,38069,2,0 +2020-05-05,Pierce,North Dakota,38069,2,0 +2020-05-06,Pierce,North Dakota,38069,2,0 +2020-05-07,Pierce,North Dakota,38069,3,0 +2020-05-08,Pierce,North Dakota,38069,3,0 +2020-05-09,Pierce,North Dakota,38069,3,0 +2020-05-10,Pierce,North Dakota,38069,3,0 +2020-05-11,Pierce,North Dakota,38069,3,0 +2020-05-12,Pierce,North Dakota,38069,3,0 +2020-05-13,Pierce,North Dakota,38069,3,0 +2020-05-14,Pierce,North Dakota,38069,3,0 +2020-05-15,Pierce,North Dakota,38069,3,0 +2020-05-16,Pierce,North Dakota,38069,3,0 +2020-05-17,Pierce,North Dakota,38069,3,0 +2020-05-18,Pierce,North Dakota,38069,3,0 +2020-05-19,Pierce,North Dakota,38069,3,0 +2020-05-20,Pierce,North Dakota,38069,3,0 +2020-05-21,Pierce,North Dakota,38069,4,0 +2020-05-22,Pierce,North Dakota,38069,4,0 +2020-05-23,Pierce,North Dakota,38069,4,0 +2020-05-24,Pierce,North Dakota,38069,4,0 +2020-05-25,Pierce,North Dakota,38069,4,0 +2020-05-26,Pierce,North Dakota,38069,3,0 +2020-05-27,Pierce,North Dakota,38069,3,0 +2020-05-28,Pierce,North Dakota,38069,3,0 +2020-05-29,Pierce,North Dakota,38069,3,0 +2020-05-30,Pierce,North Dakota,38069,3,0 +2020-05-31,Pierce,North Dakota,38069,3,0 +2020-06-01,Pierce,North Dakota,38069,3,0 +2020-06-02,Pierce,North Dakota,38069,3,0 +2020-06-03,Pierce,North Dakota,38069,3,0 +2020-06-04,Pierce,North Dakota,38069,3,0 +2020-06-05,Pierce,North Dakota,38069,3,0 +2020-06-06,Pierce,North Dakota,38069,3,0 +2020-06-07,Pierce,North Dakota,38069,3,0 +2020-06-08,Pierce,North Dakota,38069,3,0 +2020-06-09,Pierce,North Dakota,38069,3,0 +2020-06-10,Pierce,North Dakota,38069,3,0 +2020-06-11,Pierce,North Dakota,38069,3,0 +2020-06-12,Pierce,North Dakota,38069,3,0 +2020-06-13,Pierce,North Dakota,38069,3,0 +2020-06-14,Pierce,North Dakota,38069,3,0 +2020-06-15,Pierce,North Dakota,38069,3,0 +2020-06-16,Pierce,North Dakota,38069,3,0 +2020-06-17,Pierce,North Dakota,38069,3,0 +2020-06-18,Pierce,North Dakota,38069,3,0 +2020-06-19,Pierce,North Dakota,38069,4,0 +2020-06-20,Pierce,North Dakota,38069,4,0 +2020-06-21,Pierce,North Dakota,38069,4,0 +2020-06-22,Pierce,North Dakota,38069,4,0 +2020-06-23,Pierce,North Dakota,38069,4,0 +2020-06-24,Pierce,North Dakota,38069,4,0 +2020-06-25,Pierce,North Dakota,38069,4,0 +2020-06-26,Pierce,North Dakota,38069,4,0 +2020-06-27,Pierce,North Dakota,38069,4,0 +2020-06-28,Pierce,North Dakota,38069,4,0 +2020-06-29,Pierce,North Dakota,38069,4,0 +2020-06-30,Pierce,North Dakota,38069,5,0 +2020-07-01,Pierce,North Dakota,38069,5,0 +2020-07-02,Pierce,North Dakota,38069,5,0 +2020-07-03,Pierce,North Dakota,38069,5,0 +2020-07-04,Pierce,North Dakota,38069,5,0 +2020-07-05,Pierce,North Dakota,38069,5,0 +2020-07-06,Pierce,North Dakota,38069,5,0 +2020-07-07,Pierce,North Dakota,38069,5,0 +2020-07-08,Pierce,North Dakota,38069,6,0 +2020-07-09,Pierce,North Dakota,38069,6,0 +2020-03-20,Ramsey,North Dakota,38071,1,0 +2020-03-21,Ramsey,North Dakota,38071,1,0 +2020-03-22,Ramsey,North Dakota,38071,1,0 +2020-03-23,Ramsey,North Dakota,38071,1,0 +2020-03-24,Ramsey,North Dakota,38071,1,0 +2020-03-25,Ramsey,North Dakota,38071,3,0 +2020-03-26,Ramsey,North Dakota,38071,3,0 +2020-03-27,Ramsey,North Dakota,38071,3,0 +2020-03-28,Ramsey,North Dakota,38071,3,0 +2020-03-29,Ramsey,North Dakota,38071,3,0 +2020-03-30,Ramsey,North Dakota,38071,3,0 +2020-03-31,Ramsey,North Dakota,38071,3,0 +2020-04-01,Ramsey,North Dakota,38071,3,0 +2020-04-02,Ramsey,North Dakota,38071,3,0 +2020-04-03,Ramsey,North Dakota,38071,3,0 +2020-04-04,Ramsey,North Dakota,38071,3,0 +2020-04-05,Ramsey,North Dakota,38071,3,0 +2020-04-06,Ramsey,North Dakota,38071,3,0 +2020-04-07,Ramsey,North Dakota,38071,3,0 +2020-04-08,Ramsey,North Dakota,38071,3,0 +2020-04-09,Ramsey,North Dakota,38071,3,0 +2020-04-10,Ramsey,North Dakota,38071,3,0 +2020-04-11,Ramsey,North Dakota,38071,3,0 +2020-04-12,Ramsey,North Dakota,38071,3,0 +2020-04-13,Ramsey,North Dakota,38071,3,0 +2020-04-14,Ramsey,North Dakota,38071,3,0 +2020-04-15,Ramsey,North Dakota,38071,3,0 +2020-04-16,Ramsey,North Dakota,38071,3,0 +2020-04-17,Ramsey,North Dakota,38071,3,0 +2020-04-18,Ramsey,North Dakota,38071,3,0 +2020-04-19,Ramsey,North Dakota,38071,3,0 +2020-04-20,Ramsey,North Dakota,38071,3,0 +2020-04-21,Ramsey,North Dakota,38071,3,0 +2020-04-22,Ramsey,North Dakota,38071,3,0 +2020-04-23,Ramsey,North Dakota,38071,3,0 +2020-04-24,Ramsey,North Dakota,38071,3,0 +2020-04-25,Ramsey,North Dakota,38071,3,0 +2020-04-26,Ramsey,North Dakota,38071,3,0 +2020-04-27,Ramsey,North Dakota,38071,4,0 +2020-04-28,Ramsey,North Dakota,38071,4,0 +2020-04-29,Ramsey,North Dakota,38071,3,0 +2020-04-30,Ramsey,North Dakota,38071,3,0 +2020-05-01,Ramsey,North Dakota,38071,3,0 +2020-05-02,Ramsey,North Dakota,38071,3,0 +2020-05-03,Ramsey,North Dakota,38071,3,0 +2020-05-04,Ramsey,North Dakota,38071,3,0 +2020-05-05,Ramsey,North Dakota,38071,3,0 +2020-05-06,Ramsey,North Dakota,38071,3,0 +2020-05-07,Ramsey,North Dakota,38071,5,0 +2020-05-08,Ramsey,North Dakota,38071,5,0 +2020-05-09,Ramsey,North Dakota,38071,7,0 +2020-05-10,Ramsey,North Dakota,38071,7,0 +2020-05-11,Ramsey,North Dakota,38071,7,0 +2020-05-12,Ramsey,North Dakota,38071,7,0 +2020-05-13,Ramsey,North Dakota,38071,7,0 +2020-05-14,Ramsey,North Dakota,38071,7,0 +2020-05-15,Ramsey,North Dakota,38071,7,0 +2020-05-16,Ramsey,North Dakota,38071,7,0 +2020-05-17,Ramsey,North Dakota,38071,7,0 +2020-05-18,Ramsey,North Dakota,38071,7,1 +2020-05-19,Ramsey,North Dakota,38071,8,1 +2020-05-20,Ramsey,North Dakota,38071,8,1 +2020-05-21,Ramsey,North Dakota,38071,9,1 +2020-05-22,Ramsey,North Dakota,38071,9,1 +2020-05-23,Ramsey,North Dakota,38071,9,1 +2020-05-24,Ramsey,North Dakota,38071,9,1 +2020-05-25,Ramsey,North Dakota,38071,9,1 +2020-05-26,Ramsey,North Dakota,38071,8,1 +2020-05-27,Ramsey,North Dakota,38071,8,1 +2020-05-28,Ramsey,North Dakota,38071,8,1 +2020-05-29,Ramsey,North Dakota,38071,8,1 +2020-05-30,Ramsey,North Dakota,38071,8,1 +2020-05-31,Ramsey,North Dakota,38071,8,1 +2020-06-01,Ramsey,North Dakota,38071,8,1 +2020-06-02,Ramsey,North Dakota,38071,8,1 +2020-06-03,Ramsey,North Dakota,38071,8,1 +2020-06-04,Ramsey,North Dakota,38071,8,1 +2020-06-05,Ramsey,North Dakota,38071,8,1 +2020-06-06,Ramsey,North Dakota,38071,8,1 +2020-06-07,Ramsey,North Dakota,38071,8,1 +2020-06-08,Ramsey,North Dakota,38071,8,1 +2020-06-09,Ramsey,North Dakota,38071,8,1 +2020-06-10,Ramsey,North Dakota,38071,8,1 +2020-06-11,Ramsey,North Dakota,38071,8,1 +2020-06-12,Ramsey,North Dakota,38071,8,1 +2020-06-13,Ramsey,North Dakota,38071,8,1 +2020-06-14,Ramsey,North Dakota,38071,8,1 +2020-06-15,Ramsey,North Dakota,38071,8,1 +2020-06-16,Ramsey,North Dakota,38071,8,1 +2020-06-17,Ramsey,North Dakota,38071,8,1 +2020-06-18,Ramsey,North Dakota,38071,8,1 +2020-06-19,Ramsey,North Dakota,38071,8,1 +2020-06-20,Ramsey,North Dakota,38071,8,1 +2020-06-21,Ramsey,North Dakota,38071,8,1 +2020-06-22,Ramsey,North Dakota,38071,9,1 +2020-06-23,Ramsey,North Dakota,38071,9,1 +2020-06-24,Ramsey,North Dakota,38071,11,1 +2020-06-25,Ramsey,North Dakota,38071,10,1 +2020-06-26,Ramsey,North Dakota,38071,10,1 +2020-06-27,Ramsey,North Dakota,38071,10,1 +2020-06-28,Ramsey,North Dakota,38071,10,1 +2020-06-29,Ramsey,North Dakota,38071,10,1 +2020-06-30,Ramsey,North Dakota,38071,10,1 +2020-07-01,Ramsey,North Dakota,38071,10,1 +2020-07-02,Ramsey,North Dakota,38071,10,1 +2020-07-03,Ramsey,North Dakota,38071,11,1 +2020-07-04,Ramsey,North Dakota,38071,11,1 +2020-07-05,Ramsey,North Dakota,38071,12,1 +2020-07-06,Ramsey,North Dakota,38071,12,1 +2020-07-07,Ramsey,North Dakota,38071,12,1 +2020-07-08,Ramsey,North Dakota,38071,18,1 +2020-07-09,Ramsey,North Dakota,38071,18,1 +2020-04-26,Ransom,North Dakota,38073,1,0 +2020-04-27,Ransom,North Dakota,38073,1,0 +2020-04-28,Ransom,North Dakota,38073,1,0 +2020-04-29,Ransom,North Dakota,38073,1,0 +2020-04-30,Ransom,North Dakota,38073,1,0 +2020-05-01,Ransom,North Dakota,38073,1,0 +2020-05-02,Ransom,North Dakota,38073,1,0 +2020-05-03,Ransom,North Dakota,38073,1,0 +2020-05-04,Ransom,North Dakota,38073,1,0 +2020-05-05,Ransom,North Dakota,38073,1,0 +2020-05-06,Ransom,North Dakota,38073,2,0 +2020-05-07,Ransom,North Dakota,38073,2,0 +2020-05-08,Ransom,North Dakota,38073,2,0 +2020-05-09,Ransom,North Dakota,38073,3,0 +2020-05-10,Ransom,North Dakota,38073,3,0 +2020-05-11,Ransom,North Dakota,38073,3,0 +2020-05-12,Ransom,North Dakota,38073,3,0 +2020-05-13,Ransom,North Dakota,38073,3,0 +2020-05-14,Ransom,North Dakota,38073,3,0 +2020-05-15,Ransom,North Dakota,38073,3,0 +2020-05-16,Ransom,North Dakota,38073,3,0 +2020-05-17,Ransom,North Dakota,38073,4,0 +2020-05-18,Ransom,North Dakota,38073,5,0 +2020-05-19,Ransom,North Dakota,38073,7,0 +2020-05-20,Ransom,North Dakota,38073,7,0 +2020-05-21,Ransom,North Dakota,38073,7,0 +2020-05-22,Ransom,North Dakota,38073,7,0 +2020-05-23,Ransom,North Dakota,38073,8,0 +2020-05-24,Ransom,North Dakota,38073,8,0 +2020-05-25,Ransom,North Dakota,38073,9,0 +2020-05-26,Ransom,North Dakota,38073,8,0 +2020-05-27,Ransom,North Dakota,38073,8,0 +2020-05-28,Ransom,North Dakota,38073,8,0 +2020-05-29,Ransom,North Dakota,38073,8,0 +2020-05-30,Ransom,North Dakota,38073,8,0 +2020-05-31,Ransom,North Dakota,38073,8,0 +2020-06-01,Ransom,North Dakota,38073,9,0 +2020-06-02,Ransom,North Dakota,38073,9,0 +2020-06-03,Ransom,North Dakota,38073,11,0 +2020-06-04,Ransom,North Dakota,38073,11,0 +2020-06-05,Ransom,North Dakota,38073,11,0 +2020-06-06,Ransom,North Dakota,38073,11,0 +2020-06-07,Ransom,North Dakota,38073,11,0 +2020-06-08,Ransom,North Dakota,38073,11,0 +2020-06-09,Ransom,North Dakota,38073,11,0 +2020-06-10,Ransom,North Dakota,38073,11,0 +2020-06-11,Ransom,North Dakota,38073,12,0 +2020-06-12,Ransom,North Dakota,38073,12,0 +2020-06-13,Ransom,North Dakota,38073,12,0 +2020-06-14,Ransom,North Dakota,38073,12,0 +2020-06-15,Ransom,North Dakota,38073,12,0 +2020-06-16,Ransom,North Dakota,38073,13,0 +2020-06-17,Ransom,North Dakota,38073,13,0 +2020-06-18,Ransom,North Dakota,38073,13,0 +2020-06-19,Ransom,North Dakota,38073,13,0 +2020-06-20,Ransom,North Dakota,38073,13,0 +2020-06-21,Ransom,North Dakota,38073,15,0 +2020-06-22,Ransom,North Dakota,38073,15,0 +2020-06-23,Ransom,North Dakota,38073,15,0 +2020-06-24,Ransom,North Dakota,38073,16,0 +2020-06-25,Ransom,North Dakota,38073,16,0 +2020-06-26,Ransom,North Dakota,38073,16,0 +2020-06-27,Ransom,North Dakota,38073,17,0 +2020-06-28,Ransom,North Dakota,38073,17,0 +2020-06-29,Ransom,North Dakota,38073,17,0 +2020-06-30,Ransom,North Dakota,38073,17,0 +2020-07-01,Ransom,North Dakota,38073,17,0 +2020-07-02,Ransom,North Dakota,38073,17,0 +2020-07-03,Ransom,North Dakota,38073,17,0 +2020-07-04,Ransom,North Dakota,38073,18,0 +2020-07-05,Ransom,North Dakota,38073,18,0 +2020-07-06,Ransom,North Dakota,38073,19,0 +2020-07-07,Ransom,North Dakota,38073,19,0 +2020-07-08,Ransom,North Dakota,38073,19,0 +2020-07-09,Ransom,North Dakota,38073,21,0 +2020-05-01,Renville,North Dakota,38075,1,0 +2020-05-02,Renville,North Dakota,38075,1,0 +2020-05-03,Renville,North Dakota,38075,1,0 +2020-05-04,Renville,North Dakota,38075,1,0 +2020-05-05,Renville,North Dakota,38075,1,0 +2020-05-06,Renville,North Dakota,38075,1,0 +2020-05-07,Renville,North Dakota,38075,1,0 +2020-05-08,Renville,North Dakota,38075,1,0 +2020-05-09,Renville,North Dakota,38075,1,0 +2020-05-10,Renville,North Dakota,38075,1,0 +2020-05-11,Renville,North Dakota,38075,1,0 +2020-05-12,Renville,North Dakota,38075,1,0 +2020-05-13,Renville,North Dakota,38075,1,0 +2020-05-14,Renville,North Dakota,38075,1,0 +2020-05-15,Renville,North Dakota,38075,1,0 +2020-05-16,Renville,North Dakota,38075,1,0 +2020-05-17,Renville,North Dakota,38075,1,0 +2020-05-18,Renville,North Dakota,38075,1,0 +2020-05-19,Renville,North Dakota,38075,1,0 +2020-05-20,Renville,North Dakota,38075,1,0 +2020-05-21,Renville,North Dakota,38075,1,0 +2020-05-22,Renville,North Dakota,38075,1,0 +2020-05-23,Renville,North Dakota,38075,1,0 +2020-05-24,Renville,North Dakota,38075,1,0 +2020-05-25,Renville,North Dakota,38075,1,0 +2020-05-26,Renville,North Dakota,38075,1,0 +2020-05-27,Renville,North Dakota,38075,1,0 +2020-05-28,Renville,North Dakota,38075,1,0 +2020-05-29,Renville,North Dakota,38075,1,0 +2020-05-30,Renville,North Dakota,38075,3,0 +2020-05-31,Renville,North Dakota,38075,3,0 +2020-06-01,Renville,North Dakota,38075,3,0 +2020-06-02,Renville,North Dakota,38075,3,0 +2020-06-03,Renville,North Dakota,38075,3,0 +2020-06-04,Renville,North Dakota,38075,3,0 +2020-06-05,Renville,North Dakota,38075,3,0 +2020-06-06,Renville,North Dakota,38075,3,0 +2020-06-07,Renville,North Dakota,38075,3,0 +2020-06-08,Renville,North Dakota,38075,3,0 +2020-06-09,Renville,North Dakota,38075,3,0 +2020-06-10,Renville,North Dakota,38075,3,0 +2020-06-11,Renville,North Dakota,38075,3,0 +2020-06-12,Renville,North Dakota,38075,3,0 +2020-06-13,Renville,North Dakota,38075,3,0 +2020-06-14,Renville,North Dakota,38075,3,0 +2020-06-15,Renville,North Dakota,38075,3,0 +2020-06-16,Renville,North Dakota,38075,3,0 +2020-06-17,Renville,North Dakota,38075,3,0 +2020-06-18,Renville,North Dakota,38075,3,0 +2020-06-19,Renville,North Dakota,38075,3,0 +2020-06-20,Renville,North Dakota,38075,3,0 +2020-06-21,Renville,North Dakota,38075,3,0 +2020-06-22,Renville,North Dakota,38075,3,0 +2020-06-23,Renville,North Dakota,38075,4,0 +2020-06-24,Renville,North Dakota,38075,4,0 +2020-06-25,Renville,North Dakota,38075,4,0 +2020-06-26,Renville,North Dakota,38075,5,0 +2020-06-27,Renville,North Dakota,38075,5,0 +2020-06-28,Renville,North Dakota,38075,5,0 +2020-06-29,Renville,North Dakota,38075,5,0 +2020-06-30,Renville,North Dakota,38075,5,0 +2020-07-01,Renville,North Dakota,38075,5,0 +2020-07-02,Renville,North Dakota,38075,5,0 +2020-07-03,Renville,North Dakota,38075,5,0 +2020-07-04,Renville,North Dakota,38075,5,0 +2020-07-05,Renville,North Dakota,38075,5,0 +2020-07-06,Renville,North Dakota,38075,5,0 +2020-07-07,Renville,North Dakota,38075,5,0 +2020-07-08,Renville,North Dakota,38075,5,0 +2020-07-09,Renville,North Dakota,38075,5,0 +2020-04-09,Richland,North Dakota,38077,1,0 +2020-04-10,Richland,North Dakota,38077,1,0 +2020-04-11,Richland,North Dakota,38077,2,0 +2020-04-12,Richland,North Dakota,38077,2,0 +2020-04-13,Richland,North Dakota,38077,3,0 +2020-04-14,Richland,North Dakota,38077,3,0 +2020-04-15,Richland,North Dakota,38077,3,0 +2020-04-16,Richland,North Dakota,38077,4,0 +2020-04-17,Richland,North Dakota,38077,5,0 +2020-04-18,Richland,North Dakota,38077,5,0 +2020-04-19,Richland,North Dakota,38077,5,0 +2020-04-20,Richland,North Dakota,38077,5,0 +2020-04-21,Richland,North Dakota,38077,5,0 +2020-04-22,Richland,North Dakota,38077,6,0 +2020-04-23,Richland,North Dakota,38077,7,0 +2020-04-24,Richland,North Dakota,38077,7,0 +2020-04-25,Richland,North Dakota,38077,7,0 +2020-04-26,Richland,North Dakota,38077,7,0 +2020-04-27,Richland,North Dakota,38077,7,0 +2020-04-28,Richland,North Dakota,38077,7,0 +2020-04-29,Richland,North Dakota,38077,7,0 +2020-04-30,Richland,North Dakota,38077,7,0 +2020-05-01,Richland,North Dakota,38077,7,0 +2020-05-02,Richland,North Dakota,38077,7,0 +2020-05-03,Richland,North Dakota,38077,7,0 +2020-05-04,Richland,North Dakota,38077,7,0 +2020-05-05,Richland,North Dakota,38077,7,0 +2020-05-06,Richland,North Dakota,38077,7,0 +2020-05-07,Richland,North Dakota,38077,8,0 +2020-05-08,Richland,North Dakota,38077,8,0 +2020-05-09,Richland,North Dakota,38077,8,0 +2020-05-10,Richland,North Dakota,38077,9,0 +2020-05-11,Richland,North Dakota,38077,9,0 +2020-05-12,Richland,North Dakota,38077,8,0 +2020-05-13,Richland,North Dakota,38077,8,0 +2020-05-14,Richland,North Dakota,38077,9,0 +2020-05-15,Richland,North Dakota,38077,9,0 +2020-05-16,Richland,North Dakota,38077,9,0 +2020-05-17,Richland,North Dakota,38077,9,0 +2020-05-18,Richland,North Dakota,38077,9,0 +2020-05-19,Richland,North Dakota,38077,11,0 +2020-05-20,Richland,North Dakota,38077,13,0 +2020-05-21,Richland,North Dakota,38077,14,0 +2020-05-22,Richland,North Dakota,38077,15,0 +2020-05-23,Richland,North Dakota,38077,15,0 +2020-05-24,Richland,North Dakota,38077,20,0 +2020-05-25,Richland,North Dakota,38077,20,0 +2020-05-26,Richland,North Dakota,38077,19,0 +2020-05-27,Richland,North Dakota,38077,19,0 +2020-05-28,Richland,North Dakota,38077,20,0 +2020-05-29,Richland,North Dakota,38077,21,0 +2020-05-30,Richland,North Dakota,38077,22,0 +2020-05-31,Richland,North Dakota,38077,22,0 +2020-06-01,Richland,North Dakota,38077,22,0 +2020-06-02,Richland,North Dakota,38077,22,0 +2020-06-03,Richland,North Dakota,38077,22,0 +2020-06-04,Richland,North Dakota,38077,23,0 +2020-06-05,Richland,North Dakota,38077,24,0 +2020-06-06,Richland,North Dakota,38077,27,0 +2020-06-07,Richland,North Dakota,38077,28,0 +2020-06-08,Richland,North Dakota,38077,28,0 +2020-06-09,Richland,North Dakota,38077,30,0 +2020-06-10,Richland,North Dakota,38077,31,0 +2020-06-11,Richland,North Dakota,38077,32,0 +2020-06-12,Richland,North Dakota,38077,33,0 +2020-06-13,Richland,North Dakota,38077,36,0 +2020-06-14,Richland,North Dakota,38077,37,0 +2020-06-15,Richland,North Dakota,38077,37,0 +2020-06-16,Richland,North Dakota,38077,37,0 +2020-06-17,Richland,North Dakota,38077,37,0 +2020-06-18,Richland,North Dakota,38077,37,0 +2020-06-19,Richland,North Dakota,38077,37,0 +2020-06-20,Richland,North Dakota,38077,38,0 +2020-06-21,Richland,North Dakota,38077,38,0 +2020-06-22,Richland,North Dakota,38077,39,0 +2020-06-23,Richland,North Dakota,38077,39,0 +2020-06-24,Richland,North Dakota,38077,39,0 +2020-06-25,Richland,North Dakota,38077,41,0 +2020-06-26,Richland,North Dakota,38077,41,0 +2020-06-27,Richland,North Dakota,38077,41,0 +2020-06-28,Richland,North Dakota,38077,41,0 +2020-06-29,Richland,North Dakota,38077,41,0 +2020-06-30,Richland,North Dakota,38077,41,0 +2020-07-01,Richland,North Dakota,38077,41,0 +2020-07-02,Richland,North Dakota,38077,41,0 +2020-07-03,Richland,North Dakota,38077,42,0 +2020-07-04,Richland,North Dakota,38077,43,0 +2020-07-05,Richland,North Dakota,38077,43,0 +2020-07-06,Richland,North Dakota,38077,43,0 +2020-07-07,Richland,North Dakota,38077,43,0 +2020-07-08,Richland,North Dakota,38077,43,0 +2020-07-09,Richland,North Dakota,38077,44,0 +2020-04-11,Rolette,North Dakota,38079,1,0 +2020-04-12,Rolette,North Dakota,38079,1,0 +2020-04-13,Rolette,North Dakota,38079,1,0 +2020-04-14,Rolette,North Dakota,38079,1,0 +2020-04-15,Rolette,North Dakota,38079,1,0 +2020-04-16,Rolette,North Dakota,38079,1,0 +2020-04-17,Rolette,North Dakota,38079,1,0 +2020-04-18,Rolette,North Dakota,38079,1,0 +2020-04-19,Rolette,North Dakota,38079,1,0 +2020-04-20,Rolette,North Dakota,38079,1,0 +2020-04-21,Rolette,North Dakota,38079,1,0 +2020-04-22,Rolette,North Dakota,38079,1,0 +2020-04-23,Rolette,North Dakota,38079,1,0 +2020-04-24,Rolette,North Dakota,38079,1,0 +2020-04-25,Rolette,North Dakota,38079,1,0 +2020-04-26,Rolette,North Dakota,38079,1,0 +2020-04-27,Rolette,North Dakota,38079,1,0 +2020-04-28,Rolette,North Dakota,38079,1,0 +2020-04-29,Rolette,North Dakota,38079,1,0 +2020-04-30,Rolette,North Dakota,38079,1,0 +2020-05-01,Rolette,North Dakota,38079,1,0 +2020-05-02,Rolette,North Dakota,38079,1,0 +2020-05-03,Rolette,North Dakota,38079,1,0 +2020-05-04,Rolette,North Dakota,38079,1,0 +2020-05-05,Rolette,North Dakota,38079,1,0 +2020-05-06,Rolette,North Dakota,38079,1,0 +2020-05-07,Rolette,North Dakota,38079,2,0 +2020-05-08,Rolette,North Dakota,38079,2,0 +2020-05-09,Rolette,North Dakota,38079,3,0 +2020-05-10,Rolette,North Dakota,38079,3,0 +2020-05-11,Rolette,North Dakota,38079,3,0 +2020-05-12,Rolette,North Dakota,38079,3,0 +2020-05-13,Rolette,North Dakota,38079,3,0 +2020-05-14,Rolette,North Dakota,38079,3,0 +2020-05-15,Rolette,North Dakota,38079,4,0 +2020-05-16,Rolette,North Dakota,38079,4,0 +2020-05-17,Rolette,North Dakota,38079,4,0 +2020-05-18,Rolette,North Dakota,38079,4,0 +2020-05-19,Rolette,North Dakota,38079,4,0 +2020-05-20,Rolette,North Dakota,38079,4,0 +2020-05-21,Rolette,North Dakota,38079,4,0 +2020-05-22,Rolette,North Dakota,38079,4,0 +2020-05-23,Rolette,North Dakota,38079,4,0 +2020-05-24,Rolette,North Dakota,38079,4,0 +2020-05-25,Rolette,North Dakota,38079,4,0 +2020-05-26,Rolette,North Dakota,38079,5,0 +2020-05-27,Rolette,North Dakota,38079,5,0 +2020-05-28,Rolette,North Dakota,38079,5,0 +2020-05-29,Rolette,North Dakota,38079,6,0 +2020-05-30,Rolette,North Dakota,38079,6,0 +2020-05-31,Rolette,North Dakota,38079,6,0 +2020-06-01,Rolette,North Dakota,38079,6,0 +2020-06-02,Rolette,North Dakota,38079,6,0 +2020-06-03,Rolette,North Dakota,38079,6,0 +2020-06-04,Rolette,North Dakota,38079,6,0 +2020-06-05,Rolette,North Dakota,38079,6,0 +2020-06-06,Rolette,North Dakota,38079,6,0 +2020-06-07,Rolette,North Dakota,38079,6,0 +2020-06-08,Rolette,North Dakota,38079,6,0 +2020-06-09,Rolette,North Dakota,38079,7,0 +2020-06-10,Rolette,North Dakota,38079,7,0 +2020-06-11,Rolette,North Dakota,38079,7,0 +2020-06-12,Rolette,North Dakota,38079,7,0 +2020-06-13,Rolette,North Dakota,38079,7,0 +2020-06-14,Rolette,North Dakota,38079,7,0 +2020-06-15,Rolette,North Dakota,38079,7,0 +2020-06-16,Rolette,North Dakota,38079,7,0 +2020-06-17,Rolette,North Dakota,38079,7,0 +2020-06-18,Rolette,North Dakota,38079,8,0 +2020-06-19,Rolette,North Dakota,38079,8,0 +2020-06-20,Rolette,North Dakota,38079,8,0 +2020-06-21,Rolette,North Dakota,38079,9,0 +2020-06-22,Rolette,North Dakota,38079,9,0 +2020-06-23,Rolette,North Dakota,38079,9,0 +2020-06-24,Rolette,North Dakota,38079,9,0 +2020-06-25,Rolette,North Dakota,38079,10,0 +2020-06-26,Rolette,North Dakota,38079,10,0 +2020-06-27,Rolette,North Dakota,38079,10,0 +2020-06-28,Rolette,North Dakota,38079,10,0 +2020-06-29,Rolette,North Dakota,38079,10,0 +2020-06-30,Rolette,North Dakota,38079,10,0 +2020-07-01,Rolette,North Dakota,38079,10,0 +2020-07-02,Rolette,North Dakota,38079,10,0 +2020-07-03,Rolette,North Dakota,38079,11,0 +2020-07-04,Rolette,North Dakota,38079,11,0 +2020-07-05,Rolette,North Dakota,38079,11,0 +2020-07-06,Rolette,North Dakota,38079,11,0 +2020-07-07,Rolette,North Dakota,38079,11,0 +2020-07-08,Rolette,North Dakota,38079,11,0 +2020-07-09,Rolette,North Dakota,38079,11,0 +2020-04-10,Sargent,North Dakota,38081,1,0 +2020-04-11,Sargent,North Dakota,38081,1,0 +2020-04-12,Sargent,North Dakota,38081,1,0 +2020-04-13,Sargent,North Dakota,38081,1,0 +2020-04-14,Sargent,North Dakota,38081,1,0 +2020-04-15,Sargent,North Dakota,38081,1,0 +2020-04-16,Sargent,North Dakota,38081,1,0 +2020-04-17,Sargent,North Dakota,38081,1,0 +2020-04-18,Sargent,North Dakota,38081,1,0 +2020-04-19,Sargent,North Dakota,38081,1,0 +2020-04-20,Sargent,North Dakota,38081,1,0 +2020-04-21,Sargent,North Dakota,38081,1,0 +2020-04-22,Sargent,North Dakota,38081,1,0 +2020-04-23,Sargent,North Dakota,38081,1,0 +2020-04-24,Sargent,North Dakota,38081,1,0 +2020-04-25,Sargent,North Dakota,38081,1,0 +2020-04-26,Sargent,North Dakota,38081,1,0 +2020-04-27,Sargent,North Dakota,38081,1,0 +2020-04-28,Sargent,North Dakota,38081,1,0 +2020-04-29,Sargent,North Dakota,38081,1,0 +2020-04-30,Sargent,North Dakota,38081,1,0 +2020-05-01,Sargent,North Dakota,38081,1,0 +2020-05-02,Sargent,North Dakota,38081,1,0 +2020-05-03,Sargent,North Dakota,38081,1,0 +2020-05-04,Sargent,North Dakota,38081,1,0 +2020-05-05,Sargent,North Dakota,38081,1,0 +2020-05-06,Sargent,North Dakota,38081,2,0 +2020-05-07,Sargent,North Dakota,38081,3,0 +2020-05-08,Sargent,North Dakota,38081,3,0 +2020-05-09,Sargent,North Dakota,38081,3,0 +2020-05-10,Sargent,North Dakota,38081,3,0 +2020-05-11,Sargent,North Dakota,38081,3,0 +2020-05-12,Sargent,North Dakota,38081,3,0 +2020-05-13,Sargent,North Dakota,38081,3,0 +2020-05-14,Sargent,North Dakota,38081,3,0 +2020-05-15,Sargent,North Dakota,38081,3,0 +2020-05-16,Sargent,North Dakota,38081,3,0 +2020-05-17,Sargent,North Dakota,38081,3,0 +2020-05-18,Sargent,North Dakota,38081,3,0 +2020-05-19,Sargent,North Dakota,38081,3,0 +2020-05-20,Sargent,North Dakota,38081,3,0 +2020-05-21,Sargent,North Dakota,38081,3,0 +2020-05-22,Sargent,North Dakota,38081,3,0 +2020-05-23,Sargent,North Dakota,38081,3,0 +2020-05-24,Sargent,North Dakota,38081,3,0 +2020-05-25,Sargent,North Dakota,38081,3,0 +2020-05-26,Sargent,North Dakota,38081,3,0 +2020-05-27,Sargent,North Dakota,38081,3,0 +2020-05-28,Sargent,North Dakota,38081,3,0 +2020-05-29,Sargent,North Dakota,38081,3,0 +2020-05-30,Sargent,North Dakota,38081,3,0 +2020-05-31,Sargent,North Dakota,38081,3,0 +2020-06-01,Sargent,North Dakota,38081,3,0 +2020-06-02,Sargent,North Dakota,38081,3,0 +2020-06-03,Sargent,North Dakota,38081,3,0 +2020-06-04,Sargent,North Dakota,38081,4,0 +2020-06-05,Sargent,North Dakota,38081,4,0 +2020-06-06,Sargent,North Dakota,38081,4,0 +2020-06-07,Sargent,North Dakota,38081,4,0 +2020-06-08,Sargent,North Dakota,38081,4,0 +2020-06-09,Sargent,North Dakota,38081,4,0 +2020-06-10,Sargent,North Dakota,38081,4,0 +2020-06-11,Sargent,North Dakota,38081,4,0 +2020-06-12,Sargent,North Dakota,38081,4,0 +2020-06-13,Sargent,North Dakota,38081,4,0 +2020-06-14,Sargent,North Dakota,38081,4,0 +2020-06-15,Sargent,North Dakota,38081,4,0 +2020-06-16,Sargent,North Dakota,38081,4,0 +2020-06-17,Sargent,North Dakota,38081,4,0 +2020-06-18,Sargent,North Dakota,38081,5,0 +2020-06-19,Sargent,North Dakota,38081,4,0 +2020-06-20,Sargent,North Dakota,38081,4,0 +2020-06-21,Sargent,North Dakota,38081,4,0 +2020-06-22,Sargent,North Dakota,38081,4,0 +2020-06-23,Sargent,North Dakota,38081,4,0 +2020-06-24,Sargent,North Dakota,38081,4,0 +2020-06-25,Sargent,North Dakota,38081,5,0 +2020-06-26,Sargent,North Dakota,38081,6,0 +2020-06-27,Sargent,North Dakota,38081,6,0 +2020-06-28,Sargent,North Dakota,38081,6,0 +2020-06-29,Sargent,North Dakota,38081,6,0 +2020-06-30,Sargent,North Dakota,38081,6,0 +2020-07-01,Sargent,North Dakota,38081,6,0 +2020-07-02,Sargent,North Dakota,38081,6,0 +2020-07-03,Sargent,North Dakota,38081,6,0 +2020-07-04,Sargent,North Dakota,38081,6,0 +2020-07-05,Sargent,North Dakota,38081,6,0 +2020-07-06,Sargent,North Dakota,38081,6,0 +2020-07-07,Sargent,North Dakota,38081,7,0 +2020-07-08,Sargent,North Dakota,38081,7,0 +2020-07-09,Sargent,North Dakota,38081,7,0 +2020-06-06,Sheridan,North Dakota,38083,1,0 +2020-06-07,Sheridan,North Dakota,38083,1,0 +2020-06-08,Sheridan,North Dakota,38083,1,0 +2020-06-09,Sheridan,North Dakota,38083,1,0 +2020-06-10,Sheridan,North Dakota,38083,1,0 +2020-06-11,Sheridan,North Dakota,38083,1,0 +2020-06-12,Sheridan,North Dakota,38083,1,0 +2020-06-13,Sheridan,North Dakota,38083,1,0 +2020-06-14,Sheridan,North Dakota,38083,1,0 +2020-06-15,Sheridan,North Dakota,38083,1,0 +2020-06-16,Sheridan,North Dakota,38083,1,0 +2020-06-17,Sheridan,North Dakota,38083,1,0 +2020-06-18,Sheridan,North Dakota,38083,1,0 +2020-06-19,Sheridan,North Dakota,38083,1,0 +2020-06-20,Sheridan,North Dakota,38083,1,0 +2020-06-21,Sheridan,North Dakota,38083,1,0 +2020-06-22,Sheridan,North Dakota,38083,1,0 +2020-06-23,Sheridan,North Dakota,38083,1,0 +2020-06-24,Sheridan,North Dakota,38083,1,0 +2020-06-25,Sheridan,North Dakota,38083,1,0 +2020-06-26,Sheridan,North Dakota,38083,1,0 +2020-06-27,Sheridan,North Dakota,38083,1,0 +2020-06-28,Sheridan,North Dakota,38083,1,0 +2020-06-29,Sheridan,North Dakota,38083,1,0 +2020-06-30,Sheridan,North Dakota,38083,1,0 +2020-07-01,Sheridan,North Dakota,38083,1,0 +2020-07-02,Sheridan,North Dakota,38083,1,0 +2020-07-03,Sheridan,North Dakota,38083,1,0 +2020-07-04,Sheridan,North Dakota,38083,1,0 +2020-07-05,Sheridan,North Dakota,38083,1,0 +2020-07-06,Sheridan,North Dakota,38083,1,0 +2020-07-07,Sheridan,North Dakota,38083,1,0 +2020-07-08,Sheridan,North Dakota,38083,2,0 +2020-07-09,Sheridan,North Dakota,38083,2,0 +2020-03-28,Sioux,North Dakota,38085,1,0 +2020-03-29,Sioux,North Dakota,38085,1,0 +2020-03-30,Sioux,North Dakota,38085,1,0 +2020-03-31,Sioux,North Dakota,38085,1,0 +2020-04-01,Sioux,North Dakota,38085,1,0 +2020-04-02,Sioux,North Dakota,38085,1,0 +2020-04-03,Sioux,North Dakota,38085,1,0 +2020-04-04,Sioux,North Dakota,38085,1,0 +2020-04-05,Sioux,North Dakota,38085,1,0 +2020-04-06,Sioux,North Dakota,38085,1,0 +2020-04-07,Sioux,North Dakota,38085,1,0 +2020-04-08,Sioux,North Dakota,38085,1,0 +2020-04-09,Sioux,North Dakota,38085,1,0 +2020-04-10,Sioux,North Dakota,38085,1,0 +2020-04-11,Sioux,North Dakota,38085,1,0 +2020-04-12,Sioux,North Dakota,38085,1,0 +2020-04-13,Sioux,North Dakota,38085,1,0 +2020-04-14,Sioux,North Dakota,38085,1,0 +2020-04-15,Sioux,North Dakota,38085,1,0 +2020-04-16,Sioux,North Dakota,38085,1,0 +2020-04-17,Sioux,North Dakota,38085,1,0 +2020-04-18,Sioux,North Dakota,38085,1,0 +2020-04-19,Sioux,North Dakota,38085,1,0 +2020-04-20,Sioux,North Dakota,38085,1,0 +2020-04-21,Sioux,North Dakota,38085,2,0 +2020-04-22,Sioux,North Dakota,38085,1,0 +2020-04-23,Sioux,North Dakota,38085,1,0 +2020-04-24,Sioux,North Dakota,38085,1,0 +2020-04-25,Sioux,North Dakota,38085,1,0 +2020-04-26,Sioux,North Dakota,38085,1,0 +2020-04-27,Sioux,North Dakota,38085,1,0 +2020-04-28,Sioux,North Dakota,38085,1,0 +2020-04-29,Sioux,North Dakota,38085,1,0 +2020-04-30,Sioux,North Dakota,38085,1,0 +2020-05-01,Sioux,North Dakota,38085,1,0 +2020-05-02,Sioux,North Dakota,38085,1,0 +2020-05-03,Sioux,North Dakota,38085,1,0 +2020-05-04,Sioux,North Dakota,38085,1,0 +2020-05-05,Sioux,North Dakota,38085,1,0 +2020-05-06,Sioux,North Dakota,38085,1,0 +2020-05-07,Sioux,North Dakota,38085,1,0 +2020-05-08,Sioux,North Dakota,38085,1,0 +2020-05-09,Sioux,North Dakota,38085,1,0 +2020-05-10,Sioux,North Dakota,38085,1,0 +2020-05-11,Sioux,North Dakota,38085,1,0 +2020-05-12,Sioux,North Dakota,38085,1,0 +2020-05-13,Sioux,North Dakota,38085,1,0 +2020-05-14,Sioux,North Dakota,38085,1,0 +2020-05-15,Sioux,North Dakota,38085,1,0 +2020-05-16,Sioux,North Dakota,38085,1,0 +2020-05-17,Sioux,North Dakota,38085,1,0 +2020-05-18,Sioux,North Dakota,38085,2,0 +2020-05-19,Sioux,North Dakota,38085,2,0 +2020-05-20,Sioux,North Dakota,38085,2,0 +2020-05-21,Sioux,North Dakota,38085,2,0 +2020-05-22,Sioux,North Dakota,38085,2,0 +2020-05-23,Sioux,North Dakota,38085,2,0 +2020-05-24,Sioux,North Dakota,38085,2,0 +2020-05-25,Sioux,North Dakota,38085,2,0 +2020-05-26,Sioux,North Dakota,38085,2,0 +2020-05-27,Sioux,North Dakota,38085,2,0 +2020-05-28,Sioux,North Dakota,38085,2,0 +2020-05-29,Sioux,North Dakota,38085,2,0 +2020-05-30,Sioux,North Dakota,38085,2,0 +2020-05-31,Sioux,North Dakota,38085,2,0 +2020-06-01,Sioux,North Dakota,38085,1,0 +2020-06-02,Sioux,North Dakota,38085,1,0 +2020-06-03,Sioux,North Dakota,38085,1,0 +2020-06-04,Sioux,North Dakota,38085,1,0 +2020-06-05,Sioux,North Dakota,38085,2,0 +2020-06-06,Sioux,North Dakota,38085,2,0 +2020-06-07,Sioux,North Dakota,38085,2,0 +2020-06-08,Sioux,North Dakota,38085,2,0 +2020-06-09,Sioux,North Dakota,38085,2,0 +2020-06-10,Sioux,North Dakota,38085,2,0 +2020-06-11,Sioux,North Dakota,38085,2,0 +2020-06-12,Sioux,North Dakota,38085,3,0 +2020-06-13,Sioux,North Dakota,38085,3,0 +2020-06-14,Sioux,North Dakota,38085,3,0 +2020-06-15,Sioux,North Dakota,38085,4,0 +2020-06-16,Sioux,North Dakota,38085,4,0 +2020-06-17,Sioux,North Dakota,38085,7,0 +2020-06-18,Sioux,North Dakota,38085,10,0 +2020-06-19,Sioux,North Dakota,38085,12,0 +2020-06-20,Sioux,North Dakota,38085,12,0 +2020-06-21,Sioux,North Dakota,38085,12,0 +2020-06-22,Sioux,North Dakota,38085,19,0 +2020-06-23,Sioux,North Dakota,38085,19,0 +2020-06-24,Sioux,North Dakota,38085,20,0 +2020-06-25,Sioux,North Dakota,38085,20,0 +2020-06-26,Sioux,North Dakota,38085,20,0 +2020-06-27,Sioux,North Dakota,38085,21,0 +2020-06-28,Sioux,North Dakota,38085,21,0 +2020-06-29,Sioux,North Dakota,38085,24,0 +2020-06-30,Sioux,North Dakota,38085,24,0 +2020-07-01,Sioux,North Dakota,38085,24,0 +2020-07-02,Sioux,North Dakota,38085,23,0 +2020-07-03,Sioux,North Dakota,38085,25,0 +2020-07-04,Sioux,North Dakota,38085,25,0 +2020-07-05,Sioux,North Dakota,38085,25,0 +2020-07-06,Sioux,North Dakota,38085,25,0 +2020-07-07,Sioux,North Dakota,38085,26,0 +2020-07-08,Sioux,North Dakota,38085,29,0 +2020-07-09,Sioux,North Dakota,38085,32,0 +2020-04-03,Slope,North Dakota,38087,1,0 +2020-04-04,Slope,North Dakota,38087,1,0 +2020-04-05,Slope,North Dakota,38087,1,0 +2020-04-06,Slope,North Dakota,38087,2,0 +2020-04-07,Slope,North Dakota,38087,3,0 +2020-04-08,Slope,North Dakota,38087,3,0 +2020-04-09,Slope,North Dakota,38087,3,0 +2020-04-10,Slope,North Dakota,38087,3,0 +2020-04-11,Slope,North Dakota,38087,3,0 +2020-04-12,Slope,North Dakota,38087,3,0 +2020-04-13,Slope,North Dakota,38087,3,0 +2020-04-14,Slope,North Dakota,38087,3,0 +2020-04-15,Slope,North Dakota,38087,3,0 +2020-04-16,Slope,North Dakota,38087,3,0 +2020-04-17,Slope,North Dakota,38087,3,0 +2020-04-18,Slope,North Dakota,38087,3,0 +2020-04-19,Slope,North Dakota,38087,3,0 +2020-04-20,Slope,North Dakota,38087,3,0 +2020-04-21,Slope,North Dakota,38087,3,0 +2020-04-22,Slope,North Dakota,38087,3,0 +2020-04-23,Slope,North Dakota,38087,3,0 +2020-04-24,Slope,North Dakota,38087,3,0 +2020-04-25,Slope,North Dakota,38087,3,0 +2020-04-26,Slope,North Dakota,38087,3,0 +2020-04-27,Slope,North Dakota,38087,3,0 +2020-04-28,Slope,North Dakota,38087,3,0 +2020-04-29,Slope,North Dakota,38087,3,0 +2020-04-30,Slope,North Dakota,38087,3,0 +2020-05-01,Slope,North Dakota,38087,3,0 +2020-05-02,Slope,North Dakota,38087,3,0 +2020-05-03,Slope,North Dakota,38087,3,0 +2020-05-04,Slope,North Dakota,38087,3,0 +2020-05-05,Slope,North Dakota,38087,3,0 +2020-05-06,Slope,North Dakota,38087,3,0 +2020-05-07,Slope,North Dakota,38087,3,0 +2020-05-08,Slope,North Dakota,38087,3,0 +2020-05-09,Slope,North Dakota,38087,3,0 +2020-05-10,Slope,North Dakota,38087,3,0 +2020-05-11,Slope,North Dakota,38087,3,0 +2020-05-12,Slope,North Dakota,38087,3,0 +2020-05-13,Slope,North Dakota,38087,3,0 +2020-05-14,Slope,North Dakota,38087,3,0 +2020-05-15,Slope,North Dakota,38087,3,0 +2020-05-16,Slope,North Dakota,38087,3,0 +2020-05-17,Slope,North Dakota,38087,3,0 +2020-05-18,Slope,North Dakota,38087,3,0 +2020-05-19,Slope,North Dakota,38087,3,0 +2020-05-20,Slope,North Dakota,38087,3,0 +2020-05-21,Slope,North Dakota,38087,3,0 +2020-05-22,Slope,North Dakota,38087,3,0 +2020-05-23,Slope,North Dakota,38087,3,0 +2020-05-24,Slope,North Dakota,38087,3,0 +2020-05-25,Slope,North Dakota,38087,3,0 +2020-05-26,Slope,North Dakota,38087,3,0 +2020-05-27,Slope,North Dakota,38087,3,0 +2020-05-28,Slope,North Dakota,38087,3,0 +2020-05-29,Slope,North Dakota,38087,3,0 +2020-05-30,Slope,North Dakota,38087,3,0 +2020-05-31,Slope,North Dakota,38087,3,0 +2020-06-01,Slope,North Dakota,38087,3,0 +2020-06-02,Slope,North Dakota,38087,3,0 +2020-06-03,Slope,North Dakota,38087,3,0 +2020-06-04,Slope,North Dakota,38087,3,0 +2020-06-05,Slope,North Dakota,38087,3,0 +2020-06-06,Slope,North Dakota,38087,3,0 +2020-06-07,Slope,North Dakota,38087,3,0 +2020-06-08,Slope,North Dakota,38087,3,0 +2020-06-09,Slope,North Dakota,38087,3,0 +2020-06-10,Slope,North Dakota,38087,3,0 +2020-06-11,Slope,North Dakota,38087,3,0 +2020-06-12,Slope,North Dakota,38087,3,0 +2020-06-13,Slope,North Dakota,38087,3,0 +2020-06-14,Slope,North Dakota,38087,3,0 +2020-06-15,Slope,North Dakota,38087,3,0 +2020-06-16,Slope,North Dakota,38087,3,0 +2020-06-17,Slope,North Dakota,38087,3,0 +2020-06-18,Slope,North Dakota,38087,3,0 +2020-06-19,Slope,North Dakota,38087,3,0 +2020-06-20,Slope,North Dakota,38087,3,0 +2020-06-21,Slope,North Dakota,38087,3,0 +2020-06-22,Slope,North Dakota,38087,3,0 +2020-06-23,Slope,North Dakota,38087,3,0 +2020-06-24,Slope,North Dakota,38087,3,0 +2020-06-25,Slope,North Dakota,38087,3,0 +2020-06-26,Slope,North Dakota,38087,3,0 +2020-06-27,Slope,North Dakota,38087,3,0 +2020-06-28,Slope,North Dakota,38087,3,0 +2020-06-29,Slope,North Dakota,38087,3,0 +2020-06-30,Slope,North Dakota,38087,3,0 +2020-07-01,Slope,North Dakota,38087,3,0 +2020-07-02,Slope,North Dakota,38087,3,0 +2020-07-03,Slope,North Dakota,38087,3,0 +2020-07-04,Slope,North Dakota,38087,3,0 +2020-07-05,Slope,North Dakota,38087,3,0 +2020-07-06,Slope,North Dakota,38087,3,0 +2020-07-07,Slope,North Dakota,38087,3,0 +2020-07-08,Slope,North Dakota,38087,3,0 +2020-07-09,Slope,North Dakota,38087,3,0 +2020-03-25,Stark,North Dakota,38089,2,0 +2020-03-26,Stark,North Dakota,38089,5,0 +2020-03-27,Stark,North Dakota,38089,7,0 +2020-03-28,Stark,North Dakota,38089,9,0 +2020-03-29,Stark,North Dakota,38089,10,0 +2020-03-30,Stark,North Dakota,38089,11,0 +2020-03-31,Stark,North Dakota,38089,12,0 +2020-04-01,Stark,North Dakota,38089,16,0 +2020-04-02,Stark,North Dakota,38089,18,0 +2020-04-03,Stark,North Dakota,38089,19,0 +2020-04-04,Stark,North Dakota,38089,22,0 +2020-04-05,Stark,North Dakota,38089,25,0 +2020-04-06,Stark,North Dakota,38089,25,0 +2020-04-07,Stark,North Dakota,38089,25,0 +2020-04-08,Stark,North Dakota,38089,28,0 +2020-04-09,Stark,North Dakota,38089,29,1 +2020-04-10,Stark,North Dakota,38089,29,2 +2020-04-11,Stark,North Dakota,38089,30,2 +2020-04-12,Stark,North Dakota,38089,32,2 +2020-04-13,Stark,North Dakota,38089,34,2 +2020-04-14,Stark,North Dakota,38089,34,2 +2020-04-15,Stark,North Dakota,38089,34,2 +2020-04-16,Stark,North Dakota,38089,37,2 +2020-04-17,Stark,North Dakota,38089,39,2 +2020-04-18,Stark,North Dakota,38089,38,2 +2020-04-19,Stark,North Dakota,38089,39,2 +2020-04-20,Stark,North Dakota,38089,39,2 +2020-04-21,Stark,North Dakota,38089,39,2 +2020-04-22,Stark,North Dakota,38089,40,2 +2020-04-23,Stark,North Dakota,38089,40,2 +2020-04-24,Stark,North Dakota,38089,40,2 +2020-04-25,Stark,North Dakota,38089,40,2 +2020-04-26,Stark,North Dakota,38089,41,2 +2020-04-27,Stark,North Dakota,38089,41,2 +2020-04-28,Stark,North Dakota,38089,44,2 +2020-04-29,Stark,North Dakota,38089,46,2 +2020-04-30,Stark,North Dakota,38089,49,2 +2020-05-01,Stark,North Dakota,38089,52,2 +2020-05-02,Stark,North Dakota,38089,54,2 +2020-05-03,Stark,North Dakota,38089,55,2 +2020-05-04,Stark,North Dakota,38089,57,2 +2020-05-05,Stark,North Dakota,38089,57,2 +2020-05-06,Stark,North Dakota,38089,57,2 +2020-05-07,Stark,North Dakota,38089,60,2 +2020-05-08,Stark,North Dakota,38089,60,2 +2020-05-09,Stark,North Dakota,38089,61,2 +2020-05-10,Stark,North Dakota,38089,61,2 +2020-05-11,Stark,North Dakota,38089,61,2 +2020-05-12,Stark,North Dakota,38089,61,2 +2020-05-13,Stark,North Dakota,38089,61,2 +2020-05-14,Stark,North Dakota,38089,61,2 +2020-05-15,Stark,North Dakota,38089,61,2 +2020-05-16,Stark,North Dakota,38089,61,2 +2020-05-17,Stark,North Dakota,38089,61,2 +2020-05-18,Stark,North Dakota,38089,61,2 +2020-05-19,Stark,North Dakota,38089,61,2 +2020-05-20,Stark,North Dakota,38089,61,2 +2020-05-21,Stark,North Dakota,38089,61,2 +2020-05-22,Stark,North Dakota,38089,61,2 +2020-05-23,Stark,North Dakota,38089,61,2 +2020-05-24,Stark,North Dakota,38089,61,2 +2020-05-25,Stark,North Dakota,38089,61,2 +2020-05-26,Stark,North Dakota,38089,61,2 +2020-05-27,Stark,North Dakota,38089,61,2 +2020-05-28,Stark,North Dakota,38089,61,2 +2020-05-29,Stark,North Dakota,38089,61,2 +2020-05-30,Stark,North Dakota,38089,61,2 +2020-05-31,Stark,North Dakota,38089,62,2 +2020-06-01,Stark,North Dakota,38089,62,2 +2020-06-02,Stark,North Dakota,38089,62,2 +2020-06-03,Stark,North Dakota,38089,62,2 +2020-06-04,Stark,North Dakota,38089,62,2 +2020-06-05,Stark,North Dakota,38089,62,2 +2020-06-06,Stark,North Dakota,38089,62,2 +2020-06-07,Stark,North Dakota,38089,62,2 +2020-06-08,Stark,North Dakota,38089,62,2 +2020-06-09,Stark,North Dakota,38089,63,2 +2020-06-10,Stark,North Dakota,38089,63,2 +2020-06-11,Stark,North Dakota,38089,63,2 +2020-06-12,Stark,North Dakota,38089,63,2 +2020-06-13,Stark,North Dakota,38089,63,2 +2020-06-14,Stark,North Dakota,38089,63,2 +2020-06-15,Stark,North Dakota,38089,63,2 +2020-06-16,Stark,North Dakota,38089,63,2 +2020-06-17,Stark,North Dakota,38089,63,2 +2020-06-18,Stark,North Dakota,38089,65,2 +2020-06-19,Stark,North Dakota,38089,68,2 +2020-06-20,Stark,North Dakota,38089,67,2 +2020-06-21,Stark,North Dakota,38089,68,2 +2020-06-22,Stark,North Dakota,38089,68,2 +2020-06-23,Stark,North Dakota,38089,68,2 +2020-06-24,Stark,North Dakota,38089,68,2 +2020-06-25,Stark,North Dakota,38089,70,2 +2020-06-26,Stark,North Dakota,38089,71,2 +2020-06-27,Stark,North Dakota,38089,71,2 +2020-06-28,Stark,North Dakota,38089,73,2 +2020-06-29,Stark,North Dakota,38089,73,2 +2020-06-30,Stark,North Dakota,38089,73,2 +2020-07-01,Stark,North Dakota,38089,75,3 +2020-07-02,Stark,North Dakota,38089,77,3 +2020-07-03,Stark,North Dakota,38089,77,3 +2020-07-04,Stark,North Dakota,38089,77,3 +2020-07-05,Stark,North Dakota,38089,80,3 +2020-07-06,Stark,North Dakota,38089,80,3 +2020-07-07,Stark,North Dakota,38089,82,3 +2020-07-08,Stark,North Dakota,38089,83,3 +2020-07-09,Stark,North Dakota,38089,85,3 +2020-05-17,Steele,North Dakota,38091,1,0 +2020-05-18,Steele,North Dakota,38091,1,0 +2020-05-19,Steele,North Dakota,38091,1,0 +2020-05-20,Steele,North Dakota,38091,1,0 +2020-05-21,Steele,North Dakota,38091,1,0 +2020-05-22,Steele,North Dakota,38091,1,0 +2020-05-23,Steele,North Dakota,38091,1,0 +2020-05-24,Steele,North Dakota,38091,1,0 +2020-05-25,Steele,North Dakota,38091,1,0 +2020-05-26,Steele,North Dakota,38091,1,0 +2020-05-27,Steele,North Dakota,38091,1,0 +2020-05-28,Steele,North Dakota,38091,1,0 +2020-05-29,Steele,North Dakota,38091,1,0 +2020-05-30,Steele,North Dakota,38091,1,0 +2020-05-31,Steele,North Dakota,38091,1,0 +2020-06-01,Steele,North Dakota,38091,1,0 +2020-06-02,Steele,North Dakota,38091,1,0 +2020-06-03,Steele,North Dakota,38091,1,0 +2020-06-04,Steele,North Dakota,38091,1,0 +2020-06-05,Steele,North Dakota,38091,1,0 +2020-06-06,Steele,North Dakota,38091,1,0 +2020-06-07,Steele,North Dakota,38091,1,0 +2020-06-08,Steele,North Dakota,38091,1,0 +2020-06-09,Steele,North Dakota,38091,1,0 +2020-06-10,Steele,North Dakota,38091,1,0 +2020-06-11,Steele,North Dakota,38091,1,0 +2020-06-12,Steele,North Dakota,38091,1,0 +2020-06-13,Steele,North Dakota,38091,1,0 +2020-06-14,Steele,North Dakota,38091,1,0 +2020-06-15,Steele,North Dakota,38091,1,0 +2020-06-16,Steele,North Dakota,38091,1,0 +2020-06-17,Steele,North Dakota,38091,1,0 +2020-06-18,Steele,North Dakota,38091,1,0 +2020-06-19,Steele,North Dakota,38091,1,0 +2020-06-20,Steele,North Dakota,38091,1,0 +2020-06-21,Steele,North Dakota,38091,1,0 +2020-06-22,Steele,North Dakota,38091,1,0 +2020-06-23,Steele,North Dakota,38091,1,0 +2020-06-24,Steele,North Dakota,38091,1,0 +2020-06-25,Steele,North Dakota,38091,1,0 +2020-06-26,Steele,North Dakota,38091,1,0 +2020-06-27,Steele,North Dakota,38091,1,0 +2020-06-28,Steele,North Dakota,38091,1,0 +2020-06-29,Steele,North Dakota,38091,1,0 +2020-06-30,Steele,North Dakota,38091,1,0 +2020-07-01,Steele,North Dakota,38091,2,0 +2020-07-02,Steele,North Dakota,38091,2,0 +2020-07-03,Steele,North Dakota,38091,2,0 +2020-07-04,Steele,North Dakota,38091,2,0 +2020-07-05,Steele,North Dakota,38091,2,0 +2020-07-06,Steele,North Dakota,38091,3,0 +2020-07-07,Steele,North Dakota,38091,3,0 +2020-07-08,Steele,North Dakota,38091,3,0 +2020-07-09,Steele,North Dakota,38091,3,0 +2020-04-08,Stutsman,North Dakota,38093,1,0 +2020-04-09,Stutsman,North Dakota,38093,1,0 +2020-04-10,Stutsman,North Dakota,38093,1,0 +2020-04-11,Stutsman,North Dakota,38093,1,0 +2020-04-12,Stutsman,North Dakota,38093,1,0 +2020-04-13,Stutsman,North Dakota,38093,1,0 +2020-04-14,Stutsman,North Dakota,38093,1,0 +2020-04-15,Stutsman,North Dakota,38093,1,0 +2020-04-16,Stutsman,North Dakota,38093,1,0 +2020-04-17,Stutsman,North Dakota,38093,1,0 +2020-04-18,Stutsman,North Dakota,38093,1,0 +2020-04-19,Stutsman,North Dakota,38093,1,0 +2020-04-20,Stutsman,North Dakota,38093,3,0 +2020-04-21,Stutsman,North Dakota,38093,3,0 +2020-04-22,Stutsman,North Dakota,38093,3,0 +2020-04-23,Stutsman,North Dakota,38093,3,0 +2020-04-24,Stutsman,North Dakota,38093,3,0 +2020-04-25,Stutsman,North Dakota,38093,4,0 +2020-04-26,Stutsman,North Dakota,38093,4,0 +2020-04-27,Stutsman,North Dakota,38093,4,0 +2020-04-28,Stutsman,North Dakota,38093,5,0 +2020-04-29,Stutsman,North Dakota,38093,6,0 +2020-04-30,Stutsman,North Dakota,38093,6,0 +2020-05-01,Stutsman,North Dakota,38093,7,0 +2020-05-02,Stutsman,North Dakota,38093,10,0 +2020-05-03,Stutsman,North Dakota,38093,11,0 +2020-05-04,Stutsman,North Dakota,38093,11,0 +2020-05-05,Stutsman,North Dakota,38093,12,0 +2020-05-06,Stutsman,North Dakota,38093,12,0 +2020-05-07,Stutsman,North Dakota,38093,12,0 +2020-05-08,Stutsman,North Dakota,38093,12,0 +2020-05-09,Stutsman,North Dakota,38093,13,0 +2020-05-10,Stutsman,North Dakota,38093,13,0 +2020-05-11,Stutsman,North Dakota,38093,15,0 +2020-05-12,Stutsman,North Dakota,38093,16,0 +2020-05-13,Stutsman,North Dakota,38093,16,0 +2020-05-14,Stutsman,North Dakota,38093,16,0 +2020-05-15,Stutsman,North Dakota,38093,16,0 +2020-05-16,Stutsman,North Dakota,38093,16,0 +2020-05-17,Stutsman,North Dakota,38093,16,0 +2020-05-18,Stutsman,North Dakota,38093,16,0 +2020-05-19,Stutsman,North Dakota,38093,16,0 +2020-05-20,Stutsman,North Dakota,38093,17,0 +2020-05-21,Stutsman,North Dakota,38093,17,0 +2020-05-22,Stutsman,North Dakota,38093,18,0 +2020-05-23,Stutsman,North Dakota,38093,18,0 +2020-05-24,Stutsman,North Dakota,38093,18,0 +2020-05-25,Stutsman,North Dakota,38093,18,0 +2020-05-26,Stutsman,North Dakota,38093,18,0 +2020-05-27,Stutsman,North Dakota,38093,18,0 +2020-05-28,Stutsman,North Dakota,38093,18,0 +2020-05-29,Stutsman,North Dakota,38093,22,0 +2020-05-30,Stutsman,North Dakota,38093,23,0 +2020-05-31,Stutsman,North Dakota,38093,23,0 +2020-06-01,Stutsman,North Dakota,38093,24,0 +2020-06-02,Stutsman,North Dakota,38093,24,0 +2020-06-03,Stutsman,North Dakota,38093,29,0 +2020-06-04,Stutsman,North Dakota,38093,29,0 +2020-06-05,Stutsman,North Dakota,38093,30,0 +2020-06-06,Stutsman,North Dakota,38093,35,0 +2020-06-07,Stutsman,North Dakota,38093,42,0 +2020-06-08,Stutsman,North Dakota,38093,50,0 +2020-06-09,Stutsman,North Dakota,38093,49,0 +2020-06-10,Stutsman,North Dakota,38093,51,0 +2020-06-11,Stutsman,North Dakota,38093,51,0 +2020-06-12,Stutsman,North Dakota,38093,51,0 +2020-06-13,Stutsman,North Dakota,38093,51,0 +2020-06-14,Stutsman,North Dakota,38093,52,0 +2020-06-15,Stutsman,North Dakota,38093,52,0 +2020-06-16,Stutsman,North Dakota,38093,52,0 +2020-06-17,Stutsman,North Dakota,38093,60,0 +2020-06-18,Stutsman,North Dakota,38093,60,0 +2020-06-19,Stutsman,North Dakota,38093,60,0 +2020-06-20,Stutsman,North Dakota,38093,60,0 +2020-06-21,Stutsman,North Dakota,38093,62,1 +2020-06-22,Stutsman,North Dakota,38093,62,1 +2020-06-23,Stutsman,North Dakota,38093,62,1 +2020-06-24,Stutsman,North Dakota,38093,62,1 +2020-06-25,Stutsman,North Dakota,38093,62,1 +2020-06-26,Stutsman,North Dakota,38093,63,1 +2020-06-27,Stutsman,North Dakota,38093,63,1 +2020-06-28,Stutsman,North Dakota,38093,63,1 +2020-06-29,Stutsman,North Dakota,38093,63,1 +2020-06-30,Stutsman,North Dakota,38093,63,1 +2020-07-01,Stutsman,North Dakota,38093,63,1 +2020-07-02,Stutsman,North Dakota,38093,63,1 +2020-07-03,Stutsman,North Dakota,38093,63,1 +2020-07-04,Stutsman,North Dakota,38093,63,1 +2020-07-05,Stutsman,North Dakota,38093,64,1 +2020-07-06,Stutsman,North Dakota,38093,65,1 +2020-07-07,Stutsman,North Dakota,38093,65,2 +2020-07-08,Stutsman,North Dakota,38093,65,2 +2020-07-09,Stutsman,North Dakota,38093,66,2 +2020-07-07,Towner,North Dakota,38095,1,0 +2020-07-08,Towner,North Dakota,38095,1,0 +2020-07-09,Towner,North Dakota,38095,1,0 +2020-05-07,Traill,North Dakota,38097,1,0 +2020-05-08,Traill,North Dakota,38097,1,0 +2020-05-09,Traill,North Dakota,38097,1,0 +2020-05-10,Traill,North Dakota,38097,1,0 +2020-05-11,Traill,North Dakota,38097,1,0 +2020-05-12,Traill,North Dakota,38097,1,0 +2020-05-13,Traill,North Dakota,38097,1,0 +2020-05-14,Traill,North Dakota,38097,1,0 +2020-05-15,Traill,North Dakota,38097,1,0 +2020-05-16,Traill,North Dakota,38097,1,0 +2020-05-17,Traill,North Dakota,38097,2,0 +2020-05-18,Traill,North Dakota,38097,2,0 +2020-05-19,Traill,North Dakota,38097,2,0 +2020-05-20,Traill,North Dakota,38097,20,0 +2020-05-21,Traill,North Dakota,38097,20,0 +2020-05-22,Traill,North Dakota,38097,20,0 +2020-05-23,Traill,North Dakota,38097,20,0 +2020-05-24,Traill,North Dakota,38097,21,0 +2020-05-25,Traill,North Dakota,38097,21,0 +2020-05-26,Traill,North Dakota,38097,10,0 +2020-05-27,Traill,North Dakota,38097,10,0 +2020-05-28,Traill,North Dakota,38097,11,0 +2020-05-29,Traill,North Dakota,38097,11,0 +2020-05-30,Traill,North Dakota,38097,12,0 +2020-05-31,Traill,North Dakota,38097,13,0 +2020-06-01,Traill,North Dakota,38097,14,0 +2020-06-02,Traill,North Dakota,38097,14,0 +2020-06-03,Traill,North Dakota,38097,14,0 +2020-06-04,Traill,North Dakota,38097,14,0 +2020-06-05,Traill,North Dakota,38097,14,0 +2020-06-06,Traill,North Dakota,38097,14,0 +2020-06-07,Traill,North Dakota,38097,14,0 +2020-06-08,Traill,North Dakota,38097,14,0 +2020-06-09,Traill,North Dakota,38097,14,0 +2020-06-10,Traill,North Dakota,38097,14,0 +2020-06-11,Traill,North Dakota,38097,15,0 +2020-06-12,Traill,North Dakota,38097,15,0 +2020-06-13,Traill,North Dakota,38097,15,0 +2020-06-14,Traill,North Dakota,38097,15,0 +2020-06-15,Traill,North Dakota,38097,15,0 +2020-06-16,Traill,North Dakota,38097,15,0 +2020-06-17,Traill,North Dakota,38097,15,0 +2020-06-18,Traill,North Dakota,38097,15,0 +2020-06-19,Traill,North Dakota,38097,15,0 +2020-06-20,Traill,North Dakota,38097,15,0 +2020-06-21,Traill,North Dakota,38097,15,0 +2020-06-22,Traill,North Dakota,38097,15,0 +2020-06-23,Traill,North Dakota,38097,15,0 +2020-06-24,Traill,North Dakota,38097,15,0 +2020-06-25,Traill,North Dakota,38097,15,0 +2020-06-26,Traill,North Dakota,38097,15,0 +2020-06-27,Traill,North Dakota,38097,16,0 +2020-06-28,Traill,North Dakota,38097,17,0 +2020-06-29,Traill,North Dakota,38097,17,0 +2020-06-30,Traill,North Dakota,38097,17,0 +2020-07-01,Traill,North Dakota,38097,19,0 +2020-07-02,Traill,North Dakota,38097,20,0 +2020-07-03,Traill,North Dakota,38097,21,0 +2020-07-04,Traill,North Dakota,38097,21,0 +2020-07-05,Traill,North Dakota,38097,21,0 +2020-07-06,Traill,North Dakota,38097,22,0 +2020-07-07,Traill,North Dakota,38097,22,0 +2020-07-08,Traill,North Dakota,38097,22,0 +2020-07-09,Traill,North Dakota,38097,23,0 +2020-03-23,Walsh,North Dakota,38099,1,0 +2020-03-24,Walsh,North Dakota,38099,1,0 +2020-03-25,Walsh,North Dakota,38099,1,0 +2020-03-26,Walsh,North Dakota,38099,1,0 +2020-03-27,Walsh,North Dakota,38099,1,0 +2020-03-28,Walsh,North Dakota,38099,1,0 +2020-03-29,Walsh,North Dakota,38099,1,0 +2020-03-30,Walsh,North Dakota,38099,1,0 +2020-03-31,Walsh,North Dakota,38099,1,0 +2020-04-01,Walsh,North Dakota,38099,1,0 +2020-04-02,Walsh,North Dakota,38099,1,0 +2020-04-03,Walsh,North Dakota,38099,1,0 +2020-04-04,Walsh,North Dakota,38099,1,0 +2020-04-05,Walsh,North Dakota,38099,1,0 +2020-04-06,Walsh,North Dakota,38099,3,0 +2020-04-07,Walsh,North Dakota,38099,3,0 +2020-04-08,Walsh,North Dakota,38099,3,0 +2020-04-09,Walsh,North Dakota,38099,3,0 +2020-04-10,Walsh,North Dakota,38099,3,0 +2020-04-11,Walsh,North Dakota,38099,3,0 +2020-04-12,Walsh,North Dakota,38099,3,0 +2020-04-13,Walsh,North Dakota,38099,3,0 +2020-04-14,Walsh,North Dakota,38099,3,0 +2020-04-15,Walsh,North Dakota,38099,3,0 +2020-04-16,Walsh,North Dakota,38099,3,0 +2020-04-17,Walsh,North Dakota,38099,3,0 +2020-04-18,Walsh,North Dakota,38099,3,0 +2020-04-19,Walsh,North Dakota,38099,3,0 +2020-04-20,Walsh,North Dakota,38099,3,0 +2020-04-21,Walsh,North Dakota,38099,3,0 +2020-04-22,Walsh,North Dakota,38099,3,0 +2020-04-23,Walsh,North Dakota,38099,3,0 +2020-04-24,Walsh,North Dakota,38099,4,0 +2020-04-25,Walsh,North Dakota,38099,4,0 +2020-04-26,Walsh,North Dakota,38099,4,0 +2020-04-27,Walsh,North Dakota,38099,7,0 +2020-04-28,Walsh,North Dakota,38099,7,0 +2020-04-29,Walsh,North Dakota,38099,7,0 +2020-04-30,Walsh,North Dakota,38099,7,0 +2020-05-01,Walsh,North Dakota,38099,7,0 +2020-05-02,Walsh,North Dakota,38099,7,0 +2020-05-03,Walsh,North Dakota,38099,7,0 +2020-05-04,Walsh,North Dakota,38099,7,0 +2020-05-05,Walsh,North Dakota,38099,7,0 +2020-05-06,Walsh,North Dakota,38099,7,0 +2020-05-07,Walsh,North Dakota,38099,8,0 +2020-05-08,Walsh,North Dakota,38099,8,0 +2020-05-09,Walsh,North Dakota,38099,8,0 +2020-05-10,Walsh,North Dakota,38099,8,0 +2020-05-11,Walsh,North Dakota,38099,8,0 +2020-05-12,Walsh,North Dakota,38099,8,0 +2020-05-13,Walsh,North Dakota,38099,9,0 +2020-05-14,Walsh,North Dakota,38099,9,0 +2020-05-15,Walsh,North Dakota,38099,9,0 +2020-05-16,Walsh,North Dakota,38099,9,0 +2020-05-17,Walsh,North Dakota,38099,10,0 +2020-05-18,Walsh,North Dakota,38099,10,0 +2020-05-19,Walsh,North Dakota,38099,10,0 +2020-05-20,Walsh,North Dakota,38099,11,0 +2020-05-21,Walsh,North Dakota,38099,11,0 +2020-05-22,Walsh,North Dakota,38099,11,0 +2020-05-23,Walsh,North Dakota,38099,11,0 +2020-05-24,Walsh,North Dakota,38099,13,0 +2020-05-25,Walsh,North Dakota,38099,13,0 +2020-05-26,Walsh,North Dakota,38099,13,0 +2020-05-27,Walsh,North Dakota,38099,13,0 +2020-05-28,Walsh,North Dakota,38099,13,0 +2020-05-29,Walsh,North Dakota,38099,13,0 +2020-05-30,Walsh,North Dakota,38099,13,0 +2020-05-31,Walsh,North Dakota,38099,13,0 +2020-06-01,Walsh,North Dakota,38099,14,0 +2020-06-02,Walsh,North Dakota,38099,14,0 +2020-06-03,Walsh,North Dakota,38099,15,0 +2020-06-04,Walsh,North Dakota,38099,15,0 +2020-06-05,Walsh,North Dakota,38099,15,0 +2020-06-06,Walsh,North Dakota,38099,16,0 +2020-06-07,Walsh,North Dakota,38099,16,0 +2020-06-08,Walsh,North Dakota,38099,16,0 +2020-06-09,Walsh,North Dakota,38099,16,0 +2020-06-10,Walsh,North Dakota,38099,16,0 +2020-06-11,Walsh,North Dakota,38099,16,0 +2020-06-12,Walsh,North Dakota,38099,16,0 +2020-06-13,Walsh,North Dakota,38099,16,0 +2020-06-14,Walsh,North Dakota,38099,16,0 +2020-06-15,Walsh,North Dakota,38099,16,0 +2020-06-16,Walsh,North Dakota,38099,17,0 +2020-06-17,Walsh,North Dakota,38099,17,0 +2020-06-18,Walsh,North Dakota,38099,17,0 +2020-06-19,Walsh,North Dakota,38099,17,0 +2020-06-20,Walsh,North Dakota,38099,17,0 +2020-06-21,Walsh,North Dakota,38099,17,0 +2020-06-22,Walsh,North Dakota,38099,17,0 +2020-06-23,Walsh,North Dakota,38099,17,0 +2020-06-24,Walsh,North Dakota,38099,19,0 +2020-06-25,Walsh,North Dakota,38099,20,0 +2020-06-26,Walsh,North Dakota,38099,20,0 +2020-06-27,Walsh,North Dakota,38099,21,0 +2020-06-28,Walsh,North Dakota,38099,22,0 +2020-06-29,Walsh,North Dakota,38099,22,0 +2020-06-30,Walsh,North Dakota,38099,23,0 +2020-07-01,Walsh,North Dakota,38099,24,0 +2020-07-02,Walsh,North Dakota,38099,25,0 +2020-07-03,Walsh,North Dakota,38099,26,0 +2020-07-04,Walsh,North Dakota,38099,26,0 +2020-07-05,Walsh,North Dakota,38099,28,0 +2020-07-06,Walsh,North Dakota,38099,29,0 +2020-07-07,Walsh,North Dakota,38099,30,0 +2020-07-08,Walsh,North Dakota,38099,31,0 +2020-07-09,Walsh,North Dakota,38099,41,0 +2020-03-11,Ward,North Dakota,38101,1,0 +2020-03-12,Ward,North Dakota,38101,1,0 +2020-03-13,Ward,North Dakota,38101,1,0 +2020-03-14,Ward,North Dakota,38101,1,0 +2020-03-15,Ward,North Dakota,38101,1,0 +2020-03-16,Ward,North Dakota,38101,1,0 +2020-03-17,Ward,North Dakota,38101,2,0 +2020-03-18,Ward,North Dakota,38101,2,0 +2020-03-19,Ward,North Dakota,38101,3,0 +2020-03-20,Ward,North Dakota,38101,3,0 +2020-03-21,Ward,North Dakota,38101,3,0 +2020-03-22,Ward,North Dakota,38101,3,0 +2020-03-23,Ward,North Dakota,38101,3,0 +2020-03-24,Ward,North Dakota,38101,3,0 +2020-03-25,Ward,North Dakota,38101,3,0 +2020-03-26,Ward,North Dakota,38101,4,0 +2020-03-27,Ward,North Dakota,38101,4,0 +2020-03-28,Ward,North Dakota,38101,7,0 +2020-03-29,Ward,North Dakota,38101,7,0 +2020-03-30,Ward,North Dakota,38101,9,0 +2020-03-31,Ward,North Dakota,38101,9,0 +2020-04-01,Ward,North Dakota,38101,12,0 +2020-04-02,Ward,North Dakota,38101,13,0 +2020-04-03,Ward,North Dakota,38101,14,0 +2020-04-04,Ward,North Dakota,38101,14,0 +2020-04-05,Ward,North Dakota,38101,14,0 +2020-04-06,Ward,North Dakota,38101,16,0 +2020-04-07,Ward,North Dakota,38101,16,0 +2020-04-08,Ward,North Dakota,38101,16,0 +2020-04-09,Ward,North Dakota,38101,19,0 +2020-04-10,Ward,North Dakota,38101,19,0 +2020-04-11,Ward,North Dakota,38101,20,0 +2020-04-12,Ward,North Dakota,38101,20,1 +2020-04-13,Ward,North Dakota,38101,20,1 +2020-04-14,Ward,North Dakota,38101,20,1 +2020-04-15,Ward,North Dakota,38101,20,1 +2020-04-16,Ward,North Dakota,38101,20,1 +2020-04-17,Ward,North Dakota,38101,20,1 +2020-04-18,Ward,North Dakota,38101,20,1 +2020-04-19,Ward,North Dakota,38101,20,1 +2020-04-20,Ward,North Dakota,38101,20,1 +2020-04-21,Ward,North Dakota,38101,20,1 +2020-04-22,Ward,North Dakota,38101,21,1 +2020-04-23,Ward,North Dakota,38101,21,1 +2020-04-24,Ward,North Dakota,38101,21,1 +2020-04-25,Ward,North Dakota,38101,21,1 +2020-04-26,Ward,North Dakota,38101,21,1 +2020-04-27,Ward,North Dakota,38101,21,1 +2020-04-28,Ward,North Dakota,38101,21,1 +2020-04-29,Ward,North Dakota,38101,21,1 +2020-04-30,Ward,North Dakota,38101,21,1 +2020-05-01,Ward,North Dakota,38101,21,1 +2020-05-02,Ward,North Dakota,38101,25,1 +2020-05-03,Ward,North Dakota,38101,25,1 +2020-05-04,Ward,North Dakota,38101,25,1 +2020-05-05,Ward,North Dakota,38101,25,1 +2020-05-06,Ward,North Dakota,38101,25,1 +2020-05-07,Ward,North Dakota,38101,26,1 +2020-05-08,Ward,North Dakota,38101,26,1 +2020-05-09,Ward,North Dakota,38101,27,1 +2020-05-10,Ward,North Dakota,38101,27,1 +2020-05-11,Ward,North Dakota,38101,27,1 +2020-05-12,Ward,North Dakota,38101,28,1 +2020-05-13,Ward,North Dakota,38101,28,1 +2020-05-14,Ward,North Dakota,38101,28,1 +2020-05-15,Ward,North Dakota,38101,28,1 +2020-05-16,Ward,North Dakota,38101,28,1 +2020-05-17,Ward,North Dakota,38101,28,1 +2020-05-18,Ward,North Dakota,38101,28,1 +2020-05-19,Ward,North Dakota,38101,28,1 +2020-05-20,Ward,North Dakota,38101,29,1 +2020-05-21,Ward,North Dakota,38101,53,1 +2020-05-22,Ward,North Dakota,38101,54,1 +2020-05-23,Ward,North Dakota,38101,54,1 +2020-05-24,Ward,North Dakota,38101,54,1 +2020-05-25,Ward,North Dakota,38101,54,1 +2020-05-26,Ward,North Dakota,38101,36,1 +2020-05-27,Ward,North Dakota,38101,36,1 +2020-05-28,Ward,North Dakota,38101,37,1 +2020-05-29,Ward,North Dakota,38101,37,1 +2020-05-30,Ward,North Dakota,38101,37,1 +2020-05-31,Ward,North Dakota,38101,37,1 +2020-06-01,Ward,North Dakota,38101,37,1 +2020-06-02,Ward,North Dakota,38101,38,1 +2020-06-03,Ward,North Dakota,38101,39,1 +2020-06-04,Ward,North Dakota,38101,39,1 +2020-06-05,Ward,North Dakota,38101,41,1 +2020-06-06,Ward,North Dakota,38101,43,1 +2020-06-07,Ward,North Dakota,38101,44,1 +2020-06-08,Ward,North Dakota,38101,44,1 +2020-06-09,Ward,North Dakota,38101,44,1 +2020-06-10,Ward,North Dakota,38101,44,1 +2020-06-11,Ward,North Dakota,38101,45,1 +2020-06-12,Ward,North Dakota,38101,45,1 +2020-06-13,Ward,North Dakota,38101,46,1 +2020-06-14,Ward,North Dakota,38101,47,1 +2020-06-15,Ward,North Dakota,38101,47,1 +2020-06-16,Ward,North Dakota,38101,47,1 +2020-06-17,Ward,North Dakota,38101,48,1 +2020-06-18,Ward,North Dakota,38101,50,1 +2020-06-19,Ward,North Dakota,38101,51,1 +2020-06-20,Ward,North Dakota,38101,51,1 +2020-06-21,Ward,North Dakota,38101,52,1 +2020-06-22,Ward,North Dakota,38101,53,1 +2020-06-23,Ward,North Dakota,38101,54,1 +2020-06-24,Ward,North Dakota,38101,54,1 +2020-06-25,Ward,North Dakota,38101,58,1 +2020-06-26,Ward,North Dakota,38101,59,1 +2020-06-27,Ward,North Dakota,38101,59,1 +2020-06-28,Ward,North Dakota,38101,59,1 +2020-06-29,Ward,North Dakota,38101,60,1 +2020-06-30,Ward,North Dakota,38101,60,1 +2020-07-01,Ward,North Dakota,38101,60,1 +2020-07-02,Ward,North Dakota,38101,60,1 +2020-07-03,Ward,North Dakota,38101,61,1 +2020-07-04,Ward,North Dakota,38101,64,1 +2020-07-05,Ward,North Dakota,38101,65,1 +2020-07-06,Ward,North Dakota,38101,65,1 +2020-07-07,Ward,North Dakota,38101,66,1 +2020-07-08,Ward,North Dakota,38101,65,1 +2020-07-09,Ward,North Dakota,38101,67,1 +2020-04-22,Wells,North Dakota,38103,1,0 +2020-04-23,Wells,North Dakota,38103,1,0 +2020-04-24,Wells,North Dakota,38103,1,0 +2020-04-25,Wells,North Dakota,38103,2,0 +2020-04-26,Wells,North Dakota,38103,2,0 +2020-04-27,Wells,North Dakota,38103,2,0 +2020-04-28,Wells,North Dakota,38103,2,0 +2020-04-29,Wells,North Dakota,38103,2,0 +2020-04-30,Wells,North Dakota,38103,2,0 +2020-05-01,Wells,North Dakota,38103,2,0 +2020-05-02,Wells,North Dakota,38103,2,0 +2020-05-03,Wells,North Dakota,38103,2,0 +2020-05-04,Wells,North Dakota,38103,2,0 +2020-05-05,Wells,North Dakota,38103,2,0 +2020-05-06,Wells,North Dakota,38103,2,0 +2020-05-07,Wells,North Dakota,38103,2,0 +2020-05-08,Wells,North Dakota,38103,2,0 +2020-05-09,Wells,North Dakota,38103,2,0 +2020-05-10,Wells,North Dakota,38103,2,0 +2020-05-11,Wells,North Dakota,38103,2,0 +2020-05-12,Wells,North Dakota,38103,2,0 +2020-05-13,Wells,North Dakota,38103,2,0 +2020-05-14,Wells,North Dakota,38103,2,0 +2020-05-15,Wells,North Dakota,38103,2,0 +2020-05-16,Wells,North Dakota,38103,2,0 +2020-05-17,Wells,North Dakota,38103,2,0 +2020-05-18,Wells,North Dakota,38103,2,0 +2020-05-19,Wells,North Dakota,38103,2,0 +2020-05-20,Wells,North Dakota,38103,2,0 +2020-05-21,Wells,North Dakota,38103,2,0 +2020-05-22,Wells,North Dakota,38103,2,0 +2020-05-23,Wells,North Dakota,38103,3,0 +2020-05-24,Wells,North Dakota,38103,3,0 +2020-05-25,Wells,North Dakota,38103,3,0 +2020-05-26,Wells,North Dakota,38103,3,0 +2020-05-27,Wells,North Dakota,38103,3,0 +2020-05-28,Wells,North Dakota,38103,3,0 +2020-05-29,Wells,North Dakota,38103,3,0 +2020-05-30,Wells,North Dakota,38103,3,0 +2020-05-31,Wells,North Dakota,38103,3,0 +2020-06-01,Wells,North Dakota,38103,3,0 +2020-06-02,Wells,North Dakota,38103,3,0 +2020-06-03,Wells,North Dakota,38103,3,0 +2020-06-04,Wells,North Dakota,38103,3,0 +2020-06-05,Wells,North Dakota,38103,3,0 +2020-06-06,Wells,North Dakota,38103,5,0 +2020-06-07,Wells,North Dakota,38103,6,0 +2020-06-08,Wells,North Dakota,38103,8,0 +2020-06-09,Wells,North Dakota,38103,8,0 +2020-06-10,Wells,North Dakota,38103,8,0 +2020-06-11,Wells,North Dakota,38103,8,0 +2020-06-12,Wells,North Dakota,38103,8,0 +2020-06-13,Wells,North Dakota,38103,8,0 +2020-06-14,Wells,North Dakota,38103,8,0 +2020-06-15,Wells,North Dakota,38103,8,0 +2020-06-16,Wells,North Dakota,38103,8,0 +2020-06-17,Wells,North Dakota,38103,8,0 +2020-06-18,Wells,North Dakota,38103,8,0 +2020-06-19,Wells,North Dakota,38103,8,0 +2020-06-20,Wells,North Dakota,38103,8,0 +2020-06-21,Wells,North Dakota,38103,8,0 +2020-06-22,Wells,North Dakota,38103,8,0 +2020-06-23,Wells,North Dakota,38103,8,0 +2020-06-24,Wells,North Dakota,38103,8,0 +2020-06-25,Wells,North Dakota,38103,8,0 +2020-06-26,Wells,North Dakota,38103,8,0 +2020-06-27,Wells,North Dakota,38103,8,0 +2020-06-28,Wells,North Dakota,38103,8,0 +2020-06-29,Wells,North Dakota,38103,8,0 +2020-06-30,Wells,North Dakota,38103,8,0 +2020-07-01,Wells,North Dakota,38103,8,0 +2020-07-02,Wells,North Dakota,38103,9,0 +2020-07-03,Wells,North Dakota,38103,9,0 +2020-07-04,Wells,North Dakota,38103,9,0 +2020-07-05,Wells,North Dakota,38103,9,0 +2020-07-06,Wells,North Dakota,38103,9,0 +2020-07-07,Wells,North Dakota,38103,9,0 +2020-07-08,Wells,North Dakota,38103,9,0 +2020-07-09,Wells,North Dakota,38103,9,0 +2020-03-31,Williams,North Dakota,38105,3,0 +2020-04-01,Williams,North Dakota,38105,3,0 +2020-04-02,Williams,North Dakota,38105,4,0 +2020-04-03,Williams,North Dakota,38105,5,0 +2020-04-04,Williams,North Dakota,38105,5,0 +2020-04-05,Williams,North Dakota,38105,5,0 +2020-04-06,Williams,North Dakota,38105,5,0 +2020-04-07,Williams,North Dakota,38105,5,0 +2020-04-08,Williams,North Dakota,38105,5,0 +2020-04-09,Williams,North Dakota,38105,6,0 +2020-04-10,Williams,North Dakota,38105,6,0 +2020-04-11,Williams,North Dakota,38105,8,0 +2020-04-12,Williams,North Dakota,38105,8,0 +2020-04-13,Williams,North Dakota,38105,8,0 +2020-04-14,Williams,North Dakota,38105,8,0 +2020-04-15,Williams,North Dakota,38105,8,0 +2020-04-16,Williams,North Dakota,38105,8,0 +2020-04-17,Williams,North Dakota,38105,9,0 +2020-04-18,Williams,North Dakota,38105,10,0 +2020-04-19,Williams,North Dakota,38105,9,0 +2020-04-20,Williams,North Dakota,38105,9,0 +2020-04-21,Williams,North Dakota,38105,9,0 +2020-04-22,Williams,North Dakota,38105,9,0 +2020-04-23,Williams,North Dakota,38105,9,0 +2020-04-24,Williams,North Dakota,38105,10,0 +2020-04-25,Williams,North Dakota,38105,10,0 +2020-04-26,Williams,North Dakota,38105,10,0 +2020-04-27,Williams,North Dakota,38105,10,0 +2020-04-28,Williams,North Dakota,38105,10,0 +2020-04-29,Williams,North Dakota,38105,10,0 +2020-04-30,Williams,North Dakota,38105,10,0 +2020-05-01,Williams,North Dakota,38105,10,0 +2020-05-02,Williams,North Dakota,38105,10,0 +2020-05-03,Williams,North Dakota,38105,11,0 +2020-05-04,Williams,North Dakota,38105,11,0 +2020-05-05,Williams,North Dakota,38105,13,0 +2020-05-06,Williams,North Dakota,38105,13,0 +2020-05-07,Williams,North Dakota,38105,18,0 +2020-05-08,Williams,North Dakota,38105,18,0 +2020-05-09,Williams,North Dakota,38105,18,0 +2020-05-10,Williams,North Dakota,38105,18,0 +2020-05-11,Williams,North Dakota,38105,19,0 +2020-05-12,Williams,North Dakota,38105,20,0 +2020-05-13,Williams,North Dakota,38105,20,0 +2020-05-14,Williams,North Dakota,38105,21,0 +2020-05-15,Williams,North Dakota,38105,21,0 +2020-05-16,Williams,North Dakota,38105,21,0 +2020-05-17,Williams,North Dakota,38105,21,0 +2020-05-18,Williams,North Dakota,38105,21,0 +2020-05-19,Williams,North Dakota,38105,21,0 +2020-05-20,Williams,North Dakota,38105,22,0 +2020-05-21,Williams,North Dakota,38105,22,0 +2020-05-22,Williams,North Dakota,38105,25,0 +2020-05-23,Williams,North Dakota,38105,25,0 +2020-05-24,Williams,North Dakota,38105,25,0 +2020-05-25,Williams,North Dakota,38105,25,0 +2020-05-26,Williams,North Dakota,38105,24,0 +2020-05-27,Williams,North Dakota,38105,24,0 +2020-05-28,Williams,North Dakota,38105,24,0 +2020-05-29,Williams,North Dakota,38105,24,0 +2020-05-30,Williams,North Dakota,38105,25,0 +2020-05-31,Williams,North Dakota,38105,25,0 +2020-06-01,Williams,North Dakota,38105,25,0 +2020-06-02,Williams,North Dakota,38105,25,0 +2020-06-03,Williams,North Dakota,38105,25,0 +2020-06-04,Williams,North Dakota,38105,25,0 +2020-06-05,Williams,North Dakota,38105,25,0 +2020-06-06,Williams,North Dakota,38105,25,0 +2020-06-07,Williams,North Dakota,38105,25,0 +2020-06-08,Williams,North Dakota,38105,25,0 +2020-06-09,Williams,North Dakota,38105,25,0 +2020-06-10,Williams,North Dakota,38105,25,0 +2020-06-11,Williams,North Dakota,38105,26,0 +2020-06-12,Williams,North Dakota,38105,26,0 +2020-06-13,Williams,North Dakota,38105,26,0 +2020-06-14,Williams,North Dakota,38105,26,0 +2020-06-15,Williams,North Dakota,38105,26,0 +2020-06-16,Williams,North Dakota,38105,26,0 +2020-06-17,Williams,North Dakota,38105,26,0 +2020-06-18,Williams,North Dakota,38105,26,0 +2020-06-19,Williams,North Dakota,38105,26,0 +2020-06-20,Williams,North Dakota,38105,26,0 +2020-06-21,Williams,North Dakota,38105,26,0 +2020-06-22,Williams,North Dakota,38105,26,0 +2020-06-23,Williams,North Dakota,38105,26,0 +2020-06-24,Williams,North Dakota,38105,26,0 +2020-06-25,Williams,North Dakota,38105,28,0 +2020-06-26,Williams,North Dakota,38105,29,0 +2020-06-27,Williams,North Dakota,38105,29,0 +2020-06-28,Williams,North Dakota,38105,32,0 +2020-06-29,Williams,North Dakota,38105,32,0 +2020-06-30,Williams,North Dakota,38105,32,0 +2020-07-01,Williams,North Dakota,38105,37,0 +2020-07-02,Williams,North Dakota,38105,37,0 +2020-07-03,Williams,North Dakota,38105,38,0 +2020-07-04,Williams,North Dakota,38105,39,0 +2020-07-05,Williams,North Dakota,38105,43,0 +2020-07-06,Williams,North Dakota,38105,43,0 +2020-07-07,Williams,North Dakota,38105,50,0 +2020-07-08,Williams,North Dakota,38105,53,0 +2020-07-09,Williams,North Dakota,38105,59,0 +2020-04-04,Adams,Ohio,39001,1,0 +2020-04-05,Adams,Ohio,39001,2,0 +2020-04-06,Adams,Ohio,39001,2,0 +2020-04-07,Adams,Ohio,39001,2,0 +2020-04-08,Adams,Ohio,39001,2,0 +2020-04-09,Adams,Ohio,39001,3,0 +2020-04-10,Adams,Ohio,39001,3,0 +2020-04-11,Adams,Ohio,39001,3,0 +2020-04-12,Adams,Ohio,39001,3,0 +2020-04-13,Adams,Ohio,39001,3,0 +2020-04-14,Adams,Ohio,39001,3,0 +2020-04-15,Adams,Ohio,39001,3,0 +2020-04-16,Adams,Ohio,39001,3,0 +2020-04-17,Adams,Ohio,39001,3,0 +2020-04-18,Adams,Ohio,39001,3,0 +2020-04-19,Adams,Ohio,39001,3,0 +2020-04-20,Adams,Ohio,39001,3,0 +2020-04-21,Adams,Ohio,39001,3,0 +2020-04-22,Adams,Ohio,39001,4,0 +2020-04-23,Adams,Ohio,39001,4,0 +2020-04-24,Adams,Ohio,39001,4,0 +2020-04-25,Adams,Ohio,39001,4,0 +2020-04-26,Adams,Ohio,39001,4,0 +2020-04-27,Adams,Ohio,39001,4,0 +2020-04-28,Adams,Ohio,39001,4,0 +2020-04-29,Adams,Ohio,39001,5,0 +2020-04-30,Adams,Ohio,39001,4,0 +2020-05-01,Adams,Ohio,39001,5,0 +2020-05-02,Adams,Ohio,39001,5,0 +2020-05-03,Adams,Ohio,39001,5,0 +2020-05-04,Adams,Ohio,39001,5,0 +2020-05-05,Adams,Ohio,39001,5,0 +2020-05-06,Adams,Ohio,39001,5,0 +2020-05-07,Adams,Ohio,39001,5,0 +2020-05-08,Adams,Ohio,39001,5,0 +2020-05-09,Adams,Ohio,39001,6,0 +2020-05-10,Adams,Ohio,39001,6,0 +2020-05-11,Adams,Ohio,39001,6,0 +2020-05-12,Adams,Ohio,39001,6,0 +2020-05-13,Adams,Ohio,39001,6,0 +2020-05-14,Adams,Ohio,39001,7,0 +2020-05-15,Adams,Ohio,39001,8,0 +2020-05-16,Adams,Ohio,39001,8,0 +2020-05-17,Adams,Ohio,39001,8,0 +2020-05-18,Adams,Ohio,39001,8,1 +2020-05-19,Adams,Ohio,39001,8,1 +2020-05-20,Adams,Ohio,39001,8,1 +2020-05-21,Adams,Ohio,39001,8,1 +2020-05-22,Adams,Ohio,39001,8,1 +2020-05-23,Adams,Ohio,39001,8,1 +2020-05-24,Adams,Ohio,39001,8,1 +2020-05-25,Adams,Ohio,39001,8,1 +2020-05-26,Adams,Ohio,39001,8,1 +2020-05-27,Adams,Ohio,39001,8,1 +2020-05-28,Adams,Ohio,39001,8,1 +2020-05-29,Adams,Ohio,39001,9,1 +2020-05-30,Adams,Ohio,39001,9,1 +2020-05-31,Adams,Ohio,39001,10,1 +2020-06-01,Adams,Ohio,39001,10,1 +2020-06-02,Adams,Ohio,39001,10,1 +2020-06-03,Adams,Ohio,39001,10,1 +2020-06-04,Adams,Ohio,39001,11,1 +2020-06-05,Adams,Ohio,39001,11,1 +2020-06-06,Adams,Ohio,39001,11,1 +2020-06-07,Adams,Ohio,39001,11,1 +2020-06-08,Adams,Ohio,39001,11,1 +2020-06-09,Adams,Ohio,39001,11,1 +2020-06-10,Adams,Ohio,39001,12,1 +2020-06-11,Adams,Ohio,39001,12,1 +2020-06-12,Adams,Ohio,39001,12,1 +2020-06-13,Adams,Ohio,39001,14,1 +2020-06-14,Adams,Ohio,39001,15,1 +2020-06-15,Adams,Ohio,39001,15,1 +2020-06-16,Adams,Ohio,39001,17,1 +2020-06-17,Adams,Ohio,39001,17,1 +2020-06-18,Adams,Ohio,39001,18,1 +2020-06-19,Adams,Ohio,39001,18,1 +2020-06-20,Adams,Ohio,39001,18,1 +2020-06-21,Adams,Ohio,39001,18,1 +2020-06-22,Adams,Ohio,39001,19,1 +2020-06-23,Adams,Ohio,39001,19,1 +2020-06-24,Adams,Ohio,39001,19,1 +2020-06-25,Adams,Ohio,39001,20,1 +2020-06-26,Adams,Ohio,39001,20,1 +2020-06-27,Adams,Ohio,39001,20,1 +2020-06-28,Adams,Ohio,39001,20,1 +2020-06-29,Adams,Ohio,39001,21,1 +2020-06-30,Adams,Ohio,39001,21,1 +2020-07-01,Adams,Ohio,39001,21,1 +2020-07-02,Adams,Ohio,39001,21,1 +2020-07-03,Adams,Ohio,39001,22,1 +2020-07-04,Adams,Ohio,39001,23,1 +2020-07-05,Adams,Ohio,39001,22,1 +2020-07-06,Adams,Ohio,39001,24,1 +2020-07-07,Adams,Ohio,39001,24,1 +2020-07-08,Adams,Ohio,39001,24,1 +2020-07-09,Adams,Ohio,39001,24,1 +2020-03-28,Allen,Ohio,39003,2,0 +2020-03-29,Allen,Ohio,39003,4,0 +2020-03-30,Allen,Ohio,39003,4,0 +2020-03-31,Allen,Ohio,39003,5,0 +2020-04-01,Allen,Ohio,39003,6,0 +2020-04-02,Allen,Ohio,39003,10,0 +2020-04-03,Allen,Ohio,39003,13,0 +2020-04-04,Allen,Ohio,39003,15,0 +2020-04-05,Allen,Ohio,39003,18,0 +2020-04-06,Allen,Ohio,39003,19,0 +2020-04-07,Allen,Ohio,39003,22,1 +2020-04-08,Allen,Ohio,39003,23,1 +2020-04-09,Allen,Ohio,39003,23,1 +2020-04-10,Allen,Ohio,39003,24,1 +2020-04-11,Allen,Ohio,39003,27,1 +2020-04-12,Allen,Ohio,39003,33,2 +2020-04-13,Allen,Ohio,39003,37,4 +2020-04-14,Allen,Ohio,39003,46,4 +2020-04-15,Allen,Ohio,39003,51,4 +2020-04-16,Allen,Ohio,39003,57,6 +2020-04-17,Allen,Ohio,39003,65,9 +2020-04-18,Allen,Ohio,39003,70,11 +2020-04-19,Allen,Ohio,39003,79,11 +2020-04-20,Allen,Ohio,39003,84,11 +2020-04-21,Allen,Ohio,39003,88,12 +2020-04-22,Allen,Ohio,39003,94,12 +2020-04-23,Allen,Ohio,39003,100,14 +2020-04-24,Allen,Ohio,39003,108,15 +2020-04-25,Allen,Ohio,39003,108,17 +2020-04-26,Allen,Ohio,39003,106,18 +2020-04-27,Allen,Ohio,39003,103,18 +2020-04-28,Allen,Ohio,39003,103,19 +2020-04-29,Allen,Ohio,39003,116,22 +2020-04-30,Allen,Ohio,39003,121,23 +2020-05-01,Allen,Ohio,39003,121,23 +2020-05-02,Allen,Ohio,39003,123,23 +2020-05-03,Allen,Ohio,39003,124,23 +2020-05-04,Allen,Ohio,39003,133,23 +2020-05-05,Allen,Ohio,39003,135,25 +2020-05-06,Allen,Ohio,39003,139,28 +2020-05-07,Allen,Ohio,39003,138,28 +2020-05-08,Allen,Ohio,39003,139,29 +2020-05-09,Allen,Ohio,39003,144,29 +2020-05-10,Allen,Ohio,39003,144,29 +2020-05-11,Allen,Ohio,39003,146,29 +2020-05-12,Allen,Ohio,39003,154,30 +2020-05-13,Allen,Ohio,39003,155,30 +2020-05-14,Allen,Ohio,39003,164,30 +2020-05-15,Allen,Ohio,39003,164,30 +2020-05-16,Allen,Ohio,39003,165,30 +2020-05-17,Allen,Ohio,39003,167,30 +2020-05-18,Allen,Ohio,39003,168,30 +2020-05-19,Allen,Ohio,39003,171,30 +2020-05-20,Allen,Ohio,39003,172,30 +2020-05-21,Allen,Ohio,39003,176,31 +2020-05-22,Allen,Ohio,39003,178,31 +2020-05-23,Allen,Ohio,39003,184,31 +2020-05-24,Allen,Ohio,39003,189,31 +2020-05-25,Allen,Ohio,39003,191,31 +2020-05-26,Allen,Ohio,39003,191,31 +2020-05-27,Allen,Ohio,39003,201,32 +2020-05-28,Allen,Ohio,39003,206,32 +2020-05-29,Allen,Ohio,39003,212,32 +2020-05-30,Allen,Ohio,39003,211,32 +2020-05-31,Allen,Ohio,39003,212,32 +2020-06-01,Allen,Ohio,39003,212,33 +2020-06-02,Allen,Ohio,39003,212,33 +2020-06-03,Allen,Ohio,39003,214,33 +2020-06-04,Allen,Ohio,39003,219,33 +2020-06-05,Allen,Ohio,39003,221,33 +2020-06-06,Allen,Ohio,39003,222,33 +2020-06-07,Allen,Ohio,39003,222,33 +2020-06-08,Allen,Ohio,39003,224,34 +2020-06-09,Allen,Ohio,39003,227,34 +2020-06-10,Allen,Ohio,39003,229,34 +2020-06-11,Allen,Ohio,39003,233,34 +2020-06-12,Allen,Ohio,39003,232,34 +2020-06-13,Allen,Ohio,39003,238,35 +2020-06-14,Allen,Ohio,39003,240,35 +2020-06-15,Allen,Ohio,39003,241,36 +2020-06-16,Allen,Ohio,39003,241,36 +2020-06-17,Allen,Ohio,39003,242,36 +2020-06-18,Allen,Ohio,39003,246,36 +2020-06-19,Allen,Ohio,39003,247,37 +2020-06-20,Allen,Ohio,39003,248,37 +2020-06-21,Allen,Ohio,39003,251,37 +2020-06-22,Allen,Ohio,39003,253,37 +2020-06-23,Allen,Ohio,39003,255,38 +2020-06-24,Allen,Ohio,39003,257,38 +2020-06-25,Allen,Ohio,39003,261,38 +2020-06-26,Allen,Ohio,39003,264,38 +2020-06-27,Allen,Ohio,39003,265,38 +2020-06-28,Allen,Ohio,39003,269,38 +2020-06-29,Allen,Ohio,39003,284,38 +2020-06-30,Allen,Ohio,39003,293,38 +2020-07-01,Allen,Ohio,39003,297,40 +2020-07-02,Allen,Ohio,39003,297,40 +2020-07-03,Allen,Ohio,39003,305,40 +2020-07-04,Allen,Ohio,39003,308,40 +2020-07-05,Allen,Ohio,39003,315,40 +2020-07-06,Allen,Ohio,39003,321,41 +2020-07-07,Allen,Ohio,39003,323,41 +2020-07-08,Allen,Ohio,39003,328,41 +2020-07-09,Allen,Ohio,39003,338,41 +2020-03-18,Ashland,Ohio,39005,1,0 +2020-03-19,Ashland,Ohio,39005,1,0 +2020-03-20,Ashland,Ohio,39005,1,0 +2020-03-21,Ashland,Ohio,39005,1,0 +2020-03-22,Ashland,Ohio,39005,1,0 +2020-03-23,Ashland,Ohio,39005,1,0 +2020-03-24,Ashland,Ohio,39005,1,0 +2020-03-25,Ashland,Ohio,39005,1,0 +2020-03-26,Ashland,Ohio,39005,1,0 +2020-03-27,Ashland,Ohio,39005,3,0 +2020-03-28,Ashland,Ohio,39005,2,0 +2020-03-29,Ashland,Ohio,39005,2,0 +2020-03-30,Ashland,Ohio,39005,2,0 +2020-03-31,Ashland,Ohio,39005,2,0 +2020-04-01,Ashland,Ohio,39005,2,0 +2020-04-02,Ashland,Ohio,39005,3,0 +2020-04-03,Ashland,Ohio,39005,3,0 +2020-04-04,Ashland,Ohio,39005,3,0 +2020-04-05,Ashland,Ohio,39005,3,0 +2020-04-06,Ashland,Ohio,39005,3,0 +2020-04-07,Ashland,Ohio,39005,3,0 +2020-04-08,Ashland,Ohio,39005,3,0 +2020-04-09,Ashland,Ohio,39005,4,0 +2020-04-10,Ashland,Ohio,39005,5,0 +2020-04-11,Ashland,Ohio,39005,5,0 +2020-04-12,Ashland,Ohio,39005,5,0 +2020-04-13,Ashland,Ohio,39005,5,0 +2020-04-14,Ashland,Ohio,39005,5,0 +2020-04-15,Ashland,Ohio,39005,6,0 +2020-04-16,Ashland,Ohio,39005,5,0 +2020-04-17,Ashland,Ohio,39005,5,0 +2020-04-18,Ashland,Ohio,39005,5,0 +2020-04-19,Ashland,Ohio,39005,6,0 +2020-04-20,Ashland,Ohio,39005,5,0 +2020-04-21,Ashland,Ohio,39005,5,0 +2020-04-22,Ashland,Ohio,39005,5,0 +2020-04-23,Ashland,Ohio,39005,5,0 +2020-04-24,Ashland,Ohio,39005,5,0 +2020-04-25,Ashland,Ohio,39005,5,0 +2020-04-26,Ashland,Ohio,39005,6,0 +2020-04-27,Ashland,Ohio,39005,6,0 +2020-04-28,Ashland,Ohio,39005,6,0 +2020-04-29,Ashland,Ohio,39005,6,0 +2020-04-30,Ashland,Ohio,39005,7,0 +2020-05-01,Ashland,Ohio,39005,7,0 +2020-05-02,Ashland,Ohio,39005,8,0 +2020-05-03,Ashland,Ohio,39005,9,0 +2020-05-04,Ashland,Ohio,39005,9,0 +2020-05-05,Ashland,Ohio,39005,9,0 +2020-05-06,Ashland,Ohio,39005,12,0 +2020-05-07,Ashland,Ohio,39005,12,0 +2020-05-08,Ashland,Ohio,39005,12,0 +2020-05-09,Ashland,Ohio,39005,14,0 +2020-05-10,Ashland,Ohio,39005,14,0 +2020-05-11,Ashland,Ohio,39005,15,0 +2020-05-12,Ashland,Ohio,39005,15,0 +2020-05-13,Ashland,Ohio,39005,15,0 +2020-05-14,Ashland,Ohio,39005,15,0 +2020-05-15,Ashland,Ohio,39005,15,0 +2020-05-16,Ashland,Ohio,39005,15,0 +2020-05-17,Ashland,Ohio,39005,15,0 +2020-05-18,Ashland,Ohio,39005,15,0 +2020-05-19,Ashland,Ohio,39005,15,0 +2020-05-20,Ashland,Ohio,39005,17,0 +2020-05-21,Ashland,Ohio,39005,17,0 +2020-05-22,Ashland,Ohio,39005,17,0 +2020-05-23,Ashland,Ohio,39005,17,0 +2020-05-24,Ashland,Ohio,39005,17,0 +2020-05-25,Ashland,Ohio,39005,18,0 +2020-05-26,Ashland,Ohio,39005,19,0 +2020-05-27,Ashland,Ohio,39005,19,0 +2020-05-28,Ashland,Ohio,39005,19,0 +2020-05-29,Ashland,Ohio,39005,20,0 +2020-05-30,Ashland,Ohio,39005,20,0 +2020-05-31,Ashland,Ohio,39005,20,0 +2020-06-01,Ashland,Ohio,39005,20,0 +2020-06-02,Ashland,Ohio,39005,20,0 +2020-06-03,Ashland,Ohio,39005,21,0 +2020-06-04,Ashland,Ohio,39005,21,0 +2020-06-05,Ashland,Ohio,39005,23,0 +2020-06-06,Ashland,Ohio,39005,24,0 +2020-06-07,Ashland,Ohio,39005,24,0 +2020-06-08,Ashland,Ohio,39005,24,0 +2020-06-09,Ashland,Ohio,39005,25,0 +2020-06-10,Ashland,Ohio,39005,26,0 +2020-06-11,Ashland,Ohio,39005,26,0 +2020-06-12,Ashland,Ohio,39005,26,0 +2020-06-13,Ashland,Ohio,39005,28,0 +2020-06-14,Ashland,Ohio,39005,28,0 +2020-06-15,Ashland,Ohio,39005,28,0 +2020-06-16,Ashland,Ohio,39005,29,0 +2020-06-17,Ashland,Ohio,39005,31,0 +2020-06-18,Ashland,Ohio,39005,37,0 +2020-06-19,Ashland,Ohio,39005,37,0 +2020-06-20,Ashland,Ohio,39005,39,0 +2020-06-21,Ashland,Ohio,39005,39,0 +2020-06-22,Ashland,Ohio,39005,40,0 +2020-06-23,Ashland,Ohio,39005,44,0 +2020-06-24,Ashland,Ohio,39005,45,0 +2020-06-25,Ashland,Ohio,39005,46,0 +2020-06-26,Ashland,Ohio,39005,45,1 +2020-06-27,Ashland,Ohio,39005,45,1 +2020-06-28,Ashland,Ohio,39005,46,1 +2020-06-29,Ashland,Ohio,39005,51,1 +2020-06-30,Ashland,Ohio,39005,53,1 +2020-07-01,Ashland,Ohio,39005,55,1 +2020-07-02,Ashland,Ohio,39005,55,1 +2020-07-03,Ashland,Ohio,39005,58,1 +2020-07-04,Ashland,Ohio,39005,58,1 +2020-07-05,Ashland,Ohio,39005,59,1 +2020-07-06,Ashland,Ohio,39005,59,1 +2020-07-07,Ashland,Ohio,39005,60,1 +2020-07-08,Ashland,Ohio,39005,62,1 +2020-07-09,Ashland,Ohio,39005,62,1 +2020-03-20,Ashtabula,Ohio,39007,1,0 +2020-03-21,Ashtabula,Ohio,39007,1,0 +2020-03-22,Ashtabula,Ohio,39007,2,0 +2020-03-23,Ashtabula,Ohio,39007,3,0 +2020-03-24,Ashtabula,Ohio,39007,3,0 +2020-03-25,Ashtabula,Ohio,39007,3,0 +2020-03-26,Ashtabula,Ohio,39007,3,0 +2020-03-27,Ashtabula,Ohio,39007,5,0 +2020-03-28,Ashtabula,Ohio,39007,6,0 +2020-03-29,Ashtabula,Ohio,39007,6,0 +2020-03-30,Ashtabula,Ohio,39007,6,0 +2020-03-31,Ashtabula,Ohio,39007,6,0 +2020-04-01,Ashtabula,Ohio,39007,6,0 +2020-04-02,Ashtabula,Ohio,39007,8,0 +2020-04-03,Ashtabula,Ohio,39007,9,0 +2020-04-04,Ashtabula,Ohio,39007,11,0 +2020-04-05,Ashtabula,Ohio,39007,12,0 +2020-04-06,Ashtabula,Ohio,39007,15,0 +2020-04-07,Ashtabula,Ohio,39007,18,0 +2020-04-08,Ashtabula,Ohio,39007,20,0 +2020-04-09,Ashtabula,Ohio,39007,19,0 +2020-04-10,Ashtabula,Ohio,39007,19,0 +2020-04-11,Ashtabula,Ohio,39007,24,0 +2020-04-12,Ashtabula,Ohio,39007,26,2 +2020-04-13,Ashtabula,Ohio,39007,31,2 +2020-04-14,Ashtabula,Ohio,39007,32,2 +2020-04-15,Ashtabula,Ohio,39007,36,3 +2020-04-16,Ashtabula,Ohio,39007,45,3 +2020-04-17,Ashtabula,Ohio,39007,54,4 +2020-04-18,Ashtabula,Ohio,39007,64,4 +2020-04-19,Ashtabula,Ohio,39007,66,5 +2020-04-20,Ashtabula,Ohio,39007,68,6 +2020-04-21,Ashtabula,Ohio,39007,70,6 +2020-04-22,Ashtabula,Ohio,39007,80,6 +2020-04-23,Ashtabula,Ohio,39007,98,7 +2020-04-24,Ashtabula,Ohio,39007,103,8 +2020-04-25,Ashtabula,Ohio,39007,107,10 +2020-04-26,Ashtabula,Ohio,39007,110,10 +2020-04-27,Ashtabula,Ohio,39007,110,11 +2020-04-28,Ashtabula,Ohio,39007,113,11 +2020-04-29,Ashtabula,Ohio,39007,116,15 +2020-04-30,Ashtabula,Ohio,39007,126,15 +2020-05-01,Ashtabula,Ohio,39007,136,15 +2020-05-02,Ashtabula,Ohio,39007,142,15 +2020-05-03,Ashtabula,Ohio,39007,146,15 +2020-05-04,Ashtabula,Ohio,39007,149,16 +2020-05-05,Ashtabula,Ohio,39007,160,17 +2020-05-06,Ashtabula,Ohio,39007,165,17 +2020-05-07,Ashtabula,Ohio,39007,169,18 +2020-05-08,Ashtabula,Ohio,39007,172,18 +2020-05-09,Ashtabula,Ohio,39007,190,18 +2020-05-10,Ashtabula,Ohio,39007,192,18 +2020-05-11,Ashtabula,Ohio,39007,193,19 +2020-05-12,Ashtabula,Ohio,39007,199,24 +2020-05-13,Ashtabula,Ohio,39007,208,26 +2020-05-14,Ashtabula,Ohio,39007,212,26 +2020-05-15,Ashtabula,Ohio,39007,223,26 +2020-05-16,Ashtabula,Ohio,39007,229,26 +2020-05-17,Ashtabula,Ohio,39007,232,26 +2020-05-18,Ashtabula,Ohio,39007,232,26 +2020-05-19,Ashtabula,Ohio,39007,244,26 +2020-05-20,Ashtabula,Ohio,39007,250,28 +2020-05-21,Ashtabula,Ohio,39007,263,28 +2020-05-22,Ashtabula,Ohio,39007,272,30 +2020-05-23,Ashtabula,Ohio,39007,274,31 +2020-05-24,Ashtabula,Ohio,39007,277,32 +2020-05-25,Ashtabula,Ohio,39007,281,32 +2020-05-26,Ashtabula,Ohio,39007,283,32 +2020-05-27,Ashtabula,Ohio,39007,316,33 +2020-05-28,Ashtabula,Ohio,39007,324,34 +2020-05-29,Ashtabula,Ohio,39007,330,34 +2020-05-30,Ashtabula,Ohio,39007,338,34 +2020-05-31,Ashtabula,Ohio,39007,339,34 +2020-06-01,Ashtabula,Ohio,39007,340,35 +2020-06-02,Ashtabula,Ohio,39007,340,35 +2020-06-03,Ashtabula,Ohio,39007,345,37 +2020-06-04,Ashtabula,Ohio,39007,347,38 +2020-06-05,Ashtabula,Ohio,39007,369,38 +2020-06-06,Ashtabula,Ohio,39007,372,38 +2020-06-07,Ashtabula,Ohio,39007,372,38 +2020-06-08,Ashtabula,Ohio,39007,374,38 +2020-06-09,Ashtabula,Ohio,39007,375,38 +2020-06-10,Ashtabula,Ohio,39007,377,38 +2020-06-11,Ashtabula,Ohio,39007,382,38 +2020-06-12,Ashtabula,Ohio,39007,381,38 +2020-06-13,Ashtabula,Ohio,39007,382,39 +2020-06-14,Ashtabula,Ohio,39007,385,39 +2020-06-15,Ashtabula,Ohio,39007,390,39 +2020-06-16,Ashtabula,Ohio,39007,392,41 +2020-06-17,Ashtabula,Ohio,39007,397,41 +2020-06-18,Ashtabula,Ohio,39007,402,41 +2020-06-19,Ashtabula,Ohio,39007,406,42 +2020-06-20,Ashtabula,Ohio,39007,402,42 +2020-06-21,Ashtabula,Ohio,39007,407,42 +2020-06-22,Ashtabula,Ohio,39007,410,42 +2020-06-23,Ashtabula,Ohio,39007,411,42 +2020-06-24,Ashtabula,Ohio,39007,412,42 +2020-06-25,Ashtabula,Ohio,39007,413,42 +2020-06-26,Ashtabula,Ohio,39007,412,43 +2020-06-27,Ashtabula,Ohio,39007,412,43 +2020-06-28,Ashtabula,Ohio,39007,415,43 +2020-06-29,Ashtabula,Ohio,39007,419,43 +2020-06-30,Ashtabula,Ohio,39007,420,43 +2020-07-01,Ashtabula,Ohio,39007,421,44 +2020-07-02,Ashtabula,Ohio,39007,421,44 +2020-07-03,Ashtabula,Ohio,39007,425,44 +2020-07-04,Ashtabula,Ohio,39007,431,44 +2020-07-05,Ashtabula,Ohio,39007,433,44 +2020-07-06,Ashtabula,Ohio,39007,435,44 +2020-07-07,Ashtabula,Ohio,39007,436,44 +2020-07-08,Ashtabula,Ohio,39007,437,44 +2020-07-09,Ashtabula,Ohio,39007,438,44 +2020-03-26,Athens,Ohio,39009,1,0 +2020-03-27,Athens,Ohio,39009,1,0 +2020-03-28,Athens,Ohio,39009,2,0 +2020-03-29,Athens,Ohio,39009,3,0 +2020-03-30,Athens,Ohio,39009,3,1 +2020-03-31,Athens,Ohio,39009,3,1 +2020-04-01,Athens,Ohio,39009,3,1 +2020-04-02,Athens,Ohio,39009,3,1 +2020-04-03,Athens,Ohio,39009,3,1 +2020-04-04,Athens,Ohio,39009,3,1 +2020-04-05,Athens,Ohio,39009,3,1 +2020-04-06,Athens,Ohio,39009,3,1 +2020-04-07,Athens,Ohio,39009,3,1 +2020-04-08,Athens,Ohio,39009,3,1 +2020-04-09,Athens,Ohio,39009,3,1 +2020-04-10,Athens,Ohio,39009,3,1 +2020-04-11,Athens,Ohio,39009,3,1 +2020-04-12,Athens,Ohio,39009,3,1 +2020-04-13,Athens,Ohio,39009,3,1 +2020-04-14,Athens,Ohio,39009,3,1 +2020-04-15,Athens,Ohio,39009,3,1 +2020-04-16,Athens,Ohio,39009,3,1 +2020-04-17,Athens,Ohio,39009,3,1 +2020-04-18,Athens,Ohio,39009,3,1 +2020-04-19,Athens,Ohio,39009,3,1 +2020-04-20,Athens,Ohio,39009,3,1 +2020-04-21,Athens,Ohio,39009,3,1 +2020-04-22,Athens,Ohio,39009,3,1 +2020-04-23,Athens,Ohio,39009,4,1 +2020-04-24,Athens,Ohio,39009,3,1 +2020-04-25,Athens,Ohio,39009,3,1 +2020-04-26,Athens,Ohio,39009,3,1 +2020-04-27,Athens,Ohio,39009,3,1 +2020-04-28,Athens,Ohio,39009,3,1 +2020-04-29,Athens,Ohio,39009,3,1 +2020-04-30,Athens,Ohio,39009,3,1 +2020-05-01,Athens,Ohio,39009,4,1 +2020-05-02,Athens,Ohio,39009,4,1 +2020-05-03,Athens,Ohio,39009,4,1 +2020-05-04,Athens,Ohio,39009,4,1 +2020-05-05,Athens,Ohio,39009,4,1 +2020-05-06,Athens,Ohio,39009,4,1 +2020-05-07,Athens,Ohio,39009,4,1 +2020-05-08,Athens,Ohio,39009,4,1 +2020-05-09,Athens,Ohio,39009,5,1 +2020-05-10,Athens,Ohio,39009,6,1 +2020-05-11,Athens,Ohio,39009,6,1 +2020-05-12,Athens,Ohio,39009,6,1 +2020-05-13,Athens,Ohio,39009,6,1 +2020-05-14,Athens,Ohio,39009,6,1 +2020-05-15,Athens,Ohio,39009,8,1 +2020-05-16,Athens,Ohio,39009,8,1 +2020-05-17,Athens,Ohio,39009,8,1 +2020-05-18,Athens,Ohio,39009,9,1 +2020-05-19,Athens,Ohio,39009,13,1 +2020-05-20,Athens,Ohio,39009,13,1 +2020-05-21,Athens,Ohio,39009,13,1 +2020-05-22,Athens,Ohio,39009,13,1 +2020-05-23,Athens,Ohio,39009,13,1 +2020-05-24,Athens,Ohio,39009,14,1 +2020-05-25,Athens,Ohio,39009,14,1 +2020-05-26,Athens,Ohio,39009,18,1 +2020-05-27,Athens,Ohio,39009,18,1 +2020-05-28,Athens,Ohio,39009,18,1 +2020-05-29,Athens,Ohio,39009,18,1 +2020-05-30,Athens,Ohio,39009,18,1 +2020-05-31,Athens,Ohio,39009,18,1 +2020-06-01,Athens,Ohio,39009,18,1 +2020-06-02,Athens,Ohio,39009,18,1 +2020-06-03,Athens,Ohio,39009,18,1 +2020-06-04,Athens,Ohio,39009,18,1 +2020-06-05,Athens,Ohio,39009,18,1 +2020-06-06,Athens,Ohio,39009,18,1 +2020-06-07,Athens,Ohio,39009,18,1 +2020-06-08,Athens,Ohio,39009,18,1 +2020-06-09,Athens,Ohio,39009,18,1 +2020-06-10,Athens,Ohio,39009,22,1 +2020-06-11,Athens,Ohio,39009,23,1 +2020-06-12,Athens,Ohio,39009,23,1 +2020-06-13,Athens,Ohio,39009,23,1 +2020-06-14,Athens,Ohio,39009,23,1 +2020-06-15,Athens,Ohio,39009,23,1 +2020-06-16,Athens,Ohio,39009,23,1 +2020-06-17,Athens,Ohio,39009,24,1 +2020-06-18,Athens,Ohio,39009,24,1 +2020-06-19,Athens,Ohio,39009,24,1 +2020-06-20,Athens,Ohio,39009,24,1 +2020-06-21,Athens,Ohio,39009,25,1 +2020-06-22,Athens,Ohio,39009,25,1 +2020-06-23,Athens,Ohio,39009,26,1 +2020-06-24,Athens,Ohio,39009,28,1 +2020-06-25,Athens,Ohio,39009,29,1 +2020-06-26,Athens,Ohio,39009,29,1 +2020-06-27,Athens,Ohio,39009,30,1 +2020-06-28,Athens,Ohio,39009,30,1 +2020-06-29,Athens,Ohio,39009,32,1 +2020-06-30,Athens,Ohio,39009,33,1 +2020-07-01,Athens,Ohio,39009,37,1 +2020-07-02,Athens,Ohio,39009,37,1 +2020-07-03,Athens,Ohio,39009,43,1 +2020-07-04,Athens,Ohio,39009,49,1 +2020-07-05,Athens,Ohio,39009,56,1 +2020-07-06,Athens,Ohio,39009,59,1 +2020-07-07,Athens,Ohio,39009,63,1 +2020-07-08,Athens,Ohio,39009,79,1 +2020-07-09,Athens,Ohio,39009,91,1 +2020-03-28,Auglaize,Ohio,39011,1,0 +2020-03-29,Auglaize,Ohio,39011,2,0 +2020-03-30,Auglaize,Ohio,39011,2,0 +2020-03-31,Auglaize,Ohio,39011,2,0 +2020-04-01,Auglaize,Ohio,39011,3,0 +2020-04-02,Auglaize,Ohio,39011,3,0 +2020-04-03,Auglaize,Ohio,39011,5,0 +2020-04-04,Auglaize,Ohio,39011,6,0 +2020-04-05,Auglaize,Ohio,39011,6,0 +2020-04-06,Auglaize,Ohio,39011,8,0 +2020-04-07,Auglaize,Ohio,39011,8,0 +2020-04-08,Auglaize,Ohio,39011,8,0 +2020-04-09,Auglaize,Ohio,39011,8,1 +2020-04-10,Auglaize,Ohio,39011,9,1 +2020-04-11,Auglaize,Ohio,39011,14,1 +2020-04-12,Auglaize,Ohio,39011,14,1 +2020-04-13,Auglaize,Ohio,39011,14,1 +2020-04-14,Auglaize,Ohio,39011,15,1 +2020-04-15,Auglaize,Ohio,39011,18,1 +2020-04-16,Auglaize,Ohio,39011,19,1 +2020-04-17,Auglaize,Ohio,39011,21,1 +2020-04-18,Auglaize,Ohio,39011,22,2 +2020-04-19,Auglaize,Ohio,39011,22,2 +2020-04-20,Auglaize,Ohio,39011,23,2 +2020-04-21,Auglaize,Ohio,39011,23,3 +2020-04-22,Auglaize,Ohio,39011,28,3 +2020-04-23,Auglaize,Ohio,39011,29,3 +2020-04-24,Auglaize,Ohio,39011,29,3 +2020-04-25,Auglaize,Ohio,39011,30,3 +2020-04-26,Auglaize,Ohio,39011,30,3 +2020-04-27,Auglaize,Ohio,39011,31,3 +2020-04-28,Auglaize,Ohio,39011,32,3 +2020-04-29,Auglaize,Ohio,39011,32,3 +2020-04-30,Auglaize,Ohio,39011,32,3 +2020-05-01,Auglaize,Ohio,39011,33,3 +2020-05-02,Auglaize,Ohio,39011,34,3 +2020-05-03,Auglaize,Ohio,39011,35,3 +2020-05-04,Auglaize,Ohio,39011,35,3 +2020-05-05,Auglaize,Ohio,39011,36,3 +2020-05-06,Auglaize,Ohio,39011,36,3 +2020-05-07,Auglaize,Ohio,39011,36,3 +2020-05-08,Auglaize,Ohio,39011,42,3 +2020-05-09,Auglaize,Ohio,39011,42,3 +2020-05-10,Auglaize,Ohio,39011,42,3 +2020-05-11,Auglaize,Ohio,39011,43,3 +2020-05-12,Auglaize,Ohio,39011,46,3 +2020-05-13,Auglaize,Ohio,39011,47,3 +2020-05-14,Auglaize,Ohio,39011,51,3 +2020-05-15,Auglaize,Ohio,39011,54,3 +2020-05-16,Auglaize,Ohio,39011,54,3 +2020-05-17,Auglaize,Ohio,39011,54,3 +2020-05-18,Auglaize,Ohio,39011,55,3 +2020-05-19,Auglaize,Ohio,39011,55,3 +2020-05-20,Auglaize,Ohio,39011,57,3 +2020-05-21,Auglaize,Ohio,39011,55,3 +2020-05-22,Auglaize,Ohio,39011,56,3 +2020-05-23,Auglaize,Ohio,39011,58,3 +2020-05-24,Auglaize,Ohio,39011,59,3 +2020-05-25,Auglaize,Ohio,39011,64,3 +2020-05-26,Auglaize,Ohio,39011,64,3 +2020-05-27,Auglaize,Ohio,39011,64,3 +2020-05-28,Auglaize,Ohio,39011,65,3 +2020-05-29,Auglaize,Ohio,39011,71,3 +2020-05-30,Auglaize,Ohio,39011,73,3 +2020-05-31,Auglaize,Ohio,39011,73,3 +2020-06-01,Auglaize,Ohio,39011,72,3 +2020-06-02,Auglaize,Ohio,39011,75,3 +2020-06-03,Auglaize,Ohio,39011,76,3 +2020-06-04,Auglaize,Ohio,39011,77,3 +2020-06-05,Auglaize,Ohio,39011,77,3 +2020-06-06,Auglaize,Ohio,39011,78,3 +2020-06-07,Auglaize,Ohio,39011,78,3 +2020-06-08,Auglaize,Ohio,39011,80,3 +2020-06-09,Auglaize,Ohio,39011,80,3 +2020-06-10,Auglaize,Ohio,39011,81,3 +2020-06-11,Auglaize,Ohio,39011,82,3 +2020-06-12,Auglaize,Ohio,39011,84,3 +2020-06-13,Auglaize,Ohio,39011,84,3 +2020-06-14,Auglaize,Ohio,39011,85,3 +2020-06-15,Auglaize,Ohio,39011,85,3 +2020-06-16,Auglaize,Ohio,39011,86,3 +2020-06-17,Auglaize,Ohio,39011,86,3 +2020-06-18,Auglaize,Ohio,39011,87,3 +2020-06-19,Auglaize,Ohio,39011,89,3 +2020-06-20,Auglaize,Ohio,39011,89,3 +2020-06-21,Auglaize,Ohio,39011,90,3 +2020-06-22,Auglaize,Ohio,39011,90,3 +2020-06-23,Auglaize,Ohio,39011,91,3 +2020-06-24,Auglaize,Ohio,39011,91,3 +2020-06-25,Auglaize,Ohio,39011,93,3 +2020-06-26,Auglaize,Ohio,39011,96,3 +2020-06-27,Auglaize,Ohio,39011,96,3 +2020-06-28,Auglaize,Ohio,39011,98,3 +2020-06-29,Auglaize,Ohio,39011,98,3 +2020-06-30,Auglaize,Ohio,39011,99,3 +2020-07-01,Auglaize,Ohio,39011,99,3 +2020-07-02,Auglaize,Ohio,39011,99,3 +2020-07-03,Auglaize,Ohio,39011,104,4 +2020-07-04,Auglaize,Ohio,39011,106,4 +2020-07-05,Auglaize,Ohio,39011,106,4 +2020-07-06,Auglaize,Ohio,39011,107,4 +2020-07-07,Auglaize,Ohio,39011,107,4 +2020-07-08,Auglaize,Ohio,39011,107,4 +2020-07-09,Auglaize,Ohio,39011,109,4 +2020-03-14,Belmont,Ohio,39013,2,0 +2020-03-15,Belmont,Ohio,39013,2,0 +2020-03-16,Belmont,Ohio,39013,2,0 +2020-03-17,Belmont,Ohio,39013,2,0 +2020-03-18,Belmont,Ohio,39013,2,0 +2020-03-19,Belmont,Ohio,39013,2,0 +2020-03-20,Belmont,Ohio,39013,2,0 +2020-03-21,Belmont,Ohio,39013,2,0 +2020-03-22,Belmont,Ohio,39013,2,0 +2020-03-23,Belmont,Ohio,39013,2,0 +2020-03-24,Belmont,Ohio,39013,2,0 +2020-03-25,Belmont,Ohio,39013,3,0 +2020-03-26,Belmont,Ohio,39013,3,0 +2020-03-27,Belmont,Ohio,39013,6,0 +2020-03-28,Belmont,Ohio,39013,8,0 +2020-03-29,Belmont,Ohio,39013,8,0 +2020-03-30,Belmont,Ohio,39013,8,0 +2020-03-31,Belmont,Ohio,39013,9,0 +2020-04-01,Belmont,Ohio,39013,11,0 +2020-04-02,Belmont,Ohio,39013,12,0 +2020-04-03,Belmont,Ohio,39013,13,0 +2020-04-04,Belmont,Ohio,39013,17,0 +2020-04-05,Belmont,Ohio,39013,20,0 +2020-04-06,Belmont,Ohio,39013,22,1 +2020-04-07,Belmont,Ohio,39013,25,1 +2020-04-08,Belmont,Ohio,39013,30,1 +2020-04-09,Belmont,Ohio,39013,36,1 +2020-04-10,Belmont,Ohio,39013,42,1 +2020-04-11,Belmont,Ohio,39013,49,2 +2020-04-12,Belmont,Ohio,39013,50,2 +2020-04-13,Belmont,Ohio,39013,53,2 +2020-04-14,Belmont,Ohio,39013,57,3 +2020-04-15,Belmont,Ohio,39013,58,3 +2020-04-16,Belmont,Ohio,39013,59,3 +2020-04-17,Belmont,Ohio,39013,63,3 +2020-04-18,Belmont,Ohio,39013,68,3 +2020-04-19,Belmont,Ohio,39013,68,3 +2020-04-20,Belmont,Ohio,39013,73,5 +2020-04-21,Belmont,Ohio,39013,84,6 +2020-04-22,Belmont,Ohio,39013,93,6 +2020-04-23,Belmont,Ohio,39013,95,6 +2020-04-24,Belmont,Ohio,39013,98,6 +2020-04-25,Belmont,Ohio,39013,101,6 +2020-04-26,Belmont,Ohio,39013,106,6 +2020-04-27,Belmont,Ohio,39013,114,7 +2020-04-28,Belmont,Ohio,39013,118,7 +2020-04-29,Belmont,Ohio,39013,128,7 +2020-04-30,Belmont,Ohio,39013,144,7 +2020-05-01,Belmont,Ohio,39013,153,7 +2020-05-02,Belmont,Ohio,39013,156,7 +2020-05-03,Belmont,Ohio,39013,163,7 +2020-05-04,Belmont,Ohio,39013,174,7 +2020-05-05,Belmont,Ohio,39013,181,7 +2020-05-06,Belmont,Ohio,39013,201,7 +2020-05-07,Belmont,Ohio,39013,205,7 +2020-05-08,Belmont,Ohio,39013,216,7 +2020-05-09,Belmont,Ohio,39013,229,7 +2020-05-10,Belmont,Ohio,39013,234,7 +2020-05-11,Belmont,Ohio,39013,258,7 +2020-05-12,Belmont,Ohio,39013,266,7 +2020-05-13,Belmont,Ohio,39013,276,7 +2020-05-14,Belmont,Ohio,39013,296,8 +2020-05-15,Belmont,Ohio,39013,300,8 +2020-05-16,Belmont,Ohio,39013,318,8 +2020-05-17,Belmont,Ohio,39013,328,8 +2020-05-18,Belmont,Ohio,39013,341,8 +2020-05-19,Belmont,Ohio,39013,343,9 +2020-05-20,Belmont,Ohio,39013,352,11 +2020-05-21,Belmont,Ohio,39013,362,11 +2020-05-22,Belmont,Ohio,39013,374,11 +2020-05-23,Belmont,Ohio,39013,381,12 +2020-05-24,Belmont,Ohio,39013,384,12 +2020-05-25,Belmont,Ohio,39013,390,12 +2020-05-26,Belmont,Ohio,39013,402,12 +2020-05-27,Belmont,Ohio,39013,403,12 +2020-05-28,Belmont,Ohio,39013,412,12 +2020-05-29,Belmont,Ohio,39013,419,12 +2020-05-30,Belmont,Ohio,39013,428,12 +2020-05-31,Belmont,Ohio,39013,429,12 +2020-06-01,Belmont,Ohio,39013,435,13 +2020-06-02,Belmont,Ohio,39013,438,13 +2020-06-03,Belmont,Ohio,39013,439,14 +2020-06-04,Belmont,Ohio,39013,447,15 +2020-06-05,Belmont,Ohio,39013,449,15 +2020-06-06,Belmont,Ohio,39013,450,15 +2020-06-07,Belmont,Ohio,39013,451,15 +2020-06-08,Belmont,Ohio,39013,453,15 +2020-06-09,Belmont,Ohio,39013,455,15 +2020-06-10,Belmont,Ohio,39013,460,16 +2020-06-11,Belmont,Ohio,39013,462,16 +2020-06-12,Belmont,Ohio,39013,463,18 +2020-06-13,Belmont,Ohio,39013,466,20 +2020-06-14,Belmont,Ohio,39013,467,20 +2020-06-15,Belmont,Ohio,39013,469,20 +2020-06-16,Belmont,Ohio,39013,469,21 +2020-06-17,Belmont,Ohio,39013,472,21 +2020-06-18,Belmont,Ohio,39013,472,21 +2020-06-19,Belmont,Ohio,39013,476,21 +2020-06-20,Belmont,Ohio,39013,477,21 +2020-06-21,Belmont,Ohio,39013,484,21 +2020-06-22,Belmont,Ohio,39013,493,21 +2020-06-23,Belmont,Ohio,39013,500,21 +2020-06-24,Belmont,Ohio,39013,506,21 +2020-06-25,Belmont,Ohio,39013,516,21 +2020-06-26,Belmont,Ohio,39013,519,21 +2020-06-27,Belmont,Ohio,39013,521,21 +2020-06-28,Belmont,Ohio,39013,523,21 +2020-06-29,Belmont,Ohio,39013,524,21 +2020-06-30,Belmont,Ohio,39013,528,21 +2020-07-01,Belmont,Ohio,39013,534,21 +2020-07-02,Belmont,Ohio,39013,534,21 +2020-07-03,Belmont,Ohio,39013,543,22 +2020-07-04,Belmont,Ohio,39013,544,22 +2020-07-05,Belmont,Ohio,39013,546,22 +2020-07-06,Belmont,Ohio,39013,549,22 +2020-07-07,Belmont,Ohio,39013,554,22 +2020-07-08,Belmont,Ohio,39013,555,22 +2020-07-09,Belmont,Ohio,39013,558,22 +2020-03-30,Brown,Ohio,39015,1,0 +2020-03-31,Brown,Ohio,39015,2,1 +2020-04-01,Brown,Ohio,39015,2,1 +2020-04-02,Brown,Ohio,39015,2,1 +2020-04-03,Brown,Ohio,39015,2,1 +2020-04-04,Brown,Ohio,39015,3,1 +2020-04-05,Brown,Ohio,39015,3,1 +2020-04-06,Brown,Ohio,39015,3,1 +2020-04-07,Brown,Ohio,39015,4,1 +2020-04-08,Brown,Ohio,39015,4,1 +2020-04-09,Brown,Ohio,39015,4,1 +2020-04-10,Brown,Ohio,39015,4,1 +2020-04-11,Brown,Ohio,39015,5,1 +2020-04-12,Brown,Ohio,39015,6,1 +2020-04-13,Brown,Ohio,39015,5,1 +2020-04-14,Brown,Ohio,39015,5,1 +2020-04-15,Brown,Ohio,39015,8,1 +2020-04-16,Brown,Ohio,39015,8,1 +2020-04-17,Brown,Ohio,39015,8,1 +2020-04-18,Brown,Ohio,39015,9,1 +2020-04-19,Brown,Ohio,39015,9,1 +2020-04-20,Brown,Ohio,39015,9,1 +2020-04-21,Brown,Ohio,39015,9,1 +2020-04-22,Brown,Ohio,39015,10,1 +2020-04-23,Brown,Ohio,39015,11,1 +2020-04-24,Brown,Ohio,39015,11,1 +2020-04-25,Brown,Ohio,39015,11,1 +2020-04-26,Brown,Ohio,39015,11,1 +2020-04-27,Brown,Ohio,39015,11,1 +2020-04-28,Brown,Ohio,39015,11,1 +2020-04-29,Brown,Ohio,39015,11,1 +2020-04-30,Brown,Ohio,39015,11,1 +2020-05-01,Brown,Ohio,39015,11,1 +2020-05-02,Brown,Ohio,39015,11,1 +2020-05-03,Brown,Ohio,39015,11,1 +2020-05-04,Brown,Ohio,39015,12,1 +2020-05-05,Brown,Ohio,39015,13,1 +2020-05-06,Brown,Ohio,39015,13,1 +2020-05-07,Brown,Ohio,39015,16,1 +2020-05-08,Brown,Ohio,39015,16,1 +2020-05-09,Brown,Ohio,39015,16,1 +2020-05-10,Brown,Ohio,39015,17,1 +2020-05-11,Brown,Ohio,39015,17,1 +2020-05-12,Brown,Ohio,39015,20,1 +2020-05-13,Brown,Ohio,39015,21,1 +2020-05-14,Brown,Ohio,39015,21,1 +2020-05-15,Brown,Ohio,39015,22,1 +2020-05-16,Brown,Ohio,39015,22,1 +2020-05-17,Brown,Ohio,39015,22,1 +2020-05-18,Brown,Ohio,39015,23,1 +2020-05-19,Brown,Ohio,39015,23,1 +2020-05-20,Brown,Ohio,39015,23,1 +2020-05-21,Brown,Ohio,39015,23,1 +2020-05-22,Brown,Ohio,39015,24,1 +2020-05-23,Brown,Ohio,39015,24,1 +2020-05-24,Brown,Ohio,39015,24,1 +2020-05-25,Brown,Ohio,39015,25,1 +2020-05-26,Brown,Ohio,39015,25,1 +2020-05-27,Brown,Ohio,39015,25,1 +2020-05-28,Brown,Ohio,39015,28,1 +2020-05-29,Brown,Ohio,39015,28,1 +2020-05-30,Brown,Ohio,39015,28,1 +2020-05-31,Brown,Ohio,39015,29,1 +2020-06-01,Brown,Ohio,39015,29,1 +2020-06-02,Brown,Ohio,39015,28,1 +2020-06-03,Brown,Ohio,39015,30,1 +2020-06-04,Brown,Ohio,39015,30,1 +2020-06-05,Brown,Ohio,39015,31,1 +2020-06-06,Brown,Ohio,39015,31,1 +2020-06-07,Brown,Ohio,39015,31,1 +2020-06-08,Brown,Ohio,39015,31,1 +2020-06-09,Brown,Ohio,39015,32,1 +2020-06-10,Brown,Ohio,39015,32,1 +2020-06-11,Brown,Ohio,39015,36,1 +2020-06-12,Brown,Ohio,39015,37,1 +2020-06-13,Brown,Ohio,39015,38,1 +2020-06-14,Brown,Ohio,39015,39,1 +2020-06-15,Brown,Ohio,39015,38,1 +2020-06-16,Brown,Ohio,39015,38,1 +2020-06-17,Brown,Ohio,39015,39,1 +2020-06-18,Brown,Ohio,39015,40,1 +2020-06-19,Brown,Ohio,39015,41,1 +2020-06-20,Brown,Ohio,39015,43,1 +2020-06-21,Brown,Ohio,39015,43,1 +2020-06-22,Brown,Ohio,39015,45,1 +2020-06-23,Brown,Ohio,39015,45,1 +2020-06-24,Brown,Ohio,39015,47,1 +2020-06-25,Brown,Ohio,39015,50,1 +2020-06-26,Brown,Ohio,39015,51,1 +2020-06-27,Brown,Ohio,39015,52,1 +2020-06-28,Brown,Ohio,39015,53,1 +2020-06-29,Brown,Ohio,39015,53,1 +2020-06-30,Brown,Ohio,39015,52,1 +2020-07-01,Brown,Ohio,39015,53,1 +2020-07-02,Brown,Ohio,39015,53,1 +2020-07-03,Brown,Ohio,39015,54,1 +2020-07-04,Brown,Ohio,39015,56,1 +2020-07-05,Brown,Ohio,39015,56,1 +2020-07-06,Brown,Ohio,39015,57,1 +2020-07-07,Brown,Ohio,39015,58,1 +2020-07-08,Brown,Ohio,39015,59,1 +2020-07-09,Brown,Ohio,39015,59,1 +2020-03-14,Butler,Ohio,39017,4,0 +2020-03-15,Butler,Ohio,39017,6,0 +2020-03-16,Butler,Ohio,39017,6,0 +2020-03-17,Butler,Ohio,39017,6,0 +2020-03-18,Butler,Ohio,39017,8,0 +2020-03-19,Butler,Ohio,39017,8,0 +2020-03-20,Butler,Ohio,39017,12,0 +2020-03-21,Butler,Ohio,39017,16,0 +2020-03-22,Butler,Ohio,39017,17,0 +2020-03-23,Butler,Ohio,39017,17,0 +2020-03-24,Butler,Ohio,39017,18,0 +2020-03-25,Butler,Ohio,39017,18,0 +2020-03-26,Butler,Ohio,39017,21,0 +2020-03-27,Butler,Ohio,39017,23,0 +2020-03-28,Butler,Ohio,39017,25,0 +2020-03-29,Butler,Ohio,39017,27,0 +2020-03-30,Butler,Ohio,39017,30,0 +2020-03-31,Butler,Ohio,39017,36,0 +2020-04-01,Butler,Ohio,39017,41,0 +2020-04-02,Butler,Ohio,39017,45,0 +2020-04-03,Butler,Ohio,39017,49,1 +2020-04-04,Butler,Ohio,39017,59,1 +2020-04-05,Butler,Ohio,39017,68,2 +2020-04-06,Butler,Ohio,39017,75,2 +2020-04-07,Butler,Ohio,39017,92,2 +2020-04-08,Butler,Ohio,39017,102,2 +2020-04-09,Butler,Ohio,39017,108,2 +2020-04-10,Butler,Ohio,39017,112,2 +2020-04-11,Butler,Ohio,39017,115,2 +2020-04-12,Butler,Ohio,39017,117,2 +2020-04-13,Butler,Ohio,39017,121,2 +2020-04-14,Butler,Ohio,39017,127,2 +2020-04-15,Butler,Ohio,39017,133,2 +2020-04-16,Butler,Ohio,39017,148,2 +2020-04-17,Butler,Ohio,39017,155,2 +2020-04-18,Butler,Ohio,39017,164,2 +2020-04-19,Butler,Ohio,39017,166,2 +2020-04-20,Butler,Ohio,39017,180,2 +2020-04-21,Butler,Ohio,39017,184,2 +2020-04-22,Butler,Ohio,39017,192,4 +2020-04-23,Butler,Ohio,39017,201,4 +2020-04-24,Butler,Ohio,39017,208,4 +2020-04-25,Butler,Ohio,39017,216,4 +2020-04-26,Butler,Ohio,39017,225,4 +2020-04-27,Butler,Ohio,39017,234,4 +2020-04-28,Butler,Ohio,39017,254,5 +2020-04-29,Butler,Ohio,39017,261,7 +2020-04-30,Butler,Ohio,39017,281,7 +2020-05-01,Butler,Ohio,39017,296,7 +2020-05-02,Butler,Ohio,39017,318,7 +2020-05-03,Butler,Ohio,39017,328,7 +2020-05-04,Butler,Ohio,39017,334,7 +2020-05-05,Butler,Ohio,39017,346,8 +2020-05-06,Butler,Ohio,39017,361,10 +2020-05-07,Butler,Ohio,39017,372,12 +2020-05-08,Butler,Ohio,39017,404,12 +2020-05-09,Butler,Ohio,39017,436,13 +2020-05-10,Butler,Ohio,39017,452,13 +2020-05-11,Butler,Ohio,39017,479,13 +2020-05-12,Butler,Ohio,39017,496,14 +2020-05-13,Butler,Ohio,39017,509,15 +2020-05-14,Butler,Ohio,39017,542,16 +2020-05-15,Butler,Ohio,39017,558,16 +2020-05-16,Butler,Ohio,39017,578,16 +2020-05-17,Butler,Ohio,39017,591,16 +2020-05-18,Butler,Ohio,39017,610,16 +2020-05-19,Butler,Ohio,39017,639,17 +2020-05-20,Butler,Ohio,39017,671,19 +2020-05-21,Butler,Ohio,39017,699,23 +2020-05-22,Butler,Ohio,39017,734,23 +2020-05-23,Butler,Ohio,39017,750,25 +2020-05-24,Butler,Ohio,39017,776,25 +2020-05-25,Butler,Ohio,39017,802,25 +2020-05-26,Butler,Ohio,39017,817,25 +2020-05-27,Butler,Ohio,39017,826,26 +2020-05-28,Butler,Ohio,39017,847,28 +2020-05-29,Butler,Ohio,39017,862,29 +2020-05-30,Butler,Ohio,39017,874,29 +2020-05-31,Butler,Ohio,39017,893,29 +2020-06-01,Butler,Ohio,39017,909,31 +2020-06-02,Butler,Ohio,39017,919,32 +2020-06-03,Butler,Ohio,39017,933,33 +2020-06-04,Butler,Ohio,39017,948,32 +2020-06-05,Butler,Ohio,39017,975,32 +2020-06-06,Butler,Ohio,39017,985,32 +2020-06-07,Butler,Ohio,39017,999,32 +2020-06-08,Butler,Ohio,39017,1013,32 +2020-06-09,Butler,Ohio,39017,1034,32 +2020-06-10,Butler,Ohio,39017,1045,32 +2020-06-11,Butler,Ohio,39017,1048,33 +2020-06-12,Butler,Ohio,39017,1065,33 +2020-06-13,Butler,Ohio,39017,1080,33 +2020-06-14,Butler,Ohio,39017,1090,34 +2020-06-15,Butler,Ohio,39017,1103,34 +2020-06-16,Butler,Ohio,39017,1120,35 +2020-06-17,Butler,Ohio,39017,1129,35 +2020-06-18,Butler,Ohio,39017,1153,36 +2020-06-19,Butler,Ohio,39017,1166,37 +2020-06-20,Butler,Ohio,39017,1194,39 +2020-06-21,Butler,Ohio,39017,1201,39 +2020-06-22,Butler,Ohio,39017,1223,39 +2020-06-23,Butler,Ohio,39017,1248,39 +2020-06-24,Butler,Ohio,39017,1269,40 +2020-06-25,Butler,Ohio,39017,1301,41 +2020-06-26,Butler,Ohio,39017,1322,43 +2020-06-27,Butler,Ohio,39017,1350,44 +2020-06-28,Butler,Ohio,39017,1371,44 +2020-06-29,Butler,Ohio,39017,1388,44 +2020-06-30,Butler,Ohio,39017,1405,44 +2020-07-01,Butler,Ohio,39017,1448,44 +2020-07-02,Butler,Ohio,39017,1448,44 +2020-07-03,Butler,Ohio,39017,1511,44 +2020-07-04,Butler,Ohio,39017,1547,44 +2020-07-05,Butler,Ohio,39017,1576,44 +2020-07-06,Butler,Ohio,39017,1599,44 +2020-07-07,Butler,Ohio,39017,1637,47 +2020-07-08,Butler,Ohio,39017,1674,47 +2020-07-09,Butler,Ohio,39017,1721,47 +2020-03-22,Carroll,Ohio,39019,1,0 +2020-03-23,Carroll,Ohio,39019,2,0 +2020-03-24,Carroll,Ohio,39019,3,0 +2020-03-25,Carroll,Ohio,39019,3,0 +2020-03-26,Carroll,Ohio,39019,3,0 +2020-03-27,Carroll,Ohio,39019,3,0 +2020-03-28,Carroll,Ohio,39019,4,0 +2020-03-29,Carroll,Ohio,39019,4,0 +2020-03-30,Carroll,Ohio,39019,5,0 +2020-03-31,Carroll,Ohio,39019,5,0 +2020-04-01,Carroll,Ohio,39019,5,0 +2020-04-02,Carroll,Ohio,39019,5,0 +2020-04-03,Carroll,Ohio,39019,5,0 +2020-04-04,Carroll,Ohio,39019,8,0 +2020-04-05,Carroll,Ohio,39019,8,0 +2020-04-06,Carroll,Ohio,39019,9,0 +2020-04-07,Carroll,Ohio,39019,9,0 +2020-04-08,Carroll,Ohio,39019,9,0 +2020-04-09,Carroll,Ohio,39019,9,0 +2020-04-10,Carroll,Ohio,39019,10,0 +2020-04-11,Carroll,Ohio,39019,11,0 +2020-04-12,Carroll,Ohio,39019,13,0 +2020-04-13,Carroll,Ohio,39019,14,0 +2020-04-14,Carroll,Ohio,39019,14,0 +2020-04-15,Carroll,Ohio,39019,14,0 +2020-04-16,Carroll,Ohio,39019,14,0 +2020-04-17,Carroll,Ohio,39019,15,0 +2020-04-18,Carroll,Ohio,39019,15,0 +2020-04-19,Carroll,Ohio,39019,15,0 +2020-04-20,Carroll,Ohio,39019,16,0 +2020-04-21,Carroll,Ohio,39019,16,0 +2020-04-22,Carroll,Ohio,39019,18,0 +2020-04-23,Carroll,Ohio,39019,18,0 +2020-04-24,Carroll,Ohio,39019,19,1 +2020-04-25,Carroll,Ohio,39019,20,1 +2020-04-26,Carroll,Ohio,39019,19,1 +2020-04-27,Carroll,Ohio,39019,19,1 +2020-04-28,Carroll,Ohio,39019,19,1 +2020-04-29,Carroll,Ohio,39019,19,1 +2020-04-30,Carroll,Ohio,39019,21,1 +2020-05-01,Carroll,Ohio,39019,21,1 +2020-05-02,Carroll,Ohio,39019,21,1 +2020-05-03,Carroll,Ohio,39019,21,1 +2020-05-04,Carroll,Ohio,39019,21,1 +2020-05-05,Carroll,Ohio,39019,21,1 +2020-05-06,Carroll,Ohio,39019,21,1 +2020-05-07,Carroll,Ohio,39019,21,1 +2020-05-08,Carroll,Ohio,39019,23,1 +2020-05-09,Carroll,Ohio,39019,23,1 +2020-05-10,Carroll,Ohio,39019,23,1 +2020-05-11,Carroll,Ohio,39019,24,1 +2020-05-12,Carroll,Ohio,39019,24,2 +2020-05-13,Carroll,Ohio,39019,24,2 +2020-05-14,Carroll,Ohio,39019,24,2 +2020-05-15,Carroll,Ohio,39019,24,2 +2020-05-16,Carroll,Ohio,39019,24,2 +2020-05-17,Carroll,Ohio,39019,25,2 +2020-05-18,Carroll,Ohio,39019,26,2 +2020-05-19,Carroll,Ohio,39019,26,2 +2020-05-20,Carroll,Ohio,39019,26,2 +2020-05-21,Carroll,Ohio,39019,26,2 +2020-05-22,Carroll,Ohio,39019,28,2 +2020-05-23,Carroll,Ohio,39019,28,2 +2020-05-24,Carroll,Ohio,39019,28,2 +2020-05-25,Carroll,Ohio,39019,28,2 +2020-05-26,Carroll,Ohio,39019,28,2 +2020-05-27,Carroll,Ohio,39019,29,3 +2020-05-28,Carroll,Ohio,39019,30,3 +2020-05-29,Carroll,Ohio,39019,30,3 +2020-05-30,Carroll,Ohio,39019,30,3 +2020-05-31,Carroll,Ohio,39019,31,3 +2020-06-01,Carroll,Ohio,39019,31,3 +2020-06-02,Carroll,Ohio,39019,31,3 +2020-06-03,Carroll,Ohio,39019,31,3 +2020-06-04,Carroll,Ohio,39019,34,3 +2020-06-05,Carroll,Ohio,39019,35,3 +2020-06-06,Carroll,Ohio,39019,36,3 +2020-06-07,Carroll,Ohio,39019,36,3 +2020-06-08,Carroll,Ohio,39019,36,3 +2020-06-09,Carroll,Ohio,39019,36,3 +2020-06-10,Carroll,Ohio,39019,36,3 +2020-06-11,Carroll,Ohio,39019,36,3 +2020-06-12,Carroll,Ohio,39019,36,3 +2020-06-13,Carroll,Ohio,39019,37,3 +2020-06-14,Carroll,Ohio,39019,37,3 +2020-06-15,Carroll,Ohio,39019,37,3 +2020-06-16,Carroll,Ohio,39019,37,3 +2020-06-17,Carroll,Ohio,39019,37,3 +2020-06-18,Carroll,Ohio,39019,37,3 +2020-06-19,Carroll,Ohio,39019,38,3 +2020-06-20,Carroll,Ohio,39019,39,3 +2020-06-21,Carroll,Ohio,39019,41,3 +2020-06-22,Carroll,Ohio,39019,42,3 +2020-06-23,Carroll,Ohio,39019,42,3 +2020-06-24,Carroll,Ohio,39019,43,3 +2020-06-25,Carroll,Ohio,39019,46,3 +2020-06-26,Carroll,Ohio,39019,46,3 +2020-06-27,Carroll,Ohio,39019,47,3 +2020-06-28,Carroll,Ohio,39019,48,3 +2020-06-29,Carroll,Ohio,39019,50,3 +2020-06-30,Carroll,Ohio,39019,51,3 +2020-07-01,Carroll,Ohio,39019,51,3 +2020-07-02,Carroll,Ohio,39019,51,3 +2020-07-03,Carroll,Ohio,39019,58,3 +2020-07-04,Carroll,Ohio,39019,58,3 +2020-07-05,Carroll,Ohio,39019,59,3 +2020-07-06,Carroll,Ohio,39019,59,3 +2020-07-07,Carroll,Ohio,39019,59,3 +2020-07-08,Carroll,Ohio,39019,60,3 +2020-07-09,Carroll,Ohio,39019,60,3 +2020-03-24,Champaign,Ohio,39021,1,0 +2020-03-25,Champaign,Ohio,39021,1,0 +2020-03-26,Champaign,Ohio,39021,2,0 +2020-03-27,Champaign,Ohio,39021,2,0 +2020-03-28,Champaign,Ohio,39021,2,0 +2020-03-29,Champaign,Ohio,39021,2,0 +2020-03-30,Champaign,Ohio,39021,3,0 +2020-03-31,Champaign,Ohio,39021,3,0 +2020-04-01,Champaign,Ohio,39021,4,0 +2020-04-02,Champaign,Ohio,39021,4,0 +2020-04-03,Champaign,Ohio,39021,4,0 +2020-04-04,Champaign,Ohio,39021,5,0 +2020-04-05,Champaign,Ohio,39021,5,0 +2020-04-06,Champaign,Ohio,39021,5,0 +2020-04-07,Champaign,Ohio,39021,5,0 +2020-04-08,Champaign,Ohio,39021,5,0 +2020-04-09,Champaign,Ohio,39021,5,0 +2020-04-10,Champaign,Ohio,39021,6,0 +2020-04-11,Champaign,Ohio,39021,6,1 +2020-04-12,Champaign,Ohio,39021,6,1 +2020-04-13,Champaign,Ohio,39021,6,1 +2020-04-14,Champaign,Ohio,39021,6,1 +2020-04-15,Champaign,Ohio,39021,6,1 +2020-04-16,Champaign,Ohio,39021,6,1 +2020-04-17,Champaign,Ohio,39021,6,1 +2020-04-18,Champaign,Ohio,39021,7,1 +2020-04-19,Champaign,Ohio,39021,8,1 +2020-04-20,Champaign,Ohio,39021,8,1 +2020-04-21,Champaign,Ohio,39021,7,1 +2020-04-22,Champaign,Ohio,39021,7,1 +2020-04-23,Champaign,Ohio,39021,8,1 +2020-04-24,Champaign,Ohio,39021,8,1 +2020-04-25,Champaign,Ohio,39021,12,1 +2020-04-26,Champaign,Ohio,39021,12,1 +2020-04-27,Champaign,Ohio,39021,12,1 +2020-04-28,Champaign,Ohio,39021,14,1 +2020-04-29,Champaign,Ohio,39021,14,1 +2020-04-30,Champaign,Ohio,39021,14,1 +2020-05-01,Champaign,Ohio,39021,14,1 +2020-05-02,Champaign,Ohio,39021,14,1 +2020-05-03,Champaign,Ohio,39021,15,1 +2020-05-04,Champaign,Ohio,39021,14,1 +2020-05-05,Champaign,Ohio,39021,15,1 +2020-05-06,Champaign,Ohio,39021,15,1 +2020-05-07,Champaign,Ohio,39021,16,1 +2020-05-08,Champaign,Ohio,39021,16,1 +2020-05-09,Champaign,Ohio,39021,17,1 +2020-05-10,Champaign,Ohio,39021,18,1 +2020-05-11,Champaign,Ohio,39021,19,1 +2020-05-12,Champaign,Ohio,39021,19,1 +2020-05-13,Champaign,Ohio,39021,21,2 +2020-05-14,Champaign,Ohio,39021,20,1 +2020-05-15,Champaign,Ohio,39021,22,1 +2020-05-16,Champaign,Ohio,39021,23,1 +2020-05-17,Champaign,Ohio,39021,23,1 +2020-05-18,Champaign,Ohio,39021,23,1 +2020-05-19,Champaign,Ohio,39021,23,1 +2020-05-20,Champaign,Ohio,39021,25,1 +2020-05-21,Champaign,Ohio,39021,25,1 +2020-05-22,Champaign,Ohio,39021,26,1 +2020-05-23,Champaign,Ohio,39021,26,1 +2020-05-24,Champaign,Ohio,39021,26,1 +2020-05-25,Champaign,Ohio,39021,26,1 +2020-05-26,Champaign,Ohio,39021,27,1 +2020-05-27,Champaign,Ohio,39021,27,1 +2020-05-28,Champaign,Ohio,39021,27,1 +2020-05-29,Champaign,Ohio,39021,27,1 +2020-05-30,Champaign,Ohio,39021,27,1 +2020-05-31,Champaign,Ohio,39021,28,1 +2020-06-01,Champaign,Ohio,39021,28,1 +2020-06-02,Champaign,Ohio,39021,28,1 +2020-06-03,Champaign,Ohio,39021,28,1 +2020-06-04,Champaign,Ohio,39021,28,1 +2020-06-05,Champaign,Ohio,39021,28,1 +2020-06-06,Champaign,Ohio,39021,29,1 +2020-06-07,Champaign,Ohio,39021,33,1 +2020-06-08,Champaign,Ohio,39021,34,1 +2020-06-09,Champaign,Ohio,39021,35,1 +2020-06-10,Champaign,Ohio,39021,34,1 +2020-06-11,Champaign,Ohio,39021,34,1 +2020-06-12,Champaign,Ohio,39021,34,1 +2020-06-13,Champaign,Ohio,39021,34,1 +2020-06-14,Champaign,Ohio,39021,34,1 +2020-06-15,Champaign,Ohio,39021,35,1 +2020-06-16,Champaign,Ohio,39021,36,1 +2020-06-17,Champaign,Ohio,39021,36,1 +2020-06-18,Champaign,Ohio,39021,37,1 +2020-06-19,Champaign,Ohio,39021,37,1 +2020-06-20,Champaign,Ohio,39021,37,1 +2020-06-21,Champaign,Ohio,39021,37,1 +2020-06-22,Champaign,Ohio,39021,37,1 +2020-06-23,Champaign,Ohio,39021,37,1 +2020-06-24,Champaign,Ohio,39021,37,1 +2020-06-25,Champaign,Ohio,39021,37,1 +2020-06-26,Champaign,Ohio,39021,37,1 +2020-06-27,Champaign,Ohio,39021,37,1 +2020-06-28,Champaign,Ohio,39021,37,1 +2020-06-29,Champaign,Ohio,39021,37,1 +2020-06-30,Champaign,Ohio,39021,37,1 +2020-07-01,Champaign,Ohio,39021,38,1 +2020-07-02,Champaign,Ohio,39021,38,1 +2020-07-03,Champaign,Ohio,39021,39,1 +2020-07-04,Champaign,Ohio,39021,39,1 +2020-07-05,Champaign,Ohio,39021,40,1 +2020-07-06,Champaign,Ohio,39021,40,1 +2020-07-07,Champaign,Ohio,39021,41,1 +2020-07-08,Champaign,Ohio,39021,44,1 +2020-07-09,Champaign,Ohio,39021,46,1 +2020-03-18,Clark,Ohio,39023,1,0 +2020-03-19,Clark,Ohio,39023,1,0 +2020-03-20,Clark,Ohio,39023,1,0 +2020-03-21,Clark,Ohio,39023,1,0 +2020-03-22,Clark,Ohio,39023,1,0 +2020-03-23,Clark,Ohio,39023,1,0 +2020-03-24,Clark,Ohio,39023,2,0 +2020-03-25,Clark,Ohio,39023,2,0 +2020-03-26,Clark,Ohio,39023,2,0 +2020-03-27,Clark,Ohio,39023,2,0 +2020-03-28,Clark,Ohio,39023,2,0 +2020-03-29,Clark,Ohio,39023,7,0 +2020-03-30,Clark,Ohio,39023,6,0 +2020-03-31,Clark,Ohio,39023,6,0 +2020-04-01,Clark,Ohio,39023,6,0 +2020-04-02,Clark,Ohio,39023,7,0 +2020-04-03,Clark,Ohio,39023,7,0 +2020-04-04,Clark,Ohio,39023,7,0 +2020-04-05,Clark,Ohio,39023,8,0 +2020-04-06,Clark,Ohio,39023,10,0 +2020-04-07,Clark,Ohio,39023,11,0 +2020-04-08,Clark,Ohio,39023,13,0 +2020-04-09,Clark,Ohio,39023,14,0 +2020-04-10,Clark,Ohio,39023,14,0 +2020-04-11,Clark,Ohio,39023,18,0 +2020-04-12,Clark,Ohio,39023,20,0 +2020-04-13,Clark,Ohio,39023,20,0 +2020-04-14,Clark,Ohio,39023,20,0 +2020-04-15,Clark,Ohio,39023,21,0 +2020-04-16,Clark,Ohio,39023,23,0 +2020-04-17,Clark,Ohio,39023,25,0 +2020-04-18,Clark,Ohio,39023,26,0 +2020-04-19,Clark,Ohio,39023,25,0 +2020-04-20,Clark,Ohio,39023,26,0 +2020-04-21,Clark,Ohio,39023,28,0 +2020-04-22,Clark,Ohio,39023,28,0 +2020-04-23,Clark,Ohio,39023,29,1 +2020-04-24,Clark,Ohio,39023,30,1 +2020-04-25,Clark,Ohio,39023,32,1 +2020-04-26,Clark,Ohio,39023,33,2 +2020-04-27,Clark,Ohio,39023,43,2 +2020-04-28,Clark,Ohio,39023,48,2 +2020-04-29,Clark,Ohio,39023,51,2 +2020-04-30,Clark,Ohio,39023,57,2 +2020-05-01,Clark,Ohio,39023,57,2 +2020-05-02,Clark,Ohio,39023,63,2 +2020-05-03,Clark,Ohio,39023,67,2 +2020-05-04,Clark,Ohio,39023,70,2 +2020-05-05,Clark,Ohio,39023,69,2 +2020-05-06,Clark,Ohio,39023,71,2 +2020-05-07,Clark,Ohio,39023,74,2 +2020-05-08,Clark,Ohio,39023,80,2 +2020-05-09,Clark,Ohio,39023,90,3 +2020-05-10,Clark,Ohio,39023,93,3 +2020-05-11,Clark,Ohio,39023,98,3 +2020-05-12,Clark,Ohio,39023,104,3 +2020-05-13,Clark,Ohio,39023,114,3 +2020-05-14,Clark,Ohio,39023,122,3 +2020-05-15,Clark,Ohio,39023,131,3 +2020-05-16,Clark,Ohio,39023,138,3 +2020-05-17,Clark,Ohio,39023,139,3 +2020-05-18,Clark,Ohio,39023,148,3 +2020-05-19,Clark,Ohio,39023,155,4 +2020-05-20,Clark,Ohio,39023,166,4 +2020-05-21,Clark,Ohio,39023,178,4 +2020-05-22,Clark,Ohio,39023,184,5 +2020-05-23,Clark,Ohio,39023,195,6 +2020-05-24,Clark,Ohio,39023,206,6 +2020-05-25,Clark,Ohio,39023,223,6 +2020-05-26,Clark,Ohio,39023,225,6 +2020-05-27,Clark,Ohio,39023,231,6 +2020-05-28,Clark,Ohio,39023,234,5 +2020-05-29,Clark,Ohio,39023,252,6 +2020-05-30,Clark,Ohio,39023,277,6 +2020-05-31,Clark,Ohio,39023,285,6 +2020-06-01,Clark,Ohio,39023,295,6 +2020-06-02,Clark,Ohio,39023,298,7 +2020-06-03,Clark,Ohio,39023,306,7 +2020-06-04,Clark,Ohio,39023,313,7 +2020-06-05,Clark,Ohio,39023,323,7 +2020-06-06,Clark,Ohio,39023,336,8 +2020-06-07,Clark,Ohio,39023,355,8 +2020-06-08,Clark,Ohio,39023,371,8 +2020-06-09,Clark,Ohio,39023,377,8 +2020-06-10,Clark,Ohio,39023,384,8 +2020-06-11,Clark,Ohio,39023,394,8 +2020-06-12,Clark,Ohio,39023,400,8 +2020-06-13,Clark,Ohio,39023,403,8 +2020-06-14,Clark,Ohio,39023,409,8 +2020-06-15,Clark,Ohio,39023,425,8 +2020-06-16,Clark,Ohio,39023,460,8 +2020-06-17,Clark,Ohio,39023,502,8 +2020-06-18,Clark,Ohio,39023,568,8 +2020-06-19,Clark,Ohio,39023,606,8 +2020-06-20,Clark,Ohio,39023,639,8 +2020-06-21,Clark,Ohio,39023,653,8 +2020-06-22,Clark,Ohio,39023,670,8 +2020-06-23,Clark,Ohio,39023,688,8 +2020-06-24,Clark,Ohio,39023,697,8 +2020-06-25,Clark,Ohio,39023,703,8 +2020-06-26,Clark,Ohio,39023,712,8 +2020-06-27,Clark,Ohio,39023,722,8 +2020-06-28,Clark,Ohio,39023,727,8 +2020-06-29,Clark,Ohio,39023,728,8 +2020-06-30,Clark,Ohio,39023,729,8 +2020-07-01,Clark,Ohio,39023,739,9 +2020-07-02,Clark,Ohio,39023,739,9 +2020-07-03,Clark,Ohio,39023,761,9 +2020-07-04,Clark,Ohio,39023,765,9 +2020-07-05,Clark,Ohio,39023,765,9 +2020-07-06,Clark,Ohio,39023,766,9 +2020-07-07,Clark,Ohio,39023,772,9 +2020-07-08,Clark,Ohio,39023,780,9 +2020-07-09,Clark,Ohio,39023,784,10 +2020-03-21,Clermont,Ohio,39025,2,0 +2020-03-22,Clermont,Ohio,39025,5,0 +2020-03-23,Clermont,Ohio,39025,5,0 +2020-03-24,Clermont,Ohio,39025,5,0 +2020-03-25,Clermont,Ohio,39025,5,0 +2020-03-26,Clermont,Ohio,39025,6,0 +2020-03-27,Clermont,Ohio,39025,6,0 +2020-03-28,Clermont,Ohio,39025,8,0 +2020-03-29,Clermont,Ohio,39025,8,0 +2020-03-30,Clermont,Ohio,39025,9,0 +2020-03-31,Clermont,Ohio,39025,10,0 +2020-04-01,Clermont,Ohio,39025,11,0 +2020-04-02,Clermont,Ohio,39025,14,0 +2020-04-03,Clermont,Ohio,39025,16,1 +2020-04-04,Clermont,Ohio,39025,20,1 +2020-04-05,Clermont,Ohio,39025,21,1 +2020-04-06,Clermont,Ohio,39025,27,1 +2020-04-07,Clermont,Ohio,39025,22,1 +2020-04-08,Clermont,Ohio,39025,27,1 +2020-04-09,Clermont,Ohio,39025,33,1 +2020-04-10,Clermont,Ohio,39025,36,1 +2020-04-11,Clermont,Ohio,39025,41,1 +2020-04-12,Clermont,Ohio,39025,41,1 +2020-04-13,Clermont,Ohio,39025,39,1 +2020-04-14,Clermont,Ohio,39025,44,1 +2020-04-15,Clermont,Ohio,39025,49,1 +2020-04-16,Clermont,Ohio,39025,60,1 +2020-04-17,Clermont,Ohio,39025,66,1 +2020-04-18,Clermont,Ohio,39025,71,1 +2020-04-19,Clermont,Ohio,39025,72,1 +2020-04-20,Clermont,Ohio,39025,72,2 +2020-04-21,Clermont,Ohio,39025,74,3 +2020-04-22,Clermont,Ohio,39025,73,2 +2020-04-23,Clermont,Ohio,39025,76,2 +2020-04-24,Clermont,Ohio,39025,77,2 +2020-04-25,Clermont,Ohio,39025,77,2 +2020-04-26,Clermont,Ohio,39025,77,2 +2020-04-27,Clermont,Ohio,39025,76,2 +2020-04-28,Clermont,Ohio,39025,78,2 +2020-04-29,Clermont,Ohio,39025,81,3 +2020-04-30,Clermont,Ohio,39025,88,3 +2020-05-01,Clermont,Ohio,39025,93,3 +2020-05-02,Clermont,Ohio,39025,99,3 +2020-05-03,Clermont,Ohio,39025,101,3 +2020-05-04,Clermont,Ohio,39025,103,3 +2020-05-05,Clermont,Ohio,39025,109,3 +2020-05-06,Clermont,Ohio,39025,110,3 +2020-05-07,Clermont,Ohio,39025,110,3 +2020-05-08,Clermont,Ohio,39025,120,3 +2020-05-09,Clermont,Ohio,39025,122,3 +2020-05-10,Clermont,Ohio,39025,123,3 +2020-05-11,Clermont,Ohio,39025,125,3 +2020-05-12,Clermont,Ohio,39025,125,3 +2020-05-13,Clermont,Ohio,39025,129,3 +2020-05-14,Clermont,Ohio,39025,136,4 +2020-05-15,Clermont,Ohio,39025,144,4 +2020-05-16,Clermont,Ohio,39025,149,4 +2020-05-17,Clermont,Ohio,39025,152,4 +2020-05-18,Clermont,Ohio,39025,152,5 +2020-05-19,Clermont,Ohio,39025,156,5 +2020-05-20,Clermont,Ohio,39025,160,5 +2020-05-21,Clermont,Ohio,39025,167,5 +2020-05-22,Clermont,Ohio,39025,170,5 +2020-05-23,Clermont,Ohio,39025,177,5 +2020-05-24,Clermont,Ohio,39025,181,5 +2020-05-25,Clermont,Ohio,39025,188,5 +2020-05-26,Clermont,Ohio,39025,193,5 +2020-05-27,Clermont,Ohio,39025,197,5 +2020-05-28,Clermont,Ohio,39025,202,5 +2020-05-29,Clermont,Ohio,39025,206,5 +2020-05-30,Clermont,Ohio,39025,206,5 +2020-05-31,Clermont,Ohio,39025,211,5 +2020-06-01,Clermont,Ohio,39025,213,5 +2020-06-02,Clermont,Ohio,39025,215,5 +2020-06-03,Clermont,Ohio,39025,216,5 +2020-06-04,Clermont,Ohio,39025,218,5 +2020-06-05,Clermont,Ohio,39025,219,5 +2020-06-06,Clermont,Ohio,39025,224,6 +2020-06-07,Clermont,Ohio,39025,227,6 +2020-06-08,Clermont,Ohio,39025,232,6 +2020-06-09,Clermont,Ohio,39025,234,6 +2020-06-10,Clermont,Ohio,39025,237,6 +2020-06-11,Clermont,Ohio,39025,235,6 +2020-06-12,Clermont,Ohio,39025,236,6 +2020-06-13,Clermont,Ohio,39025,237,6 +2020-06-14,Clermont,Ohio,39025,238,6 +2020-06-15,Clermont,Ohio,39025,240,6 +2020-06-16,Clermont,Ohio,39025,244,6 +2020-06-17,Clermont,Ohio,39025,252,6 +2020-06-18,Clermont,Ohio,39025,256,6 +2020-06-19,Clermont,Ohio,39025,266,6 +2020-06-20,Clermont,Ohio,39025,275,6 +2020-06-21,Clermont,Ohio,39025,279,6 +2020-06-22,Clermont,Ohio,39025,287,6 +2020-06-23,Clermont,Ohio,39025,288,6 +2020-06-24,Clermont,Ohio,39025,294,6 +2020-06-25,Clermont,Ohio,39025,300,6 +2020-06-26,Clermont,Ohio,39025,307,6 +2020-06-27,Clermont,Ohio,39025,319,6 +2020-06-28,Clermont,Ohio,39025,327,6 +2020-06-29,Clermont,Ohio,39025,336,6 +2020-06-30,Clermont,Ohio,39025,347,6 +2020-07-01,Clermont,Ohio,39025,356,6 +2020-07-02,Clermont,Ohio,39025,356,6 +2020-07-03,Clermont,Ohio,39025,390,6 +2020-07-04,Clermont,Ohio,39025,394,6 +2020-07-05,Clermont,Ohio,39025,400,6 +2020-07-06,Clermont,Ohio,39025,414,6 +2020-07-07,Clermont,Ohio,39025,422,6 +2020-07-08,Clermont,Ohio,39025,431,7 +2020-07-09,Clermont,Ohio,39025,436,7 +2020-03-22,Clinton,Ohio,39027,1,0 +2020-03-23,Clinton,Ohio,39027,1,0 +2020-03-24,Clinton,Ohio,39027,1,0 +2020-03-25,Clinton,Ohio,39027,2,0 +2020-03-26,Clinton,Ohio,39027,2,0 +2020-03-27,Clinton,Ohio,39027,2,0 +2020-03-28,Clinton,Ohio,39027,3,0 +2020-03-29,Clinton,Ohio,39027,3,0 +2020-03-30,Clinton,Ohio,39027,3,0 +2020-03-31,Clinton,Ohio,39027,3,0 +2020-04-01,Clinton,Ohio,39027,4,0 +2020-04-02,Clinton,Ohio,39027,5,0 +2020-04-03,Clinton,Ohio,39027,7,0 +2020-04-04,Clinton,Ohio,39027,7,0 +2020-04-05,Clinton,Ohio,39027,8,0 +2020-04-06,Clinton,Ohio,39027,8,0 +2020-04-07,Clinton,Ohio,39027,9,0 +2020-04-08,Clinton,Ohio,39027,11,1 +2020-04-09,Clinton,Ohio,39027,12,0 +2020-04-10,Clinton,Ohio,39027,15,0 +2020-04-11,Clinton,Ohio,39027,15,0 +2020-04-12,Clinton,Ohio,39027,15,0 +2020-04-13,Clinton,Ohio,39027,16,0 +2020-04-14,Clinton,Ohio,39027,18,0 +2020-04-15,Clinton,Ohio,39027,23,0 +2020-04-16,Clinton,Ohio,39027,23,0 +2020-04-17,Clinton,Ohio,39027,26,0 +2020-04-18,Clinton,Ohio,39027,26,0 +2020-04-19,Clinton,Ohio,39027,26,0 +2020-04-20,Clinton,Ohio,39027,26,0 +2020-04-21,Clinton,Ohio,39027,26,0 +2020-04-22,Clinton,Ohio,39027,26,0 +2020-04-23,Clinton,Ohio,39027,27,0 +2020-04-24,Clinton,Ohio,39027,27,0 +2020-04-25,Clinton,Ohio,39027,27,0 +2020-04-26,Clinton,Ohio,39027,28,0 +2020-04-27,Clinton,Ohio,39027,28,0 +2020-04-28,Clinton,Ohio,39027,28,0 +2020-04-29,Clinton,Ohio,39027,29,0 +2020-04-30,Clinton,Ohio,39027,29,0 +2020-05-01,Clinton,Ohio,39027,31,0 +2020-05-02,Clinton,Ohio,39027,31,0 +2020-05-03,Clinton,Ohio,39027,31,0 +2020-05-04,Clinton,Ohio,39027,31,0 +2020-05-05,Clinton,Ohio,39027,31,0 +2020-05-06,Clinton,Ohio,39027,31,0 +2020-05-07,Clinton,Ohio,39027,32,0 +2020-05-08,Clinton,Ohio,39027,33,0 +2020-05-09,Clinton,Ohio,39027,33,0 +2020-05-10,Clinton,Ohio,39027,34,0 +2020-05-11,Clinton,Ohio,39027,35,0 +2020-05-12,Clinton,Ohio,39027,35,0 +2020-05-13,Clinton,Ohio,39027,36,0 +2020-05-14,Clinton,Ohio,39027,37,0 +2020-05-15,Clinton,Ohio,39027,38,0 +2020-05-16,Clinton,Ohio,39027,39,0 +2020-05-17,Clinton,Ohio,39027,39,0 +2020-05-18,Clinton,Ohio,39027,40,0 +2020-05-19,Clinton,Ohio,39027,41,0 +2020-05-20,Clinton,Ohio,39027,43,0 +2020-05-21,Clinton,Ohio,39027,43,0 +2020-05-22,Clinton,Ohio,39027,43,0 +2020-05-23,Clinton,Ohio,39027,43,0 +2020-05-24,Clinton,Ohio,39027,43,0 +2020-05-25,Clinton,Ohio,39027,43,0 +2020-05-26,Clinton,Ohio,39027,43,0 +2020-05-27,Clinton,Ohio,39027,43,0 +2020-05-28,Clinton,Ohio,39027,43,0 +2020-05-29,Clinton,Ohio,39027,43,0 +2020-05-30,Clinton,Ohio,39027,43,1 +2020-05-31,Clinton,Ohio,39027,43,1 +2020-06-01,Clinton,Ohio,39027,43,0 +2020-06-02,Clinton,Ohio,39027,43,0 +2020-06-03,Clinton,Ohio,39027,45,0 +2020-06-04,Clinton,Ohio,39027,45,0 +2020-06-05,Clinton,Ohio,39027,47,0 +2020-06-06,Clinton,Ohio,39027,47,0 +2020-06-07,Clinton,Ohio,39027,47,0 +2020-06-08,Clinton,Ohio,39027,48,0 +2020-06-09,Clinton,Ohio,39027,48,0 +2020-06-10,Clinton,Ohio,39027,49,0 +2020-06-11,Clinton,Ohio,39027,50,0 +2020-06-12,Clinton,Ohio,39027,52,0 +2020-06-13,Clinton,Ohio,39027,52,0 +2020-06-14,Clinton,Ohio,39027,53,0 +2020-06-15,Clinton,Ohio,39027,54,0 +2020-06-16,Clinton,Ohio,39027,54,0 +2020-06-17,Clinton,Ohio,39027,54,0 +2020-06-18,Clinton,Ohio,39027,54,0 +2020-06-19,Clinton,Ohio,39027,54,0 +2020-06-20,Clinton,Ohio,39027,54,0 +2020-06-21,Clinton,Ohio,39027,55,0 +2020-06-22,Clinton,Ohio,39027,55,0 +2020-06-23,Clinton,Ohio,39027,55,0 +2020-06-24,Clinton,Ohio,39027,55,0 +2020-06-25,Clinton,Ohio,39027,55,0 +2020-06-26,Clinton,Ohio,39027,56,0 +2020-06-27,Clinton,Ohio,39027,56,0 +2020-06-28,Clinton,Ohio,39027,60,0 +2020-06-29,Clinton,Ohio,39027,60,0 +2020-06-30,Clinton,Ohio,39027,61,0 +2020-07-01,Clinton,Ohio,39027,62,0 +2020-07-02,Clinton,Ohio,39027,62,0 +2020-07-03,Clinton,Ohio,39027,66,0 +2020-07-04,Clinton,Ohio,39027,68,0 +2020-07-05,Clinton,Ohio,39027,68,0 +2020-07-06,Clinton,Ohio,39027,68,0 +2020-07-07,Clinton,Ohio,39027,68,0 +2020-07-08,Clinton,Ohio,39027,68,0 +2020-07-09,Clinton,Ohio,39027,70,0 +2020-03-20,Columbiana,Ohio,39029,1,0 +2020-03-21,Columbiana,Ohio,39029,1,0 +2020-03-22,Columbiana,Ohio,39029,2,0 +2020-03-23,Columbiana,Ohio,39029,2,0 +2020-03-24,Columbiana,Ohio,39029,3,0 +2020-03-25,Columbiana,Ohio,39029,4,0 +2020-03-26,Columbiana,Ohio,39029,5,1 +2020-03-27,Columbiana,Ohio,39029,7,1 +2020-03-28,Columbiana,Ohio,39029,9,1 +2020-03-29,Columbiana,Ohio,39029,11,1 +2020-03-30,Columbiana,Ohio,39029,11,2 +2020-03-31,Columbiana,Ohio,39029,15,2 +2020-04-01,Columbiana,Ohio,39029,19,2 +2020-04-02,Columbiana,Ohio,39029,22,2 +2020-04-03,Columbiana,Ohio,39029,28,3 +2020-04-04,Columbiana,Ohio,39029,36,5 +2020-04-05,Columbiana,Ohio,39029,42,5 +2020-04-06,Columbiana,Ohio,39029,53,5 +2020-04-07,Columbiana,Ohio,39029,59,5 +2020-04-08,Columbiana,Ohio,39029,71,6 +2020-04-09,Columbiana,Ohio,39029,81,6 +2020-04-10,Columbiana,Ohio,39029,92,6 +2020-04-11,Columbiana,Ohio,39029,96,6 +2020-04-12,Columbiana,Ohio,39029,105,6 +2020-04-13,Columbiana,Ohio,39029,114,6 +2020-04-14,Columbiana,Ohio,39029,115,8 +2020-04-15,Columbiana,Ohio,39029,123,10 +2020-04-16,Columbiana,Ohio,39029,136,10 +2020-04-17,Columbiana,Ohio,39029,154,11 +2020-04-18,Columbiana,Ohio,39029,161,13 +2020-04-19,Columbiana,Ohio,39029,167,13 +2020-04-20,Columbiana,Ohio,39029,182,13 +2020-04-21,Columbiana,Ohio,39029,185,16 +2020-04-22,Columbiana,Ohio,39029,195,16 +2020-04-23,Columbiana,Ohio,39029,208,16 +2020-04-24,Columbiana,Ohio,39029,214,18 +2020-04-25,Columbiana,Ohio,39029,219,18 +2020-04-26,Columbiana,Ohio,39029,223,18 +2020-04-27,Columbiana,Ohio,39029,228,20 +2020-04-28,Columbiana,Ohio,39029,235,21 +2020-04-29,Columbiana,Ohio,39029,247,23 +2020-04-30,Columbiana,Ohio,39029,253,23 +2020-05-01,Columbiana,Ohio,39029,267,23 +2020-05-02,Columbiana,Ohio,39029,274,24 +2020-05-03,Columbiana,Ohio,39029,278,24 +2020-05-04,Columbiana,Ohio,39029,287,25 +2020-05-05,Columbiana,Ohio,39029,292,28 +2020-05-06,Columbiana,Ohio,39029,297,29 +2020-05-07,Columbiana,Ohio,39029,311,32 +2020-05-08,Columbiana,Ohio,39029,313,33 +2020-05-09,Columbiana,Ohio,39029,319,35 +2020-05-10,Columbiana,Ohio,39029,325,35 +2020-05-11,Columbiana,Ohio,39029,336,37 +2020-05-12,Columbiana,Ohio,39029,343,39 +2020-05-13,Columbiana,Ohio,39029,354,39 +2020-05-14,Columbiana,Ohio,39029,367,43 +2020-05-15,Columbiana,Ohio,39029,397,43 +2020-05-16,Columbiana,Ohio,39029,415,43 +2020-05-17,Columbiana,Ohio,39029,420,43 +2020-05-18,Columbiana,Ohio,39029,434,43 +2020-05-19,Columbiana,Ohio,39029,453,45 +2020-05-20,Columbiana,Ohio,39029,457,47 +2020-05-21,Columbiana,Ohio,39029,467,50 +2020-05-22,Columbiana,Ohio,39029,476,49 +2020-05-23,Columbiana,Ohio,39029,477,50 +2020-05-24,Columbiana,Ohio,39029,478,50 +2020-05-25,Columbiana,Ohio,39029,609,50 +2020-05-26,Columbiana,Ohio,39029,657,50 +2020-05-27,Columbiana,Ohio,39029,682,50 +2020-05-28,Columbiana,Ohio,39029,684,51 +2020-05-29,Columbiana,Ohio,39029,739,51 +2020-05-30,Columbiana,Ohio,39029,743,52 +2020-05-31,Columbiana,Ohio,39029,793,53 +2020-06-01,Columbiana,Ohio,39029,875,52 +2020-06-02,Columbiana,Ohio,39029,881,52 +2020-06-03,Columbiana,Ohio,39029,889,52 +2020-06-04,Columbiana,Ohio,39029,891,52 +2020-06-05,Columbiana,Ohio,39029,894,53 +2020-06-06,Columbiana,Ohio,39029,894,53 +2020-06-07,Columbiana,Ohio,39029,896,53 +2020-06-08,Columbiana,Ohio,39029,899,54 +2020-06-09,Columbiana,Ohio,39029,901,55 +2020-06-10,Columbiana,Ohio,39029,903,55 +2020-06-11,Columbiana,Ohio,39029,911,55 +2020-06-12,Columbiana,Ohio,39029,914,55 +2020-06-13,Columbiana,Ohio,39029,916,56 +2020-06-14,Columbiana,Ohio,39029,917,56 +2020-06-15,Columbiana,Ohio,39029,920,57 +2020-06-16,Columbiana,Ohio,39029,921,57 +2020-06-17,Columbiana,Ohio,39029,923,58 +2020-06-18,Columbiana,Ohio,39029,940,58 +2020-06-19,Columbiana,Ohio,39029,954,58 +2020-06-20,Columbiana,Ohio,39029,956,58 +2020-06-21,Columbiana,Ohio,39029,961,58 +2020-06-22,Columbiana,Ohio,39029,975,58 +2020-06-23,Columbiana,Ohio,39029,983,59 +2020-06-24,Columbiana,Ohio,39029,984,60 +2020-06-25,Columbiana,Ohio,39029,1033,59 +2020-06-26,Columbiana,Ohio,39029,1087,59 +2020-06-27,Columbiana,Ohio,39029,1093,59 +2020-06-28,Columbiana,Ohio,39029,1197,59 +2020-06-29,Columbiana,Ohio,39029,1202,59 +2020-06-30,Columbiana,Ohio,39029,1205,60 +2020-07-01,Columbiana,Ohio,39029,1209,60 +2020-07-02,Columbiana,Ohio,39029,1209,60 +2020-07-03,Columbiana,Ohio,39029,1288,60 +2020-07-04,Columbiana,Ohio,39029,1295,60 +2020-07-05,Columbiana,Ohio,39029,1303,60 +2020-07-06,Columbiana,Ohio,39029,1307,60 +2020-07-07,Columbiana,Ohio,39029,1306,60 +2020-07-08,Columbiana,Ohio,39029,1309,60 +2020-07-09,Columbiana,Ohio,39029,1324,60 +2020-03-17,Coshocton,Ohio,39031,2,0 +2020-03-18,Coshocton,Ohio,39031,2,0 +2020-03-19,Coshocton,Ohio,39031,2,0 +2020-03-20,Coshocton,Ohio,39031,2,0 +2020-03-21,Coshocton,Ohio,39031,2,0 +2020-03-22,Coshocton,Ohio,39031,2,0 +2020-03-23,Coshocton,Ohio,39031,3,0 +2020-03-24,Coshocton,Ohio,39031,3,0 +2020-03-25,Coshocton,Ohio,39031,4,0 +2020-03-26,Coshocton,Ohio,39031,4,0 +2020-03-27,Coshocton,Ohio,39031,4,0 +2020-03-28,Coshocton,Ohio,39031,4,0 +2020-03-29,Coshocton,Ohio,39031,4,0 +2020-03-30,Coshocton,Ohio,39031,5,0 +2020-03-31,Coshocton,Ohio,39031,5,0 +2020-04-01,Coshocton,Ohio,39031,7,0 +2020-04-02,Coshocton,Ohio,39031,8,0 +2020-04-03,Coshocton,Ohio,39031,8,0 +2020-04-04,Coshocton,Ohio,39031,8,0 +2020-04-05,Coshocton,Ohio,39031,9,0 +2020-04-06,Coshocton,Ohio,39031,10,0 +2020-04-07,Coshocton,Ohio,39031,10,0 +2020-04-08,Coshocton,Ohio,39031,10,0 +2020-04-09,Coshocton,Ohio,39031,12,0 +2020-04-10,Coshocton,Ohio,39031,15,0 +2020-04-11,Coshocton,Ohio,39031,15,0 +2020-04-12,Coshocton,Ohio,39031,16,0 +2020-04-13,Coshocton,Ohio,39031,16,0 +2020-04-14,Coshocton,Ohio,39031,16,0 +2020-04-15,Coshocton,Ohio,39031,16,0 +2020-04-16,Coshocton,Ohio,39031,16,0 +2020-04-17,Coshocton,Ohio,39031,16,0 +2020-04-18,Coshocton,Ohio,39031,16,0 +2020-04-19,Coshocton,Ohio,39031,16,0 +2020-04-20,Coshocton,Ohio,39031,16,0 +2020-04-21,Coshocton,Ohio,39031,16,0 +2020-04-22,Coshocton,Ohio,39031,16,0 +2020-04-23,Coshocton,Ohio,39031,16,0 +2020-04-24,Coshocton,Ohio,39031,16,0 +2020-04-25,Coshocton,Ohio,39031,16,0 +2020-04-26,Coshocton,Ohio,39031,16,0 +2020-04-27,Coshocton,Ohio,39031,16,0 +2020-04-28,Coshocton,Ohio,39031,17,0 +2020-04-29,Coshocton,Ohio,39031,17,0 +2020-04-30,Coshocton,Ohio,39031,17,0 +2020-05-01,Coshocton,Ohio,39031,17,0 +2020-05-02,Coshocton,Ohio,39031,17,0 +2020-05-03,Coshocton,Ohio,39031,17,0 +2020-05-04,Coshocton,Ohio,39031,17,0 +2020-05-05,Coshocton,Ohio,39031,17,0 +2020-05-06,Coshocton,Ohio,39031,17,0 +2020-05-07,Coshocton,Ohio,39031,18,0 +2020-05-08,Coshocton,Ohio,39031,19,0 +2020-05-09,Coshocton,Ohio,39031,19,0 +2020-05-10,Coshocton,Ohio,39031,19,0 +2020-05-11,Coshocton,Ohio,39031,19,0 +2020-05-12,Coshocton,Ohio,39031,19,0 +2020-05-13,Coshocton,Ohio,39031,19,0 +2020-05-14,Coshocton,Ohio,39031,19,0 +2020-05-15,Coshocton,Ohio,39031,20,0 +2020-05-16,Coshocton,Ohio,39031,20,0 +2020-05-17,Coshocton,Ohio,39031,19,0 +2020-05-18,Coshocton,Ohio,39031,20,0 +2020-05-19,Coshocton,Ohio,39031,21,0 +2020-05-20,Coshocton,Ohio,39031,22,0 +2020-05-21,Coshocton,Ohio,39031,22,0 +2020-05-22,Coshocton,Ohio,39031,23,0 +2020-05-23,Coshocton,Ohio,39031,24,0 +2020-05-24,Coshocton,Ohio,39031,24,0 +2020-05-25,Coshocton,Ohio,39031,24,0 +2020-05-26,Coshocton,Ohio,39031,26,0 +2020-05-27,Coshocton,Ohio,39031,34,0 +2020-05-28,Coshocton,Ohio,39031,37,0 +2020-05-29,Coshocton,Ohio,39031,38,0 +2020-05-30,Coshocton,Ohio,39031,38,0 +2020-05-31,Coshocton,Ohio,39031,40,0 +2020-06-01,Coshocton,Ohio,39031,40,0 +2020-06-02,Coshocton,Ohio,39031,41,0 +2020-06-03,Coshocton,Ohio,39031,40,0 +2020-06-04,Coshocton,Ohio,39031,45,0 +2020-06-05,Coshocton,Ohio,39031,48,0 +2020-06-06,Coshocton,Ohio,39031,48,0 +2020-06-07,Coshocton,Ohio,39031,48,0 +2020-06-08,Coshocton,Ohio,39031,48,0 +2020-06-09,Coshocton,Ohio,39031,48,0 +2020-06-10,Coshocton,Ohio,39031,48,0 +2020-06-11,Coshocton,Ohio,39031,49,0 +2020-06-12,Coshocton,Ohio,39031,50,0 +2020-06-13,Coshocton,Ohio,39031,51,0 +2020-06-14,Coshocton,Ohio,39031,51,0 +2020-06-15,Coshocton,Ohio,39031,51,0 +2020-06-16,Coshocton,Ohio,39031,52,0 +2020-06-17,Coshocton,Ohio,39031,53,0 +2020-06-18,Coshocton,Ohio,39031,54,0 +2020-06-19,Coshocton,Ohio,39031,56,0 +2020-06-20,Coshocton,Ohio,39031,59,0 +2020-06-21,Coshocton,Ohio,39031,60,0 +2020-06-22,Coshocton,Ohio,39031,60,0 +2020-06-23,Coshocton,Ohio,39031,60,0 +2020-06-24,Coshocton,Ohio,39031,64,0 +2020-06-25,Coshocton,Ohio,39031,64,0 +2020-06-26,Coshocton,Ohio,39031,66,0 +2020-06-27,Coshocton,Ohio,39031,67,0 +2020-06-28,Coshocton,Ohio,39031,70,0 +2020-06-29,Coshocton,Ohio,39031,75,1 +2020-06-30,Coshocton,Ohio,39031,76,1 +2020-07-01,Coshocton,Ohio,39031,81,1 +2020-07-02,Coshocton,Ohio,39031,81,1 +2020-07-03,Coshocton,Ohio,39031,90,2 +2020-07-04,Coshocton,Ohio,39031,94,2 +2020-07-05,Coshocton,Ohio,39031,97,2 +2020-07-06,Coshocton,Ohio,39031,111,2 +2020-07-07,Coshocton,Ohio,39031,127,2 +2020-07-08,Coshocton,Ohio,39031,130,2 +2020-07-09,Coshocton,Ohio,39031,132,3 +2020-03-24,Crawford,Ohio,39033,1,0 +2020-03-25,Crawford,Ohio,39033,1,0 +2020-03-26,Crawford,Ohio,39033,1,0 +2020-03-27,Crawford,Ohio,39033,1,0 +2020-03-28,Crawford,Ohio,39033,2,0 +2020-03-29,Crawford,Ohio,39033,2,0 +2020-03-30,Crawford,Ohio,39033,5,0 +2020-03-31,Crawford,Ohio,39033,5,0 +2020-04-01,Crawford,Ohio,39033,5,0 +2020-04-02,Crawford,Ohio,39033,6,0 +2020-04-03,Crawford,Ohio,39033,7,0 +2020-04-04,Crawford,Ohio,39033,7,0 +2020-04-05,Crawford,Ohio,39033,9,0 +2020-04-06,Crawford,Ohio,39033,9,0 +2020-04-07,Crawford,Ohio,39033,9,0 +2020-04-08,Crawford,Ohio,39033,9,0 +2020-04-09,Crawford,Ohio,39033,12,0 +2020-04-10,Crawford,Ohio,39033,13,0 +2020-04-11,Crawford,Ohio,39033,13,0 +2020-04-12,Crawford,Ohio,39033,16,0 +2020-04-13,Crawford,Ohio,39033,17,0 +2020-04-14,Crawford,Ohio,39033,19,0 +2020-04-15,Crawford,Ohio,39033,23,0 +2020-04-16,Crawford,Ohio,39033,26,0 +2020-04-17,Crawford,Ohio,39033,28,0 +2020-04-18,Crawford,Ohio,39033,36,0 +2020-04-19,Crawford,Ohio,39033,41,0 +2020-04-20,Crawford,Ohio,39033,37,0 +2020-04-21,Crawford,Ohio,39033,37,0 +2020-04-22,Crawford,Ohio,39033,36,0 +2020-04-23,Crawford,Ohio,39033,37,0 +2020-04-24,Crawford,Ohio,39033,38,0 +2020-04-25,Crawford,Ohio,39033,39,0 +2020-04-26,Crawford,Ohio,39033,39,0 +2020-04-27,Crawford,Ohio,39033,41,0 +2020-04-28,Crawford,Ohio,39033,41,0 +2020-04-29,Crawford,Ohio,39033,45,0 +2020-04-30,Crawford,Ohio,39033,45,0 +2020-05-01,Crawford,Ohio,39033,48,0 +2020-05-02,Crawford,Ohio,39033,50,0 +2020-05-03,Crawford,Ohio,39033,52,1 +2020-05-04,Crawford,Ohio,39033,56,1 +2020-05-05,Crawford,Ohio,39033,57,1 +2020-05-06,Crawford,Ohio,39033,60,1 +2020-05-07,Crawford,Ohio,39033,65,1 +2020-05-08,Crawford,Ohio,39033,69,1 +2020-05-09,Crawford,Ohio,39033,71,1 +2020-05-10,Crawford,Ohio,39033,72,1 +2020-05-11,Crawford,Ohio,39033,77,1 +2020-05-12,Crawford,Ohio,39033,79,1 +2020-05-13,Crawford,Ohio,39033,86,2 +2020-05-14,Crawford,Ohio,39033,89,2 +2020-05-15,Crawford,Ohio,39033,92,2 +2020-05-16,Crawford,Ohio,39033,94,2 +2020-05-17,Crawford,Ohio,39033,94,2 +2020-05-18,Crawford,Ohio,39033,97,2 +2020-05-19,Crawford,Ohio,39033,98,2 +2020-05-20,Crawford,Ohio,39033,101,3 +2020-05-21,Crawford,Ohio,39033,103,3 +2020-05-22,Crawford,Ohio,39033,104,3 +2020-05-23,Crawford,Ohio,39033,104,3 +2020-05-24,Crawford,Ohio,39033,104,3 +2020-05-25,Crawford,Ohio,39033,104,3 +2020-05-26,Crawford,Ohio,39033,106,3 +2020-05-27,Crawford,Ohio,39033,110,3 +2020-05-28,Crawford,Ohio,39033,110,3 +2020-05-29,Crawford,Ohio,39033,110,4 +2020-05-30,Crawford,Ohio,39033,114,4 +2020-05-31,Crawford,Ohio,39033,114,4 +2020-06-01,Crawford,Ohio,39033,115,4 +2020-06-02,Crawford,Ohio,39033,116,4 +2020-06-03,Crawford,Ohio,39033,117,4 +2020-06-04,Crawford,Ohio,39033,118,4 +2020-06-05,Crawford,Ohio,39033,118,4 +2020-06-06,Crawford,Ohio,39033,118,4 +2020-06-07,Crawford,Ohio,39033,120,4 +2020-06-08,Crawford,Ohio,39033,121,4 +2020-06-09,Crawford,Ohio,39033,121,4 +2020-06-10,Crawford,Ohio,39033,121,4 +2020-06-11,Crawford,Ohio,39033,123,4 +2020-06-12,Crawford,Ohio,39033,122,4 +2020-06-13,Crawford,Ohio,39033,122,4 +2020-06-14,Crawford,Ohio,39033,122,5 +2020-06-15,Crawford,Ohio,39033,123,5 +2020-06-16,Crawford,Ohio,39033,123,5 +2020-06-17,Crawford,Ohio,39033,122,5 +2020-06-18,Crawford,Ohio,39033,122,5 +2020-06-19,Crawford,Ohio,39033,122,5 +2020-06-20,Crawford,Ohio,39033,122,5 +2020-06-21,Crawford,Ohio,39033,122,5 +2020-06-22,Crawford,Ohio,39033,122,5 +2020-06-23,Crawford,Ohio,39033,125,5 +2020-06-24,Crawford,Ohio,39033,125,5 +2020-06-25,Crawford,Ohio,39033,126,5 +2020-06-26,Crawford,Ohio,39033,127,5 +2020-06-27,Crawford,Ohio,39033,129,5 +2020-06-28,Crawford,Ohio,39033,130,6 +2020-06-29,Crawford,Ohio,39033,132,6 +2020-06-30,Crawford,Ohio,39033,135,6 +2020-07-01,Crawford,Ohio,39033,135,7 +2020-07-02,Crawford,Ohio,39033,135,7 +2020-07-03,Crawford,Ohio,39033,134,5 +2020-07-04,Crawford,Ohio,39033,135,5 +2020-07-05,Crawford,Ohio,39033,135,5 +2020-07-06,Crawford,Ohio,39033,135,5 +2020-07-07,Crawford,Ohio,39033,136,5 +2020-07-08,Crawford,Ohio,39033,136,5 +2020-07-09,Crawford,Ohio,39033,137,5 +2020-03-09,Cuyahoga,Ohio,39035,3,0 +2020-03-10,Cuyahoga,Ohio,39035,3,0 +2020-03-11,Cuyahoga,Ohio,39035,3,0 +2020-03-12,Cuyahoga,Ohio,39035,3,0 +2020-03-13,Cuyahoga,Ohio,39035,11,0 +2020-03-14,Cuyahoga,Ohio,39035,11,0 +2020-03-15,Cuyahoga,Ohio,39035,14,0 +2020-03-16,Cuyahoga,Ohio,39035,24,0 +2020-03-17,Cuyahoga,Ohio,39035,31,0 +2020-03-18,Cuyahoga,Ohio,39035,38,0 +2020-03-19,Cuyahoga,Ohio,39035,53,0 +2020-03-20,Cuyahoga,Ohio,39035,69,0 +2020-03-21,Cuyahoga,Ohio,39035,92,1 +2020-03-22,Cuyahoga,Ohio,39035,125,1 +2020-03-23,Cuyahoga,Ohio,39035,149,1 +2020-03-24,Cuyahoga,Ohio,39035,167,2 +2020-03-25,Cuyahoga,Ohio,39035,206,2 +2020-03-26,Cuyahoga,Ohio,39035,259,2 +2020-03-27,Cuyahoga,Ohio,39035,330,2 +2020-03-28,Cuyahoga,Ohio,39035,370,3 +2020-03-29,Cuyahoga,Ohio,39035,449,4 +2020-03-30,Cuyahoga,Ohio,39035,493,4 +2020-03-31,Cuyahoga,Ohio,39035,527,6 +2020-04-01,Cuyahoga,Ohio,39035,589,9 +2020-04-02,Cuyahoga,Ohio,39035,663,12 +2020-04-03,Cuyahoga,Ohio,39035,780,13 +2020-04-04,Cuyahoga,Ohio,39035,781,13 +2020-04-05,Cuyahoga,Ohio,39035,826,14 +2020-04-06,Cuyahoga,Ohio,39035,871,15 +2020-04-07,Cuyahoga,Ohio,39035,911,19 +2020-04-08,Cuyahoga,Ohio,39035,960,23 +2020-04-09,Cuyahoga,Ohio,39035,1014,23 +2020-04-10,Cuyahoga,Ohio,39035,1052,22 +2020-04-11,Cuyahoga,Ohio,39035,1113,22 +2020-04-12,Cuyahoga,Ohio,39035,1152,23 +2020-04-13,Cuyahoga,Ohio,39035,1197,24 +2020-04-14,Cuyahoga,Ohio,39035,1239,33 +2020-04-15,Cuyahoga,Ohio,39035,1281,39 +2020-04-16,Cuyahoga,Ohio,39035,1331,42 +2020-04-17,Cuyahoga,Ohio,39035,1383,48 +2020-04-18,Cuyahoga,Ohio,39035,1453,52 +2020-04-19,Cuyahoga,Ohio,39035,1466,53 +2020-04-20,Cuyahoga,Ohio,39035,1577,55 +2020-04-21,Cuyahoga,Ohio,39035,1653,64 +2020-04-22,Cuyahoga,Ohio,39035,1713,79 +2020-04-23,Cuyahoga,Ohio,39035,1768,83 +2020-04-24,Cuyahoga,Ohio,39035,1817,91 +2020-04-25,Cuyahoga,Ohio,39035,1867,91 +2020-04-26,Cuyahoga,Ohio,39035,1902,91 +2020-04-27,Cuyahoga,Ohio,39035,1938,96 +2020-04-28,Cuyahoga,Ohio,39035,1984,109 +2020-04-29,Cuyahoga,Ohio,39035,2030,110 +2020-04-30,Cuyahoga,Ohio,39035,2126,112 +2020-05-01,Cuyahoga,Ohio,39035,2217,115 +2020-05-02,Cuyahoga,Ohio,39035,2305,115 +2020-05-03,Cuyahoga,Ohio,39035,2338,120 +2020-05-04,Cuyahoga,Ohio,39035,2398,121 +2020-05-05,Cuyahoga,Ohio,39035,2428,128 +2020-05-06,Cuyahoga,Ohio,39035,2542,131 +2020-05-07,Cuyahoga,Ohio,39035,2591,136 +2020-05-08,Cuyahoga,Ohio,39035,2668,143 +2020-05-09,Cuyahoga,Ohio,39035,2755,145 +2020-05-10,Cuyahoga,Ohio,39035,2795,146 +2020-05-11,Cuyahoga,Ohio,39035,2861,147 +2020-05-12,Cuyahoga,Ohio,39035,2908,151 +2020-05-13,Cuyahoga,Ohio,39035,2979,153 +2020-05-14,Cuyahoga,Ohio,39035,3066,157 +2020-05-15,Cuyahoga,Ohio,39035,3156,162 +2020-05-16,Cuyahoga,Ohio,39035,3223,163 +2020-05-17,Cuyahoga,Ohio,39035,3321,173 +2020-05-18,Cuyahoga,Ohio,39035,3410,175 +2020-05-19,Cuyahoga,Ohio,39035,3463,183 +2020-05-20,Cuyahoga,Ohio,39035,3512,190 +2020-05-21,Cuyahoga,Ohio,39035,3667,202 +2020-05-22,Cuyahoga,Ohio,39035,3762,204 +2020-05-23,Cuyahoga,Ohio,39035,3851,207 +2020-05-24,Cuyahoga,Ohio,39035,3927,209 +2020-05-25,Cuyahoga,Ohio,39035,3963,217 +2020-05-26,Cuyahoga,Ohio,39035,4060,221 +2020-05-27,Cuyahoga,Ohio,39035,4137,224 +2020-05-28,Cuyahoga,Ohio,39035,4211,226 +2020-05-29,Cuyahoga,Ohio,39035,4318,226 +2020-05-30,Cuyahoga,Ohio,39035,4369,226 +2020-05-31,Cuyahoga,Ohio,39035,4444,226 +2020-06-01,Cuyahoga,Ohio,39035,4508,241 +2020-06-02,Cuyahoga,Ohio,39035,4581,245 +2020-06-03,Cuyahoga,Ohio,39035,4669,247 +2020-06-04,Cuyahoga,Ohio,39035,4732,259 +2020-06-05,Cuyahoga,Ohio,39035,4789,265 +2020-06-06,Cuyahoga,Ohio,39035,4827,265 +2020-06-07,Cuyahoga,Ohio,39035,4858,268 +2020-06-08,Cuyahoga,Ohio,39035,4910,283 +2020-06-09,Cuyahoga,Ohio,39035,4939,287 +2020-06-10,Cuyahoga,Ohio,39035,5011,298 +2020-06-11,Cuyahoga,Ohio,39035,5057,303 +2020-06-12,Cuyahoga,Ohio,39035,5112,304 +2020-06-13,Cuyahoga,Ohio,39035,5144,310 +2020-06-14,Cuyahoga,Ohio,39035,5175,311 +2020-06-15,Cuyahoga,Ohio,39035,5220,315 +2020-06-16,Cuyahoga,Ohio,39035,5271,318 +2020-06-17,Cuyahoga,Ohio,39035,5336,319 +2020-06-18,Cuyahoga,Ohio,39035,5404,327 +2020-06-19,Cuyahoga,Ohio,39035,5481,334 +2020-06-20,Cuyahoga,Ohio,39035,5555,336 +2020-06-21,Cuyahoga,Ohio,39035,5633,338 +2020-06-22,Cuyahoga,Ohio,39035,5734,339 +2020-06-23,Cuyahoga,Ohio,39035,5820,341 +2020-06-24,Cuyahoga,Ohio,39035,5964,343 +2020-06-25,Cuyahoga,Ohio,39035,6111,346 +2020-06-26,Cuyahoga,Ohio,39035,6287,347 +2020-06-27,Cuyahoga,Ohio,39035,6429,351 +2020-06-28,Cuyahoga,Ohio,39035,6571,351 +2020-06-29,Cuyahoga,Ohio,39035,6694,352 +2020-06-30,Cuyahoga,Ohio,39035,6831,364 +2020-07-01,Cuyahoga,Ohio,39035,7013,366 +2020-07-02,Cuyahoga,Ohio,39035,7013,366 +2020-07-03,Cuyahoga,Ohio,39035,7392,372 +2020-07-04,Cuyahoga,Ohio,39035,7571,372 +2020-07-05,Cuyahoga,Ohio,39035,7724,373 +2020-07-06,Cuyahoga,Ohio,39035,7883,373 +2020-07-07,Cuyahoga,Ohio,39035,8048,379 +2020-07-08,Cuyahoga,Ohio,39035,8277,383 +2020-07-09,Cuyahoga,Ohio,39035,8518,383 +2020-03-17,Darke,Ohio,39037,1,0 +2020-03-18,Darke,Ohio,39037,1,0 +2020-03-19,Darke,Ohio,39037,1,0 +2020-03-20,Darke,Ohio,39037,1,0 +2020-03-21,Darke,Ohio,39037,1,0 +2020-03-22,Darke,Ohio,39037,1,0 +2020-03-23,Darke,Ohio,39037,1,0 +2020-03-24,Darke,Ohio,39037,1,0 +2020-03-25,Darke,Ohio,39037,1,0 +2020-03-26,Darke,Ohio,39037,1,0 +2020-03-27,Darke,Ohio,39037,1,0 +2020-03-28,Darke,Ohio,39037,1,0 +2020-03-29,Darke,Ohio,39037,3,0 +2020-03-30,Darke,Ohio,39037,12,0 +2020-03-31,Darke,Ohio,39037,13,1 +2020-04-01,Darke,Ohio,39037,22,1 +2020-04-02,Darke,Ohio,39037,22,1 +2020-04-03,Darke,Ohio,39037,26,1 +2020-04-04,Darke,Ohio,39037,28,2 +2020-04-05,Darke,Ohio,39037,32,4 +2020-04-06,Darke,Ohio,39037,32,6 +2020-04-07,Darke,Ohio,39037,34,6 +2020-04-08,Darke,Ohio,39037,38,7 +2020-04-09,Darke,Ohio,39037,40,7 +2020-04-10,Darke,Ohio,39037,40,7 +2020-04-11,Darke,Ohio,39037,42,8 +2020-04-12,Darke,Ohio,39037,45,8 +2020-04-13,Darke,Ohio,39037,49,9 +2020-04-14,Darke,Ohio,39037,50,10 +2020-04-15,Darke,Ohio,39037,52,10 +2020-04-16,Darke,Ohio,39037,55,10 +2020-04-17,Darke,Ohio,39037,55,10 +2020-04-18,Darke,Ohio,39037,55,10 +2020-04-19,Darke,Ohio,39037,56,10 +2020-04-20,Darke,Ohio,39037,57,11 +2020-04-21,Darke,Ohio,39037,58,11 +2020-04-22,Darke,Ohio,39037,62,11 +2020-04-23,Darke,Ohio,39037,62,12 +2020-04-24,Darke,Ohio,39037,74,12 +2020-04-25,Darke,Ohio,39037,75,12 +2020-04-26,Darke,Ohio,39037,75,13 +2020-04-27,Darke,Ohio,39037,75,13 +2020-04-28,Darke,Ohio,39037,75,13 +2020-04-29,Darke,Ohio,39037,76,14 +2020-04-30,Darke,Ohio,39037,76,14 +2020-05-01,Darke,Ohio,39037,76,14 +2020-05-02,Darke,Ohio,39037,76,14 +2020-05-03,Darke,Ohio,39037,77,14 +2020-05-04,Darke,Ohio,39037,77,14 +2020-05-05,Darke,Ohio,39037,77,14 +2020-05-06,Darke,Ohio,39037,79,14 +2020-05-07,Darke,Ohio,39037,79,14 +2020-05-08,Darke,Ohio,39037,82,14 +2020-05-09,Darke,Ohio,39037,84,14 +2020-05-10,Darke,Ohio,39037,84,14 +2020-05-11,Darke,Ohio,39037,89,14 +2020-05-12,Darke,Ohio,39037,90,15 +2020-05-13,Darke,Ohio,39037,93,15 +2020-05-14,Darke,Ohio,39037,95,16 +2020-05-15,Darke,Ohio,39037,102,16 +2020-05-16,Darke,Ohio,39037,111,16 +2020-05-17,Darke,Ohio,39037,118,16 +2020-05-18,Darke,Ohio,39037,121,16 +2020-05-19,Darke,Ohio,39037,126,16 +2020-05-20,Darke,Ohio,39037,134,16 +2020-05-21,Darke,Ohio,39037,142,16 +2020-05-22,Darke,Ohio,39037,146,16 +2020-05-23,Darke,Ohio,39037,147,16 +2020-05-24,Darke,Ohio,39037,151,16 +2020-05-25,Darke,Ohio,39037,153,16 +2020-05-26,Darke,Ohio,39037,156,16 +2020-05-27,Darke,Ohio,39037,156,19 +2020-05-28,Darke,Ohio,39037,162,21 +2020-05-29,Darke,Ohio,39037,167,21 +2020-05-30,Darke,Ohio,39037,167,21 +2020-05-31,Darke,Ohio,39037,170,21 +2020-06-01,Darke,Ohio,39037,174,22 +2020-06-02,Darke,Ohio,39037,181,23 +2020-06-03,Darke,Ohio,39037,184,23 +2020-06-04,Darke,Ohio,39037,189,23 +2020-06-05,Darke,Ohio,39037,190,23 +2020-06-06,Darke,Ohio,39037,191,23 +2020-06-07,Darke,Ohio,39037,193,23 +2020-06-08,Darke,Ohio,39037,193,24 +2020-06-09,Darke,Ohio,39037,194,25 +2020-06-10,Darke,Ohio,39037,195,25 +2020-06-11,Darke,Ohio,39037,210,25 +2020-06-12,Darke,Ohio,39037,220,25 +2020-06-13,Darke,Ohio,39037,222,25 +2020-06-14,Darke,Ohio,39037,222,25 +2020-06-15,Darke,Ohio,39037,222,25 +2020-06-16,Darke,Ohio,39037,222,25 +2020-06-17,Darke,Ohio,39037,223,25 +2020-06-18,Darke,Ohio,39037,227,25 +2020-06-19,Darke,Ohio,39037,227,25 +2020-06-20,Darke,Ohio,39037,228,25 +2020-06-21,Darke,Ohio,39037,227,25 +2020-06-22,Darke,Ohio,39037,228,25 +2020-06-23,Darke,Ohio,39037,228,25 +2020-06-24,Darke,Ohio,39037,228,25 +2020-06-25,Darke,Ohio,39037,230,25 +2020-06-26,Darke,Ohio,39037,231,25 +2020-06-27,Darke,Ohio,39037,233,25 +2020-06-28,Darke,Ohio,39037,233,25 +2020-06-29,Darke,Ohio,39037,233,25 +2020-06-30,Darke,Ohio,39037,234,25 +2020-07-01,Darke,Ohio,39037,236,25 +2020-07-02,Darke,Ohio,39037,236,25 +2020-07-03,Darke,Ohio,39037,245,25 +2020-07-04,Darke,Ohio,39037,246,25 +2020-07-05,Darke,Ohio,39037,248,25 +2020-07-06,Darke,Ohio,39037,251,25 +2020-07-07,Darke,Ohio,39037,253,26 +2020-07-08,Darke,Ohio,39037,253,26 +2020-07-09,Darke,Ohio,39037,253,26 +2020-03-21,Defiance,Ohio,39039,2,0 +2020-03-22,Defiance,Ohio,39039,2,0 +2020-03-23,Defiance,Ohio,39039,2,0 +2020-03-24,Defiance,Ohio,39039,2,0 +2020-03-25,Defiance,Ohio,39039,2,0 +2020-03-26,Defiance,Ohio,39039,2,0 +2020-03-27,Defiance,Ohio,39039,5,0 +2020-03-28,Defiance,Ohio,39039,5,0 +2020-03-29,Defiance,Ohio,39039,5,0 +2020-03-30,Defiance,Ohio,39039,5,0 +2020-03-31,Defiance,Ohio,39039,5,0 +2020-04-01,Defiance,Ohio,39039,6,0 +2020-04-02,Defiance,Ohio,39039,6,0 +2020-04-03,Defiance,Ohio,39039,6,0 +2020-04-04,Defiance,Ohio,39039,7,0 +2020-04-05,Defiance,Ohio,39039,7,0 +2020-04-06,Defiance,Ohio,39039,8,0 +2020-04-07,Defiance,Ohio,39039,9,0 +2020-04-08,Defiance,Ohio,39039,10,0 +2020-04-09,Defiance,Ohio,39039,10,0 +2020-04-10,Defiance,Ohio,39039,11,0 +2020-04-11,Defiance,Ohio,39039,11,0 +2020-04-12,Defiance,Ohio,39039,11,0 +2020-04-13,Defiance,Ohio,39039,12,0 +2020-04-14,Defiance,Ohio,39039,12,0 +2020-04-15,Defiance,Ohio,39039,12,0 +2020-04-16,Defiance,Ohio,39039,12,0 +2020-04-17,Defiance,Ohio,39039,13,0 +2020-04-18,Defiance,Ohio,39039,13,0 +2020-04-19,Defiance,Ohio,39039,14,0 +2020-04-20,Defiance,Ohio,39039,15,0 +2020-04-21,Defiance,Ohio,39039,15,0 +2020-04-22,Defiance,Ohio,39039,17,0 +2020-04-23,Defiance,Ohio,39039,17,1 +2020-04-24,Defiance,Ohio,39039,18,1 +2020-04-25,Defiance,Ohio,39039,19,1 +2020-04-26,Defiance,Ohio,39039,19,1 +2020-04-27,Defiance,Ohio,39039,19,1 +2020-04-28,Defiance,Ohio,39039,20,1 +2020-04-29,Defiance,Ohio,39039,20,1 +2020-04-30,Defiance,Ohio,39039,20,1 +2020-05-01,Defiance,Ohio,39039,20,1 +2020-05-02,Defiance,Ohio,39039,20,1 +2020-05-03,Defiance,Ohio,39039,20,1 +2020-05-04,Defiance,Ohio,39039,20,1 +2020-05-05,Defiance,Ohio,39039,21,1 +2020-05-06,Defiance,Ohio,39039,21,1 +2020-05-07,Defiance,Ohio,39039,21,1 +2020-05-08,Defiance,Ohio,39039,21,1 +2020-05-09,Defiance,Ohio,39039,26,1 +2020-05-10,Defiance,Ohio,39039,26,1 +2020-05-11,Defiance,Ohio,39039,26,1 +2020-05-12,Defiance,Ohio,39039,26,1 +2020-05-13,Defiance,Ohio,39039,26,1 +2020-05-14,Defiance,Ohio,39039,26,1 +2020-05-15,Defiance,Ohio,39039,26,1 +2020-05-16,Defiance,Ohio,39039,26,1 +2020-05-17,Defiance,Ohio,39039,26,1 +2020-05-18,Defiance,Ohio,39039,27,1 +2020-05-19,Defiance,Ohio,39039,28,1 +2020-05-20,Defiance,Ohio,39039,30,1 +2020-05-21,Defiance,Ohio,39039,30,2 +2020-05-22,Defiance,Ohio,39039,32,2 +2020-05-23,Defiance,Ohio,39039,32,2 +2020-05-24,Defiance,Ohio,39039,32,2 +2020-05-25,Defiance,Ohio,39039,32,2 +2020-05-26,Defiance,Ohio,39039,32,2 +2020-05-27,Defiance,Ohio,39039,33,2 +2020-05-28,Defiance,Ohio,39039,33,2 +2020-05-29,Defiance,Ohio,39039,33,2 +2020-05-30,Defiance,Ohio,39039,33,2 +2020-05-31,Defiance,Ohio,39039,34,2 +2020-06-01,Defiance,Ohio,39039,34,2 +2020-06-02,Defiance,Ohio,39039,34,2 +2020-06-03,Defiance,Ohio,39039,34,2 +2020-06-04,Defiance,Ohio,39039,34,2 +2020-06-05,Defiance,Ohio,39039,34,2 +2020-06-06,Defiance,Ohio,39039,35,2 +2020-06-07,Defiance,Ohio,39039,36,2 +2020-06-08,Defiance,Ohio,39039,37,2 +2020-06-09,Defiance,Ohio,39039,38,2 +2020-06-10,Defiance,Ohio,39039,39,2 +2020-06-11,Defiance,Ohio,39039,40,2 +2020-06-12,Defiance,Ohio,39039,40,2 +2020-06-13,Defiance,Ohio,39039,40,2 +2020-06-14,Defiance,Ohio,39039,40,2 +2020-06-15,Defiance,Ohio,39039,40,2 +2020-06-16,Defiance,Ohio,39039,40,2 +2020-06-17,Defiance,Ohio,39039,40,2 +2020-06-18,Defiance,Ohio,39039,40,2 +2020-06-19,Defiance,Ohio,39039,40,2 +2020-06-20,Defiance,Ohio,39039,42,2 +2020-06-21,Defiance,Ohio,39039,42,2 +2020-06-22,Defiance,Ohio,39039,42,2 +2020-06-23,Defiance,Ohio,39039,43,3 +2020-06-24,Defiance,Ohio,39039,43,3 +2020-06-25,Defiance,Ohio,39039,43,3 +2020-06-26,Defiance,Ohio,39039,43,3 +2020-06-27,Defiance,Ohio,39039,44,3 +2020-06-28,Defiance,Ohio,39039,45,3 +2020-06-29,Defiance,Ohio,39039,45,3 +2020-06-30,Defiance,Ohio,39039,45,3 +2020-07-01,Defiance,Ohio,39039,48,3 +2020-07-02,Defiance,Ohio,39039,48,3 +2020-07-03,Defiance,Ohio,39039,49,3 +2020-07-04,Defiance,Ohio,39039,50,3 +2020-07-05,Defiance,Ohio,39039,50,3 +2020-07-06,Defiance,Ohio,39039,51,3 +2020-07-07,Defiance,Ohio,39039,51,3 +2020-07-08,Defiance,Ohio,39039,53,3 +2020-07-09,Defiance,Ohio,39039,54,3 +2020-03-18,Delaware,Ohio,39041,1,0 +2020-03-19,Delaware,Ohio,39041,2,0 +2020-03-20,Delaware,Ohio,39041,2,0 +2020-03-21,Delaware,Ohio,39041,4,0 +2020-03-22,Delaware,Ohio,39041,6,0 +2020-03-23,Delaware,Ohio,39041,7,0 +2020-03-24,Delaware,Ohio,39041,11,0 +2020-03-25,Delaware,Ohio,39041,12,0 +2020-03-26,Delaware,Ohio,39041,15,0 +2020-03-27,Delaware,Ohio,39041,22,0 +2020-03-28,Delaware,Ohio,39041,26,0 +2020-03-29,Delaware,Ohio,39041,31,0 +2020-03-30,Delaware,Ohio,39041,38,1 +2020-03-31,Delaware,Ohio,39041,40,1 +2020-04-01,Delaware,Ohio,39041,47,1 +2020-04-02,Delaware,Ohio,39041,50,1 +2020-04-03,Delaware,Ohio,39041,61,1 +2020-04-04,Delaware,Ohio,39041,69,1 +2020-04-05,Delaware,Ohio,39041,70,1 +2020-04-06,Delaware,Ohio,39041,77,1 +2020-04-07,Delaware,Ohio,39041,77,1 +2020-04-08,Delaware,Ohio,39041,79,1 +2020-04-09,Delaware,Ohio,39041,84,2 +2020-04-10,Delaware,Ohio,39041,88,2 +2020-04-11,Delaware,Ohio,39041,89,2 +2020-04-12,Delaware,Ohio,39041,94,2 +2020-04-13,Delaware,Ohio,39041,96,2 +2020-04-14,Delaware,Ohio,39041,99,2 +2020-04-15,Delaware,Ohio,39041,108,3 +2020-04-16,Delaware,Ohio,39041,114,3 +2020-04-17,Delaware,Ohio,39041,119,3 +2020-04-18,Delaware,Ohio,39041,119,3 +2020-04-19,Delaware,Ohio,39041,123,3 +2020-04-20,Delaware,Ohio,39041,122,3 +2020-04-21,Delaware,Ohio,39041,127,3 +2020-04-22,Delaware,Ohio,39041,128,3 +2020-04-23,Delaware,Ohio,39041,132,3 +2020-04-24,Delaware,Ohio,39041,137,3 +2020-04-25,Delaware,Ohio,39041,138,3 +2020-04-26,Delaware,Ohio,39041,143,3 +2020-04-27,Delaware,Ohio,39041,148,3 +2020-04-28,Delaware,Ohio,39041,151,3 +2020-04-29,Delaware,Ohio,39041,153,4 +2020-04-30,Delaware,Ohio,39041,160,4 +2020-05-01,Delaware,Ohio,39041,163,4 +2020-05-02,Delaware,Ohio,39041,168,4 +2020-05-03,Delaware,Ohio,39041,175,4 +2020-05-04,Delaware,Ohio,39041,179,4 +2020-05-05,Delaware,Ohio,39041,184,4 +2020-05-06,Delaware,Ohio,39041,190,4 +2020-05-07,Delaware,Ohio,39041,196,4 +2020-05-08,Delaware,Ohio,39041,199,4 +2020-05-09,Delaware,Ohio,39041,211,4 +2020-05-10,Delaware,Ohio,39041,220,4 +2020-05-11,Delaware,Ohio,39041,222,4 +2020-05-12,Delaware,Ohio,39041,232,4 +2020-05-13,Delaware,Ohio,39041,234,4 +2020-05-14,Delaware,Ohio,39041,240,4 +2020-05-15,Delaware,Ohio,39041,241,5 +2020-05-16,Delaware,Ohio,39041,257,5 +2020-05-17,Delaware,Ohio,39041,258,5 +2020-05-18,Delaware,Ohio,39041,263,9 +2020-05-19,Delaware,Ohio,39041,266,9 +2020-05-20,Delaware,Ohio,39041,277,10 +2020-05-21,Delaware,Ohio,39041,280,11 +2020-05-22,Delaware,Ohio,39041,282,11 +2020-05-23,Delaware,Ohio,39041,292,11 +2020-05-24,Delaware,Ohio,39041,296,13 +2020-05-25,Delaware,Ohio,39041,300,13 +2020-05-26,Delaware,Ohio,39041,302,13 +2020-05-27,Delaware,Ohio,39041,302,13 +2020-05-28,Delaware,Ohio,39041,310,13 +2020-05-29,Delaware,Ohio,39041,320,13 +2020-05-30,Delaware,Ohio,39041,331,13 +2020-05-31,Delaware,Ohio,39041,337,13 +2020-06-01,Delaware,Ohio,39041,337,13 +2020-06-02,Delaware,Ohio,39041,340,13 +2020-06-03,Delaware,Ohio,39041,344,14 +2020-06-04,Delaware,Ohio,39041,355,14 +2020-06-05,Delaware,Ohio,39041,360,14 +2020-06-06,Delaware,Ohio,39041,366,14 +2020-06-07,Delaware,Ohio,39041,368,14 +2020-06-08,Delaware,Ohio,39041,369,14 +2020-06-09,Delaware,Ohio,39041,378,14 +2020-06-10,Delaware,Ohio,39041,384,14 +2020-06-11,Delaware,Ohio,39041,387,14 +2020-06-12,Delaware,Ohio,39041,389,15 +2020-06-13,Delaware,Ohio,39041,394,15 +2020-06-14,Delaware,Ohio,39041,398,15 +2020-06-15,Delaware,Ohio,39041,402,15 +2020-06-16,Delaware,Ohio,39041,403,15 +2020-06-17,Delaware,Ohio,39041,403,15 +2020-06-18,Delaware,Ohio,39041,410,15 +2020-06-19,Delaware,Ohio,39041,412,15 +2020-06-20,Delaware,Ohio,39041,419,15 +2020-06-21,Delaware,Ohio,39041,427,15 +2020-06-22,Delaware,Ohio,39041,433,15 +2020-06-23,Delaware,Ohio,39041,439,15 +2020-06-24,Delaware,Ohio,39041,441,15 +2020-06-25,Delaware,Ohio,39041,449,15 +2020-06-26,Delaware,Ohio,39041,458,15 +2020-06-27,Delaware,Ohio,39041,461,15 +2020-06-28,Delaware,Ohio,39041,471,15 +2020-06-29,Delaware,Ohio,39041,482,15 +2020-06-30,Delaware,Ohio,39041,494,15 +2020-07-01,Delaware,Ohio,39041,518,15 +2020-07-02,Delaware,Ohio,39041,518,15 +2020-07-03,Delaware,Ohio,39041,541,15 +2020-07-04,Delaware,Ohio,39041,553,15 +2020-07-05,Delaware,Ohio,39041,568,15 +2020-07-06,Delaware,Ohio,39041,582,15 +2020-07-07,Delaware,Ohio,39041,588,15 +2020-07-08,Delaware,Ohio,39041,617,15 +2020-07-09,Delaware,Ohio,39041,645,15 +2020-03-21,Erie,Ohio,39043,1,1 +2020-03-22,Erie,Ohio,39043,1,1 +2020-03-23,Erie,Ohio,39043,1,1 +2020-03-24,Erie,Ohio,39043,1,1 +2020-03-25,Erie,Ohio,39043,2,1 +2020-03-26,Erie,Ohio,39043,3,1 +2020-03-27,Erie,Ohio,39043,3,1 +2020-03-28,Erie,Ohio,39043,5,1 +2020-03-29,Erie,Ohio,39043,5,1 +2020-03-30,Erie,Ohio,39043,5,1 +2020-03-31,Erie,Ohio,39043,5,1 +2020-04-01,Erie,Ohio,39043,5,1 +2020-04-02,Erie,Ohio,39043,5,1 +2020-04-03,Erie,Ohio,39043,6,1 +2020-04-04,Erie,Ohio,39043,6,1 +2020-04-05,Erie,Ohio,39043,8,1 +2020-04-06,Erie,Ohio,39043,10,1 +2020-04-07,Erie,Ohio,39043,10,1 +2020-04-08,Erie,Ohio,39043,10,1 +2020-04-09,Erie,Ohio,39043,10,1 +2020-04-10,Erie,Ohio,39043,10,1 +2020-04-11,Erie,Ohio,39043,10,1 +2020-04-12,Erie,Ohio,39043,10,1 +2020-04-13,Erie,Ohio,39043,12,1 +2020-04-14,Erie,Ohio,39043,14,1 +2020-04-15,Erie,Ohio,39043,16,1 +2020-04-16,Erie,Ohio,39043,19,1 +2020-04-17,Erie,Ohio,39043,23,1 +2020-04-18,Erie,Ohio,39043,27,1 +2020-04-19,Erie,Ohio,39043,33,2 +2020-04-20,Erie,Ohio,39043,37,2 +2020-04-21,Erie,Ohio,39043,37,3 +2020-04-22,Erie,Ohio,39043,44,3 +2020-04-23,Erie,Ohio,39043,43,3 +2020-04-24,Erie,Ohio,39043,44,3 +2020-04-25,Erie,Ohio,39043,47,3 +2020-04-26,Erie,Ohio,39043,46,3 +2020-04-27,Erie,Ohio,39043,49,3 +2020-04-28,Erie,Ohio,39043,52,3 +2020-04-29,Erie,Ohio,39043,54,3 +2020-04-30,Erie,Ohio,39043,56,3 +2020-05-01,Erie,Ohio,39043,56,3 +2020-05-02,Erie,Ohio,39043,58,3 +2020-05-03,Erie,Ohio,39043,58,3 +2020-05-04,Erie,Ohio,39043,60,3 +2020-05-05,Erie,Ohio,39043,67,3 +2020-05-06,Erie,Ohio,39043,71,3 +2020-05-07,Erie,Ohio,39043,75,3 +2020-05-08,Erie,Ohio,39043,78,3 +2020-05-09,Erie,Ohio,39043,79,3 +2020-05-10,Erie,Ohio,39043,80,3 +2020-05-11,Erie,Ohio,39043,83,3 +2020-05-12,Erie,Ohio,39043,85,3 +2020-05-13,Erie,Ohio,39043,86,3 +2020-05-14,Erie,Ohio,39043,86,3 +2020-05-15,Erie,Ohio,39043,88,3 +2020-05-16,Erie,Ohio,39043,97,3 +2020-05-17,Erie,Ohio,39043,102,3 +2020-05-18,Erie,Ohio,39043,121,3 +2020-05-19,Erie,Ohio,39043,124,3 +2020-05-20,Erie,Ohio,39043,124,4 +2020-05-21,Erie,Ohio,39043,131,4 +2020-05-22,Erie,Ohio,39043,133,4 +2020-05-23,Erie,Ohio,39043,137,4 +2020-05-24,Erie,Ohio,39043,155,5 +2020-05-25,Erie,Ohio,39043,157,5 +2020-05-26,Erie,Ohio,39043,159,5 +2020-05-27,Erie,Ohio,39043,163,5 +2020-05-28,Erie,Ohio,39043,165,6 +2020-05-29,Erie,Ohio,39043,167,11 +2020-05-30,Erie,Ohio,39043,171,14 +2020-05-31,Erie,Ohio,39043,172,14 +2020-06-01,Erie,Ohio,39043,175,14 +2020-06-02,Erie,Ohio,39043,178,16 +2020-06-03,Erie,Ohio,39043,182,16 +2020-06-04,Erie,Ohio,39043,185,16 +2020-06-05,Erie,Ohio,39043,184,16 +2020-06-06,Erie,Ohio,39043,184,16 +2020-06-07,Erie,Ohio,39043,189,16 +2020-06-08,Erie,Ohio,39043,190,16 +2020-06-09,Erie,Ohio,39043,191,16 +2020-06-10,Erie,Ohio,39043,191,16 +2020-06-11,Erie,Ohio,39043,191,17 +2020-06-12,Erie,Ohio,39043,191,18 +2020-06-13,Erie,Ohio,39043,209,20 +2020-06-14,Erie,Ohio,39043,210,20 +2020-06-15,Erie,Ohio,39043,213,20 +2020-06-16,Erie,Ohio,39043,215,20 +2020-06-17,Erie,Ohio,39043,215,22 +2020-06-18,Erie,Ohio,39043,215,22 +2020-06-19,Erie,Ohio,39043,216,22 +2020-06-20,Erie,Ohio,39043,217,22 +2020-06-21,Erie,Ohio,39043,217,22 +2020-06-22,Erie,Ohio,39043,218,22 +2020-06-23,Erie,Ohio,39043,218,22 +2020-06-24,Erie,Ohio,39043,219,22 +2020-06-25,Erie,Ohio,39043,221,22 +2020-06-26,Erie,Ohio,39043,223,22 +2020-06-27,Erie,Ohio,39043,225,22 +2020-06-28,Erie,Ohio,39043,225,22 +2020-06-29,Erie,Ohio,39043,226,22 +2020-06-30,Erie,Ohio,39043,228,22 +2020-07-01,Erie,Ohio,39043,229,22 +2020-07-02,Erie,Ohio,39043,229,22 +2020-07-03,Erie,Ohio,39043,234,22 +2020-07-04,Erie,Ohio,39043,236,22 +2020-07-05,Erie,Ohio,39043,242,22 +2020-07-06,Erie,Ohio,39043,244,22 +2020-07-07,Erie,Ohio,39043,246,22 +2020-07-08,Erie,Ohio,39043,250,22 +2020-07-09,Erie,Ohio,39043,260,22 +2020-03-24,Fairfield,Ohio,39045,2,0 +2020-03-25,Fairfield,Ohio,39045,5,0 +2020-03-26,Fairfield,Ohio,39045,6,0 +2020-03-27,Fairfield,Ohio,39045,8,0 +2020-03-28,Fairfield,Ohio,39045,14,0 +2020-03-29,Fairfield,Ohio,39045,14,0 +2020-03-30,Fairfield,Ohio,39045,13,0 +2020-03-31,Fairfield,Ohio,39045,14,0 +2020-04-01,Fairfield,Ohio,39045,22,0 +2020-04-02,Fairfield,Ohio,39045,28,0 +2020-04-03,Fairfield,Ohio,39045,32,0 +2020-04-04,Fairfield,Ohio,39045,36,0 +2020-04-05,Fairfield,Ohio,39045,46,0 +2020-04-06,Fairfield,Ohio,39045,54,0 +2020-04-07,Fairfield,Ohio,39045,59,0 +2020-04-08,Fairfield,Ohio,39045,65,0 +2020-04-09,Fairfield,Ohio,39045,68,0 +2020-04-10,Fairfield,Ohio,39045,73,0 +2020-04-11,Fairfield,Ohio,39045,78,0 +2020-04-12,Fairfield,Ohio,39045,81,0 +2020-04-13,Fairfield,Ohio,39045,84,1 +2020-04-14,Fairfield,Ohio,39045,90,1 +2020-04-15,Fairfield,Ohio,39045,92,1 +2020-04-16,Fairfield,Ohio,39045,96,2 +2020-04-17,Fairfield,Ohio,39045,95,2 +2020-04-18,Fairfield,Ohio,39045,97,2 +2020-04-19,Fairfield,Ohio,39045,97,2 +2020-04-20,Fairfield,Ohio,39045,99,2 +2020-04-21,Fairfield,Ohio,39045,101,2 +2020-04-22,Fairfield,Ohio,39045,106,2 +2020-04-23,Fairfield,Ohio,39045,109,2 +2020-04-24,Fairfield,Ohio,39045,108,2 +2020-04-25,Fairfield,Ohio,39045,110,2 +2020-04-26,Fairfield,Ohio,39045,114,2 +2020-04-27,Fairfield,Ohio,39045,116,2 +2020-04-28,Fairfield,Ohio,39045,121,2 +2020-04-29,Fairfield,Ohio,39045,129,2 +2020-04-30,Fairfield,Ohio,39045,137,2 +2020-05-01,Fairfield,Ohio,39045,138,2 +2020-05-02,Fairfield,Ohio,39045,140,2 +2020-05-03,Fairfield,Ohio,39045,150,2 +2020-05-04,Fairfield,Ohio,39045,152,2 +2020-05-05,Fairfield,Ohio,39045,155,3 +2020-05-06,Fairfield,Ohio,39045,158,3 +2020-05-07,Fairfield,Ohio,39045,162,2 +2020-05-08,Fairfield,Ohio,39045,171,2 +2020-05-09,Fairfield,Ohio,39045,177,2 +2020-05-10,Fairfield,Ohio,39045,177,2 +2020-05-11,Fairfield,Ohio,39045,178,3 +2020-05-12,Fairfield,Ohio,39045,188,3 +2020-05-13,Fairfield,Ohio,39045,191,3 +2020-05-14,Fairfield,Ohio,39045,198,3 +2020-05-15,Fairfield,Ohio,39045,203,3 +2020-05-16,Fairfield,Ohio,39045,203,3 +2020-05-17,Fairfield,Ohio,39045,205,3 +2020-05-18,Fairfield,Ohio,39045,208,3 +2020-05-19,Fairfield,Ohio,39045,215,3 +2020-05-20,Fairfield,Ohio,39045,217,3 +2020-05-21,Fairfield,Ohio,39045,222,3 +2020-05-22,Fairfield,Ohio,39045,229,3 +2020-05-23,Fairfield,Ohio,39045,233,3 +2020-05-24,Fairfield,Ohio,39045,240,3 +2020-05-25,Fairfield,Ohio,39045,240,3 +2020-05-26,Fairfield,Ohio,39045,246,3 +2020-05-27,Fairfield,Ohio,39045,248,4 +2020-05-28,Fairfield,Ohio,39045,251,5 +2020-05-29,Fairfield,Ohio,39045,258,6 +2020-05-30,Fairfield,Ohio,39045,259,6 +2020-05-31,Fairfield,Ohio,39045,267,6 +2020-06-01,Fairfield,Ohio,39045,280,6 +2020-06-02,Fairfield,Ohio,39045,301,7 +2020-06-03,Fairfield,Ohio,39045,310,8 +2020-06-04,Fairfield,Ohio,39045,314,8 +2020-06-05,Fairfield,Ohio,39045,318,8 +2020-06-06,Fairfield,Ohio,39045,321,8 +2020-06-07,Fairfield,Ohio,39045,326,9 +2020-06-08,Fairfield,Ohio,39045,333,9 +2020-06-09,Fairfield,Ohio,39045,336,9 +2020-06-10,Fairfield,Ohio,39045,342,9 +2020-06-11,Fairfield,Ohio,39045,348,9 +2020-06-12,Fairfield,Ohio,39045,353,9 +2020-06-13,Fairfield,Ohio,39045,360,9 +2020-06-14,Fairfield,Ohio,39045,364,9 +2020-06-15,Fairfield,Ohio,39045,370,10 +2020-06-16,Fairfield,Ohio,39045,374,10 +2020-06-17,Fairfield,Ohio,39045,387,12 +2020-06-18,Fairfield,Ohio,39045,392,12 +2020-06-19,Fairfield,Ohio,39045,398,12 +2020-06-20,Fairfield,Ohio,39045,404,12 +2020-06-21,Fairfield,Ohio,39045,409,12 +2020-06-22,Fairfield,Ohio,39045,414,12 +2020-06-23,Fairfield,Ohio,39045,426,14 +2020-06-24,Fairfield,Ohio,39045,433,15 +2020-06-25,Fairfield,Ohio,39045,438,15 +2020-06-26,Fairfield,Ohio,39045,448,15 +2020-06-27,Fairfield,Ohio,39045,458,15 +2020-06-28,Fairfield,Ohio,39045,470,15 +2020-06-29,Fairfield,Ohio,39045,476,15 +2020-06-30,Fairfield,Ohio,39045,481,16 +2020-07-01,Fairfield,Ohio,39045,503,16 +2020-07-02,Fairfield,Ohio,39045,503,16 +2020-07-03,Fairfield,Ohio,39045,529,16 +2020-07-04,Fairfield,Ohio,39045,543,16 +2020-07-05,Fairfield,Ohio,39045,559,16 +2020-07-06,Fairfield,Ohio,39045,572,16 +2020-07-07,Fairfield,Ohio,39045,585,16 +2020-07-08,Fairfield,Ohio,39045,605,17 +2020-07-09,Fairfield,Ohio,39045,614,17 +2020-03-25,Fayette,Ohio,39047,1,0 +2020-03-26,Fayette,Ohio,39047,1,0 +2020-03-27,Fayette,Ohio,39047,1,0 +2020-03-28,Fayette,Ohio,39047,1,0 +2020-03-29,Fayette,Ohio,39047,1,0 +2020-03-30,Fayette,Ohio,39047,1,0 +2020-03-31,Fayette,Ohio,39047,1,0 +2020-04-01,Fayette,Ohio,39047,1,0 +2020-04-02,Fayette,Ohio,39047,1,0 +2020-04-03,Fayette,Ohio,39047,1,0 +2020-04-04,Fayette,Ohio,39047,2,0 +2020-04-05,Fayette,Ohio,39047,2,0 +2020-04-06,Fayette,Ohio,39047,2,0 +2020-04-07,Fayette,Ohio,39047,2,0 +2020-04-08,Fayette,Ohio,39047,4,0 +2020-04-09,Fayette,Ohio,39047,5,0 +2020-04-10,Fayette,Ohio,39047,5,0 +2020-04-11,Fayette,Ohio,39047,7,0 +2020-04-12,Fayette,Ohio,39047,9,0 +2020-04-13,Fayette,Ohio,39047,10,0 +2020-04-14,Fayette,Ohio,39047,12,0 +2020-04-15,Fayette,Ohio,39047,12,0 +2020-04-16,Fayette,Ohio,39047,12,0 +2020-04-17,Fayette,Ohio,39047,12,0 +2020-04-18,Fayette,Ohio,39047,13,0 +2020-04-19,Fayette,Ohio,39047,13,0 +2020-04-20,Fayette,Ohio,39047,13,0 +2020-04-21,Fayette,Ohio,39047,13,0 +2020-04-22,Fayette,Ohio,39047,13,0 +2020-04-23,Fayette,Ohio,39047,13,0 +2020-04-24,Fayette,Ohio,39047,13,0 +2020-04-25,Fayette,Ohio,39047,13,0 +2020-04-26,Fayette,Ohio,39047,13,0 +2020-04-27,Fayette,Ohio,39047,14,0 +2020-04-28,Fayette,Ohio,39047,15,0 +2020-04-29,Fayette,Ohio,39047,15,0 +2020-04-30,Fayette,Ohio,39047,15,0 +2020-05-01,Fayette,Ohio,39047,16,0 +2020-05-02,Fayette,Ohio,39047,17,0 +2020-05-03,Fayette,Ohio,39047,20,0 +2020-05-04,Fayette,Ohio,39047,20,0 +2020-05-05,Fayette,Ohio,39047,21,0 +2020-05-06,Fayette,Ohio,39047,21,0 +2020-05-07,Fayette,Ohio,39047,23,0 +2020-05-08,Fayette,Ohio,39047,23,0 +2020-05-09,Fayette,Ohio,39047,27,0 +2020-05-10,Fayette,Ohio,39047,27,0 +2020-05-11,Fayette,Ohio,39047,27,0 +2020-05-12,Fayette,Ohio,39047,27,0 +2020-05-13,Fayette,Ohio,39047,27,0 +2020-05-14,Fayette,Ohio,39047,27,0 +2020-05-15,Fayette,Ohio,39047,28,0 +2020-05-16,Fayette,Ohio,39047,30,0 +2020-05-17,Fayette,Ohio,39047,31,0 +2020-05-18,Fayette,Ohio,39047,32,0 +2020-05-19,Fayette,Ohio,39047,31,0 +2020-05-20,Fayette,Ohio,39047,32,0 +2020-05-21,Fayette,Ohio,39047,33,0 +2020-05-22,Fayette,Ohio,39047,34,0 +2020-05-23,Fayette,Ohio,39047,34,0 +2020-05-24,Fayette,Ohio,39047,34,0 +2020-05-25,Fayette,Ohio,39047,37,0 +2020-05-26,Fayette,Ohio,39047,37,0 +2020-05-27,Fayette,Ohio,39047,37,0 +2020-05-28,Fayette,Ohio,39047,39,0 +2020-05-29,Fayette,Ohio,39047,40,0 +2020-05-30,Fayette,Ohio,39047,40,0 +2020-05-31,Fayette,Ohio,39047,40,0 +2020-06-01,Fayette,Ohio,39047,40,0 +2020-06-02,Fayette,Ohio,39047,40,0 +2020-06-03,Fayette,Ohio,39047,40,0 +2020-06-04,Fayette,Ohio,39047,41,0 +2020-06-05,Fayette,Ohio,39047,41,0 +2020-06-06,Fayette,Ohio,39047,42,0 +2020-06-07,Fayette,Ohio,39047,42,0 +2020-06-08,Fayette,Ohio,39047,43,0 +2020-06-09,Fayette,Ohio,39047,43,0 +2020-06-10,Fayette,Ohio,39047,43,0 +2020-06-11,Fayette,Ohio,39047,44,0 +2020-06-12,Fayette,Ohio,39047,44,0 +2020-06-13,Fayette,Ohio,39047,44,0 +2020-06-14,Fayette,Ohio,39047,45,0 +2020-06-15,Fayette,Ohio,39047,45,0 +2020-06-16,Fayette,Ohio,39047,45,0 +2020-06-17,Fayette,Ohio,39047,45,0 +2020-06-18,Fayette,Ohio,39047,45,0 +2020-06-19,Fayette,Ohio,39047,45,0 +2020-06-20,Fayette,Ohio,39047,45,0 +2020-06-21,Fayette,Ohio,39047,45,0 +2020-06-22,Fayette,Ohio,39047,45,0 +2020-06-23,Fayette,Ohio,39047,45,0 +2020-06-24,Fayette,Ohio,39047,45,0 +2020-06-25,Fayette,Ohio,39047,45,0 +2020-06-26,Fayette,Ohio,39047,45,0 +2020-06-27,Fayette,Ohio,39047,45,0 +2020-06-28,Fayette,Ohio,39047,45,0 +2020-06-29,Fayette,Ohio,39047,46,0 +2020-06-30,Fayette,Ohio,39047,46,0 +2020-07-01,Fayette,Ohio,39047,46,0 +2020-07-02,Fayette,Ohio,39047,46,0 +2020-07-03,Fayette,Ohio,39047,46,0 +2020-07-04,Fayette,Ohio,39047,46,0 +2020-07-05,Fayette,Ohio,39047,46,0 +2020-07-06,Fayette,Ohio,39047,46,0 +2020-07-07,Fayette,Ohio,39047,46,0 +2020-07-08,Fayette,Ohio,39047,48,0 +2020-07-09,Fayette,Ohio,39047,51,0 +2020-03-14,Franklin,Ohio,39049,1,0 +2020-03-15,Franklin,Ohio,39049,3,0 +2020-03-16,Franklin,Ohio,39049,3,0 +2020-03-17,Franklin,Ohio,39049,4,0 +2020-03-18,Franklin,Ohio,39049,7,0 +2020-03-19,Franklin,Ohio,39049,10,0 +2020-03-20,Franklin,Ohio,39049,14,0 +2020-03-21,Franklin,Ohio,39049,21,0 +2020-03-22,Franklin,Ohio,39049,34,0 +2020-03-23,Franklin,Ohio,39049,46,2 +2020-03-24,Franklin,Ohio,39049,75,2 +2020-03-25,Franklin,Ohio,39049,88,2 +2020-03-26,Franklin,Ohio,39049,109,2 +2020-03-27,Franklin,Ohio,39049,152,2 +2020-03-28,Franklin,Ohio,39049,222,2 +2020-03-29,Franklin,Ohio,39049,247,2 +2020-03-30,Franklin,Ohio,39049,281,2 +2020-03-31,Franklin,Ohio,39049,325,3 +2020-04-01,Franklin,Ohio,39049,391,4 +2020-04-02,Franklin,Ohio,39049,441,5 +2020-04-03,Franklin,Ohio,39049,503,5 +2020-04-04,Franklin,Ohio,39049,557,6 +2020-04-05,Franklin,Ohio,39049,597,8 +2020-04-06,Franklin,Ohio,39049,644,9 +2020-04-07,Franklin,Ohio,39049,703,12 +2020-04-08,Franklin,Ohio,39049,761,12 +2020-04-09,Franklin,Ohio,39049,802,14 +2020-04-10,Franklin,Ohio,39049,850,14 +2020-04-11,Franklin,Ohio,39049,894,14 +2020-04-12,Franklin,Ohio,39049,943,14 +2020-04-13,Franklin,Ohio,39049,1012,15 +2020-04-14,Franklin,Ohio,39049,1053,18 +2020-04-15,Franklin,Ohio,39049,1102,19 +2020-04-16,Franklin,Ohio,39049,1212,19 +2020-04-17,Franklin,Ohio,39049,1320,22 +2020-04-18,Franklin,Ohio,39049,1403,27 +2020-04-19,Franklin,Ohio,39049,1513,29 +2020-04-20,Franklin,Ohio,39049,1510,35 +2020-04-21,Franklin,Ohio,39049,1557,37 +2020-04-22,Franklin,Ohio,39049,1598,42 +2020-04-23,Franklin,Ohio,39049,1673,46 +2020-04-24,Franklin,Ohio,39049,1768,48 +2020-04-25,Franklin,Ohio,39049,1839,50 +2020-04-26,Franklin,Ohio,39049,1942,53 +2020-04-27,Franklin,Ohio,39049,2005,57 +2020-04-28,Franklin,Ohio,39049,2090,62 +2020-04-29,Franklin,Ohio,39049,2216,71 +2020-04-30,Franklin,Ohio,39049,2441,73 +2020-05-01,Franklin,Ohio,39049,2589,76 +2020-05-02,Franklin,Ohio,39049,2698,78 +2020-05-03,Franklin,Ohio,39049,2905,79 +2020-05-04,Franklin,Ohio,39049,2988,84 +2020-05-05,Franklin,Ohio,39049,3097,87 +2020-05-06,Franklin,Ohio,39049,3237,99 +2020-05-07,Franklin,Ohio,39049,3377,107 +2020-05-08,Franklin,Ohio,39049,3615,108 +2020-05-09,Franklin,Ohio,39049,3710,114 +2020-05-10,Franklin,Ohio,39049,3777,119 +2020-05-11,Franklin,Ohio,39049,3881,124 +2020-05-12,Franklin,Ohio,39049,4002,138 +2020-05-13,Franklin,Ohio,39049,4113,148 +2020-05-14,Franklin,Ohio,39049,4227,150 +2020-05-15,Franklin,Ohio,39049,4330,156 +2020-05-16,Franklin,Ohio,39049,4420,169 +2020-05-17,Franklin,Ohio,39049,4493,170 +2020-05-18,Franklin,Ohio,39049,4574,177 +2020-05-19,Franklin,Ohio,39049,4706,193 +2020-05-20,Franklin,Ohio,39049,4793,200 +2020-05-21,Franklin,Ohio,39049,4885,205 +2020-05-22,Franklin,Ohio,39049,4996,215 +2020-05-23,Franklin,Ohio,39049,5097,224 +2020-05-24,Franklin,Ohio,39049,5188,228 +2020-05-25,Franklin,Ohio,39049,5310,237 +2020-05-26,Franklin,Ohio,39049,5414,239 +2020-05-27,Franklin,Ohio,39049,5486,243 +2020-05-28,Franklin,Ohio,39049,5566,253 +2020-05-29,Franklin,Ohio,39049,5674,256 +2020-05-30,Franklin,Ohio,39049,5773,260 +2020-05-31,Franklin,Ohio,39049,5862,262 +2020-06-01,Franklin,Ohio,39049,5933,271 +2020-06-02,Franklin,Ohio,39049,5996,279 +2020-06-03,Franklin,Ohio,39049,6112,290 +2020-06-04,Franklin,Ohio,39049,6216,293 +2020-06-05,Franklin,Ohio,39049,6323,295 +2020-06-06,Franklin,Ohio,39049,6406,297 +2020-06-07,Franklin,Ohio,39049,6512,299 +2020-06-08,Franklin,Ohio,39049,6586,300 +2020-06-09,Franklin,Ohio,39049,6667,303 +2020-06-10,Franklin,Ohio,39049,6741,313 +2020-06-11,Franklin,Ohio,39049,6844,320 +2020-06-12,Franklin,Ohio,39049,6918,325 +2020-06-13,Franklin,Ohio,39049,7030,329 +2020-06-14,Franklin,Ohio,39049,7076,329 +2020-06-15,Franklin,Ohio,39049,7202,332 +2020-06-16,Franklin,Ohio,39049,7289,334 +2020-06-17,Franklin,Ohio,39049,7365,337 +2020-06-18,Franklin,Ohio,39049,7487,342 +2020-06-19,Franklin,Ohio,39049,7590,348 +2020-06-20,Franklin,Ohio,39049,7694,357 +2020-06-21,Franklin,Ohio,39049,7794,358 +2020-06-22,Franklin,Ohio,39049,7915,358 +2020-06-23,Franklin,Ohio,39049,8029,370 +2020-06-24,Franklin,Ohio,39049,8144,376 +2020-06-25,Franklin,Ohio,39049,8310,378 +2020-06-26,Franklin,Ohio,39049,8511,383 +2020-06-27,Franklin,Ohio,39049,8694,392 +2020-06-28,Franklin,Ohio,39049,8840,393 +2020-06-29,Franklin,Ohio,39049,8982,395 +2020-06-30,Franklin,Ohio,39049,9148,404 +2020-07-01,Franklin,Ohio,39049,9338,407 +2020-07-02,Franklin,Ohio,39049,9338,407 +2020-07-03,Franklin,Ohio,39049,9825,417 +2020-07-04,Franklin,Ohio,39049,10023,420 +2020-07-05,Franklin,Ohio,39049,10271,422 +2020-07-06,Franklin,Ohio,39049,10410,429 +2020-07-07,Franklin,Ohio,39049,10587,431 +2020-07-08,Franklin,Ohio,39049,10879,439 +2020-07-09,Franklin,Ohio,39049,11122,439 +2020-03-27,Fulton,Ohio,39051,2,0 +2020-03-28,Fulton,Ohio,39051,2,0 +2020-03-29,Fulton,Ohio,39051,2,0 +2020-03-30,Fulton,Ohio,39051,2,0 +2020-03-31,Fulton,Ohio,39051,2,0 +2020-04-01,Fulton,Ohio,39051,2,0 +2020-04-02,Fulton,Ohio,39051,3,0 +2020-04-03,Fulton,Ohio,39051,3,0 +2020-04-04,Fulton,Ohio,39051,5,0 +2020-04-05,Fulton,Ohio,39051,5,0 +2020-04-06,Fulton,Ohio,39051,5,0 +2020-04-07,Fulton,Ohio,39051,5,0 +2020-04-08,Fulton,Ohio,39051,5,0 +2020-04-09,Fulton,Ohio,39051,5,0 +2020-04-10,Fulton,Ohio,39051,5,0 +2020-04-11,Fulton,Ohio,39051,6,0 +2020-04-12,Fulton,Ohio,39051,7,0 +2020-04-13,Fulton,Ohio,39051,7,0 +2020-04-14,Fulton,Ohio,39051,7,0 +2020-04-15,Fulton,Ohio,39051,8,0 +2020-04-16,Fulton,Ohio,39051,10,0 +2020-04-17,Fulton,Ohio,39051,13,0 +2020-04-18,Fulton,Ohio,39051,14,0 +2020-04-19,Fulton,Ohio,39051,17,0 +2020-04-20,Fulton,Ohio,39051,16,0 +2020-04-21,Fulton,Ohio,39051,16,0 +2020-04-22,Fulton,Ohio,39051,18,0 +2020-04-23,Fulton,Ohio,39051,18,0 +2020-04-24,Fulton,Ohio,39051,18,0 +2020-04-25,Fulton,Ohio,39051,19,0 +2020-04-26,Fulton,Ohio,39051,19,0 +2020-04-27,Fulton,Ohio,39051,19,0 +2020-04-28,Fulton,Ohio,39051,20,0 +2020-04-29,Fulton,Ohio,39051,21,0 +2020-04-30,Fulton,Ohio,39051,22,0 +2020-05-01,Fulton,Ohio,39051,24,0 +2020-05-02,Fulton,Ohio,39051,24,0 +2020-05-03,Fulton,Ohio,39051,24,0 +2020-05-04,Fulton,Ohio,39051,26,0 +2020-05-05,Fulton,Ohio,39051,29,0 +2020-05-06,Fulton,Ohio,39051,30,0 +2020-05-07,Fulton,Ohio,39051,30,0 +2020-05-08,Fulton,Ohio,39051,30,0 +2020-05-09,Fulton,Ohio,39051,30,0 +2020-05-10,Fulton,Ohio,39051,31,0 +2020-05-11,Fulton,Ohio,39051,31,0 +2020-05-12,Fulton,Ohio,39051,32,0 +2020-05-13,Fulton,Ohio,39051,32,0 +2020-05-14,Fulton,Ohio,39051,32,0 +2020-05-15,Fulton,Ohio,39051,34,0 +2020-05-16,Fulton,Ohio,39051,34,0 +2020-05-17,Fulton,Ohio,39051,34,0 +2020-05-18,Fulton,Ohio,39051,35,0 +2020-05-19,Fulton,Ohio,39051,35,0 +2020-05-20,Fulton,Ohio,39051,35,0 +2020-05-21,Fulton,Ohio,39051,35,0 +2020-05-22,Fulton,Ohio,39051,35,0 +2020-05-23,Fulton,Ohio,39051,35,0 +2020-05-24,Fulton,Ohio,39051,36,0 +2020-05-25,Fulton,Ohio,39051,36,0 +2020-05-26,Fulton,Ohio,39051,35,0 +2020-05-27,Fulton,Ohio,39051,36,0 +2020-05-28,Fulton,Ohio,39051,37,0 +2020-05-29,Fulton,Ohio,39051,39,0 +2020-05-30,Fulton,Ohio,39051,40,0 +2020-05-31,Fulton,Ohio,39051,41,0 +2020-06-01,Fulton,Ohio,39051,44,0 +2020-06-02,Fulton,Ohio,39051,44,0 +2020-06-03,Fulton,Ohio,39051,45,0 +2020-06-04,Fulton,Ohio,39051,45,0 +2020-06-05,Fulton,Ohio,39051,45,0 +2020-06-06,Fulton,Ohio,39051,45,0 +2020-06-07,Fulton,Ohio,39051,46,0 +2020-06-08,Fulton,Ohio,39051,50,0 +2020-06-09,Fulton,Ohio,39051,51,0 +2020-06-10,Fulton,Ohio,39051,52,0 +2020-06-11,Fulton,Ohio,39051,52,0 +2020-06-12,Fulton,Ohio,39051,52,0 +2020-06-13,Fulton,Ohio,39051,52,0 +2020-06-14,Fulton,Ohio,39051,53,0 +2020-06-15,Fulton,Ohio,39051,53,0 +2020-06-16,Fulton,Ohio,39051,53,0 +2020-06-17,Fulton,Ohio,39051,53,0 +2020-06-18,Fulton,Ohio,39051,53,0 +2020-06-19,Fulton,Ohio,39051,53,0 +2020-06-20,Fulton,Ohio,39051,53,0 +2020-06-21,Fulton,Ohio,39051,53,0 +2020-06-22,Fulton,Ohio,39051,53,0 +2020-06-23,Fulton,Ohio,39051,54,0 +2020-06-24,Fulton,Ohio,39051,54,0 +2020-06-25,Fulton,Ohio,39051,54,0 +2020-06-26,Fulton,Ohio,39051,56,0 +2020-06-27,Fulton,Ohio,39051,56,0 +2020-06-28,Fulton,Ohio,39051,57,0 +2020-06-29,Fulton,Ohio,39051,57,0 +2020-06-30,Fulton,Ohio,39051,57,0 +2020-07-01,Fulton,Ohio,39051,57,0 +2020-07-02,Fulton,Ohio,39051,57,0 +2020-07-03,Fulton,Ohio,39051,61,0 +2020-07-04,Fulton,Ohio,39051,61,0 +2020-07-05,Fulton,Ohio,39051,61,0 +2020-07-06,Fulton,Ohio,39051,61,0 +2020-07-07,Fulton,Ohio,39051,62,0 +2020-07-08,Fulton,Ohio,39051,63,0 +2020-07-09,Fulton,Ohio,39051,65,0 +2020-03-22,Gallia,Ohio,39053,1,0 +2020-03-23,Gallia,Ohio,39053,1,0 +2020-03-24,Gallia,Ohio,39053,1,1 +2020-03-25,Gallia,Ohio,39053,1,1 +2020-03-26,Gallia,Ohio,39053,1,1 +2020-03-27,Gallia,Ohio,39053,1,1 +2020-03-28,Gallia,Ohio,39053,1,1 +2020-03-29,Gallia,Ohio,39053,1,1 +2020-03-30,Gallia,Ohio,39053,1,1 +2020-03-31,Gallia,Ohio,39053,1,1 +2020-04-01,Gallia,Ohio,39053,1,1 +2020-04-02,Gallia,Ohio,39053,3,1 +2020-04-03,Gallia,Ohio,39053,4,1 +2020-04-04,Gallia,Ohio,39053,4,1 +2020-04-05,Gallia,Ohio,39053,4,1 +2020-04-06,Gallia,Ohio,39053,4,1 +2020-04-07,Gallia,Ohio,39053,4,1 +2020-04-08,Gallia,Ohio,39053,4,1 +2020-04-09,Gallia,Ohio,39053,4,1 +2020-04-10,Gallia,Ohio,39053,4,1 +2020-04-11,Gallia,Ohio,39053,4,1 +2020-04-12,Gallia,Ohio,39053,5,1 +2020-04-13,Gallia,Ohio,39053,8,1 +2020-04-14,Gallia,Ohio,39053,6,1 +2020-04-15,Gallia,Ohio,39053,6,1 +2020-04-16,Gallia,Ohio,39053,6,1 +2020-04-17,Gallia,Ohio,39053,6,1 +2020-04-18,Gallia,Ohio,39053,6,1 +2020-04-19,Gallia,Ohio,39053,6,1 +2020-04-20,Gallia,Ohio,39053,6,1 +2020-04-21,Gallia,Ohio,39053,6,1 +2020-04-22,Gallia,Ohio,39053,6,1 +2020-04-23,Gallia,Ohio,39053,6,1 +2020-04-24,Gallia,Ohio,39053,6,1 +2020-04-25,Gallia,Ohio,39053,6,1 +2020-04-26,Gallia,Ohio,39053,6,1 +2020-04-27,Gallia,Ohio,39053,6,1 +2020-04-28,Gallia,Ohio,39053,6,1 +2020-04-29,Gallia,Ohio,39053,6,1 +2020-04-30,Gallia,Ohio,39053,6,1 +2020-05-01,Gallia,Ohio,39053,6,1 +2020-05-02,Gallia,Ohio,39053,6,1 +2020-05-03,Gallia,Ohio,39053,6,1 +2020-05-04,Gallia,Ohio,39053,6,1 +2020-05-05,Gallia,Ohio,39053,6,1 +2020-05-06,Gallia,Ohio,39053,6,1 +2020-05-07,Gallia,Ohio,39053,6,1 +2020-05-08,Gallia,Ohio,39053,6,1 +2020-05-09,Gallia,Ohio,39053,6,1 +2020-05-10,Gallia,Ohio,39053,6,1 +2020-05-11,Gallia,Ohio,39053,6,1 +2020-05-12,Gallia,Ohio,39053,6,1 +2020-05-13,Gallia,Ohio,39053,6,1 +2020-05-14,Gallia,Ohio,39053,6,1 +2020-05-15,Gallia,Ohio,39053,6,1 +2020-05-16,Gallia,Ohio,39053,7,1 +2020-05-17,Gallia,Ohio,39053,7,1 +2020-05-18,Gallia,Ohio,39053,7,1 +2020-05-19,Gallia,Ohio,39053,7,1 +2020-05-20,Gallia,Ohio,39053,8,1 +2020-05-21,Gallia,Ohio,39053,7,1 +2020-05-22,Gallia,Ohio,39053,7,1 +2020-05-23,Gallia,Ohio,39053,7,1 +2020-05-24,Gallia,Ohio,39053,7,1 +2020-05-25,Gallia,Ohio,39053,7,1 +2020-05-26,Gallia,Ohio,39053,7,1 +2020-05-27,Gallia,Ohio,39053,7,1 +2020-05-28,Gallia,Ohio,39053,7,1 +2020-05-29,Gallia,Ohio,39053,7,1 +2020-05-30,Gallia,Ohio,39053,9,1 +2020-05-31,Gallia,Ohio,39053,8,1 +2020-06-01,Gallia,Ohio,39053,8,1 +2020-06-02,Gallia,Ohio,39053,8,1 +2020-06-03,Gallia,Ohio,39053,8,1 +2020-06-04,Gallia,Ohio,39053,8,1 +2020-06-05,Gallia,Ohio,39053,8,1 +2020-06-06,Gallia,Ohio,39053,9,1 +2020-06-07,Gallia,Ohio,39053,9,1 +2020-06-08,Gallia,Ohio,39053,9,1 +2020-06-09,Gallia,Ohio,39053,9,1 +2020-06-10,Gallia,Ohio,39053,9,1 +2020-06-11,Gallia,Ohio,39053,9,1 +2020-06-12,Gallia,Ohio,39053,9,1 +2020-06-13,Gallia,Ohio,39053,9,1 +2020-06-14,Gallia,Ohio,39053,9,1 +2020-06-15,Gallia,Ohio,39053,9,1 +2020-06-16,Gallia,Ohio,39053,9,1 +2020-06-17,Gallia,Ohio,39053,9,1 +2020-06-18,Gallia,Ohio,39053,9,1 +2020-06-19,Gallia,Ohio,39053,9,1 +2020-06-20,Gallia,Ohio,39053,9,1 +2020-06-21,Gallia,Ohio,39053,9,1 +2020-06-22,Gallia,Ohio,39053,9,1 +2020-06-23,Gallia,Ohio,39053,9,1 +2020-06-24,Gallia,Ohio,39053,9,1 +2020-06-25,Gallia,Ohio,39053,9,1 +2020-06-26,Gallia,Ohio,39053,10,1 +2020-06-27,Gallia,Ohio,39053,10,1 +2020-06-28,Gallia,Ohio,39053,10,1 +2020-06-29,Gallia,Ohio,39053,11,1 +2020-06-30,Gallia,Ohio,39053,14,1 +2020-07-01,Gallia,Ohio,39053,14,1 +2020-07-02,Gallia,Ohio,39053,14,1 +2020-07-03,Gallia,Ohio,39053,14,1 +2020-07-04,Gallia,Ohio,39053,16,1 +2020-07-05,Gallia,Ohio,39053,17,1 +2020-07-06,Gallia,Ohio,39053,18,1 +2020-07-07,Gallia,Ohio,39053,18,1 +2020-07-08,Gallia,Ohio,39053,20,1 +2020-07-09,Gallia,Ohio,39053,20,1 +2020-03-16,Geauga,Ohio,39055,1,0 +2020-03-17,Geauga,Ohio,39055,1,0 +2020-03-18,Geauga,Ohio,39055,1,0 +2020-03-19,Geauga,Ohio,39055,1,0 +2020-03-20,Geauga,Ohio,39055,1,0 +2020-03-21,Geauga,Ohio,39055,1,0 +2020-03-22,Geauga,Ohio,39055,2,0 +2020-03-23,Geauga,Ohio,39055,2,0 +2020-03-24,Geauga,Ohio,39055,5,0 +2020-03-25,Geauga,Ohio,39055,4,0 +2020-03-26,Geauga,Ohio,39055,7,0 +2020-03-27,Geauga,Ohio,39055,10,0 +2020-03-28,Geauga,Ohio,39055,14,0 +2020-03-29,Geauga,Ohio,39055,17,0 +2020-03-30,Geauga,Ohio,39055,22,0 +2020-03-31,Geauga,Ohio,39055,24,0 +2020-04-01,Geauga,Ohio,39055,25,0 +2020-04-02,Geauga,Ohio,39055,33,0 +2020-04-03,Geauga,Ohio,39055,35,0 +2020-04-04,Geauga,Ohio,39055,38,0 +2020-04-05,Geauga,Ohio,39055,38,0 +2020-04-06,Geauga,Ohio,39055,40,0 +2020-04-07,Geauga,Ohio,39055,41,0 +2020-04-08,Geauga,Ohio,39055,44,1 +2020-04-09,Geauga,Ohio,39055,47,1 +2020-04-10,Geauga,Ohio,39055,49,1 +2020-04-11,Geauga,Ohio,39055,53,2 +2020-04-12,Geauga,Ohio,39055,61,2 +2020-04-13,Geauga,Ohio,39055,68,2 +2020-04-14,Geauga,Ohio,39055,69,3 +2020-04-15,Geauga,Ohio,39055,82,4 +2020-04-16,Geauga,Ohio,39055,92,4 +2020-04-17,Geauga,Ohio,39055,96,4 +2020-04-18,Geauga,Ohio,39055,98,4 +2020-04-19,Geauga,Ohio,39055,100,4 +2020-04-20,Geauga,Ohio,39055,105,9 +2020-04-21,Geauga,Ohio,39055,113,9 +2020-04-22,Geauga,Ohio,39055,117,9 +2020-04-23,Geauga,Ohio,39055,119,9 +2020-04-24,Geauga,Ohio,39055,126,9 +2020-04-25,Geauga,Ohio,39055,128,14 +2020-04-26,Geauga,Ohio,39055,137,14 +2020-04-27,Geauga,Ohio,39055,146,13 +2020-04-28,Geauga,Ohio,39055,148,13 +2020-04-29,Geauga,Ohio,39055,153,13 +2020-04-30,Geauga,Ohio,39055,154,13 +2020-05-01,Geauga,Ohio,39055,155,13 +2020-05-02,Geauga,Ohio,39055,159,13 +2020-05-03,Geauga,Ohio,39055,163,13 +2020-05-04,Geauga,Ohio,39055,169,16 +2020-05-05,Geauga,Ohio,39055,172,16 +2020-05-06,Geauga,Ohio,39055,181,19 +2020-05-07,Geauga,Ohio,39055,184,19 +2020-05-08,Geauga,Ohio,39055,187,19 +2020-05-09,Geauga,Ohio,39055,189,19 +2020-05-10,Geauga,Ohio,39055,189,19 +2020-05-11,Geauga,Ohio,39055,191,19 +2020-05-12,Geauga,Ohio,39055,195,21 +2020-05-13,Geauga,Ohio,39055,198,21 +2020-05-14,Geauga,Ohio,39055,206,23 +2020-05-15,Geauga,Ohio,39055,212,24 +2020-05-16,Geauga,Ohio,39055,220,24 +2020-05-17,Geauga,Ohio,39055,220,24 +2020-05-18,Geauga,Ohio,39055,221,24 +2020-05-19,Geauga,Ohio,39055,226,26 +2020-05-20,Geauga,Ohio,39055,231,27 +2020-05-21,Geauga,Ohio,39055,241,27 +2020-05-22,Geauga,Ohio,39055,248,27 +2020-05-23,Geauga,Ohio,39055,250,29 +2020-05-24,Geauga,Ohio,39055,256,29 +2020-05-25,Geauga,Ohio,39055,257,29 +2020-05-26,Geauga,Ohio,39055,258,29 +2020-05-27,Geauga,Ohio,39055,261,29 +2020-05-28,Geauga,Ohio,39055,272,31 +2020-05-29,Geauga,Ohio,39055,277,32 +2020-05-30,Geauga,Ohio,39055,282,32 +2020-05-31,Geauga,Ohio,39055,284,32 +2020-06-01,Geauga,Ohio,39055,286,32 +2020-06-02,Geauga,Ohio,39055,292,33 +2020-06-03,Geauga,Ohio,39055,295,33 +2020-06-04,Geauga,Ohio,39055,300,34 +2020-06-05,Geauga,Ohio,39055,303,34 +2020-06-06,Geauga,Ohio,39055,306,34 +2020-06-07,Geauga,Ohio,39055,309,34 +2020-06-08,Geauga,Ohio,39055,313,34 +2020-06-09,Geauga,Ohio,39055,317,34 +2020-06-10,Geauga,Ohio,39055,327,35 +2020-06-11,Geauga,Ohio,39055,331,35 +2020-06-12,Geauga,Ohio,39055,331,35 +2020-06-13,Geauga,Ohio,39055,331,35 +2020-06-14,Geauga,Ohio,39055,334,35 +2020-06-15,Geauga,Ohio,39055,337,35 +2020-06-16,Geauga,Ohio,39055,342,36 +2020-06-17,Geauga,Ohio,39055,344,37 +2020-06-18,Geauga,Ohio,39055,349,37 +2020-06-19,Geauga,Ohio,39055,353,37 +2020-06-20,Geauga,Ohio,39055,355,37 +2020-06-21,Geauga,Ohio,39055,357,37 +2020-06-22,Geauga,Ohio,39055,361,37 +2020-06-23,Geauga,Ohio,39055,363,37 +2020-06-24,Geauga,Ohio,39055,369,40 +2020-06-25,Geauga,Ohio,39055,372,41 +2020-06-26,Geauga,Ohio,39055,378,41 +2020-06-27,Geauga,Ohio,39055,379,41 +2020-06-28,Geauga,Ohio,39055,382,41 +2020-06-29,Geauga,Ohio,39055,383,41 +2020-06-30,Geauga,Ohio,39055,387,42 +2020-07-01,Geauga,Ohio,39055,390,42 +2020-07-02,Geauga,Ohio,39055,390,42 +2020-07-03,Geauga,Ohio,39055,399,42 +2020-07-04,Geauga,Ohio,39055,400,42 +2020-07-05,Geauga,Ohio,39055,405,42 +2020-07-06,Geauga,Ohio,39055,407,42 +2020-07-07,Geauga,Ohio,39055,408,43 +2020-07-08,Geauga,Ohio,39055,414,43 +2020-07-09,Geauga,Ohio,39055,415,43 +2020-03-22,Greene,Ohio,39057,1,0 +2020-03-23,Greene,Ohio,39057,1,0 +2020-03-24,Greene,Ohio,39057,3,0 +2020-03-25,Greene,Ohio,39057,3,0 +2020-03-26,Greene,Ohio,39057,3,0 +2020-03-27,Greene,Ohio,39057,3,0 +2020-03-28,Greene,Ohio,39057,3,0 +2020-03-29,Greene,Ohio,39057,3,0 +2020-03-30,Greene,Ohio,39057,3,0 +2020-03-31,Greene,Ohio,39057,6,1 +2020-04-01,Greene,Ohio,39057,8,1 +2020-04-02,Greene,Ohio,39057,8,1 +2020-04-03,Greene,Ohio,39057,9,1 +2020-04-04,Greene,Ohio,39057,11,1 +2020-04-05,Greene,Ohio,39057,13,1 +2020-04-06,Greene,Ohio,39057,15,1 +2020-04-07,Greene,Ohio,39057,20,1 +2020-04-08,Greene,Ohio,39057,21,1 +2020-04-09,Greene,Ohio,39057,21,1 +2020-04-10,Greene,Ohio,39057,22,1 +2020-04-11,Greene,Ohio,39057,24,1 +2020-04-12,Greene,Ohio,39057,28,1 +2020-04-13,Greene,Ohio,39057,30,1 +2020-04-14,Greene,Ohio,39057,31,2 +2020-04-15,Greene,Ohio,39057,31,1 +2020-04-16,Greene,Ohio,39057,33,1 +2020-04-17,Greene,Ohio,39057,33,2 +2020-04-18,Greene,Ohio,39057,39,2 +2020-04-19,Greene,Ohio,39057,38,2 +2020-04-20,Greene,Ohio,39057,39,2 +2020-04-21,Greene,Ohio,39057,39,3 +2020-04-22,Greene,Ohio,39057,39,3 +2020-04-23,Greene,Ohio,39057,40,3 +2020-04-24,Greene,Ohio,39057,40,3 +2020-04-25,Greene,Ohio,39057,41,3 +2020-04-26,Greene,Ohio,39057,43,3 +2020-04-27,Greene,Ohio,39057,45,3 +2020-04-28,Greene,Ohio,39057,45,4 +2020-04-29,Greene,Ohio,39057,46,4 +2020-04-30,Greene,Ohio,39057,46,4 +2020-05-01,Greene,Ohio,39057,46,4 +2020-05-02,Greene,Ohio,39057,48,4 +2020-05-03,Greene,Ohio,39057,48,4 +2020-05-04,Greene,Ohio,39057,49,4 +2020-05-05,Greene,Ohio,39057,50,5 +2020-05-06,Greene,Ohio,39057,50,5 +2020-05-07,Greene,Ohio,39057,52,5 +2020-05-08,Greene,Ohio,39057,52,5 +2020-05-09,Greene,Ohio,39057,53,5 +2020-05-10,Greene,Ohio,39057,59,5 +2020-05-11,Greene,Ohio,39057,63,5 +2020-05-12,Greene,Ohio,39057,67,5 +2020-05-13,Greene,Ohio,39057,68,5 +2020-05-14,Greene,Ohio,39057,70,5 +2020-05-15,Greene,Ohio,39057,73,5 +2020-05-16,Greene,Ohio,39057,75,5 +2020-05-17,Greene,Ohio,39057,75,5 +2020-05-18,Greene,Ohio,39057,78,5 +2020-05-19,Greene,Ohio,39057,78,5 +2020-05-20,Greene,Ohio,39057,85,5 +2020-05-21,Greene,Ohio,39057,86,5 +2020-05-22,Greene,Ohio,39057,86,5 +2020-05-23,Greene,Ohio,39057,92,5 +2020-05-24,Greene,Ohio,39057,93,5 +2020-05-25,Greene,Ohio,39057,93,5 +2020-05-26,Greene,Ohio,39057,94,5 +2020-05-27,Greene,Ohio,39057,98,5 +2020-05-28,Greene,Ohio,39057,101,5 +2020-05-29,Greene,Ohio,39057,101,5 +2020-05-30,Greene,Ohio,39057,101,5 +2020-05-31,Greene,Ohio,39057,101,5 +2020-06-01,Greene,Ohio,39057,103,5 +2020-06-02,Greene,Ohio,39057,102,5 +2020-06-03,Greene,Ohio,39057,102,5 +2020-06-04,Greene,Ohio,39057,105,5 +2020-06-05,Greene,Ohio,39057,106,5 +2020-06-06,Greene,Ohio,39057,108,5 +2020-06-07,Greene,Ohio,39057,111,5 +2020-06-08,Greene,Ohio,39057,114,5 +2020-06-09,Greene,Ohio,39057,120,6 +2020-06-10,Greene,Ohio,39057,122,6 +2020-06-11,Greene,Ohio,39057,129,6 +2020-06-12,Greene,Ohio,39057,132,6 +2020-06-13,Greene,Ohio,39057,133,6 +2020-06-14,Greene,Ohio,39057,135,6 +2020-06-15,Greene,Ohio,39057,143,6 +2020-06-16,Greene,Ohio,39057,151,6 +2020-06-17,Greene,Ohio,39057,150,6 +2020-06-18,Greene,Ohio,39057,156,6 +2020-06-19,Greene,Ohio,39057,158,8 +2020-06-20,Greene,Ohio,39057,165,8 +2020-06-21,Greene,Ohio,39057,169,8 +2020-06-22,Greene,Ohio,39057,175,8 +2020-06-23,Greene,Ohio,39057,177,8 +2020-06-24,Greene,Ohio,39057,183,9 +2020-06-25,Greene,Ohio,39057,187,9 +2020-06-26,Greene,Ohio,39057,189,9 +2020-06-27,Greene,Ohio,39057,193,9 +2020-06-28,Greene,Ohio,39057,194,9 +2020-06-29,Greene,Ohio,39057,201,9 +2020-06-30,Greene,Ohio,39057,208,9 +2020-07-01,Greene,Ohio,39057,222,9 +2020-07-02,Greene,Ohio,39057,222,9 +2020-07-03,Greene,Ohio,39057,244,9 +2020-07-04,Greene,Ohio,39057,248,9 +2020-07-05,Greene,Ohio,39057,251,9 +2020-07-06,Greene,Ohio,39057,258,9 +2020-07-07,Greene,Ohio,39057,276,9 +2020-07-08,Greene,Ohio,39057,287,9 +2020-07-09,Greene,Ohio,39057,300,9 +2020-04-02,Guernsey,Ohio,39059,1,0 +2020-04-03,Guernsey,Ohio,39059,1,0 +2020-04-04,Guernsey,Ohio,39059,1,0 +2020-04-05,Guernsey,Ohio,39059,1,0 +2020-04-06,Guernsey,Ohio,39059,1,0 +2020-04-07,Guernsey,Ohio,39059,1,0 +2020-04-08,Guernsey,Ohio,39059,2,0 +2020-04-09,Guernsey,Ohio,39059,4,0 +2020-04-10,Guernsey,Ohio,39059,5,0 +2020-04-11,Guernsey,Ohio,39059,5,0 +2020-04-12,Guernsey,Ohio,39059,6,0 +2020-04-13,Guernsey,Ohio,39059,6,0 +2020-04-14,Guernsey,Ohio,39059,7,0 +2020-04-15,Guernsey,Ohio,39059,10,0 +2020-04-16,Guernsey,Ohio,39059,10,0 +2020-04-17,Guernsey,Ohio,39059,10,0 +2020-04-18,Guernsey,Ohio,39059,10,0 +2020-04-19,Guernsey,Ohio,39059,11,0 +2020-04-20,Guernsey,Ohio,39059,12,0 +2020-04-21,Guernsey,Ohio,39059,12,0 +2020-04-22,Guernsey,Ohio,39059,15,0 +2020-04-23,Guernsey,Ohio,39059,15,0 +2020-04-24,Guernsey,Ohio,39059,15,0 +2020-04-25,Guernsey,Ohio,39059,15,0 +2020-04-26,Guernsey,Ohio,39059,15,0 +2020-04-27,Guernsey,Ohio,39059,15,0 +2020-04-28,Guernsey,Ohio,39059,15,0 +2020-04-29,Guernsey,Ohio,39059,15,0 +2020-04-30,Guernsey,Ohio,39059,15,0 +2020-05-01,Guernsey,Ohio,39059,15,0 +2020-05-02,Guernsey,Ohio,39059,16,0 +2020-05-03,Guernsey,Ohio,39059,19,0 +2020-05-04,Guernsey,Ohio,39059,19,0 +2020-05-05,Guernsey,Ohio,39059,19,0 +2020-05-06,Guernsey,Ohio,39059,20,0 +2020-05-07,Guernsey,Ohio,39059,20,0 +2020-05-08,Guernsey,Ohio,39059,20,0 +2020-05-09,Guernsey,Ohio,39059,21,0 +2020-05-10,Guernsey,Ohio,39059,21,0 +2020-05-11,Guernsey,Ohio,39059,21,0 +2020-05-12,Guernsey,Ohio,39059,21,0 +2020-05-13,Guernsey,Ohio,39059,21,0 +2020-05-14,Guernsey,Ohio,39059,22,0 +2020-05-15,Guernsey,Ohio,39059,22,0 +2020-05-16,Guernsey,Ohio,39059,24,0 +2020-05-17,Guernsey,Ohio,39059,24,0 +2020-05-18,Guernsey,Ohio,39059,25,0 +2020-05-19,Guernsey,Ohio,39059,26,0 +2020-05-20,Guernsey,Ohio,39059,28,0 +2020-05-21,Guernsey,Ohio,39059,29,0 +2020-05-22,Guernsey,Ohio,39059,29,0 +2020-05-23,Guernsey,Ohio,39059,30,0 +2020-05-24,Guernsey,Ohio,39059,31,0 +2020-05-25,Guernsey,Ohio,39059,31,0 +2020-05-26,Guernsey,Ohio,39059,32,0 +2020-05-27,Guernsey,Ohio,39059,33,0 +2020-05-28,Guernsey,Ohio,39059,34,0 +2020-05-29,Guernsey,Ohio,39059,34,0 +2020-05-30,Guernsey,Ohio,39059,35,1 +2020-05-31,Guernsey,Ohio,39059,35,1 +2020-06-01,Guernsey,Ohio,39059,36,1 +2020-06-02,Guernsey,Ohio,39059,36,2 +2020-06-03,Guernsey,Ohio,39059,36,2 +2020-06-04,Guernsey,Ohio,39059,38,2 +2020-06-05,Guernsey,Ohio,39059,38,2 +2020-06-06,Guernsey,Ohio,39059,41,2 +2020-06-07,Guernsey,Ohio,39059,42,2 +2020-06-08,Guernsey,Ohio,39059,43,2 +2020-06-09,Guernsey,Ohio,39059,44,2 +2020-06-10,Guernsey,Ohio,39059,44,2 +2020-06-11,Guernsey,Ohio,39059,44,2 +2020-06-12,Guernsey,Ohio,39059,44,3 +2020-06-13,Guernsey,Ohio,39059,44,3 +2020-06-14,Guernsey,Ohio,39059,44,3 +2020-06-15,Guernsey,Ohio,39059,44,3 +2020-06-16,Guernsey,Ohio,39059,44,3 +2020-06-17,Guernsey,Ohio,39059,44,3 +2020-06-18,Guernsey,Ohio,39059,44,3 +2020-06-19,Guernsey,Ohio,39059,44,3 +2020-06-20,Guernsey,Ohio,39059,44,3 +2020-06-21,Guernsey,Ohio,39059,45,3 +2020-06-22,Guernsey,Ohio,39059,46,3 +2020-06-23,Guernsey,Ohio,39059,46,3 +2020-06-24,Guernsey,Ohio,39059,47,3 +2020-06-25,Guernsey,Ohio,39059,49,3 +2020-06-26,Guernsey,Ohio,39059,51,3 +2020-06-27,Guernsey,Ohio,39059,51,3 +2020-06-28,Guernsey,Ohio,39059,58,3 +2020-06-29,Guernsey,Ohio,39059,59,3 +2020-06-30,Guernsey,Ohio,39059,59,3 +2020-07-01,Guernsey,Ohio,39059,60,3 +2020-07-02,Guernsey,Ohio,39059,60,3 +2020-07-03,Guernsey,Ohio,39059,67,3 +2020-07-04,Guernsey,Ohio,39059,68,3 +2020-07-05,Guernsey,Ohio,39059,70,3 +2020-07-06,Guernsey,Ohio,39059,74,3 +2020-07-07,Guernsey,Ohio,39059,74,3 +2020-07-08,Guernsey,Ohio,39059,76,3 +2020-07-09,Guernsey,Ohio,39059,76,3 +2020-03-19,Hamilton,Ohio,39061,2,0 +2020-03-20,Hamilton,Ohio,39061,7,0 +2020-03-21,Hamilton,Ohio,39061,8,0 +2020-03-22,Hamilton,Ohio,39061,19,0 +2020-03-23,Hamilton,Ohio,39061,26,0 +2020-03-24,Hamilton,Ohio,39061,38,0 +2020-03-25,Hamilton,Ohio,39061,48,0 +2020-03-26,Hamilton,Ohio,39061,53,0 +2020-03-27,Hamilton,Ohio,39061,63,0 +2020-03-28,Hamilton,Ohio,39061,71,0 +2020-03-29,Hamilton,Ohio,39061,85,0 +2020-03-30,Hamilton,Ohio,39061,101,0 +2020-03-31,Hamilton,Ohio,39061,124,0 +2020-04-01,Hamilton,Ohio,39061,154,0 +2020-04-02,Hamilton,Ohio,39061,178,2 +2020-04-03,Hamilton,Ohio,39061,220,2 +2020-04-04,Hamilton,Ohio,39061,288,2 +2020-04-05,Hamilton,Ohio,39061,319,3 +2020-04-06,Hamilton,Ohio,39061,394,9 +2020-04-07,Hamilton,Ohio,39061,411,12 +2020-04-08,Hamilton,Ohio,39061,437,13 +2020-04-09,Hamilton,Ohio,39061,473,14 +2020-04-10,Hamilton,Ohio,39061,504,14 +2020-04-11,Hamilton,Ohio,39061,529,17 +2020-04-12,Hamilton,Ohio,39061,535,17 +2020-04-13,Hamilton,Ohio,39061,558,21 +2020-04-14,Hamilton,Ohio,39061,576,24 +2020-04-15,Hamilton,Ohio,39061,594,27 +2020-04-16,Hamilton,Ohio,39061,615,29 +2020-04-17,Hamilton,Ohio,39061,658,30 +2020-04-18,Hamilton,Ohio,39061,701,30 +2020-04-19,Hamilton,Ohio,39061,718,33 +2020-04-20,Hamilton,Ohio,39061,735,37 +2020-04-21,Hamilton,Ohio,39061,768,39 +2020-04-22,Hamilton,Ohio,39061,785,45 +2020-04-23,Hamilton,Ohio,39061,868,47 +2020-04-24,Hamilton,Ohio,39061,932,51 +2020-04-25,Hamilton,Ohio,39061,975,54 +2020-04-26,Hamilton,Ohio,39061,1005,56 +2020-04-27,Hamilton,Ohio,39061,1048,56 +2020-04-28,Hamilton,Ohio,39061,1091,58 +2020-04-29,Hamilton,Ohio,39061,1150,68 +2020-04-30,Hamilton,Ohio,39061,1218,71 +2020-05-01,Hamilton,Ohio,39061,1297,75 +2020-05-02,Hamilton,Ohio,39061,1353,78 +2020-05-03,Hamilton,Ohio,39061,1380,80 +2020-05-04,Hamilton,Ohio,39061,1434,80 +2020-05-05,Hamilton,Ohio,39061,1480,83 +2020-05-06,Hamilton,Ohio,39061,1527,93 +2020-05-07,Hamilton,Ohio,39061,1572,93 +2020-05-08,Hamilton,Ohio,39061,1664,100 +2020-05-09,Hamilton,Ohio,39061,1731,99 +2020-05-10,Hamilton,Ohio,39061,1757,101 +2020-05-11,Hamilton,Ohio,39061,1823,101 +2020-05-12,Hamilton,Ohio,39061,1859,102 +2020-05-13,Hamilton,Ohio,39061,1886,105 +2020-05-14,Hamilton,Ohio,39061,1927,105 +2020-05-15,Hamilton,Ohio,39061,1961,109 +2020-05-16,Hamilton,Ohio,39061,2007,111 +2020-05-17,Hamilton,Ohio,39061,2047,111 +2020-05-18,Hamilton,Ohio,39061,2082,112 +2020-05-19,Hamilton,Ohio,39061,2138,117 +2020-05-20,Hamilton,Ohio,39061,2167,117 +2020-05-21,Hamilton,Ohio,39061,2228,123 +2020-05-22,Hamilton,Ohio,39061,2279,124 +2020-05-23,Hamilton,Ohio,39061,2349,128 +2020-05-24,Hamilton,Ohio,39061,2403,128 +2020-05-25,Hamilton,Ohio,39061,2458,128 +2020-05-26,Hamilton,Ohio,39061,2492,128 +2020-05-27,Hamilton,Ohio,39061,2523,131 +2020-05-28,Hamilton,Ohio,39061,2555,135 +2020-05-29,Hamilton,Ohio,39061,2603,147 +2020-05-30,Hamilton,Ohio,39061,2642,148 +2020-05-31,Hamilton,Ohio,39061,2672,150 +2020-06-01,Hamilton,Ohio,39061,2698,151 +2020-06-02,Hamilton,Ohio,39061,2721,156 +2020-06-03,Hamilton,Ohio,39061,2739,164 +2020-06-04,Hamilton,Ohio,39061,2767,167 +2020-06-05,Hamilton,Ohio,39061,2811,171 +2020-06-06,Hamilton,Ohio,39061,2831,171 +2020-06-07,Hamilton,Ohio,39061,2860,171 +2020-06-08,Hamilton,Ohio,39061,2891,172 +2020-06-09,Hamilton,Ohio,39061,2918,173 +2020-06-10,Hamilton,Ohio,39061,2975,174 +2020-06-11,Hamilton,Ohio,39061,3011,177 +2020-06-12,Hamilton,Ohio,39061,3078,178 +2020-06-13,Hamilton,Ohio,39061,3130,179 +2020-06-14,Hamilton,Ohio,39061,3185,179 +2020-06-15,Hamilton,Ohio,39061,3250,179 +2020-06-16,Hamilton,Ohio,39061,3316,181 +2020-06-17,Hamilton,Ohio,39061,3374,181 +2020-06-18,Hamilton,Ohio,39061,3508,181 +2020-06-19,Hamilton,Ohio,39061,3634,184 +2020-06-20,Hamilton,Ohio,39061,3744,186 +2020-06-21,Hamilton,Ohio,39061,3829,186 +2020-06-22,Hamilton,Ohio,39061,4020,187 +2020-06-23,Hamilton,Ohio,39061,4098,188 +2020-06-24,Hamilton,Ohio,39061,4189,189 +2020-06-25,Hamilton,Ohio,39061,4337,191 +2020-06-26,Hamilton,Ohio,39061,4491,191 +2020-06-27,Hamilton,Ohio,39061,4661,191 +2020-06-28,Hamilton,Ohio,39061,4794,191 +2020-06-29,Hamilton,Ohio,39061,4922,191 +2020-06-30,Hamilton,Ohio,39061,5010,198 +2020-07-01,Hamilton,Ohio,39061,5224,198 +2020-07-02,Hamilton,Ohio,39061,5224,198 +2020-07-03,Hamilton,Ohio,39061,5605,197 +2020-07-04,Hamilton,Ohio,39061,5770,197 +2020-07-05,Hamilton,Ohio,39061,5924,197 +2020-07-06,Hamilton,Ohio,39061,6019,198 +2020-07-07,Hamilton,Ohio,39061,6158,204 +2020-07-08,Hamilton,Ohio,39061,6287,206 +2020-07-09,Hamilton,Ohio,39061,6396,206 +2020-03-22,Hancock,Ohio,39063,1,0 +2020-03-23,Hancock,Ohio,39063,1,0 +2020-03-24,Hancock,Ohio,39063,1,0 +2020-03-25,Hancock,Ohio,39063,1,0 +2020-03-26,Hancock,Ohio,39063,2,0 +2020-03-27,Hancock,Ohio,39063,2,0 +2020-03-28,Hancock,Ohio,39063,3,0 +2020-03-29,Hancock,Ohio,39063,3,0 +2020-03-30,Hancock,Ohio,39063,3,0 +2020-03-31,Hancock,Ohio,39063,5,0 +2020-04-01,Hancock,Ohio,39063,6,0 +2020-04-02,Hancock,Ohio,39063,8,0 +2020-04-03,Hancock,Ohio,39063,9,0 +2020-04-04,Hancock,Ohio,39063,9,0 +2020-04-05,Hancock,Ohio,39063,11,0 +2020-04-06,Hancock,Ohio,39063,14,0 +2020-04-07,Hancock,Ohio,39063,15,0 +2020-04-08,Hancock,Ohio,39063,17,0 +2020-04-09,Hancock,Ohio,39063,16,0 +2020-04-10,Hancock,Ohio,39063,17,1 +2020-04-11,Hancock,Ohio,39063,20,1 +2020-04-12,Hancock,Ohio,39063,19,1 +2020-04-13,Hancock,Ohio,39063,19,1 +2020-04-14,Hancock,Ohio,39063,20,1 +2020-04-15,Hancock,Ohio,39063,23,1 +2020-04-16,Hancock,Ohio,39063,25,1 +2020-04-17,Hancock,Ohio,39063,27,1 +2020-04-18,Hancock,Ohio,39063,30,1 +2020-04-19,Hancock,Ohio,39063,29,1 +2020-04-20,Hancock,Ohio,39063,30,1 +2020-04-21,Hancock,Ohio,39063,29,1 +2020-04-22,Hancock,Ohio,39063,30,1 +2020-04-23,Hancock,Ohio,39063,32,1 +2020-04-24,Hancock,Ohio,39063,34,1 +2020-04-25,Hancock,Ohio,39063,34,1 +2020-04-26,Hancock,Ohio,39063,34,1 +2020-04-27,Hancock,Ohio,39063,35,1 +2020-04-28,Hancock,Ohio,39063,37,1 +2020-04-29,Hancock,Ohio,39063,37,1 +2020-04-30,Hancock,Ohio,39063,37,1 +2020-05-01,Hancock,Ohio,39063,37,1 +2020-05-02,Hancock,Ohio,39063,38,1 +2020-05-03,Hancock,Ohio,39063,38,1 +2020-05-04,Hancock,Ohio,39063,39,1 +2020-05-05,Hancock,Ohio,39063,39,1 +2020-05-06,Hancock,Ohio,39063,39,1 +2020-05-07,Hancock,Ohio,39063,39,1 +2020-05-08,Hancock,Ohio,39063,39,1 +2020-05-09,Hancock,Ohio,39063,39,1 +2020-05-10,Hancock,Ohio,39063,39,1 +2020-05-11,Hancock,Ohio,39063,39,1 +2020-05-12,Hancock,Ohio,39063,39,1 +2020-05-13,Hancock,Ohio,39063,40,1 +2020-05-14,Hancock,Ohio,39063,42,1 +2020-05-15,Hancock,Ohio,39063,44,1 +2020-05-16,Hancock,Ohio,39063,45,1 +2020-05-17,Hancock,Ohio,39063,45,1 +2020-05-18,Hancock,Ohio,39063,46,1 +2020-05-19,Hancock,Ohio,39063,46,1 +2020-05-20,Hancock,Ohio,39063,46,1 +2020-05-21,Hancock,Ohio,39063,47,1 +2020-05-22,Hancock,Ohio,39063,47,1 +2020-05-23,Hancock,Ohio,39063,48,1 +2020-05-24,Hancock,Ohio,39063,48,1 +2020-05-25,Hancock,Ohio,39063,48,1 +2020-05-26,Hancock,Ohio,39063,48,1 +2020-05-27,Hancock,Ohio,39063,48,1 +2020-05-28,Hancock,Ohio,39063,51,2 +2020-05-29,Hancock,Ohio,39063,50,1 +2020-05-30,Hancock,Ohio,39063,50,1 +2020-05-31,Hancock,Ohio,39063,50,1 +2020-06-01,Hancock,Ohio,39063,50,1 +2020-06-02,Hancock,Ohio,39063,51,1 +2020-06-03,Hancock,Ohio,39063,51,1 +2020-06-04,Hancock,Ohio,39063,53,1 +2020-06-05,Hancock,Ohio,39063,53,1 +2020-06-06,Hancock,Ohio,39063,54,1 +2020-06-07,Hancock,Ohio,39063,56,1 +2020-06-08,Hancock,Ohio,39063,58,1 +2020-06-09,Hancock,Ohio,39063,60,1 +2020-06-10,Hancock,Ohio,39063,60,1 +2020-06-11,Hancock,Ohio,39063,61,1 +2020-06-12,Hancock,Ohio,39063,61,1 +2020-06-13,Hancock,Ohio,39063,61,1 +2020-06-14,Hancock,Ohio,39063,61,1 +2020-06-15,Hancock,Ohio,39063,61,1 +2020-06-16,Hancock,Ohio,39063,61,1 +2020-06-17,Hancock,Ohio,39063,61,1 +2020-06-18,Hancock,Ohio,39063,62,1 +2020-06-19,Hancock,Ohio,39063,62,1 +2020-06-20,Hancock,Ohio,39063,62,1 +2020-06-21,Hancock,Ohio,39063,62,1 +2020-06-22,Hancock,Ohio,39063,63,1 +2020-06-23,Hancock,Ohio,39063,64,1 +2020-06-24,Hancock,Ohio,39063,65,1 +2020-06-25,Hancock,Ohio,39063,68,1 +2020-06-26,Hancock,Ohio,39063,69,1 +2020-06-27,Hancock,Ohio,39063,71,1 +2020-06-28,Hancock,Ohio,39063,69,1 +2020-06-29,Hancock,Ohio,39063,72,1 +2020-06-30,Hancock,Ohio,39063,76,1 +2020-07-01,Hancock,Ohio,39063,76,1 +2020-07-02,Hancock,Ohio,39063,76,1 +2020-07-03,Hancock,Ohio,39063,78,1 +2020-07-04,Hancock,Ohio,39063,78,1 +2020-07-05,Hancock,Ohio,39063,78,1 +2020-07-06,Hancock,Ohio,39063,79,1 +2020-07-07,Hancock,Ohio,39063,79,1 +2020-07-08,Hancock,Ohio,39063,83,1 +2020-07-09,Hancock,Ohio,39063,84,1 +2020-04-02,Hardin,Ohio,39065,1,0 +2020-04-03,Hardin,Ohio,39065,1,0 +2020-04-04,Hardin,Ohio,39065,1,0 +2020-04-05,Hardin,Ohio,39065,1,0 +2020-04-06,Hardin,Ohio,39065,2,0 +2020-04-07,Hardin,Ohio,39065,2,0 +2020-04-08,Hardin,Ohio,39065,2,0 +2020-04-09,Hardin,Ohio,39065,3,0 +2020-04-10,Hardin,Ohio,39065,4,0 +2020-04-11,Hardin,Ohio,39065,4,0 +2020-04-12,Hardin,Ohio,39065,5,0 +2020-04-13,Hardin,Ohio,39065,8,0 +2020-04-14,Hardin,Ohio,39065,11,0 +2020-04-15,Hardin,Ohio,39065,11,0 +2020-04-16,Hardin,Ohio,39065,12,0 +2020-04-17,Hardin,Ohio,39065,13,0 +2020-04-18,Hardin,Ohio,39065,15,0 +2020-04-19,Hardin,Ohio,39065,17,0 +2020-04-20,Hardin,Ohio,39065,17,0 +2020-04-21,Hardin,Ohio,39065,20,0 +2020-04-22,Hardin,Ohio,39065,20,0 +2020-04-23,Hardin,Ohio,39065,20,0 +2020-04-24,Hardin,Ohio,39065,21,0 +2020-04-25,Hardin,Ohio,39065,23,0 +2020-04-26,Hardin,Ohio,39065,23,0 +2020-04-27,Hardin,Ohio,39065,22,0 +2020-04-28,Hardin,Ohio,39065,24,0 +2020-04-29,Hardin,Ohio,39065,24,0 +2020-04-30,Hardin,Ohio,39065,25,0 +2020-05-01,Hardin,Ohio,39065,25,0 +2020-05-02,Hardin,Ohio,39065,26,0 +2020-05-03,Hardin,Ohio,39065,26,0 +2020-05-04,Hardin,Ohio,39065,26,0 +2020-05-05,Hardin,Ohio,39065,26,0 +2020-05-06,Hardin,Ohio,39065,26,0 +2020-05-07,Hardin,Ohio,39065,26,0 +2020-05-08,Hardin,Ohio,39065,27,0 +2020-05-09,Hardin,Ohio,39065,27,0 +2020-05-10,Hardin,Ohio,39065,28,0 +2020-05-11,Hardin,Ohio,39065,28,0 +2020-05-12,Hardin,Ohio,39065,28,0 +2020-05-13,Hardin,Ohio,39065,29,0 +2020-05-14,Hardin,Ohio,39065,30,0 +2020-05-15,Hardin,Ohio,39065,29,0 +2020-05-16,Hardin,Ohio,39065,30,0 +2020-05-17,Hardin,Ohio,39065,30,0 +2020-05-18,Hardin,Ohio,39065,30,0 +2020-05-19,Hardin,Ohio,39065,30,0 +2020-05-20,Hardin,Ohio,39065,30,0 +2020-05-21,Hardin,Ohio,39065,33,0 +2020-05-22,Hardin,Ohio,39065,37,0 +2020-05-23,Hardin,Ohio,39065,38,0 +2020-05-24,Hardin,Ohio,39065,40,0 +2020-05-25,Hardin,Ohio,39065,41,0 +2020-05-26,Hardin,Ohio,39065,41,0 +2020-05-27,Hardin,Ohio,39065,41,0 +2020-05-28,Hardin,Ohio,39065,42,0 +2020-05-29,Hardin,Ohio,39065,45,0 +2020-05-30,Hardin,Ohio,39065,60,0 +2020-05-31,Hardin,Ohio,39065,61,0 +2020-06-01,Hardin,Ohio,39065,61,0 +2020-06-02,Hardin,Ohio,39065,61,0 +2020-06-03,Hardin,Ohio,39065,64,0 +2020-06-04,Hardin,Ohio,39065,71,0 +2020-06-05,Hardin,Ohio,39065,73,0 +2020-06-06,Hardin,Ohio,39065,73,0 +2020-06-07,Hardin,Ohio,39065,73,1 +2020-06-08,Hardin,Ohio,39065,76,3 +2020-06-09,Hardin,Ohio,39065,77,3 +2020-06-10,Hardin,Ohio,39065,78,3 +2020-06-11,Hardin,Ohio,39065,87,4 +2020-06-12,Hardin,Ohio,39065,87,4 +2020-06-13,Hardin,Ohio,39065,92,4 +2020-06-14,Hardin,Ohio,39065,93,4 +2020-06-15,Hardin,Ohio,39065,93,4 +2020-06-16,Hardin,Ohio,39065,94,4 +2020-06-17,Hardin,Ohio,39065,96,4 +2020-06-18,Hardin,Ohio,39065,105,5 +2020-06-19,Hardin,Ohio,39065,106,5 +2020-06-20,Hardin,Ohio,39065,107,10 +2020-06-21,Hardin,Ohio,39065,107,10 +2020-06-22,Hardin,Ohio,39065,107,10 +2020-06-23,Hardin,Ohio,39065,107,10 +2020-06-24,Hardin,Ohio,39065,107,11 +2020-06-25,Hardin,Ohio,39065,108,11 +2020-06-26,Hardin,Ohio,39065,108,12 +2020-06-27,Hardin,Ohio,39065,111,12 +2020-06-28,Hardin,Ohio,39065,111,12 +2020-06-29,Hardin,Ohio,39065,111,12 +2020-06-30,Hardin,Ohio,39065,111,12 +2020-07-01,Hardin,Ohio,39065,113,12 +2020-07-02,Hardin,Ohio,39065,113,12 +2020-07-03,Hardin,Ohio,39065,120,12 +2020-07-04,Hardin,Ohio,39065,120,12 +2020-07-05,Hardin,Ohio,39065,123,12 +2020-07-06,Hardin,Ohio,39065,123,12 +2020-07-07,Hardin,Ohio,39065,123,12 +2020-07-08,Hardin,Ohio,39065,123,12 +2020-07-09,Hardin,Ohio,39065,123,12 +2020-04-15,Harrison,Ohio,39067,1,0 +2020-04-16,Harrison,Ohio,39067,1,0 +2020-04-17,Harrison,Ohio,39067,2,0 +2020-04-18,Harrison,Ohio,39067,2,0 +2020-04-19,Harrison,Ohio,39067,2,0 +2020-04-20,Harrison,Ohio,39067,2,0 +2020-04-21,Harrison,Ohio,39067,2,0 +2020-04-22,Harrison,Ohio,39067,2,0 +2020-04-23,Harrison,Ohio,39067,2,0 +2020-04-24,Harrison,Ohio,39067,2,0 +2020-04-25,Harrison,Ohio,39067,2,0 +2020-04-26,Harrison,Ohio,39067,4,0 +2020-04-27,Harrison,Ohio,39067,4,0 +2020-04-28,Harrison,Ohio,39067,4,0 +2020-04-29,Harrison,Ohio,39067,4,0 +2020-04-30,Harrison,Ohio,39067,4,0 +2020-05-01,Harrison,Ohio,39067,4,0 +2020-05-02,Harrison,Ohio,39067,5,0 +2020-05-03,Harrison,Ohio,39067,6,0 +2020-05-04,Harrison,Ohio,39067,6,0 +2020-05-05,Harrison,Ohio,39067,6,0 +2020-05-06,Harrison,Ohio,39067,6,0 +2020-05-07,Harrison,Ohio,39067,6,0 +2020-05-08,Harrison,Ohio,39067,6,0 +2020-05-09,Harrison,Ohio,39067,6,0 +2020-05-10,Harrison,Ohio,39067,6,0 +2020-05-11,Harrison,Ohio,39067,6,0 +2020-05-12,Harrison,Ohio,39067,7,0 +2020-05-13,Harrison,Ohio,39067,8,0 +2020-05-14,Harrison,Ohio,39067,8,0 +2020-05-15,Harrison,Ohio,39067,9,0 +2020-05-16,Harrison,Ohio,39067,9,0 +2020-05-17,Harrison,Ohio,39067,9,0 +2020-05-18,Harrison,Ohio,39067,9,0 +2020-05-19,Harrison,Ohio,39067,10,0 +2020-05-20,Harrison,Ohio,39067,10,0 +2020-05-21,Harrison,Ohio,39067,10,0 +2020-05-22,Harrison,Ohio,39067,10,0 +2020-05-23,Harrison,Ohio,39067,10,0 +2020-05-24,Harrison,Ohio,39067,10,0 +2020-05-25,Harrison,Ohio,39067,10,0 +2020-05-26,Harrison,Ohio,39067,10,0 +2020-05-27,Harrison,Ohio,39067,10,0 +2020-05-28,Harrison,Ohio,39067,10,0 +2020-05-29,Harrison,Ohio,39067,10,0 +2020-05-30,Harrison,Ohio,39067,10,0 +2020-05-31,Harrison,Ohio,39067,10,0 +2020-06-01,Harrison,Ohio,39067,10,0 +2020-06-02,Harrison,Ohio,39067,10,0 +2020-06-03,Harrison,Ohio,39067,10,0 +2020-06-04,Harrison,Ohio,39067,10,0 +2020-06-05,Harrison,Ohio,39067,10,0 +2020-06-06,Harrison,Ohio,39067,10,0 +2020-06-07,Harrison,Ohio,39067,10,0 +2020-06-08,Harrison,Ohio,39067,10,0 +2020-06-09,Harrison,Ohio,39067,10,0 +2020-06-10,Harrison,Ohio,39067,10,0 +2020-06-11,Harrison,Ohio,39067,10,0 +2020-06-12,Harrison,Ohio,39067,10,0 +2020-06-13,Harrison,Ohio,39067,10,0 +2020-06-14,Harrison,Ohio,39067,10,0 +2020-06-15,Harrison,Ohio,39067,10,0 +2020-06-16,Harrison,Ohio,39067,11,0 +2020-06-17,Harrison,Ohio,39067,11,0 +2020-06-18,Harrison,Ohio,39067,11,0 +2020-06-19,Harrison,Ohio,39067,11,0 +2020-06-20,Harrison,Ohio,39067,11,1 +2020-06-21,Harrison,Ohio,39067,11,1 +2020-06-22,Harrison,Ohio,39067,11,1 +2020-06-23,Harrison,Ohio,39067,11,1 +2020-06-24,Harrison,Ohio,39067,12,1 +2020-06-25,Harrison,Ohio,39067,12,1 +2020-06-26,Harrison,Ohio,39067,12,1 +2020-06-27,Harrison,Ohio,39067,12,1 +2020-06-28,Harrison,Ohio,39067,12,1 +2020-06-29,Harrison,Ohio,39067,12,1 +2020-06-30,Harrison,Ohio,39067,12,1 +2020-07-01,Harrison,Ohio,39067,12,1 +2020-07-02,Harrison,Ohio,39067,12,1 +2020-07-03,Harrison,Ohio,39067,12,1 +2020-07-04,Harrison,Ohio,39067,12,1 +2020-07-05,Harrison,Ohio,39067,12,1 +2020-07-06,Harrison,Ohio,39067,12,1 +2020-07-07,Harrison,Ohio,39067,12,1 +2020-07-08,Harrison,Ohio,39067,12,1 +2020-07-09,Harrison,Ohio,39067,12,1 +2020-04-08,Henry,Ohio,39069,1,0 +2020-04-09,Henry,Ohio,39069,1,0 +2020-04-10,Henry,Ohio,39069,1,0 +2020-04-11,Henry,Ohio,39069,1,0 +2020-04-12,Henry,Ohio,39069,1,0 +2020-04-13,Henry,Ohio,39069,1,0 +2020-04-14,Henry,Ohio,39069,1,0 +2020-04-15,Henry,Ohio,39069,2,0 +2020-04-16,Henry,Ohio,39069,2,0 +2020-04-17,Henry,Ohio,39069,3,0 +2020-04-18,Henry,Ohio,39069,3,0 +2020-04-19,Henry,Ohio,39069,3,0 +2020-04-20,Henry,Ohio,39069,3,0 +2020-04-21,Henry,Ohio,39069,4,0 +2020-04-22,Henry,Ohio,39069,4,0 +2020-04-23,Henry,Ohio,39069,4,0 +2020-04-24,Henry,Ohio,39069,4,0 +2020-04-25,Henry,Ohio,39069,4,0 +2020-04-26,Henry,Ohio,39069,4,0 +2020-04-27,Henry,Ohio,39069,4,0 +2020-04-28,Henry,Ohio,39069,5,0 +2020-04-29,Henry,Ohio,39069,5,0 +2020-04-30,Henry,Ohio,39069,5,0 +2020-05-01,Henry,Ohio,39069,5,0 +2020-05-02,Henry,Ohio,39069,5,0 +2020-05-03,Henry,Ohio,39069,5,0 +2020-05-04,Henry,Ohio,39069,5,0 +2020-05-05,Henry,Ohio,39069,6,0 +2020-05-06,Henry,Ohio,39069,6,0 +2020-05-07,Henry,Ohio,39069,6,0 +2020-05-08,Henry,Ohio,39069,8,0 +2020-05-09,Henry,Ohio,39069,8,0 +2020-05-10,Henry,Ohio,39069,8,0 +2020-05-11,Henry,Ohio,39069,9,0 +2020-05-12,Henry,Ohio,39069,10,0 +2020-05-13,Henry,Ohio,39069,10,0 +2020-05-14,Henry,Ohio,39069,10,0 +2020-05-15,Henry,Ohio,39069,10,0 +2020-05-16,Henry,Ohio,39069,10,0 +2020-05-17,Henry,Ohio,39069,10,0 +2020-05-18,Henry,Ohio,39069,10,0 +2020-05-19,Henry,Ohio,39069,12,0 +2020-05-20,Henry,Ohio,39069,12,0 +2020-05-21,Henry,Ohio,39069,13,0 +2020-05-22,Henry,Ohio,39069,13,0 +2020-05-23,Henry,Ohio,39069,14,0 +2020-05-24,Henry,Ohio,39069,14,0 +2020-05-25,Henry,Ohio,39069,15,0 +2020-05-26,Henry,Ohio,39069,15,0 +2020-05-27,Henry,Ohio,39069,15,0 +2020-05-28,Henry,Ohio,39069,15,0 +2020-05-29,Henry,Ohio,39069,15,0 +2020-05-30,Henry,Ohio,39069,15,0 +2020-05-31,Henry,Ohio,39069,15,0 +2020-06-01,Henry,Ohio,39069,16,0 +2020-06-02,Henry,Ohio,39069,16,0 +2020-06-03,Henry,Ohio,39069,17,0 +2020-06-04,Henry,Ohio,39069,17,0 +2020-06-05,Henry,Ohio,39069,17,0 +2020-06-06,Henry,Ohio,39069,19,0 +2020-06-07,Henry,Ohio,39069,18,0 +2020-06-08,Henry,Ohio,39069,19,0 +2020-06-09,Henry,Ohio,39069,19,0 +2020-06-10,Henry,Ohio,39069,19,0 +2020-06-11,Henry,Ohio,39069,19,0 +2020-06-12,Henry,Ohio,39069,19,0 +2020-06-13,Henry,Ohio,39069,20,0 +2020-06-14,Henry,Ohio,39069,20,0 +2020-06-15,Henry,Ohio,39069,20,0 +2020-06-16,Henry,Ohio,39069,20,0 +2020-06-17,Henry,Ohio,39069,20,0 +2020-06-18,Henry,Ohio,39069,21,0 +2020-06-19,Henry,Ohio,39069,21,0 +2020-06-20,Henry,Ohio,39069,22,0 +2020-06-21,Henry,Ohio,39069,23,0 +2020-06-22,Henry,Ohio,39069,23,0 +2020-06-23,Henry,Ohio,39069,23,0 +2020-06-24,Henry,Ohio,39069,23,0 +2020-06-25,Henry,Ohio,39069,23,0 +2020-06-26,Henry,Ohio,39069,24,0 +2020-06-27,Henry,Ohio,39069,26,0 +2020-06-28,Henry,Ohio,39069,27,0 +2020-06-29,Henry,Ohio,39069,28,0 +2020-06-30,Henry,Ohio,39069,29,0 +2020-07-01,Henry,Ohio,39069,29,0 +2020-07-02,Henry,Ohio,39069,29,0 +2020-07-03,Henry,Ohio,39069,29,0 +2020-07-04,Henry,Ohio,39069,29,0 +2020-07-05,Henry,Ohio,39069,29,0 +2020-07-06,Henry,Ohio,39069,30,0 +2020-07-07,Henry,Ohio,39069,30,0 +2020-07-08,Henry,Ohio,39069,32,0 +2020-07-09,Henry,Ohio,39069,32,0 +2020-03-24,Highland,Ohio,39071,1,0 +2020-03-25,Highland,Ohio,39071,1,0 +2020-03-26,Highland,Ohio,39071,1,0 +2020-03-27,Highland,Ohio,39071,1,0 +2020-03-28,Highland,Ohio,39071,1,0 +2020-03-29,Highland,Ohio,39071,1,0 +2020-03-30,Highland,Ohio,39071,1,0 +2020-03-31,Highland,Ohio,39071,1,0 +2020-04-01,Highland,Ohio,39071,2,0 +2020-04-02,Highland,Ohio,39071,3,0 +2020-04-03,Highland,Ohio,39071,4,0 +2020-04-04,Highland,Ohio,39071,4,0 +2020-04-05,Highland,Ohio,39071,4,0 +2020-04-06,Highland,Ohio,39071,6,0 +2020-04-07,Highland,Ohio,39071,6,0 +2020-04-08,Highland,Ohio,39071,6,0 +2020-04-09,Highland,Ohio,39071,6,0 +2020-04-10,Highland,Ohio,39071,6,0 +2020-04-11,Highland,Ohio,39071,6,0 +2020-04-12,Highland,Ohio,39071,6,0 +2020-04-13,Highland,Ohio,39071,7,0 +2020-04-14,Highland,Ohio,39071,7,0 +2020-04-15,Highland,Ohio,39071,7,0 +2020-04-16,Highland,Ohio,39071,7,0 +2020-04-17,Highland,Ohio,39071,7,0 +2020-04-18,Highland,Ohio,39071,7,0 +2020-04-19,Highland,Ohio,39071,7,0 +2020-04-20,Highland,Ohio,39071,7,0 +2020-04-21,Highland,Ohio,39071,7,0 +2020-04-22,Highland,Ohio,39071,8,0 +2020-04-23,Highland,Ohio,39071,8,0 +2020-04-24,Highland,Ohio,39071,8,0 +2020-04-25,Highland,Ohio,39071,8,0 +2020-04-26,Highland,Ohio,39071,9,0 +2020-04-27,Highland,Ohio,39071,10,0 +2020-04-28,Highland,Ohio,39071,10,0 +2020-04-29,Highland,Ohio,39071,11,1 +2020-04-30,Highland,Ohio,39071,11,0 +2020-05-01,Highland,Ohio,39071,10,0 +2020-05-02,Highland,Ohio,39071,10,0 +2020-05-03,Highland,Ohio,39071,10,0 +2020-05-04,Highland,Ohio,39071,11,0 +2020-05-05,Highland,Ohio,39071,11,1 +2020-05-06,Highland,Ohio,39071,11,1 +2020-05-07,Highland,Ohio,39071,11,1 +2020-05-08,Highland,Ohio,39071,11,1 +2020-05-09,Highland,Ohio,39071,12,1 +2020-05-10,Highland,Ohio,39071,12,1 +2020-05-11,Highland,Ohio,39071,12,1 +2020-05-12,Highland,Ohio,39071,14,1 +2020-05-13,Highland,Ohio,39071,14,1 +2020-05-14,Highland,Ohio,39071,14,1 +2020-05-15,Highland,Ohio,39071,14,1 +2020-05-16,Highland,Ohio,39071,14,1 +2020-05-17,Highland,Ohio,39071,16,1 +2020-05-18,Highland,Ohio,39071,15,1 +2020-05-19,Highland,Ohio,39071,15,1 +2020-05-20,Highland,Ohio,39071,16,1 +2020-05-21,Highland,Ohio,39071,16,1 +2020-05-22,Highland,Ohio,39071,16,1 +2020-05-23,Highland,Ohio,39071,18,1 +2020-05-24,Highland,Ohio,39071,18,1 +2020-05-25,Highland,Ohio,39071,18,1 +2020-05-26,Highland,Ohio,39071,19,1 +2020-05-27,Highland,Ohio,39071,19,1 +2020-05-28,Highland,Ohio,39071,22,1 +2020-05-29,Highland,Ohio,39071,23,1 +2020-05-30,Highland,Ohio,39071,23,1 +2020-05-31,Highland,Ohio,39071,25,1 +2020-06-01,Highland,Ohio,39071,25,1 +2020-06-02,Highland,Ohio,39071,26,1 +2020-06-03,Highland,Ohio,39071,26,1 +2020-06-04,Highland,Ohio,39071,26,1 +2020-06-05,Highland,Ohio,39071,29,1 +2020-06-06,Highland,Ohio,39071,29,1 +2020-06-07,Highland,Ohio,39071,29,1 +2020-06-08,Highland,Ohio,39071,30,1 +2020-06-09,Highland,Ohio,39071,30,1 +2020-06-10,Highland,Ohio,39071,31,1 +2020-06-11,Highland,Ohio,39071,33,1 +2020-06-12,Highland,Ohio,39071,32,1 +2020-06-13,Highland,Ohio,39071,33,1 +2020-06-14,Highland,Ohio,39071,34,1 +2020-06-15,Highland,Ohio,39071,34,1 +2020-06-16,Highland,Ohio,39071,34,1 +2020-06-17,Highland,Ohio,39071,35,1 +2020-06-18,Highland,Ohio,39071,35,1 +2020-06-19,Highland,Ohio,39071,37,1 +2020-06-20,Highland,Ohio,39071,37,1 +2020-06-21,Highland,Ohio,39071,39,1 +2020-06-22,Highland,Ohio,39071,39,1 +2020-06-23,Highland,Ohio,39071,39,1 +2020-06-24,Highland,Ohio,39071,39,1 +2020-06-25,Highland,Ohio,39071,39,1 +2020-06-26,Highland,Ohio,39071,42,1 +2020-06-27,Highland,Ohio,39071,43,1 +2020-06-28,Highland,Ohio,39071,43,1 +2020-06-29,Highland,Ohio,39071,42,1 +2020-06-30,Highland,Ohio,39071,42,1 +2020-07-01,Highland,Ohio,39071,43,1 +2020-07-02,Highland,Ohio,39071,43,1 +2020-07-03,Highland,Ohio,39071,44,1 +2020-07-04,Highland,Ohio,39071,44,1 +2020-07-05,Highland,Ohio,39071,45,1 +2020-07-06,Highland,Ohio,39071,45,1 +2020-07-07,Highland,Ohio,39071,45,1 +2020-07-08,Highland,Ohio,39071,46,1 +2020-07-09,Highland,Ohio,39071,47,1 +2020-04-11,Hocking,Ohio,39073,2,0 +2020-04-12,Hocking,Ohio,39073,2,0 +2020-04-13,Hocking,Ohio,39073,2,0 +2020-04-14,Hocking,Ohio,39073,4,0 +2020-04-15,Hocking,Ohio,39073,3,0 +2020-04-16,Hocking,Ohio,39073,4,0 +2020-04-17,Hocking,Ohio,39073,4,0 +2020-04-18,Hocking,Ohio,39073,4,0 +2020-04-19,Hocking,Ohio,39073,4,0 +2020-04-20,Hocking,Ohio,39073,4,0 +2020-04-21,Hocking,Ohio,39073,5,0 +2020-04-22,Hocking,Ohio,39073,5,1 +2020-04-23,Hocking,Ohio,39073,5,1 +2020-04-24,Hocking,Ohio,39073,6,1 +2020-04-25,Hocking,Ohio,39073,11,1 +2020-04-26,Hocking,Ohio,39073,14,1 +2020-04-27,Hocking,Ohio,39073,16,1 +2020-04-28,Hocking,Ohio,39073,16,1 +2020-04-29,Hocking,Ohio,39073,16,1 +2020-04-30,Hocking,Ohio,39073,18,1 +2020-05-01,Hocking,Ohio,39073,18,1 +2020-05-02,Hocking,Ohio,39073,19,1 +2020-05-03,Hocking,Ohio,39073,19,1 +2020-05-04,Hocking,Ohio,39073,19,1 +2020-05-05,Hocking,Ohio,39073,19,1 +2020-05-06,Hocking,Ohio,39073,20,1 +2020-05-07,Hocking,Ohio,39073,20,1 +2020-05-08,Hocking,Ohio,39073,20,1 +2020-05-09,Hocking,Ohio,39073,20,1 +2020-05-10,Hocking,Ohio,39073,20,1 +2020-05-11,Hocking,Ohio,39073,22,1 +2020-05-12,Hocking,Ohio,39073,22,1 +2020-05-13,Hocking,Ohio,39073,28,1 +2020-05-14,Hocking,Ohio,39073,29,1 +2020-05-15,Hocking,Ohio,39073,31,2 +2020-05-16,Hocking,Ohio,39073,59,2 +2020-05-17,Hocking,Ohio,39073,61,2 +2020-05-18,Hocking,Ohio,39073,61,2 +2020-05-19,Hocking,Ohio,39073,61,2 +2020-05-20,Hocking,Ohio,39073,63,2 +2020-05-21,Hocking,Ohio,39073,63,2 +2020-05-22,Hocking,Ohio,39073,64,2 +2020-05-23,Hocking,Ohio,39073,64,3 +2020-05-24,Hocking,Ohio,39073,65,4 +2020-05-25,Hocking,Ohio,39073,65,4 +2020-05-26,Hocking,Ohio,39073,69,4 +2020-05-27,Hocking,Ohio,39073,69,4 +2020-05-28,Hocking,Ohio,39073,69,4 +2020-05-29,Hocking,Ohio,39073,69,4 +2020-05-30,Hocking,Ohio,39073,69,4 +2020-05-31,Hocking,Ohio,39073,69,4 +2020-06-01,Hocking,Ohio,39073,69,5 +2020-06-02,Hocking,Ohio,39073,70,5 +2020-06-03,Hocking,Ohio,39073,70,5 +2020-06-04,Hocking,Ohio,39073,70,5 +2020-06-05,Hocking,Ohio,39073,70,5 +2020-06-06,Hocking,Ohio,39073,71,5 +2020-06-07,Hocking,Ohio,39073,71,5 +2020-06-08,Hocking,Ohio,39073,74,5 +2020-06-09,Hocking,Ohio,39073,73,6 +2020-06-10,Hocking,Ohio,39073,73,7 +2020-06-11,Hocking,Ohio,39073,73,7 +2020-06-12,Hocking,Ohio,39073,73,7 +2020-06-13,Hocking,Ohio,39073,73,7 +2020-06-14,Hocking,Ohio,39073,73,7 +2020-06-15,Hocking,Ohio,39073,73,7 +2020-06-16,Hocking,Ohio,39073,73,7 +2020-06-17,Hocking,Ohio,39073,73,7 +2020-06-18,Hocking,Ohio,39073,73,7 +2020-06-19,Hocking,Ohio,39073,73,7 +2020-06-20,Hocking,Ohio,39073,73,7 +2020-06-21,Hocking,Ohio,39073,73,7 +2020-06-22,Hocking,Ohio,39073,74,7 +2020-06-23,Hocking,Ohio,39073,74,7 +2020-06-24,Hocking,Ohio,39073,74,7 +2020-06-25,Hocking,Ohio,39073,75,7 +2020-06-26,Hocking,Ohio,39073,76,7 +2020-06-27,Hocking,Ohio,39073,76,7 +2020-06-28,Hocking,Ohio,39073,76,7 +2020-06-29,Hocking,Ohio,39073,76,7 +2020-06-30,Hocking,Ohio,39073,76,7 +2020-07-01,Hocking,Ohio,39073,76,7 +2020-07-02,Hocking,Ohio,39073,76,7 +2020-07-03,Hocking,Ohio,39073,78,8 +2020-07-04,Hocking,Ohio,39073,78,8 +2020-07-05,Hocking,Ohio,39073,78,8 +2020-07-06,Hocking,Ohio,39073,78,8 +2020-07-07,Hocking,Ohio,39073,78,8 +2020-07-08,Hocking,Ohio,39073,79,8 +2020-07-09,Hocking,Ohio,39073,79,8 +2020-03-30,Holmes,Ohio,39075,1,0 +2020-03-31,Holmes,Ohio,39075,1,0 +2020-04-01,Holmes,Ohio,39075,1,0 +2020-04-02,Holmes,Ohio,39075,1,0 +2020-04-03,Holmes,Ohio,39075,1,0 +2020-04-04,Holmes,Ohio,39075,1,0 +2020-04-05,Holmes,Ohio,39075,1,0 +2020-04-06,Holmes,Ohio,39075,2,0 +2020-04-07,Holmes,Ohio,39075,2,0 +2020-04-08,Holmes,Ohio,39075,3,0 +2020-04-09,Holmes,Ohio,39075,3,0 +2020-04-10,Holmes,Ohio,39075,3,0 +2020-04-11,Holmes,Ohio,39075,3,0 +2020-04-12,Holmes,Ohio,39075,3,0 +2020-04-13,Holmes,Ohio,39075,3,0 +2020-04-14,Holmes,Ohio,39075,3,0 +2020-04-15,Holmes,Ohio,39075,3,0 +2020-04-16,Holmes,Ohio,39075,3,0 +2020-04-17,Holmes,Ohio,39075,3,0 +2020-04-18,Holmes,Ohio,39075,3,0 +2020-04-19,Holmes,Ohio,39075,3,0 +2020-04-20,Holmes,Ohio,39075,4,1 +2020-04-21,Holmes,Ohio,39075,4,1 +2020-04-22,Holmes,Ohio,39075,4,1 +2020-04-23,Holmes,Ohio,39075,5,1 +2020-04-24,Holmes,Ohio,39075,5,1 +2020-04-25,Holmes,Ohio,39075,5,1 +2020-04-26,Holmes,Ohio,39075,5,1 +2020-04-27,Holmes,Ohio,39075,5,1 +2020-04-28,Holmes,Ohio,39075,5,1 +2020-04-29,Holmes,Ohio,39075,5,1 +2020-04-30,Holmes,Ohio,39075,6,1 +2020-05-01,Holmes,Ohio,39075,6,1 +2020-05-02,Holmes,Ohio,39075,6,1 +2020-05-03,Holmes,Ohio,39075,6,1 +2020-05-04,Holmes,Ohio,39075,6,1 +2020-05-05,Holmes,Ohio,39075,6,1 +2020-05-06,Holmes,Ohio,39075,6,1 +2020-05-07,Holmes,Ohio,39075,7,1 +2020-05-08,Holmes,Ohio,39075,7,1 +2020-05-09,Holmes,Ohio,39075,7,1 +2020-05-10,Holmes,Ohio,39075,8,1 +2020-05-11,Holmes,Ohio,39075,8,1 +2020-05-12,Holmes,Ohio,39075,8,1 +2020-05-13,Holmes,Ohio,39075,8,1 +2020-05-14,Holmes,Ohio,39075,10,1 +2020-05-15,Holmes,Ohio,39075,10,1 +2020-05-16,Holmes,Ohio,39075,10,1 +2020-05-17,Holmes,Ohio,39075,11,1 +2020-05-18,Holmes,Ohio,39075,13,1 +2020-05-19,Holmes,Ohio,39075,13,1 +2020-05-20,Holmes,Ohio,39075,15,1 +2020-05-21,Holmes,Ohio,39075,15,1 +2020-05-22,Holmes,Ohio,39075,20,1 +2020-05-23,Holmes,Ohio,39075,22,1 +2020-05-24,Holmes,Ohio,39075,25,1 +2020-05-25,Holmes,Ohio,39075,27,1 +2020-05-26,Holmes,Ohio,39075,28,1 +2020-05-27,Holmes,Ohio,39075,29,1 +2020-05-28,Holmes,Ohio,39075,29,1 +2020-05-29,Holmes,Ohio,39075,32,1 +2020-05-30,Holmes,Ohio,39075,34,1 +2020-05-31,Holmes,Ohio,39075,39,1 +2020-06-01,Holmes,Ohio,39075,43,1 +2020-06-02,Holmes,Ohio,39075,45,1 +2020-06-03,Holmes,Ohio,39075,46,3 +2020-06-04,Holmes,Ohio,39075,54,3 +2020-06-05,Holmes,Ohio,39075,57,3 +2020-06-06,Holmes,Ohio,39075,60,3 +2020-06-07,Holmes,Ohio,39075,68,3 +2020-06-08,Holmes,Ohio,39075,69,3 +2020-06-09,Holmes,Ohio,39075,69,3 +2020-06-10,Holmes,Ohio,39075,72,3 +2020-06-11,Holmes,Ohio,39075,74,3 +2020-06-12,Holmes,Ohio,39075,84,3 +2020-06-13,Holmes,Ohio,39075,87,3 +2020-06-14,Holmes,Ohio,39075,87,3 +2020-06-15,Holmes,Ohio,39075,90,3 +2020-06-16,Holmes,Ohio,39075,92,3 +2020-06-17,Holmes,Ohio,39075,92,3 +2020-06-18,Holmes,Ohio,39075,101,3 +2020-06-19,Holmes,Ohio,39075,109,3 +2020-06-20,Holmes,Ohio,39075,111,3 +2020-06-21,Holmes,Ohio,39075,127,3 +2020-06-22,Holmes,Ohio,39075,136,3 +2020-06-23,Holmes,Ohio,39075,152,3 +2020-06-24,Holmes,Ohio,39075,162,3 +2020-06-25,Holmes,Ohio,39075,169,3 +2020-06-26,Holmes,Ohio,39075,176,3 +2020-06-27,Holmes,Ohio,39075,184,3 +2020-06-28,Holmes,Ohio,39075,190,3 +2020-06-29,Holmes,Ohio,39075,197,3 +2020-06-30,Holmes,Ohio,39075,202,3 +2020-07-01,Holmes,Ohio,39075,204,3 +2020-07-02,Holmes,Ohio,39075,204,3 +2020-07-03,Holmes,Ohio,39075,220,3 +2020-07-04,Holmes,Ohio,39075,226,3 +2020-07-05,Holmes,Ohio,39075,231,3 +2020-07-06,Holmes,Ohio,39075,236,3 +2020-07-07,Holmes,Ohio,39075,239,3 +2020-07-08,Holmes,Ohio,39075,245,3 +2020-07-09,Holmes,Ohio,39075,252,4 +2020-03-18,Huron,Ohio,39077,1,0 +2020-03-19,Huron,Ohio,39077,1,0 +2020-03-20,Huron,Ohio,39077,1,0 +2020-03-21,Huron,Ohio,39077,1,0 +2020-03-22,Huron,Ohio,39077,1,0 +2020-03-23,Huron,Ohio,39077,1,0 +2020-03-24,Huron,Ohio,39077,2,0 +2020-03-25,Huron,Ohio,39077,2,0 +2020-03-26,Huron,Ohio,39077,3,0 +2020-03-27,Huron,Ohio,39077,3,0 +2020-03-28,Huron,Ohio,39077,3,0 +2020-03-29,Huron,Ohio,39077,3,0 +2020-03-30,Huron,Ohio,39077,3,1 +2020-03-31,Huron,Ohio,39077,4,1 +2020-04-01,Huron,Ohio,39077,4,1 +2020-04-02,Huron,Ohio,39077,4,1 +2020-04-03,Huron,Ohio,39077,5,1 +2020-04-04,Huron,Ohio,39077,6,1 +2020-04-05,Huron,Ohio,39077,6,1 +2020-04-06,Huron,Ohio,39077,9,1 +2020-04-07,Huron,Ohio,39077,10,1 +2020-04-08,Huron,Ohio,39077,9,1 +2020-04-09,Huron,Ohio,39077,10,1 +2020-04-10,Huron,Ohio,39077,10,1 +2020-04-11,Huron,Ohio,39077,15,1 +2020-04-12,Huron,Ohio,39077,14,1 +2020-04-13,Huron,Ohio,39077,14,1 +2020-04-14,Huron,Ohio,39077,14,1 +2020-04-15,Huron,Ohio,39077,14,1 +2020-04-16,Huron,Ohio,39077,16,1 +2020-04-17,Huron,Ohio,39077,16,1 +2020-04-18,Huron,Ohio,39077,15,1 +2020-04-19,Huron,Ohio,39077,16,1 +2020-04-20,Huron,Ohio,39077,20,1 +2020-04-21,Huron,Ohio,39077,23,1 +2020-04-22,Huron,Ohio,39077,25,2 +2020-04-23,Huron,Ohio,39077,24,1 +2020-04-24,Huron,Ohio,39077,25,1 +2020-04-25,Huron,Ohio,39077,27,1 +2020-04-26,Huron,Ohio,39077,28,1 +2020-04-27,Huron,Ohio,39077,29,1 +2020-04-28,Huron,Ohio,39077,30,1 +2020-04-29,Huron,Ohio,39077,30,1 +2020-04-30,Huron,Ohio,39077,29,1 +2020-05-01,Huron,Ohio,39077,29,1 +2020-05-02,Huron,Ohio,39077,31,1 +2020-05-03,Huron,Ohio,39077,31,1 +2020-05-04,Huron,Ohio,39077,32,1 +2020-05-05,Huron,Ohio,39077,33,1 +2020-05-06,Huron,Ohio,39077,34,1 +2020-05-07,Huron,Ohio,39077,34,1 +2020-05-08,Huron,Ohio,39077,37,1 +2020-05-09,Huron,Ohio,39077,38,1 +2020-05-10,Huron,Ohio,39077,38,1 +2020-05-11,Huron,Ohio,39077,38,1 +2020-05-12,Huron,Ohio,39077,39,1 +2020-05-13,Huron,Ohio,39077,39,1 +2020-05-14,Huron,Ohio,39077,40,1 +2020-05-15,Huron,Ohio,39077,39,1 +2020-05-16,Huron,Ohio,39077,40,1 +2020-05-17,Huron,Ohio,39077,41,1 +2020-05-18,Huron,Ohio,39077,42,1 +2020-05-19,Huron,Ohio,39077,43,1 +2020-05-20,Huron,Ohio,39077,44,1 +2020-05-21,Huron,Ohio,39077,46,1 +2020-05-22,Huron,Ohio,39077,48,1 +2020-05-23,Huron,Ohio,39077,49,1 +2020-05-24,Huron,Ohio,39077,52,1 +2020-05-25,Huron,Ohio,39077,55,1 +2020-05-26,Huron,Ohio,39077,55,1 +2020-05-27,Huron,Ohio,39077,55,1 +2020-05-28,Huron,Ohio,39077,56,1 +2020-05-29,Huron,Ohio,39077,56,1 +2020-05-30,Huron,Ohio,39077,57,1 +2020-05-31,Huron,Ohio,39077,58,1 +2020-06-01,Huron,Ohio,39077,60,1 +2020-06-02,Huron,Ohio,39077,60,1 +2020-06-03,Huron,Ohio,39077,60,1 +2020-06-04,Huron,Ohio,39077,61,1 +2020-06-05,Huron,Ohio,39077,61,1 +2020-06-06,Huron,Ohio,39077,62,1 +2020-06-07,Huron,Ohio,39077,63,1 +2020-06-08,Huron,Ohio,39077,63,1 +2020-06-09,Huron,Ohio,39077,64,1 +2020-06-10,Huron,Ohio,39077,64,1 +2020-06-11,Huron,Ohio,39077,71,1 +2020-06-12,Huron,Ohio,39077,72,1 +2020-06-13,Huron,Ohio,39077,74,1 +2020-06-14,Huron,Ohio,39077,77,1 +2020-06-15,Huron,Ohio,39077,77,1 +2020-06-16,Huron,Ohio,39077,79,1 +2020-06-17,Huron,Ohio,39077,81,1 +2020-06-18,Huron,Ohio,39077,95,1 +2020-06-19,Huron,Ohio,39077,96,1 +2020-06-20,Huron,Ohio,39077,97,1 +2020-06-21,Huron,Ohio,39077,110,1 +2020-06-22,Huron,Ohio,39077,122,1 +2020-06-23,Huron,Ohio,39077,127,1 +2020-06-24,Huron,Ohio,39077,129,1 +2020-06-25,Huron,Ohio,39077,144,1 +2020-06-26,Huron,Ohio,39077,147,1 +2020-06-27,Huron,Ohio,39077,153,1 +2020-06-28,Huron,Ohio,39077,159,1 +2020-06-29,Huron,Ohio,39077,165,1 +2020-06-30,Huron,Ohio,39077,170,1 +2020-07-01,Huron,Ohio,39077,177,2 +2020-07-02,Huron,Ohio,39077,177,2 +2020-07-03,Huron,Ohio,39077,199,2 +2020-07-04,Huron,Ohio,39077,211,2 +2020-07-05,Huron,Ohio,39077,215,2 +2020-07-06,Huron,Ohio,39077,220,2 +2020-07-07,Huron,Ohio,39077,223,2 +2020-07-08,Huron,Ohio,39077,228,2 +2020-07-09,Huron,Ohio,39077,234,2 +2020-04-08,Jackson,Ohio,39079,2,0 +2020-04-09,Jackson,Ohio,39079,2,0 +2020-04-10,Jackson,Ohio,39079,2,0 +2020-04-11,Jackson,Ohio,39079,2,0 +2020-04-12,Jackson,Ohio,39079,2,0 +2020-04-13,Jackson,Ohio,39079,2,0 +2020-04-14,Jackson,Ohio,39079,3,0 +2020-04-15,Jackson,Ohio,39079,3,0 +2020-04-16,Jackson,Ohio,39079,3,0 +2020-04-17,Jackson,Ohio,39079,3,0 +2020-04-18,Jackson,Ohio,39079,4,0 +2020-04-19,Jackson,Ohio,39079,5,0 +2020-04-20,Jackson,Ohio,39079,4,0 +2020-04-21,Jackson,Ohio,39079,4,0 +2020-04-22,Jackson,Ohio,39079,4,0 +2020-04-23,Jackson,Ohio,39079,4,0 +2020-04-24,Jackson,Ohio,39079,4,0 +2020-04-25,Jackson,Ohio,39079,4,0 +2020-04-26,Jackson,Ohio,39079,4,0 +2020-04-27,Jackson,Ohio,39079,4,0 +2020-04-28,Jackson,Ohio,39079,4,0 +2020-04-29,Jackson,Ohio,39079,4,0 +2020-04-30,Jackson,Ohio,39079,4,0 +2020-05-01,Jackson,Ohio,39079,4,0 +2020-05-02,Jackson,Ohio,39079,4,0 +2020-05-03,Jackson,Ohio,39079,5,0 +2020-05-04,Jackson,Ohio,39079,5,0 +2020-05-05,Jackson,Ohio,39079,6,0 +2020-05-06,Jackson,Ohio,39079,7,0 +2020-05-07,Jackson,Ohio,39079,7,0 +2020-05-08,Jackson,Ohio,39079,7,0 +2020-05-09,Jackson,Ohio,39079,7,0 +2020-05-10,Jackson,Ohio,39079,8,0 +2020-05-11,Jackson,Ohio,39079,8,0 +2020-05-12,Jackson,Ohio,39079,8,0 +2020-05-13,Jackson,Ohio,39079,9,0 +2020-05-14,Jackson,Ohio,39079,9,0 +2020-05-15,Jackson,Ohio,39079,10,0 +2020-05-16,Jackson,Ohio,39079,11,0 +2020-05-17,Jackson,Ohio,39079,11,0 +2020-05-18,Jackson,Ohio,39079,11,0 +2020-05-19,Jackson,Ohio,39079,11,0 +2020-05-20,Jackson,Ohio,39079,11,0 +2020-05-21,Jackson,Ohio,39079,11,0 +2020-05-22,Jackson,Ohio,39079,11,0 +2020-05-23,Jackson,Ohio,39079,11,0 +2020-05-24,Jackson,Ohio,39079,11,0 +2020-05-25,Jackson,Ohio,39079,11,0 +2020-05-26,Jackson,Ohio,39079,12,0 +2020-05-27,Jackson,Ohio,39079,12,0 +2020-05-28,Jackson,Ohio,39079,13,0 +2020-05-29,Jackson,Ohio,39079,13,0 +2020-05-30,Jackson,Ohio,39079,14,0 +2020-05-31,Jackson,Ohio,39079,14,0 +2020-06-01,Jackson,Ohio,39079,14,0 +2020-06-02,Jackson,Ohio,39079,14,0 +2020-06-03,Jackson,Ohio,39079,14,0 +2020-06-04,Jackson,Ohio,39079,14,0 +2020-06-05,Jackson,Ohio,39079,15,0 +2020-06-06,Jackson,Ohio,39079,15,0 +2020-06-07,Jackson,Ohio,39079,15,0 +2020-06-08,Jackson,Ohio,39079,15,0 +2020-06-09,Jackson,Ohio,39079,16,0 +2020-06-10,Jackson,Ohio,39079,16,0 +2020-06-11,Jackson,Ohio,39079,16,0 +2020-06-12,Jackson,Ohio,39079,16,0 +2020-06-13,Jackson,Ohio,39079,16,0 +2020-06-14,Jackson,Ohio,39079,16,0 +2020-06-15,Jackson,Ohio,39079,16,0 +2020-06-16,Jackson,Ohio,39079,16,0 +2020-06-17,Jackson,Ohio,39079,16,0 +2020-06-18,Jackson,Ohio,39079,16,0 +2020-06-19,Jackson,Ohio,39079,16,0 +2020-06-20,Jackson,Ohio,39079,16,0 +2020-06-21,Jackson,Ohio,39079,16,0 +2020-06-22,Jackson,Ohio,39079,16,0 +2020-06-23,Jackson,Ohio,39079,16,0 +2020-06-24,Jackson,Ohio,39079,16,0 +2020-06-25,Jackson,Ohio,39079,17,0 +2020-06-26,Jackson,Ohio,39079,17,0 +2020-06-27,Jackson,Ohio,39079,17,0 +2020-06-28,Jackson,Ohio,39079,17,0 +2020-06-29,Jackson,Ohio,39079,17,0 +2020-06-30,Jackson,Ohio,39079,17,0 +2020-07-01,Jackson,Ohio,39079,17,0 +2020-07-02,Jackson,Ohio,39079,17,0 +2020-07-03,Jackson,Ohio,39079,18,0 +2020-07-04,Jackson,Ohio,39079,22,0 +2020-07-05,Jackson,Ohio,39079,23,0 +2020-07-06,Jackson,Ohio,39079,23,0 +2020-07-07,Jackson,Ohio,39079,24,0 +2020-07-08,Jackson,Ohio,39079,26,0 +2020-07-09,Jackson,Ohio,39079,27,0 +2020-03-26,Jefferson,Ohio,39081,1,0 +2020-03-27,Jefferson,Ohio,39081,1,0 +2020-03-28,Jefferson,Ohio,39081,5,0 +2020-03-29,Jefferson,Ohio,39081,5,0 +2020-03-30,Jefferson,Ohio,39081,7,0 +2020-03-31,Jefferson,Ohio,39081,11,0 +2020-04-01,Jefferson,Ohio,39081,11,0 +2020-04-02,Jefferson,Ohio,39081,13,0 +2020-04-03,Jefferson,Ohio,39081,14,0 +2020-04-04,Jefferson,Ohio,39081,14,0 +2020-04-05,Jefferson,Ohio,39081,14,0 +2020-04-06,Jefferson,Ohio,39081,15,0 +2020-04-07,Jefferson,Ohio,39081,15,0 +2020-04-08,Jefferson,Ohio,39081,18,0 +2020-04-09,Jefferson,Ohio,39081,19,0 +2020-04-10,Jefferson,Ohio,39081,20,0 +2020-04-11,Jefferson,Ohio,39081,23,0 +2020-04-12,Jefferson,Ohio,39081,24,0 +2020-04-13,Jefferson,Ohio,39081,24,0 +2020-04-14,Jefferson,Ohio,39081,24,0 +2020-04-15,Jefferson,Ohio,39081,24,0 +2020-04-16,Jefferson,Ohio,39081,24,0 +2020-04-17,Jefferson,Ohio,39081,24,0 +2020-04-18,Jefferson,Ohio,39081,26,0 +2020-04-19,Jefferson,Ohio,39081,28,0 +2020-04-20,Jefferson,Ohio,39081,30,0 +2020-04-21,Jefferson,Ohio,39081,31,0 +2020-04-22,Jefferson,Ohio,39081,31,1 +2020-04-23,Jefferson,Ohio,39081,33,1 +2020-04-24,Jefferson,Ohio,39081,33,1 +2020-04-25,Jefferson,Ohio,39081,35,1 +2020-04-26,Jefferson,Ohio,39081,37,1 +2020-04-27,Jefferson,Ohio,39081,39,1 +2020-04-28,Jefferson,Ohio,39081,42,1 +2020-04-29,Jefferson,Ohio,39081,43,1 +2020-04-30,Jefferson,Ohio,39081,43,1 +2020-05-01,Jefferson,Ohio,39081,43,1 +2020-05-02,Jefferson,Ohio,39081,43,1 +2020-05-03,Jefferson,Ohio,39081,45,1 +2020-05-04,Jefferson,Ohio,39081,45,1 +2020-05-05,Jefferson,Ohio,39081,46,1 +2020-05-06,Jefferson,Ohio,39081,48,2 +2020-05-07,Jefferson,Ohio,39081,49,2 +2020-05-08,Jefferson,Ohio,39081,50,2 +2020-05-09,Jefferson,Ohio,39081,54,2 +2020-05-10,Jefferson,Ohio,39081,54,2 +2020-05-11,Jefferson,Ohio,39081,56,2 +2020-05-12,Jefferson,Ohio,39081,56,2 +2020-05-13,Jefferson,Ohio,39081,56,2 +2020-05-14,Jefferson,Ohio,39081,58,2 +2020-05-15,Jefferson,Ohio,39081,59,2 +2020-05-16,Jefferson,Ohio,39081,59,2 +2020-05-17,Jefferson,Ohio,39081,61,2 +2020-05-18,Jefferson,Ohio,39081,61,2 +2020-05-19,Jefferson,Ohio,39081,61,2 +2020-05-20,Jefferson,Ohio,39081,62,2 +2020-05-21,Jefferson,Ohio,39081,62,2 +2020-05-22,Jefferson,Ohio,39081,62,2 +2020-05-23,Jefferson,Ohio,39081,62,2 +2020-05-24,Jefferson,Ohio,39081,62,2 +2020-05-25,Jefferson,Ohio,39081,62,2 +2020-05-26,Jefferson,Ohio,39081,63,2 +2020-05-27,Jefferson,Ohio,39081,65,2 +2020-05-28,Jefferson,Ohio,39081,66,2 +2020-05-29,Jefferson,Ohio,39081,67,2 +2020-05-30,Jefferson,Ohio,39081,67,2 +2020-05-31,Jefferson,Ohio,39081,67,2 +2020-06-01,Jefferson,Ohio,39081,67,2 +2020-06-02,Jefferson,Ohio,39081,66,2 +2020-06-03,Jefferson,Ohio,39081,67,2 +2020-06-04,Jefferson,Ohio,39081,67,2 +2020-06-05,Jefferson,Ohio,39081,67,2 +2020-06-06,Jefferson,Ohio,39081,68,2 +2020-06-07,Jefferson,Ohio,39081,68,2 +2020-06-08,Jefferson,Ohio,39081,69,2 +2020-06-09,Jefferson,Ohio,39081,69,2 +2020-06-10,Jefferson,Ohio,39081,69,2 +2020-06-11,Jefferson,Ohio,39081,69,2 +2020-06-12,Jefferson,Ohio,39081,69,2 +2020-06-13,Jefferson,Ohio,39081,70,2 +2020-06-14,Jefferson,Ohio,39081,70,2 +2020-06-15,Jefferson,Ohio,39081,71,2 +2020-06-16,Jefferson,Ohio,39081,71,2 +2020-06-17,Jefferson,Ohio,39081,71,2 +2020-06-18,Jefferson,Ohio,39081,71,2 +2020-06-19,Jefferson,Ohio,39081,74,2 +2020-06-20,Jefferson,Ohio,39081,74,2 +2020-06-21,Jefferson,Ohio,39081,74,2 +2020-06-22,Jefferson,Ohio,39081,74,2 +2020-06-23,Jefferson,Ohio,39081,74,2 +2020-06-24,Jefferson,Ohio,39081,74,2 +2020-06-25,Jefferson,Ohio,39081,75,2 +2020-06-26,Jefferson,Ohio,39081,76,2 +2020-06-27,Jefferson,Ohio,39081,76,2 +2020-06-28,Jefferson,Ohio,39081,76,2 +2020-06-29,Jefferson,Ohio,39081,76,2 +2020-06-30,Jefferson,Ohio,39081,76,2 +2020-07-01,Jefferson,Ohio,39081,80,2 +2020-07-02,Jefferson,Ohio,39081,80,2 +2020-07-03,Jefferson,Ohio,39081,83,2 +2020-07-04,Jefferson,Ohio,39081,87,2 +2020-07-05,Jefferson,Ohio,39081,87,2 +2020-07-06,Jefferson,Ohio,39081,88,2 +2020-07-07,Jefferson,Ohio,39081,91,2 +2020-07-08,Jefferson,Ohio,39081,92,2 +2020-07-09,Jefferson,Ohio,39081,95,2 +2020-03-23,Knox,Ohio,39083,1,0 +2020-03-24,Knox,Ohio,39083,1,0 +2020-03-25,Knox,Ohio,39083,2,0 +2020-03-26,Knox,Ohio,39083,2,0 +2020-03-27,Knox,Ohio,39083,2,0 +2020-03-28,Knox,Ohio,39083,2,0 +2020-03-29,Knox,Ohio,39083,3,0 +2020-03-30,Knox,Ohio,39083,3,0 +2020-03-31,Knox,Ohio,39083,4,0 +2020-04-01,Knox,Ohio,39083,4,0 +2020-04-02,Knox,Ohio,39083,5,1 +2020-04-03,Knox,Ohio,39083,6,1 +2020-04-04,Knox,Ohio,39083,6,1 +2020-04-05,Knox,Ohio,39083,7,1 +2020-04-06,Knox,Ohio,39083,7,1 +2020-04-07,Knox,Ohio,39083,7,1 +2020-04-08,Knox,Ohio,39083,7,1 +2020-04-09,Knox,Ohio,39083,8,1 +2020-04-10,Knox,Ohio,39083,9,1 +2020-04-11,Knox,Ohio,39083,9,1 +2020-04-12,Knox,Ohio,39083,10,1 +2020-04-13,Knox,Ohio,39083,10,1 +2020-04-14,Knox,Ohio,39083,10,1 +2020-04-15,Knox,Ohio,39083,10,1 +2020-04-16,Knox,Ohio,39083,11,1 +2020-04-17,Knox,Ohio,39083,11,1 +2020-04-18,Knox,Ohio,39083,11,1 +2020-04-19,Knox,Ohio,39083,11,1 +2020-04-20,Knox,Ohio,39083,13,1 +2020-04-21,Knox,Ohio,39083,13,1 +2020-04-22,Knox,Ohio,39083,13,1 +2020-04-23,Knox,Ohio,39083,14,1 +2020-04-24,Knox,Ohio,39083,15,1 +2020-04-25,Knox,Ohio,39083,15,1 +2020-04-26,Knox,Ohio,39083,15,1 +2020-04-27,Knox,Ohio,39083,15,1 +2020-04-28,Knox,Ohio,39083,15,1 +2020-04-29,Knox,Ohio,39083,16,1 +2020-04-30,Knox,Ohio,39083,16,1 +2020-05-01,Knox,Ohio,39083,16,1 +2020-05-02,Knox,Ohio,39083,18,1 +2020-05-03,Knox,Ohio,39083,18,1 +2020-05-04,Knox,Ohio,39083,19,1 +2020-05-05,Knox,Ohio,39083,19,1 +2020-05-06,Knox,Ohio,39083,20,1 +2020-05-07,Knox,Ohio,39083,20,1 +2020-05-08,Knox,Ohio,39083,20,1 +2020-05-09,Knox,Ohio,39083,20,1 +2020-05-10,Knox,Ohio,39083,20,1 +2020-05-11,Knox,Ohio,39083,20,1 +2020-05-12,Knox,Ohio,39083,20,1 +2020-05-13,Knox,Ohio,39083,20,1 +2020-05-14,Knox,Ohio,39083,20,1 +2020-05-15,Knox,Ohio,39083,21,1 +2020-05-16,Knox,Ohio,39083,21,1 +2020-05-17,Knox,Ohio,39083,22,1 +2020-05-18,Knox,Ohio,39083,22,1 +2020-05-19,Knox,Ohio,39083,23,1 +2020-05-20,Knox,Ohio,39083,23,1 +2020-05-21,Knox,Ohio,39083,23,1 +2020-05-22,Knox,Ohio,39083,23,1 +2020-05-23,Knox,Ohio,39083,23,1 +2020-05-24,Knox,Ohio,39083,23,1 +2020-05-25,Knox,Ohio,39083,23,1 +2020-05-26,Knox,Ohio,39083,23,1 +2020-05-27,Knox,Ohio,39083,23,1 +2020-05-28,Knox,Ohio,39083,23,1 +2020-05-29,Knox,Ohio,39083,24,1 +2020-05-30,Knox,Ohio,39083,25,1 +2020-05-31,Knox,Ohio,39083,25,1 +2020-06-01,Knox,Ohio,39083,25,1 +2020-06-02,Knox,Ohio,39083,25,1 +2020-06-03,Knox,Ohio,39083,25,1 +2020-06-04,Knox,Ohio,39083,25,1 +2020-06-05,Knox,Ohio,39083,25,1 +2020-06-06,Knox,Ohio,39083,26,1 +2020-06-07,Knox,Ohio,39083,28,1 +2020-06-08,Knox,Ohio,39083,29,1 +2020-06-09,Knox,Ohio,39083,29,1 +2020-06-10,Knox,Ohio,39083,29,1 +2020-06-11,Knox,Ohio,39083,30,1 +2020-06-12,Knox,Ohio,39083,31,1 +2020-06-13,Knox,Ohio,39083,31,1 +2020-06-14,Knox,Ohio,39083,31,1 +2020-06-15,Knox,Ohio,39083,32,1 +2020-06-16,Knox,Ohio,39083,33,1 +2020-06-17,Knox,Ohio,39083,33,1 +2020-06-18,Knox,Ohio,39083,33,1 +2020-06-19,Knox,Ohio,39083,33,1 +2020-06-20,Knox,Ohio,39083,33,1 +2020-06-21,Knox,Ohio,39083,34,1 +2020-06-22,Knox,Ohio,39083,34,1 +2020-06-23,Knox,Ohio,39083,34,1 +2020-06-24,Knox,Ohio,39083,34,1 +2020-06-25,Knox,Ohio,39083,36,1 +2020-06-26,Knox,Ohio,39083,37,1 +2020-06-27,Knox,Ohio,39083,38,1 +2020-06-28,Knox,Ohio,39083,38,1 +2020-06-29,Knox,Ohio,39083,38,1 +2020-06-30,Knox,Ohio,39083,39,1 +2020-07-01,Knox,Ohio,39083,39,1 +2020-07-02,Knox,Ohio,39083,39,1 +2020-07-03,Knox,Ohio,39083,45,1 +2020-07-04,Knox,Ohio,39083,48,1 +2020-07-05,Knox,Ohio,39083,51,1 +2020-07-06,Knox,Ohio,39083,51,1 +2020-07-07,Knox,Ohio,39083,52,1 +2020-07-08,Knox,Ohio,39083,53,1 +2020-07-09,Knox,Ohio,39083,53,1 +2020-03-17,Lake,Ohio,39085,1,0 +2020-03-18,Lake,Ohio,39085,2,0 +2020-03-19,Lake,Ohio,39085,2,0 +2020-03-20,Lake,Ohio,39085,3,0 +2020-03-21,Lake,Ohio,39085,4,0 +2020-03-22,Lake,Ohio,39085,6,0 +2020-03-23,Lake,Ohio,39085,8,0 +2020-03-24,Lake,Ohio,39085,11,0 +2020-03-25,Lake,Ohio,39085,14,0 +2020-03-26,Lake,Ohio,39085,19,0 +2020-03-27,Lake,Ohio,39085,27,1 +2020-03-28,Lake,Ohio,39085,30,1 +2020-03-29,Lake,Ohio,39085,35,1 +2020-03-30,Lake,Ohio,39085,43,1 +2020-03-31,Lake,Ohio,39085,44,2 +2020-04-01,Lake,Ohio,39085,48,2 +2020-04-02,Lake,Ohio,39085,62,3 +2020-04-03,Lake,Ohio,39085,66,3 +2020-04-04,Lake,Ohio,39085,76,3 +2020-04-05,Lake,Ohio,39085,79,3 +2020-04-06,Lake,Ohio,39085,87,3 +2020-04-07,Lake,Ohio,39085,92,4 +2020-04-08,Lake,Ohio,39085,99,4 +2020-04-09,Lake,Ohio,39085,106,5 +2020-04-10,Lake,Ohio,39085,108,6 +2020-04-11,Lake,Ohio,39085,112,6 +2020-04-12,Lake,Ohio,39085,114,6 +2020-04-13,Lake,Ohio,39085,117,6 +2020-04-14,Lake,Ohio,39085,121,6 +2020-04-15,Lake,Ohio,39085,124,6 +2020-04-16,Lake,Ohio,39085,127,6 +2020-04-17,Lake,Ohio,39085,130,6 +2020-04-18,Lake,Ohio,39085,131,6 +2020-04-19,Lake,Ohio,39085,133,6 +2020-04-20,Lake,Ohio,39085,135,6 +2020-04-21,Lake,Ohio,39085,139,6 +2020-04-22,Lake,Ohio,39085,145,6 +2020-04-23,Lake,Ohio,39085,148,6 +2020-04-24,Lake,Ohio,39085,154,7 +2020-04-25,Lake,Ohio,39085,157,7 +2020-04-26,Lake,Ohio,39085,157,7 +2020-04-27,Lake,Ohio,39085,158,7 +2020-04-28,Lake,Ohio,39085,160,7 +2020-04-29,Lake,Ohio,39085,165,7 +2020-04-30,Lake,Ohio,39085,168,7 +2020-05-01,Lake,Ohio,39085,170,8 +2020-05-02,Lake,Ohio,39085,170,8 +2020-05-03,Lake,Ohio,39085,172,8 +2020-05-04,Lake,Ohio,39085,173,8 +2020-05-05,Lake,Ohio,39085,176,8 +2020-05-06,Lake,Ohio,39085,180,8 +2020-05-07,Lake,Ohio,39085,187,8 +2020-05-08,Lake,Ohio,39085,192,8 +2020-05-09,Lake,Ohio,39085,194,8 +2020-05-10,Lake,Ohio,39085,197,8 +2020-05-11,Lake,Ohio,39085,199,8 +2020-05-12,Lake,Ohio,39085,203,8 +2020-05-13,Lake,Ohio,39085,206,8 +2020-05-14,Lake,Ohio,39085,210,8 +2020-05-15,Lake,Ohio,39085,214,8 +2020-05-16,Lake,Ohio,39085,219,8 +2020-05-17,Lake,Ohio,39085,224,8 +2020-05-18,Lake,Ohio,39085,226,9 +2020-05-19,Lake,Ohio,39085,231,9 +2020-05-20,Lake,Ohio,39085,235,9 +2020-05-21,Lake,Ohio,39085,246,11 +2020-05-22,Lake,Ohio,39085,252,11 +2020-05-23,Lake,Ohio,39085,263,12 +2020-05-24,Lake,Ohio,39085,267,11 +2020-05-25,Lake,Ohio,39085,268,11 +2020-05-26,Lake,Ohio,39085,282,12 +2020-05-27,Lake,Ohio,39085,287,12 +2020-05-28,Lake,Ohio,39085,290,12 +2020-05-29,Lake,Ohio,39085,302,12 +2020-05-30,Lake,Ohio,39085,306,12 +2020-05-31,Lake,Ohio,39085,308,12 +2020-06-01,Lake,Ohio,39085,309,13 +2020-06-02,Lake,Ohio,39085,309,12 +2020-06-03,Lake,Ohio,39085,318,12 +2020-06-04,Lake,Ohio,39085,320,12 +2020-06-05,Lake,Ohio,39085,325,12 +2020-06-06,Lake,Ohio,39085,327,12 +2020-06-07,Lake,Ohio,39085,331,12 +2020-06-08,Lake,Ohio,39085,334,12 +2020-06-09,Lake,Ohio,39085,337,12 +2020-06-10,Lake,Ohio,39085,337,12 +2020-06-11,Lake,Ohio,39085,338,12 +2020-06-12,Lake,Ohio,39085,344,12 +2020-06-13,Lake,Ohio,39085,346,12 +2020-06-14,Lake,Ohio,39085,347,12 +2020-06-15,Lake,Ohio,39085,348,12 +2020-06-16,Lake,Ohio,39085,350,12 +2020-06-17,Lake,Ohio,39085,354,12 +2020-06-18,Lake,Ohio,39085,356,13 +2020-06-19,Lake,Ohio,39085,358,13 +2020-06-20,Lake,Ohio,39085,364,14 +2020-06-21,Lake,Ohio,39085,367,14 +2020-06-22,Lake,Ohio,39085,369,14 +2020-06-23,Lake,Ohio,39085,373,15 +2020-06-24,Lake,Ohio,39085,381,14 +2020-06-25,Lake,Ohio,39085,390,17 +2020-06-26,Lake,Ohio,39085,393,17 +2020-06-27,Lake,Ohio,39085,405,17 +2020-06-28,Lake,Ohio,39085,415,17 +2020-06-29,Lake,Ohio,39085,422,17 +2020-06-30,Lake,Ohio,39085,433,17 +2020-07-01,Lake,Ohio,39085,443,16 +2020-07-02,Lake,Ohio,39085,443,16 +2020-07-03,Lake,Ohio,39085,480,18 +2020-07-04,Lake,Ohio,39085,492,18 +2020-07-05,Lake,Ohio,39085,497,18 +2020-07-06,Lake,Ohio,39085,500,18 +2020-07-07,Lake,Ohio,39085,508,19 +2020-07-08,Lake,Ohio,39085,529,20 +2020-07-09,Lake,Ohio,39085,551,22 +2020-03-25,Lawrence,Ohio,39087,1,0 +2020-03-26,Lawrence,Ohio,39087,1,0 +2020-03-27,Lawrence,Ohio,39087,1,0 +2020-03-28,Lawrence,Ohio,39087,1,0 +2020-03-29,Lawrence,Ohio,39087,1,0 +2020-03-30,Lawrence,Ohio,39087,1,0 +2020-03-31,Lawrence,Ohio,39087,1,0 +2020-04-01,Lawrence,Ohio,39087,1,0 +2020-04-02,Lawrence,Ohio,39087,2,0 +2020-04-03,Lawrence,Ohio,39087,4,0 +2020-04-04,Lawrence,Ohio,39087,7,0 +2020-04-05,Lawrence,Ohio,39087,8,0 +2020-04-06,Lawrence,Ohio,39087,10,0 +2020-04-07,Lawrence,Ohio,39087,9,0 +2020-04-08,Lawrence,Ohio,39087,13,0 +2020-04-09,Lawrence,Ohio,39087,15,0 +2020-04-10,Lawrence,Ohio,39087,15,0 +2020-04-11,Lawrence,Ohio,39087,15,0 +2020-04-12,Lawrence,Ohio,39087,16,0 +2020-04-13,Lawrence,Ohio,39087,17,0 +2020-04-14,Lawrence,Ohio,39087,17,0 +2020-04-15,Lawrence,Ohio,39087,17,0 +2020-04-16,Lawrence,Ohio,39087,19,0 +2020-04-17,Lawrence,Ohio,39087,20,0 +2020-04-18,Lawrence,Ohio,39087,20,0 +2020-04-19,Lawrence,Ohio,39087,21,0 +2020-04-20,Lawrence,Ohio,39087,21,0 +2020-04-21,Lawrence,Ohio,39087,23,0 +2020-04-22,Lawrence,Ohio,39087,22,0 +2020-04-23,Lawrence,Ohio,39087,22,0 +2020-04-24,Lawrence,Ohio,39087,22,0 +2020-04-25,Lawrence,Ohio,39087,22,0 +2020-04-26,Lawrence,Ohio,39087,23,0 +2020-04-27,Lawrence,Ohio,39087,24,0 +2020-04-28,Lawrence,Ohio,39087,24,0 +2020-04-29,Lawrence,Ohio,39087,24,0 +2020-04-30,Lawrence,Ohio,39087,24,0 +2020-05-01,Lawrence,Ohio,39087,24,0 +2020-05-02,Lawrence,Ohio,39087,25,0 +2020-05-03,Lawrence,Ohio,39087,25,0 +2020-05-04,Lawrence,Ohio,39087,24,0 +2020-05-05,Lawrence,Ohio,39087,24,0 +2020-05-06,Lawrence,Ohio,39087,24,0 +2020-05-07,Lawrence,Ohio,39087,24,0 +2020-05-08,Lawrence,Ohio,39087,24,0 +2020-05-09,Lawrence,Ohio,39087,24,0 +2020-05-10,Lawrence,Ohio,39087,25,0 +2020-05-11,Lawrence,Ohio,39087,25,0 +2020-05-12,Lawrence,Ohio,39087,25,0 +2020-05-13,Lawrence,Ohio,39087,26,0 +2020-05-14,Lawrence,Ohio,39087,27,0 +2020-05-15,Lawrence,Ohio,39087,27,0 +2020-05-16,Lawrence,Ohio,39087,27,0 +2020-05-17,Lawrence,Ohio,39087,27,0 +2020-05-18,Lawrence,Ohio,39087,27,0 +2020-05-19,Lawrence,Ohio,39087,27,0 +2020-05-20,Lawrence,Ohio,39087,28,1 +2020-05-21,Lawrence,Ohio,39087,27,0 +2020-05-22,Lawrence,Ohio,39087,28,0 +2020-05-23,Lawrence,Ohio,39087,28,0 +2020-05-24,Lawrence,Ohio,39087,28,0 +2020-05-25,Lawrence,Ohio,39087,28,0 +2020-05-26,Lawrence,Ohio,39087,28,0 +2020-05-27,Lawrence,Ohio,39087,28,0 +2020-05-28,Lawrence,Ohio,39087,29,0 +2020-05-29,Lawrence,Ohio,39087,30,0 +2020-05-30,Lawrence,Ohio,39087,30,0 +2020-05-31,Lawrence,Ohio,39087,30,0 +2020-06-01,Lawrence,Ohio,39087,30,0 +2020-06-02,Lawrence,Ohio,39087,30,0 +2020-06-03,Lawrence,Ohio,39087,30,0 +2020-06-04,Lawrence,Ohio,39087,31,1 +2020-06-05,Lawrence,Ohio,39087,30,0 +2020-06-06,Lawrence,Ohio,39087,30,0 +2020-06-07,Lawrence,Ohio,39087,30,0 +2020-06-08,Lawrence,Ohio,39087,30,0 +2020-06-09,Lawrence,Ohio,39087,30,0 +2020-06-10,Lawrence,Ohio,39087,30,0 +2020-06-11,Lawrence,Ohio,39087,32,0 +2020-06-12,Lawrence,Ohio,39087,32,0 +2020-06-13,Lawrence,Ohio,39087,32,0 +2020-06-14,Lawrence,Ohio,39087,32,0 +2020-06-15,Lawrence,Ohio,39087,34,0 +2020-06-16,Lawrence,Ohio,39087,35,0 +2020-06-17,Lawrence,Ohio,39087,37,0 +2020-06-18,Lawrence,Ohio,39087,40,0 +2020-06-19,Lawrence,Ohio,39087,42,0 +2020-06-20,Lawrence,Ohio,39087,42,0 +2020-06-21,Lawrence,Ohio,39087,44,0 +2020-06-22,Lawrence,Ohio,39087,45,0 +2020-06-23,Lawrence,Ohio,39087,48,0 +2020-06-24,Lawrence,Ohio,39087,52,0 +2020-06-25,Lawrence,Ohio,39087,55,0 +2020-06-26,Lawrence,Ohio,39087,55,0 +2020-06-27,Lawrence,Ohio,39087,57,0 +2020-06-28,Lawrence,Ohio,39087,59,0 +2020-06-29,Lawrence,Ohio,39087,60,0 +2020-06-30,Lawrence,Ohio,39087,63,0 +2020-07-01,Lawrence,Ohio,39087,65,0 +2020-07-02,Lawrence,Ohio,39087,65,0 +2020-07-03,Lawrence,Ohio,39087,67,0 +2020-07-04,Lawrence,Ohio,39087,68,0 +2020-07-05,Lawrence,Ohio,39087,70,0 +2020-07-06,Lawrence,Ohio,39087,71,0 +2020-07-07,Lawrence,Ohio,39087,72,0 +2020-07-08,Lawrence,Ohio,39087,74,0 +2020-07-09,Lawrence,Ohio,39087,79,0 +2020-03-21,Licking,Ohio,39089,1,0 +2020-03-22,Licking,Ohio,39089,1,0 +2020-03-23,Licking,Ohio,39089,1,0 +2020-03-24,Licking,Ohio,39089,2,0 +2020-03-25,Licking,Ohio,39089,5,0 +2020-03-26,Licking,Ohio,39089,5,0 +2020-03-27,Licking,Ohio,39089,10,0 +2020-03-28,Licking,Ohio,39089,14,0 +2020-03-29,Licking,Ohio,39089,17,0 +2020-03-30,Licking,Ohio,39089,21,0 +2020-03-31,Licking,Ohio,39089,25,0 +2020-04-01,Licking,Ohio,39089,25,0 +2020-04-02,Licking,Ohio,39089,30,0 +2020-04-03,Licking,Ohio,39089,41,1 +2020-04-04,Licking,Ohio,39089,50,1 +2020-04-05,Licking,Ohio,39089,55,2 +2020-04-06,Licking,Ohio,39089,57,2 +2020-04-07,Licking,Ohio,39089,61,3 +2020-04-08,Licking,Ohio,39089,64,3 +2020-04-09,Licking,Ohio,39089,78,3 +2020-04-10,Licking,Ohio,39089,79,3 +2020-04-11,Licking,Ohio,39089,80,3 +2020-04-12,Licking,Ohio,39089,83,3 +2020-04-13,Licking,Ohio,39089,86,3 +2020-04-14,Licking,Ohio,39089,86,3 +2020-04-15,Licking,Ohio,39089,88,3 +2020-04-16,Licking,Ohio,39089,92,4 +2020-04-17,Licking,Ohio,39089,94,4 +2020-04-18,Licking,Ohio,39089,94,4 +2020-04-19,Licking,Ohio,39089,102,4 +2020-04-20,Licking,Ohio,39089,100,4 +2020-04-21,Licking,Ohio,39089,102,4 +2020-04-22,Licking,Ohio,39089,103,4 +2020-04-23,Licking,Ohio,39089,104,4 +2020-04-24,Licking,Ohio,39089,105,4 +2020-04-25,Licking,Ohio,39089,108,4 +2020-04-26,Licking,Ohio,39089,108,4 +2020-04-27,Licking,Ohio,39089,110,5 +2020-04-28,Licking,Ohio,39089,114,5 +2020-04-29,Licking,Ohio,39089,115,5 +2020-04-30,Licking,Ohio,39089,118,5 +2020-05-01,Licking,Ohio,39089,121,5 +2020-05-02,Licking,Ohio,39089,122,5 +2020-05-03,Licking,Ohio,39089,125,5 +2020-05-04,Licking,Ohio,39089,130,5 +2020-05-05,Licking,Ohio,39089,133,7 +2020-05-06,Licking,Ohio,39089,137,7 +2020-05-07,Licking,Ohio,39089,146,7 +2020-05-08,Licking,Ohio,39089,150,7 +2020-05-09,Licking,Ohio,39089,162,7 +2020-05-10,Licking,Ohio,39089,162,7 +2020-05-11,Licking,Ohio,39089,164,7 +2020-05-12,Licking,Ohio,39089,172,7 +2020-05-13,Licking,Ohio,39089,175,7 +2020-05-14,Licking,Ohio,39089,180,7 +2020-05-15,Licking,Ohio,39089,182,7 +2020-05-16,Licking,Ohio,39089,184,7 +2020-05-17,Licking,Ohio,39089,185,7 +2020-05-18,Licking,Ohio,39089,190,8 +2020-05-19,Licking,Ohio,39089,190,9 +2020-05-20,Licking,Ohio,39089,197,9 +2020-05-21,Licking,Ohio,39089,199,9 +2020-05-22,Licking,Ohio,39089,200,10 +2020-05-23,Licking,Ohio,39089,201,10 +2020-05-24,Licking,Ohio,39089,204,10 +2020-05-25,Licking,Ohio,39089,207,10 +2020-05-26,Licking,Ohio,39089,214,10 +2020-05-27,Licking,Ohio,39089,218,11 +2020-05-28,Licking,Ohio,39089,222,10 +2020-05-29,Licking,Ohio,39089,230,10 +2020-05-30,Licking,Ohio,39089,243,10 +2020-05-31,Licking,Ohio,39089,248,10 +2020-06-01,Licking,Ohio,39089,249,10 +2020-06-02,Licking,Ohio,39089,258,10 +2020-06-03,Licking,Ohio,39089,265,10 +2020-06-04,Licking,Ohio,39089,267,10 +2020-06-05,Licking,Ohio,39089,271,10 +2020-06-06,Licking,Ohio,39089,275,10 +2020-06-07,Licking,Ohio,39089,277,10 +2020-06-08,Licking,Ohio,39089,280,10 +2020-06-09,Licking,Ohio,39089,284,10 +2020-06-10,Licking,Ohio,39089,285,10 +2020-06-11,Licking,Ohio,39089,287,11 +2020-06-12,Licking,Ohio,39089,297,11 +2020-06-13,Licking,Ohio,39089,305,11 +2020-06-14,Licking,Ohio,39089,312,11 +2020-06-15,Licking,Ohio,39089,314,11 +2020-06-16,Licking,Ohio,39089,317,11 +2020-06-17,Licking,Ohio,39089,321,11 +2020-06-18,Licking,Ohio,39089,324,11 +2020-06-19,Licking,Ohio,39089,329,11 +2020-06-20,Licking,Ohio,39089,330,11 +2020-06-21,Licking,Ohio,39089,331,11 +2020-06-22,Licking,Ohio,39089,337,11 +2020-06-23,Licking,Ohio,39089,340,11 +2020-06-24,Licking,Ohio,39089,344,11 +2020-06-25,Licking,Ohio,39089,351,11 +2020-06-26,Licking,Ohio,39089,358,11 +2020-06-27,Licking,Ohio,39089,371,11 +2020-06-28,Licking,Ohio,39089,381,11 +2020-06-29,Licking,Ohio,39089,396,11 +2020-06-30,Licking,Ohio,39089,404,11 +2020-07-01,Licking,Ohio,39089,416,11 +2020-07-02,Licking,Ohio,39089,416,11 +2020-07-03,Licking,Ohio,39089,442,12 +2020-07-04,Licking,Ohio,39089,466,12 +2020-07-05,Licking,Ohio,39089,477,12 +2020-07-06,Licking,Ohio,39089,493,12 +2020-07-07,Licking,Ohio,39089,496,12 +2020-07-08,Licking,Ohio,39089,520,12 +2020-07-09,Licking,Ohio,39089,536,12 +2020-03-23,Logan,Ohio,39091,1,0 +2020-03-24,Logan,Ohio,39091,2,0 +2020-03-25,Logan,Ohio,39091,2,0 +2020-03-26,Logan,Ohio,39091,2,0 +2020-03-27,Logan,Ohio,39091,2,0 +2020-03-28,Logan,Ohio,39091,3,0 +2020-03-29,Logan,Ohio,39091,3,0 +2020-03-30,Logan,Ohio,39091,3,0 +2020-03-31,Logan,Ohio,39091,3,0 +2020-04-01,Logan,Ohio,39091,3,0 +2020-04-02,Logan,Ohio,39091,3,0 +2020-04-03,Logan,Ohio,39091,3,0 +2020-04-04,Logan,Ohio,39091,3,0 +2020-04-05,Logan,Ohio,39091,5,0 +2020-04-06,Logan,Ohio,39091,5,0 +2020-04-07,Logan,Ohio,39091,5,0 +2020-04-08,Logan,Ohio,39091,5,0 +2020-04-09,Logan,Ohio,39091,5,0 +2020-04-10,Logan,Ohio,39091,7,0 +2020-04-11,Logan,Ohio,39091,7,0 +2020-04-12,Logan,Ohio,39091,7,0 +2020-04-13,Logan,Ohio,39091,8,0 +2020-04-14,Logan,Ohio,39091,8,0 +2020-04-15,Logan,Ohio,39091,8,0 +2020-04-16,Logan,Ohio,39091,8,0 +2020-04-17,Logan,Ohio,39091,12,0 +2020-04-18,Logan,Ohio,39091,13,0 +2020-04-19,Logan,Ohio,39091,13,0 +2020-04-20,Logan,Ohio,39091,13,0 +2020-04-21,Logan,Ohio,39091,13,0 +2020-04-22,Logan,Ohio,39091,14,0 +2020-04-23,Logan,Ohio,39091,15,0 +2020-04-24,Logan,Ohio,39091,16,0 +2020-04-25,Logan,Ohio,39091,18,0 +2020-04-26,Logan,Ohio,39091,18,0 +2020-04-27,Logan,Ohio,39091,18,0 +2020-04-28,Logan,Ohio,39091,18,0 +2020-04-29,Logan,Ohio,39091,18,0 +2020-04-30,Logan,Ohio,39091,18,0 +2020-05-01,Logan,Ohio,39091,18,0 +2020-05-02,Logan,Ohio,39091,19,0 +2020-05-03,Logan,Ohio,39091,19,0 +2020-05-04,Logan,Ohio,39091,19,0 +2020-05-05,Logan,Ohio,39091,19,0 +2020-05-06,Logan,Ohio,39091,19,0 +2020-05-07,Logan,Ohio,39091,23,0 +2020-05-08,Logan,Ohio,39091,23,0 +2020-05-09,Logan,Ohio,39091,23,0 +2020-05-10,Logan,Ohio,39091,23,0 +2020-05-11,Logan,Ohio,39091,23,0 +2020-05-12,Logan,Ohio,39091,23,0 +2020-05-13,Logan,Ohio,39091,23,0 +2020-05-14,Logan,Ohio,39091,23,0 +2020-05-15,Logan,Ohio,39091,24,0 +2020-05-16,Logan,Ohio,39091,24,0 +2020-05-17,Logan,Ohio,39091,23,0 +2020-05-18,Logan,Ohio,39091,24,0 +2020-05-19,Logan,Ohio,39091,24,0 +2020-05-20,Logan,Ohio,39091,25,0 +2020-05-21,Logan,Ohio,39091,32,0 +2020-05-22,Logan,Ohio,39091,33,0 +2020-05-23,Logan,Ohio,39091,38,0 +2020-05-24,Logan,Ohio,39091,37,0 +2020-05-25,Logan,Ohio,39091,37,0 +2020-05-26,Logan,Ohio,39091,37,0 +2020-05-27,Logan,Ohio,39091,37,0 +2020-05-28,Logan,Ohio,39091,37,0 +2020-05-29,Logan,Ohio,39091,37,0 +2020-05-30,Logan,Ohio,39091,38,0 +2020-05-31,Logan,Ohio,39091,39,0 +2020-06-01,Logan,Ohio,39091,39,0 +2020-06-02,Logan,Ohio,39091,40,0 +2020-06-03,Logan,Ohio,39091,40,0 +2020-06-04,Logan,Ohio,39091,43,0 +2020-06-05,Logan,Ohio,39091,43,0 +2020-06-06,Logan,Ohio,39091,43,0 +2020-06-07,Logan,Ohio,39091,44,0 +2020-06-08,Logan,Ohio,39091,46,0 +2020-06-09,Logan,Ohio,39091,46,0 +2020-06-10,Logan,Ohio,39091,46,0 +2020-06-11,Logan,Ohio,39091,47,0 +2020-06-12,Logan,Ohio,39091,47,0 +2020-06-13,Logan,Ohio,39091,48,0 +2020-06-14,Logan,Ohio,39091,48,0 +2020-06-15,Logan,Ohio,39091,48,0 +2020-06-16,Logan,Ohio,39091,48,0 +2020-06-17,Logan,Ohio,39091,48,0 +2020-06-18,Logan,Ohio,39091,48,0 +2020-06-19,Logan,Ohio,39091,48,0 +2020-06-20,Logan,Ohio,39091,48,0 +2020-06-21,Logan,Ohio,39091,48,0 +2020-06-22,Logan,Ohio,39091,50,0 +2020-06-23,Logan,Ohio,39091,50,0 +2020-06-24,Logan,Ohio,39091,50,0 +2020-06-25,Logan,Ohio,39091,51,0 +2020-06-26,Logan,Ohio,39091,52,0 +2020-06-27,Logan,Ohio,39091,54,0 +2020-06-28,Logan,Ohio,39091,56,0 +2020-06-29,Logan,Ohio,39091,56,0 +2020-06-30,Logan,Ohio,39091,58,1 +2020-07-01,Logan,Ohio,39091,58,1 +2020-07-02,Logan,Ohio,39091,58,1 +2020-07-03,Logan,Ohio,39091,58,1 +2020-07-04,Logan,Ohio,39091,58,1 +2020-07-05,Logan,Ohio,39091,62,1 +2020-07-06,Logan,Ohio,39091,62,1 +2020-07-07,Logan,Ohio,39091,64,1 +2020-07-08,Logan,Ohio,39091,65,1 +2020-07-09,Logan,Ohio,39091,66,1 +2020-03-14,Lorain,Ohio,39093,1,0 +2020-03-15,Lorain,Ohio,39093,2,0 +2020-03-16,Lorain,Ohio,39093,3,0 +2020-03-17,Lorain,Ohio,39093,4,0 +2020-03-18,Lorain,Ohio,39093,6,0 +2020-03-19,Lorain,Ohio,39093,6,0 +2020-03-20,Lorain,Ohio,39093,10,0 +2020-03-21,Lorain,Ohio,39093,14,0 +2020-03-22,Lorain,Ohio,39093,19,0 +2020-03-23,Lorain,Ohio,39093,24,0 +2020-03-24,Lorain,Ohio,39093,30,0 +2020-03-25,Lorain,Ohio,39093,37,0 +2020-03-26,Lorain,Ohio,39093,44,0 +2020-03-27,Lorain,Ohio,39093,56,0 +2020-03-28,Lorain,Ohio,39093,65,0 +2020-03-29,Lorain,Ohio,39093,74,1 +2020-03-30,Lorain,Ohio,39093,78,2 +2020-03-31,Lorain,Ohio,39093,82,2 +2020-04-01,Lorain,Ohio,39093,85,2 +2020-04-02,Lorain,Ohio,39093,90,2 +2020-04-03,Lorain,Ohio,39093,95,2 +2020-04-04,Lorain,Ohio,39093,105,2 +2020-04-05,Lorain,Ohio,39093,110,3 +2020-04-06,Lorain,Ohio,39093,117,3 +2020-04-07,Lorain,Ohio,39093,116,3 +2020-04-08,Lorain,Ohio,39093,136,4 +2020-04-09,Lorain,Ohio,39093,140,5 +2020-04-10,Lorain,Ohio,39093,150,5 +2020-04-11,Lorain,Ohio,39093,161,5 +2020-04-12,Lorain,Ohio,39093,176,5 +2020-04-13,Lorain,Ohio,39093,184,6 +2020-04-14,Lorain,Ohio,39093,191,7 +2020-04-15,Lorain,Ohio,39093,203,7 +2020-04-16,Lorain,Ohio,39093,221,9 +2020-04-17,Lorain,Ohio,39093,245,14 +2020-04-18,Lorain,Ohio,39093,291,16 +2020-04-19,Lorain,Ohio,39093,294,17 +2020-04-20,Lorain,Ohio,39093,303,18 +2020-04-21,Lorain,Ohio,39093,320,19 +2020-04-22,Lorain,Ohio,39093,332,19 +2020-04-23,Lorain,Ohio,39093,344,19 +2020-04-24,Lorain,Ohio,39093,366,19 +2020-04-25,Lorain,Ohio,39093,374,19 +2020-04-26,Lorain,Ohio,39093,377,19 +2020-04-27,Lorain,Ohio,39093,395,20 +2020-04-28,Lorain,Ohio,39093,406,20 +2020-04-29,Lorain,Ohio,39093,418,22 +2020-04-30,Lorain,Ohio,39093,452,30 +2020-05-01,Lorain,Ohio,39093,471,32 +2020-05-02,Lorain,Ohio,39093,480,33 +2020-05-03,Lorain,Ohio,39093,490,35 +2020-05-04,Lorain,Ohio,39093,503,37 +2020-05-05,Lorain,Ohio,39093,510,39 +2020-05-06,Lorain,Ohio,39093,518,41 +2020-05-07,Lorain,Ohio,39093,528,42 +2020-05-08,Lorain,Ohio,39093,537,44 +2020-05-09,Lorain,Ohio,39093,543,44 +2020-05-10,Lorain,Ohio,39093,548,44 +2020-05-11,Lorain,Ohio,39093,554,45 +2020-05-12,Lorain,Ohio,39093,560,46 +2020-05-13,Lorain,Ohio,39093,569,49 +2020-05-14,Lorain,Ohio,39093,576,53 +2020-05-15,Lorain,Ohio,39093,585,56 +2020-05-16,Lorain,Ohio,39093,589,57 +2020-05-17,Lorain,Ohio,39093,595,57 +2020-05-18,Lorain,Ohio,39093,605,57 +2020-05-19,Lorain,Ohio,39093,610,58 +2020-05-20,Lorain,Ohio,39093,620,58 +2020-05-21,Lorain,Ohio,39093,624,58 +2020-05-22,Lorain,Ohio,39093,626,58 +2020-05-23,Lorain,Ohio,39093,637,59 +2020-05-24,Lorain,Ohio,39093,641,58 +2020-05-25,Lorain,Ohio,39093,648,58 +2020-05-26,Lorain,Ohio,39093,653,58 +2020-05-27,Lorain,Ohio,39093,659,59 +2020-05-28,Lorain,Ohio,39093,667,59 +2020-05-29,Lorain,Ohio,39093,672,59 +2020-05-30,Lorain,Ohio,39093,678,59 +2020-05-31,Lorain,Ohio,39093,687,59 +2020-06-01,Lorain,Ohio,39093,692,59 +2020-06-02,Lorain,Ohio,39093,702,59 +2020-06-03,Lorain,Ohio,39093,709,60 +2020-06-04,Lorain,Ohio,39093,722,60 +2020-06-05,Lorain,Ohio,39093,730,61 +2020-06-06,Lorain,Ohio,39093,737,61 +2020-06-07,Lorain,Ohio,39093,747,61 +2020-06-08,Lorain,Ohio,39093,755,62 +2020-06-09,Lorain,Ohio,39093,757,61 +2020-06-10,Lorain,Ohio,39093,762,61 +2020-06-11,Lorain,Ohio,39093,772,61 +2020-06-12,Lorain,Ohio,39093,779,61 +2020-06-13,Lorain,Ohio,39093,786,62 +2020-06-14,Lorain,Ohio,39093,794,62 +2020-06-15,Lorain,Ohio,39093,804,62 +2020-06-16,Lorain,Ohio,39093,807,63 +2020-06-17,Lorain,Ohio,39093,814,63 +2020-06-18,Lorain,Ohio,39093,822,64 +2020-06-19,Lorain,Ohio,39093,825,65 +2020-06-20,Lorain,Ohio,39093,831,66 +2020-06-21,Lorain,Ohio,39093,843,66 +2020-06-22,Lorain,Ohio,39093,854,66 +2020-06-23,Lorain,Ohio,39093,867,66 +2020-06-24,Lorain,Ohio,39093,878,66 +2020-06-25,Lorain,Ohio,39093,889,67 +2020-06-26,Lorain,Ohio,39093,901,67 +2020-06-27,Lorain,Ohio,39093,912,67 +2020-06-28,Lorain,Ohio,39093,925,67 +2020-06-29,Lorain,Ohio,39093,937,67 +2020-06-30,Lorain,Ohio,39093,947,67 +2020-07-01,Lorain,Ohio,39093,962,67 +2020-07-02,Lorain,Ohio,39093,962,67 +2020-07-03,Lorain,Ohio,39093,983,67 +2020-07-04,Lorain,Ohio,39093,997,67 +2020-07-05,Lorain,Ohio,39093,1021,67 +2020-07-06,Lorain,Ohio,39093,1035,67 +2020-07-07,Lorain,Ohio,39093,1051,67 +2020-07-08,Lorain,Ohio,39093,1064,68 +2020-07-09,Lorain,Ohio,39093,1073,68 +2020-03-15,Lucas,Ohio,39095,1,0 +2020-03-16,Lucas,Ohio,39095,1,0 +2020-03-17,Lucas,Ohio,39095,1,0 +2020-03-18,Lucas,Ohio,39095,1,0 +2020-03-19,Lucas,Ohio,39095,1,0 +2020-03-20,Lucas,Ohio,39095,2,1 +2020-03-21,Lucas,Ohio,39095,4,1 +2020-03-22,Lucas,Ohio,39095,5,1 +2020-03-23,Lucas,Ohio,39095,9,1 +2020-03-24,Lucas,Ohio,39095,11,1 +2020-03-25,Lucas,Ohio,39095,23,2 +2020-03-26,Lucas,Ohio,39095,35,2 +2020-03-27,Lucas,Ohio,39095,50,2 +2020-03-28,Lucas,Ohio,39095,67,2 +2020-03-29,Lucas,Ohio,39095,94,2 +2020-03-30,Lucas,Ohio,39095,114,3 +2020-03-31,Lucas,Ohio,39095,133,3 +2020-04-01,Lucas,Ohio,39095,171,3 +2020-04-02,Lucas,Ohio,39095,206,3 +2020-04-03,Lucas,Ohio,39095,233,4 +2020-04-04,Lucas,Ohio,39095,272,7 +2020-04-05,Lucas,Ohio,39095,302,8 +2020-04-06,Lucas,Ohio,39095,321,12 +2020-04-07,Lucas,Ohio,39095,347,16 +2020-04-08,Lucas,Ohio,39095,371,16 +2020-04-09,Lucas,Ohio,39095,403,16 +2020-04-10,Lucas,Ohio,39095,443,20 +2020-04-11,Lucas,Ohio,39095,490,21 +2020-04-12,Lucas,Ohio,39095,503,21 +2020-04-13,Lucas,Ohio,39095,514,21 +2020-04-14,Lucas,Ohio,39095,540,25 +2020-04-15,Lucas,Ohio,39095,596,28 +2020-04-16,Lucas,Ohio,39095,644,28 +2020-04-17,Lucas,Ohio,39095,682,28 +2020-04-18,Lucas,Ohio,39095,724,31 +2020-04-19,Lucas,Ohio,39095,789,33 +2020-04-20,Lucas,Ohio,39095,823,33 +2020-04-21,Lucas,Ohio,39095,853,36 +2020-04-22,Lucas,Ohio,39095,878,44 +2020-04-23,Lucas,Ohio,39095,936,55 +2020-04-24,Lucas,Ohio,39095,985,58 +2020-04-25,Lucas,Ohio,39095,1033,59 +2020-04-26,Lucas,Ohio,39095,1104,59 +2020-04-27,Lucas,Ohio,39095,1130,61 +2020-04-28,Lucas,Ohio,39095,1166,66 +2020-04-29,Lucas,Ohio,39095,1208,114 +2020-04-30,Lucas,Ohio,39095,1251,117 +2020-05-01,Lucas,Ohio,39095,1297,119 +2020-05-02,Lucas,Ohio,39095,1331,119 +2020-05-03,Lucas,Ohio,39095,1376,119 +2020-05-04,Lucas,Ohio,39095,1429,120 +2020-05-05,Lucas,Ohio,39095,1478,133 +2020-05-06,Lucas,Ohio,39095,1527,151 +2020-05-07,Lucas,Ohio,39095,1583,155 +2020-05-08,Lucas,Ohio,39095,1665,161 +2020-05-09,Lucas,Ohio,39095,1710,164 +2020-05-10,Lucas,Ohio,39095,1757,164 +2020-05-11,Lucas,Ohio,39095,1806,165 +2020-05-12,Lucas,Ohio,39095,1836,179 +2020-05-13,Lucas,Ohio,39095,1858,187 +2020-05-14,Lucas,Ohio,39095,1883,195 +2020-05-15,Lucas,Ohio,39095,1921,204 +2020-05-16,Lucas,Ohio,39095,1945,203 +2020-05-17,Lucas,Ohio,39095,1960,204 +2020-05-18,Lucas,Ohio,39095,1986,207 +2020-05-19,Lucas,Ohio,39095,1999,209 +2020-05-20,Lucas,Ohio,39095,2021,214 +2020-05-21,Lucas,Ohio,39095,2056,219 +2020-05-22,Lucas,Ohio,39095,2071,218 +2020-05-23,Lucas,Ohio,39095,2087,228 +2020-05-24,Lucas,Ohio,39095,2107,229 +2020-05-25,Lucas,Ohio,39095,2126,229 +2020-05-26,Lucas,Ohio,39095,2152,229 +2020-05-27,Lucas,Ohio,39095,2162,233 +2020-05-28,Lucas,Ohio,39095,2178,240 +2020-05-29,Lucas,Ohio,39095,2202,240 +2020-05-30,Lucas,Ohio,39095,2241,242 +2020-05-31,Lucas,Ohio,39095,2267,242 +2020-06-01,Lucas,Ohio,39095,2277,248 +2020-06-02,Lucas,Ohio,39095,2282,252 +2020-06-03,Lucas,Ohio,39095,2296,256 +2020-06-04,Lucas,Ohio,39095,2313,263 +2020-06-05,Lucas,Ohio,39095,2329,263 +2020-06-06,Lucas,Ohio,39095,2340,265 +2020-06-07,Lucas,Ohio,39095,2348,265 +2020-06-08,Lucas,Ohio,39095,2354,266 +2020-06-09,Lucas,Ohio,39095,2372,267 +2020-06-10,Lucas,Ohio,39095,2390,270 +2020-06-11,Lucas,Ohio,39095,2394,272 +2020-06-12,Lucas,Ohio,39095,2411,272 +2020-06-13,Lucas,Ohio,39095,2419,280 +2020-06-14,Lucas,Ohio,39095,2428,280 +2020-06-15,Lucas,Ohio,39095,2457,282 +2020-06-16,Lucas,Ohio,39095,2460,286 +2020-06-17,Lucas,Ohio,39095,2462,289 +2020-06-18,Lucas,Ohio,39095,2468,291 +2020-06-19,Lucas,Ohio,39095,2478,293 +2020-06-20,Lucas,Ohio,39095,2483,294 +2020-06-21,Lucas,Ohio,39095,2490,294 +2020-06-22,Lucas,Ohio,39095,2511,294 +2020-06-23,Lucas,Ohio,39095,2516,298 +2020-06-24,Lucas,Ohio,39095,2527,299 +2020-06-25,Lucas,Ohio,39095,2534,299 +2020-06-26,Lucas,Ohio,39095,2538,299 +2020-06-27,Lucas,Ohio,39095,2549,299 +2020-06-28,Lucas,Ohio,39095,2567,299 +2020-06-29,Lucas,Ohio,39095,2584,299 +2020-06-30,Lucas,Ohio,39095,2600,301 +2020-07-01,Lucas,Ohio,39095,2628,302 +2020-07-02,Lucas,Ohio,39095,2628,302 +2020-07-03,Lucas,Ohio,39095,2669,302 +2020-07-04,Lucas,Ohio,39095,2700,302 +2020-07-05,Lucas,Ohio,39095,2723,302 +2020-07-06,Lucas,Ohio,39095,2752,302 +2020-07-07,Lucas,Ohio,39095,2788,303 +2020-07-08,Lucas,Ohio,39095,2836,303 +2020-07-09,Lucas,Ohio,39095,2859,304 +2020-03-23,Madison,Ohio,39097,1,0 +2020-03-24,Madison,Ohio,39097,1,0 +2020-03-25,Madison,Ohio,39097,2,0 +2020-03-26,Madison,Ohio,39097,3,0 +2020-03-27,Madison,Ohio,39097,4,0 +2020-03-28,Madison,Ohio,39097,4,0 +2020-03-29,Madison,Ohio,39097,4,0 +2020-03-30,Madison,Ohio,39097,5,0 +2020-03-31,Madison,Ohio,39097,7,0 +2020-04-01,Madison,Ohio,39097,9,2 +2020-04-02,Madison,Ohio,39097,11,2 +2020-04-03,Madison,Ohio,39097,12,2 +2020-04-04,Madison,Ohio,39097,15,2 +2020-04-05,Madison,Ohio,39097,17,2 +2020-04-06,Madison,Ohio,39097,17,2 +2020-04-07,Madison,Ohio,39097,18,2 +2020-04-08,Madison,Ohio,39097,20,2 +2020-04-09,Madison,Ohio,39097,21,2 +2020-04-10,Madison,Ohio,39097,23,2 +2020-04-11,Madison,Ohio,39097,23,3 +2020-04-12,Madison,Ohio,39097,23,3 +2020-04-13,Madison,Ohio,39097,24,3 +2020-04-14,Madison,Ohio,39097,24,3 +2020-04-15,Madison,Ohio,39097,23,3 +2020-04-16,Madison,Ohio,39097,29,3 +2020-04-17,Madison,Ohio,39097,27,3 +2020-04-18,Madison,Ohio,39097,30,3 +2020-04-19,Madison,Ohio,39097,30,3 +2020-04-20,Madison,Ohio,39097,30,3 +2020-04-21,Madison,Ohio,39097,30,3 +2020-04-22,Madison,Ohio,39097,30,3 +2020-04-23,Madison,Ohio,39097,38,3 +2020-04-24,Madison,Ohio,39097,47,3 +2020-04-25,Madison,Ohio,39097,51,3 +2020-04-26,Madison,Ohio,39097,50,3 +2020-04-27,Madison,Ohio,39097,52,3 +2020-04-28,Madison,Ohio,39097,56,3 +2020-04-29,Madison,Ohio,39097,60,3 +2020-04-30,Madison,Ohio,39097,63,3 +2020-05-01,Madison,Ohio,39097,64,3 +2020-05-02,Madison,Ohio,39097,64,3 +2020-05-03,Madison,Ohio,39097,67,3 +2020-05-04,Madison,Ohio,39097,71,3 +2020-05-05,Madison,Ohio,39097,73,3 +2020-05-06,Madison,Ohio,39097,73,3 +2020-05-07,Madison,Ohio,39097,73,3 +2020-05-08,Madison,Ohio,39097,78,3 +2020-05-09,Madison,Ohio,39097,81,3 +2020-05-10,Madison,Ohio,39097,83,3 +2020-05-11,Madison,Ohio,39097,84,3 +2020-05-12,Madison,Ohio,39097,87,5 +2020-05-13,Madison,Ohio,39097,88,5 +2020-05-14,Madison,Ohio,39097,93,5 +2020-05-15,Madison,Ohio,39097,95,5 +2020-05-16,Madison,Ohio,39097,98,5 +2020-05-17,Madison,Ohio,39097,98,5 +2020-05-18,Madison,Ohio,39097,99,5 +2020-05-19,Madison,Ohio,39097,100,6 +2020-05-20,Madison,Ohio,39097,102,7 +2020-05-21,Madison,Ohio,39097,105,7 +2020-05-22,Madison,Ohio,39097,128,7 +2020-05-23,Madison,Ohio,39097,132,7 +2020-05-24,Madison,Ohio,39097,133,7 +2020-05-25,Madison,Ohio,39097,134,7 +2020-05-26,Madison,Ohio,39097,141,7 +2020-05-27,Madison,Ohio,39097,144,7 +2020-05-28,Madison,Ohio,39097,148,7 +2020-05-29,Madison,Ohio,39097,152,7 +2020-05-30,Madison,Ohio,39097,152,7 +2020-05-31,Madison,Ohio,39097,156,7 +2020-06-01,Madison,Ohio,39097,155,7 +2020-06-02,Madison,Ohio,39097,157,7 +2020-06-03,Madison,Ohio,39097,162,7 +2020-06-04,Madison,Ohio,39097,163,7 +2020-06-05,Madison,Ohio,39097,164,7 +2020-06-06,Madison,Ohio,39097,164,7 +2020-06-07,Madison,Ohio,39097,166,7 +2020-06-08,Madison,Ohio,39097,167,7 +2020-06-09,Madison,Ohio,39097,167,7 +2020-06-10,Madison,Ohio,39097,167,7 +2020-06-11,Madison,Ohio,39097,167,7 +2020-06-12,Madison,Ohio,39097,168,7 +2020-06-13,Madison,Ohio,39097,168,7 +2020-06-14,Madison,Ohio,39097,168,7 +2020-06-15,Madison,Ohio,39097,168,7 +2020-06-16,Madison,Ohio,39097,168,7 +2020-06-17,Madison,Ohio,39097,169,7 +2020-06-18,Madison,Ohio,39097,170,7 +2020-06-19,Madison,Ohio,39097,172,7 +2020-06-20,Madison,Ohio,39097,174,7 +2020-06-21,Madison,Ohio,39097,174,7 +2020-06-22,Madison,Ohio,39097,175,7 +2020-06-23,Madison,Ohio,39097,176,8 +2020-06-24,Madison,Ohio,39097,177,8 +2020-06-25,Madison,Ohio,39097,179,8 +2020-06-26,Madison,Ohio,39097,181,8 +2020-06-27,Madison,Ohio,39097,182,8 +2020-06-28,Madison,Ohio,39097,184,8 +2020-06-29,Madison,Ohio,39097,185,8 +2020-06-30,Madison,Ohio,39097,187,8 +2020-07-01,Madison,Ohio,39097,188,8 +2020-07-02,Madison,Ohio,39097,188,8 +2020-07-03,Madison,Ohio,39097,192,8 +2020-07-04,Madison,Ohio,39097,193,8 +2020-07-05,Madison,Ohio,39097,195,8 +2020-07-06,Madison,Ohio,39097,197,8 +2020-07-07,Madison,Ohio,39097,199,9 +2020-07-08,Madison,Ohio,39097,202,9 +2020-07-09,Madison,Ohio,39097,206,9 +2020-03-17,Mahoning,Ohio,39099,1,0 +2020-03-18,Mahoning,Ohio,39099,3,0 +2020-03-19,Mahoning,Ohio,39099,5,0 +2020-03-20,Mahoning,Ohio,39099,7,0 +2020-03-21,Mahoning,Ohio,39099,14,0 +2020-03-22,Mahoning,Ohio,39099,18,0 +2020-03-23,Mahoning,Ohio,39099,23,0 +2020-03-24,Mahoning,Ohio,39099,28,0 +2020-03-25,Mahoning,Ohio,39099,42,0 +2020-03-26,Mahoning,Ohio,39099,51,1 +2020-03-27,Mahoning,Ohio,39099,68,2 +2020-03-28,Mahoning,Ohio,39099,80,2 +2020-03-29,Mahoning,Ohio,39099,84,2 +2020-03-30,Mahoning,Ohio,39099,117,4 +2020-03-31,Mahoning,Ohio,39099,153,9 +2020-04-01,Mahoning,Ohio,39099,177,10 +2020-04-02,Mahoning,Ohio,39099,192,11 +2020-04-03,Mahoning,Ohio,39099,203,12 +2020-04-04,Mahoning,Ohio,39099,250,13 +2020-04-05,Mahoning,Ohio,39099,261,15 +2020-04-06,Mahoning,Ohio,39099,272,17 +2020-04-07,Mahoning,Ohio,39099,300,19 +2020-04-08,Mahoning,Ohio,39099,305,28 +2020-04-09,Mahoning,Ohio,39099,334,28 +2020-04-10,Mahoning,Ohio,39099,358,31 +2020-04-11,Mahoning,Ohio,39099,375,31 +2020-04-12,Mahoning,Ohio,39099,417,31 +2020-04-13,Mahoning,Ohio,39099,443,31 +2020-04-14,Mahoning,Ohio,39099,469,35 +2020-04-15,Mahoning,Ohio,39099,486,41 +2020-04-16,Mahoning,Ohio,39099,512,41 +2020-04-17,Mahoning,Ohio,39099,547,44 +2020-04-18,Mahoning,Ohio,39099,572,45 +2020-04-19,Mahoning,Ohio,39099,589,48 +2020-04-20,Mahoning,Ohio,39099,604,50 +2020-04-21,Mahoning,Ohio,39099,621,54 +2020-04-22,Mahoning,Ohio,39099,635,56 +2020-04-23,Mahoning,Ohio,39099,666,62 +2020-04-24,Mahoning,Ohio,39099,688,65 +2020-04-25,Mahoning,Ohio,39099,721,66 +2020-04-26,Mahoning,Ohio,39099,737,66 +2020-04-27,Mahoning,Ohio,39099,764,65 +2020-04-28,Mahoning,Ohio,39099,784,67 +2020-04-29,Mahoning,Ohio,39099,804,81 +2020-04-30,Mahoning,Ohio,39099,828,80 +2020-05-01,Mahoning,Ohio,39099,853,82 +2020-05-02,Mahoning,Ohio,39099,883,82 +2020-05-03,Mahoning,Ohio,39099,937,83 +2020-05-04,Mahoning,Ohio,39099,961,83 +2020-05-05,Mahoning,Ohio,39099,998,92 +2020-05-06,Mahoning,Ohio,39099,1024,108 +2020-05-07,Mahoning,Ohio,39099,1044,115 +2020-05-08,Mahoning,Ohio,39099,1087,119 +2020-05-09,Mahoning,Ohio,39099,1104,122 +2020-05-10,Mahoning,Ohio,39099,1119,122 +2020-05-11,Mahoning,Ohio,39099,1144,123 +2020-05-12,Mahoning,Ohio,39099,1150,132 +2020-05-13,Mahoning,Ohio,39099,1163,134 +2020-05-14,Mahoning,Ohio,39099,1174,138 +2020-05-15,Mahoning,Ohio,39099,1185,145 +2020-05-16,Mahoning,Ohio,39099,1199,146 +2020-05-17,Mahoning,Ohio,39099,1212,146 +2020-05-18,Mahoning,Ohio,39099,1226,148 +2020-05-19,Mahoning,Ohio,39099,1247,156 +2020-05-20,Mahoning,Ohio,39099,1252,160 +2020-05-21,Mahoning,Ohio,39099,1277,162 +2020-05-22,Mahoning,Ohio,39099,1295,163 +2020-05-23,Mahoning,Ohio,39099,1317,169 +2020-05-24,Mahoning,Ohio,39099,1334,169 +2020-05-25,Mahoning,Ohio,39099,1341,169 +2020-05-26,Mahoning,Ohio,39099,1347,171 +2020-05-27,Mahoning,Ohio,39099,1367,173 +2020-05-28,Mahoning,Ohio,39099,1397,173 +2020-05-29,Mahoning,Ohio,39099,1405,173 +2020-05-30,Mahoning,Ohio,39099,1428,174 +2020-05-31,Mahoning,Ohio,39099,1431,174 +2020-06-01,Mahoning,Ohio,39099,1438,178 +2020-06-02,Mahoning,Ohio,39099,1456,186 +2020-06-03,Mahoning,Ohio,39099,1463,188 +2020-06-04,Mahoning,Ohio,39099,1466,191 +2020-06-05,Mahoning,Ohio,39099,1486,191 +2020-06-06,Mahoning,Ohio,39099,1502,194 +2020-06-07,Mahoning,Ohio,39099,1511,194 +2020-06-08,Mahoning,Ohio,39099,1516,195 +2020-06-09,Mahoning,Ohio,39099,1522,195 +2020-06-10,Mahoning,Ohio,39099,1529,195 +2020-06-11,Mahoning,Ohio,39099,1563,202 +2020-06-12,Mahoning,Ohio,39099,1576,204 +2020-06-13,Mahoning,Ohio,39099,1586,214 +2020-06-14,Mahoning,Ohio,39099,1595,214 +2020-06-15,Mahoning,Ohio,39099,1600,216 +2020-06-16,Mahoning,Ohio,39099,1607,218 +2020-06-17,Mahoning,Ohio,39099,1606,218 +2020-06-18,Mahoning,Ohio,39099,1619,218 +2020-06-19,Mahoning,Ohio,39099,1632,223 +2020-06-20,Mahoning,Ohio,39099,1639,224 +2020-06-21,Mahoning,Ohio,39099,1654,224 +2020-06-22,Mahoning,Ohio,39099,1665,224 +2020-06-23,Mahoning,Ohio,39099,1669,225 +2020-06-24,Mahoning,Ohio,39099,1680,226 +2020-06-25,Mahoning,Ohio,39099,1682,227 +2020-06-26,Mahoning,Ohio,39099,1695,227 +2020-06-27,Mahoning,Ohio,39099,1705,227 +2020-06-28,Mahoning,Ohio,39099,1720,228 +2020-06-29,Mahoning,Ohio,39099,1736,228 +2020-06-30,Mahoning,Ohio,39099,1741,228 +2020-07-01,Mahoning,Ohio,39099,1752,228 +2020-07-02,Mahoning,Ohio,39099,1752,228 +2020-07-03,Mahoning,Ohio,39099,1805,231 +2020-07-04,Mahoning,Ohio,39099,1818,231 +2020-07-05,Mahoning,Ohio,39099,1825,232 +2020-07-06,Mahoning,Ohio,39099,1832,232 +2020-07-07,Mahoning,Ohio,39099,1849,238 +2020-07-08,Mahoning,Ohio,39099,1861,239 +2020-07-09,Mahoning,Ohio,39099,1885,239 +2020-03-20,Marion,Ohio,39101,1,0 +2020-03-21,Marion,Ohio,39101,1,0 +2020-03-22,Marion,Ohio,39101,1,0 +2020-03-23,Marion,Ohio,39101,3,0 +2020-03-24,Marion,Ohio,39101,4,0 +2020-03-25,Marion,Ohio,39101,4,0 +2020-03-26,Marion,Ohio,39101,4,0 +2020-03-27,Marion,Ohio,39101,5,0 +2020-03-28,Marion,Ohio,39101,5,0 +2020-03-29,Marion,Ohio,39101,6,0 +2020-03-30,Marion,Ohio,39101,7,0 +2020-03-31,Marion,Ohio,39101,8,0 +2020-04-01,Marion,Ohio,39101,9,0 +2020-04-02,Marion,Ohio,39101,10,0 +2020-04-03,Marion,Ohio,39101,11,0 +2020-04-04,Marion,Ohio,39101,12,0 +2020-04-05,Marion,Ohio,39101,19,0 +2020-04-06,Marion,Ohio,39101,25,0 +2020-04-07,Marion,Ohio,39101,28,0 +2020-04-08,Marion,Ohio,39101,32,0 +2020-04-09,Marion,Ohio,39101,40,0 +2020-04-10,Marion,Ohio,39101,42,0 +2020-04-11,Marion,Ohio,39101,49,0 +2020-04-12,Marion,Ohio,39101,53,0 +2020-04-13,Marion,Ohio,39101,91,0 +2020-04-14,Marion,Ohio,39101,110,0 +2020-04-15,Marion,Ohio,39101,164,0 +2020-04-16,Marion,Ohio,39101,276,1 +2020-04-17,Marion,Ohio,39101,428,1 +2020-04-18,Marion,Ohio,39101,983,1 +2020-04-19,Marion,Ohio,39101,1834,1 +2020-04-20,Marion,Ohio,39101,2073,1 +2020-04-21,Marion,Ohio,39101,2132,1 +2020-04-22,Marion,Ohio,39101,2137,3 +2020-04-23,Marion,Ohio,39101,2161,3 +2020-04-24,Marion,Ohio,39101,2169,4 +2020-04-25,Marion,Ohio,39101,2172,4 +2020-04-26,Marion,Ohio,39101,2178,4 +2020-04-27,Marion,Ohio,39101,2188,4 +2020-04-28,Marion,Ohio,39101,2191,4 +2020-04-29,Marion,Ohio,39101,2196,4 +2020-04-30,Marion,Ohio,39101,2196,4 +2020-05-01,Marion,Ohio,39101,2276,4 +2020-05-02,Marion,Ohio,39101,2294,4 +2020-05-03,Marion,Ohio,39101,2329,4 +2020-05-04,Marion,Ohio,39101,2332,4 +2020-05-05,Marion,Ohio,39101,2335,9 +2020-05-06,Marion,Ohio,39101,2347,13 +2020-05-07,Marion,Ohio,39101,2350,13 +2020-05-08,Marion,Ohio,39101,2366,13 +2020-05-09,Marion,Ohio,39101,2381,13 +2020-05-10,Marion,Ohio,39101,2387,13 +2020-05-11,Marion,Ohio,39101,2404,14 +2020-05-12,Marion,Ohio,39101,2412,14 +2020-05-13,Marion,Ohio,39101,2419,15 +2020-05-14,Marion,Ohio,39101,2431,15 +2020-05-15,Marion,Ohio,39101,2436,15 +2020-05-16,Marion,Ohio,39101,2449,15 +2020-05-17,Marion,Ohio,39101,2500,15 +2020-05-18,Marion,Ohio,39101,2513,15 +2020-05-19,Marion,Ohio,39101,2524,15 +2020-05-20,Marion,Ohio,39101,2540,18 +2020-05-21,Marion,Ohio,39101,2557,18 +2020-05-22,Marion,Ohio,39101,2581,18 +2020-05-23,Marion,Ohio,39101,2608,21 +2020-05-24,Marion,Ohio,39101,2617,21 +2020-05-25,Marion,Ohio,39101,2619,21 +2020-05-26,Marion,Ohio,39101,2623,23 +2020-05-27,Marion,Ohio,39101,2628,23 +2020-05-28,Marion,Ohio,39101,2642,25 +2020-05-29,Marion,Ohio,39101,2657,28 +2020-05-30,Marion,Ohio,39101,2660,28 +2020-05-31,Marion,Ohio,39101,2666,28 +2020-06-01,Marion,Ohio,39101,2668,28 +2020-06-02,Marion,Ohio,39101,2674,30 +2020-06-03,Marion,Ohio,39101,2679,31 +2020-06-04,Marion,Ohio,39101,2686,31 +2020-06-05,Marion,Ohio,39101,2688,32 +2020-06-06,Marion,Ohio,39101,2689,32 +2020-06-07,Marion,Ohio,39101,2691,32 +2020-06-08,Marion,Ohio,39101,2694,32 +2020-06-09,Marion,Ohio,39101,2695,32 +2020-06-10,Marion,Ohio,39101,2697,33 +2020-06-11,Marion,Ohio,39101,2699,33 +2020-06-12,Marion,Ohio,39101,2701,33 +2020-06-13,Marion,Ohio,39101,2704,33 +2020-06-14,Marion,Ohio,39101,2706,33 +2020-06-15,Marion,Ohio,39101,2706,33 +2020-06-16,Marion,Ohio,39101,2712,33 +2020-06-17,Marion,Ohio,39101,2712,33 +2020-06-18,Marion,Ohio,39101,2713,34 +2020-06-19,Marion,Ohio,39101,2715,34 +2020-06-20,Marion,Ohio,39101,2715,34 +2020-06-21,Marion,Ohio,39101,2715,34 +2020-06-22,Marion,Ohio,39101,2713,35 +2020-06-23,Marion,Ohio,39101,2713,35 +2020-06-24,Marion,Ohio,39101,2714,35 +2020-06-25,Marion,Ohio,39101,2717,36 +2020-06-26,Marion,Ohio,39101,2717,36 +2020-06-27,Marion,Ohio,39101,2719,37 +2020-06-28,Marion,Ohio,39101,2721,37 +2020-06-29,Marion,Ohio,39101,2724,37 +2020-06-30,Marion,Ohio,39101,2726,38 +2020-07-01,Marion,Ohio,39101,2731,38 +2020-07-02,Marion,Ohio,39101,2731,38 +2020-07-03,Marion,Ohio,39101,2730,38 +2020-07-04,Marion,Ohio,39101,2730,38 +2020-07-05,Marion,Ohio,39101,2732,38 +2020-07-06,Marion,Ohio,39101,2734,38 +2020-07-07,Marion,Ohio,39101,2734,39 +2020-07-08,Marion,Ohio,39101,2736,39 +2020-07-09,Marion,Ohio,39101,2737,39 +2020-03-15,Medina,Ohio,39103,1,0 +2020-03-16,Medina,Ohio,39103,2,0 +2020-03-17,Medina,Ohio,39103,3,0 +2020-03-18,Medina,Ohio,39103,4,0 +2020-03-19,Medina,Ohio,39103,5,0 +2020-03-20,Medina,Ohio,39103,5,0 +2020-03-21,Medina,Ohio,39103,9,0 +2020-03-22,Medina,Ohio,39103,10,0 +2020-03-23,Medina,Ohio,39103,15,0 +2020-03-24,Medina,Ohio,39103,15,0 +2020-03-25,Medina,Ohio,39103,22,0 +2020-03-26,Medina,Ohio,39103,24,0 +2020-03-27,Medina,Ohio,39103,32,0 +2020-03-28,Medina,Ohio,39103,37,0 +2020-03-29,Medina,Ohio,39103,45,1 +2020-03-30,Medina,Ohio,39103,48,1 +2020-03-31,Medina,Ohio,39103,55,1 +2020-04-01,Medina,Ohio,39103,59,1 +2020-04-02,Medina,Ohio,39103,68,1 +2020-04-03,Medina,Ohio,39103,72,1 +2020-04-04,Medina,Ohio,39103,74,2 +2020-04-05,Medina,Ohio,39103,78,2 +2020-04-06,Medina,Ohio,39103,83,3 +2020-04-07,Medina,Ohio,39103,88,3 +2020-04-08,Medina,Ohio,39103,94,4 +2020-04-09,Medina,Ohio,39103,98,5 +2020-04-10,Medina,Ohio,39103,103,5 +2020-04-11,Medina,Ohio,39103,107,7 +2020-04-12,Medina,Ohio,39103,110,7 +2020-04-13,Medina,Ohio,39103,112,8 +2020-04-14,Medina,Ohio,39103,116,9 +2020-04-15,Medina,Ohio,39103,122,10 +2020-04-16,Medina,Ohio,39103,126,10 +2020-04-17,Medina,Ohio,39103,130,10 +2020-04-18,Medina,Ohio,39103,132,10 +2020-04-19,Medina,Ohio,39103,135,10 +2020-04-20,Medina,Ohio,39103,139,11 +2020-04-21,Medina,Ohio,39103,142,11 +2020-04-22,Medina,Ohio,39103,143,12 +2020-04-23,Medina,Ohio,39103,148,13 +2020-04-24,Medina,Ohio,39103,149,13 +2020-04-25,Medina,Ohio,39103,153,13 +2020-04-26,Medina,Ohio,39103,160,13 +2020-04-27,Medina,Ohio,39103,159,13 +2020-04-28,Medina,Ohio,39103,162,14 +2020-04-29,Medina,Ohio,39103,165,15 +2020-04-30,Medina,Ohio,39103,167,15 +2020-05-01,Medina,Ohio,39103,171,15 +2020-05-02,Medina,Ohio,39103,172,15 +2020-05-03,Medina,Ohio,39103,172,16 +2020-05-04,Medina,Ohio,39103,175,16 +2020-05-05,Medina,Ohio,39103,177,16 +2020-05-06,Medina,Ohio,39103,184,16 +2020-05-07,Medina,Ohio,39103,185,17 +2020-05-08,Medina,Ohio,39103,190,17 +2020-05-09,Medina,Ohio,39103,193,17 +2020-05-10,Medina,Ohio,39103,194,17 +2020-05-11,Medina,Ohio,39103,195,17 +2020-05-12,Medina,Ohio,39103,203,17 +2020-05-13,Medina,Ohio,39103,205,17 +2020-05-14,Medina,Ohio,39103,207,18 +2020-05-15,Medina,Ohio,39103,210,18 +2020-05-16,Medina,Ohio,39103,212,18 +2020-05-17,Medina,Ohio,39103,216,18 +2020-05-18,Medina,Ohio,39103,224,18 +2020-05-19,Medina,Ohio,39103,229,18 +2020-05-20,Medina,Ohio,39103,237,18 +2020-05-21,Medina,Ohio,39103,245,18 +2020-05-22,Medina,Ohio,39103,258,18 +2020-05-23,Medina,Ohio,39103,274,19 +2020-05-24,Medina,Ohio,39103,288,19 +2020-05-25,Medina,Ohio,39103,302,19 +2020-05-26,Medina,Ohio,39103,307,19 +2020-05-27,Medina,Ohio,39103,310,20 +2020-05-28,Medina,Ohio,39103,313,22 +2020-05-29,Medina,Ohio,39103,328,23 +2020-05-30,Medina,Ohio,39103,337,23 +2020-05-31,Medina,Ohio,39103,337,22 +2020-06-01,Medina,Ohio,39103,346,24 +2020-06-02,Medina,Ohio,39103,356,23 +2020-06-03,Medina,Ohio,39103,366,23 +2020-06-04,Medina,Ohio,39103,376,25 +2020-06-05,Medina,Ohio,39103,376,24 +2020-06-06,Medina,Ohio,39103,382,25 +2020-06-07,Medina,Ohio,39103,387,25 +2020-06-08,Medina,Ohio,39103,388,25 +2020-06-09,Medina,Ohio,39103,390,25 +2020-06-10,Medina,Ohio,39103,394,26 +2020-06-11,Medina,Ohio,39103,394,26 +2020-06-12,Medina,Ohio,39103,397,26 +2020-06-13,Medina,Ohio,39103,396,30 +2020-06-14,Medina,Ohio,39103,397,30 +2020-06-15,Medina,Ohio,39103,398,30 +2020-06-16,Medina,Ohio,39103,400,30 +2020-06-17,Medina,Ohio,39103,402,31 +2020-06-18,Medina,Ohio,39103,404,31 +2020-06-19,Medina,Ohio,39103,406,31 +2020-06-20,Medina,Ohio,39103,407,31 +2020-06-21,Medina,Ohio,39103,413,31 +2020-06-22,Medina,Ohio,39103,416,31 +2020-06-23,Medina,Ohio,39103,426,31 +2020-06-24,Medina,Ohio,39103,434,31 +2020-06-25,Medina,Ohio,39103,441,31 +2020-06-26,Medina,Ohio,39103,451,31 +2020-06-27,Medina,Ohio,39103,460,31 +2020-06-28,Medina,Ohio,39103,464,31 +2020-06-29,Medina,Ohio,39103,469,31 +2020-06-30,Medina,Ohio,39103,480,32 +2020-07-01,Medina,Ohio,39103,491,32 +2020-07-02,Medina,Ohio,39103,491,32 +2020-07-03,Medina,Ohio,39103,506,32 +2020-07-04,Medina,Ohio,39103,508,32 +2020-07-05,Medina,Ohio,39103,516,32 +2020-07-06,Medina,Ohio,39103,523,32 +2020-07-07,Medina,Ohio,39103,536,32 +2020-07-08,Medina,Ohio,39103,543,32 +2020-07-09,Medina,Ohio,39103,548,32 +2020-04-07,Meigs,Ohio,39105,1,0 +2020-04-08,Meigs,Ohio,39105,1,0 +2020-04-09,Meigs,Ohio,39105,1,0 +2020-04-10,Meigs,Ohio,39105,1,0 +2020-04-11,Meigs,Ohio,39105,1,0 +2020-04-12,Meigs,Ohio,39105,1,0 +2020-04-13,Meigs,Ohio,39105,1,0 +2020-04-14,Meigs,Ohio,39105,1,0 +2020-04-15,Meigs,Ohio,39105,2,0 +2020-04-16,Meigs,Ohio,39105,2,0 +2020-04-17,Meigs,Ohio,39105,2,0 +2020-04-18,Meigs,Ohio,39105,2,0 +2020-04-19,Meigs,Ohio,39105,2,0 +2020-04-20,Meigs,Ohio,39105,2,0 +2020-04-21,Meigs,Ohio,39105,2,0 +2020-04-22,Meigs,Ohio,39105,2,0 +2020-04-23,Meigs,Ohio,39105,2,0 +2020-04-24,Meigs,Ohio,39105,2,0 +2020-04-25,Meigs,Ohio,39105,2,0 +2020-04-26,Meigs,Ohio,39105,2,0 +2020-04-27,Meigs,Ohio,39105,2,0 +2020-04-28,Meigs,Ohio,39105,2,0 +2020-04-29,Meigs,Ohio,39105,2,0 +2020-04-30,Meigs,Ohio,39105,2,0 +2020-05-01,Meigs,Ohio,39105,2,0 +2020-05-02,Meigs,Ohio,39105,2,0 +2020-05-03,Meigs,Ohio,39105,3,0 +2020-05-04,Meigs,Ohio,39105,3,0 +2020-05-05,Meigs,Ohio,39105,3,0 +2020-05-06,Meigs,Ohio,39105,3,0 +2020-05-07,Meigs,Ohio,39105,3,0 +2020-05-08,Meigs,Ohio,39105,3,0 +2020-05-09,Meigs,Ohio,39105,3,0 +2020-05-10,Meigs,Ohio,39105,3,0 +2020-05-11,Meigs,Ohio,39105,3,0 +2020-05-12,Meigs,Ohio,39105,3,0 +2020-05-13,Meigs,Ohio,39105,3,0 +2020-05-14,Meigs,Ohio,39105,3,0 +2020-05-15,Meigs,Ohio,39105,3,0 +2020-05-16,Meigs,Ohio,39105,3,0 +2020-05-17,Meigs,Ohio,39105,3,0 +2020-05-18,Meigs,Ohio,39105,3,0 +2020-05-19,Meigs,Ohio,39105,3,0 +2020-05-20,Meigs,Ohio,39105,3,0 +2020-05-21,Meigs,Ohio,39105,4,0 +2020-05-22,Meigs,Ohio,39105,5,0 +2020-05-23,Meigs,Ohio,39105,6,0 +2020-05-24,Meigs,Ohio,39105,6,0 +2020-05-25,Meigs,Ohio,39105,6,0 +2020-05-26,Meigs,Ohio,39105,6,0 +2020-05-27,Meigs,Ohio,39105,6,0 +2020-05-28,Meigs,Ohio,39105,6,0 +2020-05-29,Meigs,Ohio,39105,6,0 +2020-05-30,Meigs,Ohio,39105,6,0 +2020-05-31,Meigs,Ohio,39105,6,0 +2020-06-01,Meigs,Ohio,39105,6,0 +2020-06-02,Meigs,Ohio,39105,6,0 +2020-06-03,Meigs,Ohio,39105,6,0 +2020-06-04,Meigs,Ohio,39105,6,0 +2020-06-05,Meigs,Ohio,39105,6,0 +2020-06-06,Meigs,Ohio,39105,6,0 +2020-06-07,Meigs,Ohio,39105,6,0 +2020-06-08,Meigs,Ohio,39105,6,0 +2020-06-09,Meigs,Ohio,39105,6,0 +2020-06-10,Meigs,Ohio,39105,6,0 +2020-06-11,Meigs,Ohio,39105,6,0 +2020-06-12,Meigs,Ohio,39105,6,0 +2020-06-13,Meigs,Ohio,39105,6,0 +2020-06-14,Meigs,Ohio,39105,6,0 +2020-06-15,Meigs,Ohio,39105,6,0 +2020-06-16,Meigs,Ohio,39105,7,0 +2020-06-17,Meigs,Ohio,39105,8,0 +2020-06-18,Meigs,Ohio,39105,9,0 +2020-06-19,Meigs,Ohio,39105,9,0 +2020-06-20,Meigs,Ohio,39105,9,0 +2020-06-21,Meigs,Ohio,39105,9,0 +2020-06-22,Meigs,Ohio,39105,9,0 +2020-06-23,Meigs,Ohio,39105,9,0 +2020-06-24,Meigs,Ohio,39105,9,0 +2020-06-25,Meigs,Ohio,39105,10,0 +2020-06-26,Meigs,Ohio,39105,10,0 +2020-06-27,Meigs,Ohio,39105,11,0 +2020-06-28,Meigs,Ohio,39105,11,0 +2020-06-29,Meigs,Ohio,39105,11,0 +2020-06-30,Meigs,Ohio,39105,11,0 +2020-07-01,Meigs,Ohio,39105,11,0 +2020-07-02,Meigs,Ohio,39105,11,0 +2020-07-03,Meigs,Ohio,39105,11,0 +2020-07-04,Meigs,Ohio,39105,12,0 +2020-07-05,Meigs,Ohio,39105,12,0 +2020-07-06,Meigs,Ohio,39105,12,0 +2020-07-07,Meigs,Ohio,39105,12,0 +2020-07-08,Meigs,Ohio,39105,12,0 +2020-07-09,Meigs,Ohio,39105,12,0 +2020-03-25,Mercer,Ohio,39107,1,0 +2020-03-26,Mercer,Ohio,39107,1,0 +2020-03-27,Mercer,Ohio,39107,2,0 +2020-03-28,Mercer,Ohio,39107,2,0 +2020-03-29,Mercer,Ohio,39107,2,0 +2020-03-30,Mercer,Ohio,39107,2,0 +2020-03-31,Mercer,Ohio,39107,2,0 +2020-04-01,Mercer,Ohio,39107,4,0 +2020-04-02,Mercer,Ohio,39107,5,0 +2020-04-03,Mercer,Ohio,39107,6,0 +2020-04-04,Mercer,Ohio,39107,6,1 +2020-04-05,Mercer,Ohio,39107,7,1 +2020-04-06,Mercer,Ohio,39107,8,1 +2020-04-07,Mercer,Ohio,39107,8,1 +2020-04-08,Mercer,Ohio,39107,11,1 +2020-04-09,Mercer,Ohio,39107,12,1 +2020-04-10,Mercer,Ohio,39107,12,1 +2020-04-11,Mercer,Ohio,39107,12,1 +2020-04-12,Mercer,Ohio,39107,13,1 +2020-04-13,Mercer,Ohio,39107,13,1 +2020-04-14,Mercer,Ohio,39107,13,1 +2020-04-15,Mercer,Ohio,39107,13,1 +2020-04-16,Mercer,Ohio,39107,13,1 +2020-04-17,Mercer,Ohio,39107,13,1 +2020-04-18,Mercer,Ohio,39107,13,1 +2020-04-19,Mercer,Ohio,39107,13,1 +2020-04-20,Mercer,Ohio,39107,13,1 +2020-04-21,Mercer,Ohio,39107,13,1 +2020-04-22,Mercer,Ohio,39107,14,1 +2020-04-23,Mercer,Ohio,39107,16,1 +2020-04-24,Mercer,Ohio,39107,16,1 +2020-04-25,Mercer,Ohio,39107,18,1 +2020-04-26,Mercer,Ohio,39107,18,1 +2020-04-27,Mercer,Ohio,39107,18,1 +2020-04-28,Mercer,Ohio,39107,18,1 +2020-04-29,Mercer,Ohio,39107,18,1 +2020-04-30,Mercer,Ohio,39107,21,1 +2020-05-01,Mercer,Ohio,39107,26,1 +2020-05-02,Mercer,Ohio,39107,28,1 +2020-05-03,Mercer,Ohio,39107,29,1 +2020-05-04,Mercer,Ohio,39107,33,1 +2020-05-05,Mercer,Ohio,39107,38,1 +2020-05-06,Mercer,Ohio,39107,42,1 +2020-05-07,Mercer,Ohio,39107,42,1 +2020-05-08,Mercer,Ohio,39107,62,1 +2020-05-09,Mercer,Ohio,39107,66,1 +2020-05-10,Mercer,Ohio,39107,67,1 +2020-05-11,Mercer,Ohio,39107,84,1 +2020-05-12,Mercer,Ohio,39107,86,1 +2020-05-13,Mercer,Ohio,39107,90,1 +2020-05-14,Mercer,Ohio,39107,109,1 +2020-05-15,Mercer,Ohio,39107,115,1 +2020-05-16,Mercer,Ohio,39107,121,1 +2020-05-17,Mercer,Ohio,39107,133,2 +2020-05-18,Mercer,Ohio,39107,141,2 +2020-05-19,Mercer,Ohio,39107,148,2 +2020-05-20,Mercer,Ohio,39107,162,2 +2020-05-21,Mercer,Ohio,39107,163,3 +2020-05-22,Mercer,Ohio,39107,170,3 +2020-05-23,Mercer,Ohio,39107,178,3 +2020-05-24,Mercer,Ohio,39107,184,3 +2020-05-25,Mercer,Ohio,39107,190,3 +2020-05-26,Mercer,Ohio,39107,200,3 +2020-05-27,Mercer,Ohio,39107,201,4 +2020-05-28,Mercer,Ohio,39107,201,6 +2020-05-29,Mercer,Ohio,39107,203,7 +2020-05-30,Mercer,Ohio,39107,210,7 +2020-05-31,Mercer,Ohio,39107,211,7 +2020-06-01,Mercer,Ohio,39107,216,7 +2020-06-02,Mercer,Ohio,39107,217,7 +2020-06-03,Mercer,Ohio,39107,220,7 +2020-06-04,Mercer,Ohio,39107,223,8 +2020-06-05,Mercer,Ohio,39107,227,8 +2020-06-06,Mercer,Ohio,39107,230,8 +2020-06-07,Mercer,Ohio,39107,233,8 +2020-06-08,Mercer,Ohio,39107,237,8 +2020-06-09,Mercer,Ohio,39107,237,8 +2020-06-10,Mercer,Ohio,39107,239,8 +2020-06-11,Mercer,Ohio,39107,242,8 +2020-06-12,Mercer,Ohio,39107,244,8 +2020-06-13,Mercer,Ohio,39107,243,8 +2020-06-14,Mercer,Ohio,39107,245,8 +2020-06-15,Mercer,Ohio,39107,246,8 +2020-06-16,Mercer,Ohio,39107,247,8 +2020-06-17,Mercer,Ohio,39107,253,8 +2020-06-18,Mercer,Ohio,39107,253,8 +2020-06-19,Mercer,Ohio,39107,255,8 +2020-06-20,Mercer,Ohio,39107,257,8 +2020-06-21,Mercer,Ohio,39107,258,8 +2020-06-22,Mercer,Ohio,39107,257,8 +2020-06-23,Mercer,Ohio,39107,258,8 +2020-06-24,Mercer,Ohio,39107,259,8 +2020-06-25,Mercer,Ohio,39107,259,8 +2020-06-26,Mercer,Ohio,39107,265,8 +2020-06-27,Mercer,Ohio,39107,265,8 +2020-06-28,Mercer,Ohio,39107,266,8 +2020-06-29,Mercer,Ohio,39107,266,8 +2020-06-30,Mercer,Ohio,39107,270,8 +2020-07-01,Mercer,Ohio,39107,272,8 +2020-07-02,Mercer,Ohio,39107,272,8 +2020-07-03,Mercer,Ohio,39107,278,8 +2020-07-04,Mercer,Ohio,39107,280,8 +2020-07-05,Mercer,Ohio,39107,281,8 +2020-07-06,Mercer,Ohio,39107,282,9 +2020-07-07,Mercer,Ohio,39107,287,9 +2020-07-08,Mercer,Ohio,39107,290,9 +2020-07-09,Mercer,Ohio,39107,294,10 +2020-03-18,Miami,Ohio,39109,1,0 +2020-03-19,Miami,Ohio,39109,1,0 +2020-03-20,Miami,Ohio,39109,1,0 +2020-03-21,Miami,Ohio,39109,11,0 +2020-03-22,Miami,Ohio,39109,13,0 +2020-03-23,Miami,Ohio,39109,17,0 +2020-03-24,Miami,Ohio,39109,19,0 +2020-03-25,Miami,Ohio,39109,19,1 +2020-03-26,Miami,Ohio,39109,20,2 +2020-03-27,Miami,Ohio,39109,32,4 +2020-03-28,Miami,Ohio,39109,38,4 +2020-03-29,Miami,Ohio,39109,43,5 +2020-03-30,Miami,Ohio,39109,46,5 +2020-03-31,Miami,Ohio,39109,52,6 +2020-04-01,Miami,Ohio,39109,60,6 +2020-04-02,Miami,Ohio,39109,62,8 +2020-04-03,Miami,Ohio,39109,64,8 +2020-04-04,Miami,Ohio,39109,69,9 +2020-04-05,Miami,Ohio,39109,76,10 +2020-04-06,Miami,Ohio,39109,90,10 +2020-04-07,Miami,Ohio,39109,101,12 +2020-04-08,Miami,Ohio,39109,107,14 +2020-04-09,Miami,Ohio,39109,110,14 +2020-04-10,Miami,Ohio,39109,113,14 +2020-04-11,Miami,Ohio,39109,116,15 +2020-04-12,Miami,Ohio,39109,117,15 +2020-04-13,Miami,Ohio,39109,121,15 +2020-04-14,Miami,Ohio,39109,122,19 +2020-04-15,Miami,Ohio,39109,125,21 +2020-04-16,Miami,Ohio,39109,127,22 +2020-04-17,Miami,Ohio,39109,129,22 +2020-04-18,Miami,Ohio,39109,129,22 +2020-04-19,Miami,Ohio,39109,129,22 +2020-04-20,Miami,Ohio,39109,131,22 +2020-04-21,Miami,Ohio,39109,133,22 +2020-04-22,Miami,Ohio,39109,134,22 +2020-04-23,Miami,Ohio,39109,134,23 +2020-04-24,Miami,Ohio,39109,134,24 +2020-04-25,Miami,Ohio,39109,135,25 +2020-04-26,Miami,Ohio,39109,135,25 +2020-04-27,Miami,Ohio,39109,136,25 +2020-04-28,Miami,Ohio,39109,136,25 +2020-04-29,Miami,Ohio,39109,138,27 +2020-04-30,Miami,Ohio,39109,139,27 +2020-05-01,Miami,Ohio,39109,142,27 +2020-05-02,Miami,Ohio,39109,143,27 +2020-05-03,Miami,Ohio,39109,143,27 +2020-05-04,Miami,Ohio,39109,144,27 +2020-05-05,Miami,Ohio,39109,144,27 +2020-05-06,Miami,Ohio,39109,144,27 +2020-05-07,Miami,Ohio,39109,145,27 +2020-05-08,Miami,Ohio,39109,176,27 +2020-05-09,Miami,Ohio,39109,244,27 +2020-05-10,Miami,Ohio,39109,268,28 +2020-05-11,Miami,Ohio,39109,313,28 +2020-05-12,Miami,Ohio,39109,314,28 +2020-05-13,Miami,Ohio,39109,316,28 +2020-05-14,Miami,Ohio,39109,317,30 +2020-05-15,Miami,Ohio,39109,326,30 +2020-05-16,Miami,Ohio,39109,327,30 +2020-05-17,Miami,Ohio,39109,332,30 +2020-05-18,Miami,Ohio,39109,332,30 +2020-05-19,Miami,Ohio,39109,332,30 +2020-05-20,Miami,Ohio,39109,337,30 +2020-05-21,Miami,Ohio,39109,337,30 +2020-05-22,Miami,Ohio,39109,337,30 +2020-05-23,Miami,Ohio,39109,346,30 +2020-05-24,Miami,Ohio,39109,348,30 +2020-05-25,Miami,Ohio,39109,348,30 +2020-05-26,Miami,Ohio,39109,351,30 +2020-05-27,Miami,Ohio,39109,351,30 +2020-05-28,Miami,Ohio,39109,352,30 +2020-05-29,Miami,Ohio,39109,355,30 +2020-05-30,Miami,Ohio,39109,355,30 +2020-05-31,Miami,Ohio,39109,357,30 +2020-06-01,Miami,Ohio,39109,358,30 +2020-06-02,Miami,Ohio,39109,361,30 +2020-06-03,Miami,Ohio,39109,362,30 +2020-06-04,Miami,Ohio,39109,366,30 +2020-06-05,Miami,Ohio,39109,367,30 +2020-06-06,Miami,Ohio,39109,373,30 +2020-06-07,Miami,Ohio,39109,374,30 +2020-06-08,Miami,Ohio,39109,375,30 +2020-06-09,Miami,Ohio,39109,376,30 +2020-06-10,Miami,Ohio,39109,379,30 +2020-06-11,Miami,Ohio,39109,380,30 +2020-06-12,Miami,Ohio,39109,382,30 +2020-06-13,Miami,Ohio,39109,384,30 +2020-06-14,Miami,Ohio,39109,386,30 +2020-06-15,Miami,Ohio,39109,388,30 +2020-06-16,Miami,Ohio,39109,388,30 +2020-06-17,Miami,Ohio,39109,392,30 +2020-06-18,Miami,Ohio,39109,393,30 +2020-06-19,Miami,Ohio,39109,397,30 +2020-06-20,Miami,Ohio,39109,399,30 +2020-06-21,Miami,Ohio,39109,400,30 +2020-06-22,Miami,Ohio,39109,405,30 +2020-06-23,Miami,Ohio,39109,410,30 +2020-06-24,Miami,Ohio,39109,411,30 +2020-06-25,Miami,Ohio,39109,413,30 +2020-06-26,Miami,Ohio,39109,418,30 +2020-06-27,Miami,Ohio,39109,421,30 +2020-06-28,Miami,Ohio,39109,425,30 +2020-06-29,Miami,Ohio,39109,431,31 +2020-06-30,Miami,Ohio,39109,437,31 +2020-07-01,Miami,Ohio,39109,442,31 +2020-07-02,Miami,Ohio,39109,442,31 +2020-07-03,Miami,Ohio,39109,455,31 +2020-07-04,Miami,Ohio,39109,455,31 +2020-07-05,Miami,Ohio,39109,463,31 +2020-07-06,Miami,Ohio,39109,466,31 +2020-07-07,Miami,Ohio,39109,472,31 +2020-07-08,Miami,Ohio,39109,475,31 +2020-07-09,Miami,Ohio,39109,486,31 +2020-04-05,Monroe,Ohio,39111,2,0 +2020-04-06,Monroe,Ohio,39111,2,0 +2020-04-07,Monroe,Ohio,39111,2,0 +2020-04-08,Monroe,Ohio,39111,2,0 +2020-04-09,Monroe,Ohio,39111,2,0 +2020-04-10,Monroe,Ohio,39111,2,0 +2020-04-11,Monroe,Ohio,39111,2,0 +2020-04-12,Monroe,Ohio,39111,2,0 +2020-04-13,Monroe,Ohio,39111,2,0 +2020-04-14,Monroe,Ohio,39111,2,0 +2020-04-15,Monroe,Ohio,39111,2,0 +2020-04-16,Monroe,Ohio,39111,2,0 +2020-04-17,Monroe,Ohio,39111,2,0 +2020-04-18,Monroe,Ohio,39111,2,0 +2020-04-19,Monroe,Ohio,39111,2,0 +2020-04-20,Monroe,Ohio,39111,2,0 +2020-04-21,Monroe,Ohio,39111,2,0 +2020-04-22,Monroe,Ohio,39111,2,0 +2020-04-23,Monroe,Ohio,39111,2,0 +2020-04-24,Monroe,Ohio,39111,2,0 +2020-04-25,Monroe,Ohio,39111,2,0 +2020-04-26,Monroe,Ohio,39111,2,0 +2020-04-27,Monroe,Ohio,39111,2,0 +2020-04-28,Monroe,Ohio,39111,2,0 +2020-04-29,Monroe,Ohio,39111,3,0 +2020-04-30,Monroe,Ohio,39111,3,0 +2020-05-01,Monroe,Ohio,39111,3,0 +2020-05-02,Monroe,Ohio,39111,4,0 +2020-05-03,Monroe,Ohio,39111,3,0 +2020-05-04,Monroe,Ohio,39111,4,0 +2020-05-05,Monroe,Ohio,39111,4,0 +2020-05-06,Monroe,Ohio,39111,4,0 +2020-05-07,Monroe,Ohio,39111,5,0 +2020-05-08,Monroe,Ohio,39111,8,0 +2020-05-09,Monroe,Ohio,39111,8,0 +2020-05-10,Monroe,Ohio,39111,10,0 +2020-05-11,Monroe,Ohio,39111,19,0 +2020-05-12,Monroe,Ohio,39111,22,0 +2020-05-13,Monroe,Ohio,39111,25,0 +2020-05-14,Monroe,Ohio,39111,28,0 +2020-05-15,Monroe,Ohio,39111,53,1 +2020-05-16,Monroe,Ohio,39111,53,1 +2020-05-17,Monroe,Ohio,39111,55,2 +2020-05-18,Monroe,Ohio,39111,56,2 +2020-05-19,Monroe,Ohio,39111,56,4 +2020-05-20,Monroe,Ohio,39111,59,4 +2020-05-21,Monroe,Ohio,39111,65,4 +2020-05-22,Monroe,Ohio,39111,71,7 +2020-05-23,Monroe,Ohio,39111,71,9 +2020-05-24,Monroe,Ohio,39111,71,11 +2020-05-25,Monroe,Ohio,39111,71,11 +2020-05-26,Monroe,Ohio,39111,73,11 +2020-05-27,Monroe,Ohio,39111,74,12 +2020-05-28,Monroe,Ohio,39111,75,12 +2020-05-29,Monroe,Ohio,39111,77,12 +2020-05-30,Monroe,Ohio,39111,78,12 +2020-05-31,Monroe,Ohio,39111,78,12 +2020-06-01,Monroe,Ohio,39111,79,14 +2020-06-02,Monroe,Ohio,39111,79,14 +2020-06-03,Monroe,Ohio,39111,79,14 +2020-06-04,Monroe,Ohio,39111,80,15 +2020-06-05,Monroe,Ohio,39111,80,15 +2020-06-06,Monroe,Ohio,39111,80,15 +2020-06-07,Monroe,Ohio,39111,80,15 +2020-06-08,Monroe,Ohio,39111,81,15 +2020-06-09,Monroe,Ohio,39111,81,15 +2020-06-10,Monroe,Ohio,39111,83,15 +2020-06-11,Monroe,Ohio,39111,83,15 +2020-06-12,Monroe,Ohio,39111,83,15 +2020-06-13,Monroe,Ohio,39111,82,15 +2020-06-14,Monroe,Ohio,39111,82,15 +2020-06-15,Monroe,Ohio,39111,82,15 +2020-06-16,Monroe,Ohio,39111,82,15 +2020-06-17,Monroe,Ohio,39111,82,15 +2020-06-18,Monroe,Ohio,39111,82,15 +2020-06-19,Monroe,Ohio,39111,82,15 +2020-06-20,Monroe,Ohio,39111,82,15 +2020-06-21,Monroe,Ohio,39111,82,15 +2020-06-22,Monroe,Ohio,39111,82,15 +2020-06-23,Monroe,Ohio,39111,83,16 +2020-06-24,Monroe,Ohio,39111,83,16 +2020-06-25,Monroe,Ohio,39111,83,16 +2020-06-26,Monroe,Ohio,39111,85,17 +2020-06-27,Monroe,Ohio,39111,85,17 +2020-06-28,Monroe,Ohio,39111,85,17 +2020-06-29,Monroe,Ohio,39111,85,17 +2020-06-30,Monroe,Ohio,39111,85,17 +2020-07-01,Monroe,Ohio,39111,86,17 +2020-07-02,Monroe,Ohio,39111,86,17 +2020-07-03,Monroe,Ohio,39111,88,17 +2020-07-04,Monroe,Ohio,39111,88,17 +2020-07-05,Monroe,Ohio,39111,89,17 +2020-07-06,Monroe,Ohio,39111,89,17 +2020-07-07,Monroe,Ohio,39111,89,17 +2020-07-08,Monroe,Ohio,39111,89,17 +2020-07-09,Monroe,Ohio,39111,89,17 +2020-03-19,Montgomery,Ohio,39113,1,0 +2020-03-20,Montgomery,Ohio,39113,1,0 +2020-03-21,Montgomery,Ohio,39113,1,0 +2020-03-22,Montgomery,Ohio,39113,5,0 +2020-03-23,Montgomery,Ohio,39113,7,0 +2020-03-24,Montgomery,Ohio,39113,10,0 +2020-03-25,Montgomery,Ohio,39113,14,0 +2020-03-26,Montgomery,Ohio,39113,14,0 +2020-03-27,Montgomery,Ohio,39113,19,0 +2020-03-28,Montgomery,Ohio,39113,20,0 +2020-03-29,Montgomery,Ohio,39113,25,0 +2020-03-30,Montgomery,Ohio,39113,31,1 +2020-03-31,Montgomery,Ohio,39113,37,1 +2020-04-01,Montgomery,Ohio,39113,41,1 +2020-04-02,Montgomery,Ohio,39113,49,2 +2020-04-03,Montgomery,Ohio,39113,57,2 +2020-04-04,Montgomery,Ohio,39113,69,2 +2020-04-05,Montgomery,Ohio,39113,84,2 +2020-04-06,Montgomery,Ohio,39113,109,2 +2020-04-07,Montgomery,Ohio,39113,132,2 +2020-04-08,Montgomery,Ohio,39113,147,2 +2020-04-09,Montgomery,Ohio,39113,156,4 +2020-04-10,Montgomery,Ohio,39113,161,4 +2020-04-11,Montgomery,Ohio,39113,175,5 +2020-04-12,Montgomery,Ohio,39113,198,5 +2020-04-13,Montgomery,Ohio,39113,201,7 +2020-04-14,Montgomery,Ohio,39113,205,8 +2020-04-15,Montgomery,Ohio,39113,211,8 +2020-04-16,Montgomery,Ohio,39113,213,8 +2020-04-17,Montgomery,Ohio,39113,222,8 +2020-04-18,Montgomery,Ohio,39113,229,8 +2020-04-19,Montgomery,Ohio,39113,232,8 +2020-04-20,Montgomery,Ohio,39113,235,8 +2020-04-21,Montgomery,Ohio,39113,237,8 +2020-04-22,Montgomery,Ohio,39113,241,10 +2020-04-23,Montgomery,Ohio,39113,250,12 +2020-04-24,Montgomery,Ohio,39113,251,9 +2020-04-25,Montgomery,Ohio,39113,256,8 +2020-04-26,Montgomery,Ohio,39113,260,8 +2020-04-27,Montgomery,Ohio,39113,262,8 +2020-04-28,Montgomery,Ohio,39113,266,8 +2020-04-29,Montgomery,Ohio,39113,279,10 +2020-04-30,Montgomery,Ohio,39113,285,10 +2020-05-01,Montgomery,Ohio,39113,293,10 +2020-05-02,Montgomery,Ohio,39113,311,10 +2020-05-03,Montgomery,Ohio,39113,316,10 +2020-05-04,Montgomery,Ohio,39113,320,10 +2020-05-05,Montgomery,Ohio,39113,328,10 +2020-05-06,Montgomery,Ohio,39113,332,10 +2020-05-07,Montgomery,Ohio,39113,345,10 +2020-05-08,Montgomery,Ohio,39113,356,10 +2020-05-09,Montgomery,Ohio,39113,369,10 +2020-05-10,Montgomery,Ohio,39113,390,10 +2020-05-11,Montgomery,Ohio,39113,422,10 +2020-05-12,Montgomery,Ohio,39113,433,10 +2020-05-13,Montgomery,Ohio,39113,442,11 +2020-05-14,Montgomery,Ohio,39113,468,11 +2020-05-15,Montgomery,Ohio,39113,489,12 +2020-05-16,Montgomery,Ohio,39113,500,13 +2020-05-17,Montgomery,Ohio,39113,504,13 +2020-05-18,Montgomery,Ohio,39113,520,13 +2020-05-19,Montgomery,Ohio,39113,531,13 +2020-05-20,Montgomery,Ohio,39113,539,13 +2020-05-21,Montgomery,Ohio,39113,554,14 +2020-05-22,Montgomery,Ohio,39113,561,14 +2020-05-23,Montgomery,Ohio,39113,578,14 +2020-05-24,Montgomery,Ohio,39113,593,15 +2020-05-25,Montgomery,Ohio,39113,605,15 +2020-05-26,Montgomery,Ohio,39113,609,15 +2020-05-27,Montgomery,Ohio,39113,617,16 +2020-05-28,Montgomery,Ohio,39113,637,17 +2020-05-29,Montgomery,Ohio,39113,651,17 +2020-05-30,Montgomery,Ohio,39113,656,16 +2020-05-31,Montgomery,Ohio,39113,663,16 +2020-06-01,Montgomery,Ohio,39113,684,16 +2020-06-02,Montgomery,Ohio,39113,688,16 +2020-06-03,Montgomery,Ohio,39113,695,16 +2020-06-04,Montgomery,Ohio,39113,720,16 +2020-06-05,Montgomery,Ohio,39113,734,17 +2020-06-06,Montgomery,Ohio,39113,766,17 +2020-06-07,Montgomery,Ohio,39113,791,17 +2020-06-08,Montgomery,Ohio,39113,817,17 +2020-06-09,Montgomery,Ohio,39113,835,17 +2020-06-10,Montgomery,Ohio,39113,847,17 +2020-06-11,Montgomery,Ohio,39113,874,17 +2020-06-12,Montgomery,Ohio,39113,901,17 +2020-06-13,Montgomery,Ohio,39113,934,17 +2020-06-14,Montgomery,Ohio,39113,969,17 +2020-06-15,Montgomery,Ohio,39113,992,17 +2020-06-16,Montgomery,Ohio,39113,1026,17 +2020-06-17,Montgomery,Ohio,39113,1058,18 +2020-06-18,Montgomery,Ohio,39113,1118,18 +2020-06-19,Montgomery,Ohio,39113,1174,19 +2020-06-20,Montgomery,Ohio,39113,1214,20 +2020-06-21,Montgomery,Ohio,39113,1263,20 +2020-06-22,Montgomery,Ohio,39113,1292,20 +2020-06-23,Montgomery,Ohio,39113,1345,20 +2020-06-24,Montgomery,Ohio,39113,1392,21 +2020-06-25,Montgomery,Ohio,39113,1465,22 +2020-06-26,Montgomery,Ohio,39113,1527,22 +2020-06-27,Montgomery,Ohio,39113,1553,22 +2020-06-28,Montgomery,Ohio,39113,1603,22 +2020-06-29,Montgomery,Ohio,39113,1646,23 +2020-06-30,Montgomery,Ohio,39113,1704,25 +2020-07-01,Montgomery,Ohio,39113,1784,26 +2020-07-02,Montgomery,Ohio,39113,1784,26 +2020-07-03,Montgomery,Ohio,39113,1918,26 +2020-07-04,Montgomery,Ohio,39113,1931,26 +2020-07-05,Montgomery,Ohio,39113,1981,26 +2020-07-06,Montgomery,Ohio,39113,2034,27 +2020-07-07,Montgomery,Ohio,39113,2134,31 +2020-07-08,Montgomery,Ohio,39113,2201,31 +2020-07-09,Montgomery,Ohio,39113,2283,35 +2020-04-06,Morgan,Ohio,39115,1,0 +2020-04-07,Morgan,Ohio,39115,1,0 +2020-04-08,Morgan,Ohio,39115,2,0 +2020-04-09,Morgan,Ohio,39115,2,0 +2020-04-10,Morgan,Ohio,39115,2,0 +2020-04-11,Morgan,Ohio,39115,2,0 +2020-04-12,Morgan,Ohio,39115,2,0 +2020-04-13,Morgan,Ohio,39115,2,0 +2020-04-14,Morgan,Ohio,39115,2,0 +2020-04-15,Morgan,Ohio,39115,2,0 +2020-04-16,Morgan,Ohio,39115,3,0 +2020-04-17,Morgan,Ohio,39115,3,0 +2020-04-18,Morgan,Ohio,39115,3,0 +2020-04-19,Morgan,Ohio,39115,3,0 +2020-04-20,Morgan,Ohio,39115,3,0 +2020-04-21,Morgan,Ohio,39115,3,0 +2020-04-22,Morgan,Ohio,39115,4,0 +2020-04-23,Morgan,Ohio,39115,4,0 +2020-04-24,Morgan,Ohio,39115,4,0 +2020-04-25,Morgan,Ohio,39115,4,0 +2020-04-26,Morgan,Ohio,39115,4,0 +2020-04-27,Morgan,Ohio,39115,4,0 +2020-04-28,Morgan,Ohio,39115,4,0 +2020-04-29,Morgan,Ohio,39115,4,0 +2020-04-30,Morgan,Ohio,39115,4,0 +2020-05-01,Morgan,Ohio,39115,4,0 +2020-05-02,Morgan,Ohio,39115,4,0 +2020-05-03,Morgan,Ohio,39115,4,0 +2020-05-04,Morgan,Ohio,39115,5,0 +2020-05-05,Morgan,Ohio,39115,5,0 +2020-05-06,Morgan,Ohio,39115,5,0 +2020-05-07,Morgan,Ohio,39115,5,0 +2020-05-08,Morgan,Ohio,39115,5,0 +2020-05-09,Morgan,Ohio,39115,5,0 +2020-05-10,Morgan,Ohio,39115,5,0 +2020-05-11,Morgan,Ohio,39115,5,0 +2020-05-12,Morgan,Ohio,39115,5,0 +2020-05-13,Morgan,Ohio,39115,5,0 +2020-05-14,Morgan,Ohio,39115,5,0 +2020-05-15,Morgan,Ohio,39115,5,0 +2020-05-16,Morgan,Ohio,39115,5,0 +2020-05-17,Morgan,Ohio,39115,5,0 +2020-05-18,Morgan,Ohio,39115,5,0 +2020-05-19,Morgan,Ohio,39115,5,0 +2020-05-20,Morgan,Ohio,39115,5,0 +2020-05-21,Morgan,Ohio,39115,5,0 +2020-05-22,Morgan,Ohio,39115,5,0 +2020-05-23,Morgan,Ohio,39115,5,0 +2020-05-24,Morgan,Ohio,39115,5,0 +2020-05-25,Morgan,Ohio,39115,5,0 +2020-05-26,Morgan,Ohio,39115,5,0 +2020-05-27,Morgan,Ohio,39115,5,0 +2020-05-28,Morgan,Ohio,39115,5,0 +2020-05-29,Morgan,Ohio,39115,5,0 +2020-05-30,Morgan,Ohio,39115,5,0 +2020-05-31,Morgan,Ohio,39115,5,0 +2020-06-01,Morgan,Ohio,39115,5,0 +2020-06-02,Morgan,Ohio,39115,5,0 +2020-06-03,Morgan,Ohio,39115,5,0 +2020-06-04,Morgan,Ohio,39115,5,0 +2020-06-05,Morgan,Ohio,39115,5,0 +2020-06-06,Morgan,Ohio,39115,6,0 +2020-06-07,Morgan,Ohio,39115,6,0 +2020-06-08,Morgan,Ohio,39115,6,0 +2020-06-09,Morgan,Ohio,39115,6,0 +2020-06-10,Morgan,Ohio,39115,6,0 +2020-06-11,Morgan,Ohio,39115,6,0 +2020-06-12,Morgan,Ohio,39115,6,0 +2020-06-13,Morgan,Ohio,39115,6,0 +2020-06-14,Morgan,Ohio,39115,6,0 +2020-06-15,Morgan,Ohio,39115,6,0 +2020-06-16,Morgan,Ohio,39115,6,0 +2020-06-17,Morgan,Ohio,39115,6,0 +2020-06-18,Morgan,Ohio,39115,6,0 +2020-06-19,Morgan,Ohio,39115,6,0 +2020-06-20,Morgan,Ohio,39115,6,0 +2020-06-21,Morgan,Ohio,39115,6,0 +2020-06-22,Morgan,Ohio,39115,6,0 +2020-06-23,Morgan,Ohio,39115,6,0 +2020-06-24,Morgan,Ohio,39115,6,0 +2020-06-25,Morgan,Ohio,39115,6,0 +2020-06-26,Morgan,Ohio,39115,7,0 +2020-06-27,Morgan,Ohio,39115,7,0 +2020-06-28,Morgan,Ohio,39115,7,0 +2020-06-29,Morgan,Ohio,39115,7,0 +2020-06-30,Morgan,Ohio,39115,9,0 +2020-07-01,Morgan,Ohio,39115,9,0 +2020-07-02,Morgan,Ohio,39115,9,0 +2020-07-03,Morgan,Ohio,39115,11,0 +2020-07-04,Morgan,Ohio,39115,11,0 +2020-07-05,Morgan,Ohio,39115,11,0 +2020-07-06,Morgan,Ohio,39115,11,0 +2020-07-07,Morgan,Ohio,39115,11,0 +2020-07-08,Morgan,Ohio,39115,11,0 +2020-07-09,Morgan,Ohio,39115,11,0 +2020-04-01,Morrow,Ohio,39117,1,0 +2020-04-02,Morrow,Ohio,39117,1,0 +2020-04-03,Morrow,Ohio,39117,1,0 +2020-04-04,Morrow,Ohio,39117,3,0 +2020-04-05,Morrow,Ohio,39117,5,0 +2020-04-06,Morrow,Ohio,39117,5,0 +2020-04-07,Morrow,Ohio,39117,6,0 +2020-04-08,Morrow,Ohio,39117,6,0 +2020-04-09,Morrow,Ohio,39117,6,0 +2020-04-10,Morrow,Ohio,39117,8,0 +2020-04-11,Morrow,Ohio,39117,8,0 +2020-04-12,Morrow,Ohio,39117,8,0 +2020-04-13,Morrow,Ohio,39117,9,0 +2020-04-14,Morrow,Ohio,39117,10,0 +2020-04-15,Morrow,Ohio,39117,14,0 +2020-04-16,Morrow,Ohio,39117,14,0 +2020-04-17,Morrow,Ohio,39117,16,0 +2020-04-18,Morrow,Ohio,39117,19,0 +2020-04-19,Morrow,Ohio,39117,20,0 +2020-04-20,Morrow,Ohio,39117,23,0 +2020-04-21,Morrow,Ohio,39117,24,0 +2020-04-22,Morrow,Ohio,39117,25,0 +2020-04-23,Morrow,Ohio,39117,25,0 +2020-04-24,Morrow,Ohio,39117,26,0 +2020-04-25,Morrow,Ohio,39117,26,0 +2020-04-26,Morrow,Ohio,39117,34,0 +2020-04-27,Morrow,Ohio,39117,34,1 +2020-04-28,Morrow,Ohio,39117,36,1 +2020-04-29,Morrow,Ohio,39117,41,1 +2020-04-30,Morrow,Ohio,39117,42,1 +2020-05-01,Morrow,Ohio,39117,45,1 +2020-05-02,Morrow,Ohio,39117,75,1 +2020-05-03,Morrow,Ohio,39117,75,1 +2020-05-04,Morrow,Ohio,39117,75,1 +2020-05-05,Morrow,Ohio,39117,83,1 +2020-05-06,Morrow,Ohio,39117,83,1 +2020-05-07,Morrow,Ohio,39117,83,1 +2020-05-08,Morrow,Ohio,39117,84,1 +2020-05-09,Morrow,Ohio,39117,84,1 +2020-05-10,Morrow,Ohio,39117,84,1 +2020-05-11,Morrow,Ohio,39117,87,1 +2020-05-12,Morrow,Ohio,39117,87,1 +2020-05-13,Morrow,Ohio,39117,91,1 +2020-05-14,Morrow,Ohio,39117,93,1 +2020-05-15,Morrow,Ohio,39117,97,1 +2020-05-16,Morrow,Ohio,39117,97,1 +2020-05-17,Morrow,Ohio,39117,97,1 +2020-05-18,Morrow,Ohio,39117,98,1 +2020-05-19,Morrow,Ohio,39117,101,1 +2020-05-20,Morrow,Ohio,39117,104,1 +2020-05-21,Morrow,Ohio,39117,104,1 +2020-05-22,Morrow,Ohio,39117,103,1 +2020-05-23,Morrow,Ohio,39117,104,1 +2020-05-24,Morrow,Ohio,39117,104,1 +2020-05-25,Morrow,Ohio,39117,104,1 +2020-05-26,Morrow,Ohio,39117,104,1 +2020-05-27,Morrow,Ohio,39117,104,1 +2020-05-28,Morrow,Ohio,39117,104,1 +2020-05-29,Morrow,Ohio,39117,105,1 +2020-05-30,Morrow,Ohio,39117,107,1 +2020-05-31,Morrow,Ohio,39117,107,1 +2020-06-01,Morrow,Ohio,39117,107,1 +2020-06-02,Morrow,Ohio,39117,107,1 +2020-06-03,Morrow,Ohio,39117,107,1 +2020-06-04,Morrow,Ohio,39117,108,1 +2020-06-05,Morrow,Ohio,39117,108,1 +2020-06-06,Morrow,Ohio,39117,108,1 +2020-06-07,Morrow,Ohio,39117,108,1 +2020-06-08,Morrow,Ohio,39117,108,1 +2020-06-09,Morrow,Ohio,39117,108,1 +2020-06-10,Morrow,Ohio,39117,108,1 +2020-06-11,Morrow,Ohio,39117,110,1 +2020-06-12,Morrow,Ohio,39117,110,1 +2020-06-13,Morrow,Ohio,39117,110,1 +2020-06-14,Morrow,Ohio,39117,110,1 +2020-06-15,Morrow,Ohio,39117,110,1 +2020-06-16,Morrow,Ohio,39117,110,1 +2020-06-17,Morrow,Ohio,39117,110,1 +2020-06-18,Morrow,Ohio,39117,110,1 +2020-06-19,Morrow,Ohio,39117,110,1 +2020-06-20,Morrow,Ohio,39117,110,1 +2020-06-21,Morrow,Ohio,39117,110,1 +2020-06-22,Morrow,Ohio,39117,110,1 +2020-06-23,Morrow,Ohio,39117,110,1 +2020-06-24,Morrow,Ohio,39117,110,1 +2020-06-25,Morrow,Ohio,39117,111,1 +2020-06-26,Morrow,Ohio,39117,111,1 +2020-06-27,Morrow,Ohio,39117,113,1 +2020-06-28,Morrow,Ohio,39117,113,1 +2020-06-29,Morrow,Ohio,39117,114,1 +2020-06-30,Morrow,Ohio,39117,114,1 +2020-07-01,Morrow,Ohio,39117,115,1 +2020-07-02,Morrow,Ohio,39117,115,1 +2020-07-03,Morrow,Ohio,39117,116,1 +2020-07-04,Morrow,Ohio,39117,116,1 +2020-07-05,Morrow,Ohio,39117,116,1 +2020-07-06,Morrow,Ohio,39117,116,1 +2020-07-07,Morrow,Ohio,39117,117,1 +2020-07-08,Morrow,Ohio,39117,118,1 +2020-07-09,Morrow,Ohio,39117,120,1 +2020-03-26,Muskingum,Ohio,39119,1,0 +2020-03-27,Muskingum,Ohio,39119,2,0 +2020-03-28,Muskingum,Ohio,39119,2,0 +2020-03-29,Muskingum,Ohio,39119,2,0 +2020-03-30,Muskingum,Ohio,39119,2,0 +2020-03-31,Muskingum,Ohio,39119,2,0 +2020-04-01,Muskingum,Ohio,39119,2,0 +2020-04-02,Muskingum,Ohio,39119,3,0 +2020-04-03,Muskingum,Ohio,39119,3,0 +2020-04-04,Muskingum,Ohio,39119,4,0 +2020-04-05,Muskingum,Ohio,39119,4,0 +2020-04-06,Muskingum,Ohio,39119,5,0 +2020-04-07,Muskingum,Ohio,39119,6,0 +2020-04-08,Muskingum,Ohio,39119,6,0 +2020-04-09,Muskingum,Ohio,39119,8,0 +2020-04-10,Muskingum,Ohio,39119,8,0 +2020-04-11,Muskingum,Ohio,39119,8,0 +2020-04-12,Muskingum,Ohio,39119,8,0 +2020-04-13,Muskingum,Ohio,39119,8,0 +2020-04-14,Muskingum,Ohio,39119,8,0 +2020-04-15,Muskingum,Ohio,39119,8,0 +2020-04-16,Muskingum,Ohio,39119,8,0 +2020-04-17,Muskingum,Ohio,39119,8,0 +2020-04-18,Muskingum,Ohio,39119,8,0 +2020-04-19,Muskingum,Ohio,39119,8,0 +2020-04-20,Muskingum,Ohio,39119,9,0 +2020-04-21,Muskingum,Ohio,39119,9,0 +2020-04-22,Muskingum,Ohio,39119,9,0 +2020-04-23,Muskingum,Ohio,39119,10,0 +2020-04-24,Muskingum,Ohio,39119,12,0 +2020-04-25,Muskingum,Ohio,39119,11,0 +2020-04-26,Muskingum,Ohio,39119,11,0 +2020-04-27,Muskingum,Ohio,39119,11,0 +2020-04-28,Muskingum,Ohio,39119,10,0 +2020-04-29,Muskingum,Ohio,39119,10,0 +2020-04-30,Muskingum,Ohio,39119,12,0 +2020-05-01,Muskingum,Ohio,39119,15,0 +2020-05-02,Muskingum,Ohio,39119,17,0 +2020-05-03,Muskingum,Ohio,39119,17,0 +2020-05-04,Muskingum,Ohio,39119,18,0 +2020-05-05,Muskingum,Ohio,39119,21,0 +2020-05-06,Muskingum,Ohio,39119,22,0 +2020-05-07,Muskingum,Ohio,39119,23,0 +2020-05-08,Muskingum,Ohio,39119,24,0 +2020-05-09,Muskingum,Ohio,39119,25,0 +2020-05-10,Muskingum,Ohio,39119,25,0 +2020-05-11,Muskingum,Ohio,39119,27,0 +2020-05-12,Muskingum,Ohio,39119,31,0 +2020-05-13,Muskingum,Ohio,39119,32,0 +2020-05-14,Muskingum,Ohio,39119,31,0 +2020-05-15,Muskingum,Ohio,39119,31,0 +2020-05-16,Muskingum,Ohio,39119,34,0 +2020-05-17,Muskingum,Ohio,39119,35,0 +2020-05-18,Muskingum,Ohio,39119,36,0 +2020-05-19,Muskingum,Ohio,39119,38,0 +2020-05-20,Muskingum,Ohio,39119,40,0 +2020-05-21,Muskingum,Ohio,39119,42,0 +2020-05-22,Muskingum,Ohio,39119,43,0 +2020-05-23,Muskingum,Ohio,39119,44,0 +2020-05-24,Muskingum,Ohio,39119,45,0 +2020-05-25,Muskingum,Ohio,39119,45,0 +2020-05-26,Muskingum,Ohio,39119,45,0 +2020-05-27,Muskingum,Ohio,39119,46,0 +2020-05-28,Muskingum,Ohio,39119,48,0 +2020-05-29,Muskingum,Ohio,39119,50,0 +2020-05-30,Muskingum,Ohio,39119,50,0 +2020-05-31,Muskingum,Ohio,39119,52,0 +2020-06-01,Muskingum,Ohio,39119,52,0 +2020-06-02,Muskingum,Ohio,39119,52,1 +2020-06-03,Muskingum,Ohio,39119,52,1 +2020-06-04,Muskingum,Ohio,39119,54,1 +2020-06-05,Muskingum,Ohio,39119,56,1 +2020-06-06,Muskingum,Ohio,39119,56,1 +2020-06-07,Muskingum,Ohio,39119,56,1 +2020-06-08,Muskingum,Ohio,39119,57,1 +2020-06-09,Muskingum,Ohio,39119,57,1 +2020-06-10,Muskingum,Ohio,39119,55,1 +2020-06-11,Muskingum,Ohio,39119,55,1 +2020-06-12,Muskingum,Ohio,39119,56,1 +2020-06-13,Muskingum,Ohio,39119,57,1 +2020-06-14,Muskingum,Ohio,39119,57,1 +2020-06-15,Muskingum,Ohio,39119,58,1 +2020-06-16,Muskingum,Ohio,39119,58,1 +2020-06-17,Muskingum,Ohio,39119,60,1 +2020-06-18,Muskingum,Ohio,39119,61,1 +2020-06-19,Muskingum,Ohio,39119,61,1 +2020-06-20,Muskingum,Ohio,39119,63,1 +2020-06-21,Muskingum,Ohio,39119,64,1 +2020-06-22,Muskingum,Ohio,39119,65,1 +2020-06-23,Muskingum,Ohio,39119,67,1 +2020-06-24,Muskingum,Ohio,39119,69,1 +2020-06-25,Muskingum,Ohio,39119,71,1 +2020-06-26,Muskingum,Ohio,39119,72,1 +2020-06-27,Muskingum,Ohio,39119,73,1 +2020-06-28,Muskingum,Ohio,39119,74,1 +2020-06-29,Muskingum,Ohio,39119,73,1 +2020-06-30,Muskingum,Ohio,39119,73,1 +2020-07-01,Muskingum,Ohio,39119,73,1 +2020-07-02,Muskingum,Ohio,39119,73,1 +2020-07-03,Muskingum,Ohio,39119,76,1 +2020-07-04,Muskingum,Ohio,39119,81,1 +2020-07-05,Muskingum,Ohio,39119,83,1 +2020-07-06,Muskingum,Ohio,39119,83,1 +2020-07-07,Muskingum,Ohio,39119,86,1 +2020-07-08,Muskingum,Ohio,39119,89,1 +2020-07-09,Muskingum,Ohio,39119,92,1 +2020-04-09,Noble,Ohio,39121,1,0 +2020-04-10,Noble,Ohio,39121,1,0 +2020-04-11,Noble,Ohio,39121,1,0 +2020-04-12,Noble,Ohio,39121,1,0 +2020-04-13,Noble,Ohio,39121,2,0 +2020-04-14,Noble,Ohio,39121,2,0 +2020-04-15,Noble,Ohio,39121,3,0 +2020-04-16,Noble,Ohio,39121,3,0 +2020-04-17,Noble,Ohio,39121,3,0 +2020-04-18,Noble,Ohio,39121,3,0 +2020-04-19,Noble,Ohio,39121,6,0 +2020-04-20,Noble,Ohio,39121,4,0 +2020-04-21,Noble,Ohio,39121,3,0 +2020-04-22,Noble,Ohio,39121,3,0 +2020-04-23,Noble,Ohio,39121,3,0 +2020-04-24,Noble,Ohio,39121,4,0 +2020-04-25,Noble,Ohio,39121,4,0 +2020-04-26,Noble,Ohio,39121,5,0 +2020-04-27,Noble,Ohio,39121,5,0 +2020-04-28,Noble,Ohio,39121,5,0 +2020-04-29,Noble,Ohio,39121,5,0 +2020-04-30,Noble,Ohio,39121,5,0 +2020-05-01,Noble,Ohio,39121,5,0 +2020-05-02,Noble,Ohio,39121,5,0 +2020-05-03,Noble,Ohio,39121,5,0 +2020-05-04,Noble,Ohio,39121,5,0 +2020-05-05,Noble,Ohio,39121,5,0 +2020-05-06,Noble,Ohio,39121,6,0 +2020-05-07,Noble,Ohio,39121,5,0 +2020-05-08,Noble,Ohio,39121,5,0 +2020-05-09,Noble,Ohio,39121,6,0 +2020-05-10,Noble,Ohio,39121,6,0 +2020-05-11,Noble,Ohio,39121,6,0 +2020-05-12,Noble,Ohio,39121,6,0 +2020-05-13,Noble,Ohio,39121,6,0 +2020-05-14,Noble,Ohio,39121,6,0 +2020-05-15,Noble,Ohio,39121,6,0 +2020-05-16,Noble,Ohio,39121,6,0 +2020-05-17,Noble,Ohio,39121,6,0 +2020-05-18,Noble,Ohio,39121,6,0 +2020-05-19,Noble,Ohio,39121,6,0 +2020-05-20,Noble,Ohio,39121,6,0 +2020-05-21,Noble,Ohio,39121,6,0 +2020-05-22,Noble,Ohio,39121,6,0 +2020-05-23,Noble,Ohio,39121,5,0 +2020-05-24,Noble,Ohio,39121,5,0 +2020-05-25,Noble,Ohio,39121,5,0 +2020-05-26,Noble,Ohio,39121,5,0 +2020-05-27,Noble,Ohio,39121,5,0 +2020-05-28,Noble,Ohio,39121,5,0 +2020-05-29,Noble,Ohio,39121,6,0 +2020-05-30,Noble,Ohio,39121,6,0 +2020-05-31,Noble,Ohio,39121,6,0 +2020-06-01,Noble,Ohio,39121,6,0 +2020-06-02,Noble,Ohio,39121,6,0 +2020-06-03,Noble,Ohio,39121,6,0 +2020-06-04,Noble,Ohio,39121,6,0 +2020-06-05,Noble,Ohio,39121,6,0 +2020-06-06,Noble,Ohio,39121,6,0 +2020-06-07,Noble,Ohio,39121,6,0 +2020-06-08,Noble,Ohio,39121,6,0 +2020-06-09,Noble,Ohio,39121,6,0 +2020-06-10,Noble,Ohio,39121,6,0 +2020-06-11,Noble,Ohio,39121,6,0 +2020-06-12,Noble,Ohio,39121,6,0 +2020-06-13,Noble,Ohio,39121,6,0 +2020-06-14,Noble,Ohio,39121,6,0 +2020-06-15,Noble,Ohio,39121,6,0 +2020-06-16,Noble,Ohio,39121,6,0 +2020-06-17,Noble,Ohio,39121,6,0 +2020-06-18,Noble,Ohio,39121,6,0 +2020-06-19,Noble,Ohio,39121,6,0 +2020-06-20,Noble,Ohio,39121,6,0 +2020-06-21,Noble,Ohio,39121,6,0 +2020-06-22,Noble,Ohio,39121,6,0 +2020-06-23,Noble,Ohio,39121,6,0 +2020-06-24,Noble,Ohio,39121,6,0 +2020-06-25,Noble,Ohio,39121,6,0 +2020-06-26,Noble,Ohio,39121,7,0 +2020-06-27,Noble,Ohio,39121,8,0 +2020-06-28,Noble,Ohio,39121,9,0 +2020-06-29,Noble,Ohio,39121,9,0 +2020-06-30,Noble,Ohio,39121,9,0 +2020-07-01,Noble,Ohio,39121,11,0 +2020-07-02,Noble,Ohio,39121,11,0 +2020-07-03,Noble,Ohio,39121,11,0 +2020-07-04,Noble,Ohio,39121,11,0 +2020-07-05,Noble,Ohio,39121,11,0 +2020-07-06,Noble,Ohio,39121,11,0 +2020-07-07,Noble,Ohio,39121,11,0 +2020-07-08,Noble,Ohio,39121,11,0 +2020-07-09,Noble,Ohio,39121,13,0 +2020-03-28,Ottawa,Ohio,39123,1,0 +2020-03-29,Ottawa,Ohio,39123,1,0 +2020-03-30,Ottawa,Ohio,39123,2,0 +2020-03-31,Ottawa,Ohio,39123,2,0 +2020-04-01,Ottawa,Ohio,39123,4,0 +2020-04-02,Ottawa,Ohio,39123,5,0 +2020-04-03,Ottawa,Ohio,39123,5,0 +2020-04-04,Ottawa,Ohio,39123,5,0 +2020-04-05,Ottawa,Ohio,39123,5,0 +2020-04-06,Ottawa,Ohio,39123,5,0 +2020-04-07,Ottawa,Ohio,39123,5,0 +2020-04-08,Ottawa,Ohio,39123,6,0 +2020-04-09,Ottawa,Ohio,39123,8,0 +2020-04-10,Ottawa,Ohio,39123,9,0 +2020-04-11,Ottawa,Ohio,39123,10,0 +2020-04-12,Ottawa,Ohio,39123,10,0 +2020-04-13,Ottawa,Ohio,39123,11,0 +2020-04-14,Ottawa,Ohio,39123,11,0 +2020-04-15,Ottawa,Ohio,39123,12,0 +2020-04-16,Ottawa,Ohio,39123,17,0 +2020-04-17,Ottawa,Ohio,39123,21,0 +2020-04-18,Ottawa,Ohio,39123,27,0 +2020-04-19,Ottawa,Ohio,39123,27,0 +2020-04-20,Ottawa,Ohio,39123,29,0 +2020-04-21,Ottawa,Ohio,39123,32,0 +2020-04-22,Ottawa,Ohio,39123,32,0 +2020-04-23,Ottawa,Ohio,39123,34,0 +2020-04-24,Ottawa,Ohio,39123,35,0 +2020-04-25,Ottawa,Ohio,39123,37,0 +2020-04-26,Ottawa,Ohio,39123,37,0 +2020-04-27,Ottawa,Ohio,39123,37,0 +2020-04-28,Ottawa,Ohio,39123,38,0 +2020-04-29,Ottawa,Ohio,39123,37,0 +2020-04-30,Ottawa,Ohio,39123,38,0 +2020-05-01,Ottawa,Ohio,39123,40,1 +2020-05-02,Ottawa,Ohio,39123,40,1 +2020-05-03,Ottawa,Ohio,39123,40,1 +2020-05-04,Ottawa,Ohio,39123,40,1 +2020-05-05,Ottawa,Ohio,39123,44,1 +2020-05-06,Ottawa,Ohio,39123,44,2 +2020-05-07,Ottawa,Ohio,39123,44,2 +2020-05-08,Ottawa,Ohio,39123,45,2 +2020-05-09,Ottawa,Ohio,39123,46,2 +2020-05-10,Ottawa,Ohio,39123,46,2 +2020-05-11,Ottawa,Ohio,39123,47,2 +2020-05-12,Ottawa,Ohio,39123,49,2 +2020-05-13,Ottawa,Ohio,39123,52,2 +2020-05-14,Ottawa,Ohio,39123,56,2 +2020-05-15,Ottawa,Ohio,39123,57,3 +2020-05-16,Ottawa,Ohio,39123,65,3 +2020-05-17,Ottawa,Ohio,39123,65,3 +2020-05-18,Ottawa,Ohio,39123,66,3 +2020-05-19,Ottawa,Ohio,39123,64,3 +2020-05-20,Ottawa,Ohio,39123,64,3 +2020-05-21,Ottawa,Ohio,39123,66,4 +2020-05-22,Ottawa,Ohio,39123,66,7 +2020-05-23,Ottawa,Ohio,39123,87,7 +2020-05-24,Ottawa,Ohio,39123,90,7 +2020-05-25,Ottawa,Ohio,39123,91,7 +2020-05-26,Ottawa,Ohio,39123,92,7 +2020-05-27,Ottawa,Ohio,39123,94,12 +2020-05-28,Ottawa,Ohio,39123,93,12 +2020-05-29,Ottawa,Ohio,39123,95,13 +2020-05-30,Ottawa,Ohio,39123,99,16 +2020-05-31,Ottawa,Ohio,39123,99,16 +2020-06-01,Ottawa,Ohio,39123,103,16 +2020-06-02,Ottawa,Ohio,39123,103,18 +2020-06-03,Ottawa,Ohio,39123,102,17 +2020-06-04,Ottawa,Ohio,39123,104,17 +2020-06-05,Ottawa,Ohio,39123,107,17 +2020-06-06,Ottawa,Ohio,39123,109,19 +2020-06-07,Ottawa,Ohio,39123,109,19 +2020-06-08,Ottawa,Ohio,39123,109,19 +2020-06-09,Ottawa,Ohio,39123,112,19 +2020-06-10,Ottawa,Ohio,39123,111,20 +2020-06-11,Ottawa,Ohio,39123,111,21 +2020-06-12,Ottawa,Ohio,39123,114,21 +2020-06-13,Ottawa,Ohio,39123,116,21 +2020-06-14,Ottawa,Ohio,39123,117,21 +2020-06-15,Ottawa,Ohio,39123,118,21 +2020-06-16,Ottawa,Ohio,39123,118,22 +2020-06-17,Ottawa,Ohio,39123,118,22 +2020-06-18,Ottawa,Ohio,39123,118,22 +2020-06-19,Ottawa,Ohio,39123,118,22 +2020-06-20,Ottawa,Ohio,39123,118,22 +2020-06-21,Ottawa,Ohio,39123,119,22 +2020-06-22,Ottawa,Ohio,39123,122,22 +2020-06-23,Ottawa,Ohio,39123,122,22 +2020-06-24,Ottawa,Ohio,39123,123,22 +2020-06-25,Ottawa,Ohio,39123,124,23 +2020-06-26,Ottawa,Ohio,39123,126,23 +2020-06-27,Ottawa,Ohio,39123,127,23 +2020-06-28,Ottawa,Ohio,39123,127,23 +2020-06-29,Ottawa,Ohio,39123,127,23 +2020-06-30,Ottawa,Ohio,39123,129,23 +2020-07-01,Ottawa,Ohio,39123,130,23 +2020-07-02,Ottawa,Ohio,39123,130,23 +2020-07-03,Ottawa,Ohio,39123,139,23 +2020-07-04,Ottawa,Ohio,39123,143,23 +2020-07-05,Ottawa,Ohio,39123,143,23 +2020-07-06,Ottawa,Ohio,39123,149,23 +2020-07-07,Ottawa,Ohio,39123,150,24 +2020-07-08,Ottawa,Ohio,39123,160,24 +2020-07-09,Ottawa,Ohio,39123,161,24 +2020-04-06,Paulding,Ohio,39125,1,0 +2020-04-07,Paulding,Ohio,39125,1,0 +2020-04-08,Paulding,Ohio,39125,2,0 +2020-04-09,Paulding,Ohio,39125,2,0 +2020-04-10,Paulding,Ohio,39125,2,0 +2020-04-11,Paulding,Ohio,39125,3,0 +2020-04-12,Paulding,Ohio,39125,5,0 +2020-04-13,Paulding,Ohio,39125,5,0 +2020-04-14,Paulding,Ohio,39125,5,0 +2020-04-15,Paulding,Ohio,39125,5,0 +2020-04-16,Paulding,Ohio,39125,5,0 +2020-04-17,Paulding,Ohio,39125,5,0 +2020-04-18,Paulding,Ohio,39125,5,0 +2020-04-19,Paulding,Ohio,39125,5,0 +2020-04-20,Paulding,Ohio,39125,5,0 +2020-04-21,Paulding,Ohio,39125,5,0 +2020-04-22,Paulding,Ohio,39125,8,0 +2020-04-23,Paulding,Ohio,39125,7,0 +2020-04-24,Paulding,Ohio,39125,8,0 +2020-04-25,Paulding,Ohio,39125,8,0 +2020-04-26,Paulding,Ohio,39125,8,0 +2020-04-27,Paulding,Ohio,39125,8,0 +2020-04-28,Paulding,Ohio,39125,8,0 +2020-04-29,Paulding,Ohio,39125,8,0 +2020-04-30,Paulding,Ohio,39125,8,0 +2020-05-01,Paulding,Ohio,39125,8,0 +2020-05-02,Paulding,Ohio,39125,8,0 +2020-05-03,Paulding,Ohio,39125,8,0 +2020-05-04,Paulding,Ohio,39125,8,0 +2020-05-05,Paulding,Ohio,39125,8,0 +2020-05-06,Paulding,Ohio,39125,8,0 +2020-05-07,Paulding,Ohio,39125,8,0 +2020-05-08,Paulding,Ohio,39125,8,0 +2020-05-09,Paulding,Ohio,39125,9,0 +2020-05-10,Paulding,Ohio,39125,9,0 +2020-05-11,Paulding,Ohio,39125,9,0 +2020-05-12,Paulding,Ohio,39125,9,0 +2020-05-13,Paulding,Ohio,39125,10,0 +2020-05-14,Paulding,Ohio,39125,10,0 +2020-05-15,Paulding,Ohio,39125,11,0 +2020-05-16,Paulding,Ohio,39125,11,0 +2020-05-17,Paulding,Ohio,39125,11,0 +2020-05-18,Paulding,Ohio,39125,11,0 +2020-05-19,Paulding,Ohio,39125,11,0 +2020-05-20,Paulding,Ohio,39125,12,0 +2020-05-21,Paulding,Ohio,39125,12,0 +2020-05-22,Paulding,Ohio,39125,12,0 +2020-05-23,Paulding,Ohio,39125,13,0 +2020-05-24,Paulding,Ohio,39125,13,0 +2020-05-25,Paulding,Ohio,39125,13,0 +2020-05-26,Paulding,Ohio,39125,13,0 +2020-05-27,Paulding,Ohio,39125,13,0 +2020-05-28,Paulding,Ohio,39125,13,0 +2020-05-29,Paulding,Ohio,39125,14,0 +2020-05-30,Paulding,Ohio,39125,14,0 +2020-05-31,Paulding,Ohio,39125,14,0 +2020-06-01,Paulding,Ohio,39125,14,0 +2020-06-02,Paulding,Ohio,39125,14,0 +2020-06-03,Paulding,Ohio,39125,14,0 +2020-06-04,Paulding,Ohio,39125,14,0 +2020-06-05,Paulding,Ohio,39125,14,0 +2020-06-06,Paulding,Ohio,39125,14,0 +2020-06-07,Paulding,Ohio,39125,14,0 +2020-06-08,Paulding,Ohio,39125,14,0 +2020-06-09,Paulding,Ohio,39125,14,0 +2020-06-10,Paulding,Ohio,39125,14,0 +2020-06-11,Paulding,Ohio,39125,14,0 +2020-06-12,Paulding,Ohio,39125,14,0 +2020-06-13,Paulding,Ohio,39125,14,0 +2020-06-14,Paulding,Ohio,39125,14,0 +2020-06-15,Paulding,Ohio,39125,16,0 +2020-06-16,Paulding,Ohio,39125,17,0 +2020-06-17,Paulding,Ohio,39125,17,0 +2020-06-18,Paulding,Ohio,39125,17,0 +2020-06-19,Paulding,Ohio,39125,18,0 +2020-06-20,Paulding,Ohio,39125,18,0 +2020-06-21,Paulding,Ohio,39125,18,0 +2020-06-22,Paulding,Ohio,39125,19,0 +2020-06-23,Paulding,Ohio,39125,21,0 +2020-06-24,Paulding,Ohio,39125,21,0 +2020-06-25,Paulding,Ohio,39125,22,0 +2020-06-26,Paulding,Ohio,39125,22,0 +2020-06-27,Paulding,Ohio,39125,22,0 +2020-06-28,Paulding,Ohio,39125,22,0 +2020-06-29,Paulding,Ohio,39125,22,0 +2020-06-30,Paulding,Ohio,39125,23,0 +2020-07-01,Paulding,Ohio,39125,23,0 +2020-07-02,Paulding,Ohio,39125,23,0 +2020-07-03,Paulding,Ohio,39125,23,0 +2020-07-04,Paulding,Ohio,39125,23,0 +2020-07-05,Paulding,Ohio,39125,23,0 +2020-07-06,Paulding,Ohio,39125,25,0 +2020-07-07,Paulding,Ohio,39125,26,0 +2020-07-08,Paulding,Ohio,39125,26,0 +2020-07-09,Paulding,Ohio,39125,27,0 +2020-03-31,Perry,Ohio,39127,1,0 +2020-04-01,Perry,Ohio,39127,2,0 +2020-04-02,Perry,Ohio,39127,2,0 +2020-04-03,Perry,Ohio,39127,2,0 +2020-04-04,Perry,Ohio,39127,3,0 +2020-04-05,Perry,Ohio,39127,3,0 +2020-04-06,Perry,Ohio,39127,4,0 +2020-04-07,Perry,Ohio,39127,4,0 +2020-04-08,Perry,Ohio,39127,6,0 +2020-04-09,Perry,Ohio,39127,6,0 +2020-04-10,Perry,Ohio,39127,7,0 +2020-04-11,Perry,Ohio,39127,8,0 +2020-04-12,Perry,Ohio,39127,8,0 +2020-04-13,Perry,Ohio,39127,8,0 +2020-04-14,Perry,Ohio,39127,8,0 +2020-04-15,Perry,Ohio,39127,8,0 +2020-04-16,Perry,Ohio,39127,8,0 +2020-04-17,Perry,Ohio,39127,8,0 +2020-04-18,Perry,Ohio,39127,9,0 +2020-04-19,Perry,Ohio,39127,9,0 +2020-04-20,Perry,Ohio,39127,9,0 +2020-04-21,Perry,Ohio,39127,10,0 +2020-04-22,Perry,Ohio,39127,11,0 +2020-04-23,Perry,Ohio,39127,11,0 +2020-04-24,Perry,Ohio,39127,12,0 +2020-04-25,Perry,Ohio,39127,12,0 +2020-04-26,Perry,Ohio,39127,13,0 +2020-04-27,Perry,Ohio,39127,12,0 +2020-04-28,Perry,Ohio,39127,13,0 +2020-04-29,Perry,Ohio,39127,12,0 +2020-04-30,Perry,Ohio,39127,12,0 +2020-05-01,Perry,Ohio,39127,12,0 +2020-05-02,Perry,Ohio,39127,13,0 +2020-05-03,Perry,Ohio,39127,13,0 +2020-05-04,Perry,Ohio,39127,13,0 +2020-05-05,Perry,Ohio,39127,13,1 +2020-05-06,Perry,Ohio,39127,13,1 +2020-05-07,Perry,Ohio,39127,13,1 +2020-05-08,Perry,Ohio,39127,13,1 +2020-05-09,Perry,Ohio,39127,13,1 +2020-05-10,Perry,Ohio,39127,14,1 +2020-05-11,Perry,Ohio,39127,14,1 +2020-05-12,Perry,Ohio,39127,14,1 +2020-05-13,Perry,Ohio,39127,14,1 +2020-05-14,Perry,Ohio,39127,15,1 +2020-05-15,Perry,Ohio,39127,15,1 +2020-05-16,Perry,Ohio,39127,15,1 +2020-05-17,Perry,Ohio,39127,15,1 +2020-05-18,Perry,Ohio,39127,15,1 +2020-05-19,Perry,Ohio,39127,16,1 +2020-05-20,Perry,Ohio,39127,15,1 +2020-05-21,Perry,Ohio,39127,16,1 +2020-05-22,Perry,Ohio,39127,17,1 +2020-05-23,Perry,Ohio,39127,17,1 +2020-05-24,Perry,Ohio,39127,18,1 +2020-05-25,Perry,Ohio,39127,18,1 +2020-05-26,Perry,Ohio,39127,18,1 +2020-05-27,Perry,Ohio,39127,18,1 +2020-05-28,Perry,Ohio,39127,18,1 +2020-05-29,Perry,Ohio,39127,18,1 +2020-05-30,Perry,Ohio,39127,18,1 +2020-05-31,Perry,Ohio,39127,18,1 +2020-06-01,Perry,Ohio,39127,18,1 +2020-06-02,Perry,Ohio,39127,19,1 +2020-06-03,Perry,Ohio,39127,19,1 +2020-06-04,Perry,Ohio,39127,19,1 +2020-06-05,Perry,Ohio,39127,19,1 +2020-06-06,Perry,Ohio,39127,20,1 +2020-06-07,Perry,Ohio,39127,20,1 +2020-06-08,Perry,Ohio,39127,20,1 +2020-06-09,Perry,Ohio,39127,21,1 +2020-06-10,Perry,Ohio,39127,21,1 +2020-06-11,Perry,Ohio,39127,22,1 +2020-06-12,Perry,Ohio,39127,22,1 +2020-06-13,Perry,Ohio,39127,23,1 +2020-06-14,Perry,Ohio,39127,23,1 +2020-06-15,Perry,Ohio,39127,23,1 +2020-06-16,Perry,Ohio,39127,24,1 +2020-06-17,Perry,Ohio,39127,24,1 +2020-06-18,Perry,Ohio,39127,25,1 +2020-06-19,Perry,Ohio,39127,25,1 +2020-06-20,Perry,Ohio,39127,26,1 +2020-06-21,Perry,Ohio,39127,26,1 +2020-06-22,Perry,Ohio,39127,26,1 +2020-06-23,Perry,Ohio,39127,26,1 +2020-06-24,Perry,Ohio,39127,26,1 +2020-06-25,Perry,Ohio,39127,26,1 +2020-06-26,Perry,Ohio,39127,26,1 +2020-06-27,Perry,Ohio,39127,26,1 +2020-06-28,Perry,Ohio,39127,26,1 +2020-06-29,Perry,Ohio,39127,28,1 +2020-06-30,Perry,Ohio,39127,30,1 +2020-07-01,Perry,Ohio,39127,30,1 +2020-07-02,Perry,Ohio,39127,30,1 +2020-07-03,Perry,Ohio,39127,32,1 +2020-07-04,Perry,Ohio,39127,32,1 +2020-07-05,Perry,Ohio,39127,34,1 +2020-07-06,Perry,Ohio,39127,35,1 +2020-07-07,Perry,Ohio,39127,35,1 +2020-07-08,Perry,Ohio,39127,37,1 +2020-07-09,Perry,Ohio,39127,40,1 +2020-03-25,Pickaway,Ohio,39129,1,0 +2020-03-26,Pickaway,Ohio,39129,2,0 +2020-03-27,Pickaway,Ohio,39129,2,0 +2020-03-28,Pickaway,Ohio,39129,4,0 +2020-03-29,Pickaway,Ohio,39129,4,0 +2020-03-30,Pickaway,Ohio,39129,5,0 +2020-03-31,Pickaway,Ohio,39129,12,0 +2020-04-01,Pickaway,Ohio,39129,12,0 +2020-04-02,Pickaway,Ohio,39129,12,0 +2020-04-03,Pickaway,Ohio,39129,13,0 +2020-04-04,Pickaway,Ohio,39129,20,0 +2020-04-05,Pickaway,Ohio,39129,29,0 +2020-04-06,Pickaway,Ohio,39129,27,0 +2020-04-07,Pickaway,Ohio,39129,31,0 +2020-04-08,Pickaway,Ohio,39129,35,0 +2020-04-09,Pickaway,Ohio,39129,39,0 +2020-04-10,Pickaway,Ohio,39129,44,0 +2020-04-11,Pickaway,Ohio,39129,51,0 +2020-04-12,Pickaway,Ohio,39129,58,0 +2020-04-13,Pickaway,Ohio,39129,83,0 +2020-04-14,Pickaway,Ohio,39129,97,0 +2020-04-15,Pickaway,Ohio,39129,172,0 +2020-04-16,Pickaway,Ohio,39129,196,4 +2020-04-17,Pickaway,Ohio,39129,253,4 +2020-04-18,Pickaway,Ohio,39129,302,4 +2020-04-19,Pickaway,Ohio,39129,477,4 +2020-04-20,Pickaway,Ohio,39129,1246,5 +2020-04-21,Pickaway,Ohio,39129,1635,5 +2020-04-22,Pickaway,Ohio,39129,1658,5 +2020-04-23,Pickaway,Ohio,39129,1661,5 +2020-04-24,Pickaway,Ohio,39129,1659,5 +2020-04-25,Pickaway,Ohio,39129,1662,5 +2020-04-26,Pickaway,Ohio,39129,1658,5 +2020-04-27,Pickaway,Ohio,39129,1698,5 +2020-04-28,Pickaway,Ohio,39129,1706,7 +2020-04-29,Pickaway,Ohio,39129,1722,20 +2020-04-30,Pickaway,Ohio,39129,1732,21 +2020-05-01,Pickaway,Ohio,39129,1731,22 +2020-05-02,Pickaway,Ohio,39129,1724,22 +2020-05-03,Pickaway,Ohio,39129,1729,22 +2020-05-04,Pickaway,Ohio,39129,1828,22 +2020-05-05,Pickaway,Ohio,39129,1831,22 +2020-05-06,Pickaway,Ohio,39129,1836,22 +2020-05-07,Pickaway,Ohio,39129,1841,23 +2020-05-08,Pickaway,Ohio,39129,1842,23 +2020-05-09,Pickaway,Ohio,39129,1844,23 +2020-05-10,Pickaway,Ohio,39129,1845,23 +2020-05-11,Pickaway,Ohio,39129,1933,23 +2020-05-12,Pickaway,Ohio,39129,1955,24 +2020-05-13,Pickaway,Ohio,39129,1958,25 +2020-05-14,Pickaway,Ohio,39129,1990,25 +2020-05-15,Pickaway,Ohio,39129,2005,25 +2020-05-16,Pickaway,Ohio,39129,2011,25 +2020-05-17,Pickaway,Ohio,39129,2018,25 +2020-05-18,Pickaway,Ohio,39129,2021,25 +2020-05-19,Pickaway,Ohio,39129,2025,31 +2020-05-20,Pickaway,Ohio,39129,2029,32 +2020-05-21,Pickaway,Ohio,39129,2031,32 +2020-05-22,Pickaway,Ohio,39129,2033,32 +2020-05-23,Pickaway,Ohio,39129,2038,35 +2020-05-24,Pickaway,Ohio,39129,2042,35 +2020-05-25,Pickaway,Ohio,39129,2043,35 +2020-05-26,Pickaway,Ohio,39129,2046,35 +2020-05-27,Pickaway,Ohio,39129,2046,35 +2020-05-28,Pickaway,Ohio,39129,2048,36 +2020-05-29,Pickaway,Ohio,39129,2050,36 +2020-05-30,Pickaway,Ohio,39129,2050,37 +2020-05-31,Pickaway,Ohio,39129,2074,37 +2020-06-01,Pickaway,Ohio,39129,2086,37 +2020-06-02,Pickaway,Ohio,39129,2092,37 +2020-06-03,Pickaway,Ohio,39129,2095,37 +2020-06-04,Pickaway,Ohio,39129,2096,38 +2020-06-05,Pickaway,Ohio,39129,2099,38 +2020-06-06,Pickaway,Ohio,39129,2099,38 +2020-06-07,Pickaway,Ohio,39129,2106,38 +2020-06-08,Pickaway,Ohio,39129,2108,39 +2020-06-09,Pickaway,Ohio,39129,2109,39 +2020-06-10,Pickaway,Ohio,39129,2110,39 +2020-06-11,Pickaway,Ohio,39129,2121,39 +2020-06-12,Pickaway,Ohio,39129,2115,39 +2020-06-13,Pickaway,Ohio,39129,2123,40 +2020-06-14,Pickaway,Ohio,39129,2125,40 +2020-06-15,Pickaway,Ohio,39129,2126,40 +2020-06-16,Pickaway,Ohio,39129,2125,40 +2020-06-17,Pickaway,Ohio,39129,2128,40 +2020-06-18,Pickaway,Ohio,39129,2131,40 +2020-06-19,Pickaway,Ohio,39129,2135,40 +2020-06-20,Pickaway,Ohio,39129,2137,41 +2020-06-21,Pickaway,Ohio,39129,2139,41 +2020-06-22,Pickaway,Ohio,39129,2141,41 +2020-06-23,Pickaway,Ohio,39129,2144,41 +2020-06-24,Pickaway,Ohio,39129,2148,41 +2020-06-25,Pickaway,Ohio,39129,2150,41 +2020-06-26,Pickaway,Ohio,39129,2157,41 +2020-06-27,Pickaway,Ohio,39129,2162,41 +2020-06-28,Pickaway,Ohio,39129,2164,41 +2020-06-29,Pickaway,Ohio,39129,2169,41 +2020-06-30,Pickaway,Ohio,39129,2170,41 +2020-07-01,Pickaway,Ohio,39129,2176,41 +2020-07-02,Pickaway,Ohio,39129,2176,41 +2020-07-03,Pickaway,Ohio,39129,2184,41 +2020-07-04,Pickaway,Ohio,39129,2188,41 +2020-07-05,Pickaway,Ohio,39129,2191,41 +2020-07-06,Pickaway,Ohio,39129,2197,41 +2020-07-07,Pickaway,Ohio,39129,2201,41 +2020-07-08,Pickaway,Ohio,39129,2205,41 +2020-07-09,Pickaway,Ohio,39129,2206,41 +2020-03-28,Pike,Ohio,39131,1,0 +2020-03-29,Pike,Ohio,39131,1,0 +2020-03-30,Pike,Ohio,39131,1,0 +2020-03-31,Pike,Ohio,39131,1,0 +2020-04-01,Pike,Ohio,39131,1,0 +2020-04-02,Pike,Ohio,39131,1,0 +2020-04-03,Pike,Ohio,39131,1,0 +2020-04-04,Pike,Ohio,39131,1,0 +2020-04-05,Pike,Ohio,39131,1,0 +2020-04-06,Pike,Ohio,39131,1,0 +2020-04-07,Pike,Ohio,39131,1,0 +2020-04-08,Pike,Ohio,39131,1,0 +2020-04-09,Pike,Ohio,39131,1,0 +2020-04-10,Pike,Ohio,39131,1,0 +2020-04-11,Pike,Ohio,39131,1,0 +2020-04-12,Pike,Ohio,39131,1,0 +2020-04-13,Pike,Ohio,39131,1,0 +2020-04-14,Pike,Ohio,39131,1,0 +2020-04-15,Pike,Ohio,39131,1,0 +2020-04-16,Pike,Ohio,39131,1,0 +2020-04-17,Pike,Ohio,39131,1,0 +2020-04-18,Pike,Ohio,39131,1,0 +2020-04-19,Pike,Ohio,39131,1,0 +2020-04-20,Pike,Ohio,39131,2,0 +2020-04-21,Pike,Ohio,39131,2,0 +2020-04-22,Pike,Ohio,39131,2,0 +2020-04-23,Pike,Ohio,39131,2,0 +2020-04-24,Pike,Ohio,39131,2,0 +2020-04-25,Pike,Ohio,39131,3,0 +2020-04-26,Pike,Ohio,39131,3,0 +2020-04-27,Pike,Ohio,39131,3,0 +2020-04-28,Pike,Ohio,39131,3,0 +2020-04-29,Pike,Ohio,39131,3,0 +2020-04-30,Pike,Ohio,39131,3,0 +2020-05-01,Pike,Ohio,39131,3,0 +2020-05-02,Pike,Ohio,39131,3,0 +2020-05-03,Pike,Ohio,39131,3,0 +2020-05-04,Pike,Ohio,39131,3,0 +2020-05-05,Pike,Ohio,39131,4,0 +2020-05-06,Pike,Ohio,39131,4,0 +2020-05-07,Pike,Ohio,39131,4,0 +2020-05-08,Pike,Ohio,39131,4,0 +2020-05-09,Pike,Ohio,39131,5,0 +2020-05-10,Pike,Ohio,39131,5,0 +2020-05-11,Pike,Ohio,39131,5,0 +2020-05-12,Pike,Ohio,39131,5,0 +2020-05-13,Pike,Ohio,39131,5,0 +2020-05-14,Pike,Ohio,39131,5,0 +2020-05-15,Pike,Ohio,39131,5,0 +2020-05-16,Pike,Ohio,39131,5,0 +2020-05-17,Pike,Ohio,39131,5,0 +2020-05-18,Pike,Ohio,39131,5,0 +2020-05-19,Pike,Ohio,39131,6,0 +2020-05-20,Pike,Ohio,39131,6,0 +2020-05-21,Pike,Ohio,39131,6,0 +2020-05-22,Pike,Ohio,39131,6,0 +2020-05-23,Pike,Ohio,39131,6,0 +2020-05-24,Pike,Ohio,39131,6,0 +2020-05-25,Pike,Ohio,39131,6,0 +2020-05-26,Pike,Ohio,39131,6,0 +2020-05-27,Pike,Ohio,39131,6,0 +2020-05-28,Pike,Ohio,39131,6,0 +2020-05-29,Pike,Ohio,39131,6,0 +2020-05-30,Pike,Ohio,39131,6,0 +2020-05-31,Pike,Ohio,39131,6,0 +2020-06-01,Pike,Ohio,39131,8,0 +2020-06-02,Pike,Ohio,39131,8,0 +2020-06-03,Pike,Ohio,39131,9,0 +2020-06-04,Pike,Ohio,39131,9,0 +2020-06-05,Pike,Ohio,39131,9,0 +2020-06-06,Pike,Ohio,39131,9,0 +2020-06-07,Pike,Ohio,39131,9,0 +2020-06-08,Pike,Ohio,39131,9,0 +2020-06-09,Pike,Ohio,39131,9,0 +2020-06-10,Pike,Ohio,39131,9,0 +2020-06-11,Pike,Ohio,39131,10,0 +2020-06-12,Pike,Ohio,39131,9,0 +2020-06-13,Pike,Ohio,39131,9,0 +2020-06-14,Pike,Ohio,39131,9,0 +2020-06-15,Pike,Ohio,39131,9,0 +2020-06-16,Pike,Ohio,39131,9,0 +2020-06-17,Pike,Ohio,39131,11,0 +2020-06-18,Pike,Ohio,39131,12,0 +2020-06-19,Pike,Ohio,39131,12,0 +2020-06-20,Pike,Ohio,39131,13,0 +2020-06-21,Pike,Ohio,39131,14,0 +2020-06-22,Pike,Ohio,39131,17,0 +2020-06-23,Pike,Ohio,39131,17,0 +2020-06-24,Pike,Ohio,39131,17,0 +2020-06-25,Pike,Ohio,39131,19,0 +2020-06-26,Pike,Ohio,39131,20,0 +2020-06-27,Pike,Ohio,39131,20,0 +2020-06-28,Pike,Ohio,39131,20,0 +2020-06-29,Pike,Ohio,39131,20,0 +2020-06-30,Pike,Ohio,39131,20,0 +2020-07-01,Pike,Ohio,39131,20,0 +2020-07-02,Pike,Ohio,39131,20,0 +2020-07-03,Pike,Ohio,39131,22,0 +2020-07-04,Pike,Ohio,39131,23,0 +2020-07-05,Pike,Ohio,39131,23,0 +2020-07-06,Pike,Ohio,39131,23,0 +2020-07-07,Pike,Ohio,39131,24,0 +2020-07-08,Pike,Ohio,39131,24,0 +2020-07-09,Pike,Ohio,39131,27,0 +2020-03-22,Portage,Ohio,39133,1,0 +2020-03-23,Portage,Ohio,39133,2,0 +2020-03-24,Portage,Ohio,39133,4,0 +2020-03-25,Portage,Ohio,39133,4,0 +2020-03-26,Portage,Ohio,39133,8,0 +2020-03-27,Portage,Ohio,39133,13,0 +2020-03-28,Portage,Ohio,39133,19,0 +2020-03-29,Portage,Ohio,39133,27,0 +2020-03-30,Portage,Ohio,39133,32,1 +2020-03-31,Portage,Ohio,39133,38,1 +2020-04-01,Portage,Ohio,39133,44,1 +2020-04-02,Portage,Ohio,39133,59,2 +2020-04-03,Portage,Ohio,39133,65,3 +2020-04-04,Portage,Ohio,39133,74,3 +2020-04-05,Portage,Ohio,39133,84,4 +2020-04-06,Portage,Ohio,39133,94,5 +2020-04-07,Portage,Ohio,39133,101,7 +2020-04-08,Portage,Ohio,39133,108,8 +2020-04-09,Portage,Ohio,39133,116,14 +2020-04-10,Portage,Ohio,39133,124,14 +2020-04-11,Portage,Ohio,39133,134,14 +2020-04-12,Portage,Ohio,39133,139,15 +2020-04-13,Portage,Ohio,39133,144,17 +2020-04-14,Portage,Ohio,39133,146,20 +2020-04-15,Portage,Ohio,39133,158,22 +2020-04-16,Portage,Ohio,39133,162,24 +2020-04-17,Portage,Ohio,39133,166,24 +2020-04-18,Portage,Ohio,39133,168,24 +2020-04-19,Portage,Ohio,39133,176,24 +2020-04-20,Portage,Ohio,39133,180,24 +2020-04-21,Portage,Ohio,39133,186,30 +2020-04-22,Portage,Ohio,39133,197,31 +2020-04-23,Portage,Ohio,39133,206,31 +2020-04-24,Portage,Ohio,39133,213,31 +2020-04-25,Portage,Ohio,39133,214,31 +2020-04-26,Portage,Ohio,39133,220,31 +2020-04-27,Portage,Ohio,39133,221,33 +2020-04-28,Portage,Ohio,39133,226,35 +2020-04-29,Portage,Ohio,39133,230,39 +2020-04-30,Portage,Ohio,39133,236,40 +2020-05-01,Portage,Ohio,39133,237,41 +2020-05-02,Portage,Ohio,39133,243,41 +2020-05-03,Portage,Ohio,39133,247,41 +2020-05-04,Portage,Ohio,39133,251,42 +2020-05-05,Portage,Ohio,39133,254,43 +2020-05-06,Portage,Ohio,39133,262,46 +2020-05-07,Portage,Ohio,39133,265,46 +2020-05-08,Portage,Ohio,39133,272,46 +2020-05-09,Portage,Ohio,39133,274,46 +2020-05-10,Portage,Ohio,39133,276,46 +2020-05-11,Portage,Ohio,39133,280,46 +2020-05-12,Portage,Ohio,39133,275,48 +2020-05-13,Portage,Ohio,39133,280,50 +2020-05-14,Portage,Ohio,39133,284,51 +2020-05-15,Portage,Ohio,39133,289,51 +2020-05-16,Portage,Ohio,39133,290,51 +2020-05-17,Portage,Ohio,39133,292,51 +2020-05-18,Portage,Ohio,39133,296,53 +2020-05-19,Portage,Ohio,39133,297,53 +2020-05-20,Portage,Ohio,39133,298,55 +2020-05-21,Portage,Ohio,39133,303,55 +2020-05-22,Portage,Ohio,39133,308,55 +2020-05-23,Portage,Ohio,39133,309,58 +2020-05-24,Portage,Ohio,39133,310,58 +2020-05-25,Portage,Ohio,39133,314,58 +2020-05-26,Portage,Ohio,39133,316,57 +2020-05-27,Portage,Ohio,39133,313,57 +2020-05-28,Portage,Ohio,39133,318,57 +2020-05-29,Portage,Ohio,39133,322,57 +2020-05-30,Portage,Ohio,39133,323,57 +2020-05-31,Portage,Ohio,39133,325,57 +2020-06-01,Portage,Ohio,39133,327,57 +2020-06-02,Portage,Ohio,39133,329,57 +2020-06-03,Portage,Ohio,39133,332,57 +2020-06-04,Portage,Ohio,39133,333,57 +2020-06-05,Portage,Ohio,39133,335,57 +2020-06-06,Portage,Ohio,39133,338,57 +2020-06-07,Portage,Ohio,39133,339,57 +2020-06-08,Portage,Ohio,39133,341,57 +2020-06-09,Portage,Ohio,39133,344,58 +2020-06-10,Portage,Ohio,39133,346,58 +2020-06-11,Portage,Ohio,39133,348,58 +2020-06-12,Portage,Ohio,39133,352,58 +2020-06-13,Portage,Ohio,39133,352,58 +2020-06-14,Portage,Ohio,39133,353,58 +2020-06-15,Portage,Ohio,39133,353,58 +2020-06-16,Portage,Ohio,39133,354,58 +2020-06-17,Portage,Ohio,39133,359,58 +2020-06-18,Portage,Ohio,39133,364,58 +2020-06-19,Portage,Ohio,39133,366,58 +2020-06-20,Portage,Ohio,39133,367,58 +2020-06-21,Portage,Ohio,39133,369,58 +2020-06-22,Portage,Ohio,39133,369,58 +2020-06-23,Portage,Ohio,39133,371,58 +2020-06-24,Portage,Ohio,39133,379,58 +2020-06-25,Portage,Ohio,39133,382,58 +2020-06-26,Portage,Ohio,39133,395,58 +2020-06-27,Portage,Ohio,39133,400,58 +2020-06-28,Portage,Ohio,39133,407,58 +2020-06-29,Portage,Ohio,39133,409,58 +2020-06-30,Portage,Ohio,39133,412,58 +2020-07-01,Portage,Ohio,39133,418,58 +2020-07-02,Portage,Ohio,39133,418,58 +2020-07-03,Portage,Ohio,39133,428,58 +2020-07-04,Portage,Ohio,39133,432,58 +2020-07-05,Portage,Ohio,39133,440,58 +2020-07-06,Portage,Ohio,39133,442,58 +2020-07-07,Portage,Ohio,39133,449,59 +2020-07-08,Portage,Ohio,39133,461,59 +2020-07-09,Portage,Ohio,39133,477,59 +2020-03-30,Preble,Ohio,39135,1,0 +2020-03-31,Preble,Ohio,39135,1,0 +2020-04-01,Preble,Ohio,39135,1,0 +2020-04-02,Preble,Ohio,39135,1,0 +2020-04-03,Preble,Ohio,39135,3,0 +2020-04-04,Preble,Ohio,39135,4,0 +2020-04-05,Preble,Ohio,39135,5,0 +2020-04-06,Preble,Ohio,39135,5,0 +2020-04-07,Preble,Ohio,39135,7,0 +2020-04-08,Preble,Ohio,39135,8,0 +2020-04-09,Preble,Ohio,39135,9,1 +2020-04-10,Preble,Ohio,39135,10,1 +2020-04-11,Preble,Ohio,39135,11,1 +2020-04-12,Preble,Ohio,39135,15,1 +2020-04-13,Preble,Ohio,39135,16,1 +2020-04-14,Preble,Ohio,39135,17,1 +2020-04-15,Preble,Ohio,39135,20,1 +2020-04-16,Preble,Ohio,39135,20,1 +2020-04-17,Preble,Ohio,39135,21,1 +2020-04-18,Preble,Ohio,39135,21,1 +2020-04-19,Preble,Ohio,39135,21,1 +2020-04-20,Preble,Ohio,39135,24,1 +2020-04-21,Preble,Ohio,39135,25,1 +2020-04-22,Preble,Ohio,39135,25,1 +2020-04-23,Preble,Ohio,39135,25,1 +2020-04-24,Preble,Ohio,39135,25,1 +2020-04-25,Preble,Ohio,39135,25,1 +2020-04-26,Preble,Ohio,39135,25,1 +2020-04-27,Preble,Ohio,39135,25,1 +2020-04-28,Preble,Ohio,39135,25,1 +2020-04-29,Preble,Ohio,39135,27,2 +2020-04-30,Preble,Ohio,39135,27,1 +2020-05-01,Preble,Ohio,39135,27,1 +2020-05-02,Preble,Ohio,39135,27,1 +2020-05-03,Preble,Ohio,39135,27,1 +2020-05-04,Preble,Ohio,39135,27,1 +2020-05-05,Preble,Ohio,39135,27,1 +2020-05-06,Preble,Ohio,39135,27,1 +2020-05-07,Preble,Ohio,39135,27,1 +2020-05-08,Preble,Ohio,39135,27,1 +2020-05-09,Preble,Ohio,39135,28,1 +2020-05-10,Preble,Ohio,39135,28,1 +2020-05-11,Preble,Ohio,39135,28,1 +2020-05-12,Preble,Ohio,39135,28,1 +2020-05-13,Preble,Ohio,39135,28,1 +2020-05-14,Preble,Ohio,39135,28,1 +2020-05-15,Preble,Ohio,39135,28,1 +2020-05-16,Preble,Ohio,39135,28,1 +2020-05-17,Preble,Ohio,39135,29,1 +2020-05-18,Preble,Ohio,39135,30,1 +2020-05-19,Preble,Ohio,39135,30,1 +2020-05-20,Preble,Ohio,39135,30,1 +2020-05-21,Preble,Ohio,39135,30,1 +2020-05-22,Preble,Ohio,39135,30,1 +2020-05-23,Preble,Ohio,39135,30,1 +2020-05-24,Preble,Ohio,39135,31,1 +2020-05-25,Preble,Ohio,39135,30,1 +2020-05-26,Preble,Ohio,39135,30,1 +2020-05-27,Preble,Ohio,39135,31,1 +2020-05-28,Preble,Ohio,39135,33,1 +2020-05-29,Preble,Ohio,39135,35,1 +2020-05-30,Preble,Ohio,39135,35,1 +2020-05-31,Preble,Ohio,39135,37,1 +2020-06-01,Preble,Ohio,39135,39,1 +2020-06-02,Preble,Ohio,39135,39,1 +2020-06-03,Preble,Ohio,39135,39,1 +2020-06-04,Preble,Ohio,39135,39,1 +2020-06-05,Preble,Ohio,39135,39,1 +2020-06-06,Preble,Ohio,39135,39,1 +2020-06-07,Preble,Ohio,39135,39,1 +2020-06-08,Preble,Ohio,39135,39,1 +2020-06-09,Preble,Ohio,39135,39,1 +2020-06-10,Preble,Ohio,39135,40,1 +2020-06-11,Preble,Ohio,39135,40,1 +2020-06-12,Preble,Ohio,39135,41,1 +2020-06-13,Preble,Ohio,39135,42,1 +2020-06-14,Preble,Ohio,39135,43,1 +2020-06-15,Preble,Ohio,39135,44,1 +2020-06-16,Preble,Ohio,39135,44,1 +2020-06-17,Preble,Ohio,39135,45,1 +2020-06-18,Preble,Ohio,39135,46,1 +2020-06-19,Preble,Ohio,39135,49,1 +2020-06-20,Preble,Ohio,39135,50,1 +2020-06-21,Preble,Ohio,39135,51,1 +2020-06-22,Preble,Ohio,39135,52,1 +2020-06-23,Preble,Ohio,39135,51,1 +2020-06-24,Preble,Ohio,39135,51,1 +2020-06-25,Preble,Ohio,39135,55,1 +2020-06-26,Preble,Ohio,39135,57,1 +2020-06-27,Preble,Ohio,39135,57,1 +2020-06-28,Preble,Ohio,39135,59,1 +2020-06-29,Preble,Ohio,39135,60,1 +2020-06-30,Preble,Ohio,39135,62,1 +2020-07-01,Preble,Ohio,39135,66,1 +2020-07-02,Preble,Ohio,39135,66,1 +2020-07-03,Preble,Ohio,39135,70,1 +2020-07-04,Preble,Ohio,39135,73,1 +2020-07-05,Preble,Ohio,39135,73,1 +2020-07-06,Preble,Ohio,39135,73,1 +2020-07-07,Preble,Ohio,39135,78,1 +2020-07-08,Preble,Ohio,39135,80,1 +2020-07-09,Preble,Ohio,39135,81,1 +2020-04-06,Putnam,Ohio,39137,1,0 +2020-04-07,Putnam,Ohio,39137,1,0 +2020-04-08,Putnam,Ohio,39137,1,0 +2020-04-09,Putnam,Ohio,39137,1,0 +2020-04-10,Putnam,Ohio,39137,1,0 +2020-04-11,Putnam,Ohio,39137,1,0 +2020-04-12,Putnam,Ohio,39137,1,0 +2020-04-13,Putnam,Ohio,39137,1,0 +2020-04-14,Putnam,Ohio,39137,2,0 +2020-04-15,Putnam,Ohio,39137,4,0 +2020-04-16,Putnam,Ohio,39137,4,0 +2020-04-17,Putnam,Ohio,39137,13,0 +2020-04-18,Putnam,Ohio,39137,14,0 +2020-04-19,Putnam,Ohio,39137,18,0 +2020-04-20,Putnam,Ohio,39137,21,0 +2020-04-21,Putnam,Ohio,39137,22,0 +2020-04-22,Putnam,Ohio,39137,24,2 +2020-04-23,Putnam,Ohio,39137,47,3 +2020-04-24,Putnam,Ohio,39137,49,4 +2020-04-25,Putnam,Ohio,39137,51,5 +2020-04-26,Putnam,Ohio,39137,54,5 +2020-04-27,Putnam,Ohio,39137,54,5 +2020-04-28,Putnam,Ohio,39137,63,6 +2020-04-29,Putnam,Ohio,39137,64,6 +2020-04-30,Putnam,Ohio,39137,67,8 +2020-05-01,Putnam,Ohio,39137,68,8 +2020-05-02,Putnam,Ohio,39137,69,9 +2020-05-03,Putnam,Ohio,39137,69,9 +2020-05-04,Putnam,Ohio,39137,71,9 +2020-05-05,Putnam,Ohio,39137,71,10 +2020-05-06,Putnam,Ohio,39137,71,12 +2020-05-07,Putnam,Ohio,39137,73,12 +2020-05-08,Putnam,Ohio,39137,75,13 +2020-05-09,Putnam,Ohio,39137,76,13 +2020-05-10,Putnam,Ohio,39137,76,13 +2020-05-11,Putnam,Ohio,39137,76,13 +2020-05-12,Putnam,Ohio,39137,77,13 +2020-05-13,Putnam,Ohio,39137,77,13 +2020-05-14,Putnam,Ohio,39137,77,13 +2020-05-15,Putnam,Ohio,39137,80,13 +2020-05-16,Putnam,Ohio,39137,80,13 +2020-05-17,Putnam,Ohio,39137,82,13 +2020-05-18,Putnam,Ohio,39137,84,13 +2020-05-19,Putnam,Ohio,39137,84,13 +2020-05-20,Putnam,Ohio,39137,84,13 +2020-05-21,Putnam,Ohio,39137,84,13 +2020-05-22,Putnam,Ohio,39137,84,13 +2020-05-23,Putnam,Ohio,39137,85,14 +2020-05-24,Putnam,Ohio,39137,85,14 +2020-05-25,Putnam,Ohio,39137,87,14 +2020-05-26,Putnam,Ohio,39137,87,14 +2020-05-27,Putnam,Ohio,39137,87,14 +2020-05-28,Putnam,Ohio,39137,88,14 +2020-05-29,Putnam,Ohio,39137,90,14 +2020-05-30,Putnam,Ohio,39137,91,14 +2020-05-31,Putnam,Ohio,39137,92,14 +2020-06-01,Putnam,Ohio,39137,93,14 +2020-06-02,Putnam,Ohio,39137,93,14 +2020-06-03,Putnam,Ohio,39137,95,14 +2020-06-04,Putnam,Ohio,39137,95,14 +2020-06-05,Putnam,Ohio,39137,95,14 +2020-06-06,Putnam,Ohio,39137,96,14 +2020-06-07,Putnam,Ohio,39137,97,14 +2020-06-08,Putnam,Ohio,39137,97,14 +2020-06-09,Putnam,Ohio,39137,98,14 +2020-06-10,Putnam,Ohio,39137,99,14 +2020-06-11,Putnam,Ohio,39137,100,15 +2020-06-12,Putnam,Ohio,39137,100,15 +2020-06-13,Putnam,Ohio,39137,101,15 +2020-06-14,Putnam,Ohio,39137,101,15 +2020-06-15,Putnam,Ohio,39137,101,15 +2020-06-16,Putnam,Ohio,39137,101,15 +2020-06-17,Putnam,Ohio,39137,101,15 +2020-06-18,Putnam,Ohio,39137,102,15 +2020-06-19,Putnam,Ohio,39137,103,15 +2020-06-20,Putnam,Ohio,39137,103,15 +2020-06-21,Putnam,Ohio,39137,105,15 +2020-06-22,Putnam,Ohio,39137,105,15 +2020-06-23,Putnam,Ohio,39137,105,15 +2020-06-24,Putnam,Ohio,39137,106,15 +2020-06-25,Putnam,Ohio,39137,107,15 +2020-06-26,Putnam,Ohio,39137,109,15 +2020-06-27,Putnam,Ohio,39137,110,15 +2020-06-28,Putnam,Ohio,39137,112,15 +2020-06-29,Putnam,Ohio,39137,113,15 +2020-06-30,Putnam,Ohio,39137,113,16 +2020-07-01,Putnam,Ohio,39137,115,16 +2020-07-02,Putnam,Ohio,39137,115,16 +2020-07-03,Putnam,Ohio,39137,126,15 +2020-07-04,Putnam,Ohio,39137,127,15 +2020-07-05,Putnam,Ohio,39137,128,15 +2020-07-06,Putnam,Ohio,39137,128,15 +2020-07-07,Putnam,Ohio,39137,129,15 +2020-07-08,Putnam,Ohio,39137,132,15 +2020-07-09,Putnam,Ohio,39137,133,15 +2020-03-19,Richland,Ohio,39139,1,0 +2020-03-20,Richland,Ohio,39139,1,0 +2020-03-21,Richland,Ohio,39139,1,0 +2020-03-22,Richland,Ohio,39139,1,0 +2020-03-23,Richland,Ohio,39139,1,0 +2020-03-24,Richland,Ohio,39139,4,0 +2020-03-25,Richland,Ohio,39139,4,0 +2020-03-26,Richland,Ohio,39139,4,0 +2020-03-27,Richland,Ohio,39139,4,0 +2020-03-28,Richland,Ohio,39139,5,0 +2020-03-29,Richland,Ohio,39139,5,0 +2020-03-30,Richland,Ohio,39139,5,0 +2020-03-31,Richland,Ohio,39139,6,0 +2020-04-01,Richland,Ohio,39139,8,0 +2020-04-02,Richland,Ohio,39139,8,0 +2020-04-03,Richland,Ohio,39139,10,0 +2020-04-04,Richland,Ohio,39139,14,0 +2020-04-05,Richland,Ohio,39139,17,0 +2020-04-06,Richland,Ohio,39139,19,0 +2020-04-07,Richland,Ohio,39139,20,0 +2020-04-08,Richland,Ohio,39139,25,0 +2020-04-09,Richland,Ohio,39139,27,1 +2020-04-10,Richland,Ohio,39139,28,1 +2020-04-11,Richland,Ohio,39139,34,1 +2020-04-12,Richland,Ohio,39139,36,1 +2020-04-13,Richland,Ohio,39139,43,1 +2020-04-14,Richland,Ohio,39139,43,1 +2020-04-15,Richland,Ohio,39139,44,1 +2020-04-16,Richland,Ohio,39139,48,1 +2020-04-17,Richland,Ohio,39139,50,1 +2020-04-18,Richland,Ohio,39139,60,1 +2020-04-19,Richland,Ohio,39139,65,1 +2020-04-20,Richland,Ohio,39139,64,1 +2020-04-21,Richland,Ohio,39139,66,1 +2020-04-22,Richland,Ohio,39139,68,1 +2020-04-23,Richland,Ohio,39139,70,1 +2020-04-24,Richland,Ohio,39139,73,1 +2020-04-25,Richland,Ohio,39139,77,1 +2020-04-26,Richland,Ohio,39139,78,1 +2020-04-27,Richland,Ohio,39139,76,1 +2020-04-28,Richland,Ohio,39139,80,1 +2020-04-29,Richland,Ohio,39139,80,1 +2020-04-30,Richland,Ohio,39139,81,2 +2020-05-01,Richland,Ohio,39139,85,2 +2020-05-02,Richland,Ohio,39139,89,2 +2020-05-03,Richland,Ohio,39139,90,2 +2020-05-04,Richland,Ohio,39139,90,2 +2020-05-05,Richland,Ohio,39139,91,2 +2020-05-06,Richland,Ohio,39139,92,2 +2020-05-07,Richland,Ohio,39139,94,2 +2020-05-08,Richland,Ohio,39139,103,2 +2020-05-09,Richland,Ohio,39139,113,2 +2020-05-10,Richland,Ohio,39139,118,2 +2020-05-11,Richland,Ohio,39139,121,2 +2020-05-12,Richland,Ohio,39139,130,2 +2020-05-13,Richland,Ohio,39139,135,2 +2020-05-14,Richland,Ohio,39139,143,2 +2020-05-15,Richland,Ohio,39139,150,2 +2020-05-16,Richland,Ohio,39139,155,2 +2020-05-17,Richland,Ohio,39139,159,2 +2020-05-18,Richland,Ohio,39139,161,2 +2020-05-19,Richland,Ohio,39139,165,2 +2020-05-20,Richland,Ohio,39139,166,2 +2020-05-21,Richland,Ohio,39139,170,3 +2020-05-22,Richland,Ohio,39139,178,3 +2020-05-23,Richland,Ohio,39139,179,3 +2020-05-24,Richland,Ohio,39139,183,3 +2020-05-25,Richland,Ohio,39139,186,3 +2020-05-26,Richland,Ohio,39139,187,3 +2020-05-27,Richland,Ohio,39139,189,3 +2020-05-28,Richland,Ohio,39139,193,3 +2020-05-29,Richland,Ohio,39139,197,3 +2020-05-30,Richland,Ohio,39139,199,3 +2020-05-31,Richland,Ohio,39139,200,3 +2020-06-01,Richland,Ohio,39139,201,3 +2020-06-02,Richland,Ohio,39139,205,3 +2020-06-03,Richland,Ohio,39139,209,3 +2020-06-04,Richland,Ohio,39139,216,4 +2020-06-05,Richland,Ohio,39139,222,4 +2020-06-06,Richland,Ohio,39139,223,4 +2020-06-07,Richland,Ohio,39139,231,4 +2020-06-08,Richland,Ohio,39139,232,4 +2020-06-09,Richland,Ohio,39139,232,4 +2020-06-10,Richland,Ohio,39139,234,4 +2020-06-11,Richland,Ohio,39139,238,4 +2020-06-12,Richland,Ohio,39139,242,4 +2020-06-13,Richland,Ohio,39139,246,4 +2020-06-14,Richland,Ohio,39139,249,4 +2020-06-15,Richland,Ohio,39139,252,4 +2020-06-16,Richland,Ohio,39139,253,4 +2020-06-17,Richland,Ohio,39139,257,4 +2020-06-18,Richland,Ohio,39139,260,4 +2020-06-19,Richland,Ohio,39139,266,4 +2020-06-20,Richland,Ohio,39139,269,4 +2020-06-21,Richland,Ohio,39139,271,4 +2020-06-22,Richland,Ohio,39139,277,4 +2020-06-23,Richland,Ohio,39139,280,4 +2020-06-24,Richland,Ohio,39139,285,4 +2020-06-25,Richland,Ohio,39139,296,4 +2020-06-26,Richland,Ohio,39139,300,4 +2020-06-27,Richland,Ohio,39139,306,4 +2020-06-28,Richland,Ohio,39139,310,4 +2020-06-29,Richland,Ohio,39139,312,4 +2020-06-30,Richland,Ohio,39139,314,5 +2020-07-01,Richland,Ohio,39139,318,5 +2020-07-02,Richland,Ohio,39139,318,5 +2020-07-03,Richland,Ohio,39139,325,5 +2020-07-04,Richland,Ohio,39139,332,5 +2020-07-05,Richland,Ohio,39139,337,5 +2020-07-06,Richland,Ohio,39139,345,5 +2020-07-07,Richland,Ohio,39139,347,5 +2020-07-08,Richland,Ohio,39139,351,5 +2020-07-09,Richland,Ohio,39139,359,5 +2020-03-30,Ross,Ohio,39141,1,0 +2020-03-31,Ross,Ohio,39141,2,0 +2020-04-01,Ross,Ohio,39141,2,0 +2020-04-02,Ross,Ohio,39141,3,0 +2020-04-03,Ross,Ohio,39141,4,0 +2020-04-04,Ross,Ohio,39141,4,0 +2020-04-05,Ross,Ohio,39141,4,0 +2020-04-06,Ross,Ohio,39141,6,0 +2020-04-07,Ross,Ohio,39141,9,0 +2020-04-08,Ross,Ohio,39141,10,0 +2020-04-09,Ross,Ohio,39141,10,0 +2020-04-10,Ross,Ohio,39141,12,0 +2020-04-11,Ross,Ohio,39141,13,0 +2020-04-12,Ross,Ohio,39141,17,0 +2020-04-13,Ross,Ohio,39141,19,0 +2020-04-14,Ross,Ohio,39141,20,0 +2020-04-15,Ross,Ohio,39141,21,0 +2020-04-16,Ross,Ohio,39141,26,0 +2020-04-17,Ross,Ohio,39141,28,0 +2020-04-18,Ross,Ohio,39141,33,0 +2020-04-19,Ross,Ohio,39141,36,0 +2020-04-20,Ross,Ohio,39141,29,0 +2020-04-21,Ross,Ohio,39141,30,0 +2020-04-22,Ross,Ohio,39141,30,1 +2020-04-23,Ross,Ohio,39141,30,1 +2020-04-24,Ross,Ohio,39141,35,1 +2020-04-25,Ross,Ohio,39141,35,1 +2020-04-26,Ross,Ohio,39141,35,1 +2020-04-27,Ross,Ohio,39141,36,1 +2020-04-28,Ross,Ohio,39141,36,1 +2020-04-29,Ross,Ohio,39141,37,1 +2020-04-30,Ross,Ohio,39141,39,1 +2020-05-01,Ross,Ohio,39141,39,1 +2020-05-02,Ross,Ohio,39141,40,1 +2020-05-03,Ross,Ohio,39141,41,1 +2020-05-04,Ross,Ohio,39141,41,1 +2020-05-05,Ross,Ohio,39141,42,2 +2020-05-06,Ross,Ohio,39141,42,1 +2020-05-07,Ross,Ohio,39141,44,1 +2020-05-08,Ross,Ohio,39141,49,1 +2020-05-09,Ross,Ohio,39141,48,1 +2020-05-10,Ross,Ohio,39141,51,1 +2020-05-11,Ross,Ohio,39141,53,1 +2020-05-12,Ross,Ohio,39141,55,1 +2020-05-13,Ross,Ohio,39141,55,1 +2020-05-14,Ross,Ohio,39141,56,1 +2020-05-15,Ross,Ohio,39141,58,1 +2020-05-16,Ross,Ohio,39141,58,1 +2020-05-17,Ross,Ohio,39141,58,1 +2020-05-18,Ross,Ohio,39141,58,1 +2020-05-19,Ross,Ohio,39141,59,1 +2020-05-20,Ross,Ohio,39141,60,1 +2020-05-21,Ross,Ohio,39141,60,1 +2020-05-22,Ross,Ohio,39141,61,1 +2020-05-23,Ross,Ohio,39141,62,2 +2020-05-24,Ross,Ohio,39141,63,2 +2020-05-25,Ross,Ohio,39141,66,2 +2020-05-26,Ross,Ohio,39141,66,2 +2020-05-27,Ross,Ohio,39141,67,2 +2020-05-28,Ross,Ohio,39141,67,2 +2020-05-29,Ross,Ohio,39141,68,2 +2020-05-30,Ross,Ohio,39141,71,2 +2020-05-31,Ross,Ohio,39141,71,2 +2020-06-01,Ross,Ohio,39141,72,2 +2020-06-02,Ross,Ohio,39141,73,2 +2020-06-03,Ross,Ohio,39141,73,2 +2020-06-04,Ross,Ohio,39141,73,2 +2020-06-05,Ross,Ohio,39141,73,2 +2020-06-06,Ross,Ohio,39141,73,2 +2020-06-07,Ross,Ohio,39141,74,2 +2020-06-08,Ross,Ohio,39141,74,2 +2020-06-09,Ross,Ohio,39141,75,2 +2020-06-10,Ross,Ohio,39141,77,2 +2020-06-11,Ross,Ohio,39141,78,2 +2020-06-12,Ross,Ohio,39141,79,2 +2020-06-13,Ross,Ohio,39141,79,2 +2020-06-14,Ross,Ohio,39141,79,2 +2020-06-15,Ross,Ohio,39141,79,2 +2020-06-16,Ross,Ohio,39141,81,2 +2020-06-17,Ross,Ohio,39141,81,2 +2020-06-18,Ross,Ohio,39141,82,2 +2020-06-19,Ross,Ohio,39141,82,2 +2020-06-20,Ross,Ohio,39141,84,2 +2020-06-21,Ross,Ohio,39141,84,2 +2020-06-22,Ross,Ohio,39141,85,2 +2020-06-23,Ross,Ohio,39141,86,2 +2020-06-24,Ross,Ohio,39141,87,2 +2020-06-25,Ross,Ohio,39141,89,2 +2020-06-26,Ross,Ohio,39141,96,2 +2020-06-27,Ross,Ohio,39141,97,2 +2020-06-28,Ross,Ohio,39141,100,2 +2020-06-29,Ross,Ohio,39141,105,2 +2020-06-30,Ross,Ohio,39141,107,2 +2020-07-01,Ross,Ohio,39141,109,2 +2020-07-02,Ross,Ohio,39141,109,2 +2020-07-03,Ross,Ohio,39141,113,3 +2020-07-04,Ross,Ohio,39141,118,3 +2020-07-05,Ross,Ohio,39141,124,3 +2020-07-06,Ross,Ohio,39141,127,3 +2020-07-07,Ross,Ohio,39141,130,3 +2020-07-08,Ross,Ohio,39141,132,3 +2020-07-09,Ross,Ohio,39141,136,3 +2020-03-23,Sandusky,Ohio,39143,1,0 +2020-03-24,Sandusky,Ohio,39143,1,0 +2020-03-25,Sandusky,Ohio,39143,1,0 +2020-03-26,Sandusky,Ohio,39143,1,0 +2020-03-27,Sandusky,Ohio,39143,1,0 +2020-03-28,Sandusky,Ohio,39143,2,0 +2020-03-29,Sandusky,Ohio,39143,3,0 +2020-03-30,Sandusky,Ohio,39143,3,0 +2020-03-31,Sandusky,Ohio,39143,4,0 +2020-04-01,Sandusky,Ohio,39143,5,0 +2020-04-02,Sandusky,Ohio,39143,5,0 +2020-04-03,Sandusky,Ohio,39143,5,0 +2020-04-04,Sandusky,Ohio,39143,5,0 +2020-04-05,Sandusky,Ohio,39143,5,0 +2020-04-06,Sandusky,Ohio,39143,5,0 +2020-04-07,Sandusky,Ohio,39143,5,0 +2020-04-08,Sandusky,Ohio,39143,5,1 +2020-04-09,Sandusky,Ohio,39143,7,1 +2020-04-10,Sandusky,Ohio,39143,7,1 +2020-04-11,Sandusky,Ohio,39143,10,2 +2020-04-12,Sandusky,Ohio,39143,11,2 +2020-04-13,Sandusky,Ohio,39143,12,2 +2020-04-14,Sandusky,Ohio,39143,13,2 +2020-04-15,Sandusky,Ohio,39143,13,2 +2020-04-16,Sandusky,Ohio,39143,14,2 +2020-04-17,Sandusky,Ohio,39143,16,2 +2020-04-18,Sandusky,Ohio,39143,17,2 +2020-04-19,Sandusky,Ohio,39143,18,2 +2020-04-20,Sandusky,Ohio,39143,17,2 +2020-04-21,Sandusky,Ohio,39143,17,2 +2020-04-22,Sandusky,Ohio,39143,17,2 +2020-04-23,Sandusky,Ohio,39143,20,2 +2020-04-24,Sandusky,Ohio,39143,20,2 +2020-04-25,Sandusky,Ohio,39143,20,2 +2020-04-26,Sandusky,Ohio,39143,20,2 +2020-04-27,Sandusky,Ohio,39143,19,2 +2020-04-28,Sandusky,Ohio,39143,19,4 +2020-04-29,Sandusky,Ohio,39143,23,4 +2020-04-30,Sandusky,Ohio,39143,27,5 +2020-05-01,Sandusky,Ohio,39143,28,6 +2020-05-02,Sandusky,Ohio,39143,32,6 +2020-05-03,Sandusky,Ohio,39143,34,6 +2020-05-04,Sandusky,Ohio,39143,36,7 +2020-05-05,Sandusky,Ohio,39143,41,7 +2020-05-06,Sandusky,Ohio,39143,40,7 +2020-05-07,Sandusky,Ohio,39143,41,7 +2020-05-08,Sandusky,Ohio,39143,47,7 +2020-05-09,Sandusky,Ohio,39143,48,7 +2020-05-10,Sandusky,Ohio,39143,49,7 +2020-05-11,Sandusky,Ohio,39143,52,8 +2020-05-12,Sandusky,Ohio,39143,53,8 +2020-05-13,Sandusky,Ohio,39143,53,8 +2020-05-14,Sandusky,Ohio,39143,54,8 +2020-05-15,Sandusky,Ohio,39143,56,8 +2020-05-16,Sandusky,Ohio,39143,56,8 +2020-05-17,Sandusky,Ohio,39143,56,8 +2020-05-18,Sandusky,Ohio,39143,57,9 +2020-05-19,Sandusky,Ohio,39143,62,9 +2020-05-20,Sandusky,Ohio,39143,63,9 +2020-05-21,Sandusky,Ohio,39143,63,9 +2020-05-22,Sandusky,Ohio,39143,63,9 +2020-05-23,Sandusky,Ohio,39143,65,10 +2020-05-24,Sandusky,Ohio,39143,65,10 +2020-05-25,Sandusky,Ohio,39143,68,10 +2020-05-26,Sandusky,Ohio,39143,70,10 +2020-05-27,Sandusky,Ohio,39143,70,11 +2020-05-28,Sandusky,Ohio,39143,72,11 +2020-05-29,Sandusky,Ohio,39143,73,11 +2020-05-30,Sandusky,Ohio,39143,73,11 +2020-05-31,Sandusky,Ohio,39143,79,11 +2020-06-01,Sandusky,Ohio,39143,81,11 +2020-06-02,Sandusky,Ohio,39143,82,11 +2020-06-03,Sandusky,Ohio,39143,85,12 +2020-06-04,Sandusky,Ohio,39143,85,12 +2020-06-05,Sandusky,Ohio,39143,91,12 +2020-06-06,Sandusky,Ohio,39143,94,12 +2020-06-07,Sandusky,Ohio,39143,95,12 +2020-06-08,Sandusky,Ohio,39143,97,12 +2020-06-09,Sandusky,Ohio,39143,98,13 +2020-06-10,Sandusky,Ohio,39143,102,13 +2020-06-11,Sandusky,Ohio,39143,102,13 +2020-06-12,Sandusky,Ohio,39143,102,13 +2020-06-13,Sandusky,Ohio,39143,102,13 +2020-06-14,Sandusky,Ohio,39143,103,13 +2020-06-15,Sandusky,Ohio,39143,104,13 +2020-06-16,Sandusky,Ohio,39143,104,13 +2020-06-17,Sandusky,Ohio,39143,104,13 +2020-06-18,Sandusky,Ohio,39143,106,13 +2020-06-19,Sandusky,Ohio,39143,109,13 +2020-06-20,Sandusky,Ohio,39143,109,13 +2020-06-21,Sandusky,Ohio,39143,109,13 +2020-06-22,Sandusky,Ohio,39143,110,13 +2020-06-23,Sandusky,Ohio,39143,110,13 +2020-06-24,Sandusky,Ohio,39143,110,13 +2020-06-25,Sandusky,Ohio,39143,112,13 +2020-06-26,Sandusky,Ohio,39143,114,13 +2020-06-27,Sandusky,Ohio,39143,114,13 +2020-06-28,Sandusky,Ohio,39143,115,13 +2020-06-29,Sandusky,Ohio,39143,120,13 +2020-06-30,Sandusky,Ohio,39143,122,13 +2020-07-01,Sandusky,Ohio,39143,122,13 +2020-07-02,Sandusky,Ohio,39143,122,13 +2020-07-03,Sandusky,Ohio,39143,126,14 +2020-07-04,Sandusky,Ohio,39143,127,14 +2020-07-05,Sandusky,Ohio,39143,134,14 +2020-07-06,Sandusky,Ohio,39143,136,14 +2020-07-07,Sandusky,Ohio,39143,137,14 +2020-07-08,Sandusky,Ohio,39143,138,14 +2020-07-09,Sandusky,Ohio,39143,142,15 +2020-04-06,Scioto,Ohio,39145,1,0 +2020-04-07,Scioto,Ohio,39145,1,0 +2020-04-08,Scioto,Ohio,39145,1,0 +2020-04-09,Scioto,Ohio,39145,2,0 +2020-04-10,Scioto,Ohio,39145,3,0 +2020-04-11,Scioto,Ohio,39145,4,0 +2020-04-12,Scioto,Ohio,39145,4,0 +2020-04-13,Scioto,Ohio,39145,4,0 +2020-04-14,Scioto,Ohio,39145,4,0 +2020-04-15,Scioto,Ohio,39145,4,0 +2020-04-16,Scioto,Ohio,39145,5,0 +2020-04-17,Scioto,Ohio,39145,5,0 +2020-04-18,Scioto,Ohio,39145,7,0 +2020-04-19,Scioto,Ohio,39145,9,0 +2020-04-20,Scioto,Ohio,39145,6,0 +2020-04-21,Scioto,Ohio,39145,6,0 +2020-04-22,Scioto,Ohio,39145,6,0 +2020-04-23,Scioto,Ohio,39145,6,0 +2020-04-24,Scioto,Ohio,39145,6,0 +2020-04-25,Scioto,Ohio,39145,6,0 +2020-04-26,Scioto,Ohio,39145,6,0 +2020-04-27,Scioto,Ohio,39145,6,0 +2020-04-28,Scioto,Ohio,39145,6,0 +2020-04-29,Scioto,Ohio,39145,8,0 +2020-04-30,Scioto,Ohio,39145,10,0 +2020-05-01,Scioto,Ohio,39145,11,0 +2020-05-02,Scioto,Ohio,39145,11,0 +2020-05-03,Scioto,Ohio,39145,12,0 +2020-05-04,Scioto,Ohio,39145,12,0 +2020-05-05,Scioto,Ohio,39145,13,0 +2020-05-06,Scioto,Ohio,39145,13,0 +2020-05-07,Scioto,Ohio,39145,15,0 +2020-05-08,Scioto,Ohio,39145,15,0 +2020-05-09,Scioto,Ohio,39145,13,0 +2020-05-10,Scioto,Ohio,39145,13,0 +2020-05-11,Scioto,Ohio,39145,13,0 +2020-05-12,Scioto,Ohio,39145,13,0 +2020-05-13,Scioto,Ohio,39145,13,0 +2020-05-14,Scioto,Ohio,39145,13,0 +2020-05-15,Scioto,Ohio,39145,13,0 +2020-05-16,Scioto,Ohio,39145,14,0 +2020-05-17,Scioto,Ohio,39145,14,0 +2020-05-18,Scioto,Ohio,39145,14,0 +2020-05-19,Scioto,Ohio,39145,14,0 +2020-05-20,Scioto,Ohio,39145,14,0 +2020-05-21,Scioto,Ohio,39145,14,0 +2020-05-22,Scioto,Ohio,39145,14,0 +2020-05-23,Scioto,Ohio,39145,14,0 +2020-05-24,Scioto,Ohio,39145,15,0 +2020-05-25,Scioto,Ohio,39145,15,0 +2020-05-26,Scioto,Ohio,39145,15,0 +2020-05-27,Scioto,Ohio,39145,15,0 +2020-05-28,Scioto,Ohio,39145,15,0 +2020-05-29,Scioto,Ohio,39145,15,0 +2020-05-30,Scioto,Ohio,39145,15,0 +2020-05-31,Scioto,Ohio,39145,16,0 +2020-06-01,Scioto,Ohio,39145,18,0 +2020-06-02,Scioto,Ohio,39145,17,0 +2020-06-03,Scioto,Ohio,39145,17,0 +2020-06-04,Scioto,Ohio,39145,17,0 +2020-06-05,Scioto,Ohio,39145,18,0 +2020-06-06,Scioto,Ohio,39145,18,0 +2020-06-07,Scioto,Ohio,39145,18,0 +2020-06-08,Scioto,Ohio,39145,19,0 +2020-06-09,Scioto,Ohio,39145,19,0 +2020-06-10,Scioto,Ohio,39145,19,0 +2020-06-11,Scioto,Ohio,39145,19,0 +2020-06-12,Scioto,Ohio,39145,19,0 +2020-06-13,Scioto,Ohio,39145,21,0 +2020-06-14,Scioto,Ohio,39145,21,0 +2020-06-15,Scioto,Ohio,39145,21,0 +2020-06-16,Scioto,Ohio,39145,21,0 +2020-06-17,Scioto,Ohio,39145,21,0 +2020-06-18,Scioto,Ohio,39145,21,0 +2020-06-19,Scioto,Ohio,39145,21,0 +2020-06-20,Scioto,Ohio,39145,21,0 +2020-06-21,Scioto,Ohio,39145,21,0 +2020-06-22,Scioto,Ohio,39145,22,0 +2020-06-23,Scioto,Ohio,39145,27,0 +2020-06-24,Scioto,Ohio,39145,28,0 +2020-06-25,Scioto,Ohio,39145,28,0 +2020-06-26,Scioto,Ohio,39145,31,0 +2020-06-27,Scioto,Ohio,39145,33,0 +2020-06-28,Scioto,Ohio,39145,34,0 +2020-06-29,Scioto,Ohio,39145,34,0 +2020-06-30,Scioto,Ohio,39145,35,0 +2020-07-01,Scioto,Ohio,39145,36,0 +2020-07-02,Scioto,Ohio,39145,36,0 +2020-07-03,Scioto,Ohio,39145,38,0 +2020-07-04,Scioto,Ohio,39145,38,0 +2020-07-05,Scioto,Ohio,39145,38,0 +2020-07-06,Scioto,Ohio,39145,41,0 +2020-07-07,Scioto,Ohio,39145,45,0 +2020-07-08,Scioto,Ohio,39145,54,0 +2020-07-09,Scioto,Ohio,39145,56,0 +2020-03-25,Seneca,Ohio,39147,1,0 +2020-03-26,Seneca,Ohio,39147,1,0 +2020-03-27,Seneca,Ohio,39147,2,0 +2020-03-28,Seneca,Ohio,39147,1,0 +2020-03-29,Seneca,Ohio,39147,2,0 +2020-03-30,Seneca,Ohio,39147,3,0 +2020-03-31,Seneca,Ohio,39147,3,1 +2020-04-01,Seneca,Ohio,39147,4,1 +2020-04-02,Seneca,Ohio,39147,4,1 +2020-04-03,Seneca,Ohio,39147,4,1 +2020-04-04,Seneca,Ohio,39147,5,1 +2020-04-05,Seneca,Ohio,39147,6,1 +2020-04-06,Seneca,Ohio,39147,6,1 +2020-04-07,Seneca,Ohio,39147,6,1 +2020-04-08,Seneca,Ohio,39147,6,1 +2020-04-09,Seneca,Ohio,39147,7,1 +2020-04-10,Seneca,Ohio,39147,8,1 +2020-04-11,Seneca,Ohio,39147,8,1 +2020-04-12,Seneca,Ohio,39147,9,1 +2020-04-13,Seneca,Ohio,39147,9,1 +2020-04-14,Seneca,Ohio,39147,10,1 +2020-04-15,Seneca,Ohio,39147,11,1 +2020-04-16,Seneca,Ohio,39147,11,1 +2020-04-17,Seneca,Ohio,39147,11,1 +2020-04-18,Seneca,Ohio,39147,11,1 +2020-04-19,Seneca,Ohio,39147,12,1 +2020-04-20,Seneca,Ohio,39147,13,1 +2020-04-21,Seneca,Ohio,39147,11,1 +2020-04-22,Seneca,Ohio,39147,11,1 +2020-04-23,Seneca,Ohio,39147,11,1 +2020-04-24,Seneca,Ohio,39147,12,1 +2020-04-25,Seneca,Ohio,39147,12,1 +2020-04-26,Seneca,Ohio,39147,13,1 +2020-04-27,Seneca,Ohio,39147,14,1 +2020-04-28,Seneca,Ohio,39147,14,1 +2020-04-29,Seneca,Ohio,39147,14,1 +2020-04-30,Seneca,Ohio,39147,14,1 +2020-05-01,Seneca,Ohio,39147,14,1 +2020-05-02,Seneca,Ohio,39147,14,1 +2020-05-03,Seneca,Ohio,39147,14,1 +2020-05-04,Seneca,Ohio,39147,14,1 +2020-05-05,Seneca,Ohio,39147,14,1 +2020-05-06,Seneca,Ohio,39147,14,1 +2020-05-07,Seneca,Ohio,39147,14,1 +2020-05-08,Seneca,Ohio,39147,14,1 +2020-05-09,Seneca,Ohio,39147,14,1 +2020-05-10,Seneca,Ohio,39147,14,1 +2020-05-11,Seneca,Ohio,39147,14,1 +2020-05-12,Seneca,Ohio,39147,14,1 +2020-05-13,Seneca,Ohio,39147,14,1 +2020-05-14,Seneca,Ohio,39147,15,1 +2020-05-15,Seneca,Ohio,39147,15,2 +2020-05-16,Seneca,Ohio,39147,15,2 +2020-05-17,Seneca,Ohio,39147,15,2 +2020-05-18,Seneca,Ohio,39147,15,2 +2020-05-19,Seneca,Ohio,39147,15,2 +2020-05-20,Seneca,Ohio,39147,16,2 +2020-05-21,Seneca,Ohio,39147,16,2 +2020-05-22,Seneca,Ohio,39147,16,2 +2020-05-23,Seneca,Ohio,39147,17,2 +2020-05-24,Seneca,Ohio,39147,18,2 +2020-05-25,Seneca,Ohio,39147,19,2 +2020-05-26,Seneca,Ohio,39147,19,2 +2020-05-27,Seneca,Ohio,39147,19,2 +2020-05-28,Seneca,Ohio,39147,20,2 +2020-05-29,Seneca,Ohio,39147,20,2 +2020-05-30,Seneca,Ohio,39147,20,2 +2020-05-31,Seneca,Ohio,39147,20,2 +2020-06-01,Seneca,Ohio,39147,20,2 +2020-06-02,Seneca,Ohio,39147,21,2 +2020-06-03,Seneca,Ohio,39147,24,2 +2020-06-04,Seneca,Ohio,39147,26,2 +2020-06-05,Seneca,Ohio,39147,26,2 +2020-06-06,Seneca,Ohio,39147,27,2 +2020-06-07,Seneca,Ohio,39147,27,2 +2020-06-08,Seneca,Ohio,39147,27,2 +2020-06-09,Seneca,Ohio,39147,28,2 +2020-06-10,Seneca,Ohio,39147,28,2 +2020-06-11,Seneca,Ohio,39147,29,2 +2020-06-12,Seneca,Ohio,39147,29,2 +2020-06-13,Seneca,Ohio,39147,29,2 +2020-06-14,Seneca,Ohio,39147,29,2 +2020-06-15,Seneca,Ohio,39147,29,2 +2020-06-16,Seneca,Ohio,39147,29,2 +2020-06-17,Seneca,Ohio,39147,30,2 +2020-06-18,Seneca,Ohio,39147,30,2 +2020-06-19,Seneca,Ohio,39147,30,2 +2020-06-20,Seneca,Ohio,39147,31,2 +2020-06-21,Seneca,Ohio,39147,31,2 +2020-06-22,Seneca,Ohio,39147,31,2 +2020-06-23,Seneca,Ohio,39147,32,2 +2020-06-24,Seneca,Ohio,39147,31,2 +2020-06-25,Seneca,Ohio,39147,31,2 +2020-06-26,Seneca,Ohio,39147,31,2 +2020-06-27,Seneca,Ohio,39147,31,2 +2020-06-28,Seneca,Ohio,39147,31,2 +2020-06-29,Seneca,Ohio,39147,32,2 +2020-06-30,Seneca,Ohio,39147,33,2 +2020-07-01,Seneca,Ohio,39147,33,2 +2020-07-02,Seneca,Ohio,39147,33,2 +2020-07-03,Seneca,Ohio,39147,33,2 +2020-07-04,Seneca,Ohio,39147,33,2 +2020-07-05,Seneca,Ohio,39147,33,2 +2020-07-06,Seneca,Ohio,39147,34,2 +2020-07-07,Seneca,Ohio,39147,34,2 +2020-07-08,Seneca,Ohio,39147,35,2 +2020-07-09,Seneca,Ohio,39147,36,2 +2020-03-27,Shelby,Ohio,39149,1,0 +2020-03-28,Shelby,Ohio,39149,3,0 +2020-03-29,Shelby,Ohio,39149,3,0 +2020-03-30,Shelby,Ohio,39149,4,0 +2020-03-31,Shelby,Ohio,39149,5,0 +2020-04-01,Shelby,Ohio,39149,6,0 +2020-04-02,Shelby,Ohio,39149,6,0 +2020-04-03,Shelby,Ohio,39149,7,0 +2020-04-04,Shelby,Ohio,39149,10,0 +2020-04-05,Shelby,Ohio,39149,12,0 +2020-04-06,Shelby,Ohio,39149,17,0 +2020-04-07,Shelby,Ohio,39149,18,0 +2020-04-08,Shelby,Ohio,39149,19,0 +2020-04-09,Shelby,Ohio,39149,21,0 +2020-04-10,Shelby,Ohio,39149,24,0 +2020-04-11,Shelby,Ohio,39149,25,0 +2020-04-12,Shelby,Ohio,39149,27,0 +2020-04-13,Shelby,Ohio,39149,27,0 +2020-04-14,Shelby,Ohio,39149,27,0 +2020-04-15,Shelby,Ohio,39149,27,0 +2020-04-16,Shelby,Ohio,39149,28,0 +2020-04-17,Shelby,Ohio,39149,28,0 +2020-04-18,Shelby,Ohio,39149,28,0 +2020-04-19,Shelby,Ohio,39149,29,0 +2020-04-20,Shelby,Ohio,39149,28,0 +2020-04-21,Shelby,Ohio,39149,28,0 +2020-04-22,Shelby,Ohio,39149,30,0 +2020-04-23,Shelby,Ohio,39149,30,0 +2020-04-24,Shelby,Ohio,39149,30,0 +2020-04-25,Shelby,Ohio,39149,30,1 +2020-04-26,Shelby,Ohio,39149,30,1 +2020-04-27,Shelby,Ohio,39149,30,1 +2020-04-28,Shelby,Ohio,39149,30,1 +2020-04-29,Shelby,Ohio,39149,30,1 +2020-04-30,Shelby,Ohio,39149,30,1 +2020-05-01,Shelby,Ohio,39149,30,1 +2020-05-02,Shelby,Ohio,39149,30,1 +2020-05-03,Shelby,Ohio,39149,30,1 +2020-05-04,Shelby,Ohio,39149,30,1 +2020-05-05,Shelby,Ohio,39149,30,1 +2020-05-06,Shelby,Ohio,39149,30,1 +2020-05-07,Shelby,Ohio,39149,31,1 +2020-05-08,Shelby,Ohio,39149,31,1 +2020-05-09,Shelby,Ohio,39149,31,1 +2020-05-10,Shelby,Ohio,39149,31,1 +2020-05-11,Shelby,Ohio,39149,32,1 +2020-05-12,Shelby,Ohio,39149,33,1 +2020-05-13,Shelby,Ohio,39149,33,1 +2020-05-14,Shelby,Ohio,39149,34,1 +2020-05-15,Shelby,Ohio,39149,35,1 +2020-05-16,Shelby,Ohio,39149,34,1 +2020-05-17,Shelby,Ohio,39149,34,1 +2020-05-18,Shelby,Ohio,39149,34,1 +2020-05-19,Shelby,Ohio,39149,34,2 +2020-05-20,Shelby,Ohio,39149,35,2 +2020-05-21,Shelby,Ohio,39149,35,2 +2020-05-22,Shelby,Ohio,39149,36,2 +2020-05-23,Shelby,Ohio,39149,37,2 +2020-05-24,Shelby,Ohio,39149,40,2 +2020-05-25,Shelby,Ohio,39149,41,2 +2020-05-26,Shelby,Ohio,39149,40,2 +2020-05-27,Shelby,Ohio,39149,40,2 +2020-05-28,Shelby,Ohio,39149,40,3 +2020-05-29,Shelby,Ohio,39149,40,3 +2020-05-30,Shelby,Ohio,39149,41,3 +2020-05-31,Shelby,Ohio,39149,43,3 +2020-06-01,Shelby,Ohio,39149,43,3 +2020-06-02,Shelby,Ohio,39149,43,3 +2020-06-03,Shelby,Ohio,39149,46,3 +2020-06-04,Shelby,Ohio,39149,46,3 +2020-06-05,Shelby,Ohio,39149,47,3 +2020-06-06,Shelby,Ohio,39149,47,3 +2020-06-07,Shelby,Ohio,39149,49,3 +2020-06-08,Shelby,Ohio,39149,49,3 +2020-06-09,Shelby,Ohio,39149,49,3 +2020-06-10,Shelby,Ohio,39149,49,3 +2020-06-11,Shelby,Ohio,39149,49,3 +2020-06-12,Shelby,Ohio,39149,49,3 +2020-06-13,Shelby,Ohio,39149,49,3 +2020-06-14,Shelby,Ohio,39149,49,3 +2020-06-15,Shelby,Ohio,39149,49,3 +2020-06-16,Shelby,Ohio,39149,49,3 +2020-06-17,Shelby,Ohio,39149,50,3 +2020-06-18,Shelby,Ohio,39149,50,3 +2020-06-19,Shelby,Ohio,39149,51,3 +2020-06-20,Shelby,Ohio,39149,51,3 +2020-06-21,Shelby,Ohio,39149,51,3 +2020-06-22,Shelby,Ohio,39149,52,3 +2020-06-23,Shelby,Ohio,39149,52,4 +2020-06-24,Shelby,Ohio,39149,52,4 +2020-06-25,Shelby,Ohio,39149,55,4 +2020-06-26,Shelby,Ohio,39149,55,4 +2020-06-27,Shelby,Ohio,39149,55,4 +2020-06-28,Shelby,Ohio,39149,56,4 +2020-06-29,Shelby,Ohio,39149,58,4 +2020-06-30,Shelby,Ohio,39149,58,4 +2020-07-01,Shelby,Ohio,39149,59,4 +2020-07-02,Shelby,Ohio,39149,59,4 +2020-07-03,Shelby,Ohio,39149,64,4 +2020-07-04,Shelby,Ohio,39149,65,4 +2020-07-05,Shelby,Ohio,39149,68,4 +2020-07-06,Shelby,Ohio,39149,68,4 +2020-07-07,Shelby,Ohio,39149,69,4 +2020-07-08,Shelby,Ohio,39149,70,4 +2020-07-09,Shelby,Ohio,39149,72,4 +2020-03-11,Stark,Ohio,39151,1,0 +2020-03-12,Stark,Ohio,39151,1,0 +2020-03-13,Stark,Ohio,39151,1,0 +2020-03-14,Stark,Ohio,39151,2,0 +2020-03-15,Stark,Ohio,39151,3,0 +2020-03-16,Stark,Ohio,39151,3,0 +2020-03-17,Stark,Ohio,39151,3,0 +2020-03-18,Stark,Ohio,39151,3,0 +2020-03-19,Stark,Ohio,39151,5,0 +2020-03-20,Stark,Ohio,39151,6,0 +2020-03-21,Stark,Ohio,39151,8,0 +2020-03-22,Stark,Ohio,39151,10,0 +2020-03-23,Stark,Ohio,39151,13,1 +2020-03-24,Stark,Ohio,39151,13,1 +2020-03-25,Stark,Ohio,39151,13,2 +2020-03-26,Stark,Ohio,39151,16,2 +2020-03-27,Stark,Ohio,39151,22,2 +2020-03-28,Stark,Ohio,39151,25,2 +2020-03-29,Stark,Ohio,39151,29,2 +2020-03-30,Stark,Ohio,39151,44,2 +2020-03-31,Stark,Ohio,39151,45,3 +2020-04-01,Stark,Ohio,39151,52,3 +2020-04-02,Stark,Ohio,39151,67,3 +2020-04-03,Stark,Ohio,39151,79,4 +2020-04-04,Stark,Ohio,39151,92,5 +2020-04-05,Stark,Ohio,39151,95,5 +2020-04-06,Stark,Ohio,39151,109,7 +2020-04-07,Stark,Ohio,39151,110,7 +2020-04-08,Stark,Ohio,39151,114,7 +2020-04-09,Stark,Ohio,39151,120,8 +2020-04-10,Stark,Ohio,39151,125,11 +2020-04-11,Stark,Ohio,39151,133,11 +2020-04-12,Stark,Ohio,39151,154,11 +2020-04-13,Stark,Ohio,39151,167,12 +2020-04-14,Stark,Ohio,39151,171,17 +2020-04-15,Stark,Ohio,39151,176,17 +2020-04-16,Stark,Ohio,39151,204,21 +2020-04-17,Stark,Ohio,39151,210,22 +2020-04-18,Stark,Ohio,39151,221,23 +2020-04-19,Stark,Ohio,39151,224,24 +2020-04-20,Stark,Ohio,39151,237,25 +2020-04-21,Stark,Ohio,39151,251,28 +2020-04-22,Stark,Ohio,39151,266,28 +2020-04-23,Stark,Ohio,39151,290,30 +2020-04-24,Stark,Ohio,39151,294,34 +2020-04-25,Stark,Ohio,39151,303,34 +2020-04-26,Stark,Ohio,39151,310,34 +2020-04-27,Stark,Ohio,39151,312,35 +2020-04-28,Stark,Ohio,39151,324,36 +2020-04-29,Stark,Ohio,39151,333,39 +2020-04-30,Stark,Ohio,39151,347,50 +2020-05-01,Stark,Ohio,39151,363,51 +2020-05-02,Stark,Ohio,39151,379,52 +2020-05-03,Stark,Ohio,39151,398,53 +2020-05-04,Stark,Ohio,39151,405,53 +2020-05-05,Stark,Ohio,39151,414,57 +2020-05-06,Stark,Ohio,39151,427,59 +2020-05-07,Stark,Ohio,39151,450,60 +2020-05-08,Stark,Ohio,39151,464,62 +2020-05-09,Stark,Ohio,39151,479,67 +2020-05-10,Stark,Ohio,39151,500,67 +2020-05-11,Stark,Ohio,39151,511,67 +2020-05-12,Stark,Ohio,39151,515,68 +2020-05-13,Stark,Ohio,39151,526,68 +2020-05-14,Stark,Ohio,39151,538,69 +2020-05-15,Stark,Ohio,39151,548,70 +2020-05-16,Stark,Ohio,39151,553,74 +2020-05-17,Stark,Ohio,39151,558,74 +2020-05-18,Stark,Ohio,39151,595,77 +2020-05-19,Stark,Ohio,39151,610,79 +2020-05-20,Stark,Ohio,39151,620,79 +2020-05-21,Stark,Ohio,39151,642,79 +2020-05-22,Stark,Ohio,39151,655,80 +2020-05-23,Stark,Ohio,39151,670,89 +2020-05-24,Stark,Ohio,39151,682,89 +2020-05-25,Stark,Ohio,39151,685,89 +2020-05-26,Stark,Ohio,39151,697,90 +2020-05-27,Stark,Ohio,39151,700,91 +2020-05-28,Stark,Ohio,39151,705,91 +2020-05-29,Stark,Ohio,39151,716,91 +2020-05-30,Stark,Ohio,39151,723,91 +2020-05-31,Stark,Ohio,39151,727,91 +2020-06-01,Stark,Ohio,39151,736,92 +2020-06-02,Stark,Ohio,39151,743,98 +2020-06-03,Stark,Ohio,39151,752,99 +2020-06-04,Stark,Ohio,39151,782,101 +2020-06-05,Stark,Ohio,39151,803,102 +2020-06-06,Stark,Ohio,39151,813,102 +2020-06-07,Stark,Ohio,39151,817,102 +2020-06-08,Stark,Ohio,39151,821,102 +2020-06-09,Stark,Ohio,39151,827,103 +2020-06-10,Stark,Ohio,39151,839,105 +2020-06-11,Stark,Ohio,39151,845,105 +2020-06-12,Stark,Ohio,39151,847,105 +2020-06-13,Stark,Ohio,39151,855,105 +2020-06-14,Stark,Ohio,39151,863,105 +2020-06-15,Stark,Ohio,39151,870,105 +2020-06-16,Stark,Ohio,39151,881,105 +2020-06-17,Stark,Ohio,39151,891,105 +2020-06-18,Stark,Ohio,39151,908,105 +2020-06-19,Stark,Ohio,39151,918,105 +2020-06-20,Stark,Ohio,39151,927,105 +2020-06-21,Stark,Ohio,39151,942,105 +2020-06-22,Stark,Ohio,39151,957,105 +2020-06-23,Stark,Ohio,39151,960,106 +2020-06-24,Stark,Ohio,39151,963,107 +2020-06-25,Stark,Ohio,39151,977,107 +2020-06-26,Stark,Ohio,39151,990,111 +2020-06-27,Stark,Ohio,39151,1008,111 +2020-06-28,Stark,Ohio,39151,1016,111 +2020-06-29,Stark,Ohio,39151,1026,111 +2020-06-30,Stark,Ohio,39151,1042,112 +2020-07-01,Stark,Ohio,39151,1052,112 +2020-07-02,Stark,Ohio,39151,1052,112 +2020-07-03,Stark,Ohio,39151,1079,112 +2020-07-04,Stark,Ohio,39151,1091,112 +2020-07-05,Stark,Ohio,39151,1107,112 +2020-07-06,Stark,Ohio,39151,1123,112 +2020-07-07,Stark,Ohio,39151,1133,113 +2020-07-08,Stark,Ohio,39151,1156,113 +2020-07-09,Stark,Ohio,39151,1171,114 +2020-03-14,Summit,Ohio,39153,2,0 +2020-03-15,Summit,Ohio,39153,2,0 +2020-03-16,Summit,Ohio,39153,2,0 +2020-03-17,Summit,Ohio,39153,4,0 +2020-03-18,Summit,Ohio,39153,4,0 +2020-03-19,Summit,Ohio,39153,6,0 +2020-03-20,Summit,Ohio,39153,10,0 +2020-03-21,Summit,Ohio,39153,15,0 +2020-03-22,Summit,Ohio,39153,23,0 +2020-03-23,Summit,Ohio,39153,28,0 +2020-03-24,Summit,Ohio,39153,36,0 +2020-03-25,Summit,Ohio,39153,43,0 +2020-03-26,Summit,Ohio,39153,50,0 +2020-03-27,Summit,Ohio,39153,65,3 +2020-03-28,Summit,Ohio,39153,79,4 +2020-03-29,Summit,Ohio,39153,99,5 +2020-03-30,Summit,Ohio,39153,118,5 +2020-03-31,Summit,Ohio,39153,131,5 +2020-04-01,Summit,Ohio,39153,144,7 +2020-04-02,Summit,Ohio,39153,155,7 +2020-04-03,Summit,Ohio,39153,165,7 +2020-04-04,Summit,Ohio,39153,184,7 +2020-04-05,Summit,Ohio,39153,184,9 +2020-04-06,Summit,Ohio,39153,189,10 +2020-04-07,Summit,Ohio,39153,199,12 +2020-04-08,Summit,Ohio,39153,211,12 +2020-04-09,Summit,Ohio,39153,221,12 +2020-04-10,Summit,Ohio,39153,235,13 +2020-04-11,Summit,Ohio,39153,243,14 +2020-04-12,Summit,Ohio,39153,257,14 +2020-04-13,Summit,Ohio,39153,262,15 +2020-04-14,Summit,Ohio,39153,273,15 +2020-04-15,Summit,Ohio,39153,294,15 +2020-04-16,Summit,Ohio,39153,310,16 +2020-04-17,Summit,Ohio,39153,323,17 +2020-04-18,Summit,Ohio,39153,340,20 +2020-04-19,Summit,Ohio,39153,350,21 +2020-04-20,Summit,Ohio,39153,370,24 +2020-04-21,Summit,Ohio,39153,385,28 +2020-04-22,Summit,Ohio,39153,415,30 +2020-04-23,Summit,Ohio,39153,447,32 +2020-04-24,Summit,Ohio,39153,460,35 +2020-04-25,Summit,Ohio,39153,475,35 +2020-04-26,Summit,Ohio,39153,485,38 +2020-04-27,Summit,Ohio,39153,500,39 +2020-04-28,Summit,Ohio,39153,542,43 +2020-04-29,Summit,Ohio,39153,584,49 +2020-04-30,Summit,Ohio,39153,608,49 +2020-05-01,Summit,Ohio,39153,639,49 +2020-05-02,Summit,Ohio,39153,679,57 +2020-05-03,Summit,Ohio,39153,701,58 +2020-05-04,Summit,Ohio,39153,716,58 +2020-05-05,Summit,Ohio,39153,751,66 +2020-05-06,Summit,Ohio,39153,787,70 +2020-05-07,Summit,Ohio,39153,831,73 +2020-05-08,Summit,Ohio,39153,867,74 +2020-05-09,Summit,Ohio,39153,880,78 +2020-05-10,Summit,Ohio,39153,892,78 +2020-05-11,Summit,Ohio,39153,915,78 +2020-05-12,Summit,Ohio,39153,930,86 +2020-05-13,Summit,Ohio,39153,946,88 +2020-05-14,Summit,Ohio,39153,976,101 +2020-05-15,Summit,Ohio,39153,989,104 +2020-05-16,Summit,Ohio,39153,995,110 +2020-05-17,Summit,Ohio,39153,1004,110 +2020-05-18,Summit,Ohio,39153,1028,112 +2020-05-19,Summit,Ohio,39153,1042,113 +2020-05-20,Summit,Ohio,39153,1077,131 +2020-05-21,Summit,Ohio,39153,1141,139 +2020-05-22,Summit,Ohio,39153,1183,148 +2020-05-23,Summit,Ohio,39153,1204,159 +2020-05-24,Summit,Ohio,39153,1220,159 +2020-05-25,Summit,Ohio,39153,1236,159 +2020-05-26,Summit,Ohio,39153,1277,159 +2020-05-27,Summit,Ohio,39153,1315,160 +2020-05-28,Summit,Ohio,39153,1335,172 +2020-05-29,Summit,Ohio,39153,1380,172 +2020-05-30,Summit,Ohio,39153,1390,172 +2020-05-31,Summit,Ohio,39153,1420,173 +2020-06-01,Summit,Ohio,39153,1453,176 +2020-06-02,Summit,Ohio,39153,1475,180 +2020-06-03,Summit,Ohio,39153,1487,181 +2020-06-04,Summit,Ohio,39153,1505,181 +2020-06-05,Summit,Ohio,39153,1529,181 +2020-06-06,Summit,Ohio,39153,1540,183 +2020-06-07,Summit,Ohio,39153,1548,183 +2020-06-08,Summit,Ohio,39153,1571,184 +2020-06-09,Summit,Ohio,39153,1592,185 +2020-06-10,Summit,Ohio,39153,1621,187 +2020-06-11,Summit,Ohio,39153,1623,188 +2020-06-12,Summit,Ohio,39153,1638,190 +2020-06-13,Summit,Ohio,39153,1655,192 +2020-06-14,Summit,Ohio,39153,1666,192 +2020-06-15,Summit,Ohio,39153,1675,194 +2020-06-16,Summit,Ohio,39153,1706,196 +2020-06-17,Summit,Ohio,39153,1712,195 +2020-06-18,Summit,Ohio,39153,1722,196 +2020-06-19,Summit,Ohio,39153,1735,199 +2020-06-20,Summit,Ohio,39153,1743,201 +2020-06-21,Summit,Ohio,39153,1756,201 +2020-06-22,Summit,Ohio,39153,1780,202 +2020-06-23,Summit,Ohio,39153,1796,202 +2020-06-24,Summit,Ohio,39153,1809,202 +2020-06-25,Summit,Ohio,39153,1839,202 +2020-06-26,Summit,Ohio,39153,1863,202 +2020-06-27,Summit,Ohio,39153,1884,202 +2020-06-28,Summit,Ohio,39153,1896,202 +2020-06-29,Summit,Ohio,39153,1920,204 +2020-06-30,Summit,Ohio,39153,1953,205 +2020-07-01,Summit,Ohio,39153,1969,206 +2020-07-02,Summit,Ohio,39153,1969,206 +2020-07-03,Summit,Ohio,39153,2079,206 +2020-07-04,Summit,Ohio,39153,2110,206 +2020-07-05,Summit,Ohio,39153,2131,206 +2020-07-06,Summit,Ohio,39153,2143,206 +2020-07-07,Summit,Ohio,39153,2175,207 +2020-07-08,Summit,Ohio,39153,2241,207 +2020-07-09,Summit,Ohio,39153,2269,209 +2020-03-12,Trumbull,Ohio,39155,1,0 +2020-03-13,Trumbull,Ohio,39155,1,0 +2020-03-14,Trumbull,Ohio,39155,2,0 +2020-03-15,Trumbull,Ohio,39155,2,0 +2020-03-16,Trumbull,Ohio,39155,2,0 +2020-03-17,Trumbull,Ohio,39155,2,0 +2020-03-18,Trumbull,Ohio,39155,2,0 +2020-03-19,Trumbull,Ohio,39155,2,0 +2020-03-20,Trumbull,Ohio,39155,3,0 +2020-03-21,Trumbull,Ohio,39155,3,0 +2020-03-22,Trumbull,Ohio,39155,3,0 +2020-03-23,Trumbull,Ohio,39155,3,0 +2020-03-24,Trumbull,Ohio,39155,4,0 +2020-03-25,Trumbull,Ohio,39155,9,0 +2020-03-26,Trumbull,Ohio,39155,12,1 +2020-03-27,Trumbull,Ohio,39155,17,1 +2020-03-28,Trumbull,Ohio,39155,27,2 +2020-03-29,Trumbull,Ohio,39155,36,2 +2020-03-30,Trumbull,Ohio,39155,42,2 +2020-03-31,Trumbull,Ohio,39155,50,2 +2020-04-01,Trumbull,Ohio,39155,58,3 +2020-04-02,Trumbull,Ohio,39155,63,6 +2020-04-03,Trumbull,Ohio,39155,72,7 +2020-04-04,Trumbull,Ohio,39155,90,6 +2020-04-05,Trumbull,Ohio,39155,89,7 +2020-04-06,Trumbull,Ohio,39155,102,8 +2020-04-07,Trumbull,Ohio,39155,110,8 +2020-04-08,Trumbull,Ohio,39155,126,8 +2020-04-09,Trumbull,Ohio,39155,132,8 +2020-04-10,Trumbull,Ohio,39155,149,8 +2020-04-11,Trumbull,Ohio,39155,155,8 +2020-04-12,Trumbull,Ohio,39155,168,8 +2020-04-13,Trumbull,Ohio,39155,174,10 +2020-04-14,Trumbull,Ohio,39155,187,13 +2020-04-15,Trumbull,Ohio,39155,199,13 +2020-04-16,Trumbull,Ohio,39155,203,14 +2020-04-17,Trumbull,Ohio,39155,213,15 +2020-04-18,Trumbull,Ohio,39155,231,16 +2020-04-19,Trumbull,Ohio,39155,237,19 +2020-04-20,Trumbull,Ohio,39155,249,20 +2020-04-21,Trumbull,Ohio,39155,257,21 +2020-04-22,Trumbull,Ohio,39155,261,21 +2020-04-23,Trumbull,Ohio,39155,272,22 +2020-04-24,Trumbull,Ohio,39155,278,23 +2020-04-25,Trumbull,Ohio,39155,287,23 +2020-04-26,Trumbull,Ohio,39155,293,24 +2020-04-27,Trumbull,Ohio,39155,295,27 +2020-04-28,Trumbull,Ohio,39155,299,27 +2020-04-29,Trumbull,Ohio,39155,305,30 +2020-04-30,Trumbull,Ohio,39155,308,31 +2020-05-01,Trumbull,Ohio,39155,318,31 +2020-05-02,Trumbull,Ohio,39155,324,31 +2020-05-03,Trumbull,Ohio,39155,331,31 +2020-05-04,Trumbull,Ohio,39155,347,31 +2020-05-05,Trumbull,Ohio,39155,356,35 +2020-05-06,Trumbull,Ohio,39155,363,34 +2020-05-07,Trumbull,Ohio,39155,371,35 +2020-05-08,Trumbull,Ohio,39155,392,36 +2020-05-09,Trumbull,Ohio,39155,404,35 +2020-05-10,Trumbull,Ohio,39155,406,35 +2020-05-11,Trumbull,Ohio,39155,408,35 +2020-05-12,Trumbull,Ohio,39155,413,36 +2020-05-13,Trumbull,Ohio,39155,420,36 +2020-05-14,Trumbull,Ohio,39155,432,36 +2020-05-15,Trumbull,Ohio,39155,440,38 +2020-05-16,Trumbull,Ohio,39155,447,38 +2020-05-17,Trumbull,Ohio,39155,450,38 +2020-05-18,Trumbull,Ohio,39155,461,39 +2020-05-19,Trumbull,Ohio,39155,469,39 +2020-05-20,Trumbull,Ohio,39155,478,39 +2020-05-21,Trumbull,Ohio,39155,499,40 +2020-05-22,Trumbull,Ohio,39155,507,40 +2020-05-23,Trumbull,Ohio,39155,514,42 +2020-05-24,Trumbull,Ohio,39155,525,42 +2020-05-25,Trumbull,Ohio,39155,529,42 +2020-05-26,Trumbull,Ohio,39155,540,45 +2020-05-27,Trumbull,Ohio,39155,544,47 +2020-05-28,Trumbull,Ohio,39155,551,47 +2020-05-29,Trumbull,Ohio,39155,562,48 +2020-05-30,Trumbull,Ohio,39155,569,48 +2020-05-31,Trumbull,Ohio,39155,573,48 +2020-06-01,Trumbull,Ohio,39155,582,50 +2020-06-02,Trumbull,Ohio,39155,584,50 +2020-06-03,Trumbull,Ohio,39155,584,51 +2020-06-04,Trumbull,Ohio,39155,594,51 +2020-06-05,Trumbull,Ohio,39155,600,52 +2020-06-06,Trumbull,Ohio,39155,607,53 +2020-06-07,Trumbull,Ohio,39155,612,53 +2020-06-08,Trumbull,Ohio,39155,616,53 +2020-06-09,Trumbull,Ohio,39155,618,53 +2020-06-10,Trumbull,Ohio,39155,620,53 +2020-06-11,Trumbull,Ohio,39155,625,53 +2020-06-12,Trumbull,Ohio,39155,642,53 +2020-06-13,Trumbull,Ohio,39155,652,54 +2020-06-14,Trumbull,Ohio,39155,656,54 +2020-06-15,Trumbull,Ohio,39155,658,54 +2020-06-16,Trumbull,Ohio,39155,665,54 +2020-06-17,Trumbull,Ohio,39155,675,54 +2020-06-18,Trumbull,Ohio,39155,682,54 +2020-06-19,Trumbull,Ohio,39155,693,55 +2020-06-20,Trumbull,Ohio,39155,698,55 +2020-06-21,Trumbull,Ohio,39155,711,55 +2020-06-22,Trumbull,Ohio,39155,726,55 +2020-06-23,Trumbull,Ohio,39155,742,56 +2020-06-24,Trumbull,Ohio,39155,756,56 +2020-06-25,Trumbull,Ohio,39155,771,57 +2020-06-26,Trumbull,Ohio,39155,788,57 +2020-06-27,Trumbull,Ohio,39155,800,58 +2020-06-28,Trumbull,Ohio,39155,809,58 +2020-06-29,Trumbull,Ohio,39155,824,61 +2020-06-30,Trumbull,Ohio,39155,834,62 +2020-07-01,Trumbull,Ohio,39155,863,62 +2020-07-02,Trumbull,Ohio,39155,863,62 +2020-07-03,Trumbull,Ohio,39155,916,65 +2020-07-04,Trumbull,Ohio,39155,925,65 +2020-07-05,Trumbull,Ohio,39155,939,65 +2020-07-06,Trumbull,Ohio,39155,967,70 +2020-07-07,Trumbull,Ohio,39155,974,73 +2020-07-08,Trumbull,Ohio,39155,997,74 +2020-07-09,Trumbull,Ohio,39155,1014,74 +2020-03-14,Tuscarawas,Ohio,39157,1,0 +2020-03-15,Tuscarawas,Ohio,39157,1,0 +2020-03-16,Tuscarawas,Ohio,39157,1,0 +2020-03-17,Tuscarawas,Ohio,39157,1,0 +2020-03-18,Tuscarawas,Ohio,39157,1,0 +2020-03-19,Tuscarawas,Ohio,39157,1,0 +2020-03-20,Tuscarawas,Ohio,39157,1,0 +2020-03-21,Tuscarawas,Ohio,39157,1,0 +2020-03-22,Tuscarawas,Ohio,39157,2,0 +2020-03-23,Tuscarawas,Ohio,39157,2,0 +2020-03-24,Tuscarawas,Ohio,39157,3,0 +2020-03-25,Tuscarawas,Ohio,39157,3,0 +2020-03-26,Tuscarawas,Ohio,39157,3,0 +2020-03-27,Tuscarawas,Ohio,39157,3,0 +2020-03-28,Tuscarawas,Ohio,39157,5,0 +2020-03-29,Tuscarawas,Ohio,39157,5,0 +2020-03-30,Tuscarawas,Ohio,39157,7,0 +2020-03-31,Tuscarawas,Ohio,39157,9,0 +2020-04-01,Tuscarawas,Ohio,39157,14,0 +2020-04-02,Tuscarawas,Ohio,39157,16,0 +2020-04-03,Tuscarawas,Ohio,39157,17,0 +2020-04-04,Tuscarawas,Ohio,39157,19,0 +2020-04-05,Tuscarawas,Ohio,39157,20,0 +2020-04-06,Tuscarawas,Ohio,39157,23,0 +2020-04-07,Tuscarawas,Ohio,39157,23,0 +2020-04-08,Tuscarawas,Ohio,39157,26,0 +2020-04-09,Tuscarawas,Ohio,39157,26,0 +2020-04-10,Tuscarawas,Ohio,39157,26,0 +2020-04-11,Tuscarawas,Ohio,39157,26,0 +2020-04-12,Tuscarawas,Ohio,39157,27,0 +2020-04-13,Tuscarawas,Ohio,39157,28,0 +2020-04-14,Tuscarawas,Ohio,39157,28,0 +2020-04-15,Tuscarawas,Ohio,39157,28,0 +2020-04-16,Tuscarawas,Ohio,39157,29,0 +2020-04-17,Tuscarawas,Ohio,39157,31,0 +2020-04-18,Tuscarawas,Ohio,39157,31,0 +2020-04-19,Tuscarawas,Ohio,39157,31,0 +2020-04-20,Tuscarawas,Ohio,39157,32,0 +2020-04-21,Tuscarawas,Ohio,39157,34,0 +2020-04-22,Tuscarawas,Ohio,39157,38,0 +2020-04-23,Tuscarawas,Ohio,39157,42,0 +2020-04-24,Tuscarawas,Ohio,39157,42,0 +2020-04-25,Tuscarawas,Ohio,39157,48,0 +2020-04-26,Tuscarawas,Ohio,39157,50,0 +2020-04-27,Tuscarawas,Ohio,39157,57,0 +2020-04-28,Tuscarawas,Ohio,39157,59,0 +2020-04-29,Tuscarawas,Ohio,39157,60,0 +2020-04-30,Tuscarawas,Ohio,39157,74,0 +2020-05-01,Tuscarawas,Ohio,39157,94,0 +2020-05-02,Tuscarawas,Ohio,39157,109,0 +2020-05-03,Tuscarawas,Ohio,39157,118,0 +2020-05-04,Tuscarawas,Ohio,39157,126,0 +2020-05-05,Tuscarawas,Ohio,39157,133,0 +2020-05-06,Tuscarawas,Ohio,39157,144,1 +2020-05-07,Tuscarawas,Ohio,39157,153,1 +2020-05-08,Tuscarawas,Ohio,39157,168,1 +2020-05-09,Tuscarawas,Ohio,39157,196,1 +2020-05-10,Tuscarawas,Ohio,39157,211,1 +2020-05-11,Tuscarawas,Ohio,39157,216,1 +2020-05-12,Tuscarawas,Ohio,39157,223,1 +2020-05-13,Tuscarawas,Ohio,39157,229,1 +2020-05-14,Tuscarawas,Ohio,39157,235,1 +2020-05-15,Tuscarawas,Ohio,39157,246,1 +2020-05-16,Tuscarawas,Ohio,39157,258,1 +2020-05-17,Tuscarawas,Ohio,39157,264,1 +2020-05-18,Tuscarawas,Ohio,39157,269,1 +2020-05-19,Tuscarawas,Ohio,39157,272,1 +2020-05-20,Tuscarawas,Ohio,39157,281,1 +2020-05-21,Tuscarawas,Ohio,39157,293,2 +2020-05-22,Tuscarawas,Ohio,39157,301,2 +2020-05-23,Tuscarawas,Ohio,39157,306,2 +2020-05-24,Tuscarawas,Ohio,39157,312,2 +2020-05-25,Tuscarawas,Ohio,39157,318,2 +2020-05-26,Tuscarawas,Ohio,39157,321,2 +2020-05-27,Tuscarawas,Ohio,39157,326,4 +2020-05-28,Tuscarawas,Ohio,39157,337,3 +2020-05-29,Tuscarawas,Ohio,39157,339,3 +2020-05-30,Tuscarawas,Ohio,39157,342,3 +2020-05-31,Tuscarawas,Ohio,39157,343,4 +2020-06-01,Tuscarawas,Ohio,39157,349,3 +2020-06-02,Tuscarawas,Ohio,39157,352,4 +2020-06-03,Tuscarawas,Ohio,39157,360,4 +2020-06-04,Tuscarawas,Ohio,39157,367,4 +2020-06-05,Tuscarawas,Ohio,39157,371,4 +2020-06-06,Tuscarawas,Ohio,39157,376,5 +2020-06-07,Tuscarawas,Ohio,39157,378,5 +2020-06-08,Tuscarawas,Ohio,39157,381,5 +2020-06-09,Tuscarawas,Ohio,39157,382,6 +2020-06-10,Tuscarawas,Ohio,39157,389,6 +2020-06-11,Tuscarawas,Ohio,39157,392,7 +2020-06-12,Tuscarawas,Ohio,39157,397,7 +2020-06-13,Tuscarawas,Ohio,39157,398,8 +2020-06-14,Tuscarawas,Ohio,39157,399,8 +2020-06-15,Tuscarawas,Ohio,39157,405,8 +2020-06-16,Tuscarawas,Ohio,39157,406,9 +2020-06-17,Tuscarawas,Ohio,39157,405,9 +2020-06-18,Tuscarawas,Ohio,39157,408,9 +2020-06-19,Tuscarawas,Ohio,39157,409,9 +2020-06-20,Tuscarawas,Ohio,39157,416,10 +2020-06-21,Tuscarawas,Ohio,39157,429,10 +2020-06-22,Tuscarawas,Ohio,39157,436,10 +2020-06-23,Tuscarawas,Ohio,39157,444,10 +2020-06-24,Tuscarawas,Ohio,39157,449,10 +2020-06-25,Tuscarawas,Ohio,39157,454,10 +2020-06-26,Tuscarawas,Ohio,39157,462,10 +2020-06-27,Tuscarawas,Ohio,39157,475,10 +2020-06-28,Tuscarawas,Ohio,39157,486,10 +2020-06-29,Tuscarawas,Ohio,39157,498,10 +2020-06-30,Tuscarawas,Ohio,39157,507,10 +2020-07-01,Tuscarawas,Ohio,39157,515,10 +2020-07-02,Tuscarawas,Ohio,39157,515,10 +2020-07-03,Tuscarawas,Ohio,39157,529,10 +2020-07-04,Tuscarawas,Ohio,39157,541,10 +2020-07-05,Tuscarawas,Ohio,39157,552,10 +2020-07-06,Tuscarawas,Ohio,39157,567,10 +2020-07-07,Tuscarawas,Ohio,39157,568,10 +2020-07-08,Tuscarawas,Ohio,39157,585,10 +2020-07-09,Tuscarawas,Ohio,39157,590,10 +2020-03-20,Union,Ohio,39159,1,0 +2020-03-21,Union,Ohio,39159,1,0 +2020-03-22,Union,Ohio,39159,1,0 +2020-03-23,Union,Ohio,39159,1,0 +2020-03-24,Union,Ohio,39159,2,0 +2020-03-25,Union,Ohio,39159,3,0 +2020-03-26,Union,Ohio,39159,3,0 +2020-03-27,Union,Ohio,39159,3,0 +2020-03-28,Union,Ohio,39159,3,0 +2020-03-29,Union,Ohio,39159,3,0 +2020-03-30,Union,Ohio,39159,4,0 +2020-03-31,Union,Ohio,39159,4,0 +2020-04-01,Union,Ohio,39159,4,0 +2020-04-02,Union,Ohio,39159,4,0 +2020-04-03,Union,Ohio,39159,5,0 +2020-04-04,Union,Ohio,39159,7,0 +2020-04-05,Union,Ohio,39159,8,0 +2020-04-06,Union,Ohio,39159,8,0 +2020-04-07,Union,Ohio,39159,8,0 +2020-04-08,Union,Ohio,39159,8,0 +2020-04-09,Union,Ohio,39159,9,0 +2020-04-10,Union,Ohio,39159,10,0 +2020-04-11,Union,Ohio,39159,10,0 +2020-04-12,Union,Ohio,39159,10,0 +2020-04-13,Union,Ohio,39159,11,0 +2020-04-14,Union,Ohio,39159,11,0 +2020-04-15,Union,Ohio,39159,11,0 +2020-04-16,Union,Ohio,39159,11,0 +2020-04-17,Union,Ohio,39159,12,0 +2020-04-18,Union,Ohio,39159,12,0 +2020-04-19,Union,Ohio,39159,12,0 +2020-04-20,Union,Ohio,39159,13,0 +2020-04-21,Union,Ohio,39159,16,0 +2020-04-22,Union,Ohio,39159,16,0 +2020-04-23,Union,Ohio,39159,16,0 +2020-04-24,Union,Ohio,39159,17,0 +2020-04-25,Union,Ohio,39159,18,0 +2020-04-26,Union,Ohio,39159,18,0 +2020-04-27,Union,Ohio,39159,18,0 +2020-04-28,Union,Ohio,39159,18,0 +2020-04-29,Union,Ohio,39159,19,0 +2020-04-30,Union,Ohio,39159,22,0 +2020-05-01,Union,Ohio,39159,22,0 +2020-05-02,Union,Ohio,39159,22,0 +2020-05-03,Union,Ohio,39159,24,0 +2020-05-04,Union,Ohio,39159,25,0 +2020-05-05,Union,Ohio,39159,26,0 +2020-05-06,Union,Ohio,39159,26,0 +2020-05-07,Union,Ohio,39159,28,0 +2020-05-08,Union,Ohio,39159,28,0 +2020-05-09,Union,Ohio,39159,28,0 +2020-05-10,Union,Ohio,39159,28,0 +2020-05-11,Union,Ohio,39159,28,0 +2020-05-12,Union,Ohio,39159,28,0 +2020-05-13,Union,Ohio,39159,28,0 +2020-05-14,Union,Ohio,39159,28,0 +2020-05-15,Union,Ohio,39159,30,0 +2020-05-16,Union,Ohio,39159,31,0 +2020-05-17,Union,Ohio,39159,35,0 +2020-05-18,Union,Ohio,39159,37,0 +2020-05-19,Union,Ohio,39159,36,0 +2020-05-20,Union,Ohio,39159,37,0 +2020-05-21,Union,Ohio,39159,40,0 +2020-05-22,Union,Ohio,39159,40,0 +2020-05-23,Union,Ohio,39159,42,0 +2020-05-24,Union,Ohio,39159,43,0 +2020-05-25,Union,Ohio,39159,45,0 +2020-05-26,Union,Ohio,39159,46,0 +2020-05-27,Union,Ohio,39159,46,0 +2020-05-28,Union,Ohio,39159,49,1 +2020-05-29,Union,Ohio,39159,51,1 +2020-05-30,Union,Ohio,39159,51,1 +2020-05-31,Union,Ohio,39159,52,1 +2020-06-01,Union,Ohio,39159,52,1 +2020-06-02,Union,Ohio,39159,52,1 +2020-06-03,Union,Ohio,39159,55,1 +2020-06-04,Union,Ohio,39159,55,1 +2020-06-05,Union,Ohio,39159,56,1 +2020-06-06,Union,Ohio,39159,58,1 +2020-06-07,Union,Ohio,39159,58,1 +2020-06-08,Union,Ohio,39159,58,1 +2020-06-09,Union,Ohio,39159,61,1 +2020-06-10,Union,Ohio,39159,61,1 +2020-06-11,Union,Ohio,39159,62,1 +2020-06-12,Union,Ohio,39159,62,1 +2020-06-13,Union,Ohio,39159,62,1 +2020-06-14,Union,Ohio,39159,62,1 +2020-06-15,Union,Ohio,39159,62,1 +2020-06-16,Union,Ohio,39159,62,1 +2020-06-17,Union,Ohio,39159,63,1 +2020-06-18,Union,Ohio,39159,67,1 +2020-06-19,Union,Ohio,39159,69,1 +2020-06-20,Union,Ohio,39159,71,1 +2020-06-21,Union,Ohio,39159,71,1 +2020-06-22,Union,Ohio,39159,71,1 +2020-06-23,Union,Ohio,39159,73,1 +2020-06-24,Union,Ohio,39159,73,1 +2020-06-25,Union,Ohio,39159,73,1 +2020-06-26,Union,Ohio,39159,74,1 +2020-06-27,Union,Ohio,39159,76,1 +2020-06-28,Union,Ohio,39159,77,1 +2020-06-29,Union,Ohio,39159,77,1 +2020-06-30,Union,Ohio,39159,77,1 +2020-07-01,Union,Ohio,39159,80,1 +2020-07-02,Union,Ohio,39159,80,1 +2020-07-03,Union,Ohio,39159,80,1 +2020-07-04,Union,Ohio,39159,82,1 +2020-07-05,Union,Ohio,39159,85,1 +2020-07-06,Union,Ohio,39159,86,1 +2020-07-07,Union,Ohio,39159,89,1 +2020-07-08,Union,Ohio,39159,92,1 +2020-07-09,Union,Ohio,39159,92,1 +2020-03-28,Van Wert,Ohio,39161,1,0 +2020-03-29,Van Wert,Ohio,39161,1,0 +2020-03-30,Van Wert,Ohio,39161,1,0 +2020-03-31,Van Wert,Ohio,39161,1,0 +2020-04-01,Van Wert,Ohio,39161,2,0 +2020-04-02,Van Wert,Ohio,39161,2,0 +2020-04-03,Van Wert,Ohio,39161,2,0 +2020-04-04,Van Wert,Ohio,39161,2,0 +2020-04-05,Van Wert,Ohio,39161,2,0 +2020-04-06,Van Wert,Ohio,39161,2,0 +2020-04-07,Van Wert,Ohio,39161,2,0 +2020-04-08,Van Wert,Ohio,39161,2,0 +2020-04-09,Van Wert,Ohio,39161,2,0 +2020-04-10,Van Wert,Ohio,39161,2,0 +2020-04-11,Van Wert,Ohio,39161,2,0 +2020-04-12,Van Wert,Ohio,39161,2,0 +2020-04-13,Van Wert,Ohio,39161,2,0 +2020-04-14,Van Wert,Ohio,39161,2,0 +2020-04-15,Van Wert,Ohio,39161,2,0 +2020-04-16,Van Wert,Ohio,39161,2,0 +2020-04-17,Van Wert,Ohio,39161,2,0 +2020-04-18,Van Wert,Ohio,39161,2,0 +2020-04-19,Van Wert,Ohio,39161,3,0 +2020-04-20,Van Wert,Ohio,39161,3,0 +2020-04-21,Van Wert,Ohio,39161,3,0 +2020-04-22,Van Wert,Ohio,39161,3,0 +2020-04-23,Van Wert,Ohio,39161,3,0 +2020-04-24,Van Wert,Ohio,39161,3,0 +2020-04-25,Van Wert,Ohio,39161,3,0 +2020-04-26,Van Wert,Ohio,39161,3,0 +2020-04-27,Van Wert,Ohio,39161,3,0 +2020-04-28,Van Wert,Ohio,39161,3,0 +2020-04-29,Van Wert,Ohio,39161,3,0 +2020-04-30,Van Wert,Ohio,39161,3,0 +2020-05-01,Van Wert,Ohio,39161,3,0 +2020-05-02,Van Wert,Ohio,39161,3,0 +2020-05-03,Van Wert,Ohio,39161,3,0 +2020-05-04,Van Wert,Ohio,39161,3,0 +2020-05-05,Van Wert,Ohio,39161,3,0 +2020-05-06,Van Wert,Ohio,39161,3,0 +2020-05-07,Van Wert,Ohio,39161,3,0 +2020-05-08,Van Wert,Ohio,39161,3,0 +2020-05-09,Van Wert,Ohio,39161,3,0 +2020-05-10,Van Wert,Ohio,39161,3,0 +2020-05-11,Van Wert,Ohio,39161,3,0 +2020-05-12,Van Wert,Ohio,39161,3,0 +2020-05-13,Van Wert,Ohio,39161,3,0 +2020-05-14,Van Wert,Ohio,39161,3,0 +2020-05-15,Van Wert,Ohio,39161,3,0 +2020-05-16,Van Wert,Ohio,39161,4,0 +2020-05-17,Van Wert,Ohio,39161,4,0 +2020-05-18,Van Wert,Ohio,39161,5,0 +2020-05-19,Van Wert,Ohio,39161,5,0 +2020-05-20,Van Wert,Ohio,39161,4,0 +2020-05-21,Van Wert,Ohio,39161,5,0 +2020-05-22,Van Wert,Ohio,39161,5,0 +2020-05-23,Van Wert,Ohio,39161,5,0 +2020-05-24,Van Wert,Ohio,39161,5,0 +2020-05-25,Van Wert,Ohio,39161,5,0 +2020-05-26,Van Wert,Ohio,39161,6,0 +2020-05-27,Van Wert,Ohio,39161,6,0 +2020-05-28,Van Wert,Ohio,39161,6,0 +2020-05-29,Van Wert,Ohio,39161,6,0 +2020-05-30,Van Wert,Ohio,39161,6,0 +2020-05-31,Van Wert,Ohio,39161,6,0 +2020-06-01,Van Wert,Ohio,39161,6,0 +2020-06-02,Van Wert,Ohio,39161,7,0 +2020-06-03,Van Wert,Ohio,39161,7,0 +2020-06-04,Van Wert,Ohio,39161,7,0 +2020-06-05,Van Wert,Ohio,39161,7,0 +2020-06-06,Van Wert,Ohio,39161,8,0 +2020-06-07,Van Wert,Ohio,39161,8,0 +2020-06-08,Van Wert,Ohio,39161,8,0 +2020-06-09,Van Wert,Ohio,39161,8,0 +2020-06-10,Van Wert,Ohio,39161,8,0 +2020-06-11,Van Wert,Ohio,39161,9,0 +2020-06-12,Van Wert,Ohio,39161,10,0 +2020-06-13,Van Wert,Ohio,39161,10,0 +2020-06-14,Van Wert,Ohio,39161,13,0 +2020-06-15,Van Wert,Ohio,39161,14,0 +2020-06-16,Van Wert,Ohio,39161,14,0 +2020-06-17,Van Wert,Ohio,39161,14,0 +2020-06-18,Van Wert,Ohio,39161,14,0 +2020-06-19,Van Wert,Ohio,39161,15,0 +2020-06-20,Van Wert,Ohio,39161,16,0 +2020-06-21,Van Wert,Ohio,39161,16,0 +2020-06-22,Van Wert,Ohio,39161,16,0 +2020-06-23,Van Wert,Ohio,39161,18,0 +2020-06-24,Van Wert,Ohio,39161,19,0 +2020-06-25,Van Wert,Ohio,39161,20,0 +2020-06-26,Van Wert,Ohio,39161,21,0 +2020-06-27,Van Wert,Ohio,39161,21,0 +2020-06-28,Van Wert,Ohio,39161,21,0 +2020-06-29,Van Wert,Ohio,39161,23,0 +2020-06-30,Van Wert,Ohio,39161,24,0 +2020-07-01,Van Wert,Ohio,39161,27,0 +2020-07-02,Van Wert,Ohio,39161,27,0 +2020-07-03,Van Wert,Ohio,39161,32,0 +2020-07-04,Van Wert,Ohio,39161,34,0 +2020-07-05,Van Wert,Ohio,39161,35,0 +2020-07-06,Van Wert,Ohio,39161,35,0 +2020-07-07,Van Wert,Ohio,39161,38,0 +2020-07-08,Van Wert,Ohio,39161,42,0 +2020-07-09,Van Wert,Ohio,39161,43,0 +2020-04-28,Vinton,Ohio,39163,3,0 +2020-04-29,Vinton,Ohio,39163,5,0 +2020-04-30,Vinton,Ohio,39163,6,0 +2020-05-01,Vinton,Ohio,39163,6,0 +2020-05-02,Vinton,Ohio,39163,6,0 +2020-05-03,Vinton,Ohio,39163,6,0 +2020-05-04,Vinton,Ohio,39163,6,0 +2020-05-05,Vinton,Ohio,39163,8,0 +2020-05-06,Vinton,Ohio,39163,8,0 +2020-05-07,Vinton,Ohio,39163,9,0 +2020-05-08,Vinton,Ohio,39163,10,0 +2020-05-09,Vinton,Ohio,39163,11,0 +2020-05-10,Vinton,Ohio,39163,11,0 +2020-05-11,Vinton,Ohio,39163,12,0 +2020-05-12,Vinton,Ohio,39163,15,0 +2020-05-13,Vinton,Ohio,39163,15,0 +2020-05-14,Vinton,Ohio,39163,15,0 +2020-05-15,Vinton,Ohio,39163,16,0 +2020-05-16,Vinton,Ohio,39163,16,0 +2020-05-17,Vinton,Ohio,39163,16,0 +2020-05-18,Vinton,Ohio,39163,16,0 +2020-05-19,Vinton,Ohio,39163,16,0 +2020-05-20,Vinton,Ohio,39163,16,0 +2020-05-21,Vinton,Ohio,39163,17,0 +2020-05-22,Vinton,Ohio,39163,18,0 +2020-05-23,Vinton,Ohio,39163,19,0 +2020-05-24,Vinton,Ohio,39163,19,0 +2020-05-25,Vinton,Ohio,39163,19,1 +2020-05-26,Vinton,Ohio,39163,19,1 +2020-05-27,Vinton,Ohio,39163,19,1 +2020-05-28,Vinton,Ohio,39163,19,2 +2020-05-29,Vinton,Ohio,39163,19,2 +2020-05-30,Vinton,Ohio,39163,21,2 +2020-05-31,Vinton,Ohio,39163,21,2 +2020-06-01,Vinton,Ohio,39163,21,2 +2020-06-02,Vinton,Ohio,39163,21,2 +2020-06-03,Vinton,Ohio,39163,21,2 +2020-06-04,Vinton,Ohio,39163,21,2 +2020-06-05,Vinton,Ohio,39163,21,2 +2020-06-06,Vinton,Ohio,39163,20,2 +2020-06-07,Vinton,Ohio,39163,20,2 +2020-06-08,Vinton,Ohio,39163,21,2 +2020-06-09,Vinton,Ohio,39163,21,2 +2020-06-10,Vinton,Ohio,39163,21,2 +2020-06-11,Vinton,Ohio,39163,21,2 +2020-06-12,Vinton,Ohio,39163,21,2 +2020-06-13,Vinton,Ohio,39163,22,2 +2020-06-14,Vinton,Ohio,39163,22,2 +2020-06-15,Vinton,Ohio,39163,22,2 +2020-06-16,Vinton,Ohio,39163,22,2 +2020-06-17,Vinton,Ohio,39163,22,2 +2020-06-18,Vinton,Ohio,39163,22,2 +2020-06-19,Vinton,Ohio,39163,22,2 +2020-06-20,Vinton,Ohio,39163,22,2 +2020-06-21,Vinton,Ohio,39163,22,2 +2020-06-22,Vinton,Ohio,39163,22,2 +2020-06-23,Vinton,Ohio,39163,22,2 +2020-06-24,Vinton,Ohio,39163,22,2 +2020-06-25,Vinton,Ohio,39163,22,2 +2020-06-26,Vinton,Ohio,39163,22,2 +2020-06-27,Vinton,Ohio,39163,22,2 +2020-06-28,Vinton,Ohio,39163,22,2 +2020-06-29,Vinton,Ohio,39163,22,2 +2020-06-30,Vinton,Ohio,39163,22,2 +2020-07-01,Vinton,Ohio,39163,22,2 +2020-07-02,Vinton,Ohio,39163,22,2 +2020-07-03,Vinton,Ohio,39163,22,2 +2020-07-04,Vinton,Ohio,39163,22,2 +2020-07-05,Vinton,Ohio,39163,22,2 +2020-07-06,Vinton,Ohio,39163,22,2 +2020-07-07,Vinton,Ohio,39163,22,2 +2020-07-08,Vinton,Ohio,39163,22,2 +2020-07-09,Vinton,Ohio,39163,22,2 +2020-03-20,Warren,Ohio,39165,2,0 +2020-03-21,Warren,Ohio,39165,2,0 +2020-03-22,Warren,Ohio,39165,3,0 +2020-03-23,Warren,Ohio,39165,5,0 +2020-03-24,Warren,Ohio,39165,7,0 +2020-03-25,Warren,Ohio,39165,8,0 +2020-03-26,Warren,Ohio,39165,10,0 +2020-03-27,Warren,Ohio,39165,11,0 +2020-03-28,Warren,Ohio,39165,16,0 +2020-03-29,Warren,Ohio,39165,20,0 +2020-03-30,Warren,Ohio,39165,20,0 +2020-03-31,Warren,Ohio,39165,21,0 +2020-04-01,Warren,Ohio,39165,23,0 +2020-04-02,Warren,Ohio,39165,26,0 +2020-04-03,Warren,Ohio,39165,31,0 +2020-04-04,Warren,Ohio,39165,35,0 +2020-04-05,Warren,Ohio,39165,36,0 +2020-04-06,Warren,Ohio,39165,37,0 +2020-04-07,Warren,Ohio,39165,45,0 +2020-04-08,Warren,Ohio,39165,46,0 +2020-04-09,Warren,Ohio,39165,53,0 +2020-04-10,Warren,Ohio,39165,72,0 +2020-04-11,Warren,Ohio,39165,74,0 +2020-04-12,Warren,Ohio,39165,75,1 +2020-04-13,Warren,Ohio,39165,76,1 +2020-04-14,Warren,Ohio,39165,78,3 +2020-04-15,Warren,Ohio,39165,85,3 +2020-04-16,Warren,Ohio,39165,89,4 +2020-04-17,Warren,Ohio,39165,93,5 +2020-04-18,Warren,Ohio,39165,112,8 +2020-04-19,Warren,Ohio,39165,112,9 +2020-04-20,Warren,Ohio,39165,116,9 +2020-04-21,Warren,Ohio,39165,117,10 +2020-04-22,Warren,Ohio,39165,118,10 +2020-04-23,Warren,Ohio,39165,124,10 +2020-04-24,Warren,Ohio,39165,128,10 +2020-04-25,Warren,Ohio,39165,131,10 +2020-04-26,Warren,Ohio,39165,133,11 +2020-04-27,Warren,Ohio,39165,124,11 +2020-04-28,Warren,Ohio,39165,131,11 +2020-04-29,Warren,Ohio,39165,134,11 +2020-04-30,Warren,Ohio,39165,146,11 +2020-05-01,Warren,Ohio,39165,160,11 +2020-05-02,Warren,Ohio,39165,166,11 +2020-05-03,Warren,Ohio,39165,168,11 +2020-05-04,Warren,Ohio,39165,172,11 +2020-05-05,Warren,Ohio,39165,178,12 +2020-05-06,Warren,Ohio,39165,179,12 +2020-05-07,Warren,Ohio,39165,188,13 +2020-05-08,Warren,Ohio,39165,191,13 +2020-05-09,Warren,Ohio,39165,202,13 +2020-05-10,Warren,Ohio,39165,206,13 +2020-05-11,Warren,Ohio,39165,209,13 +2020-05-12,Warren,Ohio,39165,213,13 +2020-05-13,Warren,Ohio,39165,237,13 +2020-05-14,Warren,Ohio,39165,252,13 +2020-05-15,Warren,Ohio,39165,259,13 +2020-05-16,Warren,Ohio,39165,269,14 +2020-05-17,Warren,Ohio,39165,275,15 +2020-05-18,Warren,Ohio,39165,283,15 +2020-05-19,Warren,Ohio,39165,285,15 +2020-05-20,Warren,Ohio,39165,292,15 +2020-05-21,Warren,Ohio,39165,309,15 +2020-05-22,Warren,Ohio,39165,310,18 +2020-05-23,Warren,Ohio,39165,319,19 +2020-05-24,Warren,Ohio,39165,328,19 +2020-05-25,Warren,Ohio,39165,336,19 +2020-05-26,Warren,Ohio,39165,340,20 +2020-05-27,Warren,Ohio,39165,344,19 +2020-05-28,Warren,Ohio,39165,351,19 +2020-05-29,Warren,Ohio,39165,359,20 +2020-05-30,Warren,Ohio,39165,366,21 +2020-05-31,Warren,Ohio,39165,373,21 +2020-06-01,Warren,Ohio,39165,378,21 +2020-06-02,Warren,Ohio,39165,383,21 +2020-06-03,Warren,Ohio,39165,390,21 +2020-06-04,Warren,Ohio,39165,398,21 +2020-06-05,Warren,Ohio,39165,407,21 +2020-06-06,Warren,Ohio,39165,413,20 +2020-06-07,Warren,Ohio,39165,419,20 +2020-06-08,Warren,Ohio,39165,427,20 +2020-06-09,Warren,Ohio,39165,443,20 +2020-06-10,Warren,Ohio,39165,461,20 +2020-06-11,Warren,Ohio,39165,473,20 +2020-06-12,Warren,Ohio,39165,497,20 +2020-06-13,Warren,Ohio,39165,508,20 +2020-06-14,Warren,Ohio,39165,512,20 +2020-06-15,Warren,Ohio,39165,517,20 +2020-06-16,Warren,Ohio,39165,525,20 +2020-06-17,Warren,Ohio,39165,532,20 +2020-06-18,Warren,Ohio,39165,549,20 +2020-06-19,Warren,Ohio,39165,559,20 +2020-06-20,Warren,Ohio,39165,571,20 +2020-06-21,Warren,Ohio,39165,584,20 +2020-06-22,Warren,Ohio,39165,594,20 +2020-06-23,Warren,Ohio,39165,614,20 +2020-06-24,Warren,Ohio,39165,629,20 +2020-06-25,Warren,Ohio,39165,649,20 +2020-06-26,Warren,Ohio,39165,698,20 +2020-06-27,Warren,Ohio,39165,708,20 +2020-06-28,Warren,Ohio,39165,725,20 +2020-06-29,Warren,Ohio,39165,731,20 +2020-06-30,Warren,Ohio,39165,738,21 +2020-07-01,Warren,Ohio,39165,757,21 +2020-07-02,Warren,Ohio,39165,757,21 +2020-07-03,Warren,Ohio,39165,814,21 +2020-07-04,Warren,Ohio,39165,823,21 +2020-07-05,Warren,Ohio,39165,839,21 +2020-07-06,Warren,Ohio,39165,860,21 +2020-07-07,Warren,Ohio,39165,881,24 +2020-07-08,Warren,Ohio,39165,895,25 +2020-07-09,Warren,Ohio,39165,918,25 +2020-03-23,Washington,Ohio,39167,1,0 +2020-03-24,Washington,Ohio,39167,1,0 +2020-03-25,Washington,Ohio,39167,1,0 +2020-03-26,Washington,Ohio,39167,1,0 +2020-03-27,Washington,Ohio,39167,2,0 +2020-03-28,Washington,Ohio,39167,2,0 +2020-03-29,Washington,Ohio,39167,3,0 +2020-03-30,Washington,Ohio,39167,3,0 +2020-03-31,Washington,Ohio,39167,3,0 +2020-04-01,Washington,Ohio,39167,3,0 +2020-04-02,Washington,Ohio,39167,4,0 +2020-04-03,Washington,Ohio,39167,4,0 +2020-04-04,Washington,Ohio,39167,6,0 +2020-04-05,Washington,Ohio,39167,8,0 +2020-04-06,Washington,Ohio,39167,15,0 +2020-04-07,Washington,Ohio,39167,27,0 +2020-04-08,Washington,Ohio,39167,30,0 +2020-04-09,Washington,Ohio,39167,34,0 +2020-04-10,Washington,Ohio,39167,35,1 +2020-04-11,Washington,Ohio,39167,36,1 +2020-04-12,Washington,Ohio,39167,39,1 +2020-04-13,Washington,Ohio,39167,41,1 +2020-04-14,Washington,Ohio,39167,44,2 +2020-04-15,Washington,Ohio,39167,47,4 +2020-04-16,Washington,Ohio,39167,53,5 +2020-04-17,Washington,Ohio,39167,55,5 +2020-04-18,Washington,Ohio,39167,57,6 +2020-04-19,Washington,Ohio,39167,65,6 +2020-04-20,Washington,Ohio,39167,65,6 +2020-04-21,Washington,Ohio,39167,69,6 +2020-04-22,Washington,Ohio,39167,73,6 +2020-04-23,Washington,Ohio,39167,75,8 +2020-04-24,Washington,Ohio,39167,80,8 +2020-04-25,Washington,Ohio,39167,93,8 +2020-04-26,Washington,Ohio,39167,94,10 +2020-04-27,Washington,Ohio,39167,94,10 +2020-04-28,Washington,Ohio,39167,95,10 +2020-04-29,Washington,Ohio,39167,95,12 +2020-04-30,Washington,Ohio,39167,98,12 +2020-05-01,Washington,Ohio,39167,99,12 +2020-05-02,Washington,Ohio,39167,100,12 +2020-05-03,Washington,Ohio,39167,102,14 +2020-05-04,Washington,Ohio,39167,103,14 +2020-05-05,Washington,Ohio,39167,105,15 +2020-05-06,Washington,Ohio,39167,106,16 +2020-05-07,Washington,Ohio,39167,111,17 +2020-05-08,Washington,Ohio,39167,111,17 +2020-05-09,Washington,Ohio,39167,113,17 +2020-05-10,Washington,Ohio,39167,114,17 +2020-05-11,Washington,Ohio,39167,114,17 +2020-05-12,Washington,Ohio,39167,114,17 +2020-05-13,Washington,Ohio,39167,115,17 +2020-05-14,Washington,Ohio,39167,116,17 +2020-05-15,Washington,Ohio,39167,116,17 +2020-05-16,Washington,Ohio,39167,116,17 +2020-05-17,Washington,Ohio,39167,116,17 +2020-05-18,Washington,Ohio,39167,116,17 +2020-05-19,Washington,Ohio,39167,116,17 +2020-05-20,Washington,Ohio,39167,116,17 +2020-05-21,Washington,Ohio,39167,116,17 +2020-05-22,Washington,Ohio,39167,116,17 +2020-05-23,Washington,Ohio,39167,116,18 +2020-05-24,Washington,Ohio,39167,117,18 +2020-05-25,Washington,Ohio,39167,117,18 +2020-05-26,Washington,Ohio,39167,117,18 +2020-05-27,Washington,Ohio,39167,118,19 +2020-05-28,Washington,Ohio,39167,118,19 +2020-05-29,Washington,Ohio,39167,118,19 +2020-05-30,Washington,Ohio,39167,118,19 +2020-05-31,Washington,Ohio,39167,118,19 +2020-06-01,Washington,Ohio,39167,118,19 +2020-06-02,Washington,Ohio,39167,118,19 +2020-06-03,Washington,Ohio,39167,118,19 +2020-06-04,Washington,Ohio,39167,118,19 +2020-06-05,Washington,Ohio,39167,118,19 +2020-06-06,Washington,Ohio,39167,118,19 +2020-06-07,Washington,Ohio,39167,118,19 +2020-06-08,Washington,Ohio,39167,118,19 +2020-06-09,Washington,Ohio,39167,118,19 +2020-06-10,Washington,Ohio,39167,118,19 +2020-06-11,Washington,Ohio,39167,117,19 +2020-06-12,Washington,Ohio,39167,117,19 +2020-06-13,Washington,Ohio,39167,118,19 +2020-06-14,Washington,Ohio,39167,118,19 +2020-06-15,Washington,Ohio,39167,118,19 +2020-06-16,Washington,Ohio,39167,118,19 +2020-06-17,Washington,Ohio,39167,118,19 +2020-06-18,Washington,Ohio,39167,119,20 +2020-06-19,Washington,Ohio,39167,119,20 +2020-06-20,Washington,Ohio,39167,119,20 +2020-06-21,Washington,Ohio,39167,119,20 +2020-06-22,Washington,Ohio,39167,120,20 +2020-06-23,Washington,Ohio,39167,120,20 +2020-06-24,Washington,Ohio,39167,120,20 +2020-06-25,Washington,Ohio,39167,120,20 +2020-06-26,Washington,Ohio,39167,122,20 +2020-06-27,Washington,Ohio,39167,122,20 +2020-06-28,Washington,Ohio,39167,122,20 +2020-06-29,Washington,Ohio,39167,124,20 +2020-06-30,Washington,Ohio,39167,124,20 +2020-07-01,Washington,Ohio,39167,127,20 +2020-07-02,Washington,Ohio,39167,127,20 +2020-07-03,Washington,Ohio,39167,130,20 +2020-07-04,Washington,Ohio,39167,131,20 +2020-07-05,Washington,Ohio,39167,132,20 +2020-07-06,Washington,Ohio,39167,135,20 +2020-07-07,Washington,Ohio,39167,135,20 +2020-07-08,Washington,Ohio,39167,140,20 +2020-07-09,Washington,Ohio,39167,142,20 +2020-03-25,Wayne,Ohio,39169,1,0 +2020-03-26,Wayne,Ohio,39169,2,0 +2020-03-27,Wayne,Ohio,39169,3,0 +2020-03-28,Wayne,Ohio,39169,4,0 +2020-03-29,Wayne,Ohio,39169,4,0 +2020-03-30,Wayne,Ohio,39169,7,0 +2020-03-31,Wayne,Ohio,39169,9,0 +2020-04-01,Wayne,Ohio,39169,11,0 +2020-04-02,Wayne,Ohio,39169,11,0 +2020-04-03,Wayne,Ohio,39169,18,0 +2020-04-04,Wayne,Ohio,39169,25,0 +2020-04-05,Wayne,Ohio,39169,26,0 +2020-04-06,Wayne,Ohio,39169,26,0 +2020-04-07,Wayne,Ohio,39169,29,0 +2020-04-08,Wayne,Ohio,39169,30,0 +2020-04-09,Wayne,Ohio,39169,30,1 +2020-04-10,Wayne,Ohio,39169,37,5 +2020-04-11,Wayne,Ohio,39169,40,5 +2020-04-12,Wayne,Ohio,39169,50,5 +2020-04-13,Wayne,Ohio,39169,54,5 +2020-04-14,Wayne,Ohio,39169,51,5 +2020-04-15,Wayne,Ohio,39169,56,10 +2020-04-16,Wayne,Ohio,39169,66,11 +2020-04-17,Wayne,Ohio,39169,72,11 +2020-04-18,Wayne,Ohio,39169,77,12 +2020-04-19,Wayne,Ohio,39169,79,12 +2020-04-20,Wayne,Ohio,39169,81,14 +2020-04-21,Wayne,Ohio,39169,82,16 +2020-04-22,Wayne,Ohio,39169,85,18 +2020-04-23,Wayne,Ohio,39169,88,18 +2020-04-24,Wayne,Ohio,39169,91,18 +2020-04-25,Wayne,Ohio,39169,100,20 +2020-04-26,Wayne,Ohio,39169,104,21 +2020-04-27,Wayne,Ohio,39169,114,22 +2020-04-28,Wayne,Ohio,39169,119,23 +2020-04-29,Wayne,Ohio,39169,125,24 +2020-04-30,Wayne,Ohio,39169,128,28 +2020-05-01,Wayne,Ohio,39169,143,30 +2020-05-02,Wayne,Ohio,39169,149,32 +2020-05-03,Wayne,Ohio,39169,153,32 +2020-05-04,Wayne,Ohio,39169,161,33 +2020-05-05,Wayne,Ohio,39169,166,33 +2020-05-06,Wayne,Ohio,39169,173,36 +2020-05-07,Wayne,Ohio,39169,177,41 +2020-05-08,Wayne,Ohio,39169,183,42 +2020-05-09,Wayne,Ohio,39169,188,42 +2020-05-10,Wayne,Ohio,39169,188,42 +2020-05-11,Wayne,Ohio,39169,188,42 +2020-05-12,Wayne,Ohio,39169,190,47 +2020-05-13,Wayne,Ohio,39169,192,47 +2020-05-14,Wayne,Ohio,39169,194,48 +2020-05-15,Wayne,Ohio,39169,198,48 +2020-05-16,Wayne,Ohio,39169,200,48 +2020-05-17,Wayne,Ohio,39169,201,48 +2020-05-18,Wayne,Ohio,39169,202,48 +2020-05-19,Wayne,Ohio,39169,206,49 +2020-05-20,Wayne,Ohio,39169,209,49 +2020-05-21,Wayne,Ohio,39169,211,49 +2020-05-22,Wayne,Ohio,39169,242,50 +2020-05-23,Wayne,Ohio,39169,248,50 +2020-05-24,Wayne,Ohio,39169,248,50 +2020-05-25,Wayne,Ohio,39169,250,50 +2020-05-26,Wayne,Ohio,39169,252,50 +2020-05-27,Wayne,Ohio,39169,256,50 +2020-05-28,Wayne,Ohio,39169,260,49 +2020-05-29,Wayne,Ohio,39169,266,50 +2020-05-30,Wayne,Ohio,39169,272,50 +2020-05-31,Wayne,Ohio,39169,274,50 +2020-06-01,Wayne,Ohio,39169,277,50 +2020-06-02,Wayne,Ohio,39169,281,51 +2020-06-03,Wayne,Ohio,39169,288,51 +2020-06-04,Wayne,Ohio,39169,293,51 +2020-06-05,Wayne,Ohio,39169,296,51 +2020-06-06,Wayne,Ohio,39169,296,51 +2020-06-07,Wayne,Ohio,39169,298,51 +2020-06-08,Wayne,Ohio,39169,300,51 +2020-06-09,Wayne,Ohio,39169,301,51 +2020-06-10,Wayne,Ohio,39169,302,52 +2020-06-11,Wayne,Ohio,39169,304,52 +2020-06-12,Wayne,Ohio,39169,304,52 +2020-06-13,Wayne,Ohio,39169,304,52 +2020-06-14,Wayne,Ohio,39169,306,52 +2020-06-15,Wayne,Ohio,39169,308,52 +2020-06-16,Wayne,Ohio,39169,311,52 +2020-06-17,Wayne,Ohio,39169,313,52 +2020-06-18,Wayne,Ohio,39169,316,52 +2020-06-19,Wayne,Ohio,39169,321,52 +2020-06-20,Wayne,Ohio,39169,323,52 +2020-06-21,Wayne,Ohio,39169,327,52 +2020-06-22,Wayne,Ohio,39169,330,52 +2020-06-23,Wayne,Ohio,39169,332,52 +2020-06-24,Wayne,Ohio,39169,338,52 +2020-06-25,Wayne,Ohio,39169,343,52 +2020-06-26,Wayne,Ohio,39169,346,52 +2020-06-27,Wayne,Ohio,39169,348,52 +2020-06-28,Wayne,Ohio,39169,350,52 +2020-06-29,Wayne,Ohio,39169,352,52 +2020-06-30,Wayne,Ohio,39169,353,52 +2020-07-01,Wayne,Ohio,39169,354,52 +2020-07-02,Wayne,Ohio,39169,354,52 +2020-07-03,Wayne,Ohio,39169,359,51 +2020-07-04,Wayne,Ohio,39169,360,51 +2020-07-05,Wayne,Ohio,39169,362,51 +2020-07-06,Wayne,Ohio,39169,363,51 +2020-07-07,Wayne,Ohio,39169,363,52 +2020-07-08,Wayne,Ohio,39169,365,52 +2020-07-09,Wayne,Ohio,39169,367,52 +2020-04-02,Williams,Ohio,39171,1,0 +2020-04-03,Williams,Ohio,39171,1,0 +2020-04-04,Williams,Ohio,39171,1,0 +2020-04-05,Williams,Ohio,39171,1,0 +2020-04-06,Williams,Ohio,39171,1,0 +2020-04-07,Williams,Ohio,39171,1,0 +2020-04-08,Williams,Ohio,39171,1,0 +2020-04-09,Williams,Ohio,39171,1,0 +2020-04-10,Williams,Ohio,39171,2,0 +2020-04-11,Williams,Ohio,39171,3,0 +2020-04-12,Williams,Ohio,39171,3,0 +2020-04-13,Williams,Ohio,39171,3,0 +2020-04-14,Williams,Ohio,39171,3,0 +2020-04-15,Williams,Ohio,39171,6,1 +2020-04-16,Williams,Ohio,39171,6,1 +2020-04-17,Williams,Ohio,39171,6,1 +2020-04-18,Williams,Ohio,39171,7,1 +2020-04-19,Williams,Ohio,39171,8,1 +2020-04-20,Williams,Ohio,39171,8,1 +2020-04-21,Williams,Ohio,39171,8,1 +2020-04-22,Williams,Ohio,39171,16,1 +2020-04-23,Williams,Ohio,39171,23,1 +2020-04-24,Williams,Ohio,39171,28,1 +2020-04-25,Williams,Ohio,39171,27,1 +2020-04-26,Williams,Ohio,39171,29,1 +2020-04-27,Williams,Ohio,39171,29,1 +2020-04-28,Williams,Ohio,39171,31,1 +2020-04-29,Williams,Ohio,39171,33,1 +2020-04-30,Williams,Ohio,39171,34,1 +2020-05-01,Williams,Ohio,39171,36,1 +2020-05-02,Williams,Ohio,39171,36,1 +2020-05-03,Williams,Ohio,39171,36,1 +2020-05-04,Williams,Ohio,39171,41,1 +2020-05-05,Williams,Ohio,39171,42,1 +2020-05-06,Williams,Ohio,39171,42,1 +2020-05-07,Williams,Ohio,39171,43,1 +2020-05-08,Williams,Ohio,39171,44,1 +2020-05-09,Williams,Ohio,39171,44,1 +2020-05-10,Williams,Ohio,39171,44,1 +2020-05-11,Williams,Ohio,39171,44,1 +2020-05-12,Williams,Ohio,39171,44,1 +2020-05-13,Williams,Ohio,39171,44,1 +2020-05-14,Williams,Ohio,39171,44,1 +2020-05-15,Williams,Ohio,39171,46,1 +2020-05-16,Williams,Ohio,39171,47,1 +2020-05-17,Williams,Ohio,39171,47,1 +2020-05-18,Williams,Ohio,39171,47,1 +2020-05-19,Williams,Ohio,39171,47,1 +2020-05-20,Williams,Ohio,39171,48,1 +2020-05-21,Williams,Ohio,39171,47,1 +2020-05-22,Williams,Ohio,39171,48,1 +2020-05-23,Williams,Ohio,39171,51,1 +2020-05-24,Williams,Ohio,39171,51,1 +2020-05-25,Williams,Ohio,39171,52,1 +2020-05-26,Williams,Ohio,39171,52,1 +2020-05-27,Williams,Ohio,39171,52,1 +2020-05-28,Williams,Ohio,39171,51,1 +2020-05-29,Williams,Ohio,39171,54,1 +2020-05-30,Williams,Ohio,39171,54,1 +2020-05-31,Williams,Ohio,39171,55,1 +2020-06-01,Williams,Ohio,39171,55,1 +2020-06-02,Williams,Ohio,39171,55,1 +2020-06-03,Williams,Ohio,39171,56,1 +2020-06-04,Williams,Ohio,39171,56,1 +2020-06-05,Williams,Ohio,39171,58,1 +2020-06-06,Williams,Ohio,39171,58,1 +2020-06-07,Williams,Ohio,39171,58,1 +2020-06-08,Williams,Ohio,39171,58,1 +2020-06-09,Williams,Ohio,39171,58,1 +2020-06-10,Williams,Ohio,39171,58,1 +2020-06-11,Williams,Ohio,39171,58,1 +2020-06-12,Williams,Ohio,39171,58,1 +2020-06-13,Williams,Ohio,39171,58,1 +2020-06-14,Williams,Ohio,39171,58,1 +2020-06-15,Williams,Ohio,39171,59,1 +2020-06-16,Williams,Ohio,39171,59,1 +2020-06-17,Williams,Ohio,39171,59,1 +2020-06-18,Williams,Ohio,39171,59,1 +2020-06-19,Williams,Ohio,39171,59,1 +2020-06-20,Williams,Ohio,39171,59,1 +2020-06-21,Williams,Ohio,39171,59,1 +2020-06-22,Williams,Ohio,39171,60,1 +2020-06-23,Williams,Ohio,39171,60,1 +2020-06-24,Williams,Ohio,39171,60,1 +2020-06-25,Williams,Ohio,39171,60,1 +2020-06-26,Williams,Ohio,39171,62,1 +2020-06-27,Williams,Ohio,39171,63,1 +2020-06-28,Williams,Ohio,39171,63,1 +2020-06-29,Williams,Ohio,39171,63,1 +2020-06-30,Williams,Ohio,39171,65,2 +2020-07-01,Williams,Ohio,39171,65,2 +2020-07-02,Williams,Ohio,39171,65,2 +2020-07-03,Williams,Ohio,39171,68,2 +2020-07-04,Williams,Ohio,39171,69,2 +2020-07-05,Williams,Ohio,39171,70,2 +2020-07-06,Williams,Ohio,39171,71,2 +2020-07-07,Williams,Ohio,39171,72,2 +2020-07-08,Williams,Ohio,39171,72,2 +2020-07-09,Williams,Ohio,39171,72,2 +2020-03-22,Wood,Ohio,39173,1,0 +2020-03-23,Wood,Ohio,39173,2,0 +2020-03-24,Wood,Ohio,39173,2,0 +2020-03-25,Wood,Ohio,39173,3,0 +2020-03-26,Wood,Ohio,39173,6,0 +2020-03-27,Wood,Ohio,39173,9,0 +2020-03-28,Wood,Ohio,39173,10,0 +2020-03-29,Wood,Ohio,39173,12,0 +2020-03-30,Wood,Ohio,39173,13,0 +2020-03-31,Wood,Ohio,39173,15,0 +2020-04-01,Wood,Ohio,39173,15,0 +2020-04-02,Wood,Ohio,39173,18,0 +2020-04-03,Wood,Ohio,39173,20,0 +2020-04-04,Wood,Ohio,39173,23,0 +2020-04-05,Wood,Ohio,39173,29,0 +2020-04-06,Wood,Ohio,39173,34,0 +2020-04-07,Wood,Ohio,39173,38,0 +2020-04-08,Wood,Ohio,39173,41,2 +2020-04-09,Wood,Ohio,39173,42,2 +2020-04-10,Wood,Ohio,39173,49,3 +2020-04-11,Wood,Ohio,39173,52,3 +2020-04-12,Wood,Ohio,39173,54,3 +2020-04-13,Wood,Ohio,39173,54,4 +2020-04-14,Wood,Ohio,39173,61,4 +2020-04-15,Wood,Ohio,39173,64,5 +2020-04-16,Wood,Ohio,39173,67,5 +2020-04-17,Wood,Ohio,39173,73,6 +2020-04-18,Wood,Ohio,39173,80,9 +2020-04-19,Wood,Ohio,39173,84,9 +2020-04-20,Wood,Ohio,39173,84,12 +2020-04-21,Wood,Ohio,39173,92,13 +2020-04-22,Wood,Ohio,39173,98,13 +2020-04-23,Wood,Ohio,39173,105,15 +2020-04-24,Wood,Ohio,39173,122,15 +2020-04-25,Wood,Ohio,39173,132,16 +2020-04-26,Wood,Ohio,39173,133,17 +2020-04-27,Wood,Ohio,39173,139,18 +2020-04-28,Wood,Ohio,39173,145,19 +2020-04-29,Wood,Ohio,39173,154,20 +2020-04-30,Wood,Ohio,39173,164,20 +2020-05-01,Wood,Ohio,39173,174,23 +2020-05-02,Wood,Ohio,39173,183,23 +2020-05-03,Wood,Ohio,39173,187,23 +2020-05-04,Wood,Ohio,39173,193,24 +2020-05-05,Wood,Ohio,39173,203,27 +2020-05-06,Wood,Ohio,39173,210,27 +2020-05-07,Wood,Ohio,39173,212,29 +2020-05-08,Wood,Ohio,39173,220,29 +2020-05-09,Wood,Ohio,39173,222,29 +2020-05-10,Wood,Ohio,39173,224,30 +2020-05-11,Wood,Ohio,39173,225,31 +2020-05-12,Wood,Ohio,39173,229,34 +2020-05-13,Wood,Ohio,39173,229,41 +2020-05-14,Wood,Ohio,39173,233,42 +2020-05-15,Wood,Ohio,39173,237,42 +2020-05-16,Wood,Ohio,39173,241,42 +2020-05-17,Wood,Ohio,39173,249,42 +2020-05-18,Wood,Ohio,39173,257,42 +2020-05-19,Wood,Ohio,39173,257,43 +2020-05-20,Wood,Ohio,39173,254,43 +2020-05-21,Wood,Ohio,39173,259,43 +2020-05-22,Wood,Ohio,39173,261,43 +2020-05-23,Wood,Ohio,39173,269,45 +2020-05-24,Wood,Ohio,39173,274,45 +2020-05-25,Wood,Ohio,39173,276,45 +2020-05-26,Wood,Ohio,39173,277,45 +2020-05-27,Wood,Ohio,39173,280,45 +2020-05-28,Wood,Ohio,39173,282,46 +2020-05-29,Wood,Ohio,39173,285,46 +2020-05-30,Wood,Ohio,39173,287,46 +2020-05-31,Wood,Ohio,39173,294,46 +2020-06-01,Wood,Ohio,39173,295,47 +2020-06-02,Wood,Ohio,39173,300,47 +2020-06-03,Wood,Ohio,39173,303,48 +2020-06-04,Wood,Ohio,39173,304,49 +2020-06-05,Wood,Ohio,39173,306,49 +2020-06-06,Wood,Ohio,39173,308,49 +2020-06-07,Wood,Ohio,39173,307,49 +2020-06-08,Wood,Ohio,39173,308,49 +2020-06-09,Wood,Ohio,39173,308,49 +2020-06-10,Wood,Ohio,39173,312,49 +2020-06-11,Wood,Ohio,39173,314,50 +2020-06-12,Wood,Ohio,39173,316,50 +2020-06-13,Wood,Ohio,39173,320,50 +2020-06-14,Wood,Ohio,39173,321,50 +2020-06-15,Wood,Ohio,39173,321,50 +2020-06-16,Wood,Ohio,39173,329,51 +2020-06-17,Wood,Ohio,39173,329,51 +2020-06-18,Wood,Ohio,39173,331,51 +2020-06-19,Wood,Ohio,39173,332,51 +2020-06-20,Wood,Ohio,39173,333,51 +2020-06-21,Wood,Ohio,39173,334,51 +2020-06-22,Wood,Ohio,39173,337,51 +2020-06-23,Wood,Ohio,39173,342,51 +2020-06-24,Wood,Ohio,39173,344,51 +2020-06-25,Wood,Ohio,39173,345,51 +2020-06-26,Wood,Ohio,39173,350,51 +2020-06-27,Wood,Ohio,39173,354,51 +2020-06-28,Wood,Ohio,39173,363,51 +2020-06-29,Wood,Ohio,39173,368,51 +2020-06-30,Wood,Ohio,39173,376,51 +2020-07-01,Wood,Ohio,39173,384,51 +2020-07-02,Wood,Ohio,39173,384,51 +2020-07-03,Wood,Ohio,39173,404,51 +2020-07-04,Wood,Ohio,39173,412,51 +2020-07-05,Wood,Ohio,39173,421,51 +2020-07-06,Wood,Ohio,39173,428,51 +2020-07-07,Wood,Ohio,39173,436,51 +2020-07-08,Wood,Ohio,39173,452,51 +2020-07-09,Wood,Ohio,39173,461,51 +2020-03-26,Wyandot,Ohio,39175,1,0 +2020-03-27,Wyandot,Ohio,39175,1,0 +2020-03-28,Wyandot,Ohio,39175,1,0 +2020-03-29,Wyandot,Ohio,39175,1,0 +2020-03-30,Wyandot,Ohio,39175,1,0 +2020-03-31,Wyandot,Ohio,39175,2,0 +2020-04-01,Wyandot,Ohio,39175,2,0 +2020-04-02,Wyandot,Ohio,39175,2,0 +2020-04-03,Wyandot,Ohio,39175,2,0 +2020-04-04,Wyandot,Ohio,39175,5,0 +2020-04-05,Wyandot,Ohio,39175,5,0 +2020-04-06,Wyandot,Ohio,39175,5,0 +2020-04-07,Wyandot,Ohio,39175,5,0 +2020-04-08,Wyandot,Ohio,39175,5,0 +2020-04-09,Wyandot,Ohio,39175,8,1 +2020-04-10,Wyandot,Ohio,39175,9,1 +2020-04-11,Wyandot,Ohio,39175,10,2 +2020-04-12,Wyandot,Ohio,39175,11,2 +2020-04-13,Wyandot,Ohio,39175,12,2 +2020-04-14,Wyandot,Ohio,39175,13,2 +2020-04-15,Wyandot,Ohio,39175,14,2 +2020-04-16,Wyandot,Ohio,39175,14,2 +2020-04-17,Wyandot,Ohio,39175,16,2 +2020-04-18,Wyandot,Ohio,39175,17,2 +2020-04-19,Wyandot,Ohio,39175,17,2 +2020-04-20,Wyandot,Ohio,39175,17,2 +2020-04-21,Wyandot,Ohio,39175,20,2 +2020-04-22,Wyandot,Ohio,39175,21,2 +2020-04-23,Wyandot,Ohio,39175,21,2 +2020-04-24,Wyandot,Ohio,39175,24,2 +2020-04-25,Wyandot,Ohio,39175,24,2 +2020-04-26,Wyandot,Ohio,39175,24,2 +2020-04-27,Wyandot,Ohio,39175,24,2 +2020-04-28,Wyandot,Ohio,39175,24,2 +2020-04-29,Wyandot,Ohio,39175,25,2 +2020-04-30,Wyandot,Ohio,39175,24,2 +2020-05-01,Wyandot,Ohio,39175,24,2 +2020-05-02,Wyandot,Ohio,39175,24,2 +2020-05-03,Wyandot,Ohio,39175,24,2 +2020-05-04,Wyandot,Ohio,39175,24,2 +2020-05-05,Wyandot,Ohio,39175,24,2 +2020-05-06,Wyandot,Ohio,39175,24,2 +2020-05-07,Wyandot,Ohio,39175,25,2 +2020-05-08,Wyandot,Ohio,39175,26,2 +2020-05-09,Wyandot,Ohio,39175,27,2 +2020-05-10,Wyandot,Ohio,39175,27,2 +2020-05-11,Wyandot,Ohio,39175,27,2 +2020-05-12,Wyandot,Ohio,39175,27,2 +2020-05-13,Wyandot,Ohio,39175,27,2 +2020-05-14,Wyandot,Ohio,39175,27,2 +2020-05-15,Wyandot,Ohio,39175,29,2 +2020-05-16,Wyandot,Ohio,39175,29,2 +2020-05-17,Wyandot,Ohio,39175,29,2 +2020-05-18,Wyandot,Ohio,39175,30,2 +2020-05-19,Wyandot,Ohio,39175,31,2 +2020-05-20,Wyandot,Ohio,39175,33,2 +2020-05-21,Wyandot,Ohio,39175,33,2 +2020-05-22,Wyandot,Ohio,39175,33,2 +2020-05-23,Wyandot,Ohio,39175,36,2 +2020-05-24,Wyandot,Ohio,39175,36,2 +2020-05-25,Wyandot,Ohio,39175,36,2 +2020-05-26,Wyandot,Ohio,39175,36,2 +2020-05-27,Wyandot,Ohio,39175,37,2 +2020-05-28,Wyandot,Ohio,39175,38,2 +2020-05-29,Wyandot,Ohio,39175,39,2 +2020-05-30,Wyandot,Ohio,39175,40,2 +2020-05-31,Wyandot,Ohio,39175,41,2 +2020-06-01,Wyandot,Ohio,39175,42,2 +2020-06-02,Wyandot,Ohio,39175,45,2 +2020-06-03,Wyandot,Ohio,39175,44,2 +2020-06-04,Wyandot,Ohio,39175,48,2 +2020-06-05,Wyandot,Ohio,39175,48,2 +2020-06-06,Wyandot,Ohio,39175,48,2 +2020-06-07,Wyandot,Ohio,39175,48,2 +2020-06-08,Wyandot,Ohio,39175,48,2 +2020-06-09,Wyandot,Ohio,39175,48,2 +2020-06-10,Wyandot,Ohio,39175,48,2 +2020-06-11,Wyandot,Ohio,39175,49,2 +2020-06-12,Wyandot,Ohio,39175,48,4 +2020-06-13,Wyandot,Ohio,39175,48,4 +2020-06-14,Wyandot,Ohio,39175,48,4 +2020-06-15,Wyandot,Ohio,39175,48,4 +2020-06-16,Wyandot,Ohio,39175,49,4 +2020-06-17,Wyandot,Ohio,39175,50,4 +2020-06-18,Wyandot,Ohio,39175,50,4 +2020-06-19,Wyandot,Ohio,39175,55,4 +2020-06-20,Wyandot,Ohio,39175,55,4 +2020-06-21,Wyandot,Ohio,39175,55,4 +2020-06-22,Wyandot,Ohio,39175,55,4 +2020-06-23,Wyandot,Ohio,39175,55,4 +2020-06-24,Wyandot,Ohio,39175,55,4 +2020-06-25,Wyandot,Ohio,39175,55,4 +2020-06-26,Wyandot,Ohio,39175,57,4 +2020-06-27,Wyandot,Ohio,39175,57,4 +2020-06-28,Wyandot,Ohio,39175,57,4 +2020-06-29,Wyandot,Ohio,39175,57,4 +2020-06-30,Wyandot,Ohio,39175,58,4 +2020-07-01,Wyandot,Ohio,39175,58,4 +2020-07-02,Wyandot,Ohio,39175,58,4 +2020-07-03,Wyandot,Ohio,39175,58,5 +2020-07-04,Wyandot,Ohio,39175,58,6 +2020-07-05,Wyandot,Ohio,39175,58,6 +2020-07-06,Wyandot,Ohio,39175,59,6 +2020-07-07,Wyandot,Ohio,39175,59,5 +2020-07-08,Wyandot,Ohio,39175,60,5 +2020-07-09,Wyandot,Ohio,39175,61,5 +2020-03-25,Adair,Oklahoma,40001,2,0 +2020-03-26,Adair,Oklahoma,40001,2,0 +2020-03-27,Adair,Oklahoma,40001,3,0 +2020-03-28,Adair,Oklahoma,40001,3,0 +2020-03-29,Adair,Oklahoma,40001,4,0 +2020-03-30,Adair,Oklahoma,40001,4,0 +2020-03-31,Adair,Oklahoma,40001,4,0 +2020-04-01,Adair,Oklahoma,40001,8,0 +2020-04-02,Adair,Oklahoma,40001,9,0 +2020-04-03,Adair,Oklahoma,40001,14,0 +2020-04-04,Adair,Oklahoma,40001,14,0 +2020-04-05,Adair,Oklahoma,40001,18,0 +2020-04-06,Adair,Oklahoma,40001,20,0 +2020-04-07,Adair,Oklahoma,40001,25,1 +2020-04-08,Adair,Oklahoma,40001,25,2 +2020-04-09,Adair,Oklahoma,40001,25,2 +2020-04-10,Adair,Oklahoma,40001,26,2 +2020-04-11,Adair,Oklahoma,40001,27,2 +2020-04-12,Adair,Oklahoma,40001,27,2 +2020-04-13,Adair,Oklahoma,40001,27,2 +2020-04-14,Adair,Oklahoma,40001,28,2 +2020-04-15,Adair,Oklahoma,40001,29,3 +2020-04-16,Adair,Oklahoma,40001,29,3 +2020-04-17,Adair,Oklahoma,40001,38,3 +2020-04-18,Adair,Oklahoma,40001,41,3 +2020-04-19,Adair,Oklahoma,40001,43,3 +2020-04-20,Adair,Oklahoma,40001,46,3 +2020-04-21,Adair,Oklahoma,40001,47,3 +2020-04-22,Adair,Oklahoma,40001,49,3 +2020-04-23,Adair,Oklahoma,40001,50,3 +2020-04-24,Adair,Oklahoma,40001,53,3 +2020-04-25,Adair,Oklahoma,40001,54,3 +2020-04-26,Adair,Oklahoma,40001,55,3 +2020-04-27,Adair,Oklahoma,40001,55,3 +2020-04-28,Adair,Oklahoma,40001,64,3 +2020-04-29,Adair,Oklahoma,40001,64,3 +2020-04-30,Adair,Oklahoma,40001,64,3 +2020-05-01,Adair,Oklahoma,40001,65,3 +2020-05-02,Adair,Oklahoma,40001,65,3 +2020-05-03,Adair,Oklahoma,40001,65,3 +2020-05-04,Adair,Oklahoma,40001,65,3 +2020-05-05,Adair,Oklahoma,40001,66,3 +2020-05-06,Adair,Oklahoma,40001,68,3 +2020-05-07,Adair,Oklahoma,40001,69,3 +2020-05-08,Adair,Oklahoma,40001,72,3 +2020-05-09,Adair,Oklahoma,40001,74,3 +2020-05-10,Adair,Oklahoma,40001,74,3 +2020-05-11,Adair,Oklahoma,40001,72,3 +2020-05-12,Adair,Oklahoma,40001,74,3 +2020-05-13,Adair,Oklahoma,40001,74,3 +2020-05-14,Adair,Oklahoma,40001,74,3 +2020-05-15,Adair,Oklahoma,40001,74,3 +2020-05-16,Adair,Oklahoma,40001,74,3 +2020-05-17,Adair,Oklahoma,40001,75,3 +2020-05-18,Adair,Oklahoma,40001,75,3 +2020-05-19,Adair,Oklahoma,40001,77,3 +2020-05-20,Adair,Oklahoma,40001,78,3 +2020-05-21,Adair,Oklahoma,40001,78,3 +2020-05-22,Adair,Oklahoma,40001,79,3 +2020-05-23,Adair,Oklahoma,40001,82,3 +2020-05-24,Adair,Oklahoma,40001,82,3 +2020-05-25,Adair,Oklahoma,40001,82,3 +2020-05-26,Adair,Oklahoma,40001,82,3 +2020-05-27,Adair,Oklahoma,40001,82,3 +2020-05-28,Adair,Oklahoma,40001,84,3 +2020-05-29,Adair,Oklahoma,40001,85,3 +2020-05-30,Adair,Oklahoma,40001,87,3 +2020-05-31,Adair,Oklahoma,40001,87,3 +2020-06-01,Adair,Oklahoma,40001,88,3 +2020-06-02,Adair,Oklahoma,40001,91,3 +2020-06-03,Adair,Oklahoma,40001,91,4 +2020-06-04,Adair,Oklahoma,40001,93,4 +2020-06-05,Adair,Oklahoma,40001,93,4 +2020-06-06,Adair,Oklahoma,40001,93,4 +2020-06-07,Adair,Oklahoma,40001,94,4 +2020-06-08,Adair,Oklahoma,40001,94,4 +2020-06-09,Adair,Oklahoma,40001,95,4 +2020-06-10,Adair,Oklahoma,40001,95,4 +2020-06-11,Adair,Oklahoma,40001,95,4 +2020-06-12,Adair,Oklahoma,40001,95,4 +2020-06-13,Adair,Oklahoma,40001,96,4 +2020-06-14,Adair,Oklahoma,40001,96,4 +2020-06-15,Adair,Oklahoma,40001,96,4 +2020-06-16,Adair,Oklahoma,40001,96,4 +2020-06-17,Adair,Oklahoma,40001,96,4 +2020-06-18,Adair,Oklahoma,40001,101,4 +2020-06-19,Adair,Oklahoma,40001,103,4 +2020-06-20,Adair,Oklahoma,40001,104,4 +2020-06-21,Adair,Oklahoma,40001,107,4 +2020-06-22,Adair,Oklahoma,40001,108,4 +2020-06-23,Adair,Oklahoma,40001,110,4 +2020-06-24,Adair,Oklahoma,40001,110,4 +2020-06-25,Adair,Oklahoma,40001,111,4 +2020-06-26,Adair,Oklahoma,40001,111,4 +2020-06-27,Adair,Oklahoma,40001,111,4 +2020-06-28,Adair,Oklahoma,40001,112,4 +2020-06-29,Adair,Oklahoma,40001,114,4 +2020-06-30,Adair,Oklahoma,40001,115,4 +2020-07-01,Adair,Oklahoma,40001,115,4 +2020-07-02,Adair,Oklahoma,40001,119,4 +2020-07-03,Adair,Oklahoma,40001,119,4 +2020-07-04,Adair,Oklahoma,40001,120,4 +2020-07-05,Adair,Oklahoma,40001,121,4 +2020-07-06,Adair,Oklahoma,40001,123,4 +2020-07-07,Adair,Oklahoma,40001,129,4 +2020-07-08,Adair,Oklahoma,40001,130,4 +2020-07-09,Adair,Oklahoma,40001,136,4 +2020-04-13,Alfalfa,Oklahoma,40003,1,0 +2020-04-14,Alfalfa,Oklahoma,40003,1,0 +2020-04-15,Alfalfa,Oklahoma,40003,1,0 +2020-04-16,Alfalfa,Oklahoma,40003,1,0 +2020-04-17,Alfalfa,Oklahoma,40003,1,0 +2020-04-18,Alfalfa,Oklahoma,40003,1,0 +2020-04-19,Alfalfa,Oklahoma,40003,1,0 +2020-04-20,Alfalfa,Oklahoma,40003,1,0 +2020-04-21,Alfalfa,Oklahoma,40003,1,0 +2020-04-22,Alfalfa,Oklahoma,40003,1,0 +2020-04-23,Alfalfa,Oklahoma,40003,1,0 +2020-04-24,Alfalfa,Oklahoma,40003,1,0 +2020-04-25,Alfalfa,Oklahoma,40003,1,0 +2020-04-26,Alfalfa,Oklahoma,40003,1,0 +2020-04-27,Alfalfa,Oklahoma,40003,1,0 +2020-04-28,Alfalfa,Oklahoma,40003,1,0 +2020-04-29,Alfalfa,Oklahoma,40003,1,0 +2020-04-30,Alfalfa,Oklahoma,40003,1,0 +2020-05-01,Alfalfa,Oklahoma,40003,1,0 +2020-05-02,Alfalfa,Oklahoma,40003,1,0 +2020-05-03,Alfalfa,Oklahoma,40003,1,0 +2020-05-04,Alfalfa,Oklahoma,40003,1,0 +2020-05-05,Alfalfa,Oklahoma,40003,1,0 +2020-05-06,Alfalfa,Oklahoma,40003,1,0 +2020-05-07,Alfalfa,Oklahoma,40003,1,0 +2020-05-08,Alfalfa,Oklahoma,40003,1,0 +2020-05-09,Alfalfa,Oklahoma,40003,1,0 +2020-05-10,Alfalfa,Oklahoma,40003,1,0 +2020-05-11,Alfalfa,Oklahoma,40003,1,0 +2020-05-12,Alfalfa,Oklahoma,40003,1,0 +2020-05-13,Alfalfa,Oklahoma,40003,1,0 +2020-05-14,Alfalfa,Oklahoma,40003,1,0 +2020-05-15,Alfalfa,Oklahoma,40003,1,0 +2020-05-16,Alfalfa,Oklahoma,40003,1,0 +2020-05-17,Alfalfa,Oklahoma,40003,1,0 +2020-05-18,Alfalfa,Oklahoma,40003,1,0 +2020-05-19,Alfalfa,Oklahoma,40003,1,0 +2020-05-20,Alfalfa,Oklahoma,40003,1,0 +2020-05-21,Alfalfa,Oklahoma,40003,1,0 +2020-05-22,Alfalfa,Oklahoma,40003,1,0 +2020-05-23,Alfalfa,Oklahoma,40003,1,0 +2020-05-24,Alfalfa,Oklahoma,40003,1,0 +2020-05-25,Alfalfa,Oklahoma,40003,1,0 +2020-05-26,Alfalfa,Oklahoma,40003,1,0 +2020-05-27,Alfalfa,Oklahoma,40003,1,0 +2020-05-28,Alfalfa,Oklahoma,40003,1,0 +2020-05-29,Alfalfa,Oklahoma,40003,1,0 +2020-05-30,Alfalfa,Oklahoma,40003,1,0 +2020-05-31,Alfalfa,Oklahoma,40003,1,0 +2020-06-01,Alfalfa,Oklahoma,40003,1,0 +2020-06-02,Alfalfa,Oklahoma,40003,1,0 +2020-06-03,Alfalfa,Oklahoma,40003,1,0 +2020-06-04,Alfalfa,Oklahoma,40003,1,0 +2020-06-05,Alfalfa,Oklahoma,40003,1,0 +2020-06-06,Alfalfa,Oklahoma,40003,1,0 +2020-06-07,Alfalfa,Oklahoma,40003,1,0 +2020-06-08,Alfalfa,Oklahoma,40003,1,0 +2020-06-09,Alfalfa,Oklahoma,40003,1,0 +2020-06-10,Alfalfa,Oklahoma,40003,1,0 +2020-06-11,Alfalfa,Oklahoma,40003,1,0 +2020-06-12,Alfalfa,Oklahoma,40003,1,0 +2020-06-13,Alfalfa,Oklahoma,40003,1,0 +2020-06-14,Alfalfa,Oklahoma,40003,1,0 +2020-06-15,Alfalfa,Oklahoma,40003,1,0 +2020-06-16,Alfalfa,Oklahoma,40003,1,0 +2020-06-17,Alfalfa,Oklahoma,40003,1,0 +2020-06-18,Alfalfa,Oklahoma,40003,1,0 +2020-06-19,Alfalfa,Oklahoma,40003,1,0 +2020-06-20,Alfalfa,Oklahoma,40003,1,0 +2020-06-21,Alfalfa,Oklahoma,40003,1,0 +2020-06-22,Alfalfa,Oklahoma,40003,1,0 +2020-06-23,Alfalfa,Oklahoma,40003,1,0 +2020-06-24,Alfalfa,Oklahoma,40003,1,0 +2020-06-25,Alfalfa,Oklahoma,40003,1,0 +2020-06-26,Alfalfa,Oklahoma,40003,1,0 +2020-06-27,Alfalfa,Oklahoma,40003,1,0 +2020-06-28,Alfalfa,Oklahoma,40003,1,0 +2020-06-29,Alfalfa,Oklahoma,40003,1,0 +2020-06-30,Alfalfa,Oklahoma,40003,1,0 +2020-07-01,Alfalfa,Oklahoma,40003,1,0 +2020-07-02,Alfalfa,Oklahoma,40003,1,0 +2020-07-03,Alfalfa,Oklahoma,40003,1,0 +2020-07-04,Alfalfa,Oklahoma,40003,1,0 +2020-07-05,Alfalfa,Oklahoma,40003,1,0 +2020-07-06,Alfalfa,Oklahoma,40003,1,0 +2020-07-07,Alfalfa,Oklahoma,40003,1,0 +2020-07-08,Alfalfa,Oklahoma,40003,1,0 +2020-07-09,Alfalfa,Oklahoma,40003,1,0 +2020-04-02,Atoka,Oklahoma,40005,1,0 +2020-04-03,Atoka,Oklahoma,40005,1,0 +2020-04-04,Atoka,Oklahoma,40005,1,0 +2020-04-05,Atoka,Oklahoma,40005,1,0 +2020-04-06,Atoka,Oklahoma,40005,1,0 +2020-04-07,Atoka,Oklahoma,40005,1,0 +2020-04-08,Atoka,Oklahoma,40005,1,0 +2020-04-09,Atoka,Oklahoma,40005,1,0 +2020-04-10,Atoka,Oklahoma,40005,1,0 +2020-04-11,Atoka,Oklahoma,40005,1,0 +2020-04-12,Atoka,Oklahoma,40005,1,0 +2020-04-13,Atoka,Oklahoma,40005,1,0 +2020-04-14,Atoka,Oklahoma,40005,1,0 +2020-04-15,Atoka,Oklahoma,40005,1,0 +2020-04-16,Atoka,Oklahoma,40005,1,0 +2020-04-17,Atoka,Oklahoma,40005,1,0 +2020-04-18,Atoka,Oklahoma,40005,1,0 +2020-04-19,Atoka,Oklahoma,40005,1,0 +2020-04-20,Atoka,Oklahoma,40005,1,0 +2020-04-21,Atoka,Oklahoma,40005,1,0 +2020-04-22,Atoka,Oklahoma,40005,1,0 +2020-04-23,Atoka,Oklahoma,40005,1,0 +2020-04-24,Atoka,Oklahoma,40005,1,0 +2020-04-25,Atoka,Oklahoma,40005,1,0 +2020-04-26,Atoka,Oklahoma,40005,1,0 +2020-04-27,Atoka,Oklahoma,40005,1,0 +2020-04-28,Atoka,Oklahoma,40005,1,0 +2020-04-29,Atoka,Oklahoma,40005,1,0 +2020-04-30,Atoka,Oklahoma,40005,1,0 +2020-05-01,Atoka,Oklahoma,40005,1,0 +2020-05-02,Atoka,Oklahoma,40005,1,0 +2020-05-03,Atoka,Oklahoma,40005,1,0 +2020-05-04,Atoka,Oklahoma,40005,1,0 +2020-05-05,Atoka,Oklahoma,40005,1,0 +2020-05-06,Atoka,Oklahoma,40005,1,0 +2020-05-07,Atoka,Oklahoma,40005,1,0 +2020-05-08,Atoka,Oklahoma,40005,1,0 +2020-05-09,Atoka,Oklahoma,40005,1,0 +2020-05-10,Atoka,Oklahoma,40005,1,0 +2020-05-11,Atoka,Oklahoma,40005,1,0 +2020-05-12,Atoka,Oklahoma,40005,2,0 +2020-05-13,Atoka,Oklahoma,40005,1,0 +2020-05-14,Atoka,Oklahoma,40005,1,0 +2020-05-15,Atoka,Oklahoma,40005,1,0 +2020-05-16,Atoka,Oklahoma,40005,1,0 +2020-05-17,Atoka,Oklahoma,40005,1,0 +2020-05-18,Atoka,Oklahoma,40005,1,0 +2020-05-19,Atoka,Oklahoma,40005,1,0 +2020-05-20,Atoka,Oklahoma,40005,1,0 +2020-05-21,Atoka,Oklahoma,40005,1,0 +2020-05-22,Atoka,Oklahoma,40005,1,0 +2020-05-23,Atoka,Oklahoma,40005,1,0 +2020-05-24,Atoka,Oklahoma,40005,1,0 +2020-05-25,Atoka,Oklahoma,40005,1,0 +2020-05-26,Atoka,Oklahoma,40005,1,0 +2020-05-27,Atoka,Oklahoma,40005,2,0 +2020-05-28,Atoka,Oklahoma,40005,2,0 +2020-05-29,Atoka,Oklahoma,40005,3,0 +2020-05-30,Atoka,Oklahoma,40005,3,0 +2020-05-31,Atoka,Oklahoma,40005,3,0 +2020-06-01,Atoka,Oklahoma,40005,4,0 +2020-06-02,Atoka,Oklahoma,40005,4,0 +2020-06-03,Atoka,Oklahoma,40005,4,0 +2020-06-04,Atoka,Oklahoma,40005,4,0 +2020-06-05,Atoka,Oklahoma,40005,4,0 +2020-06-06,Atoka,Oklahoma,40005,4,0 +2020-06-07,Atoka,Oklahoma,40005,4,0 +2020-06-08,Atoka,Oklahoma,40005,4,0 +2020-06-09,Atoka,Oklahoma,40005,5,0 +2020-06-10,Atoka,Oklahoma,40005,5,0 +2020-06-11,Atoka,Oklahoma,40005,5,0 +2020-06-12,Atoka,Oklahoma,40005,8,0 +2020-06-13,Atoka,Oklahoma,40005,8,0 +2020-06-14,Atoka,Oklahoma,40005,8,0 +2020-06-15,Atoka,Oklahoma,40005,8,0 +2020-06-16,Atoka,Oklahoma,40005,9,0 +2020-06-17,Atoka,Oklahoma,40005,9,0 +2020-06-18,Atoka,Oklahoma,40005,11,0 +2020-06-19,Atoka,Oklahoma,40005,11,0 +2020-06-20,Atoka,Oklahoma,40005,13,0 +2020-06-21,Atoka,Oklahoma,40005,13,0 +2020-06-22,Atoka,Oklahoma,40005,14,0 +2020-06-23,Atoka,Oklahoma,40005,14,0 +2020-06-24,Atoka,Oklahoma,40005,14,0 +2020-06-25,Atoka,Oklahoma,40005,14,0 +2020-06-26,Atoka,Oklahoma,40005,16,0 +2020-06-27,Atoka,Oklahoma,40005,18,0 +2020-06-28,Atoka,Oklahoma,40005,19,0 +2020-06-29,Atoka,Oklahoma,40005,19,0 +2020-06-30,Atoka,Oklahoma,40005,22,0 +2020-07-01,Atoka,Oklahoma,40005,20,0 +2020-07-02,Atoka,Oklahoma,40005,22,0 +2020-07-03,Atoka,Oklahoma,40005,24,0 +2020-07-04,Atoka,Oklahoma,40005,25,0 +2020-07-05,Atoka,Oklahoma,40005,25,0 +2020-07-06,Atoka,Oklahoma,40005,27,0 +2020-07-07,Atoka,Oklahoma,40005,29,0 +2020-07-08,Atoka,Oklahoma,40005,30,0 +2020-07-09,Atoka,Oklahoma,40005,31,0 +2020-04-07,Beaver,Oklahoma,40007,1,0 +2020-04-08,Beaver,Oklahoma,40007,1,0 +2020-04-09,Beaver,Oklahoma,40007,1,0 +2020-04-10,Beaver,Oklahoma,40007,1,0 +2020-04-11,Beaver,Oklahoma,40007,1,0 +2020-04-12,Beaver,Oklahoma,40007,1,0 +2020-04-13,Beaver,Oklahoma,40007,1,0 +2020-04-14,Beaver,Oklahoma,40007,1,0 +2020-04-15,Beaver,Oklahoma,40007,1,0 +2020-04-16,Beaver,Oklahoma,40007,1,0 +2020-04-17,Beaver,Oklahoma,40007,1,0 +2020-04-18,Beaver,Oklahoma,40007,2,0 +2020-04-19,Beaver,Oklahoma,40007,1,0 +2020-04-20,Beaver,Oklahoma,40007,1,0 +2020-04-21,Beaver,Oklahoma,40007,1,0 +2020-04-22,Beaver,Oklahoma,40007,1,0 +2020-04-23,Beaver,Oklahoma,40007,1,0 +2020-04-24,Beaver,Oklahoma,40007,2,0 +2020-04-25,Beaver,Oklahoma,40007,2,0 +2020-04-26,Beaver,Oklahoma,40007,3,0 +2020-04-27,Beaver,Oklahoma,40007,3,0 +2020-04-28,Beaver,Oklahoma,40007,5,0 +2020-04-29,Beaver,Oklahoma,40007,5,0 +2020-04-30,Beaver,Oklahoma,40007,8,0 +2020-05-01,Beaver,Oklahoma,40007,9,0 +2020-05-02,Beaver,Oklahoma,40007,13,0 +2020-05-03,Beaver,Oklahoma,40007,14,0 +2020-05-04,Beaver,Oklahoma,40007,14,0 +2020-05-05,Beaver,Oklahoma,40007,15,0 +2020-05-06,Beaver,Oklahoma,40007,15,0 +2020-05-07,Beaver,Oklahoma,40007,17,0 +2020-05-08,Beaver,Oklahoma,40007,19,0 +2020-05-09,Beaver,Oklahoma,40007,20,0 +2020-05-10,Beaver,Oklahoma,40007,20,0 +2020-05-11,Beaver,Oklahoma,40007,20,0 +2020-05-12,Beaver,Oklahoma,40007,19,0 +2020-05-13,Beaver,Oklahoma,40007,20,0 +2020-05-14,Beaver,Oklahoma,40007,20,0 +2020-05-15,Beaver,Oklahoma,40007,22,0 +2020-05-16,Beaver,Oklahoma,40007,23,0 +2020-05-17,Beaver,Oklahoma,40007,23,0 +2020-05-18,Beaver,Oklahoma,40007,23,0 +2020-05-19,Beaver,Oklahoma,40007,23,0 +2020-05-20,Beaver,Oklahoma,40007,23,0 +2020-05-21,Beaver,Oklahoma,40007,24,0 +2020-05-22,Beaver,Oklahoma,40007,24,0 +2020-05-23,Beaver,Oklahoma,40007,24,0 +2020-05-24,Beaver,Oklahoma,40007,24,0 +2020-05-25,Beaver,Oklahoma,40007,24,0 +2020-05-26,Beaver,Oklahoma,40007,24,0 +2020-05-27,Beaver,Oklahoma,40007,24,0 +2020-05-28,Beaver,Oklahoma,40007,24,0 +2020-05-29,Beaver,Oklahoma,40007,24,0 +2020-05-30,Beaver,Oklahoma,40007,24,0 +2020-05-31,Beaver,Oklahoma,40007,24,0 +2020-06-01,Beaver,Oklahoma,40007,24,0 +2020-06-02,Beaver,Oklahoma,40007,24,0 +2020-06-03,Beaver,Oklahoma,40007,24,0 +2020-06-04,Beaver,Oklahoma,40007,24,0 +2020-06-05,Beaver,Oklahoma,40007,24,0 +2020-06-06,Beaver,Oklahoma,40007,24,0 +2020-06-07,Beaver,Oklahoma,40007,27,0 +2020-06-08,Beaver,Oklahoma,40007,27,0 +2020-06-09,Beaver,Oklahoma,40007,27,0 +2020-06-10,Beaver,Oklahoma,40007,27,0 +2020-06-11,Beaver,Oklahoma,40007,29,0 +2020-06-12,Beaver,Oklahoma,40007,30,0 +2020-06-13,Beaver,Oklahoma,40007,30,0 +2020-06-14,Beaver,Oklahoma,40007,30,0 +2020-06-15,Beaver,Oklahoma,40007,30,0 +2020-06-16,Beaver,Oklahoma,40007,30,0 +2020-06-17,Beaver,Oklahoma,40007,30,0 +2020-06-18,Beaver,Oklahoma,40007,30,0 +2020-06-19,Beaver,Oklahoma,40007,30,0 +2020-06-20,Beaver,Oklahoma,40007,30,0 +2020-06-21,Beaver,Oklahoma,40007,30,0 +2020-06-22,Beaver,Oklahoma,40007,30,0 +2020-06-23,Beaver,Oklahoma,40007,30,0 +2020-06-24,Beaver,Oklahoma,40007,30,0 +2020-06-25,Beaver,Oklahoma,40007,30,0 +2020-06-26,Beaver,Oklahoma,40007,30,0 +2020-06-27,Beaver,Oklahoma,40007,30,0 +2020-06-28,Beaver,Oklahoma,40007,30,0 +2020-06-29,Beaver,Oklahoma,40007,30,0 +2020-06-30,Beaver,Oklahoma,40007,30,0 +2020-07-01,Beaver,Oklahoma,40007,30,0 +2020-07-02,Beaver,Oklahoma,40007,30,0 +2020-07-03,Beaver,Oklahoma,40007,30,0 +2020-07-04,Beaver,Oklahoma,40007,32,0 +2020-07-05,Beaver,Oklahoma,40007,32,0 +2020-07-06,Beaver,Oklahoma,40007,32,0 +2020-07-07,Beaver,Oklahoma,40007,32,0 +2020-07-08,Beaver,Oklahoma,40007,32,0 +2020-07-09,Beaver,Oklahoma,40007,32,0 +2020-03-30,Beckham,Oklahoma,40009,1,0 +2020-03-31,Beckham,Oklahoma,40009,1,0 +2020-04-01,Beckham,Oklahoma,40009,1,0 +2020-04-02,Beckham,Oklahoma,40009,1,0 +2020-04-03,Beckham,Oklahoma,40009,1,0 +2020-04-04,Beckham,Oklahoma,40009,1,0 +2020-04-05,Beckham,Oklahoma,40009,1,0 +2020-04-06,Beckham,Oklahoma,40009,1,0 +2020-04-07,Beckham,Oklahoma,40009,1,0 +2020-04-08,Beckham,Oklahoma,40009,1,0 +2020-04-09,Beckham,Oklahoma,40009,1,0 +2020-04-10,Beckham,Oklahoma,40009,1,0 +2020-04-11,Beckham,Oklahoma,40009,1,0 +2020-04-12,Beckham,Oklahoma,40009,1,0 +2020-04-13,Beckham,Oklahoma,40009,1,0 +2020-04-14,Beckham,Oklahoma,40009,1,0 +2020-04-15,Beckham,Oklahoma,40009,2,0 +2020-04-16,Beckham,Oklahoma,40009,2,0 +2020-04-17,Beckham,Oklahoma,40009,2,0 +2020-04-18,Beckham,Oklahoma,40009,2,0 +2020-04-19,Beckham,Oklahoma,40009,2,0 +2020-04-20,Beckham,Oklahoma,40009,2,0 +2020-04-21,Beckham,Oklahoma,40009,2,0 +2020-04-22,Beckham,Oklahoma,40009,2,0 +2020-04-23,Beckham,Oklahoma,40009,2,0 +2020-04-24,Beckham,Oklahoma,40009,2,0 +2020-04-25,Beckham,Oklahoma,40009,3,0 +2020-04-26,Beckham,Oklahoma,40009,5,0 +2020-04-27,Beckham,Oklahoma,40009,5,0 +2020-04-28,Beckham,Oklahoma,40009,5,0 +2020-04-29,Beckham,Oklahoma,40009,5,0 +2020-04-30,Beckham,Oklahoma,40009,5,0 +2020-05-01,Beckham,Oklahoma,40009,5,0 +2020-05-02,Beckham,Oklahoma,40009,5,0 +2020-05-03,Beckham,Oklahoma,40009,5,0 +2020-05-04,Beckham,Oklahoma,40009,6,0 +2020-05-05,Beckham,Oklahoma,40009,6,0 +2020-05-06,Beckham,Oklahoma,40009,6,0 +2020-05-07,Beckham,Oklahoma,40009,6,0 +2020-05-08,Beckham,Oklahoma,40009,6,0 +2020-05-09,Beckham,Oklahoma,40009,6,0 +2020-05-10,Beckham,Oklahoma,40009,6,0 +2020-05-11,Beckham,Oklahoma,40009,6,0 +2020-05-12,Beckham,Oklahoma,40009,6,0 +2020-05-13,Beckham,Oklahoma,40009,6,0 +2020-05-14,Beckham,Oklahoma,40009,6,0 +2020-05-15,Beckham,Oklahoma,40009,6,0 +2020-05-16,Beckham,Oklahoma,40009,6,0 +2020-05-17,Beckham,Oklahoma,40009,6,0 +2020-05-18,Beckham,Oklahoma,40009,6,0 +2020-05-19,Beckham,Oklahoma,40009,6,0 +2020-05-20,Beckham,Oklahoma,40009,6,0 +2020-05-21,Beckham,Oklahoma,40009,6,0 +2020-05-22,Beckham,Oklahoma,40009,6,0 +2020-05-23,Beckham,Oklahoma,40009,6,0 +2020-05-24,Beckham,Oklahoma,40009,6,0 +2020-05-25,Beckham,Oklahoma,40009,6,0 +2020-05-26,Beckham,Oklahoma,40009,6,0 +2020-05-27,Beckham,Oklahoma,40009,6,0 +2020-05-28,Beckham,Oklahoma,40009,6,0 +2020-05-29,Beckham,Oklahoma,40009,6,0 +2020-05-30,Beckham,Oklahoma,40009,6,0 +2020-05-31,Beckham,Oklahoma,40009,9,0 +2020-06-01,Beckham,Oklahoma,40009,10,0 +2020-06-02,Beckham,Oklahoma,40009,10,0 +2020-06-03,Beckham,Oklahoma,40009,7,0 +2020-06-04,Beckham,Oklahoma,40009,7,0 +2020-06-05,Beckham,Oklahoma,40009,7,0 +2020-06-06,Beckham,Oklahoma,40009,7,0 +2020-06-07,Beckham,Oklahoma,40009,7,0 +2020-06-08,Beckham,Oklahoma,40009,7,0 +2020-06-09,Beckham,Oklahoma,40009,7,0 +2020-06-10,Beckham,Oklahoma,40009,7,0 +2020-06-11,Beckham,Oklahoma,40009,7,0 +2020-06-12,Beckham,Oklahoma,40009,7,0 +2020-06-13,Beckham,Oklahoma,40009,7,0 +2020-06-14,Beckham,Oklahoma,40009,8,0 +2020-06-15,Beckham,Oklahoma,40009,8,0 +2020-06-16,Beckham,Oklahoma,40009,8,0 +2020-06-17,Beckham,Oklahoma,40009,8,0 +2020-06-18,Beckham,Oklahoma,40009,8,0 +2020-06-19,Beckham,Oklahoma,40009,8,0 +2020-06-20,Beckham,Oklahoma,40009,8,0 +2020-06-21,Beckham,Oklahoma,40009,8,0 +2020-06-22,Beckham,Oklahoma,40009,9,0 +2020-06-23,Beckham,Oklahoma,40009,9,0 +2020-06-24,Beckham,Oklahoma,40009,11,0 +2020-06-25,Beckham,Oklahoma,40009,12,0 +2020-06-26,Beckham,Oklahoma,40009,11,0 +2020-06-27,Beckham,Oklahoma,40009,11,0 +2020-06-28,Beckham,Oklahoma,40009,11,0 +2020-06-29,Beckham,Oklahoma,40009,11,0 +2020-06-30,Beckham,Oklahoma,40009,11,0 +2020-07-01,Beckham,Oklahoma,40009,11,0 +2020-07-02,Beckham,Oklahoma,40009,11,0 +2020-07-03,Beckham,Oklahoma,40009,11,0 +2020-07-04,Beckham,Oklahoma,40009,11,0 +2020-07-05,Beckham,Oklahoma,40009,11,0 +2020-07-06,Beckham,Oklahoma,40009,11,0 +2020-07-07,Beckham,Oklahoma,40009,13,0 +2020-07-08,Beckham,Oklahoma,40009,13,0 +2020-07-09,Beckham,Oklahoma,40009,13,0 +2020-05-04,Blaine,Oklahoma,40011,1,0 +2020-05-05,Blaine,Oklahoma,40011,2,0 +2020-05-06,Blaine,Oklahoma,40011,2,0 +2020-05-07,Blaine,Oklahoma,40011,2,0 +2020-05-08,Blaine,Oklahoma,40011,2,0 +2020-05-09,Blaine,Oklahoma,40011,2,0 +2020-05-10,Blaine,Oklahoma,40011,3,0 +2020-05-11,Blaine,Oklahoma,40011,3,0 +2020-05-12,Blaine,Oklahoma,40011,2,0 +2020-05-13,Blaine,Oklahoma,40011,1,0 +2020-05-14,Blaine,Oklahoma,40011,1,0 +2020-05-15,Blaine,Oklahoma,40011,2,0 +2020-05-16,Blaine,Oklahoma,40011,3,0 +2020-05-17,Blaine,Oklahoma,40011,3,0 +2020-05-18,Blaine,Oklahoma,40011,3,0 +2020-05-19,Blaine,Oklahoma,40011,3,0 +2020-05-20,Blaine,Oklahoma,40011,3,0 +2020-05-21,Blaine,Oklahoma,40011,4,0 +2020-05-22,Blaine,Oklahoma,40011,4,0 +2020-05-23,Blaine,Oklahoma,40011,4,0 +2020-05-24,Blaine,Oklahoma,40011,4,0 +2020-05-25,Blaine,Oklahoma,40011,5,0 +2020-05-26,Blaine,Oklahoma,40011,6,0 +2020-05-27,Blaine,Oklahoma,40011,6,0 +2020-05-28,Blaine,Oklahoma,40011,6,0 +2020-05-29,Blaine,Oklahoma,40011,6,0 +2020-05-30,Blaine,Oklahoma,40011,6,0 +2020-05-31,Blaine,Oklahoma,40011,6,0 +2020-06-01,Blaine,Oklahoma,40011,7,0 +2020-06-02,Blaine,Oklahoma,40011,7,0 +2020-06-03,Blaine,Oklahoma,40011,8,0 +2020-06-04,Blaine,Oklahoma,40011,8,0 +2020-06-05,Blaine,Oklahoma,40011,9,0 +2020-06-06,Blaine,Oklahoma,40011,9,0 +2020-06-07,Blaine,Oklahoma,40011,9,0 +2020-06-08,Blaine,Oklahoma,40011,9,0 +2020-06-09,Blaine,Oklahoma,40011,10,0 +2020-06-10,Blaine,Oklahoma,40011,9,0 +2020-06-11,Blaine,Oklahoma,40011,9,0 +2020-06-12,Blaine,Oklahoma,40011,9,0 +2020-06-13,Blaine,Oklahoma,40011,9,0 +2020-06-14,Blaine,Oklahoma,40011,10,0 +2020-06-15,Blaine,Oklahoma,40011,12,0 +2020-06-16,Blaine,Oklahoma,40011,11,0 +2020-06-17,Blaine,Oklahoma,40011,11,0 +2020-06-18,Blaine,Oklahoma,40011,12,0 +2020-06-19,Blaine,Oklahoma,40011,13,0 +2020-06-20,Blaine,Oklahoma,40011,14,0 +2020-06-21,Blaine,Oklahoma,40011,14,0 +2020-06-22,Blaine,Oklahoma,40011,14,0 +2020-06-23,Blaine,Oklahoma,40011,14,0 +2020-06-24,Blaine,Oklahoma,40011,14,0 +2020-06-25,Blaine,Oklahoma,40011,14,0 +2020-06-26,Blaine,Oklahoma,40011,15,0 +2020-06-27,Blaine,Oklahoma,40011,14,0 +2020-06-28,Blaine,Oklahoma,40011,14,0 +2020-06-29,Blaine,Oklahoma,40011,14,0 +2020-06-30,Blaine,Oklahoma,40011,14,0 +2020-07-01,Blaine,Oklahoma,40011,14,0 +2020-07-02,Blaine,Oklahoma,40011,14,0 +2020-07-03,Blaine,Oklahoma,40011,14,0 +2020-07-04,Blaine,Oklahoma,40011,18,0 +2020-07-05,Blaine,Oklahoma,40011,17,0 +2020-07-06,Blaine,Oklahoma,40011,17,0 +2020-07-07,Blaine,Oklahoma,40011,18,0 +2020-07-08,Blaine,Oklahoma,40011,18,0 +2020-07-09,Blaine,Oklahoma,40011,18,0 +2020-03-25,Bryan,Oklahoma,40013,1,0 +2020-03-26,Bryan,Oklahoma,40013,1,0 +2020-03-27,Bryan,Oklahoma,40013,1,0 +2020-03-28,Bryan,Oklahoma,40013,1,0 +2020-03-29,Bryan,Oklahoma,40013,1,0 +2020-03-30,Bryan,Oklahoma,40013,1,0 +2020-03-31,Bryan,Oklahoma,40013,1,0 +2020-04-01,Bryan,Oklahoma,40013,1,0 +2020-04-02,Bryan,Oklahoma,40013,2,0 +2020-04-03,Bryan,Oklahoma,40013,3,0 +2020-04-04,Bryan,Oklahoma,40013,3,0 +2020-04-05,Bryan,Oklahoma,40013,3,0 +2020-04-06,Bryan,Oklahoma,40013,3,0 +2020-04-07,Bryan,Oklahoma,40013,3,0 +2020-04-08,Bryan,Oklahoma,40013,3,0 +2020-04-09,Bryan,Oklahoma,40013,3,0 +2020-04-10,Bryan,Oklahoma,40013,3,0 +2020-04-11,Bryan,Oklahoma,40013,3,0 +2020-04-12,Bryan,Oklahoma,40013,3,0 +2020-04-13,Bryan,Oklahoma,40013,4,0 +2020-04-14,Bryan,Oklahoma,40013,4,0 +2020-04-15,Bryan,Oklahoma,40013,5,0 +2020-04-16,Bryan,Oklahoma,40013,5,0 +2020-04-17,Bryan,Oklahoma,40013,5,0 +2020-04-18,Bryan,Oklahoma,40013,5,0 +2020-04-19,Bryan,Oklahoma,40013,5,0 +2020-04-20,Bryan,Oklahoma,40013,5,0 +2020-04-21,Bryan,Oklahoma,40013,6,1 +2020-04-22,Bryan,Oklahoma,40013,6,1 +2020-04-23,Bryan,Oklahoma,40013,6,1 +2020-04-24,Bryan,Oklahoma,40013,6,1 +2020-04-25,Bryan,Oklahoma,40013,6,1 +2020-04-26,Bryan,Oklahoma,40013,6,1 +2020-04-27,Bryan,Oklahoma,40013,6,1 +2020-04-28,Bryan,Oklahoma,40013,8,1 +2020-04-29,Bryan,Oklahoma,40013,8,1 +2020-04-30,Bryan,Oklahoma,40013,8,1 +2020-05-01,Bryan,Oklahoma,40013,8,1 +2020-05-02,Bryan,Oklahoma,40013,9,1 +2020-05-03,Bryan,Oklahoma,40013,9,1 +2020-05-04,Bryan,Oklahoma,40013,9,1 +2020-05-05,Bryan,Oklahoma,40013,9,1 +2020-05-06,Bryan,Oklahoma,40013,12,1 +2020-05-07,Bryan,Oklahoma,40013,12,1 +2020-05-08,Bryan,Oklahoma,40013,12,1 +2020-05-09,Bryan,Oklahoma,40013,12,1 +2020-05-10,Bryan,Oklahoma,40013,12,1 +2020-05-11,Bryan,Oklahoma,40013,12,1 +2020-05-12,Bryan,Oklahoma,40013,12,1 +2020-05-13,Bryan,Oklahoma,40013,12,1 +2020-05-14,Bryan,Oklahoma,40013,12,1 +2020-05-15,Bryan,Oklahoma,40013,12,1 +2020-05-16,Bryan,Oklahoma,40013,13,1 +2020-05-17,Bryan,Oklahoma,40013,14,1 +2020-05-18,Bryan,Oklahoma,40013,17,1 +2020-05-19,Bryan,Oklahoma,40013,19,1 +2020-05-20,Bryan,Oklahoma,40013,19,1 +2020-05-21,Bryan,Oklahoma,40013,19,1 +2020-05-22,Bryan,Oklahoma,40013,19,1 +2020-05-23,Bryan,Oklahoma,40013,21,1 +2020-05-24,Bryan,Oklahoma,40013,22,1 +2020-05-25,Bryan,Oklahoma,40013,22,1 +2020-05-26,Bryan,Oklahoma,40013,22,1 +2020-05-27,Bryan,Oklahoma,40013,23,1 +2020-05-28,Bryan,Oklahoma,40013,23,1 +2020-05-29,Bryan,Oklahoma,40013,24,1 +2020-05-30,Bryan,Oklahoma,40013,26,1 +2020-05-31,Bryan,Oklahoma,40013,26,1 +2020-06-01,Bryan,Oklahoma,40013,29,1 +2020-06-02,Bryan,Oklahoma,40013,31,1 +2020-06-03,Bryan,Oklahoma,40013,32,1 +2020-06-04,Bryan,Oklahoma,40013,33,1 +2020-06-05,Bryan,Oklahoma,40013,35,1 +2020-06-06,Bryan,Oklahoma,40013,35,1 +2020-06-07,Bryan,Oklahoma,40013,36,1 +2020-06-08,Bryan,Oklahoma,40013,36,1 +2020-06-09,Bryan,Oklahoma,40013,40,1 +2020-06-10,Bryan,Oklahoma,40013,46,1 +2020-06-11,Bryan,Oklahoma,40013,47,1 +2020-06-12,Bryan,Oklahoma,40013,49,1 +2020-06-13,Bryan,Oklahoma,40013,48,1 +2020-06-14,Bryan,Oklahoma,40013,48,1 +2020-06-15,Bryan,Oklahoma,40013,48,1 +2020-06-16,Bryan,Oklahoma,40013,51,1 +2020-06-17,Bryan,Oklahoma,40013,57,1 +2020-06-18,Bryan,Oklahoma,40013,64,1 +2020-06-19,Bryan,Oklahoma,40013,68,1 +2020-06-20,Bryan,Oklahoma,40013,69,1 +2020-06-21,Bryan,Oklahoma,40013,71,1 +2020-06-22,Bryan,Oklahoma,40013,72,1 +2020-06-23,Bryan,Oklahoma,40013,72,1 +2020-06-24,Bryan,Oklahoma,40013,75,1 +2020-06-25,Bryan,Oklahoma,40013,78,1 +2020-06-26,Bryan,Oklahoma,40013,83,1 +2020-06-27,Bryan,Oklahoma,40013,85,1 +2020-06-28,Bryan,Oklahoma,40013,85,1 +2020-06-29,Bryan,Oklahoma,40013,86,1 +2020-06-30,Bryan,Oklahoma,40013,94,1 +2020-07-01,Bryan,Oklahoma,40013,100,1 +2020-07-02,Bryan,Oklahoma,40013,108,1 +2020-07-03,Bryan,Oklahoma,40013,113,1 +2020-07-04,Bryan,Oklahoma,40013,123,1 +2020-07-05,Bryan,Oklahoma,40013,124,1 +2020-07-06,Bryan,Oklahoma,40013,134,1 +2020-07-07,Bryan,Oklahoma,40013,136,1 +2020-07-08,Bryan,Oklahoma,40013,146,1 +2020-07-09,Bryan,Oklahoma,40013,154,1 +2020-03-27,Caddo,Oklahoma,40015,1,0 +2020-03-28,Caddo,Oklahoma,40015,1,0 +2020-03-29,Caddo,Oklahoma,40015,1,0 +2020-03-30,Caddo,Oklahoma,40015,1,0 +2020-03-31,Caddo,Oklahoma,40015,1,0 +2020-04-01,Caddo,Oklahoma,40015,1,0 +2020-04-02,Caddo,Oklahoma,40015,2,0 +2020-04-03,Caddo,Oklahoma,40015,2,0 +2020-04-04,Caddo,Oklahoma,40015,4,0 +2020-04-05,Caddo,Oklahoma,40015,4,0 +2020-04-06,Caddo,Oklahoma,40015,5,0 +2020-04-07,Caddo,Oklahoma,40015,6,0 +2020-04-08,Caddo,Oklahoma,40015,6,0 +2020-04-09,Caddo,Oklahoma,40015,6,0 +2020-04-10,Caddo,Oklahoma,40015,8,0 +2020-04-11,Caddo,Oklahoma,40015,9,0 +2020-04-12,Caddo,Oklahoma,40015,9,0 +2020-04-13,Caddo,Oklahoma,40015,9,0 +2020-04-14,Caddo,Oklahoma,40015,10,0 +2020-04-15,Caddo,Oklahoma,40015,35,1 +2020-04-16,Caddo,Oklahoma,40015,48,2 +2020-04-17,Caddo,Oklahoma,40015,51,2 +2020-04-18,Caddo,Oklahoma,40015,51,2 +2020-04-19,Caddo,Oklahoma,40015,51,2 +2020-04-20,Caddo,Oklahoma,40015,52,3 +2020-04-21,Caddo,Oklahoma,40015,52,3 +2020-04-22,Caddo,Oklahoma,40015,53,4 +2020-04-23,Caddo,Oklahoma,40015,53,5 +2020-04-24,Caddo,Oklahoma,40015,53,6 +2020-04-25,Caddo,Oklahoma,40015,53,6 +2020-04-26,Caddo,Oklahoma,40015,58,6 +2020-04-27,Caddo,Oklahoma,40015,58,6 +2020-04-28,Caddo,Oklahoma,40015,61,7 +2020-04-29,Caddo,Oklahoma,40015,61,7 +2020-04-30,Caddo,Oklahoma,40015,62,7 +2020-05-01,Caddo,Oklahoma,40015,64,7 +2020-05-02,Caddo,Oklahoma,40015,64,8 +2020-05-03,Caddo,Oklahoma,40015,69,8 +2020-05-04,Caddo,Oklahoma,40015,72,8 +2020-05-05,Caddo,Oklahoma,40015,77,8 +2020-05-06,Caddo,Oklahoma,40015,77,8 +2020-05-07,Caddo,Oklahoma,40015,89,8 +2020-05-08,Caddo,Oklahoma,40015,97,9 +2020-05-09,Caddo,Oklahoma,40015,100,9 +2020-05-10,Caddo,Oklahoma,40015,108,9 +2020-05-11,Caddo,Oklahoma,40015,108,9 +2020-05-12,Caddo,Oklahoma,40015,109,9 +2020-05-13,Caddo,Oklahoma,40015,110,9 +2020-05-14,Caddo,Oklahoma,40015,110,9 +2020-05-15,Caddo,Oklahoma,40015,111,9 +2020-05-16,Caddo,Oklahoma,40015,112,10 +2020-05-17,Caddo,Oklahoma,40015,114,10 +2020-05-18,Caddo,Oklahoma,40015,120,10 +2020-05-19,Caddo,Oklahoma,40015,122,10 +2020-05-20,Caddo,Oklahoma,40015,126,10 +2020-05-21,Caddo,Oklahoma,40015,132,10 +2020-05-22,Caddo,Oklahoma,40015,132,10 +2020-05-23,Caddo,Oklahoma,40015,136,10 +2020-05-24,Caddo,Oklahoma,40015,136,10 +2020-05-25,Caddo,Oklahoma,40015,146,10 +2020-05-26,Caddo,Oklahoma,40015,150,10 +2020-05-27,Caddo,Oklahoma,40015,153,10 +2020-05-28,Caddo,Oklahoma,40015,154,10 +2020-05-29,Caddo,Oklahoma,40015,155,10 +2020-05-30,Caddo,Oklahoma,40015,158,10 +2020-05-31,Caddo,Oklahoma,40015,160,10 +2020-06-01,Caddo,Oklahoma,40015,162,10 +2020-06-02,Caddo,Oklahoma,40015,164,10 +2020-06-03,Caddo,Oklahoma,40015,167,10 +2020-06-04,Caddo,Oklahoma,40015,168,10 +2020-06-05,Caddo,Oklahoma,40015,168,10 +2020-06-06,Caddo,Oklahoma,40015,168,10 +2020-06-07,Caddo,Oklahoma,40015,170,10 +2020-06-08,Caddo,Oklahoma,40015,170,10 +2020-06-09,Caddo,Oklahoma,40015,174,10 +2020-06-10,Caddo,Oklahoma,40015,173,10 +2020-06-11,Caddo,Oklahoma,40015,173,10 +2020-06-12,Caddo,Oklahoma,40015,173,10 +2020-06-13,Caddo,Oklahoma,40015,175,10 +2020-06-14,Caddo,Oklahoma,40015,175,10 +2020-06-15,Caddo,Oklahoma,40015,176,10 +2020-06-16,Caddo,Oklahoma,40015,176,10 +2020-06-17,Caddo,Oklahoma,40015,178,10 +2020-06-18,Caddo,Oklahoma,40015,181,10 +2020-06-19,Caddo,Oklahoma,40015,181,10 +2020-06-20,Caddo,Oklahoma,40015,180,10 +2020-06-21,Caddo,Oklahoma,40015,180,10 +2020-06-22,Caddo,Oklahoma,40015,181,10 +2020-06-23,Caddo,Oklahoma,40015,181,10 +2020-06-24,Caddo,Oklahoma,40015,182,10 +2020-06-25,Caddo,Oklahoma,40015,182,10 +2020-06-26,Caddo,Oklahoma,40015,184,10 +2020-06-27,Caddo,Oklahoma,40015,184,11 +2020-06-28,Caddo,Oklahoma,40015,184,11 +2020-06-29,Caddo,Oklahoma,40015,185,11 +2020-06-30,Caddo,Oklahoma,40015,186,11 +2020-07-01,Caddo,Oklahoma,40015,189,11 +2020-07-02,Caddo,Oklahoma,40015,190,11 +2020-07-03,Caddo,Oklahoma,40015,191,11 +2020-07-04,Caddo,Oklahoma,40015,193,11 +2020-07-05,Caddo,Oklahoma,40015,195,11 +2020-07-06,Caddo,Oklahoma,40015,197,11 +2020-07-07,Caddo,Oklahoma,40015,200,11 +2020-07-08,Caddo,Oklahoma,40015,200,11 +2020-07-09,Caddo,Oklahoma,40015,202,11 +2020-03-16,Canadian,Oklahoma,40017,1,0 +2020-03-17,Canadian,Oklahoma,40017,2,0 +2020-03-18,Canadian,Oklahoma,40017,2,0 +2020-03-19,Canadian,Oklahoma,40017,2,0 +2020-03-20,Canadian,Oklahoma,40017,2,0 +2020-03-21,Canadian,Oklahoma,40017,2,0 +2020-03-22,Canadian,Oklahoma,40017,2,0 +2020-03-23,Canadian,Oklahoma,40017,2,0 +2020-03-24,Canadian,Oklahoma,40017,4,0 +2020-03-25,Canadian,Oklahoma,40017,5,0 +2020-03-26,Canadian,Oklahoma,40017,6,0 +2020-03-27,Canadian,Oklahoma,40017,11,0 +2020-03-28,Canadian,Oklahoma,40017,11,0 +2020-03-29,Canadian,Oklahoma,40017,12,0 +2020-03-30,Canadian,Oklahoma,40017,15,0 +2020-03-31,Canadian,Oklahoma,40017,19,1 +2020-04-01,Canadian,Oklahoma,40017,24,1 +2020-04-02,Canadian,Oklahoma,40017,28,1 +2020-04-03,Canadian,Oklahoma,40017,29,1 +2020-04-04,Canadian,Oklahoma,40017,32,1 +2020-04-05,Canadian,Oklahoma,40017,33,1 +2020-04-06,Canadian,Oklahoma,40017,35,1 +2020-04-07,Canadian,Oklahoma,40017,40,1 +2020-04-08,Canadian,Oklahoma,40017,40,1 +2020-04-09,Canadian,Oklahoma,40017,48,1 +2020-04-10,Canadian,Oklahoma,40017,52,1 +2020-04-11,Canadian,Oklahoma,40017,56,1 +2020-04-12,Canadian,Oklahoma,40017,56,1 +2020-04-13,Canadian,Oklahoma,40017,57,3 +2020-04-14,Canadian,Oklahoma,40017,62,3 +2020-04-15,Canadian,Oklahoma,40017,63,3 +2020-04-16,Canadian,Oklahoma,40017,65,3 +2020-04-17,Canadian,Oklahoma,40017,69,3 +2020-04-18,Canadian,Oklahoma,40017,72,3 +2020-04-19,Canadian,Oklahoma,40017,73,3 +2020-04-20,Canadian,Oklahoma,40017,75,3 +2020-04-21,Canadian,Oklahoma,40017,76,3 +2020-04-22,Canadian,Oklahoma,40017,82,3 +2020-04-23,Canadian,Oklahoma,40017,86,3 +2020-04-24,Canadian,Oklahoma,40017,88,3 +2020-04-25,Canadian,Oklahoma,40017,90,3 +2020-04-26,Canadian,Oklahoma,40017,91,3 +2020-04-27,Canadian,Oklahoma,40017,91,3 +2020-04-28,Canadian,Oklahoma,40017,96,3 +2020-04-29,Canadian,Oklahoma,40017,97,3 +2020-04-30,Canadian,Oklahoma,40017,98,3 +2020-05-01,Canadian,Oklahoma,40017,98,3 +2020-05-02,Canadian,Oklahoma,40017,98,3 +2020-05-03,Canadian,Oklahoma,40017,100,3 +2020-05-04,Canadian,Oklahoma,40017,102,3 +2020-05-05,Canadian,Oklahoma,40017,103,3 +2020-05-06,Canadian,Oklahoma,40017,103,3 +2020-05-07,Canadian,Oklahoma,40017,107,3 +2020-05-08,Canadian,Oklahoma,40017,107,3 +2020-05-09,Canadian,Oklahoma,40017,110,3 +2020-05-10,Canadian,Oklahoma,40017,111,3 +2020-05-11,Canadian,Oklahoma,40017,111,3 +2020-05-12,Canadian,Oklahoma,40017,114,3 +2020-05-13,Canadian,Oklahoma,40017,115,3 +2020-05-14,Canadian,Oklahoma,40017,116,3 +2020-05-15,Canadian,Oklahoma,40017,116,3 +2020-05-16,Canadian,Oklahoma,40017,116,3 +2020-05-17,Canadian,Oklahoma,40017,117,3 +2020-05-18,Canadian,Oklahoma,40017,118,3 +2020-05-19,Canadian,Oklahoma,40017,120,3 +2020-05-20,Canadian,Oklahoma,40017,120,3 +2020-05-21,Canadian,Oklahoma,40017,122,3 +2020-05-22,Canadian,Oklahoma,40017,123,3 +2020-05-23,Canadian,Oklahoma,40017,124,3 +2020-05-24,Canadian,Oklahoma,40017,126,3 +2020-05-25,Canadian,Oklahoma,40017,128,3 +2020-05-26,Canadian,Oklahoma,40017,128,3 +2020-05-27,Canadian,Oklahoma,40017,128,3 +2020-05-28,Canadian,Oklahoma,40017,128,3 +2020-05-29,Canadian,Oklahoma,40017,129,3 +2020-05-30,Canadian,Oklahoma,40017,132,3 +2020-05-31,Canadian,Oklahoma,40017,133,3 +2020-06-01,Canadian,Oklahoma,40017,133,3 +2020-06-02,Canadian,Oklahoma,40017,133,3 +2020-06-03,Canadian,Oklahoma,40017,133,3 +2020-06-04,Canadian,Oklahoma,40017,137,3 +2020-06-05,Canadian,Oklahoma,40017,141,3 +2020-06-06,Canadian,Oklahoma,40017,141,3 +2020-06-07,Canadian,Oklahoma,40017,142,3 +2020-06-08,Canadian,Oklahoma,40017,142,3 +2020-06-09,Canadian,Oklahoma,40017,143,3 +2020-06-10,Canadian,Oklahoma,40017,144,3 +2020-06-11,Canadian,Oklahoma,40017,144,3 +2020-06-12,Canadian,Oklahoma,40017,146,3 +2020-06-13,Canadian,Oklahoma,40017,148,3 +2020-06-14,Canadian,Oklahoma,40017,150,3 +2020-06-15,Canadian,Oklahoma,40017,156,3 +2020-06-16,Canadian,Oklahoma,40017,160,3 +2020-06-17,Canadian,Oklahoma,40017,167,3 +2020-06-18,Canadian,Oklahoma,40017,175,3 +2020-06-19,Canadian,Oklahoma,40017,186,3 +2020-06-20,Canadian,Oklahoma,40017,192,3 +2020-06-21,Canadian,Oklahoma,40017,197,3 +2020-06-22,Canadian,Oklahoma,40017,200,3 +2020-06-23,Canadian,Oklahoma,40017,207,3 +2020-06-24,Canadian,Oklahoma,40017,218,3 +2020-06-25,Canadian,Oklahoma,40017,227,3 +2020-06-26,Canadian,Oklahoma,40017,238,3 +2020-06-27,Canadian,Oklahoma,40017,249,3 +2020-06-28,Canadian,Oklahoma,40017,258,3 +2020-06-29,Canadian,Oklahoma,40017,266,3 +2020-06-30,Canadian,Oklahoma,40017,280,3 +2020-07-01,Canadian,Oklahoma,40017,289,3 +2020-07-02,Canadian,Oklahoma,40017,293,3 +2020-07-03,Canadian,Oklahoma,40017,307,3 +2020-07-04,Canadian,Oklahoma,40017,325,3 +2020-07-05,Canadian,Oklahoma,40017,337,3 +2020-07-06,Canadian,Oklahoma,40017,360,3 +2020-07-07,Canadian,Oklahoma,40017,387,3 +2020-07-08,Canadian,Oklahoma,40017,409,3 +2020-07-09,Canadian,Oklahoma,40017,430,3 +2020-03-25,Carter,Oklahoma,40019,1,0 +2020-03-26,Carter,Oklahoma,40019,1,0 +2020-03-27,Carter,Oklahoma,40019,1,0 +2020-03-28,Carter,Oklahoma,40019,1,0 +2020-03-29,Carter,Oklahoma,40019,1,0 +2020-03-30,Carter,Oklahoma,40019,1,0 +2020-03-31,Carter,Oklahoma,40019,1,0 +2020-04-01,Carter,Oklahoma,40019,1,0 +2020-04-02,Carter,Oklahoma,40019,1,0 +2020-04-03,Carter,Oklahoma,40019,1,0 +2020-04-04,Carter,Oklahoma,40019,1,0 +2020-04-05,Carter,Oklahoma,40019,1,0 +2020-04-06,Carter,Oklahoma,40019,1,0 +2020-04-07,Carter,Oklahoma,40019,1,0 +2020-04-08,Carter,Oklahoma,40019,1,0 +2020-04-09,Carter,Oklahoma,40019,1,0 +2020-04-10,Carter,Oklahoma,40019,1,0 +2020-04-11,Carter,Oklahoma,40019,1,0 +2020-04-12,Carter,Oklahoma,40019,1,0 +2020-04-13,Carter,Oklahoma,40019,1,0 +2020-04-14,Carter,Oklahoma,40019,1,0 +2020-04-15,Carter,Oklahoma,40019,1,0 +2020-04-16,Carter,Oklahoma,40019,1,0 +2020-04-17,Carter,Oklahoma,40019,1,0 +2020-04-18,Carter,Oklahoma,40019,1,0 +2020-04-19,Carter,Oklahoma,40019,1,0 +2020-04-20,Carter,Oklahoma,40019,1,0 +2020-04-21,Carter,Oklahoma,40019,1,0 +2020-04-22,Carter,Oklahoma,40019,1,0 +2020-04-23,Carter,Oklahoma,40019,2,0 +2020-04-24,Carter,Oklahoma,40019,2,0 +2020-04-25,Carter,Oklahoma,40019,2,0 +2020-04-26,Carter,Oklahoma,40019,2,0 +2020-04-27,Carter,Oklahoma,40019,2,1 +2020-04-28,Carter,Oklahoma,40019,2,1 +2020-04-29,Carter,Oklahoma,40019,2,1 +2020-04-30,Carter,Oklahoma,40019,3,1 +2020-05-01,Carter,Oklahoma,40019,3,1 +2020-05-02,Carter,Oklahoma,40019,3,1 +2020-05-03,Carter,Oklahoma,40019,4,1 +2020-05-04,Carter,Oklahoma,40019,4,1 +2020-05-05,Carter,Oklahoma,40019,5,1 +2020-05-06,Carter,Oklahoma,40019,5,1 +2020-05-07,Carter,Oklahoma,40019,6,1 +2020-05-08,Carter,Oklahoma,40019,6,1 +2020-05-09,Carter,Oklahoma,40019,6,1 +2020-05-10,Carter,Oklahoma,40019,6,1 +2020-05-11,Carter,Oklahoma,40019,6,1 +2020-05-12,Carter,Oklahoma,40019,6,1 +2020-05-13,Carter,Oklahoma,40019,6,1 +2020-05-14,Carter,Oklahoma,40019,7,1 +2020-05-15,Carter,Oklahoma,40019,8,1 +2020-05-16,Carter,Oklahoma,40019,8,1 +2020-05-17,Carter,Oklahoma,40019,9,1 +2020-05-18,Carter,Oklahoma,40019,13,1 +2020-05-19,Carter,Oklahoma,40019,15,1 +2020-05-20,Carter,Oklahoma,40019,15,1 +2020-05-21,Carter,Oklahoma,40019,16,1 +2020-05-22,Carter,Oklahoma,40019,21,1 +2020-05-23,Carter,Oklahoma,40019,22,1 +2020-05-24,Carter,Oklahoma,40019,22,1 +2020-05-25,Carter,Oklahoma,40019,23,1 +2020-05-26,Carter,Oklahoma,40019,25,1 +2020-05-27,Carter,Oklahoma,40019,36,1 +2020-05-28,Carter,Oklahoma,40019,38,1 +2020-05-29,Carter,Oklahoma,40019,39,1 +2020-05-30,Carter,Oklahoma,40019,41,1 +2020-05-31,Carter,Oklahoma,40019,44,1 +2020-06-01,Carter,Oklahoma,40019,45,1 +2020-06-02,Carter,Oklahoma,40019,45,1 +2020-06-03,Carter,Oklahoma,40019,45,1 +2020-06-04,Carter,Oklahoma,40019,51,1 +2020-06-05,Carter,Oklahoma,40019,51,1 +2020-06-06,Carter,Oklahoma,40019,51,1 +2020-06-07,Carter,Oklahoma,40019,52,1 +2020-06-08,Carter,Oklahoma,40019,53,1 +2020-06-09,Carter,Oklahoma,40019,55,1 +2020-06-10,Carter,Oklahoma,40019,55,1 +2020-06-11,Carter,Oklahoma,40019,57,1 +2020-06-12,Carter,Oklahoma,40019,57,1 +2020-06-13,Carter,Oklahoma,40019,57,1 +2020-06-14,Carter,Oklahoma,40019,57,1 +2020-06-15,Carter,Oklahoma,40019,60,1 +2020-06-16,Carter,Oklahoma,40019,60,1 +2020-06-17,Carter,Oklahoma,40019,60,1 +2020-06-18,Carter,Oklahoma,40019,62,1 +2020-06-19,Carter,Oklahoma,40019,63,1 +2020-06-20,Carter,Oklahoma,40019,66,1 +2020-06-21,Carter,Oklahoma,40019,69,1 +2020-06-22,Carter,Oklahoma,40019,70,1 +2020-06-23,Carter,Oklahoma,40019,74,1 +2020-06-24,Carter,Oklahoma,40019,75,1 +2020-06-25,Carter,Oklahoma,40019,80,1 +2020-06-26,Carter,Oklahoma,40019,82,1 +2020-06-27,Carter,Oklahoma,40019,82,1 +2020-06-28,Carter,Oklahoma,40019,82,1 +2020-06-29,Carter,Oklahoma,40019,82,1 +2020-06-30,Carter,Oklahoma,40019,92,1 +2020-07-01,Carter,Oklahoma,40019,95,1 +2020-07-02,Carter,Oklahoma,40019,96,1 +2020-07-03,Carter,Oklahoma,40019,120,1 +2020-07-04,Carter,Oklahoma,40019,127,1 +2020-07-05,Carter,Oklahoma,40019,128,1 +2020-07-06,Carter,Oklahoma,40019,132,1 +2020-07-07,Carter,Oklahoma,40019,140,2 +2020-07-08,Carter,Oklahoma,40019,151,2 +2020-07-09,Carter,Oklahoma,40019,159,2 +2020-03-27,Cherokee,Oklahoma,40021,1,0 +2020-03-28,Cherokee,Oklahoma,40021,1,0 +2020-03-29,Cherokee,Oklahoma,40021,1,0 +2020-03-30,Cherokee,Oklahoma,40021,1,0 +2020-03-31,Cherokee,Oklahoma,40021,4,0 +2020-04-01,Cherokee,Oklahoma,40021,7,0 +2020-04-02,Cherokee,Oklahoma,40021,7,0 +2020-04-03,Cherokee,Oklahoma,40021,7,0 +2020-04-04,Cherokee,Oklahoma,40021,10,0 +2020-04-05,Cherokee,Oklahoma,40021,12,0 +2020-04-06,Cherokee,Oklahoma,40021,14,0 +2020-04-07,Cherokee,Oklahoma,40021,16,1 +2020-04-08,Cherokee,Oklahoma,40021,16,1 +2020-04-09,Cherokee,Oklahoma,40021,17,1 +2020-04-10,Cherokee,Oklahoma,40021,18,1 +2020-04-11,Cherokee,Oklahoma,40021,18,1 +2020-04-12,Cherokee,Oklahoma,40021,18,1 +2020-04-13,Cherokee,Oklahoma,40021,20,1 +2020-04-14,Cherokee,Oklahoma,40021,20,1 +2020-04-15,Cherokee,Oklahoma,40021,21,1 +2020-04-16,Cherokee,Oklahoma,40021,22,1 +2020-04-17,Cherokee,Oklahoma,40021,24,1 +2020-04-18,Cherokee,Oklahoma,40021,24,1 +2020-04-19,Cherokee,Oklahoma,40021,24,1 +2020-04-20,Cherokee,Oklahoma,40021,24,1 +2020-04-21,Cherokee,Oklahoma,40021,24,1 +2020-04-22,Cherokee,Oklahoma,40021,25,1 +2020-04-23,Cherokee,Oklahoma,40021,25,1 +2020-04-24,Cherokee,Oklahoma,40021,26,1 +2020-04-25,Cherokee,Oklahoma,40021,26,1 +2020-04-26,Cherokee,Oklahoma,40021,26,1 +2020-04-27,Cherokee,Oklahoma,40021,26,1 +2020-04-28,Cherokee,Oklahoma,40021,26,1 +2020-04-29,Cherokee,Oklahoma,40021,27,1 +2020-04-30,Cherokee,Oklahoma,40021,27,1 +2020-05-01,Cherokee,Oklahoma,40021,27,1 +2020-05-02,Cherokee,Oklahoma,40021,27,1 +2020-05-03,Cherokee,Oklahoma,40021,27,1 +2020-05-04,Cherokee,Oklahoma,40021,27,1 +2020-05-05,Cherokee,Oklahoma,40021,29,1 +2020-05-06,Cherokee,Oklahoma,40021,29,1 +2020-05-07,Cherokee,Oklahoma,40021,29,1 +2020-05-08,Cherokee,Oklahoma,40021,30,1 +2020-05-09,Cherokee,Oklahoma,40021,30,1 +2020-05-10,Cherokee,Oklahoma,40021,30,1 +2020-05-11,Cherokee,Oklahoma,40021,30,1 +2020-05-12,Cherokee,Oklahoma,40021,30,1 +2020-05-13,Cherokee,Oklahoma,40021,29,1 +2020-05-14,Cherokee,Oklahoma,40021,29,1 +2020-05-15,Cherokee,Oklahoma,40021,29,1 +2020-05-16,Cherokee,Oklahoma,40021,29,1 +2020-05-17,Cherokee,Oklahoma,40021,29,1 +2020-05-18,Cherokee,Oklahoma,40021,29,1 +2020-05-19,Cherokee,Oklahoma,40021,29,1 +2020-05-20,Cherokee,Oklahoma,40021,29,1 +2020-05-21,Cherokee,Oklahoma,40021,28,1 +2020-05-22,Cherokee,Oklahoma,40021,28,1 +2020-05-23,Cherokee,Oklahoma,40021,28,1 +2020-05-24,Cherokee,Oklahoma,40021,28,1 +2020-05-25,Cherokee,Oklahoma,40021,28,1 +2020-05-26,Cherokee,Oklahoma,40021,29,1 +2020-05-27,Cherokee,Oklahoma,40021,29,1 +2020-05-28,Cherokee,Oklahoma,40021,28,1 +2020-05-29,Cherokee,Oklahoma,40021,28,1 +2020-05-30,Cherokee,Oklahoma,40021,29,1 +2020-05-31,Cherokee,Oklahoma,40021,29,1 +2020-06-01,Cherokee,Oklahoma,40021,29,1 +2020-06-02,Cherokee,Oklahoma,40021,30,1 +2020-06-03,Cherokee,Oklahoma,40021,31,1 +2020-06-04,Cherokee,Oklahoma,40021,31,1 +2020-06-05,Cherokee,Oklahoma,40021,31,1 +2020-06-06,Cherokee,Oklahoma,40021,31,1 +2020-06-07,Cherokee,Oklahoma,40021,33,1 +2020-06-08,Cherokee,Oklahoma,40021,33,1 +2020-06-09,Cherokee,Oklahoma,40021,37,1 +2020-06-10,Cherokee,Oklahoma,40021,37,1 +2020-06-11,Cherokee,Oklahoma,40021,39,1 +2020-06-12,Cherokee,Oklahoma,40021,41,1 +2020-06-13,Cherokee,Oklahoma,40021,43,1 +2020-06-14,Cherokee,Oklahoma,40021,48,1 +2020-06-15,Cherokee,Oklahoma,40021,48,1 +2020-06-16,Cherokee,Oklahoma,40021,50,1 +2020-06-17,Cherokee,Oklahoma,40021,52,1 +2020-06-18,Cherokee,Oklahoma,40021,58,1 +2020-06-19,Cherokee,Oklahoma,40021,60,1 +2020-06-20,Cherokee,Oklahoma,40021,65,1 +2020-06-21,Cherokee,Oklahoma,40021,66,1 +2020-06-22,Cherokee,Oklahoma,40021,66,1 +2020-06-23,Cherokee,Oklahoma,40021,66,1 +2020-06-24,Cherokee,Oklahoma,40021,68,1 +2020-06-25,Cherokee,Oklahoma,40021,70,1 +2020-06-26,Cherokee,Oklahoma,40021,73,1 +2020-06-27,Cherokee,Oklahoma,40021,74,1 +2020-06-28,Cherokee,Oklahoma,40021,74,1 +2020-06-29,Cherokee,Oklahoma,40021,73,1 +2020-06-30,Cherokee,Oklahoma,40021,77,1 +2020-07-01,Cherokee,Oklahoma,40021,79,1 +2020-07-02,Cherokee,Oklahoma,40021,83,1 +2020-07-03,Cherokee,Oklahoma,40021,87,1 +2020-07-04,Cherokee,Oklahoma,40021,90,1 +2020-07-05,Cherokee,Oklahoma,40021,90,1 +2020-07-06,Cherokee,Oklahoma,40021,90,1 +2020-07-07,Cherokee,Oklahoma,40021,95,1 +2020-07-08,Cherokee,Oklahoma,40021,97,1 +2020-07-09,Cherokee,Oklahoma,40021,105,1 +2020-03-27,Choctaw,Oklahoma,40023,1,0 +2020-03-28,Choctaw,Oklahoma,40023,1,0 +2020-03-29,Choctaw,Oklahoma,40023,1,0 +2020-03-30,Choctaw,Oklahoma,40023,1,0 +2020-03-31,Choctaw,Oklahoma,40023,1,0 +2020-04-01,Choctaw,Oklahoma,40023,1,0 +2020-04-02,Choctaw,Oklahoma,40023,1,0 +2020-04-03,Choctaw,Oklahoma,40023,1,0 +2020-04-04,Choctaw,Oklahoma,40023,2,0 +2020-04-05,Choctaw,Oklahoma,40023,2,0 +2020-04-06,Choctaw,Oklahoma,40023,2,0 +2020-04-07,Choctaw,Oklahoma,40023,2,0 +2020-04-08,Choctaw,Oklahoma,40023,2,0 +2020-04-09,Choctaw,Oklahoma,40023,2,0 +2020-04-10,Choctaw,Oklahoma,40023,2,0 +2020-04-11,Choctaw,Oklahoma,40023,2,0 +2020-04-12,Choctaw,Oklahoma,40023,2,0 +2020-04-13,Choctaw,Oklahoma,40023,2,0 +2020-04-14,Choctaw,Oklahoma,40023,3,0 +2020-04-15,Choctaw,Oklahoma,40023,3,0 +2020-04-16,Choctaw,Oklahoma,40023,3,0 +2020-04-17,Choctaw,Oklahoma,40023,3,0 +2020-04-18,Choctaw,Oklahoma,40023,3,0 +2020-04-19,Choctaw,Oklahoma,40023,3,0 +2020-04-20,Choctaw,Oklahoma,40023,3,0 +2020-04-21,Choctaw,Oklahoma,40023,3,0 +2020-04-22,Choctaw,Oklahoma,40023,3,0 +2020-04-23,Choctaw,Oklahoma,40023,3,0 +2020-04-24,Choctaw,Oklahoma,40023,3,0 +2020-04-25,Choctaw,Oklahoma,40023,3,0 +2020-04-26,Choctaw,Oklahoma,40023,3,0 +2020-04-27,Choctaw,Oklahoma,40023,3,0 +2020-04-28,Choctaw,Oklahoma,40023,3,0 +2020-04-29,Choctaw,Oklahoma,40023,3,0 +2020-04-30,Choctaw,Oklahoma,40023,3,0 +2020-05-01,Choctaw,Oklahoma,40023,3,0 +2020-05-02,Choctaw,Oklahoma,40023,3,0 +2020-05-03,Choctaw,Oklahoma,40023,3,0 +2020-05-04,Choctaw,Oklahoma,40023,3,0 +2020-05-05,Choctaw,Oklahoma,40023,3,0 +2020-05-06,Choctaw,Oklahoma,40023,3,0 +2020-05-07,Choctaw,Oklahoma,40023,3,0 +2020-05-08,Choctaw,Oklahoma,40023,3,0 +2020-05-09,Choctaw,Oklahoma,40023,3,0 +2020-05-10,Choctaw,Oklahoma,40023,3,0 +2020-05-11,Choctaw,Oklahoma,40023,3,0 +2020-05-12,Choctaw,Oklahoma,40023,3,0 +2020-05-13,Choctaw,Oklahoma,40023,3,0 +2020-05-14,Choctaw,Oklahoma,40023,3,0 +2020-05-15,Choctaw,Oklahoma,40023,3,0 +2020-05-16,Choctaw,Oklahoma,40023,3,0 +2020-05-17,Choctaw,Oklahoma,40023,4,0 +2020-05-18,Choctaw,Oklahoma,40023,5,0 +2020-05-19,Choctaw,Oklahoma,40023,6,0 +2020-05-20,Choctaw,Oklahoma,40023,12,0 +2020-05-21,Choctaw,Oklahoma,40023,12,0 +2020-05-22,Choctaw,Oklahoma,40023,14,0 +2020-05-23,Choctaw,Oklahoma,40023,14,0 +2020-05-24,Choctaw,Oklahoma,40023,18,0 +2020-05-25,Choctaw,Oklahoma,40023,21,0 +2020-05-26,Choctaw,Oklahoma,40023,25,0 +2020-05-27,Choctaw,Oklahoma,40023,27,0 +2020-05-28,Choctaw,Oklahoma,40023,30,1 +2020-05-29,Choctaw,Oklahoma,40023,32,1 +2020-05-30,Choctaw,Oklahoma,40023,39,1 +2020-05-31,Choctaw,Oklahoma,40023,48,1 +2020-06-01,Choctaw,Oklahoma,40023,73,1 +2020-06-02,Choctaw,Oklahoma,40023,76,1 +2020-06-03,Choctaw,Oklahoma,40023,87,1 +2020-06-04,Choctaw,Oklahoma,40023,90,1 +2020-06-05,Choctaw,Oklahoma,40023,97,1 +2020-06-06,Choctaw,Oklahoma,40023,98,1 +2020-06-07,Choctaw,Oklahoma,40023,98,1 +2020-06-08,Choctaw,Oklahoma,40023,100,1 +2020-06-09,Choctaw,Oklahoma,40023,100,1 +2020-06-10,Choctaw,Oklahoma,40023,101,1 +2020-06-11,Choctaw,Oklahoma,40023,101,1 +2020-06-12,Choctaw,Oklahoma,40023,102,1 +2020-06-13,Choctaw,Oklahoma,40023,102,1 +2020-06-14,Choctaw,Oklahoma,40023,102,1 +2020-06-15,Choctaw,Oklahoma,40023,102,1 +2020-06-16,Choctaw,Oklahoma,40023,105,1 +2020-06-17,Choctaw,Oklahoma,40023,106,1 +2020-06-18,Choctaw,Oklahoma,40023,107,1 +2020-06-19,Choctaw,Oklahoma,40023,107,1 +2020-06-20,Choctaw,Oklahoma,40023,107,1 +2020-06-21,Choctaw,Oklahoma,40023,107,1 +2020-06-22,Choctaw,Oklahoma,40023,108,1 +2020-06-23,Choctaw,Oklahoma,40023,108,1 +2020-06-24,Choctaw,Oklahoma,40023,108,1 +2020-06-25,Choctaw,Oklahoma,40023,108,1 +2020-06-26,Choctaw,Oklahoma,40023,108,1 +2020-06-27,Choctaw,Oklahoma,40023,110,1 +2020-06-28,Choctaw,Oklahoma,40023,110,1 +2020-06-29,Choctaw,Oklahoma,40023,110,1 +2020-06-30,Choctaw,Oklahoma,40023,112,1 +2020-07-01,Choctaw,Oklahoma,40023,112,1 +2020-07-02,Choctaw,Oklahoma,40023,114,1 +2020-07-03,Choctaw,Oklahoma,40023,114,1 +2020-07-04,Choctaw,Oklahoma,40023,118,1 +2020-07-05,Choctaw,Oklahoma,40023,119,1 +2020-07-06,Choctaw,Oklahoma,40023,120,1 +2020-07-07,Choctaw,Oklahoma,40023,120,1 +2020-07-08,Choctaw,Oklahoma,40023,121,1 +2020-07-09,Choctaw,Oklahoma,40023,123,1 +2020-04-21,Cimarron,Oklahoma,40025,1,0 +2020-04-22,Cimarron,Oklahoma,40025,1,0 +2020-04-23,Cimarron,Oklahoma,40025,1,0 +2020-04-24,Cimarron,Oklahoma,40025,1,0 +2020-04-25,Cimarron,Oklahoma,40025,1,0 +2020-04-26,Cimarron,Oklahoma,40025,1,0 +2020-04-27,Cimarron,Oklahoma,40025,1,0 +2020-04-28,Cimarron,Oklahoma,40025,1,0 +2020-04-29,Cimarron,Oklahoma,40025,1,0 +2020-04-30,Cimarron,Oklahoma,40025,1,0 +2020-05-01,Cimarron,Oklahoma,40025,1,0 +2020-05-02,Cimarron,Oklahoma,40025,1,0 +2020-05-03,Cimarron,Oklahoma,40025,1,0 +2020-05-04,Cimarron,Oklahoma,40025,1,0 +2020-05-05,Cimarron,Oklahoma,40025,1,0 +2020-05-06,Cimarron,Oklahoma,40025,1,0 +2020-05-07,Cimarron,Oklahoma,40025,1,0 +2020-05-08,Cimarron,Oklahoma,40025,1,0 +2020-05-09,Cimarron,Oklahoma,40025,1,0 +2020-05-10,Cimarron,Oklahoma,40025,1,0 +2020-05-11,Cimarron,Oklahoma,40025,1,0 +2020-05-12,Cimarron,Oklahoma,40025,1,0 +2020-05-13,Cimarron,Oklahoma,40025,1,0 +2020-05-14,Cimarron,Oklahoma,40025,1,0 +2020-05-15,Cimarron,Oklahoma,40025,1,0 +2020-05-16,Cimarron,Oklahoma,40025,1,0 +2020-05-17,Cimarron,Oklahoma,40025,1,0 +2020-05-18,Cimarron,Oklahoma,40025,1,0 +2020-05-19,Cimarron,Oklahoma,40025,1,0 +2020-05-20,Cimarron,Oklahoma,40025,1,0 +2020-05-21,Cimarron,Oklahoma,40025,1,0 +2020-05-22,Cimarron,Oklahoma,40025,1,0 +2020-05-23,Cimarron,Oklahoma,40025,1,0 +2020-05-24,Cimarron,Oklahoma,40025,1,0 +2020-05-25,Cimarron,Oklahoma,40025,1,0 +2020-05-26,Cimarron,Oklahoma,40025,1,0 +2020-05-27,Cimarron,Oklahoma,40025,1,0 +2020-05-28,Cimarron,Oklahoma,40025,1,0 +2020-05-29,Cimarron,Oklahoma,40025,1,0 +2020-05-30,Cimarron,Oklahoma,40025,1,0 +2020-05-31,Cimarron,Oklahoma,40025,1,0 +2020-06-01,Cimarron,Oklahoma,40025,1,0 +2020-06-02,Cimarron,Oklahoma,40025,1,0 +2020-06-03,Cimarron,Oklahoma,40025,1,0 +2020-06-04,Cimarron,Oklahoma,40025,1,0 +2020-06-05,Cimarron,Oklahoma,40025,1,0 +2020-06-06,Cimarron,Oklahoma,40025,1,0 +2020-06-07,Cimarron,Oklahoma,40025,1,0 +2020-06-08,Cimarron,Oklahoma,40025,1,0 +2020-06-09,Cimarron,Oklahoma,40025,1,0 +2020-06-10,Cimarron,Oklahoma,40025,1,0 +2020-06-11,Cimarron,Oklahoma,40025,1,0 +2020-06-12,Cimarron,Oklahoma,40025,1,0 +2020-06-13,Cimarron,Oklahoma,40025,1,0 +2020-06-14,Cimarron,Oklahoma,40025,1,0 +2020-06-15,Cimarron,Oklahoma,40025,1,0 +2020-06-16,Cimarron,Oklahoma,40025,1,0 +2020-06-17,Cimarron,Oklahoma,40025,1,0 +2020-06-18,Cimarron,Oklahoma,40025,1,0 +2020-06-19,Cimarron,Oklahoma,40025,1,0 +2020-06-20,Cimarron,Oklahoma,40025,1,0 +2020-06-21,Cimarron,Oklahoma,40025,1,0 +2020-06-22,Cimarron,Oklahoma,40025,1,0 +2020-06-23,Cimarron,Oklahoma,40025,1,0 +2020-06-24,Cimarron,Oklahoma,40025,1,0 +2020-06-25,Cimarron,Oklahoma,40025,1,0 +2020-06-26,Cimarron,Oklahoma,40025,1,0 +2020-06-27,Cimarron,Oklahoma,40025,1,0 +2020-06-28,Cimarron,Oklahoma,40025,1,0 +2020-06-29,Cimarron,Oklahoma,40025,1,0 +2020-06-30,Cimarron,Oklahoma,40025,1,0 +2020-07-01,Cimarron,Oklahoma,40025,1,0 +2020-07-02,Cimarron,Oklahoma,40025,1,0 +2020-07-03,Cimarron,Oklahoma,40025,1,0 +2020-07-04,Cimarron,Oklahoma,40025,1,0 +2020-07-05,Cimarron,Oklahoma,40025,1,0 +2020-07-06,Cimarron,Oklahoma,40025,1,0 +2020-07-07,Cimarron,Oklahoma,40025,1,0 +2020-07-08,Cimarron,Oklahoma,40025,1,0 +2020-07-09,Cimarron,Oklahoma,40025,1,0 +2020-03-15,Cleveland,Oklahoma,40027,1,0 +2020-03-16,Cleveland,Oklahoma,40027,1,0 +2020-03-17,Cleveland,Oklahoma,40027,1,0 +2020-03-18,Cleveland,Oklahoma,40027,4,0 +2020-03-19,Cleveland,Oklahoma,40027,9,0 +2020-03-20,Cleveland,Oklahoma,40027,11,0 +2020-03-21,Cleveland,Oklahoma,40027,12,0 +2020-03-22,Cleveland,Oklahoma,40027,13,0 +2020-03-23,Cleveland,Oklahoma,40027,16,0 +2020-03-24,Cleveland,Oklahoma,40027,22,1 +2020-03-25,Cleveland,Oklahoma,40027,27,1 +2020-03-26,Cleveland,Oklahoma,40027,39,3 +2020-03-27,Cleveland,Oklahoma,40027,39,3 +2020-03-28,Cleveland,Oklahoma,40027,46,5 +2020-03-29,Cleveland,Oklahoma,40027,51,5 +2020-03-30,Cleveland,Oklahoma,40027,60,6 +2020-03-31,Cleveland,Oklahoma,40027,65,6 +2020-04-01,Cleveland,Oklahoma,40027,87,6 +2020-04-02,Cleveland,Oklahoma,40027,121,6 +2020-04-03,Cleveland,Oklahoma,40027,130,7 +2020-04-04,Cleveland,Oklahoma,40027,169,8 +2020-04-05,Cleveland,Oklahoma,40027,171,11 +2020-04-06,Cleveland,Oklahoma,40027,180,11 +2020-04-07,Cleveland,Oklahoma,40027,203,12 +2020-04-08,Cleveland,Oklahoma,40027,212,14 +2020-04-09,Cleveland,Oklahoma,40027,231,14 +2020-04-10,Cleveland,Oklahoma,40027,236,14 +2020-04-11,Cleveland,Oklahoma,40027,247,17 +2020-04-12,Cleveland,Oklahoma,40027,264,17 +2020-04-13,Cleveland,Oklahoma,40027,267,17 +2020-04-14,Cleveland,Oklahoma,40027,277,17 +2020-04-15,Cleveland,Oklahoma,40027,294,18 +2020-04-16,Cleveland,Oklahoma,40027,301,21 +2020-04-17,Cleveland,Oklahoma,40027,306,21 +2020-04-18,Cleveland,Oklahoma,40027,308,21 +2020-04-19,Cleveland,Oklahoma,40027,312,21 +2020-04-20,Cleveland,Oklahoma,40027,323,23 +2020-04-21,Cleveland,Oklahoma,40027,345,23 +2020-04-22,Cleveland,Oklahoma,40027,372,24 +2020-04-23,Cleveland,Oklahoma,40027,388,26 +2020-04-24,Cleveland,Oklahoma,40027,393,27 +2020-04-25,Cleveland,Oklahoma,40027,400,27 +2020-04-26,Cleveland,Oklahoma,40027,403,27 +2020-04-27,Cleveland,Oklahoma,40027,404,27 +2020-04-28,Cleveland,Oklahoma,40027,410,28 +2020-04-29,Cleveland,Oklahoma,40027,417,28 +2020-04-30,Cleveland,Oklahoma,40027,419,28 +2020-05-01,Cleveland,Oklahoma,40027,426,29 +2020-05-02,Cleveland,Oklahoma,40027,430,29 +2020-05-03,Cleveland,Oklahoma,40027,432,29 +2020-05-04,Cleveland,Oklahoma,40027,436,29 +2020-05-05,Cleveland,Oklahoma,40027,439,30 +2020-05-06,Cleveland,Oklahoma,40027,447,31 +2020-05-07,Cleveland,Oklahoma,40027,448,32 +2020-05-08,Cleveland,Oklahoma,40027,453,32 +2020-05-09,Cleveland,Oklahoma,40027,455,32 +2020-05-10,Cleveland,Oklahoma,40027,456,32 +2020-05-11,Cleveland,Oklahoma,40027,456,32 +2020-05-12,Cleveland,Oklahoma,40027,457,33 +2020-05-13,Cleveland,Oklahoma,40027,458,33 +2020-05-14,Cleveland,Oklahoma,40027,458,35 +2020-05-15,Cleveland,Oklahoma,40027,459,35 +2020-05-16,Cleveland,Oklahoma,40027,466,36 +2020-05-17,Cleveland,Oklahoma,40027,468,36 +2020-05-18,Cleveland,Oklahoma,40027,468,36 +2020-05-19,Cleveland,Oklahoma,40027,470,36 +2020-05-20,Cleveland,Oklahoma,40027,472,37 +2020-05-21,Cleveland,Oklahoma,40027,482,37 +2020-05-22,Cleveland,Oklahoma,40027,481,37 +2020-05-23,Cleveland,Oklahoma,40027,487,37 +2020-05-24,Cleveland,Oklahoma,40027,489,37 +2020-05-25,Cleveland,Oklahoma,40027,490,37 +2020-05-26,Cleveland,Oklahoma,40027,493,37 +2020-05-27,Cleveland,Oklahoma,40027,494,37 +2020-05-28,Cleveland,Oklahoma,40027,496,37 +2020-05-29,Cleveland,Oklahoma,40027,498,37 +2020-05-30,Cleveland,Oklahoma,40027,500,37 +2020-05-31,Cleveland,Oklahoma,40027,501,37 +2020-06-01,Cleveland,Oklahoma,40027,503,37 +2020-06-02,Cleveland,Oklahoma,40027,506,37 +2020-06-03,Cleveland,Oklahoma,40027,511,37 +2020-06-04,Cleveland,Oklahoma,40027,514,37 +2020-06-05,Cleveland,Oklahoma,40027,520,37 +2020-06-06,Cleveland,Oklahoma,40027,519,37 +2020-06-07,Cleveland,Oklahoma,40027,520,37 +2020-06-08,Cleveland,Oklahoma,40027,524,37 +2020-06-09,Cleveland,Oklahoma,40027,529,39 +2020-06-10,Cleveland,Oklahoma,40027,529,40 +2020-06-11,Cleveland,Oklahoma,40027,533,40 +2020-06-12,Cleveland,Oklahoma,40027,539,40 +2020-06-13,Cleveland,Oklahoma,40027,544,40 +2020-06-14,Cleveland,Oklahoma,40027,546,40 +2020-06-15,Cleveland,Oklahoma,40027,552,40 +2020-06-16,Cleveland,Oklahoma,40027,564,40 +2020-06-17,Cleveland,Oklahoma,40027,576,40 +2020-06-18,Cleveland,Oklahoma,40027,605,40 +2020-06-19,Cleveland,Oklahoma,40027,620,40 +2020-06-20,Cleveland,Oklahoma,40027,640,40 +2020-06-21,Cleveland,Oklahoma,40027,677,40 +2020-06-22,Cleveland,Oklahoma,40027,684,40 +2020-06-23,Cleveland,Oklahoma,40027,711,40 +2020-06-24,Cleveland,Oklahoma,40027,735,40 +2020-06-25,Cleveland,Oklahoma,40027,763,40 +2020-06-26,Cleveland,Oklahoma,40027,780,40 +2020-06-27,Cleveland,Oklahoma,40027,795,40 +2020-06-28,Cleveland,Oklahoma,40027,852,40 +2020-06-29,Cleveland,Oklahoma,40027,873,40 +2020-06-30,Cleveland,Oklahoma,40027,886,40 +2020-07-01,Cleveland,Oklahoma,40027,911,40 +2020-07-02,Cleveland,Oklahoma,40027,935,40 +2020-07-03,Cleveland,Oklahoma,40027,1003,40 +2020-07-04,Cleveland,Oklahoma,40027,1035,40 +2020-07-05,Cleveland,Oklahoma,40027,1052,40 +2020-07-06,Cleveland,Oklahoma,40027,1107,40 +2020-07-07,Cleveland,Oklahoma,40027,1157,40 +2020-07-08,Cleveland,Oklahoma,40027,1186,40 +2020-07-09,Cleveland,Oklahoma,40027,1208,40 +2020-05-19,Coal,Oklahoma,40029,1,0 +2020-05-20,Coal,Oklahoma,40029,1,0 +2020-05-21,Coal,Oklahoma,40029,1,0 +2020-05-22,Coal,Oklahoma,40029,1,0 +2020-05-23,Coal,Oklahoma,40029,1,0 +2020-05-24,Coal,Oklahoma,40029,1,0 +2020-05-25,Coal,Oklahoma,40029,1,0 +2020-05-26,Coal,Oklahoma,40029,1,0 +2020-05-27,Coal,Oklahoma,40029,1,0 +2020-05-28,Coal,Oklahoma,40029,1,0 +2020-05-29,Coal,Oklahoma,40029,1,0 +2020-05-30,Coal,Oklahoma,40029,1,0 +2020-05-31,Coal,Oklahoma,40029,1,0 +2020-06-01,Coal,Oklahoma,40029,3,0 +2020-06-02,Coal,Oklahoma,40029,3,0 +2020-06-03,Coal,Oklahoma,40029,3,0 +2020-06-04,Coal,Oklahoma,40029,3,0 +2020-06-05,Coal,Oklahoma,40029,5,0 +2020-06-06,Coal,Oklahoma,40029,5,0 +2020-06-07,Coal,Oklahoma,40029,5,0 +2020-06-08,Coal,Oklahoma,40029,5,0 +2020-06-09,Coal,Oklahoma,40029,5,0 +2020-06-10,Coal,Oklahoma,40029,5,0 +2020-06-11,Coal,Oklahoma,40029,6,0 +2020-06-12,Coal,Oklahoma,40029,6,0 +2020-06-13,Coal,Oklahoma,40029,6,0 +2020-06-14,Coal,Oklahoma,40029,6,0 +2020-06-15,Coal,Oklahoma,40029,6,0 +2020-06-16,Coal,Oklahoma,40029,6,0 +2020-06-17,Coal,Oklahoma,40029,6,0 +2020-06-18,Coal,Oklahoma,40029,6,0 +2020-06-19,Coal,Oklahoma,40029,6,0 +2020-06-20,Coal,Oklahoma,40029,6,0 +2020-06-21,Coal,Oklahoma,40029,6,0 +2020-06-22,Coal,Oklahoma,40029,6,0 +2020-06-23,Coal,Oklahoma,40029,6,0 +2020-06-24,Coal,Oklahoma,40029,6,0 +2020-06-25,Coal,Oklahoma,40029,6,0 +2020-06-26,Coal,Oklahoma,40029,7,0 +2020-06-27,Coal,Oklahoma,40029,7,0 +2020-06-28,Coal,Oklahoma,40029,8,0 +2020-06-29,Coal,Oklahoma,40029,8,0 +2020-06-30,Coal,Oklahoma,40029,8,0 +2020-07-01,Coal,Oklahoma,40029,8,0 +2020-07-02,Coal,Oklahoma,40029,8,0 +2020-07-03,Coal,Oklahoma,40029,8,0 +2020-07-04,Coal,Oklahoma,40029,9,0 +2020-07-05,Coal,Oklahoma,40029,9,0 +2020-07-06,Coal,Oklahoma,40029,9,0 +2020-07-07,Coal,Oklahoma,40029,10,0 +2020-07-08,Coal,Oklahoma,40029,10,0 +2020-07-09,Coal,Oklahoma,40029,10,0 +2020-03-26,Comanche,Oklahoma,40031,3,0 +2020-03-27,Comanche,Oklahoma,40031,6,0 +2020-03-28,Comanche,Oklahoma,40031,6,0 +2020-03-29,Comanche,Oklahoma,40031,11,0 +2020-03-30,Comanche,Oklahoma,40031,12,0 +2020-03-31,Comanche,Oklahoma,40031,15,0 +2020-04-01,Comanche,Oklahoma,40031,21,0 +2020-04-02,Comanche,Oklahoma,40031,27,0 +2020-04-03,Comanche,Oklahoma,40031,33,0 +2020-04-04,Comanche,Oklahoma,40031,37,0 +2020-04-05,Comanche,Oklahoma,40031,39,0 +2020-04-06,Comanche,Oklahoma,40031,41,0 +2020-04-07,Comanche,Oklahoma,40031,42,0 +2020-04-08,Comanche,Oklahoma,40031,44,0 +2020-04-09,Comanche,Oklahoma,40031,47,0 +2020-04-10,Comanche,Oklahoma,40031,47,0 +2020-04-11,Comanche,Oklahoma,40031,49,0 +2020-04-12,Comanche,Oklahoma,40031,49,0 +2020-04-13,Comanche,Oklahoma,40031,51,0 +2020-04-14,Comanche,Oklahoma,40031,52,0 +2020-04-15,Comanche,Oklahoma,40031,52,0 +2020-04-16,Comanche,Oklahoma,40031,57,0 +2020-04-17,Comanche,Oklahoma,40031,65,0 +2020-04-18,Comanche,Oklahoma,40031,65,0 +2020-04-19,Comanche,Oklahoma,40031,67,0 +2020-04-20,Comanche,Oklahoma,40031,71,0 +2020-04-21,Comanche,Oklahoma,40031,72,1 +2020-04-22,Comanche,Oklahoma,40031,71,1 +2020-04-23,Comanche,Oklahoma,40031,75,1 +2020-04-24,Comanche,Oklahoma,40031,76,1 +2020-04-25,Comanche,Oklahoma,40031,76,1 +2020-04-26,Comanche,Oklahoma,40031,79,1 +2020-04-27,Comanche,Oklahoma,40031,79,1 +2020-04-28,Comanche,Oklahoma,40031,79,1 +2020-04-29,Comanche,Oklahoma,40031,79,1 +2020-04-30,Comanche,Oklahoma,40031,80,1 +2020-05-01,Comanche,Oklahoma,40031,81,2 +2020-05-02,Comanche,Oklahoma,40031,84,2 +2020-05-03,Comanche,Oklahoma,40031,98,2 +2020-05-04,Comanche,Oklahoma,40031,102,2 +2020-05-05,Comanche,Oklahoma,40031,104,2 +2020-05-06,Comanche,Oklahoma,40031,113,2 +2020-05-07,Comanche,Oklahoma,40031,115,2 +2020-05-08,Comanche,Oklahoma,40031,116,2 +2020-05-09,Comanche,Oklahoma,40031,124,2 +2020-05-10,Comanche,Oklahoma,40031,124,2 +2020-05-11,Comanche,Oklahoma,40031,124,2 +2020-05-12,Comanche,Oklahoma,40031,151,2 +2020-05-13,Comanche,Oklahoma,40031,184,2 +2020-05-14,Comanche,Oklahoma,40031,197,3 +2020-05-15,Comanche,Oklahoma,40031,205,3 +2020-05-16,Comanche,Oklahoma,40031,215,3 +2020-05-17,Comanche,Oklahoma,40031,224,3 +2020-05-18,Comanche,Oklahoma,40031,225,3 +2020-05-19,Comanche,Oklahoma,40031,229,3 +2020-05-20,Comanche,Oklahoma,40031,229,3 +2020-05-21,Comanche,Oklahoma,40031,235,3 +2020-05-22,Comanche,Oklahoma,40031,236,3 +2020-05-23,Comanche,Oklahoma,40031,270,3 +2020-05-24,Comanche,Oklahoma,40031,270,3 +2020-05-25,Comanche,Oklahoma,40031,268,3 +2020-05-26,Comanche,Oklahoma,40031,270,3 +2020-05-27,Comanche,Oklahoma,40031,274,3 +2020-05-28,Comanche,Oklahoma,40031,278,3 +2020-05-29,Comanche,Oklahoma,40031,279,3 +2020-05-30,Comanche,Oklahoma,40031,279,3 +2020-05-31,Comanche,Oklahoma,40031,281,3 +2020-06-01,Comanche,Oklahoma,40031,283,3 +2020-06-02,Comanche,Oklahoma,40031,285,3 +2020-06-03,Comanche,Oklahoma,40031,290,3 +2020-06-04,Comanche,Oklahoma,40031,293,3 +2020-06-05,Comanche,Oklahoma,40031,306,3 +2020-06-06,Comanche,Oklahoma,40031,309,3 +2020-06-07,Comanche,Oklahoma,40031,310,3 +2020-06-08,Comanche,Oklahoma,40031,310,3 +2020-06-09,Comanche,Oklahoma,40031,311,3 +2020-06-10,Comanche,Oklahoma,40031,312,3 +2020-06-11,Comanche,Oklahoma,40031,317,3 +2020-06-12,Comanche,Oklahoma,40031,319,4 +2020-06-13,Comanche,Oklahoma,40031,333,4 +2020-06-14,Comanche,Oklahoma,40031,337,4 +2020-06-15,Comanche,Oklahoma,40031,341,4 +2020-06-16,Comanche,Oklahoma,40031,339,4 +2020-06-17,Comanche,Oklahoma,40031,342,4 +2020-06-18,Comanche,Oklahoma,40031,360,5 +2020-06-19,Comanche,Oklahoma,40031,361,5 +2020-06-20,Comanche,Oklahoma,40031,364,5 +2020-06-21,Comanche,Oklahoma,40031,365,5 +2020-06-22,Comanche,Oklahoma,40031,377,5 +2020-06-23,Comanche,Oklahoma,40031,377,5 +2020-06-24,Comanche,Oklahoma,40031,381,5 +2020-06-25,Comanche,Oklahoma,40031,383,5 +2020-06-26,Comanche,Oklahoma,40031,386,5 +2020-06-27,Comanche,Oklahoma,40031,391,5 +2020-06-28,Comanche,Oklahoma,40031,392,5 +2020-06-29,Comanche,Oklahoma,40031,399,5 +2020-06-30,Comanche,Oklahoma,40031,406,5 +2020-07-01,Comanche,Oklahoma,40031,408,5 +2020-07-02,Comanche,Oklahoma,40031,418,7 +2020-07-03,Comanche,Oklahoma,40031,427,7 +2020-07-04,Comanche,Oklahoma,40031,443,7 +2020-07-05,Comanche,Oklahoma,40031,447,7 +2020-07-06,Comanche,Oklahoma,40031,447,7 +2020-07-07,Comanche,Oklahoma,40031,457,7 +2020-07-08,Comanche,Oklahoma,40031,463,7 +2020-07-09,Comanche,Oklahoma,40031,474,7 +2020-03-30,Cotton,Oklahoma,40033,1,0 +2020-03-31,Cotton,Oklahoma,40033,1,0 +2020-04-01,Cotton,Oklahoma,40033,1,0 +2020-04-02,Cotton,Oklahoma,40033,1,0 +2020-04-03,Cotton,Oklahoma,40033,4,0 +2020-04-04,Cotton,Oklahoma,40033,4,0 +2020-04-05,Cotton,Oklahoma,40033,4,0 +2020-04-06,Cotton,Oklahoma,40033,4,0 +2020-04-07,Cotton,Oklahoma,40033,4,0 +2020-04-08,Cotton,Oklahoma,40033,4,0 +2020-04-09,Cotton,Oklahoma,40033,4,0 +2020-04-10,Cotton,Oklahoma,40033,4,0 +2020-04-11,Cotton,Oklahoma,40033,4,0 +2020-04-12,Cotton,Oklahoma,40033,4,0 +2020-04-13,Cotton,Oklahoma,40033,5,0 +2020-04-14,Cotton,Oklahoma,40033,5,0 +2020-04-15,Cotton,Oklahoma,40033,5,0 +2020-04-16,Cotton,Oklahoma,40033,5,0 +2020-04-17,Cotton,Oklahoma,40033,5,0 +2020-04-18,Cotton,Oklahoma,40033,5,0 +2020-04-19,Cotton,Oklahoma,40033,5,0 +2020-04-20,Cotton,Oklahoma,40033,5,0 +2020-04-21,Cotton,Oklahoma,40033,5,0 +2020-04-22,Cotton,Oklahoma,40033,5,0 +2020-04-23,Cotton,Oklahoma,40033,5,1 +2020-04-24,Cotton,Oklahoma,40033,5,1 +2020-04-25,Cotton,Oklahoma,40033,5,1 +2020-04-26,Cotton,Oklahoma,40033,5,1 +2020-04-27,Cotton,Oklahoma,40033,5,1 +2020-04-28,Cotton,Oklahoma,40033,5,1 +2020-04-29,Cotton,Oklahoma,40033,5,1 +2020-04-30,Cotton,Oklahoma,40033,5,1 +2020-05-01,Cotton,Oklahoma,40033,5,1 +2020-05-02,Cotton,Oklahoma,40033,5,1 +2020-05-03,Cotton,Oklahoma,40033,5,1 +2020-05-04,Cotton,Oklahoma,40033,5,1 +2020-05-05,Cotton,Oklahoma,40033,5,1 +2020-05-06,Cotton,Oklahoma,40033,5,1 +2020-05-07,Cotton,Oklahoma,40033,5,1 +2020-05-08,Cotton,Oklahoma,40033,5,2 +2020-05-09,Cotton,Oklahoma,40033,5,2 +2020-05-10,Cotton,Oklahoma,40033,5,2 +2020-05-11,Cotton,Oklahoma,40033,5,2 +2020-05-12,Cotton,Oklahoma,40033,5,2 +2020-05-13,Cotton,Oklahoma,40033,5,2 +2020-05-14,Cotton,Oklahoma,40033,5,2 +2020-05-15,Cotton,Oklahoma,40033,5,2 +2020-05-16,Cotton,Oklahoma,40033,5,2 +2020-05-17,Cotton,Oklahoma,40033,5,2 +2020-05-18,Cotton,Oklahoma,40033,5,2 +2020-05-19,Cotton,Oklahoma,40033,5,2 +2020-05-20,Cotton,Oklahoma,40033,5,2 +2020-05-21,Cotton,Oklahoma,40033,5,2 +2020-05-22,Cotton,Oklahoma,40033,5,2 +2020-05-23,Cotton,Oklahoma,40033,5,2 +2020-05-24,Cotton,Oklahoma,40033,5,2 +2020-05-25,Cotton,Oklahoma,40033,5,2 +2020-05-26,Cotton,Oklahoma,40033,5,2 +2020-05-27,Cotton,Oklahoma,40033,5,2 +2020-05-28,Cotton,Oklahoma,40033,5,2 +2020-05-29,Cotton,Oklahoma,40033,5,2 +2020-05-30,Cotton,Oklahoma,40033,5,2 +2020-05-31,Cotton,Oklahoma,40033,5,2 +2020-06-01,Cotton,Oklahoma,40033,5,2 +2020-06-02,Cotton,Oklahoma,40033,5,2 +2020-06-03,Cotton,Oklahoma,40033,5,2 +2020-06-04,Cotton,Oklahoma,40033,5,2 +2020-06-05,Cotton,Oklahoma,40033,5,2 +2020-06-06,Cotton,Oklahoma,40033,5,2 +2020-06-07,Cotton,Oklahoma,40033,5,2 +2020-06-08,Cotton,Oklahoma,40033,5,2 +2020-06-09,Cotton,Oklahoma,40033,5,2 +2020-06-10,Cotton,Oklahoma,40033,5,2 +2020-06-11,Cotton,Oklahoma,40033,5,2 +2020-06-12,Cotton,Oklahoma,40033,5,2 +2020-06-13,Cotton,Oklahoma,40033,5,2 +2020-06-14,Cotton,Oklahoma,40033,5,2 +2020-06-15,Cotton,Oklahoma,40033,5,2 +2020-06-16,Cotton,Oklahoma,40033,5,2 +2020-06-17,Cotton,Oklahoma,40033,5,2 +2020-06-18,Cotton,Oklahoma,40033,5,2 +2020-06-19,Cotton,Oklahoma,40033,5,2 +2020-06-20,Cotton,Oklahoma,40033,5,2 +2020-06-21,Cotton,Oklahoma,40033,5,2 +2020-06-22,Cotton,Oklahoma,40033,5,2 +2020-06-23,Cotton,Oklahoma,40033,5,2 +2020-06-24,Cotton,Oklahoma,40033,5,2 +2020-06-25,Cotton,Oklahoma,40033,5,2 +2020-06-26,Cotton,Oklahoma,40033,6,2 +2020-06-27,Cotton,Oklahoma,40033,6,2 +2020-06-28,Cotton,Oklahoma,40033,6,2 +2020-06-29,Cotton,Oklahoma,40033,6,2 +2020-06-30,Cotton,Oklahoma,40033,6,2 +2020-07-01,Cotton,Oklahoma,40033,5,2 +2020-07-02,Cotton,Oklahoma,40033,5,2 +2020-07-03,Cotton,Oklahoma,40033,6,2 +2020-07-04,Cotton,Oklahoma,40033,7,2 +2020-07-05,Cotton,Oklahoma,40033,7,2 +2020-07-06,Cotton,Oklahoma,40033,7,2 +2020-07-07,Cotton,Oklahoma,40033,8,2 +2020-07-08,Cotton,Oklahoma,40033,9,2 +2020-07-09,Cotton,Oklahoma,40033,10,2 +2020-03-26,Craig,Oklahoma,40035,1,0 +2020-03-27,Craig,Oklahoma,40035,1,0 +2020-03-28,Craig,Oklahoma,40035,1,0 +2020-03-29,Craig,Oklahoma,40035,1,0 +2020-03-30,Craig,Oklahoma,40035,1,0 +2020-03-31,Craig,Oklahoma,40035,1,0 +2020-04-01,Craig,Oklahoma,40035,2,0 +2020-04-02,Craig,Oklahoma,40035,2,0 +2020-04-03,Craig,Oklahoma,40035,2,0 +2020-04-04,Craig,Oklahoma,40035,3,0 +2020-04-05,Craig,Oklahoma,40035,3,0 +2020-04-06,Craig,Oklahoma,40035,5,0 +2020-04-07,Craig,Oklahoma,40035,4,0 +2020-04-08,Craig,Oklahoma,40035,5,0 +2020-04-09,Craig,Oklahoma,40035,5,0 +2020-04-10,Craig,Oklahoma,40035,6,0 +2020-04-11,Craig,Oklahoma,40035,6,0 +2020-04-12,Craig,Oklahoma,40035,7,0 +2020-04-13,Craig,Oklahoma,40035,7,0 +2020-04-14,Craig,Oklahoma,40035,9,0 +2020-04-15,Craig,Oklahoma,40035,8,0 +2020-04-16,Craig,Oklahoma,40035,7,0 +2020-04-17,Craig,Oklahoma,40035,7,0 +2020-04-18,Craig,Oklahoma,40035,8,0 +2020-04-19,Craig,Oklahoma,40035,8,0 +2020-04-20,Craig,Oklahoma,40035,8,0 +2020-04-21,Craig,Oklahoma,40035,8,0 +2020-04-22,Craig,Oklahoma,40035,8,0 +2020-04-23,Craig,Oklahoma,40035,9,0 +2020-04-24,Craig,Oklahoma,40035,9,0 +2020-04-25,Craig,Oklahoma,40035,9,0 +2020-04-26,Craig,Oklahoma,40035,9,0 +2020-04-27,Craig,Oklahoma,40035,9,0 +2020-04-28,Craig,Oklahoma,40035,10,0 +2020-04-29,Craig,Oklahoma,40035,10,0 +2020-04-30,Craig,Oklahoma,40035,10,0 +2020-05-01,Craig,Oklahoma,40035,11,0 +2020-05-02,Craig,Oklahoma,40035,11,0 +2020-05-03,Craig,Oklahoma,40035,11,0 +2020-05-04,Craig,Oklahoma,40035,12,0 +2020-05-05,Craig,Oklahoma,40035,12,0 +2020-05-06,Craig,Oklahoma,40035,13,0 +2020-05-07,Craig,Oklahoma,40035,13,0 +2020-05-08,Craig,Oklahoma,40035,13,0 +2020-05-09,Craig,Oklahoma,40035,13,0 +2020-05-10,Craig,Oklahoma,40035,13,0 +2020-05-11,Craig,Oklahoma,40035,13,0 +2020-05-12,Craig,Oklahoma,40035,12,0 +2020-05-13,Craig,Oklahoma,40035,12,0 +2020-05-14,Craig,Oklahoma,40035,13,0 +2020-05-15,Craig,Oklahoma,40035,13,0 +2020-05-16,Craig,Oklahoma,40035,13,0 +2020-05-17,Craig,Oklahoma,40035,14,0 +2020-05-18,Craig,Oklahoma,40035,14,0 +2020-05-19,Craig,Oklahoma,40035,15,0 +2020-05-20,Craig,Oklahoma,40035,15,0 +2020-05-21,Craig,Oklahoma,40035,15,0 +2020-05-22,Craig,Oklahoma,40035,15,0 +2020-05-23,Craig,Oklahoma,40035,15,0 +2020-05-24,Craig,Oklahoma,40035,15,0 +2020-05-25,Craig,Oklahoma,40035,15,0 +2020-05-26,Craig,Oklahoma,40035,15,0 +2020-05-27,Craig,Oklahoma,40035,15,0 +2020-05-28,Craig,Oklahoma,40035,15,0 +2020-05-29,Craig,Oklahoma,40035,15,0 +2020-05-30,Craig,Oklahoma,40035,15,0 +2020-05-31,Craig,Oklahoma,40035,15,0 +2020-06-01,Craig,Oklahoma,40035,15,0 +2020-06-02,Craig,Oklahoma,40035,15,0 +2020-06-03,Craig,Oklahoma,40035,15,0 +2020-06-04,Craig,Oklahoma,40035,15,0 +2020-06-05,Craig,Oklahoma,40035,15,0 +2020-06-06,Craig,Oklahoma,40035,15,0 +2020-06-07,Craig,Oklahoma,40035,16,0 +2020-06-08,Craig,Oklahoma,40035,16,0 +2020-06-09,Craig,Oklahoma,40035,16,0 +2020-06-10,Craig,Oklahoma,40035,16,0 +2020-06-11,Craig,Oklahoma,40035,16,0 +2020-06-12,Craig,Oklahoma,40035,16,0 +2020-06-13,Craig,Oklahoma,40035,16,0 +2020-06-14,Craig,Oklahoma,40035,16,0 +2020-06-15,Craig,Oklahoma,40035,16,0 +2020-06-16,Craig,Oklahoma,40035,16,0 +2020-06-17,Craig,Oklahoma,40035,16,0 +2020-06-18,Craig,Oklahoma,40035,17,0 +2020-06-19,Craig,Oklahoma,40035,17,0 +2020-06-20,Craig,Oklahoma,40035,18,0 +2020-06-21,Craig,Oklahoma,40035,18,0 +2020-06-22,Craig,Oklahoma,40035,18,0 +2020-06-23,Craig,Oklahoma,40035,18,0 +2020-06-24,Craig,Oklahoma,40035,18,0 +2020-06-25,Craig,Oklahoma,40035,19,0 +2020-06-26,Craig,Oklahoma,40035,19,0 +2020-06-27,Craig,Oklahoma,40035,19,0 +2020-06-28,Craig,Oklahoma,40035,19,0 +2020-06-29,Craig,Oklahoma,40035,19,0 +2020-06-30,Craig,Oklahoma,40035,21,0 +2020-07-01,Craig,Oklahoma,40035,22,0 +2020-07-02,Craig,Oklahoma,40035,22,0 +2020-07-03,Craig,Oklahoma,40035,21,0 +2020-07-04,Craig,Oklahoma,40035,21,0 +2020-07-05,Craig,Oklahoma,40035,21,0 +2020-07-06,Craig,Oklahoma,40035,21,0 +2020-07-07,Craig,Oklahoma,40035,22,0 +2020-07-08,Craig,Oklahoma,40035,23,0 +2020-07-09,Craig,Oklahoma,40035,26,0 +2020-03-25,Creek,Oklahoma,40037,5,0 +2020-03-26,Creek,Oklahoma,40037,10,0 +2020-03-27,Creek,Oklahoma,40037,14,1 +2020-03-28,Creek,Oklahoma,40037,16,1 +2020-03-29,Creek,Oklahoma,40037,16,1 +2020-03-30,Creek,Oklahoma,40037,18,1 +2020-03-31,Creek,Oklahoma,40037,21,1 +2020-04-01,Creek,Oklahoma,40037,27,1 +2020-04-02,Creek,Oklahoma,40037,36,1 +2020-04-03,Creek,Oklahoma,40037,39,1 +2020-04-04,Creek,Oklahoma,40037,43,1 +2020-04-05,Creek,Oklahoma,40037,44,1 +2020-04-06,Creek,Oklahoma,40037,45,1 +2020-04-07,Creek,Oklahoma,40037,47,2 +2020-04-08,Creek,Oklahoma,40037,47,2 +2020-04-09,Creek,Oklahoma,40037,48,2 +2020-04-10,Creek,Oklahoma,40037,53,3 +2020-04-11,Creek,Oklahoma,40037,54,3 +2020-04-12,Creek,Oklahoma,40037,55,3 +2020-04-13,Creek,Oklahoma,40037,56,3 +2020-04-14,Creek,Oklahoma,40037,60,3 +2020-04-15,Creek,Oklahoma,40037,57,3 +2020-04-16,Creek,Oklahoma,40037,58,3 +2020-04-17,Creek,Oklahoma,40037,62,4 +2020-04-18,Creek,Oklahoma,40037,67,4 +2020-04-19,Creek,Oklahoma,40037,68,4 +2020-04-20,Creek,Oklahoma,40037,68,4 +2020-04-21,Creek,Oklahoma,40037,69,4 +2020-04-22,Creek,Oklahoma,40037,70,4 +2020-04-23,Creek,Oklahoma,40037,71,5 +2020-04-24,Creek,Oklahoma,40037,72,6 +2020-04-25,Creek,Oklahoma,40037,73,6 +2020-04-26,Creek,Oklahoma,40037,76,6 +2020-04-27,Creek,Oklahoma,40037,76,6 +2020-04-28,Creek,Oklahoma,40037,76,6 +2020-04-29,Creek,Oklahoma,40037,77,6 +2020-04-30,Creek,Oklahoma,40037,77,6 +2020-05-01,Creek,Oklahoma,40037,80,6 +2020-05-02,Creek,Oklahoma,40037,80,6 +2020-05-03,Creek,Oklahoma,40037,80,6 +2020-05-04,Creek,Oklahoma,40037,80,6 +2020-05-05,Creek,Oklahoma,40037,80,6 +2020-05-06,Creek,Oklahoma,40037,81,7 +2020-05-07,Creek,Oklahoma,40037,82,7 +2020-05-08,Creek,Oklahoma,40037,82,7 +2020-05-09,Creek,Oklahoma,40037,82,7 +2020-05-10,Creek,Oklahoma,40037,82,7 +2020-05-11,Creek,Oklahoma,40037,82,7 +2020-05-12,Creek,Oklahoma,40037,82,7 +2020-05-13,Creek,Oklahoma,40037,83,7 +2020-05-14,Creek,Oklahoma,40037,83,7 +2020-05-15,Creek,Oklahoma,40037,83,7 +2020-05-16,Creek,Oklahoma,40037,83,7 +2020-05-17,Creek,Oklahoma,40037,84,7 +2020-05-18,Creek,Oklahoma,40037,85,7 +2020-05-19,Creek,Oklahoma,40037,85,7 +2020-05-20,Creek,Oklahoma,40037,85,7 +2020-05-21,Creek,Oklahoma,40037,87,7 +2020-05-22,Creek,Oklahoma,40037,88,7 +2020-05-23,Creek,Oklahoma,40037,89,7 +2020-05-24,Creek,Oklahoma,40037,90,7 +2020-05-25,Creek,Oklahoma,40037,91,7 +2020-05-26,Creek,Oklahoma,40037,92,7 +2020-05-27,Creek,Oklahoma,40037,93,7 +2020-05-28,Creek,Oklahoma,40037,93,7 +2020-05-29,Creek,Oklahoma,40037,93,7 +2020-05-30,Creek,Oklahoma,40037,94,7 +2020-05-31,Creek,Oklahoma,40037,94,7 +2020-06-01,Creek,Oklahoma,40037,95,7 +2020-06-02,Creek,Oklahoma,40037,96,7 +2020-06-03,Creek,Oklahoma,40037,97,7 +2020-06-04,Creek,Oklahoma,40037,98,7 +2020-06-05,Creek,Oklahoma,40037,99,7 +2020-06-06,Creek,Oklahoma,40037,99,7 +2020-06-07,Creek,Oklahoma,40037,100,7 +2020-06-08,Creek,Oklahoma,40037,100,7 +2020-06-09,Creek,Oklahoma,40037,101,7 +2020-06-10,Creek,Oklahoma,40037,102,7 +2020-06-11,Creek,Oklahoma,40037,101,7 +2020-06-12,Creek,Oklahoma,40037,102,7 +2020-06-13,Creek,Oklahoma,40037,105,7 +2020-06-14,Creek,Oklahoma,40037,106,7 +2020-06-15,Creek,Oklahoma,40037,106,7 +2020-06-16,Creek,Oklahoma,40037,108,7 +2020-06-17,Creek,Oklahoma,40037,108,7 +2020-06-18,Creek,Oklahoma,40037,118,7 +2020-06-19,Creek,Oklahoma,40037,121,7 +2020-06-20,Creek,Oklahoma,40037,122,7 +2020-06-21,Creek,Oklahoma,40037,123,7 +2020-06-22,Creek,Oklahoma,40037,124,7 +2020-06-23,Creek,Oklahoma,40037,127,7 +2020-06-24,Creek,Oklahoma,40037,128,7 +2020-06-25,Creek,Oklahoma,40037,129,7 +2020-06-26,Creek,Oklahoma,40037,134,7 +2020-06-27,Creek,Oklahoma,40037,139,7 +2020-06-28,Creek,Oklahoma,40037,140,7 +2020-06-29,Creek,Oklahoma,40037,139,7 +2020-06-30,Creek,Oklahoma,40037,144,7 +2020-07-01,Creek,Oklahoma,40037,147,7 +2020-07-02,Creek,Oklahoma,40037,151,7 +2020-07-03,Creek,Oklahoma,40037,158,7 +2020-07-04,Creek,Oklahoma,40037,169,7 +2020-07-05,Creek,Oklahoma,40037,174,7 +2020-07-06,Creek,Oklahoma,40037,175,7 +2020-07-07,Creek,Oklahoma,40037,185,7 +2020-07-08,Creek,Oklahoma,40037,194,7 +2020-07-09,Creek,Oklahoma,40037,201,7 +2020-03-19,Custer,Oklahoma,40039,1,0 +2020-03-20,Custer,Oklahoma,40039,1,0 +2020-03-21,Custer,Oklahoma,40039,1,0 +2020-03-22,Custer,Oklahoma,40039,1,0 +2020-03-23,Custer,Oklahoma,40039,1,0 +2020-03-24,Custer,Oklahoma,40039,1,0 +2020-03-25,Custer,Oklahoma,40039,3,0 +2020-03-26,Custer,Oklahoma,40039,3,0 +2020-03-27,Custer,Oklahoma,40039,3,0 +2020-03-28,Custer,Oklahoma,40039,3,0 +2020-03-29,Custer,Oklahoma,40039,4,0 +2020-03-30,Custer,Oklahoma,40039,4,0 +2020-03-31,Custer,Oklahoma,40039,4,0 +2020-04-01,Custer,Oklahoma,40039,4,0 +2020-04-02,Custer,Oklahoma,40039,5,0 +2020-04-03,Custer,Oklahoma,40039,5,0 +2020-04-04,Custer,Oklahoma,40039,5,0 +2020-04-05,Custer,Oklahoma,40039,5,0 +2020-04-06,Custer,Oklahoma,40039,5,0 +2020-04-07,Custer,Oklahoma,40039,5,0 +2020-04-08,Custer,Oklahoma,40039,5,0 +2020-04-09,Custer,Oklahoma,40039,5,0 +2020-04-10,Custer,Oklahoma,40039,5,0 +2020-04-11,Custer,Oklahoma,40039,5,0 +2020-04-12,Custer,Oklahoma,40039,5,0 +2020-04-13,Custer,Oklahoma,40039,6,0 +2020-04-14,Custer,Oklahoma,40039,7,0 +2020-04-15,Custer,Oklahoma,40039,7,0 +2020-04-16,Custer,Oklahoma,40039,7,0 +2020-04-17,Custer,Oklahoma,40039,7,0 +2020-04-18,Custer,Oklahoma,40039,9,0 +2020-04-19,Custer,Oklahoma,40039,9,0 +2020-04-20,Custer,Oklahoma,40039,10,0 +2020-04-21,Custer,Oklahoma,40039,10,0 +2020-04-22,Custer,Oklahoma,40039,10,0 +2020-04-23,Custer,Oklahoma,40039,10,0 +2020-04-24,Custer,Oklahoma,40039,10,0 +2020-04-25,Custer,Oklahoma,40039,10,0 +2020-04-26,Custer,Oklahoma,40039,10,0 +2020-04-27,Custer,Oklahoma,40039,10,0 +2020-04-28,Custer,Oklahoma,40039,10,0 +2020-04-29,Custer,Oklahoma,40039,10,0 +2020-04-30,Custer,Oklahoma,40039,10,0 +2020-05-01,Custer,Oklahoma,40039,10,0 +2020-05-02,Custer,Oklahoma,40039,10,0 +2020-05-03,Custer,Oklahoma,40039,11,0 +2020-05-04,Custer,Oklahoma,40039,11,0 +2020-05-05,Custer,Oklahoma,40039,11,0 +2020-05-06,Custer,Oklahoma,40039,11,0 +2020-05-07,Custer,Oklahoma,40039,11,0 +2020-05-08,Custer,Oklahoma,40039,11,0 +2020-05-09,Custer,Oklahoma,40039,11,0 +2020-05-10,Custer,Oklahoma,40039,11,0 +2020-05-11,Custer,Oklahoma,40039,11,0 +2020-05-12,Custer,Oklahoma,40039,12,0 +2020-05-13,Custer,Oklahoma,40039,12,0 +2020-05-14,Custer,Oklahoma,40039,12,0 +2020-05-15,Custer,Oklahoma,40039,12,0 +2020-05-16,Custer,Oklahoma,40039,12,0 +2020-05-17,Custer,Oklahoma,40039,12,0 +2020-05-18,Custer,Oklahoma,40039,12,0 +2020-05-19,Custer,Oklahoma,40039,12,0 +2020-05-20,Custer,Oklahoma,40039,12,0 +2020-05-21,Custer,Oklahoma,40039,12,0 +2020-05-22,Custer,Oklahoma,40039,12,0 +2020-05-23,Custer,Oklahoma,40039,12,0 +2020-05-24,Custer,Oklahoma,40039,12,0 +2020-05-25,Custer,Oklahoma,40039,12,0 +2020-05-26,Custer,Oklahoma,40039,12,0 +2020-05-27,Custer,Oklahoma,40039,13,0 +2020-05-28,Custer,Oklahoma,40039,13,0 +2020-05-29,Custer,Oklahoma,40039,13,0 +2020-05-30,Custer,Oklahoma,40039,16,0 +2020-05-31,Custer,Oklahoma,40039,20,0 +2020-06-01,Custer,Oklahoma,40039,20,0 +2020-06-02,Custer,Oklahoma,40039,26,0 +2020-06-03,Custer,Oklahoma,40039,30,0 +2020-06-04,Custer,Oklahoma,40039,31,0 +2020-06-05,Custer,Oklahoma,40039,32,0 +2020-06-06,Custer,Oklahoma,40039,32,0 +2020-06-07,Custer,Oklahoma,40039,34,0 +2020-06-08,Custer,Oklahoma,40039,34,0 +2020-06-09,Custer,Oklahoma,40039,35,0 +2020-06-10,Custer,Oklahoma,40039,37,0 +2020-06-11,Custer,Oklahoma,40039,38,0 +2020-06-12,Custer,Oklahoma,40039,40,0 +2020-06-13,Custer,Oklahoma,40039,41,0 +2020-06-14,Custer,Oklahoma,40039,41,0 +2020-06-15,Custer,Oklahoma,40039,41,0 +2020-06-16,Custer,Oklahoma,40039,42,0 +2020-06-17,Custer,Oklahoma,40039,42,0 +2020-06-18,Custer,Oklahoma,40039,46,0 +2020-06-19,Custer,Oklahoma,40039,45,0 +2020-06-20,Custer,Oklahoma,40039,49,0 +2020-06-21,Custer,Oklahoma,40039,49,0 +2020-06-22,Custer,Oklahoma,40039,50,0 +2020-06-23,Custer,Oklahoma,40039,51,0 +2020-06-24,Custer,Oklahoma,40039,51,0 +2020-06-25,Custer,Oklahoma,40039,52,0 +2020-06-26,Custer,Oklahoma,40039,54,0 +2020-06-27,Custer,Oklahoma,40039,54,0 +2020-06-28,Custer,Oklahoma,40039,55,0 +2020-06-29,Custer,Oklahoma,40039,55,0 +2020-06-30,Custer,Oklahoma,40039,55,0 +2020-07-01,Custer,Oklahoma,40039,54,0 +2020-07-02,Custer,Oklahoma,40039,59,0 +2020-07-03,Custer,Oklahoma,40039,63,0 +2020-07-04,Custer,Oklahoma,40039,62,0 +2020-07-05,Custer,Oklahoma,40039,64,0 +2020-07-06,Custer,Oklahoma,40039,64,0 +2020-07-07,Custer,Oklahoma,40039,67,0 +2020-07-08,Custer,Oklahoma,40039,69,0 +2020-07-09,Custer,Oklahoma,40039,70,0 +2020-03-25,Delaware,Oklahoma,40041,1,0 +2020-03-26,Delaware,Oklahoma,40041,1,0 +2020-03-27,Delaware,Oklahoma,40041,2,0 +2020-03-28,Delaware,Oklahoma,40041,4,0 +2020-03-29,Delaware,Oklahoma,40041,4,0 +2020-03-30,Delaware,Oklahoma,40041,7,0 +2020-03-31,Delaware,Oklahoma,40041,7,0 +2020-04-01,Delaware,Oklahoma,40041,8,0 +2020-04-02,Delaware,Oklahoma,40041,10,0 +2020-04-03,Delaware,Oklahoma,40041,11,0 +2020-04-04,Delaware,Oklahoma,40041,11,0 +2020-04-05,Delaware,Oklahoma,40041,12,0 +2020-04-06,Delaware,Oklahoma,40041,13,0 +2020-04-07,Delaware,Oklahoma,40041,13,0 +2020-04-08,Delaware,Oklahoma,40041,13,0 +2020-04-09,Delaware,Oklahoma,40041,14,0 +2020-04-10,Delaware,Oklahoma,40041,23,0 +2020-04-11,Delaware,Oklahoma,40041,24,0 +2020-04-12,Delaware,Oklahoma,40041,50,0 +2020-04-13,Delaware,Oklahoma,40041,63,0 +2020-04-14,Delaware,Oklahoma,40041,71,0 +2020-04-15,Delaware,Oklahoma,40041,72,0 +2020-04-16,Delaware,Oklahoma,40041,74,2 +2020-04-17,Delaware,Oklahoma,40041,76,4 +2020-04-18,Delaware,Oklahoma,40041,80,4 +2020-04-19,Delaware,Oklahoma,40041,83,5 +2020-04-20,Delaware,Oklahoma,40041,86,5 +2020-04-21,Delaware,Oklahoma,40041,87,9 +2020-04-22,Delaware,Oklahoma,40041,88,9 +2020-04-23,Delaware,Oklahoma,40041,89,9 +2020-04-24,Delaware,Oklahoma,40041,90,9 +2020-04-25,Delaware,Oklahoma,40041,90,10 +2020-04-26,Delaware,Oklahoma,40041,90,10 +2020-04-27,Delaware,Oklahoma,40041,90,10 +2020-04-28,Delaware,Oklahoma,40041,90,11 +2020-04-29,Delaware,Oklahoma,40041,90,11 +2020-04-30,Delaware,Oklahoma,40041,90,13 +2020-05-01,Delaware,Oklahoma,40041,91,13 +2020-05-02,Delaware,Oklahoma,40041,91,13 +2020-05-03,Delaware,Oklahoma,40041,91,13 +2020-05-04,Delaware,Oklahoma,40041,91,13 +2020-05-05,Delaware,Oklahoma,40041,92,14 +2020-05-06,Delaware,Oklahoma,40041,92,14 +2020-05-07,Delaware,Oklahoma,40041,92,15 +2020-05-08,Delaware,Oklahoma,40041,92,15 +2020-05-09,Delaware,Oklahoma,40041,92,16 +2020-05-10,Delaware,Oklahoma,40041,92,16 +2020-05-11,Delaware,Oklahoma,40041,93,16 +2020-05-12,Delaware,Oklahoma,40041,94,16 +2020-05-13,Delaware,Oklahoma,40041,93,16 +2020-05-14,Delaware,Oklahoma,40041,93,16 +2020-05-15,Delaware,Oklahoma,40041,93,16 +2020-05-16,Delaware,Oklahoma,40041,95,16 +2020-05-17,Delaware,Oklahoma,40041,95,16 +2020-05-18,Delaware,Oklahoma,40041,95,16 +2020-05-19,Delaware,Oklahoma,40041,96,16 +2020-05-20,Delaware,Oklahoma,40041,96,16 +2020-05-21,Delaware,Oklahoma,40041,97,16 +2020-05-22,Delaware,Oklahoma,40041,97,16 +2020-05-23,Delaware,Oklahoma,40041,99,16 +2020-05-24,Delaware,Oklahoma,40041,99,16 +2020-05-25,Delaware,Oklahoma,40041,99,16 +2020-05-26,Delaware,Oklahoma,40041,100,16 +2020-05-27,Delaware,Oklahoma,40041,100,16 +2020-05-28,Delaware,Oklahoma,40041,100,16 +2020-05-29,Delaware,Oklahoma,40041,100,16 +2020-05-30,Delaware,Oklahoma,40041,100,16 +2020-05-31,Delaware,Oklahoma,40041,100,16 +2020-06-01,Delaware,Oklahoma,40041,100,16 +2020-06-02,Delaware,Oklahoma,40041,100,16 +2020-06-03,Delaware,Oklahoma,40041,100,16 +2020-06-04,Delaware,Oklahoma,40041,100,16 +2020-06-05,Delaware,Oklahoma,40041,100,16 +2020-06-06,Delaware,Oklahoma,40041,100,16 +2020-06-07,Delaware,Oklahoma,40041,102,16 +2020-06-08,Delaware,Oklahoma,40041,102,16 +2020-06-09,Delaware,Oklahoma,40041,103,16 +2020-06-10,Delaware,Oklahoma,40041,104,16 +2020-06-11,Delaware,Oklahoma,40041,104,16 +2020-06-12,Delaware,Oklahoma,40041,107,16 +2020-06-13,Delaware,Oklahoma,40041,107,16 +2020-06-14,Delaware,Oklahoma,40041,108,16 +2020-06-15,Delaware,Oklahoma,40041,109,16 +2020-06-16,Delaware,Oklahoma,40041,111,16 +2020-06-17,Delaware,Oklahoma,40041,112,16 +2020-06-18,Delaware,Oklahoma,40041,112,16 +2020-06-19,Delaware,Oklahoma,40041,114,16 +2020-06-20,Delaware,Oklahoma,40041,115,16 +2020-06-21,Delaware,Oklahoma,40041,117,16 +2020-06-22,Delaware,Oklahoma,40041,117,16 +2020-06-23,Delaware,Oklahoma,40041,118,16 +2020-06-24,Delaware,Oklahoma,40041,119,16 +2020-06-25,Delaware,Oklahoma,40041,121,16 +2020-06-26,Delaware,Oklahoma,40041,124,16 +2020-06-27,Delaware,Oklahoma,40041,127,16 +2020-06-28,Delaware,Oklahoma,40041,132,16 +2020-06-29,Delaware,Oklahoma,40041,136,16 +2020-06-30,Delaware,Oklahoma,40041,152,16 +2020-07-01,Delaware,Oklahoma,40041,153,16 +2020-07-02,Delaware,Oklahoma,40041,162,16 +2020-07-03,Delaware,Oklahoma,40041,165,16 +2020-07-04,Delaware,Oklahoma,40041,172,16 +2020-07-05,Delaware,Oklahoma,40041,175,16 +2020-07-06,Delaware,Oklahoma,40041,181,16 +2020-07-07,Delaware,Oklahoma,40041,199,17 +2020-07-08,Delaware,Oklahoma,40041,200,17 +2020-07-09,Delaware,Oklahoma,40041,218,17 +2020-04-07,Dewey,Oklahoma,40043,1,0 +2020-04-08,Dewey,Oklahoma,40043,1,0 +2020-04-09,Dewey,Oklahoma,40043,1,0 +2020-04-10,Dewey,Oklahoma,40043,1,0 +2020-04-11,Dewey,Oklahoma,40043,1,0 +2020-04-12,Dewey,Oklahoma,40043,1,0 +2020-04-13,Dewey,Oklahoma,40043,1,0 +2020-04-14,Dewey,Oklahoma,40043,1,0 +2020-04-15,Dewey,Oklahoma,40043,2,0 +2020-04-16,Dewey,Oklahoma,40043,2,0 +2020-04-17,Dewey,Oklahoma,40043,2,0 +2020-04-18,Dewey,Oklahoma,40043,2,0 +2020-04-19,Dewey,Oklahoma,40043,2,0 +2020-04-20,Dewey,Oklahoma,40043,2,0 +2020-04-21,Dewey,Oklahoma,40043,2,0 +2020-04-22,Dewey,Oklahoma,40043,2,0 +2020-04-23,Dewey,Oklahoma,40043,2,0 +2020-04-24,Dewey,Oklahoma,40043,2,0 +2020-04-25,Dewey,Oklahoma,40043,2,0 +2020-04-26,Dewey,Oklahoma,40043,2,0 +2020-04-27,Dewey,Oklahoma,40043,2,0 +2020-04-28,Dewey,Oklahoma,40043,2,0 +2020-04-29,Dewey,Oklahoma,40043,2,0 +2020-04-30,Dewey,Oklahoma,40043,2,0 +2020-05-01,Dewey,Oklahoma,40043,2,0 +2020-05-02,Dewey,Oklahoma,40043,2,0 +2020-05-03,Dewey,Oklahoma,40043,2,0 +2020-05-04,Dewey,Oklahoma,40043,2,0 +2020-05-05,Dewey,Oklahoma,40043,2,0 +2020-05-06,Dewey,Oklahoma,40043,2,0 +2020-05-07,Dewey,Oklahoma,40043,2,0 +2020-05-08,Dewey,Oklahoma,40043,2,0 +2020-05-09,Dewey,Oklahoma,40043,2,0 +2020-05-10,Dewey,Oklahoma,40043,2,0 +2020-05-11,Dewey,Oklahoma,40043,2,0 +2020-05-12,Dewey,Oklahoma,40043,2,0 +2020-05-13,Dewey,Oklahoma,40043,2,0 +2020-05-14,Dewey,Oklahoma,40043,2,0 +2020-05-15,Dewey,Oklahoma,40043,2,0 +2020-05-16,Dewey,Oklahoma,40043,2,0 +2020-05-17,Dewey,Oklahoma,40043,2,0 +2020-05-18,Dewey,Oklahoma,40043,2,0 +2020-05-19,Dewey,Oklahoma,40043,2,0 +2020-05-20,Dewey,Oklahoma,40043,2,0 +2020-05-21,Dewey,Oklahoma,40043,3,0 +2020-05-22,Dewey,Oklahoma,40043,3,0 +2020-05-23,Dewey,Oklahoma,40043,3,0 +2020-05-24,Dewey,Oklahoma,40043,3,0 +2020-05-25,Dewey,Oklahoma,40043,3,0 +2020-05-26,Dewey,Oklahoma,40043,4,0 +2020-05-27,Dewey,Oklahoma,40043,4,0 +2020-05-28,Dewey,Oklahoma,40043,4,0 +2020-05-29,Dewey,Oklahoma,40043,2,0 +2020-05-30,Dewey,Oklahoma,40043,2,0 +2020-05-31,Dewey,Oklahoma,40043,2,0 +2020-06-01,Dewey,Oklahoma,40043,3,0 +2020-06-02,Dewey,Oklahoma,40043,3,0 +2020-06-03,Dewey,Oklahoma,40043,3,0 +2020-06-04,Dewey,Oklahoma,40043,3,0 +2020-06-05,Dewey,Oklahoma,40043,3,0 +2020-06-06,Dewey,Oklahoma,40043,3,0 +2020-06-07,Dewey,Oklahoma,40043,3,0 +2020-06-08,Dewey,Oklahoma,40043,3,0 +2020-06-09,Dewey,Oklahoma,40043,3,0 +2020-06-10,Dewey,Oklahoma,40043,2,0 +2020-06-11,Dewey,Oklahoma,40043,2,0 +2020-06-12,Dewey,Oklahoma,40043,2,0 +2020-06-13,Dewey,Oklahoma,40043,2,0 +2020-06-14,Dewey,Oklahoma,40043,4,0 +2020-06-15,Dewey,Oklahoma,40043,5,0 +2020-06-16,Dewey,Oklahoma,40043,4,0 +2020-06-17,Dewey,Oklahoma,40043,4,0 +2020-06-18,Dewey,Oklahoma,40043,4,0 +2020-06-19,Dewey,Oklahoma,40043,4,0 +2020-06-20,Dewey,Oklahoma,40043,4,0 +2020-06-21,Dewey,Oklahoma,40043,4,0 +2020-06-22,Dewey,Oklahoma,40043,4,0 +2020-06-23,Dewey,Oklahoma,40043,4,0 +2020-06-24,Dewey,Oklahoma,40043,4,0 +2020-06-25,Dewey,Oklahoma,40043,4,0 +2020-06-26,Dewey,Oklahoma,40043,5,0 +2020-06-27,Dewey,Oklahoma,40043,5,0 +2020-06-28,Dewey,Oklahoma,40043,5,0 +2020-06-29,Dewey,Oklahoma,40043,5,0 +2020-06-30,Dewey,Oklahoma,40043,5,0 +2020-07-01,Dewey,Oklahoma,40043,4,0 +2020-07-02,Dewey,Oklahoma,40043,4,0 +2020-07-03,Dewey,Oklahoma,40043,4,0 +2020-07-04,Dewey,Oklahoma,40043,4,0 +2020-07-05,Dewey,Oklahoma,40043,4,0 +2020-07-06,Dewey,Oklahoma,40043,4,0 +2020-07-07,Dewey,Oklahoma,40043,4,0 +2020-07-08,Dewey,Oklahoma,40043,4,0 +2020-07-09,Dewey,Oklahoma,40043,4,0 +2020-06-21,Ellis,Oklahoma,40045,1,0 +2020-06-22,Ellis,Oklahoma,40045,1,0 +2020-06-23,Ellis,Oklahoma,40045,1,0 +2020-06-24,Ellis,Oklahoma,40045,1,0 +2020-06-25,Ellis,Oklahoma,40045,1,0 +2020-06-26,Ellis,Oklahoma,40045,1,0 +2020-06-27,Ellis,Oklahoma,40045,1,0 +2020-06-28,Ellis,Oklahoma,40045,1,0 +2020-06-29,Ellis,Oklahoma,40045,1,0 +2020-06-30,Ellis,Oklahoma,40045,1,0 +2020-07-01,Ellis,Oklahoma,40045,1,0 +2020-07-02,Ellis,Oklahoma,40045,1,0 +2020-07-03,Ellis,Oklahoma,40045,1,0 +2020-07-04,Ellis,Oklahoma,40045,1,0 +2020-07-05,Ellis,Oklahoma,40045,1,0 +2020-07-06,Ellis,Oklahoma,40045,1,0 +2020-07-07,Ellis,Oklahoma,40045,1,0 +2020-07-08,Ellis,Oklahoma,40045,2,0 +2020-07-09,Ellis,Oklahoma,40045,2,0 +2020-03-29,Garfield,Oklahoma,40047,2,0 +2020-03-30,Garfield,Oklahoma,40047,2,0 +2020-03-31,Garfield,Oklahoma,40047,2,0 +2020-04-01,Garfield,Oklahoma,40047,4,0 +2020-04-02,Garfield,Oklahoma,40047,4,0 +2020-04-03,Garfield,Oklahoma,40047,5,0 +2020-04-04,Garfield,Oklahoma,40047,5,0 +2020-04-05,Garfield,Oklahoma,40047,5,0 +2020-04-06,Garfield,Oklahoma,40047,5,0 +2020-04-07,Garfield,Oklahoma,40047,5,0 +2020-04-08,Garfield,Oklahoma,40047,5,0 +2020-04-09,Garfield,Oklahoma,40047,5,0 +2020-04-10,Garfield,Oklahoma,40047,5,1 +2020-04-11,Garfield,Oklahoma,40047,6,1 +2020-04-12,Garfield,Oklahoma,40047,6,1 +2020-04-13,Garfield,Oklahoma,40047,7,1 +2020-04-14,Garfield,Oklahoma,40047,7,1 +2020-04-15,Garfield,Oklahoma,40047,7,1 +2020-04-16,Garfield,Oklahoma,40047,9,1 +2020-04-17,Garfield,Oklahoma,40047,9,1 +2020-04-18,Garfield,Oklahoma,40047,10,1 +2020-04-19,Garfield,Oklahoma,40047,11,1 +2020-04-20,Garfield,Oklahoma,40047,11,1 +2020-04-21,Garfield,Oklahoma,40047,11,1 +2020-04-22,Garfield,Oklahoma,40047,11,1 +2020-04-23,Garfield,Oklahoma,40047,11,1 +2020-04-24,Garfield,Oklahoma,40047,11,1 +2020-04-25,Garfield,Oklahoma,40047,11,1 +2020-04-26,Garfield,Oklahoma,40047,11,1 +2020-04-27,Garfield,Oklahoma,40047,11,1 +2020-04-28,Garfield,Oklahoma,40047,15,1 +2020-04-29,Garfield,Oklahoma,40047,15,1 +2020-04-30,Garfield,Oklahoma,40047,17,1 +2020-05-01,Garfield,Oklahoma,40047,17,1 +2020-05-02,Garfield,Oklahoma,40047,18,1 +2020-05-03,Garfield,Oklahoma,40047,19,1 +2020-05-04,Garfield,Oklahoma,40047,19,1 +2020-05-05,Garfield,Oklahoma,40047,21,1 +2020-05-06,Garfield,Oklahoma,40047,21,1 +2020-05-07,Garfield,Oklahoma,40047,21,1 +2020-05-08,Garfield,Oklahoma,40047,22,1 +2020-05-09,Garfield,Oklahoma,40047,22,1 +2020-05-10,Garfield,Oklahoma,40047,22,1 +2020-05-11,Garfield,Oklahoma,40047,22,1 +2020-05-12,Garfield,Oklahoma,40047,21,1 +2020-05-13,Garfield,Oklahoma,40047,22,1 +2020-05-14,Garfield,Oklahoma,40047,22,1 +2020-05-15,Garfield,Oklahoma,40047,23,1 +2020-05-16,Garfield,Oklahoma,40047,23,1 +2020-05-17,Garfield,Oklahoma,40047,23,1 +2020-05-18,Garfield,Oklahoma,40047,23,1 +2020-05-19,Garfield,Oklahoma,40047,23,1 +2020-05-20,Garfield,Oklahoma,40047,24,1 +2020-05-21,Garfield,Oklahoma,40047,24,1 +2020-05-22,Garfield,Oklahoma,40047,25,1 +2020-05-23,Garfield,Oklahoma,40047,25,1 +2020-05-24,Garfield,Oklahoma,40047,26,1 +2020-05-25,Garfield,Oklahoma,40047,26,1 +2020-05-26,Garfield,Oklahoma,40047,26,1 +2020-05-27,Garfield,Oklahoma,40047,26,1 +2020-05-28,Garfield,Oklahoma,40047,26,1 +2020-05-29,Garfield,Oklahoma,40047,26,1 +2020-05-30,Garfield,Oklahoma,40047,27,1 +2020-05-31,Garfield,Oklahoma,40047,28,1 +2020-06-01,Garfield,Oklahoma,40047,28,1 +2020-06-02,Garfield,Oklahoma,40047,27,1 +2020-06-03,Garfield,Oklahoma,40047,27,1 +2020-06-04,Garfield,Oklahoma,40047,28,1 +2020-06-05,Garfield,Oklahoma,40047,29,1 +2020-06-06,Garfield,Oklahoma,40047,29,1 +2020-06-07,Garfield,Oklahoma,40047,30,1 +2020-06-08,Garfield,Oklahoma,40047,30,1 +2020-06-09,Garfield,Oklahoma,40047,31,1 +2020-06-10,Garfield,Oklahoma,40047,31,1 +2020-06-11,Garfield,Oklahoma,40047,31,1 +2020-06-12,Garfield,Oklahoma,40047,45,1 +2020-06-13,Garfield,Oklahoma,40047,46,1 +2020-06-14,Garfield,Oklahoma,40047,47,1 +2020-06-15,Garfield,Oklahoma,40047,47,1 +2020-06-16,Garfield,Oklahoma,40047,51,1 +2020-06-17,Garfield,Oklahoma,40047,51,1 +2020-06-18,Garfield,Oklahoma,40047,53,1 +2020-06-19,Garfield,Oklahoma,40047,54,1 +2020-06-20,Garfield,Oklahoma,40047,55,1 +2020-06-21,Garfield,Oklahoma,40047,55,1 +2020-06-22,Garfield,Oklahoma,40047,55,1 +2020-06-23,Garfield,Oklahoma,40047,60,1 +2020-06-24,Garfield,Oklahoma,40047,62,2 +2020-06-25,Garfield,Oklahoma,40047,64,2 +2020-06-26,Garfield,Oklahoma,40047,64,2 +2020-06-27,Garfield,Oklahoma,40047,64,2 +2020-06-28,Garfield,Oklahoma,40047,65,2 +2020-06-29,Garfield,Oklahoma,40047,66,2 +2020-06-30,Garfield,Oklahoma,40047,67,2 +2020-07-01,Garfield,Oklahoma,40047,68,2 +2020-07-02,Garfield,Oklahoma,40047,75,2 +2020-07-03,Garfield,Oklahoma,40047,74,2 +2020-07-04,Garfield,Oklahoma,40047,78,2 +2020-07-05,Garfield,Oklahoma,40047,79,2 +2020-07-06,Garfield,Oklahoma,40047,82,2 +2020-07-07,Garfield,Oklahoma,40047,84,2 +2020-07-08,Garfield,Oklahoma,40047,86,2 +2020-07-09,Garfield,Oklahoma,40047,93,2 +2020-03-20,Garvin,Oklahoma,40049,1,0 +2020-03-21,Garvin,Oklahoma,40049,2,0 +2020-03-22,Garvin,Oklahoma,40049,2,0 +2020-03-23,Garvin,Oklahoma,40049,2,0 +2020-03-24,Garvin,Oklahoma,40049,2,0 +2020-03-25,Garvin,Oklahoma,40049,2,0 +2020-03-26,Garvin,Oklahoma,40049,2,0 +2020-03-27,Garvin,Oklahoma,40049,2,0 +2020-03-28,Garvin,Oklahoma,40049,2,0 +2020-03-29,Garvin,Oklahoma,40049,4,0 +2020-03-30,Garvin,Oklahoma,40049,6,0 +2020-03-31,Garvin,Oklahoma,40049,6,0 +2020-04-01,Garvin,Oklahoma,40049,7,0 +2020-04-02,Garvin,Oklahoma,40049,8,0 +2020-04-03,Garvin,Oklahoma,40049,8,0 +2020-04-04,Garvin,Oklahoma,40049,11,0 +2020-04-05,Garvin,Oklahoma,40049,9,0 +2020-04-06,Garvin,Oklahoma,40049,10,0 +2020-04-07,Garvin,Oklahoma,40049,12,0 +2020-04-08,Garvin,Oklahoma,40049,11,0 +2020-04-09,Garvin,Oklahoma,40049,13,0 +2020-04-10,Garvin,Oklahoma,40049,11,0 +2020-04-11,Garvin,Oklahoma,40049,10,0 +2020-04-12,Garvin,Oklahoma,40049,10,0 +2020-04-13,Garvin,Oklahoma,40049,11,0 +2020-04-14,Garvin,Oklahoma,40049,10,0 +2020-04-15,Garvin,Oklahoma,40049,10,0 +2020-04-16,Garvin,Oklahoma,40049,10,0 +2020-04-17,Garvin,Oklahoma,40049,10,0 +2020-04-18,Garvin,Oklahoma,40049,10,0 +2020-04-19,Garvin,Oklahoma,40049,10,0 +2020-04-20,Garvin,Oklahoma,40049,11,0 +2020-04-21,Garvin,Oklahoma,40049,12,0 +2020-04-22,Garvin,Oklahoma,40049,12,0 +2020-04-23,Garvin,Oklahoma,40049,13,0 +2020-04-24,Garvin,Oklahoma,40049,13,0 +2020-04-25,Garvin,Oklahoma,40049,13,0 +2020-04-26,Garvin,Oklahoma,40049,13,0 +2020-04-27,Garvin,Oklahoma,40049,13,0 +2020-04-28,Garvin,Oklahoma,40049,13,0 +2020-04-29,Garvin,Oklahoma,40049,13,1 +2020-04-30,Garvin,Oklahoma,40049,13,1 +2020-05-01,Garvin,Oklahoma,40049,14,1 +2020-05-02,Garvin,Oklahoma,40049,14,1 +2020-05-03,Garvin,Oklahoma,40049,14,1 +2020-05-04,Garvin,Oklahoma,40049,14,1 +2020-05-05,Garvin,Oklahoma,40049,14,1 +2020-05-06,Garvin,Oklahoma,40049,14,1 +2020-05-07,Garvin,Oklahoma,40049,14,1 +2020-05-08,Garvin,Oklahoma,40049,14,1 +2020-05-09,Garvin,Oklahoma,40049,14,1 +2020-05-10,Garvin,Oklahoma,40049,15,1 +2020-05-11,Garvin,Oklahoma,40049,15,1 +2020-05-12,Garvin,Oklahoma,40049,15,1 +2020-05-13,Garvin,Oklahoma,40049,15,1 +2020-05-14,Garvin,Oklahoma,40049,15,1 +2020-05-15,Garvin,Oklahoma,40049,16,1 +2020-05-16,Garvin,Oklahoma,40049,15,1 +2020-05-17,Garvin,Oklahoma,40049,15,1 +2020-05-18,Garvin,Oklahoma,40049,15,1 +2020-05-19,Garvin,Oklahoma,40049,15,1 +2020-05-20,Garvin,Oklahoma,40049,15,1 +2020-05-21,Garvin,Oklahoma,40049,15,1 +2020-05-22,Garvin,Oklahoma,40049,15,1 +2020-05-23,Garvin,Oklahoma,40049,15,1 +2020-05-24,Garvin,Oklahoma,40049,15,1 +2020-05-25,Garvin,Oklahoma,40049,15,1 +2020-05-26,Garvin,Oklahoma,40049,15,1 +2020-05-27,Garvin,Oklahoma,40049,16,1 +2020-05-28,Garvin,Oklahoma,40049,16,1 +2020-05-29,Garvin,Oklahoma,40049,17,1 +2020-05-30,Garvin,Oklahoma,40049,17,1 +2020-05-31,Garvin,Oklahoma,40049,18,1 +2020-06-01,Garvin,Oklahoma,40049,18,1 +2020-06-02,Garvin,Oklahoma,40049,18,1 +2020-06-03,Garvin,Oklahoma,40049,18,1 +2020-06-04,Garvin,Oklahoma,40049,18,1 +2020-06-05,Garvin,Oklahoma,40049,18,1 +2020-06-06,Garvin,Oklahoma,40049,18,1 +2020-06-07,Garvin,Oklahoma,40049,20,1 +2020-06-08,Garvin,Oklahoma,40049,20,1 +2020-06-09,Garvin,Oklahoma,40049,20,1 +2020-06-10,Garvin,Oklahoma,40049,20,1 +2020-06-11,Garvin,Oklahoma,40049,20,1 +2020-06-12,Garvin,Oklahoma,40049,20,1 +2020-06-13,Garvin,Oklahoma,40049,20,1 +2020-06-14,Garvin,Oklahoma,40049,28,1 +2020-06-15,Garvin,Oklahoma,40049,30,1 +2020-06-16,Garvin,Oklahoma,40049,33,1 +2020-06-17,Garvin,Oklahoma,40049,33,1 +2020-06-18,Garvin,Oklahoma,40049,39,1 +2020-06-19,Garvin,Oklahoma,40049,41,1 +2020-06-20,Garvin,Oklahoma,40049,43,1 +2020-06-21,Garvin,Oklahoma,40049,45,1 +2020-06-22,Garvin,Oklahoma,40049,49,1 +2020-06-23,Garvin,Oklahoma,40049,51,1 +2020-06-24,Garvin,Oklahoma,40049,52,1 +2020-06-25,Garvin,Oklahoma,40049,54,1 +2020-06-26,Garvin,Oklahoma,40049,58,1 +2020-06-27,Garvin,Oklahoma,40049,62,1 +2020-06-28,Garvin,Oklahoma,40049,68,1 +2020-06-29,Garvin,Oklahoma,40049,69,1 +2020-06-30,Garvin,Oklahoma,40049,70,1 +2020-07-01,Garvin,Oklahoma,40049,73,1 +2020-07-02,Garvin,Oklahoma,40049,73,1 +2020-07-03,Garvin,Oklahoma,40049,81,1 +2020-07-04,Garvin,Oklahoma,40049,89,1 +2020-07-05,Garvin,Oklahoma,40049,91,1 +2020-07-06,Garvin,Oklahoma,40049,91,1 +2020-07-07,Garvin,Oklahoma,40049,94,2 +2020-07-08,Garvin,Oklahoma,40049,98,2 +2020-07-09,Garvin,Oklahoma,40049,106,2 +2020-03-19,Grady,Oklahoma,40051,1,0 +2020-03-20,Grady,Oklahoma,40051,1,0 +2020-03-21,Grady,Oklahoma,40051,1,0 +2020-03-22,Grady,Oklahoma,40051,1,0 +2020-03-23,Grady,Oklahoma,40051,1,0 +2020-03-24,Grady,Oklahoma,40051,1,0 +2020-03-25,Grady,Oklahoma,40051,1,0 +2020-03-26,Grady,Oklahoma,40051,2,0 +2020-03-27,Grady,Oklahoma,40051,2,0 +2020-03-28,Grady,Oklahoma,40051,2,0 +2020-03-29,Grady,Oklahoma,40051,2,0 +2020-03-30,Grady,Oklahoma,40051,3,0 +2020-03-31,Grady,Oklahoma,40051,2,0 +2020-04-01,Grady,Oklahoma,40051,3,0 +2020-04-02,Grady,Oklahoma,40051,3,0 +2020-04-03,Grady,Oklahoma,40051,5,0 +2020-04-04,Grady,Oklahoma,40051,6,0 +2020-04-05,Grady,Oklahoma,40051,7,0 +2020-04-06,Grady,Oklahoma,40051,8,0 +2020-04-07,Grady,Oklahoma,40051,9,0 +2020-04-08,Grady,Oklahoma,40051,9,0 +2020-04-09,Grady,Oklahoma,40051,9,0 +2020-04-10,Grady,Oklahoma,40051,11,0 +2020-04-11,Grady,Oklahoma,40051,11,0 +2020-04-12,Grady,Oklahoma,40051,11,0 +2020-04-13,Grady,Oklahoma,40051,11,0 +2020-04-14,Grady,Oklahoma,40051,12,0 +2020-04-15,Grady,Oklahoma,40051,14,1 +2020-04-16,Grady,Oklahoma,40051,16,1 +2020-04-17,Grady,Oklahoma,40051,19,1 +2020-04-18,Grady,Oklahoma,40051,20,1 +2020-04-19,Grady,Oklahoma,40051,20,1 +2020-04-20,Grady,Oklahoma,40051,23,1 +2020-04-21,Grady,Oklahoma,40051,23,1 +2020-04-22,Grady,Oklahoma,40051,25,1 +2020-04-23,Grady,Oklahoma,40051,31,1 +2020-04-24,Grady,Oklahoma,40051,31,1 +2020-04-25,Grady,Oklahoma,40051,34,1 +2020-04-26,Grady,Oklahoma,40051,34,1 +2020-04-27,Grady,Oklahoma,40051,34,1 +2020-04-28,Grady,Oklahoma,40051,35,1 +2020-04-29,Grady,Oklahoma,40051,35,1 +2020-04-30,Grady,Oklahoma,40051,36,2 +2020-05-01,Grady,Oklahoma,40051,36,2 +2020-05-02,Grady,Oklahoma,40051,38,2 +2020-05-03,Grady,Oklahoma,40051,39,2 +2020-05-04,Grady,Oklahoma,40051,40,2 +2020-05-05,Grady,Oklahoma,40051,40,2 +2020-05-06,Grady,Oklahoma,40051,41,2 +2020-05-07,Grady,Oklahoma,40051,41,2 +2020-05-08,Grady,Oklahoma,40051,42,2 +2020-05-09,Grady,Oklahoma,40051,45,2 +2020-05-10,Grady,Oklahoma,40051,45,2 +2020-05-11,Grady,Oklahoma,40051,46,2 +2020-05-12,Grady,Oklahoma,40051,52,2 +2020-05-13,Grady,Oklahoma,40051,54,2 +2020-05-14,Grady,Oklahoma,40051,58,2 +2020-05-15,Grady,Oklahoma,40051,60,2 +2020-05-16,Grady,Oklahoma,40051,64,2 +2020-05-17,Grady,Oklahoma,40051,64,2 +2020-05-18,Grady,Oklahoma,40051,64,2 +2020-05-19,Grady,Oklahoma,40051,65,2 +2020-05-20,Grady,Oklahoma,40051,68,2 +2020-05-21,Grady,Oklahoma,40051,71,2 +2020-05-22,Grady,Oklahoma,40051,72,2 +2020-05-23,Grady,Oklahoma,40051,73,2 +2020-05-24,Grady,Oklahoma,40051,76,2 +2020-05-25,Grady,Oklahoma,40051,79,3 +2020-05-26,Grady,Oklahoma,40051,80,3 +2020-05-27,Grady,Oklahoma,40051,83,3 +2020-05-28,Grady,Oklahoma,40051,83,3 +2020-05-29,Grady,Oklahoma,40051,85,3 +2020-05-30,Grady,Oklahoma,40051,92,3 +2020-05-31,Grady,Oklahoma,40051,97,3 +2020-06-01,Grady,Oklahoma,40051,97,3 +2020-06-02,Grady,Oklahoma,40051,99,3 +2020-06-03,Grady,Oklahoma,40051,100,3 +2020-06-04,Grady,Oklahoma,40051,104,3 +2020-06-05,Grady,Oklahoma,40051,107,3 +2020-06-06,Grady,Oklahoma,40051,107,3 +2020-06-07,Grady,Oklahoma,40051,115,3 +2020-06-08,Grady,Oklahoma,40051,115,3 +2020-06-09,Grady,Oklahoma,40051,115,3 +2020-06-10,Grady,Oklahoma,40051,115,3 +2020-06-11,Grady,Oklahoma,40051,115,3 +2020-06-12,Grady,Oklahoma,40051,116,3 +2020-06-13,Grady,Oklahoma,40051,116,3 +2020-06-14,Grady,Oklahoma,40051,117,3 +2020-06-15,Grady,Oklahoma,40051,118,3 +2020-06-16,Grady,Oklahoma,40051,118,4 +2020-06-17,Grady,Oklahoma,40051,120,4 +2020-06-18,Grady,Oklahoma,40051,122,4 +2020-06-19,Grady,Oklahoma,40051,123,4 +2020-06-20,Grady,Oklahoma,40051,123,4 +2020-06-21,Grady,Oklahoma,40051,125,5 +2020-06-22,Grady,Oklahoma,40051,125,5 +2020-06-23,Grady,Oklahoma,40051,125,5 +2020-06-24,Grady,Oklahoma,40051,124,5 +2020-06-25,Grady,Oklahoma,40051,126,5 +2020-06-26,Grady,Oklahoma,40051,128,5 +2020-06-27,Grady,Oklahoma,40051,130,5 +2020-06-28,Grady,Oklahoma,40051,135,5 +2020-06-29,Grady,Oklahoma,40051,138,5 +2020-06-30,Grady,Oklahoma,40051,137,5 +2020-07-01,Grady,Oklahoma,40051,139,5 +2020-07-02,Grady,Oklahoma,40051,144,5 +2020-07-03,Grady,Oklahoma,40051,153,5 +2020-07-04,Grady,Oklahoma,40051,169,5 +2020-07-05,Grady,Oklahoma,40051,173,5 +2020-07-06,Grady,Oklahoma,40051,198,5 +2020-07-07,Grady,Oklahoma,40051,206,5 +2020-07-08,Grady,Oklahoma,40051,212,5 +2020-07-09,Grady,Oklahoma,40051,224,5 +2020-04-03,Grant,Oklahoma,40053,1,0 +2020-04-04,Grant,Oklahoma,40053,1,0 +2020-04-05,Grant,Oklahoma,40053,1,0 +2020-04-06,Grant,Oklahoma,40053,1,0 +2020-04-07,Grant,Oklahoma,40053,1,0 +2020-04-08,Grant,Oklahoma,40053,1,0 +2020-04-09,Grant,Oklahoma,40053,1,0 +2020-04-10,Grant,Oklahoma,40053,1,0 +2020-04-11,Grant,Oklahoma,40053,2,0 +2020-04-12,Grant,Oklahoma,40053,2,0 +2020-04-13,Grant,Oklahoma,40053,2,0 +2020-04-14,Grant,Oklahoma,40053,2,0 +2020-04-15,Grant,Oklahoma,40053,2,0 +2020-04-16,Grant,Oklahoma,40053,2,0 +2020-04-17,Grant,Oklahoma,40053,2,0 +2020-04-18,Grant,Oklahoma,40053,2,0 +2020-04-19,Grant,Oklahoma,40053,2,0 +2020-04-20,Grant,Oklahoma,40053,2,0 +2020-04-21,Grant,Oklahoma,40053,2,0 +2020-04-22,Grant,Oklahoma,40053,2,0 +2020-04-23,Grant,Oklahoma,40053,2,0 +2020-04-24,Grant,Oklahoma,40053,2,0 +2020-04-25,Grant,Oklahoma,40053,2,0 +2020-04-26,Grant,Oklahoma,40053,2,0 +2020-04-27,Grant,Oklahoma,40053,2,0 +2020-04-28,Grant,Oklahoma,40053,2,0 +2020-04-29,Grant,Oklahoma,40053,2,0 +2020-04-30,Grant,Oklahoma,40053,2,0 +2020-05-01,Grant,Oklahoma,40053,2,0 +2020-05-02,Grant,Oklahoma,40053,2,0 +2020-05-03,Grant,Oklahoma,40053,2,0 +2020-05-04,Grant,Oklahoma,40053,2,0 +2020-05-05,Grant,Oklahoma,40053,2,0 +2020-05-06,Grant,Oklahoma,40053,2,0 +2020-05-07,Grant,Oklahoma,40053,2,0 +2020-05-08,Grant,Oklahoma,40053,2,0 +2020-05-09,Grant,Oklahoma,40053,2,0 +2020-05-10,Grant,Oklahoma,40053,2,0 +2020-05-11,Grant,Oklahoma,40053,2,0 +2020-05-12,Grant,Oklahoma,40053,2,0 +2020-05-13,Grant,Oklahoma,40053,2,0 +2020-05-14,Grant,Oklahoma,40053,2,0 +2020-05-15,Grant,Oklahoma,40053,2,0 +2020-05-16,Grant,Oklahoma,40053,2,0 +2020-05-17,Grant,Oklahoma,40053,2,0 +2020-05-18,Grant,Oklahoma,40053,2,0 +2020-05-19,Grant,Oklahoma,40053,2,0 +2020-05-20,Grant,Oklahoma,40053,2,0 +2020-05-21,Grant,Oklahoma,40053,2,0 +2020-05-22,Grant,Oklahoma,40053,2,0 +2020-05-23,Grant,Oklahoma,40053,2,0 +2020-05-24,Grant,Oklahoma,40053,2,0 +2020-05-25,Grant,Oklahoma,40053,2,0 +2020-05-26,Grant,Oklahoma,40053,2,0 +2020-05-27,Grant,Oklahoma,40053,2,0 +2020-05-28,Grant,Oklahoma,40053,2,0 +2020-05-29,Grant,Oklahoma,40053,2,0 +2020-05-30,Grant,Oklahoma,40053,2,0 +2020-05-31,Grant,Oklahoma,40053,2,0 +2020-06-01,Grant,Oklahoma,40053,2,0 +2020-06-02,Grant,Oklahoma,40053,2,0 +2020-06-03,Grant,Oklahoma,40053,2,0 +2020-06-04,Grant,Oklahoma,40053,2,0 +2020-06-05,Grant,Oklahoma,40053,2,0 +2020-06-06,Grant,Oklahoma,40053,2,0 +2020-06-07,Grant,Oklahoma,40053,2,0 +2020-06-08,Grant,Oklahoma,40053,2,0 +2020-06-09,Grant,Oklahoma,40053,2,0 +2020-06-10,Grant,Oklahoma,40053,2,0 +2020-06-11,Grant,Oklahoma,40053,2,0 +2020-06-12,Grant,Oklahoma,40053,2,0 +2020-06-13,Grant,Oklahoma,40053,2,0 +2020-06-14,Grant,Oklahoma,40053,2,0 +2020-06-15,Grant,Oklahoma,40053,2,0 +2020-06-16,Grant,Oklahoma,40053,2,0 +2020-06-17,Grant,Oklahoma,40053,2,0 +2020-06-18,Grant,Oklahoma,40053,2,0 +2020-06-19,Grant,Oklahoma,40053,2,0 +2020-06-20,Grant,Oklahoma,40053,2,0 +2020-06-21,Grant,Oklahoma,40053,2,0 +2020-06-22,Grant,Oklahoma,40053,2,0 +2020-06-23,Grant,Oklahoma,40053,2,0 +2020-06-24,Grant,Oklahoma,40053,2,0 +2020-06-25,Grant,Oklahoma,40053,2,0 +2020-06-26,Grant,Oklahoma,40053,2,0 +2020-06-27,Grant,Oklahoma,40053,2,0 +2020-06-28,Grant,Oklahoma,40053,2,0 +2020-06-29,Grant,Oklahoma,40053,2,0 +2020-06-30,Grant,Oklahoma,40053,2,0 +2020-07-01,Grant,Oklahoma,40053,2,0 +2020-07-02,Grant,Oklahoma,40053,2,0 +2020-07-03,Grant,Oklahoma,40053,2,0 +2020-07-04,Grant,Oklahoma,40053,2,0 +2020-07-05,Grant,Oklahoma,40053,2,0 +2020-07-06,Grant,Oklahoma,40053,2,0 +2020-07-07,Grant,Oklahoma,40053,2,0 +2020-07-08,Grant,Oklahoma,40053,2,0 +2020-07-09,Grant,Oklahoma,40053,2,0 +2020-04-01,Greer,Oklahoma,40055,2,1 +2020-04-02,Greer,Oklahoma,40055,2,1 +2020-04-03,Greer,Oklahoma,40055,5,1 +2020-04-04,Greer,Oklahoma,40055,6,1 +2020-04-05,Greer,Oklahoma,40055,25,1 +2020-04-06,Greer,Oklahoma,40055,26,3 +2020-04-07,Greer,Oklahoma,40055,31,3 +2020-04-08,Greer,Oklahoma,40055,32,4 +2020-04-09,Greer,Oklahoma,40055,37,4 +2020-04-10,Greer,Oklahoma,40055,46,4 +2020-04-11,Greer,Oklahoma,40055,48,4 +2020-04-12,Greer,Oklahoma,40055,49,4 +2020-04-13,Greer,Oklahoma,40055,50,4 +2020-04-14,Greer,Oklahoma,40055,49,4 +2020-04-15,Greer,Oklahoma,40055,50,4 +2020-04-16,Greer,Oklahoma,40055,50,4 +2020-04-17,Greer,Oklahoma,40055,54,5 +2020-04-18,Greer,Oklahoma,40055,55,5 +2020-04-19,Greer,Oklahoma,40055,55,5 +2020-04-20,Greer,Oklahoma,40055,57,5 +2020-04-21,Greer,Oklahoma,40055,57,6 +2020-04-22,Greer,Oklahoma,40055,61,6 +2020-04-23,Greer,Oklahoma,40055,63,6 +2020-04-24,Greer,Oklahoma,40055,64,6 +2020-04-25,Greer,Oklahoma,40055,64,6 +2020-04-26,Greer,Oklahoma,40055,64,6 +2020-04-27,Greer,Oklahoma,40055,64,6 +2020-04-28,Greer,Oklahoma,40055,64,6 +2020-04-29,Greer,Oklahoma,40055,64,6 +2020-04-30,Greer,Oklahoma,40055,65,6 +2020-05-01,Greer,Oklahoma,40055,65,6 +2020-05-02,Greer,Oklahoma,40055,65,6 +2020-05-03,Greer,Oklahoma,40055,65,6 +2020-05-04,Greer,Oklahoma,40055,65,6 +2020-05-05,Greer,Oklahoma,40055,65,6 +2020-05-06,Greer,Oklahoma,40055,65,6 +2020-05-07,Greer,Oklahoma,40055,65,6 +2020-05-08,Greer,Oklahoma,40055,65,6 +2020-05-09,Greer,Oklahoma,40055,65,6 +2020-05-10,Greer,Oklahoma,40055,65,6 +2020-05-11,Greer,Oklahoma,40055,65,6 +2020-05-12,Greer,Oklahoma,40055,66,7 +2020-05-13,Greer,Oklahoma,40055,66,7 +2020-05-14,Greer,Oklahoma,40055,66,7 +2020-05-15,Greer,Oklahoma,40055,66,7 +2020-05-16,Greer,Oklahoma,40055,66,7 +2020-05-17,Greer,Oklahoma,40055,66,7 +2020-05-18,Greer,Oklahoma,40055,66,7 +2020-05-19,Greer,Oklahoma,40055,66,7 +2020-05-20,Greer,Oklahoma,40055,66,7 +2020-05-21,Greer,Oklahoma,40055,66,7 +2020-05-22,Greer,Oklahoma,40055,66,7 +2020-05-23,Greer,Oklahoma,40055,66,7 +2020-05-24,Greer,Oklahoma,40055,66,7 +2020-05-25,Greer,Oklahoma,40055,66,7 +2020-05-26,Greer,Oklahoma,40055,66,7 +2020-05-27,Greer,Oklahoma,40055,66,7 +2020-05-28,Greer,Oklahoma,40055,66,7 +2020-05-29,Greer,Oklahoma,40055,66,7 +2020-05-30,Greer,Oklahoma,40055,66,7 +2020-05-31,Greer,Oklahoma,40055,66,7 +2020-06-01,Greer,Oklahoma,40055,66,7 +2020-06-02,Greer,Oklahoma,40055,66,7 +2020-06-03,Greer,Oklahoma,40055,66,7 +2020-06-04,Greer,Oklahoma,40055,66,7 +2020-06-05,Greer,Oklahoma,40055,66,7 +2020-06-06,Greer,Oklahoma,40055,66,7 +2020-06-07,Greer,Oklahoma,40055,66,7 +2020-06-08,Greer,Oklahoma,40055,66,7 +2020-06-09,Greer,Oklahoma,40055,66,7 +2020-06-10,Greer,Oklahoma,40055,66,7 +2020-06-11,Greer,Oklahoma,40055,66,7 +2020-06-12,Greer,Oklahoma,40055,66,7 +2020-06-13,Greer,Oklahoma,40055,66,7 +2020-06-14,Greer,Oklahoma,40055,66,7 +2020-06-15,Greer,Oklahoma,40055,66,7 +2020-06-16,Greer,Oklahoma,40055,66,7 +2020-06-17,Greer,Oklahoma,40055,66,7 +2020-06-18,Greer,Oklahoma,40055,66,7 +2020-06-19,Greer,Oklahoma,40055,66,7 +2020-06-20,Greer,Oklahoma,40055,66,7 +2020-06-21,Greer,Oklahoma,40055,66,7 +2020-06-22,Greer,Oklahoma,40055,66,7 +2020-06-23,Greer,Oklahoma,40055,66,7 +2020-06-24,Greer,Oklahoma,40055,66,7 +2020-06-25,Greer,Oklahoma,40055,66,7 +2020-06-26,Greer,Oklahoma,40055,66,7 +2020-06-27,Greer,Oklahoma,40055,66,7 +2020-06-28,Greer,Oklahoma,40055,66,7 +2020-06-29,Greer,Oklahoma,40055,66,7 +2020-06-30,Greer,Oklahoma,40055,66,7 +2020-07-01,Greer,Oklahoma,40055,66,7 +2020-07-02,Greer,Oklahoma,40055,66,7 +2020-07-03,Greer,Oklahoma,40055,66,7 +2020-07-04,Greer,Oklahoma,40055,66,7 +2020-07-05,Greer,Oklahoma,40055,66,7 +2020-07-06,Greer,Oklahoma,40055,66,7 +2020-07-07,Greer,Oklahoma,40055,66,7 +2020-07-08,Greer,Oklahoma,40055,67,7 +2020-07-09,Greer,Oklahoma,40055,67,7 +2020-07-01,Harmon,Oklahoma,40057,1,0 +2020-07-02,Harmon,Oklahoma,40057,1,0 +2020-07-03,Harmon,Oklahoma,40057,1,0 +2020-07-04,Harmon,Oklahoma,40057,2,0 +2020-07-05,Harmon,Oklahoma,40057,2,0 +2020-07-06,Harmon,Oklahoma,40057,2,0 +2020-07-07,Harmon,Oklahoma,40057,3,0 +2020-07-08,Harmon,Oklahoma,40057,3,0 +2020-07-09,Harmon,Oklahoma,40057,3,0 +2020-04-18,Harper,Oklahoma,40059,1,0 +2020-04-19,Harper,Oklahoma,40059,1,0 +2020-04-20,Harper,Oklahoma,40059,1,0 +2020-04-21,Harper,Oklahoma,40059,1,0 +2020-04-22,Harper,Oklahoma,40059,1,0 +2020-04-23,Harper,Oklahoma,40059,1,0 +2020-04-24,Harper,Oklahoma,40059,1,0 +2020-04-25,Harper,Oklahoma,40059,1,0 +2020-04-26,Harper,Oklahoma,40059,1,0 +2020-04-27,Harper,Oklahoma,40059,1,0 +2020-04-28,Harper,Oklahoma,40059,1,0 +2020-04-29,Harper,Oklahoma,40059,1,0 +2020-04-30,Harper,Oklahoma,40059,1,0 +2020-05-01,Harper,Oklahoma,40059,1,0 +2020-05-02,Harper,Oklahoma,40059,1,0 +2020-05-03,Harper,Oklahoma,40059,1,0 +2020-05-04,Harper,Oklahoma,40059,1,0 +2020-05-05,Harper,Oklahoma,40059,1,0 +2020-05-06,Harper,Oklahoma,40059,1,0 +2020-05-07,Harper,Oklahoma,40059,1,0 +2020-05-08,Harper,Oklahoma,40059,1,0 +2020-05-09,Harper,Oklahoma,40059,1,0 +2020-05-10,Harper,Oklahoma,40059,1,0 +2020-05-11,Harper,Oklahoma,40059,1,0 +2020-05-12,Harper,Oklahoma,40059,1,0 +2020-05-13,Harper,Oklahoma,40059,1,0 +2020-05-14,Harper,Oklahoma,40059,1,0 +2020-05-15,Harper,Oklahoma,40059,1,0 +2020-05-16,Harper,Oklahoma,40059,1,0 +2020-05-17,Harper,Oklahoma,40059,1,0 +2020-05-18,Harper,Oklahoma,40059,1,0 +2020-05-19,Harper,Oklahoma,40059,1,0 +2020-05-20,Harper,Oklahoma,40059,1,0 +2020-05-21,Harper,Oklahoma,40059,1,0 +2020-05-22,Harper,Oklahoma,40059,1,0 +2020-05-23,Harper,Oklahoma,40059,1,0 +2020-05-24,Harper,Oklahoma,40059,1,0 +2020-05-25,Harper,Oklahoma,40059,1,0 +2020-05-26,Harper,Oklahoma,40059,1,0 +2020-05-27,Harper,Oklahoma,40059,1,0 +2020-05-28,Harper,Oklahoma,40059,1,0 +2020-05-29,Harper,Oklahoma,40059,1,0 +2020-05-30,Harper,Oklahoma,40059,1,0 +2020-05-31,Harper,Oklahoma,40059,1,0 +2020-06-01,Harper,Oklahoma,40059,1,0 +2020-06-02,Harper,Oklahoma,40059,1,0 +2020-06-03,Harper,Oklahoma,40059,1,0 +2020-06-04,Harper,Oklahoma,40059,1,0 +2020-06-05,Harper,Oklahoma,40059,1,0 +2020-06-06,Harper,Oklahoma,40059,1,0 +2020-06-07,Harper,Oklahoma,40059,1,0 +2020-06-08,Harper,Oklahoma,40059,1,0 +2020-06-09,Harper,Oklahoma,40059,1,0 +2020-06-10,Harper,Oklahoma,40059,1,0 +2020-06-11,Harper,Oklahoma,40059,1,0 +2020-06-12,Harper,Oklahoma,40059,1,0 +2020-06-13,Harper,Oklahoma,40059,1,0 +2020-06-14,Harper,Oklahoma,40059,1,0 +2020-06-15,Harper,Oklahoma,40059,1,0 +2020-06-16,Harper,Oklahoma,40059,1,0 +2020-06-17,Harper,Oklahoma,40059,1,0 +2020-06-18,Harper,Oklahoma,40059,1,0 +2020-06-19,Harper,Oklahoma,40059,1,0 +2020-06-20,Harper,Oklahoma,40059,1,0 +2020-06-21,Harper,Oklahoma,40059,1,0 +2020-06-22,Harper,Oklahoma,40059,1,0 +2020-06-23,Harper,Oklahoma,40059,1,0 +2020-06-24,Harper,Oklahoma,40059,1,0 +2020-06-25,Harper,Oklahoma,40059,1,0 +2020-06-26,Harper,Oklahoma,40059,1,0 +2020-06-27,Harper,Oklahoma,40059,1,0 +2020-06-28,Harper,Oklahoma,40059,1,0 +2020-06-29,Harper,Oklahoma,40059,1,0 +2020-06-30,Harper,Oklahoma,40059,1,0 +2020-07-01,Harper,Oklahoma,40059,1,0 +2020-07-02,Harper,Oklahoma,40059,1,0 +2020-07-03,Harper,Oklahoma,40059,1,0 +2020-07-04,Harper,Oklahoma,40059,1,0 +2020-07-05,Harper,Oklahoma,40059,1,0 +2020-07-06,Harper,Oklahoma,40059,1,0 +2020-07-07,Harper,Oklahoma,40059,1,0 +2020-07-08,Harper,Oklahoma,40059,1,0 +2020-07-09,Harper,Oklahoma,40059,1,0 +2020-04-17,Haskell,Oklahoma,40061,1,0 +2020-04-18,Haskell,Oklahoma,40061,2,0 +2020-04-19,Haskell,Oklahoma,40061,2,0 +2020-04-20,Haskell,Oklahoma,40061,2,0 +2020-04-21,Haskell,Oklahoma,40061,3,0 +2020-04-22,Haskell,Oklahoma,40061,3,0 +2020-04-23,Haskell,Oklahoma,40061,3,0 +2020-04-24,Haskell,Oklahoma,40061,3,0 +2020-04-25,Haskell,Oklahoma,40061,3,0 +2020-04-26,Haskell,Oklahoma,40061,5,0 +2020-04-27,Haskell,Oklahoma,40061,5,0 +2020-04-28,Haskell,Oklahoma,40061,5,0 +2020-04-29,Haskell,Oklahoma,40061,4,0 +2020-04-30,Haskell,Oklahoma,40061,4,0 +2020-05-01,Haskell,Oklahoma,40061,4,0 +2020-05-02,Haskell,Oklahoma,40061,5,0 +2020-05-03,Haskell,Oklahoma,40061,5,0 +2020-05-04,Haskell,Oklahoma,40061,5,0 +2020-05-05,Haskell,Oklahoma,40061,5,0 +2020-05-06,Haskell,Oklahoma,40061,5,0 +2020-05-07,Haskell,Oklahoma,40061,5,0 +2020-05-08,Haskell,Oklahoma,40061,5,0 +2020-05-09,Haskell,Oklahoma,40061,5,0 +2020-05-10,Haskell,Oklahoma,40061,5,0 +2020-05-11,Haskell,Oklahoma,40061,5,0 +2020-05-12,Haskell,Oklahoma,40061,5,0 +2020-05-13,Haskell,Oklahoma,40061,5,0 +2020-05-14,Haskell,Oklahoma,40061,5,0 +2020-05-15,Haskell,Oklahoma,40061,5,0 +2020-05-16,Haskell,Oklahoma,40061,5,0 +2020-05-17,Haskell,Oklahoma,40061,5,0 +2020-05-18,Haskell,Oklahoma,40061,5,0 +2020-05-19,Haskell,Oklahoma,40061,5,0 +2020-05-20,Haskell,Oklahoma,40061,6,0 +2020-05-21,Haskell,Oklahoma,40061,6,0 +2020-05-22,Haskell,Oklahoma,40061,6,0 +2020-05-23,Haskell,Oklahoma,40061,6,0 +2020-05-24,Haskell,Oklahoma,40061,6,0 +2020-05-25,Haskell,Oklahoma,40061,6,0 +2020-05-26,Haskell,Oklahoma,40061,6,0 +2020-05-27,Haskell,Oklahoma,40061,6,0 +2020-05-28,Haskell,Oklahoma,40061,6,0 +2020-05-29,Haskell,Oklahoma,40061,6,0 +2020-05-30,Haskell,Oklahoma,40061,6,0 +2020-05-31,Haskell,Oklahoma,40061,6,0 +2020-06-01,Haskell,Oklahoma,40061,6,0 +2020-06-02,Haskell,Oklahoma,40061,6,0 +2020-06-03,Haskell,Oklahoma,40061,6,0 +2020-06-04,Haskell,Oklahoma,40061,6,0 +2020-06-05,Haskell,Oklahoma,40061,6,0 +2020-06-06,Haskell,Oklahoma,40061,6,0 +2020-06-07,Haskell,Oklahoma,40061,6,0 +2020-06-08,Haskell,Oklahoma,40061,6,0 +2020-06-09,Haskell,Oklahoma,40061,6,0 +2020-06-10,Haskell,Oklahoma,40061,6,0 +2020-06-11,Haskell,Oklahoma,40061,6,0 +2020-06-12,Haskell,Oklahoma,40061,6,0 +2020-06-13,Haskell,Oklahoma,40061,6,0 +2020-06-14,Haskell,Oklahoma,40061,6,0 +2020-06-15,Haskell,Oklahoma,40061,6,0 +2020-06-16,Haskell,Oklahoma,40061,6,0 +2020-06-17,Haskell,Oklahoma,40061,6,0 +2020-06-18,Haskell,Oklahoma,40061,7,0 +2020-06-19,Haskell,Oklahoma,40061,7,0 +2020-06-20,Haskell,Oklahoma,40061,7,0 +2020-06-21,Haskell,Oklahoma,40061,7,0 +2020-06-22,Haskell,Oklahoma,40061,7,0 +2020-06-23,Haskell,Oklahoma,40061,7,0 +2020-06-24,Haskell,Oklahoma,40061,7,0 +2020-06-25,Haskell,Oklahoma,40061,7,0 +2020-06-26,Haskell,Oklahoma,40061,8,0 +2020-06-27,Haskell,Oklahoma,40061,8,0 +2020-06-28,Haskell,Oklahoma,40061,8,0 +2020-06-29,Haskell,Oklahoma,40061,9,0 +2020-06-30,Haskell,Oklahoma,40061,10,0 +2020-07-01,Haskell,Oklahoma,40061,9,0 +2020-07-02,Haskell,Oklahoma,40061,10,0 +2020-07-03,Haskell,Oklahoma,40061,11,0 +2020-07-04,Haskell,Oklahoma,40061,12,0 +2020-07-05,Haskell,Oklahoma,40061,12,0 +2020-07-06,Haskell,Oklahoma,40061,13,0 +2020-07-07,Haskell,Oklahoma,40061,13,0 +2020-07-08,Haskell,Oklahoma,40061,15,0 +2020-07-09,Haskell,Oklahoma,40061,16,0 +2020-05-29,Hughes,Oklahoma,40063,1,0 +2020-05-30,Hughes,Oklahoma,40063,1,0 +2020-05-31,Hughes,Oklahoma,40063,1,0 +2020-06-01,Hughes,Oklahoma,40063,1,0 +2020-06-02,Hughes,Oklahoma,40063,3,0 +2020-06-03,Hughes,Oklahoma,40063,3,0 +2020-06-04,Hughes,Oklahoma,40063,3,0 +2020-06-05,Hughes,Oklahoma,40063,3,0 +2020-06-06,Hughes,Oklahoma,40063,3,0 +2020-06-07,Hughes,Oklahoma,40063,3,0 +2020-06-08,Hughes,Oklahoma,40063,3,0 +2020-06-09,Hughes,Oklahoma,40063,3,0 +2020-06-10,Hughes,Oklahoma,40063,3,0 +2020-06-11,Hughes,Oklahoma,40063,3,0 +2020-06-12,Hughes,Oklahoma,40063,3,0 +2020-06-13,Hughes,Oklahoma,40063,3,0 +2020-06-14,Hughes,Oklahoma,40063,3,0 +2020-06-15,Hughes,Oklahoma,40063,3,0 +2020-06-16,Hughes,Oklahoma,40063,3,0 +2020-06-17,Hughes,Oklahoma,40063,3,0 +2020-06-18,Hughes,Oklahoma,40063,3,0 +2020-06-19,Hughes,Oklahoma,40063,3,0 +2020-06-20,Hughes,Oklahoma,40063,3,0 +2020-06-21,Hughes,Oklahoma,40063,5,0 +2020-06-22,Hughes,Oklahoma,40063,5,0 +2020-06-23,Hughes,Oklahoma,40063,5,0 +2020-06-24,Hughes,Oklahoma,40063,6,0 +2020-06-25,Hughes,Oklahoma,40063,6,0 +2020-06-26,Hughes,Oklahoma,40063,7,0 +2020-06-27,Hughes,Oklahoma,40063,7,0 +2020-06-28,Hughes,Oklahoma,40063,10,0 +2020-06-29,Hughes,Oklahoma,40063,10,0 +2020-06-30,Hughes,Oklahoma,40063,10,0 +2020-07-01,Hughes,Oklahoma,40063,11,0 +2020-07-02,Hughes,Oklahoma,40063,11,0 +2020-07-03,Hughes,Oklahoma,40063,13,0 +2020-07-04,Hughes,Oklahoma,40063,13,0 +2020-07-05,Hughes,Oklahoma,40063,13,0 +2020-07-06,Hughes,Oklahoma,40063,13,0 +2020-07-07,Hughes,Oklahoma,40063,13,0 +2020-07-08,Hughes,Oklahoma,40063,13,0 +2020-07-09,Hughes,Oklahoma,40063,13,0 +2020-03-14,Jackson,Oklahoma,40065,1,0 +2020-03-15,Jackson,Oklahoma,40065,1,0 +2020-03-16,Jackson,Oklahoma,40065,1,0 +2020-03-17,Jackson,Oklahoma,40065,1,0 +2020-03-18,Jackson,Oklahoma,40065,1,0 +2020-03-19,Jackson,Oklahoma,40065,1,0 +2020-03-20,Jackson,Oklahoma,40065,1,0 +2020-03-21,Jackson,Oklahoma,40065,1,0 +2020-03-22,Jackson,Oklahoma,40065,1,0 +2020-03-23,Jackson,Oklahoma,40065,1,0 +2020-03-24,Jackson,Oklahoma,40065,1,0 +2020-03-25,Jackson,Oklahoma,40065,1,0 +2020-03-26,Jackson,Oklahoma,40065,1,0 +2020-03-27,Jackson,Oklahoma,40065,1,0 +2020-03-28,Jackson,Oklahoma,40065,1,0 +2020-03-29,Jackson,Oklahoma,40065,1,0 +2020-03-30,Jackson,Oklahoma,40065,1,0 +2020-03-31,Jackson,Oklahoma,40065,1,0 +2020-04-01,Jackson,Oklahoma,40065,2,0 +2020-04-02,Jackson,Oklahoma,40065,2,0 +2020-04-03,Jackson,Oklahoma,40065,4,0 +2020-04-04,Jackson,Oklahoma,40065,4,0 +2020-04-05,Jackson,Oklahoma,40065,4,0 +2020-04-06,Jackson,Oklahoma,40065,4,0 +2020-04-07,Jackson,Oklahoma,40065,6,0 +2020-04-08,Jackson,Oklahoma,40065,6,0 +2020-04-09,Jackson,Oklahoma,40065,6,0 +2020-04-10,Jackson,Oklahoma,40065,6,0 +2020-04-11,Jackson,Oklahoma,40065,7,0 +2020-04-12,Jackson,Oklahoma,40065,7,0 +2020-04-13,Jackson,Oklahoma,40065,7,0 +2020-04-14,Jackson,Oklahoma,40065,7,0 +2020-04-15,Jackson,Oklahoma,40065,6,0 +2020-04-16,Jackson,Oklahoma,40065,6,0 +2020-04-17,Jackson,Oklahoma,40065,6,0 +2020-04-18,Jackson,Oklahoma,40065,6,0 +2020-04-19,Jackson,Oklahoma,40065,6,0 +2020-04-20,Jackson,Oklahoma,40065,6,0 +2020-04-21,Jackson,Oklahoma,40065,8,0 +2020-04-22,Jackson,Oklahoma,40065,8,0 +2020-04-23,Jackson,Oklahoma,40065,13,0 +2020-04-24,Jackson,Oklahoma,40065,13,0 +2020-04-25,Jackson,Oklahoma,40065,14,0 +2020-04-26,Jackson,Oklahoma,40065,15,0 +2020-04-27,Jackson,Oklahoma,40065,15,0 +2020-04-28,Jackson,Oklahoma,40065,15,0 +2020-04-29,Jackson,Oklahoma,40065,15,0 +2020-04-30,Jackson,Oklahoma,40065,15,0 +2020-05-01,Jackson,Oklahoma,40065,16,0 +2020-05-02,Jackson,Oklahoma,40065,16,0 +2020-05-03,Jackson,Oklahoma,40065,17,0 +2020-05-04,Jackson,Oklahoma,40065,17,0 +2020-05-05,Jackson,Oklahoma,40065,18,0 +2020-05-06,Jackson,Oklahoma,40065,19,0 +2020-05-07,Jackson,Oklahoma,40065,19,0 +2020-05-08,Jackson,Oklahoma,40065,19,0 +2020-05-09,Jackson,Oklahoma,40065,19,0 +2020-05-10,Jackson,Oklahoma,40065,19,0 +2020-05-11,Jackson,Oklahoma,40065,19,1 +2020-05-12,Jackson,Oklahoma,40065,20,1 +2020-05-13,Jackson,Oklahoma,40065,20,1 +2020-05-14,Jackson,Oklahoma,40065,21,1 +2020-05-15,Jackson,Oklahoma,40065,21,1 +2020-05-16,Jackson,Oklahoma,40065,21,1 +2020-05-17,Jackson,Oklahoma,40065,21,1 +2020-05-18,Jackson,Oklahoma,40065,21,1 +2020-05-19,Jackson,Oklahoma,40065,21,1 +2020-05-20,Jackson,Oklahoma,40065,21,1 +2020-05-21,Jackson,Oklahoma,40065,21,1 +2020-05-22,Jackson,Oklahoma,40065,21,1 +2020-05-23,Jackson,Oklahoma,40065,21,1 +2020-05-24,Jackson,Oklahoma,40065,21,1 +2020-05-25,Jackson,Oklahoma,40065,23,2 +2020-05-26,Jackson,Oklahoma,40065,24,2 +2020-05-27,Jackson,Oklahoma,40065,24,2 +2020-05-28,Jackson,Oklahoma,40065,24,3 +2020-05-29,Jackson,Oklahoma,40065,24,3 +2020-05-30,Jackson,Oklahoma,40065,27,3 +2020-05-31,Jackson,Oklahoma,40065,27,3 +2020-06-01,Jackson,Oklahoma,40065,27,3 +2020-06-02,Jackson,Oklahoma,40065,27,3 +2020-06-03,Jackson,Oklahoma,40065,27,3 +2020-06-04,Jackson,Oklahoma,40065,27,3 +2020-06-05,Jackson,Oklahoma,40065,27,3 +2020-06-06,Jackson,Oklahoma,40065,27,3 +2020-06-07,Jackson,Oklahoma,40065,28,3 +2020-06-08,Jackson,Oklahoma,40065,28,3 +2020-06-09,Jackson,Oklahoma,40065,29,3 +2020-06-10,Jackson,Oklahoma,40065,30,3 +2020-06-11,Jackson,Oklahoma,40065,30,3 +2020-06-12,Jackson,Oklahoma,40065,32,3 +2020-06-13,Jackson,Oklahoma,40065,30,3 +2020-06-14,Jackson,Oklahoma,40065,30,3 +2020-06-15,Jackson,Oklahoma,40065,30,3 +2020-06-16,Jackson,Oklahoma,40065,32,3 +2020-06-17,Jackson,Oklahoma,40065,32,3 +2020-06-18,Jackson,Oklahoma,40065,32,3 +2020-06-19,Jackson,Oklahoma,40065,32,3 +2020-06-20,Jackson,Oklahoma,40065,32,3 +2020-06-21,Jackson,Oklahoma,40065,32,3 +2020-06-22,Jackson,Oklahoma,40065,34,3 +2020-06-23,Jackson,Oklahoma,40065,33,3 +2020-06-24,Jackson,Oklahoma,40065,33,3 +2020-06-25,Jackson,Oklahoma,40065,34,3 +2020-06-26,Jackson,Oklahoma,40065,35,3 +2020-06-27,Jackson,Oklahoma,40065,35,3 +2020-06-28,Jackson,Oklahoma,40065,35,3 +2020-06-29,Jackson,Oklahoma,40065,35,3 +2020-06-30,Jackson,Oklahoma,40065,38,3 +2020-07-01,Jackson,Oklahoma,40065,38,3 +2020-07-02,Jackson,Oklahoma,40065,38,3 +2020-07-03,Jackson,Oklahoma,40065,43,3 +2020-07-04,Jackson,Oklahoma,40065,47,3 +2020-07-05,Jackson,Oklahoma,40065,48,3 +2020-07-06,Jackson,Oklahoma,40065,48,3 +2020-07-07,Jackson,Oklahoma,40065,53,3 +2020-07-08,Jackson,Oklahoma,40065,54,3 +2020-07-09,Jackson,Oklahoma,40065,54,3 +2020-04-06,Jefferson,Oklahoma,40067,1,0 +2020-04-07,Jefferson,Oklahoma,40067,1,0 +2020-04-08,Jefferson,Oklahoma,40067,1,0 +2020-04-09,Jefferson,Oklahoma,40067,1,0 +2020-04-10,Jefferson,Oklahoma,40067,1,0 +2020-04-11,Jefferson,Oklahoma,40067,1,0 +2020-04-12,Jefferson,Oklahoma,40067,1,0 +2020-04-13,Jefferson,Oklahoma,40067,1,0 +2020-04-14,Jefferson,Oklahoma,40067,1,0 +2020-04-15,Jefferson,Oklahoma,40067,1,0 +2020-04-16,Jefferson,Oklahoma,40067,1,0 +2020-04-17,Jefferson,Oklahoma,40067,1,0 +2020-04-18,Jefferson,Oklahoma,40067,1,0 +2020-04-19,Jefferson,Oklahoma,40067,1,0 +2020-04-20,Jefferson,Oklahoma,40067,1,0 +2020-04-21,Jefferson,Oklahoma,40067,2,0 +2020-04-22,Jefferson,Oklahoma,40067,2,0 +2020-04-23,Jefferson,Oklahoma,40067,2,0 +2020-04-24,Jefferson,Oklahoma,40067,2,0 +2020-04-25,Jefferson,Oklahoma,40067,2,0 +2020-04-26,Jefferson,Oklahoma,40067,2,0 +2020-04-27,Jefferson,Oklahoma,40067,2,0 +2020-04-28,Jefferson,Oklahoma,40067,2,0 +2020-04-29,Jefferson,Oklahoma,40067,2,0 +2020-04-30,Jefferson,Oklahoma,40067,2,0 +2020-05-01,Jefferson,Oklahoma,40067,2,0 +2020-05-02,Jefferson,Oklahoma,40067,2,0 +2020-05-03,Jefferson,Oklahoma,40067,2,0 +2020-05-04,Jefferson,Oklahoma,40067,2,0 +2020-05-05,Jefferson,Oklahoma,40067,2,0 +2020-05-06,Jefferson,Oklahoma,40067,2,0 +2020-05-07,Jefferson,Oklahoma,40067,2,0 +2020-05-08,Jefferson,Oklahoma,40067,3,0 +2020-05-09,Jefferson,Oklahoma,40067,3,0 +2020-05-10,Jefferson,Oklahoma,40067,3,0 +2020-05-11,Jefferson,Oklahoma,40067,3,0 +2020-05-12,Jefferson,Oklahoma,40067,3,0 +2020-05-13,Jefferson,Oklahoma,40067,3,0 +2020-05-14,Jefferson,Oklahoma,40067,3,0 +2020-05-15,Jefferson,Oklahoma,40067,3,0 +2020-05-16,Jefferson,Oklahoma,40067,3,0 +2020-05-17,Jefferson,Oklahoma,40067,3,0 +2020-05-18,Jefferson,Oklahoma,40067,3,0 +2020-05-19,Jefferson,Oklahoma,40067,3,0 +2020-05-20,Jefferson,Oklahoma,40067,3,0 +2020-05-21,Jefferson,Oklahoma,40067,3,0 +2020-05-22,Jefferson,Oklahoma,40067,3,0 +2020-05-23,Jefferson,Oklahoma,40067,3,0 +2020-05-24,Jefferson,Oklahoma,40067,3,0 +2020-05-25,Jefferson,Oklahoma,40067,3,0 +2020-05-26,Jefferson,Oklahoma,40067,3,0 +2020-05-27,Jefferson,Oklahoma,40067,4,0 +2020-05-28,Jefferson,Oklahoma,40067,3,0 +2020-05-29,Jefferson,Oklahoma,40067,3,0 +2020-05-30,Jefferson,Oklahoma,40067,3,0 +2020-05-31,Jefferson,Oklahoma,40067,4,0 +2020-06-01,Jefferson,Oklahoma,40067,4,0 +2020-06-02,Jefferson,Oklahoma,40067,4,0 +2020-06-03,Jefferson,Oklahoma,40067,4,0 +2020-06-04,Jefferson,Oklahoma,40067,4,0 +2020-06-05,Jefferson,Oklahoma,40067,4,0 +2020-06-06,Jefferson,Oklahoma,40067,4,0 +2020-06-07,Jefferson,Oklahoma,40067,4,0 +2020-06-08,Jefferson,Oklahoma,40067,4,0 +2020-06-09,Jefferson,Oklahoma,40067,4,0 +2020-06-10,Jefferson,Oklahoma,40067,4,0 +2020-06-11,Jefferson,Oklahoma,40067,4,0 +2020-06-12,Jefferson,Oklahoma,40067,4,0 +2020-06-13,Jefferson,Oklahoma,40067,4,0 +2020-06-14,Jefferson,Oklahoma,40067,4,0 +2020-06-15,Jefferson,Oklahoma,40067,4,0 +2020-06-16,Jefferson,Oklahoma,40067,4,0 +2020-06-17,Jefferson,Oklahoma,40067,4,0 +2020-06-18,Jefferson,Oklahoma,40067,4,0 +2020-06-19,Jefferson,Oklahoma,40067,4,0 +2020-06-20,Jefferson,Oklahoma,40067,4,0 +2020-06-21,Jefferson,Oklahoma,40067,4,0 +2020-06-22,Jefferson,Oklahoma,40067,4,0 +2020-06-23,Jefferson,Oklahoma,40067,4,0 +2020-06-24,Jefferson,Oklahoma,40067,4,0 +2020-06-25,Jefferson,Oklahoma,40067,5,0 +2020-06-26,Jefferson,Oklahoma,40067,5,0 +2020-06-27,Jefferson,Oklahoma,40067,5,0 +2020-06-28,Jefferson,Oklahoma,40067,5,0 +2020-06-29,Jefferson,Oklahoma,40067,6,0 +2020-06-30,Jefferson,Oklahoma,40067,8,0 +2020-07-01,Jefferson,Oklahoma,40067,8,0 +2020-07-02,Jefferson,Oklahoma,40067,9,0 +2020-07-03,Jefferson,Oklahoma,40067,10,0 +2020-07-04,Jefferson,Oklahoma,40067,10,0 +2020-07-05,Jefferson,Oklahoma,40067,10,0 +2020-07-06,Jefferson,Oklahoma,40067,10,0 +2020-07-07,Jefferson,Oklahoma,40067,13,0 +2020-07-08,Jefferson,Oklahoma,40067,13,0 +2020-07-09,Jefferson,Oklahoma,40067,13,0 +2020-04-14,Johnston,Oklahoma,40069,2,0 +2020-04-15,Johnston,Oklahoma,40069,2,0 +2020-04-16,Johnston,Oklahoma,40069,2,0 +2020-04-17,Johnston,Oklahoma,40069,3,0 +2020-04-18,Johnston,Oklahoma,40069,3,0 +2020-04-19,Johnston,Oklahoma,40069,3,0 +2020-04-20,Johnston,Oklahoma,40069,3,0 +2020-04-21,Johnston,Oklahoma,40069,3,0 +2020-04-22,Johnston,Oklahoma,40069,3,0 +2020-04-23,Johnston,Oklahoma,40069,3,0 +2020-04-24,Johnston,Oklahoma,40069,3,0 +2020-04-25,Johnston,Oklahoma,40069,4,0 +2020-04-26,Johnston,Oklahoma,40069,3,0 +2020-04-27,Johnston,Oklahoma,40069,3,0 +2020-04-28,Johnston,Oklahoma,40069,3,0 +2020-04-29,Johnston,Oklahoma,40069,3,0 +2020-04-30,Johnston,Oklahoma,40069,3,0 +2020-05-01,Johnston,Oklahoma,40069,3,0 +2020-05-02,Johnston,Oklahoma,40069,3,0 +2020-05-03,Johnston,Oklahoma,40069,3,0 +2020-05-04,Johnston,Oklahoma,40069,3,0 +2020-05-05,Johnston,Oklahoma,40069,3,0 +2020-05-06,Johnston,Oklahoma,40069,3,0 +2020-05-07,Johnston,Oklahoma,40069,3,0 +2020-05-08,Johnston,Oklahoma,40069,3,0 +2020-05-09,Johnston,Oklahoma,40069,3,0 +2020-05-10,Johnston,Oklahoma,40069,3,0 +2020-05-11,Johnston,Oklahoma,40069,3,0 +2020-05-12,Johnston,Oklahoma,40069,3,0 +2020-05-13,Johnston,Oklahoma,40069,3,0 +2020-05-14,Johnston,Oklahoma,40069,3,0 +2020-05-15,Johnston,Oklahoma,40069,3,0 +2020-05-16,Johnston,Oklahoma,40069,3,0 +2020-05-17,Johnston,Oklahoma,40069,3,0 +2020-05-18,Johnston,Oklahoma,40069,3,0 +2020-05-19,Johnston,Oklahoma,40069,3,0 +2020-05-20,Johnston,Oklahoma,40069,3,0 +2020-05-21,Johnston,Oklahoma,40069,3,0 +2020-05-22,Johnston,Oklahoma,40069,3,0 +2020-05-23,Johnston,Oklahoma,40069,3,0 +2020-05-24,Johnston,Oklahoma,40069,3,0 +2020-05-25,Johnston,Oklahoma,40069,3,0 +2020-05-26,Johnston,Oklahoma,40069,3,0 +2020-05-27,Johnston,Oklahoma,40069,3,0 +2020-05-28,Johnston,Oklahoma,40069,3,0 +2020-05-29,Johnston,Oklahoma,40069,3,0 +2020-05-30,Johnston,Oklahoma,40069,3,0 +2020-05-31,Johnston,Oklahoma,40069,3,0 +2020-06-01,Johnston,Oklahoma,40069,3,0 +2020-06-02,Johnston,Oklahoma,40069,3,0 +2020-06-03,Johnston,Oklahoma,40069,3,0 +2020-06-04,Johnston,Oklahoma,40069,3,0 +2020-06-05,Johnston,Oklahoma,40069,3,0 +2020-06-06,Johnston,Oklahoma,40069,3,0 +2020-06-07,Johnston,Oklahoma,40069,3,0 +2020-06-08,Johnston,Oklahoma,40069,3,0 +2020-06-09,Johnston,Oklahoma,40069,3,0 +2020-06-10,Johnston,Oklahoma,40069,3,0 +2020-06-11,Johnston,Oklahoma,40069,4,0 +2020-06-12,Johnston,Oklahoma,40069,4,0 +2020-06-13,Johnston,Oklahoma,40069,4,0 +2020-06-14,Johnston,Oklahoma,40069,5,0 +2020-06-15,Johnston,Oklahoma,40069,5,0 +2020-06-16,Johnston,Oklahoma,40069,5,0 +2020-06-17,Johnston,Oklahoma,40069,6,0 +2020-06-18,Johnston,Oklahoma,40069,8,0 +2020-06-19,Johnston,Oklahoma,40069,8,0 +2020-06-20,Johnston,Oklahoma,40069,8,0 +2020-06-21,Johnston,Oklahoma,40069,8,0 +2020-06-22,Johnston,Oklahoma,40069,9,0 +2020-06-23,Johnston,Oklahoma,40069,10,0 +2020-06-24,Johnston,Oklahoma,40069,10,0 +2020-06-25,Johnston,Oklahoma,40069,10,0 +2020-06-26,Johnston,Oklahoma,40069,10,0 +2020-06-27,Johnston,Oklahoma,40069,10,0 +2020-06-28,Johnston,Oklahoma,40069,10,0 +2020-06-29,Johnston,Oklahoma,40069,12,0 +2020-06-30,Johnston,Oklahoma,40069,12,0 +2020-07-01,Johnston,Oklahoma,40069,13,0 +2020-07-02,Johnston,Oklahoma,40069,13,0 +2020-07-03,Johnston,Oklahoma,40069,13,0 +2020-07-04,Johnston,Oklahoma,40069,13,0 +2020-07-05,Johnston,Oklahoma,40069,13,0 +2020-07-06,Johnston,Oklahoma,40069,13,0 +2020-07-07,Johnston,Oklahoma,40069,13,0 +2020-07-08,Johnston,Oklahoma,40069,15,0 +2020-07-09,Johnston,Oklahoma,40069,15,0 +2020-03-15,Kay,Oklahoma,40071,1,0 +2020-03-16,Kay,Oklahoma,40071,1,0 +2020-03-17,Kay,Oklahoma,40071,2,0 +2020-03-18,Kay,Oklahoma,40071,2,0 +2020-03-19,Kay,Oklahoma,40071,2,0 +2020-03-20,Kay,Oklahoma,40071,3,0 +2020-03-21,Kay,Oklahoma,40071,3,0 +2020-03-22,Kay,Oklahoma,40071,4,0 +2020-03-23,Kay,Oklahoma,40071,5,0 +2020-03-24,Kay,Oklahoma,40071,5,0 +2020-03-25,Kay,Oklahoma,40071,5,0 +2020-03-26,Kay,Oklahoma,40071,11,0 +2020-03-27,Kay,Oklahoma,40071,17,0 +2020-03-28,Kay,Oklahoma,40071,18,0 +2020-03-29,Kay,Oklahoma,40071,20,0 +2020-03-30,Kay,Oklahoma,40071,20,0 +2020-03-31,Kay,Oklahoma,40071,24,0 +2020-04-01,Kay,Oklahoma,40071,24,1 +2020-04-02,Kay,Oklahoma,40071,24,1 +2020-04-03,Kay,Oklahoma,40071,25,1 +2020-04-04,Kay,Oklahoma,40071,29,1 +2020-04-05,Kay,Oklahoma,40071,30,1 +2020-04-06,Kay,Oklahoma,40071,30,1 +2020-04-07,Kay,Oklahoma,40071,33,2 +2020-04-08,Kay,Oklahoma,40071,33,3 +2020-04-09,Kay,Oklahoma,40071,36,3 +2020-04-10,Kay,Oklahoma,40071,41,3 +2020-04-11,Kay,Oklahoma,40071,42,3 +2020-04-12,Kay,Oklahoma,40071,43,3 +2020-04-13,Kay,Oklahoma,40071,45,3 +2020-04-14,Kay,Oklahoma,40071,45,4 +2020-04-15,Kay,Oklahoma,40071,45,4 +2020-04-16,Kay,Oklahoma,40071,46,4 +2020-04-17,Kay,Oklahoma,40071,46,4 +2020-04-18,Kay,Oklahoma,40071,46,4 +2020-04-19,Kay,Oklahoma,40071,46,4 +2020-04-20,Kay,Oklahoma,40071,46,4 +2020-04-21,Kay,Oklahoma,40071,46,6 +2020-04-22,Kay,Oklahoma,40071,46,6 +2020-04-23,Kay,Oklahoma,40071,47,6 +2020-04-24,Kay,Oklahoma,40071,47,6 +2020-04-25,Kay,Oklahoma,40071,47,6 +2020-04-26,Kay,Oklahoma,40071,47,6 +2020-04-27,Kay,Oklahoma,40071,47,6 +2020-04-28,Kay,Oklahoma,40071,47,6 +2020-04-29,Kay,Oklahoma,40071,47,7 +2020-04-30,Kay,Oklahoma,40071,47,7 +2020-05-01,Kay,Oklahoma,40071,47,7 +2020-05-02,Kay,Oklahoma,40071,47,7 +2020-05-03,Kay,Oklahoma,40071,47,7 +2020-05-04,Kay,Oklahoma,40071,47,7 +2020-05-05,Kay,Oklahoma,40071,48,7 +2020-05-06,Kay,Oklahoma,40071,48,7 +2020-05-07,Kay,Oklahoma,40071,48,7 +2020-05-08,Kay,Oklahoma,40071,48,7 +2020-05-09,Kay,Oklahoma,40071,48,7 +2020-05-10,Kay,Oklahoma,40071,48,7 +2020-05-11,Kay,Oklahoma,40071,48,7 +2020-05-12,Kay,Oklahoma,40071,48,7 +2020-05-13,Kay,Oklahoma,40071,49,7 +2020-05-14,Kay,Oklahoma,40071,49,7 +2020-05-15,Kay,Oklahoma,40071,49,7 +2020-05-16,Kay,Oklahoma,40071,49,7 +2020-05-17,Kay,Oklahoma,40071,49,7 +2020-05-18,Kay,Oklahoma,40071,50,7 +2020-05-19,Kay,Oklahoma,40071,50,7 +2020-05-20,Kay,Oklahoma,40071,50,7 +2020-05-21,Kay,Oklahoma,40071,51,7 +2020-05-22,Kay,Oklahoma,40071,51,7 +2020-05-23,Kay,Oklahoma,40071,52,7 +2020-05-24,Kay,Oklahoma,40071,52,7 +2020-05-25,Kay,Oklahoma,40071,52,7 +2020-05-26,Kay,Oklahoma,40071,52,7 +2020-05-27,Kay,Oklahoma,40071,52,7 +2020-05-28,Kay,Oklahoma,40071,52,7 +2020-05-29,Kay,Oklahoma,40071,52,7 +2020-05-30,Kay,Oklahoma,40071,53,7 +2020-05-31,Kay,Oklahoma,40071,53,7 +2020-06-01,Kay,Oklahoma,40071,54,7 +2020-06-02,Kay,Oklahoma,40071,56,7 +2020-06-03,Kay,Oklahoma,40071,57,7 +2020-06-04,Kay,Oklahoma,40071,57,7 +2020-06-05,Kay,Oklahoma,40071,57,7 +2020-06-06,Kay,Oklahoma,40071,59,7 +2020-06-07,Kay,Oklahoma,40071,59,7 +2020-06-08,Kay,Oklahoma,40071,59,7 +2020-06-09,Kay,Oklahoma,40071,60,7 +2020-06-10,Kay,Oklahoma,40071,60,7 +2020-06-11,Kay,Oklahoma,40071,64,7 +2020-06-12,Kay,Oklahoma,40071,65,7 +2020-06-13,Kay,Oklahoma,40071,65,7 +2020-06-14,Kay,Oklahoma,40071,65,7 +2020-06-15,Kay,Oklahoma,40071,65,7 +2020-06-16,Kay,Oklahoma,40071,69,7 +2020-06-17,Kay,Oklahoma,40071,70,7 +2020-06-18,Kay,Oklahoma,40071,72,7 +2020-06-19,Kay,Oklahoma,40071,77,7 +2020-06-20,Kay,Oklahoma,40071,79,7 +2020-06-21,Kay,Oklahoma,40071,80,7 +2020-06-22,Kay,Oklahoma,40071,80,7 +2020-06-23,Kay,Oklahoma,40071,81,7 +2020-06-24,Kay,Oklahoma,40071,83,7 +2020-06-25,Kay,Oklahoma,40071,83,7 +2020-06-26,Kay,Oklahoma,40071,86,7 +2020-06-27,Kay,Oklahoma,40071,91,7 +2020-06-28,Kay,Oklahoma,40071,91,7 +2020-06-29,Kay,Oklahoma,40071,92,7 +2020-06-30,Kay,Oklahoma,40071,97,7 +2020-07-01,Kay,Oklahoma,40071,98,7 +2020-07-02,Kay,Oklahoma,40071,104,7 +2020-07-03,Kay,Oklahoma,40071,106,7 +2020-07-04,Kay,Oklahoma,40071,108,7 +2020-07-05,Kay,Oklahoma,40071,111,7 +2020-07-06,Kay,Oklahoma,40071,112,7 +2020-07-07,Kay,Oklahoma,40071,113,7 +2020-07-08,Kay,Oklahoma,40071,115,8 +2020-07-09,Kay,Oklahoma,40071,120,8 +2020-04-02,Kingfisher,Oklahoma,40073,2,0 +2020-04-03,Kingfisher,Oklahoma,40073,3,0 +2020-04-04,Kingfisher,Oklahoma,40073,3,0 +2020-04-05,Kingfisher,Oklahoma,40073,3,0 +2020-04-06,Kingfisher,Oklahoma,40073,3,0 +2020-04-07,Kingfisher,Oklahoma,40073,3,0 +2020-04-08,Kingfisher,Oklahoma,40073,3,0 +2020-04-09,Kingfisher,Oklahoma,40073,3,0 +2020-04-10,Kingfisher,Oklahoma,40073,5,0 +2020-04-11,Kingfisher,Oklahoma,40073,5,0 +2020-04-12,Kingfisher,Oklahoma,40073,5,0 +2020-04-13,Kingfisher,Oklahoma,40073,6,0 +2020-04-14,Kingfisher,Oklahoma,40073,6,0 +2020-04-15,Kingfisher,Oklahoma,40073,6,0 +2020-04-16,Kingfisher,Oklahoma,40073,6,0 +2020-04-17,Kingfisher,Oklahoma,40073,6,0 +2020-04-18,Kingfisher,Oklahoma,40073,6,0 +2020-04-19,Kingfisher,Oklahoma,40073,6,0 +2020-04-20,Kingfisher,Oklahoma,40073,6,0 +2020-04-21,Kingfisher,Oklahoma,40073,6,0 +2020-04-22,Kingfisher,Oklahoma,40073,6,0 +2020-04-23,Kingfisher,Oklahoma,40073,6,0 +2020-04-24,Kingfisher,Oklahoma,40073,7,0 +2020-04-25,Kingfisher,Oklahoma,40073,7,0 +2020-04-26,Kingfisher,Oklahoma,40073,8,0 +2020-04-27,Kingfisher,Oklahoma,40073,8,0 +2020-04-28,Kingfisher,Oklahoma,40073,8,0 +2020-04-29,Kingfisher,Oklahoma,40073,8,0 +2020-04-30,Kingfisher,Oklahoma,40073,8,0 +2020-05-01,Kingfisher,Oklahoma,40073,8,0 +2020-05-02,Kingfisher,Oklahoma,40073,8,0 +2020-05-03,Kingfisher,Oklahoma,40073,8,0 +2020-05-04,Kingfisher,Oklahoma,40073,8,0 +2020-05-05,Kingfisher,Oklahoma,40073,8,0 +2020-05-06,Kingfisher,Oklahoma,40073,8,0 +2020-05-07,Kingfisher,Oklahoma,40073,8,0 +2020-05-08,Kingfisher,Oklahoma,40073,8,0 +2020-05-09,Kingfisher,Oklahoma,40073,8,0 +2020-05-10,Kingfisher,Oklahoma,40073,8,0 +2020-05-11,Kingfisher,Oklahoma,40073,8,0 +2020-05-12,Kingfisher,Oklahoma,40073,9,0 +2020-05-13,Kingfisher,Oklahoma,40073,10,0 +2020-05-14,Kingfisher,Oklahoma,40073,10,0 +2020-05-15,Kingfisher,Oklahoma,40073,10,0 +2020-05-16,Kingfisher,Oklahoma,40073,10,0 +2020-05-17,Kingfisher,Oklahoma,40073,10,0 +2020-05-18,Kingfisher,Oklahoma,40073,10,0 +2020-05-19,Kingfisher,Oklahoma,40073,10,0 +2020-05-20,Kingfisher,Oklahoma,40073,10,0 +2020-05-21,Kingfisher,Oklahoma,40073,10,0 +2020-05-22,Kingfisher,Oklahoma,40073,11,0 +2020-05-23,Kingfisher,Oklahoma,40073,13,0 +2020-05-24,Kingfisher,Oklahoma,40073,11,0 +2020-05-25,Kingfisher,Oklahoma,40073,11,0 +2020-05-26,Kingfisher,Oklahoma,40073,11,0 +2020-05-27,Kingfisher,Oklahoma,40073,11,0 +2020-05-28,Kingfisher,Oklahoma,40073,11,0 +2020-05-29,Kingfisher,Oklahoma,40073,11,0 +2020-05-30,Kingfisher,Oklahoma,40073,11,0 +2020-05-31,Kingfisher,Oklahoma,40073,11,0 +2020-06-01,Kingfisher,Oklahoma,40073,11,0 +2020-06-02,Kingfisher,Oklahoma,40073,11,0 +2020-06-03,Kingfisher,Oklahoma,40073,11,0 +2020-06-04,Kingfisher,Oklahoma,40073,12,0 +2020-06-05,Kingfisher,Oklahoma,40073,12,0 +2020-06-06,Kingfisher,Oklahoma,40073,12,0 +2020-06-07,Kingfisher,Oklahoma,40073,12,0 +2020-06-08,Kingfisher,Oklahoma,40073,12,0 +2020-06-09,Kingfisher,Oklahoma,40073,12,0 +2020-06-10,Kingfisher,Oklahoma,40073,12,0 +2020-06-11,Kingfisher,Oklahoma,40073,12,0 +2020-06-12,Kingfisher,Oklahoma,40073,12,0 +2020-06-13,Kingfisher,Oklahoma,40073,12,0 +2020-06-14,Kingfisher,Oklahoma,40073,12,0 +2020-06-15,Kingfisher,Oklahoma,40073,13,0 +2020-06-16,Kingfisher,Oklahoma,40073,13,0 +2020-06-17,Kingfisher,Oklahoma,40073,13,0 +2020-06-18,Kingfisher,Oklahoma,40073,13,0 +2020-06-19,Kingfisher,Oklahoma,40073,17,0 +2020-06-20,Kingfisher,Oklahoma,40073,18,0 +2020-06-21,Kingfisher,Oklahoma,40073,19,0 +2020-06-22,Kingfisher,Oklahoma,40073,19,0 +2020-06-23,Kingfisher,Oklahoma,40073,20,0 +2020-06-24,Kingfisher,Oklahoma,40073,21,0 +2020-06-25,Kingfisher,Oklahoma,40073,24,0 +2020-06-26,Kingfisher,Oklahoma,40073,25,0 +2020-06-27,Kingfisher,Oklahoma,40073,26,0 +2020-06-28,Kingfisher,Oklahoma,40073,27,0 +2020-06-29,Kingfisher,Oklahoma,40073,27,0 +2020-06-30,Kingfisher,Oklahoma,40073,26,0 +2020-07-01,Kingfisher,Oklahoma,40073,26,0 +2020-07-02,Kingfisher,Oklahoma,40073,27,0 +2020-07-03,Kingfisher,Oklahoma,40073,29,0 +2020-07-04,Kingfisher,Oklahoma,40073,32,0 +2020-07-05,Kingfisher,Oklahoma,40073,32,0 +2020-07-06,Kingfisher,Oklahoma,40073,33,0 +2020-07-07,Kingfisher,Oklahoma,40073,36,0 +2020-07-08,Kingfisher,Oklahoma,40073,38,0 +2020-07-09,Kingfisher,Oklahoma,40073,39,0 +2020-04-02,Kiowa,Oklahoma,40075,1,0 +2020-04-03,Kiowa,Oklahoma,40075,1,0 +2020-04-04,Kiowa,Oklahoma,40075,1,0 +2020-04-05,Kiowa,Oklahoma,40075,1,0 +2020-04-06,Kiowa,Oklahoma,40075,1,0 +2020-04-07,Kiowa,Oklahoma,40075,1,0 +2020-04-08,Kiowa,Oklahoma,40075,1,0 +2020-04-09,Kiowa,Oklahoma,40075,1,0 +2020-04-10,Kiowa,Oklahoma,40075,1,0 +2020-04-11,Kiowa,Oklahoma,40075,1,0 +2020-04-12,Kiowa,Oklahoma,40075,1,0 +2020-04-13,Kiowa,Oklahoma,40075,2,0 +2020-04-14,Kiowa,Oklahoma,40075,2,0 +2020-04-15,Kiowa,Oklahoma,40075,2,0 +2020-04-16,Kiowa,Oklahoma,40075,2,0 +2020-04-17,Kiowa,Oklahoma,40075,2,0 +2020-04-18,Kiowa,Oklahoma,40075,3,0 +2020-04-19,Kiowa,Oklahoma,40075,3,0 +2020-04-20,Kiowa,Oklahoma,40075,3,0 +2020-04-21,Kiowa,Oklahoma,40075,3,0 +2020-04-22,Kiowa,Oklahoma,40075,3,0 +2020-04-23,Kiowa,Oklahoma,40075,4,0 +2020-04-24,Kiowa,Oklahoma,40075,4,0 +2020-04-25,Kiowa,Oklahoma,40075,4,0 +2020-04-26,Kiowa,Oklahoma,40075,4,0 +2020-04-27,Kiowa,Oklahoma,40075,4,0 +2020-04-28,Kiowa,Oklahoma,40075,4,0 +2020-04-29,Kiowa,Oklahoma,40075,4,0 +2020-04-30,Kiowa,Oklahoma,40075,5,0 +2020-05-01,Kiowa,Oklahoma,40075,5,0 +2020-05-02,Kiowa,Oklahoma,40075,5,0 +2020-05-03,Kiowa,Oklahoma,40075,5,0 +2020-05-04,Kiowa,Oklahoma,40075,5,0 +2020-05-05,Kiowa,Oklahoma,40075,5,0 +2020-05-06,Kiowa,Oklahoma,40075,5,0 +2020-05-07,Kiowa,Oklahoma,40075,5,0 +2020-05-08,Kiowa,Oklahoma,40075,6,0 +2020-05-09,Kiowa,Oklahoma,40075,7,0 +2020-05-10,Kiowa,Oklahoma,40075,7,0 +2020-05-11,Kiowa,Oklahoma,40075,6,0 +2020-05-12,Kiowa,Oklahoma,40075,6,0 +2020-05-13,Kiowa,Oklahoma,40075,6,0 +2020-05-14,Kiowa,Oklahoma,40075,6,0 +2020-05-15,Kiowa,Oklahoma,40075,7,0 +2020-05-16,Kiowa,Oklahoma,40075,6,0 +2020-05-17,Kiowa,Oklahoma,40075,6,0 +2020-05-18,Kiowa,Oklahoma,40075,6,0 +2020-05-19,Kiowa,Oklahoma,40075,6,0 +2020-05-20,Kiowa,Oklahoma,40075,6,0 +2020-05-21,Kiowa,Oklahoma,40075,6,0 +2020-05-22,Kiowa,Oklahoma,40075,6,0 +2020-05-23,Kiowa,Oklahoma,40075,6,0 +2020-05-24,Kiowa,Oklahoma,40075,6,0 +2020-05-25,Kiowa,Oklahoma,40075,6,0 +2020-05-26,Kiowa,Oklahoma,40075,6,0 +2020-05-27,Kiowa,Oklahoma,40075,6,0 +2020-05-28,Kiowa,Oklahoma,40075,6,0 +2020-05-29,Kiowa,Oklahoma,40075,6,0 +2020-05-30,Kiowa,Oklahoma,40075,6,0 +2020-05-31,Kiowa,Oklahoma,40075,6,0 +2020-06-01,Kiowa,Oklahoma,40075,6,0 +2020-06-02,Kiowa,Oklahoma,40075,6,0 +2020-06-03,Kiowa,Oklahoma,40075,6,0 +2020-06-04,Kiowa,Oklahoma,40075,6,0 +2020-06-05,Kiowa,Oklahoma,40075,6,0 +2020-06-06,Kiowa,Oklahoma,40075,6,0 +2020-06-07,Kiowa,Oklahoma,40075,6,0 +2020-06-08,Kiowa,Oklahoma,40075,6,0 +2020-06-09,Kiowa,Oklahoma,40075,6,0 +2020-06-10,Kiowa,Oklahoma,40075,6,0 +2020-06-11,Kiowa,Oklahoma,40075,6,0 +2020-06-12,Kiowa,Oklahoma,40075,6,0 +2020-06-13,Kiowa,Oklahoma,40075,6,0 +2020-06-14,Kiowa,Oklahoma,40075,6,0 +2020-06-15,Kiowa,Oklahoma,40075,6,0 +2020-06-16,Kiowa,Oklahoma,40075,6,0 +2020-06-17,Kiowa,Oklahoma,40075,6,0 +2020-06-18,Kiowa,Oklahoma,40075,6,0 +2020-06-19,Kiowa,Oklahoma,40075,6,0 +2020-06-20,Kiowa,Oklahoma,40075,6,0 +2020-06-21,Kiowa,Oklahoma,40075,6,0 +2020-06-22,Kiowa,Oklahoma,40075,6,0 +2020-06-23,Kiowa,Oklahoma,40075,6,1 +2020-06-24,Kiowa,Oklahoma,40075,6,1 +2020-06-25,Kiowa,Oklahoma,40075,6,1 +2020-06-26,Kiowa,Oklahoma,40075,6,1 +2020-06-27,Kiowa,Oklahoma,40075,6,1 +2020-06-28,Kiowa,Oklahoma,40075,8,1 +2020-06-29,Kiowa,Oklahoma,40075,8,1 +2020-06-30,Kiowa,Oklahoma,40075,10,1 +2020-07-01,Kiowa,Oklahoma,40075,10,1 +2020-07-02,Kiowa,Oklahoma,40075,10,1 +2020-07-03,Kiowa,Oklahoma,40075,11,1 +2020-07-04,Kiowa,Oklahoma,40075,12,1 +2020-07-05,Kiowa,Oklahoma,40075,12,1 +2020-07-06,Kiowa,Oklahoma,40075,12,1 +2020-07-07,Kiowa,Oklahoma,40075,14,1 +2020-07-08,Kiowa,Oklahoma,40075,15,1 +2020-07-09,Kiowa,Oklahoma,40075,14,1 +2020-03-27,Latimer,Oklahoma,40077,1,0 +2020-03-28,Latimer,Oklahoma,40077,1,0 +2020-03-29,Latimer,Oklahoma,40077,1,0 +2020-03-30,Latimer,Oklahoma,40077,1,0 +2020-03-31,Latimer,Oklahoma,40077,1,0 +2020-04-01,Latimer,Oklahoma,40077,2,0 +2020-04-02,Latimer,Oklahoma,40077,2,0 +2020-04-03,Latimer,Oklahoma,40077,2,0 +2020-04-04,Latimer,Oklahoma,40077,4,1 +2020-04-05,Latimer,Oklahoma,40077,4,1 +2020-04-06,Latimer,Oklahoma,40077,4,1 +2020-04-07,Latimer,Oklahoma,40077,4,1 +2020-04-08,Latimer,Oklahoma,40077,4,1 +2020-04-09,Latimer,Oklahoma,40077,4,1 +2020-04-10,Latimer,Oklahoma,40077,4,1 +2020-04-11,Latimer,Oklahoma,40077,4,1 +2020-04-12,Latimer,Oklahoma,40077,4,1 +2020-04-13,Latimer,Oklahoma,40077,4,1 +2020-04-14,Latimer,Oklahoma,40077,4,1 +2020-04-15,Latimer,Oklahoma,40077,4,1 +2020-04-16,Latimer,Oklahoma,40077,4,1 +2020-04-17,Latimer,Oklahoma,40077,4,1 +2020-04-18,Latimer,Oklahoma,40077,4,1 +2020-04-19,Latimer,Oklahoma,40077,4,1 +2020-04-20,Latimer,Oklahoma,40077,4,1 +2020-04-21,Latimer,Oklahoma,40077,4,1 +2020-04-22,Latimer,Oklahoma,40077,4,1 +2020-04-23,Latimer,Oklahoma,40077,4,1 +2020-04-24,Latimer,Oklahoma,40077,4,1 +2020-04-25,Latimer,Oklahoma,40077,4,1 +2020-04-26,Latimer,Oklahoma,40077,5,1 +2020-04-27,Latimer,Oklahoma,40077,5,1 +2020-04-28,Latimer,Oklahoma,40077,5,1 +2020-04-29,Latimer,Oklahoma,40077,5,1 +2020-04-30,Latimer,Oklahoma,40077,5,1 +2020-05-01,Latimer,Oklahoma,40077,5,1 +2020-05-02,Latimer,Oklahoma,40077,5,1 +2020-05-03,Latimer,Oklahoma,40077,5,1 +2020-05-04,Latimer,Oklahoma,40077,5,1 +2020-05-05,Latimer,Oklahoma,40077,5,1 +2020-05-06,Latimer,Oklahoma,40077,5,1 +2020-05-07,Latimer,Oklahoma,40077,5,1 +2020-05-08,Latimer,Oklahoma,40077,5,1 +2020-05-09,Latimer,Oklahoma,40077,5,1 +2020-05-10,Latimer,Oklahoma,40077,5,1 +2020-05-11,Latimer,Oklahoma,40077,5,1 +2020-05-12,Latimer,Oklahoma,40077,5,1 +2020-05-13,Latimer,Oklahoma,40077,5,1 +2020-05-14,Latimer,Oklahoma,40077,5,1 +2020-05-15,Latimer,Oklahoma,40077,5,1 +2020-05-16,Latimer,Oklahoma,40077,5,1 +2020-05-17,Latimer,Oklahoma,40077,6,1 +2020-05-18,Latimer,Oklahoma,40077,6,1 +2020-05-19,Latimer,Oklahoma,40077,6,1 +2020-05-20,Latimer,Oklahoma,40077,5,1 +2020-05-21,Latimer,Oklahoma,40077,5,1 +2020-05-22,Latimer,Oklahoma,40077,5,1 +2020-05-23,Latimer,Oklahoma,40077,5,1 +2020-05-24,Latimer,Oklahoma,40077,5,1 +2020-05-25,Latimer,Oklahoma,40077,5,1 +2020-05-26,Latimer,Oklahoma,40077,5,1 +2020-05-27,Latimer,Oklahoma,40077,5,1 +2020-05-28,Latimer,Oklahoma,40077,5,1 +2020-05-29,Latimer,Oklahoma,40077,5,1 +2020-05-30,Latimer,Oklahoma,40077,5,1 +2020-05-31,Latimer,Oklahoma,40077,5,1 +2020-06-01,Latimer,Oklahoma,40077,5,1 +2020-06-02,Latimer,Oklahoma,40077,5,1 +2020-06-03,Latimer,Oklahoma,40077,5,1 +2020-06-04,Latimer,Oklahoma,40077,5,1 +2020-06-05,Latimer,Oklahoma,40077,5,1 +2020-06-06,Latimer,Oklahoma,40077,5,1 +2020-06-07,Latimer,Oklahoma,40077,5,1 +2020-06-08,Latimer,Oklahoma,40077,5,1 +2020-06-09,Latimer,Oklahoma,40077,5,1 +2020-06-10,Latimer,Oklahoma,40077,5,1 +2020-06-11,Latimer,Oklahoma,40077,5,1 +2020-06-12,Latimer,Oklahoma,40077,5,1 +2020-06-13,Latimer,Oklahoma,40077,6,1 +2020-06-14,Latimer,Oklahoma,40077,6,1 +2020-06-15,Latimer,Oklahoma,40077,6,1 +2020-06-16,Latimer,Oklahoma,40077,7,1 +2020-06-17,Latimer,Oklahoma,40077,7,1 +2020-06-18,Latimer,Oklahoma,40077,7,1 +2020-06-19,Latimer,Oklahoma,40077,7,1 +2020-06-20,Latimer,Oklahoma,40077,7,1 +2020-06-21,Latimer,Oklahoma,40077,7,1 +2020-06-22,Latimer,Oklahoma,40077,7,1 +2020-06-23,Latimer,Oklahoma,40077,7,1 +2020-06-24,Latimer,Oklahoma,40077,7,1 +2020-06-25,Latimer,Oklahoma,40077,7,1 +2020-06-26,Latimer,Oklahoma,40077,9,1 +2020-06-27,Latimer,Oklahoma,40077,9,1 +2020-06-28,Latimer,Oklahoma,40077,9,1 +2020-06-29,Latimer,Oklahoma,40077,9,1 +2020-06-30,Latimer,Oklahoma,40077,11,1 +2020-07-01,Latimer,Oklahoma,40077,11,1 +2020-07-02,Latimer,Oklahoma,40077,11,1 +2020-07-03,Latimer,Oklahoma,40077,14,1 +2020-07-04,Latimer,Oklahoma,40077,14,1 +2020-07-05,Latimer,Oklahoma,40077,15,1 +2020-07-06,Latimer,Oklahoma,40077,14,1 +2020-07-07,Latimer,Oklahoma,40077,15,1 +2020-07-08,Latimer,Oklahoma,40077,14,1 +2020-07-09,Latimer,Oklahoma,40077,18,1 +2020-03-28,Le Flore,Oklahoma,40079,1,0 +2020-03-29,Le Flore,Oklahoma,40079,1,0 +2020-03-30,Le Flore,Oklahoma,40079,1,0 +2020-03-31,Le Flore,Oklahoma,40079,1,0 +2020-04-01,Le Flore,Oklahoma,40079,1,0 +2020-04-02,Le Flore,Oklahoma,40079,1,0 +2020-04-03,Le Flore,Oklahoma,40079,1,0 +2020-04-04,Le Flore,Oklahoma,40079,1,0 +2020-04-05,Le Flore,Oklahoma,40079,1,0 +2020-04-06,Le Flore,Oklahoma,40079,1,0 +2020-04-07,Le Flore,Oklahoma,40079,1,0 +2020-04-08,Le Flore,Oklahoma,40079,1,0 +2020-04-09,Le Flore,Oklahoma,40079,3,0 +2020-04-10,Le Flore,Oklahoma,40079,3,0 +2020-04-11,Le Flore,Oklahoma,40079,3,0 +2020-04-12,Le Flore,Oklahoma,40079,3,0 +2020-04-13,Le Flore,Oklahoma,40079,3,0 +2020-04-14,Le Flore,Oklahoma,40079,3,0 +2020-04-15,Le Flore,Oklahoma,40079,4,0 +2020-04-16,Le Flore,Oklahoma,40079,5,0 +2020-04-17,Le Flore,Oklahoma,40079,6,0 +2020-04-18,Le Flore,Oklahoma,40079,6,0 +2020-04-19,Le Flore,Oklahoma,40079,6,0 +2020-04-20,Le Flore,Oklahoma,40079,6,0 +2020-04-21,Le Flore,Oklahoma,40079,7,0 +2020-04-22,Le Flore,Oklahoma,40079,8,0 +2020-04-23,Le Flore,Oklahoma,40079,8,0 +2020-04-24,Le Flore,Oklahoma,40079,9,0 +2020-04-25,Le Flore,Oklahoma,40079,9,0 +2020-04-26,Le Flore,Oklahoma,40079,9,0 +2020-04-27,Le Flore,Oklahoma,40079,10,0 +2020-04-28,Le Flore,Oklahoma,40079,10,0 +2020-04-29,Le Flore,Oklahoma,40079,10,0 +2020-04-30,Le Flore,Oklahoma,40079,11,0 +2020-05-01,Le Flore,Oklahoma,40079,11,0 +2020-05-02,Le Flore,Oklahoma,40079,13,0 +2020-05-03,Le Flore,Oklahoma,40079,13,0 +2020-05-04,Le Flore,Oklahoma,40079,13,0 +2020-05-05,Le Flore,Oklahoma,40079,13,0 +2020-05-06,Le Flore,Oklahoma,40079,13,0 +2020-05-07,Le Flore,Oklahoma,40079,13,0 +2020-05-08,Le Flore,Oklahoma,40079,13,1 +2020-05-09,Le Flore,Oklahoma,40079,13,1 +2020-05-10,Le Flore,Oklahoma,40079,13,1 +2020-05-11,Le Flore,Oklahoma,40079,13,1 +2020-05-12,Le Flore,Oklahoma,40079,13,1 +2020-05-13,Le Flore,Oklahoma,40079,13,1 +2020-05-14,Le Flore,Oklahoma,40079,14,1 +2020-05-15,Le Flore,Oklahoma,40079,13,1 +2020-05-16,Le Flore,Oklahoma,40079,13,1 +2020-05-17,Le Flore,Oklahoma,40079,13,1 +2020-05-18,Le Flore,Oklahoma,40079,13,1 +2020-05-19,Le Flore,Oklahoma,40079,13,1 +2020-05-20,Le Flore,Oklahoma,40079,13,1 +2020-05-21,Le Flore,Oklahoma,40079,13,1 +2020-05-22,Le Flore,Oklahoma,40079,13,1 +2020-05-23,Le Flore,Oklahoma,40079,13,1 +2020-05-24,Le Flore,Oklahoma,40079,13,1 +2020-05-25,Le Flore,Oklahoma,40079,14,1 +2020-05-26,Le Flore,Oklahoma,40079,14,1 +2020-05-27,Le Flore,Oklahoma,40079,14,1 +2020-05-28,Le Flore,Oklahoma,40079,14,1 +2020-05-29,Le Flore,Oklahoma,40079,14,1 +2020-05-30,Le Flore,Oklahoma,40079,14,1 +2020-05-31,Le Flore,Oklahoma,40079,14,1 +2020-06-01,Le Flore,Oklahoma,40079,14,1 +2020-06-02,Le Flore,Oklahoma,40079,14,1 +2020-06-03,Le Flore,Oklahoma,40079,14,1 +2020-06-04,Le Flore,Oklahoma,40079,14,1 +2020-06-05,Le Flore,Oklahoma,40079,14,1 +2020-06-06,Le Flore,Oklahoma,40079,15,1 +2020-06-07,Le Flore,Oklahoma,40079,15,1 +2020-06-08,Le Flore,Oklahoma,40079,16,1 +2020-06-09,Le Flore,Oklahoma,40079,16,1 +2020-06-10,Le Flore,Oklahoma,40079,16,1 +2020-06-11,Le Flore,Oklahoma,40079,17,1 +2020-06-12,Le Flore,Oklahoma,40079,18,1 +2020-06-13,Le Flore,Oklahoma,40079,19,1 +2020-06-14,Le Flore,Oklahoma,40079,20,1 +2020-06-15,Le Flore,Oklahoma,40079,20,1 +2020-06-16,Le Flore,Oklahoma,40079,20,1 +2020-06-17,Le Flore,Oklahoma,40079,20,1 +2020-06-18,Le Flore,Oklahoma,40079,25,1 +2020-06-19,Le Flore,Oklahoma,40079,25,1 +2020-06-20,Le Flore,Oklahoma,40079,26,1 +2020-06-21,Le Flore,Oklahoma,40079,27,1 +2020-06-22,Le Flore,Oklahoma,40079,27,1 +2020-06-23,Le Flore,Oklahoma,40079,28,1 +2020-06-24,Le Flore,Oklahoma,40079,29,1 +2020-06-25,Le Flore,Oklahoma,40079,29,1 +2020-06-26,Le Flore,Oklahoma,40079,30,1 +2020-06-27,Le Flore,Oklahoma,40079,30,1 +2020-06-28,Le Flore,Oklahoma,40079,30,1 +2020-06-29,Le Flore,Oklahoma,40079,31,1 +2020-06-30,Le Flore,Oklahoma,40079,32,1 +2020-07-01,Le Flore,Oklahoma,40079,33,1 +2020-07-02,Le Flore,Oklahoma,40079,33,1 +2020-07-03,Le Flore,Oklahoma,40079,34,1 +2020-07-04,Le Flore,Oklahoma,40079,35,1 +2020-07-05,Le Flore,Oklahoma,40079,35,1 +2020-07-06,Le Flore,Oklahoma,40079,36,1 +2020-07-07,Le Flore,Oklahoma,40079,39,1 +2020-07-08,Le Flore,Oklahoma,40079,48,1 +2020-07-09,Le Flore,Oklahoma,40079,53,1 +2020-03-26,Lincoln,Oklahoma,40081,1,0 +2020-03-27,Lincoln,Oklahoma,40081,3,0 +2020-03-28,Lincoln,Oklahoma,40081,3,0 +2020-03-29,Lincoln,Oklahoma,40081,3,0 +2020-03-30,Lincoln,Oklahoma,40081,4,0 +2020-03-31,Lincoln,Oklahoma,40081,5,0 +2020-04-01,Lincoln,Oklahoma,40081,5,0 +2020-04-02,Lincoln,Oklahoma,40081,6,0 +2020-04-03,Lincoln,Oklahoma,40081,7,0 +2020-04-04,Lincoln,Oklahoma,40081,7,0 +2020-04-05,Lincoln,Oklahoma,40081,7,0 +2020-04-06,Lincoln,Oklahoma,40081,9,0 +2020-04-07,Lincoln,Oklahoma,40081,10,0 +2020-04-08,Lincoln,Oklahoma,40081,10,0 +2020-04-09,Lincoln,Oklahoma,40081,10,0 +2020-04-10,Lincoln,Oklahoma,40081,11,0 +2020-04-11,Lincoln,Oklahoma,40081,11,0 +2020-04-12,Lincoln,Oklahoma,40081,11,0 +2020-04-13,Lincoln,Oklahoma,40081,10,0 +2020-04-14,Lincoln,Oklahoma,40081,10,0 +2020-04-15,Lincoln,Oklahoma,40081,10,0 +2020-04-16,Lincoln,Oklahoma,40081,11,0 +2020-04-17,Lincoln,Oklahoma,40081,11,0 +2020-04-18,Lincoln,Oklahoma,40081,10,0 +2020-04-19,Lincoln,Oklahoma,40081,10,0 +2020-04-20,Lincoln,Oklahoma,40081,10,0 +2020-04-21,Lincoln,Oklahoma,40081,10,0 +2020-04-22,Lincoln,Oklahoma,40081,10,0 +2020-04-23,Lincoln,Oklahoma,40081,10,0 +2020-04-24,Lincoln,Oklahoma,40081,10,0 +2020-04-25,Lincoln,Oklahoma,40081,10,0 +2020-04-26,Lincoln,Oklahoma,40081,10,0 +2020-04-27,Lincoln,Oklahoma,40081,11,0 +2020-04-28,Lincoln,Oklahoma,40081,11,0 +2020-04-29,Lincoln,Oklahoma,40081,12,0 +2020-04-30,Lincoln,Oklahoma,40081,13,0 +2020-05-01,Lincoln,Oklahoma,40081,12,0 +2020-05-02,Lincoln,Oklahoma,40081,14,1 +2020-05-03,Lincoln,Oklahoma,40081,14,1 +2020-05-04,Lincoln,Oklahoma,40081,14,1 +2020-05-05,Lincoln,Oklahoma,40081,16,2 +2020-05-06,Lincoln,Oklahoma,40081,16,2 +2020-05-07,Lincoln,Oklahoma,40081,16,2 +2020-05-08,Lincoln,Oklahoma,40081,17,2 +2020-05-09,Lincoln,Oklahoma,40081,17,2 +2020-05-10,Lincoln,Oklahoma,40081,17,2 +2020-05-11,Lincoln,Oklahoma,40081,17,2 +2020-05-12,Lincoln,Oklahoma,40081,17,2 +2020-05-13,Lincoln,Oklahoma,40081,17,2 +2020-05-14,Lincoln,Oklahoma,40081,17,2 +2020-05-15,Lincoln,Oklahoma,40081,17,2 +2020-05-16,Lincoln,Oklahoma,40081,18,2 +2020-05-17,Lincoln,Oklahoma,40081,18,2 +2020-05-18,Lincoln,Oklahoma,40081,19,2 +2020-05-19,Lincoln,Oklahoma,40081,19,2 +2020-05-20,Lincoln,Oklahoma,40081,19,2 +2020-05-21,Lincoln,Oklahoma,40081,21,2 +2020-05-22,Lincoln,Oklahoma,40081,21,2 +2020-05-23,Lincoln,Oklahoma,40081,21,2 +2020-05-24,Lincoln,Oklahoma,40081,21,2 +2020-05-25,Lincoln,Oklahoma,40081,21,2 +2020-05-26,Lincoln,Oklahoma,40081,22,2 +2020-05-27,Lincoln,Oklahoma,40081,22,2 +2020-05-28,Lincoln,Oklahoma,40081,22,2 +2020-05-29,Lincoln,Oklahoma,40081,22,2 +2020-05-30,Lincoln,Oklahoma,40081,22,2 +2020-05-31,Lincoln,Oklahoma,40081,22,2 +2020-06-01,Lincoln,Oklahoma,40081,22,2 +2020-06-02,Lincoln,Oklahoma,40081,22,2 +2020-06-03,Lincoln,Oklahoma,40081,22,2 +2020-06-04,Lincoln,Oklahoma,40081,22,2 +2020-06-05,Lincoln,Oklahoma,40081,22,2 +2020-06-06,Lincoln,Oklahoma,40081,22,2 +2020-06-07,Lincoln,Oklahoma,40081,22,2 +2020-06-08,Lincoln,Oklahoma,40081,23,2 +2020-06-09,Lincoln,Oklahoma,40081,22,2 +2020-06-10,Lincoln,Oklahoma,40081,22,2 +2020-06-11,Lincoln,Oklahoma,40081,22,2 +2020-06-12,Lincoln,Oklahoma,40081,22,2 +2020-06-13,Lincoln,Oklahoma,40081,22,2 +2020-06-14,Lincoln,Oklahoma,40081,24,2 +2020-06-15,Lincoln,Oklahoma,40081,24,2 +2020-06-16,Lincoln,Oklahoma,40081,27,2 +2020-06-17,Lincoln,Oklahoma,40081,24,2 +2020-06-18,Lincoln,Oklahoma,40081,26,2 +2020-06-19,Lincoln,Oklahoma,40081,25,2 +2020-06-20,Lincoln,Oklahoma,40081,25,2 +2020-06-21,Lincoln,Oklahoma,40081,26,2 +2020-06-22,Lincoln,Oklahoma,40081,27,2 +2020-06-23,Lincoln,Oklahoma,40081,28,2 +2020-06-24,Lincoln,Oklahoma,40081,28,2 +2020-06-25,Lincoln,Oklahoma,40081,29,2 +2020-06-26,Lincoln,Oklahoma,40081,28,2 +2020-06-27,Lincoln,Oklahoma,40081,28,2 +2020-06-28,Lincoln,Oklahoma,40081,29,2 +2020-06-29,Lincoln,Oklahoma,40081,29,2 +2020-06-30,Lincoln,Oklahoma,40081,29,2 +2020-07-01,Lincoln,Oklahoma,40081,30,2 +2020-07-02,Lincoln,Oklahoma,40081,30,2 +2020-07-03,Lincoln,Oklahoma,40081,32,2 +2020-07-04,Lincoln,Oklahoma,40081,33,2 +2020-07-05,Lincoln,Oklahoma,40081,35,2 +2020-07-06,Lincoln,Oklahoma,40081,36,2 +2020-07-07,Lincoln,Oklahoma,40081,37,2 +2020-07-08,Lincoln,Oklahoma,40081,38,2 +2020-07-09,Lincoln,Oklahoma,40081,40,2 +2020-03-19,Logan,Oklahoma,40083,1,0 +2020-03-20,Logan,Oklahoma,40083,1,0 +2020-03-21,Logan,Oklahoma,40083,1,0 +2020-03-22,Logan,Oklahoma,40083,1,0 +2020-03-23,Logan,Oklahoma,40083,1,0 +2020-03-24,Logan,Oklahoma,40083,1,0 +2020-03-25,Logan,Oklahoma,40083,3,0 +2020-03-26,Logan,Oklahoma,40083,3,0 +2020-03-27,Logan,Oklahoma,40083,3,0 +2020-03-28,Logan,Oklahoma,40083,3,0 +2020-03-29,Logan,Oklahoma,40083,3,0 +2020-03-30,Logan,Oklahoma,40083,4,0 +2020-03-31,Logan,Oklahoma,40083,4,0 +2020-04-01,Logan,Oklahoma,40083,4,0 +2020-04-02,Logan,Oklahoma,40083,5,0 +2020-04-03,Logan,Oklahoma,40083,5,0 +2020-04-04,Logan,Oklahoma,40083,6,0 +2020-04-05,Logan,Oklahoma,40083,6,0 +2020-04-06,Logan,Oklahoma,40083,6,0 +2020-04-07,Logan,Oklahoma,40083,6,0 +2020-04-08,Logan,Oklahoma,40083,6,0 +2020-04-09,Logan,Oklahoma,40083,7,0 +2020-04-10,Logan,Oklahoma,40083,7,0 +2020-04-11,Logan,Oklahoma,40083,7,0 +2020-04-12,Logan,Oklahoma,40083,7,0 +2020-04-13,Logan,Oklahoma,40083,7,0 +2020-04-14,Logan,Oklahoma,40083,7,0 +2020-04-15,Logan,Oklahoma,40083,7,0 +2020-04-16,Logan,Oklahoma,40083,8,0 +2020-04-17,Logan,Oklahoma,40083,9,0 +2020-04-18,Logan,Oklahoma,40083,9,0 +2020-04-19,Logan,Oklahoma,40083,9,0 +2020-04-20,Logan,Oklahoma,40083,9,0 +2020-04-21,Logan,Oklahoma,40083,10,0 +2020-04-22,Logan,Oklahoma,40083,10,0 +2020-04-23,Logan,Oklahoma,40083,11,0 +2020-04-24,Logan,Oklahoma,40083,12,0 +2020-04-25,Logan,Oklahoma,40083,12,0 +2020-04-26,Logan,Oklahoma,40083,13,0 +2020-04-27,Logan,Oklahoma,40083,13,0 +2020-04-28,Logan,Oklahoma,40083,13,0 +2020-04-29,Logan,Oklahoma,40083,14,1 +2020-04-30,Logan,Oklahoma,40083,15,1 +2020-05-01,Logan,Oklahoma,40083,16,1 +2020-05-02,Logan,Oklahoma,40083,16,1 +2020-05-03,Logan,Oklahoma,40083,16,1 +2020-05-04,Logan,Oklahoma,40083,16,1 +2020-05-05,Logan,Oklahoma,40083,17,1 +2020-05-06,Logan,Oklahoma,40083,17,1 +2020-05-07,Logan,Oklahoma,40083,18,1 +2020-05-08,Logan,Oklahoma,40083,18,1 +2020-05-09,Logan,Oklahoma,40083,18,1 +2020-05-10,Logan,Oklahoma,40083,18,1 +2020-05-11,Logan,Oklahoma,40083,18,1 +2020-05-12,Logan,Oklahoma,40083,18,1 +2020-05-13,Logan,Oklahoma,40083,18,1 +2020-05-14,Logan,Oklahoma,40083,18,1 +2020-05-15,Logan,Oklahoma,40083,18,1 +2020-05-16,Logan,Oklahoma,40083,18,1 +2020-05-17,Logan,Oklahoma,40083,18,1 +2020-05-18,Logan,Oklahoma,40083,18,1 +2020-05-19,Logan,Oklahoma,40083,18,1 +2020-05-20,Logan,Oklahoma,40083,18,1 +2020-05-21,Logan,Oklahoma,40083,18,1 +2020-05-22,Logan,Oklahoma,40083,18,1 +2020-05-23,Logan,Oklahoma,40083,18,1 +2020-05-24,Logan,Oklahoma,40083,19,1 +2020-05-25,Logan,Oklahoma,40083,19,1 +2020-05-26,Logan,Oklahoma,40083,19,1 +2020-05-27,Logan,Oklahoma,40083,19,1 +2020-05-28,Logan,Oklahoma,40083,19,1 +2020-05-29,Logan,Oklahoma,40083,19,1 +2020-05-30,Logan,Oklahoma,40083,19,1 +2020-05-31,Logan,Oklahoma,40083,19,1 +2020-06-01,Logan,Oklahoma,40083,19,1 +2020-06-02,Logan,Oklahoma,40083,19,1 +2020-06-03,Logan,Oklahoma,40083,19,1 +2020-06-04,Logan,Oklahoma,40083,19,1 +2020-06-05,Logan,Oklahoma,40083,19,1 +2020-06-06,Logan,Oklahoma,40083,19,1 +2020-06-07,Logan,Oklahoma,40083,21,1 +2020-06-08,Logan,Oklahoma,40083,21,1 +2020-06-09,Logan,Oklahoma,40083,21,1 +2020-06-10,Logan,Oklahoma,40083,21,1 +2020-06-11,Logan,Oklahoma,40083,22,1 +2020-06-12,Logan,Oklahoma,40083,22,1 +2020-06-13,Logan,Oklahoma,40083,23,1 +2020-06-14,Logan,Oklahoma,40083,23,1 +2020-06-15,Logan,Oklahoma,40083,25,1 +2020-06-16,Logan,Oklahoma,40083,24,1 +2020-06-17,Logan,Oklahoma,40083,24,1 +2020-06-18,Logan,Oklahoma,40083,25,1 +2020-06-19,Logan,Oklahoma,40083,26,1 +2020-06-20,Logan,Oklahoma,40083,26,1 +2020-06-21,Logan,Oklahoma,40083,28,1 +2020-06-22,Logan,Oklahoma,40083,30,1 +2020-06-23,Logan,Oklahoma,40083,33,1 +2020-06-24,Logan,Oklahoma,40083,35,1 +2020-06-25,Logan,Oklahoma,40083,37,1 +2020-06-26,Logan,Oklahoma,40083,39,1 +2020-06-27,Logan,Oklahoma,40083,41,1 +2020-06-28,Logan,Oklahoma,40083,43,1 +2020-06-29,Logan,Oklahoma,40083,44,1 +2020-06-30,Logan,Oklahoma,40083,49,1 +2020-07-01,Logan,Oklahoma,40083,49,1 +2020-07-02,Logan,Oklahoma,40083,52,1 +2020-07-03,Logan,Oklahoma,40083,54,1 +2020-07-04,Logan,Oklahoma,40083,55,1 +2020-07-05,Logan,Oklahoma,40083,60,1 +2020-07-06,Logan,Oklahoma,40083,62,1 +2020-07-07,Logan,Oklahoma,40083,67,1 +2020-07-08,Logan,Oklahoma,40083,70,1 +2020-07-09,Logan,Oklahoma,40083,75,1 +2020-03-30,Love,Oklahoma,40085,1,0 +2020-03-31,Love,Oklahoma,40085,1,0 +2020-04-01,Love,Oklahoma,40085,1,0 +2020-04-02,Love,Oklahoma,40085,2,0 +2020-04-03,Love,Oklahoma,40085,2,0 +2020-04-04,Love,Oklahoma,40085,2,0 +2020-04-05,Love,Oklahoma,40085,2,0 +2020-04-06,Love,Oklahoma,40085,2,0 +2020-04-07,Love,Oklahoma,40085,2,0 +2020-04-08,Love,Oklahoma,40085,2,0 +2020-04-09,Love,Oklahoma,40085,2,0 +2020-04-10,Love,Oklahoma,40085,2,0 +2020-04-11,Love,Oklahoma,40085,2,0 +2020-04-12,Love,Oklahoma,40085,2,0 +2020-04-13,Love,Oklahoma,40085,2,0 +2020-04-14,Love,Oklahoma,40085,2,0 +2020-04-15,Love,Oklahoma,40085,2,0 +2020-04-16,Love,Oklahoma,40085,2,0 +2020-04-17,Love,Oklahoma,40085,2,0 +2020-04-18,Love,Oklahoma,40085,2,0 +2020-04-19,Love,Oklahoma,40085,2,0 +2020-04-20,Love,Oklahoma,40085,2,0 +2020-04-21,Love,Oklahoma,40085,2,0 +2020-04-22,Love,Oklahoma,40085,2,0 +2020-04-23,Love,Oklahoma,40085,2,0 +2020-04-24,Love,Oklahoma,40085,2,0 +2020-04-25,Love,Oklahoma,40085,2,0 +2020-04-26,Love,Oklahoma,40085,2,0 +2020-04-27,Love,Oklahoma,40085,2,0 +2020-04-28,Love,Oklahoma,40085,2,0 +2020-04-29,Love,Oklahoma,40085,2,0 +2020-04-30,Love,Oklahoma,40085,2,0 +2020-05-01,Love,Oklahoma,40085,2,0 +2020-05-02,Love,Oklahoma,40085,2,0 +2020-05-03,Love,Oklahoma,40085,2,0 +2020-05-04,Love,Oklahoma,40085,2,0 +2020-05-05,Love,Oklahoma,40085,2,0 +2020-05-06,Love,Oklahoma,40085,2,0 +2020-05-07,Love,Oklahoma,40085,3,0 +2020-05-08,Love,Oklahoma,40085,3,0 +2020-05-09,Love,Oklahoma,40085,3,0 +2020-05-10,Love,Oklahoma,40085,3,0 +2020-05-11,Love,Oklahoma,40085,3,0 +2020-05-12,Love,Oklahoma,40085,3,0 +2020-05-13,Love,Oklahoma,40085,3,0 +2020-05-14,Love,Oklahoma,40085,3,0 +2020-05-15,Love,Oklahoma,40085,3,0 +2020-05-16,Love,Oklahoma,40085,3,0 +2020-05-17,Love,Oklahoma,40085,3,0 +2020-05-18,Love,Oklahoma,40085,4,0 +2020-05-19,Love,Oklahoma,40085,4,0 +2020-05-20,Love,Oklahoma,40085,4,0 +2020-05-21,Love,Oklahoma,40085,4,0 +2020-05-22,Love,Oklahoma,40085,6,0 +2020-05-23,Love,Oklahoma,40085,14,0 +2020-05-24,Love,Oklahoma,40085,14,0 +2020-05-25,Love,Oklahoma,40085,15,0 +2020-05-26,Love,Oklahoma,40085,15,0 +2020-05-27,Love,Oklahoma,40085,15,0 +2020-05-28,Love,Oklahoma,40085,15,0 +2020-05-29,Love,Oklahoma,40085,15,0 +2020-05-30,Love,Oklahoma,40085,15,0 +2020-05-31,Love,Oklahoma,40085,16,0 +2020-06-01,Love,Oklahoma,40085,16,0 +2020-06-02,Love,Oklahoma,40085,16,0 +2020-06-03,Love,Oklahoma,40085,16,0 +2020-06-04,Love,Oklahoma,40085,16,0 +2020-06-05,Love,Oklahoma,40085,16,0 +2020-06-06,Love,Oklahoma,40085,16,0 +2020-06-07,Love,Oklahoma,40085,17,0 +2020-06-08,Love,Oklahoma,40085,17,0 +2020-06-09,Love,Oklahoma,40085,21,0 +2020-06-10,Love,Oklahoma,40085,20,0 +2020-06-11,Love,Oklahoma,40085,20,0 +2020-06-12,Love,Oklahoma,40085,21,0 +2020-06-13,Love,Oklahoma,40085,22,0 +2020-06-14,Love,Oklahoma,40085,23,0 +2020-06-15,Love,Oklahoma,40085,25,0 +2020-06-16,Love,Oklahoma,40085,26,0 +2020-06-17,Love,Oklahoma,40085,25,0 +2020-06-18,Love,Oklahoma,40085,25,0 +2020-06-19,Love,Oklahoma,40085,25,0 +2020-06-20,Love,Oklahoma,40085,25,0 +2020-06-21,Love,Oklahoma,40085,26,0 +2020-06-22,Love,Oklahoma,40085,26,0 +2020-06-23,Love,Oklahoma,40085,26,0 +2020-06-24,Love,Oklahoma,40085,27,0 +2020-06-25,Love,Oklahoma,40085,27,0 +2020-06-26,Love,Oklahoma,40085,29,0 +2020-06-27,Love,Oklahoma,40085,29,0 +2020-06-28,Love,Oklahoma,40085,29,0 +2020-06-29,Love,Oklahoma,40085,30,0 +2020-06-30,Love,Oklahoma,40085,30,0 +2020-07-01,Love,Oklahoma,40085,30,0 +2020-07-02,Love,Oklahoma,40085,30,0 +2020-07-03,Love,Oklahoma,40085,31,0 +2020-07-04,Love,Oklahoma,40085,31,0 +2020-07-05,Love,Oklahoma,40085,31,0 +2020-07-06,Love,Oklahoma,40085,34,0 +2020-07-07,Love,Oklahoma,40085,39,0 +2020-07-08,Love,Oklahoma,40085,40,0 +2020-07-09,Love,Oklahoma,40085,45,0 +2020-03-19,McClain,Oklahoma,40087,1,0 +2020-03-20,McClain,Oklahoma,40087,1,0 +2020-03-21,McClain,Oklahoma,40087,1,0 +2020-03-22,McClain,Oklahoma,40087,1,0 +2020-03-23,McClain,Oklahoma,40087,1,0 +2020-03-24,McClain,Oklahoma,40087,1,0 +2020-03-25,McClain,Oklahoma,40087,1,0 +2020-03-26,McClain,Oklahoma,40087,2,0 +2020-03-27,McClain,Oklahoma,40087,2,0 +2020-03-28,McClain,Oklahoma,40087,2,0 +2020-03-29,McClain,Oklahoma,40087,2,0 +2020-03-30,McClain,Oklahoma,40087,2,0 +2020-03-31,McClain,Oklahoma,40087,3,0 +2020-04-01,McClain,Oklahoma,40087,9,0 +2020-04-02,McClain,Oklahoma,40087,11,0 +2020-04-03,McClain,Oklahoma,40087,11,0 +2020-04-04,McClain,Oklahoma,40087,11,0 +2020-04-05,McClain,Oklahoma,40087,12,0 +2020-04-06,McClain,Oklahoma,40087,12,0 +2020-04-07,McClain,Oklahoma,40087,16,0 +2020-04-08,McClain,Oklahoma,40087,15,0 +2020-04-09,McClain,Oklahoma,40087,17,0 +2020-04-10,McClain,Oklahoma,40087,18,0 +2020-04-11,McClain,Oklahoma,40087,18,0 +2020-04-12,McClain,Oklahoma,40087,18,0 +2020-04-13,McClain,Oklahoma,40087,19,0 +2020-04-14,McClain,Oklahoma,40087,18,0 +2020-04-15,McClain,Oklahoma,40087,19,0 +2020-04-16,McClain,Oklahoma,40087,20,0 +2020-04-17,McClain,Oklahoma,40087,21,0 +2020-04-18,McClain,Oklahoma,40087,23,0 +2020-04-19,McClain,Oklahoma,40087,23,0 +2020-04-20,McClain,Oklahoma,40087,22,0 +2020-04-21,McClain,Oklahoma,40087,23,0 +2020-04-22,McClain,Oklahoma,40087,25,0 +2020-04-23,McClain,Oklahoma,40087,28,0 +2020-04-24,McClain,Oklahoma,40087,30,0 +2020-04-25,McClain,Oklahoma,40087,30,0 +2020-04-26,McClain,Oklahoma,40087,30,0 +2020-04-27,McClain,Oklahoma,40087,30,0 +2020-04-28,McClain,Oklahoma,40087,35,0 +2020-04-29,McClain,Oklahoma,40087,35,0 +2020-04-30,McClain,Oklahoma,40087,53,2 +2020-05-01,McClain,Oklahoma,40087,74,2 +2020-05-02,McClain,Oklahoma,40087,74,2 +2020-05-03,McClain,Oklahoma,40087,77,2 +2020-05-04,McClain,Oklahoma,40087,77,2 +2020-05-05,McClain,Oklahoma,40087,84,2 +2020-05-06,McClain,Oklahoma,40087,83,2 +2020-05-07,McClain,Oklahoma,40087,84,2 +2020-05-08,McClain,Oklahoma,40087,85,2 +2020-05-09,McClain,Oklahoma,40087,85,2 +2020-05-10,McClain,Oklahoma,40087,85,2 +2020-05-11,McClain,Oklahoma,40087,85,2 +2020-05-12,McClain,Oklahoma,40087,85,2 +2020-05-13,McClain,Oklahoma,40087,86,2 +2020-05-14,McClain,Oklahoma,40087,86,2 +2020-05-15,McClain,Oklahoma,40087,86,2 +2020-05-16,McClain,Oklahoma,40087,86,2 +2020-05-17,McClain,Oklahoma,40087,86,2 +2020-05-18,McClain,Oklahoma,40087,86,2 +2020-05-19,McClain,Oklahoma,40087,95,2 +2020-05-20,McClain,Oklahoma,40087,95,2 +2020-05-21,McClain,Oklahoma,40087,95,2 +2020-05-22,McClain,Oklahoma,40087,95,2 +2020-05-23,McClain,Oklahoma,40087,97,2 +2020-05-24,McClain,Oklahoma,40087,98,2 +2020-05-25,McClain,Oklahoma,40087,98,2 +2020-05-26,McClain,Oklahoma,40087,98,2 +2020-05-27,McClain,Oklahoma,40087,101,2 +2020-05-28,McClain,Oklahoma,40087,103,3 +2020-05-29,McClain,Oklahoma,40087,104,3 +2020-05-30,McClain,Oklahoma,40087,104,3 +2020-05-31,McClain,Oklahoma,40087,105,3 +2020-06-01,McClain,Oklahoma,40087,105,3 +2020-06-02,McClain,Oklahoma,40087,106,3 +2020-06-03,McClain,Oklahoma,40087,106,3 +2020-06-04,McClain,Oklahoma,40087,107,3 +2020-06-05,McClain,Oklahoma,40087,109,3 +2020-06-06,McClain,Oklahoma,40087,109,4 +2020-06-07,McClain,Oklahoma,40087,109,4 +2020-06-08,McClain,Oklahoma,40087,110,4 +2020-06-09,McClain,Oklahoma,40087,110,4 +2020-06-10,McClain,Oklahoma,40087,110,4 +2020-06-11,McClain,Oklahoma,40087,112,4 +2020-06-12,McClain,Oklahoma,40087,114,4 +2020-06-13,McClain,Oklahoma,40087,113,4 +2020-06-14,McClain,Oklahoma,40087,116,4 +2020-06-15,McClain,Oklahoma,40087,116,4 +2020-06-16,McClain,Oklahoma,40087,118,4 +2020-06-17,McClain,Oklahoma,40087,118,4 +2020-06-18,McClain,Oklahoma,40087,120,4 +2020-06-19,McClain,Oklahoma,40087,121,4 +2020-06-20,McClain,Oklahoma,40087,124,4 +2020-06-21,McClain,Oklahoma,40087,130,4 +2020-06-22,McClain,Oklahoma,40087,130,4 +2020-06-23,McClain,Oklahoma,40087,133,4 +2020-06-24,McClain,Oklahoma,40087,133,4 +2020-06-25,McClain,Oklahoma,40087,139,4 +2020-06-26,McClain,Oklahoma,40087,141,4 +2020-06-27,McClain,Oklahoma,40087,142,4 +2020-06-28,McClain,Oklahoma,40087,151,4 +2020-06-29,McClain,Oklahoma,40087,154,4 +2020-06-30,McClain,Oklahoma,40087,159,4 +2020-07-01,McClain,Oklahoma,40087,167,4 +2020-07-02,McClain,Oklahoma,40087,170,4 +2020-07-03,McClain,Oklahoma,40087,191,4 +2020-07-04,McClain,Oklahoma,40087,196,4 +2020-07-05,McClain,Oklahoma,40087,198,4 +2020-07-06,McClain,Oklahoma,40087,204,4 +2020-07-07,McClain,Oklahoma,40087,216,4 +2020-07-08,McClain,Oklahoma,40087,221,4 +2020-07-09,McClain,Oklahoma,40087,229,4 +2020-04-03,McCurtain,Oklahoma,40089,1,0 +2020-04-04,McCurtain,Oklahoma,40089,1,0 +2020-04-05,McCurtain,Oklahoma,40089,1,0 +2020-04-06,McCurtain,Oklahoma,40089,1,0 +2020-04-07,McCurtain,Oklahoma,40089,2,0 +2020-04-08,McCurtain,Oklahoma,40089,2,0 +2020-04-09,McCurtain,Oklahoma,40089,2,0 +2020-04-10,McCurtain,Oklahoma,40089,2,0 +2020-04-11,McCurtain,Oklahoma,40089,2,0 +2020-04-12,McCurtain,Oklahoma,40089,3,0 +2020-04-13,McCurtain,Oklahoma,40089,6,0 +2020-04-14,McCurtain,Oklahoma,40089,6,0 +2020-04-15,McCurtain,Oklahoma,40089,7,0 +2020-04-16,McCurtain,Oklahoma,40089,7,0 +2020-04-17,McCurtain,Oklahoma,40089,7,0 +2020-04-18,McCurtain,Oklahoma,40089,7,0 +2020-04-19,McCurtain,Oklahoma,40089,7,0 +2020-04-20,McCurtain,Oklahoma,40089,8,0 +2020-04-21,McCurtain,Oklahoma,40089,8,0 +2020-04-22,McCurtain,Oklahoma,40089,8,0 +2020-04-23,McCurtain,Oklahoma,40089,8,0 +2020-04-24,McCurtain,Oklahoma,40089,8,0 +2020-04-25,McCurtain,Oklahoma,40089,8,0 +2020-04-26,McCurtain,Oklahoma,40089,8,0 +2020-04-27,McCurtain,Oklahoma,40089,8,0 +2020-04-28,McCurtain,Oklahoma,40089,8,0 +2020-04-29,McCurtain,Oklahoma,40089,8,0 +2020-04-30,McCurtain,Oklahoma,40089,8,0 +2020-05-01,McCurtain,Oklahoma,40089,8,0 +2020-05-02,McCurtain,Oklahoma,40089,8,0 +2020-05-03,McCurtain,Oklahoma,40089,8,0 +2020-05-04,McCurtain,Oklahoma,40089,8,0 +2020-05-05,McCurtain,Oklahoma,40089,8,0 +2020-05-06,McCurtain,Oklahoma,40089,8,0 +2020-05-07,McCurtain,Oklahoma,40089,8,0 +2020-05-08,McCurtain,Oklahoma,40089,8,0 +2020-05-09,McCurtain,Oklahoma,40089,8,0 +2020-05-10,McCurtain,Oklahoma,40089,8,0 +2020-05-11,McCurtain,Oklahoma,40089,8,0 +2020-05-12,McCurtain,Oklahoma,40089,8,0 +2020-05-13,McCurtain,Oklahoma,40089,8,0 +2020-05-14,McCurtain,Oklahoma,40089,9,0 +2020-05-15,McCurtain,Oklahoma,40089,9,0 +2020-05-16,McCurtain,Oklahoma,40089,11,0 +2020-05-17,McCurtain,Oklahoma,40089,11,0 +2020-05-18,McCurtain,Oklahoma,40089,11,0 +2020-05-19,McCurtain,Oklahoma,40089,12,0 +2020-05-20,McCurtain,Oklahoma,40089,13,0 +2020-05-21,McCurtain,Oklahoma,40089,13,0 +2020-05-22,McCurtain,Oklahoma,40089,18,0 +2020-05-23,McCurtain,Oklahoma,40089,23,0 +2020-05-24,McCurtain,Oklahoma,40089,25,0 +2020-05-25,McCurtain,Oklahoma,40089,29,0 +2020-05-26,McCurtain,Oklahoma,40089,29,0 +2020-05-27,McCurtain,Oklahoma,40089,32,0 +2020-05-28,McCurtain,Oklahoma,40089,33,0 +2020-05-29,McCurtain,Oklahoma,40089,34,0 +2020-05-30,McCurtain,Oklahoma,40089,35,1 +2020-05-31,McCurtain,Oklahoma,40089,41,1 +2020-06-01,McCurtain,Oklahoma,40089,41,1 +2020-06-02,McCurtain,Oklahoma,40089,71,1 +2020-06-03,McCurtain,Oklahoma,40089,75,1 +2020-06-04,McCurtain,Oklahoma,40089,77,1 +2020-06-05,McCurtain,Oklahoma,40089,79,1 +2020-06-06,McCurtain,Oklahoma,40089,81,1 +2020-06-07,McCurtain,Oklahoma,40089,84,1 +2020-06-08,McCurtain,Oklahoma,40089,97,1 +2020-06-09,McCurtain,Oklahoma,40089,109,1 +2020-06-10,McCurtain,Oklahoma,40089,117,1 +2020-06-11,McCurtain,Oklahoma,40089,122,2 +2020-06-12,McCurtain,Oklahoma,40089,137,2 +2020-06-13,McCurtain,Oklahoma,40089,143,2 +2020-06-14,McCurtain,Oklahoma,40089,148,2 +2020-06-15,McCurtain,Oklahoma,40089,151,2 +2020-06-16,McCurtain,Oklahoma,40089,158,2 +2020-06-17,McCurtain,Oklahoma,40089,166,2 +2020-06-18,McCurtain,Oklahoma,40089,189,2 +2020-06-19,McCurtain,Oklahoma,40089,200,2 +2020-06-20,McCurtain,Oklahoma,40089,245,2 +2020-06-21,McCurtain,Oklahoma,40089,302,2 +2020-06-22,McCurtain,Oklahoma,40089,331,2 +2020-06-23,McCurtain,Oklahoma,40089,349,2 +2020-06-24,McCurtain,Oklahoma,40089,363,2 +2020-06-25,McCurtain,Oklahoma,40089,385,2 +2020-06-26,McCurtain,Oklahoma,40089,394,3 +2020-06-27,McCurtain,Oklahoma,40089,406,4 +2020-06-28,McCurtain,Oklahoma,40089,421,4 +2020-06-29,McCurtain,Oklahoma,40089,436,4 +2020-06-30,McCurtain,Oklahoma,40089,471,4 +2020-07-01,McCurtain,Oklahoma,40089,483,4 +2020-07-02,McCurtain,Oklahoma,40089,501,7 +2020-07-03,McCurtain,Oklahoma,40089,522,7 +2020-07-04,McCurtain,Oklahoma,40089,534,7 +2020-07-05,McCurtain,Oklahoma,40089,542,7 +2020-07-06,McCurtain,Oklahoma,40089,561,8 +2020-07-07,McCurtain,Oklahoma,40089,569,9 +2020-07-08,McCurtain,Oklahoma,40089,581,9 +2020-07-09,McCurtain,Oklahoma,40089,596,9 +2020-04-17,McIntosh,Oklahoma,40091,1,0 +2020-04-18,McIntosh,Oklahoma,40091,2,0 +2020-04-19,McIntosh,Oklahoma,40091,2,0 +2020-04-20,McIntosh,Oklahoma,40091,2,0 +2020-04-21,McIntosh,Oklahoma,40091,2,0 +2020-04-22,McIntosh,Oklahoma,40091,2,0 +2020-04-23,McIntosh,Oklahoma,40091,2,0 +2020-04-24,McIntosh,Oklahoma,40091,2,0 +2020-04-25,McIntosh,Oklahoma,40091,2,0 +2020-04-26,McIntosh,Oklahoma,40091,2,0 +2020-04-27,McIntosh,Oklahoma,40091,2,0 +2020-04-28,McIntosh,Oklahoma,40091,2,0 +2020-04-29,McIntosh,Oklahoma,40091,2,0 +2020-04-30,McIntosh,Oklahoma,40091,2,0 +2020-05-01,McIntosh,Oklahoma,40091,2,0 +2020-05-02,McIntosh,Oklahoma,40091,2,0 +2020-05-03,McIntosh,Oklahoma,40091,2,0 +2020-05-04,McIntosh,Oklahoma,40091,3,0 +2020-05-05,McIntosh,Oklahoma,40091,3,0 +2020-05-06,McIntosh,Oklahoma,40091,4,0 +2020-05-07,McIntosh,Oklahoma,40091,4,0 +2020-05-08,McIntosh,Oklahoma,40091,5,0 +2020-05-09,McIntosh,Oklahoma,40091,5,0 +2020-05-10,McIntosh,Oklahoma,40091,5,0 +2020-05-11,McIntosh,Oklahoma,40091,5,0 +2020-05-12,McIntosh,Oklahoma,40091,5,0 +2020-05-13,McIntosh,Oklahoma,40091,5,0 +2020-05-14,McIntosh,Oklahoma,40091,5,0 +2020-05-15,McIntosh,Oklahoma,40091,8,0 +2020-05-16,McIntosh,Oklahoma,40091,10,0 +2020-05-17,McIntosh,Oklahoma,40091,10,0 +2020-05-18,McIntosh,Oklahoma,40091,10,0 +2020-05-19,McIntosh,Oklahoma,40091,10,1 +2020-05-20,McIntosh,Oklahoma,40091,10,1 +2020-05-21,McIntosh,Oklahoma,40091,11,1 +2020-05-22,McIntosh,Oklahoma,40091,11,1 +2020-05-23,McIntosh,Oklahoma,40091,11,1 +2020-05-24,McIntosh,Oklahoma,40091,11,1 +2020-05-25,McIntosh,Oklahoma,40091,11,1 +2020-05-26,McIntosh,Oklahoma,40091,11,1 +2020-05-27,McIntosh,Oklahoma,40091,11,1 +2020-05-28,McIntosh,Oklahoma,40091,11,1 +2020-05-29,McIntosh,Oklahoma,40091,11,1 +2020-05-30,McIntosh,Oklahoma,40091,11,1 +2020-05-31,McIntosh,Oklahoma,40091,11,1 +2020-06-01,McIntosh,Oklahoma,40091,11,1 +2020-06-02,McIntosh,Oklahoma,40091,12,1 +2020-06-03,McIntosh,Oklahoma,40091,12,1 +2020-06-04,McIntosh,Oklahoma,40091,14,1 +2020-06-05,McIntosh,Oklahoma,40091,14,1 +2020-06-06,McIntosh,Oklahoma,40091,14,1 +2020-06-07,McIntosh,Oklahoma,40091,14,1 +2020-06-08,McIntosh,Oklahoma,40091,14,1 +2020-06-09,McIntosh,Oklahoma,40091,14,1 +2020-06-10,McIntosh,Oklahoma,40091,14,1 +2020-06-11,McIntosh,Oklahoma,40091,14,1 +2020-06-12,McIntosh,Oklahoma,40091,15,1 +2020-06-13,McIntosh,Oklahoma,40091,16,1 +2020-06-14,McIntosh,Oklahoma,40091,16,1 +2020-06-15,McIntosh,Oklahoma,40091,16,1 +2020-06-16,McIntosh,Oklahoma,40091,21,1 +2020-06-17,McIntosh,Oklahoma,40091,23,1 +2020-06-18,McIntosh,Oklahoma,40091,25,1 +2020-06-19,McIntosh,Oklahoma,40091,27,1 +2020-06-20,McIntosh,Oklahoma,40091,29,1 +2020-06-21,McIntosh,Oklahoma,40091,38,1 +2020-06-22,McIntosh,Oklahoma,40091,40,1 +2020-06-23,McIntosh,Oklahoma,40091,40,1 +2020-06-24,McIntosh,Oklahoma,40091,43,1 +2020-06-25,McIntosh,Oklahoma,40091,48,1 +2020-06-26,McIntosh,Oklahoma,40091,49,1 +2020-06-27,McIntosh,Oklahoma,40091,49,1 +2020-06-28,McIntosh,Oklahoma,40091,50,1 +2020-06-29,McIntosh,Oklahoma,40091,52,1 +2020-06-30,McIntosh,Oklahoma,40091,57,1 +2020-07-01,McIntosh,Oklahoma,40091,59,1 +2020-07-02,McIntosh,Oklahoma,40091,63,1 +2020-07-03,McIntosh,Oklahoma,40091,64,1 +2020-07-04,McIntosh,Oklahoma,40091,66,1 +2020-07-05,McIntosh,Oklahoma,40091,67,1 +2020-07-06,McIntosh,Oklahoma,40091,70,1 +2020-07-07,McIntosh,Oklahoma,40091,69,1 +2020-07-08,McIntosh,Oklahoma,40091,71,1 +2020-07-09,McIntosh,Oklahoma,40091,79,1 +2020-04-03,Major,Oklahoma,40093,1,0 +2020-04-04,Major,Oklahoma,40093,1,0 +2020-04-05,Major,Oklahoma,40093,1,0 +2020-04-06,Major,Oklahoma,40093,1,0 +2020-04-07,Major,Oklahoma,40093,1,0 +2020-04-08,Major,Oklahoma,40093,1,0 +2020-04-09,Major,Oklahoma,40093,1,0 +2020-04-10,Major,Oklahoma,40093,1,0 +2020-04-11,Major,Oklahoma,40093,1,0 +2020-04-12,Major,Oklahoma,40093,1,0 +2020-04-13,Major,Oklahoma,40093,1,0 +2020-04-14,Major,Oklahoma,40093,2,1 +2020-04-15,Major,Oklahoma,40093,2,1 +2020-04-16,Major,Oklahoma,40093,2,1 +2020-04-17,Major,Oklahoma,40093,2,1 +2020-04-18,Major,Oklahoma,40093,2,1 +2020-04-19,Major,Oklahoma,40093,2,1 +2020-04-20,Major,Oklahoma,40093,2,1 +2020-04-21,Major,Oklahoma,40093,2,1 +2020-04-22,Major,Oklahoma,40093,2,1 +2020-04-23,Major,Oklahoma,40093,2,1 +2020-04-24,Major,Oklahoma,40093,2,1 +2020-04-25,Major,Oklahoma,40093,2,1 +2020-04-26,Major,Oklahoma,40093,2,1 +2020-04-27,Major,Oklahoma,40093,2,1 +2020-04-28,Major,Oklahoma,40093,3,1 +2020-04-29,Major,Oklahoma,40093,3,1 +2020-04-30,Major,Oklahoma,40093,3,1 +2020-05-01,Major,Oklahoma,40093,3,1 +2020-05-02,Major,Oklahoma,40093,3,1 +2020-05-03,Major,Oklahoma,40093,3,1 +2020-05-04,Major,Oklahoma,40093,3,1 +2020-05-05,Major,Oklahoma,40093,4,1 +2020-05-06,Major,Oklahoma,40093,4,1 +2020-05-07,Major,Oklahoma,40093,4,1 +2020-05-08,Major,Oklahoma,40093,5,1 +2020-05-09,Major,Oklahoma,40093,5,1 +2020-05-10,Major,Oklahoma,40093,5,1 +2020-05-11,Major,Oklahoma,40093,5,1 +2020-05-12,Major,Oklahoma,40093,6,1 +2020-05-13,Major,Oklahoma,40093,6,1 +2020-05-14,Major,Oklahoma,40093,6,1 +2020-05-15,Major,Oklahoma,40093,6,1 +2020-05-16,Major,Oklahoma,40093,6,1 +2020-05-17,Major,Oklahoma,40093,6,1 +2020-05-18,Major,Oklahoma,40093,6,1 +2020-05-19,Major,Oklahoma,40093,6,1 +2020-05-20,Major,Oklahoma,40093,6,1 +2020-05-21,Major,Oklahoma,40093,6,1 +2020-05-22,Major,Oklahoma,40093,6,1 +2020-05-23,Major,Oklahoma,40093,6,1 +2020-05-24,Major,Oklahoma,40093,6,1 +2020-05-25,Major,Oklahoma,40093,6,1 +2020-05-26,Major,Oklahoma,40093,6,1 +2020-05-27,Major,Oklahoma,40093,6,1 +2020-05-28,Major,Oklahoma,40093,6,1 +2020-05-29,Major,Oklahoma,40093,6,1 +2020-05-30,Major,Oklahoma,40093,6,1 +2020-05-31,Major,Oklahoma,40093,6,1 +2020-06-01,Major,Oklahoma,40093,6,1 +2020-06-02,Major,Oklahoma,40093,6,1 +2020-06-03,Major,Oklahoma,40093,6,1 +2020-06-04,Major,Oklahoma,40093,6,1 +2020-06-05,Major,Oklahoma,40093,6,1 +2020-06-06,Major,Oklahoma,40093,6,1 +2020-06-07,Major,Oklahoma,40093,6,1 +2020-06-08,Major,Oklahoma,40093,6,1 +2020-06-09,Major,Oklahoma,40093,6,1 +2020-06-10,Major,Oklahoma,40093,6,1 +2020-06-11,Major,Oklahoma,40093,6,1 +2020-06-12,Major,Oklahoma,40093,6,1 +2020-06-13,Major,Oklahoma,40093,6,1 +2020-06-14,Major,Oklahoma,40093,6,1 +2020-06-15,Major,Oklahoma,40093,6,1 +2020-06-16,Major,Oklahoma,40093,6,1 +2020-06-17,Major,Oklahoma,40093,6,1 +2020-06-18,Major,Oklahoma,40093,7,1 +2020-06-19,Major,Oklahoma,40093,7,1 +2020-06-20,Major,Oklahoma,40093,7,1 +2020-06-21,Major,Oklahoma,40093,8,1 +2020-06-22,Major,Oklahoma,40093,8,1 +2020-06-23,Major,Oklahoma,40093,8,1 +2020-06-24,Major,Oklahoma,40093,8,1 +2020-06-25,Major,Oklahoma,40093,8,1 +2020-06-26,Major,Oklahoma,40093,8,1 +2020-06-27,Major,Oklahoma,40093,8,1 +2020-06-28,Major,Oklahoma,40093,8,1 +2020-06-29,Major,Oklahoma,40093,8,1 +2020-06-30,Major,Oklahoma,40093,8,1 +2020-07-01,Major,Oklahoma,40093,8,1 +2020-07-02,Major,Oklahoma,40093,8,1 +2020-07-03,Major,Oklahoma,40093,8,1 +2020-07-04,Major,Oklahoma,40093,8,1 +2020-07-05,Major,Oklahoma,40093,8,1 +2020-07-06,Major,Oklahoma,40093,8,1 +2020-07-07,Major,Oklahoma,40093,8,1 +2020-07-08,Major,Oklahoma,40093,9,1 +2020-07-09,Major,Oklahoma,40093,10,1 +2020-04-07,Marshall,Oklahoma,40095,1,0 +2020-04-08,Marshall,Oklahoma,40095,1,0 +2020-04-09,Marshall,Oklahoma,40095,1,0 +2020-04-10,Marshall,Oklahoma,40095,1,0 +2020-04-11,Marshall,Oklahoma,40095,1,0 +2020-04-12,Marshall,Oklahoma,40095,1,0 +2020-04-13,Marshall,Oklahoma,40095,1,0 +2020-04-14,Marshall,Oklahoma,40095,1,0 +2020-04-15,Marshall,Oklahoma,40095,1,0 +2020-04-16,Marshall,Oklahoma,40095,1,0 +2020-04-17,Marshall,Oklahoma,40095,1,0 +2020-04-18,Marshall,Oklahoma,40095,2,0 +2020-04-19,Marshall,Oklahoma,40095,2,0 +2020-04-20,Marshall,Oklahoma,40095,2,0 +2020-04-21,Marshall,Oklahoma,40095,2,0 +2020-04-22,Marshall,Oklahoma,40095,2,0 +2020-04-23,Marshall,Oklahoma,40095,2,0 +2020-04-24,Marshall,Oklahoma,40095,2,0 +2020-04-25,Marshall,Oklahoma,40095,2,0 +2020-04-26,Marshall,Oklahoma,40095,2,0 +2020-04-27,Marshall,Oklahoma,40095,2,0 +2020-04-28,Marshall,Oklahoma,40095,2,0 +2020-04-29,Marshall,Oklahoma,40095,2,0 +2020-04-30,Marshall,Oklahoma,40095,2,0 +2020-05-01,Marshall,Oklahoma,40095,2,0 +2020-05-02,Marshall,Oklahoma,40095,2,0 +2020-05-03,Marshall,Oklahoma,40095,2,0 +2020-05-04,Marshall,Oklahoma,40095,2,0 +2020-05-05,Marshall,Oklahoma,40095,2,0 +2020-05-06,Marshall,Oklahoma,40095,2,0 +2020-05-07,Marshall,Oklahoma,40095,2,0 +2020-05-08,Marshall,Oklahoma,40095,2,0 +2020-05-09,Marshall,Oklahoma,40095,2,0 +2020-05-10,Marshall,Oklahoma,40095,2,0 +2020-05-11,Marshall,Oklahoma,40095,2,0 +2020-05-12,Marshall,Oklahoma,40095,2,0 +2020-05-13,Marshall,Oklahoma,40095,2,0 +2020-05-14,Marshall,Oklahoma,40095,2,0 +2020-05-15,Marshall,Oklahoma,40095,4,0 +2020-05-16,Marshall,Oklahoma,40095,4,0 +2020-05-17,Marshall,Oklahoma,40095,4,0 +2020-05-18,Marshall,Oklahoma,40095,6,0 +2020-05-19,Marshall,Oklahoma,40095,6,0 +2020-05-20,Marshall,Oklahoma,40095,6,0 +2020-05-21,Marshall,Oklahoma,40095,7,0 +2020-05-22,Marshall,Oklahoma,40095,7,0 +2020-05-23,Marshall,Oklahoma,40095,7,0 +2020-05-24,Marshall,Oklahoma,40095,7,0 +2020-05-25,Marshall,Oklahoma,40095,8,0 +2020-05-26,Marshall,Oklahoma,40095,8,0 +2020-05-27,Marshall,Oklahoma,40095,8,0 +2020-05-28,Marshall,Oklahoma,40095,8,0 +2020-05-29,Marshall,Oklahoma,40095,8,0 +2020-05-30,Marshall,Oklahoma,40095,8,0 +2020-05-31,Marshall,Oklahoma,40095,8,0 +2020-06-01,Marshall,Oklahoma,40095,8,0 +2020-06-02,Marshall,Oklahoma,40095,8,0 +2020-06-03,Marshall,Oklahoma,40095,8,0 +2020-06-04,Marshall,Oklahoma,40095,10,0 +2020-06-05,Marshall,Oklahoma,40095,9,0 +2020-06-06,Marshall,Oklahoma,40095,9,0 +2020-06-07,Marshall,Oklahoma,40095,11,0 +2020-06-08,Marshall,Oklahoma,40095,11,0 +2020-06-09,Marshall,Oklahoma,40095,11,0 +2020-06-10,Marshall,Oklahoma,40095,12,0 +2020-06-11,Marshall,Oklahoma,40095,13,0 +2020-06-12,Marshall,Oklahoma,40095,13,0 +2020-06-13,Marshall,Oklahoma,40095,15,0 +2020-06-14,Marshall,Oklahoma,40095,15,0 +2020-06-15,Marshall,Oklahoma,40095,16,0 +2020-06-16,Marshall,Oklahoma,40095,20,0 +2020-06-17,Marshall,Oklahoma,40095,20,0 +2020-06-18,Marshall,Oklahoma,40095,21,0 +2020-06-19,Marshall,Oklahoma,40095,21,0 +2020-06-20,Marshall,Oklahoma,40095,22,0 +2020-06-21,Marshall,Oklahoma,40095,22,0 +2020-06-22,Marshall,Oklahoma,40095,23,0 +2020-06-23,Marshall,Oklahoma,40095,25,0 +2020-06-24,Marshall,Oklahoma,40095,25,0 +2020-06-25,Marshall,Oklahoma,40095,25,0 +2020-06-26,Marshall,Oklahoma,40095,25,0 +2020-06-27,Marshall,Oklahoma,40095,25,0 +2020-06-28,Marshall,Oklahoma,40095,25,0 +2020-06-29,Marshall,Oklahoma,40095,26,0 +2020-06-30,Marshall,Oklahoma,40095,32,0 +2020-07-01,Marshall,Oklahoma,40095,32,0 +2020-07-02,Marshall,Oklahoma,40095,33,0 +2020-07-03,Marshall,Oklahoma,40095,33,0 +2020-07-04,Marshall,Oklahoma,40095,36,0 +2020-07-05,Marshall,Oklahoma,40095,37,0 +2020-07-06,Marshall,Oklahoma,40095,37,0 +2020-07-07,Marshall,Oklahoma,40095,41,0 +2020-07-08,Marshall,Oklahoma,40095,43,0 +2020-07-09,Marshall,Oklahoma,40095,43,0 +2020-03-24,Mayes,Oklahoma,40097,1,0 +2020-03-25,Mayes,Oklahoma,40097,1,0 +2020-03-26,Mayes,Oklahoma,40097,2,0 +2020-03-27,Mayes,Oklahoma,40097,2,0 +2020-03-28,Mayes,Oklahoma,40097,3,0 +2020-03-29,Mayes,Oklahoma,40097,3,0 +2020-03-30,Mayes,Oklahoma,40097,4,0 +2020-03-31,Mayes,Oklahoma,40097,4,0 +2020-04-01,Mayes,Oklahoma,40097,5,1 +2020-04-02,Mayes,Oklahoma,40097,5,1 +2020-04-03,Mayes,Oklahoma,40097,5,1 +2020-04-04,Mayes,Oklahoma,40097,7,1 +2020-04-05,Mayes,Oklahoma,40097,9,1 +2020-04-06,Mayes,Oklahoma,40097,10,1 +2020-04-07,Mayes,Oklahoma,40097,12,2 +2020-04-08,Mayes,Oklahoma,40097,12,2 +2020-04-09,Mayes,Oklahoma,40097,12,2 +2020-04-10,Mayes,Oklahoma,40097,13,2 +2020-04-11,Mayes,Oklahoma,40097,13,2 +2020-04-12,Mayes,Oklahoma,40097,14,2 +2020-04-13,Mayes,Oklahoma,40097,15,2 +2020-04-14,Mayes,Oklahoma,40097,14,3 +2020-04-15,Mayes,Oklahoma,40097,16,3 +2020-04-16,Mayes,Oklahoma,40097,19,3 +2020-04-17,Mayes,Oklahoma,40097,19,3 +2020-04-18,Mayes,Oklahoma,40097,19,3 +2020-04-19,Mayes,Oklahoma,40097,19,3 +2020-04-20,Mayes,Oklahoma,40097,19,3 +2020-04-21,Mayes,Oklahoma,40097,19,3 +2020-04-22,Mayes,Oklahoma,40097,19,3 +2020-04-23,Mayes,Oklahoma,40097,19,3 +2020-04-24,Mayes,Oklahoma,40097,19,3 +2020-04-25,Mayes,Oklahoma,40097,21,3 +2020-04-26,Mayes,Oklahoma,40097,21,3 +2020-04-27,Mayes,Oklahoma,40097,21,3 +2020-04-28,Mayes,Oklahoma,40097,21,3 +2020-04-29,Mayes,Oklahoma,40097,21,3 +2020-04-30,Mayes,Oklahoma,40097,22,4 +2020-05-01,Mayes,Oklahoma,40097,24,4 +2020-05-02,Mayes,Oklahoma,40097,24,4 +2020-05-03,Mayes,Oklahoma,40097,24,4 +2020-05-04,Mayes,Oklahoma,40097,24,4 +2020-05-05,Mayes,Oklahoma,40097,24,4 +2020-05-06,Mayes,Oklahoma,40097,24,4 +2020-05-07,Mayes,Oklahoma,40097,24,4 +2020-05-08,Mayes,Oklahoma,40097,24,4 +2020-05-09,Mayes,Oklahoma,40097,24,4 +2020-05-10,Mayes,Oklahoma,40097,24,4 +2020-05-11,Mayes,Oklahoma,40097,25,4 +2020-05-12,Mayes,Oklahoma,40097,26,4 +2020-05-13,Mayes,Oklahoma,40097,25,4 +2020-05-14,Mayes,Oklahoma,40097,26,4 +2020-05-15,Mayes,Oklahoma,40097,27,4 +2020-05-16,Mayes,Oklahoma,40097,28,4 +2020-05-17,Mayes,Oklahoma,40097,28,4 +2020-05-18,Mayes,Oklahoma,40097,28,4 +2020-05-19,Mayes,Oklahoma,40097,28,4 +2020-05-20,Mayes,Oklahoma,40097,28,4 +2020-05-21,Mayes,Oklahoma,40097,28,4 +2020-05-22,Mayes,Oklahoma,40097,29,4 +2020-05-23,Mayes,Oklahoma,40097,29,4 +2020-05-24,Mayes,Oklahoma,40097,29,4 +2020-05-25,Mayes,Oklahoma,40097,30,4 +2020-05-26,Mayes,Oklahoma,40097,30,4 +2020-05-27,Mayes,Oklahoma,40097,30,4 +2020-05-28,Mayes,Oklahoma,40097,30,4 +2020-05-29,Mayes,Oklahoma,40097,30,4 +2020-05-30,Mayes,Oklahoma,40097,30,4 +2020-05-31,Mayes,Oklahoma,40097,30,4 +2020-06-01,Mayes,Oklahoma,40097,30,4 +2020-06-02,Mayes,Oklahoma,40097,30,4 +2020-06-03,Mayes,Oklahoma,40097,30,4 +2020-06-04,Mayes,Oklahoma,40097,31,4 +2020-06-05,Mayes,Oklahoma,40097,31,4 +2020-06-06,Mayes,Oklahoma,40097,31,4 +2020-06-07,Mayes,Oklahoma,40097,34,4 +2020-06-08,Mayes,Oklahoma,40097,34,4 +2020-06-09,Mayes,Oklahoma,40097,35,4 +2020-06-10,Mayes,Oklahoma,40097,37,4 +2020-06-11,Mayes,Oklahoma,40097,46,4 +2020-06-12,Mayes,Oklahoma,40097,50,4 +2020-06-13,Mayes,Oklahoma,40097,56,4 +2020-06-14,Mayes,Oklahoma,40097,56,4 +2020-06-15,Mayes,Oklahoma,40097,56,4 +2020-06-16,Mayes,Oklahoma,40097,59,4 +2020-06-17,Mayes,Oklahoma,40097,59,4 +2020-06-18,Mayes,Oklahoma,40097,60,4 +2020-06-19,Mayes,Oklahoma,40097,60,4 +2020-06-20,Mayes,Oklahoma,40097,65,4 +2020-06-21,Mayes,Oklahoma,40097,69,4 +2020-06-22,Mayes,Oklahoma,40097,70,4 +2020-06-23,Mayes,Oklahoma,40097,70,4 +2020-06-24,Mayes,Oklahoma,40097,71,4 +2020-06-25,Mayes,Oklahoma,40097,73,4 +2020-06-26,Mayes,Oklahoma,40097,75,4 +2020-06-27,Mayes,Oklahoma,40097,76,4 +2020-06-28,Mayes,Oklahoma,40097,78,4 +2020-06-29,Mayes,Oklahoma,40097,79,4 +2020-06-30,Mayes,Oklahoma,40097,81,5 +2020-07-01,Mayes,Oklahoma,40097,82,5 +2020-07-02,Mayes,Oklahoma,40097,83,5 +2020-07-03,Mayes,Oklahoma,40097,86,5 +2020-07-04,Mayes,Oklahoma,40097,93,5 +2020-07-05,Mayes,Oklahoma,40097,94,5 +2020-07-06,Mayes,Oklahoma,40097,94,5 +2020-07-07,Mayes,Oklahoma,40097,102,5 +2020-07-08,Mayes,Oklahoma,40097,105,5 +2020-07-09,Mayes,Oklahoma,40097,109,5 +2020-04-10,Murray,Oklahoma,40099,1,0 +2020-04-11,Murray,Oklahoma,40099,1,0 +2020-04-12,Murray,Oklahoma,40099,1,0 +2020-04-13,Murray,Oklahoma,40099,1,0 +2020-04-14,Murray,Oklahoma,40099,1,0 +2020-04-15,Murray,Oklahoma,40099,1,0 +2020-04-16,Murray,Oklahoma,40099,2,0 +2020-04-17,Murray,Oklahoma,40099,1,0 +2020-04-18,Murray,Oklahoma,40099,1,0 +2020-04-19,Murray,Oklahoma,40099,1,0 +2020-04-20,Murray,Oklahoma,40099,1,0 +2020-04-21,Murray,Oklahoma,40099,1,0 +2020-04-22,Murray,Oklahoma,40099,1,0 +2020-04-23,Murray,Oklahoma,40099,1,0 +2020-04-24,Murray,Oklahoma,40099,1,0 +2020-04-25,Murray,Oklahoma,40099,1,0 +2020-04-26,Murray,Oklahoma,40099,1,0 +2020-04-27,Murray,Oklahoma,40099,1,0 +2020-04-28,Murray,Oklahoma,40099,1,0 +2020-04-29,Murray,Oklahoma,40099,1,0 +2020-04-30,Murray,Oklahoma,40099,1,0 +2020-05-01,Murray,Oklahoma,40099,1,0 +2020-05-02,Murray,Oklahoma,40099,2,0 +2020-05-03,Murray,Oklahoma,40099,2,0 +2020-05-04,Murray,Oklahoma,40099,2,0 +2020-05-05,Murray,Oklahoma,40099,2,0 +2020-05-06,Murray,Oklahoma,40099,2,0 +2020-05-07,Murray,Oklahoma,40099,2,0 +2020-05-08,Murray,Oklahoma,40099,2,0 +2020-05-09,Murray,Oklahoma,40099,2,0 +2020-05-10,Murray,Oklahoma,40099,2,0 +2020-05-11,Murray,Oklahoma,40099,2,0 +2020-05-12,Murray,Oklahoma,40099,2,0 +2020-05-13,Murray,Oklahoma,40099,2,0 +2020-05-14,Murray,Oklahoma,40099,2,0 +2020-05-15,Murray,Oklahoma,40099,2,0 +2020-05-16,Murray,Oklahoma,40099,2,0 +2020-05-17,Murray,Oklahoma,40099,2,0 +2020-05-18,Murray,Oklahoma,40099,2,0 +2020-05-19,Murray,Oklahoma,40099,2,0 +2020-05-20,Murray,Oklahoma,40099,2,0 +2020-05-21,Murray,Oklahoma,40099,2,0 +2020-05-22,Murray,Oklahoma,40099,2,0 +2020-05-23,Murray,Oklahoma,40099,2,0 +2020-05-24,Murray,Oklahoma,40099,2,0 +2020-05-25,Murray,Oklahoma,40099,2,0 +2020-05-26,Murray,Oklahoma,40099,2,0 +2020-05-27,Murray,Oklahoma,40099,3,0 +2020-05-28,Murray,Oklahoma,40099,4,0 +2020-05-29,Murray,Oklahoma,40099,4,0 +2020-05-30,Murray,Oklahoma,40099,4,0 +2020-05-31,Murray,Oklahoma,40099,4,0 +2020-06-01,Murray,Oklahoma,40099,4,0 +2020-06-02,Murray,Oklahoma,40099,4,0 +2020-06-03,Murray,Oklahoma,40099,5,0 +2020-06-04,Murray,Oklahoma,40099,5,0 +2020-06-05,Murray,Oklahoma,40099,5,0 +2020-06-06,Murray,Oklahoma,40099,5,0 +2020-06-07,Murray,Oklahoma,40099,6,0 +2020-06-08,Murray,Oklahoma,40099,6,0 +2020-06-09,Murray,Oklahoma,40099,6,0 +2020-06-10,Murray,Oklahoma,40099,6,0 +2020-06-11,Murray,Oklahoma,40099,6,0 +2020-06-12,Murray,Oklahoma,40099,6,0 +2020-06-13,Murray,Oklahoma,40099,6,0 +2020-06-14,Murray,Oklahoma,40099,11,0 +2020-06-15,Murray,Oklahoma,40099,11,0 +2020-06-16,Murray,Oklahoma,40099,11,0 +2020-06-17,Murray,Oklahoma,40099,13,0 +2020-06-18,Murray,Oklahoma,40099,12,0 +2020-06-19,Murray,Oklahoma,40099,13,0 +2020-06-20,Murray,Oklahoma,40099,13,0 +2020-06-21,Murray,Oklahoma,40099,13,0 +2020-06-22,Murray,Oklahoma,40099,14,0 +2020-06-23,Murray,Oklahoma,40099,14,0 +2020-06-24,Murray,Oklahoma,40099,14,0 +2020-06-25,Murray,Oklahoma,40099,15,0 +2020-06-26,Murray,Oklahoma,40099,16,0 +2020-06-27,Murray,Oklahoma,40099,18,0 +2020-06-28,Murray,Oklahoma,40099,18,0 +2020-06-29,Murray,Oklahoma,40099,19,0 +2020-06-30,Murray,Oklahoma,40099,18,0 +2020-07-01,Murray,Oklahoma,40099,18,0 +2020-07-02,Murray,Oklahoma,40099,18,0 +2020-07-03,Murray,Oklahoma,40099,18,0 +2020-07-04,Murray,Oklahoma,40099,21,0 +2020-07-05,Murray,Oklahoma,40099,22,0 +2020-07-06,Murray,Oklahoma,40099,22,0 +2020-07-07,Murray,Oklahoma,40099,23,0 +2020-07-08,Murray,Oklahoma,40099,23,0 +2020-07-09,Murray,Oklahoma,40099,24,0 +2020-03-22,Muskogee,Oklahoma,40101,1,0 +2020-03-23,Muskogee,Oklahoma,40101,1,0 +2020-03-24,Muskogee,Oklahoma,40101,1,0 +2020-03-25,Muskogee,Oklahoma,40101,1,0 +2020-03-26,Muskogee,Oklahoma,40101,4,0 +2020-03-27,Muskogee,Oklahoma,40101,5,0 +2020-03-28,Muskogee,Oklahoma,40101,7,0 +2020-03-29,Muskogee,Oklahoma,40101,7,0 +2020-03-30,Muskogee,Oklahoma,40101,7,0 +2020-03-31,Muskogee,Oklahoma,40101,8,1 +2020-04-01,Muskogee,Oklahoma,40101,13,1 +2020-04-02,Muskogee,Oklahoma,40101,15,2 +2020-04-03,Muskogee,Oklahoma,40101,16,2 +2020-04-04,Muskogee,Oklahoma,40101,17,2 +2020-04-05,Muskogee,Oklahoma,40101,20,2 +2020-04-06,Muskogee,Oklahoma,40101,20,2 +2020-04-07,Muskogee,Oklahoma,40101,21,2 +2020-04-08,Muskogee,Oklahoma,40101,21,2 +2020-04-09,Muskogee,Oklahoma,40101,21,2 +2020-04-10,Muskogee,Oklahoma,40101,21,2 +2020-04-11,Muskogee,Oklahoma,40101,21,2 +2020-04-12,Muskogee,Oklahoma,40101,21,2 +2020-04-13,Muskogee,Oklahoma,40101,22,2 +2020-04-14,Muskogee,Oklahoma,40101,25,2 +2020-04-15,Muskogee,Oklahoma,40101,26,2 +2020-04-16,Muskogee,Oklahoma,40101,25,3 +2020-04-17,Muskogee,Oklahoma,40101,25,3 +2020-04-18,Muskogee,Oklahoma,40101,26,3 +2020-04-19,Muskogee,Oklahoma,40101,26,3 +2020-04-20,Muskogee,Oklahoma,40101,26,3 +2020-04-21,Muskogee,Oklahoma,40101,26,3 +2020-04-22,Muskogee,Oklahoma,40101,26,3 +2020-04-23,Muskogee,Oklahoma,40101,26,4 +2020-04-24,Muskogee,Oklahoma,40101,26,4 +2020-04-25,Muskogee,Oklahoma,40101,26,4 +2020-04-26,Muskogee,Oklahoma,40101,26,4 +2020-04-27,Muskogee,Oklahoma,40101,26,4 +2020-04-28,Muskogee,Oklahoma,40101,26,4 +2020-04-29,Muskogee,Oklahoma,40101,26,5 +2020-04-30,Muskogee,Oklahoma,40101,27,5 +2020-05-01,Muskogee,Oklahoma,40101,27,5 +2020-05-02,Muskogee,Oklahoma,40101,27,6 +2020-05-03,Muskogee,Oklahoma,40101,27,6 +2020-05-04,Muskogee,Oklahoma,40101,27,6 +2020-05-05,Muskogee,Oklahoma,40101,27,6 +2020-05-06,Muskogee,Oklahoma,40101,27,6 +2020-05-07,Muskogee,Oklahoma,40101,28,6 +2020-05-08,Muskogee,Oklahoma,40101,28,6 +2020-05-09,Muskogee,Oklahoma,40101,29,6 +2020-05-10,Muskogee,Oklahoma,40101,29,6 +2020-05-11,Muskogee,Oklahoma,40101,29,6 +2020-05-12,Muskogee,Oklahoma,40101,29,6 +2020-05-13,Muskogee,Oklahoma,40101,29,6 +2020-05-14,Muskogee,Oklahoma,40101,30,6 +2020-05-15,Muskogee,Oklahoma,40101,29,6 +2020-05-16,Muskogee,Oklahoma,40101,29,6 +2020-05-17,Muskogee,Oklahoma,40101,30,6 +2020-05-18,Muskogee,Oklahoma,40101,30,6 +2020-05-19,Muskogee,Oklahoma,40101,30,6 +2020-05-20,Muskogee,Oklahoma,40101,30,6 +2020-05-21,Muskogee,Oklahoma,40101,32,6 +2020-05-22,Muskogee,Oklahoma,40101,34,6 +2020-05-23,Muskogee,Oklahoma,40101,35,6 +2020-05-24,Muskogee,Oklahoma,40101,35,6 +2020-05-25,Muskogee,Oklahoma,40101,35,6 +2020-05-26,Muskogee,Oklahoma,40101,36,6 +2020-05-27,Muskogee,Oklahoma,40101,39,6 +2020-05-28,Muskogee,Oklahoma,40101,43,6 +2020-05-29,Muskogee,Oklahoma,40101,46,6 +2020-05-30,Muskogee,Oklahoma,40101,48,6 +2020-05-31,Muskogee,Oklahoma,40101,48,6 +2020-06-01,Muskogee,Oklahoma,40101,48,6 +2020-06-02,Muskogee,Oklahoma,40101,49,6 +2020-06-03,Muskogee,Oklahoma,40101,60,6 +2020-06-04,Muskogee,Oklahoma,40101,60,6 +2020-06-05,Muskogee,Oklahoma,40101,61,6 +2020-06-06,Muskogee,Oklahoma,40101,61,6 +2020-06-07,Muskogee,Oklahoma,40101,62,6 +2020-06-08,Muskogee,Oklahoma,40101,64,6 +2020-06-09,Muskogee,Oklahoma,40101,67,7 +2020-06-10,Muskogee,Oklahoma,40101,67,7 +2020-06-11,Muskogee,Oklahoma,40101,69,7 +2020-06-12,Muskogee,Oklahoma,40101,70,8 +2020-06-13,Muskogee,Oklahoma,40101,74,8 +2020-06-14,Muskogee,Oklahoma,40101,77,8 +2020-06-15,Muskogee,Oklahoma,40101,79,8 +2020-06-16,Muskogee,Oklahoma,40101,77,8 +2020-06-17,Muskogee,Oklahoma,40101,77,8 +2020-06-18,Muskogee,Oklahoma,40101,80,8 +2020-06-19,Muskogee,Oklahoma,40101,88,9 +2020-06-20,Muskogee,Oklahoma,40101,92,9 +2020-06-21,Muskogee,Oklahoma,40101,94,9 +2020-06-22,Muskogee,Oklahoma,40101,97,9 +2020-06-23,Muskogee,Oklahoma,40101,100,9 +2020-06-24,Muskogee,Oklahoma,40101,102,9 +2020-06-25,Muskogee,Oklahoma,40101,102,9 +2020-06-26,Muskogee,Oklahoma,40101,103,9 +2020-06-27,Muskogee,Oklahoma,40101,105,11 +2020-06-28,Muskogee,Oklahoma,40101,106,11 +2020-06-29,Muskogee,Oklahoma,40101,106,11 +2020-06-30,Muskogee,Oklahoma,40101,118,11 +2020-07-01,Muskogee,Oklahoma,40101,123,11 +2020-07-02,Muskogee,Oklahoma,40101,127,11 +2020-07-03,Muskogee,Oklahoma,40101,133,11 +2020-07-04,Muskogee,Oklahoma,40101,137,11 +2020-07-05,Muskogee,Oklahoma,40101,138,11 +2020-07-06,Muskogee,Oklahoma,40101,143,11 +2020-07-07,Muskogee,Oklahoma,40101,153,12 +2020-07-08,Muskogee,Oklahoma,40101,159,12 +2020-07-09,Muskogee,Oklahoma,40101,174,13 +2020-03-22,Noble,Oklahoma,40103,1,0 +2020-03-23,Noble,Oklahoma,40103,1,0 +2020-03-24,Noble,Oklahoma,40103,2,0 +2020-03-25,Noble,Oklahoma,40103,2,0 +2020-03-26,Noble,Oklahoma,40103,2,0 +2020-03-27,Noble,Oklahoma,40103,3,0 +2020-03-28,Noble,Oklahoma,40103,3,0 +2020-03-29,Noble,Oklahoma,40103,3,0 +2020-03-30,Noble,Oklahoma,40103,3,0 +2020-03-31,Noble,Oklahoma,40103,4,0 +2020-04-01,Noble,Oklahoma,40103,5,0 +2020-04-02,Noble,Oklahoma,40103,5,0 +2020-04-03,Noble,Oklahoma,40103,5,0 +2020-04-04,Noble,Oklahoma,40103,5,0 +2020-04-05,Noble,Oklahoma,40103,6,0 +2020-04-06,Noble,Oklahoma,40103,6,0 +2020-04-07,Noble,Oklahoma,40103,6,0 +2020-04-08,Noble,Oklahoma,40103,6,0 +2020-04-09,Noble,Oklahoma,40103,6,0 +2020-04-10,Noble,Oklahoma,40103,6,0 +2020-04-11,Noble,Oklahoma,40103,6,0 +2020-04-12,Noble,Oklahoma,40103,6,0 +2020-04-13,Noble,Oklahoma,40103,6,0 +2020-04-14,Noble,Oklahoma,40103,6,0 +2020-04-15,Noble,Oklahoma,40103,6,0 +2020-04-16,Noble,Oklahoma,40103,6,0 +2020-04-17,Noble,Oklahoma,40103,6,0 +2020-04-18,Noble,Oklahoma,40103,6,0 +2020-04-19,Noble,Oklahoma,40103,6,0 +2020-04-20,Noble,Oklahoma,40103,6,0 +2020-04-21,Noble,Oklahoma,40103,6,0 +2020-04-22,Noble,Oklahoma,40103,6,0 +2020-04-23,Noble,Oklahoma,40103,6,0 +2020-04-24,Noble,Oklahoma,40103,6,0 +2020-04-25,Noble,Oklahoma,40103,6,0 +2020-04-26,Noble,Oklahoma,40103,6,0 +2020-04-27,Noble,Oklahoma,40103,6,0 +2020-04-28,Noble,Oklahoma,40103,6,0 +2020-04-29,Noble,Oklahoma,40103,6,0 +2020-04-30,Noble,Oklahoma,40103,6,0 +2020-05-01,Noble,Oklahoma,40103,6,0 +2020-05-02,Noble,Oklahoma,40103,6,0 +2020-05-03,Noble,Oklahoma,40103,6,0 +2020-05-04,Noble,Oklahoma,40103,6,0 +2020-05-05,Noble,Oklahoma,40103,6,0 +2020-05-06,Noble,Oklahoma,40103,7,0 +2020-05-07,Noble,Oklahoma,40103,7,0 +2020-05-08,Noble,Oklahoma,40103,7,0 +2020-05-09,Noble,Oklahoma,40103,7,0 +2020-05-10,Noble,Oklahoma,40103,7,0 +2020-05-11,Noble,Oklahoma,40103,7,0 +2020-05-12,Noble,Oklahoma,40103,7,0 +2020-05-13,Noble,Oklahoma,40103,7,0 +2020-05-14,Noble,Oklahoma,40103,7,0 +2020-05-15,Noble,Oklahoma,40103,7,0 +2020-05-16,Noble,Oklahoma,40103,7,0 +2020-05-17,Noble,Oklahoma,40103,7,0 +2020-05-18,Noble,Oklahoma,40103,7,0 +2020-05-19,Noble,Oklahoma,40103,7,0 +2020-05-20,Noble,Oklahoma,40103,7,0 +2020-05-21,Noble,Oklahoma,40103,7,0 +2020-05-22,Noble,Oklahoma,40103,7,0 +2020-05-23,Noble,Oklahoma,40103,7,0 +2020-05-24,Noble,Oklahoma,40103,7,0 +2020-05-25,Noble,Oklahoma,40103,7,0 +2020-05-26,Noble,Oklahoma,40103,7,0 +2020-05-27,Noble,Oklahoma,40103,7,0 +2020-05-28,Noble,Oklahoma,40103,7,0 +2020-05-29,Noble,Oklahoma,40103,7,0 +2020-05-30,Noble,Oklahoma,40103,7,0 +2020-05-31,Noble,Oklahoma,40103,7,0 +2020-06-01,Noble,Oklahoma,40103,7,0 +2020-06-02,Noble,Oklahoma,40103,7,0 +2020-06-03,Noble,Oklahoma,40103,7,0 +2020-06-04,Noble,Oklahoma,40103,7,0 +2020-06-05,Noble,Oklahoma,40103,7,0 +2020-06-06,Noble,Oklahoma,40103,7,0 +2020-06-07,Noble,Oklahoma,40103,7,0 +2020-06-08,Noble,Oklahoma,40103,7,0 +2020-06-09,Noble,Oklahoma,40103,7,0 +2020-06-10,Noble,Oklahoma,40103,7,0 +2020-06-11,Noble,Oklahoma,40103,7,0 +2020-06-12,Noble,Oklahoma,40103,8,0 +2020-06-13,Noble,Oklahoma,40103,9,0 +2020-06-14,Noble,Oklahoma,40103,14,0 +2020-06-15,Noble,Oklahoma,40103,14,0 +2020-06-16,Noble,Oklahoma,40103,18,0 +2020-06-17,Noble,Oklahoma,40103,20,0 +2020-06-18,Noble,Oklahoma,40103,24,0 +2020-06-19,Noble,Oklahoma,40103,26,0 +2020-06-20,Noble,Oklahoma,40103,26,0 +2020-06-21,Noble,Oklahoma,40103,28,0 +2020-06-22,Noble,Oklahoma,40103,29,0 +2020-06-23,Noble,Oklahoma,40103,30,0 +2020-06-24,Noble,Oklahoma,40103,31,0 +2020-06-25,Noble,Oklahoma,40103,34,0 +2020-06-26,Noble,Oklahoma,40103,36,0 +2020-06-27,Noble,Oklahoma,40103,37,0 +2020-06-28,Noble,Oklahoma,40103,37,0 +2020-06-29,Noble,Oklahoma,40103,38,0 +2020-06-30,Noble,Oklahoma,40103,39,0 +2020-07-01,Noble,Oklahoma,40103,39,0 +2020-07-02,Noble,Oklahoma,40103,40,0 +2020-07-03,Noble,Oklahoma,40103,40,1 +2020-07-04,Noble,Oklahoma,40103,40,1 +2020-07-05,Noble,Oklahoma,40103,40,1 +2020-07-06,Noble,Oklahoma,40103,47,1 +2020-07-07,Noble,Oklahoma,40103,48,1 +2020-07-08,Noble,Oklahoma,40103,48,1 +2020-07-09,Noble,Oklahoma,40103,50,1 +2020-03-28,Nowata,Oklahoma,40105,1,0 +2020-03-29,Nowata,Oklahoma,40105,3,0 +2020-03-30,Nowata,Oklahoma,40105,4,0 +2020-03-31,Nowata,Oklahoma,40105,5,0 +2020-04-01,Nowata,Oklahoma,40105,5,0 +2020-04-02,Nowata,Oklahoma,40105,6,0 +2020-04-03,Nowata,Oklahoma,40105,7,0 +2020-04-04,Nowata,Oklahoma,40105,8,0 +2020-04-05,Nowata,Oklahoma,40105,9,0 +2020-04-06,Nowata,Oklahoma,40105,9,0 +2020-04-07,Nowata,Oklahoma,40105,10,0 +2020-04-08,Nowata,Oklahoma,40105,10,0 +2020-04-09,Nowata,Oklahoma,40105,10,0 +2020-04-10,Nowata,Oklahoma,40105,10,0 +2020-04-11,Nowata,Oklahoma,40105,10,0 +2020-04-12,Nowata,Oklahoma,40105,10,0 +2020-04-13,Nowata,Oklahoma,40105,10,0 +2020-04-14,Nowata,Oklahoma,40105,11,0 +2020-04-15,Nowata,Oklahoma,40105,11,0 +2020-04-16,Nowata,Oklahoma,40105,11,0 +2020-04-17,Nowata,Oklahoma,40105,11,0 +2020-04-18,Nowata,Oklahoma,40105,13,0 +2020-04-19,Nowata,Oklahoma,40105,13,0 +2020-04-20,Nowata,Oklahoma,40105,13,0 +2020-04-21,Nowata,Oklahoma,40105,13,0 +2020-04-22,Nowata,Oklahoma,40105,14,0 +2020-04-23,Nowata,Oklahoma,40105,16,0 +2020-04-24,Nowata,Oklahoma,40105,17,0 +2020-04-25,Nowata,Oklahoma,40105,19,0 +2020-04-26,Nowata,Oklahoma,40105,20,0 +2020-04-27,Nowata,Oklahoma,40105,20,0 +2020-04-28,Nowata,Oklahoma,40105,20,0 +2020-04-29,Nowata,Oklahoma,40105,21,0 +2020-04-30,Nowata,Oklahoma,40105,21,0 +2020-05-01,Nowata,Oklahoma,40105,21,0 +2020-05-02,Nowata,Oklahoma,40105,21,0 +2020-05-03,Nowata,Oklahoma,40105,21,0 +2020-05-04,Nowata,Oklahoma,40105,21,0 +2020-05-05,Nowata,Oklahoma,40105,21,0 +2020-05-06,Nowata,Oklahoma,40105,21,0 +2020-05-07,Nowata,Oklahoma,40105,21,0 +2020-05-08,Nowata,Oklahoma,40105,22,0 +2020-05-09,Nowata,Oklahoma,40105,22,0 +2020-05-10,Nowata,Oklahoma,40105,22,0 +2020-05-11,Nowata,Oklahoma,40105,22,0 +2020-05-12,Nowata,Oklahoma,40105,23,0 +2020-05-13,Nowata,Oklahoma,40105,23,0 +2020-05-14,Nowata,Oklahoma,40105,23,0 +2020-05-15,Nowata,Oklahoma,40105,23,0 +2020-05-16,Nowata,Oklahoma,40105,23,0 +2020-05-17,Nowata,Oklahoma,40105,23,0 +2020-05-18,Nowata,Oklahoma,40105,23,0 +2020-05-19,Nowata,Oklahoma,40105,23,0 +2020-05-20,Nowata,Oklahoma,40105,23,0 +2020-05-21,Nowata,Oklahoma,40105,23,0 +2020-05-22,Nowata,Oklahoma,40105,23,0 +2020-05-23,Nowata,Oklahoma,40105,23,0 +2020-05-24,Nowata,Oklahoma,40105,23,0 +2020-05-25,Nowata,Oklahoma,40105,23,0 +2020-05-26,Nowata,Oklahoma,40105,23,0 +2020-05-27,Nowata,Oklahoma,40105,23,0 +2020-05-28,Nowata,Oklahoma,40105,23,0 +2020-05-29,Nowata,Oklahoma,40105,23,0 +2020-05-30,Nowata,Oklahoma,40105,23,0 +2020-05-31,Nowata,Oklahoma,40105,23,0 +2020-06-01,Nowata,Oklahoma,40105,23,0 +2020-06-02,Nowata,Oklahoma,40105,23,0 +2020-06-03,Nowata,Oklahoma,40105,23,0 +2020-06-04,Nowata,Oklahoma,40105,23,0 +2020-06-05,Nowata,Oklahoma,40105,23,0 +2020-06-06,Nowata,Oklahoma,40105,23,0 +2020-06-07,Nowata,Oklahoma,40105,24,0 +2020-06-08,Nowata,Oklahoma,40105,24,0 +2020-06-09,Nowata,Oklahoma,40105,24,1 +2020-06-10,Nowata,Oklahoma,40105,24,1 +2020-06-11,Nowata,Oklahoma,40105,24,1 +2020-06-12,Nowata,Oklahoma,40105,25,1 +2020-06-13,Nowata,Oklahoma,40105,25,1 +2020-06-14,Nowata,Oklahoma,40105,25,1 +2020-06-15,Nowata,Oklahoma,40105,25,1 +2020-06-16,Nowata,Oklahoma,40105,26,1 +2020-06-17,Nowata,Oklahoma,40105,26,1 +2020-06-18,Nowata,Oklahoma,40105,27,1 +2020-06-19,Nowata,Oklahoma,40105,27,1 +2020-06-20,Nowata,Oklahoma,40105,27,1 +2020-06-21,Nowata,Oklahoma,40105,28,1 +2020-06-22,Nowata,Oklahoma,40105,28,1 +2020-06-23,Nowata,Oklahoma,40105,29,1 +2020-06-24,Nowata,Oklahoma,40105,32,1 +2020-06-25,Nowata,Oklahoma,40105,32,1 +2020-06-26,Nowata,Oklahoma,40105,33,1 +2020-06-27,Nowata,Oklahoma,40105,33,1 +2020-06-28,Nowata,Oklahoma,40105,34,1 +2020-06-29,Nowata,Oklahoma,40105,34,1 +2020-06-30,Nowata,Oklahoma,40105,34,1 +2020-07-01,Nowata,Oklahoma,40105,34,1 +2020-07-02,Nowata,Oklahoma,40105,34,1 +2020-07-03,Nowata,Oklahoma,40105,36,1 +2020-07-04,Nowata,Oklahoma,40105,36,1 +2020-07-05,Nowata,Oklahoma,40105,37,1 +2020-07-06,Nowata,Oklahoma,40105,37,1 +2020-07-07,Nowata,Oklahoma,40105,37,1 +2020-07-08,Nowata,Oklahoma,40105,37,1 +2020-07-09,Nowata,Oklahoma,40105,37,1 +2020-04-10,Okfuskee,Oklahoma,40107,1,0 +2020-04-11,Okfuskee,Oklahoma,40107,1,0 +2020-04-12,Okfuskee,Oklahoma,40107,1,0 +2020-04-13,Okfuskee,Oklahoma,40107,1,0 +2020-04-14,Okfuskee,Oklahoma,40107,1,0 +2020-04-15,Okfuskee,Oklahoma,40107,1,0 +2020-04-16,Okfuskee,Oklahoma,40107,1,0 +2020-04-17,Okfuskee,Oklahoma,40107,1,0 +2020-04-18,Okfuskee,Oklahoma,40107,1,0 +2020-04-19,Okfuskee,Oklahoma,40107,1,0 +2020-04-20,Okfuskee,Oklahoma,40107,1,0 +2020-04-21,Okfuskee,Oklahoma,40107,1,0 +2020-04-22,Okfuskee,Oklahoma,40107,1,0 +2020-04-23,Okfuskee,Oklahoma,40107,1,0 +2020-04-24,Okfuskee,Oklahoma,40107,1,0 +2020-04-25,Okfuskee,Oklahoma,40107,1,0 +2020-04-26,Okfuskee,Oklahoma,40107,1,0 +2020-04-27,Okfuskee,Oklahoma,40107,1,0 +2020-04-28,Okfuskee,Oklahoma,40107,1,0 +2020-04-29,Okfuskee,Oklahoma,40107,1,0 +2020-04-30,Okfuskee,Oklahoma,40107,1,0 +2020-05-01,Okfuskee,Oklahoma,40107,1,0 +2020-05-02,Okfuskee,Oklahoma,40107,1,0 +2020-05-03,Okfuskee,Oklahoma,40107,1,0 +2020-05-04,Okfuskee,Oklahoma,40107,1,0 +2020-05-05,Okfuskee,Oklahoma,40107,1,0 +2020-05-06,Okfuskee,Oklahoma,40107,1,0 +2020-05-07,Okfuskee,Oklahoma,40107,1,0 +2020-05-08,Okfuskee,Oklahoma,40107,1,0 +2020-05-09,Okfuskee,Oklahoma,40107,1,0 +2020-05-10,Okfuskee,Oklahoma,40107,1,0 +2020-05-11,Okfuskee,Oklahoma,40107,1,0 +2020-05-12,Okfuskee,Oklahoma,40107,1,0 +2020-05-13,Okfuskee,Oklahoma,40107,2,0 +2020-05-14,Okfuskee,Oklahoma,40107,2,0 +2020-05-15,Okfuskee,Oklahoma,40107,2,0 +2020-05-16,Okfuskee,Oklahoma,40107,2,0 +2020-05-17,Okfuskee,Oklahoma,40107,2,0 +2020-05-18,Okfuskee,Oklahoma,40107,2,0 +2020-05-19,Okfuskee,Oklahoma,40107,2,0 +2020-05-20,Okfuskee,Oklahoma,40107,2,0 +2020-05-21,Okfuskee,Oklahoma,40107,3,0 +2020-05-22,Okfuskee,Oklahoma,40107,2,0 +2020-05-23,Okfuskee,Oklahoma,40107,3,0 +2020-05-24,Okfuskee,Oklahoma,40107,3,0 +2020-05-25,Okfuskee,Oklahoma,40107,3,0 +2020-05-26,Okfuskee,Oklahoma,40107,3,0 +2020-05-27,Okfuskee,Oklahoma,40107,3,0 +2020-05-28,Okfuskee,Oklahoma,40107,3,0 +2020-05-29,Okfuskee,Oklahoma,40107,6,0 +2020-05-30,Okfuskee,Oklahoma,40107,4,0 +2020-05-31,Okfuskee,Oklahoma,40107,5,0 +2020-06-01,Okfuskee,Oklahoma,40107,5,0 +2020-06-02,Okfuskee,Oklahoma,40107,5,0 +2020-06-03,Okfuskee,Oklahoma,40107,5,0 +2020-06-04,Okfuskee,Oklahoma,40107,5,0 +2020-06-05,Okfuskee,Oklahoma,40107,5,0 +2020-06-06,Okfuskee,Oklahoma,40107,5,0 +2020-06-07,Okfuskee,Oklahoma,40107,5,0 +2020-06-08,Okfuskee,Oklahoma,40107,5,0 +2020-06-09,Okfuskee,Oklahoma,40107,6,0 +2020-06-10,Okfuskee,Oklahoma,40107,6,0 +2020-06-11,Okfuskee,Oklahoma,40107,6,0 +2020-06-12,Okfuskee,Oklahoma,40107,6,0 +2020-06-13,Okfuskee,Oklahoma,40107,6,0 +2020-06-14,Okfuskee,Oklahoma,40107,6,0 +2020-06-15,Okfuskee,Oklahoma,40107,6,0 +2020-06-16,Okfuskee,Oklahoma,40107,6,0 +2020-06-17,Okfuskee,Oklahoma,40107,6,0 +2020-06-18,Okfuskee,Oklahoma,40107,7,0 +2020-06-19,Okfuskee,Oklahoma,40107,6,0 +2020-06-20,Okfuskee,Oklahoma,40107,7,0 +2020-06-21,Okfuskee,Oklahoma,40107,7,0 +2020-06-22,Okfuskee,Oklahoma,40107,11,0 +2020-06-23,Okfuskee,Oklahoma,40107,11,0 +2020-06-24,Okfuskee,Oklahoma,40107,11,0 +2020-06-25,Okfuskee,Oklahoma,40107,11,0 +2020-06-26,Okfuskee,Oklahoma,40107,12,0 +2020-06-27,Okfuskee,Oklahoma,40107,13,0 +2020-06-28,Okfuskee,Oklahoma,40107,14,0 +2020-06-29,Okfuskee,Oklahoma,40107,14,0 +2020-06-30,Okfuskee,Oklahoma,40107,14,0 +2020-07-01,Okfuskee,Oklahoma,40107,14,0 +2020-07-02,Okfuskee,Oklahoma,40107,14,0 +2020-07-03,Okfuskee,Oklahoma,40107,15,0 +2020-07-04,Okfuskee,Oklahoma,40107,16,0 +2020-07-05,Okfuskee,Oklahoma,40107,16,0 +2020-07-06,Okfuskee,Oklahoma,40107,16,0 +2020-07-07,Okfuskee,Oklahoma,40107,16,0 +2020-07-08,Okfuskee,Oklahoma,40107,16,0 +2020-07-09,Okfuskee,Oklahoma,40107,17,0 +2020-03-13,Oklahoma,Oklahoma,40109,1,0 +2020-03-14,Oklahoma,Oklahoma,40109,1,0 +2020-03-15,Oklahoma,Oklahoma,40109,1,0 +2020-03-16,Oklahoma,Oklahoma,40109,2,0 +2020-03-17,Oklahoma,Oklahoma,40109,6,0 +2020-03-18,Oklahoma,Oklahoma,40109,14,0 +2020-03-19,Oklahoma,Oklahoma,40109,18,0 +2020-03-20,Oklahoma,Oklahoma,40109,19,0 +2020-03-21,Oklahoma,Oklahoma,40109,20,0 +2020-03-22,Oklahoma,Oklahoma,40109,26,0 +2020-03-23,Oklahoma,Oklahoma,40109,29,0 +2020-03-24,Oklahoma,Oklahoma,40109,41,0 +2020-03-25,Oklahoma,Oklahoma,40109,55,2 +2020-03-26,Oklahoma,Oklahoma,40109,73,2 +2020-03-27,Oklahoma,Oklahoma,40109,94,2 +2020-03-28,Oklahoma,Oklahoma,40109,107,3 +2020-03-29,Oklahoma,Oklahoma,40109,120,4 +2020-03-30,Oklahoma,Oklahoma,40109,134,4 +2020-03-31,Oklahoma,Oklahoma,40109,155,7 +2020-04-01,Oklahoma,Oklahoma,40109,192,10 +2020-04-02,Oklahoma,Oklahoma,40109,216,10 +2020-04-03,Oklahoma,Oklahoma,40109,237,10 +2020-04-04,Oklahoma,Oklahoma,40109,256,10 +2020-04-05,Oklahoma,Oklahoma,40109,265,10 +2020-04-06,Oklahoma,Oklahoma,40109,279,11 +2020-04-07,Oklahoma,Oklahoma,40109,303,11 +2020-04-08,Oklahoma,Oklahoma,40109,317,15 +2020-04-09,Oklahoma,Oklahoma,40109,385,15 +2020-04-10,Oklahoma,Oklahoma,40109,413,17 +2020-04-11,Oklahoma,Oklahoma,40109,425,19 +2020-04-12,Oklahoma,Oklahoma,40109,435,19 +2020-04-13,Oklahoma,Oklahoma,40109,455,19 +2020-04-14,Oklahoma,Oklahoma,40109,474,19 +2020-04-15,Oklahoma,Oklahoma,40109,483,22 +2020-04-16,Oklahoma,Oklahoma,40109,497,22 +2020-04-17,Oklahoma,Oklahoma,40109,520,22 +2020-04-18,Oklahoma,Oklahoma,40109,550,23 +2020-04-19,Oklahoma,Oklahoma,40109,561,23 +2020-04-20,Oklahoma,Oklahoma,40109,575,23 +2020-04-21,Oklahoma,Oklahoma,40109,590,24 +2020-04-22,Oklahoma,Oklahoma,40109,607,24 +2020-04-23,Oklahoma,Oklahoma,40109,634,25 +2020-04-24,Oklahoma,Oklahoma,40109,670,27 +2020-04-25,Oklahoma,Oklahoma,40109,694,29 +2020-04-26,Oklahoma,Oklahoma,40109,696,29 +2020-04-27,Oklahoma,Oklahoma,40109,703,29 +2020-04-28,Oklahoma,Oklahoma,40109,729,29 +2020-04-29,Oklahoma,Oklahoma,40109,743,30 +2020-04-30,Oklahoma,Oklahoma,40109,773,31 +2020-05-01,Oklahoma,Oklahoma,40109,816,31 +2020-05-02,Oklahoma,Oklahoma,40109,822,33 +2020-05-03,Oklahoma,Oklahoma,40109,838,33 +2020-05-04,Oklahoma,Oklahoma,40109,841,33 +2020-05-05,Oklahoma,Oklahoma,40109,853,36 +2020-05-06,Oklahoma,Oklahoma,40109,868,40 +2020-05-07,Oklahoma,Oklahoma,40109,895,40 +2020-05-08,Oklahoma,Oklahoma,40109,905,41 +2020-05-09,Oklahoma,Oklahoma,40109,927,42 +2020-05-10,Oklahoma,Oklahoma,40109,945,43 +2020-05-11,Oklahoma,Oklahoma,40109,954,43 +2020-05-12,Oklahoma,Oklahoma,40109,997,43 +2020-05-13,Oklahoma,Oklahoma,40109,1007,43 +2020-05-14,Oklahoma,Oklahoma,40109,1013,45 +2020-05-15,Oklahoma,Oklahoma,40109,1035,45 +2020-05-16,Oklahoma,Oklahoma,40109,1070,46 +2020-05-17,Oklahoma,Oklahoma,40109,1074,46 +2020-05-18,Oklahoma,Oklahoma,40109,1075,46 +2020-05-19,Oklahoma,Oklahoma,40109,1087,49 +2020-05-20,Oklahoma,Oklahoma,40109,1093,51 +2020-05-21,Oklahoma,Oklahoma,40109,1109,54 +2020-05-22,Oklahoma,Oklahoma,40109,1179,55 +2020-05-23,Oklahoma,Oklahoma,40109,1189,56 +2020-05-24,Oklahoma,Oklahoma,40109,1203,56 +2020-05-25,Oklahoma,Oklahoma,40109,1208,56 +2020-05-26,Oklahoma,Oklahoma,40109,1216,58 +2020-05-27,Oklahoma,Oklahoma,40109,1227,58 +2020-05-28,Oklahoma,Oklahoma,40109,1241,59 +2020-05-29,Oklahoma,Oklahoma,40109,1254,60 +2020-05-30,Oklahoma,Oklahoma,40109,1263,61 +2020-05-31,Oklahoma,Oklahoma,40109,1281,61 +2020-06-01,Oklahoma,Oklahoma,40109,1284,61 +2020-06-02,Oklahoma,Oklahoma,40109,1294,62 +2020-06-03,Oklahoma,Oklahoma,40109,1309,62 +2020-06-04,Oklahoma,Oklahoma,40109,1328,63 +2020-06-05,Oklahoma,Oklahoma,40109,1350,63 +2020-06-06,Oklahoma,Oklahoma,40109,1360,64 +2020-06-07,Oklahoma,Oklahoma,40109,1369,64 +2020-06-08,Oklahoma,Oklahoma,40109,1384,64 +2020-06-09,Oklahoma,Oklahoma,40109,1404,64 +2020-06-10,Oklahoma,Oklahoma,40109,1436,64 +2020-06-11,Oklahoma,Oklahoma,40109,1461,64 +2020-06-12,Oklahoma,Oklahoma,40109,1517,64 +2020-06-13,Oklahoma,Oklahoma,40109,1561,64 +2020-06-14,Oklahoma,Oklahoma,40109,1597,64 +2020-06-15,Oklahoma,Oklahoma,40109,1643,64 +2020-06-16,Oklahoma,Oklahoma,40109,1673,64 +2020-06-17,Oklahoma,Oklahoma,40109,1754,65 +2020-06-18,Oklahoma,Oklahoma,40109,1861,65 +2020-06-19,Oklahoma,Oklahoma,40109,1946,65 +2020-06-20,Oklahoma,Oklahoma,40109,1990,65 +2020-06-21,Oklahoma,Oklahoma,40109,2099,65 +2020-06-22,Oklahoma,Oklahoma,40109,2147,65 +2020-06-23,Oklahoma,Oklahoma,40109,2230,65 +2020-06-24,Oklahoma,Oklahoma,40109,2317,65 +2020-06-25,Oklahoma,Oklahoma,40109,2410,68 +2020-06-26,Oklahoma,Oklahoma,40109,2486,69 +2020-06-27,Oklahoma,Oklahoma,40109,2600,69 +2020-06-28,Oklahoma,Oklahoma,40109,2663,70 +2020-06-29,Oklahoma,Oklahoma,40109,2732,70 +2020-06-30,Oklahoma,Oklahoma,40109,2913,70 +2020-07-01,Oklahoma,Oklahoma,40109,3029,70 +2020-07-02,Oklahoma,Oklahoma,40109,3135,70 +2020-07-03,Oklahoma,Oklahoma,40109,3263,70 +2020-07-04,Oklahoma,Oklahoma,40109,3393,70 +2020-07-05,Oklahoma,Oklahoma,40109,3479,70 +2020-07-06,Oklahoma,Oklahoma,40109,3607,70 +2020-07-07,Oklahoma,Oklahoma,40109,3819,70 +2020-07-08,Oklahoma,Oklahoma,40109,4039,71 +2020-07-09,Oklahoma,Oklahoma,40109,4194,72 +2020-03-26,Okmulgee,Oklahoma,40111,2,0 +2020-03-27,Okmulgee,Oklahoma,40111,2,0 +2020-03-28,Okmulgee,Oklahoma,40111,2,0 +2020-03-29,Okmulgee,Oklahoma,40111,3,0 +2020-03-30,Okmulgee,Oklahoma,40111,3,0 +2020-03-31,Okmulgee,Oklahoma,40111,3,0 +2020-04-01,Okmulgee,Oklahoma,40111,4,0 +2020-04-02,Okmulgee,Oklahoma,40111,5,0 +2020-04-03,Okmulgee,Oklahoma,40111,7,0 +2020-04-04,Okmulgee,Oklahoma,40111,11,0 +2020-04-05,Okmulgee,Oklahoma,40111,11,0 +2020-04-06,Okmulgee,Oklahoma,40111,11,0 +2020-04-07,Okmulgee,Oklahoma,40111,11,0 +2020-04-08,Okmulgee,Oklahoma,40111,11,0 +2020-04-09,Okmulgee,Oklahoma,40111,13,0 +2020-04-10,Okmulgee,Oklahoma,40111,13,0 +2020-04-11,Okmulgee,Oklahoma,40111,13,0 +2020-04-12,Okmulgee,Oklahoma,40111,13,0 +2020-04-13,Okmulgee,Oklahoma,40111,14,0 +2020-04-14,Okmulgee,Oklahoma,40111,14,0 +2020-04-15,Okmulgee,Oklahoma,40111,14,0 +2020-04-16,Okmulgee,Oklahoma,40111,14,0 +2020-04-17,Okmulgee,Oklahoma,40111,15,0 +2020-04-18,Okmulgee,Oklahoma,40111,15,0 +2020-04-19,Okmulgee,Oklahoma,40111,15,0 +2020-04-20,Okmulgee,Oklahoma,40111,15,0 +2020-04-21,Okmulgee,Oklahoma,40111,15,0 +2020-04-22,Okmulgee,Oklahoma,40111,16,0 +2020-04-23,Okmulgee,Oklahoma,40111,16,0 +2020-04-24,Okmulgee,Oklahoma,40111,16,0 +2020-04-25,Okmulgee,Oklahoma,40111,16,0 +2020-04-26,Okmulgee,Oklahoma,40111,16,0 +2020-04-27,Okmulgee,Oklahoma,40111,16,0 +2020-04-28,Okmulgee,Oklahoma,40111,16,0 +2020-04-29,Okmulgee,Oklahoma,40111,16,0 +2020-04-30,Okmulgee,Oklahoma,40111,16,0 +2020-05-01,Okmulgee,Oklahoma,40111,16,0 +2020-05-02,Okmulgee,Oklahoma,40111,16,0 +2020-05-03,Okmulgee,Oklahoma,40111,16,0 +2020-05-04,Okmulgee,Oklahoma,40111,16,0 +2020-05-05,Okmulgee,Oklahoma,40111,16,0 +2020-05-06,Okmulgee,Oklahoma,40111,16,0 +2020-05-07,Okmulgee,Oklahoma,40111,17,0 +2020-05-08,Okmulgee,Oklahoma,40111,16,0 +2020-05-09,Okmulgee,Oklahoma,40111,16,0 +2020-05-10,Okmulgee,Oklahoma,40111,16,0 +2020-05-11,Okmulgee,Oklahoma,40111,16,0 +2020-05-12,Okmulgee,Oklahoma,40111,16,0 +2020-05-13,Okmulgee,Oklahoma,40111,16,0 +2020-05-14,Okmulgee,Oklahoma,40111,16,0 +2020-05-15,Okmulgee,Oklahoma,40111,16,0 +2020-05-16,Okmulgee,Oklahoma,40111,18,0 +2020-05-17,Okmulgee,Oklahoma,40111,18,0 +2020-05-18,Okmulgee,Oklahoma,40111,18,0 +2020-05-19,Okmulgee,Oklahoma,40111,18,0 +2020-05-20,Okmulgee,Oklahoma,40111,18,0 +2020-05-21,Okmulgee,Oklahoma,40111,21,0 +2020-05-22,Okmulgee,Oklahoma,40111,22,0 +2020-05-23,Okmulgee,Oklahoma,40111,22,0 +2020-05-24,Okmulgee,Oklahoma,40111,23,0 +2020-05-25,Okmulgee,Oklahoma,40111,23,0 +2020-05-26,Okmulgee,Oklahoma,40111,23,0 +2020-05-27,Okmulgee,Oklahoma,40111,23,0 +2020-05-28,Okmulgee,Oklahoma,40111,23,0 +2020-05-29,Okmulgee,Oklahoma,40111,25,0 +2020-05-30,Okmulgee,Oklahoma,40111,26,0 +2020-05-31,Okmulgee,Oklahoma,40111,26,0 +2020-06-01,Okmulgee,Oklahoma,40111,26,0 +2020-06-02,Okmulgee,Oklahoma,40111,25,0 +2020-06-03,Okmulgee,Oklahoma,40111,25,0 +2020-06-04,Okmulgee,Oklahoma,40111,25,0 +2020-06-05,Okmulgee,Oklahoma,40111,25,0 +2020-06-06,Okmulgee,Oklahoma,40111,26,0 +2020-06-07,Okmulgee,Oklahoma,40111,26,0 +2020-06-08,Okmulgee,Oklahoma,40111,27,0 +2020-06-09,Okmulgee,Oklahoma,40111,29,0 +2020-06-10,Okmulgee,Oklahoma,40111,29,0 +2020-06-11,Okmulgee,Oklahoma,40111,29,0 +2020-06-12,Okmulgee,Oklahoma,40111,29,0 +2020-06-13,Okmulgee,Oklahoma,40111,29,0 +2020-06-14,Okmulgee,Oklahoma,40111,30,0 +2020-06-15,Okmulgee,Oklahoma,40111,30,0 +2020-06-16,Okmulgee,Oklahoma,40111,31,0 +2020-06-17,Okmulgee,Oklahoma,40111,31,0 +2020-06-18,Okmulgee,Oklahoma,40111,32,0 +2020-06-19,Okmulgee,Oklahoma,40111,36,0 +2020-06-20,Okmulgee,Oklahoma,40111,40,0 +2020-06-21,Okmulgee,Oklahoma,40111,45,0 +2020-06-22,Okmulgee,Oklahoma,40111,48,0 +2020-06-23,Okmulgee,Oklahoma,40111,48,0 +2020-06-24,Okmulgee,Oklahoma,40111,50,0 +2020-06-25,Okmulgee,Oklahoma,40111,51,0 +2020-06-26,Okmulgee,Oklahoma,40111,54,0 +2020-06-27,Okmulgee,Oklahoma,40111,54,0 +2020-06-28,Okmulgee,Oklahoma,40111,59,0 +2020-06-29,Okmulgee,Oklahoma,40111,61,0 +2020-06-30,Okmulgee,Oklahoma,40111,62,0 +2020-07-01,Okmulgee,Oklahoma,40111,62,0 +2020-07-02,Okmulgee,Oklahoma,40111,64,0 +2020-07-03,Okmulgee,Oklahoma,40111,68,0 +2020-07-04,Okmulgee,Oklahoma,40111,68,0 +2020-07-05,Okmulgee,Oklahoma,40111,95,0 +2020-07-06,Okmulgee,Oklahoma,40111,100,0 +2020-07-07,Okmulgee,Oklahoma,40111,104,0 +2020-07-08,Okmulgee,Oklahoma,40111,113,0 +2020-07-09,Okmulgee,Oklahoma,40111,127,0 +2020-03-25,Osage,Oklahoma,40113,1,0 +2020-03-26,Osage,Oklahoma,40113,3,0 +2020-03-27,Osage,Oklahoma,40113,5,0 +2020-03-28,Osage,Oklahoma,40113,6,0 +2020-03-29,Osage,Oklahoma,40113,10,0 +2020-03-30,Osage,Oklahoma,40113,11,0 +2020-03-31,Osage,Oklahoma,40113,16,0 +2020-04-01,Osage,Oklahoma,40113,19,0 +2020-04-02,Osage,Oklahoma,40113,22,1 +2020-04-03,Osage,Oklahoma,40113,22,1 +2020-04-04,Osage,Oklahoma,40113,25,2 +2020-04-05,Osage,Oklahoma,40113,27,2 +2020-04-06,Osage,Oklahoma,40113,31,3 +2020-04-07,Osage,Oklahoma,40113,34,5 +2020-04-08,Osage,Oklahoma,40113,33,5 +2020-04-09,Osage,Oklahoma,40113,41,5 +2020-04-10,Osage,Oklahoma,40113,45,7 +2020-04-11,Osage,Oklahoma,40113,45,7 +2020-04-12,Osage,Oklahoma,40113,50,7 +2020-04-13,Osage,Oklahoma,40113,56,7 +2020-04-14,Osage,Oklahoma,40113,59,8 +2020-04-15,Osage,Oklahoma,40113,61,8 +2020-04-16,Osage,Oklahoma,40113,61,8 +2020-04-17,Osage,Oklahoma,40113,61,8 +2020-04-18,Osage,Oklahoma,40113,64,8 +2020-04-19,Osage,Oklahoma,40113,64,8 +2020-04-20,Osage,Oklahoma,40113,65,8 +2020-04-21,Osage,Oklahoma,40113,65,8 +2020-04-22,Osage,Oklahoma,40113,65,8 +2020-04-23,Osage,Oklahoma,40113,68,8 +2020-04-24,Osage,Oklahoma,40113,71,8 +2020-04-25,Osage,Oklahoma,40113,71,8 +2020-04-26,Osage,Oklahoma,40113,72,8 +2020-04-27,Osage,Oklahoma,40113,72,8 +2020-04-28,Osage,Oklahoma,40113,72,8 +2020-04-29,Osage,Oklahoma,40113,73,8 +2020-04-30,Osage,Oklahoma,40113,75,8 +2020-05-01,Osage,Oklahoma,40113,76,8 +2020-05-02,Osage,Oklahoma,40113,76,8 +2020-05-03,Osage,Oklahoma,40113,76,8 +2020-05-04,Osage,Oklahoma,40113,78,8 +2020-05-05,Osage,Oklahoma,40113,78,8 +2020-05-06,Osage,Oklahoma,40113,77,8 +2020-05-07,Osage,Oklahoma,40113,82,8 +2020-05-08,Osage,Oklahoma,40113,85,8 +2020-05-09,Osage,Oklahoma,40113,88,8 +2020-05-10,Osage,Oklahoma,40113,88,8 +2020-05-11,Osage,Oklahoma,40113,89,8 +2020-05-12,Osage,Oklahoma,40113,90,8 +2020-05-13,Osage,Oklahoma,40113,90,8 +2020-05-14,Osage,Oklahoma,40113,90,8 +2020-05-15,Osage,Oklahoma,40113,91,8 +2020-05-16,Osage,Oklahoma,40113,91,8 +2020-05-17,Osage,Oklahoma,40113,91,8 +2020-05-18,Osage,Oklahoma,40113,91,8 +2020-05-19,Osage,Oklahoma,40113,92,8 +2020-05-20,Osage,Oklahoma,40113,92,8 +2020-05-21,Osage,Oklahoma,40113,92,8 +2020-05-22,Osage,Oklahoma,40113,93,8 +2020-05-23,Osage,Oklahoma,40113,94,8 +2020-05-24,Osage,Oklahoma,40113,94,8 +2020-05-25,Osage,Oklahoma,40113,94,8 +2020-05-26,Osage,Oklahoma,40113,94,8 +2020-05-27,Osage,Oklahoma,40113,93,8 +2020-05-28,Osage,Oklahoma,40113,94,8 +2020-05-29,Osage,Oklahoma,40113,95,8 +2020-05-30,Osage,Oklahoma,40113,95,8 +2020-05-31,Osage,Oklahoma,40113,95,8 +2020-06-01,Osage,Oklahoma,40113,95,8 +2020-06-02,Osage,Oklahoma,40113,95,8 +2020-06-03,Osage,Oklahoma,40113,96,8 +2020-06-04,Osage,Oklahoma,40113,102,8 +2020-06-05,Osage,Oklahoma,40113,101,8 +2020-06-06,Osage,Oklahoma,40113,101,8 +2020-06-07,Osage,Oklahoma,40113,101,8 +2020-06-08,Osage,Oklahoma,40113,102,8 +2020-06-09,Osage,Oklahoma,40113,102,8 +2020-06-10,Osage,Oklahoma,40113,103,8 +2020-06-11,Osage,Oklahoma,40113,104,8 +2020-06-12,Osage,Oklahoma,40113,104,8 +2020-06-13,Osage,Oklahoma,40113,106,8 +2020-06-14,Osage,Oklahoma,40113,112,8 +2020-06-15,Osage,Oklahoma,40113,114,8 +2020-06-16,Osage,Oklahoma,40113,114,8 +2020-06-17,Osage,Oklahoma,40113,116,8 +2020-06-18,Osage,Oklahoma,40113,124,8 +2020-06-19,Osage,Oklahoma,40113,125,8 +2020-06-20,Osage,Oklahoma,40113,130,8 +2020-06-21,Osage,Oklahoma,40113,140,8 +2020-06-22,Osage,Oklahoma,40113,142,8 +2020-06-23,Osage,Oklahoma,40113,146,8 +2020-06-24,Osage,Oklahoma,40113,155,8 +2020-06-25,Osage,Oklahoma,40113,154,8 +2020-06-26,Osage,Oklahoma,40113,154,8 +2020-06-27,Osage,Oklahoma,40113,156,8 +2020-06-28,Osage,Oklahoma,40113,158,8 +2020-06-29,Osage,Oklahoma,40113,160,8 +2020-06-30,Osage,Oklahoma,40113,165,8 +2020-07-01,Osage,Oklahoma,40113,168,8 +2020-07-02,Osage,Oklahoma,40113,174,8 +2020-07-03,Osage,Oklahoma,40113,176,8 +2020-07-04,Osage,Oklahoma,40113,182,8 +2020-07-05,Osage,Oklahoma,40113,185,8 +2020-07-06,Osage,Oklahoma,40113,186,8 +2020-07-07,Osage,Oklahoma,40113,187,8 +2020-07-08,Osage,Oklahoma,40113,188,8 +2020-07-09,Osage,Oklahoma,40113,194,8 +2020-03-26,Ottawa,Oklahoma,40115,1,0 +2020-03-27,Ottawa,Oklahoma,40115,1,0 +2020-03-28,Ottawa,Oklahoma,40115,4,0 +2020-03-29,Ottawa,Oklahoma,40115,4,0 +2020-03-30,Ottawa,Oklahoma,40115,6,0 +2020-03-31,Ottawa,Oklahoma,40115,7,0 +2020-04-01,Ottawa,Oklahoma,40115,7,0 +2020-04-02,Ottawa,Oklahoma,40115,8,0 +2020-04-03,Ottawa,Oklahoma,40115,8,0 +2020-04-04,Ottawa,Oklahoma,40115,10,0 +2020-04-05,Ottawa,Oklahoma,40115,11,0 +2020-04-06,Ottawa,Oklahoma,40115,12,0 +2020-04-07,Ottawa,Oklahoma,40115,14,0 +2020-04-08,Ottawa,Oklahoma,40115,15,0 +2020-04-09,Ottawa,Oklahoma,40115,17,0 +2020-04-10,Ottawa,Oklahoma,40115,17,0 +2020-04-11,Ottawa,Oklahoma,40115,16,0 +2020-04-12,Ottawa,Oklahoma,40115,18,0 +2020-04-13,Ottawa,Oklahoma,40115,23,0 +2020-04-14,Ottawa,Oklahoma,40115,22,0 +2020-04-15,Ottawa,Oklahoma,40115,22,0 +2020-04-16,Ottawa,Oklahoma,40115,24,0 +2020-04-17,Ottawa,Oklahoma,40115,26,0 +2020-04-18,Ottawa,Oklahoma,40115,27,0 +2020-04-19,Ottawa,Oklahoma,40115,27,0 +2020-04-20,Ottawa,Oklahoma,40115,27,0 +2020-04-21,Ottawa,Oklahoma,40115,27,0 +2020-04-22,Ottawa,Oklahoma,40115,28,0 +2020-04-23,Ottawa,Oklahoma,40115,29,0 +2020-04-24,Ottawa,Oklahoma,40115,29,1 +2020-04-25,Ottawa,Oklahoma,40115,29,1 +2020-04-26,Ottawa,Oklahoma,40115,29,1 +2020-04-27,Ottawa,Oklahoma,40115,29,1 +2020-04-28,Ottawa,Oklahoma,40115,32,1 +2020-04-29,Ottawa,Oklahoma,40115,31,1 +2020-04-30,Ottawa,Oklahoma,40115,31,1 +2020-05-01,Ottawa,Oklahoma,40115,34,1 +2020-05-02,Ottawa,Oklahoma,40115,34,1 +2020-05-03,Ottawa,Oklahoma,40115,34,1 +2020-05-04,Ottawa,Oklahoma,40115,34,1 +2020-05-05,Ottawa,Oklahoma,40115,34,1 +2020-05-06,Ottawa,Oklahoma,40115,34,1 +2020-05-07,Ottawa,Oklahoma,40115,34,1 +2020-05-08,Ottawa,Oklahoma,40115,34,1 +2020-05-09,Ottawa,Oklahoma,40115,34,1 +2020-05-10,Ottawa,Oklahoma,40115,34,1 +2020-05-11,Ottawa,Oklahoma,40115,34,1 +2020-05-12,Ottawa,Oklahoma,40115,34,2 +2020-05-13,Ottawa,Oklahoma,40115,34,2 +2020-05-14,Ottawa,Oklahoma,40115,34,2 +2020-05-15,Ottawa,Oklahoma,40115,35,2 +2020-05-16,Ottawa,Oklahoma,40115,34,2 +2020-05-17,Ottawa,Oklahoma,40115,35,2 +2020-05-18,Ottawa,Oklahoma,40115,35,2 +2020-05-19,Ottawa,Oklahoma,40115,35,2 +2020-05-20,Ottawa,Oklahoma,40115,35,2 +2020-05-21,Ottawa,Oklahoma,40115,35,2 +2020-05-22,Ottawa,Oklahoma,40115,35,2 +2020-05-23,Ottawa,Oklahoma,40115,35,2 +2020-05-24,Ottawa,Oklahoma,40115,35,2 +2020-05-25,Ottawa,Oklahoma,40115,35,2 +2020-05-26,Ottawa,Oklahoma,40115,35,2 +2020-05-27,Ottawa,Oklahoma,40115,35,2 +2020-05-28,Ottawa,Oklahoma,40115,35,2 +2020-05-29,Ottawa,Oklahoma,40115,35,2 +2020-05-30,Ottawa,Oklahoma,40115,35,2 +2020-05-31,Ottawa,Oklahoma,40115,35,2 +2020-06-01,Ottawa,Oklahoma,40115,35,2 +2020-06-02,Ottawa,Oklahoma,40115,35,2 +2020-06-03,Ottawa,Oklahoma,40115,35,2 +2020-06-04,Ottawa,Oklahoma,40115,35,2 +2020-06-05,Ottawa,Oklahoma,40115,35,2 +2020-06-06,Ottawa,Oklahoma,40115,35,2 +2020-06-07,Ottawa,Oklahoma,40115,35,2 +2020-06-08,Ottawa,Oklahoma,40115,35,2 +2020-06-09,Ottawa,Oklahoma,40115,35,2 +2020-06-10,Ottawa,Oklahoma,40115,35,2 +2020-06-11,Ottawa,Oklahoma,40115,36,2 +2020-06-12,Ottawa,Oklahoma,40115,36,2 +2020-06-13,Ottawa,Oklahoma,40115,37,2 +2020-06-14,Ottawa,Oklahoma,40115,37,2 +2020-06-15,Ottawa,Oklahoma,40115,37,2 +2020-06-16,Ottawa,Oklahoma,40115,41,2 +2020-06-17,Ottawa,Oklahoma,40115,42,2 +2020-06-18,Ottawa,Oklahoma,40115,42,2 +2020-06-19,Ottawa,Oklahoma,40115,42,2 +2020-06-20,Ottawa,Oklahoma,40115,43,2 +2020-06-21,Ottawa,Oklahoma,40115,44,2 +2020-06-22,Ottawa,Oklahoma,40115,44,2 +2020-06-23,Ottawa,Oklahoma,40115,43,2 +2020-06-24,Ottawa,Oklahoma,40115,43,2 +2020-06-25,Ottawa,Oklahoma,40115,44,2 +2020-06-26,Ottawa,Oklahoma,40115,44,2 +2020-06-27,Ottawa,Oklahoma,40115,44,2 +2020-06-28,Ottawa,Oklahoma,40115,47,2 +2020-06-29,Ottawa,Oklahoma,40115,50,2 +2020-06-30,Ottawa,Oklahoma,40115,70,2 +2020-07-01,Ottawa,Oklahoma,40115,73,2 +2020-07-02,Ottawa,Oklahoma,40115,76,2 +2020-07-03,Ottawa,Oklahoma,40115,77,2 +2020-07-04,Ottawa,Oklahoma,40115,80,2 +2020-07-05,Ottawa,Oklahoma,40115,81,2 +2020-07-06,Ottawa,Oklahoma,40115,85,2 +2020-07-07,Ottawa,Oklahoma,40115,120,2 +2020-07-08,Ottawa,Oklahoma,40115,121,2 +2020-07-09,Ottawa,Oklahoma,40115,132,2 +2020-03-17,Pawnee,Oklahoma,40117,1,0 +2020-03-18,Pawnee,Oklahoma,40117,1,0 +2020-03-19,Pawnee,Oklahoma,40117,1,0 +2020-03-20,Pawnee,Oklahoma,40117,1,0 +2020-03-21,Pawnee,Oklahoma,40117,2,0 +2020-03-22,Pawnee,Oklahoma,40117,3,1 +2020-03-23,Pawnee,Oklahoma,40117,3,1 +2020-03-24,Pawnee,Oklahoma,40117,4,1 +2020-03-25,Pawnee,Oklahoma,40117,7,1 +2020-03-26,Pawnee,Oklahoma,40117,10,1 +2020-03-27,Pawnee,Oklahoma,40117,14,1 +2020-03-28,Pawnee,Oklahoma,40117,14,1 +2020-03-29,Pawnee,Oklahoma,40117,15,1 +2020-03-30,Pawnee,Oklahoma,40117,15,1 +2020-03-31,Pawnee,Oklahoma,40117,15,1 +2020-04-01,Pawnee,Oklahoma,40117,15,1 +2020-04-02,Pawnee,Oklahoma,40117,15,1 +2020-04-03,Pawnee,Oklahoma,40117,16,1 +2020-04-04,Pawnee,Oklahoma,40117,16,1 +2020-04-05,Pawnee,Oklahoma,40117,22,1 +2020-04-06,Pawnee,Oklahoma,40117,22,1 +2020-04-07,Pawnee,Oklahoma,40117,23,1 +2020-04-08,Pawnee,Oklahoma,40117,23,1 +2020-04-09,Pawnee,Oklahoma,40117,24,1 +2020-04-10,Pawnee,Oklahoma,40117,26,2 +2020-04-11,Pawnee,Oklahoma,40117,26,2 +2020-04-12,Pawnee,Oklahoma,40117,26,2 +2020-04-13,Pawnee,Oklahoma,40117,27,2 +2020-04-14,Pawnee,Oklahoma,40117,27,2 +2020-04-15,Pawnee,Oklahoma,40117,27,2 +2020-04-16,Pawnee,Oklahoma,40117,28,2 +2020-04-17,Pawnee,Oklahoma,40117,28,2 +2020-04-18,Pawnee,Oklahoma,40117,28,2 +2020-04-19,Pawnee,Oklahoma,40117,28,2 +2020-04-20,Pawnee,Oklahoma,40117,28,2 +2020-04-21,Pawnee,Oklahoma,40117,28,2 +2020-04-22,Pawnee,Oklahoma,40117,28,2 +2020-04-23,Pawnee,Oklahoma,40117,28,2 +2020-04-24,Pawnee,Oklahoma,40117,28,2 +2020-04-25,Pawnee,Oklahoma,40117,28,2 +2020-04-26,Pawnee,Oklahoma,40117,29,2 +2020-04-27,Pawnee,Oklahoma,40117,29,2 +2020-04-28,Pawnee,Oklahoma,40117,29,2 +2020-04-29,Pawnee,Oklahoma,40117,29,2 +2020-04-30,Pawnee,Oklahoma,40117,29,2 +2020-05-01,Pawnee,Oklahoma,40117,29,2 +2020-05-02,Pawnee,Oklahoma,40117,29,2 +2020-05-03,Pawnee,Oklahoma,40117,29,2 +2020-05-04,Pawnee,Oklahoma,40117,29,2 +2020-05-05,Pawnee,Oklahoma,40117,29,2 +2020-05-06,Pawnee,Oklahoma,40117,29,2 +2020-05-07,Pawnee,Oklahoma,40117,29,2 +2020-05-08,Pawnee,Oklahoma,40117,29,2 +2020-05-09,Pawnee,Oklahoma,40117,29,2 +2020-05-10,Pawnee,Oklahoma,40117,29,2 +2020-05-11,Pawnee,Oklahoma,40117,29,2 +2020-05-12,Pawnee,Oklahoma,40117,29,2 +2020-05-13,Pawnee,Oklahoma,40117,29,2 +2020-05-14,Pawnee,Oklahoma,40117,29,2 +2020-05-15,Pawnee,Oklahoma,40117,29,2 +2020-05-16,Pawnee,Oklahoma,40117,29,2 +2020-05-17,Pawnee,Oklahoma,40117,29,2 +2020-05-18,Pawnee,Oklahoma,40117,29,2 +2020-05-19,Pawnee,Oklahoma,40117,29,2 +2020-05-20,Pawnee,Oklahoma,40117,29,2 +2020-05-21,Pawnee,Oklahoma,40117,29,2 +2020-05-22,Pawnee,Oklahoma,40117,29,2 +2020-05-23,Pawnee,Oklahoma,40117,29,2 +2020-05-24,Pawnee,Oklahoma,40117,29,2 +2020-05-25,Pawnee,Oklahoma,40117,29,2 +2020-05-26,Pawnee,Oklahoma,40117,29,2 +2020-05-27,Pawnee,Oklahoma,40117,30,2 +2020-05-28,Pawnee,Oklahoma,40117,30,2 +2020-05-29,Pawnee,Oklahoma,40117,30,2 +2020-05-30,Pawnee,Oklahoma,40117,31,2 +2020-05-31,Pawnee,Oklahoma,40117,31,2 +2020-06-01,Pawnee,Oklahoma,40117,31,2 +2020-06-02,Pawnee,Oklahoma,40117,31,2 +2020-06-03,Pawnee,Oklahoma,40117,31,2 +2020-06-04,Pawnee,Oklahoma,40117,32,2 +2020-06-05,Pawnee,Oklahoma,40117,32,2 +2020-06-06,Pawnee,Oklahoma,40117,33,2 +2020-06-07,Pawnee,Oklahoma,40117,34,2 +2020-06-08,Pawnee,Oklahoma,40117,34,2 +2020-06-09,Pawnee,Oklahoma,40117,34,2 +2020-06-10,Pawnee,Oklahoma,40117,35,2 +2020-06-11,Pawnee,Oklahoma,40117,35,2 +2020-06-12,Pawnee,Oklahoma,40117,36,2 +2020-06-13,Pawnee,Oklahoma,40117,41,2 +2020-06-14,Pawnee,Oklahoma,40117,41,2 +2020-06-15,Pawnee,Oklahoma,40117,41,2 +2020-06-16,Pawnee,Oklahoma,40117,41,2 +2020-06-17,Pawnee,Oklahoma,40117,41,2 +2020-06-18,Pawnee,Oklahoma,40117,41,2 +2020-06-19,Pawnee,Oklahoma,40117,46,2 +2020-06-20,Pawnee,Oklahoma,40117,47,2 +2020-06-21,Pawnee,Oklahoma,40117,48,2 +2020-06-22,Pawnee,Oklahoma,40117,50,2 +2020-06-23,Pawnee,Oklahoma,40117,51,2 +2020-06-24,Pawnee,Oklahoma,40117,51,2 +2020-06-25,Pawnee,Oklahoma,40117,51,2 +2020-06-26,Pawnee,Oklahoma,40117,51,2 +2020-06-27,Pawnee,Oklahoma,40117,51,2 +2020-06-28,Pawnee,Oklahoma,40117,53,2 +2020-06-29,Pawnee,Oklahoma,40117,54,2 +2020-06-30,Pawnee,Oklahoma,40117,56,2 +2020-07-01,Pawnee,Oklahoma,40117,57,2 +2020-07-02,Pawnee,Oklahoma,40117,57,2 +2020-07-03,Pawnee,Oklahoma,40117,57,2 +2020-07-04,Pawnee,Oklahoma,40117,58,2 +2020-07-05,Pawnee,Oklahoma,40117,58,2 +2020-07-06,Pawnee,Oklahoma,40117,58,2 +2020-07-07,Pawnee,Oklahoma,40117,60,2 +2020-07-08,Pawnee,Oklahoma,40117,61,2 +2020-07-09,Pawnee,Oklahoma,40117,65,3 +2020-03-15,Payne,Oklahoma,40119,1,0 +2020-03-16,Payne,Oklahoma,40119,1,0 +2020-03-17,Payne,Oklahoma,40119,1,0 +2020-03-18,Payne,Oklahoma,40119,1,0 +2020-03-19,Payne,Oklahoma,40119,1,0 +2020-03-20,Payne,Oklahoma,40119,1,0 +2020-03-21,Payne,Oklahoma,40119,1,0 +2020-03-22,Payne,Oklahoma,40119,2,0 +2020-03-23,Payne,Oklahoma,40119,3,0 +2020-03-24,Payne,Oklahoma,40119,3,0 +2020-03-25,Payne,Oklahoma,40119,3,0 +2020-03-26,Payne,Oklahoma,40119,5,0 +2020-03-27,Payne,Oklahoma,40119,7,0 +2020-03-28,Payne,Oklahoma,40119,12,0 +2020-03-29,Payne,Oklahoma,40119,13,0 +2020-03-30,Payne,Oklahoma,40119,14,0 +2020-03-31,Payne,Oklahoma,40119,15,0 +2020-04-01,Payne,Oklahoma,40119,16,0 +2020-04-02,Payne,Oklahoma,40119,18,0 +2020-04-03,Payne,Oklahoma,40119,18,0 +2020-04-04,Payne,Oklahoma,40119,20,0 +2020-04-05,Payne,Oklahoma,40119,20,0 +2020-04-06,Payne,Oklahoma,40119,21,0 +2020-04-07,Payne,Oklahoma,40119,24,0 +2020-04-08,Payne,Oklahoma,40119,24,0 +2020-04-09,Payne,Oklahoma,40119,25,0 +2020-04-10,Payne,Oklahoma,40119,28,0 +2020-04-11,Payne,Oklahoma,40119,28,0 +2020-04-12,Payne,Oklahoma,40119,28,0 +2020-04-13,Payne,Oklahoma,40119,29,0 +2020-04-14,Payne,Oklahoma,40119,28,0 +2020-04-15,Payne,Oklahoma,40119,29,0 +2020-04-16,Payne,Oklahoma,40119,34,0 +2020-04-17,Payne,Oklahoma,40119,36,0 +2020-04-18,Payne,Oklahoma,40119,37,0 +2020-04-19,Payne,Oklahoma,40119,37,0 +2020-04-20,Payne,Oklahoma,40119,39,0 +2020-04-21,Payne,Oklahoma,40119,39,0 +2020-04-22,Payne,Oklahoma,40119,40,0 +2020-04-23,Payne,Oklahoma,40119,40,0 +2020-04-24,Payne,Oklahoma,40119,43,0 +2020-04-25,Payne,Oklahoma,40119,43,1 +2020-04-26,Payne,Oklahoma,40119,44,1 +2020-04-27,Payne,Oklahoma,40119,44,1 +2020-04-28,Payne,Oklahoma,40119,44,1 +2020-04-29,Payne,Oklahoma,40119,44,1 +2020-04-30,Payne,Oklahoma,40119,44,1 +2020-05-01,Payne,Oklahoma,40119,44,1 +2020-05-02,Payne,Oklahoma,40119,44,1 +2020-05-03,Payne,Oklahoma,40119,44,1 +2020-05-04,Payne,Oklahoma,40119,44,1 +2020-05-05,Payne,Oklahoma,40119,44,1 +2020-05-06,Payne,Oklahoma,40119,44,1 +2020-05-07,Payne,Oklahoma,40119,44,1 +2020-05-08,Payne,Oklahoma,40119,45,1 +2020-05-09,Payne,Oklahoma,40119,45,1 +2020-05-10,Payne,Oklahoma,40119,45,1 +2020-05-11,Payne,Oklahoma,40119,45,1 +2020-05-12,Payne,Oklahoma,40119,44,1 +2020-05-13,Payne,Oklahoma,40119,44,1 +2020-05-14,Payne,Oklahoma,40119,44,1 +2020-05-15,Payne,Oklahoma,40119,44,1 +2020-05-16,Payne,Oklahoma,40119,45,1 +2020-05-17,Payne,Oklahoma,40119,45,1 +2020-05-18,Payne,Oklahoma,40119,45,1 +2020-05-19,Payne,Oklahoma,40119,45,1 +2020-05-20,Payne,Oklahoma,40119,45,1 +2020-05-21,Payne,Oklahoma,40119,45,1 +2020-05-22,Payne,Oklahoma,40119,45,1 +2020-05-23,Payne,Oklahoma,40119,45,1 +2020-05-24,Payne,Oklahoma,40119,45,1 +2020-05-25,Payne,Oklahoma,40119,45,1 +2020-05-26,Payne,Oklahoma,40119,45,1 +2020-05-27,Payne,Oklahoma,40119,45,1 +2020-05-28,Payne,Oklahoma,40119,45,1 +2020-05-29,Payne,Oklahoma,40119,45,1 +2020-05-30,Payne,Oklahoma,40119,45,1 +2020-05-31,Payne,Oklahoma,40119,45,1 +2020-06-01,Payne,Oklahoma,40119,45,1 +2020-06-02,Payne,Oklahoma,40119,46,1 +2020-06-03,Payne,Oklahoma,40119,48,1 +2020-06-04,Payne,Oklahoma,40119,48,1 +2020-06-05,Payne,Oklahoma,40119,48,1 +2020-06-06,Payne,Oklahoma,40119,48,1 +2020-06-07,Payne,Oklahoma,40119,48,1 +2020-06-08,Payne,Oklahoma,40119,51,1 +2020-06-09,Payne,Oklahoma,40119,52,1 +2020-06-10,Payne,Oklahoma,40119,55,1 +2020-06-11,Payne,Oklahoma,40119,60,1 +2020-06-12,Payne,Oklahoma,40119,72,1 +2020-06-13,Payne,Oklahoma,40119,97,1 +2020-06-14,Payne,Oklahoma,40119,100,1 +2020-06-15,Payne,Oklahoma,40119,104,1 +2020-06-16,Payne,Oklahoma,40119,142,1 +2020-06-17,Payne,Oklahoma,40119,156,1 +2020-06-18,Payne,Oklahoma,40119,179,1 +2020-06-19,Payne,Oklahoma,40119,208,1 +2020-06-20,Payne,Oklahoma,40119,215,1 +2020-06-21,Payne,Oklahoma,40119,242,1 +2020-06-22,Payne,Oklahoma,40119,264,1 +2020-06-23,Payne,Oklahoma,40119,278,1 +2020-06-24,Payne,Oklahoma,40119,294,1 +2020-06-25,Payne,Oklahoma,40119,300,1 +2020-06-26,Payne,Oklahoma,40119,335,1 +2020-06-27,Payne,Oklahoma,40119,345,1 +2020-06-28,Payne,Oklahoma,40119,354,1 +2020-06-29,Payne,Oklahoma,40119,358,1 +2020-06-30,Payne,Oklahoma,40119,382,1 +2020-07-01,Payne,Oklahoma,40119,387,1 +2020-07-02,Payne,Oklahoma,40119,398,1 +2020-07-03,Payne,Oklahoma,40119,407,1 +2020-07-04,Payne,Oklahoma,40119,417,1 +2020-07-05,Payne,Oklahoma,40119,426,1 +2020-07-06,Payne,Oklahoma,40119,438,1 +2020-07-07,Payne,Oklahoma,40119,452,1 +2020-07-08,Payne,Oklahoma,40119,455,1 +2020-07-09,Payne,Oklahoma,40119,465,1 +2020-03-27,Pittsburg,Oklahoma,40121,2,0 +2020-03-28,Pittsburg,Oklahoma,40121,2,0 +2020-03-29,Pittsburg,Oklahoma,40121,2,0 +2020-03-30,Pittsburg,Oklahoma,40121,2,0 +2020-03-31,Pittsburg,Oklahoma,40121,2,0 +2020-04-01,Pittsburg,Oklahoma,40121,2,0 +2020-04-02,Pittsburg,Oklahoma,40121,2,0 +2020-04-03,Pittsburg,Oklahoma,40121,2,0 +2020-04-04,Pittsburg,Oklahoma,40121,3,0 +2020-04-05,Pittsburg,Oklahoma,40121,6,0 +2020-04-06,Pittsburg,Oklahoma,40121,6,0 +2020-04-07,Pittsburg,Oklahoma,40121,7,0 +2020-04-08,Pittsburg,Oklahoma,40121,7,0 +2020-04-09,Pittsburg,Oklahoma,40121,7,0 +2020-04-10,Pittsburg,Oklahoma,40121,8,0 +2020-04-11,Pittsburg,Oklahoma,40121,8,0 +2020-04-12,Pittsburg,Oklahoma,40121,8,0 +2020-04-13,Pittsburg,Oklahoma,40121,10,0 +2020-04-14,Pittsburg,Oklahoma,40121,11,1 +2020-04-15,Pittsburg,Oklahoma,40121,13,1 +2020-04-16,Pittsburg,Oklahoma,40121,14,1 +2020-04-17,Pittsburg,Oklahoma,40121,15,1 +2020-04-18,Pittsburg,Oklahoma,40121,17,1 +2020-04-19,Pittsburg,Oklahoma,40121,17,1 +2020-04-20,Pittsburg,Oklahoma,40121,18,1 +2020-04-21,Pittsburg,Oklahoma,40121,20,1 +2020-04-22,Pittsburg,Oklahoma,40121,20,2 +2020-04-23,Pittsburg,Oklahoma,40121,22,2 +2020-04-24,Pittsburg,Oklahoma,40121,22,2 +2020-04-25,Pittsburg,Oklahoma,40121,21,2 +2020-04-26,Pittsburg,Oklahoma,40121,25,2 +2020-04-27,Pittsburg,Oklahoma,40121,25,2 +2020-04-28,Pittsburg,Oklahoma,40121,27,2 +2020-04-29,Pittsburg,Oklahoma,40121,28,2 +2020-04-30,Pittsburg,Oklahoma,40121,29,2 +2020-05-01,Pittsburg,Oklahoma,40121,32,2 +2020-05-02,Pittsburg,Oklahoma,40121,35,2 +2020-05-03,Pittsburg,Oklahoma,40121,39,2 +2020-05-04,Pittsburg,Oklahoma,40121,38,2 +2020-05-05,Pittsburg,Oklahoma,40121,39,2 +2020-05-06,Pittsburg,Oklahoma,40121,39,2 +2020-05-07,Pittsburg,Oklahoma,40121,39,2 +2020-05-08,Pittsburg,Oklahoma,40121,39,2 +2020-05-09,Pittsburg,Oklahoma,40121,39,3 +2020-05-10,Pittsburg,Oklahoma,40121,39,3 +2020-05-11,Pittsburg,Oklahoma,40121,39,3 +2020-05-12,Pittsburg,Oklahoma,40121,39,3 +2020-05-13,Pittsburg,Oklahoma,40121,39,3 +2020-05-14,Pittsburg,Oklahoma,40121,39,3 +2020-05-15,Pittsburg,Oklahoma,40121,39,3 +2020-05-16,Pittsburg,Oklahoma,40121,38,3 +2020-05-17,Pittsburg,Oklahoma,40121,38,3 +2020-05-18,Pittsburg,Oklahoma,40121,39,3 +2020-05-19,Pittsburg,Oklahoma,40121,39,3 +2020-05-20,Pittsburg,Oklahoma,40121,39,3 +2020-05-21,Pittsburg,Oklahoma,40121,40,3 +2020-05-22,Pittsburg,Oklahoma,40121,40,3 +2020-05-23,Pittsburg,Oklahoma,40121,40,3 +2020-05-24,Pittsburg,Oklahoma,40121,40,3 +2020-05-25,Pittsburg,Oklahoma,40121,40,3 +2020-05-26,Pittsburg,Oklahoma,40121,40,3 +2020-05-27,Pittsburg,Oklahoma,40121,40,3 +2020-05-28,Pittsburg,Oklahoma,40121,40,3 +2020-05-29,Pittsburg,Oklahoma,40121,40,3 +2020-05-30,Pittsburg,Oklahoma,40121,41,3 +2020-05-31,Pittsburg,Oklahoma,40121,41,3 +2020-06-01,Pittsburg,Oklahoma,40121,41,3 +2020-06-02,Pittsburg,Oklahoma,40121,41,3 +2020-06-03,Pittsburg,Oklahoma,40121,41,3 +2020-06-04,Pittsburg,Oklahoma,40121,41,3 +2020-06-05,Pittsburg,Oklahoma,40121,41,3 +2020-06-06,Pittsburg,Oklahoma,40121,41,3 +2020-06-07,Pittsburg,Oklahoma,40121,42,3 +2020-06-08,Pittsburg,Oklahoma,40121,42,3 +2020-06-09,Pittsburg,Oklahoma,40121,43,3 +2020-06-10,Pittsburg,Oklahoma,40121,44,3 +2020-06-11,Pittsburg,Oklahoma,40121,44,3 +2020-06-12,Pittsburg,Oklahoma,40121,43,3 +2020-06-13,Pittsburg,Oklahoma,40121,43,3 +2020-06-14,Pittsburg,Oklahoma,40121,43,3 +2020-06-15,Pittsburg,Oklahoma,40121,43,3 +2020-06-16,Pittsburg,Oklahoma,40121,43,3 +2020-06-17,Pittsburg,Oklahoma,40121,44,3 +2020-06-18,Pittsburg,Oklahoma,40121,47,3 +2020-06-19,Pittsburg,Oklahoma,40121,47,3 +2020-06-20,Pittsburg,Oklahoma,40121,48,3 +2020-06-21,Pittsburg,Oklahoma,40121,48,3 +2020-06-22,Pittsburg,Oklahoma,40121,50,3 +2020-06-23,Pittsburg,Oklahoma,40121,50,3 +2020-06-24,Pittsburg,Oklahoma,40121,51,3 +2020-06-25,Pittsburg,Oklahoma,40121,52,3 +2020-06-26,Pittsburg,Oklahoma,40121,55,3 +2020-06-27,Pittsburg,Oklahoma,40121,56,3 +2020-06-28,Pittsburg,Oklahoma,40121,57,3 +2020-06-29,Pittsburg,Oklahoma,40121,58,3 +2020-06-30,Pittsburg,Oklahoma,40121,58,3 +2020-07-01,Pittsburg,Oklahoma,40121,58,3 +2020-07-02,Pittsburg,Oklahoma,40121,59,3 +2020-07-03,Pittsburg,Oklahoma,40121,61,3 +2020-07-04,Pittsburg,Oklahoma,40121,64,3 +2020-07-05,Pittsburg,Oklahoma,40121,64,3 +2020-07-06,Pittsburg,Oklahoma,40121,65,3 +2020-07-07,Pittsburg,Oklahoma,40121,67,3 +2020-07-08,Pittsburg,Oklahoma,40121,69,3 +2020-07-09,Pittsburg,Oklahoma,40121,69,3 +2020-03-23,Pontotoc,Oklahoma,40123,1,0 +2020-03-24,Pontotoc,Oklahoma,40123,1,0 +2020-03-25,Pontotoc,Oklahoma,40123,1,0 +2020-03-26,Pontotoc,Oklahoma,40123,1,0 +2020-03-27,Pontotoc,Oklahoma,40123,2,0 +2020-03-28,Pontotoc,Oklahoma,40123,3,0 +2020-03-29,Pontotoc,Oklahoma,40123,3,0 +2020-03-30,Pontotoc,Oklahoma,40123,3,0 +2020-03-31,Pontotoc,Oklahoma,40123,5,0 +2020-04-01,Pontotoc,Oklahoma,40123,5,0 +2020-04-02,Pontotoc,Oklahoma,40123,5,0 +2020-04-03,Pontotoc,Oklahoma,40123,7,0 +2020-04-04,Pontotoc,Oklahoma,40123,7,0 +2020-04-05,Pontotoc,Oklahoma,40123,7,0 +2020-04-06,Pontotoc,Oklahoma,40123,8,0 +2020-04-07,Pontotoc,Oklahoma,40123,9,0 +2020-04-08,Pontotoc,Oklahoma,40123,9,0 +2020-04-09,Pontotoc,Oklahoma,40123,9,0 +2020-04-10,Pontotoc,Oklahoma,40123,9,0 +2020-04-11,Pontotoc,Oklahoma,40123,9,0 +2020-04-12,Pontotoc,Oklahoma,40123,9,0 +2020-04-13,Pontotoc,Oklahoma,40123,10,0 +2020-04-14,Pontotoc,Oklahoma,40123,10,1 +2020-04-15,Pontotoc,Oklahoma,40123,10,1 +2020-04-16,Pontotoc,Oklahoma,40123,10,1 +2020-04-17,Pontotoc,Oklahoma,40123,10,1 +2020-04-18,Pontotoc,Oklahoma,40123,10,1 +2020-04-19,Pontotoc,Oklahoma,40123,10,1 +2020-04-20,Pontotoc,Oklahoma,40123,10,1 +2020-04-21,Pontotoc,Oklahoma,40123,10,1 +2020-04-22,Pontotoc,Oklahoma,40123,10,1 +2020-04-23,Pontotoc,Oklahoma,40123,10,1 +2020-04-24,Pontotoc,Oklahoma,40123,10,1 +2020-04-25,Pontotoc,Oklahoma,40123,10,1 +2020-04-26,Pontotoc,Oklahoma,40123,10,1 +2020-04-27,Pontotoc,Oklahoma,40123,10,1 +2020-04-28,Pontotoc,Oklahoma,40123,10,1 +2020-04-29,Pontotoc,Oklahoma,40123,10,1 +2020-04-30,Pontotoc,Oklahoma,40123,10,1 +2020-05-01,Pontotoc,Oklahoma,40123,10,2 +2020-05-02,Pontotoc,Oklahoma,40123,10,2 +2020-05-03,Pontotoc,Oklahoma,40123,10,2 +2020-05-04,Pontotoc,Oklahoma,40123,10,2 +2020-05-05,Pontotoc,Oklahoma,40123,10,2 +2020-05-06,Pontotoc,Oklahoma,40123,10,2 +2020-05-07,Pontotoc,Oklahoma,40123,10,2 +2020-05-08,Pontotoc,Oklahoma,40123,10,2 +2020-05-09,Pontotoc,Oklahoma,40123,10,2 +2020-05-10,Pontotoc,Oklahoma,40123,10,2 +2020-05-11,Pontotoc,Oklahoma,40123,10,2 +2020-05-12,Pontotoc,Oklahoma,40123,10,2 +2020-05-13,Pontotoc,Oklahoma,40123,10,2 +2020-05-14,Pontotoc,Oklahoma,40123,10,2 +2020-05-15,Pontotoc,Oklahoma,40123,10,2 +2020-05-16,Pontotoc,Oklahoma,40123,11,2 +2020-05-17,Pontotoc,Oklahoma,40123,11,2 +2020-05-18,Pontotoc,Oklahoma,40123,11,2 +2020-05-19,Pontotoc,Oklahoma,40123,11,2 +2020-05-20,Pontotoc,Oklahoma,40123,11,2 +2020-05-21,Pontotoc,Oklahoma,40123,11,2 +2020-05-22,Pontotoc,Oklahoma,40123,11,2 +2020-05-23,Pontotoc,Oklahoma,40123,11,2 +2020-05-24,Pontotoc,Oklahoma,40123,12,2 +2020-05-25,Pontotoc,Oklahoma,40123,12,2 +2020-05-26,Pontotoc,Oklahoma,40123,11,2 +2020-05-27,Pontotoc,Oklahoma,40123,12,2 +2020-05-28,Pontotoc,Oklahoma,40123,11,2 +2020-05-29,Pontotoc,Oklahoma,40123,13,2 +2020-05-30,Pontotoc,Oklahoma,40123,13,2 +2020-05-31,Pontotoc,Oklahoma,40123,13,2 +2020-06-01,Pontotoc,Oklahoma,40123,14,2 +2020-06-02,Pontotoc,Oklahoma,40123,15,2 +2020-06-03,Pontotoc,Oklahoma,40123,15,2 +2020-06-04,Pontotoc,Oklahoma,40123,15,2 +2020-06-05,Pontotoc,Oklahoma,40123,17,2 +2020-06-06,Pontotoc,Oklahoma,40123,18,2 +2020-06-07,Pontotoc,Oklahoma,40123,18,2 +2020-06-08,Pontotoc,Oklahoma,40123,18,2 +2020-06-09,Pontotoc,Oklahoma,40123,20,2 +2020-06-10,Pontotoc,Oklahoma,40123,20,2 +2020-06-11,Pontotoc,Oklahoma,40123,20,2 +2020-06-12,Pontotoc,Oklahoma,40123,20,2 +2020-06-13,Pontotoc,Oklahoma,40123,21,2 +2020-06-14,Pontotoc,Oklahoma,40123,21,2 +2020-06-15,Pontotoc,Oklahoma,40123,21,2 +2020-06-16,Pontotoc,Oklahoma,40123,21,2 +2020-06-17,Pontotoc,Oklahoma,40123,22,2 +2020-06-18,Pontotoc,Oklahoma,40123,24,2 +2020-06-19,Pontotoc,Oklahoma,40123,24,2 +2020-06-20,Pontotoc,Oklahoma,40123,23,2 +2020-06-21,Pontotoc,Oklahoma,40123,27,2 +2020-06-22,Pontotoc,Oklahoma,40123,27,2 +2020-06-23,Pontotoc,Oklahoma,40123,28,2 +2020-06-24,Pontotoc,Oklahoma,40123,29,2 +2020-06-25,Pontotoc,Oklahoma,40123,33,2 +2020-06-26,Pontotoc,Oklahoma,40123,32,2 +2020-06-27,Pontotoc,Oklahoma,40123,35,2 +2020-06-28,Pontotoc,Oklahoma,40123,37,2 +2020-06-29,Pontotoc,Oklahoma,40123,38,2 +2020-06-30,Pontotoc,Oklahoma,40123,39,2 +2020-07-01,Pontotoc,Oklahoma,40123,42,2 +2020-07-02,Pontotoc,Oklahoma,40123,44,2 +2020-07-03,Pontotoc,Oklahoma,40123,43,2 +2020-07-04,Pontotoc,Oklahoma,40123,44,2 +2020-07-05,Pontotoc,Oklahoma,40123,45,2 +2020-07-06,Pontotoc,Oklahoma,40123,50,2 +2020-07-07,Pontotoc,Oklahoma,40123,51,2 +2020-07-08,Pontotoc,Oklahoma,40123,63,2 +2020-07-09,Pontotoc,Oklahoma,40123,67,2 +2020-03-25,Pottawatomie,Oklahoma,40125,1,0 +2020-03-26,Pottawatomie,Oklahoma,40125,2,0 +2020-03-27,Pottawatomie,Oklahoma,40125,2,0 +2020-03-28,Pottawatomie,Oklahoma,40125,2,0 +2020-03-29,Pottawatomie,Oklahoma,40125,2,0 +2020-03-30,Pottawatomie,Oklahoma,40125,2,0 +2020-03-31,Pottawatomie,Oklahoma,40125,5,0 +2020-04-01,Pottawatomie,Oklahoma,40125,6,0 +2020-04-02,Pottawatomie,Oklahoma,40125,9,0 +2020-04-03,Pottawatomie,Oklahoma,40125,11,0 +2020-04-04,Pottawatomie,Oklahoma,40125,11,0 +2020-04-05,Pottawatomie,Oklahoma,40125,12,0 +2020-04-06,Pottawatomie,Oklahoma,40125,13,1 +2020-04-07,Pottawatomie,Oklahoma,40125,19,1 +2020-04-08,Pottawatomie,Oklahoma,40125,20,1 +2020-04-09,Pottawatomie,Oklahoma,40125,24,1 +2020-04-10,Pottawatomie,Oklahoma,40125,25,2 +2020-04-11,Pottawatomie,Oklahoma,40125,25,2 +2020-04-12,Pottawatomie,Oklahoma,40125,26,3 +2020-04-13,Pottawatomie,Oklahoma,40125,26,3 +2020-04-14,Pottawatomie,Oklahoma,40125,28,3 +2020-04-15,Pottawatomie,Oklahoma,40125,28,3 +2020-04-16,Pottawatomie,Oklahoma,40125,32,3 +2020-04-17,Pottawatomie,Oklahoma,40125,33,3 +2020-04-18,Pottawatomie,Oklahoma,40125,35,4 +2020-04-19,Pottawatomie,Oklahoma,40125,36,4 +2020-04-20,Pottawatomie,Oklahoma,40125,36,4 +2020-04-21,Pottawatomie,Oklahoma,40125,36,4 +2020-04-22,Pottawatomie,Oklahoma,40125,37,4 +2020-04-23,Pottawatomie,Oklahoma,40125,38,4 +2020-04-24,Pottawatomie,Oklahoma,40125,40,4 +2020-04-25,Pottawatomie,Oklahoma,40125,40,4 +2020-04-26,Pottawatomie,Oklahoma,40125,40,4 +2020-04-27,Pottawatomie,Oklahoma,40125,42,4 +2020-04-28,Pottawatomie,Oklahoma,40125,43,4 +2020-04-29,Pottawatomie,Oklahoma,40125,43,4 +2020-04-30,Pottawatomie,Oklahoma,40125,45,4 +2020-05-01,Pottawatomie,Oklahoma,40125,48,4 +2020-05-02,Pottawatomie,Oklahoma,40125,51,4 +2020-05-03,Pottawatomie,Oklahoma,40125,52,4 +2020-05-04,Pottawatomie,Oklahoma,40125,52,4 +2020-05-05,Pottawatomie,Oklahoma,40125,52,4 +2020-05-06,Pottawatomie,Oklahoma,40125,52,4 +2020-05-07,Pottawatomie,Oklahoma,40125,53,4 +2020-05-08,Pottawatomie,Oklahoma,40125,54,4 +2020-05-09,Pottawatomie,Oklahoma,40125,54,4 +2020-05-10,Pottawatomie,Oklahoma,40125,54,4 +2020-05-11,Pottawatomie,Oklahoma,40125,54,4 +2020-05-12,Pottawatomie,Oklahoma,40125,54,4 +2020-05-13,Pottawatomie,Oklahoma,40125,55,4 +2020-05-14,Pottawatomie,Oklahoma,40125,55,4 +2020-05-15,Pottawatomie,Oklahoma,40125,55,4 +2020-05-16,Pottawatomie,Oklahoma,40125,56,4 +2020-05-17,Pottawatomie,Oklahoma,40125,57,4 +2020-05-18,Pottawatomie,Oklahoma,40125,57,4 +2020-05-19,Pottawatomie,Oklahoma,40125,57,4 +2020-05-20,Pottawatomie,Oklahoma,40125,56,4 +2020-05-21,Pottawatomie,Oklahoma,40125,56,4 +2020-05-22,Pottawatomie,Oklahoma,40125,56,4 +2020-05-23,Pottawatomie,Oklahoma,40125,56,4 +2020-05-24,Pottawatomie,Oklahoma,40125,57,4 +2020-05-25,Pottawatomie,Oklahoma,40125,57,4 +2020-05-26,Pottawatomie,Oklahoma,40125,57,4 +2020-05-27,Pottawatomie,Oklahoma,40125,58,4 +2020-05-28,Pottawatomie,Oklahoma,40125,59,4 +2020-05-29,Pottawatomie,Oklahoma,40125,59,4 +2020-05-30,Pottawatomie,Oklahoma,40125,59,4 +2020-05-31,Pottawatomie,Oklahoma,40125,60,4 +2020-06-01,Pottawatomie,Oklahoma,40125,62,4 +2020-06-02,Pottawatomie,Oklahoma,40125,63,4 +2020-06-03,Pottawatomie,Oklahoma,40125,63,4 +2020-06-04,Pottawatomie,Oklahoma,40125,63,4 +2020-06-05,Pottawatomie,Oklahoma,40125,63,4 +2020-06-06,Pottawatomie,Oklahoma,40125,63,4 +2020-06-07,Pottawatomie,Oklahoma,40125,64,4 +2020-06-08,Pottawatomie,Oklahoma,40125,64,4 +2020-06-09,Pottawatomie,Oklahoma,40125,65,4 +2020-06-10,Pottawatomie,Oklahoma,40125,66,4 +2020-06-11,Pottawatomie,Oklahoma,40125,66,4 +2020-06-12,Pottawatomie,Oklahoma,40125,67,4 +2020-06-13,Pottawatomie,Oklahoma,40125,67,4 +2020-06-14,Pottawatomie,Oklahoma,40125,71,4 +2020-06-15,Pottawatomie,Oklahoma,40125,72,4 +2020-06-16,Pottawatomie,Oklahoma,40125,75,4 +2020-06-17,Pottawatomie,Oklahoma,40125,78,4 +2020-06-18,Pottawatomie,Oklahoma,40125,79,4 +2020-06-19,Pottawatomie,Oklahoma,40125,80,4 +2020-06-20,Pottawatomie,Oklahoma,40125,83,4 +2020-06-21,Pottawatomie,Oklahoma,40125,85,4 +2020-06-22,Pottawatomie,Oklahoma,40125,88,4 +2020-06-23,Pottawatomie,Oklahoma,40125,90,4 +2020-06-24,Pottawatomie,Oklahoma,40125,89,4 +2020-06-25,Pottawatomie,Oklahoma,40125,91,4 +2020-06-26,Pottawatomie,Oklahoma,40125,96,4 +2020-06-27,Pottawatomie,Oklahoma,40125,97,4 +2020-06-28,Pottawatomie,Oklahoma,40125,99,4 +2020-06-29,Pottawatomie,Oklahoma,40125,102,4 +2020-06-30,Pottawatomie,Oklahoma,40125,104,4 +2020-07-01,Pottawatomie,Oklahoma,40125,105,4 +2020-07-02,Pottawatomie,Oklahoma,40125,109,4 +2020-07-03,Pottawatomie,Oklahoma,40125,112,4 +2020-07-04,Pottawatomie,Oklahoma,40125,115,4 +2020-07-05,Pottawatomie,Oklahoma,40125,117,4 +2020-07-06,Pottawatomie,Oklahoma,40125,119,4 +2020-07-07,Pottawatomie,Oklahoma,40125,121,4 +2020-07-08,Pottawatomie,Oklahoma,40125,134,4 +2020-07-09,Pottawatomie,Oklahoma,40125,142,4 +2020-04-27,Pushmataha,Oklahoma,40127,1,0 +2020-04-28,Pushmataha,Oklahoma,40127,1,0 +2020-04-29,Pushmataha,Oklahoma,40127,1,0 +2020-04-30,Pushmataha,Oklahoma,40127,1,0 +2020-05-01,Pushmataha,Oklahoma,40127,1,0 +2020-05-02,Pushmataha,Oklahoma,40127,1,0 +2020-05-03,Pushmataha,Oklahoma,40127,1,0 +2020-05-04,Pushmataha,Oklahoma,40127,1,0 +2020-05-05,Pushmataha,Oklahoma,40127,1,0 +2020-05-06,Pushmataha,Oklahoma,40127,1,0 +2020-05-07,Pushmataha,Oklahoma,40127,1,0 +2020-05-08,Pushmataha,Oklahoma,40127,1,0 +2020-05-09,Pushmataha,Oklahoma,40127,1,0 +2020-05-10,Pushmataha,Oklahoma,40127,1,0 +2020-05-11,Pushmataha,Oklahoma,40127,1,0 +2020-05-12,Pushmataha,Oklahoma,40127,1,0 +2020-05-13,Pushmataha,Oklahoma,40127,1,0 +2020-05-14,Pushmataha,Oklahoma,40127,1,0 +2020-05-15,Pushmataha,Oklahoma,40127,1,0 +2020-05-16,Pushmataha,Oklahoma,40127,1,0 +2020-05-17,Pushmataha,Oklahoma,40127,1,0 +2020-05-18,Pushmataha,Oklahoma,40127,1,0 +2020-05-19,Pushmataha,Oklahoma,40127,1,0 +2020-05-20,Pushmataha,Oklahoma,40127,2,0 +2020-05-21,Pushmataha,Oklahoma,40127,2,0 +2020-05-22,Pushmataha,Oklahoma,40127,2,0 +2020-05-23,Pushmataha,Oklahoma,40127,2,0 +2020-05-24,Pushmataha,Oklahoma,40127,2,0 +2020-05-25,Pushmataha,Oklahoma,40127,2,0 +2020-05-26,Pushmataha,Oklahoma,40127,2,0 +2020-05-27,Pushmataha,Oklahoma,40127,2,0 +2020-05-28,Pushmataha,Oklahoma,40127,2,0 +2020-05-29,Pushmataha,Oklahoma,40127,2,0 +2020-05-30,Pushmataha,Oklahoma,40127,2,0 +2020-05-31,Pushmataha,Oklahoma,40127,3,0 +2020-06-01,Pushmataha,Oklahoma,40127,3,0 +2020-06-02,Pushmataha,Oklahoma,40127,3,0 +2020-06-03,Pushmataha,Oklahoma,40127,5,0 +2020-06-04,Pushmataha,Oklahoma,40127,5,0 +2020-06-05,Pushmataha,Oklahoma,40127,4,0 +2020-06-06,Pushmataha,Oklahoma,40127,5,0 +2020-06-07,Pushmataha,Oklahoma,40127,5,0 +2020-06-08,Pushmataha,Oklahoma,40127,5,0 +2020-06-09,Pushmataha,Oklahoma,40127,5,0 +2020-06-10,Pushmataha,Oklahoma,40127,6,0 +2020-06-11,Pushmataha,Oklahoma,40127,6,0 +2020-06-12,Pushmataha,Oklahoma,40127,7,0 +2020-06-13,Pushmataha,Oklahoma,40127,7,0 +2020-06-14,Pushmataha,Oklahoma,40127,7,0 +2020-06-15,Pushmataha,Oklahoma,40127,7,0 +2020-06-16,Pushmataha,Oklahoma,40127,7,0 +2020-06-17,Pushmataha,Oklahoma,40127,7,0 +2020-06-18,Pushmataha,Oklahoma,40127,7,0 +2020-06-19,Pushmataha,Oklahoma,40127,8,0 +2020-06-20,Pushmataha,Oklahoma,40127,9,0 +2020-06-21,Pushmataha,Oklahoma,40127,8,0 +2020-06-22,Pushmataha,Oklahoma,40127,8,0 +2020-06-23,Pushmataha,Oklahoma,40127,8,0 +2020-06-24,Pushmataha,Oklahoma,40127,8,0 +2020-06-25,Pushmataha,Oklahoma,40127,10,0 +2020-06-26,Pushmataha,Oklahoma,40127,10,0 +2020-06-27,Pushmataha,Oklahoma,40127,10,0 +2020-06-28,Pushmataha,Oklahoma,40127,10,0 +2020-06-29,Pushmataha,Oklahoma,40127,10,0 +2020-06-30,Pushmataha,Oklahoma,40127,11,0 +2020-07-01,Pushmataha,Oklahoma,40127,13,0 +2020-07-02,Pushmataha,Oklahoma,40127,15,0 +2020-07-03,Pushmataha,Oklahoma,40127,16,0 +2020-07-04,Pushmataha,Oklahoma,40127,17,0 +2020-07-05,Pushmataha,Oklahoma,40127,17,0 +2020-07-06,Pushmataha,Oklahoma,40127,17,0 +2020-07-07,Pushmataha,Oklahoma,40127,17,0 +2020-07-08,Pushmataha,Oklahoma,40127,17,0 +2020-07-09,Pushmataha,Oklahoma,40127,20,0 +2020-03-29,Rogers,Oklahoma,40131,1,0 +2020-03-30,Rogers,Oklahoma,40131,1,0 +2020-03-31,Rogers,Oklahoma,40131,3,0 +2020-04-01,Rogers,Oklahoma,40131,4,0 +2020-04-02,Rogers,Oklahoma,40131,8,0 +2020-04-03,Rogers,Oklahoma,40131,10,0 +2020-04-04,Rogers,Oklahoma,40131,12,0 +2020-04-05,Rogers,Oklahoma,40131,13,0 +2020-04-06,Rogers,Oklahoma,40131,15,0 +2020-04-07,Rogers,Oklahoma,40131,17,0 +2020-04-08,Rogers,Oklahoma,40131,19,0 +2020-04-09,Rogers,Oklahoma,40131,19,0 +2020-04-10,Rogers,Oklahoma,40131,23,0 +2020-04-11,Rogers,Oklahoma,40131,24,0 +2020-04-12,Rogers,Oklahoma,40131,25,0 +2020-04-13,Rogers,Oklahoma,40131,25,0 +2020-04-14,Rogers,Oklahoma,40131,28,1 +2020-04-15,Rogers,Oklahoma,40131,30,2 +2020-04-16,Rogers,Oklahoma,40131,30,2 +2020-04-17,Rogers,Oklahoma,40131,34,2 +2020-04-18,Rogers,Oklahoma,40131,38,2 +2020-04-19,Rogers,Oklahoma,40131,38,2 +2020-04-20,Rogers,Oklahoma,40131,38,2 +2020-04-21,Rogers,Oklahoma,40131,40,2 +2020-04-22,Rogers,Oklahoma,40131,42,3 +2020-04-23,Rogers,Oklahoma,40131,44,3 +2020-04-24,Rogers,Oklahoma,40131,45,3 +2020-04-25,Rogers,Oklahoma,40131,46,3 +2020-04-26,Rogers,Oklahoma,40131,47,3 +2020-04-27,Rogers,Oklahoma,40131,47,3 +2020-04-28,Rogers,Oklahoma,40131,50,3 +2020-04-29,Rogers,Oklahoma,40131,52,3 +2020-04-30,Rogers,Oklahoma,40131,59,3 +2020-05-01,Rogers,Oklahoma,40131,60,4 +2020-05-02,Rogers,Oklahoma,40131,65,4 +2020-05-03,Rogers,Oklahoma,40131,66,4 +2020-05-04,Rogers,Oklahoma,40131,67,4 +2020-05-05,Rogers,Oklahoma,40131,68,4 +2020-05-06,Rogers,Oklahoma,40131,68,4 +2020-05-07,Rogers,Oklahoma,40131,69,4 +2020-05-08,Rogers,Oklahoma,40131,70,5 +2020-05-09,Rogers,Oklahoma,40131,70,5 +2020-05-10,Rogers,Oklahoma,40131,70,5 +2020-05-11,Rogers,Oklahoma,40131,70,5 +2020-05-12,Rogers,Oklahoma,40131,71,5 +2020-05-13,Rogers,Oklahoma,40131,72,5 +2020-05-14,Rogers,Oklahoma,40131,72,5 +2020-05-15,Rogers,Oklahoma,40131,72,5 +2020-05-16,Rogers,Oklahoma,40131,72,5 +2020-05-17,Rogers,Oklahoma,40131,72,5 +2020-05-18,Rogers,Oklahoma,40131,72,5 +2020-05-19,Rogers,Oklahoma,40131,72,5 +2020-05-20,Rogers,Oklahoma,40131,72,5 +2020-05-21,Rogers,Oklahoma,40131,73,5 +2020-05-22,Rogers,Oklahoma,40131,73,5 +2020-05-23,Rogers,Oklahoma,40131,78,5 +2020-05-24,Rogers,Oklahoma,40131,78,5 +2020-05-25,Rogers,Oklahoma,40131,78,5 +2020-05-26,Rogers,Oklahoma,40131,78,5 +2020-05-27,Rogers,Oklahoma,40131,79,5 +2020-05-28,Rogers,Oklahoma,40131,80,5 +2020-05-29,Rogers,Oklahoma,40131,80,5 +2020-05-30,Rogers,Oklahoma,40131,81,5 +2020-05-31,Rogers,Oklahoma,40131,81,5 +2020-06-01,Rogers,Oklahoma,40131,81,5 +2020-06-02,Rogers,Oklahoma,40131,82,5 +2020-06-03,Rogers,Oklahoma,40131,82,5 +2020-06-04,Rogers,Oklahoma,40131,83,5 +2020-06-05,Rogers,Oklahoma,40131,83,5 +2020-06-06,Rogers,Oklahoma,40131,85,5 +2020-06-07,Rogers,Oklahoma,40131,85,5 +2020-06-08,Rogers,Oklahoma,40131,87,5 +2020-06-09,Rogers,Oklahoma,40131,89,5 +2020-06-10,Rogers,Oklahoma,40131,92,5 +2020-06-11,Rogers,Oklahoma,40131,92,5 +2020-06-12,Rogers,Oklahoma,40131,93,5 +2020-06-13,Rogers,Oklahoma,40131,95,5 +2020-06-14,Rogers,Oklahoma,40131,97,5 +2020-06-15,Rogers,Oklahoma,40131,99,5 +2020-06-16,Rogers,Oklahoma,40131,100,5 +2020-06-17,Rogers,Oklahoma,40131,98,5 +2020-06-18,Rogers,Oklahoma,40131,113,5 +2020-06-19,Rogers,Oklahoma,40131,122,5 +2020-06-20,Rogers,Oklahoma,40131,123,5 +2020-06-21,Rogers,Oklahoma,40131,126,5 +2020-06-22,Rogers,Oklahoma,40131,128,5 +2020-06-23,Rogers,Oklahoma,40131,132,5 +2020-06-24,Rogers,Oklahoma,40131,142,5 +2020-06-25,Rogers,Oklahoma,40131,145,5 +2020-06-26,Rogers,Oklahoma,40131,152,5 +2020-06-27,Rogers,Oklahoma,40131,161,5 +2020-06-28,Rogers,Oklahoma,40131,164,5 +2020-06-29,Rogers,Oklahoma,40131,167,5 +2020-06-30,Rogers,Oklahoma,40131,178,6 +2020-07-01,Rogers,Oklahoma,40131,186,6 +2020-07-02,Rogers,Oklahoma,40131,192,6 +2020-07-03,Rogers,Oklahoma,40131,202,6 +2020-07-04,Rogers,Oklahoma,40131,214,6 +2020-07-05,Rogers,Oklahoma,40131,217,6 +2020-07-06,Rogers,Oklahoma,40131,222,6 +2020-07-07,Rogers,Oklahoma,40131,262,7 +2020-07-08,Rogers,Oklahoma,40131,278,7 +2020-07-09,Rogers,Oklahoma,40131,291,7 +2020-03-29,Seminole,Oklahoma,40133,1,0 +2020-03-30,Seminole,Oklahoma,40133,1,0 +2020-03-31,Seminole,Oklahoma,40133,1,0 +2020-04-01,Seminole,Oklahoma,40133,1,0 +2020-04-02,Seminole,Oklahoma,40133,1,0 +2020-04-03,Seminole,Oklahoma,40133,1,0 +2020-04-04,Seminole,Oklahoma,40133,2,0 +2020-04-05,Seminole,Oklahoma,40133,2,1 +2020-04-06,Seminole,Oklahoma,40133,3,1 +2020-04-07,Seminole,Oklahoma,40133,3,1 +2020-04-08,Seminole,Oklahoma,40133,4,1 +2020-04-09,Seminole,Oklahoma,40133,4,1 +2020-04-10,Seminole,Oklahoma,40133,6,1 +2020-04-11,Seminole,Oklahoma,40133,6,1 +2020-04-12,Seminole,Oklahoma,40133,7,1 +2020-04-13,Seminole,Oklahoma,40133,7,1 +2020-04-14,Seminole,Oklahoma,40133,7,1 +2020-04-15,Seminole,Oklahoma,40133,7,1 +2020-04-16,Seminole,Oklahoma,40133,7,1 +2020-04-17,Seminole,Oklahoma,40133,7,1 +2020-04-18,Seminole,Oklahoma,40133,7,1 +2020-04-19,Seminole,Oklahoma,40133,7,1 +2020-04-20,Seminole,Oklahoma,40133,7,1 +2020-04-21,Seminole,Oklahoma,40133,9,1 +2020-04-22,Seminole,Oklahoma,40133,9,1 +2020-04-23,Seminole,Oklahoma,40133,8,1 +2020-04-24,Seminole,Oklahoma,40133,8,1 +2020-04-25,Seminole,Oklahoma,40133,8,1 +2020-04-26,Seminole,Oklahoma,40133,8,1 +2020-04-27,Seminole,Oklahoma,40133,8,1 +2020-04-28,Seminole,Oklahoma,40133,10,1 +2020-04-29,Seminole,Oklahoma,40133,10,1 +2020-04-30,Seminole,Oklahoma,40133,10,1 +2020-05-01,Seminole,Oklahoma,40133,11,2 +2020-05-02,Seminole,Oklahoma,40133,12,2 +2020-05-03,Seminole,Oklahoma,40133,12,2 +2020-05-04,Seminole,Oklahoma,40133,12,2 +2020-05-05,Seminole,Oklahoma,40133,19,2 +2020-05-06,Seminole,Oklahoma,40133,19,2 +2020-05-07,Seminole,Oklahoma,40133,19,2 +2020-05-08,Seminole,Oklahoma,40133,20,2 +2020-05-09,Seminole,Oklahoma,40133,20,2 +2020-05-10,Seminole,Oklahoma,40133,21,2 +2020-05-11,Seminole,Oklahoma,40133,21,2 +2020-05-12,Seminole,Oklahoma,40133,21,2 +2020-05-13,Seminole,Oklahoma,40133,21,2 +2020-05-14,Seminole,Oklahoma,40133,21,2 +2020-05-15,Seminole,Oklahoma,40133,21,2 +2020-05-16,Seminole,Oklahoma,40133,21,2 +2020-05-17,Seminole,Oklahoma,40133,21,2 +2020-05-18,Seminole,Oklahoma,40133,21,2 +2020-05-19,Seminole,Oklahoma,40133,21,2 +2020-05-20,Seminole,Oklahoma,40133,21,2 +2020-05-21,Seminole,Oklahoma,40133,21,2 +2020-05-22,Seminole,Oklahoma,40133,21,2 +2020-05-23,Seminole,Oklahoma,40133,21,2 +2020-05-24,Seminole,Oklahoma,40133,22,2 +2020-05-25,Seminole,Oklahoma,40133,23,2 +2020-05-26,Seminole,Oklahoma,40133,23,2 +2020-05-27,Seminole,Oklahoma,40133,23,2 +2020-05-28,Seminole,Oklahoma,40133,24,2 +2020-05-29,Seminole,Oklahoma,40133,26,2 +2020-05-30,Seminole,Oklahoma,40133,26,2 +2020-05-31,Seminole,Oklahoma,40133,26,2 +2020-06-01,Seminole,Oklahoma,40133,26,2 +2020-06-02,Seminole,Oklahoma,40133,26,2 +2020-06-03,Seminole,Oklahoma,40133,28,2 +2020-06-04,Seminole,Oklahoma,40133,30,2 +2020-06-05,Seminole,Oklahoma,40133,30,2 +2020-06-06,Seminole,Oklahoma,40133,30,2 +2020-06-07,Seminole,Oklahoma,40133,30,2 +2020-06-08,Seminole,Oklahoma,40133,30,2 +2020-06-09,Seminole,Oklahoma,40133,30,2 +2020-06-10,Seminole,Oklahoma,40133,30,3 +2020-06-11,Seminole,Oklahoma,40133,30,3 +2020-06-12,Seminole,Oklahoma,40133,31,3 +2020-06-13,Seminole,Oklahoma,40133,31,3 +2020-06-14,Seminole,Oklahoma,40133,31,3 +2020-06-15,Seminole,Oklahoma,40133,31,3 +2020-06-16,Seminole,Oklahoma,40133,31,3 +2020-06-17,Seminole,Oklahoma,40133,31,3 +2020-06-18,Seminole,Oklahoma,40133,31,3 +2020-06-19,Seminole,Oklahoma,40133,33,3 +2020-06-20,Seminole,Oklahoma,40133,33,3 +2020-06-21,Seminole,Oklahoma,40133,35,3 +2020-06-22,Seminole,Oklahoma,40133,35,3 +2020-06-23,Seminole,Oklahoma,40133,35,3 +2020-06-24,Seminole,Oklahoma,40133,35,3 +2020-06-25,Seminole,Oklahoma,40133,36,3 +2020-06-26,Seminole,Oklahoma,40133,36,3 +2020-06-27,Seminole,Oklahoma,40133,36,3 +2020-06-28,Seminole,Oklahoma,40133,36,3 +2020-06-29,Seminole,Oklahoma,40133,37,3 +2020-06-30,Seminole,Oklahoma,40133,40,3 +2020-07-01,Seminole,Oklahoma,40133,41,3 +2020-07-02,Seminole,Oklahoma,40133,43,3 +2020-07-03,Seminole,Oklahoma,40133,43,3 +2020-07-04,Seminole,Oklahoma,40133,43,3 +2020-07-05,Seminole,Oklahoma,40133,43,3 +2020-07-06,Seminole,Oklahoma,40133,43,3 +2020-07-07,Seminole,Oklahoma,40133,46,3 +2020-07-08,Seminole,Oklahoma,40133,48,3 +2020-07-09,Seminole,Oklahoma,40133,53,3 +2020-03-26,Sequoyah,Oklahoma,40135,1,0 +2020-03-27,Sequoyah,Oklahoma,40135,1,0 +2020-03-28,Sequoyah,Oklahoma,40135,2,1 +2020-03-29,Sequoyah,Oklahoma,40135,2,1 +2020-03-30,Sequoyah,Oklahoma,40135,2,1 +2020-03-31,Sequoyah,Oklahoma,40135,2,1 +2020-04-01,Sequoyah,Oklahoma,40135,2,1 +2020-04-02,Sequoyah,Oklahoma,40135,4,1 +2020-04-03,Sequoyah,Oklahoma,40135,4,1 +2020-04-04,Sequoyah,Oklahoma,40135,4,1 +2020-04-05,Sequoyah,Oklahoma,40135,4,1 +2020-04-06,Sequoyah,Oklahoma,40135,7,1 +2020-04-07,Sequoyah,Oklahoma,40135,10,1 +2020-04-08,Sequoyah,Oklahoma,40135,10,1 +2020-04-09,Sequoyah,Oklahoma,40135,10,2 +2020-04-10,Sequoyah,Oklahoma,40135,10,2 +2020-04-11,Sequoyah,Oklahoma,40135,9,2 +2020-04-12,Sequoyah,Oklahoma,40135,9,2 +2020-04-13,Sequoyah,Oklahoma,40135,11,2 +2020-04-14,Sequoyah,Oklahoma,40135,11,2 +2020-04-15,Sequoyah,Oklahoma,40135,10,2 +2020-04-16,Sequoyah,Oklahoma,40135,10,2 +2020-04-17,Sequoyah,Oklahoma,40135,10,2 +2020-04-18,Sequoyah,Oklahoma,40135,10,2 +2020-04-19,Sequoyah,Oklahoma,40135,10,2 +2020-04-20,Sequoyah,Oklahoma,40135,10,2 +2020-04-21,Sequoyah,Oklahoma,40135,10,2 +2020-04-22,Sequoyah,Oklahoma,40135,10,2 +2020-04-23,Sequoyah,Oklahoma,40135,10,2 +2020-04-24,Sequoyah,Oklahoma,40135,11,3 +2020-04-25,Sequoyah,Oklahoma,40135,11,3 +2020-04-26,Sequoyah,Oklahoma,40135,12,3 +2020-04-27,Sequoyah,Oklahoma,40135,12,3 +2020-04-28,Sequoyah,Oklahoma,40135,12,3 +2020-04-29,Sequoyah,Oklahoma,40135,12,3 +2020-04-30,Sequoyah,Oklahoma,40135,12,3 +2020-05-01,Sequoyah,Oklahoma,40135,12,3 +2020-05-02,Sequoyah,Oklahoma,40135,12,3 +2020-05-03,Sequoyah,Oklahoma,40135,12,3 +2020-05-04,Sequoyah,Oklahoma,40135,12,3 +2020-05-05,Sequoyah,Oklahoma,40135,12,3 +2020-05-06,Sequoyah,Oklahoma,40135,13,3 +2020-05-07,Sequoyah,Oklahoma,40135,13,3 +2020-05-08,Sequoyah,Oklahoma,40135,13,3 +2020-05-09,Sequoyah,Oklahoma,40135,13,3 +2020-05-10,Sequoyah,Oklahoma,40135,14,3 +2020-05-11,Sequoyah,Oklahoma,40135,14,3 +2020-05-12,Sequoyah,Oklahoma,40135,14,3 +2020-05-13,Sequoyah,Oklahoma,40135,14,3 +2020-05-14,Sequoyah,Oklahoma,40135,14,3 +2020-05-15,Sequoyah,Oklahoma,40135,14,3 +2020-05-16,Sequoyah,Oklahoma,40135,14,3 +2020-05-17,Sequoyah,Oklahoma,40135,14,3 +2020-05-18,Sequoyah,Oklahoma,40135,14,3 +2020-05-19,Sequoyah,Oklahoma,40135,14,3 +2020-05-20,Sequoyah,Oklahoma,40135,14,3 +2020-05-21,Sequoyah,Oklahoma,40135,14,3 +2020-05-22,Sequoyah,Oklahoma,40135,14,3 +2020-05-23,Sequoyah,Oklahoma,40135,14,3 +2020-05-24,Sequoyah,Oklahoma,40135,14,3 +2020-05-25,Sequoyah,Oklahoma,40135,14,3 +2020-05-26,Sequoyah,Oklahoma,40135,14,3 +2020-05-27,Sequoyah,Oklahoma,40135,14,3 +2020-05-28,Sequoyah,Oklahoma,40135,14,3 +2020-05-29,Sequoyah,Oklahoma,40135,14,3 +2020-05-30,Sequoyah,Oklahoma,40135,15,3 +2020-05-31,Sequoyah,Oklahoma,40135,15,3 +2020-06-01,Sequoyah,Oklahoma,40135,15,3 +2020-06-02,Sequoyah,Oklahoma,40135,15,3 +2020-06-03,Sequoyah,Oklahoma,40135,15,3 +2020-06-04,Sequoyah,Oklahoma,40135,16,3 +2020-06-05,Sequoyah,Oklahoma,40135,17,3 +2020-06-06,Sequoyah,Oklahoma,40135,17,3 +2020-06-07,Sequoyah,Oklahoma,40135,17,3 +2020-06-08,Sequoyah,Oklahoma,40135,17,3 +2020-06-09,Sequoyah,Oklahoma,40135,18,3 +2020-06-10,Sequoyah,Oklahoma,40135,19,3 +2020-06-11,Sequoyah,Oklahoma,40135,19,3 +2020-06-12,Sequoyah,Oklahoma,40135,19,3 +2020-06-13,Sequoyah,Oklahoma,40135,20,3 +2020-06-14,Sequoyah,Oklahoma,40135,21,3 +2020-06-15,Sequoyah,Oklahoma,40135,21,3 +2020-06-16,Sequoyah,Oklahoma,40135,21,3 +2020-06-17,Sequoyah,Oklahoma,40135,21,3 +2020-06-18,Sequoyah,Oklahoma,40135,21,3 +2020-06-19,Sequoyah,Oklahoma,40135,22,3 +2020-06-20,Sequoyah,Oklahoma,40135,22,3 +2020-06-21,Sequoyah,Oklahoma,40135,25,3 +2020-06-22,Sequoyah,Oklahoma,40135,26,3 +2020-06-23,Sequoyah,Oklahoma,40135,27,3 +2020-06-24,Sequoyah,Oklahoma,40135,28,3 +2020-06-25,Sequoyah,Oklahoma,40135,28,3 +2020-06-26,Sequoyah,Oklahoma,40135,31,3 +2020-06-27,Sequoyah,Oklahoma,40135,32,3 +2020-06-28,Sequoyah,Oklahoma,40135,32,3 +2020-06-29,Sequoyah,Oklahoma,40135,32,3 +2020-06-30,Sequoyah,Oklahoma,40135,40,3 +2020-07-01,Sequoyah,Oklahoma,40135,40,3 +2020-07-02,Sequoyah,Oklahoma,40135,41,3 +2020-07-03,Sequoyah,Oklahoma,40135,44,3 +2020-07-04,Sequoyah,Oklahoma,40135,46,3 +2020-07-05,Sequoyah,Oklahoma,40135,47,3 +2020-07-06,Sequoyah,Oklahoma,40135,50,3 +2020-07-07,Sequoyah,Oklahoma,40135,52,3 +2020-07-08,Sequoyah,Oklahoma,40135,57,3 +2020-07-09,Sequoyah,Oklahoma,40135,59,3 +2020-03-25,Stephens,Oklahoma,40137,1,0 +2020-03-26,Stephens,Oklahoma,40137,1,0 +2020-03-27,Stephens,Oklahoma,40137,1,0 +2020-03-28,Stephens,Oklahoma,40137,2,0 +2020-03-29,Stephens,Oklahoma,40137,2,0 +2020-03-30,Stephens,Oklahoma,40137,2,0 +2020-03-31,Stephens,Oklahoma,40137,5,0 +2020-04-01,Stephens,Oklahoma,40137,6,0 +2020-04-02,Stephens,Oklahoma,40137,7,1 +2020-04-03,Stephens,Oklahoma,40137,8,1 +2020-04-04,Stephens,Oklahoma,40137,9,1 +2020-04-05,Stephens,Oklahoma,40137,9,1 +2020-04-06,Stephens,Oklahoma,40137,11,1 +2020-04-07,Stephens,Oklahoma,40137,11,1 +2020-04-08,Stephens,Oklahoma,40137,11,1 +2020-04-09,Stephens,Oklahoma,40137,13,1 +2020-04-10,Stephens,Oklahoma,40137,13,1 +2020-04-11,Stephens,Oklahoma,40137,13,1 +2020-04-12,Stephens,Oklahoma,40137,14,1 +2020-04-13,Stephens,Oklahoma,40137,15,1 +2020-04-14,Stephens,Oklahoma,40137,15,1 +2020-04-15,Stephens,Oklahoma,40137,15,1 +2020-04-16,Stephens,Oklahoma,40137,15,1 +2020-04-17,Stephens,Oklahoma,40137,15,1 +2020-04-18,Stephens,Oklahoma,40137,15,1 +2020-04-19,Stephens,Oklahoma,40137,15,1 +2020-04-20,Stephens,Oklahoma,40137,19,1 +2020-04-21,Stephens,Oklahoma,40137,19,1 +2020-04-22,Stephens,Oklahoma,40137,19,1 +2020-04-23,Stephens,Oklahoma,40137,19,1 +2020-04-24,Stephens,Oklahoma,40137,19,1 +2020-04-25,Stephens,Oklahoma,40137,20,1 +2020-04-26,Stephens,Oklahoma,40137,20,1 +2020-04-27,Stephens,Oklahoma,40137,20,1 +2020-04-28,Stephens,Oklahoma,40137,22,1 +2020-04-29,Stephens,Oklahoma,40137,22,1 +2020-04-30,Stephens,Oklahoma,40137,22,1 +2020-05-01,Stephens,Oklahoma,40137,22,1 +2020-05-02,Stephens,Oklahoma,40137,22,1 +2020-05-03,Stephens,Oklahoma,40137,22,1 +2020-05-04,Stephens,Oklahoma,40137,22,1 +2020-05-05,Stephens,Oklahoma,40137,22,1 +2020-05-06,Stephens,Oklahoma,40137,22,1 +2020-05-07,Stephens,Oklahoma,40137,22,1 +2020-05-08,Stephens,Oklahoma,40137,22,1 +2020-05-09,Stephens,Oklahoma,40137,22,1 +2020-05-10,Stephens,Oklahoma,40137,22,1 +2020-05-11,Stephens,Oklahoma,40137,22,1 +2020-05-12,Stephens,Oklahoma,40137,22,1 +2020-05-13,Stephens,Oklahoma,40137,22,1 +2020-05-14,Stephens,Oklahoma,40137,22,1 +2020-05-15,Stephens,Oklahoma,40137,23,1 +2020-05-16,Stephens,Oklahoma,40137,24,1 +2020-05-17,Stephens,Oklahoma,40137,24,1 +2020-05-18,Stephens,Oklahoma,40137,26,1 +2020-05-19,Stephens,Oklahoma,40137,25,1 +2020-05-20,Stephens,Oklahoma,40137,25,1 +2020-05-21,Stephens,Oklahoma,40137,36,1 +2020-05-22,Stephens,Oklahoma,40137,37,1 +2020-05-23,Stephens,Oklahoma,40137,37,1 +2020-05-24,Stephens,Oklahoma,40137,37,1 +2020-05-25,Stephens,Oklahoma,40137,37,1 +2020-05-26,Stephens,Oklahoma,40137,37,1 +2020-05-27,Stephens,Oklahoma,40137,37,1 +2020-05-28,Stephens,Oklahoma,40137,37,1 +2020-05-29,Stephens,Oklahoma,40137,37,1 +2020-05-30,Stephens,Oklahoma,40137,38,1 +2020-05-31,Stephens,Oklahoma,40137,38,1 +2020-06-01,Stephens,Oklahoma,40137,38,1 +2020-06-02,Stephens,Oklahoma,40137,38,1 +2020-06-03,Stephens,Oklahoma,40137,40,1 +2020-06-04,Stephens,Oklahoma,40137,41,1 +2020-06-05,Stephens,Oklahoma,40137,41,1 +2020-06-06,Stephens,Oklahoma,40137,41,1 +2020-06-07,Stephens,Oklahoma,40137,44,1 +2020-06-08,Stephens,Oklahoma,40137,44,1 +2020-06-09,Stephens,Oklahoma,40137,43,1 +2020-06-10,Stephens,Oklahoma,40137,43,1 +2020-06-11,Stephens,Oklahoma,40137,44,1 +2020-06-12,Stephens,Oklahoma,40137,44,1 +2020-06-13,Stephens,Oklahoma,40137,44,1 +2020-06-14,Stephens,Oklahoma,40137,45,1 +2020-06-15,Stephens,Oklahoma,40137,45,1 +2020-06-16,Stephens,Oklahoma,40137,47,1 +2020-06-17,Stephens,Oklahoma,40137,48,1 +2020-06-18,Stephens,Oklahoma,40137,48,1 +2020-06-19,Stephens,Oklahoma,40137,48,1 +2020-06-20,Stephens,Oklahoma,40137,49,1 +2020-06-21,Stephens,Oklahoma,40137,49,1 +2020-06-22,Stephens,Oklahoma,40137,49,1 +2020-06-23,Stephens,Oklahoma,40137,49,1 +2020-06-24,Stephens,Oklahoma,40137,50,1 +2020-06-25,Stephens,Oklahoma,40137,52,1 +2020-06-26,Stephens,Oklahoma,40137,55,1 +2020-06-27,Stephens,Oklahoma,40137,55,1 +2020-06-28,Stephens,Oklahoma,40137,55,1 +2020-06-29,Stephens,Oklahoma,40137,55,1 +2020-06-30,Stephens,Oklahoma,40137,63,1 +2020-07-01,Stephens,Oklahoma,40137,63,1 +2020-07-02,Stephens,Oklahoma,40137,62,1 +2020-07-03,Stephens,Oklahoma,40137,64,1 +2020-07-04,Stephens,Oklahoma,40137,65,1 +2020-07-05,Stephens,Oklahoma,40137,65,1 +2020-07-06,Stephens,Oklahoma,40137,72,1 +2020-07-07,Stephens,Oklahoma,40137,70,1 +2020-07-08,Stephens,Oklahoma,40137,74,1 +2020-07-09,Stephens,Oklahoma,40137,76,1 +2020-03-29,Texas,Oklahoma,40139,1,0 +2020-03-30,Texas,Oklahoma,40139,1,0 +2020-03-31,Texas,Oklahoma,40139,1,0 +2020-04-01,Texas,Oklahoma,40139,1,0 +2020-04-02,Texas,Oklahoma,40139,1,0 +2020-04-03,Texas,Oklahoma,40139,1,0 +2020-04-04,Texas,Oklahoma,40139,1,0 +2020-04-05,Texas,Oklahoma,40139,2,0 +2020-04-06,Texas,Oklahoma,40139,3,0 +2020-04-07,Texas,Oklahoma,40139,3,0 +2020-04-08,Texas,Oklahoma,40139,3,0 +2020-04-09,Texas,Oklahoma,40139,3,0 +2020-04-10,Texas,Oklahoma,40139,3,0 +2020-04-11,Texas,Oklahoma,40139,3,0 +2020-04-12,Texas,Oklahoma,40139,3,0 +2020-04-13,Texas,Oklahoma,40139,5,0 +2020-04-14,Texas,Oklahoma,40139,6,1 +2020-04-15,Texas,Oklahoma,40139,9,1 +2020-04-16,Texas,Oklahoma,40139,9,1 +2020-04-17,Texas,Oklahoma,40139,9,1 +2020-04-18,Texas,Oklahoma,40139,13,1 +2020-04-19,Texas,Oklahoma,40139,13,1 +2020-04-20,Texas,Oklahoma,40139,20,1 +2020-04-21,Texas,Oklahoma,40139,32,1 +2020-04-22,Texas,Oklahoma,40139,34,1 +2020-04-23,Texas,Oklahoma,40139,46,1 +2020-04-24,Texas,Oklahoma,40139,59,1 +2020-04-25,Texas,Oklahoma,40139,68,1 +2020-04-26,Texas,Oklahoma,40139,73,1 +2020-04-27,Texas,Oklahoma,40139,85,1 +2020-04-28,Texas,Oklahoma,40139,107,1 +2020-04-29,Texas,Oklahoma,40139,119,1 +2020-04-30,Texas,Oklahoma,40139,131,1 +2020-05-01,Texas,Oklahoma,40139,138,1 +2020-05-02,Texas,Oklahoma,40139,172,2 +2020-05-03,Texas,Oklahoma,40139,201,2 +2020-05-04,Texas,Oklahoma,40139,236,2 +2020-05-05,Texas,Oklahoma,40139,252,3 +2020-05-06,Texas,Oklahoma,40139,274,3 +2020-05-07,Texas,Oklahoma,40139,308,3 +2020-05-08,Texas,Oklahoma,40139,343,3 +2020-05-09,Texas,Oklahoma,40139,345,3 +2020-05-10,Texas,Oklahoma,40139,403,3 +2020-05-11,Texas,Oklahoma,40139,404,4 +2020-05-12,Texas,Oklahoma,40139,424,4 +2020-05-13,Texas,Oklahoma,40139,474,4 +2020-05-14,Texas,Oklahoma,40139,541,4 +2020-05-15,Texas,Oklahoma,40139,606,4 +2020-05-16,Texas,Oklahoma,40139,658,4 +2020-05-17,Texas,Oklahoma,40139,696,4 +2020-05-18,Texas,Oklahoma,40139,752,4 +2020-05-19,Texas,Oklahoma,40139,784,4 +2020-05-20,Texas,Oklahoma,40139,791,4 +2020-05-21,Texas,Oklahoma,40139,820,4 +2020-05-22,Texas,Oklahoma,40139,851,5 +2020-05-23,Texas,Oklahoma,40139,855,5 +2020-05-24,Texas,Oklahoma,40139,881,5 +2020-05-25,Texas,Oklahoma,40139,886,5 +2020-05-26,Texas,Oklahoma,40139,890,5 +2020-05-27,Texas,Oklahoma,40139,902,5 +2020-05-28,Texas,Oklahoma,40139,904,5 +2020-05-29,Texas,Oklahoma,40139,908,5 +2020-05-30,Texas,Oklahoma,40139,917,5 +2020-05-31,Texas,Oklahoma,40139,925,5 +2020-06-01,Texas,Oklahoma,40139,926,5 +2020-06-02,Texas,Oklahoma,40139,934,5 +2020-06-03,Texas,Oklahoma,40139,939,6 +2020-06-04,Texas,Oklahoma,40139,944,6 +2020-06-05,Texas,Oklahoma,40139,944,6 +2020-06-06,Texas,Oklahoma,40139,944,6 +2020-06-07,Texas,Oklahoma,40139,947,6 +2020-06-08,Texas,Oklahoma,40139,947,6 +2020-06-09,Texas,Oklahoma,40139,954,6 +2020-06-10,Texas,Oklahoma,40139,955,6 +2020-06-11,Texas,Oklahoma,40139,956,6 +2020-06-12,Texas,Oklahoma,40139,963,6 +2020-06-13,Texas,Oklahoma,40139,968,6 +2020-06-14,Texas,Oklahoma,40139,975,6 +2020-06-15,Texas,Oklahoma,40139,975,6 +2020-06-16,Texas,Oklahoma,40139,975,6 +2020-06-17,Texas,Oklahoma,40139,975,6 +2020-06-18,Texas,Oklahoma,40139,976,6 +2020-06-19,Texas,Oklahoma,40139,977,6 +2020-06-20,Texas,Oklahoma,40139,978,6 +2020-06-21,Texas,Oklahoma,40139,980,6 +2020-06-22,Texas,Oklahoma,40139,980,6 +2020-06-23,Texas,Oklahoma,40139,983,6 +2020-06-24,Texas,Oklahoma,40139,983,6 +2020-06-25,Texas,Oklahoma,40139,984,6 +2020-06-26,Texas,Oklahoma,40139,984,6 +2020-06-27,Texas,Oklahoma,40139,984,6 +2020-06-28,Texas,Oklahoma,40139,985,6 +2020-06-29,Texas,Oklahoma,40139,986,6 +2020-06-30,Texas,Oklahoma,40139,987,6 +2020-07-01,Texas,Oklahoma,40139,986,6 +2020-07-02,Texas,Oklahoma,40139,987,6 +2020-07-03,Texas,Oklahoma,40139,990,6 +2020-07-04,Texas,Oklahoma,40139,993,6 +2020-07-05,Texas,Oklahoma,40139,993,6 +2020-07-06,Texas,Oklahoma,40139,993,6 +2020-07-07,Texas,Oklahoma,40139,997,6 +2020-07-08,Texas,Oklahoma,40139,998,6 +2020-07-09,Texas,Oklahoma,40139,1001,6 +2020-04-04,Tillman,Oklahoma,40141,1,0 +2020-04-05,Tillman,Oklahoma,40141,1,0 +2020-04-06,Tillman,Oklahoma,40141,1,0 +2020-04-07,Tillman,Oklahoma,40141,1,0 +2020-04-08,Tillman,Oklahoma,40141,1,0 +2020-04-09,Tillman,Oklahoma,40141,1,0 +2020-04-10,Tillman,Oklahoma,40141,1,0 +2020-04-11,Tillman,Oklahoma,40141,1,0 +2020-04-12,Tillman,Oklahoma,40141,1,0 +2020-04-13,Tillman,Oklahoma,40141,1,0 +2020-04-14,Tillman,Oklahoma,40141,1,0 +2020-04-15,Tillman,Oklahoma,40141,1,0 +2020-04-16,Tillman,Oklahoma,40141,1,0 +2020-04-17,Tillman,Oklahoma,40141,2,0 +2020-04-18,Tillman,Oklahoma,40141,2,0 +2020-04-19,Tillman,Oklahoma,40141,2,0 +2020-04-20,Tillman,Oklahoma,40141,2,0 +2020-04-21,Tillman,Oklahoma,40141,1,0 +2020-04-22,Tillman,Oklahoma,40141,1,0 +2020-04-23,Tillman,Oklahoma,40141,1,0 +2020-04-24,Tillman,Oklahoma,40141,1,0 +2020-04-25,Tillman,Oklahoma,40141,1,0 +2020-04-26,Tillman,Oklahoma,40141,1,0 +2020-04-27,Tillman,Oklahoma,40141,1,0 +2020-04-28,Tillman,Oklahoma,40141,1,0 +2020-04-29,Tillman,Oklahoma,40141,1,0 +2020-04-30,Tillman,Oklahoma,40141,1,0 +2020-05-01,Tillman,Oklahoma,40141,2,0 +2020-05-02,Tillman,Oklahoma,40141,2,0 +2020-05-03,Tillman,Oklahoma,40141,14,0 +2020-05-04,Tillman,Oklahoma,40141,14,0 +2020-05-05,Tillman,Oklahoma,40141,15,0 +2020-05-06,Tillman,Oklahoma,40141,15,0 +2020-05-07,Tillman,Oklahoma,40141,16,0 +2020-05-08,Tillman,Oklahoma,40141,19,0 +2020-05-09,Tillman,Oklahoma,40141,19,0 +2020-05-10,Tillman,Oklahoma,40141,19,0 +2020-05-11,Tillman,Oklahoma,40141,19,0 +2020-05-12,Tillman,Oklahoma,40141,19,1 +2020-05-13,Tillman,Oklahoma,40141,20,1 +2020-05-14,Tillman,Oklahoma,40141,21,1 +2020-05-15,Tillman,Oklahoma,40141,21,1 +2020-05-16,Tillman,Oklahoma,40141,22,1 +2020-05-17,Tillman,Oklahoma,40141,22,1 +2020-05-18,Tillman,Oklahoma,40141,22,1 +2020-05-19,Tillman,Oklahoma,40141,22,1 +2020-05-20,Tillman,Oklahoma,40141,22,1 +2020-05-21,Tillman,Oklahoma,40141,22,1 +2020-05-22,Tillman,Oklahoma,40141,22,1 +2020-05-23,Tillman,Oklahoma,40141,22,1 +2020-05-24,Tillman,Oklahoma,40141,22,1 +2020-05-25,Tillman,Oklahoma,40141,23,1 +2020-05-26,Tillman,Oklahoma,40141,23,1 +2020-05-27,Tillman,Oklahoma,40141,23,1 +2020-05-28,Tillman,Oklahoma,40141,23,1 +2020-05-29,Tillman,Oklahoma,40141,23,1 +2020-05-30,Tillman,Oklahoma,40141,23,1 +2020-05-31,Tillman,Oklahoma,40141,23,1 +2020-06-01,Tillman,Oklahoma,40141,23,1 +2020-06-02,Tillman,Oklahoma,40141,23,1 +2020-06-03,Tillman,Oklahoma,40141,23,1 +2020-06-04,Tillman,Oklahoma,40141,23,1 +2020-06-05,Tillman,Oklahoma,40141,23,1 +2020-06-06,Tillman,Oklahoma,40141,23,1 +2020-06-07,Tillman,Oklahoma,40141,23,1 +2020-06-08,Tillman,Oklahoma,40141,23,1 +2020-06-09,Tillman,Oklahoma,40141,23,1 +2020-06-10,Tillman,Oklahoma,40141,23,1 +2020-06-11,Tillman,Oklahoma,40141,23,1 +2020-06-12,Tillman,Oklahoma,40141,23,1 +2020-06-13,Tillman,Oklahoma,40141,23,1 +2020-06-14,Tillman,Oklahoma,40141,23,1 +2020-06-15,Tillman,Oklahoma,40141,23,1 +2020-06-16,Tillman,Oklahoma,40141,23,1 +2020-06-17,Tillman,Oklahoma,40141,23,1 +2020-06-18,Tillman,Oklahoma,40141,23,1 +2020-06-19,Tillman,Oklahoma,40141,23,1 +2020-06-20,Tillman,Oklahoma,40141,23,1 +2020-06-21,Tillman,Oklahoma,40141,23,1 +2020-06-22,Tillman,Oklahoma,40141,23,1 +2020-06-23,Tillman,Oklahoma,40141,23,1 +2020-06-24,Tillman,Oklahoma,40141,23,1 +2020-06-25,Tillman,Oklahoma,40141,23,1 +2020-06-26,Tillman,Oklahoma,40141,23,1 +2020-06-27,Tillman,Oklahoma,40141,23,1 +2020-06-28,Tillman,Oklahoma,40141,23,1 +2020-06-29,Tillman,Oklahoma,40141,23,1 +2020-06-30,Tillman,Oklahoma,40141,23,1 +2020-07-01,Tillman,Oklahoma,40141,23,1 +2020-07-02,Tillman,Oklahoma,40141,24,1 +2020-07-03,Tillman,Oklahoma,40141,24,1 +2020-07-04,Tillman,Oklahoma,40141,25,1 +2020-07-05,Tillman,Oklahoma,40141,25,1 +2020-07-06,Tillman,Oklahoma,40141,25,1 +2020-07-07,Tillman,Oklahoma,40141,25,1 +2020-07-08,Tillman,Oklahoma,40141,25,1 +2020-07-09,Tillman,Oklahoma,40141,26,1 +2020-03-06,Tulsa,Oklahoma,40143,1,0 +2020-03-07,Tulsa,Oklahoma,40143,1,0 +2020-03-08,Tulsa,Oklahoma,40143,1,0 +2020-03-09,Tulsa,Oklahoma,40143,1,0 +2020-03-10,Tulsa,Oklahoma,40143,2,0 +2020-03-11,Tulsa,Oklahoma,40143,2,0 +2020-03-12,Tulsa,Oklahoma,40143,2,0 +2020-03-13,Tulsa,Oklahoma,40143,2,0 +2020-03-14,Tulsa,Oklahoma,40143,2,0 +2020-03-15,Tulsa,Oklahoma,40143,3,0 +2020-03-16,Tulsa,Oklahoma,40143,3,0 +2020-03-17,Tulsa,Oklahoma,40143,4,0 +2020-03-18,Tulsa,Oklahoma,40143,4,0 +2020-03-19,Tulsa,Oklahoma,40143,5,1 +2020-03-20,Tulsa,Oklahoma,40143,5,1 +2020-03-21,Tulsa,Oklahoma,40143,5,1 +2020-03-22,Tulsa,Oklahoma,40143,6,1 +2020-03-23,Tulsa,Oklahoma,40143,11,1 +2020-03-24,Tulsa,Oklahoma,40143,12,1 +2020-03-25,Tulsa,Oklahoma,40143,27,1 +2020-03-26,Tulsa,Oklahoma,40143,41,1 +2020-03-27,Tulsa,Oklahoma,40143,49,1 +2020-03-28,Tulsa,Oklahoma,40143,57,3 +2020-03-29,Tulsa,Oklahoma,40143,61,3 +2020-03-30,Tulsa,Oklahoma,40143,65,3 +2020-03-31,Tulsa,Oklahoma,40143,83,3 +2020-04-01,Tulsa,Oklahoma,40143,115,3 +2020-04-02,Tulsa,Oklahoma,40143,151,5 +2020-04-03,Tulsa,Oklahoma,40143,175,8 +2020-04-04,Tulsa,Oklahoma,40143,221,8 +2020-04-05,Tulsa,Oklahoma,40143,240,8 +2020-04-06,Tulsa,Oklahoma,40143,249,8 +2020-04-07,Tulsa,Oklahoma,40143,273,14 +2020-04-08,Tulsa,Oklahoma,40143,293,16 +2020-04-09,Tulsa,Oklahoma,40143,308,16 +2020-04-10,Tulsa,Oklahoma,40143,314,16 +2020-04-11,Tulsa,Oklahoma,40143,323,16 +2020-04-12,Tulsa,Oklahoma,40143,332,18 +2020-04-13,Tulsa,Oklahoma,40143,337,18 +2020-04-14,Tulsa,Oklahoma,40143,358,19 +2020-04-15,Tulsa,Oklahoma,40143,362,21 +2020-04-16,Tulsa,Oklahoma,40143,376,21 +2020-04-17,Tulsa,Oklahoma,40143,390,22 +2020-04-18,Tulsa,Oklahoma,40143,409,22 +2020-04-19,Tulsa,Oklahoma,40143,411,22 +2020-04-20,Tulsa,Oklahoma,40143,422,22 +2020-04-21,Tulsa,Oklahoma,40143,432,25 +2020-04-22,Tulsa,Oklahoma,40143,437,25 +2020-04-23,Tulsa,Oklahoma,40143,454,26 +2020-04-24,Tulsa,Oklahoma,40143,467,27 +2020-04-25,Tulsa,Oklahoma,40143,479,27 +2020-04-26,Tulsa,Oklahoma,40143,491,27 +2020-04-27,Tulsa,Oklahoma,40143,490,28 +2020-04-28,Tulsa,Oklahoma,40143,506,32 +2020-04-29,Tulsa,Oklahoma,40143,522,33 +2020-04-30,Tulsa,Oklahoma,40143,567,33 +2020-05-01,Tulsa,Oklahoma,40143,584,33 +2020-05-02,Tulsa,Oklahoma,40143,607,34 +2020-05-03,Tulsa,Oklahoma,40143,628,34 +2020-05-04,Tulsa,Oklahoma,40143,639,34 +2020-05-05,Tulsa,Oklahoma,40143,645,36 +2020-05-06,Tulsa,Oklahoma,40143,653,36 +2020-05-07,Tulsa,Oklahoma,40143,676,36 +2020-05-08,Tulsa,Oklahoma,40143,684,36 +2020-05-09,Tulsa,Oklahoma,40143,695,36 +2020-05-10,Tulsa,Oklahoma,40143,700,36 +2020-05-11,Tulsa,Oklahoma,40143,708,36 +2020-05-12,Tulsa,Oklahoma,40143,717,37 +2020-05-13,Tulsa,Oklahoma,40143,734,37 +2020-05-14,Tulsa,Oklahoma,40143,743,37 +2020-05-15,Tulsa,Oklahoma,40143,752,37 +2020-05-16,Tulsa,Oklahoma,40143,776,37 +2020-05-17,Tulsa,Oklahoma,40143,781,37 +2020-05-18,Tulsa,Oklahoma,40143,787,37 +2020-05-19,Tulsa,Oklahoma,40143,802,37 +2020-05-20,Tulsa,Oklahoma,40143,814,39 +2020-05-21,Tulsa,Oklahoma,40143,852,40 +2020-05-22,Tulsa,Oklahoma,40143,890,41 +2020-05-23,Tulsa,Oklahoma,40143,903,44 +2020-05-24,Tulsa,Oklahoma,40143,915,44 +2020-05-25,Tulsa,Oklahoma,40143,926,44 +2020-05-26,Tulsa,Oklahoma,40143,935,47 +2020-05-27,Tulsa,Oklahoma,40143,958,49 +2020-05-28,Tulsa,Oklahoma,40143,960,49 +2020-05-29,Tulsa,Oklahoma,40143,983,51 +2020-05-30,Tulsa,Oklahoma,40143,998,54 +2020-05-31,Tulsa,Oklahoma,40143,1014,54 +2020-06-01,Tulsa,Oklahoma,40143,1022,54 +2020-06-02,Tulsa,Oklahoma,40143,1057,57 +2020-06-03,Tulsa,Oklahoma,40143,1087,57 +2020-06-04,Tulsa,Oklahoma,40143,1109,59 +2020-06-05,Tulsa,Oklahoma,40143,1134,59 +2020-06-06,Tulsa,Oklahoma,40143,1165,59 +2020-06-07,Tulsa,Oklahoma,40143,1188,60 +2020-06-08,Tulsa,Oklahoma,40143,1196,60 +2020-06-09,Tulsa,Oklahoma,40143,1261,61 +2020-06-10,Tulsa,Oklahoma,40143,1308,61 +2020-06-11,Tulsa,Oklahoma,40143,1372,62 +2020-06-12,Tulsa,Oklahoma,40143,1443,62 +2020-06-13,Tulsa,Oklahoma,40143,1525,62 +2020-06-14,Tulsa,Oklahoma,40143,1564,62 +2020-06-15,Tulsa,Oklahoma,40143,1653,62 +2020-06-16,Tulsa,Oklahoma,40143,1729,64 +2020-06-17,Tulsa,Oklahoma,40143,1825,64 +2020-06-18,Tulsa,Oklahoma,40143,1945,65 +2020-06-19,Tulsa,Oklahoma,40143,2070,65 +2020-06-20,Tulsa,Oklahoma,40143,2206,66 +2020-06-21,Tulsa,Oklahoma,40143,2349,66 +2020-06-22,Tulsa,Oklahoma,40143,2392,66 +2020-06-23,Tulsa,Oklahoma,40143,2483,66 +2020-06-24,Tulsa,Oklahoma,40143,2742,66 +2020-06-25,Tulsa,Oklahoma,40143,2949,66 +2020-06-26,Tulsa,Oklahoma,40143,3103,66 +2020-06-27,Tulsa,Oklahoma,40143,3178,67 +2020-06-28,Tulsa,Oklahoma,40143,3251,67 +2020-06-29,Tulsa,Oklahoma,40143,3304,67 +2020-06-30,Tulsa,Oklahoma,40143,3424,67 +2020-07-01,Tulsa,Oklahoma,40143,3544,69 +2020-07-02,Tulsa,Oklahoma,40143,3680,70 +2020-07-03,Tulsa,Oklahoma,40143,3792,72 +2020-07-04,Tulsa,Oklahoma,40143,3974,72 +2020-07-05,Tulsa,Oklahoma,40143,4035,72 +2020-07-06,Tulsa,Oklahoma,40143,4104,72 +2020-07-07,Tulsa,Oklahoma,40143,4365,71 +2020-07-08,Tulsa,Oklahoma,40143,4571,72 +2020-07-09,Tulsa,Oklahoma,40143,4693,72 +2020-03-24,Wagoner,Oklahoma,40145,1,0 +2020-03-25,Wagoner,Oklahoma,40145,3,0 +2020-03-26,Wagoner,Oklahoma,40145,6,0 +2020-03-27,Wagoner,Oklahoma,40145,8,0 +2020-03-28,Wagoner,Oklahoma,40145,8,1 +2020-03-29,Wagoner,Oklahoma,40145,8,1 +2020-03-30,Wagoner,Oklahoma,40145,8,1 +2020-03-31,Wagoner,Oklahoma,40145,10,2 +2020-04-01,Wagoner,Oklahoma,40145,15,2 +2020-04-02,Wagoner,Oklahoma,40145,24,2 +2020-04-03,Wagoner,Oklahoma,40145,30,2 +2020-04-04,Wagoner,Oklahoma,40145,40,2 +2020-04-05,Wagoner,Oklahoma,40145,47,2 +2020-04-06,Wagoner,Oklahoma,40145,49,2 +2020-04-07,Wagoner,Oklahoma,40145,55,3 +2020-04-08,Wagoner,Oklahoma,40145,57,4 +2020-04-09,Wagoner,Oklahoma,40145,57,4 +2020-04-10,Wagoner,Oklahoma,40145,65,4 +2020-04-11,Wagoner,Oklahoma,40145,67,4 +2020-04-12,Wagoner,Oklahoma,40145,69,4 +2020-04-13,Wagoner,Oklahoma,40145,73,4 +2020-04-14,Wagoner,Oklahoma,40145,98,5 +2020-04-15,Wagoner,Oklahoma,40145,102,7 +2020-04-16,Wagoner,Oklahoma,40145,107,7 +2020-04-17,Wagoner,Oklahoma,40145,107,7 +2020-04-18,Wagoner,Oklahoma,40145,108,8 +2020-04-19,Wagoner,Oklahoma,40145,108,8 +2020-04-20,Wagoner,Oklahoma,40145,108,8 +2020-04-21,Wagoner,Oklahoma,40145,112,12 +2020-04-22,Wagoner,Oklahoma,40145,112,12 +2020-04-23,Wagoner,Oklahoma,40145,112,12 +2020-04-24,Wagoner,Oklahoma,40145,114,13 +2020-04-25,Wagoner,Oklahoma,40145,114,13 +2020-04-26,Wagoner,Oklahoma,40145,114,14 +2020-04-27,Wagoner,Oklahoma,40145,115,14 +2020-04-28,Wagoner,Oklahoma,40145,116,14 +2020-04-29,Wagoner,Oklahoma,40145,118,14 +2020-04-30,Wagoner,Oklahoma,40145,119,15 +2020-05-01,Wagoner,Oklahoma,40145,120,15 +2020-05-02,Wagoner,Oklahoma,40145,122,15 +2020-05-03,Wagoner,Oklahoma,40145,122,15 +2020-05-04,Wagoner,Oklahoma,40145,122,15 +2020-05-05,Wagoner,Oklahoma,40145,123,15 +2020-05-06,Wagoner,Oklahoma,40145,123,15 +2020-05-07,Wagoner,Oklahoma,40145,125,17 +2020-05-08,Wagoner,Oklahoma,40145,126,17 +2020-05-09,Wagoner,Oklahoma,40145,125,17 +2020-05-10,Wagoner,Oklahoma,40145,129,17 +2020-05-11,Wagoner,Oklahoma,40145,129,17 +2020-05-12,Wagoner,Oklahoma,40145,130,17 +2020-05-13,Wagoner,Oklahoma,40145,131,17 +2020-05-14,Wagoner,Oklahoma,40145,131,17 +2020-05-15,Wagoner,Oklahoma,40145,133,17 +2020-05-16,Wagoner,Oklahoma,40145,136,17 +2020-05-17,Wagoner,Oklahoma,40145,137,17 +2020-05-18,Wagoner,Oklahoma,40145,137,17 +2020-05-19,Wagoner,Oklahoma,40145,137,17 +2020-05-20,Wagoner,Oklahoma,40145,137,17 +2020-05-21,Wagoner,Oklahoma,40145,140,17 +2020-05-22,Wagoner,Oklahoma,40145,143,17 +2020-05-23,Wagoner,Oklahoma,40145,145,17 +2020-05-24,Wagoner,Oklahoma,40145,148,17 +2020-05-25,Wagoner,Oklahoma,40145,148,17 +2020-05-26,Wagoner,Oklahoma,40145,149,17 +2020-05-27,Wagoner,Oklahoma,40145,150,17 +2020-05-28,Wagoner,Oklahoma,40145,150,17 +2020-05-29,Wagoner,Oklahoma,40145,150,17 +2020-05-30,Wagoner,Oklahoma,40145,149,17 +2020-05-31,Wagoner,Oklahoma,40145,150,17 +2020-06-01,Wagoner,Oklahoma,40145,150,17 +2020-06-02,Wagoner,Oklahoma,40145,150,17 +2020-06-03,Wagoner,Oklahoma,40145,150,17 +2020-06-04,Wagoner,Oklahoma,40145,151,17 +2020-06-05,Wagoner,Oklahoma,40145,153,17 +2020-06-06,Wagoner,Oklahoma,40145,153,17 +2020-06-07,Wagoner,Oklahoma,40145,156,17 +2020-06-08,Wagoner,Oklahoma,40145,156,17 +2020-06-09,Wagoner,Oklahoma,40145,158,17 +2020-06-10,Wagoner,Oklahoma,40145,161,17 +2020-06-11,Wagoner,Oklahoma,40145,164,17 +2020-06-12,Wagoner,Oklahoma,40145,165,17 +2020-06-13,Wagoner,Oklahoma,40145,168,17 +2020-06-14,Wagoner,Oklahoma,40145,169,17 +2020-06-15,Wagoner,Oklahoma,40145,171,17 +2020-06-16,Wagoner,Oklahoma,40145,173,17 +2020-06-17,Wagoner,Oklahoma,40145,181,17 +2020-06-18,Wagoner,Oklahoma,40145,189,17 +2020-06-19,Wagoner,Oklahoma,40145,194,17 +2020-06-20,Wagoner,Oklahoma,40145,202,17 +2020-06-21,Wagoner,Oklahoma,40145,210,17 +2020-06-22,Wagoner,Oklahoma,40145,215,17 +2020-06-23,Wagoner,Oklahoma,40145,216,18 +2020-06-24,Wagoner,Oklahoma,40145,223,18 +2020-06-25,Wagoner,Oklahoma,40145,226,18 +2020-06-26,Wagoner,Oklahoma,40145,234,18 +2020-06-27,Wagoner,Oklahoma,40145,238,19 +2020-06-28,Wagoner,Oklahoma,40145,242,19 +2020-06-29,Wagoner,Oklahoma,40145,246,19 +2020-06-30,Wagoner,Oklahoma,40145,266,19 +2020-07-01,Wagoner,Oklahoma,40145,269,19 +2020-07-02,Wagoner,Oklahoma,40145,277,19 +2020-07-03,Wagoner,Oklahoma,40145,289,19 +2020-07-04,Wagoner,Oklahoma,40145,308,19 +2020-07-05,Wagoner,Oklahoma,40145,310,19 +2020-07-06,Wagoner,Oklahoma,40145,314,19 +2020-07-07,Wagoner,Oklahoma,40145,331,19 +2020-07-08,Wagoner,Oklahoma,40145,336,19 +2020-07-09,Wagoner,Oklahoma,40145,344,19 +2020-03-19,Washington,Oklahoma,40147,1,0 +2020-03-20,Washington,Oklahoma,40147,1,0 +2020-03-21,Washington,Oklahoma,40147,1,0 +2020-03-22,Washington,Oklahoma,40147,2,0 +2020-03-23,Washington,Oklahoma,40147,2,0 +2020-03-24,Washington,Oklahoma,40147,2,0 +2020-03-25,Washington,Oklahoma,40147,3,0 +2020-03-26,Washington,Oklahoma,40147,5,0 +2020-03-27,Washington,Oklahoma,40147,9,0 +2020-03-28,Washington,Oklahoma,40147,14,0 +2020-03-29,Washington,Oklahoma,40147,18,0 +2020-03-30,Washington,Oklahoma,40147,20,0 +2020-03-31,Washington,Oklahoma,40147,21,0 +2020-04-01,Washington,Oklahoma,40147,23,0 +2020-04-02,Washington,Oklahoma,40147,24,0 +2020-04-03,Washington,Oklahoma,40147,28,0 +2020-04-04,Washington,Oklahoma,40147,33,1 +2020-04-05,Washington,Oklahoma,40147,35,1 +2020-04-06,Washington,Oklahoma,40147,39,1 +2020-04-07,Washington,Oklahoma,40147,43,2 +2020-04-08,Washington,Oklahoma,40147,45,2 +2020-04-09,Washington,Oklahoma,40147,54,2 +2020-04-10,Washington,Oklahoma,40147,57,2 +2020-04-11,Washington,Oklahoma,40147,83,2 +2020-04-12,Washington,Oklahoma,40147,104,2 +2020-04-13,Washington,Oklahoma,40147,114,2 +2020-04-14,Washington,Oklahoma,40147,118,3 +2020-04-15,Washington,Oklahoma,40147,118,5 +2020-04-16,Washington,Oklahoma,40147,124,6 +2020-04-17,Washington,Oklahoma,40147,133,6 +2020-04-18,Washington,Oklahoma,40147,138,6 +2020-04-19,Washington,Oklahoma,40147,140,6 +2020-04-20,Washington,Oklahoma,40147,148,6 +2020-04-21,Washington,Oklahoma,40147,192,10 +2020-04-22,Washington,Oklahoma,40147,201,11 +2020-04-23,Washington,Oklahoma,40147,208,13 +2020-04-24,Washington,Oklahoma,40147,216,13 +2020-04-25,Washington,Oklahoma,40147,222,15 +2020-04-26,Washington,Oklahoma,40147,229,15 +2020-04-27,Washington,Oklahoma,40147,231,15 +2020-04-28,Washington,Oklahoma,40147,244,18 +2020-04-29,Washington,Oklahoma,40147,248,19 +2020-04-30,Washington,Oklahoma,40147,256,19 +2020-05-01,Washington,Oklahoma,40147,263,22 +2020-05-02,Washington,Oklahoma,40147,268,23 +2020-05-03,Washington,Oklahoma,40147,273,23 +2020-05-04,Washington,Oklahoma,40147,276,23 +2020-05-05,Washington,Oklahoma,40147,281,23 +2020-05-06,Washington,Oklahoma,40147,283,23 +2020-05-07,Washington,Oklahoma,40147,289,26 +2020-05-08,Washington,Oklahoma,40147,291,27 +2020-05-09,Washington,Oklahoma,40147,296,28 +2020-05-10,Washington,Oklahoma,40147,296,29 +2020-05-11,Washington,Oklahoma,40147,301,29 +2020-05-12,Washington,Oklahoma,40147,300,28 +2020-05-13,Washington,Oklahoma,40147,300,28 +2020-05-14,Washington,Oklahoma,40147,301,29 +2020-05-15,Washington,Oklahoma,40147,301,30 +2020-05-16,Washington,Oklahoma,40147,302,30 +2020-05-17,Washington,Oklahoma,40147,303,30 +2020-05-18,Washington,Oklahoma,40147,303,30 +2020-05-19,Washington,Oklahoma,40147,304,32 +2020-05-20,Washington,Oklahoma,40147,304,32 +2020-05-21,Washington,Oklahoma,40147,307,33 +2020-05-22,Washington,Oklahoma,40147,309,33 +2020-05-23,Washington,Oklahoma,40147,310,33 +2020-05-24,Washington,Oklahoma,40147,310,33 +2020-05-25,Washington,Oklahoma,40147,310,33 +2020-05-26,Washington,Oklahoma,40147,312,33 +2020-05-27,Washington,Oklahoma,40147,314,35 +2020-05-28,Washington,Oklahoma,40147,314,35 +2020-05-29,Washington,Oklahoma,40147,314,35 +2020-05-30,Washington,Oklahoma,40147,316,35 +2020-05-31,Washington,Oklahoma,40147,317,35 +2020-06-01,Washington,Oklahoma,40147,325,35 +2020-06-02,Washington,Oklahoma,40147,327,36 +2020-06-03,Washington,Oklahoma,40147,334,36 +2020-06-04,Washington,Oklahoma,40147,338,36 +2020-06-05,Washington,Oklahoma,40147,339,37 +2020-06-06,Washington,Oklahoma,40147,340,37 +2020-06-07,Washington,Oklahoma,40147,340,37 +2020-06-08,Washington,Oklahoma,40147,340,37 +2020-06-09,Washington,Oklahoma,40147,343,37 +2020-06-10,Washington,Oklahoma,40147,343,37 +2020-06-11,Washington,Oklahoma,40147,344,37 +2020-06-12,Washington,Oklahoma,40147,345,37 +2020-06-13,Washington,Oklahoma,40147,348,37 +2020-06-14,Washington,Oklahoma,40147,348,37 +2020-06-15,Washington,Oklahoma,40147,350,37 +2020-06-16,Washington,Oklahoma,40147,353,38 +2020-06-17,Washington,Oklahoma,40147,357,38 +2020-06-18,Washington,Oklahoma,40147,361,38 +2020-06-19,Washington,Oklahoma,40147,365,38 +2020-06-20,Washington,Oklahoma,40147,367,38 +2020-06-21,Washington,Oklahoma,40147,375,38 +2020-06-22,Washington,Oklahoma,40147,377,38 +2020-06-23,Washington,Oklahoma,40147,381,38 +2020-06-24,Washington,Oklahoma,40147,385,38 +2020-06-25,Washington,Oklahoma,40147,388,38 +2020-06-26,Washington,Oklahoma,40147,391,38 +2020-06-27,Washington,Oklahoma,40147,391,39 +2020-06-28,Washington,Oklahoma,40147,395,39 +2020-06-29,Washington,Oklahoma,40147,396,39 +2020-06-30,Washington,Oklahoma,40147,398,39 +2020-07-01,Washington,Oklahoma,40147,400,39 +2020-07-02,Washington,Oklahoma,40147,401,39 +2020-07-03,Washington,Oklahoma,40147,401,39 +2020-07-04,Washington,Oklahoma,40147,403,39 +2020-07-05,Washington,Oklahoma,40147,407,39 +2020-07-06,Washington,Oklahoma,40147,410,39 +2020-07-07,Washington,Oklahoma,40147,431,39 +2020-07-08,Washington,Oklahoma,40147,437,39 +2020-07-09,Washington,Oklahoma,40147,440,39 +2020-05-14,Washita,Oklahoma,40149,1,0 +2020-05-15,Washita,Oklahoma,40149,1,0 +2020-05-16,Washita,Oklahoma,40149,1,0 +2020-05-17,Washita,Oklahoma,40149,1,0 +2020-05-18,Washita,Oklahoma,40149,1,0 +2020-05-19,Washita,Oklahoma,40149,1,0 +2020-05-20,Washita,Oklahoma,40149,1,0 +2020-05-21,Washita,Oklahoma,40149,1,0 +2020-05-22,Washita,Oklahoma,40149,1,0 +2020-05-23,Washita,Oklahoma,40149,1,0 +2020-05-24,Washita,Oklahoma,40149,2,0 +2020-05-25,Washita,Oklahoma,40149,2,0 +2020-05-26,Washita,Oklahoma,40149,2,0 +2020-05-27,Washita,Oklahoma,40149,2,0 +2020-05-28,Washita,Oklahoma,40149,2,0 +2020-05-29,Washita,Oklahoma,40149,2,0 +2020-05-30,Washita,Oklahoma,40149,2,0 +2020-05-31,Washita,Oklahoma,40149,2,0 +2020-06-01,Washita,Oklahoma,40149,2,0 +2020-06-02,Washita,Oklahoma,40149,2,0 +2020-06-03,Washita,Oklahoma,40149,2,0 +2020-06-04,Washita,Oklahoma,40149,2,0 +2020-06-05,Washita,Oklahoma,40149,2,0 +2020-06-06,Washita,Oklahoma,40149,2,0 +2020-06-07,Washita,Oklahoma,40149,2,0 +2020-06-08,Washita,Oklahoma,40149,2,0 +2020-06-09,Washita,Oklahoma,40149,2,0 +2020-06-10,Washita,Oklahoma,40149,2,0 +2020-06-11,Washita,Oklahoma,40149,2,0 +2020-06-12,Washita,Oklahoma,40149,2,0 +2020-06-13,Washita,Oklahoma,40149,2,0 +2020-06-14,Washita,Oklahoma,40149,2,0 +2020-06-15,Washita,Oklahoma,40149,2,0 +2020-06-16,Washita,Oklahoma,40149,3,0 +2020-06-17,Washita,Oklahoma,40149,3,0 +2020-06-18,Washita,Oklahoma,40149,3,0 +2020-06-19,Washita,Oklahoma,40149,3,0 +2020-06-20,Washita,Oklahoma,40149,3,0 +2020-06-21,Washita,Oklahoma,40149,3,0 +2020-06-22,Washita,Oklahoma,40149,3,0 +2020-06-23,Washita,Oklahoma,40149,3,0 +2020-06-24,Washita,Oklahoma,40149,3,0 +2020-06-25,Washita,Oklahoma,40149,3,0 +2020-06-26,Washita,Oklahoma,40149,3,0 +2020-06-27,Washita,Oklahoma,40149,3,0 +2020-06-28,Washita,Oklahoma,40149,3,0 +2020-06-29,Washita,Oklahoma,40149,3,0 +2020-06-30,Washita,Oklahoma,40149,3,0 +2020-07-01,Washita,Oklahoma,40149,3,0 +2020-07-02,Washita,Oklahoma,40149,4,0 +2020-07-03,Washita,Oklahoma,40149,5,0 +2020-07-04,Washita,Oklahoma,40149,5,0 +2020-07-05,Washita,Oklahoma,40149,5,0 +2020-07-06,Washita,Oklahoma,40149,5,0 +2020-07-07,Washita,Oklahoma,40149,6,0 +2020-07-08,Washita,Oklahoma,40149,6,0 +2020-07-09,Washita,Oklahoma,40149,7,0 +2020-04-17,Woods,Oklahoma,40151,1,0 +2020-04-18,Woods,Oklahoma,40151,1,0 +2020-04-19,Woods,Oklahoma,40151,1,0 +2020-04-20,Woods,Oklahoma,40151,3,0 +2020-04-21,Woods,Oklahoma,40151,3,0 +2020-04-22,Woods,Oklahoma,40151,3,0 +2020-04-23,Woods,Oklahoma,40151,3,0 +2020-04-24,Woods,Oklahoma,40151,3,0 +2020-04-25,Woods,Oklahoma,40151,3,0 +2020-04-26,Woods,Oklahoma,40151,3,0 +2020-04-27,Woods,Oklahoma,40151,3,0 +2020-04-28,Woods,Oklahoma,40151,3,0 +2020-04-29,Woods,Oklahoma,40151,3,0 +2020-04-30,Woods,Oklahoma,40151,3,0 +2020-05-01,Woods,Oklahoma,40151,3,0 +2020-05-02,Woods,Oklahoma,40151,3,0 +2020-05-03,Woods,Oklahoma,40151,3,0 +2020-05-04,Woods,Oklahoma,40151,3,0 +2020-05-05,Woods,Oklahoma,40151,3,0 +2020-05-06,Woods,Oklahoma,40151,3,0 +2020-05-07,Woods,Oklahoma,40151,3,0 +2020-05-08,Woods,Oklahoma,40151,3,0 +2020-05-09,Woods,Oklahoma,40151,3,0 +2020-05-10,Woods,Oklahoma,40151,3,0 +2020-05-11,Woods,Oklahoma,40151,3,0 +2020-05-12,Woods,Oklahoma,40151,3,0 +2020-05-13,Woods,Oklahoma,40151,3,0 +2020-05-14,Woods,Oklahoma,40151,3,0 +2020-05-15,Woods,Oklahoma,40151,3,0 +2020-05-16,Woods,Oklahoma,40151,3,0 +2020-05-17,Woods,Oklahoma,40151,3,0 +2020-05-18,Woods,Oklahoma,40151,3,0 +2020-05-19,Woods,Oklahoma,40151,3,0 +2020-05-20,Woods,Oklahoma,40151,3,0 +2020-05-21,Woods,Oklahoma,40151,3,0 +2020-05-22,Woods,Oklahoma,40151,3,0 +2020-05-23,Woods,Oklahoma,40151,3,0 +2020-05-24,Woods,Oklahoma,40151,3,0 +2020-05-25,Woods,Oklahoma,40151,3,0 +2020-05-26,Woods,Oklahoma,40151,3,0 +2020-05-27,Woods,Oklahoma,40151,3,0 +2020-05-28,Woods,Oklahoma,40151,3,0 +2020-05-29,Woods,Oklahoma,40151,3,0 +2020-05-30,Woods,Oklahoma,40151,3,0 +2020-05-31,Woods,Oklahoma,40151,3,0 +2020-06-01,Woods,Oklahoma,40151,3,0 +2020-06-02,Woods,Oklahoma,40151,3,0 +2020-06-03,Woods,Oklahoma,40151,3,0 +2020-06-04,Woods,Oklahoma,40151,3,0 +2020-06-05,Woods,Oklahoma,40151,4,0 +2020-06-06,Woods,Oklahoma,40151,4,0 +2020-06-07,Woods,Oklahoma,40151,4,0 +2020-06-08,Woods,Oklahoma,40151,4,0 +2020-06-09,Woods,Oklahoma,40151,5,0 +2020-06-10,Woods,Oklahoma,40151,5,0 +2020-06-11,Woods,Oklahoma,40151,5,0 +2020-06-12,Woods,Oklahoma,40151,5,0 +2020-06-13,Woods,Oklahoma,40151,5,0 +2020-06-14,Woods,Oklahoma,40151,5,0 +2020-06-15,Woods,Oklahoma,40151,5,0 +2020-06-16,Woods,Oklahoma,40151,5,0 +2020-06-17,Woods,Oklahoma,40151,5,0 +2020-06-18,Woods,Oklahoma,40151,5,0 +2020-06-19,Woods,Oklahoma,40151,5,0 +2020-06-20,Woods,Oklahoma,40151,5,0 +2020-06-21,Woods,Oklahoma,40151,5,0 +2020-06-22,Woods,Oklahoma,40151,5,0 +2020-06-23,Woods,Oklahoma,40151,5,0 +2020-06-24,Woods,Oklahoma,40151,5,0 +2020-06-25,Woods,Oklahoma,40151,5,0 +2020-06-26,Woods,Oklahoma,40151,5,0 +2020-06-27,Woods,Oklahoma,40151,5,0 +2020-06-28,Woods,Oklahoma,40151,5,0 +2020-06-29,Woods,Oklahoma,40151,5,0 +2020-06-30,Woods,Oklahoma,40151,7,0 +2020-07-01,Woods,Oklahoma,40151,7,0 +2020-07-02,Woods,Oklahoma,40151,7,0 +2020-07-03,Woods,Oklahoma,40151,6,0 +2020-07-04,Woods,Oklahoma,40151,6,0 +2020-07-05,Woods,Oklahoma,40151,6,0 +2020-07-06,Woods,Oklahoma,40151,6,0 +2020-07-07,Woods,Oklahoma,40151,8,0 +2020-07-08,Woods,Oklahoma,40151,9,0 +2020-07-09,Woods,Oklahoma,40151,9,0 +2020-04-02,Woodward,Oklahoma,40153,1,0 +2020-04-03,Woodward,Oklahoma,40153,1,0 +2020-04-04,Woodward,Oklahoma,40153,1,0 +2020-04-05,Woodward,Oklahoma,40153,1,0 +2020-04-06,Woodward,Oklahoma,40153,1,0 +2020-04-07,Woodward,Oklahoma,40153,1,0 +2020-04-08,Woodward,Oklahoma,40153,1,0 +2020-04-09,Woodward,Oklahoma,40153,1,0 +2020-04-10,Woodward,Oklahoma,40153,1,0 +2020-04-11,Woodward,Oklahoma,40153,1,0 +2020-04-12,Woodward,Oklahoma,40153,1,0 +2020-04-13,Woodward,Oklahoma,40153,1,0 +2020-04-14,Woodward,Oklahoma,40153,1,0 +2020-04-15,Woodward,Oklahoma,40153,1,0 +2020-04-16,Woodward,Oklahoma,40153,1,0 +2020-04-17,Woodward,Oklahoma,40153,1,0 +2020-04-18,Woodward,Oklahoma,40153,1,0 +2020-04-19,Woodward,Oklahoma,40153,1,0 +2020-04-20,Woodward,Oklahoma,40153,1,0 +2020-04-21,Woodward,Oklahoma,40153,1,0 +2020-04-22,Woodward,Oklahoma,40153,1,0 +2020-04-23,Woodward,Oklahoma,40153,2,0 +2020-04-24,Woodward,Oklahoma,40153,1,0 +2020-04-25,Woodward,Oklahoma,40153,1,0 +2020-04-26,Woodward,Oklahoma,40153,1,0 +2020-04-27,Woodward,Oklahoma,40153,1,0 +2020-04-28,Woodward,Oklahoma,40153,1,0 +2020-04-29,Woodward,Oklahoma,40153,1,0 +2020-04-30,Woodward,Oklahoma,40153,1,0 +2020-05-01,Woodward,Oklahoma,40153,1,0 +2020-05-02,Woodward,Oklahoma,40153,1,0 +2020-05-03,Woodward,Oklahoma,40153,1,0 +2020-05-04,Woodward,Oklahoma,40153,1,0 +2020-05-05,Woodward,Oklahoma,40153,1,0 +2020-05-06,Woodward,Oklahoma,40153,1,0 +2020-05-07,Woodward,Oklahoma,40153,1,0 +2020-05-08,Woodward,Oklahoma,40153,1,0 +2020-05-09,Woodward,Oklahoma,40153,1,0 +2020-05-10,Woodward,Oklahoma,40153,1,0 +2020-05-11,Woodward,Oklahoma,40153,1,0 +2020-05-12,Woodward,Oklahoma,40153,1,0 +2020-05-13,Woodward,Oklahoma,40153,1,0 +2020-05-14,Woodward,Oklahoma,40153,1,0 +2020-05-15,Woodward,Oklahoma,40153,1,0 +2020-05-16,Woodward,Oklahoma,40153,1,0 +2020-05-17,Woodward,Oklahoma,40153,1,0 +2020-05-18,Woodward,Oklahoma,40153,1,0 +2020-05-19,Woodward,Oklahoma,40153,1,0 +2020-05-20,Woodward,Oklahoma,40153,1,0 +2020-05-21,Woodward,Oklahoma,40153,3,0 +2020-05-22,Woodward,Oklahoma,40153,3,0 +2020-05-23,Woodward,Oklahoma,40153,3,0 +2020-05-24,Woodward,Oklahoma,40153,4,0 +2020-05-25,Woodward,Oklahoma,40153,4,0 +2020-05-26,Woodward,Oklahoma,40153,4,0 +2020-05-27,Woodward,Oklahoma,40153,4,0 +2020-05-28,Woodward,Oklahoma,40153,4,0 +2020-05-29,Woodward,Oklahoma,40153,4,0 +2020-05-30,Woodward,Oklahoma,40153,5,0 +2020-05-31,Woodward,Oklahoma,40153,5,0 +2020-06-01,Woodward,Oklahoma,40153,5,0 +2020-06-02,Woodward,Oklahoma,40153,5,0 +2020-06-03,Woodward,Oklahoma,40153,5,0 +2020-06-04,Woodward,Oklahoma,40153,5,0 +2020-06-05,Woodward,Oklahoma,40153,5,0 +2020-06-06,Woodward,Oklahoma,40153,5,0 +2020-06-07,Woodward,Oklahoma,40153,7,0 +2020-06-08,Woodward,Oklahoma,40153,7,0 +2020-06-09,Woodward,Oklahoma,40153,8,0 +2020-06-10,Woodward,Oklahoma,40153,8,0 +2020-06-11,Woodward,Oklahoma,40153,9,0 +2020-06-12,Woodward,Oklahoma,40153,9,0 +2020-06-13,Woodward,Oklahoma,40153,9,0 +2020-06-14,Woodward,Oklahoma,40153,11,0 +2020-06-15,Woodward,Oklahoma,40153,11,0 +2020-06-16,Woodward,Oklahoma,40153,11,0 +2020-06-17,Woodward,Oklahoma,40153,11,0 +2020-06-18,Woodward,Oklahoma,40153,11,0 +2020-06-19,Woodward,Oklahoma,40153,12,0 +2020-06-20,Woodward,Oklahoma,40153,12,0 +2020-06-21,Woodward,Oklahoma,40153,12,0 +2020-06-22,Woodward,Oklahoma,40153,12,0 +2020-06-23,Woodward,Oklahoma,40153,12,0 +2020-06-24,Woodward,Oklahoma,40153,12,0 +2020-06-25,Woodward,Oklahoma,40153,12,0 +2020-06-26,Woodward,Oklahoma,40153,12,0 +2020-06-27,Woodward,Oklahoma,40153,12,0 +2020-06-28,Woodward,Oklahoma,40153,12,0 +2020-06-29,Woodward,Oklahoma,40153,12,0 +2020-06-30,Woodward,Oklahoma,40153,12,0 +2020-07-01,Woodward,Oklahoma,40153,12,0 +2020-07-02,Woodward,Oklahoma,40153,12,0 +2020-07-03,Woodward,Oklahoma,40153,12,0 +2020-07-04,Woodward,Oklahoma,40153,13,0 +2020-07-05,Woodward,Oklahoma,40153,13,0 +2020-07-06,Woodward,Oklahoma,40153,15,0 +2020-07-07,Woodward,Oklahoma,40153,15,0 +2020-07-08,Woodward,Oklahoma,40153,15,0 +2020-07-09,Woodward,Oklahoma,40153,15,0 +2020-05-06,Baker,Oregon,41001,1,0 +2020-05-07,Baker,Oregon,41001,1,0 +2020-05-08,Baker,Oregon,41001,1,0 +2020-05-09,Baker,Oregon,41001,1,0 +2020-05-10,Baker,Oregon,41001,1,0 +2020-05-11,Baker,Oregon,41001,1,0 +2020-05-12,Baker,Oregon,41001,1,0 +2020-05-13,Baker,Oregon,41001,1,0 +2020-05-14,Baker,Oregon,41001,1,0 +2020-05-15,Baker,Oregon,41001,3,0 +2020-05-16,Baker,Oregon,41001,1,0 +2020-05-17,Baker,Oregon,41001,1,0 +2020-05-18,Baker,Oregon,41001,1,0 +2020-05-19,Baker,Oregon,41001,1,0 +2020-05-20,Baker,Oregon,41001,1,0 +2020-05-21,Baker,Oregon,41001,1,0 +2020-05-22,Baker,Oregon,41001,1,0 +2020-05-23,Baker,Oregon,41001,1,0 +2020-05-24,Baker,Oregon,41001,1,0 +2020-05-25,Baker,Oregon,41001,1,0 +2020-05-26,Baker,Oregon,41001,1,0 +2020-05-27,Baker,Oregon,41001,1,0 +2020-05-28,Baker,Oregon,41001,1,0 +2020-05-29,Baker,Oregon,41001,1,0 +2020-05-30,Baker,Oregon,41001,1,0 +2020-05-31,Baker,Oregon,41001,1,0 +2020-06-01,Baker,Oregon,41001,1,0 +2020-06-02,Baker,Oregon,41001,1,0 +2020-06-03,Baker,Oregon,41001,1,0 +2020-06-04,Baker,Oregon,41001,1,0 +2020-06-05,Baker,Oregon,41001,1,0 +2020-06-06,Baker,Oregon,41001,1,0 +2020-06-07,Baker,Oregon,41001,1,0 +2020-06-08,Baker,Oregon,41001,1,0 +2020-06-09,Baker,Oregon,41001,1,0 +2020-06-10,Baker,Oregon,41001,1,0 +2020-06-11,Baker,Oregon,41001,1,0 +2020-06-12,Baker,Oregon,41001,1,0 +2020-06-13,Baker,Oregon,41001,1,0 +2020-06-14,Baker,Oregon,41001,1,0 +2020-06-15,Baker,Oregon,41001,1,0 +2020-06-16,Baker,Oregon,41001,1,0 +2020-06-17,Baker,Oregon,41001,1,0 +2020-06-18,Baker,Oregon,41001,1,0 +2020-06-19,Baker,Oregon,41001,1,0 +2020-06-20,Baker,Oregon,41001,1,0 +2020-06-21,Baker,Oregon,41001,1,0 +2020-06-22,Baker,Oregon,41001,1,0 +2020-06-23,Baker,Oregon,41001,1,0 +2020-06-24,Baker,Oregon,41001,1,0 +2020-06-25,Baker,Oregon,41001,1,0 +2020-06-26,Baker,Oregon,41001,1,0 +2020-06-27,Baker,Oregon,41001,1,0 +2020-06-28,Baker,Oregon,41001,1,0 +2020-06-29,Baker,Oregon,41001,1,0 +2020-06-30,Baker,Oregon,41001,1,0 +2020-07-01,Baker,Oregon,41001,4,0 +2020-07-02,Baker,Oregon,41001,4,0 +2020-07-03,Baker,Oregon,41001,4,0 +2020-07-04,Baker,Oregon,41001,5,0 +2020-07-05,Baker,Oregon,41001,5,0 +2020-07-06,Baker,Oregon,41001,5,0 +2020-07-07,Baker,Oregon,41001,5,0 +2020-07-08,Baker,Oregon,41001,8,0 +2020-07-09,Baker,Oregon,41001,8,0 +2020-03-16,Benton,Oregon,41003,1,0 +2020-03-17,Benton,Oregon,41003,1,0 +2020-03-18,Benton,Oregon,41003,2,0 +2020-03-19,Benton,Oregon,41003,2,0 +2020-03-20,Benton,Oregon,41003,2,0 +2020-03-21,Benton,Oregon,41003,2,0 +2020-03-22,Benton,Oregon,41003,4,0 +2020-03-23,Benton,Oregon,41003,4,0 +2020-03-24,Benton,Oregon,41003,4,0 +2020-03-25,Benton,Oregon,41003,6,0 +2020-03-26,Benton,Oregon,41003,6,0 +2020-03-27,Benton,Oregon,41003,6,0 +2020-03-28,Benton,Oregon,41003,9,0 +2020-03-29,Benton,Oregon,41003,9,0 +2020-03-30,Benton,Oregon,41003,10,0 +2020-03-31,Benton,Oregon,41003,12,1 +2020-04-01,Benton,Oregon,41003,13,1 +2020-04-02,Benton,Oregon,41003,15,1 +2020-04-03,Benton,Oregon,41003,17,1 +2020-04-04,Benton,Oregon,41003,19,1 +2020-04-05,Benton,Oregon,41003,19,1 +2020-04-06,Benton,Oregon,41003,21,1 +2020-04-07,Benton,Oregon,41003,21,1 +2020-04-08,Benton,Oregon,41003,21,1 +2020-04-09,Benton,Oregon,41003,21,2 +2020-04-10,Benton,Oregon,41003,21,2 +2020-04-11,Benton,Oregon,41003,22,2 +2020-04-12,Benton,Oregon,41003,23,2 +2020-04-13,Benton,Oregon,41003,23,2 +2020-04-14,Benton,Oregon,41003,24,3 +2020-04-15,Benton,Oregon,41003,25,3 +2020-04-16,Benton,Oregon,41003,27,4 +2020-04-17,Benton,Oregon,41003,27,4 +2020-04-18,Benton,Oregon,41003,27,4 +2020-04-19,Benton,Oregon,41003,27,5 +2020-04-20,Benton,Oregon,41003,28,5 +2020-04-21,Benton,Oregon,41003,27,5 +2020-04-22,Benton,Oregon,41003,27,5 +2020-04-23,Benton,Oregon,41003,27,5 +2020-04-24,Benton,Oregon,41003,27,5 +2020-04-25,Benton,Oregon,41003,28,5 +2020-04-26,Benton,Oregon,41003,29,5 +2020-04-27,Benton,Oregon,41003,29,5 +2020-04-28,Benton,Oregon,41003,29,5 +2020-04-29,Benton,Oregon,41003,29,5 +2020-04-30,Benton,Oregon,41003,30,5 +2020-05-01,Benton,Oregon,41003,32,5 +2020-05-02,Benton,Oregon,41003,32,5 +2020-05-03,Benton,Oregon,41003,32,5 +2020-05-04,Benton,Oregon,41003,36,5 +2020-05-05,Benton,Oregon,41003,39,5 +2020-05-06,Benton,Oregon,41003,40,5 +2020-05-07,Benton,Oregon,41003,44,5 +2020-05-08,Benton,Oregon,41003,43,5 +2020-05-09,Benton,Oregon,41003,44,5 +2020-05-10,Benton,Oregon,41003,47,5 +2020-05-11,Benton,Oregon,41003,49,5 +2020-05-12,Benton,Oregon,41003,50,5 +2020-05-13,Benton,Oregon,41003,50,5 +2020-05-14,Benton,Oregon,41003,50,5 +2020-05-15,Benton,Oregon,41003,51,5 +2020-05-16,Benton,Oregon,41003,51,5 +2020-05-17,Benton,Oregon,41003,51,5 +2020-05-18,Benton,Oregon,41003,54,5 +2020-05-19,Benton,Oregon,41003,54,5 +2020-05-20,Benton,Oregon,41003,55,5 +2020-05-21,Benton,Oregon,41003,55,5 +2020-05-22,Benton,Oregon,41003,55,5 +2020-05-23,Benton,Oregon,41003,55,5 +2020-05-24,Benton,Oregon,41003,55,5 +2020-05-25,Benton,Oregon,41003,55,5 +2020-05-26,Benton,Oregon,41003,55,5 +2020-05-27,Benton,Oregon,41003,55,5 +2020-05-28,Benton,Oregon,41003,55,5 +2020-05-29,Benton,Oregon,41003,55,5 +2020-05-30,Benton,Oregon,41003,55,5 +2020-05-31,Benton,Oregon,41003,55,5 +2020-06-01,Benton,Oregon,41003,55,5 +2020-06-02,Benton,Oregon,41003,56,5 +2020-06-03,Benton,Oregon,41003,57,5 +2020-06-04,Benton,Oregon,41003,57,5 +2020-06-05,Benton,Oregon,41003,62,5 +2020-06-06,Benton,Oregon,41003,62,5 +2020-06-07,Benton,Oregon,41003,62,5 +2020-06-08,Benton,Oregon,41003,62,5 +2020-06-09,Benton,Oregon,41003,63,5 +2020-06-10,Benton,Oregon,41003,63,5 +2020-06-11,Benton,Oregon,41003,63,5 +2020-06-12,Benton,Oregon,41003,63,5 +2020-06-13,Benton,Oregon,41003,63,5 +2020-06-14,Benton,Oregon,41003,63,5 +2020-06-15,Benton,Oregon,41003,63,5 +2020-06-16,Benton,Oregon,41003,63,5 +2020-06-17,Benton,Oregon,41003,66,5 +2020-06-18,Benton,Oregon,41003,66,5 +2020-06-19,Benton,Oregon,41003,66,5 +2020-06-20,Benton,Oregon,41003,66,5 +2020-06-21,Benton,Oregon,41003,67,5 +2020-06-22,Benton,Oregon,41003,69,5 +2020-06-23,Benton,Oregon,41003,68,5 +2020-06-24,Benton,Oregon,41003,70,5 +2020-06-25,Benton,Oregon,41003,76,5 +2020-06-26,Benton,Oregon,41003,80,5 +2020-06-27,Benton,Oregon,41003,82,5 +2020-06-28,Benton,Oregon,41003,82,5 +2020-06-29,Benton,Oregon,41003,82,5 +2020-06-30,Benton,Oregon,41003,82,5 +2020-07-01,Benton,Oregon,41003,84,5 +2020-07-02,Benton,Oregon,41003,83,5 +2020-07-03,Benton,Oregon,41003,91,5 +2020-07-04,Benton,Oregon,41003,93,5 +2020-07-05,Benton,Oregon,41003,94,5 +2020-07-06,Benton,Oregon,41003,95,5 +2020-07-07,Benton,Oregon,41003,97,5 +2020-07-08,Benton,Oregon,41003,98,6 +2020-07-09,Benton,Oregon,41003,99,6 +2020-03-12,Clackamas,Oregon,41005,1,0 +2020-03-13,Clackamas,Oregon,41005,1,0 +2020-03-14,Clackamas,Oregon,41005,1,0 +2020-03-15,Clackamas,Oregon,41005,1,0 +2020-03-16,Clackamas,Oregon,41005,2,0 +2020-03-17,Clackamas,Oregon,41005,6,0 +2020-03-18,Clackamas,Oregon,41005,6,0 +2020-03-19,Clackamas,Oregon,41005,6,0 +2020-03-20,Clackamas,Oregon,41005,10,0 +2020-03-21,Clackamas,Oregon,41005,11,0 +2020-03-22,Clackamas,Oregon,41005,12,0 +2020-03-23,Clackamas,Oregon,41005,14,0 +2020-03-24,Clackamas,Oregon,41005,17,1 +2020-03-25,Clackamas,Oregon,41005,21,2 +2020-03-26,Clackamas,Oregon,41005,21,2 +2020-03-27,Clackamas,Oregon,41005,31,2 +2020-03-28,Clackamas,Oregon,41005,36,2 +2020-03-29,Clackamas,Oregon,41005,39,2 +2020-03-30,Clackamas,Oregon,41005,40,3 +2020-03-31,Clackamas,Oregon,41005,50,3 +2020-04-01,Clackamas,Oregon,41005,56,3 +2020-04-02,Clackamas,Oregon,41005,61,3 +2020-04-03,Clackamas,Oregon,41005,66,3 +2020-04-04,Clackamas,Oregon,41005,78,3 +2020-04-05,Clackamas,Oregon,41005,84,3 +2020-04-06,Clackamas,Oregon,41005,90,3 +2020-04-07,Clackamas,Oregon,41005,97,3 +2020-04-08,Clackamas,Oregon,41005,103,3 +2020-04-09,Clackamas,Oregon,41005,109,3 +2020-04-10,Clackamas,Oregon,41005,116,3 +2020-04-11,Clackamas,Oregon,41005,121,3 +2020-04-12,Clackamas,Oregon,41005,125,3 +2020-04-13,Clackamas,Oregon,41005,132,3 +2020-04-14,Clackamas,Oregon,41005,135,3 +2020-04-15,Clackamas,Oregon,41005,142,3 +2020-04-16,Clackamas,Oregon,41005,150,3 +2020-04-17,Clackamas,Oregon,41005,153,4 +2020-04-18,Clackamas,Oregon,41005,154,5 +2020-04-19,Clackamas,Oregon,41005,161,5 +2020-04-20,Clackamas,Oregon,41005,171,5 +2020-04-21,Clackamas,Oregon,41005,173,5 +2020-04-22,Clackamas,Oregon,41005,183,5 +2020-04-23,Clackamas,Oregon,41005,191,6 +2020-04-24,Clackamas,Oregon,41005,196,6 +2020-04-25,Clackamas,Oregon,41005,201,6 +2020-04-26,Clackamas,Oregon,41005,204,6 +2020-04-27,Clackamas,Oregon,41005,204,6 +2020-04-28,Clackamas,Oregon,41005,205,7 +2020-04-29,Clackamas,Oregon,41005,206,7 +2020-04-30,Clackamas,Oregon,41005,214,7 +2020-05-01,Clackamas,Oregon,41005,222,7 +2020-05-02,Clackamas,Oregon,41005,224,7 +2020-05-03,Clackamas,Oregon,41005,225,7 +2020-05-04,Clackamas,Oregon,41005,226,7 +2020-05-05,Clackamas,Oregon,41005,231,7 +2020-05-06,Clackamas,Oregon,41005,235,7 +2020-05-07,Clackamas,Oregon,41005,241,8 +2020-05-08,Clackamas,Oregon,41005,250,8 +2020-05-09,Clackamas,Oregon,41005,256,9 +2020-05-10,Clackamas,Oregon,41005,266,9 +2020-05-11,Clackamas,Oregon,41005,268,9 +2020-05-12,Clackamas,Oregon,41005,274,9 +2020-05-13,Clackamas,Oregon,41005,274,9 +2020-05-14,Clackamas,Oregon,41005,271,9 +2020-05-15,Clackamas,Oregon,41005,277,9 +2020-05-16,Clackamas,Oregon,41005,281,9 +2020-05-17,Clackamas,Oregon,41005,281,9 +2020-05-18,Clackamas,Oregon,41005,286,9 +2020-05-19,Clackamas,Oregon,41005,284,9 +2020-05-20,Clackamas,Oregon,41005,284,9 +2020-05-21,Clackamas,Oregon,41005,284,9 +2020-05-22,Clackamas,Oregon,41005,289,9 +2020-05-23,Clackamas,Oregon,41005,290,9 +2020-05-24,Clackamas,Oregon,41005,290,10 +2020-05-25,Clackamas,Oregon,41005,294,10 +2020-05-26,Clackamas,Oregon,41005,296,10 +2020-05-27,Clackamas,Oregon,41005,300,10 +2020-05-28,Clackamas,Oregon,41005,304,11 +2020-05-29,Clackamas,Oregon,41005,305,11 +2020-05-30,Clackamas,Oregon,41005,306,11 +2020-05-31,Clackamas,Oregon,41005,312,11 +2020-06-01,Clackamas,Oregon,41005,317,11 +2020-06-02,Clackamas,Oregon,41005,317,11 +2020-06-03,Clackamas,Oregon,41005,324,12 +2020-06-04,Clackamas,Oregon,41005,333,12 +2020-06-05,Clackamas,Oregon,41005,343,12 +2020-06-06,Clackamas,Oregon,41005,350,12 +2020-06-07,Clackamas,Oregon,41005,364,12 +2020-06-08,Clackamas,Oregon,41005,377,12 +2020-06-09,Clackamas,Oregon,41005,400,13 +2020-06-10,Clackamas,Oregon,41005,409,13 +2020-06-11,Clackamas,Oregon,41005,450,14 +2020-06-12,Clackamas,Oregon,41005,459,14 +2020-06-13,Clackamas,Oregon,41005,476,14 +2020-06-14,Clackamas,Oregon,41005,486,14 +2020-06-15,Clackamas,Oregon,41005,492,18 +2020-06-16,Clackamas,Oregon,41005,513,19 +2020-06-17,Clackamas,Oregon,41005,530,20 +2020-06-18,Clackamas,Oregon,41005,542,22 +2020-06-19,Clackamas,Oregon,41005,565,22 +2020-06-20,Clackamas,Oregon,41005,584,22 +2020-06-21,Clackamas,Oregon,41005,596,23 +2020-06-22,Clackamas,Oregon,41005,611,23 +2020-06-23,Clackamas,Oregon,41005,636,23 +2020-06-24,Clackamas,Oregon,41005,644,24 +2020-06-25,Clackamas,Oregon,41005,652,24 +2020-06-26,Clackamas,Oregon,41005,686,24 +2020-06-27,Clackamas,Oregon,41005,685,24 +2020-06-28,Clackamas,Oregon,41005,703,24 +2020-06-29,Clackamas,Oregon,41005,721,24 +2020-06-30,Clackamas,Oregon,41005,736,24 +2020-07-01,Clackamas,Oregon,41005,754,24 +2020-07-02,Clackamas,Oregon,41005,776,24 +2020-07-03,Clackamas,Oregon,41005,799,25 +2020-07-04,Clackamas,Oregon,41005,825,25 +2020-07-05,Clackamas,Oregon,41005,849,25 +2020-07-06,Clackamas,Oregon,41005,865,25 +2020-07-07,Clackamas,Oregon,41005,881,25 +2020-07-08,Clackamas,Oregon,41005,898,25 +2020-07-09,Clackamas,Oregon,41005,918,27 +2020-03-24,Clatsop,Oregon,41007,1,0 +2020-03-25,Clatsop,Oregon,41007,1,0 +2020-03-26,Clatsop,Oregon,41007,2,0 +2020-03-27,Clatsop,Oregon,41007,2,0 +2020-03-28,Clatsop,Oregon,41007,3,0 +2020-03-29,Clatsop,Oregon,41007,3,0 +2020-03-30,Clatsop,Oregon,41007,3,0 +2020-03-31,Clatsop,Oregon,41007,3,0 +2020-04-01,Clatsop,Oregon,41007,3,0 +2020-04-02,Clatsop,Oregon,41007,3,0 +2020-04-03,Clatsop,Oregon,41007,4,0 +2020-04-04,Clatsop,Oregon,41007,4,0 +2020-04-05,Clatsop,Oregon,41007,4,0 +2020-04-06,Clatsop,Oregon,41007,4,0 +2020-04-07,Clatsop,Oregon,41007,5,0 +2020-04-08,Clatsop,Oregon,41007,5,0 +2020-04-09,Clatsop,Oregon,41007,5,0 +2020-04-10,Clatsop,Oregon,41007,6,0 +2020-04-11,Clatsop,Oregon,41007,6,0 +2020-04-12,Clatsop,Oregon,41007,6,0 +2020-04-13,Clatsop,Oregon,41007,6,0 +2020-04-14,Clatsop,Oregon,41007,6,0 +2020-04-15,Clatsop,Oregon,41007,6,0 +2020-04-16,Clatsop,Oregon,41007,6,0 +2020-04-17,Clatsop,Oregon,41007,6,0 +2020-04-18,Clatsop,Oregon,41007,6,0 +2020-04-19,Clatsop,Oregon,41007,6,0 +2020-04-20,Clatsop,Oregon,41007,6,0 +2020-04-21,Clatsop,Oregon,41007,6,0 +2020-04-22,Clatsop,Oregon,41007,6,0 +2020-04-23,Clatsop,Oregon,41007,6,0 +2020-04-24,Clatsop,Oregon,41007,6,0 +2020-04-25,Clatsop,Oregon,41007,6,0 +2020-04-26,Clatsop,Oregon,41007,6,0 +2020-04-27,Clatsop,Oregon,41007,6,0 +2020-04-28,Clatsop,Oregon,41007,6,0 +2020-04-29,Clatsop,Oregon,41007,6,0 +2020-04-30,Clatsop,Oregon,41007,6,0 +2020-05-01,Clatsop,Oregon,41007,7,0 +2020-05-02,Clatsop,Oregon,41007,7,0 +2020-05-03,Clatsop,Oregon,41007,7,0 +2020-05-04,Clatsop,Oregon,41007,8,0 +2020-05-05,Clatsop,Oregon,41007,17,0 +2020-05-06,Clatsop,Oregon,41007,17,0 +2020-05-07,Clatsop,Oregon,41007,18,0 +2020-05-08,Clatsop,Oregon,41007,27,0 +2020-05-09,Clatsop,Oregon,41007,28,0 +2020-05-10,Clatsop,Oregon,41007,29,0 +2020-05-11,Clatsop,Oregon,41007,33,0 +2020-05-12,Clatsop,Oregon,41007,34,0 +2020-05-13,Clatsop,Oregon,41007,37,0 +2020-05-14,Clatsop,Oregon,41007,36,0 +2020-05-15,Clatsop,Oregon,41007,36,0 +2020-05-16,Clatsop,Oregon,41007,37,0 +2020-05-17,Clatsop,Oregon,41007,37,0 +2020-05-18,Clatsop,Oregon,41007,38,0 +2020-05-19,Clatsop,Oregon,41007,38,0 +2020-05-20,Clatsop,Oregon,41007,42,0 +2020-05-21,Clatsop,Oregon,41007,42,0 +2020-05-22,Clatsop,Oregon,41007,44,0 +2020-05-23,Clatsop,Oregon,41007,45,0 +2020-05-24,Clatsop,Oregon,41007,45,0 +2020-05-25,Clatsop,Oregon,41007,45,0 +2020-05-26,Clatsop,Oregon,41007,45,0 +2020-05-27,Clatsop,Oregon,41007,45,0 +2020-05-28,Clatsop,Oregon,41007,45,0 +2020-05-29,Clatsop,Oregon,41007,45,0 +2020-05-30,Clatsop,Oregon,41007,45,0 +2020-05-31,Clatsop,Oregon,41007,45,0 +2020-06-01,Clatsop,Oregon,41007,45,0 +2020-06-02,Clatsop,Oregon,41007,45,0 +2020-06-03,Clatsop,Oregon,41007,45,0 +2020-06-04,Clatsop,Oregon,41007,45,0 +2020-06-05,Clatsop,Oregon,41007,45,0 +2020-06-06,Clatsop,Oregon,41007,45,0 +2020-06-07,Clatsop,Oregon,41007,45,0 +2020-06-08,Clatsop,Oregon,41007,45,0 +2020-06-09,Clatsop,Oregon,41007,45,0 +2020-06-10,Clatsop,Oregon,41007,45,0 +2020-06-11,Clatsop,Oregon,41007,46,0 +2020-06-12,Clatsop,Oregon,41007,46,0 +2020-06-13,Clatsop,Oregon,41007,46,0 +2020-06-14,Clatsop,Oregon,41007,46,0 +2020-06-15,Clatsop,Oregon,41007,46,0 +2020-06-16,Clatsop,Oregon,41007,46,0 +2020-06-17,Clatsop,Oregon,41007,46,0 +2020-06-18,Clatsop,Oregon,41007,46,0 +2020-06-19,Clatsop,Oregon,41007,46,0 +2020-06-20,Clatsop,Oregon,41007,46,0 +2020-06-21,Clatsop,Oregon,41007,46,0 +2020-06-22,Clatsop,Oregon,41007,46,0 +2020-06-23,Clatsop,Oregon,41007,46,0 +2020-06-24,Clatsop,Oregon,41007,47,0 +2020-06-25,Clatsop,Oregon,41007,48,0 +2020-06-26,Clatsop,Oregon,41007,48,0 +2020-06-27,Clatsop,Oregon,41007,48,0 +2020-06-28,Clatsop,Oregon,41007,49,0 +2020-06-29,Clatsop,Oregon,41007,49,0 +2020-06-30,Clatsop,Oregon,41007,49,0 +2020-07-01,Clatsop,Oregon,41007,49,0 +2020-07-02,Clatsop,Oregon,41007,49,0 +2020-07-03,Clatsop,Oregon,41007,49,0 +2020-07-04,Clatsop,Oregon,41007,51,0 +2020-07-05,Clatsop,Oregon,41007,51,0 +2020-07-06,Clatsop,Oregon,41007,54,0 +2020-07-07,Clatsop,Oregon,41007,54,0 +2020-07-08,Clatsop,Oregon,41007,55,0 +2020-07-09,Clatsop,Oregon,41007,55,0 +2020-03-27,Columbia,Oregon,41009,1,0 +2020-03-28,Columbia,Oregon,41009,1,0 +2020-03-29,Columbia,Oregon,41009,1,0 +2020-03-30,Columbia,Oregon,41009,1,0 +2020-03-31,Columbia,Oregon,41009,1,0 +2020-04-01,Columbia,Oregon,41009,1,0 +2020-04-02,Columbia,Oregon,41009,1,0 +2020-04-03,Columbia,Oregon,41009,1,0 +2020-04-04,Columbia,Oregon,41009,3,0 +2020-04-05,Columbia,Oregon,41009,6,0 +2020-04-06,Columbia,Oregon,41009,8,0 +2020-04-07,Columbia,Oregon,41009,8,0 +2020-04-08,Columbia,Oregon,41009,9,0 +2020-04-09,Columbia,Oregon,41009,10,0 +2020-04-10,Columbia,Oregon,41009,10,0 +2020-04-11,Columbia,Oregon,41009,10,0 +2020-04-12,Columbia,Oregon,41009,10,0 +2020-04-13,Columbia,Oregon,41009,12,0 +2020-04-14,Columbia,Oregon,41009,11,0 +2020-04-15,Columbia,Oregon,41009,14,0 +2020-04-16,Columbia,Oregon,41009,14,0 +2020-04-17,Columbia,Oregon,41009,14,0 +2020-04-18,Columbia,Oregon,41009,14,0 +2020-04-19,Columbia,Oregon,41009,14,0 +2020-04-20,Columbia,Oregon,41009,14,0 +2020-04-21,Columbia,Oregon,41009,14,0 +2020-04-22,Columbia,Oregon,41009,14,0 +2020-04-23,Columbia,Oregon,41009,14,0 +2020-04-24,Columbia,Oregon,41009,14,0 +2020-04-25,Columbia,Oregon,41009,14,0 +2020-04-26,Columbia,Oregon,41009,14,0 +2020-04-27,Columbia,Oregon,41009,14,0 +2020-04-28,Columbia,Oregon,41009,14,0 +2020-04-29,Columbia,Oregon,41009,14,0 +2020-04-30,Columbia,Oregon,41009,14,0 +2020-05-01,Columbia,Oregon,41009,14,0 +2020-05-02,Columbia,Oregon,41009,14,0 +2020-05-03,Columbia,Oregon,41009,14,0 +2020-05-04,Columbia,Oregon,41009,14,0 +2020-05-05,Columbia,Oregon,41009,14,0 +2020-05-06,Columbia,Oregon,41009,15,0 +2020-05-07,Columbia,Oregon,41009,15,0 +2020-05-08,Columbia,Oregon,41009,15,0 +2020-05-09,Columbia,Oregon,41009,15,0 +2020-05-10,Columbia,Oregon,41009,15,0 +2020-05-11,Columbia,Oregon,41009,15,0 +2020-05-12,Columbia,Oregon,41009,15,0 +2020-05-13,Columbia,Oregon,41009,16,0 +2020-05-14,Columbia,Oregon,41009,16,0 +2020-05-15,Columbia,Oregon,41009,16,0 +2020-05-16,Columbia,Oregon,41009,16,0 +2020-05-17,Columbia,Oregon,41009,16,0 +2020-05-18,Columbia,Oregon,41009,16,0 +2020-05-19,Columbia,Oregon,41009,16,0 +2020-05-20,Columbia,Oregon,41009,16,0 +2020-05-21,Columbia,Oregon,41009,16,0 +2020-05-22,Columbia,Oregon,41009,16,0 +2020-05-23,Columbia,Oregon,41009,16,0 +2020-05-24,Columbia,Oregon,41009,16,0 +2020-05-25,Columbia,Oregon,41009,16,0 +2020-05-26,Columbia,Oregon,41009,16,0 +2020-05-27,Columbia,Oregon,41009,16,0 +2020-05-28,Columbia,Oregon,41009,16,0 +2020-05-29,Columbia,Oregon,41009,16,0 +2020-05-30,Columbia,Oregon,41009,16,0 +2020-05-31,Columbia,Oregon,41009,16,0 +2020-06-01,Columbia,Oregon,41009,16,0 +2020-06-02,Columbia,Oregon,41009,16,0 +2020-06-03,Columbia,Oregon,41009,16,0 +2020-06-04,Columbia,Oregon,41009,16,0 +2020-06-05,Columbia,Oregon,41009,16,0 +2020-06-06,Columbia,Oregon,41009,16,0 +2020-06-07,Columbia,Oregon,41009,16,0 +2020-06-08,Columbia,Oregon,41009,16,0 +2020-06-09,Columbia,Oregon,41009,17,0 +2020-06-10,Columbia,Oregon,41009,17,0 +2020-06-11,Columbia,Oregon,41009,17,0 +2020-06-12,Columbia,Oregon,41009,20,0 +2020-06-13,Columbia,Oregon,41009,21,0 +2020-06-14,Columbia,Oregon,41009,22,0 +2020-06-15,Columbia,Oregon,41009,22,0 +2020-06-16,Columbia,Oregon,41009,22,0 +2020-06-17,Columbia,Oregon,41009,22,0 +2020-06-18,Columbia,Oregon,41009,26,0 +2020-06-19,Columbia,Oregon,41009,26,0 +2020-06-20,Columbia,Oregon,41009,26,0 +2020-06-21,Columbia,Oregon,41009,26,0 +2020-06-22,Columbia,Oregon,41009,26,0 +2020-06-23,Columbia,Oregon,41009,26,0 +2020-06-24,Columbia,Oregon,41009,26,0 +2020-06-25,Columbia,Oregon,41009,26,0 +2020-06-26,Columbia,Oregon,41009,27,0 +2020-06-27,Columbia,Oregon,41009,28,0 +2020-06-28,Columbia,Oregon,41009,29,0 +2020-06-29,Columbia,Oregon,41009,29,0 +2020-06-30,Columbia,Oregon,41009,29,0 +2020-07-01,Columbia,Oregon,41009,30,0 +2020-07-02,Columbia,Oregon,41009,31,0 +2020-07-03,Columbia,Oregon,41009,35,0 +2020-07-04,Columbia,Oregon,41009,36,0 +2020-07-05,Columbia,Oregon,41009,39,0 +2020-07-06,Columbia,Oregon,41009,42,0 +2020-07-07,Columbia,Oregon,41009,44,0 +2020-07-08,Columbia,Oregon,41009,45,0 +2020-07-09,Columbia,Oregon,41009,47,0 +2020-04-11,Coos,Oregon,41011,1,0 +2020-04-12,Coos,Oregon,41011,1,0 +2020-04-13,Coos,Oregon,41011,1,0 +2020-04-14,Coos,Oregon,41011,1,0 +2020-04-15,Coos,Oregon,41011,1,0 +2020-04-16,Coos,Oregon,41011,1,0 +2020-04-17,Coos,Oregon,41011,1,0 +2020-04-18,Coos,Oregon,41011,1,0 +2020-04-19,Coos,Oregon,41011,1,0 +2020-04-20,Coos,Oregon,41011,1,0 +2020-04-21,Coos,Oregon,41011,2,0 +2020-04-22,Coos,Oregon,41011,3,0 +2020-04-23,Coos,Oregon,41011,4,0 +2020-04-24,Coos,Oregon,41011,4,0 +2020-04-25,Coos,Oregon,41011,8,0 +2020-04-26,Coos,Oregon,41011,12,0 +2020-04-27,Coos,Oregon,41011,14,0 +2020-04-28,Coos,Oregon,41011,15,0 +2020-04-29,Coos,Oregon,41011,15,0 +2020-04-30,Coos,Oregon,41011,20,0 +2020-05-01,Coos,Oregon,41011,21,0 +2020-05-02,Coos,Oregon,41011,21,0 +2020-05-03,Coos,Oregon,41011,25,0 +2020-05-04,Coos,Oregon,41011,27,0 +2020-05-05,Coos,Oregon,41011,28,0 +2020-05-06,Coos,Oregon,41011,28,0 +2020-05-07,Coos,Oregon,41011,29,0 +2020-05-08,Coos,Oregon,41011,29,0 +2020-05-09,Coos,Oregon,41011,30,0 +2020-05-10,Coos,Oregon,41011,30,0 +2020-05-11,Coos,Oregon,41011,30,0 +2020-05-12,Coos,Oregon,41011,30,0 +2020-05-13,Coos,Oregon,41011,30,0 +2020-05-14,Coos,Oregon,41011,30,0 +2020-05-15,Coos,Oregon,41011,30,0 +2020-05-16,Coos,Oregon,41011,30,0 +2020-05-17,Coos,Oregon,41011,30,0 +2020-05-18,Coos,Oregon,41011,30,0 +2020-05-19,Coos,Oregon,41011,30,0 +2020-05-20,Coos,Oregon,41011,30,0 +2020-05-21,Coos,Oregon,41011,31,0 +2020-05-22,Coos,Oregon,41011,31,0 +2020-05-23,Coos,Oregon,41011,31,0 +2020-05-24,Coos,Oregon,41011,31,0 +2020-05-25,Coos,Oregon,41011,31,0 +2020-05-26,Coos,Oregon,41011,31,0 +2020-05-27,Coos,Oregon,41011,31,0 +2020-05-28,Coos,Oregon,41011,31,0 +2020-05-29,Coos,Oregon,41011,31,0 +2020-05-30,Coos,Oregon,41011,31,0 +2020-05-31,Coos,Oregon,41011,31,0 +2020-06-01,Coos,Oregon,41011,31,0 +2020-06-02,Coos,Oregon,41011,31,0 +2020-06-03,Coos,Oregon,41011,31,0 +2020-06-04,Coos,Oregon,41011,32,0 +2020-06-05,Coos,Oregon,41011,32,0 +2020-06-06,Coos,Oregon,41011,32,0 +2020-06-07,Coos,Oregon,41011,32,0 +2020-06-08,Coos,Oregon,41011,32,0 +2020-06-09,Coos,Oregon,41011,32,0 +2020-06-10,Coos,Oregon,41011,32,0 +2020-06-11,Coos,Oregon,41011,32,0 +2020-06-12,Coos,Oregon,41011,32,0 +2020-06-13,Coos,Oregon,41011,32,0 +2020-06-14,Coos,Oregon,41011,32,0 +2020-06-15,Coos,Oregon,41011,32,0 +2020-06-16,Coos,Oregon,41011,32,0 +2020-06-17,Coos,Oregon,41011,32,0 +2020-06-18,Coos,Oregon,41011,32,0 +2020-06-19,Coos,Oregon,41011,33,0 +2020-06-20,Coos,Oregon,41011,33,0 +2020-06-21,Coos,Oregon,41011,36,0 +2020-06-22,Coos,Oregon,41011,36,0 +2020-06-23,Coos,Oregon,41011,37,0 +2020-06-24,Coos,Oregon,41011,37,0 +2020-06-25,Coos,Oregon,41011,39,0 +2020-06-26,Coos,Oregon,41011,39,0 +2020-06-27,Coos,Oregon,41011,40,0 +2020-06-28,Coos,Oregon,41011,40,0 +2020-06-29,Coos,Oregon,41011,40,0 +2020-06-30,Coos,Oregon,41011,41,0 +2020-07-01,Coos,Oregon,41011,41,0 +2020-07-02,Coos,Oregon,41011,41,0 +2020-07-03,Coos,Oregon,41011,42,0 +2020-07-04,Coos,Oregon,41011,42,0 +2020-07-05,Coos,Oregon,41011,42,0 +2020-07-06,Coos,Oregon,41011,42,0 +2020-07-07,Coos,Oregon,41011,46,0 +2020-07-08,Coos,Oregon,41011,48,0 +2020-07-09,Coos,Oregon,41011,52,0 +2020-04-03,Crook,Oregon,41013,1,0 +2020-04-04,Crook,Oregon,41013,1,0 +2020-04-05,Crook,Oregon,41013,1,0 +2020-04-06,Crook,Oregon,41013,1,0 +2020-04-07,Crook,Oregon,41013,1,0 +2020-04-08,Crook,Oregon,41013,1,0 +2020-04-09,Crook,Oregon,41013,1,0 +2020-04-10,Crook,Oregon,41013,1,0 +2020-04-11,Crook,Oregon,41013,1,0 +2020-04-12,Crook,Oregon,41013,1,0 +2020-04-13,Crook,Oregon,41013,1,0 +2020-04-14,Crook,Oregon,41013,1,0 +2020-04-15,Crook,Oregon,41013,1,0 +2020-04-16,Crook,Oregon,41013,1,0 +2020-04-17,Crook,Oregon,41013,1,0 +2020-04-18,Crook,Oregon,41013,1,0 +2020-04-19,Crook,Oregon,41013,1,0 +2020-04-20,Crook,Oregon,41013,1,0 +2020-04-21,Crook,Oregon,41013,1,0 +2020-04-22,Crook,Oregon,41013,1,0 +2020-04-23,Crook,Oregon,41013,1,0 +2020-04-24,Crook,Oregon,41013,1,0 +2020-04-25,Crook,Oregon,41013,1,0 +2020-04-26,Crook,Oregon,41013,1,0 +2020-04-27,Crook,Oregon,41013,1,0 +2020-04-28,Crook,Oregon,41013,1,0 +2020-04-29,Crook,Oregon,41013,1,0 +2020-04-30,Crook,Oregon,41013,1,0 +2020-05-01,Crook,Oregon,41013,1,0 +2020-05-02,Crook,Oregon,41013,1,0 +2020-05-03,Crook,Oregon,41013,1,0 +2020-05-04,Crook,Oregon,41013,1,0 +2020-05-05,Crook,Oregon,41013,1,0 +2020-05-06,Crook,Oregon,41013,1,0 +2020-05-07,Crook,Oregon,41013,1,0 +2020-05-08,Crook,Oregon,41013,1,0 +2020-05-09,Crook,Oregon,41013,1,0 +2020-05-10,Crook,Oregon,41013,1,0 +2020-05-11,Crook,Oregon,41013,1,0 +2020-05-12,Crook,Oregon,41013,1,0 +2020-05-13,Crook,Oregon,41013,1,0 +2020-05-14,Crook,Oregon,41013,1,0 +2020-05-15,Crook,Oregon,41013,1,0 +2020-05-16,Crook,Oregon,41013,1,0 +2020-05-17,Crook,Oregon,41013,1,0 +2020-05-18,Crook,Oregon,41013,1,0 +2020-05-19,Crook,Oregon,41013,1,0 +2020-05-20,Crook,Oregon,41013,1,0 +2020-05-21,Crook,Oregon,41013,1,0 +2020-05-22,Crook,Oregon,41013,1,0 +2020-05-23,Crook,Oregon,41013,4,0 +2020-05-24,Crook,Oregon,41013,5,0 +2020-05-25,Crook,Oregon,41013,5,0 +2020-05-26,Crook,Oregon,41013,6,0 +2020-05-27,Crook,Oregon,41013,6,0 +2020-05-28,Crook,Oregon,41013,6,0 +2020-05-29,Crook,Oregon,41013,6,0 +2020-05-30,Crook,Oregon,41013,6,0 +2020-05-31,Crook,Oregon,41013,6,0 +2020-06-01,Crook,Oregon,41013,6,0 +2020-06-02,Crook,Oregon,41013,6,0 +2020-06-03,Crook,Oregon,41013,6,0 +2020-06-04,Crook,Oregon,41013,7,0 +2020-06-05,Crook,Oregon,41013,6,0 +2020-06-06,Crook,Oregon,41013,6,0 +2020-06-07,Crook,Oregon,41013,6,0 +2020-06-08,Crook,Oregon,41013,6,0 +2020-06-09,Crook,Oregon,41013,6,0 +2020-06-10,Crook,Oregon,41013,6,0 +2020-06-11,Crook,Oregon,41013,8,0 +2020-06-12,Crook,Oregon,41013,8,0 +2020-06-13,Crook,Oregon,41013,8,0 +2020-06-14,Crook,Oregon,41013,8,0 +2020-06-15,Crook,Oregon,41013,8,0 +2020-06-16,Crook,Oregon,41013,9,0 +2020-06-17,Crook,Oregon,41013,9,0 +2020-06-18,Crook,Oregon,41013,9,0 +2020-06-19,Crook,Oregon,41013,9,0 +2020-06-20,Crook,Oregon,41013,9,0 +2020-06-21,Crook,Oregon,41013,9,0 +2020-06-22,Crook,Oregon,41013,9,0 +2020-06-23,Crook,Oregon,41013,9,0 +2020-06-24,Crook,Oregon,41013,9,0 +2020-06-25,Crook,Oregon,41013,9,0 +2020-06-26,Crook,Oregon,41013,9,0 +2020-06-27,Crook,Oregon,41013,10,0 +2020-06-28,Crook,Oregon,41013,10,0 +2020-06-29,Crook,Oregon,41013,10,0 +2020-06-30,Crook,Oregon,41013,10,0 +2020-07-01,Crook,Oregon,41013,10,0 +2020-07-02,Crook,Oregon,41013,11,0 +2020-07-03,Crook,Oregon,41013,12,0 +2020-07-04,Crook,Oregon,41013,12,0 +2020-07-05,Crook,Oregon,41013,13,0 +2020-07-06,Crook,Oregon,41013,13,0 +2020-07-07,Crook,Oregon,41013,14,0 +2020-07-08,Crook,Oregon,41013,15,0 +2020-07-09,Crook,Oregon,41013,17,1 +2020-04-06,Curry,Oregon,41015,2,0 +2020-04-07,Curry,Oregon,41015,2,0 +2020-04-08,Curry,Oregon,41015,2,0 +2020-04-09,Curry,Oregon,41015,3,0 +2020-04-10,Curry,Oregon,41015,3,0 +2020-04-11,Curry,Oregon,41015,3,0 +2020-04-12,Curry,Oregon,41015,3,0 +2020-04-13,Curry,Oregon,41015,3,0 +2020-04-14,Curry,Oregon,41015,3,0 +2020-04-15,Curry,Oregon,41015,3,0 +2020-04-16,Curry,Oregon,41015,3,0 +2020-04-17,Curry,Oregon,41015,3,0 +2020-04-18,Curry,Oregon,41015,4,0 +2020-04-19,Curry,Oregon,41015,4,0 +2020-04-20,Curry,Oregon,41015,4,0 +2020-04-21,Curry,Oregon,41015,4,0 +2020-04-22,Curry,Oregon,41015,4,0 +2020-04-23,Curry,Oregon,41015,4,0 +2020-04-24,Curry,Oregon,41015,4,0 +2020-04-25,Curry,Oregon,41015,4,0 +2020-04-26,Curry,Oregon,41015,4,0 +2020-04-27,Curry,Oregon,41015,4,0 +2020-04-28,Curry,Oregon,41015,4,0 +2020-04-29,Curry,Oregon,41015,4,0 +2020-04-30,Curry,Oregon,41015,4,0 +2020-05-01,Curry,Oregon,41015,4,0 +2020-05-02,Curry,Oregon,41015,4,0 +2020-05-03,Curry,Oregon,41015,4,0 +2020-05-04,Curry,Oregon,41015,4,0 +2020-05-05,Curry,Oregon,41015,4,0 +2020-05-06,Curry,Oregon,41015,4,0 +2020-05-07,Curry,Oregon,41015,4,0 +2020-05-08,Curry,Oregon,41015,4,0 +2020-05-09,Curry,Oregon,41015,4,0 +2020-05-10,Curry,Oregon,41015,4,0 +2020-05-11,Curry,Oregon,41015,4,0 +2020-05-12,Curry,Oregon,41015,4,0 +2020-05-13,Curry,Oregon,41015,4,0 +2020-05-14,Curry,Oregon,41015,4,0 +2020-05-15,Curry,Oregon,41015,4,0 +2020-05-16,Curry,Oregon,41015,4,0 +2020-05-17,Curry,Oregon,41015,4,0 +2020-05-18,Curry,Oregon,41015,4,0 +2020-05-19,Curry,Oregon,41015,5,0 +2020-05-20,Curry,Oregon,41015,5,0 +2020-05-21,Curry,Oregon,41015,5,0 +2020-05-22,Curry,Oregon,41015,6,0 +2020-05-23,Curry,Oregon,41015,6,0 +2020-05-24,Curry,Oregon,41015,6,0 +2020-05-25,Curry,Oregon,41015,6,0 +2020-05-26,Curry,Oregon,41015,6,0 +2020-05-27,Curry,Oregon,41015,6,0 +2020-05-28,Curry,Oregon,41015,6,0 +2020-05-29,Curry,Oregon,41015,7,0 +2020-05-30,Curry,Oregon,41015,7,0 +2020-05-31,Curry,Oregon,41015,7,0 +2020-06-01,Curry,Oregon,41015,7,0 +2020-06-02,Curry,Oregon,41015,7,0 +2020-06-03,Curry,Oregon,41015,7,0 +2020-06-04,Curry,Oregon,41015,7,0 +2020-06-05,Curry,Oregon,41015,7,0 +2020-06-06,Curry,Oregon,41015,7,0 +2020-06-07,Curry,Oregon,41015,7,0 +2020-06-08,Curry,Oregon,41015,7,0 +2020-06-09,Curry,Oregon,41015,7,0 +2020-06-10,Curry,Oregon,41015,7,0 +2020-06-11,Curry,Oregon,41015,7,0 +2020-06-12,Curry,Oregon,41015,7,0 +2020-06-13,Curry,Oregon,41015,7,0 +2020-06-14,Curry,Oregon,41015,7,0 +2020-06-15,Curry,Oregon,41015,7,0 +2020-06-16,Curry,Oregon,41015,7,0 +2020-06-17,Curry,Oregon,41015,7,0 +2020-06-18,Curry,Oregon,41015,7,0 +2020-06-19,Curry,Oregon,41015,7,0 +2020-06-20,Curry,Oregon,41015,7,0 +2020-06-21,Curry,Oregon,41015,7,0 +2020-06-22,Curry,Oregon,41015,7,0 +2020-06-23,Curry,Oregon,41015,7,0 +2020-06-24,Curry,Oregon,41015,7,0 +2020-06-25,Curry,Oregon,41015,7,0 +2020-06-26,Curry,Oregon,41015,7,0 +2020-06-27,Curry,Oregon,41015,7,0 +2020-06-28,Curry,Oregon,41015,7,0 +2020-06-29,Curry,Oregon,41015,7,0 +2020-06-30,Curry,Oregon,41015,7,0 +2020-07-01,Curry,Oregon,41015,7,0 +2020-07-02,Curry,Oregon,41015,7,0 +2020-07-03,Curry,Oregon,41015,8,0 +2020-07-04,Curry,Oregon,41015,8,0 +2020-07-05,Curry,Oregon,41015,8,0 +2020-07-06,Curry,Oregon,41015,8,0 +2020-07-07,Curry,Oregon,41015,8,0 +2020-07-08,Curry,Oregon,41015,9,0 +2020-07-09,Curry,Oregon,41015,9,0 +2020-03-11,Deschutes,Oregon,41017,1,0 +2020-03-12,Deschutes,Oregon,41017,1,0 +2020-03-13,Deschutes,Oregon,41017,1,0 +2020-03-14,Deschutes,Oregon,41017,3,0 +2020-03-15,Deschutes,Oregon,41017,4,0 +2020-03-16,Deschutes,Oregon,41017,6,0 +2020-03-17,Deschutes,Oregon,41017,6,0 +2020-03-18,Deschutes,Oregon,41017,6,0 +2020-03-19,Deschutes,Oregon,41017,6,0 +2020-03-20,Deschutes,Oregon,41017,8,0 +2020-03-21,Deschutes,Oregon,41017,9,0 +2020-03-22,Deschutes,Oregon,41017,10,0 +2020-03-23,Deschutes,Oregon,41017,10,0 +2020-03-24,Deschutes,Oregon,41017,10,0 +2020-03-25,Deschutes,Oregon,41017,10,0 +2020-03-26,Deschutes,Oregon,41017,15,0 +2020-03-27,Deschutes,Oregon,41017,18,0 +2020-03-28,Deschutes,Oregon,41017,20,0 +2020-03-29,Deschutes,Oregon,41017,23,0 +2020-03-30,Deschutes,Oregon,41017,25,0 +2020-03-31,Deschutes,Oregon,41017,24,0 +2020-04-01,Deschutes,Oregon,41017,27,0 +2020-04-02,Deschutes,Oregon,41017,32,0 +2020-04-03,Deschutes,Oregon,41017,36,0 +2020-04-04,Deschutes,Oregon,41017,39,0 +2020-04-05,Deschutes,Oregon,41017,39,0 +2020-04-06,Deschutes,Oregon,41017,40,0 +2020-04-07,Deschutes,Oregon,41017,44,0 +2020-04-08,Deschutes,Oregon,41017,45,0 +2020-04-09,Deschutes,Oregon,41017,50,0 +2020-04-10,Deschutes,Oregon,41017,51,0 +2020-04-11,Deschutes,Oregon,41017,53,0 +2020-04-12,Deschutes,Oregon,41017,54,0 +2020-04-13,Deschutes,Oregon,41017,54,0 +2020-04-14,Deschutes,Oregon,41017,55,0 +2020-04-15,Deschutes,Oregon,41017,55,0 +2020-04-16,Deschutes,Oregon,41017,59,0 +2020-04-17,Deschutes,Oregon,41017,61,0 +2020-04-18,Deschutes,Oregon,41017,63,0 +2020-04-19,Deschutes,Oregon,41017,64,0 +2020-04-20,Deschutes,Oregon,41017,64,0 +2020-04-21,Deschutes,Oregon,41017,64,0 +2020-04-22,Deschutes,Oregon,41017,66,0 +2020-04-23,Deschutes,Oregon,41017,70,0 +2020-04-24,Deschutes,Oregon,41017,70,0 +2020-04-25,Deschutes,Oregon,41017,71,0 +2020-04-26,Deschutes,Oregon,41017,73,0 +2020-04-27,Deschutes,Oregon,41017,75,0 +2020-04-28,Deschutes,Oregon,41017,75,0 +2020-04-29,Deschutes,Oregon,41017,75,0 +2020-04-30,Deschutes,Oregon,41017,76,0 +2020-05-01,Deschutes,Oregon,41017,76,0 +2020-05-02,Deschutes,Oregon,41017,78,0 +2020-05-03,Deschutes,Oregon,41017,78,0 +2020-05-04,Deschutes,Oregon,41017,79,0 +2020-05-05,Deschutes,Oregon,41017,80,0 +2020-05-06,Deschutes,Oregon,41017,81,0 +2020-05-07,Deschutes,Oregon,41017,83,0 +2020-05-08,Deschutes,Oregon,41017,84,0 +2020-05-09,Deschutes,Oregon,41017,85,0 +2020-05-10,Deschutes,Oregon,41017,86,0 +2020-05-11,Deschutes,Oregon,41017,86,0 +2020-05-12,Deschutes,Oregon,41017,90,0 +2020-05-13,Deschutes,Oregon,41017,89,0 +2020-05-14,Deschutes,Oregon,41017,91,0 +2020-05-15,Deschutes,Oregon,41017,94,0 +2020-05-16,Deschutes,Oregon,41017,95,0 +2020-05-17,Deschutes,Oregon,41017,96,0 +2020-05-18,Deschutes,Oregon,41017,101,0 +2020-05-19,Deschutes,Oregon,41017,107,0 +2020-05-20,Deschutes,Oregon,41017,116,0 +2020-05-21,Deschutes,Oregon,41017,117,0 +2020-05-22,Deschutes,Oregon,41017,116,0 +2020-05-23,Deschutes,Oregon,41017,117,0 +2020-05-24,Deschutes,Oregon,41017,119,0 +2020-05-25,Deschutes,Oregon,41017,120,0 +2020-05-26,Deschutes,Oregon,41017,120,0 +2020-05-27,Deschutes,Oregon,41017,120,0 +2020-05-28,Deschutes,Oregon,41017,121,0 +2020-05-29,Deschutes,Oregon,41017,121,0 +2020-05-30,Deschutes,Oregon,41017,124,0 +2020-05-31,Deschutes,Oregon,41017,125,0 +2020-06-01,Deschutes,Oregon,41017,127,0 +2020-06-02,Deschutes,Oregon,41017,127,0 +2020-06-03,Deschutes,Oregon,41017,128,0 +2020-06-04,Deschutes,Oregon,41017,133,0 +2020-06-05,Deschutes,Oregon,41017,134,0 +2020-06-06,Deschutes,Oregon,41017,133,0 +2020-06-07,Deschutes,Oregon,41017,136,0 +2020-06-08,Deschutes,Oregon,41017,136,0 +2020-06-09,Deschutes,Oregon,41017,136,0 +2020-06-10,Deschutes,Oregon,41017,136,0 +2020-06-11,Deschutes,Oregon,41017,136,0 +2020-06-12,Deschutes,Oregon,41017,137,0 +2020-06-13,Deschutes,Oregon,41017,137,0 +2020-06-14,Deschutes,Oregon,41017,137,0 +2020-06-15,Deschutes,Oregon,41017,137,0 +2020-06-16,Deschutes,Oregon,41017,137,0 +2020-06-17,Deschutes,Oregon,41017,139,0 +2020-06-18,Deschutes,Oregon,41017,139,0 +2020-06-19,Deschutes,Oregon,41017,142,0 +2020-06-20,Deschutes,Oregon,41017,142,0 +2020-06-21,Deschutes,Oregon,41017,143,0 +2020-06-22,Deschutes,Oregon,41017,147,0 +2020-06-23,Deschutes,Oregon,41017,149,0 +2020-06-24,Deschutes,Oregon,41017,153,0 +2020-06-25,Deschutes,Oregon,41017,155,0 +2020-06-26,Deschutes,Oregon,41017,159,0 +2020-06-27,Deschutes,Oregon,41017,162,0 +2020-06-28,Deschutes,Oregon,41017,170,0 +2020-06-29,Deschutes,Oregon,41017,172,0 +2020-06-30,Deschutes,Oregon,41017,181,0 +2020-07-01,Deschutes,Oregon,41017,183,0 +2020-07-02,Deschutes,Oregon,41017,192,0 +2020-07-03,Deschutes,Oregon,41017,201,0 +2020-07-04,Deschutes,Oregon,41017,211,0 +2020-07-05,Deschutes,Oregon,41017,219,0 +2020-07-06,Deschutes,Oregon,41017,221,0 +2020-07-07,Deschutes,Oregon,41017,221,0 +2020-07-08,Deschutes,Oregon,41017,224,0 +2020-07-09,Deschutes,Oregon,41017,229,0 +2020-03-08,Douglas,Oregon,41019,1,0 +2020-03-09,Douglas,Oregon,41019,1,0 +2020-03-10,Douglas,Oregon,41019,1,0 +2020-03-11,Douglas,Oregon,41019,1,0 +2020-03-12,Douglas,Oregon,41019,1,0 +2020-03-13,Douglas,Oregon,41019,1,0 +2020-03-14,Douglas,Oregon,41019,1,0 +2020-03-15,Douglas,Oregon,41019,1,0 +2020-03-16,Douglas,Oregon,41019,1,0 +2020-03-17,Douglas,Oregon,41019,1,0 +2020-03-18,Douglas,Oregon,41019,1,0 +2020-03-19,Douglas,Oregon,41019,1,0 +2020-03-20,Douglas,Oregon,41019,1,0 +2020-03-21,Douglas,Oregon,41019,1,0 +2020-03-22,Douglas,Oregon,41019,1,0 +2020-03-23,Douglas,Oregon,41019,1,0 +2020-03-24,Douglas,Oregon,41019,1,0 +2020-03-25,Douglas,Oregon,41019,3,0 +2020-03-26,Douglas,Oregon,41019,3,0 +2020-03-27,Douglas,Oregon,41019,4,0 +2020-03-28,Douglas,Oregon,41019,4,0 +2020-03-29,Douglas,Oregon,41019,4,0 +2020-03-30,Douglas,Oregon,41019,8,0 +2020-03-31,Douglas,Oregon,41019,9,0 +2020-04-01,Douglas,Oregon,41019,10,0 +2020-04-02,Douglas,Oregon,41019,10,0 +2020-04-03,Douglas,Oregon,41019,9,0 +2020-04-04,Douglas,Oregon,41019,11,0 +2020-04-05,Douglas,Oregon,41019,11,0 +2020-04-06,Douglas,Oregon,41019,12,0 +2020-04-07,Douglas,Oregon,41019,12,0 +2020-04-08,Douglas,Oregon,41019,12,0 +2020-04-09,Douglas,Oregon,41019,12,0 +2020-04-10,Douglas,Oregon,41019,12,0 +2020-04-11,Douglas,Oregon,41019,12,0 +2020-04-12,Douglas,Oregon,41019,14,0 +2020-04-13,Douglas,Oregon,41019,16,0 +2020-04-14,Douglas,Oregon,41019,19,0 +2020-04-15,Douglas,Oregon,41019,20,0 +2020-04-16,Douglas,Oregon,41019,22,0 +2020-04-17,Douglas,Oregon,41019,22,0 +2020-04-18,Douglas,Oregon,41019,22,0 +2020-04-19,Douglas,Oregon,41019,22,0 +2020-04-20,Douglas,Oregon,41019,23,0 +2020-04-21,Douglas,Oregon,41019,23,0 +2020-04-22,Douglas,Oregon,41019,23,0 +2020-04-23,Douglas,Oregon,41019,24,0 +2020-04-24,Douglas,Oregon,41019,23,0 +2020-04-25,Douglas,Oregon,41019,23,0 +2020-04-26,Douglas,Oregon,41019,23,0 +2020-04-27,Douglas,Oregon,41019,23,0 +2020-04-28,Douglas,Oregon,41019,23,0 +2020-04-29,Douglas,Oregon,41019,23,0 +2020-04-30,Douglas,Oregon,41019,23,0 +2020-05-01,Douglas,Oregon,41019,24,0 +2020-05-02,Douglas,Oregon,41019,24,0 +2020-05-03,Douglas,Oregon,41019,24,0 +2020-05-04,Douglas,Oregon,41019,24,0 +2020-05-05,Douglas,Oregon,41019,24,0 +2020-05-06,Douglas,Oregon,41019,24,0 +2020-05-07,Douglas,Oregon,41019,24,0 +2020-05-08,Douglas,Oregon,41019,24,0 +2020-05-09,Douglas,Oregon,41019,24,0 +2020-05-10,Douglas,Oregon,41019,24,0 +2020-05-11,Douglas,Oregon,41019,24,0 +2020-05-12,Douglas,Oregon,41019,24,0 +2020-05-13,Douglas,Oregon,41019,24,0 +2020-05-14,Douglas,Oregon,41019,24,0 +2020-05-15,Douglas,Oregon,41019,25,0 +2020-05-16,Douglas,Oregon,41019,24,0 +2020-05-17,Douglas,Oregon,41019,25,0 +2020-05-18,Douglas,Oregon,41019,25,0 +2020-05-19,Douglas,Oregon,41019,25,0 +2020-05-20,Douglas,Oregon,41019,25,0 +2020-05-21,Douglas,Oregon,41019,25,0 +2020-05-22,Douglas,Oregon,41019,25,0 +2020-05-23,Douglas,Oregon,41019,25,0 +2020-05-24,Douglas,Oregon,41019,25,0 +2020-05-25,Douglas,Oregon,41019,25,0 +2020-05-26,Douglas,Oregon,41019,25,0 +2020-05-27,Douglas,Oregon,41019,25,0 +2020-05-28,Douglas,Oregon,41019,25,0 +2020-05-29,Douglas,Oregon,41019,26,0 +2020-05-30,Douglas,Oregon,41019,27,0 +2020-05-31,Douglas,Oregon,41019,27,0 +2020-06-01,Douglas,Oregon,41019,27,0 +2020-06-02,Douglas,Oregon,41019,27,0 +2020-06-03,Douglas,Oregon,41019,28,0 +2020-06-04,Douglas,Oregon,41019,28,0 +2020-06-05,Douglas,Oregon,41019,29,0 +2020-06-06,Douglas,Oregon,41019,29,0 +2020-06-07,Douglas,Oregon,41019,29,0 +2020-06-08,Douglas,Oregon,41019,29,0 +2020-06-09,Douglas,Oregon,41019,29,0 +2020-06-10,Douglas,Oregon,41019,29,0 +2020-06-11,Douglas,Oregon,41019,29,0 +2020-06-12,Douglas,Oregon,41019,29,0 +2020-06-13,Douglas,Oregon,41019,29,0 +2020-06-14,Douglas,Oregon,41019,29,0 +2020-06-15,Douglas,Oregon,41019,29,0 +2020-06-16,Douglas,Oregon,41019,29,0 +2020-06-17,Douglas,Oregon,41019,29,0 +2020-06-18,Douglas,Oregon,41019,29,0 +2020-06-19,Douglas,Oregon,41019,32,0 +2020-06-20,Douglas,Oregon,41019,32,0 +2020-06-21,Douglas,Oregon,41019,33,0 +2020-06-22,Douglas,Oregon,41019,34,0 +2020-06-23,Douglas,Oregon,41019,34,0 +2020-06-24,Douglas,Oregon,41019,34,0 +2020-06-25,Douglas,Oregon,41019,34,0 +2020-06-26,Douglas,Oregon,41019,38,0 +2020-06-27,Douglas,Oregon,41019,38,0 +2020-06-28,Douglas,Oregon,41019,38,0 +2020-06-29,Douglas,Oregon,41019,40,0 +2020-06-30,Douglas,Oregon,41019,40,0 +2020-07-01,Douglas,Oregon,41019,42,0 +2020-07-02,Douglas,Oregon,41019,44,0 +2020-07-03,Douglas,Oregon,41019,45,0 +2020-07-04,Douglas,Oregon,41019,46,0 +2020-07-05,Douglas,Oregon,41019,50,0 +2020-07-06,Douglas,Oregon,41019,51,0 +2020-07-07,Douglas,Oregon,41019,54,0 +2020-07-08,Douglas,Oregon,41019,56,0 +2020-07-09,Douglas,Oregon,41019,56,0 +2020-07-04,Gilliam,Oregon,41021,1,0 +2020-07-05,Gilliam,Oregon,41021,1,0 +2020-07-06,Gilliam,Oregon,41021,1,0 +2020-07-07,Gilliam,Oregon,41021,1,0 +2020-07-08,Gilliam,Oregon,41021,1,0 +2020-07-09,Gilliam,Oregon,41021,1,0 +2020-03-20,Grant,Oregon,41023,1,0 +2020-03-21,Grant,Oregon,41023,1,0 +2020-03-22,Grant,Oregon,41023,1,0 +2020-03-23,Grant,Oregon,41023,1,0 +2020-03-24,Grant,Oregon,41023,1,0 +2020-03-25,Grant,Oregon,41023,1,0 +2020-03-26,Grant,Oregon,41023,1,0 +2020-03-27,Grant,Oregon,41023,1,0 +2020-03-28,Grant,Oregon,41023,1,0 +2020-03-29,Grant,Oregon,41023,1,0 +2020-03-30,Grant,Oregon,41023,1,0 +2020-03-31,Grant,Oregon,41023,1,0 +2020-04-01,Grant,Oregon,41023,1,0 +2020-04-02,Grant,Oregon,41023,1,0 +2020-04-03,Grant,Oregon,41023,1,0 +2020-04-04,Grant,Oregon,41023,1,0 +2020-04-05,Grant,Oregon,41023,1,0 +2020-04-06,Grant,Oregon,41023,1,0 +2020-04-07,Grant,Oregon,41023,1,0 +2020-04-08,Grant,Oregon,41023,1,0 +2020-04-09,Grant,Oregon,41023,1,0 +2020-04-10,Grant,Oregon,41023,1,0 +2020-04-11,Grant,Oregon,41023,1,0 +2020-04-12,Grant,Oregon,41023,1,0 +2020-04-13,Grant,Oregon,41023,1,0 +2020-04-14,Grant,Oregon,41023,1,0 +2020-04-15,Grant,Oregon,41023,1,0 +2020-04-16,Grant,Oregon,41023,1,0 +2020-04-17,Grant,Oregon,41023,1,0 +2020-04-18,Grant,Oregon,41023,1,0 +2020-04-19,Grant,Oregon,41023,1,0 +2020-04-20,Grant,Oregon,41023,1,0 +2020-04-21,Grant,Oregon,41023,1,0 +2020-04-22,Grant,Oregon,41023,1,0 +2020-04-23,Grant,Oregon,41023,1,0 +2020-04-24,Grant,Oregon,41023,1,0 +2020-04-25,Grant,Oregon,41023,1,0 +2020-04-26,Grant,Oregon,41023,1,0 +2020-04-27,Grant,Oregon,41023,1,0 +2020-04-28,Grant,Oregon,41023,1,0 +2020-04-29,Grant,Oregon,41023,1,0 +2020-04-30,Grant,Oregon,41023,1,0 +2020-05-01,Grant,Oregon,41023,1,0 +2020-05-02,Grant,Oregon,41023,1,0 +2020-05-03,Grant,Oregon,41023,1,0 +2020-05-04,Grant,Oregon,41023,1,0 +2020-05-05,Grant,Oregon,41023,1,0 +2020-05-06,Grant,Oregon,41023,1,0 +2020-05-07,Grant,Oregon,41023,1,0 +2020-05-08,Grant,Oregon,41023,1,0 +2020-05-09,Grant,Oregon,41023,1,0 +2020-05-10,Grant,Oregon,41023,1,0 +2020-05-11,Grant,Oregon,41023,1,0 +2020-05-12,Grant,Oregon,41023,1,0 +2020-05-13,Grant,Oregon,41023,1,0 +2020-05-14,Grant,Oregon,41023,1,0 +2020-05-15,Grant,Oregon,41023,1,0 +2020-05-16,Grant,Oregon,41023,1,0 +2020-05-17,Grant,Oregon,41023,1,0 +2020-05-18,Grant,Oregon,41023,1,0 +2020-05-19,Grant,Oregon,41023,1,0 +2020-05-20,Grant,Oregon,41023,1,0 +2020-05-21,Grant,Oregon,41023,1,0 +2020-05-22,Grant,Oregon,41023,1,0 +2020-05-23,Grant,Oregon,41023,1,0 +2020-05-24,Grant,Oregon,41023,1,0 +2020-05-25,Grant,Oregon,41023,1,0 +2020-05-26,Grant,Oregon,41023,1,0 +2020-05-27,Grant,Oregon,41023,1,0 +2020-05-28,Grant,Oregon,41023,1,0 +2020-05-29,Grant,Oregon,41023,1,0 +2020-05-30,Grant,Oregon,41023,1,0 +2020-05-31,Grant,Oregon,41023,1,0 +2020-06-01,Grant,Oregon,41023,1,0 +2020-06-02,Grant,Oregon,41023,1,0 +2020-06-03,Grant,Oregon,41023,1,0 +2020-06-04,Grant,Oregon,41023,1,0 +2020-06-05,Grant,Oregon,41023,1,0 +2020-06-06,Grant,Oregon,41023,1,0 +2020-06-07,Grant,Oregon,41023,1,0 +2020-06-08,Grant,Oregon,41023,1,0 +2020-06-09,Grant,Oregon,41023,1,0 +2020-06-10,Grant,Oregon,41023,1,0 +2020-06-11,Grant,Oregon,41023,1,0 +2020-06-12,Grant,Oregon,41023,1,0 +2020-06-13,Grant,Oregon,41023,1,0 +2020-06-14,Grant,Oregon,41023,1,0 +2020-06-15,Grant,Oregon,41023,1,0 +2020-06-16,Grant,Oregon,41023,1,0 +2020-06-17,Grant,Oregon,41023,1,0 +2020-06-18,Grant,Oregon,41023,1,0 +2020-06-19,Grant,Oregon,41023,1,0 +2020-06-20,Grant,Oregon,41023,1,0 +2020-06-21,Grant,Oregon,41023,1,0 +2020-06-22,Grant,Oregon,41023,1,0 +2020-06-23,Grant,Oregon,41023,1,0 +2020-06-24,Grant,Oregon,41023,1,0 +2020-06-25,Grant,Oregon,41023,1,0 +2020-06-26,Grant,Oregon,41023,1,0 +2020-06-27,Grant,Oregon,41023,1,0 +2020-06-28,Grant,Oregon,41023,1,0 +2020-06-29,Grant,Oregon,41023,1,0 +2020-06-30,Grant,Oregon,41023,1,0 +2020-07-01,Grant,Oregon,41023,1,0 +2020-07-02,Grant,Oregon,41023,1,0 +2020-07-03,Grant,Oregon,41023,1,0 +2020-07-04,Grant,Oregon,41023,1,0 +2020-07-05,Grant,Oregon,41023,1,0 +2020-07-06,Grant,Oregon,41023,1,0 +2020-07-07,Grant,Oregon,41023,1,0 +2020-07-08,Grant,Oregon,41023,1,0 +2020-07-09,Grant,Oregon,41023,1,0 +2020-04-28,Harney,Oregon,41025,1,0 +2020-04-29,Harney,Oregon,41025,1,0 +2020-04-30,Harney,Oregon,41025,1,0 +2020-05-01,Harney,Oregon,41025,1,0 +2020-05-02,Harney,Oregon,41025,1,0 +2020-05-03,Harney,Oregon,41025,1,0 +2020-05-04,Harney,Oregon,41025,1,0 +2020-05-05,Harney,Oregon,41025,1,0 +2020-05-06,Harney,Oregon,41025,1,0 +2020-05-07,Harney,Oregon,41025,1,0 +2020-05-08,Harney,Oregon,41025,1,0 +2020-05-09,Harney,Oregon,41025,1,0 +2020-05-10,Harney,Oregon,41025,1,0 +2020-05-11,Harney,Oregon,41025,1,0 +2020-05-12,Harney,Oregon,41025,1,0 +2020-05-13,Harney,Oregon,41025,1,0 +2020-05-14,Harney,Oregon,41025,1,0 +2020-05-15,Harney,Oregon,41025,1,0 +2020-05-16,Harney,Oregon,41025,1,0 +2020-05-17,Harney,Oregon,41025,1,0 +2020-05-18,Harney,Oregon,41025,1,0 +2020-05-19,Harney,Oregon,41025,1,0 +2020-05-20,Harney,Oregon,41025,1,0 +2020-05-21,Harney,Oregon,41025,1,0 +2020-05-22,Harney,Oregon,41025,1,0 +2020-05-23,Harney,Oregon,41025,1,0 +2020-05-24,Harney,Oregon,41025,1,0 +2020-05-25,Harney,Oregon,41025,1,0 +2020-05-26,Harney,Oregon,41025,1,0 +2020-05-27,Harney,Oregon,41025,1,0 +2020-05-28,Harney,Oregon,41025,1,0 +2020-05-29,Harney,Oregon,41025,1,0 +2020-05-30,Harney,Oregon,41025,1,0 +2020-05-31,Harney,Oregon,41025,1,0 +2020-06-01,Harney,Oregon,41025,1,0 +2020-06-02,Harney,Oregon,41025,1,0 +2020-06-03,Harney,Oregon,41025,1,0 +2020-06-04,Harney,Oregon,41025,1,0 +2020-06-05,Harney,Oregon,41025,1,0 +2020-06-06,Harney,Oregon,41025,1,0 +2020-06-07,Harney,Oregon,41025,1,0 +2020-06-08,Harney,Oregon,41025,1,0 +2020-06-09,Harney,Oregon,41025,1,0 +2020-06-10,Harney,Oregon,41025,1,0 +2020-06-11,Harney,Oregon,41025,1,0 +2020-06-12,Harney,Oregon,41025,1,0 +2020-06-13,Harney,Oregon,41025,1,0 +2020-06-14,Harney,Oregon,41025,1,0 +2020-06-15,Harney,Oregon,41025,1,0 +2020-06-16,Harney,Oregon,41025,1,0 +2020-06-17,Harney,Oregon,41025,1,0 +2020-06-18,Harney,Oregon,41025,1,0 +2020-06-19,Harney,Oregon,41025,1,0 +2020-06-20,Harney,Oregon,41025,1,0 +2020-06-21,Harney,Oregon,41025,1,0 +2020-06-22,Harney,Oregon,41025,1,0 +2020-06-23,Harney,Oregon,41025,1,0 +2020-06-24,Harney,Oregon,41025,1,0 +2020-06-25,Harney,Oregon,41025,1,0 +2020-06-26,Harney,Oregon,41025,1,0 +2020-06-27,Harney,Oregon,41025,1,0 +2020-06-28,Harney,Oregon,41025,1,0 +2020-06-29,Harney,Oregon,41025,1,0 +2020-06-30,Harney,Oregon,41025,1,0 +2020-07-01,Harney,Oregon,41025,1,0 +2020-07-02,Harney,Oregon,41025,1,0 +2020-07-03,Harney,Oregon,41025,1,0 +2020-07-04,Harney,Oregon,41025,1,0 +2020-07-05,Harney,Oregon,41025,1,0 +2020-07-06,Harney,Oregon,41025,1,0 +2020-07-07,Harney,Oregon,41025,1,0 +2020-07-08,Harney,Oregon,41025,2,0 +2020-07-09,Harney,Oregon,41025,2,0 +2020-03-23,Hood River,Oregon,41027,1,0 +2020-03-24,Hood River,Oregon,41027,1,0 +2020-03-25,Hood River,Oregon,41027,1,0 +2020-03-26,Hood River,Oregon,41027,1,0 +2020-03-27,Hood River,Oregon,41027,1,0 +2020-03-28,Hood River,Oregon,41027,1,0 +2020-03-29,Hood River,Oregon,41027,2,0 +2020-03-30,Hood River,Oregon,41027,2,0 +2020-03-31,Hood River,Oregon,41027,3,0 +2020-04-01,Hood River,Oregon,41027,3,0 +2020-04-02,Hood River,Oregon,41027,3,0 +2020-04-03,Hood River,Oregon,41027,3,0 +2020-04-04,Hood River,Oregon,41027,3,0 +2020-04-05,Hood River,Oregon,41027,2,0 +2020-04-06,Hood River,Oregon,41027,2,0 +2020-04-07,Hood River,Oregon,41027,2,0 +2020-04-08,Hood River,Oregon,41027,3,0 +2020-04-09,Hood River,Oregon,41027,3,0 +2020-04-10,Hood River,Oregon,41027,4,0 +2020-04-11,Hood River,Oregon,41027,4,0 +2020-04-12,Hood River,Oregon,41027,4,0 +2020-04-13,Hood River,Oregon,41027,4,0 +2020-04-14,Hood River,Oregon,41027,4,0 +2020-04-15,Hood River,Oregon,41027,4,0 +2020-04-16,Hood River,Oregon,41027,4,0 +2020-04-17,Hood River,Oregon,41027,4,0 +2020-04-18,Hood River,Oregon,41027,4,0 +2020-04-19,Hood River,Oregon,41027,4,0 +2020-04-20,Hood River,Oregon,41027,4,0 +2020-04-21,Hood River,Oregon,41027,4,0 +2020-04-22,Hood River,Oregon,41027,4,0 +2020-04-23,Hood River,Oregon,41027,5,0 +2020-04-24,Hood River,Oregon,41027,5,0 +2020-04-25,Hood River,Oregon,41027,5,0 +2020-04-26,Hood River,Oregon,41027,5,0 +2020-04-27,Hood River,Oregon,41027,5,0 +2020-04-28,Hood River,Oregon,41027,5,0 +2020-04-29,Hood River,Oregon,41027,6,0 +2020-04-30,Hood River,Oregon,41027,6,0 +2020-05-01,Hood River,Oregon,41027,6,0 +2020-05-02,Hood River,Oregon,41027,7,0 +2020-05-03,Hood River,Oregon,41027,9,0 +2020-05-04,Hood River,Oregon,41027,10,0 +2020-05-05,Hood River,Oregon,41027,11,0 +2020-05-06,Hood River,Oregon,41027,11,0 +2020-05-07,Hood River,Oregon,41027,11,0 +2020-05-08,Hood River,Oregon,41027,11,0 +2020-05-09,Hood River,Oregon,41027,12,0 +2020-05-10,Hood River,Oregon,41027,13,0 +2020-05-11,Hood River,Oregon,41027,13,0 +2020-05-12,Hood River,Oregon,41027,13,0 +2020-05-13,Hood River,Oregon,41027,14,0 +2020-05-14,Hood River,Oregon,41027,14,0 +2020-05-15,Hood River,Oregon,41027,14,0 +2020-05-16,Hood River,Oregon,41027,14,0 +2020-05-17,Hood River,Oregon,41027,14,0 +2020-05-18,Hood River,Oregon,41027,14,0 +2020-05-19,Hood River,Oregon,41027,14,0 +2020-05-20,Hood River,Oregon,41027,14,0 +2020-05-21,Hood River,Oregon,41027,12,0 +2020-05-22,Hood River,Oregon,41027,12,0 +2020-05-23,Hood River,Oregon,41027,12,0 +2020-05-24,Hood River,Oregon,41027,12,0 +2020-05-25,Hood River,Oregon,41027,12,0 +2020-05-26,Hood River,Oregon,41027,12,0 +2020-05-27,Hood River,Oregon,41027,13,0 +2020-05-28,Hood River,Oregon,41027,13,0 +2020-05-29,Hood River,Oregon,41027,14,0 +2020-05-30,Hood River,Oregon,41027,16,0 +2020-05-31,Hood River,Oregon,41027,18,0 +2020-06-01,Hood River,Oregon,41027,18,0 +2020-06-02,Hood River,Oregon,41027,22,0 +2020-06-03,Hood River,Oregon,41027,28,0 +2020-06-04,Hood River,Oregon,41027,28,0 +2020-06-05,Hood River,Oregon,41027,37,0 +2020-06-06,Hood River,Oregon,41027,44,0 +2020-06-07,Hood River,Oregon,41027,56,0 +2020-06-08,Hood River,Oregon,41027,59,0 +2020-06-09,Hood River,Oregon,41027,65,0 +2020-06-10,Hood River,Oregon,41027,67,0 +2020-06-11,Hood River,Oregon,41027,68,0 +2020-06-12,Hood River,Oregon,41027,71,0 +2020-06-13,Hood River,Oregon,41027,81,0 +2020-06-14,Hood River,Oregon,41027,81,0 +2020-06-15,Hood River,Oregon,41027,82,0 +2020-06-16,Hood River,Oregon,41027,83,0 +2020-06-17,Hood River,Oregon,41027,82,0 +2020-06-18,Hood River,Oregon,41027,85,0 +2020-06-19,Hood River,Oregon,41027,87,0 +2020-06-20,Hood River,Oregon,41027,87,0 +2020-06-21,Hood River,Oregon,41027,87,0 +2020-06-22,Hood River,Oregon,41027,88,0 +2020-06-23,Hood River,Oregon,41027,89,0 +2020-06-24,Hood River,Oregon,41027,88,0 +2020-06-25,Hood River,Oregon,41027,88,0 +2020-06-26,Hood River,Oregon,41027,88,0 +2020-06-27,Hood River,Oregon,41027,88,0 +2020-06-28,Hood River,Oregon,41027,88,0 +2020-06-29,Hood River,Oregon,41027,88,0 +2020-06-30,Hood River,Oregon,41027,88,0 +2020-07-01,Hood River,Oregon,41027,88,0 +2020-07-02,Hood River,Oregon,41027,88,0 +2020-07-03,Hood River,Oregon,41027,88,0 +2020-07-04,Hood River,Oregon,41027,88,0 +2020-07-05,Hood River,Oregon,41027,93,0 +2020-07-06,Hood River,Oregon,41027,94,0 +2020-07-07,Hood River,Oregon,41027,97,0 +2020-07-08,Hood River,Oregon,41027,98,0 +2020-07-09,Hood River,Oregon,41027,99,0 +2020-03-07,Jackson,Oregon,41029,2,0 +2020-03-08,Jackson,Oregon,41029,2,0 +2020-03-09,Jackson,Oregon,41029,2,0 +2020-03-10,Jackson,Oregon,41029,2,0 +2020-03-11,Jackson,Oregon,41029,2,0 +2020-03-12,Jackson,Oregon,41029,2,0 +2020-03-13,Jackson,Oregon,41029,2,0 +2020-03-14,Jackson,Oregon,41029,2,0 +2020-03-15,Jackson,Oregon,41029,2,0 +2020-03-16,Jackson,Oregon,41029,2,0 +2020-03-17,Jackson,Oregon,41029,2,0 +2020-03-18,Jackson,Oregon,41029,2,0 +2020-03-19,Jackson,Oregon,41029,2,0 +2020-03-20,Jackson,Oregon,41029,2,0 +2020-03-21,Jackson,Oregon,41029,2,0 +2020-03-22,Jackson,Oregon,41029,2,0 +2020-03-23,Jackson,Oregon,41029,2,0 +2020-03-24,Jackson,Oregon,41029,3,0 +2020-03-25,Jackson,Oregon,41029,4,0 +2020-03-26,Jackson,Oregon,41029,4,0 +2020-03-27,Jackson,Oregon,41029,6,0 +2020-03-28,Jackson,Oregon,41029,8,0 +2020-03-29,Jackson,Oregon,41029,19,0 +2020-03-30,Jackson,Oregon,41029,20,0 +2020-03-31,Jackson,Oregon,41029,21,0 +2020-04-01,Jackson,Oregon,41029,22,0 +2020-04-02,Jackson,Oregon,41029,27,0 +2020-04-03,Jackson,Oregon,41029,27,0 +2020-04-04,Jackson,Oregon,41029,33,0 +2020-04-05,Jackson,Oregon,41029,33,0 +2020-04-06,Jackson,Oregon,41029,39,0 +2020-04-07,Jackson,Oregon,41029,39,0 +2020-04-08,Jackson,Oregon,41029,40,0 +2020-04-09,Jackson,Oregon,41029,44,0 +2020-04-10,Jackson,Oregon,41029,44,0 +2020-04-11,Jackson,Oregon,41029,44,0 +2020-04-12,Jackson,Oregon,41029,46,0 +2020-04-13,Jackson,Oregon,41029,47,0 +2020-04-14,Jackson,Oregon,41029,47,0 +2020-04-15,Jackson,Oregon,41029,47,0 +2020-04-16,Jackson,Oregon,41029,47,0 +2020-04-17,Jackson,Oregon,41029,48,0 +2020-04-18,Jackson,Oregon,41029,49,0 +2020-04-19,Jackson,Oregon,41029,49,0 +2020-04-20,Jackson,Oregon,41029,48,0 +2020-04-21,Jackson,Oregon,41029,48,0 +2020-04-22,Jackson,Oregon,41029,48,0 +2020-04-23,Jackson,Oregon,41029,48,0 +2020-04-24,Jackson,Oregon,41029,48,0 +2020-04-25,Jackson,Oregon,41029,49,0 +2020-04-26,Jackson,Oregon,41029,49,0 +2020-04-27,Jackson,Oregon,41029,49,0 +2020-04-28,Jackson,Oregon,41029,49,0 +2020-04-29,Jackson,Oregon,41029,49,0 +2020-04-30,Jackson,Oregon,41029,49,0 +2020-05-01,Jackson,Oregon,41029,49,0 +2020-05-02,Jackson,Oregon,41029,49,0 +2020-05-03,Jackson,Oregon,41029,49,0 +2020-05-04,Jackson,Oregon,41029,49,0 +2020-05-05,Jackson,Oregon,41029,49,0 +2020-05-06,Jackson,Oregon,41029,49,0 +2020-05-07,Jackson,Oregon,41029,49,0 +2020-05-08,Jackson,Oregon,41029,49,0 +2020-05-09,Jackson,Oregon,41029,49,0 +2020-05-10,Jackson,Oregon,41029,49,0 +2020-05-11,Jackson,Oregon,41029,49,0 +2020-05-12,Jackson,Oregon,41029,50,0 +2020-05-13,Jackson,Oregon,41029,50,0 +2020-05-14,Jackson,Oregon,41029,50,0 +2020-05-15,Jackson,Oregon,41029,50,0 +2020-05-16,Jackson,Oregon,41029,50,0 +2020-05-17,Jackson,Oregon,41029,50,0 +2020-05-18,Jackson,Oregon,41029,51,0 +2020-05-19,Jackson,Oregon,41029,52,0 +2020-05-20,Jackson,Oregon,41029,52,0 +2020-05-21,Jackson,Oregon,41029,52,0 +2020-05-22,Jackson,Oregon,41029,55,0 +2020-05-23,Jackson,Oregon,41029,56,0 +2020-05-24,Jackson,Oregon,41029,57,0 +2020-05-25,Jackson,Oregon,41029,60,0 +2020-05-26,Jackson,Oregon,41029,60,0 +2020-05-27,Jackson,Oregon,41029,65,0 +2020-05-28,Jackson,Oregon,41029,65,0 +2020-05-29,Jackson,Oregon,41029,65,0 +2020-05-30,Jackson,Oregon,41029,65,0 +2020-05-31,Jackson,Oregon,41029,66,0 +2020-06-01,Jackson,Oregon,41029,67,0 +2020-06-02,Jackson,Oregon,41029,67,0 +2020-06-03,Jackson,Oregon,41029,68,0 +2020-06-04,Jackson,Oregon,41029,69,0 +2020-06-05,Jackson,Oregon,41029,69,0 +2020-06-06,Jackson,Oregon,41029,71,0 +2020-06-07,Jackson,Oregon,41029,71,0 +2020-06-08,Jackson,Oregon,41029,71,0 +2020-06-09,Jackson,Oregon,41029,71,0 +2020-06-10,Jackson,Oregon,41029,77,0 +2020-06-11,Jackson,Oregon,41029,76,0 +2020-06-12,Jackson,Oregon,41029,78,0 +2020-06-13,Jackson,Oregon,41029,81,0 +2020-06-14,Jackson,Oregon,41029,81,0 +2020-06-15,Jackson,Oregon,41029,82,0 +2020-06-16,Jackson,Oregon,41029,83,0 +2020-06-17,Jackson,Oregon,41029,85,0 +2020-06-18,Jackson,Oregon,41029,85,0 +2020-06-19,Jackson,Oregon,41029,85,0 +2020-06-20,Jackson,Oregon,41029,85,0 +2020-06-21,Jackson,Oregon,41029,90,0 +2020-06-22,Jackson,Oregon,41029,91,0 +2020-06-23,Jackson,Oregon,41029,92,0 +2020-06-24,Jackson,Oregon,41029,94,0 +2020-06-25,Jackson,Oregon,41029,93,0 +2020-06-26,Jackson,Oregon,41029,98,0 +2020-06-27,Jackson,Oregon,41029,97,0 +2020-06-28,Jackson,Oregon,41029,106,0 +2020-06-29,Jackson,Oregon,41029,109,0 +2020-06-30,Jackson,Oregon,41029,114,0 +2020-07-01,Jackson,Oregon,41029,117,0 +2020-07-02,Jackson,Oregon,41029,131,0 +2020-07-03,Jackson,Oregon,41029,140,0 +2020-07-04,Jackson,Oregon,41029,147,0 +2020-07-05,Jackson,Oregon,41029,149,0 +2020-07-06,Jackson,Oregon,41029,152,0 +2020-07-07,Jackson,Oregon,41029,152,0 +2020-07-08,Jackson,Oregon,41029,157,0 +2020-07-09,Jackson,Oregon,41029,164,0 +2020-04-14,Jefferson,Oregon,41031,1,0 +2020-04-15,Jefferson,Oregon,41031,1,0 +2020-04-16,Jefferson,Oregon,41031,1,0 +2020-04-17,Jefferson,Oregon,41031,1,0 +2020-04-18,Jefferson,Oregon,41031,1,0 +2020-04-19,Jefferson,Oregon,41031,1,0 +2020-04-20,Jefferson,Oregon,41031,1,0 +2020-04-21,Jefferson,Oregon,41031,1,0 +2020-04-22,Jefferson,Oregon,41031,2,0 +2020-04-23,Jefferson,Oregon,41031,2,0 +2020-04-24,Jefferson,Oregon,41031,2,0 +2020-04-25,Jefferson,Oregon,41031,5,0 +2020-04-26,Jefferson,Oregon,41031,6,0 +2020-04-27,Jefferson,Oregon,41031,6,0 +2020-04-28,Jefferson,Oregon,41031,6,0 +2020-04-29,Jefferson,Oregon,41031,10,0 +2020-04-30,Jefferson,Oregon,41031,10,0 +2020-05-01,Jefferson,Oregon,41031,10,0 +2020-05-02,Jefferson,Oregon,41031,13,0 +2020-05-03,Jefferson,Oregon,41031,13,0 +2020-05-04,Jefferson,Oregon,41031,14,0 +2020-05-05,Jefferson,Oregon,41031,14,0 +2020-05-06,Jefferson,Oregon,41031,18,0 +2020-05-07,Jefferson,Oregon,41031,22,0 +2020-05-08,Jefferson,Oregon,41031,22,0 +2020-05-09,Jefferson,Oregon,41031,24,0 +2020-05-10,Jefferson,Oregon,41031,24,0 +2020-05-11,Jefferson,Oregon,41031,24,0 +2020-05-12,Jefferson,Oregon,41031,24,0 +2020-05-13,Jefferson,Oregon,41031,24,0 +2020-05-14,Jefferson,Oregon,41031,24,0 +2020-05-15,Jefferson,Oregon,41031,24,0 +2020-05-16,Jefferson,Oregon,41031,24,0 +2020-05-17,Jefferson,Oregon,41031,24,0 +2020-05-18,Jefferson,Oregon,41031,24,0 +2020-05-19,Jefferson,Oregon,41031,24,0 +2020-05-20,Jefferson,Oregon,41031,24,0 +2020-05-21,Jefferson,Oregon,41031,25,0 +2020-05-22,Jefferson,Oregon,41031,25,0 +2020-05-23,Jefferson,Oregon,41031,25,0 +2020-05-24,Jefferson,Oregon,41031,25,0 +2020-05-25,Jefferson,Oregon,41031,24,0 +2020-05-26,Jefferson,Oregon,41031,24,0 +2020-05-27,Jefferson,Oregon,41031,24,0 +2020-05-28,Jefferson,Oregon,41031,25,0 +2020-05-29,Jefferson,Oregon,41031,28,0 +2020-05-30,Jefferson,Oregon,41031,30,0 +2020-05-31,Jefferson,Oregon,41031,33,0 +2020-06-01,Jefferson,Oregon,41031,44,0 +2020-06-02,Jefferson,Oregon,41031,44,0 +2020-06-03,Jefferson,Oregon,41031,45,0 +2020-06-04,Jefferson,Oregon,41031,46,0 +2020-06-05,Jefferson,Oregon,41031,55,0 +2020-06-06,Jefferson,Oregon,41031,57,0 +2020-06-07,Jefferson,Oregon,41031,57,0 +2020-06-08,Jefferson,Oregon,41031,58,0 +2020-06-09,Jefferson,Oregon,41031,58,0 +2020-06-10,Jefferson,Oregon,41031,64,0 +2020-06-11,Jefferson,Oregon,41031,67,0 +2020-06-12,Jefferson,Oregon,41031,65,0 +2020-06-13,Jefferson,Oregon,41031,67,0 +2020-06-14,Jefferson,Oregon,41031,67,0 +2020-06-15,Jefferson,Oregon,41031,68,0 +2020-06-16,Jefferson,Oregon,41031,69,0 +2020-06-17,Jefferson,Oregon,41031,69,0 +2020-06-18,Jefferson,Oregon,41031,73,0 +2020-06-19,Jefferson,Oregon,41031,77,0 +2020-06-20,Jefferson,Oregon,41031,77,0 +2020-06-21,Jefferson,Oregon,41031,78,0 +2020-06-22,Jefferson,Oregon,41031,79,0 +2020-06-23,Jefferson,Oregon,41031,81,0 +2020-06-24,Jefferson,Oregon,41031,84,0 +2020-06-25,Jefferson,Oregon,41031,85,0 +2020-06-26,Jefferson,Oregon,41031,91,0 +2020-06-27,Jefferson,Oregon,41031,94,0 +2020-06-28,Jefferson,Oregon,41031,97,0 +2020-06-29,Jefferson,Oregon,41031,100,0 +2020-06-30,Jefferson,Oregon,41031,112,0 +2020-07-01,Jefferson,Oregon,41031,118,0 +2020-07-02,Jefferson,Oregon,41031,126,0 +2020-07-03,Jefferson,Oregon,41031,131,0 +2020-07-04,Jefferson,Oregon,41031,132,0 +2020-07-05,Jefferson,Oregon,41031,133,0 +2020-07-06,Jefferson,Oregon,41031,134,0 +2020-07-07,Jefferson,Oregon,41031,136,0 +2020-07-08,Jefferson,Oregon,41031,137,0 +2020-07-09,Jefferson,Oregon,41031,145,0 +2020-03-21,Josephine,Oregon,41033,1,0 +2020-03-22,Josephine,Oregon,41033,1,0 +2020-03-23,Josephine,Oregon,41033,1,0 +2020-03-24,Josephine,Oregon,41033,1,0 +2020-03-25,Josephine,Oregon,41033,2,0 +2020-03-26,Josephine,Oregon,41033,4,0 +2020-03-27,Josephine,Oregon,41033,4,0 +2020-03-28,Josephine,Oregon,41033,5,0 +2020-03-29,Josephine,Oregon,41033,6,0 +2020-03-30,Josephine,Oregon,41033,10,0 +2020-03-31,Josephine,Oregon,41033,10,0 +2020-04-01,Josephine,Oregon,41033,10,0 +2020-04-02,Josephine,Oregon,41033,12,0 +2020-04-03,Josephine,Oregon,41033,12,0 +2020-04-04,Josephine,Oregon,41033,13,0 +2020-04-05,Josephine,Oregon,41033,13,0 +2020-04-06,Josephine,Oregon,41033,16,0 +2020-04-07,Josephine,Oregon,41033,16,0 +2020-04-08,Josephine,Oregon,41033,16,0 +2020-04-09,Josephine,Oregon,41033,16,0 +2020-04-10,Josephine,Oregon,41033,17,0 +2020-04-11,Josephine,Oregon,41033,17,1 +2020-04-12,Josephine,Oregon,41033,18,1 +2020-04-13,Josephine,Oregon,41033,19,1 +2020-04-14,Josephine,Oregon,41033,19,1 +2020-04-15,Josephine,Oregon,41033,19,1 +2020-04-16,Josephine,Oregon,41033,19,1 +2020-04-17,Josephine,Oregon,41033,19,1 +2020-04-18,Josephine,Oregon,41033,19,1 +2020-04-19,Josephine,Oregon,41033,19,1 +2020-04-20,Josephine,Oregon,41033,19,1 +2020-04-21,Josephine,Oregon,41033,19,1 +2020-04-22,Josephine,Oregon,41033,19,1 +2020-04-23,Josephine,Oregon,41033,19,1 +2020-04-24,Josephine,Oregon,41033,19,1 +2020-04-25,Josephine,Oregon,41033,19,1 +2020-04-26,Josephine,Oregon,41033,20,1 +2020-04-27,Josephine,Oregon,41033,20,1 +2020-04-28,Josephine,Oregon,41033,20,1 +2020-04-29,Josephine,Oregon,41033,20,1 +2020-04-30,Josephine,Oregon,41033,20,1 +2020-05-01,Josephine,Oregon,41033,21,1 +2020-05-02,Josephine,Oregon,41033,21,1 +2020-05-03,Josephine,Oregon,41033,22,1 +2020-05-04,Josephine,Oregon,41033,22,1 +2020-05-05,Josephine,Oregon,41033,24,1 +2020-05-06,Josephine,Oregon,41033,24,1 +2020-05-07,Josephine,Oregon,41033,24,1 +2020-05-08,Josephine,Oregon,41033,24,1 +2020-05-09,Josephine,Oregon,41033,24,1 +2020-05-10,Josephine,Oregon,41033,24,1 +2020-05-11,Josephine,Oregon,41033,24,1 +2020-05-12,Josephine,Oregon,41033,25,1 +2020-05-13,Josephine,Oregon,41033,25,1 +2020-05-14,Josephine,Oregon,41033,25,1 +2020-05-15,Josephine,Oregon,41033,25,1 +2020-05-16,Josephine,Oregon,41033,25,1 +2020-05-17,Josephine,Oregon,41033,25,1 +2020-05-18,Josephine,Oregon,41033,25,1 +2020-05-19,Josephine,Oregon,41033,25,1 +2020-05-20,Josephine,Oregon,41033,27,1 +2020-05-21,Josephine,Oregon,41033,25,1 +2020-05-22,Josephine,Oregon,41033,25,1 +2020-05-23,Josephine,Oregon,41033,25,1 +2020-05-24,Josephine,Oregon,41033,25,1 +2020-05-25,Josephine,Oregon,41033,26,1 +2020-05-26,Josephine,Oregon,41033,25,1 +2020-05-27,Josephine,Oregon,41033,25,1 +2020-05-28,Josephine,Oregon,41033,25,1 +2020-05-29,Josephine,Oregon,41033,23,1 +2020-05-30,Josephine,Oregon,41033,23,1 +2020-05-31,Josephine,Oregon,41033,23,1 +2020-06-01,Josephine,Oregon,41033,24,1 +2020-06-02,Josephine,Oregon,41033,24,1 +2020-06-03,Josephine,Oregon,41033,23,1 +2020-06-04,Josephine,Oregon,41033,23,1 +2020-06-05,Josephine,Oregon,41033,23,1 +2020-06-06,Josephine,Oregon,41033,23,1 +2020-06-07,Josephine,Oregon,41033,23,1 +2020-06-08,Josephine,Oregon,41033,23,1 +2020-06-09,Josephine,Oregon,41033,23,1 +2020-06-10,Josephine,Oregon,41033,23,1 +2020-06-11,Josephine,Oregon,41033,23,1 +2020-06-12,Josephine,Oregon,41033,23,1 +2020-06-13,Josephine,Oregon,41033,23,1 +2020-06-14,Josephine,Oregon,41033,23,1 +2020-06-15,Josephine,Oregon,41033,23,1 +2020-06-16,Josephine,Oregon,41033,24,1 +2020-06-17,Josephine,Oregon,41033,26,1 +2020-06-18,Josephine,Oregon,41033,26,1 +2020-06-19,Josephine,Oregon,41033,26,1 +2020-06-20,Josephine,Oregon,41033,26,1 +2020-06-21,Josephine,Oregon,41033,26,1 +2020-06-22,Josephine,Oregon,41033,26,1 +2020-06-23,Josephine,Oregon,41033,26,1 +2020-06-24,Josephine,Oregon,41033,26,1 +2020-06-25,Josephine,Oregon,41033,26,1 +2020-06-26,Josephine,Oregon,41033,28,1 +2020-06-27,Josephine,Oregon,41033,30,1 +2020-06-28,Josephine,Oregon,41033,31,1 +2020-06-29,Josephine,Oregon,41033,32,1 +2020-06-30,Josephine,Oregon,41033,33,1 +2020-07-01,Josephine,Oregon,41033,33,1 +2020-07-02,Josephine,Oregon,41033,41,1 +2020-07-03,Josephine,Oregon,41033,44,1 +2020-07-04,Josephine,Oregon,41033,52,1 +2020-07-05,Josephine,Oregon,41033,55,1 +2020-07-06,Josephine,Oregon,41033,56,1 +2020-07-07,Josephine,Oregon,41033,59,1 +2020-07-08,Josephine,Oregon,41033,61,1 +2020-07-09,Josephine,Oregon,41033,54,1 +2020-03-07,Klamath,Oregon,41035,1,0 +2020-03-08,Klamath,Oregon,41035,1,0 +2020-03-09,Klamath,Oregon,41035,1,0 +2020-03-10,Klamath,Oregon,41035,1,0 +2020-03-11,Klamath,Oregon,41035,1,0 +2020-03-12,Klamath,Oregon,41035,1,0 +2020-03-13,Klamath,Oregon,41035,1,0 +2020-03-14,Klamath,Oregon,41035,1,0 +2020-03-15,Klamath,Oregon,41035,1,0 +2020-03-16,Klamath,Oregon,41035,1,0 +2020-03-17,Klamath,Oregon,41035,1,0 +2020-03-18,Klamath,Oregon,41035,1,0 +2020-03-19,Klamath,Oregon,41035,1,0 +2020-03-20,Klamath,Oregon,41035,1,0 +2020-03-21,Klamath,Oregon,41035,1,0 +2020-03-22,Klamath,Oregon,41035,1,0 +2020-03-23,Klamath,Oregon,41035,1,0 +2020-03-24,Klamath,Oregon,41035,1,0 +2020-03-25,Klamath,Oregon,41035,1,0 +2020-03-26,Klamath,Oregon,41035,1,0 +2020-03-27,Klamath,Oregon,41035,2,0 +2020-03-28,Klamath,Oregon,41035,2,0 +2020-03-29,Klamath,Oregon,41035,4,0 +2020-03-30,Klamath,Oregon,41035,4,0 +2020-03-31,Klamath,Oregon,41035,5,0 +2020-04-01,Klamath,Oregon,41035,5,0 +2020-04-02,Klamath,Oregon,41035,8,0 +2020-04-03,Klamath,Oregon,41035,13,0 +2020-04-04,Klamath,Oregon,41035,14,0 +2020-04-05,Klamath,Oregon,41035,15,0 +2020-04-06,Klamath,Oregon,41035,18,0 +2020-04-07,Klamath,Oregon,41035,19,0 +2020-04-08,Klamath,Oregon,41035,19,0 +2020-04-09,Klamath,Oregon,41035,20,0 +2020-04-10,Klamath,Oregon,41035,24,0 +2020-04-11,Klamath,Oregon,41035,25,0 +2020-04-12,Klamath,Oregon,41035,25,0 +2020-04-13,Klamath,Oregon,41035,25,0 +2020-04-14,Klamath,Oregon,41035,26,0 +2020-04-15,Klamath,Oregon,41035,26,0 +2020-04-16,Klamath,Oregon,41035,29,0 +2020-04-17,Klamath,Oregon,41035,29,0 +2020-04-18,Klamath,Oregon,41035,31,0 +2020-04-19,Klamath,Oregon,41035,30,0 +2020-04-20,Klamath,Oregon,41035,31,0 +2020-04-21,Klamath,Oregon,41035,33,0 +2020-04-22,Klamath,Oregon,41035,33,0 +2020-04-23,Klamath,Oregon,41035,36,0 +2020-04-24,Klamath,Oregon,41035,36,0 +2020-04-25,Klamath,Oregon,41035,36,0 +2020-04-26,Klamath,Oregon,41035,36,0 +2020-04-27,Klamath,Oregon,41035,36,0 +2020-04-28,Klamath,Oregon,41035,37,0 +2020-04-29,Klamath,Oregon,41035,37,0 +2020-04-30,Klamath,Oregon,41035,38,0 +2020-05-01,Klamath,Oregon,41035,39,0 +2020-05-02,Klamath,Oregon,41035,39,0 +2020-05-03,Klamath,Oregon,41035,39,0 +2020-05-04,Klamath,Oregon,41035,39,0 +2020-05-05,Klamath,Oregon,41035,39,0 +2020-05-06,Klamath,Oregon,41035,39,0 +2020-05-07,Klamath,Oregon,41035,39,0 +2020-05-08,Klamath,Oregon,41035,39,0 +2020-05-09,Klamath,Oregon,41035,39,0 +2020-05-10,Klamath,Oregon,41035,39,0 +2020-05-11,Klamath,Oregon,41035,40,0 +2020-05-12,Klamath,Oregon,41035,41,0 +2020-05-13,Klamath,Oregon,41035,41,0 +2020-05-14,Klamath,Oregon,41035,41,0 +2020-05-15,Klamath,Oregon,41035,41,0 +2020-05-16,Klamath,Oregon,41035,41,0 +2020-05-17,Klamath,Oregon,41035,41,0 +2020-05-18,Klamath,Oregon,41035,41,0 +2020-05-19,Klamath,Oregon,41035,41,0 +2020-05-20,Klamath,Oregon,41035,41,0 +2020-05-21,Klamath,Oregon,41035,41,0 +2020-05-22,Klamath,Oregon,41035,41,0 +2020-05-23,Klamath,Oregon,41035,41,0 +2020-05-24,Klamath,Oregon,41035,41,0 +2020-05-25,Klamath,Oregon,41035,41,0 +2020-05-26,Klamath,Oregon,41035,41,0 +2020-05-27,Klamath,Oregon,41035,41,0 +2020-05-28,Klamath,Oregon,41035,41,0 +2020-05-29,Klamath,Oregon,41035,42,0 +2020-05-30,Klamath,Oregon,41035,44,0 +2020-05-31,Klamath,Oregon,41035,44,0 +2020-06-01,Klamath,Oregon,41035,44,0 +2020-06-02,Klamath,Oregon,41035,44,0 +2020-06-03,Klamath,Oregon,41035,44,0 +2020-06-04,Klamath,Oregon,41035,44,0 +2020-06-05,Klamath,Oregon,41035,45,0 +2020-06-06,Klamath,Oregon,41035,45,0 +2020-06-07,Klamath,Oregon,41035,45,0 +2020-06-08,Klamath,Oregon,41035,46,0 +2020-06-09,Klamath,Oregon,41035,46,0 +2020-06-10,Klamath,Oregon,41035,46,0 +2020-06-11,Klamath,Oregon,41035,46,0 +2020-06-12,Klamath,Oregon,41035,48,0 +2020-06-13,Klamath,Oregon,41035,48,0 +2020-06-14,Klamath,Oregon,41035,51,0 +2020-06-15,Klamath,Oregon,41035,53,0 +2020-06-16,Klamath,Oregon,41035,61,0 +2020-06-17,Klamath,Oregon,41035,64,0 +2020-06-18,Klamath,Oregon,41035,68,0 +2020-06-19,Klamath,Oregon,41035,80,0 +2020-06-20,Klamath,Oregon,41035,80,0 +2020-06-21,Klamath,Oregon,41035,88,0 +2020-06-22,Klamath,Oregon,41035,88,0 +2020-06-23,Klamath,Oregon,41035,95,0 +2020-06-24,Klamath,Oregon,41035,98,0 +2020-06-25,Klamath,Oregon,41035,111,0 +2020-06-26,Klamath,Oregon,41035,111,0 +2020-06-27,Klamath,Oregon,41035,111,0 +2020-06-28,Klamath,Oregon,41035,111,0 +2020-06-29,Klamath,Oregon,41035,116,0 +2020-06-30,Klamath,Oregon,41035,119,0 +2020-07-01,Klamath,Oregon,41035,123,0 +2020-07-02,Klamath,Oregon,41035,123,1 +2020-07-03,Klamath,Oregon,41035,125,1 +2020-07-04,Klamath,Oregon,41035,130,1 +2020-07-05,Klamath,Oregon,41035,130,1 +2020-07-06,Klamath,Oregon,41035,130,1 +2020-07-07,Klamath,Oregon,41035,131,1 +2020-07-08,Klamath,Oregon,41035,131,1 +2020-07-09,Klamath,Oregon,41035,131,1 +2020-05-27,Lake,Oregon,41037,2,0 +2020-05-28,Lake,Oregon,41037,2,0 +2020-05-29,Lake,Oregon,41037,2,0 +2020-05-30,Lake,Oregon,41037,2,0 +2020-05-31,Lake,Oregon,41037,2,0 +2020-06-01,Lake,Oregon,41037,2,0 +2020-06-02,Lake,Oregon,41037,2,0 +2020-06-03,Lake,Oregon,41037,2,0 +2020-06-04,Lake,Oregon,41037,2,0 +2020-06-05,Lake,Oregon,41037,2,0 +2020-06-06,Lake,Oregon,41037,2,0 +2020-06-07,Lake,Oregon,41037,2,0 +2020-06-08,Lake,Oregon,41037,2,0 +2020-06-09,Lake,Oregon,41037,2,0 +2020-06-10,Lake,Oregon,41037,2,0 +2020-06-11,Lake,Oregon,41037,4,0 +2020-06-12,Lake,Oregon,41037,4,0 +2020-06-13,Lake,Oregon,41037,4,0 +2020-06-14,Lake,Oregon,41037,4,0 +2020-06-15,Lake,Oregon,41037,5,0 +2020-06-16,Lake,Oregon,41037,5,0 +2020-06-17,Lake,Oregon,41037,6,0 +2020-06-18,Lake,Oregon,41037,6,0 +2020-06-19,Lake,Oregon,41037,6,0 +2020-06-20,Lake,Oregon,41037,6,0 +2020-06-21,Lake,Oregon,41037,6,0 +2020-06-22,Lake,Oregon,41037,6,0 +2020-06-23,Lake,Oregon,41037,6,0 +2020-06-24,Lake,Oregon,41037,6,0 +2020-06-25,Lake,Oregon,41037,9,0 +2020-06-26,Lake,Oregon,41037,12,0 +2020-06-27,Lake,Oregon,41037,13,0 +2020-06-28,Lake,Oregon,41037,13,0 +2020-06-29,Lake,Oregon,41037,15,0 +2020-06-30,Lake,Oregon,41037,17,0 +2020-07-01,Lake,Oregon,41037,19,0 +2020-07-02,Lake,Oregon,41037,19,0 +2020-07-03,Lake,Oregon,41037,20,0 +2020-07-04,Lake,Oregon,41037,21,0 +2020-07-05,Lake,Oregon,41037,21,0 +2020-07-06,Lake,Oregon,41037,21,0 +2020-07-07,Lake,Oregon,41037,22,0 +2020-07-08,Lake,Oregon,41037,22,0 +2020-07-09,Lake,Oregon,41037,24,0 +2020-03-17,Lane,Oregon,41039,2,1 +2020-03-18,Lane,Oregon,41039,2,1 +2020-03-19,Lane,Oregon,41039,2,1 +2020-03-20,Lane,Oregon,41039,2,1 +2020-03-21,Lane,Oregon,41039,3,1 +2020-03-22,Lane,Oregon,41039,4,1 +2020-03-23,Lane,Oregon,41039,4,1 +2020-03-24,Lane,Oregon,41039,4,1 +2020-03-25,Lane,Oregon,41039,5,1 +2020-03-26,Lane,Oregon,41039,7,1 +2020-03-27,Lane,Oregon,41039,9,1 +2020-03-28,Lane,Oregon,41039,9,1 +2020-03-29,Lane,Oregon,41039,10,1 +2020-03-30,Lane,Oregon,41039,12,1 +2020-03-31,Lane,Oregon,41039,16,1 +2020-04-01,Lane,Oregon,41039,18,1 +2020-04-02,Lane,Oregon,41039,21,1 +2020-04-03,Lane,Oregon,41039,21,1 +2020-04-04,Lane,Oregon,41039,24,1 +2020-04-05,Lane,Oregon,41039,27,1 +2020-04-06,Lane,Oregon,41039,29,1 +2020-04-07,Lane,Oregon,41039,30,1 +2020-04-08,Lane,Oregon,41039,31,1 +2020-04-09,Lane,Oregon,41039,33,1 +2020-04-10,Lane,Oregon,41039,34,1 +2020-04-11,Lane,Oregon,41039,35,1 +2020-04-12,Lane,Oregon,41039,37,1 +2020-04-13,Lane,Oregon,41039,41,1 +2020-04-14,Lane,Oregon,41039,42,1 +2020-04-15,Lane,Oregon,41039,44,1 +2020-04-16,Lane,Oregon,41039,45,1 +2020-04-17,Lane,Oregon,41039,46,1 +2020-04-18,Lane,Oregon,41039,46,1 +2020-04-19,Lane,Oregon,41039,48,1 +2020-04-20,Lane,Oregon,41039,48,1 +2020-04-21,Lane,Oregon,41039,48,1 +2020-04-22,Lane,Oregon,41039,48,1 +2020-04-23,Lane,Oregon,41039,48,1 +2020-04-24,Lane,Oregon,41039,50,1 +2020-04-25,Lane,Oregon,41039,50,2 +2020-04-26,Lane,Oregon,41039,50,2 +2020-04-27,Lane,Oregon,41039,50,2 +2020-04-28,Lane,Oregon,41039,50,2 +2020-04-29,Lane,Oregon,41039,50,2 +2020-04-30,Lane,Oregon,41039,50,2 +2020-05-01,Lane,Oregon,41039,50,2 +2020-05-02,Lane,Oregon,41039,54,2 +2020-05-03,Lane,Oregon,41039,54,2 +2020-05-04,Lane,Oregon,41039,55,2 +2020-05-05,Lane,Oregon,41039,55,2 +2020-05-06,Lane,Oregon,41039,57,2 +2020-05-07,Lane,Oregon,41039,57,2 +2020-05-08,Lane,Oregon,41039,59,2 +2020-05-09,Lane,Oregon,41039,60,2 +2020-05-10,Lane,Oregon,41039,60,2 +2020-05-11,Lane,Oregon,41039,60,2 +2020-05-12,Lane,Oregon,41039,61,2 +2020-05-13,Lane,Oregon,41039,61,2 +2020-05-14,Lane,Oregon,41039,61,2 +2020-05-15,Lane,Oregon,41039,61,2 +2020-05-16,Lane,Oregon,41039,64,2 +2020-05-17,Lane,Oregon,41039,64,2 +2020-05-18,Lane,Oregon,41039,65,2 +2020-05-19,Lane,Oregon,41039,65,2 +2020-05-20,Lane,Oregon,41039,66,2 +2020-05-21,Lane,Oregon,41039,66,2 +2020-05-22,Lane,Oregon,41039,66,2 +2020-05-23,Lane,Oregon,41039,67,2 +2020-05-24,Lane,Oregon,41039,67,2 +2020-05-25,Lane,Oregon,41039,67,2 +2020-05-26,Lane,Oregon,41039,67,2 +2020-05-27,Lane,Oregon,41039,67,2 +2020-05-28,Lane,Oregon,41039,67,2 +2020-05-29,Lane,Oregon,41039,68,2 +2020-05-30,Lane,Oregon,41039,69,3 +2020-05-31,Lane,Oregon,41039,73,3 +2020-06-01,Lane,Oregon,41039,77,3 +2020-06-02,Lane,Oregon,41039,77,3 +2020-06-03,Lane,Oregon,41039,77,3 +2020-06-04,Lane,Oregon,41039,80,3 +2020-06-05,Lane,Oregon,41039,80,3 +2020-06-06,Lane,Oregon,41039,80,3 +2020-06-07,Lane,Oregon,41039,80,3 +2020-06-08,Lane,Oregon,41039,81,3 +2020-06-09,Lane,Oregon,41039,81,3 +2020-06-10,Lane,Oregon,41039,82,3 +2020-06-11,Lane,Oregon,41039,85,3 +2020-06-12,Lane,Oregon,41039,85,3 +2020-06-13,Lane,Oregon,41039,88,3 +2020-06-14,Lane,Oregon,41039,89,3 +2020-06-15,Lane,Oregon,41039,89,3 +2020-06-16,Lane,Oregon,41039,90,3 +2020-06-17,Lane,Oregon,41039,90,3 +2020-06-18,Lane,Oregon,41039,90,3 +2020-06-19,Lane,Oregon,41039,93,3 +2020-06-20,Lane,Oregon,41039,93,3 +2020-06-21,Lane,Oregon,41039,102,3 +2020-06-22,Lane,Oregon,41039,106,3 +2020-06-23,Lane,Oregon,41039,107,3 +2020-06-24,Lane,Oregon,41039,107,3 +2020-06-25,Lane,Oregon,41039,112,3 +2020-06-26,Lane,Oregon,41039,122,3 +2020-06-27,Lane,Oregon,41039,136,3 +2020-06-28,Lane,Oregon,41039,139,3 +2020-06-29,Lane,Oregon,41039,145,3 +2020-06-30,Lane,Oregon,41039,151,3 +2020-07-01,Lane,Oregon,41039,165,3 +2020-07-02,Lane,Oregon,41039,180,3 +2020-07-03,Lane,Oregon,41039,196,3 +2020-07-04,Lane,Oregon,41039,208,3 +2020-07-05,Lane,Oregon,41039,218,3 +2020-07-06,Lane,Oregon,41039,228,3 +2020-07-07,Lane,Oregon,41039,243,3 +2020-07-08,Lane,Oregon,41039,253,3 +2020-07-09,Lane,Oregon,41039,271,3 +2020-03-25,Lincoln,Oregon,41041,1,0 +2020-03-26,Lincoln,Oregon,41041,1,0 +2020-03-27,Lincoln,Oregon,41041,1,0 +2020-03-28,Lincoln,Oregon,41041,1,0 +2020-03-29,Lincoln,Oregon,41041,1,0 +2020-03-30,Lincoln,Oregon,41041,1,0 +2020-03-31,Lincoln,Oregon,41041,2,0 +2020-04-01,Lincoln,Oregon,41041,3,0 +2020-04-02,Lincoln,Oregon,41041,4,0 +2020-04-03,Lincoln,Oregon,41041,4,0 +2020-04-04,Lincoln,Oregon,41041,4,0 +2020-04-05,Lincoln,Oregon,41041,4,0 +2020-04-06,Lincoln,Oregon,41041,4,0 +2020-04-07,Lincoln,Oregon,41041,4,0 +2020-04-08,Lincoln,Oregon,41041,4,0 +2020-04-09,Lincoln,Oregon,41041,4,0 +2020-04-10,Lincoln,Oregon,41041,4,0 +2020-04-11,Lincoln,Oregon,41041,4,0 +2020-04-12,Lincoln,Oregon,41041,4,0 +2020-04-13,Lincoln,Oregon,41041,4,0 +2020-04-14,Lincoln,Oregon,41041,4,0 +2020-04-15,Lincoln,Oregon,41041,4,0 +2020-04-16,Lincoln,Oregon,41041,4,0 +2020-04-17,Lincoln,Oregon,41041,4,0 +2020-04-18,Lincoln,Oregon,41041,4,0 +2020-04-19,Lincoln,Oregon,41041,4,0 +2020-04-20,Lincoln,Oregon,41041,5,0 +2020-04-21,Lincoln,Oregon,41041,5,0 +2020-04-22,Lincoln,Oregon,41041,5,0 +2020-04-23,Lincoln,Oregon,41041,5,0 +2020-04-24,Lincoln,Oregon,41041,5,0 +2020-04-25,Lincoln,Oregon,41041,5,0 +2020-04-26,Lincoln,Oregon,41041,5,0 +2020-04-27,Lincoln,Oregon,41041,5,0 +2020-04-28,Lincoln,Oregon,41041,5,0 +2020-04-29,Lincoln,Oregon,41041,5,0 +2020-04-30,Lincoln,Oregon,41041,5,0 +2020-05-01,Lincoln,Oregon,41041,5,0 +2020-05-02,Lincoln,Oregon,41041,5,0 +2020-05-03,Lincoln,Oregon,41041,5,0 +2020-05-04,Lincoln,Oregon,41041,5,0 +2020-05-05,Lincoln,Oregon,41041,5,0 +2020-05-06,Lincoln,Oregon,41041,6,0 +2020-05-07,Lincoln,Oregon,41041,6,0 +2020-05-08,Lincoln,Oregon,41041,6,0 +2020-05-09,Lincoln,Oregon,41041,6,0 +2020-05-10,Lincoln,Oregon,41041,6,0 +2020-05-11,Lincoln,Oregon,41041,6,0 +2020-05-12,Lincoln,Oregon,41041,6,0 +2020-05-13,Lincoln,Oregon,41041,6,0 +2020-05-14,Lincoln,Oregon,41041,6,0 +2020-05-15,Lincoln,Oregon,41041,7,0 +2020-05-16,Lincoln,Oregon,41041,7,0 +2020-05-17,Lincoln,Oregon,41041,8,0 +2020-05-18,Lincoln,Oregon,41041,8,0 +2020-05-19,Lincoln,Oregon,41041,8,0 +2020-05-20,Lincoln,Oregon,41041,8,0 +2020-05-21,Lincoln,Oregon,41041,8,0 +2020-05-22,Lincoln,Oregon,41041,8,0 +2020-05-23,Lincoln,Oregon,41041,8,0 +2020-05-24,Lincoln,Oregon,41041,9,0 +2020-05-25,Lincoln,Oregon,41041,9,0 +2020-05-26,Lincoln,Oregon,41041,9,0 +2020-05-27,Lincoln,Oregon,41041,11,0 +2020-05-28,Lincoln,Oregon,41041,10,0 +2020-05-29,Lincoln,Oregon,41041,12,0 +2020-05-30,Lincoln,Oregon,41041,12,0 +2020-05-31,Lincoln,Oregon,41041,12,0 +2020-06-01,Lincoln,Oregon,41041,15,0 +2020-06-02,Lincoln,Oregon,41041,17,0 +2020-06-03,Lincoln,Oregon,41041,18,0 +2020-06-04,Lincoln,Oregon,41041,23,0 +2020-06-05,Lincoln,Oregon,41041,27,0 +2020-06-06,Lincoln,Oregon,41041,33,0 +2020-06-07,Lincoln,Oregon,41041,94,0 +2020-06-08,Lincoln,Oregon,41041,155,0 +2020-06-09,Lincoln,Oregon,41041,157,0 +2020-06-10,Lincoln,Oregon,41041,161,0 +2020-06-11,Lincoln,Oregon,41041,170,0 +2020-06-12,Lincoln,Oregon,41041,184,0 +2020-06-13,Lincoln,Oregon,41041,198,0 +2020-06-14,Lincoln,Oregon,41041,206,0 +2020-06-15,Lincoln,Oregon,41041,206,0 +2020-06-16,Lincoln,Oregon,41041,223,0 +2020-06-17,Lincoln,Oregon,41041,226,0 +2020-06-18,Lincoln,Oregon,41041,230,0 +2020-06-19,Lincoln,Oregon,41041,261,0 +2020-06-20,Lincoln,Oregon,41041,261,0 +2020-06-21,Lincoln,Oregon,41041,286,0 +2020-06-22,Lincoln,Oregon,41041,292,1 +2020-06-23,Lincoln,Oregon,41041,292,1 +2020-06-24,Lincoln,Oregon,41041,301,2 +2020-06-25,Lincoln,Oregon,41041,301,2 +2020-06-26,Lincoln,Oregon,41041,301,2 +2020-06-27,Lincoln,Oregon,41041,307,2 +2020-06-28,Lincoln,Oregon,41041,310,2 +2020-06-29,Lincoln,Oregon,41041,310,2 +2020-06-30,Lincoln,Oregon,41041,312,2 +2020-07-01,Lincoln,Oregon,41041,324,2 +2020-07-02,Lincoln,Oregon,41041,327,2 +2020-07-03,Lincoln,Oregon,41041,345,2 +2020-07-04,Lincoln,Oregon,41041,346,3 +2020-07-05,Lincoln,Oregon,41041,346,4 +2020-07-06,Lincoln,Oregon,41041,346,4 +2020-07-07,Lincoln,Oregon,41041,346,4 +2020-07-08,Lincoln,Oregon,41041,349,4 +2020-07-09,Lincoln,Oregon,41041,363,4 +2020-03-11,Linn,Oregon,41043,2,0 +2020-03-12,Linn,Oregon,41043,8,0 +2020-03-13,Linn,Oregon,41043,8,0 +2020-03-14,Linn,Oregon,41043,9,0 +2020-03-15,Linn,Oregon,41043,10,0 +2020-03-16,Linn,Oregon,41043,10,0 +2020-03-17,Linn,Oregon,41043,15,0 +2020-03-18,Linn,Oregon,41043,15,0 +2020-03-19,Linn,Oregon,41043,17,0 +2020-03-20,Linn,Oregon,41043,19,0 +2020-03-21,Linn,Oregon,41043,19,0 +2020-03-22,Linn,Oregon,41043,19,1 +2020-03-23,Linn,Oregon,41043,20,1 +2020-03-24,Linn,Oregon,41043,20,1 +2020-03-25,Linn,Oregon,41043,25,1 +2020-03-26,Linn,Oregon,41043,26,1 +2020-03-27,Linn,Oregon,41043,28,1 +2020-03-28,Linn,Oregon,41043,32,1 +2020-03-29,Linn,Oregon,41043,36,1 +2020-03-30,Linn,Oregon,41043,36,2 +2020-03-31,Linn,Oregon,41043,37,2 +2020-04-01,Linn,Oregon,41043,37,2 +2020-04-02,Linn,Oregon,41043,37,2 +2020-04-03,Linn,Oregon,41043,37,2 +2020-04-04,Linn,Oregon,41043,41,2 +2020-04-05,Linn,Oregon,41043,43,2 +2020-04-06,Linn,Oregon,41043,44,2 +2020-04-07,Linn,Oregon,41043,45,2 +2020-04-08,Linn,Oregon,41043,46,2 +2020-04-09,Linn,Oregon,41043,49,4 +2020-04-10,Linn,Oregon,41043,49,4 +2020-04-11,Linn,Oregon,41043,51,4 +2020-04-12,Linn,Oregon,41043,52,4 +2020-04-13,Linn,Oregon,41043,52,4 +2020-04-14,Linn,Oregon,41043,52,4 +2020-04-15,Linn,Oregon,41043,53,4 +2020-04-16,Linn,Oregon,41043,54,4 +2020-04-17,Linn,Oregon,41043,57,6 +2020-04-18,Linn,Oregon,41043,59,6 +2020-04-19,Linn,Oregon,41043,59,6 +2020-04-20,Linn,Oregon,41043,61,6 +2020-04-21,Linn,Oregon,41043,62,6 +2020-04-22,Linn,Oregon,41043,63,6 +2020-04-23,Linn,Oregon,41043,67,6 +2020-04-24,Linn,Oregon,41043,67,7 +2020-04-25,Linn,Oregon,41043,71,7 +2020-04-26,Linn,Oregon,41043,74,7 +2020-04-27,Linn,Oregon,41043,79,7 +2020-04-28,Linn,Oregon,41043,81,7 +2020-04-29,Linn,Oregon,41043,82,7 +2020-04-30,Linn,Oregon,41043,86,7 +2020-05-01,Linn,Oregon,41043,87,7 +2020-05-02,Linn,Oregon,41043,87,7 +2020-05-03,Linn,Oregon,41043,87,7 +2020-05-04,Linn,Oregon,41043,97,7 +2020-05-05,Linn,Oregon,41043,98,7 +2020-05-06,Linn,Oregon,41043,99,7 +2020-05-07,Linn,Oregon,41043,99,7 +2020-05-08,Linn,Oregon,41043,100,7 +2020-05-09,Linn,Oregon,41043,102,8 +2020-05-10,Linn,Oregon,41043,102,8 +2020-05-11,Linn,Oregon,41043,103,8 +2020-05-12,Linn,Oregon,41043,104,8 +2020-05-13,Linn,Oregon,41043,105,8 +2020-05-14,Linn,Oregon,41043,107,8 +2020-05-15,Linn,Oregon,41043,109,8 +2020-05-16,Linn,Oregon,41043,110,8 +2020-05-17,Linn,Oregon,41043,109,8 +2020-05-18,Linn,Oregon,41043,109,8 +2020-05-19,Linn,Oregon,41043,109,9 +2020-05-20,Linn,Oregon,41043,110,9 +2020-05-21,Linn,Oregon,41043,110,9 +2020-05-22,Linn,Oregon,41043,112,9 +2020-05-23,Linn,Oregon,41043,112,9 +2020-05-24,Linn,Oregon,41043,116,9 +2020-05-25,Linn,Oregon,41043,115,9 +2020-05-26,Linn,Oregon,41043,115,9 +2020-05-27,Linn,Oregon,41043,115,9 +2020-05-28,Linn,Oregon,41043,115,9 +2020-05-29,Linn,Oregon,41043,115,9 +2020-05-30,Linn,Oregon,41043,115,9 +2020-05-31,Linn,Oregon,41043,115,9 +2020-06-01,Linn,Oregon,41043,117,9 +2020-06-02,Linn,Oregon,41043,118,9 +2020-06-03,Linn,Oregon,41043,119,9 +2020-06-04,Linn,Oregon,41043,121,9 +2020-06-05,Linn,Oregon,41043,124,9 +2020-06-06,Linn,Oregon,41043,124,9 +2020-06-07,Linn,Oregon,41043,125,9 +2020-06-08,Linn,Oregon,41043,125,9 +2020-06-09,Linn,Oregon,41043,125,9 +2020-06-10,Linn,Oregon,41043,125,9 +2020-06-11,Linn,Oregon,41043,125,9 +2020-06-12,Linn,Oregon,41043,125,9 +2020-06-13,Linn,Oregon,41043,125,9 +2020-06-14,Linn,Oregon,41043,126,9 +2020-06-15,Linn,Oregon,41043,126,9 +2020-06-16,Linn,Oregon,41043,126,9 +2020-06-17,Linn,Oregon,41043,125,9 +2020-06-18,Linn,Oregon,41043,126,9 +2020-06-19,Linn,Oregon,41043,127,9 +2020-06-20,Linn,Oregon,41043,127,9 +2020-06-21,Linn,Oregon,41043,129,9 +2020-06-22,Linn,Oregon,41043,129,9 +2020-06-23,Linn,Oregon,41043,129,9 +2020-06-24,Linn,Oregon,41043,130,9 +2020-06-25,Linn,Oregon,41043,132,9 +2020-06-26,Linn,Oregon,41043,136,9 +2020-06-27,Linn,Oregon,41043,140,9 +2020-06-28,Linn,Oregon,41043,140,9 +2020-06-29,Linn,Oregon,41043,140,9 +2020-06-30,Linn,Oregon,41043,144,9 +2020-07-01,Linn,Oregon,41043,151,9 +2020-07-02,Linn,Oregon,41043,154,9 +2020-07-03,Linn,Oregon,41043,156,9 +2020-07-04,Linn,Oregon,41043,157,9 +2020-07-05,Linn,Oregon,41043,157,9 +2020-07-06,Linn,Oregon,41043,157,9 +2020-07-07,Linn,Oregon,41043,157,10 +2020-07-08,Linn,Oregon,41043,165,10 +2020-07-09,Linn,Oregon,41043,168,10 +2020-03-31,Malheur,Oregon,41045,1,0 +2020-04-01,Malheur,Oregon,41045,1,0 +2020-04-02,Malheur,Oregon,41045,1,0 +2020-04-03,Malheur,Oregon,41045,2,0 +2020-04-04,Malheur,Oregon,41045,2,0 +2020-04-05,Malheur,Oregon,41045,2,0 +2020-04-06,Malheur,Oregon,41045,2,0 +2020-04-07,Malheur,Oregon,41045,2,0 +2020-04-08,Malheur,Oregon,41045,2,0 +2020-04-09,Malheur,Oregon,41045,2,0 +2020-04-10,Malheur,Oregon,41045,2,0 +2020-04-11,Malheur,Oregon,41045,3,0 +2020-04-12,Malheur,Oregon,41045,4,0 +2020-04-13,Malheur,Oregon,41045,4,0 +2020-04-14,Malheur,Oregon,41045,4,0 +2020-04-15,Malheur,Oregon,41045,4,0 +2020-04-16,Malheur,Oregon,41045,5,0 +2020-04-17,Malheur,Oregon,41045,5,0 +2020-04-18,Malheur,Oregon,41045,5,0 +2020-04-19,Malheur,Oregon,41045,5,0 +2020-04-20,Malheur,Oregon,41045,5,0 +2020-04-21,Malheur,Oregon,41045,5,0 +2020-04-22,Malheur,Oregon,41045,5,0 +2020-04-23,Malheur,Oregon,41045,6,0 +2020-04-24,Malheur,Oregon,41045,6,0 +2020-04-25,Malheur,Oregon,41045,6,0 +2020-04-26,Malheur,Oregon,41045,6,0 +2020-04-27,Malheur,Oregon,41045,7,0 +2020-04-28,Malheur,Oregon,41045,7,0 +2020-04-29,Malheur,Oregon,41045,7,0 +2020-04-30,Malheur,Oregon,41045,8,0 +2020-05-01,Malheur,Oregon,41045,10,0 +2020-05-02,Malheur,Oregon,41045,12,0 +2020-05-03,Malheur,Oregon,41045,13,0 +2020-05-04,Malheur,Oregon,41045,13,0 +2020-05-05,Malheur,Oregon,41045,13,0 +2020-05-06,Malheur,Oregon,41045,13,0 +2020-05-07,Malheur,Oregon,41045,13,0 +2020-05-08,Malheur,Oregon,41045,13,0 +2020-05-09,Malheur,Oregon,41045,14,0 +2020-05-10,Malheur,Oregon,41045,14,0 +2020-05-11,Malheur,Oregon,41045,14,0 +2020-05-12,Malheur,Oregon,41045,14,0 +2020-05-13,Malheur,Oregon,41045,15,0 +2020-05-14,Malheur,Oregon,41045,16,0 +2020-05-15,Malheur,Oregon,41045,17,0 +2020-05-16,Malheur,Oregon,41045,19,0 +2020-05-17,Malheur,Oregon,41045,19,0 +2020-05-18,Malheur,Oregon,41045,21,0 +2020-05-19,Malheur,Oregon,41045,21,0 +2020-05-20,Malheur,Oregon,41045,21,0 +2020-05-21,Malheur,Oregon,41045,24,0 +2020-05-22,Malheur,Oregon,41045,28,0 +2020-05-23,Malheur,Oregon,41045,28,0 +2020-05-24,Malheur,Oregon,41045,28,0 +2020-05-25,Malheur,Oregon,41045,28,0 +2020-05-26,Malheur,Oregon,41045,28,0 +2020-05-27,Malheur,Oregon,41045,28,0 +2020-05-28,Malheur,Oregon,41045,33,0 +2020-05-29,Malheur,Oregon,41045,32,0 +2020-05-30,Malheur,Oregon,41045,32,0 +2020-05-31,Malheur,Oregon,41045,32,0 +2020-06-01,Malheur,Oregon,41045,32,0 +2020-06-02,Malheur,Oregon,41045,32,0 +2020-06-03,Malheur,Oregon,41045,32,0 +2020-06-04,Malheur,Oregon,41045,32,0 +2020-06-05,Malheur,Oregon,41045,33,0 +2020-06-06,Malheur,Oregon,41045,34,0 +2020-06-07,Malheur,Oregon,41045,34,1 +2020-06-08,Malheur,Oregon,41045,34,1 +2020-06-09,Malheur,Oregon,41045,34,1 +2020-06-10,Malheur,Oregon,41045,34,1 +2020-06-11,Malheur,Oregon,41045,34,1 +2020-06-12,Malheur,Oregon,41045,34,1 +2020-06-13,Malheur,Oregon,41045,34,1 +2020-06-14,Malheur,Oregon,41045,36,1 +2020-06-15,Malheur,Oregon,41045,38,1 +2020-06-16,Malheur,Oregon,41045,38,1 +2020-06-17,Malheur,Oregon,41045,38,1 +2020-06-18,Malheur,Oregon,41045,42,1 +2020-06-19,Malheur,Oregon,41045,43,1 +2020-06-20,Malheur,Oregon,41045,43,1 +2020-06-21,Malheur,Oregon,41045,51,1 +2020-06-22,Malheur,Oregon,41045,51,1 +2020-06-23,Malheur,Oregon,41045,53,1 +2020-06-24,Malheur,Oregon,41045,58,1 +2020-06-25,Malheur,Oregon,41045,60,1 +2020-06-26,Malheur,Oregon,41045,73,1 +2020-06-27,Malheur,Oregon,41045,85,1 +2020-06-28,Malheur,Oregon,41045,96,1 +2020-06-29,Malheur,Oregon,41045,101,1 +2020-06-30,Malheur,Oregon,41045,108,1 +2020-07-01,Malheur,Oregon,41045,124,1 +2020-07-02,Malheur,Oregon,41045,140,1 +2020-07-03,Malheur,Oregon,41045,160,1 +2020-07-04,Malheur,Oregon,41045,191,1 +2020-07-05,Malheur,Oregon,41045,206,1 +2020-07-06,Malheur,Oregon,41045,216,1 +2020-07-07,Malheur,Oregon,41045,223,1 +2020-07-08,Malheur,Oregon,41045,235,1 +2020-07-09,Malheur,Oregon,41045,266,1 +2020-03-08,Marion,Oregon,41047,1,0 +2020-03-09,Marion,Oregon,41047,1,0 +2020-03-10,Marion,Oregon,41047,1,0 +2020-03-11,Marion,Oregon,41047,2,0 +2020-03-12,Marion,Oregon,41047,2,0 +2020-03-13,Marion,Oregon,41047,2,0 +2020-03-14,Marion,Oregon,41047,2,0 +2020-03-15,Marion,Oregon,41047,2,0 +2020-03-16,Marion,Oregon,41047,3,0 +2020-03-17,Marion,Oregon,41047,4,0 +2020-03-18,Marion,Oregon,41047,8,0 +2020-03-19,Marion,Oregon,41047,13,0 +2020-03-20,Marion,Oregon,41047,17,0 +2020-03-21,Marion,Oregon,41047,19,1 +2020-03-22,Marion,Oregon,41047,22,1 +2020-03-23,Marion,Oregon,41047,30,1 +2020-03-24,Marion,Oregon,41047,32,1 +2020-03-25,Marion,Oregon,41047,43,2 +2020-03-26,Marion,Oregon,41047,57,2 +2020-03-27,Marion,Oregon,41047,83,3 +2020-03-28,Marion,Oregon,41047,94,3 +2020-03-29,Marion,Oregon,41047,109,3 +2020-03-30,Marion,Oregon,41047,123,3 +2020-03-31,Marion,Oregon,41047,141,3 +2020-04-01,Marion,Oregon,41047,151,3 +2020-04-02,Marion,Oregon,41047,164,4 +2020-04-03,Marion,Oregon,41047,178,4 +2020-04-04,Marion,Oregon,41047,188,5 +2020-04-05,Marion,Oregon,41047,198,5 +2020-04-06,Marion,Oregon,41047,209,6 +2020-04-07,Marion,Oregon,41047,215,9 +2020-04-08,Marion,Oregon,41047,218,9 +2020-04-09,Marion,Oregon,41047,235,9 +2020-04-10,Marion,Oregon,41047,246,9 +2020-04-11,Marion,Oregon,41047,263,9 +2020-04-12,Marion,Oregon,41047,276,9 +2020-04-13,Marion,Oregon,41047,280,9 +2020-04-14,Marion,Oregon,41047,289,9 +2020-04-15,Marion,Oregon,41047,294,10 +2020-04-16,Marion,Oregon,41047,309,11 +2020-04-17,Marion,Oregon,41047,317,12 +2020-04-18,Marion,Oregon,41047,335,13 +2020-04-19,Marion,Oregon,41047,358,13 +2020-04-20,Marion,Oregon,41047,371,14 +2020-04-21,Marion,Oregon,41047,381,14 +2020-04-22,Marion,Oregon,41047,388,14 +2020-04-23,Marion,Oregon,41047,397,14 +2020-04-24,Marion,Oregon,41047,417,14 +2020-04-25,Marion,Oregon,41047,432,14 +2020-04-26,Marion,Oregon,41047,436,15 +2020-04-27,Marion,Oregon,41047,447,15 +2020-04-28,Marion,Oregon,41047,456,17 +2020-04-29,Marion,Oregon,41047,474,17 +2020-04-30,Marion,Oregon,41047,491,18 +2020-05-01,Marion,Oregon,41047,508,18 +2020-05-02,Marion,Oregon,41047,523,19 +2020-05-03,Marion,Oregon,41047,544,19 +2020-05-04,Marion,Oregon,41047,561,19 +2020-05-05,Marion,Oregon,41047,574,19 +2020-05-06,Marion,Oregon,41047,592,19 +2020-05-07,Marion,Oregon,41047,613,21 +2020-05-08,Marion,Oregon,41047,626,23 +2020-05-09,Marion,Oregon,41047,663,23 +2020-05-10,Marion,Oregon,41047,677,23 +2020-05-11,Marion,Oregon,41047,694,23 +2020-05-12,Marion,Oregon,41047,723,23 +2020-05-13,Marion,Oregon,41047,746,23 +2020-05-14,Marion,Oregon,41047,779,23 +2020-05-15,Marion,Oregon,41047,797,23 +2020-05-16,Marion,Oregon,41047,824,23 +2020-05-17,Marion,Oregon,41047,827,23 +2020-05-18,Marion,Oregon,41047,843,24 +2020-05-19,Marion,Oregon,41047,855,24 +2020-05-20,Marion,Oregon,41047,879,24 +2020-05-21,Marion,Oregon,41047,882,24 +2020-05-22,Marion,Oregon,41047,890,25 +2020-05-23,Marion,Oregon,41047,898,25 +2020-05-24,Marion,Oregon,41047,905,25 +2020-05-25,Marion,Oregon,41047,909,25 +2020-05-26,Marion,Oregon,41047,914,25 +2020-05-27,Marion,Oregon,41047,920,25 +2020-05-28,Marion,Oregon,41047,931,25 +2020-05-29,Marion,Oregon,41047,942,25 +2020-05-30,Marion,Oregon,41047,949,25 +2020-05-31,Marion,Oregon,41047,960,25 +2020-06-01,Marion,Oregon,41047,973,26 +2020-06-02,Marion,Oregon,41047,981,26 +2020-06-03,Marion,Oregon,41047,999,26 +2020-06-04,Marion,Oregon,41047,1011,26 +2020-06-05,Marion,Oregon,41047,1028,27 +2020-06-06,Marion,Oregon,41047,1039,27 +2020-06-07,Marion,Oregon,41047,1050,27 +2020-06-08,Marion,Oregon,41047,1058,27 +2020-06-09,Marion,Oregon,41047,1066,30 +2020-06-10,Marion,Oregon,41047,1071,30 +2020-06-11,Marion,Oregon,41047,1105,30 +2020-06-12,Marion,Oregon,41047,1134,30 +2020-06-13,Marion,Oregon,41047,1155,30 +2020-06-14,Marion,Oregon,41047,1175,30 +2020-06-15,Marion,Oregon,41047,1179,30 +2020-06-16,Marion,Oregon,41047,1201,31 +2020-06-17,Marion,Oregon,41047,1218,31 +2020-06-18,Marion,Oregon,41047,1244,33 +2020-06-19,Marion,Oregon,41047,1264,34 +2020-06-20,Marion,Oregon,41047,1264,34 +2020-06-21,Marion,Oregon,41047,1301,34 +2020-06-22,Marion,Oregon,41047,1348,35 +2020-06-23,Marion,Oregon,41047,1365,35 +2020-06-24,Marion,Oregon,41047,1378,36 +2020-06-25,Marion,Oregon,41047,1382,38 +2020-06-26,Marion,Oregon,41047,1400,41 +2020-06-27,Marion,Oregon,41047,1432,41 +2020-06-28,Marion,Oregon,41047,1475,41 +2020-06-29,Marion,Oregon,41047,1489,43 +2020-06-30,Marion,Oregon,41047,1514,46 +2020-07-01,Marion,Oregon,41047,1539,47 +2020-07-02,Marion,Oregon,41047,1564,47 +2020-07-03,Marion,Oregon,41047,1595,47 +2020-07-04,Marion,Oregon,41047,1610,47 +2020-07-05,Marion,Oregon,41047,1648,48 +2020-07-06,Marion,Oregon,41047,1661,48 +2020-07-07,Marion,Oregon,41047,1683,50 +2020-07-08,Marion,Oregon,41047,1697,51 +2020-07-09,Marion,Oregon,41047,1743,53 +2020-03-27,Morrow,Oregon,41049,1,0 +2020-03-28,Morrow,Oregon,41049,1,0 +2020-03-29,Morrow,Oregon,41049,1,0 +2020-03-30,Morrow,Oregon,41049,1,0 +2020-03-31,Morrow,Oregon,41049,1,0 +2020-04-01,Morrow,Oregon,41049,1,0 +2020-04-02,Morrow,Oregon,41049,1,0 +2020-04-03,Morrow,Oregon,41049,2,0 +2020-04-04,Morrow,Oregon,41049,2,0 +2020-04-05,Morrow,Oregon,41049,2,0 +2020-04-06,Morrow,Oregon,41049,2,0 +2020-04-07,Morrow,Oregon,41049,2,0 +2020-04-08,Morrow,Oregon,41049,3,0 +2020-04-09,Morrow,Oregon,41049,5,0 +2020-04-10,Morrow,Oregon,41049,5,0 +2020-04-11,Morrow,Oregon,41049,5,0 +2020-04-12,Morrow,Oregon,41049,5,0 +2020-04-13,Morrow,Oregon,41049,5,0 +2020-04-14,Morrow,Oregon,41049,5,0 +2020-04-15,Morrow,Oregon,41049,5,0 +2020-04-16,Morrow,Oregon,41049,5,0 +2020-04-17,Morrow,Oregon,41049,5,0 +2020-04-18,Morrow,Oregon,41049,5,0 +2020-04-19,Morrow,Oregon,41049,5,0 +2020-04-20,Morrow,Oregon,41049,5,0 +2020-04-21,Morrow,Oregon,41049,5,0 +2020-04-22,Morrow,Oregon,41049,5,0 +2020-04-23,Morrow,Oregon,41049,5,0 +2020-04-24,Morrow,Oregon,41049,5,0 +2020-04-25,Morrow,Oregon,41049,5,0 +2020-04-26,Morrow,Oregon,41049,5,0 +2020-04-27,Morrow,Oregon,41049,5,0 +2020-04-28,Morrow,Oregon,41049,6,0 +2020-04-29,Morrow,Oregon,41049,6,0 +2020-04-30,Morrow,Oregon,41049,6,0 +2020-05-01,Morrow,Oregon,41049,8,0 +2020-05-02,Morrow,Oregon,41049,9,0 +2020-05-03,Morrow,Oregon,41049,9,0 +2020-05-04,Morrow,Oregon,41049,9,0 +2020-05-05,Morrow,Oregon,41049,10,0 +2020-05-06,Morrow,Oregon,41049,10,0 +2020-05-07,Morrow,Oregon,41049,11,0 +2020-05-08,Morrow,Oregon,41049,12,0 +2020-05-09,Morrow,Oregon,41049,12,0 +2020-05-10,Morrow,Oregon,41049,12,0 +2020-05-11,Morrow,Oregon,41049,12,0 +2020-05-12,Morrow,Oregon,41049,12,0 +2020-05-13,Morrow,Oregon,41049,12,0 +2020-05-14,Morrow,Oregon,41049,12,0 +2020-05-15,Morrow,Oregon,41049,12,0 +2020-05-16,Morrow,Oregon,41049,12,0 +2020-05-17,Morrow,Oregon,41049,12,0 +2020-05-18,Morrow,Oregon,41049,12,0 +2020-05-19,Morrow,Oregon,41049,12,0 +2020-05-20,Morrow,Oregon,41049,12,0 +2020-05-21,Morrow,Oregon,41049,12,0 +2020-05-22,Morrow,Oregon,41049,12,0 +2020-05-23,Morrow,Oregon,41049,12,0 +2020-05-24,Morrow,Oregon,41049,12,0 +2020-05-25,Morrow,Oregon,41049,12,0 +2020-05-26,Morrow,Oregon,41049,12,0 +2020-05-27,Morrow,Oregon,41049,12,0 +2020-05-28,Morrow,Oregon,41049,12,0 +2020-05-29,Morrow,Oregon,41049,12,0 +2020-05-30,Morrow,Oregon,41049,11,0 +2020-05-31,Morrow,Oregon,41049,11,0 +2020-06-01,Morrow,Oregon,41049,12,0 +2020-06-02,Morrow,Oregon,41049,12,0 +2020-06-03,Morrow,Oregon,41049,12,0 +2020-06-04,Morrow,Oregon,41049,12,0 +2020-06-05,Morrow,Oregon,41049,12,0 +2020-06-06,Morrow,Oregon,41049,13,0 +2020-06-07,Morrow,Oregon,41049,13,0 +2020-06-08,Morrow,Oregon,41049,13,0 +2020-06-09,Morrow,Oregon,41049,13,0 +2020-06-10,Morrow,Oregon,41049,13,0 +2020-06-11,Morrow,Oregon,41049,13,0 +2020-06-12,Morrow,Oregon,41049,13,0 +2020-06-13,Morrow,Oregon,41049,14,0 +2020-06-14,Morrow,Oregon,41049,15,0 +2020-06-15,Morrow,Oregon,41049,15,0 +2020-06-16,Morrow,Oregon,41049,17,0 +2020-06-17,Morrow,Oregon,41049,18,0 +2020-06-18,Morrow,Oregon,41049,22,0 +2020-06-19,Morrow,Oregon,41049,27,0 +2020-06-20,Morrow,Oregon,41049,27,0 +2020-06-21,Morrow,Oregon,41049,31,1 +2020-06-22,Morrow,Oregon,41049,32,1 +2020-06-23,Morrow,Oregon,41049,35,1 +2020-06-24,Morrow,Oregon,41049,35,1 +2020-06-25,Morrow,Oregon,41049,36,1 +2020-06-26,Morrow,Oregon,41049,48,2 +2020-06-27,Morrow,Oregon,41049,53,1 +2020-06-28,Morrow,Oregon,41049,61,1 +2020-06-29,Morrow,Oregon,41049,61,1 +2020-06-30,Morrow,Oregon,41049,61,1 +2020-07-01,Morrow,Oregon,41049,64,1 +2020-07-02,Morrow,Oregon,41049,72,1 +2020-07-03,Morrow,Oregon,41049,82,1 +2020-07-04,Morrow,Oregon,41049,93,1 +2020-07-05,Morrow,Oregon,41049,102,1 +2020-07-06,Morrow,Oregon,41049,107,1 +2020-07-07,Morrow,Oregon,41049,109,1 +2020-07-08,Morrow,Oregon,41049,119,1 +2020-07-09,Morrow,Oregon,41049,132,1 +2020-03-10,Multnomah,Oregon,41051,1,0 +2020-03-11,Multnomah,Oregon,41051,1,0 +2020-03-12,Multnomah,Oregon,41051,1,0 +2020-03-13,Multnomah,Oregon,41051,1,0 +2020-03-14,Multnomah,Oregon,41051,1,1 +2020-03-15,Multnomah,Oregon,41051,1,1 +2020-03-16,Multnomah,Oregon,41051,2,1 +2020-03-17,Multnomah,Oregon,41051,3,1 +2020-03-18,Multnomah,Oregon,41051,3,1 +2020-03-19,Multnomah,Oregon,41051,7,1 +2020-03-20,Multnomah,Oregon,41051,12,1 +2020-03-21,Multnomah,Oregon,41051,18,1 +2020-03-22,Multnomah,Oregon,41051,19,1 +2020-03-23,Multnomah,Oregon,41051,21,1 +2020-03-24,Multnomah,Oregon,41051,25,2 +2020-03-25,Multnomah,Oregon,41051,33,2 +2020-03-26,Multnomah,Oregon,41051,45,2 +2020-03-27,Multnomah,Oregon,41051,67,2 +2020-03-28,Multnomah,Oregon,41051,81,2 +2020-03-29,Multnomah,Oregon,41051,91,2 +2020-03-30,Multnomah,Oregon,41051,100,2 +2020-03-31,Multnomah,Oregon,41051,116,2 +2020-04-01,Multnomah,Oregon,41051,134,3 +2020-04-02,Multnomah,Oregon,41051,160,3 +2020-04-03,Multnomah,Oregon,41051,175,3 +2020-04-04,Multnomah,Oregon,41051,209,6 +2020-04-05,Multnomah,Oregon,41051,233,7 +2020-04-06,Multnomah,Oregon,41051,243,7 +2020-04-07,Multnomah,Oregon,41051,258,7 +2020-04-08,Multnomah,Oregon,41051,286,10 +2020-04-09,Multnomah,Oregon,41051,302,13 +2020-04-10,Multnomah,Oregon,41051,317,17 +2020-04-11,Multnomah,Oregon,41051,343,18 +2020-04-12,Multnomah,Oregon,41051,374,19 +2020-04-13,Multnomah,Oregon,41051,398,19 +2020-04-14,Multnomah,Oregon,41051,420,20 +2020-04-15,Multnomah,Oregon,41051,430,22 +2020-04-16,Multnomah,Oregon,41051,448,26 +2020-04-17,Multnomah,Oregon,41051,467,28 +2020-04-18,Multnomah,Oregon,41051,493,28 +2020-04-19,Multnomah,Oregon,41051,514,28 +2020-04-20,Multnomah,Oregon,41051,520,28 +2020-04-21,Multnomah,Oregon,41051,542,29 +2020-04-22,Multnomah,Oregon,41051,566,29 +2020-04-23,Multnomah,Oregon,41051,582,33 +2020-04-24,Multnomah,Oregon,41051,596,35 +2020-04-25,Multnomah,Oregon,41051,623,35 +2020-04-26,Multnomah,Oregon,41051,652,37 +2020-04-27,Multnomah,Oregon,41051,664,37 +2020-04-28,Multnomah,Oregon,41051,677,40 +2020-04-29,Multnomah,Oregon,41051,696,42 +2020-04-30,Multnomah,Oregon,41051,707,43 +2020-05-01,Multnomah,Oregon,41051,720,44 +2020-05-02,Multnomah,Oregon,41051,734,46 +2020-05-03,Multnomah,Oregon,41051,739,46 +2020-05-04,Multnomah,Oregon,41051,754,46 +2020-05-05,Multnomah,Oregon,41051,769,49 +2020-05-06,Multnomah,Oregon,41051,793,50 +2020-05-07,Multnomah,Oregon,41051,809,52 +2020-05-08,Multnomah,Oregon,41051,839,52 +2020-05-09,Multnomah,Oregon,41051,863,53 +2020-05-10,Multnomah,Oregon,41051,885,53 +2020-05-11,Multnomah,Oregon,41051,899,53 +2020-05-12,Multnomah,Oregon,41051,908,53 +2020-05-13,Multnomah,Oregon,41051,921,53 +2020-05-14,Multnomah,Oregon,41051,940,55 +2020-05-15,Multnomah,Oregon,41051,957,55 +2020-05-16,Multnomah,Oregon,41051,979,55 +2020-05-17,Multnomah,Oregon,41051,984,55 +2020-05-18,Multnomah,Oregon,41051,996,55 +2020-05-19,Multnomah,Oregon,41051,1005,55 +2020-05-20,Multnomah,Oregon,41051,1018,57 +2020-05-21,Multnomah,Oregon,41051,1026,57 +2020-05-22,Multnomah,Oregon,41051,1037,58 +2020-05-23,Multnomah,Oregon,41051,1037,58 +2020-05-24,Multnomah,Oregon,41051,1040,58 +2020-05-25,Multnomah,Oregon,41051,1045,58 +2020-05-26,Multnomah,Oregon,41051,1052,58 +2020-05-27,Multnomah,Oregon,41051,1093,58 +2020-05-28,Multnomah,Oregon,41051,1103,59 +2020-05-29,Multnomah,Oregon,41051,1121,59 +2020-05-30,Multnomah,Oregon,41051,1142,59 +2020-05-31,Multnomah,Oregon,41051,1165,59 +2020-06-01,Multnomah,Oregon,41051,1171,59 +2020-06-02,Multnomah,Oregon,41051,1181,61 +2020-06-03,Multnomah,Oregon,41051,1194,62 +2020-06-04,Multnomah,Oregon,41051,1224,62 +2020-06-05,Multnomah,Oregon,41051,1240,63 +2020-06-06,Multnomah,Oregon,41051,1268,65 +2020-06-07,Multnomah,Oregon,41051,1286,65 +2020-06-08,Multnomah,Oregon,41051,1302,65 +2020-06-09,Multnomah,Oregon,41051,1337,66 +2020-06-10,Multnomah,Oregon,41051,1369,66 +2020-06-11,Multnomah,Oregon,41051,1407,66 +2020-06-12,Multnomah,Oregon,41051,1443,67 +2020-06-13,Multnomah,Oregon,41051,1490,67 +2020-06-14,Multnomah,Oregon,41051,1522,68 +2020-06-15,Multnomah,Oregon,41051,1559,68 +2020-06-16,Multnomah,Oregon,41051,1601,68 +2020-06-17,Multnomah,Oregon,41051,1635,68 +2020-06-18,Multnomah,Oregon,41051,1668,68 +2020-06-19,Multnomah,Oregon,41051,1717,68 +2020-06-20,Multnomah,Oregon,41051,1751,68 +2020-06-21,Multnomah,Oregon,41051,1835,68 +2020-06-22,Multnomah,Oregon,41051,1852,68 +2020-06-23,Multnomah,Oregon,41051,1896,68 +2020-06-24,Multnomah,Oregon,41051,1941,68 +2020-06-25,Multnomah,Oregon,41051,1970,70 +2020-06-26,Multnomah,Oregon,41051,2092,70 +2020-06-27,Multnomah,Oregon,41051,2090,71 +2020-06-28,Multnomah,Oregon,41051,2142,71 +2020-06-29,Multnomah,Oregon,41051,2171,71 +2020-06-30,Multnomah,Oregon,41051,2205,71 +2020-07-01,Multnomah,Oregon,41051,2242,71 +2020-07-02,Multnomah,Oregon,41051,2304,71 +2020-07-03,Multnomah,Oregon,41051,2364,72 +2020-07-04,Multnomah,Oregon,41051,2420,72 +2020-07-05,Multnomah,Oregon,41051,2491,72 +2020-07-06,Multnomah,Oregon,41051,2532,72 +2020-07-07,Multnomah,Oregon,41051,2583,73 +2020-07-08,Multnomah,Oregon,41051,2611,75 +2020-07-09,Multnomah,Oregon,41051,2697,75 +2020-03-11,Polk,Oregon,41053,1,0 +2020-03-12,Polk,Oregon,41053,1,0 +2020-03-13,Polk,Oregon,41053,1,0 +2020-03-14,Polk,Oregon,41053,1,0 +2020-03-15,Polk,Oregon,41053,1,0 +2020-03-16,Polk,Oregon,41053,1,0 +2020-03-17,Polk,Oregon,41053,1,0 +2020-03-18,Polk,Oregon,41053,1,0 +2020-03-19,Polk,Oregon,41053,1,0 +2020-03-20,Polk,Oregon,41053,1,0 +2020-03-21,Polk,Oregon,41053,1,0 +2020-03-22,Polk,Oregon,41053,1,0 +2020-03-23,Polk,Oregon,41053,3,0 +2020-03-24,Polk,Oregon,41053,3,0 +2020-03-25,Polk,Oregon,41053,3,0 +2020-03-26,Polk,Oregon,41053,6,0 +2020-03-27,Polk,Oregon,41053,10,0 +2020-03-28,Polk,Oregon,41053,11,0 +2020-03-29,Polk,Oregon,41053,13,0 +2020-03-30,Polk,Oregon,41053,15,0 +2020-03-31,Polk,Oregon,41053,18,0 +2020-04-01,Polk,Oregon,41053,18,0 +2020-04-02,Polk,Oregon,41053,18,0 +2020-04-03,Polk,Oregon,41053,20,1 +2020-04-04,Polk,Oregon,41053,22,1 +2020-04-05,Polk,Oregon,41053,24,1 +2020-04-06,Polk,Oregon,41053,26,1 +2020-04-07,Polk,Oregon,41053,28,1 +2020-04-08,Polk,Oregon,41053,28,1 +2020-04-09,Polk,Oregon,41053,29,1 +2020-04-10,Polk,Oregon,41053,29,1 +2020-04-11,Polk,Oregon,41053,30,1 +2020-04-12,Polk,Oregon,41053,30,1 +2020-04-13,Polk,Oregon,41053,30,1 +2020-04-14,Polk,Oregon,41053,30,1 +2020-04-15,Polk,Oregon,41053,30,1 +2020-04-16,Polk,Oregon,41053,30,1 +2020-04-17,Polk,Oregon,41053,31,1 +2020-04-18,Polk,Oregon,41053,32,1 +2020-04-19,Polk,Oregon,41053,32,1 +2020-04-20,Polk,Oregon,41053,33,1 +2020-04-21,Polk,Oregon,41053,33,1 +2020-04-22,Polk,Oregon,41053,33,1 +2020-04-23,Polk,Oregon,41053,33,1 +2020-04-24,Polk,Oregon,41053,33,1 +2020-04-25,Polk,Oregon,41053,37,1 +2020-04-26,Polk,Oregon,41053,38,1 +2020-04-27,Polk,Oregon,41053,38,1 +2020-04-28,Polk,Oregon,41053,38,1 +2020-04-29,Polk,Oregon,41053,39,1 +2020-04-30,Polk,Oregon,41053,39,1 +2020-05-01,Polk,Oregon,41053,42,1 +2020-05-02,Polk,Oregon,41053,41,2 +2020-05-03,Polk,Oregon,41053,41,2 +2020-05-04,Polk,Oregon,41053,49,2 +2020-05-05,Polk,Oregon,41053,68,2 +2020-05-06,Polk,Oregon,41053,75,3 +2020-05-07,Polk,Oregon,41053,78,4 +2020-05-08,Polk,Oregon,41053,80,5 +2020-05-09,Polk,Oregon,41053,82,5 +2020-05-10,Polk,Oregon,41053,84,5 +2020-05-11,Polk,Oregon,41053,87,6 +2020-05-12,Polk,Oregon,41053,89,6 +2020-05-13,Polk,Oregon,41053,90,9 +2020-05-14,Polk,Oregon,41053,91,9 +2020-05-15,Polk,Oregon,41053,92,9 +2020-05-16,Polk,Oregon,41053,92,9 +2020-05-17,Polk,Oregon,41053,93,9 +2020-05-18,Polk,Oregon,41053,93,9 +2020-05-19,Polk,Oregon,41053,93,9 +2020-05-20,Polk,Oregon,41053,94,9 +2020-05-21,Polk,Oregon,41053,94,10 +2020-05-22,Polk,Oregon,41053,95,10 +2020-05-23,Polk,Oregon,41053,95,10 +2020-05-24,Polk,Oregon,41053,96,10 +2020-05-25,Polk,Oregon,41053,96,10 +2020-05-26,Polk,Oregon,41053,96,10 +2020-05-27,Polk,Oregon,41053,98,10 +2020-05-28,Polk,Oregon,41053,98,11 +2020-05-29,Polk,Oregon,41053,98,11 +2020-05-30,Polk,Oregon,41053,98,12 +2020-05-31,Polk,Oregon,41053,98,12 +2020-06-01,Polk,Oregon,41053,100,12 +2020-06-02,Polk,Oregon,41053,100,12 +2020-06-03,Polk,Oregon,41053,101,12 +2020-06-04,Polk,Oregon,41053,100,12 +2020-06-05,Polk,Oregon,41053,100,12 +2020-06-06,Polk,Oregon,41053,103,12 +2020-06-07,Polk,Oregon,41053,103,12 +2020-06-08,Polk,Oregon,41053,103,12 +2020-06-09,Polk,Oregon,41053,104,12 +2020-06-10,Polk,Oregon,41053,104,12 +2020-06-11,Polk,Oregon,41053,108,12 +2020-06-12,Polk,Oregon,41053,117,12 +2020-06-13,Polk,Oregon,41053,124,12 +2020-06-14,Polk,Oregon,41053,124,12 +2020-06-15,Polk,Oregon,41053,127,12 +2020-06-16,Polk,Oregon,41053,127,12 +2020-06-17,Polk,Oregon,41053,128,12 +2020-06-18,Polk,Oregon,41053,131,12 +2020-06-19,Polk,Oregon,41053,131,12 +2020-06-20,Polk,Oregon,41053,131,12 +2020-06-21,Polk,Oregon,41053,131,12 +2020-06-22,Polk,Oregon,41053,130,12 +2020-06-23,Polk,Oregon,41053,131,12 +2020-06-24,Polk,Oregon,41053,132,12 +2020-06-25,Polk,Oregon,41053,134,12 +2020-06-26,Polk,Oregon,41053,134,12 +2020-06-27,Polk,Oregon,41053,136,12 +2020-06-28,Polk,Oregon,41053,139,12 +2020-06-29,Polk,Oregon,41053,139,12 +2020-06-30,Polk,Oregon,41053,141,12 +2020-07-01,Polk,Oregon,41053,149,12 +2020-07-02,Polk,Oregon,41053,149,12 +2020-07-03,Polk,Oregon,41053,154,12 +2020-07-04,Polk,Oregon,41053,159,12 +2020-07-05,Polk,Oregon,41053,159,12 +2020-07-06,Polk,Oregon,41053,160,12 +2020-07-07,Polk,Oregon,41053,166,12 +2020-07-08,Polk,Oregon,41053,166,12 +2020-07-09,Polk,Oregon,41053,168,12 +2020-04-05,Sherman,Oregon,41055,1,0 +2020-04-06,Sherman,Oregon,41055,1,0 +2020-04-07,Sherman,Oregon,41055,1,0 +2020-04-08,Sherman,Oregon,41055,1,0 +2020-04-09,Sherman,Oregon,41055,1,0 +2020-04-10,Sherman,Oregon,41055,1,0 +2020-04-11,Sherman,Oregon,41055,1,0 +2020-04-12,Sherman,Oregon,41055,1,0 +2020-04-13,Sherman,Oregon,41055,1,0 +2020-04-14,Sherman,Oregon,41055,1,0 +2020-04-15,Sherman,Oregon,41055,1,0 +2020-04-16,Sherman,Oregon,41055,1,0 +2020-04-17,Sherman,Oregon,41055,1,0 +2020-04-18,Sherman,Oregon,41055,1,0 +2020-04-19,Sherman,Oregon,41055,1,0 +2020-04-20,Sherman,Oregon,41055,1,0 +2020-04-21,Sherman,Oregon,41055,1,0 +2020-04-22,Sherman,Oregon,41055,1,0 +2020-04-23,Sherman,Oregon,41055,1,0 +2020-04-24,Sherman,Oregon,41055,1,0 +2020-04-25,Sherman,Oregon,41055,1,0 +2020-04-26,Sherman,Oregon,41055,1,0 +2020-04-27,Sherman,Oregon,41055,1,0 +2020-04-28,Sherman,Oregon,41055,1,0 +2020-04-29,Sherman,Oregon,41055,1,0 +2020-04-30,Sherman,Oregon,41055,1,0 +2020-05-01,Sherman,Oregon,41055,1,0 +2020-05-02,Sherman,Oregon,41055,1,0 +2020-05-03,Sherman,Oregon,41055,1,0 +2020-05-04,Sherman,Oregon,41055,1,0 +2020-05-05,Sherman,Oregon,41055,1,0 +2020-05-06,Sherman,Oregon,41055,1,0 +2020-05-07,Sherman,Oregon,41055,1,0 +2020-05-08,Sherman,Oregon,41055,1,0 +2020-05-09,Sherman,Oregon,41055,1,0 +2020-05-10,Sherman,Oregon,41055,1,0 +2020-05-11,Sherman,Oregon,41055,1,0 +2020-05-12,Sherman,Oregon,41055,1,0 +2020-05-13,Sherman,Oregon,41055,1,0 +2020-05-14,Sherman,Oregon,41055,1,0 +2020-05-15,Sherman,Oregon,41055,1,0 +2020-05-16,Sherman,Oregon,41055,1,0 +2020-05-17,Sherman,Oregon,41055,1,0 +2020-05-18,Sherman,Oregon,41055,1,0 +2020-05-19,Sherman,Oregon,41055,1,0 +2020-05-20,Sherman,Oregon,41055,1,0 +2020-05-21,Sherman,Oregon,41055,1,0 +2020-05-22,Sherman,Oregon,41055,1,0 +2020-05-23,Sherman,Oregon,41055,1,0 +2020-05-24,Sherman,Oregon,41055,1,0 +2020-05-25,Sherman,Oregon,41055,1,0 +2020-05-26,Sherman,Oregon,41055,1,0 +2020-05-27,Sherman,Oregon,41055,1,0 +2020-05-28,Sherman,Oregon,41055,1,0 +2020-05-29,Sherman,Oregon,41055,1,0 +2020-05-30,Sherman,Oregon,41055,1,0 +2020-05-31,Sherman,Oregon,41055,1,0 +2020-06-01,Sherman,Oregon,41055,1,0 +2020-06-02,Sherman,Oregon,41055,1,0 +2020-06-03,Sherman,Oregon,41055,1,0 +2020-06-04,Sherman,Oregon,41055,1,0 +2020-06-05,Sherman,Oregon,41055,1,0 +2020-06-06,Sherman,Oregon,41055,1,0 +2020-06-07,Sherman,Oregon,41055,1,0 +2020-06-08,Sherman,Oregon,41055,1,0 +2020-06-09,Sherman,Oregon,41055,1,0 +2020-06-10,Sherman,Oregon,41055,1,0 +2020-06-11,Sherman,Oregon,41055,1,0 +2020-06-12,Sherman,Oregon,41055,1,0 +2020-06-13,Sherman,Oregon,41055,1,0 +2020-06-14,Sherman,Oregon,41055,1,0 +2020-06-15,Sherman,Oregon,41055,1,0 +2020-06-16,Sherman,Oregon,41055,1,0 +2020-06-17,Sherman,Oregon,41055,1,0 +2020-06-18,Sherman,Oregon,41055,1,0 +2020-06-19,Sherman,Oregon,41055,1,0 +2020-06-20,Sherman,Oregon,41055,1,0 +2020-06-21,Sherman,Oregon,41055,1,0 +2020-06-22,Sherman,Oregon,41055,1,0 +2020-06-23,Sherman,Oregon,41055,1,0 +2020-06-24,Sherman,Oregon,41055,1,0 +2020-06-25,Sherman,Oregon,41055,1,0 +2020-06-26,Sherman,Oregon,41055,1,0 +2020-06-27,Sherman,Oregon,41055,1,0 +2020-06-28,Sherman,Oregon,41055,1,0 +2020-06-29,Sherman,Oregon,41055,1,0 +2020-06-30,Sherman,Oregon,41055,1,0 +2020-07-01,Sherman,Oregon,41055,1,0 +2020-07-02,Sherman,Oregon,41055,1,0 +2020-07-03,Sherman,Oregon,41055,2,0 +2020-07-04,Sherman,Oregon,41055,2,0 +2020-07-05,Sherman,Oregon,41055,3,0 +2020-07-06,Sherman,Oregon,41055,3,0 +2020-07-07,Sherman,Oregon,41055,3,0 +2020-07-08,Sherman,Oregon,41055,3,0 +2020-07-09,Sherman,Oregon,41055,3,0 +2020-03-26,Tillamook,Oregon,41057,1,0 +2020-03-27,Tillamook,Oregon,41057,1,0 +2020-03-28,Tillamook,Oregon,41057,1,0 +2020-03-29,Tillamook,Oregon,41057,2,0 +2020-03-30,Tillamook,Oregon,41057,3,0 +2020-03-31,Tillamook,Oregon,41057,3,0 +2020-04-01,Tillamook,Oregon,41057,3,0 +2020-04-02,Tillamook,Oregon,41057,3,0 +2020-04-03,Tillamook,Oregon,41057,3,0 +2020-04-04,Tillamook,Oregon,41057,3,0 +2020-04-05,Tillamook,Oregon,41057,3,0 +2020-04-06,Tillamook,Oregon,41057,3,0 +2020-04-07,Tillamook,Oregon,41057,3,0 +2020-04-08,Tillamook,Oregon,41057,3,0 +2020-04-09,Tillamook,Oregon,41057,4,0 +2020-04-10,Tillamook,Oregon,41057,4,0 +2020-04-11,Tillamook,Oregon,41057,4,0 +2020-04-12,Tillamook,Oregon,41057,4,0 +2020-04-13,Tillamook,Oregon,41057,4,0 +2020-04-14,Tillamook,Oregon,41057,5,0 +2020-04-15,Tillamook,Oregon,41057,5,0 +2020-04-16,Tillamook,Oregon,41057,5,0 +2020-04-17,Tillamook,Oregon,41057,6,0 +2020-04-18,Tillamook,Oregon,41057,6,0 +2020-04-19,Tillamook,Oregon,41057,6,0 +2020-04-20,Tillamook,Oregon,41057,6,0 +2020-04-21,Tillamook,Oregon,41057,6,0 +2020-04-22,Tillamook,Oregon,41057,6,0 +2020-04-23,Tillamook,Oregon,41057,6,0 +2020-04-24,Tillamook,Oregon,41057,6,0 +2020-04-25,Tillamook,Oregon,41057,6,0 +2020-04-26,Tillamook,Oregon,41057,6,0 +2020-04-27,Tillamook,Oregon,41057,6,0 +2020-04-28,Tillamook,Oregon,41057,6,0 +2020-04-29,Tillamook,Oregon,41057,6,0 +2020-04-30,Tillamook,Oregon,41057,6,0 +2020-05-01,Tillamook,Oregon,41057,6,0 +2020-05-02,Tillamook,Oregon,41057,6,0 +2020-05-03,Tillamook,Oregon,41057,6,0 +2020-05-04,Tillamook,Oregon,41057,6,0 +2020-05-05,Tillamook,Oregon,41057,6,0 +2020-05-06,Tillamook,Oregon,41057,6,0 +2020-05-07,Tillamook,Oregon,41057,6,0 +2020-05-08,Tillamook,Oregon,41057,6,0 +2020-05-09,Tillamook,Oregon,41057,6,0 +2020-05-10,Tillamook,Oregon,41057,6,0 +2020-05-11,Tillamook,Oregon,41057,6,0 +2020-05-12,Tillamook,Oregon,41057,6,0 +2020-05-13,Tillamook,Oregon,41057,6,0 +2020-05-14,Tillamook,Oregon,41057,6,0 +2020-05-15,Tillamook,Oregon,41057,6,0 +2020-05-16,Tillamook,Oregon,41057,6,0 +2020-05-17,Tillamook,Oregon,41057,6,0 +2020-05-18,Tillamook,Oregon,41057,6,0 +2020-05-19,Tillamook,Oregon,41057,6,0 +2020-05-20,Tillamook,Oregon,41057,6,0 +2020-05-21,Tillamook,Oregon,41057,6,0 +2020-05-22,Tillamook,Oregon,41057,6,0 +2020-05-23,Tillamook,Oregon,41057,6,0 +2020-05-24,Tillamook,Oregon,41057,6,0 +2020-05-25,Tillamook,Oregon,41057,6,0 +2020-05-26,Tillamook,Oregon,41057,6,0 +2020-05-27,Tillamook,Oregon,41057,6,0 +2020-05-28,Tillamook,Oregon,41057,6,0 +2020-05-29,Tillamook,Oregon,41057,6,0 +2020-05-30,Tillamook,Oregon,41057,6,0 +2020-05-31,Tillamook,Oregon,41057,6,0 +2020-06-01,Tillamook,Oregon,41057,6,0 +2020-06-02,Tillamook,Oregon,41057,6,0 +2020-06-03,Tillamook,Oregon,41057,6,0 +2020-06-04,Tillamook,Oregon,41057,6,0 +2020-06-05,Tillamook,Oregon,41057,6,0 +2020-06-06,Tillamook,Oregon,41057,6,0 +2020-06-07,Tillamook,Oregon,41057,6,0 +2020-06-08,Tillamook,Oregon,41057,6,0 +2020-06-09,Tillamook,Oregon,41057,6,0 +2020-06-10,Tillamook,Oregon,41057,6,0 +2020-06-11,Tillamook,Oregon,41057,6,0 +2020-06-12,Tillamook,Oregon,41057,6,0 +2020-06-13,Tillamook,Oregon,41057,6,0 +2020-06-14,Tillamook,Oregon,41057,6,0 +2020-06-15,Tillamook,Oregon,41057,6,0 +2020-06-16,Tillamook,Oregon,41057,6,0 +2020-06-17,Tillamook,Oregon,41057,6,0 +2020-06-18,Tillamook,Oregon,41057,6,0 +2020-06-19,Tillamook,Oregon,41057,6,0 +2020-06-20,Tillamook,Oregon,41057,6,0 +2020-06-21,Tillamook,Oregon,41057,6,0 +2020-06-22,Tillamook,Oregon,41057,6,0 +2020-06-23,Tillamook,Oregon,41057,7,0 +2020-06-24,Tillamook,Oregon,41057,7,0 +2020-06-25,Tillamook,Oregon,41057,7,0 +2020-06-26,Tillamook,Oregon,41057,7,0 +2020-06-27,Tillamook,Oregon,41057,7,0 +2020-06-28,Tillamook,Oregon,41057,7,0 +2020-06-29,Tillamook,Oregon,41057,9,0 +2020-06-30,Tillamook,Oregon,41057,9,0 +2020-07-01,Tillamook,Oregon,41057,11,0 +2020-07-02,Tillamook,Oregon,41057,12,0 +2020-07-03,Tillamook,Oregon,41057,13,0 +2020-07-04,Tillamook,Oregon,41057,14,0 +2020-07-05,Tillamook,Oregon,41057,14,0 +2020-07-06,Tillamook,Oregon,41057,15,0 +2020-07-07,Tillamook,Oregon,41057,15,0 +2020-07-08,Tillamook,Oregon,41057,15,0 +2020-07-09,Tillamook,Oregon,41057,15,0 +2020-03-11,Umatilla,Oregon,41059,1,0 +2020-03-12,Umatilla,Oregon,41059,2,0 +2020-03-13,Umatilla,Oregon,41059,2,0 +2020-03-14,Umatilla,Oregon,41059,2,0 +2020-03-15,Umatilla,Oregon,41059,2,0 +2020-03-16,Umatilla,Oregon,41059,2,0 +2020-03-17,Umatilla,Oregon,41059,2,0 +2020-03-18,Umatilla,Oregon,41059,2,0 +2020-03-19,Umatilla,Oregon,41059,2,0 +2020-03-20,Umatilla,Oregon,41059,2,0 +2020-03-21,Umatilla,Oregon,41059,2,0 +2020-03-22,Umatilla,Oregon,41059,2,0 +2020-03-23,Umatilla,Oregon,41059,2,0 +2020-03-24,Umatilla,Oregon,41059,2,0 +2020-03-25,Umatilla,Oregon,41059,2,0 +2020-03-26,Umatilla,Oregon,41059,2,0 +2020-03-27,Umatilla,Oregon,41059,3,0 +2020-03-28,Umatilla,Oregon,41059,4,0 +2020-03-29,Umatilla,Oregon,41059,4,0 +2020-03-30,Umatilla,Oregon,41059,4,0 +2020-03-31,Umatilla,Oregon,41059,5,0 +2020-04-01,Umatilla,Oregon,41059,5,0 +2020-04-02,Umatilla,Oregon,41059,5,0 +2020-04-03,Umatilla,Oregon,41059,5,0 +2020-04-04,Umatilla,Oregon,41059,5,0 +2020-04-05,Umatilla,Oregon,41059,7,0 +2020-04-06,Umatilla,Oregon,41059,8,0 +2020-04-07,Umatilla,Oregon,41059,8,0 +2020-04-08,Umatilla,Oregon,41059,8,0 +2020-04-09,Umatilla,Oregon,41059,11,0 +2020-04-10,Umatilla,Oregon,41059,11,0 +2020-04-11,Umatilla,Oregon,41059,14,0 +2020-04-12,Umatilla,Oregon,41059,16,0 +2020-04-13,Umatilla,Oregon,41059,16,0 +2020-04-14,Umatilla,Oregon,41059,16,0 +2020-04-15,Umatilla,Oregon,41059,17,0 +2020-04-16,Umatilla,Oregon,41059,22,0 +2020-04-17,Umatilla,Oregon,41059,23,0 +2020-04-18,Umatilla,Oregon,41059,25,0 +2020-04-19,Umatilla,Oregon,41059,26,0 +2020-04-20,Umatilla,Oregon,41059,27,0 +2020-04-21,Umatilla,Oregon,41059,29,0 +2020-04-22,Umatilla,Oregon,41059,29,0 +2020-04-23,Umatilla,Oregon,41059,30,0 +2020-04-24,Umatilla,Oregon,41059,32,0 +2020-04-25,Umatilla,Oregon,41059,35,0 +2020-04-26,Umatilla,Oregon,41059,36,0 +2020-04-27,Umatilla,Oregon,41059,36,0 +2020-04-28,Umatilla,Oregon,41059,37,0 +2020-04-29,Umatilla,Oregon,41059,45,0 +2020-04-30,Umatilla,Oregon,41059,50,0 +2020-05-01,Umatilla,Oregon,41059,57,0 +2020-05-02,Umatilla,Oregon,41059,61,1 +2020-05-03,Umatilla,Oregon,41059,64,1 +2020-05-04,Umatilla,Oregon,41059,70,1 +2020-05-05,Umatilla,Oregon,41059,73,1 +2020-05-06,Umatilla,Oregon,41059,77,1 +2020-05-07,Umatilla,Oregon,41059,77,1 +2020-05-08,Umatilla,Oregon,41059,80,1 +2020-05-09,Umatilla,Oregon,41059,84,1 +2020-05-10,Umatilla,Oregon,41059,85,1 +2020-05-11,Umatilla,Oregon,41059,85,2 +2020-05-12,Umatilla,Oregon,41059,85,2 +2020-05-13,Umatilla,Oregon,41059,86,2 +2020-05-14,Umatilla,Oregon,41059,88,2 +2020-05-15,Umatilla,Oregon,41059,91,2 +2020-05-16,Umatilla,Oregon,41059,93,2 +2020-05-17,Umatilla,Oregon,41059,93,2 +2020-05-18,Umatilla,Oregon,41059,98,2 +2020-05-19,Umatilla,Oregon,41059,101,3 +2020-05-20,Umatilla,Oregon,41059,105,3 +2020-05-21,Umatilla,Oregon,41059,107,3 +2020-05-22,Umatilla,Oregon,41059,108,3 +2020-05-23,Umatilla,Oregon,41059,110,3 +2020-05-24,Umatilla,Oregon,41059,111,3 +2020-05-25,Umatilla,Oregon,41059,112,3 +2020-05-26,Umatilla,Oregon,41059,112,3 +2020-05-27,Umatilla,Oregon,41059,112,3 +2020-05-28,Umatilla,Oregon,41059,114,3 +2020-05-29,Umatilla,Oregon,41059,114,3 +2020-05-30,Umatilla,Oregon,41059,116,3 +2020-05-31,Umatilla,Oregon,41059,116,3 +2020-06-01,Umatilla,Oregon,41059,120,3 +2020-06-02,Umatilla,Oregon,41059,121,3 +2020-06-03,Umatilla,Oregon,41059,123,3 +2020-06-04,Umatilla,Oregon,41059,124,3 +2020-06-05,Umatilla,Oregon,41059,125,3 +2020-06-06,Umatilla,Oregon,41059,131,3 +2020-06-07,Umatilla,Oregon,41059,136,3 +2020-06-08,Umatilla,Oregon,41059,144,3 +2020-06-09,Umatilla,Oregon,41059,144,3 +2020-06-10,Umatilla,Oregon,41059,148,3 +2020-06-11,Umatilla,Oregon,41059,152,3 +2020-06-12,Umatilla,Oregon,41059,157,3 +2020-06-13,Umatilla,Oregon,41059,170,4 +2020-06-14,Umatilla,Oregon,41059,171,4 +2020-06-15,Umatilla,Oregon,41059,180,4 +2020-06-16,Umatilla,Oregon,41059,181,4 +2020-06-17,Umatilla,Oregon,41059,193,4 +2020-06-18,Umatilla,Oregon,41059,206,4 +2020-06-19,Umatilla,Oregon,41059,230,4 +2020-06-20,Umatilla,Oregon,41059,230,4 +2020-06-21,Umatilla,Oregon,41059,268,4 +2020-06-22,Umatilla,Oregon,41059,279,4 +2020-06-23,Umatilla,Oregon,41059,298,4 +2020-06-24,Umatilla,Oregon,41059,333,4 +2020-06-25,Umatilla,Oregon,41059,341,4 +2020-06-26,Umatilla,Oregon,41059,363,4 +2020-06-27,Umatilla,Oregon,41059,419,4 +2020-06-28,Umatilla,Oregon,41059,467,4 +2020-06-29,Umatilla,Oregon,41059,482,4 +2020-06-30,Umatilla,Oregon,41059,492,4 +2020-07-01,Umatilla,Oregon,41059,533,4 +2020-07-02,Umatilla,Oregon,41059,620,4 +2020-07-03,Umatilla,Oregon,41059,667,4 +2020-07-04,Umatilla,Oregon,41059,716,6 +2020-07-05,Umatilla,Oregon,41059,757,6 +2020-07-06,Umatilla,Oregon,41059,772,6 +2020-07-07,Umatilla,Oregon,41059,792,6 +2020-07-08,Umatilla,Oregon,41059,834,6 +2020-07-09,Umatilla,Oregon,41059,886,7 +2020-03-20,Union,Oregon,41061,1,0 +2020-03-21,Union,Oregon,41061,1,0 +2020-03-22,Union,Oregon,41061,1,0 +2020-03-23,Union,Oregon,41061,1,0 +2020-03-24,Union,Oregon,41061,1,0 +2020-03-25,Union,Oregon,41061,1,0 +2020-03-26,Union,Oregon,41061,1,0 +2020-03-27,Union,Oregon,41061,1,0 +2020-03-28,Union,Oregon,41061,1,0 +2020-03-29,Union,Oregon,41061,1,0 +2020-03-30,Union,Oregon,41061,1,0 +2020-03-31,Union,Oregon,41061,1,0 +2020-04-01,Union,Oregon,41061,1,0 +2020-04-02,Union,Oregon,41061,3,0 +2020-04-03,Union,Oregon,41061,3,0 +2020-04-04,Union,Oregon,41061,3,0 +2020-04-05,Union,Oregon,41061,3,0 +2020-04-06,Union,Oregon,41061,3,0 +2020-04-07,Union,Oregon,41061,3,0 +2020-04-08,Union,Oregon,41061,3,0 +2020-04-09,Union,Oregon,41061,3,0 +2020-04-10,Union,Oregon,41061,3,0 +2020-04-11,Union,Oregon,41061,4,0 +2020-04-12,Union,Oregon,41061,4,0 +2020-04-13,Union,Oregon,41061,4,0 +2020-04-14,Union,Oregon,41061,4,0 +2020-04-15,Union,Oregon,41061,4,0 +2020-04-16,Union,Oregon,41061,4,0 +2020-04-17,Union,Oregon,41061,4,0 +2020-04-18,Union,Oregon,41061,4,0 +2020-04-19,Union,Oregon,41061,4,0 +2020-04-20,Union,Oregon,41061,4,0 +2020-04-21,Union,Oregon,41061,4,0 +2020-04-22,Union,Oregon,41061,4,0 +2020-04-23,Union,Oregon,41061,4,0 +2020-04-24,Union,Oregon,41061,4,0 +2020-04-25,Union,Oregon,41061,4,0 +2020-04-26,Union,Oregon,41061,4,0 +2020-04-27,Union,Oregon,41061,4,0 +2020-04-28,Union,Oregon,41061,4,0 +2020-04-29,Union,Oregon,41061,4,0 +2020-04-30,Union,Oregon,41061,4,0 +2020-05-01,Union,Oregon,41061,4,0 +2020-05-02,Union,Oregon,41061,4,0 +2020-05-03,Union,Oregon,41061,4,0 +2020-05-04,Union,Oregon,41061,4,0 +2020-05-05,Union,Oregon,41061,4,0 +2020-05-06,Union,Oregon,41061,4,0 +2020-05-07,Union,Oregon,41061,4,0 +2020-05-08,Union,Oregon,41061,4,0 +2020-05-09,Union,Oregon,41061,4,0 +2020-05-10,Union,Oregon,41061,4,0 +2020-05-11,Union,Oregon,41061,4,0 +2020-05-12,Union,Oregon,41061,4,0 +2020-05-13,Union,Oregon,41061,4,0 +2020-05-14,Union,Oregon,41061,4,0 +2020-05-15,Union,Oregon,41061,5,0 +2020-05-16,Union,Oregon,41061,5,0 +2020-05-17,Union,Oregon,41061,5,0 +2020-05-18,Union,Oregon,41061,6,0 +2020-05-19,Union,Oregon,41061,6,0 +2020-05-20,Union,Oregon,41061,6,0 +2020-05-21,Union,Oregon,41061,6,0 +2020-05-22,Union,Oregon,41061,6,0 +2020-05-23,Union,Oregon,41061,6,0 +2020-05-24,Union,Oregon,41061,6,0 +2020-05-25,Union,Oregon,41061,6,0 +2020-05-26,Union,Oregon,41061,6,0 +2020-05-27,Union,Oregon,41061,6,0 +2020-05-28,Union,Oregon,41061,6,0 +2020-05-29,Union,Oregon,41061,6,0 +2020-05-30,Union,Oregon,41061,6,0 +2020-05-31,Union,Oregon,41061,6,0 +2020-06-01,Union,Oregon,41061,6,0 +2020-06-02,Union,Oregon,41061,6,0 +2020-06-03,Union,Oregon,41061,6,0 +2020-06-04,Union,Oregon,41061,6,0 +2020-06-05,Union,Oregon,41061,6,0 +2020-06-06,Union,Oregon,41061,6,0 +2020-06-07,Union,Oregon,41061,6,0 +2020-06-08,Union,Oregon,41061,6,0 +2020-06-09,Union,Oregon,41061,7,0 +2020-06-10,Union,Oregon,41061,7,0 +2020-06-11,Union,Oregon,41061,8,0 +2020-06-12,Union,Oregon,41061,12,0 +2020-06-13,Union,Oregon,41061,14,0 +2020-06-14,Union,Oregon,41061,22,0 +2020-06-15,Union,Oregon,41061,121,0 +2020-06-16,Union,Oregon,41061,240,0 +2020-06-17,Union,Oregon,41061,242,0 +2020-06-18,Union,Oregon,41061,247,0 +2020-06-19,Union,Oregon,41061,253,0 +2020-06-20,Union,Oregon,41061,253,0 +2020-06-21,Union,Oregon,41061,258,0 +2020-06-22,Union,Oregon,41061,263,0 +2020-06-23,Union,Oregon,41061,282,0 +2020-06-24,Union,Oregon,41061,287,0 +2020-06-25,Union,Oregon,41061,297,0 +2020-06-26,Union,Oregon,41061,309,1 +2020-06-27,Union,Oregon,41061,320,1 +2020-06-28,Union,Oregon,41061,322,1 +2020-06-29,Union,Oregon,41061,327,1 +2020-06-30,Union,Oregon,41061,337,1 +2020-07-01,Union,Oregon,41061,342,1 +2020-07-02,Union,Oregon,41061,347,1 +2020-07-03,Union,Oregon,41061,355,1 +2020-07-04,Union,Oregon,41061,355,1 +2020-07-05,Union,Oregon,41061,356,1 +2020-07-06,Union,Oregon,41061,356,1 +2020-07-07,Union,Oregon,41061,361,1 +2020-07-08,Union,Oregon,41061,363,1 +2020-07-09,Union,Oregon,41061,367,1 +2020-03-31,Wallowa,Oregon,41063,1,0 +2020-04-01,Wallowa,Oregon,41063,1,0 +2020-04-02,Wallowa,Oregon,41063,1,0 +2020-04-03,Wallowa,Oregon,41063,1,0 +2020-04-04,Wallowa,Oregon,41063,1,0 +2020-04-05,Wallowa,Oregon,41063,1,0 +2020-04-06,Wallowa,Oregon,41063,1,0 +2020-04-07,Wallowa,Oregon,41063,1,0 +2020-04-08,Wallowa,Oregon,41063,2,0 +2020-04-09,Wallowa,Oregon,41063,1,0 +2020-04-10,Wallowa,Oregon,41063,1,0 +2020-04-11,Wallowa,Oregon,41063,1,0 +2020-04-12,Wallowa,Oregon,41063,1,0 +2020-04-13,Wallowa,Oregon,41063,1,0 +2020-04-14,Wallowa,Oregon,41063,1,0 +2020-04-15,Wallowa,Oregon,41063,1,0 +2020-04-16,Wallowa,Oregon,41063,1,0 +2020-04-17,Wallowa,Oregon,41063,1,0 +2020-04-18,Wallowa,Oregon,41063,1,0 +2020-04-19,Wallowa,Oregon,41063,1,0 +2020-04-20,Wallowa,Oregon,41063,1,0 +2020-04-21,Wallowa,Oregon,41063,1,0 +2020-04-22,Wallowa,Oregon,41063,1,0 +2020-04-23,Wallowa,Oregon,41063,1,0 +2020-04-24,Wallowa,Oregon,41063,1,0 +2020-04-25,Wallowa,Oregon,41063,1,0 +2020-04-26,Wallowa,Oregon,41063,1,0 +2020-04-27,Wallowa,Oregon,41063,1,0 +2020-04-28,Wallowa,Oregon,41063,1,0 +2020-04-29,Wallowa,Oregon,41063,1,0 +2020-04-30,Wallowa,Oregon,41063,1,0 +2020-05-01,Wallowa,Oregon,41063,1,0 +2020-05-02,Wallowa,Oregon,41063,1,0 +2020-05-03,Wallowa,Oregon,41063,1,0 +2020-05-04,Wallowa,Oregon,41063,1,0 +2020-05-05,Wallowa,Oregon,41063,1,0 +2020-05-06,Wallowa,Oregon,41063,1,0 +2020-05-07,Wallowa,Oregon,41063,1,0 +2020-05-08,Wallowa,Oregon,41063,1,0 +2020-05-09,Wallowa,Oregon,41063,1,0 +2020-05-10,Wallowa,Oregon,41063,1,0 +2020-05-11,Wallowa,Oregon,41063,1,0 +2020-05-12,Wallowa,Oregon,41063,1,0 +2020-05-13,Wallowa,Oregon,41063,1,0 +2020-05-14,Wallowa,Oregon,41063,1,0 +2020-05-15,Wallowa,Oregon,41063,2,0 +2020-05-16,Wallowa,Oregon,41063,1,0 +2020-05-17,Wallowa,Oregon,41063,1,0 +2020-05-18,Wallowa,Oregon,41063,1,0 +2020-05-19,Wallowa,Oregon,41063,1,0 +2020-05-20,Wallowa,Oregon,41063,1,0 +2020-05-21,Wallowa,Oregon,41063,1,0 +2020-05-22,Wallowa,Oregon,41063,1,0 +2020-05-23,Wallowa,Oregon,41063,2,0 +2020-05-24,Wallowa,Oregon,41063,2,0 +2020-05-25,Wallowa,Oregon,41063,2,0 +2020-05-26,Wallowa,Oregon,41063,2,0 +2020-05-27,Wallowa,Oregon,41063,2,0 +2020-05-28,Wallowa,Oregon,41063,2,0 +2020-05-29,Wallowa,Oregon,41063,2,0 +2020-05-30,Wallowa,Oregon,41063,2,0 +2020-05-31,Wallowa,Oregon,41063,2,0 +2020-06-01,Wallowa,Oregon,41063,2,0 +2020-06-02,Wallowa,Oregon,41063,2,0 +2020-06-03,Wallowa,Oregon,41063,2,0 +2020-06-04,Wallowa,Oregon,41063,2,0 +2020-06-05,Wallowa,Oregon,41063,2,0 +2020-06-06,Wallowa,Oregon,41063,3,0 +2020-06-07,Wallowa,Oregon,41063,3,0 +2020-06-08,Wallowa,Oregon,41063,3,0 +2020-06-09,Wallowa,Oregon,41063,3,0 +2020-06-10,Wallowa,Oregon,41063,3,0 +2020-06-11,Wallowa,Oregon,41063,4,0 +2020-06-12,Wallowa,Oregon,41063,4,0 +2020-06-13,Wallowa,Oregon,41063,4,0 +2020-06-14,Wallowa,Oregon,41063,4,0 +2020-06-15,Wallowa,Oregon,41063,4,0 +2020-06-16,Wallowa,Oregon,41063,4,0 +2020-06-17,Wallowa,Oregon,41063,4,0 +2020-06-18,Wallowa,Oregon,41063,4,0 +2020-06-19,Wallowa,Oregon,41063,5,0 +2020-06-20,Wallowa,Oregon,41063,5,0 +2020-06-21,Wallowa,Oregon,41063,8,0 +2020-06-22,Wallowa,Oregon,41063,8,0 +2020-06-23,Wallowa,Oregon,41063,8,0 +2020-06-24,Wallowa,Oregon,41063,8,0 +2020-06-25,Wallowa,Oregon,41063,8,0 +2020-06-26,Wallowa,Oregon,41063,8,0 +2020-06-27,Wallowa,Oregon,41063,8,0 +2020-06-28,Wallowa,Oregon,41063,8,0 +2020-06-29,Wallowa,Oregon,41063,8,0 +2020-06-30,Wallowa,Oregon,41063,8,0 +2020-07-01,Wallowa,Oregon,41063,10,0 +2020-07-02,Wallowa,Oregon,41063,10,0 +2020-07-03,Wallowa,Oregon,41063,10,0 +2020-07-04,Wallowa,Oregon,41063,10,0 +2020-07-05,Wallowa,Oregon,41063,10,0 +2020-07-06,Wallowa,Oregon,41063,10,0 +2020-07-07,Wallowa,Oregon,41063,11,0 +2020-07-08,Wallowa,Oregon,41063,11,0 +2020-07-09,Wallowa,Oregon,41063,12,0 +2020-03-26,Wasco,Oregon,41065,1,0 +2020-03-27,Wasco,Oregon,41065,2,0 +2020-03-28,Wasco,Oregon,41065,2,0 +2020-03-29,Wasco,Oregon,41065,3,0 +2020-03-30,Wasco,Oregon,41065,5,0 +2020-03-31,Wasco,Oregon,41065,7,0 +2020-04-01,Wasco,Oregon,41065,7,0 +2020-04-02,Wasco,Oregon,41065,7,0 +2020-04-03,Wasco,Oregon,41065,7,0 +2020-04-04,Wasco,Oregon,41065,7,0 +2020-04-05,Wasco,Oregon,41065,7,0 +2020-04-06,Wasco,Oregon,41065,7,0 +2020-04-07,Wasco,Oregon,41065,7,0 +2020-04-08,Wasco,Oregon,41065,7,0 +2020-04-09,Wasco,Oregon,41065,7,0 +2020-04-10,Wasco,Oregon,41065,7,0 +2020-04-11,Wasco,Oregon,41065,9,0 +2020-04-12,Wasco,Oregon,41065,10,0 +2020-04-13,Wasco,Oregon,41065,10,0 +2020-04-14,Wasco,Oregon,41065,10,0 +2020-04-15,Wasco,Oregon,41065,10,0 +2020-04-16,Wasco,Oregon,41065,10,0 +2020-04-17,Wasco,Oregon,41065,10,0 +2020-04-18,Wasco,Oregon,41065,10,0 +2020-04-19,Wasco,Oregon,41065,10,0 +2020-04-20,Wasco,Oregon,41065,10,0 +2020-04-21,Wasco,Oregon,41065,11,0 +2020-04-22,Wasco,Oregon,41065,11,0 +2020-04-23,Wasco,Oregon,41065,12,0 +2020-04-24,Wasco,Oregon,41065,12,0 +2020-04-25,Wasco,Oregon,41065,12,0 +2020-04-26,Wasco,Oregon,41065,12,1 +2020-04-27,Wasco,Oregon,41065,12,1 +2020-04-28,Wasco,Oregon,41065,13,1 +2020-04-29,Wasco,Oregon,41065,13,1 +2020-04-30,Wasco,Oregon,41065,13,1 +2020-05-01,Wasco,Oregon,41065,13,1 +2020-05-02,Wasco,Oregon,41065,13,1 +2020-05-03,Wasco,Oregon,41065,13,1 +2020-05-04,Wasco,Oregon,41065,13,1 +2020-05-05,Wasco,Oregon,41065,13,1 +2020-05-06,Wasco,Oregon,41065,14,1 +2020-05-07,Wasco,Oregon,41065,14,1 +2020-05-08,Wasco,Oregon,41065,15,1 +2020-05-09,Wasco,Oregon,41065,15,1 +2020-05-10,Wasco,Oregon,41065,15,1 +2020-05-11,Wasco,Oregon,41065,15,1 +2020-05-12,Wasco,Oregon,41065,16,1 +2020-05-13,Wasco,Oregon,41065,16,1 +2020-05-14,Wasco,Oregon,41065,16,1 +2020-05-15,Wasco,Oregon,41065,16,1 +2020-05-16,Wasco,Oregon,41065,18,1 +2020-05-17,Wasco,Oregon,41065,18,1 +2020-05-18,Wasco,Oregon,41065,18,1 +2020-05-19,Wasco,Oregon,41065,18,1 +2020-05-20,Wasco,Oregon,41065,18,1 +2020-05-21,Wasco,Oregon,41065,18,1 +2020-05-22,Wasco,Oregon,41065,18,1 +2020-05-23,Wasco,Oregon,41065,18,1 +2020-05-24,Wasco,Oregon,41065,18,1 +2020-05-25,Wasco,Oregon,41065,18,1 +2020-05-26,Wasco,Oregon,41065,18,1 +2020-05-27,Wasco,Oregon,41065,20,1 +2020-05-28,Wasco,Oregon,41065,21,1 +2020-05-29,Wasco,Oregon,41065,22,1 +2020-05-30,Wasco,Oregon,41065,23,1 +2020-05-31,Wasco,Oregon,41065,24,1 +2020-06-01,Wasco,Oregon,41065,24,1 +2020-06-02,Wasco,Oregon,41065,26,1 +2020-06-03,Wasco,Oregon,41065,28,1 +2020-06-04,Wasco,Oregon,41065,29,1 +2020-06-05,Wasco,Oregon,41065,32,1 +2020-06-06,Wasco,Oregon,41065,33,1 +2020-06-07,Wasco,Oregon,41065,35,1 +2020-06-08,Wasco,Oregon,41065,35,1 +2020-06-09,Wasco,Oregon,41065,35,1 +2020-06-10,Wasco,Oregon,41065,35,1 +2020-06-11,Wasco,Oregon,41065,35,1 +2020-06-12,Wasco,Oregon,41065,38,1 +2020-06-13,Wasco,Oregon,41065,39,1 +2020-06-14,Wasco,Oregon,41065,39,1 +2020-06-15,Wasco,Oregon,41065,41,1 +2020-06-16,Wasco,Oregon,41065,42,1 +2020-06-17,Wasco,Oregon,41065,42,1 +2020-06-18,Wasco,Oregon,41065,42,1 +2020-06-19,Wasco,Oregon,41065,42,1 +2020-06-20,Wasco,Oregon,41065,42,1 +2020-06-21,Wasco,Oregon,41065,47,1 +2020-06-22,Wasco,Oregon,41065,48,1 +2020-06-23,Wasco,Oregon,41065,52,1 +2020-06-24,Wasco,Oregon,41065,54,1 +2020-06-25,Wasco,Oregon,41065,55,1 +2020-06-26,Wasco,Oregon,41065,58,1 +2020-06-27,Wasco,Oregon,41065,60,1 +2020-06-28,Wasco,Oregon,41065,63,1 +2020-06-29,Wasco,Oregon,41065,68,1 +2020-06-30,Wasco,Oregon,41065,69,1 +2020-07-01,Wasco,Oregon,41065,73,1 +2020-07-02,Wasco,Oregon,41065,75,1 +2020-07-03,Wasco,Oregon,41065,85,1 +2020-07-04,Wasco,Oregon,41065,88,1 +2020-07-05,Wasco,Oregon,41065,91,1 +2020-07-06,Wasco,Oregon,41065,94,1 +2020-07-07,Wasco,Oregon,41065,96,1 +2020-07-08,Wasco,Oregon,41065,97,1 +2020-07-09,Wasco,Oregon,41065,102,1 +2020-02-28,Washington,Oregon,41067,1,0 +2020-02-29,Washington,Oregon,41067,1,0 +2020-03-01,Washington,Oregon,41067,2,0 +2020-03-02,Washington,Oregon,41067,2,0 +2020-03-03,Washington,Oregon,41067,2,0 +2020-03-04,Washington,Oregon,41067,2,0 +2020-03-05,Washington,Oregon,41067,2,0 +2020-03-06,Washington,Oregon,41067,2,0 +2020-03-07,Washington,Oregon,41067,3,0 +2020-03-08,Washington,Oregon,41067,8,0 +2020-03-09,Washington,Oregon,41067,8,0 +2020-03-10,Washington,Oregon,41067,8,0 +2020-03-11,Washington,Oregon,41067,8,0 +2020-03-12,Washington,Oregon,41067,10,0 +2020-03-13,Washington,Oregon,41067,10,0 +2020-03-14,Washington,Oregon,41067,13,0 +2020-03-15,Washington,Oregon,41067,13,0 +2020-03-16,Washington,Oregon,41067,14,0 +2020-03-17,Washington,Oregon,41067,21,0 +2020-03-18,Washington,Oregon,41067,23,1 +2020-03-19,Washington,Oregon,41067,25,1 +2020-03-20,Washington,Oregon,41067,31,1 +2020-03-21,Washington,Oregon,41067,42,1 +2020-03-22,Washington,Oregon,41067,55,1 +2020-03-23,Washington,Oregon,41067,69,1 +2020-03-24,Washington,Oregon,41067,76,2 +2020-03-25,Washington,Oregon,41067,96,2 +2020-03-26,Washington,Oregon,41067,104,3 +2020-03-27,Washington,Oregon,41067,122,3 +2020-03-28,Washington,Oregon,41067,140,3 +2020-03-29,Washington,Oregon,41067,154,3 +2020-03-30,Washington,Oregon,41067,168,3 +2020-03-31,Washington,Oregon,41067,186,3 +2020-04-01,Washington,Oregon,41067,189,3 +2020-04-02,Washington,Oregon,41067,211,4 +2020-04-03,Washington,Oregon,41067,228,4 +2020-04-04,Washington,Oregon,41067,247,4 +2020-04-05,Washington,Oregon,41067,259,4 +2020-04-06,Washington,Oregon,41067,271,5 +2020-04-07,Washington,Oregon,41067,282,6 +2020-04-08,Washington,Oregon,41067,295,6 +2020-04-09,Washington,Oregon,41067,311,6 +2020-04-10,Washington,Oregon,41067,320,6 +2020-04-11,Washington,Oregon,41067,330,6 +2020-04-12,Washington,Oregon,41067,348,6 +2020-04-13,Washington,Oregon,41067,360,7 +2020-04-14,Washington,Oregon,41067,365,7 +2020-04-15,Washington,Oregon,41067,364,7 +2020-04-16,Washington,Oregon,41067,376,7 +2020-04-17,Washington,Oregon,41067,383,7 +2020-04-18,Washington,Oregon,41067,387,7 +2020-04-19,Washington,Oregon,41067,399,8 +2020-04-20,Washington,Oregon,41067,408,8 +2020-04-21,Washington,Oregon,41067,415,10 +2020-04-22,Washington,Oregon,41067,425,10 +2020-04-23,Washington,Oregon,41067,443,10 +2020-04-24,Washington,Oregon,41067,451,10 +2020-04-25,Washington,Oregon,41067,459,10 +2020-04-26,Washington,Oregon,41067,466,10 +2020-04-27,Washington,Oregon,41067,475,11 +2020-04-28,Washington,Oregon,41067,474,11 +2020-04-29,Washington,Oregon,41067,481,11 +2020-04-30,Washington,Oregon,41067,491,11 +2020-05-01,Washington,Oregon,41067,500,11 +2020-05-02,Washington,Oregon,41067,509,11 +2020-05-03,Washington,Oregon,41067,516,11 +2020-05-04,Washington,Oregon,41067,526,11 +2020-05-05,Washington,Oregon,41067,531,12 +2020-05-06,Washington,Oregon,41067,537,12 +2020-05-07,Washington,Oregon,41067,548,12 +2020-05-08,Washington,Oregon,41067,556,12 +2020-05-09,Washington,Oregon,41067,562,12 +2020-05-10,Washington,Oregon,41067,573,12 +2020-05-11,Washington,Oregon,41067,587,13 +2020-05-12,Washington,Oregon,41067,601,13 +2020-05-13,Washington,Oregon,41067,614,14 +2020-05-14,Washington,Oregon,41067,616,15 +2020-05-15,Washington,Oregon,41067,620,15 +2020-05-16,Washington,Oregon,41067,628,15 +2020-05-17,Washington,Oregon,41067,628,15 +2020-05-18,Washington,Oregon,41067,638,15 +2020-05-19,Washington,Oregon,41067,644,15 +2020-05-20,Washington,Oregon,41067,658,17 +2020-05-21,Washington,Oregon,41067,659,17 +2020-05-22,Washington,Oregon,41067,669,17 +2020-05-23,Washington,Oregon,41067,673,17 +2020-05-24,Washington,Oregon,41067,690,17 +2020-05-25,Washington,Oregon,41067,695,17 +2020-05-26,Washington,Oregon,41067,698,17 +2020-05-27,Washington,Oregon,41067,703,17 +2020-05-28,Washington,Oregon,41067,715,17 +2020-05-29,Washington,Oregon,41067,722,17 +2020-05-30,Washington,Oregon,41067,734,17 +2020-05-31,Washington,Oregon,41067,739,17 +2020-06-01,Washington,Oregon,41067,743,17 +2020-06-02,Washington,Oregon,41067,747,18 +2020-06-03,Washington,Oregon,41067,752,18 +2020-06-04,Washington,Oregon,41067,755,18 +2020-06-05,Washington,Oregon,41067,775,18 +2020-06-06,Washington,Oregon,41067,790,18 +2020-06-07,Washington,Oregon,41067,798,18 +2020-06-08,Washington,Oregon,41067,800,18 +2020-06-09,Washington,Oregon,41067,815,18 +2020-06-10,Washington,Oregon,41067,821,18 +2020-06-11,Washington,Oregon,41067,828,18 +2020-06-12,Washington,Oregon,41067,849,19 +2020-06-13,Washington,Oregon,41067,863,20 +2020-06-14,Washington,Oregon,41067,876,20 +2020-06-15,Washington,Oregon,41067,891,20 +2020-06-16,Washington,Oregon,41067,928,20 +2020-06-17,Washington,Oregon,41067,950,20 +2020-06-18,Washington,Oregon,41067,975,20 +2020-06-19,Washington,Oregon,41067,992,20 +2020-06-20,Washington,Oregon,41067,1029,20 +2020-06-21,Washington,Oregon,41067,1051,20 +2020-06-22,Washington,Oregon,41067,1078,20 +2020-06-23,Washington,Oregon,41067,1120,20 +2020-06-24,Washington,Oregon,41067,1151,20 +2020-06-25,Washington,Oregon,41067,1175,20 +2020-06-26,Washington,Oregon,41067,1252,20 +2020-06-27,Washington,Oregon,41067,1258,20 +2020-06-28,Washington,Oregon,41067,1287,20 +2020-06-29,Washington,Oregon,41067,1315,20 +2020-06-30,Washington,Oregon,41067,1331,20 +2020-07-01,Washington,Oregon,41067,1379,20 +2020-07-02,Washington,Oregon,41067,1446,20 +2020-07-03,Washington,Oregon,41067,1491,20 +2020-07-04,Washington,Oregon,41067,1534,20 +2020-07-05,Washington,Oregon,41067,1586,20 +2020-07-06,Washington,Oregon,41067,1620,20 +2020-07-07,Washington,Oregon,41067,1645,20 +2020-07-08,Washington,Oregon,41067,1676,20 +2020-07-09,Washington,Oregon,41067,1720,20 +2020-03-15,Yamhill,Oregon,41071,1,0 +2020-03-16,Yamhill,Oregon,41071,1,0 +2020-03-17,Yamhill,Oregon,41071,1,0 +2020-03-18,Yamhill,Oregon,41071,2,0 +2020-03-19,Yamhill,Oregon,41071,2,0 +2020-03-20,Yamhill,Oregon,41071,4,0 +2020-03-21,Yamhill,Oregon,41071,4,0 +2020-03-22,Yamhill,Oregon,41071,6,0 +2020-03-23,Yamhill,Oregon,41071,6,0 +2020-03-24,Yamhill,Oregon,41071,6,0 +2020-03-25,Yamhill,Oregon,41071,7,0 +2020-03-26,Yamhill,Oregon,41071,7,0 +2020-03-27,Yamhill,Oregon,41071,11,0 +2020-03-28,Yamhill,Oregon,41071,13,1 +2020-03-29,Yamhill,Oregon,41071,13,1 +2020-03-30,Yamhill,Oregon,41071,14,2 +2020-03-31,Yamhill,Oregon,41071,16,3 +2020-04-01,Yamhill,Oregon,41071,17,3 +2020-04-02,Yamhill,Oregon,41071,18,3 +2020-04-03,Yamhill,Oregon,41071,23,3 +2020-04-04,Yamhill,Oregon,41071,23,3 +2020-04-05,Yamhill,Oregon,41071,26,3 +2020-04-06,Yamhill,Oregon,41071,25,3 +2020-04-07,Yamhill,Oregon,41071,25,3 +2020-04-08,Yamhill,Oregon,41071,25,5 +2020-04-09,Yamhill,Oregon,41071,29,5 +2020-04-10,Yamhill,Oregon,41071,28,5 +2020-04-11,Yamhill,Oregon,41071,30,6 +2020-04-12,Yamhill,Oregon,41071,30,6 +2020-04-13,Yamhill,Oregon,41071,30,6 +2020-04-14,Yamhill,Oregon,41071,32,6 +2020-04-15,Yamhill,Oregon,41071,32,6 +2020-04-16,Yamhill,Oregon,41071,33,6 +2020-04-17,Yamhill,Oregon,41071,35,6 +2020-04-18,Yamhill,Oregon,41071,34,6 +2020-04-19,Yamhill,Oregon,41071,34,6 +2020-04-20,Yamhill,Oregon,41071,35,6 +2020-04-21,Yamhill,Oregon,41071,34,6 +2020-04-22,Yamhill,Oregon,41071,35,6 +2020-04-23,Yamhill,Oregon,41071,35,6 +2020-04-24,Yamhill,Oregon,41071,35,6 +2020-04-25,Yamhill,Oregon,41071,35,6 +2020-04-26,Yamhill,Oregon,41071,36,6 +2020-04-27,Yamhill,Oregon,41071,37,6 +2020-04-28,Yamhill,Oregon,41071,38,7 +2020-04-29,Yamhill,Oregon,41071,39,7 +2020-04-30,Yamhill,Oregon,41071,39,7 +2020-05-01,Yamhill,Oregon,41071,39,7 +2020-05-02,Yamhill,Oregon,41071,39,7 +2020-05-03,Yamhill,Oregon,41071,39,7 +2020-05-04,Yamhill,Oregon,41071,40,7 +2020-05-05,Yamhill,Oregon,41071,41,7 +2020-05-06,Yamhill,Oregon,41071,42,7 +2020-05-07,Yamhill,Oregon,41071,45,7 +2020-05-08,Yamhill,Oregon,41071,45,7 +2020-05-09,Yamhill,Oregon,41071,47,7 +2020-05-10,Yamhill,Oregon,41071,49,7 +2020-05-11,Yamhill,Oregon,41071,49,7 +2020-05-12,Yamhill,Oregon,41071,50,7 +2020-05-13,Yamhill,Oregon,41071,50,7 +2020-05-14,Yamhill,Oregon,41071,55,7 +2020-05-15,Yamhill,Oregon,41071,55,7 +2020-05-16,Yamhill,Oregon,41071,57,7 +2020-05-17,Yamhill,Oregon,41071,57,7 +2020-05-18,Yamhill,Oregon,41071,59,7 +2020-05-19,Yamhill,Oregon,41071,62,7 +2020-05-20,Yamhill,Oregon,41071,63,7 +2020-05-21,Yamhill,Oregon,41071,63,7 +2020-05-22,Yamhill,Oregon,41071,63,7 +2020-05-23,Yamhill,Oregon,41071,64,7 +2020-05-24,Yamhill,Oregon,41071,65,7 +2020-05-25,Yamhill,Oregon,41071,65,7 +2020-05-26,Yamhill,Oregon,41071,66,7 +2020-05-27,Yamhill,Oregon,41071,67,7 +2020-05-28,Yamhill,Oregon,41071,69,7 +2020-05-29,Yamhill,Oregon,41071,69,7 +2020-05-30,Yamhill,Oregon,41071,69,7 +2020-05-31,Yamhill,Oregon,41071,70,7 +2020-06-01,Yamhill,Oregon,41071,70,7 +2020-06-02,Yamhill,Oregon,41071,70,7 +2020-06-03,Yamhill,Oregon,41071,74,7 +2020-06-04,Yamhill,Oregon,41071,75,7 +2020-06-05,Yamhill,Oregon,41071,81,7 +2020-06-06,Yamhill,Oregon,41071,83,7 +2020-06-07,Yamhill,Oregon,41071,85,7 +2020-06-08,Yamhill,Oregon,41071,87,7 +2020-06-09,Yamhill,Oregon,41071,91,7 +2020-06-10,Yamhill,Oregon,41071,91,7 +2020-06-11,Yamhill,Oregon,41071,92,8 +2020-06-12,Yamhill,Oregon,41071,92,8 +2020-06-13,Yamhill,Oregon,41071,92,8 +2020-06-14,Yamhill,Oregon,41071,92,8 +2020-06-15,Yamhill,Oregon,41071,93,8 +2020-06-16,Yamhill,Oregon,41071,94,8 +2020-06-17,Yamhill,Oregon,41071,94,8 +2020-06-18,Yamhill,Oregon,41071,97,8 +2020-06-19,Yamhill,Oregon,41071,97,8 +2020-06-20,Yamhill,Oregon,41071,97,8 +2020-06-21,Yamhill,Oregon,41071,99,8 +2020-06-22,Yamhill,Oregon,41071,101,8 +2020-06-23,Yamhill,Oregon,41071,101,8 +2020-06-24,Yamhill,Oregon,41071,102,8 +2020-06-25,Yamhill,Oregon,41071,103,8 +2020-06-26,Yamhill,Oregon,41071,115,8 +2020-06-27,Yamhill,Oregon,41071,113,8 +2020-06-28,Yamhill,Oregon,41071,114,8 +2020-06-29,Yamhill,Oregon,41071,115,8 +2020-06-30,Yamhill,Oregon,41071,119,8 +2020-07-01,Yamhill,Oregon,41071,126,8 +2020-07-02,Yamhill,Oregon,41071,131,8 +2020-07-03,Yamhill,Oregon,41071,132,8 +2020-07-04,Yamhill,Oregon,41071,132,8 +2020-07-05,Yamhill,Oregon,41071,139,8 +2020-07-06,Yamhill,Oregon,41071,139,8 +2020-07-07,Yamhill,Oregon,41071,155,9 +2020-07-08,Yamhill,Oregon,41071,164,9 +2020-07-09,Yamhill,Oregon,41071,171,9 +2020-03-18,Adams,Pennsylvania,42001,1,0 +2020-03-19,Adams,Pennsylvania,42001,2,0 +2020-03-20,Adams,Pennsylvania,42001,5,0 +2020-03-21,Adams,Pennsylvania,42001,5,0 +2020-03-22,Adams,Pennsylvania,42001,5,0 +2020-03-23,Adams,Pennsylvania,42001,6,0 +2020-03-24,Adams,Pennsylvania,42001,6,0 +2020-03-25,Adams,Pennsylvania,42001,6,0 +2020-03-26,Adams,Pennsylvania,42001,7,0 +2020-03-27,Adams,Pennsylvania,42001,8,0 +2020-03-28,Adams,Pennsylvania,42001,8,0 +2020-03-29,Adams,Pennsylvania,42001,8,0 +2020-03-30,Adams,Pennsylvania,42001,8,0 +2020-03-31,Adams,Pennsylvania,42001,9,0 +2020-04-01,Adams,Pennsylvania,42001,12,0 +2020-04-02,Adams,Pennsylvania,42001,18,0 +2020-04-03,Adams,Pennsylvania,42001,19,0 +2020-04-04,Adams,Pennsylvania,42001,21,0 +2020-04-05,Adams,Pennsylvania,42001,22,0 +2020-04-06,Adams,Pennsylvania,42001,25,0 +2020-04-07,Adams,Pennsylvania,42001,28,0 +2020-04-08,Adams,Pennsylvania,42001,33,0 +2020-04-09,Adams,Pennsylvania,42001,38,1 +2020-04-10,Adams,Pennsylvania,42001,43,1 +2020-04-11,Adams,Pennsylvania,42001,44,1 +2020-04-12,Adams,Pennsylvania,42001,48,1 +2020-04-13,Adams,Pennsylvania,42001,56,1 +2020-04-14,Adams,Pennsylvania,42001,63,1 +2020-04-15,Adams,Pennsylvania,42001,64,1 +2020-04-16,Adams,Pennsylvania,42001,67,1 +2020-04-17,Adams,Pennsylvania,42001,70,1 +2020-04-18,Adams,Pennsylvania,42001,74,1 +2020-04-19,Adams,Pennsylvania,42001,80,1 +2020-04-20,Adams,Pennsylvania,42001,85,1 +2020-04-21,Adams,Pennsylvania,42001,91,2 +2020-04-22,Adams,Pennsylvania,42001,92,2 +2020-04-23,Adams,Pennsylvania,42001,95,2 +2020-04-24,Adams,Pennsylvania,42001,110,2 +2020-04-25,Adams,Pennsylvania,42001,113,2 +2020-04-26,Adams,Pennsylvania,42001,117,2 +2020-04-27,Adams,Pennsylvania,42001,122,2 +2020-04-28,Adams,Pennsylvania,42001,124,2 +2020-04-29,Adams,Pennsylvania,42001,130,4 +2020-04-30,Adams,Pennsylvania,42001,137,4 +2020-05-01,Adams,Pennsylvania,42001,140,4 +2020-05-02,Adams,Pennsylvania,42001,141,4 +2020-05-03,Adams,Pennsylvania,42001,145,4 +2020-05-04,Adams,Pennsylvania,42001,148,4 +2020-05-05,Adams,Pennsylvania,42001,148,5 +2020-05-06,Adams,Pennsylvania,42001,148,5 +2020-05-07,Adams,Pennsylvania,42001,151,5 +2020-05-08,Adams,Pennsylvania,42001,154,5 +2020-05-09,Adams,Pennsylvania,42001,156,5 +2020-05-10,Adams,Pennsylvania,42001,159,5 +2020-05-11,Adams,Pennsylvania,42001,167,5 +2020-05-12,Adams,Pennsylvania,42001,167,5 +2020-05-13,Adams,Pennsylvania,42001,169,5 +2020-05-14,Adams,Pennsylvania,42001,174,5 +2020-05-15,Adams,Pennsylvania,42001,183,6 +2020-05-16,Adams,Pennsylvania,42001,185,6 +2020-05-17,Adams,Pennsylvania,42001,189,6 +2020-05-18,Adams,Pennsylvania,42001,194,5 +2020-05-19,Adams,Pennsylvania,42001,194,5 +2020-05-20,Adams,Pennsylvania,42001,197,5 +2020-05-21,Adams,Pennsylvania,42001,204,5 +2020-05-22,Adams,Pennsylvania,42001,214,5 +2020-05-23,Adams,Pennsylvania,42001,222,6 +2020-05-24,Adams,Pennsylvania,42001,226,7 +2020-05-25,Adams,Pennsylvania,42001,227,7 +2020-05-26,Adams,Pennsylvania,42001,233,7 +2020-05-27,Adams,Pennsylvania,42001,236,7 +2020-05-28,Adams,Pennsylvania,42001,240,7 +2020-05-29,Adams,Pennsylvania,42001,241,7 +2020-05-30,Adams,Pennsylvania,42001,245,8 +2020-05-31,Adams,Pennsylvania,42001,251,8 +2020-06-01,Adams,Pennsylvania,42001,250,8 +2020-06-02,Adams,Pennsylvania,42001,255,8 +2020-06-03,Adams,Pennsylvania,42001,260,8 +2020-06-04,Adams,Pennsylvania,42001,263,8 +2020-06-05,Adams,Pennsylvania,42001,264,8 +2020-06-06,Adams,Pennsylvania,42001,269,8 +2020-06-07,Adams,Pennsylvania,42001,273,8 +2020-06-08,Adams,Pennsylvania,42001,275,8 +2020-06-09,Adams,Pennsylvania,42001,275,9 +2020-06-10,Adams,Pennsylvania,42001,278,9 +2020-06-11,Adams,Pennsylvania,42001,279,9 +2020-06-12,Adams,Pennsylvania,42001,284,9 +2020-06-13,Adams,Pennsylvania,42001,289,9 +2020-06-14,Adams,Pennsylvania,42001,290,9 +2020-06-15,Adams,Pennsylvania,42001,296,9 +2020-06-16,Adams,Pennsylvania,42001,298,10 +2020-06-17,Adams,Pennsylvania,42001,300,10 +2020-06-18,Adams,Pennsylvania,42001,304,11 +2020-06-19,Adams,Pennsylvania,42001,309,11 +2020-06-20,Adams,Pennsylvania,42001,311,11 +2020-06-21,Adams,Pennsylvania,42001,314,11 +2020-06-22,Adams,Pennsylvania,42001,317,11 +2020-06-23,Adams,Pennsylvania,42001,322,12 +2020-06-24,Adams,Pennsylvania,42001,321,12 +2020-06-25,Adams,Pennsylvania,42001,323,12 +2020-06-26,Adams,Pennsylvania,42001,324,12 +2020-06-27,Adams,Pennsylvania,42001,327,12 +2020-06-28,Adams,Pennsylvania,42001,328,12 +2020-06-29,Adams,Pennsylvania,42001,332,12 +2020-06-30,Adams,Pennsylvania,42001,339,12 +2020-07-01,Adams,Pennsylvania,42001,341,12 +2020-07-02,Adams,Pennsylvania,42001,342,13 +2020-07-03,Adams,Pennsylvania,42001,344,13 +2020-07-04,Adams,Pennsylvania,42001,349,13 +2020-07-05,Adams,Pennsylvania,42001,352,13 +2020-07-06,Adams,Pennsylvania,42001,352,13 +2020-07-07,Adams,Pennsylvania,42001,358,13 +2020-07-08,Adams,Pennsylvania,42001,361,13 +2020-07-09,Adams,Pennsylvania,42001,366,13 +2020-03-14,Allegheny,Pennsylvania,42003,1,0 +2020-03-15,Allegheny,Pennsylvania,42003,3,0 +2020-03-16,Allegheny,Pennsylvania,42003,5,0 +2020-03-17,Allegheny,Pennsylvania,42003,10,0 +2020-03-18,Allegheny,Pennsylvania,42003,12,0 +2020-03-19,Allegheny,Pennsylvania,42003,18,0 +2020-03-20,Allegheny,Pennsylvania,42003,28,0 +2020-03-21,Allegheny,Pennsylvania,42003,31,1 +2020-03-22,Allegheny,Pennsylvania,42003,40,1 +2020-03-23,Allegheny,Pennsylvania,42003,48,1 +2020-03-24,Allegheny,Pennsylvania,42003,58,2 +2020-03-25,Allegheny,Pennsylvania,42003,88,2 +2020-03-26,Allegheny,Pennsylvania,42003,133,2 +2020-03-27,Allegheny,Pennsylvania,42003,158,2 +2020-03-28,Allegheny,Pennsylvania,42003,219,2 +2020-03-29,Allegheny,Pennsylvania,42003,265,2 +2020-03-30,Allegheny,Pennsylvania,42003,290,2 +2020-03-31,Allegheny,Pennsylvania,42003,325,2 +2020-04-01,Allegheny,Pennsylvania,42003,356,2 +2020-04-02,Allegheny,Pennsylvania,42003,419,2 +2020-04-03,Allegheny,Pennsylvania,42003,476,2 +2020-04-04,Allegheny,Pennsylvania,42003,552,3 +2020-04-05,Allegheny,Pennsylvania,42003,605,4 +2020-04-06,Allegheny,Pennsylvania,42003,642,4 +2020-04-07,Allegheny,Pennsylvania,42003,689,6 +2020-04-08,Allegheny,Pennsylvania,42003,720,10 +2020-04-09,Allegheny,Pennsylvania,42003,759,12 +2020-04-10,Allegheny,Pennsylvania,42003,788,18 +2020-04-11,Allegheny,Pennsylvania,42003,836,19 +2020-04-12,Allegheny,Pennsylvania,42003,857,19 +2020-04-13,Allegheny,Pennsylvania,42003,876,21 +2020-04-14,Allegheny,Pennsylvania,42003,893,24 +2020-04-15,Allegheny,Pennsylvania,42003,904,26 +2020-04-16,Allegheny,Pennsylvania,42003,925,38 +2020-04-17,Allegheny,Pennsylvania,42003,947,43 +2020-04-18,Allegheny,Pennsylvania,42003,1009,47 +2020-04-19,Allegheny,Pennsylvania,42003,1035,50 +2020-04-20,Allegheny,Pennsylvania,42003,1042,55 +2020-04-21,Allegheny,Pennsylvania,42003,1059,67 +2020-04-22,Allegheny,Pennsylvania,42003,1088,74 +2020-04-23,Allegheny,Pennsylvania,42003,1149,69 +2020-04-24,Allegheny,Pennsylvania,42003,1177,71 +2020-04-25,Allegheny,Pennsylvania,42003,1198,73 +2020-04-26,Allegheny,Pennsylvania,42003,1211,73 +2020-04-27,Allegheny,Pennsylvania,42003,1224,79 +2020-04-28,Allegheny,Pennsylvania,42003,1235,87 +2020-04-29,Allegheny,Pennsylvania,42003,1273,86 +2020-04-30,Allegheny,Pennsylvania,42003,1289,94 +2020-05-01,Allegheny,Pennsylvania,42003,1319,99 +2020-05-02,Allegheny,Pennsylvania,42003,1333,102 +2020-05-03,Allegheny,Pennsylvania,42003,1345,102 +2020-05-04,Allegheny,Pennsylvania,42003,1365,102 +2020-05-05,Allegheny,Pennsylvania,42003,1375,109 +2020-05-06,Allegheny,Pennsylvania,42003,1394,111 +2020-05-07,Allegheny,Pennsylvania,42003,1439,117 +2020-05-08,Allegheny,Pennsylvania,42003,1455,119 +2020-05-09,Allegheny,Pennsylvania,42003,1486,120 +2020-05-10,Allegheny,Pennsylvania,42003,1503,122 +2020-05-11,Allegheny,Pennsylvania,42003,1511,123 +2020-05-12,Allegheny,Pennsylvania,42003,1526,127 +2020-05-13,Allegheny,Pennsylvania,42003,1545,139 +2020-05-14,Allegheny,Pennsylvania,42003,1551,139 +2020-05-15,Allegheny,Pennsylvania,42003,1582,141 +2020-05-16,Allegheny,Pennsylvania,42003,1595,143 +2020-05-17,Allegheny,Pennsylvania,42003,1603,143 +2020-05-18,Allegheny,Pennsylvania,42003,1641,143 +2020-05-19,Allegheny,Pennsylvania,42003,1658,145 +2020-05-20,Allegheny,Pennsylvania,42003,1687,147 +2020-05-21,Allegheny,Pennsylvania,42003,1718,148 +2020-05-22,Allegheny,Pennsylvania,42003,1739,154 +2020-05-23,Allegheny,Pennsylvania,42003,1753,158 +2020-05-24,Allegheny,Pennsylvania,42003,1777,159 +2020-05-25,Allegheny,Pennsylvania,42003,1805,160 +2020-05-26,Allegheny,Pennsylvania,42003,1816,160 +2020-05-27,Allegheny,Pennsylvania,42003,1828,160 +2020-05-28,Allegheny,Pennsylvania,42003,1851,161 +2020-05-29,Allegheny,Pennsylvania,42003,1870,162 +2020-05-30,Allegheny,Pennsylvania,42003,1897,163 +2020-05-31,Allegheny,Pennsylvania,42003,1911,163 +2020-06-01,Allegheny,Pennsylvania,42003,1919,164 +2020-06-02,Allegheny,Pennsylvania,42003,1928,165 +2020-06-03,Allegheny,Pennsylvania,42003,1952,166 +2020-06-04,Allegheny,Pennsylvania,42003,1965,166 +2020-06-05,Allegheny,Pennsylvania,42003,1973,168 +2020-06-06,Allegheny,Pennsylvania,42003,1989,168 +2020-06-07,Allegheny,Pennsylvania,42003,2003,168 +2020-06-08,Allegheny,Pennsylvania,42003,2008,169 +2020-06-09,Allegheny,Pennsylvania,42003,2027,169 +2020-06-10,Allegheny,Pennsylvania,42003,2034,170 +2020-06-11,Allegheny,Pennsylvania,42003,2055,171 +2020-06-12,Allegheny,Pennsylvania,42003,2065,171 +2020-06-13,Allegheny,Pennsylvania,42003,2076,172 +2020-06-14,Allegheny,Pennsylvania,42003,2079,172 +2020-06-15,Allegheny,Pennsylvania,42003,2086,174 +2020-06-16,Allegheny,Pennsylvania,42003,2113,177 +2020-06-17,Allegheny,Pennsylvania,42003,2113,177 +2020-06-18,Allegheny,Pennsylvania,42003,2122,177 +2020-06-19,Allegheny,Pennsylvania,42003,2139,178 +2020-06-20,Allegheny,Pennsylvania,42003,2159,179 +2020-06-21,Allegheny,Pennsylvania,42003,2175,179 +2020-06-22,Allegheny,Pennsylvania,42003,2220,179 +2020-06-23,Allegheny,Pennsylvania,42003,2239,179 +2020-06-24,Allegheny,Pennsylvania,42003,2284,180 +2020-06-25,Allegheny,Pennsylvania,42003,2321,182 +2020-06-26,Allegheny,Pennsylvania,42003,2382,183 +2020-06-27,Allegheny,Pennsylvania,42003,2472,186 +2020-06-28,Allegheny,Pennsylvania,42003,2568,186 +2020-06-29,Allegheny,Pennsylvania,42003,2651,186 +2020-06-30,Allegheny,Pennsylvania,42003,2760,186 +2020-07-01,Allegheny,Pennsylvania,42003,2870,187 +2020-07-02,Allegheny,Pennsylvania,42003,3103,188 +2020-07-03,Allegheny,Pennsylvania,42003,3280,190 +2020-07-04,Allegheny,Pennsylvania,42003,3430,190 +2020-07-05,Allegheny,Pennsylvania,42003,3557,190 +2020-07-06,Allegheny,Pennsylvania,42003,3775,190 +2020-07-07,Allegheny,Pennsylvania,42003,3979,194 +2020-07-08,Allegheny,Pennsylvania,42003,4209,196 +2020-07-09,Allegheny,Pennsylvania,42003,4367,196 +2020-03-24,Armstrong,Pennsylvania,42005,1,0 +2020-03-25,Armstrong,Pennsylvania,42005,1,0 +2020-03-26,Armstrong,Pennsylvania,42005,1,0 +2020-03-27,Armstrong,Pennsylvania,42005,1,0 +2020-03-28,Armstrong,Pennsylvania,42005,2,0 +2020-03-29,Armstrong,Pennsylvania,42005,3,0 +2020-03-30,Armstrong,Pennsylvania,42005,3,0 +2020-03-31,Armstrong,Pennsylvania,42005,5,0 +2020-04-01,Armstrong,Pennsylvania,42005,5,0 +2020-04-02,Armstrong,Pennsylvania,42005,7,0 +2020-04-03,Armstrong,Pennsylvania,42005,11,0 +2020-04-04,Armstrong,Pennsylvania,42005,12,0 +2020-04-05,Armstrong,Pennsylvania,42005,12,0 +2020-04-06,Armstrong,Pennsylvania,42005,13,0 +2020-04-07,Armstrong,Pennsylvania,42005,18,0 +2020-04-08,Armstrong,Pennsylvania,42005,19,0 +2020-04-09,Armstrong,Pennsylvania,42005,20,0 +2020-04-10,Armstrong,Pennsylvania,42005,22,0 +2020-04-11,Armstrong,Pennsylvania,42005,26,1 +2020-04-12,Armstrong,Pennsylvania,42005,27,1 +2020-04-13,Armstrong,Pennsylvania,42005,28,1 +2020-04-14,Armstrong,Pennsylvania,42005,28,1 +2020-04-15,Armstrong,Pennsylvania,42005,29,1 +2020-04-16,Armstrong,Pennsylvania,42005,32,1 +2020-04-17,Armstrong,Pennsylvania,42005,32,2 +2020-04-18,Armstrong,Pennsylvania,42005,36,2 +2020-04-19,Armstrong,Pennsylvania,42005,38,2 +2020-04-20,Armstrong,Pennsylvania,42005,38,2 +2020-04-21,Armstrong,Pennsylvania,42005,38,2 +2020-04-22,Armstrong,Pennsylvania,42005,39,2 +2020-04-23,Armstrong,Pennsylvania,42005,32,2 +2020-04-24,Armstrong,Pennsylvania,42005,43,2 +2020-04-25,Armstrong,Pennsylvania,42005,46,2 +2020-04-26,Armstrong,Pennsylvania,42005,46,2 +2020-04-27,Armstrong,Pennsylvania,42005,47,2 +2020-04-28,Armstrong,Pennsylvania,42005,50,2 +2020-04-29,Armstrong,Pennsylvania,42005,50,2 +2020-04-30,Armstrong,Pennsylvania,42005,51,2 +2020-05-01,Armstrong,Pennsylvania,42005,52,2 +2020-05-02,Armstrong,Pennsylvania,42005,52,2 +2020-05-03,Armstrong,Pennsylvania,42005,52,2 +2020-05-04,Armstrong,Pennsylvania,42005,52,2 +2020-05-05,Armstrong,Pennsylvania,42005,53,3 +2020-05-06,Armstrong,Pennsylvania,42005,55,3 +2020-05-07,Armstrong,Pennsylvania,42005,55,3 +2020-05-08,Armstrong,Pennsylvania,42005,55,3 +2020-05-09,Armstrong,Pennsylvania,42005,55,3 +2020-05-10,Armstrong,Pennsylvania,42005,55,4 +2020-05-11,Armstrong,Pennsylvania,42005,55,5 +2020-05-12,Armstrong,Pennsylvania,42005,55,5 +2020-05-13,Armstrong,Pennsylvania,42005,56,5 +2020-05-14,Armstrong,Pennsylvania,42005,56,5 +2020-05-15,Armstrong,Pennsylvania,42005,57,5 +2020-05-16,Armstrong,Pennsylvania,42005,58,5 +2020-05-17,Armstrong,Pennsylvania,42005,58,5 +2020-05-18,Armstrong,Pennsylvania,42005,58,2 +2020-05-19,Armstrong,Pennsylvania,42005,58,2 +2020-05-20,Armstrong,Pennsylvania,42005,58,2 +2020-05-21,Armstrong,Pennsylvania,42005,58,2 +2020-05-22,Armstrong,Pennsylvania,42005,58,2 +2020-05-23,Armstrong,Pennsylvania,42005,58,3 +2020-05-24,Armstrong,Pennsylvania,42005,58,3 +2020-05-25,Armstrong,Pennsylvania,42005,58,3 +2020-05-26,Armstrong,Pennsylvania,42005,59,3 +2020-05-27,Armstrong,Pennsylvania,42005,61,4 +2020-05-28,Armstrong,Pennsylvania,42005,62,4 +2020-05-29,Armstrong,Pennsylvania,42005,62,4 +2020-05-30,Armstrong,Pennsylvania,42005,62,4 +2020-05-31,Armstrong,Pennsylvania,42005,62,4 +2020-06-01,Armstrong,Pennsylvania,42005,62,4 +2020-06-02,Armstrong,Pennsylvania,42005,62,5 +2020-06-03,Armstrong,Pennsylvania,42005,64,5 +2020-06-04,Armstrong,Pennsylvania,42005,64,5 +2020-06-05,Armstrong,Pennsylvania,42005,64,5 +2020-06-06,Armstrong,Pennsylvania,42005,65,5 +2020-06-07,Armstrong,Pennsylvania,42005,65,5 +2020-06-08,Armstrong,Pennsylvania,42005,65,5 +2020-06-09,Armstrong,Pennsylvania,42005,65,5 +2020-06-10,Armstrong,Pennsylvania,42005,65,5 +2020-06-11,Armstrong,Pennsylvania,42005,65,5 +2020-06-12,Armstrong,Pennsylvania,42005,66,5 +2020-06-13,Armstrong,Pennsylvania,42005,66,5 +2020-06-14,Armstrong,Pennsylvania,42005,66,5 +2020-06-15,Armstrong,Pennsylvania,42005,66,5 +2020-06-16,Armstrong,Pennsylvania,42005,68,5 +2020-06-17,Armstrong,Pennsylvania,42005,68,5 +2020-06-18,Armstrong,Pennsylvania,42005,68,5 +2020-06-19,Armstrong,Pennsylvania,42005,69,6 +2020-06-20,Armstrong,Pennsylvania,42005,69,6 +2020-06-21,Armstrong,Pennsylvania,42005,69,6 +2020-06-22,Armstrong,Pennsylvania,42005,69,6 +2020-06-23,Armstrong,Pennsylvania,42005,70,6 +2020-06-24,Armstrong,Pennsylvania,42005,70,6 +2020-06-25,Armstrong,Pennsylvania,42005,70,6 +2020-06-26,Armstrong,Pennsylvania,42005,72,6 +2020-06-27,Armstrong,Pennsylvania,42005,73,6 +2020-06-28,Armstrong,Pennsylvania,42005,73,6 +2020-06-29,Armstrong,Pennsylvania,42005,73,6 +2020-06-30,Armstrong,Pennsylvania,42005,74,6 +2020-07-01,Armstrong,Pennsylvania,42005,76,6 +2020-07-02,Armstrong,Pennsylvania,42005,77,6 +2020-07-03,Armstrong,Pennsylvania,42005,78,6 +2020-07-04,Armstrong,Pennsylvania,42005,79,6 +2020-07-05,Armstrong,Pennsylvania,42005,78,6 +2020-07-06,Armstrong,Pennsylvania,42005,78,6 +2020-07-07,Armstrong,Pennsylvania,42005,79,6 +2020-07-08,Armstrong,Pennsylvania,42005,79,6 +2020-07-09,Armstrong,Pennsylvania,42005,80,6 +2020-03-17,Beaver,Pennsylvania,42007,1,0 +2020-03-18,Beaver,Pennsylvania,42007,2,0 +2020-03-19,Beaver,Pennsylvania,42007,2,0 +2020-03-20,Beaver,Pennsylvania,42007,3,0 +2020-03-21,Beaver,Pennsylvania,42007,3,0 +2020-03-22,Beaver,Pennsylvania,42007,3,0 +2020-03-23,Beaver,Pennsylvania,42007,3,0 +2020-03-24,Beaver,Pennsylvania,42007,3,0 +2020-03-25,Beaver,Pennsylvania,42007,7,0 +2020-03-26,Beaver,Pennsylvania,42007,13,0 +2020-03-27,Beaver,Pennsylvania,42007,14,0 +2020-03-28,Beaver,Pennsylvania,42007,22,0 +2020-03-29,Beaver,Pennsylvania,42007,28,0 +2020-03-30,Beaver,Pennsylvania,42007,44,0 +2020-03-31,Beaver,Pennsylvania,42007,52,1 +2020-04-01,Beaver,Pennsylvania,42007,54,2 +2020-04-02,Beaver,Pennsylvania,42007,55,2 +2020-04-03,Beaver,Pennsylvania,42007,65,2 +2020-04-04,Beaver,Pennsylvania,42007,69,6 +2020-04-05,Beaver,Pennsylvania,42007,84,6 +2020-04-06,Beaver,Pennsylvania,42007,96,6 +2020-04-07,Beaver,Pennsylvania,42007,116,9 +2020-04-08,Beaver,Pennsylvania,42007,128,13 +2020-04-09,Beaver,Pennsylvania,42007,129,13 +2020-04-10,Beaver,Pennsylvania,42007,139,13 +2020-04-11,Beaver,Pennsylvania,42007,143,13 +2020-04-12,Beaver,Pennsylvania,42007,145,13 +2020-04-13,Beaver,Pennsylvania,42007,153,13 +2020-04-14,Beaver,Pennsylvania,42007,156,14 +2020-04-15,Beaver,Pennsylvania,42007,158,14 +2020-04-16,Beaver,Pennsylvania,42007,168,14 +2020-04-17,Beaver,Pennsylvania,42007,178,15 +2020-04-18,Beaver,Pennsylvania,42007,278,31 +2020-04-19,Beaver,Pennsylvania,42007,288,32 +2020-04-20,Beaver,Pennsylvania,42007,298,36 +2020-04-21,Beaver,Pennsylvania,42007,303,43 +2020-04-22,Beaver,Pennsylvania,42007,317,47 +2020-04-23,Beaver,Pennsylvania,42007,319,46 +2020-04-24,Beaver,Pennsylvania,42007,337,46 +2020-04-25,Beaver,Pennsylvania,42007,359,46 +2020-04-26,Beaver,Pennsylvania,42007,366,46 +2020-04-27,Beaver,Pennsylvania,42007,387,46 +2020-04-28,Beaver,Pennsylvania,42007,388,59 +2020-04-29,Beaver,Pennsylvania,42007,392,65 +2020-04-30,Beaver,Pennsylvania,42007,405,65 +2020-05-01,Beaver,Pennsylvania,42007,426,67 +2020-05-02,Beaver,Pennsylvania,42007,435,68 +2020-05-03,Beaver,Pennsylvania,42007,435,68 +2020-05-04,Beaver,Pennsylvania,42007,458,68 +2020-05-05,Beaver,Pennsylvania,42007,466,73 +2020-05-06,Beaver,Pennsylvania,42007,471,76 +2020-05-07,Beaver,Pennsylvania,42007,472,78 +2020-05-08,Beaver,Pennsylvania,42007,479,78 +2020-05-09,Beaver,Pennsylvania,42007,482,78 +2020-05-10,Beaver,Pennsylvania,42007,491,78 +2020-05-11,Beaver,Pennsylvania,42007,491,78 +2020-05-12,Beaver,Pennsylvania,42007,493,78 +2020-05-13,Beaver,Pennsylvania,42007,509,78 +2020-05-14,Beaver,Pennsylvania,42007,512,82 +2020-05-15,Beaver,Pennsylvania,42007,516,83 +2020-05-16,Beaver,Pennsylvania,42007,518,83 +2020-05-17,Beaver,Pennsylvania,42007,517,83 +2020-05-18,Beaver,Pennsylvania,42007,533,70 +2020-05-19,Beaver,Pennsylvania,42007,534,70 +2020-05-20,Beaver,Pennsylvania,42007,539,70 +2020-05-21,Beaver,Pennsylvania,42007,539,71 +2020-05-22,Beaver,Pennsylvania,42007,550,71 +2020-05-23,Beaver,Pennsylvania,42007,552,72 +2020-05-24,Beaver,Pennsylvania,42007,554,72 +2020-05-25,Beaver,Pennsylvania,42007,568,72 +2020-05-26,Beaver,Pennsylvania,42007,570,72 +2020-05-27,Beaver,Pennsylvania,42007,570,72 +2020-05-28,Beaver,Pennsylvania,42007,579,72 +2020-05-29,Beaver,Pennsylvania,42007,582,73 +2020-05-30,Beaver,Pennsylvania,42007,589,73 +2020-05-31,Beaver,Pennsylvania,42007,590,73 +2020-06-01,Beaver,Pennsylvania,42007,590,73 +2020-06-02,Beaver,Pennsylvania,42007,591,74 +2020-06-03,Beaver,Pennsylvania,42007,594,74 +2020-06-04,Beaver,Pennsylvania,42007,599,74 +2020-06-05,Beaver,Pennsylvania,42007,598,74 +2020-06-06,Beaver,Pennsylvania,42007,598,74 +2020-06-07,Beaver,Pennsylvania,42007,603,74 +2020-06-08,Beaver,Pennsylvania,42007,603,74 +2020-06-09,Beaver,Pennsylvania,42007,608,74 +2020-06-10,Beaver,Pennsylvania,42007,610,74 +2020-06-11,Beaver,Pennsylvania,42007,610,75 +2020-06-12,Beaver,Pennsylvania,42007,611,75 +2020-06-13,Beaver,Pennsylvania,42007,611,75 +2020-06-14,Beaver,Pennsylvania,42007,611,75 +2020-06-15,Beaver,Pennsylvania,42007,613,77 +2020-06-16,Beaver,Pennsylvania,42007,613,77 +2020-06-17,Beaver,Pennsylvania,42007,615,77 +2020-06-18,Beaver,Pennsylvania,42007,616,77 +2020-06-19,Beaver,Pennsylvania,42007,619,77 +2020-06-20,Beaver,Pennsylvania,42007,621,77 +2020-06-21,Beaver,Pennsylvania,42007,624,77 +2020-06-22,Beaver,Pennsylvania,42007,625,77 +2020-06-23,Beaver,Pennsylvania,42007,630,78 +2020-06-24,Beaver,Pennsylvania,42007,634,78 +2020-06-25,Beaver,Pennsylvania,42007,637,78 +2020-06-26,Beaver,Pennsylvania,42007,638,78 +2020-06-27,Beaver,Pennsylvania,42007,642,78 +2020-06-28,Beaver,Pennsylvania,42007,648,78 +2020-06-29,Beaver,Pennsylvania,42007,651,78 +2020-06-30,Beaver,Pennsylvania,42007,669,78 +2020-07-01,Beaver,Pennsylvania,42007,678,78 +2020-07-02,Beaver,Pennsylvania,42007,688,79 +2020-07-03,Beaver,Pennsylvania,42007,706,79 +2020-07-04,Beaver,Pennsylvania,42007,720,79 +2020-07-05,Beaver,Pennsylvania,42007,737,79 +2020-07-06,Beaver,Pennsylvania,42007,742,79 +2020-07-07,Beaver,Pennsylvania,42007,770,79 +2020-07-08,Beaver,Pennsylvania,42007,785,79 +2020-07-09,Beaver,Pennsylvania,42007,796,79 +2020-03-31,Bedford,Pennsylvania,42009,2,0 +2020-04-01,Bedford,Pennsylvania,42009,3,0 +2020-04-02,Bedford,Pennsylvania,42009,3,0 +2020-04-03,Bedford,Pennsylvania,42009,3,0 +2020-04-04,Bedford,Pennsylvania,42009,4,0 +2020-04-05,Bedford,Pennsylvania,42009,4,0 +2020-04-06,Bedford,Pennsylvania,42009,4,0 +2020-04-07,Bedford,Pennsylvania,42009,4,0 +2020-04-08,Bedford,Pennsylvania,42009,4,0 +2020-04-09,Bedford,Pennsylvania,42009,4,0 +2020-04-10,Bedford,Pennsylvania,42009,3,0 +2020-04-11,Bedford,Pennsylvania,42009,5,1 +2020-04-12,Bedford,Pennsylvania,42009,5,1 +2020-04-13,Bedford,Pennsylvania,42009,5,1 +2020-04-14,Bedford,Pennsylvania,42009,5,1 +2020-04-15,Bedford,Pennsylvania,42009,9,1 +2020-04-16,Bedford,Pennsylvania,42009,11,1 +2020-04-17,Bedford,Pennsylvania,42009,13,1 +2020-04-18,Bedford,Pennsylvania,42009,14,1 +2020-04-19,Bedford,Pennsylvania,42009,15,1 +2020-04-20,Bedford,Pennsylvania,42009,15,1 +2020-04-21,Bedford,Pennsylvania,42009,16,1 +2020-04-22,Bedford,Pennsylvania,42009,16,1 +2020-04-23,Bedford,Pennsylvania,42009,20,1 +2020-04-24,Bedford,Pennsylvania,42009,21,1 +2020-04-25,Bedford,Pennsylvania,42009,21,1 +2020-04-26,Bedford,Pennsylvania,42009,21,1 +2020-04-27,Bedford,Pennsylvania,42009,21,1 +2020-04-28,Bedford,Pennsylvania,42009,22,1 +2020-04-29,Bedford,Pennsylvania,42009,24,1 +2020-04-30,Bedford,Pennsylvania,42009,24,1 +2020-05-01,Bedford,Pennsylvania,42009,24,1 +2020-05-02,Bedford,Pennsylvania,42009,24,1 +2020-05-03,Bedford,Pennsylvania,42009,24,1 +2020-05-04,Bedford,Pennsylvania,42009,24,1 +2020-05-05,Bedford,Pennsylvania,42009,26,1 +2020-05-06,Bedford,Pennsylvania,42009,27,1 +2020-05-07,Bedford,Pennsylvania,42009,27,1 +2020-05-08,Bedford,Pennsylvania,42009,28,1 +2020-05-09,Bedford,Pennsylvania,42009,29,1 +2020-05-10,Bedford,Pennsylvania,42009,29,1 +2020-05-11,Bedford,Pennsylvania,42009,29,1 +2020-05-12,Bedford,Pennsylvania,42009,29,1 +2020-05-13,Bedford,Pennsylvania,42009,29,1 +2020-05-14,Bedford,Pennsylvania,42009,30,1 +2020-05-15,Bedford,Pennsylvania,42009,30,1 +2020-05-16,Bedford,Pennsylvania,42009,32,1 +2020-05-17,Bedford,Pennsylvania,42009,32,1 +2020-05-18,Bedford,Pennsylvania,42009,32,1 +2020-05-19,Bedford,Pennsylvania,42009,32,2 +2020-05-20,Bedford,Pennsylvania,42009,32,2 +2020-05-21,Bedford,Pennsylvania,42009,36,2 +2020-05-22,Bedford,Pennsylvania,42009,36,2 +2020-05-23,Bedford,Pennsylvania,42009,37,2 +2020-05-24,Bedford,Pennsylvania,42009,37,2 +2020-05-25,Bedford,Pennsylvania,42009,37,2 +2020-05-26,Bedford,Pennsylvania,42009,37,2 +2020-05-27,Bedford,Pennsylvania,42009,38,2 +2020-05-28,Bedford,Pennsylvania,42009,38,2 +2020-05-29,Bedford,Pennsylvania,42009,39,2 +2020-05-30,Bedford,Pennsylvania,42009,39,2 +2020-05-31,Bedford,Pennsylvania,42009,39,2 +2020-06-01,Bedford,Pennsylvania,42009,40,2 +2020-06-02,Bedford,Pennsylvania,42009,40,2 +2020-06-03,Bedford,Pennsylvania,42009,41,2 +2020-06-04,Bedford,Pennsylvania,42009,42,2 +2020-06-05,Bedford,Pennsylvania,42009,43,2 +2020-06-06,Bedford,Pennsylvania,42009,43,2 +2020-06-07,Bedford,Pennsylvania,42009,44,2 +2020-06-08,Bedford,Pennsylvania,42009,45,2 +2020-06-09,Bedford,Pennsylvania,42009,45,2 +2020-06-10,Bedford,Pennsylvania,42009,45,2 +2020-06-11,Bedford,Pennsylvania,42009,46,2 +2020-06-12,Bedford,Pennsylvania,42009,46,2 +2020-06-13,Bedford,Pennsylvania,42009,46,2 +2020-06-14,Bedford,Pennsylvania,42009,48,2 +2020-06-15,Bedford,Pennsylvania,42009,52,2 +2020-06-16,Bedford,Pennsylvania,42009,53,2 +2020-06-17,Bedford,Pennsylvania,42009,59,2 +2020-06-18,Bedford,Pennsylvania,42009,61,2 +2020-06-19,Bedford,Pennsylvania,42009,63,2 +2020-06-20,Bedford,Pennsylvania,42009,65,2 +2020-06-21,Bedford,Pennsylvania,42009,66,2 +2020-06-22,Bedford,Pennsylvania,42009,66,2 +2020-06-23,Bedford,Pennsylvania,42009,69,2 +2020-06-24,Bedford,Pennsylvania,42009,71,2 +2020-06-25,Bedford,Pennsylvania,42009,72,3 +2020-06-26,Bedford,Pennsylvania,42009,76,3 +2020-06-27,Bedford,Pennsylvania,42009,77,3 +2020-06-28,Bedford,Pennsylvania,42009,81,3 +2020-06-29,Bedford,Pennsylvania,42009,81,3 +2020-06-30,Bedford,Pennsylvania,42009,82,3 +2020-07-01,Bedford,Pennsylvania,42009,87,3 +2020-07-02,Bedford,Pennsylvania,42009,88,4 +2020-07-03,Bedford,Pennsylvania,42009,89,4 +2020-07-04,Bedford,Pennsylvania,42009,89,4 +2020-07-05,Bedford,Pennsylvania,42009,89,4 +2020-07-06,Bedford,Pennsylvania,42009,89,4 +2020-07-07,Bedford,Pennsylvania,42009,90,4 +2020-07-08,Bedford,Pennsylvania,42009,90,4 +2020-07-09,Bedford,Pennsylvania,42009,91,4 +2020-03-18,Berks,Pennsylvania,42011,1,0 +2020-03-19,Berks,Pennsylvania,42011,1,0 +2020-03-20,Berks,Pennsylvania,42011,5,0 +2020-03-21,Berks,Pennsylvania,42011,7,0 +2020-03-22,Berks,Pennsylvania,42011,13,0 +2020-03-23,Berks,Pennsylvania,42011,14,0 +2020-03-24,Berks,Pennsylvania,42011,16,0 +2020-03-25,Berks,Pennsylvania,42011,20,0 +2020-03-26,Berks,Pennsylvania,42011,36,0 +2020-03-27,Berks,Pennsylvania,42011,65,0 +2020-03-28,Berks,Pennsylvania,42011,65,0 +2020-03-29,Berks,Pennsylvania,42011,68,0 +2020-03-30,Berks,Pennsylvania,42011,82,0 +2020-03-31,Berks,Pennsylvania,42011,110,0 +2020-04-01,Berks,Pennsylvania,42011,151,0 +2020-04-02,Berks,Pennsylvania,42011,168,1 +2020-04-03,Berks,Pennsylvania,42011,201,1 +2020-04-04,Berks,Pennsylvania,42011,235,2 +2020-04-05,Berks,Pennsylvania,42011,276,3 +2020-04-06,Berks,Pennsylvania,42011,326,3 +2020-04-07,Berks,Pennsylvania,42011,369,4 +2020-04-08,Berks,Pennsylvania,42011,416,7 +2020-04-09,Berks,Pennsylvania,42011,616,8 +2020-04-10,Berks,Pennsylvania,42011,720,12 +2020-04-11,Berks,Pennsylvania,42011,930,19 +2020-04-12,Berks,Pennsylvania,42011,1035,20 +2020-04-13,Berks,Pennsylvania,42011,1150,21 +2020-04-14,Berks,Pennsylvania,42011,1247,27 +2020-04-15,Berks,Pennsylvania,42011,1335,28 +2020-04-16,Berks,Pennsylvania,42011,1419,31 +2020-04-17,Berks,Pennsylvania,42011,1537,34 +2020-04-18,Berks,Pennsylvania,42011,1748,40 +2020-04-19,Berks,Pennsylvania,42011,1898,65 +2020-04-20,Berks,Pennsylvania,42011,1945,74 +2020-04-21,Berks,Pennsylvania,42011,1988,82 +2020-04-22,Berks,Pennsylvania,42011,2069,85 +2020-04-23,Berks,Pennsylvania,42011,2212,86 +2020-04-24,Berks,Pennsylvania,42011,2339,87 +2020-04-25,Berks,Pennsylvania,42011,2406,88 +2020-04-26,Berks,Pennsylvania,42011,2491,88 +2020-04-27,Berks,Pennsylvania,42011,2526,89 +2020-04-28,Berks,Pennsylvania,42011,2605,91 +2020-04-29,Berks,Pennsylvania,42011,2637,116 +2020-04-30,Berks,Pennsylvania,42011,2698,117 +2020-05-01,Berks,Pennsylvania,42011,2748,117 +2020-05-02,Berks,Pennsylvania,42011,2810,118 +2020-05-03,Berks,Pennsylvania,42011,2886,118 +2020-05-04,Berks,Pennsylvania,42011,2948,118 +2020-05-05,Berks,Pennsylvania,42011,3004,147 +2020-05-06,Berks,Pennsylvania,42011,3048,148 +2020-05-07,Berks,Pennsylvania,42011,3095,168 +2020-05-08,Berks,Pennsylvania,42011,3190,168 +2020-05-09,Berks,Pennsylvania,42011,3257,169 +2020-05-10,Berks,Pennsylvania,42011,3371,170 +2020-05-11,Berks,Pennsylvania,42011,3417,171 +2020-05-12,Berks,Pennsylvania,42011,3453,172 +2020-05-13,Berks,Pennsylvania,42011,3485,179 +2020-05-14,Berks,Pennsylvania,42011,3530,196 +2020-05-15,Berks,Pennsylvania,42011,3593,207 +2020-05-16,Berks,Pennsylvania,42011,3643,208 +2020-05-17,Berks,Pennsylvania,42011,3677,208 +2020-05-18,Berks,Pennsylvania,42011,3719,248 +2020-05-19,Berks,Pennsylvania,42011,3735,262 +2020-05-20,Berks,Pennsylvania,42011,3763,273 +2020-05-21,Berks,Pennsylvania,42011,3784,279 +2020-05-22,Berks,Pennsylvania,42011,3838,283 +2020-05-23,Berks,Pennsylvania,42011,3845,292 +2020-05-24,Berks,Pennsylvania,42011,3885,296 +2020-05-25,Berks,Pennsylvania,42011,3903,296 +2020-05-26,Berks,Pennsylvania,42011,3919,296 +2020-05-27,Berks,Pennsylvania,42011,3952,301 +2020-05-28,Berks,Pennsylvania,42011,3973,308 +2020-05-29,Berks,Pennsylvania,42011,3988,311 +2020-05-30,Berks,Pennsylvania,42011,4002,316 +2020-05-31,Berks,Pennsylvania,42011,4061,317 +2020-06-01,Berks,Pennsylvania,42011,4074,317 +2020-06-02,Berks,Pennsylvania,42011,4107,321 +2020-06-03,Berks,Pennsylvania,42011,4132,322 +2020-06-04,Berks,Pennsylvania,42011,4152,323 +2020-06-05,Berks,Pennsylvania,42011,4167,329 +2020-06-06,Berks,Pennsylvania,42011,4184,333 +2020-06-07,Berks,Pennsylvania,42011,4201,333 +2020-06-08,Berks,Pennsylvania,42011,4218,334 +2020-06-09,Berks,Pennsylvania,42011,4236,334 +2020-06-10,Berks,Pennsylvania,42011,4251,334 +2020-06-11,Berks,Pennsylvania,42011,4262,336 +2020-06-12,Berks,Pennsylvania,42011,4281,338 +2020-06-13,Berks,Pennsylvania,42011,4303,338 +2020-06-14,Berks,Pennsylvania,42011,4319,338 +2020-06-15,Berks,Pennsylvania,42011,4324,338 +2020-06-16,Berks,Pennsylvania,42011,4341,338 +2020-06-17,Berks,Pennsylvania,42011,4350,340 +2020-06-18,Berks,Pennsylvania,42011,4359,342 +2020-06-19,Berks,Pennsylvania,42011,4374,343 +2020-06-20,Berks,Pennsylvania,42011,4388,344 +2020-06-21,Berks,Pennsylvania,42011,4407,344 +2020-06-22,Berks,Pennsylvania,42011,4419,345 +2020-06-23,Berks,Pennsylvania,42011,4444,345 +2020-06-24,Berks,Pennsylvania,42011,4453,347 +2020-06-25,Berks,Pennsylvania,42011,4461,348 +2020-06-26,Berks,Pennsylvania,42011,4474,348 +2020-06-27,Berks,Pennsylvania,42011,4487,350 +2020-06-28,Berks,Pennsylvania,42011,4498,350 +2020-06-29,Berks,Pennsylvania,42011,4521,350 +2020-06-30,Berks,Pennsylvania,42011,4527,351 +2020-07-01,Berks,Pennsylvania,42011,4559,351 +2020-07-02,Berks,Pennsylvania,42011,4563,351 +2020-07-03,Berks,Pennsylvania,42011,4569,352 +2020-07-04,Berks,Pennsylvania,42011,4571,352 +2020-07-05,Berks,Pennsylvania,42011,4578,352 +2020-07-06,Berks,Pennsylvania,42011,4581,352 +2020-07-07,Berks,Pennsylvania,42011,4606,353 +2020-07-08,Berks,Pennsylvania,42011,4623,355 +2020-07-09,Berks,Pennsylvania,42011,4647,356 +2020-03-26,Blair,Pennsylvania,42013,1,0 +2020-03-27,Blair,Pennsylvania,42013,1,0 +2020-03-28,Blair,Pennsylvania,42013,2,0 +2020-03-29,Blair,Pennsylvania,42013,3,0 +2020-03-30,Blair,Pennsylvania,42013,6,0 +2020-03-31,Blair,Pennsylvania,42013,6,0 +2020-04-01,Blair,Pennsylvania,42013,6,0 +2020-04-02,Blair,Pennsylvania,42013,6,0 +2020-04-03,Blair,Pennsylvania,42013,6,0 +2020-04-04,Blair,Pennsylvania,42013,6,0 +2020-04-05,Blair,Pennsylvania,42013,6,0 +2020-04-06,Blair,Pennsylvania,42013,6,0 +2020-04-07,Blair,Pennsylvania,42013,6,0 +2020-04-08,Blair,Pennsylvania,42013,6,0 +2020-04-09,Blair,Pennsylvania,42013,6,0 +2020-04-10,Blair,Pennsylvania,42013,9,0 +2020-04-11,Blair,Pennsylvania,42013,10,0 +2020-04-12,Blair,Pennsylvania,42013,10,0 +2020-04-13,Blair,Pennsylvania,42013,11,0 +2020-04-14,Blair,Pennsylvania,42013,11,0 +2020-04-15,Blair,Pennsylvania,42013,12,0 +2020-04-16,Blair,Pennsylvania,42013,13,0 +2020-04-17,Blair,Pennsylvania,42013,14,0 +2020-04-18,Blair,Pennsylvania,42013,14,0 +2020-04-19,Blair,Pennsylvania,42013,14,0 +2020-04-20,Blair,Pennsylvania,42013,14,0 +2020-04-21,Blair,Pennsylvania,42013,14,0 +2020-04-22,Blair,Pennsylvania,42013,14,0 +2020-04-23,Blair,Pennsylvania,42013,15,0 +2020-04-24,Blair,Pennsylvania,42013,19,0 +2020-04-25,Blair,Pennsylvania,42013,21,0 +2020-04-26,Blair,Pennsylvania,42013,21,0 +2020-04-27,Blair,Pennsylvania,42013,21,0 +2020-04-28,Blair,Pennsylvania,42013,21,0 +2020-04-29,Blair,Pennsylvania,42013,23,0 +2020-04-30,Blair,Pennsylvania,42013,23,0 +2020-05-01,Blair,Pennsylvania,42013,23,0 +2020-05-02,Blair,Pennsylvania,42013,23,0 +2020-05-03,Blair,Pennsylvania,42013,24,0 +2020-05-04,Blair,Pennsylvania,42013,25,0 +2020-05-05,Blair,Pennsylvania,42013,25,0 +2020-05-06,Blair,Pennsylvania,42013,25,0 +2020-05-07,Blair,Pennsylvania,42013,28,0 +2020-05-08,Blair,Pennsylvania,42013,28,0 +2020-05-09,Blair,Pennsylvania,42013,28,0 +2020-05-10,Blair,Pennsylvania,42013,28,0 +2020-05-11,Blair,Pennsylvania,42013,29,0 +2020-05-12,Blair,Pennsylvania,42013,30,0 +2020-05-13,Blair,Pennsylvania,42013,31,0 +2020-05-14,Blair,Pennsylvania,42013,32,0 +2020-05-15,Blair,Pennsylvania,42013,32,0 +2020-05-16,Blair,Pennsylvania,42013,34,0 +2020-05-17,Blair,Pennsylvania,42013,38,0 +2020-05-18,Blair,Pennsylvania,42013,38,1 +2020-05-19,Blair,Pennsylvania,42013,38,1 +2020-05-20,Blair,Pennsylvania,42013,39,1 +2020-05-21,Blair,Pennsylvania,42013,44,1 +2020-05-22,Blair,Pennsylvania,42013,46,1 +2020-05-23,Blair,Pennsylvania,42013,46,1 +2020-05-24,Blair,Pennsylvania,42013,46,1 +2020-05-25,Blair,Pennsylvania,42013,48,1 +2020-05-26,Blair,Pennsylvania,42013,48,1 +2020-05-27,Blair,Pennsylvania,42013,48,1 +2020-05-28,Blair,Pennsylvania,42013,49,1 +2020-05-29,Blair,Pennsylvania,42013,49,1 +2020-05-30,Blair,Pennsylvania,42013,50,1 +2020-05-31,Blair,Pennsylvania,42013,50,1 +2020-06-01,Blair,Pennsylvania,42013,50,1 +2020-06-02,Blair,Pennsylvania,42013,51,1 +2020-06-03,Blair,Pennsylvania,42013,52,1 +2020-06-04,Blair,Pennsylvania,42013,52,1 +2020-06-05,Blair,Pennsylvania,42013,53,1 +2020-06-06,Blair,Pennsylvania,42013,53,1 +2020-06-07,Blair,Pennsylvania,42013,53,1 +2020-06-08,Blair,Pennsylvania,42013,53,1 +2020-06-09,Blair,Pennsylvania,42013,53,1 +2020-06-10,Blair,Pennsylvania,42013,53,1 +2020-06-11,Blair,Pennsylvania,42013,53,1 +2020-06-12,Blair,Pennsylvania,42013,54,1 +2020-06-13,Blair,Pennsylvania,42013,55,1 +2020-06-14,Blair,Pennsylvania,42013,55,1 +2020-06-15,Blair,Pennsylvania,42013,55,1 +2020-06-16,Blair,Pennsylvania,42013,55,1 +2020-06-17,Blair,Pennsylvania,42013,55,1 +2020-06-18,Blair,Pennsylvania,42013,55,1 +2020-06-19,Blair,Pennsylvania,42013,56,1 +2020-06-20,Blair,Pennsylvania,42013,58,1 +2020-06-21,Blair,Pennsylvania,42013,58,1 +2020-06-22,Blair,Pennsylvania,42013,58,1 +2020-06-23,Blair,Pennsylvania,42013,61,1 +2020-06-24,Blair,Pennsylvania,42013,69,1 +2020-06-25,Blair,Pennsylvania,42013,69,1 +2020-06-26,Blair,Pennsylvania,42013,69,1 +2020-06-27,Blair,Pennsylvania,42013,71,1 +2020-06-28,Blair,Pennsylvania,42013,71,1 +2020-06-29,Blair,Pennsylvania,42013,72,1 +2020-06-30,Blair,Pennsylvania,42013,71,1 +2020-07-01,Blair,Pennsylvania,42013,72,1 +2020-07-02,Blair,Pennsylvania,42013,74,1 +2020-07-03,Blair,Pennsylvania,42013,79,1 +2020-07-04,Blair,Pennsylvania,42013,81,1 +2020-07-05,Blair,Pennsylvania,42013,84,1 +2020-07-06,Blair,Pennsylvania,42013,87,1 +2020-07-07,Blair,Pennsylvania,42013,89,1 +2020-07-08,Blair,Pennsylvania,42013,90,1 +2020-07-09,Blair,Pennsylvania,42013,93,1 +2020-03-24,Bradford,Pennsylvania,42015,1,0 +2020-03-25,Bradford,Pennsylvania,42015,1,0 +2020-03-26,Bradford,Pennsylvania,42015,2,0 +2020-03-27,Bradford,Pennsylvania,42015,2,0 +2020-03-28,Bradford,Pennsylvania,42015,3,0 +2020-03-29,Bradford,Pennsylvania,42015,3,0 +2020-03-30,Bradford,Pennsylvania,42015,3,0 +2020-03-31,Bradford,Pennsylvania,42015,7,0 +2020-04-01,Bradford,Pennsylvania,42015,8,0 +2020-04-02,Bradford,Pennsylvania,42015,8,0 +2020-04-03,Bradford,Pennsylvania,42015,9,0 +2020-04-04,Bradford,Pennsylvania,42015,10,0 +2020-04-05,Bradford,Pennsylvania,42015,10,0 +2020-04-06,Bradford,Pennsylvania,42015,10,0 +2020-04-07,Bradford,Pennsylvania,42015,14,0 +2020-04-08,Bradford,Pennsylvania,42015,15,0 +2020-04-09,Bradford,Pennsylvania,42015,15,0 +2020-04-10,Bradford,Pennsylvania,42015,16,0 +2020-04-11,Bradford,Pennsylvania,42015,18,0 +2020-04-12,Bradford,Pennsylvania,42015,18,0 +2020-04-13,Bradford,Pennsylvania,42015,19,0 +2020-04-14,Bradford,Pennsylvania,42015,19,0 +2020-04-15,Bradford,Pennsylvania,42015,19,0 +2020-04-16,Bradford,Pennsylvania,42015,19,0 +2020-04-17,Bradford,Pennsylvania,42015,20,0 +2020-04-18,Bradford,Pennsylvania,42015,24,0 +2020-04-19,Bradford,Pennsylvania,42015,25,1 +2020-04-20,Bradford,Pennsylvania,42015,25,1 +2020-04-21,Bradford,Pennsylvania,42015,31,5 +2020-04-22,Bradford,Pennsylvania,42015,29,5 +2020-04-23,Bradford,Pennsylvania,42015,28,5 +2020-04-24,Bradford,Pennsylvania,42015,28,5 +2020-04-25,Bradford,Pennsylvania,42015,28,5 +2020-04-26,Bradford,Pennsylvania,42015,28,5 +2020-04-27,Bradford,Pennsylvania,42015,28,5 +2020-04-28,Bradford,Pennsylvania,42015,28,5 +2020-04-29,Bradford,Pennsylvania,42015,29,5 +2020-04-30,Bradford,Pennsylvania,42015,31,5 +2020-05-01,Bradford,Pennsylvania,42015,33,5 +2020-05-02,Bradford,Pennsylvania,42015,35,5 +2020-05-03,Bradford,Pennsylvania,42015,35,5 +2020-05-04,Bradford,Pennsylvania,42015,35,5 +2020-05-05,Bradford,Pennsylvania,42015,35,5 +2020-05-06,Bradford,Pennsylvania,42015,36,5 +2020-05-07,Bradford,Pennsylvania,42015,36,5 +2020-05-08,Bradford,Pennsylvania,42015,37,5 +2020-05-09,Bradford,Pennsylvania,42015,38,5 +2020-05-10,Bradford,Pennsylvania,42015,38,5 +2020-05-11,Bradford,Pennsylvania,42015,38,5 +2020-05-12,Bradford,Pennsylvania,42015,37,5 +2020-05-13,Bradford,Pennsylvania,42015,39,5 +2020-05-14,Bradford,Pennsylvania,42015,41,5 +2020-05-15,Bradford,Pennsylvania,42015,41,5 +2020-05-16,Bradford,Pennsylvania,42015,41,5 +2020-05-17,Bradford,Pennsylvania,42015,41,5 +2020-05-18,Bradford,Pennsylvania,42015,41,5 +2020-05-19,Bradford,Pennsylvania,42015,41,5 +2020-05-20,Bradford,Pennsylvania,42015,41,3 +2020-05-21,Bradford,Pennsylvania,42015,43,3 +2020-05-22,Bradford,Pennsylvania,42015,43,3 +2020-05-23,Bradford,Pennsylvania,42015,44,3 +2020-05-24,Bradford,Pennsylvania,42015,44,3 +2020-05-25,Bradford,Pennsylvania,42015,44,3 +2020-05-26,Bradford,Pennsylvania,42015,45,3 +2020-05-27,Bradford,Pennsylvania,42015,46,3 +2020-05-28,Bradford,Pennsylvania,42015,46,3 +2020-05-29,Bradford,Pennsylvania,42015,46,3 +2020-05-30,Bradford,Pennsylvania,42015,46,3 +2020-05-31,Bradford,Pennsylvania,42015,46,3 +2020-06-01,Bradford,Pennsylvania,42015,46,3 +2020-06-02,Bradford,Pennsylvania,42015,48,3 +2020-06-03,Bradford,Pennsylvania,42015,46,3 +2020-06-04,Bradford,Pennsylvania,42015,46,3 +2020-06-05,Bradford,Pennsylvania,42015,46,3 +2020-06-06,Bradford,Pennsylvania,42015,46,3 +2020-06-07,Bradford,Pennsylvania,42015,46,3 +2020-06-08,Bradford,Pennsylvania,42015,46,3 +2020-06-09,Bradford,Pennsylvania,42015,46,3 +2020-06-10,Bradford,Pennsylvania,42015,46,3 +2020-06-11,Bradford,Pennsylvania,42015,46,3 +2020-06-12,Bradford,Pennsylvania,42015,46,3 +2020-06-13,Bradford,Pennsylvania,42015,47,3 +2020-06-14,Bradford,Pennsylvania,42015,47,3 +2020-06-15,Bradford,Pennsylvania,42015,47,3 +2020-06-16,Bradford,Pennsylvania,42015,47,3 +2020-06-17,Bradford,Pennsylvania,42015,47,3 +2020-06-18,Bradford,Pennsylvania,42015,49,3 +2020-06-19,Bradford,Pennsylvania,42015,49,3 +2020-06-20,Bradford,Pennsylvania,42015,49,3 +2020-06-21,Bradford,Pennsylvania,42015,50,3 +2020-06-22,Bradford,Pennsylvania,42015,50,3 +2020-06-23,Bradford,Pennsylvania,42015,50,3 +2020-06-24,Bradford,Pennsylvania,42015,51,3 +2020-06-25,Bradford,Pennsylvania,42015,51,3 +2020-06-26,Bradford,Pennsylvania,42015,56,3 +2020-06-27,Bradford,Pennsylvania,42015,56,3 +2020-06-28,Bradford,Pennsylvania,42015,56,3 +2020-06-29,Bradford,Pennsylvania,42015,56,3 +2020-06-30,Bradford,Pennsylvania,42015,57,3 +2020-07-01,Bradford,Pennsylvania,42015,58,3 +2020-07-02,Bradford,Pennsylvania,42015,58,3 +2020-07-03,Bradford,Pennsylvania,42015,57,3 +2020-07-04,Bradford,Pennsylvania,42015,57,3 +2020-07-05,Bradford,Pennsylvania,42015,56,3 +2020-07-06,Bradford,Pennsylvania,42015,56,3 +2020-07-07,Bradford,Pennsylvania,42015,59,3 +2020-07-08,Bradford,Pennsylvania,42015,59,3 +2020-07-09,Bradford,Pennsylvania,42015,59,3 +2020-03-11,Bucks,Pennsylvania,42017,2,0 +2020-03-12,Bucks,Pennsylvania,42017,2,0 +2020-03-13,Bucks,Pennsylvania,42017,3,0 +2020-03-14,Bucks,Pennsylvania,42017,4,0 +2020-03-15,Bucks,Pennsylvania,42017,4,0 +2020-03-16,Bucks,Pennsylvania,42017,7,0 +2020-03-17,Bucks,Pennsylvania,42017,9,0 +2020-03-18,Bucks,Pennsylvania,42017,10,0 +2020-03-19,Bucks,Pennsylvania,42017,10,0 +2020-03-20,Bucks,Pennsylvania,42017,14,0 +2020-03-21,Bucks,Pennsylvania,42017,32,0 +2020-03-22,Bucks,Pennsylvania,42017,34,0 +2020-03-23,Bucks,Pennsylvania,42017,43,0 +2020-03-24,Bucks,Pennsylvania,42017,65,0 +2020-03-25,Bucks,Pennsylvania,42017,110,0 +2020-03-26,Bucks,Pennsylvania,42017,110,0 +2020-03-27,Bucks,Pennsylvania,42017,124,0 +2020-03-28,Bucks,Pennsylvania,42017,216,1 +2020-03-29,Bucks,Pennsylvania,42017,249,3 +2020-03-30,Bucks,Pennsylvania,42017,249,3 +2020-03-31,Bucks,Pennsylvania,42017,319,6 +2020-04-01,Bucks,Pennsylvania,42017,319,6 +2020-04-02,Bucks,Pennsylvania,42017,370,6 +2020-04-03,Bucks,Pennsylvania,42017,446,8 +2020-04-04,Bucks,Pennsylvania,42017,580,14 +2020-04-05,Bucks,Pennsylvania,42017,634,17 +2020-04-06,Bucks,Pennsylvania,42017,713,20 +2020-04-07,Bucks,Pennsylvania,42017,713,21 +2020-04-08,Bucks,Pennsylvania,42017,931,25 +2020-04-09,Bucks,Pennsylvania,42017,1022,28 +2020-04-10,Bucks,Pennsylvania,42017,1107,32 +2020-04-11,Bucks,Pennsylvania,42017,1170,35 +2020-04-12,Bucks,Pennsylvania,42017,1229,38 +2020-04-13,Bucks,Pennsylvania,42017,1273,41 +2020-04-14,Bucks,Pennsylvania,42017,1399,52 +2020-04-15,Bucks,Pennsylvania,42017,1450,60 +2020-04-16,Bucks,Pennsylvania,42017,1546,67 +2020-04-17,Bucks,Pennsylvania,42017,1689,77 +2020-04-18,Bucks,Pennsylvania,42017,1689,77 +2020-04-19,Bucks,Pennsylvania,42017,1886,88 +2020-04-20,Bucks,Pennsylvania,42017,1977,99 +2020-04-21,Bucks,Pennsylvania,42017,2067,116 +2020-04-22,Bucks,Pennsylvania,42017,2067,126 +2020-04-23,Bucks,Pennsylvania,42017,2197,128 +2020-04-24,Bucks,Pennsylvania,42017,2469,135 +2020-04-25,Bucks,Pennsylvania,42017,2469,139 +2020-04-26,Bucks,Pennsylvania,42017,2541,151 +2020-04-27,Bucks,Pennsylvania,42017,2675,168 +2020-04-28,Bucks,Pennsylvania,42017,2776,178 +2020-04-29,Bucks,Pennsylvania,42017,2907,198 +2020-04-30,Bucks,Pennsylvania,42017,3070,217 +2020-05-01,Bucks,Pennsylvania,42017,3169,230 +2020-05-02,Bucks,Pennsylvania,42017,3270,237 +2020-05-03,Bucks,Pennsylvania,42017,3319,240 +2020-05-04,Bucks,Pennsylvania,42017,3429,258 +2020-05-05,Bucks,Pennsylvania,42017,3505,283 +2020-05-06,Bucks,Pennsylvania,42017,3599,304 +2020-05-07,Bucks,Pennsylvania,42017,3706,320 +2020-05-08,Bucks,Pennsylvania,42017,3779,331 +2020-05-09,Bucks,Pennsylvania,42017,3852,336 +2020-05-10,Bucks,Pennsylvania,42017,3966,341 +2020-05-11,Bucks,Pennsylvania,42017,4028,349 +2020-05-12,Bucks,Pennsylvania,42017,4116,364 +2020-05-13,Bucks,Pennsylvania,42017,4166,373 +2020-05-14,Bucks,Pennsylvania,42017,4248,395 +2020-05-15,Bucks,Pennsylvania,42017,4325,410 +2020-05-16,Bucks,Pennsylvania,42017,4391,421 +2020-05-17,Bucks,Pennsylvania,42017,4439,422 +2020-05-18,Bucks,Pennsylvania,42017,4516,417 +2020-05-19,Bucks,Pennsylvania,42017,4573,426 +2020-05-20,Bucks,Pennsylvania,42017,4662,431 +2020-05-21,Bucks,Pennsylvania,42017,4726,442 +2020-05-22,Bucks,Pennsylvania,42017,4764,454 +2020-05-23,Bucks,Pennsylvania,42017,4839,460 +2020-05-24,Bucks,Pennsylvania,42017,4867,461 +2020-05-25,Bucks,Pennsylvania,42017,4894,461 +2020-05-26,Bucks,Pennsylvania,42017,4916,461 +2020-05-27,Bucks,Pennsylvania,42017,4930,473 +2020-05-28,Bucks,Pennsylvania,42017,4966,486 +2020-05-29,Bucks,Pennsylvania,42017,5012,493 +2020-05-30,Bucks,Pennsylvania,42017,5050,501 +2020-05-31,Bucks,Pennsylvania,42017,5082,503 +2020-06-01,Bucks,Pennsylvania,42017,5100,503 +2020-06-02,Bucks,Pennsylvania,42017,5116,515 +2020-06-03,Bucks,Pennsylvania,42017,5137,519 +2020-06-04,Bucks,Pennsylvania,42017,5158,522 +2020-06-05,Bucks,Pennsylvania,42017,5197,525 +2020-06-06,Bucks,Pennsylvania,42017,5243,529 +2020-06-07,Bucks,Pennsylvania,42017,5261,529 +2020-06-08,Bucks,Pennsylvania,42017,5278,529 +2020-06-09,Bucks,Pennsylvania,42017,5304,532 +2020-06-10,Bucks,Pennsylvania,42017,5340,534 +2020-06-11,Bucks,Pennsylvania,42017,5365,540 +2020-06-12,Bucks,Pennsylvania,42017,5396,541 +2020-06-13,Bucks,Pennsylvania,42017,5419,542 +2020-06-14,Bucks,Pennsylvania,42017,5428,542 +2020-06-15,Bucks,Pennsylvania,42017,5439,542 +2020-06-16,Bucks,Pennsylvania,42017,5452,544 +2020-06-17,Bucks,Pennsylvania,42017,5466,546 +2020-06-18,Bucks,Pennsylvania,42017,5498,549 +2020-06-19,Bucks,Pennsylvania,42017,5510,551 +2020-06-20,Bucks,Pennsylvania,42017,5535,552 +2020-06-21,Bucks,Pennsylvania,42017,5547,552 +2020-06-22,Bucks,Pennsylvania,42017,5567,552 +2020-06-23,Bucks,Pennsylvania,42017,5580,555 +2020-06-24,Bucks,Pennsylvania,42017,5619,559 +2020-06-25,Bucks,Pennsylvania,42017,5649,560 +2020-06-26,Bucks,Pennsylvania,42017,5676,561 +2020-06-27,Bucks,Pennsylvania,42017,5704,563 +2020-06-28,Bucks,Pennsylvania,42017,5718,564 +2020-06-29,Bucks,Pennsylvania,42017,5729,563 +2020-06-30,Bucks,Pennsylvania,42017,5744,564 +2020-07-01,Bucks,Pennsylvania,42017,5777,564 +2020-07-02,Bucks,Pennsylvania,42017,5801,565 +2020-07-03,Bucks,Pennsylvania,42017,5829,567 +2020-07-04,Bucks,Pennsylvania,42017,5844,567 +2020-07-05,Bucks,Pennsylvania,42017,5883,567 +2020-07-06,Bucks,Pennsylvania,42017,5912,568 +2020-07-07,Bucks,Pennsylvania,42017,5948,570 +2020-07-08,Bucks,Pennsylvania,42017,5967,570 +2020-07-09,Bucks,Pennsylvania,42017,6003,571 +2020-03-21,Butler,Pennsylvania,42019,1,0 +2020-03-22,Butler,Pennsylvania,42019,1,0 +2020-03-23,Butler,Pennsylvania,42019,5,0 +2020-03-24,Butler,Pennsylvania,42019,6,0 +2020-03-25,Butler,Pennsylvania,42019,12,0 +2020-03-26,Butler,Pennsylvania,42019,19,1 +2020-03-27,Butler,Pennsylvania,42019,26,1 +2020-03-28,Butler,Pennsylvania,42019,41,2 +2020-03-29,Butler,Pennsylvania,42019,47,2 +2020-03-30,Butler,Pennsylvania,42019,49,2 +2020-03-31,Butler,Pennsylvania,42019,60,2 +2020-04-01,Butler,Pennsylvania,42019,64,2 +2020-04-02,Butler,Pennsylvania,42019,69,2 +2020-04-03,Butler,Pennsylvania,42019,75,2 +2020-04-04,Butler,Pennsylvania,42019,84,2 +2020-04-05,Butler,Pennsylvania,42019,87,2 +2020-04-06,Butler,Pennsylvania,42019,91,2 +2020-04-07,Butler,Pennsylvania,42019,107,2 +2020-04-08,Butler,Pennsylvania,42019,113,2 +2020-04-09,Butler,Pennsylvania,42019,113,2 +2020-04-10,Butler,Pennsylvania,42019,123,3 +2020-04-11,Butler,Pennsylvania,42019,128,3 +2020-04-12,Butler,Pennsylvania,42019,133,4 +2020-04-13,Butler,Pennsylvania,42019,143,4 +2020-04-14,Butler,Pennsylvania,42019,143,5 +2020-04-15,Butler,Pennsylvania,42019,150,5 +2020-04-16,Butler,Pennsylvania,42019,154,5 +2020-04-17,Butler,Pennsylvania,42019,157,5 +2020-04-18,Butler,Pennsylvania,42019,160,5 +2020-04-19,Butler,Pennsylvania,42019,161,5 +2020-04-20,Butler,Pennsylvania,42019,161,5 +2020-04-21,Butler,Pennsylvania,42019,162,6 +2020-04-22,Butler,Pennsylvania,42019,164,7 +2020-04-23,Butler,Pennsylvania,42019,164,6 +2020-04-24,Butler,Pennsylvania,42019,168,6 +2020-04-25,Butler,Pennsylvania,42019,168,6 +2020-04-26,Butler,Pennsylvania,42019,170,6 +2020-04-27,Butler,Pennsylvania,42019,170,6 +2020-04-28,Butler,Pennsylvania,42019,174,6 +2020-04-29,Butler,Pennsylvania,42019,175,6 +2020-04-30,Butler,Pennsylvania,42019,178,6 +2020-05-01,Butler,Pennsylvania,42019,180,6 +2020-05-02,Butler,Pennsylvania,42019,180,6 +2020-05-03,Butler,Pennsylvania,42019,180,6 +2020-05-04,Butler,Pennsylvania,42019,180,6 +2020-05-05,Butler,Pennsylvania,42019,184,6 +2020-05-06,Butler,Pennsylvania,42019,185,6 +2020-05-07,Butler,Pennsylvania,42019,190,6 +2020-05-08,Butler,Pennsylvania,42019,192,6 +2020-05-09,Butler,Pennsylvania,42019,194,6 +2020-05-10,Butler,Pennsylvania,42019,195,6 +2020-05-11,Butler,Pennsylvania,42019,195,6 +2020-05-12,Butler,Pennsylvania,42019,198,6 +2020-05-13,Butler,Pennsylvania,42019,197,6 +2020-05-14,Butler,Pennsylvania,42019,199,6 +2020-05-15,Butler,Pennsylvania,42019,202,6 +2020-05-16,Butler,Pennsylvania,42019,202,6 +2020-05-17,Butler,Pennsylvania,42019,203,6 +2020-05-18,Butler,Pennsylvania,42019,203,12 +2020-05-19,Butler,Pennsylvania,42019,206,12 +2020-05-20,Butler,Pennsylvania,42019,208,12 +2020-05-21,Butler,Pennsylvania,42019,209,12 +2020-05-22,Butler,Pennsylvania,42019,209,12 +2020-05-23,Butler,Pennsylvania,42019,216,12 +2020-05-24,Butler,Pennsylvania,42019,219,12 +2020-05-25,Butler,Pennsylvania,42019,220,12 +2020-05-26,Butler,Pennsylvania,42019,220,12 +2020-05-27,Butler,Pennsylvania,42019,222,12 +2020-05-28,Butler,Pennsylvania,42019,226,12 +2020-05-29,Butler,Pennsylvania,42019,227,12 +2020-05-30,Butler,Pennsylvania,42019,229,12 +2020-05-31,Butler,Pennsylvania,42019,230,12 +2020-06-01,Butler,Pennsylvania,42019,230,12 +2020-06-02,Butler,Pennsylvania,42019,232,12 +2020-06-03,Butler,Pennsylvania,42019,235,12 +2020-06-04,Butler,Pennsylvania,42019,240,12 +2020-06-05,Butler,Pennsylvania,42019,239,12 +2020-06-06,Butler,Pennsylvania,42019,244,12 +2020-06-07,Butler,Pennsylvania,42019,247,12 +2020-06-08,Butler,Pennsylvania,42019,247,12 +2020-06-09,Butler,Pennsylvania,42019,249,12 +2020-06-10,Butler,Pennsylvania,42019,250,12 +2020-06-11,Butler,Pennsylvania,42019,255,12 +2020-06-12,Butler,Pennsylvania,42019,256,12 +2020-06-13,Butler,Pennsylvania,42019,257,12 +2020-06-14,Butler,Pennsylvania,42019,257,12 +2020-06-15,Butler,Pennsylvania,42019,257,12 +2020-06-16,Butler,Pennsylvania,42019,260,12 +2020-06-17,Butler,Pennsylvania,42019,263,13 +2020-06-18,Butler,Pennsylvania,42019,263,13 +2020-06-19,Butler,Pennsylvania,42019,263,13 +2020-06-20,Butler,Pennsylvania,42019,263,13 +2020-06-21,Butler,Pennsylvania,42019,268,13 +2020-06-22,Butler,Pennsylvania,42019,271,13 +2020-06-23,Butler,Pennsylvania,42019,273,13 +2020-06-24,Butler,Pennsylvania,42019,277,13 +2020-06-25,Butler,Pennsylvania,42019,280,13 +2020-06-26,Butler,Pennsylvania,42019,284,13 +2020-06-27,Butler,Pennsylvania,42019,291,13 +2020-06-28,Butler,Pennsylvania,42019,295,13 +2020-06-29,Butler,Pennsylvania,42019,302,13 +2020-06-30,Butler,Pennsylvania,42019,307,13 +2020-07-01,Butler,Pennsylvania,42019,311,13 +2020-07-02,Butler,Pennsylvania,42019,319,13 +2020-07-03,Butler,Pennsylvania,42019,330,13 +2020-07-04,Butler,Pennsylvania,42019,340,13 +2020-07-05,Butler,Pennsylvania,42019,346,13 +2020-07-06,Butler,Pennsylvania,42019,356,13 +2020-07-07,Butler,Pennsylvania,42019,370,13 +2020-07-08,Butler,Pennsylvania,42019,390,13 +2020-07-09,Butler,Pennsylvania,42019,396,13 +2020-03-23,Cambria,Pennsylvania,42021,1,0 +2020-03-24,Cambria,Pennsylvania,42021,1,0 +2020-03-25,Cambria,Pennsylvania,42021,1,0 +2020-03-26,Cambria,Pennsylvania,42021,1,0 +2020-03-27,Cambria,Pennsylvania,42021,1,0 +2020-03-28,Cambria,Pennsylvania,42021,1,0 +2020-03-29,Cambria,Pennsylvania,42021,1,0 +2020-03-30,Cambria,Pennsylvania,42021,2,0 +2020-03-31,Cambria,Pennsylvania,42021,2,0 +2020-04-01,Cambria,Pennsylvania,42021,3,0 +2020-04-02,Cambria,Pennsylvania,42021,4,0 +2020-04-03,Cambria,Pennsylvania,42021,4,0 +2020-04-04,Cambria,Pennsylvania,42021,6,0 +2020-04-05,Cambria,Pennsylvania,42021,7,0 +2020-04-06,Cambria,Pennsylvania,42021,7,0 +2020-04-07,Cambria,Pennsylvania,42021,7,1 +2020-04-08,Cambria,Pennsylvania,42021,9,1 +2020-04-09,Cambria,Pennsylvania,42021,10,1 +2020-04-10,Cambria,Pennsylvania,42021,11,1 +2020-04-11,Cambria,Pennsylvania,42021,13,1 +2020-04-12,Cambria,Pennsylvania,42021,13,1 +2020-04-13,Cambria,Pennsylvania,42021,14,1 +2020-04-14,Cambria,Pennsylvania,42021,14,1 +2020-04-15,Cambria,Pennsylvania,42021,14,1 +2020-04-16,Cambria,Pennsylvania,42021,14,1 +2020-04-17,Cambria,Pennsylvania,42021,14,1 +2020-04-18,Cambria,Pennsylvania,42021,17,1 +2020-04-19,Cambria,Pennsylvania,42021,19,1 +2020-04-20,Cambria,Pennsylvania,42021,19,1 +2020-04-21,Cambria,Pennsylvania,42021,20,2 +2020-04-22,Cambria,Pennsylvania,42021,21,2 +2020-04-23,Cambria,Pennsylvania,42021,20,2 +2020-04-24,Cambria,Pennsylvania,42021,20,2 +2020-04-25,Cambria,Pennsylvania,42021,21,2 +2020-04-26,Cambria,Pennsylvania,42021,21,2 +2020-04-27,Cambria,Pennsylvania,42021,21,2 +2020-04-28,Cambria,Pennsylvania,42021,22,2 +2020-04-29,Cambria,Pennsylvania,42021,25,2 +2020-04-30,Cambria,Pennsylvania,42021,28,2 +2020-05-01,Cambria,Pennsylvania,42021,31,2 +2020-05-02,Cambria,Pennsylvania,42021,32,2 +2020-05-03,Cambria,Pennsylvania,42021,33,2 +2020-05-04,Cambria,Pennsylvania,42021,34,2 +2020-05-05,Cambria,Pennsylvania,42021,34,2 +2020-05-06,Cambria,Pennsylvania,42021,35,2 +2020-05-07,Cambria,Pennsylvania,42021,37,2 +2020-05-08,Cambria,Pennsylvania,42021,40,2 +2020-05-09,Cambria,Pennsylvania,42021,42,2 +2020-05-10,Cambria,Pennsylvania,42021,44,2 +2020-05-11,Cambria,Pennsylvania,42021,44,2 +2020-05-12,Cambria,Pennsylvania,42021,44,2 +2020-05-13,Cambria,Pennsylvania,42021,45,2 +2020-05-14,Cambria,Pennsylvania,42021,45,2 +2020-05-15,Cambria,Pennsylvania,42021,49,2 +2020-05-16,Cambria,Pennsylvania,42021,53,2 +2020-05-17,Cambria,Pennsylvania,42021,54,2 +2020-05-18,Cambria,Pennsylvania,42021,54,2 +2020-05-19,Cambria,Pennsylvania,42021,54,2 +2020-05-20,Cambria,Pennsylvania,42021,54,2 +2020-05-21,Cambria,Pennsylvania,42021,55,2 +2020-05-22,Cambria,Pennsylvania,42021,55,2 +2020-05-23,Cambria,Pennsylvania,42021,56,2 +2020-05-24,Cambria,Pennsylvania,42021,57,2 +2020-05-25,Cambria,Pennsylvania,42021,57,2 +2020-05-26,Cambria,Pennsylvania,42021,57,2 +2020-05-27,Cambria,Pennsylvania,42021,57,2 +2020-05-28,Cambria,Pennsylvania,42021,57,2 +2020-05-29,Cambria,Pennsylvania,42021,57,2 +2020-05-30,Cambria,Pennsylvania,42021,57,2 +2020-05-31,Cambria,Pennsylvania,42021,57,2 +2020-06-01,Cambria,Pennsylvania,42021,58,2 +2020-06-02,Cambria,Pennsylvania,42021,59,2 +2020-06-03,Cambria,Pennsylvania,42021,59,2 +2020-06-04,Cambria,Pennsylvania,42021,59,2 +2020-06-05,Cambria,Pennsylvania,42021,59,2 +2020-06-06,Cambria,Pennsylvania,42021,59,2 +2020-06-07,Cambria,Pennsylvania,42021,59,2 +2020-06-08,Cambria,Pennsylvania,42021,59,2 +2020-06-09,Cambria,Pennsylvania,42021,60,2 +2020-06-10,Cambria,Pennsylvania,42021,60,2 +2020-06-11,Cambria,Pennsylvania,42021,61,2 +2020-06-12,Cambria,Pennsylvania,42021,62,3 +2020-06-13,Cambria,Pennsylvania,42021,61,3 +2020-06-14,Cambria,Pennsylvania,42021,61,3 +2020-06-15,Cambria,Pennsylvania,42021,61,3 +2020-06-16,Cambria,Pennsylvania,42021,61,3 +2020-06-17,Cambria,Pennsylvania,42021,61,3 +2020-06-18,Cambria,Pennsylvania,42021,61,3 +2020-06-19,Cambria,Pennsylvania,42021,62,3 +2020-06-20,Cambria,Pennsylvania,42021,61,3 +2020-06-21,Cambria,Pennsylvania,42021,61,3 +2020-06-22,Cambria,Pennsylvania,42021,61,3 +2020-06-23,Cambria,Pennsylvania,42021,62,3 +2020-06-24,Cambria,Pennsylvania,42021,62,3 +2020-06-25,Cambria,Pennsylvania,42021,64,3 +2020-06-26,Cambria,Pennsylvania,42021,67,3 +2020-06-27,Cambria,Pennsylvania,42021,73,3 +2020-06-28,Cambria,Pennsylvania,42021,77,3 +2020-06-29,Cambria,Pennsylvania,42021,78,3 +2020-06-30,Cambria,Pennsylvania,42021,80,3 +2020-07-01,Cambria,Pennsylvania,42021,83,3 +2020-07-02,Cambria,Pennsylvania,42021,85,3 +2020-07-03,Cambria,Pennsylvania,42021,90,3 +2020-07-04,Cambria,Pennsylvania,42021,94,3 +2020-07-05,Cambria,Pennsylvania,42021,96,3 +2020-07-06,Cambria,Pennsylvania,42021,98,3 +2020-07-07,Cambria,Pennsylvania,42021,104,3 +2020-07-08,Cambria,Pennsylvania,42021,110,3 +2020-07-09,Cambria,Pennsylvania,42021,113,3 +2020-03-28,Cameron,Pennsylvania,42023,1,0 +2020-03-29,Cameron,Pennsylvania,42023,1,0 +2020-03-30,Cameron,Pennsylvania,42023,1,0 +2020-03-31,Cameron,Pennsylvania,42023,1,0 +2020-04-01,Cameron,Pennsylvania,42023,1,0 +2020-04-02,Cameron,Pennsylvania,42023,1,0 +2020-04-03,Cameron,Pennsylvania,42023,1,0 +2020-04-04,Cameron,Pennsylvania,42023,1,0 +2020-04-05,Cameron,Pennsylvania,42023,1,0 +2020-04-06,Cameron,Pennsylvania,42023,1,0 +2020-04-07,Cameron,Pennsylvania,42023,1,0 +2020-04-08,Cameron,Pennsylvania,42023,1,0 +2020-04-09,Cameron,Pennsylvania,42023,1,0 +2020-04-10,Cameron,Pennsylvania,42023,1,0 +2020-04-11,Cameron,Pennsylvania,42023,1,0 +2020-04-12,Cameron,Pennsylvania,42023,1,0 +2020-04-13,Cameron,Pennsylvania,42023,1,0 +2020-04-14,Cameron,Pennsylvania,42023,1,0 +2020-04-15,Cameron,Pennsylvania,42023,1,0 +2020-04-16,Cameron,Pennsylvania,42023,1,0 +2020-04-17,Cameron,Pennsylvania,42023,1,0 +2020-04-18,Cameron,Pennsylvania,42023,1,0 +2020-04-19,Cameron,Pennsylvania,42023,1,0 +2020-04-20,Cameron,Pennsylvania,42023,1,0 +2020-04-21,Cameron,Pennsylvania,42023,1,0 +2020-04-22,Cameron,Pennsylvania,42023,1,0 +2020-04-23,Cameron,Pennsylvania,42023,1,0 +2020-04-24,Cameron,Pennsylvania,42023,1,0 +2020-04-25,Cameron,Pennsylvania,42023,1,0 +2020-04-26,Cameron,Pennsylvania,42023,1,0 +2020-04-27,Cameron,Pennsylvania,42023,1,0 +2020-04-28,Cameron,Pennsylvania,42023,1,0 +2020-04-29,Cameron,Pennsylvania,42023,1,0 +2020-04-30,Cameron,Pennsylvania,42023,1,0 +2020-05-01,Cameron,Pennsylvania,42023,1,0 +2020-05-02,Cameron,Pennsylvania,42023,1,0 +2020-05-03,Cameron,Pennsylvania,42023,1,0 +2020-05-04,Cameron,Pennsylvania,42023,1,0 +2020-05-05,Cameron,Pennsylvania,42023,2,0 +2020-05-06,Cameron,Pennsylvania,42023,2,0 +2020-05-07,Cameron,Pennsylvania,42023,2,0 +2020-05-08,Cameron,Pennsylvania,42023,2,0 +2020-05-09,Cameron,Pennsylvania,42023,2,0 +2020-05-10,Cameron,Pennsylvania,42023,2,0 +2020-05-11,Cameron,Pennsylvania,42023,2,0 +2020-05-12,Cameron,Pennsylvania,42023,2,0 +2020-05-13,Cameron,Pennsylvania,42023,2,0 +2020-05-14,Cameron,Pennsylvania,42023,2,0 +2020-05-15,Cameron,Pennsylvania,42023,2,0 +2020-05-16,Cameron,Pennsylvania,42023,2,0 +2020-05-17,Cameron,Pennsylvania,42023,2,0 +2020-05-18,Cameron,Pennsylvania,42023,2,0 +2020-05-19,Cameron,Pennsylvania,42023,2,0 +2020-05-20,Cameron,Pennsylvania,42023,2,0 +2020-05-21,Cameron,Pennsylvania,42023,2,0 +2020-05-22,Cameron,Pennsylvania,42023,2,0 +2020-05-23,Cameron,Pennsylvania,42023,2,0 +2020-05-24,Cameron,Pennsylvania,42023,2,0 +2020-05-25,Cameron,Pennsylvania,42023,2,0 +2020-05-26,Cameron,Pennsylvania,42023,2,0 +2020-05-27,Cameron,Pennsylvania,42023,2,0 +2020-05-28,Cameron,Pennsylvania,42023,2,0 +2020-05-29,Cameron,Pennsylvania,42023,2,0 +2020-05-30,Cameron,Pennsylvania,42023,2,0 +2020-05-31,Cameron,Pennsylvania,42023,2,0 +2020-06-01,Cameron,Pennsylvania,42023,2,0 +2020-06-02,Cameron,Pennsylvania,42023,2,0 +2020-06-03,Cameron,Pennsylvania,42023,2,0 +2020-06-04,Cameron,Pennsylvania,42023,2,0 +2020-06-05,Cameron,Pennsylvania,42023,2,0 +2020-06-06,Cameron,Pennsylvania,42023,2,0 +2020-06-07,Cameron,Pennsylvania,42023,2,0 +2020-06-08,Cameron,Pennsylvania,42023,2,0 +2020-06-09,Cameron,Pennsylvania,42023,2,0 +2020-06-10,Cameron,Pennsylvania,42023,2,0 +2020-06-11,Cameron,Pennsylvania,42023,2,0 +2020-06-12,Cameron,Pennsylvania,42023,2,0 +2020-06-13,Cameron,Pennsylvania,42023,2,0 +2020-06-14,Cameron,Pennsylvania,42023,2,0 +2020-06-15,Cameron,Pennsylvania,42023,2,0 +2020-06-16,Cameron,Pennsylvania,42023,2,0 +2020-06-17,Cameron,Pennsylvania,42023,2,0 +2020-06-18,Cameron,Pennsylvania,42023,2,0 +2020-06-19,Cameron,Pennsylvania,42023,2,0 +2020-06-20,Cameron,Pennsylvania,42023,2,0 +2020-06-21,Cameron,Pennsylvania,42023,2,0 +2020-06-22,Cameron,Pennsylvania,42023,2,0 +2020-06-23,Cameron,Pennsylvania,42023,2,0 +2020-06-24,Cameron,Pennsylvania,42023,2,0 +2020-06-25,Cameron,Pennsylvania,42023,2,0 +2020-06-26,Cameron,Pennsylvania,42023,2,0 +2020-06-27,Cameron,Pennsylvania,42023,3,0 +2020-06-28,Cameron,Pennsylvania,42023,3,0 +2020-06-29,Cameron,Pennsylvania,42023,3,0 +2020-06-30,Cameron,Pennsylvania,42023,3,0 +2020-07-01,Cameron,Pennsylvania,42023,3,0 +2020-07-02,Cameron,Pennsylvania,42023,3,0 +2020-07-03,Cameron,Pennsylvania,42023,3,0 +2020-07-04,Cameron,Pennsylvania,42023,4,0 +2020-07-05,Cameron,Pennsylvania,42023,4,0 +2020-07-06,Cameron,Pennsylvania,42023,4,0 +2020-07-07,Cameron,Pennsylvania,42023,4,0 +2020-07-08,Cameron,Pennsylvania,42023,4,0 +2020-07-09,Cameron,Pennsylvania,42023,4,0 +2020-03-24,Carbon,Pennsylvania,42025,1,0 +2020-03-25,Carbon,Pennsylvania,42025,1,0 +2020-03-26,Carbon,Pennsylvania,42025,2,0 +2020-03-27,Carbon,Pennsylvania,42025,2,0 +2020-03-28,Carbon,Pennsylvania,42025,3,0 +2020-03-29,Carbon,Pennsylvania,42025,9,0 +2020-03-30,Carbon,Pennsylvania,42025,13,0 +2020-03-31,Carbon,Pennsylvania,42025,17,1 +2020-04-01,Carbon,Pennsylvania,42025,23,1 +2020-04-02,Carbon,Pennsylvania,42025,26,1 +2020-04-03,Carbon,Pennsylvania,42025,34,1 +2020-04-04,Carbon,Pennsylvania,42025,46,1 +2020-04-05,Carbon,Pennsylvania,42025,50,1 +2020-04-06,Carbon,Pennsylvania,42025,59,1 +2020-04-07,Carbon,Pennsylvania,42025,67,1 +2020-04-08,Carbon,Pennsylvania,42025,76,1 +2020-04-09,Carbon,Pennsylvania,42025,83,2 +2020-04-10,Carbon,Pennsylvania,42025,93,3 +2020-04-11,Carbon,Pennsylvania,42025,98,3 +2020-04-12,Carbon,Pennsylvania,42025,102,3 +2020-04-13,Carbon,Pennsylvania,42025,102,3 +2020-04-14,Carbon,Pennsylvania,42025,103,3 +2020-04-15,Carbon,Pennsylvania,42025,112,6 +2020-04-16,Carbon,Pennsylvania,42025,113,6 +2020-04-17,Carbon,Pennsylvania,42025,118,7 +2020-04-18,Carbon,Pennsylvania,42025,136,8 +2020-04-19,Carbon,Pennsylvania,42025,140,8 +2020-04-20,Carbon,Pennsylvania,42025,144,9 +2020-04-21,Carbon,Pennsylvania,42025,150,11 +2020-04-22,Carbon,Pennsylvania,42025,154,11 +2020-04-23,Carbon,Pennsylvania,42025,155,11 +2020-04-24,Carbon,Pennsylvania,42025,160,12 +2020-04-25,Carbon,Pennsylvania,42025,162,12 +2020-04-26,Carbon,Pennsylvania,42025,163,12 +2020-04-27,Carbon,Pennsylvania,42025,164,12 +2020-04-28,Carbon,Pennsylvania,42025,169,13 +2020-04-29,Carbon,Pennsylvania,42025,170,14 +2020-04-30,Carbon,Pennsylvania,42025,175,15 +2020-05-01,Carbon,Pennsylvania,42025,181,15 +2020-05-02,Carbon,Pennsylvania,42025,182,15 +2020-05-03,Carbon,Pennsylvania,42025,183,15 +2020-05-04,Carbon,Pennsylvania,42025,185,15 +2020-05-05,Carbon,Pennsylvania,42025,185,15 +2020-05-06,Carbon,Pennsylvania,42025,186,16 +2020-05-07,Carbon,Pennsylvania,42025,189,16 +2020-05-08,Carbon,Pennsylvania,42025,192,16 +2020-05-09,Carbon,Pennsylvania,42025,195,16 +2020-05-10,Carbon,Pennsylvania,42025,198,17 +2020-05-11,Carbon,Pennsylvania,42025,198,17 +2020-05-12,Carbon,Pennsylvania,42025,198,17 +2020-05-13,Carbon,Pennsylvania,42025,205,17 +2020-05-14,Carbon,Pennsylvania,42025,206,17 +2020-05-15,Carbon,Pennsylvania,42025,206,17 +2020-05-16,Carbon,Pennsylvania,42025,210,17 +2020-05-17,Carbon,Pennsylvania,42025,214,17 +2020-05-18,Carbon,Pennsylvania,42025,214,22 +2020-05-19,Carbon,Pennsylvania,42025,214,22 +2020-05-20,Carbon,Pennsylvania,42025,219,22 +2020-05-21,Carbon,Pennsylvania,42025,221,22 +2020-05-22,Carbon,Pennsylvania,42025,224,22 +2020-05-23,Carbon,Pennsylvania,42025,227,22 +2020-05-24,Carbon,Pennsylvania,42025,229,22 +2020-05-25,Carbon,Pennsylvania,42025,231,22 +2020-05-26,Carbon,Pennsylvania,42025,231,22 +2020-05-27,Carbon,Pennsylvania,42025,232,22 +2020-05-28,Carbon,Pennsylvania,42025,232,22 +2020-05-29,Carbon,Pennsylvania,42025,234,23 +2020-05-30,Carbon,Pennsylvania,42025,235,24 +2020-05-31,Carbon,Pennsylvania,42025,235,24 +2020-06-01,Carbon,Pennsylvania,42025,237,24 +2020-06-02,Carbon,Pennsylvania,42025,241,24 +2020-06-03,Carbon,Pennsylvania,42025,239,24 +2020-06-04,Carbon,Pennsylvania,42025,250,24 +2020-06-05,Carbon,Pennsylvania,42025,245,24 +2020-06-06,Carbon,Pennsylvania,42025,248,24 +2020-06-07,Carbon,Pennsylvania,42025,249,24 +2020-06-08,Carbon,Pennsylvania,42025,249,24 +2020-06-09,Carbon,Pennsylvania,42025,253,24 +2020-06-10,Carbon,Pennsylvania,42025,255,24 +2020-06-11,Carbon,Pennsylvania,42025,255,24 +2020-06-12,Carbon,Pennsylvania,42025,257,24 +2020-06-13,Carbon,Pennsylvania,42025,257,24 +2020-06-14,Carbon,Pennsylvania,42025,259,24 +2020-06-15,Carbon,Pennsylvania,42025,259,24 +2020-06-16,Carbon,Pennsylvania,42025,259,24 +2020-06-17,Carbon,Pennsylvania,42025,262,24 +2020-06-18,Carbon,Pennsylvania,42025,262,24 +2020-06-19,Carbon,Pennsylvania,42025,264,24 +2020-06-20,Carbon,Pennsylvania,42025,267,24 +2020-06-21,Carbon,Pennsylvania,42025,267,24 +2020-06-22,Carbon,Pennsylvania,42025,267,24 +2020-06-23,Carbon,Pennsylvania,42025,268,24 +2020-06-24,Carbon,Pennsylvania,42025,271,25 +2020-06-25,Carbon,Pennsylvania,42025,271,25 +2020-06-26,Carbon,Pennsylvania,42025,272,25 +2020-06-27,Carbon,Pennsylvania,42025,273,25 +2020-06-28,Carbon,Pennsylvania,42025,274,25 +2020-06-29,Carbon,Pennsylvania,42025,278,25 +2020-06-30,Carbon,Pennsylvania,42025,278,26 +2020-07-01,Carbon,Pennsylvania,42025,280,26 +2020-07-02,Carbon,Pennsylvania,42025,283,26 +2020-07-03,Carbon,Pennsylvania,42025,284,26 +2020-07-04,Carbon,Pennsylvania,42025,286,26 +2020-07-05,Carbon,Pennsylvania,42025,287,26 +2020-07-06,Carbon,Pennsylvania,42025,287,26 +2020-07-07,Carbon,Pennsylvania,42025,288,27 +2020-07-08,Carbon,Pennsylvania,42025,291,27 +2020-07-09,Carbon,Pennsylvania,42025,293,27 +2020-03-20,Centre,Pennsylvania,42027,1,0 +2020-03-21,Centre,Pennsylvania,42027,1,0 +2020-03-22,Centre,Pennsylvania,42027,1,0 +2020-03-23,Centre,Pennsylvania,42027,3,0 +2020-03-24,Centre,Pennsylvania,42027,7,0 +2020-03-25,Centre,Pennsylvania,42027,8,0 +2020-03-26,Centre,Pennsylvania,42027,9,0 +2020-03-27,Centre,Pennsylvania,42027,11,0 +2020-03-28,Centre,Pennsylvania,42027,15,0 +2020-03-29,Centre,Pennsylvania,42027,22,0 +2020-03-30,Centre,Pennsylvania,42027,24,0 +2020-03-31,Centre,Pennsylvania,42027,26,0 +2020-04-01,Centre,Pennsylvania,42027,27,0 +2020-04-02,Centre,Pennsylvania,42027,28,0 +2020-04-03,Centre,Pennsylvania,42027,32,0 +2020-04-04,Centre,Pennsylvania,42027,39,0 +2020-04-05,Centre,Pennsylvania,42027,43,0 +2020-04-06,Centre,Pennsylvania,42027,44,0 +2020-04-07,Centre,Pennsylvania,42027,55,0 +2020-04-08,Centre,Pennsylvania,42027,57,0 +2020-04-09,Centre,Pennsylvania,42027,59,0 +2020-04-10,Centre,Pennsylvania,42027,61,0 +2020-04-11,Centre,Pennsylvania,42027,69,0 +2020-04-12,Centre,Pennsylvania,42027,70,0 +2020-04-13,Centre,Pennsylvania,42027,70,0 +2020-04-14,Centre,Pennsylvania,42027,70,0 +2020-04-15,Centre,Pennsylvania,42027,72,0 +2020-04-16,Centre,Pennsylvania,42027,73,0 +2020-04-17,Centre,Pennsylvania,42027,73,1 +2020-04-18,Centre,Pennsylvania,42027,73,1 +2020-04-19,Centre,Pennsylvania,42027,73,1 +2020-04-20,Centre,Pennsylvania,42027,73,1 +2020-04-21,Centre,Pennsylvania,42027,77,2 +2020-04-22,Centre,Pennsylvania,42027,76,2 +2020-04-23,Centre,Pennsylvania,42027,76,2 +2020-04-24,Centre,Pennsylvania,42027,77,2 +2020-04-25,Centre,Pennsylvania,42027,81,2 +2020-04-26,Centre,Pennsylvania,42027,81,2 +2020-04-27,Centre,Pennsylvania,42027,87,2 +2020-04-28,Centre,Pennsylvania,42027,93,2 +2020-04-29,Centre,Pennsylvania,42027,95,2 +2020-04-30,Centre,Pennsylvania,42027,96,2 +2020-05-01,Centre,Pennsylvania,42027,96,2 +2020-05-02,Centre,Pennsylvania,42027,96,2 +2020-05-03,Centre,Pennsylvania,42027,102,2 +2020-05-04,Centre,Pennsylvania,42027,105,2 +2020-05-05,Centre,Pennsylvania,42027,106,2 +2020-05-06,Centre,Pennsylvania,42027,113,2 +2020-05-07,Centre,Pennsylvania,42027,116,2 +2020-05-08,Centre,Pennsylvania,42027,117,2 +2020-05-09,Centre,Pennsylvania,42027,117,2 +2020-05-10,Centre,Pennsylvania,42027,119,2 +2020-05-11,Centre,Pennsylvania,42027,119,2 +2020-05-12,Centre,Pennsylvania,42027,122,2 +2020-05-13,Centre,Pennsylvania,42027,126,4 +2020-05-14,Centre,Pennsylvania,42027,128,6 +2020-05-15,Centre,Pennsylvania,42027,129,6 +2020-05-16,Centre,Pennsylvania,42027,129,6 +2020-05-17,Centre,Pennsylvania,42027,131,6 +2020-05-18,Centre,Pennsylvania,42027,133,5 +2020-05-19,Centre,Pennsylvania,42027,132,5 +2020-05-20,Centre,Pennsylvania,42027,133,5 +2020-05-21,Centre,Pennsylvania,42027,136,5 +2020-05-22,Centre,Pennsylvania,42027,138,5 +2020-05-23,Centre,Pennsylvania,42027,143,6 +2020-05-24,Centre,Pennsylvania,42027,146,6 +2020-05-25,Centre,Pennsylvania,42027,147,6 +2020-05-26,Centre,Pennsylvania,42027,148,6 +2020-05-27,Centre,Pennsylvania,42027,149,6 +2020-05-28,Centre,Pennsylvania,42027,150,6 +2020-05-29,Centre,Pennsylvania,42027,151,6 +2020-05-30,Centre,Pennsylvania,42027,152,7 +2020-05-31,Centre,Pennsylvania,42027,153,7 +2020-06-01,Centre,Pennsylvania,42027,154,7 +2020-06-02,Centre,Pennsylvania,42027,154,7 +2020-06-03,Centre,Pennsylvania,42027,154,7 +2020-06-04,Centre,Pennsylvania,42027,154,7 +2020-06-05,Centre,Pennsylvania,42027,154,7 +2020-06-06,Centre,Pennsylvania,42027,155,7 +2020-06-07,Centre,Pennsylvania,42027,156,7 +2020-06-08,Centre,Pennsylvania,42027,157,7 +2020-06-09,Centre,Pennsylvania,42027,157,7 +2020-06-10,Centre,Pennsylvania,42027,158,7 +2020-06-11,Centre,Pennsylvania,42027,158,7 +2020-06-12,Centre,Pennsylvania,42027,165,7 +2020-06-13,Centre,Pennsylvania,42027,167,7 +2020-06-14,Centre,Pennsylvania,42027,169,7 +2020-06-15,Centre,Pennsylvania,42027,171,6 +2020-06-16,Centre,Pennsylvania,42027,177,6 +2020-06-17,Centre,Pennsylvania,42027,172,6 +2020-06-18,Centre,Pennsylvania,42027,172,6 +2020-06-19,Centre,Pennsylvania,42027,176,6 +2020-06-20,Centre,Pennsylvania,42027,180,6 +2020-06-21,Centre,Pennsylvania,42027,180,6 +2020-06-22,Centre,Pennsylvania,42027,184,6 +2020-06-23,Centre,Pennsylvania,42027,195,6 +2020-06-24,Centre,Pennsylvania,42027,196,6 +2020-06-25,Centre,Pennsylvania,42027,197,6 +2020-06-26,Centre,Pennsylvania,42027,198,6 +2020-06-27,Centre,Pennsylvania,42027,200,7 +2020-06-28,Centre,Pennsylvania,42027,201,7 +2020-06-29,Centre,Pennsylvania,42027,201,7 +2020-06-30,Centre,Pennsylvania,42027,201,7 +2020-07-01,Centre,Pennsylvania,42027,205,7 +2020-07-02,Centre,Pennsylvania,42027,211,7 +2020-07-03,Centre,Pennsylvania,42027,218,7 +2020-07-04,Centre,Pennsylvania,42027,224,7 +2020-07-05,Centre,Pennsylvania,42027,227,8 +2020-07-06,Centre,Pennsylvania,42027,228,8 +2020-07-07,Centre,Pennsylvania,42027,230,8 +2020-07-08,Centre,Pennsylvania,42027,232,8 +2020-07-09,Centre,Pennsylvania,42027,235,8 +2020-03-13,Chester,Pennsylvania,42029,1,0 +2020-03-14,Chester,Pennsylvania,42029,2,0 +2020-03-15,Chester,Pennsylvania,42029,4,0 +2020-03-16,Chester,Pennsylvania,42029,4,0 +2020-03-17,Chester,Pennsylvania,42029,4,0 +2020-03-18,Chester,Pennsylvania,42029,9,0 +2020-03-19,Chester,Pennsylvania,42029,10,0 +2020-03-20,Chester,Pennsylvania,42029,17,0 +2020-03-21,Chester,Pennsylvania,42029,19,0 +2020-03-22,Chester,Pennsylvania,42029,23,0 +2020-03-23,Chester,Pennsylvania,42029,40,0 +2020-03-24,Chester,Pennsylvania,42029,40,0 +2020-03-25,Chester,Pennsylvania,42029,54,0 +2020-03-26,Chester,Pennsylvania,42029,84,0 +2020-03-27,Chester,Pennsylvania,42029,107,0 +2020-03-28,Chester,Pennsylvania,42029,116,0 +2020-03-29,Chester,Pennsylvania,42029,137,0 +2020-03-30,Chester,Pennsylvania,42029,146,0 +2020-03-31,Chester,Pennsylvania,42029,159,1 +2020-04-01,Chester,Pennsylvania,42029,183,1 +2020-04-02,Chester,Pennsylvania,42029,210,2 +2020-04-03,Chester,Pennsylvania,42029,226,2 +2020-04-04,Chester,Pennsylvania,42029,250,2 +2020-04-05,Chester,Pennsylvania,42029,269,2 +2020-04-06,Chester,Pennsylvania,42029,307,3 +2020-04-07,Chester,Pennsylvania,42029,335,6 +2020-04-08,Chester,Pennsylvania,42029,373,6 +2020-04-09,Chester,Pennsylvania,42029,425,7 +2020-04-10,Chester,Pennsylvania,42029,485,9 +2020-04-11,Chester,Pennsylvania,42029,532,15 +2020-04-12,Chester,Pennsylvania,42029,562,17 +2020-04-13,Chester,Pennsylvania,42029,593,17 +2020-04-14,Chester,Pennsylvania,42029,636,20 +2020-04-15,Chester,Pennsylvania,42029,675,25 +2020-04-16,Chester,Pennsylvania,42029,722,28 +2020-04-17,Chester,Pennsylvania,42029,773,30 +2020-04-18,Chester,Pennsylvania,42029,831,36 +2020-04-19,Chester,Pennsylvania,42029,877,42 +2020-04-20,Chester,Pennsylvania,42029,915,44 +2020-04-21,Chester,Pennsylvania,42029,943,65 +2020-04-22,Chester,Pennsylvania,42029,977,67 +2020-04-23,Chester,Pennsylvania,42029,1017,64 +2020-04-24,Chester,Pennsylvania,42029,1102,77 +2020-04-25,Chester,Pennsylvania,42029,1174,82 +2020-04-26,Chester,Pennsylvania,42029,1217,82 +2020-04-27,Chester,Pennsylvania,42029,1251,81 +2020-04-28,Chester,Pennsylvania,42029,1289,85 +2020-04-29,Chester,Pennsylvania,42029,1339,102 +2020-04-30,Chester,Pennsylvania,42029,1412,111 +2020-05-01,Chester,Pennsylvania,42029,1470,112 +2020-05-02,Chester,Pennsylvania,42029,1514,117 +2020-05-03,Chester,Pennsylvania,42029,1546,117 +2020-05-04,Chester,Pennsylvania,42029,1605,118 +2020-05-05,Chester,Pennsylvania,42029,1647,149 +2020-05-06,Chester,Pennsylvania,42029,1677,156 +2020-05-07,Chester,Pennsylvania,42029,1716,167 +2020-05-08,Chester,Pennsylvania,42029,1770,176 +2020-05-09,Chester,Pennsylvania,42029,1816,183 +2020-05-10,Chester,Pennsylvania,42029,1906,184 +2020-05-11,Chester,Pennsylvania,42029,1926,187 +2020-05-12,Chester,Pennsylvania,42029,1973,189 +2020-05-13,Chester,Pennsylvania,42029,1996,197 +2020-05-14,Chester,Pennsylvania,42029,2008,213 +2020-05-15,Chester,Pennsylvania,42029,2102,218 +2020-05-16,Chester,Pennsylvania,42029,2143,222 +2020-05-17,Chester,Pennsylvania,42029,2163,220 +2020-05-18,Chester,Pennsylvania,42029,2163,227 +2020-05-19,Chester,Pennsylvania,42029,2242,230 +2020-05-20,Chester,Pennsylvania,42029,2242,235 +2020-05-21,Chester,Pennsylvania,42029,2267,238 +2020-05-22,Chester,Pennsylvania,42029,2363,242 +2020-05-23,Chester,Pennsylvania,42029,2403,245 +2020-05-24,Chester,Pennsylvania,42029,2428,248 +2020-05-25,Chester,Pennsylvania,42029,2428,251 +2020-05-26,Chester,Pennsylvania,42029,2497,252 +2020-05-27,Chester,Pennsylvania,42029,2545,260 +2020-05-28,Chester,Pennsylvania,42029,2595,270 +2020-05-29,Chester,Pennsylvania,42029,2647,277 +2020-05-30,Chester,Pennsylvania,42029,2708,280 +2020-05-31,Chester,Pennsylvania,42029,2769,281 +2020-06-01,Chester,Pennsylvania,42029,2824,281 +2020-06-02,Chester,Pennsylvania,42029,2864,284 +2020-06-03,Chester,Pennsylvania,42029,2902,287 +2020-06-04,Chester,Pennsylvania,42029,2943,294 +2020-06-05,Chester,Pennsylvania,42029,2999,296 +2020-06-06,Chester,Pennsylvania,42029,3014,297 +2020-06-07,Chester,Pennsylvania,42029,3091,297 +2020-06-08,Chester,Pennsylvania,42029,3139,298 +2020-06-09,Chester,Pennsylvania,42029,3172,303 +2020-06-10,Chester,Pennsylvania,42029,3198,304 +2020-06-11,Chester,Pennsylvania,42029,3227,304 +2020-06-12,Chester,Pennsylvania,42029,3287,306 +2020-06-13,Chester,Pennsylvania,42029,3287,307 +2020-06-14,Chester,Pennsylvania,42029,3337,307 +2020-06-15,Chester,Pennsylvania,42029,3356,307 +2020-06-16,Chester,Pennsylvania,42029,3387,309 +2020-06-17,Chester,Pennsylvania,42029,3411,311 +2020-06-18,Chester,Pennsylvania,42029,3438,312 +2020-06-19,Chester,Pennsylvania,42029,3479,313 +2020-06-20,Chester,Pennsylvania,42029,3499,315 +2020-06-21,Chester,Pennsylvania,42029,3529,316 +2020-06-22,Chester,Pennsylvania,42029,3557,316 +2020-06-23,Chester,Pennsylvania,42029,3580,317 +2020-06-24,Chester,Pennsylvania,42029,3601,319 +2020-06-25,Chester,Pennsylvania,42029,3620,321 +2020-06-26,Chester,Pennsylvania,42029,3649,323 +2020-06-27,Chester,Pennsylvania,42029,3649,323 +2020-06-28,Chester,Pennsylvania,42029,3658,323 +2020-06-29,Chester,Pennsylvania,42029,3718,323 +2020-06-30,Chester,Pennsylvania,42029,3751,324 +2020-07-01,Chester,Pennsylvania,42029,3775,324 +2020-07-02,Chester,Pennsylvania,42029,3796,328 +2020-07-03,Chester,Pennsylvania,42029,3796,329 +2020-07-04,Chester,Pennsylvania,42029,3800,329 +2020-07-05,Chester,Pennsylvania,42029,3831,329 +2020-07-06,Chester,Pennsylvania,42029,3882,329 +2020-07-07,Chester,Pennsylvania,42029,3906,330 +2020-07-08,Chester,Pennsylvania,42029,3936,333 +2020-07-09,Chester,Pennsylvania,42029,3961,333 +2020-03-28,Clarion,Pennsylvania,42031,1,0 +2020-03-29,Clarion,Pennsylvania,42031,1,0 +2020-03-30,Clarion,Pennsylvania,42031,1,0 +2020-03-31,Clarion,Pennsylvania,42031,3,0 +2020-04-01,Clarion,Pennsylvania,42031,4,0 +2020-04-02,Clarion,Pennsylvania,42031,4,0 +2020-04-03,Clarion,Pennsylvania,42031,4,0 +2020-04-04,Clarion,Pennsylvania,42031,4,0 +2020-04-05,Clarion,Pennsylvania,42031,5,0 +2020-04-06,Clarion,Pennsylvania,42031,6,0 +2020-04-07,Clarion,Pennsylvania,42031,9,0 +2020-04-08,Clarion,Pennsylvania,42031,8,0 +2020-04-09,Clarion,Pennsylvania,42031,8,0 +2020-04-10,Clarion,Pennsylvania,42031,10,0 +2020-04-11,Clarion,Pennsylvania,42031,15,0 +2020-04-12,Clarion,Pennsylvania,42031,15,0 +2020-04-13,Clarion,Pennsylvania,42031,16,0 +2020-04-14,Clarion,Pennsylvania,42031,16,0 +2020-04-15,Clarion,Pennsylvania,42031,16,0 +2020-04-16,Clarion,Pennsylvania,42031,17,0 +2020-04-17,Clarion,Pennsylvania,42031,18,0 +2020-04-18,Clarion,Pennsylvania,42031,18,1 +2020-04-19,Clarion,Pennsylvania,42031,18,1 +2020-04-20,Clarion,Pennsylvania,42031,18,1 +2020-04-21,Clarion,Pennsylvania,42031,18,1 +2020-04-22,Clarion,Pennsylvania,42031,19,1 +2020-04-23,Clarion,Pennsylvania,42031,20,1 +2020-04-24,Clarion,Pennsylvania,42031,22,1 +2020-04-25,Clarion,Pennsylvania,42031,22,1 +2020-04-26,Clarion,Pennsylvania,42031,22,1 +2020-04-27,Clarion,Pennsylvania,42031,22,1 +2020-04-28,Clarion,Pennsylvania,42031,23,1 +2020-04-29,Clarion,Pennsylvania,42031,23,1 +2020-04-30,Clarion,Pennsylvania,42031,23,1 +2020-05-01,Clarion,Pennsylvania,42031,23,1 +2020-05-02,Clarion,Pennsylvania,42031,23,1 +2020-05-03,Clarion,Pennsylvania,42031,23,1 +2020-05-04,Clarion,Pennsylvania,42031,23,1 +2020-05-05,Clarion,Pennsylvania,42031,23,1 +2020-05-06,Clarion,Pennsylvania,42031,23,1 +2020-05-07,Clarion,Pennsylvania,42031,23,1 +2020-05-08,Clarion,Pennsylvania,42031,23,1 +2020-05-09,Clarion,Pennsylvania,42031,23,1 +2020-05-10,Clarion,Pennsylvania,42031,23,1 +2020-05-11,Clarion,Pennsylvania,42031,23,1 +2020-05-12,Clarion,Pennsylvania,42031,23,1 +2020-05-13,Clarion,Pennsylvania,42031,24,1 +2020-05-14,Clarion,Pennsylvania,42031,24,1 +2020-05-15,Clarion,Pennsylvania,42031,24,1 +2020-05-16,Clarion,Pennsylvania,42031,24,1 +2020-05-17,Clarion,Pennsylvania,42031,24,1 +2020-05-18,Clarion,Pennsylvania,42031,24,2 +2020-05-19,Clarion,Pennsylvania,42031,24,2 +2020-05-20,Clarion,Pennsylvania,42031,25,2 +2020-05-21,Clarion,Pennsylvania,42031,25,2 +2020-05-22,Clarion,Pennsylvania,42031,25,2 +2020-05-23,Clarion,Pennsylvania,42031,28,2 +2020-05-24,Clarion,Pennsylvania,42031,29,2 +2020-05-25,Clarion,Pennsylvania,42031,29,2 +2020-05-26,Clarion,Pennsylvania,42031,29,2 +2020-05-27,Clarion,Pennsylvania,42031,25,2 +2020-05-28,Clarion,Pennsylvania,42031,25,2 +2020-05-29,Clarion,Pennsylvania,42031,26,2 +2020-05-30,Clarion,Pennsylvania,42031,27,2 +2020-05-31,Clarion,Pennsylvania,42031,27,2 +2020-06-01,Clarion,Pennsylvania,42031,27,2 +2020-06-02,Clarion,Pennsylvania,42031,27,2 +2020-06-03,Clarion,Pennsylvania,42031,27,2 +2020-06-04,Clarion,Pennsylvania,42031,27,2 +2020-06-05,Clarion,Pennsylvania,42031,27,2 +2020-06-06,Clarion,Pennsylvania,42031,27,2 +2020-06-07,Clarion,Pennsylvania,42031,27,2 +2020-06-08,Clarion,Pennsylvania,42031,27,2 +2020-06-09,Clarion,Pennsylvania,42031,29,2 +2020-06-10,Clarion,Pennsylvania,42031,30,2 +2020-06-11,Clarion,Pennsylvania,42031,30,2 +2020-06-12,Clarion,Pennsylvania,42031,30,2 +2020-06-13,Clarion,Pennsylvania,42031,31,2 +2020-06-14,Clarion,Pennsylvania,42031,31,2 +2020-06-15,Clarion,Pennsylvania,42031,31,2 +2020-06-16,Clarion,Pennsylvania,42031,31,2 +2020-06-17,Clarion,Pennsylvania,42031,31,2 +2020-06-18,Clarion,Pennsylvania,42031,31,2 +2020-06-19,Clarion,Pennsylvania,42031,31,2 +2020-06-20,Clarion,Pennsylvania,42031,31,2 +2020-06-21,Clarion,Pennsylvania,42031,31,2 +2020-06-22,Clarion,Pennsylvania,42031,31,2 +2020-06-23,Clarion,Pennsylvania,42031,33,2 +2020-06-24,Clarion,Pennsylvania,42031,33,2 +2020-06-25,Clarion,Pennsylvania,42031,33,2 +2020-06-26,Clarion,Pennsylvania,42031,33,2 +2020-06-27,Clarion,Pennsylvania,42031,33,2 +2020-06-28,Clarion,Pennsylvania,42031,35,2 +2020-06-29,Clarion,Pennsylvania,42031,34,2 +2020-06-30,Clarion,Pennsylvania,42031,34,2 +2020-07-01,Clarion,Pennsylvania,42031,35,2 +2020-07-02,Clarion,Pennsylvania,42031,36,2 +2020-07-03,Clarion,Pennsylvania,42031,40,2 +2020-07-04,Clarion,Pennsylvania,42031,42,2 +2020-07-05,Clarion,Pennsylvania,42031,48,2 +2020-07-06,Clarion,Pennsylvania,42031,48,2 +2020-07-07,Clarion,Pennsylvania,42031,48,2 +2020-07-08,Clarion,Pennsylvania,42031,49,2 +2020-07-09,Clarion,Pennsylvania,42031,49,2 +2020-03-24,Clearfield,Pennsylvania,42033,1,0 +2020-03-25,Clearfield,Pennsylvania,42033,2,0 +2020-03-26,Clearfield,Pennsylvania,42033,2,0 +2020-03-27,Clearfield,Pennsylvania,42033,2,0 +2020-03-28,Clearfield,Pennsylvania,42033,2,0 +2020-03-29,Clearfield,Pennsylvania,42033,2,0 +2020-03-30,Clearfield,Pennsylvania,42033,4,0 +2020-03-31,Clearfield,Pennsylvania,42033,4,0 +2020-04-01,Clearfield,Pennsylvania,42033,4,0 +2020-04-02,Clearfield,Pennsylvania,42033,4,0 +2020-04-03,Clearfield,Pennsylvania,42033,5,0 +2020-04-04,Clearfield,Pennsylvania,42033,7,0 +2020-04-05,Clearfield,Pennsylvania,42033,7,0 +2020-04-06,Clearfield,Pennsylvania,42033,7,0 +2020-04-07,Clearfield,Pennsylvania,42033,7,0 +2020-04-08,Clearfield,Pennsylvania,42033,7,0 +2020-04-09,Clearfield,Pennsylvania,42033,7,0 +2020-04-10,Clearfield,Pennsylvania,42033,8,0 +2020-04-11,Clearfield,Pennsylvania,42033,9,0 +2020-04-12,Clearfield,Pennsylvania,42033,9,0 +2020-04-13,Clearfield,Pennsylvania,42033,9,0 +2020-04-14,Clearfield,Pennsylvania,42033,9,0 +2020-04-15,Clearfield,Pennsylvania,42033,9,0 +2020-04-16,Clearfield,Pennsylvania,42033,9,0 +2020-04-17,Clearfield,Pennsylvania,42033,9,0 +2020-04-18,Clearfield,Pennsylvania,42033,9,0 +2020-04-19,Clearfield,Pennsylvania,42033,11,0 +2020-04-20,Clearfield,Pennsylvania,42033,11,0 +2020-04-21,Clearfield,Pennsylvania,42033,11,0 +2020-04-22,Clearfield,Pennsylvania,42033,11,0 +2020-04-23,Clearfield,Pennsylvania,42033,11,0 +2020-04-24,Clearfield,Pennsylvania,42033,11,0 +2020-04-25,Clearfield,Pennsylvania,42033,11,0 +2020-04-26,Clearfield,Pennsylvania,42033,11,0 +2020-04-27,Clearfield,Pennsylvania,42033,11,0 +2020-04-28,Clearfield,Pennsylvania,42033,11,0 +2020-04-29,Clearfield,Pennsylvania,42033,14,0 +2020-04-30,Clearfield,Pennsylvania,42033,16,0 +2020-05-01,Clearfield,Pennsylvania,42033,16,0 +2020-05-02,Clearfield,Pennsylvania,42033,16,0 +2020-05-03,Clearfield,Pennsylvania,42033,21,0 +2020-05-04,Clearfield,Pennsylvania,42033,21,0 +2020-05-05,Clearfield,Pennsylvania,42033,21,0 +2020-05-06,Clearfield,Pennsylvania,42033,21,0 +2020-05-07,Clearfield,Pennsylvania,42033,22,0 +2020-05-08,Clearfield,Pennsylvania,42033,24,0 +2020-05-09,Clearfield,Pennsylvania,42033,24,0 +2020-05-10,Clearfield,Pennsylvania,42033,25,0 +2020-05-11,Clearfield,Pennsylvania,42033,25,0 +2020-05-12,Clearfield,Pennsylvania,42033,30,0 +2020-05-13,Clearfield,Pennsylvania,42033,31,0 +2020-05-14,Clearfield,Pennsylvania,42033,33,0 +2020-05-15,Clearfield,Pennsylvania,42033,33,0 +2020-05-16,Clearfield,Pennsylvania,42033,33,0 +2020-05-17,Clearfield,Pennsylvania,42033,33,0 +2020-05-18,Clearfield,Pennsylvania,42033,33,0 +2020-05-19,Clearfield,Pennsylvania,42033,33,0 +2020-05-20,Clearfield,Pennsylvania,42033,33,0 +2020-05-21,Clearfield,Pennsylvania,42033,33,0 +2020-05-22,Clearfield,Pennsylvania,42033,33,0 +2020-05-23,Clearfield,Pennsylvania,42033,34,0 +2020-05-24,Clearfield,Pennsylvania,42033,34,0 +2020-05-25,Clearfield,Pennsylvania,42033,34,0 +2020-05-26,Clearfield,Pennsylvania,42033,37,0 +2020-05-27,Clearfield,Pennsylvania,42033,37,0 +2020-05-28,Clearfield,Pennsylvania,42033,37,0 +2020-05-29,Clearfield,Pennsylvania,42033,38,0 +2020-05-30,Clearfield,Pennsylvania,42033,39,0 +2020-05-31,Clearfield,Pennsylvania,42033,39,0 +2020-06-01,Clearfield,Pennsylvania,42033,40,0 +2020-06-02,Clearfield,Pennsylvania,42033,42,0 +2020-06-03,Clearfield,Pennsylvania,42033,42,0 +2020-06-04,Clearfield,Pennsylvania,42033,42,0 +2020-06-05,Clearfield,Pennsylvania,42033,43,0 +2020-06-06,Clearfield,Pennsylvania,42033,44,0 +2020-06-07,Clearfield,Pennsylvania,42033,44,0 +2020-06-08,Clearfield,Pennsylvania,42033,44,0 +2020-06-09,Clearfield,Pennsylvania,42033,48,0 +2020-06-10,Clearfield,Pennsylvania,42033,48,0 +2020-06-11,Clearfield,Pennsylvania,42033,49,0 +2020-06-12,Clearfield,Pennsylvania,42033,50,0 +2020-06-13,Clearfield,Pennsylvania,42033,52,0 +2020-06-14,Clearfield,Pennsylvania,42033,55,0 +2020-06-15,Clearfield,Pennsylvania,42033,55,0 +2020-06-16,Clearfield,Pennsylvania,42033,57,0 +2020-06-17,Clearfield,Pennsylvania,42033,57,0 +2020-06-18,Clearfield,Pennsylvania,42033,61,0 +2020-06-19,Clearfield,Pennsylvania,42033,63,0 +2020-06-20,Clearfield,Pennsylvania,42033,66,0 +2020-06-21,Clearfield,Pennsylvania,42033,66,0 +2020-06-22,Clearfield,Pennsylvania,42033,67,0 +2020-06-23,Clearfield,Pennsylvania,42033,70,0 +2020-06-24,Clearfield,Pennsylvania,42033,70,0 +2020-06-25,Clearfield,Pennsylvania,42033,71,0 +2020-06-26,Clearfield,Pennsylvania,42033,72,0 +2020-06-27,Clearfield,Pennsylvania,42033,72,0 +2020-06-28,Clearfield,Pennsylvania,42033,72,0 +2020-06-29,Clearfield,Pennsylvania,42033,72,0 +2020-06-30,Clearfield,Pennsylvania,42033,72,0 +2020-07-01,Clearfield,Pennsylvania,42033,72,0 +2020-07-02,Clearfield,Pennsylvania,42033,75,0 +2020-07-03,Clearfield,Pennsylvania,42033,74,0 +2020-07-04,Clearfield,Pennsylvania,42033,74,0 +2020-07-05,Clearfield,Pennsylvania,42033,74,0 +2020-07-06,Clearfield,Pennsylvania,42033,75,0 +2020-07-07,Clearfield,Pennsylvania,42033,79,0 +2020-07-08,Clearfield,Pennsylvania,42033,82,0 +2020-07-09,Clearfield,Pennsylvania,42033,82,0 +2020-04-03,Clinton,Pennsylvania,42035,1,0 +2020-04-04,Clinton,Pennsylvania,42035,1,0 +2020-04-05,Clinton,Pennsylvania,42035,1,0 +2020-04-06,Clinton,Pennsylvania,42035,3,0 +2020-04-07,Clinton,Pennsylvania,42035,3,0 +2020-04-08,Clinton,Pennsylvania,42035,3,0 +2020-04-09,Clinton,Pennsylvania,42035,4,0 +2020-04-10,Clinton,Pennsylvania,42035,6,0 +2020-04-11,Clinton,Pennsylvania,42035,7,0 +2020-04-12,Clinton,Pennsylvania,42035,8,0 +2020-04-13,Clinton,Pennsylvania,42035,8,0 +2020-04-14,Clinton,Pennsylvania,42035,8,0 +2020-04-15,Clinton,Pennsylvania,42035,8,0 +2020-04-16,Clinton,Pennsylvania,42035,8,0 +2020-04-17,Clinton,Pennsylvania,42035,10,0 +2020-04-18,Clinton,Pennsylvania,42035,11,0 +2020-04-19,Clinton,Pennsylvania,42035,11,0 +2020-04-20,Clinton,Pennsylvania,42035,11,0 +2020-04-21,Clinton,Pennsylvania,42035,11,0 +2020-04-22,Clinton,Pennsylvania,42035,13,0 +2020-04-23,Clinton,Pennsylvania,42035,14,0 +2020-04-24,Clinton,Pennsylvania,42035,17,0 +2020-04-25,Clinton,Pennsylvania,42035,18,0 +2020-04-26,Clinton,Pennsylvania,42035,21,0 +2020-04-27,Clinton,Pennsylvania,42035,25,0 +2020-04-28,Clinton,Pennsylvania,42035,29,0 +2020-04-29,Clinton,Pennsylvania,42035,30,0 +2020-04-30,Clinton,Pennsylvania,42035,31,0 +2020-05-01,Clinton,Pennsylvania,42035,32,0 +2020-05-02,Clinton,Pennsylvania,42035,34,0 +2020-05-03,Clinton,Pennsylvania,42035,32,0 +2020-05-04,Clinton,Pennsylvania,42035,33,0 +2020-05-05,Clinton,Pennsylvania,42035,33,0 +2020-05-06,Clinton,Pennsylvania,42035,34,0 +2020-05-07,Clinton,Pennsylvania,42035,35,0 +2020-05-08,Clinton,Pennsylvania,42035,37,0 +2020-05-09,Clinton,Pennsylvania,42035,41,0 +2020-05-10,Clinton,Pennsylvania,42035,41,0 +2020-05-11,Clinton,Pennsylvania,42035,41,0 +2020-05-12,Clinton,Pennsylvania,42035,41,0 +2020-05-13,Clinton,Pennsylvania,42035,41,0 +2020-05-14,Clinton,Pennsylvania,42035,43,0 +2020-05-15,Clinton,Pennsylvania,42035,43,0 +2020-05-16,Clinton,Pennsylvania,42035,43,0 +2020-05-17,Clinton,Pennsylvania,42035,44,0 +2020-05-18,Clinton,Pennsylvania,42035,44,0 +2020-05-19,Clinton,Pennsylvania,42035,45,0 +2020-05-20,Clinton,Pennsylvania,42035,45,0 +2020-05-21,Clinton,Pennsylvania,42035,48,0 +2020-05-22,Clinton,Pennsylvania,42035,48,0 +2020-05-23,Clinton,Pennsylvania,42035,49,1 +2020-05-24,Clinton,Pennsylvania,42035,50,1 +2020-05-25,Clinton,Pennsylvania,42035,51,1 +2020-05-26,Clinton,Pennsylvania,42035,54,1 +2020-05-27,Clinton,Pennsylvania,42035,54,1 +2020-05-28,Clinton,Pennsylvania,42035,55,2 +2020-05-29,Clinton,Pennsylvania,42035,55,2 +2020-05-30,Clinton,Pennsylvania,42035,56,3 +2020-05-31,Clinton,Pennsylvania,42035,56,3 +2020-06-01,Clinton,Pennsylvania,42035,57,3 +2020-06-02,Clinton,Pennsylvania,42035,60,3 +2020-06-03,Clinton,Pennsylvania,42035,60,3 +2020-06-04,Clinton,Pennsylvania,42035,60,3 +2020-06-05,Clinton,Pennsylvania,42035,60,3 +2020-06-06,Clinton,Pennsylvania,42035,60,3 +2020-06-07,Clinton,Pennsylvania,42035,60,3 +2020-06-08,Clinton,Pennsylvania,42035,61,3 +2020-06-09,Clinton,Pennsylvania,42035,61,3 +2020-06-10,Clinton,Pennsylvania,42035,62,3 +2020-06-11,Clinton,Pennsylvania,42035,61,3 +2020-06-12,Clinton,Pennsylvania,42035,61,3 +2020-06-13,Clinton,Pennsylvania,42035,63,3 +2020-06-14,Clinton,Pennsylvania,42035,63,3 +2020-06-15,Clinton,Pennsylvania,42035,64,3 +2020-06-16,Clinton,Pennsylvania,42035,64,3 +2020-06-17,Clinton,Pennsylvania,42035,64,3 +2020-06-18,Clinton,Pennsylvania,42035,65,3 +2020-06-19,Clinton,Pennsylvania,42035,67,3 +2020-06-20,Clinton,Pennsylvania,42035,70,3 +2020-06-21,Clinton,Pennsylvania,42035,70,3 +2020-06-22,Clinton,Pennsylvania,42035,71,3 +2020-06-23,Clinton,Pennsylvania,42035,73,3 +2020-06-24,Clinton,Pennsylvania,42035,73,3 +2020-06-25,Clinton,Pennsylvania,42035,74,4 +2020-06-26,Clinton,Pennsylvania,42035,75,4 +2020-06-27,Clinton,Pennsylvania,42035,75,4 +2020-06-28,Clinton,Pennsylvania,42035,75,4 +2020-06-29,Clinton,Pennsylvania,42035,77,4 +2020-06-30,Clinton,Pennsylvania,42035,78,4 +2020-07-01,Clinton,Pennsylvania,42035,80,4 +2020-07-02,Clinton,Pennsylvania,42035,80,4 +2020-07-03,Clinton,Pennsylvania,42035,80,4 +2020-07-04,Clinton,Pennsylvania,42035,80,4 +2020-07-05,Clinton,Pennsylvania,42035,80,4 +2020-07-06,Clinton,Pennsylvania,42035,81,4 +2020-07-07,Clinton,Pennsylvania,42035,81,4 +2020-07-08,Clinton,Pennsylvania,42035,86,4 +2020-07-09,Clinton,Pennsylvania,42035,91,4 +2020-03-22,Columbia,Pennsylvania,42037,1,0 +2020-03-23,Columbia,Pennsylvania,42037,1,0 +2020-03-24,Columbia,Pennsylvania,42037,1,0 +2020-03-25,Columbia,Pennsylvania,42037,1,0 +2020-03-26,Columbia,Pennsylvania,42037,3,0 +2020-03-27,Columbia,Pennsylvania,42037,3,0 +2020-03-28,Columbia,Pennsylvania,42037,4,0 +2020-03-29,Columbia,Pennsylvania,42037,6,0 +2020-03-30,Columbia,Pennsylvania,42037,6,0 +2020-03-31,Columbia,Pennsylvania,42037,7,0 +2020-04-01,Columbia,Pennsylvania,42037,8,0 +2020-04-02,Columbia,Pennsylvania,42037,11,0 +2020-04-03,Columbia,Pennsylvania,42037,15,0 +2020-04-04,Columbia,Pennsylvania,42037,20,0 +2020-04-05,Columbia,Pennsylvania,42037,22,0 +2020-04-06,Columbia,Pennsylvania,42037,26,0 +2020-04-07,Columbia,Pennsylvania,42037,42,1 +2020-04-08,Columbia,Pennsylvania,42037,54,1 +2020-04-09,Columbia,Pennsylvania,42037,65,2 +2020-04-10,Columbia,Pennsylvania,42037,81,2 +2020-04-11,Columbia,Pennsylvania,42037,99,2 +2020-04-12,Columbia,Pennsylvania,42037,106,3 +2020-04-13,Columbia,Pennsylvania,42037,113,3 +2020-04-14,Columbia,Pennsylvania,42037,125,3 +2020-04-15,Columbia,Pennsylvania,42037,131,3 +2020-04-16,Columbia,Pennsylvania,42037,146,3 +2020-04-17,Columbia,Pennsylvania,42037,166,3 +2020-04-18,Columbia,Pennsylvania,42037,184,4 +2020-04-19,Columbia,Pennsylvania,42037,202,6 +2020-04-20,Columbia,Pennsylvania,42037,208,7 +2020-04-21,Columbia,Pennsylvania,42037,225,8 +2020-04-22,Columbia,Pennsylvania,42037,239,8 +2020-04-23,Columbia,Pennsylvania,42037,245,8 +2020-04-24,Columbia,Pennsylvania,42037,252,8 +2020-04-25,Columbia,Pennsylvania,42037,257,8 +2020-04-26,Columbia,Pennsylvania,42037,269,8 +2020-04-27,Columbia,Pennsylvania,42037,277,8 +2020-04-28,Columbia,Pennsylvania,42037,279,8 +2020-04-29,Columbia,Pennsylvania,42037,283,14 +2020-04-30,Columbia,Pennsylvania,42037,283,14 +2020-05-01,Columbia,Pennsylvania,42037,289,14 +2020-05-02,Columbia,Pennsylvania,42037,290,14 +2020-05-03,Columbia,Pennsylvania,42037,291,14 +2020-05-04,Columbia,Pennsylvania,42037,296,14 +2020-05-05,Columbia,Pennsylvania,42037,298,16 +2020-05-06,Columbia,Pennsylvania,42037,302,16 +2020-05-07,Columbia,Pennsylvania,42037,306,21 +2020-05-08,Columbia,Pennsylvania,42037,307,20 +2020-05-09,Columbia,Pennsylvania,42037,323,28 +2020-05-10,Columbia,Pennsylvania,42037,324,28 +2020-05-11,Columbia,Pennsylvania,42037,328,28 +2020-05-12,Columbia,Pennsylvania,42037,330,28 +2020-05-13,Columbia,Pennsylvania,42037,330,28 +2020-05-14,Columbia,Pennsylvania,42037,333,31 +2020-05-15,Columbia,Pennsylvania,42037,334,33 +2020-05-16,Columbia,Pennsylvania,42037,336,33 +2020-05-17,Columbia,Pennsylvania,42037,336,33 +2020-05-18,Columbia,Pennsylvania,42037,337,29 +2020-05-19,Columbia,Pennsylvania,42037,337,29 +2020-05-20,Columbia,Pennsylvania,42037,340,29 +2020-05-21,Columbia,Pennsylvania,42037,342,29 +2020-05-22,Columbia,Pennsylvania,42037,342,29 +2020-05-23,Columbia,Pennsylvania,42037,342,29 +2020-05-24,Columbia,Pennsylvania,42037,344,30 +2020-05-25,Columbia,Pennsylvania,42037,343,31 +2020-05-26,Columbia,Pennsylvania,42037,343,31 +2020-05-27,Columbia,Pennsylvania,42037,346,31 +2020-05-28,Columbia,Pennsylvania,42037,346,31 +2020-05-29,Columbia,Pennsylvania,42037,346,31 +2020-05-30,Columbia,Pennsylvania,42037,346,31 +2020-05-31,Columbia,Pennsylvania,42037,348,31 +2020-06-01,Columbia,Pennsylvania,42037,348,31 +2020-06-02,Columbia,Pennsylvania,42037,349,31 +2020-06-03,Columbia,Pennsylvania,42037,349,31 +2020-06-04,Columbia,Pennsylvania,42037,352,31 +2020-06-05,Columbia,Pennsylvania,42037,352,31 +2020-06-06,Columbia,Pennsylvania,42037,361,31 +2020-06-07,Columbia,Pennsylvania,42037,364,31 +2020-06-08,Columbia,Pennsylvania,42037,364,31 +2020-06-09,Columbia,Pennsylvania,42037,367,31 +2020-06-10,Columbia,Pennsylvania,42037,368,32 +2020-06-11,Columbia,Pennsylvania,42037,369,33 +2020-06-12,Columbia,Pennsylvania,42037,371,33 +2020-06-13,Columbia,Pennsylvania,42037,376,33 +2020-06-14,Columbia,Pennsylvania,42037,378,33 +2020-06-15,Columbia,Pennsylvania,42037,380,33 +2020-06-16,Columbia,Pennsylvania,42037,385,33 +2020-06-17,Columbia,Pennsylvania,42037,387,33 +2020-06-18,Columbia,Pennsylvania,42037,389,33 +2020-06-19,Columbia,Pennsylvania,42037,390,33 +2020-06-20,Columbia,Pennsylvania,42037,391,33 +2020-06-21,Columbia,Pennsylvania,42037,392,33 +2020-06-22,Columbia,Pennsylvania,42037,397,33 +2020-06-23,Columbia,Pennsylvania,42037,397,33 +2020-06-24,Columbia,Pennsylvania,42037,398,33 +2020-06-25,Columbia,Pennsylvania,42037,399,33 +2020-06-26,Columbia,Pennsylvania,42037,399,33 +2020-06-27,Columbia,Pennsylvania,42037,399,33 +2020-06-28,Columbia,Pennsylvania,42037,399,33 +2020-06-29,Columbia,Pennsylvania,42037,400,33 +2020-06-30,Columbia,Pennsylvania,42037,400,34 +2020-07-01,Columbia,Pennsylvania,42037,403,34 +2020-07-02,Columbia,Pennsylvania,42037,405,34 +2020-07-03,Columbia,Pennsylvania,42037,407,34 +2020-07-04,Columbia,Pennsylvania,42037,408,34 +2020-07-05,Columbia,Pennsylvania,42037,411,34 +2020-07-06,Columbia,Pennsylvania,42037,411,34 +2020-07-07,Columbia,Pennsylvania,42037,412,34 +2020-07-08,Columbia,Pennsylvania,42037,413,35 +2020-07-09,Columbia,Pennsylvania,42037,416,35 +2020-03-26,Crawford,Pennsylvania,42039,1,0 +2020-03-27,Crawford,Pennsylvania,42039,1,0 +2020-03-28,Crawford,Pennsylvania,42039,2,0 +2020-03-29,Crawford,Pennsylvania,42039,3,0 +2020-03-30,Crawford,Pennsylvania,42039,4,0 +2020-03-31,Crawford,Pennsylvania,42039,4,0 +2020-04-01,Crawford,Pennsylvania,42039,5,0 +2020-04-02,Crawford,Pennsylvania,42039,5,0 +2020-04-03,Crawford,Pennsylvania,42039,5,0 +2020-04-04,Crawford,Pennsylvania,42039,5,0 +2020-04-05,Crawford,Pennsylvania,42039,7,0 +2020-04-06,Crawford,Pennsylvania,42039,9,0 +2020-04-07,Crawford,Pennsylvania,42039,8,0 +2020-04-08,Crawford,Pennsylvania,42039,8,0 +2020-04-09,Crawford,Pennsylvania,42039,13,0 +2020-04-10,Crawford,Pennsylvania,42039,13,0 +2020-04-11,Crawford,Pennsylvania,42039,15,0 +2020-04-12,Crawford,Pennsylvania,42039,15,0 +2020-04-13,Crawford,Pennsylvania,42039,16,0 +2020-04-14,Crawford,Pennsylvania,42039,16,0 +2020-04-15,Crawford,Pennsylvania,42039,16,0 +2020-04-16,Crawford,Pennsylvania,42039,16,0 +2020-04-17,Crawford,Pennsylvania,42039,16,0 +2020-04-18,Crawford,Pennsylvania,42039,16,0 +2020-04-19,Crawford,Pennsylvania,42039,16,0 +2020-04-20,Crawford,Pennsylvania,42039,16,0 +2020-04-21,Crawford,Pennsylvania,42039,17,0 +2020-04-22,Crawford,Pennsylvania,42039,17,0 +2020-04-23,Crawford,Pennsylvania,42039,19,0 +2020-04-24,Crawford,Pennsylvania,42039,19,0 +2020-04-25,Crawford,Pennsylvania,42039,19,0 +2020-04-26,Crawford,Pennsylvania,42039,19,0 +2020-04-27,Crawford,Pennsylvania,42039,19,0 +2020-04-28,Crawford,Pennsylvania,42039,19,0 +2020-04-29,Crawford,Pennsylvania,42039,19,0 +2020-04-30,Crawford,Pennsylvania,42039,19,0 +2020-05-01,Crawford,Pennsylvania,42039,19,0 +2020-05-02,Crawford,Pennsylvania,42039,19,0 +2020-05-03,Crawford,Pennsylvania,42039,19,0 +2020-05-04,Crawford,Pennsylvania,42039,19,0 +2020-05-05,Crawford,Pennsylvania,42039,19,0 +2020-05-06,Crawford,Pennsylvania,42039,20,0 +2020-05-07,Crawford,Pennsylvania,42039,20,0 +2020-05-08,Crawford,Pennsylvania,42039,20,0 +2020-05-09,Crawford,Pennsylvania,42039,20,0 +2020-05-10,Crawford,Pennsylvania,42039,20,0 +2020-05-11,Crawford,Pennsylvania,42039,21,0 +2020-05-12,Crawford,Pennsylvania,42039,21,0 +2020-05-13,Crawford,Pennsylvania,42039,21,0 +2020-05-14,Crawford,Pennsylvania,42039,21,0 +2020-05-15,Crawford,Pennsylvania,42039,21,0 +2020-05-16,Crawford,Pennsylvania,42039,21,0 +2020-05-17,Crawford,Pennsylvania,42039,21,0 +2020-05-18,Crawford,Pennsylvania,42039,21,0 +2020-05-19,Crawford,Pennsylvania,42039,21,0 +2020-05-20,Crawford,Pennsylvania,42039,21,0 +2020-05-21,Crawford,Pennsylvania,42039,21,0 +2020-05-22,Crawford,Pennsylvania,42039,21,0 +2020-05-23,Crawford,Pennsylvania,42039,21,0 +2020-05-24,Crawford,Pennsylvania,42039,22,0 +2020-05-25,Crawford,Pennsylvania,42039,22,0 +2020-05-26,Crawford,Pennsylvania,42039,22,0 +2020-05-27,Crawford,Pennsylvania,42039,23,0 +2020-05-28,Crawford,Pennsylvania,42039,23,0 +2020-05-29,Crawford,Pennsylvania,42039,30,0 +2020-05-30,Crawford,Pennsylvania,42039,29,0 +2020-05-31,Crawford,Pennsylvania,42039,29,0 +2020-06-01,Crawford,Pennsylvania,42039,29,0 +2020-06-02,Crawford,Pennsylvania,42039,29,0 +2020-06-03,Crawford,Pennsylvania,42039,29,0 +2020-06-04,Crawford,Pennsylvania,42039,30,0 +2020-06-05,Crawford,Pennsylvania,42039,30,0 +2020-06-06,Crawford,Pennsylvania,42039,30,0 +2020-06-07,Crawford,Pennsylvania,42039,30,0 +2020-06-08,Crawford,Pennsylvania,42039,30,0 +2020-06-09,Crawford,Pennsylvania,42039,31,0 +2020-06-10,Crawford,Pennsylvania,42039,31,0 +2020-06-11,Crawford,Pennsylvania,42039,32,0 +2020-06-12,Crawford,Pennsylvania,42039,35,0 +2020-06-13,Crawford,Pennsylvania,42039,35,0 +2020-06-14,Crawford,Pennsylvania,42039,36,0 +2020-06-15,Crawford,Pennsylvania,42039,36,0 +2020-06-16,Crawford,Pennsylvania,42039,35,0 +2020-06-17,Crawford,Pennsylvania,42039,35,0 +2020-06-18,Crawford,Pennsylvania,42039,35,0 +2020-06-19,Crawford,Pennsylvania,42039,38,0 +2020-06-20,Crawford,Pennsylvania,42039,40,0 +2020-06-21,Crawford,Pennsylvania,42039,40,0 +2020-06-22,Crawford,Pennsylvania,42039,42,0 +2020-06-23,Crawford,Pennsylvania,42039,43,0 +2020-06-24,Crawford,Pennsylvania,42039,48,0 +2020-06-25,Crawford,Pennsylvania,42039,50,0 +2020-06-26,Crawford,Pennsylvania,42039,51,0 +2020-06-27,Crawford,Pennsylvania,42039,53,0 +2020-06-28,Crawford,Pennsylvania,42039,53,0 +2020-06-29,Crawford,Pennsylvania,42039,53,0 +2020-06-30,Crawford,Pennsylvania,42039,53,0 +2020-07-01,Crawford,Pennsylvania,42039,57,0 +2020-07-02,Crawford,Pennsylvania,42039,59,0 +2020-07-03,Crawford,Pennsylvania,42039,62,0 +2020-07-04,Crawford,Pennsylvania,42039,62,0 +2020-07-05,Crawford,Pennsylvania,42039,66,0 +2020-07-06,Crawford,Pennsylvania,42039,70,0 +2020-07-07,Crawford,Pennsylvania,42039,72,0 +2020-07-08,Crawford,Pennsylvania,42039,74,1 +2020-07-09,Crawford,Pennsylvania,42039,76,1 +2020-03-13,Cumberland,Pennsylvania,42041,3,0 +2020-03-14,Cumberland,Pennsylvania,42041,3,0 +2020-03-15,Cumberland,Pennsylvania,42041,5,0 +2020-03-16,Cumberland,Pennsylvania,42041,5,0 +2020-03-17,Cumberland,Pennsylvania,42041,10,0 +2020-03-18,Cumberland,Pennsylvania,42041,10,0 +2020-03-19,Cumberland,Pennsylvania,42041,11,0 +2020-03-20,Cumberland,Pennsylvania,42041,11,0 +2020-03-21,Cumberland,Pennsylvania,42041,11,0 +2020-03-22,Cumberland,Pennsylvania,42041,11,0 +2020-03-23,Cumberland,Pennsylvania,42041,12,0 +2020-03-24,Cumberland,Pennsylvania,42041,13,0 +2020-03-25,Cumberland,Pennsylvania,42041,13,0 +2020-03-26,Cumberland,Pennsylvania,42041,15,0 +2020-03-27,Cumberland,Pennsylvania,42041,16,0 +2020-03-28,Cumberland,Pennsylvania,42041,22,1 +2020-03-29,Cumberland,Pennsylvania,42041,22,1 +2020-03-30,Cumberland,Pennsylvania,42041,24,1 +2020-03-31,Cumberland,Pennsylvania,42041,36,1 +2020-04-01,Cumberland,Pennsylvania,42041,38,1 +2020-04-02,Cumberland,Pennsylvania,42041,41,1 +2020-04-03,Cumberland,Pennsylvania,42041,45,2 +2020-04-04,Cumberland,Pennsylvania,42041,54,2 +2020-04-05,Cumberland,Pennsylvania,42041,58,2 +2020-04-06,Cumberland,Pennsylvania,42041,68,2 +2020-04-07,Cumberland,Pennsylvania,42041,77,2 +2020-04-08,Cumberland,Pennsylvania,42041,84,2 +2020-04-09,Cumberland,Pennsylvania,42041,88,2 +2020-04-10,Cumberland,Pennsylvania,42041,96,2 +2020-04-11,Cumberland,Pennsylvania,42041,105,3 +2020-04-12,Cumberland,Pennsylvania,42041,110,3 +2020-04-13,Cumberland,Pennsylvania,42041,122,3 +2020-04-14,Cumberland,Pennsylvania,42041,124,4 +2020-04-15,Cumberland,Pennsylvania,42041,131,4 +2020-04-16,Cumberland,Pennsylvania,42041,137,4 +2020-04-17,Cumberland,Pennsylvania,42041,154,4 +2020-04-18,Cumberland,Pennsylvania,42041,176,4 +2020-04-19,Cumberland,Pennsylvania,42041,182,4 +2020-04-20,Cumberland,Pennsylvania,42041,186,4 +2020-04-21,Cumberland,Pennsylvania,42041,194,6 +2020-04-22,Cumberland,Pennsylvania,42041,207,6 +2020-04-23,Cumberland,Pennsylvania,42041,229,7 +2020-04-24,Cumberland,Pennsylvania,42041,240,8 +2020-04-25,Cumberland,Pennsylvania,42041,250,8 +2020-04-26,Cumberland,Pennsylvania,42041,267,8 +2020-04-27,Cumberland,Pennsylvania,42041,282,9 +2020-04-28,Cumberland,Pennsylvania,42041,296,10 +2020-04-29,Cumberland,Pennsylvania,42041,324,15 +2020-04-30,Cumberland,Pennsylvania,42041,343,16 +2020-05-01,Cumberland,Pennsylvania,42041,349,17 +2020-05-02,Cumberland,Pennsylvania,42041,365,17 +2020-05-03,Cumberland,Pennsylvania,42041,373,18 +2020-05-04,Cumberland,Pennsylvania,42041,375,18 +2020-05-05,Cumberland,Pennsylvania,42041,382,25 +2020-05-06,Cumberland,Pennsylvania,42041,386,26 +2020-05-07,Cumberland,Pennsylvania,42041,403,31 +2020-05-08,Cumberland,Pennsylvania,42041,414,31 +2020-05-09,Cumberland,Pennsylvania,42041,425,33 +2020-05-10,Cumberland,Pennsylvania,42041,434,33 +2020-05-11,Cumberland,Pennsylvania,42041,451,33 +2020-05-12,Cumberland,Pennsylvania,42041,461,33 +2020-05-13,Cumberland,Pennsylvania,42041,463,35 +2020-05-14,Cumberland,Pennsylvania,42041,477,37 +2020-05-15,Cumberland,Pennsylvania,42041,492,41 +2020-05-16,Cumberland,Pennsylvania,42041,515,48 +2020-05-17,Cumberland,Pennsylvania,42041,522,48 +2020-05-18,Cumberland,Pennsylvania,42041,525,41 +2020-05-19,Cumberland,Pennsylvania,42041,540,42 +2020-05-20,Cumberland,Pennsylvania,42041,545,43 +2020-05-21,Cumberland,Pennsylvania,42041,565,43 +2020-05-22,Cumberland,Pennsylvania,42041,572,43 +2020-05-23,Cumberland,Pennsylvania,42041,584,46 +2020-05-24,Cumberland,Pennsylvania,42041,592,46 +2020-05-25,Cumberland,Pennsylvania,42041,598,46 +2020-05-26,Cumberland,Pennsylvania,42041,602,46 +2020-05-27,Cumberland,Pennsylvania,42041,611,47 +2020-05-28,Cumberland,Pennsylvania,42041,618,47 +2020-05-29,Cumberland,Pennsylvania,42041,621,48 +2020-05-30,Cumberland,Pennsylvania,42041,626,50 +2020-05-31,Cumberland,Pennsylvania,42041,629,50 +2020-06-01,Cumberland,Pennsylvania,42041,635,52 +2020-06-02,Cumberland,Pennsylvania,42041,644,52 +2020-06-03,Cumberland,Pennsylvania,42041,654,53 +2020-06-04,Cumberland,Pennsylvania,42041,657,54 +2020-06-05,Cumberland,Pennsylvania,42041,659,56 +2020-06-06,Cumberland,Pennsylvania,42041,665,57 +2020-06-07,Cumberland,Pennsylvania,42041,669,57 +2020-06-08,Cumberland,Pennsylvania,42041,672,57 +2020-06-09,Cumberland,Pennsylvania,42041,683,58 +2020-06-10,Cumberland,Pennsylvania,42041,688,58 +2020-06-11,Cumberland,Pennsylvania,42041,692,58 +2020-06-12,Cumberland,Pennsylvania,42041,709,58 +2020-06-13,Cumberland,Pennsylvania,42041,725,59 +2020-06-14,Cumberland,Pennsylvania,42041,728,59 +2020-06-15,Cumberland,Pennsylvania,42041,738,60 +2020-06-16,Cumberland,Pennsylvania,42041,746,61 +2020-06-17,Cumberland,Pennsylvania,42041,751,61 +2020-06-18,Cumberland,Pennsylvania,42041,758,61 +2020-06-19,Cumberland,Pennsylvania,42041,768,61 +2020-06-20,Cumberland,Pennsylvania,42041,774,61 +2020-06-21,Cumberland,Pennsylvania,42041,786,61 +2020-06-22,Cumberland,Pennsylvania,42041,792,61 +2020-06-23,Cumberland,Pennsylvania,42041,801,61 +2020-06-24,Cumberland,Pennsylvania,42041,809,61 +2020-06-25,Cumberland,Pennsylvania,42041,825,63 +2020-06-26,Cumberland,Pennsylvania,42041,830,63 +2020-06-27,Cumberland,Pennsylvania,42041,833,63 +2020-06-28,Cumberland,Pennsylvania,42041,840,63 +2020-06-29,Cumberland,Pennsylvania,42041,847,63 +2020-06-30,Cumberland,Pennsylvania,42041,852,64 +2020-07-01,Cumberland,Pennsylvania,42041,856,64 +2020-07-02,Cumberland,Pennsylvania,42041,866,64 +2020-07-03,Cumberland,Pennsylvania,42041,871,64 +2020-07-04,Cumberland,Pennsylvania,42041,881,64 +2020-07-05,Cumberland,Pennsylvania,42041,890,64 +2020-07-06,Cumberland,Pennsylvania,42041,894,64 +2020-07-07,Cumberland,Pennsylvania,42041,902,64 +2020-07-08,Cumberland,Pennsylvania,42041,912,64 +2020-07-09,Cumberland,Pennsylvania,42041,922,66 +2020-03-22,Dauphin,Pennsylvania,42043,1,0 +2020-03-23,Dauphin,Pennsylvania,42043,1,0 +2020-03-24,Dauphin,Pennsylvania,42043,4,0 +2020-03-25,Dauphin,Pennsylvania,42043,10,0 +2020-03-26,Dauphin,Pennsylvania,42043,13,0 +2020-03-27,Dauphin,Pennsylvania,42043,18,0 +2020-03-28,Dauphin,Pennsylvania,42043,23,0 +2020-03-29,Dauphin,Pennsylvania,42043,35,0 +2020-03-30,Dauphin,Pennsylvania,42043,36,0 +2020-03-31,Dauphin,Pennsylvania,42043,45,1 +2020-04-01,Dauphin,Pennsylvania,42043,59,1 +2020-04-02,Dauphin,Pennsylvania,42043,67,1 +2020-04-03,Dauphin,Pennsylvania,42043,79,1 +2020-04-04,Dauphin,Pennsylvania,42043,99,1 +2020-04-05,Dauphin,Pennsylvania,42043,118,1 +2020-04-06,Dauphin,Pennsylvania,42043,132,1 +2020-04-07,Dauphin,Pennsylvania,42043,155,1 +2020-04-08,Dauphin,Pennsylvania,42043,168,2 +2020-04-09,Dauphin,Pennsylvania,42043,180,2 +2020-04-10,Dauphin,Pennsylvania,42043,199,2 +2020-04-11,Dauphin,Pennsylvania,42043,213,3 +2020-04-12,Dauphin,Pennsylvania,42043,229,4 +2020-04-13,Dauphin,Pennsylvania,42043,240,4 +2020-04-14,Dauphin,Pennsylvania,42043,249,5 +2020-04-15,Dauphin,Pennsylvania,42043,271,5 +2020-04-16,Dauphin,Pennsylvania,42043,287,7 +2020-04-17,Dauphin,Pennsylvania,42043,311,7 +2020-04-18,Dauphin,Pennsylvania,42043,343,9 +2020-04-19,Dauphin,Pennsylvania,42043,368,9 +2020-04-20,Dauphin,Pennsylvania,42043,386,9 +2020-04-21,Dauphin,Pennsylvania,42043,400,11 +2020-04-22,Dauphin,Pennsylvania,42043,422,13 +2020-04-23,Dauphin,Pennsylvania,42043,445,16 +2020-04-24,Dauphin,Pennsylvania,42043,468,19 +2020-04-25,Dauphin,Pennsylvania,42043,492,18 +2020-04-26,Dauphin,Pennsylvania,42043,519,18 +2020-04-27,Dauphin,Pennsylvania,42043,529,21 +2020-04-28,Dauphin,Pennsylvania,42043,553,20 +2020-04-29,Dauphin,Pennsylvania,42043,558,21 +2020-04-30,Dauphin,Pennsylvania,42043,584,25 +2020-05-01,Dauphin,Pennsylvania,42043,601,25 +2020-05-02,Dauphin,Pennsylvania,42043,617,25 +2020-05-03,Dauphin,Pennsylvania,42043,634,28 +2020-05-04,Dauphin,Pennsylvania,42043,652,28 +2020-05-05,Dauphin,Pennsylvania,42043,695,29 +2020-05-06,Dauphin,Pennsylvania,42043,711,29 +2020-05-07,Dauphin,Pennsylvania,42043,735,33 +2020-05-08,Dauphin,Pennsylvania,42043,764,37 +2020-05-09,Dauphin,Pennsylvania,42043,797,36 +2020-05-10,Dauphin,Pennsylvania,42043,823,36 +2020-05-11,Dauphin,Pennsylvania,42043,830,36 +2020-05-12,Dauphin,Pennsylvania,42043,851,38 +2020-05-13,Dauphin,Pennsylvania,42043,871,39 +2020-05-14,Dauphin,Pennsylvania,42043,895,40 +2020-05-15,Dauphin,Pennsylvania,42043,912,41 +2020-05-16,Dauphin,Pennsylvania,42043,938,39 +2020-05-17,Dauphin,Pennsylvania,42043,963,39 +2020-05-18,Dauphin,Pennsylvania,42043,978,50 +2020-05-19,Dauphin,Pennsylvania,42043,989,50 +2020-05-20,Dauphin,Pennsylvania,42043,1012,51 +2020-05-21,Dauphin,Pennsylvania,42043,1034,52 +2020-05-22,Dauphin,Pennsylvania,42043,1049,57 +2020-05-23,Dauphin,Pennsylvania,42043,1061,62 +2020-05-24,Dauphin,Pennsylvania,42043,1099,63 +2020-05-25,Dauphin,Pennsylvania,42043,1123,63 +2020-05-26,Dauphin,Pennsylvania,42043,1137,63 +2020-05-27,Dauphin,Pennsylvania,42043,1174,66 +2020-05-28,Dauphin,Pennsylvania,42043,1212,71 +2020-05-29,Dauphin,Pennsylvania,42043,1231,72 +2020-05-30,Dauphin,Pennsylvania,42043,1258,73 +2020-05-31,Dauphin,Pennsylvania,42043,1277,73 +2020-06-01,Dauphin,Pennsylvania,42043,1303,74 +2020-06-02,Dauphin,Pennsylvania,42043,1359,77 +2020-06-03,Dauphin,Pennsylvania,42043,1385,85 +2020-06-04,Dauphin,Pennsylvania,42043,1404,87 +2020-06-05,Dauphin,Pennsylvania,42043,1434,88 +2020-06-06,Dauphin,Pennsylvania,42043,1451,90 +2020-06-07,Dauphin,Pennsylvania,42043,1481,91 +2020-06-08,Dauphin,Pennsylvania,42043,1499,91 +2020-06-09,Dauphin,Pennsylvania,42043,1525,96 +2020-06-10,Dauphin,Pennsylvania,42043,1541,101 +2020-06-11,Dauphin,Pennsylvania,42043,1561,104 +2020-06-12,Dauphin,Pennsylvania,42043,1587,107 +2020-06-13,Dauphin,Pennsylvania,42043,1606,107 +2020-06-14,Dauphin,Pennsylvania,42043,1634,107 +2020-06-15,Dauphin,Pennsylvania,42043,1655,107 +2020-06-16,Dauphin,Pennsylvania,42043,1674,108 +2020-06-17,Dauphin,Pennsylvania,42043,1693,111 +2020-06-18,Dauphin,Pennsylvania,42043,1708,116 +2020-06-19,Dauphin,Pennsylvania,42043,1725,118 +2020-06-20,Dauphin,Pennsylvania,42043,1745,120 +2020-06-21,Dauphin,Pennsylvania,42043,1762,120 +2020-06-22,Dauphin,Pennsylvania,42043,1810,120 +2020-06-23,Dauphin,Pennsylvania,42043,1851,122 +2020-06-24,Dauphin,Pennsylvania,42043,1864,127 +2020-06-25,Dauphin,Pennsylvania,42043,1893,131 +2020-06-26,Dauphin,Pennsylvania,42043,1917,132 +2020-06-27,Dauphin,Pennsylvania,42043,1932,132 +2020-06-28,Dauphin,Pennsylvania,42043,1942,132 +2020-06-29,Dauphin,Pennsylvania,42043,1971,133 +2020-06-30,Dauphin,Pennsylvania,42043,2045,133 +2020-07-01,Dauphin,Pennsylvania,42043,2059,133 +2020-07-02,Dauphin,Pennsylvania,42043,2120,136 +2020-07-03,Dauphin,Pennsylvania,42043,2161,140 +2020-07-04,Dauphin,Pennsylvania,42043,2174,140 +2020-07-05,Dauphin,Pennsylvania,42043,2194,140 +2020-07-06,Dauphin,Pennsylvania,42043,2198,140 +2020-07-07,Dauphin,Pennsylvania,42043,2220,142 +2020-07-08,Dauphin,Pennsylvania,42043,2236,143 +2020-07-09,Dauphin,Pennsylvania,42043,2247,148 +2020-03-06,Delaware,Pennsylvania,42045,1,0 +2020-03-07,Delaware,Pennsylvania,42045,1,0 +2020-03-08,Delaware,Pennsylvania,42045,1,0 +2020-03-09,Delaware,Pennsylvania,42045,1,0 +2020-03-10,Delaware,Pennsylvania,42045,1,0 +2020-03-11,Delaware,Pennsylvania,42045,1,0 +2020-03-12,Delaware,Pennsylvania,42045,1,0 +2020-03-13,Delaware,Pennsylvania,42045,6,0 +2020-03-14,Delaware,Pennsylvania,42045,6,0 +2020-03-15,Delaware,Pennsylvania,42045,7,0 +2020-03-16,Delaware,Pennsylvania,42045,7,0 +2020-03-17,Delaware,Pennsylvania,42045,9,0 +2020-03-18,Delaware,Pennsylvania,42045,14,0 +2020-03-19,Delaware,Pennsylvania,42045,14,0 +2020-03-20,Delaware,Pennsylvania,42045,23,0 +2020-03-21,Delaware,Pennsylvania,42045,33,0 +2020-03-22,Delaware,Pennsylvania,42045,43,0 +2020-03-23,Delaware,Pennsylvania,42045,54,0 +2020-03-24,Delaware,Pennsylvania,42045,84,0 +2020-03-25,Delaware,Pennsylvania,42045,101,0 +2020-03-26,Delaware,Pennsylvania,42045,156,1 +2020-03-27,Delaware,Pennsylvania,42045,185,3 +2020-03-28,Delaware,Pennsylvania,42045,226,4 +2020-03-29,Delaware,Pennsylvania,42045,276,4 +2020-03-30,Delaware,Pennsylvania,42045,303,4 +2020-03-31,Delaware,Pennsylvania,42045,338,6 +2020-04-01,Delaware,Pennsylvania,42045,390,7 +2020-04-02,Delaware,Pennsylvania,42045,470,8 +2020-04-03,Delaware,Pennsylvania,42045,542,10 +2020-04-04,Delaware,Pennsylvania,42045,616,13 +2020-04-05,Delaware,Pennsylvania,42045,708,14 +2020-04-06,Delaware,Pennsylvania,42045,822,15 +2020-04-07,Delaware,Pennsylvania,42045,898,20 +2020-04-08,Delaware,Pennsylvania,42045,1034,23 +2020-04-09,Delaware,Pennsylvania,42045,1222,26 +2020-04-10,Delaware,Pennsylvania,42045,1377,30 +2020-04-11,Delaware,Pennsylvania,42045,1510,39 +2020-04-12,Delaware,Pennsylvania,42045,1594,39 +2020-04-13,Delaware,Pennsylvania,42045,1712,40 +2020-04-14,Delaware,Pennsylvania,42045,1851,46 +2020-04-15,Delaware,Pennsylvania,42045,1935,60 +2020-04-16,Delaware,Pennsylvania,42045,2055,71 +2020-04-17,Delaware,Pennsylvania,42045,2281,74 +2020-04-18,Delaware,Pennsylvania,42045,2372,78 +2020-04-19,Delaware,Pennsylvania,42045,2460,91 +2020-04-20,Delaware,Pennsylvania,42045,2545,100 +2020-04-21,Delaware,Pennsylvania,42045,2698,118 +2020-04-22,Delaware,Pennsylvania,42045,2798,124 +2020-04-23,Delaware,Pennsylvania,42045,2963,124 +2020-04-24,Delaware,Pennsylvania,42045,3106,131 +2020-04-25,Delaware,Pennsylvania,42045,3213,142 +2020-04-26,Delaware,Pennsylvania,42045,3333,143 +2020-04-27,Delaware,Pennsylvania,42045,3405,145 +2020-04-28,Delaware,Pennsylvania,42045,3514,164 +2020-04-29,Delaware,Pennsylvania,42045,3672,224 +2020-04-30,Delaware,Pennsylvania,42045,3747,235 +2020-05-01,Delaware,Pennsylvania,42045,3895,240 +2020-05-02,Delaware,Pennsylvania,42045,4053,255 +2020-05-03,Delaware,Pennsylvania,42045,4173,255 +2020-05-04,Delaware,Pennsylvania,42045,4256,258 +2020-05-05,Delaware,Pennsylvania,42045,4326,320 +2020-05-06,Delaware,Pennsylvania,42045,4430,326 +2020-05-07,Delaware,Pennsylvania,42045,4554,376 +2020-05-08,Delaware,Pennsylvania,42045,4739,382 +2020-05-09,Delaware,Pennsylvania,42045,4894,394 +2020-05-10,Delaware,Pennsylvania,42045,5032,395 +2020-05-11,Delaware,Pennsylvania,42045,5101,399 +2020-05-12,Delaware,Pennsylvania,42045,5136,405 +2020-05-13,Delaware,Pennsylvania,42045,5208,419 +2020-05-14,Delaware,Pennsylvania,42045,5305,448 +2020-05-15,Delaware,Pennsylvania,42045,5409,466 +2020-05-16,Delaware,Pennsylvania,42045,5555,478 +2020-05-17,Delaware,Pennsylvania,42045,5619,478 +2020-05-18,Delaware,Pennsylvania,42045,5689,478 +2020-05-19,Delaware,Pennsylvania,42045,5807,491 +2020-05-20,Delaware,Pennsylvania,42045,5844,491 +2020-05-21,Delaware,Pennsylvania,42045,5969,491 +2020-05-22,Delaware,Pennsylvania,42045,6112,518 +2020-05-23,Delaware,Pennsylvania,42045,6168,521 +2020-05-24,Delaware,Pennsylvania,42045,6234,521 +2020-05-25,Delaware,Pennsylvania,42045,6234,524 +2020-05-26,Delaware,Pennsylvania,42045,6295,524 +2020-05-27,Delaware,Pennsylvania,42045,6341,536 +2020-05-28,Delaware,Pennsylvania,42045,6389,544 +2020-05-29,Delaware,Pennsylvania,42045,6428,550 +2020-05-30,Delaware,Pennsylvania,42045,6473,558 +2020-05-31,Delaware,Pennsylvania,42045,6510,558 +2020-06-01,Delaware,Pennsylvania,42045,6529,559 +2020-06-02,Delaware,Pennsylvania,42045,6545,567 +2020-06-03,Delaware,Pennsylvania,42045,6600,576 +2020-06-04,Delaware,Pennsylvania,42045,6639,614 +2020-06-05,Delaware,Pennsylvania,42045,6661,645 +2020-06-06,Delaware,Pennsylvania,42045,6661,651 +2020-06-07,Delaware,Pennsylvania,42045,6743,651 +2020-06-08,Delaware,Pennsylvania,42045,6754,651 +2020-06-09,Delaware,Pennsylvania,42045,6789,652 +2020-06-10,Delaware,Pennsylvania,42045,6811,662 +2020-06-11,Delaware,Pennsylvania,42045,6863,662 +2020-06-12,Delaware,Pennsylvania,42045,6894,664 +2020-06-13,Delaware,Pennsylvania,42045,6894,664 +2020-06-14,Delaware,Pennsylvania,42045,6944,671 +2020-06-15,Delaware,Pennsylvania,42045,6978,671 +2020-06-16,Delaware,Pennsylvania,42045,6991,674 +2020-06-17,Delaware,Pennsylvania,42045,7021,678 +2020-06-18,Delaware,Pennsylvania,42045,7037,680 +2020-06-19,Delaware,Pennsylvania,42045,7050,681 +2020-06-20,Delaware,Pennsylvania,42045,7069,683 +2020-06-21,Delaware,Pennsylvania,42045,7084,684 +2020-06-22,Delaware,Pennsylvania,42045,7097,684 +2020-06-23,Delaware,Pennsylvania,42045,7097,684 +2020-06-24,Delaware,Pennsylvania,42045,7127,693 +2020-06-25,Delaware,Pennsylvania,42045,7142,693 +2020-06-26,Delaware,Pennsylvania,42045,7165,696 +2020-06-27,Delaware,Pennsylvania,42045,7165,696 +2020-06-28,Delaware,Pennsylvania,42045,7165,696 +2020-06-29,Delaware,Pennsylvania,42045,7215,696 +2020-06-30,Delaware,Pennsylvania,42045,7248,696 +2020-07-01,Delaware,Pennsylvania,42045,7275,701 +2020-07-02,Delaware,Pennsylvania,42045,7299,702 +2020-07-03,Delaware,Pennsylvania,42045,7299,702 +2020-07-04,Delaware,Pennsylvania,42045,7303,702 +2020-07-05,Delaware,Pennsylvania,42045,7334,702 +2020-07-06,Delaware,Pennsylvania,42045,7393,702 +2020-07-07,Delaware,Pennsylvania,42045,7429,704 +2020-07-08,Delaware,Pennsylvania,42045,7475,706 +2020-07-09,Delaware,Pennsylvania,42045,7496,706 +2020-04-07,Elk,Pennsylvania,42047,2,0 +2020-04-08,Elk,Pennsylvania,42047,2,0 +2020-04-09,Elk,Pennsylvania,42047,2,0 +2020-04-10,Elk,Pennsylvania,42047,2,0 +2020-04-11,Elk,Pennsylvania,42047,2,0 +2020-04-12,Elk,Pennsylvania,42047,2,0 +2020-04-13,Elk,Pennsylvania,42047,2,0 +2020-04-14,Elk,Pennsylvania,42047,2,0 +2020-04-15,Elk,Pennsylvania,42047,2,0 +2020-04-16,Elk,Pennsylvania,42047,2,0 +2020-04-17,Elk,Pennsylvania,42047,2,0 +2020-04-18,Elk,Pennsylvania,42047,2,0 +2020-04-19,Elk,Pennsylvania,42047,2,0 +2020-04-20,Elk,Pennsylvania,42047,2,0 +2020-04-21,Elk,Pennsylvania,42047,2,0 +2020-04-22,Elk,Pennsylvania,42047,2,0 +2020-04-23,Elk,Pennsylvania,42047,2,0 +2020-04-24,Elk,Pennsylvania,42047,2,0 +2020-04-25,Elk,Pennsylvania,42047,2,0 +2020-04-26,Elk,Pennsylvania,42047,3,0 +2020-04-27,Elk,Pennsylvania,42047,3,0 +2020-04-28,Elk,Pennsylvania,42047,3,0 +2020-04-29,Elk,Pennsylvania,42047,3,0 +2020-04-30,Elk,Pennsylvania,42047,3,0 +2020-05-01,Elk,Pennsylvania,42047,3,0 +2020-05-02,Elk,Pennsylvania,42047,4,0 +2020-05-03,Elk,Pennsylvania,42047,4,0 +2020-05-04,Elk,Pennsylvania,42047,4,0 +2020-05-05,Elk,Pennsylvania,42047,4,0 +2020-05-06,Elk,Pennsylvania,42047,4,0 +2020-05-07,Elk,Pennsylvania,42047,5,1 +2020-05-08,Elk,Pennsylvania,42047,5,1 +2020-05-09,Elk,Pennsylvania,42047,5,1 +2020-05-10,Elk,Pennsylvania,42047,5,1 +2020-05-11,Elk,Pennsylvania,42047,5,1 +2020-05-12,Elk,Pennsylvania,42047,5,1 +2020-05-13,Elk,Pennsylvania,42047,6,1 +2020-05-14,Elk,Pennsylvania,42047,6,1 +2020-05-15,Elk,Pennsylvania,42047,6,1 +2020-05-16,Elk,Pennsylvania,42047,6,1 +2020-05-17,Elk,Pennsylvania,42047,6,1 +2020-05-18,Elk,Pennsylvania,42047,6,0 +2020-05-19,Elk,Pennsylvania,42047,6,0 +2020-05-20,Elk,Pennsylvania,42047,6,0 +2020-05-21,Elk,Pennsylvania,42047,6,0 +2020-05-22,Elk,Pennsylvania,42047,6,0 +2020-05-23,Elk,Pennsylvania,42047,6,0 +2020-05-24,Elk,Pennsylvania,42047,6,0 +2020-05-25,Elk,Pennsylvania,42047,6,0 +2020-05-26,Elk,Pennsylvania,42047,6,0 +2020-05-27,Elk,Pennsylvania,42047,6,0 +2020-05-28,Elk,Pennsylvania,42047,6,0 +2020-05-29,Elk,Pennsylvania,42047,6,0 +2020-05-30,Elk,Pennsylvania,42047,6,0 +2020-05-31,Elk,Pennsylvania,42047,6,0 +2020-06-01,Elk,Pennsylvania,42047,6,0 +2020-06-02,Elk,Pennsylvania,42047,6,0 +2020-06-03,Elk,Pennsylvania,42047,6,0 +2020-06-04,Elk,Pennsylvania,42047,6,0 +2020-06-05,Elk,Pennsylvania,42047,6,0 +2020-06-06,Elk,Pennsylvania,42047,6,0 +2020-06-07,Elk,Pennsylvania,42047,6,0 +2020-06-08,Elk,Pennsylvania,42047,6,0 +2020-06-09,Elk,Pennsylvania,42047,6,0 +2020-06-10,Elk,Pennsylvania,42047,6,0 +2020-06-11,Elk,Pennsylvania,42047,6,0 +2020-06-12,Elk,Pennsylvania,42047,6,0 +2020-06-13,Elk,Pennsylvania,42047,6,0 +2020-06-14,Elk,Pennsylvania,42047,6,0 +2020-06-15,Elk,Pennsylvania,42047,6,0 +2020-06-16,Elk,Pennsylvania,42047,6,0 +2020-06-17,Elk,Pennsylvania,42047,6,0 +2020-06-18,Elk,Pennsylvania,42047,6,0 +2020-06-19,Elk,Pennsylvania,42047,8,0 +2020-06-20,Elk,Pennsylvania,42047,8,0 +2020-06-21,Elk,Pennsylvania,42047,8,0 +2020-06-22,Elk,Pennsylvania,42047,9,0 +2020-06-23,Elk,Pennsylvania,42047,9,0 +2020-06-24,Elk,Pennsylvania,42047,10,0 +2020-06-25,Elk,Pennsylvania,42047,10,0 +2020-06-26,Elk,Pennsylvania,42047,12,0 +2020-06-27,Elk,Pennsylvania,42047,12,0 +2020-06-28,Elk,Pennsylvania,42047,13,0 +2020-06-29,Elk,Pennsylvania,42047,13,0 +2020-06-30,Elk,Pennsylvania,42047,15,0 +2020-07-01,Elk,Pennsylvania,42047,15,0 +2020-07-02,Elk,Pennsylvania,42047,15,0 +2020-07-03,Elk,Pennsylvania,42047,16,0 +2020-07-04,Elk,Pennsylvania,42047,19,0 +2020-07-05,Elk,Pennsylvania,42047,20,0 +2020-07-06,Elk,Pennsylvania,42047,20,0 +2020-07-07,Elk,Pennsylvania,42047,24,0 +2020-07-08,Elk,Pennsylvania,42047,28,0 +2020-07-09,Elk,Pennsylvania,42047,29,0 +2020-03-20,Erie,Pennsylvania,42049,1,0 +2020-03-21,Erie,Pennsylvania,42049,1,0 +2020-03-22,Erie,Pennsylvania,42049,2,0 +2020-03-23,Erie,Pennsylvania,42049,3,0 +2020-03-24,Erie,Pennsylvania,42049,4,0 +2020-03-25,Erie,Pennsylvania,42049,4,0 +2020-03-26,Erie,Pennsylvania,42049,4,0 +2020-03-27,Erie,Pennsylvania,42049,7,0 +2020-03-28,Erie,Pennsylvania,42049,7,0 +2020-03-29,Erie,Pennsylvania,42049,7,0 +2020-03-30,Erie,Pennsylvania,42049,13,0 +2020-03-31,Erie,Pennsylvania,42049,14,0 +2020-04-01,Erie,Pennsylvania,42049,15,0 +2020-04-02,Erie,Pennsylvania,42049,16,0 +2020-04-03,Erie,Pennsylvania,42049,17,0 +2020-04-04,Erie,Pennsylvania,42049,19,1 +2020-04-05,Erie,Pennsylvania,42049,19,1 +2020-04-06,Erie,Pennsylvania,42049,20,1 +2020-04-07,Erie,Pennsylvania,42049,28,1 +2020-04-08,Erie,Pennsylvania,42049,29,1 +2020-04-09,Erie,Pennsylvania,42049,32,1 +2020-04-10,Erie,Pennsylvania,42049,36,1 +2020-04-11,Erie,Pennsylvania,42049,39,1 +2020-04-12,Erie,Pennsylvania,42049,39,1 +2020-04-13,Erie,Pennsylvania,42049,39,1 +2020-04-14,Erie,Pennsylvania,42049,41,1 +2020-04-15,Erie,Pennsylvania,42049,42,1 +2020-04-16,Erie,Pennsylvania,42049,46,1 +2020-04-17,Erie,Pennsylvania,42049,49,1 +2020-04-18,Erie,Pennsylvania,42049,58,1 +2020-04-19,Erie,Pennsylvania,42049,58,1 +2020-04-20,Erie,Pennsylvania,42049,60,1 +2020-04-21,Erie,Pennsylvania,42049,60,1 +2020-04-22,Erie,Pennsylvania,42049,62,1 +2020-04-23,Erie,Pennsylvania,42049,68,1 +2020-04-24,Erie,Pennsylvania,42049,72,1 +2020-04-25,Erie,Pennsylvania,42049,79,1 +2020-04-26,Erie,Pennsylvania,42049,77,1 +2020-04-27,Erie,Pennsylvania,42049,81,1 +2020-04-28,Erie,Pennsylvania,42049,86,2 +2020-04-29,Erie,Pennsylvania,42049,87,2 +2020-04-30,Erie,Pennsylvania,42049,87,2 +2020-05-01,Erie,Pennsylvania,42049,87,2 +2020-05-02,Erie,Pennsylvania,42049,90,2 +2020-05-03,Erie,Pennsylvania,42049,91,2 +2020-05-04,Erie,Pennsylvania,42049,91,2 +2020-05-05,Erie,Pennsylvania,42049,93,2 +2020-05-06,Erie,Pennsylvania,42049,95,2 +2020-05-07,Erie,Pennsylvania,42049,101,2 +2020-05-08,Erie,Pennsylvania,42049,113,2 +2020-05-09,Erie,Pennsylvania,42049,120,2 +2020-05-10,Erie,Pennsylvania,42049,124,2 +2020-05-11,Erie,Pennsylvania,42049,123,2 +2020-05-12,Erie,Pennsylvania,42049,124,2 +2020-05-13,Erie,Pennsylvania,42049,125,2 +2020-05-14,Erie,Pennsylvania,42049,127,3 +2020-05-15,Erie,Pennsylvania,42049,129,3 +2020-05-16,Erie,Pennsylvania,42049,134,3 +2020-05-17,Erie,Pennsylvania,42049,137,3 +2020-05-18,Erie,Pennsylvania,42049,145,4 +2020-05-19,Erie,Pennsylvania,42049,147,4 +2020-05-20,Erie,Pennsylvania,42049,163,4 +2020-05-21,Erie,Pennsylvania,42049,177,4 +2020-05-22,Erie,Pennsylvania,42049,190,4 +2020-05-23,Erie,Pennsylvania,42049,210,4 +2020-05-24,Erie,Pennsylvania,42049,209,4 +2020-05-25,Erie,Pennsylvania,42049,217,4 +2020-05-26,Erie,Pennsylvania,42049,223,4 +2020-05-27,Erie,Pennsylvania,42049,235,4 +2020-05-28,Erie,Pennsylvania,42049,242,4 +2020-05-29,Erie,Pennsylvania,42049,253,4 +2020-05-30,Erie,Pennsylvania,42049,274,4 +2020-05-31,Erie,Pennsylvania,42049,279,4 +2020-06-01,Erie,Pennsylvania,42049,295,4 +2020-06-02,Erie,Pennsylvania,42049,307,4 +2020-06-03,Erie,Pennsylvania,42049,314,5 +2020-06-04,Erie,Pennsylvania,42049,327,5 +2020-06-05,Erie,Pennsylvania,42049,332,5 +2020-06-06,Erie,Pennsylvania,42049,363,5 +2020-06-07,Erie,Pennsylvania,42049,367,5 +2020-06-08,Erie,Pennsylvania,42049,378,6 +2020-06-09,Erie,Pennsylvania,42049,396,7 +2020-06-10,Erie,Pennsylvania,42049,408,7 +2020-06-11,Erie,Pennsylvania,42049,427,7 +2020-06-12,Erie,Pennsylvania,42049,439,7 +2020-06-13,Erie,Pennsylvania,42049,451,7 +2020-06-14,Erie,Pennsylvania,42049,459,7 +2020-06-15,Erie,Pennsylvania,42049,468,8 +2020-06-16,Erie,Pennsylvania,42049,472,8 +2020-06-17,Erie,Pennsylvania,42049,478,9 +2020-06-18,Erie,Pennsylvania,42049,497,9 +2020-06-19,Erie,Pennsylvania,42049,515,9 +2020-06-20,Erie,Pennsylvania,42049,524,9 +2020-06-21,Erie,Pennsylvania,42049,532,9 +2020-06-22,Erie,Pennsylvania,42049,535,9 +2020-06-23,Erie,Pennsylvania,42049,542,9 +2020-06-24,Erie,Pennsylvania,42049,551,9 +2020-06-25,Erie,Pennsylvania,42049,559,9 +2020-06-26,Erie,Pennsylvania,42049,572,10 +2020-06-27,Erie,Pennsylvania,42049,582,13 +2020-06-28,Erie,Pennsylvania,42049,589,13 +2020-06-29,Erie,Pennsylvania,42049,595,13 +2020-06-30,Erie,Pennsylvania,42049,607,13 +2020-07-01,Erie,Pennsylvania,42049,620,13 +2020-07-02,Erie,Pennsylvania,42049,626,13 +2020-07-03,Erie,Pennsylvania,42049,642,13 +2020-07-04,Erie,Pennsylvania,42049,646,13 +2020-07-05,Erie,Pennsylvania,42049,650,13 +2020-07-06,Erie,Pennsylvania,42049,661,13 +2020-07-07,Erie,Pennsylvania,42049,679,13 +2020-07-08,Erie,Pennsylvania,42049,691,13 +2020-07-09,Erie,Pennsylvania,42049,699,13 +2020-03-22,Fayette,Pennsylvania,42051,1,0 +2020-03-23,Fayette,Pennsylvania,42051,1,0 +2020-03-24,Fayette,Pennsylvania,42051,2,0 +2020-03-25,Fayette,Pennsylvania,42051,4,0 +2020-03-26,Fayette,Pennsylvania,42051,8,0 +2020-03-27,Fayette,Pennsylvania,42051,9,0 +2020-03-28,Fayette,Pennsylvania,42051,10,0 +2020-03-29,Fayette,Pennsylvania,42051,10,0 +2020-03-30,Fayette,Pennsylvania,42051,11,0 +2020-03-31,Fayette,Pennsylvania,42051,14,0 +2020-04-01,Fayette,Pennsylvania,42051,14,1 +2020-04-02,Fayette,Pennsylvania,42051,15,1 +2020-04-03,Fayette,Pennsylvania,42051,20,1 +2020-04-04,Fayette,Pennsylvania,42051,23,1 +2020-04-05,Fayette,Pennsylvania,42051,27,1 +2020-04-06,Fayette,Pennsylvania,42051,29,1 +2020-04-07,Fayette,Pennsylvania,42051,32,1 +2020-04-08,Fayette,Pennsylvania,42051,35,1 +2020-04-09,Fayette,Pennsylvania,42051,45,1 +2020-04-10,Fayette,Pennsylvania,42051,49,1 +2020-04-11,Fayette,Pennsylvania,42051,50,3 +2020-04-12,Fayette,Pennsylvania,42051,54,3 +2020-04-13,Fayette,Pennsylvania,42051,57,3 +2020-04-14,Fayette,Pennsylvania,42051,58,3 +2020-04-15,Fayette,Pennsylvania,42051,58,3 +2020-04-16,Fayette,Pennsylvania,42051,60,3 +2020-04-17,Fayette,Pennsylvania,42051,66,3 +2020-04-18,Fayette,Pennsylvania,42051,66,3 +2020-04-19,Fayette,Pennsylvania,42051,66,3 +2020-04-20,Fayette,Pennsylvania,42051,67,3 +2020-04-21,Fayette,Pennsylvania,42051,69,3 +2020-04-22,Fayette,Pennsylvania,42051,70,3 +2020-04-23,Fayette,Pennsylvania,42051,71,3 +2020-04-24,Fayette,Pennsylvania,42051,75,4 +2020-04-25,Fayette,Pennsylvania,42051,79,4 +2020-04-26,Fayette,Pennsylvania,42051,79,4 +2020-04-27,Fayette,Pennsylvania,42051,79,4 +2020-04-28,Fayette,Pennsylvania,42051,79,4 +2020-04-29,Fayette,Pennsylvania,42051,80,4 +2020-04-30,Fayette,Pennsylvania,42051,80,4 +2020-05-01,Fayette,Pennsylvania,42051,81,4 +2020-05-02,Fayette,Pennsylvania,42051,82,4 +2020-05-03,Fayette,Pennsylvania,42051,83,4 +2020-05-04,Fayette,Pennsylvania,42051,83,4 +2020-05-05,Fayette,Pennsylvania,42051,84,4 +2020-05-06,Fayette,Pennsylvania,42051,84,4 +2020-05-07,Fayette,Pennsylvania,42051,84,4 +2020-05-08,Fayette,Pennsylvania,42051,84,4 +2020-05-09,Fayette,Pennsylvania,42051,85,4 +2020-05-10,Fayette,Pennsylvania,42051,85,4 +2020-05-11,Fayette,Pennsylvania,42051,85,4 +2020-05-12,Fayette,Pennsylvania,42051,85,4 +2020-05-13,Fayette,Pennsylvania,42051,85,4 +2020-05-14,Fayette,Pennsylvania,42051,87,4 +2020-05-15,Fayette,Pennsylvania,42051,87,4 +2020-05-16,Fayette,Pennsylvania,42051,88,4 +2020-05-17,Fayette,Pennsylvania,42051,89,4 +2020-05-18,Fayette,Pennsylvania,42051,91,4 +2020-05-19,Fayette,Pennsylvania,42051,92,4 +2020-05-20,Fayette,Pennsylvania,42051,93,4 +2020-05-21,Fayette,Pennsylvania,42051,93,4 +2020-05-22,Fayette,Pennsylvania,42051,93,4 +2020-05-23,Fayette,Pennsylvania,42051,94,4 +2020-05-24,Fayette,Pennsylvania,42051,94,4 +2020-05-25,Fayette,Pennsylvania,42051,94,4 +2020-05-26,Fayette,Pennsylvania,42051,95,4 +2020-05-27,Fayette,Pennsylvania,42051,95,4 +2020-05-28,Fayette,Pennsylvania,42051,95,4 +2020-05-29,Fayette,Pennsylvania,42051,95,4 +2020-05-30,Fayette,Pennsylvania,42051,95,4 +2020-05-31,Fayette,Pennsylvania,42051,95,4 +2020-06-01,Fayette,Pennsylvania,42051,95,4 +2020-06-02,Fayette,Pennsylvania,42051,95,4 +2020-06-03,Fayette,Pennsylvania,42051,95,4 +2020-06-04,Fayette,Pennsylvania,42051,95,4 +2020-06-05,Fayette,Pennsylvania,42051,95,4 +2020-06-06,Fayette,Pennsylvania,42051,95,4 +2020-06-07,Fayette,Pennsylvania,42051,95,4 +2020-06-08,Fayette,Pennsylvania,42051,95,4 +2020-06-09,Fayette,Pennsylvania,42051,95,4 +2020-06-10,Fayette,Pennsylvania,42051,95,4 +2020-06-11,Fayette,Pennsylvania,42051,96,4 +2020-06-12,Fayette,Pennsylvania,42051,95,4 +2020-06-13,Fayette,Pennsylvania,42051,95,4 +2020-06-14,Fayette,Pennsylvania,42051,95,4 +2020-06-15,Fayette,Pennsylvania,42051,95,4 +2020-06-16,Fayette,Pennsylvania,42051,95,4 +2020-06-17,Fayette,Pennsylvania,42051,98,4 +2020-06-18,Fayette,Pennsylvania,42051,100,4 +2020-06-19,Fayette,Pennsylvania,42051,103,4 +2020-06-20,Fayette,Pennsylvania,42051,103,4 +2020-06-21,Fayette,Pennsylvania,42051,104,4 +2020-06-22,Fayette,Pennsylvania,42051,104,4 +2020-06-23,Fayette,Pennsylvania,42051,104,4 +2020-06-24,Fayette,Pennsylvania,42051,104,4 +2020-06-25,Fayette,Pennsylvania,42051,104,4 +2020-06-26,Fayette,Pennsylvania,42051,106,4 +2020-06-27,Fayette,Pennsylvania,42051,110,4 +2020-06-28,Fayette,Pennsylvania,42051,111,4 +2020-06-29,Fayette,Pennsylvania,42051,112,4 +2020-06-30,Fayette,Pennsylvania,42051,116,4 +2020-07-01,Fayette,Pennsylvania,42051,117,4 +2020-07-02,Fayette,Pennsylvania,42051,127,4 +2020-07-03,Fayette,Pennsylvania,42051,132,4 +2020-07-04,Fayette,Pennsylvania,42051,135,4 +2020-07-05,Fayette,Pennsylvania,42051,140,4 +2020-07-06,Fayette,Pennsylvania,42051,147,4 +2020-07-07,Fayette,Pennsylvania,42051,149,4 +2020-07-08,Fayette,Pennsylvania,42051,160,4 +2020-07-09,Fayette,Pennsylvania,42051,163,4 +2020-04-02,Forest,Pennsylvania,42053,1,0 +2020-04-03,Forest,Pennsylvania,42053,1,0 +2020-04-04,Forest,Pennsylvania,42053,2,0 +2020-04-05,Forest,Pennsylvania,42053,3,0 +2020-04-06,Forest,Pennsylvania,42053,4,0 +2020-04-07,Forest,Pennsylvania,42053,5,0 +2020-04-08,Forest,Pennsylvania,42053,5,0 +2020-04-09,Forest,Pennsylvania,42053,5,0 +2020-04-10,Forest,Pennsylvania,42053,5,0 +2020-04-11,Forest,Pennsylvania,42053,5,0 +2020-04-12,Forest,Pennsylvania,42053,5,0 +2020-04-13,Forest,Pennsylvania,42053,5,0 +2020-04-14,Forest,Pennsylvania,42053,5,0 +2020-04-15,Forest,Pennsylvania,42053,5,0 +2020-04-16,Forest,Pennsylvania,42053,7,0 +2020-04-17,Forest,Pennsylvania,42053,7,0 +2020-04-18,Forest,Pennsylvania,42053,7,0 +2020-04-19,Forest,Pennsylvania,42053,7,0 +2020-04-20,Forest,Pennsylvania,42053,7,0 +2020-04-21,Forest,Pennsylvania,42053,7,0 +2020-04-22,Forest,Pennsylvania,42053,7,0 +2020-04-23,Forest,Pennsylvania,42053,7,0 +2020-04-24,Forest,Pennsylvania,42053,7,0 +2020-04-25,Forest,Pennsylvania,42053,7,0 +2020-04-26,Forest,Pennsylvania,42053,7,0 +2020-04-27,Forest,Pennsylvania,42053,7,0 +2020-04-28,Forest,Pennsylvania,42053,7,0 +2020-04-29,Forest,Pennsylvania,42053,7,0 +2020-04-30,Forest,Pennsylvania,42053,7,0 +2020-05-01,Forest,Pennsylvania,42053,7,0 +2020-05-02,Forest,Pennsylvania,42053,7,0 +2020-05-03,Forest,Pennsylvania,42053,7,0 +2020-05-04,Forest,Pennsylvania,42053,7,0 +2020-05-05,Forest,Pennsylvania,42053,7,0 +2020-05-06,Forest,Pennsylvania,42053,7,0 +2020-05-07,Forest,Pennsylvania,42053,7,0 +2020-05-08,Forest,Pennsylvania,42053,7,0 +2020-05-09,Forest,Pennsylvania,42053,7,0 +2020-05-10,Forest,Pennsylvania,42053,7,0 +2020-05-11,Forest,Pennsylvania,42053,7,0 +2020-05-12,Forest,Pennsylvania,42053,7,0 +2020-05-13,Forest,Pennsylvania,42053,7,0 +2020-05-14,Forest,Pennsylvania,42053,7,0 +2020-05-15,Forest,Pennsylvania,42053,7,0 +2020-05-16,Forest,Pennsylvania,42053,7,0 +2020-05-17,Forest,Pennsylvania,42053,7,0 +2020-05-18,Forest,Pennsylvania,42053,7,0 +2020-05-19,Forest,Pennsylvania,42053,7,0 +2020-05-20,Forest,Pennsylvania,42053,7,0 +2020-05-21,Forest,Pennsylvania,42053,7,0 +2020-05-22,Forest,Pennsylvania,42053,7,0 +2020-05-23,Forest,Pennsylvania,42053,7,0 +2020-05-24,Forest,Pennsylvania,42053,7,0 +2020-05-25,Forest,Pennsylvania,42053,7,0 +2020-05-26,Forest,Pennsylvania,42053,7,0 +2020-05-27,Forest,Pennsylvania,42053,7,0 +2020-05-28,Forest,Pennsylvania,42053,7,0 +2020-05-29,Forest,Pennsylvania,42053,7,0 +2020-05-30,Forest,Pennsylvania,42053,7,0 +2020-05-31,Forest,Pennsylvania,42053,7,0 +2020-06-01,Forest,Pennsylvania,42053,7,0 +2020-06-02,Forest,Pennsylvania,42053,7,0 +2020-06-03,Forest,Pennsylvania,42053,7,0 +2020-06-04,Forest,Pennsylvania,42053,7,0 +2020-06-05,Forest,Pennsylvania,42053,7,0 +2020-06-06,Forest,Pennsylvania,42053,7,0 +2020-06-07,Forest,Pennsylvania,42053,7,0 +2020-06-08,Forest,Pennsylvania,42053,7,0 +2020-06-09,Forest,Pennsylvania,42053,7,0 +2020-06-10,Forest,Pennsylvania,42053,7,0 +2020-06-11,Forest,Pennsylvania,42053,7,0 +2020-06-12,Forest,Pennsylvania,42053,7,0 +2020-06-13,Forest,Pennsylvania,42053,7,0 +2020-06-14,Forest,Pennsylvania,42053,7,0 +2020-06-15,Forest,Pennsylvania,42053,7,0 +2020-06-16,Forest,Pennsylvania,42053,7,0 +2020-06-17,Forest,Pennsylvania,42053,7,0 +2020-06-18,Forest,Pennsylvania,42053,7,0 +2020-06-19,Forest,Pennsylvania,42053,7,0 +2020-06-20,Forest,Pennsylvania,42053,7,0 +2020-06-21,Forest,Pennsylvania,42053,7,0 +2020-06-22,Forest,Pennsylvania,42053,7,0 +2020-06-23,Forest,Pennsylvania,42053,7,0 +2020-06-24,Forest,Pennsylvania,42053,7,0 +2020-06-25,Forest,Pennsylvania,42053,7,0 +2020-06-26,Forest,Pennsylvania,42053,7,0 +2020-06-27,Forest,Pennsylvania,42053,7,0 +2020-06-28,Forest,Pennsylvania,42053,7,0 +2020-06-29,Forest,Pennsylvania,42053,7,0 +2020-06-30,Forest,Pennsylvania,42053,7,0 +2020-07-01,Forest,Pennsylvania,42053,7,0 +2020-07-02,Forest,Pennsylvania,42053,7,0 +2020-07-03,Forest,Pennsylvania,42053,7,0 +2020-07-04,Forest,Pennsylvania,42053,7,0 +2020-07-05,Forest,Pennsylvania,42053,7,0 +2020-07-06,Forest,Pennsylvania,42053,7,0 +2020-07-07,Forest,Pennsylvania,42053,7,0 +2020-07-08,Forest,Pennsylvania,42053,7,0 +2020-07-09,Forest,Pennsylvania,42053,7,0 +2020-03-20,Franklin,Pennsylvania,42055,1,0 +2020-03-21,Franklin,Pennsylvania,42055,1,0 +2020-03-22,Franklin,Pennsylvania,42055,1,0 +2020-03-23,Franklin,Pennsylvania,42055,1,0 +2020-03-24,Franklin,Pennsylvania,42055,3,0 +2020-03-25,Franklin,Pennsylvania,42055,5,0 +2020-03-26,Franklin,Pennsylvania,42055,5,0 +2020-03-27,Franklin,Pennsylvania,42055,5,0 +2020-03-28,Franklin,Pennsylvania,42055,7,0 +2020-03-29,Franklin,Pennsylvania,42055,11,0 +2020-03-30,Franklin,Pennsylvania,42055,12,0 +2020-03-31,Franklin,Pennsylvania,42055,19,0 +2020-04-01,Franklin,Pennsylvania,42055,21,0 +2020-04-02,Franklin,Pennsylvania,42055,23,0 +2020-04-03,Franklin,Pennsylvania,42055,26,0 +2020-04-04,Franklin,Pennsylvania,42055,27,0 +2020-04-05,Franklin,Pennsylvania,42055,30,0 +2020-04-06,Franklin,Pennsylvania,42055,32,0 +2020-04-07,Franklin,Pennsylvania,42055,39,0 +2020-04-08,Franklin,Pennsylvania,42055,43,0 +2020-04-09,Franklin,Pennsylvania,42055,52,0 +2020-04-10,Franklin,Pennsylvania,42055,57,0 +2020-04-11,Franklin,Pennsylvania,42055,59,0 +2020-04-12,Franklin,Pennsylvania,42055,64,0 +2020-04-13,Franklin,Pennsylvania,42055,66,0 +2020-04-14,Franklin,Pennsylvania,42055,69,0 +2020-04-15,Franklin,Pennsylvania,42055,78,0 +2020-04-16,Franklin,Pennsylvania,42055,80,0 +2020-04-17,Franklin,Pennsylvania,42055,89,0 +2020-04-18,Franklin,Pennsylvania,42055,106,0 +2020-04-19,Franklin,Pennsylvania,42055,111,0 +2020-04-20,Franklin,Pennsylvania,42055,115,0 +2020-04-21,Franklin,Pennsylvania,42055,143,10 +2020-04-22,Franklin,Pennsylvania,42055,152,10 +2020-04-23,Franklin,Pennsylvania,42055,151,10 +2020-04-24,Franklin,Pennsylvania,42055,164,10 +2020-04-25,Franklin,Pennsylvania,42055,181,10 +2020-04-26,Franklin,Pennsylvania,42055,205,10 +2020-04-27,Franklin,Pennsylvania,42055,227,10 +2020-04-28,Franklin,Pennsylvania,42055,237,10 +2020-04-29,Franklin,Pennsylvania,42055,264,10 +2020-04-30,Franklin,Pennsylvania,42055,284,10 +2020-05-01,Franklin,Pennsylvania,42055,313,10 +2020-05-02,Franklin,Pennsylvania,42055,325,10 +2020-05-03,Franklin,Pennsylvania,42055,351,10 +2020-05-04,Franklin,Pennsylvania,42055,377,10 +2020-05-05,Franklin,Pennsylvania,42055,396,10 +2020-05-06,Franklin,Pennsylvania,42055,406,10 +2020-05-07,Franklin,Pennsylvania,42055,425,11 +2020-05-08,Franklin,Pennsylvania,42055,452,11 +2020-05-09,Franklin,Pennsylvania,42055,478,12 +2020-05-10,Franklin,Pennsylvania,42055,493,12 +2020-05-11,Franklin,Pennsylvania,42055,513,12 +2020-05-12,Franklin,Pennsylvania,42055,522,12 +2020-05-13,Franklin,Pennsylvania,42055,545,13 +2020-05-14,Franklin,Pennsylvania,42055,563,15 +2020-05-15,Franklin,Pennsylvania,42055,580,17 +2020-05-16,Franklin,Pennsylvania,42055,601,13 +2020-05-17,Franklin,Pennsylvania,42055,621,13 +2020-05-18,Franklin,Pennsylvania,42055,631,25 +2020-05-19,Franklin,Pennsylvania,42055,644,27 +2020-05-20,Franklin,Pennsylvania,42055,662,27 +2020-05-21,Franklin,Pennsylvania,42055,677,28 +2020-05-22,Franklin,Pennsylvania,42055,697,28 +2020-05-23,Franklin,Pennsylvania,42055,711,29 +2020-05-24,Franklin,Pennsylvania,42055,734,29 +2020-05-25,Franklin,Pennsylvania,42055,740,29 +2020-05-26,Franklin,Pennsylvania,42055,746,29 +2020-05-27,Franklin,Pennsylvania,42055,756,30 +2020-05-28,Franklin,Pennsylvania,42055,759,31 +2020-05-29,Franklin,Pennsylvania,42055,762,34 +2020-05-30,Franklin,Pennsylvania,42055,767,35 +2020-05-31,Franklin,Pennsylvania,42055,774,35 +2020-06-01,Franklin,Pennsylvania,42055,777,35 +2020-06-02,Franklin,Pennsylvania,42055,781,36 +2020-06-03,Franklin,Pennsylvania,42055,782,37 +2020-06-04,Franklin,Pennsylvania,42055,785,38 +2020-06-05,Franklin,Pennsylvania,42055,788,39 +2020-06-06,Franklin,Pennsylvania,42055,792,39 +2020-06-07,Franklin,Pennsylvania,42055,795,39 +2020-06-08,Franklin,Pennsylvania,42055,798,39 +2020-06-09,Franklin,Pennsylvania,42055,800,39 +2020-06-10,Franklin,Pennsylvania,42055,807,39 +2020-06-11,Franklin,Pennsylvania,42055,827,40 +2020-06-12,Franklin,Pennsylvania,42055,837,42 +2020-06-13,Franklin,Pennsylvania,42055,843,42 +2020-06-14,Franklin,Pennsylvania,42055,842,42 +2020-06-15,Franklin,Pennsylvania,42055,843,42 +2020-06-16,Franklin,Pennsylvania,42055,849,42 +2020-06-17,Franklin,Pennsylvania,42055,852,42 +2020-06-18,Franklin,Pennsylvania,42055,855,42 +2020-06-19,Franklin,Pennsylvania,42055,872,42 +2020-06-20,Franklin,Pennsylvania,42055,876,42 +2020-06-21,Franklin,Pennsylvania,42055,879,42 +2020-06-22,Franklin,Pennsylvania,42055,882,42 +2020-06-23,Franklin,Pennsylvania,42055,891,42 +2020-06-24,Franklin,Pennsylvania,42055,896,42 +2020-06-25,Franklin,Pennsylvania,42055,900,42 +2020-06-26,Franklin,Pennsylvania,42055,902,42 +2020-06-27,Franklin,Pennsylvania,42055,912,42 +2020-06-28,Franklin,Pennsylvania,42055,913,42 +2020-06-29,Franklin,Pennsylvania,42055,915,42 +2020-06-30,Franklin,Pennsylvania,42055,925,43 +2020-07-01,Franklin,Pennsylvania,42055,940,43 +2020-07-02,Franklin,Pennsylvania,42055,950,44 +2020-07-03,Franklin,Pennsylvania,42055,954,44 +2020-07-04,Franklin,Pennsylvania,42055,955,44 +2020-07-05,Franklin,Pennsylvania,42055,956,44 +2020-07-06,Franklin,Pennsylvania,42055,958,44 +2020-07-07,Franklin,Pennsylvania,42055,970,44 +2020-07-08,Franklin,Pennsylvania,42055,984,44 +2020-07-09,Franklin,Pennsylvania,42055,989,46 +2020-04-05,Fulton,Pennsylvania,42057,1,0 +2020-04-06,Fulton,Pennsylvania,42057,1,0 +2020-04-07,Fulton,Pennsylvania,42057,1,0 +2020-04-08,Fulton,Pennsylvania,42057,1,0 +2020-04-09,Fulton,Pennsylvania,42057,1,0 +2020-04-10,Fulton,Pennsylvania,42057,1,0 +2020-04-11,Fulton,Pennsylvania,42057,1,0 +2020-04-12,Fulton,Pennsylvania,42057,1,0 +2020-04-13,Fulton,Pennsylvania,42057,1,0 +2020-04-14,Fulton,Pennsylvania,42057,2,0 +2020-04-15,Fulton,Pennsylvania,42057,2,0 +2020-04-16,Fulton,Pennsylvania,42057,2,0 +2020-04-17,Fulton,Pennsylvania,42057,2,0 +2020-04-18,Fulton,Pennsylvania,42057,2,0 +2020-04-19,Fulton,Pennsylvania,42057,2,0 +2020-04-20,Fulton,Pennsylvania,42057,2,0 +2020-04-21,Fulton,Pennsylvania,42057,2,0 +2020-04-22,Fulton,Pennsylvania,42057,2,0 +2020-04-23,Fulton,Pennsylvania,42057,2,0 +2020-04-24,Fulton,Pennsylvania,42057,2,0 +2020-04-25,Fulton,Pennsylvania,42057,3,0 +2020-04-26,Fulton,Pennsylvania,42057,3,0 +2020-04-27,Fulton,Pennsylvania,42057,3,0 +2020-04-28,Fulton,Pennsylvania,42057,3,0 +2020-04-29,Fulton,Pennsylvania,42057,5,0 +2020-04-30,Fulton,Pennsylvania,42057,5,0 +2020-05-01,Fulton,Pennsylvania,42057,5,0 +2020-05-02,Fulton,Pennsylvania,42057,6,0 +2020-05-03,Fulton,Pennsylvania,42057,6,0 +2020-05-04,Fulton,Pennsylvania,42057,6,0 +2020-05-05,Fulton,Pennsylvania,42057,7,0 +2020-05-06,Fulton,Pennsylvania,42057,7,0 +2020-05-07,Fulton,Pennsylvania,42057,7,0 +2020-05-08,Fulton,Pennsylvania,42057,7,1 +2020-05-09,Fulton,Pennsylvania,42057,8,0 +2020-05-10,Fulton,Pennsylvania,42057,8,0 +2020-05-11,Fulton,Pennsylvania,42057,8,0 +2020-05-12,Fulton,Pennsylvania,42057,8,0 +2020-05-13,Fulton,Pennsylvania,42057,8,0 +2020-05-14,Fulton,Pennsylvania,42057,11,0 +2020-05-15,Fulton,Pennsylvania,42057,11,0 +2020-05-16,Fulton,Pennsylvania,42057,11,0 +2020-05-17,Fulton,Pennsylvania,42057,11,0 +2020-05-18,Fulton,Pennsylvania,42057,11,1 +2020-05-19,Fulton,Pennsylvania,42057,12,1 +2020-05-20,Fulton,Pennsylvania,42057,13,1 +2020-05-21,Fulton,Pennsylvania,42057,14,1 +2020-05-22,Fulton,Pennsylvania,42057,14,1 +2020-05-23,Fulton,Pennsylvania,42057,14,1 +2020-05-24,Fulton,Pennsylvania,42057,14,1 +2020-05-25,Fulton,Pennsylvania,42057,14,1 +2020-05-26,Fulton,Pennsylvania,42057,15,1 +2020-05-27,Fulton,Pennsylvania,42057,15,1 +2020-05-28,Fulton,Pennsylvania,42057,15,1 +2020-05-29,Fulton,Pennsylvania,42057,15,1 +2020-05-30,Fulton,Pennsylvania,42057,15,1 +2020-05-31,Fulton,Pennsylvania,42057,15,1 +2020-06-01,Fulton,Pennsylvania,42057,15,1 +2020-06-02,Fulton,Pennsylvania,42057,15,1 +2020-06-03,Fulton,Pennsylvania,42057,15,1 +2020-06-04,Fulton,Pennsylvania,42057,16,1 +2020-06-05,Fulton,Pennsylvania,42057,16,1 +2020-06-06,Fulton,Pennsylvania,42057,16,1 +2020-06-07,Fulton,Pennsylvania,42057,16,1 +2020-06-08,Fulton,Pennsylvania,42057,16,1 +2020-06-09,Fulton,Pennsylvania,42057,16,1 +2020-06-10,Fulton,Pennsylvania,42057,16,1 +2020-06-11,Fulton,Pennsylvania,42057,16,1 +2020-06-12,Fulton,Pennsylvania,42057,16,1 +2020-06-13,Fulton,Pennsylvania,42057,16,1 +2020-06-14,Fulton,Pennsylvania,42057,16,1 +2020-06-15,Fulton,Pennsylvania,42057,16,1 +2020-06-16,Fulton,Pennsylvania,42057,17,1 +2020-06-17,Fulton,Pennsylvania,42057,17,1 +2020-06-18,Fulton,Pennsylvania,42057,17,1 +2020-06-19,Fulton,Pennsylvania,42057,17,1 +2020-06-20,Fulton,Pennsylvania,42057,18,1 +2020-06-21,Fulton,Pennsylvania,42057,18,1 +2020-06-22,Fulton,Pennsylvania,42057,18,1 +2020-06-23,Fulton,Pennsylvania,42057,18,1 +2020-06-24,Fulton,Pennsylvania,42057,18,1 +2020-06-25,Fulton,Pennsylvania,42057,18,1 +2020-06-26,Fulton,Pennsylvania,42057,18,1 +2020-06-27,Fulton,Pennsylvania,42057,18,1 +2020-06-28,Fulton,Pennsylvania,42057,18,1 +2020-06-29,Fulton,Pennsylvania,42057,18,1 +2020-06-30,Fulton,Pennsylvania,42057,18,1 +2020-07-01,Fulton,Pennsylvania,42057,18,1 +2020-07-02,Fulton,Pennsylvania,42057,18,1 +2020-07-03,Fulton,Pennsylvania,42057,18,1 +2020-07-04,Fulton,Pennsylvania,42057,18,1 +2020-07-05,Fulton,Pennsylvania,42057,18,1 +2020-07-06,Fulton,Pennsylvania,42057,18,1 +2020-07-07,Fulton,Pennsylvania,42057,18,1 +2020-07-08,Fulton,Pennsylvania,42057,18,1 +2020-07-09,Fulton,Pennsylvania,42057,19,1 +2020-03-25,Greene,Pennsylvania,42059,2,0 +2020-03-26,Greene,Pennsylvania,42059,3,0 +2020-03-27,Greene,Pennsylvania,42059,4,0 +2020-03-28,Greene,Pennsylvania,42059,6,0 +2020-03-29,Greene,Pennsylvania,42059,6,0 +2020-03-30,Greene,Pennsylvania,42059,7,0 +2020-03-31,Greene,Pennsylvania,42059,9,0 +2020-04-01,Greene,Pennsylvania,42059,9,0 +2020-04-02,Greene,Pennsylvania,42059,11,0 +2020-04-03,Greene,Pennsylvania,42059,11,0 +2020-04-04,Greene,Pennsylvania,42059,12,0 +2020-04-05,Greene,Pennsylvania,42059,12,0 +2020-04-06,Greene,Pennsylvania,42059,12,0 +2020-04-07,Greene,Pennsylvania,42059,15,0 +2020-04-08,Greene,Pennsylvania,42059,17,0 +2020-04-09,Greene,Pennsylvania,42059,21,0 +2020-04-10,Greene,Pennsylvania,42059,21,0 +2020-04-11,Greene,Pennsylvania,42059,23,0 +2020-04-12,Greene,Pennsylvania,42059,23,0 +2020-04-13,Greene,Pennsylvania,42059,23,0 +2020-04-14,Greene,Pennsylvania,42059,23,0 +2020-04-15,Greene,Pennsylvania,42059,23,0 +2020-04-16,Greene,Pennsylvania,42059,24,0 +2020-04-17,Greene,Pennsylvania,42059,24,0 +2020-04-18,Greene,Pennsylvania,42059,24,0 +2020-04-19,Greene,Pennsylvania,42059,24,0 +2020-04-20,Greene,Pennsylvania,42059,25,0 +2020-04-21,Greene,Pennsylvania,42059,25,0 +2020-04-22,Greene,Pennsylvania,42059,25,0 +2020-04-23,Greene,Pennsylvania,42059,25,0 +2020-04-24,Greene,Pennsylvania,42059,25,0 +2020-04-25,Greene,Pennsylvania,42059,25,0 +2020-04-26,Greene,Pennsylvania,42059,25,0 +2020-04-27,Greene,Pennsylvania,42059,25,0 +2020-04-28,Greene,Pennsylvania,42059,26,0 +2020-04-29,Greene,Pennsylvania,42059,26,0 +2020-04-30,Greene,Pennsylvania,42059,26,0 +2020-05-01,Greene,Pennsylvania,42059,26,0 +2020-05-02,Greene,Pennsylvania,42059,27,0 +2020-05-03,Greene,Pennsylvania,42059,27,1 +2020-05-04,Greene,Pennsylvania,42059,27,1 +2020-05-05,Greene,Pennsylvania,42059,27,1 +2020-05-06,Greene,Pennsylvania,42059,27,1 +2020-05-07,Greene,Pennsylvania,42059,27,1 +2020-05-08,Greene,Pennsylvania,42059,27,1 +2020-05-09,Greene,Pennsylvania,42059,27,1 +2020-05-10,Greene,Pennsylvania,42059,27,1 +2020-05-11,Greene,Pennsylvania,42059,27,1 +2020-05-12,Greene,Pennsylvania,42059,27,1 +2020-05-13,Greene,Pennsylvania,42059,27,1 +2020-05-14,Greene,Pennsylvania,42059,27,1 +2020-05-15,Greene,Pennsylvania,42059,27,1 +2020-05-16,Greene,Pennsylvania,42059,27,1 +2020-05-17,Greene,Pennsylvania,42059,27,1 +2020-05-18,Greene,Pennsylvania,42059,27,0 +2020-05-19,Greene,Pennsylvania,42059,27,0 +2020-05-20,Greene,Pennsylvania,42059,27,0 +2020-05-21,Greene,Pennsylvania,42059,27,0 +2020-05-22,Greene,Pennsylvania,42059,27,0 +2020-05-23,Greene,Pennsylvania,42059,27,0 +2020-05-24,Greene,Pennsylvania,42059,27,0 +2020-05-25,Greene,Pennsylvania,42059,27,0 +2020-05-26,Greene,Pennsylvania,42059,27,0 +2020-05-27,Greene,Pennsylvania,42059,27,0 +2020-05-28,Greene,Pennsylvania,42059,27,0 +2020-05-29,Greene,Pennsylvania,42059,27,0 +2020-05-30,Greene,Pennsylvania,42059,27,0 +2020-05-31,Greene,Pennsylvania,42059,27,0 +2020-06-01,Greene,Pennsylvania,42059,27,0 +2020-06-02,Greene,Pennsylvania,42059,27,0 +2020-06-03,Greene,Pennsylvania,42059,27,0 +2020-06-04,Greene,Pennsylvania,42059,27,0 +2020-06-05,Greene,Pennsylvania,42059,27,0 +2020-06-06,Greene,Pennsylvania,42059,27,0 +2020-06-07,Greene,Pennsylvania,42059,27,0 +2020-06-08,Greene,Pennsylvania,42059,27,0 +2020-06-09,Greene,Pennsylvania,42059,28,0 +2020-06-10,Greene,Pennsylvania,42059,28,0 +2020-06-11,Greene,Pennsylvania,42059,30,0 +2020-06-12,Greene,Pennsylvania,42059,30,0 +2020-06-13,Greene,Pennsylvania,42059,30,0 +2020-06-14,Greene,Pennsylvania,42059,30,0 +2020-06-15,Greene,Pennsylvania,42059,30,0 +2020-06-16,Greene,Pennsylvania,42059,30,0 +2020-06-17,Greene,Pennsylvania,42059,30,0 +2020-06-18,Greene,Pennsylvania,42059,30,0 +2020-06-19,Greene,Pennsylvania,42059,30,0 +2020-06-20,Greene,Pennsylvania,42059,33,0 +2020-06-21,Greene,Pennsylvania,42059,35,0 +2020-06-22,Greene,Pennsylvania,42059,35,0 +2020-06-23,Greene,Pennsylvania,42059,35,0 +2020-06-24,Greene,Pennsylvania,42059,35,0 +2020-06-25,Greene,Pennsylvania,42059,35,0 +2020-06-26,Greene,Pennsylvania,42059,35,0 +2020-06-27,Greene,Pennsylvania,42059,35,0 +2020-06-28,Greene,Pennsylvania,42059,39,0 +2020-06-29,Greene,Pennsylvania,42059,39,0 +2020-06-30,Greene,Pennsylvania,42059,41,0 +2020-07-01,Greene,Pennsylvania,42059,41,0 +2020-07-02,Greene,Pennsylvania,42059,41,0 +2020-07-03,Greene,Pennsylvania,42059,41,0 +2020-07-04,Greene,Pennsylvania,42059,42,0 +2020-07-05,Greene,Pennsylvania,42059,44,0 +2020-07-06,Greene,Pennsylvania,42059,47,0 +2020-07-07,Greene,Pennsylvania,42059,50,0 +2020-07-08,Greene,Pennsylvania,42059,52,0 +2020-07-09,Greene,Pennsylvania,42059,56,0 +2020-03-28,Huntingdon,Pennsylvania,42061,1,0 +2020-03-29,Huntingdon,Pennsylvania,42061,1,0 +2020-03-30,Huntingdon,Pennsylvania,42061,1,0 +2020-03-31,Huntingdon,Pennsylvania,42061,1,0 +2020-04-01,Huntingdon,Pennsylvania,42061,1,0 +2020-04-02,Huntingdon,Pennsylvania,42061,2,0 +2020-04-03,Huntingdon,Pennsylvania,42061,3,0 +2020-04-04,Huntingdon,Pennsylvania,42061,4,0 +2020-04-05,Huntingdon,Pennsylvania,42061,4,0 +2020-04-06,Huntingdon,Pennsylvania,42061,4,0 +2020-04-07,Huntingdon,Pennsylvania,42061,5,0 +2020-04-08,Huntingdon,Pennsylvania,42061,6,0 +2020-04-09,Huntingdon,Pennsylvania,42061,8,0 +2020-04-10,Huntingdon,Pennsylvania,42061,8,0 +2020-04-11,Huntingdon,Pennsylvania,42061,10,0 +2020-04-12,Huntingdon,Pennsylvania,42061,10,0 +2020-04-13,Huntingdon,Pennsylvania,42061,11,0 +2020-04-14,Huntingdon,Pennsylvania,42061,11,0 +2020-04-15,Huntingdon,Pennsylvania,42061,12,0 +2020-04-16,Huntingdon,Pennsylvania,42061,12,0 +2020-04-17,Huntingdon,Pennsylvania,42061,12,0 +2020-04-18,Huntingdon,Pennsylvania,42061,12,0 +2020-04-19,Huntingdon,Pennsylvania,42061,13,0 +2020-04-20,Huntingdon,Pennsylvania,42061,13,0 +2020-04-21,Huntingdon,Pennsylvania,42061,13,0 +2020-04-22,Huntingdon,Pennsylvania,42061,15,0 +2020-04-23,Huntingdon,Pennsylvania,42061,20,0 +2020-04-24,Huntingdon,Pennsylvania,42061,20,0 +2020-04-25,Huntingdon,Pennsylvania,42061,22,0 +2020-04-26,Huntingdon,Pennsylvania,42061,22,0 +2020-04-27,Huntingdon,Pennsylvania,42061,24,0 +2020-04-28,Huntingdon,Pennsylvania,42061,26,0 +2020-04-29,Huntingdon,Pennsylvania,42061,29,0 +2020-04-30,Huntingdon,Pennsylvania,42061,38,0 +2020-05-01,Huntingdon,Pennsylvania,42061,40,0 +2020-05-02,Huntingdon,Pennsylvania,42061,48,0 +2020-05-03,Huntingdon,Pennsylvania,42061,56,0 +2020-05-04,Huntingdon,Pennsylvania,42061,57,0 +2020-05-05,Huntingdon,Pennsylvania,42061,59,0 +2020-05-06,Huntingdon,Pennsylvania,42061,60,0 +2020-05-07,Huntingdon,Pennsylvania,42061,109,0 +2020-05-08,Huntingdon,Pennsylvania,42061,117,0 +2020-05-09,Huntingdon,Pennsylvania,42061,119,0 +2020-05-10,Huntingdon,Pennsylvania,42061,181,0 +2020-05-11,Huntingdon,Pennsylvania,42061,187,0 +2020-05-12,Huntingdon,Pennsylvania,42061,190,0 +2020-05-13,Huntingdon,Pennsylvania,42061,197,0 +2020-05-14,Huntingdon,Pennsylvania,42061,200,0 +2020-05-15,Huntingdon,Pennsylvania,42061,204,0 +2020-05-16,Huntingdon,Pennsylvania,42061,208,0 +2020-05-17,Huntingdon,Pennsylvania,42061,214,0 +2020-05-18,Huntingdon,Pennsylvania,42061,214,0 +2020-05-19,Huntingdon,Pennsylvania,42061,214,0 +2020-05-20,Huntingdon,Pennsylvania,42061,215,1 +2020-05-21,Huntingdon,Pennsylvania,42061,221,1 +2020-05-22,Huntingdon,Pennsylvania,42061,223,1 +2020-05-23,Huntingdon,Pennsylvania,42061,227,1 +2020-05-24,Huntingdon,Pennsylvania,42061,228,1 +2020-05-25,Huntingdon,Pennsylvania,42061,228,1 +2020-05-26,Huntingdon,Pennsylvania,42061,228,1 +2020-05-27,Huntingdon,Pennsylvania,42061,228,2 +2020-05-28,Huntingdon,Pennsylvania,42061,228,2 +2020-05-29,Huntingdon,Pennsylvania,42061,228,2 +2020-05-30,Huntingdon,Pennsylvania,42061,230,2 +2020-05-31,Huntingdon,Pennsylvania,42061,230,2 +2020-06-01,Huntingdon,Pennsylvania,42061,231,2 +2020-06-02,Huntingdon,Pennsylvania,42061,231,2 +2020-06-03,Huntingdon,Pennsylvania,42061,232,3 +2020-06-04,Huntingdon,Pennsylvania,42061,234,3 +2020-06-05,Huntingdon,Pennsylvania,42061,234,4 +2020-06-06,Huntingdon,Pennsylvania,42061,236,4 +2020-06-07,Huntingdon,Pennsylvania,42061,236,4 +2020-06-08,Huntingdon,Pennsylvania,42061,236,4 +2020-06-09,Huntingdon,Pennsylvania,42061,236,4 +2020-06-10,Huntingdon,Pennsylvania,42061,237,4 +2020-06-11,Huntingdon,Pennsylvania,42061,237,4 +2020-06-12,Huntingdon,Pennsylvania,42061,237,4 +2020-06-13,Huntingdon,Pennsylvania,42061,239,4 +2020-06-14,Huntingdon,Pennsylvania,42061,239,4 +2020-06-15,Huntingdon,Pennsylvania,42061,239,4 +2020-06-16,Huntingdon,Pennsylvania,42061,239,4 +2020-06-17,Huntingdon,Pennsylvania,42061,239,4 +2020-06-18,Huntingdon,Pennsylvania,42061,239,4 +2020-06-19,Huntingdon,Pennsylvania,42061,240,4 +2020-06-20,Huntingdon,Pennsylvania,42061,240,4 +2020-06-21,Huntingdon,Pennsylvania,42061,240,4 +2020-06-22,Huntingdon,Pennsylvania,42061,240,4 +2020-06-23,Huntingdon,Pennsylvania,42061,240,4 +2020-06-24,Huntingdon,Pennsylvania,42061,242,4 +2020-06-25,Huntingdon,Pennsylvania,42061,242,4 +2020-06-26,Huntingdon,Pennsylvania,42061,245,4 +2020-06-27,Huntingdon,Pennsylvania,42061,245,4 +2020-06-28,Huntingdon,Pennsylvania,42061,245,4 +2020-06-29,Huntingdon,Pennsylvania,42061,251,4 +2020-06-30,Huntingdon,Pennsylvania,42061,252,4 +2020-07-01,Huntingdon,Pennsylvania,42061,252,4 +2020-07-02,Huntingdon,Pennsylvania,42061,252,4 +2020-07-03,Huntingdon,Pennsylvania,42061,254,4 +2020-07-04,Huntingdon,Pennsylvania,42061,254,4 +2020-07-05,Huntingdon,Pennsylvania,42061,254,4 +2020-07-06,Huntingdon,Pennsylvania,42061,254,4 +2020-07-07,Huntingdon,Pennsylvania,42061,254,4 +2020-07-08,Huntingdon,Pennsylvania,42061,254,4 +2020-07-09,Huntingdon,Pennsylvania,42061,254,4 +2020-03-26,Indiana,Pennsylvania,42063,1,0 +2020-03-27,Indiana,Pennsylvania,42063,2,0 +2020-03-28,Indiana,Pennsylvania,42063,2,0 +2020-03-29,Indiana,Pennsylvania,42063,2,0 +2020-03-30,Indiana,Pennsylvania,42063,2,0 +2020-03-31,Indiana,Pennsylvania,42063,6,0 +2020-04-01,Indiana,Pennsylvania,42063,6,0 +2020-04-02,Indiana,Pennsylvania,42063,6,0 +2020-04-03,Indiana,Pennsylvania,42063,7,0 +2020-04-04,Indiana,Pennsylvania,42063,9,0 +2020-04-05,Indiana,Pennsylvania,42063,13,0 +2020-04-06,Indiana,Pennsylvania,42063,17,0 +2020-04-07,Indiana,Pennsylvania,42063,21,0 +2020-04-08,Indiana,Pennsylvania,42063,21,0 +2020-04-09,Indiana,Pennsylvania,42063,21,0 +2020-04-10,Indiana,Pennsylvania,42063,26,0 +2020-04-11,Indiana,Pennsylvania,42063,40,0 +2020-04-12,Indiana,Pennsylvania,42063,40,0 +2020-04-13,Indiana,Pennsylvania,42063,43,0 +2020-04-14,Indiana,Pennsylvania,42063,43,0 +2020-04-15,Indiana,Pennsylvania,42063,43,1 +2020-04-16,Indiana,Pennsylvania,42063,44,2 +2020-04-17,Indiana,Pennsylvania,42063,45,3 +2020-04-18,Indiana,Pennsylvania,42063,47,4 +2020-04-19,Indiana,Pennsylvania,42063,51,4 +2020-04-20,Indiana,Pennsylvania,42063,53,4 +2020-04-21,Indiana,Pennsylvania,42063,55,4 +2020-04-22,Indiana,Pennsylvania,42063,56,4 +2020-04-23,Indiana,Pennsylvania,42063,59,4 +2020-04-24,Indiana,Pennsylvania,42063,62,4 +2020-04-25,Indiana,Pennsylvania,42063,63,4 +2020-04-26,Indiana,Pennsylvania,42063,63,4 +2020-04-27,Indiana,Pennsylvania,42063,63,4 +2020-04-28,Indiana,Pennsylvania,42063,62,4 +2020-04-29,Indiana,Pennsylvania,42063,63,4 +2020-04-30,Indiana,Pennsylvania,42063,63,4 +2020-05-01,Indiana,Pennsylvania,42063,63,4 +2020-05-02,Indiana,Pennsylvania,42063,63,4 +2020-05-03,Indiana,Pennsylvania,42063,69,4 +2020-05-04,Indiana,Pennsylvania,42063,70,4 +2020-05-05,Indiana,Pennsylvania,42063,74,5 +2020-05-06,Indiana,Pennsylvania,42063,75,5 +2020-05-07,Indiana,Pennsylvania,42063,75,5 +2020-05-08,Indiana,Pennsylvania,42063,75,5 +2020-05-09,Indiana,Pennsylvania,42063,76,5 +2020-05-10,Indiana,Pennsylvania,42063,76,5 +2020-05-11,Indiana,Pennsylvania,42063,76,5 +2020-05-12,Indiana,Pennsylvania,42063,76,5 +2020-05-13,Indiana,Pennsylvania,42063,78,5 +2020-05-14,Indiana,Pennsylvania,42063,82,5 +2020-05-15,Indiana,Pennsylvania,42063,84,6 +2020-05-16,Indiana,Pennsylvania,42063,84,6 +2020-05-17,Indiana,Pennsylvania,42063,84,6 +2020-05-18,Indiana,Pennsylvania,42063,84,4 +2020-05-19,Indiana,Pennsylvania,42063,86,4 +2020-05-20,Indiana,Pennsylvania,42063,86,4 +2020-05-21,Indiana,Pennsylvania,42063,88,4 +2020-05-22,Indiana,Pennsylvania,42063,89,4 +2020-05-23,Indiana,Pennsylvania,42063,89,5 +2020-05-24,Indiana,Pennsylvania,42063,89,5 +2020-05-25,Indiana,Pennsylvania,42063,89,5 +2020-05-26,Indiana,Pennsylvania,42063,89,5 +2020-05-27,Indiana,Pennsylvania,42063,90,5 +2020-05-28,Indiana,Pennsylvania,42063,90,5 +2020-05-29,Indiana,Pennsylvania,42063,90,5 +2020-05-30,Indiana,Pennsylvania,42063,91,5 +2020-05-31,Indiana,Pennsylvania,42063,91,5 +2020-06-01,Indiana,Pennsylvania,42063,91,5 +2020-06-02,Indiana,Pennsylvania,42063,91,5 +2020-06-03,Indiana,Pennsylvania,42063,91,5 +2020-06-04,Indiana,Pennsylvania,42063,91,5 +2020-06-05,Indiana,Pennsylvania,42063,91,5 +2020-06-06,Indiana,Pennsylvania,42063,91,5 +2020-06-07,Indiana,Pennsylvania,42063,92,5 +2020-06-08,Indiana,Pennsylvania,42063,92,5 +2020-06-09,Indiana,Pennsylvania,42063,92,5 +2020-06-10,Indiana,Pennsylvania,42063,92,5 +2020-06-11,Indiana,Pennsylvania,42063,92,5 +2020-06-12,Indiana,Pennsylvania,42063,93,5 +2020-06-13,Indiana,Pennsylvania,42063,93,5 +2020-06-14,Indiana,Pennsylvania,42063,93,5 +2020-06-15,Indiana,Pennsylvania,42063,93,5 +2020-06-16,Indiana,Pennsylvania,42063,95,5 +2020-06-17,Indiana,Pennsylvania,42063,95,5 +2020-06-18,Indiana,Pennsylvania,42063,97,5 +2020-06-19,Indiana,Pennsylvania,42063,98,5 +2020-06-20,Indiana,Pennsylvania,42063,98,5 +2020-06-21,Indiana,Pennsylvania,42063,98,5 +2020-06-22,Indiana,Pennsylvania,42063,98,5 +2020-06-23,Indiana,Pennsylvania,42063,98,5 +2020-06-24,Indiana,Pennsylvania,42063,98,6 +2020-06-25,Indiana,Pennsylvania,42063,101,6 +2020-06-26,Indiana,Pennsylvania,42063,101,6 +2020-06-27,Indiana,Pennsylvania,42063,101,6 +2020-06-28,Indiana,Pennsylvania,42063,102,6 +2020-06-29,Indiana,Pennsylvania,42063,104,6 +2020-06-30,Indiana,Pennsylvania,42063,108,6 +2020-07-01,Indiana,Pennsylvania,42063,111,6 +2020-07-02,Indiana,Pennsylvania,42063,112,6 +2020-07-03,Indiana,Pennsylvania,42063,114,6 +2020-07-04,Indiana,Pennsylvania,42063,114,6 +2020-07-05,Indiana,Pennsylvania,42063,114,6 +2020-07-06,Indiana,Pennsylvania,42063,114,6 +2020-07-07,Indiana,Pennsylvania,42063,116,6 +2020-07-08,Indiana,Pennsylvania,42063,119,6 +2020-07-09,Indiana,Pennsylvania,42063,121,6 +2020-04-07,Jefferson,Pennsylvania,42065,1,0 +2020-04-08,Jefferson,Pennsylvania,42065,1,0 +2020-04-09,Jefferson,Pennsylvania,42065,1,0 +2020-04-10,Jefferson,Pennsylvania,42065,1,0 +2020-04-11,Jefferson,Pennsylvania,42065,1,0 +2020-04-12,Jefferson,Pennsylvania,42065,2,0 +2020-04-13,Jefferson,Pennsylvania,42065,2,0 +2020-04-14,Jefferson,Pennsylvania,42065,2,0 +2020-04-15,Jefferson,Pennsylvania,42065,2,0 +2020-04-16,Jefferson,Pennsylvania,42065,2,0 +2020-04-17,Jefferson,Pennsylvania,42065,2,0 +2020-04-18,Jefferson,Pennsylvania,42065,2,0 +2020-04-19,Jefferson,Pennsylvania,42065,2,0 +2020-04-20,Jefferson,Pennsylvania,42065,3,0 +2020-04-21,Jefferson,Pennsylvania,42065,3,0 +2020-04-22,Jefferson,Pennsylvania,42065,3,0 +2020-04-23,Jefferson,Pennsylvania,42065,4,0 +2020-04-24,Jefferson,Pennsylvania,42065,4,0 +2020-04-25,Jefferson,Pennsylvania,42065,4,0 +2020-04-26,Jefferson,Pennsylvania,42065,4,0 +2020-04-27,Jefferson,Pennsylvania,42065,4,0 +2020-04-28,Jefferson,Pennsylvania,42065,4,0 +2020-04-29,Jefferson,Pennsylvania,42065,4,0 +2020-04-30,Jefferson,Pennsylvania,42065,4,0 +2020-05-01,Jefferson,Pennsylvania,42065,4,0 +2020-05-02,Jefferson,Pennsylvania,42065,6,0 +2020-05-03,Jefferson,Pennsylvania,42065,6,0 +2020-05-04,Jefferson,Pennsylvania,42065,6,0 +2020-05-05,Jefferson,Pennsylvania,42065,6,0 +2020-05-06,Jefferson,Pennsylvania,42065,7,0 +2020-05-07,Jefferson,Pennsylvania,42065,7,0 +2020-05-08,Jefferson,Pennsylvania,42065,7,0 +2020-05-09,Jefferson,Pennsylvania,42065,7,0 +2020-05-10,Jefferson,Pennsylvania,42065,7,0 +2020-05-11,Jefferson,Pennsylvania,42065,7,0 +2020-05-12,Jefferson,Pennsylvania,42065,7,0 +2020-05-13,Jefferson,Pennsylvania,42065,7,0 +2020-05-14,Jefferson,Pennsylvania,42065,7,0 +2020-05-15,Jefferson,Pennsylvania,42065,7,0 +2020-05-16,Jefferson,Pennsylvania,42065,7,0 +2020-05-17,Jefferson,Pennsylvania,42065,7,0 +2020-05-18,Jefferson,Pennsylvania,42065,7,0 +2020-05-19,Jefferson,Pennsylvania,42065,7,0 +2020-05-20,Jefferson,Pennsylvania,42065,7,0 +2020-05-21,Jefferson,Pennsylvania,42065,7,0 +2020-05-22,Jefferson,Pennsylvania,42065,7,0 +2020-05-23,Jefferson,Pennsylvania,42065,7,0 +2020-05-24,Jefferson,Pennsylvania,42065,7,0 +2020-05-25,Jefferson,Pennsylvania,42065,7,0 +2020-05-26,Jefferson,Pennsylvania,42065,7,0 +2020-05-27,Jefferson,Pennsylvania,42065,7,0 +2020-05-28,Jefferson,Pennsylvania,42065,7,0 +2020-05-29,Jefferson,Pennsylvania,42065,7,0 +2020-05-30,Jefferson,Pennsylvania,42065,9,0 +2020-05-31,Jefferson,Pennsylvania,42065,9,0 +2020-06-01,Jefferson,Pennsylvania,42065,9,0 +2020-06-02,Jefferson,Pennsylvania,42065,12,0 +2020-06-03,Jefferson,Pennsylvania,42065,14,0 +2020-06-04,Jefferson,Pennsylvania,42065,14,0 +2020-06-05,Jefferson,Pennsylvania,42065,15,0 +2020-06-06,Jefferson,Pennsylvania,42065,16,0 +2020-06-07,Jefferson,Pennsylvania,42065,16,0 +2020-06-08,Jefferson,Pennsylvania,42065,16,0 +2020-06-09,Jefferson,Pennsylvania,42065,16,0 +2020-06-10,Jefferson,Pennsylvania,42065,16,0 +2020-06-11,Jefferson,Pennsylvania,42065,16,0 +2020-06-12,Jefferson,Pennsylvania,42065,18,1 +2020-06-13,Jefferson,Pennsylvania,42065,18,1 +2020-06-14,Jefferson,Pennsylvania,42065,18,1 +2020-06-15,Jefferson,Pennsylvania,42065,19,1 +2020-06-16,Jefferson,Pennsylvania,42065,19,1 +2020-06-17,Jefferson,Pennsylvania,42065,19,1 +2020-06-18,Jefferson,Pennsylvania,42065,20,1 +2020-06-19,Jefferson,Pennsylvania,42065,20,1 +2020-06-20,Jefferson,Pennsylvania,42065,20,1 +2020-06-21,Jefferson,Pennsylvania,42065,20,1 +2020-06-22,Jefferson,Pennsylvania,42065,20,1 +2020-06-23,Jefferson,Pennsylvania,42065,21,1 +2020-06-24,Jefferson,Pennsylvania,42065,21,1 +2020-06-25,Jefferson,Pennsylvania,42065,21,1 +2020-06-26,Jefferson,Pennsylvania,42065,21,1 +2020-06-27,Jefferson,Pennsylvania,42065,21,1 +2020-06-28,Jefferson,Pennsylvania,42065,21,1 +2020-06-29,Jefferson,Pennsylvania,42065,21,1 +2020-06-30,Jefferson,Pennsylvania,42065,22,1 +2020-07-01,Jefferson,Pennsylvania,42065,24,1 +2020-07-02,Jefferson,Pennsylvania,42065,24,1 +2020-07-03,Jefferson,Pennsylvania,42065,25,1 +2020-07-04,Jefferson,Pennsylvania,42065,28,1 +2020-07-05,Jefferson,Pennsylvania,42065,30,1 +2020-07-06,Jefferson,Pennsylvania,42065,30,1 +2020-07-07,Jefferson,Pennsylvania,42065,30,1 +2020-07-08,Jefferson,Pennsylvania,42065,33,1 +2020-07-09,Jefferson,Pennsylvania,42065,34,1 +2020-03-24,Juniata,Pennsylvania,42067,1,0 +2020-03-25,Juniata,Pennsylvania,42067,1,0 +2020-03-26,Juniata,Pennsylvania,42067,1,0 +2020-03-27,Juniata,Pennsylvania,42067,1,0 +2020-03-28,Juniata,Pennsylvania,42067,1,0 +2020-03-29,Juniata,Pennsylvania,42067,1,0 +2020-03-30,Juniata,Pennsylvania,42067,3,0 +2020-03-31,Juniata,Pennsylvania,42067,3,0 +2020-04-01,Juniata,Pennsylvania,42067,3,0 +2020-04-02,Juniata,Pennsylvania,42067,3,0 +2020-04-03,Juniata,Pennsylvania,42067,5,0 +2020-04-04,Juniata,Pennsylvania,42067,7,0 +2020-04-05,Juniata,Pennsylvania,42067,7,0 +2020-04-06,Juniata,Pennsylvania,42067,11,0 +2020-04-07,Juniata,Pennsylvania,42067,14,0 +2020-04-08,Juniata,Pennsylvania,42067,18,0 +2020-04-09,Juniata,Pennsylvania,42067,23,0 +2020-04-10,Juniata,Pennsylvania,42067,30,0 +2020-04-11,Juniata,Pennsylvania,42067,38,0 +2020-04-12,Juniata,Pennsylvania,42067,38,0 +2020-04-13,Juniata,Pennsylvania,42067,39,0 +2020-04-14,Juniata,Pennsylvania,42067,43,0 +2020-04-15,Juniata,Pennsylvania,42067,47,0 +2020-04-16,Juniata,Pennsylvania,42067,56,0 +2020-04-17,Juniata,Pennsylvania,42067,63,0 +2020-04-18,Juniata,Pennsylvania,42067,66,0 +2020-04-19,Juniata,Pennsylvania,42067,70,0 +2020-04-20,Juniata,Pennsylvania,42067,72,0 +2020-04-21,Juniata,Pennsylvania,42067,72,0 +2020-04-22,Juniata,Pennsylvania,42067,73,0 +2020-04-23,Juniata,Pennsylvania,42067,77,0 +2020-04-24,Juniata,Pennsylvania,42067,77,0 +2020-04-25,Juniata,Pennsylvania,42067,77,0 +2020-04-26,Juniata,Pennsylvania,42067,78,0 +2020-04-27,Juniata,Pennsylvania,42067,79,0 +2020-04-28,Juniata,Pennsylvania,42067,81,0 +2020-04-29,Juniata,Pennsylvania,42067,82,1 +2020-04-30,Juniata,Pennsylvania,42067,83,1 +2020-05-01,Juniata,Pennsylvania,42067,84,1 +2020-05-02,Juniata,Pennsylvania,42067,84,1 +2020-05-03,Juniata,Pennsylvania,42067,86,1 +2020-05-04,Juniata,Pennsylvania,42067,86,1 +2020-05-05,Juniata,Pennsylvania,42067,86,1 +2020-05-06,Juniata,Pennsylvania,42067,86,1 +2020-05-07,Juniata,Pennsylvania,42067,92,1 +2020-05-08,Juniata,Pennsylvania,42067,93,1 +2020-05-09,Juniata,Pennsylvania,42067,93,1 +2020-05-10,Juniata,Pennsylvania,42067,93,1 +2020-05-11,Juniata,Pennsylvania,42067,93,1 +2020-05-12,Juniata,Pennsylvania,42067,94,1 +2020-05-13,Juniata,Pennsylvania,42067,94,1 +2020-05-14,Juniata,Pennsylvania,42067,94,1 +2020-05-15,Juniata,Pennsylvania,42067,94,1 +2020-05-16,Juniata,Pennsylvania,42067,94,1 +2020-05-17,Juniata,Pennsylvania,42067,94,1 +2020-05-18,Juniata,Pennsylvania,42067,94,2 +2020-05-19,Juniata,Pennsylvania,42067,94,2 +2020-05-20,Juniata,Pennsylvania,42067,94,2 +2020-05-21,Juniata,Pennsylvania,42067,94,3 +2020-05-22,Juniata,Pennsylvania,42067,94,4 +2020-05-23,Juniata,Pennsylvania,42067,94,4 +2020-05-24,Juniata,Pennsylvania,42067,95,4 +2020-05-25,Juniata,Pennsylvania,42067,95,4 +2020-05-26,Juniata,Pennsylvania,42067,95,4 +2020-05-27,Juniata,Pennsylvania,42067,95,4 +2020-05-28,Juniata,Pennsylvania,42067,95,4 +2020-05-29,Juniata,Pennsylvania,42067,95,4 +2020-05-30,Juniata,Pennsylvania,42067,95,4 +2020-05-31,Juniata,Pennsylvania,42067,95,4 +2020-06-01,Juniata,Pennsylvania,42067,95,4 +2020-06-02,Juniata,Pennsylvania,42067,95,4 +2020-06-03,Juniata,Pennsylvania,42067,95,4 +2020-06-04,Juniata,Pennsylvania,42067,95,4 +2020-06-05,Juniata,Pennsylvania,42067,95,4 +2020-06-06,Juniata,Pennsylvania,42067,96,4 +2020-06-07,Juniata,Pennsylvania,42067,97,4 +2020-06-08,Juniata,Pennsylvania,42067,99,4 +2020-06-09,Juniata,Pennsylvania,42067,101,5 +2020-06-10,Juniata,Pennsylvania,42067,102,5 +2020-06-11,Juniata,Pennsylvania,42067,105,5 +2020-06-12,Juniata,Pennsylvania,42067,105,5 +2020-06-13,Juniata,Pennsylvania,42067,107,5 +2020-06-14,Juniata,Pennsylvania,42067,108,5 +2020-06-15,Juniata,Pennsylvania,42067,108,5 +2020-06-16,Juniata,Pennsylvania,42067,108,5 +2020-06-17,Juniata,Pennsylvania,42067,108,5 +2020-06-18,Juniata,Pennsylvania,42067,109,5 +2020-06-19,Juniata,Pennsylvania,42067,109,5 +2020-06-20,Juniata,Pennsylvania,42067,109,5 +2020-06-21,Juniata,Pennsylvania,42067,108,5 +2020-06-22,Juniata,Pennsylvania,42067,108,5 +2020-06-23,Juniata,Pennsylvania,42067,108,5 +2020-06-24,Juniata,Pennsylvania,42067,109,5 +2020-06-25,Juniata,Pennsylvania,42067,109,5 +2020-06-26,Juniata,Pennsylvania,42067,110,5 +2020-06-27,Juniata,Pennsylvania,42067,111,5 +2020-06-28,Juniata,Pennsylvania,42067,111,5 +2020-06-29,Juniata,Pennsylvania,42067,111,5 +2020-06-30,Juniata,Pennsylvania,42067,111,6 +2020-07-01,Juniata,Pennsylvania,42067,111,6 +2020-07-02,Juniata,Pennsylvania,42067,113,6 +2020-07-03,Juniata,Pennsylvania,42067,113,6 +2020-07-04,Juniata,Pennsylvania,42067,113,6 +2020-07-05,Juniata,Pennsylvania,42067,113,6 +2020-07-06,Juniata,Pennsylvania,42067,113,6 +2020-07-07,Juniata,Pennsylvania,42067,114,6 +2020-07-08,Juniata,Pennsylvania,42067,114,6 +2020-07-09,Juniata,Pennsylvania,42067,114,6 +2020-03-18,Lackawanna,Pennsylvania,42069,2,0 +2020-03-19,Lackawanna,Pennsylvania,42069,3,0 +2020-03-20,Lackawanna,Pennsylvania,42069,5,0 +2020-03-21,Lackawanna,Pennsylvania,42069,6,0 +2020-03-22,Lackawanna,Pennsylvania,42069,6,0 +2020-03-23,Lackawanna,Pennsylvania,42069,7,1 +2020-03-24,Lackawanna,Pennsylvania,42069,15,1 +2020-03-25,Lackawanna,Pennsylvania,42069,18,2 +2020-03-26,Lackawanna,Pennsylvania,42069,28,2 +2020-03-27,Lackawanna,Pennsylvania,42069,35,2 +2020-03-28,Lackawanna,Pennsylvania,42069,51,2 +2020-03-29,Lackawanna,Pennsylvania,42069,56,2 +2020-03-30,Lackawanna,Pennsylvania,42069,62,2 +2020-03-31,Lackawanna,Pennsylvania,42069,78,3 +2020-04-01,Lackawanna,Pennsylvania,42069,85,3 +2020-04-02,Lackawanna,Pennsylvania,42069,108,3 +2020-04-03,Lackawanna,Pennsylvania,42069,119,4 +2020-04-04,Lackawanna,Pennsylvania,42069,146,6 +2020-04-05,Lackawanna,Pennsylvania,42069,172,6 +2020-04-06,Lackawanna,Pennsylvania,42069,190,7 +2020-04-07,Lackawanna,Pennsylvania,42069,235,8 +2020-04-08,Lackawanna,Pennsylvania,42069,266,10 +2020-04-09,Lackawanna,Pennsylvania,42069,312,16 +2020-04-10,Lackawanna,Pennsylvania,42069,346,18 +2020-04-11,Lackawanna,Pennsylvania,42069,392,20 +2020-04-12,Lackawanna,Pennsylvania,42069,427,20 +2020-04-13,Lackawanna,Pennsylvania,42069,459,21 +2020-04-14,Lackawanna,Pennsylvania,42069,501,24 +2020-04-15,Lackawanna,Pennsylvania,42069,527,26 +2020-04-16,Lackawanna,Pennsylvania,42069,559,28 +2020-04-17,Lackawanna,Pennsylvania,42069,592,30 +2020-04-18,Lackawanna,Pennsylvania,42069,620,35 +2020-04-19,Lackawanna,Pennsylvania,42069,636,41 +2020-04-20,Lackawanna,Pennsylvania,42069,646,41 +2020-04-21,Lackawanna,Pennsylvania,42069,666,53 +2020-04-22,Lackawanna,Pennsylvania,42069,682,57 +2020-04-23,Lackawanna,Pennsylvania,42069,707,58 +2020-04-24,Lackawanna,Pennsylvania,42069,735,61 +2020-04-25,Lackawanna,Pennsylvania,42069,772,63 +2020-04-26,Lackawanna,Pennsylvania,42069,793,63 +2020-04-27,Lackawanna,Pennsylvania,42069,833,63 +2020-04-28,Lackawanna,Pennsylvania,42069,854,71 +2020-04-29,Lackawanna,Pennsylvania,42069,873,81 +2020-04-30,Lackawanna,Pennsylvania,42069,913,82 +2020-05-01,Lackawanna,Pennsylvania,42069,934,83 +2020-05-02,Lackawanna,Pennsylvania,42069,968,83 +2020-05-03,Lackawanna,Pennsylvania,42069,999,86 +2020-05-04,Lackawanna,Pennsylvania,42069,1017,87 +2020-05-05,Lackawanna,Pennsylvania,42069,1038,103 +2020-05-06,Lackawanna,Pennsylvania,42069,1076,106 +2020-05-07,Lackawanna,Pennsylvania,42069,1093,112 +2020-05-08,Lackawanna,Pennsylvania,42069,1114,113 +2020-05-09,Lackawanna,Pennsylvania,42069,1134,115 +2020-05-10,Lackawanna,Pennsylvania,42069,1172,117 +2020-05-11,Lackawanna,Pennsylvania,42069,1187,117 +2020-05-12,Lackawanna,Pennsylvania,42069,1211,124 +2020-05-13,Lackawanna,Pennsylvania,42069,1232,128 +2020-05-14,Lackawanna,Pennsylvania,42069,1256,135 +2020-05-15,Lackawanna,Pennsylvania,42069,1273,141 +2020-05-16,Lackawanna,Pennsylvania,42069,1327,147 +2020-05-17,Lackawanna,Pennsylvania,42069,1344,149 +2020-05-18,Lackawanna,Pennsylvania,42069,1363,125 +2020-05-19,Lackawanna,Pennsylvania,42069,1374,127 +2020-05-20,Lackawanna,Pennsylvania,42069,1400,132 +2020-05-21,Lackawanna,Pennsylvania,42069,1432,137 +2020-05-22,Lackawanna,Pennsylvania,42069,1451,148 +2020-05-23,Lackawanna,Pennsylvania,42069,1476,152 +2020-05-24,Lackawanna,Pennsylvania,42069,1491,153 +2020-05-25,Lackawanna,Pennsylvania,42069,1494,153 +2020-05-26,Lackawanna,Pennsylvania,42069,1503,155 +2020-05-27,Lackawanna,Pennsylvania,42069,1511,159 +2020-05-28,Lackawanna,Pennsylvania,42069,1516,163 +2020-05-29,Lackawanna,Pennsylvania,42069,1528,166 +2020-05-30,Lackawanna,Pennsylvania,42069,1543,170 +2020-05-31,Lackawanna,Pennsylvania,42069,1547,170 +2020-06-01,Lackawanna,Pennsylvania,42069,1551,171 +2020-06-02,Lackawanna,Pennsylvania,42069,1555,174 +2020-06-03,Lackawanna,Pennsylvania,42069,1556,180 +2020-06-04,Lackawanna,Pennsylvania,42069,1569,182 +2020-06-05,Lackawanna,Pennsylvania,42069,1575,185 +2020-06-06,Lackawanna,Pennsylvania,42069,1579,187 +2020-06-07,Lackawanna,Pennsylvania,42069,1583,187 +2020-06-08,Lackawanna,Pennsylvania,42069,1584,188 +2020-06-09,Lackawanna,Pennsylvania,42069,1587,189 +2020-06-10,Lackawanna,Pennsylvania,42069,1591,189 +2020-06-11,Lackawanna,Pennsylvania,42069,1595,191 +2020-06-12,Lackawanna,Pennsylvania,42069,1598,191 +2020-06-13,Lackawanna,Pennsylvania,42069,1600,194 +2020-06-14,Lackawanna,Pennsylvania,42069,1601,194 +2020-06-15,Lackawanna,Pennsylvania,42069,1602,196 +2020-06-16,Lackawanna,Pennsylvania,42069,1608,197 +2020-06-17,Lackawanna,Pennsylvania,42069,1611,199 +2020-06-18,Lackawanna,Pennsylvania,42069,1611,200 +2020-06-19,Lackawanna,Pennsylvania,42069,1617,200 +2020-06-20,Lackawanna,Pennsylvania,42069,1622,200 +2020-06-21,Lackawanna,Pennsylvania,42069,1622,200 +2020-06-22,Lackawanna,Pennsylvania,42069,1627,200 +2020-06-23,Lackawanna,Pennsylvania,42069,1630,200 +2020-06-24,Lackawanna,Pennsylvania,42069,1638,201 +2020-06-25,Lackawanna,Pennsylvania,42069,1648,202 +2020-06-26,Lackawanna,Pennsylvania,42069,1662,202 +2020-06-27,Lackawanna,Pennsylvania,42069,1680,202 +2020-06-28,Lackawanna,Pennsylvania,42069,1684,202 +2020-06-29,Lackawanna,Pennsylvania,42069,1694,202 +2020-06-30,Lackawanna,Pennsylvania,42069,1703,203 +2020-07-01,Lackawanna,Pennsylvania,42069,1707,203 +2020-07-02,Lackawanna,Pennsylvania,42069,1714,204 +2020-07-03,Lackawanna,Pennsylvania,42069,1719,207 +2020-07-04,Lackawanna,Pennsylvania,42069,1725,207 +2020-07-05,Lackawanna,Pennsylvania,42069,1733,207 +2020-07-06,Lackawanna,Pennsylvania,42069,1734,207 +2020-07-07,Lackawanna,Pennsylvania,42069,1740,207 +2020-07-08,Lackawanna,Pennsylvania,42069,1743,208 +2020-07-09,Lackawanna,Pennsylvania,42069,1749,209 +2020-03-19,Lancaster,Pennsylvania,42071,2,0 +2020-03-20,Lancaster,Pennsylvania,42071,2,0 +2020-03-21,Lancaster,Pennsylvania,42071,4,0 +2020-03-22,Lancaster,Pennsylvania,42071,5,0 +2020-03-23,Lancaster,Pennsylvania,42071,5,0 +2020-03-24,Lancaster,Pennsylvania,42071,10,0 +2020-03-25,Lancaster,Pennsylvania,42071,12,0 +2020-03-26,Lancaster,Pennsylvania,42071,21,0 +2020-03-27,Lancaster,Pennsylvania,42071,33,0 +2020-03-28,Lancaster,Pennsylvania,42071,45,1 +2020-03-29,Lancaster,Pennsylvania,42071,67,2 +2020-03-30,Lancaster,Pennsylvania,42071,97,2 +2020-03-31,Lancaster,Pennsylvania,42071,123,3 +2020-04-01,Lancaster,Pennsylvania,42071,157,3 +2020-04-02,Lancaster,Pennsylvania,42071,203,4 +2020-04-03,Lancaster,Pennsylvania,42071,232,5 +2020-04-04,Lancaster,Pennsylvania,42071,291,5 +2020-04-05,Lancaster,Pennsylvania,42071,371,8 +2020-04-06,Lancaster,Pennsylvania,42071,408,11 +2020-04-07,Lancaster,Pennsylvania,42071,490,14 +2020-04-08,Lancaster,Pennsylvania,42071,561,16 +2020-04-09,Lancaster,Pennsylvania,42071,596,17 +2020-04-10,Lancaster,Pennsylvania,42071,648,21 +2020-04-11,Lancaster,Pennsylvania,42071,698,23 +2020-04-12,Lancaster,Pennsylvania,42071,772,24 +2020-04-13,Lancaster,Pennsylvania,42071,828,24 +2020-04-14,Lancaster,Pennsylvania,42071,865,56 +2020-04-15,Lancaster,Pennsylvania,42071,914,69 +2020-04-16,Lancaster,Pennsylvania,42071,970,77 +2020-04-17,Lancaster,Pennsylvania,42071,1030,85 +2020-04-18,Lancaster,Pennsylvania,42071,1113,93 +2020-04-19,Lancaster,Pennsylvania,42071,1188,98 +2020-04-20,Lancaster,Pennsylvania,42071,1236,101 +2020-04-21,Lancaster,Pennsylvania,42071,1295,107 +2020-04-22,Lancaster,Pennsylvania,42071,1326,122 +2020-04-23,Lancaster,Pennsylvania,42071,1359,131 +2020-04-24,Lancaster,Pennsylvania,42071,1451,139 +2020-04-25,Lancaster,Pennsylvania,42071,1501,140 +2020-04-26,Lancaster,Pennsylvania,42071,1577,145 +2020-04-27,Lancaster,Pennsylvania,42071,1633,152 +2020-04-28,Lancaster,Pennsylvania,42071,1678,164 +2020-04-29,Lancaster,Pennsylvania,42071,1703,170 +2020-04-30,Lancaster,Pennsylvania,42071,1765,173 +2020-05-01,Lancaster,Pennsylvania,42071,1820,183 +2020-05-02,Lancaster,Pennsylvania,42071,1904,188 +2020-05-03,Lancaster,Pennsylvania,42071,1936,191 +2020-05-04,Lancaster,Pennsylvania,42071,1991,198 +2020-05-05,Lancaster,Pennsylvania,42071,2018,206 +2020-05-06,Lancaster,Pennsylvania,42071,2041,209 +2020-05-07,Lancaster,Pennsylvania,42071,2070,216 +2020-05-08,Lancaster,Pennsylvania,42071,2122,222 +2020-05-09,Lancaster,Pennsylvania,42071,2185,228 +2020-05-10,Lancaster,Pennsylvania,42071,2223,233 +2020-05-11,Lancaster,Pennsylvania,42071,2256,239 +2020-05-12,Lancaster,Pennsylvania,42071,2295,241 +2020-05-13,Lancaster,Pennsylvania,42071,2325,245 +2020-05-14,Lancaster,Pennsylvania,42071,2364,249 +2020-05-15,Lancaster,Pennsylvania,42071,2428,253 +2020-05-16,Lancaster,Pennsylvania,42071,2470,255 +2020-05-17,Lancaster,Pennsylvania,42071,2508,258 +2020-05-18,Lancaster,Pennsylvania,42071,2552,263 +2020-05-19,Lancaster,Pennsylvania,42071,2593,267 +2020-05-20,Lancaster,Pennsylvania,42071,2599,271 +2020-05-21,Lancaster,Pennsylvania,42071,2690,277 +2020-05-22,Lancaster,Pennsylvania,42071,2736,278 +2020-05-23,Lancaster,Pennsylvania,42071,2790,280 +2020-05-24,Lancaster,Pennsylvania,42071,2854,281 +2020-05-25,Lancaster,Pennsylvania,42071,2896,281 +2020-05-26,Lancaster,Pennsylvania,42071,2985,283 +2020-05-27,Lancaster,Pennsylvania,42071,3031,285 +2020-05-28,Lancaster,Pennsylvania,42071,3056,291 +2020-05-29,Lancaster,Pennsylvania,42071,3105,292 +2020-05-30,Lancaster,Pennsylvania,42071,3131,295 +2020-05-31,Lancaster,Pennsylvania,42071,3161,297 +2020-06-01,Lancaster,Pennsylvania,42071,3189,297 +2020-06-02,Lancaster,Pennsylvania,42071,3218,306 +2020-06-03,Lancaster,Pennsylvania,42071,3267,310 +2020-06-04,Lancaster,Pennsylvania,42071,3301,315 +2020-06-05,Lancaster,Pennsylvania,42071,3337,317 +2020-06-06,Lancaster,Pennsylvania,42071,3404,317 +2020-06-07,Lancaster,Pennsylvania,42071,3461,318 +2020-06-08,Lancaster,Pennsylvania,42071,3503,318 +2020-06-09,Lancaster,Pennsylvania,42071,3554,320 +2020-06-10,Lancaster,Pennsylvania,42071,3600,322 +2020-06-11,Lancaster,Pennsylvania,42071,3632,322 +2020-06-12,Lancaster,Pennsylvania,42071,3682,325 +2020-06-13,Lancaster,Pennsylvania,42071,3719,329 +2020-06-14,Lancaster,Pennsylvania,42071,3752,329 +2020-06-15,Lancaster,Pennsylvania,42071,3777,331 +2020-06-16,Lancaster,Pennsylvania,42071,3802,333 +2020-06-17,Lancaster,Pennsylvania,42071,3830,336 +2020-06-18,Lancaster,Pennsylvania,42071,3867,341 +2020-06-19,Lancaster,Pennsylvania,42071,3911,344 +2020-06-20,Lancaster,Pennsylvania,42071,3949,346 +2020-06-21,Lancaster,Pennsylvania,42071,3999,346 +2020-06-22,Lancaster,Pennsylvania,42071,4029,347 +2020-06-23,Lancaster,Pennsylvania,42071,4106,350 +2020-06-24,Lancaster,Pennsylvania,42071,4152,352 +2020-06-25,Lancaster,Pennsylvania,42071,4212,354 +2020-06-26,Lancaster,Pennsylvania,42071,4280,354 +2020-06-27,Lancaster,Pennsylvania,42071,4326,355 +2020-06-28,Lancaster,Pennsylvania,42071,4388,356 +2020-06-29,Lancaster,Pennsylvania,42071,4414,356 +2020-06-30,Lancaster,Pennsylvania,42071,4442,357 +2020-07-01,Lancaster,Pennsylvania,42071,4464,357 +2020-07-02,Lancaster,Pennsylvania,42071,4504,365 +2020-07-03,Lancaster,Pennsylvania,42071,4530,365 +2020-07-04,Lancaster,Pennsylvania,42071,4572,366 +2020-07-05,Lancaster,Pennsylvania,42071,4589,367 +2020-07-06,Lancaster,Pennsylvania,42071,4602,367 +2020-07-07,Lancaster,Pennsylvania,42071,4623,372 +2020-07-08,Lancaster,Pennsylvania,42071,4673,372 +2020-07-09,Lancaster,Pennsylvania,42071,4711,377 +2020-03-25,Lawrence,Pennsylvania,42073,1,0 +2020-03-26,Lawrence,Pennsylvania,42073,1,0 +2020-03-27,Lawrence,Pennsylvania,42073,4,0 +2020-03-28,Lawrence,Pennsylvania,42073,8,0 +2020-03-29,Lawrence,Pennsylvania,42073,8,1 +2020-03-30,Lawrence,Pennsylvania,42073,10,1 +2020-03-31,Lawrence,Pennsylvania,42073,13,2 +2020-04-01,Lawrence,Pennsylvania,42073,13,2 +2020-04-02,Lawrence,Pennsylvania,42073,16,2 +2020-04-03,Lawrence,Pennsylvania,42073,19,2 +2020-04-04,Lawrence,Pennsylvania,42073,22,2 +2020-04-05,Lawrence,Pennsylvania,42073,23,2 +2020-04-06,Lawrence,Pennsylvania,42073,24,2 +2020-04-07,Lawrence,Pennsylvania,42073,29,2 +2020-04-08,Lawrence,Pennsylvania,42073,32,2 +2020-04-09,Lawrence,Pennsylvania,42073,37,2 +2020-04-10,Lawrence,Pennsylvania,42073,45,3 +2020-04-11,Lawrence,Pennsylvania,42073,46,4 +2020-04-12,Lawrence,Pennsylvania,42073,49,4 +2020-04-13,Lawrence,Pennsylvania,42073,51,4 +2020-04-14,Lawrence,Pennsylvania,42073,51,4 +2020-04-15,Lawrence,Pennsylvania,42073,55,5 +2020-04-16,Lawrence,Pennsylvania,42073,55,5 +2020-04-17,Lawrence,Pennsylvania,42073,59,5 +2020-04-18,Lawrence,Pennsylvania,42073,60,5 +2020-04-19,Lawrence,Pennsylvania,42073,59,5 +2020-04-20,Lawrence,Pennsylvania,42073,59,5 +2020-04-21,Lawrence,Pennsylvania,42073,60,6 +2020-04-22,Lawrence,Pennsylvania,42073,61,6 +2020-04-23,Lawrence,Pennsylvania,42073,61,6 +2020-04-24,Lawrence,Pennsylvania,42073,61,6 +2020-04-25,Lawrence,Pennsylvania,42073,61,6 +2020-04-26,Lawrence,Pennsylvania,42073,61,6 +2020-04-27,Lawrence,Pennsylvania,42073,63,6 +2020-04-28,Lawrence,Pennsylvania,42073,63,6 +2020-04-29,Lawrence,Pennsylvania,42073,64,6 +2020-04-30,Lawrence,Pennsylvania,42073,65,6 +2020-05-01,Lawrence,Pennsylvania,42073,65,6 +2020-05-02,Lawrence,Pennsylvania,42073,65,6 +2020-05-03,Lawrence,Pennsylvania,42073,65,6 +2020-05-04,Lawrence,Pennsylvania,42073,65,6 +2020-05-05,Lawrence,Pennsylvania,42073,67,7 +2020-05-06,Lawrence,Pennsylvania,42073,68,7 +2020-05-07,Lawrence,Pennsylvania,42073,69,7 +2020-05-08,Lawrence,Pennsylvania,42073,69,7 +2020-05-09,Lawrence,Pennsylvania,42073,69,7 +2020-05-10,Lawrence,Pennsylvania,42073,70,7 +2020-05-11,Lawrence,Pennsylvania,42073,70,7 +2020-05-12,Lawrence,Pennsylvania,42073,71,7 +2020-05-13,Lawrence,Pennsylvania,42073,71,7 +2020-05-14,Lawrence,Pennsylvania,42073,71,7 +2020-05-15,Lawrence,Pennsylvania,42073,72,7 +2020-05-16,Lawrence,Pennsylvania,42073,72,7 +2020-05-17,Lawrence,Pennsylvania,42073,72,7 +2020-05-18,Lawrence,Pennsylvania,42073,72,8 +2020-05-19,Lawrence,Pennsylvania,42073,73,8 +2020-05-20,Lawrence,Pennsylvania,42073,73,8 +2020-05-21,Lawrence,Pennsylvania,42073,73,8 +2020-05-22,Lawrence,Pennsylvania,42073,73,8 +2020-05-23,Lawrence,Pennsylvania,42073,74,8 +2020-05-24,Lawrence,Pennsylvania,42073,74,8 +2020-05-25,Lawrence,Pennsylvania,42073,74,8 +2020-05-26,Lawrence,Pennsylvania,42073,74,8 +2020-05-27,Lawrence,Pennsylvania,42073,74,8 +2020-05-28,Lawrence,Pennsylvania,42073,74,8 +2020-05-29,Lawrence,Pennsylvania,42073,76,8 +2020-05-30,Lawrence,Pennsylvania,42073,79,8 +2020-05-31,Lawrence,Pennsylvania,42073,80,8 +2020-06-01,Lawrence,Pennsylvania,42073,80,8 +2020-06-02,Lawrence,Pennsylvania,42073,81,8 +2020-06-03,Lawrence,Pennsylvania,42073,83,8 +2020-06-04,Lawrence,Pennsylvania,42073,82,8 +2020-06-05,Lawrence,Pennsylvania,42073,82,8 +2020-06-06,Lawrence,Pennsylvania,42073,84,8 +2020-06-07,Lawrence,Pennsylvania,42073,85,8 +2020-06-08,Lawrence,Pennsylvania,42073,85,8 +2020-06-09,Lawrence,Pennsylvania,42073,85,8 +2020-06-10,Lawrence,Pennsylvania,42073,87,8 +2020-06-11,Lawrence,Pennsylvania,42073,86,8 +2020-06-12,Lawrence,Pennsylvania,42073,86,8 +2020-06-13,Lawrence,Pennsylvania,42073,87,8 +2020-06-14,Lawrence,Pennsylvania,42073,87,8 +2020-06-15,Lawrence,Pennsylvania,42073,87,8 +2020-06-16,Lawrence,Pennsylvania,42073,87,8 +2020-06-17,Lawrence,Pennsylvania,42073,88,8 +2020-06-18,Lawrence,Pennsylvania,42073,89,8 +2020-06-19,Lawrence,Pennsylvania,42073,90,9 +2020-06-20,Lawrence,Pennsylvania,42073,90,9 +2020-06-21,Lawrence,Pennsylvania,42073,90,9 +2020-06-22,Lawrence,Pennsylvania,42073,92,9 +2020-06-23,Lawrence,Pennsylvania,42073,92,9 +2020-06-24,Lawrence,Pennsylvania,42073,94,9 +2020-06-25,Lawrence,Pennsylvania,42073,99,9 +2020-06-26,Lawrence,Pennsylvania,42073,99,9 +2020-06-27,Lawrence,Pennsylvania,42073,101,9 +2020-06-28,Lawrence,Pennsylvania,42073,102,9 +2020-06-29,Lawrence,Pennsylvania,42073,101,9 +2020-06-30,Lawrence,Pennsylvania,42073,102,9 +2020-07-01,Lawrence,Pennsylvania,42073,103,9 +2020-07-02,Lawrence,Pennsylvania,42073,107,9 +2020-07-03,Lawrence,Pennsylvania,42073,110,9 +2020-07-04,Lawrence,Pennsylvania,42073,114,9 +2020-07-05,Lawrence,Pennsylvania,42073,119,9 +2020-07-06,Lawrence,Pennsylvania,42073,124,9 +2020-07-07,Lawrence,Pennsylvania,42073,129,9 +2020-07-08,Lawrence,Pennsylvania,42073,141,9 +2020-07-09,Lawrence,Pennsylvania,42073,146,9 +2020-03-19,Lebanon,Pennsylvania,42075,1,0 +2020-03-20,Lebanon,Pennsylvania,42075,1,0 +2020-03-21,Lebanon,Pennsylvania,42075,2,0 +2020-03-22,Lebanon,Pennsylvania,42075,3,0 +2020-03-23,Lebanon,Pennsylvania,42075,3,0 +2020-03-24,Lebanon,Pennsylvania,42075,3,0 +2020-03-25,Lebanon,Pennsylvania,42075,3,0 +2020-03-26,Lebanon,Pennsylvania,42075,4,0 +2020-03-27,Lebanon,Pennsylvania,42075,12,0 +2020-03-28,Lebanon,Pennsylvania,42075,15,0 +2020-03-29,Lebanon,Pennsylvania,42075,19,0 +2020-03-30,Lebanon,Pennsylvania,42075,27,0 +2020-03-31,Lebanon,Pennsylvania,42075,28,0 +2020-04-01,Lebanon,Pennsylvania,42075,36,0 +2020-04-02,Lebanon,Pennsylvania,42075,45,0 +2020-04-03,Lebanon,Pennsylvania,42075,54,0 +2020-04-04,Lebanon,Pennsylvania,42075,87,0 +2020-04-05,Lebanon,Pennsylvania,42075,106,0 +2020-04-06,Lebanon,Pennsylvania,42075,124,0 +2020-04-07,Lebanon,Pennsylvania,42075,145,0 +2020-04-08,Lebanon,Pennsylvania,42075,169,0 +2020-04-09,Lebanon,Pennsylvania,42075,187,0 +2020-04-10,Lebanon,Pennsylvania,42075,218,1 +2020-04-11,Lebanon,Pennsylvania,42075,232,1 +2020-04-12,Lebanon,Pennsylvania,42075,270,1 +2020-04-13,Lebanon,Pennsylvania,42075,284,2 +2020-04-14,Lebanon,Pennsylvania,42075,328,2 +2020-04-15,Lebanon,Pennsylvania,42075,349,2 +2020-04-16,Lebanon,Pennsylvania,42075,380,2 +2020-04-17,Lebanon,Pennsylvania,42075,424,2 +2020-04-18,Lebanon,Pennsylvania,42075,458,4 +2020-04-19,Lebanon,Pennsylvania,42075,484,4 +2020-04-20,Lebanon,Pennsylvania,42075,502,5 +2020-04-21,Lebanon,Pennsylvania,42075,525,8 +2020-04-22,Lebanon,Pennsylvania,42075,535,8 +2020-04-23,Lebanon,Pennsylvania,42075,544,8 +2020-04-24,Lebanon,Pennsylvania,42075,575,8 +2020-04-25,Lebanon,Pennsylvania,42075,592,8 +2020-04-26,Lebanon,Pennsylvania,42075,612,8 +2020-04-27,Lebanon,Pennsylvania,42075,621,8 +2020-04-28,Lebanon,Pennsylvania,42075,635,8 +2020-04-29,Lebanon,Pennsylvania,42075,648,9 +2020-04-30,Lebanon,Pennsylvania,42075,676,9 +2020-05-01,Lebanon,Pennsylvania,42075,694,9 +2020-05-02,Lebanon,Pennsylvania,42075,710,10 +2020-05-03,Lebanon,Pennsylvania,42075,735,10 +2020-05-04,Lebanon,Pennsylvania,42075,756,10 +2020-05-05,Lebanon,Pennsylvania,42075,766,15 +2020-05-06,Lebanon,Pennsylvania,42075,774,15 +2020-05-07,Lebanon,Pennsylvania,42075,785,16 +2020-05-08,Lebanon,Pennsylvania,42075,797,16 +2020-05-09,Lebanon,Pennsylvania,42075,805,16 +2020-05-10,Lebanon,Pennsylvania,42075,811,16 +2020-05-11,Lebanon,Pennsylvania,42075,815,16 +2020-05-12,Lebanon,Pennsylvania,42075,825,17 +2020-05-13,Lebanon,Pennsylvania,42075,849,19 +2020-05-14,Lebanon,Pennsylvania,42075,856,19 +2020-05-15,Lebanon,Pennsylvania,42075,863,19 +2020-05-16,Lebanon,Pennsylvania,42075,873,19 +2020-05-17,Lebanon,Pennsylvania,42075,874,19 +2020-05-18,Lebanon,Pennsylvania,42075,877,21 +2020-05-19,Lebanon,Pennsylvania,42075,880,24 +2020-05-20,Lebanon,Pennsylvania,42075,885,24 +2020-05-21,Lebanon,Pennsylvania,42075,887,24 +2020-05-22,Lebanon,Pennsylvania,42075,892,24 +2020-05-23,Lebanon,Pennsylvania,42075,900,24 +2020-05-24,Lebanon,Pennsylvania,42075,909,27 +2020-05-25,Lebanon,Pennsylvania,42075,912,27 +2020-05-26,Lebanon,Pennsylvania,42075,922,27 +2020-05-27,Lebanon,Pennsylvania,42075,936,31 +2020-05-28,Lebanon,Pennsylvania,42075,944,33 +2020-05-29,Lebanon,Pennsylvania,42075,950,33 +2020-05-30,Lebanon,Pennsylvania,42075,958,33 +2020-05-31,Lebanon,Pennsylvania,42075,969,33 +2020-06-01,Lebanon,Pennsylvania,42075,972,33 +2020-06-02,Lebanon,Pennsylvania,42075,980,33 +2020-06-03,Lebanon,Pennsylvania,42075,994,34 +2020-06-04,Lebanon,Pennsylvania,42075,997,36 +2020-06-05,Lebanon,Pennsylvania,42075,1000,36 +2020-06-06,Lebanon,Pennsylvania,42075,1021,37 +2020-06-07,Lebanon,Pennsylvania,42075,1062,37 +2020-06-08,Lebanon,Pennsylvania,42075,1072,37 +2020-06-09,Lebanon,Pennsylvania,42075,1086,38 +2020-06-10,Lebanon,Pennsylvania,42075,1091,38 +2020-06-11,Lebanon,Pennsylvania,42075,1106,38 +2020-06-12,Lebanon,Pennsylvania,42075,1140,39 +2020-06-13,Lebanon,Pennsylvania,42075,1162,39 +2020-06-14,Lebanon,Pennsylvania,42075,1182,40 +2020-06-15,Lebanon,Pennsylvania,42075,1190,40 +2020-06-16,Lebanon,Pennsylvania,42075,1193,40 +2020-06-17,Lebanon,Pennsylvania,42075,1200,40 +2020-06-18,Lebanon,Pennsylvania,42075,1210,40 +2020-06-19,Lebanon,Pennsylvania,42075,1226,40 +2020-06-20,Lebanon,Pennsylvania,42075,1240,40 +2020-06-21,Lebanon,Pennsylvania,42075,1251,40 +2020-06-22,Lebanon,Pennsylvania,42075,1261,40 +2020-06-23,Lebanon,Pennsylvania,42075,1272,41 +2020-06-24,Lebanon,Pennsylvania,42075,1278,42 +2020-06-25,Lebanon,Pennsylvania,42075,1291,43 +2020-06-26,Lebanon,Pennsylvania,42075,1300,43 +2020-06-27,Lebanon,Pennsylvania,42075,1309,43 +2020-06-28,Lebanon,Pennsylvania,42075,1324,43 +2020-06-29,Lebanon,Pennsylvania,42075,1331,43 +2020-06-30,Lebanon,Pennsylvania,42075,1342,43 +2020-07-01,Lebanon,Pennsylvania,42075,1350,43 +2020-07-02,Lebanon,Pennsylvania,42075,1361,43 +2020-07-03,Lebanon,Pennsylvania,42075,1375,43 +2020-07-04,Lebanon,Pennsylvania,42075,1380,44 +2020-07-05,Lebanon,Pennsylvania,42075,1383,44 +2020-07-06,Lebanon,Pennsylvania,42075,1383,44 +2020-07-07,Lebanon,Pennsylvania,42075,1389,45 +2020-07-08,Lebanon,Pennsylvania,42075,1399,45 +2020-07-09,Lebanon,Pennsylvania,42075,1404,47 +2020-03-15,Lehigh,Pennsylvania,42077,1,0 +2020-03-16,Lehigh,Pennsylvania,42077,1,0 +2020-03-17,Lehigh,Pennsylvania,42077,1,0 +2020-03-18,Lehigh,Pennsylvania,42077,1,0 +2020-03-19,Lehigh,Pennsylvania,42077,1,0 +2020-03-20,Lehigh,Pennsylvania,42077,2,0 +2020-03-21,Lehigh,Pennsylvania,42077,13,0 +2020-03-22,Lehigh,Pennsylvania,42077,19,0 +2020-03-23,Lehigh,Pennsylvania,42077,25,0 +2020-03-24,Lehigh,Pennsylvania,42077,27,0 +2020-03-25,Lehigh,Pennsylvania,42077,38,0 +2020-03-26,Lehigh,Pennsylvania,42077,63,1 +2020-03-27,Lehigh,Pennsylvania,42077,93,2 +2020-03-28,Lehigh,Pennsylvania,42077,109,3 +2020-03-29,Lehigh,Pennsylvania,42077,151,3 +2020-03-30,Lehigh,Pennsylvania,42077,231,3 +2020-03-31,Lehigh,Pennsylvania,42077,272,4 +2020-04-01,Lehigh,Pennsylvania,42077,374,5 +2020-04-02,Lehigh,Pennsylvania,42077,479,5 +2020-04-03,Lehigh,Pennsylvania,42077,584,5 +2020-04-04,Lehigh,Pennsylvania,42077,804,7 +2020-04-05,Lehigh,Pennsylvania,42077,877,8 +2020-04-06,Lehigh,Pennsylvania,42077,1006,8 +2020-04-07,Lehigh,Pennsylvania,42077,1146,10 +2020-04-08,Lehigh,Pennsylvania,42077,1319,11 +2020-04-09,Lehigh,Pennsylvania,42077,1466,13 +2020-04-10,Lehigh,Pennsylvania,42077,1562,16 +2020-04-11,Lehigh,Pennsylvania,42077,1620,16 +2020-04-12,Lehigh,Pennsylvania,42077,1684,18 +2020-04-13,Lehigh,Pennsylvania,42077,1747,19 +2020-04-14,Lehigh,Pennsylvania,42077,1803,23 +2020-04-15,Lehigh,Pennsylvania,42077,1922,25 +2020-04-16,Lehigh,Pennsylvania,42077,1999,28 +2020-04-17,Lehigh,Pennsylvania,42077,2092,29 +2020-04-18,Lehigh,Pennsylvania,42077,2141,29 +2020-04-19,Lehigh,Pennsylvania,42077,2203,32 +2020-04-20,Lehigh,Pennsylvania,42077,2245,33 +2020-04-21,Lehigh,Pennsylvania,42077,2295,49 +2020-04-22,Lehigh,Pennsylvania,42077,2374,49 +2020-04-23,Lehigh,Pennsylvania,42077,2418,49 +2020-04-24,Lehigh,Pennsylvania,42077,2478,49 +2020-04-25,Lehigh,Pennsylvania,42077,2551,50 +2020-04-26,Lehigh,Pennsylvania,42077,2601,51 +2020-04-27,Lehigh,Pennsylvania,42077,2636,56 +2020-04-28,Lehigh,Pennsylvania,42077,2685,64 +2020-04-29,Lehigh,Pennsylvania,42077,2719,72 +2020-04-30,Lehigh,Pennsylvania,42077,2796,74 +2020-05-01,Lehigh,Pennsylvania,42077,2850,80 +2020-05-02,Lehigh,Pennsylvania,42077,2896,83 +2020-05-03,Lehigh,Pennsylvania,42077,2924,83 +2020-05-04,Lehigh,Pennsylvania,42077,2963,83 +2020-05-05,Lehigh,Pennsylvania,42077,2999,94 +2020-05-06,Lehigh,Pennsylvania,42077,3063,102 +2020-05-07,Lehigh,Pennsylvania,42077,3102,111 +2020-05-08,Lehigh,Pennsylvania,42077,3140,114 +2020-05-09,Lehigh,Pennsylvania,42077,3169,120 +2020-05-10,Lehigh,Pennsylvania,42077,3241,121 +2020-05-11,Lehigh,Pennsylvania,42077,3259,121 +2020-05-12,Lehigh,Pennsylvania,42077,3286,123 +2020-05-13,Lehigh,Pennsylvania,42077,3318,129 +2020-05-14,Lehigh,Pennsylvania,42077,3378,133 +2020-05-15,Lehigh,Pennsylvania,42077,3396,136 +2020-05-16,Lehigh,Pennsylvania,42077,3440,139 +2020-05-17,Lehigh,Pennsylvania,42077,3470,139 +2020-05-18,Lehigh,Pennsylvania,42077,3491,173 +2020-05-19,Lehigh,Pennsylvania,42077,3513,182 +2020-05-20,Lehigh,Pennsylvania,42077,3550,188 +2020-05-21,Lehigh,Pennsylvania,42077,3586,192 +2020-05-22,Lehigh,Pennsylvania,42077,3613,197 +2020-05-23,Lehigh,Pennsylvania,42077,3628,202 +2020-05-24,Lehigh,Pennsylvania,42077,3651,206 +2020-05-25,Lehigh,Pennsylvania,42077,3667,209 +2020-05-26,Lehigh,Pennsylvania,42077,3676,210 +2020-05-27,Lehigh,Pennsylvania,42077,3699,215 +2020-05-28,Lehigh,Pennsylvania,42077,3719,218 +2020-05-29,Lehigh,Pennsylvania,42077,3738,222 +2020-05-30,Lehigh,Pennsylvania,42077,3747,228 +2020-05-31,Lehigh,Pennsylvania,42077,3765,228 +2020-06-01,Lehigh,Pennsylvania,42077,3770,228 +2020-06-02,Lehigh,Pennsylvania,42077,3780,235 +2020-06-03,Lehigh,Pennsylvania,42077,3802,239 +2020-06-04,Lehigh,Pennsylvania,42077,3817,242 +2020-06-05,Lehigh,Pennsylvania,42077,3829,245 +2020-06-06,Lehigh,Pennsylvania,42077,3846,248 +2020-06-07,Lehigh,Pennsylvania,42077,3858,248 +2020-06-08,Lehigh,Pennsylvania,42077,3871,249 +2020-06-09,Lehigh,Pennsylvania,42077,3890,253 +2020-06-10,Lehigh,Pennsylvania,42077,3895,259 +2020-06-11,Lehigh,Pennsylvania,42077,3907,263 +2020-06-12,Lehigh,Pennsylvania,42077,3926,264 +2020-06-13,Lehigh,Pennsylvania,42077,3939,267 +2020-06-14,Lehigh,Pennsylvania,42077,3953,267 +2020-06-15,Lehigh,Pennsylvania,42077,3957,269 +2020-06-16,Lehigh,Pennsylvania,42077,3973,271 +2020-06-17,Lehigh,Pennsylvania,42077,3978,273 +2020-06-18,Lehigh,Pennsylvania,42077,3997,276 +2020-06-19,Lehigh,Pennsylvania,42077,4024,277 +2020-06-20,Lehigh,Pennsylvania,42077,4072,278 +2020-06-21,Lehigh,Pennsylvania,42077,4085,278 +2020-06-22,Lehigh,Pennsylvania,42077,4091,279 +2020-06-23,Lehigh,Pennsylvania,42077,4109,281 +2020-06-24,Lehigh,Pennsylvania,42077,4130,284 +2020-06-25,Lehigh,Pennsylvania,42077,4164,285 +2020-06-26,Lehigh,Pennsylvania,42077,4187,288 +2020-06-27,Lehigh,Pennsylvania,42077,4205,292 +2020-06-28,Lehigh,Pennsylvania,42077,4214,292 +2020-06-29,Lehigh,Pennsylvania,42077,4220,294 +2020-06-30,Lehigh,Pennsylvania,42077,4235,297 +2020-07-01,Lehigh,Pennsylvania,42077,4258,297 +2020-07-02,Lehigh,Pennsylvania,42077,4280,305 +2020-07-03,Lehigh,Pennsylvania,42077,4292,307 +2020-07-04,Lehigh,Pennsylvania,42077,4303,307 +2020-07-05,Lehigh,Pennsylvania,42077,4311,307 +2020-07-06,Lehigh,Pennsylvania,42077,4317,307 +2020-07-07,Lehigh,Pennsylvania,42077,4334,309 +2020-07-08,Lehigh,Pennsylvania,42077,4354,312 +2020-07-09,Lehigh,Pennsylvania,42077,4370,315 +2020-03-15,Luzerne,Pennsylvania,42079,1,0 +2020-03-16,Luzerne,Pennsylvania,42079,1,0 +2020-03-17,Luzerne,Pennsylvania,42079,1,0 +2020-03-18,Luzerne,Pennsylvania,42079,1,0 +2020-03-19,Luzerne,Pennsylvania,42079,1,0 +2020-03-20,Luzerne,Pennsylvania,42079,2,0 +2020-03-21,Luzerne,Pennsylvania,42079,6,0 +2020-03-22,Luzerne,Pennsylvania,42079,7,0 +2020-03-23,Luzerne,Pennsylvania,42079,10,0 +2020-03-24,Luzerne,Pennsylvania,42079,21,0 +2020-03-25,Luzerne,Pennsylvania,42079,27,1 +2020-03-26,Luzerne,Pennsylvania,42079,36,1 +2020-03-27,Luzerne,Pennsylvania,42079,55,2 +2020-03-28,Luzerne,Pennsylvania,42079,65,2 +2020-03-29,Luzerne,Pennsylvania,42079,94,2 +2020-03-30,Luzerne,Pennsylvania,42079,150,3 +2020-03-31,Luzerne,Pennsylvania,42079,212,4 +2020-04-01,Luzerne,Pennsylvania,42079,282,4 +2020-04-02,Luzerne,Pennsylvania,42079,384,5 +2020-04-03,Luzerne,Pennsylvania,42079,484,5 +2020-04-04,Luzerne,Pennsylvania,42079,648,5 +2020-04-05,Luzerne,Pennsylvania,42079,741,5 +2020-04-06,Luzerne,Pennsylvania,42079,849,5 +2020-04-07,Luzerne,Pennsylvania,42079,982,8 +2020-04-08,Luzerne,Pennsylvania,42079,1134,11 +2020-04-09,Luzerne,Pennsylvania,42079,1241,12 +2020-04-10,Luzerne,Pennsylvania,42079,1325,15 +2020-04-11,Luzerne,Pennsylvania,42079,1372,17 +2020-04-12,Luzerne,Pennsylvania,42079,1411,17 +2020-04-13,Luzerne,Pennsylvania,42079,1446,21 +2020-04-14,Luzerne,Pennsylvania,42079,1523,26 +2020-04-15,Luzerne,Pennsylvania,42079,1567,27 +2020-04-16,Luzerne,Pennsylvania,42079,1611,28 +2020-04-17,Luzerne,Pennsylvania,42079,1668,31 +2020-04-18,Luzerne,Pennsylvania,42079,1712,32 +2020-04-19,Luzerne,Pennsylvania,42079,1741,34 +2020-04-20,Luzerne,Pennsylvania,42079,1767,36 +2020-04-21,Luzerne,Pennsylvania,42079,1800,50 +2020-04-22,Luzerne,Pennsylvania,42079,1848,60 +2020-04-23,Luzerne,Pennsylvania,42079,1880,58 +2020-04-24,Luzerne,Pennsylvania,42079,1921,62 +2020-04-25,Luzerne,Pennsylvania,42079,1962,66 +2020-04-26,Luzerne,Pennsylvania,42079,2008,67 +2020-04-27,Luzerne,Pennsylvania,42079,2035,71 +2020-04-28,Luzerne,Pennsylvania,42079,2078,74 +2020-04-29,Luzerne,Pennsylvania,42079,2111,82 +2020-04-30,Luzerne,Pennsylvania,42079,2143,88 +2020-05-01,Luzerne,Pennsylvania,42079,2173,92 +2020-05-02,Luzerne,Pennsylvania,42079,2211,97 +2020-05-03,Luzerne,Pennsylvania,42079,2240,97 +2020-05-04,Luzerne,Pennsylvania,42079,2255,101 +2020-05-05,Luzerne,Pennsylvania,42079,2280,104 +2020-05-06,Luzerne,Pennsylvania,42079,2306,107 +2020-05-07,Luzerne,Pennsylvania,42079,2332,114 +2020-05-08,Luzerne,Pennsylvania,42079,2347,120 +2020-05-09,Luzerne,Pennsylvania,42079,2356,111 +2020-05-10,Luzerne,Pennsylvania,42079,2416,111 +2020-05-11,Luzerne,Pennsylvania,42079,2426,112 +2020-05-12,Luzerne,Pennsylvania,42079,2449,120 +2020-05-13,Luzerne,Pennsylvania,42079,2467,123 +2020-05-14,Luzerne,Pennsylvania,42079,2477,124 +2020-05-15,Luzerne,Pennsylvania,42079,2491,127 +2020-05-16,Luzerne,Pennsylvania,42079,2513,127 +2020-05-17,Luzerne,Pennsylvania,42079,2526,127 +2020-05-18,Luzerne,Pennsylvania,42079,2532,122 +2020-05-19,Luzerne,Pennsylvania,42079,2554,124 +2020-05-20,Luzerne,Pennsylvania,42079,2572,128 +2020-05-21,Luzerne,Pennsylvania,42079,2594,130 +2020-05-22,Luzerne,Pennsylvania,42079,2620,133 +2020-05-23,Luzerne,Pennsylvania,42079,2631,135 +2020-05-24,Luzerne,Pennsylvania,42079,2645,135 +2020-05-25,Luzerne,Pennsylvania,42079,2651,135 +2020-05-26,Luzerne,Pennsylvania,42079,2662,135 +2020-05-27,Luzerne,Pennsylvania,42079,2677,138 +2020-05-28,Luzerne,Pennsylvania,42079,2689,139 +2020-05-29,Luzerne,Pennsylvania,42079,2711,144 +2020-05-30,Luzerne,Pennsylvania,42079,2722,147 +2020-05-31,Luzerne,Pennsylvania,42079,2736,149 +2020-06-01,Luzerne,Pennsylvania,42079,2739,149 +2020-06-02,Luzerne,Pennsylvania,42079,2750,153 +2020-06-03,Luzerne,Pennsylvania,42079,2766,155 +2020-06-04,Luzerne,Pennsylvania,42079,2773,156 +2020-06-05,Luzerne,Pennsylvania,42079,2782,157 +2020-06-06,Luzerne,Pennsylvania,42079,2791,157 +2020-06-07,Luzerne,Pennsylvania,42079,2793,157 +2020-06-08,Luzerne,Pennsylvania,42079,2793,158 +2020-06-09,Luzerne,Pennsylvania,42079,2798,160 +2020-06-10,Luzerne,Pennsylvania,42079,2810,161 +2020-06-11,Luzerne,Pennsylvania,42079,2813,161 +2020-06-12,Luzerne,Pennsylvania,42079,2823,162 +2020-06-13,Luzerne,Pennsylvania,42079,2824,164 +2020-06-14,Luzerne,Pennsylvania,42079,2830,164 +2020-06-15,Luzerne,Pennsylvania,42079,2835,168 +2020-06-16,Luzerne,Pennsylvania,42079,2840,169 +2020-06-17,Luzerne,Pennsylvania,42079,2841,169 +2020-06-18,Luzerne,Pennsylvania,42079,2845,170 +2020-06-19,Luzerne,Pennsylvania,42079,2850,170 +2020-06-20,Luzerne,Pennsylvania,42079,2861,170 +2020-06-21,Luzerne,Pennsylvania,42079,2864,171 +2020-06-22,Luzerne,Pennsylvania,42079,2870,171 +2020-06-23,Luzerne,Pennsylvania,42079,2873,172 +2020-06-24,Luzerne,Pennsylvania,42079,2874,173 +2020-06-25,Luzerne,Pennsylvania,42079,2883,174 +2020-06-26,Luzerne,Pennsylvania,42079,2891,176 +2020-06-27,Luzerne,Pennsylvania,42079,2898,176 +2020-06-28,Luzerne,Pennsylvania,42079,2903,176 +2020-06-29,Luzerne,Pennsylvania,42079,2906,177 +2020-06-30,Luzerne,Pennsylvania,42079,2910,177 +2020-07-01,Luzerne,Pennsylvania,42079,2915,177 +2020-07-02,Luzerne,Pennsylvania,42079,2927,177 +2020-07-03,Luzerne,Pennsylvania,42079,2939,178 +2020-07-04,Luzerne,Pennsylvania,42079,2950,178 +2020-07-05,Luzerne,Pennsylvania,42079,2956,178 +2020-07-06,Luzerne,Pennsylvania,42079,2958,178 +2020-07-07,Luzerne,Pennsylvania,42079,2964,179 +2020-07-08,Luzerne,Pennsylvania,42079,2967,179 +2020-07-09,Luzerne,Pennsylvania,42079,2979,179 +2020-03-25,Lycoming,Pennsylvania,42081,1,0 +2020-03-26,Lycoming,Pennsylvania,42081,1,0 +2020-03-27,Lycoming,Pennsylvania,42081,2,0 +2020-03-28,Lycoming,Pennsylvania,42081,2,0 +2020-03-29,Lycoming,Pennsylvania,42081,3,0 +2020-03-30,Lycoming,Pennsylvania,42081,4,0 +2020-03-31,Lycoming,Pennsylvania,42081,6,0 +2020-04-01,Lycoming,Pennsylvania,42081,7,0 +2020-04-02,Lycoming,Pennsylvania,42081,7,0 +2020-04-03,Lycoming,Pennsylvania,42081,8,0 +2020-04-04,Lycoming,Pennsylvania,42081,10,0 +2020-04-05,Lycoming,Pennsylvania,42081,9,0 +2020-04-06,Lycoming,Pennsylvania,42081,10,0 +2020-04-07,Lycoming,Pennsylvania,42081,12,0 +2020-04-08,Lycoming,Pennsylvania,42081,15,0 +2020-04-09,Lycoming,Pennsylvania,42081,17,0 +2020-04-10,Lycoming,Pennsylvania,42081,18,0 +2020-04-11,Lycoming,Pennsylvania,42081,20,0 +2020-04-12,Lycoming,Pennsylvania,42081,23,0 +2020-04-13,Lycoming,Pennsylvania,42081,28,0 +2020-04-14,Lycoming,Pennsylvania,42081,29,0 +2020-04-15,Lycoming,Pennsylvania,42081,30,0 +2020-04-16,Lycoming,Pennsylvania,42081,30,0 +2020-04-17,Lycoming,Pennsylvania,42081,32,0 +2020-04-18,Lycoming,Pennsylvania,42081,36,0 +2020-04-19,Lycoming,Pennsylvania,42081,37,0 +2020-04-20,Lycoming,Pennsylvania,42081,40,0 +2020-04-21,Lycoming,Pennsylvania,42081,42,2 +2020-04-22,Lycoming,Pennsylvania,42081,43,2 +2020-04-23,Lycoming,Pennsylvania,42081,44,2 +2020-04-24,Lycoming,Pennsylvania,42081,48,2 +2020-04-25,Lycoming,Pennsylvania,42081,53,2 +2020-04-26,Lycoming,Pennsylvania,42081,55,2 +2020-04-27,Lycoming,Pennsylvania,42081,57,2 +2020-04-28,Lycoming,Pennsylvania,42081,58,2 +2020-04-29,Lycoming,Pennsylvania,42081,61,2 +2020-04-30,Lycoming,Pennsylvania,42081,68,2 +2020-05-01,Lycoming,Pennsylvania,42081,71,2 +2020-05-02,Lycoming,Pennsylvania,42081,81,2 +2020-05-03,Lycoming,Pennsylvania,42081,85,2 +2020-05-04,Lycoming,Pennsylvania,42081,86,3 +2020-05-05,Lycoming,Pennsylvania,42081,86,4 +2020-05-06,Lycoming,Pennsylvania,42081,90,4 +2020-05-07,Lycoming,Pennsylvania,42081,99,4 +2020-05-08,Lycoming,Pennsylvania,42081,109,4 +2020-05-09,Lycoming,Pennsylvania,42081,127,4 +2020-05-10,Lycoming,Pennsylvania,42081,131,4 +2020-05-11,Lycoming,Pennsylvania,42081,132,4 +2020-05-12,Lycoming,Pennsylvania,42081,132,5 +2020-05-13,Lycoming,Pennsylvania,42081,139,7 +2020-05-14,Lycoming,Pennsylvania,42081,139,7 +2020-05-15,Lycoming,Pennsylvania,42081,141,7 +2020-05-16,Lycoming,Pennsylvania,42081,146,7 +2020-05-17,Lycoming,Pennsylvania,42081,147,7 +2020-05-18,Lycoming,Pennsylvania,42081,149,8 +2020-05-19,Lycoming,Pennsylvania,42081,149,9 +2020-05-20,Lycoming,Pennsylvania,42081,152,9 +2020-05-21,Lycoming,Pennsylvania,42081,152,10 +2020-05-22,Lycoming,Pennsylvania,42081,155,12 +2020-05-23,Lycoming,Pennsylvania,42081,158,13 +2020-05-24,Lycoming,Pennsylvania,42081,158,14 +2020-05-25,Lycoming,Pennsylvania,42081,160,14 +2020-05-26,Lycoming,Pennsylvania,42081,161,14 +2020-05-27,Lycoming,Pennsylvania,42081,161,15 +2020-05-28,Lycoming,Pennsylvania,42081,162,16 +2020-05-29,Lycoming,Pennsylvania,42081,162,16 +2020-05-30,Lycoming,Pennsylvania,42081,164,17 +2020-05-31,Lycoming,Pennsylvania,42081,164,17 +2020-06-01,Lycoming,Pennsylvania,42081,164,17 +2020-06-02,Lycoming,Pennsylvania,42081,164,17 +2020-06-03,Lycoming,Pennsylvania,42081,166,17 +2020-06-04,Lycoming,Pennsylvania,42081,166,17 +2020-06-05,Lycoming,Pennsylvania,42081,166,17 +2020-06-06,Lycoming,Pennsylvania,42081,166,17 +2020-06-07,Lycoming,Pennsylvania,42081,167,17 +2020-06-08,Lycoming,Pennsylvania,42081,168,17 +2020-06-09,Lycoming,Pennsylvania,42081,168,17 +2020-06-10,Lycoming,Pennsylvania,42081,168,17 +2020-06-11,Lycoming,Pennsylvania,42081,168,17 +2020-06-12,Lycoming,Pennsylvania,42081,168,17 +2020-06-13,Lycoming,Pennsylvania,42081,171,17 +2020-06-14,Lycoming,Pennsylvania,42081,171,17 +2020-06-15,Lycoming,Pennsylvania,42081,171,17 +2020-06-16,Lycoming,Pennsylvania,42081,172,17 +2020-06-17,Lycoming,Pennsylvania,42081,172,18 +2020-06-18,Lycoming,Pennsylvania,42081,172,18 +2020-06-19,Lycoming,Pennsylvania,42081,172,19 +2020-06-20,Lycoming,Pennsylvania,42081,172,19 +2020-06-21,Lycoming,Pennsylvania,42081,173,19 +2020-06-22,Lycoming,Pennsylvania,42081,173,19 +2020-06-23,Lycoming,Pennsylvania,42081,173,19 +2020-06-24,Lycoming,Pennsylvania,42081,175,19 +2020-06-25,Lycoming,Pennsylvania,42081,176,19 +2020-06-26,Lycoming,Pennsylvania,42081,176,19 +2020-06-27,Lycoming,Pennsylvania,42081,176,19 +2020-06-28,Lycoming,Pennsylvania,42081,177,19 +2020-06-29,Lycoming,Pennsylvania,42081,179,19 +2020-06-30,Lycoming,Pennsylvania,42081,182,19 +2020-07-01,Lycoming,Pennsylvania,42081,187,19 +2020-07-02,Lycoming,Pennsylvania,42081,193,20 +2020-07-03,Lycoming,Pennsylvania,42081,196,20 +2020-07-04,Lycoming,Pennsylvania,42081,208,20 +2020-07-05,Lycoming,Pennsylvania,42081,214,20 +2020-07-06,Lycoming,Pennsylvania,42081,214,20 +2020-07-07,Lycoming,Pennsylvania,42081,217,20 +2020-07-08,Lycoming,Pennsylvania,42081,232,20 +2020-07-09,Lycoming,Pennsylvania,42081,234,20 +2020-03-28,McKean,Pennsylvania,42083,1,0 +2020-03-29,McKean,Pennsylvania,42083,1,0 +2020-03-30,McKean,Pennsylvania,42083,1,0 +2020-03-31,McKean,Pennsylvania,42083,1,0 +2020-04-01,McKean,Pennsylvania,42083,1,0 +2020-04-02,McKean,Pennsylvania,42083,1,0 +2020-04-03,McKean,Pennsylvania,42083,1,0 +2020-04-04,McKean,Pennsylvania,42083,1,0 +2020-04-05,McKean,Pennsylvania,42083,1,0 +2020-04-06,McKean,Pennsylvania,42083,1,0 +2020-04-07,McKean,Pennsylvania,42083,1,0 +2020-04-08,McKean,Pennsylvania,42083,1,0 +2020-04-09,McKean,Pennsylvania,42083,1,0 +2020-04-10,McKean,Pennsylvania,42083,1,0 +2020-04-11,McKean,Pennsylvania,42083,2,0 +2020-04-12,McKean,Pennsylvania,42083,2,0 +2020-04-13,McKean,Pennsylvania,42083,3,0 +2020-04-14,McKean,Pennsylvania,42083,4,0 +2020-04-15,McKean,Pennsylvania,42083,4,0 +2020-04-16,McKean,Pennsylvania,42083,4,0 +2020-04-17,McKean,Pennsylvania,42083,4,0 +2020-04-18,McKean,Pennsylvania,42083,4,0 +2020-04-19,McKean,Pennsylvania,42083,4,0 +2020-04-20,McKean,Pennsylvania,42083,4,0 +2020-04-21,McKean,Pennsylvania,42083,5,0 +2020-04-22,McKean,Pennsylvania,42083,5,0 +2020-04-23,McKean,Pennsylvania,42083,5,0 +2020-04-24,McKean,Pennsylvania,42083,5,0 +2020-04-25,McKean,Pennsylvania,42083,5,0 +2020-04-26,McKean,Pennsylvania,42083,5,0 +2020-04-27,McKean,Pennsylvania,42083,5,0 +2020-04-28,McKean,Pennsylvania,42083,5,0 +2020-04-29,McKean,Pennsylvania,42083,6,0 +2020-04-30,McKean,Pennsylvania,42083,6,0 +2020-05-01,McKean,Pennsylvania,42083,6,0 +2020-05-02,McKean,Pennsylvania,42083,6,0 +2020-05-03,McKean,Pennsylvania,42083,6,0 +2020-05-04,McKean,Pennsylvania,42083,6,0 +2020-05-05,McKean,Pennsylvania,42083,6,0 +2020-05-06,McKean,Pennsylvania,42083,6,0 +2020-05-07,McKean,Pennsylvania,42083,6,1 +2020-05-08,McKean,Pennsylvania,42083,6,1 +2020-05-09,McKean,Pennsylvania,42083,6,1 +2020-05-10,McKean,Pennsylvania,42083,6,1 +2020-05-11,McKean,Pennsylvania,42083,6,1 +2020-05-12,McKean,Pennsylvania,42083,8,1 +2020-05-13,McKean,Pennsylvania,42083,8,1 +2020-05-14,McKean,Pennsylvania,42083,8,1 +2020-05-15,McKean,Pennsylvania,42083,10,1 +2020-05-16,McKean,Pennsylvania,42083,10,1 +2020-05-17,McKean,Pennsylvania,42083,11,1 +2020-05-18,McKean,Pennsylvania,42083,11,1 +2020-05-19,McKean,Pennsylvania,42083,11,1 +2020-05-20,McKean,Pennsylvania,42083,11,1 +2020-05-21,McKean,Pennsylvania,42083,11,1 +2020-05-22,McKean,Pennsylvania,42083,11,1 +2020-05-23,McKean,Pennsylvania,42083,11,1 +2020-05-24,McKean,Pennsylvania,42083,11,1 +2020-05-25,McKean,Pennsylvania,42083,12,1 +2020-05-26,McKean,Pennsylvania,42083,12,1 +2020-05-27,McKean,Pennsylvania,42083,12,1 +2020-05-28,McKean,Pennsylvania,42083,12,1 +2020-05-29,McKean,Pennsylvania,42083,12,1 +2020-05-30,McKean,Pennsylvania,42083,12,1 +2020-05-31,McKean,Pennsylvania,42083,12,1 +2020-06-01,McKean,Pennsylvania,42083,12,1 +2020-06-02,McKean,Pennsylvania,42083,12,1 +2020-06-03,McKean,Pennsylvania,42083,12,1 +2020-06-04,McKean,Pennsylvania,42083,13,1 +2020-06-05,McKean,Pennsylvania,42083,13,1 +2020-06-06,McKean,Pennsylvania,42083,13,1 +2020-06-07,McKean,Pennsylvania,42083,13,1 +2020-06-08,McKean,Pennsylvania,42083,13,1 +2020-06-09,McKean,Pennsylvania,42083,13,1 +2020-06-10,McKean,Pennsylvania,42083,13,1 +2020-06-11,McKean,Pennsylvania,42083,13,1 +2020-06-12,McKean,Pennsylvania,42083,13,1 +2020-06-13,McKean,Pennsylvania,42083,13,1 +2020-06-14,McKean,Pennsylvania,42083,13,1 +2020-06-15,McKean,Pennsylvania,42083,13,1 +2020-06-16,McKean,Pennsylvania,42083,13,1 +2020-06-17,McKean,Pennsylvania,42083,13,1 +2020-06-18,McKean,Pennsylvania,42083,13,1 +2020-06-19,McKean,Pennsylvania,42083,13,1 +2020-06-20,McKean,Pennsylvania,42083,13,1 +2020-06-21,McKean,Pennsylvania,42083,14,1 +2020-06-22,McKean,Pennsylvania,42083,15,1 +2020-06-23,McKean,Pennsylvania,42083,15,1 +2020-06-24,McKean,Pennsylvania,42083,15,1 +2020-06-25,McKean,Pennsylvania,42083,15,1 +2020-06-26,McKean,Pennsylvania,42083,15,1 +2020-06-27,McKean,Pennsylvania,42083,15,1 +2020-06-28,McKean,Pennsylvania,42083,15,1 +2020-06-29,McKean,Pennsylvania,42083,15,1 +2020-06-30,McKean,Pennsylvania,42083,17,1 +2020-07-01,McKean,Pennsylvania,42083,18,1 +2020-07-02,McKean,Pennsylvania,42083,18,1 +2020-07-03,McKean,Pennsylvania,42083,20,1 +2020-07-04,McKean,Pennsylvania,42083,20,1 +2020-07-05,McKean,Pennsylvania,42083,20,1 +2020-07-06,McKean,Pennsylvania,42083,20,1 +2020-07-07,McKean,Pennsylvania,42083,20,1 +2020-07-08,McKean,Pennsylvania,42083,20,1 +2020-07-09,McKean,Pennsylvania,42083,20,1 +2020-03-22,Mercer,Pennsylvania,42085,1,0 +2020-03-23,Mercer,Pennsylvania,42085,1,0 +2020-03-24,Mercer,Pennsylvania,42085,2,0 +2020-03-25,Mercer,Pennsylvania,42085,2,0 +2020-03-26,Mercer,Pennsylvania,42085,3,0 +2020-03-27,Mercer,Pennsylvania,42085,4,0 +2020-03-28,Mercer,Pennsylvania,42085,6,0 +2020-03-29,Mercer,Pennsylvania,42085,7,0 +2020-03-30,Mercer,Pennsylvania,42085,7,0 +2020-03-31,Mercer,Pennsylvania,42085,8,0 +2020-04-01,Mercer,Pennsylvania,42085,8,0 +2020-04-02,Mercer,Pennsylvania,42085,9,0 +2020-04-03,Mercer,Pennsylvania,42085,10,0 +2020-04-04,Mercer,Pennsylvania,42085,14,0 +2020-04-05,Mercer,Pennsylvania,42085,18,0 +2020-04-06,Mercer,Pennsylvania,42085,18,0 +2020-04-07,Mercer,Pennsylvania,42085,26,0 +2020-04-08,Mercer,Pennsylvania,42085,27,0 +2020-04-09,Mercer,Pennsylvania,42085,30,0 +2020-04-10,Mercer,Pennsylvania,42085,36,0 +2020-04-11,Mercer,Pennsylvania,42085,38,0 +2020-04-12,Mercer,Pennsylvania,42085,40,0 +2020-04-13,Mercer,Pennsylvania,42085,43,0 +2020-04-14,Mercer,Pennsylvania,42085,44,0 +2020-04-15,Mercer,Pennsylvania,42085,47,0 +2020-04-16,Mercer,Pennsylvania,42085,50,0 +2020-04-17,Mercer,Pennsylvania,42085,56,1 +2020-04-18,Mercer,Pennsylvania,42085,57,1 +2020-04-19,Mercer,Pennsylvania,42085,59,1 +2020-04-20,Mercer,Pennsylvania,42085,59,1 +2020-04-21,Mercer,Pennsylvania,42085,59,1 +2020-04-22,Mercer,Pennsylvania,42085,59,1 +2020-04-23,Mercer,Pennsylvania,42085,60,1 +2020-04-24,Mercer,Pennsylvania,42085,64,1 +2020-04-25,Mercer,Pennsylvania,42085,64,1 +2020-04-26,Mercer,Pennsylvania,42085,65,1 +2020-04-27,Mercer,Pennsylvania,42085,65,1 +2020-04-28,Mercer,Pennsylvania,42085,66,1 +2020-04-29,Mercer,Pennsylvania,42085,66,1 +2020-04-30,Mercer,Pennsylvania,42085,66,1 +2020-05-01,Mercer,Pennsylvania,42085,66,1 +2020-05-02,Mercer,Pennsylvania,42085,66,1 +2020-05-03,Mercer,Pennsylvania,42085,66,1 +2020-05-04,Mercer,Pennsylvania,42085,66,1 +2020-05-05,Mercer,Pennsylvania,42085,67,1 +2020-05-06,Mercer,Pennsylvania,42085,69,1 +2020-05-07,Mercer,Pennsylvania,42085,70,1 +2020-05-08,Mercer,Pennsylvania,42085,70,2 +2020-05-09,Mercer,Pennsylvania,42085,73,2 +2020-05-10,Mercer,Pennsylvania,42085,73,2 +2020-05-11,Mercer,Pennsylvania,42085,75,2 +2020-05-12,Mercer,Pennsylvania,42085,77,2 +2020-05-13,Mercer,Pennsylvania,42085,78,2 +2020-05-14,Mercer,Pennsylvania,42085,81,2 +2020-05-15,Mercer,Pennsylvania,42085,83,2 +2020-05-16,Mercer,Pennsylvania,42085,91,2 +2020-05-17,Mercer,Pennsylvania,42085,91,2 +2020-05-18,Mercer,Pennsylvania,42085,94,4 +2020-05-19,Mercer,Pennsylvania,42085,96,4 +2020-05-20,Mercer,Pennsylvania,42085,96,4 +2020-05-21,Mercer,Pennsylvania,42085,97,4 +2020-05-22,Mercer,Pennsylvania,42085,102,4 +2020-05-23,Mercer,Pennsylvania,42085,103,4 +2020-05-24,Mercer,Pennsylvania,42085,104,4 +2020-05-25,Mercer,Pennsylvania,42085,105,4 +2020-05-26,Mercer,Pennsylvania,42085,105,4 +2020-05-27,Mercer,Pennsylvania,42085,106,4 +2020-05-28,Mercer,Pennsylvania,42085,106,4 +2020-05-29,Mercer,Pennsylvania,42085,107,5 +2020-05-30,Mercer,Pennsylvania,42085,107,5 +2020-05-31,Mercer,Pennsylvania,42085,107,5 +2020-06-01,Mercer,Pennsylvania,42085,107,5 +2020-06-02,Mercer,Pennsylvania,42085,107,5 +2020-06-03,Mercer,Pennsylvania,42085,107,5 +2020-06-04,Mercer,Pennsylvania,42085,110,6 +2020-06-05,Mercer,Pennsylvania,42085,110,6 +2020-06-06,Mercer,Pennsylvania,42085,111,6 +2020-06-07,Mercer,Pennsylvania,42085,111,6 +2020-06-08,Mercer,Pennsylvania,42085,111,6 +2020-06-09,Mercer,Pennsylvania,42085,113,6 +2020-06-10,Mercer,Pennsylvania,42085,114,6 +2020-06-11,Mercer,Pennsylvania,42085,114,6 +2020-06-12,Mercer,Pennsylvania,42085,114,6 +2020-06-13,Mercer,Pennsylvania,42085,114,6 +2020-06-14,Mercer,Pennsylvania,42085,114,6 +2020-06-15,Mercer,Pennsylvania,42085,115,6 +2020-06-16,Mercer,Pennsylvania,42085,117,6 +2020-06-17,Mercer,Pennsylvania,42085,117,6 +2020-06-18,Mercer,Pennsylvania,42085,118,6 +2020-06-19,Mercer,Pennsylvania,42085,118,6 +2020-06-20,Mercer,Pennsylvania,42085,118,6 +2020-06-21,Mercer,Pennsylvania,42085,119,6 +2020-06-22,Mercer,Pennsylvania,42085,119,6 +2020-06-23,Mercer,Pennsylvania,42085,119,6 +2020-06-24,Mercer,Pennsylvania,42085,120,6 +2020-06-25,Mercer,Pennsylvania,42085,126,6 +2020-06-26,Mercer,Pennsylvania,42085,130,6 +2020-06-27,Mercer,Pennsylvania,42085,132,6 +2020-06-28,Mercer,Pennsylvania,42085,135,6 +2020-06-29,Mercer,Pennsylvania,42085,136,6 +2020-06-30,Mercer,Pennsylvania,42085,140,6 +2020-07-01,Mercer,Pennsylvania,42085,140,6 +2020-07-02,Mercer,Pennsylvania,42085,142,6 +2020-07-03,Mercer,Pennsylvania,42085,143,6 +2020-07-04,Mercer,Pennsylvania,42085,150,6 +2020-07-05,Mercer,Pennsylvania,42085,154,6 +2020-07-06,Mercer,Pennsylvania,42085,158,6 +2020-07-07,Mercer,Pennsylvania,42085,159,6 +2020-07-08,Mercer,Pennsylvania,42085,159,6 +2020-07-09,Mercer,Pennsylvania,42085,161,6 +2020-03-29,Mifflin,Pennsylvania,42087,2,0 +2020-03-30,Mifflin,Pennsylvania,42087,2,0 +2020-03-31,Mifflin,Pennsylvania,42087,2,0 +2020-04-01,Mifflin,Pennsylvania,42087,2,0 +2020-04-02,Mifflin,Pennsylvania,42087,2,0 +2020-04-03,Mifflin,Pennsylvania,42087,2,0 +2020-04-04,Mifflin,Pennsylvania,42087,4,0 +2020-04-05,Mifflin,Pennsylvania,42087,9,0 +2020-04-06,Mifflin,Pennsylvania,42087,5,0 +2020-04-07,Mifflin,Pennsylvania,42087,6,0 +2020-04-08,Mifflin,Pennsylvania,42087,10,0 +2020-04-09,Mifflin,Pennsylvania,42087,10,0 +2020-04-10,Mifflin,Pennsylvania,42087,11,0 +2020-04-11,Mifflin,Pennsylvania,42087,10,0 +2020-04-12,Mifflin,Pennsylvania,42087,12,0 +2020-04-13,Mifflin,Pennsylvania,42087,17,0 +2020-04-14,Mifflin,Pennsylvania,42087,16,0 +2020-04-15,Mifflin,Pennsylvania,42087,15,0 +2020-04-16,Mifflin,Pennsylvania,42087,15,0 +2020-04-17,Mifflin,Pennsylvania,42087,17,0 +2020-04-18,Mifflin,Pennsylvania,42087,19,0 +2020-04-19,Mifflin,Pennsylvania,42087,20,0 +2020-04-20,Mifflin,Pennsylvania,42087,20,0 +2020-04-21,Mifflin,Pennsylvania,42087,21,0 +2020-04-22,Mifflin,Pennsylvania,42087,22,0 +2020-04-23,Mifflin,Pennsylvania,42087,24,0 +2020-04-24,Mifflin,Pennsylvania,42087,26,0 +2020-04-25,Mifflin,Pennsylvania,42087,26,0 +2020-04-26,Mifflin,Pennsylvania,42087,27,0 +2020-04-27,Mifflin,Pennsylvania,42087,30,0 +2020-04-28,Mifflin,Pennsylvania,42087,34,0 +2020-04-29,Mifflin,Pennsylvania,42087,36,0 +2020-04-30,Mifflin,Pennsylvania,42087,38,0 +2020-05-01,Mifflin,Pennsylvania,42087,37,0 +2020-05-02,Mifflin,Pennsylvania,42087,38,0 +2020-05-03,Mifflin,Pennsylvania,42087,39,0 +2020-05-04,Mifflin,Pennsylvania,42087,39,0 +2020-05-05,Mifflin,Pennsylvania,42087,42,0 +2020-05-06,Mifflin,Pennsylvania,42087,45,0 +2020-05-07,Mifflin,Pennsylvania,42087,48,0 +2020-05-08,Mifflin,Pennsylvania,42087,50,0 +2020-05-09,Mifflin,Pennsylvania,42087,50,0 +2020-05-10,Mifflin,Pennsylvania,42087,52,0 +2020-05-11,Mifflin,Pennsylvania,42087,52,0 +2020-05-12,Mifflin,Pennsylvania,42087,52,0 +2020-05-13,Mifflin,Pennsylvania,42087,53,0 +2020-05-14,Mifflin,Pennsylvania,42087,54,0 +2020-05-15,Mifflin,Pennsylvania,42087,57,0 +2020-05-16,Mifflin,Pennsylvania,42087,57,0 +2020-05-17,Mifflin,Pennsylvania,42087,57,0 +2020-05-18,Mifflin,Pennsylvania,42087,57,1 +2020-05-19,Mifflin,Pennsylvania,42087,57,1 +2020-05-20,Mifflin,Pennsylvania,42087,57,1 +2020-05-21,Mifflin,Pennsylvania,42087,57,1 +2020-05-22,Mifflin,Pennsylvania,42087,57,1 +2020-05-23,Mifflin,Pennsylvania,42087,57,1 +2020-05-24,Mifflin,Pennsylvania,42087,58,1 +2020-05-25,Mifflin,Pennsylvania,42087,58,1 +2020-05-26,Mifflin,Pennsylvania,42087,58,1 +2020-05-27,Mifflin,Pennsylvania,42087,58,1 +2020-05-28,Mifflin,Pennsylvania,42087,58,1 +2020-05-29,Mifflin,Pennsylvania,42087,58,1 +2020-05-30,Mifflin,Pennsylvania,42087,59,1 +2020-05-31,Mifflin,Pennsylvania,42087,59,1 +2020-06-01,Mifflin,Pennsylvania,42087,59,1 +2020-06-02,Mifflin,Pennsylvania,42087,59,1 +2020-06-03,Mifflin,Pennsylvania,42087,59,1 +2020-06-04,Mifflin,Pennsylvania,42087,59,1 +2020-06-05,Mifflin,Pennsylvania,42087,59,1 +2020-06-06,Mifflin,Pennsylvania,42087,59,1 +2020-06-07,Mifflin,Pennsylvania,42087,59,1 +2020-06-08,Mifflin,Pennsylvania,42087,59,1 +2020-06-09,Mifflin,Pennsylvania,42087,59,1 +2020-06-10,Mifflin,Pennsylvania,42087,59,1 +2020-06-11,Mifflin,Pennsylvania,42087,59,1 +2020-06-12,Mifflin,Pennsylvania,42087,59,1 +2020-06-13,Mifflin,Pennsylvania,42087,59,1 +2020-06-14,Mifflin,Pennsylvania,42087,59,1 +2020-06-15,Mifflin,Pennsylvania,42087,59,1 +2020-06-16,Mifflin,Pennsylvania,42087,60,1 +2020-06-17,Mifflin,Pennsylvania,42087,60,1 +2020-06-18,Mifflin,Pennsylvania,42087,61,1 +2020-06-19,Mifflin,Pennsylvania,42087,61,1 +2020-06-20,Mifflin,Pennsylvania,42087,61,1 +2020-06-21,Mifflin,Pennsylvania,42087,61,1 +2020-06-22,Mifflin,Pennsylvania,42087,61,1 +2020-06-23,Mifflin,Pennsylvania,42087,61,1 +2020-06-24,Mifflin,Pennsylvania,42087,61,1 +2020-06-25,Mifflin,Pennsylvania,42087,61,1 +2020-06-26,Mifflin,Pennsylvania,42087,62,1 +2020-06-27,Mifflin,Pennsylvania,42087,62,1 +2020-06-28,Mifflin,Pennsylvania,42087,62,1 +2020-06-29,Mifflin,Pennsylvania,42087,63,1 +2020-06-30,Mifflin,Pennsylvania,42087,63,1 +2020-07-01,Mifflin,Pennsylvania,42087,63,1 +2020-07-02,Mifflin,Pennsylvania,42087,63,1 +2020-07-03,Mifflin,Pennsylvania,42087,63,1 +2020-07-04,Mifflin,Pennsylvania,42087,64,1 +2020-07-05,Mifflin,Pennsylvania,42087,64,1 +2020-07-06,Mifflin,Pennsylvania,42087,65,1 +2020-07-07,Mifflin,Pennsylvania,42087,66,1 +2020-07-08,Mifflin,Pennsylvania,42087,68,1 +2020-07-09,Mifflin,Pennsylvania,42087,70,1 +2020-03-09,Monroe,Pennsylvania,42089,1,0 +2020-03-10,Monroe,Pennsylvania,42089,1,0 +2020-03-11,Monroe,Pennsylvania,42089,2,0 +2020-03-12,Monroe,Pennsylvania,42089,2,0 +2020-03-13,Monroe,Pennsylvania,42089,3,0 +2020-03-14,Monroe,Pennsylvania,42089,3,0 +2020-03-15,Monroe,Pennsylvania,42089,7,0 +2020-03-16,Monroe,Pennsylvania,42089,9,0 +2020-03-17,Monroe,Pennsylvania,42089,9,0 +2020-03-18,Monroe,Pennsylvania,42089,9,0 +2020-03-19,Monroe,Pennsylvania,42089,15,0 +2020-03-20,Monroe,Pennsylvania,42089,19,0 +2020-03-21,Monroe,Pennsylvania,42089,25,0 +2020-03-22,Monroe,Pennsylvania,42089,31,0 +2020-03-23,Monroe,Pennsylvania,42089,43,1 +2020-03-24,Monroe,Pennsylvania,42089,45,1 +2020-03-25,Monroe,Pennsylvania,42089,51,1 +2020-03-26,Monroe,Pennsylvania,42089,67,2 +2020-03-27,Monroe,Pennsylvania,42089,98,2 +2020-03-28,Monroe,Pennsylvania,42089,106,2 +2020-03-29,Monroe,Pennsylvania,42089,135,3 +2020-03-30,Monroe,Pennsylvania,42089,182,7 +2020-03-31,Monroe,Pennsylvania,42089,236,7 +2020-04-01,Monroe,Pennsylvania,42089,278,8 +2020-04-02,Monroe,Pennsylvania,42089,321,10 +2020-04-03,Monroe,Pennsylvania,42089,397,10 +2020-04-04,Monroe,Pennsylvania,42089,484,11 +2020-04-05,Monroe,Pennsylvania,42089,528,11 +2020-04-06,Monroe,Pennsylvania,42089,572,11 +2020-04-07,Monroe,Pennsylvania,42089,610,12 +2020-04-08,Monroe,Pennsylvania,42089,671,17 +2020-04-09,Monroe,Pennsylvania,42089,716,19 +2020-04-10,Monroe,Pennsylvania,42089,752,19 +2020-04-11,Monroe,Pennsylvania,42089,774,22 +2020-04-12,Monroe,Pennsylvania,42089,795,23 +2020-04-13,Monroe,Pennsylvania,42089,816,24 +2020-04-14,Monroe,Pennsylvania,42089,847,27 +2020-04-15,Monroe,Pennsylvania,42089,872,28 +2020-04-16,Monroe,Pennsylvania,42089,898,29 +2020-04-17,Monroe,Pennsylvania,42089,929,29 +2020-04-18,Monroe,Pennsylvania,42089,943,34 +2020-04-19,Monroe,Pennsylvania,42089,963,38 +2020-04-20,Monroe,Pennsylvania,42089,970,39 +2020-04-21,Monroe,Pennsylvania,42089,995,46 +2020-04-22,Monroe,Pennsylvania,42089,1015,48 +2020-04-23,Monroe,Pennsylvania,42089,1024,46 +2020-04-24,Monroe,Pennsylvania,42089,1037,46 +2020-04-25,Monroe,Pennsylvania,42089,1054,46 +2020-04-26,Monroe,Pennsylvania,42089,1065,46 +2020-04-27,Monroe,Pennsylvania,42089,1083,46 +2020-04-28,Monroe,Pennsylvania,42089,1097,48 +2020-04-29,Monroe,Pennsylvania,42089,1111,54 +2020-04-30,Monroe,Pennsylvania,42089,1127,54 +2020-05-01,Monroe,Pennsylvania,42089,1147,54 +2020-05-02,Monroe,Pennsylvania,42089,1165,55 +2020-05-03,Monroe,Pennsylvania,42089,1172,55 +2020-05-04,Monroe,Pennsylvania,42089,1173,55 +2020-05-05,Monroe,Pennsylvania,42089,1186,60 +2020-05-06,Monroe,Pennsylvania,42089,1190,60 +2020-05-07,Monroe,Pennsylvania,42089,1194,63 +2020-05-08,Monroe,Pennsylvania,42089,1198,63 +2020-05-09,Monroe,Pennsylvania,42089,1206,63 +2020-05-10,Monroe,Pennsylvania,42089,1218,64 +2020-05-11,Monroe,Pennsylvania,42089,1224,64 +2020-05-12,Monroe,Pennsylvania,42089,1229,64 +2020-05-13,Monroe,Pennsylvania,42089,1228,65 +2020-05-14,Monroe,Pennsylvania,42089,1240,69 +2020-05-15,Monroe,Pennsylvania,42089,1242,70 +2020-05-16,Monroe,Pennsylvania,42089,1248,70 +2020-05-17,Monroe,Pennsylvania,42089,1254,70 +2020-05-18,Monroe,Pennsylvania,42089,1259,88 +2020-05-19,Monroe,Pennsylvania,42089,1267,89 +2020-05-20,Monroe,Pennsylvania,42089,1278,93 +2020-05-21,Monroe,Pennsylvania,42089,1291,95 +2020-05-22,Monroe,Pennsylvania,42089,1295,97 +2020-05-23,Monroe,Pennsylvania,42089,1302,99 +2020-05-24,Monroe,Pennsylvania,42089,1304,99 +2020-05-25,Monroe,Pennsylvania,42089,1305,99 +2020-05-26,Monroe,Pennsylvania,42089,1305,99 +2020-05-27,Monroe,Pennsylvania,42089,1310,100 +2020-05-28,Monroe,Pennsylvania,42089,1311,101 +2020-05-29,Monroe,Pennsylvania,42089,1315,101 +2020-05-30,Monroe,Pennsylvania,42089,1318,101 +2020-05-31,Monroe,Pennsylvania,42089,1319,101 +2020-06-01,Monroe,Pennsylvania,42089,1320,101 +2020-06-02,Monroe,Pennsylvania,42089,1325,101 +2020-06-03,Monroe,Pennsylvania,42089,1326,102 +2020-06-04,Monroe,Pennsylvania,42089,1333,102 +2020-06-05,Monroe,Pennsylvania,42089,1335,102 +2020-06-06,Monroe,Pennsylvania,42089,1338,102 +2020-06-07,Monroe,Pennsylvania,42089,1338,102 +2020-06-08,Monroe,Pennsylvania,42089,1341,102 +2020-06-09,Monroe,Pennsylvania,42089,1342,102 +2020-06-10,Monroe,Pennsylvania,42089,1344,102 +2020-06-11,Monroe,Pennsylvania,42089,1346,103 +2020-06-12,Monroe,Pennsylvania,42089,1347,103 +2020-06-13,Monroe,Pennsylvania,42089,1347,104 +2020-06-14,Monroe,Pennsylvania,42089,1347,104 +2020-06-15,Monroe,Pennsylvania,42089,1350,105 +2020-06-16,Monroe,Pennsylvania,42089,1356,105 +2020-06-17,Monroe,Pennsylvania,42089,1357,105 +2020-06-18,Monroe,Pennsylvania,42089,1363,105 +2020-06-19,Monroe,Pennsylvania,42089,1366,106 +2020-06-20,Monroe,Pennsylvania,42089,1370,107 +2020-06-21,Monroe,Pennsylvania,42089,1376,107 +2020-06-22,Monroe,Pennsylvania,42089,1378,107 +2020-06-23,Monroe,Pennsylvania,42089,1379,108 +2020-06-24,Monroe,Pennsylvania,42089,1384,108 +2020-06-25,Monroe,Pennsylvania,42089,1388,109 +2020-06-26,Monroe,Pennsylvania,42089,1391,108 +2020-06-27,Monroe,Pennsylvania,42089,1401,108 +2020-06-28,Monroe,Pennsylvania,42089,1405,108 +2020-06-29,Monroe,Pennsylvania,42089,1409,108 +2020-06-30,Monroe,Pennsylvania,42089,1421,108 +2020-07-01,Monroe,Pennsylvania,42089,1423,108 +2020-07-02,Monroe,Pennsylvania,42089,1428,108 +2020-07-03,Monroe,Pennsylvania,42089,1430,109 +2020-07-04,Monroe,Pennsylvania,42089,1434,109 +2020-07-05,Monroe,Pennsylvania,42089,1436,109 +2020-07-06,Monroe,Pennsylvania,42089,1439,109 +2020-07-07,Monroe,Pennsylvania,42089,1444,111 +2020-07-08,Monroe,Pennsylvania,42089,1451,111 +2020-07-09,Monroe,Pennsylvania,42089,1456,111 +2020-03-07,Montgomery,Pennsylvania,42091,2,0 +2020-03-08,Montgomery,Pennsylvania,42091,4,0 +2020-03-09,Montgomery,Pennsylvania,42091,7,0 +2020-03-10,Montgomery,Pennsylvania,42091,8,0 +2020-03-11,Montgomery,Pennsylvania,42091,9,0 +2020-03-12,Montgomery,Pennsylvania,42091,13,0 +2020-03-13,Montgomery,Pennsylvania,42091,18,0 +2020-03-14,Montgomery,Pennsylvania,42091,20,0 +2020-03-15,Montgomery,Pennsylvania,42091,24,0 +2020-03-16,Montgomery,Pennsylvania,42091,30,0 +2020-03-17,Montgomery,Pennsylvania,42091,32,0 +2020-03-18,Montgomery,Pennsylvania,42091,42,0 +2020-03-19,Montgomery,Pennsylvania,42091,47,0 +2020-03-20,Montgomery,Pennsylvania,42091,59,0 +2020-03-21,Montgomery,Pennsylvania,42091,77,0 +2020-03-22,Montgomery,Pennsylvania,42091,110,1 +2020-03-23,Montgomery,Pennsylvania,42091,129,2 +2020-03-24,Montgomery,Pennsylvania,42091,144,2 +2020-03-25,Montgomery,Pennsylvania,42091,172,2 +2020-03-26,Montgomery,Pennsylvania,42091,282,2 +2020-03-27,Montgomery,Pennsylvania,42091,374,4 +2020-03-28,Montgomery,Pennsylvania,42091,411,5 +2020-03-29,Montgomery,Pennsylvania,42091,488,5 +2020-03-30,Montgomery,Pennsylvania,42091,540,5 +2020-03-31,Montgomery,Pennsylvania,42091,570,6 +2020-04-01,Montgomery,Pennsylvania,42091,649,8 +2020-04-02,Montgomery,Pennsylvania,42091,735,9 +2020-04-03,Montgomery,Pennsylvania,42091,875,11 +2020-04-04,Montgomery,Pennsylvania,42091,982,17 +2020-04-05,Montgomery,Pennsylvania,42091,1111,22 +2020-04-06,Montgomery,Pennsylvania,42091,1230,22 +2020-04-07,Montgomery,Pennsylvania,42091,1359,30 +2020-04-08,Montgomery,Pennsylvania,42091,1521,37 +2020-04-09,Montgomery,Pennsylvania,42091,1693,37 +2020-04-10,Montgomery,Pennsylvania,42091,1889,62 +2020-04-11,Montgomery,Pennsylvania,42091,2053,68 +2020-04-12,Montgomery,Pennsylvania,42091,2164,68 +2020-04-13,Montgomery,Pennsylvania,42091,2285,91 +2020-04-14,Montgomery,Pennsylvania,42091,2354,109 +2020-04-15,Montgomery,Pennsylvania,42091,2475,120 +2020-04-16,Montgomery,Pennsylvania,42091,2544,128 +2020-04-17,Montgomery,Pennsylvania,42091,2684,135 +2020-04-18,Montgomery,Pennsylvania,42091,2781,147 +2020-04-19,Montgomery,Pennsylvania,42091,2913,164 +2020-04-20,Montgomery,Pennsylvania,42091,3040,184 +2020-04-21,Montgomery,Pennsylvania,42091,3154,223 +2020-04-22,Montgomery,Pennsylvania,42091,3294,230 +2020-04-23,Montgomery,Pennsylvania,42091,3395,204 +2020-04-24,Montgomery,Pennsylvania,42091,3525,208 +2020-04-25,Montgomery,Pennsylvania,42091,3627,214 +2020-04-26,Montgomery,Pennsylvania,42091,3733,217 +2020-04-27,Montgomery,Pennsylvania,42091,3817,232 +2020-04-28,Montgomery,Pennsylvania,42091,4043,249 +2020-04-29,Montgomery,Pennsylvania,42091,4177,329 +2020-04-30,Montgomery,Pennsylvania,42091,4307,351 +2020-05-01,Montgomery,Pennsylvania,42091,4406,362 +2020-05-02,Montgomery,Pennsylvania,42091,4487,369 +2020-05-03,Montgomery,Pennsylvania,42091,4552,381 +2020-05-04,Montgomery,Pennsylvania,42091,4645,382 +2020-05-05,Montgomery,Pennsylvania,42091,4687,443 +2020-05-06,Montgomery,Pennsylvania,42091,4827,471 +2020-05-07,Montgomery,Pennsylvania,42091,4915,506 +2020-05-08,Montgomery,Pennsylvania,42091,5037,515 +2020-05-09,Montgomery,Pennsylvania,42091,5116,523 +2020-05-10,Montgomery,Pennsylvania,42091,5260,525 +2020-05-11,Montgomery,Pennsylvania,42091,5292,525 +2020-05-12,Montgomery,Pennsylvania,42091,5442,534 +2020-05-13,Montgomery,Pennsylvania,42091,5513,556 +2020-05-14,Montgomery,Pennsylvania,42091,5583,587 +2020-05-15,Montgomery,Pennsylvania,42091,5697,608 +2020-05-16,Montgomery,Pennsylvania,42091,5797,614 +2020-05-17,Montgomery,Pennsylvania,42091,5872,620 +2020-05-18,Montgomery,Pennsylvania,42091,6012,566 +2020-05-19,Montgomery,Pennsylvania,42091,6063,575 +2020-05-20,Montgomery,Pennsylvania,42091,6154,596 +2020-05-21,Montgomery,Pennsylvania,42091,6268,607 +2020-05-22,Montgomery,Pennsylvania,42091,6366,619 +2020-05-23,Montgomery,Pennsylvania,42091,6464,633 +2020-05-24,Montgomery,Pennsylvania,42091,6525,633 +2020-05-25,Montgomery,Pennsylvania,42091,6576,633 +2020-05-26,Montgomery,Pennsylvania,42091,6598,635 +2020-05-27,Montgomery,Pennsylvania,42091,6738,662 +2020-05-28,Montgomery,Pennsylvania,42091,6811,675 +2020-05-29,Montgomery,Pennsylvania,42091,6906,677 +2020-05-30,Montgomery,Pennsylvania,42091,7006,682 +2020-05-31,Montgomery,Pennsylvania,42091,7061,684 +2020-06-01,Montgomery,Pennsylvania,42091,7093,693 +2020-06-02,Montgomery,Pennsylvania,42091,7172,699 +2020-06-03,Montgomery,Pennsylvania,42091,7242,702 +2020-06-04,Montgomery,Pennsylvania,42091,7351,713 +2020-06-05,Montgomery,Pennsylvania,42091,7416,721 +2020-06-06,Montgomery,Pennsylvania,42091,7542,724 +2020-06-07,Montgomery,Pennsylvania,42091,7582,725 +2020-06-08,Montgomery,Pennsylvania,42091,7610,727 +2020-06-09,Montgomery,Pennsylvania,42091,7672,740 +2020-06-10,Montgomery,Pennsylvania,42091,7709,762 +2020-06-11,Montgomery,Pennsylvania,42091,7754,765 +2020-06-12,Montgomery,Pennsylvania,42091,7834,768 +2020-06-13,Montgomery,Pennsylvania,42091,7865,768 +2020-06-14,Montgomery,Pennsylvania,42091,7898,768 +2020-06-15,Montgomery,Pennsylvania,42091,7930,777 +2020-06-16,Montgomery,Pennsylvania,42091,7950,778 +2020-06-17,Montgomery,Pennsylvania,42091,7990,778 +2020-06-18,Montgomery,Pennsylvania,42091,8014,780 +2020-06-19,Montgomery,Pennsylvania,42091,8046,780 +2020-06-20,Montgomery,Pennsylvania,42091,8076,783 +2020-06-21,Montgomery,Pennsylvania,42091,8103,784 +2020-06-22,Montgomery,Pennsylvania,42091,8123,784 +2020-06-23,Montgomery,Pennsylvania,42091,8159,787 +2020-06-24,Montgomery,Pennsylvania,42091,8188,791 +2020-06-25,Montgomery,Pennsylvania,42091,8244,792 +2020-06-26,Montgomery,Pennsylvania,42091,8301,794 +2020-06-27,Montgomery,Pennsylvania,42091,8351,798 +2020-06-28,Montgomery,Pennsylvania,42091,8377,798 +2020-06-29,Montgomery,Pennsylvania,42091,8413,798 +2020-06-30,Montgomery,Pennsylvania,42091,8448,801 +2020-07-01,Montgomery,Pennsylvania,42091,8483,801 +2020-07-02,Montgomery,Pennsylvania,42091,8514,806 +2020-07-03,Montgomery,Pennsylvania,42091,8562,810 +2020-07-04,Montgomery,Pennsylvania,42091,8589,810 +2020-07-05,Montgomery,Pennsylvania,42091,8610,811 +2020-07-06,Montgomery,Pennsylvania,42091,8634,811 +2020-07-07,Montgomery,Pennsylvania,42091,8682,815 +2020-07-08,Montgomery,Pennsylvania,42091,8718,818 +2020-07-09,Montgomery,Pennsylvania,42091,8749,822 +2020-03-21,Montour,Pennsylvania,42093,1,0 +2020-03-22,Montour,Pennsylvania,42093,1,0 +2020-03-23,Montour,Pennsylvania,42093,1,0 +2020-03-24,Montour,Pennsylvania,42093,3,0 +2020-03-25,Montour,Pennsylvania,42093,4,0 +2020-03-26,Montour,Pennsylvania,42093,4,0 +2020-03-27,Montour,Pennsylvania,42093,4,0 +2020-03-28,Montour,Pennsylvania,42093,5,0 +2020-03-29,Montour,Pennsylvania,42093,5,0 +2020-03-30,Montour,Pennsylvania,42093,10,0 +2020-03-31,Montour,Pennsylvania,42093,10,0 +2020-04-01,Montour,Pennsylvania,42093,13,0 +2020-04-02,Montour,Pennsylvania,42093,15,0 +2020-04-03,Montour,Pennsylvania,42093,16,0 +2020-04-04,Montour,Pennsylvania,42093,19,0 +2020-04-05,Montour,Pennsylvania,42093,37,0 +2020-04-06,Montour,Pennsylvania,42093,33,0 +2020-04-07,Montour,Pennsylvania,42093,27,0 +2020-04-08,Montour,Pennsylvania,42093,26,0 +2020-04-09,Montour,Pennsylvania,42093,25,0 +2020-04-10,Montour,Pennsylvania,42093,29,0 +2020-04-11,Montour,Pennsylvania,42093,29,0 +2020-04-12,Montour,Pennsylvania,42093,29,0 +2020-04-13,Montour,Pennsylvania,42093,39,0 +2020-04-14,Montour,Pennsylvania,42093,44,0 +2020-04-15,Montour,Pennsylvania,42093,44,0 +2020-04-16,Montour,Pennsylvania,42093,48,0 +2020-04-17,Montour,Pennsylvania,42093,48,0 +2020-04-18,Montour,Pennsylvania,42093,49,0 +2020-04-19,Montour,Pennsylvania,42093,48,0 +2020-04-20,Montour,Pennsylvania,42093,48,0 +2020-04-21,Montour,Pennsylvania,42093,48,0 +2020-04-22,Montour,Pennsylvania,42093,48,0 +2020-04-23,Montour,Pennsylvania,42093,48,0 +2020-04-24,Montour,Pennsylvania,42093,48,0 +2020-04-25,Montour,Pennsylvania,42093,48,0 +2020-04-26,Montour,Pennsylvania,42093,48,0 +2020-04-27,Montour,Pennsylvania,42093,48,0 +2020-04-28,Montour,Pennsylvania,42093,48,0 +2020-04-29,Montour,Pennsylvania,42093,48,0 +2020-04-30,Montour,Pennsylvania,42093,48,0 +2020-05-01,Montour,Pennsylvania,42093,48,0 +2020-05-02,Montour,Pennsylvania,42093,49,0 +2020-05-03,Montour,Pennsylvania,42093,50,0 +2020-05-04,Montour,Pennsylvania,42093,50,0 +2020-05-05,Montour,Pennsylvania,42093,50,0 +2020-05-06,Montour,Pennsylvania,42093,50,0 +2020-05-07,Montour,Pennsylvania,42093,50,0 +2020-05-08,Montour,Pennsylvania,42093,50,0 +2020-05-09,Montour,Pennsylvania,42093,49,0 +2020-05-10,Montour,Pennsylvania,42093,49,0 +2020-05-11,Montour,Pennsylvania,42093,49,0 +2020-05-12,Montour,Pennsylvania,42093,49,0 +2020-05-13,Montour,Pennsylvania,42093,50,0 +2020-05-14,Montour,Pennsylvania,42093,50,0 +2020-05-15,Montour,Pennsylvania,42093,50,1 +2020-05-16,Montour,Pennsylvania,42093,50,1 +2020-05-17,Montour,Pennsylvania,42093,50,1 +2020-05-18,Montour,Pennsylvania,42093,50,0 +2020-05-19,Montour,Pennsylvania,42093,50,0 +2020-05-20,Montour,Pennsylvania,42093,50,0 +2020-05-21,Montour,Pennsylvania,42093,51,0 +2020-05-22,Montour,Pennsylvania,42093,50,0 +2020-05-23,Montour,Pennsylvania,42093,50,0 +2020-05-24,Montour,Pennsylvania,42093,50,0 +2020-05-25,Montour,Pennsylvania,42093,50,0 +2020-05-26,Montour,Pennsylvania,42093,50,0 +2020-05-27,Montour,Pennsylvania,42093,50,0 +2020-05-28,Montour,Pennsylvania,42093,50,0 +2020-05-29,Montour,Pennsylvania,42093,50,0 +2020-05-30,Montour,Pennsylvania,42093,50,0 +2020-05-31,Montour,Pennsylvania,42093,52,0 +2020-06-01,Montour,Pennsylvania,42093,53,0 +2020-06-02,Montour,Pennsylvania,42093,53,0 +2020-06-03,Montour,Pennsylvania,42093,53,0 +2020-06-04,Montour,Pennsylvania,42093,53,0 +2020-06-05,Montour,Pennsylvania,42093,53,0 +2020-06-06,Montour,Pennsylvania,42093,53,0 +2020-06-07,Montour,Pennsylvania,42093,53,0 +2020-06-08,Montour,Pennsylvania,42093,53,0 +2020-06-09,Montour,Pennsylvania,42093,53,0 +2020-06-10,Montour,Pennsylvania,42093,53,0 +2020-06-11,Montour,Pennsylvania,42093,55,0 +2020-06-12,Montour,Pennsylvania,42093,56,0 +2020-06-13,Montour,Pennsylvania,42093,64,0 +2020-06-14,Montour,Pennsylvania,42093,64,0 +2020-06-15,Montour,Pennsylvania,42093,65,0 +2020-06-16,Montour,Pennsylvania,42093,65,0 +2020-06-17,Montour,Pennsylvania,42093,67,0 +2020-06-18,Montour,Pennsylvania,42093,68,0 +2020-06-19,Montour,Pennsylvania,42093,68,0 +2020-06-20,Montour,Pennsylvania,42093,68,0 +2020-06-21,Montour,Pennsylvania,42093,68,0 +2020-06-22,Montour,Pennsylvania,42093,68,0 +2020-06-23,Montour,Pennsylvania,42093,68,0 +2020-06-24,Montour,Pennsylvania,42093,68,0 +2020-06-25,Montour,Pennsylvania,42093,68,0 +2020-06-26,Montour,Pennsylvania,42093,69,0 +2020-06-27,Montour,Pennsylvania,42093,70,0 +2020-06-28,Montour,Pennsylvania,42093,73,0 +2020-06-29,Montour,Pennsylvania,42093,73,0 +2020-06-30,Montour,Pennsylvania,42093,73,1 +2020-07-01,Montour,Pennsylvania,42093,74,1 +2020-07-02,Montour,Pennsylvania,42093,75,1 +2020-07-03,Montour,Pennsylvania,42093,75,1 +2020-07-04,Montour,Pennsylvania,42093,75,2 +2020-07-05,Montour,Pennsylvania,42093,76,2 +2020-07-06,Montour,Pennsylvania,42093,76,2 +2020-07-07,Montour,Pennsylvania,42093,76,2 +2020-07-08,Montour,Pennsylvania,42093,76,2 +2020-07-09,Montour,Pennsylvania,42093,76,2 +2020-03-12,Northampton,Pennsylvania,42095,1,0 +2020-03-13,Northampton,Pennsylvania,42095,1,0 +2020-03-14,Northampton,Pennsylvania,42095,1,0 +2020-03-15,Northampton,Pennsylvania,42095,1,0 +2020-03-16,Northampton,Pennsylvania,42095,1,0 +2020-03-17,Northampton,Pennsylvania,42095,1,0 +2020-03-18,Northampton,Pennsylvania,42095,1,1 +2020-03-19,Northampton,Pennsylvania,42095,5,1 +2020-03-20,Northampton,Pennsylvania,42095,10,1 +2020-03-21,Northampton,Pennsylvania,42095,17,1 +2020-03-22,Northampton,Pennsylvania,42095,21,1 +2020-03-23,Northampton,Pennsylvania,42095,23,1 +2020-03-24,Northampton,Pennsylvania,42095,33,2 +2020-03-25,Northampton,Pennsylvania,42095,44,3 +2020-03-26,Northampton,Pennsylvania,42095,56,3 +2020-03-27,Northampton,Pennsylvania,42095,79,3 +2020-03-28,Northampton,Pennsylvania,42095,94,4 +2020-03-29,Northampton,Pennsylvania,42095,126,4 +2020-03-30,Northampton,Pennsylvania,42095,184,5 +2020-03-31,Northampton,Pennsylvania,42095,245,5 +2020-04-01,Northampton,Pennsylvania,42095,312,5 +2020-04-02,Northampton,Pennsylvania,42095,378,9 +2020-04-03,Northampton,Pennsylvania,42095,466,10 +2020-04-04,Northampton,Pennsylvania,42095,588,11 +2020-04-05,Northampton,Pennsylvania,42095,636,11 +2020-04-06,Northampton,Pennsylvania,42095,716,12 +2020-04-07,Northampton,Pennsylvania,42095,774,14 +2020-04-08,Northampton,Pennsylvania,42095,857,17 +2020-04-09,Northampton,Pennsylvania,42095,949,20 +2020-04-10,Northampton,Pennsylvania,42095,994,21 +2020-04-11,Northampton,Pennsylvania,42095,1039,23 +2020-04-12,Northampton,Pennsylvania,42095,1082,23 +2020-04-13,Northampton,Pennsylvania,42095,1130,23 +2020-04-14,Northampton,Pennsylvania,42095,1176,25 +2020-04-15,Northampton,Pennsylvania,42095,1251,25 +2020-04-16,Northampton,Pennsylvania,42095,1296,25 +2020-04-17,Northampton,Pennsylvania,42095,1335,27 +2020-04-18,Northampton,Pennsylvania,42095,1396,29 +2020-04-19,Northampton,Pennsylvania,42095,1441,36 +2020-04-20,Northampton,Pennsylvania,42095,1469,36 +2020-04-21,Northampton,Pennsylvania,42095,1544,43 +2020-04-22,Northampton,Pennsylvania,42095,1591,44 +2020-04-23,Northampton,Pennsylvania,42095,1656,45 +2020-04-24,Northampton,Pennsylvania,42095,1716,46 +2020-04-25,Northampton,Pennsylvania,42095,1780,49 +2020-04-26,Northampton,Pennsylvania,42095,1813,49 +2020-04-27,Northampton,Pennsylvania,42095,1834,49 +2020-04-28,Northampton,Pennsylvania,42095,1970,55 +2020-04-29,Northampton,Pennsylvania,42095,2008,85 +2020-04-30,Northampton,Pennsylvania,42095,2050,94 +2020-05-01,Northampton,Pennsylvania,42095,2103,94 +2020-05-02,Northampton,Pennsylvania,42095,2182,94 +2020-05-03,Northampton,Pennsylvania,42095,2214,94 +2020-05-04,Northampton,Pennsylvania,42095,2240,94 +2020-05-05,Northampton,Pennsylvania,42095,2279,117 +2020-05-06,Northampton,Pennsylvania,42095,2313,122 +2020-05-07,Northampton,Pennsylvania,42095,2355,152 +2020-05-08,Northampton,Pennsylvania,42095,2390,153 +2020-05-09,Northampton,Pennsylvania,42095,2429,158 +2020-05-10,Northampton,Pennsylvania,42095,2453,158 +2020-05-11,Northampton,Pennsylvania,42095,2465,160 +2020-05-12,Northampton,Pennsylvania,42095,2499,161 +2020-05-13,Northampton,Pennsylvania,42095,2518,162 +2020-05-14,Northampton,Pennsylvania,42095,2566,182 +2020-05-15,Northampton,Pennsylvania,42095,2600,196 +2020-05-16,Northampton,Pennsylvania,42095,2659,196 +2020-05-17,Northampton,Pennsylvania,42095,2703,199 +2020-05-18,Northampton,Pennsylvania,42095,2727,171 +2020-05-19,Northampton,Pennsylvania,42095,2758,176 +2020-05-20,Northampton,Pennsylvania,42095,2779,182 +2020-05-21,Northampton,Pennsylvania,42095,2814,186 +2020-05-22,Northampton,Pennsylvania,42095,2842,192 +2020-05-23,Northampton,Pennsylvania,42095,2866,197 +2020-05-24,Northampton,Pennsylvania,42095,2911,198 +2020-05-25,Northampton,Pennsylvania,42095,2920,199 +2020-05-26,Northampton,Pennsylvania,42095,2933,199 +2020-05-27,Northampton,Pennsylvania,42095,2958,203 +2020-05-28,Northampton,Pennsylvania,42095,3022,206 +2020-05-29,Northampton,Pennsylvania,42095,3045,207 +2020-05-30,Northampton,Pennsylvania,42095,3062,210 +2020-05-31,Northampton,Pennsylvania,42095,3083,210 +2020-06-01,Northampton,Pennsylvania,42095,3082,210 +2020-06-02,Northampton,Pennsylvania,42095,3108,213 +2020-06-03,Northampton,Pennsylvania,42095,3120,220 +2020-06-04,Northampton,Pennsylvania,42095,3124,225 +2020-06-05,Northampton,Pennsylvania,42095,3136,229 +2020-06-06,Northampton,Pennsylvania,42095,3144,231 +2020-06-07,Northampton,Pennsylvania,42095,3151,232 +2020-06-08,Northampton,Pennsylvania,42095,3168,232 +2020-06-09,Northampton,Pennsylvania,42095,3175,236 +2020-06-10,Northampton,Pennsylvania,42095,3193,238 +2020-06-11,Northampton,Pennsylvania,42095,3202,238 +2020-06-12,Northampton,Pennsylvania,42095,3217,238 +2020-06-13,Northampton,Pennsylvania,42095,3232,241 +2020-06-14,Northampton,Pennsylvania,42095,3240,241 +2020-06-15,Northampton,Pennsylvania,42095,3246,243 +2020-06-16,Northampton,Pennsylvania,42095,3250,244 +2020-06-17,Northampton,Pennsylvania,42095,3255,247 +2020-06-18,Northampton,Pennsylvania,42095,3270,249 +2020-06-19,Northampton,Pennsylvania,42095,3284,250 +2020-06-20,Northampton,Pennsylvania,42095,3304,252 +2020-06-21,Northampton,Pennsylvania,42095,3309,252 +2020-06-22,Northampton,Pennsylvania,42095,3312,252 +2020-06-23,Northampton,Pennsylvania,42095,3327,255 +2020-06-24,Northampton,Pennsylvania,42095,3339,259 +2020-06-25,Northampton,Pennsylvania,42095,3352,262 +2020-06-26,Northampton,Pennsylvania,42095,3360,263 +2020-06-27,Northampton,Pennsylvania,42095,3377,265 +2020-06-28,Northampton,Pennsylvania,42095,3389,265 +2020-06-29,Northampton,Pennsylvania,42095,3407,266 +2020-06-30,Northampton,Pennsylvania,42095,3413,266 +2020-07-01,Northampton,Pennsylvania,42095,3425,266 +2020-07-02,Northampton,Pennsylvania,42095,3441,270 +2020-07-03,Northampton,Pennsylvania,42095,3458,272 +2020-07-04,Northampton,Pennsylvania,42095,3463,272 +2020-07-05,Northampton,Pennsylvania,42095,3471,273 +2020-07-06,Northampton,Pennsylvania,42095,3475,273 +2020-07-07,Northampton,Pennsylvania,42095,3485,275 +2020-07-08,Northampton,Pennsylvania,42095,3500,276 +2020-07-09,Northampton,Pennsylvania,42095,3513,276 +2020-03-27,Northumberland,Pennsylvania,42097,1,0 +2020-03-28,Northumberland,Pennsylvania,42097,1,0 +2020-03-29,Northumberland,Pennsylvania,42097,1,0 +2020-03-30,Northumberland,Pennsylvania,42097,1,0 +2020-03-31,Northumberland,Pennsylvania,42097,1,0 +2020-04-01,Northumberland,Pennsylvania,42097,6,0 +2020-04-02,Northumberland,Pennsylvania,42097,8,0 +2020-04-03,Northumberland,Pennsylvania,42097,8,0 +2020-04-04,Northumberland,Pennsylvania,42097,9,0 +2020-04-05,Northumberland,Pennsylvania,42097,14,0 +2020-04-06,Northumberland,Pennsylvania,42097,15,0 +2020-04-07,Northumberland,Pennsylvania,42097,22,0 +2020-04-08,Northumberland,Pennsylvania,42097,22,0 +2020-04-09,Northumberland,Pennsylvania,42097,24,0 +2020-04-10,Northumberland,Pennsylvania,42097,29,0 +2020-04-11,Northumberland,Pennsylvania,42097,31,0 +2020-04-12,Northumberland,Pennsylvania,42097,37,0 +2020-04-13,Northumberland,Pennsylvania,42097,40,0 +2020-04-14,Northumberland,Pennsylvania,42097,48,0 +2020-04-15,Northumberland,Pennsylvania,42097,56,0 +2020-04-16,Northumberland,Pennsylvania,42097,60,0 +2020-04-17,Northumberland,Pennsylvania,42097,60,0 +2020-04-18,Northumberland,Pennsylvania,42097,67,0 +2020-04-19,Northumberland,Pennsylvania,42097,67,0 +2020-04-20,Northumberland,Pennsylvania,42097,73,0 +2020-04-21,Northumberland,Pennsylvania,42097,77,0 +2020-04-22,Northumberland,Pennsylvania,42097,77,0 +2020-04-23,Northumberland,Pennsylvania,42097,82,0 +2020-04-24,Northumberland,Pennsylvania,42097,84,0 +2020-04-25,Northumberland,Pennsylvania,42097,87,0 +2020-04-26,Northumberland,Pennsylvania,42097,90,0 +2020-04-27,Northumberland,Pennsylvania,42097,90,0 +2020-04-28,Northumberland,Pennsylvania,42097,92,0 +2020-04-29,Northumberland,Pennsylvania,42097,92,0 +2020-04-30,Northumberland,Pennsylvania,42097,93,0 +2020-05-01,Northumberland,Pennsylvania,42097,95,0 +2020-05-02,Northumberland,Pennsylvania,42097,98,0 +2020-05-03,Northumberland,Pennsylvania,42097,99,0 +2020-05-04,Northumberland,Pennsylvania,42097,100,0 +2020-05-05,Northumberland,Pennsylvania,42097,107,0 +2020-05-06,Northumberland,Pennsylvania,42097,111,0 +2020-05-07,Northumberland,Pennsylvania,42097,112,0 +2020-05-08,Northumberland,Pennsylvania,42097,118,0 +2020-05-09,Northumberland,Pennsylvania,42097,119,0 +2020-05-10,Northumberland,Pennsylvania,42097,124,0 +2020-05-11,Northumberland,Pennsylvania,42097,125,0 +2020-05-12,Northumberland,Pennsylvania,42097,126,0 +2020-05-13,Northumberland,Pennsylvania,42097,128,0 +2020-05-14,Northumberland,Pennsylvania,42097,132,0 +2020-05-15,Northumberland,Pennsylvania,42097,136,0 +2020-05-16,Northumberland,Pennsylvania,42097,139,0 +2020-05-17,Northumberland,Pennsylvania,42097,141,0 +2020-05-18,Northumberland,Pennsylvania,42097,143,2 +2020-05-19,Northumberland,Pennsylvania,42097,145,2 +2020-05-20,Northumberland,Pennsylvania,42097,150,2 +2020-05-21,Northumberland,Pennsylvania,42097,150,2 +2020-05-22,Northumberland,Pennsylvania,42097,155,2 +2020-05-23,Northumberland,Pennsylvania,42097,164,3 +2020-05-24,Northumberland,Pennsylvania,42097,170,3 +2020-05-25,Northumberland,Pennsylvania,42097,174,3 +2020-05-26,Northumberland,Pennsylvania,42097,177,3 +2020-05-27,Northumberland,Pennsylvania,42097,182,3 +2020-05-28,Northumberland,Pennsylvania,42097,186,3 +2020-05-29,Northumberland,Pennsylvania,42097,186,3 +2020-05-30,Northumberland,Pennsylvania,42097,190,3 +2020-05-31,Northumberland,Pennsylvania,42097,192,3 +2020-06-01,Northumberland,Pennsylvania,42097,194,3 +2020-06-02,Northumberland,Pennsylvania,42097,198,3 +2020-06-03,Northumberland,Pennsylvania,42097,199,3 +2020-06-04,Northumberland,Pennsylvania,42097,201,3 +2020-06-05,Northumberland,Pennsylvania,42097,206,3 +2020-06-06,Northumberland,Pennsylvania,42097,208,3 +2020-06-07,Northumberland,Pennsylvania,42097,209,3 +2020-06-08,Northumberland,Pennsylvania,42097,209,3 +2020-06-09,Northumberland,Pennsylvania,42097,211,3 +2020-06-10,Northumberland,Pennsylvania,42097,211,3 +2020-06-11,Northumberland,Pennsylvania,42097,213,3 +2020-06-12,Northumberland,Pennsylvania,42097,219,4 +2020-06-13,Northumberland,Pennsylvania,42097,222,4 +2020-06-14,Northumberland,Pennsylvania,42097,224,4 +2020-06-15,Northumberland,Pennsylvania,42097,228,4 +2020-06-16,Northumberland,Pennsylvania,42097,231,4 +2020-06-17,Northumberland,Pennsylvania,42097,234,4 +2020-06-18,Northumberland,Pennsylvania,42097,252,4 +2020-06-19,Northumberland,Pennsylvania,42097,254,4 +2020-06-20,Northumberland,Pennsylvania,42097,256,4 +2020-06-21,Northumberland,Pennsylvania,42097,271,4 +2020-06-22,Northumberland,Pennsylvania,42097,279,4 +2020-06-23,Northumberland,Pennsylvania,42097,280,4 +2020-06-24,Northumberland,Pennsylvania,42097,281,5 +2020-06-25,Northumberland,Pennsylvania,42097,284,5 +2020-06-26,Northumberland,Pennsylvania,42097,288,5 +2020-06-27,Northumberland,Pennsylvania,42097,294,5 +2020-06-28,Northumberland,Pennsylvania,42097,299,5 +2020-06-29,Northumberland,Pennsylvania,42097,302,5 +2020-06-30,Northumberland,Pennsylvania,42097,304,5 +2020-07-01,Northumberland,Pennsylvania,42097,314,5 +2020-07-02,Northumberland,Pennsylvania,42097,316,6 +2020-07-03,Northumberland,Pennsylvania,42097,320,8 +2020-07-04,Northumberland,Pennsylvania,42097,323,8 +2020-07-05,Northumberland,Pennsylvania,42097,327,8 +2020-07-06,Northumberland,Pennsylvania,42097,327,8 +2020-07-07,Northumberland,Pennsylvania,42097,328,8 +2020-07-08,Northumberland,Pennsylvania,42097,334,8 +2020-07-09,Northumberland,Pennsylvania,42097,339,8 +2020-03-28,Perry,Pennsylvania,42099,1,0 +2020-03-29,Perry,Pennsylvania,42099,1,0 +2020-03-30,Perry,Pennsylvania,42099,1,0 +2020-03-31,Perry,Pennsylvania,42099,1,0 +2020-04-01,Perry,Pennsylvania,42099,1,0 +2020-04-02,Perry,Pennsylvania,42099,3,0 +2020-04-03,Perry,Pennsylvania,42099,4,1 +2020-04-04,Perry,Pennsylvania,42099,5,1 +2020-04-05,Perry,Pennsylvania,42099,5,1 +2020-04-06,Perry,Pennsylvania,42099,5,1 +2020-04-07,Perry,Pennsylvania,42099,9,1 +2020-04-08,Perry,Pennsylvania,42099,13,1 +2020-04-09,Perry,Pennsylvania,42099,15,1 +2020-04-10,Perry,Pennsylvania,42099,16,1 +2020-04-11,Perry,Pennsylvania,42099,16,1 +2020-04-12,Perry,Pennsylvania,42099,16,1 +2020-04-13,Perry,Pennsylvania,42099,17,1 +2020-04-14,Perry,Pennsylvania,42099,17,1 +2020-04-15,Perry,Pennsylvania,42099,17,1 +2020-04-16,Perry,Pennsylvania,42099,17,1 +2020-04-17,Perry,Pennsylvania,42099,18,1 +2020-04-18,Perry,Pennsylvania,42099,20,1 +2020-04-19,Perry,Pennsylvania,42099,20,1 +2020-04-20,Perry,Pennsylvania,42099,20,1 +2020-04-21,Perry,Pennsylvania,42099,20,1 +2020-04-22,Perry,Pennsylvania,42099,23,1 +2020-04-23,Perry,Pennsylvania,42099,23,1 +2020-04-24,Perry,Pennsylvania,42099,25,1 +2020-04-25,Perry,Pennsylvania,42099,26,1 +2020-04-26,Perry,Pennsylvania,42099,26,1 +2020-04-27,Perry,Pennsylvania,42099,26,1 +2020-04-28,Perry,Pennsylvania,42099,27,1 +2020-04-29,Perry,Pennsylvania,42099,30,1 +2020-04-30,Perry,Pennsylvania,42099,30,1 +2020-05-01,Perry,Pennsylvania,42099,32,1 +2020-05-02,Perry,Pennsylvania,42099,33,1 +2020-05-03,Perry,Pennsylvania,42099,34,1 +2020-05-04,Perry,Pennsylvania,42099,34,1 +2020-05-05,Perry,Pennsylvania,42099,34,1 +2020-05-06,Perry,Pennsylvania,42099,34,1 +2020-05-07,Perry,Pennsylvania,42099,34,1 +2020-05-08,Perry,Pennsylvania,42099,34,1 +2020-05-09,Perry,Pennsylvania,42099,34,1 +2020-05-10,Perry,Pennsylvania,42099,35,1 +2020-05-11,Perry,Pennsylvania,42099,35,1 +2020-05-12,Perry,Pennsylvania,42099,35,1 +2020-05-13,Perry,Pennsylvania,42099,35,1 +2020-05-14,Perry,Pennsylvania,42099,36,1 +2020-05-15,Perry,Pennsylvania,42099,36,1 +2020-05-16,Perry,Pennsylvania,42099,40,1 +2020-05-17,Perry,Pennsylvania,42099,40,1 +2020-05-18,Perry,Pennsylvania,42099,41,1 +2020-05-19,Perry,Pennsylvania,42099,41,1 +2020-05-20,Perry,Pennsylvania,42099,42,1 +2020-05-21,Perry,Pennsylvania,42099,43,1 +2020-05-22,Perry,Pennsylvania,42099,43,1 +2020-05-23,Perry,Pennsylvania,42099,45,1 +2020-05-24,Perry,Pennsylvania,42099,47,1 +2020-05-25,Perry,Pennsylvania,42099,47,1 +2020-05-26,Perry,Pennsylvania,42099,48,1 +2020-05-27,Perry,Pennsylvania,42099,53,1 +2020-05-28,Perry,Pennsylvania,42099,54,2 +2020-05-29,Perry,Pennsylvania,42099,56,2 +2020-05-30,Perry,Pennsylvania,42099,57,3 +2020-05-31,Perry,Pennsylvania,42099,59,3 +2020-06-01,Perry,Pennsylvania,42099,61,3 +2020-06-02,Perry,Pennsylvania,42099,62,3 +2020-06-03,Perry,Pennsylvania,42099,62,3 +2020-06-04,Perry,Pennsylvania,42099,64,3 +2020-06-05,Perry,Pennsylvania,42099,67,3 +2020-06-06,Perry,Pennsylvania,42099,67,3 +2020-06-07,Perry,Pennsylvania,42099,68,3 +2020-06-08,Perry,Pennsylvania,42099,68,3 +2020-06-09,Perry,Pennsylvania,42099,68,3 +2020-06-10,Perry,Pennsylvania,42099,68,4 +2020-06-11,Perry,Pennsylvania,42099,69,4 +2020-06-12,Perry,Pennsylvania,42099,70,5 +2020-06-13,Perry,Pennsylvania,42099,71,5 +2020-06-14,Perry,Pennsylvania,42099,72,5 +2020-06-15,Perry,Pennsylvania,42099,72,5 +2020-06-16,Perry,Pennsylvania,42099,73,5 +2020-06-17,Perry,Pennsylvania,42099,76,5 +2020-06-18,Perry,Pennsylvania,42099,77,5 +2020-06-19,Perry,Pennsylvania,42099,79,5 +2020-06-20,Perry,Pennsylvania,42099,82,5 +2020-06-21,Perry,Pennsylvania,42099,83,5 +2020-06-22,Perry,Pennsylvania,42099,83,5 +2020-06-23,Perry,Pennsylvania,42099,85,5 +2020-06-24,Perry,Pennsylvania,42099,85,5 +2020-06-25,Perry,Pennsylvania,42099,85,5 +2020-06-26,Perry,Pennsylvania,42099,86,5 +2020-06-27,Perry,Pennsylvania,42099,86,5 +2020-06-28,Perry,Pennsylvania,42099,86,5 +2020-06-29,Perry,Pennsylvania,42099,86,5 +2020-06-30,Perry,Pennsylvania,42099,86,5 +2020-07-01,Perry,Pennsylvania,42099,86,5 +2020-07-02,Perry,Pennsylvania,42099,86,5 +2020-07-03,Perry,Pennsylvania,42099,86,5 +2020-07-04,Perry,Pennsylvania,42099,86,5 +2020-07-05,Perry,Pennsylvania,42099,86,5 +2020-07-06,Perry,Pennsylvania,42099,86,5 +2020-07-07,Perry,Pennsylvania,42099,88,5 +2020-07-08,Perry,Pennsylvania,42099,89,5 +2020-07-09,Perry,Pennsylvania,42099,89,5 +2020-03-10,Philadelphia,Pennsylvania,42101,1,0 +2020-03-11,Philadelphia,Pennsylvania,42101,1,0 +2020-03-12,Philadelphia,Pennsylvania,42101,1,0 +2020-03-13,Philadelphia,Pennsylvania,42101,3,0 +2020-03-14,Philadelphia,Pennsylvania,42101,4,0 +2020-03-15,Philadelphia,Pennsylvania,42101,8,0 +2020-03-16,Philadelphia,Pennsylvania,42101,8,0 +2020-03-17,Philadelphia,Pennsylvania,42101,10,0 +2020-03-18,Philadelphia,Pennsylvania,42101,17,0 +2020-03-19,Philadelphia,Pennsylvania,42101,33,0 +2020-03-20,Philadelphia,Pennsylvania,42101,42,0 +2020-03-21,Philadelphia,Pennsylvania,42101,69,0 +2020-03-22,Philadelphia,Pennsylvania,42101,91,0 +2020-03-23,Philadelphia,Pennsylvania,42101,128,0 +2020-03-24,Philadelphia,Pennsylvania,42101,177,0 +2020-03-25,Philadelphia,Pennsylvania,42101,257,1 +2020-03-26,Philadelphia,Pennsylvania,42101,402,1 +2020-03-27,Philadelphia,Pennsylvania,42101,530,2 +2020-03-28,Philadelphia,Pennsylvania,42101,709,5 +2020-03-29,Philadelphia,Pennsylvania,42101,865,5 +2020-03-30,Philadelphia,Pennsylvania,42101,1072,7 +2020-03-31,Philadelphia,Pennsylvania,42101,1315,14 +2020-04-01,Philadelphia,Pennsylvania,42101,1478,14 +2020-04-02,Philadelphia,Pennsylvania,42101,1852,14 +2020-04-03,Philadelphia,Pennsylvania,42101,2284,14 +2020-04-04,Philadelphia,Pennsylvania,42101,2610,24 +2020-04-05,Philadelphia,Pennsylvania,42101,3135,28 +2020-04-06,Philadelphia,Pennsylvania,42101,3611,28 +2020-04-07,Philadelphia,Pennsylvania,42101,4012,58 +2020-04-08,Philadelphia,Pennsylvania,42101,4456,86 +2020-04-09,Philadelphia,Pennsylvania,42101,5029,86 +2020-04-10,Philadelphia,Pennsylvania,42101,5521,110 +2020-04-11,Philadelphia,Pennsylvania,42101,6022,130 +2020-04-12,Philadelphia,Pennsylvania,42101,6352,128 +2020-04-13,Philadelphia,Pennsylvania,42101,6810,127 +2020-04-14,Philadelphia,Pennsylvania,42101,7130,206 +2020-04-15,Philadelphia,Pennsylvania,42101,7441,222 +2020-04-16,Philadelphia,Pennsylvania,42101,8045,264 +2020-04-17,Philadelphia,Pennsylvania,42101,8563,298 +2020-04-18,Philadelphia,Pennsylvania,42101,9014,342 +2020-04-19,Philadelphia,Pennsylvania,42101,9214,365 +2020-04-20,Philadelphia,Pennsylvania,42101,9553,370 +2020-04-21,Philadelphia,Pennsylvania,42101,10028,394 +2020-04-22,Philadelphia,Pennsylvania,42101,10643,419 +2020-04-23,Philadelphia,Pennsylvania,42101,11226,443 +2020-04-24,Philadelphia,Pennsylvania,42101,11877,449 +2020-04-25,Philadelphia,Pennsylvania,42101,12329,466 +2020-04-26,Philadelphia,Pennsylvania,42101,12566,472 +2020-04-27,Philadelphia,Pennsylvania,42101,12868,484 +2020-04-28,Philadelphia,Pennsylvania,42101,13445,516 +2020-04-29,Philadelphia,Pennsylvania,42101,13445,516 +2020-04-30,Philadelphia,Pennsylvania,42101,14468,607 +2020-05-01,Philadelphia,Pennsylvania,42101,15137,638 +2020-05-02,Philadelphia,Pennsylvania,42101,15527,705 +2020-05-03,Philadelphia,Pennsylvania,42101,15854,727 +2020-05-04,Philadelphia,Pennsylvania,42101,16040,726 +2020-05-05,Philadelphia,Pennsylvania,42101,16410,743 +2020-05-06,Philadelphia,Pennsylvania,42101,16697,803 +2020-05-07,Philadelphia,Pennsylvania,42101,17047,816 +2020-05-08,Philadelphia,Pennsylvania,42101,17517,875 +2020-05-09,Philadelphia,Pennsylvania,42101,17881,891 +2020-05-10,Philadelphia,Pennsylvania,42101,18211,894 +2020-05-11,Philadelphia,Pennsylvania,42101,18313,893 +2020-05-12,Philadelphia,Pennsylvania,42101,18537,908 +2020-05-13,Philadelphia,Pennsylvania,42101,18779,986 +2020-05-14,Philadelphia,Pennsylvania,42101,19093,1008 +2020-05-15,Philadelphia,Pennsylvania,42101,19349,1021 +2020-05-16,Philadelphia,Pennsylvania,42101,19606,1031 +2020-05-17,Philadelphia,Pennsylvania,42101,19606,1031 +2020-05-18,Philadelphia,Pennsylvania,42101,19950,1080 +2020-05-19,Philadelphia,Pennsylvania,42101,20129,1109 +2020-05-20,Philadelphia,Pennsylvania,42101,20359,1152 +2020-05-21,Philadelphia,Pennsylvania,42101,20700,1178 +2020-05-22,Philadelphia,Pennsylvania,42101,21009,1221 +2020-05-23,Philadelphia,Pennsylvania,42101,21234,1233 +2020-05-24,Philadelphia,Pennsylvania,42101,21234,1233 +2020-05-25,Philadelphia,Pennsylvania,42101,21641,1235 +2020-05-26,Philadelphia,Pennsylvania,42101,21738,1243 +2020-05-27,Philadelphia,Pennsylvania,42101,21975,1262 +2020-05-28,Philadelphia,Pennsylvania,42101,22150,1282 +2020-05-29,Philadelphia,Pennsylvania,42101,22405,1300 +2020-05-30,Philadelphia,Pennsylvania,42101,22629,1308 +2020-05-31,Philadelphia,Pennsylvania,42101,22629,1316 +2020-06-01,Philadelphia,Pennsylvania,42101,22881,1320 +2020-06-02,Philadelphia,Pennsylvania,42101,23034,1346 +2020-06-03,Philadelphia,Pennsylvania,42101,23160,1359 +2020-06-04,Philadelphia,Pennsylvania,42101,23281,1394 +2020-06-05,Philadelphia,Pennsylvania,42101,23407,1411 +2020-06-06,Philadelphia,Pennsylvania,42101,23529,1414 +2020-06-07,Philadelphia,Pennsylvania,42101,23529,1420 +2020-06-08,Philadelphia,Pennsylvania,42101,23691,1421 +2020-06-09,Philadelphia,Pennsylvania,42101,23822,1436 +2020-06-10,Philadelphia,Pennsylvania,42101,23951,1454 +2020-06-11,Philadelphia,Pennsylvania,42101,24107,1471 +2020-06-12,Philadelphia,Pennsylvania,42101,24228,1487 +2020-06-13,Philadelphia,Pennsylvania,42101,24338,1502 +2020-06-14,Philadelphia,Pennsylvania,42101,24338,1505 +2020-06-15,Philadelphia,Pennsylvania,42101,24475,1509 +2020-06-16,Philadelphia,Pennsylvania,42101,24591,1518 +2020-06-17,Philadelphia,Pennsylvania,42101,24655,1528 +2020-06-18,Philadelphia,Pennsylvania,42101,24723,1540 +2020-06-19,Philadelphia,Pennsylvania,42101,24841,1550 +2020-06-20,Philadelphia,Pennsylvania,42101,24841,1552 +2020-06-21,Philadelphia,Pennsylvania,42101,24841,1553 +2020-06-22,Philadelphia,Pennsylvania,42101,25116,1553 +2020-06-23,Philadelphia,Pennsylvania,42101,25335,1564 +2020-06-24,Philadelphia,Pennsylvania,42101,25443,1576 +2020-06-25,Philadelphia,Pennsylvania,42101,25443,1583 +2020-06-26,Philadelphia,Pennsylvania,42101,25693,1587 +2020-06-27,Philadelphia,Pennsylvania,42101,25693,1591 +2020-06-28,Philadelphia,Pennsylvania,42101,25693,1592 +2020-06-29,Philadelphia,Pennsylvania,42101,25991,1595 +2020-06-30,Philadelphia,Pennsylvania,42101,26133,1606 +2020-07-01,Philadelphia,Pennsylvania,42101,26257,1609 +2020-07-02,Philadelphia,Pennsylvania,42101,26400,1615 +2020-07-03,Philadelphia,Pennsylvania,42101,26536,1619 +2020-07-04,Philadelphia,Pennsylvania,42101,26565,1619 +2020-07-05,Philadelphia,Pennsylvania,42101,26565,1619 +2020-07-06,Philadelphia,Pennsylvania,42101,26810,1619 +2020-07-07,Philadelphia,Pennsylvania,42101,26901,1621 +2020-07-08,Philadelphia,Pennsylvania,42101,26969,1628 +2020-07-09,Philadelphia,Pennsylvania,42101,27228,1633 +2020-03-12,Pike,Pennsylvania,42103,1,0 +2020-03-13,Pike,Pennsylvania,42103,1,0 +2020-03-14,Pike,Pennsylvania,42103,1,0 +2020-03-15,Pike,Pennsylvania,42103,1,0 +2020-03-16,Pike,Pennsylvania,42103,1,0 +2020-03-17,Pike,Pennsylvania,42103,1,0 +2020-03-18,Pike,Pennsylvania,42103,2,0 +2020-03-19,Pike,Pennsylvania,42103,3,0 +2020-03-20,Pike,Pennsylvania,42103,3,0 +2020-03-21,Pike,Pennsylvania,42103,3,0 +2020-03-22,Pike,Pennsylvania,42103,3,0 +2020-03-23,Pike,Pennsylvania,42103,3,0 +2020-03-24,Pike,Pennsylvania,42103,4,0 +2020-03-25,Pike,Pennsylvania,42103,9,0 +2020-03-26,Pike,Pennsylvania,42103,15,0 +2020-03-27,Pike,Pennsylvania,42103,23,0 +2020-03-28,Pike,Pennsylvania,42103,27,1 +2020-03-29,Pike,Pennsylvania,42103,33,1 +2020-03-30,Pike,Pennsylvania,42103,39,1 +2020-03-31,Pike,Pennsylvania,42103,48,1 +2020-04-01,Pike,Pennsylvania,42103,57,1 +2020-04-02,Pike,Pennsylvania,42103,68,1 +2020-04-03,Pike,Pennsylvania,42103,83,1 +2020-04-04,Pike,Pennsylvania,42103,97,1 +2020-04-05,Pike,Pennsylvania,42103,114,1 +2020-04-06,Pike,Pennsylvania,42103,125,2 +2020-04-07,Pike,Pennsylvania,42103,136,5 +2020-04-08,Pike,Pennsylvania,42103,148,6 +2020-04-09,Pike,Pennsylvania,42103,163,6 +2020-04-10,Pike,Pennsylvania,42103,190,6 +2020-04-11,Pike,Pennsylvania,42103,208,6 +2020-04-12,Pike,Pennsylvania,42103,212,6 +2020-04-13,Pike,Pennsylvania,42103,221,6 +2020-04-14,Pike,Pennsylvania,42103,256,6 +2020-04-15,Pike,Pennsylvania,42103,268,7 +2020-04-16,Pike,Pennsylvania,42103,276,7 +2020-04-17,Pike,Pennsylvania,42103,290,8 +2020-04-18,Pike,Pennsylvania,42103,295,8 +2020-04-19,Pike,Pennsylvania,42103,301,8 +2020-04-20,Pike,Pennsylvania,42103,304,9 +2020-04-21,Pike,Pennsylvania,42103,314,12 +2020-04-22,Pike,Pennsylvania,42103,317,12 +2020-04-23,Pike,Pennsylvania,42103,327,12 +2020-04-24,Pike,Pennsylvania,42103,338,12 +2020-04-25,Pike,Pennsylvania,42103,347,12 +2020-04-26,Pike,Pennsylvania,42103,349,12 +2020-04-27,Pike,Pennsylvania,42103,352,12 +2020-04-28,Pike,Pennsylvania,42103,362,12 +2020-04-29,Pike,Pennsylvania,42103,369,14 +2020-04-30,Pike,Pennsylvania,42103,378,14 +2020-05-01,Pike,Pennsylvania,42103,383,15 +2020-05-02,Pike,Pennsylvania,42103,394,15 +2020-05-03,Pike,Pennsylvania,42103,405,16 +2020-05-04,Pike,Pennsylvania,42103,408,17 +2020-05-05,Pike,Pennsylvania,42103,412,17 +2020-05-06,Pike,Pennsylvania,42103,415,17 +2020-05-07,Pike,Pennsylvania,42103,419,19 +2020-05-08,Pike,Pennsylvania,42103,422,21 +2020-05-09,Pike,Pennsylvania,42103,427,21 +2020-05-10,Pike,Pennsylvania,42103,432,21 +2020-05-11,Pike,Pennsylvania,42103,433,21 +2020-05-12,Pike,Pennsylvania,42103,441,21 +2020-05-13,Pike,Pennsylvania,42103,451,21 +2020-05-14,Pike,Pennsylvania,42103,454,21 +2020-05-15,Pike,Pennsylvania,42103,458,22 +2020-05-16,Pike,Pennsylvania,42103,460,22 +2020-05-17,Pike,Pennsylvania,42103,460,22 +2020-05-18,Pike,Pennsylvania,42103,461,15 +2020-05-19,Pike,Pennsylvania,42103,469,17 +2020-05-20,Pike,Pennsylvania,42103,470,18 +2020-05-21,Pike,Pennsylvania,42103,473,18 +2020-05-22,Pike,Pennsylvania,42103,475,18 +2020-05-23,Pike,Pennsylvania,42103,476,18 +2020-05-24,Pike,Pennsylvania,42103,477,18 +2020-05-25,Pike,Pennsylvania,42103,477,18 +2020-05-26,Pike,Pennsylvania,42103,476,18 +2020-05-27,Pike,Pennsylvania,42103,476,18 +2020-05-28,Pike,Pennsylvania,42103,476,18 +2020-05-29,Pike,Pennsylvania,42103,476,19 +2020-05-30,Pike,Pennsylvania,42103,476,19 +2020-05-31,Pike,Pennsylvania,42103,476,19 +2020-06-01,Pike,Pennsylvania,42103,477,19 +2020-06-02,Pike,Pennsylvania,42103,478,20 +2020-06-03,Pike,Pennsylvania,42103,478,20 +2020-06-04,Pike,Pennsylvania,42103,478,20 +2020-06-05,Pike,Pennsylvania,42103,478,20 +2020-06-06,Pike,Pennsylvania,42103,481,20 +2020-06-07,Pike,Pennsylvania,42103,482,20 +2020-06-08,Pike,Pennsylvania,42103,482,20 +2020-06-09,Pike,Pennsylvania,42103,482,20 +2020-06-10,Pike,Pennsylvania,42103,483,20 +2020-06-11,Pike,Pennsylvania,42103,482,20 +2020-06-12,Pike,Pennsylvania,42103,482,20 +2020-06-13,Pike,Pennsylvania,42103,482,20 +2020-06-14,Pike,Pennsylvania,42103,482,20 +2020-06-15,Pike,Pennsylvania,42103,482,20 +2020-06-16,Pike,Pennsylvania,42103,485,20 +2020-06-17,Pike,Pennsylvania,42103,486,20 +2020-06-18,Pike,Pennsylvania,42103,487,20 +2020-06-19,Pike,Pennsylvania,42103,487,20 +2020-06-20,Pike,Pennsylvania,42103,487,20 +2020-06-21,Pike,Pennsylvania,42103,489,20 +2020-06-22,Pike,Pennsylvania,42103,489,20 +2020-06-23,Pike,Pennsylvania,42103,489,20 +2020-06-24,Pike,Pennsylvania,42103,489,20 +2020-06-25,Pike,Pennsylvania,42103,489,20 +2020-06-26,Pike,Pennsylvania,42103,489,20 +2020-06-27,Pike,Pennsylvania,42103,492,20 +2020-06-28,Pike,Pennsylvania,42103,493,20 +2020-06-29,Pike,Pennsylvania,42103,494,20 +2020-06-30,Pike,Pennsylvania,42103,496,20 +2020-07-01,Pike,Pennsylvania,42103,496,20 +2020-07-02,Pike,Pennsylvania,42103,498,20 +2020-07-03,Pike,Pennsylvania,42103,500,21 +2020-07-04,Pike,Pennsylvania,42103,502,21 +2020-07-05,Pike,Pennsylvania,42103,503,21 +2020-07-06,Pike,Pennsylvania,42103,503,21 +2020-07-07,Pike,Pennsylvania,42103,504,21 +2020-07-08,Pike,Pennsylvania,42103,504,21 +2020-07-09,Pike,Pennsylvania,42103,504,21 +2020-03-20,Potter,Pennsylvania,42105,1,0 +2020-03-21,Potter,Pennsylvania,42105,1,0 +2020-03-22,Potter,Pennsylvania,42105,1,0 +2020-03-23,Potter,Pennsylvania,42105,1,0 +2020-03-24,Potter,Pennsylvania,42105,1,0 +2020-03-25,Potter,Pennsylvania,42105,1,0 +2020-03-26,Potter,Pennsylvania,42105,1,0 +2020-03-27,Potter,Pennsylvania,42105,1,0 +2020-03-28,Potter,Pennsylvania,42105,2,0 +2020-03-29,Potter,Pennsylvania,42105,2,0 +2020-03-30,Potter,Pennsylvania,42105,2,0 +2020-03-31,Potter,Pennsylvania,42105,2,0 +2020-04-01,Potter,Pennsylvania,42105,2,0 +2020-04-02,Potter,Pennsylvania,42105,2,0 +2020-04-03,Potter,Pennsylvania,42105,2,0 +2020-04-04,Potter,Pennsylvania,42105,3,0 +2020-04-05,Potter,Pennsylvania,42105,3,0 +2020-04-06,Potter,Pennsylvania,42105,3,0 +2020-04-07,Potter,Pennsylvania,42105,3,0 +2020-04-08,Potter,Pennsylvania,42105,3,0 +2020-04-09,Potter,Pennsylvania,42105,3,0 +2020-04-10,Potter,Pennsylvania,42105,3,0 +2020-04-11,Potter,Pennsylvania,42105,4,0 +2020-04-12,Potter,Pennsylvania,42105,4,0 +2020-04-13,Potter,Pennsylvania,42105,4,0 +2020-04-14,Potter,Pennsylvania,42105,4,0 +2020-04-15,Potter,Pennsylvania,42105,4,0 +2020-04-16,Potter,Pennsylvania,42105,4,0 +2020-04-17,Potter,Pennsylvania,42105,4,0 +2020-04-18,Potter,Pennsylvania,42105,4,0 +2020-04-19,Potter,Pennsylvania,42105,4,0 +2020-04-20,Potter,Pennsylvania,42105,4,0 +2020-04-21,Potter,Pennsylvania,42105,4,0 +2020-04-22,Potter,Pennsylvania,42105,4,0 +2020-04-23,Potter,Pennsylvania,42105,4,0 +2020-04-24,Potter,Pennsylvania,42105,4,0 +2020-04-25,Potter,Pennsylvania,42105,4,0 +2020-04-26,Potter,Pennsylvania,42105,4,0 +2020-04-27,Potter,Pennsylvania,42105,4,0 +2020-04-28,Potter,Pennsylvania,42105,4,0 +2020-04-29,Potter,Pennsylvania,42105,4,0 +2020-04-30,Potter,Pennsylvania,42105,4,0 +2020-05-01,Potter,Pennsylvania,42105,4,0 +2020-05-02,Potter,Pennsylvania,42105,4,0 +2020-05-03,Potter,Pennsylvania,42105,4,0 +2020-05-04,Potter,Pennsylvania,42105,4,0 +2020-05-05,Potter,Pennsylvania,42105,4,0 +2020-05-06,Potter,Pennsylvania,42105,4,0 +2020-05-07,Potter,Pennsylvania,42105,4,0 +2020-05-08,Potter,Pennsylvania,42105,4,0 +2020-05-09,Potter,Pennsylvania,42105,4,0 +2020-05-10,Potter,Pennsylvania,42105,4,0 +2020-05-11,Potter,Pennsylvania,42105,4,0 +2020-05-12,Potter,Pennsylvania,42105,4,0 +2020-05-13,Potter,Pennsylvania,42105,4,0 +2020-05-14,Potter,Pennsylvania,42105,4,0 +2020-05-15,Potter,Pennsylvania,42105,4,0 +2020-05-16,Potter,Pennsylvania,42105,4,0 +2020-05-17,Potter,Pennsylvania,42105,4,0 +2020-05-18,Potter,Pennsylvania,42105,4,0 +2020-05-19,Potter,Pennsylvania,42105,4,0 +2020-05-20,Potter,Pennsylvania,42105,4,0 +2020-05-21,Potter,Pennsylvania,42105,4,0 +2020-05-22,Potter,Pennsylvania,42105,4,0 +2020-05-23,Potter,Pennsylvania,42105,4,0 +2020-05-24,Potter,Pennsylvania,42105,4,0 +2020-05-25,Potter,Pennsylvania,42105,4,0 +2020-05-26,Potter,Pennsylvania,42105,4,0 +2020-05-27,Potter,Pennsylvania,42105,4,0 +2020-05-28,Potter,Pennsylvania,42105,4,0 +2020-05-29,Potter,Pennsylvania,42105,4,0 +2020-05-30,Potter,Pennsylvania,42105,4,0 +2020-05-31,Potter,Pennsylvania,42105,4,0 +2020-06-01,Potter,Pennsylvania,42105,4,0 +2020-06-02,Potter,Pennsylvania,42105,4,0 +2020-06-03,Potter,Pennsylvania,42105,4,0 +2020-06-04,Potter,Pennsylvania,42105,6,0 +2020-06-05,Potter,Pennsylvania,42105,8,0 +2020-06-06,Potter,Pennsylvania,42105,11,0 +2020-06-07,Potter,Pennsylvania,42105,11,0 +2020-06-08,Potter,Pennsylvania,42105,11,0 +2020-06-09,Potter,Pennsylvania,42105,11,0 +2020-06-10,Potter,Pennsylvania,42105,12,0 +2020-06-11,Potter,Pennsylvania,42105,12,0 +2020-06-12,Potter,Pennsylvania,42105,13,0 +2020-06-13,Potter,Pennsylvania,42105,13,0 +2020-06-14,Potter,Pennsylvania,42105,13,0 +2020-06-15,Potter,Pennsylvania,42105,13,0 +2020-06-16,Potter,Pennsylvania,42105,13,0 +2020-06-17,Potter,Pennsylvania,42105,13,0 +2020-06-18,Potter,Pennsylvania,42105,13,0 +2020-06-19,Potter,Pennsylvania,42105,13,0 +2020-06-20,Potter,Pennsylvania,42105,13,0 +2020-06-21,Potter,Pennsylvania,42105,13,0 +2020-06-22,Potter,Pennsylvania,42105,13,0 +2020-06-23,Potter,Pennsylvania,42105,13,0 +2020-06-24,Potter,Pennsylvania,42105,14,0 +2020-06-25,Potter,Pennsylvania,42105,14,0 +2020-06-26,Potter,Pennsylvania,42105,15,0 +2020-06-27,Potter,Pennsylvania,42105,15,0 +2020-06-28,Potter,Pennsylvania,42105,15,0 +2020-06-29,Potter,Pennsylvania,42105,15,0 +2020-06-30,Potter,Pennsylvania,42105,15,0 +2020-07-01,Potter,Pennsylvania,42105,16,0 +2020-07-02,Potter,Pennsylvania,42105,16,0 +2020-07-03,Potter,Pennsylvania,42105,17,0 +2020-07-04,Potter,Pennsylvania,42105,17,0 +2020-07-05,Potter,Pennsylvania,42105,17,0 +2020-07-06,Potter,Pennsylvania,42105,17,0 +2020-07-07,Potter,Pennsylvania,42105,17,0 +2020-07-08,Potter,Pennsylvania,42105,17,0 +2020-07-09,Potter,Pennsylvania,42105,17,0 +2020-03-22,Schuylkill,Pennsylvania,42107,1,0 +2020-03-23,Schuylkill,Pennsylvania,42107,3,0 +2020-03-24,Schuylkill,Pennsylvania,42107,5,0 +2020-03-25,Schuylkill,Pennsylvania,42107,6,0 +2020-03-26,Schuylkill,Pennsylvania,42107,9,0 +2020-03-27,Schuylkill,Pennsylvania,42107,13,0 +2020-03-28,Schuylkill,Pennsylvania,42107,16,0 +2020-03-29,Schuylkill,Pennsylvania,42107,21,0 +2020-03-30,Schuylkill,Pennsylvania,42107,30,0 +2020-03-31,Schuylkill,Pennsylvania,42107,38,0 +2020-04-01,Schuylkill,Pennsylvania,42107,47,0 +2020-04-02,Schuylkill,Pennsylvania,42107,54,0 +2020-04-03,Schuylkill,Pennsylvania,42107,63,0 +2020-04-04,Schuylkill,Pennsylvania,42107,77,0 +2020-04-05,Schuylkill,Pennsylvania,42107,90,0 +2020-04-06,Schuylkill,Pennsylvania,42107,103,0 +2020-04-07,Schuylkill,Pennsylvania,42107,119,0 +2020-04-08,Schuylkill,Pennsylvania,42107,136,0 +2020-04-09,Schuylkill,Pennsylvania,42107,149,1 +2020-04-10,Schuylkill,Pennsylvania,42107,164,1 +2020-04-11,Schuylkill,Pennsylvania,42107,179,2 +2020-04-12,Schuylkill,Pennsylvania,42107,188,2 +2020-04-13,Schuylkill,Pennsylvania,42107,192,2 +2020-04-14,Schuylkill,Pennsylvania,42107,200,2 +2020-04-15,Schuylkill,Pennsylvania,42107,212,3 +2020-04-16,Schuylkill,Pennsylvania,42107,236,4 +2020-04-17,Schuylkill,Pennsylvania,42107,244,4 +2020-04-18,Schuylkill,Pennsylvania,42107,254,5 +2020-04-19,Schuylkill,Pennsylvania,42107,261,5 +2020-04-20,Schuylkill,Pennsylvania,42107,267,5 +2020-04-21,Schuylkill,Pennsylvania,42107,277,7 +2020-04-22,Schuylkill,Pennsylvania,42107,283,7 +2020-04-23,Schuylkill,Pennsylvania,42107,290,7 +2020-04-24,Schuylkill,Pennsylvania,42107,300,7 +2020-04-25,Schuylkill,Pennsylvania,42107,311,7 +2020-04-26,Schuylkill,Pennsylvania,42107,321,7 +2020-04-27,Schuylkill,Pennsylvania,42107,324,7 +2020-04-28,Schuylkill,Pennsylvania,42107,330,7 +2020-04-29,Schuylkill,Pennsylvania,42107,343,7 +2020-04-30,Schuylkill,Pennsylvania,42107,368,7 +2020-05-01,Schuylkill,Pennsylvania,42107,375,7 +2020-05-02,Schuylkill,Pennsylvania,42107,384,7 +2020-05-03,Schuylkill,Pennsylvania,42107,395,7 +2020-05-04,Schuylkill,Pennsylvania,42107,398,7 +2020-05-05,Schuylkill,Pennsylvania,42107,405,7 +2020-05-06,Schuylkill,Pennsylvania,42107,419,9 +2020-05-07,Schuylkill,Pennsylvania,42107,422,10 +2020-05-08,Schuylkill,Pennsylvania,42107,430,13 +2020-05-09,Schuylkill,Pennsylvania,42107,437,13 +2020-05-10,Schuylkill,Pennsylvania,42107,451,13 +2020-05-11,Schuylkill,Pennsylvania,42107,453,13 +2020-05-12,Schuylkill,Pennsylvania,42107,459,14 +2020-05-13,Schuylkill,Pennsylvania,42107,478,14 +2020-05-14,Schuylkill,Pennsylvania,42107,490,14 +2020-05-15,Schuylkill,Pennsylvania,42107,506,15 +2020-05-16,Schuylkill,Pennsylvania,42107,512,15 +2020-05-17,Schuylkill,Pennsylvania,42107,525,15 +2020-05-18,Schuylkill,Pennsylvania,42107,529,20 +2020-05-19,Schuylkill,Pennsylvania,42107,534,21 +2020-05-20,Schuylkill,Pennsylvania,42107,541,21 +2020-05-21,Schuylkill,Pennsylvania,42107,548,25 +2020-05-22,Schuylkill,Pennsylvania,42107,560,26 +2020-05-23,Schuylkill,Pennsylvania,42107,576,26 +2020-05-24,Schuylkill,Pennsylvania,42107,585,27 +2020-05-25,Schuylkill,Pennsylvania,42107,592,27 +2020-05-26,Schuylkill,Pennsylvania,42107,600,27 +2020-05-27,Schuylkill,Pennsylvania,42107,601,28 +2020-05-28,Schuylkill,Pennsylvania,42107,606,31 +2020-05-29,Schuylkill,Pennsylvania,42107,616,32 +2020-05-30,Schuylkill,Pennsylvania,42107,623,34 +2020-05-31,Schuylkill,Pennsylvania,42107,631,34 +2020-06-01,Schuylkill,Pennsylvania,42107,631,34 +2020-06-02,Schuylkill,Pennsylvania,42107,643,36 +2020-06-03,Schuylkill,Pennsylvania,42107,646,36 +2020-06-04,Schuylkill,Pennsylvania,42107,651,37 +2020-06-05,Schuylkill,Pennsylvania,42107,653,38 +2020-06-06,Schuylkill,Pennsylvania,42107,656,38 +2020-06-07,Schuylkill,Pennsylvania,42107,656,39 +2020-06-08,Schuylkill,Pennsylvania,42107,657,39 +2020-06-09,Schuylkill,Pennsylvania,42107,659,41 +2020-06-10,Schuylkill,Pennsylvania,42107,664,42 +2020-06-11,Schuylkill,Pennsylvania,42107,668,42 +2020-06-12,Schuylkill,Pennsylvania,42107,677,43 +2020-06-13,Schuylkill,Pennsylvania,42107,681,43 +2020-06-14,Schuylkill,Pennsylvania,42107,685,43 +2020-06-15,Schuylkill,Pennsylvania,42107,691,43 +2020-06-16,Schuylkill,Pennsylvania,42107,696,43 +2020-06-17,Schuylkill,Pennsylvania,42107,698,43 +2020-06-18,Schuylkill,Pennsylvania,42107,702,43 +2020-06-19,Schuylkill,Pennsylvania,42107,703,43 +2020-06-20,Schuylkill,Pennsylvania,42107,713,43 +2020-06-21,Schuylkill,Pennsylvania,42107,714,43 +2020-06-22,Schuylkill,Pennsylvania,42107,715,43 +2020-06-23,Schuylkill,Pennsylvania,42107,719,43 +2020-06-24,Schuylkill,Pennsylvania,42107,721,43 +2020-06-25,Schuylkill,Pennsylvania,42107,730,43 +2020-06-26,Schuylkill,Pennsylvania,42107,736,44 +2020-06-27,Schuylkill,Pennsylvania,42107,739,44 +2020-06-28,Schuylkill,Pennsylvania,42107,740,44 +2020-06-29,Schuylkill,Pennsylvania,42107,741,44 +2020-06-30,Schuylkill,Pennsylvania,42107,741,44 +2020-07-01,Schuylkill,Pennsylvania,42107,747,44 +2020-07-02,Schuylkill,Pennsylvania,42107,750,44 +2020-07-03,Schuylkill,Pennsylvania,42107,753,44 +2020-07-04,Schuylkill,Pennsylvania,42107,754,44 +2020-07-05,Schuylkill,Pennsylvania,42107,754,44 +2020-07-06,Schuylkill,Pennsylvania,42107,755,44 +2020-07-07,Schuylkill,Pennsylvania,42107,759,46 +2020-07-08,Schuylkill,Pennsylvania,42107,761,47 +2020-07-09,Schuylkill,Pennsylvania,42107,765,47 +2020-03-28,Snyder,Pennsylvania,42109,1,0 +2020-03-29,Snyder,Pennsylvania,42109,2,0 +2020-03-30,Snyder,Pennsylvania,42109,2,0 +2020-03-31,Snyder,Pennsylvania,42109,2,1 +2020-04-01,Snyder,Pennsylvania,42109,3,1 +2020-04-02,Snyder,Pennsylvania,42109,3,1 +2020-04-03,Snyder,Pennsylvania,42109,4,1 +2020-04-04,Snyder,Pennsylvania,42109,6,1 +2020-04-05,Snyder,Pennsylvania,42109,8,1 +2020-04-06,Snyder,Pennsylvania,42109,8,1 +2020-04-07,Snyder,Pennsylvania,42109,9,1 +2020-04-08,Snyder,Pennsylvania,42109,9,1 +2020-04-09,Snyder,Pennsylvania,42109,9,1 +2020-04-10,Snyder,Pennsylvania,42109,12,1 +2020-04-11,Snyder,Pennsylvania,42109,16,1 +2020-04-12,Snyder,Pennsylvania,42109,20,1 +2020-04-13,Snyder,Pennsylvania,42109,23,1 +2020-04-14,Snyder,Pennsylvania,42109,24,1 +2020-04-15,Snyder,Pennsylvania,42109,24,1 +2020-04-16,Snyder,Pennsylvania,42109,24,1 +2020-04-17,Snyder,Pennsylvania,42109,25,1 +2020-04-18,Snyder,Pennsylvania,42109,27,1 +2020-04-19,Snyder,Pennsylvania,42109,27,1 +2020-04-20,Snyder,Pennsylvania,42109,28,1 +2020-04-21,Snyder,Pennsylvania,42109,30,1 +2020-04-22,Snyder,Pennsylvania,42109,31,1 +2020-04-23,Snyder,Pennsylvania,42109,31,1 +2020-04-24,Snyder,Pennsylvania,42109,31,1 +2020-04-25,Snyder,Pennsylvania,42109,32,1 +2020-04-26,Snyder,Pennsylvania,42109,33,1 +2020-04-27,Snyder,Pennsylvania,42109,33,1 +2020-04-28,Snyder,Pennsylvania,42109,33,1 +2020-04-29,Snyder,Pennsylvania,42109,33,1 +2020-04-30,Snyder,Pennsylvania,42109,33,1 +2020-05-01,Snyder,Pennsylvania,42109,33,1 +2020-05-02,Snyder,Pennsylvania,42109,33,1 +2020-05-03,Snyder,Pennsylvania,42109,33,1 +2020-05-04,Snyder,Pennsylvania,42109,33,1 +2020-05-05,Snyder,Pennsylvania,42109,33,1 +2020-05-06,Snyder,Pennsylvania,42109,33,1 +2020-05-07,Snyder,Pennsylvania,42109,33,1 +2020-05-08,Snyder,Pennsylvania,42109,33,1 +2020-05-09,Snyder,Pennsylvania,42109,33,1 +2020-05-10,Snyder,Pennsylvania,42109,33,1 +2020-05-11,Snyder,Pennsylvania,42109,33,1 +2020-05-12,Snyder,Pennsylvania,42109,33,1 +2020-05-13,Snyder,Pennsylvania,42109,33,1 +2020-05-14,Snyder,Pennsylvania,42109,33,1 +2020-05-15,Snyder,Pennsylvania,42109,33,2 +2020-05-16,Snyder,Pennsylvania,42109,33,2 +2020-05-17,Snyder,Pennsylvania,42109,33,2 +2020-05-18,Snyder,Pennsylvania,42109,33,1 +2020-05-19,Snyder,Pennsylvania,42109,33,1 +2020-05-20,Snyder,Pennsylvania,42109,33,1 +2020-05-21,Snyder,Pennsylvania,42109,33,1 +2020-05-22,Snyder,Pennsylvania,42109,35,1 +2020-05-23,Snyder,Pennsylvania,42109,38,1 +2020-05-24,Snyder,Pennsylvania,42109,38,1 +2020-05-25,Snyder,Pennsylvania,42109,38,1 +2020-05-26,Snyder,Pennsylvania,42109,38,1 +2020-05-27,Snyder,Pennsylvania,42109,39,1 +2020-05-28,Snyder,Pennsylvania,42109,39,1 +2020-05-29,Snyder,Pennsylvania,42109,39,1 +2020-05-30,Snyder,Pennsylvania,42109,42,1 +2020-05-31,Snyder,Pennsylvania,42109,45,1 +2020-06-01,Snyder,Pennsylvania,42109,45,1 +2020-06-02,Snyder,Pennsylvania,42109,45,1 +2020-06-03,Snyder,Pennsylvania,42109,45,1 +2020-06-04,Snyder,Pennsylvania,42109,51,1 +2020-06-05,Snyder,Pennsylvania,42109,53,1 +2020-06-06,Snyder,Pennsylvania,42109,54,1 +2020-06-07,Snyder,Pennsylvania,42109,55,1 +2020-06-08,Snyder,Pennsylvania,42109,55,1 +2020-06-09,Snyder,Pennsylvania,42109,57,1 +2020-06-10,Snyder,Pennsylvania,42109,59,1 +2020-06-11,Snyder,Pennsylvania,42109,59,1 +2020-06-12,Snyder,Pennsylvania,42109,59,1 +2020-06-13,Snyder,Pennsylvania,42109,59,1 +2020-06-14,Snyder,Pennsylvania,42109,59,1 +2020-06-15,Snyder,Pennsylvania,42109,60,1 +2020-06-16,Snyder,Pennsylvania,42109,60,1 +2020-06-17,Snyder,Pennsylvania,42109,60,1 +2020-06-18,Snyder,Pennsylvania,42109,61,1 +2020-06-19,Snyder,Pennsylvania,42109,61,1 +2020-06-20,Snyder,Pennsylvania,42109,61,1 +2020-06-21,Snyder,Pennsylvania,42109,61,1 +2020-06-22,Snyder,Pennsylvania,42109,61,1 +2020-06-23,Snyder,Pennsylvania,42109,61,1 +2020-06-24,Snyder,Pennsylvania,42109,61,2 +2020-06-25,Snyder,Pennsylvania,42109,61,2 +2020-06-26,Snyder,Pennsylvania,42109,61,2 +2020-06-27,Snyder,Pennsylvania,42109,63,2 +2020-06-28,Snyder,Pennsylvania,42109,65,2 +2020-06-29,Snyder,Pennsylvania,42109,65,2 +2020-06-30,Snyder,Pennsylvania,42109,66,2 +2020-07-01,Snyder,Pennsylvania,42109,66,2 +2020-07-02,Snyder,Pennsylvania,42109,67,2 +2020-07-03,Snyder,Pennsylvania,42109,67,2 +2020-07-04,Snyder,Pennsylvania,42109,68,2 +2020-07-05,Snyder,Pennsylvania,42109,68,2 +2020-07-06,Snyder,Pennsylvania,42109,68,2 +2020-07-07,Snyder,Pennsylvania,42109,68,2 +2020-07-08,Snyder,Pennsylvania,42109,71,2 +2020-07-09,Snyder,Pennsylvania,42109,72,2 +2020-03-24,Somerset,Pennsylvania,42111,1,0 +2020-03-25,Somerset,Pennsylvania,42111,2,0 +2020-03-26,Somerset,Pennsylvania,42111,2,0 +2020-03-27,Somerset,Pennsylvania,42111,2,0 +2020-03-28,Somerset,Pennsylvania,42111,2,0 +2020-03-29,Somerset,Pennsylvania,42111,2,0 +2020-03-30,Somerset,Pennsylvania,42111,2,0 +2020-03-31,Somerset,Pennsylvania,42111,2,0 +2020-04-01,Somerset,Pennsylvania,42111,3,0 +2020-04-02,Somerset,Pennsylvania,42111,3,0 +2020-04-03,Somerset,Pennsylvania,42111,3,0 +2020-04-04,Somerset,Pennsylvania,42111,3,0 +2020-04-05,Somerset,Pennsylvania,42111,4,0 +2020-04-06,Somerset,Pennsylvania,42111,6,0 +2020-04-07,Somerset,Pennsylvania,42111,7,0 +2020-04-08,Somerset,Pennsylvania,42111,7,0 +2020-04-09,Somerset,Pennsylvania,42111,7,0 +2020-04-10,Somerset,Pennsylvania,42111,10,0 +2020-04-11,Somerset,Pennsylvania,42111,10,0 +2020-04-12,Somerset,Pennsylvania,42111,12,0 +2020-04-13,Somerset,Pennsylvania,42111,13,0 +2020-04-14,Somerset,Pennsylvania,42111,13,0 +2020-04-15,Somerset,Pennsylvania,42111,14,0 +2020-04-16,Somerset,Pennsylvania,42111,14,0 +2020-04-17,Somerset,Pennsylvania,42111,15,0 +2020-04-18,Somerset,Pennsylvania,42111,17,0 +2020-04-19,Somerset,Pennsylvania,42111,18,0 +2020-04-20,Somerset,Pennsylvania,42111,19,0 +2020-04-21,Somerset,Pennsylvania,42111,19,0 +2020-04-22,Somerset,Pennsylvania,42111,19,0 +2020-04-23,Somerset,Pennsylvania,42111,20,0 +2020-04-24,Somerset,Pennsylvania,42111,22,0 +2020-04-25,Somerset,Pennsylvania,42111,25,0 +2020-04-26,Somerset,Pennsylvania,42111,25,0 +2020-04-27,Somerset,Pennsylvania,42111,25,0 +2020-04-28,Somerset,Pennsylvania,42111,26,0 +2020-04-29,Somerset,Pennsylvania,42111,26,0 +2020-04-30,Somerset,Pennsylvania,42111,26,0 +2020-05-01,Somerset,Pennsylvania,42111,26,0 +2020-05-02,Somerset,Pennsylvania,42111,29,1 +2020-05-03,Somerset,Pennsylvania,42111,29,1 +2020-05-04,Somerset,Pennsylvania,42111,30,1 +2020-05-05,Somerset,Pennsylvania,42111,30,1 +2020-05-06,Somerset,Pennsylvania,42111,32,1 +2020-05-07,Somerset,Pennsylvania,42111,32,1 +2020-05-08,Somerset,Pennsylvania,42111,32,1 +2020-05-09,Somerset,Pennsylvania,42111,32,1 +2020-05-10,Somerset,Pennsylvania,42111,32,1 +2020-05-11,Somerset,Pennsylvania,42111,32,1 +2020-05-12,Somerset,Pennsylvania,42111,32,1 +2020-05-13,Somerset,Pennsylvania,42111,32,1 +2020-05-14,Somerset,Pennsylvania,42111,32,1 +2020-05-15,Somerset,Pennsylvania,42111,32,1 +2020-05-16,Somerset,Pennsylvania,42111,32,1 +2020-05-17,Somerset,Pennsylvania,42111,33,1 +2020-05-18,Somerset,Pennsylvania,42111,36,0 +2020-05-19,Somerset,Pennsylvania,42111,36,0 +2020-05-20,Somerset,Pennsylvania,42111,37,0 +2020-05-21,Somerset,Pennsylvania,42111,37,0 +2020-05-22,Somerset,Pennsylvania,42111,37,0 +2020-05-23,Somerset,Pennsylvania,42111,37,0 +2020-05-24,Somerset,Pennsylvania,42111,37,0 +2020-05-25,Somerset,Pennsylvania,42111,37,0 +2020-05-26,Somerset,Pennsylvania,42111,37,0 +2020-05-27,Somerset,Pennsylvania,42111,37,0 +2020-05-28,Somerset,Pennsylvania,42111,37,0 +2020-05-29,Somerset,Pennsylvania,42111,37,1 +2020-05-30,Somerset,Pennsylvania,42111,38,1 +2020-05-31,Somerset,Pennsylvania,42111,38,1 +2020-06-01,Somerset,Pennsylvania,42111,38,1 +2020-06-02,Somerset,Pennsylvania,42111,38,1 +2020-06-03,Somerset,Pennsylvania,42111,38,1 +2020-06-04,Somerset,Pennsylvania,42111,38,1 +2020-06-05,Somerset,Pennsylvania,42111,38,1 +2020-06-06,Somerset,Pennsylvania,42111,39,1 +2020-06-07,Somerset,Pennsylvania,42111,39,1 +2020-06-08,Somerset,Pennsylvania,42111,39,1 +2020-06-09,Somerset,Pennsylvania,42111,39,1 +2020-06-10,Somerset,Pennsylvania,42111,39,1 +2020-06-11,Somerset,Pennsylvania,42111,39,1 +2020-06-12,Somerset,Pennsylvania,42111,39,1 +2020-06-13,Somerset,Pennsylvania,42111,40,1 +2020-06-14,Somerset,Pennsylvania,42111,40,1 +2020-06-15,Somerset,Pennsylvania,42111,41,1 +2020-06-16,Somerset,Pennsylvania,42111,41,1 +2020-06-17,Somerset,Pennsylvania,42111,41,1 +2020-06-18,Somerset,Pennsylvania,42111,42,1 +2020-06-19,Somerset,Pennsylvania,42111,46,1 +2020-06-20,Somerset,Pennsylvania,42111,47,1 +2020-06-21,Somerset,Pennsylvania,42111,47,1 +2020-06-22,Somerset,Pennsylvania,42111,48,1 +2020-06-23,Somerset,Pennsylvania,42111,48,1 +2020-06-24,Somerset,Pennsylvania,42111,49,1 +2020-06-25,Somerset,Pennsylvania,42111,52,1 +2020-06-26,Somerset,Pennsylvania,42111,55,1 +2020-06-27,Somerset,Pennsylvania,42111,57,1 +2020-06-28,Somerset,Pennsylvania,42111,61,1 +2020-06-29,Somerset,Pennsylvania,42111,61,1 +2020-06-30,Somerset,Pennsylvania,42111,61,1 +2020-07-01,Somerset,Pennsylvania,42111,61,1 +2020-07-02,Somerset,Pennsylvania,42111,62,1 +2020-07-03,Somerset,Pennsylvania,42111,63,1 +2020-07-04,Somerset,Pennsylvania,42111,63,1 +2020-07-05,Somerset,Pennsylvania,42111,63,1 +2020-07-06,Somerset,Pennsylvania,42111,64,1 +2020-07-07,Somerset,Pennsylvania,42111,64,1 +2020-07-08,Somerset,Pennsylvania,42111,67,1 +2020-07-09,Somerset,Pennsylvania,42111,69,1 +2020-04-04,Sullivan,Pennsylvania,42113,1,0 +2020-04-05,Sullivan,Pennsylvania,42113,1,0 +2020-04-06,Sullivan,Pennsylvania,42113,1,0 +2020-04-07,Sullivan,Pennsylvania,42113,1,0 +2020-04-08,Sullivan,Pennsylvania,42113,1,0 +2020-04-09,Sullivan,Pennsylvania,42113,1,0 +2020-04-10,Sullivan,Pennsylvania,42113,1,0 +2020-04-11,Sullivan,Pennsylvania,42113,1,0 +2020-04-12,Sullivan,Pennsylvania,42113,1,0 +2020-04-13,Sullivan,Pennsylvania,42113,1,0 +2020-04-14,Sullivan,Pennsylvania,42113,1,0 +2020-04-15,Sullivan,Pennsylvania,42113,1,0 +2020-04-16,Sullivan,Pennsylvania,42113,1,0 +2020-04-17,Sullivan,Pennsylvania,42113,1,0 +2020-04-18,Sullivan,Pennsylvania,42113,1,0 +2020-04-19,Sullivan,Pennsylvania,42113,1,0 +2020-04-20,Sullivan,Pennsylvania,42113,1,0 +2020-04-21,Sullivan,Pennsylvania,42113,1,0 +2020-04-22,Sullivan,Pennsylvania,42113,1,0 +2020-04-23,Sullivan,Pennsylvania,42113,1,0 +2020-04-24,Sullivan,Pennsylvania,42113,1,0 +2020-04-25,Sullivan,Pennsylvania,42113,1,0 +2020-04-26,Sullivan,Pennsylvania,42113,1,0 +2020-04-27,Sullivan,Pennsylvania,42113,1,0 +2020-04-28,Sullivan,Pennsylvania,42113,1,0 +2020-04-29,Sullivan,Pennsylvania,42113,1,0 +2020-04-30,Sullivan,Pennsylvania,42113,1,0 +2020-05-01,Sullivan,Pennsylvania,42113,1,0 +2020-05-02,Sullivan,Pennsylvania,42113,1,0 +2020-05-03,Sullivan,Pennsylvania,42113,1,0 +2020-05-04,Sullivan,Pennsylvania,42113,1,0 +2020-05-05,Sullivan,Pennsylvania,42113,1,0 +2020-05-06,Sullivan,Pennsylvania,42113,1,0 +2020-05-07,Sullivan,Pennsylvania,42113,1,0 +2020-05-08,Sullivan,Pennsylvania,42113,1,0 +2020-05-09,Sullivan,Pennsylvania,42113,1,0 +2020-05-10,Sullivan,Pennsylvania,42113,1,0 +2020-05-11,Sullivan,Pennsylvania,42113,1,0 +2020-05-12,Sullivan,Pennsylvania,42113,1,0 +2020-05-13,Sullivan,Pennsylvania,42113,1,0 +2020-05-14,Sullivan,Pennsylvania,42113,1,0 +2020-05-15,Sullivan,Pennsylvania,42113,2,0 +2020-05-16,Sullivan,Pennsylvania,42113,2,0 +2020-05-17,Sullivan,Pennsylvania,42113,2,0 +2020-05-18,Sullivan,Pennsylvania,42113,2,0 +2020-05-19,Sullivan,Pennsylvania,42113,2,0 +2020-05-20,Sullivan,Pennsylvania,42113,2,0 +2020-05-21,Sullivan,Pennsylvania,42113,2,0 +2020-05-22,Sullivan,Pennsylvania,42113,2,0 +2020-05-23,Sullivan,Pennsylvania,42113,2,0 +2020-05-24,Sullivan,Pennsylvania,42113,2,0 +2020-05-25,Sullivan,Pennsylvania,42113,2,0 +2020-05-26,Sullivan,Pennsylvania,42113,2,0 +2020-05-27,Sullivan,Pennsylvania,42113,2,0 +2020-05-28,Sullivan,Pennsylvania,42113,2,0 +2020-05-29,Sullivan,Pennsylvania,42113,3,0 +2020-05-30,Sullivan,Pennsylvania,42113,3,0 +2020-05-31,Sullivan,Pennsylvania,42113,3,0 +2020-06-01,Sullivan,Pennsylvania,42113,3,0 +2020-06-02,Sullivan,Pennsylvania,42113,3,0 +2020-06-03,Sullivan,Pennsylvania,42113,3,0 +2020-06-04,Sullivan,Pennsylvania,42113,3,0 +2020-06-05,Sullivan,Pennsylvania,42113,3,0 +2020-06-06,Sullivan,Pennsylvania,42113,3,0 +2020-06-07,Sullivan,Pennsylvania,42113,3,0 +2020-06-08,Sullivan,Pennsylvania,42113,3,0 +2020-06-09,Sullivan,Pennsylvania,42113,3,0 +2020-06-10,Sullivan,Pennsylvania,42113,3,0 +2020-06-11,Sullivan,Pennsylvania,42113,3,0 +2020-06-12,Sullivan,Pennsylvania,42113,3,0 +2020-06-13,Sullivan,Pennsylvania,42113,3,0 +2020-06-14,Sullivan,Pennsylvania,42113,3,0 +2020-06-15,Sullivan,Pennsylvania,42113,3,0 +2020-06-16,Sullivan,Pennsylvania,42113,3,0 +2020-06-17,Sullivan,Pennsylvania,42113,3,0 +2020-06-18,Sullivan,Pennsylvania,42113,3,0 +2020-06-19,Sullivan,Pennsylvania,42113,3,0 +2020-06-20,Sullivan,Pennsylvania,42113,3,0 +2020-06-21,Sullivan,Pennsylvania,42113,3,0 +2020-06-22,Sullivan,Pennsylvania,42113,3,0 +2020-06-23,Sullivan,Pennsylvania,42113,3,0 +2020-06-24,Sullivan,Pennsylvania,42113,3,0 +2020-06-25,Sullivan,Pennsylvania,42113,3,0 +2020-06-26,Sullivan,Pennsylvania,42113,3,0 +2020-06-27,Sullivan,Pennsylvania,42113,4,0 +2020-06-28,Sullivan,Pennsylvania,42113,5,0 +2020-06-29,Sullivan,Pennsylvania,42113,5,0 +2020-06-30,Sullivan,Pennsylvania,42113,5,0 +2020-07-01,Sullivan,Pennsylvania,42113,5,0 +2020-07-02,Sullivan,Pennsylvania,42113,6,0 +2020-07-03,Sullivan,Pennsylvania,42113,6,0 +2020-07-04,Sullivan,Pennsylvania,42113,10,0 +2020-07-05,Sullivan,Pennsylvania,42113,10,0 +2020-07-06,Sullivan,Pennsylvania,42113,10,0 +2020-07-07,Sullivan,Pennsylvania,42113,10,0 +2020-07-08,Sullivan,Pennsylvania,42113,10,0 +2020-07-09,Sullivan,Pennsylvania,42113,10,0 +2020-03-26,Susquehanna,Pennsylvania,42115,1,0 +2020-03-27,Susquehanna,Pennsylvania,42115,1,0 +2020-03-28,Susquehanna,Pennsylvania,42115,1,0 +2020-03-29,Susquehanna,Pennsylvania,42115,1,0 +2020-03-30,Susquehanna,Pennsylvania,42115,1,0 +2020-03-31,Susquehanna,Pennsylvania,42115,1,0 +2020-04-01,Susquehanna,Pennsylvania,42115,2,0 +2020-04-02,Susquehanna,Pennsylvania,42115,3,0 +2020-04-03,Susquehanna,Pennsylvania,42115,4,0 +2020-04-04,Susquehanna,Pennsylvania,42115,5,0 +2020-04-05,Susquehanna,Pennsylvania,42115,6,0 +2020-04-06,Susquehanna,Pennsylvania,42115,6,0 +2020-04-07,Susquehanna,Pennsylvania,42115,11,0 +2020-04-08,Susquehanna,Pennsylvania,42115,14,0 +2020-04-09,Susquehanna,Pennsylvania,42115,16,1 +2020-04-10,Susquehanna,Pennsylvania,42115,22,2 +2020-04-11,Susquehanna,Pennsylvania,42115,23,2 +2020-04-12,Susquehanna,Pennsylvania,42115,25,1 +2020-04-13,Susquehanna,Pennsylvania,42115,31,1 +2020-04-14,Susquehanna,Pennsylvania,42115,32,1 +2020-04-15,Susquehanna,Pennsylvania,42115,40,1 +2020-04-16,Susquehanna,Pennsylvania,42115,49,1 +2020-04-17,Susquehanna,Pennsylvania,42115,58,1 +2020-04-18,Susquehanna,Pennsylvania,42115,59,1 +2020-04-19,Susquehanna,Pennsylvania,42115,63,3 +2020-04-20,Susquehanna,Pennsylvania,42115,66,4 +2020-04-21,Susquehanna,Pennsylvania,42115,71,4 +2020-04-22,Susquehanna,Pennsylvania,42115,71,4 +2020-04-23,Susquehanna,Pennsylvania,42115,72,4 +2020-04-24,Susquehanna,Pennsylvania,42115,76,4 +2020-04-25,Susquehanna,Pennsylvania,42115,77,4 +2020-04-26,Susquehanna,Pennsylvania,42115,79,4 +2020-04-27,Susquehanna,Pennsylvania,42115,81,4 +2020-04-28,Susquehanna,Pennsylvania,42115,82,4 +2020-04-29,Susquehanna,Pennsylvania,42115,82,8 +2020-04-30,Susquehanna,Pennsylvania,42115,84,8 +2020-05-01,Susquehanna,Pennsylvania,42115,84,8 +2020-05-02,Susquehanna,Pennsylvania,42115,84,9 +2020-05-03,Susquehanna,Pennsylvania,42115,85,9 +2020-05-04,Susquehanna,Pennsylvania,42115,86,9 +2020-05-05,Susquehanna,Pennsylvania,42115,86,11 +2020-05-06,Susquehanna,Pennsylvania,42115,87,11 +2020-05-07,Susquehanna,Pennsylvania,42115,86,11 +2020-05-08,Susquehanna,Pennsylvania,42115,86,13 +2020-05-09,Susquehanna,Pennsylvania,42115,82,13 +2020-05-10,Susquehanna,Pennsylvania,42115,82,13 +2020-05-11,Susquehanna,Pennsylvania,42115,82,13 +2020-05-12,Susquehanna,Pennsylvania,42115,82,13 +2020-05-13,Susquehanna,Pennsylvania,42115,82,13 +2020-05-14,Susquehanna,Pennsylvania,42115,82,14 +2020-05-15,Susquehanna,Pennsylvania,42115,82,14 +2020-05-16,Susquehanna,Pennsylvania,42115,83,14 +2020-05-17,Susquehanna,Pennsylvania,42115,83,14 +2020-05-18,Susquehanna,Pennsylvania,42115,85,15 +2020-05-19,Susquehanna,Pennsylvania,42115,85,15 +2020-05-20,Susquehanna,Pennsylvania,42115,87,15 +2020-05-21,Susquehanna,Pennsylvania,42115,90,15 +2020-05-22,Susquehanna,Pennsylvania,42115,93,15 +2020-05-23,Susquehanna,Pennsylvania,42115,95,15 +2020-05-24,Susquehanna,Pennsylvania,42115,96,15 +2020-05-25,Susquehanna,Pennsylvania,42115,96,15 +2020-05-26,Susquehanna,Pennsylvania,42115,97,15 +2020-05-27,Susquehanna,Pennsylvania,42115,98,15 +2020-05-28,Susquehanna,Pennsylvania,42115,99,15 +2020-05-29,Susquehanna,Pennsylvania,42115,109,15 +2020-05-30,Susquehanna,Pennsylvania,42115,109,15 +2020-05-31,Susquehanna,Pennsylvania,42115,109,15 +2020-06-01,Susquehanna,Pennsylvania,42115,110,15 +2020-06-02,Susquehanna,Pennsylvania,42115,110,15 +2020-06-03,Susquehanna,Pennsylvania,42115,111,15 +2020-06-04,Susquehanna,Pennsylvania,42115,123,15 +2020-06-05,Susquehanna,Pennsylvania,42115,124,16 +2020-06-06,Susquehanna,Pennsylvania,42115,133,16 +2020-06-07,Susquehanna,Pennsylvania,42115,148,16 +2020-06-08,Susquehanna,Pennsylvania,42115,154,16 +2020-06-09,Susquehanna,Pennsylvania,42115,154,16 +2020-06-10,Susquehanna,Pennsylvania,42115,155,16 +2020-06-11,Susquehanna,Pennsylvania,42115,164,17 +2020-06-12,Susquehanna,Pennsylvania,42115,166,17 +2020-06-13,Susquehanna,Pennsylvania,42115,169,17 +2020-06-14,Susquehanna,Pennsylvania,42115,170,17 +2020-06-15,Susquehanna,Pennsylvania,42115,171,17 +2020-06-16,Susquehanna,Pennsylvania,42115,172,17 +2020-06-17,Susquehanna,Pennsylvania,42115,172,18 +2020-06-18,Susquehanna,Pennsylvania,42115,173,18 +2020-06-19,Susquehanna,Pennsylvania,42115,178,20 +2020-06-20,Susquehanna,Pennsylvania,42115,178,20 +2020-06-21,Susquehanna,Pennsylvania,42115,178,20 +2020-06-22,Susquehanna,Pennsylvania,42115,178,20 +2020-06-23,Susquehanna,Pennsylvania,42115,178,20 +2020-06-24,Susquehanna,Pennsylvania,42115,178,21 +2020-06-25,Susquehanna,Pennsylvania,42115,178,22 +2020-06-26,Susquehanna,Pennsylvania,42115,179,22 +2020-06-27,Susquehanna,Pennsylvania,42115,181,22 +2020-06-28,Susquehanna,Pennsylvania,42115,181,22 +2020-06-29,Susquehanna,Pennsylvania,42115,182,22 +2020-06-30,Susquehanna,Pennsylvania,42115,182,23 +2020-07-01,Susquehanna,Pennsylvania,42115,182,23 +2020-07-02,Susquehanna,Pennsylvania,42115,183,24 +2020-07-03,Susquehanna,Pennsylvania,42115,185,24 +2020-07-04,Susquehanna,Pennsylvania,42115,185,24 +2020-07-05,Susquehanna,Pennsylvania,42115,185,24 +2020-07-06,Susquehanna,Pennsylvania,42115,186,24 +2020-07-07,Susquehanna,Pennsylvania,42115,190,25 +2020-07-08,Susquehanna,Pennsylvania,42115,190,25 +2020-07-09,Susquehanna,Pennsylvania,42115,190,25 +2020-03-28,Tioga,Pennsylvania,42117,1,0 +2020-03-29,Tioga,Pennsylvania,42117,1,0 +2020-03-30,Tioga,Pennsylvania,42117,1,0 +2020-03-31,Tioga,Pennsylvania,42117,2,0 +2020-04-01,Tioga,Pennsylvania,42117,2,0 +2020-04-02,Tioga,Pennsylvania,42117,2,0 +2020-04-03,Tioga,Pennsylvania,42117,3,0 +2020-04-04,Tioga,Pennsylvania,42117,3,0 +2020-04-05,Tioga,Pennsylvania,42117,3,0 +2020-04-06,Tioga,Pennsylvania,42117,8,0 +2020-04-07,Tioga,Pennsylvania,42117,10,0 +2020-04-08,Tioga,Pennsylvania,42117,10,0 +2020-04-09,Tioga,Pennsylvania,42117,10,0 +2020-04-10,Tioga,Pennsylvania,42117,11,0 +2020-04-11,Tioga,Pennsylvania,42117,12,1 +2020-04-12,Tioga,Pennsylvania,42117,13,1 +2020-04-13,Tioga,Pennsylvania,42117,14,1 +2020-04-14,Tioga,Pennsylvania,42117,13,1 +2020-04-15,Tioga,Pennsylvania,42117,13,1 +2020-04-16,Tioga,Pennsylvania,42117,13,1 +2020-04-17,Tioga,Pennsylvania,42117,14,1 +2020-04-18,Tioga,Pennsylvania,42117,14,1 +2020-04-19,Tioga,Pennsylvania,42117,14,1 +2020-04-20,Tioga,Pennsylvania,42117,14,1 +2020-04-21,Tioga,Pennsylvania,42117,15,2 +2020-04-22,Tioga,Pennsylvania,42117,15,2 +2020-04-23,Tioga,Pennsylvania,42117,14,2 +2020-04-24,Tioga,Pennsylvania,42117,14,2 +2020-04-25,Tioga,Pennsylvania,42117,14,2 +2020-04-26,Tioga,Pennsylvania,42117,14,2 +2020-04-27,Tioga,Pennsylvania,42117,14,2 +2020-04-28,Tioga,Pennsylvania,42117,14,2 +2020-04-29,Tioga,Pennsylvania,42117,14,2 +2020-04-30,Tioga,Pennsylvania,42117,16,2 +2020-05-01,Tioga,Pennsylvania,42117,16,2 +2020-05-02,Tioga,Pennsylvania,42117,16,2 +2020-05-03,Tioga,Pennsylvania,42117,16,2 +2020-05-04,Tioga,Pennsylvania,42117,16,2 +2020-05-05,Tioga,Pennsylvania,42117,16,2 +2020-05-06,Tioga,Pennsylvania,42117,16,2 +2020-05-07,Tioga,Pennsylvania,42117,16,2 +2020-05-08,Tioga,Pennsylvania,42117,16,2 +2020-05-09,Tioga,Pennsylvania,42117,16,2 +2020-05-10,Tioga,Pennsylvania,42117,16,2 +2020-05-11,Tioga,Pennsylvania,42117,16,2 +2020-05-12,Tioga,Pennsylvania,42117,16,2 +2020-05-13,Tioga,Pennsylvania,42117,16,2 +2020-05-14,Tioga,Pennsylvania,42117,16,2 +2020-05-15,Tioga,Pennsylvania,42117,16,2 +2020-05-16,Tioga,Pennsylvania,42117,16,2 +2020-05-17,Tioga,Pennsylvania,42117,16,2 +2020-05-18,Tioga,Pennsylvania,42117,16,2 +2020-05-19,Tioga,Pennsylvania,42117,16,2 +2020-05-20,Tioga,Pennsylvania,42117,16,2 +2020-05-21,Tioga,Pennsylvania,42117,16,2 +2020-05-22,Tioga,Pennsylvania,42117,16,2 +2020-05-23,Tioga,Pennsylvania,42117,16,2 +2020-05-24,Tioga,Pennsylvania,42117,16,2 +2020-05-25,Tioga,Pennsylvania,42117,16,2 +2020-05-26,Tioga,Pennsylvania,42117,16,2 +2020-05-27,Tioga,Pennsylvania,42117,16,2 +2020-05-28,Tioga,Pennsylvania,42117,16,2 +2020-05-29,Tioga,Pennsylvania,42117,17,2 +2020-05-30,Tioga,Pennsylvania,42117,17,2 +2020-05-31,Tioga,Pennsylvania,42117,17,2 +2020-06-01,Tioga,Pennsylvania,42117,17,2 +2020-06-02,Tioga,Pennsylvania,42117,19,2 +2020-06-03,Tioga,Pennsylvania,42117,19,2 +2020-06-04,Tioga,Pennsylvania,42117,19,2 +2020-06-05,Tioga,Pennsylvania,42117,19,2 +2020-06-06,Tioga,Pennsylvania,42117,19,2 +2020-06-07,Tioga,Pennsylvania,42117,19,2 +2020-06-08,Tioga,Pennsylvania,42117,19,2 +2020-06-09,Tioga,Pennsylvania,42117,19,2 +2020-06-10,Tioga,Pennsylvania,42117,19,2 +2020-06-11,Tioga,Pennsylvania,42117,20,2 +2020-06-12,Tioga,Pennsylvania,42117,20,2 +2020-06-13,Tioga,Pennsylvania,42117,20,2 +2020-06-14,Tioga,Pennsylvania,42117,20,2 +2020-06-15,Tioga,Pennsylvania,42117,20,2 +2020-06-16,Tioga,Pennsylvania,42117,20,2 +2020-06-17,Tioga,Pennsylvania,42117,20,2 +2020-06-18,Tioga,Pennsylvania,42117,20,2 +2020-06-19,Tioga,Pennsylvania,42117,20,2 +2020-06-20,Tioga,Pennsylvania,42117,20,2 +2020-06-21,Tioga,Pennsylvania,42117,22,2 +2020-06-22,Tioga,Pennsylvania,42117,23,2 +2020-06-23,Tioga,Pennsylvania,42117,23,2 +2020-06-24,Tioga,Pennsylvania,42117,23,2 +2020-06-25,Tioga,Pennsylvania,42117,23,2 +2020-06-26,Tioga,Pennsylvania,42117,23,2 +2020-06-27,Tioga,Pennsylvania,42117,24,2 +2020-06-28,Tioga,Pennsylvania,42117,24,2 +2020-06-29,Tioga,Pennsylvania,42117,25,2 +2020-06-30,Tioga,Pennsylvania,42117,25,2 +2020-07-01,Tioga,Pennsylvania,42117,25,2 +2020-07-02,Tioga,Pennsylvania,42117,25,2 +2020-07-03,Tioga,Pennsylvania,42117,26,2 +2020-07-04,Tioga,Pennsylvania,42117,26,2 +2020-07-05,Tioga,Pennsylvania,42117,27,2 +2020-07-06,Tioga,Pennsylvania,42117,27,2 +2020-07-07,Tioga,Pennsylvania,42117,27,2 +2020-07-08,Tioga,Pennsylvania,42117,27,2 +2020-07-09,Tioga,Pennsylvania,42117,27,2 +2020-03-30,Union,Pennsylvania,42119,4,0 +2020-03-31,Union,Pennsylvania,42119,4,0 +2020-04-01,Union,Pennsylvania,42119,4,0 +2020-04-02,Union,Pennsylvania,42119,4,0 +2020-04-03,Union,Pennsylvania,42119,4,0 +2020-04-04,Union,Pennsylvania,42119,5,0 +2020-04-05,Union,Pennsylvania,42119,6,0 +2020-04-06,Union,Pennsylvania,42119,6,0 +2020-04-07,Union,Pennsylvania,42119,7,0 +2020-04-08,Union,Pennsylvania,42119,8,0 +2020-04-09,Union,Pennsylvania,42119,11,0 +2020-04-10,Union,Pennsylvania,42119,12,0 +2020-04-11,Union,Pennsylvania,42119,14,0 +2020-04-12,Union,Pennsylvania,42119,19,0 +2020-04-13,Union,Pennsylvania,42119,21,0 +2020-04-14,Union,Pennsylvania,42119,23,0 +2020-04-15,Union,Pennsylvania,42119,23,0 +2020-04-16,Union,Pennsylvania,42119,25,0 +2020-04-17,Union,Pennsylvania,42119,26,0 +2020-04-18,Union,Pennsylvania,42119,27,0 +2020-04-19,Union,Pennsylvania,42119,27,0 +2020-04-20,Union,Pennsylvania,42119,28,0 +2020-04-21,Union,Pennsylvania,42119,29,0 +2020-04-22,Union,Pennsylvania,42119,30,0 +2020-04-23,Union,Pennsylvania,42119,30,0 +2020-04-24,Union,Pennsylvania,42119,31,0 +2020-04-25,Union,Pennsylvania,42119,31,0 +2020-04-26,Union,Pennsylvania,42119,31,0 +2020-04-27,Union,Pennsylvania,42119,31,0 +2020-04-28,Union,Pennsylvania,42119,33,0 +2020-04-29,Union,Pennsylvania,42119,33,0 +2020-04-30,Union,Pennsylvania,42119,36,0 +2020-05-01,Union,Pennsylvania,42119,37,0 +2020-05-02,Union,Pennsylvania,42119,38,0 +2020-05-03,Union,Pennsylvania,42119,38,0 +2020-05-04,Union,Pennsylvania,42119,38,0 +2020-05-05,Union,Pennsylvania,42119,38,1 +2020-05-06,Union,Pennsylvania,42119,39,1 +2020-05-07,Union,Pennsylvania,42119,40,1 +2020-05-08,Union,Pennsylvania,42119,40,1 +2020-05-09,Union,Pennsylvania,42119,40,1 +2020-05-10,Union,Pennsylvania,42119,40,1 +2020-05-11,Union,Pennsylvania,42119,41,1 +2020-05-12,Union,Pennsylvania,42119,41,1 +2020-05-13,Union,Pennsylvania,42119,42,1 +2020-05-14,Union,Pennsylvania,42119,43,1 +2020-05-15,Union,Pennsylvania,42119,44,1 +2020-05-16,Union,Pennsylvania,42119,46,1 +2020-05-17,Union,Pennsylvania,42119,47,1 +2020-05-18,Union,Pennsylvania,42119,51,1 +2020-05-19,Union,Pennsylvania,42119,50,1 +2020-05-20,Union,Pennsylvania,42119,56,1 +2020-05-21,Union,Pennsylvania,42119,61,1 +2020-05-22,Union,Pennsylvania,42119,61,1 +2020-05-23,Union,Pennsylvania,42119,52,1 +2020-05-24,Union,Pennsylvania,42119,53,1 +2020-05-25,Union,Pennsylvania,42119,54,1 +2020-05-26,Union,Pennsylvania,42119,56,1 +2020-05-27,Union,Pennsylvania,42119,56,1 +2020-05-28,Union,Pennsylvania,42119,56,1 +2020-05-29,Union,Pennsylvania,42119,57,1 +2020-05-30,Union,Pennsylvania,42119,59,1 +2020-05-31,Union,Pennsylvania,42119,59,1 +2020-06-01,Union,Pennsylvania,42119,62,1 +2020-06-02,Union,Pennsylvania,42119,60,1 +2020-06-03,Union,Pennsylvania,42119,63,1 +2020-06-04,Union,Pennsylvania,42119,65,1 +2020-06-05,Union,Pennsylvania,42119,70,1 +2020-06-06,Union,Pennsylvania,42119,71,2 +2020-06-07,Union,Pennsylvania,42119,73,2 +2020-06-08,Union,Pennsylvania,42119,73,2 +2020-06-09,Union,Pennsylvania,42119,74,2 +2020-06-10,Union,Pennsylvania,42119,75,2 +2020-06-11,Union,Pennsylvania,42119,79,2 +2020-06-12,Union,Pennsylvania,42119,81,2 +2020-06-13,Union,Pennsylvania,42119,81,2 +2020-06-14,Union,Pennsylvania,42119,83,2 +2020-06-15,Union,Pennsylvania,42119,88,2 +2020-06-16,Union,Pennsylvania,42119,84,2 +2020-06-17,Union,Pennsylvania,42119,83,2 +2020-06-18,Union,Pennsylvania,42119,83,2 +2020-06-19,Union,Pennsylvania,42119,84,2 +2020-06-20,Union,Pennsylvania,42119,85,2 +2020-06-21,Union,Pennsylvania,42119,88,2 +2020-06-22,Union,Pennsylvania,42119,89,2 +2020-06-23,Union,Pennsylvania,42119,89,2 +2020-06-24,Union,Pennsylvania,42119,89,2 +2020-06-25,Union,Pennsylvania,42119,89,2 +2020-06-26,Union,Pennsylvania,42119,90,2 +2020-06-27,Union,Pennsylvania,42119,90,2 +2020-06-28,Union,Pennsylvania,42119,90,2 +2020-06-29,Union,Pennsylvania,42119,92,2 +2020-06-30,Union,Pennsylvania,42119,92,2 +2020-07-01,Union,Pennsylvania,42119,91,2 +2020-07-02,Union,Pennsylvania,42119,93,2 +2020-07-03,Union,Pennsylvania,42119,94,2 +2020-07-04,Union,Pennsylvania,42119,95,2 +2020-07-05,Union,Pennsylvania,42119,95,2 +2020-07-06,Union,Pennsylvania,42119,95,2 +2020-07-07,Union,Pennsylvania,42119,96,2 +2020-07-08,Union,Pennsylvania,42119,98,2 +2020-07-09,Union,Pennsylvania,42119,97,2 +2020-03-29,Venango,Pennsylvania,42121,1,0 +2020-03-30,Venango,Pennsylvania,42121,1,0 +2020-03-31,Venango,Pennsylvania,42121,3,0 +2020-04-01,Venango,Pennsylvania,42121,3,0 +2020-04-02,Venango,Pennsylvania,42121,3,0 +2020-04-03,Venango,Pennsylvania,42121,3,0 +2020-04-04,Venango,Pennsylvania,42121,3,0 +2020-04-05,Venango,Pennsylvania,42121,3,0 +2020-04-06,Venango,Pennsylvania,42121,5,0 +2020-04-07,Venango,Pennsylvania,42121,5,0 +2020-04-08,Venango,Pennsylvania,42121,5,0 +2020-04-09,Venango,Pennsylvania,42121,5,0 +2020-04-10,Venango,Pennsylvania,42121,5,0 +2020-04-11,Venango,Pennsylvania,42121,6,0 +2020-04-12,Venango,Pennsylvania,42121,6,0 +2020-04-13,Venango,Pennsylvania,42121,6,0 +2020-04-14,Venango,Pennsylvania,42121,6,0 +2020-04-15,Venango,Pennsylvania,42121,6,0 +2020-04-16,Venango,Pennsylvania,42121,6,0 +2020-04-17,Venango,Pennsylvania,42121,6,0 +2020-04-18,Venango,Pennsylvania,42121,6,0 +2020-04-19,Venango,Pennsylvania,42121,6,0 +2020-04-20,Venango,Pennsylvania,42121,6,0 +2020-04-21,Venango,Pennsylvania,42121,6,0 +2020-04-22,Venango,Pennsylvania,42121,6,0 +2020-04-23,Venango,Pennsylvania,42121,7,0 +2020-04-24,Venango,Pennsylvania,42121,7,0 +2020-04-25,Venango,Pennsylvania,42121,7,0 +2020-04-26,Venango,Pennsylvania,42121,7,0 +2020-04-27,Venango,Pennsylvania,42121,7,0 +2020-04-28,Venango,Pennsylvania,42121,7,0 +2020-04-29,Venango,Pennsylvania,42121,7,0 +2020-04-30,Venango,Pennsylvania,42121,7,0 +2020-05-01,Venango,Pennsylvania,42121,7,0 +2020-05-02,Venango,Pennsylvania,42121,7,0 +2020-05-03,Venango,Pennsylvania,42121,7,0 +2020-05-04,Venango,Pennsylvania,42121,7,0 +2020-05-05,Venango,Pennsylvania,42121,7,0 +2020-05-06,Venango,Pennsylvania,42121,7,0 +2020-05-07,Venango,Pennsylvania,42121,7,0 +2020-05-08,Venango,Pennsylvania,42121,7,0 +2020-05-09,Venango,Pennsylvania,42121,7,0 +2020-05-10,Venango,Pennsylvania,42121,7,0 +2020-05-11,Venango,Pennsylvania,42121,7,0 +2020-05-12,Venango,Pennsylvania,42121,7,0 +2020-05-13,Venango,Pennsylvania,42121,7,0 +2020-05-14,Venango,Pennsylvania,42121,7,0 +2020-05-15,Venango,Pennsylvania,42121,7,0 +2020-05-16,Venango,Pennsylvania,42121,7,0 +2020-05-17,Venango,Pennsylvania,42121,8,0 +2020-05-18,Venango,Pennsylvania,42121,8,0 +2020-05-19,Venango,Pennsylvania,42121,8,0 +2020-05-20,Venango,Pennsylvania,42121,8,0 +2020-05-21,Venango,Pennsylvania,42121,8,0 +2020-05-22,Venango,Pennsylvania,42121,8,0 +2020-05-23,Venango,Pennsylvania,42121,8,0 +2020-05-24,Venango,Pennsylvania,42121,8,0 +2020-05-25,Venango,Pennsylvania,42121,8,0 +2020-05-26,Venango,Pennsylvania,42121,8,0 +2020-05-27,Venango,Pennsylvania,42121,8,0 +2020-05-28,Venango,Pennsylvania,42121,8,0 +2020-05-29,Venango,Pennsylvania,42121,8,0 +2020-05-30,Venango,Pennsylvania,42121,9,0 +2020-05-31,Venango,Pennsylvania,42121,9,0 +2020-06-01,Venango,Pennsylvania,42121,9,0 +2020-06-02,Venango,Pennsylvania,42121,9,0 +2020-06-03,Venango,Pennsylvania,42121,9,0 +2020-06-04,Venango,Pennsylvania,42121,10,0 +2020-06-05,Venango,Pennsylvania,42121,15,0 +2020-06-06,Venango,Pennsylvania,42121,15,0 +2020-06-07,Venango,Pennsylvania,42121,15,0 +2020-06-08,Venango,Pennsylvania,42121,15,0 +2020-06-09,Venango,Pennsylvania,42121,16,0 +2020-06-10,Venango,Pennsylvania,42121,16,0 +2020-06-11,Venango,Pennsylvania,42121,16,0 +2020-06-12,Venango,Pennsylvania,42121,17,0 +2020-06-13,Venango,Pennsylvania,42121,17,0 +2020-06-14,Venango,Pennsylvania,42121,17,0 +2020-06-15,Venango,Pennsylvania,42121,17,0 +2020-06-16,Venango,Pennsylvania,42121,17,0 +2020-06-17,Venango,Pennsylvania,42121,17,0 +2020-06-18,Venango,Pennsylvania,42121,17,0 +2020-06-19,Venango,Pennsylvania,42121,17,0 +2020-06-20,Venango,Pennsylvania,42121,17,0 +2020-06-21,Venango,Pennsylvania,42121,17,0 +2020-06-22,Venango,Pennsylvania,42121,17,0 +2020-06-23,Venango,Pennsylvania,42121,17,0 +2020-06-24,Venango,Pennsylvania,42121,17,0 +2020-06-25,Venango,Pennsylvania,42121,17,0 +2020-06-26,Venango,Pennsylvania,42121,17,0 +2020-06-27,Venango,Pennsylvania,42121,18,0 +2020-06-28,Venango,Pennsylvania,42121,18,0 +2020-06-29,Venango,Pennsylvania,42121,18,0 +2020-06-30,Venango,Pennsylvania,42121,18,0 +2020-07-01,Venango,Pennsylvania,42121,19,0 +2020-07-02,Venango,Pennsylvania,42121,23,0 +2020-07-03,Venango,Pennsylvania,42121,23,0 +2020-07-04,Venango,Pennsylvania,42121,23,0 +2020-07-05,Venango,Pennsylvania,42121,27,0 +2020-07-06,Venango,Pennsylvania,42121,27,0 +2020-07-07,Venango,Pennsylvania,42121,28,0 +2020-07-08,Venango,Pennsylvania,42121,34,0 +2020-07-09,Venango,Pennsylvania,42121,35,0 +2020-03-25,Warren,Pennsylvania,42123,1,0 +2020-03-26,Warren,Pennsylvania,42123,1,0 +2020-03-27,Warren,Pennsylvania,42123,1,0 +2020-03-28,Warren,Pennsylvania,42123,1,0 +2020-03-29,Warren,Pennsylvania,42123,1,0 +2020-03-30,Warren,Pennsylvania,42123,1,0 +2020-03-31,Warren,Pennsylvania,42123,1,0 +2020-04-01,Warren,Pennsylvania,42123,1,0 +2020-04-02,Warren,Pennsylvania,42123,1,0 +2020-04-03,Warren,Pennsylvania,42123,1,0 +2020-04-04,Warren,Pennsylvania,42123,1,0 +2020-04-05,Warren,Pennsylvania,42123,1,0 +2020-04-06,Warren,Pennsylvania,42123,1,0 +2020-04-07,Warren,Pennsylvania,42123,1,0 +2020-04-08,Warren,Pennsylvania,42123,1,0 +2020-04-09,Warren,Pennsylvania,42123,1,0 +2020-04-10,Warren,Pennsylvania,42123,1,0 +2020-04-11,Warren,Pennsylvania,42123,1,0 +2020-04-12,Warren,Pennsylvania,42123,1,0 +2020-04-13,Warren,Pennsylvania,42123,1,0 +2020-04-14,Warren,Pennsylvania,42123,1,0 +2020-04-15,Warren,Pennsylvania,42123,1,0 +2020-04-16,Warren,Pennsylvania,42123,1,0 +2020-04-17,Warren,Pennsylvania,42123,1,0 +2020-04-18,Warren,Pennsylvania,42123,1,0 +2020-04-19,Warren,Pennsylvania,42123,1,0 +2020-04-20,Warren,Pennsylvania,42123,1,0 +2020-04-21,Warren,Pennsylvania,42123,2,1 +2020-04-22,Warren,Pennsylvania,42123,2,1 +2020-04-23,Warren,Pennsylvania,42123,1,1 +2020-04-24,Warren,Pennsylvania,42123,1,1 +2020-04-25,Warren,Pennsylvania,42123,1,1 +2020-04-26,Warren,Pennsylvania,42123,1,1 +2020-04-27,Warren,Pennsylvania,42123,1,1 +2020-04-28,Warren,Pennsylvania,42123,1,1 +2020-04-29,Warren,Pennsylvania,42123,1,1 +2020-04-30,Warren,Pennsylvania,42123,1,1 +2020-05-01,Warren,Pennsylvania,42123,1,1 +2020-05-02,Warren,Pennsylvania,42123,1,1 +2020-05-03,Warren,Pennsylvania,42123,1,1 +2020-05-04,Warren,Pennsylvania,42123,1,1 +2020-05-05,Warren,Pennsylvania,42123,1,1 +2020-05-06,Warren,Pennsylvania,42123,1,1 +2020-05-07,Warren,Pennsylvania,42123,1,1 +2020-05-08,Warren,Pennsylvania,42123,1,1 +2020-05-09,Warren,Pennsylvania,42123,1,1 +2020-05-10,Warren,Pennsylvania,42123,1,1 +2020-05-11,Warren,Pennsylvania,42123,1,1 +2020-05-12,Warren,Pennsylvania,42123,1,1 +2020-05-13,Warren,Pennsylvania,42123,2,1 +2020-05-14,Warren,Pennsylvania,42123,2,1 +2020-05-15,Warren,Pennsylvania,42123,2,1 +2020-05-16,Warren,Pennsylvania,42123,2,1 +2020-05-17,Warren,Pennsylvania,42123,2,1 +2020-05-18,Warren,Pennsylvania,42123,2,1 +2020-05-19,Warren,Pennsylvania,42123,2,1 +2020-05-20,Warren,Pennsylvania,42123,2,0 +2020-05-21,Warren,Pennsylvania,42123,3,0 +2020-05-22,Warren,Pennsylvania,42123,3,0 +2020-05-23,Warren,Pennsylvania,42123,3,0 +2020-05-24,Warren,Pennsylvania,42123,3,0 +2020-05-25,Warren,Pennsylvania,42123,3,0 +2020-05-26,Warren,Pennsylvania,42123,3,0 +2020-05-27,Warren,Pennsylvania,42123,3,0 +2020-05-28,Warren,Pennsylvania,42123,3,0 +2020-05-29,Warren,Pennsylvania,42123,3,0 +2020-05-30,Warren,Pennsylvania,42123,3,0 +2020-05-31,Warren,Pennsylvania,42123,3,0 +2020-06-01,Warren,Pennsylvania,42123,3,0 +2020-06-02,Warren,Pennsylvania,42123,3,0 +2020-06-03,Warren,Pennsylvania,42123,4,0 +2020-06-04,Warren,Pennsylvania,42123,5,0 +2020-06-05,Warren,Pennsylvania,42123,5,0 +2020-06-06,Warren,Pennsylvania,42123,5,0 +2020-06-07,Warren,Pennsylvania,42123,5,0 +2020-06-08,Warren,Pennsylvania,42123,5,0 +2020-06-09,Warren,Pennsylvania,42123,5,0 +2020-06-10,Warren,Pennsylvania,42123,5,0 +2020-06-11,Warren,Pennsylvania,42123,5,0 +2020-06-12,Warren,Pennsylvania,42123,5,0 +2020-06-13,Warren,Pennsylvania,42123,5,0 +2020-06-14,Warren,Pennsylvania,42123,5,0 +2020-06-15,Warren,Pennsylvania,42123,5,0 +2020-06-16,Warren,Pennsylvania,42123,5,0 +2020-06-17,Warren,Pennsylvania,42123,5,0 +2020-06-18,Warren,Pennsylvania,42123,5,0 +2020-06-19,Warren,Pennsylvania,42123,5,0 +2020-06-20,Warren,Pennsylvania,42123,5,0 +2020-06-21,Warren,Pennsylvania,42123,5,0 +2020-06-22,Warren,Pennsylvania,42123,5,0 +2020-06-23,Warren,Pennsylvania,42123,5,0 +2020-06-24,Warren,Pennsylvania,42123,5,0 +2020-06-25,Warren,Pennsylvania,42123,5,0 +2020-06-26,Warren,Pennsylvania,42123,5,0 +2020-06-27,Warren,Pennsylvania,42123,5,0 +2020-06-28,Warren,Pennsylvania,42123,5,0 +2020-06-29,Warren,Pennsylvania,42123,5,0 +2020-06-30,Warren,Pennsylvania,42123,6,0 +2020-07-01,Warren,Pennsylvania,42123,7,0 +2020-07-02,Warren,Pennsylvania,42123,7,1 +2020-07-03,Warren,Pennsylvania,42123,7,1 +2020-07-04,Warren,Pennsylvania,42123,7,1 +2020-07-05,Warren,Pennsylvania,42123,7,1 +2020-07-06,Warren,Pennsylvania,42123,7,1 +2020-07-07,Warren,Pennsylvania,42123,7,1 +2020-07-08,Warren,Pennsylvania,42123,7,1 +2020-07-09,Warren,Pennsylvania,42123,7,1 +2020-03-13,Washington,Pennsylvania,42125,1,0 +2020-03-14,Washington,Pennsylvania,42125,1,0 +2020-03-15,Washington,Pennsylvania,42125,1,0 +2020-03-16,Washington,Pennsylvania,42125,1,0 +2020-03-17,Washington,Pennsylvania,42125,2,0 +2020-03-18,Washington,Pennsylvania,42125,2,0 +2020-03-19,Washington,Pennsylvania,42125,3,0 +2020-03-20,Washington,Pennsylvania,42125,3,0 +2020-03-21,Washington,Pennsylvania,42125,5,0 +2020-03-22,Washington,Pennsylvania,42125,7,0 +2020-03-23,Washington,Pennsylvania,42125,7,0 +2020-03-24,Washington,Pennsylvania,42125,9,0 +2020-03-25,Washington,Pennsylvania,42125,10,0 +2020-03-26,Washington,Pennsylvania,42125,12,0 +2020-03-27,Washington,Pennsylvania,42125,14,0 +2020-03-28,Washington,Pennsylvania,42125,23,0 +2020-03-29,Washington,Pennsylvania,42125,24,0 +2020-03-30,Washington,Pennsylvania,42125,26,0 +2020-03-31,Washington,Pennsylvania,42125,33,0 +2020-04-01,Washington,Pennsylvania,42125,35,0 +2020-04-02,Washington,Pennsylvania,42125,38,0 +2020-04-03,Washington,Pennsylvania,42125,40,0 +2020-04-04,Washington,Pennsylvania,42125,46,0 +2020-04-05,Washington,Pennsylvania,42125,50,0 +2020-04-06,Washington,Pennsylvania,42125,53,0 +2020-04-07,Washington,Pennsylvania,42125,57,0 +2020-04-08,Washington,Pennsylvania,42125,59,0 +2020-04-09,Washington,Pennsylvania,42125,63,0 +2020-04-10,Washington,Pennsylvania,42125,66,0 +2020-04-11,Washington,Pennsylvania,42125,66,0 +2020-04-12,Washington,Pennsylvania,42125,68,0 +2020-04-13,Washington,Pennsylvania,42125,69,0 +2020-04-14,Washington,Pennsylvania,42125,70,1 +2020-04-15,Washington,Pennsylvania,42125,71,1 +2020-04-16,Washington,Pennsylvania,42125,73,1 +2020-04-17,Washington,Pennsylvania,42125,75,1 +2020-04-18,Washington,Pennsylvania,42125,79,2 +2020-04-19,Washington,Pennsylvania,42125,82,2 +2020-04-20,Washington,Pennsylvania,42125,83,2 +2020-04-21,Washington,Pennsylvania,42125,86,2 +2020-04-22,Washington,Pennsylvania,42125,87,2 +2020-04-23,Washington,Pennsylvania,42125,92,2 +2020-04-24,Washington,Pennsylvania,42125,96,2 +2020-04-25,Washington,Pennsylvania,42125,99,2 +2020-04-26,Washington,Pennsylvania,42125,101,2 +2020-04-27,Washington,Pennsylvania,42125,107,2 +2020-04-28,Washington,Pennsylvania,42125,109,2 +2020-04-29,Washington,Pennsylvania,42125,113,2 +2020-04-30,Washington,Pennsylvania,42125,115,2 +2020-05-01,Washington,Pennsylvania,42125,116,2 +2020-05-02,Washington,Pennsylvania,42125,118,2 +2020-05-03,Washington,Pennsylvania,42125,119,2 +2020-05-04,Washington,Pennsylvania,42125,120,2 +2020-05-05,Washington,Pennsylvania,42125,120,2 +2020-05-06,Washington,Pennsylvania,42125,121,2 +2020-05-07,Washington,Pennsylvania,42125,120,4 +2020-05-08,Washington,Pennsylvania,42125,121,4 +2020-05-09,Washington,Pennsylvania,42125,124,4 +2020-05-10,Washington,Pennsylvania,42125,124,4 +2020-05-11,Washington,Pennsylvania,42125,124,4 +2020-05-12,Washington,Pennsylvania,42125,126,4 +2020-05-13,Washington,Pennsylvania,42125,127,4 +2020-05-14,Washington,Pennsylvania,42125,129,4 +2020-05-15,Washington,Pennsylvania,42125,129,4 +2020-05-16,Washington,Pennsylvania,42125,130,4 +2020-05-17,Washington,Pennsylvania,42125,131,4 +2020-05-18,Washington,Pennsylvania,42125,133,4 +2020-05-19,Washington,Pennsylvania,42125,130,5 +2020-05-20,Washington,Pennsylvania,42125,130,5 +2020-05-21,Washington,Pennsylvania,42125,130,5 +2020-05-22,Washington,Pennsylvania,42125,134,5 +2020-05-23,Washington,Pennsylvania,42125,135,5 +2020-05-24,Washington,Pennsylvania,42125,138,5 +2020-05-25,Washington,Pennsylvania,42125,138,5 +2020-05-26,Washington,Pennsylvania,42125,138,5 +2020-05-27,Washington,Pennsylvania,42125,138,5 +2020-05-28,Washington,Pennsylvania,42125,139,5 +2020-05-29,Washington,Pennsylvania,42125,139,5 +2020-05-30,Washington,Pennsylvania,42125,139,5 +2020-05-31,Washington,Pennsylvania,42125,139,5 +2020-06-01,Washington,Pennsylvania,42125,140,5 +2020-06-02,Washington,Pennsylvania,42125,140,6 +2020-06-03,Washington,Pennsylvania,42125,140,6 +2020-06-04,Washington,Pennsylvania,42125,140,6 +2020-06-05,Washington,Pennsylvania,42125,141,6 +2020-06-06,Washington,Pennsylvania,42125,146,6 +2020-06-07,Washington,Pennsylvania,42125,147,6 +2020-06-08,Washington,Pennsylvania,42125,149,6 +2020-06-09,Washington,Pennsylvania,42125,150,6 +2020-06-10,Washington,Pennsylvania,42125,151,6 +2020-06-11,Washington,Pennsylvania,42125,151,6 +2020-06-12,Washington,Pennsylvania,42125,153,6 +2020-06-13,Washington,Pennsylvania,42125,155,6 +2020-06-14,Washington,Pennsylvania,42125,155,6 +2020-06-15,Washington,Pennsylvania,42125,156,6 +2020-06-16,Washington,Pennsylvania,42125,156,6 +2020-06-17,Washington,Pennsylvania,42125,158,6 +2020-06-18,Washington,Pennsylvania,42125,158,6 +2020-06-19,Washington,Pennsylvania,42125,162,6 +2020-06-20,Washington,Pennsylvania,42125,165,6 +2020-06-21,Washington,Pennsylvania,42125,168,6 +2020-06-22,Washington,Pennsylvania,42125,168,6 +2020-06-23,Washington,Pennsylvania,42125,171,6 +2020-06-24,Washington,Pennsylvania,42125,176,6 +2020-06-25,Washington,Pennsylvania,42125,184,6 +2020-06-26,Washington,Pennsylvania,42125,187,6 +2020-06-27,Washington,Pennsylvania,42125,197,6 +2020-06-28,Washington,Pennsylvania,42125,211,6 +2020-06-29,Washington,Pennsylvania,42125,216,6 +2020-06-30,Washington,Pennsylvania,42125,219,6 +2020-07-01,Washington,Pennsylvania,42125,230,6 +2020-07-02,Washington,Pennsylvania,42125,244,6 +2020-07-03,Washington,Pennsylvania,42125,259,6 +2020-07-04,Washington,Pennsylvania,42125,279,6 +2020-07-05,Washington,Pennsylvania,42125,295,6 +2020-07-06,Washington,Pennsylvania,42125,318,6 +2020-07-07,Washington,Pennsylvania,42125,339,6 +2020-07-08,Washington,Pennsylvania,42125,356,6 +2020-07-09,Washington,Pennsylvania,42125,366,6 +2020-03-06,Wayne,Pennsylvania,42127,1,0 +2020-03-07,Wayne,Pennsylvania,42127,1,0 +2020-03-08,Wayne,Pennsylvania,42127,1,0 +2020-03-09,Wayne,Pennsylvania,42127,1,0 +2020-03-10,Wayne,Pennsylvania,42127,1,0 +2020-03-11,Wayne,Pennsylvania,42127,1,0 +2020-03-12,Wayne,Pennsylvania,42127,1,0 +2020-03-13,Wayne,Pennsylvania,42127,1,0 +2020-03-14,Wayne,Pennsylvania,42127,1,0 +2020-03-15,Wayne,Pennsylvania,42127,1,0 +2020-03-16,Wayne,Pennsylvania,42127,1,0 +2020-03-17,Wayne,Pennsylvania,42127,1,0 +2020-03-18,Wayne,Pennsylvania,42127,1,0 +2020-03-19,Wayne,Pennsylvania,42127,1,0 +2020-03-20,Wayne,Pennsylvania,42127,1,0 +2020-03-21,Wayne,Pennsylvania,42127,1,0 +2020-03-22,Wayne,Pennsylvania,42127,2,0 +2020-03-23,Wayne,Pennsylvania,42127,3,0 +2020-03-24,Wayne,Pennsylvania,42127,4,0 +2020-03-25,Wayne,Pennsylvania,42127,4,0 +2020-03-26,Wayne,Pennsylvania,42127,6,0 +2020-03-27,Wayne,Pennsylvania,42127,6,0 +2020-03-28,Wayne,Pennsylvania,42127,6,0 +2020-03-29,Wayne,Pennsylvania,42127,7,0 +2020-03-30,Wayne,Pennsylvania,42127,10,0 +2020-03-31,Wayne,Pennsylvania,42127,10,0 +2020-04-01,Wayne,Pennsylvania,42127,14,0 +2020-04-02,Wayne,Pennsylvania,42127,17,0 +2020-04-03,Wayne,Pennsylvania,42127,23,0 +2020-04-04,Wayne,Pennsylvania,42127,28,0 +2020-04-05,Wayne,Pennsylvania,42127,33,0 +2020-04-06,Wayne,Pennsylvania,42127,35,0 +2020-04-07,Wayne,Pennsylvania,42127,40,0 +2020-04-08,Wayne,Pennsylvania,42127,47,0 +2020-04-09,Wayne,Pennsylvania,42127,49,0 +2020-04-10,Wayne,Pennsylvania,42127,53,0 +2020-04-11,Wayne,Pennsylvania,42127,57,1 +2020-04-12,Wayne,Pennsylvania,42127,63,1 +2020-04-13,Wayne,Pennsylvania,42127,67,1 +2020-04-14,Wayne,Pennsylvania,42127,70,1 +2020-04-15,Wayne,Pennsylvania,42127,75,2 +2020-04-16,Wayne,Pennsylvania,42127,77,2 +2020-04-17,Wayne,Pennsylvania,42127,81,2 +2020-04-18,Wayne,Pennsylvania,42127,84,2 +2020-04-19,Wayne,Pennsylvania,42127,84,3 +2020-04-20,Wayne,Pennsylvania,42127,85,3 +2020-04-21,Wayne,Pennsylvania,42127,86,3 +2020-04-22,Wayne,Pennsylvania,42127,86,3 +2020-04-23,Wayne,Pennsylvania,42127,87,3 +2020-04-24,Wayne,Pennsylvania,42127,88,3 +2020-04-25,Wayne,Pennsylvania,42127,92,3 +2020-04-26,Wayne,Pennsylvania,42127,92,3 +2020-04-27,Wayne,Pennsylvania,42127,93,3 +2020-04-28,Wayne,Pennsylvania,42127,93,3 +2020-04-29,Wayne,Pennsylvania,42127,95,5 +2020-04-30,Wayne,Pennsylvania,42127,100,5 +2020-05-01,Wayne,Pennsylvania,42127,102,5 +2020-05-02,Wayne,Pennsylvania,42127,104,5 +2020-05-03,Wayne,Pennsylvania,42127,109,5 +2020-05-04,Wayne,Pennsylvania,42127,109,5 +2020-05-05,Wayne,Pennsylvania,42127,109,5 +2020-05-06,Wayne,Pennsylvania,42127,110,5 +2020-05-07,Wayne,Pennsylvania,42127,113,5 +2020-05-08,Wayne,Pennsylvania,42127,113,5 +2020-05-09,Wayne,Pennsylvania,42127,116,5 +2020-05-10,Wayne,Pennsylvania,42127,117,5 +2020-05-11,Wayne,Pennsylvania,42127,117,5 +2020-05-12,Wayne,Pennsylvania,42127,117,5 +2020-05-13,Wayne,Pennsylvania,42127,107,5 +2020-05-14,Wayne,Pennsylvania,42127,107,5 +2020-05-15,Wayne,Pennsylvania,42127,107,7 +2020-05-16,Wayne,Pennsylvania,42127,108,7 +2020-05-17,Wayne,Pennsylvania,42127,108,7 +2020-05-18,Wayne,Pennsylvania,42127,108,7 +2020-05-19,Wayne,Pennsylvania,42127,110,7 +2020-05-20,Wayne,Pennsylvania,42127,110,7 +2020-05-21,Wayne,Pennsylvania,42127,112,7 +2020-05-22,Wayne,Pennsylvania,42127,115,6 +2020-05-23,Wayne,Pennsylvania,42127,117,7 +2020-05-24,Wayne,Pennsylvania,42127,117,7 +2020-05-25,Wayne,Pennsylvania,42127,118,7 +2020-05-26,Wayne,Pennsylvania,42127,118,7 +2020-05-27,Wayne,Pennsylvania,42127,118,7 +2020-05-28,Wayne,Pennsylvania,42127,118,7 +2020-05-29,Wayne,Pennsylvania,42127,119,7 +2020-05-30,Wayne,Pennsylvania,42127,119,8 +2020-05-31,Wayne,Pennsylvania,42127,119,8 +2020-06-01,Wayne,Pennsylvania,42127,120,8 +2020-06-02,Wayne,Pennsylvania,42127,120,8 +2020-06-03,Wayne,Pennsylvania,42127,120,8 +2020-06-04,Wayne,Pennsylvania,42127,121,8 +2020-06-05,Wayne,Pennsylvania,42127,123,9 +2020-06-06,Wayne,Pennsylvania,42127,123,9 +2020-06-07,Wayne,Pennsylvania,42127,126,9 +2020-06-08,Wayne,Pennsylvania,42127,124,9 +2020-06-09,Wayne,Pennsylvania,42127,124,9 +2020-06-10,Wayne,Pennsylvania,42127,123,9 +2020-06-11,Wayne,Pennsylvania,42127,125,9 +2020-06-12,Wayne,Pennsylvania,42127,125,9 +2020-06-13,Wayne,Pennsylvania,42127,126,9 +2020-06-14,Wayne,Pennsylvania,42127,126,9 +2020-06-15,Wayne,Pennsylvania,42127,126,9 +2020-06-16,Wayne,Pennsylvania,42127,126,9 +2020-06-17,Wayne,Pennsylvania,42127,126,9 +2020-06-18,Wayne,Pennsylvania,42127,128,9 +2020-06-19,Wayne,Pennsylvania,42127,129,9 +2020-06-20,Wayne,Pennsylvania,42127,130,9 +2020-06-21,Wayne,Pennsylvania,42127,130,9 +2020-06-22,Wayne,Pennsylvania,42127,130,9 +2020-06-23,Wayne,Pennsylvania,42127,131,9 +2020-06-24,Wayne,Pennsylvania,42127,131,9 +2020-06-25,Wayne,Pennsylvania,42127,133,9 +2020-06-26,Wayne,Pennsylvania,42127,138,9 +2020-06-27,Wayne,Pennsylvania,42127,138,9 +2020-06-28,Wayne,Pennsylvania,42127,139,9 +2020-06-29,Wayne,Pennsylvania,42127,139,9 +2020-06-30,Wayne,Pennsylvania,42127,140,9 +2020-07-01,Wayne,Pennsylvania,42127,140,9 +2020-07-02,Wayne,Pennsylvania,42127,140,9 +2020-07-03,Wayne,Pennsylvania,42127,142,9 +2020-07-04,Wayne,Pennsylvania,42127,141,9 +2020-07-05,Wayne,Pennsylvania,42127,141,9 +2020-07-06,Wayne,Pennsylvania,42127,141,9 +2020-07-07,Wayne,Pennsylvania,42127,141,9 +2020-07-08,Wayne,Pennsylvania,42127,141,8 +2020-07-09,Wayne,Pennsylvania,42127,141,8 +2020-03-19,Westmoreland,Pennsylvania,42129,2,0 +2020-03-20,Westmoreland,Pennsylvania,42129,4,0 +2020-03-21,Westmoreland,Pennsylvania,42129,4,0 +2020-03-22,Westmoreland,Pennsylvania,42129,5,0 +2020-03-23,Westmoreland,Pennsylvania,42129,6,0 +2020-03-24,Westmoreland,Pennsylvania,42129,11,0 +2020-03-25,Westmoreland,Pennsylvania,42129,16,0 +2020-03-26,Westmoreland,Pennsylvania,42129,24,0 +2020-03-27,Westmoreland,Pennsylvania,42129,30,0 +2020-03-28,Westmoreland,Pennsylvania,42129,41,0 +2020-03-29,Westmoreland,Pennsylvania,42129,47,0 +2020-03-30,Westmoreland,Pennsylvania,42129,55,0 +2020-03-31,Westmoreland,Pennsylvania,42129,61,0 +2020-04-01,Westmoreland,Pennsylvania,42129,72,0 +2020-04-02,Westmoreland,Pennsylvania,42129,84,0 +2020-04-03,Westmoreland,Pennsylvania,42129,110,0 +2020-04-04,Westmoreland,Pennsylvania,42129,135,0 +2020-04-05,Westmoreland,Pennsylvania,42129,147,0 +2020-04-06,Westmoreland,Pennsylvania,42129,157,0 +2020-04-07,Westmoreland,Pennsylvania,42129,177,0 +2020-04-08,Westmoreland,Pennsylvania,42129,183,1 +2020-04-09,Westmoreland,Pennsylvania,42129,190,1 +2020-04-10,Westmoreland,Pennsylvania,42129,202,5 +2020-04-11,Westmoreland,Pennsylvania,42129,218,12 +2020-04-12,Westmoreland,Pennsylvania,42129,223,12 +2020-04-13,Westmoreland,Pennsylvania,42129,228,13 +2020-04-14,Westmoreland,Pennsylvania,42129,231,16 +2020-04-15,Westmoreland,Pennsylvania,42129,237,18 +2020-04-16,Westmoreland,Pennsylvania,42129,240,19 +2020-04-17,Westmoreland,Pennsylvania,42129,249,19 +2020-04-18,Westmoreland,Pennsylvania,42129,280,19 +2020-04-19,Westmoreland,Pennsylvania,42129,284,20 +2020-04-20,Westmoreland,Pennsylvania,42129,286,24 +2020-04-21,Westmoreland,Pennsylvania,42129,291,25 +2020-04-22,Westmoreland,Pennsylvania,42129,300,25 +2020-04-23,Westmoreland,Pennsylvania,42129,307,27 +2020-04-24,Westmoreland,Pennsylvania,42129,317,27 +2020-04-25,Westmoreland,Pennsylvania,42129,360,27 +2020-04-26,Westmoreland,Pennsylvania,42129,374,27 +2020-04-27,Westmoreland,Pennsylvania,42129,377,30 +2020-04-28,Westmoreland,Pennsylvania,42129,383,30 +2020-04-29,Westmoreland,Pennsylvania,42129,386,30 +2020-04-30,Westmoreland,Pennsylvania,42129,391,30 +2020-05-01,Westmoreland,Pennsylvania,42129,393,30 +2020-05-02,Westmoreland,Pennsylvania,42129,396,30 +2020-05-03,Westmoreland,Pennsylvania,42129,401,30 +2020-05-04,Westmoreland,Pennsylvania,42129,403,31 +2020-05-05,Westmoreland,Pennsylvania,42129,405,31 +2020-05-06,Westmoreland,Pennsylvania,42129,409,31 +2020-05-07,Westmoreland,Pennsylvania,42129,411,32 +2020-05-08,Westmoreland,Pennsylvania,42129,413,32 +2020-05-09,Westmoreland,Pennsylvania,42129,415,32 +2020-05-10,Westmoreland,Pennsylvania,42129,417,32 +2020-05-11,Westmoreland,Pennsylvania,42129,418,32 +2020-05-12,Westmoreland,Pennsylvania,42129,419,32 +2020-05-13,Westmoreland,Pennsylvania,42129,419,32 +2020-05-14,Westmoreland,Pennsylvania,42129,422,32 +2020-05-15,Westmoreland,Pennsylvania,42129,423,32 +2020-05-16,Westmoreland,Pennsylvania,42129,423,32 +2020-05-17,Westmoreland,Pennsylvania,42129,427,32 +2020-05-18,Westmoreland,Pennsylvania,42129,432,32 +2020-05-19,Westmoreland,Pennsylvania,42129,431,32 +2020-05-20,Westmoreland,Pennsylvania,42129,432,38 +2020-05-21,Westmoreland,Pennsylvania,42129,434,38 +2020-05-22,Westmoreland,Pennsylvania,42129,436,38 +2020-05-23,Westmoreland,Pennsylvania,42129,437,38 +2020-05-24,Westmoreland,Pennsylvania,42129,440,38 +2020-05-25,Westmoreland,Pennsylvania,42129,441,38 +2020-05-26,Westmoreland,Pennsylvania,42129,442,38 +2020-05-27,Westmoreland,Pennsylvania,42129,442,38 +2020-05-28,Westmoreland,Pennsylvania,42129,443,38 +2020-05-29,Westmoreland,Pennsylvania,42129,444,38 +2020-05-30,Westmoreland,Pennsylvania,42129,447,38 +2020-05-31,Westmoreland,Pennsylvania,42129,449,38 +2020-06-01,Westmoreland,Pennsylvania,42129,449,38 +2020-06-02,Westmoreland,Pennsylvania,42129,451,38 +2020-06-03,Westmoreland,Pennsylvania,42129,453,38 +2020-06-04,Westmoreland,Pennsylvania,42129,455,38 +2020-06-05,Westmoreland,Pennsylvania,42129,456,38 +2020-06-06,Westmoreland,Pennsylvania,42129,457,38 +2020-06-07,Westmoreland,Pennsylvania,42129,459,38 +2020-06-08,Westmoreland,Pennsylvania,42129,461,38 +2020-06-09,Westmoreland,Pennsylvania,42129,467,38 +2020-06-10,Westmoreland,Pennsylvania,42129,473,38 +2020-06-11,Westmoreland,Pennsylvania,42129,474,38 +2020-06-12,Westmoreland,Pennsylvania,42129,483,38 +2020-06-13,Westmoreland,Pennsylvania,42129,487,38 +2020-06-14,Westmoreland,Pennsylvania,42129,490,38 +2020-06-15,Westmoreland,Pennsylvania,42129,492,38 +2020-06-16,Westmoreland,Pennsylvania,42129,493,38 +2020-06-17,Westmoreland,Pennsylvania,42129,498,38 +2020-06-18,Westmoreland,Pennsylvania,42129,502,38 +2020-06-19,Westmoreland,Pennsylvania,42129,510,38 +2020-06-20,Westmoreland,Pennsylvania,42129,519,38 +2020-06-21,Westmoreland,Pennsylvania,42129,530,38 +2020-06-22,Westmoreland,Pennsylvania,42129,546,38 +2020-06-23,Westmoreland,Pennsylvania,42129,552,38 +2020-06-24,Westmoreland,Pennsylvania,42129,563,38 +2020-06-25,Westmoreland,Pennsylvania,42129,578,38 +2020-06-26,Westmoreland,Pennsylvania,42129,587,38 +2020-06-27,Westmoreland,Pennsylvania,42129,607,38 +2020-06-28,Westmoreland,Pennsylvania,42129,620,38 +2020-06-29,Westmoreland,Pennsylvania,42129,640,38 +2020-06-30,Westmoreland,Pennsylvania,42129,646,38 +2020-07-01,Westmoreland,Pennsylvania,42129,675,38 +2020-07-02,Westmoreland,Pennsylvania,42129,711,38 +2020-07-03,Westmoreland,Pennsylvania,42129,744,38 +2020-07-04,Westmoreland,Pennsylvania,42129,774,38 +2020-07-05,Westmoreland,Pennsylvania,42129,801,38 +2020-07-06,Westmoreland,Pennsylvania,42129,828,38 +2020-07-07,Westmoreland,Pennsylvania,42129,863,39 +2020-07-08,Westmoreland,Pennsylvania,42129,896,39 +2020-07-09,Westmoreland,Pennsylvania,42129,917,39 +2020-04-04,Wyoming,Pennsylvania,42131,5,0 +2020-04-05,Wyoming,Pennsylvania,42131,5,0 +2020-04-06,Wyoming,Pennsylvania,42131,5,0 +2020-04-07,Wyoming,Pennsylvania,42131,5,0 +2020-04-08,Wyoming,Pennsylvania,42131,5,0 +2020-04-09,Wyoming,Pennsylvania,42131,6,0 +2020-04-10,Wyoming,Pennsylvania,42131,6,0 +2020-04-11,Wyoming,Pennsylvania,42131,8,0 +2020-04-12,Wyoming,Pennsylvania,42131,9,0 +2020-04-13,Wyoming,Pennsylvania,42131,12,0 +2020-04-14,Wyoming,Pennsylvania,42131,11,0 +2020-04-15,Wyoming,Pennsylvania,42131,13,0 +2020-04-16,Wyoming,Pennsylvania,42131,14,1 +2020-04-17,Wyoming,Pennsylvania,42131,16,1 +2020-04-18,Wyoming,Pennsylvania,42131,16,1 +2020-04-19,Wyoming,Pennsylvania,42131,17,1 +2020-04-20,Wyoming,Pennsylvania,42131,17,1 +2020-04-21,Wyoming,Pennsylvania,42131,17,1 +2020-04-22,Wyoming,Pennsylvania,42131,17,1 +2020-04-23,Wyoming,Pennsylvania,42131,17,1 +2020-04-24,Wyoming,Pennsylvania,42131,17,2 +2020-04-25,Wyoming,Pennsylvania,42131,17,2 +2020-04-26,Wyoming,Pennsylvania,42131,17,2 +2020-04-27,Wyoming,Pennsylvania,42131,18,2 +2020-04-28,Wyoming,Pennsylvania,42131,18,2 +2020-04-29,Wyoming,Pennsylvania,42131,19,2 +2020-04-30,Wyoming,Pennsylvania,42131,20,2 +2020-05-01,Wyoming,Pennsylvania,42131,21,2 +2020-05-02,Wyoming,Pennsylvania,42131,25,2 +2020-05-03,Wyoming,Pennsylvania,42131,25,2 +2020-05-04,Wyoming,Pennsylvania,42131,27,2 +2020-05-05,Wyoming,Pennsylvania,42131,27,2 +2020-05-06,Wyoming,Pennsylvania,42131,27,2 +2020-05-07,Wyoming,Pennsylvania,42131,27,2 +2020-05-08,Wyoming,Pennsylvania,42131,28,2 +2020-05-09,Wyoming,Pennsylvania,42131,30,2 +2020-05-10,Wyoming,Pennsylvania,42131,30,2 +2020-05-11,Wyoming,Pennsylvania,42131,30,3 +2020-05-12,Wyoming,Pennsylvania,42131,31,3 +2020-05-13,Wyoming,Pennsylvania,42131,31,4 +2020-05-14,Wyoming,Pennsylvania,42131,31,4 +2020-05-15,Wyoming,Pennsylvania,42131,28,3 +2020-05-16,Wyoming,Pennsylvania,42131,29,4 +2020-05-17,Wyoming,Pennsylvania,42131,29,4 +2020-05-18,Wyoming,Pennsylvania,42131,30,4 +2020-05-19,Wyoming,Pennsylvania,42131,30,5 +2020-05-20,Wyoming,Pennsylvania,42131,30,6 +2020-05-21,Wyoming,Pennsylvania,42131,32,7 +2020-05-22,Wyoming,Pennsylvania,42131,33,7 +2020-05-23,Wyoming,Pennsylvania,42131,33,7 +2020-05-24,Wyoming,Pennsylvania,42131,33,7 +2020-05-25,Wyoming,Pennsylvania,42131,33,7 +2020-05-26,Wyoming,Pennsylvania,42131,33,7 +2020-05-27,Wyoming,Pennsylvania,42131,33,7 +2020-05-28,Wyoming,Pennsylvania,42131,34,7 +2020-05-29,Wyoming,Pennsylvania,42131,34,7 +2020-05-30,Wyoming,Pennsylvania,42131,34,7 +2020-05-31,Wyoming,Pennsylvania,42131,34,7 +2020-06-01,Wyoming,Pennsylvania,42131,34,7 +2020-06-02,Wyoming,Pennsylvania,42131,34,7 +2020-06-03,Wyoming,Pennsylvania,42131,34,7 +2020-06-04,Wyoming,Pennsylvania,42131,34,7 +2020-06-05,Wyoming,Pennsylvania,42131,34,7 +2020-06-06,Wyoming,Pennsylvania,42131,34,7 +2020-06-07,Wyoming,Pennsylvania,42131,34,7 +2020-06-08,Wyoming,Pennsylvania,42131,35,7 +2020-06-09,Wyoming,Pennsylvania,42131,36,7 +2020-06-10,Wyoming,Pennsylvania,42131,36,7 +2020-06-11,Wyoming,Pennsylvania,42131,36,7 +2020-06-12,Wyoming,Pennsylvania,42131,36,7 +2020-06-13,Wyoming,Pennsylvania,42131,36,7 +2020-06-14,Wyoming,Pennsylvania,42131,36,7 +2020-06-15,Wyoming,Pennsylvania,42131,36,7 +2020-06-16,Wyoming,Pennsylvania,42131,36,7 +2020-06-17,Wyoming,Pennsylvania,42131,36,7 +2020-06-18,Wyoming,Pennsylvania,42131,36,7 +2020-06-19,Wyoming,Pennsylvania,42131,36,7 +2020-06-20,Wyoming,Pennsylvania,42131,36,7 +2020-06-21,Wyoming,Pennsylvania,42131,37,7 +2020-06-22,Wyoming,Pennsylvania,42131,37,7 +2020-06-23,Wyoming,Pennsylvania,42131,37,7 +2020-06-24,Wyoming,Pennsylvania,42131,37,7 +2020-06-25,Wyoming,Pennsylvania,42131,37,7 +2020-06-26,Wyoming,Pennsylvania,42131,37,7 +2020-06-27,Wyoming,Pennsylvania,42131,37,7 +2020-06-28,Wyoming,Pennsylvania,42131,37,7 +2020-06-29,Wyoming,Pennsylvania,42131,37,7 +2020-06-30,Wyoming,Pennsylvania,42131,38,7 +2020-07-01,Wyoming,Pennsylvania,42131,38,7 +2020-07-02,Wyoming,Pennsylvania,42131,38,7 +2020-07-03,Wyoming,Pennsylvania,42131,39,7 +2020-07-04,Wyoming,Pennsylvania,42131,39,7 +2020-07-05,Wyoming,Pennsylvania,42131,39,7 +2020-07-06,Wyoming,Pennsylvania,42131,40,7 +2020-07-07,Wyoming,Pennsylvania,42131,40,7 +2020-07-08,Wyoming,Pennsylvania,42131,40,7 +2020-07-09,Wyoming,Pennsylvania,42131,41,7 +2020-03-18,York,Pennsylvania,42133,2,0 +2020-03-19,York,Pennsylvania,42133,2,0 +2020-03-20,York,Pennsylvania,42133,6,0 +2020-03-21,York,Pennsylvania,42133,9,0 +2020-03-22,York,Pennsylvania,42133,10,0 +2020-03-23,York,Pennsylvania,42133,10,0 +2020-03-24,York,Pennsylvania,42133,18,0 +2020-03-25,York,Pennsylvania,42133,20,0 +2020-03-26,York,Pennsylvania,42133,21,0 +2020-03-27,York,Pennsylvania,42133,29,0 +2020-03-28,York,Pennsylvania,42133,37,0 +2020-03-29,York,Pennsylvania,42133,43,0 +2020-03-30,York,Pennsylvania,42133,54,0 +2020-03-31,York,Pennsylvania,42133,66,0 +2020-04-01,York,Pennsylvania,42133,66,0 +2020-04-02,York,Pennsylvania,42133,102,1 +2020-04-03,York,Pennsylvania,42133,102,1 +2020-04-04,York,Pennsylvania,42133,144,1 +2020-04-05,York,Pennsylvania,42133,171,1 +2020-04-06,York,Pennsylvania,42133,189,1 +2020-04-07,York,Pennsylvania,42133,218,2 +2020-04-08,York,Pennsylvania,42133,233,2 +2020-04-09,York,Pennsylvania,42133,250,3 +2020-04-10,York,Pennsylvania,42133,283,3 +2020-04-11,York,Pennsylvania,42133,293,3 +2020-04-12,York,Pennsylvania,42133,307,3 +2020-04-13,York,Pennsylvania,42133,331,3 +2020-04-14,York,Pennsylvania,42133,371,3 +2020-04-15,York,Pennsylvania,42133,381,4 +2020-04-16,York,Pennsylvania,42133,393,4 +2020-04-17,York,Pennsylvania,42133,443,4 +2020-04-18,York,Pennsylvania,42133,463,4 +2020-04-19,York,Pennsylvania,42133,481,6 +2020-04-20,York,Pennsylvania,42133,493,6 +2020-04-21,York,Pennsylvania,42133,517,13 +2020-04-22,York,Pennsylvania,42133,531,14 +2020-04-23,York,Pennsylvania,42133,546,13 +2020-04-24,York,Pennsylvania,42133,563,13 +2020-04-25,York,Pennsylvania,42133,578,13 +2020-04-26,York,Pennsylvania,42133,593,13 +2020-04-27,York,Pennsylvania,42133,606,13 +2020-04-28,York,Pennsylvania,42133,614,13 +2020-04-29,York,Pennsylvania,42133,624,13 +2020-04-30,York,Pennsylvania,42133,641,13 +2020-05-01,York,Pennsylvania,42133,651,13 +2020-05-02,York,Pennsylvania,42133,664,13 +2020-05-03,York,Pennsylvania,42133,679,13 +2020-05-04,York,Pennsylvania,42133,702,13 +2020-05-05,York,Pennsylvania,42133,716,13 +2020-05-06,York,Pennsylvania,42133,722,13 +2020-05-07,York,Pennsylvania,42133,740,13 +2020-05-08,York,Pennsylvania,42133,753,13 +2020-05-09,York,Pennsylvania,42133,767,13 +2020-05-10,York,Pennsylvania,42133,773,13 +2020-05-11,York,Pennsylvania,42133,784,13 +2020-05-12,York,Pennsylvania,42133,793,14 +2020-05-13,York,Pennsylvania,42133,803,14 +2020-05-14,York,Pennsylvania,42133,817,15 +2020-05-15,York,Pennsylvania,42133,828,16 +2020-05-16,York,Pennsylvania,42133,835,15 +2020-05-17,York,Pennsylvania,42133,851,16 +2020-05-18,York,Pennsylvania,42133,857,18 +2020-05-19,York,Pennsylvania,42133,866,18 +2020-05-20,York,Pennsylvania,42133,872,19 +2020-05-21,York,Pennsylvania,42133,883,21 +2020-05-22,York,Pennsylvania,42133,895,22 +2020-05-23,York,Pennsylvania,42133,904,22 +2020-05-24,York,Pennsylvania,42133,924,22 +2020-05-25,York,Pennsylvania,42133,930,22 +2020-05-26,York,Pennsylvania,42133,943,22 +2020-05-27,York,Pennsylvania,42133,956,22 +2020-05-28,York,Pennsylvania,42133,970,25 +2020-05-29,York,Pennsylvania,42133,991,26 +2020-05-30,York,Pennsylvania,42133,1000,26 +2020-05-31,York,Pennsylvania,42133,1007,26 +2020-06-01,York,Pennsylvania,42133,1013,26 +2020-06-02,York,Pennsylvania,42133,1028,26 +2020-06-03,York,Pennsylvania,42133,1037,27 +2020-06-04,York,Pennsylvania,42133,1038,28 +2020-06-05,York,Pennsylvania,42133,1040,28 +2020-06-06,York,Pennsylvania,42133,1049,29 +2020-06-07,York,Pennsylvania,42133,1082,29 +2020-06-08,York,Pennsylvania,42133,1086,29 +2020-06-09,York,Pennsylvania,42133,1094,30 +2020-06-10,York,Pennsylvania,42133,1102,30 +2020-06-11,York,Pennsylvania,42133,1117,31 +2020-06-12,York,Pennsylvania,42133,1141,31 +2020-06-13,York,Pennsylvania,42133,1157,31 +2020-06-14,York,Pennsylvania,42133,1162,31 +2020-06-15,York,Pennsylvania,42133,1169,32 +2020-06-16,York,Pennsylvania,42133,1183,32 +2020-06-17,York,Pennsylvania,42133,1195,34 +2020-06-18,York,Pennsylvania,42133,1209,35 +2020-06-19,York,Pennsylvania,42133,1229,35 +2020-06-20,York,Pennsylvania,42133,1255,36 +2020-06-21,York,Pennsylvania,42133,1296,36 +2020-06-22,York,Pennsylvania,42133,1351,36 +2020-06-23,York,Pennsylvania,42133,1381,39 +2020-06-24,York,Pennsylvania,42133,1400,40 +2020-06-25,York,Pennsylvania,42133,1418,41 +2020-06-26,York,Pennsylvania,42133,1428,43 +2020-06-27,York,Pennsylvania,42133,1443,44 +2020-06-28,York,Pennsylvania,42133,1456,44 +2020-06-29,York,Pennsylvania,42133,1477,45 +2020-06-30,York,Pennsylvania,42133,1515,48 +2020-07-01,York,Pennsylvania,42133,1531,48 +2020-07-02,York,Pennsylvania,42133,1555,52 +2020-07-03,York,Pennsylvania,42133,1577,54 +2020-07-04,York,Pennsylvania,42133,1595,54 +2020-07-05,York,Pennsylvania,42133,1609,54 +2020-07-06,York,Pennsylvania,42133,1613,54 +2020-07-07,York,Pennsylvania,42133,1654,55 +2020-07-08,York,Pennsylvania,42133,1692,57 +2020-07-09,York,Pennsylvania,42133,1714,57 +2020-03-25,Bristol,Rhode Island,44001,5,0 +2020-03-26,Bristol,Rhode Island,44001,5,0 +2020-03-27,Bristol,Rhode Island,44001,5,0 +2020-03-28,Bristol,Rhode Island,44001,5,0 +2020-03-29,Bristol,Rhode Island,44001,11,0 +2020-03-30,Bristol,Rhode Island,44001,14,0 +2020-03-31,Bristol,Rhode Island,44001,19,0 +2020-04-01,Bristol,Rhode Island,44001,20,0 +2020-04-02,Bristol,Rhode Island,44001,21,0 +2020-04-03,Bristol,Rhode Island,44001,21,0 +2020-04-04,Bristol,Rhode Island,44001,24,0 +2020-04-05,Bristol,Rhode Island,44001,25,0 +2020-04-06,Bristol,Rhode Island,44001,25,0 +2020-04-07,Bristol,Rhode Island,44001,30,0 +2020-04-08,Bristol,Rhode Island,44001,31,0 +2020-04-09,Bristol,Rhode Island,44001,37,0 +2020-04-10,Bristol,Rhode Island,44001,37,0 +2020-04-11,Bristol,Rhode Island,44001,39,0 +2020-04-12,Bristol,Rhode Island,44001,39,0 +2020-04-13,Bristol,Rhode Island,44001,39,0 +2020-04-14,Bristol,Rhode Island,44001,49,0 +2020-04-15,Bristol,Rhode Island,44001,49,0 +2020-04-16,Bristol,Rhode Island,44001,56,0 +2020-04-17,Bristol,Rhode Island,44001,57,0 +2020-04-18,Bristol,Rhode Island,44001,59,0 +2020-04-19,Bristol,Rhode Island,44001,65,0 +2020-04-20,Bristol,Rhode Island,44001,67,0 +2020-04-21,Bristol,Rhode Island,44001,68,0 +2020-04-22,Bristol,Rhode Island,44001,68,0 +2020-04-23,Bristol,Rhode Island,44001,68,0 +2020-04-24,Bristol,Rhode Island,44001,102,0 +2020-04-25,Bristol,Rhode Island,44001,107,0 +2020-04-26,Bristol,Rhode Island,44001,111,0 +2020-04-27,Bristol,Rhode Island,44001,111,0 +2020-04-28,Bristol,Rhode Island,44001,114,0 +2020-04-29,Bristol,Rhode Island,44001,145,0 +2020-04-30,Bristol,Rhode Island,44001,143,0 +2020-05-01,Bristol,Rhode Island,44001,142,0 +2020-05-02,Bristol,Rhode Island,44001,144,0 +2020-05-03,Bristol,Rhode Island,44001,152,0 +2020-05-04,Bristol,Rhode Island,44001,154,0 +2020-05-05,Bristol,Rhode Island,44001,154,0 +2020-05-06,Bristol,Rhode Island,44001,154,0 +2020-05-07,Bristol,Rhode Island,44001,154,0 +2020-05-08,Bristol,Rhode Island,44001,154,0 +2020-05-09,Bristol,Rhode Island,44001,154,0 +2020-05-10,Bristol,Rhode Island,44001,154,0 +2020-05-11,Bristol,Rhode Island,44001,171,1 +2020-05-12,Bristol,Rhode Island,44001,172,1 +2020-05-13,Bristol,Rhode Island,44001,172,1 +2020-05-14,Bristol,Rhode Island,44001,172,1 +2020-05-15,Bristol,Rhode Island,44001,172,1 +2020-05-16,Bristol,Rhode Island,44001,172,1 +2020-05-17,Bristol,Rhode Island,44001,172,1 +2020-05-18,Bristol,Rhode Island,44001,172,1 +2020-05-19,Bristol,Rhode Island,44001,172,1 +2020-05-20,Bristol,Rhode Island,44001,198,1 +2020-05-21,Bristol,Rhode Island,44001,204,1 +2020-05-22,Bristol,Rhode Island,44001,209,1 +2020-05-23,Bristol,Rhode Island,44001,213,1 +2020-05-24,Bristol,Rhode Island,44001,213,1 +2020-05-25,Bristol,Rhode Island,44001,213,1 +2020-05-26,Bristol,Rhode Island,44001,213,1 +2020-05-27,Bristol,Rhode Island,44001,223,11 +2020-05-28,Bristol,Rhode Island,44001,222,11 +2020-05-29,Bristol,Rhode Island,44001,224,11 +2020-05-30,Bristol,Rhode Island,44001,224,11 +2020-05-31,Bristol,Rhode Island,44001,224,11 +2020-06-01,Bristol,Rhode Island,44001,224,11 +2020-06-02,Bristol,Rhode Island,44001,224,11 +2020-06-03,Bristol,Rhode Island,44001,224,11 +2020-06-04,Bristol,Rhode Island,44001,224,11 +2020-06-05,Bristol,Rhode Island,44001,224,11 +2020-06-06,Bristol,Rhode Island,44001,224,11 +2020-06-07,Bristol,Rhode Island,44001,224,11 +2020-06-08,Bristol,Rhode Island,44001,231,13 +2020-06-09,Bristol,Rhode Island,44001,231,13 +2020-06-10,Bristol,Rhode Island,44001,231,13 +2020-06-11,Bristol,Rhode Island,44001,231,13 +2020-06-12,Bristol,Rhode Island,44001,231,13 +2020-06-13,Bristol,Rhode Island,44001,231,13 +2020-06-14,Bristol,Rhode Island,44001,231,13 +2020-06-15,Bristol,Rhode Island,44001,240,13 +2020-06-16,Bristol,Rhode Island,44001,240,13 +2020-06-17,Bristol,Rhode Island,44001,240,13 +2020-06-18,Bristol,Rhode Island,44001,240,13 +2020-06-19,Bristol,Rhode Island,44001,240,13 +2020-06-20,Bristol,Rhode Island,44001,240,13 +2020-06-21,Bristol,Rhode Island,44001,240,13 +2020-06-22,Bristol,Rhode Island,44001,247,13 +2020-06-23,Bristol,Rhode Island,44001,247,13 +2020-06-24,Bristol,Rhode Island,44001,247,13 +2020-06-25,Bristol,Rhode Island,44001,247,13 +2020-06-26,Bristol,Rhode Island,44001,247,15 +2020-06-27,Bristol,Rhode Island,44001,247,15 +2020-06-28,Bristol,Rhode Island,44001,247,15 +2020-06-29,Bristol,Rhode Island,44001,253,15 +2020-06-30,Bristol,Rhode Island,44001,253,15 +2020-07-01,Bristol,Rhode Island,44001,253,15 +2020-07-02,Bristol,Rhode Island,44001,253,15 +2020-07-03,Bristol,Rhode Island,44001,256,15 +2020-07-04,Bristol,Rhode Island,44001,256,15 +2020-07-05,Bristol,Rhode Island,44001,256,15 +2020-07-06,Bristol,Rhode Island,44001,256,15 +2020-07-07,Bristol,Rhode Island,44001,256,15 +2020-07-08,Bristol,Rhode Island,44001,256,15 +2020-07-09,Bristol,Rhode Island,44001,256,15 +2020-03-25,Kent,Rhode Island,44003,7,0 +2020-03-26,Kent,Rhode Island,44003,7,0 +2020-03-27,Kent,Rhode Island,44003,7,0 +2020-03-28,Kent,Rhode Island,44003,7,0 +2020-03-29,Kent,Rhode Island,44003,28,0 +2020-03-30,Kent,Rhode Island,44003,32,0 +2020-03-31,Kent,Rhode Island,44003,40,0 +2020-04-01,Kent,Rhode Island,44003,55,0 +2020-04-02,Kent,Rhode Island,44003,59,0 +2020-04-03,Kent,Rhode Island,44003,59,0 +2020-04-04,Kent,Rhode Island,44003,82,0 +2020-04-05,Kent,Rhode Island,44003,92,0 +2020-04-06,Kent,Rhode Island,44003,92,0 +2020-04-07,Kent,Rhode Island,44003,125,0 +2020-04-08,Kent,Rhode Island,44003,137,0 +2020-04-09,Kent,Rhode Island,44003,152,0 +2020-04-10,Kent,Rhode Island,44003,152,0 +2020-04-11,Kent,Rhode Island,44003,169,0 +2020-04-12,Kent,Rhode Island,44003,169,0 +2020-04-13,Kent,Rhode Island,44003,169,0 +2020-04-14,Kent,Rhode Island,44003,244,0 +2020-04-15,Kent,Rhode Island,44003,244,0 +2020-04-16,Kent,Rhode Island,44003,272,0 +2020-04-17,Kent,Rhode Island,44003,299,0 +2020-04-18,Kent,Rhode Island,44003,316,0 +2020-04-19,Kent,Rhode Island,44003,341,0 +2020-04-20,Kent,Rhode Island,44003,366,0 +2020-04-21,Kent,Rhode Island,44003,386,0 +2020-04-22,Kent,Rhode Island,44003,386,0 +2020-04-23,Kent,Rhode Island,44003,386,0 +2020-04-24,Kent,Rhode Island,44003,466,0 +2020-04-25,Kent,Rhode Island,44003,496,2 +2020-04-26,Kent,Rhode Island,44003,526,2 +2020-04-27,Kent,Rhode Island,44003,526,2 +2020-04-28,Kent,Rhode Island,44003,574,2 +2020-04-29,Kent,Rhode Island,44003,598,4 +2020-04-30,Kent,Rhode Island,44003,622,4 +2020-05-01,Kent,Rhode Island,44003,638,4 +2020-05-02,Kent,Rhode Island,44003,675,4 +2020-05-03,Kent,Rhode Island,44003,697,25 +2020-05-04,Kent,Rhode Island,44003,703,25 +2020-05-05,Kent,Rhode Island,44003,703,25 +2020-05-06,Kent,Rhode Island,44003,703,25 +2020-05-07,Kent,Rhode Island,44003,703,25 +2020-05-08,Kent,Rhode Island,44003,703,25 +2020-05-09,Kent,Rhode Island,44003,703,25 +2020-05-10,Kent,Rhode Island,44003,703,25 +2020-05-11,Kent,Rhode Island,44003,859,46 +2020-05-12,Kent,Rhode Island,44003,850,46 +2020-05-13,Kent,Rhode Island,44003,883,46 +2020-05-14,Kent,Rhode Island,44003,883,46 +2020-05-15,Kent,Rhode Island,44003,883,46 +2020-05-16,Kent,Rhode Island,44003,883,46 +2020-05-17,Kent,Rhode Island,44003,883,46 +2020-05-18,Kent,Rhode Island,44003,883,46 +2020-05-19,Kent,Rhode Island,44003,883,46 +2020-05-20,Kent,Rhode Island,44003,958,46 +2020-05-21,Kent,Rhode Island,44003,974,46 +2020-05-22,Kent,Rhode Island,44003,985,46 +2020-05-23,Kent,Rhode Island,44003,1005,46 +2020-05-24,Kent,Rhode Island,44003,1013,46 +2020-05-25,Kent,Rhode Island,44003,1013,46 +2020-05-26,Kent,Rhode Island,44003,1013,46 +2020-05-27,Kent,Rhode Island,44003,1032,68 +2020-05-28,Kent,Rhode Island,44003,1038,68 +2020-05-29,Kent,Rhode Island,44003,1052,68 +2020-05-30,Kent,Rhode Island,44003,1052,68 +2020-05-31,Kent,Rhode Island,44003,1052,68 +2020-06-01,Kent,Rhode Island,44003,1052,68 +2020-06-02,Kent,Rhode Island,44003,1052,68 +2020-06-03,Kent,Rhode Island,44003,1052,68 +2020-06-04,Kent,Rhode Island,44003,1052,68 +2020-06-05,Kent,Rhode Island,44003,1052,68 +2020-06-06,Kent,Rhode Island,44003,1052,68 +2020-06-07,Kent,Rhode Island,44003,1052,68 +2020-06-08,Kent,Rhode Island,44003,1105,82 +2020-06-09,Kent,Rhode Island,44003,1105,82 +2020-06-10,Kent,Rhode Island,44003,1105,82 +2020-06-11,Kent,Rhode Island,44003,1105,82 +2020-06-12,Kent,Rhode Island,44003,1105,82 +2020-06-13,Kent,Rhode Island,44003,1105,82 +2020-06-14,Kent,Rhode Island,44003,1105,82 +2020-06-15,Kent,Rhode Island,44003,1128,82 +2020-06-16,Kent,Rhode Island,44003,1128,82 +2020-06-17,Kent,Rhode Island,44003,1128,82 +2020-06-18,Kent,Rhode Island,44003,1128,82 +2020-06-19,Kent,Rhode Island,44003,1128,82 +2020-06-20,Kent,Rhode Island,44003,1128,82 +2020-06-21,Kent,Rhode Island,44003,1128,82 +2020-06-22,Kent,Rhode Island,44003,1169,82 +2020-06-23,Kent,Rhode Island,44003,1169,82 +2020-06-24,Kent,Rhode Island,44003,1169,82 +2020-06-25,Kent,Rhode Island,44003,1169,82 +2020-06-26,Kent,Rhode Island,44003,1169,93 +2020-06-27,Kent,Rhode Island,44003,1169,93 +2020-06-28,Kent,Rhode Island,44003,1169,93 +2020-06-29,Kent,Rhode Island,44003,1199,93 +2020-06-30,Kent,Rhode Island,44003,1199,93 +2020-07-01,Kent,Rhode Island,44003,1199,93 +2020-07-02,Kent,Rhode Island,44003,1199,93 +2020-07-03,Kent,Rhode Island,44003,1234,93 +2020-07-04,Kent,Rhode Island,44003,1234,93 +2020-07-05,Kent,Rhode Island,44003,1234,93 +2020-07-06,Kent,Rhode Island,44003,1234,93 +2020-07-07,Kent,Rhode Island,44003,1234,93 +2020-07-08,Kent,Rhode Island,44003,1234,97 +2020-07-09,Kent,Rhode Island,44003,1234,97 +2020-03-25,Newport,Rhode Island,44005,8,0 +2020-03-26,Newport,Rhode Island,44005,8,0 +2020-03-27,Newport,Rhode Island,44005,8,0 +2020-03-28,Newport,Rhode Island,44005,8,0 +2020-03-29,Newport,Rhode Island,44005,17,0 +2020-03-30,Newport,Rhode Island,44005,21,0 +2020-03-31,Newport,Rhode Island,44005,23,0 +2020-04-01,Newport,Rhode Island,44005,31,0 +2020-04-02,Newport,Rhode Island,44005,33,0 +2020-04-03,Newport,Rhode Island,44005,33,0 +2020-04-04,Newport,Rhode Island,44005,39,0 +2020-04-05,Newport,Rhode Island,44005,42,0 +2020-04-06,Newport,Rhode Island,44005,42,0 +2020-04-07,Newport,Rhode Island,44005,56,0 +2020-04-08,Newport,Rhode Island,44005,56,0 +2020-04-09,Newport,Rhode Island,44005,57,0 +2020-04-10,Newport,Rhode Island,44005,57,0 +2020-04-11,Newport,Rhode Island,44005,74,0 +2020-04-12,Newport,Rhode Island,44005,74,0 +2020-04-13,Newport,Rhode Island,44005,74,0 +2020-04-14,Newport,Rhode Island,44005,93,0 +2020-04-15,Newport,Rhode Island,44005,93,0 +2020-04-16,Newport,Rhode Island,44005,98,0 +2020-04-17,Newport,Rhode Island,44005,103,0 +2020-04-18,Newport,Rhode Island,44005,103,0 +2020-04-19,Newport,Rhode Island,44005,105,0 +2020-04-20,Newport,Rhode Island,44005,107,0 +2020-04-21,Newport,Rhode Island,44005,110,0 +2020-04-22,Newport,Rhode Island,44005,110,0 +2020-04-23,Newport,Rhode Island,44005,110,0 +2020-04-24,Newport,Rhode Island,44005,124,0 +2020-04-25,Newport,Rhode Island,44005,130,0 +2020-04-26,Newport,Rhode Island,44005,135,0 +2020-04-27,Newport,Rhode Island,44005,135,0 +2020-04-28,Newport,Rhode Island,44005,138,0 +2020-04-29,Newport,Rhode Island,44005,148,0 +2020-04-30,Newport,Rhode Island,44005,149,0 +2020-05-01,Newport,Rhode Island,44005,155,0 +2020-05-02,Newport,Rhode Island,44005,156,0 +2020-05-03,Newport,Rhode Island,44005,158,4 +2020-05-04,Newport,Rhode Island,44005,161,4 +2020-05-05,Newport,Rhode Island,44005,161,4 +2020-05-06,Newport,Rhode Island,44005,161,4 +2020-05-07,Newport,Rhode Island,44005,161,4 +2020-05-08,Newport,Rhode Island,44005,161,4 +2020-05-09,Newport,Rhode Island,44005,161,4 +2020-05-10,Newport,Rhode Island,44005,161,4 +2020-05-11,Newport,Rhode Island,44005,182,4 +2020-05-12,Newport,Rhode Island,44005,185,4 +2020-05-13,Newport,Rhode Island,44005,197,4 +2020-05-14,Newport,Rhode Island,44005,197,4 +2020-05-15,Newport,Rhode Island,44005,197,4 +2020-05-16,Newport,Rhode Island,44005,197,4 +2020-05-17,Newport,Rhode Island,44005,197,4 +2020-05-18,Newport,Rhode Island,44005,197,4 +2020-05-19,Newport,Rhode Island,44005,197,4 +2020-05-20,Newport,Rhode Island,44005,206,4 +2020-05-21,Newport,Rhode Island,44005,209,4 +2020-05-22,Newport,Rhode Island,44005,212,4 +2020-05-23,Newport,Rhode Island,44005,226,4 +2020-05-24,Newport,Rhode Island,44005,228,4 +2020-05-25,Newport,Rhode Island,44005,228,4 +2020-05-26,Newport,Rhode Island,44005,228,4 +2020-05-27,Newport,Rhode Island,44005,235,4 +2020-05-28,Newport,Rhode Island,44005,237,4 +2020-05-29,Newport,Rhode Island,44005,244,4 +2020-05-30,Newport,Rhode Island,44005,244,4 +2020-05-31,Newport,Rhode Island,44005,244,4 +2020-06-01,Newport,Rhode Island,44005,244,4 +2020-06-02,Newport,Rhode Island,44005,244,4 +2020-06-03,Newport,Rhode Island,44005,244,4 +2020-06-04,Newport,Rhode Island,44005,244,4 +2020-06-05,Newport,Rhode Island,44005,244,4 +2020-06-06,Newport,Rhode Island,44005,244,4 +2020-06-07,Newport,Rhode Island,44005,244,4 +2020-06-08,Newport,Rhode Island,44005,269,4 +2020-06-09,Newport,Rhode Island,44005,269,4 +2020-06-10,Newport,Rhode Island,44005,269,4 +2020-06-11,Newport,Rhode Island,44005,269,4 +2020-06-12,Newport,Rhode Island,44005,269,4 +2020-06-13,Newport,Rhode Island,44005,269,4 +2020-06-14,Newport,Rhode Island,44005,269,4 +2020-06-15,Newport,Rhode Island,44005,277,4 +2020-06-16,Newport,Rhode Island,44005,277,4 +2020-06-17,Newport,Rhode Island,44005,277,4 +2020-06-18,Newport,Rhode Island,44005,277,4 +2020-06-19,Newport,Rhode Island,44005,277,4 +2020-06-20,Newport,Rhode Island,44005,277,4 +2020-06-21,Newport,Rhode Island,44005,277,4 +2020-06-22,Newport,Rhode Island,44005,294,4 +2020-06-23,Newport,Rhode Island,44005,294,4 +2020-06-24,Newport,Rhode Island,44005,294,4 +2020-06-25,Newport,Rhode Island,44005,294,4 +2020-06-26,Newport,Rhode Island,44005,294,6 +2020-06-27,Newport,Rhode Island,44005,294,6 +2020-06-28,Newport,Rhode Island,44005,294,6 +2020-06-29,Newport,Rhode Island,44005,308,6 +2020-06-30,Newport,Rhode Island,44005,308,6 +2020-07-01,Newport,Rhode Island,44005,308,6 +2020-07-02,Newport,Rhode Island,44005,308,6 +2020-07-03,Newport,Rhode Island,44005,331,6 +2020-07-04,Newport,Rhode Island,44005,331,6 +2020-07-05,Newport,Rhode Island,44005,331,6 +2020-07-06,Newport,Rhode Island,44005,331,6 +2020-07-07,Newport,Rhode Island,44005,331,6 +2020-07-08,Newport,Rhode Island,44005,331,6 +2020-07-09,Newport,Rhode Island,44005,331,6 +2020-03-25,Providence,Rhode Island,44007,37,0 +2020-03-26,Providence,Rhode Island,44007,42,0 +2020-03-27,Providence,Rhode Island,44007,42,0 +2020-03-28,Providence,Rhode Island,44007,42,0 +2020-03-29,Providence,Rhode Island,44007,148,0 +2020-03-30,Providence,Rhode Island,44007,214,0 +2020-03-31,Providence,Rhode Island,44007,305,0 +2020-04-01,Providence,Rhode Island,44007,391,3 +2020-04-02,Providence,Rhode Island,44007,418,3 +2020-04-03,Providence,Rhode Island,44007,418,7 +2020-04-04,Providence,Rhode Island,44007,491,7 +2020-04-05,Providence,Rhode Island,44007,538,7 +2020-04-06,Providence,Rhode Island,44007,538,7 +2020-04-07,Providence,Rhode Island,44007,715,17 +2020-04-08,Providence,Rhode Island,44007,832,20 +2020-04-09,Providence,Rhode Island,44007,957,20 +2020-04-10,Providence,Rhode Island,44007,957,20 +2020-04-11,Providence,Rhode Island,44007,1278,20 +2020-04-12,Providence,Rhode Island,44007,1278,20 +2020-04-13,Providence,Rhode Island,44007,1278,20 +2020-04-14,Providence,Rhode Island,44007,1957,20 +2020-04-15,Providence,Rhode Island,44007,1957,20 +2020-04-16,Providence,Rhode Island,44007,2401,20 +2020-04-17,Providence,Rhode Island,44007,2703,20 +2020-04-18,Providence,Rhode Island,44007,3014,20 +2020-04-19,Providence,Rhode Island,44007,3292,20 +2020-04-20,Providence,Rhode Island,44007,3491,20 +2020-04-21,Providence,Rhode Island,44007,3727,20 +2020-04-22,Providence,Rhode Island,44007,3727,20 +2020-04-23,Providence,Rhode Island,44007,3727,20 +2020-04-24,Providence,Rhode Island,44007,4603,20 +2020-04-25,Providence,Rhode Island,44007,4916,111 +2020-04-26,Providence,Rhode Island,44007,5266,107 +2020-04-27,Providence,Rhode Island,44007,5266,107 +2020-04-28,Providence,Rhode Island,44007,5520,107 +2020-04-29,Providence,Rhode Island,44007,5967,132 +2020-04-30,Providence,Rhode Island,44007,6290,132 +2020-05-01,Providence,Rhode Island,44007,6579,132 +2020-05-02,Providence,Rhode Island,44007,6822,132 +2020-05-03,Providence,Rhode Island,44007,7028,265 +2020-05-04,Providence,Rhode Island,44007,7138,265 +2020-05-05,Providence,Rhode Island,44007,7138,265 +2020-05-06,Providence,Rhode Island,44007,7138,265 +2020-05-07,Providence,Rhode Island,44007,7138,265 +2020-05-08,Providence,Rhode Island,44007,7138,265 +2020-05-09,Providence,Rhode Island,44007,7138,265 +2020-05-10,Providence,Rhode Island,44007,7138,265 +2020-05-11,Providence,Rhode Island,44007,8674,342 +2020-05-12,Providence,Rhode Island,44007,8798,342 +2020-05-13,Providence,Rhode Island,44007,9112,342 +2020-05-14,Providence,Rhode Island,44007,9112,342 +2020-05-15,Providence,Rhode Island,44007,9112,342 +2020-05-16,Providence,Rhode Island,44007,9112,342 +2020-05-17,Providence,Rhode Island,44007,9112,342 +2020-05-18,Providence,Rhode Island,44007,9112,342 +2020-05-19,Providence,Rhode Island,44007,9112,342 +2020-05-20,Providence,Rhode Island,44007,9976,342 +2020-05-21,Providence,Rhode Island,44007,10160,342 +2020-05-22,Providence,Rhode Island,44007,10320,342 +2020-05-23,Providence,Rhode Island,44007,10519,342 +2020-05-24,Providence,Rhode Island,44007,10607,342 +2020-05-25,Providence,Rhode Island,44007,10607,342 +2020-05-26,Providence,Rhode Island,44007,10607,342 +2020-05-27,Providence,Rhode Island,44007,10874,518 +2020-05-28,Providence,Rhode Island,44007,10968,518 +2020-05-29,Providence,Rhode Island,44007,11052,518 +2020-05-30,Providence,Rhode Island,44007,11052,518 +2020-05-31,Providence,Rhode Island,44007,11052,518 +2020-06-01,Providence,Rhode Island,44007,11052,518 +2020-06-02,Providence,Rhode Island,44007,11052,518 +2020-06-03,Providence,Rhode Island,44007,11052,518 +2020-06-04,Providence,Rhode Island,44007,11052,518 +2020-06-05,Providence,Rhode Island,44007,11052,518 +2020-06-06,Providence,Rhode Island,44007,11052,518 +2020-06-07,Providence,Rhode Island,44007,11052,518 +2020-06-08,Providence,Rhode Island,44007,11959,637 +2020-06-09,Providence,Rhode Island,44007,11959,637 +2020-06-10,Providence,Rhode Island,44007,11959,637 +2020-06-11,Providence,Rhode Island,44007,11959,637 +2020-06-12,Providence,Rhode Island,44007,11959,637 +2020-06-13,Providence,Rhode Island,44007,11959,637 +2020-06-14,Providence,Rhode Island,44007,11959,637 +2020-06-15,Providence,Rhode Island,44007,12363,637 +2020-06-16,Providence,Rhode Island,44007,12363,637 +2020-06-17,Providence,Rhode Island,44007,12363,637 +2020-06-18,Providence,Rhode Island,44007,12363,637 +2020-06-19,Providence,Rhode Island,44007,12363,637 +2020-06-20,Providence,Rhode Island,44007,12363,637 +2020-06-21,Providence,Rhode Island,44007,12363,637 +2020-06-22,Providence,Rhode Island,44007,12712,637 +2020-06-23,Providence,Rhode Island,44007,12712,637 +2020-06-24,Providence,Rhode Island,44007,12712,637 +2020-06-25,Providence,Rhode Island,44007,12712,637 +2020-06-26,Providence,Rhode Island,44007,12712,747 +2020-06-27,Providence,Rhode Island,44007,12712,747 +2020-06-28,Providence,Rhode Island,44007,12712,747 +2020-06-29,Providence,Rhode Island,44007,12937,747 +2020-06-30,Providence,Rhode Island,44007,12937,747 +2020-07-01,Providence,Rhode Island,44007,12937,747 +2020-07-02,Providence,Rhode Island,44007,12937,747 +2020-07-03,Providence,Rhode Island,44007,13144,747 +2020-07-04,Providence,Rhode Island,44007,13144,747 +2020-07-05,Providence,Rhode Island,44007,13144,747 +2020-07-06,Providence,Rhode Island,44007,13144,747 +2020-07-07,Providence,Rhode Island,44007,13144,747 +2020-07-08,Providence,Rhode Island,44007,13144,774 +2020-07-09,Providence,Rhode Island,44007,13144,774 +2020-03-25,Washington,Rhode Island,44009,9,0 +2020-03-26,Washington,Rhode Island,44009,9,0 +2020-03-27,Washington,Rhode Island,44009,9,0 +2020-03-28,Washington,Rhode Island,44009,9,0 +2020-03-29,Washington,Rhode Island,44009,21,0 +2020-03-30,Washington,Rhode Island,44009,28,0 +2020-03-31,Washington,Rhode Island,44009,29,0 +2020-04-01,Washington,Rhode Island,44009,32,0 +2020-04-02,Washington,Rhode Island,44009,34,0 +2020-04-03,Washington,Rhode Island,44009,34,0 +2020-04-04,Washington,Rhode Island,44009,48,0 +2020-04-05,Washington,Rhode Island,44009,53,0 +2020-04-06,Washington,Rhode Island,44009,53,0 +2020-04-07,Washington,Rhode Island,44009,80,0 +2020-04-08,Washington,Rhode Island,44009,97,0 +2020-04-09,Washington,Rhode Island,44009,100,0 +2020-04-10,Washington,Rhode Island,44009,100,0 +2020-04-11,Washington,Rhode Island,44009,116,0 +2020-04-12,Washington,Rhode Island,44009,116,0 +2020-04-13,Washington,Rhode Island,44009,116,0 +2020-04-14,Washington,Rhode Island,44009,152,0 +2020-04-15,Washington,Rhode Island,44009,152,0 +2020-04-16,Washington,Rhode Island,44009,171,0 +2020-04-17,Washington,Rhode Island,44009,183,0 +2020-04-18,Washington,Rhode Island,44009,184,0 +2020-04-19,Washington,Rhode Island,44009,188,0 +2020-04-20,Washington,Rhode Island,44009,198,0 +2020-04-21,Washington,Rhode Island,44009,209,0 +2020-04-22,Washington,Rhode Island,44009,209,0 +2020-04-23,Washington,Rhode Island,44009,209,0 +2020-04-24,Washington,Rhode Island,44009,272,0 +2020-04-25,Washington,Rhode Island,44009,282,6 +2020-04-26,Washington,Rhode Island,44009,292,6 +2020-04-27,Washington,Rhode Island,44009,292,6 +2020-04-28,Washington,Rhode Island,44009,313,6 +2020-04-29,Washington,Rhode Island,44009,324,11 +2020-04-30,Washington,Rhode Island,44009,330,11 +2020-05-01,Washington,Rhode Island,44009,344,11 +2020-05-02,Washington,Rhode Island,44009,350,11 +2020-05-03,Washington,Rhode Island,44009,356,25 +2020-05-04,Washington,Rhode Island,44009,363,25 +2020-05-05,Washington,Rhode Island,44009,363,25 +2020-05-06,Washington,Rhode Island,44009,363,25 +2020-05-07,Washington,Rhode Island,44009,363,25 +2020-05-08,Washington,Rhode Island,44009,363,25 +2020-05-09,Washington,Rhode Island,44009,363,25 +2020-05-10,Washington,Rhode Island,44009,363,25 +2020-05-11,Washington,Rhode Island,44009,406,32 +2020-05-12,Washington,Rhode Island,44009,411,32 +2020-05-13,Washington,Rhode Island,44009,425,32 +2020-05-14,Washington,Rhode Island,44009,425,32 +2020-05-15,Washington,Rhode Island,44009,425,32 +2020-05-16,Washington,Rhode Island,44009,425,32 +2020-05-17,Washington,Rhode Island,44009,425,32 +2020-05-18,Washington,Rhode Island,44009,425,32 +2020-05-19,Washington,Rhode Island,44009,425,32 +2020-05-20,Washington,Rhode Island,44009,462,32 +2020-05-21,Washington,Rhode Island,44009,471,32 +2020-05-22,Washington,Rhode Island,44009,482,32 +2020-05-23,Washington,Rhode Island,44009,485,32 +2020-05-24,Washington,Rhode Island,44009,486,32 +2020-05-25,Washington,Rhode Island,44009,486,32 +2020-05-26,Washington,Rhode Island,44009,486,32 +2020-05-27,Washington,Rhode Island,44009,493,51 +2020-05-28,Washington,Rhode Island,44009,496,51 +2020-05-29,Washington,Rhode Island,44009,499,51 +2020-05-30,Washington,Rhode Island,44009,499,51 +2020-05-31,Washington,Rhode Island,44009,499,51 +2020-06-01,Washington,Rhode Island,44009,499,51 +2020-06-02,Washington,Rhode Island,44009,499,51 +2020-06-03,Washington,Rhode Island,44009,499,51 +2020-06-04,Washington,Rhode Island,44009,499,51 +2020-06-05,Washington,Rhode Island,44009,499,51 +2020-06-06,Washington,Rhode Island,44009,499,51 +2020-06-07,Washington,Rhode Island,44009,499,51 +2020-06-08,Washington,Rhode Island,44009,513,61 +2020-06-09,Washington,Rhode Island,44009,513,61 +2020-06-10,Washington,Rhode Island,44009,513,61 +2020-06-11,Washington,Rhode Island,44009,513,61 +2020-06-12,Washington,Rhode Island,44009,513,61 +2020-06-13,Washington,Rhode Island,44009,513,61 +2020-06-14,Washington,Rhode Island,44009,513,61 +2020-06-15,Washington,Rhode Island,44009,516,61 +2020-06-16,Washington,Rhode Island,44009,516,61 +2020-06-17,Washington,Rhode Island,44009,516,61 +2020-06-18,Washington,Rhode Island,44009,516,61 +2020-06-19,Washington,Rhode Island,44009,516,61 +2020-06-20,Washington,Rhode Island,44009,516,61 +2020-06-21,Washington,Rhode Island,44009,516,61 +2020-06-22,Washington,Rhode Island,44009,523,61 +2020-06-23,Washington,Rhode Island,44009,523,61 +2020-06-24,Washington,Rhode Island,44009,523,61 +2020-06-25,Washington,Rhode Island,44009,523,61 +2020-06-26,Washington,Rhode Island,44009,523,63 +2020-06-27,Washington,Rhode Island,44009,523,63 +2020-06-28,Washington,Rhode Island,44009,523,63 +2020-06-29,Washington,Rhode Island,44009,532,63 +2020-06-30,Washington,Rhode Island,44009,532,63 +2020-07-01,Washington,Rhode Island,44009,532,63 +2020-07-02,Washington,Rhode Island,44009,532,63 +2020-07-03,Washington,Rhode Island,44009,538,63 +2020-07-04,Washington,Rhode Island,44009,538,63 +2020-07-05,Washington,Rhode Island,44009,538,63 +2020-07-06,Washington,Rhode Island,44009,538,63 +2020-07-07,Washington,Rhode Island,44009,538,63 +2020-07-08,Washington,Rhode Island,44009,538,63 +2020-07-09,Washington,Rhode Island,44009,538,63 +2020-03-19,Abbeville,South Carolina,45001,1,0 +2020-03-20,Abbeville,South Carolina,45001,1,0 +2020-03-21,Abbeville,South Carolina,45001,1,0 +2020-03-22,Abbeville,South Carolina,45001,1,0 +2020-03-23,Abbeville,South Carolina,45001,1,0 +2020-03-24,Abbeville,South Carolina,45001,1,0 +2020-03-25,Abbeville,South Carolina,45001,3,0 +2020-03-26,Abbeville,South Carolina,45001,4,0 +2020-03-27,Abbeville,South Carolina,45001,4,0 +2020-03-28,Abbeville,South Carolina,45001,4,0 +2020-03-29,Abbeville,South Carolina,45001,4,0 +2020-03-30,Abbeville,South Carolina,45001,3,0 +2020-03-31,Abbeville,South Carolina,45001,4,0 +2020-04-01,Abbeville,South Carolina,45001,4,0 +2020-04-02,Abbeville,South Carolina,45001,6,0 +2020-04-03,Abbeville,South Carolina,45001,6,0 +2020-04-04,Abbeville,South Carolina,45001,6,0 +2020-04-05,Abbeville,South Carolina,45001,6,0 +2020-04-06,Abbeville,South Carolina,45001,6,0 +2020-04-07,Abbeville,South Carolina,45001,5,0 +2020-04-08,Abbeville,South Carolina,45001,6,0 +2020-04-09,Abbeville,South Carolina,45001,7,0 +2020-04-10,Abbeville,South Carolina,45001,7,0 +2020-04-11,Abbeville,South Carolina,45001,9,0 +2020-04-12,Abbeville,South Carolina,45001,9,0 +2020-04-13,Abbeville,South Carolina,45001,9,0 +2020-04-14,Abbeville,South Carolina,45001,9,0 +2020-04-15,Abbeville,South Carolina,45001,10,0 +2020-04-16,Abbeville,South Carolina,45001,10,0 +2020-04-17,Abbeville,South Carolina,45001,10,0 +2020-04-18,Abbeville,South Carolina,45001,15,0 +2020-04-19,Abbeville,South Carolina,45001,17,0 +2020-04-20,Abbeville,South Carolina,45001,17,0 +2020-04-21,Abbeville,South Carolina,45001,18,0 +2020-04-22,Abbeville,South Carolina,45001,22,0 +2020-04-23,Abbeville,South Carolina,45001,23,0 +2020-04-24,Abbeville,South Carolina,45001,24,0 +2020-04-25,Abbeville,South Carolina,45001,24,0 +2020-04-26,Abbeville,South Carolina,45001,27,0 +2020-04-27,Abbeville,South Carolina,45001,29,0 +2020-04-28,Abbeville,South Carolina,45001,29,0 +2020-04-29,Abbeville,South Carolina,45001,29,0 +2020-04-30,Abbeville,South Carolina,45001,31,0 +2020-05-01,Abbeville,South Carolina,45001,31,0 +2020-05-02,Abbeville,South Carolina,45001,31,0 +2020-05-03,Abbeville,South Carolina,45001,33,0 +2020-05-04,Abbeville,South Carolina,45001,33,0 +2020-05-05,Abbeville,South Carolina,45001,33,0 +2020-05-06,Abbeville,South Carolina,45001,33,0 +2020-05-07,Abbeville,South Carolina,45001,34,0 +2020-05-08,Abbeville,South Carolina,45001,34,0 +2020-05-09,Abbeville,South Carolina,45001,34,0 +2020-05-10,Abbeville,South Carolina,45001,34,0 +2020-05-11,Abbeville,South Carolina,45001,34,0 +2020-05-12,Abbeville,South Carolina,45001,34,0 +2020-05-13,Abbeville,South Carolina,45001,34,0 +2020-05-14,Abbeville,South Carolina,45001,34,0 +2020-05-15,Abbeville,South Carolina,45001,34,0 +2020-05-16,Abbeville,South Carolina,45001,34,0 +2020-05-17,Abbeville,South Carolina,45001,35,0 +2020-05-18,Abbeville,South Carolina,45001,35,0 +2020-05-19,Abbeville,South Carolina,45001,36,0 +2020-05-20,Abbeville,South Carolina,45001,36,0 +2020-05-21,Abbeville,South Carolina,45001,36,0 +2020-05-22,Abbeville,South Carolina,45001,36,0 +2020-05-23,Abbeville,South Carolina,45001,35,0 +2020-05-24,Abbeville,South Carolina,45001,35,0 +2020-05-25,Abbeville,South Carolina,45001,35,0 +2020-05-26,Abbeville,South Carolina,45001,35,0 +2020-05-27,Abbeville,South Carolina,45001,35,0 +2020-05-28,Abbeville,South Carolina,45001,37,0 +2020-05-29,Abbeville,South Carolina,45001,39,0 +2020-05-30,Abbeville,South Carolina,45001,39,0 +2020-05-31,Abbeville,South Carolina,45001,42,0 +2020-06-01,Abbeville,South Carolina,45001,44,0 +2020-06-02,Abbeville,South Carolina,45001,46,0 +2020-06-03,Abbeville,South Carolina,45001,46,0 +2020-06-04,Abbeville,South Carolina,45001,47,0 +2020-06-05,Abbeville,South Carolina,45001,47,0 +2020-06-06,Abbeville,South Carolina,45001,49,0 +2020-06-07,Abbeville,South Carolina,45001,51,0 +2020-06-08,Abbeville,South Carolina,45001,58,0 +2020-06-09,Abbeville,South Carolina,45001,60,0 +2020-06-10,Abbeville,South Carolina,45001,60,0 +2020-06-11,Abbeville,South Carolina,45001,63,0 +2020-06-12,Abbeville,South Carolina,45001,62,0 +2020-06-13,Abbeville,South Carolina,45001,63,0 +2020-06-14,Abbeville,South Carolina,45001,67,0 +2020-06-15,Abbeville,South Carolina,45001,70,0 +2020-06-16,Abbeville,South Carolina,45001,73,0 +2020-06-17,Abbeville,South Carolina,45001,73,0 +2020-06-18,Abbeville,South Carolina,45001,73,0 +2020-06-19,Abbeville,South Carolina,45001,73,0 +2020-06-20,Abbeville,South Carolina,45001,86,0 +2020-06-21,Abbeville,South Carolina,45001,88,0 +2020-06-22,Abbeville,South Carolina,45001,87,0 +2020-06-23,Abbeville,South Carolina,45001,86,0 +2020-06-24,Abbeville,South Carolina,45001,91,0 +2020-06-25,Abbeville,South Carolina,45001,99,0 +2020-06-26,Abbeville,South Carolina,45001,100,0 +2020-06-27,Abbeville,South Carolina,45001,103,0 +2020-06-28,Abbeville,South Carolina,45001,103,0 +2020-06-29,Abbeville,South Carolina,45001,106,0 +2020-06-30,Abbeville,South Carolina,45001,113,0 +2020-07-01,Abbeville,South Carolina,45001,113,0 +2020-07-02,Abbeville,South Carolina,45001,119,0 +2020-07-03,Abbeville,South Carolina,45001,118,0 +2020-07-04,Abbeville,South Carolina,45001,119,0 +2020-07-05,Abbeville,South Carolina,45001,124,0 +2020-07-06,Abbeville,South Carolina,45001,135,0 +2020-07-07,Abbeville,South Carolina,45001,134,1 +2020-07-08,Abbeville,South Carolina,45001,137,1 +2020-07-09,Abbeville,South Carolina,45001,138,1 +2020-03-20,Aiken,South Carolina,45003,1,0 +2020-03-21,Aiken,South Carolina,45003,1,0 +2020-03-22,Aiken,South Carolina,45003,1,0 +2020-03-23,Aiken,South Carolina,45003,1,0 +2020-03-24,Aiken,South Carolina,45003,2,0 +2020-03-25,Aiken,South Carolina,45003,2,0 +2020-03-26,Aiken,South Carolina,45003,4,0 +2020-03-27,Aiken,South Carolina,45003,6,0 +2020-03-28,Aiken,South Carolina,45003,7,0 +2020-03-29,Aiken,South Carolina,45003,9,0 +2020-03-30,Aiken,South Carolina,45003,9,0 +2020-03-31,Aiken,South Carolina,45003,13,1 +2020-04-01,Aiken,South Carolina,45003,18,1 +2020-04-02,Aiken,South Carolina,45003,22,1 +2020-04-03,Aiken,South Carolina,45003,22,1 +2020-04-04,Aiken,South Carolina,45003,24,1 +2020-04-05,Aiken,South Carolina,45003,27,1 +2020-04-06,Aiken,South Carolina,45003,27,1 +2020-04-07,Aiken,South Carolina,45003,28,1 +2020-04-08,Aiken,South Carolina,45003,32,1 +2020-04-09,Aiken,South Carolina,45003,42,1 +2020-04-10,Aiken,South Carolina,45003,48,1 +2020-04-11,Aiken,South Carolina,45003,50,1 +2020-04-12,Aiken,South Carolina,45003,50,1 +2020-04-13,Aiken,South Carolina,45003,51,2 +2020-04-14,Aiken,South Carolina,45003,60,3 +2020-04-15,Aiken,South Carolina,45003,60,3 +2020-04-16,Aiken,South Carolina,45003,63,3 +2020-04-17,Aiken,South Carolina,45003,66,3 +2020-04-18,Aiken,South Carolina,45003,67,4 +2020-04-19,Aiken,South Carolina,45003,69,4 +2020-04-20,Aiken,South Carolina,45003,70,4 +2020-04-21,Aiken,South Carolina,45003,70,4 +2020-04-22,Aiken,South Carolina,45003,82,4 +2020-04-23,Aiken,South Carolina,45003,84,5 +2020-04-24,Aiken,South Carolina,45003,86,6 +2020-04-25,Aiken,South Carolina,45003,89,6 +2020-04-26,Aiken,South Carolina,45003,89,6 +2020-04-27,Aiken,South Carolina,45003,92,6 +2020-04-28,Aiken,South Carolina,45003,94,6 +2020-04-29,Aiken,South Carolina,45003,97,6 +2020-04-30,Aiken,South Carolina,45003,99,6 +2020-05-01,Aiken,South Carolina,45003,101,6 +2020-05-02,Aiken,South Carolina,45003,105,6 +2020-05-03,Aiken,South Carolina,45003,108,6 +2020-05-04,Aiken,South Carolina,45003,108,6 +2020-05-05,Aiken,South Carolina,45003,108,6 +2020-05-06,Aiken,South Carolina,45003,108,6 +2020-05-07,Aiken,South Carolina,45003,109,6 +2020-05-08,Aiken,South Carolina,45003,112,6 +2020-05-09,Aiken,South Carolina,45003,116,6 +2020-05-10,Aiken,South Carolina,45003,118,6 +2020-05-11,Aiken,South Carolina,45003,119,6 +2020-05-12,Aiken,South Carolina,45003,123,7 +2020-05-13,Aiken,South Carolina,45003,132,7 +2020-05-14,Aiken,South Carolina,45003,135,7 +2020-05-15,Aiken,South Carolina,45003,137,7 +2020-05-16,Aiken,South Carolina,45003,150,7 +2020-05-17,Aiken,South Carolina,45003,154,7 +2020-05-18,Aiken,South Carolina,45003,155,7 +2020-05-19,Aiken,South Carolina,45003,156,7 +2020-05-20,Aiken,South Carolina,45003,160,7 +2020-05-21,Aiken,South Carolina,45003,161,7 +2020-05-22,Aiken,South Carolina,45003,166,7 +2020-05-23,Aiken,South Carolina,45003,169,7 +2020-05-24,Aiken,South Carolina,45003,173,7 +2020-05-25,Aiken,South Carolina,45003,178,7 +2020-05-26,Aiken,South Carolina,45003,181,7 +2020-05-27,Aiken,South Carolina,45003,184,7 +2020-05-28,Aiken,South Carolina,45003,189,7 +2020-05-29,Aiken,South Carolina,45003,191,7 +2020-05-30,Aiken,South Carolina,45003,194,7 +2020-05-31,Aiken,South Carolina,45003,197,7 +2020-06-01,Aiken,South Carolina,45003,206,7 +2020-06-02,Aiken,South Carolina,45003,208,7 +2020-06-03,Aiken,South Carolina,45003,210,8 +2020-06-04,Aiken,South Carolina,45003,215,8 +2020-06-05,Aiken,South Carolina,45003,216,8 +2020-06-06,Aiken,South Carolina,45003,207,8 +2020-06-07,Aiken,South Carolina,45003,208,8 +2020-06-08,Aiken,South Carolina,45003,212,8 +2020-06-09,Aiken,South Carolina,45003,213,8 +2020-06-10,Aiken,South Carolina,45003,216,8 +2020-06-11,Aiken,South Carolina,45003,222,8 +2020-06-12,Aiken,South Carolina,45003,225,9 +2020-06-13,Aiken,South Carolina,45003,228,9 +2020-06-14,Aiken,South Carolina,45003,232,9 +2020-06-15,Aiken,South Carolina,45003,234,9 +2020-06-16,Aiken,South Carolina,45003,240,9 +2020-06-17,Aiken,South Carolina,45003,246,9 +2020-06-18,Aiken,South Carolina,45003,256,9 +2020-06-19,Aiken,South Carolina,45003,261,9 +2020-06-20,Aiken,South Carolina,45003,267,9 +2020-06-21,Aiken,South Carolina,45003,274,9 +2020-06-22,Aiken,South Carolina,45003,279,9 +2020-06-23,Aiken,South Carolina,45003,281,9 +2020-06-24,Aiken,South Carolina,45003,302,9 +2020-06-25,Aiken,South Carolina,45003,314,9 +2020-06-26,Aiken,South Carolina,45003,325,9 +2020-06-27,Aiken,South Carolina,45003,335,9 +2020-06-28,Aiken,South Carolina,45003,345,9 +2020-06-29,Aiken,South Carolina,45003,358,9 +2020-06-30,Aiken,South Carolina,45003,387,10 +2020-07-01,Aiken,South Carolina,45003,406,10 +2020-07-02,Aiken,South Carolina,45003,434,10 +2020-07-03,Aiken,South Carolina,45003,451,10 +2020-07-04,Aiken,South Carolina,45003,488,10 +2020-07-05,Aiken,South Carolina,45003,507,10 +2020-07-06,Aiken,South Carolina,45003,516,10 +2020-07-07,Aiken,South Carolina,45003,530,11 +2020-07-08,Aiken,South Carolina,45003,545,11 +2020-07-09,Aiken,South Carolina,45003,575,11 +2020-04-01,Allendale,South Carolina,45005,1,0 +2020-04-02,Allendale,South Carolina,45005,1,0 +2020-04-03,Allendale,South Carolina,45005,1,0 +2020-04-04,Allendale,South Carolina,45005,2,0 +2020-04-05,Allendale,South Carolina,45005,2,0 +2020-04-06,Allendale,South Carolina,45005,2,0 +2020-04-07,Allendale,South Carolina,45005,2,0 +2020-04-08,Allendale,South Carolina,45005,2,0 +2020-04-09,Allendale,South Carolina,45005,2,0 +2020-04-10,Allendale,South Carolina,45005,4,0 +2020-04-11,Allendale,South Carolina,45005,4,0 +2020-04-12,Allendale,South Carolina,45005,5,0 +2020-04-13,Allendale,South Carolina,45005,5,0 +2020-04-14,Allendale,South Carolina,45005,5,0 +2020-04-15,Allendale,South Carolina,45005,5,0 +2020-04-16,Allendale,South Carolina,45005,5,0 +2020-04-17,Allendale,South Carolina,45005,6,0 +2020-04-18,Allendale,South Carolina,45005,6,0 +2020-04-19,Allendale,South Carolina,45005,6,0 +2020-04-20,Allendale,South Carolina,45005,6,0 +2020-04-21,Allendale,South Carolina,45005,6,0 +2020-04-22,Allendale,South Carolina,45005,6,0 +2020-04-23,Allendale,South Carolina,45005,7,1 +2020-04-24,Allendale,South Carolina,45005,8,1 +2020-04-25,Allendale,South Carolina,45005,8,1 +2020-04-26,Allendale,South Carolina,45005,8,1 +2020-04-27,Allendale,South Carolina,45005,8,1 +2020-04-28,Allendale,South Carolina,45005,10,1 +2020-04-29,Allendale,South Carolina,45005,10,1 +2020-04-30,Allendale,South Carolina,45005,10,1 +2020-05-01,Allendale,South Carolina,45005,11,1 +2020-05-02,Allendale,South Carolina,45005,11,1 +2020-05-03,Allendale,South Carolina,45005,12,1 +2020-05-04,Allendale,South Carolina,45005,14,1 +2020-05-05,Allendale,South Carolina,45005,18,1 +2020-05-06,Allendale,South Carolina,45005,18,2 +2020-05-07,Allendale,South Carolina,45005,19,3 +2020-05-08,Allendale,South Carolina,45005,23,3 +2020-05-09,Allendale,South Carolina,45005,24,3 +2020-05-10,Allendale,South Carolina,45005,25,3 +2020-05-11,Allendale,South Carolina,45005,26,3 +2020-05-12,Allendale,South Carolina,45005,27,3 +2020-05-13,Allendale,South Carolina,45005,29,3 +2020-05-14,Allendale,South Carolina,45005,29,3 +2020-05-15,Allendale,South Carolina,45005,30,3 +2020-05-16,Allendale,South Carolina,45005,31,3 +2020-05-17,Allendale,South Carolina,45005,33,3 +2020-05-18,Allendale,South Carolina,45005,33,3 +2020-05-19,Allendale,South Carolina,45005,33,3 +2020-05-20,Allendale,South Carolina,45005,33,3 +2020-05-21,Allendale,South Carolina,45005,34,3 +2020-05-22,Allendale,South Carolina,45005,34,3 +2020-05-23,Allendale,South Carolina,45005,34,3 +2020-05-24,Allendale,South Carolina,45005,34,3 +2020-05-25,Allendale,South Carolina,45005,34,3 +2020-05-26,Allendale,South Carolina,45005,34,3 +2020-05-27,Allendale,South Carolina,45005,34,3 +2020-05-28,Allendale,South Carolina,45005,34,3 +2020-05-29,Allendale,South Carolina,45005,34,3 +2020-05-30,Allendale,South Carolina,45005,34,3 +2020-05-31,Allendale,South Carolina,45005,35,3 +2020-06-01,Allendale,South Carolina,45005,38,3 +2020-06-02,Allendale,South Carolina,45005,38,3 +2020-06-03,Allendale,South Carolina,45005,39,3 +2020-06-04,Allendale,South Carolina,45005,40,3 +2020-06-05,Allendale,South Carolina,45005,39,3 +2020-06-06,Allendale,South Carolina,45005,39,3 +2020-06-07,Allendale,South Carolina,45005,39,3 +2020-06-08,Allendale,South Carolina,45005,39,3 +2020-06-09,Allendale,South Carolina,45005,39,3 +2020-06-10,Allendale,South Carolina,45005,39,3 +2020-06-11,Allendale,South Carolina,45005,40,3 +2020-06-12,Allendale,South Carolina,45005,40,3 +2020-06-13,Allendale,South Carolina,45005,40,3 +2020-06-14,Allendale,South Carolina,45005,40,3 +2020-06-15,Allendale,South Carolina,45005,40,3 +2020-06-16,Allendale,South Carolina,45005,41,3 +2020-06-17,Allendale,South Carolina,45005,41,3 +2020-06-18,Allendale,South Carolina,45005,41,3 +2020-06-19,Allendale,South Carolina,45005,45,3 +2020-06-20,Allendale,South Carolina,45005,45,3 +2020-06-21,Allendale,South Carolina,45005,45,3 +2020-06-22,Allendale,South Carolina,45005,46,3 +2020-06-23,Allendale,South Carolina,45005,46,3 +2020-06-24,Allendale,South Carolina,45005,46,3 +2020-06-25,Allendale,South Carolina,45005,47,3 +2020-06-26,Allendale,South Carolina,45005,47,3 +2020-06-27,Allendale,South Carolina,45005,48,3 +2020-06-28,Allendale,South Carolina,45005,48,3 +2020-06-29,Allendale,South Carolina,45005,48,3 +2020-06-30,Allendale,South Carolina,45005,48,3 +2020-07-01,Allendale,South Carolina,45005,50,3 +2020-07-02,Allendale,South Carolina,45005,58,3 +2020-07-03,Allendale,South Carolina,45005,58,3 +2020-07-04,Allendale,South Carolina,45005,58,3 +2020-07-05,Allendale,South Carolina,45005,61,3 +2020-07-06,Allendale,South Carolina,45005,64,3 +2020-07-07,Allendale,South Carolina,45005,64,3 +2020-07-08,Allendale,South Carolina,45005,64,3 +2020-07-09,Allendale,South Carolina,45005,73,3 +2020-03-15,Anderson,South Carolina,45007,2,0 +2020-03-16,Anderson,South Carolina,45007,2,0 +2020-03-17,Anderson,South Carolina,45007,2,0 +2020-03-18,Anderson,South Carolina,45007,2,0 +2020-03-19,Anderson,South Carolina,45007,3,0 +2020-03-20,Anderson,South Carolina,45007,6,0 +2020-03-21,Anderson,South Carolina,45007,10,0 +2020-03-22,Anderson,South Carolina,45007,10,0 +2020-03-23,Anderson,South Carolina,45007,15,0 +2020-03-24,Anderson,South Carolina,45007,16,0 +2020-03-25,Anderson,South Carolina,45007,19,0 +2020-03-26,Anderson,South Carolina,45007,21,0 +2020-03-27,Anderson,South Carolina,45007,21,0 +2020-03-28,Anderson,South Carolina,45007,24,0 +2020-03-29,Anderson,South Carolina,45007,29,0 +2020-03-30,Anderson,South Carolina,45007,31,1 +2020-03-31,Anderson,South Carolina,45007,39,1 +2020-04-01,Anderson,South Carolina,45007,47,2 +2020-04-02,Anderson,South Carolina,45007,57,3 +2020-04-03,Anderson,South Carolina,45007,62,3 +2020-04-04,Anderson,South Carolina,45007,68,3 +2020-04-05,Anderson,South Carolina,45007,69,3 +2020-04-06,Anderson,South Carolina,45007,72,4 +2020-04-07,Anderson,South Carolina,45007,75,4 +2020-04-08,Anderson,South Carolina,45007,85,4 +2020-04-09,Anderson,South Carolina,45007,96,5 +2020-04-10,Anderson,South Carolina,45007,100,5 +2020-04-11,Anderson,South Carolina,45007,102,5 +2020-04-12,Anderson,South Carolina,45007,106,5 +2020-04-13,Anderson,South Carolina,45007,109,5 +2020-04-14,Anderson,South Carolina,45007,111,5 +2020-04-15,Anderson,South Carolina,45007,114,5 +2020-04-16,Anderson,South Carolina,45007,119,5 +2020-04-17,Anderson,South Carolina,45007,127,5 +2020-04-18,Anderson,South Carolina,45007,133,5 +2020-04-19,Anderson,South Carolina,45007,132,5 +2020-04-20,Anderson,South Carolina,45007,134,5 +2020-04-21,Anderson,South Carolina,45007,132,5 +2020-04-22,Anderson,South Carolina,45007,135,5 +2020-04-23,Anderson,South Carolina,45007,137,6 +2020-04-24,Anderson,South Carolina,45007,140,6 +2020-04-25,Anderson,South Carolina,45007,138,6 +2020-04-26,Anderson,South Carolina,45007,145,6 +2020-04-27,Anderson,South Carolina,45007,149,6 +2020-04-28,Anderson,South Carolina,45007,152,6 +2020-04-29,Anderson,South Carolina,45007,157,6 +2020-04-30,Anderson,South Carolina,45007,160,8 +2020-05-01,Anderson,South Carolina,45007,164,8 +2020-05-02,Anderson,South Carolina,45007,169,8 +2020-05-03,Anderson,South Carolina,45007,171,8 +2020-05-04,Anderson,South Carolina,45007,171,8 +2020-05-05,Anderson,South Carolina,45007,172,8 +2020-05-06,Anderson,South Carolina,45007,173,8 +2020-05-07,Anderson,South Carolina,45007,182,8 +2020-05-08,Anderson,South Carolina,45007,181,8 +2020-05-09,Anderson,South Carolina,45007,184,8 +2020-05-10,Anderson,South Carolina,45007,185,8 +2020-05-11,Anderson,South Carolina,45007,186,8 +2020-05-12,Anderson,South Carolina,45007,188,8 +2020-05-13,Anderson,South Carolina,45007,191,8 +2020-05-14,Anderson,South Carolina,45007,201,8 +2020-05-15,Anderson,South Carolina,45007,202,8 +2020-05-16,Anderson,South Carolina,45007,206,8 +2020-05-17,Anderson,South Carolina,45007,207,8 +2020-05-18,Anderson,South Carolina,45007,206,8 +2020-05-19,Anderson,South Carolina,45007,211,8 +2020-05-20,Anderson,South Carolina,45007,213,8 +2020-05-21,Anderson,South Carolina,45007,217,8 +2020-05-22,Anderson,South Carolina,45007,219,8 +2020-05-23,Anderson,South Carolina,45007,218,8 +2020-05-24,Anderson,South Carolina,45007,218,8 +2020-05-25,Anderson,South Carolina,45007,218,8 +2020-05-26,Anderson,South Carolina,45007,221,8 +2020-05-27,Anderson,South Carolina,45007,222,8 +2020-05-28,Anderson,South Carolina,45007,226,8 +2020-05-29,Anderson,South Carolina,45007,234,8 +2020-05-30,Anderson,South Carolina,45007,234,8 +2020-05-31,Anderson,South Carolina,45007,239,9 +2020-06-01,Anderson,South Carolina,45007,241,9 +2020-06-02,Anderson,South Carolina,45007,244,9 +2020-06-03,Anderson,South Carolina,45007,247,9 +2020-06-04,Anderson,South Carolina,45007,261,9 +2020-06-05,Anderson,South Carolina,45007,263,9 +2020-06-06,Anderson,South Carolina,45007,269,9 +2020-06-07,Anderson,South Carolina,45007,279,9 +2020-06-08,Anderson,South Carolina,45007,280,9 +2020-06-09,Anderson,South Carolina,45007,289,9 +2020-06-10,Anderson,South Carolina,45007,287,9 +2020-06-11,Anderson,South Carolina,45007,295,9 +2020-06-12,Anderson,South Carolina,45007,306,9 +2020-06-13,Anderson,South Carolina,45007,316,9 +2020-06-14,Anderson,South Carolina,45007,341,9 +2020-06-15,Anderson,South Carolina,45007,347,9 +2020-06-16,Anderson,South Carolina,45007,352,9 +2020-06-17,Anderson,South Carolina,45007,361,10 +2020-06-18,Anderson,South Carolina,45007,375,10 +2020-06-19,Anderson,South Carolina,45007,400,10 +2020-06-20,Anderson,South Carolina,45007,423,10 +2020-06-21,Anderson,South Carolina,45007,441,10 +2020-06-22,Anderson,South Carolina,45007,461,10 +2020-06-23,Anderson,South Carolina,45007,483,10 +2020-06-24,Anderson,South Carolina,45007,505,10 +2020-06-25,Anderson,South Carolina,45007,508,10 +2020-06-26,Anderson,South Carolina,45007,525,10 +2020-06-27,Anderson,South Carolina,45007,552,10 +2020-06-28,Anderson,South Carolina,45007,563,10 +2020-06-29,Anderson,South Carolina,45007,578,11 +2020-06-30,Anderson,South Carolina,45007,608,11 +2020-07-01,Anderson,South Carolina,45007,635,11 +2020-07-02,Anderson,South Carolina,45007,676,11 +2020-07-03,Anderson,South Carolina,45007,742,12 +2020-07-04,Anderson,South Carolina,45007,761,12 +2020-07-05,Anderson,South Carolina,45007,777,12 +2020-07-06,Anderson,South Carolina,45007,798,12 +2020-07-07,Anderson,South Carolina,45007,824,15 +2020-07-08,Anderson,South Carolina,45007,886,15 +2020-07-09,Anderson,South Carolina,45007,908,16 +2020-03-31,Bamberg,South Carolina,45009,2,0 +2020-04-01,Bamberg,South Carolina,45009,4,0 +2020-04-02,Bamberg,South Carolina,45009,5,0 +2020-04-03,Bamberg,South Carolina,45009,5,0 +2020-04-04,Bamberg,South Carolina,45009,5,0 +2020-04-05,Bamberg,South Carolina,45009,5,0 +2020-04-06,Bamberg,South Carolina,45009,5,0 +2020-04-07,Bamberg,South Carolina,45009,6,0 +2020-04-08,Bamberg,South Carolina,45009,6,0 +2020-04-09,Bamberg,South Carolina,45009,6,0 +2020-04-10,Bamberg,South Carolina,45009,6,0 +2020-04-11,Bamberg,South Carolina,45009,7,0 +2020-04-12,Bamberg,South Carolina,45009,7,0 +2020-04-13,Bamberg,South Carolina,45009,7,0 +2020-04-14,Bamberg,South Carolina,45009,7,0 +2020-04-15,Bamberg,South Carolina,45009,7,0 +2020-04-16,Bamberg,South Carolina,45009,7,0 +2020-04-17,Bamberg,South Carolina,45009,7,0 +2020-04-18,Bamberg,South Carolina,45009,7,0 +2020-04-19,Bamberg,South Carolina,45009,7,0 +2020-04-20,Bamberg,South Carolina,45009,7,0 +2020-04-21,Bamberg,South Carolina,45009,7,0 +2020-04-22,Bamberg,South Carolina,45009,7,0 +2020-04-23,Bamberg,South Carolina,45009,7,0 +2020-04-24,Bamberg,South Carolina,45009,7,0 +2020-04-25,Bamberg,South Carolina,45009,7,0 +2020-04-26,Bamberg,South Carolina,45009,8,0 +2020-04-27,Bamberg,South Carolina,45009,8,0 +2020-04-28,Bamberg,South Carolina,45009,9,0 +2020-04-29,Bamberg,South Carolina,45009,9,0 +2020-04-30,Bamberg,South Carolina,45009,10,0 +2020-05-01,Bamberg,South Carolina,45009,10,0 +2020-05-02,Bamberg,South Carolina,45009,12,0 +2020-05-03,Bamberg,South Carolina,45009,12,0 +2020-05-04,Bamberg,South Carolina,45009,13,0 +2020-05-05,Bamberg,South Carolina,45009,13,0 +2020-05-06,Bamberg,South Carolina,45009,14,0 +2020-05-07,Bamberg,South Carolina,45009,14,0 +2020-05-08,Bamberg,South Carolina,45009,14,0 +2020-05-09,Bamberg,South Carolina,45009,15,0 +2020-05-10,Bamberg,South Carolina,45009,16,0 +2020-05-11,Bamberg,South Carolina,45009,16,0 +2020-05-12,Bamberg,South Carolina,45009,16,0 +2020-05-13,Bamberg,South Carolina,45009,16,0 +2020-05-14,Bamberg,South Carolina,45009,16,0 +2020-05-15,Bamberg,South Carolina,45009,16,0 +2020-05-16,Bamberg,South Carolina,45009,16,0 +2020-05-17,Bamberg,South Carolina,45009,17,0 +2020-05-18,Bamberg,South Carolina,45009,17,0 +2020-05-19,Bamberg,South Carolina,45009,18,0 +2020-05-20,Bamberg,South Carolina,45009,18,0 +2020-05-21,Bamberg,South Carolina,45009,20,0 +2020-05-22,Bamberg,South Carolina,45009,20,0 +2020-05-23,Bamberg,South Carolina,45009,20,0 +2020-05-24,Bamberg,South Carolina,45009,20,0 +2020-05-25,Bamberg,South Carolina,45009,21,0 +2020-05-26,Bamberg,South Carolina,45009,21,0 +2020-05-27,Bamberg,South Carolina,45009,21,0 +2020-05-28,Bamberg,South Carolina,45009,21,0 +2020-05-29,Bamberg,South Carolina,45009,21,0 +2020-05-30,Bamberg,South Carolina,45009,22,0 +2020-05-31,Bamberg,South Carolina,45009,22,0 +2020-06-01,Bamberg,South Carolina,45009,22,0 +2020-06-02,Bamberg,South Carolina,45009,23,0 +2020-06-03,Bamberg,South Carolina,45009,26,0 +2020-06-04,Bamberg,South Carolina,45009,30,0 +2020-06-05,Bamberg,South Carolina,45009,33,0 +2020-06-06,Bamberg,South Carolina,45009,32,0 +2020-06-07,Bamberg,South Carolina,45009,36,0 +2020-06-08,Bamberg,South Carolina,45009,36,0 +2020-06-09,Bamberg,South Carolina,45009,36,0 +2020-06-10,Bamberg,South Carolina,45009,36,0 +2020-06-11,Bamberg,South Carolina,45009,39,0 +2020-06-12,Bamberg,South Carolina,45009,40,0 +2020-06-13,Bamberg,South Carolina,45009,41,0 +2020-06-14,Bamberg,South Carolina,45009,45,0 +2020-06-15,Bamberg,South Carolina,45009,48,0 +2020-06-16,Bamberg,South Carolina,45009,50,0 +2020-06-17,Bamberg,South Carolina,45009,50,0 +2020-06-18,Bamberg,South Carolina,45009,53,0 +2020-06-19,Bamberg,South Carolina,45009,54,0 +2020-06-20,Bamberg,South Carolina,45009,60,0 +2020-06-21,Bamberg,South Carolina,45009,66,0 +2020-06-22,Bamberg,South Carolina,45009,66,0 +2020-06-23,Bamberg,South Carolina,45009,67,0 +2020-06-24,Bamberg,South Carolina,45009,76,0 +2020-06-25,Bamberg,South Carolina,45009,79,0 +2020-06-26,Bamberg,South Carolina,45009,83,0 +2020-06-27,Bamberg,South Carolina,45009,84,1 +2020-06-28,Bamberg,South Carolina,45009,91,1 +2020-06-29,Bamberg,South Carolina,45009,103,1 +2020-06-30,Bamberg,South Carolina,45009,113,1 +2020-07-01,Bamberg,South Carolina,45009,117,1 +2020-07-02,Bamberg,South Carolina,45009,130,1 +2020-07-03,Bamberg,South Carolina,45009,140,1 +2020-07-04,Bamberg,South Carolina,45009,144,1 +2020-07-05,Bamberg,South Carolina,45009,147,1 +2020-07-06,Bamberg,South Carolina,45009,148,1 +2020-07-07,Bamberg,South Carolina,45009,151,1 +2020-07-08,Bamberg,South Carolina,45009,154,1 +2020-07-09,Bamberg,South Carolina,45009,158,1 +2020-03-30,Barnwell,South Carolina,45011,1,0 +2020-03-31,Barnwell,South Carolina,45011,1,0 +2020-04-01,Barnwell,South Carolina,45011,2,0 +2020-04-02,Barnwell,South Carolina,45011,2,0 +2020-04-03,Barnwell,South Carolina,45011,2,0 +2020-04-04,Barnwell,South Carolina,45011,2,0 +2020-04-05,Barnwell,South Carolina,45011,3,0 +2020-04-06,Barnwell,South Carolina,45011,3,0 +2020-04-07,Barnwell,South Carolina,45011,3,0 +2020-04-08,Barnwell,South Carolina,45011,3,0 +2020-04-09,Barnwell,South Carolina,45011,4,0 +2020-04-10,Barnwell,South Carolina,45011,5,0 +2020-04-11,Barnwell,South Carolina,45011,5,0 +2020-04-12,Barnwell,South Carolina,45011,5,0 +2020-04-13,Barnwell,South Carolina,45011,5,0 +2020-04-14,Barnwell,South Carolina,45011,5,0 +2020-04-15,Barnwell,South Carolina,45011,5,0 +2020-04-16,Barnwell,South Carolina,45011,5,0 +2020-04-17,Barnwell,South Carolina,45011,5,0 +2020-04-18,Barnwell,South Carolina,45011,5,0 +2020-04-19,Barnwell,South Carolina,45011,5,0 +2020-04-20,Barnwell,South Carolina,45011,6,0 +2020-04-21,Barnwell,South Carolina,45011,6,0 +2020-04-22,Barnwell,South Carolina,45011,8,0 +2020-04-23,Barnwell,South Carolina,45011,10,0 +2020-04-24,Barnwell,South Carolina,45011,10,0 +2020-04-25,Barnwell,South Carolina,45011,14,0 +2020-04-26,Barnwell,South Carolina,45011,15,0 +2020-04-27,Barnwell,South Carolina,45011,15,0 +2020-04-28,Barnwell,South Carolina,45011,17,0 +2020-04-29,Barnwell,South Carolina,45011,17,0 +2020-04-30,Barnwell,South Carolina,45011,20,0 +2020-05-01,Barnwell,South Carolina,45011,21,0 +2020-05-02,Barnwell,South Carolina,45011,24,0 +2020-05-03,Barnwell,South Carolina,45011,25,0 +2020-05-04,Barnwell,South Carolina,45011,25,0 +2020-05-05,Barnwell,South Carolina,45011,27,0 +2020-05-06,Barnwell,South Carolina,45011,28,0 +2020-05-07,Barnwell,South Carolina,45011,29,0 +2020-05-08,Barnwell,South Carolina,45011,32,0 +2020-05-09,Barnwell,South Carolina,45011,33,0 +2020-05-10,Barnwell,South Carolina,45011,33,0 +2020-05-11,Barnwell,South Carolina,45011,33,0 +2020-05-12,Barnwell,South Carolina,45011,35,0 +2020-05-13,Barnwell,South Carolina,45011,36,0 +2020-05-14,Barnwell,South Carolina,45011,36,0 +2020-05-15,Barnwell,South Carolina,45011,39,1 +2020-05-16,Barnwell,South Carolina,45011,40,1 +2020-05-17,Barnwell,South Carolina,45011,40,1 +2020-05-18,Barnwell,South Carolina,45011,40,1 +2020-05-19,Barnwell,South Carolina,45011,41,1 +2020-05-20,Barnwell,South Carolina,45011,41,1 +2020-05-21,Barnwell,South Carolina,45011,41,1 +2020-05-22,Barnwell,South Carolina,45011,41,1 +2020-05-23,Barnwell,South Carolina,45011,43,1 +2020-05-24,Barnwell,South Carolina,45011,43,1 +2020-05-25,Barnwell,South Carolina,45011,43,1 +2020-05-26,Barnwell,South Carolina,45011,43,1 +2020-05-27,Barnwell,South Carolina,45011,43,1 +2020-05-28,Barnwell,South Carolina,45011,44,1 +2020-05-29,Barnwell,South Carolina,45011,44,1 +2020-05-30,Barnwell,South Carolina,45011,45,1 +2020-05-31,Barnwell,South Carolina,45011,46,1 +2020-06-01,Barnwell,South Carolina,45011,48,1 +2020-06-02,Barnwell,South Carolina,45011,48,1 +2020-06-03,Barnwell,South Carolina,45011,49,1 +2020-06-04,Barnwell,South Carolina,45011,50,1 +2020-06-05,Barnwell,South Carolina,45011,52,1 +2020-06-06,Barnwell,South Carolina,45011,54,1 +2020-06-07,Barnwell,South Carolina,45011,54,1 +2020-06-08,Barnwell,South Carolina,45011,54,1 +2020-06-09,Barnwell,South Carolina,45011,54,1 +2020-06-10,Barnwell,South Carolina,45011,54,1 +2020-06-11,Barnwell,South Carolina,45011,54,1 +2020-06-12,Barnwell,South Carolina,45011,54,1 +2020-06-13,Barnwell,South Carolina,45011,54,1 +2020-06-14,Barnwell,South Carolina,45011,54,1 +2020-06-15,Barnwell,South Carolina,45011,55,1 +2020-06-16,Barnwell,South Carolina,45011,56,1 +2020-06-17,Barnwell,South Carolina,45011,56,1 +2020-06-18,Barnwell,South Carolina,45011,56,1 +2020-06-19,Barnwell,South Carolina,45011,57,1 +2020-06-20,Barnwell,South Carolina,45011,59,1 +2020-06-21,Barnwell,South Carolina,45011,59,1 +2020-06-22,Barnwell,South Carolina,45011,60,1 +2020-06-23,Barnwell,South Carolina,45011,62,1 +2020-06-24,Barnwell,South Carolina,45011,66,1 +2020-06-25,Barnwell,South Carolina,45011,67,1 +2020-06-26,Barnwell,South Carolina,45011,69,1 +2020-06-27,Barnwell,South Carolina,45011,73,1 +2020-06-28,Barnwell,South Carolina,45011,75,1 +2020-06-29,Barnwell,South Carolina,45011,77,1 +2020-06-30,Barnwell,South Carolina,45011,79,1 +2020-07-01,Barnwell,South Carolina,45011,82,1 +2020-07-02,Barnwell,South Carolina,45011,86,1 +2020-07-03,Barnwell,South Carolina,45011,88,1 +2020-07-04,Barnwell,South Carolina,45011,91,1 +2020-07-05,Barnwell,South Carolina,45011,95,1 +2020-07-06,Barnwell,South Carolina,45011,99,1 +2020-07-07,Barnwell,South Carolina,45011,101,1 +2020-07-08,Barnwell,South Carolina,45011,101,1 +2020-07-09,Barnwell,South Carolina,45011,106,1 +2020-03-14,Beaufort,South Carolina,45013,3,0 +2020-03-15,Beaufort,South Carolina,45013,3,0 +2020-03-16,Beaufort,South Carolina,45013,3,0 +2020-03-17,Beaufort,South Carolina,45013,4,0 +2020-03-18,Beaufort,South Carolina,45013,6,0 +2020-03-19,Beaufort,South Carolina,45013,7,0 +2020-03-20,Beaufort,South Carolina,45013,8,0 +2020-03-21,Beaufort,South Carolina,45013,12,0 +2020-03-22,Beaufort,South Carolina,45013,14,0 +2020-03-23,Beaufort,South Carolina,45013,21,0 +2020-03-24,Beaufort,South Carolina,45013,22,0 +2020-03-25,Beaufort,South Carolina,45013,26,0 +2020-03-26,Beaufort,South Carolina,45013,29,0 +2020-03-27,Beaufort,South Carolina,45013,35,0 +2020-03-28,Beaufort,South Carolina,45013,39,0 +2020-03-29,Beaufort,South Carolina,45013,50,0 +2020-03-30,Beaufort,South Carolina,45013,74,1 +2020-03-31,Beaufort,South Carolina,45013,91,1 +2020-04-01,Beaufort,South Carolina,45013,101,2 +2020-04-02,Beaufort,South Carolina,45013,130,2 +2020-04-03,Beaufort,South Carolina,45013,131,2 +2020-04-04,Beaufort,South Carolina,45013,148,3 +2020-04-05,Beaufort,South Carolina,45013,156,4 +2020-04-06,Beaufort,South Carolina,45013,163,4 +2020-04-07,Beaufort,South Carolina,45013,169,4 +2020-04-08,Beaufort,South Carolina,45013,174,4 +2020-04-09,Beaufort,South Carolina,45013,184,5 +2020-04-10,Beaufort,South Carolina,45013,186,5 +2020-04-11,Beaufort,South Carolina,45013,191,6 +2020-04-12,Beaufort,South Carolina,45013,194,6 +2020-04-13,Beaufort,South Carolina,45013,194,7 +2020-04-14,Beaufort,South Carolina,45013,198,7 +2020-04-15,Beaufort,South Carolina,45013,205,7 +2020-04-16,Beaufort,South Carolina,45013,206,6 +2020-04-17,Beaufort,South Carolina,45013,214,6 +2020-04-18,Beaufort,South Carolina,45013,220,6 +2020-04-19,Beaufort,South Carolina,45013,225,6 +2020-04-20,Beaufort,South Carolina,45013,225,6 +2020-04-21,Beaufort,South Carolina,45013,233,9 +2020-04-22,Beaufort,South Carolina,45013,236,9 +2020-04-23,Beaufort,South Carolina,45013,241,9 +2020-04-24,Beaufort,South Carolina,45013,244,10 +2020-04-25,Beaufort,South Carolina,45013,253,10 +2020-04-26,Beaufort,South Carolina,45013,255,10 +2020-04-27,Beaufort,South Carolina,45013,254,10 +2020-04-28,Beaufort,South Carolina,45013,259,10 +2020-04-29,Beaufort,South Carolina,45013,262,11 +2020-04-30,Beaufort,South Carolina,45013,263,11 +2020-05-01,Beaufort,South Carolina,45013,269,11 +2020-05-02,Beaufort,South Carolina,45013,269,11 +2020-05-03,Beaufort,South Carolina,45013,270,11 +2020-05-04,Beaufort,South Carolina,45013,269,11 +2020-05-05,Beaufort,South Carolina,45013,270,12 +2020-05-06,Beaufort,South Carolina,45013,269,12 +2020-05-07,Beaufort,South Carolina,45013,269,12 +2020-05-08,Beaufort,South Carolina,45013,273,12 +2020-05-09,Beaufort,South Carolina,45013,273,12 +2020-05-10,Beaufort,South Carolina,45013,279,12 +2020-05-11,Beaufort,South Carolina,45013,280,12 +2020-05-12,Beaufort,South Carolina,45013,282,12 +2020-05-13,Beaufort,South Carolina,45013,282,12 +2020-05-14,Beaufort,South Carolina,45013,284,12 +2020-05-15,Beaufort,South Carolina,45013,288,12 +2020-05-16,Beaufort,South Carolina,45013,291,12 +2020-05-17,Beaufort,South Carolina,45013,292,12 +2020-05-18,Beaufort,South Carolina,45013,294,12 +2020-05-19,Beaufort,South Carolina,45013,299,12 +2020-05-20,Beaufort,South Carolina,45013,304,12 +2020-05-21,Beaufort,South Carolina,45013,306,12 +2020-05-22,Beaufort,South Carolina,45013,314,12 +2020-05-23,Beaufort,South Carolina,45013,332,12 +2020-05-24,Beaufort,South Carolina,45013,335,12 +2020-05-25,Beaufort,South Carolina,45013,336,12 +2020-05-26,Beaufort,South Carolina,45013,342,12 +2020-05-27,Beaufort,South Carolina,45013,346,14 +2020-05-28,Beaufort,South Carolina,45013,351,14 +2020-05-29,Beaufort,South Carolina,45013,361,14 +2020-05-30,Beaufort,South Carolina,45013,376,14 +2020-05-31,Beaufort,South Carolina,45013,385,14 +2020-06-01,Beaufort,South Carolina,45013,389,14 +2020-06-02,Beaufort,South Carolina,45013,398,14 +2020-06-03,Beaufort,South Carolina,45013,401,14 +2020-06-04,Beaufort,South Carolina,45013,406,14 +2020-06-05,Beaufort,South Carolina,45013,417,14 +2020-06-06,Beaufort,South Carolina,45013,421,14 +2020-06-07,Beaufort,South Carolina,45013,430,14 +2020-06-08,Beaufort,South Carolina,45013,444,14 +2020-06-09,Beaufort,South Carolina,45013,464,14 +2020-06-10,Beaufort,South Carolina,45013,483,14 +2020-06-11,Beaufort,South Carolina,45013,507,14 +2020-06-12,Beaufort,South Carolina,45013,540,14 +2020-06-13,Beaufort,South Carolina,45013,566,14 +2020-06-14,Beaufort,South Carolina,45013,590,14 +2020-06-15,Beaufort,South Carolina,45013,615,14 +2020-06-16,Beaufort,South Carolina,45013,647,14 +2020-06-17,Beaufort,South Carolina,45013,673,15 +2020-06-18,Beaufort,South Carolina,45013,721,15 +2020-06-19,Beaufort,South Carolina,45013,760,15 +2020-06-20,Beaufort,South Carolina,45013,816,15 +2020-06-21,Beaufort,South Carolina,45013,857,15 +2020-06-22,Beaufort,South Carolina,45013,885,15 +2020-06-23,Beaufort,South Carolina,45013,912,16 +2020-06-24,Beaufort,South Carolina,45013,951,17 +2020-06-25,Beaufort,South Carolina,45013,983,17 +2020-06-26,Beaufort,South Carolina,45013,1012,17 +2020-06-27,Beaufort,South Carolina,45013,1066,17 +2020-06-28,Beaufort,South Carolina,45013,1125,17 +2020-06-29,Beaufort,South Carolina,45013,1152,18 +2020-06-30,Beaufort,South Carolina,45013,1223,18 +2020-07-01,Beaufort,South Carolina,45013,1282,18 +2020-07-02,Beaufort,South Carolina,45013,1325,20 +2020-07-03,Beaufort,South Carolina,45013,1376,21 +2020-07-04,Beaufort,South Carolina,45013,1413,22 +2020-07-05,Beaufort,South Carolina,45013,1462,22 +2020-07-06,Beaufort,South Carolina,45013,1515,23 +2020-07-07,Beaufort,South Carolina,45013,1620,23 +2020-07-08,Beaufort,South Carolina,45013,1685,23 +2020-07-09,Beaufort,South Carolina,45013,1723,23 +2020-03-20,Berkeley,South Carolina,45015,1,0 +2020-03-21,Berkeley,South Carolina,45015,1,0 +2020-03-22,Berkeley,South Carolina,45015,2,0 +2020-03-23,Berkeley,South Carolina,45015,4,0 +2020-03-24,Berkeley,South Carolina,45015,4,0 +2020-03-25,Berkeley,South Carolina,45015,5,0 +2020-03-26,Berkeley,South Carolina,45015,8,0 +2020-03-27,Berkeley,South Carolina,45015,10,0 +2020-03-28,Berkeley,South Carolina,45015,13,0 +2020-03-29,Berkeley,South Carolina,45015,13,0 +2020-03-30,Berkeley,South Carolina,45015,14,0 +2020-03-31,Berkeley,South Carolina,45015,15,0 +2020-04-01,Berkeley,South Carolina,45015,18,0 +2020-04-02,Berkeley,South Carolina,45015,33,0 +2020-04-03,Berkeley,South Carolina,45015,42,0 +2020-04-04,Berkeley,South Carolina,45015,45,0 +2020-04-05,Berkeley,South Carolina,45015,46,0 +2020-04-06,Berkeley,South Carolina,45015,52,0 +2020-04-07,Berkeley,South Carolina,45015,55,0 +2020-04-08,Berkeley,South Carolina,45015,56,0 +2020-04-09,Berkeley,South Carolina,45015,61,0 +2020-04-10,Berkeley,South Carolina,45015,67,1 +2020-04-11,Berkeley,South Carolina,45015,67,1 +2020-04-12,Berkeley,South Carolina,45015,83,1 +2020-04-13,Berkeley,South Carolina,45015,90,1 +2020-04-14,Berkeley,South Carolina,45015,98,3 +2020-04-15,Berkeley,South Carolina,45015,101,3 +2020-04-16,Berkeley,South Carolina,45015,116,2 +2020-04-17,Berkeley,South Carolina,45015,123,3 +2020-04-18,Berkeley,South Carolina,45015,124,3 +2020-04-19,Berkeley,South Carolina,45015,132,3 +2020-04-20,Berkeley,South Carolina,45015,138,3 +2020-04-21,Berkeley,South Carolina,45015,142,5 +2020-04-22,Berkeley,South Carolina,45015,143,6 +2020-04-23,Berkeley,South Carolina,45015,152,6 +2020-04-24,Berkeley,South Carolina,45015,162,6 +2020-04-25,Berkeley,South Carolina,45015,181,8 +2020-04-26,Berkeley,South Carolina,45015,173,8 +2020-04-27,Berkeley,South Carolina,45015,171,8 +2020-04-28,Berkeley,South Carolina,45015,174,9 +2020-04-29,Berkeley,South Carolina,45015,174,10 +2020-04-30,Berkeley,South Carolina,45015,180,10 +2020-05-01,Berkeley,South Carolina,45015,183,10 +2020-05-02,Berkeley,South Carolina,45015,185,10 +2020-05-03,Berkeley,South Carolina,45015,186,11 +2020-05-04,Berkeley,South Carolina,45015,190,11 +2020-05-05,Berkeley,South Carolina,45015,188,14 +2020-05-06,Berkeley,South Carolina,45015,189,14 +2020-05-07,Berkeley,South Carolina,45015,189,14 +2020-05-08,Berkeley,South Carolina,45015,191,14 +2020-05-09,Berkeley,South Carolina,45015,192,15 +2020-05-10,Berkeley,South Carolina,45015,192,15 +2020-05-11,Berkeley,South Carolina,45015,195,15 +2020-05-12,Berkeley,South Carolina,45015,197,15 +2020-05-13,Berkeley,South Carolina,45015,198,15 +2020-05-14,Berkeley,South Carolina,45015,199,15 +2020-05-15,Berkeley,South Carolina,45015,201,15 +2020-05-16,Berkeley,South Carolina,45015,203,15 +2020-05-17,Berkeley,South Carolina,45015,201,15 +2020-05-18,Berkeley,South Carolina,45015,203,15 +2020-05-19,Berkeley,South Carolina,45015,203,15 +2020-05-20,Berkeley,South Carolina,45015,205,15 +2020-05-21,Berkeley,South Carolina,45015,209,15 +2020-05-22,Berkeley,South Carolina,45015,211,15 +2020-05-23,Berkeley,South Carolina,45015,214,15 +2020-05-24,Berkeley,South Carolina,45015,215,15 +2020-05-25,Berkeley,South Carolina,45015,218,15 +2020-05-26,Berkeley,South Carolina,45015,219,15 +2020-05-27,Berkeley,South Carolina,45015,219,15 +2020-05-28,Berkeley,South Carolina,45015,224,15 +2020-05-29,Berkeley,South Carolina,45015,228,16 +2020-05-30,Berkeley,South Carolina,45015,230,16 +2020-05-31,Berkeley,South Carolina,45015,233,16 +2020-06-01,Berkeley,South Carolina,45015,235,16 +2020-06-02,Berkeley,South Carolina,45015,242,16 +2020-06-03,Berkeley,South Carolina,45015,243,17 +2020-06-04,Berkeley,South Carolina,45015,253,17 +2020-06-05,Berkeley,South Carolina,45015,257,17 +2020-06-06,Berkeley,South Carolina,45015,263,17 +2020-06-07,Berkeley,South Carolina,45015,273,17 +2020-06-08,Berkeley,South Carolina,45015,282,18 +2020-06-09,Berkeley,South Carolina,45015,291,19 +2020-06-10,Berkeley,South Carolina,45015,315,19 +2020-06-11,Berkeley,South Carolina,45015,335,19 +2020-06-12,Berkeley,South Carolina,45015,346,19 +2020-06-13,Berkeley,South Carolina,45015,364,19 +2020-06-14,Berkeley,South Carolina,45015,386,19 +2020-06-15,Berkeley,South Carolina,45015,406,19 +2020-06-16,Berkeley,South Carolina,45015,427,19 +2020-06-17,Berkeley,South Carolina,45015,434,20 +2020-06-18,Berkeley,South Carolina,45015,458,20 +2020-06-19,Berkeley,South Carolina,45015,515,20 +2020-06-20,Berkeley,South Carolina,45015,563,20 +2020-06-21,Berkeley,South Carolina,45015,599,20 +2020-06-22,Berkeley,South Carolina,45015,644,20 +2020-06-23,Berkeley,South Carolina,45015,695,20 +2020-06-24,Berkeley,South Carolina,45015,740,20 +2020-06-25,Berkeley,South Carolina,45015,805,21 +2020-06-26,Berkeley,South Carolina,45015,854,21 +2020-06-27,Berkeley,South Carolina,45015,892,21 +2020-06-28,Berkeley,South Carolina,45015,949,21 +2020-06-29,Berkeley,South Carolina,45015,1007,21 +2020-06-30,Berkeley,South Carolina,45015,1069,22 +2020-07-01,Berkeley,South Carolina,45015,1170,23 +2020-07-02,Berkeley,South Carolina,45015,1278,23 +2020-07-03,Berkeley,South Carolina,45015,1392,23 +2020-07-04,Berkeley,South Carolina,45015,1467,24 +2020-07-05,Berkeley,South Carolina,45015,1540,24 +2020-07-06,Berkeley,South Carolina,45015,1654,24 +2020-07-07,Berkeley,South Carolina,45015,1703,24 +2020-07-08,Berkeley,South Carolina,45015,1783,24 +2020-07-09,Berkeley,South Carolina,45015,1908,24 +2020-03-17,Calhoun,South Carolina,45017,1,0 +2020-03-18,Calhoun,South Carolina,45017,1,0 +2020-03-19,Calhoun,South Carolina,45017,1,0 +2020-03-20,Calhoun,South Carolina,45017,1,0 +2020-03-21,Calhoun,South Carolina,45017,1,0 +2020-03-22,Calhoun,South Carolina,45017,1,0 +2020-03-23,Calhoun,South Carolina,45017,1,0 +2020-03-24,Calhoun,South Carolina,45017,1,0 +2020-03-25,Calhoun,South Carolina,45017,1,0 +2020-03-26,Calhoun,South Carolina,45017,1,0 +2020-03-27,Calhoun,South Carolina,45017,1,0 +2020-03-28,Calhoun,South Carolina,45017,1,0 +2020-03-29,Calhoun,South Carolina,45017,2,0 +2020-03-30,Calhoun,South Carolina,45017,2,0 +2020-03-31,Calhoun,South Carolina,45017,3,1 +2020-04-01,Calhoun,South Carolina,45017,3,1 +2020-04-02,Calhoun,South Carolina,45017,3,1 +2020-04-03,Calhoun,South Carolina,45017,3,1 +2020-04-04,Calhoun,South Carolina,45017,4,1 +2020-04-05,Calhoun,South Carolina,45017,5,1 +2020-04-06,Calhoun,South Carolina,45017,5,1 +2020-04-07,Calhoun,South Carolina,45017,5,1 +2020-04-08,Calhoun,South Carolina,45017,5,1 +2020-04-09,Calhoun,South Carolina,45017,6,1 +2020-04-10,Calhoun,South Carolina,45017,6,1 +2020-04-11,Calhoun,South Carolina,45017,6,1 +2020-04-12,Calhoun,South Carolina,45017,6,1 +2020-04-13,Calhoun,South Carolina,45017,6,1 +2020-04-14,Calhoun,South Carolina,45017,6,1 +2020-04-15,Calhoun,South Carolina,45017,5,1 +2020-04-16,Calhoun,South Carolina,45017,5,1 +2020-04-17,Calhoun,South Carolina,45017,6,1 +2020-04-18,Calhoun,South Carolina,45017,6,1 +2020-04-19,Calhoun,South Carolina,45017,6,1 +2020-04-20,Calhoun,South Carolina,45017,6,1 +2020-04-21,Calhoun,South Carolina,45017,6,1 +2020-04-22,Calhoun,South Carolina,45017,6,1 +2020-04-23,Calhoun,South Carolina,45017,6,1 +2020-04-24,Calhoun,South Carolina,45017,6,1 +2020-04-25,Calhoun,South Carolina,45017,6,1 +2020-04-26,Calhoun,South Carolina,45017,6,1 +2020-04-27,Calhoun,South Carolina,45017,6,1 +2020-04-28,Calhoun,South Carolina,45017,6,1 +2020-04-29,Calhoun,South Carolina,45017,6,1 +2020-04-30,Calhoun,South Carolina,45017,7,1 +2020-05-01,Calhoun,South Carolina,45017,7,1 +2020-05-02,Calhoun,South Carolina,45017,7,1 +2020-05-03,Calhoun,South Carolina,45017,7,1 +2020-05-04,Calhoun,South Carolina,45017,7,1 +2020-05-05,Calhoun,South Carolina,45017,7,1 +2020-05-06,Calhoun,South Carolina,45017,7,1 +2020-05-07,Calhoun,South Carolina,45017,7,1 +2020-05-08,Calhoun,South Carolina,45017,7,1 +2020-05-09,Calhoun,South Carolina,45017,8,1 +2020-05-10,Calhoun,South Carolina,45017,8,1 +2020-05-11,Calhoun,South Carolina,45017,8,1 +2020-05-12,Calhoun,South Carolina,45017,8,1 +2020-05-13,Calhoun,South Carolina,45017,9,1 +2020-05-14,Calhoun,South Carolina,45017,9,1 +2020-05-15,Calhoun,South Carolina,45017,9,1 +2020-05-16,Calhoun,South Carolina,45017,9,1 +2020-05-17,Calhoun,South Carolina,45017,9,1 +2020-05-18,Calhoun,South Carolina,45017,9,1 +2020-05-19,Calhoun,South Carolina,45017,9,1 +2020-05-20,Calhoun,South Carolina,45017,9,1 +2020-05-21,Calhoun,South Carolina,45017,9,1 +2020-05-22,Calhoun,South Carolina,45017,9,1 +2020-05-23,Calhoun,South Carolina,45017,9,1 +2020-05-24,Calhoun,South Carolina,45017,9,1 +2020-05-25,Calhoun,South Carolina,45017,9,1 +2020-05-26,Calhoun,South Carolina,45017,10,1 +2020-05-27,Calhoun,South Carolina,45017,10,1 +2020-05-28,Calhoun,South Carolina,45017,10,1 +2020-05-29,Calhoun,South Carolina,45017,11,1 +2020-05-30,Calhoun,South Carolina,45017,14,1 +2020-05-31,Calhoun,South Carolina,45017,15,1 +2020-06-01,Calhoun,South Carolina,45017,16,1 +2020-06-02,Calhoun,South Carolina,45017,15,1 +2020-06-03,Calhoun,South Carolina,45017,15,1 +2020-06-04,Calhoun,South Carolina,45017,18,1 +2020-06-05,Calhoun,South Carolina,45017,19,1 +2020-06-06,Calhoun,South Carolina,45017,20,1 +2020-06-07,Calhoun,South Carolina,45017,21,1 +2020-06-08,Calhoun,South Carolina,45017,22,1 +2020-06-09,Calhoun,South Carolina,45017,23,1 +2020-06-10,Calhoun,South Carolina,45017,23,1 +2020-06-11,Calhoun,South Carolina,45017,24,1 +2020-06-12,Calhoun,South Carolina,45017,27,1 +2020-06-13,Calhoun,South Carolina,45017,30,1 +2020-06-14,Calhoun,South Carolina,45017,33,1 +2020-06-15,Calhoun,South Carolina,45017,38,1 +2020-06-16,Calhoun,South Carolina,45017,46,1 +2020-06-17,Calhoun,South Carolina,45017,47,1 +2020-06-18,Calhoun,South Carolina,45017,48,1 +2020-06-19,Calhoun,South Carolina,45017,58,1 +2020-06-20,Calhoun,South Carolina,45017,62,1 +2020-06-21,Calhoun,South Carolina,45017,69,1 +2020-06-22,Calhoun,South Carolina,45017,73,1 +2020-06-23,Calhoun,South Carolina,45017,74,1 +2020-06-24,Calhoun,South Carolina,45017,74,1 +2020-06-25,Calhoun,South Carolina,45017,82,1 +2020-06-26,Calhoun,South Carolina,45017,79,1 +2020-06-27,Calhoun,South Carolina,45017,78,1 +2020-06-28,Calhoun,South Carolina,45017,82,1 +2020-06-29,Calhoun,South Carolina,45017,83,1 +2020-06-30,Calhoun,South Carolina,45017,87,1 +2020-07-01,Calhoun,South Carolina,45017,99,2 +2020-07-02,Calhoun,South Carolina,45017,99,2 +2020-07-03,Calhoun,South Carolina,45017,103,2 +2020-07-04,Calhoun,South Carolina,45017,105,2 +2020-07-05,Calhoun,South Carolina,45017,106,2 +2020-07-06,Calhoun,South Carolina,45017,107,2 +2020-07-07,Calhoun,South Carolina,45017,109,2 +2020-07-08,Calhoun,South Carolina,45017,114,2 +2020-07-09,Calhoun,South Carolina,45017,117,2 +2020-03-06,Charleston,South Carolina,45019,1,0 +2020-03-07,Charleston,South Carolina,45019,1,0 +2020-03-08,Charleston,South Carolina,45019,1,0 +2020-03-09,Charleston,South Carolina,45019,1,0 +2020-03-10,Charleston,South Carolina,45019,1,0 +2020-03-11,Charleston,South Carolina,45019,1,0 +2020-03-12,Charleston,South Carolina,45019,1,0 +2020-03-13,Charleston,South Carolina,45019,1,0 +2020-03-14,Charleston,South Carolina,45019,1,0 +2020-03-15,Charleston,South Carolina,45019,1,0 +2020-03-16,Charleston,South Carolina,45019,1,0 +2020-03-17,Charleston,South Carolina,45019,3,0 +2020-03-18,Charleston,South Carolina,45019,4,0 +2020-03-19,Charleston,South Carolina,45019,5,0 +2020-03-20,Charleston,South Carolina,45019,6,1 +2020-03-21,Charleston,South Carolina,45019,9,1 +2020-03-22,Charleston,South Carolina,45019,13,1 +2020-03-23,Charleston,South Carolina,45019,31,1 +2020-03-24,Charleston,South Carolina,45019,36,1 +2020-03-25,Charleston,South Carolina,45019,52,1 +2020-03-26,Charleston,South Carolina,45019,60,1 +2020-03-27,Charleston,South Carolina,45019,92,1 +2020-03-28,Charleston,South Carolina,45019,108,1 +2020-03-29,Charleston,South Carolina,45019,116,1 +2020-03-30,Charleston,South Carolina,45019,123,1 +2020-03-31,Charleston,South Carolina,45019,142,1 +2020-04-01,Charleston,South Carolina,45019,190,1 +2020-04-02,Charleston,South Carolina,45019,231,1 +2020-04-03,Charleston,South Carolina,45019,247,1 +2020-04-04,Charleston,South Carolina,45019,274,1 +2020-04-05,Charleston,South Carolina,45019,274,1 +2020-04-06,Charleston,South Carolina,45019,300,1 +2020-04-07,Charleston,South Carolina,45019,305,1 +2020-04-08,Charleston,South Carolina,45019,308,1 +2020-04-09,Charleston,South Carolina,45019,313,1 +2020-04-10,Charleston,South Carolina,45019,328,1 +2020-04-11,Charleston,South Carolina,45019,331,1 +2020-04-12,Charleston,South Carolina,45019,339,2 +2020-04-13,Charleston,South Carolina,45019,351,2 +2020-04-14,Charleston,South Carolina,45019,353,2 +2020-04-15,Charleston,South Carolina,45019,360,2 +2020-04-16,Charleston,South Carolina,45019,383,3 +2020-04-17,Charleston,South Carolina,45019,385,3 +2020-04-18,Charleston,South Carolina,45019,385,3 +2020-04-19,Charleston,South Carolina,45019,390,3 +2020-04-20,Charleston,South Carolina,45019,391,3 +2020-04-21,Charleston,South Carolina,45019,403,5 +2020-04-22,Charleston,South Carolina,45019,406,5 +2020-04-23,Charleston,South Carolina,45019,412,5 +2020-04-24,Charleston,South Carolina,45019,416,6 +2020-04-25,Charleston,South Carolina,45019,424,6 +2020-04-26,Charleston,South Carolina,45019,436,6 +2020-04-27,Charleston,South Carolina,45019,435,6 +2020-04-28,Charleston,South Carolina,45019,438,7 +2020-04-29,Charleston,South Carolina,45019,441,7 +2020-04-30,Charleston,South Carolina,45019,444,7 +2020-05-01,Charleston,South Carolina,45019,452,7 +2020-05-02,Charleston,South Carolina,45019,456,7 +2020-05-03,Charleston,South Carolina,45019,457,7 +2020-05-04,Charleston,South Carolina,45019,464,7 +2020-05-05,Charleston,South Carolina,45019,463,8 +2020-05-06,Charleston,South Carolina,45019,464,9 +2020-05-07,Charleston,South Carolina,45019,467,9 +2020-05-08,Charleston,South Carolina,45019,481,9 +2020-05-09,Charleston,South Carolina,45019,482,10 +2020-05-10,Charleston,South Carolina,45019,481,10 +2020-05-11,Charleston,South Carolina,45019,491,11 +2020-05-12,Charleston,South Carolina,45019,497,11 +2020-05-13,Charleston,South Carolina,45019,491,10 +2020-05-14,Charleston,South Carolina,45019,491,10 +2020-05-15,Charleston,South Carolina,45019,501,10 +2020-05-16,Charleston,South Carolina,45019,506,10 +2020-05-17,Charleston,South Carolina,45019,507,10 +2020-05-18,Charleston,South Carolina,45019,509,11 +2020-05-19,Charleston,South Carolina,45019,515,11 +2020-05-20,Charleston,South Carolina,45019,515,11 +2020-05-21,Charleston,South Carolina,45019,523,11 +2020-05-22,Charleston,South Carolina,45019,540,11 +2020-05-23,Charleston,South Carolina,45019,550,11 +2020-05-24,Charleston,South Carolina,45019,558,11 +2020-05-25,Charleston,South Carolina,45019,561,11 +2020-05-26,Charleston,South Carolina,45019,568,11 +2020-05-27,Charleston,South Carolina,45019,576,12 +2020-05-28,Charleston,South Carolina,45019,578,12 +2020-05-29,Charleston,South Carolina,45019,586,12 +2020-05-30,Charleston,South Carolina,45019,609,12 +2020-05-31,Charleston,South Carolina,45019,617,12 +2020-06-01,Charleston,South Carolina,45019,634,12 +2020-06-02,Charleston,South Carolina,45019,646,12 +2020-06-03,Charleston,South Carolina,45019,657,13 +2020-06-04,Charleston,South Carolina,45019,683,13 +2020-06-05,Charleston,South Carolina,45019,709,14 +2020-06-06,Charleston,South Carolina,45019,745,14 +2020-06-07,Charleston,South Carolina,45019,776,14 +2020-06-08,Charleston,South Carolina,45019,811,14 +2020-06-09,Charleston,South Carolina,45019,835,14 +2020-06-10,Charleston,South Carolina,45019,869,14 +2020-06-11,Charleston,South Carolina,45019,910,14 +2020-06-12,Charleston,South Carolina,45019,959,15 +2020-06-13,Charleston,South Carolina,45019,1015,15 +2020-06-14,Charleston,South Carolina,45019,1092,15 +2020-06-15,Charleston,South Carolina,45019,1165,16 +2020-06-16,Charleston,South Carolina,45019,1230,16 +2020-06-17,Charleston,South Carolina,45019,1264,17 +2020-06-18,Charleston,South Carolina,45019,1403,17 +2020-06-19,Charleston,South Carolina,45019,1554,19 +2020-06-20,Charleston,South Carolina,45019,1728,19 +2020-06-21,Charleston,South Carolina,45019,1836,19 +2020-06-22,Charleston,South Carolina,45019,2044,19 +2020-06-23,Charleston,South Carolina,45019,2252,20 +2020-06-24,Charleston,South Carolina,45019,2417,21 +2020-06-25,Charleston,South Carolina,45019,2629,22 +2020-06-26,Charleston,South Carolina,45019,2861,22 +2020-06-27,Charleston,South Carolina,45019,3142,22 +2020-06-28,Charleston,South Carolina,45019,3381,23 +2020-06-29,Charleston,South Carolina,45019,3654,23 +2020-06-30,Charleston,South Carolina,45019,4027,26 +2020-07-01,Charleston,South Carolina,45019,4289,33 +2020-07-02,Charleston,South Carolina,45019,4615,34 +2020-07-03,Charleston,South Carolina,45019,5033,34 +2020-07-04,Charleston,South Carolina,45019,5376,35 +2020-07-05,Charleston,South Carolina,45019,5651,36 +2020-07-06,Charleston,South Carolina,45019,5979,36 +2020-07-07,Charleston,South Carolina,45019,6073,41 +2020-07-08,Charleston,South Carolina,45019,6337,47 +2020-07-09,Charleston,South Carolina,45019,6699,51 +2020-04-02,Cherokee,South Carolina,45021,1,0 +2020-04-03,Cherokee,South Carolina,45021,1,0 +2020-04-04,Cherokee,South Carolina,45021,2,0 +2020-04-05,Cherokee,South Carolina,45021,2,0 +2020-04-06,Cherokee,South Carolina,45021,4,0 +2020-04-07,Cherokee,South Carolina,45021,4,0 +2020-04-08,Cherokee,South Carolina,45021,4,0 +2020-04-09,Cherokee,South Carolina,45021,5,0 +2020-04-10,Cherokee,South Carolina,45021,8,0 +2020-04-11,Cherokee,South Carolina,45021,8,0 +2020-04-12,Cherokee,South Carolina,45021,8,0 +2020-04-13,Cherokee,South Carolina,45021,8,0 +2020-04-14,Cherokee,South Carolina,45021,8,0 +2020-04-15,Cherokee,South Carolina,45021,8,0 +2020-04-16,Cherokee,South Carolina,45021,12,0 +2020-04-17,Cherokee,South Carolina,45021,13,0 +2020-04-18,Cherokee,South Carolina,45021,13,0 +2020-04-19,Cherokee,South Carolina,45021,13,0 +2020-04-20,Cherokee,South Carolina,45021,14,0 +2020-04-21,Cherokee,South Carolina,45021,14,0 +2020-04-22,Cherokee,South Carolina,45021,14,0 +2020-04-23,Cherokee,South Carolina,45021,13,0 +2020-04-24,Cherokee,South Carolina,45021,13,0 +2020-04-25,Cherokee,South Carolina,45021,14,0 +2020-04-26,Cherokee,South Carolina,45021,14,0 +2020-04-27,Cherokee,South Carolina,45021,15,0 +2020-04-28,Cherokee,South Carolina,45021,15,0 +2020-04-29,Cherokee,South Carolina,45021,15,0 +2020-04-30,Cherokee,South Carolina,45021,17,0 +2020-05-01,Cherokee,South Carolina,45021,17,0 +2020-05-02,Cherokee,South Carolina,45021,17,0 +2020-05-03,Cherokee,South Carolina,45021,17,0 +2020-05-04,Cherokee,South Carolina,45021,18,0 +2020-05-05,Cherokee,South Carolina,45021,18,0 +2020-05-06,Cherokee,South Carolina,45021,19,0 +2020-05-07,Cherokee,South Carolina,45021,21,0 +2020-05-08,Cherokee,South Carolina,45021,21,0 +2020-05-09,Cherokee,South Carolina,45021,22,0 +2020-05-10,Cherokee,South Carolina,45021,22,0 +2020-05-11,Cherokee,South Carolina,45021,22,0 +2020-05-12,Cherokee,South Carolina,45021,22,0 +2020-05-13,Cherokee,South Carolina,45021,22,0 +2020-05-14,Cherokee,South Carolina,45021,22,0 +2020-05-15,Cherokee,South Carolina,45021,23,1 +2020-05-16,Cherokee,South Carolina,45021,23,1 +2020-05-17,Cherokee,South Carolina,45021,23,1 +2020-05-18,Cherokee,South Carolina,45021,24,1 +2020-05-19,Cherokee,South Carolina,45021,25,2 +2020-05-20,Cherokee,South Carolina,45021,25,2 +2020-05-21,Cherokee,South Carolina,45021,25,2 +2020-05-22,Cherokee,South Carolina,45021,26,2 +2020-05-23,Cherokee,South Carolina,45021,27,2 +2020-05-24,Cherokee,South Carolina,45021,29,2 +2020-05-25,Cherokee,South Carolina,45021,29,2 +2020-05-26,Cherokee,South Carolina,45021,32,2 +2020-05-27,Cherokee,South Carolina,45021,32,2 +2020-05-28,Cherokee,South Carolina,45021,32,2 +2020-05-29,Cherokee,South Carolina,45021,34,2 +2020-05-30,Cherokee,South Carolina,45021,34,2 +2020-05-31,Cherokee,South Carolina,45021,39,2 +2020-06-01,Cherokee,South Carolina,45021,43,2 +2020-06-02,Cherokee,South Carolina,45021,43,2 +2020-06-03,Cherokee,South Carolina,45021,44,2 +2020-06-04,Cherokee,South Carolina,45021,48,2 +2020-06-05,Cherokee,South Carolina,45021,49,4 +2020-06-06,Cherokee,South Carolina,45021,66,5 +2020-06-07,Cherokee,South Carolina,45021,69,5 +2020-06-08,Cherokee,South Carolina,45021,70,5 +2020-06-09,Cherokee,South Carolina,45021,74,5 +2020-06-10,Cherokee,South Carolina,45021,76,5 +2020-06-11,Cherokee,South Carolina,45021,78,5 +2020-06-12,Cherokee,South Carolina,45021,86,5 +2020-06-13,Cherokee,South Carolina,45021,91,6 +2020-06-14,Cherokee,South Carolina,45021,92,6 +2020-06-15,Cherokee,South Carolina,45021,93,6 +2020-06-16,Cherokee,South Carolina,45021,93,6 +2020-06-17,Cherokee,South Carolina,45021,96,6 +2020-06-18,Cherokee,South Carolina,45021,97,6 +2020-06-19,Cherokee,South Carolina,45021,99,6 +2020-06-20,Cherokee,South Carolina,45021,103,6 +2020-06-21,Cherokee,South Carolina,45021,106,6 +2020-06-22,Cherokee,South Carolina,45021,112,6 +2020-06-23,Cherokee,South Carolina,45021,113,6 +2020-06-24,Cherokee,South Carolina,45021,121,6 +2020-06-25,Cherokee,South Carolina,45021,125,6 +2020-06-26,Cherokee,South Carolina,45021,130,6 +2020-06-27,Cherokee,South Carolina,45021,136,7 +2020-06-28,Cherokee,South Carolina,45021,142,7 +2020-06-29,Cherokee,South Carolina,45021,145,7 +2020-06-30,Cherokee,South Carolina,45021,154,7 +2020-07-01,Cherokee,South Carolina,45021,158,8 +2020-07-02,Cherokee,South Carolina,45021,169,8 +2020-07-03,Cherokee,South Carolina,45021,173,7 +2020-07-04,Cherokee,South Carolina,45021,180,7 +2020-07-05,Cherokee,South Carolina,45021,185,7 +2020-07-06,Cherokee,South Carolina,45021,189,7 +2020-07-07,Cherokee,South Carolina,45021,204,8 +2020-07-08,Cherokee,South Carolina,45021,216,8 +2020-07-09,Cherokee,South Carolina,45021,226,8 +2020-03-23,Chester,South Carolina,45023,1,0 +2020-03-24,Chester,South Carolina,45023,1,0 +2020-03-25,Chester,South Carolina,45023,1,0 +2020-03-26,Chester,South Carolina,45023,1,0 +2020-03-27,Chester,South Carolina,45023,1,0 +2020-03-28,Chester,South Carolina,45023,2,0 +2020-03-29,Chester,South Carolina,45023,2,0 +2020-03-30,Chester,South Carolina,45023,2,0 +2020-03-31,Chester,South Carolina,45023,2,0 +2020-04-01,Chester,South Carolina,45023,3,0 +2020-04-02,Chester,South Carolina,45023,6,0 +2020-04-03,Chester,South Carolina,45023,7,0 +2020-04-04,Chester,South Carolina,45023,12,0 +2020-04-05,Chester,South Carolina,45023,12,0 +2020-04-06,Chester,South Carolina,45023,14,0 +2020-04-07,Chester,South Carolina,45023,15,0 +2020-04-08,Chester,South Carolina,45023,16,0 +2020-04-09,Chester,South Carolina,45023,16,0 +2020-04-10,Chester,South Carolina,45023,17,0 +2020-04-11,Chester,South Carolina,45023,18,0 +2020-04-12,Chester,South Carolina,45023,19,0 +2020-04-13,Chester,South Carolina,45023,20,0 +2020-04-14,Chester,South Carolina,45023,20,0 +2020-04-15,Chester,South Carolina,45023,22,0 +2020-04-16,Chester,South Carolina,45023,22,0 +2020-04-17,Chester,South Carolina,45023,23,0 +2020-04-18,Chester,South Carolina,45023,23,0 +2020-04-19,Chester,South Carolina,45023,24,0 +2020-04-20,Chester,South Carolina,45023,25,0 +2020-04-21,Chester,South Carolina,45023,25,0 +2020-04-22,Chester,South Carolina,45023,25,0 +2020-04-23,Chester,South Carolina,45023,26,0 +2020-04-24,Chester,South Carolina,45023,26,0 +2020-04-25,Chester,South Carolina,45023,27,0 +2020-04-26,Chester,South Carolina,45023,27,0 +2020-04-27,Chester,South Carolina,45023,27,0 +2020-04-28,Chester,South Carolina,45023,27,0 +2020-04-29,Chester,South Carolina,45023,27,0 +2020-04-30,Chester,South Carolina,45023,30,0 +2020-05-01,Chester,South Carolina,45023,30,0 +2020-05-02,Chester,South Carolina,45023,32,0 +2020-05-03,Chester,South Carolina,45023,34,0 +2020-05-04,Chester,South Carolina,45023,34,0 +2020-05-05,Chester,South Carolina,45023,35,0 +2020-05-06,Chester,South Carolina,45023,34,0 +2020-05-07,Chester,South Carolina,45023,35,0 +2020-05-08,Chester,South Carolina,45023,39,0 +2020-05-09,Chester,South Carolina,45023,39,0 +2020-05-10,Chester,South Carolina,45023,38,0 +2020-05-11,Chester,South Carolina,45023,40,0 +2020-05-12,Chester,South Carolina,45023,39,0 +2020-05-13,Chester,South Carolina,45023,39,0 +2020-05-14,Chester,South Carolina,45023,39,0 +2020-05-15,Chester,South Carolina,45023,40,0 +2020-05-16,Chester,South Carolina,45023,41,0 +2020-05-17,Chester,South Carolina,45023,42,0 +2020-05-18,Chester,South Carolina,45023,42,0 +2020-05-19,Chester,South Carolina,45023,41,0 +2020-05-20,Chester,South Carolina,45023,41,0 +2020-05-21,Chester,South Carolina,45023,41,0 +2020-05-22,Chester,South Carolina,45023,44,0 +2020-05-23,Chester,South Carolina,45023,46,0 +2020-05-24,Chester,South Carolina,45023,51,0 +2020-05-25,Chester,South Carolina,45023,52,0 +2020-05-26,Chester,South Carolina,45023,55,0 +2020-05-27,Chester,South Carolina,45023,59,0 +2020-05-28,Chester,South Carolina,45023,59,0 +2020-05-29,Chester,South Carolina,45023,62,0 +2020-05-30,Chester,South Carolina,45023,74,0 +2020-05-31,Chester,South Carolina,45023,80,1 +2020-06-01,Chester,South Carolina,45023,83,1 +2020-06-02,Chester,South Carolina,45023,87,1 +2020-06-03,Chester,South Carolina,45023,93,1 +2020-06-04,Chester,South Carolina,45023,93,1 +2020-06-05,Chester,South Carolina,45023,96,1 +2020-06-06,Chester,South Carolina,45023,100,1 +2020-06-07,Chester,South Carolina,45023,103,1 +2020-06-08,Chester,South Carolina,45023,109,1 +2020-06-09,Chester,South Carolina,45023,110,1 +2020-06-10,Chester,South Carolina,45023,110,1 +2020-06-11,Chester,South Carolina,45023,113,1 +2020-06-12,Chester,South Carolina,45023,114,1 +2020-06-13,Chester,South Carolina,45023,116,1 +2020-06-14,Chester,South Carolina,45023,120,1 +2020-06-15,Chester,South Carolina,45023,123,1 +2020-06-16,Chester,South Carolina,45023,125,1 +2020-06-17,Chester,South Carolina,45023,127,1 +2020-06-18,Chester,South Carolina,45023,127,1 +2020-06-19,Chester,South Carolina,45023,131,1 +2020-06-20,Chester,South Carolina,45023,135,1 +2020-06-21,Chester,South Carolina,45023,139,1 +2020-06-22,Chester,South Carolina,45023,147,1 +2020-06-23,Chester,South Carolina,45023,152,1 +2020-06-24,Chester,South Carolina,45023,154,1 +2020-06-25,Chester,South Carolina,45023,158,1 +2020-06-26,Chester,South Carolina,45023,160,1 +2020-06-27,Chester,South Carolina,45023,162,1 +2020-06-28,Chester,South Carolina,45023,171,1 +2020-06-29,Chester,South Carolina,45023,173,1 +2020-06-30,Chester,South Carolina,45023,185,1 +2020-07-01,Chester,South Carolina,45023,189,1 +2020-07-02,Chester,South Carolina,45023,201,1 +2020-07-03,Chester,South Carolina,45023,217,1 +2020-07-04,Chester,South Carolina,45023,222,2 +2020-07-05,Chester,South Carolina,45023,227,2 +2020-07-06,Chester,South Carolina,45023,232,2 +2020-07-07,Chester,South Carolina,45023,236,2 +2020-07-08,Chester,South Carolina,45023,241,2 +2020-07-09,Chester,South Carolina,45023,247,2 +2020-03-24,Chesterfield,South Carolina,45025,1,0 +2020-03-25,Chesterfield,South Carolina,45025,3,0 +2020-03-26,Chesterfield,South Carolina,45025,3,0 +2020-03-27,Chesterfield,South Carolina,45025,4,0 +2020-03-28,Chesterfield,South Carolina,45025,4,0 +2020-03-29,Chesterfield,South Carolina,45025,4,0 +2020-03-30,Chesterfield,South Carolina,45025,6,0 +2020-03-31,Chesterfield,South Carolina,45025,6,0 +2020-04-01,Chesterfield,South Carolina,45025,9,0 +2020-04-02,Chesterfield,South Carolina,45025,10,0 +2020-04-03,Chesterfield,South Carolina,45025,10,0 +2020-04-04,Chesterfield,South Carolina,45025,13,0 +2020-04-05,Chesterfield,South Carolina,45025,13,0 +2020-04-06,Chesterfield,South Carolina,45025,15,0 +2020-04-07,Chesterfield,South Carolina,45025,16,0 +2020-04-08,Chesterfield,South Carolina,45025,20,0 +2020-04-09,Chesterfield,South Carolina,45025,21,0 +2020-04-10,Chesterfield,South Carolina,45025,22,0 +2020-04-11,Chesterfield,South Carolina,45025,22,0 +2020-04-12,Chesterfield,South Carolina,45025,22,0 +2020-04-13,Chesterfield,South Carolina,45025,23,0 +2020-04-14,Chesterfield,South Carolina,45025,27,0 +2020-04-15,Chesterfield,South Carolina,45025,28,0 +2020-04-16,Chesterfield,South Carolina,45025,29,0 +2020-04-17,Chesterfield,South Carolina,45025,31,0 +2020-04-18,Chesterfield,South Carolina,45025,35,0 +2020-04-19,Chesterfield,South Carolina,45025,36,0 +2020-04-20,Chesterfield,South Carolina,45025,36,0 +2020-04-21,Chesterfield,South Carolina,45025,37,0 +2020-04-22,Chesterfield,South Carolina,45025,37,0 +2020-04-23,Chesterfield,South Carolina,45025,39,0 +2020-04-24,Chesterfield,South Carolina,45025,40,0 +2020-04-25,Chesterfield,South Carolina,45025,44,0 +2020-04-26,Chesterfield,South Carolina,45025,44,0 +2020-04-27,Chesterfield,South Carolina,45025,46,0 +2020-04-28,Chesterfield,South Carolina,45025,47,0 +2020-04-29,Chesterfield,South Carolina,45025,48,0 +2020-04-30,Chesterfield,South Carolina,45025,51,1 +2020-05-01,Chesterfield,South Carolina,45025,58,1 +2020-05-02,Chesterfield,South Carolina,45025,59,1 +2020-05-03,Chesterfield,South Carolina,45025,59,1 +2020-05-04,Chesterfield,South Carolina,45025,60,1 +2020-05-05,Chesterfield,South Carolina,45025,61,1 +2020-05-06,Chesterfield,South Carolina,45025,65,1 +2020-05-07,Chesterfield,South Carolina,45025,69,1 +2020-05-08,Chesterfield,South Carolina,45025,72,1 +2020-05-09,Chesterfield,South Carolina,45025,75,1 +2020-05-10,Chesterfield,South Carolina,45025,79,1 +2020-05-11,Chesterfield,South Carolina,45025,80,1 +2020-05-12,Chesterfield,South Carolina,45025,80,1 +2020-05-13,Chesterfield,South Carolina,45025,85,1 +2020-05-14,Chesterfield,South Carolina,45025,90,1 +2020-05-15,Chesterfield,South Carolina,45025,93,1 +2020-05-16,Chesterfield,South Carolina,45025,94,1 +2020-05-17,Chesterfield,South Carolina,45025,96,1 +2020-05-18,Chesterfield,South Carolina,45025,98,1 +2020-05-19,Chesterfield,South Carolina,45025,101,1 +2020-05-20,Chesterfield,South Carolina,45025,105,1 +2020-05-21,Chesterfield,South Carolina,45025,108,1 +2020-05-22,Chesterfield,South Carolina,45025,118,1 +2020-05-23,Chesterfield,South Carolina,45025,129,2 +2020-05-24,Chesterfield,South Carolina,45025,131,2 +2020-05-25,Chesterfield,South Carolina,45025,132,3 +2020-05-26,Chesterfield,South Carolina,45025,141,3 +2020-05-27,Chesterfield,South Carolina,45025,149,3 +2020-05-28,Chesterfield,South Carolina,45025,151,4 +2020-05-29,Chesterfield,South Carolina,45025,165,4 +2020-05-30,Chesterfield,South Carolina,45025,180,4 +2020-05-31,Chesterfield,South Carolina,45025,196,4 +2020-06-01,Chesterfield,South Carolina,45025,200,4 +2020-06-02,Chesterfield,South Carolina,45025,203,4 +2020-06-03,Chesterfield,South Carolina,45025,207,4 +2020-06-04,Chesterfield,South Carolina,45025,221,4 +2020-06-05,Chesterfield,South Carolina,45025,236,4 +2020-06-06,Chesterfield,South Carolina,45025,242,5 +2020-06-07,Chesterfield,South Carolina,45025,247,5 +2020-06-08,Chesterfield,South Carolina,45025,250,6 +2020-06-09,Chesterfield,South Carolina,45025,256,6 +2020-06-10,Chesterfield,South Carolina,45025,265,7 +2020-06-11,Chesterfield,South Carolina,45025,272,7 +2020-06-12,Chesterfield,South Carolina,45025,281,7 +2020-06-13,Chesterfield,South Carolina,45025,284,7 +2020-06-14,Chesterfield,South Carolina,45025,291,7 +2020-06-15,Chesterfield,South Carolina,45025,292,7 +2020-06-16,Chesterfield,South Carolina,45025,293,8 +2020-06-17,Chesterfield,South Carolina,45025,295,8 +2020-06-18,Chesterfield,South Carolina,45025,300,8 +2020-06-19,Chesterfield,South Carolina,45025,306,9 +2020-06-20,Chesterfield,South Carolina,45025,309,9 +2020-06-21,Chesterfield,South Carolina,45025,311,10 +2020-06-22,Chesterfield,South Carolina,45025,322,10 +2020-06-23,Chesterfield,South Carolina,45025,328,12 +2020-06-24,Chesterfield,South Carolina,45025,335,12 +2020-06-25,Chesterfield,South Carolina,45025,338,13 +2020-06-26,Chesterfield,South Carolina,45025,344,13 +2020-06-27,Chesterfield,South Carolina,45025,354,13 +2020-06-28,Chesterfield,South Carolina,45025,359,13 +2020-06-29,Chesterfield,South Carolina,45025,363,14 +2020-06-30,Chesterfield,South Carolina,45025,366,14 +2020-07-01,Chesterfield,South Carolina,45025,373,14 +2020-07-02,Chesterfield,South Carolina,45025,376,14 +2020-07-03,Chesterfield,South Carolina,45025,385,14 +2020-07-04,Chesterfield,South Carolina,45025,389,14 +2020-07-05,Chesterfield,South Carolina,45025,393,14 +2020-07-06,Chesterfield,South Carolina,45025,400,15 +2020-07-07,Chesterfield,South Carolina,45025,407,15 +2020-07-08,Chesterfield,South Carolina,45025,421,15 +2020-07-09,Chesterfield,South Carolina,45025,422,15 +2020-03-20,Clarendon,South Carolina,45027,1,0 +2020-03-21,Clarendon,South Carolina,45027,1,0 +2020-03-22,Clarendon,South Carolina,45027,1,0 +2020-03-23,Clarendon,South Carolina,45027,4,1 +2020-03-24,Clarendon,South Carolina,45027,5,1 +2020-03-25,Clarendon,South Carolina,45027,5,1 +2020-03-26,Clarendon,South Carolina,45027,5,1 +2020-03-27,Clarendon,South Carolina,45027,6,1 +2020-03-28,Clarendon,South Carolina,45027,7,1 +2020-03-29,Clarendon,South Carolina,45027,16,1 +2020-03-30,Clarendon,South Carolina,45027,18,1 +2020-03-31,Clarendon,South Carolina,45027,25,1 +2020-04-01,Clarendon,South Carolina,45027,28,1 +2020-04-02,Clarendon,South Carolina,45027,31,1 +2020-04-03,Clarendon,South Carolina,45027,34,1 +2020-04-04,Clarendon,South Carolina,45027,45,1 +2020-04-05,Clarendon,South Carolina,45027,54,2 +2020-04-06,Clarendon,South Carolina,45027,58,2 +2020-04-07,Clarendon,South Carolina,45027,68,2 +2020-04-08,Clarendon,South Carolina,45027,72,3 +2020-04-09,Clarendon,South Carolina,45027,75,3 +2020-04-10,Clarendon,South Carolina,45027,80,3 +2020-04-11,Clarendon,South Carolina,45027,85,4 +2020-04-12,Clarendon,South Carolina,45027,85,4 +2020-04-13,Clarendon,South Carolina,45027,86,4 +2020-04-14,Clarendon,South Carolina,45027,89,6 +2020-04-15,Clarendon,South Carolina,45027,90,6 +2020-04-16,Clarendon,South Carolina,45027,98,6 +2020-04-17,Clarendon,South Carolina,45027,106,6 +2020-04-18,Clarendon,South Carolina,45027,109,6 +2020-04-19,Clarendon,South Carolina,45027,112,6 +2020-04-20,Clarendon,South Carolina,45027,120,7 +2020-04-21,Clarendon,South Carolina,45027,126,8 +2020-04-22,Clarendon,South Carolina,45027,138,9 +2020-04-23,Clarendon,South Carolina,45027,151,9 +2020-04-24,Clarendon,South Carolina,45027,163,9 +2020-04-25,Clarendon,South Carolina,45027,172,9 +2020-04-26,Clarendon,South Carolina,45027,181,11 +2020-04-27,Clarendon,South Carolina,45027,185,12 +2020-04-28,Clarendon,South Carolina,45027,194,14 +2020-04-29,Clarendon,South Carolina,45027,201,17 +2020-04-30,Clarendon,South Carolina,45027,210,18 +2020-05-01,Clarendon,South Carolina,45027,214,21 +2020-05-02,Clarendon,South Carolina,45027,218,21 +2020-05-03,Clarendon,South Carolina,45027,229,22 +2020-05-04,Clarendon,South Carolina,45027,232,24 +2020-05-05,Clarendon,South Carolina,45027,237,24 +2020-05-06,Clarendon,South Carolina,45027,248,24 +2020-05-07,Clarendon,South Carolina,45027,253,24 +2020-05-08,Clarendon,South Carolina,45027,258,25 +2020-05-09,Clarendon,South Carolina,45027,262,26 +2020-05-10,Clarendon,South Carolina,45027,263,26 +2020-05-11,Clarendon,South Carolina,45027,265,27 +2020-05-12,Clarendon,South Carolina,45027,267,27 +2020-05-13,Clarendon,South Carolina,45027,266,29 +2020-05-14,Clarendon,South Carolina,45027,266,31 +2020-05-15,Clarendon,South Carolina,45027,274,33 +2020-05-16,Clarendon,South Carolina,45027,274,32 +2020-05-17,Clarendon,South Carolina,45027,286,32 +2020-05-18,Clarendon,South Carolina,45027,290,34 +2020-05-19,Clarendon,South Carolina,45027,293,34 +2020-05-20,Clarendon,South Carolina,45027,290,35 +2020-05-21,Clarendon,South Carolina,45027,288,36 +2020-05-22,Clarendon,South Carolina,45027,289,36 +2020-05-23,Clarendon,South Carolina,45027,289,37 +2020-05-24,Clarendon,South Carolina,45027,293,38 +2020-05-25,Clarendon,South Carolina,45027,293,38 +2020-05-26,Clarendon,South Carolina,45027,294,38 +2020-05-27,Clarendon,South Carolina,45027,295,38 +2020-05-28,Clarendon,South Carolina,45027,296,38 +2020-05-29,Clarendon,South Carolina,45027,296,38 +2020-05-30,Clarendon,South Carolina,45027,301,39 +2020-05-31,Clarendon,South Carolina,45027,301,39 +2020-06-01,Clarendon,South Carolina,45027,301,39 +2020-06-02,Clarendon,South Carolina,45027,302,39 +2020-06-03,Clarendon,South Carolina,45027,302,39 +2020-06-04,Clarendon,South Carolina,45027,301,39 +2020-06-05,Clarendon,South Carolina,45027,304,40 +2020-06-06,Clarendon,South Carolina,45027,305,40 +2020-06-07,Clarendon,South Carolina,45027,306,40 +2020-06-08,Clarendon,South Carolina,45027,306,41 +2020-06-09,Clarendon,South Carolina,45027,309,41 +2020-06-10,Clarendon,South Carolina,45027,311,41 +2020-06-11,Clarendon,South Carolina,45027,320,41 +2020-06-12,Clarendon,South Carolina,45027,325,41 +2020-06-13,Clarendon,South Carolina,45027,327,41 +2020-06-14,Clarendon,South Carolina,45027,335,41 +2020-06-15,Clarendon,South Carolina,45027,343,41 +2020-06-16,Clarendon,South Carolina,45027,342,41 +2020-06-17,Clarendon,South Carolina,45027,347,41 +2020-06-18,Clarendon,South Carolina,45027,346,41 +2020-06-19,Clarendon,South Carolina,45027,349,41 +2020-06-20,Clarendon,South Carolina,45027,357,41 +2020-06-21,Clarendon,South Carolina,45027,359,41 +2020-06-22,Clarendon,South Carolina,45027,365,42 +2020-06-23,Clarendon,South Carolina,45027,373,42 +2020-06-24,Clarendon,South Carolina,45027,378,42 +2020-06-25,Clarendon,South Carolina,45027,387,42 +2020-06-26,Clarendon,South Carolina,45027,403,42 +2020-06-27,Clarendon,South Carolina,45027,406,42 +2020-06-28,Clarendon,South Carolina,45027,407,42 +2020-06-29,Clarendon,South Carolina,45027,409,42 +2020-06-30,Clarendon,South Carolina,45027,413,42 +2020-07-01,Clarendon,South Carolina,45027,418,42 +2020-07-02,Clarendon,South Carolina,45027,423,43 +2020-07-03,Clarendon,South Carolina,45027,435,43 +2020-07-04,Clarendon,South Carolina,45027,442,43 +2020-07-05,Clarendon,South Carolina,45027,446,43 +2020-07-06,Clarendon,South Carolina,45027,450,43 +2020-07-07,Clarendon,South Carolina,45027,454,43 +2020-07-08,Clarendon,South Carolina,45027,454,43 +2020-07-09,Clarendon,South Carolina,45027,462,45 +2020-03-22,Colleton,South Carolina,45029,1,0 +2020-03-23,Colleton,South Carolina,45029,1,0 +2020-03-24,Colleton,South Carolina,45029,1,0 +2020-03-25,Colleton,South Carolina,45029,1,0 +2020-03-26,Colleton,South Carolina,45029,1,0 +2020-03-27,Colleton,South Carolina,45029,2,0 +2020-03-28,Colleton,South Carolina,45029,4,0 +2020-03-29,Colleton,South Carolina,45029,4,0 +2020-03-30,Colleton,South Carolina,45029,5,0 +2020-03-31,Colleton,South Carolina,45029,5,0 +2020-04-01,Colleton,South Carolina,45029,5,0 +2020-04-02,Colleton,South Carolina,45029,6,0 +2020-04-03,Colleton,South Carolina,45029,6,0 +2020-04-04,Colleton,South Carolina,45029,9,0 +2020-04-05,Colleton,South Carolina,45029,8,0 +2020-04-06,Colleton,South Carolina,45029,10,0 +2020-04-07,Colleton,South Carolina,45029,10,0 +2020-04-08,Colleton,South Carolina,45029,12,0 +2020-04-09,Colleton,South Carolina,45029,15,0 +2020-04-10,Colleton,South Carolina,45029,15,0 +2020-04-11,Colleton,South Carolina,45029,15,0 +2020-04-12,Colleton,South Carolina,45029,16,0 +2020-04-13,Colleton,South Carolina,45029,17,0 +2020-04-14,Colleton,South Carolina,45029,18,0 +2020-04-15,Colleton,South Carolina,45029,21,1 +2020-04-16,Colleton,South Carolina,45029,21,1 +2020-04-17,Colleton,South Carolina,45029,21,1 +2020-04-18,Colleton,South Carolina,45029,23,1 +2020-04-19,Colleton,South Carolina,45029,23,1 +2020-04-20,Colleton,South Carolina,45029,23,1 +2020-04-21,Colleton,South Carolina,45029,23,2 +2020-04-22,Colleton,South Carolina,45029,23,2 +2020-04-23,Colleton,South Carolina,45029,23,2 +2020-04-24,Colleton,South Carolina,45029,24,2 +2020-04-25,Colleton,South Carolina,45029,26,3 +2020-04-26,Colleton,South Carolina,45029,26,4 +2020-04-27,Colleton,South Carolina,45029,26,4 +2020-04-28,Colleton,South Carolina,45029,26,4 +2020-04-29,Colleton,South Carolina,45029,26,4 +2020-04-30,Colleton,South Carolina,45029,27,4 +2020-05-01,Colleton,South Carolina,45029,33,4 +2020-05-02,Colleton,South Carolina,45029,32,4 +2020-05-03,Colleton,South Carolina,45029,32,4 +2020-05-04,Colleton,South Carolina,45029,32,4 +2020-05-05,Colleton,South Carolina,45029,32,4 +2020-05-06,Colleton,South Carolina,45029,32,4 +2020-05-07,Colleton,South Carolina,45029,32,4 +2020-05-08,Colleton,South Carolina,45029,32,4 +2020-05-09,Colleton,South Carolina,45029,32,4 +2020-05-10,Colleton,South Carolina,45029,32,4 +2020-05-11,Colleton,South Carolina,45029,32,4 +2020-05-12,Colleton,South Carolina,45029,32,4 +2020-05-13,Colleton,South Carolina,45029,33,4 +2020-05-14,Colleton,South Carolina,45029,41,4 +2020-05-15,Colleton,South Carolina,45029,48,4 +2020-05-16,Colleton,South Carolina,45029,51,4 +2020-05-17,Colleton,South Carolina,45029,52,4 +2020-05-18,Colleton,South Carolina,45029,58,4 +2020-05-19,Colleton,South Carolina,45029,58,4 +2020-05-20,Colleton,South Carolina,45029,60,8 +2020-05-21,Colleton,South Carolina,45029,63,8 +2020-05-22,Colleton,South Carolina,45029,66,8 +2020-05-23,Colleton,South Carolina,45029,69,8 +2020-05-24,Colleton,South Carolina,45029,75,8 +2020-05-25,Colleton,South Carolina,45029,74,8 +2020-05-26,Colleton,South Carolina,45029,76,8 +2020-05-27,Colleton,South Carolina,45029,76,11 +2020-05-28,Colleton,South Carolina,45029,86,11 +2020-05-29,Colleton,South Carolina,45029,92,11 +2020-05-30,Colleton,South Carolina,45029,101,11 +2020-05-31,Colleton,South Carolina,45029,105,12 +2020-06-01,Colleton,South Carolina,45029,110,14 +2020-06-02,Colleton,South Carolina,45029,114,14 +2020-06-03,Colleton,South Carolina,45029,117,14 +2020-06-04,Colleton,South Carolina,45029,122,14 +2020-06-05,Colleton,South Carolina,45029,128,14 +2020-06-06,Colleton,South Carolina,45029,132,14 +2020-06-07,Colleton,South Carolina,45029,142,14 +2020-06-08,Colleton,South Carolina,45029,144,14 +2020-06-09,Colleton,South Carolina,45029,148,14 +2020-06-10,Colleton,South Carolina,45029,159,14 +2020-06-11,Colleton,South Carolina,45029,165,16 +2020-06-12,Colleton,South Carolina,45029,177,16 +2020-06-13,Colleton,South Carolina,45029,190,16 +2020-06-14,Colleton,South Carolina,45029,198,16 +2020-06-15,Colleton,South Carolina,45029,201,16 +2020-06-16,Colleton,South Carolina,45029,209,17 +2020-06-17,Colleton,South Carolina,45029,211,18 +2020-06-18,Colleton,South Carolina,45029,214,18 +2020-06-19,Colleton,South Carolina,45029,217,19 +2020-06-20,Colleton,South Carolina,45029,234,19 +2020-06-21,Colleton,South Carolina,45029,245,20 +2020-06-22,Colleton,South Carolina,45029,246,20 +2020-06-23,Colleton,South Carolina,45029,253,20 +2020-06-24,Colleton,South Carolina,45029,258,20 +2020-06-25,Colleton,South Carolina,45029,273,21 +2020-06-26,Colleton,South Carolina,45029,284,21 +2020-06-27,Colleton,South Carolina,45029,295,21 +2020-06-28,Colleton,South Carolina,45029,307,21 +2020-06-29,Colleton,South Carolina,45029,324,21 +2020-06-30,Colleton,South Carolina,45029,329,21 +2020-07-01,Colleton,South Carolina,45029,333,21 +2020-07-02,Colleton,South Carolina,45029,343,22 +2020-07-03,Colleton,South Carolina,45029,352,22 +2020-07-04,Colleton,South Carolina,45029,364,22 +2020-07-05,Colleton,South Carolina,45029,378,22 +2020-07-06,Colleton,South Carolina,45029,384,22 +2020-07-07,Colleton,South Carolina,45029,401,22 +2020-07-08,Colleton,South Carolina,45029,411,22 +2020-07-09,Colleton,South Carolina,45029,423,22 +2020-03-20,Darlington,South Carolina,45031,1,0 +2020-03-21,Darlington,South Carolina,45031,2,0 +2020-03-22,Darlington,South Carolina,45031,3,0 +2020-03-23,Darlington,South Carolina,45031,7,0 +2020-03-24,Darlington,South Carolina,45031,8,0 +2020-03-25,Darlington,South Carolina,45031,8,0 +2020-03-26,Darlington,South Carolina,45031,8,0 +2020-03-27,Darlington,South Carolina,45031,8,0 +2020-03-28,Darlington,South Carolina,45031,8,0 +2020-03-29,Darlington,South Carolina,45031,10,0 +2020-03-30,Darlington,South Carolina,45031,11,0 +2020-03-31,Darlington,South Carolina,45031,11,0 +2020-04-01,Darlington,South Carolina,45031,11,0 +2020-04-02,Darlington,South Carolina,45031,15,0 +2020-04-03,Darlington,South Carolina,45031,15,0 +2020-04-04,Darlington,South Carolina,45031,19,0 +2020-04-05,Darlington,South Carolina,45031,19,0 +2020-04-06,Darlington,South Carolina,45031,27,0 +2020-04-07,Darlington,South Carolina,45031,29,0 +2020-04-08,Darlington,South Carolina,45031,28,0 +2020-04-09,Darlington,South Carolina,45031,31,0 +2020-04-10,Darlington,South Carolina,45031,33,0 +2020-04-11,Darlington,South Carolina,45031,37,0 +2020-04-12,Darlington,South Carolina,45031,39,0 +2020-04-13,Darlington,South Carolina,45031,43,0 +2020-04-14,Darlington,South Carolina,45031,44,0 +2020-04-15,Darlington,South Carolina,45031,44,0 +2020-04-16,Darlington,South Carolina,45031,49,0 +2020-04-17,Darlington,South Carolina,45031,52,0 +2020-04-18,Darlington,South Carolina,45031,59,0 +2020-04-19,Darlington,South Carolina,45031,64,0 +2020-04-20,Darlington,South Carolina,45031,69,0 +2020-04-21,Darlington,South Carolina,45031,77,0 +2020-04-22,Darlington,South Carolina,45031,85,0 +2020-04-23,Darlington,South Carolina,45031,92,0 +2020-04-24,Darlington,South Carolina,45031,99,0 +2020-04-25,Darlington,South Carolina,45031,103,0 +2020-04-26,Darlington,South Carolina,45031,104,1 +2020-04-27,Darlington,South Carolina,45031,107,1 +2020-04-28,Darlington,South Carolina,45031,110,2 +2020-04-29,Darlington,South Carolina,45031,114,2 +2020-04-30,Darlington,South Carolina,45031,126,2 +2020-05-01,Darlington,South Carolina,45031,130,2 +2020-05-02,Darlington,South Carolina,45031,135,2 +2020-05-03,Darlington,South Carolina,45031,140,2 +2020-05-04,Darlington,South Carolina,45031,144,2 +2020-05-05,Darlington,South Carolina,45031,149,2 +2020-05-06,Darlington,South Carolina,45031,151,2 +2020-05-07,Darlington,South Carolina,45031,157,3 +2020-05-08,Darlington,South Carolina,45031,171,3 +2020-05-09,Darlington,South Carolina,45031,173,3 +2020-05-10,Darlington,South Carolina,45031,174,3 +2020-05-11,Darlington,South Carolina,45031,179,3 +2020-05-12,Darlington,South Carolina,45031,179,5 +2020-05-13,Darlington,South Carolina,45031,177,5 +2020-05-14,Darlington,South Carolina,45031,181,5 +2020-05-15,Darlington,South Carolina,45031,194,5 +2020-05-16,Darlington,South Carolina,45031,212,5 +2020-05-17,Darlington,South Carolina,45031,218,5 +2020-05-18,Darlington,South Carolina,45031,222,5 +2020-05-19,Darlington,South Carolina,45031,227,5 +2020-05-20,Darlington,South Carolina,45031,232,5 +2020-05-21,Darlington,South Carolina,45031,240,6 +2020-05-22,Darlington,South Carolina,45031,242,6 +2020-05-23,Darlington,South Carolina,45031,244,6 +2020-05-24,Darlington,South Carolina,45031,246,6 +2020-05-25,Darlington,South Carolina,45031,247,7 +2020-05-26,Darlington,South Carolina,45031,254,7 +2020-05-27,Darlington,South Carolina,45031,260,8 +2020-05-28,Darlington,South Carolina,45031,262,8 +2020-05-29,Darlington,South Carolina,45031,276,9 +2020-05-30,Darlington,South Carolina,45031,284,9 +2020-05-31,Darlington,South Carolina,45031,295,10 +2020-06-01,Darlington,South Carolina,45031,299,10 +2020-06-02,Darlington,South Carolina,45031,308,10 +2020-06-03,Darlington,South Carolina,45031,311,11 +2020-06-04,Darlington,South Carolina,45031,313,11 +2020-06-05,Darlington,South Carolina,45031,316,11 +2020-06-06,Darlington,South Carolina,45031,326,11 +2020-06-07,Darlington,South Carolina,45031,328,12 +2020-06-08,Darlington,South Carolina,45031,330,12 +2020-06-09,Darlington,South Carolina,45031,333,12 +2020-06-10,Darlington,South Carolina,45031,334,12 +2020-06-11,Darlington,South Carolina,45031,342,12 +2020-06-12,Darlington,South Carolina,45031,343,12 +2020-06-13,Darlington,South Carolina,45031,347,13 +2020-06-14,Darlington,South Carolina,45031,350,13 +2020-06-15,Darlington,South Carolina,45031,353,13 +2020-06-16,Darlington,South Carolina,45031,357,13 +2020-06-17,Darlington,South Carolina,45031,363,13 +2020-06-18,Darlington,South Carolina,45031,366,13 +2020-06-19,Darlington,South Carolina,45031,371,13 +2020-06-20,Darlington,South Carolina,45031,373,13 +2020-06-21,Darlington,South Carolina,45031,376,13 +2020-06-22,Darlington,South Carolina,45031,384,14 +2020-06-23,Darlington,South Carolina,45031,386,14 +2020-06-24,Darlington,South Carolina,45031,393,14 +2020-06-25,Darlington,South Carolina,45031,395,14 +2020-06-26,Darlington,South Carolina,45031,405,14 +2020-06-27,Darlington,South Carolina,45031,416,14 +2020-06-28,Darlington,South Carolina,45031,427,14 +2020-06-29,Darlington,South Carolina,45031,433,14 +2020-06-30,Darlington,South Carolina,45031,445,14 +2020-07-01,Darlington,South Carolina,45031,452,14 +2020-07-02,Darlington,South Carolina,45031,461,15 +2020-07-03,Darlington,South Carolina,45031,469,15 +2020-07-04,Darlington,South Carolina,45031,484,15 +2020-07-05,Darlington,South Carolina,45031,492,15 +2020-07-06,Darlington,South Carolina,45031,498,16 +2020-07-07,Darlington,South Carolina,45031,504,16 +2020-07-08,Darlington,South Carolina,45031,515,16 +2020-07-09,Darlington,South Carolina,45031,519,17 +2020-03-21,Dillon,South Carolina,45033,1,0 +2020-03-22,Dillon,South Carolina,45033,1,0 +2020-03-23,Dillon,South Carolina,45033,1,0 +2020-03-24,Dillon,South Carolina,45033,1,0 +2020-03-25,Dillon,South Carolina,45033,1,0 +2020-03-26,Dillon,South Carolina,45033,1,0 +2020-03-27,Dillon,South Carolina,45033,1,0 +2020-03-28,Dillon,South Carolina,45033,1,0 +2020-03-29,Dillon,South Carolina,45033,1,0 +2020-03-30,Dillon,South Carolina,45033,1,0 +2020-03-31,Dillon,South Carolina,45033,1,0 +2020-04-01,Dillon,South Carolina,45033,1,0 +2020-04-02,Dillon,South Carolina,45033,1,0 +2020-04-03,Dillon,South Carolina,45033,1,0 +2020-04-04,Dillon,South Carolina,45033,1,0 +2020-04-05,Dillon,South Carolina,45033,1,0 +2020-04-06,Dillon,South Carolina,45033,1,0 +2020-04-07,Dillon,South Carolina,45033,1,0 +2020-04-08,Dillon,South Carolina,45033,1,0 +2020-04-09,Dillon,South Carolina,45033,3,0 +2020-04-10,Dillon,South Carolina,45033,5,0 +2020-04-11,Dillon,South Carolina,45033,3,0 +2020-04-12,Dillon,South Carolina,45033,5,0 +2020-04-13,Dillon,South Carolina,45033,5,0 +2020-04-14,Dillon,South Carolina,45033,5,0 +2020-04-15,Dillon,South Carolina,45033,7,0 +2020-04-16,Dillon,South Carolina,45033,10,0 +2020-04-17,Dillon,South Carolina,45033,11,0 +2020-04-18,Dillon,South Carolina,45033,17,0 +2020-04-19,Dillon,South Carolina,45033,20,0 +2020-04-20,Dillon,South Carolina,45033,22,0 +2020-04-21,Dillon,South Carolina,45033,23,0 +2020-04-22,Dillon,South Carolina,45033,23,0 +2020-04-23,Dillon,South Carolina,45033,28,0 +2020-04-24,Dillon,South Carolina,45033,34,0 +2020-04-25,Dillon,South Carolina,45033,35,0 +2020-04-26,Dillon,South Carolina,45033,41,0 +2020-04-27,Dillon,South Carolina,45033,44,0 +2020-04-28,Dillon,South Carolina,45033,44,0 +2020-04-29,Dillon,South Carolina,45033,47,0 +2020-04-30,Dillon,South Carolina,45033,52,0 +2020-05-01,Dillon,South Carolina,45033,54,0 +2020-05-02,Dillon,South Carolina,45033,67,0 +2020-05-03,Dillon,South Carolina,45033,72,0 +2020-05-04,Dillon,South Carolina,45033,74,0 +2020-05-05,Dillon,South Carolina,45033,74,0 +2020-05-06,Dillon,South Carolina,45033,74,0 +2020-05-07,Dillon,South Carolina,45033,78,0 +2020-05-08,Dillon,South Carolina,45033,84,0 +2020-05-09,Dillon,South Carolina,45033,88,0 +2020-05-10,Dillon,South Carolina,45033,95,0 +2020-05-11,Dillon,South Carolina,45033,102,0 +2020-05-12,Dillon,South Carolina,45033,102,0 +2020-05-13,Dillon,South Carolina,45033,104,0 +2020-05-14,Dillon,South Carolina,45033,113,0 +2020-05-15,Dillon,South Carolina,45033,115,0 +2020-05-16,Dillon,South Carolina,45033,124,0 +2020-05-17,Dillon,South Carolina,45033,129,1 +2020-05-18,Dillon,South Carolina,45033,131,1 +2020-05-19,Dillon,South Carolina,45033,132,2 +2020-05-20,Dillon,South Carolina,45033,135,2 +2020-05-21,Dillon,South Carolina,45033,138,3 +2020-05-22,Dillon,South Carolina,45033,146,3 +2020-05-23,Dillon,South Carolina,45033,147,3 +2020-05-24,Dillon,South Carolina,45033,147,3 +2020-05-25,Dillon,South Carolina,45033,148,3 +2020-05-26,Dillon,South Carolina,45033,152,3 +2020-05-27,Dillon,South Carolina,45033,155,3 +2020-05-28,Dillon,South Carolina,45033,155,3 +2020-05-29,Dillon,South Carolina,45033,156,3 +2020-05-30,Dillon,South Carolina,45033,162,3 +2020-05-31,Dillon,South Carolina,45033,165,3 +2020-06-01,Dillon,South Carolina,45033,166,3 +2020-06-02,Dillon,South Carolina,45033,170,3 +2020-06-03,Dillon,South Carolina,45033,170,3 +2020-06-04,Dillon,South Carolina,45033,174,3 +2020-06-05,Dillon,South Carolina,45033,177,3 +2020-06-06,Dillon,South Carolina,45033,185,3 +2020-06-07,Dillon,South Carolina,45033,188,3 +2020-06-08,Dillon,South Carolina,45033,189,4 +2020-06-09,Dillon,South Carolina,45033,189,4 +2020-06-10,Dillon,South Carolina,45033,190,4 +2020-06-11,Dillon,South Carolina,45033,192,4 +2020-06-12,Dillon,South Carolina,45033,198,4 +2020-06-13,Dillon,South Carolina,45033,200,4 +2020-06-14,Dillon,South Carolina,45033,201,4 +2020-06-15,Dillon,South Carolina,45033,202,4 +2020-06-16,Dillon,South Carolina,45033,202,5 +2020-06-17,Dillon,South Carolina,45033,207,5 +2020-06-18,Dillon,South Carolina,45033,217,5 +2020-06-19,Dillon,South Carolina,45033,219,5 +2020-06-20,Dillon,South Carolina,45033,223,5 +2020-06-21,Dillon,South Carolina,45033,226,5 +2020-06-22,Dillon,South Carolina,45033,230,5 +2020-06-23,Dillon,South Carolina,45033,231,5 +2020-06-24,Dillon,South Carolina,45033,237,6 +2020-06-25,Dillon,South Carolina,45033,248,7 +2020-06-26,Dillon,South Carolina,45033,255,7 +2020-06-27,Dillon,South Carolina,45033,263,8 +2020-06-28,Dillon,South Carolina,45033,289,8 +2020-06-29,Dillon,South Carolina,45033,298,8 +2020-06-30,Dillon,South Carolina,45033,304,9 +2020-07-01,Dillon,South Carolina,45033,307,10 +2020-07-02,Dillon,South Carolina,45033,316,10 +2020-07-03,Dillon,South Carolina,45033,321,10 +2020-07-04,Dillon,South Carolina,45033,330,10 +2020-07-05,Dillon,South Carolina,45033,336,10 +2020-07-06,Dillon,South Carolina,45033,344,12 +2020-07-07,Dillon,South Carolina,45033,350,12 +2020-07-08,Dillon,South Carolina,45033,356,13 +2020-07-09,Dillon,South Carolina,45033,363,13 +2020-03-19,Dorchester,South Carolina,45035,1,0 +2020-03-20,Dorchester,South Carolina,45035,1,0 +2020-03-21,Dorchester,South Carolina,45035,1,0 +2020-03-22,Dorchester,South Carolina,45035,1,0 +2020-03-23,Dorchester,South Carolina,45035,2,0 +2020-03-24,Dorchester,South Carolina,45035,3,0 +2020-03-25,Dorchester,South Carolina,45035,4,0 +2020-03-26,Dorchester,South Carolina,45035,4,0 +2020-03-27,Dorchester,South Carolina,45035,9,0 +2020-03-28,Dorchester,South Carolina,45035,10,0 +2020-03-29,Dorchester,South Carolina,45035,10,0 +2020-03-30,Dorchester,South Carolina,45035,12,0 +2020-03-31,Dorchester,South Carolina,45035,17,0 +2020-04-01,Dorchester,South Carolina,45035,27,0 +2020-04-02,Dorchester,South Carolina,45035,35,0 +2020-04-03,Dorchester,South Carolina,45035,36,0 +2020-04-04,Dorchester,South Carolina,45035,45,0 +2020-04-05,Dorchester,South Carolina,45035,44,0 +2020-04-06,Dorchester,South Carolina,45035,52,0 +2020-04-07,Dorchester,South Carolina,45035,51,0 +2020-04-08,Dorchester,South Carolina,45035,54,0 +2020-04-09,Dorchester,South Carolina,45035,58,0 +2020-04-10,Dorchester,South Carolina,45035,65,0 +2020-04-11,Dorchester,South Carolina,45035,67,1 +2020-04-12,Dorchester,South Carolina,45035,71,1 +2020-04-13,Dorchester,South Carolina,45035,73,1 +2020-04-14,Dorchester,South Carolina,45035,73,1 +2020-04-15,Dorchester,South Carolina,45035,78,1 +2020-04-16,Dorchester,South Carolina,45035,78,1 +2020-04-17,Dorchester,South Carolina,45035,83,1 +2020-04-18,Dorchester,South Carolina,45035,84,1 +2020-04-19,Dorchester,South Carolina,45035,88,1 +2020-04-20,Dorchester,South Carolina,45035,83,1 +2020-04-21,Dorchester,South Carolina,45035,85,1 +2020-04-22,Dorchester,South Carolina,45035,85,1 +2020-04-23,Dorchester,South Carolina,45035,84,1 +2020-04-24,Dorchester,South Carolina,45035,84,2 +2020-04-25,Dorchester,South Carolina,45035,86,2 +2020-04-26,Dorchester,South Carolina,45035,90,2 +2020-04-27,Dorchester,South Carolina,45035,92,2 +2020-04-28,Dorchester,South Carolina,45035,91,2 +2020-04-29,Dorchester,South Carolina,45035,94,3 +2020-04-30,Dorchester,South Carolina,45035,97,3 +2020-05-01,Dorchester,South Carolina,45035,100,3 +2020-05-02,Dorchester,South Carolina,45035,100,3 +2020-05-03,Dorchester,South Carolina,45035,101,3 +2020-05-04,Dorchester,South Carolina,45035,100,3 +2020-05-05,Dorchester,South Carolina,45035,101,3 +2020-05-06,Dorchester,South Carolina,45035,103,3 +2020-05-07,Dorchester,South Carolina,45035,104,3 +2020-05-08,Dorchester,South Carolina,45035,105,3 +2020-05-09,Dorchester,South Carolina,45035,105,3 +2020-05-10,Dorchester,South Carolina,45035,106,3 +2020-05-11,Dorchester,South Carolina,45035,108,3 +2020-05-12,Dorchester,South Carolina,45035,109,3 +2020-05-13,Dorchester,South Carolina,45035,109,3 +2020-05-14,Dorchester,South Carolina,45035,110,3 +2020-05-15,Dorchester,South Carolina,45035,110,3 +2020-05-16,Dorchester,South Carolina,45035,111,3 +2020-05-17,Dorchester,South Carolina,45035,113,3 +2020-05-18,Dorchester,South Carolina,45035,114,3 +2020-05-19,Dorchester,South Carolina,45035,114,3 +2020-05-20,Dorchester,South Carolina,45035,118,3 +2020-05-21,Dorchester,South Carolina,45035,120,3 +2020-05-22,Dorchester,South Carolina,45035,126,3 +2020-05-23,Dorchester,South Carolina,45035,137,3 +2020-05-24,Dorchester,South Carolina,45035,142,3 +2020-05-25,Dorchester,South Carolina,45035,140,3 +2020-05-26,Dorchester,South Carolina,45035,142,3 +2020-05-27,Dorchester,South Carolina,45035,151,3 +2020-05-28,Dorchester,South Carolina,45035,150,3 +2020-05-29,Dorchester,South Carolina,45035,161,3 +2020-05-30,Dorchester,South Carolina,45035,164,3 +2020-05-31,Dorchester,South Carolina,45035,166,3 +2020-06-01,Dorchester,South Carolina,45035,169,3 +2020-06-02,Dorchester,South Carolina,45035,165,3 +2020-06-03,Dorchester,South Carolina,45035,168,3 +2020-06-04,Dorchester,South Carolina,45035,176,3 +2020-06-05,Dorchester,South Carolina,45035,189,3 +2020-06-06,Dorchester,South Carolina,45035,198,3 +2020-06-07,Dorchester,South Carolina,45035,206,3 +2020-06-08,Dorchester,South Carolina,45035,216,3 +2020-06-09,Dorchester,South Carolina,45035,219,3 +2020-06-10,Dorchester,South Carolina,45035,214,3 +2020-06-11,Dorchester,South Carolina,45035,223,3 +2020-06-12,Dorchester,South Carolina,45035,230,3 +2020-06-13,Dorchester,South Carolina,45035,245,3 +2020-06-14,Dorchester,South Carolina,45035,265,3 +2020-06-15,Dorchester,South Carolina,45035,276,3 +2020-06-16,Dorchester,South Carolina,45035,277,3 +2020-06-17,Dorchester,South Carolina,45035,286,3 +2020-06-18,Dorchester,South Carolina,45035,307,3 +2020-06-19,Dorchester,South Carolina,45035,323,3 +2020-06-20,Dorchester,South Carolina,45035,353,3 +2020-06-21,Dorchester,South Carolina,45035,387,3 +2020-06-22,Dorchester,South Carolina,45035,390,3 +2020-06-23,Dorchester,South Carolina,45035,423,3 +2020-06-24,Dorchester,South Carolina,45035,452,3 +2020-06-25,Dorchester,South Carolina,45035,483,3 +2020-06-26,Dorchester,South Carolina,45035,499,3 +2020-06-27,Dorchester,South Carolina,45035,551,3 +2020-06-28,Dorchester,South Carolina,45035,594,3 +2020-06-29,Dorchester,South Carolina,45035,627,3 +2020-06-30,Dorchester,South Carolina,45035,712,3 +2020-07-01,Dorchester,South Carolina,45035,773,3 +2020-07-02,Dorchester,South Carolina,45035,844,3 +2020-07-03,Dorchester,South Carolina,45035,928,3 +2020-07-04,Dorchester,South Carolina,45035,1004,4 +2020-07-05,Dorchester,South Carolina,45035,1074,5 +2020-07-06,Dorchester,South Carolina,45035,1133,5 +2020-07-07,Dorchester,South Carolina,45035,1155,5 +2020-07-08,Dorchester,South Carolina,45035,1230,6 +2020-07-09,Dorchester,South Carolina,45035,1295,7 +2020-03-21,Edgefield,South Carolina,45037,1,0 +2020-03-22,Edgefield,South Carolina,45037,1,0 +2020-03-23,Edgefield,South Carolina,45037,1,0 +2020-03-24,Edgefield,South Carolina,45037,1,0 +2020-03-25,Edgefield,South Carolina,45037,1,0 +2020-03-26,Edgefield,South Carolina,45037,1,0 +2020-03-27,Edgefield,South Carolina,45037,1,0 +2020-03-28,Edgefield,South Carolina,45037,1,0 +2020-03-29,Edgefield,South Carolina,45037,2,0 +2020-03-30,Edgefield,South Carolina,45037,2,0 +2020-03-31,Edgefield,South Carolina,45037,2,0 +2020-04-01,Edgefield,South Carolina,45037,4,0 +2020-04-02,Edgefield,South Carolina,45037,4,0 +2020-04-03,Edgefield,South Carolina,45037,5,0 +2020-04-04,Edgefield,South Carolina,45037,5,0 +2020-04-05,Edgefield,South Carolina,45037,6,0 +2020-04-06,Edgefield,South Carolina,45037,6,0 +2020-04-07,Edgefield,South Carolina,45037,6,0 +2020-04-08,Edgefield,South Carolina,45037,6,0 +2020-04-09,Edgefield,South Carolina,45037,6,0 +2020-04-10,Edgefield,South Carolina,45037,10,0 +2020-04-11,Edgefield,South Carolina,45037,10,0 +2020-04-12,Edgefield,South Carolina,45037,10,0 +2020-04-13,Edgefield,South Carolina,45037,10,0 +2020-04-14,Edgefield,South Carolina,45037,9,0 +2020-04-15,Edgefield,South Carolina,45037,10,0 +2020-04-16,Edgefield,South Carolina,45037,10,0 +2020-04-17,Edgefield,South Carolina,45037,10,0 +2020-04-18,Edgefield,South Carolina,45037,11,0 +2020-04-19,Edgefield,South Carolina,45037,12,0 +2020-04-20,Edgefield,South Carolina,45037,12,1 +2020-04-21,Edgefield,South Carolina,45037,17,1 +2020-04-22,Edgefield,South Carolina,45037,21,1 +2020-04-23,Edgefield,South Carolina,45037,21,1 +2020-04-24,Edgefield,South Carolina,45037,22,1 +2020-04-25,Edgefield,South Carolina,45037,23,1 +2020-04-26,Edgefield,South Carolina,45037,24,1 +2020-04-27,Edgefield,South Carolina,45037,25,1 +2020-04-28,Edgefield,South Carolina,45037,26,1 +2020-04-29,Edgefield,South Carolina,45037,29,1 +2020-04-30,Edgefield,South Carolina,45037,29,1 +2020-05-01,Edgefield,South Carolina,45037,29,1 +2020-05-02,Edgefield,South Carolina,45037,31,2 +2020-05-03,Edgefield,South Carolina,45037,32,2 +2020-05-04,Edgefield,South Carolina,45037,32,2 +2020-05-05,Edgefield,South Carolina,45037,32,2 +2020-05-06,Edgefield,South Carolina,45037,35,2 +2020-05-07,Edgefield,South Carolina,45037,36,2 +2020-05-08,Edgefield,South Carolina,45037,36,2 +2020-05-09,Edgefield,South Carolina,45037,39,2 +2020-05-10,Edgefield,South Carolina,45037,39,2 +2020-05-11,Edgefield,South Carolina,45037,39,2 +2020-05-12,Edgefield,South Carolina,45037,39,2 +2020-05-13,Edgefield,South Carolina,45037,41,2 +2020-05-14,Edgefield,South Carolina,45037,41,2 +2020-05-15,Edgefield,South Carolina,45037,41,2 +2020-05-16,Edgefield,South Carolina,45037,43,2 +2020-05-17,Edgefield,South Carolina,45037,44,2 +2020-05-18,Edgefield,South Carolina,45037,44,2 +2020-05-19,Edgefield,South Carolina,45037,44,2 +2020-05-20,Edgefield,South Carolina,45037,45,2 +2020-05-21,Edgefield,South Carolina,45037,46,2 +2020-05-22,Edgefield,South Carolina,45037,47,2 +2020-05-23,Edgefield,South Carolina,45037,48,2 +2020-05-24,Edgefield,South Carolina,45037,48,2 +2020-05-25,Edgefield,South Carolina,45037,49,2 +2020-05-26,Edgefield,South Carolina,45037,49,2 +2020-05-27,Edgefield,South Carolina,45037,49,2 +2020-05-28,Edgefield,South Carolina,45037,51,2 +2020-05-29,Edgefield,South Carolina,45037,51,2 +2020-05-30,Edgefield,South Carolina,45037,51,2 +2020-05-31,Edgefield,South Carolina,45037,51,2 +2020-06-01,Edgefield,South Carolina,45037,51,2 +2020-06-02,Edgefield,South Carolina,45037,51,2 +2020-06-03,Edgefield,South Carolina,45037,52,2 +2020-06-04,Edgefield,South Carolina,45037,53,2 +2020-06-05,Edgefield,South Carolina,45037,54,2 +2020-06-06,Edgefield,South Carolina,45037,54,2 +2020-06-07,Edgefield,South Carolina,45037,56,2 +2020-06-08,Edgefield,South Carolina,45037,56,2 +2020-06-09,Edgefield,South Carolina,45037,55,2 +2020-06-10,Edgefield,South Carolina,45037,56,2 +2020-06-11,Edgefield,South Carolina,45037,57,2 +2020-06-12,Edgefield,South Carolina,45037,58,2 +2020-06-13,Edgefield,South Carolina,45037,59,2 +2020-06-14,Edgefield,South Carolina,45037,60,2 +2020-06-15,Edgefield,South Carolina,45037,61,2 +2020-06-16,Edgefield,South Carolina,45037,61,2 +2020-06-17,Edgefield,South Carolina,45037,61,2 +2020-06-18,Edgefield,South Carolina,45037,61,2 +2020-06-19,Edgefield,South Carolina,45037,63,2 +2020-06-20,Edgefield,South Carolina,45037,65,2 +2020-06-21,Edgefield,South Carolina,45037,69,2 +2020-06-22,Edgefield,South Carolina,45037,70,2 +2020-06-23,Edgefield,South Carolina,45037,71,2 +2020-06-24,Edgefield,South Carolina,45037,73,2 +2020-06-25,Edgefield,South Carolina,45037,73,2 +2020-06-26,Edgefield,South Carolina,45037,73,2 +2020-06-27,Edgefield,South Carolina,45037,73,2 +2020-06-28,Edgefield,South Carolina,45037,73,2 +2020-06-29,Edgefield,South Carolina,45037,76,2 +2020-06-30,Edgefield,South Carolina,45037,76,3 +2020-07-01,Edgefield,South Carolina,45037,83,3 +2020-07-02,Edgefield,South Carolina,45037,86,3 +2020-07-03,Edgefield,South Carolina,45037,90,3 +2020-07-04,Edgefield,South Carolina,45037,95,3 +2020-07-05,Edgefield,South Carolina,45037,99,3 +2020-07-06,Edgefield,South Carolina,45037,100,3 +2020-07-07,Edgefield,South Carolina,45037,101,3 +2020-07-08,Edgefield,South Carolina,45037,106,3 +2020-07-09,Edgefield,South Carolina,45037,108,4 +2020-03-16,Fairfield,South Carolina,45039,1,0 +2020-03-17,Fairfield,South Carolina,45039,1,0 +2020-03-18,Fairfield,South Carolina,45039,1,0 +2020-03-19,Fairfield,South Carolina,45039,1,0 +2020-03-20,Fairfield,South Carolina,45039,1,0 +2020-03-21,Fairfield,South Carolina,45039,1,0 +2020-03-22,Fairfield,South Carolina,45039,1,0 +2020-03-23,Fairfield,South Carolina,45039,2,0 +2020-03-24,Fairfield,South Carolina,45039,2,0 +2020-03-25,Fairfield,South Carolina,45039,3,0 +2020-03-26,Fairfield,South Carolina,45039,4,0 +2020-03-27,Fairfield,South Carolina,45039,4,0 +2020-03-28,Fairfield,South Carolina,45039,4,0 +2020-03-29,Fairfield,South Carolina,45039,4,0 +2020-03-30,Fairfield,South Carolina,45039,5,0 +2020-03-31,Fairfield,South Carolina,45039,6,0 +2020-04-01,Fairfield,South Carolina,45039,7,0 +2020-04-02,Fairfield,South Carolina,45039,8,0 +2020-04-03,Fairfield,South Carolina,45039,8,0 +2020-04-04,Fairfield,South Carolina,45039,12,0 +2020-04-05,Fairfield,South Carolina,45039,14,0 +2020-04-06,Fairfield,South Carolina,45039,16,0 +2020-04-07,Fairfield,South Carolina,45039,17,0 +2020-04-08,Fairfield,South Carolina,45039,16,0 +2020-04-09,Fairfield,South Carolina,45039,17,0 +2020-04-10,Fairfield,South Carolina,45039,18,0 +2020-04-11,Fairfield,South Carolina,45039,21,0 +2020-04-12,Fairfield,South Carolina,45039,21,0 +2020-04-13,Fairfield,South Carolina,45039,23,0 +2020-04-14,Fairfield,South Carolina,45039,24,0 +2020-04-15,Fairfield,South Carolina,45039,24,0 +2020-04-16,Fairfield,South Carolina,45039,25,0 +2020-04-17,Fairfield,South Carolina,45039,25,0 +2020-04-18,Fairfield,South Carolina,45039,25,0 +2020-04-19,Fairfield,South Carolina,45039,25,0 +2020-04-20,Fairfield,South Carolina,45039,25,0 +2020-04-21,Fairfield,South Carolina,45039,26,0 +2020-04-22,Fairfield,South Carolina,45039,26,0 +2020-04-23,Fairfield,South Carolina,45039,27,2 +2020-04-24,Fairfield,South Carolina,45039,28,2 +2020-04-25,Fairfield,South Carolina,45039,29,2 +2020-04-26,Fairfield,South Carolina,45039,33,2 +2020-04-27,Fairfield,South Carolina,45039,33,2 +2020-04-28,Fairfield,South Carolina,45039,33,2 +2020-04-29,Fairfield,South Carolina,45039,34,2 +2020-04-30,Fairfield,South Carolina,45039,36,2 +2020-05-01,Fairfield,South Carolina,45039,36,2 +2020-05-02,Fairfield,South Carolina,45039,42,2 +2020-05-03,Fairfield,South Carolina,45039,68,2 +2020-05-04,Fairfield,South Carolina,45039,68,2 +2020-05-05,Fairfield,South Carolina,45039,71,2 +2020-05-06,Fairfield,South Carolina,45039,74,2 +2020-05-07,Fairfield,South Carolina,45039,75,3 +2020-05-08,Fairfield,South Carolina,45039,76,3 +2020-05-09,Fairfield,South Carolina,45039,80,4 +2020-05-10,Fairfield,South Carolina,45039,80,4 +2020-05-11,Fairfield,South Carolina,45039,81,5 +2020-05-12,Fairfield,South Carolina,45039,82,5 +2020-05-13,Fairfield,South Carolina,45039,83,5 +2020-05-14,Fairfield,South Carolina,45039,96,7 +2020-05-15,Fairfield,South Carolina,45039,108,8 +2020-05-16,Fairfield,South Carolina,45039,120,8 +2020-05-17,Fairfield,South Carolina,45039,122,8 +2020-05-18,Fairfield,South Carolina,45039,128,8 +2020-05-19,Fairfield,South Carolina,45039,134,8 +2020-05-20,Fairfield,South Carolina,45039,139,9 +2020-05-21,Fairfield,South Carolina,45039,152,9 +2020-05-22,Fairfield,South Carolina,45039,155,9 +2020-05-23,Fairfield,South Carolina,45039,158,9 +2020-05-24,Fairfield,South Carolina,45039,159,9 +2020-05-25,Fairfield,South Carolina,45039,160,9 +2020-05-26,Fairfield,South Carolina,45039,160,10 +2020-05-27,Fairfield,South Carolina,45039,163,13 +2020-05-28,Fairfield,South Carolina,45039,163,14 +2020-05-29,Fairfield,South Carolina,45039,168,15 +2020-05-30,Fairfield,South Carolina,45039,174,15 +2020-05-31,Fairfield,South Carolina,45039,179,15 +2020-06-01,Fairfield,South Carolina,45039,181,17 +2020-06-02,Fairfield,South Carolina,45039,181,17 +2020-06-03,Fairfield,South Carolina,45039,185,17 +2020-06-04,Fairfield,South Carolina,45039,194,17 +2020-06-05,Fairfield,South Carolina,45039,203,17 +2020-06-06,Fairfield,South Carolina,45039,208,17 +2020-06-07,Fairfield,South Carolina,45039,206,17 +2020-06-08,Fairfield,South Carolina,45039,211,17 +2020-06-09,Fairfield,South Carolina,45039,216,19 +2020-06-10,Fairfield,South Carolina,45039,219,19 +2020-06-11,Fairfield,South Carolina,45039,224,20 +2020-06-12,Fairfield,South Carolina,45039,223,20 +2020-06-13,Fairfield,South Carolina,45039,225,20 +2020-06-14,Fairfield,South Carolina,45039,227,20 +2020-06-15,Fairfield,South Carolina,45039,231,20 +2020-06-16,Fairfield,South Carolina,45039,232,20 +2020-06-17,Fairfield,South Carolina,45039,233,20 +2020-06-18,Fairfield,South Carolina,45039,238,20 +2020-06-19,Fairfield,South Carolina,45039,246,20 +2020-06-20,Fairfield,South Carolina,45039,253,20 +2020-06-21,Fairfield,South Carolina,45039,257,20 +2020-06-22,Fairfield,South Carolina,45039,259,20 +2020-06-23,Fairfield,South Carolina,45039,266,21 +2020-06-24,Fairfield,South Carolina,45039,269,21 +2020-06-25,Fairfield,South Carolina,45039,271,21 +2020-06-26,Fairfield,South Carolina,45039,272,21 +2020-06-27,Fairfield,South Carolina,45039,279,21 +2020-06-28,Fairfield,South Carolina,45039,280,21 +2020-06-29,Fairfield,South Carolina,45039,288,21 +2020-06-30,Fairfield,South Carolina,45039,298,21 +2020-07-01,Fairfield,South Carolina,45039,302,22 +2020-07-02,Fairfield,South Carolina,45039,303,22 +2020-07-03,Fairfield,South Carolina,45039,305,22 +2020-07-04,Fairfield,South Carolina,45039,311,22 +2020-07-05,Fairfield,South Carolina,45039,313,22 +2020-07-06,Fairfield,South Carolina,45039,316,22 +2020-07-07,Fairfield,South Carolina,45039,319,22 +2020-07-08,Fairfield,South Carolina,45039,325,22 +2020-07-09,Fairfield,South Carolina,45039,331,22 +2020-03-20,Florence,South Carolina,45041,1,1 +2020-03-21,Florence,South Carolina,45041,1,1 +2020-03-22,Florence,South Carolina,45041,1,1 +2020-03-23,Florence,South Carolina,45041,3,1 +2020-03-24,Florence,South Carolina,45041,5,2 +2020-03-25,Florence,South Carolina,45041,5,2 +2020-03-26,Florence,South Carolina,45041,5,2 +2020-03-27,Florence,South Carolina,45041,11,3 +2020-03-28,Florence,South Carolina,45041,12,3 +2020-03-29,Florence,South Carolina,45041,13,3 +2020-03-30,Florence,South Carolina,45041,15,3 +2020-03-31,Florence,South Carolina,45041,19,3 +2020-04-01,Florence,South Carolina,45041,21,3 +2020-04-02,Florence,South Carolina,45041,26,5 +2020-04-03,Florence,South Carolina,45041,29,5 +2020-04-04,Florence,South Carolina,45041,35,5 +2020-04-05,Florence,South Carolina,45041,36,5 +2020-04-06,Florence,South Carolina,45041,39,5 +2020-04-07,Florence,South Carolina,45041,45,5 +2020-04-08,Florence,South Carolina,45041,47,5 +2020-04-09,Florence,South Carolina,45041,53,5 +2020-04-10,Florence,South Carolina,45041,64,6 +2020-04-11,Florence,South Carolina,45041,66,7 +2020-04-12,Florence,South Carolina,45041,72,7 +2020-04-13,Florence,South Carolina,45041,79,7 +2020-04-14,Florence,South Carolina,45041,82,7 +2020-04-15,Florence,South Carolina,45041,87,7 +2020-04-16,Florence,South Carolina,45041,103,7 +2020-04-17,Florence,South Carolina,45041,121,8 +2020-04-18,Florence,South Carolina,45041,128,8 +2020-04-19,Florence,South Carolina,45041,150,8 +2020-04-20,Florence,South Carolina,45041,153,8 +2020-04-21,Florence,South Carolina,45041,168,8 +2020-04-22,Florence,South Carolina,45041,176,8 +2020-04-23,Florence,South Carolina,45041,195,8 +2020-04-24,Florence,South Carolina,45041,225,7 +2020-04-25,Florence,South Carolina,45041,242,9 +2020-04-26,Florence,South Carolina,45041,265,9 +2020-04-27,Florence,South Carolina,45041,268,10 +2020-04-28,Florence,South Carolina,45041,273,10 +2020-04-29,Florence,South Carolina,45041,288,13 +2020-04-30,Florence,South Carolina,45041,304,14 +2020-05-01,Florence,South Carolina,45041,325,15 +2020-05-02,Florence,South Carolina,45041,329,16 +2020-05-03,Florence,South Carolina,45041,336,16 +2020-05-04,Florence,South Carolina,45041,348,16 +2020-05-05,Florence,South Carolina,45041,353,17 +2020-05-06,Florence,South Carolina,45041,358,19 +2020-05-07,Florence,South Carolina,45041,370,19 +2020-05-08,Florence,South Carolina,45041,399,20 +2020-05-09,Florence,South Carolina,45041,412,20 +2020-05-10,Florence,South Carolina,45041,424,20 +2020-05-11,Florence,South Carolina,45041,444,23 +2020-05-12,Florence,South Carolina,45041,455,24 +2020-05-13,Florence,South Carolina,45041,469,26 +2020-05-14,Florence,South Carolina,45041,487,26 +2020-05-15,Florence,South Carolina,45041,505,27 +2020-05-16,Florence,South Carolina,45041,519,27 +2020-05-17,Florence,South Carolina,45041,524,28 +2020-05-18,Florence,South Carolina,45041,540,29 +2020-05-19,Florence,South Carolina,45041,547,29 +2020-05-20,Florence,South Carolina,45041,550,29 +2020-05-21,Florence,South Carolina,45041,563,30 +2020-05-22,Florence,South Carolina,45041,574,30 +2020-05-23,Florence,South Carolina,45041,588,31 +2020-05-24,Florence,South Carolina,45041,603,31 +2020-05-25,Florence,South Carolina,45041,602,32 +2020-05-26,Florence,South Carolina,45041,605,33 +2020-05-27,Florence,South Carolina,45041,612,34 +2020-05-28,Florence,South Carolina,45041,622,34 +2020-05-29,Florence,South Carolina,45041,637,37 +2020-05-30,Florence,South Carolina,45041,643,38 +2020-05-31,Florence,South Carolina,45041,655,38 +2020-06-01,Florence,South Carolina,45041,675,38 +2020-06-02,Florence,South Carolina,45041,678,38 +2020-06-03,Florence,South Carolina,45041,684,38 +2020-06-04,Florence,South Carolina,45041,691,39 +2020-06-05,Florence,South Carolina,45041,707,39 +2020-06-06,Florence,South Carolina,45041,711,40 +2020-06-07,Florence,South Carolina,45041,717,40 +2020-06-08,Florence,South Carolina,45041,724,40 +2020-06-09,Florence,South Carolina,45041,727,41 +2020-06-10,Florence,South Carolina,45041,730,42 +2020-06-11,Florence,South Carolina,45041,751,43 +2020-06-12,Florence,South Carolina,45041,770,43 +2020-06-13,Florence,South Carolina,45041,793,43 +2020-06-14,Florence,South Carolina,45041,814,43 +2020-06-15,Florence,South Carolina,45041,826,43 +2020-06-16,Florence,South Carolina,45041,833,43 +2020-06-17,Florence,South Carolina,45041,855,43 +2020-06-18,Florence,South Carolina,45041,871,44 +2020-06-19,Florence,South Carolina,45041,878,44 +2020-06-20,Florence,South Carolina,45041,901,45 +2020-06-21,Florence,South Carolina,45041,921,47 +2020-06-22,Florence,South Carolina,45041,977,47 +2020-06-23,Florence,South Carolina,45041,995,47 +2020-06-24,Florence,South Carolina,45041,1014,47 +2020-06-25,Florence,South Carolina,45041,1037,47 +2020-06-26,Florence,South Carolina,45041,1064,47 +2020-06-27,Florence,South Carolina,45041,1104,48 +2020-06-28,Florence,South Carolina,45041,1134,49 +2020-06-29,Florence,South Carolina,45041,1159,49 +2020-06-30,Florence,South Carolina,45041,1199,51 +2020-07-01,Florence,South Carolina,45041,1230,53 +2020-07-02,Florence,South Carolina,45041,1266,55 +2020-07-03,Florence,South Carolina,45041,1296,55 +2020-07-04,Florence,South Carolina,45041,1355,56 +2020-07-05,Florence,South Carolina,45041,1384,56 +2020-07-06,Florence,South Carolina,45041,1415,56 +2020-07-07,Florence,South Carolina,45041,1427,56 +2020-07-08,Florence,South Carolina,45041,1458,56 +2020-07-09,Florence,South Carolina,45041,1492,56 +2020-03-23,Georgetown,South Carolina,45043,2,0 +2020-03-24,Georgetown,South Carolina,45043,2,0 +2020-03-25,Georgetown,South Carolina,45043,2,0 +2020-03-26,Georgetown,South Carolina,45043,3,0 +2020-03-27,Georgetown,South Carolina,45043,3,0 +2020-03-28,Georgetown,South Carolina,45043,6,0 +2020-03-29,Georgetown,South Carolina,45043,10,0 +2020-03-30,Georgetown,South Carolina,45043,11,0 +2020-03-31,Georgetown,South Carolina,45043,13,0 +2020-04-01,Georgetown,South Carolina,45043,14,0 +2020-04-02,Georgetown,South Carolina,45043,15,0 +2020-04-03,Georgetown,South Carolina,45043,16,0 +2020-04-04,Georgetown,South Carolina,45043,17,1 +2020-04-05,Georgetown,South Carolina,45043,18,1 +2020-04-06,Georgetown,South Carolina,45043,21,1 +2020-04-07,Georgetown,South Carolina,45043,22,1 +2020-04-08,Georgetown,South Carolina,45043,24,1 +2020-04-09,Georgetown,South Carolina,45043,25,1 +2020-04-10,Georgetown,South Carolina,45043,28,1 +2020-04-11,Georgetown,South Carolina,45043,32,1 +2020-04-12,Georgetown,South Carolina,45043,31,1 +2020-04-13,Georgetown,South Carolina,45043,31,1 +2020-04-14,Georgetown,South Carolina,45043,33,1 +2020-04-15,Georgetown,South Carolina,45043,33,2 +2020-04-16,Georgetown,South Carolina,45043,34,2 +2020-04-17,Georgetown,South Carolina,45043,34,2 +2020-04-18,Georgetown,South Carolina,45043,32,2 +2020-04-19,Georgetown,South Carolina,45043,33,2 +2020-04-20,Georgetown,South Carolina,45043,34,2 +2020-04-21,Georgetown,South Carolina,45043,33,2 +2020-04-22,Georgetown,South Carolina,45043,35,2 +2020-04-23,Georgetown,South Carolina,45043,36,2 +2020-04-24,Georgetown,South Carolina,45043,37,2 +2020-04-25,Georgetown,South Carolina,45043,39,2 +2020-04-26,Georgetown,South Carolina,45043,39,2 +2020-04-27,Georgetown,South Carolina,45043,39,2 +2020-04-28,Georgetown,South Carolina,45043,40,2 +2020-04-29,Georgetown,South Carolina,45043,40,3 +2020-04-30,Georgetown,South Carolina,45043,43,3 +2020-05-01,Georgetown,South Carolina,45043,43,3 +2020-05-02,Georgetown,South Carolina,45043,44,3 +2020-05-03,Georgetown,South Carolina,45043,45,3 +2020-05-04,Georgetown,South Carolina,45043,46,3 +2020-05-05,Georgetown,South Carolina,45043,46,3 +2020-05-06,Georgetown,South Carolina,45043,48,3 +2020-05-07,Georgetown,South Carolina,45043,50,3 +2020-05-08,Georgetown,South Carolina,45043,49,3 +2020-05-09,Georgetown,South Carolina,45043,50,3 +2020-05-10,Georgetown,South Carolina,45043,50,3 +2020-05-11,Georgetown,South Carolina,45043,51,3 +2020-05-12,Georgetown,South Carolina,45043,53,3 +2020-05-13,Georgetown,South Carolina,45043,51,3 +2020-05-14,Georgetown,South Carolina,45043,51,3 +2020-05-15,Georgetown,South Carolina,45043,51,3 +2020-05-16,Georgetown,South Carolina,45043,52,3 +2020-05-17,Georgetown,South Carolina,45043,52,3 +2020-05-18,Georgetown,South Carolina,45043,52,3 +2020-05-19,Georgetown,South Carolina,45043,52,3 +2020-05-20,Georgetown,South Carolina,45043,53,3 +2020-05-21,Georgetown,South Carolina,45043,53,3 +2020-05-22,Georgetown,South Carolina,45043,54,3 +2020-05-23,Georgetown,South Carolina,45043,56,3 +2020-05-24,Georgetown,South Carolina,45043,60,3 +2020-05-25,Georgetown,South Carolina,45043,69,3 +2020-05-26,Georgetown,South Carolina,45043,71,3 +2020-05-27,Georgetown,South Carolina,45043,71,3 +2020-05-28,Georgetown,South Carolina,45043,71,3 +2020-05-29,Georgetown,South Carolina,45043,74,3 +2020-05-30,Georgetown,South Carolina,45043,73,3 +2020-05-31,Georgetown,South Carolina,45043,76,3 +2020-06-01,Georgetown,South Carolina,45043,77,3 +2020-06-02,Georgetown,South Carolina,45043,78,3 +2020-06-03,Georgetown,South Carolina,45043,78,3 +2020-06-04,Georgetown,South Carolina,45043,79,3 +2020-06-05,Georgetown,South Carolina,45043,82,3 +2020-06-06,Georgetown,South Carolina,45043,80,3 +2020-06-07,Georgetown,South Carolina,45043,85,3 +2020-06-08,Georgetown,South Carolina,45043,94,3 +2020-06-09,Georgetown,South Carolina,45043,100,3 +2020-06-10,Georgetown,South Carolina,45043,103,3 +2020-06-11,Georgetown,South Carolina,45043,117,3 +2020-06-12,Georgetown,South Carolina,45043,132,3 +2020-06-13,Georgetown,South Carolina,45043,150,3 +2020-06-14,Georgetown,South Carolina,45043,164,3 +2020-06-15,Georgetown,South Carolina,45043,181,3 +2020-06-16,Georgetown,South Carolina,45043,180,3 +2020-06-17,Georgetown,South Carolina,45043,202,3 +2020-06-18,Georgetown,South Carolina,45043,233,3 +2020-06-19,Georgetown,South Carolina,45043,227,3 +2020-06-20,Georgetown,South Carolina,45043,240,3 +2020-06-21,Georgetown,South Carolina,45043,258,3 +2020-06-22,Georgetown,South Carolina,45043,269,3 +2020-06-23,Georgetown,South Carolina,45043,286,3 +2020-06-24,Georgetown,South Carolina,45043,303,3 +2020-06-25,Georgetown,South Carolina,45043,337,3 +2020-06-26,Georgetown,South Carolina,45043,395,3 +2020-06-27,Georgetown,South Carolina,45043,426,3 +2020-06-28,Georgetown,South Carolina,45043,435,3 +2020-06-29,Georgetown,South Carolina,45043,440,3 +2020-06-30,Georgetown,South Carolina,45043,458,3 +2020-07-01,Georgetown,South Carolina,45043,489,3 +2020-07-02,Georgetown,South Carolina,45043,506,3 +2020-07-03,Georgetown,South Carolina,45043,549,4 +2020-07-04,Georgetown,South Carolina,45043,623,5 +2020-07-05,Georgetown,South Carolina,45043,658,5 +2020-07-06,Georgetown,South Carolina,45043,631,6 +2020-07-07,Georgetown,South Carolina,45043,644,6 +2020-07-08,Georgetown,South Carolina,45043,691,8 +2020-07-09,Georgetown,South Carolina,45043,724,7 +2020-03-15,Greenville,South Carolina,45045,1,0 +2020-03-16,Greenville,South Carolina,45045,1,0 +2020-03-17,Greenville,South Carolina,45045,2,0 +2020-03-18,Greenville,South Carolina,45045,3,0 +2020-03-19,Greenville,South Carolina,45045,7,0 +2020-03-20,Greenville,South Carolina,45045,12,0 +2020-03-21,Greenville,South Carolina,45045,17,0 +2020-03-22,Greenville,South Carolina,45045,19,0 +2020-03-23,Greenville,South Carolina,45045,31,0 +2020-03-24,Greenville,South Carolina,45045,39,0 +2020-03-25,Greenville,South Carolina,45045,50,0 +2020-03-26,Greenville,South Carolina,45045,51,0 +2020-03-27,Greenville,South Carolina,45045,51,1 +2020-03-28,Greenville,South Carolina,45045,57,1 +2020-03-29,Greenville,South Carolina,45045,71,1 +2020-03-30,Greenville,South Carolina,45045,88,1 +2020-03-31,Greenville,South Carolina,45045,106,1 +2020-04-01,Greenville,South Carolina,45045,129,1 +2020-04-02,Greenville,South Carolina,45045,154,1 +2020-04-03,Greenville,South Carolina,45045,174,2 +2020-04-04,Greenville,South Carolina,45045,183,2 +2020-04-05,Greenville,South Carolina,45045,186,2 +2020-04-06,Greenville,South Carolina,45045,204,2 +2020-04-07,Greenville,South Carolina,45045,214,3 +2020-04-08,Greenville,South Carolina,45045,223,3 +2020-04-09,Greenville,South Carolina,45045,254,3 +2020-04-10,Greenville,South Carolina,45045,308,6 +2020-04-11,Greenville,South Carolina,45045,325,7 +2020-04-12,Greenville,South Carolina,45045,339,8 +2020-04-13,Greenville,South Carolina,45045,346,10 +2020-04-14,Greenville,South Carolina,45045,373,10 +2020-04-15,Greenville,South Carolina,45045,400,11 +2020-04-16,Greenville,South Carolina,45045,436,11 +2020-04-17,Greenville,South Carolina,45045,447,11 +2020-04-18,Greenville,South Carolina,45045,486,11 +2020-04-19,Greenville,South Carolina,45045,492,11 +2020-04-20,Greenville,South Carolina,45045,498,11 +2020-04-21,Greenville,South Carolina,45045,517,12 +2020-04-22,Greenville,South Carolina,45045,536,13 +2020-04-23,Greenville,South Carolina,45045,558,13 +2020-04-24,Greenville,South Carolina,45045,557,15 +2020-04-25,Greenville,South Carolina,45045,564,16 +2020-04-26,Greenville,South Carolina,45045,609,19 +2020-04-27,Greenville,South Carolina,45045,649,20 +2020-04-28,Greenville,South Carolina,45045,661,22 +2020-04-29,Greenville,South Carolina,45045,689,34 +2020-04-30,Greenville,South Carolina,45045,722,37 +2020-05-01,Greenville,South Carolina,45045,730,38 +2020-05-02,Greenville,South Carolina,45045,749,39 +2020-05-03,Greenville,South Carolina,45045,757,40 +2020-05-04,Greenville,South Carolina,45045,788,42 +2020-05-05,Greenville,South Carolina,45045,796,42 +2020-05-06,Greenville,South Carolina,45045,803,42 +2020-05-07,Greenville,South Carolina,45045,835,42 +2020-05-08,Greenville,South Carolina,45045,869,44 +2020-05-09,Greenville,South Carolina,45045,912,45 +2020-05-10,Greenville,South Carolina,45045,933,45 +2020-05-11,Greenville,South Carolina,45045,946,45 +2020-05-12,Greenville,South Carolina,45045,971,45 +2020-05-13,Greenville,South Carolina,45045,981,46 +2020-05-14,Greenville,South Carolina,45045,996,46 +2020-05-15,Greenville,South Carolina,45045,1021,46 +2020-05-16,Greenville,South Carolina,45045,1058,46 +2020-05-17,Greenville,South Carolina,45045,1095,46 +2020-05-18,Greenville,South Carolina,45045,1116,46 +2020-05-19,Greenville,South Carolina,45045,1145,50 +2020-05-20,Greenville,South Carolina,45045,1155,50 +2020-05-21,Greenville,South Carolina,45045,1180,50 +2020-05-22,Greenville,South Carolina,45045,1200,50 +2020-05-23,Greenville,South Carolina,45045,1231,50 +2020-05-24,Greenville,South Carolina,45045,1286,53 +2020-05-25,Greenville,South Carolina,45045,1300,53 +2020-05-26,Greenville,South Carolina,45045,1344,55 +2020-05-27,Greenville,South Carolina,45045,1364,55 +2020-05-28,Greenville,South Carolina,45045,1382,56 +2020-05-29,Greenville,South Carolina,45045,1461,57 +2020-05-30,Greenville,South Carolina,45045,1469,57 +2020-05-31,Greenville,South Carolina,45045,1619,57 +2020-06-01,Greenville,South Carolina,45045,1690,57 +2020-06-02,Greenville,South Carolina,45045,1751,57 +2020-06-03,Greenville,South Carolina,45045,1799,57 +2020-06-04,Greenville,South Carolina,45045,1854,58 +2020-06-05,Greenville,South Carolina,45045,1934,59 +2020-06-06,Greenville,South Carolina,45045,2012,59 +2020-06-07,Greenville,South Carolina,45045,2060,59 +2020-06-08,Greenville,South Carolina,45045,2175,60 +2020-06-09,Greenville,South Carolina,45045,2222,62 +2020-06-10,Greenville,South Carolina,45045,2371,65 +2020-06-11,Greenville,South Carolina,45045,2492,67 +2020-06-12,Greenville,South Carolina,45045,2624,67 +2020-06-13,Greenville,South Carolina,45045,2779,69 +2020-06-14,Greenville,South Carolina,45045,2920,69 +2020-06-15,Greenville,South Carolina,45045,3011,69 +2020-06-16,Greenville,South Carolina,45045,3072,69 +2020-06-17,Greenville,South Carolina,45045,3143,70 +2020-06-18,Greenville,South Carolina,45045,3308,70 +2020-06-19,Greenville,South Carolina,45045,3416,73 +2020-06-20,Greenville,South Carolina,45045,3541,73 +2020-06-21,Greenville,South Carolina,45045,3675,73 +2020-06-22,Greenville,South Carolina,45045,3773,74 +2020-06-23,Greenville,South Carolina,45045,3827,75 +2020-06-24,Greenville,South Carolina,45045,4072,77 +2020-06-25,Greenville,South Carolina,45045,4198,77 +2020-06-26,Greenville,South Carolina,45045,4391,78 +2020-06-27,Greenville,South Carolina,45045,4546,80 +2020-06-28,Greenville,South Carolina,45045,4741,80 +2020-06-29,Greenville,South Carolina,45045,4895,80 +2020-06-30,Greenville,South Carolina,45045,5009,81 +2020-07-01,Greenville,South Carolina,45045,5118,83 +2020-07-02,Greenville,South Carolina,45045,5371,83 +2020-07-03,Greenville,South Carolina,45045,5497,86 +2020-07-04,Greenville,South Carolina,45045,5696,86 +2020-07-05,Greenville,South Carolina,45045,5864,87 +2020-07-06,Greenville,South Carolina,45045,6019,87 +2020-07-07,Greenville,South Carolina,45045,6068,90 +2020-07-08,Greenville,South Carolina,45045,6235,96 +2020-07-09,Greenville,South Carolina,45045,6443,101 +2020-03-21,Greenwood,South Carolina,45047,2,0 +2020-03-22,Greenwood,South Carolina,45047,2,0 +2020-03-23,Greenwood,South Carolina,45047,2,0 +2020-03-24,Greenwood,South Carolina,45047,2,0 +2020-03-25,Greenwood,South Carolina,45047,2,0 +2020-03-26,Greenwood,South Carolina,45047,2,0 +2020-03-27,Greenwood,South Carolina,45047,2,0 +2020-03-28,Greenwood,South Carolina,45047,3,0 +2020-03-29,Greenwood,South Carolina,45047,3,0 +2020-03-30,Greenwood,South Carolina,45047,3,0 +2020-03-31,Greenwood,South Carolina,45047,5,0 +2020-04-01,Greenwood,South Carolina,45047,6,0 +2020-04-02,Greenwood,South Carolina,45047,8,0 +2020-04-03,Greenwood,South Carolina,45047,9,0 +2020-04-04,Greenwood,South Carolina,45047,10,0 +2020-04-05,Greenwood,South Carolina,45047,10,0 +2020-04-06,Greenwood,South Carolina,45047,11,0 +2020-04-07,Greenwood,South Carolina,45047,12,0 +2020-04-08,Greenwood,South Carolina,45047,14,0 +2020-04-09,Greenwood,South Carolina,45047,15,0 +2020-04-10,Greenwood,South Carolina,45047,16,0 +2020-04-11,Greenwood,South Carolina,45047,17,0 +2020-04-12,Greenwood,South Carolina,45047,17,0 +2020-04-13,Greenwood,South Carolina,45047,18,0 +2020-04-14,Greenwood,South Carolina,45047,18,0 +2020-04-15,Greenwood,South Carolina,45047,19,0 +2020-04-16,Greenwood,South Carolina,45047,31,0 +2020-04-17,Greenwood,South Carolina,45047,32,0 +2020-04-18,Greenwood,South Carolina,45047,34,0 +2020-04-19,Greenwood,South Carolina,45047,36,0 +2020-04-20,Greenwood,South Carolina,45047,37,0 +2020-04-21,Greenwood,South Carolina,45047,40,0 +2020-04-22,Greenwood,South Carolina,45047,41,0 +2020-04-23,Greenwood,South Carolina,45047,41,0 +2020-04-24,Greenwood,South Carolina,45047,42,0 +2020-04-25,Greenwood,South Carolina,45047,43,0 +2020-04-26,Greenwood,South Carolina,45047,44,0 +2020-04-27,Greenwood,South Carolina,45047,45,0 +2020-04-28,Greenwood,South Carolina,45047,46,0 +2020-04-29,Greenwood,South Carolina,45047,46,0 +2020-04-30,Greenwood,South Carolina,45047,49,0 +2020-05-01,Greenwood,South Carolina,45047,49,0 +2020-05-02,Greenwood,South Carolina,45047,53,0 +2020-05-03,Greenwood,South Carolina,45047,55,0 +2020-05-04,Greenwood,South Carolina,45047,55,0 +2020-05-05,Greenwood,South Carolina,45047,57,0 +2020-05-06,Greenwood,South Carolina,45047,61,0 +2020-05-07,Greenwood,South Carolina,45047,61,0 +2020-05-08,Greenwood,South Carolina,45047,62,0 +2020-05-09,Greenwood,South Carolina,45047,62,0 +2020-05-10,Greenwood,South Carolina,45047,62,0 +2020-05-11,Greenwood,South Carolina,45047,63,0 +2020-05-12,Greenwood,South Carolina,45047,63,0 +2020-05-13,Greenwood,South Carolina,45047,67,0 +2020-05-14,Greenwood,South Carolina,45047,68,1 +2020-05-15,Greenwood,South Carolina,45047,69,1 +2020-05-16,Greenwood,South Carolina,45047,69,1 +2020-05-17,Greenwood,South Carolina,45047,69,1 +2020-05-18,Greenwood,South Carolina,45047,71,1 +2020-05-19,Greenwood,South Carolina,45047,72,1 +2020-05-20,Greenwood,South Carolina,45047,72,1 +2020-05-21,Greenwood,South Carolina,45047,76,1 +2020-05-22,Greenwood,South Carolina,45047,79,1 +2020-05-23,Greenwood,South Carolina,45047,82,1 +2020-05-24,Greenwood,South Carolina,45047,82,1 +2020-05-25,Greenwood,South Carolina,45047,82,1 +2020-05-26,Greenwood,South Carolina,45047,92,1 +2020-05-27,Greenwood,South Carolina,45047,103,1 +2020-05-28,Greenwood,South Carolina,45047,121,1 +2020-05-29,Greenwood,South Carolina,45047,128,1 +2020-05-30,Greenwood,South Carolina,45047,129,1 +2020-05-31,Greenwood,South Carolina,45047,142,1 +2020-06-01,Greenwood,South Carolina,45047,147,1 +2020-06-02,Greenwood,South Carolina,45047,148,1 +2020-06-03,Greenwood,South Carolina,45047,150,2 +2020-06-04,Greenwood,South Carolina,45047,159,2 +2020-06-05,Greenwood,South Carolina,45047,160,2 +2020-06-06,Greenwood,South Carolina,45047,172,3 +2020-06-07,Greenwood,South Carolina,45047,172,3 +2020-06-08,Greenwood,South Carolina,45047,183,3 +2020-06-09,Greenwood,South Carolina,45047,198,4 +2020-06-10,Greenwood,South Carolina,45047,199,4 +2020-06-11,Greenwood,South Carolina,45047,235,5 +2020-06-12,Greenwood,South Carolina,45047,259,5 +2020-06-13,Greenwood,South Carolina,45047,273,5 +2020-06-14,Greenwood,South Carolina,45047,304,5 +2020-06-15,Greenwood,South Carolina,45047,312,5 +2020-06-16,Greenwood,South Carolina,45047,315,5 +2020-06-17,Greenwood,South Carolina,45047,320,5 +2020-06-18,Greenwood,South Carolina,45047,322,5 +2020-06-19,Greenwood,South Carolina,45047,345,5 +2020-06-20,Greenwood,South Carolina,45047,353,5 +2020-06-21,Greenwood,South Carolina,45047,371,5 +2020-06-22,Greenwood,South Carolina,45047,374,5 +2020-06-23,Greenwood,South Carolina,45047,382,6 +2020-06-24,Greenwood,South Carolina,45047,392,6 +2020-06-25,Greenwood,South Carolina,45047,402,6 +2020-06-26,Greenwood,South Carolina,45047,405,6 +2020-06-27,Greenwood,South Carolina,45047,448,7 +2020-06-28,Greenwood,South Carolina,45047,458,7 +2020-06-29,Greenwood,South Carolina,45047,467,7 +2020-06-30,Greenwood,South Carolina,45047,493,7 +2020-07-01,Greenwood,South Carolina,45047,506,7 +2020-07-02,Greenwood,South Carolina,45047,527,7 +2020-07-03,Greenwood,South Carolina,45047,528,7 +2020-07-04,Greenwood,South Carolina,45047,534,7 +2020-07-05,Greenwood,South Carolina,45047,561,7 +2020-07-06,Greenwood,South Carolina,45047,595,7 +2020-07-07,Greenwood,South Carolina,45047,599,7 +2020-07-08,Greenwood,South Carolina,45047,649,7 +2020-07-09,Greenwood,South Carolina,45047,669,7 +2020-04-02,Hampton,South Carolina,45049,1,0 +2020-04-03,Hampton,South Carolina,45049,1,0 +2020-04-04,Hampton,South Carolina,45049,1,0 +2020-04-05,Hampton,South Carolina,45049,2,0 +2020-04-06,Hampton,South Carolina,45049,3,0 +2020-04-07,Hampton,South Carolina,45049,4,0 +2020-04-08,Hampton,South Carolina,45049,4,0 +2020-04-09,Hampton,South Carolina,45049,5,0 +2020-04-10,Hampton,South Carolina,45049,6,0 +2020-04-11,Hampton,South Carolina,45049,6,0 +2020-04-12,Hampton,South Carolina,45049,7,0 +2020-04-13,Hampton,South Carolina,45049,9,0 +2020-04-14,Hampton,South Carolina,45049,11,0 +2020-04-15,Hampton,South Carolina,45049,12,0 +2020-04-16,Hampton,South Carolina,45049,15,0 +2020-04-17,Hampton,South Carolina,45049,18,0 +2020-04-18,Hampton,South Carolina,45049,20,0 +2020-04-19,Hampton,South Carolina,45049,21,0 +2020-04-20,Hampton,South Carolina,45049,21,0 +2020-04-21,Hampton,South Carolina,45049,21,0 +2020-04-22,Hampton,South Carolina,45049,21,0 +2020-04-23,Hampton,South Carolina,45049,21,0 +2020-04-24,Hampton,South Carolina,45049,21,0 +2020-04-25,Hampton,South Carolina,45049,21,0 +2020-04-26,Hampton,South Carolina,45049,21,0 +2020-04-27,Hampton,South Carolina,45049,22,0 +2020-04-28,Hampton,South Carolina,45049,22,0 +2020-04-29,Hampton,South Carolina,45049,23,0 +2020-04-30,Hampton,South Carolina,45049,23,0 +2020-05-01,Hampton,South Carolina,45049,26,0 +2020-05-02,Hampton,South Carolina,45049,26,0 +2020-05-03,Hampton,South Carolina,45049,26,0 +2020-05-04,Hampton,South Carolina,45049,26,0 +2020-05-05,Hampton,South Carolina,45049,26,0 +2020-05-06,Hampton,South Carolina,45049,27,0 +2020-05-07,Hampton,South Carolina,45049,27,0 +2020-05-08,Hampton,South Carolina,45049,27,0 +2020-05-09,Hampton,South Carolina,45049,27,0 +2020-05-10,Hampton,South Carolina,45049,28,0 +2020-05-11,Hampton,South Carolina,45049,28,1 +2020-05-12,Hampton,South Carolina,45049,28,1 +2020-05-13,Hampton,South Carolina,45049,28,1 +2020-05-14,Hampton,South Carolina,45049,29,1 +2020-05-15,Hampton,South Carolina,45049,29,0 +2020-05-16,Hampton,South Carolina,45049,29,0 +2020-05-17,Hampton,South Carolina,45049,29,0 +2020-05-18,Hampton,South Carolina,45049,30,0 +2020-05-19,Hampton,South Carolina,45049,30,0 +2020-05-20,Hampton,South Carolina,45049,30,0 +2020-05-21,Hampton,South Carolina,45049,30,0 +2020-05-22,Hampton,South Carolina,45049,31,0 +2020-05-23,Hampton,South Carolina,45049,31,0 +2020-05-24,Hampton,South Carolina,45049,34,0 +2020-05-25,Hampton,South Carolina,45049,35,0 +2020-05-26,Hampton,South Carolina,45049,35,0 +2020-05-27,Hampton,South Carolina,45049,34,0 +2020-05-28,Hampton,South Carolina,45049,36,0 +2020-05-29,Hampton,South Carolina,45049,36,0 +2020-05-30,Hampton,South Carolina,45049,36,0 +2020-05-31,Hampton,South Carolina,45049,37,1 +2020-06-01,Hampton,South Carolina,45049,38,1 +2020-06-02,Hampton,South Carolina,45049,38,1 +2020-06-03,Hampton,South Carolina,45049,38,1 +2020-06-04,Hampton,South Carolina,45049,38,1 +2020-06-05,Hampton,South Carolina,45049,38,1 +2020-06-06,Hampton,South Carolina,45049,40,1 +2020-06-07,Hampton,South Carolina,45049,41,1 +2020-06-08,Hampton,South Carolina,45049,45,1 +2020-06-09,Hampton,South Carolina,45049,46,1 +2020-06-10,Hampton,South Carolina,45049,45,1 +2020-06-11,Hampton,South Carolina,45049,50,1 +2020-06-12,Hampton,South Carolina,45049,50,1 +2020-06-13,Hampton,South Carolina,45049,50,1 +2020-06-14,Hampton,South Carolina,45049,50,1 +2020-06-15,Hampton,South Carolina,45049,50,1 +2020-06-16,Hampton,South Carolina,45049,50,1 +2020-06-17,Hampton,South Carolina,45049,50,1 +2020-06-18,Hampton,South Carolina,45049,50,1 +2020-06-19,Hampton,South Carolina,45049,53,1 +2020-06-20,Hampton,South Carolina,45049,54,1 +2020-06-21,Hampton,South Carolina,45049,54,1 +2020-06-22,Hampton,South Carolina,45049,55,1 +2020-06-23,Hampton,South Carolina,45049,58,1 +2020-06-24,Hampton,South Carolina,45049,58,1 +2020-06-25,Hampton,South Carolina,45049,61,1 +2020-06-26,Hampton,South Carolina,45049,61,1 +2020-06-27,Hampton,South Carolina,45049,63,2 +2020-06-28,Hampton,South Carolina,45049,65,2 +2020-06-29,Hampton,South Carolina,45049,68,2 +2020-06-30,Hampton,South Carolina,45049,71,2 +2020-07-01,Hampton,South Carolina,45049,73,2 +2020-07-02,Hampton,South Carolina,45049,74,2 +2020-07-03,Hampton,South Carolina,45049,79,2 +2020-07-04,Hampton,South Carolina,45049,81,2 +2020-07-05,Hampton,South Carolina,45049,86,2 +2020-07-06,Hampton,South Carolina,45049,87,2 +2020-07-07,Hampton,South Carolina,45049,87,2 +2020-07-08,Hampton,South Carolina,45049,88,2 +2020-07-09,Hampton,South Carolina,45049,93,3 +2020-03-15,Horry,South Carolina,45051,3,0 +2020-03-16,Horry,South Carolina,45051,3,0 +2020-03-17,Horry,South Carolina,45051,4,0 +2020-03-18,Horry,South Carolina,45051,5,0 +2020-03-19,Horry,South Carolina,45051,6,0 +2020-03-20,Horry,South Carolina,45051,8,0 +2020-03-21,Horry,South Carolina,45051,9,0 +2020-03-22,Horry,South Carolina,45051,11,0 +2020-03-23,Horry,South Carolina,45051,16,0 +2020-03-24,Horry,South Carolina,45051,19,1 +2020-03-25,Horry,South Carolina,45051,20,1 +2020-03-26,Horry,South Carolina,45051,21,1 +2020-03-27,Horry,South Carolina,45051,24,1 +2020-03-28,Horry,South Carolina,45051,28,2 +2020-03-29,Horry,South Carolina,45051,31,3 +2020-03-30,Horry,South Carolina,45051,32,3 +2020-03-31,Horry,South Carolina,45051,37,3 +2020-04-01,Horry,South Carolina,45051,42,3 +2020-04-02,Horry,South Carolina,45051,50,4 +2020-04-03,Horry,South Carolina,45051,51,4 +2020-04-04,Horry,South Carolina,45051,63,4 +2020-04-05,Horry,South Carolina,45051,64,5 +2020-04-06,Horry,South Carolina,45051,76,6 +2020-04-07,Horry,South Carolina,45051,91,6 +2020-04-08,Horry,South Carolina,45051,98,7 +2020-04-09,Horry,South Carolina,45051,106,7 +2020-04-10,Horry,South Carolina,45051,124,7 +2020-04-11,Horry,South Carolina,45051,132,7 +2020-04-12,Horry,South Carolina,45051,134,7 +2020-04-13,Horry,South Carolina,45051,147,7 +2020-04-14,Horry,South Carolina,45051,151,8 +2020-04-15,Horry,South Carolina,45051,150,8 +2020-04-16,Horry,South Carolina,45051,155,9 +2020-04-17,Horry,South Carolina,45051,167,10 +2020-04-18,Horry,South Carolina,45051,176,12 +2020-04-19,Horry,South Carolina,45051,185,12 +2020-04-20,Horry,South Carolina,45051,185,12 +2020-04-21,Horry,South Carolina,45051,189,12 +2020-04-22,Horry,South Carolina,45051,190,12 +2020-04-23,Horry,South Carolina,45051,196,12 +2020-04-24,Horry,South Carolina,45051,198,12 +2020-04-25,Horry,South Carolina,45051,201,12 +2020-04-26,Horry,South Carolina,45051,203,12 +2020-04-27,Horry,South Carolina,45051,209,12 +2020-04-28,Horry,South Carolina,45051,211,15 +2020-04-29,Horry,South Carolina,45051,211,15 +2020-04-30,Horry,South Carolina,45051,215,15 +2020-05-01,Horry,South Carolina,45051,223,16 +2020-05-02,Horry,South Carolina,45051,223,16 +2020-05-03,Horry,South Carolina,45051,226,17 +2020-05-04,Horry,South Carolina,45051,230,18 +2020-05-05,Horry,South Carolina,45051,236,18 +2020-05-06,Horry,South Carolina,45051,238,18 +2020-05-07,Horry,South Carolina,45051,242,18 +2020-05-08,Horry,South Carolina,45051,251,18 +2020-05-09,Horry,South Carolina,45051,256,18 +2020-05-10,Horry,South Carolina,45051,262,18 +2020-05-11,Horry,South Carolina,45051,267,18 +2020-05-12,Horry,South Carolina,45051,269,18 +2020-05-13,Horry,South Carolina,45051,273,18 +2020-05-14,Horry,South Carolina,45051,278,18 +2020-05-15,Horry,South Carolina,45051,283,18 +2020-05-16,Horry,South Carolina,45051,293,18 +2020-05-17,Horry,South Carolina,45051,298,19 +2020-05-18,Horry,South Carolina,45051,299,19 +2020-05-19,Horry,South Carolina,45051,303,20 +2020-05-20,Horry,South Carolina,45051,314,20 +2020-05-21,Horry,South Carolina,45051,333,21 +2020-05-22,Horry,South Carolina,45051,359,21 +2020-05-23,Horry,South Carolina,45051,371,21 +2020-05-24,Horry,South Carolina,45051,377,21 +2020-05-25,Horry,South Carolina,45051,377,22 +2020-05-26,Horry,South Carolina,45051,382,22 +2020-05-27,Horry,South Carolina,45051,392,24 +2020-05-28,Horry,South Carolina,45051,395,24 +2020-05-29,Horry,South Carolina,45051,410,25 +2020-05-30,Horry,South Carolina,45051,417,25 +2020-05-31,Horry,South Carolina,45051,432,25 +2020-06-01,Horry,South Carolina,45051,454,26 +2020-06-02,Horry,South Carolina,45051,472,27 +2020-06-03,Horry,South Carolina,45051,489,28 +2020-06-04,Horry,South Carolina,45051,506,28 +2020-06-05,Horry,South Carolina,45051,536,29 +2020-06-06,Horry,South Carolina,45051,570,31 +2020-06-07,Horry,South Carolina,45051,618,31 +2020-06-08,Horry,South Carolina,45051,676,32 +2020-06-09,Horry,South Carolina,45051,720,33 +2020-06-10,Horry,South Carolina,45051,803,33 +2020-06-11,Horry,South Carolina,45051,849,33 +2020-06-12,Horry,South Carolina,45051,936,33 +2020-06-13,Horry,South Carolina,45051,1037,34 +2020-06-14,Horry,South Carolina,45051,1133,34 +2020-06-15,Horry,South Carolina,45051,1194,34 +2020-06-16,Horry,South Carolina,45051,1297,34 +2020-06-17,Horry,South Carolina,45051,1417,35 +2020-06-18,Horry,South Carolina,45051,1560,35 +2020-06-19,Horry,South Carolina,45051,1697,39 +2020-06-20,Horry,South Carolina,45051,1818,39 +2020-06-21,Horry,South Carolina,45051,1932,39 +2020-06-22,Horry,South Carolina,45051,2055,39 +2020-06-23,Horry,South Carolina,45051,2191,42 +2020-06-24,Horry,South Carolina,45051,2372,42 +2020-06-25,Horry,South Carolina,45051,2497,42 +2020-06-26,Horry,South Carolina,45051,2582,42 +2020-06-27,Horry,South Carolina,45051,2803,44 +2020-06-28,Horry,South Carolina,45051,2987,44 +2020-06-29,Horry,South Carolina,45051,3152,44 +2020-06-30,Horry,South Carolina,45051,3321,45 +2020-07-01,Horry,South Carolina,45051,3550,48 +2020-07-02,Horry,South Carolina,45051,3730,50 +2020-07-03,Horry,South Carolina,45051,3966,50 +2020-07-04,Horry,South Carolina,45051,4324,54 +2020-07-05,Horry,South Carolina,45051,4482,54 +2020-07-06,Horry,South Carolina,45051,4717,55 +2020-07-07,Horry,South Carolina,45051,4847,55 +2020-07-08,Horry,South Carolina,45051,5016,62 +2020-07-09,Horry,South Carolina,45051,5205,65 +2020-03-21,Jasper,South Carolina,45053,1,0 +2020-03-22,Jasper,South Carolina,45053,1,0 +2020-03-23,Jasper,South Carolina,45053,1,0 +2020-03-24,Jasper,South Carolina,45053,2,0 +2020-03-25,Jasper,South Carolina,45053,2,0 +2020-03-26,Jasper,South Carolina,45053,3,0 +2020-03-27,Jasper,South Carolina,45053,3,0 +2020-03-28,Jasper,South Carolina,45053,3,0 +2020-03-29,Jasper,South Carolina,45053,3,0 +2020-03-30,Jasper,South Carolina,45053,3,0 +2020-03-31,Jasper,South Carolina,45053,3,0 +2020-04-01,Jasper,South Carolina,45053,4,0 +2020-04-02,Jasper,South Carolina,45053,7,0 +2020-04-03,Jasper,South Carolina,45053,8,0 +2020-04-04,Jasper,South Carolina,45053,9,0 +2020-04-05,Jasper,South Carolina,45053,9,0 +2020-04-06,Jasper,South Carolina,45053,11,0 +2020-04-07,Jasper,South Carolina,45053,12,0 +2020-04-08,Jasper,South Carolina,45053,12,0 +2020-04-09,Jasper,South Carolina,45053,11,0 +2020-04-10,Jasper,South Carolina,45053,11,0 +2020-04-11,Jasper,South Carolina,45053,11,0 +2020-04-12,Jasper,South Carolina,45053,11,0 +2020-04-13,Jasper,South Carolina,45053,12,0 +2020-04-14,Jasper,South Carolina,45053,14,0 +2020-04-15,Jasper,South Carolina,45053,14,0 +2020-04-16,Jasper,South Carolina,45053,14,0 +2020-04-17,Jasper,South Carolina,45053,15,0 +2020-04-18,Jasper,South Carolina,45053,16,0 +2020-04-19,Jasper,South Carolina,45053,15,1 +2020-04-20,Jasper,South Carolina,45053,15,1 +2020-04-21,Jasper,South Carolina,45053,15,1 +2020-04-22,Jasper,South Carolina,45053,15,1 +2020-04-23,Jasper,South Carolina,45053,15,1 +2020-04-24,Jasper,South Carolina,45053,17,1 +2020-04-25,Jasper,South Carolina,45053,17,1 +2020-04-26,Jasper,South Carolina,45053,19,1 +2020-04-27,Jasper,South Carolina,45053,19,1 +2020-04-28,Jasper,South Carolina,45053,19,1 +2020-04-29,Jasper,South Carolina,45053,19,1 +2020-04-30,Jasper,South Carolina,45053,19,1 +2020-05-01,Jasper,South Carolina,45053,21,1 +2020-05-02,Jasper,South Carolina,45053,21,1 +2020-05-03,Jasper,South Carolina,45053,21,1 +2020-05-04,Jasper,South Carolina,45053,21,1 +2020-05-05,Jasper,South Carolina,45053,21,1 +2020-05-06,Jasper,South Carolina,45053,21,1 +2020-05-07,Jasper,South Carolina,45053,21,1 +2020-05-08,Jasper,South Carolina,45053,21,1 +2020-05-09,Jasper,South Carolina,45053,23,1 +2020-05-10,Jasper,South Carolina,45053,25,1 +2020-05-11,Jasper,South Carolina,45053,25,1 +2020-05-12,Jasper,South Carolina,45053,25,1 +2020-05-13,Jasper,South Carolina,45053,25,1 +2020-05-14,Jasper,South Carolina,45053,25,1 +2020-05-15,Jasper,South Carolina,45053,25,1 +2020-05-16,Jasper,South Carolina,45053,26,1 +2020-05-17,Jasper,South Carolina,45053,26,1 +2020-05-18,Jasper,South Carolina,45053,27,1 +2020-05-19,Jasper,South Carolina,45053,27,1 +2020-05-20,Jasper,South Carolina,45053,28,1 +2020-05-21,Jasper,South Carolina,45053,28,1 +2020-05-22,Jasper,South Carolina,45053,30,2 +2020-05-23,Jasper,South Carolina,45053,36,2 +2020-05-24,Jasper,South Carolina,45053,38,2 +2020-05-25,Jasper,South Carolina,45053,38,2 +2020-05-26,Jasper,South Carolina,45053,39,2 +2020-05-27,Jasper,South Carolina,45053,39,2 +2020-05-28,Jasper,South Carolina,45053,39,2 +2020-05-29,Jasper,South Carolina,45053,39,2 +2020-05-30,Jasper,South Carolina,45053,41,2 +2020-05-31,Jasper,South Carolina,45053,42,2 +2020-06-01,Jasper,South Carolina,45053,42,2 +2020-06-02,Jasper,South Carolina,45053,43,2 +2020-06-03,Jasper,South Carolina,45053,43,2 +2020-06-04,Jasper,South Carolina,45053,43,2 +2020-06-05,Jasper,South Carolina,45053,45,2 +2020-06-06,Jasper,South Carolina,45053,46,2 +2020-06-07,Jasper,South Carolina,45053,47,2 +2020-06-08,Jasper,South Carolina,45053,48,2 +2020-06-09,Jasper,South Carolina,45053,50,2 +2020-06-10,Jasper,South Carolina,45053,50,2 +2020-06-11,Jasper,South Carolina,45053,52,2 +2020-06-12,Jasper,South Carolina,45053,54,2 +2020-06-13,Jasper,South Carolina,45053,54,2 +2020-06-14,Jasper,South Carolina,45053,54,3 +2020-06-15,Jasper,South Carolina,45053,55,3 +2020-06-16,Jasper,South Carolina,45053,56,3 +2020-06-17,Jasper,South Carolina,45053,57,3 +2020-06-18,Jasper,South Carolina,45053,65,3 +2020-06-19,Jasper,South Carolina,45053,67,3 +2020-06-20,Jasper,South Carolina,45053,72,3 +2020-06-21,Jasper,South Carolina,45053,76,3 +2020-06-22,Jasper,South Carolina,45053,82,3 +2020-06-23,Jasper,South Carolina,45053,87,3 +2020-06-24,Jasper,South Carolina,45053,92,3 +2020-06-25,Jasper,South Carolina,45053,95,3 +2020-06-26,Jasper,South Carolina,45053,103,3 +2020-06-27,Jasper,South Carolina,45053,110,3 +2020-06-28,Jasper,South Carolina,45053,121,3 +2020-06-29,Jasper,South Carolina,45053,122,3 +2020-06-30,Jasper,South Carolina,45053,132,3 +2020-07-01,Jasper,South Carolina,45053,138,3 +2020-07-02,Jasper,South Carolina,45053,142,3 +2020-07-03,Jasper,South Carolina,45053,170,3 +2020-07-04,Jasper,South Carolina,45053,170,3 +2020-07-05,Jasper,South Carolina,45053,178,3 +2020-07-06,Jasper,South Carolina,45053,188,3 +2020-07-07,Jasper,South Carolina,45053,208,3 +2020-07-08,Jasper,South Carolina,45053,215,3 +2020-07-09,Jasper,South Carolina,45053,221,3 +2020-03-06,Kershaw,South Carolina,45055,1,0 +2020-03-07,Kershaw,South Carolina,45055,1,0 +2020-03-08,Kershaw,South Carolina,45055,4,0 +2020-03-09,Kershaw,South Carolina,45055,5,0 +2020-03-10,Kershaw,South Carolina,45055,7,0 +2020-03-11,Kershaw,South Carolina,45055,7,0 +2020-03-12,Kershaw,South Carolina,45055,8,0 +2020-03-13,Kershaw,South Carolina,45055,9,0 +2020-03-14,Kershaw,South Carolina,45055,11,0 +2020-03-15,Kershaw,South Carolina,45055,14,0 +2020-03-16,Kershaw,South Carolina,45055,17,0 +2020-03-17,Kershaw,South Carolina,45055,22,0 +2020-03-18,Kershaw,South Carolina,45055,25,0 +2020-03-19,Kershaw,South Carolina,45055,29,0 +2020-03-20,Kershaw,South Carolina,45055,36,0 +2020-03-21,Kershaw,South Carolina,45055,42,0 +2020-03-22,Kershaw,South Carolina,45055,44,0 +2020-03-23,Kershaw,South Carolina,45055,54,1 +2020-03-24,Kershaw,South Carolina,45055,58,1 +2020-03-25,Kershaw,South Carolina,45055,63,1 +2020-03-26,Kershaw,South Carolina,45055,64,1 +2020-03-27,Kershaw,South Carolina,45055,70,2 +2020-03-28,Kershaw,South Carolina,45055,77,2 +2020-03-29,Kershaw,South Carolina,45055,83,2 +2020-03-30,Kershaw,South Carolina,45055,99,2 +2020-03-31,Kershaw,South Carolina,45055,105,2 +2020-04-01,Kershaw,South Carolina,45055,116,2 +2020-04-02,Kershaw,South Carolina,45055,129,2 +2020-04-03,Kershaw,South Carolina,45055,136,2 +2020-04-04,Kershaw,South Carolina,45055,141,2 +2020-04-05,Kershaw,South Carolina,45055,148,2 +2020-04-06,Kershaw,South Carolina,45055,152,2 +2020-04-07,Kershaw,South Carolina,45055,159,2 +2020-04-08,Kershaw,South Carolina,45055,165,3 +2020-04-09,Kershaw,South Carolina,45055,170,3 +2020-04-10,Kershaw,South Carolina,45055,177,3 +2020-04-11,Kershaw,South Carolina,45055,178,4 +2020-04-12,Kershaw,South Carolina,45055,179,4 +2020-04-13,Kershaw,South Carolina,45055,181,5 +2020-04-14,Kershaw,South Carolina,45055,187,5 +2020-04-15,Kershaw,South Carolina,45055,187,7 +2020-04-16,Kershaw,South Carolina,45055,189,8 +2020-04-17,Kershaw,South Carolina,45055,190,8 +2020-04-18,Kershaw,South Carolina,45055,195,8 +2020-04-19,Kershaw,South Carolina,45055,197,8 +2020-04-20,Kershaw,South Carolina,45055,201,9 +2020-04-21,Kershaw,South Carolina,45055,203,9 +2020-04-22,Kershaw,South Carolina,45055,205,9 +2020-04-23,Kershaw,South Carolina,45055,208,9 +2020-04-24,Kershaw,South Carolina,45055,211,10 +2020-04-25,Kershaw,South Carolina,45055,215,10 +2020-04-26,Kershaw,South Carolina,45055,218,10 +2020-04-27,Kershaw,South Carolina,45055,223,10 +2020-04-28,Kershaw,South Carolina,45055,229,10 +2020-04-29,Kershaw,South Carolina,45055,234,10 +2020-04-30,Kershaw,South Carolina,45055,237,10 +2020-05-01,Kershaw,South Carolina,45055,237,10 +2020-05-02,Kershaw,South Carolina,45055,243,10 +2020-05-03,Kershaw,South Carolina,45055,245,10 +2020-05-04,Kershaw,South Carolina,45055,245,10 +2020-05-05,Kershaw,South Carolina,45055,247,10 +2020-05-06,Kershaw,South Carolina,45055,245,10 +2020-05-07,Kershaw,South Carolina,45055,250,12 +2020-05-08,Kershaw,South Carolina,45055,250,12 +2020-05-09,Kershaw,South Carolina,45055,253,12 +2020-05-10,Kershaw,South Carolina,45055,253,12 +2020-05-11,Kershaw,South Carolina,45055,257,12 +2020-05-12,Kershaw,South Carolina,45055,259,12 +2020-05-13,Kershaw,South Carolina,45055,257,12 +2020-05-14,Kershaw,South Carolina,45055,257,12 +2020-05-15,Kershaw,South Carolina,45055,261,12 +2020-05-16,Kershaw,South Carolina,45055,265,12 +2020-05-17,Kershaw,South Carolina,45055,265,12 +2020-05-18,Kershaw,South Carolina,45055,270,12 +2020-05-19,Kershaw,South Carolina,45055,272,12 +2020-05-20,Kershaw,South Carolina,45055,275,12 +2020-05-21,Kershaw,South Carolina,45055,281,13 +2020-05-22,Kershaw,South Carolina,45055,289,13 +2020-05-23,Kershaw,South Carolina,45055,299,13 +2020-05-24,Kershaw,South Carolina,45055,300,14 +2020-05-25,Kershaw,South Carolina,45055,300,14 +2020-05-26,Kershaw,South Carolina,45055,305,14 +2020-05-27,Kershaw,South Carolina,45055,312,14 +2020-05-28,Kershaw,South Carolina,45055,317,14 +2020-05-29,Kershaw,South Carolina,45055,324,14 +2020-05-30,Kershaw,South Carolina,45055,329,14 +2020-05-31,Kershaw,South Carolina,45055,332,14 +2020-06-01,Kershaw,South Carolina,45055,338,14 +2020-06-02,Kershaw,South Carolina,45055,339,14 +2020-06-03,Kershaw,South Carolina,45055,347,14 +2020-06-04,Kershaw,South Carolina,45055,351,14 +2020-06-05,Kershaw,South Carolina,45055,368,14 +2020-06-06,Kershaw,South Carolina,45055,373,14 +2020-06-07,Kershaw,South Carolina,45055,379,14 +2020-06-08,Kershaw,South Carolina,45055,384,15 +2020-06-09,Kershaw,South Carolina,45055,391,15 +2020-06-10,Kershaw,South Carolina,45055,397,15 +2020-06-11,Kershaw,South Carolina,45055,404,15 +2020-06-12,Kershaw,South Carolina,45055,419,15 +2020-06-13,Kershaw,South Carolina,45055,430,15 +2020-06-14,Kershaw,South Carolina,45055,444,15 +2020-06-15,Kershaw,South Carolina,45055,448,15 +2020-06-16,Kershaw,South Carolina,45055,461,15 +2020-06-17,Kershaw,South Carolina,45055,469,15 +2020-06-18,Kershaw,South Carolina,45055,487,16 +2020-06-19,Kershaw,South Carolina,45055,503,16 +2020-06-20,Kershaw,South Carolina,45055,520,16 +2020-06-21,Kershaw,South Carolina,45055,532,16 +2020-06-22,Kershaw,South Carolina,45055,558,16 +2020-06-23,Kershaw,South Carolina,45055,571,15 +2020-06-24,Kershaw,South Carolina,45055,581,15 +2020-06-25,Kershaw,South Carolina,45055,587,15 +2020-06-26,Kershaw,South Carolina,45055,608,15 +2020-06-27,Kershaw,South Carolina,45055,615,15 +2020-06-28,Kershaw,South Carolina,45055,628,15 +2020-06-29,Kershaw,South Carolina,45055,640,15 +2020-06-30,Kershaw,South Carolina,45055,665,15 +2020-07-01,Kershaw,South Carolina,45055,695,15 +2020-07-02,Kershaw,South Carolina,45055,708,15 +2020-07-03,Kershaw,South Carolina,45055,725,17 +2020-07-04,Kershaw,South Carolina,45055,744,17 +2020-07-05,Kershaw,South Carolina,45055,767,17 +2020-07-06,Kershaw,South Carolina,45055,790,17 +2020-07-07,Kershaw,South Carolina,45055,797,16 +2020-07-08,Kershaw,South Carolina,45055,807,17 +2020-07-09,Kershaw,South Carolina,45055,822,17 +2020-03-11,Lancaster,South Carolina,45057,1,0 +2020-03-12,Lancaster,South Carolina,45057,2,0 +2020-03-13,Lancaster,South Carolina,45057,2,0 +2020-03-14,Lancaster,South Carolina,45057,2,0 +2020-03-15,Lancaster,South Carolina,45057,2,0 +2020-03-16,Lancaster,South Carolina,45057,2,0 +2020-03-17,Lancaster,South Carolina,45057,2,0 +2020-03-18,Lancaster,South Carolina,45057,2,0 +2020-03-19,Lancaster,South Carolina,45057,3,0 +2020-03-20,Lancaster,South Carolina,45057,3,0 +2020-03-21,Lancaster,South Carolina,45057,3,0 +2020-03-22,Lancaster,South Carolina,45057,5,0 +2020-03-23,Lancaster,South Carolina,45057,7,0 +2020-03-24,Lancaster,South Carolina,45057,7,0 +2020-03-25,Lancaster,South Carolina,45057,7,0 +2020-03-26,Lancaster,South Carolina,45057,7,0 +2020-03-27,Lancaster,South Carolina,45057,8,0 +2020-03-28,Lancaster,South Carolina,45057,9,0 +2020-03-29,Lancaster,South Carolina,45057,13,0 +2020-03-30,Lancaster,South Carolina,45057,14,0 +2020-03-31,Lancaster,South Carolina,45057,15,0 +2020-04-01,Lancaster,South Carolina,45057,17,0 +2020-04-02,Lancaster,South Carolina,45057,26,0 +2020-04-03,Lancaster,South Carolina,45057,31,0 +2020-04-04,Lancaster,South Carolina,45057,39,0 +2020-04-05,Lancaster,South Carolina,45057,41,0 +2020-04-06,Lancaster,South Carolina,45057,43,0 +2020-04-07,Lancaster,South Carolina,45057,46,0 +2020-04-08,Lancaster,South Carolina,45057,48,0 +2020-04-09,Lancaster,South Carolina,45057,51,0 +2020-04-10,Lancaster,South Carolina,45057,61,0 +2020-04-11,Lancaster,South Carolina,45057,62,0 +2020-04-12,Lancaster,South Carolina,45057,65,0 +2020-04-13,Lancaster,South Carolina,45057,66,0 +2020-04-14,Lancaster,South Carolina,45057,67,1 +2020-04-15,Lancaster,South Carolina,45057,68,2 +2020-04-16,Lancaster,South Carolina,45057,71,2 +2020-04-17,Lancaster,South Carolina,45057,73,2 +2020-04-18,Lancaster,South Carolina,45057,73,2 +2020-04-19,Lancaster,South Carolina,45057,79,2 +2020-04-20,Lancaster,South Carolina,45057,79,3 +2020-04-21,Lancaster,South Carolina,45057,79,3 +2020-04-22,Lancaster,South Carolina,45057,80,3 +2020-04-23,Lancaster,South Carolina,45057,79,3 +2020-04-24,Lancaster,South Carolina,45057,80,3 +2020-04-25,Lancaster,South Carolina,45057,85,3 +2020-04-26,Lancaster,South Carolina,45057,87,3 +2020-04-27,Lancaster,South Carolina,45057,88,3 +2020-04-28,Lancaster,South Carolina,45057,90,4 +2020-04-29,Lancaster,South Carolina,45057,93,4 +2020-04-30,Lancaster,South Carolina,45057,96,4 +2020-05-01,Lancaster,South Carolina,45057,99,4 +2020-05-02,Lancaster,South Carolina,45057,100,4 +2020-05-03,Lancaster,South Carolina,45057,101,4 +2020-05-04,Lancaster,South Carolina,45057,99,4 +2020-05-05,Lancaster,South Carolina,45057,96,4 +2020-05-06,Lancaster,South Carolina,45057,99,4 +2020-05-07,Lancaster,South Carolina,45057,101,4 +2020-05-08,Lancaster,South Carolina,45057,103,4 +2020-05-09,Lancaster,South Carolina,45057,104,4 +2020-05-10,Lancaster,South Carolina,45057,110,4 +2020-05-11,Lancaster,South Carolina,45057,111,5 +2020-05-12,Lancaster,South Carolina,45057,115,5 +2020-05-13,Lancaster,South Carolina,45057,110,5 +2020-05-14,Lancaster,South Carolina,45057,108,5 +2020-05-15,Lancaster,South Carolina,45057,110,5 +2020-05-16,Lancaster,South Carolina,45057,109,5 +2020-05-17,Lancaster,South Carolina,45057,111,5 +2020-05-18,Lancaster,South Carolina,45057,111,5 +2020-05-19,Lancaster,South Carolina,45057,108,5 +2020-05-20,Lancaster,South Carolina,45057,108,5 +2020-05-21,Lancaster,South Carolina,45057,116,5 +2020-05-22,Lancaster,South Carolina,45057,120,5 +2020-05-23,Lancaster,South Carolina,45057,121,5 +2020-05-24,Lancaster,South Carolina,45057,121,5 +2020-05-25,Lancaster,South Carolina,45057,121,5 +2020-05-26,Lancaster,South Carolina,45057,122,5 +2020-05-27,Lancaster,South Carolina,45057,124,5 +2020-05-28,Lancaster,South Carolina,45057,126,5 +2020-05-29,Lancaster,South Carolina,45057,129,5 +2020-05-30,Lancaster,South Carolina,45057,130,5 +2020-05-31,Lancaster,South Carolina,45057,135,5 +2020-06-01,Lancaster,South Carolina,45057,140,5 +2020-06-02,Lancaster,South Carolina,45057,166,5 +2020-06-03,Lancaster,South Carolina,45057,180,6 +2020-06-04,Lancaster,South Carolina,45057,182,6 +2020-06-05,Lancaster,South Carolina,45057,189,6 +2020-06-06,Lancaster,South Carolina,45057,199,6 +2020-06-07,Lancaster,South Carolina,45057,201,6 +2020-06-08,Lancaster,South Carolina,45057,203,6 +2020-06-09,Lancaster,South Carolina,45057,214,6 +2020-06-10,Lancaster,South Carolina,45057,220,6 +2020-06-11,Lancaster,South Carolina,45057,232,6 +2020-06-12,Lancaster,South Carolina,45057,230,6 +2020-06-13,Lancaster,South Carolina,45057,239,6 +2020-06-14,Lancaster,South Carolina,45057,246,6 +2020-06-15,Lancaster,South Carolina,45057,248,6 +2020-06-16,Lancaster,South Carolina,45057,259,6 +2020-06-17,Lancaster,South Carolina,45057,270,7 +2020-06-18,Lancaster,South Carolina,45057,277,9 +2020-06-19,Lancaster,South Carolina,45057,300,10 +2020-06-20,Lancaster,South Carolina,45057,315,10 +2020-06-21,Lancaster,South Carolina,45057,324,10 +2020-06-22,Lancaster,South Carolina,45057,337,11 +2020-06-23,Lancaster,South Carolina,45057,346,10 +2020-06-24,Lancaster,South Carolina,45057,352,10 +2020-06-25,Lancaster,South Carolina,45057,383,11 +2020-06-26,Lancaster,South Carolina,45057,394,11 +2020-06-27,Lancaster,South Carolina,45057,412,12 +2020-06-28,Lancaster,South Carolina,45057,421,12 +2020-06-29,Lancaster,South Carolina,45057,447,12 +2020-06-30,Lancaster,South Carolina,45057,475,12 +2020-07-01,Lancaster,South Carolina,45057,493,13 +2020-07-02,Lancaster,South Carolina,45057,506,13 +2020-07-03,Lancaster,South Carolina,45057,519,13 +2020-07-04,Lancaster,South Carolina,45057,547,13 +2020-07-05,Lancaster,South Carolina,45057,555,14 +2020-07-06,Lancaster,South Carolina,45057,571,14 +2020-07-07,Lancaster,South Carolina,45057,574,14 +2020-07-08,Lancaster,South Carolina,45057,579,14 +2020-07-09,Lancaster,South Carolina,45057,594,14 +2020-03-28,Laurens,South Carolina,45059,2,0 +2020-03-29,Laurens,South Carolina,45059,3,0 +2020-03-30,Laurens,South Carolina,45059,3,0 +2020-03-31,Laurens,South Carolina,45059,3,0 +2020-04-01,Laurens,South Carolina,45059,4,0 +2020-04-02,Laurens,South Carolina,45059,4,0 +2020-04-03,Laurens,South Carolina,45059,6,0 +2020-04-04,Laurens,South Carolina,45059,6,0 +2020-04-05,Laurens,South Carolina,45059,6,0 +2020-04-06,Laurens,South Carolina,45059,6,0 +2020-04-07,Laurens,South Carolina,45059,6,0 +2020-04-08,Laurens,South Carolina,45059,8,1 +2020-04-09,Laurens,South Carolina,45059,9,1 +2020-04-10,Laurens,South Carolina,45059,11,1 +2020-04-11,Laurens,South Carolina,45059,13,1 +2020-04-12,Laurens,South Carolina,45059,14,1 +2020-04-13,Laurens,South Carolina,45059,14,1 +2020-04-14,Laurens,South Carolina,45059,14,1 +2020-04-15,Laurens,South Carolina,45059,14,1 +2020-04-16,Laurens,South Carolina,45059,18,1 +2020-04-17,Laurens,South Carolina,45059,19,1 +2020-04-18,Laurens,South Carolina,45059,19,1 +2020-04-19,Laurens,South Carolina,45059,20,1 +2020-04-20,Laurens,South Carolina,45059,20,1 +2020-04-21,Laurens,South Carolina,45059,21,1 +2020-04-22,Laurens,South Carolina,45059,21,1 +2020-04-23,Laurens,South Carolina,45059,21,1 +2020-04-24,Laurens,South Carolina,45059,21,1 +2020-04-25,Laurens,South Carolina,45059,22,1 +2020-04-26,Laurens,South Carolina,45059,29,1 +2020-04-27,Laurens,South Carolina,45059,35,1 +2020-04-28,Laurens,South Carolina,45059,38,1 +2020-04-29,Laurens,South Carolina,45059,38,1 +2020-04-30,Laurens,South Carolina,45059,39,1 +2020-05-01,Laurens,South Carolina,45059,40,1 +2020-05-02,Laurens,South Carolina,45059,40,2 +2020-05-03,Laurens,South Carolina,45059,40,2 +2020-05-04,Laurens,South Carolina,45059,41,2 +2020-05-05,Laurens,South Carolina,45059,42,2 +2020-05-06,Laurens,South Carolina,45059,42,2 +2020-05-07,Laurens,South Carolina,45059,44,2 +2020-05-08,Laurens,South Carolina,45059,46,2 +2020-05-09,Laurens,South Carolina,45059,46,2 +2020-05-10,Laurens,South Carolina,45059,47,2 +2020-05-11,Laurens,South Carolina,45059,48,2 +2020-05-12,Laurens,South Carolina,45059,47,2 +2020-05-13,Laurens,South Carolina,45059,47,2 +2020-05-14,Laurens,South Carolina,45059,50,3 +2020-05-15,Laurens,South Carolina,45059,57,3 +2020-05-16,Laurens,South Carolina,45059,57,3 +2020-05-17,Laurens,South Carolina,45059,57,3 +2020-05-18,Laurens,South Carolina,45059,57,3 +2020-05-19,Laurens,South Carolina,45059,57,3 +2020-05-20,Laurens,South Carolina,45059,57,3 +2020-05-21,Laurens,South Carolina,45059,57,3 +2020-05-22,Laurens,South Carolina,45059,57,3 +2020-05-23,Laurens,South Carolina,45059,57,3 +2020-05-24,Laurens,South Carolina,45059,58,3 +2020-05-25,Laurens,South Carolina,45059,58,3 +2020-05-26,Laurens,South Carolina,45059,59,3 +2020-05-27,Laurens,South Carolina,45059,60,3 +2020-05-28,Laurens,South Carolina,45059,63,3 +2020-05-29,Laurens,South Carolina,45059,65,4 +2020-05-30,Laurens,South Carolina,45059,67,4 +2020-05-31,Laurens,South Carolina,45059,67,4 +2020-06-01,Laurens,South Carolina,45059,68,4 +2020-06-02,Laurens,South Carolina,45059,69,4 +2020-06-03,Laurens,South Carolina,45059,73,4 +2020-06-04,Laurens,South Carolina,45059,76,4 +2020-06-05,Laurens,South Carolina,45059,77,4 +2020-06-06,Laurens,South Carolina,45059,84,4 +2020-06-07,Laurens,South Carolina,45059,88,4 +2020-06-08,Laurens,South Carolina,45059,92,4 +2020-06-09,Laurens,South Carolina,45059,97,4 +2020-06-10,Laurens,South Carolina,45059,101,4 +2020-06-11,Laurens,South Carolina,45059,109,4 +2020-06-12,Laurens,South Carolina,45059,120,4 +2020-06-13,Laurens,South Carolina,45059,129,4 +2020-06-14,Laurens,South Carolina,45059,140,4 +2020-06-15,Laurens,South Carolina,45059,163,4 +2020-06-16,Laurens,South Carolina,45059,171,4 +2020-06-17,Laurens,South Carolina,45059,179,4 +2020-06-18,Laurens,South Carolina,45059,190,4 +2020-06-19,Laurens,South Carolina,45059,203,4 +2020-06-20,Laurens,South Carolina,45059,220,4 +2020-06-21,Laurens,South Carolina,45059,238,4 +2020-06-22,Laurens,South Carolina,45059,255,4 +2020-06-23,Laurens,South Carolina,45059,270,4 +2020-06-24,Laurens,South Carolina,45059,278,4 +2020-06-25,Laurens,South Carolina,45059,314,4 +2020-06-26,Laurens,South Carolina,45059,341,4 +2020-06-27,Laurens,South Carolina,45059,372,4 +2020-06-28,Laurens,South Carolina,45059,407,5 +2020-06-29,Laurens,South Carolina,45059,422,5 +2020-06-30,Laurens,South Carolina,45059,471,5 +2020-07-01,Laurens,South Carolina,45059,489,7 +2020-07-02,Laurens,South Carolina,45059,521,7 +2020-07-03,Laurens,South Carolina,45059,546,8 +2020-07-04,Laurens,South Carolina,45059,565,9 +2020-07-05,Laurens,South Carolina,45059,590,9 +2020-07-06,Laurens,South Carolina,45059,608,9 +2020-07-07,Laurens,South Carolina,45059,626,9 +2020-07-08,Laurens,South Carolina,45059,644,12 +2020-07-09,Laurens,South Carolina,45059,667,13 +2020-03-18,Lee,South Carolina,45061,1,0 +2020-03-19,Lee,South Carolina,45061,1,0 +2020-03-20,Lee,South Carolina,45061,1,0 +2020-03-21,Lee,South Carolina,45061,1,0 +2020-03-22,Lee,South Carolina,45061,1,0 +2020-03-23,Lee,South Carolina,45061,2,0 +2020-03-24,Lee,South Carolina,45061,2,0 +2020-03-25,Lee,South Carolina,45061,2,0 +2020-03-26,Lee,South Carolina,45061,2,0 +2020-03-27,Lee,South Carolina,45061,2,0 +2020-03-28,Lee,South Carolina,45061,5,0 +2020-03-29,Lee,South Carolina,45061,5,0 +2020-03-30,Lee,South Carolina,45061,5,0 +2020-03-31,Lee,South Carolina,45061,5,0 +2020-04-01,Lee,South Carolina,45061,5,1 +2020-04-02,Lee,South Carolina,45061,8,1 +2020-04-03,Lee,South Carolina,45061,13,1 +2020-04-04,Lee,South Carolina,45061,16,1 +2020-04-05,Lee,South Carolina,45061,17,2 +2020-04-06,Lee,South Carolina,45061,18,2 +2020-04-07,Lee,South Carolina,45061,19,2 +2020-04-08,Lee,South Carolina,45061,22,2 +2020-04-09,Lee,South Carolina,45061,24,3 +2020-04-10,Lee,South Carolina,45061,27,3 +2020-04-11,Lee,South Carolina,45061,27,3 +2020-04-12,Lee,South Carolina,45061,29,3 +2020-04-13,Lee,South Carolina,45061,31,3 +2020-04-14,Lee,South Carolina,45061,33,3 +2020-04-15,Lee,South Carolina,45061,34,3 +2020-04-16,Lee,South Carolina,45061,35,4 +2020-04-17,Lee,South Carolina,45061,40,5 +2020-04-18,Lee,South Carolina,45061,40,5 +2020-04-19,Lee,South Carolina,45061,42,5 +2020-04-20,Lee,South Carolina,45061,42,5 +2020-04-21,Lee,South Carolina,45061,41,5 +2020-04-22,Lee,South Carolina,45061,42,5 +2020-04-23,Lee,South Carolina,45061,45,5 +2020-04-24,Lee,South Carolina,45061,48,5 +2020-04-25,Lee,South Carolina,45061,51,6 +2020-04-26,Lee,South Carolina,45061,51,6 +2020-04-27,Lee,South Carolina,45061,55,6 +2020-04-28,Lee,South Carolina,45061,58,7 +2020-04-29,Lee,South Carolina,45061,58,7 +2020-04-30,Lee,South Carolina,45061,63,7 +2020-05-01,Lee,South Carolina,45061,65,7 +2020-05-02,Lee,South Carolina,45061,68,8 +2020-05-03,Lee,South Carolina,45061,68,8 +2020-05-04,Lee,South Carolina,45061,68,8 +2020-05-05,Lee,South Carolina,45061,69,8 +2020-05-06,Lee,South Carolina,45061,70,8 +2020-05-07,Lee,South Carolina,45061,80,8 +2020-05-08,Lee,South Carolina,45061,92,8 +2020-05-09,Lee,South Carolina,45061,99,8 +2020-05-10,Lee,South Carolina,45061,106,8 +2020-05-11,Lee,South Carolina,45061,115,8 +2020-05-12,Lee,South Carolina,45061,117,8 +2020-05-13,Lee,South Carolina,45061,122,10 +2020-05-14,Lee,South Carolina,45061,123,10 +2020-05-15,Lee,South Carolina,45061,127,10 +2020-05-16,Lee,South Carolina,45061,158,11 +2020-05-17,Lee,South Carolina,45061,164,11 +2020-05-18,Lee,South Carolina,45061,170,11 +2020-05-19,Lee,South Carolina,45061,174,11 +2020-05-20,Lee,South Carolina,45061,175,11 +2020-05-21,Lee,South Carolina,45061,178,13 +2020-05-22,Lee,South Carolina,45061,181,13 +2020-05-23,Lee,South Carolina,45061,187,13 +2020-05-24,Lee,South Carolina,45061,191,13 +2020-05-25,Lee,South Carolina,45061,198,13 +2020-05-26,Lee,South Carolina,45061,207,13 +2020-05-27,Lee,South Carolina,45061,208,15 +2020-05-28,Lee,South Carolina,45061,209,15 +2020-05-29,Lee,South Carolina,45061,212,16 +2020-05-30,Lee,South Carolina,45061,217,16 +2020-05-31,Lee,South Carolina,45061,218,16 +2020-06-01,Lee,South Carolina,45061,218,16 +2020-06-02,Lee,South Carolina,45061,221,16 +2020-06-03,Lee,South Carolina,45061,222,17 +2020-06-04,Lee,South Carolina,45061,225,17 +2020-06-05,Lee,South Carolina,45061,227,17 +2020-06-06,Lee,South Carolina,45061,227,17 +2020-06-07,Lee,South Carolina,45061,229,17 +2020-06-08,Lee,South Carolina,45061,229,17 +2020-06-09,Lee,South Carolina,45061,231,19 +2020-06-10,Lee,South Carolina,45061,233,19 +2020-06-11,Lee,South Carolina,45061,232,19 +2020-06-12,Lee,South Carolina,45061,233,19 +2020-06-13,Lee,South Carolina,45061,233,19 +2020-06-14,Lee,South Carolina,45061,236,19 +2020-06-15,Lee,South Carolina,45061,236,19 +2020-06-16,Lee,South Carolina,45061,238,19 +2020-06-17,Lee,South Carolina,45061,238,19 +2020-06-18,Lee,South Carolina,45061,245,19 +2020-06-19,Lee,South Carolina,45061,246,19 +2020-06-20,Lee,South Carolina,45061,251,20 +2020-06-21,Lee,South Carolina,45061,254,20 +2020-06-22,Lee,South Carolina,45061,256,20 +2020-06-23,Lee,South Carolina,45061,265,21 +2020-06-24,Lee,South Carolina,45061,264,21 +2020-06-25,Lee,South Carolina,45061,264,22 +2020-06-26,Lee,South Carolina,45061,272,22 +2020-06-27,Lee,South Carolina,45061,276,22 +2020-06-28,Lee,South Carolina,45061,283,22 +2020-06-29,Lee,South Carolina,45061,285,22 +2020-06-30,Lee,South Carolina,45061,289,22 +2020-07-01,Lee,South Carolina,45061,293,22 +2020-07-02,Lee,South Carolina,45061,295,22 +2020-07-03,Lee,South Carolina,45061,301,22 +2020-07-04,Lee,South Carolina,45061,307,22 +2020-07-05,Lee,South Carolina,45061,308,22 +2020-07-06,Lee,South Carolina,45061,310,22 +2020-07-07,Lee,South Carolina,45061,330,22 +2020-07-08,Lee,South Carolina,45061,331,22 +2020-07-09,Lee,South Carolina,45061,331,22 +2020-03-14,Lexington,South Carolina,45063,1,0 +2020-03-15,Lexington,South Carolina,45063,1,0 +2020-03-16,Lexington,South Carolina,45063,2,1 +2020-03-17,Lexington,South Carolina,45063,3,1 +2020-03-18,Lexington,South Carolina,45063,4,1 +2020-03-19,Lexington,South Carolina,45063,5,1 +2020-03-20,Lexington,South Carolina,45063,8,1 +2020-03-21,Lexington,South Carolina,45063,12,1 +2020-03-22,Lexington,South Carolina,45063,12,1 +2020-03-23,Lexington,South Carolina,45063,17,1 +2020-03-24,Lexington,South Carolina,45063,19,1 +2020-03-25,Lexington,South Carolina,45063,18,1 +2020-03-26,Lexington,South Carolina,45063,20,1 +2020-03-27,Lexington,South Carolina,45063,25,1 +2020-03-28,Lexington,South Carolina,45063,30,1 +2020-03-29,Lexington,South Carolina,45063,35,1 +2020-03-30,Lexington,South Carolina,45063,41,1 +2020-03-31,Lexington,South Carolina,45063,54,1 +2020-04-01,Lexington,South Carolina,45063,61,1 +2020-04-02,Lexington,South Carolina,45063,70,1 +2020-04-03,Lexington,South Carolina,45063,78,1 +2020-04-04,Lexington,South Carolina,45063,95,3 +2020-04-05,Lexington,South Carolina,45063,117,3 +2020-04-06,Lexington,South Carolina,45063,124,3 +2020-04-07,Lexington,South Carolina,45063,130,5 +2020-04-08,Lexington,South Carolina,45063,128,5 +2020-04-09,Lexington,South Carolina,45063,161,6 +2020-04-10,Lexington,South Carolina,45063,184,6 +2020-04-11,Lexington,South Carolina,45063,202,6 +2020-04-12,Lexington,South Carolina,45063,212,6 +2020-04-13,Lexington,South Carolina,45063,206,6 +2020-04-14,Lexington,South Carolina,45063,208,8 +2020-04-15,Lexington,South Carolina,45063,218,8 +2020-04-16,Lexington,South Carolina,45063,267,8 +2020-04-17,Lexington,South Carolina,45063,254,9 +2020-04-18,Lexington,South Carolina,45063,271,9 +2020-04-19,Lexington,South Carolina,45063,273,9 +2020-04-20,Lexington,South Carolina,45063,274,9 +2020-04-21,Lexington,South Carolina,45063,283,9 +2020-04-22,Lexington,South Carolina,45063,286,9 +2020-04-23,Lexington,South Carolina,45063,294,11 +2020-04-24,Lexington,South Carolina,45063,302,12 +2020-04-25,Lexington,South Carolina,45063,317,12 +2020-04-26,Lexington,South Carolina,45063,329,12 +2020-04-27,Lexington,South Carolina,45063,334,12 +2020-04-28,Lexington,South Carolina,45063,347,12 +2020-04-29,Lexington,South Carolina,45063,358,14 +2020-04-30,Lexington,South Carolina,45063,361,15 +2020-05-01,Lexington,South Carolina,45063,370,15 +2020-05-02,Lexington,South Carolina,45063,414,16 +2020-05-03,Lexington,South Carolina,45063,420,17 +2020-05-04,Lexington,South Carolina,45063,432,17 +2020-05-05,Lexington,South Carolina,45063,440,17 +2020-05-06,Lexington,South Carolina,45063,442,18 +2020-05-07,Lexington,South Carolina,45063,458,19 +2020-05-08,Lexington,South Carolina,45063,465,19 +2020-05-09,Lexington,South Carolina,45063,472,21 +2020-05-10,Lexington,South Carolina,45063,478,21 +2020-05-11,Lexington,South Carolina,45063,484,24 +2020-05-12,Lexington,South Carolina,45063,482,24 +2020-05-13,Lexington,South Carolina,45063,492,25 +2020-05-14,Lexington,South Carolina,45063,503,26 +2020-05-15,Lexington,South Carolina,45063,512,26 +2020-05-16,Lexington,South Carolina,45063,509,26 +2020-05-17,Lexington,South Carolina,45063,516,26 +2020-05-18,Lexington,South Carolina,45063,518,27 +2020-05-19,Lexington,South Carolina,45063,516,28 +2020-05-20,Lexington,South Carolina,45063,519,29 +2020-05-21,Lexington,South Carolina,45063,525,29 +2020-05-22,Lexington,South Carolina,45063,537,29 +2020-05-23,Lexington,South Carolina,45063,548,29 +2020-05-24,Lexington,South Carolina,45063,553,31 +2020-05-25,Lexington,South Carolina,45063,558,32 +2020-05-26,Lexington,South Carolina,45063,572,33 +2020-05-27,Lexington,South Carolina,45063,581,33 +2020-05-28,Lexington,South Carolina,45063,589,33 +2020-05-29,Lexington,South Carolina,45063,597,33 +2020-05-30,Lexington,South Carolina,45063,625,33 +2020-05-31,Lexington,South Carolina,45063,645,33 +2020-06-01,Lexington,South Carolina,45063,657,34 +2020-06-02,Lexington,South Carolina,45063,677,34 +2020-06-03,Lexington,South Carolina,45063,697,34 +2020-06-04,Lexington,South Carolina,45063,723,36 +2020-06-05,Lexington,South Carolina,45063,766,36 +2020-06-06,Lexington,South Carolina,45063,807,37 +2020-06-07,Lexington,South Carolina,45063,836,37 +2020-06-08,Lexington,South Carolina,45063,879,37 +2020-06-09,Lexington,South Carolina,45063,913,37 +2020-06-10,Lexington,South Carolina,45063,941,37 +2020-06-11,Lexington,South Carolina,45063,992,38 +2020-06-12,Lexington,South Carolina,45063,1049,39 +2020-06-13,Lexington,South Carolina,45063,1098,39 +2020-06-14,Lexington,South Carolina,45063,1155,39 +2020-06-15,Lexington,South Carolina,45063,1185,40 +2020-06-16,Lexington,South Carolina,45063,1217,40 +2020-06-17,Lexington,South Carolina,45063,1255,42 +2020-06-18,Lexington,South Carolina,45063,1300,42 +2020-06-19,Lexington,South Carolina,45063,1381,42 +2020-06-20,Lexington,South Carolina,45063,1456,42 +2020-06-21,Lexington,South Carolina,45063,1496,42 +2020-06-22,Lexington,South Carolina,45063,1518,42 +2020-06-23,Lexington,South Carolina,45063,1560,43 +2020-06-24,Lexington,South Carolina,45063,1625,44 +2020-06-25,Lexington,South Carolina,45063,1666,45 +2020-06-26,Lexington,South Carolina,45063,1775,45 +2020-06-27,Lexington,South Carolina,45063,1846,47 +2020-06-28,Lexington,South Carolina,45063,1901,48 +2020-06-29,Lexington,South Carolina,45063,1971,48 +2020-06-30,Lexington,South Carolina,45063,2071,49 +2020-07-01,Lexington,South Carolina,45063,2161,50 +2020-07-02,Lexington,South Carolina,45063,2236,53 +2020-07-03,Lexington,South Carolina,45063,2281,53 +2020-07-04,Lexington,South Carolina,45063,2322,56 +2020-07-05,Lexington,South Carolina,45063,2396,57 +2020-07-06,Lexington,South Carolina,45063,2462,57 +2020-07-07,Lexington,South Carolina,45063,2522,57 +2020-07-08,Lexington,South Carolina,45063,2612,57 +2020-07-09,Lexington,South Carolina,45063,2677,56 +2020-04-02,McCormick,South Carolina,45065,1,0 +2020-04-03,McCormick,South Carolina,45065,1,0 +2020-04-04,McCormick,South Carolina,45065,1,0 +2020-04-05,McCormick,South Carolina,45065,1,0 +2020-04-06,McCormick,South Carolina,45065,2,0 +2020-04-07,McCormick,South Carolina,45065,2,0 +2020-04-08,McCormick,South Carolina,45065,2,1 +2020-04-09,McCormick,South Carolina,45065,3,1 +2020-04-10,McCormick,South Carolina,45065,3,1 +2020-04-11,McCormick,South Carolina,45065,3,1 +2020-04-12,McCormick,South Carolina,45065,3,1 +2020-04-13,McCormick,South Carolina,45065,3,1 +2020-04-14,McCormick,South Carolina,45065,4,1 +2020-04-15,McCormick,South Carolina,45065,4,2 +2020-04-16,McCormick,South Carolina,45065,5,1 +2020-04-17,McCormick,South Carolina,45065,5,1 +2020-04-18,McCormick,South Carolina,45065,6,1 +2020-04-19,McCormick,South Carolina,45065,6,1 +2020-04-20,McCormick,South Carolina,45065,6,1 +2020-04-21,McCormick,South Carolina,45065,6,1 +2020-04-22,McCormick,South Carolina,45065,6,1 +2020-04-23,McCormick,South Carolina,45065,6,1 +2020-04-24,McCormick,South Carolina,45065,6,1 +2020-04-25,McCormick,South Carolina,45065,6,1 +2020-04-26,McCormick,South Carolina,45065,6,1 +2020-04-27,McCormick,South Carolina,45065,6,1 +2020-04-28,McCormick,South Carolina,45065,6,1 +2020-04-29,McCormick,South Carolina,45065,6,1 +2020-04-30,McCormick,South Carolina,45065,6,1 +2020-05-01,McCormick,South Carolina,45065,6,1 +2020-05-02,McCormick,South Carolina,45065,6,1 +2020-05-03,McCormick,South Carolina,45065,6,1 +2020-05-04,McCormick,South Carolina,45065,7,1 +2020-05-05,McCormick,South Carolina,45065,7,1 +2020-05-06,McCormick,South Carolina,45065,7,1 +2020-05-07,McCormick,South Carolina,45065,7,1 +2020-05-08,McCormick,South Carolina,45065,7,1 +2020-05-09,McCormick,South Carolina,45065,7,1 +2020-05-10,McCormick,South Carolina,45065,7,1 +2020-05-11,McCormick,South Carolina,45065,7,1 +2020-05-12,McCormick,South Carolina,45065,7,1 +2020-05-13,McCormick,South Carolina,45065,7,1 +2020-05-14,McCormick,South Carolina,45065,7,1 +2020-05-15,McCormick,South Carolina,45065,7,1 +2020-05-16,McCormick,South Carolina,45065,7,1 +2020-05-17,McCormick,South Carolina,45065,7,1 +2020-05-18,McCormick,South Carolina,45065,7,1 +2020-05-19,McCormick,South Carolina,45065,7,1 +2020-05-20,McCormick,South Carolina,45065,7,1 +2020-05-21,McCormick,South Carolina,45065,7,1 +2020-05-22,McCormick,South Carolina,45065,8,1 +2020-05-23,McCormick,South Carolina,45065,8,1 +2020-05-24,McCormick,South Carolina,45065,8,1 +2020-05-25,McCormick,South Carolina,45065,8,1 +2020-05-26,McCormick,South Carolina,45065,8,1 +2020-05-27,McCormick,South Carolina,45065,8,1 +2020-05-28,McCormick,South Carolina,45065,8,1 +2020-05-29,McCormick,South Carolina,45065,8,1 +2020-05-30,McCormick,South Carolina,45065,8,1 +2020-05-31,McCormick,South Carolina,45065,9,1 +2020-06-01,McCormick,South Carolina,45065,9,1 +2020-06-02,McCormick,South Carolina,45065,9,1 +2020-06-03,McCormick,South Carolina,45065,10,1 +2020-06-04,McCormick,South Carolina,45065,10,1 +2020-06-05,McCormick,South Carolina,45065,10,1 +2020-06-06,McCormick,South Carolina,45065,10,1 +2020-06-07,McCormick,South Carolina,45065,10,1 +2020-06-08,McCormick,South Carolina,45065,11,1 +2020-06-09,McCormick,South Carolina,45065,11,1 +2020-06-10,McCormick,South Carolina,45065,11,1 +2020-06-11,McCormick,South Carolina,45065,11,1 +2020-06-12,McCormick,South Carolina,45065,11,1 +2020-06-13,McCormick,South Carolina,45065,11,1 +2020-06-14,McCormick,South Carolina,45065,11,1 +2020-06-15,McCormick,South Carolina,45065,11,1 +2020-06-16,McCormick,South Carolina,45065,11,1 +2020-06-17,McCormick,South Carolina,45065,11,1 +2020-06-18,McCormick,South Carolina,45065,11,1 +2020-06-19,McCormick,South Carolina,45065,11,1 +2020-06-20,McCormick,South Carolina,45065,11,1 +2020-06-21,McCormick,South Carolina,45065,11,1 +2020-06-22,McCormick,South Carolina,45065,11,1 +2020-06-23,McCormick,South Carolina,45065,11,1 +2020-06-24,McCormick,South Carolina,45065,11,1 +2020-06-25,McCormick,South Carolina,45065,11,1 +2020-06-26,McCormick,South Carolina,45065,11,1 +2020-06-27,McCormick,South Carolina,45065,11,1 +2020-06-28,McCormick,South Carolina,45065,12,1 +2020-06-29,McCormick,South Carolina,45065,15,1 +2020-06-30,McCormick,South Carolina,45065,17,2 +2020-07-01,McCormick,South Carolina,45065,17,2 +2020-07-02,McCormick,South Carolina,45065,17,2 +2020-07-03,McCormick,South Carolina,45065,18,2 +2020-07-04,McCormick,South Carolina,45065,21,2 +2020-07-05,McCormick,South Carolina,45065,21,2 +2020-07-06,McCormick,South Carolina,45065,26,2 +2020-07-07,McCormick,South Carolina,45065,26,2 +2020-07-08,McCormick,South Carolina,45065,28,2 +2020-07-09,McCormick,South Carolina,45065,32,2 +2020-03-25,Marion,South Carolina,45067,1,0 +2020-03-26,Marion,South Carolina,45067,1,0 +2020-03-27,Marion,South Carolina,45067,1,0 +2020-03-28,Marion,South Carolina,45067,1,0 +2020-03-29,Marion,South Carolina,45067,1,0 +2020-03-30,Marion,South Carolina,45067,2,0 +2020-03-31,Marion,South Carolina,45067,2,1 +2020-04-01,Marion,South Carolina,45067,2,1 +2020-04-02,Marion,South Carolina,45067,2,1 +2020-04-03,Marion,South Carolina,45067,2,1 +2020-04-04,Marion,South Carolina,45067,2,1 +2020-04-05,Marion,South Carolina,45067,2,1 +2020-04-06,Marion,South Carolina,45067,4,1 +2020-04-07,Marion,South Carolina,45067,5,1 +2020-04-08,Marion,South Carolina,45067,5,1 +2020-04-09,Marion,South Carolina,45067,5,1 +2020-04-10,Marion,South Carolina,45067,5,1 +2020-04-11,Marion,South Carolina,45067,6,1 +2020-04-12,Marion,South Carolina,45067,7,1 +2020-04-13,Marion,South Carolina,45067,6,1 +2020-04-14,Marion,South Carolina,45067,8,1 +2020-04-15,Marion,South Carolina,45067,8,1 +2020-04-16,Marion,South Carolina,45067,8,1 +2020-04-17,Marion,South Carolina,45067,14,1 +2020-04-18,Marion,South Carolina,45067,13,1 +2020-04-19,Marion,South Carolina,45067,15,1 +2020-04-20,Marion,South Carolina,45067,15,1 +2020-04-21,Marion,South Carolina,45067,19,1 +2020-04-22,Marion,South Carolina,45067,22,1 +2020-04-23,Marion,South Carolina,45067,22,1 +2020-04-24,Marion,South Carolina,45067,24,1 +2020-04-25,Marion,South Carolina,45067,29,1 +2020-04-26,Marion,South Carolina,45067,32,1 +2020-04-27,Marion,South Carolina,45067,33,1 +2020-04-28,Marion,South Carolina,45067,32,1 +2020-04-29,Marion,South Carolina,45067,32,2 +2020-04-30,Marion,South Carolina,45067,34,2 +2020-05-01,Marion,South Carolina,45067,36,2 +2020-05-02,Marion,South Carolina,45067,37,2 +2020-05-03,Marion,South Carolina,45067,37,2 +2020-05-04,Marion,South Carolina,45067,40,2 +2020-05-05,Marion,South Carolina,45067,41,2 +2020-05-06,Marion,South Carolina,45067,41,2 +2020-05-07,Marion,South Carolina,45067,43,2 +2020-05-08,Marion,South Carolina,45067,44,2 +2020-05-09,Marion,South Carolina,45067,47,2 +2020-05-10,Marion,South Carolina,45067,48,3 +2020-05-11,Marion,South Carolina,45067,49,3 +2020-05-12,Marion,South Carolina,45067,50,3 +2020-05-13,Marion,South Carolina,45067,48,4 +2020-05-14,Marion,South Carolina,45067,47,4 +2020-05-15,Marion,South Carolina,45067,48,4 +2020-05-16,Marion,South Carolina,45067,51,4 +2020-05-17,Marion,South Carolina,45067,51,4 +2020-05-18,Marion,South Carolina,45067,52,4 +2020-05-19,Marion,South Carolina,45067,53,4 +2020-05-20,Marion,South Carolina,45067,56,4 +2020-05-21,Marion,South Carolina,45067,57,4 +2020-05-22,Marion,South Carolina,45067,60,4 +2020-05-23,Marion,South Carolina,45067,63,5 +2020-05-24,Marion,South Carolina,45067,64,5 +2020-05-25,Marion,South Carolina,45067,65,5 +2020-05-26,Marion,South Carolina,45067,66,5 +2020-05-27,Marion,South Carolina,45067,67,5 +2020-05-28,Marion,South Carolina,45067,67,5 +2020-05-29,Marion,South Carolina,45067,68,5 +2020-05-30,Marion,South Carolina,45067,68,5 +2020-05-31,Marion,South Carolina,45067,69,5 +2020-06-01,Marion,South Carolina,45067,71,5 +2020-06-02,Marion,South Carolina,45067,72,5 +2020-06-03,Marion,South Carolina,45067,73,5 +2020-06-04,Marion,South Carolina,45067,74,5 +2020-06-05,Marion,South Carolina,45067,74,5 +2020-06-06,Marion,South Carolina,45067,79,5 +2020-06-07,Marion,South Carolina,45067,84,5 +2020-06-08,Marion,South Carolina,45067,84,5 +2020-06-09,Marion,South Carolina,45067,83,5 +2020-06-10,Marion,South Carolina,45067,83,5 +2020-06-11,Marion,South Carolina,45067,86,5 +2020-06-12,Marion,South Carolina,45067,88,5 +2020-06-13,Marion,South Carolina,45067,95,5 +2020-06-14,Marion,South Carolina,45067,103,5 +2020-06-15,Marion,South Carolina,45067,105,5 +2020-06-16,Marion,South Carolina,45067,108,5 +2020-06-17,Marion,South Carolina,45067,113,5 +2020-06-18,Marion,South Carolina,45067,118,5 +2020-06-19,Marion,South Carolina,45067,122,5 +2020-06-20,Marion,South Carolina,45067,141,5 +2020-06-21,Marion,South Carolina,45067,146,5 +2020-06-22,Marion,South Carolina,45067,155,6 +2020-06-23,Marion,South Carolina,45067,159,6 +2020-06-24,Marion,South Carolina,45067,164,6 +2020-06-25,Marion,South Carolina,45067,170,6 +2020-06-26,Marion,South Carolina,45067,171,6 +2020-06-27,Marion,South Carolina,45067,176,7 +2020-06-28,Marion,South Carolina,45067,191,7 +2020-06-29,Marion,South Carolina,45067,193,7 +2020-06-30,Marion,South Carolina,45067,208,7 +2020-07-01,Marion,South Carolina,45067,212,7 +2020-07-02,Marion,South Carolina,45067,214,7 +2020-07-03,Marion,South Carolina,45067,234,8 +2020-07-04,Marion,South Carolina,45067,262,8 +2020-07-05,Marion,South Carolina,45067,275,8 +2020-07-06,Marion,South Carolina,45067,280,8 +2020-07-07,Marion,South Carolina,45067,281,9 +2020-07-08,Marion,South Carolina,45067,285,9 +2020-07-09,Marion,South Carolina,45067,294,9 +2020-03-21,Marlboro,South Carolina,45069,1,0 +2020-03-22,Marlboro,South Carolina,45069,1,0 +2020-03-23,Marlboro,South Carolina,45069,1,0 +2020-03-24,Marlboro,South Carolina,45069,1,0 +2020-03-25,Marlboro,South Carolina,45069,1,0 +2020-03-26,Marlboro,South Carolina,45069,1,0 +2020-03-27,Marlboro,South Carolina,45069,1,0 +2020-03-28,Marlboro,South Carolina,45069,1,0 +2020-03-29,Marlboro,South Carolina,45069,2,0 +2020-03-30,Marlboro,South Carolina,45069,2,0 +2020-03-31,Marlboro,South Carolina,45069,2,0 +2020-04-01,Marlboro,South Carolina,45069,2,0 +2020-04-02,Marlboro,South Carolina,45069,3,0 +2020-04-03,Marlboro,South Carolina,45069,3,0 +2020-04-04,Marlboro,South Carolina,45069,3,0 +2020-04-05,Marlboro,South Carolina,45069,3,0 +2020-04-06,Marlboro,South Carolina,45069,6,0 +2020-04-07,Marlboro,South Carolina,45069,8,0 +2020-04-08,Marlboro,South Carolina,45069,10,0 +2020-04-09,Marlboro,South Carolina,45069,10,0 +2020-04-10,Marlboro,South Carolina,45069,11,0 +2020-04-11,Marlboro,South Carolina,45069,13,0 +2020-04-12,Marlboro,South Carolina,45069,14,0 +2020-04-13,Marlboro,South Carolina,45069,15,0 +2020-04-14,Marlboro,South Carolina,45069,15,0 +2020-04-15,Marlboro,South Carolina,45069,15,0 +2020-04-16,Marlboro,South Carolina,45069,19,0 +2020-04-17,Marlboro,South Carolina,45069,25,0 +2020-04-18,Marlboro,South Carolina,45069,25,0 +2020-04-19,Marlboro,South Carolina,45069,28,0 +2020-04-20,Marlboro,South Carolina,45069,29,0 +2020-04-21,Marlboro,South Carolina,45069,29,0 +2020-04-22,Marlboro,South Carolina,45069,32,0 +2020-04-23,Marlboro,South Carolina,45069,33,0 +2020-04-24,Marlboro,South Carolina,45069,35,0 +2020-04-25,Marlboro,South Carolina,45069,38,0 +2020-04-26,Marlboro,South Carolina,45069,40,0 +2020-04-27,Marlboro,South Carolina,45069,41,0 +2020-04-28,Marlboro,South Carolina,45069,42,0 +2020-04-29,Marlboro,South Carolina,45069,43,0 +2020-04-30,Marlboro,South Carolina,45069,45,0 +2020-05-01,Marlboro,South Carolina,45069,46,0 +2020-05-02,Marlboro,South Carolina,45069,49,0 +2020-05-03,Marlboro,South Carolina,45069,50,0 +2020-05-04,Marlboro,South Carolina,45069,52,1 +2020-05-05,Marlboro,South Carolina,45069,54,1 +2020-05-06,Marlboro,South Carolina,45069,54,1 +2020-05-07,Marlboro,South Carolina,45069,56,1 +2020-05-08,Marlboro,South Carolina,45069,57,1 +2020-05-09,Marlboro,South Carolina,45069,57,1 +2020-05-10,Marlboro,South Carolina,45069,57,1 +2020-05-11,Marlboro,South Carolina,45069,59,1 +2020-05-12,Marlboro,South Carolina,45069,59,1 +2020-05-13,Marlboro,South Carolina,45069,60,0 +2020-05-14,Marlboro,South Carolina,45069,67,0 +2020-05-15,Marlboro,South Carolina,45069,71,0 +2020-05-16,Marlboro,South Carolina,45069,73,0 +2020-05-17,Marlboro,South Carolina,45069,73,0 +2020-05-18,Marlboro,South Carolina,45069,75,0 +2020-05-19,Marlboro,South Carolina,45069,76,0 +2020-05-20,Marlboro,South Carolina,45069,80,0 +2020-05-21,Marlboro,South Carolina,45069,88,0 +2020-05-22,Marlboro,South Carolina,45069,91,0 +2020-05-23,Marlboro,South Carolina,45069,109,0 +2020-05-24,Marlboro,South Carolina,45069,111,0 +2020-05-25,Marlboro,South Carolina,45069,112,0 +2020-05-26,Marlboro,South Carolina,45069,117,0 +2020-05-27,Marlboro,South Carolina,45069,132,0 +2020-05-28,Marlboro,South Carolina,45069,137,0 +2020-05-29,Marlboro,South Carolina,45069,149,0 +2020-05-30,Marlboro,South Carolina,45069,161,0 +2020-05-31,Marlboro,South Carolina,45069,171,1 +2020-06-01,Marlboro,South Carolina,45069,173,1 +2020-06-02,Marlboro,South Carolina,45069,183,1 +2020-06-03,Marlboro,South Carolina,45069,186,3 +2020-06-04,Marlboro,South Carolina,45069,189,3 +2020-06-05,Marlboro,South Carolina,45069,198,3 +2020-06-06,Marlboro,South Carolina,45069,202,3 +2020-06-07,Marlboro,South Carolina,45069,206,3 +2020-06-08,Marlboro,South Carolina,45069,211,3 +2020-06-09,Marlboro,South Carolina,45069,211,3 +2020-06-10,Marlboro,South Carolina,45069,215,3 +2020-06-11,Marlboro,South Carolina,45069,221,3 +2020-06-12,Marlboro,South Carolina,45069,226,3 +2020-06-13,Marlboro,South Carolina,45069,231,3 +2020-06-14,Marlboro,South Carolina,45069,236,3 +2020-06-15,Marlboro,South Carolina,45069,237,3 +2020-06-16,Marlboro,South Carolina,45069,237,3 +2020-06-17,Marlboro,South Carolina,45069,241,3 +2020-06-18,Marlboro,South Carolina,45069,245,3 +2020-06-19,Marlboro,South Carolina,45069,253,3 +2020-06-20,Marlboro,South Carolina,45069,261,3 +2020-06-21,Marlboro,South Carolina,45069,267,3 +2020-06-22,Marlboro,South Carolina,45069,274,3 +2020-06-23,Marlboro,South Carolina,45069,280,4 +2020-06-24,Marlboro,South Carolina,45069,287,4 +2020-06-25,Marlboro,South Carolina,45069,290,4 +2020-06-26,Marlboro,South Carolina,45069,297,4 +2020-06-27,Marlboro,South Carolina,45069,297,4 +2020-06-28,Marlboro,South Carolina,45069,298,4 +2020-06-29,Marlboro,South Carolina,45069,301,4 +2020-06-30,Marlboro,South Carolina,45069,302,4 +2020-07-01,Marlboro,South Carolina,45069,307,4 +2020-07-02,Marlboro,South Carolina,45069,310,4 +2020-07-03,Marlboro,South Carolina,45069,311,4 +2020-07-04,Marlboro,South Carolina,45069,313,4 +2020-07-05,Marlboro,South Carolina,45069,316,4 +2020-07-06,Marlboro,South Carolina,45069,319,4 +2020-07-07,Marlboro,South Carolina,45069,321,4 +2020-07-08,Marlboro,South Carolina,45069,327,4 +2020-07-09,Marlboro,South Carolina,45069,328,4 +2020-03-21,Newberry,South Carolina,45071,1,0 +2020-03-22,Newberry,South Carolina,45071,1,0 +2020-03-23,Newberry,South Carolina,45071,1,0 +2020-03-24,Newberry,South Carolina,45071,1,0 +2020-03-25,Newberry,South Carolina,45071,1,0 +2020-03-26,Newberry,South Carolina,45071,1,0 +2020-03-27,Newberry,South Carolina,45071,1,0 +2020-03-28,Newberry,South Carolina,45071,2,0 +2020-03-29,Newberry,South Carolina,45071,2,0 +2020-03-30,Newberry,South Carolina,45071,2,0 +2020-03-31,Newberry,South Carolina,45071,2,0 +2020-04-01,Newberry,South Carolina,45071,2,0 +2020-04-02,Newberry,South Carolina,45071,4,0 +2020-04-03,Newberry,South Carolina,45071,5,0 +2020-04-04,Newberry,South Carolina,45071,8,0 +2020-04-05,Newberry,South Carolina,45071,7,0 +2020-04-06,Newberry,South Carolina,45071,7,0 +2020-04-07,Newberry,South Carolina,45071,7,0 +2020-04-08,Newberry,South Carolina,45071,9,1 +2020-04-09,Newberry,South Carolina,45071,11,1 +2020-04-10,Newberry,South Carolina,45071,13,1 +2020-04-11,Newberry,South Carolina,45071,13,1 +2020-04-12,Newberry,South Carolina,45071,13,1 +2020-04-13,Newberry,South Carolina,45071,13,1 +2020-04-14,Newberry,South Carolina,45071,15,1 +2020-04-15,Newberry,South Carolina,45071,16,1 +2020-04-16,Newberry,South Carolina,45071,22,1 +2020-04-17,Newberry,South Carolina,45071,23,1 +2020-04-18,Newberry,South Carolina,45071,23,1 +2020-04-19,Newberry,South Carolina,45071,21,1 +2020-04-20,Newberry,South Carolina,45071,20,1 +2020-04-21,Newberry,South Carolina,45071,22,1 +2020-04-22,Newberry,South Carolina,45071,21,1 +2020-04-23,Newberry,South Carolina,45071,21,1 +2020-04-24,Newberry,South Carolina,45071,22,1 +2020-04-25,Newberry,South Carolina,45071,22,1 +2020-04-26,Newberry,South Carolina,45071,23,1 +2020-04-27,Newberry,South Carolina,45071,23,1 +2020-04-28,Newberry,South Carolina,45071,23,1 +2020-04-29,Newberry,South Carolina,45071,24,1 +2020-04-30,Newberry,South Carolina,45071,26,1 +2020-05-01,Newberry,South Carolina,45071,27,1 +2020-05-02,Newberry,South Carolina,45071,28,1 +2020-05-03,Newberry,South Carolina,45071,30,1 +2020-05-04,Newberry,South Carolina,45071,30,1 +2020-05-05,Newberry,South Carolina,45071,31,1 +2020-05-06,Newberry,South Carolina,45071,31,1 +2020-05-07,Newberry,South Carolina,45071,31,1 +2020-05-08,Newberry,South Carolina,45071,32,1 +2020-05-09,Newberry,South Carolina,45071,31,1 +2020-05-10,Newberry,South Carolina,45071,31,1 +2020-05-11,Newberry,South Carolina,45071,31,1 +2020-05-12,Newberry,South Carolina,45071,32,1 +2020-05-13,Newberry,South Carolina,45071,31,1 +2020-05-14,Newberry,South Carolina,45071,30,1 +2020-05-15,Newberry,South Carolina,45071,30,1 +2020-05-16,Newberry,South Carolina,45071,31,1 +2020-05-17,Newberry,South Carolina,45071,31,1 +2020-05-18,Newberry,South Carolina,45071,33,1 +2020-05-19,Newberry,South Carolina,45071,33,1 +2020-05-20,Newberry,South Carolina,45071,33,1 +2020-05-21,Newberry,South Carolina,45071,36,1 +2020-05-22,Newberry,South Carolina,45071,44,1 +2020-05-23,Newberry,South Carolina,45071,44,1 +2020-05-24,Newberry,South Carolina,45071,46,1 +2020-05-25,Newberry,South Carolina,45071,46,1 +2020-05-26,Newberry,South Carolina,45071,48,1 +2020-05-27,Newberry,South Carolina,45071,49,1 +2020-05-28,Newberry,South Carolina,45071,51,1 +2020-05-29,Newberry,South Carolina,45071,55,1 +2020-05-30,Newberry,South Carolina,45071,60,1 +2020-05-31,Newberry,South Carolina,45071,63,1 +2020-06-01,Newberry,South Carolina,45071,62,1 +2020-06-02,Newberry,South Carolina,45071,63,1 +2020-06-03,Newberry,South Carolina,45071,64,1 +2020-06-04,Newberry,South Carolina,45071,67,1 +2020-06-05,Newberry,South Carolina,45071,71,1 +2020-06-06,Newberry,South Carolina,45071,77,1 +2020-06-07,Newberry,South Carolina,45071,79,1 +2020-06-08,Newberry,South Carolina,45071,82,1 +2020-06-09,Newberry,South Carolina,45071,87,1 +2020-06-10,Newberry,South Carolina,45071,88,2 +2020-06-11,Newberry,South Carolina,45071,90,2 +2020-06-12,Newberry,South Carolina,45071,93,2 +2020-06-13,Newberry,South Carolina,45071,95,2 +2020-06-14,Newberry,South Carolina,45071,99,2 +2020-06-15,Newberry,South Carolina,45071,105,2 +2020-06-16,Newberry,South Carolina,45071,108,2 +2020-06-17,Newberry,South Carolina,45071,110,2 +2020-06-18,Newberry,South Carolina,45071,116,2 +2020-06-19,Newberry,South Carolina,45071,117,3 +2020-06-20,Newberry,South Carolina,45071,125,3 +2020-06-21,Newberry,South Carolina,45071,132,3 +2020-06-22,Newberry,South Carolina,45071,137,3 +2020-06-23,Newberry,South Carolina,45071,143,3 +2020-06-24,Newberry,South Carolina,45071,175,4 +2020-06-25,Newberry,South Carolina,45071,180,4 +2020-06-26,Newberry,South Carolina,45071,187,4 +2020-06-27,Newberry,South Carolina,45071,190,4 +2020-06-28,Newberry,South Carolina,45071,221,4 +2020-06-29,Newberry,South Carolina,45071,246,4 +2020-06-30,Newberry,South Carolina,45071,252,4 +2020-07-01,Newberry,South Carolina,45071,264,4 +2020-07-02,Newberry,South Carolina,45071,270,4 +2020-07-03,Newberry,South Carolina,45071,287,4 +2020-07-04,Newberry,South Carolina,45071,291,5 +2020-07-05,Newberry,South Carolina,45071,298,5 +2020-07-06,Newberry,South Carolina,45071,312,5 +2020-07-07,Newberry,South Carolina,45071,336,5 +2020-07-08,Newberry,South Carolina,45071,344,5 +2020-07-09,Newberry,South Carolina,45071,355,5 +2020-03-23,Oconee,South Carolina,45073,2,0 +2020-03-24,Oconee,South Carolina,45073,2,0 +2020-03-25,Oconee,South Carolina,45073,2,0 +2020-03-26,Oconee,South Carolina,45073,2,0 +2020-03-27,Oconee,South Carolina,45073,3,0 +2020-03-28,Oconee,South Carolina,45073,3,0 +2020-03-29,Oconee,South Carolina,45073,4,0 +2020-03-30,Oconee,South Carolina,45073,4,0 +2020-03-31,Oconee,South Carolina,45073,5,0 +2020-04-01,Oconee,South Carolina,45073,5,0 +2020-04-02,Oconee,South Carolina,45073,5,0 +2020-04-03,Oconee,South Carolina,45073,5,0 +2020-04-04,Oconee,South Carolina,45073,8,0 +2020-04-05,Oconee,South Carolina,45073,8,0 +2020-04-06,Oconee,South Carolina,45073,8,0 +2020-04-07,Oconee,South Carolina,45073,9,0 +2020-04-08,Oconee,South Carolina,45073,11,0 +2020-04-09,Oconee,South Carolina,45073,12,0 +2020-04-10,Oconee,South Carolina,45073,12,0 +2020-04-11,Oconee,South Carolina,45073,13,0 +2020-04-12,Oconee,South Carolina,45073,14,0 +2020-04-13,Oconee,South Carolina,45073,14,0 +2020-04-14,Oconee,South Carolina,45073,14,0 +2020-04-15,Oconee,South Carolina,45073,14,0 +2020-04-16,Oconee,South Carolina,45073,14,0 +2020-04-17,Oconee,South Carolina,45073,14,0 +2020-04-18,Oconee,South Carolina,45073,16,0 +2020-04-19,Oconee,South Carolina,45073,17,0 +2020-04-20,Oconee,South Carolina,45073,17,0 +2020-04-21,Oconee,South Carolina,45073,19,0 +2020-04-22,Oconee,South Carolina,45073,19,0 +2020-04-23,Oconee,South Carolina,45073,20,0 +2020-04-24,Oconee,South Carolina,45073,20,0 +2020-04-25,Oconee,South Carolina,45073,20,0 +2020-04-26,Oconee,South Carolina,45073,22,0 +2020-04-27,Oconee,South Carolina,45073,24,0 +2020-04-28,Oconee,South Carolina,45073,24,0 +2020-04-29,Oconee,South Carolina,45073,24,0 +2020-04-30,Oconee,South Carolina,45073,24,0 +2020-05-01,Oconee,South Carolina,45073,24,0 +2020-05-02,Oconee,South Carolina,45073,25,0 +2020-05-03,Oconee,South Carolina,45073,26,0 +2020-05-04,Oconee,South Carolina,45073,27,0 +2020-05-05,Oconee,South Carolina,45073,29,0 +2020-05-06,Oconee,South Carolina,45073,31,0 +2020-05-07,Oconee,South Carolina,45073,32,0 +2020-05-08,Oconee,South Carolina,45073,36,0 +2020-05-09,Oconee,South Carolina,45073,37,0 +2020-05-10,Oconee,South Carolina,45073,37,0 +2020-05-11,Oconee,South Carolina,45073,37,0 +2020-05-12,Oconee,South Carolina,45073,39,0 +2020-05-13,Oconee,South Carolina,45073,39,0 +2020-05-14,Oconee,South Carolina,45073,41,0 +2020-05-15,Oconee,South Carolina,45073,42,0 +2020-05-16,Oconee,South Carolina,45073,41,0 +2020-05-17,Oconee,South Carolina,45073,41,0 +2020-05-18,Oconee,South Carolina,45073,41,0 +2020-05-19,Oconee,South Carolina,45073,41,0 +2020-05-20,Oconee,South Carolina,45073,41,0 +2020-05-21,Oconee,South Carolina,45073,41,0 +2020-05-22,Oconee,South Carolina,45073,42,0 +2020-05-23,Oconee,South Carolina,45073,43,0 +2020-05-24,Oconee,South Carolina,45073,47,0 +2020-05-25,Oconee,South Carolina,45073,47,0 +2020-05-26,Oconee,South Carolina,45073,47,0 +2020-05-27,Oconee,South Carolina,45073,48,0 +2020-05-28,Oconee,South Carolina,45073,49,0 +2020-05-29,Oconee,South Carolina,45073,50,0 +2020-05-30,Oconee,South Carolina,45073,50,0 +2020-05-31,Oconee,South Carolina,45073,50,0 +2020-06-01,Oconee,South Carolina,45073,54,0 +2020-06-02,Oconee,South Carolina,45073,55,0 +2020-06-03,Oconee,South Carolina,45073,54,0 +2020-06-04,Oconee,South Carolina,45073,54,0 +2020-06-05,Oconee,South Carolina,45073,55,0 +2020-06-06,Oconee,South Carolina,45073,57,0 +2020-06-07,Oconee,South Carolina,45073,58,0 +2020-06-08,Oconee,South Carolina,45073,61,0 +2020-06-09,Oconee,South Carolina,45073,61,0 +2020-06-10,Oconee,South Carolina,45073,65,0 +2020-06-11,Oconee,South Carolina,45073,70,0 +2020-06-12,Oconee,South Carolina,45073,73,0 +2020-06-13,Oconee,South Carolina,45073,76,0 +2020-06-14,Oconee,South Carolina,45073,81,0 +2020-06-15,Oconee,South Carolina,45073,87,0 +2020-06-16,Oconee,South Carolina,45073,94,0 +2020-06-17,Oconee,South Carolina,45073,95,0 +2020-06-18,Oconee,South Carolina,45073,100,0 +2020-06-19,Oconee,South Carolina,45073,105,0 +2020-06-20,Oconee,South Carolina,45073,110,1 +2020-06-21,Oconee,South Carolina,45073,136,1 +2020-06-22,Oconee,South Carolina,45073,154,1 +2020-06-23,Oconee,South Carolina,45073,142,1 +2020-06-24,Oconee,South Carolina,45073,157,1 +2020-06-25,Oconee,South Carolina,45073,173,1 +2020-06-26,Oconee,South Carolina,45073,192,1 +2020-06-27,Oconee,South Carolina,45073,224,1 +2020-06-28,Oconee,South Carolina,45073,244,1 +2020-06-29,Oconee,South Carolina,45073,252,1 +2020-06-30,Oconee,South Carolina,45073,260,1 +2020-07-01,Oconee,South Carolina,45073,271,1 +2020-07-02,Oconee,South Carolina,45073,290,1 +2020-07-03,Oconee,South Carolina,45073,304,1 +2020-07-04,Oconee,South Carolina,45073,318,1 +2020-07-05,Oconee,South Carolina,45073,330,1 +2020-07-06,Oconee,South Carolina,45073,334,1 +2020-07-07,Oconee,South Carolina,45073,350,1 +2020-07-08,Oconee,South Carolina,45073,358,1 +2020-07-09,Oconee,South Carolina,45073,373,1 +2020-03-20,Orangeburg,South Carolina,45075,2,0 +2020-03-21,Orangeburg,South Carolina,45075,3,0 +2020-03-22,Orangeburg,South Carolina,45075,3,0 +2020-03-23,Orangeburg,South Carolina,45075,8,0 +2020-03-24,Orangeburg,South Carolina,45075,8,0 +2020-03-25,Orangeburg,South Carolina,45075,9,0 +2020-03-26,Orangeburg,South Carolina,45075,11,0 +2020-03-27,Orangeburg,South Carolina,45075,12,0 +2020-03-28,Orangeburg,South Carolina,45075,14,0 +2020-03-29,Orangeburg,South Carolina,45075,16,0 +2020-03-30,Orangeburg,South Carolina,45075,21,0 +2020-03-31,Orangeburg,South Carolina,45075,22,0 +2020-04-01,Orangeburg,South Carolina,45075,24,0 +2020-04-02,Orangeburg,South Carolina,45075,24,0 +2020-04-03,Orangeburg,South Carolina,45075,25,0 +2020-04-04,Orangeburg,South Carolina,45075,26,0 +2020-04-05,Orangeburg,South Carolina,45075,27,0 +2020-04-06,Orangeburg,South Carolina,45075,28,0 +2020-04-07,Orangeburg,South Carolina,45075,30,0 +2020-04-08,Orangeburg,South Carolina,45075,31,0 +2020-04-09,Orangeburg,South Carolina,45075,35,0 +2020-04-10,Orangeburg,South Carolina,45075,37,0 +2020-04-11,Orangeburg,South Carolina,45075,37,0 +2020-04-12,Orangeburg,South Carolina,45075,37,0 +2020-04-13,Orangeburg,South Carolina,45075,37,0 +2020-04-14,Orangeburg,South Carolina,45075,38,0 +2020-04-15,Orangeburg,South Carolina,45075,38,0 +2020-04-16,Orangeburg,South Carolina,45075,40,0 +2020-04-17,Orangeburg,South Carolina,45075,41,0 +2020-04-18,Orangeburg,South Carolina,45075,41,0 +2020-04-19,Orangeburg,South Carolina,45075,43,0 +2020-04-20,Orangeburg,South Carolina,45075,44,0 +2020-04-21,Orangeburg,South Carolina,45075,49,0 +2020-04-22,Orangeburg,South Carolina,45075,51,0 +2020-04-23,Orangeburg,South Carolina,45075,52,0 +2020-04-24,Orangeburg,South Carolina,45075,53,0 +2020-04-25,Orangeburg,South Carolina,45075,56,1 +2020-04-26,Orangeburg,South Carolina,45075,61,1 +2020-04-27,Orangeburg,South Carolina,45075,60,1 +2020-04-28,Orangeburg,South Carolina,45075,63,1 +2020-04-29,Orangeburg,South Carolina,45075,68,1 +2020-04-30,Orangeburg,South Carolina,45075,72,1 +2020-05-01,Orangeburg,South Carolina,45075,77,2 +2020-05-02,Orangeburg,South Carolina,45075,81,2 +2020-05-03,Orangeburg,South Carolina,45075,87,2 +2020-05-04,Orangeburg,South Carolina,45075,92,2 +2020-05-05,Orangeburg,South Carolina,45075,94,2 +2020-05-06,Orangeburg,South Carolina,45075,95,2 +2020-05-07,Orangeburg,South Carolina,45075,95,2 +2020-05-08,Orangeburg,South Carolina,45075,99,2 +2020-05-09,Orangeburg,South Carolina,45075,99,2 +2020-05-10,Orangeburg,South Carolina,45075,101,2 +2020-05-11,Orangeburg,South Carolina,45075,101,2 +2020-05-12,Orangeburg,South Carolina,45075,104,2 +2020-05-13,Orangeburg,South Carolina,45075,106,2 +2020-05-14,Orangeburg,South Carolina,45075,108,2 +2020-05-15,Orangeburg,South Carolina,45075,108,2 +2020-05-16,Orangeburg,South Carolina,45075,112,2 +2020-05-17,Orangeburg,South Carolina,45075,112,2 +2020-05-18,Orangeburg,South Carolina,45075,113,2 +2020-05-19,Orangeburg,South Carolina,45075,115,2 +2020-05-20,Orangeburg,South Carolina,45075,117,2 +2020-05-21,Orangeburg,South Carolina,45075,119,2 +2020-05-22,Orangeburg,South Carolina,45075,122,2 +2020-05-23,Orangeburg,South Carolina,45075,135,2 +2020-05-24,Orangeburg,South Carolina,45075,139,2 +2020-05-25,Orangeburg,South Carolina,45075,143,2 +2020-05-26,Orangeburg,South Carolina,45075,152,2 +2020-05-27,Orangeburg,South Carolina,45075,160,3 +2020-05-28,Orangeburg,South Carolina,45075,161,3 +2020-05-29,Orangeburg,South Carolina,45075,168,3 +2020-05-30,Orangeburg,South Carolina,45075,179,3 +2020-05-31,Orangeburg,South Carolina,45075,189,3 +2020-06-01,Orangeburg,South Carolina,45075,201,3 +2020-06-02,Orangeburg,South Carolina,45075,210,3 +2020-06-03,Orangeburg,South Carolina,45075,213,3 +2020-06-04,Orangeburg,South Carolina,45075,227,3 +2020-06-05,Orangeburg,South Carolina,45075,242,4 +2020-06-06,Orangeburg,South Carolina,45075,250,4 +2020-06-07,Orangeburg,South Carolina,45075,255,4 +2020-06-08,Orangeburg,South Carolina,45075,273,5 +2020-06-09,Orangeburg,South Carolina,45075,283,5 +2020-06-10,Orangeburg,South Carolina,45075,287,5 +2020-06-11,Orangeburg,South Carolina,45075,301,5 +2020-06-12,Orangeburg,South Carolina,45075,309,6 +2020-06-13,Orangeburg,South Carolina,45075,330,6 +2020-06-14,Orangeburg,South Carolina,45075,359,6 +2020-06-15,Orangeburg,South Carolina,45075,394,6 +2020-06-16,Orangeburg,South Carolina,45075,415,6 +2020-06-17,Orangeburg,South Carolina,45075,417,6 +2020-06-18,Orangeburg,South Carolina,45075,430,6 +2020-06-19,Orangeburg,South Carolina,45075,457,8 +2020-06-20,Orangeburg,South Carolina,45075,471,8 +2020-06-21,Orangeburg,South Carolina,45075,506,8 +2020-06-22,Orangeburg,South Carolina,45075,524,8 +2020-06-23,Orangeburg,South Carolina,45075,539,8 +2020-06-24,Orangeburg,South Carolina,45075,567,9 +2020-06-25,Orangeburg,South Carolina,45075,594,9 +2020-06-26,Orangeburg,South Carolina,45075,621,9 +2020-06-27,Orangeburg,South Carolina,45075,643,10 +2020-06-28,Orangeburg,South Carolina,45075,670,10 +2020-06-29,Orangeburg,South Carolina,45075,694,10 +2020-06-30,Orangeburg,South Carolina,45075,747,11 +2020-07-01,Orangeburg,South Carolina,45075,777,14 +2020-07-02,Orangeburg,South Carolina,45075,813,14 +2020-07-03,Orangeburg,South Carolina,45075,853,14 +2020-07-04,Orangeburg,South Carolina,45075,882,15 +2020-07-05,Orangeburg,South Carolina,45075,917,16 +2020-07-06,Orangeburg,South Carolina,45075,936,16 +2020-07-07,Orangeburg,South Carolina,45075,954,16 +2020-07-08,Orangeburg,South Carolina,45075,983,18 +2020-07-09,Orangeburg,South Carolina,45075,1028,19 +2020-03-20,Pickens,South Carolina,45077,1,0 +2020-03-21,Pickens,South Carolina,45077,1,0 +2020-03-22,Pickens,South Carolina,45077,1,0 +2020-03-23,Pickens,South Carolina,45077,1,0 +2020-03-24,Pickens,South Carolina,45077,1,0 +2020-03-25,Pickens,South Carolina,45077,6,0 +2020-03-26,Pickens,South Carolina,45077,6,0 +2020-03-27,Pickens,South Carolina,45077,7,0 +2020-03-28,Pickens,South Carolina,45077,10,0 +2020-03-29,Pickens,South Carolina,45077,11,0 +2020-03-30,Pickens,South Carolina,45077,13,0 +2020-03-31,Pickens,South Carolina,45077,14,0 +2020-04-01,Pickens,South Carolina,45077,14,0 +2020-04-02,Pickens,South Carolina,45077,15,0 +2020-04-03,Pickens,South Carolina,45077,17,0 +2020-04-04,Pickens,South Carolina,45077,17,0 +2020-04-05,Pickens,South Carolina,45077,18,0 +2020-04-06,Pickens,South Carolina,45077,20,0 +2020-04-07,Pickens,South Carolina,45077,21,0 +2020-04-08,Pickens,South Carolina,45077,21,0 +2020-04-09,Pickens,South Carolina,45077,22,0 +2020-04-10,Pickens,South Carolina,45077,27,0 +2020-04-11,Pickens,South Carolina,45077,28,0 +2020-04-12,Pickens,South Carolina,45077,28,0 +2020-04-13,Pickens,South Carolina,45077,31,0 +2020-04-14,Pickens,South Carolina,45077,34,0 +2020-04-15,Pickens,South Carolina,45077,34,0 +2020-04-16,Pickens,South Carolina,45077,37,0 +2020-04-17,Pickens,South Carolina,45077,36,0 +2020-04-18,Pickens,South Carolina,45077,38,0 +2020-04-19,Pickens,South Carolina,45077,39,0 +2020-04-20,Pickens,South Carolina,45077,38,0 +2020-04-21,Pickens,South Carolina,45077,41,0 +2020-04-22,Pickens,South Carolina,45077,41,0 +2020-04-23,Pickens,South Carolina,45077,44,0 +2020-04-24,Pickens,South Carolina,45077,44,0 +2020-04-25,Pickens,South Carolina,45077,44,0 +2020-04-26,Pickens,South Carolina,45077,49,0 +2020-04-27,Pickens,South Carolina,45077,53,0 +2020-04-28,Pickens,South Carolina,45077,54,0 +2020-04-29,Pickens,South Carolina,45077,53,1 +2020-04-30,Pickens,South Carolina,45077,54,1 +2020-05-01,Pickens,South Carolina,45077,57,1 +2020-05-02,Pickens,South Carolina,45077,58,1 +2020-05-03,Pickens,South Carolina,45077,58,1 +2020-05-04,Pickens,South Carolina,45077,59,1 +2020-05-05,Pickens,South Carolina,45077,61,1 +2020-05-06,Pickens,South Carolina,45077,61,1 +2020-05-07,Pickens,South Carolina,45077,62,1 +2020-05-08,Pickens,South Carolina,45077,63,1 +2020-05-09,Pickens,South Carolina,45077,68,1 +2020-05-10,Pickens,South Carolina,45077,73,1 +2020-05-11,Pickens,South Carolina,45077,73,1 +2020-05-12,Pickens,South Carolina,45077,77,1 +2020-05-13,Pickens,South Carolina,45077,85,1 +2020-05-14,Pickens,South Carolina,45077,87,2 +2020-05-15,Pickens,South Carolina,45077,89,3 +2020-05-16,Pickens,South Carolina,45077,91,3 +2020-05-17,Pickens,South Carolina,45077,93,3 +2020-05-18,Pickens,South Carolina,45077,93,3 +2020-05-19,Pickens,South Carolina,45077,94,3 +2020-05-20,Pickens,South Carolina,45077,97,3 +2020-05-21,Pickens,South Carolina,45077,104,3 +2020-05-22,Pickens,South Carolina,45077,110,3 +2020-05-23,Pickens,South Carolina,45077,114,3 +2020-05-24,Pickens,South Carolina,45077,120,3 +2020-05-25,Pickens,South Carolina,45077,124,3 +2020-05-26,Pickens,South Carolina,45077,127,3 +2020-05-27,Pickens,South Carolina,45077,128,3 +2020-05-28,Pickens,South Carolina,45077,129,3 +2020-05-29,Pickens,South Carolina,45077,138,3 +2020-05-30,Pickens,South Carolina,45077,140,3 +2020-05-31,Pickens,South Carolina,45077,158,3 +2020-06-01,Pickens,South Carolina,45077,164,3 +2020-06-02,Pickens,South Carolina,45077,174,3 +2020-06-03,Pickens,South Carolina,45077,179,4 +2020-06-04,Pickens,South Carolina,45077,180,4 +2020-06-05,Pickens,South Carolina,45077,186,4 +2020-06-06,Pickens,South Carolina,45077,190,4 +2020-06-07,Pickens,South Carolina,45077,197,4 +2020-06-08,Pickens,South Carolina,45077,207,4 +2020-06-09,Pickens,South Carolina,45077,212,4 +2020-06-10,Pickens,South Carolina,45077,226,4 +2020-06-11,Pickens,South Carolina,45077,242,4 +2020-06-12,Pickens,South Carolina,45077,262,4 +2020-06-13,Pickens,South Carolina,45077,281,4 +2020-06-14,Pickens,South Carolina,45077,296,4 +2020-06-15,Pickens,South Carolina,45077,303,4 +2020-06-16,Pickens,South Carolina,45077,326,4 +2020-06-17,Pickens,South Carolina,45077,348,4 +2020-06-18,Pickens,South Carolina,45077,368,4 +2020-06-19,Pickens,South Carolina,45077,430,4 +2020-06-20,Pickens,South Carolina,45077,466,4 +2020-06-21,Pickens,South Carolina,45077,501,4 +2020-06-22,Pickens,South Carolina,45077,531,4 +2020-06-23,Pickens,South Carolina,45077,572,4 +2020-06-24,Pickens,South Carolina,45077,642,4 +2020-06-25,Pickens,South Carolina,45077,655,4 +2020-06-26,Pickens,South Carolina,45077,684,4 +2020-06-27,Pickens,South Carolina,45077,751,4 +2020-06-28,Pickens,South Carolina,45077,778,4 +2020-06-29,Pickens,South Carolina,45077,809,4 +2020-06-30,Pickens,South Carolina,45077,835,5 +2020-07-01,Pickens,South Carolina,45077,855,5 +2020-07-02,Pickens,South Carolina,45077,896,5 +2020-07-03,Pickens,South Carolina,45077,921,5 +2020-07-04,Pickens,South Carolina,45077,942,5 +2020-07-05,Pickens,South Carolina,45077,979,5 +2020-07-06,Pickens,South Carolina,45077,1000,5 +2020-07-07,Pickens,South Carolina,45077,1007,5 +2020-07-08,Pickens,South Carolina,45077,1042,6 +2020-07-09,Pickens,South Carolina,45077,1072,6 +2020-03-17,Richland,South Carolina,45079,1,0 +2020-03-18,Richland,South Carolina,45079,4,0 +2020-03-19,Richland,South Carolina,45079,8,0 +2020-03-20,Richland,South Carolina,45079,22,0 +2020-03-21,Richland,South Carolina,45079,28,0 +2020-03-22,Richland,South Carolina,45079,31,0 +2020-03-23,Richland,South Carolina,45079,43,0 +2020-03-24,Richland,South Carolina,45079,45,0 +2020-03-25,Richland,South Carolina,45079,59,0 +2020-03-26,Richland,South Carolina,45079,60,0 +2020-03-27,Richland,South Carolina,45079,65,1 +2020-03-28,Richland,South Carolina,45079,81,2 +2020-03-29,Richland,South Carolina,45079,98,2 +2020-03-30,Richland,South Carolina,45079,135,2 +2020-03-31,Richland,South Carolina,45079,148,2 +2020-04-01,Richland,South Carolina,45079,176,3 +2020-04-02,Richland,South Carolina,45079,200,3 +2020-04-03,Richland,South Carolina,45079,224,5 +2020-04-04,Richland,South Carolina,45079,242,6 +2020-04-05,Richland,South Carolina,45079,298,6 +2020-04-06,Richland,South Carolina,45079,311,7 +2020-04-07,Richland,South Carolina,45079,340,7 +2020-04-08,Richland,South Carolina,45079,372,10 +2020-04-09,Richland,South Carolina,45079,417,10 +2020-04-10,Richland,South Carolina,45079,452,10 +2020-04-11,Richland,South Carolina,45079,479,10 +2020-04-12,Richland,South Carolina,45079,494,10 +2020-04-13,Richland,South Carolina,45079,524,10 +2020-04-14,Richland,South Carolina,45079,535,11 +2020-04-15,Richland,South Carolina,45079,548,12 +2020-04-16,Richland,South Carolina,45079,579,13 +2020-04-17,Richland,South Carolina,45079,612,14 +2020-04-18,Richland,South Carolina,45079,626,14 +2020-04-19,Richland,South Carolina,45079,652,14 +2020-04-20,Richland,South Carolina,45079,657,14 +2020-04-21,Richland,South Carolina,45079,689,14 +2020-04-22,Richland,South Carolina,45079,725,15 +2020-04-23,Richland,South Carolina,45079,736,17 +2020-04-24,Richland,South Carolina,45079,766,17 +2020-04-25,Richland,South Carolina,45079,787,18 +2020-04-26,Richland,South Carolina,45079,837,19 +2020-04-27,Richland,South Carolina,45079,840,19 +2020-04-28,Richland,South Carolina,45079,864,21 +2020-04-29,Richland,South Carolina,45079,884,30 +2020-04-30,Richland,South Carolina,45079,899,33 +2020-05-01,Richland,South Carolina,45079,913,34 +2020-05-02,Richland,South Carolina,45079,946,38 +2020-05-03,Richland,South Carolina,45079,964,40 +2020-05-04,Richland,South Carolina,45079,977,42 +2020-05-05,Richland,South Carolina,45079,990,47 +2020-05-06,Richland,South Carolina,45079,1014,49 +2020-05-07,Richland,South Carolina,45079,1043,52 +2020-05-08,Richland,South Carolina,45079,1057,52 +2020-05-09,Richland,South Carolina,45079,1082,54 +2020-05-10,Richland,South Carolina,45079,1100,54 +2020-05-11,Richland,South Carolina,45079,1119,57 +2020-05-12,Richland,South Carolina,45079,1145,59 +2020-05-13,Richland,South Carolina,45079,1167,59 +2020-05-14,Richland,South Carolina,45079,1180,60 +2020-05-15,Richland,South Carolina,45079,1196,60 +2020-05-16,Richland,South Carolina,45079,1222,60 +2020-05-17,Richland,South Carolina,45079,1238,61 +2020-05-18,Richland,South Carolina,45079,1250,61 +2020-05-19,Richland,South Carolina,45079,1267,61 +2020-05-20,Richland,South Carolina,45079,1287,62 +2020-05-21,Richland,South Carolina,45079,1302,62 +2020-05-22,Richland,South Carolina,45079,1333,62 +2020-05-23,Richland,South Carolina,45079,1349,63 +2020-05-24,Richland,South Carolina,45079,1361,63 +2020-05-25,Richland,South Carolina,45079,1366,63 +2020-05-26,Richland,South Carolina,45079,1386,63 +2020-05-27,Richland,South Carolina,45079,1405,66 +2020-05-28,Richland,South Carolina,45079,1432,66 +2020-05-29,Richland,South Carolina,45079,1461,66 +2020-05-30,Richland,South Carolina,45079,1485,66 +2020-05-31,Richland,South Carolina,45079,1518,66 +2020-06-01,Richland,South Carolina,45079,1530,66 +2020-06-02,Richland,South Carolina,45079,1542,66 +2020-06-03,Richland,South Carolina,45079,1572,66 +2020-06-04,Richland,South Carolina,45079,1609,67 +2020-06-05,Richland,South Carolina,45079,1666,68 +2020-06-06,Richland,South Carolina,45079,1718,68 +2020-06-07,Richland,South Carolina,45079,1748,68 +2020-06-08,Richland,South Carolina,45079,1794,70 +2020-06-09,Richland,South Carolina,45079,1873,70 +2020-06-10,Richland,South Carolina,45079,1938,70 +2020-06-11,Richland,South Carolina,45079,2006,70 +2020-06-12,Richland,South Carolina,45079,2076,71 +2020-06-13,Richland,South Carolina,45079,2140,72 +2020-06-14,Richland,South Carolina,45079,2215,72 +2020-06-15,Richland,South Carolina,45079,2258,72 +2020-06-16,Richland,South Carolina,45079,2319,74 +2020-06-17,Richland,South Carolina,45079,2371,74 +2020-06-18,Richland,South Carolina,45079,2452,74 +2020-06-19,Richland,South Carolina,45079,2541,74 +2020-06-20,Richland,South Carolina,45079,2641,76 +2020-06-21,Richland,South Carolina,45079,2675,79 +2020-06-22,Richland,South Carolina,45079,2718,80 +2020-06-23,Richland,South Carolina,45079,2796,80 +2020-06-24,Richland,South Carolina,45079,2880,80 +2020-06-25,Richland,South Carolina,45079,2956,80 +2020-06-26,Richland,South Carolina,45079,3064,80 +2020-06-27,Richland,South Carolina,45079,3192,80 +2020-06-28,Richland,South Carolina,45079,3285,81 +2020-06-29,Richland,South Carolina,45079,3363,82 +2020-06-30,Richland,South Carolina,45079,3518,83 +2020-07-01,Richland,South Carolina,45079,3632,84 +2020-07-02,Richland,South Carolina,45079,3757,86 +2020-07-03,Richland,South Carolina,45079,3866,86 +2020-07-04,Richland,South Carolina,45079,4013,87 +2020-07-05,Richland,South Carolina,45079,4127,87 +2020-07-06,Richland,South Carolina,45079,4216,87 +2020-07-07,Richland,South Carolina,45079,4273,90 +2020-07-08,Richland,South Carolina,45079,4344,92 +2020-07-09,Richland,South Carolina,45079,4470,93 +2020-03-19,Saluda,South Carolina,45081,1,0 +2020-03-20,Saluda,South Carolina,45081,1,0 +2020-03-21,Saluda,South Carolina,45081,1,0 +2020-03-22,Saluda,South Carolina,45081,1,0 +2020-03-23,Saluda,South Carolina,45081,1,0 +2020-03-24,Saluda,South Carolina,45081,1,0 +2020-03-25,Saluda,South Carolina,45081,1,0 +2020-03-26,Saluda,South Carolina,45081,1,0 +2020-03-27,Saluda,South Carolina,45081,1,0 +2020-03-28,Saluda,South Carolina,45081,1,0 +2020-03-29,Saluda,South Carolina,45081,1,0 +2020-03-30,Saluda,South Carolina,45081,1,0 +2020-03-31,Saluda,South Carolina,45081,1,0 +2020-04-01,Saluda,South Carolina,45081,1,0 +2020-04-02,Saluda,South Carolina,45081,2,0 +2020-04-03,Saluda,South Carolina,45081,2,0 +2020-04-04,Saluda,South Carolina,45081,4,0 +2020-04-05,Saluda,South Carolina,45081,4,0 +2020-04-06,Saluda,South Carolina,45081,4,0 +2020-04-07,Saluda,South Carolina,45081,5,0 +2020-04-08,Saluda,South Carolina,45081,5,0 +2020-04-09,Saluda,South Carolina,45081,7,0 +2020-04-10,Saluda,South Carolina,45081,6,0 +2020-04-11,Saluda,South Carolina,45081,6,0 +2020-04-12,Saluda,South Carolina,45081,6,0 +2020-04-13,Saluda,South Carolina,45081,7,0 +2020-04-14,Saluda,South Carolina,45081,7,0 +2020-04-15,Saluda,South Carolina,45081,8,0 +2020-04-16,Saluda,South Carolina,45081,9,0 +2020-04-17,Saluda,South Carolina,45081,9,0 +2020-04-18,Saluda,South Carolina,45081,10,0 +2020-04-19,Saluda,South Carolina,45081,12,0 +2020-04-20,Saluda,South Carolina,45081,12,0 +2020-04-21,Saluda,South Carolina,45081,12,0 +2020-04-22,Saluda,South Carolina,45081,18,0 +2020-04-23,Saluda,South Carolina,45081,19,0 +2020-04-24,Saluda,South Carolina,45081,23,0 +2020-04-25,Saluda,South Carolina,45081,28,0 +2020-04-26,Saluda,South Carolina,45081,35,0 +2020-04-27,Saluda,South Carolina,45081,40,0 +2020-04-28,Saluda,South Carolina,45081,41,0 +2020-04-29,Saluda,South Carolina,45081,41,0 +2020-04-30,Saluda,South Carolina,45081,47,0 +2020-05-01,Saluda,South Carolina,45081,52,0 +2020-05-02,Saluda,South Carolina,45081,64,0 +2020-05-03,Saluda,South Carolina,45081,67,0 +2020-05-04,Saluda,South Carolina,45081,68,0 +2020-05-05,Saluda,South Carolina,45081,70,0 +2020-05-06,Saluda,South Carolina,45081,73,0 +2020-05-07,Saluda,South Carolina,45081,82,0 +2020-05-08,Saluda,South Carolina,45081,84,0 +2020-05-09,Saluda,South Carolina,45081,86,0 +2020-05-10,Saluda,South Carolina,45081,87,0 +2020-05-11,Saluda,South Carolina,45081,90,0 +2020-05-12,Saluda,South Carolina,45081,91,0 +2020-05-13,Saluda,South Carolina,45081,92,0 +2020-05-14,Saluda,South Carolina,45081,94,0 +2020-05-15,Saluda,South Carolina,45081,98,0 +2020-05-16,Saluda,South Carolina,45081,115,0 +2020-05-17,Saluda,South Carolina,45081,122,0 +2020-05-18,Saluda,South Carolina,45081,123,0 +2020-05-19,Saluda,South Carolina,45081,123,0 +2020-05-20,Saluda,South Carolina,45081,127,0 +2020-05-21,Saluda,South Carolina,45081,132,0 +2020-05-22,Saluda,South Carolina,45081,132,0 +2020-05-23,Saluda,South Carolina,45081,134,0 +2020-05-24,Saluda,South Carolina,45081,136,0 +2020-05-25,Saluda,South Carolina,45081,136,0 +2020-05-26,Saluda,South Carolina,45081,137,0 +2020-05-27,Saluda,South Carolina,45081,137,0 +2020-05-28,Saluda,South Carolina,45081,139,0 +2020-05-29,Saluda,South Carolina,45081,142,1 +2020-05-30,Saluda,South Carolina,45081,144,1 +2020-05-31,Saluda,South Carolina,45081,145,1 +2020-06-01,Saluda,South Carolina,45081,148,1 +2020-06-02,Saluda,South Carolina,45081,148,1 +2020-06-03,Saluda,South Carolina,45081,148,1 +2020-06-04,Saluda,South Carolina,45081,148,1 +2020-06-05,Saluda,South Carolina,45081,151,1 +2020-06-06,Saluda,South Carolina,45081,151,1 +2020-06-07,Saluda,South Carolina,45081,152,1 +2020-06-08,Saluda,South Carolina,45081,154,1 +2020-06-09,Saluda,South Carolina,45081,154,1 +2020-06-10,Saluda,South Carolina,45081,154,1 +2020-06-11,Saluda,South Carolina,45081,156,1 +2020-06-12,Saluda,South Carolina,45081,158,1 +2020-06-13,Saluda,South Carolina,45081,158,1 +2020-06-14,Saluda,South Carolina,45081,164,1 +2020-06-15,Saluda,South Carolina,45081,166,1 +2020-06-16,Saluda,South Carolina,45081,170,1 +2020-06-17,Saluda,South Carolina,45081,171,1 +2020-06-18,Saluda,South Carolina,45081,174,1 +2020-06-19,Saluda,South Carolina,45081,179,1 +2020-06-20,Saluda,South Carolina,45081,180,1 +2020-06-21,Saluda,South Carolina,45081,183,1 +2020-06-22,Saluda,South Carolina,45081,185,1 +2020-06-23,Saluda,South Carolina,45081,187,1 +2020-06-24,Saluda,South Carolina,45081,192,1 +2020-06-25,Saluda,South Carolina,45081,191,1 +2020-06-26,Saluda,South Carolina,45081,194,1 +2020-06-27,Saluda,South Carolina,45081,200,1 +2020-06-28,Saluda,South Carolina,45081,203,1 +2020-06-29,Saluda,South Carolina,45081,206,1 +2020-06-30,Saluda,South Carolina,45081,208,1 +2020-07-01,Saluda,South Carolina,45081,215,1 +2020-07-02,Saluda,South Carolina,45081,219,1 +2020-07-03,Saluda,South Carolina,45081,224,1 +2020-07-04,Saluda,South Carolina,45081,226,1 +2020-07-05,Saluda,South Carolina,45081,235,1 +2020-07-06,Saluda,South Carolina,45081,239,1 +2020-07-07,Saluda,South Carolina,45081,240,1 +2020-07-08,Saluda,South Carolina,45081,249,2 +2020-07-09,Saluda,South Carolina,45081,254,2 +2020-03-08,Spartanburg,South Carolina,45083,1,0 +2020-03-09,Spartanburg,South Carolina,45083,1,0 +2020-03-10,Spartanburg,South Carolina,45083,1,0 +2020-03-11,Spartanburg,South Carolina,45083,1,0 +2020-03-12,Spartanburg,South Carolina,45083,1,0 +2020-03-13,Spartanburg,South Carolina,45083,1,0 +2020-03-14,Spartanburg,South Carolina,45083,1,0 +2020-03-15,Spartanburg,South Carolina,45083,1,0 +2020-03-16,Spartanburg,South Carolina,45083,1,0 +2020-03-17,Spartanburg,South Carolina,45083,1,0 +2020-03-18,Spartanburg,South Carolina,45083,1,0 +2020-03-19,Spartanburg,South Carolina,45083,1,0 +2020-03-20,Spartanburg,South Carolina,45083,1,0 +2020-03-21,Spartanburg,South Carolina,45083,2,0 +2020-03-22,Spartanburg,South Carolina,45083,2,0 +2020-03-23,Spartanburg,South Carolina,45083,3,0 +2020-03-24,Spartanburg,South Carolina,45083,4,0 +2020-03-25,Spartanburg,South Carolina,45083,9,0 +2020-03-26,Spartanburg,South Carolina,45083,9,0 +2020-03-27,Spartanburg,South Carolina,45083,16,0 +2020-03-28,Spartanburg,South Carolina,45083,21,0 +2020-03-29,Spartanburg,South Carolina,45083,25,0 +2020-03-30,Spartanburg,South Carolina,45083,30,0 +2020-03-31,Spartanburg,South Carolina,45083,37,0 +2020-04-01,Spartanburg,South Carolina,45083,45,0 +2020-04-02,Spartanburg,South Carolina,45083,50,0 +2020-04-03,Spartanburg,South Carolina,45083,60,0 +2020-04-04,Spartanburg,South Carolina,45083,72,0 +2020-04-05,Spartanburg,South Carolina,45083,75,0 +2020-04-06,Spartanburg,South Carolina,45083,88,1 +2020-04-07,Spartanburg,South Carolina,45083,120,1 +2020-04-08,Spartanburg,South Carolina,45083,126,4 +2020-04-09,Spartanburg,South Carolina,45083,139,4 +2020-04-10,Spartanburg,South Carolina,45083,150,4 +2020-04-11,Spartanburg,South Carolina,45083,170,4 +2020-04-12,Spartanburg,South Carolina,45083,174,4 +2020-04-13,Spartanburg,South Carolina,45083,188,4 +2020-04-14,Spartanburg,South Carolina,45083,190,4 +2020-04-15,Spartanburg,South Carolina,45083,191,5 +2020-04-16,Spartanburg,South Carolina,45083,199,5 +2020-04-17,Spartanburg,South Carolina,45083,204,5 +2020-04-18,Spartanburg,South Carolina,45083,211,5 +2020-04-19,Spartanburg,South Carolina,45083,213,5 +2020-04-20,Spartanburg,South Carolina,45083,219,5 +2020-04-21,Spartanburg,South Carolina,45083,225,6 +2020-04-22,Spartanburg,South Carolina,45083,227,7 +2020-04-23,Spartanburg,South Carolina,45083,237,8 +2020-04-24,Spartanburg,South Carolina,45083,238,8 +2020-04-25,Spartanburg,South Carolina,45083,243,8 +2020-04-26,Spartanburg,South Carolina,45083,249,8 +2020-04-27,Spartanburg,South Carolina,45083,255,8 +2020-04-28,Spartanburg,South Carolina,45083,258,8 +2020-04-29,Spartanburg,South Carolina,45083,262,9 +2020-04-30,Spartanburg,South Carolina,45083,287,9 +2020-05-01,Spartanburg,South Carolina,45083,295,11 +2020-05-02,Spartanburg,South Carolina,45083,302,11 +2020-05-03,Spartanburg,South Carolina,45083,308,12 +2020-05-04,Spartanburg,South Carolina,45083,315,12 +2020-05-05,Spartanburg,South Carolina,45083,317,12 +2020-05-06,Spartanburg,South Carolina,45083,318,12 +2020-05-07,Spartanburg,South Carolina,45083,325,12 +2020-05-08,Spartanburg,South Carolina,45083,333,12 +2020-05-09,Spartanburg,South Carolina,45083,336,12 +2020-05-10,Spartanburg,South Carolina,45083,343,12 +2020-05-11,Spartanburg,South Carolina,45083,346,12 +2020-05-12,Spartanburg,South Carolina,45083,351,13 +2020-05-13,Spartanburg,South Carolina,45083,354,13 +2020-05-14,Spartanburg,South Carolina,45083,358,13 +2020-05-15,Spartanburg,South Carolina,45083,376,13 +2020-05-16,Spartanburg,South Carolina,45083,383,13 +2020-05-17,Spartanburg,South Carolina,45083,399,13 +2020-05-18,Spartanburg,South Carolina,45083,407,13 +2020-05-19,Spartanburg,South Carolina,45083,411,13 +2020-05-20,Spartanburg,South Carolina,45083,415,13 +2020-05-21,Spartanburg,South Carolina,45083,421,14 +2020-05-22,Spartanburg,South Carolina,45083,439,16 +2020-05-23,Spartanburg,South Carolina,45083,450,16 +2020-05-24,Spartanburg,South Carolina,45083,471,17 +2020-05-25,Spartanburg,South Carolina,45083,476,17 +2020-05-26,Spartanburg,South Carolina,45083,512,18 +2020-05-27,Spartanburg,South Carolina,45083,529,19 +2020-05-28,Spartanburg,South Carolina,45083,534,19 +2020-05-29,Spartanburg,South Carolina,45083,555,20 +2020-05-30,Spartanburg,South Carolina,45083,556,20 +2020-05-31,Spartanburg,South Carolina,45083,617,20 +2020-06-01,Spartanburg,South Carolina,45083,637,20 +2020-06-02,Spartanburg,South Carolina,45083,645,20 +2020-06-03,Spartanburg,South Carolina,45083,650,23 +2020-06-04,Spartanburg,South Carolina,45083,687,25 +2020-06-05,Spartanburg,South Carolina,45083,701,30 +2020-06-06,Spartanburg,South Carolina,45083,743,30 +2020-06-07,Spartanburg,South Carolina,45083,782,30 +2020-06-08,Spartanburg,South Carolina,45083,813,31 +2020-06-09,Spartanburg,South Carolina,45083,825,31 +2020-06-10,Spartanburg,South Carolina,45083,835,32 +2020-06-11,Spartanburg,South Carolina,45083,843,37 +2020-06-12,Spartanburg,South Carolina,45083,887,37 +2020-06-13,Spartanburg,South Carolina,45083,938,37 +2020-06-14,Spartanburg,South Carolina,45083,959,37 +2020-06-15,Spartanburg,South Carolina,45083,992,37 +2020-06-16,Spartanburg,South Carolina,45083,1026,37 +2020-06-17,Spartanburg,South Carolina,45083,1046,36 +2020-06-18,Spartanburg,South Carolina,45083,1088,36 +2020-06-19,Spartanburg,South Carolina,45083,1146,38 +2020-06-20,Spartanburg,South Carolina,45083,1183,38 +2020-06-21,Spartanburg,South Carolina,45083,1200,39 +2020-06-22,Spartanburg,South Carolina,45083,1247,39 +2020-06-23,Spartanburg,South Carolina,45083,1257,42 +2020-06-24,Spartanburg,South Carolina,45083,1278,44 +2020-06-25,Spartanburg,South Carolina,45083,1312,44 +2020-06-26,Spartanburg,South Carolina,45083,1369,44 +2020-06-27,Spartanburg,South Carolina,45083,1429,45 +2020-06-28,Spartanburg,South Carolina,45083,1472,45 +2020-06-29,Spartanburg,South Carolina,45083,1544,45 +2020-06-30,Spartanburg,South Carolina,45083,1609,48 +2020-07-01,Spartanburg,South Carolina,45083,1663,48 +2020-07-02,Spartanburg,South Carolina,45083,1767,49 +2020-07-03,Spartanburg,South Carolina,45083,1798,49 +2020-07-04,Spartanburg,South Carolina,45083,1835,50 +2020-07-05,Spartanburg,South Carolina,45083,1892,52 +2020-07-06,Spartanburg,South Carolina,45083,1955,52 +2020-07-07,Spartanburg,South Carolina,45083,2009,52 +2020-07-08,Spartanburg,South Carolina,45083,2083,57 +2020-07-09,Spartanburg,South Carolina,45083,2158,58 +2020-03-20,Sumter,South Carolina,45085,1,0 +2020-03-21,Sumter,South Carolina,45085,3,0 +2020-03-22,Sumter,South Carolina,45085,3,0 +2020-03-23,Sumter,South Carolina,45085,4,0 +2020-03-24,Sumter,South Carolina,45085,8,1 +2020-03-25,Sumter,South Carolina,45085,10,1 +2020-03-26,Sumter,South Carolina,45085,10,2 +2020-03-27,Sumter,South Carolina,45085,10,2 +2020-03-28,Sumter,South Carolina,45085,24,2 +2020-03-29,Sumter,South Carolina,45085,30,2 +2020-03-30,Sumter,South Carolina,45085,34,2 +2020-03-31,Sumter,South Carolina,45085,39,2 +2020-04-01,Sumter,South Carolina,45085,48,2 +2020-04-02,Sumter,South Carolina,45085,66,3 +2020-04-03,Sumter,South Carolina,45085,75,3 +2020-04-04,Sumter,South Carolina,45085,79,3 +2020-04-05,Sumter,South Carolina,45085,80,3 +2020-04-06,Sumter,South Carolina,45085,90,3 +2020-04-07,Sumter,South Carolina,45085,105,3 +2020-04-08,Sumter,South Carolina,45085,117,3 +2020-04-09,Sumter,South Carolina,45085,126,3 +2020-04-10,Sumter,South Carolina,45085,142,3 +2020-04-11,Sumter,South Carolina,45085,146,4 +2020-04-12,Sumter,South Carolina,45085,148,4 +2020-04-13,Sumter,South Carolina,45085,152,4 +2020-04-14,Sumter,South Carolina,45085,156,4 +2020-04-15,Sumter,South Carolina,45085,161,5 +2020-04-16,Sumter,South Carolina,45085,168,5 +2020-04-17,Sumter,South Carolina,45085,176,6 +2020-04-18,Sumter,South Carolina,45085,181,6 +2020-04-19,Sumter,South Carolina,45085,181,6 +2020-04-20,Sumter,South Carolina,45085,185,6 +2020-04-21,Sumter,South Carolina,45085,199,6 +2020-04-22,Sumter,South Carolina,45085,206,6 +2020-04-23,Sumter,South Carolina,45085,207,6 +2020-04-24,Sumter,South Carolina,45085,209,6 +2020-04-25,Sumter,South Carolina,45085,213,6 +2020-04-26,Sumter,South Carolina,45085,214,6 +2020-04-27,Sumter,South Carolina,45085,215,6 +2020-04-28,Sumter,South Carolina,45085,220,7 +2020-04-29,Sumter,South Carolina,45085,223,11 +2020-04-30,Sumter,South Carolina,45085,228,11 +2020-05-01,Sumter,South Carolina,45085,230,11 +2020-05-02,Sumter,South Carolina,45085,248,12 +2020-05-03,Sumter,South Carolina,45085,251,12 +2020-05-04,Sumter,South Carolina,45085,264,12 +2020-05-05,Sumter,South Carolina,45085,270,12 +2020-05-06,Sumter,South Carolina,45085,271,12 +2020-05-07,Sumter,South Carolina,45085,277,12 +2020-05-08,Sumter,South Carolina,45085,281,12 +2020-05-09,Sumter,South Carolina,45085,286,12 +2020-05-10,Sumter,South Carolina,45085,287,12 +2020-05-11,Sumter,South Carolina,45085,290,13 +2020-05-12,Sumter,South Carolina,45085,294,13 +2020-05-13,Sumter,South Carolina,45085,296,13 +2020-05-14,Sumter,South Carolina,45085,301,13 +2020-05-15,Sumter,South Carolina,45085,313,16 +2020-05-16,Sumter,South Carolina,45085,313,16 +2020-05-17,Sumter,South Carolina,45085,321,17 +2020-05-18,Sumter,South Carolina,45085,322,17 +2020-05-19,Sumter,South Carolina,45085,323,17 +2020-05-20,Sumter,South Carolina,45085,324,17 +2020-05-21,Sumter,South Carolina,45085,331,17 +2020-05-22,Sumter,South Carolina,45085,339,17 +2020-05-23,Sumter,South Carolina,45085,344,17 +2020-05-24,Sumter,South Carolina,45085,346,18 +2020-05-25,Sumter,South Carolina,45085,347,18 +2020-05-26,Sumter,South Carolina,45085,347,18 +2020-05-27,Sumter,South Carolina,45085,357,18 +2020-05-28,Sumter,South Carolina,45085,359,18 +2020-05-29,Sumter,South Carolina,45085,365,18 +2020-05-30,Sumter,South Carolina,45085,378,18 +2020-05-31,Sumter,South Carolina,45085,384,18 +2020-06-01,Sumter,South Carolina,45085,387,18 +2020-06-02,Sumter,South Carolina,45085,396,18 +2020-06-03,Sumter,South Carolina,45085,408,19 +2020-06-04,Sumter,South Carolina,45085,414,19 +2020-06-05,Sumter,South Carolina,45085,426,19 +2020-06-06,Sumter,South Carolina,45085,448,19 +2020-06-07,Sumter,South Carolina,45085,462,19 +2020-06-08,Sumter,South Carolina,45085,472,19 +2020-06-09,Sumter,South Carolina,45085,494,19 +2020-06-10,Sumter,South Carolina,45085,509,19 +2020-06-11,Sumter,South Carolina,45085,556,19 +2020-06-12,Sumter,South Carolina,45085,580,19 +2020-06-13,Sumter,South Carolina,45085,594,19 +2020-06-14,Sumter,South Carolina,45085,626,19 +2020-06-15,Sumter,South Carolina,45085,633,19 +2020-06-16,Sumter,South Carolina,45085,648,19 +2020-06-17,Sumter,South Carolina,45085,655,19 +2020-06-18,Sumter,South Carolina,45085,690,19 +2020-06-19,Sumter,South Carolina,45085,736,20 +2020-06-20,Sumter,South Carolina,45085,776,20 +2020-06-21,Sumter,South Carolina,45085,791,21 +2020-06-22,Sumter,South Carolina,45085,825,21 +2020-06-23,Sumter,South Carolina,45085,842,21 +2020-06-24,Sumter,South Carolina,45085,867,21 +2020-06-25,Sumter,South Carolina,45085,905,22 +2020-06-26,Sumter,South Carolina,45085,945,22 +2020-06-27,Sumter,South Carolina,45085,996,23 +2020-06-28,Sumter,South Carolina,45085,1003,23 +2020-06-29,Sumter,South Carolina,45085,1022,23 +2020-06-30,Sumter,South Carolina,45085,1059,23 +2020-07-01,Sumter,South Carolina,45085,1080,23 +2020-07-02,Sumter,South Carolina,45085,1115,25 +2020-07-03,Sumter,South Carolina,45085,1158,25 +2020-07-04,Sumter,South Carolina,45085,1185,26 +2020-07-05,Sumter,South Carolina,45085,1195,25 +2020-07-06,Sumter,South Carolina,45085,1208,25 +2020-07-07,Sumter,South Carolina,45085,1248,27 +2020-07-08,Sumter,South Carolina,45085,1256,27 +2020-07-09,Sumter,South Carolina,45085,1305,27 +2020-03-25,Union,South Carolina,45087,1,0 +2020-03-26,Union,South Carolina,45087,1,0 +2020-03-27,Union,South Carolina,45087,1,0 +2020-03-28,Union,South Carolina,45087,1,0 +2020-03-29,Union,South Carolina,45087,1,0 +2020-03-30,Union,South Carolina,45087,3,0 +2020-03-31,Union,South Carolina,45087,3,0 +2020-04-01,Union,South Carolina,45087,3,0 +2020-04-02,Union,South Carolina,45087,5,0 +2020-04-03,Union,South Carolina,45087,6,0 +2020-04-04,Union,South Carolina,45087,9,0 +2020-04-05,Union,South Carolina,45087,11,0 +2020-04-06,Union,South Carolina,45087,12,0 +2020-04-07,Union,South Carolina,45087,15,0 +2020-04-08,Union,South Carolina,45087,16,0 +2020-04-09,Union,South Carolina,45087,19,0 +2020-04-10,Union,South Carolina,45087,20,0 +2020-04-11,Union,South Carolina,45087,22,0 +2020-04-12,Union,South Carolina,45087,22,0 +2020-04-13,Union,South Carolina,45087,23,0 +2020-04-14,Union,South Carolina,45087,23,0 +2020-04-15,Union,South Carolina,45087,23,0 +2020-04-16,Union,South Carolina,45087,23,0 +2020-04-17,Union,South Carolina,45087,23,0 +2020-04-18,Union,South Carolina,45087,23,0 +2020-04-19,Union,South Carolina,45087,24,0 +2020-04-20,Union,South Carolina,45087,24,0 +2020-04-21,Union,South Carolina,45087,24,0 +2020-04-22,Union,South Carolina,45087,24,0 +2020-04-23,Union,South Carolina,45087,24,0 +2020-04-24,Union,South Carolina,45087,25,0 +2020-04-25,Union,South Carolina,45087,25,0 +2020-04-26,Union,South Carolina,45087,25,0 +2020-04-27,Union,South Carolina,45087,25,0 +2020-04-28,Union,South Carolina,45087,25,0 +2020-04-29,Union,South Carolina,45087,25,0 +2020-04-30,Union,South Carolina,45087,26,0 +2020-05-01,Union,South Carolina,45087,26,0 +2020-05-02,Union,South Carolina,45087,26,0 +2020-05-03,Union,South Carolina,45087,26,0 +2020-05-04,Union,South Carolina,45087,26,0 +2020-05-05,Union,South Carolina,45087,26,0 +2020-05-06,Union,South Carolina,45087,26,0 +2020-05-07,Union,South Carolina,45087,27,0 +2020-05-08,Union,South Carolina,45087,29,0 +2020-05-09,Union,South Carolina,45087,30,0 +2020-05-10,Union,South Carolina,45087,30,0 +2020-05-11,Union,South Carolina,45087,31,0 +2020-05-12,Union,South Carolina,45087,31,0 +2020-05-13,Union,South Carolina,45087,31,0 +2020-05-14,Union,South Carolina,45087,31,0 +2020-05-15,Union,South Carolina,45087,31,0 +2020-05-16,Union,South Carolina,45087,31,0 +2020-05-17,Union,South Carolina,45087,31,0 +2020-05-18,Union,South Carolina,45087,31,0 +2020-05-19,Union,South Carolina,45087,31,0 +2020-05-20,Union,South Carolina,45087,31,0 +2020-05-21,Union,South Carolina,45087,31,0 +2020-05-22,Union,South Carolina,45087,31,0 +2020-05-23,Union,South Carolina,45087,31,0 +2020-05-24,Union,South Carolina,45087,31,0 +2020-05-25,Union,South Carolina,45087,31,0 +2020-05-26,Union,South Carolina,45087,34,0 +2020-05-27,Union,South Carolina,45087,35,0 +2020-05-28,Union,South Carolina,45087,35,0 +2020-05-29,Union,South Carolina,45087,36,0 +2020-05-30,Union,South Carolina,45087,36,0 +2020-05-31,Union,South Carolina,45087,37,0 +2020-06-01,Union,South Carolina,45087,37,0 +2020-06-02,Union,South Carolina,45087,40,0 +2020-06-03,Union,South Carolina,45087,40,0 +2020-06-04,Union,South Carolina,45087,40,0 +2020-06-05,Union,South Carolina,45087,40,0 +2020-06-06,Union,South Carolina,45087,41,0 +2020-06-07,Union,South Carolina,45087,41,0 +2020-06-08,Union,South Carolina,45087,41,0 +2020-06-09,Union,South Carolina,45087,41,0 +2020-06-10,Union,South Carolina,45087,41,0 +2020-06-11,Union,South Carolina,45087,42,0 +2020-06-12,Union,South Carolina,45087,43,0 +2020-06-13,Union,South Carolina,45087,45,0 +2020-06-14,Union,South Carolina,45087,46,0 +2020-06-15,Union,South Carolina,45087,47,0 +2020-06-16,Union,South Carolina,45087,49,0 +2020-06-17,Union,South Carolina,45087,50,0 +2020-06-18,Union,South Carolina,45087,53,0 +2020-06-19,Union,South Carolina,45087,54,0 +2020-06-20,Union,South Carolina,45087,54,0 +2020-06-21,Union,South Carolina,45087,58,0 +2020-06-22,Union,South Carolina,45087,62,0 +2020-06-23,Union,South Carolina,45087,62,0 +2020-06-24,Union,South Carolina,45087,68,0 +2020-06-25,Union,South Carolina,45087,71,0 +2020-06-26,Union,South Carolina,45087,72,0 +2020-06-27,Union,South Carolina,45087,73,0 +2020-06-28,Union,South Carolina,45087,73,0 +2020-06-29,Union,South Carolina,45087,84,0 +2020-06-30,Union,South Carolina,45087,90,0 +2020-07-01,Union,South Carolina,45087,91,0 +2020-07-02,Union,South Carolina,45087,95,0 +2020-07-03,Union,South Carolina,45087,98,0 +2020-07-04,Union,South Carolina,45087,101,0 +2020-07-05,Union,South Carolina,45087,102,0 +2020-07-06,Union,South Carolina,45087,116,0 +2020-07-07,Union,South Carolina,45087,120,0 +2020-07-08,Union,South Carolina,45087,127,0 +2020-07-09,Union,South Carolina,45087,133,0 +2020-03-25,Williamsburg,South Carolina,45089,1,0 +2020-03-26,Williamsburg,South Carolina,45089,1,0 +2020-03-27,Williamsburg,South Carolina,45089,1,0 +2020-03-28,Williamsburg,South Carolina,45089,2,0 +2020-03-29,Williamsburg,South Carolina,45089,2,0 +2020-03-30,Williamsburg,South Carolina,45089,2,0 +2020-03-31,Williamsburg,South Carolina,45089,2,0 +2020-04-01,Williamsburg,South Carolina,45089,3,0 +2020-04-02,Williamsburg,South Carolina,45089,6,0 +2020-04-03,Williamsburg,South Carolina,45089,6,0 +2020-04-04,Williamsburg,South Carolina,45089,9,0 +2020-04-05,Williamsburg,South Carolina,45089,10,0 +2020-04-06,Williamsburg,South Carolina,45089,11,0 +2020-04-07,Williamsburg,South Carolina,45089,12,0 +2020-04-08,Williamsburg,South Carolina,45089,13,0 +2020-04-09,Williamsburg,South Carolina,45089,14,0 +2020-04-10,Williamsburg,South Carolina,45089,15,0 +2020-04-11,Williamsburg,South Carolina,45089,15,0 +2020-04-12,Williamsburg,South Carolina,45089,15,0 +2020-04-13,Williamsburg,South Carolina,45089,15,0 +2020-04-14,Williamsburg,South Carolina,45089,16,0 +2020-04-15,Williamsburg,South Carolina,45089,18,0 +2020-04-16,Williamsburg,South Carolina,45089,18,0 +2020-04-17,Williamsburg,South Carolina,45089,19,0 +2020-04-18,Williamsburg,South Carolina,45089,20,0 +2020-04-19,Williamsburg,South Carolina,45089,21,0 +2020-04-20,Williamsburg,South Carolina,45089,26,0 +2020-04-21,Williamsburg,South Carolina,45089,26,0 +2020-04-22,Williamsburg,South Carolina,45089,27,0 +2020-04-23,Williamsburg,South Carolina,45089,33,0 +2020-04-24,Williamsburg,South Carolina,45089,38,0 +2020-04-25,Williamsburg,South Carolina,45089,45,0 +2020-04-26,Williamsburg,South Carolina,45089,56,0 +2020-04-27,Williamsburg,South Carolina,45089,59,0 +2020-04-28,Williamsburg,South Carolina,45089,60,0 +2020-04-29,Williamsburg,South Carolina,45089,65,0 +2020-04-30,Williamsburg,South Carolina,45089,67,0 +2020-05-01,Williamsburg,South Carolina,45089,76,2 +2020-05-02,Williamsburg,South Carolina,45089,88,2 +2020-05-03,Williamsburg,South Carolina,45089,90,2 +2020-05-04,Williamsburg,South Carolina,45089,91,2 +2020-05-05,Williamsburg,South Carolina,45089,94,3 +2020-05-06,Williamsburg,South Carolina,45089,100,4 +2020-05-07,Williamsburg,South Carolina,45089,119,6 +2020-05-08,Williamsburg,South Carolina,45089,136,6 +2020-05-09,Williamsburg,South Carolina,45089,136,7 +2020-05-10,Williamsburg,South Carolina,45089,137,7 +2020-05-11,Williamsburg,South Carolina,45089,142,7 +2020-05-12,Williamsburg,South Carolina,45089,147,9 +2020-05-13,Williamsburg,South Carolina,45089,150,9 +2020-05-14,Williamsburg,South Carolina,45089,158,9 +2020-05-15,Williamsburg,South Carolina,45089,165,9 +2020-05-16,Williamsburg,South Carolina,45089,178,9 +2020-05-17,Williamsburg,South Carolina,45089,178,9 +2020-05-18,Williamsburg,South Carolina,45089,178,10 +2020-05-19,Williamsburg,South Carolina,45089,181,10 +2020-05-20,Williamsburg,South Carolina,45089,183,10 +2020-05-21,Williamsburg,South Carolina,45089,189,10 +2020-05-22,Williamsburg,South Carolina,45089,198,10 +2020-05-23,Williamsburg,South Carolina,45089,207,10 +2020-05-24,Williamsburg,South Carolina,45089,212,11 +2020-05-25,Williamsburg,South Carolina,45089,216,11 +2020-05-26,Williamsburg,South Carolina,45089,221,11 +2020-05-27,Williamsburg,South Carolina,45089,226,11 +2020-05-28,Williamsburg,South Carolina,45089,227,11 +2020-05-29,Williamsburg,South Carolina,45089,229,12 +2020-05-30,Williamsburg,South Carolina,45089,233,14 +2020-05-31,Williamsburg,South Carolina,45089,236,14 +2020-06-01,Williamsburg,South Carolina,45089,238,14 +2020-06-02,Williamsburg,South Carolina,45089,245,14 +2020-06-03,Williamsburg,South Carolina,45089,246,14 +2020-06-04,Williamsburg,South Carolina,45089,248,14 +2020-06-05,Williamsburg,South Carolina,45089,254,14 +2020-06-06,Williamsburg,South Carolina,45089,256,14 +2020-06-07,Williamsburg,South Carolina,45089,256,14 +2020-06-08,Williamsburg,South Carolina,45089,260,14 +2020-06-09,Williamsburg,South Carolina,45089,261,15 +2020-06-10,Williamsburg,South Carolina,45089,262,15 +2020-06-11,Williamsburg,South Carolina,45089,270,15 +2020-06-12,Williamsburg,South Carolina,45089,274,15 +2020-06-13,Williamsburg,South Carolina,45089,282,15 +2020-06-14,Williamsburg,South Carolina,45089,286,15 +2020-06-15,Williamsburg,South Carolina,45089,289,15 +2020-06-16,Williamsburg,South Carolina,45089,296,15 +2020-06-17,Williamsburg,South Carolina,45089,302,15 +2020-06-18,Williamsburg,South Carolina,45089,309,15 +2020-06-19,Williamsburg,South Carolina,45089,322,15 +2020-06-20,Williamsburg,South Carolina,45089,329,15 +2020-06-21,Williamsburg,South Carolina,45089,333,15 +2020-06-22,Williamsburg,South Carolina,45089,339,15 +2020-06-23,Williamsburg,South Carolina,45089,345,15 +2020-06-24,Williamsburg,South Carolina,45089,354,15 +2020-06-25,Williamsburg,South Carolina,45089,362,15 +2020-06-26,Williamsburg,South Carolina,45089,368,15 +2020-06-27,Williamsburg,South Carolina,45089,381,15 +2020-06-28,Williamsburg,South Carolina,45089,383,15 +2020-06-29,Williamsburg,South Carolina,45089,389,15 +2020-06-30,Williamsburg,South Carolina,45089,400,15 +2020-07-01,Williamsburg,South Carolina,45089,412,15 +2020-07-02,Williamsburg,South Carolina,45089,413,15 +2020-07-03,Williamsburg,South Carolina,45089,421,15 +2020-07-04,Williamsburg,South Carolina,45089,430,15 +2020-07-05,Williamsburg,South Carolina,45089,435,15 +2020-07-06,Williamsburg,South Carolina,45089,441,15 +2020-07-07,Williamsburg,South Carolina,45089,445,15 +2020-07-08,Williamsburg,South Carolina,45089,459,15 +2020-07-09,Williamsburg,South Carolina,45089,465,15 +2020-03-17,York,South Carolina,45091,1,0 +2020-03-18,York,South Carolina,45091,1,0 +2020-03-19,York,South Carolina,45091,1,0 +2020-03-20,York,South Carolina,45091,1,0 +2020-03-21,York,South Carolina,45091,2,0 +2020-03-22,York,South Carolina,45091,4,0 +2020-03-23,York,South Carolina,45091,7,0 +2020-03-24,York,South Carolina,45091,11,0 +2020-03-25,York,South Carolina,45091,18,0 +2020-03-26,York,South Carolina,45091,19,0 +2020-03-27,York,South Carolina,45091,19,0 +2020-03-28,York,South Carolina,45091,31,0 +2020-03-29,York,South Carolina,45091,36,0 +2020-03-30,York,South Carolina,45091,43,0 +2020-03-31,York,South Carolina,45091,56,1 +2020-04-01,York,South Carolina,45091,66,1 +2020-04-02,York,South Carolina,45091,66,1 +2020-04-03,York,South Carolina,45091,73,1 +2020-04-04,York,South Carolina,45091,81,2 +2020-04-05,York,South Carolina,45091,85,2 +2020-04-06,York,South Carolina,45091,95,2 +2020-04-07,York,South Carolina,45091,108,2 +2020-04-08,York,South Carolina,45091,115,2 +2020-04-09,York,South Carolina,45091,120,2 +2020-04-10,York,South Carolina,45091,125,2 +2020-04-11,York,South Carolina,45091,127,3 +2020-04-12,York,South Carolina,45091,134,3 +2020-04-13,York,South Carolina,45091,136,3 +2020-04-14,York,South Carolina,45091,138,3 +2020-04-15,York,South Carolina,45091,138,3 +2020-04-16,York,South Carolina,45091,149,3 +2020-04-17,York,South Carolina,45091,151,3 +2020-04-18,York,South Carolina,45091,156,3 +2020-04-19,York,South Carolina,45091,156,3 +2020-04-20,York,South Carolina,45091,159,3 +2020-04-21,York,South Carolina,45091,162,3 +2020-04-22,York,South Carolina,45091,166,3 +2020-04-23,York,South Carolina,45091,171,3 +2020-04-24,York,South Carolina,45091,172,3 +2020-04-25,York,South Carolina,45091,177,3 +2020-04-26,York,South Carolina,45091,181,3 +2020-04-27,York,South Carolina,45091,186,3 +2020-04-28,York,South Carolina,45091,188,3 +2020-04-29,York,South Carolina,45091,197,3 +2020-04-30,York,South Carolina,45091,210,3 +2020-05-01,York,South Carolina,45091,215,3 +2020-05-02,York,South Carolina,45091,219,3 +2020-05-03,York,South Carolina,45091,221,3 +2020-05-04,York,South Carolina,45091,222,3 +2020-05-05,York,South Carolina,45091,219,4 +2020-05-06,York,South Carolina,45091,222,5 +2020-05-07,York,South Carolina,45091,225,5 +2020-05-08,York,South Carolina,45091,233,5 +2020-05-09,York,South Carolina,45091,237,5 +2020-05-10,York,South Carolina,45091,238,5 +2020-05-11,York,South Carolina,45091,242,5 +2020-05-12,York,South Carolina,45091,258,5 +2020-05-13,York,South Carolina,45091,265,5 +2020-05-14,York,South Carolina,45091,272,5 +2020-05-15,York,South Carolina,45091,280,5 +2020-05-16,York,South Carolina,45091,290,5 +2020-05-17,York,South Carolina,45091,293,5 +2020-05-18,York,South Carolina,45091,304,5 +2020-05-19,York,South Carolina,45091,308,5 +2020-05-20,York,South Carolina,45091,317,5 +2020-05-21,York,South Carolina,45091,324,5 +2020-05-22,York,South Carolina,45091,329,5 +2020-05-23,York,South Carolina,45091,339,6 +2020-05-24,York,South Carolina,45091,340,6 +2020-05-25,York,South Carolina,45091,346,6 +2020-05-26,York,South Carolina,45091,352,6 +2020-05-27,York,South Carolina,45091,363,6 +2020-05-28,York,South Carolina,45091,371,7 +2020-05-29,York,South Carolina,45091,385,7 +2020-05-30,York,South Carolina,45091,398,7 +2020-05-31,York,South Carolina,45091,407,8 +2020-06-01,York,South Carolina,45091,417,8 +2020-06-02,York,South Carolina,45091,421,8 +2020-06-03,York,South Carolina,45091,426,10 +2020-06-04,York,South Carolina,45091,433,10 +2020-06-05,York,South Carolina,45091,446,10 +2020-06-06,York,South Carolina,45091,458,10 +2020-06-07,York,South Carolina,45091,465,10 +2020-06-08,York,South Carolina,45091,486,10 +2020-06-09,York,South Carolina,45091,510,10 +2020-06-10,York,South Carolina,45091,536,10 +2020-06-11,York,South Carolina,45091,557,10 +2020-06-12,York,South Carolina,45091,580,10 +2020-06-13,York,South Carolina,45091,613,10 +2020-06-14,York,South Carolina,45091,636,10 +2020-06-15,York,South Carolina,45091,652,10 +2020-06-16,York,South Carolina,45091,686,10 +2020-06-17,York,South Carolina,45091,700,11 +2020-06-18,York,South Carolina,45091,729,11 +2020-06-19,York,South Carolina,45091,741,11 +2020-06-20,York,South Carolina,45091,783,11 +2020-06-21,York,South Carolina,45091,814,11 +2020-06-22,York,South Carolina,45091,860,11 +2020-06-23,York,South Carolina,45091,886,11 +2020-06-24,York,South Carolina,45091,914,11 +2020-06-25,York,South Carolina,45091,947,12 +2020-06-26,York,South Carolina,45091,989,12 +2020-06-27,York,South Carolina,45091,1047,12 +2020-06-28,York,South Carolina,45091,1095,12 +2020-06-29,York,South Carolina,45091,1156,12 +2020-06-30,York,South Carolina,45091,1204,12 +2020-07-01,York,South Carolina,45091,1257,12 +2020-07-02,York,South Carolina,45091,1301,12 +2020-07-03,York,South Carolina,45091,1406,12 +2020-07-04,York,South Carolina,45091,1456,12 +2020-07-05,York,South Carolina,45091,1483,12 +2020-07-06,York,South Carolina,45091,1544,12 +2020-07-07,York,South Carolina,45091,1573,12 +2020-07-08,York,South Carolina,45091,1618,12 +2020-07-09,York,South Carolina,45091,1685,12 +2020-03-27,Aurora,South Dakota,46003,1,0 +2020-03-28,Aurora,South Dakota,46003,1,0 +2020-03-29,Aurora,South Dakota,46003,1,0 +2020-03-30,Aurora,South Dakota,46003,1,0 +2020-03-31,Aurora,South Dakota,46003,1,0 +2020-04-01,Aurora,South Dakota,46003,1,0 +2020-04-02,Aurora,South Dakota,46003,1,0 +2020-04-03,Aurora,South Dakota,46003,1,0 +2020-04-04,Aurora,South Dakota,46003,1,0 +2020-04-05,Aurora,South Dakota,46003,1,0 +2020-04-06,Aurora,South Dakota,46003,1,0 +2020-04-07,Aurora,South Dakota,46003,1,0 +2020-04-08,Aurora,South Dakota,46003,1,0 +2020-04-09,Aurora,South Dakota,46003,1,0 +2020-04-10,Aurora,South Dakota,46003,1,0 +2020-04-11,Aurora,South Dakota,46003,1,0 +2020-04-12,Aurora,South Dakota,46003,1,0 +2020-04-13,Aurora,South Dakota,46003,1,0 +2020-04-14,Aurora,South Dakota,46003,1,0 +2020-04-15,Aurora,South Dakota,46003,1,0 +2020-04-16,Aurora,South Dakota,46003,1,0 +2020-04-17,Aurora,South Dakota,46003,1,0 +2020-04-18,Aurora,South Dakota,46003,1,0 +2020-04-19,Aurora,South Dakota,46003,1,0 +2020-04-20,Aurora,South Dakota,46003,1,0 +2020-04-21,Aurora,South Dakota,46003,1,0 +2020-04-22,Aurora,South Dakota,46003,1,0 +2020-04-23,Aurora,South Dakota,46003,1,0 +2020-04-24,Aurora,South Dakota,46003,1,0 +2020-04-25,Aurora,South Dakota,46003,1,0 +2020-04-26,Aurora,South Dakota,46003,1,0 +2020-04-27,Aurora,South Dakota,46003,1,0 +2020-04-28,Aurora,South Dakota,46003,1,0 +2020-04-29,Aurora,South Dakota,46003,1,0 +2020-04-30,Aurora,South Dakota,46003,1,0 +2020-05-01,Aurora,South Dakota,46003,1,0 +2020-05-02,Aurora,South Dakota,46003,1,0 +2020-05-03,Aurora,South Dakota,46003,1,0 +2020-05-04,Aurora,South Dakota,46003,1,0 +2020-05-05,Aurora,South Dakota,46003,1,0 +2020-05-06,Aurora,South Dakota,46003,1,0 +2020-05-07,Aurora,South Dakota,46003,1,0 +2020-05-08,Aurora,South Dakota,46003,1,0 +2020-05-09,Aurora,South Dakota,46003,1,0 +2020-05-10,Aurora,South Dakota,46003,2,0 +2020-05-11,Aurora,South Dakota,46003,2,0 +2020-05-12,Aurora,South Dakota,46003,2,0 +2020-05-13,Aurora,South Dakota,46003,2,0 +2020-05-14,Aurora,South Dakota,46003,2,0 +2020-05-15,Aurora,South Dakota,46003,2,0 +2020-05-16,Aurora,South Dakota,46003,2,0 +2020-05-17,Aurora,South Dakota,46003,3,0 +2020-05-18,Aurora,South Dakota,46003,3,0 +2020-05-19,Aurora,South Dakota,46003,3,0 +2020-05-20,Aurora,South Dakota,46003,8,0 +2020-05-21,Aurora,South Dakota,46003,8,0 +2020-05-22,Aurora,South Dakota,46003,20,0 +2020-05-23,Aurora,South Dakota,46003,22,0 +2020-05-24,Aurora,South Dakota,46003,22,0 +2020-05-25,Aurora,South Dakota,46003,22,0 +2020-05-26,Aurora,South Dakota,46003,22,0 +2020-05-27,Aurora,South Dakota,46003,22,0 +2020-05-28,Aurora,South Dakota,46003,23,0 +2020-05-29,Aurora,South Dakota,46003,23,0 +2020-05-30,Aurora,South Dakota,46003,25,0 +2020-05-31,Aurora,South Dakota,46003,26,0 +2020-06-01,Aurora,South Dakota,46003,26,0 +2020-06-02,Aurora,South Dakota,46003,26,0 +2020-06-03,Aurora,South Dakota,46003,27,0 +2020-06-04,Aurora,South Dakota,46003,27,0 +2020-06-05,Aurora,South Dakota,46003,27,0 +2020-06-06,Aurora,South Dakota,46003,29,0 +2020-06-07,Aurora,South Dakota,46003,29,0 +2020-06-08,Aurora,South Dakota,46003,29,0 +2020-06-09,Aurora,South Dakota,46003,29,0 +2020-06-10,Aurora,South Dakota,46003,29,0 +2020-06-11,Aurora,South Dakota,46003,29,0 +2020-06-12,Aurora,South Dakota,46003,30,0 +2020-06-13,Aurora,South Dakota,46003,33,0 +2020-06-14,Aurora,South Dakota,46003,33,0 +2020-06-15,Aurora,South Dakota,46003,33,0 +2020-06-16,Aurora,South Dakota,46003,33,0 +2020-06-17,Aurora,South Dakota,46003,33,0 +2020-06-18,Aurora,South Dakota,46003,33,0 +2020-06-19,Aurora,South Dakota,46003,34,0 +2020-06-20,Aurora,South Dakota,46003,34,0 +2020-06-21,Aurora,South Dakota,46003,34,0 +2020-06-22,Aurora,South Dakota,46003,34,0 +2020-06-23,Aurora,South Dakota,46003,34,0 +2020-06-24,Aurora,South Dakota,46003,34,0 +2020-06-25,Aurora,South Dakota,46003,34,0 +2020-06-26,Aurora,South Dakota,46003,34,0 +2020-06-27,Aurora,South Dakota,46003,34,0 +2020-06-28,Aurora,South Dakota,46003,34,0 +2020-06-29,Aurora,South Dakota,46003,34,0 +2020-06-30,Aurora,South Dakota,46003,34,0 +2020-07-01,Aurora,South Dakota,46003,34,0 +2020-07-02,Aurora,South Dakota,46003,34,0 +2020-07-03,Aurora,South Dakota,46003,34,0 +2020-07-04,Aurora,South Dakota,46003,34,0 +2020-07-05,Aurora,South Dakota,46003,34,0 +2020-07-06,Aurora,South Dakota,46003,34,0 +2020-07-07,Aurora,South Dakota,46003,34,0 +2020-07-08,Aurora,South Dakota,46003,34,0 +2020-07-09,Aurora,South Dakota,46003,34,0 +2020-03-10,Beadle,South Dakota,46005,1,0 +2020-03-11,Beadle,South Dakota,46005,1,0 +2020-03-12,Beadle,South Dakota,46005,1,0 +2020-03-13,Beadle,South Dakota,46005,1,0 +2020-03-14,Beadle,South Dakota,46005,1,0 +2020-03-15,Beadle,South Dakota,46005,1,0 +2020-03-16,Beadle,South Dakota,46005,1,0 +2020-03-17,Beadle,South Dakota,46005,1,0 +2020-03-18,Beadle,South Dakota,46005,1,0 +2020-03-19,Beadle,South Dakota,46005,4,0 +2020-03-20,Beadle,South Dakota,46005,4,0 +2020-03-21,Beadle,South Dakota,46005,4,0 +2020-03-22,Beadle,South Dakota,46005,10,0 +2020-03-23,Beadle,South Dakota,46005,12,0 +2020-03-24,Beadle,South Dakota,46005,13,0 +2020-03-25,Beadle,South Dakota,46005,13,0 +2020-03-26,Beadle,South Dakota,46005,14,0 +2020-03-27,Beadle,South Dakota,46005,16,0 +2020-03-28,Beadle,South Dakota,46005,16,0 +2020-03-29,Beadle,South Dakota,46005,20,0 +2020-03-30,Beadle,South Dakota,46005,20,0 +2020-03-31,Beadle,South Dakota,46005,20,0 +2020-04-01,Beadle,South Dakota,46005,21,0 +2020-04-02,Beadle,South Dakota,46005,21,1 +2020-04-03,Beadle,South Dakota,46005,21,1 +2020-04-04,Beadle,South Dakota,46005,21,1 +2020-04-05,Beadle,South Dakota,46005,21,1 +2020-04-06,Beadle,South Dakota,46005,21,1 +2020-04-07,Beadle,South Dakota,46005,21,1 +2020-04-08,Beadle,South Dakota,46005,21,1 +2020-04-09,Beadle,South Dakota,46005,21,2 +2020-04-10,Beadle,South Dakota,46005,22,2 +2020-04-11,Beadle,South Dakota,46005,21,2 +2020-04-12,Beadle,South Dakota,46005,21,2 +2020-04-13,Beadle,South Dakota,46005,21,2 +2020-04-14,Beadle,South Dakota,46005,21,2 +2020-04-15,Beadle,South Dakota,46005,21,2 +2020-04-16,Beadle,South Dakota,46005,21,2 +2020-04-17,Beadle,South Dakota,46005,21,2 +2020-04-18,Beadle,South Dakota,46005,21,2 +2020-04-19,Beadle,South Dakota,46005,21,2 +2020-04-20,Beadle,South Dakota,46005,21,2 +2020-04-21,Beadle,South Dakota,46005,21,2 +2020-04-22,Beadle,South Dakota,46005,21,2 +2020-04-23,Beadle,South Dakota,46005,21,2 +2020-04-24,Beadle,South Dakota,46005,21,2 +2020-04-25,Beadle,South Dakota,46005,21,2 +2020-04-26,Beadle,South Dakota,46005,21,2 +2020-04-27,Beadle,South Dakota,46005,21,2 +2020-04-28,Beadle,South Dakota,46005,21,2 +2020-04-29,Beadle,South Dakota,46005,21,2 +2020-04-30,Beadle,South Dakota,46005,21,2 +2020-05-01,Beadle,South Dakota,46005,21,2 +2020-05-02,Beadle,South Dakota,46005,21,2 +2020-05-03,Beadle,South Dakota,46005,21,2 +2020-05-04,Beadle,South Dakota,46005,21,2 +2020-05-05,Beadle,South Dakota,46005,21,2 +2020-05-06,Beadle,South Dakota,46005,21,2 +2020-05-07,Beadle,South Dakota,46005,21,2 +2020-05-08,Beadle,South Dakota,46005,21,2 +2020-05-09,Beadle,South Dakota,46005,21,2 +2020-05-10,Beadle,South Dakota,46005,21,2 +2020-05-11,Beadle,South Dakota,46005,21,2 +2020-05-12,Beadle,South Dakota,46005,22,2 +2020-05-13,Beadle,South Dakota,46005,22,2 +2020-05-14,Beadle,South Dakota,46005,22,2 +2020-05-15,Beadle,South Dakota,46005,22,2 +2020-05-16,Beadle,South Dakota,46005,30,2 +2020-05-17,Beadle,South Dakota,46005,31,2 +2020-05-18,Beadle,South Dakota,46005,37,2 +2020-05-19,Beadle,South Dakota,46005,43,2 +2020-05-20,Beadle,South Dakota,46005,68,2 +2020-05-21,Beadle,South Dakota,46005,68,2 +2020-05-22,Beadle,South Dakota,46005,98,2 +2020-05-23,Beadle,South Dakota,46005,118,2 +2020-05-24,Beadle,South Dakota,46005,131,2 +2020-05-25,Beadle,South Dakota,46005,132,2 +2020-05-26,Beadle,South Dakota,46005,150,2 +2020-05-27,Beadle,South Dakota,46005,163,2 +2020-05-28,Beadle,South Dakota,46005,190,2 +2020-05-29,Beadle,South Dakota,46005,222,3 +2020-05-30,Beadle,South Dakota,46005,252,5 +2020-05-31,Beadle,South Dakota,46005,261,5 +2020-06-01,Beadle,South Dakota,46005,275,5 +2020-06-02,Beadle,South Dakota,46005,276,5 +2020-06-03,Beadle,South Dakota,46005,308,5 +2020-06-04,Beadle,South Dakota,46005,341,5 +2020-06-05,Beadle,South Dakota,46005,343,5 +2020-06-06,Beadle,South Dakota,46005,361,5 +2020-06-07,Beadle,South Dakota,46005,382,5 +2020-06-08,Beadle,South Dakota,46005,385,5 +2020-06-09,Beadle,South Dakota,46005,386,5 +2020-06-10,Beadle,South Dakota,46005,398,6 +2020-06-11,Beadle,South Dakota,46005,411,6 +2020-06-12,Beadle,South Dakota,46005,418,6 +2020-06-13,Beadle,South Dakota,46005,434,6 +2020-06-14,Beadle,South Dakota,46005,446,6 +2020-06-15,Beadle,South Dakota,46005,448,6 +2020-06-16,Beadle,South Dakota,46005,452,6 +2020-06-17,Beadle,South Dakota,46005,467,6 +2020-06-18,Beadle,South Dakota,46005,472,6 +2020-06-19,Beadle,South Dakota,46005,476,6 +2020-06-20,Beadle,South Dakota,46005,481,6 +2020-06-21,Beadle,South Dakota,46005,494,6 +2020-06-22,Beadle,South Dakota,46005,494,6 +2020-06-23,Beadle,South Dakota,46005,495,6 +2020-06-24,Beadle,South Dakota,46005,504,6 +2020-06-25,Beadle,South Dakota,46005,508,6 +2020-06-26,Beadle,South Dakota,46005,515,6 +2020-06-27,Beadle,South Dakota,46005,518,6 +2020-06-28,Beadle,South Dakota,46005,522,6 +2020-06-29,Beadle,South Dakota,46005,523,6 +2020-06-30,Beadle,South Dakota,46005,524,6 +2020-07-01,Beadle,South Dakota,46005,527,6 +2020-07-02,Beadle,South Dakota,46005,532,7 +2020-07-03,Beadle,South Dakota,46005,539,7 +2020-07-04,Beadle,South Dakota,46005,539,7 +2020-07-05,Beadle,South Dakota,46005,540,7 +2020-07-06,Beadle,South Dakota,46005,541,7 +2020-07-07,Beadle,South Dakota,46005,545,7 +2020-07-08,Beadle,South Dakota,46005,549,7 +2020-07-09,Beadle,South Dakota,46005,551,7 +2020-06-15,Bennett,South Dakota,46007,1,0 +2020-06-16,Bennett,South Dakota,46007,1,0 +2020-06-17,Bennett,South Dakota,46007,2,0 +2020-06-18,Bennett,South Dakota,46007,2,0 +2020-06-19,Bennett,South Dakota,46007,2,0 +2020-06-20,Bennett,South Dakota,46007,2,0 +2020-06-21,Bennett,South Dakota,46007,2,0 +2020-06-22,Bennett,South Dakota,46007,2,0 +2020-06-23,Bennett,South Dakota,46007,3,0 +2020-06-24,Bennett,South Dakota,46007,3,0 +2020-06-25,Bennett,South Dakota,46007,4,0 +2020-06-26,Bennett,South Dakota,46007,4,0 +2020-06-27,Bennett,South Dakota,46007,5,0 +2020-06-28,Bennett,South Dakota,46007,5,0 +2020-06-29,Bennett,South Dakota,46007,5,0 +2020-06-30,Bennett,South Dakota,46007,4,0 +2020-07-01,Bennett,South Dakota,46007,4,0 +2020-07-02,Bennett,South Dakota,46007,4,0 +2020-07-03,Bennett,South Dakota,46007,4,0 +2020-07-04,Bennett,South Dakota,46007,4,0 +2020-07-05,Bennett,South Dakota,46007,4,0 +2020-07-06,Bennett,South Dakota,46007,4,0 +2020-07-07,Bennett,South Dakota,46007,4,0 +2020-07-08,Bennett,South Dakota,46007,4,0 +2020-07-09,Bennett,South Dakota,46007,4,0 +2020-03-11,Bon Homme,South Dakota,46009,1,0 +2020-03-12,Bon Homme,South Dakota,46009,1,0 +2020-03-13,Bon Homme,South Dakota,46009,1,0 +2020-03-14,Bon Homme,South Dakota,46009,1,0 +2020-03-15,Bon Homme,South Dakota,46009,1,0 +2020-03-16,Bon Homme,South Dakota,46009,1,0 +2020-03-17,Bon Homme,South Dakota,46009,1,0 +2020-03-18,Bon Homme,South Dakota,46009,1,0 +2020-03-19,Bon Homme,South Dakota,46009,1,0 +2020-03-20,Bon Homme,South Dakota,46009,1,0 +2020-03-21,Bon Homme,South Dakota,46009,1,0 +2020-03-22,Bon Homme,South Dakota,46009,1,0 +2020-03-23,Bon Homme,South Dakota,46009,1,0 +2020-03-24,Bon Homme,South Dakota,46009,1,0 +2020-03-25,Bon Homme,South Dakota,46009,1,0 +2020-03-26,Bon Homme,South Dakota,46009,1,0 +2020-03-27,Bon Homme,South Dakota,46009,1,0 +2020-03-28,Bon Homme,South Dakota,46009,1,0 +2020-03-29,Bon Homme,South Dakota,46009,1,0 +2020-03-30,Bon Homme,South Dakota,46009,1,0 +2020-03-31,Bon Homme,South Dakota,46009,1,0 +2020-04-01,Bon Homme,South Dakota,46009,1,0 +2020-04-02,Bon Homme,South Dakota,46009,1,0 +2020-04-03,Bon Homme,South Dakota,46009,1,0 +2020-04-04,Bon Homme,South Dakota,46009,1,0 +2020-04-05,Bon Homme,South Dakota,46009,1,0 +2020-04-06,Bon Homme,South Dakota,46009,2,0 +2020-04-07,Bon Homme,South Dakota,46009,2,0 +2020-04-08,Bon Homme,South Dakota,46009,3,0 +2020-04-09,Bon Homme,South Dakota,46009,3,0 +2020-04-10,Bon Homme,South Dakota,46009,3,0 +2020-04-11,Bon Homme,South Dakota,46009,3,0 +2020-04-12,Bon Homme,South Dakota,46009,4,0 +2020-04-13,Bon Homme,South Dakota,46009,4,0 +2020-04-14,Bon Homme,South Dakota,46009,4,0 +2020-04-15,Bon Homme,South Dakota,46009,4,0 +2020-04-16,Bon Homme,South Dakota,46009,4,0 +2020-04-17,Bon Homme,South Dakota,46009,4,0 +2020-04-18,Bon Homme,South Dakota,46009,4,0 +2020-04-19,Bon Homme,South Dakota,46009,4,0 +2020-04-20,Bon Homme,South Dakota,46009,4,0 +2020-04-21,Bon Homme,South Dakota,46009,4,0 +2020-04-22,Bon Homme,South Dakota,46009,4,0 +2020-04-23,Bon Homme,South Dakota,46009,4,0 +2020-04-24,Bon Homme,South Dakota,46009,4,0 +2020-04-25,Bon Homme,South Dakota,46009,4,0 +2020-04-26,Bon Homme,South Dakota,46009,4,0 +2020-04-27,Bon Homme,South Dakota,46009,4,0 +2020-04-28,Bon Homme,South Dakota,46009,4,0 +2020-04-29,Bon Homme,South Dakota,46009,4,0 +2020-04-30,Bon Homme,South Dakota,46009,4,0 +2020-05-01,Bon Homme,South Dakota,46009,4,0 +2020-05-02,Bon Homme,South Dakota,46009,4,0 +2020-05-03,Bon Homme,South Dakota,46009,4,0 +2020-05-04,Bon Homme,South Dakota,46009,4,0 +2020-05-05,Bon Homme,South Dakota,46009,4,0 +2020-05-06,Bon Homme,South Dakota,46009,4,0 +2020-05-07,Bon Homme,South Dakota,46009,4,0 +2020-05-08,Bon Homme,South Dakota,46009,4,0 +2020-05-09,Bon Homme,South Dakota,46009,4,0 +2020-05-10,Bon Homme,South Dakota,46009,4,0 +2020-05-11,Bon Homme,South Dakota,46009,4,0 +2020-05-12,Bon Homme,South Dakota,46009,4,0 +2020-05-13,Bon Homme,South Dakota,46009,4,0 +2020-05-14,Bon Homme,South Dakota,46009,4,0 +2020-05-15,Bon Homme,South Dakota,46009,4,0 +2020-05-16,Bon Homme,South Dakota,46009,4,0 +2020-05-17,Bon Homme,South Dakota,46009,4,0 +2020-05-18,Bon Homme,South Dakota,46009,5,0 +2020-05-19,Bon Homme,South Dakota,46009,4,0 +2020-05-20,Bon Homme,South Dakota,46009,4,0 +2020-05-21,Bon Homme,South Dakota,46009,4,0 +2020-05-22,Bon Homme,South Dakota,46009,5,0 +2020-05-23,Bon Homme,South Dakota,46009,6,0 +2020-05-24,Bon Homme,South Dakota,46009,8,0 +2020-05-25,Bon Homme,South Dakota,46009,8,0 +2020-05-26,Bon Homme,South Dakota,46009,8,0 +2020-05-27,Bon Homme,South Dakota,46009,8,0 +2020-05-28,Bon Homme,South Dakota,46009,8,0 +2020-05-29,Bon Homme,South Dakota,46009,8,0 +2020-05-30,Bon Homme,South Dakota,46009,8,0 +2020-05-31,Bon Homme,South Dakota,46009,8,0 +2020-06-01,Bon Homme,South Dakota,46009,8,0 +2020-06-02,Bon Homme,South Dakota,46009,8,0 +2020-06-03,Bon Homme,South Dakota,46009,8,0 +2020-06-04,Bon Homme,South Dakota,46009,8,0 +2020-06-05,Bon Homme,South Dakota,46009,8,0 +2020-06-06,Bon Homme,South Dakota,46009,8,0 +2020-06-07,Bon Homme,South Dakota,46009,8,0 +2020-06-08,Bon Homme,South Dakota,46009,8,0 +2020-06-09,Bon Homme,South Dakota,46009,8,0 +2020-06-10,Bon Homme,South Dakota,46009,8,0 +2020-06-11,Bon Homme,South Dakota,46009,8,0 +2020-06-12,Bon Homme,South Dakota,46009,8,0 +2020-06-13,Bon Homme,South Dakota,46009,8,0 +2020-06-14,Bon Homme,South Dakota,46009,9,0 +2020-06-15,Bon Homme,South Dakota,46009,9,0 +2020-06-16,Bon Homme,South Dakota,46009,9,0 +2020-06-17,Bon Homme,South Dakota,46009,11,0 +2020-06-18,Bon Homme,South Dakota,46009,11,0 +2020-06-19,Bon Homme,South Dakota,46009,11,0 +2020-06-20,Bon Homme,South Dakota,46009,11,0 +2020-06-21,Bon Homme,South Dakota,46009,11,0 +2020-06-22,Bon Homme,South Dakota,46009,11,0 +2020-06-23,Bon Homme,South Dakota,46009,11,0 +2020-06-24,Bon Homme,South Dakota,46009,11,0 +2020-06-25,Bon Homme,South Dakota,46009,11,0 +2020-06-26,Bon Homme,South Dakota,46009,11,0 +2020-06-27,Bon Homme,South Dakota,46009,11,0 +2020-06-28,Bon Homme,South Dakota,46009,11,0 +2020-06-29,Bon Homme,South Dakota,46009,11,0 +2020-06-30,Bon Homme,South Dakota,46009,11,0 +2020-07-01,Bon Homme,South Dakota,46009,11,0 +2020-07-02,Bon Homme,South Dakota,46009,11,0 +2020-07-03,Bon Homme,South Dakota,46009,11,0 +2020-07-04,Bon Homme,South Dakota,46009,11,0 +2020-07-05,Bon Homme,South Dakota,46009,12,0 +2020-07-06,Bon Homme,South Dakota,46009,12,0 +2020-07-07,Bon Homme,South Dakota,46009,12,0 +2020-07-08,Bon Homme,South Dakota,46009,12,0 +2020-07-09,Bon Homme,South Dakota,46009,13,0 +2020-03-24,Brookings,South Dakota,46011,1,0 +2020-03-25,Brookings,South Dakota,46011,1,0 +2020-03-26,Brookings,South Dakota,46011,1,0 +2020-03-27,Brookings,South Dakota,46011,1,0 +2020-03-28,Brookings,South Dakota,46011,1,0 +2020-03-29,Brookings,South Dakota,46011,1,0 +2020-03-30,Brookings,South Dakota,46011,1,0 +2020-03-31,Brookings,South Dakota,46011,1,0 +2020-04-01,Brookings,South Dakota,46011,2,0 +2020-04-02,Brookings,South Dakota,46011,2,0 +2020-04-03,Brookings,South Dakota,46011,2,0 +2020-04-04,Brookings,South Dakota,46011,3,0 +2020-04-05,Brookings,South Dakota,46011,3,0 +2020-04-06,Brookings,South Dakota,46011,4,0 +2020-04-07,Brookings,South Dakota,46011,6,0 +2020-04-08,Brookings,South Dakota,46011,6,0 +2020-04-09,Brookings,South Dakota,46011,6,0 +2020-04-10,Brookings,South Dakota,46011,7,0 +2020-04-11,Brookings,South Dakota,46011,6,0 +2020-04-12,Brookings,South Dakota,46011,8,0 +2020-04-13,Brookings,South Dakota,46011,9,0 +2020-04-14,Brookings,South Dakota,46011,9,0 +2020-04-15,Brookings,South Dakota,46011,9,0 +2020-04-16,Brookings,South Dakota,46011,9,0 +2020-04-17,Brookings,South Dakota,46011,9,0 +2020-04-18,Brookings,South Dakota,46011,9,0 +2020-04-19,Brookings,South Dakota,46011,9,0 +2020-04-20,Brookings,South Dakota,46011,9,0 +2020-04-21,Brookings,South Dakota,46011,9,0 +2020-04-22,Brookings,South Dakota,46011,9,0 +2020-04-23,Brookings,South Dakota,46011,9,0 +2020-04-24,Brookings,South Dakota,46011,9,0 +2020-04-25,Brookings,South Dakota,46011,11,0 +2020-04-26,Brookings,South Dakota,46011,11,0 +2020-04-27,Brookings,South Dakota,46011,12,0 +2020-04-28,Brookings,South Dakota,46011,12,0 +2020-04-29,Brookings,South Dakota,46011,12,0 +2020-04-30,Brookings,South Dakota,46011,13,0 +2020-05-01,Brookings,South Dakota,46011,13,0 +2020-05-02,Brookings,South Dakota,46011,13,0 +2020-05-03,Brookings,South Dakota,46011,13,0 +2020-05-04,Brookings,South Dakota,46011,13,0 +2020-05-05,Brookings,South Dakota,46011,13,0 +2020-05-06,Brookings,South Dakota,46011,14,0 +2020-05-07,Brookings,South Dakota,46011,14,0 +2020-05-08,Brookings,South Dakota,46011,14,0 +2020-05-09,Brookings,South Dakota,46011,14,0 +2020-05-10,Brookings,South Dakota,46011,14,0 +2020-05-11,Brookings,South Dakota,46011,14,0 +2020-05-12,Brookings,South Dakota,46011,14,0 +2020-05-13,Brookings,South Dakota,46011,14,0 +2020-05-14,Brookings,South Dakota,46011,14,0 +2020-05-15,Brookings,South Dakota,46011,14,0 +2020-05-16,Brookings,South Dakota,46011,14,0 +2020-05-17,Brookings,South Dakota,46011,14,0 +2020-05-18,Brookings,South Dakota,46011,14,0 +2020-05-19,Brookings,South Dakota,46011,14,0 +2020-05-20,Brookings,South Dakota,46011,14,0 +2020-05-21,Brookings,South Dakota,46011,14,0 +2020-05-22,Brookings,South Dakota,46011,14,0 +2020-05-23,Brookings,South Dakota,46011,15,0 +2020-05-24,Brookings,South Dakota,46011,15,0 +2020-05-25,Brookings,South Dakota,46011,15,0 +2020-05-26,Brookings,South Dakota,46011,15,0 +2020-05-27,Brookings,South Dakota,46011,15,0 +2020-05-28,Brookings,South Dakota,46011,15,0 +2020-05-29,Brookings,South Dakota,46011,16,0 +2020-05-30,Brookings,South Dakota,46011,16,0 +2020-05-31,Brookings,South Dakota,46011,16,0 +2020-06-01,Brookings,South Dakota,46011,16,0 +2020-06-02,Brookings,South Dakota,46011,17,0 +2020-06-03,Brookings,South Dakota,46011,20,0 +2020-06-04,Brookings,South Dakota,46011,20,0 +2020-06-05,Brookings,South Dakota,46011,20,0 +2020-06-06,Brookings,South Dakota,46011,22,0 +2020-06-07,Brookings,South Dakota,46011,23,0 +2020-06-08,Brookings,South Dakota,46011,23,0 +2020-06-09,Brookings,South Dakota,46011,24,0 +2020-06-10,Brookings,South Dakota,46011,26,0 +2020-06-11,Brookings,South Dakota,46011,26,0 +2020-06-12,Brookings,South Dakota,46011,26,0 +2020-06-13,Brookings,South Dakota,46011,26,0 +2020-06-14,Brookings,South Dakota,46011,34,0 +2020-06-15,Brookings,South Dakota,46011,36,0 +2020-06-16,Brookings,South Dakota,46011,38,0 +2020-06-17,Brookings,South Dakota,46011,39,0 +2020-06-18,Brookings,South Dakota,46011,46,0 +2020-06-19,Brookings,South Dakota,46011,47,0 +2020-06-20,Brookings,South Dakota,46011,48,0 +2020-06-21,Brookings,South Dakota,46011,51,0 +2020-06-22,Brookings,South Dakota,46011,52,0 +2020-06-23,Brookings,South Dakota,46011,54,0 +2020-06-24,Brookings,South Dakota,46011,54,0 +2020-06-25,Brookings,South Dakota,46011,57,0 +2020-06-26,Brookings,South Dakota,46011,57,0 +2020-06-27,Brookings,South Dakota,46011,58,0 +2020-06-28,Brookings,South Dakota,46011,61,0 +2020-06-29,Brookings,South Dakota,46011,61,0 +2020-06-30,Brookings,South Dakota,46011,62,0 +2020-07-01,Brookings,South Dakota,46011,65,0 +2020-07-02,Brookings,South Dakota,46011,68,0 +2020-07-03,Brookings,South Dakota,46011,70,0 +2020-07-04,Brookings,South Dakota,46011,73,0 +2020-07-05,Brookings,South Dakota,46011,79,0 +2020-07-06,Brookings,South Dakota,46011,81,0 +2020-07-07,Brookings,South Dakota,46011,83,0 +2020-07-08,Brookings,South Dakota,46011,86,0 +2020-07-09,Brookings,South Dakota,46011,86,0 +2020-03-22,Brown,South Dakota,46013,1,0 +2020-03-23,Brown,South Dakota,46013,1,0 +2020-03-24,Brown,South Dakota,46013,1,0 +2020-03-25,Brown,South Dakota,46013,2,0 +2020-03-26,Brown,South Dakota,46013,2,0 +2020-03-27,Brown,South Dakota,46013,2,0 +2020-03-28,Brown,South Dakota,46013,2,0 +2020-03-29,Brown,South Dakota,46013,2,0 +2020-03-30,Brown,South Dakota,46013,3,0 +2020-03-31,Brown,South Dakota,46013,3,0 +2020-04-01,Brown,South Dakota,46013,4,0 +2020-04-02,Brown,South Dakota,46013,6,0 +2020-04-03,Brown,South Dakota,46013,7,0 +2020-04-04,Brown,South Dakota,46013,9,0 +2020-04-05,Brown,South Dakota,46013,9,0 +2020-04-06,Brown,South Dakota,46013,13,0 +2020-04-07,Brown,South Dakota,46013,13,0 +2020-04-08,Brown,South Dakota,46013,13,0 +2020-04-09,Brown,South Dakota,46013,14,0 +2020-04-10,Brown,South Dakota,46013,14,0 +2020-04-11,Brown,South Dakota,46013,14,0 +2020-04-12,Brown,South Dakota,46013,14,0 +2020-04-13,Brown,South Dakota,46013,14,0 +2020-04-14,Brown,South Dakota,46013,14,0 +2020-04-15,Brown,South Dakota,46013,15,0 +2020-04-16,Brown,South Dakota,46013,15,0 +2020-04-17,Brown,South Dakota,46013,17,0 +2020-04-18,Brown,South Dakota,46013,18,0 +2020-04-19,Brown,South Dakota,46013,20,0 +2020-04-20,Brown,South Dakota,46013,20,0 +2020-04-21,Brown,South Dakota,46013,20,0 +2020-04-22,Brown,South Dakota,46013,27,0 +2020-04-23,Brown,South Dakota,46013,28,0 +2020-04-24,Brown,South Dakota,46013,28,0 +2020-04-25,Brown,South Dakota,46013,30,0 +2020-04-26,Brown,South Dakota,46013,30,0 +2020-04-27,Brown,South Dakota,46013,30,0 +2020-04-28,Brown,South Dakota,46013,30,0 +2020-04-29,Brown,South Dakota,46013,32,0 +2020-04-30,Brown,South Dakota,46013,39,0 +2020-05-01,Brown,South Dakota,46013,42,0 +2020-05-02,Brown,South Dakota,46013,51,0 +2020-05-03,Brown,South Dakota,46013,59,0 +2020-05-04,Brown,South Dakota,46013,65,0 +2020-05-05,Brown,South Dakota,46013,71,0 +2020-05-06,Brown,South Dakota,46013,76,0 +2020-05-07,Brown,South Dakota,46013,93,0 +2020-05-08,Brown,South Dakota,46013,107,0 +2020-05-09,Brown,South Dakota,46013,110,0 +2020-05-10,Brown,South Dakota,46013,120,0 +2020-05-11,Brown,South Dakota,46013,127,0 +2020-05-12,Brown,South Dakota,46013,132,0 +2020-05-13,Brown,South Dakota,46013,143,0 +2020-05-14,Brown,South Dakota,46013,154,0 +2020-05-15,Brown,South Dakota,46013,173,0 +2020-05-16,Brown,South Dakota,46013,194,0 +2020-05-17,Brown,South Dakota,46013,196,0 +2020-05-18,Brown,South Dakota,46013,200,0 +2020-05-19,Brown,South Dakota,46013,205,0 +2020-05-20,Brown,South Dakota,46013,211,0 +2020-05-21,Brown,South Dakota,46013,211,0 +2020-05-22,Brown,South Dakota,46013,235,0 +2020-05-23,Brown,South Dakota,46013,244,0 +2020-05-24,Brown,South Dakota,46013,249,0 +2020-05-25,Brown,South Dakota,46013,249,0 +2020-05-26,Brown,South Dakota,46013,259,0 +2020-05-27,Brown,South Dakota,46013,261,1 +2020-05-28,Brown,South Dakota,46013,266,1 +2020-05-29,Brown,South Dakota,46013,269,1 +2020-05-30,Brown,South Dakota,46013,271,1 +2020-05-31,Brown,South Dakota,46013,273,1 +2020-06-01,Brown,South Dakota,46013,275,1 +2020-06-02,Brown,South Dakota,46013,281,1 +2020-06-03,Brown,South Dakota,46013,286,1 +2020-06-04,Brown,South Dakota,46013,290,1 +2020-06-05,Brown,South Dakota,46013,291,1 +2020-06-06,Brown,South Dakota,46013,295,1 +2020-06-07,Brown,South Dakota,46013,298,1 +2020-06-08,Brown,South Dakota,46013,299,1 +2020-06-09,Brown,South Dakota,46013,303,1 +2020-06-10,Brown,South Dakota,46013,305,1 +2020-06-11,Brown,South Dakota,46013,305,2 +2020-06-12,Brown,South Dakota,46013,307,2 +2020-06-13,Brown,South Dakota,46013,310,2 +2020-06-14,Brown,South Dakota,46013,311,2 +2020-06-15,Brown,South Dakota,46013,313,2 +2020-06-16,Brown,South Dakota,46013,313,2 +2020-06-17,Brown,South Dakota,46013,315,2 +2020-06-18,Brown,South Dakota,46013,319,2 +2020-06-19,Brown,South Dakota,46013,321,2 +2020-06-20,Brown,South Dakota,46013,323,2 +2020-06-21,Brown,South Dakota,46013,324,2 +2020-06-22,Brown,South Dakota,46013,326,2 +2020-06-23,Brown,South Dakota,46013,327,2 +2020-06-24,Brown,South Dakota,46013,330,2 +2020-06-25,Brown,South Dakota,46013,335,2 +2020-06-26,Brown,South Dakota,46013,335,2 +2020-06-27,Brown,South Dakota,46013,339,2 +2020-06-28,Brown,South Dakota,46013,341,2 +2020-06-29,Brown,South Dakota,46013,342,2 +2020-06-30,Brown,South Dakota,46013,342,2 +2020-07-01,Brown,South Dakota,46013,342,2 +2020-07-02,Brown,South Dakota,46013,344,2 +2020-07-03,Brown,South Dakota,46013,344,2 +2020-07-04,Brown,South Dakota,46013,343,2 +2020-07-05,Brown,South Dakota,46013,347,2 +2020-07-06,Brown,South Dakota,46013,349,2 +2020-07-07,Brown,South Dakota,46013,350,2 +2020-07-08,Brown,South Dakota,46013,350,2 +2020-07-09,Brown,South Dakota,46013,352,2 +2020-06-03,Brule,South Dakota,46015,2,0 +2020-06-04,Brule,South Dakota,46015,2,0 +2020-06-05,Brule,South Dakota,46015,2,0 +2020-06-06,Brule,South Dakota,46015,2,0 +2020-06-07,Brule,South Dakota,46015,2,0 +2020-06-08,Brule,South Dakota,46015,2,0 +2020-06-09,Brule,South Dakota,46015,2,0 +2020-06-10,Brule,South Dakota,46015,2,0 +2020-06-11,Brule,South Dakota,46015,3,0 +2020-06-12,Brule,South Dakota,46015,7,0 +2020-06-13,Brule,South Dakota,46015,9,0 +2020-06-14,Brule,South Dakota,46015,10,0 +2020-06-15,Brule,South Dakota,46015,10,0 +2020-06-16,Brule,South Dakota,46015,10,0 +2020-06-17,Brule,South Dakota,46015,12,0 +2020-06-18,Brule,South Dakota,46015,13,0 +2020-06-19,Brule,South Dakota,46015,15,0 +2020-06-20,Brule,South Dakota,46015,15,0 +2020-06-21,Brule,South Dakota,46015,15,0 +2020-06-22,Brule,South Dakota,46015,15,0 +2020-06-23,Brule,South Dakota,46015,16,0 +2020-06-24,Brule,South Dakota,46015,16,0 +2020-06-25,Brule,South Dakota,46015,17,0 +2020-06-26,Brule,South Dakota,46015,18,0 +2020-06-27,Brule,South Dakota,46015,18,0 +2020-06-28,Brule,South Dakota,46015,18,0 +2020-06-29,Brule,South Dakota,46015,20,0 +2020-06-30,Brule,South Dakota,46015,23,0 +2020-07-01,Brule,South Dakota,46015,24,0 +2020-07-02,Brule,South Dakota,46015,26,0 +2020-07-03,Brule,South Dakota,46015,29,0 +2020-07-04,Brule,South Dakota,46015,29,0 +2020-07-05,Brule,South Dakota,46015,29,0 +2020-07-06,Brule,South Dakota,46015,29,0 +2020-07-07,Brule,South Dakota,46015,29,0 +2020-07-08,Brule,South Dakota,46015,30,0 +2020-07-09,Brule,South Dakota,46015,33,0 +2020-04-28,Buffalo,South Dakota,46017,1,0 +2020-04-29,Buffalo,South Dakota,46017,1,0 +2020-04-30,Buffalo,South Dakota,46017,1,0 +2020-05-01,Buffalo,South Dakota,46017,1,0 +2020-05-02,Buffalo,South Dakota,46017,1,0 +2020-05-03,Buffalo,South Dakota,46017,1,0 +2020-05-04,Buffalo,South Dakota,46017,1,0 +2020-05-05,Buffalo,South Dakota,46017,1,0 +2020-05-06,Buffalo,South Dakota,46017,1,0 +2020-05-07,Buffalo,South Dakota,46017,1,0 +2020-05-08,Buffalo,South Dakota,46017,1,0 +2020-05-09,Buffalo,South Dakota,46017,1,0 +2020-05-10,Buffalo,South Dakota,46017,1,0 +2020-05-11,Buffalo,South Dakota,46017,1,0 +2020-05-12,Buffalo,South Dakota,46017,1,0 +2020-05-13,Buffalo,South Dakota,46017,1,0 +2020-05-14,Buffalo,South Dakota,46017,1,0 +2020-05-15,Buffalo,South Dakota,46017,1,0 +2020-05-16,Buffalo,South Dakota,46017,1,0 +2020-05-17,Buffalo,South Dakota,46017,1,0 +2020-05-18,Buffalo,South Dakota,46017,1,0 +2020-05-19,Buffalo,South Dakota,46017,3,0 +2020-05-20,Buffalo,South Dakota,46017,5,0 +2020-05-21,Buffalo,South Dakota,46017,5,0 +2020-05-22,Buffalo,South Dakota,46017,7,0 +2020-05-23,Buffalo,South Dakota,46017,9,0 +2020-05-24,Buffalo,South Dakota,46017,9,0 +2020-05-25,Buffalo,South Dakota,46017,9,0 +2020-05-26,Buffalo,South Dakota,46017,9,0 +2020-05-27,Buffalo,South Dakota,46017,9,0 +2020-05-28,Buffalo,South Dakota,46017,10,0 +2020-05-29,Buffalo,South Dakota,46017,12,0 +2020-05-30,Buffalo,South Dakota,46017,17,0 +2020-05-31,Buffalo,South Dakota,46017,17,0 +2020-06-01,Buffalo,South Dakota,46017,18,0 +2020-06-02,Buffalo,South Dakota,46017,21,0 +2020-06-03,Buffalo,South Dakota,46017,22,0 +2020-06-04,Buffalo,South Dakota,46017,21,0 +2020-06-05,Buffalo,South Dakota,46017,22,0 +2020-06-06,Buffalo,South Dakota,46017,24,0 +2020-06-07,Buffalo,South Dakota,46017,25,0 +2020-06-08,Buffalo,South Dakota,46017,25,0 +2020-06-09,Buffalo,South Dakota,46017,29,0 +2020-06-10,Buffalo,South Dakota,46017,30,0 +2020-06-11,Buffalo,South Dakota,46017,31,0 +2020-06-12,Buffalo,South Dakota,46017,39,0 +2020-06-13,Buffalo,South Dakota,46017,47,0 +2020-06-14,Buffalo,South Dakota,46017,52,0 +2020-06-15,Buffalo,South Dakota,46017,53,0 +2020-06-16,Buffalo,South Dakota,46017,54,0 +2020-06-17,Buffalo,South Dakota,46017,55,0 +2020-06-18,Buffalo,South Dakota,46017,58,0 +2020-06-19,Buffalo,South Dakota,46017,58,0 +2020-06-20,Buffalo,South Dakota,46017,66,0 +2020-06-21,Buffalo,South Dakota,46017,66,0 +2020-06-22,Buffalo,South Dakota,46017,66,0 +2020-06-23,Buffalo,South Dakota,46017,66,0 +2020-06-24,Buffalo,South Dakota,46017,68,0 +2020-06-25,Buffalo,South Dakota,46017,68,1 +2020-06-26,Buffalo,South Dakota,46017,69,1 +2020-06-27,Buffalo,South Dakota,46017,71,1 +2020-06-28,Buffalo,South Dakota,46017,72,1 +2020-06-29,Buffalo,South Dakota,46017,71,1 +2020-06-30,Buffalo,South Dakota,46017,71,1 +2020-07-01,Buffalo,South Dakota,46017,71,2 +2020-07-02,Buffalo,South Dakota,46017,72,3 +2020-07-03,Buffalo,South Dakota,46017,76,3 +2020-07-04,Buffalo,South Dakota,46017,76,3 +2020-07-05,Buffalo,South Dakota,46017,76,3 +2020-07-06,Buffalo,South Dakota,46017,76,3 +2020-07-07,Buffalo,South Dakota,46017,77,3 +2020-07-08,Buffalo,South Dakota,46017,79,3 +2020-07-09,Buffalo,South Dakota,46017,84,3 +2020-07-08,Butte,South Dakota,46019,1,0 +2020-07-09,Butte,South Dakota,46019,1,0 +2020-07-03,Campbell,South Dakota,46021,1,0 +2020-07-04,Campbell,South Dakota,46021,1,0 +2020-07-05,Campbell,South Dakota,46021,1,0 +2020-07-06,Campbell,South Dakota,46021,1,0 +2020-07-07,Campbell,South Dakota,46021,1,0 +2020-07-08,Campbell,South Dakota,46021,1,0 +2020-07-09,Campbell,South Dakota,46021,1,0 +2020-03-10,Charles Mix,South Dakota,46023,1,0 +2020-03-11,Charles Mix,South Dakota,46023,1,0 +2020-03-12,Charles Mix,South Dakota,46023,1,0 +2020-03-13,Charles Mix,South Dakota,46023,1,0 +2020-03-14,Charles Mix,South Dakota,46023,1,0 +2020-03-15,Charles Mix,South Dakota,46023,1,0 +2020-03-16,Charles Mix,South Dakota,46023,1,0 +2020-03-17,Charles Mix,South Dakota,46023,1,0 +2020-03-18,Charles Mix,South Dakota,46023,1,0 +2020-03-19,Charles Mix,South Dakota,46023,1,0 +2020-03-20,Charles Mix,South Dakota,46023,1,0 +2020-03-21,Charles Mix,South Dakota,46023,1,0 +2020-03-22,Charles Mix,South Dakota,46023,1,0 +2020-03-23,Charles Mix,South Dakota,46023,1,0 +2020-03-24,Charles Mix,South Dakota,46023,1,0 +2020-03-25,Charles Mix,South Dakota,46023,1,0 +2020-03-26,Charles Mix,South Dakota,46023,1,0 +2020-03-27,Charles Mix,South Dakota,46023,1,0 +2020-03-28,Charles Mix,South Dakota,46023,1,0 +2020-03-29,Charles Mix,South Dakota,46023,1,0 +2020-03-30,Charles Mix,South Dakota,46023,1,0 +2020-03-31,Charles Mix,South Dakota,46023,1,0 +2020-04-01,Charles Mix,South Dakota,46023,1,0 +2020-04-02,Charles Mix,South Dakota,46023,1,0 +2020-04-03,Charles Mix,South Dakota,46023,1,0 +2020-04-04,Charles Mix,South Dakota,46023,2,0 +2020-04-05,Charles Mix,South Dakota,46023,2,0 +2020-04-06,Charles Mix,South Dakota,46023,2,0 +2020-04-07,Charles Mix,South Dakota,46023,2,0 +2020-04-08,Charles Mix,South Dakota,46023,2,0 +2020-04-09,Charles Mix,South Dakota,46023,2,0 +2020-04-10,Charles Mix,South Dakota,46023,3,0 +2020-04-11,Charles Mix,South Dakota,46023,3,0 +2020-04-12,Charles Mix,South Dakota,46023,4,0 +2020-04-13,Charles Mix,South Dakota,46023,4,0 +2020-04-14,Charles Mix,South Dakota,46023,4,0 +2020-04-15,Charles Mix,South Dakota,46023,4,0 +2020-04-16,Charles Mix,South Dakota,46023,4,0 +2020-04-17,Charles Mix,South Dakota,46023,4,0 +2020-04-18,Charles Mix,South Dakota,46023,4,0 +2020-04-19,Charles Mix,South Dakota,46023,4,0 +2020-04-20,Charles Mix,South Dakota,46023,4,0 +2020-04-21,Charles Mix,South Dakota,46023,4,0 +2020-04-22,Charles Mix,South Dakota,46023,4,0 +2020-04-23,Charles Mix,South Dakota,46023,4,0 +2020-04-24,Charles Mix,South Dakota,46023,4,0 +2020-04-25,Charles Mix,South Dakota,46023,4,0 +2020-04-26,Charles Mix,South Dakota,46023,4,0 +2020-04-27,Charles Mix,South Dakota,46023,4,0 +2020-04-28,Charles Mix,South Dakota,46023,4,0 +2020-04-29,Charles Mix,South Dakota,46023,5,0 +2020-04-30,Charles Mix,South Dakota,46023,5,0 +2020-05-01,Charles Mix,South Dakota,46023,5,0 +2020-05-02,Charles Mix,South Dakota,46023,5,0 +2020-05-03,Charles Mix,South Dakota,46023,5,0 +2020-05-04,Charles Mix,South Dakota,46023,5,0 +2020-05-05,Charles Mix,South Dakota,46023,5,0 +2020-05-06,Charles Mix,South Dakota,46023,5,0 +2020-05-07,Charles Mix,South Dakota,46023,5,0 +2020-05-08,Charles Mix,South Dakota,46023,5,0 +2020-05-09,Charles Mix,South Dakota,46023,5,0 +2020-05-10,Charles Mix,South Dakota,46023,5,0 +2020-05-11,Charles Mix,South Dakota,46023,5,0 +2020-05-12,Charles Mix,South Dakota,46023,5,0 +2020-05-13,Charles Mix,South Dakota,46023,6,0 +2020-05-14,Charles Mix,South Dakota,46023,7,0 +2020-05-15,Charles Mix,South Dakota,46023,8,0 +2020-05-16,Charles Mix,South Dakota,46023,8,0 +2020-05-17,Charles Mix,South Dakota,46023,9,0 +2020-05-18,Charles Mix,South Dakota,46023,9,0 +2020-05-19,Charles Mix,South Dakota,46023,10,0 +2020-05-20,Charles Mix,South Dakota,46023,10,0 +2020-05-21,Charles Mix,South Dakota,46023,10,0 +2020-05-22,Charles Mix,South Dakota,46023,11,0 +2020-05-23,Charles Mix,South Dakota,46023,12,0 +2020-05-24,Charles Mix,South Dakota,46023,13,0 +2020-05-25,Charles Mix,South Dakota,46023,13,0 +2020-05-26,Charles Mix,South Dakota,46023,13,0 +2020-05-27,Charles Mix,South Dakota,46023,14,0 +2020-05-28,Charles Mix,South Dakota,46023,16,0 +2020-05-29,Charles Mix,South Dakota,46023,16,0 +2020-05-30,Charles Mix,South Dakota,46023,17,0 +2020-05-31,Charles Mix,South Dakota,46023,17,0 +2020-06-01,Charles Mix,South Dakota,46023,17,0 +2020-06-02,Charles Mix,South Dakota,46023,18,0 +2020-06-03,Charles Mix,South Dakota,46023,18,0 +2020-06-04,Charles Mix,South Dakota,46023,18,0 +2020-06-05,Charles Mix,South Dakota,46023,18,0 +2020-06-06,Charles Mix,South Dakota,46023,20,0 +2020-06-07,Charles Mix,South Dakota,46023,20,0 +2020-06-08,Charles Mix,South Dakota,46023,20,0 +2020-06-09,Charles Mix,South Dakota,46023,20,0 +2020-06-10,Charles Mix,South Dakota,46023,20,0 +2020-06-11,Charles Mix,South Dakota,46023,21,0 +2020-06-12,Charles Mix,South Dakota,46023,21,0 +2020-06-13,Charles Mix,South Dakota,46023,30,0 +2020-06-14,Charles Mix,South Dakota,46023,32,0 +2020-06-15,Charles Mix,South Dakota,46023,32,0 +2020-06-16,Charles Mix,South Dakota,46023,32,0 +2020-06-17,Charles Mix,South Dakota,46023,37,0 +2020-06-18,Charles Mix,South Dakota,46023,41,0 +2020-06-19,Charles Mix,South Dakota,46023,45,0 +2020-06-20,Charles Mix,South Dakota,46023,47,0 +2020-06-21,Charles Mix,South Dakota,46023,48,0 +2020-06-22,Charles Mix,South Dakota,46023,49,0 +2020-06-23,Charles Mix,South Dakota,46023,49,0 +2020-06-24,Charles Mix,South Dakota,46023,56,0 +2020-06-25,Charles Mix,South Dakota,46023,57,0 +2020-06-26,Charles Mix,South Dakota,46023,58,0 +2020-06-27,Charles Mix,South Dakota,46023,68,0 +2020-06-28,Charles Mix,South Dakota,46023,70,0 +2020-06-29,Charles Mix,South Dakota,46023,75,0 +2020-06-30,Charles Mix,South Dakota,46023,82,0 +2020-07-01,Charles Mix,South Dakota,46023,85,0 +2020-07-02,Charles Mix,South Dakota,46023,86,0 +2020-07-03,Charles Mix,South Dakota,46023,90,0 +2020-07-04,Charles Mix,South Dakota,46023,91,0 +2020-07-05,Charles Mix,South Dakota,46023,91,0 +2020-07-06,Charles Mix,South Dakota,46023,91,0 +2020-07-07,Charles Mix,South Dakota,46023,90,0 +2020-07-08,Charles Mix,South Dakota,46023,95,0 +2020-07-09,Charles Mix,South Dakota,46023,96,0 +2020-03-29,Clark,South Dakota,46025,1,0 +2020-03-30,Clark,South Dakota,46025,1,0 +2020-03-31,Clark,South Dakota,46025,1,0 +2020-04-01,Clark,South Dakota,46025,1,0 +2020-04-02,Clark,South Dakota,46025,1,0 +2020-04-03,Clark,South Dakota,46025,1,0 +2020-04-04,Clark,South Dakota,46025,1,0 +2020-04-05,Clark,South Dakota,46025,1,0 +2020-04-06,Clark,South Dakota,46025,1,0 +2020-04-07,Clark,South Dakota,46025,1,0 +2020-04-08,Clark,South Dakota,46025,1,0 +2020-04-09,Clark,South Dakota,46025,1,0 +2020-04-10,Clark,South Dakota,46025,1,0 +2020-04-11,Clark,South Dakota,46025,1,0 +2020-04-12,Clark,South Dakota,46025,1,0 +2020-04-13,Clark,South Dakota,46025,1,0 +2020-04-14,Clark,South Dakota,46025,1,0 +2020-04-15,Clark,South Dakota,46025,1,0 +2020-04-16,Clark,South Dakota,46025,1,0 +2020-04-17,Clark,South Dakota,46025,1,0 +2020-04-18,Clark,South Dakota,46025,1,0 +2020-04-19,Clark,South Dakota,46025,1,0 +2020-04-20,Clark,South Dakota,46025,1,0 +2020-04-21,Clark,South Dakota,46025,1,0 +2020-04-22,Clark,South Dakota,46025,1,0 +2020-04-23,Clark,South Dakota,46025,1,0 +2020-04-24,Clark,South Dakota,46025,1,0 +2020-04-25,Clark,South Dakota,46025,1,0 +2020-04-26,Clark,South Dakota,46025,1,0 +2020-04-27,Clark,South Dakota,46025,1,0 +2020-04-28,Clark,South Dakota,46025,1,0 +2020-04-29,Clark,South Dakota,46025,1,0 +2020-04-30,Clark,South Dakota,46025,1,0 +2020-05-01,Clark,South Dakota,46025,1,0 +2020-05-02,Clark,South Dakota,46025,1,0 +2020-05-03,Clark,South Dakota,46025,1,0 +2020-05-04,Clark,South Dakota,46025,1,0 +2020-05-05,Clark,South Dakota,46025,1,0 +2020-05-06,Clark,South Dakota,46025,1,0 +2020-05-07,Clark,South Dakota,46025,1,0 +2020-05-08,Clark,South Dakota,46025,2,0 +2020-05-09,Clark,South Dakota,46025,2,0 +2020-05-10,Clark,South Dakota,46025,2,0 +2020-05-11,Clark,South Dakota,46025,2,0 +2020-05-12,Clark,South Dakota,46025,3,0 +2020-05-13,Clark,South Dakota,46025,3,0 +2020-05-14,Clark,South Dakota,46025,4,0 +2020-05-15,Clark,South Dakota,46025,4,0 +2020-05-16,Clark,South Dakota,46025,4,0 +2020-05-17,Clark,South Dakota,46025,4,0 +2020-05-18,Clark,South Dakota,46025,4,0 +2020-05-19,Clark,South Dakota,46025,4,0 +2020-05-20,Clark,South Dakota,46025,4,0 +2020-05-21,Clark,South Dakota,46025,4,0 +2020-05-22,Clark,South Dakota,46025,4,0 +2020-05-23,Clark,South Dakota,46025,4,0 +2020-05-24,Clark,South Dakota,46025,4,0 +2020-05-25,Clark,South Dakota,46025,4,0 +2020-05-26,Clark,South Dakota,46025,4,0 +2020-05-27,Clark,South Dakota,46025,4,0 +2020-05-28,Clark,South Dakota,46025,4,0 +2020-05-29,Clark,South Dakota,46025,4,0 +2020-05-30,Clark,South Dakota,46025,4,0 +2020-05-31,Clark,South Dakota,46025,4,0 +2020-06-01,Clark,South Dakota,46025,4,0 +2020-06-02,Clark,South Dakota,46025,4,0 +2020-06-03,Clark,South Dakota,46025,4,0 +2020-06-04,Clark,South Dakota,46025,4,0 +2020-06-05,Clark,South Dakota,46025,4,0 +2020-06-06,Clark,South Dakota,46025,4,0 +2020-06-07,Clark,South Dakota,46025,4,0 +2020-06-08,Clark,South Dakota,46025,4,0 +2020-06-09,Clark,South Dakota,46025,5,0 +2020-06-10,Clark,South Dakota,46025,6,0 +2020-06-11,Clark,South Dakota,46025,6,0 +2020-06-12,Clark,South Dakota,46025,7,0 +2020-06-13,Clark,South Dakota,46025,9,0 +2020-06-14,Clark,South Dakota,46025,9,0 +2020-06-15,Clark,South Dakota,46025,11,0 +2020-06-16,Clark,South Dakota,46025,11,0 +2020-06-17,Clark,South Dakota,46025,11,0 +2020-06-18,Clark,South Dakota,46025,11,0 +2020-06-19,Clark,South Dakota,46025,11,0 +2020-06-20,Clark,South Dakota,46025,11,0 +2020-06-21,Clark,South Dakota,46025,11,0 +2020-06-22,Clark,South Dakota,46025,12,0 +2020-06-23,Clark,South Dakota,46025,12,0 +2020-06-24,Clark,South Dakota,46025,13,0 +2020-06-25,Clark,South Dakota,46025,13,0 +2020-06-26,Clark,South Dakota,46025,13,0 +2020-06-27,Clark,South Dakota,46025,14,0 +2020-06-28,Clark,South Dakota,46025,14,0 +2020-06-29,Clark,South Dakota,46025,14,0 +2020-06-30,Clark,South Dakota,46025,15,0 +2020-07-01,Clark,South Dakota,46025,15,0 +2020-07-02,Clark,South Dakota,46025,15,0 +2020-07-03,Clark,South Dakota,46025,15,0 +2020-07-04,Clark,South Dakota,46025,15,0 +2020-07-05,Clark,South Dakota,46025,15,0 +2020-07-06,Clark,South Dakota,46025,15,0 +2020-07-07,Clark,South Dakota,46025,15,0 +2020-07-08,Clark,South Dakota,46025,15,0 +2020-07-09,Clark,South Dakota,46025,15,0 +2020-03-29,Clay,South Dakota,46027,2,0 +2020-03-30,Clay,South Dakota,46027,3,0 +2020-03-31,Clay,South Dakota,46027,3,0 +2020-04-01,Clay,South Dakota,46027,3,0 +2020-04-02,Clay,South Dakota,46027,3,0 +2020-04-03,Clay,South Dakota,46027,3,0 +2020-04-04,Clay,South Dakota,46027,3,0 +2020-04-05,Clay,South Dakota,46027,3,0 +2020-04-06,Clay,South Dakota,46027,3,0 +2020-04-07,Clay,South Dakota,46027,6,0 +2020-04-08,Clay,South Dakota,46027,6,0 +2020-04-09,Clay,South Dakota,46027,6,0 +2020-04-10,Clay,South Dakota,46027,6,0 +2020-04-11,Clay,South Dakota,46027,6,0 +2020-04-12,Clay,South Dakota,46027,6,0 +2020-04-13,Clay,South Dakota,46027,5,0 +2020-04-14,Clay,South Dakota,46027,5,0 +2020-04-15,Clay,South Dakota,46027,5,0 +2020-04-16,Clay,South Dakota,46027,5,0 +2020-04-17,Clay,South Dakota,46027,5,0 +2020-04-18,Clay,South Dakota,46027,5,0 +2020-04-19,Clay,South Dakota,46027,5,0 +2020-04-20,Clay,South Dakota,46027,5,0 +2020-04-21,Clay,South Dakota,46027,5,0 +2020-04-22,Clay,South Dakota,46027,5,0 +2020-04-23,Clay,South Dakota,46027,5,0 +2020-04-24,Clay,South Dakota,46027,5,0 +2020-04-25,Clay,South Dakota,46027,5,0 +2020-04-26,Clay,South Dakota,46027,5,0 +2020-04-27,Clay,South Dakota,46027,5,0 +2020-04-28,Clay,South Dakota,46027,5,0 +2020-04-29,Clay,South Dakota,46027,6,0 +2020-04-30,Clay,South Dakota,46027,6,0 +2020-05-01,Clay,South Dakota,46027,6,0 +2020-05-02,Clay,South Dakota,46027,6,0 +2020-05-03,Clay,South Dakota,46027,7,0 +2020-05-04,Clay,South Dakota,46027,7,0 +2020-05-05,Clay,South Dakota,46027,7,0 +2020-05-06,Clay,South Dakota,46027,7,0 +2020-05-07,Clay,South Dakota,46027,7,0 +2020-05-08,Clay,South Dakota,46027,9,0 +2020-05-09,Clay,South Dakota,46027,9,0 +2020-05-10,Clay,South Dakota,46027,9,0 +2020-05-11,Clay,South Dakota,46027,9,0 +2020-05-12,Clay,South Dakota,46027,10,0 +2020-05-13,Clay,South Dakota,46027,11,0 +2020-05-14,Clay,South Dakota,46027,11,0 +2020-05-15,Clay,South Dakota,46027,12,0 +2020-05-16,Clay,South Dakota,46027,14,0 +2020-05-17,Clay,South Dakota,46027,15,0 +2020-05-18,Clay,South Dakota,46027,15,0 +2020-05-19,Clay,South Dakota,46027,15,0 +2020-05-20,Clay,South Dakota,46027,15,0 +2020-05-21,Clay,South Dakota,46027,15,0 +2020-05-22,Clay,South Dakota,46027,15,0 +2020-05-23,Clay,South Dakota,46027,15,0 +2020-05-24,Clay,South Dakota,46027,15,0 +2020-05-25,Clay,South Dakota,46027,15,0 +2020-05-26,Clay,South Dakota,46027,15,0 +2020-05-27,Clay,South Dakota,46027,15,0 +2020-05-28,Clay,South Dakota,46027,15,0 +2020-05-29,Clay,South Dakota,46027,15,0 +2020-05-30,Clay,South Dakota,46027,15,0 +2020-05-31,Clay,South Dakota,46027,15,0 +2020-06-01,Clay,South Dakota,46027,15,0 +2020-06-02,Clay,South Dakota,46027,15,0 +2020-06-03,Clay,South Dakota,46027,15,0 +2020-06-04,Clay,South Dakota,46027,18,0 +2020-06-05,Clay,South Dakota,46027,19,0 +2020-06-06,Clay,South Dakota,46027,27,0 +2020-06-07,Clay,South Dakota,46027,32,0 +2020-06-08,Clay,South Dakota,46027,35,0 +2020-06-09,Clay,South Dakota,46027,39,0 +2020-06-10,Clay,South Dakota,46027,43,0 +2020-06-11,Clay,South Dakota,46027,50,0 +2020-06-12,Clay,South Dakota,46027,56,0 +2020-06-13,Clay,South Dakota,46027,65,0 +2020-06-14,Clay,South Dakota,46027,65,0 +2020-06-15,Clay,South Dakota,46027,66,0 +2020-06-16,Clay,South Dakota,46027,67,0 +2020-06-17,Clay,South Dakota,46027,69,0 +2020-06-18,Clay,South Dakota,46027,70,0 +2020-06-19,Clay,South Dakota,46027,70,0 +2020-06-20,Clay,South Dakota,46027,73,0 +2020-06-21,Clay,South Dakota,46027,73,0 +2020-06-22,Clay,South Dakota,46027,73,0 +2020-06-23,Clay,South Dakota,46027,77,0 +2020-06-24,Clay,South Dakota,46027,76,0 +2020-06-25,Clay,South Dakota,46027,79,0 +2020-06-26,Clay,South Dakota,46027,79,0 +2020-06-27,Clay,South Dakota,46027,80,0 +2020-06-28,Clay,South Dakota,46027,80,0 +2020-06-29,Clay,South Dakota,46027,80,0 +2020-06-30,Clay,South Dakota,46027,82,0 +2020-07-01,Clay,South Dakota,46027,83,0 +2020-07-02,Clay,South Dakota,46027,85,0 +2020-07-03,Clay,South Dakota,46027,87,0 +2020-07-04,Clay,South Dakota,46027,87,0 +2020-07-05,Clay,South Dakota,46027,87,0 +2020-07-06,Clay,South Dakota,46027,89,0 +2020-07-07,Clay,South Dakota,46027,90,0 +2020-07-08,Clay,South Dakota,46027,90,0 +2020-07-09,Clay,South Dakota,46027,92,0 +2020-03-23,Codington,South Dakota,46029,1,0 +2020-03-24,Codington,South Dakota,46029,1,0 +2020-03-25,Codington,South Dakota,46029,1,0 +2020-03-26,Codington,South Dakota,46029,1,0 +2020-03-27,Codington,South Dakota,46029,1,0 +2020-03-28,Codington,South Dakota,46029,2,0 +2020-03-29,Codington,South Dakota,46029,4,0 +2020-03-30,Codington,South Dakota,46029,5,0 +2020-03-31,Codington,South Dakota,46029,5,0 +2020-04-01,Codington,South Dakota,46029,5,0 +2020-04-02,Codington,South Dakota,46029,6,0 +2020-04-03,Codington,South Dakota,46029,8,0 +2020-04-04,Codington,South Dakota,46029,9,0 +2020-04-05,Codington,South Dakota,46029,10,0 +2020-04-06,Codington,South Dakota,46029,11,0 +2020-04-07,Codington,South Dakota,46029,12,0 +2020-04-08,Codington,South Dakota,46029,12,0 +2020-04-09,Codington,South Dakota,46029,12,0 +2020-04-10,Codington,South Dakota,46029,12,0 +2020-04-11,Codington,South Dakota,46029,12,0 +2020-04-12,Codington,South Dakota,46029,12,0 +2020-04-13,Codington,South Dakota,46029,12,0 +2020-04-14,Codington,South Dakota,46029,13,0 +2020-04-15,Codington,South Dakota,46029,13,0 +2020-04-16,Codington,South Dakota,46029,13,0 +2020-04-17,Codington,South Dakota,46029,13,0 +2020-04-18,Codington,South Dakota,46029,13,0 +2020-04-19,Codington,South Dakota,46029,13,0 +2020-04-20,Codington,South Dakota,46029,13,0 +2020-04-21,Codington,South Dakota,46029,13,0 +2020-04-22,Codington,South Dakota,46029,13,0 +2020-04-23,Codington,South Dakota,46029,13,0 +2020-04-24,Codington,South Dakota,46029,14,0 +2020-04-25,Codington,South Dakota,46029,14,0 +2020-04-26,Codington,South Dakota,46029,14,0 +2020-04-27,Codington,South Dakota,46029,14,0 +2020-04-28,Codington,South Dakota,46029,14,0 +2020-04-29,Codington,South Dakota,46029,14,0 +2020-04-30,Codington,South Dakota,46029,14,0 +2020-05-01,Codington,South Dakota,46029,14,0 +2020-05-02,Codington,South Dakota,46029,14,0 +2020-05-03,Codington,South Dakota,46029,14,0 +2020-05-04,Codington,South Dakota,46029,15,0 +2020-05-05,Codington,South Dakota,46029,15,0 +2020-05-06,Codington,South Dakota,46029,15,0 +2020-05-07,Codington,South Dakota,46029,15,0 +2020-05-08,Codington,South Dakota,46029,15,0 +2020-05-09,Codington,South Dakota,46029,15,0 +2020-05-10,Codington,South Dakota,46029,15,0 +2020-05-11,Codington,South Dakota,46029,15,0 +2020-05-12,Codington,South Dakota,46029,15,0 +2020-05-13,Codington,South Dakota,46029,16,0 +2020-05-14,Codington,South Dakota,46029,16,0 +2020-05-15,Codington,South Dakota,46029,16,0 +2020-05-16,Codington,South Dakota,46029,16,0 +2020-05-17,Codington,South Dakota,46029,17,0 +2020-05-18,Codington,South Dakota,46029,17,0 +2020-05-19,Codington,South Dakota,46029,17,0 +2020-05-20,Codington,South Dakota,46029,17,0 +2020-05-21,Codington,South Dakota,46029,17,0 +2020-05-22,Codington,South Dakota,46029,25,0 +2020-05-23,Codington,South Dakota,46029,29,0 +2020-05-24,Codington,South Dakota,46029,32,0 +2020-05-25,Codington,South Dakota,46029,32,0 +2020-05-26,Codington,South Dakota,46029,33,0 +2020-05-27,Codington,South Dakota,46029,34,0 +2020-05-28,Codington,South Dakota,46029,35,0 +2020-05-29,Codington,South Dakota,46029,35,0 +2020-05-30,Codington,South Dakota,46029,36,0 +2020-05-31,Codington,South Dakota,46029,37,0 +2020-06-01,Codington,South Dakota,46029,37,0 +2020-06-02,Codington,South Dakota,46029,37,0 +2020-06-03,Codington,South Dakota,46029,38,0 +2020-06-04,Codington,South Dakota,46029,39,0 +2020-06-05,Codington,South Dakota,46029,39,0 +2020-06-06,Codington,South Dakota,46029,41,0 +2020-06-07,Codington,South Dakota,46029,41,0 +2020-06-08,Codington,South Dakota,46029,43,0 +2020-06-09,Codington,South Dakota,46029,43,0 +2020-06-10,Codington,South Dakota,46029,44,0 +2020-06-11,Codington,South Dakota,46029,43,0 +2020-06-12,Codington,South Dakota,46029,44,0 +2020-06-13,Codington,South Dakota,46029,45,0 +2020-06-14,Codington,South Dakota,46029,46,0 +2020-06-15,Codington,South Dakota,46029,46,0 +2020-06-16,Codington,South Dakota,46029,46,0 +2020-06-17,Codington,South Dakota,46029,47,0 +2020-06-18,Codington,South Dakota,46029,47,0 +2020-06-19,Codington,South Dakota,46029,47,0 +2020-06-20,Codington,South Dakota,46029,49,0 +2020-06-21,Codington,South Dakota,46029,49,0 +2020-06-22,Codington,South Dakota,46029,49,0 +2020-06-23,Codington,South Dakota,46029,49,0 +2020-06-24,Codington,South Dakota,46029,49,0 +2020-06-25,Codington,South Dakota,46029,51,0 +2020-06-26,Codington,South Dakota,46029,51,0 +2020-06-27,Codington,South Dakota,46029,53,0 +2020-06-28,Codington,South Dakota,46029,57,0 +2020-06-29,Codington,South Dakota,46029,61,0 +2020-06-30,Codington,South Dakota,46029,63,0 +2020-07-01,Codington,South Dakota,46029,70,0 +2020-07-02,Codington,South Dakota,46029,72,0 +2020-07-03,Codington,South Dakota,46029,75,0 +2020-07-04,Codington,South Dakota,46029,83,0 +2020-07-05,Codington,South Dakota,46029,83,0 +2020-07-06,Codington,South Dakota,46029,83,0 +2020-07-07,Codington,South Dakota,46029,85,0 +2020-07-08,Codington,South Dakota,46029,86,0 +2020-07-09,Codington,South Dakota,46029,90,0 +2020-04-09,Corson,South Dakota,46031,1,0 +2020-04-10,Corson,South Dakota,46031,1,0 +2020-04-11,Corson,South Dakota,46031,1,0 +2020-04-12,Corson,South Dakota,46031,1,0 +2020-04-13,Corson,South Dakota,46031,1,0 +2020-04-14,Corson,South Dakota,46031,1,0 +2020-04-15,Corson,South Dakota,46031,1,0 +2020-04-16,Corson,South Dakota,46031,1,0 +2020-04-17,Corson,South Dakota,46031,1,0 +2020-04-18,Corson,South Dakota,46031,1,0 +2020-04-19,Corson,South Dakota,46031,1,0 +2020-04-20,Corson,South Dakota,46031,1,0 +2020-04-21,Corson,South Dakota,46031,1,0 +2020-04-22,Corson,South Dakota,46031,1,0 +2020-04-23,Corson,South Dakota,46031,1,0 +2020-04-24,Corson,South Dakota,46031,1,0 +2020-04-25,Corson,South Dakota,46031,1,0 +2020-04-26,Corson,South Dakota,46031,1,0 +2020-04-27,Corson,South Dakota,46031,1,0 +2020-04-28,Corson,South Dakota,46031,1,0 +2020-04-29,Corson,South Dakota,46031,1,0 +2020-04-30,Corson,South Dakota,46031,1,0 +2020-05-01,Corson,South Dakota,46031,1,0 +2020-05-02,Corson,South Dakota,46031,1,0 +2020-05-03,Corson,South Dakota,46031,1,0 +2020-05-04,Corson,South Dakota,46031,1,0 +2020-05-05,Corson,South Dakota,46031,1,0 +2020-05-06,Corson,South Dakota,46031,1,0 +2020-05-07,Corson,South Dakota,46031,1,0 +2020-05-08,Corson,South Dakota,46031,1,0 +2020-05-09,Corson,South Dakota,46031,1,0 +2020-05-10,Corson,South Dakota,46031,1,0 +2020-05-11,Corson,South Dakota,46031,1,0 +2020-05-12,Corson,South Dakota,46031,2,0 +2020-05-13,Corson,South Dakota,46031,2,0 +2020-05-14,Corson,South Dakota,46031,2,0 +2020-05-15,Corson,South Dakota,46031,3,0 +2020-05-16,Corson,South Dakota,46031,3,0 +2020-05-17,Corson,South Dakota,46031,3,0 +2020-05-18,Corson,South Dakota,46031,4,0 +2020-05-19,Corson,South Dakota,46031,4,0 +2020-05-20,Corson,South Dakota,46031,4,0 +2020-05-21,Corson,South Dakota,46031,4,0 +2020-05-22,Corson,South Dakota,46031,4,0 +2020-05-23,Corson,South Dakota,46031,4,0 +2020-05-24,Corson,South Dakota,46031,4,0 +2020-05-25,Corson,South Dakota,46031,4,0 +2020-05-26,Corson,South Dakota,46031,4,0 +2020-05-27,Corson,South Dakota,46031,4,0 +2020-05-28,Corson,South Dakota,46031,4,0 +2020-05-29,Corson,South Dakota,46031,4,0 +2020-05-30,Corson,South Dakota,46031,4,0 +2020-05-31,Corson,South Dakota,46031,4,0 +2020-06-01,Corson,South Dakota,46031,4,0 +2020-06-02,Corson,South Dakota,46031,4,0 +2020-06-03,Corson,South Dakota,46031,4,0 +2020-06-04,Corson,South Dakota,46031,4,0 +2020-06-05,Corson,South Dakota,46031,4,0 +2020-06-06,Corson,South Dakota,46031,4,0 +2020-06-07,Corson,South Dakota,46031,4,0 +2020-06-08,Corson,South Dakota,46031,4,0 +2020-06-09,Corson,South Dakota,46031,4,0 +2020-06-10,Corson,South Dakota,46031,6,0 +2020-06-11,Corson,South Dakota,46031,8,0 +2020-06-12,Corson,South Dakota,46031,9,0 +2020-06-13,Corson,South Dakota,46031,10,0 +2020-06-14,Corson,South Dakota,46031,11,0 +2020-06-15,Corson,South Dakota,46031,11,0 +2020-06-16,Corson,South Dakota,46031,11,0 +2020-06-17,Corson,South Dakota,46031,12,0 +2020-06-18,Corson,South Dakota,46031,12,0 +2020-06-19,Corson,South Dakota,46031,13,0 +2020-06-20,Corson,South Dakota,46031,15,0 +2020-06-21,Corson,South Dakota,46031,15,0 +2020-06-22,Corson,South Dakota,46031,15,0 +2020-06-23,Corson,South Dakota,46031,16,0 +2020-06-24,Corson,South Dakota,46031,16,0 +2020-06-25,Corson,South Dakota,46031,17,0 +2020-06-26,Corson,South Dakota,46031,17,0 +2020-06-27,Corson,South Dakota,46031,17,0 +2020-06-28,Corson,South Dakota,46031,17,0 +2020-06-29,Corson,South Dakota,46031,17,0 +2020-06-30,Corson,South Dakota,46031,18,0 +2020-07-01,Corson,South Dakota,46031,18,0 +2020-07-02,Corson,South Dakota,46031,18,0 +2020-07-03,Corson,South Dakota,46031,18,0 +2020-07-04,Corson,South Dakota,46031,19,0 +2020-07-05,Corson,South Dakota,46031,19,0 +2020-07-06,Corson,South Dakota,46031,19,0 +2020-07-07,Corson,South Dakota,46031,19,0 +2020-07-08,Corson,South Dakota,46031,19,0 +2020-07-09,Corson,South Dakota,46031,19,0 +2020-06-04,Custer,South Dakota,46033,1,0 +2020-06-05,Custer,South Dakota,46033,1,0 +2020-06-06,Custer,South Dakota,46033,1,0 +2020-06-07,Custer,South Dakota,46033,1,0 +2020-06-08,Custer,South Dakota,46033,1,0 +2020-06-09,Custer,South Dakota,46033,1,0 +2020-06-10,Custer,South Dakota,46033,1,0 +2020-06-11,Custer,South Dakota,46033,1,0 +2020-06-12,Custer,South Dakota,46033,2,0 +2020-06-13,Custer,South Dakota,46033,2,0 +2020-06-14,Custer,South Dakota,46033,2,0 +2020-06-15,Custer,South Dakota,46033,2,0 +2020-06-16,Custer,South Dakota,46033,2,0 +2020-06-17,Custer,South Dakota,46033,2,0 +2020-06-18,Custer,South Dakota,46033,2,0 +2020-06-19,Custer,South Dakota,46033,3,0 +2020-06-20,Custer,South Dakota,46033,6,0 +2020-06-21,Custer,South Dakota,46033,7,0 +2020-06-22,Custer,South Dakota,46033,7,0 +2020-06-23,Custer,South Dakota,46033,7,0 +2020-06-24,Custer,South Dakota,46033,7,0 +2020-06-25,Custer,South Dakota,46033,7,0 +2020-06-26,Custer,South Dakota,46033,7,0 +2020-06-27,Custer,South Dakota,46033,8,0 +2020-06-28,Custer,South Dakota,46033,8,0 +2020-06-29,Custer,South Dakota,46033,8,0 +2020-06-30,Custer,South Dakota,46033,8,0 +2020-07-01,Custer,South Dakota,46033,9,0 +2020-07-02,Custer,South Dakota,46033,10,0 +2020-07-03,Custer,South Dakota,46033,10,0 +2020-07-04,Custer,South Dakota,46033,10,0 +2020-07-05,Custer,South Dakota,46033,10,0 +2020-07-06,Custer,South Dakota,46033,10,0 +2020-07-07,Custer,South Dakota,46033,10,0 +2020-07-08,Custer,South Dakota,46033,10,0 +2020-07-09,Custer,South Dakota,46033,10,0 +2020-03-10,Davison,South Dakota,46035,2,1 +2020-03-11,Davison,South Dakota,46035,2,1 +2020-03-12,Davison,South Dakota,46035,2,1 +2020-03-13,Davison,South Dakota,46035,2,1 +2020-03-14,Davison,South Dakota,46035,2,1 +2020-03-15,Davison,South Dakota,46035,2,1 +2020-03-16,Davison,South Dakota,46035,2,1 +2020-03-17,Davison,South Dakota,46035,2,1 +2020-03-18,Davison,South Dakota,46035,2,1 +2020-03-19,Davison,South Dakota,46035,2,1 +2020-03-20,Davison,South Dakota,46035,2,1 +2020-03-21,Davison,South Dakota,46035,2,1 +2020-03-22,Davison,South Dakota,46035,2,1 +2020-03-23,Davison,South Dakota,46035,2,1 +2020-03-24,Davison,South Dakota,46035,2,1 +2020-03-25,Davison,South Dakota,46035,2,1 +2020-03-26,Davison,South Dakota,46035,2,1 +2020-03-27,Davison,South Dakota,46035,2,1 +2020-03-28,Davison,South Dakota,46035,2,1 +2020-03-29,Davison,South Dakota,46035,2,1 +2020-03-30,Davison,South Dakota,46035,2,1 +2020-03-31,Davison,South Dakota,46035,2,1 +2020-04-01,Davison,South Dakota,46035,2,1 +2020-04-02,Davison,South Dakota,46035,3,1 +2020-04-03,Davison,South Dakota,46035,3,1 +2020-04-04,Davison,South Dakota,46035,3,1 +2020-04-05,Davison,South Dakota,46035,3,1 +2020-04-06,Davison,South Dakota,46035,3,1 +2020-04-07,Davison,South Dakota,46035,3,1 +2020-04-08,Davison,South Dakota,46035,3,1 +2020-04-09,Davison,South Dakota,46035,3,1 +2020-04-10,Davison,South Dakota,46035,3,1 +2020-04-11,Davison,South Dakota,46035,3,1 +2020-04-12,Davison,South Dakota,46035,3,1 +2020-04-13,Davison,South Dakota,46035,3,1 +2020-04-14,Davison,South Dakota,46035,3,1 +2020-04-15,Davison,South Dakota,46035,3,1 +2020-04-16,Davison,South Dakota,46035,3,1 +2020-04-17,Davison,South Dakota,46035,3,1 +2020-04-18,Davison,South Dakota,46035,3,1 +2020-04-19,Davison,South Dakota,46035,3,1 +2020-04-20,Davison,South Dakota,46035,3,1 +2020-04-21,Davison,South Dakota,46035,4,1 +2020-04-22,Davison,South Dakota,46035,5,1 +2020-04-23,Davison,South Dakota,46035,5,1 +2020-04-24,Davison,South Dakota,46035,5,1 +2020-04-25,Davison,South Dakota,46035,5,1 +2020-04-26,Davison,South Dakota,46035,6,1 +2020-04-27,Davison,South Dakota,46035,6,1 +2020-04-28,Davison,South Dakota,46035,6,1 +2020-04-29,Davison,South Dakota,46035,6,1 +2020-04-30,Davison,South Dakota,46035,6,1 +2020-05-01,Davison,South Dakota,46035,6,1 +2020-05-02,Davison,South Dakota,46035,6,1 +2020-05-03,Davison,South Dakota,46035,6,1 +2020-05-04,Davison,South Dakota,46035,6,1 +2020-05-05,Davison,South Dakota,46035,7,1 +2020-05-06,Davison,South Dakota,46035,7,1 +2020-05-07,Davison,South Dakota,46035,7,1 +2020-05-08,Davison,South Dakota,46035,7,1 +2020-05-09,Davison,South Dakota,46035,7,1 +2020-05-10,Davison,South Dakota,46035,7,1 +2020-05-11,Davison,South Dakota,46035,7,1 +2020-05-12,Davison,South Dakota,46035,8,1 +2020-05-13,Davison,South Dakota,46035,8,1 +2020-05-14,Davison,South Dakota,46035,9,1 +2020-05-15,Davison,South Dakota,46035,9,1 +2020-05-16,Davison,South Dakota,46035,9,1 +2020-05-17,Davison,South Dakota,46035,9,1 +2020-05-18,Davison,South Dakota,46035,9,1 +2020-05-19,Davison,South Dakota,46035,9,1 +2020-05-20,Davison,South Dakota,46035,9,1 +2020-05-21,Davison,South Dakota,46035,9,2 +2020-05-22,Davison,South Dakota,46035,9,2 +2020-05-23,Davison,South Dakota,46035,9,1 +2020-05-24,Davison,South Dakota,46035,9,1 +2020-05-25,Davison,South Dakota,46035,9,1 +2020-05-26,Davison,South Dakota,46035,10,1 +2020-05-27,Davison,South Dakota,46035,11,1 +2020-05-28,Davison,South Dakota,46035,13,1 +2020-05-29,Davison,South Dakota,46035,14,1 +2020-05-30,Davison,South Dakota,46035,15,1 +2020-05-31,Davison,South Dakota,46035,16,1 +2020-06-01,Davison,South Dakota,46035,16,1 +2020-06-02,Davison,South Dakota,46035,16,1 +2020-06-03,Davison,South Dakota,46035,20,1 +2020-06-04,Davison,South Dakota,46035,20,1 +2020-06-05,Davison,South Dakota,46035,24,1 +2020-06-06,Davison,South Dakota,46035,27,1 +2020-06-07,Davison,South Dakota,46035,27,1 +2020-06-08,Davison,South Dakota,46035,30,1 +2020-06-09,Davison,South Dakota,46035,30,1 +2020-06-10,Davison,South Dakota,46035,30,1 +2020-06-11,Davison,South Dakota,46035,30,1 +2020-06-12,Davison,South Dakota,46035,31,1 +2020-06-13,Davison,South Dakota,46035,32,1 +2020-06-14,Davison,South Dakota,46035,32,1 +2020-06-15,Davison,South Dakota,46035,33,1 +2020-06-16,Davison,South Dakota,46035,33,1 +2020-06-17,Davison,South Dakota,46035,33,1 +2020-06-18,Davison,South Dakota,46035,33,1 +2020-06-19,Davison,South Dakota,46035,33,1 +2020-06-20,Davison,South Dakota,46035,34,1 +2020-06-21,Davison,South Dakota,46035,35,1 +2020-06-22,Davison,South Dakota,46035,35,1 +2020-06-23,Davison,South Dakota,46035,35,1 +2020-06-24,Davison,South Dakota,46035,35,1 +2020-06-25,Davison,South Dakota,46035,35,1 +2020-06-26,Davison,South Dakota,46035,36,1 +2020-06-27,Davison,South Dakota,46035,37,1 +2020-06-28,Davison,South Dakota,46035,39,1 +2020-06-29,Davison,South Dakota,46035,40,1 +2020-06-30,Davison,South Dakota,46035,41,1 +2020-07-01,Davison,South Dakota,46035,41,1 +2020-07-02,Davison,South Dakota,46035,43,1 +2020-07-03,Davison,South Dakota,46035,44,1 +2020-07-04,Davison,South Dakota,46035,44,1 +2020-07-05,Davison,South Dakota,46035,46,1 +2020-07-06,Davison,South Dakota,46035,47,1 +2020-07-07,Davison,South Dakota,46035,47,1 +2020-07-08,Davison,South Dakota,46035,50,1 +2020-07-09,Davison,South Dakota,46035,51,1 +2020-04-29,Day,South Dakota,46037,1,0 +2020-04-30,Day,South Dakota,46037,1,0 +2020-05-01,Day,South Dakota,46037,4,0 +2020-05-02,Day,South Dakota,46037,8,0 +2020-05-03,Day,South Dakota,46037,8,0 +2020-05-04,Day,South Dakota,46037,8,0 +2020-05-05,Day,South Dakota,46037,8,0 +2020-05-06,Day,South Dakota,46037,10,0 +2020-05-07,Day,South Dakota,46037,10,0 +2020-05-08,Day,South Dakota,46037,10,0 +2020-05-09,Day,South Dakota,46037,10,0 +2020-05-10,Day,South Dakota,46037,10,0 +2020-05-11,Day,South Dakota,46037,10,0 +2020-05-12,Day,South Dakota,46037,10,0 +2020-05-13,Day,South Dakota,46037,10,0 +2020-05-14,Day,South Dakota,46037,10,0 +2020-05-15,Day,South Dakota,46037,10,0 +2020-05-16,Day,South Dakota,46037,10,0 +2020-05-17,Day,South Dakota,46037,11,0 +2020-05-18,Day,South Dakota,46037,11,0 +2020-05-19,Day,South Dakota,46037,11,0 +2020-05-20,Day,South Dakota,46037,11,0 +2020-05-21,Day,South Dakota,46037,11,0 +2020-05-22,Day,South Dakota,46037,11,0 +2020-05-23,Day,South Dakota,46037,12,0 +2020-05-24,Day,South Dakota,46037,12,0 +2020-05-25,Day,South Dakota,46037,12,0 +2020-05-26,Day,South Dakota,46037,12,0 +2020-05-27,Day,South Dakota,46037,13,0 +2020-05-28,Day,South Dakota,46037,13,0 +2020-05-29,Day,South Dakota,46037,13,0 +2020-05-30,Day,South Dakota,46037,13,0 +2020-05-31,Day,South Dakota,46037,13,0 +2020-06-01,Day,South Dakota,46037,13,0 +2020-06-02,Day,South Dakota,46037,13,0 +2020-06-03,Day,South Dakota,46037,13,0 +2020-06-04,Day,South Dakota,46037,14,0 +2020-06-05,Day,South Dakota,46037,14,0 +2020-06-06,Day,South Dakota,46037,13,0 +2020-06-07,Day,South Dakota,46037,13,0 +2020-06-08,Day,South Dakota,46037,13,0 +2020-06-09,Day,South Dakota,46037,13,0 +2020-06-10,Day,South Dakota,46037,13,0 +2020-06-11,Day,South Dakota,46037,13,0 +2020-06-12,Day,South Dakota,46037,13,0 +2020-06-13,Day,South Dakota,46037,13,0 +2020-06-14,Day,South Dakota,46037,13,0 +2020-06-15,Day,South Dakota,46037,13,0 +2020-06-16,Day,South Dakota,46037,13,0 +2020-06-17,Day,South Dakota,46037,13,0 +2020-06-18,Day,South Dakota,46037,13,0 +2020-06-19,Day,South Dakota,46037,13,0 +2020-06-20,Day,South Dakota,46037,13,0 +2020-06-21,Day,South Dakota,46037,13,0 +2020-06-22,Day,South Dakota,46037,13,0 +2020-06-23,Day,South Dakota,46037,13,0 +2020-06-24,Day,South Dakota,46037,13,0 +2020-06-25,Day,South Dakota,46037,13,0 +2020-06-26,Day,South Dakota,46037,13,0 +2020-06-27,Day,South Dakota,46037,15,0 +2020-06-28,Day,South Dakota,46037,16,0 +2020-06-29,Day,South Dakota,46037,16,0 +2020-06-30,Day,South Dakota,46037,16,0 +2020-07-01,Day,South Dakota,46037,16,0 +2020-07-02,Day,South Dakota,46037,17,0 +2020-07-03,Day,South Dakota,46037,17,0 +2020-07-04,Day,South Dakota,46037,17,0 +2020-07-05,Day,South Dakota,46037,18,0 +2020-07-06,Day,South Dakota,46037,18,0 +2020-07-07,Day,South Dakota,46037,19,0 +2020-07-08,Day,South Dakota,46037,19,0 +2020-07-09,Day,South Dakota,46037,19,0 +2020-03-28,Deuel,South Dakota,46039,1,0 +2020-03-29,Deuel,South Dakota,46039,1,0 +2020-03-30,Deuel,South Dakota,46039,1,0 +2020-03-31,Deuel,South Dakota,46039,1,0 +2020-04-01,Deuel,South Dakota,46039,1,0 +2020-04-02,Deuel,South Dakota,46039,1,0 +2020-04-03,Deuel,South Dakota,46039,1,0 +2020-04-04,Deuel,South Dakota,46039,1,0 +2020-04-05,Deuel,South Dakota,46039,1,0 +2020-04-06,Deuel,South Dakota,46039,1,0 +2020-04-07,Deuel,South Dakota,46039,1,0 +2020-04-08,Deuel,South Dakota,46039,1,0 +2020-04-09,Deuel,South Dakota,46039,1,0 +2020-04-10,Deuel,South Dakota,46039,1,0 +2020-04-11,Deuel,South Dakota,46039,1,0 +2020-04-12,Deuel,South Dakota,46039,1,0 +2020-04-13,Deuel,South Dakota,46039,1,0 +2020-04-14,Deuel,South Dakota,46039,1,0 +2020-04-15,Deuel,South Dakota,46039,1,0 +2020-04-16,Deuel,South Dakota,46039,1,0 +2020-04-17,Deuel,South Dakota,46039,1,0 +2020-04-18,Deuel,South Dakota,46039,1,0 +2020-04-19,Deuel,South Dakota,46039,1,0 +2020-04-20,Deuel,South Dakota,46039,1,0 +2020-04-21,Deuel,South Dakota,46039,1,0 +2020-04-22,Deuel,South Dakota,46039,1,0 +2020-04-23,Deuel,South Dakota,46039,1,0 +2020-04-24,Deuel,South Dakota,46039,1,0 +2020-04-25,Deuel,South Dakota,46039,1,0 +2020-04-26,Deuel,South Dakota,46039,1,0 +2020-04-27,Deuel,South Dakota,46039,1,0 +2020-04-28,Deuel,South Dakota,46039,1,0 +2020-04-29,Deuel,South Dakota,46039,1,0 +2020-04-30,Deuel,South Dakota,46039,1,0 +2020-05-01,Deuel,South Dakota,46039,1,0 +2020-05-02,Deuel,South Dakota,46039,1,0 +2020-05-03,Deuel,South Dakota,46039,1,0 +2020-05-04,Deuel,South Dakota,46039,1,0 +2020-05-05,Deuel,South Dakota,46039,1,0 +2020-05-06,Deuel,South Dakota,46039,1,0 +2020-05-07,Deuel,South Dakota,46039,1,0 +2020-05-08,Deuel,South Dakota,46039,1,0 +2020-05-09,Deuel,South Dakota,46039,1,0 +2020-05-10,Deuel,South Dakota,46039,1,0 +2020-05-11,Deuel,South Dakota,46039,1,0 +2020-05-12,Deuel,South Dakota,46039,1,0 +2020-05-13,Deuel,South Dakota,46039,1,0 +2020-05-14,Deuel,South Dakota,46039,1,0 +2020-05-15,Deuel,South Dakota,46039,1,0 +2020-05-16,Deuel,South Dakota,46039,1,0 +2020-05-17,Deuel,South Dakota,46039,1,0 +2020-05-18,Deuel,South Dakota,46039,1,0 +2020-05-19,Deuel,South Dakota,46039,1,0 +2020-05-20,Deuel,South Dakota,46039,1,0 +2020-05-21,Deuel,South Dakota,46039,1,0 +2020-05-22,Deuel,South Dakota,46039,1,0 +2020-05-23,Deuel,South Dakota,46039,1,0 +2020-05-24,Deuel,South Dakota,46039,1,0 +2020-05-25,Deuel,South Dakota,46039,1,0 +2020-05-26,Deuel,South Dakota,46039,1,0 +2020-05-27,Deuel,South Dakota,46039,1,0 +2020-05-28,Deuel,South Dakota,46039,1,0 +2020-05-29,Deuel,South Dakota,46039,1,0 +2020-05-30,Deuel,South Dakota,46039,1,0 +2020-05-31,Deuel,South Dakota,46039,1,0 +2020-06-01,Deuel,South Dakota,46039,1,0 +2020-06-02,Deuel,South Dakota,46039,1,0 +2020-06-03,Deuel,South Dakota,46039,1,0 +2020-06-04,Deuel,South Dakota,46039,1,0 +2020-06-05,Deuel,South Dakota,46039,1,0 +2020-06-06,Deuel,South Dakota,46039,1,0 +2020-06-07,Deuel,South Dakota,46039,1,0 +2020-06-08,Deuel,South Dakota,46039,1,0 +2020-06-09,Deuel,South Dakota,46039,1,0 +2020-06-10,Deuel,South Dakota,46039,1,0 +2020-06-11,Deuel,South Dakota,46039,1,0 +2020-06-12,Deuel,South Dakota,46039,1,0 +2020-06-13,Deuel,South Dakota,46039,1,0 +2020-06-14,Deuel,South Dakota,46039,1,0 +2020-06-15,Deuel,South Dakota,46039,1,0 +2020-06-16,Deuel,South Dakota,46039,1,0 +2020-06-17,Deuel,South Dakota,46039,1,0 +2020-06-18,Deuel,South Dakota,46039,1,0 +2020-06-19,Deuel,South Dakota,46039,1,0 +2020-06-20,Deuel,South Dakota,46039,1,0 +2020-06-21,Deuel,South Dakota,46039,1,0 +2020-06-22,Deuel,South Dakota,46039,1,0 +2020-06-23,Deuel,South Dakota,46039,1,0 +2020-06-24,Deuel,South Dakota,46039,1,0 +2020-06-25,Deuel,South Dakota,46039,1,0 +2020-06-26,Deuel,South Dakota,46039,3,0 +2020-06-27,Deuel,South Dakota,46039,3,0 +2020-06-28,Deuel,South Dakota,46039,3,0 +2020-06-29,Deuel,South Dakota,46039,3,0 +2020-06-30,Deuel,South Dakota,46039,3,0 +2020-07-01,Deuel,South Dakota,46039,3,0 +2020-07-02,Deuel,South Dakota,46039,3,0 +2020-07-03,Deuel,South Dakota,46039,3,0 +2020-07-04,Deuel,South Dakota,46039,4,0 +2020-07-05,Deuel,South Dakota,46039,4,0 +2020-07-06,Deuel,South Dakota,46039,4,0 +2020-07-07,Deuel,South Dakota,46039,4,0 +2020-07-08,Deuel,South Dakota,46039,4,0 +2020-07-09,Deuel,South Dakota,46039,4,0 +2020-06-06,Dewey,South Dakota,46041,1,0 +2020-06-07,Dewey,South Dakota,46041,1,0 +2020-06-08,Dewey,South Dakota,46041,1,0 +2020-06-09,Dewey,South Dakota,46041,1,0 +2020-06-10,Dewey,South Dakota,46041,1,0 +2020-06-11,Dewey,South Dakota,46041,2,0 +2020-06-12,Dewey,South Dakota,46041,2,0 +2020-06-13,Dewey,South Dakota,46041,2,0 +2020-06-14,Dewey,South Dakota,46041,2,0 +2020-06-15,Dewey,South Dakota,46041,2,0 +2020-06-16,Dewey,South Dakota,46041,4,0 +2020-06-17,Dewey,South Dakota,46041,4,0 +2020-06-18,Dewey,South Dakota,46041,4,0 +2020-06-19,Dewey,South Dakota,46041,4,0 +2020-06-20,Dewey,South Dakota,46041,4,0 +2020-06-21,Dewey,South Dakota,46041,4,0 +2020-06-22,Dewey,South Dakota,46041,4,0 +2020-06-23,Dewey,South Dakota,46041,4,0 +2020-06-24,Dewey,South Dakota,46041,4,0 +2020-06-25,Dewey,South Dakota,46041,4,0 +2020-06-26,Dewey,South Dakota,46041,4,0 +2020-06-27,Dewey,South Dakota,46041,4,0 +2020-06-28,Dewey,South Dakota,46041,4,0 +2020-06-29,Dewey,South Dakota,46041,4,0 +2020-06-30,Dewey,South Dakota,46041,4,0 +2020-07-01,Dewey,South Dakota,46041,5,0 +2020-07-02,Dewey,South Dakota,46041,6,0 +2020-07-03,Dewey,South Dakota,46041,8,0 +2020-07-04,Dewey,South Dakota,46041,8,0 +2020-07-05,Dewey,South Dakota,46041,8,0 +2020-07-06,Dewey,South Dakota,46041,8,0 +2020-07-07,Dewey,South Dakota,46041,9,0 +2020-07-08,Dewey,South Dakota,46041,12,0 +2020-07-09,Dewey,South Dakota,46041,27,0 +2020-04-27,Douglas,South Dakota,46043,1,0 +2020-04-28,Douglas,South Dakota,46043,1,0 +2020-04-29,Douglas,South Dakota,46043,1,0 +2020-04-30,Douglas,South Dakota,46043,1,0 +2020-05-01,Douglas,South Dakota,46043,1,0 +2020-05-02,Douglas,South Dakota,46043,1,0 +2020-05-03,Douglas,South Dakota,46043,1,0 +2020-05-04,Douglas,South Dakota,46043,1,0 +2020-05-05,Douglas,South Dakota,46043,1,0 +2020-05-06,Douglas,South Dakota,46043,1,0 +2020-05-07,Douglas,South Dakota,46043,1,0 +2020-05-08,Douglas,South Dakota,46043,1,0 +2020-05-09,Douglas,South Dakota,46043,1,0 +2020-05-10,Douglas,South Dakota,46043,1,0 +2020-05-11,Douglas,South Dakota,46043,1,0 +2020-05-12,Douglas,South Dakota,46043,1,0 +2020-05-13,Douglas,South Dakota,46043,1,0 +2020-05-14,Douglas,South Dakota,46043,1,0 +2020-05-15,Douglas,South Dakota,46043,1,0 +2020-05-16,Douglas,South Dakota,46043,1,0 +2020-05-17,Douglas,South Dakota,46043,1,0 +2020-05-18,Douglas,South Dakota,46043,1,0 +2020-05-19,Douglas,South Dakota,46043,1,0 +2020-05-20,Douglas,South Dakota,46043,1,0 +2020-05-21,Douglas,South Dakota,46043,1,0 +2020-05-22,Douglas,South Dakota,46043,1,0 +2020-05-23,Douglas,South Dakota,46043,2,0 +2020-05-24,Douglas,South Dakota,46043,2,0 +2020-05-25,Douglas,South Dakota,46043,3,0 +2020-05-26,Douglas,South Dakota,46043,3,0 +2020-05-27,Douglas,South Dakota,46043,3,0 +2020-05-28,Douglas,South Dakota,46043,3,0 +2020-05-29,Douglas,South Dakota,46043,3,0 +2020-05-30,Douglas,South Dakota,46043,3,0 +2020-05-31,Douglas,South Dakota,46043,3,0 +2020-06-01,Douglas,South Dakota,46043,3,0 +2020-06-02,Douglas,South Dakota,46043,3,0 +2020-06-03,Douglas,South Dakota,46043,3,0 +2020-06-04,Douglas,South Dakota,46043,3,0 +2020-06-05,Douglas,South Dakota,46043,3,0 +2020-06-06,Douglas,South Dakota,46043,3,0 +2020-06-07,Douglas,South Dakota,46043,4,0 +2020-06-08,Douglas,South Dakota,46043,4,0 +2020-06-09,Douglas,South Dakota,46043,4,0 +2020-06-10,Douglas,South Dakota,46043,4,0 +2020-06-11,Douglas,South Dakota,46043,4,0 +2020-06-12,Douglas,South Dakota,46043,4,0 +2020-06-13,Douglas,South Dakota,46043,4,0 +2020-06-14,Douglas,South Dakota,46043,4,0 +2020-06-15,Douglas,South Dakota,46043,4,0 +2020-06-16,Douglas,South Dakota,46043,4,0 +2020-06-17,Douglas,South Dakota,46043,4,0 +2020-06-18,Douglas,South Dakota,46043,4,0 +2020-06-19,Douglas,South Dakota,46043,4,0 +2020-06-20,Douglas,South Dakota,46043,4,0 +2020-06-21,Douglas,South Dakota,46043,4,0 +2020-06-22,Douglas,South Dakota,46043,4,0 +2020-06-23,Douglas,South Dakota,46043,4,0 +2020-06-24,Douglas,South Dakota,46043,4,0 +2020-06-25,Douglas,South Dakota,46043,4,0 +2020-06-26,Douglas,South Dakota,46043,4,0 +2020-06-27,Douglas,South Dakota,46043,4,0 +2020-06-28,Douglas,South Dakota,46043,4,0 +2020-06-29,Douglas,South Dakota,46043,4,0 +2020-06-30,Douglas,South Dakota,46043,4,0 +2020-07-01,Douglas,South Dakota,46043,4,0 +2020-07-02,Douglas,South Dakota,46043,5,0 +2020-07-03,Douglas,South Dakota,46043,7,0 +2020-07-04,Douglas,South Dakota,46043,7,0 +2020-07-05,Douglas,South Dakota,46043,9,0 +2020-07-06,Douglas,South Dakota,46043,9,0 +2020-07-07,Douglas,South Dakota,46043,10,0 +2020-07-08,Douglas,South Dakota,46043,10,0 +2020-07-09,Douglas,South Dakota,46043,10,0 +2020-05-29,Edmunds,South Dakota,46045,1,0 +2020-05-30,Edmunds,South Dakota,46045,1,0 +2020-05-31,Edmunds,South Dakota,46045,1,0 +2020-06-01,Edmunds,South Dakota,46045,1,0 +2020-06-02,Edmunds,South Dakota,46045,1,0 +2020-06-03,Edmunds,South Dakota,46045,3,0 +2020-06-04,Edmunds,South Dakota,46045,3,0 +2020-06-05,Edmunds,South Dakota,46045,3,0 +2020-06-06,Edmunds,South Dakota,46045,3,0 +2020-06-07,Edmunds,South Dakota,46045,3,0 +2020-06-08,Edmunds,South Dakota,46045,4,0 +2020-06-09,Edmunds,South Dakota,46045,4,0 +2020-06-10,Edmunds,South Dakota,46045,4,0 +2020-06-11,Edmunds,South Dakota,46045,4,0 +2020-06-12,Edmunds,South Dakota,46045,4,0 +2020-06-13,Edmunds,South Dakota,46045,4,0 +2020-06-14,Edmunds,South Dakota,46045,4,0 +2020-06-15,Edmunds,South Dakota,46045,4,0 +2020-06-16,Edmunds,South Dakota,46045,4,0 +2020-06-17,Edmunds,South Dakota,46045,4,0 +2020-06-18,Edmunds,South Dakota,46045,4,0 +2020-06-19,Edmunds,South Dakota,46045,4,0 +2020-06-20,Edmunds,South Dakota,46045,4,0 +2020-06-21,Edmunds,South Dakota,46045,5,0 +2020-06-22,Edmunds,South Dakota,46045,5,0 +2020-06-23,Edmunds,South Dakota,46045,6,0 +2020-06-24,Edmunds,South Dakota,46045,6,0 +2020-06-25,Edmunds,South Dakota,46045,6,0 +2020-06-26,Edmunds,South Dakota,46045,6,0 +2020-06-27,Edmunds,South Dakota,46045,7,0 +2020-06-28,Edmunds,South Dakota,46045,7,0 +2020-06-29,Edmunds,South Dakota,46045,7,0 +2020-06-30,Edmunds,South Dakota,46045,7,0 +2020-07-01,Edmunds,South Dakota,46045,7,0 +2020-07-02,Edmunds,South Dakota,46045,7,0 +2020-07-03,Edmunds,South Dakota,46045,7,0 +2020-07-04,Edmunds,South Dakota,46045,8,0 +2020-07-05,Edmunds,South Dakota,46045,8,0 +2020-07-06,Edmunds,South Dakota,46045,8,0 +2020-07-07,Edmunds,South Dakota,46045,8,0 +2020-07-08,Edmunds,South Dakota,46045,8,0 +2020-07-09,Edmunds,South Dakota,46045,8,0 +2020-03-29,Fall River,South Dakota,46047,1,0 +2020-03-30,Fall River,South Dakota,46047,1,0 +2020-03-31,Fall River,South Dakota,46047,1,0 +2020-04-01,Fall River,South Dakota,46047,1,0 +2020-04-02,Fall River,South Dakota,46047,1,0 +2020-04-03,Fall River,South Dakota,46047,1,0 +2020-04-04,Fall River,South Dakota,46047,1,0 +2020-04-05,Fall River,South Dakota,46047,1,0 +2020-04-06,Fall River,South Dakota,46047,1,0 +2020-04-07,Fall River,South Dakota,46047,1,0 +2020-04-08,Fall River,South Dakota,46047,1,0 +2020-04-09,Fall River,South Dakota,46047,1,0 +2020-04-10,Fall River,South Dakota,46047,1,0 +2020-04-11,Fall River,South Dakota,46047,1,0 +2020-04-12,Fall River,South Dakota,46047,1,0 +2020-04-13,Fall River,South Dakota,46047,1,0 +2020-04-14,Fall River,South Dakota,46047,1,0 +2020-04-15,Fall River,South Dakota,46047,1,0 +2020-04-16,Fall River,South Dakota,46047,1,0 +2020-04-17,Fall River,South Dakota,46047,1,0 +2020-04-18,Fall River,South Dakota,46047,1,0 +2020-04-19,Fall River,South Dakota,46047,1,0 +2020-04-20,Fall River,South Dakota,46047,1,0 +2020-04-21,Fall River,South Dakota,46047,1,0 +2020-04-22,Fall River,South Dakota,46047,1,0 +2020-04-23,Fall River,South Dakota,46047,1,0 +2020-04-24,Fall River,South Dakota,46047,1,0 +2020-04-25,Fall River,South Dakota,46047,1,0 +2020-04-26,Fall River,South Dakota,46047,1,0 +2020-04-27,Fall River,South Dakota,46047,1,0 +2020-04-28,Fall River,South Dakota,46047,1,0 +2020-04-29,Fall River,South Dakota,46047,1,0 +2020-04-30,Fall River,South Dakota,46047,1,0 +2020-05-01,Fall River,South Dakota,46047,1,0 +2020-05-02,Fall River,South Dakota,46047,1,0 +2020-05-03,Fall River,South Dakota,46047,2,0 +2020-05-04,Fall River,South Dakota,46047,2,0 +2020-05-05,Fall River,South Dakota,46047,2,0 +2020-05-06,Fall River,South Dakota,46047,2,0 +2020-05-07,Fall River,South Dakota,46047,2,0 +2020-05-08,Fall River,South Dakota,46047,2,0 +2020-05-09,Fall River,South Dakota,46047,2,0 +2020-05-10,Fall River,South Dakota,46047,2,0 +2020-05-11,Fall River,South Dakota,46047,2,0 +2020-05-12,Fall River,South Dakota,46047,2,0 +2020-05-13,Fall River,South Dakota,46047,2,0 +2020-05-14,Fall River,South Dakota,46047,2,0 +2020-05-15,Fall River,South Dakota,46047,2,0 +2020-05-16,Fall River,South Dakota,46047,2,0 +2020-05-17,Fall River,South Dakota,46047,2,0 +2020-05-18,Fall River,South Dakota,46047,2,0 +2020-05-19,Fall River,South Dakota,46047,3,0 +2020-05-20,Fall River,South Dakota,46047,4,0 +2020-05-21,Fall River,South Dakota,46047,4,0 +2020-05-22,Fall River,South Dakota,46047,4,0 +2020-05-23,Fall River,South Dakota,46047,4,0 +2020-05-24,Fall River,South Dakota,46047,4,0 +2020-05-25,Fall River,South Dakota,46047,4,0 +2020-05-26,Fall River,South Dakota,46047,4,0 +2020-05-27,Fall River,South Dakota,46047,4,0 +2020-05-28,Fall River,South Dakota,46047,4,0 +2020-05-29,Fall River,South Dakota,46047,4,0 +2020-05-30,Fall River,South Dakota,46047,4,0 +2020-05-31,Fall River,South Dakota,46047,4,0 +2020-06-01,Fall River,South Dakota,46047,4,0 +2020-06-02,Fall River,South Dakota,46047,5,0 +2020-06-03,Fall River,South Dakota,46047,6,0 +2020-06-04,Fall River,South Dakota,46047,6,0 +2020-06-05,Fall River,South Dakota,46047,6,0 +2020-06-06,Fall River,South Dakota,46047,6,0 +2020-06-07,Fall River,South Dakota,46047,6,0 +2020-06-08,Fall River,South Dakota,46047,6,0 +2020-06-09,Fall River,South Dakota,46047,6,0 +2020-06-10,Fall River,South Dakota,46047,6,0 +2020-06-11,Fall River,South Dakota,46047,6,0 +2020-06-12,Fall River,South Dakota,46047,6,0 +2020-06-13,Fall River,South Dakota,46047,6,0 +2020-06-14,Fall River,South Dakota,46047,6,0 +2020-06-15,Fall River,South Dakota,46047,6,0 +2020-06-16,Fall River,South Dakota,46047,6,0 +2020-06-17,Fall River,South Dakota,46047,6,0 +2020-06-18,Fall River,South Dakota,46047,6,0 +2020-06-19,Fall River,South Dakota,46047,6,0 +2020-06-20,Fall River,South Dakota,46047,6,0 +2020-06-21,Fall River,South Dakota,46047,6,0 +2020-06-22,Fall River,South Dakota,46047,7,0 +2020-06-23,Fall River,South Dakota,46047,7,0 +2020-06-24,Fall River,South Dakota,46047,7,0 +2020-06-25,Fall River,South Dakota,46047,9,0 +2020-06-26,Fall River,South Dakota,46047,10,0 +2020-06-27,Fall River,South Dakota,46047,10,0 +2020-06-28,Fall River,South Dakota,46047,11,0 +2020-06-29,Fall River,South Dakota,46047,12,0 +2020-06-30,Fall River,South Dakota,46047,12,0 +2020-07-01,Fall River,South Dakota,46047,12,0 +2020-07-02,Fall River,South Dakota,46047,12,0 +2020-07-03,Fall River,South Dakota,46047,12,0 +2020-07-04,Fall River,South Dakota,46047,12,0 +2020-07-05,Fall River,South Dakota,46047,12,0 +2020-07-06,Fall River,South Dakota,46047,12,0 +2020-07-07,Fall River,South Dakota,46047,12,0 +2020-07-08,Fall River,South Dakota,46047,13,0 +2020-07-09,Fall River,South Dakota,46047,13,0 +2020-03-27,Faulk,South Dakota,46049,1,0 +2020-03-28,Faulk,South Dakota,46049,1,0 +2020-03-29,Faulk,South Dakota,46049,1,0 +2020-03-30,Faulk,South Dakota,46049,1,0 +2020-03-31,Faulk,South Dakota,46049,1,0 +2020-04-01,Faulk,South Dakota,46049,1,0 +2020-04-02,Faulk,South Dakota,46049,1,0 +2020-04-03,Faulk,South Dakota,46049,1,0 +2020-04-04,Faulk,South Dakota,46049,1,0 +2020-04-05,Faulk,South Dakota,46049,1,0 +2020-04-06,Faulk,South Dakota,46049,1,0 +2020-04-07,Faulk,South Dakota,46049,1,0 +2020-04-08,Faulk,South Dakota,46049,1,0 +2020-04-09,Faulk,South Dakota,46049,1,0 +2020-04-10,Faulk,South Dakota,46049,1,0 +2020-04-11,Faulk,South Dakota,46049,1,0 +2020-04-12,Faulk,South Dakota,46049,1,0 +2020-04-13,Faulk,South Dakota,46049,1,0 +2020-04-14,Faulk,South Dakota,46049,1,0 +2020-04-15,Faulk,South Dakota,46049,1,0 +2020-04-16,Faulk,South Dakota,46049,1,0 +2020-04-17,Faulk,South Dakota,46049,1,0 +2020-04-18,Faulk,South Dakota,46049,1,0 +2020-04-19,Faulk,South Dakota,46049,1,0 +2020-04-20,Faulk,South Dakota,46049,1,0 +2020-04-21,Faulk,South Dakota,46049,1,0 +2020-04-22,Faulk,South Dakota,46049,1,0 +2020-04-23,Faulk,South Dakota,46049,1,0 +2020-04-24,Faulk,South Dakota,46049,1,0 +2020-04-25,Faulk,South Dakota,46049,1,0 +2020-04-26,Faulk,South Dakota,46049,1,0 +2020-04-27,Faulk,South Dakota,46049,1,0 +2020-04-28,Faulk,South Dakota,46049,1,0 +2020-04-29,Faulk,South Dakota,46049,1,0 +2020-04-30,Faulk,South Dakota,46049,1,0 +2020-05-01,Faulk,South Dakota,46049,1,0 +2020-05-02,Faulk,South Dakota,46049,1,0 +2020-05-03,Faulk,South Dakota,46049,1,0 +2020-05-04,Faulk,South Dakota,46049,1,0 +2020-05-05,Faulk,South Dakota,46049,1,0 +2020-05-06,Faulk,South Dakota,46049,1,0 +2020-05-07,Faulk,South Dakota,46049,1,0 +2020-05-08,Faulk,South Dakota,46049,1,0 +2020-05-09,Faulk,South Dakota,46049,1,0 +2020-05-10,Faulk,South Dakota,46049,1,0 +2020-05-11,Faulk,South Dakota,46049,1,0 +2020-05-12,Faulk,South Dakota,46049,1,0 +2020-05-13,Faulk,South Dakota,46049,1,0 +2020-05-14,Faulk,South Dakota,46049,1,0 +2020-05-15,Faulk,South Dakota,46049,1,0 +2020-05-16,Faulk,South Dakota,46049,1,0 +2020-05-17,Faulk,South Dakota,46049,1,0 +2020-05-18,Faulk,South Dakota,46049,1,0 +2020-05-19,Faulk,South Dakota,46049,1,0 +2020-05-20,Faulk,South Dakota,46049,1,0 +2020-05-21,Faulk,South Dakota,46049,1,0 +2020-05-22,Faulk,South Dakota,46049,1,0 +2020-05-23,Faulk,South Dakota,46049,1,0 +2020-05-24,Faulk,South Dakota,46049,1,0 +2020-05-25,Faulk,South Dakota,46049,1,0 +2020-05-26,Faulk,South Dakota,46049,1,0 +2020-05-27,Faulk,South Dakota,46049,1,0 +2020-05-28,Faulk,South Dakota,46049,1,0 +2020-05-29,Faulk,South Dakota,46049,1,0 +2020-05-30,Faulk,South Dakota,46049,1,0 +2020-05-31,Faulk,South Dakota,46049,1,0 +2020-06-01,Faulk,South Dakota,46049,1,0 +2020-06-02,Faulk,South Dakota,46049,1,0 +2020-06-03,Faulk,South Dakota,46049,1,0 +2020-06-04,Faulk,South Dakota,46049,1,0 +2020-06-05,Faulk,South Dakota,46049,1,0 +2020-06-06,Faulk,South Dakota,46049,1,0 +2020-06-07,Faulk,South Dakota,46049,2,0 +2020-06-08,Faulk,South Dakota,46049,2,0 +2020-06-09,Faulk,South Dakota,46049,6,0 +2020-06-10,Faulk,South Dakota,46049,15,0 +2020-06-11,Faulk,South Dakota,46049,15,0 +2020-06-12,Faulk,South Dakota,46049,19,0 +2020-06-13,Faulk,South Dakota,46049,19,0 +2020-06-14,Faulk,South Dakota,46049,20,0 +2020-06-15,Faulk,South Dakota,46049,20,0 +2020-06-16,Faulk,South Dakota,46049,20,0 +2020-06-17,Faulk,South Dakota,46049,20,0 +2020-06-18,Faulk,South Dakota,46049,21,0 +2020-06-19,Faulk,South Dakota,46049,21,0 +2020-06-20,Faulk,South Dakota,46049,21,0 +2020-06-21,Faulk,South Dakota,46049,22,0 +2020-06-22,Faulk,South Dakota,46049,22,0 +2020-06-23,Faulk,South Dakota,46049,22,0 +2020-06-24,Faulk,South Dakota,46049,23,0 +2020-06-25,Faulk,South Dakota,46049,23,1 +2020-06-26,Faulk,South Dakota,46049,23,1 +2020-06-27,Faulk,South Dakota,46049,23,1 +2020-06-28,Faulk,South Dakota,46049,23,1 +2020-06-29,Faulk,South Dakota,46049,23,1 +2020-06-30,Faulk,South Dakota,46049,23,1 +2020-07-01,Faulk,South Dakota,46049,23,1 +2020-07-02,Faulk,South Dakota,46049,23,1 +2020-07-03,Faulk,South Dakota,46049,23,1 +2020-07-04,Faulk,South Dakota,46049,23,1 +2020-07-05,Faulk,South Dakota,46049,23,1 +2020-07-06,Faulk,South Dakota,46049,23,1 +2020-07-07,Faulk,South Dakota,46049,23,1 +2020-07-08,Faulk,South Dakota,46049,23,1 +2020-07-09,Faulk,South Dakota,46049,23,1 +2020-05-06,Grant,South Dakota,46051,2,0 +2020-05-07,Grant,South Dakota,46051,2,0 +2020-05-08,Grant,South Dakota,46051,2,0 +2020-05-09,Grant,South Dakota,46051,2,0 +2020-05-10,Grant,South Dakota,46051,3,0 +2020-05-11,Grant,South Dakota,46051,3,0 +2020-05-12,Grant,South Dakota,46051,3,0 +2020-05-13,Grant,South Dakota,46051,4,0 +2020-05-14,Grant,South Dakota,46051,5,0 +2020-05-15,Grant,South Dakota,46051,7,0 +2020-05-16,Grant,South Dakota,46051,9,0 +2020-05-17,Grant,South Dakota,46051,9,0 +2020-05-18,Grant,South Dakota,46051,9,0 +2020-05-19,Grant,South Dakota,46051,9,0 +2020-05-20,Grant,South Dakota,46051,9,0 +2020-05-21,Grant,South Dakota,46051,9,0 +2020-05-22,Grant,South Dakota,46051,10,0 +2020-05-23,Grant,South Dakota,46051,10,0 +2020-05-24,Grant,South Dakota,46051,10,0 +2020-05-25,Grant,South Dakota,46051,10,0 +2020-05-26,Grant,South Dakota,46051,11,0 +2020-05-27,Grant,South Dakota,46051,11,0 +2020-05-28,Grant,South Dakota,46051,11,0 +2020-05-29,Grant,South Dakota,46051,13,0 +2020-05-30,Grant,South Dakota,46051,13,0 +2020-05-31,Grant,South Dakota,46051,13,0 +2020-06-01,Grant,South Dakota,46051,13,0 +2020-06-02,Grant,South Dakota,46051,13,0 +2020-06-03,Grant,South Dakota,46051,13,0 +2020-06-04,Grant,South Dakota,46051,13,0 +2020-06-05,Grant,South Dakota,46051,13,0 +2020-06-06,Grant,South Dakota,46051,13,0 +2020-06-07,Grant,South Dakota,46051,13,0 +2020-06-08,Grant,South Dakota,46051,13,0 +2020-06-09,Grant,South Dakota,46051,13,0 +2020-06-10,Grant,South Dakota,46051,13,0 +2020-06-11,Grant,South Dakota,46051,13,0 +2020-06-12,Grant,South Dakota,46051,13,0 +2020-06-13,Grant,South Dakota,46051,13,0 +2020-06-14,Grant,South Dakota,46051,13,0 +2020-06-15,Grant,South Dakota,46051,13,0 +2020-06-16,Grant,South Dakota,46051,13,0 +2020-06-17,Grant,South Dakota,46051,13,0 +2020-06-18,Grant,South Dakota,46051,13,0 +2020-06-19,Grant,South Dakota,46051,13,0 +2020-06-20,Grant,South Dakota,46051,13,0 +2020-06-21,Grant,South Dakota,46051,13,0 +2020-06-22,Grant,South Dakota,46051,13,0 +2020-06-23,Grant,South Dakota,46051,13,0 +2020-06-24,Grant,South Dakota,46051,13,0 +2020-06-25,Grant,South Dakota,46051,13,0 +2020-06-26,Grant,South Dakota,46051,13,0 +2020-06-27,Grant,South Dakota,46051,13,0 +2020-06-28,Grant,South Dakota,46051,13,0 +2020-06-29,Grant,South Dakota,46051,13,0 +2020-06-30,Grant,South Dakota,46051,13,0 +2020-07-01,Grant,South Dakota,46051,13,0 +2020-07-02,Grant,South Dakota,46051,13,0 +2020-07-03,Grant,South Dakota,46051,13,0 +2020-07-04,Grant,South Dakota,46051,13,0 +2020-07-05,Grant,South Dakota,46051,13,0 +2020-07-06,Grant,South Dakota,46051,13,0 +2020-07-07,Grant,South Dakota,46051,14,0 +2020-07-08,Grant,South Dakota,46051,14,0 +2020-07-09,Grant,South Dakota,46051,16,0 +2020-05-31,Gregory,South Dakota,46053,1,0 +2020-06-01,Gregory,South Dakota,46053,1,0 +2020-06-02,Gregory,South Dakota,46053,1,0 +2020-06-03,Gregory,South Dakota,46053,1,0 +2020-06-04,Gregory,South Dakota,46053,1,0 +2020-06-05,Gregory,South Dakota,46053,1,0 +2020-06-06,Gregory,South Dakota,46053,1,0 +2020-06-07,Gregory,South Dakota,46053,1,0 +2020-06-08,Gregory,South Dakota,46053,1,0 +2020-06-09,Gregory,South Dakota,46053,1,0 +2020-06-10,Gregory,South Dakota,46053,1,0 +2020-06-11,Gregory,South Dakota,46053,1,0 +2020-06-12,Gregory,South Dakota,46053,1,0 +2020-06-13,Gregory,South Dakota,46053,1,0 +2020-06-14,Gregory,South Dakota,46053,1,0 +2020-06-15,Gregory,South Dakota,46053,1,0 +2020-06-16,Gregory,South Dakota,46053,1,0 +2020-06-17,Gregory,South Dakota,46053,1,0 +2020-06-18,Gregory,South Dakota,46053,1,0 +2020-06-19,Gregory,South Dakota,46053,1,0 +2020-06-20,Gregory,South Dakota,46053,1,0 +2020-06-21,Gregory,South Dakota,46053,1,0 +2020-06-22,Gregory,South Dakota,46053,1,0 +2020-06-23,Gregory,South Dakota,46053,1,0 +2020-06-24,Gregory,South Dakota,46053,1,0 +2020-06-25,Gregory,South Dakota,46053,1,0 +2020-06-26,Gregory,South Dakota,46053,2,0 +2020-06-27,Gregory,South Dakota,46053,2,0 +2020-06-28,Gregory,South Dakota,46053,2,0 +2020-06-29,Gregory,South Dakota,46053,3,0 +2020-06-30,Gregory,South Dakota,46053,3,0 +2020-07-01,Gregory,South Dakota,46053,4,0 +2020-07-02,Gregory,South Dakota,46053,4,0 +2020-07-03,Gregory,South Dakota,46053,4,0 +2020-07-04,Gregory,South Dakota,46053,4,0 +2020-07-05,Gregory,South Dakota,46053,4,0 +2020-07-06,Gregory,South Dakota,46053,4,0 +2020-07-07,Gregory,South Dakota,46053,4,0 +2020-07-08,Gregory,South Dakota,46053,4,0 +2020-07-09,Gregory,South Dakota,46053,5,0 +2020-07-06,Haakon,South Dakota,46055,1,0 +2020-07-07,Haakon,South Dakota,46055,1,0 +2020-07-08,Haakon,South Dakota,46055,1,0 +2020-07-09,Haakon,South Dakota,46055,1,0 +2020-03-28,Hamlin,South Dakota,46057,1,0 +2020-03-29,Hamlin,South Dakota,46057,1,0 +2020-03-30,Hamlin,South Dakota,46057,1,0 +2020-03-31,Hamlin,South Dakota,46057,1,0 +2020-04-01,Hamlin,South Dakota,46057,1,0 +2020-04-02,Hamlin,South Dakota,46057,1,0 +2020-04-03,Hamlin,South Dakota,46057,1,0 +2020-04-04,Hamlin,South Dakota,46057,1,0 +2020-04-05,Hamlin,South Dakota,46057,1,0 +2020-04-06,Hamlin,South Dakota,46057,1,0 +2020-04-07,Hamlin,South Dakota,46057,1,0 +2020-04-08,Hamlin,South Dakota,46057,1,0 +2020-04-09,Hamlin,South Dakota,46057,1,0 +2020-04-10,Hamlin,South Dakota,46057,1,0 +2020-04-11,Hamlin,South Dakota,46057,1,0 +2020-04-12,Hamlin,South Dakota,46057,1,0 +2020-04-13,Hamlin,South Dakota,46057,1,0 +2020-04-14,Hamlin,South Dakota,46057,1,0 +2020-04-15,Hamlin,South Dakota,46057,1,0 +2020-04-16,Hamlin,South Dakota,46057,2,0 +2020-04-17,Hamlin,South Dakota,46057,2,0 +2020-04-18,Hamlin,South Dakota,46057,2,0 +2020-04-19,Hamlin,South Dakota,46057,2,0 +2020-04-20,Hamlin,South Dakota,46057,2,0 +2020-04-21,Hamlin,South Dakota,46057,2,0 +2020-04-22,Hamlin,South Dakota,46057,2,0 +2020-04-23,Hamlin,South Dakota,46057,2,0 +2020-04-24,Hamlin,South Dakota,46057,2,0 +2020-04-25,Hamlin,South Dakota,46057,2,0 +2020-04-26,Hamlin,South Dakota,46057,2,0 +2020-04-27,Hamlin,South Dakota,46057,2,0 +2020-04-28,Hamlin,South Dakota,46057,2,0 +2020-04-29,Hamlin,South Dakota,46057,2,0 +2020-04-30,Hamlin,South Dakota,46057,2,0 +2020-05-01,Hamlin,South Dakota,46057,2,0 +2020-05-02,Hamlin,South Dakota,46057,2,0 +2020-05-03,Hamlin,South Dakota,46057,2,0 +2020-05-04,Hamlin,South Dakota,46057,2,0 +2020-05-05,Hamlin,South Dakota,46057,2,0 +2020-05-06,Hamlin,South Dakota,46057,2,0 +2020-05-07,Hamlin,South Dakota,46057,2,0 +2020-05-08,Hamlin,South Dakota,46057,2,0 +2020-05-09,Hamlin,South Dakota,46057,2,0 +2020-05-10,Hamlin,South Dakota,46057,2,0 +2020-05-11,Hamlin,South Dakota,46057,2,0 +2020-05-12,Hamlin,South Dakota,46057,2,0 +2020-05-13,Hamlin,South Dakota,46057,2,0 +2020-05-14,Hamlin,South Dakota,46057,2,0 +2020-05-15,Hamlin,South Dakota,46057,2,0 +2020-05-16,Hamlin,South Dakota,46057,2,0 +2020-05-17,Hamlin,South Dakota,46057,3,0 +2020-05-18,Hamlin,South Dakota,46057,3,0 +2020-05-19,Hamlin,South Dakota,46057,3,0 +2020-05-20,Hamlin,South Dakota,46057,3,0 +2020-05-21,Hamlin,South Dakota,46057,3,0 +2020-05-22,Hamlin,South Dakota,46057,3,0 +2020-05-23,Hamlin,South Dakota,46057,3,0 +2020-05-24,Hamlin,South Dakota,46057,4,0 +2020-05-25,Hamlin,South Dakota,46057,4,0 +2020-05-26,Hamlin,South Dakota,46057,4,0 +2020-05-27,Hamlin,South Dakota,46057,4,0 +2020-05-28,Hamlin,South Dakota,46057,4,0 +2020-05-29,Hamlin,South Dakota,46057,4,0 +2020-05-30,Hamlin,South Dakota,46057,4,0 +2020-05-31,Hamlin,South Dakota,46057,4,0 +2020-06-01,Hamlin,South Dakota,46057,4,0 +2020-06-02,Hamlin,South Dakota,46057,4,0 +2020-06-03,Hamlin,South Dakota,46057,4,0 +2020-06-04,Hamlin,South Dakota,46057,5,0 +2020-06-05,Hamlin,South Dakota,46057,5,0 +2020-06-06,Hamlin,South Dakota,46057,5,0 +2020-06-07,Hamlin,South Dakota,46057,6,0 +2020-06-08,Hamlin,South Dakota,46057,7,0 +2020-06-09,Hamlin,South Dakota,46057,8,0 +2020-06-10,Hamlin,South Dakota,46057,9,0 +2020-06-11,Hamlin,South Dakota,46057,9,0 +2020-06-12,Hamlin,South Dakota,46057,9,0 +2020-06-13,Hamlin,South Dakota,46057,10,0 +2020-06-14,Hamlin,South Dakota,46057,11,0 +2020-06-15,Hamlin,South Dakota,46057,11,0 +2020-06-16,Hamlin,South Dakota,46057,11,0 +2020-06-17,Hamlin,South Dakota,46057,11,0 +2020-06-18,Hamlin,South Dakota,46057,10,0 +2020-06-19,Hamlin,South Dakota,46057,10,0 +2020-06-20,Hamlin,South Dakota,46057,10,0 +2020-06-21,Hamlin,South Dakota,46057,10,0 +2020-06-22,Hamlin,South Dakota,46057,11,0 +2020-06-23,Hamlin,South Dakota,46057,11,0 +2020-06-24,Hamlin,South Dakota,46057,11,0 +2020-06-25,Hamlin,South Dakota,46057,11,0 +2020-06-26,Hamlin,South Dakota,46057,11,0 +2020-06-27,Hamlin,South Dakota,46057,11,0 +2020-06-28,Hamlin,South Dakota,46057,11,0 +2020-06-29,Hamlin,South Dakota,46057,11,0 +2020-06-30,Hamlin,South Dakota,46057,11,0 +2020-07-01,Hamlin,South Dakota,46057,12,0 +2020-07-02,Hamlin,South Dakota,46057,12,0 +2020-07-03,Hamlin,South Dakota,46057,13,0 +2020-07-04,Hamlin,South Dakota,46057,13,0 +2020-07-05,Hamlin,South Dakota,46057,13,0 +2020-07-06,Hamlin,South Dakota,46057,13,0 +2020-07-07,Hamlin,South Dakota,46057,13,0 +2020-07-08,Hamlin,South Dakota,46057,13,0 +2020-07-09,Hamlin,South Dakota,46057,13,0 +2020-04-26,Hand,South Dakota,46059,1,0 +2020-04-27,Hand,South Dakota,46059,1,0 +2020-04-28,Hand,South Dakota,46059,1,0 +2020-04-29,Hand,South Dakota,46059,1,0 +2020-04-30,Hand,South Dakota,46059,1,0 +2020-05-01,Hand,South Dakota,46059,1,0 +2020-05-02,Hand,South Dakota,46059,1,0 +2020-05-03,Hand,South Dakota,46059,1,0 +2020-05-04,Hand,South Dakota,46059,1,0 +2020-05-05,Hand,South Dakota,46059,1,0 +2020-05-06,Hand,South Dakota,46059,1,0 +2020-05-07,Hand,South Dakota,46059,1,0 +2020-05-08,Hand,South Dakota,46059,1,0 +2020-05-09,Hand,South Dakota,46059,1,0 +2020-05-10,Hand,South Dakota,46059,1,0 +2020-05-11,Hand,South Dakota,46059,1,0 +2020-05-12,Hand,South Dakota,46059,1,0 +2020-05-13,Hand,South Dakota,46059,1,0 +2020-05-14,Hand,South Dakota,46059,1,0 +2020-05-15,Hand,South Dakota,46059,1,0 +2020-05-16,Hand,South Dakota,46059,1,0 +2020-05-17,Hand,South Dakota,46059,1,0 +2020-05-18,Hand,South Dakota,46059,1,0 +2020-05-19,Hand,South Dakota,46059,1,0 +2020-05-20,Hand,South Dakota,46059,1,0 +2020-05-21,Hand,South Dakota,46059,1,0 +2020-05-22,Hand,South Dakota,46059,1,0 +2020-05-23,Hand,South Dakota,46059,1,0 +2020-05-24,Hand,South Dakota,46059,1,0 +2020-05-25,Hand,South Dakota,46059,1,0 +2020-05-26,Hand,South Dakota,46059,1,0 +2020-05-27,Hand,South Dakota,46059,1,0 +2020-05-28,Hand,South Dakota,46059,2,0 +2020-05-29,Hand,South Dakota,46059,2,0 +2020-05-30,Hand,South Dakota,46059,2,0 +2020-05-31,Hand,South Dakota,46059,2,0 +2020-06-01,Hand,South Dakota,46059,2,0 +2020-06-02,Hand,South Dakota,46059,2,0 +2020-06-03,Hand,South Dakota,46059,3,0 +2020-06-04,Hand,South Dakota,46059,3,0 +2020-06-05,Hand,South Dakota,46059,4,0 +2020-06-06,Hand,South Dakota,46059,5,0 +2020-06-07,Hand,South Dakota,46059,5,0 +2020-06-08,Hand,South Dakota,46059,5,0 +2020-06-09,Hand,South Dakota,46059,5,0 +2020-06-10,Hand,South Dakota,46059,5,0 +2020-06-11,Hand,South Dakota,46059,6,0 +2020-06-12,Hand,South Dakota,46059,6,0 +2020-06-13,Hand,South Dakota,46059,6,0 +2020-06-14,Hand,South Dakota,46059,6,0 +2020-06-15,Hand,South Dakota,46059,6,0 +2020-06-16,Hand,South Dakota,46059,6,0 +2020-06-17,Hand,South Dakota,46059,6,0 +2020-06-18,Hand,South Dakota,46059,6,0 +2020-06-19,Hand,South Dakota,46059,6,0 +2020-06-20,Hand,South Dakota,46059,7,0 +2020-06-21,Hand,South Dakota,46059,7,0 +2020-06-22,Hand,South Dakota,46059,7,0 +2020-06-23,Hand,South Dakota,46059,7,0 +2020-06-24,Hand,South Dakota,46059,7,0 +2020-06-25,Hand,South Dakota,46059,7,0 +2020-06-26,Hand,South Dakota,46059,7,0 +2020-06-27,Hand,South Dakota,46059,7,0 +2020-06-28,Hand,South Dakota,46059,7,0 +2020-06-29,Hand,South Dakota,46059,7,0 +2020-06-30,Hand,South Dakota,46059,7,0 +2020-07-01,Hand,South Dakota,46059,7,0 +2020-07-02,Hand,South Dakota,46059,7,0 +2020-07-03,Hand,South Dakota,46059,7,0 +2020-07-04,Hand,South Dakota,46059,7,0 +2020-07-05,Hand,South Dakota,46059,7,0 +2020-07-06,Hand,South Dakota,46059,7,0 +2020-07-07,Hand,South Dakota,46059,7,0 +2020-07-08,Hand,South Dakota,46059,7,0 +2020-07-09,Hand,South Dakota,46059,7,0 +2020-06-03,Hanson,South Dakota,46061,1,0 +2020-06-04,Hanson,South Dakota,46061,1,0 +2020-06-05,Hanson,South Dakota,46061,2,0 +2020-06-06,Hanson,South Dakota,46061,2,0 +2020-06-07,Hanson,South Dakota,46061,2,0 +2020-06-08,Hanson,South Dakota,46061,3,0 +2020-06-09,Hanson,South Dakota,46061,3,0 +2020-06-10,Hanson,South Dakota,46061,3,0 +2020-06-11,Hanson,South Dakota,46061,3,0 +2020-06-12,Hanson,South Dakota,46061,3,0 +2020-06-13,Hanson,South Dakota,46061,3,0 +2020-06-14,Hanson,South Dakota,46061,3,0 +2020-06-15,Hanson,South Dakota,46061,3,0 +2020-06-16,Hanson,South Dakota,46061,3,0 +2020-06-17,Hanson,South Dakota,46061,3,0 +2020-06-18,Hanson,South Dakota,46061,3,0 +2020-06-19,Hanson,South Dakota,46061,3,0 +2020-06-20,Hanson,South Dakota,46061,3,0 +2020-06-21,Hanson,South Dakota,46061,4,0 +2020-06-22,Hanson,South Dakota,46061,5,0 +2020-06-23,Hanson,South Dakota,46061,5,0 +2020-06-24,Hanson,South Dakota,46061,5,0 +2020-06-25,Hanson,South Dakota,46061,6,0 +2020-06-26,Hanson,South Dakota,46061,6,0 +2020-06-27,Hanson,South Dakota,46061,6,0 +2020-06-28,Hanson,South Dakota,46061,6,0 +2020-06-29,Hanson,South Dakota,46061,7,0 +2020-06-30,Hanson,South Dakota,46061,7,0 +2020-07-01,Hanson,South Dakota,46061,7,0 +2020-07-02,Hanson,South Dakota,46061,8,0 +2020-07-03,Hanson,South Dakota,46061,8,0 +2020-07-04,Hanson,South Dakota,46061,9,0 +2020-07-05,Hanson,South Dakota,46061,10,0 +2020-07-06,Hanson,South Dakota,46061,10,0 +2020-07-07,Hanson,South Dakota,46061,12,0 +2020-07-08,Hanson,South Dakota,46061,12,0 +2020-07-09,Hanson,South Dakota,46061,13,0 +2020-03-23,Hughes,South Dakota,46065,1,0 +2020-03-24,Hughes,South Dakota,46065,1,0 +2020-03-25,Hughes,South Dakota,46065,1,0 +2020-03-26,Hughes,South Dakota,46065,1,0 +2020-03-27,Hughes,South Dakota,46065,1,0 +2020-03-28,Hughes,South Dakota,46065,1,0 +2020-03-29,Hughes,South Dakota,46065,1,0 +2020-03-30,Hughes,South Dakota,46065,1,0 +2020-03-31,Hughes,South Dakota,46065,1,0 +2020-04-01,Hughes,South Dakota,46065,2,0 +2020-04-02,Hughes,South Dakota,46065,3,0 +2020-04-03,Hughes,South Dakota,46065,3,0 +2020-04-04,Hughes,South Dakota,46065,3,0 +2020-04-05,Hughes,South Dakota,46065,3,0 +2020-04-06,Hughes,South Dakota,46065,3,0 +2020-04-07,Hughes,South Dakota,46065,3,0 +2020-04-08,Hughes,South Dakota,46065,3,0 +2020-04-09,Hughes,South Dakota,46065,4,0 +2020-04-10,Hughes,South Dakota,46065,4,0 +2020-04-11,Hughes,South Dakota,46065,4,0 +2020-04-12,Hughes,South Dakota,46065,5,0 +2020-04-13,Hughes,South Dakota,46065,5,0 +2020-04-14,Hughes,South Dakota,46065,5,0 +2020-04-15,Hughes,South Dakota,46065,5,0 +2020-04-16,Hughes,South Dakota,46065,5,0 +2020-04-17,Hughes,South Dakota,46065,5,0 +2020-04-18,Hughes,South Dakota,46065,5,0 +2020-04-19,Hughes,South Dakota,46065,5,0 +2020-04-20,Hughes,South Dakota,46065,5,0 +2020-04-21,Hughes,South Dakota,46065,5,0 +2020-04-22,Hughes,South Dakota,46065,6,0 +2020-04-23,Hughes,South Dakota,46065,7,0 +2020-04-24,Hughes,South Dakota,46065,7,0 +2020-04-25,Hughes,South Dakota,46065,7,0 +2020-04-26,Hughes,South Dakota,46065,7,0 +2020-04-27,Hughes,South Dakota,46065,7,0 +2020-04-28,Hughes,South Dakota,46065,7,0 +2020-04-29,Hughes,South Dakota,46065,7,0 +2020-04-30,Hughes,South Dakota,46065,8,0 +2020-05-01,Hughes,South Dakota,46065,9,0 +2020-05-02,Hughes,South Dakota,46065,13,0 +2020-05-03,Hughes,South Dakota,46065,13,0 +2020-05-04,Hughes,South Dakota,46065,13,0 +2020-05-05,Hughes,South Dakota,46065,13,0 +2020-05-06,Hughes,South Dakota,46065,13,0 +2020-05-07,Hughes,South Dakota,46065,14,0 +2020-05-08,Hughes,South Dakota,46065,15,0 +2020-05-09,Hughes,South Dakota,46065,15,0 +2020-05-10,Hughes,South Dakota,46065,15,0 +2020-05-11,Hughes,South Dakota,46065,15,0 +2020-05-12,Hughes,South Dakota,46065,15,0 +2020-05-13,Hughes,South Dakota,46065,15,0 +2020-05-14,Hughes,South Dakota,46065,15,0 +2020-05-15,Hughes,South Dakota,46065,16,0 +2020-05-16,Hughes,South Dakota,46065,16,0 +2020-05-17,Hughes,South Dakota,46065,16,0 +2020-05-18,Hughes,South Dakota,46065,16,0 +2020-05-19,Hughes,South Dakota,46065,17,0 +2020-05-20,Hughes,South Dakota,46065,17,0 +2020-05-21,Hughes,South Dakota,46065,17,0 +2020-05-22,Hughes,South Dakota,46065,17,0 +2020-05-23,Hughes,South Dakota,46065,17,0 +2020-05-24,Hughes,South Dakota,46065,19,0 +2020-05-25,Hughes,South Dakota,46065,19,0 +2020-05-26,Hughes,South Dakota,46065,19,0 +2020-05-27,Hughes,South Dakota,46065,19,0 +2020-05-28,Hughes,South Dakota,46065,19,0 +2020-05-29,Hughes,South Dakota,46065,19,0 +2020-05-30,Hughes,South Dakota,46065,19,0 +2020-05-31,Hughes,South Dakota,46065,19,0 +2020-06-01,Hughes,South Dakota,46065,19,0 +2020-06-02,Hughes,South Dakota,46065,19,0 +2020-06-03,Hughes,South Dakota,46065,19,0 +2020-06-04,Hughes,South Dakota,46065,19,0 +2020-06-05,Hughes,South Dakota,46065,19,0 +2020-06-06,Hughes,South Dakota,46065,19,0 +2020-06-07,Hughes,South Dakota,46065,20,0 +2020-06-08,Hughes,South Dakota,46065,20,0 +2020-06-09,Hughes,South Dakota,46065,21,0 +2020-06-10,Hughes,South Dakota,46065,21,0 +2020-06-11,Hughes,South Dakota,46065,21,0 +2020-06-12,Hughes,South Dakota,46065,21,0 +2020-06-13,Hughes,South Dakota,46065,21,0 +2020-06-14,Hughes,South Dakota,46065,22,0 +2020-06-15,Hughes,South Dakota,46065,22,0 +2020-06-16,Hughes,South Dakota,46065,23,0 +2020-06-17,Hughes,South Dakota,46065,25,0 +2020-06-18,Hughes,South Dakota,46065,27,0 +2020-06-19,Hughes,South Dakota,46065,29,0 +2020-06-20,Hughes,South Dakota,46065,31,0 +2020-06-21,Hughes,South Dakota,46065,32,0 +2020-06-22,Hughes,South Dakota,46065,32,0 +2020-06-23,Hughes,South Dakota,46065,33,0 +2020-06-24,Hughes,South Dakota,46065,38,0 +2020-06-25,Hughes,South Dakota,46065,42,0 +2020-06-26,Hughes,South Dakota,46065,42,0 +2020-06-27,Hughes,South Dakota,46065,49,0 +2020-06-28,Hughes,South Dakota,46065,51,0 +2020-06-29,Hughes,South Dakota,46065,52,0 +2020-06-30,Hughes,South Dakota,46065,55,0 +2020-07-01,Hughes,South Dakota,46065,58,0 +2020-07-02,Hughes,South Dakota,46065,60,0 +2020-07-03,Hughes,South Dakota,46065,64,0 +2020-07-04,Hughes,South Dakota,46065,64,0 +2020-07-05,Hughes,South Dakota,46065,64,0 +2020-07-06,Hughes,South Dakota,46065,65,0 +2020-07-07,Hughes,South Dakota,46065,65,0 +2020-07-08,Hughes,South Dakota,46065,66,0 +2020-07-09,Hughes,South Dakota,46065,68,0 +2020-03-28,Hutchinson,South Dakota,46067,2,0 +2020-03-29,Hutchinson,South Dakota,46067,2,0 +2020-03-30,Hutchinson,South Dakota,46067,2,0 +2020-03-31,Hutchinson,South Dakota,46067,2,0 +2020-04-01,Hutchinson,South Dakota,46067,2,0 +2020-04-02,Hutchinson,South Dakota,46067,2,0 +2020-04-03,Hutchinson,South Dakota,46067,2,0 +2020-04-04,Hutchinson,South Dakota,46067,2,0 +2020-04-05,Hutchinson,South Dakota,46067,2,0 +2020-04-06,Hutchinson,South Dakota,46067,2,0 +2020-04-07,Hutchinson,South Dakota,46067,2,0 +2020-04-08,Hutchinson,South Dakota,46067,2,0 +2020-04-09,Hutchinson,South Dakota,46067,2,0 +2020-04-10,Hutchinson,South Dakota,46067,2,0 +2020-04-11,Hutchinson,South Dakota,46067,2,0 +2020-04-12,Hutchinson,South Dakota,46067,2,0 +2020-04-13,Hutchinson,South Dakota,46067,2,0 +2020-04-14,Hutchinson,South Dakota,46067,2,0 +2020-04-15,Hutchinson,South Dakota,46067,2,0 +2020-04-16,Hutchinson,South Dakota,46067,2,0 +2020-04-17,Hutchinson,South Dakota,46067,2,0 +2020-04-18,Hutchinson,South Dakota,46067,2,0 +2020-04-19,Hutchinson,South Dakota,46067,2,0 +2020-04-20,Hutchinson,South Dakota,46067,2,0 +2020-04-21,Hutchinson,South Dakota,46067,2,0 +2020-04-22,Hutchinson,South Dakota,46067,2,0 +2020-04-23,Hutchinson,South Dakota,46067,2,0 +2020-04-24,Hutchinson,South Dakota,46067,2,0 +2020-04-25,Hutchinson,South Dakota,46067,2,0 +2020-04-26,Hutchinson,South Dakota,46067,3,0 +2020-04-27,Hutchinson,South Dakota,46067,3,0 +2020-04-28,Hutchinson,South Dakota,46067,3,0 +2020-04-29,Hutchinson,South Dakota,46067,3,0 +2020-04-30,Hutchinson,South Dakota,46067,3,0 +2020-05-01,Hutchinson,South Dakota,46067,3,0 +2020-05-02,Hutchinson,South Dakota,46067,3,0 +2020-05-03,Hutchinson,South Dakota,46067,3,0 +2020-05-04,Hutchinson,South Dakota,46067,3,0 +2020-05-05,Hutchinson,South Dakota,46067,3,0 +2020-05-06,Hutchinson,South Dakota,46067,3,0 +2020-05-07,Hutchinson,South Dakota,46067,3,0 +2020-05-08,Hutchinson,South Dakota,46067,3,0 +2020-05-09,Hutchinson,South Dakota,46067,3,0 +2020-05-10,Hutchinson,South Dakota,46067,3,0 +2020-05-11,Hutchinson,South Dakota,46067,3,0 +2020-05-12,Hutchinson,South Dakota,46067,3,0 +2020-05-13,Hutchinson,South Dakota,46067,3,0 +2020-05-14,Hutchinson,South Dakota,46067,3,0 +2020-05-15,Hutchinson,South Dakota,46067,3,0 +2020-05-16,Hutchinson,South Dakota,46067,3,0 +2020-05-17,Hutchinson,South Dakota,46067,3,0 +2020-05-18,Hutchinson,South Dakota,46067,3,0 +2020-05-19,Hutchinson,South Dakota,46067,3,0 +2020-05-20,Hutchinson,South Dakota,46067,3,0 +2020-05-21,Hutchinson,South Dakota,46067,3,0 +2020-05-22,Hutchinson,South Dakota,46067,3,0 +2020-05-23,Hutchinson,South Dakota,46067,3,0 +2020-05-24,Hutchinson,South Dakota,46067,3,0 +2020-05-25,Hutchinson,South Dakota,46067,3,0 +2020-05-26,Hutchinson,South Dakota,46067,4,0 +2020-05-27,Hutchinson,South Dakota,46067,4,0 +2020-05-28,Hutchinson,South Dakota,46067,4,0 +2020-05-29,Hutchinson,South Dakota,46067,4,0 +2020-05-30,Hutchinson,South Dakota,46067,5,0 +2020-05-31,Hutchinson,South Dakota,46067,5,0 +2020-06-01,Hutchinson,South Dakota,46067,5,0 +2020-06-02,Hutchinson,South Dakota,46067,6,0 +2020-06-03,Hutchinson,South Dakota,46067,6,0 +2020-06-04,Hutchinson,South Dakota,46067,6,0 +2020-06-05,Hutchinson,South Dakota,46067,6,0 +2020-06-06,Hutchinson,South Dakota,46067,6,0 +2020-06-07,Hutchinson,South Dakota,46067,6,0 +2020-06-08,Hutchinson,South Dakota,46067,6,0 +2020-06-09,Hutchinson,South Dakota,46067,6,0 +2020-06-10,Hutchinson,South Dakota,46067,8,0 +2020-06-11,Hutchinson,South Dakota,46067,8,0 +2020-06-12,Hutchinson,South Dakota,46067,8,0 +2020-06-13,Hutchinson,South Dakota,46067,8,0 +2020-06-14,Hutchinson,South Dakota,46067,8,0 +2020-06-15,Hutchinson,South Dakota,46067,9,0 +2020-06-16,Hutchinson,South Dakota,46067,9,0 +2020-06-17,Hutchinson,South Dakota,46067,9,0 +2020-06-18,Hutchinson,South Dakota,46067,10,0 +2020-06-19,Hutchinson,South Dakota,46067,10,0 +2020-06-20,Hutchinson,South Dakota,46067,10,0 +2020-06-21,Hutchinson,South Dakota,46067,10,0 +2020-06-22,Hutchinson,South Dakota,46067,10,0 +2020-06-23,Hutchinson,South Dakota,46067,10,0 +2020-06-24,Hutchinson,South Dakota,46067,10,0 +2020-06-25,Hutchinson,South Dakota,46067,10,0 +2020-06-26,Hutchinson,South Dakota,46067,10,0 +2020-06-27,Hutchinson,South Dakota,46067,11,0 +2020-06-28,Hutchinson,South Dakota,46067,12,0 +2020-06-29,Hutchinson,South Dakota,46067,12,0 +2020-06-30,Hutchinson,South Dakota,46067,12,0 +2020-07-01,Hutchinson,South Dakota,46067,12,0 +2020-07-02,Hutchinson,South Dakota,46067,13,0 +2020-07-03,Hutchinson,South Dakota,46067,13,0 +2020-07-04,Hutchinson,South Dakota,46067,14,0 +2020-07-05,Hutchinson,South Dakota,46067,14,0 +2020-07-06,Hutchinson,South Dakota,46067,15,0 +2020-07-07,Hutchinson,South Dakota,46067,15,0 +2020-07-08,Hutchinson,South Dakota,46067,15,0 +2020-07-09,Hutchinson,South Dakota,46067,15,0 +2020-04-13,Hyde,South Dakota,46069,1,0 +2020-04-14,Hyde,South Dakota,46069,1,0 +2020-04-15,Hyde,South Dakota,46069,1,0 +2020-04-16,Hyde,South Dakota,46069,1,0 +2020-04-17,Hyde,South Dakota,46069,1,0 +2020-04-18,Hyde,South Dakota,46069,1,0 +2020-04-19,Hyde,South Dakota,46069,1,0 +2020-04-20,Hyde,South Dakota,46069,1,0 +2020-04-21,Hyde,South Dakota,46069,1,0 +2020-04-22,Hyde,South Dakota,46069,1,0 +2020-04-23,Hyde,South Dakota,46069,1,0 +2020-04-24,Hyde,South Dakota,46069,1,0 +2020-04-25,Hyde,South Dakota,46069,1,0 +2020-04-26,Hyde,South Dakota,46069,1,0 +2020-04-27,Hyde,South Dakota,46069,1,0 +2020-04-28,Hyde,South Dakota,46069,1,0 +2020-04-29,Hyde,South Dakota,46069,1,0 +2020-04-30,Hyde,South Dakota,46069,1,0 +2020-05-01,Hyde,South Dakota,46069,1,0 +2020-05-02,Hyde,South Dakota,46069,1,0 +2020-05-03,Hyde,South Dakota,46069,1,0 +2020-05-04,Hyde,South Dakota,46069,1,0 +2020-05-05,Hyde,South Dakota,46069,1,0 +2020-05-06,Hyde,South Dakota,46069,1,0 +2020-05-07,Hyde,South Dakota,46069,1,0 +2020-05-08,Hyde,South Dakota,46069,1,0 +2020-05-09,Hyde,South Dakota,46069,1,0 +2020-05-10,Hyde,South Dakota,46069,1,0 +2020-05-11,Hyde,South Dakota,46069,1,0 +2020-05-12,Hyde,South Dakota,46069,1,0 +2020-05-13,Hyde,South Dakota,46069,1,0 +2020-05-14,Hyde,South Dakota,46069,1,0 +2020-05-15,Hyde,South Dakota,46069,1,0 +2020-05-16,Hyde,South Dakota,46069,1,0 +2020-05-17,Hyde,South Dakota,46069,1,0 +2020-05-18,Hyde,South Dakota,46069,1,0 +2020-05-19,Hyde,South Dakota,46069,1,0 +2020-05-20,Hyde,South Dakota,46069,1,0 +2020-05-21,Hyde,South Dakota,46069,1,0 +2020-05-22,Hyde,South Dakota,46069,1,0 +2020-05-23,Hyde,South Dakota,46069,1,0 +2020-05-24,Hyde,South Dakota,46069,1,0 +2020-05-25,Hyde,South Dakota,46069,1,0 +2020-05-26,Hyde,South Dakota,46069,1,0 +2020-05-27,Hyde,South Dakota,46069,1,0 +2020-05-28,Hyde,South Dakota,46069,1,0 +2020-05-29,Hyde,South Dakota,46069,1,0 +2020-05-30,Hyde,South Dakota,46069,1,0 +2020-05-31,Hyde,South Dakota,46069,1,0 +2020-06-01,Hyde,South Dakota,46069,1,0 +2020-06-02,Hyde,South Dakota,46069,1,0 +2020-06-03,Hyde,South Dakota,46069,1,0 +2020-06-04,Hyde,South Dakota,46069,1,0 +2020-06-05,Hyde,South Dakota,46069,1,0 +2020-06-06,Hyde,South Dakota,46069,1,0 +2020-06-07,Hyde,South Dakota,46069,1,0 +2020-06-08,Hyde,South Dakota,46069,2,0 +2020-06-09,Hyde,South Dakota,46069,3,0 +2020-06-10,Hyde,South Dakota,46069,3,0 +2020-06-11,Hyde,South Dakota,46069,3,0 +2020-06-12,Hyde,South Dakota,46069,3,0 +2020-06-13,Hyde,South Dakota,46069,3,0 +2020-06-14,Hyde,South Dakota,46069,3,0 +2020-06-15,Hyde,South Dakota,46069,3,0 +2020-06-16,Hyde,South Dakota,46069,3,0 +2020-06-17,Hyde,South Dakota,46069,3,0 +2020-06-18,Hyde,South Dakota,46069,3,0 +2020-06-19,Hyde,South Dakota,46069,3,0 +2020-06-20,Hyde,South Dakota,46069,3,0 +2020-06-21,Hyde,South Dakota,46069,3,0 +2020-06-22,Hyde,South Dakota,46069,3,0 +2020-06-23,Hyde,South Dakota,46069,3,0 +2020-06-24,Hyde,South Dakota,46069,3,0 +2020-06-25,Hyde,South Dakota,46069,3,0 +2020-06-26,Hyde,South Dakota,46069,3,0 +2020-06-27,Hyde,South Dakota,46069,3,0 +2020-06-28,Hyde,South Dakota,46069,3,0 +2020-06-29,Hyde,South Dakota,46069,3,0 +2020-06-30,Hyde,South Dakota,46069,3,0 +2020-07-01,Hyde,South Dakota,46069,3,0 +2020-07-02,Hyde,South Dakota,46069,3,0 +2020-07-03,Hyde,South Dakota,46069,3,0 +2020-07-04,Hyde,South Dakota,46069,3,0 +2020-07-05,Hyde,South Dakota,46069,3,0 +2020-07-06,Hyde,South Dakota,46069,3,0 +2020-07-07,Hyde,South Dakota,46069,3,0 +2020-07-08,Hyde,South Dakota,46069,3,0 +2020-07-09,Hyde,South Dakota,46069,3,0 +2020-05-24,Jackson,South Dakota,46071,1,0 +2020-05-25,Jackson,South Dakota,46071,1,0 +2020-05-26,Jackson,South Dakota,46071,2,0 +2020-05-27,Jackson,South Dakota,46071,2,0 +2020-05-28,Jackson,South Dakota,46071,3,0 +2020-05-29,Jackson,South Dakota,46071,3,0 +2020-05-30,Jackson,South Dakota,46071,4,0 +2020-05-31,Jackson,South Dakota,46071,4,0 +2020-06-01,Jackson,South Dakota,46071,4,0 +2020-06-02,Jackson,South Dakota,46071,4,0 +2020-06-03,Jackson,South Dakota,46071,4,0 +2020-06-04,Jackson,South Dakota,46071,4,0 +2020-06-05,Jackson,South Dakota,46071,4,0 +2020-06-06,Jackson,South Dakota,46071,4,0 +2020-06-07,Jackson,South Dakota,46071,4,0 +2020-06-08,Jackson,South Dakota,46071,4,0 +2020-06-09,Jackson,South Dakota,46071,4,0 +2020-06-10,Jackson,South Dakota,46071,4,0 +2020-06-11,Jackson,South Dakota,46071,4,0 +2020-06-12,Jackson,South Dakota,46071,4,0 +2020-06-13,Jackson,South Dakota,46071,5,0 +2020-06-14,Jackson,South Dakota,46071,5,0 +2020-06-15,Jackson,South Dakota,46071,5,0 +2020-06-16,Jackson,South Dakota,46071,6,0 +2020-06-17,Jackson,South Dakota,46071,6,0 +2020-06-18,Jackson,South Dakota,46071,6,0 +2020-06-19,Jackson,South Dakota,46071,6,1 +2020-06-20,Jackson,South Dakota,46071,6,1 +2020-06-21,Jackson,South Dakota,46071,6,1 +2020-06-22,Jackson,South Dakota,46071,6,1 +2020-06-23,Jackson,South Dakota,46071,6,1 +2020-06-24,Jackson,South Dakota,46071,6,1 +2020-06-25,Jackson,South Dakota,46071,6,1 +2020-06-26,Jackson,South Dakota,46071,6,1 +2020-06-27,Jackson,South Dakota,46071,6,1 +2020-06-28,Jackson,South Dakota,46071,6,1 +2020-06-29,Jackson,South Dakota,46071,6,1 +2020-06-30,Jackson,South Dakota,46071,6,1 +2020-07-01,Jackson,South Dakota,46071,6,1 +2020-07-02,Jackson,South Dakota,46071,6,1 +2020-07-03,Jackson,South Dakota,46071,6,1 +2020-07-04,Jackson,South Dakota,46071,6,1 +2020-07-05,Jackson,South Dakota,46071,6,1 +2020-07-06,Jackson,South Dakota,46071,6,1 +2020-07-07,Jackson,South Dakota,46071,6,1 +2020-07-08,Jackson,South Dakota,46071,6,1 +2020-07-09,Jackson,South Dakota,46071,6,1 +2020-04-09,Jerauld,South Dakota,46073,1,0 +2020-04-10,Jerauld,South Dakota,46073,1,0 +2020-04-11,Jerauld,South Dakota,46073,3,0 +2020-04-12,Jerauld,South Dakota,46073,3,0 +2020-04-13,Jerauld,South Dakota,46073,3,0 +2020-04-14,Jerauld,South Dakota,46073,3,0 +2020-04-15,Jerauld,South Dakota,46073,3,0 +2020-04-16,Jerauld,South Dakota,46073,4,0 +2020-04-17,Jerauld,South Dakota,46073,4,0 +2020-04-18,Jerauld,South Dakota,46073,4,0 +2020-04-19,Jerauld,South Dakota,46073,4,0 +2020-04-20,Jerauld,South Dakota,46073,4,0 +2020-04-21,Jerauld,South Dakota,46073,4,0 +2020-04-22,Jerauld,South Dakota,46073,4,0 +2020-04-23,Jerauld,South Dakota,46073,5,0 +2020-04-24,Jerauld,South Dakota,46073,6,1 +2020-04-25,Jerauld,South Dakota,46073,6,1 +2020-04-26,Jerauld,South Dakota,46073,6,1 +2020-04-27,Jerauld,South Dakota,46073,6,1 +2020-04-28,Jerauld,South Dakota,46073,6,1 +2020-04-29,Jerauld,South Dakota,46073,6,1 +2020-04-30,Jerauld,South Dakota,46073,6,1 +2020-05-01,Jerauld,South Dakota,46073,6,1 +2020-05-02,Jerauld,South Dakota,46073,6,1 +2020-05-03,Jerauld,South Dakota,46073,6,1 +2020-05-04,Jerauld,South Dakota,46073,6,1 +2020-05-05,Jerauld,South Dakota,46073,6,1 +2020-05-06,Jerauld,South Dakota,46073,6,1 +2020-05-07,Jerauld,South Dakota,46073,6,1 +2020-05-08,Jerauld,South Dakota,46073,6,1 +2020-05-09,Jerauld,South Dakota,46073,6,1 +2020-05-10,Jerauld,South Dakota,46073,6,1 +2020-05-11,Jerauld,South Dakota,46073,6,1 +2020-05-12,Jerauld,South Dakota,46073,6,1 +2020-05-13,Jerauld,South Dakota,46073,6,1 +2020-05-14,Jerauld,South Dakota,46073,6,1 +2020-05-15,Jerauld,South Dakota,46073,6,1 +2020-05-16,Jerauld,South Dakota,46073,6,1 +2020-05-17,Jerauld,South Dakota,46073,6,1 +2020-05-18,Jerauld,South Dakota,46073,6,1 +2020-05-19,Jerauld,South Dakota,46073,6,1 +2020-05-20,Jerauld,South Dakota,46073,10,1 +2020-05-21,Jerauld,South Dakota,46073,10,1 +2020-05-22,Jerauld,South Dakota,46073,16,1 +2020-05-23,Jerauld,South Dakota,46073,19,1 +2020-05-24,Jerauld,South Dakota,46073,28,1 +2020-05-25,Jerauld,South Dakota,46073,28,1 +2020-05-26,Jerauld,South Dakota,46073,29,1 +2020-05-27,Jerauld,South Dakota,46073,30,1 +2020-05-28,Jerauld,South Dakota,46073,33,1 +2020-05-29,Jerauld,South Dakota,46073,34,1 +2020-05-30,Jerauld,South Dakota,46073,34,1 +2020-05-31,Jerauld,South Dakota,46073,35,1 +2020-06-01,Jerauld,South Dakota,46073,35,1 +2020-06-02,Jerauld,South Dakota,46073,35,1 +2020-06-03,Jerauld,South Dakota,46073,38,1 +2020-06-04,Jerauld,South Dakota,46073,39,1 +2020-06-05,Jerauld,South Dakota,46073,39,1 +2020-06-06,Jerauld,South Dakota,46073,39,1 +2020-06-07,Jerauld,South Dakota,46073,40,1 +2020-06-08,Jerauld,South Dakota,46073,40,1 +2020-06-09,Jerauld,South Dakota,46073,40,1 +2020-06-10,Jerauld,South Dakota,46073,40,1 +2020-06-11,Jerauld,South Dakota,46073,40,1 +2020-06-12,Jerauld,South Dakota,46073,40,1 +2020-06-13,Jerauld,South Dakota,46073,40,1 +2020-06-14,Jerauld,South Dakota,46073,40,1 +2020-06-15,Jerauld,South Dakota,46073,40,1 +2020-06-16,Jerauld,South Dakota,46073,40,1 +2020-06-17,Jerauld,South Dakota,46073,40,1 +2020-06-18,Jerauld,South Dakota,46073,40,1 +2020-06-19,Jerauld,South Dakota,46073,39,1 +2020-06-20,Jerauld,South Dakota,46073,39,1 +2020-06-21,Jerauld,South Dakota,46073,39,1 +2020-06-22,Jerauld,South Dakota,46073,39,1 +2020-06-23,Jerauld,South Dakota,46073,39,1 +2020-06-24,Jerauld,South Dakota,46073,39,1 +2020-06-25,Jerauld,South Dakota,46073,39,1 +2020-06-26,Jerauld,South Dakota,46073,39,1 +2020-06-27,Jerauld,South Dakota,46073,39,1 +2020-06-28,Jerauld,South Dakota,46073,39,1 +2020-06-29,Jerauld,South Dakota,46073,39,1 +2020-06-30,Jerauld,South Dakota,46073,39,1 +2020-07-01,Jerauld,South Dakota,46073,39,1 +2020-07-02,Jerauld,South Dakota,46073,39,1 +2020-07-03,Jerauld,South Dakota,46073,39,1 +2020-07-04,Jerauld,South Dakota,46073,39,1 +2020-07-05,Jerauld,South Dakota,46073,39,1 +2020-07-06,Jerauld,South Dakota,46073,39,1 +2020-07-07,Jerauld,South Dakota,46073,39,1 +2020-07-08,Jerauld,South Dakota,46073,39,1 +2020-07-09,Jerauld,South Dakota,46073,39,1 +2020-07-08,Jones,South Dakota,46075,1,0 +2020-07-09,Jones,South Dakota,46075,1,0 +2020-05-29,Kingsbury,South Dakota,46077,1,0 +2020-05-30,Kingsbury,South Dakota,46077,1,0 +2020-05-31,Kingsbury,South Dakota,46077,1,0 +2020-06-01,Kingsbury,South Dakota,46077,1,0 +2020-06-02,Kingsbury,South Dakota,46077,2,0 +2020-06-03,Kingsbury,South Dakota,46077,3,0 +2020-06-04,Kingsbury,South Dakota,46077,3,0 +2020-06-05,Kingsbury,South Dakota,46077,3,0 +2020-06-06,Kingsbury,South Dakota,46077,4,0 +2020-06-07,Kingsbury,South Dakota,46077,5,0 +2020-06-08,Kingsbury,South Dakota,46077,5,0 +2020-06-09,Kingsbury,South Dakota,46077,5,0 +2020-06-10,Kingsbury,South Dakota,46077,5,0 +2020-06-11,Kingsbury,South Dakota,46077,5,0 +2020-06-12,Kingsbury,South Dakota,46077,5,0 +2020-06-13,Kingsbury,South Dakota,46077,5,0 +2020-06-14,Kingsbury,South Dakota,46077,5,0 +2020-06-15,Kingsbury,South Dakota,46077,5,0 +2020-06-16,Kingsbury,South Dakota,46077,5,0 +2020-06-17,Kingsbury,South Dakota,46077,5,0 +2020-06-18,Kingsbury,South Dakota,46077,3,0 +2020-06-19,Kingsbury,South Dakota,46077,3,0 +2020-06-20,Kingsbury,South Dakota,46077,4,0 +2020-06-21,Kingsbury,South Dakota,46077,5,0 +2020-06-22,Kingsbury,South Dakota,46077,5,0 +2020-06-23,Kingsbury,South Dakota,46077,5,0 +2020-06-24,Kingsbury,South Dakota,46077,6,0 +2020-06-25,Kingsbury,South Dakota,46077,6,0 +2020-06-26,Kingsbury,South Dakota,46077,6,0 +2020-06-27,Kingsbury,South Dakota,46077,6,0 +2020-06-28,Kingsbury,South Dakota,46077,6,0 +2020-06-29,Kingsbury,South Dakota,46077,6,0 +2020-06-30,Kingsbury,South Dakota,46077,6,0 +2020-07-01,Kingsbury,South Dakota,46077,6,0 +2020-07-02,Kingsbury,South Dakota,46077,6,0 +2020-07-03,Kingsbury,South Dakota,46077,6,0 +2020-07-04,Kingsbury,South Dakota,46077,6,0 +2020-07-05,Kingsbury,South Dakota,46077,6,0 +2020-07-06,Kingsbury,South Dakota,46077,6,0 +2020-07-07,Kingsbury,South Dakota,46077,6,0 +2020-07-08,Kingsbury,South Dakota,46077,6,0 +2020-07-09,Kingsbury,South Dakota,46077,6,0 +2020-04-02,Lake,South Dakota,46079,1,0 +2020-04-03,Lake,South Dakota,46079,1,0 +2020-04-04,Lake,South Dakota,46079,1,0 +2020-04-05,Lake,South Dakota,46079,1,0 +2020-04-06,Lake,South Dakota,46079,1,0 +2020-04-07,Lake,South Dakota,46079,1,0 +2020-04-08,Lake,South Dakota,46079,2,0 +2020-04-09,Lake,South Dakota,46079,2,0 +2020-04-10,Lake,South Dakota,46079,2,0 +2020-04-11,Lake,South Dakota,46079,2,0 +2020-04-12,Lake,South Dakota,46079,2,0 +2020-04-13,Lake,South Dakota,46079,2,0 +2020-04-14,Lake,South Dakota,46079,2,0 +2020-04-15,Lake,South Dakota,46079,2,0 +2020-04-16,Lake,South Dakota,46079,3,0 +2020-04-17,Lake,South Dakota,46079,3,0 +2020-04-18,Lake,South Dakota,46079,3,0 +2020-04-19,Lake,South Dakota,46079,3,0 +2020-04-20,Lake,South Dakota,46079,3,0 +2020-04-21,Lake,South Dakota,46079,3,0 +2020-04-22,Lake,South Dakota,46079,3,0 +2020-04-23,Lake,South Dakota,46079,3,0 +2020-04-24,Lake,South Dakota,46079,4,0 +2020-04-25,Lake,South Dakota,46079,4,0 +2020-04-26,Lake,South Dakota,46079,4,0 +2020-04-27,Lake,South Dakota,46079,4,0 +2020-04-28,Lake,South Dakota,46079,4,0 +2020-04-29,Lake,South Dakota,46079,4,0 +2020-04-30,Lake,South Dakota,46079,4,0 +2020-05-01,Lake,South Dakota,46079,4,0 +2020-05-02,Lake,South Dakota,46079,4,0 +2020-05-03,Lake,South Dakota,46079,4,0 +2020-05-04,Lake,South Dakota,46079,4,0 +2020-05-05,Lake,South Dakota,46079,4,0 +2020-05-06,Lake,South Dakota,46079,4,0 +2020-05-07,Lake,South Dakota,46079,4,0 +2020-05-08,Lake,South Dakota,46079,5,0 +2020-05-09,Lake,South Dakota,46079,5,0 +2020-05-10,Lake,South Dakota,46079,5,0 +2020-05-11,Lake,South Dakota,46079,5,0 +2020-05-12,Lake,South Dakota,46079,5,0 +2020-05-13,Lake,South Dakota,46079,5,0 +2020-05-14,Lake,South Dakota,46079,5,0 +2020-05-15,Lake,South Dakota,46079,5,0 +2020-05-16,Lake,South Dakota,46079,5,0 +2020-05-17,Lake,South Dakota,46079,5,0 +2020-05-18,Lake,South Dakota,46079,5,0 +2020-05-19,Lake,South Dakota,46079,5,0 +2020-05-20,Lake,South Dakota,46079,5,0 +2020-05-21,Lake,South Dakota,46079,5,0 +2020-05-22,Lake,South Dakota,46079,5,0 +2020-05-23,Lake,South Dakota,46079,5,0 +2020-05-24,Lake,South Dakota,46079,6,0 +2020-05-25,Lake,South Dakota,46079,6,0 +2020-05-26,Lake,South Dakota,46079,6,0 +2020-05-27,Lake,South Dakota,46079,6,0 +2020-05-28,Lake,South Dakota,46079,7,0 +2020-05-29,Lake,South Dakota,46079,8,0 +2020-05-30,Lake,South Dakota,46079,8,0 +2020-05-31,Lake,South Dakota,46079,8,0 +2020-06-01,Lake,South Dakota,46079,8,0 +2020-06-02,Lake,South Dakota,46079,8,0 +2020-06-03,Lake,South Dakota,46079,10,0 +2020-06-04,Lake,South Dakota,46079,12,0 +2020-06-05,Lake,South Dakota,46079,12,0 +2020-06-06,Lake,South Dakota,46079,13,0 +2020-06-07,Lake,South Dakota,46079,13,0 +2020-06-08,Lake,South Dakota,46079,13,0 +2020-06-09,Lake,South Dakota,46079,13,1 +2020-06-10,Lake,South Dakota,46079,13,1 +2020-06-11,Lake,South Dakota,46079,13,1 +2020-06-12,Lake,South Dakota,46079,14,1 +2020-06-13,Lake,South Dakota,46079,14,1 +2020-06-14,Lake,South Dakota,46079,14,1 +2020-06-15,Lake,South Dakota,46079,15,1 +2020-06-16,Lake,South Dakota,46079,16,1 +2020-06-17,Lake,South Dakota,46079,17,1 +2020-06-18,Lake,South Dakota,46079,17,1 +2020-06-19,Lake,South Dakota,46079,17,1 +2020-06-20,Lake,South Dakota,46079,17,1 +2020-06-21,Lake,South Dakota,46079,17,1 +2020-06-22,Lake,South Dakota,46079,17,1 +2020-06-23,Lake,South Dakota,46079,18,1 +2020-06-24,Lake,South Dakota,46079,18,1 +2020-06-25,Lake,South Dakota,46079,18,1 +2020-06-26,Lake,South Dakota,46079,19,1 +2020-06-27,Lake,South Dakota,46079,19,1 +2020-06-28,Lake,South Dakota,46079,20,1 +2020-06-29,Lake,South Dakota,46079,21,1 +2020-06-30,Lake,South Dakota,46079,21,1 +2020-07-01,Lake,South Dakota,46079,21,1 +2020-07-02,Lake,South Dakota,46079,22,1 +2020-07-03,Lake,South Dakota,46079,22,1 +2020-07-04,Lake,South Dakota,46079,22,1 +2020-07-05,Lake,South Dakota,46079,22,1 +2020-07-06,Lake,South Dakota,46079,22,1 +2020-07-07,Lake,South Dakota,46079,22,1 +2020-07-08,Lake,South Dakota,46079,22,1 +2020-07-09,Lake,South Dakota,46079,23,1 +2020-03-27,Lawrence,South Dakota,46081,2,0 +2020-03-28,Lawrence,South Dakota,46081,2,0 +2020-03-29,Lawrence,South Dakota,46081,3,0 +2020-03-30,Lawrence,South Dakota,46081,5,0 +2020-03-31,Lawrence,South Dakota,46081,6,0 +2020-04-01,Lawrence,South Dakota,46081,6,0 +2020-04-02,Lawrence,South Dakota,46081,9,0 +2020-04-03,Lawrence,South Dakota,46081,9,0 +2020-04-04,Lawrence,South Dakota,46081,9,0 +2020-04-05,Lawrence,South Dakota,46081,9,0 +2020-04-06,Lawrence,South Dakota,46081,9,0 +2020-04-07,Lawrence,South Dakota,46081,9,0 +2020-04-08,Lawrence,South Dakota,46081,9,0 +2020-04-09,Lawrence,South Dakota,46081,9,0 +2020-04-10,Lawrence,South Dakota,46081,9,0 +2020-04-11,Lawrence,South Dakota,46081,9,0 +2020-04-12,Lawrence,South Dakota,46081,9,0 +2020-04-13,Lawrence,South Dakota,46081,9,0 +2020-04-14,Lawrence,South Dakota,46081,9,0 +2020-04-15,Lawrence,South Dakota,46081,9,0 +2020-04-16,Lawrence,South Dakota,46081,9,0 +2020-04-17,Lawrence,South Dakota,46081,9,0 +2020-04-18,Lawrence,South Dakota,46081,9,0 +2020-04-19,Lawrence,South Dakota,46081,9,0 +2020-04-20,Lawrence,South Dakota,46081,9,0 +2020-04-21,Lawrence,South Dakota,46081,9,0 +2020-04-22,Lawrence,South Dakota,46081,9,0 +2020-04-23,Lawrence,South Dakota,46081,9,0 +2020-04-24,Lawrence,South Dakota,46081,9,0 +2020-04-25,Lawrence,South Dakota,46081,9,0 +2020-04-26,Lawrence,South Dakota,46081,9,0 +2020-04-27,Lawrence,South Dakota,46081,9,0 +2020-04-28,Lawrence,South Dakota,46081,9,0 +2020-04-29,Lawrence,South Dakota,46081,9,0 +2020-04-30,Lawrence,South Dakota,46081,9,0 +2020-05-01,Lawrence,South Dakota,46081,9,0 +2020-05-02,Lawrence,South Dakota,46081,9,0 +2020-05-03,Lawrence,South Dakota,46081,9,0 +2020-05-04,Lawrence,South Dakota,46081,9,0 +2020-05-05,Lawrence,South Dakota,46081,9,0 +2020-05-06,Lawrence,South Dakota,46081,9,0 +2020-05-07,Lawrence,South Dakota,46081,9,0 +2020-05-08,Lawrence,South Dakota,46081,9,0 +2020-05-09,Lawrence,South Dakota,46081,9,0 +2020-05-10,Lawrence,South Dakota,46081,9,0 +2020-05-11,Lawrence,South Dakota,46081,9,0 +2020-05-12,Lawrence,South Dakota,46081,9,0 +2020-05-13,Lawrence,South Dakota,46081,9,0 +2020-05-14,Lawrence,South Dakota,46081,9,0 +2020-05-15,Lawrence,South Dakota,46081,9,0 +2020-05-16,Lawrence,South Dakota,46081,9,0 +2020-05-17,Lawrence,South Dakota,46081,9,0 +2020-05-18,Lawrence,South Dakota,46081,9,0 +2020-05-19,Lawrence,South Dakota,46081,9,0 +2020-05-20,Lawrence,South Dakota,46081,9,0 +2020-05-21,Lawrence,South Dakota,46081,9,0 +2020-05-22,Lawrence,South Dakota,46081,9,0 +2020-05-23,Lawrence,South Dakota,46081,9,0 +2020-05-24,Lawrence,South Dakota,46081,9,0 +2020-05-25,Lawrence,South Dakota,46081,9,0 +2020-05-26,Lawrence,South Dakota,46081,9,0 +2020-05-27,Lawrence,South Dakota,46081,9,0 +2020-05-28,Lawrence,South Dakota,46081,9,0 +2020-05-29,Lawrence,South Dakota,46081,11,0 +2020-05-30,Lawrence,South Dakota,46081,11,0 +2020-05-31,Lawrence,South Dakota,46081,11,0 +2020-06-01,Lawrence,South Dakota,46081,11,0 +2020-06-02,Lawrence,South Dakota,46081,11,0 +2020-06-03,Lawrence,South Dakota,46081,11,0 +2020-06-04,Lawrence,South Dakota,46081,11,0 +2020-06-05,Lawrence,South Dakota,46081,12,0 +2020-06-06,Lawrence,South Dakota,46081,12,0 +2020-06-07,Lawrence,South Dakota,46081,12,0 +2020-06-08,Lawrence,South Dakota,46081,12,0 +2020-06-09,Lawrence,South Dakota,46081,12,0 +2020-06-10,Lawrence,South Dakota,46081,12,0 +2020-06-11,Lawrence,South Dakota,46081,12,0 +2020-06-12,Lawrence,South Dakota,46081,12,0 +2020-06-13,Lawrence,South Dakota,46081,12,0 +2020-06-14,Lawrence,South Dakota,46081,12,0 +2020-06-15,Lawrence,South Dakota,46081,12,0 +2020-06-16,Lawrence,South Dakota,46081,12,0 +2020-06-17,Lawrence,South Dakota,46081,13,0 +2020-06-18,Lawrence,South Dakota,46081,15,0 +2020-06-19,Lawrence,South Dakota,46081,16,0 +2020-06-20,Lawrence,South Dakota,46081,16,0 +2020-06-21,Lawrence,South Dakota,46081,16,0 +2020-06-22,Lawrence,South Dakota,46081,16,0 +2020-06-23,Lawrence,South Dakota,46081,16,0 +2020-06-24,Lawrence,South Dakota,46081,17,0 +2020-06-25,Lawrence,South Dakota,46081,17,0 +2020-06-26,Lawrence,South Dakota,46081,18,0 +2020-06-27,Lawrence,South Dakota,46081,19,0 +2020-06-28,Lawrence,South Dakota,46081,19,0 +2020-06-29,Lawrence,South Dakota,46081,19,0 +2020-06-30,Lawrence,South Dakota,46081,19,0 +2020-07-01,Lawrence,South Dakota,46081,19,0 +2020-07-02,Lawrence,South Dakota,46081,19,0 +2020-07-03,Lawrence,South Dakota,46081,19,0 +2020-07-04,Lawrence,South Dakota,46081,19,0 +2020-07-05,Lawrence,South Dakota,46081,19,0 +2020-07-06,Lawrence,South Dakota,46081,19,0 +2020-07-07,Lawrence,South Dakota,46081,19,0 +2020-07-08,Lawrence,South Dakota,46081,19,0 +2020-07-09,Lawrence,South Dakota,46081,19,0 +2020-03-25,Lincoln,South Dakota,46083,1,0 +2020-03-26,Lincoln,South Dakota,46083,2,0 +2020-03-27,Lincoln,South Dakota,46083,2,0 +2020-03-28,Lincoln,South Dakota,46083,3,0 +2020-03-29,Lincoln,South Dakota,46083,4,0 +2020-03-30,Lincoln,South Dakota,46083,4,0 +2020-03-31,Lincoln,South Dakota,46083,5,0 +2020-04-01,Lincoln,South Dakota,46083,11,0 +2020-04-02,Lincoln,South Dakota,46083,17,0 +2020-04-03,Lincoln,South Dakota,46083,19,0 +2020-04-04,Lincoln,South Dakota,46083,21,0 +2020-04-05,Lincoln,South Dakota,46083,23,0 +2020-04-06,Lincoln,South Dakota,46083,24,0 +2020-04-07,Lincoln,South Dakota,46083,27,0 +2020-04-08,Lincoln,South Dakota,46083,31,0 +2020-04-09,Lincoln,South Dakota,46083,33,0 +2020-04-10,Lincoln,South Dakota,46083,38,0 +2020-04-11,Lincoln,South Dakota,46083,39,0 +2020-04-12,Lincoln,South Dakota,46083,46,0 +2020-04-13,Lincoln,South Dakota,46083,50,0 +2020-04-14,Lincoln,South Dakota,46083,55,0 +2020-04-15,Lincoln,South Dakota,46083,65,0 +2020-04-16,Lincoln,South Dakota,46083,71,0 +2020-04-17,Lincoln,South Dakota,46083,77,0 +2020-04-18,Lincoln,South Dakota,46083,86,0 +2020-04-19,Lincoln,South Dakota,46083,90,0 +2020-04-20,Lincoln,South Dakota,46083,95,0 +2020-04-21,Lincoln,South Dakota,46083,99,0 +2020-04-22,Lincoln,South Dakota,46083,104,0 +2020-04-23,Lincoln,South Dakota,46083,110,0 +2020-04-24,Lincoln,South Dakota,46083,116,0 +2020-04-25,Lincoln,South Dakota,46083,125,0 +2020-04-26,Lincoln,South Dakota,46083,128,0 +2020-04-27,Lincoln,South Dakota,46083,131,0 +2020-04-28,Lincoln,South Dakota,46083,133,0 +2020-04-29,Lincoln,South Dakota,46083,138,0 +2020-04-30,Lincoln,South Dakota,46083,147,0 +2020-05-01,Lincoln,South Dakota,46083,153,0 +2020-05-02,Lincoln,South Dakota,46083,156,0 +2020-05-03,Lincoln,South Dakota,46083,162,0 +2020-05-04,Lincoln,South Dakota,46083,163,0 +2020-05-05,Lincoln,South Dakota,46083,164,0 +2020-05-06,Lincoln,South Dakota,46083,170,0 +2020-05-07,Lincoln,South Dakota,46083,171,0 +2020-05-08,Lincoln,South Dakota,46083,180,0 +2020-05-09,Lincoln,South Dakota,46083,186,0 +2020-05-10,Lincoln,South Dakota,46083,188,0 +2020-05-11,Lincoln,South Dakota,46083,191,0 +2020-05-12,Lincoln,South Dakota,46083,190,0 +2020-05-13,Lincoln,South Dakota,46083,193,0 +2020-05-14,Lincoln,South Dakota,46083,195,0 +2020-05-15,Lincoln,South Dakota,46083,198,0 +2020-05-16,Lincoln,South Dakota,46083,201,0 +2020-05-17,Lincoln,South Dakota,46083,200,0 +2020-05-18,Lincoln,South Dakota,46083,201,0 +2020-05-19,Lincoln,South Dakota,46083,205,0 +2020-05-20,Lincoln,South Dakota,46083,209,0 +2020-05-21,Lincoln,South Dakota,46083,209,0 +2020-05-22,Lincoln,South Dakota,46083,218,0 +2020-05-23,Lincoln,South Dakota,46083,225,0 +2020-05-24,Lincoln,South Dakota,46083,229,0 +2020-05-25,Lincoln,South Dakota,46083,230,0 +2020-05-26,Lincoln,South Dakota,46083,233,0 +2020-05-27,Lincoln,South Dakota,46083,236,0 +2020-05-28,Lincoln,South Dakota,46083,237,0 +2020-05-29,Lincoln,South Dakota,46083,236,0 +2020-05-30,Lincoln,South Dakota,46083,237,0 +2020-05-31,Lincoln,South Dakota,46083,238,0 +2020-06-01,Lincoln,South Dakota,46083,238,0 +2020-06-02,Lincoln,South Dakota,46083,239,0 +2020-06-03,Lincoln,South Dakota,46083,240,0 +2020-06-04,Lincoln,South Dakota,46083,243,0 +2020-06-05,Lincoln,South Dakota,46083,246,0 +2020-06-06,Lincoln,South Dakota,46083,250,0 +2020-06-07,Lincoln,South Dakota,46083,254,0 +2020-06-08,Lincoln,South Dakota,46083,254,0 +2020-06-09,Lincoln,South Dakota,46083,255,0 +2020-06-10,Lincoln,South Dakota,46083,258,0 +2020-06-11,Lincoln,South Dakota,46083,259,0 +2020-06-12,Lincoln,South Dakota,46083,262,0 +2020-06-13,Lincoln,South Dakota,46083,265,0 +2020-06-14,Lincoln,South Dakota,46083,267,0 +2020-06-15,Lincoln,South Dakota,46083,270,0 +2020-06-16,Lincoln,South Dakota,46083,271,0 +2020-06-17,Lincoln,South Dakota,46083,272,1 +2020-06-18,Lincoln,South Dakota,46083,275,1 +2020-06-19,Lincoln,South Dakota,46083,278,1 +2020-06-20,Lincoln,South Dakota,46083,317,1 +2020-06-21,Lincoln,South Dakota,46083,323,1 +2020-06-22,Lincoln,South Dakota,46083,323,1 +2020-06-23,Lincoln,South Dakota,46083,325,1 +2020-06-24,Lincoln,South Dakota,46083,326,1 +2020-06-25,Lincoln,South Dakota,46083,329,1 +2020-06-26,Lincoln,South Dakota,46083,332,1 +2020-06-27,Lincoln,South Dakota,46083,337,1 +2020-06-28,Lincoln,South Dakota,46083,339,1 +2020-06-29,Lincoln,South Dakota,46083,341,1 +2020-06-30,Lincoln,South Dakota,46083,343,1 +2020-07-01,Lincoln,South Dakota,46083,347,1 +2020-07-02,Lincoln,South Dakota,46083,352,1 +2020-07-03,Lincoln,South Dakota,46083,357,1 +2020-07-04,Lincoln,South Dakota,46083,365,1 +2020-07-05,Lincoln,South Dakota,46083,365,1 +2020-07-06,Lincoln,South Dakota,46083,366,1 +2020-07-07,Lincoln,South Dakota,46083,371,1 +2020-07-08,Lincoln,South Dakota,46083,376,1 +2020-07-09,Lincoln,South Dakota,46083,381,1 +2020-03-23,Lyman,South Dakota,46085,1,0 +2020-03-24,Lyman,South Dakota,46085,1,0 +2020-03-25,Lyman,South Dakota,46085,1,0 +2020-03-26,Lyman,South Dakota,46085,1,0 +2020-03-27,Lyman,South Dakota,46085,1,0 +2020-03-28,Lyman,South Dakota,46085,1,0 +2020-03-29,Lyman,South Dakota,46085,1,0 +2020-03-30,Lyman,South Dakota,46085,1,0 +2020-03-31,Lyman,South Dakota,46085,1,0 +2020-04-01,Lyman,South Dakota,46085,1,0 +2020-04-02,Lyman,South Dakota,46085,1,0 +2020-04-03,Lyman,South Dakota,46085,1,0 +2020-04-04,Lyman,South Dakota,46085,1,0 +2020-04-05,Lyman,South Dakota,46085,1,0 +2020-04-06,Lyman,South Dakota,46085,1,0 +2020-04-07,Lyman,South Dakota,46085,2,0 +2020-04-08,Lyman,South Dakota,46085,2,0 +2020-04-09,Lyman,South Dakota,46085,2,0 +2020-04-10,Lyman,South Dakota,46085,2,0 +2020-04-11,Lyman,South Dakota,46085,2,0 +2020-04-12,Lyman,South Dakota,46085,2,0 +2020-04-13,Lyman,South Dakota,46085,2,0 +2020-04-14,Lyman,South Dakota,46085,2,0 +2020-04-15,Lyman,South Dakota,46085,2,0 +2020-04-16,Lyman,South Dakota,46085,2,0 +2020-04-17,Lyman,South Dakota,46085,2,0 +2020-04-18,Lyman,South Dakota,46085,2,0 +2020-04-19,Lyman,South Dakota,46085,2,0 +2020-04-20,Lyman,South Dakota,46085,2,0 +2020-04-21,Lyman,South Dakota,46085,2,0 +2020-04-22,Lyman,South Dakota,46085,2,0 +2020-04-23,Lyman,South Dakota,46085,2,0 +2020-04-24,Lyman,South Dakota,46085,2,0 +2020-04-25,Lyman,South Dakota,46085,2,0 +2020-04-26,Lyman,South Dakota,46085,2,0 +2020-04-27,Lyman,South Dakota,46085,2,0 +2020-04-28,Lyman,South Dakota,46085,2,0 +2020-04-29,Lyman,South Dakota,46085,3,0 +2020-04-30,Lyman,South Dakota,46085,3,0 +2020-05-01,Lyman,South Dakota,46085,3,0 +2020-05-02,Lyman,South Dakota,46085,3,0 +2020-05-03,Lyman,South Dakota,46085,3,0 +2020-05-04,Lyman,South Dakota,46085,3,0 +2020-05-05,Lyman,South Dakota,46085,3,0 +2020-05-06,Lyman,South Dakota,46085,3,0 +2020-05-07,Lyman,South Dakota,46085,3,0 +2020-05-08,Lyman,South Dakota,46085,3,0 +2020-05-09,Lyman,South Dakota,46085,3,0 +2020-05-10,Lyman,South Dakota,46085,3,0 +2020-05-11,Lyman,South Dakota,46085,3,0 +2020-05-12,Lyman,South Dakota,46085,3,0 +2020-05-13,Lyman,South Dakota,46085,3,0 +2020-05-14,Lyman,South Dakota,46085,4,0 +2020-05-15,Lyman,South Dakota,46085,4,0 +2020-05-16,Lyman,South Dakota,46085,4,0 +2020-05-17,Lyman,South Dakota,46085,4,0 +2020-05-18,Lyman,South Dakota,46085,4,0 +2020-05-19,Lyman,South Dakota,46085,6,0 +2020-05-20,Lyman,South Dakota,46085,9,0 +2020-05-21,Lyman,South Dakota,46085,9,0 +2020-05-22,Lyman,South Dakota,46085,10,0 +2020-05-23,Lyman,South Dakota,46085,11,0 +2020-05-24,Lyman,South Dakota,46085,12,0 +2020-05-25,Lyman,South Dakota,46085,12,0 +2020-05-26,Lyman,South Dakota,46085,12,0 +2020-05-27,Lyman,South Dakota,46085,13,0 +2020-05-28,Lyman,South Dakota,46085,14,0 +2020-05-29,Lyman,South Dakota,46085,13,0 +2020-05-30,Lyman,South Dakota,46085,14,0 +2020-05-31,Lyman,South Dakota,46085,14,0 +2020-06-01,Lyman,South Dakota,46085,14,0 +2020-06-02,Lyman,South Dakota,46085,14,0 +2020-06-03,Lyman,South Dakota,46085,15,0 +2020-06-04,Lyman,South Dakota,46085,16,0 +2020-06-05,Lyman,South Dakota,46085,16,0 +2020-06-06,Lyman,South Dakota,46085,22,0 +2020-06-07,Lyman,South Dakota,46085,24,0 +2020-06-08,Lyman,South Dakota,46085,24,0 +2020-06-09,Lyman,South Dakota,46085,27,0 +2020-06-10,Lyman,South Dakota,46085,30,0 +2020-06-11,Lyman,South Dakota,46085,32,0 +2020-06-12,Lyman,South Dakota,46085,32,0 +2020-06-13,Lyman,South Dakota,46085,33,0 +2020-06-14,Lyman,South Dakota,46085,33,0 +2020-06-15,Lyman,South Dakota,46085,33,0 +2020-06-16,Lyman,South Dakota,46085,33,0 +2020-06-17,Lyman,South Dakota,46085,39,0 +2020-06-18,Lyman,South Dakota,46085,40,0 +2020-06-19,Lyman,South Dakota,46085,44,0 +2020-06-20,Lyman,South Dakota,46085,46,0 +2020-06-21,Lyman,South Dakota,46085,47,0 +2020-06-22,Lyman,South Dakota,46085,48,0 +2020-06-23,Lyman,South Dakota,46085,49,0 +2020-06-24,Lyman,South Dakota,46085,55,0 +2020-06-25,Lyman,South Dakota,46085,55,0 +2020-06-26,Lyman,South Dakota,46085,55,0 +2020-06-27,Lyman,South Dakota,46085,57,0 +2020-06-28,Lyman,South Dakota,46085,59,0 +2020-06-29,Lyman,South Dakota,46085,59,0 +2020-06-30,Lyman,South Dakota,46085,62,0 +2020-07-01,Lyman,South Dakota,46085,65,0 +2020-07-02,Lyman,South Dakota,46085,68,1 +2020-07-03,Lyman,South Dakota,46085,69,1 +2020-07-04,Lyman,South Dakota,46085,70,1 +2020-07-05,Lyman,South Dakota,46085,70,1 +2020-07-06,Lyman,South Dakota,46085,70,1 +2020-07-07,Lyman,South Dakota,46085,72,1 +2020-07-08,Lyman,South Dakota,46085,75,1 +2020-07-09,Lyman,South Dakota,46085,80,1 +2020-03-13,McCook,South Dakota,46087,1,0 +2020-03-14,McCook,South Dakota,46087,1,0 +2020-03-15,McCook,South Dakota,46087,1,0 +2020-03-16,McCook,South Dakota,46087,1,0 +2020-03-17,McCook,South Dakota,46087,1,0 +2020-03-18,McCook,South Dakota,46087,1,0 +2020-03-19,McCook,South Dakota,46087,1,0 +2020-03-20,McCook,South Dakota,46087,1,0 +2020-03-21,McCook,South Dakota,46087,1,0 +2020-03-22,McCook,South Dakota,46087,1,0 +2020-03-23,McCook,South Dakota,46087,2,0 +2020-03-24,McCook,South Dakota,46087,2,0 +2020-03-25,McCook,South Dakota,46087,2,0 +2020-03-26,McCook,South Dakota,46087,2,0 +2020-03-27,McCook,South Dakota,46087,2,0 +2020-03-28,McCook,South Dakota,46087,2,0 +2020-03-29,McCook,South Dakota,46087,2,0 +2020-03-30,McCook,South Dakota,46087,2,0 +2020-03-31,McCook,South Dakota,46087,2,0 +2020-04-01,McCook,South Dakota,46087,2,0 +2020-04-02,McCook,South Dakota,46087,2,0 +2020-04-03,McCook,South Dakota,46087,2,0 +2020-04-04,McCook,South Dakota,46087,2,0 +2020-04-05,McCook,South Dakota,46087,2,0 +2020-04-06,McCook,South Dakota,46087,2,0 +2020-04-07,McCook,South Dakota,46087,2,0 +2020-04-08,McCook,South Dakota,46087,2,0 +2020-04-09,McCook,South Dakota,46087,2,1 +2020-04-10,McCook,South Dakota,46087,2,1 +2020-04-11,McCook,South Dakota,46087,2,1 +2020-04-12,McCook,South Dakota,46087,2,1 +2020-04-13,McCook,South Dakota,46087,2,1 +2020-04-14,McCook,South Dakota,46087,2,1 +2020-04-15,McCook,South Dakota,46087,3,1 +2020-04-16,McCook,South Dakota,46087,3,1 +2020-04-17,McCook,South Dakota,46087,3,1 +2020-04-18,McCook,South Dakota,46087,3,1 +2020-04-19,McCook,South Dakota,46087,3,1 +2020-04-20,McCook,South Dakota,46087,3,1 +2020-04-21,McCook,South Dakota,46087,3,1 +2020-04-22,McCook,South Dakota,46087,3,1 +2020-04-23,McCook,South Dakota,46087,4,1 +2020-04-24,McCook,South Dakota,46087,4,1 +2020-04-25,McCook,South Dakota,46087,4,1 +2020-04-26,McCook,South Dakota,46087,4,1 +2020-04-27,McCook,South Dakota,46087,4,1 +2020-04-28,McCook,South Dakota,46087,4,1 +2020-04-29,McCook,South Dakota,46087,4,1 +2020-04-30,McCook,South Dakota,46087,4,1 +2020-05-01,McCook,South Dakota,46087,4,1 +2020-05-02,McCook,South Dakota,46087,4,1 +2020-05-03,McCook,South Dakota,46087,4,1 +2020-05-04,McCook,South Dakota,46087,4,1 +2020-05-05,McCook,South Dakota,46087,4,1 +2020-05-06,McCook,South Dakota,46087,4,1 +2020-05-07,McCook,South Dakota,46087,4,1 +2020-05-08,McCook,South Dakota,46087,4,1 +2020-05-09,McCook,South Dakota,46087,4,1 +2020-05-10,McCook,South Dakota,46087,4,1 +2020-05-11,McCook,South Dakota,46087,4,1 +2020-05-12,McCook,South Dakota,46087,5,1 +2020-05-13,McCook,South Dakota,46087,5,1 +2020-05-14,McCook,South Dakota,46087,5,1 +2020-05-15,McCook,South Dakota,46087,5,1 +2020-05-16,McCook,South Dakota,46087,5,1 +2020-05-17,McCook,South Dakota,46087,5,1 +2020-05-18,McCook,South Dakota,46087,5,1 +2020-05-19,McCook,South Dakota,46087,5,1 +2020-05-20,McCook,South Dakota,46087,5,1 +2020-05-21,McCook,South Dakota,46087,5,1 +2020-05-22,McCook,South Dakota,46087,5,1 +2020-05-23,McCook,South Dakota,46087,5,1 +2020-05-24,McCook,South Dakota,46087,5,1 +2020-05-25,McCook,South Dakota,46087,5,1 +2020-05-26,McCook,South Dakota,46087,5,1 +2020-05-27,McCook,South Dakota,46087,5,1 +2020-05-28,McCook,South Dakota,46087,5,1 +2020-05-29,McCook,South Dakota,46087,5,1 +2020-05-30,McCook,South Dakota,46087,6,1 +2020-05-31,McCook,South Dakota,46087,6,1 +2020-06-01,McCook,South Dakota,46087,6,1 +2020-06-02,McCook,South Dakota,46087,6,1 +2020-06-03,McCook,South Dakota,46087,6,1 +2020-06-04,McCook,South Dakota,46087,6,1 +2020-06-05,McCook,South Dakota,46087,6,1 +2020-06-06,McCook,South Dakota,46087,6,1 +2020-06-07,McCook,South Dakota,46087,6,1 +2020-06-08,McCook,South Dakota,46087,6,1 +2020-06-09,McCook,South Dakota,46087,6,1 +2020-06-10,McCook,South Dakota,46087,7,1 +2020-06-11,McCook,South Dakota,46087,7,1 +2020-06-12,McCook,South Dakota,46087,8,1 +2020-06-13,McCook,South Dakota,46087,8,1 +2020-06-14,McCook,South Dakota,46087,8,1 +2020-06-15,McCook,South Dakota,46087,8,1 +2020-06-16,McCook,South Dakota,46087,8,1 +2020-06-17,McCook,South Dakota,46087,8,1 +2020-06-18,McCook,South Dakota,46087,8,1 +2020-06-19,McCook,South Dakota,46087,8,1 +2020-06-20,McCook,South Dakota,46087,8,1 +2020-06-21,McCook,South Dakota,46087,8,1 +2020-06-22,McCook,South Dakota,46087,8,1 +2020-06-23,McCook,South Dakota,46087,8,1 +2020-06-24,McCook,South Dakota,46087,8,1 +2020-06-25,McCook,South Dakota,46087,9,1 +2020-06-26,McCook,South Dakota,46087,10,1 +2020-06-27,McCook,South Dakota,46087,10,1 +2020-06-28,McCook,South Dakota,46087,10,1 +2020-06-29,McCook,South Dakota,46087,10,1 +2020-06-30,McCook,South Dakota,46087,10,1 +2020-07-01,McCook,South Dakota,46087,10,1 +2020-07-02,McCook,South Dakota,46087,10,1 +2020-07-03,McCook,South Dakota,46087,12,1 +2020-07-04,McCook,South Dakota,46087,13,1 +2020-07-05,McCook,South Dakota,46087,13,1 +2020-07-06,McCook,South Dakota,46087,13,1 +2020-07-07,McCook,South Dakota,46087,14,1 +2020-07-08,McCook,South Dakota,46087,14,1 +2020-07-09,McCook,South Dakota,46087,15,1 +2020-04-25,McPherson,South Dakota,46089,1,0 +2020-04-26,McPherson,South Dakota,46089,1,0 +2020-04-27,McPherson,South Dakota,46089,1,0 +2020-04-28,McPherson,South Dakota,46089,1,0 +2020-04-29,McPherson,South Dakota,46089,1,0 +2020-04-30,McPherson,South Dakota,46089,1,0 +2020-05-01,McPherson,South Dakota,46089,1,0 +2020-05-02,McPherson,South Dakota,46089,1,0 +2020-05-03,McPherson,South Dakota,46089,1,0 +2020-05-04,McPherson,South Dakota,46089,1,0 +2020-05-05,McPherson,South Dakota,46089,1,0 +2020-05-06,McPherson,South Dakota,46089,1,0 +2020-05-07,McPherson,South Dakota,46089,1,0 +2020-05-08,McPherson,South Dakota,46089,1,0 +2020-05-09,McPherson,South Dakota,46089,1,0 +2020-05-10,McPherson,South Dakota,46089,1,0 +2020-05-11,McPherson,South Dakota,46089,1,0 +2020-05-12,McPherson,South Dakota,46089,1,0 +2020-05-13,McPherson,South Dakota,46089,1,0 +2020-05-14,McPherson,South Dakota,46089,1,0 +2020-05-15,McPherson,South Dakota,46089,1,0 +2020-05-16,McPherson,South Dakota,46089,1,0 +2020-05-17,McPherson,South Dakota,46089,1,0 +2020-05-18,McPherson,South Dakota,46089,1,0 +2020-05-19,McPherson,South Dakota,46089,1,0 +2020-05-20,McPherson,South Dakota,46089,1,0 +2020-05-21,McPherson,South Dakota,46089,1,0 +2020-05-22,McPherson,South Dakota,46089,1,0 +2020-05-23,McPherson,South Dakota,46089,1,0 +2020-05-24,McPherson,South Dakota,46089,1,0 +2020-05-25,McPherson,South Dakota,46089,1,0 +2020-05-26,McPherson,South Dakota,46089,1,0 +2020-05-27,McPherson,South Dakota,46089,1,0 +2020-05-28,McPherson,South Dakota,46089,1,0 +2020-05-29,McPherson,South Dakota,46089,1,0 +2020-05-30,McPherson,South Dakota,46089,1,0 +2020-05-31,McPherson,South Dakota,46089,1,0 +2020-06-01,McPherson,South Dakota,46089,1,0 +2020-06-02,McPherson,South Dakota,46089,1,0 +2020-06-03,McPherson,South Dakota,46089,1,0 +2020-06-04,McPherson,South Dakota,46089,1,0 +2020-06-05,McPherson,South Dakota,46089,1,0 +2020-06-06,McPherson,South Dakota,46089,2,0 +2020-06-07,McPherson,South Dakota,46089,2,0 +2020-06-08,McPherson,South Dakota,46089,2,0 +2020-06-09,McPherson,South Dakota,46089,3,0 +2020-06-10,McPherson,South Dakota,46089,3,0 +2020-06-11,McPherson,South Dakota,46089,3,0 +2020-06-12,McPherson,South Dakota,46089,3,0 +2020-06-13,McPherson,South Dakota,46089,3,0 +2020-06-14,McPherson,South Dakota,46089,3,0 +2020-06-15,McPherson,South Dakota,46089,3,0 +2020-06-16,McPherson,South Dakota,46089,3,0 +2020-06-17,McPherson,South Dakota,46089,3,0 +2020-06-18,McPherson,South Dakota,46089,3,0 +2020-06-19,McPherson,South Dakota,46089,3,0 +2020-06-20,McPherson,South Dakota,46089,3,0 +2020-06-21,McPherson,South Dakota,46089,4,0 +2020-06-22,McPherson,South Dakota,46089,4,0 +2020-06-23,McPherson,South Dakota,46089,4,0 +2020-06-24,McPherson,South Dakota,46089,4,0 +2020-06-25,McPherson,South Dakota,46089,4,0 +2020-06-26,McPherson,South Dakota,46089,4,0 +2020-06-27,McPherson,South Dakota,46089,5,0 +2020-06-28,McPherson,South Dakota,46089,4,0 +2020-06-29,McPherson,South Dakota,46089,4,0 +2020-06-30,McPherson,South Dakota,46089,4,0 +2020-07-01,McPherson,South Dakota,46089,4,0 +2020-07-02,McPherson,South Dakota,46089,4,0 +2020-07-03,McPherson,South Dakota,46089,4,0 +2020-07-04,McPherson,South Dakota,46089,5,0 +2020-07-05,McPherson,South Dakota,46089,5,0 +2020-07-06,McPherson,South Dakota,46089,5,0 +2020-07-07,McPherson,South Dakota,46089,5,0 +2020-07-08,McPherson,South Dakota,46089,5,0 +2020-07-09,McPherson,South Dakota,46089,5,0 +2020-03-30,Marshall,South Dakota,46091,1,0 +2020-03-31,Marshall,South Dakota,46091,1,0 +2020-04-01,Marshall,South Dakota,46091,1,0 +2020-04-02,Marshall,South Dakota,46091,1,0 +2020-04-03,Marshall,South Dakota,46091,1,0 +2020-04-04,Marshall,South Dakota,46091,1,0 +2020-04-05,Marshall,South Dakota,46091,1,0 +2020-04-06,Marshall,South Dakota,46091,1,0 +2020-04-07,Marshall,South Dakota,46091,1,0 +2020-04-08,Marshall,South Dakota,46091,1,0 +2020-04-09,Marshall,South Dakota,46091,1,0 +2020-04-10,Marshall,South Dakota,46091,1,0 +2020-04-11,Marshall,South Dakota,46091,1,0 +2020-04-12,Marshall,South Dakota,46091,1,0 +2020-04-13,Marshall,South Dakota,46091,1,0 +2020-04-14,Marshall,South Dakota,46091,1,0 +2020-04-15,Marshall,South Dakota,46091,1,0 +2020-04-16,Marshall,South Dakota,46091,1,0 +2020-04-17,Marshall,South Dakota,46091,1,0 +2020-04-18,Marshall,South Dakota,46091,1,0 +2020-04-19,Marshall,South Dakota,46091,1,0 +2020-04-20,Marshall,South Dakota,46091,1,0 +2020-04-21,Marshall,South Dakota,46091,1,0 +2020-04-22,Marshall,South Dakota,46091,1,0 +2020-04-23,Marshall,South Dakota,46091,1,0 +2020-04-24,Marshall,South Dakota,46091,1,0 +2020-04-25,Marshall,South Dakota,46091,1,0 +2020-04-26,Marshall,South Dakota,46091,1,0 +2020-04-27,Marshall,South Dakota,46091,1,0 +2020-04-28,Marshall,South Dakota,46091,1,0 +2020-04-29,Marshall,South Dakota,46091,1,0 +2020-04-30,Marshall,South Dakota,46091,1,0 +2020-05-01,Marshall,South Dakota,46091,1,0 +2020-05-02,Marshall,South Dakota,46091,1,0 +2020-05-03,Marshall,South Dakota,46091,1,0 +2020-05-04,Marshall,South Dakota,46091,1,0 +2020-05-05,Marshall,South Dakota,46091,1,0 +2020-05-06,Marshall,South Dakota,46091,1,0 +2020-05-07,Marshall,South Dakota,46091,1,0 +2020-05-08,Marshall,South Dakota,46091,1,0 +2020-05-09,Marshall,South Dakota,46091,1,0 +2020-05-10,Marshall,South Dakota,46091,1,0 +2020-05-11,Marshall,South Dakota,46091,1,0 +2020-05-12,Marshall,South Dakota,46091,1,0 +2020-05-13,Marshall,South Dakota,46091,1,0 +2020-05-14,Marshall,South Dakota,46091,1,0 +2020-05-15,Marshall,South Dakota,46091,1,0 +2020-05-16,Marshall,South Dakota,46091,1,0 +2020-05-17,Marshall,South Dakota,46091,1,0 +2020-05-18,Marshall,South Dakota,46091,1,0 +2020-05-19,Marshall,South Dakota,46091,3,0 +2020-05-20,Marshall,South Dakota,46091,3,0 +2020-05-21,Marshall,South Dakota,46091,3,0 +2020-05-22,Marshall,South Dakota,46091,4,0 +2020-05-23,Marshall,South Dakota,46091,4,0 +2020-05-24,Marshall,South Dakota,46091,4,0 +2020-05-25,Marshall,South Dakota,46091,4,0 +2020-05-26,Marshall,South Dakota,46091,4,0 +2020-05-27,Marshall,South Dakota,46091,4,0 +2020-05-28,Marshall,South Dakota,46091,4,0 +2020-05-29,Marshall,South Dakota,46091,4,0 +2020-05-30,Marshall,South Dakota,46091,4,0 +2020-05-31,Marshall,South Dakota,46091,4,0 +2020-06-01,Marshall,South Dakota,46091,4,0 +2020-06-02,Marshall,South Dakota,46091,4,0 +2020-06-03,Marshall,South Dakota,46091,4,0 +2020-06-04,Marshall,South Dakota,46091,4,0 +2020-06-05,Marshall,South Dakota,46091,4,0 +2020-06-06,Marshall,South Dakota,46091,4,0 +2020-06-07,Marshall,South Dakota,46091,4,0 +2020-06-08,Marshall,South Dakota,46091,4,0 +2020-06-09,Marshall,South Dakota,46091,4,0 +2020-06-10,Marshall,South Dakota,46091,4,0 +2020-06-11,Marshall,South Dakota,46091,4,0 +2020-06-12,Marshall,South Dakota,46091,4,0 +2020-06-13,Marshall,South Dakota,46091,4,0 +2020-06-14,Marshall,South Dakota,46091,4,0 +2020-06-15,Marshall,South Dakota,46091,4,0 +2020-06-16,Marshall,South Dakota,46091,5,0 +2020-06-17,Marshall,South Dakota,46091,5,0 +2020-06-18,Marshall,South Dakota,46091,5,0 +2020-06-19,Marshall,South Dakota,46091,5,0 +2020-06-20,Marshall,South Dakota,46091,5,0 +2020-06-21,Marshall,South Dakota,46091,5,0 +2020-06-22,Marshall,South Dakota,46091,5,0 +2020-06-23,Marshall,South Dakota,46091,5,0 +2020-06-24,Marshall,South Dakota,46091,5,0 +2020-06-25,Marshall,South Dakota,46091,5,0 +2020-06-26,Marshall,South Dakota,46091,5,0 +2020-06-27,Marshall,South Dakota,46091,5,0 +2020-06-28,Marshall,South Dakota,46091,5,0 +2020-06-29,Marshall,South Dakota,46091,5,0 +2020-06-30,Marshall,South Dakota,46091,5,0 +2020-07-01,Marshall,South Dakota,46091,5,0 +2020-07-02,Marshall,South Dakota,46091,5,0 +2020-07-03,Marshall,South Dakota,46091,5,0 +2020-07-04,Marshall,South Dakota,46091,5,0 +2020-07-05,Marshall,South Dakota,46091,5,0 +2020-07-06,Marshall,South Dakota,46091,5,0 +2020-07-07,Marshall,South Dakota,46091,5,0 +2020-07-08,Marshall,South Dakota,46091,5,0 +2020-07-09,Marshall,South Dakota,46091,5,0 +2020-03-25,Meade,South Dakota,46093,1,0 +2020-03-26,Meade,South Dakota,46093,1,0 +2020-03-27,Meade,South Dakota,46093,1,0 +2020-03-28,Meade,South Dakota,46093,1,0 +2020-03-29,Meade,South Dakota,46093,1,0 +2020-03-30,Meade,South Dakota,46093,1,0 +2020-03-31,Meade,South Dakota,46093,1,0 +2020-04-01,Meade,South Dakota,46093,1,0 +2020-04-02,Meade,South Dakota,46093,1,0 +2020-04-03,Meade,South Dakota,46093,1,0 +2020-04-04,Meade,South Dakota,46093,1,0 +2020-04-05,Meade,South Dakota,46093,1,0 +2020-04-06,Meade,South Dakota,46093,1,0 +2020-04-07,Meade,South Dakota,46093,1,0 +2020-04-08,Meade,South Dakota,46093,1,0 +2020-04-09,Meade,South Dakota,46093,1,0 +2020-04-10,Meade,South Dakota,46093,1,0 +2020-04-11,Meade,South Dakota,46093,1,0 +2020-04-12,Meade,South Dakota,46093,1,0 +2020-04-13,Meade,South Dakota,46093,1,0 +2020-04-14,Meade,South Dakota,46093,1,0 +2020-04-15,Meade,South Dakota,46093,1,0 +2020-04-16,Meade,South Dakota,46093,1,0 +2020-04-17,Meade,South Dakota,46093,1,0 +2020-04-18,Meade,South Dakota,46093,1,0 +2020-04-19,Meade,South Dakota,46093,1,0 +2020-04-20,Meade,South Dakota,46093,1,0 +2020-04-21,Meade,South Dakota,46093,1,0 +2020-04-22,Meade,South Dakota,46093,1,0 +2020-04-23,Meade,South Dakota,46093,1,0 +2020-04-24,Meade,South Dakota,46093,1,0 +2020-04-25,Meade,South Dakota,46093,1,0 +2020-04-26,Meade,South Dakota,46093,1,0 +2020-04-27,Meade,South Dakota,46093,1,0 +2020-04-28,Meade,South Dakota,46093,1,0 +2020-04-29,Meade,South Dakota,46093,1,0 +2020-04-30,Meade,South Dakota,46093,1,0 +2020-05-01,Meade,South Dakota,46093,1,0 +2020-05-02,Meade,South Dakota,46093,1,0 +2020-05-03,Meade,South Dakota,46093,1,0 +2020-05-04,Meade,South Dakota,46093,1,0 +2020-05-05,Meade,South Dakota,46093,2,0 +2020-05-06,Meade,South Dakota,46093,2,0 +2020-05-07,Meade,South Dakota,46093,2,0 +2020-05-08,Meade,South Dakota,46093,3,0 +2020-05-09,Meade,South Dakota,46093,3,0 +2020-05-10,Meade,South Dakota,46093,3,0 +2020-05-11,Meade,South Dakota,46093,4,0 +2020-05-12,Meade,South Dakota,46093,4,0 +2020-05-13,Meade,South Dakota,46093,5,0 +2020-05-14,Meade,South Dakota,46093,5,0 +2020-05-15,Meade,South Dakota,46093,5,0 +2020-05-16,Meade,South Dakota,46093,5,0 +2020-05-17,Meade,South Dakota,46093,5,0 +2020-05-18,Meade,South Dakota,46093,5,0 +2020-05-19,Meade,South Dakota,46093,5,0 +2020-05-20,Meade,South Dakota,46093,5,0 +2020-05-21,Meade,South Dakota,46093,5,0 +2020-05-22,Meade,South Dakota,46093,6,0 +2020-05-23,Meade,South Dakota,46093,7,0 +2020-05-24,Meade,South Dakota,46093,10,0 +2020-05-25,Meade,South Dakota,46093,10,0 +2020-05-26,Meade,South Dakota,46093,10,0 +2020-05-27,Meade,South Dakota,46093,10,0 +2020-05-28,Meade,South Dakota,46093,10,0 +2020-05-29,Meade,South Dakota,46093,13,0 +2020-05-30,Meade,South Dakota,46093,18,0 +2020-05-31,Meade,South Dakota,46093,19,0 +2020-06-01,Meade,South Dakota,46093,21,0 +2020-06-02,Meade,South Dakota,46093,22,0 +2020-06-03,Meade,South Dakota,46093,22,0 +2020-06-04,Meade,South Dakota,46093,24,0 +2020-06-05,Meade,South Dakota,46093,24,1 +2020-06-06,Meade,South Dakota,46093,24,1 +2020-06-07,Meade,South Dakota,46093,24,1 +2020-06-08,Meade,South Dakota,46093,26,1 +2020-06-09,Meade,South Dakota,46093,26,1 +2020-06-10,Meade,South Dakota,46093,28,1 +2020-06-11,Meade,South Dakota,46093,28,1 +2020-06-12,Meade,South Dakota,46093,30,1 +2020-06-13,Meade,South Dakota,46093,33,1 +2020-06-14,Meade,South Dakota,46093,36,1 +2020-06-15,Meade,South Dakota,46093,37,1 +2020-06-16,Meade,South Dakota,46093,39,1 +2020-06-17,Meade,South Dakota,46093,39,1 +2020-06-18,Meade,South Dakota,46093,40,1 +2020-06-19,Meade,South Dakota,46093,41,1 +2020-06-20,Meade,South Dakota,46093,42,1 +2020-06-21,Meade,South Dakota,46093,42,1 +2020-06-22,Meade,South Dakota,46093,43,1 +2020-06-23,Meade,South Dakota,46093,43,1 +2020-06-24,Meade,South Dakota,46093,43,1 +2020-06-25,Meade,South Dakota,46093,44,1 +2020-06-26,Meade,South Dakota,46093,46,1 +2020-06-27,Meade,South Dakota,46093,47,1 +2020-06-28,Meade,South Dakota,46093,47,1 +2020-06-29,Meade,South Dakota,46093,47,1 +2020-06-30,Meade,South Dakota,46093,48,1 +2020-07-01,Meade,South Dakota,46093,49,1 +2020-07-02,Meade,South Dakota,46093,49,1 +2020-07-03,Meade,South Dakota,46093,50,1 +2020-07-04,Meade,South Dakota,46093,50,1 +2020-07-05,Meade,South Dakota,46093,51,1 +2020-07-06,Meade,South Dakota,46093,51,1 +2020-07-07,Meade,South Dakota,46093,52,1 +2020-07-08,Meade,South Dakota,46093,53,1 +2020-07-09,Meade,South Dakota,46093,53,1 +2020-06-13,Mellette,South Dakota,46095,1,0 +2020-06-14,Mellette,South Dakota,46095,1,0 +2020-06-15,Mellette,South Dakota,46095,1,0 +2020-06-16,Mellette,South Dakota,46095,2,0 +2020-06-17,Mellette,South Dakota,46095,2,0 +2020-06-18,Mellette,South Dakota,46095,2,0 +2020-06-19,Mellette,South Dakota,46095,2,0 +2020-06-20,Mellette,South Dakota,46095,2,0 +2020-06-21,Mellette,South Dakota,46095,2,0 +2020-06-22,Mellette,South Dakota,46095,2,0 +2020-06-23,Mellette,South Dakota,46095,2,0 +2020-06-24,Mellette,South Dakota,46095,3,0 +2020-06-25,Mellette,South Dakota,46095,3,0 +2020-06-26,Mellette,South Dakota,46095,3,0 +2020-06-27,Mellette,South Dakota,46095,3,0 +2020-06-28,Mellette,South Dakota,46095,3,0 +2020-06-29,Mellette,South Dakota,46095,3,0 +2020-06-30,Mellette,South Dakota,46095,3,0 +2020-07-01,Mellette,South Dakota,46095,4,0 +2020-07-02,Mellette,South Dakota,46095,5,0 +2020-07-03,Mellette,South Dakota,46095,5,0 +2020-07-04,Mellette,South Dakota,46095,7,0 +2020-07-05,Mellette,South Dakota,46095,7,0 +2020-07-06,Mellette,South Dakota,46095,7,0 +2020-07-07,Mellette,South Dakota,46095,6,0 +2020-07-08,Mellette,South Dakota,46095,6,0 +2020-07-09,Mellette,South Dakota,46095,6,0 +2020-04-10,Miner,South Dakota,46097,1,0 +2020-04-11,Miner,South Dakota,46097,1,0 +2020-04-12,Miner,South Dakota,46097,1,0 +2020-04-13,Miner,South Dakota,46097,1,0 +2020-04-14,Miner,South Dakota,46097,1,0 +2020-04-15,Miner,South Dakota,46097,1,0 +2020-04-16,Miner,South Dakota,46097,1,0 +2020-04-17,Miner,South Dakota,46097,1,0 +2020-04-18,Miner,South Dakota,46097,1,0 +2020-04-19,Miner,South Dakota,46097,1,0 +2020-04-20,Miner,South Dakota,46097,1,0 +2020-04-21,Miner,South Dakota,46097,1,0 +2020-04-22,Miner,South Dakota,46097,1,0 +2020-04-23,Miner,South Dakota,46097,1,0 +2020-04-24,Miner,South Dakota,46097,1,0 +2020-04-25,Miner,South Dakota,46097,1,0 +2020-04-26,Miner,South Dakota,46097,1,0 +2020-04-27,Miner,South Dakota,46097,1,0 +2020-04-28,Miner,South Dakota,46097,1,0 +2020-04-29,Miner,South Dakota,46097,1,0 +2020-04-30,Miner,South Dakota,46097,1,0 +2020-05-01,Miner,South Dakota,46097,1,0 +2020-05-02,Miner,South Dakota,46097,1,0 +2020-05-03,Miner,South Dakota,46097,1,0 +2020-05-04,Miner,South Dakota,46097,1,0 +2020-05-05,Miner,South Dakota,46097,1,0 +2020-05-06,Miner,South Dakota,46097,1,0 +2020-05-07,Miner,South Dakota,46097,1,0 +2020-05-08,Miner,South Dakota,46097,1,0 +2020-05-09,Miner,South Dakota,46097,1,0 +2020-05-10,Miner,South Dakota,46097,1,0 +2020-05-11,Miner,South Dakota,46097,1,0 +2020-05-12,Miner,South Dakota,46097,1,0 +2020-05-13,Miner,South Dakota,46097,1,0 +2020-05-14,Miner,South Dakota,46097,1,0 +2020-05-15,Miner,South Dakota,46097,1,0 +2020-05-16,Miner,South Dakota,46097,1,0 +2020-05-17,Miner,South Dakota,46097,1,0 +2020-05-18,Miner,South Dakota,46097,1,0 +2020-05-19,Miner,South Dakota,46097,1,0 +2020-05-20,Miner,South Dakota,46097,1,0 +2020-05-21,Miner,South Dakota,46097,1,0 +2020-05-22,Miner,South Dakota,46097,1,0 +2020-05-23,Miner,South Dakota,46097,1,0 +2020-05-24,Miner,South Dakota,46097,1,0 +2020-05-25,Miner,South Dakota,46097,1,0 +2020-05-26,Miner,South Dakota,46097,1,0 +2020-05-27,Miner,South Dakota,46097,1,0 +2020-05-28,Miner,South Dakota,46097,1,0 +2020-05-29,Miner,South Dakota,46097,1,0 +2020-05-30,Miner,South Dakota,46097,1,0 +2020-05-31,Miner,South Dakota,46097,1,0 +2020-06-01,Miner,South Dakota,46097,2,0 +2020-06-02,Miner,South Dakota,46097,2,0 +2020-06-03,Miner,South Dakota,46097,2,0 +2020-06-04,Miner,South Dakota,46097,2,0 +2020-06-05,Miner,South Dakota,46097,2,0 +2020-06-06,Miner,South Dakota,46097,2,0 +2020-06-07,Miner,South Dakota,46097,3,0 +2020-06-08,Miner,South Dakota,46097,3,0 +2020-06-09,Miner,South Dakota,46097,3,0 +2020-06-10,Miner,South Dakota,46097,3,0 +2020-06-11,Miner,South Dakota,46097,3,0 +2020-06-12,Miner,South Dakota,46097,3,0 +2020-06-13,Miner,South Dakota,46097,3,0 +2020-06-14,Miner,South Dakota,46097,3,0 +2020-06-15,Miner,South Dakota,46097,3,0 +2020-06-16,Miner,South Dakota,46097,3,0 +2020-06-17,Miner,South Dakota,46097,3,0 +2020-06-18,Miner,South Dakota,46097,3,0 +2020-06-19,Miner,South Dakota,46097,4,0 +2020-06-20,Miner,South Dakota,46097,5,0 +2020-06-21,Miner,South Dakota,46097,5,0 +2020-06-22,Miner,South Dakota,46097,5,0 +2020-06-23,Miner,South Dakota,46097,5,0 +2020-06-24,Miner,South Dakota,46097,5,0 +2020-06-25,Miner,South Dakota,46097,7,0 +2020-06-26,Miner,South Dakota,46097,8,0 +2020-06-27,Miner,South Dakota,46097,8,0 +2020-06-28,Miner,South Dakota,46097,9,0 +2020-06-29,Miner,South Dakota,46097,9,0 +2020-06-30,Miner,South Dakota,46097,9,0 +2020-07-01,Miner,South Dakota,46097,9,0 +2020-07-02,Miner,South Dakota,46097,9,0 +2020-07-03,Miner,South Dakota,46097,9,0 +2020-07-04,Miner,South Dakota,46097,9,0 +2020-07-05,Miner,South Dakota,46097,10,0 +2020-07-06,Miner,South Dakota,46097,10,0 +2020-07-07,Miner,South Dakota,46097,10,0 +2020-07-08,Miner,South Dakota,46097,10,0 +2020-07-09,Miner,South Dakota,46097,10,0 +2020-03-10,Minnehaha,South Dakota,46099,1,0 +2020-03-11,Minnehaha,South Dakota,46099,3,0 +2020-03-12,Minnehaha,South Dakota,46099,3,0 +2020-03-13,Minnehaha,South Dakota,46099,3,0 +2020-03-14,Minnehaha,South Dakota,46099,3,0 +2020-03-15,Minnehaha,South Dakota,46099,3,0 +2020-03-16,Minnehaha,South Dakota,46099,4,0 +2020-03-17,Minnehaha,South Dakota,46099,5,0 +2020-03-18,Minnehaha,South Dakota,46099,5,0 +2020-03-19,Minnehaha,South Dakota,46099,5,0 +2020-03-20,Minnehaha,South Dakota,46099,5,0 +2020-03-21,Minnehaha,South Dakota,46099,5,0 +2020-03-22,Minnehaha,South Dakota,46099,5,0 +2020-03-23,Minnehaha,South Dakota,46099,5,0 +2020-03-24,Minnehaha,South Dakota,46099,5,0 +2020-03-25,Minnehaha,South Dakota,46099,13,0 +2020-03-26,Minnehaha,South Dakota,46099,16,0 +2020-03-27,Minnehaha,South Dakota,46099,18,0 +2020-03-28,Minnehaha,South Dakota,46099,21,0 +2020-03-29,Minnehaha,South Dakota,46099,25,0 +2020-03-30,Minnehaha,South Dakota,46099,28,0 +2020-03-31,Minnehaha,South Dakota,46099,31,0 +2020-04-01,Minnehaha,South Dakota,46099,40,0 +2020-04-02,Minnehaha,South Dakota,46099,54,0 +2020-04-03,Minnehaha,South Dakota,46099,68,0 +2020-04-04,Minnehaha,South Dakota,46099,81,0 +2020-04-05,Minnehaha,South Dakota,46099,104,0 +2020-04-06,Minnehaha,South Dakota,46099,140,0 +2020-04-07,Minnehaha,South Dakota,46099,165,0 +2020-04-08,Minnehaha,South Dakota,46099,228,0 +2020-04-09,Minnehaha,South Dakota,46099,274,2 +2020-04-10,Minnehaha,South Dakota,46099,352,2 +2020-04-11,Minnehaha,South Dakota,46099,438,2 +2020-04-12,Minnehaha,South Dakota,46099,527,2 +2020-04-13,Minnehaha,South Dakota,46099,654,2 +2020-04-14,Minnehaha,South Dakota,46099,768,2 +2020-04-15,Minnehaha,South Dakota,46099,934,2 +2020-04-16,Minnehaha,South Dakota,46099,1065,3 +2020-04-17,Minnehaha,South Dakota,46099,1157,3 +2020-04-18,Minnehaha,South Dakota,46099,1276,3 +2020-04-19,Minnehaha,South Dakota,46099,1362,3 +2020-04-20,Minnehaha,South Dakota,46099,1405,3 +2020-04-21,Minnehaha,South Dakota,46099,1469,4 +2020-04-22,Minnehaha,South Dakota,46099,1555,5 +2020-04-23,Minnehaha,South Dakota,46099,1636,5 +2020-04-24,Minnehaha,South Dakota,46099,1707,5 +2020-04-25,Minnehaha,South Dakota,46099,1796,5 +2020-04-26,Minnehaha,South Dakota,46099,1854,6 +2020-04-27,Minnehaha,South Dakota,46099,1880,6 +2020-04-28,Minnehaha,South Dakota,46099,1939,6 +2020-04-29,Minnehaha,South Dakota,46099,1984,8 +2020-04-30,Minnehaha,South Dakota,46099,2038,12 +2020-05-01,Minnehaha,South Dakota,46099,2089,16 +2020-05-02,Minnehaha,South Dakota,46099,2123,16 +2020-05-03,Minnehaha,South Dakota,46099,2142,16 +2020-05-04,Minnehaha,South Dakota,46099,2170,16 +2020-05-05,Minnehaha,South Dakota,46099,2195,19 +2020-05-06,Minnehaha,South Dakota,46099,2231,24 +2020-05-07,Minnehaha,South Dakota,46099,2332,26 +2020-05-08,Minnehaha,South Dakota,46099,2535,26 +2020-05-09,Minnehaha,South Dakota,46099,2767,29 +2020-05-10,Minnehaha,South Dakota,46099,2867,29 +2020-05-11,Minnehaha,South Dakota,46099,2952,29 +2020-05-12,Minnehaha,South Dakota,46099,2978,34 +2020-05-13,Minnehaha,South Dakota,46099,3017,34 +2020-05-14,Minnehaha,South Dakota,46099,3050,38 +2020-05-15,Minnehaha,South Dakota,46099,3101,39 +2020-05-16,Minnehaha,South Dakota,46099,3119,39 +2020-05-17,Minnehaha,South Dakota,46099,3135,39 +2020-05-18,Minnehaha,South Dakota,46099,3150,39 +2020-05-19,Minnehaha,South Dakota,46099,3165,40 +2020-05-20,Minnehaha,South Dakota,46099,3182,40 +2020-05-21,Minnehaha,South Dakota,46099,3182,40 +2020-05-22,Minnehaha,South Dakota,46099,3211,43 +2020-05-23,Minnehaha,South Dakota,46099,3248,43 +2020-05-24,Minnehaha,South Dakota,46099,3260,43 +2020-05-25,Minnehaha,South Dakota,46099,3274,43 +2020-05-26,Minnehaha,South Dakota,46099,3289,43 +2020-05-27,Minnehaha,South Dakota,46099,3300,45 +2020-05-28,Minnehaha,South Dakota,46099,3317,45 +2020-05-29,Minnehaha,South Dakota,46099,3330,49 +2020-05-30,Minnehaha,South Dakota,46099,3345,49 +2020-05-31,Minnehaha,South Dakota,46099,3349,49 +2020-06-01,Minnehaha,South Dakota,46099,3355,49 +2020-06-02,Minnehaha,South Dakota,46099,3362,49 +2020-06-03,Minnehaha,South Dakota,46099,3377,49 +2020-06-04,Minnehaha,South Dakota,46099,3385,50 +2020-06-05,Minnehaha,South Dakota,46099,3387,50 +2020-06-06,Minnehaha,South Dakota,46099,3397,50 +2020-06-07,Minnehaha,South Dakota,46099,3407,50 +2020-06-08,Minnehaha,South Dakota,46099,3409,50 +2020-06-09,Minnehaha,South Dakota,46099,3418,51 +2020-06-10,Minnehaha,South Dakota,46099,3430,51 +2020-06-11,Minnehaha,South Dakota,46099,3444,52 +2020-06-12,Minnehaha,South Dakota,46099,3458,53 +2020-06-13,Minnehaha,South Dakota,46099,3467,53 +2020-06-14,Minnehaha,South Dakota,46099,3479,53 +2020-06-15,Minnehaha,South Dakota,46099,3485,53 +2020-06-16,Minnehaha,South Dakota,46099,3488,54 +2020-06-17,Minnehaha,South Dakota,46099,3499,54 +2020-06-18,Minnehaha,South Dakota,46099,3513,54 +2020-06-19,Minnehaha,South Dakota,46099,3526,54 +2020-06-20,Minnehaha,South Dakota,46099,3503,54 +2020-06-21,Minnehaha,South Dakota,46099,3523,54 +2020-06-22,Minnehaha,South Dakota,46099,3534,54 +2020-06-23,Minnehaha,South Dakota,46099,3537,55 +2020-06-24,Minnehaha,South Dakota,46099,3550,56 +2020-06-25,Minnehaha,South Dakota,46099,3560,56 +2020-06-26,Minnehaha,South Dakota,46099,3577,56 +2020-06-27,Minnehaha,South Dakota,46099,3586,57 +2020-06-28,Minnehaha,South Dakota,46099,3598,57 +2020-06-29,Minnehaha,South Dakota,46099,3600,57 +2020-06-30,Minnehaha,South Dakota,46099,3610,57 +2020-07-01,Minnehaha,South Dakota,46099,3627,58 +2020-07-02,Minnehaha,South Dakota,46099,3638,58 +2020-07-03,Minnehaha,South Dakota,46099,3655,58 +2020-07-04,Minnehaha,South Dakota,46099,3659,58 +2020-07-05,Minnehaha,South Dakota,46099,3663,58 +2020-07-06,Minnehaha,South Dakota,46099,3667,58 +2020-07-07,Minnehaha,South Dakota,46099,3685,59 +2020-07-08,Minnehaha,South Dakota,46099,3706,59 +2020-07-09,Minnehaha,South Dakota,46099,3723,59 +2020-04-16,Moody,South Dakota,46101,1,0 +2020-04-17,Moody,South Dakota,46101,1,0 +2020-04-18,Moody,South Dakota,46101,1,0 +2020-04-19,Moody,South Dakota,46101,1,0 +2020-04-20,Moody,South Dakota,46101,1,0 +2020-04-21,Moody,South Dakota,46101,2,0 +2020-04-22,Moody,South Dakota,46101,2,0 +2020-04-23,Moody,South Dakota,46101,2,0 +2020-04-24,Moody,South Dakota,46101,2,0 +2020-04-25,Moody,South Dakota,46101,2,0 +2020-04-26,Moody,South Dakota,46101,3,0 +2020-04-27,Moody,South Dakota,46101,3,0 +2020-04-28,Moody,South Dakota,46101,3,0 +2020-04-29,Moody,South Dakota,46101,5,0 +2020-04-30,Moody,South Dakota,46101,5,0 +2020-05-01,Moody,South Dakota,46101,5,0 +2020-05-02,Moody,South Dakota,46101,5,0 +2020-05-03,Moody,South Dakota,46101,6,0 +2020-05-04,Moody,South Dakota,46101,6,0 +2020-05-05,Moody,South Dakota,46101,6,0 +2020-05-06,Moody,South Dakota,46101,7,0 +2020-05-07,Moody,South Dakota,46101,11,0 +2020-05-08,Moody,South Dakota,46101,14,0 +2020-05-09,Moody,South Dakota,46101,14,0 +2020-05-10,Moody,South Dakota,46101,14,0 +2020-05-11,Moody,South Dakota,46101,14,0 +2020-05-12,Moody,South Dakota,46101,15,0 +2020-05-13,Moody,South Dakota,46101,17,0 +2020-05-14,Moody,South Dakota,46101,17,0 +2020-05-15,Moody,South Dakota,46101,17,0 +2020-05-16,Moody,South Dakota,46101,17,0 +2020-05-17,Moody,South Dakota,46101,17,0 +2020-05-18,Moody,South Dakota,46101,18,0 +2020-05-19,Moody,South Dakota,46101,18,0 +2020-05-20,Moody,South Dakota,46101,18,0 +2020-05-21,Moody,South Dakota,46101,18,0 +2020-05-22,Moody,South Dakota,46101,18,0 +2020-05-23,Moody,South Dakota,46101,18,0 +2020-05-24,Moody,South Dakota,46101,18,0 +2020-05-25,Moody,South Dakota,46101,18,0 +2020-05-26,Moody,South Dakota,46101,18,0 +2020-05-27,Moody,South Dakota,46101,18,0 +2020-05-28,Moody,South Dakota,46101,19,0 +2020-05-29,Moody,South Dakota,46101,19,0 +2020-05-30,Moody,South Dakota,46101,19,0 +2020-05-31,Moody,South Dakota,46101,19,0 +2020-06-01,Moody,South Dakota,46101,19,0 +2020-06-02,Moody,South Dakota,46101,19,0 +2020-06-03,Moody,South Dakota,46101,19,0 +2020-06-04,Moody,South Dakota,46101,19,0 +2020-06-05,Moody,South Dakota,46101,19,0 +2020-06-06,Moody,South Dakota,46101,19,0 +2020-06-07,Moody,South Dakota,46101,19,0 +2020-06-08,Moody,South Dakota,46101,19,0 +2020-06-09,Moody,South Dakota,46101,19,0 +2020-06-10,Moody,South Dakota,46101,19,0 +2020-06-11,Moody,South Dakota,46101,19,0 +2020-06-12,Moody,South Dakota,46101,20,0 +2020-06-13,Moody,South Dakota,46101,20,0 +2020-06-14,Moody,South Dakota,46101,20,0 +2020-06-15,Moody,South Dakota,46101,20,0 +2020-06-16,Moody,South Dakota,46101,20,0 +2020-06-17,Moody,South Dakota,46101,20,0 +2020-06-18,Moody,South Dakota,46101,20,0 +2020-06-19,Moody,South Dakota,46101,21,0 +2020-06-20,Moody,South Dakota,46101,21,0 +2020-06-21,Moody,South Dakota,46101,21,0 +2020-06-22,Moody,South Dakota,46101,21,0 +2020-06-23,Moody,South Dakota,46101,21,0 +2020-06-24,Moody,South Dakota,46101,21,0 +2020-06-25,Moody,South Dakota,46101,21,0 +2020-06-26,Moody,South Dakota,46101,21,0 +2020-06-27,Moody,South Dakota,46101,21,0 +2020-06-28,Moody,South Dakota,46101,21,0 +2020-06-29,Moody,South Dakota,46101,21,0 +2020-06-30,Moody,South Dakota,46101,22,0 +2020-07-01,Moody,South Dakota,46101,23,0 +2020-07-02,Moody,South Dakota,46101,23,0 +2020-07-03,Moody,South Dakota,46101,23,0 +2020-07-04,Moody,South Dakota,46101,23,0 +2020-07-05,Moody,South Dakota,46101,23,0 +2020-07-06,Moody,South Dakota,46101,23,0 +2020-07-07,Moody,South Dakota,46101,23,0 +2020-07-08,Moody,South Dakota,46101,23,0 +2020-07-09,Moody,South Dakota,46101,23,0 +2020-04-08,Oglala Lakota,South Dakota,46102,1,0 +2020-04-09,Oglala Lakota,South Dakota,46102,1,0 +2020-04-10,Oglala Lakota,South Dakota,46102,1,0 +2020-04-11,Oglala Lakota,South Dakota,46102,1,0 +2020-04-12,Oglala Lakota,South Dakota,46102,1,0 +2020-04-13,Oglala Lakota,South Dakota,46102,1,0 +2020-04-14,Oglala Lakota,South Dakota,46102,1,0 +2020-04-15,Oglala Lakota,South Dakota,46102,1,0 +2020-04-16,Oglala Lakota,South Dakota,46102,1,0 +2020-04-17,Oglala Lakota,South Dakota,46102,1,0 +2020-04-18,Oglala Lakota,South Dakota,46102,1,0 +2020-04-19,Oglala Lakota,South Dakota,46102,1,0 +2020-04-20,Oglala Lakota,South Dakota,46102,1,0 +2020-04-21,Oglala Lakota,South Dakota,46102,1,0 +2020-04-22,Oglala Lakota,South Dakota,46102,1,0 +2020-04-23,Oglala Lakota,South Dakota,46102,1,0 +2020-04-24,Oglala Lakota,South Dakota,46102,1,0 +2020-04-25,Oglala Lakota,South Dakota,46102,1,0 +2020-04-26,Oglala Lakota,South Dakota,46102,1,0 +2020-04-27,Oglala Lakota,South Dakota,46102,1,0 +2020-04-28,Oglala Lakota,South Dakota,46102,1,0 +2020-04-29,Oglala Lakota,South Dakota,46102,1,0 +2020-04-30,Oglala Lakota,South Dakota,46102,1,0 +2020-05-01,Oglala Lakota,South Dakota,46102,1,0 +2020-05-02,Oglala Lakota,South Dakota,46102,1,0 +2020-05-03,Oglala Lakota,South Dakota,46102,1,0 +2020-05-04,Oglala Lakota,South Dakota,46102,1,0 +2020-05-05,Oglala Lakota,South Dakota,46102,1,0 +2020-05-06,Oglala Lakota,South Dakota,46102,2,0 +2020-05-07,Oglala Lakota,South Dakota,46102,1,0 +2020-05-08,Oglala Lakota,South Dakota,46102,1,0 +2020-05-09,Oglala Lakota,South Dakota,46102,1,0 +2020-05-10,Oglala Lakota,South Dakota,46102,1,0 +2020-05-11,Oglala Lakota,South Dakota,46102,1,0 +2020-05-12,Oglala Lakota,South Dakota,46102,1,0 +2020-05-13,Oglala Lakota,South Dakota,46102,3,0 +2020-05-14,Oglala Lakota,South Dakota,46102,3,0 +2020-05-15,Oglala Lakota,South Dakota,46102,6,0 +2020-05-16,Oglala Lakota,South Dakota,46102,9,0 +2020-05-17,Oglala Lakota,South Dakota,46102,10,0 +2020-05-18,Oglala Lakota,South Dakota,46102,10,0 +2020-05-19,Oglala Lakota,South Dakota,46102,10,0 +2020-05-20,Oglala Lakota,South Dakota,46102,14,0 +2020-05-21,Oglala Lakota,South Dakota,46102,14,0 +2020-05-22,Oglala Lakota,South Dakota,46102,15,0 +2020-05-23,Oglala Lakota,South Dakota,46102,17,0 +2020-05-24,Oglala Lakota,South Dakota,46102,17,0 +2020-05-25,Oglala Lakota,South Dakota,46102,17,0 +2020-05-26,Oglala Lakota,South Dakota,46102,17,0 +2020-05-27,Oglala Lakota,South Dakota,46102,20,0 +2020-05-28,Oglala Lakota,South Dakota,46102,21,0 +2020-05-29,Oglala Lakota,South Dakota,46102,21,0 +2020-05-30,Oglala Lakota,South Dakota,46102,25,0 +2020-05-31,Oglala Lakota,South Dakota,46102,26,0 +2020-06-01,Oglala Lakota,South Dakota,46102,31,0 +2020-06-02,Oglala Lakota,South Dakota,46102,31,0 +2020-06-03,Oglala Lakota,South Dakota,46102,32,0 +2020-06-04,Oglala Lakota,South Dakota,46102,34,0 +2020-06-05,Oglala Lakota,South Dakota,46102,35,0 +2020-06-06,Oglala Lakota,South Dakota,46102,35,0 +2020-06-07,Oglala Lakota,South Dakota,46102,39,0 +2020-06-08,Oglala Lakota,South Dakota,46102,39,0 +2020-06-09,Oglala Lakota,South Dakota,46102,40,0 +2020-06-10,Oglala Lakota,South Dakota,46102,45,0 +2020-06-11,Oglala Lakota,South Dakota,46102,45,0 +2020-06-12,Oglala Lakota,South Dakota,46102,45,0 +2020-06-13,Oglala Lakota,South Dakota,46102,45,0 +2020-06-14,Oglala Lakota,South Dakota,46102,46,0 +2020-06-15,Oglala Lakota,South Dakota,46102,46,0 +2020-06-16,Oglala Lakota,South Dakota,46102,48,0 +2020-06-17,Oglala Lakota,South Dakota,46102,49,0 +2020-06-18,Oglala Lakota,South Dakota,46102,54,0 +2020-06-19,Oglala Lakota,South Dakota,46102,53,0 +2020-06-20,Oglala Lakota,South Dakota,46102,54,0 +2020-06-21,Oglala Lakota,South Dakota,46102,55,0 +2020-06-22,Oglala Lakota,South Dakota,46102,56,0 +2020-06-23,Oglala Lakota,South Dakota,46102,59,0 +2020-06-24,Oglala Lakota,South Dakota,46102,60,0 +2020-06-25,Oglala Lakota,South Dakota,46102,65,0 +2020-06-26,Oglala Lakota,South Dakota,46102,68,0 +2020-06-27,Oglala Lakota,South Dakota,46102,83,0 +2020-06-28,Oglala Lakota,South Dakota,46102,84,0 +2020-06-29,Oglala Lakota,South Dakota,46102,85,0 +2020-06-30,Oglala Lakota,South Dakota,46102,85,0 +2020-07-01,Oglala Lakota,South Dakota,46102,87,0 +2020-07-02,Oglala Lakota,South Dakota,46102,88,0 +2020-07-03,Oglala Lakota,South Dakota,46102,89,0 +2020-07-04,Oglala Lakota,South Dakota,46102,94,0 +2020-07-05,Oglala Lakota,South Dakota,46102,95,0 +2020-07-06,Oglala Lakota,South Dakota,46102,99,0 +2020-07-07,Oglala Lakota,South Dakota,46102,100,0 +2020-07-08,Oglala Lakota,South Dakota,46102,103,0 +2020-07-09,Oglala Lakota,South Dakota,46102,108,0 +2020-03-23,Pennington,South Dakota,46103,1,0 +2020-03-24,Pennington,South Dakota,46103,1,0 +2020-03-25,Pennington,South Dakota,46103,1,0 +2020-03-26,Pennington,South Dakota,46103,1,0 +2020-03-27,Pennington,South Dakota,46103,3,0 +2020-03-28,Pennington,South Dakota,46103,3,0 +2020-03-29,Pennington,South Dakota,46103,4,0 +2020-03-30,Pennington,South Dakota,46103,5,0 +2020-03-31,Pennington,South Dakota,46103,5,0 +2020-04-01,Pennington,South Dakota,46103,5,0 +2020-04-02,Pennington,South Dakota,46103,6,0 +2020-04-03,Pennington,South Dakota,46103,6,0 +2020-04-04,Pennington,South Dakota,46103,6,0 +2020-04-05,Pennington,South Dakota,46103,6,0 +2020-04-06,Pennington,South Dakota,46103,6,0 +2020-04-07,Pennington,South Dakota,46103,6,0 +2020-04-08,Pennington,South Dakota,46103,6,0 +2020-04-09,Pennington,South Dakota,46103,7,0 +2020-04-10,Pennington,South Dakota,46103,8,0 +2020-04-11,Pennington,South Dakota,46103,8,0 +2020-04-12,Pennington,South Dakota,46103,8,0 +2020-04-13,Pennington,South Dakota,46103,9,0 +2020-04-14,Pennington,South Dakota,46103,9,0 +2020-04-15,Pennington,South Dakota,46103,9,0 +2020-04-16,Pennington,South Dakota,46103,10,0 +2020-04-17,Pennington,South Dakota,46103,10,0 +2020-04-18,Pennington,South Dakota,46103,10,0 +2020-04-19,Pennington,South Dakota,46103,10,0 +2020-04-20,Pennington,South Dakota,46103,11,0 +2020-04-21,Pennington,South Dakota,46103,11,0 +2020-04-22,Pennington,South Dakota,46103,11,0 +2020-04-23,Pennington,South Dakota,46103,11,0 +2020-04-24,Pennington,South Dakota,46103,11,0 +2020-04-25,Pennington,South Dakota,46103,11,0 +2020-04-26,Pennington,South Dakota,46103,12,0 +2020-04-27,Pennington,South Dakota,46103,12,0 +2020-04-28,Pennington,South Dakota,46103,12,0 +2020-04-29,Pennington,South Dakota,46103,12,0 +2020-04-30,Pennington,South Dakota,46103,11,0 +2020-05-01,Pennington,South Dakota,46103,13,0 +2020-05-02,Pennington,South Dakota,46103,13,0 +2020-05-03,Pennington,South Dakota,46103,14,0 +2020-05-04,Pennington,South Dakota,46103,14,0 +2020-05-05,Pennington,South Dakota,46103,16,0 +2020-05-06,Pennington,South Dakota,46103,16,0 +2020-05-07,Pennington,South Dakota,46103,17,0 +2020-05-08,Pennington,South Dakota,46103,18,0 +2020-05-09,Pennington,South Dakota,46103,19,0 +2020-05-10,Pennington,South Dakota,46103,26,0 +2020-05-11,Pennington,South Dakota,46103,27,0 +2020-05-12,Pennington,South Dakota,46103,32,0 +2020-05-13,Pennington,South Dakota,46103,36,0 +2020-05-14,Pennington,South Dakota,46103,40,0 +2020-05-15,Pennington,South Dakota,46103,43,0 +2020-05-16,Pennington,South Dakota,46103,49,0 +2020-05-17,Pennington,South Dakota,46103,52,0 +2020-05-18,Pennington,South Dakota,46103,58,0 +2020-05-19,Pennington,South Dakota,46103,74,1 +2020-05-20,Pennington,South Dakota,46103,85,1 +2020-05-21,Pennington,South Dakota,46103,85,1 +2020-05-22,Pennington,South Dakota,46103,127,1 +2020-05-23,Pennington,South Dakota,46103,138,2 +2020-05-24,Pennington,South Dakota,46103,152,2 +2020-05-25,Pennington,South Dakota,46103,156,2 +2020-05-26,Pennington,South Dakota,46103,162,2 +2020-05-27,Pennington,South Dakota,46103,172,2 +2020-05-28,Pennington,South Dakota,46103,186,2 +2020-05-29,Pennington,South Dakota,46103,201,2 +2020-05-30,Pennington,South Dakota,46103,218,3 +2020-05-31,Pennington,South Dakota,46103,227,3 +2020-06-01,Pennington,South Dakota,46103,235,3 +2020-06-02,Pennington,South Dakota,46103,241,3 +2020-06-03,Pennington,South Dakota,46103,257,3 +2020-06-04,Pennington,South Dakota,46103,275,4 +2020-06-05,Pennington,South Dakota,46103,284,4 +2020-06-06,Pennington,South Dakota,46103,297,4 +2020-06-07,Pennington,South Dakota,46103,305,4 +2020-06-08,Pennington,South Dakota,46103,314,4 +2020-06-09,Pennington,South Dakota,46103,321,5 +2020-06-10,Pennington,South Dakota,46103,335,5 +2020-06-11,Pennington,South Dakota,46103,351,6 +2020-06-12,Pennington,South Dakota,46103,362,6 +2020-06-13,Pennington,South Dakota,46103,378,7 +2020-06-14,Pennington,South Dakota,46103,386,7 +2020-06-15,Pennington,South Dakota,46103,392,7 +2020-06-16,Pennington,South Dakota,46103,402,8 +2020-06-17,Pennington,South Dakota,46103,424,8 +2020-06-18,Pennington,South Dakota,46103,430,8 +2020-06-19,Pennington,South Dakota,46103,437,10 +2020-06-20,Pennington,South Dakota,46103,446,10 +2020-06-21,Pennington,South Dakota,46103,457,10 +2020-06-22,Pennington,South Dakota,46103,462,10 +2020-06-23,Pennington,South Dakota,46103,466,11 +2020-06-24,Pennington,South Dakota,46103,475,11 +2020-06-25,Pennington,South Dakota,46103,482,12 +2020-06-26,Pennington,South Dakota,46103,486,13 +2020-06-27,Pennington,South Dakota,46103,497,15 +2020-06-28,Pennington,South Dakota,46103,507,15 +2020-06-29,Pennington,South Dakota,46103,513,15 +2020-06-30,Pennington,South Dakota,46103,518,15 +2020-07-01,Pennington,South Dakota,46103,523,15 +2020-07-02,Pennington,South Dakota,46103,536,16 +2020-07-03,Pennington,South Dakota,46103,546,16 +2020-07-04,Pennington,South Dakota,46103,556,16 +2020-07-05,Pennington,South Dakota,46103,560,16 +2020-07-06,Pennington,South Dakota,46103,575,16 +2020-07-07,Pennington,South Dakota,46103,590,16 +2020-07-08,Pennington,South Dakota,46103,606,16 +2020-07-09,Pennington,South Dakota,46103,616,17 +2020-03-29,Roberts,South Dakota,46109,1,0 +2020-03-30,Roberts,South Dakota,46109,1,0 +2020-03-31,Roberts,South Dakota,46109,1,0 +2020-04-01,Roberts,South Dakota,46109,2,0 +2020-04-02,Roberts,South Dakota,46109,2,0 +2020-04-03,Roberts,South Dakota,46109,3,0 +2020-04-04,Roberts,South Dakota,46109,4,0 +2020-04-05,Roberts,South Dakota,46109,4,0 +2020-04-06,Roberts,South Dakota,46109,4,0 +2020-04-07,Roberts,South Dakota,46109,4,0 +2020-04-08,Roberts,South Dakota,46109,4,0 +2020-04-09,Roberts,South Dakota,46109,4,0 +2020-04-10,Roberts,South Dakota,46109,4,0 +2020-04-11,Roberts,South Dakota,46109,4,0 +2020-04-12,Roberts,South Dakota,46109,4,0 +2020-04-13,Roberts,South Dakota,46109,4,0 +2020-04-14,Roberts,South Dakota,46109,4,0 +2020-04-15,Roberts,South Dakota,46109,4,0 +2020-04-16,Roberts,South Dakota,46109,4,0 +2020-04-17,Roberts,South Dakota,46109,4,0 +2020-04-18,Roberts,South Dakota,46109,4,0 +2020-04-19,Roberts,South Dakota,46109,4,0 +2020-04-20,Roberts,South Dakota,46109,4,0 +2020-04-21,Roberts,South Dakota,46109,4,0 +2020-04-22,Roberts,South Dakota,46109,4,0 +2020-04-23,Roberts,South Dakota,46109,4,0 +2020-04-24,Roberts,South Dakota,46109,4,0 +2020-04-25,Roberts,South Dakota,46109,4,0 +2020-04-26,Roberts,South Dakota,46109,4,0 +2020-04-27,Roberts,South Dakota,46109,4,0 +2020-04-28,Roberts,South Dakota,46109,4,0 +2020-04-29,Roberts,South Dakota,46109,4,0 +2020-04-30,Roberts,South Dakota,46109,4,0 +2020-05-01,Roberts,South Dakota,46109,8,0 +2020-05-02,Roberts,South Dakota,46109,9,0 +2020-05-03,Roberts,South Dakota,46109,10,0 +2020-05-04,Roberts,South Dakota,46109,10,0 +2020-05-05,Roberts,South Dakota,46109,10,0 +2020-05-06,Roberts,South Dakota,46109,11,0 +2020-05-07,Roberts,South Dakota,46109,11,0 +2020-05-08,Roberts,South Dakota,46109,11,0 +2020-05-09,Roberts,South Dakota,46109,13,0 +2020-05-10,Roberts,South Dakota,46109,14,0 +2020-05-11,Roberts,South Dakota,46109,14,0 +2020-05-12,Roberts,South Dakota,46109,14,0 +2020-05-13,Roberts,South Dakota,46109,14,0 +2020-05-14,Roberts,South Dakota,46109,17,0 +2020-05-15,Roberts,South Dakota,46109,18,0 +2020-05-16,Roberts,South Dakota,46109,19,0 +2020-05-17,Roberts,South Dakota,46109,19,0 +2020-05-18,Roberts,South Dakota,46109,19,0 +2020-05-19,Roberts,South Dakota,46109,20,0 +2020-05-20,Roberts,South Dakota,46109,20,0 +2020-05-21,Roberts,South Dakota,46109,20,0 +2020-05-22,Roberts,South Dakota,46109,22,0 +2020-05-23,Roberts,South Dakota,46109,23,0 +2020-05-24,Roberts,South Dakota,46109,35,0 +2020-05-25,Roberts,South Dakota,46109,35,0 +2020-05-26,Roberts,South Dakota,46109,35,0 +2020-05-27,Roberts,South Dakota,46109,39,0 +2020-05-28,Roberts,South Dakota,46109,39,0 +2020-05-29,Roberts,South Dakota,46109,35,0 +2020-05-30,Roberts,South Dakota,46109,36,0 +2020-05-31,Roberts,South Dakota,46109,36,0 +2020-06-01,Roberts,South Dakota,46109,36,0 +2020-06-02,Roberts,South Dakota,46109,36,0 +2020-06-03,Roberts,South Dakota,46109,36,0 +2020-06-04,Roberts,South Dakota,46109,37,0 +2020-06-05,Roberts,South Dakota,46109,37,0 +2020-06-06,Roberts,South Dakota,46109,38,0 +2020-06-07,Roberts,South Dakota,46109,38,0 +2020-06-08,Roberts,South Dakota,46109,38,0 +2020-06-09,Roberts,South Dakota,46109,39,0 +2020-06-10,Roberts,South Dakota,46109,39,0 +2020-06-11,Roberts,South Dakota,46109,39,0 +2020-06-12,Roberts,South Dakota,46109,40,0 +2020-06-13,Roberts,South Dakota,46109,40,0 +2020-06-14,Roberts,South Dakota,46109,40,0 +2020-06-15,Roberts,South Dakota,46109,40,0 +2020-06-16,Roberts,South Dakota,46109,40,0 +2020-06-17,Roberts,South Dakota,46109,40,0 +2020-06-18,Roberts,South Dakota,46109,40,0 +2020-06-19,Roberts,South Dakota,46109,40,0 +2020-06-20,Roberts,South Dakota,46109,40,0 +2020-06-21,Roberts,South Dakota,46109,40,0 +2020-06-22,Roberts,South Dakota,46109,40,0 +2020-06-23,Roberts,South Dakota,46109,40,0 +2020-06-24,Roberts,South Dakota,46109,40,0 +2020-06-25,Roberts,South Dakota,46109,40,0 +2020-06-26,Roberts,South Dakota,46109,40,0 +2020-06-27,Roberts,South Dakota,46109,40,0 +2020-06-28,Roberts,South Dakota,46109,41,0 +2020-06-29,Roberts,South Dakota,46109,45,0 +2020-06-30,Roberts,South Dakota,46109,47,0 +2020-07-01,Roberts,South Dakota,46109,47,0 +2020-07-02,Roberts,South Dakota,46109,47,0 +2020-07-03,Roberts,South Dakota,46109,49,0 +2020-07-04,Roberts,South Dakota,46109,49,0 +2020-07-05,Roberts,South Dakota,46109,52,0 +2020-07-06,Roberts,South Dakota,46109,52,0 +2020-07-07,Roberts,South Dakota,46109,52,0 +2020-07-08,Roberts,South Dakota,46109,52,0 +2020-07-09,Roberts,South Dakota,46109,53,0 +2020-04-11,Sanborn,South Dakota,46111,1,0 +2020-04-12,Sanborn,South Dakota,46111,1,0 +2020-04-13,Sanborn,South Dakota,46111,2,0 +2020-04-14,Sanborn,South Dakota,46111,2,0 +2020-04-15,Sanborn,South Dakota,46111,3,0 +2020-04-16,Sanborn,South Dakota,46111,3,0 +2020-04-17,Sanborn,South Dakota,46111,3,0 +2020-04-18,Sanborn,South Dakota,46111,3,0 +2020-04-19,Sanborn,South Dakota,46111,3,0 +2020-04-20,Sanborn,South Dakota,46111,3,0 +2020-04-21,Sanborn,South Dakota,46111,3,0 +2020-04-22,Sanborn,South Dakota,46111,3,0 +2020-04-23,Sanborn,South Dakota,46111,3,0 +2020-04-24,Sanborn,South Dakota,46111,3,0 +2020-04-25,Sanborn,South Dakota,46111,3,0 +2020-04-26,Sanborn,South Dakota,46111,3,0 +2020-04-27,Sanborn,South Dakota,46111,3,0 +2020-04-28,Sanborn,South Dakota,46111,3,0 +2020-04-29,Sanborn,South Dakota,46111,3,0 +2020-04-30,Sanborn,South Dakota,46111,3,0 +2020-05-01,Sanborn,South Dakota,46111,3,0 +2020-05-02,Sanborn,South Dakota,46111,3,0 +2020-05-03,Sanborn,South Dakota,46111,3,0 +2020-05-04,Sanborn,South Dakota,46111,3,0 +2020-05-05,Sanborn,South Dakota,46111,3,0 +2020-05-06,Sanborn,South Dakota,46111,3,0 +2020-05-07,Sanborn,South Dakota,46111,3,0 +2020-05-08,Sanborn,South Dakota,46111,3,0 +2020-05-09,Sanborn,South Dakota,46111,3,0 +2020-05-10,Sanborn,South Dakota,46111,3,0 +2020-05-11,Sanborn,South Dakota,46111,3,0 +2020-05-12,Sanborn,South Dakota,46111,3,0 +2020-05-13,Sanborn,South Dakota,46111,3,0 +2020-05-14,Sanborn,South Dakota,46111,3,0 +2020-05-15,Sanborn,South Dakota,46111,4,0 +2020-05-16,Sanborn,South Dakota,46111,5,0 +2020-05-17,Sanborn,South Dakota,46111,5,0 +2020-05-18,Sanborn,South Dakota,46111,6,0 +2020-05-19,Sanborn,South Dakota,46111,6,0 +2020-05-20,Sanborn,South Dakota,46111,7,0 +2020-05-21,Sanborn,South Dakota,46111,7,0 +2020-05-22,Sanborn,South Dakota,46111,8,0 +2020-05-23,Sanborn,South Dakota,46111,9,0 +2020-05-24,Sanborn,South Dakota,46111,10,0 +2020-05-25,Sanborn,South Dakota,46111,11,0 +2020-05-26,Sanborn,South Dakota,46111,11,0 +2020-05-27,Sanborn,South Dakota,46111,11,0 +2020-05-28,Sanborn,South Dakota,46111,12,0 +2020-05-29,Sanborn,South Dakota,46111,12,0 +2020-05-30,Sanborn,South Dakota,46111,13,0 +2020-05-31,Sanborn,South Dakota,46111,13,0 +2020-06-01,Sanborn,South Dakota,46111,13,0 +2020-06-02,Sanborn,South Dakota,46111,13,0 +2020-06-03,Sanborn,South Dakota,46111,13,0 +2020-06-04,Sanborn,South Dakota,46111,13,0 +2020-06-05,Sanborn,South Dakota,46111,13,0 +2020-06-06,Sanborn,South Dakota,46111,13,0 +2020-06-07,Sanborn,South Dakota,46111,13,0 +2020-06-08,Sanborn,South Dakota,46111,13,0 +2020-06-09,Sanborn,South Dakota,46111,13,0 +2020-06-10,Sanborn,South Dakota,46111,13,0 +2020-06-11,Sanborn,South Dakota,46111,13,0 +2020-06-12,Sanborn,South Dakota,46111,13,0 +2020-06-13,Sanborn,South Dakota,46111,13,0 +2020-06-14,Sanborn,South Dakota,46111,13,0 +2020-06-15,Sanborn,South Dakota,46111,13,0 +2020-06-16,Sanborn,South Dakota,46111,13,0 +2020-06-17,Sanborn,South Dakota,46111,13,0 +2020-06-18,Sanborn,South Dakota,46111,13,0 +2020-06-19,Sanborn,South Dakota,46111,12,0 +2020-06-20,Sanborn,South Dakota,46111,12,0 +2020-06-21,Sanborn,South Dakota,46111,12,0 +2020-06-22,Sanborn,South Dakota,46111,12,0 +2020-06-23,Sanborn,South Dakota,46111,12,0 +2020-06-24,Sanborn,South Dakota,46111,12,0 +2020-06-25,Sanborn,South Dakota,46111,12,0 +2020-06-26,Sanborn,South Dakota,46111,12,0 +2020-06-27,Sanborn,South Dakota,46111,12,0 +2020-06-28,Sanborn,South Dakota,46111,12,0 +2020-06-29,Sanborn,South Dakota,46111,12,0 +2020-06-30,Sanborn,South Dakota,46111,12,0 +2020-07-01,Sanborn,South Dakota,46111,12,0 +2020-07-02,Sanborn,South Dakota,46111,12,0 +2020-07-03,Sanborn,South Dakota,46111,12,0 +2020-07-04,Sanborn,South Dakota,46111,12,0 +2020-07-05,Sanborn,South Dakota,46111,12,0 +2020-07-06,Sanborn,South Dakota,46111,12,0 +2020-07-07,Sanborn,South Dakota,46111,12,0 +2020-07-08,Sanborn,South Dakota,46111,12,0 +2020-07-09,Sanborn,South Dakota,46111,12,0 +2020-04-02,Spink,South Dakota,46115,1,0 +2020-04-03,Spink,South Dakota,46115,1,0 +2020-04-04,Spink,South Dakota,46115,2,0 +2020-04-05,Spink,South Dakota,46115,3,0 +2020-04-06,Spink,South Dakota,46115,3,0 +2020-04-07,Spink,South Dakota,46115,3,0 +2020-04-08,Spink,South Dakota,46115,3,0 +2020-04-09,Spink,South Dakota,46115,3,0 +2020-04-10,Spink,South Dakota,46115,3,0 +2020-04-11,Spink,South Dakota,46115,3,0 +2020-04-12,Spink,South Dakota,46115,3,0 +2020-04-13,Spink,South Dakota,46115,3,0 +2020-04-14,Spink,South Dakota,46115,3,0 +2020-04-15,Spink,South Dakota,46115,3,0 +2020-04-16,Spink,South Dakota,46115,3,0 +2020-04-17,Spink,South Dakota,46115,3,0 +2020-04-18,Spink,South Dakota,46115,3,0 +2020-04-19,Spink,South Dakota,46115,3,0 +2020-04-20,Spink,South Dakota,46115,3,0 +2020-04-21,Spink,South Dakota,46115,3,0 +2020-04-22,Spink,South Dakota,46115,3,0 +2020-04-23,Spink,South Dakota,46115,3,0 +2020-04-24,Spink,South Dakota,46115,3,0 +2020-04-25,Spink,South Dakota,46115,3,0 +2020-04-26,Spink,South Dakota,46115,3,0 +2020-04-27,Spink,South Dakota,46115,3,0 +2020-04-28,Spink,South Dakota,46115,3,0 +2020-04-29,Spink,South Dakota,46115,3,0 +2020-04-30,Spink,South Dakota,46115,3,0 +2020-05-01,Spink,South Dakota,46115,3,0 +2020-05-02,Spink,South Dakota,46115,3,0 +2020-05-03,Spink,South Dakota,46115,3,0 +2020-05-04,Spink,South Dakota,46115,3,0 +2020-05-05,Spink,South Dakota,46115,3,0 +2020-05-06,Spink,South Dakota,46115,3,0 +2020-05-07,Spink,South Dakota,46115,3,0 +2020-05-08,Spink,South Dakota,46115,3,0 +2020-05-09,Spink,South Dakota,46115,4,0 +2020-05-10,Spink,South Dakota,46115,4,0 +2020-05-11,Spink,South Dakota,46115,4,0 +2020-05-12,Spink,South Dakota,46115,4,0 +2020-05-13,Spink,South Dakota,46115,4,0 +2020-05-14,Spink,South Dakota,46115,4,0 +2020-05-15,Spink,South Dakota,46115,4,0 +2020-05-16,Spink,South Dakota,46115,4,0 +2020-05-17,Spink,South Dakota,46115,4,0 +2020-05-18,Spink,South Dakota,46115,4,0 +2020-05-19,Spink,South Dakota,46115,4,0 +2020-05-20,Spink,South Dakota,46115,4,0 +2020-05-21,Spink,South Dakota,46115,4,0 +2020-05-22,Spink,South Dakota,46115,4,0 +2020-05-23,Spink,South Dakota,46115,4,0 +2020-05-24,Spink,South Dakota,46115,4,0 +2020-05-25,Spink,South Dakota,46115,4,0 +2020-05-26,Spink,South Dakota,46115,4,0 +2020-05-27,Spink,South Dakota,46115,4,0 +2020-05-28,Spink,South Dakota,46115,4,0 +2020-05-29,Spink,South Dakota,46115,5,0 +2020-05-30,Spink,South Dakota,46115,5,0 +2020-05-31,Spink,South Dakota,46115,5,0 +2020-06-01,Spink,South Dakota,46115,5,0 +2020-06-02,Spink,South Dakota,46115,5,0 +2020-06-03,Spink,South Dakota,46115,5,0 +2020-06-04,Spink,South Dakota,46115,5,0 +2020-06-05,Spink,South Dakota,46115,5,0 +2020-06-06,Spink,South Dakota,46115,5,0 +2020-06-07,Spink,South Dakota,46115,5,0 +2020-06-08,Spink,South Dakota,46115,5,0 +2020-06-09,Spink,South Dakota,46115,5,0 +2020-06-10,Spink,South Dakota,46115,5,0 +2020-06-11,Spink,South Dakota,46115,5,0 +2020-06-12,Spink,South Dakota,46115,5,0 +2020-06-13,Spink,South Dakota,46115,5,0 +2020-06-14,Spink,South Dakota,46115,5,0 +2020-06-15,Spink,South Dakota,46115,5,0 +2020-06-16,Spink,South Dakota,46115,5,0 +2020-06-17,Spink,South Dakota,46115,5,0 +2020-06-18,Spink,South Dakota,46115,5,0 +2020-06-19,Spink,South Dakota,46115,6,0 +2020-06-20,Spink,South Dakota,46115,6,0 +2020-06-21,Spink,South Dakota,46115,7,0 +2020-06-22,Spink,South Dakota,46115,8,0 +2020-06-23,Spink,South Dakota,46115,8,0 +2020-06-24,Spink,South Dakota,46115,9,0 +2020-06-25,Spink,South Dakota,46115,10,0 +2020-06-26,Spink,South Dakota,46115,11,0 +2020-06-27,Spink,South Dakota,46115,11,0 +2020-06-28,Spink,South Dakota,46115,11,0 +2020-06-29,Spink,South Dakota,46115,11,0 +2020-06-30,Spink,South Dakota,46115,11,0 +2020-07-01,Spink,South Dakota,46115,11,0 +2020-07-02,Spink,South Dakota,46115,11,0 +2020-07-03,Spink,South Dakota,46115,12,0 +2020-07-04,Spink,South Dakota,46115,12,0 +2020-07-05,Spink,South Dakota,46115,12,0 +2020-07-06,Spink,South Dakota,46115,12,0 +2020-07-07,Spink,South Dakota,46115,12,0 +2020-07-08,Spink,South Dakota,46115,12,0 +2020-07-09,Spink,South Dakota,46115,12,0 +2020-04-24,Stanley,South Dakota,46117,1,0 +2020-04-25,Stanley,South Dakota,46117,1,0 +2020-04-26,Stanley,South Dakota,46117,1,0 +2020-04-27,Stanley,South Dakota,46117,2,0 +2020-04-28,Stanley,South Dakota,46117,6,0 +2020-04-29,Stanley,South Dakota,46117,6,0 +2020-04-30,Stanley,South Dakota,46117,7,0 +2020-05-01,Stanley,South Dakota,46117,8,0 +2020-05-02,Stanley,South Dakota,46117,8,0 +2020-05-03,Stanley,South Dakota,46117,8,0 +2020-05-04,Stanley,South Dakota,46117,8,0 +2020-05-05,Stanley,South Dakota,46117,8,0 +2020-05-06,Stanley,South Dakota,46117,8,0 +2020-05-07,Stanley,South Dakota,46117,8,0 +2020-05-08,Stanley,South Dakota,46117,8,0 +2020-05-09,Stanley,South Dakota,46117,9,0 +2020-05-10,Stanley,South Dakota,46117,9,0 +2020-05-11,Stanley,South Dakota,46117,8,0 +2020-05-12,Stanley,South Dakota,46117,8,0 +2020-05-13,Stanley,South Dakota,46117,8,0 +2020-05-14,Stanley,South Dakota,46117,8,0 +2020-05-15,Stanley,South Dakota,46117,9,0 +2020-05-16,Stanley,South Dakota,46117,9,0 +2020-05-17,Stanley,South Dakota,46117,9,0 +2020-05-18,Stanley,South Dakota,46117,9,0 +2020-05-19,Stanley,South Dakota,46117,9,0 +2020-05-20,Stanley,South Dakota,46117,9,0 +2020-05-21,Stanley,South Dakota,46117,9,0 +2020-05-22,Stanley,South Dakota,46117,9,0 +2020-05-23,Stanley,South Dakota,46117,9,0 +2020-05-24,Stanley,South Dakota,46117,9,0 +2020-05-25,Stanley,South Dakota,46117,9,0 +2020-05-26,Stanley,South Dakota,46117,9,0 +2020-05-27,Stanley,South Dakota,46117,10,0 +2020-05-28,Stanley,South Dakota,46117,10,0 +2020-05-29,Stanley,South Dakota,46117,10,0 +2020-05-30,Stanley,South Dakota,46117,10,0 +2020-05-31,Stanley,South Dakota,46117,10,0 +2020-06-01,Stanley,South Dakota,46117,10,0 +2020-06-02,Stanley,South Dakota,46117,10,0 +2020-06-03,Stanley,South Dakota,46117,10,0 +2020-06-04,Stanley,South Dakota,46117,10,0 +2020-06-05,Stanley,South Dakota,46117,10,0 +2020-06-06,Stanley,South Dakota,46117,10,0 +2020-06-07,Stanley,South Dakota,46117,10,0 +2020-06-08,Stanley,South Dakota,46117,10,0 +2020-06-09,Stanley,South Dakota,46117,10,0 +2020-06-10,Stanley,South Dakota,46117,10,0 +2020-06-11,Stanley,South Dakota,46117,11,0 +2020-06-12,Stanley,South Dakota,46117,11,0 +2020-06-13,Stanley,South Dakota,46117,11,0 +2020-06-14,Stanley,South Dakota,46117,11,0 +2020-06-15,Stanley,South Dakota,46117,11,0 +2020-06-16,Stanley,South Dakota,46117,11,0 +2020-06-17,Stanley,South Dakota,46117,11,0 +2020-06-18,Stanley,South Dakota,46117,11,0 +2020-06-19,Stanley,South Dakota,46117,11,0 +2020-06-20,Stanley,South Dakota,46117,12,0 +2020-06-21,Stanley,South Dakota,46117,12,0 +2020-06-22,Stanley,South Dakota,46117,12,0 +2020-06-23,Stanley,South Dakota,46117,12,0 +2020-06-24,Stanley,South Dakota,46117,12,0 +2020-06-25,Stanley,South Dakota,46117,12,0 +2020-06-26,Stanley,South Dakota,46117,12,0 +2020-06-27,Stanley,South Dakota,46117,12,0 +2020-06-28,Stanley,South Dakota,46117,12,0 +2020-06-29,Stanley,South Dakota,46117,12,0 +2020-06-30,Stanley,South Dakota,46117,12,0 +2020-07-01,Stanley,South Dakota,46117,12,0 +2020-07-02,Stanley,South Dakota,46117,12,0 +2020-07-03,Stanley,South Dakota,46117,13,0 +2020-07-04,Stanley,South Dakota,46117,13,0 +2020-07-05,Stanley,South Dakota,46117,14,0 +2020-07-06,Stanley,South Dakota,46117,14,0 +2020-07-07,Stanley,South Dakota,46117,14,0 +2020-07-08,Stanley,South Dakota,46117,14,0 +2020-07-09,Stanley,South Dakota,46117,14,0 +2020-04-12,Sully,South Dakota,46119,1,0 +2020-04-13,Sully,South Dakota,46119,1,0 +2020-04-14,Sully,South Dakota,46119,1,0 +2020-04-15,Sully,South Dakota,46119,1,0 +2020-04-16,Sully,South Dakota,46119,1,0 +2020-04-17,Sully,South Dakota,46119,1,0 +2020-04-18,Sully,South Dakota,46119,1,0 +2020-04-19,Sully,South Dakota,46119,1,0 +2020-04-20,Sully,South Dakota,46119,1,0 +2020-04-21,Sully,South Dakota,46119,1,0 +2020-04-22,Sully,South Dakota,46119,1,0 +2020-04-23,Sully,South Dakota,46119,1,0 +2020-04-24,Sully,South Dakota,46119,1,0 +2020-04-25,Sully,South Dakota,46119,1,0 +2020-04-26,Sully,South Dakota,46119,1,0 +2020-04-27,Sully,South Dakota,46119,1,0 +2020-04-28,Sully,South Dakota,46119,1,0 +2020-04-29,Sully,South Dakota,46119,1,0 +2020-04-30,Sully,South Dakota,46119,1,0 +2020-05-01,Sully,South Dakota,46119,1,0 +2020-05-02,Sully,South Dakota,46119,1,0 +2020-05-03,Sully,South Dakota,46119,1,0 +2020-05-04,Sully,South Dakota,46119,1,0 +2020-05-05,Sully,South Dakota,46119,1,0 +2020-05-06,Sully,South Dakota,46119,1,0 +2020-05-07,Sully,South Dakota,46119,1,0 +2020-05-08,Sully,South Dakota,46119,1,0 +2020-05-09,Sully,South Dakota,46119,1,0 +2020-05-10,Sully,South Dakota,46119,1,0 +2020-05-11,Sully,South Dakota,46119,1,0 +2020-05-12,Sully,South Dakota,46119,1,0 +2020-05-13,Sully,South Dakota,46119,1,0 +2020-05-14,Sully,South Dakota,46119,1,0 +2020-05-15,Sully,South Dakota,46119,1,0 +2020-05-16,Sully,South Dakota,46119,1,0 +2020-05-17,Sully,South Dakota,46119,1,0 +2020-05-18,Sully,South Dakota,46119,1,0 +2020-05-19,Sully,South Dakota,46119,1,0 +2020-05-20,Sully,South Dakota,46119,1,0 +2020-05-21,Sully,South Dakota,46119,1,0 +2020-05-22,Sully,South Dakota,46119,1,0 +2020-05-23,Sully,South Dakota,46119,1,0 +2020-05-24,Sully,South Dakota,46119,1,0 +2020-05-25,Sully,South Dakota,46119,1,0 +2020-05-26,Sully,South Dakota,46119,1,0 +2020-05-27,Sully,South Dakota,46119,1,0 +2020-05-28,Sully,South Dakota,46119,1,0 +2020-05-29,Sully,South Dakota,46119,1,0 +2020-05-30,Sully,South Dakota,46119,1,0 +2020-05-31,Sully,South Dakota,46119,1,0 +2020-06-01,Sully,South Dakota,46119,1,0 +2020-06-02,Sully,South Dakota,46119,1,0 +2020-06-03,Sully,South Dakota,46119,1,0 +2020-06-04,Sully,South Dakota,46119,1,0 +2020-06-05,Sully,South Dakota,46119,1,0 +2020-06-06,Sully,South Dakota,46119,1,0 +2020-06-07,Sully,South Dakota,46119,1,0 +2020-06-08,Sully,South Dakota,46119,1,0 +2020-06-09,Sully,South Dakota,46119,1,0 +2020-06-10,Sully,South Dakota,46119,1,0 +2020-06-11,Sully,South Dakota,46119,1,0 +2020-06-12,Sully,South Dakota,46119,1,0 +2020-06-13,Sully,South Dakota,46119,1,0 +2020-06-14,Sully,South Dakota,46119,1,0 +2020-06-15,Sully,South Dakota,46119,1,0 +2020-06-16,Sully,South Dakota,46119,1,0 +2020-06-17,Sully,South Dakota,46119,1,0 +2020-06-18,Sully,South Dakota,46119,1,0 +2020-06-19,Sully,South Dakota,46119,1,0 +2020-06-20,Sully,South Dakota,46119,1,0 +2020-06-21,Sully,South Dakota,46119,1,0 +2020-06-22,Sully,South Dakota,46119,1,0 +2020-06-23,Sully,South Dakota,46119,1,0 +2020-06-24,Sully,South Dakota,46119,1,0 +2020-06-25,Sully,South Dakota,46119,1,0 +2020-06-26,Sully,South Dakota,46119,1,0 +2020-06-27,Sully,South Dakota,46119,1,0 +2020-06-28,Sully,South Dakota,46119,1,0 +2020-06-29,Sully,South Dakota,46119,1,0 +2020-06-30,Sully,South Dakota,46119,1,0 +2020-07-01,Sully,South Dakota,46119,1,0 +2020-07-02,Sully,South Dakota,46119,1,0 +2020-07-03,Sully,South Dakota,46119,1,0 +2020-07-04,Sully,South Dakota,46119,1,0 +2020-07-05,Sully,South Dakota,46119,1,0 +2020-07-06,Sully,South Dakota,46119,1,0 +2020-07-07,Sully,South Dakota,46119,1,0 +2020-07-08,Sully,South Dakota,46119,1,0 +2020-07-09,Sully,South Dakota,46119,1,0 +2020-03-27,Todd,South Dakota,46121,1,0 +2020-03-28,Todd,South Dakota,46121,1,0 +2020-03-29,Todd,South Dakota,46121,1,0 +2020-03-30,Todd,South Dakota,46121,1,0 +2020-03-31,Todd,South Dakota,46121,1,0 +2020-04-01,Todd,South Dakota,46121,1,0 +2020-04-02,Todd,South Dakota,46121,1,0 +2020-04-03,Todd,South Dakota,46121,1,0 +2020-04-04,Todd,South Dakota,46121,1,0 +2020-04-05,Todd,South Dakota,46121,1,0 +2020-04-06,Todd,South Dakota,46121,1,0 +2020-04-07,Todd,South Dakota,46121,1,0 +2020-04-08,Todd,South Dakota,46121,1,0 +2020-04-09,Todd,South Dakota,46121,1,0 +2020-04-10,Todd,South Dakota,46121,1,0 +2020-04-11,Todd,South Dakota,46121,1,0 +2020-04-12,Todd,South Dakota,46121,1,0 +2020-04-13,Todd,South Dakota,46121,1,0 +2020-04-14,Todd,South Dakota,46121,1,0 +2020-04-15,Todd,South Dakota,46121,1,0 +2020-04-16,Todd,South Dakota,46121,1,0 +2020-04-17,Todd,South Dakota,46121,1,0 +2020-04-18,Todd,South Dakota,46121,1,0 +2020-04-19,Todd,South Dakota,46121,1,0 +2020-04-20,Todd,South Dakota,46121,1,0 +2020-04-21,Todd,South Dakota,46121,1,0 +2020-04-22,Todd,South Dakota,46121,1,0 +2020-04-23,Todd,South Dakota,46121,1,0 +2020-04-24,Todd,South Dakota,46121,1,0 +2020-04-25,Todd,South Dakota,46121,1,0 +2020-04-26,Todd,South Dakota,46121,1,0 +2020-04-27,Todd,South Dakota,46121,1,0 +2020-04-28,Todd,South Dakota,46121,1,0 +2020-04-29,Todd,South Dakota,46121,1,0 +2020-04-30,Todd,South Dakota,46121,1,0 +2020-05-01,Todd,South Dakota,46121,2,0 +2020-05-02,Todd,South Dakota,46121,3,0 +2020-05-03,Todd,South Dakota,46121,3,0 +2020-05-04,Todd,South Dakota,46121,3,0 +2020-05-05,Todd,South Dakota,46121,6,0 +2020-05-06,Todd,South Dakota,46121,7,0 +2020-05-07,Todd,South Dakota,46121,7,0 +2020-05-08,Todd,South Dakota,46121,8,0 +2020-05-09,Todd,South Dakota,46121,8,0 +2020-05-10,Todd,South Dakota,46121,9,0 +2020-05-11,Todd,South Dakota,46121,10,0 +2020-05-12,Todd,South Dakota,46121,13,0 +2020-05-13,Todd,South Dakota,46121,14,0 +2020-05-14,Todd,South Dakota,46121,13,0 +2020-05-15,Todd,South Dakota,46121,15,0 +2020-05-16,Todd,South Dakota,46121,16,0 +2020-05-17,Todd,South Dakota,46121,16,0 +2020-05-18,Todd,South Dakota,46121,17,0 +2020-05-19,Todd,South Dakota,46121,17,0 +2020-05-20,Todd,South Dakota,46121,17,0 +2020-05-21,Todd,South Dakota,46121,17,0 +2020-05-22,Todd,South Dakota,46121,17,0 +2020-05-23,Todd,South Dakota,46121,17,0 +2020-05-24,Todd,South Dakota,46121,18,0 +2020-05-25,Todd,South Dakota,46121,18,0 +2020-05-26,Todd,South Dakota,46121,20,0 +2020-05-27,Todd,South Dakota,46121,22,1 +2020-05-28,Todd,South Dakota,46121,23,1 +2020-05-29,Todd,South Dakota,46121,23,1 +2020-05-30,Todd,South Dakota,46121,26,1 +2020-05-31,Todd,South Dakota,46121,27,1 +2020-06-01,Todd,South Dakota,46121,27,1 +2020-06-02,Todd,South Dakota,46121,28,1 +2020-06-03,Todd,South Dakota,46121,28,1 +2020-06-04,Todd,South Dakota,46121,31,1 +2020-06-05,Todd,South Dakota,46121,33,1 +2020-06-06,Todd,South Dakota,46121,36,1 +2020-06-07,Todd,South Dakota,46121,37,1 +2020-06-08,Todd,South Dakota,46121,38,1 +2020-06-09,Todd,South Dakota,46121,42,1 +2020-06-10,Todd,South Dakota,46121,44,1 +2020-06-11,Todd,South Dakota,46121,45,1 +2020-06-12,Todd,South Dakota,46121,46,1 +2020-06-13,Todd,South Dakota,46121,47,1 +2020-06-14,Todd,South Dakota,46121,47,1 +2020-06-15,Todd,South Dakota,46121,47,1 +2020-06-16,Todd,South Dakota,46121,48,1 +2020-06-17,Todd,South Dakota,46121,50,1 +2020-06-18,Todd,South Dakota,46121,50,1 +2020-06-19,Todd,South Dakota,46121,50,1 +2020-06-20,Todd,South Dakota,46121,50,1 +2020-06-21,Todd,South Dakota,46121,50,1 +2020-06-22,Todd,South Dakota,46121,50,1 +2020-06-23,Todd,South Dakota,46121,50,1 +2020-06-24,Todd,South Dakota,46121,51,1 +2020-06-25,Todd,South Dakota,46121,52,1 +2020-06-26,Todd,South Dakota,46121,53,1 +2020-06-27,Todd,South Dakota,46121,56,1 +2020-06-28,Todd,South Dakota,46121,56,1 +2020-06-29,Todd,South Dakota,46121,57,1 +2020-06-30,Todd,South Dakota,46121,57,1 +2020-07-01,Todd,South Dakota,46121,57,1 +2020-07-02,Todd,South Dakota,46121,57,1 +2020-07-03,Todd,South Dakota,46121,57,1 +2020-07-04,Todd,South Dakota,46121,57,1 +2020-07-05,Todd,South Dakota,46121,57,1 +2020-07-06,Todd,South Dakota,46121,57,1 +2020-07-07,Todd,South Dakota,46121,57,1 +2020-07-08,Todd,South Dakota,46121,59,1 +2020-07-09,Todd,South Dakota,46121,61,2 +2020-05-14,Tripp,South Dakota,46123,1,0 +2020-05-15,Tripp,South Dakota,46123,1,0 +2020-05-16,Tripp,South Dakota,46123,2,0 +2020-05-17,Tripp,South Dakota,46123,2,0 +2020-05-18,Tripp,South Dakota,46123,2,0 +2020-05-19,Tripp,South Dakota,46123,2,0 +2020-05-20,Tripp,South Dakota,46123,2,0 +2020-05-21,Tripp,South Dakota,46123,2,0 +2020-05-22,Tripp,South Dakota,46123,3,0 +2020-05-23,Tripp,South Dakota,46123,6,0 +2020-05-24,Tripp,South Dakota,46123,6,0 +2020-05-25,Tripp,South Dakota,46123,6,0 +2020-05-26,Tripp,South Dakota,46123,6,0 +2020-05-27,Tripp,South Dakota,46123,6,0 +2020-05-28,Tripp,South Dakota,46123,6,0 +2020-05-29,Tripp,South Dakota,46123,6,0 +2020-05-30,Tripp,South Dakota,46123,6,0 +2020-05-31,Tripp,South Dakota,46123,6,0 +2020-06-01,Tripp,South Dakota,46123,6,0 +2020-06-02,Tripp,South Dakota,46123,6,0 +2020-06-03,Tripp,South Dakota,46123,6,0 +2020-06-04,Tripp,South Dakota,46123,6,0 +2020-06-05,Tripp,South Dakota,46123,6,0 +2020-06-06,Tripp,South Dakota,46123,6,0 +2020-06-07,Tripp,South Dakota,46123,6,0 +2020-06-08,Tripp,South Dakota,46123,6,0 +2020-06-09,Tripp,South Dakota,46123,6,0 +2020-06-10,Tripp,South Dakota,46123,6,0 +2020-06-11,Tripp,South Dakota,46123,6,0 +2020-06-12,Tripp,South Dakota,46123,7,0 +2020-06-13,Tripp,South Dakota,46123,7,0 +2020-06-14,Tripp,South Dakota,46123,7,0 +2020-06-15,Tripp,South Dakota,46123,7,0 +2020-06-16,Tripp,South Dakota,46123,8,0 +2020-06-17,Tripp,South Dakota,46123,9,0 +2020-06-18,Tripp,South Dakota,46123,9,0 +2020-06-19,Tripp,South Dakota,46123,9,0 +2020-06-20,Tripp,South Dakota,46123,9,0 +2020-06-21,Tripp,South Dakota,46123,12,0 +2020-06-22,Tripp,South Dakota,46123,12,0 +2020-06-23,Tripp,South Dakota,46123,13,0 +2020-06-24,Tripp,South Dakota,46123,13,0 +2020-06-25,Tripp,South Dakota,46123,13,0 +2020-06-26,Tripp,South Dakota,46123,15,0 +2020-06-27,Tripp,South Dakota,46123,15,0 +2020-06-28,Tripp,South Dakota,46123,15,0 +2020-06-29,Tripp,South Dakota,46123,16,0 +2020-06-30,Tripp,South Dakota,46123,16,0 +2020-07-01,Tripp,South Dakota,46123,16,0 +2020-07-02,Tripp,South Dakota,46123,17,0 +2020-07-03,Tripp,South Dakota,46123,18,0 +2020-07-04,Tripp,South Dakota,46123,18,0 +2020-07-05,Tripp,South Dakota,46123,18,0 +2020-07-06,Tripp,South Dakota,46123,18,0 +2020-07-07,Tripp,South Dakota,46123,18,0 +2020-07-08,Tripp,South Dakota,46123,18,0 +2020-07-09,Tripp,South Dakota,46123,18,0 +2020-03-29,Turner,South Dakota,46125,1,0 +2020-03-30,Turner,South Dakota,46125,1,0 +2020-03-31,Turner,South Dakota,46125,1,0 +2020-04-01,Turner,South Dakota,46125,1,0 +2020-04-02,Turner,South Dakota,46125,2,0 +2020-04-03,Turner,South Dakota,46125,3,0 +2020-04-04,Turner,South Dakota,46125,3,0 +2020-04-05,Turner,South Dakota,46125,4,0 +2020-04-06,Turner,South Dakota,46125,4,0 +2020-04-07,Turner,South Dakota,46125,4,0 +2020-04-08,Turner,South Dakota,46125,5,0 +2020-04-09,Turner,South Dakota,46125,5,0 +2020-04-10,Turner,South Dakota,46125,5,0 +2020-04-11,Turner,South Dakota,46125,5,0 +2020-04-12,Turner,South Dakota,46125,5,0 +2020-04-13,Turner,South Dakota,46125,5,0 +2020-04-14,Turner,South Dakota,46125,5,0 +2020-04-15,Turner,South Dakota,46125,5,0 +2020-04-16,Turner,South Dakota,46125,5,0 +2020-04-17,Turner,South Dakota,46125,5,0 +2020-04-18,Turner,South Dakota,46125,5,0 +2020-04-19,Turner,South Dakota,46125,6,0 +2020-04-20,Turner,South Dakota,46125,6,0 +2020-04-21,Turner,South Dakota,46125,6,0 +2020-04-22,Turner,South Dakota,46125,9,0 +2020-04-23,Turner,South Dakota,46125,13,0 +2020-04-24,Turner,South Dakota,46125,13,0 +2020-04-25,Turner,South Dakota,46125,15,0 +2020-04-26,Turner,South Dakota,46125,15,0 +2020-04-27,Turner,South Dakota,46125,15,0 +2020-04-28,Turner,South Dakota,46125,15,0 +2020-04-29,Turner,South Dakota,46125,15,0 +2020-04-30,Turner,South Dakota,46125,17,0 +2020-05-01,Turner,South Dakota,46125,17,0 +2020-05-02,Turner,South Dakota,46125,17,0 +2020-05-03,Turner,South Dakota,46125,17,0 +2020-05-04,Turner,South Dakota,46125,17,0 +2020-05-05,Turner,South Dakota,46125,17,0 +2020-05-06,Turner,South Dakota,46125,18,0 +2020-05-07,Turner,South Dakota,46125,18,0 +2020-05-08,Turner,South Dakota,46125,18,0 +2020-05-09,Turner,South Dakota,46125,18,0 +2020-05-10,Turner,South Dakota,46125,18,0 +2020-05-11,Turner,South Dakota,46125,18,0 +2020-05-12,Turner,South Dakota,46125,18,0 +2020-05-13,Turner,South Dakota,46125,18,0 +2020-05-14,Turner,South Dakota,46125,18,0 +2020-05-15,Turner,South Dakota,46125,19,0 +2020-05-16,Turner,South Dakota,46125,19,0 +2020-05-17,Turner,South Dakota,46125,19,0 +2020-05-18,Turner,South Dakota,46125,19,0 +2020-05-19,Turner,South Dakota,46125,21,0 +2020-05-20,Turner,South Dakota,46125,22,0 +2020-05-21,Turner,South Dakota,46125,22,0 +2020-05-22,Turner,South Dakota,46125,22,0 +2020-05-23,Turner,South Dakota,46125,22,0 +2020-05-24,Turner,South Dakota,46125,22,0 +2020-05-25,Turner,South Dakota,46125,23,0 +2020-05-26,Turner,South Dakota,46125,23,0 +2020-05-27,Turner,South Dakota,46125,24,0 +2020-05-28,Turner,South Dakota,46125,24,0 +2020-05-29,Turner,South Dakota,46125,24,0 +2020-05-30,Turner,South Dakota,46125,24,0 +2020-05-31,Turner,South Dakota,46125,24,0 +2020-06-01,Turner,South Dakota,46125,24,0 +2020-06-02,Turner,South Dakota,46125,25,0 +2020-06-03,Turner,South Dakota,46125,25,0 +2020-06-04,Turner,South Dakota,46125,25,0 +2020-06-05,Turner,South Dakota,46125,25,0 +2020-06-06,Turner,South Dakota,46125,25,0 +2020-06-07,Turner,South Dakota,46125,25,0 +2020-06-08,Turner,South Dakota,46125,25,0 +2020-06-09,Turner,South Dakota,46125,25,0 +2020-06-10,Turner,South Dakota,46125,25,0 +2020-06-11,Turner,South Dakota,46125,25,0 +2020-06-12,Turner,South Dakota,46125,25,0 +2020-06-13,Turner,South Dakota,46125,25,0 +2020-06-14,Turner,South Dakota,46125,25,0 +2020-06-15,Turner,South Dakota,46125,25,0 +2020-06-16,Turner,South Dakota,46125,25,0 +2020-06-17,Turner,South Dakota,46125,25,0 +2020-06-18,Turner,South Dakota,46125,25,0 +2020-06-19,Turner,South Dakota,46125,25,0 +2020-06-20,Turner,South Dakota,46125,25,0 +2020-06-21,Turner,South Dakota,46125,24,0 +2020-06-22,Turner,South Dakota,46125,24,0 +2020-06-23,Turner,South Dakota,46125,24,0 +2020-06-24,Turner,South Dakota,46125,24,0 +2020-06-25,Turner,South Dakota,46125,24,0 +2020-06-26,Turner,South Dakota,46125,24,0 +2020-06-27,Turner,South Dakota,46125,25,0 +2020-06-28,Turner,South Dakota,46125,24,0 +2020-06-29,Turner,South Dakota,46125,24,0 +2020-06-30,Turner,South Dakota,46125,24,0 +2020-07-01,Turner,South Dakota,46125,25,0 +2020-07-02,Turner,South Dakota,46125,25,0 +2020-07-03,Turner,South Dakota,46125,25,0 +2020-07-04,Turner,South Dakota,46125,25,0 +2020-07-05,Turner,South Dakota,46125,25,0 +2020-07-06,Turner,South Dakota,46125,27,0 +2020-07-07,Turner,South Dakota,46125,27,0 +2020-07-08,Turner,South Dakota,46125,27,0 +2020-07-09,Turner,South Dakota,46125,28,0 +2020-03-27,Union,South Dakota,46127,1,0 +2020-03-28,Union,South Dakota,46127,1,0 +2020-03-29,Union,South Dakota,46127,1,0 +2020-03-30,Union,South Dakota,46127,1,0 +2020-03-31,Union,South Dakota,46127,1,0 +2020-04-01,Union,South Dakota,46127,1,0 +2020-04-02,Union,South Dakota,46127,3,0 +2020-04-03,Union,South Dakota,46127,3,0 +2020-04-04,Union,South Dakota,46127,3,0 +2020-04-05,Union,South Dakota,46127,3,0 +2020-04-06,Union,South Dakota,46127,3,0 +2020-04-07,Union,South Dakota,46127,3,0 +2020-04-08,Union,South Dakota,46127,3,0 +2020-04-09,Union,South Dakota,46127,3,0 +2020-04-10,Union,South Dakota,46127,3,0 +2020-04-11,Union,South Dakota,46127,4,0 +2020-04-12,Union,South Dakota,46127,4,0 +2020-04-13,Union,South Dakota,46127,5,0 +2020-04-14,Union,South Dakota,46127,5,0 +2020-04-15,Union,South Dakota,46127,4,0 +2020-04-16,Union,South Dakota,46127,4,0 +2020-04-17,Union,South Dakota,46127,4,0 +2020-04-18,Union,South Dakota,46127,5,0 +2020-04-19,Union,South Dakota,46127,6,0 +2020-04-20,Union,South Dakota,46127,7,0 +2020-04-21,Union,South Dakota,46127,7,0 +2020-04-22,Union,South Dakota,46127,7,0 +2020-04-23,Union,South Dakota,46127,8,0 +2020-04-24,Union,South Dakota,46127,11,0 +2020-04-25,Union,South Dakota,46127,12,0 +2020-04-26,Union,South Dakota,46127,12,0 +2020-04-27,Union,South Dakota,46127,12,0 +2020-04-28,Union,South Dakota,46127,14,0 +2020-04-29,Union,South Dakota,46127,17,0 +2020-04-30,Union,South Dakota,46127,18,0 +2020-05-01,Union,South Dakota,46127,21,0 +2020-05-02,Union,South Dakota,46127,27,0 +2020-05-03,Union,South Dakota,46127,31,0 +2020-05-04,Union,South Dakota,46127,32,0 +2020-05-05,Union,South Dakota,46127,46,0 +2020-05-06,Union,South Dakota,46127,46,0 +2020-05-07,Union,South Dakota,46127,48,0 +2020-05-08,Union,South Dakota,46127,50,0 +2020-05-09,Union,South Dakota,46127,53,0 +2020-05-10,Union,South Dakota,46127,53,0 +2020-05-11,Union,South Dakota,46127,53,0 +2020-05-12,Union,South Dakota,46127,56,0 +2020-05-13,Union,South Dakota,46127,56,0 +2020-05-14,Union,South Dakota,46127,57,0 +2020-05-15,Union,South Dakota,46127,57,0 +2020-05-16,Union,South Dakota,46127,60,0 +2020-05-17,Union,South Dakota,46127,60,0 +2020-05-18,Union,South Dakota,46127,62,0 +2020-05-19,Union,South Dakota,46127,62,0 +2020-05-20,Union,South Dakota,46127,68,0 +2020-05-21,Union,South Dakota,46127,68,0 +2020-05-22,Union,South Dakota,46127,73,0 +2020-05-23,Union,South Dakota,46127,75,0 +2020-05-24,Union,South Dakota,46127,79,0 +2020-05-25,Union,South Dakota,46127,79,0 +2020-05-26,Union,South Dakota,46127,86,0 +2020-05-27,Union,South Dakota,46127,87,0 +2020-05-28,Union,South Dakota,46127,88,0 +2020-05-29,Union,South Dakota,46127,88,0 +2020-05-30,Union,South Dakota,46127,89,0 +2020-05-31,Union,South Dakota,46127,89,0 +2020-06-01,Union,South Dakota,46127,91,0 +2020-06-02,Union,South Dakota,46127,91,0 +2020-06-03,Union,South Dakota,46127,92,0 +2020-06-04,Union,South Dakota,46127,93,0 +2020-06-05,Union,South Dakota,46127,93,0 +2020-06-06,Union,South Dakota,46127,98,0 +2020-06-07,Union,South Dakota,46127,100,0 +2020-06-08,Union,South Dakota,46127,100,0 +2020-06-09,Union,South Dakota,46127,103,0 +2020-06-10,Union,South Dakota,46127,105,0 +2020-06-11,Union,South Dakota,46127,105,1 +2020-06-12,Union,South Dakota,46127,109,1 +2020-06-13,Union,South Dakota,46127,109,1 +2020-06-14,Union,South Dakota,46127,113,1 +2020-06-15,Union,South Dakota,46127,113,1 +2020-06-16,Union,South Dakota,46127,113,1 +2020-06-17,Union,South Dakota,46127,113,1 +2020-06-18,Union,South Dakota,46127,113,1 +2020-06-19,Union,South Dakota,46127,114,1 +2020-06-20,Union,South Dakota,46127,116,1 +2020-06-21,Union,South Dakota,46127,117,1 +2020-06-22,Union,South Dakota,46127,117,1 +2020-06-23,Union,South Dakota,46127,117,1 +2020-06-24,Union,South Dakota,46127,118,1 +2020-06-25,Union,South Dakota,46127,118,1 +2020-06-26,Union,South Dakota,46127,118,1 +2020-06-27,Union,South Dakota,46127,119,1 +2020-06-28,Union,South Dakota,46127,121,1 +2020-06-29,Union,South Dakota,46127,121,1 +2020-06-30,Union,South Dakota,46127,123,1 +2020-07-01,Union,South Dakota,46127,124,1 +2020-07-02,Union,South Dakota,46127,126,1 +2020-07-03,Union,South Dakota,46127,132,1 +2020-07-04,Union,South Dakota,46127,133,1 +2020-07-05,Union,South Dakota,46127,133,1 +2020-07-06,Union,South Dakota,46127,137,1 +2020-07-07,Union,South Dakota,46127,137,1 +2020-07-08,Union,South Dakota,46127,138,1 +2020-07-09,Union,South Dakota,46127,140,1 +2020-04-12,Walworth,South Dakota,46129,1,0 +2020-04-13,Walworth,South Dakota,46129,2,0 +2020-04-14,Walworth,South Dakota,46129,2,0 +2020-04-15,Walworth,South Dakota,46129,5,0 +2020-04-16,Walworth,South Dakota,46129,5,0 +2020-04-17,Walworth,South Dakota,46129,5,0 +2020-04-18,Walworth,South Dakota,46129,5,0 +2020-04-19,Walworth,South Dakota,46129,5,0 +2020-04-20,Walworth,South Dakota,46129,5,0 +2020-04-21,Walworth,South Dakota,46129,5,0 +2020-04-22,Walworth,South Dakota,46129,5,0 +2020-04-23,Walworth,South Dakota,46129,5,0 +2020-04-24,Walworth,South Dakota,46129,5,0 +2020-04-25,Walworth,South Dakota,46129,5,0 +2020-04-26,Walworth,South Dakota,46129,5,0 +2020-04-27,Walworth,South Dakota,46129,5,0 +2020-04-28,Walworth,South Dakota,46129,5,0 +2020-04-29,Walworth,South Dakota,46129,5,0 +2020-04-30,Walworth,South Dakota,46129,5,0 +2020-05-01,Walworth,South Dakota,46129,5,0 +2020-05-02,Walworth,South Dakota,46129,5,0 +2020-05-03,Walworth,South Dakota,46129,5,0 +2020-05-04,Walworth,South Dakota,46129,5,0 +2020-05-05,Walworth,South Dakota,46129,5,0 +2020-05-06,Walworth,South Dakota,46129,5,0 +2020-05-07,Walworth,South Dakota,46129,5,0 +2020-05-08,Walworth,South Dakota,46129,5,0 +2020-05-09,Walworth,South Dakota,46129,5,0 +2020-05-10,Walworth,South Dakota,46129,5,0 +2020-05-11,Walworth,South Dakota,46129,5,0 +2020-05-12,Walworth,South Dakota,46129,5,0 +2020-05-13,Walworth,South Dakota,46129,5,0 +2020-05-14,Walworth,South Dakota,46129,5,0 +2020-05-15,Walworth,South Dakota,46129,5,0 +2020-05-16,Walworth,South Dakota,46129,5,0 +2020-05-17,Walworth,South Dakota,46129,5,0 +2020-05-18,Walworth,South Dakota,46129,5,0 +2020-05-19,Walworth,South Dakota,46129,5,0 +2020-05-20,Walworth,South Dakota,46129,5,0 +2020-05-21,Walworth,South Dakota,46129,5,0 +2020-05-22,Walworth,South Dakota,46129,5,0 +2020-05-23,Walworth,South Dakota,46129,5,0 +2020-05-24,Walworth,South Dakota,46129,5,0 +2020-05-25,Walworth,South Dakota,46129,5,0 +2020-05-26,Walworth,South Dakota,46129,5,0 +2020-05-27,Walworth,South Dakota,46129,5,0 +2020-05-28,Walworth,South Dakota,46129,5,0 +2020-05-29,Walworth,South Dakota,46129,5,0 +2020-05-30,Walworth,South Dakota,46129,5,0 +2020-05-31,Walworth,South Dakota,46129,5,0 +2020-06-01,Walworth,South Dakota,46129,5,0 +2020-06-02,Walworth,South Dakota,46129,5,0 +2020-06-03,Walworth,South Dakota,46129,5,0 +2020-06-04,Walworth,South Dakota,46129,5,0 +2020-06-05,Walworth,South Dakota,46129,5,0 +2020-06-06,Walworth,South Dakota,46129,5,0 +2020-06-07,Walworth,South Dakota,46129,5,0 +2020-06-08,Walworth,South Dakota,46129,5,0 +2020-06-09,Walworth,South Dakota,46129,5,0 +2020-06-10,Walworth,South Dakota,46129,5,0 +2020-06-11,Walworth,South Dakota,46129,5,0 +2020-06-12,Walworth,South Dakota,46129,5,0 +2020-06-13,Walworth,South Dakota,46129,5,0 +2020-06-14,Walworth,South Dakota,46129,5,0 +2020-06-15,Walworth,South Dakota,46129,5,0 +2020-06-16,Walworth,South Dakota,46129,6,0 +2020-06-17,Walworth,South Dakota,46129,7,0 +2020-06-18,Walworth,South Dakota,46129,7,0 +2020-06-19,Walworth,South Dakota,46129,7,0 +2020-06-20,Walworth,South Dakota,46129,7,0 +2020-06-21,Walworth,South Dakota,46129,7,0 +2020-06-22,Walworth,South Dakota,46129,7,0 +2020-06-23,Walworth,South Dakota,46129,7,0 +2020-06-24,Walworth,South Dakota,46129,8,0 +2020-06-25,Walworth,South Dakota,46129,8,0 +2020-06-26,Walworth,South Dakota,46129,9,0 +2020-06-27,Walworth,South Dakota,46129,9,0 +2020-06-28,Walworth,South Dakota,46129,9,0 +2020-06-29,Walworth,South Dakota,46129,9,0 +2020-06-30,Walworth,South Dakota,46129,12,0 +2020-07-01,Walworth,South Dakota,46129,13,0 +2020-07-02,Walworth,South Dakota,46129,14,0 +2020-07-03,Walworth,South Dakota,46129,14,0 +2020-07-04,Walworth,South Dakota,46129,15,0 +2020-07-05,Walworth,South Dakota,46129,15,0 +2020-07-06,Walworth,South Dakota,46129,15,0 +2020-07-07,Walworth,South Dakota,46129,15,0 +2020-07-08,Walworth,South Dakota,46129,16,0 +2020-07-09,Walworth,South Dakota,46129,16,0 +2020-03-28,Yankton,South Dakota,46135,1,0 +2020-03-29,Yankton,South Dakota,46135,4,0 +2020-03-30,Yankton,South Dakota,46135,4,0 +2020-03-31,Yankton,South Dakota,46135,6,0 +2020-04-01,Yankton,South Dakota,46135,8,0 +2020-04-02,Yankton,South Dakota,46135,10,0 +2020-04-03,Yankton,South Dakota,46135,11,0 +2020-04-04,Yankton,South Dakota,46135,14,0 +2020-04-05,Yankton,South Dakota,46135,14,0 +2020-04-06,Yankton,South Dakota,46135,18,0 +2020-04-07,Yankton,South Dakota,46135,15,0 +2020-04-08,Yankton,South Dakota,46135,17,0 +2020-04-09,Yankton,South Dakota,46135,18,0 +2020-04-10,Yankton,South Dakota,46135,19,0 +2020-04-11,Yankton,South Dakota,46135,20,0 +2020-04-12,Yankton,South Dakota,46135,20,0 +2020-04-13,Yankton,South Dakota,46135,22,0 +2020-04-14,Yankton,South Dakota,46135,22,0 +2020-04-15,Yankton,South Dakota,46135,22,0 +2020-04-16,Yankton,South Dakota,46135,23,0 +2020-04-17,Yankton,South Dakota,46135,23,0 +2020-04-18,Yankton,South Dakota,46135,23,0 +2020-04-19,Yankton,South Dakota,46135,23,0 +2020-04-20,Yankton,South Dakota,46135,23,0 +2020-04-21,Yankton,South Dakota,46135,23,0 +2020-04-22,Yankton,South Dakota,46135,23,0 +2020-04-23,Yankton,South Dakota,46135,25,0 +2020-04-24,Yankton,South Dakota,46135,25,0 +2020-04-25,Yankton,South Dakota,46135,26,0 +2020-04-26,Yankton,South Dakota,46135,26,0 +2020-04-27,Yankton,South Dakota,46135,27,0 +2020-04-28,Yankton,South Dakota,46135,27,0 +2020-04-29,Yankton,South Dakota,46135,27,0 +2020-04-30,Yankton,South Dakota,46135,27,0 +2020-05-01,Yankton,South Dakota,46135,27,0 +2020-05-02,Yankton,South Dakota,46135,27,0 +2020-05-03,Yankton,South Dakota,46135,28,0 +2020-05-04,Yankton,South Dakota,46135,28,0 +2020-05-05,Yankton,South Dakota,46135,28,0 +2020-05-06,Yankton,South Dakota,46135,29,0 +2020-05-07,Yankton,South Dakota,46135,29,0 +2020-05-08,Yankton,South Dakota,46135,29,0 +2020-05-09,Yankton,South Dakota,46135,29,0 +2020-05-10,Yankton,South Dakota,46135,30,0 +2020-05-11,Yankton,South Dakota,46135,30,0 +2020-05-12,Yankton,South Dakota,46135,31,0 +2020-05-13,Yankton,South Dakota,46135,33,0 +2020-05-14,Yankton,South Dakota,46135,34,0 +2020-05-15,Yankton,South Dakota,46135,38,0 +2020-05-16,Yankton,South Dakota,46135,40,0 +2020-05-17,Yankton,South Dakota,46135,40,0 +2020-05-18,Yankton,South Dakota,46135,41,0 +2020-05-19,Yankton,South Dakota,46135,42,0 +2020-05-20,Yankton,South Dakota,46135,44,0 +2020-05-21,Yankton,South Dakota,46135,44,0 +2020-05-22,Yankton,South Dakota,46135,45,0 +2020-05-23,Yankton,South Dakota,46135,46,0 +2020-05-24,Yankton,South Dakota,46135,51,0 +2020-05-25,Yankton,South Dakota,46135,51,0 +2020-05-26,Yankton,South Dakota,46135,51,0 +2020-05-27,Yankton,South Dakota,46135,51,0 +2020-05-28,Yankton,South Dakota,46135,51,0 +2020-05-29,Yankton,South Dakota,46135,51,0 +2020-05-30,Yankton,South Dakota,46135,51,0 +2020-05-31,Yankton,South Dakota,46135,51,0 +2020-06-01,Yankton,South Dakota,46135,51,0 +2020-06-02,Yankton,South Dakota,46135,51,0 +2020-06-03,Yankton,South Dakota,46135,51,0 +2020-06-04,Yankton,South Dakota,46135,51,0 +2020-06-05,Yankton,South Dakota,46135,52,0 +2020-06-06,Yankton,South Dakota,46135,53,0 +2020-06-07,Yankton,South Dakota,46135,55,0 +2020-06-08,Yankton,South Dakota,46135,58,0 +2020-06-09,Yankton,South Dakota,46135,58,0 +2020-06-10,Yankton,South Dakota,46135,58,0 +2020-06-11,Yankton,South Dakota,46135,58,0 +2020-06-12,Yankton,South Dakota,46135,58,0 +2020-06-13,Yankton,South Dakota,46135,58,0 +2020-06-14,Yankton,South Dakota,46135,58,0 +2020-06-15,Yankton,South Dakota,46135,58,0 +2020-06-16,Yankton,South Dakota,46135,60,0 +2020-06-17,Yankton,South Dakota,46135,62,0 +2020-06-18,Yankton,South Dakota,46135,63,0 +2020-06-19,Yankton,South Dakota,46135,64,0 +2020-06-20,Yankton,South Dakota,46135,65,0 +2020-06-21,Yankton,South Dakota,46135,68,0 +2020-06-22,Yankton,South Dakota,46135,69,0 +2020-06-23,Yankton,South Dakota,46135,68,0 +2020-06-24,Yankton,South Dakota,46135,70,0 +2020-06-25,Yankton,South Dakota,46135,71,0 +2020-06-26,Yankton,South Dakota,46135,74,0 +2020-06-27,Yankton,South Dakota,46135,77,0 +2020-06-28,Yankton,South Dakota,46135,78,0 +2020-06-29,Yankton,South Dakota,46135,78,0 +2020-06-30,Yankton,South Dakota,46135,77,0 +2020-07-01,Yankton,South Dakota,46135,77,0 +2020-07-02,Yankton,South Dakota,46135,78,0 +2020-07-03,Yankton,South Dakota,46135,79,0 +2020-07-04,Yankton,South Dakota,46135,79,0 +2020-07-05,Yankton,South Dakota,46135,81,0 +2020-07-06,Yankton,South Dakota,46135,82,0 +2020-07-07,Yankton,South Dakota,46135,82,0 +2020-07-08,Yankton,South Dakota,46135,82,0 +2020-07-09,Yankton,South Dakota,46135,83,1 +2020-05-06,Ziebach,South Dakota,46137,1,0 +2020-05-07,Ziebach,South Dakota,46137,1,0 +2020-05-08,Ziebach,South Dakota,46137,1,0 +2020-05-09,Ziebach,South Dakota,46137,1,0 +2020-05-10,Ziebach,South Dakota,46137,1,0 +2020-05-11,Ziebach,South Dakota,46137,1,0 +2020-05-12,Ziebach,South Dakota,46137,1,0 +2020-05-13,Ziebach,South Dakota,46137,1,0 +2020-05-14,Ziebach,South Dakota,46137,1,0 +2020-05-15,Ziebach,South Dakota,46137,1,0 +2020-05-16,Ziebach,South Dakota,46137,1,0 +2020-05-17,Ziebach,South Dakota,46137,1,0 +2020-05-18,Ziebach,South Dakota,46137,1,0 +2020-05-19,Ziebach,South Dakota,46137,1,0 +2020-05-20,Ziebach,South Dakota,46137,1,0 +2020-05-21,Ziebach,South Dakota,46137,1,0 +2020-05-22,Ziebach,South Dakota,46137,1,0 +2020-05-23,Ziebach,South Dakota,46137,1,0 +2020-05-24,Ziebach,South Dakota,46137,1,0 +2020-05-25,Ziebach,South Dakota,46137,1,0 +2020-05-26,Ziebach,South Dakota,46137,1,0 +2020-05-27,Ziebach,South Dakota,46137,1,0 +2020-05-28,Ziebach,South Dakota,46137,1,0 +2020-05-29,Ziebach,South Dakota,46137,1,0 +2020-05-30,Ziebach,South Dakota,46137,1,0 +2020-05-31,Ziebach,South Dakota,46137,1,0 +2020-06-01,Ziebach,South Dakota,46137,1,0 +2020-06-02,Ziebach,South Dakota,46137,1,0 +2020-06-03,Ziebach,South Dakota,46137,1,0 +2020-06-04,Ziebach,South Dakota,46137,2,0 +2020-06-05,Ziebach,South Dakota,46137,2,0 +2020-06-06,Ziebach,South Dakota,46137,2,0 +2020-06-07,Ziebach,South Dakota,46137,2,0 +2020-06-08,Ziebach,South Dakota,46137,2,0 +2020-06-09,Ziebach,South Dakota,46137,2,0 +2020-06-10,Ziebach,South Dakota,46137,2,0 +2020-06-11,Ziebach,South Dakota,46137,2,0 +2020-06-12,Ziebach,South Dakota,46137,2,0 +2020-06-13,Ziebach,South Dakota,46137,2,0 +2020-06-14,Ziebach,South Dakota,46137,2,0 +2020-06-15,Ziebach,South Dakota,46137,2,0 +2020-06-16,Ziebach,South Dakota,46137,2,0 +2020-06-17,Ziebach,South Dakota,46137,2,0 +2020-06-18,Ziebach,South Dakota,46137,2,0 +2020-06-19,Ziebach,South Dakota,46137,2,0 +2020-06-20,Ziebach,South Dakota,46137,2,0 +2020-06-21,Ziebach,South Dakota,46137,2,0 +2020-06-22,Ziebach,South Dakota,46137,2,0 +2020-06-23,Ziebach,South Dakota,46137,2,0 +2020-06-24,Ziebach,South Dakota,46137,2,0 +2020-06-25,Ziebach,South Dakota,46137,2,0 +2020-06-26,Ziebach,South Dakota,46137,2,0 +2020-06-27,Ziebach,South Dakota,46137,2,0 +2020-06-28,Ziebach,South Dakota,46137,3,0 +2020-06-29,Ziebach,South Dakota,46137,3,0 +2020-06-30,Ziebach,South Dakota,46137,2,0 +2020-07-01,Ziebach,South Dakota,46137,2,0 +2020-07-02,Ziebach,South Dakota,46137,1,0 +2020-07-03,Ziebach,South Dakota,46137,1,0 +2020-07-04,Ziebach,South Dakota,46137,1,0 +2020-07-05,Ziebach,South Dakota,46137,1,0 +2020-07-06,Ziebach,South Dakota,46137,1,0 +2020-07-07,Ziebach,South Dakota,46137,1,0 +2020-07-08,Ziebach,South Dakota,46137,1,0 +2020-07-09,Ziebach,South Dakota,46137,2,0 +2020-03-20,Anderson,Tennessee,47001,1,0 +2020-03-21,Anderson,Tennessee,47001,1,0 +2020-03-22,Anderson,Tennessee,47001,1,0 +2020-03-23,Anderson,Tennessee,47001,1,0 +2020-03-24,Anderson,Tennessee,47001,1,0 +2020-03-25,Anderson,Tennessee,47001,3,0 +2020-03-26,Anderson,Tennessee,47001,3,0 +2020-03-27,Anderson,Tennessee,47001,4,0 +2020-03-28,Anderson,Tennessee,47001,5,0 +2020-03-29,Anderson,Tennessee,47001,6,0 +2020-03-30,Anderson,Tennessee,47001,9,0 +2020-03-31,Anderson,Tennessee,47001,10,0 +2020-04-01,Anderson,Tennessee,47001,10,0 +2020-04-02,Anderson,Tennessee,47001,10,0 +2020-04-03,Anderson,Tennessee,47001,10,0 +2020-04-04,Anderson,Tennessee,47001,10,0 +2020-04-05,Anderson,Tennessee,47001,10,0 +2020-04-06,Anderson,Tennessee,47001,10,0 +2020-04-07,Anderson,Tennessee,47001,11,0 +2020-04-08,Anderson,Tennessee,47001,11,1 +2020-04-09,Anderson,Tennessee,47001,11,1 +2020-04-10,Anderson,Tennessee,47001,11,1 +2020-04-11,Anderson,Tennessee,47001,12,1 +2020-04-12,Anderson,Tennessee,47001,12,1 +2020-04-13,Anderson,Tennessee,47001,15,1 +2020-04-14,Anderson,Tennessee,47001,15,1 +2020-04-15,Anderson,Tennessee,47001,16,1 +2020-04-16,Anderson,Tennessee,47001,15,1 +2020-04-17,Anderson,Tennessee,47001,15,1 +2020-04-18,Anderson,Tennessee,47001,15,1 +2020-04-19,Anderson,Tennessee,47001,16,1 +2020-04-20,Anderson,Tennessee,47001,16,1 +2020-04-21,Anderson,Tennessee,47001,21,1 +2020-04-22,Anderson,Tennessee,47001,22,1 +2020-04-23,Anderson,Tennessee,47001,23,1 +2020-04-24,Anderson,Tennessee,47001,24,1 +2020-04-25,Anderson,Tennessee,47001,24,1 +2020-04-26,Anderson,Tennessee,47001,25,1 +2020-04-27,Anderson,Tennessee,47001,24,1 +2020-04-28,Anderson,Tennessee,47001,24,1 +2020-04-29,Anderson,Tennessee,47001,27,1 +2020-04-30,Anderson,Tennessee,47001,28,1 +2020-05-01,Anderson,Tennessee,47001,28,1 +2020-05-02,Anderson,Tennessee,47001,28,1 +2020-05-03,Anderson,Tennessee,47001,28,1 +2020-05-04,Anderson,Tennessee,47001,30,1 +2020-05-05,Anderson,Tennessee,47001,29,1 +2020-05-06,Anderson,Tennessee,47001,29,1 +2020-05-07,Anderson,Tennessee,47001,31,1 +2020-05-08,Anderson,Tennessee,47001,31,1 +2020-05-09,Anderson,Tennessee,47001,31,1 +2020-05-10,Anderson,Tennessee,47001,31,1 +2020-05-11,Anderson,Tennessee,47001,33,1 +2020-05-12,Anderson,Tennessee,47001,34,1 +2020-05-13,Anderson,Tennessee,47001,35,1 +2020-05-14,Anderson,Tennessee,47001,35,1 +2020-05-15,Anderson,Tennessee,47001,36,1 +2020-05-16,Anderson,Tennessee,47001,36,1 +2020-05-17,Anderson,Tennessee,47001,36,1 +2020-05-18,Anderson,Tennessee,47001,37,1 +2020-05-19,Anderson,Tennessee,47001,37,1 +2020-05-20,Anderson,Tennessee,47001,37,1 +2020-05-21,Anderson,Tennessee,47001,37,1 +2020-05-22,Anderson,Tennessee,47001,37,1 +2020-05-23,Anderson,Tennessee,47001,39,1 +2020-05-24,Anderson,Tennessee,47001,39,1 +2020-05-25,Anderson,Tennessee,47001,39,1 +2020-05-26,Anderson,Tennessee,47001,40,1 +2020-05-27,Anderson,Tennessee,47001,40,1 +2020-05-28,Anderson,Tennessee,47001,39,1 +2020-05-29,Anderson,Tennessee,47001,39,1 +2020-05-30,Anderson,Tennessee,47001,40,1 +2020-05-31,Anderson,Tennessee,47001,40,1 +2020-06-01,Anderson,Tennessee,47001,40,1 +2020-06-02,Anderson,Tennessee,47001,41,1 +2020-06-03,Anderson,Tennessee,47001,41,1 +2020-06-04,Anderson,Tennessee,47001,42,2 +2020-06-05,Anderson,Tennessee,47001,42,2 +2020-06-06,Anderson,Tennessee,47001,45,2 +2020-06-07,Anderson,Tennessee,47001,47,2 +2020-06-08,Anderson,Tennessee,47001,48,2 +2020-06-09,Anderson,Tennessee,47001,50,2 +2020-06-10,Anderson,Tennessee,47001,54,2 +2020-06-11,Anderson,Tennessee,47001,55,2 +2020-06-12,Anderson,Tennessee,47001,59,2 +2020-06-13,Anderson,Tennessee,47001,60,2 +2020-06-14,Anderson,Tennessee,47001,59,2 +2020-06-15,Anderson,Tennessee,47001,60,2 +2020-06-16,Anderson,Tennessee,47001,65,2 +2020-06-17,Anderson,Tennessee,47001,66,2 +2020-06-18,Anderson,Tennessee,47001,69,2 +2020-06-19,Anderson,Tennessee,47001,74,2 +2020-06-20,Anderson,Tennessee,47001,74,2 +2020-06-21,Anderson,Tennessee,47001,74,2 +2020-06-22,Anderson,Tennessee,47001,75,2 +2020-06-23,Anderson,Tennessee,47001,78,2 +2020-06-24,Anderson,Tennessee,47001,79,2 +2020-06-25,Anderson,Tennessee,47001,81,2 +2020-06-26,Anderson,Tennessee,47001,89,2 +2020-06-27,Anderson,Tennessee,47001,90,2 +2020-06-28,Anderson,Tennessee,47001,90,2 +2020-06-29,Anderson,Tennessee,47001,97,2 +2020-06-30,Anderson,Tennessee,47001,102,2 +2020-07-01,Anderson,Tennessee,47001,104,2 +2020-07-02,Anderson,Tennessee,47001,105,2 +2020-07-03,Anderson,Tennessee,47001,116,2 +2020-07-04,Anderson,Tennessee,47001,134,2 +2020-07-05,Anderson,Tennessee,47001,142,2 +2020-07-06,Anderson,Tennessee,47001,144,2 +2020-07-07,Anderson,Tennessee,47001,143,2 +2020-07-08,Anderson,Tennessee,47001,166,2 +2020-07-09,Anderson,Tennessee,47001,178,2 +2020-03-25,Bedford,Tennessee,47003,1,0 +2020-03-26,Bedford,Tennessee,47003,1,0 +2020-03-27,Bedford,Tennessee,47003,1,0 +2020-03-28,Bedford,Tennessee,47003,1,0 +2020-03-29,Bedford,Tennessee,47003,1,0 +2020-03-30,Bedford,Tennessee,47003,1,0 +2020-03-31,Bedford,Tennessee,47003,2,0 +2020-04-01,Bedford,Tennessee,47003,4,0 +2020-04-02,Bedford,Tennessee,47003,6,0 +2020-04-03,Bedford,Tennessee,47003,6,0 +2020-04-04,Bedford,Tennessee,47003,8,0 +2020-04-05,Bedford,Tennessee,47003,8,0 +2020-04-06,Bedford,Tennessee,47003,8,0 +2020-04-07,Bedford,Tennessee,47003,10,0 +2020-04-08,Bedford,Tennessee,47003,12,0 +2020-04-09,Bedford,Tennessee,47003,14,0 +2020-04-10,Bedford,Tennessee,47003,15,1 +2020-04-11,Bedford,Tennessee,47003,17,1 +2020-04-12,Bedford,Tennessee,47003,17,1 +2020-04-13,Bedford,Tennessee,47003,23,1 +2020-04-14,Bedford,Tennessee,47003,25,2 +2020-04-15,Bedford,Tennessee,47003,33,2 +2020-04-16,Bedford,Tennessee,47003,40,2 +2020-04-17,Bedford,Tennessee,47003,48,2 +2020-04-18,Bedford,Tennessee,47003,62,2 +2020-04-19,Bedford,Tennessee,47003,71,2 +2020-04-20,Bedford,Tennessee,47003,76,2 +2020-04-21,Bedford,Tennessee,47003,105,2 +2020-04-22,Bedford,Tennessee,47003,117,2 +2020-04-23,Bedford,Tennessee,47003,130,2 +2020-04-24,Bedford,Tennessee,47003,138,2 +2020-04-25,Bedford,Tennessee,47003,150,2 +2020-04-26,Bedford,Tennessee,47003,159,2 +2020-04-27,Bedford,Tennessee,47003,165,2 +2020-04-28,Bedford,Tennessee,47003,167,2 +2020-04-29,Bedford,Tennessee,47003,169,2 +2020-04-30,Bedford,Tennessee,47003,173,2 +2020-05-01,Bedford,Tennessee,47003,184,2 +2020-05-02,Bedford,Tennessee,47003,193,2 +2020-05-03,Bedford,Tennessee,47003,200,3 +2020-05-04,Bedford,Tennessee,47003,200,3 +2020-05-05,Bedford,Tennessee,47003,201,3 +2020-05-06,Bedford,Tennessee,47003,212,3 +2020-05-07,Bedford,Tennessee,47003,217,3 +2020-05-08,Bedford,Tennessee,47003,222,3 +2020-05-09,Bedford,Tennessee,47003,231,3 +2020-05-10,Bedford,Tennessee,47003,237,3 +2020-05-11,Bedford,Tennessee,47003,238,3 +2020-05-12,Bedford,Tennessee,47003,239,3 +2020-05-13,Bedford,Tennessee,47003,246,3 +2020-05-14,Bedford,Tennessee,47003,248,4 +2020-05-15,Bedford,Tennessee,47003,248,4 +2020-05-16,Bedford,Tennessee,47003,251,4 +2020-05-17,Bedford,Tennessee,47003,252,4 +2020-05-18,Bedford,Tennessee,47003,254,4 +2020-05-19,Bedford,Tennessee,47003,257,4 +2020-05-20,Bedford,Tennessee,47003,257,4 +2020-05-21,Bedford,Tennessee,47003,262,4 +2020-05-22,Bedford,Tennessee,47003,263,4 +2020-05-23,Bedford,Tennessee,47003,264,4 +2020-05-24,Bedford,Tennessee,47003,265,4 +2020-05-25,Bedford,Tennessee,47003,269,4 +2020-05-26,Bedford,Tennessee,47003,269,4 +2020-05-27,Bedford,Tennessee,47003,270,4 +2020-05-28,Bedford,Tennessee,47003,274,4 +2020-05-29,Bedford,Tennessee,47003,283,4 +2020-05-30,Bedford,Tennessee,47003,283,4 +2020-05-31,Bedford,Tennessee,47003,283,4 +2020-06-01,Bedford,Tennessee,47003,283,4 +2020-06-02,Bedford,Tennessee,47003,295,4 +2020-06-03,Bedford,Tennessee,47003,295,4 +2020-06-04,Bedford,Tennessee,47003,297,4 +2020-06-05,Bedford,Tennessee,47003,302,4 +2020-06-06,Bedford,Tennessee,47003,314,4 +2020-06-07,Bedford,Tennessee,47003,325,4 +2020-06-08,Bedford,Tennessee,47003,332,4 +2020-06-09,Bedford,Tennessee,47003,341,4 +2020-06-10,Bedford,Tennessee,47003,346,4 +2020-06-11,Bedford,Tennessee,47003,372,4 +2020-06-12,Bedford,Tennessee,47003,376,4 +2020-06-13,Bedford,Tennessee,47003,379,4 +2020-06-14,Bedford,Tennessee,47003,378,4 +2020-06-15,Bedford,Tennessee,47003,379,4 +2020-06-16,Bedford,Tennessee,47003,392,4 +2020-06-17,Bedford,Tennessee,47003,403,4 +2020-06-18,Bedford,Tennessee,47003,404,4 +2020-06-19,Bedford,Tennessee,47003,416,4 +2020-06-20,Bedford,Tennessee,47003,428,4 +2020-06-21,Bedford,Tennessee,47003,430,4 +2020-06-22,Bedford,Tennessee,47003,432,4 +2020-06-23,Bedford,Tennessee,47003,436,4 +2020-06-24,Bedford,Tennessee,47003,445,4 +2020-06-25,Bedford,Tennessee,47003,451,4 +2020-06-26,Bedford,Tennessee,47003,463,4 +2020-06-27,Bedford,Tennessee,47003,482,5 +2020-06-28,Bedford,Tennessee,47003,482,5 +2020-06-29,Bedford,Tennessee,47003,502,5 +2020-06-30,Bedford,Tennessee,47003,513,5 +2020-07-01,Bedford,Tennessee,47003,520,5 +2020-07-02,Bedford,Tennessee,47003,520,5 +2020-07-03,Bedford,Tennessee,47003,545,5 +2020-07-04,Bedford,Tennessee,47003,559,5 +2020-07-05,Bedford,Tennessee,47003,570,5 +2020-07-06,Bedford,Tennessee,47003,570,5 +2020-07-07,Bedford,Tennessee,47003,584,7 +2020-07-08,Bedford,Tennessee,47003,589,8 +2020-07-09,Bedford,Tennessee,47003,595,9 +2020-03-26,Benton,Tennessee,47005,1,0 +2020-03-27,Benton,Tennessee,47005,2,0 +2020-03-28,Benton,Tennessee,47005,3,0 +2020-03-29,Benton,Tennessee,47005,3,0 +2020-03-30,Benton,Tennessee,47005,3,0 +2020-03-31,Benton,Tennessee,47005,4,0 +2020-04-01,Benton,Tennessee,47005,4,0 +2020-04-02,Benton,Tennessee,47005,4,0 +2020-04-03,Benton,Tennessee,47005,4,0 +2020-04-04,Benton,Tennessee,47005,4,0 +2020-04-05,Benton,Tennessee,47005,4,0 +2020-04-06,Benton,Tennessee,47005,4,0 +2020-04-07,Benton,Tennessee,47005,4,0 +2020-04-08,Benton,Tennessee,47005,4,0 +2020-04-09,Benton,Tennessee,47005,4,0 +2020-04-10,Benton,Tennessee,47005,4,0 +2020-04-11,Benton,Tennessee,47005,4,0 +2020-04-12,Benton,Tennessee,47005,4,0 +2020-04-13,Benton,Tennessee,47005,4,0 +2020-04-14,Benton,Tennessee,47005,4,0 +2020-04-15,Benton,Tennessee,47005,4,0 +2020-04-16,Benton,Tennessee,47005,4,0 +2020-04-17,Benton,Tennessee,47005,4,0 +2020-04-18,Benton,Tennessee,47005,4,0 +2020-04-19,Benton,Tennessee,47005,4,0 +2020-04-20,Benton,Tennessee,47005,4,0 +2020-04-21,Benton,Tennessee,47005,4,0 +2020-04-22,Benton,Tennessee,47005,4,0 +2020-04-23,Benton,Tennessee,47005,5,1 +2020-04-24,Benton,Tennessee,47005,5,1 +2020-04-25,Benton,Tennessee,47005,6,1 +2020-04-26,Benton,Tennessee,47005,6,1 +2020-04-27,Benton,Tennessee,47005,6,1 +2020-04-28,Benton,Tennessee,47005,6,1 +2020-04-29,Benton,Tennessee,47005,6,1 +2020-04-30,Benton,Tennessee,47005,6,1 +2020-05-01,Benton,Tennessee,47005,5,1 +2020-05-02,Benton,Tennessee,47005,6,1 +2020-05-03,Benton,Tennessee,47005,6,1 +2020-05-04,Benton,Tennessee,47005,6,1 +2020-05-05,Benton,Tennessee,47005,6,1 +2020-05-06,Benton,Tennessee,47005,7,1 +2020-05-07,Benton,Tennessee,47005,7,1 +2020-05-08,Benton,Tennessee,47005,7,1 +2020-05-09,Benton,Tennessee,47005,7,1 +2020-05-10,Benton,Tennessee,47005,7,1 +2020-05-11,Benton,Tennessee,47005,6,1 +2020-05-12,Benton,Tennessee,47005,6,1 +2020-05-13,Benton,Tennessee,47005,6,1 +2020-05-14,Benton,Tennessee,47005,6,1 +2020-05-15,Benton,Tennessee,47005,6,1 +2020-05-16,Benton,Tennessee,47005,6,1 +2020-05-17,Benton,Tennessee,47005,6,1 +2020-05-18,Benton,Tennessee,47005,7,1 +2020-05-19,Benton,Tennessee,47005,7,1 +2020-05-20,Benton,Tennessee,47005,7,1 +2020-05-21,Benton,Tennessee,47005,7,1 +2020-05-22,Benton,Tennessee,47005,7,1 +2020-05-23,Benton,Tennessee,47005,7,1 +2020-05-24,Benton,Tennessee,47005,7,1 +2020-05-25,Benton,Tennessee,47005,7,1 +2020-05-26,Benton,Tennessee,47005,7,1 +2020-05-27,Benton,Tennessee,47005,7,1 +2020-05-28,Benton,Tennessee,47005,7,1 +2020-05-29,Benton,Tennessee,47005,7,1 +2020-05-30,Benton,Tennessee,47005,7,1 +2020-05-31,Benton,Tennessee,47005,7,1 +2020-06-01,Benton,Tennessee,47005,7,1 +2020-06-02,Benton,Tennessee,47005,7,1 +2020-06-03,Benton,Tennessee,47005,7,1 +2020-06-04,Benton,Tennessee,47005,7,1 +2020-06-05,Benton,Tennessee,47005,7,1 +2020-06-06,Benton,Tennessee,47005,8,1 +2020-06-07,Benton,Tennessee,47005,8,1 +2020-06-08,Benton,Tennessee,47005,8,1 +2020-06-09,Benton,Tennessee,47005,8,1 +2020-06-10,Benton,Tennessee,47005,8,1 +2020-06-11,Benton,Tennessee,47005,8,1 +2020-06-12,Benton,Tennessee,47005,8,1 +2020-06-13,Benton,Tennessee,47005,8,1 +2020-06-14,Benton,Tennessee,47005,8,1 +2020-06-15,Benton,Tennessee,47005,8,1 +2020-06-16,Benton,Tennessee,47005,8,1 +2020-06-17,Benton,Tennessee,47005,8,1 +2020-06-18,Benton,Tennessee,47005,8,1 +2020-06-19,Benton,Tennessee,47005,8,1 +2020-06-20,Benton,Tennessee,47005,8,1 +2020-06-21,Benton,Tennessee,47005,8,1 +2020-06-22,Benton,Tennessee,47005,8,1 +2020-06-23,Benton,Tennessee,47005,8,1 +2020-06-24,Benton,Tennessee,47005,9,1 +2020-06-25,Benton,Tennessee,47005,12,1 +2020-06-26,Benton,Tennessee,47005,12,1 +2020-06-27,Benton,Tennessee,47005,12,1 +2020-06-28,Benton,Tennessee,47005,12,1 +2020-06-29,Benton,Tennessee,47005,12,1 +2020-06-30,Benton,Tennessee,47005,12,1 +2020-07-01,Benton,Tennessee,47005,12,1 +2020-07-02,Benton,Tennessee,47005,12,1 +2020-07-03,Benton,Tennessee,47005,13,1 +2020-07-04,Benton,Tennessee,47005,13,1 +2020-07-05,Benton,Tennessee,47005,13,1 +2020-07-06,Benton,Tennessee,47005,13,1 +2020-07-07,Benton,Tennessee,47005,13,1 +2020-07-08,Benton,Tennessee,47005,13,1 +2020-07-09,Benton,Tennessee,47005,15,1 +2020-03-28,Bledsoe,Tennessee,47007,2,0 +2020-03-29,Bledsoe,Tennessee,47007,2,0 +2020-03-30,Bledsoe,Tennessee,47007,2,0 +2020-03-31,Bledsoe,Tennessee,47007,2,0 +2020-04-01,Bledsoe,Tennessee,47007,2,0 +2020-04-02,Bledsoe,Tennessee,47007,2,0 +2020-04-03,Bledsoe,Tennessee,47007,2,0 +2020-04-04,Bledsoe,Tennessee,47007,2,0 +2020-04-05,Bledsoe,Tennessee,47007,3,0 +2020-04-06,Bledsoe,Tennessee,47007,3,0 +2020-04-07,Bledsoe,Tennessee,47007,3,0 +2020-04-08,Bledsoe,Tennessee,47007,3,0 +2020-04-09,Bledsoe,Tennessee,47007,3,0 +2020-04-10,Bledsoe,Tennessee,47007,3,0 +2020-04-11,Bledsoe,Tennessee,47007,3,0 +2020-04-12,Bledsoe,Tennessee,47007,3,0 +2020-04-13,Bledsoe,Tennessee,47007,8,0 +2020-04-14,Bledsoe,Tennessee,47007,8,0 +2020-04-15,Bledsoe,Tennessee,47007,8,0 +2020-04-16,Bledsoe,Tennessee,47007,7,0 +2020-04-17,Bledsoe,Tennessee,47007,8,0 +2020-04-18,Bledsoe,Tennessee,47007,9,0 +2020-04-19,Bledsoe,Tennessee,47007,9,0 +2020-04-20,Bledsoe,Tennessee,47007,10,0 +2020-04-21,Bledsoe,Tennessee,47007,11,0 +2020-04-22,Bledsoe,Tennessee,47007,162,0 +2020-04-23,Bledsoe,Tennessee,47007,351,0 +2020-04-24,Bledsoe,Tennessee,47007,585,0 +2020-04-25,Bledsoe,Tennessee,47007,586,0 +2020-04-26,Bledsoe,Tennessee,47007,588,0 +2020-04-27,Bledsoe,Tennessee,47007,588,0 +2020-04-28,Bledsoe,Tennessee,47007,589,0 +2020-04-29,Bledsoe,Tennessee,47007,592,0 +2020-04-30,Bledsoe,Tennessee,47007,594,0 +2020-05-01,Bledsoe,Tennessee,47007,595,0 +2020-05-02,Bledsoe,Tennessee,47007,596,0 +2020-05-03,Bledsoe,Tennessee,47007,598,0 +2020-05-04,Bledsoe,Tennessee,47007,598,0 +2020-05-05,Bledsoe,Tennessee,47007,601,0 +2020-05-06,Bledsoe,Tennessee,47007,601,0 +2020-05-07,Bledsoe,Tennessee,47007,602,0 +2020-05-08,Bledsoe,Tennessee,47007,604,0 +2020-05-09,Bledsoe,Tennessee,47007,604,0 +2020-05-10,Bledsoe,Tennessee,47007,604,0 +2020-05-11,Bledsoe,Tennessee,47007,604,0 +2020-05-12,Bledsoe,Tennessee,47007,604,1 +2020-05-13,Bledsoe,Tennessee,47007,603,1 +2020-05-14,Bledsoe,Tennessee,47007,603,1 +2020-05-15,Bledsoe,Tennessee,47007,605,1 +2020-05-16,Bledsoe,Tennessee,47007,607,1 +2020-05-17,Bledsoe,Tennessee,47007,607,1 +2020-05-18,Bledsoe,Tennessee,47007,607,1 +2020-05-19,Bledsoe,Tennessee,47007,607,1 +2020-05-20,Bledsoe,Tennessee,47007,607,1 +2020-05-21,Bledsoe,Tennessee,47007,607,1 +2020-05-22,Bledsoe,Tennessee,47007,607,1 +2020-05-23,Bledsoe,Tennessee,47007,607,1 +2020-05-24,Bledsoe,Tennessee,47007,607,1 +2020-05-25,Bledsoe,Tennessee,47007,608,1 +2020-05-26,Bledsoe,Tennessee,47007,608,1 +2020-05-27,Bledsoe,Tennessee,47007,608,1 +2020-05-28,Bledsoe,Tennessee,47007,608,1 +2020-05-29,Bledsoe,Tennessee,47007,606,1 +2020-05-30,Bledsoe,Tennessee,47007,607,1 +2020-05-31,Bledsoe,Tennessee,47007,607,1 +2020-06-01,Bledsoe,Tennessee,47007,607,1 +2020-06-02,Bledsoe,Tennessee,47007,609,1 +2020-06-03,Bledsoe,Tennessee,47007,610,1 +2020-06-04,Bledsoe,Tennessee,47007,610,1 +2020-06-05,Bledsoe,Tennessee,47007,613,1 +2020-06-06,Bledsoe,Tennessee,47007,614,1 +2020-06-07,Bledsoe,Tennessee,47007,614,1 +2020-06-08,Bledsoe,Tennessee,47007,613,1 +2020-06-09,Bledsoe,Tennessee,47007,611,1 +2020-06-10,Bledsoe,Tennessee,47007,613,1 +2020-06-11,Bledsoe,Tennessee,47007,614,1 +2020-06-12,Bledsoe,Tennessee,47007,614,1 +2020-06-13,Bledsoe,Tennessee,47007,614,1 +2020-06-14,Bledsoe,Tennessee,47007,614,1 +2020-06-15,Bledsoe,Tennessee,47007,614,1 +2020-06-16,Bledsoe,Tennessee,47007,614,1 +2020-06-17,Bledsoe,Tennessee,47007,614,1 +2020-06-18,Bledsoe,Tennessee,47007,614,1 +2020-06-19,Bledsoe,Tennessee,47007,614,1 +2020-06-20,Bledsoe,Tennessee,47007,613,1 +2020-06-21,Bledsoe,Tennessee,47007,613,1 +2020-06-22,Bledsoe,Tennessee,47007,613,1 +2020-06-23,Bledsoe,Tennessee,47007,613,1 +2020-06-24,Bledsoe,Tennessee,47007,616,1 +2020-06-25,Bledsoe,Tennessee,47007,616,1 +2020-06-26,Bledsoe,Tennessee,47007,616,1 +2020-06-27,Bledsoe,Tennessee,47007,616,1 +2020-06-28,Bledsoe,Tennessee,47007,616,1 +2020-06-29,Bledsoe,Tennessee,47007,616,1 +2020-06-30,Bledsoe,Tennessee,47007,617,1 +2020-07-01,Bledsoe,Tennessee,47007,618,1 +2020-07-02,Bledsoe,Tennessee,47007,618,1 +2020-07-03,Bledsoe,Tennessee,47007,618,1 +2020-07-04,Bledsoe,Tennessee,47007,619,1 +2020-07-05,Bledsoe,Tennessee,47007,620,1 +2020-07-06,Bledsoe,Tennessee,47007,621,1 +2020-07-07,Bledsoe,Tennessee,47007,623,1 +2020-07-08,Bledsoe,Tennessee,47007,624,1 +2020-07-09,Bledsoe,Tennessee,47007,625,1 +2020-03-20,Blount,Tennessee,47009,1,0 +2020-03-21,Blount,Tennessee,47009,1,0 +2020-03-22,Blount,Tennessee,47009,1,0 +2020-03-23,Blount,Tennessee,47009,1,0 +2020-03-24,Blount,Tennessee,47009,3,0 +2020-03-25,Blount,Tennessee,47009,3,0 +2020-03-26,Blount,Tennessee,47009,4,0 +2020-03-27,Blount,Tennessee,47009,6,0 +2020-03-28,Blount,Tennessee,47009,9,0 +2020-03-29,Blount,Tennessee,47009,9,0 +2020-03-30,Blount,Tennessee,47009,10,0 +2020-03-31,Blount,Tennessee,47009,25,0 +2020-04-01,Blount,Tennessee,47009,28,0 +2020-04-02,Blount,Tennessee,47009,32,0 +2020-04-03,Blount,Tennessee,47009,33,0 +2020-04-04,Blount,Tennessee,47009,34,0 +2020-04-05,Blount,Tennessee,47009,36,1 +2020-04-06,Blount,Tennessee,47009,38,2 +2020-04-07,Blount,Tennessee,47009,41,2 +2020-04-08,Blount,Tennessee,47009,42,2 +2020-04-09,Blount,Tennessee,47009,44,2 +2020-04-10,Blount,Tennessee,47009,45,3 +2020-04-11,Blount,Tennessee,47009,46,3 +2020-04-12,Blount,Tennessee,47009,46,3 +2020-04-13,Blount,Tennessee,47009,46,3 +2020-04-14,Blount,Tennessee,47009,47,3 +2020-04-15,Blount,Tennessee,47009,47,3 +2020-04-16,Blount,Tennessee,47009,46,3 +2020-04-17,Blount,Tennessee,47009,46,3 +2020-04-18,Blount,Tennessee,47009,46,3 +2020-04-19,Blount,Tennessee,47009,46,3 +2020-04-20,Blount,Tennessee,47009,46,3 +2020-04-21,Blount,Tennessee,47009,46,3 +2020-04-22,Blount,Tennessee,47009,47,3 +2020-04-23,Blount,Tennessee,47009,48,3 +2020-04-24,Blount,Tennessee,47009,49,3 +2020-04-25,Blount,Tennessee,47009,53,3 +2020-04-26,Blount,Tennessee,47009,53,3 +2020-04-27,Blount,Tennessee,47009,54,3 +2020-04-28,Blount,Tennessee,47009,55,3 +2020-04-29,Blount,Tennessee,47009,55,3 +2020-04-30,Blount,Tennessee,47009,56,3 +2020-05-01,Blount,Tennessee,47009,58,3 +2020-05-02,Blount,Tennessee,47009,63,3 +2020-05-03,Blount,Tennessee,47009,63,3 +2020-05-04,Blount,Tennessee,47009,70,3 +2020-05-05,Blount,Tennessee,47009,73,3 +2020-05-06,Blount,Tennessee,47009,69,3 +2020-05-07,Blount,Tennessee,47009,69,3 +2020-05-08,Blount,Tennessee,47009,69,3 +2020-05-09,Blount,Tennessee,47009,71,3 +2020-05-10,Blount,Tennessee,47009,71,3 +2020-05-11,Blount,Tennessee,47009,72,3 +2020-05-12,Blount,Tennessee,47009,73,3 +2020-05-13,Blount,Tennessee,47009,74,3 +2020-05-14,Blount,Tennessee,47009,75,3 +2020-05-15,Blount,Tennessee,47009,75,3 +2020-05-16,Blount,Tennessee,47009,75,3 +2020-05-17,Blount,Tennessee,47009,75,3 +2020-05-18,Blount,Tennessee,47009,76,3 +2020-05-19,Blount,Tennessee,47009,76,3 +2020-05-20,Blount,Tennessee,47009,76,3 +2020-05-21,Blount,Tennessee,47009,77,3 +2020-05-22,Blount,Tennessee,47009,78,3 +2020-05-23,Blount,Tennessee,47009,81,3 +2020-05-24,Blount,Tennessee,47009,82,3 +2020-05-25,Blount,Tennessee,47009,82,3 +2020-05-26,Blount,Tennessee,47009,84,3 +2020-05-27,Blount,Tennessee,47009,89,3 +2020-05-28,Blount,Tennessee,47009,89,3 +2020-05-29,Blount,Tennessee,47009,89,3 +2020-05-30,Blount,Tennessee,47009,91,3 +2020-05-31,Blount,Tennessee,47009,91,3 +2020-06-01,Blount,Tennessee,47009,91,3 +2020-06-02,Blount,Tennessee,47009,93,3 +2020-06-03,Blount,Tennessee,47009,93,3 +2020-06-04,Blount,Tennessee,47009,93,3 +2020-06-05,Blount,Tennessee,47009,93,3 +2020-06-06,Blount,Tennessee,47009,93,3 +2020-06-07,Blount,Tennessee,47009,94,3 +2020-06-08,Blount,Tennessee,47009,94,3 +2020-06-09,Blount,Tennessee,47009,96,3 +2020-06-10,Blount,Tennessee,47009,96,3 +2020-06-11,Blount,Tennessee,47009,97,3 +2020-06-12,Blount,Tennessee,47009,104,3 +2020-06-13,Blount,Tennessee,47009,103,3 +2020-06-14,Blount,Tennessee,47009,104,3 +2020-06-15,Blount,Tennessee,47009,106,3 +2020-06-16,Blount,Tennessee,47009,110,3 +2020-06-17,Blount,Tennessee,47009,115,3 +2020-06-18,Blount,Tennessee,47009,118,3 +2020-06-19,Blount,Tennessee,47009,119,3 +2020-06-20,Blount,Tennessee,47009,127,3 +2020-06-21,Blount,Tennessee,47009,127,3 +2020-06-22,Blount,Tennessee,47009,130,3 +2020-06-23,Blount,Tennessee,47009,139,3 +2020-06-24,Blount,Tennessee,47009,142,3 +2020-06-25,Blount,Tennessee,47009,150,3 +2020-06-26,Blount,Tennessee,47009,152,3 +2020-06-27,Blount,Tennessee,47009,156,3 +2020-06-28,Blount,Tennessee,47009,156,3 +2020-06-29,Blount,Tennessee,47009,162,3 +2020-06-30,Blount,Tennessee,47009,173,3 +2020-07-01,Blount,Tennessee,47009,188,3 +2020-07-02,Blount,Tennessee,47009,205,3 +2020-07-03,Blount,Tennessee,47009,212,3 +2020-07-04,Blount,Tennessee,47009,218,3 +2020-07-05,Blount,Tennessee,47009,227,3 +2020-07-06,Blount,Tennessee,47009,229,3 +2020-07-07,Blount,Tennessee,47009,262,3 +2020-07-08,Blount,Tennessee,47009,272,3 +2020-07-09,Blount,Tennessee,47009,280,3 +2020-03-20,Bradley,Tennessee,47011,1,0 +2020-03-21,Bradley,Tennessee,47011,1,0 +2020-03-22,Bradley,Tennessee,47011,2,0 +2020-03-23,Bradley,Tennessee,47011,2,0 +2020-03-24,Bradley,Tennessee,47011,2,0 +2020-03-25,Bradley,Tennessee,47011,3,0 +2020-03-26,Bradley,Tennessee,47011,5,0 +2020-03-27,Bradley,Tennessee,47011,6,0 +2020-03-28,Bradley,Tennessee,47011,5,0 +2020-03-29,Bradley,Tennessee,47011,8,0 +2020-03-30,Bradley,Tennessee,47011,9,0 +2020-03-31,Bradley,Tennessee,47011,10,0 +2020-04-01,Bradley,Tennessee,47011,14,0 +2020-04-02,Bradley,Tennessee,47011,18,0 +2020-04-03,Bradley,Tennessee,47011,21,0 +2020-04-04,Bradley,Tennessee,47011,21,0 +2020-04-05,Bradley,Tennessee,47011,21,0 +2020-04-06,Bradley,Tennessee,47011,23,0 +2020-04-07,Bradley,Tennessee,47011,25,0 +2020-04-08,Bradley,Tennessee,47011,28,0 +2020-04-09,Bradley,Tennessee,47011,28,0 +2020-04-10,Bradley,Tennessee,47011,31,0 +2020-04-11,Bradley,Tennessee,47011,31,0 +2020-04-12,Bradley,Tennessee,47011,31,0 +2020-04-13,Bradley,Tennessee,47011,32,0 +2020-04-14,Bradley,Tennessee,47011,33,1 +2020-04-15,Bradley,Tennessee,47011,33,1 +2020-04-16,Bradley,Tennessee,47011,35,1 +2020-04-17,Bradley,Tennessee,47011,38,1 +2020-04-18,Bradley,Tennessee,47011,38,1 +2020-04-19,Bradley,Tennessee,47011,37,1 +2020-04-20,Bradley,Tennessee,47011,37,1 +2020-04-21,Bradley,Tennessee,47011,37,1 +2020-04-22,Bradley,Tennessee,47011,38,1 +2020-04-23,Bradley,Tennessee,47011,38,1 +2020-04-24,Bradley,Tennessee,47011,40,1 +2020-04-25,Bradley,Tennessee,47011,41,1 +2020-04-26,Bradley,Tennessee,47011,43,1 +2020-04-27,Bradley,Tennessee,47011,45,1 +2020-04-28,Bradley,Tennessee,47011,46,1 +2020-04-29,Bradley,Tennessee,47011,48,1 +2020-04-30,Bradley,Tennessee,47011,49,1 +2020-05-01,Bradley,Tennessee,47011,52,1 +2020-05-02,Bradley,Tennessee,47011,52,1 +2020-05-03,Bradley,Tennessee,47011,53,1 +2020-05-04,Bradley,Tennessee,47011,56,1 +2020-05-05,Bradley,Tennessee,47011,59,1 +2020-05-06,Bradley,Tennessee,47011,61,1 +2020-05-07,Bradley,Tennessee,47011,64,1 +2020-05-08,Bradley,Tennessee,47011,68,1 +2020-05-09,Bradley,Tennessee,47011,69,1 +2020-05-10,Bradley,Tennessee,47011,69,1 +2020-05-11,Bradley,Tennessee,47011,72,1 +2020-05-12,Bradley,Tennessee,47011,74,1 +2020-05-13,Bradley,Tennessee,47011,75,1 +2020-05-14,Bradley,Tennessee,47011,80,1 +2020-05-15,Bradley,Tennessee,47011,81,1 +2020-05-16,Bradley,Tennessee,47011,81,1 +2020-05-17,Bradley,Tennessee,47011,82,1 +2020-05-18,Bradley,Tennessee,47011,83,1 +2020-05-19,Bradley,Tennessee,47011,84,1 +2020-05-20,Bradley,Tennessee,47011,84,1 +2020-05-21,Bradley,Tennessee,47011,89,1 +2020-05-22,Bradley,Tennessee,47011,90,1 +2020-05-23,Bradley,Tennessee,47011,91,1 +2020-05-24,Bradley,Tennessee,47011,93,1 +2020-05-25,Bradley,Tennessee,47011,98,1 +2020-05-26,Bradley,Tennessee,47011,99,1 +2020-05-27,Bradley,Tennessee,47011,105,1 +2020-05-28,Bradley,Tennessee,47011,108,1 +2020-05-29,Bradley,Tennessee,47011,113,1 +2020-05-30,Bradley,Tennessee,47011,122,1 +2020-05-31,Bradley,Tennessee,47011,122,1 +2020-06-01,Bradley,Tennessee,47011,122,1 +2020-06-02,Bradley,Tennessee,47011,157,1 +2020-06-03,Bradley,Tennessee,47011,161,1 +2020-06-04,Bradley,Tennessee,47011,166,1 +2020-06-05,Bradley,Tennessee,47011,174,2 +2020-06-06,Bradley,Tennessee,47011,184,2 +2020-06-07,Bradley,Tennessee,47011,199,2 +2020-06-08,Bradley,Tennessee,47011,219,2 +2020-06-09,Bradley,Tennessee,47011,233,2 +2020-06-10,Bradley,Tennessee,47011,238,2 +2020-06-11,Bradley,Tennessee,47011,241,2 +2020-06-12,Bradley,Tennessee,47011,266,2 +2020-06-13,Bradley,Tennessee,47011,272,2 +2020-06-14,Bradley,Tennessee,47011,281,2 +2020-06-15,Bradley,Tennessee,47011,288,2 +2020-06-16,Bradley,Tennessee,47011,302,2 +2020-06-17,Bradley,Tennessee,47011,303,2 +2020-06-18,Bradley,Tennessee,47011,305,2 +2020-06-19,Bradley,Tennessee,47011,314,2 +2020-06-20,Bradley,Tennessee,47011,328,2 +2020-06-21,Bradley,Tennessee,47011,338,3 +2020-06-22,Bradley,Tennessee,47011,349,3 +2020-06-23,Bradley,Tennessee,47011,393,3 +2020-06-24,Bradley,Tennessee,47011,406,3 +2020-06-25,Bradley,Tennessee,47011,421,3 +2020-06-26,Bradley,Tennessee,47011,430,3 +2020-06-27,Bradley,Tennessee,47011,444,3 +2020-06-28,Bradley,Tennessee,47011,444,3 +2020-06-29,Bradley,Tennessee,47011,493,3 +2020-06-30,Bradley,Tennessee,47011,550,3 +2020-07-01,Bradley,Tennessee,47011,580,3 +2020-07-02,Bradley,Tennessee,47011,604,3 +2020-07-03,Bradley,Tennessee,47011,662,3 +2020-07-04,Bradley,Tennessee,47011,674,3 +2020-07-05,Bradley,Tennessee,47011,707,3 +2020-07-06,Bradley,Tennessee,47011,745,4 +2020-07-07,Bradley,Tennessee,47011,773,4 +2020-07-08,Bradley,Tennessee,47011,874,4 +2020-07-09,Bradley,Tennessee,47011,889,4 +2020-03-14,Campbell,Tennessee,47013,1,0 +2020-03-15,Campbell,Tennessee,47013,1,0 +2020-03-16,Campbell,Tennessee,47013,1,0 +2020-03-17,Campbell,Tennessee,47013,1,0 +2020-03-18,Campbell,Tennessee,47013,1,0 +2020-03-19,Campbell,Tennessee,47013,1,0 +2020-03-20,Campbell,Tennessee,47013,1,0 +2020-03-21,Campbell,Tennessee,47013,2,0 +2020-03-22,Campbell,Tennessee,47013,2,0 +2020-03-23,Campbell,Tennessee,47013,2,0 +2020-03-24,Campbell,Tennessee,47013,2,0 +2020-03-25,Campbell,Tennessee,47013,2,0 +2020-03-26,Campbell,Tennessee,47013,2,0 +2020-03-27,Campbell,Tennessee,47013,4,0 +2020-03-28,Campbell,Tennessee,47013,4,0 +2020-03-29,Campbell,Tennessee,47013,4,0 +2020-03-30,Campbell,Tennessee,47013,4,0 +2020-03-31,Campbell,Tennessee,47013,4,0 +2020-04-01,Campbell,Tennessee,47013,4,0 +2020-04-02,Campbell,Tennessee,47013,4,0 +2020-04-03,Campbell,Tennessee,47013,4,0 +2020-04-04,Campbell,Tennessee,47013,5,0 +2020-04-05,Campbell,Tennessee,47013,5,0 +2020-04-06,Campbell,Tennessee,47013,5,0 +2020-04-07,Campbell,Tennessee,47013,6,0 +2020-04-08,Campbell,Tennessee,47013,6,0 +2020-04-09,Campbell,Tennessee,47013,9,0 +2020-04-10,Campbell,Tennessee,47013,10,0 +2020-04-11,Campbell,Tennessee,47013,10,0 +2020-04-12,Campbell,Tennessee,47013,10,0 +2020-04-13,Campbell,Tennessee,47013,11,0 +2020-04-14,Campbell,Tennessee,47013,12,0 +2020-04-15,Campbell,Tennessee,47013,12,1 +2020-04-16,Campbell,Tennessee,47013,12,1 +2020-04-17,Campbell,Tennessee,47013,13,1 +2020-04-18,Campbell,Tennessee,47013,13,1 +2020-04-19,Campbell,Tennessee,47013,13,1 +2020-04-20,Campbell,Tennessee,47013,14,1 +2020-04-21,Campbell,Tennessee,47013,14,1 +2020-04-22,Campbell,Tennessee,47013,14,1 +2020-04-23,Campbell,Tennessee,47013,13,1 +2020-04-24,Campbell,Tennessee,47013,13,1 +2020-04-25,Campbell,Tennessee,47013,13,1 +2020-04-26,Campbell,Tennessee,47013,14,1 +2020-04-27,Campbell,Tennessee,47013,14,1 +2020-04-28,Campbell,Tennessee,47013,14,1 +2020-04-29,Campbell,Tennessee,47013,14,1 +2020-04-30,Campbell,Tennessee,47013,15,1 +2020-05-01,Campbell,Tennessee,47013,16,1 +2020-05-02,Campbell,Tennessee,47013,16,1 +2020-05-03,Campbell,Tennessee,47013,16,1 +2020-05-04,Campbell,Tennessee,47013,17,1 +2020-05-05,Campbell,Tennessee,47013,17,1 +2020-05-06,Campbell,Tennessee,47013,16,1 +2020-05-07,Campbell,Tennessee,47013,16,1 +2020-05-08,Campbell,Tennessee,47013,16,1 +2020-05-09,Campbell,Tennessee,47013,16,1 +2020-05-10,Campbell,Tennessee,47013,17,1 +2020-05-11,Campbell,Tennessee,47013,17,1 +2020-05-12,Campbell,Tennessee,47013,17,1 +2020-05-13,Campbell,Tennessee,47013,17,1 +2020-05-14,Campbell,Tennessee,47013,17,1 +2020-05-15,Campbell,Tennessee,47013,17,1 +2020-05-16,Campbell,Tennessee,47013,17,1 +2020-05-17,Campbell,Tennessee,47013,17,1 +2020-05-18,Campbell,Tennessee,47013,17,1 +2020-05-19,Campbell,Tennessee,47013,17,1 +2020-05-20,Campbell,Tennessee,47013,17,1 +2020-05-21,Campbell,Tennessee,47013,17,1 +2020-05-22,Campbell,Tennessee,47013,17,1 +2020-05-23,Campbell,Tennessee,47013,17,1 +2020-05-24,Campbell,Tennessee,47013,17,1 +2020-05-25,Campbell,Tennessee,47013,17,1 +2020-05-26,Campbell,Tennessee,47013,17,1 +2020-05-27,Campbell,Tennessee,47013,17,1 +2020-05-28,Campbell,Tennessee,47013,17,1 +2020-05-29,Campbell,Tennessee,47013,17,1 +2020-05-30,Campbell,Tennessee,47013,18,1 +2020-05-31,Campbell,Tennessee,47013,18,1 +2020-06-01,Campbell,Tennessee,47013,18,1 +2020-06-02,Campbell,Tennessee,47013,18,1 +2020-06-03,Campbell,Tennessee,47013,18,1 +2020-06-04,Campbell,Tennessee,47013,18,1 +2020-06-05,Campbell,Tennessee,47013,18,1 +2020-06-06,Campbell,Tennessee,47013,18,1 +2020-06-07,Campbell,Tennessee,47013,18,1 +2020-06-08,Campbell,Tennessee,47013,18,1 +2020-06-09,Campbell,Tennessee,47013,18,1 +2020-06-10,Campbell,Tennessee,47013,18,1 +2020-06-11,Campbell,Tennessee,47013,18,1 +2020-06-12,Campbell,Tennessee,47013,22,1 +2020-06-13,Campbell,Tennessee,47013,24,1 +2020-06-14,Campbell,Tennessee,47013,24,1 +2020-06-15,Campbell,Tennessee,47013,24,1 +2020-06-16,Campbell,Tennessee,47013,25,1 +2020-06-17,Campbell,Tennessee,47013,25,1 +2020-06-18,Campbell,Tennessee,47013,26,1 +2020-06-19,Campbell,Tennessee,47013,26,1 +2020-06-20,Campbell,Tennessee,47013,26,1 +2020-06-21,Campbell,Tennessee,47013,26,1 +2020-06-22,Campbell,Tennessee,47013,26,1 +2020-06-23,Campbell,Tennessee,47013,27,1 +2020-06-24,Campbell,Tennessee,47013,27,1 +2020-06-25,Campbell,Tennessee,47013,28,1 +2020-06-26,Campbell,Tennessee,47013,29,1 +2020-06-27,Campbell,Tennessee,47013,31,1 +2020-06-28,Campbell,Tennessee,47013,31,1 +2020-06-29,Campbell,Tennessee,47013,31,1 +2020-06-30,Campbell,Tennessee,47013,36,1 +2020-07-01,Campbell,Tennessee,47013,39,1 +2020-07-02,Campbell,Tennessee,47013,41,1 +2020-07-03,Campbell,Tennessee,47013,44,1 +2020-07-04,Campbell,Tennessee,47013,48,1 +2020-07-05,Campbell,Tennessee,47013,48,1 +2020-07-06,Campbell,Tennessee,47013,51,1 +2020-07-07,Campbell,Tennessee,47013,54,1 +2020-07-08,Campbell,Tennessee,47013,62,1 +2020-07-09,Campbell,Tennessee,47013,65,1 +2020-03-26,Cannon,Tennessee,47015,1,0 +2020-03-27,Cannon,Tennessee,47015,2,0 +2020-03-28,Cannon,Tennessee,47015,3,0 +2020-03-29,Cannon,Tennessee,47015,2,0 +2020-03-30,Cannon,Tennessee,47015,2,0 +2020-03-31,Cannon,Tennessee,47015,3,0 +2020-04-01,Cannon,Tennessee,47015,3,0 +2020-04-02,Cannon,Tennessee,47015,4,0 +2020-04-03,Cannon,Tennessee,47015,4,0 +2020-04-04,Cannon,Tennessee,47015,4,0 +2020-04-05,Cannon,Tennessee,47015,6,0 +2020-04-06,Cannon,Tennessee,47015,7,0 +2020-04-07,Cannon,Tennessee,47015,7,0 +2020-04-08,Cannon,Tennessee,47015,7,0 +2020-04-09,Cannon,Tennessee,47015,7,0 +2020-04-10,Cannon,Tennessee,47015,7,0 +2020-04-11,Cannon,Tennessee,47015,7,0 +2020-04-12,Cannon,Tennessee,47015,7,0 +2020-04-13,Cannon,Tennessee,47015,7,0 +2020-04-14,Cannon,Tennessee,47015,7,0 +2020-04-15,Cannon,Tennessee,47015,7,0 +2020-04-16,Cannon,Tennessee,47015,8,0 +2020-04-17,Cannon,Tennessee,47015,9,0 +2020-04-18,Cannon,Tennessee,47015,9,0 +2020-04-19,Cannon,Tennessee,47015,9,0 +2020-04-20,Cannon,Tennessee,47015,9,0 +2020-04-21,Cannon,Tennessee,47015,9,0 +2020-04-22,Cannon,Tennessee,47015,11,0 +2020-04-23,Cannon,Tennessee,47015,10,0 +2020-04-24,Cannon,Tennessee,47015,10,0 +2020-04-25,Cannon,Tennessee,47015,10,0 +2020-04-26,Cannon,Tennessee,47015,10,0 +2020-04-27,Cannon,Tennessee,47015,11,0 +2020-04-28,Cannon,Tennessee,47015,11,0 +2020-04-29,Cannon,Tennessee,47015,11,0 +2020-04-30,Cannon,Tennessee,47015,12,0 +2020-05-01,Cannon,Tennessee,47015,12,0 +2020-05-02,Cannon,Tennessee,47015,12,0 +2020-05-03,Cannon,Tennessee,47015,12,0 +2020-05-04,Cannon,Tennessee,47015,12,0 +2020-05-05,Cannon,Tennessee,47015,12,0 +2020-05-06,Cannon,Tennessee,47015,12,0 +2020-05-07,Cannon,Tennessee,47015,13,0 +2020-05-08,Cannon,Tennessee,47015,13,0 +2020-05-09,Cannon,Tennessee,47015,13,0 +2020-05-10,Cannon,Tennessee,47015,13,0 +2020-05-11,Cannon,Tennessee,47015,13,0 +2020-05-12,Cannon,Tennessee,47015,13,0 +2020-05-13,Cannon,Tennessee,47015,13,0 +2020-05-14,Cannon,Tennessee,47015,13,0 +2020-05-15,Cannon,Tennessee,47015,13,0 +2020-05-16,Cannon,Tennessee,47015,13,0 +2020-05-17,Cannon,Tennessee,47015,13,0 +2020-05-18,Cannon,Tennessee,47015,13,0 +2020-05-19,Cannon,Tennessee,47015,13,0 +2020-05-20,Cannon,Tennessee,47015,13,0 +2020-05-21,Cannon,Tennessee,47015,15,0 +2020-05-22,Cannon,Tennessee,47015,15,0 +2020-05-23,Cannon,Tennessee,47015,16,0 +2020-05-24,Cannon,Tennessee,47015,17,0 +2020-05-25,Cannon,Tennessee,47015,17,0 +2020-05-26,Cannon,Tennessee,47015,17,0 +2020-05-27,Cannon,Tennessee,47015,17,0 +2020-05-28,Cannon,Tennessee,47015,17,0 +2020-05-29,Cannon,Tennessee,47015,17,0 +2020-05-30,Cannon,Tennessee,47015,21,0 +2020-05-31,Cannon,Tennessee,47015,21,0 +2020-06-01,Cannon,Tennessee,47015,21,0 +2020-06-02,Cannon,Tennessee,47015,31,0 +2020-06-03,Cannon,Tennessee,47015,32,0 +2020-06-04,Cannon,Tennessee,47015,32,0 +2020-06-05,Cannon,Tennessee,47015,32,0 +2020-06-06,Cannon,Tennessee,47015,32,0 +2020-06-07,Cannon,Tennessee,47015,32,0 +2020-06-08,Cannon,Tennessee,47015,34,0 +2020-06-09,Cannon,Tennessee,47015,34,0 +2020-06-10,Cannon,Tennessee,47015,34,0 +2020-06-11,Cannon,Tennessee,47015,34,0 +2020-06-12,Cannon,Tennessee,47015,34,0 +2020-06-13,Cannon,Tennessee,47015,34,0 +2020-06-14,Cannon,Tennessee,47015,34,0 +2020-06-15,Cannon,Tennessee,47015,34,0 +2020-06-16,Cannon,Tennessee,47015,34,0 +2020-06-17,Cannon,Tennessee,47015,34,0 +2020-06-18,Cannon,Tennessee,47015,34,0 +2020-06-19,Cannon,Tennessee,47015,34,0 +2020-06-20,Cannon,Tennessee,47015,23,0 +2020-06-21,Cannon,Tennessee,47015,23,0 +2020-06-22,Cannon,Tennessee,47015,23,0 +2020-06-23,Cannon,Tennessee,47015,23,0 +2020-06-24,Cannon,Tennessee,47015,23,0 +2020-06-25,Cannon,Tennessee,47015,23,0 +2020-06-26,Cannon,Tennessee,47015,25,0 +2020-06-27,Cannon,Tennessee,47015,25,0 +2020-06-28,Cannon,Tennessee,47015,25,0 +2020-06-29,Cannon,Tennessee,47015,26,0 +2020-06-30,Cannon,Tennessee,47015,27,0 +2020-07-01,Cannon,Tennessee,47015,31,0 +2020-07-02,Cannon,Tennessee,47015,34,0 +2020-07-03,Cannon,Tennessee,47015,36,0 +2020-07-04,Cannon,Tennessee,47015,36,0 +2020-07-05,Cannon,Tennessee,47015,37,0 +2020-07-06,Cannon,Tennessee,47015,37,0 +2020-07-07,Cannon,Tennessee,47015,37,0 +2020-07-08,Cannon,Tennessee,47015,41,0 +2020-07-09,Cannon,Tennessee,47015,45,0 +2020-03-21,Carroll,Tennessee,47017,1,0 +2020-03-22,Carroll,Tennessee,47017,2,0 +2020-03-23,Carroll,Tennessee,47017,2,0 +2020-03-24,Carroll,Tennessee,47017,3,0 +2020-03-25,Carroll,Tennessee,47017,3,0 +2020-03-26,Carroll,Tennessee,47017,3,0 +2020-03-27,Carroll,Tennessee,47017,4,0 +2020-03-28,Carroll,Tennessee,47017,4,0 +2020-03-29,Carroll,Tennessee,47017,5,0 +2020-03-30,Carroll,Tennessee,47017,5,0 +2020-03-31,Carroll,Tennessee,47017,5,0 +2020-04-01,Carroll,Tennessee,47017,5,0 +2020-04-02,Carroll,Tennessee,47017,5,0 +2020-04-03,Carroll,Tennessee,47017,6,0 +2020-04-04,Carroll,Tennessee,47017,6,0 +2020-04-05,Carroll,Tennessee,47017,7,0 +2020-04-06,Carroll,Tennessee,47017,8,0 +2020-04-07,Carroll,Tennessee,47017,8,0 +2020-04-08,Carroll,Tennessee,47017,8,0 +2020-04-09,Carroll,Tennessee,47017,10,0 +2020-04-10,Carroll,Tennessee,47017,10,0 +2020-04-11,Carroll,Tennessee,47017,10,0 +2020-04-12,Carroll,Tennessee,47017,10,0 +2020-04-13,Carroll,Tennessee,47017,12,0 +2020-04-14,Carroll,Tennessee,47017,12,0 +2020-04-15,Carroll,Tennessee,47017,13,0 +2020-04-16,Carroll,Tennessee,47017,13,0 +2020-04-17,Carroll,Tennessee,47017,13,0 +2020-04-18,Carroll,Tennessee,47017,13,0 +2020-04-19,Carroll,Tennessee,47017,15,0 +2020-04-20,Carroll,Tennessee,47017,15,1 +2020-04-21,Carroll,Tennessee,47017,14,1 +2020-04-22,Carroll,Tennessee,47017,14,1 +2020-04-23,Carroll,Tennessee,47017,14,1 +2020-04-24,Carroll,Tennessee,47017,14,1 +2020-04-25,Carroll,Tennessee,47017,16,1 +2020-04-26,Carroll,Tennessee,47017,16,1 +2020-04-27,Carroll,Tennessee,47017,16,1 +2020-04-28,Carroll,Tennessee,47017,18,1 +2020-04-29,Carroll,Tennessee,47017,18,1 +2020-04-30,Carroll,Tennessee,47017,18,1 +2020-05-01,Carroll,Tennessee,47017,18,1 +2020-05-02,Carroll,Tennessee,47017,18,1 +2020-05-03,Carroll,Tennessee,47017,18,1 +2020-05-04,Carroll,Tennessee,47017,23,1 +2020-05-05,Carroll,Tennessee,47017,22,1 +2020-05-06,Carroll,Tennessee,47017,18,1 +2020-05-07,Carroll,Tennessee,47017,19,1 +2020-05-08,Carroll,Tennessee,47017,19,1 +2020-05-09,Carroll,Tennessee,47017,19,1 +2020-05-10,Carroll,Tennessee,47017,19,1 +2020-05-11,Carroll,Tennessee,47017,21,1 +2020-05-12,Carroll,Tennessee,47017,22,1 +2020-05-13,Carroll,Tennessee,47017,22,1 +2020-05-14,Carroll,Tennessee,47017,23,1 +2020-05-15,Carroll,Tennessee,47017,24,1 +2020-05-16,Carroll,Tennessee,47017,25,1 +2020-05-17,Carroll,Tennessee,47017,25,1 +2020-05-18,Carroll,Tennessee,47017,25,1 +2020-05-19,Carroll,Tennessee,47017,25,1 +2020-05-20,Carroll,Tennessee,47017,25,1 +2020-05-21,Carroll,Tennessee,47017,26,1 +2020-05-22,Carroll,Tennessee,47017,26,1 +2020-05-23,Carroll,Tennessee,47017,27,1 +2020-05-24,Carroll,Tennessee,47017,27,1 +2020-05-25,Carroll,Tennessee,47017,27,1 +2020-05-26,Carroll,Tennessee,47017,27,1 +2020-05-27,Carroll,Tennessee,47017,27,1 +2020-05-28,Carroll,Tennessee,47017,27,1 +2020-05-29,Carroll,Tennessee,47017,27,1 +2020-05-30,Carroll,Tennessee,47017,27,1 +2020-05-31,Carroll,Tennessee,47017,27,1 +2020-06-01,Carroll,Tennessee,47017,27,1 +2020-06-02,Carroll,Tennessee,47017,28,1 +2020-06-03,Carroll,Tennessee,47017,28,1 +2020-06-04,Carroll,Tennessee,47017,28,1 +2020-06-05,Carroll,Tennessee,47017,28,1 +2020-06-06,Carroll,Tennessee,47017,28,1 +2020-06-07,Carroll,Tennessee,47017,28,1 +2020-06-08,Carroll,Tennessee,47017,28,1 +2020-06-09,Carroll,Tennessee,47017,28,1 +2020-06-10,Carroll,Tennessee,47017,29,1 +2020-06-11,Carroll,Tennessee,47017,29,1 +2020-06-12,Carroll,Tennessee,47017,34,1 +2020-06-13,Carroll,Tennessee,47017,35,1 +2020-06-14,Carroll,Tennessee,47017,36,1 +2020-06-15,Carroll,Tennessee,47017,36,1 +2020-06-16,Carroll,Tennessee,47017,36,1 +2020-06-17,Carroll,Tennessee,47017,36,1 +2020-06-18,Carroll,Tennessee,47017,36,1 +2020-06-19,Carroll,Tennessee,47017,36,1 +2020-06-20,Carroll,Tennessee,47017,36,1 +2020-06-21,Carroll,Tennessee,47017,36,1 +2020-06-22,Carroll,Tennessee,47017,36,1 +2020-06-23,Carroll,Tennessee,47017,36,1 +2020-06-24,Carroll,Tennessee,47017,36,1 +2020-06-25,Carroll,Tennessee,47017,36,1 +2020-06-26,Carroll,Tennessee,47017,36,1 +2020-06-27,Carroll,Tennessee,47017,38,1 +2020-06-28,Carroll,Tennessee,47017,38,1 +2020-06-29,Carroll,Tennessee,47017,39,1 +2020-06-30,Carroll,Tennessee,47017,39,1 +2020-07-01,Carroll,Tennessee,47017,39,1 +2020-07-02,Carroll,Tennessee,47017,40,1 +2020-07-03,Carroll,Tennessee,47017,44,1 +2020-07-04,Carroll,Tennessee,47017,48,1 +2020-07-05,Carroll,Tennessee,47017,47,1 +2020-07-06,Carroll,Tennessee,47017,48,1 +2020-07-07,Carroll,Tennessee,47017,49,1 +2020-07-08,Carroll,Tennessee,47017,49,1 +2020-07-09,Carroll,Tennessee,47017,51,1 +2020-03-28,Carter,Tennessee,47019,1,0 +2020-03-29,Carter,Tennessee,47019,1,0 +2020-03-30,Carter,Tennessee,47019,1,0 +2020-03-31,Carter,Tennessee,47019,1,0 +2020-04-01,Carter,Tennessee,47019,1,0 +2020-04-02,Carter,Tennessee,47019,1,0 +2020-04-03,Carter,Tennessee,47019,3,0 +2020-04-04,Carter,Tennessee,47019,3,0 +2020-04-05,Carter,Tennessee,47019,3,0 +2020-04-06,Carter,Tennessee,47019,3,0 +2020-04-07,Carter,Tennessee,47019,3,0 +2020-04-08,Carter,Tennessee,47019,3,0 +2020-04-09,Carter,Tennessee,47019,3,0 +2020-04-10,Carter,Tennessee,47019,3,0 +2020-04-11,Carter,Tennessee,47019,3,0 +2020-04-12,Carter,Tennessee,47019,3,0 +2020-04-13,Carter,Tennessee,47019,3,0 +2020-04-14,Carter,Tennessee,47019,3,0 +2020-04-15,Carter,Tennessee,47019,4,1 +2020-04-16,Carter,Tennessee,47019,5,1 +2020-04-17,Carter,Tennessee,47019,5,1 +2020-04-18,Carter,Tennessee,47019,5,1 +2020-04-19,Carter,Tennessee,47019,5,1 +2020-04-20,Carter,Tennessee,47019,5,1 +2020-04-21,Carter,Tennessee,47019,5,1 +2020-04-22,Carter,Tennessee,47019,5,1 +2020-04-23,Carter,Tennessee,47019,6,1 +2020-04-24,Carter,Tennessee,47019,7,1 +2020-04-25,Carter,Tennessee,47019,10,1 +2020-04-26,Carter,Tennessee,47019,12,1 +2020-04-27,Carter,Tennessee,47019,12,1 +2020-04-28,Carter,Tennessee,47019,12,1 +2020-04-29,Carter,Tennessee,47019,12,1 +2020-04-30,Carter,Tennessee,47019,12,1 +2020-05-01,Carter,Tennessee,47019,13,1 +2020-05-02,Carter,Tennessee,47019,14,1 +2020-05-03,Carter,Tennessee,47019,14,1 +2020-05-04,Carter,Tennessee,47019,14,1 +2020-05-05,Carter,Tennessee,47019,16,1 +2020-05-06,Carter,Tennessee,47019,16,1 +2020-05-07,Carter,Tennessee,47019,18,1 +2020-05-08,Carter,Tennessee,47019,18,1 +2020-05-09,Carter,Tennessee,47019,18,1 +2020-05-10,Carter,Tennessee,47019,18,1 +2020-05-11,Carter,Tennessee,47019,18,1 +2020-05-12,Carter,Tennessee,47019,18,1 +2020-05-13,Carter,Tennessee,47019,18,1 +2020-05-14,Carter,Tennessee,47019,19,1 +2020-05-15,Carter,Tennessee,47019,19,1 +2020-05-16,Carter,Tennessee,47019,19,1 +2020-05-17,Carter,Tennessee,47019,19,1 +2020-05-18,Carter,Tennessee,47019,19,1 +2020-05-19,Carter,Tennessee,47019,19,1 +2020-05-20,Carter,Tennessee,47019,19,1 +2020-05-21,Carter,Tennessee,47019,19,1 +2020-05-22,Carter,Tennessee,47019,19,1 +2020-05-23,Carter,Tennessee,47019,19,1 +2020-05-24,Carter,Tennessee,47019,19,1 +2020-05-25,Carter,Tennessee,47019,19,1 +2020-05-26,Carter,Tennessee,47019,19,1 +2020-05-27,Carter,Tennessee,47019,19,1 +2020-05-28,Carter,Tennessee,47019,19,1 +2020-05-29,Carter,Tennessee,47019,19,1 +2020-05-30,Carter,Tennessee,47019,19,1 +2020-05-31,Carter,Tennessee,47019,19,1 +2020-06-01,Carter,Tennessee,47019,19,1 +2020-06-02,Carter,Tennessee,47019,19,1 +2020-06-03,Carter,Tennessee,47019,19,1 +2020-06-04,Carter,Tennessee,47019,19,1 +2020-06-05,Carter,Tennessee,47019,19,1 +2020-06-06,Carter,Tennessee,47019,19,1 +2020-06-07,Carter,Tennessee,47019,19,1 +2020-06-08,Carter,Tennessee,47019,19,1 +2020-06-09,Carter,Tennessee,47019,19,1 +2020-06-10,Carter,Tennessee,47019,19,1 +2020-06-11,Carter,Tennessee,47019,19,1 +2020-06-12,Carter,Tennessee,47019,20,1 +2020-06-13,Carter,Tennessee,47019,20,1 +2020-06-14,Carter,Tennessee,47019,20,1 +2020-06-15,Carter,Tennessee,47019,20,1 +2020-06-16,Carter,Tennessee,47019,22,1 +2020-06-17,Carter,Tennessee,47019,22,1 +2020-06-18,Carter,Tennessee,47019,23,1 +2020-06-19,Carter,Tennessee,47019,27,1 +2020-06-20,Carter,Tennessee,47019,28,1 +2020-06-21,Carter,Tennessee,47019,30,1 +2020-06-22,Carter,Tennessee,47019,30,1 +2020-06-23,Carter,Tennessee,47019,32,1 +2020-06-24,Carter,Tennessee,47019,34,1 +2020-06-25,Carter,Tennessee,47019,42,1 +2020-06-26,Carter,Tennessee,47019,48,1 +2020-06-27,Carter,Tennessee,47019,49,1 +2020-06-28,Carter,Tennessee,47019,49,1 +2020-06-29,Carter,Tennessee,47019,52,1 +2020-06-30,Carter,Tennessee,47019,54,1 +2020-07-01,Carter,Tennessee,47019,56,1 +2020-07-02,Carter,Tennessee,47019,56,1 +2020-07-03,Carter,Tennessee,47019,56,1 +2020-07-04,Carter,Tennessee,47019,57,1 +2020-07-05,Carter,Tennessee,47019,59,1 +2020-07-06,Carter,Tennessee,47019,65,1 +2020-07-07,Carter,Tennessee,47019,70,1 +2020-07-08,Carter,Tennessee,47019,75,1 +2020-07-09,Carter,Tennessee,47019,77,1 +2020-03-18,Cheatham,Tennessee,47021,1,0 +2020-03-19,Cheatham,Tennessee,47021,1,0 +2020-03-20,Cheatham,Tennessee,47021,2,0 +2020-03-21,Cheatham,Tennessee,47021,2,0 +2020-03-22,Cheatham,Tennessee,47021,4,0 +2020-03-23,Cheatham,Tennessee,47021,4,0 +2020-03-24,Cheatham,Tennessee,47021,5,0 +2020-03-25,Cheatham,Tennessee,47021,7,0 +2020-03-26,Cheatham,Tennessee,47021,7,0 +2020-03-27,Cheatham,Tennessee,47021,7,0 +2020-03-28,Cheatham,Tennessee,47021,7,0 +2020-03-29,Cheatham,Tennessee,47021,8,0 +2020-03-30,Cheatham,Tennessee,47021,8,0 +2020-03-31,Cheatham,Tennessee,47021,10,0 +2020-04-01,Cheatham,Tennessee,47021,11,0 +2020-04-02,Cheatham,Tennessee,47021,11,0 +2020-04-03,Cheatham,Tennessee,47021,11,0 +2020-04-04,Cheatham,Tennessee,47021,12,0 +2020-04-05,Cheatham,Tennessee,47021,13,0 +2020-04-06,Cheatham,Tennessee,47021,13,0 +2020-04-07,Cheatham,Tennessee,47021,13,0 +2020-04-08,Cheatham,Tennessee,47021,13,0 +2020-04-09,Cheatham,Tennessee,47021,15,0 +2020-04-10,Cheatham,Tennessee,47021,17,0 +2020-04-11,Cheatham,Tennessee,47021,17,0 +2020-04-12,Cheatham,Tennessee,47021,17,0 +2020-04-13,Cheatham,Tennessee,47021,18,0 +2020-04-14,Cheatham,Tennessee,47021,19,0 +2020-04-15,Cheatham,Tennessee,47021,19,0 +2020-04-16,Cheatham,Tennessee,47021,20,0 +2020-04-17,Cheatham,Tennessee,47021,21,0 +2020-04-18,Cheatham,Tennessee,47021,22,0 +2020-04-19,Cheatham,Tennessee,47021,22,0 +2020-04-20,Cheatham,Tennessee,47021,22,0 +2020-04-21,Cheatham,Tennessee,47021,22,0 +2020-04-22,Cheatham,Tennessee,47021,26,0 +2020-04-23,Cheatham,Tennessee,47021,28,0 +2020-04-24,Cheatham,Tennessee,47021,32,0 +2020-04-25,Cheatham,Tennessee,47021,36,0 +2020-04-26,Cheatham,Tennessee,47021,36,0 +2020-04-27,Cheatham,Tennessee,47021,39,0 +2020-04-28,Cheatham,Tennessee,47021,42,0 +2020-04-29,Cheatham,Tennessee,47021,42,0 +2020-04-30,Cheatham,Tennessee,47021,46,0 +2020-05-01,Cheatham,Tennessee,47021,48,0 +2020-05-02,Cheatham,Tennessee,47021,48,0 +2020-05-03,Cheatham,Tennessee,47021,53,0 +2020-05-04,Cheatham,Tennessee,47021,56,0 +2020-05-05,Cheatham,Tennessee,47021,57,0 +2020-05-06,Cheatham,Tennessee,47021,58,0 +2020-05-07,Cheatham,Tennessee,47021,58,0 +2020-05-08,Cheatham,Tennessee,47021,59,0 +2020-05-09,Cheatham,Tennessee,47021,61,0 +2020-05-10,Cheatham,Tennessee,47021,63,0 +2020-05-11,Cheatham,Tennessee,47021,66,0 +2020-05-12,Cheatham,Tennessee,47021,76,0 +2020-05-13,Cheatham,Tennessee,47021,78,0 +2020-05-14,Cheatham,Tennessee,47021,85,0 +2020-05-15,Cheatham,Tennessee,47021,88,0 +2020-05-16,Cheatham,Tennessee,47021,88,0 +2020-05-17,Cheatham,Tennessee,47021,88,0 +2020-05-18,Cheatham,Tennessee,47021,92,0 +2020-05-19,Cheatham,Tennessee,47021,93,0 +2020-05-20,Cheatham,Tennessee,47021,93,0 +2020-05-21,Cheatham,Tennessee,47021,97,0 +2020-05-22,Cheatham,Tennessee,47021,100,0 +2020-05-23,Cheatham,Tennessee,47021,103,0 +2020-05-24,Cheatham,Tennessee,47021,104,0 +2020-05-25,Cheatham,Tennessee,47021,110,0 +2020-05-26,Cheatham,Tennessee,47021,112,0 +2020-05-27,Cheatham,Tennessee,47021,114,0 +2020-05-28,Cheatham,Tennessee,47021,118,0 +2020-05-29,Cheatham,Tennessee,47021,116,0 +2020-05-30,Cheatham,Tennessee,47021,123,0 +2020-05-31,Cheatham,Tennessee,47021,123,0 +2020-06-01,Cheatham,Tennessee,47021,123,0 +2020-06-02,Cheatham,Tennessee,47021,134,0 +2020-06-03,Cheatham,Tennessee,47021,135,0 +2020-06-04,Cheatham,Tennessee,47021,135,0 +2020-06-05,Cheatham,Tennessee,47021,140,0 +2020-06-06,Cheatham,Tennessee,47021,141,0 +2020-06-07,Cheatham,Tennessee,47021,143,0 +2020-06-08,Cheatham,Tennessee,47021,144,0 +2020-06-09,Cheatham,Tennessee,47021,146,0 +2020-06-10,Cheatham,Tennessee,47021,149,0 +2020-06-11,Cheatham,Tennessee,47021,151,0 +2020-06-12,Cheatham,Tennessee,47021,152,0 +2020-06-13,Cheatham,Tennessee,47021,153,0 +2020-06-14,Cheatham,Tennessee,47021,153,0 +2020-06-15,Cheatham,Tennessee,47021,155,0 +2020-06-16,Cheatham,Tennessee,47021,158,0 +2020-06-17,Cheatham,Tennessee,47021,159,0 +2020-06-18,Cheatham,Tennessee,47021,161,0 +2020-06-19,Cheatham,Tennessee,47021,164,0 +2020-06-20,Cheatham,Tennessee,47021,164,0 +2020-06-21,Cheatham,Tennessee,47021,165,0 +2020-06-22,Cheatham,Tennessee,47021,167,0 +2020-06-23,Cheatham,Tennessee,47021,175,0 +2020-06-24,Cheatham,Tennessee,47021,177,0 +2020-06-25,Cheatham,Tennessee,47021,187,0 +2020-06-26,Cheatham,Tennessee,47021,190,0 +2020-06-27,Cheatham,Tennessee,47021,194,0 +2020-06-28,Cheatham,Tennessee,47021,194,0 +2020-06-29,Cheatham,Tennessee,47021,195,1 +2020-06-30,Cheatham,Tennessee,47021,202,1 +2020-07-01,Cheatham,Tennessee,47021,214,1 +2020-07-02,Cheatham,Tennessee,47021,220,1 +2020-07-03,Cheatham,Tennessee,47021,225,1 +2020-07-04,Cheatham,Tennessee,47021,225,1 +2020-07-05,Cheatham,Tennessee,47021,230,1 +2020-07-06,Cheatham,Tennessee,47021,232,1 +2020-07-07,Cheatham,Tennessee,47021,236,1 +2020-07-08,Cheatham,Tennessee,47021,243,2 +2020-07-09,Cheatham,Tennessee,47021,252,2 +2020-03-22,Chester,Tennessee,47023,1,0 +2020-03-23,Chester,Tennessee,47023,1,0 +2020-03-24,Chester,Tennessee,47023,1,0 +2020-03-25,Chester,Tennessee,47023,1,0 +2020-03-26,Chester,Tennessee,47023,2,0 +2020-03-27,Chester,Tennessee,47023,2,0 +2020-03-28,Chester,Tennessee,47023,2,0 +2020-03-29,Chester,Tennessee,47023,2,0 +2020-03-30,Chester,Tennessee,47023,3,0 +2020-03-31,Chester,Tennessee,47023,3,0 +2020-04-01,Chester,Tennessee,47023,3,0 +2020-04-02,Chester,Tennessee,47023,3,0 +2020-04-03,Chester,Tennessee,47023,5,0 +2020-04-04,Chester,Tennessee,47023,6,0 +2020-04-05,Chester,Tennessee,47023,6,0 +2020-04-06,Chester,Tennessee,47023,6,0 +2020-04-07,Chester,Tennessee,47023,7,0 +2020-04-08,Chester,Tennessee,47023,7,0 +2020-04-09,Chester,Tennessee,47023,7,0 +2020-04-10,Chester,Tennessee,47023,7,0 +2020-04-11,Chester,Tennessee,47023,6,0 +2020-04-12,Chester,Tennessee,47023,6,0 +2020-04-13,Chester,Tennessee,47023,6,0 +2020-04-14,Chester,Tennessee,47023,5,0 +2020-04-15,Chester,Tennessee,47023,6,0 +2020-04-16,Chester,Tennessee,47023,6,0 +2020-04-17,Chester,Tennessee,47023,6,0 +2020-04-18,Chester,Tennessee,47023,6,0 +2020-04-19,Chester,Tennessee,47023,8,0 +2020-04-20,Chester,Tennessee,47023,8,0 +2020-04-21,Chester,Tennessee,47023,9,0 +2020-04-22,Chester,Tennessee,47023,9,0 +2020-04-23,Chester,Tennessee,47023,10,0 +2020-04-24,Chester,Tennessee,47023,10,0 +2020-04-25,Chester,Tennessee,47023,10,0 +2020-04-26,Chester,Tennessee,47023,10,0 +2020-04-27,Chester,Tennessee,47023,10,0 +2020-04-28,Chester,Tennessee,47023,10,0 +2020-04-29,Chester,Tennessee,47023,10,0 +2020-04-30,Chester,Tennessee,47023,10,0 +2020-05-01,Chester,Tennessee,47023,10,0 +2020-05-02,Chester,Tennessee,47023,10,0 +2020-05-03,Chester,Tennessee,47023,10,0 +2020-05-04,Chester,Tennessee,47023,10,0 +2020-05-05,Chester,Tennessee,47023,10,0 +2020-05-06,Chester,Tennessee,47023,10,0 +2020-05-07,Chester,Tennessee,47023,10,0 +2020-05-08,Chester,Tennessee,47023,12,0 +2020-05-09,Chester,Tennessee,47023,12,0 +2020-05-10,Chester,Tennessee,47023,12,0 +2020-05-11,Chester,Tennessee,47023,12,0 +2020-05-12,Chester,Tennessee,47023,12,0 +2020-05-13,Chester,Tennessee,47023,12,0 +2020-05-14,Chester,Tennessee,47023,12,0 +2020-05-15,Chester,Tennessee,47023,12,0 +2020-05-16,Chester,Tennessee,47023,12,0 +2020-05-17,Chester,Tennessee,47023,12,0 +2020-05-18,Chester,Tennessee,47023,12,0 +2020-05-19,Chester,Tennessee,47023,12,0 +2020-05-20,Chester,Tennessee,47023,12,0 +2020-05-21,Chester,Tennessee,47023,12,0 +2020-05-22,Chester,Tennessee,47023,12,0 +2020-05-23,Chester,Tennessee,47023,12,0 +2020-05-24,Chester,Tennessee,47023,12,0 +2020-05-25,Chester,Tennessee,47023,12,0 +2020-05-26,Chester,Tennessee,47023,12,0 +2020-05-27,Chester,Tennessee,47023,13,0 +2020-05-28,Chester,Tennessee,47023,12,0 +2020-05-29,Chester,Tennessee,47023,12,0 +2020-05-30,Chester,Tennessee,47023,12,0 +2020-05-31,Chester,Tennessee,47023,12,0 +2020-06-01,Chester,Tennessee,47023,12,0 +2020-06-02,Chester,Tennessee,47023,12,0 +2020-06-03,Chester,Tennessee,47023,12,0 +2020-06-04,Chester,Tennessee,47023,12,0 +2020-06-05,Chester,Tennessee,47023,12,0 +2020-06-06,Chester,Tennessee,47023,12,0 +2020-06-07,Chester,Tennessee,47023,12,0 +2020-06-08,Chester,Tennessee,47023,12,0 +2020-06-09,Chester,Tennessee,47023,12,0 +2020-06-10,Chester,Tennessee,47023,12,0 +2020-06-11,Chester,Tennessee,47023,12,0 +2020-06-12,Chester,Tennessee,47023,12,0 +2020-06-13,Chester,Tennessee,47023,12,0 +2020-06-14,Chester,Tennessee,47023,12,0 +2020-06-15,Chester,Tennessee,47023,12,0 +2020-06-16,Chester,Tennessee,47023,12,0 +2020-06-17,Chester,Tennessee,47023,14,0 +2020-06-18,Chester,Tennessee,47023,14,0 +2020-06-19,Chester,Tennessee,47023,14,0 +2020-06-20,Chester,Tennessee,47023,14,0 +2020-06-21,Chester,Tennessee,47023,14,0 +2020-06-22,Chester,Tennessee,47023,14,0 +2020-06-23,Chester,Tennessee,47023,16,0 +2020-06-24,Chester,Tennessee,47023,16,0 +2020-06-25,Chester,Tennessee,47023,16,0 +2020-06-26,Chester,Tennessee,47023,16,0 +2020-06-27,Chester,Tennessee,47023,19,0 +2020-06-28,Chester,Tennessee,47023,19,0 +2020-06-29,Chester,Tennessee,47023,21,0 +2020-06-30,Chester,Tennessee,47023,23,0 +2020-07-01,Chester,Tennessee,47023,23,0 +2020-07-02,Chester,Tennessee,47023,26,0 +2020-07-03,Chester,Tennessee,47023,30,0 +2020-07-04,Chester,Tennessee,47023,34,0 +2020-07-05,Chester,Tennessee,47023,34,0 +2020-07-06,Chester,Tennessee,47023,35,0 +2020-07-07,Chester,Tennessee,47023,37,0 +2020-07-08,Chester,Tennessee,47023,48,0 +2020-07-09,Chester,Tennessee,47023,53,0 +2020-03-24,Claiborne,Tennessee,47025,1,0 +2020-03-25,Claiborne,Tennessee,47025,1,0 +2020-03-26,Claiborne,Tennessee,47025,2,0 +2020-03-27,Claiborne,Tennessee,47025,2,0 +2020-03-28,Claiborne,Tennessee,47025,2,0 +2020-03-29,Claiborne,Tennessee,47025,2,0 +2020-03-30,Claiborne,Tennessee,47025,2,0 +2020-03-31,Claiborne,Tennessee,47025,2,0 +2020-04-01,Claiborne,Tennessee,47025,2,0 +2020-04-02,Claiborne,Tennessee,47025,2,0 +2020-04-03,Claiborne,Tennessee,47025,2,0 +2020-04-04,Claiborne,Tennessee,47025,2,0 +2020-04-05,Claiborne,Tennessee,47025,2,0 +2020-04-06,Claiborne,Tennessee,47025,2,0 +2020-04-07,Claiborne,Tennessee,47025,2,0 +2020-04-08,Claiborne,Tennessee,47025,2,0 +2020-04-09,Claiborne,Tennessee,47025,2,0 +2020-04-10,Claiborne,Tennessee,47025,3,0 +2020-04-11,Claiborne,Tennessee,47025,3,0 +2020-04-12,Claiborne,Tennessee,47025,3,0 +2020-04-13,Claiborne,Tennessee,47025,4,0 +2020-04-14,Claiborne,Tennessee,47025,5,0 +2020-04-15,Claiborne,Tennessee,47025,5,0 +2020-04-16,Claiborne,Tennessee,47025,5,0 +2020-04-17,Claiborne,Tennessee,47025,5,0 +2020-04-18,Claiborne,Tennessee,47025,5,0 +2020-04-19,Claiborne,Tennessee,47025,5,0 +2020-04-20,Claiborne,Tennessee,47025,5,0 +2020-04-21,Claiborne,Tennessee,47025,5,0 +2020-04-22,Claiborne,Tennessee,47025,5,0 +2020-04-23,Claiborne,Tennessee,47025,5,0 +2020-04-24,Claiborne,Tennessee,47025,5,0 +2020-04-25,Claiborne,Tennessee,47025,5,0 +2020-04-26,Claiborne,Tennessee,47025,5,0 +2020-04-27,Claiborne,Tennessee,47025,5,0 +2020-04-28,Claiborne,Tennessee,47025,5,0 +2020-04-29,Claiborne,Tennessee,47025,5,0 +2020-04-30,Claiborne,Tennessee,47025,5,0 +2020-05-01,Claiborne,Tennessee,47025,5,0 +2020-05-02,Claiborne,Tennessee,47025,5,0 +2020-05-03,Claiborne,Tennessee,47025,5,0 +2020-05-04,Claiborne,Tennessee,47025,5,0 +2020-05-05,Claiborne,Tennessee,47025,6,0 +2020-05-06,Claiborne,Tennessee,47025,6,0 +2020-05-07,Claiborne,Tennessee,47025,7,0 +2020-05-08,Claiborne,Tennessee,47025,7,0 +2020-05-09,Claiborne,Tennessee,47025,7,0 +2020-05-10,Claiborne,Tennessee,47025,7,0 +2020-05-11,Claiborne,Tennessee,47025,7,0 +2020-05-12,Claiborne,Tennessee,47025,7,0 +2020-05-13,Claiborne,Tennessee,47025,7,0 +2020-05-14,Claiborne,Tennessee,47025,7,0 +2020-05-15,Claiborne,Tennessee,47025,7,0 +2020-05-16,Claiborne,Tennessee,47025,7,0 +2020-05-17,Claiborne,Tennessee,47025,7,0 +2020-05-18,Claiborne,Tennessee,47025,8,0 +2020-05-19,Claiborne,Tennessee,47025,8,0 +2020-05-20,Claiborne,Tennessee,47025,8,0 +2020-05-21,Claiborne,Tennessee,47025,8,0 +2020-05-22,Claiborne,Tennessee,47025,8,0 +2020-05-23,Claiborne,Tennessee,47025,8,0 +2020-05-24,Claiborne,Tennessee,47025,8,0 +2020-05-25,Claiborne,Tennessee,47025,8,0 +2020-05-26,Claiborne,Tennessee,47025,8,0 +2020-05-27,Claiborne,Tennessee,47025,8,0 +2020-05-28,Claiborne,Tennessee,47025,9,0 +2020-05-29,Claiborne,Tennessee,47025,9,0 +2020-05-30,Claiborne,Tennessee,47025,9,0 +2020-05-31,Claiborne,Tennessee,47025,9,0 +2020-06-01,Claiborne,Tennessee,47025,9,0 +2020-06-02,Claiborne,Tennessee,47025,12,0 +2020-06-03,Claiborne,Tennessee,47025,12,0 +2020-06-04,Claiborne,Tennessee,47025,12,0 +2020-06-05,Claiborne,Tennessee,47025,12,0 +2020-06-06,Claiborne,Tennessee,47025,12,0 +2020-06-07,Claiborne,Tennessee,47025,14,0 +2020-06-08,Claiborne,Tennessee,47025,14,0 +2020-06-09,Claiborne,Tennessee,47025,14,0 +2020-06-10,Claiborne,Tennessee,47025,15,0 +2020-06-11,Claiborne,Tennessee,47025,15,0 +2020-06-12,Claiborne,Tennessee,47025,15,0 +2020-06-13,Claiborne,Tennessee,47025,15,0 +2020-06-14,Claiborne,Tennessee,47025,15,0 +2020-06-15,Claiborne,Tennessee,47025,15,0 +2020-06-16,Claiborne,Tennessee,47025,15,0 +2020-06-17,Claiborne,Tennessee,47025,15,0 +2020-06-18,Claiborne,Tennessee,47025,16,0 +2020-06-19,Claiborne,Tennessee,47025,16,0 +2020-06-20,Claiborne,Tennessee,47025,16,0 +2020-06-21,Claiborne,Tennessee,47025,16,0 +2020-06-22,Claiborne,Tennessee,47025,16,0 +2020-06-23,Claiborne,Tennessee,47025,18,0 +2020-06-24,Claiborne,Tennessee,47025,18,0 +2020-06-25,Claiborne,Tennessee,47025,19,0 +2020-06-26,Claiborne,Tennessee,47025,19,0 +2020-06-27,Claiborne,Tennessee,47025,21,0 +2020-06-28,Claiborne,Tennessee,47025,21,0 +2020-06-29,Claiborne,Tennessee,47025,24,0 +2020-06-30,Claiborne,Tennessee,47025,25,0 +2020-07-01,Claiborne,Tennessee,47025,28,0 +2020-07-02,Claiborne,Tennessee,47025,32,0 +2020-07-03,Claiborne,Tennessee,47025,41,0 +2020-07-04,Claiborne,Tennessee,47025,44,0 +2020-07-05,Claiborne,Tennessee,47025,45,0 +2020-07-06,Claiborne,Tennessee,47025,48,0 +2020-07-07,Claiborne,Tennessee,47025,53,0 +2020-07-08,Claiborne,Tennessee,47025,59,0 +2020-07-09,Claiborne,Tennessee,47025,61,0 +2020-04-01,Clay,Tennessee,47027,1,0 +2020-04-02,Clay,Tennessee,47027,1,0 +2020-04-03,Clay,Tennessee,47027,1,0 +2020-04-04,Clay,Tennessee,47027,1,0 +2020-04-05,Clay,Tennessee,47027,1,0 +2020-04-06,Clay,Tennessee,47027,1,0 +2020-04-07,Clay,Tennessee,47027,1,0 +2020-04-08,Clay,Tennessee,47027,2,0 +2020-04-09,Clay,Tennessee,47027,2,0 +2020-04-10,Clay,Tennessee,47027,2,0 +2020-04-11,Clay,Tennessee,47027,2,0 +2020-04-12,Clay,Tennessee,47027,2,0 +2020-04-13,Clay,Tennessee,47027,4,0 +2020-04-14,Clay,Tennessee,47027,4,0 +2020-04-15,Clay,Tennessee,47027,5,0 +2020-04-16,Clay,Tennessee,47027,5,0 +2020-04-17,Clay,Tennessee,47027,5,0 +2020-04-18,Clay,Tennessee,47027,5,0 +2020-04-19,Clay,Tennessee,47027,5,0 +2020-04-20,Clay,Tennessee,47027,5,0 +2020-04-21,Clay,Tennessee,47027,5,0 +2020-04-22,Clay,Tennessee,47027,5,0 +2020-04-23,Clay,Tennessee,47027,5,0 +2020-04-24,Clay,Tennessee,47027,5,0 +2020-04-25,Clay,Tennessee,47027,5,0 +2020-04-26,Clay,Tennessee,47027,5,0 +2020-04-27,Clay,Tennessee,47027,5,0 +2020-04-28,Clay,Tennessee,47027,5,0 +2020-04-29,Clay,Tennessee,47027,5,0 +2020-04-30,Clay,Tennessee,47027,5,0 +2020-05-01,Clay,Tennessee,47027,5,0 +2020-05-02,Clay,Tennessee,47027,5,0 +2020-05-03,Clay,Tennessee,47027,5,0 +2020-05-04,Clay,Tennessee,47027,5,0 +2020-05-05,Clay,Tennessee,47027,5,0 +2020-05-06,Clay,Tennessee,47027,6,0 +2020-05-07,Clay,Tennessee,47027,6,0 +2020-05-08,Clay,Tennessee,47027,6,0 +2020-05-09,Clay,Tennessee,47027,6,0 +2020-05-10,Clay,Tennessee,47027,6,0 +2020-05-11,Clay,Tennessee,47027,6,0 +2020-05-12,Clay,Tennessee,47027,6,0 +2020-05-13,Clay,Tennessee,47027,6,0 +2020-05-14,Clay,Tennessee,47027,6,0 +2020-05-15,Clay,Tennessee,47027,6,0 +2020-05-16,Clay,Tennessee,47027,6,0 +2020-05-17,Clay,Tennessee,47027,6,0 +2020-05-18,Clay,Tennessee,47027,6,0 +2020-05-19,Clay,Tennessee,47027,6,0 +2020-05-20,Clay,Tennessee,47027,6,0 +2020-05-21,Clay,Tennessee,47027,6,0 +2020-05-22,Clay,Tennessee,47027,6,0 +2020-05-23,Clay,Tennessee,47027,6,0 +2020-05-24,Clay,Tennessee,47027,7,0 +2020-05-25,Clay,Tennessee,47027,6,0 +2020-05-26,Clay,Tennessee,47027,6,0 +2020-05-27,Clay,Tennessee,47027,6,0 +2020-05-28,Clay,Tennessee,47027,6,0 +2020-05-29,Clay,Tennessee,47027,7,0 +2020-05-30,Clay,Tennessee,47027,7,0 +2020-05-31,Clay,Tennessee,47027,7,0 +2020-06-01,Clay,Tennessee,47027,7,0 +2020-06-02,Clay,Tennessee,47027,8,0 +2020-06-03,Clay,Tennessee,47027,8,0 +2020-06-04,Clay,Tennessee,47027,8,0 +2020-06-05,Clay,Tennessee,47027,8,0 +2020-06-06,Clay,Tennessee,47027,8,0 +2020-06-07,Clay,Tennessee,47027,8,0 +2020-06-08,Clay,Tennessee,47027,9,0 +2020-06-09,Clay,Tennessee,47027,9,0 +2020-06-10,Clay,Tennessee,47027,9,0 +2020-06-11,Clay,Tennessee,47027,9,0 +2020-06-12,Clay,Tennessee,47027,9,0 +2020-06-13,Clay,Tennessee,47027,10,0 +2020-06-14,Clay,Tennessee,47027,11,0 +2020-06-15,Clay,Tennessee,47027,11,0 +2020-06-16,Clay,Tennessee,47027,11,0 +2020-06-17,Clay,Tennessee,47027,11,0 +2020-06-18,Clay,Tennessee,47027,11,0 +2020-06-19,Clay,Tennessee,47027,13,0 +2020-06-20,Clay,Tennessee,47027,13,0 +2020-06-21,Clay,Tennessee,47027,13,0 +2020-06-22,Clay,Tennessee,47027,13,0 +2020-06-23,Clay,Tennessee,47027,14,0 +2020-06-24,Clay,Tennessee,47027,12,0 +2020-06-25,Clay,Tennessee,47027,12,0 +2020-06-26,Clay,Tennessee,47027,13,0 +2020-06-27,Clay,Tennessee,47027,13,0 +2020-06-28,Clay,Tennessee,47027,13,0 +2020-06-29,Clay,Tennessee,47027,14,0 +2020-06-30,Clay,Tennessee,47027,16,0 +2020-07-01,Clay,Tennessee,47027,16,0 +2020-07-02,Clay,Tennessee,47027,16,0 +2020-07-03,Clay,Tennessee,47027,16,0 +2020-07-04,Clay,Tennessee,47027,16,0 +2020-07-05,Clay,Tennessee,47027,17,0 +2020-07-06,Clay,Tennessee,47027,18,0 +2020-07-07,Clay,Tennessee,47027,19,0 +2020-07-08,Clay,Tennessee,47027,18,0 +2020-07-09,Clay,Tennessee,47027,18,0 +2020-03-21,Cocke,Tennessee,47029,1,0 +2020-03-22,Cocke,Tennessee,47029,1,0 +2020-03-23,Cocke,Tennessee,47029,1,0 +2020-03-24,Cocke,Tennessee,47029,1,0 +2020-03-25,Cocke,Tennessee,47029,1,0 +2020-03-26,Cocke,Tennessee,47029,1,0 +2020-03-27,Cocke,Tennessee,47029,1,0 +2020-03-28,Cocke,Tennessee,47029,1,0 +2020-03-29,Cocke,Tennessee,47029,1,0 +2020-03-30,Cocke,Tennessee,47029,1,0 +2020-03-31,Cocke,Tennessee,47029,1,0 +2020-04-01,Cocke,Tennessee,47029,1,0 +2020-04-02,Cocke,Tennessee,47029,1,0 +2020-04-03,Cocke,Tennessee,47029,1,0 +2020-04-04,Cocke,Tennessee,47029,1,0 +2020-04-05,Cocke,Tennessee,47029,1,0 +2020-04-06,Cocke,Tennessee,47029,1,0 +2020-04-07,Cocke,Tennessee,47029,2,0 +2020-04-08,Cocke,Tennessee,47029,2,0 +2020-04-09,Cocke,Tennessee,47029,3,0 +2020-04-10,Cocke,Tennessee,47029,3,0 +2020-04-11,Cocke,Tennessee,47029,3,0 +2020-04-12,Cocke,Tennessee,47029,3,0 +2020-04-13,Cocke,Tennessee,47029,5,0 +2020-04-14,Cocke,Tennessee,47029,7,0 +2020-04-15,Cocke,Tennessee,47029,8,0 +2020-04-16,Cocke,Tennessee,47029,11,0 +2020-04-17,Cocke,Tennessee,47029,11,0 +2020-04-18,Cocke,Tennessee,47029,11,0 +2020-04-19,Cocke,Tennessee,47029,11,0 +2020-04-20,Cocke,Tennessee,47029,11,0 +2020-04-21,Cocke,Tennessee,47029,11,0 +2020-04-22,Cocke,Tennessee,47029,13,0 +2020-04-23,Cocke,Tennessee,47029,14,0 +2020-04-24,Cocke,Tennessee,47029,14,0 +2020-04-25,Cocke,Tennessee,47029,14,0 +2020-04-26,Cocke,Tennessee,47029,14,0 +2020-04-27,Cocke,Tennessee,47029,14,0 +2020-04-28,Cocke,Tennessee,47029,16,0 +2020-04-29,Cocke,Tennessee,47029,16,0 +2020-04-30,Cocke,Tennessee,47029,16,0 +2020-05-01,Cocke,Tennessee,47029,16,0 +2020-05-02,Cocke,Tennessee,47029,16,0 +2020-05-03,Cocke,Tennessee,47029,16,0 +2020-05-04,Cocke,Tennessee,47029,19,0 +2020-05-05,Cocke,Tennessee,47029,19,0 +2020-05-06,Cocke,Tennessee,47029,16,0 +2020-05-07,Cocke,Tennessee,47029,17,0 +2020-05-08,Cocke,Tennessee,47029,17,0 +2020-05-09,Cocke,Tennessee,47029,17,0 +2020-05-10,Cocke,Tennessee,47029,17,0 +2020-05-11,Cocke,Tennessee,47029,18,0 +2020-05-12,Cocke,Tennessee,47029,19,0 +2020-05-13,Cocke,Tennessee,47029,19,0 +2020-05-14,Cocke,Tennessee,47029,20,0 +2020-05-15,Cocke,Tennessee,47029,20,0 +2020-05-16,Cocke,Tennessee,47029,20,0 +2020-05-17,Cocke,Tennessee,47029,20,0 +2020-05-18,Cocke,Tennessee,47029,20,0 +2020-05-19,Cocke,Tennessee,47029,20,0 +2020-05-20,Cocke,Tennessee,47029,20,0 +2020-05-21,Cocke,Tennessee,47029,20,0 +2020-05-22,Cocke,Tennessee,47029,20,0 +2020-05-23,Cocke,Tennessee,47029,20,0 +2020-05-24,Cocke,Tennessee,47029,20,0 +2020-05-25,Cocke,Tennessee,47029,20,0 +2020-05-26,Cocke,Tennessee,47029,20,0 +2020-05-27,Cocke,Tennessee,47029,20,0 +2020-05-28,Cocke,Tennessee,47029,20,0 +2020-05-29,Cocke,Tennessee,47029,20,0 +2020-05-30,Cocke,Tennessee,47029,20,0 +2020-05-31,Cocke,Tennessee,47029,20,0 +2020-06-01,Cocke,Tennessee,47029,20,0 +2020-06-02,Cocke,Tennessee,47029,21,0 +2020-06-03,Cocke,Tennessee,47029,21,0 +2020-06-04,Cocke,Tennessee,47029,21,0 +2020-06-05,Cocke,Tennessee,47029,21,0 +2020-06-06,Cocke,Tennessee,47029,21,0 +2020-06-07,Cocke,Tennessee,47029,21,0 +2020-06-08,Cocke,Tennessee,47029,21,0 +2020-06-09,Cocke,Tennessee,47029,22,0 +2020-06-10,Cocke,Tennessee,47029,22,0 +2020-06-11,Cocke,Tennessee,47029,23,0 +2020-06-12,Cocke,Tennessee,47029,26,0 +2020-06-13,Cocke,Tennessee,47029,26,0 +2020-06-14,Cocke,Tennessee,47029,26,0 +2020-06-15,Cocke,Tennessee,47029,26,0 +2020-06-16,Cocke,Tennessee,47029,27,0 +2020-06-17,Cocke,Tennessee,47029,27,0 +2020-06-18,Cocke,Tennessee,47029,27,0 +2020-06-19,Cocke,Tennessee,47029,27,0 +2020-06-20,Cocke,Tennessee,47029,29,0 +2020-06-21,Cocke,Tennessee,47029,29,0 +2020-06-22,Cocke,Tennessee,47029,31,0 +2020-06-23,Cocke,Tennessee,47029,31,0 +2020-06-24,Cocke,Tennessee,47029,32,0 +2020-06-25,Cocke,Tennessee,47029,36,0 +2020-06-26,Cocke,Tennessee,47029,42,0 +2020-06-27,Cocke,Tennessee,47029,48,0 +2020-06-28,Cocke,Tennessee,47029,48,0 +2020-06-29,Cocke,Tennessee,47029,51,0 +2020-06-30,Cocke,Tennessee,47029,58,0 +2020-07-01,Cocke,Tennessee,47029,70,0 +2020-07-02,Cocke,Tennessee,47029,76,0 +2020-07-03,Cocke,Tennessee,47029,90,0 +2020-07-04,Cocke,Tennessee,47029,91,0 +2020-07-05,Cocke,Tennessee,47029,94,0 +2020-07-06,Cocke,Tennessee,47029,94,0 +2020-07-07,Cocke,Tennessee,47029,105,0 +2020-07-08,Cocke,Tennessee,47029,116,0 +2020-07-09,Cocke,Tennessee,47029,126,0 +2020-03-29,Coffee,Tennessee,47031,1,0 +2020-03-30,Coffee,Tennessee,47031,1,0 +2020-03-31,Coffee,Tennessee,47031,1,0 +2020-04-01,Coffee,Tennessee,47031,1,0 +2020-04-02,Coffee,Tennessee,47031,3,0 +2020-04-03,Coffee,Tennessee,47031,3,0 +2020-04-04,Coffee,Tennessee,47031,4,0 +2020-04-05,Coffee,Tennessee,47031,5,0 +2020-04-06,Coffee,Tennessee,47031,7,0 +2020-04-07,Coffee,Tennessee,47031,7,0 +2020-04-08,Coffee,Tennessee,47031,7,0 +2020-04-09,Coffee,Tennessee,47031,10,0 +2020-04-10,Coffee,Tennessee,47031,10,0 +2020-04-11,Coffee,Tennessee,47031,11,0 +2020-04-12,Coffee,Tennessee,47031,11,0 +2020-04-13,Coffee,Tennessee,47031,11,0 +2020-04-14,Coffee,Tennessee,47031,12,0 +2020-04-15,Coffee,Tennessee,47031,13,0 +2020-04-16,Coffee,Tennessee,47031,17,0 +2020-04-17,Coffee,Tennessee,47031,18,0 +2020-04-18,Coffee,Tennessee,47031,19,0 +2020-04-19,Coffee,Tennessee,47031,20,0 +2020-04-20,Coffee,Tennessee,47031,20,0 +2020-04-21,Coffee,Tennessee,47031,21,0 +2020-04-22,Coffee,Tennessee,47031,23,0 +2020-04-23,Coffee,Tennessee,47031,25,0 +2020-04-24,Coffee,Tennessee,47031,27,0 +2020-04-25,Coffee,Tennessee,47031,31,0 +2020-04-26,Coffee,Tennessee,47031,32,0 +2020-04-27,Coffee,Tennessee,47031,33,0 +2020-04-28,Coffee,Tennessee,47031,33,0 +2020-04-29,Coffee,Tennessee,47031,35,0 +2020-04-30,Coffee,Tennessee,47031,36,0 +2020-05-01,Coffee,Tennessee,47031,36,0 +2020-05-02,Coffee,Tennessee,47031,38,0 +2020-05-03,Coffee,Tennessee,47031,41,0 +2020-05-04,Coffee,Tennessee,47031,44,0 +2020-05-05,Coffee,Tennessee,47031,45,0 +2020-05-06,Coffee,Tennessee,47031,45,0 +2020-05-07,Coffee,Tennessee,47031,47,0 +2020-05-08,Coffee,Tennessee,47031,48,0 +2020-05-09,Coffee,Tennessee,47031,52,0 +2020-05-10,Coffee,Tennessee,47031,53,0 +2020-05-11,Coffee,Tennessee,47031,54,0 +2020-05-12,Coffee,Tennessee,47031,54,0 +2020-05-13,Coffee,Tennessee,47031,56,0 +2020-05-14,Coffee,Tennessee,47031,57,0 +2020-05-15,Coffee,Tennessee,47031,60,0 +2020-05-16,Coffee,Tennessee,47031,60,0 +2020-05-17,Coffee,Tennessee,47031,60,0 +2020-05-18,Coffee,Tennessee,47031,61,0 +2020-05-19,Coffee,Tennessee,47031,63,0 +2020-05-20,Coffee,Tennessee,47031,63,0 +2020-05-21,Coffee,Tennessee,47031,63,0 +2020-05-22,Coffee,Tennessee,47031,64,0 +2020-05-23,Coffee,Tennessee,47031,65,0 +2020-05-24,Coffee,Tennessee,47031,65,0 +2020-05-25,Coffee,Tennessee,47031,66,0 +2020-05-26,Coffee,Tennessee,47031,66,0 +2020-05-27,Coffee,Tennessee,47031,66,0 +2020-05-28,Coffee,Tennessee,47031,68,0 +2020-05-29,Coffee,Tennessee,47031,70,0 +2020-05-30,Coffee,Tennessee,47031,73,0 +2020-05-31,Coffee,Tennessee,47031,73,0 +2020-06-01,Coffee,Tennessee,47031,73,0 +2020-06-02,Coffee,Tennessee,47031,73,0 +2020-06-03,Coffee,Tennessee,47031,74,0 +2020-06-04,Coffee,Tennessee,47031,78,0 +2020-06-05,Coffee,Tennessee,47031,81,0 +2020-06-06,Coffee,Tennessee,47031,81,0 +2020-06-07,Coffee,Tennessee,47031,81,0 +2020-06-08,Coffee,Tennessee,47031,82,0 +2020-06-09,Coffee,Tennessee,47031,84,0 +2020-06-10,Coffee,Tennessee,47031,87,0 +2020-06-11,Coffee,Tennessee,47031,88,0 +2020-06-12,Coffee,Tennessee,47031,92,0 +2020-06-13,Coffee,Tennessee,47031,94,0 +2020-06-14,Coffee,Tennessee,47031,94,0 +2020-06-15,Coffee,Tennessee,47031,94,0 +2020-06-16,Coffee,Tennessee,47031,96,0 +2020-06-17,Coffee,Tennessee,47031,97,0 +2020-06-18,Coffee,Tennessee,47031,97,0 +2020-06-19,Coffee,Tennessee,47031,99,0 +2020-06-20,Coffee,Tennessee,47031,99,0 +2020-06-21,Coffee,Tennessee,47031,99,0 +2020-06-22,Coffee,Tennessee,47031,99,0 +2020-06-23,Coffee,Tennessee,47031,99,0 +2020-06-24,Coffee,Tennessee,47031,102,0 +2020-06-25,Coffee,Tennessee,47031,102,0 +2020-06-26,Coffee,Tennessee,47031,103,0 +2020-06-27,Coffee,Tennessee,47031,103,0 +2020-06-28,Coffee,Tennessee,47031,103,0 +2020-06-29,Coffee,Tennessee,47031,105,0 +2020-06-30,Coffee,Tennessee,47031,108,0 +2020-07-01,Coffee,Tennessee,47031,109,0 +2020-07-02,Coffee,Tennessee,47031,115,0 +2020-07-03,Coffee,Tennessee,47031,117,0 +2020-07-04,Coffee,Tennessee,47031,117,0 +2020-07-05,Coffee,Tennessee,47031,119,0 +2020-07-06,Coffee,Tennessee,47031,120,0 +2020-07-07,Coffee,Tennessee,47031,125,0 +2020-07-08,Coffee,Tennessee,47031,132,0 +2020-07-09,Coffee,Tennessee,47031,134,0 +2020-04-18,Crockett,Tennessee,47033,3,0 +2020-04-19,Crockett,Tennessee,47033,5,0 +2020-04-20,Crockett,Tennessee,47033,6,0 +2020-04-21,Crockett,Tennessee,47033,6,0 +2020-04-22,Crockett,Tennessee,47033,6,0 +2020-04-23,Crockett,Tennessee,47033,6,0 +2020-04-24,Crockett,Tennessee,47033,6,0 +2020-04-25,Crockett,Tennessee,47033,7,0 +2020-04-26,Crockett,Tennessee,47033,7,0 +2020-04-27,Crockett,Tennessee,47033,6,0 +2020-04-28,Crockett,Tennessee,47033,7,0 +2020-04-29,Crockett,Tennessee,47033,7,0 +2020-04-30,Crockett,Tennessee,47033,7,0 +2020-05-01,Crockett,Tennessee,47033,7,0 +2020-05-02,Crockett,Tennessee,47033,7,0 +2020-05-03,Crockett,Tennessee,47033,7,0 +2020-05-04,Crockett,Tennessee,47033,9,0 +2020-05-05,Crockett,Tennessee,47033,9,0 +2020-05-06,Crockett,Tennessee,47033,7,0 +2020-05-07,Crockett,Tennessee,47033,7,0 +2020-05-08,Crockett,Tennessee,47033,7,0 +2020-05-09,Crockett,Tennessee,47033,9,0 +2020-05-10,Crockett,Tennessee,47033,9,0 +2020-05-11,Crockett,Tennessee,47033,12,0 +2020-05-12,Crockett,Tennessee,47033,12,0 +2020-05-13,Crockett,Tennessee,47033,12,1 +2020-05-14,Crockett,Tennessee,47033,13,1 +2020-05-15,Crockett,Tennessee,47033,13,1 +2020-05-16,Crockett,Tennessee,47033,13,1 +2020-05-17,Crockett,Tennessee,47033,13,1 +2020-05-18,Crockett,Tennessee,47033,13,1 +2020-05-19,Crockett,Tennessee,47033,14,1 +2020-05-20,Crockett,Tennessee,47033,14,1 +2020-05-21,Crockett,Tennessee,47033,14,1 +2020-05-22,Crockett,Tennessee,47033,14,1 +2020-05-23,Crockett,Tennessee,47033,14,1 +2020-05-24,Crockett,Tennessee,47033,15,1 +2020-05-25,Crockett,Tennessee,47033,16,1 +2020-05-26,Crockett,Tennessee,47033,16,1 +2020-05-27,Crockett,Tennessee,47033,16,1 +2020-05-28,Crockett,Tennessee,47033,16,2 +2020-05-29,Crockett,Tennessee,47033,16,2 +2020-05-30,Crockett,Tennessee,47033,16,2 +2020-05-31,Crockett,Tennessee,47033,16,2 +2020-06-01,Crockett,Tennessee,47033,16,2 +2020-06-02,Crockett,Tennessee,47033,16,2 +2020-06-03,Crockett,Tennessee,47033,16,2 +2020-06-04,Crockett,Tennessee,47033,16,2 +2020-06-05,Crockett,Tennessee,47033,16,3 +2020-06-06,Crockett,Tennessee,47033,16,3 +2020-06-07,Crockett,Tennessee,47033,16,3 +2020-06-08,Crockett,Tennessee,47033,16,3 +2020-06-09,Crockett,Tennessee,47033,16,3 +2020-06-10,Crockett,Tennessee,47033,16,3 +2020-06-11,Crockett,Tennessee,47033,16,3 +2020-06-12,Crockett,Tennessee,47033,18,3 +2020-06-13,Crockett,Tennessee,47033,18,3 +2020-06-14,Crockett,Tennessee,47033,18,3 +2020-06-15,Crockett,Tennessee,47033,18,3 +2020-06-16,Crockett,Tennessee,47033,19,3 +2020-06-17,Crockett,Tennessee,47033,19,3 +2020-06-18,Crockett,Tennessee,47033,21,3 +2020-06-19,Crockett,Tennessee,47033,25,3 +2020-06-20,Crockett,Tennessee,47033,25,3 +2020-06-21,Crockett,Tennessee,47033,25,3 +2020-06-22,Crockett,Tennessee,47033,25,3 +2020-06-23,Crockett,Tennessee,47033,26,3 +2020-06-24,Crockett,Tennessee,47033,28,3 +2020-06-25,Crockett,Tennessee,47033,28,3 +2020-06-26,Crockett,Tennessee,47033,27,3 +2020-06-27,Crockett,Tennessee,47033,28,3 +2020-06-28,Crockett,Tennessee,47033,28,3 +2020-06-29,Crockett,Tennessee,47033,30,3 +2020-06-30,Crockett,Tennessee,47033,31,3 +2020-07-01,Crockett,Tennessee,47033,31,3 +2020-07-02,Crockett,Tennessee,47033,32,3 +2020-07-03,Crockett,Tennessee,47033,34,3 +2020-07-04,Crockett,Tennessee,47033,35,3 +2020-07-05,Crockett,Tennessee,47033,38,3 +2020-07-06,Crockett,Tennessee,47033,40,3 +2020-07-07,Crockett,Tennessee,47033,40,3 +2020-07-08,Crockett,Tennessee,47033,44,3 +2020-07-09,Crockett,Tennessee,47033,48,3 +2020-03-19,Cumberland,Tennessee,47035,1,0 +2020-03-20,Cumberland,Tennessee,47035,2,0 +2020-03-21,Cumberland,Tennessee,47035,2,0 +2020-03-22,Cumberland,Tennessee,47035,2,0 +2020-03-23,Cumberland,Tennessee,47035,2,0 +2020-03-24,Cumberland,Tennessee,47035,3,0 +2020-03-25,Cumberland,Tennessee,47035,3,0 +2020-03-26,Cumberland,Tennessee,47035,6,0 +2020-03-27,Cumberland,Tennessee,47035,6,0 +2020-03-28,Cumberland,Tennessee,47035,6,0 +2020-03-29,Cumberland,Tennessee,47035,9,0 +2020-03-30,Cumberland,Tennessee,47035,11,0 +2020-03-31,Cumberland,Tennessee,47035,11,0 +2020-04-01,Cumberland,Tennessee,47035,14,0 +2020-04-02,Cumberland,Tennessee,47035,16,0 +2020-04-03,Cumberland,Tennessee,47035,22,0 +2020-04-04,Cumberland,Tennessee,47035,23,0 +2020-04-05,Cumberland,Tennessee,47035,26,0 +2020-04-06,Cumberland,Tennessee,47035,26,0 +2020-04-07,Cumberland,Tennessee,47035,32,0 +2020-04-08,Cumberland,Tennessee,47035,33,0 +2020-04-09,Cumberland,Tennessee,47035,34,0 +2020-04-10,Cumberland,Tennessee,47035,39,0 +2020-04-11,Cumberland,Tennessee,47035,40,0 +2020-04-12,Cumberland,Tennessee,47035,40,0 +2020-04-13,Cumberland,Tennessee,47035,43,0 +2020-04-14,Cumberland,Tennessee,47035,51,0 +2020-04-15,Cumberland,Tennessee,47035,53,0 +2020-04-16,Cumberland,Tennessee,47035,55,0 +2020-04-17,Cumberland,Tennessee,47035,56,0 +2020-04-18,Cumberland,Tennessee,47035,57,0 +2020-04-19,Cumberland,Tennessee,47035,57,0 +2020-04-20,Cumberland,Tennessee,47035,58,0 +2020-04-21,Cumberland,Tennessee,47035,59,0 +2020-04-22,Cumberland,Tennessee,47035,60,0 +2020-04-23,Cumberland,Tennessee,47035,61,0 +2020-04-24,Cumberland,Tennessee,47035,67,0 +2020-04-25,Cumberland,Tennessee,47035,67,0 +2020-04-26,Cumberland,Tennessee,47035,67,0 +2020-04-27,Cumberland,Tennessee,47035,68,0 +2020-04-28,Cumberland,Tennessee,47035,70,1 +2020-04-29,Cumberland,Tennessee,47035,74,1 +2020-04-30,Cumberland,Tennessee,47035,74,1 +2020-05-01,Cumberland,Tennessee,47035,74,1 +2020-05-02,Cumberland,Tennessee,47035,74,1 +2020-05-03,Cumberland,Tennessee,47035,80,1 +2020-05-04,Cumberland,Tennessee,47035,84,1 +2020-05-05,Cumberland,Tennessee,47035,84,1 +2020-05-06,Cumberland,Tennessee,47035,85,1 +2020-05-07,Cumberland,Tennessee,47035,84,1 +2020-05-08,Cumberland,Tennessee,47035,84,1 +2020-05-09,Cumberland,Tennessee,47035,85,1 +2020-05-10,Cumberland,Tennessee,47035,85,1 +2020-05-11,Cumberland,Tennessee,47035,84,1 +2020-05-12,Cumberland,Tennessee,47035,86,1 +2020-05-13,Cumberland,Tennessee,47035,87,1 +2020-05-14,Cumberland,Tennessee,47035,87,1 +2020-05-15,Cumberland,Tennessee,47035,88,1 +2020-05-16,Cumberland,Tennessee,47035,88,1 +2020-05-17,Cumberland,Tennessee,47035,89,1 +2020-05-18,Cumberland,Tennessee,47035,93,1 +2020-05-19,Cumberland,Tennessee,47035,94,1 +2020-05-20,Cumberland,Tennessee,47035,94,1 +2020-05-21,Cumberland,Tennessee,47035,96,1 +2020-05-22,Cumberland,Tennessee,47035,97,1 +2020-05-23,Cumberland,Tennessee,47035,107,1 +2020-05-24,Cumberland,Tennessee,47035,109,1 +2020-05-25,Cumberland,Tennessee,47035,109,1 +2020-05-26,Cumberland,Tennessee,47035,111,1 +2020-05-27,Cumberland,Tennessee,47035,111,1 +2020-05-28,Cumberland,Tennessee,47035,111,1 +2020-05-29,Cumberland,Tennessee,47035,111,1 +2020-05-30,Cumberland,Tennessee,47035,112,1 +2020-05-31,Cumberland,Tennessee,47035,112,1 +2020-06-01,Cumberland,Tennessee,47035,112,1 +2020-06-02,Cumberland,Tennessee,47035,118,1 +2020-06-03,Cumberland,Tennessee,47035,119,1 +2020-06-04,Cumberland,Tennessee,47035,120,2 +2020-06-05,Cumberland,Tennessee,47035,120,2 +2020-06-06,Cumberland,Tennessee,47035,124,2 +2020-06-07,Cumberland,Tennessee,47035,125,2 +2020-06-08,Cumberland,Tennessee,47035,125,2 +2020-06-09,Cumberland,Tennessee,47035,126,2 +2020-06-10,Cumberland,Tennessee,47035,127,2 +2020-06-11,Cumberland,Tennessee,47035,129,2 +2020-06-12,Cumberland,Tennessee,47035,130,2 +2020-06-13,Cumberland,Tennessee,47035,131,2 +2020-06-14,Cumberland,Tennessee,47035,131,2 +2020-06-15,Cumberland,Tennessee,47035,133,2 +2020-06-16,Cumberland,Tennessee,47035,137,2 +2020-06-17,Cumberland,Tennessee,47035,137,3 +2020-06-18,Cumberland,Tennessee,47035,138,3 +2020-06-19,Cumberland,Tennessee,47035,137,3 +2020-06-20,Cumberland,Tennessee,47035,137,3 +2020-06-21,Cumberland,Tennessee,47035,142,3 +2020-06-22,Cumberland,Tennessee,47035,145,3 +2020-06-23,Cumberland,Tennessee,47035,148,3 +2020-06-24,Cumberland,Tennessee,47035,152,3 +2020-06-25,Cumberland,Tennessee,47035,155,3 +2020-06-26,Cumberland,Tennessee,47035,159,3 +2020-06-27,Cumberland,Tennessee,47035,159,3 +2020-06-28,Cumberland,Tennessee,47035,159,3 +2020-06-29,Cumberland,Tennessee,47035,165,3 +2020-06-30,Cumberland,Tennessee,47035,168,3 +2020-07-01,Cumberland,Tennessee,47035,173,3 +2020-07-02,Cumberland,Tennessee,47035,174,4 +2020-07-03,Cumberland,Tennessee,47035,178,4 +2020-07-04,Cumberland,Tennessee,47035,180,4 +2020-07-05,Cumberland,Tennessee,47035,181,4 +2020-07-06,Cumberland,Tennessee,47035,183,4 +2020-07-07,Cumberland,Tennessee,47035,188,4 +2020-07-08,Cumberland,Tennessee,47035,193,4 +2020-07-09,Cumberland,Tennessee,47035,196,4 +2020-03-08,Davidson,Tennessee,47037,1,0 +2020-03-09,Davidson,Tennessee,47037,1,0 +2020-03-10,Davidson,Tennessee,47037,1,0 +2020-03-11,Davidson,Tennessee,47037,2,0 +2020-03-12,Davidson,Tennessee,47037,6,0 +2020-03-13,Davidson,Tennessee,47037,10,0 +2020-03-14,Davidson,Tennessee,47037,14,0 +2020-03-15,Davidson,Tennessee,47037,17,0 +2020-03-16,Davidson,Tennessee,47037,25,0 +2020-03-17,Davidson,Tennessee,47037,42,0 +2020-03-18,Davidson,Tennessee,47037,58,0 +2020-03-19,Davidson,Tennessee,47037,75,0 +2020-03-20,Davidson,Tennessee,47037,110,0 +2020-03-21,Davidson,Tennessee,47037,140,2 +2020-03-22,Davidson,Tennessee,47037,167,2 +2020-03-23,Davidson,Tennessee,47037,184,2 +2020-03-24,Davidson,Tennessee,47037,253,2 +2020-03-25,Davidson,Tennessee,47037,257,2 +2020-03-26,Davidson,Tennessee,47037,293,2 +2020-03-27,Davidson,Tennessee,47037,312,2 +2020-03-28,Davidson,Tennessee,47037,376,2 +2020-03-29,Davidson,Tennessee,47037,394,2 +2020-03-30,Davidson,Tennessee,47037,443,3 +2020-03-31,Davidson,Tennessee,47037,541,3 +2020-04-01,Davidson,Tennessee,47037,673,4 +2020-04-02,Davidson,Tennessee,47037,785,5 +2020-04-03,Davidson,Tennessee,47037,808,6 +2020-04-04,Davidson,Tennessee,47037,856,6 +2020-04-05,Davidson,Tennessee,47037,924,6 +2020-04-06,Davidson,Tennessee,47037,1034,7 +2020-04-07,Davidson,Tennessee,47037,1075,9 +2020-04-08,Davidson,Tennessee,47037,1140,13 +2020-04-09,Davidson,Tennessee,47037,1140,13 +2020-04-10,Davidson,Tennessee,47037,1224,13 +2020-04-11,Davidson,Tennessee,47037,1256,13 +2020-04-12,Davidson,Tennessee,47037,1348,13 +2020-04-13,Davidson,Tennessee,47037,1385,16 +2020-04-14,Davidson,Tennessee,47037,1457,18 +2020-04-15,Davidson,Tennessee,47037,1492,18 +2020-04-16,Davidson,Tennessee,47037,1560,19 +2020-04-17,Davidson,Tennessee,47037,1597,20 +2020-04-18,Davidson,Tennessee,47037,1680,20 +2020-04-19,Davidson,Tennessee,47037,1751,20 +2020-04-20,Davidson,Tennessee,47037,1751,20 +2020-04-21,Davidson,Tennessee,47037,1936,22 +2020-04-22,Davidson,Tennessee,47037,1962,22 +2020-04-23,Davidson,Tennessee,47037,2144,22 +2020-04-24,Davidson,Tennessee,47037,2176,22 +2020-04-25,Davidson,Tennessee,47037,2213,22 +2020-04-26,Davidson,Tennessee,47037,2370,23 +2020-04-27,Davidson,Tennessee,47037,2488,25 +2020-04-28,Davidson,Tennessee,47037,2588,25 +2020-04-29,Davidson,Tennessee,47037,2618,25 +2020-04-30,Davidson,Tennessee,47037,2669,28 +2020-05-01,Davidson,Tennessee,47037,2832,28 +2020-05-02,Davidson,Tennessee,47037,2875,28 +2020-05-03,Davidson,Tennessee,47037,3026,28 +2020-05-04,Davidson,Tennessee,47037,3191,29 +2020-05-05,Davidson,Tennessee,47037,3322,32 +2020-05-06,Davidson,Tennessee,47037,3346,33 +2020-05-07,Davidson,Tennessee,47037,3432,35 +2020-05-08,Davidson,Tennessee,47037,3460,35 +2020-05-09,Davidson,Tennessee,47037,3586,35 +2020-05-10,Davidson,Tennessee,47037,3652,35 +2020-05-11,Davidson,Tennessee,47037,3699,35 +2020-05-12,Davidson,Tennessee,47037,3785,37 +2020-05-13,Davidson,Tennessee,47037,3879,38 +2020-05-14,Davidson,Tennessee,47037,3889,42 +2020-05-15,Davidson,Tennessee,47037,4008,43 +2020-05-16,Davidson,Tennessee,47037,4049,43 +2020-05-17,Davidson,Tennessee,47037,4132,44 +2020-05-18,Davidson,Tennessee,47037,4160,44 +2020-05-19,Davidson,Tennessee,47037,4390,46 +2020-05-20,Davidson,Tennessee,47037,4504,50 +2020-05-21,Davidson,Tennessee,47037,4530,51 +2020-05-22,Davidson,Tennessee,47037,4596,52 +2020-05-23,Davidson,Tennessee,47037,4683,54 +2020-05-24,Davidson,Tennessee,47037,4731,57 +2020-05-25,Davidson,Tennessee,47037,4821,58 +2020-05-26,Davidson,Tennessee,47037,4974,60 +2020-05-27,Davidson,Tennessee,47037,5068,60 +2020-05-28,Davidson,Tennessee,47037,5147,60 +2020-05-29,Davidson,Tennessee,47037,5210,59 +2020-05-30,Davidson,Tennessee,47037,5285,62 +2020-05-31,Davidson,Tennessee,47037,5285,62 +2020-06-01,Davidson,Tennessee,47037,5517,63 +2020-06-02,Davidson,Tennessee,47037,5617,64 +2020-06-03,Davidson,Tennessee,47037,5750,65 +2020-06-04,Davidson,Tennessee,47037,5831,66 +2020-06-05,Davidson,Tennessee,47037,5900,70 +2020-06-06,Davidson,Tennessee,47037,6032,73 +2020-06-07,Davidson,Tennessee,47037,6156,73 +2020-06-08,Davidson,Tennessee,47037,6228,73 +2020-06-09,Davidson,Tennessee,47037,6412,80 +2020-06-10,Davidson,Tennessee,47037,6571,80 +2020-06-11,Davidson,Tennessee,47037,6627,81 +2020-06-12,Davidson,Tennessee,47037,6734,84 +2020-06-13,Davidson,Tennessee,47037,6818,84 +2020-06-14,Davidson,Tennessee,47037,6885,84 +2020-06-15,Davidson,Tennessee,47037,7185,88 +2020-06-16,Davidson,Tennessee,47037,7357,90 +2020-06-17,Davidson,Tennessee,47037,7483,91 +2020-06-18,Davidson,Tennessee,47037,7550,93 +2020-06-19,Davidson,Tennessee,47037,7707,93 +2020-06-20,Davidson,Tennessee,47037,7986,95 +2020-06-21,Davidson,Tennessee,47037,8052,95 +2020-06-22,Davidson,Tennessee,47037,8191,96 +2020-06-23,Davidson,Tennessee,47037,8258,98 +2020-06-24,Davidson,Tennessee,47037,8405,102 +2020-06-25,Davidson,Tennessee,47037,8644,103 +2020-06-26,Davidson,Tennessee,47037,8876,105 +2020-06-27,Davidson,Tennessee,47037,9226,110 +2020-06-28,Davidson,Tennessee,47037,9348,110 +2020-06-29,Davidson,Tennessee,47037,9348,110 +2020-06-30,Davidson,Tennessee,47037,9805,113 +2020-07-01,Davidson,Tennessee,47037,10148,114 +2020-07-02,Davidson,Tennessee,47037,10756,115 +2020-07-03,Davidson,Tennessee,47037,11114,118 +2020-07-04,Davidson,Tennessee,47037,11441,118 +2020-07-05,Davidson,Tennessee,47037,11769,122 +2020-07-06,Davidson,Tennessee,47037,12203,121 +2020-07-07,Davidson,Tennessee,47037,12352,127 +2020-07-08,Davidson,Tennessee,47037,12752,132 +2020-07-09,Davidson,Tennessee,47037,13440,138 +2020-04-08,Decatur,Tennessee,47039,1,0 +2020-04-09,Decatur,Tennessee,47039,1,0 +2020-04-10,Decatur,Tennessee,47039,1,0 +2020-04-11,Decatur,Tennessee,47039,1,0 +2020-04-12,Decatur,Tennessee,47039,1,0 +2020-04-13,Decatur,Tennessee,47039,3,0 +2020-04-14,Decatur,Tennessee,47039,3,0 +2020-04-15,Decatur,Tennessee,47039,3,0 +2020-04-16,Decatur,Tennessee,47039,3,0 +2020-04-17,Decatur,Tennessee,47039,5,0 +2020-04-18,Decatur,Tennessee,47039,5,0 +2020-04-19,Decatur,Tennessee,47039,5,0 +2020-04-20,Decatur,Tennessee,47039,5,0 +2020-04-21,Decatur,Tennessee,47039,5,0 +2020-04-22,Decatur,Tennessee,47039,5,0 +2020-04-23,Decatur,Tennessee,47039,4,0 +2020-04-24,Decatur,Tennessee,47039,4,0 +2020-04-25,Decatur,Tennessee,47039,4,0 +2020-04-26,Decatur,Tennessee,47039,4,0 +2020-04-27,Decatur,Tennessee,47039,4,0 +2020-04-28,Decatur,Tennessee,47039,4,0 +2020-04-29,Decatur,Tennessee,47039,4,0 +2020-04-30,Decatur,Tennessee,47039,4,0 +2020-05-01,Decatur,Tennessee,47039,4,0 +2020-05-02,Decatur,Tennessee,47039,4,0 +2020-05-03,Decatur,Tennessee,47039,4,0 +2020-05-04,Decatur,Tennessee,47039,4,0 +2020-05-05,Decatur,Tennessee,47039,4,0 +2020-05-06,Decatur,Tennessee,47039,4,0 +2020-05-07,Decatur,Tennessee,47039,4,0 +2020-05-08,Decatur,Tennessee,47039,4,0 +2020-05-09,Decatur,Tennessee,47039,4,0 +2020-05-10,Decatur,Tennessee,47039,4,0 +2020-05-11,Decatur,Tennessee,47039,4,0 +2020-05-12,Decatur,Tennessee,47039,4,0 +2020-05-13,Decatur,Tennessee,47039,4,0 +2020-05-14,Decatur,Tennessee,47039,5,0 +2020-05-15,Decatur,Tennessee,47039,5,0 +2020-05-16,Decatur,Tennessee,47039,5,0 +2020-05-17,Decatur,Tennessee,47039,5,0 +2020-05-18,Decatur,Tennessee,47039,5,0 +2020-05-19,Decatur,Tennessee,47039,5,0 +2020-05-20,Decatur,Tennessee,47039,5,0 +2020-05-21,Decatur,Tennessee,47039,5,0 +2020-05-22,Decatur,Tennessee,47039,5,0 +2020-05-23,Decatur,Tennessee,47039,5,0 +2020-05-24,Decatur,Tennessee,47039,5,0 +2020-05-25,Decatur,Tennessee,47039,5,0 +2020-05-26,Decatur,Tennessee,47039,5,0 +2020-05-27,Decatur,Tennessee,47039,5,0 +2020-05-28,Decatur,Tennessee,47039,5,0 +2020-05-29,Decatur,Tennessee,47039,5,0 +2020-05-30,Decatur,Tennessee,47039,5,0 +2020-05-31,Decatur,Tennessee,47039,5,0 +2020-06-01,Decatur,Tennessee,47039,5,0 +2020-06-02,Decatur,Tennessee,47039,5,0 +2020-06-03,Decatur,Tennessee,47039,5,0 +2020-06-04,Decatur,Tennessee,47039,5,0 +2020-06-05,Decatur,Tennessee,47039,5,0 +2020-06-06,Decatur,Tennessee,47039,6,0 +2020-06-07,Decatur,Tennessee,47039,8,0 +2020-06-08,Decatur,Tennessee,47039,7,0 +2020-06-09,Decatur,Tennessee,47039,6,0 +2020-06-10,Decatur,Tennessee,47039,14,0 +2020-06-11,Decatur,Tennessee,47039,14,0 +2020-06-12,Decatur,Tennessee,47039,14,0 +2020-06-13,Decatur,Tennessee,47039,14,0 +2020-06-14,Decatur,Tennessee,47039,14,0 +2020-06-15,Decatur,Tennessee,47039,14,0 +2020-06-16,Decatur,Tennessee,47039,14,0 +2020-06-17,Decatur,Tennessee,47039,14,0 +2020-06-18,Decatur,Tennessee,47039,15,0 +2020-06-19,Decatur,Tennessee,47039,15,0 +2020-06-20,Decatur,Tennessee,47039,15,0 +2020-06-21,Decatur,Tennessee,47039,15,0 +2020-06-22,Decatur,Tennessee,47039,15,0 +2020-06-23,Decatur,Tennessee,47039,15,0 +2020-06-24,Decatur,Tennessee,47039,16,0 +2020-06-25,Decatur,Tennessee,47039,17,0 +2020-06-26,Decatur,Tennessee,47039,17,0 +2020-06-27,Decatur,Tennessee,47039,18,0 +2020-06-28,Decatur,Tennessee,47039,18,0 +2020-06-29,Decatur,Tennessee,47039,19,0 +2020-06-30,Decatur,Tennessee,47039,21,0 +2020-07-01,Decatur,Tennessee,47039,21,0 +2020-07-02,Decatur,Tennessee,47039,21,0 +2020-07-03,Decatur,Tennessee,47039,22,0 +2020-07-04,Decatur,Tennessee,47039,22,0 +2020-07-05,Decatur,Tennessee,47039,22,0 +2020-07-06,Decatur,Tennessee,47039,22,0 +2020-07-07,Decatur,Tennessee,47039,22,0 +2020-07-08,Decatur,Tennessee,47039,24,0 +2020-07-09,Decatur,Tennessee,47039,28,0 +2020-03-24,DeKalb,Tennessee,47041,1,0 +2020-03-25,DeKalb,Tennessee,47041,1,0 +2020-03-26,DeKalb,Tennessee,47041,2,0 +2020-03-27,DeKalb,Tennessee,47041,3,0 +2020-03-28,DeKalb,Tennessee,47041,3,0 +2020-03-29,DeKalb,Tennessee,47041,3,0 +2020-03-30,DeKalb,Tennessee,47041,4,0 +2020-03-31,DeKalb,Tennessee,47041,4,0 +2020-04-01,DeKalb,Tennessee,47041,5,0 +2020-04-02,DeKalb,Tennessee,47041,5,0 +2020-04-03,DeKalb,Tennessee,47041,5,0 +2020-04-04,DeKalb,Tennessee,47041,5,0 +2020-04-05,DeKalb,Tennessee,47041,7,0 +2020-04-06,DeKalb,Tennessee,47041,7,0 +2020-04-07,DeKalb,Tennessee,47041,7,0 +2020-04-08,DeKalb,Tennessee,47041,7,0 +2020-04-09,DeKalb,Tennessee,47041,7,0 +2020-04-10,DeKalb,Tennessee,47041,8,0 +2020-04-11,DeKalb,Tennessee,47041,9,0 +2020-04-12,DeKalb,Tennessee,47041,9,0 +2020-04-13,DeKalb,Tennessee,47041,10,0 +2020-04-14,DeKalb,Tennessee,47041,10,0 +2020-04-15,DeKalb,Tennessee,47041,10,0 +2020-04-16,DeKalb,Tennessee,47041,10,0 +2020-04-17,DeKalb,Tennessee,47041,10,0 +2020-04-18,DeKalb,Tennessee,47041,10,0 +2020-04-19,DeKalb,Tennessee,47041,10,0 +2020-04-20,DeKalb,Tennessee,47041,12,0 +2020-04-21,DeKalb,Tennessee,47041,12,0 +2020-04-22,DeKalb,Tennessee,47041,10,0 +2020-04-23,DeKalb,Tennessee,47041,10,0 +2020-04-24,DeKalb,Tennessee,47041,12,0 +2020-04-25,DeKalb,Tennessee,47041,12,0 +2020-04-26,DeKalb,Tennessee,47041,13,0 +2020-04-27,DeKalb,Tennessee,47041,14,0 +2020-04-28,DeKalb,Tennessee,47041,14,0 +2020-04-29,DeKalb,Tennessee,47041,14,0 +2020-04-30,DeKalb,Tennessee,47041,15,0 +2020-05-01,DeKalb,Tennessee,47041,17,0 +2020-05-02,DeKalb,Tennessee,47041,18,0 +2020-05-03,DeKalb,Tennessee,47041,21,0 +2020-05-04,DeKalb,Tennessee,47041,25,0 +2020-05-05,DeKalb,Tennessee,47041,25,0 +2020-05-06,DeKalb,Tennessee,47041,25,0 +2020-05-07,DeKalb,Tennessee,47041,25,0 +2020-05-08,DeKalb,Tennessee,47041,26,0 +2020-05-09,DeKalb,Tennessee,47041,27,0 +2020-05-10,DeKalb,Tennessee,47041,27,0 +2020-05-11,DeKalb,Tennessee,47041,28,0 +2020-05-12,DeKalb,Tennessee,47041,28,0 +2020-05-13,DeKalb,Tennessee,47041,28,0 +2020-05-14,DeKalb,Tennessee,47041,28,0 +2020-05-15,DeKalb,Tennessee,47041,28,0 +2020-05-16,DeKalb,Tennessee,47041,29,0 +2020-05-17,DeKalb,Tennessee,47041,29,0 +2020-05-18,DeKalb,Tennessee,47041,30,0 +2020-05-19,DeKalb,Tennessee,47041,32,0 +2020-05-20,DeKalb,Tennessee,47041,32,0 +2020-05-21,DeKalb,Tennessee,47041,32,0 +2020-05-22,DeKalb,Tennessee,47041,32,0 +2020-05-23,DeKalb,Tennessee,47041,33,0 +2020-05-24,DeKalb,Tennessee,47041,33,0 +2020-05-25,DeKalb,Tennessee,47041,34,0 +2020-05-26,DeKalb,Tennessee,47041,35,0 +2020-05-27,DeKalb,Tennessee,47041,37,0 +2020-05-28,DeKalb,Tennessee,47041,37,0 +2020-05-29,DeKalb,Tennessee,47041,37,0 +2020-05-30,DeKalb,Tennessee,47041,37,0 +2020-05-31,DeKalb,Tennessee,47041,37,0 +2020-06-01,DeKalb,Tennessee,47041,37,0 +2020-06-02,DeKalb,Tennessee,47041,40,0 +2020-06-03,DeKalb,Tennessee,47041,38,0 +2020-06-04,DeKalb,Tennessee,47041,38,0 +2020-06-05,DeKalb,Tennessee,47041,39,0 +2020-06-06,DeKalb,Tennessee,47041,39,0 +2020-06-07,DeKalb,Tennessee,47041,39,0 +2020-06-08,DeKalb,Tennessee,47041,40,0 +2020-06-09,DeKalb,Tennessee,47041,41,0 +2020-06-10,DeKalb,Tennessee,47041,41,0 +2020-06-11,DeKalb,Tennessee,47041,41,0 +2020-06-12,DeKalb,Tennessee,47041,41,0 +2020-06-13,DeKalb,Tennessee,47041,41,0 +2020-06-14,DeKalb,Tennessee,47041,41,0 +2020-06-15,DeKalb,Tennessee,47041,41,0 +2020-06-16,DeKalb,Tennessee,47041,41,0 +2020-06-17,DeKalb,Tennessee,47041,41,0 +2020-06-18,DeKalb,Tennessee,47041,41,0 +2020-06-19,DeKalb,Tennessee,47041,41,0 +2020-06-20,DeKalb,Tennessee,47041,42,0 +2020-06-21,DeKalb,Tennessee,47041,43,0 +2020-06-22,DeKalb,Tennessee,47041,42,0 +2020-06-23,DeKalb,Tennessee,47041,43,0 +2020-06-24,DeKalb,Tennessee,47041,44,0 +2020-06-25,DeKalb,Tennessee,47041,44,0 +2020-06-26,DeKalb,Tennessee,47041,47,0 +2020-06-27,DeKalb,Tennessee,47041,47,0 +2020-06-28,DeKalb,Tennessee,47041,47,0 +2020-06-29,DeKalb,Tennessee,47041,50,0 +2020-06-30,DeKalb,Tennessee,47041,52,0 +2020-07-01,DeKalb,Tennessee,47041,54,0 +2020-07-02,DeKalb,Tennessee,47041,57,0 +2020-07-03,DeKalb,Tennessee,47041,60,0 +2020-07-04,DeKalb,Tennessee,47041,66,0 +2020-07-05,DeKalb,Tennessee,47041,67,0 +2020-07-06,DeKalb,Tennessee,47041,68,0 +2020-07-07,DeKalb,Tennessee,47041,70,0 +2020-07-08,DeKalb,Tennessee,47041,70,0 +2020-07-09,DeKalb,Tennessee,47041,76,0 +2020-03-20,Dickson,Tennessee,47043,2,0 +2020-03-21,Dickson,Tennessee,47043,3,0 +2020-03-22,Dickson,Tennessee,47043,4,0 +2020-03-23,Dickson,Tennessee,47043,4,0 +2020-03-24,Dickson,Tennessee,47043,5,0 +2020-03-25,Dickson,Tennessee,47043,5,0 +2020-03-26,Dickson,Tennessee,47043,7,0 +2020-03-27,Dickson,Tennessee,47043,9,0 +2020-03-28,Dickson,Tennessee,47043,11,0 +2020-03-29,Dickson,Tennessee,47043,11,0 +2020-03-30,Dickson,Tennessee,47043,12,0 +2020-03-31,Dickson,Tennessee,47043,17,0 +2020-04-01,Dickson,Tennessee,47043,18,0 +2020-04-02,Dickson,Tennessee,47043,20,0 +2020-04-03,Dickson,Tennessee,47043,21,0 +2020-04-04,Dickson,Tennessee,47043,22,0 +2020-04-05,Dickson,Tennessee,47043,23,0 +2020-04-06,Dickson,Tennessee,47043,24,0 +2020-04-07,Dickson,Tennessee,47043,27,0 +2020-04-08,Dickson,Tennessee,47043,27,0 +2020-04-09,Dickson,Tennessee,47043,28,0 +2020-04-10,Dickson,Tennessee,47043,29,0 +2020-04-11,Dickson,Tennessee,47043,30,0 +2020-04-12,Dickson,Tennessee,47043,30,0 +2020-04-13,Dickson,Tennessee,47043,30,0 +2020-04-14,Dickson,Tennessee,47043,33,0 +2020-04-15,Dickson,Tennessee,47043,37,0 +2020-04-16,Dickson,Tennessee,47043,39,0 +2020-04-17,Dickson,Tennessee,47043,42,0 +2020-04-18,Dickson,Tennessee,47043,43,0 +2020-04-19,Dickson,Tennessee,47043,45,0 +2020-04-20,Dickson,Tennessee,47043,46,0 +2020-04-21,Dickson,Tennessee,47043,46,0 +2020-04-22,Dickson,Tennessee,47043,50,0 +2020-04-23,Dickson,Tennessee,47043,56,0 +2020-04-24,Dickson,Tennessee,47043,63,0 +2020-04-25,Dickson,Tennessee,47043,64,0 +2020-04-26,Dickson,Tennessee,47043,66,0 +2020-04-27,Dickson,Tennessee,47043,70,0 +2020-04-28,Dickson,Tennessee,47043,71,0 +2020-04-29,Dickson,Tennessee,47043,72,0 +2020-04-30,Dickson,Tennessee,47043,72,0 +2020-05-01,Dickson,Tennessee,47043,74,0 +2020-05-02,Dickson,Tennessee,47043,77,0 +2020-05-03,Dickson,Tennessee,47043,80,0 +2020-05-04,Dickson,Tennessee,47043,82,0 +2020-05-05,Dickson,Tennessee,47043,84,0 +2020-05-06,Dickson,Tennessee,47043,84,0 +2020-05-07,Dickson,Tennessee,47043,85,0 +2020-05-08,Dickson,Tennessee,47043,85,0 +2020-05-09,Dickson,Tennessee,47043,85,0 +2020-05-10,Dickson,Tennessee,47043,86,0 +2020-05-11,Dickson,Tennessee,47043,86,0 +2020-05-12,Dickson,Tennessee,47043,88,0 +2020-05-13,Dickson,Tennessee,47043,88,0 +2020-05-14,Dickson,Tennessee,47043,88,0 +2020-05-15,Dickson,Tennessee,47043,90,0 +2020-05-16,Dickson,Tennessee,47043,91,0 +2020-05-17,Dickson,Tennessee,47043,92,0 +2020-05-18,Dickson,Tennessee,47043,93,0 +2020-05-19,Dickson,Tennessee,47043,93,0 +2020-05-20,Dickson,Tennessee,47043,93,0 +2020-05-21,Dickson,Tennessee,47043,97,0 +2020-05-22,Dickson,Tennessee,47043,101,0 +2020-05-23,Dickson,Tennessee,47043,101,0 +2020-05-24,Dickson,Tennessee,47043,101,0 +2020-05-25,Dickson,Tennessee,47043,104,0 +2020-05-26,Dickson,Tennessee,47043,106,0 +2020-05-27,Dickson,Tennessee,47043,107,0 +2020-05-28,Dickson,Tennessee,47043,110,0 +2020-05-29,Dickson,Tennessee,47043,109,0 +2020-05-30,Dickson,Tennessee,47043,109,0 +2020-05-31,Dickson,Tennessee,47043,109,0 +2020-06-01,Dickson,Tennessee,47043,109,0 +2020-06-02,Dickson,Tennessee,47043,116,0 +2020-06-03,Dickson,Tennessee,47043,118,0 +2020-06-04,Dickson,Tennessee,47043,120,0 +2020-06-05,Dickson,Tennessee,47043,121,0 +2020-06-06,Dickson,Tennessee,47043,124,0 +2020-06-07,Dickson,Tennessee,47043,125,0 +2020-06-08,Dickson,Tennessee,47043,125,0 +2020-06-09,Dickson,Tennessee,47043,127,0 +2020-06-10,Dickson,Tennessee,47043,128,0 +2020-06-11,Dickson,Tennessee,47043,129,0 +2020-06-12,Dickson,Tennessee,47043,131,0 +2020-06-13,Dickson,Tennessee,47043,133,0 +2020-06-14,Dickson,Tennessee,47043,135,0 +2020-06-15,Dickson,Tennessee,47043,138,0 +2020-06-16,Dickson,Tennessee,47043,138,0 +2020-06-17,Dickson,Tennessee,47043,140,0 +2020-06-18,Dickson,Tennessee,47043,140,0 +2020-06-19,Dickson,Tennessee,47043,145,0 +2020-06-20,Dickson,Tennessee,47043,145,0 +2020-06-21,Dickson,Tennessee,47043,147,0 +2020-06-22,Dickson,Tennessee,47043,146,0 +2020-06-23,Dickson,Tennessee,47043,150,0 +2020-06-24,Dickson,Tennessee,47043,150,0 +2020-06-25,Dickson,Tennessee,47043,151,0 +2020-06-26,Dickson,Tennessee,47043,156,0 +2020-06-27,Dickson,Tennessee,47043,159,0 +2020-06-28,Dickson,Tennessee,47043,159,0 +2020-06-29,Dickson,Tennessee,47043,168,0 +2020-06-30,Dickson,Tennessee,47043,175,0 +2020-07-01,Dickson,Tennessee,47043,180,0 +2020-07-02,Dickson,Tennessee,47043,194,0 +2020-07-03,Dickson,Tennessee,47043,201,0 +2020-07-04,Dickson,Tennessee,47043,206,0 +2020-07-05,Dickson,Tennessee,47043,209,0 +2020-07-06,Dickson,Tennessee,47043,212,0 +2020-07-07,Dickson,Tennessee,47043,219,0 +2020-07-08,Dickson,Tennessee,47043,231,0 +2020-07-09,Dickson,Tennessee,47043,243,0 +2020-03-19,Dyer,Tennessee,47045,1,0 +2020-03-20,Dyer,Tennessee,47045,1,0 +2020-03-21,Dyer,Tennessee,47045,2,0 +2020-03-22,Dyer,Tennessee,47045,2,0 +2020-03-23,Dyer,Tennessee,47045,2,0 +2020-03-24,Dyer,Tennessee,47045,2,0 +2020-03-25,Dyer,Tennessee,47045,2,0 +2020-03-26,Dyer,Tennessee,47045,3,0 +2020-03-27,Dyer,Tennessee,47045,3,0 +2020-03-28,Dyer,Tennessee,47045,3,0 +2020-03-29,Dyer,Tennessee,47045,3,0 +2020-03-30,Dyer,Tennessee,47045,3,0 +2020-03-31,Dyer,Tennessee,47045,3,0 +2020-04-01,Dyer,Tennessee,47045,3,0 +2020-04-02,Dyer,Tennessee,47045,5,0 +2020-04-03,Dyer,Tennessee,47045,5,0 +2020-04-04,Dyer,Tennessee,47045,7,0 +2020-04-05,Dyer,Tennessee,47045,9,0 +2020-04-06,Dyer,Tennessee,47045,9,0 +2020-04-07,Dyer,Tennessee,47045,10,0 +2020-04-08,Dyer,Tennessee,47045,11,0 +2020-04-09,Dyer,Tennessee,47045,14,0 +2020-04-10,Dyer,Tennessee,47045,15,0 +2020-04-11,Dyer,Tennessee,47045,18,0 +2020-04-12,Dyer,Tennessee,47045,18,0 +2020-04-13,Dyer,Tennessee,47045,22,0 +2020-04-14,Dyer,Tennessee,47045,22,0 +2020-04-15,Dyer,Tennessee,47045,24,0 +2020-04-16,Dyer,Tennessee,47045,24,0 +2020-04-17,Dyer,Tennessee,47045,24,0 +2020-04-18,Dyer,Tennessee,47045,25,0 +2020-04-19,Dyer,Tennessee,47045,28,0 +2020-04-20,Dyer,Tennessee,47045,28,0 +2020-04-21,Dyer,Tennessee,47045,28,0 +2020-04-22,Dyer,Tennessee,47045,29,0 +2020-04-23,Dyer,Tennessee,47045,30,0 +2020-04-24,Dyer,Tennessee,47045,30,0 +2020-04-25,Dyer,Tennessee,47045,31,0 +2020-04-26,Dyer,Tennessee,47045,31,0 +2020-04-27,Dyer,Tennessee,47045,32,0 +2020-04-28,Dyer,Tennessee,47045,33,0 +2020-04-29,Dyer,Tennessee,47045,34,0 +2020-04-30,Dyer,Tennessee,47045,34,0 +2020-05-01,Dyer,Tennessee,47045,36,0 +2020-05-02,Dyer,Tennessee,47045,36,0 +2020-05-03,Dyer,Tennessee,47045,36,0 +2020-05-04,Dyer,Tennessee,47045,39,0 +2020-05-05,Dyer,Tennessee,47045,40,0 +2020-05-06,Dyer,Tennessee,47045,38,0 +2020-05-07,Dyer,Tennessee,47045,39,0 +2020-05-08,Dyer,Tennessee,47045,41,0 +2020-05-09,Dyer,Tennessee,47045,41,0 +2020-05-10,Dyer,Tennessee,47045,41,0 +2020-05-11,Dyer,Tennessee,47045,43,0 +2020-05-12,Dyer,Tennessee,47045,43,0 +2020-05-13,Dyer,Tennessee,47045,44,0 +2020-05-14,Dyer,Tennessee,47045,44,0 +2020-05-15,Dyer,Tennessee,47045,44,0 +2020-05-16,Dyer,Tennessee,47045,44,0 +2020-05-17,Dyer,Tennessee,47045,44,0 +2020-05-18,Dyer,Tennessee,47045,44,0 +2020-05-19,Dyer,Tennessee,47045,45,0 +2020-05-20,Dyer,Tennessee,47045,45,0 +2020-05-21,Dyer,Tennessee,47045,45,0 +2020-05-22,Dyer,Tennessee,47045,46,0 +2020-05-23,Dyer,Tennessee,47045,48,0 +2020-05-24,Dyer,Tennessee,47045,48,0 +2020-05-25,Dyer,Tennessee,47045,48,0 +2020-05-26,Dyer,Tennessee,47045,48,0 +2020-05-27,Dyer,Tennessee,47045,49,0 +2020-05-28,Dyer,Tennessee,47045,50,0 +2020-05-29,Dyer,Tennessee,47045,50,0 +2020-05-30,Dyer,Tennessee,47045,50,0 +2020-05-31,Dyer,Tennessee,47045,50,0 +2020-06-01,Dyer,Tennessee,47045,50,0 +2020-06-02,Dyer,Tennessee,47045,55,0 +2020-06-03,Dyer,Tennessee,47045,57,0 +2020-06-04,Dyer,Tennessee,47045,57,0 +2020-06-05,Dyer,Tennessee,47045,59,0 +2020-06-06,Dyer,Tennessee,47045,60,0 +2020-06-07,Dyer,Tennessee,47045,61,0 +2020-06-08,Dyer,Tennessee,47045,67,0 +2020-06-09,Dyer,Tennessee,47045,70,0 +2020-06-10,Dyer,Tennessee,47045,71,0 +2020-06-11,Dyer,Tennessee,47045,73,0 +2020-06-12,Dyer,Tennessee,47045,82,0 +2020-06-13,Dyer,Tennessee,47045,86,0 +2020-06-14,Dyer,Tennessee,47045,91,0 +2020-06-15,Dyer,Tennessee,47045,99,0 +2020-06-16,Dyer,Tennessee,47045,106,0 +2020-06-17,Dyer,Tennessee,47045,116,0 +2020-06-18,Dyer,Tennessee,47045,122,0 +2020-06-19,Dyer,Tennessee,47045,141,0 +2020-06-20,Dyer,Tennessee,47045,145,0 +2020-06-21,Dyer,Tennessee,47045,158,0 +2020-06-22,Dyer,Tennessee,47045,164,0 +2020-06-23,Dyer,Tennessee,47045,174,0 +2020-06-24,Dyer,Tennessee,47045,181,0 +2020-06-25,Dyer,Tennessee,47045,181,0 +2020-06-26,Dyer,Tennessee,47045,184,0 +2020-06-27,Dyer,Tennessee,47045,192,0 +2020-06-28,Dyer,Tennessee,47045,192,0 +2020-06-29,Dyer,Tennessee,47045,206,0 +2020-06-30,Dyer,Tennessee,47045,214,1 +2020-07-01,Dyer,Tennessee,47045,225,1 +2020-07-02,Dyer,Tennessee,47045,232,1 +2020-07-03,Dyer,Tennessee,47045,240,1 +2020-07-04,Dyer,Tennessee,47045,248,1 +2020-07-05,Dyer,Tennessee,47045,251,1 +2020-07-06,Dyer,Tennessee,47045,254,3 +2020-07-07,Dyer,Tennessee,47045,261,3 +2020-07-08,Dyer,Tennessee,47045,270,3 +2020-07-09,Dyer,Tennessee,47045,274,3 +2020-03-21,Fayette,Tennessee,47047,1,0 +2020-03-22,Fayette,Tennessee,47047,3,0 +2020-03-23,Fayette,Tennessee,47047,3,0 +2020-03-24,Fayette,Tennessee,47047,3,0 +2020-03-25,Fayette,Tennessee,47047,3,0 +2020-03-26,Fayette,Tennessee,47047,3,0 +2020-03-27,Fayette,Tennessee,47047,3,0 +2020-03-28,Fayette,Tennessee,47047,4,0 +2020-03-29,Fayette,Tennessee,47047,10,0 +2020-03-30,Fayette,Tennessee,47047,10,0 +2020-03-31,Fayette,Tennessee,47047,12,0 +2020-04-01,Fayette,Tennessee,47047,14,0 +2020-04-02,Fayette,Tennessee,47047,14,0 +2020-04-03,Fayette,Tennessee,47047,17,0 +2020-04-04,Fayette,Tennessee,47047,18,0 +2020-04-05,Fayette,Tennessee,47047,20,0 +2020-04-06,Fayette,Tennessee,47047,21,0 +2020-04-07,Fayette,Tennessee,47047,21,0 +2020-04-08,Fayette,Tennessee,47047,22,0 +2020-04-09,Fayette,Tennessee,47047,25,0 +2020-04-10,Fayette,Tennessee,47047,28,0 +2020-04-11,Fayette,Tennessee,47047,30,0 +2020-04-12,Fayette,Tennessee,47047,30,0 +2020-04-13,Fayette,Tennessee,47047,36,0 +2020-04-14,Fayette,Tennessee,47047,37,0 +2020-04-15,Fayette,Tennessee,47047,39,1 +2020-04-16,Fayette,Tennessee,47047,42,1 +2020-04-17,Fayette,Tennessee,47047,44,1 +2020-04-18,Fayette,Tennessee,47047,45,1 +2020-04-19,Fayette,Tennessee,47047,45,1 +2020-04-20,Fayette,Tennessee,47047,46,1 +2020-04-21,Fayette,Tennessee,47047,48,1 +2020-04-22,Fayette,Tennessee,47047,48,1 +2020-04-23,Fayette,Tennessee,47047,48,1 +2020-04-24,Fayette,Tennessee,47047,48,1 +2020-04-25,Fayette,Tennessee,47047,51,1 +2020-04-26,Fayette,Tennessee,47047,52,1 +2020-04-27,Fayette,Tennessee,47047,52,1 +2020-04-28,Fayette,Tennessee,47047,53,1 +2020-04-29,Fayette,Tennessee,47047,53,1 +2020-04-30,Fayette,Tennessee,47047,56,1 +2020-05-01,Fayette,Tennessee,47047,59,1 +2020-05-02,Fayette,Tennessee,47047,59,1 +2020-05-03,Fayette,Tennessee,47047,63,1 +2020-05-04,Fayette,Tennessee,47047,68,1 +2020-05-05,Fayette,Tennessee,47047,69,1 +2020-05-06,Fayette,Tennessee,47047,73,1 +2020-05-07,Fayette,Tennessee,47047,73,1 +2020-05-08,Fayette,Tennessee,47047,75,1 +2020-05-09,Fayette,Tennessee,47047,77,1 +2020-05-10,Fayette,Tennessee,47047,79,1 +2020-05-11,Fayette,Tennessee,47047,80,1 +2020-05-12,Fayette,Tennessee,47047,82,1 +2020-05-13,Fayette,Tennessee,47047,85,1 +2020-05-14,Fayette,Tennessee,47047,86,2 +2020-05-15,Fayette,Tennessee,47047,88,2 +2020-05-16,Fayette,Tennessee,47047,88,2 +2020-05-17,Fayette,Tennessee,47047,90,2 +2020-05-18,Fayette,Tennessee,47047,94,2 +2020-05-19,Fayette,Tennessee,47047,95,2 +2020-05-20,Fayette,Tennessee,47047,95,2 +2020-05-21,Fayette,Tennessee,47047,98,2 +2020-05-22,Fayette,Tennessee,47047,100,2 +2020-05-23,Fayette,Tennessee,47047,104,2 +2020-05-24,Fayette,Tennessee,47047,107,2 +2020-05-25,Fayette,Tennessee,47047,107,2 +2020-05-26,Fayette,Tennessee,47047,108,2 +2020-05-27,Fayette,Tennessee,47047,110,2 +2020-05-28,Fayette,Tennessee,47047,110,2 +2020-05-29,Fayette,Tennessee,47047,112,2 +2020-05-30,Fayette,Tennessee,47047,115,2 +2020-05-31,Fayette,Tennessee,47047,115,2 +2020-06-01,Fayette,Tennessee,47047,115,2 +2020-06-02,Fayette,Tennessee,47047,121,2 +2020-06-03,Fayette,Tennessee,47047,125,2 +2020-06-04,Fayette,Tennessee,47047,136,2 +2020-06-05,Fayette,Tennessee,47047,144,2 +2020-06-06,Fayette,Tennessee,47047,152,2 +2020-06-07,Fayette,Tennessee,47047,151,2 +2020-06-08,Fayette,Tennessee,47047,155,2 +2020-06-09,Fayette,Tennessee,47047,159,2 +2020-06-10,Fayette,Tennessee,47047,162,2 +2020-06-11,Fayette,Tennessee,47047,163,2 +2020-06-12,Fayette,Tennessee,47047,167,2 +2020-06-13,Fayette,Tennessee,47047,169,2 +2020-06-14,Fayette,Tennessee,47047,172,2 +2020-06-15,Fayette,Tennessee,47047,177,2 +2020-06-16,Fayette,Tennessee,47047,183,2 +2020-06-17,Fayette,Tennessee,47047,186,2 +2020-06-18,Fayette,Tennessee,47047,189,2 +2020-06-19,Fayette,Tennessee,47047,193,2 +2020-06-20,Fayette,Tennessee,47047,193,2 +2020-06-21,Fayette,Tennessee,47047,195,2 +2020-06-22,Fayette,Tennessee,47047,203,2 +2020-06-23,Fayette,Tennessee,47047,213,2 +2020-06-24,Fayette,Tennessee,47047,224,2 +2020-06-25,Fayette,Tennessee,47047,229,2 +2020-06-26,Fayette,Tennessee,47047,233,2 +2020-06-27,Fayette,Tennessee,47047,244,2 +2020-06-28,Fayette,Tennessee,47047,244,2 +2020-06-29,Fayette,Tennessee,47047,263,2 +2020-06-30,Fayette,Tennessee,47047,273,2 +2020-07-01,Fayette,Tennessee,47047,292,2 +2020-07-02,Fayette,Tennessee,47047,301,2 +2020-07-03,Fayette,Tennessee,47047,310,2 +2020-07-04,Fayette,Tennessee,47047,312,2 +2020-07-05,Fayette,Tennessee,47047,317,2 +2020-07-06,Fayette,Tennessee,47047,323,2 +2020-07-07,Fayette,Tennessee,47047,328,2 +2020-07-08,Fayette,Tennessee,47047,344,3 +2020-07-09,Fayette,Tennessee,47047,346,3 +2020-03-30,Fentress,Tennessee,47049,1,0 +2020-03-31,Fentress,Tennessee,47049,1,0 +2020-04-01,Fentress,Tennessee,47049,1,0 +2020-04-02,Fentress,Tennessee,47049,1,0 +2020-04-03,Fentress,Tennessee,47049,1,0 +2020-04-04,Fentress,Tennessee,47049,1,0 +2020-04-05,Fentress,Tennessee,47049,2,0 +2020-04-06,Fentress,Tennessee,47049,2,0 +2020-04-07,Fentress,Tennessee,47049,2,0 +2020-04-08,Fentress,Tennessee,47049,2,0 +2020-04-09,Fentress,Tennessee,47049,2,0 +2020-04-10,Fentress,Tennessee,47049,2,0 +2020-04-11,Fentress,Tennessee,47049,2,0 +2020-04-12,Fentress,Tennessee,47049,2,0 +2020-04-13,Fentress,Tennessee,47049,2,0 +2020-04-14,Fentress,Tennessee,47049,3,0 +2020-04-15,Fentress,Tennessee,47049,3,0 +2020-04-16,Fentress,Tennessee,47049,4,0 +2020-04-17,Fentress,Tennessee,47049,4,0 +2020-04-18,Fentress,Tennessee,47049,4,0 +2020-04-19,Fentress,Tennessee,47049,4,0 +2020-04-20,Fentress,Tennessee,47049,4,0 +2020-04-21,Fentress,Tennessee,47049,4,0 +2020-04-22,Fentress,Tennessee,47049,4,0 +2020-04-23,Fentress,Tennessee,47049,4,0 +2020-04-24,Fentress,Tennessee,47049,4,0 +2020-04-25,Fentress,Tennessee,47049,4,0 +2020-04-26,Fentress,Tennessee,47049,4,0 +2020-04-27,Fentress,Tennessee,47049,4,0 +2020-04-28,Fentress,Tennessee,47049,4,0 +2020-04-29,Fentress,Tennessee,47049,4,0 +2020-04-30,Fentress,Tennessee,47049,4,0 +2020-05-01,Fentress,Tennessee,47049,4,0 +2020-05-02,Fentress,Tennessee,47049,4,0 +2020-05-03,Fentress,Tennessee,47049,4,0 +2020-05-04,Fentress,Tennessee,47049,5,0 +2020-05-05,Fentress,Tennessee,47049,5,0 +2020-05-06,Fentress,Tennessee,47049,5,0 +2020-05-07,Fentress,Tennessee,47049,5,0 +2020-05-08,Fentress,Tennessee,47049,5,0 +2020-05-09,Fentress,Tennessee,47049,6,0 +2020-05-10,Fentress,Tennessee,47049,6,0 +2020-05-11,Fentress,Tennessee,47049,6,0 +2020-05-12,Fentress,Tennessee,47049,6,0 +2020-05-13,Fentress,Tennessee,47049,6,0 +2020-05-14,Fentress,Tennessee,47049,6,0 +2020-05-15,Fentress,Tennessee,47049,6,0 +2020-05-16,Fentress,Tennessee,47049,6,0 +2020-05-17,Fentress,Tennessee,47049,6,0 +2020-05-18,Fentress,Tennessee,47049,6,0 +2020-05-19,Fentress,Tennessee,47049,9,0 +2020-05-20,Fentress,Tennessee,47049,9,0 +2020-05-21,Fentress,Tennessee,47049,9,0 +2020-05-22,Fentress,Tennessee,47049,9,0 +2020-05-23,Fentress,Tennessee,47049,9,0 +2020-05-24,Fentress,Tennessee,47049,10,0 +2020-05-25,Fentress,Tennessee,47049,11,0 +2020-05-26,Fentress,Tennessee,47049,12,0 +2020-05-27,Fentress,Tennessee,47049,12,0 +2020-05-28,Fentress,Tennessee,47049,12,0 +2020-05-29,Fentress,Tennessee,47049,12,0 +2020-05-30,Fentress,Tennessee,47049,12,0 +2020-05-31,Fentress,Tennessee,47049,12,0 +2020-06-01,Fentress,Tennessee,47049,12,0 +2020-06-02,Fentress,Tennessee,47049,12,0 +2020-06-03,Fentress,Tennessee,47049,12,0 +2020-06-04,Fentress,Tennessee,47049,12,0 +2020-06-05,Fentress,Tennessee,47049,12,0 +2020-06-06,Fentress,Tennessee,47049,12,0 +2020-06-07,Fentress,Tennessee,47049,12,0 +2020-06-08,Fentress,Tennessee,47049,12,0 +2020-06-09,Fentress,Tennessee,47049,13,0 +2020-06-10,Fentress,Tennessee,47049,13,0 +2020-06-11,Fentress,Tennessee,47049,13,0 +2020-06-12,Fentress,Tennessee,47049,14,0 +2020-06-13,Fentress,Tennessee,47049,14,0 +2020-06-14,Fentress,Tennessee,47049,14,0 +2020-06-15,Fentress,Tennessee,47049,14,0 +2020-06-16,Fentress,Tennessee,47049,15,0 +2020-06-17,Fentress,Tennessee,47049,15,0 +2020-06-18,Fentress,Tennessee,47049,15,0 +2020-06-19,Fentress,Tennessee,47049,15,0 +2020-06-20,Fentress,Tennessee,47049,15,0 +2020-06-21,Fentress,Tennessee,47049,15,0 +2020-06-22,Fentress,Tennessee,47049,15,0 +2020-06-23,Fentress,Tennessee,47049,15,0 +2020-06-24,Fentress,Tennessee,47049,15,0 +2020-06-25,Fentress,Tennessee,47049,15,0 +2020-06-26,Fentress,Tennessee,47049,15,0 +2020-06-27,Fentress,Tennessee,47049,16,0 +2020-06-28,Fentress,Tennessee,47049,16,0 +2020-06-29,Fentress,Tennessee,47049,17,0 +2020-06-30,Fentress,Tennessee,47049,17,0 +2020-07-01,Fentress,Tennessee,47049,18,0 +2020-07-02,Fentress,Tennessee,47049,19,0 +2020-07-03,Fentress,Tennessee,47049,22,0 +2020-07-04,Fentress,Tennessee,47049,22,0 +2020-07-05,Fentress,Tennessee,47049,22,0 +2020-07-06,Fentress,Tennessee,47049,23,0 +2020-07-07,Fentress,Tennessee,47049,24,0 +2020-07-08,Fentress,Tennessee,47049,25,0 +2020-07-09,Fentress,Tennessee,47049,25,0 +2020-03-22,Franklin,Tennessee,47051,1,0 +2020-03-23,Franklin,Tennessee,47051,1,0 +2020-03-24,Franklin,Tennessee,47051,1,0 +2020-03-25,Franklin,Tennessee,47051,1,0 +2020-03-26,Franklin,Tennessee,47051,3,0 +2020-03-27,Franklin,Tennessee,47051,3,0 +2020-03-28,Franklin,Tennessee,47051,3,0 +2020-03-29,Franklin,Tennessee,47051,6,0 +2020-03-30,Franklin,Tennessee,47051,5,0 +2020-03-31,Franklin,Tennessee,47051,5,0 +2020-04-01,Franklin,Tennessee,47051,7,0 +2020-04-02,Franklin,Tennessee,47051,8,0 +2020-04-03,Franklin,Tennessee,47051,12,1 +2020-04-04,Franklin,Tennessee,47051,12,1 +2020-04-05,Franklin,Tennessee,47051,12,1 +2020-04-06,Franklin,Tennessee,47051,14,1 +2020-04-07,Franklin,Tennessee,47051,14,1 +2020-04-08,Franklin,Tennessee,47051,17,1 +2020-04-09,Franklin,Tennessee,47051,17,1 +2020-04-10,Franklin,Tennessee,47051,17,1 +2020-04-11,Franklin,Tennessee,47051,22,1 +2020-04-12,Franklin,Tennessee,47051,22,1 +2020-04-13,Franklin,Tennessee,47051,21,1 +2020-04-14,Franklin,Tennessee,47051,23,1 +2020-04-15,Franklin,Tennessee,47051,23,1 +2020-04-16,Franklin,Tennessee,47051,23,1 +2020-04-17,Franklin,Tennessee,47051,23,1 +2020-04-18,Franklin,Tennessee,47051,23,1 +2020-04-19,Franklin,Tennessee,47051,26,1 +2020-04-20,Franklin,Tennessee,47051,27,1 +2020-04-21,Franklin,Tennessee,47051,27,1 +2020-04-22,Franklin,Tennessee,47051,28,1 +2020-04-23,Franklin,Tennessee,47051,28,1 +2020-04-24,Franklin,Tennessee,47051,29,1 +2020-04-25,Franklin,Tennessee,47051,29,1 +2020-04-26,Franklin,Tennessee,47051,29,1 +2020-04-27,Franklin,Tennessee,47051,29,1 +2020-04-28,Franklin,Tennessee,47051,32,1 +2020-04-29,Franklin,Tennessee,47051,34,1 +2020-04-30,Franklin,Tennessee,47051,36,1 +2020-05-01,Franklin,Tennessee,47051,36,1 +2020-05-02,Franklin,Tennessee,47051,36,1 +2020-05-03,Franklin,Tennessee,47051,36,1 +2020-05-04,Franklin,Tennessee,47051,36,1 +2020-05-05,Franklin,Tennessee,47051,36,1 +2020-05-06,Franklin,Tennessee,47051,36,1 +2020-05-07,Franklin,Tennessee,47051,37,1 +2020-05-08,Franklin,Tennessee,47051,38,1 +2020-05-09,Franklin,Tennessee,47051,40,1 +2020-05-10,Franklin,Tennessee,47051,40,1 +2020-05-11,Franklin,Tennessee,47051,41,1 +2020-05-12,Franklin,Tennessee,47051,41,1 +2020-05-13,Franklin,Tennessee,47051,41,1 +2020-05-14,Franklin,Tennessee,47051,41,1 +2020-05-15,Franklin,Tennessee,47051,43,1 +2020-05-16,Franklin,Tennessee,47051,43,1 +2020-05-17,Franklin,Tennessee,47051,43,1 +2020-05-18,Franklin,Tennessee,47051,43,1 +2020-05-19,Franklin,Tennessee,47051,43,1 +2020-05-20,Franklin,Tennessee,47051,43,1 +2020-05-21,Franklin,Tennessee,47051,44,1 +2020-05-22,Franklin,Tennessee,47051,45,1 +2020-05-23,Franklin,Tennessee,47051,45,1 +2020-05-24,Franklin,Tennessee,47051,46,1 +2020-05-25,Franklin,Tennessee,47051,46,1 +2020-05-26,Franklin,Tennessee,47051,48,1 +2020-05-27,Franklin,Tennessee,47051,49,1 +2020-05-28,Franklin,Tennessee,47051,49,1 +2020-05-29,Franklin,Tennessee,47051,51,1 +2020-05-30,Franklin,Tennessee,47051,53,1 +2020-05-31,Franklin,Tennessee,47051,53,1 +2020-06-01,Franklin,Tennessee,47051,53,1 +2020-06-02,Franklin,Tennessee,47051,54,1 +2020-06-03,Franklin,Tennessee,47051,54,1 +2020-06-04,Franklin,Tennessee,47051,54,1 +2020-06-05,Franklin,Tennessee,47051,54,1 +2020-06-06,Franklin,Tennessee,47051,54,1 +2020-06-07,Franklin,Tennessee,47051,54,1 +2020-06-08,Franklin,Tennessee,47051,54,1 +2020-06-09,Franklin,Tennessee,47051,55,1 +2020-06-10,Franklin,Tennessee,47051,55,2 +2020-06-11,Franklin,Tennessee,47051,55,2 +2020-06-12,Franklin,Tennessee,47051,59,2 +2020-06-13,Franklin,Tennessee,47051,62,2 +2020-06-14,Franklin,Tennessee,47051,62,2 +2020-06-15,Franklin,Tennessee,47051,63,2 +2020-06-16,Franklin,Tennessee,47051,63,2 +2020-06-17,Franklin,Tennessee,47051,64,2 +2020-06-18,Franklin,Tennessee,47051,64,2 +2020-06-19,Franklin,Tennessee,47051,65,2 +2020-06-20,Franklin,Tennessee,47051,65,2 +2020-06-21,Franklin,Tennessee,47051,67,2 +2020-06-22,Franklin,Tennessee,47051,69,2 +2020-06-23,Franklin,Tennessee,47051,69,3 +2020-06-24,Franklin,Tennessee,47051,69,3 +2020-06-25,Franklin,Tennessee,47051,69,3 +2020-06-26,Franklin,Tennessee,47051,70,3 +2020-06-27,Franklin,Tennessee,47051,73,3 +2020-06-28,Franklin,Tennessee,47051,73,3 +2020-06-29,Franklin,Tennessee,47051,73,3 +2020-06-30,Franklin,Tennessee,47051,75,3 +2020-07-01,Franklin,Tennessee,47051,80,3 +2020-07-02,Franklin,Tennessee,47051,82,3 +2020-07-03,Franklin,Tennessee,47051,82,3 +2020-07-04,Franklin,Tennessee,47051,84,3 +2020-07-05,Franklin,Tennessee,47051,87,3 +2020-07-06,Franklin,Tennessee,47051,88,3 +2020-07-07,Franklin,Tennessee,47051,90,3 +2020-07-08,Franklin,Tennessee,47051,101,3 +2020-07-09,Franklin,Tennessee,47051,104,3 +2020-03-22,Gibson,Tennessee,47053,1,0 +2020-03-23,Gibson,Tennessee,47053,1,0 +2020-03-24,Gibson,Tennessee,47053,2,0 +2020-03-25,Gibson,Tennessee,47053,2,0 +2020-03-26,Gibson,Tennessee,47053,2,0 +2020-03-27,Gibson,Tennessee,47053,2,0 +2020-03-28,Gibson,Tennessee,47053,2,0 +2020-03-29,Gibson,Tennessee,47053,3,0 +2020-03-30,Gibson,Tennessee,47053,5,0 +2020-03-31,Gibson,Tennessee,47053,6,0 +2020-04-01,Gibson,Tennessee,47053,6,0 +2020-04-02,Gibson,Tennessee,47053,6,0 +2020-04-03,Gibson,Tennessee,47053,7,0 +2020-04-04,Gibson,Tennessee,47053,8,0 +2020-04-05,Gibson,Tennessee,47053,11,0 +2020-04-06,Gibson,Tennessee,47053,12,0 +2020-04-07,Gibson,Tennessee,47053,13,0 +2020-04-08,Gibson,Tennessee,47053,13,0 +2020-04-09,Gibson,Tennessee,47053,16,0 +2020-04-10,Gibson,Tennessee,47053,18,0 +2020-04-11,Gibson,Tennessee,47053,19,0 +2020-04-12,Gibson,Tennessee,47053,19,0 +2020-04-13,Gibson,Tennessee,47053,20,0 +2020-04-14,Gibson,Tennessee,47053,21,0 +2020-04-15,Gibson,Tennessee,47053,24,0 +2020-04-16,Gibson,Tennessee,47053,25,0 +2020-04-17,Gibson,Tennessee,47053,27,0 +2020-04-18,Gibson,Tennessee,47053,28,0 +2020-04-19,Gibson,Tennessee,47053,31,0 +2020-04-20,Gibson,Tennessee,47053,31,0 +2020-04-21,Gibson,Tennessee,47053,32,0 +2020-04-22,Gibson,Tennessee,47053,33,1 +2020-04-23,Gibson,Tennessee,47053,32,1 +2020-04-24,Gibson,Tennessee,47053,34,1 +2020-04-25,Gibson,Tennessee,47053,35,1 +2020-04-26,Gibson,Tennessee,47053,38,1 +2020-04-27,Gibson,Tennessee,47053,41,1 +2020-04-28,Gibson,Tennessee,47053,41,1 +2020-04-29,Gibson,Tennessee,47053,44,1 +2020-04-30,Gibson,Tennessee,47053,43,1 +2020-05-01,Gibson,Tennessee,47053,45,1 +2020-05-02,Gibson,Tennessee,47053,48,1 +2020-05-03,Gibson,Tennessee,47053,50,1 +2020-05-04,Gibson,Tennessee,47053,53,1 +2020-05-05,Gibson,Tennessee,47053,53,1 +2020-05-06,Gibson,Tennessee,47053,50,1 +2020-05-07,Gibson,Tennessee,47053,52,1 +2020-05-08,Gibson,Tennessee,47053,52,1 +2020-05-09,Gibson,Tennessee,47053,53,1 +2020-05-10,Gibson,Tennessee,47053,54,1 +2020-05-11,Gibson,Tennessee,47053,56,1 +2020-05-12,Gibson,Tennessee,47053,57,1 +2020-05-13,Gibson,Tennessee,47053,57,1 +2020-05-14,Gibson,Tennessee,47053,57,1 +2020-05-15,Gibson,Tennessee,47053,57,1 +2020-05-16,Gibson,Tennessee,47053,58,1 +2020-05-17,Gibson,Tennessee,47053,58,1 +2020-05-18,Gibson,Tennessee,47053,59,1 +2020-05-19,Gibson,Tennessee,47053,59,1 +2020-05-20,Gibson,Tennessee,47053,59,1 +2020-05-21,Gibson,Tennessee,47053,59,1 +2020-05-22,Gibson,Tennessee,47053,60,1 +2020-05-23,Gibson,Tennessee,47053,61,1 +2020-05-24,Gibson,Tennessee,47053,60,1 +2020-05-25,Gibson,Tennessee,47053,60,1 +2020-05-26,Gibson,Tennessee,47053,61,1 +2020-05-27,Gibson,Tennessee,47053,60,1 +2020-05-28,Gibson,Tennessee,47053,61,1 +2020-05-29,Gibson,Tennessee,47053,62,1 +2020-05-30,Gibson,Tennessee,47053,63,1 +2020-05-31,Gibson,Tennessee,47053,63,1 +2020-06-01,Gibson,Tennessee,47053,63,1 +2020-06-02,Gibson,Tennessee,47053,62,1 +2020-06-03,Gibson,Tennessee,47053,63,1 +2020-06-04,Gibson,Tennessee,47053,63,1 +2020-06-05,Gibson,Tennessee,47053,63,1 +2020-06-06,Gibson,Tennessee,47053,63,1 +2020-06-07,Gibson,Tennessee,47053,63,1 +2020-06-08,Gibson,Tennessee,47053,64,1 +2020-06-09,Gibson,Tennessee,47053,64,1 +2020-06-10,Gibson,Tennessee,47053,64,1 +2020-06-11,Gibson,Tennessee,47053,64,1 +2020-06-12,Gibson,Tennessee,47053,68,1 +2020-06-13,Gibson,Tennessee,47053,68,1 +2020-06-14,Gibson,Tennessee,47053,68,1 +2020-06-15,Gibson,Tennessee,47053,69,1 +2020-06-16,Gibson,Tennessee,47053,69,1 +2020-06-17,Gibson,Tennessee,47053,69,1 +2020-06-18,Gibson,Tennessee,47053,70,1 +2020-06-19,Gibson,Tennessee,47053,74,1 +2020-06-20,Gibson,Tennessee,47053,75,1 +2020-06-21,Gibson,Tennessee,47053,77,1 +2020-06-22,Gibson,Tennessee,47053,77,1 +2020-06-23,Gibson,Tennessee,47053,80,1 +2020-06-24,Gibson,Tennessee,47053,80,1 +2020-06-25,Gibson,Tennessee,47053,83,1 +2020-06-26,Gibson,Tennessee,47053,84,1 +2020-06-27,Gibson,Tennessee,47053,90,1 +2020-06-28,Gibson,Tennessee,47053,90,1 +2020-06-29,Gibson,Tennessee,47053,97,1 +2020-06-30,Gibson,Tennessee,47053,100,1 +2020-07-01,Gibson,Tennessee,47053,106,1 +2020-07-02,Gibson,Tennessee,47053,110,1 +2020-07-03,Gibson,Tennessee,47053,121,1 +2020-07-04,Gibson,Tennessee,47053,128,1 +2020-07-05,Gibson,Tennessee,47053,129,1 +2020-07-06,Gibson,Tennessee,47053,129,1 +2020-07-07,Gibson,Tennessee,47053,133,1 +2020-07-08,Gibson,Tennessee,47053,147,1 +2020-07-09,Gibson,Tennessee,47053,158,1 +2020-03-30,Giles,Tennessee,47055,1,0 +2020-03-31,Giles,Tennessee,47055,3,0 +2020-04-01,Giles,Tennessee,47055,3,0 +2020-04-02,Giles,Tennessee,47055,3,0 +2020-04-03,Giles,Tennessee,47055,3,0 +2020-04-04,Giles,Tennessee,47055,3,0 +2020-04-05,Giles,Tennessee,47055,3,0 +2020-04-06,Giles,Tennessee,47055,3,0 +2020-04-07,Giles,Tennessee,47055,3,0 +2020-04-08,Giles,Tennessee,47055,3,0 +2020-04-09,Giles,Tennessee,47055,3,0 +2020-04-10,Giles,Tennessee,47055,3,0 +2020-04-11,Giles,Tennessee,47055,3,0 +2020-04-12,Giles,Tennessee,47055,3,0 +2020-04-13,Giles,Tennessee,47055,3,0 +2020-04-14,Giles,Tennessee,47055,3,0 +2020-04-15,Giles,Tennessee,47055,4,0 +2020-04-16,Giles,Tennessee,47055,5,0 +2020-04-17,Giles,Tennessee,47055,5,0 +2020-04-18,Giles,Tennessee,47055,5,0 +2020-04-19,Giles,Tennessee,47055,5,0 +2020-04-20,Giles,Tennessee,47055,5,0 +2020-04-21,Giles,Tennessee,47055,6,0 +2020-04-22,Giles,Tennessee,47055,6,0 +2020-04-23,Giles,Tennessee,47055,6,0 +2020-04-24,Giles,Tennessee,47055,6,0 +2020-04-25,Giles,Tennessee,47055,6,0 +2020-04-26,Giles,Tennessee,47055,6,0 +2020-04-27,Giles,Tennessee,47055,6,0 +2020-04-28,Giles,Tennessee,47055,6,0 +2020-04-29,Giles,Tennessee,47055,7,0 +2020-04-30,Giles,Tennessee,47055,8,0 +2020-05-01,Giles,Tennessee,47055,8,0 +2020-05-02,Giles,Tennessee,47055,8,0 +2020-05-03,Giles,Tennessee,47055,8,0 +2020-05-04,Giles,Tennessee,47055,8,0 +2020-05-05,Giles,Tennessee,47055,8,0 +2020-05-06,Giles,Tennessee,47055,9,0 +2020-05-07,Giles,Tennessee,47055,9,0 +2020-05-08,Giles,Tennessee,47055,9,0 +2020-05-09,Giles,Tennessee,47055,9,0 +2020-05-10,Giles,Tennessee,47055,9,0 +2020-05-11,Giles,Tennessee,47055,9,0 +2020-05-12,Giles,Tennessee,47055,9,0 +2020-05-13,Giles,Tennessee,47055,9,0 +2020-05-14,Giles,Tennessee,47055,9,0 +2020-05-15,Giles,Tennessee,47055,9,0 +2020-05-16,Giles,Tennessee,47055,9,0 +2020-05-17,Giles,Tennessee,47055,10,0 +2020-05-18,Giles,Tennessee,47055,12,0 +2020-05-19,Giles,Tennessee,47055,12,0 +2020-05-20,Giles,Tennessee,47055,12,0 +2020-05-21,Giles,Tennessee,47055,12,0 +2020-05-22,Giles,Tennessee,47055,12,0 +2020-05-23,Giles,Tennessee,47055,12,0 +2020-05-24,Giles,Tennessee,47055,12,0 +2020-05-25,Giles,Tennessee,47055,12,0 +2020-05-26,Giles,Tennessee,47055,12,0 +2020-05-27,Giles,Tennessee,47055,12,0 +2020-05-28,Giles,Tennessee,47055,12,0 +2020-05-29,Giles,Tennessee,47055,12,0 +2020-05-30,Giles,Tennessee,47055,12,0 +2020-05-31,Giles,Tennessee,47055,12,0 +2020-06-01,Giles,Tennessee,47055,12,0 +2020-06-02,Giles,Tennessee,47055,12,0 +2020-06-03,Giles,Tennessee,47055,12,0 +2020-06-04,Giles,Tennessee,47055,13,0 +2020-06-05,Giles,Tennessee,47055,14,0 +2020-06-06,Giles,Tennessee,47055,17,0 +2020-06-07,Giles,Tennessee,47055,18,0 +2020-06-08,Giles,Tennessee,47055,18,0 +2020-06-09,Giles,Tennessee,47055,19,0 +2020-06-10,Giles,Tennessee,47055,19,0 +2020-06-11,Giles,Tennessee,47055,19,0 +2020-06-12,Giles,Tennessee,47055,21,0 +2020-06-13,Giles,Tennessee,47055,22,0 +2020-06-14,Giles,Tennessee,47055,22,0 +2020-06-15,Giles,Tennessee,47055,23,0 +2020-06-16,Giles,Tennessee,47055,22,0 +2020-06-17,Giles,Tennessee,47055,23,0 +2020-06-18,Giles,Tennessee,47055,24,0 +2020-06-19,Giles,Tennessee,47055,24,0 +2020-06-20,Giles,Tennessee,47055,24,0 +2020-06-21,Giles,Tennessee,47055,24,0 +2020-06-22,Giles,Tennessee,47055,24,0 +2020-06-23,Giles,Tennessee,47055,38,0 +2020-06-24,Giles,Tennessee,47055,42,0 +2020-06-25,Giles,Tennessee,47055,43,0 +2020-06-26,Giles,Tennessee,47055,45,0 +2020-06-27,Giles,Tennessee,47055,45,0 +2020-06-28,Giles,Tennessee,47055,45,0 +2020-06-29,Giles,Tennessee,47055,50,1 +2020-06-30,Giles,Tennessee,47055,50,1 +2020-07-01,Giles,Tennessee,47055,50,1 +2020-07-02,Giles,Tennessee,47055,55,1 +2020-07-03,Giles,Tennessee,47055,56,1 +2020-07-04,Giles,Tennessee,47055,58,1 +2020-07-05,Giles,Tennessee,47055,60,1 +2020-07-06,Giles,Tennessee,47055,62,1 +2020-07-07,Giles,Tennessee,47055,70,1 +2020-07-08,Giles,Tennessee,47055,77,1 +2020-07-09,Giles,Tennessee,47055,80,1 +2020-04-01,Grainger,Tennessee,47057,3,0 +2020-04-02,Grainger,Tennessee,47057,3,0 +2020-04-03,Grainger,Tennessee,47057,3,0 +2020-04-04,Grainger,Tennessee,47057,3,0 +2020-04-05,Grainger,Tennessee,47057,3,0 +2020-04-06,Grainger,Tennessee,47057,3,0 +2020-04-07,Grainger,Tennessee,47057,3,0 +2020-04-08,Grainger,Tennessee,47057,3,0 +2020-04-09,Grainger,Tennessee,47057,3,0 +2020-04-10,Grainger,Tennessee,47057,4,0 +2020-04-11,Grainger,Tennessee,47057,4,0 +2020-04-12,Grainger,Tennessee,47057,4,0 +2020-04-13,Grainger,Tennessee,47057,4,0 +2020-04-14,Grainger,Tennessee,47057,4,0 +2020-04-15,Grainger,Tennessee,47057,4,0 +2020-04-16,Grainger,Tennessee,47057,4,0 +2020-04-17,Grainger,Tennessee,47057,4,0 +2020-04-18,Grainger,Tennessee,47057,4,0 +2020-04-19,Grainger,Tennessee,47057,4,0 +2020-04-20,Grainger,Tennessee,47057,4,0 +2020-04-21,Grainger,Tennessee,47057,4,0 +2020-04-22,Grainger,Tennessee,47057,4,0 +2020-04-23,Grainger,Tennessee,47057,4,0 +2020-04-24,Grainger,Tennessee,47057,4,0 +2020-04-25,Grainger,Tennessee,47057,4,0 +2020-04-26,Grainger,Tennessee,47057,4,0 +2020-04-27,Grainger,Tennessee,47057,6,0 +2020-04-28,Grainger,Tennessee,47057,5,0 +2020-04-29,Grainger,Tennessee,47057,5,0 +2020-04-30,Grainger,Tennessee,47057,5,0 +2020-05-01,Grainger,Tennessee,47057,6,0 +2020-05-02,Grainger,Tennessee,47057,6,0 +2020-05-03,Grainger,Tennessee,47057,6,0 +2020-05-04,Grainger,Tennessee,47057,7,0 +2020-05-05,Grainger,Tennessee,47057,7,0 +2020-05-06,Grainger,Tennessee,47057,6,0 +2020-05-07,Grainger,Tennessee,47057,6,0 +2020-05-08,Grainger,Tennessee,47057,6,0 +2020-05-09,Grainger,Tennessee,47057,6,0 +2020-05-10,Grainger,Tennessee,47057,6,0 +2020-05-11,Grainger,Tennessee,47057,6,0 +2020-05-12,Grainger,Tennessee,47057,6,0 +2020-05-13,Grainger,Tennessee,47057,6,0 +2020-05-14,Grainger,Tennessee,47057,6,0 +2020-05-15,Grainger,Tennessee,47057,6,0 +2020-05-16,Grainger,Tennessee,47057,6,0 +2020-05-17,Grainger,Tennessee,47057,6,0 +2020-05-18,Grainger,Tennessee,47057,6,0 +2020-05-19,Grainger,Tennessee,47057,6,0 +2020-05-20,Grainger,Tennessee,47057,6,0 +2020-05-21,Grainger,Tennessee,47057,6,0 +2020-05-22,Grainger,Tennessee,47057,6,0 +2020-05-23,Grainger,Tennessee,47057,6,0 +2020-05-24,Grainger,Tennessee,47057,6,0 +2020-05-25,Grainger,Tennessee,47057,6,0 +2020-05-26,Grainger,Tennessee,47057,6,0 +2020-05-27,Grainger,Tennessee,47057,6,0 +2020-05-28,Grainger,Tennessee,47057,6,0 +2020-05-29,Grainger,Tennessee,47057,6,0 +2020-05-30,Grainger,Tennessee,47057,8,0 +2020-05-31,Grainger,Tennessee,47057,8,0 +2020-06-01,Grainger,Tennessee,47057,8,0 +2020-06-02,Grainger,Tennessee,47057,11,0 +2020-06-03,Grainger,Tennessee,47057,11,0 +2020-06-04,Grainger,Tennessee,47057,13,0 +2020-06-05,Grainger,Tennessee,47057,15,0 +2020-06-06,Grainger,Tennessee,47057,16,0 +2020-06-07,Grainger,Tennessee,47057,16,0 +2020-06-08,Grainger,Tennessee,47057,15,0 +2020-06-09,Grainger,Tennessee,47057,16,0 +2020-06-10,Grainger,Tennessee,47057,16,0 +2020-06-11,Grainger,Tennessee,47057,16,0 +2020-06-12,Grainger,Tennessee,47057,18,0 +2020-06-13,Grainger,Tennessee,47057,19,0 +2020-06-14,Grainger,Tennessee,47057,19,0 +2020-06-15,Grainger,Tennessee,47057,20,0 +2020-06-16,Grainger,Tennessee,47057,22,0 +2020-06-17,Grainger,Tennessee,47057,22,0 +2020-06-18,Grainger,Tennessee,47057,22,0 +2020-06-19,Grainger,Tennessee,47057,25,0 +2020-06-20,Grainger,Tennessee,47057,25,0 +2020-06-21,Grainger,Tennessee,47057,25,0 +2020-06-22,Grainger,Tennessee,47057,25,0 +2020-06-23,Grainger,Tennessee,47057,25,0 +2020-06-24,Grainger,Tennessee,47057,25,0 +2020-06-25,Grainger,Tennessee,47057,25,0 +2020-06-26,Grainger,Tennessee,47057,27,0 +2020-06-27,Grainger,Tennessee,47057,28,0 +2020-06-28,Grainger,Tennessee,47057,28,0 +2020-06-29,Grainger,Tennessee,47057,32,0 +2020-06-30,Grainger,Tennessee,47057,35,0 +2020-07-01,Grainger,Tennessee,47057,37,0 +2020-07-02,Grainger,Tennessee,47057,39,0 +2020-07-03,Grainger,Tennessee,47057,40,0 +2020-07-04,Grainger,Tennessee,47057,42,0 +2020-07-05,Grainger,Tennessee,47057,42,0 +2020-07-06,Grainger,Tennessee,47057,41,0 +2020-07-07,Grainger,Tennessee,47057,47,0 +2020-07-08,Grainger,Tennessee,47057,48,0 +2020-07-09,Grainger,Tennessee,47057,50,0 +2020-03-20,Greene,Tennessee,47059,1,0 +2020-03-21,Greene,Tennessee,47059,1,0 +2020-03-22,Greene,Tennessee,47059,2,0 +2020-03-23,Greene,Tennessee,47059,2,0 +2020-03-24,Greene,Tennessee,47059,5,0 +2020-03-25,Greene,Tennessee,47059,7,0 +2020-03-26,Greene,Tennessee,47059,8,0 +2020-03-27,Greene,Tennessee,47059,8,0 +2020-03-28,Greene,Tennessee,47059,8,0 +2020-03-29,Greene,Tennessee,47059,9,0 +2020-03-30,Greene,Tennessee,47059,12,0 +2020-03-31,Greene,Tennessee,47059,12,0 +2020-04-01,Greene,Tennessee,47059,15,1 +2020-04-02,Greene,Tennessee,47059,16,1 +2020-04-03,Greene,Tennessee,47059,16,1 +2020-04-04,Greene,Tennessee,47059,16,1 +2020-04-05,Greene,Tennessee,47059,17,1 +2020-04-06,Greene,Tennessee,47059,17,1 +2020-04-07,Greene,Tennessee,47059,18,1 +2020-04-08,Greene,Tennessee,47059,20,1 +2020-04-09,Greene,Tennessee,47059,22,1 +2020-04-10,Greene,Tennessee,47059,25,1 +2020-04-11,Greene,Tennessee,47059,26,1 +2020-04-12,Greene,Tennessee,47059,26,1 +2020-04-13,Greene,Tennessee,47059,27,1 +2020-04-14,Greene,Tennessee,47059,27,2 +2020-04-15,Greene,Tennessee,47059,28,2 +2020-04-16,Greene,Tennessee,47059,29,2 +2020-04-17,Greene,Tennessee,47059,30,2 +2020-04-18,Greene,Tennessee,47059,30,2 +2020-04-19,Greene,Tennessee,47059,30,2 +2020-04-20,Greene,Tennessee,47059,35,2 +2020-04-21,Greene,Tennessee,47059,37,2 +2020-04-22,Greene,Tennessee,47059,37,2 +2020-04-23,Greene,Tennessee,47059,38,2 +2020-04-24,Greene,Tennessee,47059,41,2 +2020-04-25,Greene,Tennessee,47059,41,2 +2020-04-26,Greene,Tennessee,47059,41,2 +2020-04-27,Greene,Tennessee,47059,41,2 +2020-04-28,Greene,Tennessee,47059,42,2 +2020-04-29,Greene,Tennessee,47059,43,2 +2020-04-30,Greene,Tennessee,47059,44,2 +2020-05-01,Greene,Tennessee,47059,44,2 +2020-05-02,Greene,Tennessee,47059,43,2 +2020-05-03,Greene,Tennessee,47059,43,2 +2020-05-04,Greene,Tennessee,47059,43,2 +2020-05-05,Greene,Tennessee,47059,43,2 +2020-05-06,Greene,Tennessee,47059,43,2 +2020-05-07,Greene,Tennessee,47059,43,2 +2020-05-08,Greene,Tennessee,47059,43,2 +2020-05-09,Greene,Tennessee,47059,44,2 +2020-05-10,Greene,Tennessee,47059,46,2 +2020-05-11,Greene,Tennessee,47059,46,2 +2020-05-12,Greene,Tennessee,47059,46,2 +2020-05-13,Greene,Tennessee,47059,47,2 +2020-05-14,Greene,Tennessee,47059,46,2 +2020-05-15,Greene,Tennessee,47059,46,2 +2020-05-16,Greene,Tennessee,47059,46,2 +2020-05-17,Greene,Tennessee,47059,46,2 +2020-05-18,Greene,Tennessee,47059,46,2 +2020-05-19,Greene,Tennessee,47059,46,2 +2020-05-20,Greene,Tennessee,47059,46,2 +2020-05-21,Greene,Tennessee,47059,46,2 +2020-05-22,Greene,Tennessee,47059,47,2 +2020-05-23,Greene,Tennessee,47059,48,2 +2020-05-24,Greene,Tennessee,47059,47,2 +2020-05-25,Greene,Tennessee,47059,47,2 +2020-05-26,Greene,Tennessee,47059,47,2 +2020-05-27,Greene,Tennessee,47059,48,2 +2020-05-28,Greene,Tennessee,47059,48,2 +2020-05-29,Greene,Tennessee,47059,49,2 +2020-05-30,Greene,Tennessee,47059,50,2 +2020-05-31,Greene,Tennessee,47059,50,2 +2020-06-01,Greene,Tennessee,47059,50,2 +2020-06-02,Greene,Tennessee,47059,52,2 +2020-06-03,Greene,Tennessee,47059,52,2 +2020-06-04,Greene,Tennessee,47059,52,2 +2020-06-05,Greene,Tennessee,47059,52,2 +2020-06-06,Greene,Tennessee,47059,52,2 +2020-06-07,Greene,Tennessee,47059,52,2 +2020-06-08,Greene,Tennessee,47059,52,2 +2020-06-09,Greene,Tennessee,47059,52,2 +2020-06-10,Greene,Tennessee,47059,52,2 +2020-06-11,Greene,Tennessee,47059,52,2 +2020-06-12,Greene,Tennessee,47059,53,2 +2020-06-13,Greene,Tennessee,47059,53,2 +2020-06-14,Greene,Tennessee,47059,53,2 +2020-06-15,Greene,Tennessee,47059,53,2 +2020-06-16,Greene,Tennessee,47059,55,2 +2020-06-17,Greene,Tennessee,47059,55,2 +2020-06-18,Greene,Tennessee,47059,56,2 +2020-06-19,Greene,Tennessee,47059,55,2 +2020-06-20,Greene,Tennessee,47059,55,2 +2020-06-21,Greene,Tennessee,47059,55,2 +2020-06-22,Greene,Tennessee,47059,56,2 +2020-06-23,Greene,Tennessee,47059,56,2 +2020-06-24,Greene,Tennessee,47059,58,2 +2020-06-25,Greene,Tennessee,47059,66,2 +2020-06-26,Greene,Tennessee,47059,68,3 +2020-06-27,Greene,Tennessee,47059,74,2 +2020-06-28,Greene,Tennessee,47059,74,2 +2020-06-29,Greene,Tennessee,47059,81,2 +2020-06-30,Greene,Tennessee,47059,85,2 +2020-07-01,Greene,Tennessee,47059,85,2 +2020-07-02,Greene,Tennessee,47059,86,2 +2020-07-03,Greene,Tennessee,47059,95,2 +2020-07-04,Greene,Tennessee,47059,101,2 +2020-07-05,Greene,Tennessee,47059,103,2 +2020-07-06,Greene,Tennessee,47059,114,2 +2020-07-07,Greene,Tennessee,47059,117,2 +2020-07-08,Greene,Tennessee,47059,122,2 +2020-07-09,Greene,Tennessee,47059,123,2 +2020-03-24,Grundy,Tennessee,47061,1,0 +2020-03-25,Grundy,Tennessee,47061,1,0 +2020-03-26,Grundy,Tennessee,47061,1,0 +2020-03-27,Grundy,Tennessee,47061,1,0 +2020-03-28,Grundy,Tennessee,47061,2,0 +2020-03-29,Grundy,Tennessee,47061,2,0 +2020-03-30,Grundy,Tennessee,47061,2,0 +2020-03-31,Grundy,Tennessee,47061,4,0 +2020-04-01,Grundy,Tennessee,47061,6,0 +2020-04-02,Grundy,Tennessee,47061,8,0 +2020-04-03,Grundy,Tennessee,47061,11,0 +2020-04-04,Grundy,Tennessee,47061,12,0 +2020-04-05,Grundy,Tennessee,47061,12,0 +2020-04-06,Grundy,Tennessee,47061,15,0 +2020-04-07,Grundy,Tennessee,47061,16,0 +2020-04-08,Grundy,Tennessee,47061,16,0 +2020-04-09,Grundy,Tennessee,47061,17,0 +2020-04-10,Grundy,Tennessee,47061,19,0 +2020-04-11,Grundy,Tennessee,47061,21,0 +2020-04-12,Grundy,Tennessee,47061,21,0 +2020-04-13,Grundy,Tennessee,47061,23,0 +2020-04-14,Grundy,Tennessee,47061,22,1 +2020-04-15,Grundy,Tennessee,47061,24,1 +2020-04-16,Grundy,Tennessee,47061,25,1 +2020-04-17,Grundy,Tennessee,47061,25,1 +2020-04-18,Grundy,Tennessee,47061,25,1 +2020-04-19,Grundy,Tennessee,47061,25,1 +2020-04-20,Grundy,Tennessee,47061,25,1 +2020-04-21,Grundy,Tennessee,47061,26,1 +2020-04-22,Grundy,Tennessee,47061,26,1 +2020-04-23,Grundy,Tennessee,47061,27,1 +2020-04-24,Grundy,Tennessee,47061,28,1 +2020-04-25,Grundy,Tennessee,47061,28,1 +2020-04-26,Grundy,Tennessee,47061,28,1 +2020-04-27,Grundy,Tennessee,47061,28,1 +2020-04-28,Grundy,Tennessee,47061,28,1 +2020-04-29,Grundy,Tennessee,47061,28,1 +2020-04-30,Grundy,Tennessee,47061,28,1 +2020-05-01,Grundy,Tennessee,47061,28,1 +2020-05-02,Grundy,Tennessee,47061,28,1 +2020-05-03,Grundy,Tennessee,47061,28,1 +2020-05-04,Grundy,Tennessee,47061,28,1 +2020-05-05,Grundy,Tennessee,47061,28,1 +2020-05-06,Grundy,Tennessee,47061,28,1 +2020-05-07,Grundy,Tennessee,47061,30,1 +2020-05-08,Grundy,Tennessee,47061,30,1 +2020-05-09,Grundy,Tennessee,47061,30,1 +2020-05-10,Grundy,Tennessee,47061,30,1 +2020-05-11,Grundy,Tennessee,47061,30,1 +2020-05-12,Grundy,Tennessee,47061,30,1 +2020-05-13,Grundy,Tennessee,47061,30,1 +2020-05-14,Grundy,Tennessee,47061,30,1 +2020-05-15,Grundy,Tennessee,47061,30,1 +2020-05-16,Grundy,Tennessee,47061,30,1 +2020-05-17,Grundy,Tennessee,47061,30,1 +2020-05-18,Grundy,Tennessee,47061,30,1 +2020-05-19,Grundy,Tennessee,47061,31,1 +2020-05-20,Grundy,Tennessee,47061,31,1 +2020-05-21,Grundy,Tennessee,47061,31,1 +2020-05-22,Grundy,Tennessee,47061,31,1 +2020-05-23,Grundy,Tennessee,47061,31,1 +2020-05-24,Grundy,Tennessee,47061,31,1 +2020-05-25,Grundy,Tennessee,47061,32,1 +2020-05-26,Grundy,Tennessee,47061,32,1 +2020-05-27,Grundy,Tennessee,47061,32,1 +2020-05-28,Grundy,Tennessee,47061,32,1 +2020-05-29,Grundy,Tennessee,47061,32,1 +2020-05-30,Grundy,Tennessee,47061,31,1 +2020-05-31,Grundy,Tennessee,47061,31,1 +2020-06-01,Grundy,Tennessee,47061,31,1 +2020-06-02,Grundy,Tennessee,47061,31,1 +2020-06-03,Grundy,Tennessee,47061,31,1 +2020-06-04,Grundy,Tennessee,47061,31,1 +2020-06-05,Grundy,Tennessee,47061,32,1 +2020-06-06,Grundy,Tennessee,47061,32,1 +2020-06-07,Grundy,Tennessee,47061,32,1 +2020-06-08,Grundy,Tennessee,47061,32,1 +2020-06-09,Grundy,Tennessee,47061,32,1 +2020-06-10,Grundy,Tennessee,47061,32,1 +2020-06-11,Grundy,Tennessee,47061,32,1 +2020-06-12,Grundy,Tennessee,47061,32,1 +2020-06-13,Grundy,Tennessee,47061,32,1 +2020-06-14,Grundy,Tennessee,47061,33,1 +2020-06-15,Grundy,Tennessee,47061,36,1 +2020-06-16,Grundy,Tennessee,47061,36,1 +2020-06-17,Grundy,Tennessee,47061,37,1 +2020-06-18,Grundy,Tennessee,47061,37,1 +2020-06-19,Grundy,Tennessee,47061,39,1 +2020-06-20,Grundy,Tennessee,47061,46,1 +2020-06-21,Grundy,Tennessee,47061,46,1 +2020-06-22,Grundy,Tennessee,47061,48,1 +2020-06-23,Grundy,Tennessee,47061,51,1 +2020-06-24,Grundy,Tennessee,47061,55,1 +2020-06-25,Grundy,Tennessee,47061,58,1 +2020-06-26,Grundy,Tennessee,47061,59,1 +2020-06-27,Grundy,Tennessee,47061,59,1 +2020-06-28,Grundy,Tennessee,47061,59,1 +2020-06-29,Grundy,Tennessee,47061,59,1 +2020-06-30,Grundy,Tennessee,47061,58,1 +2020-07-01,Grundy,Tennessee,47061,58,1 +2020-07-02,Grundy,Tennessee,47061,58,1 +2020-07-03,Grundy,Tennessee,47061,59,1 +2020-07-04,Grundy,Tennessee,47061,59,1 +2020-07-05,Grundy,Tennessee,47061,62,1 +2020-07-06,Grundy,Tennessee,47061,61,1 +2020-07-07,Grundy,Tennessee,47061,63,1 +2020-07-08,Grundy,Tennessee,47061,65,2 +2020-07-09,Grundy,Tennessee,47061,65,2 +2020-03-20,Hamblen,Tennessee,47063,1,0 +2020-03-21,Hamblen,Tennessee,47063,2,0 +2020-03-22,Hamblen,Tennessee,47063,2,0 +2020-03-23,Hamblen,Tennessee,47063,2,0 +2020-03-24,Hamblen,Tennessee,47063,2,0 +2020-03-25,Hamblen,Tennessee,47063,2,0 +2020-03-26,Hamblen,Tennessee,47063,2,0 +2020-03-27,Hamblen,Tennessee,47063,2,0 +2020-03-28,Hamblen,Tennessee,47063,2,0 +2020-03-29,Hamblen,Tennessee,47063,2,0 +2020-03-30,Hamblen,Tennessee,47063,2,0 +2020-03-31,Hamblen,Tennessee,47063,2,0 +2020-04-01,Hamblen,Tennessee,47063,3,0 +2020-04-02,Hamblen,Tennessee,47063,3,0 +2020-04-03,Hamblen,Tennessee,47063,3,0 +2020-04-04,Hamblen,Tennessee,47063,4,0 +2020-04-05,Hamblen,Tennessee,47063,4,0 +2020-04-06,Hamblen,Tennessee,47063,4,0 +2020-04-07,Hamblen,Tennessee,47063,4,0 +2020-04-08,Hamblen,Tennessee,47063,4,0 +2020-04-09,Hamblen,Tennessee,47063,4,0 +2020-04-10,Hamblen,Tennessee,47063,4,1 +2020-04-11,Hamblen,Tennessee,47063,4,1 +2020-04-12,Hamblen,Tennessee,47063,4,1 +2020-04-13,Hamblen,Tennessee,47063,6,1 +2020-04-14,Hamblen,Tennessee,47063,6,1 +2020-04-15,Hamblen,Tennessee,47063,7,1 +2020-04-16,Hamblen,Tennessee,47063,7,1 +2020-04-17,Hamblen,Tennessee,47063,7,1 +2020-04-18,Hamblen,Tennessee,47063,7,1 +2020-04-19,Hamblen,Tennessee,47063,8,1 +2020-04-20,Hamblen,Tennessee,47063,8,1 +2020-04-21,Hamblen,Tennessee,47063,13,1 +2020-04-22,Hamblen,Tennessee,47063,13,2 +2020-04-23,Hamblen,Tennessee,47063,14,2 +2020-04-24,Hamblen,Tennessee,47063,14,2 +2020-04-25,Hamblen,Tennessee,47063,14,2 +2020-04-26,Hamblen,Tennessee,47063,15,2 +2020-04-27,Hamblen,Tennessee,47063,16,2 +2020-04-28,Hamblen,Tennessee,47063,17,2 +2020-04-29,Hamblen,Tennessee,47063,17,2 +2020-04-30,Hamblen,Tennessee,47063,18,2 +2020-05-01,Hamblen,Tennessee,47063,18,2 +2020-05-02,Hamblen,Tennessee,47063,18,2 +2020-05-03,Hamblen,Tennessee,47063,19,2 +2020-05-04,Hamblen,Tennessee,47063,22,2 +2020-05-05,Hamblen,Tennessee,47063,23,2 +2020-05-06,Hamblen,Tennessee,47063,19,2 +2020-05-07,Hamblen,Tennessee,47063,20,2 +2020-05-08,Hamblen,Tennessee,47063,21,2 +2020-05-09,Hamblen,Tennessee,47063,21,2 +2020-05-10,Hamblen,Tennessee,47063,21,2 +2020-05-11,Hamblen,Tennessee,47063,21,2 +2020-05-12,Hamblen,Tennessee,47063,23,2 +2020-05-13,Hamblen,Tennessee,47063,25,2 +2020-05-14,Hamblen,Tennessee,47063,25,2 +2020-05-15,Hamblen,Tennessee,47063,24,2 +2020-05-16,Hamblen,Tennessee,47063,24,2 +2020-05-17,Hamblen,Tennessee,47063,25,2 +2020-05-18,Hamblen,Tennessee,47063,25,2 +2020-05-19,Hamblen,Tennessee,47063,24,2 +2020-05-20,Hamblen,Tennessee,47063,24,2 +2020-05-21,Hamblen,Tennessee,47063,24,2 +2020-05-22,Hamblen,Tennessee,47063,25,2 +2020-05-23,Hamblen,Tennessee,47063,25,2 +2020-05-24,Hamblen,Tennessee,47063,26,2 +2020-05-25,Hamblen,Tennessee,47063,26,2 +2020-05-26,Hamblen,Tennessee,47063,26,2 +2020-05-27,Hamblen,Tennessee,47063,30,2 +2020-05-28,Hamblen,Tennessee,47063,30,2 +2020-05-29,Hamblen,Tennessee,47063,34,2 +2020-05-30,Hamblen,Tennessee,47063,36,2 +2020-05-31,Hamblen,Tennessee,47063,36,2 +2020-06-01,Hamblen,Tennessee,47063,36,2 +2020-06-02,Hamblen,Tennessee,47063,43,2 +2020-06-03,Hamblen,Tennessee,47063,43,2 +2020-06-04,Hamblen,Tennessee,47063,42,2 +2020-06-05,Hamblen,Tennessee,47063,44,2 +2020-06-06,Hamblen,Tennessee,47063,45,2 +2020-06-07,Hamblen,Tennessee,47063,45,2 +2020-06-08,Hamblen,Tennessee,47063,58,2 +2020-06-09,Hamblen,Tennessee,47063,62,3 +2020-06-10,Hamblen,Tennessee,47063,63,3 +2020-06-11,Hamblen,Tennessee,47063,65,3 +2020-06-12,Hamblen,Tennessee,47063,75,3 +2020-06-13,Hamblen,Tennessee,47063,74,3 +2020-06-14,Hamblen,Tennessee,47063,75,3 +2020-06-15,Hamblen,Tennessee,47063,75,3 +2020-06-16,Hamblen,Tennessee,47063,88,3 +2020-06-17,Hamblen,Tennessee,47063,92,4 +2020-06-18,Hamblen,Tennessee,47063,91,4 +2020-06-19,Hamblen,Tennessee,47063,96,4 +2020-06-20,Hamblen,Tennessee,47063,109,4 +2020-06-21,Hamblen,Tennessee,47063,117,4 +2020-06-22,Hamblen,Tennessee,47063,121,4 +2020-06-23,Hamblen,Tennessee,47063,134,4 +2020-06-24,Hamblen,Tennessee,47063,156,4 +2020-06-25,Hamblen,Tennessee,47063,162,4 +2020-06-26,Hamblen,Tennessee,47063,170,4 +2020-06-27,Hamblen,Tennessee,47063,181,4 +2020-06-28,Hamblen,Tennessee,47063,181,4 +2020-06-29,Hamblen,Tennessee,47063,204,4 +2020-06-30,Hamblen,Tennessee,47063,220,4 +2020-07-01,Hamblen,Tennessee,47063,263,4 +2020-07-02,Hamblen,Tennessee,47063,296,4 +2020-07-03,Hamblen,Tennessee,47063,314,4 +2020-07-04,Hamblen,Tennessee,47063,317,4 +2020-07-05,Hamblen,Tennessee,47063,340,4 +2020-07-06,Hamblen,Tennessee,47063,343,4 +2020-07-07,Hamblen,Tennessee,47063,374,4 +2020-07-08,Hamblen,Tennessee,47063,397,4 +2020-07-09,Hamblen,Tennessee,47063,422,4 +2020-03-13,Hamilton,Tennessee,47065,1,0 +2020-03-14,Hamilton,Tennessee,47065,1,0 +2020-03-15,Hamilton,Tennessee,47065,1,0 +2020-03-16,Hamilton,Tennessee,47065,1,0 +2020-03-17,Hamilton,Tennessee,47065,1,0 +2020-03-18,Hamilton,Tennessee,47065,1,0 +2020-03-19,Hamilton,Tennessee,47065,1,0 +2020-03-20,Hamilton,Tennessee,47065,5,0 +2020-03-21,Hamilton,Tennessee,47065,7,0 +2020-03-22,Hamilton,Tennessee,47065,8,0 +2020-03-23,Hamilton,Tennessee,47065,8,0 +2020-03-24,Hamilton,Tennessee,47065,8,0 +2020-03-25,Hamilton,Tennessee,47065,15,0 +2020-03-26,Hamilton,Tennessee,47065,28,0 +2020-03-27,Hamilton,Tennessee,47065,30,0 +2020-03-28,Hamilton,Tennessee,47065,35,0 +2020-03-29,Hamilton,Tennessee,47065,35,0 +2020-03-30,Hamilton,Tennessee,47065,40,0 +2020-03-31,Hamilton,Tennessee,47065,48,0 +2020-04-01,Hamilton,Tennessee,47065,50,2 +2020-04-02,Hamilton,Tennessee,47065,61,3 +2020-04-03,Hamilton,Tennessee,47065,67,3 +2020-04-04,Hamilton,Tennessee,47065,71,8 +2020-04-05,Hamilton,Tennessee,47065,79,8 +2020-04-06,Hamilton,Tennessee,47065,83,9 +2020-04-07,Hamilton,Tennessee,47065,95,9 +2020-04-08,Hamilton,Tennessee,47065,95,9 +2020-04-09,Hamilton,Tennessee,47065,98,9 +2020-04-10,Hamilton,Tennessee,47065,102,10 +2020-04-11,Hamilton,Tennessee,47065,105,10 +2020-04-12,Hamilton,Tennessee,47065,105,10 +2020-04-13,Hamilton,Tennessee,47065,109,10 +2020-04-14,Hamilton,Tennessee,47065,110,11 +2020-04-15,Hamilton,Tennessee,47065,110,12 +2020-04-16,Hamilton,Tennessee,47065,110,12 +2020-04-17,Hamilton,Tennessee,47065,115,12 +2020-04-18,Hamilton,Tennessee,47065,116,12 +2020-04-19,Hamilton,Tennessee,47065,116,12 +2020-04-20,Hamilton,Tennessee,47065,118,12 +2020-04-21,Hamilton,Tennessee,47065,124,12 +2020-04-22,Hamilton,Tennessee,47065,127,14 +2020-04-23,Hamilton,Tennessee,47065,129,14 +2020-04-24,Hamilton,Tennessee,47065,133,14 +2020-04-25,Hamilton,Tennessee,47065,140,14 +2020-04-26,Hamilton,Tennessee,47065,141,14 +2020-04-27,Hamilton,Tennessee,47065,146,14 +2020-04-28,Hamilton,Tennessee,47065,149,14 +2020-04-29,Hamilton,Tennessee,47065,152,14 +2020-04-30,Hamilton,Tennessee,47065,156,14 +2020-05-01,Hamilton,Tennessee,47065,160,14 +2020-05-02,Hamilton,Tennessee,47065,168,14 +2020-05-03,Hamilton,Tennessee,47065,172,14 +2020-05-04,Hamilton,Tennessee,47065,180,14 +2020-05-05,Hamilton,Tennessee,47065,184,14 +2020-05-06,Hamilton,Tennessee,47065,196,14 +2020-05-07,Hamilton,Tennessee,47065,211,14 +2020-05-08,Hamilton,Tennessee,47065,229,13 +2020-05-09,Hamilton,Tennessee,47065,232,13 +2020-05-10,Hamilton,Tennessee,47065,233,13 +2020-05-11,Hamilton,Tennessee,47065,240,13 +2020-05-12,Hamilton,Tennessee,47065,258,14 +2020-05-13,Hamilton,Tennessee,47065,286,13 +2020-05-14,Hamilton,Tennessee,47065,319,13 +2020-05-15,Hamilton,Tennessee,47065,332,13 +2020-05-16,Hamilton,Tennessee,47065,354,13 +2020-05-17,Hamilton,Tennessee,47065,368,13 +2020-05-18,Hamilton,Tennessee,47065,376,13 +2020-05-19,Hamilton,Tennessee,47065,404,13 +2020-05-20,Hamilton,Tennessee,47065,447,13 +2020-05-21,Hamilton,Tennessee,47065,487,13 +2020-05-22,Hamilton,Tennessee,47065,531,13 +2020-05-23,Hamilton,Tennessee,47065,566,14 +2020-05-24,Hamilton,Tennessee,47065,640,14 +2020-05-25,Hamilton,Tennessee,47065,694,14 +2020-05-26,Hamilton,Tennessee,47065,717,15 +2020-05-27,Hamilton,Tennessee,47065,772,15 +2020-05-28,Hamilton,Tennessee,47065,843,15 +2020-05-29,Hamilton,Tennessee,47065,939,15 +2020-05-30,Hamilton,Tennessee,47065,999,15 +2020-05-31,Hamilton,Tennessee,47065,1083,15 +2020-06-01,Hamilton,Tennessee,47065,1132,15 +2020-06-02,Hamilton,Tennessee,47065,1178,17 +2020-06-03,Hamilton,Tennessee,47065,1219,18 +2020-06-04,Hamilton,Tennessee,47065,1275,19 +2020-06-05,Hamilton,Tennessee,47065,1381,19 +2020-06-06,Hamilton,Tennessee,47065,1423,19 +2020-06-07,Hamilton,Tennessee,47065,1458,19 +2020-06-08,Hamilton,Tennessee,47065,1486,19 +2020-06-09,Hamilton,Tennessee,47065,1556,19 +2020-06-10,Hamilton,Tennessee,47065,1645,19 +2020-06-11,Hamilton,Tennessee,47065,1692,19 +2020-06-12,Hamilton,Tennessee,47065,1751,20 +2020-06-13,Hamilton,Tennessee,47065,1788,20 +2020-06-14,Hamilton,Tennessee,47065,1842,20 +2020-06-15,Hamilton,Tennessee,47065,1889,22 +2020-06-16,Hamilton,Tennessee,47065,1941,22 +2020-06-17,Hamilton,Tennessee,47065,1988,24 +2020-06-18,Hamilton,Tennessee,47065,2065,25 +2020-06-19,Hamilton,Tennessee,47065,2102,25 +2020-06-20,Hamilton,Tennessee,47065,2121,25 +2020-06-21,Hamilton,Tennessee,47065,2138,26 +2020-06-22,Hamilton,Tennessee,47065,2174,28 +2020-06-23,Hamilton,Tennessee,47065,2209,29 +2020-06-24,Hamilton,Tennessee,47065,2277,29 +2020-06-25,Hamilton,Tennessee,47065,2322,29 +2020-06-26,Hamilton,Tennessee,47065,2356,29 +2020-06-27,Hamilton,Tennessee,47065,2423,29 +2020-06-28,Hamilton,Tennessee,47065,2423,29 +2020-06-29,Hamilton,Tennessee,47065,2469,30 +2020-06-30,Hamilton,Tennessee,47065,2525,30 +2020-07-01,Hamilton,Tennessee,47065,2643,30 +2020-07-02,Hamilton,Tennessee,47065,2704,30 +2020-07-03,Hamilton,Tennessee,47065,2782,33 +2020-07-04,Hamilton,Tennessee,47065,2818,35 +2020-07-05,Hamilton,Tennessee,47065,2871,35 +2020-07-06,Hamilton,Tennessee,47065,2909,35 +2020-07-07,Hamilton,Tennessee,47065,2982,36 +2020-07-08,Hamilton,Tennessee,47065,3076,36 +2020-07-09,Hamilton,Tennessee,47065,3180,37 +2020-05-19,Hancock,Tennessee,47067,1,0 +2020-05-20,Hancock,Tennessee,47067,1,0 +2020-05-21,Hancock,Tennessee,47067,1,0 +2020-05-22,Hancock,Tennessee,47067,1,0 +2020-05-23,Hancock,Tennessee,47067,1,0 +2020-05-24,Hancock,Tennessee,47067,1,0 +2020-05-25,Hancock,Tennessee,47067,1,0 +2020-05-26,Hancock,Tennessee,47067,1,0 +2020-05-27,Hancock,Tennessee,47067,1,0 +2020-05-28,Hancock,Tennessee,47067,1,0 +2020-05-29,Hancock,Tennessee,47067,1,0 +2020-05-30,Hancock,Tennessee,47067,1,0 +2020-05-31,Hancock,Tennessee,47067,1,0 +2020-06-01,Hancock,Tennessee,47067,1,0 +2020-06-02,Hancock,Tennessee,47067,1,0 +2020-06-03,Hancock,Tennessee,47067,1,0 +2020-06-04,Hancock,Tennessee,47067,1,0 +2020-06-05,Hancock,Tennessee,47067,1,0 +2020-06-06,Hancock,Tennessee,47067,1,0 +2020-06-07,Hancock,Tennessee,47067,2,0 +2020-06-08,Hancock,Tennessee,47067,2,0 +2020-06-09,Hancock,Tennessee,47067,1,0 +2020-06-10,Hancock,Tennessee,47067,1,0 +2020-06-11,Hancock,Tennessee,47067,1,0 +2020-06-12,Hancock,Tennessee,47067,1,0 +2020-06-13,Hancock,Tennessee,47067,1,0 +2020-06-14,Hancock,Tennessee,47067,1,0 +2020-06-15,Hancock,Tennessee,47067,1,0 +2020-06-16,Hancock,Tennessee,47067,1,0 +2020-06-17,Hancock,Tennessee,47067,1,0 +2020-06-18,Hancock,Tennessee,47067,1,0 +2020-06-19,Hancock,Tennessee,47067,2,0 +2020-06-20,Hancock,Tennessee,47067,3,0 +2020-06-21,Hancock,Tennessee,47067,3,0 +2020-06-22,Hancock,Tennessee,47067,3,0 +2020-06-23,Hancock,Tennessee,47067,3,0 +2020-06-24,Hancock,Tennessee,47067,3,0 +2020-06-25,Hancock,Tennessee,47067,3,0 +2020-06-26,Hancock,Tennessee,47067,3,0 +2020-06-27,Hancock,Tennessee,47067,3,0 +2020-06-28,Hancock,Tennessee,47067,3,0 +2020-06-29,Hancock,Tennessee,47067,3,0 +2020-06-30,Hancock,Tennessee,47067,3,0 +2020-07-01,Hancock,Tennessee,47067,3,0 +2020-07-02,Hancock,Tennessee,47067,3,0 +2020-07-03,Hancock,Tennessee,47067,3,0 +2020-07-04,Hancock,Tennessee,47067,4,0 +2020-07-05,Hancock,Tennessee,47067,6,0 +2020-07-06,Hancock,Tennessee,47067,6,0 +2020-07-07,Hancock,Tennessee,47067,8,0 +2020-07-08,Hancock,Tennessee,47067,9,0 +2020-07-09,Hancock,Tennessee,47067,10,0 +2020-03-28,Hardeman,Tennessee,47069,1,0 +2020-03-29,Hardeman,Tennessee,47069,1,0 +2020-03-30,Hardeman,Tennessee,47069,1,0 +2020-03-31,Hardeman,Tennessee,47069,1,0 +2020-04-01,Hardeman,Tennessee,47069,4,0 +2020-04-02,Hardeman,Tennessee,47069,4,0 +2020-04-03,Hardeman,Tennessee,47069,5,0 +2020-04-04,Hardeman,Tennessee,47069,6,0 +2020-04-05,Hardeman,Tennessee,47069,6,0 +2020-04-06,Hardeman,Tennessee,47069,6,0 +2020-04-07,Hardeman,Tennessee,47069,6,0 +2020-04-08,Hardeman,Tennessee,47069,6,0 +2020-04-09,Hardeman,Tennessee,47069,6,0 +2020-04-10,Hardeman,Tennessee,47069,7,0 +2020-04-11,Hardeman,Tennessee,47069,7,0 +2020-04-12,Hardeman,Tennessee,47069,7,0 +2020-04-13,Hardeman,Tennessee,47069,7,0 +2020-04-14,Hardeman,Tennessee,47069,7,0 +2020-04-15,Hardeman,Tennessee,47069,7,0 +2020-04-16,Hardeman,Tennessee,47069,7,0 +2020-04-17,Hardeman,Tennessee,47069,7,0 +2020-04-18,Hardeman,Tennessee,47069,7,0 +2020-04-19,Hardeman,Tennessee,47069,7,0 +2020-04-20,Hardeman,Tennessee,47069,7,0 +2020-04-21,Hardeman,Tennessee,47069,8,0 +2020-04-22,Hardeman,Tennessee,47069,8,0 +2020-04-23,Hardeman,Tennessee,47069,8,0 +2020-04-24,Hardeman,Tennessee,47069,9,0 +2020-04-25,Hardeman,Tennessee,47069,11,0 +2020-04-26,Hardeman,Tennessee,47069,11,0 +2020-04-27,Hardeman,Tennessee,47069,11,0 +2020-04-28,Hardeman,Tennessee,47069,11,0 +2020-04-29,Hardeman,Tennessee,47069,11,0 +2020-04-30,Hardeman,Tennessee,47069,14,0 +2020-05-01,Hardeman,Tennessee,47069,16,0 +2020-05-02,Hardeman,Tennessee,47069,17,0 +2020-05-03,Hardeman,Tennessee,47069,19,0 +2020-05-04,Hardeman,Tennessee,47069,20,0 +2020-05-05,Hardeman,Tennessee,47069,20,0 +2020-05-06,Hardeman,Tennessee,47069,22,0 +2020-05-07,Hardeman,Tennessee,47069,23,0 +2020-05-08,Hardeman,Tennessee,47069,64,0 +2020-05-09,Hardeman,Tennessee,47069,116,0 +2020-05-10,Hardeman,Tennessee,47069,151,0 +2020-05-11,Hardeman,Tennessee,47069,171,0 +2020-05-12,Hardeman,Tennessee,47069,170,0 +2020-05-13,Hardeman,Tennessee,47069,177,0 +2020-05-14,Hardeman,Tennessee,47069,179,0 +2020-05-15,Hardeman,Tennessee,47069,180,0 +2020-05-16,Hardeman,Tennessee,47069,183,0 +2020-05-17,Hardeman,Tennessee,47069,182,0 +2020-05-18,Hardeman,Tennessee,47069,183,0 +2020-05-19,Hardeman,Tennessee,47069,183,0 +2020-05-20,Hardeman,Tennessee,47069,183,0 +2020-05-21,Hardeman,Tennessee,47069,184,0 +2020-05-22,Hardeman,Tennessee,47069,187,0 +2020-05-23,Hardeman,Tennessee,47069,188,0 +2020-05-24,Hardeman,Tennessee,47069,189,0 +2020-05-25,Hardeman,Tennessee,47069,188,0 +2020-05-26,Hardeman,Tennessee,47069,189,0 +2020-05-27,Hardeman,Tennessee,47069,192,0 +2020-05-28,Hardeman,Tennessee,47069,194,0 +2020-05-29,Hardeman,Tennessee,47069,195,0 +2020-05-30,Hardeman,Tennessee,47069,196,0 +2020-05-31,Hardeman,Tennessee,47069,196,0 +2020-06-01,Hardeman,Tennessee,47069,196,0 +2020-06-02,Hardeman,Tennessee,47069,202,0 +2020-06-03,Hardeman,Tennessee,47069,201,0 +2020-06-04,Hardeman,Tennessee,47069,202,0 +2020-06-05,Hardeman,Tennessee,47069,204,0 +2020-06-06,Hardeman,Tennessee,47069,208,0 +2020-06-07,Hardeman,Tennessee,47069,211,0 +2020-06-08,Hardeman,Tennessee,47069,211,0 +2020-06-09,Hardeman,Tennessee,47069,212,0 +2020-06-10,Hardeman,Tennessee,47069,213,0 +2020-06-11,Hardeman,Tennessee,47069,214,0 +2020-06-12,Hardeman,Tennessee,47069,215,0 +2020-06-13,Hardeman,Tennessee,47069,215,0 +2020-06-14,Hardeman,Tennessee,47069,217,0 +2020-06-15,Hardeman,Tennessee,47069,220,0 +2020-06-16,Hardeman,Tennessee,47069,225,0 +2020-06-17,Hardeman,Tennessee,47069,226,0 +2020-06-18,Hardeman,Tennessee,47069,226,0 +2020-06-19,Hardeman,Tennessee,47069,252,1 +2020-06-20,Hardeman,Tennessee,47069,253,1 +2020-06-21,Hardeman,Tennessee,47069,255,1 +2020-06-22,Hardeman,Tennessee,47069,257,1 +2020-06-23,Hardeman,Tennessee,47069,257,1 +2020-06-24,Hardeman,Tennessee,47069,260,1 +2020-06-25,Hardeman,Tennessee,47069,269,1 +2020-06-26,Hardeman,Tennessee,47069,273,1 +2020-06-27,Hardeman,Tennessee,47069,276,1 +2020-06-28,Hardeman,Tennessee,47069,276,1 +2020-06-29,Hardeman,Tennessee,47069,287,1 +2020-06-30,Hardeman,Tennessee,47069,299,1 +2020-07-01,Hardeman,Tennessee,47069,304,1 +2020-07-02,Hardeman,Tennessee,47069,314,3 +2020-07-03,Hardeman,Tennessee,47069,325,5 +2020-07-04,Hardeman,Tennessee,47069,329,5 +2020-07-05,Hardeman,Tennessee,47069,343,4 +2020-07-06,Hardeman,Tennessee,47069,352,4 +2020-07-07,Hardeman,Tennessee,47069,357,4 +2020-07-08,Hardeman,Tennessee,47069,374,4 +2020-07-09,Hardeman,Tennessee,47069,381,4 +2020-03-24,Hardin,Tennessee,47071,1,0 +2020-03-25,Hardin,Tennessee,47071,1,0 +2020-03-26,Hardin,Tennessee,47071,1,0 +2020-03-27,Hardin,Tennessee,47071,1,0 +2020-03-28,Hardin,Tennessee,47071,1,0 +2020-03-29,Hardin,Tennessee,47071,1,0 +2020-03-30,Hardin,Tennessee,47071,1,0 +2020-03-31,Hardin,Tennessee,47071,1,0 +2020-04-01,Hardin,Tennessee,47071,2,0 +2020-04-02,Hardin,Tennessee,47071,2,0 +2020-04-03,Hardin,Tennessee,47071,2,0 +2020-04-04,Hardin,Tennessee,47071,2,0 +2020-04-05,Hardin,Tennessee,47071,2,0 +2020-04-06,Hardin,Tennessee,47071,2,0 +2020-04-07,Hardin,Tennessee,47071,2,0 +2020-04-08,Hardin,Tennessee,47071,2,0 +2020-04-09,Hardin,Tennessee,47071,2,0 +2020-04-10,Hardin,Tennessee,47071,2,0 +2020-04-11,Hardin,Tennessee,47071,2,0 +2020-04-12,Hardin,Tennessee,47071,2,0 +2020-04-13,Hardin,Tennessee,47071,2,0 +2020-04-14,Hardin,Tennessee,47071,2,0 +2020-04-15,Hardin,Tennessee,47071,4,0 +2020-04-16,Hardin,Tennessee,47071,4,0 +2020-04-17,Hardin,Tennessee,47071,4,0 +2020-04-18,Hardin,Tennessee,47071,4,0 +2020-04-19,Hardin,Tennessee,47071,4,0 +2020-04-20,Hardin,Tennessee,47071,4,0 +2020-04-21,Hardin,Tennessee,47071,4,0 +2020-04-22,Hardin,Tennessee,47071,4,0 +2020-04-23,Hardin,Tennessee,47071,4,0 +2020-04-24,Hardin,Tennessee,47071,4,0 +2020-04-25,Hardin,Tennessee,47071,5,0 +2020-04-26,Hardin,Tennessee,47071,5,0 +2020-04-27,Hardin,Tennessee,47071,5,0 +2020-04-28,Hardin,Tennessee,47071,5,0 +2020-04-29,Hardin,Tennessee,47071,5,0 +2020-04-30,Hardin,Tennessee,47071,5,0 +2020-05-01,Hardin,Tennessee,47071,5,0 +2020-05-02,Hardin,Tennessee,47071,5,0 +2020-05-03,Hardin,Tennessee,47071,7,0 +2020-05-04,Hardin,Tennessee,47071,7,0 +2020-05-05,Hardin,Tennessee,47071,7,0 +2020-05-06,Hardin,Tennessee,47071,7,0 +2020-05-07,Hardin,Tennessee,47071,7,0 +2020-05-08,Hardin,Tennessee,47071,7,0 +2020-05-09,Hardin,Tennessee,47071,7,0 +2020-05-10,Hardin,Tennessee,47071,8,0 +2020-05-11,Hardin,Tennessee,47071,8,0 +2020-05-12,Hardin,Tennessee,47071,8,0 +2020-05-13,Hardin,Tennessee,47071,8,0 +2020-05-14,Hardin,Tennessee,47071,9,0 +2020-05-15,Hardin,Tennessee,47071,9,0 +2020-05-16,Hardin,Tennessee,47071,9,0 +2020-05-17,Hardin,Tennessee,47071,9,0 +2020-05-18,Hardin,Tennessee,47071,10,0 +2020-05-19,Hardin,Tennessee,47071,10,1 +2020-05-20,Hardin,Tennessee,47071,10,1 +2020-05-21,Hardin,Tennessee,47071,10,2 +2020-05-22,Hardin,Tennessee,47071,10,2 +2020-05-23,Hardin,Tennessee,47071,11,2 +2020-05-24,Hardin,Tennessee,47071,11,2 +2020-05-25,Hardin,Tennessee,47071,11,2 +2020-05-26,Hardin,Tennessee,47071,11,2 +2020-05-27,Hardin,Tennessee,47071,11,2 +2020-05-28,Hardin,Tennessee,47071,11,2 +2020-05-29,Hardin,Tennessee,47071,12,2 +2020-05-30,Hardin,Tennessee,47071,15,2 +2020-05-31,Hardin,Tennessee,47071,15,2 +2020-06-01,Hardin,Tennessee,47071,15,2 +2020-06-02,Hardin,Tennessee,47071,18,2 +2020-06-03,Hardin,Tennessee,47071,22,2 +2020-06-04,Hardin,Tennessee,47071,22,2 +2020-06-05,Hardin,Tennessee,47071,22,2 +2020-06-06,Hardin,Tennessee,47071,23,2 +2020-06-07,Hardin,Tennessee,47071,31,2 +2020-06-08,Hardin,Tennessee,47071,29,2 +2020-06-09,Hardin,Tennessee,47071,30,2 +2020-06-10,Hardin,Tennessee,47071,31,2 +2020-06-11,Hardin,Tennessee,47071,30,3 +2020-06-12,Hardin,Tennessee,47071,30,3 +2020-06-13,Hardin,Tennessee,47071,31,3 +2020-06-14,Hardin,Tennessee,47071,33,4 +2020-06-15,Hardin,Tennessee,47071,37,4 +2020-06-16,Hardin,Tennessee,47071,40,5 +2020-06-17,Hardin,Tennessee,47071,44,5 +2020-06-18,Hardin,Tennessee,47071,46,5 +2020-06-19,Hardin,Tennessee,47071,51,5 +2020-06-20,Hardin,Tennessee,47071,53,5 +2020-06-21,Hardin,Tennessee,47071,57,5 +2020-06-22,Hardin,Tennessee,47071,69,5 +2020-06-23,Hardin,Tennessee,47071,71,5 +2020-06-24,Hardin,Tennessee,47071,76,5 +2020-06-25,Hardin,Tennessee,47071,80,5 +2020-06-26,Hardin,Tennessee,47071,82,5 +2020-06-27,Hardin,Tennessee,47071,89,5 +2020-06-28,Hardin,Tennessee,47071,89,5 +2020-06-29,Hardin,Tennessee,47071,89,5 +2020-06-30,Hardin,Tennessee,47071,93,5 +2020-07-01,Hardin,Tennessee,47071,100,5 +2020-07-02,Hardin,Tennessee,47071,103,7 +2020-07-03,Hardin,Tennessee,47071,104,7 +2020-07-04,Hardin,Tennessee,47071,109,7 +2020-07-05,Hardin,Tennessee,47071,108,7 +2020-07-06,Hardin,Tennessee,47071,109,7 +2020-07-07,Hardin,Tennessee,47071,115,7 +2020-07-08,Hardin,Tennessee,47071,119,7 +2020-07-09,Hardin,Tennessee,47071,120,7 +2020-03-25,Hawkins,Tennessee,47073,1,0 +2020-03-26,Hawkins,Tennessee,47073,1,0 +2020-03-27,Hawkins,Tennessee,47073,2,0 +2020-03-28,Hawkins,Tennessee,47073,2,0 +2020-03-29,Hawkins,Tennessee,47073,2,0 +2020-03-30,Hawkins,Tennessee,47073,4,0 +2020-03-31,Hawkins,Tennessee,47073,4,0 +2020-04-01,Hawkins,Tennessee,47073,5,0 +2020-04-02,Hawkins,Tennessee,47073,7,0 +2020-04-03,Hawkins,Tennessee,47073,8,1 +2020-04-04,Hawkins,Tennessee,47073,9,1 +2020-04-05,Hawkins,Tennessee,47073,10,1 +2020-04-06,Hawkins,Tennessee,47073,14,1 +2020-04-07,Hawkins,Tennessee,47073,16,1 +2020-04-08,Hawkins,Tennessee,47073,18,1 +2020-04-09,Hawkins,Tennessee,47073,21,1 +2020-04-10,Hawkins,Tennessee,47073,22,1 +2020-04-11,Hawkins,Tennessee,47073,22,2 +2020-04-12,Hawkins,Tennessee,47073,22,2 +2020-04-13,Hawkins,Tennessee,47073,24,2 +2020-04-14,Hawkins,Tennessee,47073,24,2 +2020-04-15,Hawkins,Tennessee,47073,26,2 +2020-04-16,Hawkins,Tennessee,47073,26,2 +2020-04-17,Hawkins,Tennessee,47073,27,2 +2020-04-18,Hawkins,Tennessee,47073,27,2 +2020-04-19,Hawkins,Tennessee,47073,27,2 +2020-04-20,Hawkins,Tennessee,47073,27,2 +2020-04-21,Hawkins,Tennessee,47073,28,2 +2020-04-22,Hawkins,Tennessee,47073,28,2 +2020-04-23,Hawkins,Tennessee,47073,28,2 +2020-04-24,Hawkins,Tennessee,47073,28,2 +2020-04-25,Hawkins,Tennessee,47073,29,2 +2020-04-26,Hawkins,Tennessee,47073,29,2 +2020-04-27,Hawkins,Tennessee,47073,29,2 +2020-04-28,Hawkins,Tennessee,47073,30,2 +2020-04-29,Hawkins,Tennessee,47073,30,2 +2020-04-30,Hawkins,Tennessee,47073,30,2 +2020-05-01,Hawkins,Tennessee,47073,30,2 +2020-05-02,Hawkins,Tennessee,47073,30,2 +2020-05-03,Hawkins,Tennessee,47073,30,2 +2020-05-04,Hawkins,Tennessee,47073,31,2 +2020-05-05,Hawkins,Tennessee,47073,31,2 +2020-05-06,Hawkins,Tennessee,47073,31,2 +2020-05-07,Hawkins,Tennessee,47073,31,2 +2020-05-08,Hawkins,Tennessee,47073,31,2 +2020-05-09,Hawkins,Tennessee,47073,31,2 +2020-05-10,Hawkins,Tennessee,47073,31,2 +2020-05-11,Hawkins,Tennessee,47073,31,2 +2020-05-12,Hawkins,Tennessee,47073,32,2 +2020-05-13,Hawkins,Tennessee,47073,31,2 +2020-05-14,Hawkins,Tennessee,47073,32,2 +2020-05-15,Hawkins,Tennessee,47073,32,2 +2020-05-16,Hawkins,Tennessee,47073,31,2 +2020-05-17,Hawkins,Tennessee,47073,31,2 +2020-05-18,Hawkins,Tennessee,47073,31,2 +2020-05-19,Hawkins,Tennessee,47073,31,2 +2020-05-20,Hawkins,Tennessee,47073,31,2 +2020-05-21,Hawkins,Tennessee,47073,31,2 +2020-05-22,Hawkins,Tennessee,47073,31,2 +2020-05-23,Hawkins,Tennessee,47073,31,2 +2020-05-24,Hawkins,Tennessee,47073,31,2 +2020-05-25,Hawkins,Tennessee,47073,31,2 +2020-05-26,Hawkins,Tennessee,47073,31,2 +2020-05-27,Hawkins,Tennessee,47073,31,2 +2020-05-28,Hawkins,Tennessee,47073,31,2 +2020-05-29,Hawkins,Tennessee,47073,32,2 +2020-05-30,Hawkins,Tennessee,47073,33,2 +2020-05-31,Hawkins,Tennessee,47073,33,2 +2020-06-01,Hawkins,Tennessee,47073,33,2 +2020-06-02,Hawkins,Tennessee,47073,34,2 +2020-06-03,Hawkins,Tennessee,47073,34,2 +2020-06-04,Hawkins,Tennessee,47073,34,2 +2020-06-05,Hawkins,Tennessee,47073,34,2 +2020-06-06,Hawkins,Tennessee,47073,34,2 +2020-06-07,Hawkins,Tennessee,47073,34,2 +2020-06-08,Hawkins,Tennessee,47073,34,2 +2020-06-09,Hawkins,Tennessee,47073,34,2 +2020-06-10,Hawkins,Tennessee,47073,34,2 +2020-06-11,Hawkins,Tennessee,47073,34,2 +2020-06-12,Hawkins,Tennessee,47073,34,2 +2020-06-13,Hawkins,Tennessee,47073,34,2 +2020-06-14,Hawkins,Tennessee,47073,34,2 +2020-06-15,Hawkins,Tennessee,47073,34,2 +2020-06-16,Hawkins,Tennessee,47073,35,2 +2020-06-17,Hawkins,Tennessee,47073,37,2 +2020-06-18,Hawkins,Tennessee,47073,37,2 +2020-06-19,Hawkins,Tennessee,47073,38,2 +2020-06-20,Hawkins,Tennessee,47073,38,2 +2020-06-21,Hawkins,Tennessee,47073,39,2 +2020-06-22,Hawkins,Tennessee,47073,40,2 +2020-06-23,Hawkins,Tennessee,47073,42,2 +2020-06-24,Hawkins,Tennessee,47073,42,2 +2020-06-25,Hawkins,Tennessee,47073,43,2 +2020-06-26,Hawkins,Tennessee,47073,46,2 +2020-06-27,Hawkins,Tennessee,47073,45,2 +2020-06-28,Hawkins,Tennessee,47073,45,2 +2020-06-29,Hawkins,Tennessee,47073,49,2 +2020-06-30,Hawkins,Tennessee,47073,51,2 +2020-07-01,Hawkins,Tennessee,47073,51,2 +2020-07-02,Hawkins,Tennessee,47073,55,2 +2020-07-03,Hawkins,Tennessee,47073,57,2 +2020-07-04,Hawkins,Tennessee,47073,56,2 +2020-07-05,Hawkins,Tennessee,47073,57,2 +2020-07-06,Hawkins,Tennessee,47073,62,2 +2020-07-07,Hawkins,Tennessee,47073,64,2 +2020-07-08,Hawkins,Tennessee,47073,66,2 +2020-07-09,Hawkins,Tennessee,47073,79,2 +2020-03-29,Haywood,Tennessee,47075,2,0 +2020-03-30,Haywood,Tennessee,47075,2,0 +2020-03-31,Haywood,Tennessee,47075,2,0 +2020-04-01,Haywood,Tennessee,47075,2,0 +2020-04-02,Haywood,Tennessee,47075,2,0 +2020-04-03,Haywood,Tennessee,47075,2,0 +2020-04-04,Haywood,Tennessee,47075,2,0 +2020-04-05,Haywood,Tennessee,47075,3,0 +2020-04-06,Haywood,Tennessee,47075,5,0 +2020-04-07,Haywood,Tennessee,47075,6,0 +2020-04-08,Haywood,Tennessee,47075,7,0 +2020-04-09,Haywood,Tennessee,47075,9,0 +2020-04-10,Haywood,Tennessee,47075,13,1 +2020-04-11,Haywood,Tennessee,47075,13,1 +2020-04-12,Haywood,Tennessee,47075,13,1 +2020-04-13,Haywood,Tennessee,47075,12,1 +2020-04-14,Haywood,Tennessee,47075,12,1 +2020-04-15,Haywood,Tennessee,47075,12,1 +2020-04-16,Haywood,Tennessee,47075,12,1 +2020-04-17,Haywood,Tennessee,47075,12,1 +2020-04-18,Haywood,Tennessee,47075,13,1 +2020-04-19,Haywood,Tennessee,47075,13,1 +2020-04-20,Haywood,Tennessee,47075,13,1 +2020-04-21,Haywood,Tennessee,47075,13,1 +2020-04-22,Haywood,Tennessee,47075,14,1 +2020-04-23,Haywood,Tennessee,47075,14,1 +2020-04-24,Haywood,Tennessee,47075,15,1 +2020-04-25,Haywood,Tennessee,47075,17,1 +2020-04-26,Haywood,Tennessee,47075,18,1 +2020-04-27,Haywood,Tennessee,47075,19,1 +2020-04-28,Haywood,Tennessee,47075,19,1 +2020-04-29,Haywood,Tennessee,47075,19,1 +2020-04-30,Haywood,Tennessee,47075,20,1 +2020-05-01,Haywood,Tennessee,47075,23,1 +2020-05-02,Haywood,Tennessee,47075,23,1 +2020-05-03,Haywood,Tennessee,47075,25,1 +2020-05-04,Haywood,Tennessee,47075,27,1 +2020-05-05,Haywood,Tennessee,47075,27,1 +2020-05-06,Haywood,Tennessee,47075,26,1 +2020-05-07,Haywood,Tennessee,47075,26,1 +2020-05-08,Haywood,Tennessee,47075,26,1 +2020-05-09,Haywood,Tennessee,47075,26,1 +2020-05-10,Haywood,Tennessee,47075,26,1 +2020-05-11,Haywood,Tennessee,47075,26,1 +2020-05-12,Haywood,Tennessee,47075,28,1 +2020-05-13,Haywood,Tennessee,47075,28,1 +2020-05-14,Haywood,Tennessee,47075,29,1 +2020-05-15,Haywood,Tennessee,47075,29,1 +2020-05-16,Haywood,Tennessee,47075,29,1 +2020-05-17,Haywood,Tennessee,47075,29,1 +2020-05-18,Haywood,Tennessee,47075,29,1 +2020-05-19,Haywood,Tennessee,47075,29,1 +2020-05-20,Haywood,Tennessee,47075,29,1 +2020-05-21,Haywood,Tennessee,47075,29,1 +2020-05-22,Haywood,Tennessee,47075,29,1 +2020-05-23,Haywood,Tennessee,47075,29,2 +2020-05-24,Haywood,Tennessee,47075,29,2 +2020-05-25,Haywood,Tennessee,47075,29,2 +2020-05-26,Haywood,Tennessee,47075,29,2 +2020-05-27,Haywood,Tennessee,47075,30,2 +2020-05-28,Haywood,Tennessee,47075,30,2 +2020-05-29,Haywood,Tennessee,47075,30,2 +2020-05-30,Haywood,Tennessee,47075,31,2 +2020-05-31,Haywood,Tennessee,47075,31,2 +2020-06-01,Haywood,Tennessee,47075,31,2 +2020-06-02,Haywood,Tennessee,47075,32,2 +2020-06-03,Haywood,Tennessee,47075,33,2 +2020-06-04,Haywood,Tennessee,47075,33,2 +2020-06-05,Haywood,Tennessee,47075,34,2 +2020-06-06,Haywood,Tennessee,47075,34,2 +2020-06-07,Haywood,Tennessee,47075,36,2 +2020-06-08,Haywood,Tennessee,47075,34,2 +2020-06-09,Haywood,Tennessee,47075,35,2 +2020-06-10,Haywood,Tennessee,47075,35,2 +2020-06-11,Haywood,Tennessee,47075,35,2 +2020-06-12,Haywood,Tennessee,47075,36,2 +2020-06-13,Haywood,Tennessee,47075,36,2 +2020-06-14,Haywood,Tennessee,47075,37,2 +2020-06-15,Haywood,Tennessee,47075,37,2 +2020-06-16,Haywood,Tennessee,47075,37,2 +2020-06-17,Haywood,Tennessee,47075,39,2 +2020-06-18,Haywood,Tennessee,47075,39,2 +2020-06-19,Haywood,Tennessee,47075,40,2 +2020-06-20,Haywood,Tennessee,47075,41,2 +2020-06-21,Haywood,Tennessee,47075,45,2 +2020-06-22,Haywood,Tennessee,47075,48,2 +2020-06-23,Haywood,Tennessee,47075,54,2 +2020-06-24,Haywood,Tennessee,47075,57,2 +2020-06-25,Haywood,Tennessee,47075,59,2 +2020-06-26,Haywood,Tennessee,47075,59,2 +2020-06-27,Haywood,Tennessee,47075,62,2 +2020-06-28,Haywood,Tennessee,47075,62,2 +2020-06-29,Haywood,Tennessee,47075,67,2 +2020-06-30,Haywood,Tennessee,47075,71,2 +2020-07-01,Haywood,Tennessee,47075,74,2 +2020-07-02,Haywood,Tennessee,47075,81,2 +2020-07-03,Haywood,Tennessee,47075,92,2 +2020-07-04,Haywood,Tennessee,47075,91,2 +2020-07-05,Haywood,Tennessee,47075,92,2 +2020-07-06,Haywood,Tennessee,47075,93,2 +2020-07-07,Haywood,Tennessee,47075,96,2 +2020-07-08,Haywood,Tennessee,47075,108,2 +2020-07-09,Haywood,Tennessee,47075,111,2 +2020-04-05,Henderson,Tennessee,47077,1,0 +2020-04-06,Henderson,Tennessee,47077,1,0 +2020-04-07,Henderson,Tennessee,47077,2,0 +2020-04-08,Henderson,Tennessee,47077,2,0 +2020-04-09,Henderson,Tennessee,47077,2,0 +2020-04-10,Henderson,Tennessee,47077,2,0 +2020-04-11,Henderson,Tennessee,47077,2,0 +2020-04-12,Henderson,Tennessee,47077,2,0 +2020-04-13,Henderson,Tennessee,47077,2,0 +2020-04-14,Henderson,Tennessee,47077,2,0 +2020-04-15,Henderson,Tennessee,47077,2,0 +2020-04-16,Henderson,Tennessee,47077,2,0 +2020-04-17,Henderson,Tennessee,47077,2,0 +2020-04-18,Henderson,Tennessee,47077,4,0 +2020-04-19,Henderson,Tennessee,47077,4,0 +2020-04-20,Henderson,Tennessee,47077,4,0 +2020-04-21,Henderson,Tennessee,47077,5,0 +2020-04-22,Henderson,Tennessee,47077,5,0 +2020-04-23,Henderson,Tennessee,47077,5,0 +2020-04-24,Henderson,Tennessee,47077,5,0 +2020-04-25,Henderson,Tennessee,47077,5,0 +2020-04-26,Henderson,Tennessee,47077,6,0 +2020-04-27,Henderson,Tennessee,47077,6,0 +2020-04-28,Henderson,Tennessee,47077,6,0 +2020-04-29,Henderson,Tennessee,47077,6,0 +2020-04-30,Henderson,Tennessee,47077,7,0 +2020-05-01,Henderson,Tennessee,47077,7,0 +2020-05-02,Henderson,Tennessee,47077,9,0 +2020-05-03,Henderson,Tennessee,47077,9,0 +2020-05-04,Henderson,Tennessee,47077,9,0 +2020-05-05,Henderson,Tennessee,47077,10,0 +2020-05-06,Henderson,Tennessee,47077,10,0 +2020-05-07,Henderson,Tennessee,47077,10,0 +2020-05-08,Henderson,Tennessee,47077,10,0 +2020-05-09,Henderson,Tennessee,47077,10,0 +2020-05-10,Henderson,Tennessee,47077,10,0 +2020-05-11,Henderson,Tennessee,47077,10,0 +2020-05-12,Henderson,Tennessee,47077,10,0 +2020-05-13,Henderson,Tennessee,47077,10,0 +2020-05-14,Henderson,Tennessee,47077,11,0 +2020-05-15,Henderson,Tennessee,47077,11,0 +2020-05-16,Henderson,Tennessee,47077,12,0 +2020-05-17,Henderson,Tennessee,47077,12,0 +2020-05-18,Henderson,Tennessee,47077,12,0 +2020-05-19,Henderson,Tennessee,47077,12,0 +2020-05-20,Henderson,Tennessee,47077,12,0 +2020-05-21,Henderson,Tennessee,47077,12,0 +2020-05-22,Henderson,Tennessee,47077,12,0 +2020-05-23,Henderson,Tennessee,47077,12,0 +2020-05-24,Henderson,Tennessee,47077,12,0 +2020-05-25,Henderson,Tennessee,47077,13,0 +2020-05-26,Henderson,Tennessee,47077,13,0 +2020-05-27,Henderson,Tennessee,47077,14,0 +2020-05-28,Henderson,Tennessee,47077,14,0 +2020-05-29,Henderson,Tennessee,47077,15,0 +2020-05-30,Henderson,Tennessee,47077,15,0 +2020-05-31,Henderson,Tennessee,47077,15,0 +2020-06-01,Henderson,Tennessee,47077,15,0 +2020-06-02,Henderson,Tennessee,47077,15,0 +2020-06-03,Henderson,Tennessee,47077,15,0 +2020-06-04,Henderson,Tennessee,47077,15,0 +2020-06-05,Henderson,Tennessee,47077,15,0 +2020-06-06,Henderson,Tennessee,47077,15,0 +2020-06-07,Henderson,Tennessee,47077,15,0 +2020-06-08,Henderson,Tennessee,47077,15,0 +2020-06-09,Henderson,Tennessee,47077,16,0 +2020-06-10,Henderson,Tennessee,47077,16,0 +2020-06-11,Henderson,Tennessee,47077,17,0 +2020-06-12,Henderson,Tennessee,47077,17,0 +2020-06-13,Henderson,Tennessee,47077,18,0 +2020-06-14,Henderson,Tennessee,47077,18,0 +2020-06-15,Henderson,Tennessee,47077,19,0 +2020-06-16,Henderson,Tennessee,47077,19,0 +2020-06-17,Henderson,Tennessee,47077,19,0 +2020-06-18,Henderson,Tennessee,47077,19,0 +2020-06-19,Henderson,Tennessee,47077,19,0 +2020-06-20,Henderson,Tennessee,47077,20,0 +2020-06-21,Henderson,Tennessee,47077,21,0 +2020-06-22,Henderson,Tennessee,47077,22,0 +2020-06-23,Henderson,Tennessee,47077,25,0 +2020-06-24,Henderson,Tennessee,47077,26,0 +2020-06-25,Henderson,Tennessee,47077,27,0 +2020-06-26,Henderson,Tennessee,47077,28,0 +2020-06-27,Henderson,Tennessee,47077,31,0 +2020-06-28,Henderson,Tennessee,47077,31,0 +2020-06-29,Henderson,Tennessee,47077,31,0 +2020-06-30,Henderson,Tennessee,47077,32,0 +2020-07-01,Henderson,Tennessee,47077,35,0 +2020-07-02,Henderson,Tennessee,47077,39,0 +2020-07-03,Henderson,Tennessee,47077,44,0 +2020-07-04,Henderson,Tennessee,47077,45,0 +2020-07-05,Henderson,Tennessee,47077,46,0 +2020-07-06,Henderson,Tennessee,47077,48,0 +2020-07-07,Henderson,Tennessee,47077,48,0 +2020-07-08,Henderson,Tennessee,47077,56,0 +2020-07-09,Henderson,Tennessee,47077,62,0 +2020-03-29,Henry,Tennessee,47079,1,0 +2020-03-30,Henry,Tennessee,47079,1,0 +2020-03-31,Henry,Tennessee,47079,1,0 +2020-04-01,Henry,Tennessee,47079,1,0 +2020-04-02,Henry,Tennessee,47079,4,0 +2020-04-03,Henry,Tennessee,47079,4,0 +2020-04-04,Henry,Tennessee,47079,4,0 +2020-04-05,Henry,Tennessee,47079,4,0 +2020-04-06,Henry,Tennessee,47079,5,0 +2020-04-07,Henry,Tennessee,47079,6,0 +2020-04-08,Henry,Tennessee,47079,6,0 +2020-04-09,Henry,Tennessee,47079,6,0 +2020-04-10,Henry,Tennessee,47079,6,0 +2020-04-11,Henry,Tennessee,47079,6,0 +2020-04-12,Henry,Tennessee,47079,6,0 +2020-04-13,Henry,Tennessee,47079,8,0 +2020-04-14,Henry,Tennessee,47079,8,0 +2020-04-15,Henry,Tennessee,47079,8,0 +2020-04-16,Henry,Tennessee,47079,8,0 +2020-04-17,Henry,Tennessee,47079,9,0 +2020-04-18,Henry,Tennessee,47079,9,0 +2020-04-19,Henry,Tennessee,47079,9,0 +2020-04-20,Henry,Tennessee,47079,9,0 +2020-04-21,Henry,Tennessee,47079,9,0 +2020-04-22,Henry,Tennessee,47079,11,0 +2020-04-23,Henry,Tennessee,47079,11,0 +2020-04-24,Henry,Tennessee,47079,11,0 +2020-04-25,Henry,Tennessee,47079,11,0 +2020-04-26,Henry,Tennessee,47079,11,0 +2020-04-27,Henry,Tennessee,47079,11,0 +2020-04-28,Henry,Tennessee,47079,11,0 +2020-04-29,Henry,Tennessee,47079,11,0 +2020-04-30,Henry,Tennessee,47079,13,0 +2020-05-01,Henry,Tennessee,47079,13,0 +2020-05-02,Henry,Tennessee,47079,13,0 +2020-05-03,Henry,Tennessee,47079,13,0 +2020-05-04,Henry,Tennessee,47079,13,0 +2020-05-05,Henry,Tennessee,47079,13,0 +2020-05-06,Henry,Tennessee,47079,13,0 +2020-05-07,Henry,Tennessee,47079,14,0 +2020-05-08,Henry,Tennessee,47079,14,0 +2020-05-09,Henry,Tennessee,47079,15,0 +2020-05-10,Henry,Tennessee,47079,15,0 +2020-05-11,Henry,Tennessee,47079,15,0 +2020-05-12,Henry,Tennessee,47079,15,0 +2020-05-13,Henry,Tennessee,47079,15,0 +2020-05-14,Henry,Tennessee,47079,16,0 +2020-05-15,Henry,Tennessee,47079,17,0 +2020-05-16,Henry,Tennessee,47079,17,0 +2020-05-17,Henry,Tennessee,47079,17,0 +2020-05-18,Henry,Tennessee,47079,19,0 +2020-05-19,Henry,Tennessee,47079,20,0 +2020-05-20,Henry,Tennessee,47079,20,0 +2020-05-21,Henry,Tennessee,47079,28,0 +2020-05-22,Henry,Tennessee,47079,29,0 +2020-05-23,Henry,Tennessee,47079,29,0 +2020-05-24,Henry,Tennessee,47079,29,0 +2020-05-25,Henry,Tennessee,47079,29,0 +2020-05-26,Henry,Tennessee,47079,29,0 +2020-05-27,Henry,Tennessee,47079,30,0 +2020-05-28,Henry,Tennessee,47079,30,0 +2020-05-29,Henry,Tennessee,47079,30,0 +2020-05-30,Henry,Tennessee,47079,30,0 +2020-05-31,Henry,Tennessee,47079,30,0 +2020-06-01,Henry,Tennessee,47079,30,0 +2020-06-02,Henry,Tennessee,47079,31,0 +2020-06-03,Henry,Tennessee,47079,31,0 +2020-06-04,Henry,Tennessee,47079,32,0 +2020-06-05,Henry,Tennessee,47079,31,0 +2020-06-06,Henry,Tennessee,47079,32,0 +2020-06-07,Henry,Tennessee,47079,32,0 +2020-06-08,Henry,Tennessee,47079,32,0 +2020-06-09,Henry,Tennessee,47079,33,0 +2020-06-10,Henry,Tennessee,47079,33,0 +2020-06-11,Henry,Tennessee,47079,34,0 +2020-06-12,Henry,Tennessee,47079,34,0 +2020-06-13,Henry,Tennessee,47079,34,0 +2020-06-14,Henry,Tennessee,47079,35,0 +2020-06-15,Henry,Tennessee,47079,35,0 +2020-06-16,Henry,Tennessee,47079,35,0 +2020-06-17,Henry,Tennessee,47079,35,0 +2020-06-18,Henry,Tennessee,47079,35,0 +2020-06-19,Henry,Tennessee,47079,36,0 +2020-06-20,Henry,Tennessee,47079,36,0 +2020-06-21,Henry,Tennessee,47079,36,0 +2020-06-22,Henry,Tennessee,47079,36,0 +2020-06-23,Henry,Tennessee,47079,37,0 +2020-06-24,Henry,Tennessee,47079,37,0 +2020-06-25,Henry,Tennessee,47079,37,0 +2020-06-26,Henry,Tennessee,47079,38,0 +2020-06-27,Henry,Tennessee,47079,40,0 +2020-06-28,Henry,Tennessee,47079,40,0 +2020-06-29,Henry,Tennessee,47079,42,0 +2020-06-30,Henry,Tennessee,47079,42,0 +2020-07-01,Henry,Tennessee,47079,42,0 +2020-07-02,Henry,Tennessee,47079,42,0 +2020-07-03,Henry,Tennessee,47079,45,0 +2020-07-04,Henry,Tennessee,47079,44,0 +2020-07-05,Henry,Tennessee,47079,44,0 +2020-07-06,Henry,Tennessee,47079,45,0 +2020-07-07,Henry,Tennessee,47079,45,0 +2020-07-08,Henry,Tennessee,47079,47,0 +2020-07-09,Henry,Tennessee,47079,48,0 +2020-04-01,Hickman,Tennessee,47081,1,0 +2020-04-02,Hickman,Tennessee,47081,1,0 +2020-04-03,Hickman,Tennessee,47081,1,0 +2020-04-04,Hickman,Tennessee,47081,1,0 +2020-04-05,Hickman,Tennessee,47081,2,0 +2020-04-06,Hickman,Tennessee,47081,2,0 +2020-04-07,Hickman,Tennessee,47081,2,0 +2020-04-08,Hickman,Tennessee,47081,2,0 +2020-04-09,Hickman,Tennessee,47081,2,0 +2020-04-10,Hickman,Tennessee,47081,2,0 +2020-04-11,Hickman,Tennessee,47081,2,0 +2020-04-12,Hickman,Tennessee,47081,2,0 +2020-04-13,Hickman,Tennessee,47081,2,0 +2020-04-14,Hickman,Tennessee,47081,2,0 +2020-04-15,Hickman,Tennessee,47081,2,0 +2020-04-16,Hickman,Tennessee,47081,2,0 +2020-04-17,Hickman,Tennessee,47081,2,0 +2020-04-18,Hickman,Tennessee,47081,2,0 +2020-04-19,Hickman,Tennessee,47081,2,0 +2020-04-20,Hickman,Tennessee,47081,2,0 +2020-04-21,Hickman,Tennessee,47081,3,0 +2020-04-22,Hickman,Tennessee,47081,10,0 +2020-04-23,Hickman,Tennessee,47081,16,0 +2020-04-24,Hickman,Tennessee,47081,20,0 +2020-04-25,Hickman,Tennessee,47081,40,0 +2020-04-26,Hickman,Tennessee,47081,41,0 +2020-04-27,Hickman,Tennessee,47081,42,0 +2020-04-28,Hickman,Tennessee,47081,43,0 +2020-04-29,Hickman,Tennessee,47081,43,0 +2020-04-30,Hickman,Tennessee,47081,44,0 +2020-05-01,Hickman,Tennessee,47081,44,0 +2020-05-02,Hickman,Tennessee,47081,44,0 +2020-05-03,Hickman,Tennessee,47081,45,0 +2020-05-04,Hickman,Tennessee,47081,45,0 +2020-05-05,Hickman,Tennessee,47081,47,0 +2020-05-06,Hickman,Tennessee,47081,47,0 +2020-05-07,Hickman,Tennessee,47081,48,0 +2020-05-08,Hickman,Tennessee,47081,48,0 +2020-05-09,Hickman,Tennessee,47081,49,0 +2020-05-10,Hickman,Tennessee,47081,52,0 +2020-05-11,Hickman,Tennessee,47081,52,0 +2020-05-12,Hickman,Tennessee,47081,52,0 +2020-05-13,Hickman,Tennessee,47081,52,0 +2020-05-14,Hickman,Tennessee,47081,52,0 +2020-05-15,Hickman,Tennessee,47081,52,0 +2020-05-16,Hickman,Tennessee,47081,52,0 +2020-05-17,Hickman,Tennessee,47081,52,0 +2020-05-18,Hickman,Tennessee,47081,52,0 +2020-05-19,Hickman,Tennessee,47081,52,0 +2020-05-20,Hickman,Tennessee,47081,52,0 +2020-05-21,Hickman,Tennessee,47081,52,0 +2020-05-22,Hickman,Tennessee,47081,52,0 +2020-05-23,Hickman,Tennessee,47081,54,0 +2020-05-24,Hickman,Tennessee,47081,53,0 +2020-05-25,Hickman,Tennessee,47081,53,0 +2020-05-26,Hickman,Tennessee,47081,53,0 +2020-05-27,Hickman,Tennessee,47081,54,0 +2020-05-28,Hickman,Tennessee,47081,57,0 +2020-05-29,Hickman,Tennessee,47081,57,0 +2020-05-30,Hickman,Tennessee,47081,58,0 +2020-05-31,Hickman,Tennessee,47081,58,0 +2020-06-01,Hickman,Tennessee,47081,58,0 +2020-06-02,Hickman,Tennessee,47081,58,0 +2020-06-03,Hickman,Tennessee,47081,58,0 +2020-06-04,Hickman,Tennessee,47081,58,0 +2020-06-05,Hickman,Tennessee,47081,59,0 +2020-06-06,Hickman,Tennessee,47081,62,0 +2020-06-07,Hickman,Tennessee,47081,59,0 +2020-06-08,Hickman,Tennessee,47081,60,0 +2020-06-09,Hickman,Tennessee,47081,60,0 +2020-06-10,Hickman,Tennessee,47081,60,0 +2020-06-11,Hickman,Tennessee,47081,60,0 +2020-06-12,Hickman,Tennessee,47081,61,0 +2020-06-13,Hickman,Tennessee,47081,61,0 +2020-06-14,Hickman,Tennessee,47081,61,0 +2020-06-15,Hickman,Tennessee,47081,62,0 +2020-06-16,Hickman,Tennessee,47081,62,0 +2020-06-17,Hickman,Tennessee,47081,62,0 +2020-06-18,Hickman,Tennessee,47081,62,0 +2020-06-19,Hickman,Tennessee,47081,63,0 +2020-06-20,Hickman,Tennessee,47081,64,0 +2020-06-21,Hickman,Tennessee,47081,64,0 +2020-06-22,Hickman,Tennessee,47081,64,0 +2020-06-23,Hickman,Tennessee,47081,65,0 +2020-06-24,Hickman,Tennessee,47081,66,0 +2020-06-25,Hickman,Tennessee,47081,67,0 +2020-06-26,Hickman,Tennessee,47081,69,0 +2020-06-27,Hickman,Tennessee,47081,69,0 +2020-06-28,Hickman,Tennessee,47081,69,0 +2020-06-29,Hickman,Tennessee,47081,70,0 +2020-06-30,Hickman,Tennessee,47081,70,0 +2020-07-01,Hickman,Tennessee,47081,72,0 +2020-07-02,Hickman,Tennessee,47081,73,0 +2020-07-03,Hickman,Tennessee,47081,80,0 +2020-07-04,Hickman,Tennessee,47081,80,0 +2020-07-05,Hickman,Tennessee,47081,80,0 +2020-07-06,Hickman,Tennessee,47081,80,0 +2020-07-07,Hickman,Tennessee,47081,88,0 +2020-07-08,Hickman,Tennessee,47081,95,0 +2020-07-09,Hickman,Tennessee,47081,98,0 +2020-03-22,Houston,Tennessee,47083,1,0 +2020-03-23,Houston,Tennessee,47083,1,0 +2020-03-24,Houston,Tennessee,47083,1,0 +2020-03-25,Houston,Tennessee,47083,3,0 +2020-03-26,Houston,Tennessee,47083,2,0 +2020-03-27,Houston,Tennessee,47083,2,0 +2020-03-28,Houston,Tennessee,47083,2,0 +2020-03-29,Houston,Tennessee,47083,2,0 +2020-03-30,Houston,Tennessee,47083,1,0 +2020-03-31,Houston,Tennessee,47083,1,0 +2020-04-01,Houston,Tennessee,47083,1,0 +2020-04-02,Houston,Tennessee,47083,1,0 +2020-04-03,Houston,Tennessee,47083,1,0 +2020-04-04,Houston,Tennessee,47083,2,0 +2020-04-05,Houston,Tennessee,47083,2,0 +2020-04-06,Houston,Tennessee,47083,2,0 +2020-04-07,Houston,Tennessee,47083,2,0 +2020-04-08,Houston,Tennessee,47083,2,0 +2020-04-09,Houston,Tennessee,47083,2,0 +2020-04-10,Houston,Tennessee,47083,3,0 +2020-04-11,Houston,Tennessee,47083,3,0 +2020-04-12,Houston,Tennessee,47083,3,0 +2020-04-13,Houston,Tennessee,47083,3,0 +2020-04-14,Houston,Tennessee,47083,3,0 +2020-04-15,Houston,Tennessee,47083,4,0 +2020-04-16,Houston,Tennessee,47083,4,0 +2020-04-17,Houston,Tennessee,47083,4,0 +2020-04-18,Houston,Tennessee,47083,4,0 +2020-04-19,Houston,Tennessee,47083,4,0 +2020-04-20,Houston,Tennessee,47083,4,0 +2020-04-21,Houston,Tennessee,47083,4,0 +2020-04-22,Houston,Tennessee,47083,4,0 +2020-04-23,Houston,Tennessee,47083,4,0 +2020-04-24,Houston,Tennessee,47083,4,0 +2020-04-25,Houston,Tennessee,47083,4,0 +2020-04-26,Houston,Tennessee,47083,4,0 +2020-04-27,Houston,Tennessee,47083,4,0 +2020-04-28,Houston,Tennessee,47083,4,0 +2020-04-29,Houston,Tennessee,47083,5,0 +2020-04-30,Houston,Tennessee,47083,5,0 +2020-05-01,Houston,Tennessee,47083,5,0 +2020-05-02,Houston,Tennessee,47083,5,0 +2020-05-03,Houston,Tennessee,47083,5,0 +2020-05-04,Houston,Tennessee,47083,5,0 +2020-05-05,Houston,Tennessee,47083,6,0 +2020-05-06,Houston,Tennessee,47083,6,0 +2020-05-07,Houston,Tennessee,47083,6,0 +2020-05-08,Houston,Tennessee,47083,6,0 +2020-05-09,Houston,Tennessee,47083,6,0 +2020-05-10,Houston,Tennessee,47083,6,0 +2020-05-11,Houston,Tennessee,47083,6,0 +2020-05-12,Houston,Tennessee,47083,6,0 +2020-05-13,Houston,Tennessee,47083,6,0 +2020-05-14,Houston,Tennessee,47083,6,0 +2020-05-15,Houston,Tennessee,47083,6,0 +2020-05-16,Houston,Tennessee,47083,6,0 +2020-05-17,Houston,Tennessee,47083,6,0 +2020-05-18,Houston,Tennessee,47083,6,0 +2020-05-19,Houston,Tennessee,47083,7,0 +2020-05-20,Houston,Tennessee,47083,7,0 +2020-05-21,Houston,Tennessee,47083,7,0 +2020-05-22,Houston,Tennessee,47083,7,0 +2020-05-23,Houston,Tennessee,47083,7,0 +2020-05-24,Houston,Tennessee,47083,7,0 +2020-05-25,Houston,Tennessee,47083,7,0 +2020-05-26,Houston,Tennessee,47083,7,0 +2020-05-27,Houston,Tennessee,47083,8,0 +2020-05-28,Houston,Tennessee,47083,8,0 +2020-05-29,Houston,Tennessee,47083,8,0 +2020-05-30,Houston,Tennessee,47083,8,0 +2020-05-31,Houston,Tennessee,47083,8,0 +2020-06-01,Houston,Tennessee,47083,8,0 +2020-06-02,Houston,Tennessee,47083,8,0 +2020-06-03,Houston,Tennessee,47083,8,0 +2020-06-04,Houston,Tennessee,47083,8,0 +2020-06-05,Houston,Tennessee,47083,7,0 +2020-06-06,Houston,Tennessee,47083,8,0 +2020-06-07,Houston,Tennessee,47083,8,0 +2020-06-08,Houston,Tennessee,47083,8,0 +2020-06-09,Houston,Tennessee,47083,9,0 +2020-06-10,Houston,Tennessee,47083,9,0 +2020-06-11,Houston,Tennessee,47083,9,0 +2020-06-12,Houston,Tennessee,47083,9,0 +2020-06-13,Houston,Tennessee,47083,10,0 +2020-06-14,Houston,Tennessee,47083,10,0 +2020-06-15,Houston,Tennessee,47083,10,0 +2020-06-16,Houston,Tennessee,47083,10,0 +2020-06-17,Houston,Tennessee,47083,10,0 +2020-06-18,Houston,Tennessee,47083,10,0 +2020-06-19,Houston,Tennessee,47083,10,0 +2020-06-20,Houston,Tennessee,47083,10,0 +2020-06-21,Houston,Tennessee,47083,10,0 +2020-06-22,Houston,Tennessee,47083,10,0 +2020-06-23,Houston,Tennessee,47083,10,0 +2020-06-24,Houston,Tennessee,47083,10,0 +2020-06-25,Houston,Tennessee,47083,10,0 +2020-06-26,Houston,Tennessee,47083,10,0 +2020-06-27,Houston,Tennessee,47083,10,0 +2020-06-28,Houston,Tennessee,47083,10,0 +2020-06-29,Houston,Tennessee,47083,12,0 +2020-06-30,Houston,Tennessee,47083,12,0 +2020-07-01,Houston,Tennessee,47083,12,0 +2020-07-02,Houston,Tennessee,47083,13,0 +2020-07-03,Houston,Tennessee,47083,14,0 +2020-07-04,Houston,Tennessee,47083,15,0 +2020-07-05,Houston,Tennessee,47083,15,0 +2020-07-06,Houston,Tennessee,47083,15,0 +2020-07-07,Houston,Tennessee,47083,15,0 +2020-07-08,Houston,Tennessee,47083,16,0 +2020-07-09,Houston,Tennessee,47083,19,0 +2020-03-31,Humphreys,Tennessee,47085,2,0 +2020-04-01,Humphreys,Tennessee,47085,2,0 +2020-04-02,Humphreys,Tennessee,47085,2,0 +2020-04-03,Humphreys,Tennessee,47085,3,0 +2020-04-04,Humphreys,Tennessee,47085,3,0 +2020-04-05,Humphreys,Tennessee,47085,3,0 +2020-04-06,Humphreys,Tennessee,47085,3,0 +2020-04-07,Humphreys,Tennessee,47085,4,0 +2020-04-08,Humphreys,Tennessee,47085,4,0 +2020-04-09,Humphreys,Tennessee,47085,4,0 +2020-04-10,Humphreys,Tennessee,47085,4,0 +2020-04-11,Humphreys,Tennessee,47085,4,0 +2020-04-12,Humphreys,Tennessee,47085,4,0 +2020-04-13,Humphreys,Tennessee,47085,4,0 +2020-04-14,Humphreys,Tennessee,47085,4,0 +2020-04-15,Humphreys,Tennessee,47085,4,0 +2020-04-16,Humphreys,Tennessee,47085,4,0 +2020-04-17,Humphreys,Tennessee,47085,4,0 +2020-04-18,Humphreys,Tennessee,47085,4,0 +2020-04-19,Humphreys,Tennessee,47085,7,0 +2020-04-20,Humphreys,Tennessee,47085,7,0 +2020-04-21,Humphreys,Tennessee,47085,6,0 +2020-04-22,Humphreys,Tennessee,47085,7,0 +2020-04-23,Humphreys,Tennessee,47085,7,0 +2020-04-24,Humphreys,Tennessee,47085,7,0 +2020-04-25,Humphreys,Tennessee,47085,9,1 +2020-04-26,Humphreys,Tennessee,47085,9,1 +2020-04-27,Humphreys,Tennessee,47085,10,1 +2020-04-28,Humphreys,Tennessee,47085,10,1 +2020-04-29,Humphreys,Tennessee,47085,10,1 +2020-04-30,Humphreys,Tennessee,47085,10,1 +2020-05-01,Humphreys,Tennessee,47085,11,1 +2020-05-02,Humphreys,Tennessee,47085,11,1 +2020-05-03,Humphreys,Tennessee,47085,11,1 +2020-05-04,Humphreys,Tennessee,47085,11,1 +2020-05-05,Humphreys,Tennessee,47085,11,1 +2020-05-06,Humphreys,Tennessee,47085,11,1 +2020-05-07,Humphreys,Tennessee,47085,11,1 +2020-05-08,Humphreys,Tennessee,47085,11,1 +2020-05-09,Humphreys,Tennessee,47085,11,1 +2020-05-10,Humphreys,Tennessee,47085,12,1 +2020-05-11,Humphreys,Tennessee,47085,12,1 +2020-05-12,Humphreys,Tennessee,47085,12,1 +2020-05-13,Humphreys,Tennessee,47085,12,1 +2020-05-14,Humphreys,Tennessee,47085,12,1 +2020-05-15,Humphreys,Tennessee,47085,12,1 +2020-05-16,Humphreys,Tennessee,47085,12,1 +2020-05-17,Humphreys,Tennessee,47085,12,1 +2020-05-18,Humphreys,Tennessee,47085,12,1 +2020-05-19,Humphreys,Tennessee,47085,12,1 +2020-05-20,Humphreys,Tennessee,47085,12,1 +2020-05-21,Humphreys,Tennessee,47085,12,1 +2020-05-22,Humphreys,Tennessee,47085,12,1 +2020-05-23,Humphreys,Tennessee,47085,12,1 +2020-05-24,Humphreys,Tennessee,47085,12,1 +2020-05-25,Humphreys,Tennessee,47085,13,1 +2020-05-26,Humphreys,Tennessee,47085,13,1 +2020-05-27,Humphreys,Tennessee,47085,13,1 +2020-05-28,Humphreys,Tennessee,47085,13,1 +2020-05-29,Humphreys,Tennessee,47085,13,1 +2020-05-30,Humphreys,Tennessee,47085,13,1 +2020-05-31,Humphreys,Tennessee,47085,13,1 +2020-06-01,Humphreys,Tennessee,47085,13,1 +2020-06-02,Humphreys,Tennessee,47085,15,1 +2020-06-03,Humphreys,Tennessee,47085,15,1 +2020-06-04,Humphreys,Tennessee,47085,15,1 +2020-06-05,Humphreys,Tennessee,47085,16,1 +2020-06-06,Humphreys,Tennessee,47085,16,1 +2020-06-07,Humphreys,Tennessee,47085,16,1 +2020-06-08,Humphreys,Tennessee,47085,17,1 +2020-06-09,Humphreys,Tennessee,47085,18,1 +2020-06-10,Humphreys,Tennessee,47085,17,1 +2020-06-11,Humphreys,Tennessee,47085,17,1 +2020-06-12,Humphreys,Tennessee,47085,18,1 +2020-06-13,Humphreys,Tennessee,47085,18,1 +2020-06-14,Humphreys,Tennessee,47085,18,1 +2020-06-15,Humphreys,Tennessee,47085,18,1 +2020-06-16,Humphreys,Tennessee,47085,18,1 +2020-06-17,Humphreys,Tennessee,47085,18,1 +2020-06-18,Humphreys,Tennessee,47085,18,1 +2020-06-19,Humphreys,Tennessee,47085,18,1 +2020-06-20,Humphreys,Tennessee,47085,18,1 +2020-06-21,Humphreys,Tennessee,47085,18,1 +2020-06-22,Humphreys,Tennessee,47085,18,1 +2020-06-23,Humphreys,Tennessee,47085,18,1 +2020-06-24,Humphreys,Tennessee,47085,18,1 +2020-06-25,Humphreys,Tennessee,47085,18,1 +2020-06-26,Humphreys,Tennessee,47085,19,1 +2020-06-27,Humphreys,Tennessee,47085,20,1 +2020-06-28,Humphreys,Tennessee,47085,20,1 +2020-06-29,Humphreys,Tennessee,47085,20,1 +2020-06-30,Humphreys,Tennessee,47085,22,1 +2020-07-01,Humphreys,Tennessee,47085,23,1 +2020-07-02,Humphreys,Tennessee,47085,26,1 +2020-07-03,Humphreys,Tennessee,47085,27,1 +2020-07-04,Humphreys,Tennessee,47085,27,1 +2020-07-05,Humphreys,Tennessee,47085,28,1 +2020-07-06,Humphreys,Tennessee,47085,29,2 +2020-07-07,Humphreys,Tennessee,47085,35,2 +2020-07-08,Humphreys,Tennessee,47085,35,2 +2020-07-09,Humphreys,Tennessee,47085,38,2 +2020-04-02,Jackson,Tennessee,47087,2,0 +2020-04-03,Jackson,Tennessee,47087,3,0 +2020-04-04,Jackson,Tennessee,47087,3,0 +2020-04-05,Jackson,Tennessee,47087,3,0 +2020-04-06,Jackson,Tennessee,47087,3,0 +2020-04-07,Jackson,Tennessee,47087,3,0 +2020-04-08,Jackson,Tennessee,47087,4,0 +2020-04-09,Jackson,Tennessee,47087,5,0 +2020-04-10,Jackson,Tennessee,47087,5,0 +2020-04-11,Jackson,Tennessee,47087,5,0 +2020-04-12,Jackson,Tennessee,47087,5,0 +2020-04-13,Jackson,Tennessee,47087,7,0 +2020-04-14,Jackson,Tennessee,47087,6,0 +2020-04-15,Jackson,Tennessee,47087,6,0 +2020-04-16,Jackson,Tennessee,47087,6,0 +2020-04-17,Jackson,Tennessee,47087,6,0 +2020-04-18,Jackson,Tennessee,47087,11,0 +2020-04-19,Jackson,Tennessee,47087,6,0 +2020-04-20,Jackson,Tennessee,47087,6,0 +2020-04-21,Jackson,Tennessee,47087,6,0 +2020-04-22,Jackson,Tennessee,47087,6,0 +2020-04-23,Jackson,Tennessee,47087,6,0 +2020-04-24,Jackson,Tennessee,47087,7,0 +2020-04-25,Jackson,Tennessee,47087,7,0 +2020-04-26,Jackson,Tennessee,47087,7,0 +2020-04-27,Jackson,Tennessee,47087,7,0 +2020-04-28,Jackson,Tennessee,47087,7,0 +2020-04-29,Jackson,Tennessee,47087,7,0 +2020-04-30,Jackson,Tennessee,47087,7,0 +2020-05-01,Jackson,Tennessee,47087,7,0 +2020-05-02,Jackson,Tennessee,47087,7,0 +2020-05-03,Jackson,Tennessee,47087,7,0 +2020-05-04,Jackson,Tennessee,47087,7,0 +2020-05-05,Jackson,Tennessee,47087,7,0 +2020-05-06,Jackson,Tennessee,47087,7,0 +2020-05-07,Jackson,Tennessee,47087,8,0 +2020-05-08,Jackson,Tennessee,47087,8,0 +2020-05-09,Jackson,Tennessee,47087,8,0 +2020-05-10,Jackson,Tennessee,47087,10,0 +2020-05-11,Jackson,Tennessee,47087,10,0 +2020-05-12,Jackson,Tennessee,47087,10,0 +2020-05-13,Jackson,Tennessee,47087,10,0 +2020-05-14,Jackson,Tennessee,47087,10,0 +2020-05-15,Jackson,Tennessee,47087,10,0 +2020-05-16,Jackson,Tennessee,47087,11,0 +2020-05-17,Jackson,Tennessee,47087,11,0 +2020-05-18,Jackson,Tennessee,47087,11,0 +2020-05-19,Jackson,Tennessee,47087,13,0 +2020-05-20,Jackson,Tennessee,47087,13,0 +2020-05-21,Jackson,Tennessee,47087,13,0 +2020-05-22,Jackson,Tennessee,47087,14,0 +2020-05-23,Jackson,Tennessee,47087,16,0 +2020-05-24,Jackson,Tennessee,47087,17,0 +2020-05-25,Jackson,Tennessee,47087,17,0 +2020-05-26,Jackson,Tennessee,47087,17,0 +2020-05-27,Jackson,Tennessee,47087,17,0 +2020-05-28,Jackson,Tennessee,47087,17,0 +2020-05-29,Jackson,Tennessee,47087,17,0 +2020-05-30,Jackson,Tennessee,47087,17,0 +2020-05-31,Jackson,Tennessee,47087,17,0 +2020-06-01,Jackson,Tennessee,47087,17,0 +2020-06-02,Jackson,Tennessee,47087,19,0 +2020-06-03,Jackson,Tennessee,47087,19,0 +2020-06-04,Jackson,Tennessee,47087,19,0 +2020-06-05,Jackson,Tennessee,47087,19,0 +2020-06-06,Jackson,Tennessee,47087,19,0 +2020-06-07,Jackson,Tennessee,47087,19,0 +2020-06-08,Jackson,Tennessee,47087,19,0 +2020-06-09,Jackson,Tennessee,47087,19,0 +2020-06-10,Jackson,Tennessee,47087,19,0 +2020-06-11,Jackson,Tennessee,47087,19,0 +2020-06-12,Jackson,Tennessee,47087,19,0 +2020-06-13,Jackson,Tennessee,47087,20,0 +2020-06-14,Jackson,Tennessee,47087,20,0 +2020-06-15,Jackson,Tennessee,47087,20,0 +2020-06-16,Jackson,Tennessee,47087,20,0 +2020-06-17,Jackson,Tennessee,47087,20,0 +2020-06-18,Jackson,Tennessee,47087,21,0 +2020-06-19,Jackson,Tennessee,47087,21,0 +2020-06-20,Jackson,Tennessee,47087,21,0 +2020-06-21,Jackson,Tennessee,47087,21,0 +2020-06-22,Jackson,Tennessee,47087,22,0 +2020-06-23,Jackson,Tennessee,47087,22,0 +2020-06-24,Jackson,Tennessee,47087,22,0 +2020-06-25,Jackson,Tennessee,47087,22,0 +2020-06-26,Jackson,Tennessee,47087,22,0 +2020-06-27,Jackson,Tennessee,47087,22,0 +2020-06-28,Jackson,Tennessee,47087,22,0 +2020-06-29,Jackson,Tennessee,47087,23,0 +2020-06-30,Jackson,Tennessee,47087,26,0 +2020-07-01,Jackson,Tennessee,47087,26,0 +2020-07-02,Jackson,Tennessee,47087,26,0 +2020-07-03,Jackson,Tennessee,47087,26,0 +2020-07-04,Jackson,Tennessee,47087,26,0 +2020-07-05,Jackson,Tennessee,47087,27,0 +2020-07-06,Jackson,Tennessee,47087,29,0 +2020-07-07,Jackson,Tennessee,47087,30,0 +2020-07-08,Jackson,Tennessee,47087,33,0 +2020-07-09,Jackson,Tennessee,47087,41,0 +2020-03-13,Jefferson,Tennessee,47089,1,0 +2020-03-14,Jefferson,Tennessee,47089,1,0 +2020-03-15,Jefferson,Tennessee,47089,1,0 +2020-03-16,Jefferson,Tennessee,47089,1,0 +2020-03-17,Jefferson,Tennessee,47089,1,0 +2020-03-18,Jefferson,Tennessee,47089,1,0 +2020-03-19,Jefferson,Tennessee,47089,1,0 +2020-03-20,Jefferson,Tennessee,47089,1,0 +2020-03-21,Jefferson,Tennessee,47089,1,0 +2020-03-22,Jefferson,Tennessee,47089,2,0 +2020-03-23,Jefferson,Tennessee,47089,2,0 +2020-03-24,Jefferson,Tennessee,47089,4,0 +2020-03-25,Jefferson,Tennessee,47089,4,0 +2020-03-26,Jefferson,Tennessee,47089,4,0 +2020-03-27,Jefferson,Tennessee,47089,5,0 +2020-03-28,Jefferson,Tennessee,47089,5,0 +2020-03-29,Jefferson,Tennessee,47089,5,0 +2020-03-30,Jefferson,Tennessee,47089,5,0 +2020-03-31,Jefferson,Tennessee,47089,6,0 +2020-04-01,Jefferson,Tennessee,47089,6,0 +2020-04-02,Jefferson,Tennessee,47089,6,0 +2020-04-03,Jefferson,Tennessee,47089,6,0 +2020-04-04,Jefferson,Tennessee,47089,6,0 +2020-04-05,Jefferson,Tennessee,47089,6,0 +2020-04-06,Jefferson,Tennessee,47089,7,0 +2020-04-07,Jefferson,Tennessee,47089,10,0 +2020-04-08,Jefferson,Tennessee,47089,12,0 +2020-04-09,Jefferson,Tennessee,47089,12,0 +2020-04-10,Jefferson,Tennessee,47089,13,0 +2020-04-11,Jefferson,Tennessee,47089,14,0 +2020-04-12,Jefferson,Tennessee,47089,14,0 +2020-04-13,Jefferson,Tennessee,47089,16,0 +2020-04-14,Jefferson,Tennessee,47089,16,0 +2020-04-15,Jefferson,Tennessee,47089,16,1 +2020-04-16,Jefferson,Tennessee,47089,16,1 +2020-04-17,Jefferson,Tennessee,47089,14,0 +2020-04-18,Jefferson,Tennessee,47089,15,0 +2020-04-19,Jefferson,Tennessee,47089,15,0 +2020-04-20,Jefferson,Tennessee,47089,16,0 +2020-04-21,Jefferson,Tennessee,47089,16,0 +2020-04-22,Jefferson,Tennessee,47089,17,0 +2020-04-23,Jefferson,Tennessee,47089,16,0 +2020-04-24,Jefferson,Tennessee,47089,17,0 +2020-04-25,Jefferson,Tennessee,47089,17,0 +2020-04-26,Jefferson,Tennessee,47089,18,0 +2020-04-27,Jefferson,Tennessee,47089,18,0 +2020-04-28,Jefferson,Tennessee,47089,18,0 +2020-04-29,Jefferson,Tennessee,47089,18,0 +2020-04-30,Jefferson,Tennessee,47089,19,0 +2020-05-01,Jefferson,Tennessee,47089,20,0 +2020-05-02,Jefferson,Tennessee,47089,22,0 +2020-05-03,Jefferson,Tennessee,47089,24,0 +2020-05-04,Jefferson,Tennessee,47089,28,0 +2020-05-05,Jefferson,Tennessee,47089,27,0 +2020-05-06,Jefferson,Tennessee,47089,26,0 +2020-05-07,Jefferson,Tennessee,47089,26,0 +2020-05-08,Jefferson,Tennessee,47089,26,0 +2020-05-09,Jefferson,Tennessee,47089,26,0 +2020-05-10,Jefferson,Tennessee,47089,26,0 +2020-05-11,Jefferson,Tennessee,47089,26,0 +2020-05-12,Jefferson,Tennessee,47089,26,0 +2020-05-13,Jefferson,Tennessee,47089,26,0 +2020-05-14,Jefferson,Tennessee,47089,26,0 +2020-05-15,Jefferson,Tennessee,47089,26,0 +2020-05-16,Jefferson,Tennessee,47089,26,0 +2020-05-17,Jefferson,Tennessee,47089,26,0 +2020-05-18,Jefferson,Tennessee,47089,26,0 +2020-05-19,Jefferson,Tennessee,47089,26,0 +2020-05-20,Jefferson,Tennessee,47089,26,0 +2020-05-21,Jefferson,Tennessee,47089,27,0 +2020-05-22,Jefferson,Tennessee,47089,27,0 +2020-05-23,Jefferson,Tennessee,47089,27,0 +2020-05-24,Jefferson,Tennessee,47089,27,0 +2020-05-25,Jefferson,Tennessee,47089,27,0 +2020-05-26,Jefferson,Tennessee,47089,28,0 +2020-05-27,Jefferson,Tennessee,47089,28,0 +2020-05-28,Jefferson,Tennessee,47089,28,0 +2020-05-29,Jefferson,Tennessee,47089,28,0 +2020-05-30,Jefferson,Tennessee,47089,28,0 +2020-05-31,Jefferson,Tennessee,47089,28,0 +2020-06-01,Jefferson,Tennessee,47089,28,0 +2020-06-02,Jefferson,Tennessee,47089,28,0 +2020-06-03,Jefferson,Tennessee,47089,28,0 +2020-06-04,Jefferson,Tennessee,47089,29,0 +2020-06-05,Jefferson,Tennessee,47089,29,0 +2020-06-06,Jefferson,Tennessee,47089,29,0 +2020-06-07,Jefferson,Tennessee,47089,29,0 +2020-06-08,Jefferson,Tennessee,47089,29,0 +2020-06-09,Jefferson,Tennessee,47089,31,0 +2020-06-10,Jefferson,Tennessee,47089,31,0 +2020-06-11,Jefferson,Tennessee,47089,36,0 +2020-06-12,Jefferson,Tennessee,47089,42,0 +2020-06-13,Jefferson,Tennessee,47089,43,0 +2020-06-14,Jefferson,Tennessee,47089,45,0 +2020-06-15,Jefferson,Tennessee,47089,45,0 +2020-06-16,Jefferson,Tennessee,47089,46,0 +2020-06-17,Jefferson,Tennessee,47089,48,0 +2020-06-18,Jefferson,Tennessee,47089,51,0 +2020-06-19,Jefferson,Tennessee,47089,59,0 +2020-06-20,Jefferson,Tennessee,47089,61,0 +2020-06-21,Jefferson,Tennessee,47089,61,0 +2020-06-22,Jefferson,Tennessee,47089,64,0 +2020-06-23,Jefferson,Tennessee,47089,64,0 +2020-06-24,Jefferson,Tennessee,47089,73,0 +2020-06-25,Jefferson,Tennessee,47089,80,0 +2020-06-26,Jefferson,Tennessee,47089,85,0 +2020-06-27,Jefferson,Tennessee,47089,91,0 +2020-06-28,Jefferson,Tennessee,47089,91,0 +2020-06-29,Jefferson,Tennessee,47089,99,0 +2020-06-30,Jefferson,Tennessee,47089,102,0 +2020-07-01,Jefferson,Tennessee,47089,107,0 +2020-07-02,Jefferson,Tennessee,47089,121,0 +2020-07-03,Jefferson,Tennessee,47089,125,0 +2020-07-04,Jefferson,Tennessee,47089,127,0 +2020-07-05,Jefferson,Tennessee,47089,136,0 +2020-07-06,Jefferson,Tennessee,47089,137,2 +2020-07-07,Jefferson,Tennessee,47089,147,1 +2020-07-08,Jefferson,Tennessee,47089,148,1 +2020-07-09,Jefferson,Tennessee,47089,157,1 +2020-03-28,Johnson,Tennessee,47091,1,0 +2020-03-29,Johnson,Tennessee,47091,2,0 +2020-03-30,Johnson,Tennessee,47091,2,0 +2020-03-31,Johnson,Tennessee,47091,2,0 +2020-04-01,Johnson,Tennessee,47091,2,0 +2020-04-02,Johnson,Tennessee,47091,2,0 +2020-04-03,Johnson,Tennessee,47091,2,0 +2020-04-04,Johnson,Tennessee,47091,2,0 +2020-04-05,Johnson,Tennessee,47091,2,0 +2020-04-06,Johnson,Tennessee,47091,2,0 +2020-04-07,Johnson,Tennessee,47091,2,0 +2020-04-08,Johnson,Tennessee,47091,2,0 +2020-04-09,Johnson,Tennessee,47091,2,0 +2020-04-10,Johnson,Tennessee,47091,2,0 +2020-04-11,Johnson,Tennessee,47091,2,0 +2020-04-12,Johnson,Tennessee,47091,2,0 +2020-04-13,Johnson,Tennessee,47091,2,0 +2020-04-14,Johnson,Tennessee,47091,2,0 +2020-04-15,Johnson,Tennessee,47091,2,0 +2020-04-16,Johnson,Tennessee,47091,2,0 +2020-04-17,Johnson,Tennessee,47091,2,0 +2020-04-18,Johnson,Tennessee,47091,2,0 +2020-04-19,Johnson,Tennessee,47091,2,0 +2020-04-20,Johnson,Tennessee,47091,2,0 +2020-04-21,Johnson,Tennessee,47091,2,0 +2020-04-22,Johnson,Tennessee,47091,2,0 +2020-04-23,Johnson,Tennessee,47091,2,0 +2020-04-24,Johnson,Tennessee,47091,2,0 +2020-04-25,Johnson,Tennessee,47091,2,0 +2020-04-26,Johnson,Tennessee,47091,2,0 +2020-04-27,Johnson,Tennessee,47091,3,0 +2020-04-28,Johnson,Tennessee,47091,3,0 +2020-04-29,Johnson,Tennessee,47091,3,0 +2020-04-30,Johnson,Tennessee,47091,3,0 +2020-05-01,Johnson,Tennessee,47091,3,0 +2020-05-02,Johnson,Tennessee,47091,3,0 +2020-05-03,Johnson,Tennessee,47091,3,0 +2020-05-04,Johnson,Tennessee,47091,5,0 +2020-05-05,Johnson,Tennessee,47091,5,0 +2020-05-06,Johnson,Tennessee,47091,7,0 +2020-05-07,Johnson,Tennessee,47091,5,0 +2020-05-08,Johnson,Tennessee,47091,5,0 +2020-05-09,Johnson,Tennessee,47091,5,0 +2020-05-10,Johnson,Tennessee,47091,5,0 +2020-05-11,Johnson,Tennessee,47091,5,0 +2020-05-12,Johnson,Tennessee,47091,11,0 +2020-05-13,Johnson,Tennessee,47091,15,0 +2020-05-14,Johnson,Tennessee,47091,15,0 +2020-05-15,Johnson,Tennessee,47091,15,0 +2020-05-16,Johnson,Tennessee,47091,15,0 +2020-05-17,Johnson,Tennessee,47091,15,0 +2020-05-18,Johnson,Tennessee,47091,15,0 +2020-05-19,Johnson,Tennessee,47091,15,0 +2020-05-20,Johnson,Tennessee,47091,15,0 +2020-05-21,Johnson,Tennessee,47091,15,0 +2020-05-22,Johnson,Tennessee,47091,15,0 +2020-05-23,Johnson,Tennessee,47091,15,0 +2020-05-24,Johnson,Tennessee,47091,15,0 +2020-05-25,Johnson,Tennessee,47091,15,0 +2020-05-26,Johnson,Tennessee,47091,15,0 +2020-05-27,Johnson,Tennessee,47091,15,0 +2020-05-28,Johnson,Tennessee,47091,16,0 +2020-05-29,Johnson,Tennessee,47091,16,0 +2020-05-30,Johnson,Tennessee,47091,16,0 +2020-05-31,Johnson,Tennessee,47091,16,0 +2020-06-01,Johnson,Tennessee,47091,16,0 +2020-06-02,Johnson,Tennessee,47091,16,0 +2020-06-03,Johnson,Tennessee,47091,19,0 +2020-06-04,Johnson,Tennessee,47091,19,0 +2020-06-05,Johnson,Tennessee,47091,18,0 +2020-06-06,Johnson,Tennessee,47091,20,0 +2020-06-07,Johnson,Tennessee,47091,21,0 +2020-06-08,Johnson,Tennessee,47091,22,0 +2020-06-09,Johnson,Tennessee,47091,22,0 +2020-06-10,Johnson,Tennessee,47091,23,0 +2020-06-11,Johnson,Tennessee,47091,24,0 +2020-06-12,Johnson,Tennessee,47091,24,0 +2020-06-13,Johnson,Tennessee,47091,24,0 +2020-06-14,Johnson,Tennessee,47091,24,0 +2020-06-15,Johnson,Tennessee,47091,25,0 +2020-06-16,Johnson,Tennessee,47091,25,0 +2020-06-17,Johnson,Tennessee,47091,25,0 +2020-06-18,Johnson,Tennessee,47091,26,0 +2020-06-19,Johnson,Tennessee,47091,26,0 +2020-06-20,Johnson,Tennessee,47091,26,0 +2020-06-21,Johnson,Tennessee,47091,26,0 +2020-06-22,Johnson,Tennessee,47091,26,0 +2020-06-23,Johnson,Tennessee,47091,26,0 +2020-06-24,Johnson,Tennessee,47091,27,0 +2020-06-25,Johnson,Tennessee,47091,28,0 +2020-06-26,Johnson,Tennessee,47091,30,0 +2020-06-27,Johnson,Tennessee,47091,34,0 +2020-06-28,Johnson,Tennessee,47091,34,0 +2020-06-29,Johnson,Tennessee,47091,35,0 +2020-06-30,Johnson,Tennessee,47091,36,0 +2020-07-01,Johnson,Tennessee,47091,37,0 +2020-07-02,Johnson,Tennessee,47091,38,0 +2020-07-03,Johnson,Tennessee,47091,39,0 +2020-07-04,Johnson,Tennessee,47091,44,0 +2020-07-05,Johnson,Tennessee,47091,44,0 +2020-07-06,Johnson,Tennessee,47091,44,0 +2020-07-07,Johnson,Tennessee,47091,45,0 +2020-07-08,Johnson,Tennessee,47091,44,0 +2020-07-09,Johnson,Tennessee,47091,44,0 +2020-03-12,Knox,Tennessee,47093,1,0 +2020-03-13,Knox,Tennessee,47093,1,0 +2020-03-14,Knox,Tennessee,47093,1,0 +2020-03-15,Knox,Tennessee,47093,1,0 +2020-03-16,Knox,Tennessee,47093,1,0 +2020-03-17,Knox,Tennessee,47093,2,0 +2020-03-18,Knox,Tennessee,47093,2,0 +2020-03-19,Knox,Tennessee,47093,2,0 +2020-03-20,Knox,Tennessee,47093,3,0 +2020-03-21,Knox,Tennessee,47093,4,0 +2020-03-22,Knox,Tennessee,47093,5,0 +2020-03-23,Knox,Tennessee,47093,5,0 +2020-03-24,Knox,Tennessee,47093,15,0 +2020-03-25,Knox,Tennessee,47093,20,0 +2020-03-26,Knox,Tennessee,47093,26,0 +2020-03-27,Knox,Tennessee,47093,31,0 +2020-03-28,Knox,Tennessee,47093,33,0 +2020-03-29,Knox,Tennessee,47093,38,0 +2020-03-30,Knox,Tennessee,47093,52,0 +2020-03-31,Knox,Tennessee,47093,66,1 +2020-04-01,Knox,Tennessee,47093,78,1 +2020-04-02,Knox,Tennessee,47093,92,1 +2020-04-03,Knox,Tennessee,47093,98,1 +2020-04-04,Knox,Tennessee,47093,99,1 +2020-04-05,Knox,Tennessee,47093,115,1 +2020-04-06,Knox,Tennessee,47093,119,3 +2020-04-07,Knox,Tennessee,47093,143,3 +2020-04-08,Knox,Tennessee,47093,148,3 +2020-04-09,Knox,Tennessee,47093,157,4 +2020-04-10,Knox,Tennessee,47093,164,4 +2020-04-11,Knox,Tennessee,47093,169,4 +2020-04-12,Knox,Tennessee,47093,169,4 +2020-04-13,Knox,Tennessee,47093,173,4 +2020-04-14,Knox,Tennessee,47093,174,4 +2020-04-15,Knox,Tennessee,47093,179,4 +2020-04-16,Knox,Tennessee,47093,186,4 +2020-04-17,Knox,Tennessee,47093,194,4 +2020-04-18,Knox,Tennessee,47093,194,4 +2020-04-19,Knox,Tennessee,47093,194,4 +2020-04-20,Knox,Tennessee,47093,193,4 +2020-04-21,Knox,Tennessee,47093,196,4 +2020-04-22,Knox,Tennessee,47093,199,4 +2020-04-23,Knox,Tennessee,47093,203,4 +2020-04-24,Knox,Tennessee,47093,207,4 +2020-04-25,Knox,Tennessee,47093,210,4 +2020-04-26,Knox,Tennessee,47093,210,4 +2020-04-27,Knox,Tennessee,47093,214,4 +2020-04-28,Knox,Tennessee,47093,214,5 +2020-04-29,Knox,Tennessee,47093,221,5 +2020-04-30,Knox,Tennessee,47093,228,5 +2020-05-01,Knox,Tennessee,47093,233,5 +2020-05-02,Knox,Tennessee,47093,236,5 +2020-05-03,Knox,Tennessee,47093,243,5 +2020-05-04,Knox,Tennessee,47093,249,5 +2020-05-05,Knox,Tennessee,47093,251,5 +2020-05-06,Knox,Tennessee,47093,252,5 +2020-05-07,Knox,Tennessee,47093,253,5 +2020-05-08,Knox,Tennessee,47093,255,5 +2020-05-09,Knox,Tennessee,47093,262,5 +2020-05-10,Knox,Tennessee,47093,263,5 +2020-05-11,Knox,Tennessee,47093,280,5 +2020-05-12,Knox,Tennessee,47093,286,5 +2020-05-13,Knox,Tennessee,47093,295,5 +2020-05-14,Knox,Tennessee,47093,297,5 +2020-05-15,Knox,Tennessee,47093,302,5 +2020-05-16,Knox,Tennessee,47093,309,5 +2020-05-17,Knox,Tennessee,47093,311,5 +2020-05-18,Knox,Tennessee,47093,315,5 +2020-05-19,Knox,Tennessee,47093,320,5 +2020-05-20,Knox,Tennessee,47093,327,5 +2020-05-21,Knox,Tennessee,47093,328,5 +2020-05-22,Knox,Tennessee,47093,333,5 +2020-05-23,Knox,Tennessee,47093,337,5 +2020-05-24,Knox,Tennessee,47093,341,5 +2020-05-25,Knox,Tennessee,47093,352,5 +2020-05-26,Knox,Tennessee,47093,362,5 +2020-05-27,Knox,Tennessee,47093,376,5 +2020-05-28,Knox,Tennessee,47093,377,5 +2020-05-29,Knox,Tennessee,47093,386,5 +2020-05-30,Knox,Tennessee,47093,402,5 +2020-05-31,Knox,Tennessee,47093,413,5 +2020-06-01,Knox,Tennessee,47093,421,5 +2020-06-02,Knox,Tennessee,47093,441,5 +2020-06-03,Knox,Tennessee,47093,449,5 +2020-06-04,Knox,Tennessee,47093,463,5 +2020-06-05,Knox,Tennessee,47093,471,5 +2020-06-06,Knox,Tennessee,47093,474,5 +2020-06-07,Knox,Tennessee,47093,487,5 +2020-06-08,Knox,Tennessee,47093,504,5 +2020-06-09,Knox,Tennessee,47093,513,5 +2020-06-10,Knox,Tennessee,47093,529,5 +2020-06-11,Knox,Tennessee,47093,537,5 +2020-06-12,Knox,Tennessee,47093,559,5 +2020-06-13,Knox,Tennessee,47093,574,5 +2020-06-14,Knox,Tennessee,47093,587,5 +2020-06-15,Knox,Tennessee,47093,593,5 +2020-06-16,Knox,Tennessee,47093,610,5 +2020-06-17,Knox,Tennessee,47093,617,5 +2020-06-18,Knox,Tennessee,47093,637,5 +2020-06-19,Knox,Tennessee,47093,658,5 +2020-06-20,Knox,Tennessee,47093,666,5 +2020-06-21,Knox,Tennessee,47093,681,5 +2020-06-22,Knox,Tennessee,47093,706,5 +2020-06-23,Knox,Tennessee,47093,741,5 +2020-06-24,Knox,Tennessee,47093,758,5 +2020-06-25,Knox,Tennessee,47093,798,5 +2020-06-26,Knox,Tennessee,47093,834,5 +2020-06-27,Knox,Tennessee,47093,878,5 +2020-06-28,Knox,Tennessee,47093,888,5 +2020-06-29,Knox,Tennessee,47093,947,5 +2020-06-30,Knox,Tennessee,47093,967,5 +2020-07-01,Knox,Tennessee,47093,1006,5 +2020-07-02,Knox,Tennessee,47093,1075,6 +2020-07-03,Knox,Tennessee,47093,1121,6 +2020-07-04,Knox,Tennessee,47093,1216,6 +2020-07-05,Knox,Tennessee,47093,1234,8 +2020-07-06,Knox,Tennessee,47093,1326,9 +2020-07-07,Knox,Tennessee,47093,1396,9 +2020-07-08,Knox,Tennessee,47093,1450,10 +2020-07-09,Knox,Tennessee,47093,1521,10 +2020-04-13,Lake,Tennessee,47095,4,0 +2020-04-14,Lake,Tennessee,47095,4,0 +2020-04-15,Lake,Tennessee,47095,4,0 +2020-04-16,Lake,Tennessee,47095,4,0 +2020-04-17,Lake,Tennessee,47095,4,0 +2020-04-18,Lake,Tennessee,47095,4,0 +2020-04-19,Lake,Tennessee,47095,4,0 +2020-04-20,Lake,Tennessee,47095,4,0 +2020-04-21,Lake,Tennessee,47095,4,0 +2020-04-22,Lake,Tennessee,47095,9,0 +2020-04-23,Lake,Tennessee,47095,20,0 +2020-04-24,Lake,Tennessee,47095,46,0 +2020-04-25,Lake,Tennessee,47095,48,0 +2020-04-26,Lake,Tennessee,47095,48,0 +2020-04-27,Lake,Tennessee,47095,49,0 +2020-04-28,Lake,Tennessee,47095,50,0 +2020-04-29,Lake,Tennessee,47095,53,0 +2020-04-30,Lake,Tennessee,47095,55,0 +2020-05-01,Lake,Tennessee,47095,55,0 +2020-05-02,Lake,Tennessee,47095,55,0 +2020-05-03,Lake,Tennessee,47095,57,0 +2020-05-04,Lake,Tennessee,47095,58,0 +2020-05-05,Lake,Tennessee,47095,58,0 +2020-05-06,Lake,Tennessee,47095,59,0 +2020-05-07,Lake,Tennessee,47095,59,0 +2020-05-08,Lake,Tennessee,47095,59,0 +2020-05-09,Lake,Tennessee,47095,59,0 +2020-05-10,Lake,Tennessee,47095,59,0 +2020-05-11,Lake,Tennessee,47095,61,0 +2020-05-12,Lake,Tennessee,47095,99,0 +2020-05-13,Lake,Tennessee,47095,300,0 +2020-05-14,Lake,Tennessee,47095,401,0 +2020-05-15,Lake,Tennessee,47095,401,0 +2020-05-16,Lake,Tennessee,47095,401,0 +2020-05-17,Lake,Tennessee,47095,404,0 +2020-05-18,Lake,Tennessee,47095,404,0 +2020-05-19,Lake,Tennessee,47095,403,0 +2020-05-20,Lake,Tennessee,47095,403,0 +2020-05-21,Lake,Tennessee,47095,403,0 +2020-05-22,Lake,Tennessee,47095,406,0 +2020-05-23,Lake,Tennessee,47095,408,0 +2020-05-24,Lake,Tennessee,47095,409,0 +2020-05-25,Lake,Tennessee,47095,410,0 +2020-05-26,Lake,Tennessee,47095,413,0 +2020-05-27,Lake,Tennessee,47095,413,0 +2020-05-28,Lake,Tennessee,47095,413,0 +2020-05-29,Lake,Tennessee,47095,413,0 +2020-05-30,Lake,Tennessee,47095,414,0 +2020-05-31,Lake,Tennessee,47095,414,0 +2020-06-01,Lake,Tennessee,47095,414,0 +2020-06-02,Lake,Tennessee,47095,765,0 +2020-06-03,Lake,Tennessee,47095,835,0 +2020-06-04,Lake,Tennessee,47095,794,0 +2020-06-05,Lake,Tennessee,47095,725,0 +2020-06-06,Lake,Tennessee,47095,724,0 +2020-06-07,Lake,Tennessee,47095,724,0 +2020-06-08,Lake,Tennessee,47095,724,0 +2020-06-09,Lake,Tennessee,47095,730,0 +2020-06-10,Lake,Tennessee,47095,712,0 +2020-06-11,Lake,Tennessee,47095,688,0 +2020-06-12,Lake,Tennessee,47095,691,0 +2020-06-13,Lake,Tennessee,47095,690,0 +2020-06-14,Lake,Tennessee,47095,690,0 +2020-06-15,Lake,Tennessee,47095,690,0 +2020-06-16,Lake,Tennessee,47095,689,0 +2020-06-17,Lake,Tennessee,47095,689,0 +2020-06-18,Lake,Tennessee,47095,689,0 +2020-06-19,Lake,Tennessee,47095,689,0 +2020-06-20,Lake,Tennessee,47095,689,0 +2020-06-21,Lake,Tennessee,47095,689,0 +2020-06-22,Lake,Tennessee,47095,689,0 +2020-06-23,Lake,Tennessee,47095,689,0 +2020-06-24,Lake,Tennessee,47095,690,0 +2020-06-25,Lake,Tennessee,47095,690,0 +2020-06-26,Lake,Tennessee,47095,691,0 +2020-06-27,Lake,Tennessee,47095,691,0 +2020-06-28,Lake,Tennessee,47095,691,0 +2020-06-29,Lake,Tennessee,47095,691,0 +2020-06-30,Lake,Tennessee,47095,690,0 +2020-07-01,Lake,Tennessee,47095,690,0 +2020-07-02,Lake,Tennessee,47095,690,0 +2020-07-03,Lake,Tennessee,47095,691,0 +2020-07-04,Lake,Tennessee,47095,691,0 +2020-07-05,Lake,Tennessee,47095,692,0 +2020-07-06,Lake,Tennessee,47095,694,0 +2020-07-07,Lake,Tennessee,47095,694,0 +2020-07-08,Lake,Tennessee,47095,696,0 +2020-07-09,Lake,Tennessee,47095,697,0 +2020-04-01,Lauderdale,Tennessee,47097,1,0 +2020-04-02,Lauderdale,Tennessee,47097,2,0 +2020-04-03,Lauderdale,Tennessee,47097,2,0 +2020-04-04,Lauderdale,Tennessee,47097,2,0 +2020-04-05,Lauderdale,Tennessee,47097,2,0 +2020-04-06,Lauderdale,Tennessee,47097,5,0 +2020-04-07,Lauderdale,Tennessee,47097,5,0 +2020-04-08,Lauderdale,Tennessee,47097,6,0 +2020-04-09,Lauderdale,Tennessee,47097,7,0 +2020-04-10,Lauderdale,Tennessee,47097,8,0 +2020-04-11,Lauderdale,Tennessee,47097,8,0 +2020-04-12,Lauderdale,Tennessee,47097,8,0 +2020-04-13,Lauderdale,Tennessee,47097,9,0 +2020-04-14,Lauderdale,Tennessee,47097,9,0 +2020-04-15,Lauderdale,Tennessee,47097,12,0 +2020-04-16,Lauderdale,Tennessee,47097,12,0 +2020-04-17,Lauderdale,Tennessee,47097,13,0 +2020-04-18,Lauderdale,Tennessee,47097,13,0 +2020-04-19,Lauderdale,Tennessee,47097,15,0 +2020-04-20,Lauderdale,Tennessee,47097,16,0 +2020-04-21,Lauderdale,Tennessee,47097,16,0 +2020-04-22,Lauderdale,Tennessee,47097,16,0 +2020-04-23,Lauderdale,Tennessee,47097,16,0 +2020-04-24,Lauderdale,Tennessee,47097,17,0 +2020-04-25,Lauderdale,Tennessee,47097,17,0 +2020-04-26,Lauderdale,Tennessee,47097,18,0 +2020-04-27,Lauderdale,Tennessee,47097,17,0 +2020-04-28,Lauderdale,Tennessee,47097,17,0 +2020-04-29,Lauderdale,Tennessee,47097,19,0 +2020-04-30,Lauderdale,Tennessee,47097,21,0 +2020-05-01,Lauderdale,Tennessee,47097,21,0 +2020-05-02,Lauderdale,Tennessee,47097,21,0 +2020-05-03,Lauderdale,Tennessee,47097,24,0 +2020-05-04,Lauderdale,Tennessee,47097,25,0 +2020-05-05,Lauderdale,Tennessee,47097,25,0 +2020-05-06,Lauderdale,Tennessee,47097,25,0 +2020-05-07,Lauderdale,Tennessee,47097,25,0 +2020-05-08,Lauderdale,Tennessee,47097,25,0 +2020-05-09,Lauderdale,Tennessee,47097,26,0 +2020-05-10,Lauderdale,Tennessee,47097,26,0 +2020-05-11,Lauderdale,Tennessee,47097,36,0 +2020-05-12,Lauderdale,Tennessee,47097,40,0 +2020-05-13,Lauderdale,Tennessee,47097,40,0 +2020-05-14,Lauderdale,Tennessee,47097,43,0 +2020-05-15,Lauderdale,Tennessee,47097,43,0 +2020-05-16,Lauderdale,Tennessee,47097,44,0 +2020-05-17,Lauderdale,Tennessee,47097,44,0 +2020-05-18,Lauderdale,Tennessee,47097,44,1 +2020-05-19,Lauderdale,Tennessee,47097,48,1 +2020-05-20,Lauderdale,Tennessee,47097,48,1 +2020-05-21,Lauderdale,Tennessee,47097,51,1 +2020-05-22,Lauderdale,Tennessee,47097,51,1 +2020-05-23,Lauderdale,Tennessee,47097,51,1 +2020-05-24,Lauderdale,Tennessee,47097,51,1 +2020-05-25,Lauderdale,Tennessee,47097,56,1 +2020-05-26,Lauderdale,Tennessee,47097,56,1 +2020-05-27,Lauderdale,Tennessee,47097,56,1 +2020-05-28,Lauderdale,Tennessee,47097,56,1 +2020-05-29,Lauderdale,Tennessee,47097,55,1 +2020-05-30,Lauderdale,Tennessee,47097,56,1 +2020-05-31,Lauderdale,Tennessee,47097,56,1 +2020-06-01,Lauderdale,Tennessee,47097,56,1 +2020-06-02,Lauderdale,Tennessee,47097,59,1 +2020-06-03,Lauderdale,Tennessee,47097,59,1 +2020-06-04,Lauderdale,Tennessee,47097,59,1 +2020-06-05,Lauderdale,Tennessee,47097,60,1 +2020-06-06,Lauderdale,Tennessee,47097,60,1 +2020-06-07,Lauderdale,Tennessee,47097,60,1 +2020-06-08,Lauderdale,Tennessee,47097,60,1 +2020-06-09,Lauderdale,Tennessee,47097,60,1 +2020-06-10,Lauderdale,Tennessee,47097,60,1 +2020-06-11,Lauderdale,Tennessee,47097,60,1 +2020-06-12,Lauderdale,Tennessee,47097,61,1 +2020-06-13,Lauderdale,Tennessee,47097,61,1 +2020-06-14,Lauderdale,Tennessee,47097,63,1 +2020-06-15,Lauderdale,Tennessee,47097,65,1 +2020-06-16,Lauderdale,Tennessee,47097,68,1 +2020-06-17,Lauderdale,Tennessee,47097,71,1 +2020-06-18,Lauderdale,Tennessee,47097,71,1 +2020-06-19,Lauderdale,Tennessee,47097,71,1 +2020-06-20,Lauderdale,Tennessee,47097,71,1 +2020-06-21,Lauderdale,Tennessee,47097,72,1 +2020-06-22,Lauderdale,Tennessee,47097,75,1 +2020-06-23,Lauderdale,Tennessee,47097,82,1 +2020-06-24,Lauderdale,Tennessee,47097,84,1 +2020-06-25,Lauderdale,Tennessee,47097,86,2 +2020-06-26,Lauderdale,Tennessee,47097,87,2 +2020-06-27,Lauderdale,Tennessee,47097,99,2 +2020-06-28,Lauderdale,Tennessee,47097,99,2 +2020-06-29,Lauderdale,Tennessee,47097,111,2 +2020-06-30,Lauderdale,Tennessee,47097,119,2 +2020-07-01,Lauderdale,Tennessee,47097,120,2 +2020-07-02,Lauderdale,Tennessee,47097,136,2 +2020-07-03,Lauderdale,Tennessee,47097,139,3 +2020-07-04,Lauderdale,Tennessee,47097,143,3 +2020-07-05,Lauderdale,Tennessee,47097,145,3 +2020-07-06,Lauderdale,Tennessee,47097,151,3 +2020-07-07,Lauderdale,Tennessee,47097,154,3 +2020-07-08,Lauderdale,Tennessee,47097,164,3 +2020-07-09,Lauderdale,Tennessee,47097,172,3 +2020-03-30,Lawrence,Tennessee,47099,2,0 +2020-03-31,Lawrence,Tennessee,47099,2,0 +2020-04-01,Lawrence,Tennessee,47099,2,0 +2020-04-02,Lawrence,Tennessee,47099,2,0 +2020-04-03,Lawrence,Tennessee,47099,3,0 +2020-04-04,Lawrence,Tennessee,47099,3,0 +2020-04-05,Lawrence,Tennessee,47099,3,0 +2020-04-06,Lawrence,Tennessee,47099,4,0 +2020-04-07,Lawrence,Tennessee,47099,6,0 +2020-04-08,Lawrence,Tennessee,47099,10,0 +2020-04-09,Lawrence,Tennessee,47099,11,0 +2020-04-10,Lawrence,Tennessee,47099,12,0 +2020-04-11,Lawrence,Tennessee,47099,12,0 +2020-04-12,Lawrence,Tennessee,47099,12,0 +2020-04-13,Lawrence,Tennessee,47099,13,0 +2020-04-14,Lawrence,Tennessee,47099,15,0 +2020-04-15,Lawrence,Tennessee,47099,15,0 +2020-04-16,Lawrence,Tennessee,47099,15,0 +2020-04-17,Lawrence,Tennessee,47099,15,0 +2020-04-18,Lawrence,Tennessee,47099,15,0 +2020-04-19,Lawrence,Tennessee,47099,15,0 +2020-04-20,Lawrence,Tennessee,47099,15,0 +2020-04-21,Lawrence,Tennessee,47099,16,0 +2020-04-22,Lawrence,Tennessee,47099,16,0 +2020-04-23,Lawrence,Tennessee,47099,16,0 +2020-04-24,Lawrence,Tennessee,47099,16,0 +2020-04-25,Lawrence,Tennessee,47099,16,0 +2020-04-26,Lawrence,Tennessee,47099,16,0 +2020-04-27,Lawrence,Tennessee,47099,17,0 +2020-04-28,Lawrence,Tennessee,47099,17,0 +2020-04-29,Lawrence,Tennessee,47099,17,0 +2020-04-30,Lawrence,Tennessee,47099,17,0 +2020-05-01,Lawrence,Tennessee,47099,17,0 +2020-05-02,Lawrence,Tennessee,47099,17,0 +2020-05-03,Lawrence,Tennessee,47099,17,0 +2020-05-04,Lawrence,Tennessee,47099,17,0 +2020-05-05,Lawrence,Tennessee,47099,17,0 +2020-05-06,Lawrence,Tennessee,47099,17,0 +2020-05-07,Lawrence,Tennessee,47099,19,0 +2020-05-08,Lawrence,Tennessee,47099,19,0 +2020-05-09,Lawrence,Tennessee,47099,20,0 +2020-05-10,Lawrence,Tennessee,47099,20,0 +2020-05-11,Lawrence,Tennessee,47099,21,0 +2020-05-12,Lawrence,Tennessee,47099,21,0 +2020-05-13,Lawrence,Tennessee,47099,21,0 +2020-05-14,Lawrence,Tennessee,47099,21,0 +2020-05-15,Lawrence,Tennessee,47099,21,0 +2020-05-16,Lawrence,Tennessee,47099,21,0 +2020-05-17,Lawrence,Tennessee,47099,21,0 +2020-05-18,Lawrence,Tennessee,47099,21,0 +2020-05-19,Lawrence,Tennessee,47099,21,0 +2020-05-20,Lawrence,Tennessee,47099,21,0 +2020-05-21,Lawrence,Tennessee,47099,22,0 +2020-05-22,Lawrence,Tennessee,47099,23,0 +2020-05-23,Lawrence,Tennessee,47099,24,0 +2020-05-24,Lawrence,Tennessee,47099,24,0 +2020-05-25,Lawrence,Tennessee,47099,24,0 +2020-05-26,Lawrence,Tennessee,47099,24,0 +2020-05-27,Lawrence,Tennessee,47099,24,0 +2020-05-28,Lawrence,Tennessee,47099,24,0 +2020-05-29,Lawrence,Tennessee,47099,29,0 +2020-05-30,Lawrence,Tennessee,47099,31,0 +2020-05-31,Lawrence,Tennessee,47099,31,0 +2020-06-01,Lawrence,Tennessee,47099,31,0 +2020-06-02,Lawrence,Tennessee,47099,32,0 +2020-06-03,Lawrence,Tennessee,47099,33,0 +2020-06-04,Lawrence,Tennessee,47099,33,0 +2020-06-05,Lawrence,Tennessee,47099,35,0 +2020-06-06,Lawrence,Tennessee,47099,36,0 +2020-06-07,Lawrence,Tennessee,47099,38,0 +2020-06-08,Lawrence,Tennessee,47099,40,0 +2020-06-09,Lawrence,Tennessee,47099,41,0 +2020-06-10,Lawrence,Tennessee,47099,48,0 +2020-06-11,Lawrence,Tennessee,47099,52,0 +2020-06-12,Lawrence,Tennessee,47099,57,0 +2020-06-13,Lawrence,Tennessee,47099,60,1 +2020-06-14,Lawrence,Tennessee,47099,64,1 +2020-06-15,Lawrence,Tennessee,47099,65,1 +2020-06-16,Lawrence,Tennessee,47099,70,2 +2020-06-17,Lawrence,Tennessee,47099,72,2 +2020-06-18,Lawrence,Tennessee,47099,76,2 +2020-06-19,Lawrence,Tennessee,47099,78,2 +2020-06-20,Lawrence,Tennessee,47099,81,2 +2020-06-21,Lawrence,Tennessee,47099,81,2 +2020-06-22,Lawrence,Tennessee,47099,81,2 +2020-06-23,Lawrence,Tennessee,47099,95,3 +2020-06-24,Lawrence,Tennessee,47099,97,3 +2020-06-25,Lawrence,Tennessee,47099,101,3 +2020-06-26,Lawrence,Tennessee,47099,104,4 +2020-06-27,Lawrence,Tennessee,47099,113,4 +2020-06-28,Lawrence,Tennessee,47099,113,4 +2020-06-29,Lawrence,Tennessee,47099,116,4 +2020-06-30,Lawrence,Tennessee,47099,124,5 +2020-07-01,Lawrence,Tennessee,47099,133,5 +2020-07-02,Lawrence,Tennessee,47099,143,5 +2020-07-03,Lawrence,Tennessee,47099,152,6 +2020-07-04,Lawrence,Tennessee,47099,157,6 +2020-07-05,Lawrence,Tennessee,47099,163,6 +2020-07-06,Lawrence,Tennessee,47099,164,6 +2020-07-07,Lawrence,Tennessee,47099,172,6 +2020-07-08,Lawrence,Tennessee,47099,192,6 +2020-07-09,Lawrence,Tennessee,47099,202,6 +2020-03-25,Lewis,Tennessee,47101,1,0 +2020-03-26,Lewis,Tennessee,47101,2,0 +2020-03-27,Lewis,Tennessee,47101,2,0 +2020-03-28,Lewis,Tennessee,47101,2,0 +2020-03-29,Lewis,Tennessee,47101,2,0 +2020-03-30,Lewis,Tennessee,47101,2,0 +2020-03-31,Lewis,Tennessee,47101,2,0 +2020-04-01,Lewis,Tennessee,47101,2,0 +2020-04-02,Lewis,Tennessee,47101,2,0 +2020-04-03,Lewis,Tennessee,47101,2,0 +2020-04-04,Lewis,Tennessee,47101,2,0 +2020-04-05,Lewis,Tennessee,47101,2,0 +2020-04-06,Lewis,Tennessee,47101,2,0 +2020-04-07,Lewis,Tennessee,47101,2,0 +2020-04-08,Lewis,Tennessee,47101,2,0 +2020-04-09,Lewis,Tennessee,47101,2,0 +2020-04-10,Lewis,Tennessee,47101,2,0 +2020-04-11,Lewis,Tennessee,47101,2,0 +2020-04-12,Lewis,Tennessee,47101,2,0 +2020-04-13,Lewis,Tennessee,47101,2,0 +2020-04-14,Lewis,Tennessee,47101,2,0 +2020-04-15,Lewis,Tennessee,47101,2,0 +2020-04-16,Lewis,Tennessee,47101,2,0 +2020-04-17,Lewis,Tennessee,47101,2,0 +2020-04-18,Lewis,Tennessee,47101,2,0 +2020-04-19,Lewis,Tennessee,47101,2,0 +2020-04-20,Lewis,Tennessee,47101,2,0 +2020-04-21,Lewis,Tennessee,47101,2,0 +2020-04-22,Lewis,Tennessee,47101,2,0 +2020-04-23,Lewis,Tennessee,47101,2,0 +2020-04-24,Lewis,Tennessee,47101,2,0 +2020-04-25,Lewis,Tennessee,47101,2,0 +2020-04-26,Lewis,Tennessee,47101,2,0 +2020-04-27,Lewis,Tennessee,47101,2,0 +2020-04-28,Lewis,Tennessee,47101,2,0 +2020-04-29,Lewis,Tennessee,47101,2,0 +2020-04-30,Lewis,Tennessee,47101,2,0 +2020-05-01,Lewis,Tennessee,47101,2,0 +2020-05-02,Lewis,Tennessee,47101,2,0 +2020-05-03,Lewis,Tennessee,47101,2,0 +2020-05-04,Lewis,Tennessee,47101,2,0 +2020-05-05,Lewis,Tennessee,47101,2,0 +2020-05-06,Lewis,Tennessee,47101,2,0 +2020-05-07,Lewis,Tennessee,47101,2,0 +2020-05-08,Lewis,Tennessee,47101,2,0 +2020-05-09,Lewis,Tennessee,47101,2,0 +2020-05-10,Lewis,Tennessee,47101,2,0 +2020-05-11,Lewis,Tennessee,47101,2,0 +2020-05-12,Lewis,Tennessee,47101,2,0 +2020-05-13,Lewis,Tennessee,47101,2,0 +2020-05-14,Lewis,Tennessee,47101,2,0 +2020-05-15,Lewis,Tennessee,47101,2,0 +2020-05-16,Lewis,Tennessee,47101,2,0 +2020-05-17,Lewis,Tennessee,47101,2,0 +2020-05-18,Lewis,Tennessee,47101,2,0 +2020-05-19,Lewis,Tennessee,47101,2,0 +2020-05-20,Lewis,Tennessee,47101,2,0 +2020-05-21,Lewis,Tennessee,47101,2,0 +2020-05-22,Lewis,Tennessee,47101,3,0 +2020-05-23,Lewis,Tennessee,47101,3,0 +2020-05-24,Lewis,Tennessee,47101,3,0 +2020-05-25,Lewis,Tennessee,47101,3,0 +2020-05-26,Lewis,Tennessee,47101,3,0 +2020-05-27,Lewis,Tennessee,47101,3,0 +2020-05-28,Lewis,Tennessee,47101,3,0 +2020-05-29,Lewis,Tennessee,47101,3,0 +2020-05-30,Lewis,Tennessee,47101,3,0 +2020-05-31,Lewis,Tennessee,47101,3,0 +2020-06-01,Lewis,Tennessee,47101,3,0 +2020-06-02,Lewis,Tennessee,47101,3,0 +2020-06-03,Lewis,Tennessee,47101,3,0 +2020-06-04,Lewis,Tennessee,47101,3,0 +2020-06-05,Lewis,Tennessee,47101,3,0 +2020-06-06,Lewis,Tennessee,47101,3,0 +2020-06-07,Lewis,Tennessee,47101,4,0 +2020-06-08,Lewis,Tennessee,47101,4,0 +2020-06-09,Lewis,Tennessee,47101,4,0 +2020-06-10,Lewis,Tennessee,47101,4,0 +2020-06-11,Lewis,Tennessee,47101,5,0 +2020-06-12,Lewis,Tennessee,47101,5,0 +2020-06-13,Lewis,Tennessee,47101,5,0 +2020-06-14,Lewis,Tennessee,47101,6,0 +2020-06-15,Lewis,Tennessee,47101,6,0 +2020-06-16,Lewis,Tennessee,47101,5,0 +2020-06-17,Lewis,Tennessee,47101,5,0 +2020-06-18,Lewis,Tennessee,47101,5,0 +2020-06-19,Lewis,Tennessee,47101,5,0 +2020-06-20,Lewis,Tennessee,47101,5,0 +2020-06-21,Lewis,Tennessee,47101,5,0 +2020-06-22,Lewis,Tennessee,47101,5,0 +2020-06-23,Lewis,Tennessee,47101,5,0 +2020-06-24,Lewis,Tennessee,47101,5,0 +2020-06-25,Lewis,Tennessee,47101,5,0 +2020-06-26,Lewis,Tennessee,47101,5,0 +2020-06-27,Lewis,Tennessee,47101,5,0 +2020-06-28,Lewis,Tennessee,47101,5,0 +2020-06-29,Lewis,Tennessee,47101,5,0 +2020-06-30,Lewis,Tennessee,47101,6,0 +2020-07-01,Lewis,Tennessee,47101,7,0 +2020-07-02,Lewis,Tennessee,47101,7,0 +2020-07-03,Lewis,Tennessee,47101,6,0 +2020-07-04,Lewis,Tennessee,47101,6,0 +2020-07-05,Lewis,Tennessee,47101,6,0 +2020-07-06,Lewis,Tennessee,47101,6,0 +2020-07-07,Lewis,Tennessee,47101,6,0 +2020-07-08,Lewis,Tennessee,47101,7,0 +2020-07-09,Lewis,Tennessee,47101,10,0 +2020-03-24,Lincoln,Tennessee,47103,1,0 +2020-03-25,Lincoln,Tennessee,47103,1,0 +2020-03-26,Lincoln,Tennessee,47103,1,0 +2020-03-27,Lincoln,Tennessee,47103,1,0 +2020-03-28,Lincoln,Tennessee,47103,1,0 +2020-03-29,Lincoln,Tennessee,47103,1,0 +2020-03-30,Lincoln,Tennessee,47103,1,0 +2020-03-31,Lincoln,Tennessee,47103,1,0 +2020-04-01,Lincoln,Tennessee,47103,2,0 +2020-04-02,Lincoln,Tennessee,47103,2,0 +2020-04-03,Lincoln,Tennessee,47103,4,0 +2020-04-04,Lincoln,Tennessee,47103,5,0 +2020-04-05,Lincoln,Tennessee,47103,5,0 +2020-04-06,Lincoln,Tennessee,47103,5,0 +2020-04-07,Lincoln,Tennessee,47103,6,0 +2020-04-08,Lincoln,Tennessee,47103,7,0 +2020-04-09,Lincoln,Tennessee,47103,7,0 +2020-04-10,Lincoln,Tennessee,47103,8,0 +2020-04-11,Lincoln,Tennessee,47103,8,0 +2020-04-12,Lincoln,Tennessee,47103,8,0 +2020-04-13,Lincoln,Tennessee,47103,9,0 +2020-04-14,Lincoln,Tennessee,47103,9,0 +2020-04-15,Lincoln,Tennessee,47103,9,0 +2020-04-16,Lincoln,Tennessee,47103,9,0 +2020-04-17,Lincoln,Tennessee,47103,9,0 +2020-04-18,Lincoln,Tennessee,47103,9,0 +2020-04-19,Lincoln,Tennessee,47103,10,0 +2020-04-20,Lincoln,Tennessee,47103,10,0 +2020-04-21,Lincoln,Tennessee,47103,11,0 +2020-04-22,Lincoln,Tennessee,47103,11,0 +2020-04-23,Lincoln,Tennessee,47103,11,0 +2020-04-24,Lincoln,Tennessee,47103,11,0 +2020-04-25,Lincoln,Tennessee,47103,12,0 +2020-04-26,Lincoln,Tennessee,47103,12,0 +2020-04-27,Lincoln,Tennessee,47103,12,0 +2020-04-28,Lincoln,Tennessee,47103,12,0 +2020-04-29,Lincoln,Tennessee,47103,13,0 +2020-04-30,Lincoln,Tennessee,47103,13,0 +2020-05-01,Lincoln,Tennessee,47103,14,0 +2020-05-02,Lincoln,Tennessee,47103,14,0 +2020-05-03,Lincoln,Tennessee,47103,14,0 +2020-05-04,Lincoln,Tennessee,47103,16,0 +2020-05-05,Lincoln,Tennessee,47103,16,0 +2020-05-06,Lincoln,Tennessee,47103,16,0 +2020-05-07,Lincoln,Tennessee,47103,16,0 +2020-05-08,Lincoln,Tennessee,47103,16,0 +2020-05-09,Lincoln,Tennessee,47103,16,0 +2020-05-10,Lincoln,Tennessee,47103,16,0 +2020-05-11,Lincoln,Tennessee,47103,16,0 +2020-05-12,Lincoln,Tennessee,47103,16,0 +2020-05-13,Lincoln,Tennessee,47103,16,0 +2020-05-14,Lincoln,Tennessee,47103,16,0 +2020-05-15,Lincoln,Tennessee,47103,16,0 +2020-05-16,Lincoln,Tennessee,47103,16,0 +2020-05-17,Lincoln,Tennessee,47103,16,0 +2020-05-18,Lincoln,Tennessee,47103,16,0 +2020-05-19,Lincoln,Tennessee,47103,17,0 +2020-05-20,Lincoln,Tennessee,47103,17,0 +2020-05-21,Lincoln,Tennessee,47103,22,0 +2020-05-22,Lincoln,Tennessee,47103,26,0 +2020-05-23,Lincoln,Tennessee,47103,26,0 +2020-05-24,Lincoln,Tennessee,47103,25,0 +2020-05-25,Lincoln,Tennessee,47103,25,0 +2020-05-26,Lincoln,Tennessee,47103,25,0 +2020-05-27,Lincoln,Tennessee,47103,25,0 +2020-05-28,Lincoln,Tennessee,47103,25,0 +2020-05-29,Lincoln,Tennessee,47103,25,0 +2020-05-30,Lincoln,Tennessee,47103,25,0 +2020-05-31,Lincoln,Tennessee,47103,25,0 +2020-06-01,Lincoln,Tennessee,47103,25,0 +2020-06-02,Lincoln,Tennessee,47103,28,0 +2020-06-03,Lincoln,Tennessee,47103,29,0 +2020-06-04,Lincoln,Tennessee,47103,29,0 +2020-06-05,Lincoln,Tennessee,47103,30,0 +2020-06-06,Lincoln,Tennessee,47103,32,0 +2020-06-07,Lincoln,Tennessee,47103,32,0 +2020-06-08,Lincoln,Tennessee,47103,32,0 +2020-06-09,Lincoln,Tennessee,47103,33,0 +2020-06-10,Lincoln,Tennessee,47103,34,0 +2020-06-11,Lincoln,Tennessee,47103,36,0 +2020-06-12,Lincoln,Tennessee,47103,42,0 +2020-06-13,Lincoln,Tennessee,47103,44,0 +2020-06-14,Lincoln,Tennessee,47103,47,0 +2020-06-15,Lincoln,Tennessee,47103,47,0 +2020-06-16,Lincoln,Tennessee,47103,47,0 +2020-06-17,Lincoln,Tennessee,47103,48,0 +2020-06-18,Lincoln,Tennessee,47103,48,0 +2020-06-19,Lincoln,Tennessee,47103,48,0 +2020-06-20,Lincoln,Tennessee,47103,49,0 +2020-06-21,Lincoln,Tennessee,47103,49,0 +2020-06-22,Lincoln,Tennessee,47103,49,0 +2020-06-23,Lincoln,Tennessee,47103,49,0 +2020-06-24,Lincoln,Tennessee,47103,51,0 +2020-06-25,Lincoln,Tennessee,47103,51,0 +2020-06-26,Lincoln,Tennessee,47103,52,0 +2020-06-27,Lincoln,Tennessee,47103,52,0 +2020-06-28,Lincoln,Tennessee,47103,52,0 +2020-06-29,Lincoln,Tennessee,47103,53,0 +2020-06-30,Lincoln,Tennessee,47103,56,0 +2020-07-01,Lincoln,Tennessee,47103,59,0 +2020-07-02,Lincoln,Tennessee,47103,58,0 +2020-07-03,Lincoln,Tennessee,47103,61,0 +2020-07-04,Lincoln,Tennessee,47103,63,0 +2020-07-05,Lincoln,Tennessee,47103,64,0 +2020-07-06,Lincoln,Tennessee,47103,65,0 +2020-07-07,Lincoln,Tennessee,47103,68,0 +2020-07-08,Lincoln,Tennessee,47103,78,0 +2020-07-09,Lincoln,Tennessee,47103,80,0 +2020-03-22,Loudon,Tennessee,47105,1,0 +2020-03-23,Loudon,Tennessee,47105,1,0 +2020-03-24,Loudon,Tennessee,47105,2,0 +2020-03-25,Loudon,Tennessee,47105,3,0 +2020-03-26,Loudon,Tennessee,47105,6,0 +2020-03-27,Loudon,Tennessee,47105,6,0 +2020-03-28,Loudon,Tennessee,47105,6,0 +2020-03-29,Loudon,Tennessee,47105,8,0 +2020-03-30,Loudon,Tennessee,47105,8,0 +2020-03-31,Loudon,Tennessee,47105,8,0 +2020-04-01,Loudon,Tennessee,47105,8,0 +2020-04-02,Loudon,Tennessee,47105,9,0 +2020-04-03,Loudon,Tennessee,47105,12,0 +2020-04-04,Loudon,Tennessee,47105,13,0 +2020-04-05,Loudon,Tennessee,47105,13,0 +2020-04-06,Loudon,Tennessee,47105,13,0 +2020-04-07,Loudon,Tennessee,47105,15,0 +2020-04-08,Loudon,Tennessee,47105,15,0 +2020-04-09,Loudon,Tennessee,47105,15,0 +2020-04-10,Loudon,Tennessee,47105,16,0 +2020-04-11,Loudon,Tennessee,47105,16,0 +2020-04-12,Loudon,Tennessee,47105,16,0 +2020-04-13,Loudon,Tennessee,47105,16,0 +2020-04-14,Loudon,Tennessee,47105,17,0 +2020-04-15,Loudon,Tennessee,47105,18,0 +2020-04-16,Loudon,Tennessee,47105,19,0 +2020-04-17,Loudon,Tennessee,47105,21,0 +2020-04-18,Loudon,Tennessee,47105,21,0 +2020-04-19,Loudon,Tennessee,47105,22,0 +2020-04-20,Loudon,Tennessee,47105,23,0 +2020-04-21,Loudon,Tennessee,47105,23,0 +2020-04-22,Loudon,Tennessee,47105,23,0 +2020-04-23,Loudon,Tennessee,47105,24,0 +2020-04-24,Loudon,Tennessee,47105,25,0 +2020-04-25,Loudon,Tennessee,47105,25,0 +2020-04-26,Loudon,Tennessee,47105,27,0 +2020-04-27,Loudon,Tennessee,47105,27,0 +2020-04-28,Loudon,Tennessee,47105,28,0 +2020-04-29,Loudon,Tennessee,47105,32,0 +2020-04-30,Loudon,Tennessee,47105,33,0 +2020-05-01,Loudon,Tennessee,47105,32,0 +2020-05-02,Loudon,Tennessee,47105,37,0 +2020-05-03,Loudon,Tennessee,47105,37,0 +2020-05-04,Loudon,Tennessee,47105,39,0 +2020-05-05,Loudon,Tennessee,47105,39,0 +2020-05-06,Loudon,Tennessee,47105,39,0 +2020-05-07,Loudon,Tennessee,47105,38,0 +2020-05-08,Loudon,Tennessee,47105,39,0 +2020-05-09,Loudon,Tennessee,47105,39,0 +2020-05-10,Loudon,Tennessee,47105,41,0 +2020-05-11,Loudon,Tennessee,47105,43,0 +2020-05-12,Loudon,Tennessee,47105,44,0 +2020-05-13,Loudon,Tennessee,47105,46,0 +2020-05-14,Loudon,Tennessee,47105,46,0 +2020-05-15,Loudon,Tennessee,47105,48,0 +2020-05-16,Loudon,Tennessee,47105,48,0 +2020-05-17,Loudon,Tennessee,47105,48,0 +2020-05-18,Loudon,Tennessee,47105,94,0 +2020-05-19,Loudon,Tennessee,47105,97,0 +2020-05-20,Loudon,Tennessee,47105,97,0 +2020-05-21,Loudon,Tennessee,47105,110,0 +2020-05-22,Loudon,Tennessee,47105,130,0 +2020-05-23,Loudon,Tennessee,47105,131,0 +2020-05-24,Loudon,Tennessee,47105,132,0 +2020-05-25,Loudon,Tennessee,47105,136,0 +2020-05-26,Loudon,Tennessee,47105,136,0 +2020-05-27,Loudon,Tennessee,47105,137,0 +2020-05-28,Loudon,Tennessee,47105,137,0 +2020-05-29,Loudon,Tennessee,47105,142,0 +2020-05-30,Loudon,Tennessee,47105,143,0 +2020-05-31,Loudon,Tennessee,47105,143,0 +2020-06-01,Loudon,Tennessee,47105,143,0 +2020-06-02,Loudon,Tennessee,47105,154,0 +2020-06-03,Loudon,Tennessee,47105,157,0 +2020-06-04,Loudon,Tennessee,47105,161,0 +2020-06-05,Loudon,Tennessee,47105,165,0 +2020-06-06,Loudon,Tennessee,47105,168,0 +2020-06-07,Loudon,Tennessee,47105,167,0 +2020-06-08,Loudon,Tennessee,47105,170,0 +2020-06-09,Loudon,Tennessee,47105,171,0 +2020-06-10,Loudon,Tennessee,47105,174,0 +2020-06-11,Loudon,Tennessee,47105,174,1 +2020-06-12,Loudon,Tennessee,47105,188,1 +2020-06-13,Loudon,Tennessee,47105,196,1 +2020-06-14,Loudon,Tennessee,47105,198,1 +2020-06-15,Loudon,Tennessee,47105,199,1 +2020-06-16,Loudon,Tennessee,47105,210,1 +2020-06-17,Loudon,Tennessee,47105,214,1 +2020-06-18,Loudon,Tennessee,47105,221,1 +2020-06-19,Loudon,Tennessee,47105,226,1 +2020-06-20,Loudon,Tennessee,47105,230,1 +2020-06-21,Loudon,Tennessee,47105,232,1 +2020-06-22,Loudon,Tennessee,47105,234,1 +2020-06-23,Loudon,Tennessee,47105,239,1 +2020-06-24,Loudon,Tennessee,47105,243,1 +2020-06-25,Loudon,Tennessee,47105,244,1 +2020-06-26,Loudon,Tennessee,47105,244,1 +2020-06-27,Loudon,Tennessee,47105,248,1 +2020-06-28,Loudon,Tennessee,47105,248,1 +2020-06-29,Loudon,Tennessee,47105,254,1 +2020-06-30,Loudon,Tennessee,47105,261,1 +2020-07-01,Loudon,Tennessee,47105,265,1 +2020-07-02,Loudon,Tennessee,47105,271,1 +2020-07-03,Loudon,Tennessee,47105,277,1 +2020-07-04,Loudon,Tennessee,47105,280,1 +2020-07-05,Loudon,Tennessee,47105,287,1 +2020-07-06,Loudon,Tennessee,47105,288,1 +2020-07-07,Loudon,Tennessee,47105,293,1 +2020-07-08,Loudon,Tennessee,47105,302,1 +2020-07-09,Loudon,Tennessee,47105,308,1 +2020-03-22,McMinn,Tennessee,47107,1,0 +2020-03-23,McMinn,Tennessee,47107,1,0 +2020-03-24,McMinn,Tennessee,47107,2,0 +2020-03-25,McMinn,Tennessee,47107,2,0 +2020-03-26,McMinn,Tennessee,47107,3,0 +2020-03-27,McMinn,Tennessee,47107,3,0 +2020-03-28,McMinn,Tennessee,47107,3,0 +2020-03-29,McMinn,Tennessee,47107,3,0 +2020-03-30,McMinn,Tennessee,47107,3,0 +2020-03-31,McMinn,Tennessee,47107,3,0 +2020-04-01,McMinn,Tennessee,47107,3,0 +2020-04-02,McMinn,Tennessee,47107,3,0 +2020-04-03,McMinn,Tennessee,47107,3,0 +2020-04-04,McMinn,Tennessee,47107,3,0 +2020-04-05,McMinn,Tennessee,47107,3,0 +2020-04-06,McMinn,Tennessee,47107,3,0 +2020-04-07,McMinn,Tennessee,47107,3,0 +2020-04-08,McMinn,Tennessee,47107,3,0 +2020-04-09,McMinn,Tennessee,47107,3,0 +2020-04-10,McMinn,Tennessee,47107,4,0 +2020-04-11,McMinn,Tennessee,47107,4,0 +2020-04-12,McMinn,Tennessee,47107,4,0 +2020-04-13,McMinn,Tennessee,47107,5,0 +2020-04-14,McMinn,Tennessee,47107,5,0 +2020-04-15,McMinn,Tennessee,47107,5,0 +2020-04-16,McMinn,Tennessee,47107,6,0 +2020-04-17,McMinn,Tennessee,47107,6,0 +2020-04-18,McMinn,Tennessee,47107,6,0 +2020-04-19,McMinn,Tennessee,47107,6,0 +2020-04-20,McMinn,Tennessee,47107,6,0 +2020-04-21,McMinn,Tennessee,47107,6,0 +2020-04-22,McMinn,Tennessee,47107,6,0 +2020-04-23,McMinn,Tennessee,47107,6,0 +2020-04-24,McMinn,Tennessee,47107,7,0 +2020-04-25,McMinn,Tennessee,47107,10,0 +2020-04-26,McMinn,Tennessee,47107,14,0 +2020-04-27,McMinn,Tennessee,47107,65,0 +2020-04-28,McMinn,Tennessee,47107,70,0 +2020-04-29,McMinn,Tennessee,47107,89,1 +2020-04-30,McMinn,Tennessee,47107,92,1 +2020-05-01,McMinn,Tennessee,47107,94,1 +2020-05-02,McMinn,Tennessee,47107,97,1 +2020-05-03,McMinn,Tennessee,47107,100,1 +2020-05-04,McMinn,Tennessee,47107,103,1 +2020-05-05,McMinn,Tennessee,47107,106,2 +2020-05-06,McMinn,Tennessee,47107,107,3 +2020-05-07,McMinn,Tennessee,47107,108,3 +2020-05-08,McMinn,Tennessee,47107,113,4 +2020-05-09,McMinn,Tennessee,47107,116,4 +2020-05-10,McMinn,Tennessee,47107,117,5 +2020-05-11,McMinn,Tennessee,47107,122,8 +2020-05-12,McMinn,Tennessee,47107,122,9 +2020-05-13,McMinn,Tennessee,47107,123,9 +2020-05-14,McMinn,Tennessee,47107,123,10 +2020-05-15,McMinn,Tennessee,47107,123,11 +2020-05-16,McMinn,Tennessee,47107,123,12 +2020-05-17,McMinn,Tennessee,47107,123,12 +2020-05-18,McMinn,Tennessee,47107,123,12 +2020-05-19,McMinn,Tennessee,47107,125,12 +2020-05-20,McMinn,Tennessee,47107,125,12 +2020-05-21,McMinn,Tennessee,47107,124,12 +2020-05-22,McMinn,Tennessee,47107,124,12 +2020-05-23,McMinn,Tennessee,47107,133,13 +2020-05-24,McMinn,Tennessee,47107,134,13 +2020-05-25,McMinn,Tennessee,47107,135,14 +2020-05-26,McMinn,Tennessee,47107,135,14 +2020-05-27,McMinn,Tennessee,47107,136,14 +2020-05-28,McMinn,Tennessee,47107,136,14 +2020-05-29,McMinn,Tennessee,47107,136,14 +2020-05-30,McMinn,Tennessee,47107,141,14 +2020-05-31,McMinn,Tennessee,47107,141,14 +2020-06-01,McMinn,Tennessee,47107,141,14 +2020-06-02,McMinn,Tennessee,47107,143,14 +2020-06-03,McMinn,Tennessee,47107,144,14 +2020-06-04,McMinn,Tennessee,47107,146,14 +2020-06-05,McMinn,Tennessee,47107,146,14 +2020-06-06,McMinn,Tennessee,47107,150,14 +2020-06-07,McMinn,Tennessee,47107,150,14 +2020-06-08,McMinn,Tennessee,47107,153,14 +2020-06-09,McMinn,Tennessee,47107,159,14 +2020-06-10,McMinn,Tennessee,47107,159,14 +2020-06-11,McMinn,Tennessee,47107,161,14 +2020-06-12,McMinn,Tennessee,47107,162,14 +2020-06-13,McMinn,Tennessee,47107,165,14 +2020-06-14,McMinn,Tennessee,47107,165,14 +2020-06-15,McMinn,Tennessee,47107,168,14 +2020-06-16,McMinn,Tennessee,47107,169,15 +2020-06-17,McMinn,Tennessee,47107,170,15 +2020-06-18,McMinn,Tennessee,47107,171,15 +2020-06-19,McMinn,Tennessee,47107,172,15 +2020-06-20,McMinn,Tennessee,47107,172,15 +2020-06-21,McMinn,Tennessee,47107,173,15 +2020-06-22,McMinn,Tennessee,47107,175,15 +2020-06-23,McMinn,Tennessee,47107,183,16 +2020-06-24,McMinn,Tennessee,47107,192,17 +2020-06-25,McMinn,Tennessee,47107,194,17 +2020-06-26,McMinn,Tennessee,47107,201,17 +2020-06-27,McMinn,Tennessee,47107,203,17 +2020-06-28,McMinn,Tennessee,47107,203,17 +2020-06-29,McMinn,Tennessee,47107,212,17 +2020-06-30,McMinn,Tennessee,47107,210,17 +2020-07-01,McMinn,Tennessee,47107,216,17 +2020-07-02,McMinn,Tennessee,47107,218,17 +2020-07-03,McMinn,Tennessee,47107,227,18 +2020-07-04,McMinn,Tennessee,47107,232,18 +2020-07-05,McMinn,Tennessee,47107,237,18 +2020-07-06,McMinn,Tennessee,47107,239,18 +2020-07-07,McMinn,Tennessee,47107,243,18 +2020-07-08,McMinn,Tennessee,47107,255,18 +2020-07-09,McMinn,Tennessee,47107,257,18 +2020-03-29,McNairy,Tennessee,47109,1,0 +2020-03-30,McNairy,Tennessee,47109,1,0 +2020-03-31,McNairy,Tennessee,47109,1,0 +2020-04-01,McNairy,Tennessee,47109,1,0 +2020-04-02,McNairy,Tennessee,47109,3,0 +2020-04-03,McNairy,Tennessee,47109,3,0 +2020-04-04,McNairy,Tennessee,47109,3,0 +2020-04-05,McNairy,Tennessee,47109,3,0 +2020-04-06,McNairy,Tennessee,47109,4,0 +2020-04-07,McNairy,Tennessee,47109,5,0 +2020-04-08,McNairy,Tennessee,47109,7,0 +2020-04-09,McNairy,Tennessee,47109,9,0 +2020-04-10,McNairy,Tennessee,47109,9,0 +2020-04-11,McNairy,Tennessee,47109,9,0 +2020-04-12,McNairy,Tennessee,47109,9,0 +2020-04-13,McNairy,Tennessee,47109,9,0 +2020-04-14,McNairy,Tennessee,47109,9,0 +2020-04-15,McNairy,Tennessee,47109,9,0 +2020-04-16,McNairy,Tennessee,47109,9,0 +2020-04-17,McNairy,Tennessee,47109,9,0 +2020-04-18,McNairy,Tennessee,47109,9,0 +2020-04-19,McNairy,Tennessee,47109,9,0 +2020-04-20,McNairy,Tennessee,47109,9,0 +2020-04-21,McNairy,Tennessee,47109,9,0 +2020-04-22,McNairy,Tennessee,47109,10,0 +2020-04-23,McNairy,Tennessee,47109,10,0 +2020-04-24,McNairy,Tennessee,47109,11,0 +2020-04-25,McNairy,Tennessee,47109,11,0 +2020-04-26,McNairy,Tennessee,47109,11,0 +2020-04-27,McNairy,Tennessee,47109,11,0 +2020-04-28,McNairy,Tennessee,47109,11,0 +2020-04-29,McNairy,Tennessee,47109,11,0 +2020-04-30,McNairy,Tennessee,47109,11,0 +2020-05-01,McNairy,Tennessee,47109,11,0 +2020-05-02,McNairy,Tennessee,47109,11,0 +2020-05-03,McNairy,Tennessee,47109,11,0 +2020-05-04,McNairy,Tennessee,47109,11,0 +2020-05-05,McNairy,Tennessee,47109,11,0 +2020-05-06,McNairy,Tennessee,47109,11,0 +2020-05-07,McNairy,Tennessee,47109,11,0 +2020-05-08,McNairy,Tennessee,47109,11,0 +2020-05-09,McNairy,Tennessee,47109,11,0 +2020-05-10,McNairy,Tennessee,47109,11,0 +2020-05-11,McNairy,Tennessee,47109,11,0 +2020-05-12,McNairy,Tennessee,47109,11,0 +2020-05-13,McNairy,Tennessee,47109,12,0 +2020-05-14,McNairy,Tennessee,47109,12,0 +2020-05-15,McNairy,Tennessee,47109,12,0 +2020-05-16,McNairy,Tennessee,47109,12,0 +2020-05-17,McNairy,Tennessee,47109,12,0 +2020-05-18,McNairy,Tennessee,47109,12,0 +2020-05-19,McNairy,Tennessee,47109,12,0 +2020-05-20,McNairy,Tennessee,47109,12,0 +2020-05-21,McNairy,Tennessee,47109,12,0 +2020-05-22,McNairy,Tennessee,47109,12,0 +2020-05-23,McNairy,Tennessee,47109,12,0 +2020-05-24,McNairy,Tennessee,47109,12,0 +2020-05-25,McNairy,Tennessee,47109,12,0 +2020-05-26,McNairy,Tennessee,47109,12,0 +2020-05-27,McNairy,Tennessee,47109,12,0 +2020-05-28,McNairy,Tennessee,47109,12,0 +2020-05-29,McNairy,Tennessee,47109,12,0 +2020-05-30,McNairy,Tennessee,47109,12,0 +2020-05-31,McNairy,Tennessee,47109,12,0 +2020-06-01,McNairy,Tennessee,47109,12,0 +2020-06-02,McNairy,Tennessee,47109,15,0 +2020-06-03,McNairy,Tennessee,47109,15,0 +2020-06-04,McNairy,Tennessee,47109,15,0 +2020-06-05,McNairy,Tennessee,47109,15,0 +2020-06-06,McNairy,Tennessee,47109,19,0 +2020-06-07,McNairy,Tennessee,47109,23,0 +2020-06-08,McNairy,Tennessee,47109,24,0 +2020-06-09,McNairy,Tennessee,47109,23,0 +2020-06-10,McNairy,Tennessee,47109,24,0 +2020-06-11,McNairy,Tennessee,47109,25,0 +2020-06-12,McNairy,Tennessee,47109,26,0 +2020-06-13,McNairy,Tennessee,47109,27,0 +2020-06-14,McNairy,Tennessee,47109,27,0 +2020-06-15,McNairy,Tennessee,47109,31,0 +2020-06-16,McNairy,Tennessee,47109,31,0 +2020-06-17,McNairy,Tennessee,47109,33,0 +2020-06-18,McNairy,Tennessee,47109,35,0 +2020-06-19,McNairy,Tennessee,47109,38,0 +2020-06-20,McNairy,Tennessee,47109,38,0 +2020-06-21,McNairy,Tennessee,47109,40,0 +2020-06-22,McNairy,Tennessee,47109,42,0 +2020-06-23,McNairy,Tennessee,47109,45,0 +2020-06-24,McNairy,Tennessee,47109,47,0 +2020-06-25,McNairy,Tennessee,47109,48,0 +2020-06-26,McNairy,Tennessee,47109,50,0 +2020-06-27,McNairy,Tennessee,47109,52,0 +2020-06-28,McNairy,Tennessee,47109,52,0 +2020-06-29,McNairy,Tennessee,47109,56,0 +2020-06-30,McNairy,Tennessee,47109,58,0 +2020-07-01,McNairy,Tennessee,47109,62,0 +2020-07-02,McNairy,Tennessee,47109,64,0 +2020-07-03,McNairy,Tennessee,47109,68,0 +2020-07-04,McNairy,Tennessee,47109,69,0 +2020-07-05,McNairy,Tennessee,47109,73,0 +2020-07-06,McNairy,Tennessee,47109,76,0 +2020-07-07,McNairy,Tennessee,47109,76,0 +2020-07-08,McNairy,Tennessee,47109,84,1 +2020-07-09,McNairy,Tennessee,47109,91,1 +2020-03-26,Macon,Tennessee,47111,1,0 +2020-03-27,Macon,Tennessee,47111,1,0 +2020-03-28,Macon,Tennessee,47111,2,0 +2020-03-29,Macon,Tennessee,47111,3,0 +2020-03-30,Macon,Tennessee,47111,3,0 +2020-03-31,Macon,Tennessee,47111,4,0 +2020-04-01,Macon,Tennessee,47111,4,0 +2020-04-02,Macon,Tennessee,47111,5,0 +2020-04-03,Macon,Tennessee,47111,7,0 +2020-04-04,Macon,Tennessee,47111,7,0 +2020-04-05,Macon,Tennessee,47111,9,0 +2020-04-06,Macon,Tennessee,47111,11,1 +2020-04-07,Macon,Tennessee,47111,12,1 +2020-04-08,Macon,Tennessee,47111,16,1 +2020-04-09,Macon,Tennessee,47111,16,1 +2020-04-10,Macon,Tennessee,47111,19,2 +2020-04-11,Macon,Tennessee,47111,25,2 +2020-04-12,Macon,Tennessee,47111,25,2 +2020-04-13,Macon,Tennessee,47111,26,2 +2020-04-14,Macon,Tennessee,47111,27,2 +2020-04-15,Macon,Tennessee,47111,29,3 +2020-04-16,Macon,Tennessee,47111,30,3 +2020-04-17,Macon,Tennessee,47111,31,3 +2020-04-18,Macon,Tennessee,47111,33,3 +2020-04-19,Macon,Tennessee,47111,33,3 +2020-04-20,Macon,Tennessee,47111,34,3 +2020-04-21,Macon,Tennessee,47111,34,3 +2020-04-22,Macon,Tennessee,47111,35,3 +2020-04-23,Macon,Tennessee,47111,35,3 +2020-04-24,Macon,Tennessee,47111,35,3 +2020-04-25,Macon,Tennessee,47111,37,3 +2020-04-26,Macon,Tennessee,47111,38,3 +2020-04-27,Macon,Tennessee,47111,39,3 +2020-04-28,Macon,Tennessee,47111,39,3 +2020-04-29,Macon,Tennessee,47111,39,3 +2020-04-30,Macon,Tennessee,47111,40,3 +2020-05-01,Macon,Tennessee,47111,41,3 +2020-05-02,Macon,Tennessee,47111,44,3 +2020-05-03,Macon,Tennessee,47111,50,3 +2020-05-04,Macon,Tennessee,47111,53,3 +2020-05-05,Macon,Tennessee,47111,53,3 +2020-05-06,Macon,Tennessee,47111,54,3 +2020-05-07,Macon,Tennessee,47111,55,3 +2020-05-08,Macon,Tennessee,47111,57,3 +2020-05-09,Macon,Tennessee,47111,58,3 +2020-05-10,Macon,Tennessee,47111,58,3 +2020-05-11,Macon,Tennessee,47111,59,3 +2020-05-12,Macon,Tennessee,47111,69,3 +2020-05-13,Macon,Tennessee,47111,71,3 +2020-05-14,Macon,Tennessee,47111,74,3 +2020-05-15,Macon,Tennessee,47111,75,3 +2020-05-16,Macon,Tennessee,47111,81,3 +2020-05-17,Macon,Tennessee,47111,81,3 +2020-05-18,Macon,Tennessee,47111,90,3 +2020-05-19,Macon,Tennessee,47111,93,3 +2020-05-20,Macon,Tennessee,47111,93,3 +2020-05-21,Macon,Tennessee,47111,93,3 +2020-05-22,Macon,Tennessee,47111,97,3 +2020-05-23,Macon,Tennessee,47111,97,3 +2020-05-24,Macon,Tennessee,47111,100,3 +2020-05-25,Macon,Tennessee,47111,101,3 +2020-05-26,Macon,Tennessee,47111,108,3 +2020-05-27,Macon,Tennessee,47111,119,3 +2020-05-28,Macon,Tennessee,47111,124,3 +2020-05-29,Macon,Tennessee,47111,130,3 +2020-05-30,Macon,Tennessee,47111,136,3 +2020-05-31,Macon,Tennessee,47111,136,3 +2020-06-01,Macon,Tennessee,47111,136,3 +2020-06-02,Macon,Tennessee,47111,157,3 +2020-06-03,Macon,Tennessee,47111,158,3 +2020-06-04,Macon,Tennessee,47111,166,3 +2020-06-05,Macon,Tennessee,47111,171,3 +2020-06-06,Macon,Tennessee,47111,177,3 +2020-06-07,Macon,Tennessee,47111,178,3 +2020-06-08,Macon,Tennessee,47111,181,3 +2020-06-09,Macon,Tennessee,47111,185,3 +2020-06-10,Macon,Tennessee,47111,186,3 +2020-06-11,Macon,Tennessee,47111,191,3 +2020-06-12,Macon,Tennessee,47111,189,3 +2020-06-13,Macon,Tennessee,47111,190,3 +2020-06-14,Macon,Tennessee,47111,204,3 +2020-06-15,Macon,Tennessee,47111,207,3 +2020-06-16,Macon,Tennessee,47111,209,3 +2020-06-17,Macon,Tennessee,47111,209,3 +2020-06-18,Macon,Tennessee,47111,216,3 +2020-06-19,Macon,Tennessee,47111,217,3 +2020-06-20,Macon,Tennessee,47111,219,3 +2020-06-21,Macon,Tennessee,47111,222,3 +2020-06-22,Macon,Tennessee,47111,223,3 +2020-06-23,Macon,Tennessee,47111,230,3 +2020-06-24,Macon,Tennessee,47111,235,3 +2020-06-25,Macon,Tennessee,47111,241,3 +2020-06-26,Macon,Tennessee,47111,280,3 +2020-06-27,Macon,Tennessee,47111,293,3 +2020-06-28,Macon,Tennessee,47111,293,3 +2020-06-29,Macon,Tennessee,47111,361,3 +2020-06-30,Macon,Tennessee,47111,394,3 +2020-07-01,Macon,Tennessee,47111,409,3 +2020-07-02,Macon,Tennessee,47111,421,3 +2020-07-03,Macon,Tennessee,47111,436,3 +2020-07-04,Macon,Tennessee,47111,452,3 +2020-07-05,Macon,Tennessee,47111,465,4 +2020-07-06,Macon,Tennessee,47111,487,4 +2020-07-07,Macon,Tennessee,47111,500,4 +2020-07-08,Macon,Tennessee,47111,511,4 +2020-07-09,Macon,Tennessee,47111,546,6 +2020-03-24,Madison,Tennessee,47113,1,0 +2020-03-25,Madison,Tennessee,47113,2,0 +2020-03-26,Madison,Tennessee,47113,2,0 +2020-03-27,Madison,Tennessee,47113,3,0 +2020-03-28,Madison,Tennessee,47113,3,0 +2020-03-29,Madison,Tennessee,47113,3,0 +2020-03-30,Madison,Tennessee,47113,5,0 +2020-03-31,Madison,Tennessee,47113,5,0 +2020-04-01,Madison,Tennessee,47113,7,0 +2020-04-02,Madison,Tennessee,47113,13,0 +2020-04-03,Madison,Tennessee,47113,17,0 +2020-04-04,Madison,Tennessee,47113,19,0 +2020-04-05,Madison,Tennessee,47113,19,0 +2020-04-06,Madison,Tennessee,47113,22,0 +2020-04-07,Madison,Tennessee,47113,43,0 +2020-04-08,Madison,Tennessee,47113,43,0 +2020-04-09,Madison,Tennessee,47113,47,0 +2020-04-10,Madison,Tennessee,47113,56,0 +2020-04-11,Madison,Tennessee,47113,56,0 +2020-04-12,Madison,Tennessee,47113,56,0 +2020-04-13,Madison,Tennessee,47113,68,0 +2020-04-14,Madison,Tennessee,47113,73,0 +2020-04-15,Madison,Tennessee,47113,75,0 +2020-04-16,Madison,Tennessee,47113,73,0 +2020-04-17,Madison,Tennessee,47113,83,0 +2020-04-18,Madison,Tennessee,47113,83,0 +2020-04-19,Madison,Tennessee,47113,86,1 +2020-04-20,Madison,Tennessee,47113,91,1 +2020-04-21,Madison,Tennessee,47113,94,1 +2020-04-22,Madison,Tennessee,47113,95,1 +2020-04-23,Madison,Tennessee,47113,96,1 +2020-04-24,Madison,Tennessee,47113,98,1 +2020-04-25,Madison,Tennessee,47113,99,1 +2020-04-26,Madison,Tennessee,47113,101,1 +2020-04-27,Madison,Tennessee,47113,104,1 +2020-04-28,Madison,Tennessee,47113,128,1 +2020-04-29,Madison,Tennessee,47113,131,1 +2020-04-30,Madison,Tennessee,47113,135,1 +2020-05-01,Madison,Tennessee,47113,136,1 +2020-05-02,Madison,Tennessee,47113,138,1 +2020-05-03,Madison,Tennessee,47113,140,1 +2020-05-04,Madison,Tennessee,47113,142,1 +2020-05-05,Madison,Tennessee,47113,140,1 +2020-05-06,Madison,Tennessee,47113,144,1 +2020-05-07,Madison,Tennessee,47113,145,1 +2020-05-08,Madison,Tennessee,47113,148,1 +2020-05-09,Madison,Tennessee,47113,150,1 +2020-05-10,Madison,Tennessee,47113,151,1 +2020-05-11,Madison,Tennessee,47113,156,1 +2020-05-12,Madison,Tennessee,47113,157,1 +2020-05-13,Madison,Tennessee,47113,156,1 +2020-05-14,Madison,Tennessee,47113,157,2 +2020-05-15,Madison,Tennessee,47113,160,2 +2020-05-16,Madison,Tennessee,47113,162,2 +2020-05-17,Madison,Tennessee,47113,163,2 +2020-05-18,Madison,Tennessee,47113,163,2 +2020-05-19,Madison,Tennessee,47113,162,2 +2020-05-20,Madison,Tennessee,47113,162,2 +2020-05-21,Madison,Tennessee,47113,162,2 +2020-05-22,Madison,Tennessee,47113,163,2 +2020-05-23,Madison,Tennessee,47113,164,2 +2020-05-24,Madison,Tennessee,47113,165,2 +2020-05-25,Madison,Tennessee,47113,173,2 +2020-05-26,Madison,Tennessee,47113,174,2 +2020-05-27,Madison,Tennessee,47113,174,2 +2020-05-28,Madison,Tennessee,47113,175,2 +2020-05-29,Madison,Tennessee,47113,175,2 +2020-05-30,Madison,Tennessee,47113,175,2 +2020-05-31,Madison,Tennessee,47113,175,2 +2020-06-01,Madison,Tennessee,47113,175,2 +2020-06-02,Madison,Tennessee,47113,174,2 +2020-06-03,Madison,Tennessee,47113,173,2 +2020-06-04,Madison,Tennessee,47113,173,2 +2020-06-05,Madison,Tennessee,47113,173,2 +2020-06-06,Madison,Tennessee,47113,174,2 +2020-06-07,Madison,Tennessee,47113,178,2 +2020-06-08,Madison,Tennessee,47113,179,2 +2020-06-09,Madison,Tennessee,47113,181,2 +2020-06-10,Madison,Tennessee,47113,183,2 +2020-06-11,Madison,Tennessee,47113,182,2 +2020-06-12,Madison,Tennessee,47113,182,2 +2020-06-13,Madison,Tennessee,47113,182,2 +2020-06-14,Madison,Tennessee,47113,184,2 +2020-06-15,Madison,Tennessee,47113,183,2 +2020-06-16,Madison,Tennessee,47113,183,2 +2020-06-17,Madison,Tennessee,47113,188,2 +2020-06-18,Madison,Tennessee,47113,188,2 +2020-06-19,Madison,Tennessee,47113,190,2 +2020-06-20,Madison,Tennessee,47113,192,2 +2020-06-21,Madison,Tennessee,47113,193,2 +2020-06-22,Madison,Tennessee,47113,196,2 +2020-06-23,Madison,Tennessee,47113,202,2 +2020-06-24,Madison,Tennessee,47113,201,2 +2020-06-25,Madison,Tennessee,47113,206,2 +2020-06-26,Madison,Tennessee,47113,210,2 +2020-06-27,Madison,Tennessee,47113,228,2 +2020-06-28,Madison,Tennessee,47113,228,2 +2020-06-29,Madison,Tennessee,47113,233,2 +2020-06-30,Madison,Tennessee,47113,247,2 +2020-07-01,Madison,Tennessee,47113,255,2 +2020-07-02,Madison,Tennessee,47113,264,2 +2020-07-03,Madison,Tennessee,47113,280,2 +2020-07-04,Madison,Tennessee,47113,291,2 +2020-07-05,Madison,Tennessee,47113,299,2 +2020-07-06,Madison,Tennessee,47113,305,2 +2020-07-07,Madison,Tennessee,47113,318,2 +2020-07-08,Madison,Tennessee,47113,339,2 +2020-07-09,Madison,Tennessee,47113,340,2 +2020-03-22,Marion,Tennessee,47115,1,0 +2020-03-23,Marion,Tennessee,47115,1,0 +2020-03-24,Marion,Tennessee,47115,1,0 +2020-03-25,Marion,Tennessee,47115,1,0 +2020-03-26,Marion,Tennessee,47115,2,0 +2020-03-27,Marion,Tennessee,47115,2,0 +2020-03-28,Marion,Tennessee,47115,4,0 +2020-03-29,Marion,Tennessee,47115,5,0 +2020-03-30,Marion,Tennessee,47115,6,0 +2020-03-31,Marion,Tennessee,47115,6,0 +2020-04-01,Marion,Tennessee,47115,8,1 +2020-04-02,Marion,Tennessee,47115,13,1 +2020-04-03,Marion,Tennessee,47115,14,1 +2020-04-04,Marion,Tennessee,47115,16,1 +2020-04-05,Marion,Tennessee,47115,16,1 +2020-04-06,Marion,Tennessee,47115,20,1 +2020-04-07,Marion,Tennessee,47115,21,1 +2020-04-08,Marion,Tennessee,47115,21,1 +2020-04-09,Marion,Tennessee,47115,22,1 +2020-04-10,Marion,Tennessee,47115,22,1 +2020-04-11,Marion,Tennessee,47115,24,1 +2020-04-12,Marion,Tennessee,47115,24,1 +2020-04-13,Marion,Tennessee,47115,26,1 +2020-04-14,Marion,Tennessee,47115,26,1 +2020-04-15,Marion,Tennessee,47115,27,1 +2020-04-16,Marion,Tennessee,47115,27,1 +2020-04-17,Marion,Tennessee,47115,28,1 +2020-04-18,Marion,Tennessee,47115,28,1 +2020-04-19,Marion,Tennessee,47115,28,1 +2020-04-20,Marion,Tennessee,47115,28,1 +2020-04-21,Marion,Tennessee,47115,28,1 +2020-04-22,Marion,Tennessee,47115,28,1 +2020-04-23,Marion,Tennessee,47115,28,1 +2020-04-24,Marion,Tennessee,47115,28,1 +2020-04-25,Marion,Tennessee,47115,28,1 +2020-04-26,Marion,Tennessee,47115,28,1 +2020-04-27,Marion,Tennessee,47115,28,1 +2020-04-28,Marion,Tennessee,47115,28,1 +2020-04-29,Marion,Tennessee,47115,28,1 +2020-04-30,Marion,Tennessee,47115,29,1 +2020-05-01,Marion,Tennessee,47115,29,1 +2020-05-02,Marion,Tennessee,47115,29,1 +2020-05-03,Marion,Tennessee,47115,29,1 +2020-05-04,Marion,Tennessee,47115,29,1 +2020-05-05,Marion,Tennessee,47115,29,1 +2020-05-06,Marion,Tennessee,47115,29,1 +2020-05-07,Marion,Tennessee,47115,29,1 +2020-05-08,Marion,Tennessee,47115,29,1 +2020-05-09,Marion,Tennessee,47115,29,1 +2020-05-10,Marion,Tennessee,47115,29,1 +2020-05-11,Marion,Tennessee,47115,29,1 +2020-05-12,Marion,Tennessee,47115,29,1 +2020-05-13,Marion,Tennessee,47115,29,1 +2020-05-14,Marion,Tennessee,47115,30,1 +2020-05-15,Marion,Tennessee,47115,30,1 +2020-05-16,Marion,Tennessee,47115,31,1 +2020-05-17,Marion,Tennessee,47115,32,1 +2020-05-18,Marion,Tennessee,47115,33,1 +2020-05-19,Marion,Tennessee,47115,34,1 +2020-05-20,Marion,Tennessee,47115,34,1 +2020-05-21,Marion,Tennessee,47115,35,1 +2020-05-22,Marion,Tennessee,47115,35,1 +2020-05-23,Marion,Tennessee,47115,36,1 +2020-05-24,Marion,Tennessee,47115,36,1 +2020-05-25,Marion,Tennessee,47115,36,1 +2020-05-26,Marion,Tennessee,47115,37,1 +2020-05-27,Marion,Tennessee,47115,37,1 +2020-05-28,Marion,Tennessee,47115,38,1 +2020-05-29,Marion,Tennessee,47115,39,1 +2020-05-30,Marion,Tennessee,47115,40,1 +2020-05-31,Marion,Tennessee,47115,40,1 +2020-06-01,Marion,Tennessee,47115,40,1 +2020-06-02,Marion,Tennessee,47115,42,1 +2020-06-03,Marion,Tennessee,47115,42,1 +2020-06-04,Marion,Tennessee,47115,44,1 +2020-06-05,Marion,Tennessee,47115,44,1 +2020-06-06,Marion,Tennessee,47115,45,1 +2020-06-07,Marion,Tennessee,47115,45,1 +2020-06-08,Marion,Tennessee,47115,45,1 +2020-06-09,Marion,Tennessee,47115,45,1 +2020-06-10,Marion,Tennessee,47115,46,1 +2020-06-11,Marion,Tennessee,47115,47,1 +2020-06-12,Marion,Tennessee,47115,48,2 +2020-06-13,Marion,Tennessee,47115,49,2 +2020-06-14,Marion,Tennessee,47115,49,2 +2020-06-15,Marion,Tennessee,47115,49,2 +2020-06-16,Marion,Tennessee,47115,49,2 +2020-06-17,Marion,Tennessee,47115,49,2 +2020-06-18,Marion,Tennessee,47115,49,2 +2020-06-19,Marion,Tennessee,47115,48,2 +2020-06-20,Marion,Tennessee,47115,49,3 +2020-06-21,Marion,Tennessee,47115,50,3 +2020-06-22,Marion,Tennessee,47115,50,3 +2020-06-23,Marion,Tennessee,47115,53,4 +2020-06-24,Marion,Tennessee,47115,54,4 +2020-06-25,Marion,Tennessee,47115,56,4 +2020-06-26,Marion,Tennessee,47115,56,4 +2020-06-27,Marion,Tennessee,47115,57,4 +2020-06-28,Marion,Tennessee,47115,57,4 +2020-06-29,Marion,Tennessee,47115,61,4 +2020-06-30,Marion,Tennessee,47115,64,4 +2020-07-01,Marion,Tennessee,47115,67,4 +2020-07-02,Marion,Tennessee,47115,67,4 +2020-07-03,Marion,Tennessee,47115,71,4 +2020-07-04,Marion,Tennessee,47115,70,4 +2020-07-05,Marion,Tennessee,47115,73,4 +2020-07-06,Marion,Tennessee,47115,74,4 +2020-07-07,Marion,Tennessee,47115,79,4 +2020-07-08,Marion,Tennessee,47115,87,4 +2020-07-09,Marion,Tennessee,47115,90,4 +2020-03-30,Marshall,Tennessee,47117,1,0 +2020-03-31,Marshall,Tennessee,47117,1,0 +2020-04-01,Marshall,Tennessee,47117,1,0 +2020-04-02,Marshall,Tennessee,47117,2,0 +2020-04-03,Marshall,Tennessee,47117,4,0 +2020-04-04,Marshall,Tennessee,47117,4,0 +2020-04-05,Marshall,Tennessee,47117,6,0 +2020-04-06,Marshall,Tennessee,47117,9,0 +2020-04-07,Marshall,Tennessee,47117,9,0 +2020-04-08,Marshall,Tennessee,47117,9,0 +2020-04-09,Marshall,Tennessee,47117,9,0 +2020-04-10,Marshall,Tennessee,47117,9,1 +2020-04-11,Marshall,Tennessee,47117,9,1 +2020-04-12,Marshall,Tennessee,47117,9,1 +2020-04-13,Marshall,Tennessee,47117,9,1 +2020-04-14,Marshall,Tennessee,47117,9,1 +2020-04-15,Marshall,Tennessee,47117,9,1 +2020-04-16,Marshall,Tennessee,47117,12,1 +2020-04-17,Marshall,Tennessee,47117,13,1 +2020-04-18,Marshall,Tennessee,47117,16,1 +2020-04-19,Marshall,Tennessee,47117,16,1 +2020-04-20,Marshall,Tennessee,47117,16,1 +2020-04-21,Marshall,Tennessee,47117,22,1 +2020-04-22,Marshall,Tennessee,47117,24,1 +2020-04-23,Marshall,Tennessee,47117,22,1 +2020-04-24,Marshall,Tennessee,47117,22,1 +2020-04-25,Marshall,Tennessee,47117,22,1 +2020-04-26,Marshall,Tennessee,47117,22,1 +2020-04-27,Marshall,Tennessee,47117,22,1 +2020-04-28,Marshall,Tennessee,47117,22,1 +2020-04-29,Marshall,Tennessee,47117,22,1 +2020-04-30,Marshall,Tennessee,47117,22,1 +2020-05-01,Marshall,Tennessee,47117,23,1 +2020-05-02,Marshall,Tennessee,47117,23,1 +2020-05-03,Marshall,Tennessee,47117,23,1 +2020-05-04,Marshall,Tennessee,47117,24,1 +2020-05-05,Marshall,Tennessee,47117,24,1 +2020-05-06,Marshall,Tennessee,47117,23,1 +2020-05-07,Marshall,Tennessee,47117,24,1 +2020-05-08,Marshall,Tennessee,47117,24,1 +2020-05-09,Marshall,Tennessee,47117,24,1 +2020-05-10,Marshall,Tennessee,47117,24,1 +2020-05-11,Marshall,Tennessee,47117,24,1 +2020-05-12,Marshall,Tennessee,47117,24,1 +2020-05-13,Marshall,Tennessee,47117,24,1 +2020-05-14,Marshall,Tennessee,47117,25,1 +2020-05-15,Marshall,Tennessee,47117,25,1 +2020-05-16,Marshall,Tennessee,47117,26,1 +2020-05-17,Marshall,Tennessee,47117,26,1 +2020-05-18,Marshall,Tennessee,47117,27,1 +2020-05-19,Marshall,Tennessee,47117,26,1 +2020-05-20,Marshall,Tennessee,47117,26,1 +2020-05-21,Marshall,Tennessee,47117,27,1 +2020-05-22,Marshall,Tennessee,47117,28,1 +2020-05-23,Marshall,Tennessee,47117,27,1 +2020-05-24,Marshall,Tennessee,47117,27,1 +2020-05-25,Marshall,Tennessee,47117,29,1 +2020-05-26,Marshall,Tennessee,47117,29,1 +2020-05-27,Marshall,Tennessee,47117,29,1 +2020-05-28,Marshall,Tennessee,47117,30,1 +2020-05-29,Marshall,Tennessee,47117,31,1 +2020-05-30,Marshall,Tennessee,47117,31,1 +2020-05-31,Marshall,Tennessee,47117,31,1 +2020-06-01,Marshall,Tennessee,47117,31,1 +2020-06-02,Marshall,Tennessee,47117,32,1 +2020-06-03,Marshall,Tennessee,47117,33,1 +2020-06-04,Marshall,Tennessee,47117,33,1 +2020-06-05,Marshall,Tennessee,47117,34,1 +2020-06-06,Marshall,Tennessee,47117,36,1 +2020-06-07,Marshall,Tennessee,47117,36,1 +2020-06-08,Marshall,Tennessee,47117,36,1 +2020-06-09,Marshall,Tennessee,47117,37,1 +2020-06-10,Marshall,Tennessee,47117,40,1 +2020-06-11,Marshall,Tennessee,47117,39,1 +2020-06-12,Marshall,Tennessee,47117,40,1 +2020-06-13,Marshall,Tennessee,47117,40,1 +2020-06-14,Marshall,Tennessee,47117,41,1 +2020-06-15,Marshall,Tennessee,47117,41,1 +2020-06-16,Marshall,Tennessee,47117,43,1 +2020-06-17,Marshall,Tennessee,47117,44,1 +2020-06-18,Marshall,Tennessee,47117,45,1 +2020-06-19,Marshall,Tennessee,47117,44,1 +2020-06-20,Marshall,Tennessee,47117,46,1 +2020-06-21,Marshall,Tennessee,47117,46,1 +2020-06-22,Marshall,Tennessee,47117,46,1 +2020-06-23,Marshall,Tennessee,47117,48,1 +2020-06-24,Marshall,Tennessee,47117,49,1 +2020-06-25,Marshall,Tennessee,47117,49,1 +2020-06-26,Marshall,Tennessee,47117,54,1 +2020-06-27,Marshall,Tennessee,47117,60,1 +2020-06-28,Marshall,Tennessee,47117,60,1 +2020-06-29,Marshall,Tennessee,47117,67,1 +2020-06-30,Marshall,Tennessee,47117,71,1 +2020-07-01,Marshall,Tennessee,47117,73,1 +2020-07-02,Marshall,Tennessee,47117,74,1 +2020-07-03,Marshall,Tennessee,47117,81,1 +2020-07-04,Marshall,Tennessee,47117,89,1 +2020-07-05,Marshall,Tennessee,47117,91,1 +2020-07-06,Marshall,Tennessee,47117,92,1 +2020-07-07,Marshall,Tennessee,47117,98,1 +2020-07-08,Marshall,Tennessee,47117,101,1 +2020-07-09,Marshall,Tennessee,47117,104,2 +2020-03-20,Maury,Tennessee,47119,1,0 +2020-03-21,Maury,Tennessee,47119,1,0 +2020-03-22,Maury,Tennessee,47119,2,0 +2020-03-23,Maury,Tennessee,47119,2,0 +2020-03-24,Maury,Tennessee,47119,6,0 +2020-03-25,Maury,Tennessee,47119,7,0 +2020-03-26,Maury,Tennessee,47119,7,0 +2020-03-27,Maury,Tennessee,47119,7,0 +2020-03-28,Maury,Tennessee,47119,8,0 +2020-03-29,Maury,Tennessee,47119,8,0 +2020-03-30,Maury,Tennessee,47119,11,0 +2020-03-31,Maury,Tennessee,47119,15,0 +2020-04-01,Maury,Tennessee,47119,17,0 +2020-04-02,Maury,Tennessee,47119,18,0 +2020-04-03,Maury,Tennessee,47119,20,0 +2020-04-04,Maury,Tennessee,47119,21,0 +2020-04-05,Maury,Tennessee,47119,21,0 +2020-04-06,Maury,Tennessee,47119,24,0 +2020-04-07,Maury,Tennessee,47119,26,0 +2020-04-08,Maury,Tennessee,47119,29,0 +2020-04-09,Maury,Tennessee,47119,31,1 +2020-04-10,Maury,Tennessee,47119,32,1 +2020-04-11,Maury,Tennessee,47119,32,1 +2020-04-12,Maury,Tennessee,47119,32,1 +2020-04-13,Maury,Tennessee,47119,33,1 +2020-04-14,Maury,Tennessee,47119,33,1 +2020-04-15,Maury,Tennessee,47119,33,1 +2020-04-16,Maury,Tennessee,47119,33,1 +2020-04-17,Maury,Tennessee,47119,34,1 +2020-04-18,Maury,Tennessee,47119,34,1 +2020-04-19,Maury,Tennessee,47119,34,1 +2020-04-20,Maury,Tennessee,47119,34,1 +2020-04-21,Maury,Tennessee,47119,34,1 +2020-04-22,Maury,Tennessee,47119,34,1 +2020-04-23,Maury,Tennessee,47119,35,1 +2020-04-24,Maury,Tennessee,47119,36,1 +2020-04-25,Maury,Tennessee,47119,38,1 +2020-04-26,Maury,Tennessee,47119,40,1 +2020-04-27,Maury,Tennessee,47119,41,1 +2020-04-28,Maury,Tennessee,47119,40,1 +2020-04-29,Maury,Tennessee,47119,42,1 +2020-04-30,Maury,Tennessee,47119,42,1 +2020-05-01,Maury,Tennessee,47119,44,1 +2020-05-02,Maury,Tennessee,47119,44,1 +2020-05-03,Maury,Tennessee,47119,44,1 +2020-05-04,Maury,Tennessee,47119,49,1 +2020-05-05,Maury,Tennessee,47119,49,1 +2020-05-06,Maury,Tennessee,47119,51,1 +2020-05-07,Maury,Tennessee,47119,52,1 +2020-05-08,Maury,Tennessee,47119,52,0 +2020-05-09,Maury,Tennessee,47119,55,0 +2020-05-10,Maury,Tennessee,47119,55,0 +2020-05-11,Maury,Tennessee,47119,55,0 +2020-05-12,Maury,Tennessee,47119,57,0 +2020-05-13,Maury,Tennessee,47119,58,0 +2020-05-14,Maury,Tennessee,47119,60,0 +2020-05-15,Maury,Tennessee,47119,60,0 +2020-05-16,Maury,Tennessee,47119,61,0 +2020-05-17,Maury,Tennessee,47119,63,0 +2020-05-18,Maury,Tennessee,47119,68,0 +2020-05-19,Maury,Tennessee,47119,71,0 +2020-05-20,Maury,Tennessee,47119,71,0 +2020-05-21,Maury,Tennessee,47119,74,0 +2020-05-22,Maury,Tennessee,47119,78,0 +2020-05-23,Maury,Tennessee,47119,78,0 +2020-05-24,Maury,Tennessee,47119,78,0 +2020-05-25,Maury,Tennessee,47119,79,0 +2020-05-26,Maury,Tennessee,47119,80,0 +2020-05-27,Maury,Tennessee,47119,81,0 +2020-05-28,Maury,Tennessee,47119,81,0 +2020-05-29,Maury,Tennessee,47119,88,0 +2020-05-30,Maury,Tennessee,47119,89,0 +2020-05-31,Maury,Tennessee,47119,89,0 +2020-06-01,Maury,Tennessee,47119,89,0 +2020-06-02,Maury,Tennessee,47119,102,0 +2020-06-03,Maury,Tennessee,47119,105,0 +2020-06-04,Maury,Tennessee,47119,107,1 +2020-06-05,Maury,Tennessee,47119,108,1 +2020-06-06,Maury,Tennessee,47119,115,1 +2020-06-07,Maury,Tennessee,47119,115,1 +2020-06-08,Maury,Tennessee,47119,116,1 +2020-06-09,Maury,Tennessee,47119,124,1 +2020-06-10,Maury,Tennessee,47119,128,1 +2020-06-11,Maury,Tennessee,47119,139,1 +2020-06-12,Maury,Tennessee,47119,147,1 +2020-06-13,Maury,Tennessee,47119,149,1 +2020-06-14,Maury,Tennessee,47119,152,1 +2020-06-15,Maury,Tennessee,47119,163,1 +2020-06-16,Maury,Tennessee,47119,171,1 +2020-06-17,Maury,Tennessee,47119,177,1 +2020-06-18,Maury,Tennessee,47119,198,2 +2020-06-19,Maury,Tennessee,47119,205,2 +2020-06-20,Maury,Tennessee,47119,218,2 +2020-06-21,Maury,Tennessee,47119,220,2 +2020-06-22,Maury,Tennessee,47119,224,2 +2020-06-23,Maury,Tennessee,47119,241,2 +2020-06-24,Maury,Tennessee,47119,248,2 +2020-06-25,Maury,Tennessee,47119,259,2 +2020-06-26,Maury,Tennessee,47119,267,2 +2020-06-27,Maury,Tennessee,47119,276,3 +2020-06-28,Maury,Tennessee,47119,276,3 +2020-06-29,Maury,Tennessee,47119,282,3 +2020-06-30,Maury,Tennessee,47119,287,3 +2020-07-01,Maury,Tennessee,47119,297,3 +2020-07-02,Maury,Tennessee,47119,311,3 +2020-07-03,Maury,Tennessee,47119,326,3 +2020-07-04,Maury,Tennessee,47119,342,3 +2020-07-05,Maury,Tennessee,47119,354,3 +2020-07-06,Maury,Tennessee,47119,357,3 +2020-07-07,Maury,Tennessee,47119,379,3 +2020-07-08,Maury,Tennessee,47119,406,3 +2020-07-09,Maury,Tennessee,47119,420,3 +2020-03-26,Meigs,Tennessee,47121,1,0 +2020-03-27,Meigs,Tennessee,47121,1,0 +2020-03-28,Meigs,Tennessee,47121,1,0 +2020-03-29,Meigs,Tennessee,47121,1,0 +2020-03-30,Meigs,Tennessee,47121,1,0 +2020-03-31,Meigs,Tennessee,47121,1,0 +2020-04-01,Meigs,Tennessee,47121,1,0 +2020-04-02,Meigs,Tennessee,47121,2,0 +2020-04-03,Meigs,Tennessee,47121,2,0 +2020-04-04,Meigs,Tennessee,47121,2,0 +2020-04-05,Meigs,Tennessee,47121,2,0 +2020-04-06,Meigs,Tennessee,47121,2,0 +2020-04-07,Meigs,Tennessee,47121,2,0 +2020-04-08,Meigs,Tennessee,47121,3,0 +2020-04-09,Meigs,Tennessee,47121,3,0 +2020-04-10,Meigs,Tennessee,47121,3,0 +2020-04-11,Meigs,Tennessee,47121,3,0 +2020-04-12,Meigs,Tennessee,47121,3,0 +2020-04-13,Meigs,Tennessee,47121,3,0 +2020-04-14,Meigs,Tennessee,47121,3,0 +2020-04-15,Meigs,Tennessee,47121,3,0 +2020-04-16,Meigs,Tennessee,47121,3,0 +2020-04-17,Meigs,Tennessee,47121,3,0 +2020-04-18,Meigs,Tennessee,47121,3,0 +2020-04-19,Meigs,Tennessee,47121,3,0 +2020-04-20,Meigs,Tennessee,47121,3,0 +2020-04-21,Meigs,Tennessee,47121,3,0 +2020-04-22,Meigs,Tennessee,47121,5,0 +2020-04-23,Meigs,Tennessee,47121,5,0 +2020-04-24,Meigs,Tennessee,47121,5,0 +2020-04-25,Meigs,Tennessee,47121,5,0 +2020-04-26,Meigs,Tennessee,47121,6,0 +2020-04-27,Meigs,Tennessee,47121,6,0 +2020-04-28,Meigs,Tennessee,47121,6,0 +2020-04-29,Meigs,Tennessee,47121,8,0 +2020-04-30,Meigs,Tennessee,47121,8,0 +2020-05-01,Meigs,Tennessee,47121,9,0 +2020-05-02,Meigs,Tennessee,47121,9,0 +2020-05-03,Meigs,Tennessee,47121,9,0 +2020-05-04,Meigs,Tennessee,47121,10,0 +2020-05-05,Meigs,Tennessee,47121,10,0 +2020-05-06,Meigs,Tennessee,47121,11,0 +2020-05-07,Meigs,Tennessee,47121,17,0 +2020-05-08,Meigs,Tennessee,47121,18,0 +2020-05-09,Meigs,Tennessee,47121,22,0 +2020-05-10,Meigs,Tennessee,47121,22,0 +2020-05-11,Meigs,Tennessee,47121,22,0 +2020-05-12,Meigs,Tennessee,47121,22,0 +2020-05-13,Meigs,Tennessee,47121,22,0 +2020-05-14,Meigs,Tennessee,47121,22,0 +2020-05-15,Meigs,Tennessee,47121,22,0 +2020-05-16,Meigs,Tennessee,47121,22,0 +2020-05-17,Meigs,Tennessee,47121,22,0 +2020-05-18,Meigs,Tennessee,47121,22,0 +2020-05-19,Meigs,Tennessee,47121,22,0 +2020-05-20,Meigs,Tennessee,47121,22,0 +2020-05-21,Meigs,Tennessee,47121,22,0 +2020-05-22,Meigs,Tennessee,47121,22,0 +2020-05-23,Meigs,Tennessee,47121,25,0 +2020-05-24,Meigs,Tennessee,47121,25,0 +2020-05-25,Meigs,Tennessee,47121,25,0 +2020-05-26,Meigs,Tennessee,47121,25,0 +2020-05-27,Meigs,Tennessee,47121,25,0 +2020-05-28,Meigs,Tennessee,47121,26,0 +2020-05-29,Meigs,Tennessee,47121,26,0 +2020-05-30,Meigs,Tennessee,47121,26,0 +2020-05-31,Meigs,Tennessee,47121,26,0 +2020-06-01,Meigs,Tennessee,47121,26,0 +2020-06-02,Meigs,Tennessee,47121,27,0 +2020-06-03,Meigs,Tennessee,47121,27,0 +2020-06-04,Meigs,Tennessee,47121,27,0 +2020-06-05,Meigs,Tennessee,47121,27,0 +2020-06-06,Meigs,Tennessee,47121,27,0 +2020-06-07,Meigs,Tennessee,47121,27,0 +2020-06-08,Meigs,Tennessee,47121,27,0 +2020-06-09,Meigs,Tennessee,47121,27,0 +2020-06-10,Meigs,Tennessee,47121,27,0 +2020-06-11,Meigs,Tennessee,47121,28,0 +2020-06-12,Meigs,Tennessee,47121,29,0 +2020-06-13,Meigs,Tennessee,47121,29,0 +2020-06-14,Meigs,Tennessee,47121,29,0 +2020-06-15,Meigs,Tennessee,47121,29,0 +2020-06-16,Meigs,Tennessee,47121,30,0 +2020-06-17,Meigs,Tennessee,47121,29,0 +2020-06-18,Meigs,Tennessee,47121,30,0 +2020-06-19,Meigs,Tennessee,47121,30,0 +2020-06-20,Meigs,Tennessee,47121,30,0 +2020-06-21,Meigs,Tennessee,47121,31,0 +2020-06-22,Meigs,Tennessee,47121,31,0 +2020-06-23,Meigs,Tennessee,47121,31,0 +2020-06-24,Meigs,Tennessee,47121,31,0 +2020-06-25,Meigs,Tennessee,47121,31,0 +2020-06-26,Meigs,Tennessee,47121,32,0 +2020-06-27,Meigs,Tennessee,47121,32,0 +2020-06-28,Meigs,Tennessee,47121,32,0 +2020-06-29,Meigs,Tennessee,47121,32,0 +2020-06-30,Meigs,Tennessee,47121,32,0 +2020-07-01,Meigs,Tennessee,47121,32,0 +2020-07-02,Meigs,Tennessee,47121,32,0 +2020-07-03,Meigs,Tennessee,47121,33,0 +2020-07-04,Meigs,Tennessee,47121,32,0 +2020-07-05,Meigs,Tennessee,47121,32,0 +2020-07-06,Meigs,Tennessee,47121,32,0 +2020-07-07,Meigs,Tennessee,47121,32,0 +2020-07-08,Meigs,Tennessee,47121,34,0 +2020-07-09,Meigs,Tennessee,47121,35,0 +2020-03-21,Monroe,Tennessee,47123,3,0 +2020-03-22,Monroe,Tennessee,47123,3,0 +2020-03-23,Monroe,Tennessee,47123,3,0 +2020-03-24,Monroe,Tennessee,47123,3,0 +2020-03-25,Monroe,Tennessee,47123,3,0 +2020-03-26,Monroe,Tennessee,47123,3,0 +2020-03-27,Monroe,Tennessee,47123,3,0 +2020-03-28,Monroe,Tennessee,47123,3,0 +2020-03-29,Monroe,Tennessee,47123,3,0 +2020-03-30,Monroe,Tennessee,47123,3,0 +2020-03-31,Monroe,Tennessee,47123,5,0 +2020-04-01,Monroe,Tennessee,47123,5,0 +2020-04-02,Monroe,Tennessee,47123,5,0 +2020-04-03,Monroe,Tennessee,47123,5,0 +2020-04-04,Monroe,Tennessee,47123,6,0 +2020-04-05,Monroe,Tennessee,47123,6,0 +2020-04-06,Monroe,Tennessee,47123,6,0 +2020-04-07,Monroe,Tennessee,47123,6,0 +2020-04-08,Monroe,Tennessee,47123,6,0 +2020-04-09,Monroe,Tennessee,47123,7,0 +2020-04-10,Monroe,Tennessee,47123,8,0 +2020-04-11,Monroe,Tennessee,47123,8,0 +2020-04-12,Monroe,Tennessee,47123,8,0 +2020-04-13,Monroe,Tennessee,47123,8,0 +2020-04-14,Monroe,Tennessee,47123,9,0 +2020-04-15,Monroe,Tennessee,47123,9,0 +2020-04-16,Monroe,Tennessee,47123,9,1 +2020-04-17,Monroe,Tennessee,47123,10,1 +2020-04-18,Monroe,Tennessee,47123,10,1 +2020-04-19,Monroe,Tennessee,47123,10,1 +2020-04-20,Monroe,Tennessee,47123,11,1 +2020-04-21,Monroe,Tennessee,47123,11,1 +2020-04-22,Monroe,Tennessee,47123,11,1 +2020-04-23,Monroe,Tennessee,47123,12,1 +2020-04-24,Monroe,Tennessee,47123,12,1 +2020-04-25,Monroe,Tennessee,47123,12,1 +2020-04-26,Monroe,Tennessee,47123,13,1 +2020-04-27,Monroe,Tennessee,47123,15,1 +2020-04-28,Monroe,Tennessee,47123,14,1 +2020-04-29,Monroe,Tennessee,47123,16,1 +2020-04-30,Monroe,Tennessee,47123,20,1 +2020-05-01,Monroe,Tennessee,47123,21,1 +2020-05-02,Monroe,Tennessee,47123,22,1 +2020-05-03,Monroe,Tennessee,47123,21,1 +2020-05-04,Monroe,Tennessee,47123,29,1 +2020-05-05,Monroe,Tennessee,47123,32,1 +2020-05-06,Monroe,Tennessee,47123,26,1 +2020-05-07,Monroe,Tennessee,47123,26,1 +2020-05-08,Monroe,Tennessee,47123,29,1 +2020-05-09,Monroe,Tennessee,47123,30,1 +2020-05-10,Monroe,Tennessee,47123,29,1 +2020-05-11,Monroe,Tennessee,47123,31,1 +2020-05-12,Monroe,Tennessee,47123,33,1 +2020-05-13,Monroe,Tennessee,47123,33,1 +2020-05-14,Monroe,Tennessee,47123,37,1 +2020-05-15,Monroe,Tennessee,47123,38,1 +2020-05-16,Monroe,Tennessee,47123,41,1 +2020-05-17,Monroe,Tennessee,47123,41,1 +2020-05-18,Monroe,Tennessee,47123,49,1 +2020-05-19,Monroe,Tennessee,47123,51,2 +2020-05-20,Monroe,Tennessee,47123,51,2 +2020-05-21,Monroe,Tennessee,47123,55,2 +2020-05-22,Monroe,Tennessee,47123,57,2 +2020-05-23,Monroe,Tennessee,47123,56,2 +2020-05-24,Monroe,Tennessee,47123,56,2 +2020-05-25,Monroe,Tennessee,47123,56,2 +2020-05-26,Monroe,Tennessee,47123,58,2 +2020-05-27,Monroe,Tennessee,47123,59,2 +2020-05-28,Monroe,Tennessee,47123,61,2 +2020-05-29,Monroe,Tennessee,47123,61,2 +2020-05-30,Monroe,Tennessee,47123,62,2 +2020-05-31,Monroe,Tennessee,47123,62,2 +2020-06-01,Monroe,Tennessee,47123,62,2 +2020-06-02,Monroe,Tennessee,47123,66,2 +2020-06-03,Monroe,Tennessee,47123,69,2 +2020-06-04,Monroe,Tennessee,47123,71,3 +2020-06-05,Monroe,Tennessee,47123,74,3 +2020-06-06,Monroe,Tennessee,47123,75,4 +2020-06-07,Monroe,Tennessee,47123,75,4 +2020-06-08,Monroe,Tennessee,47123,76,4 +2020-06-09,Monroe,Tennessee,47123,75,4 +2020-06-10,Monroe,Tennessee,47123,75,4 +2020-06-11,Monroe,Tennessee,47123,75,4 +2020-06-12,Monroe,Tennessee,47123,85,4 +2020-06-13,Monroe,Tennessee,47123,86,4 +2020-06-14,Monroe,Tennessee,47123,86,4 +2020-06-15,Monroe,Tennessee,47123,86,4 +2020-06-16,Monroe,Tennessee,47123,91,4 +2020-06-17,Monroe,Tennessee,47123,93,4 +2020-06-18,Monroe,Tennessee,47123,97,4 +2020-06-19,Monroe,Tennessee,47123,108,4 +2020-06-20,Monroe,Tennessee,47123,107,4 +2020-06-21,Monroe,Tennessee,47123,108,4 +2020-06-22,Monroe,Tennessee,47123,109,4 +2020-06-23,Monroe,Tennessee,47123,110,4 +2020-06-24,Monroe,Tennessee,47123,115,4 +2020-06-25,Monroe,Tennessee,47123,116,4 +2020-06-26,Monroe,Tennessee,47123,116,4 +2020-06-27,Monroe,Tennessee,47123,118,4 +2020-06-28,Monroe,Tennessee,47123,118,4 +2020-06-29,Monroe,Tennessee,47123,118,4 +2020-06-30,Monroe,Tennessee,47123,132,4 +2020-07-01,Monroe,Tennessee,47123,135,4 +2020-07-02,Monroe,Tennessee,47123,136,5 +2020-07-03,Monroe,Tennessee,47123,137,6 +2020-07-04,Monroe,Tennessee,47123,138,6 +2020-07-05,Monroe,Tennessee,47123,140,6 +2020-07-06,Monroe,Tennessee,47123,141,6 +2020-07-07,Monroe,Tennessee,47123,140,6 +2020-07-08,Monroe,Tennessee,47123,141,6 +2020-07-09,Monroe,Tennessee,47123,146,6 +2020-03-19,Montgomery,Tennessee,47125,1,0 +2020-03-20,Montgomery,Tennessee,47125,3,0 +2020-03-21,Montgomery,Tennessee,47125,3,0 +2020-03-22,Montgomery,Tennessee,47125,3,0 +2020-03-23,Montgomery,Tennessee,47125,3,0 +2020-03-24,Montgomery,Tennessee,47125,6,0 +2020-03-25,Montgomery,Tennessee,47125,6,0 +2020-03-26,Montgomery,Tennessee,47125,6,0 +2020-03-27,Montgomery,Tennessee,47125,9,0 +2020-03-28,Montgomery,Tennessee,47125,11,0 +2020-03-29,Montgomery,Tennessee,47125,13,0 +2020-03-30,Montgomery,Tennessee,47125,13,0 +2020-03-31,Montgomery,Tennessee,47125,19,0 +2020-04-01,Montgomery,Tennessee,47125,27,0 +2020-04-02,Montgomery,Tennessee,47125,37,0 +2020-04-03,Montgomery,Tennessee,47125,41,0 +2020-04-04,Montgomery,Tennessee,47125,46,0 +2020-04-05,Montgomery,Tennessee,47125,51,1 +2020-04-06,Montgomery,Tennessee,47125,54,1 +2020-04-07,Montgomery,Tennessee,47125,65,2 +2020-04-08,Montgomery,Tennessee,47125,72,2 +2020-04-09,Montgomery,Tennessee,47125,79,2 +2020-04-10,Montgomery,Tennessee,47125,84,2 +2020-04-11,Montgomery,Tennessee,47125,88,2 +2020-04-12,Montgomery,Tennessee,47125,88,2 +2020-04-13,Montgomery,Tennessee,47125,102,2 +2020-04-14,Montgomery,Tennessee,47125,101,2 +2020-04-15,Montgomery,Tennessee,47125,102,2 +2020-04-16,Montgomery,Tennessee,47125,102,2 +2020-04-17,Montgomery,Tennessee,47125,108,2 +2020-04-18,Montgomery,Tennessee,47125,113,2 +2020-04-19,Montgomery,Tennessee,47125,119,2 +2020-04-20,Montgomery,Tennessee,47125,122,2 +2020-04-21,Montgomery,Tennessee,47125,124,2 +2020-04-22,Montgomery,Tennessee,47125,128,2 +2020-04-23,Montgomery,Tennessee,47125,130,2 +2020-04-24,Montgomery,Tennessee,47125,132,2 +2020-04-25,Montgomery,Tennessee,47125,134,2 +2020-04-26,Montgomery,Tennessee,47125,136,2 +2020-04-27,Montgomery,Tennessee,47125,138,2 +2020-04-28,Montgomery,Tennessee,47125,139,2 +2020-04-29,Montgomery,Tennessee,47125,141,2 +2020-04-30,Montgomery,Tennessee,47125,146,2 +2020-05-01,Montgomery,Tennessee,47125,146,2 +2020-05-02,Montgomery,Tennessee,47125,148,2 +2020-05-03,Montgomery,Tennessee,47125,148,2 +2020-05-04,Montgomery,Tennessee,47125,149,2 +2020-05-05,Montgomery,Tennessee,47125,151,2 +2020-05-06,Montgomery,Tennessee,47125,153,2 +2020-05-07,Montgomery,Tennessee,47125,155,2 +2020-05-08,Montgomery,Tennessee,47125,161,2 +2020-05-09,Montgomery,Tennessee,47125,172,2 +2020-05-10,Montgomery,Tennessee,47125,174,2 +2020-05-11,Montgomery,Tennessee,47125,180,2 +2020-05-12,Montgomery,Tennessee,47125,188,2 +2020-05-13,Montgomery,Tennessee,47125,191,2 +2020-05-14,Montgomery,Tennessee,47125,199,2 +2020-05-15,Montgomery,Tennessee,47125,203,2 +2020-05-16,Montgomery,Tennessee,47125,204,2 +2020-05-17,Montgomery,Tennessee,47125,206,2 +2020-05-18,Montgomery,Tennessee,47125,213,2 +2020-05-19,Montgomery,Tennessee,47125,216,2 +2020-05-20,Montgomery,Tennessee,47125,216,2 +2020-05-21,Montgomery,Tennessee,47125,217,2 +2020-05-22,Montgomery,Tennessee,47125,218,3 +2020-05-23,Montgomery,Tennessee,47125,234,3 +2020-05-24,Montgomery,Tennessee,47125,240,3 +2020-05-25,Montgomery,Tennessee,47125,248,3 +2020-05-26,Montgomery,Tennessee,47125,251,3 +2020-05-27,Montgomery,Tennessee,47125,258,3 +2020-05-28,Montgomery,Tennessee,47125,261,3 +2020-05-29,Montgomery,Tennessee,47125,262,3 +2020-05-30,Montgomery,Tennessee,47125,269,3 +2020-05-31,Montgomery,Tennessee,47125,269,3 +2020-06-01,Montgomery,Tennessee,47125,269,3 +2020-06-02,Montgomery,Tennessee,47125,277,3 +2020-06-03,Montgomery,Tennessee,47125,283,3 +2020-06-04,Montgomery,Tennessee,47125,286,3 +2020-06-05,Montgomery,Tennessee,47125,287,3 +2020-06-06,Montgomery,Tennessee,47125,287,3 +2020-06-07,Montgomery,Tennessee,47125,294,3 +2020-06-08,Montgomery,Tennessee,47125,301,3 +2020-06-09,Montgomery,Tennessee,47125,310,4 +2020-06-10,Montgomery,Tennessee,47125,309,4 +2020-06-11,Montgomery,Tennessee,47125,312,4 +2020-06-12,Montgomery,Tennessee,47125,319,5 +2020-06-13,Montgomery,Tennessee,47125,324,5 +2020-06-14,Montgomery,Tennessee,47125,332,5 +2020-06-15,Montgomery,Tennessee,47125,339,5 +2020-06-16,Montgomery,Tennessee,47125,341,5 +2020-06-17,Montgomery,Tennessee,47125,341,5 +2020-06-18,Montgomery,Tennessee,47125,356,5 +2020-06-19,Montgomery,Tennessee,47125,363,5 +2020-06-20,Montgomery,Tennessee,47125,368,5 +2020-06-21,Montgomery,Tennessee,47125,384,5 +2020-06-22,Montgomery,Tennessee,47125,385,5 +2020-06-23,Montgomery,Tennessee,47125,392,5 +2020-06-24,Montgomery,Tennessee,47125,407,6 +2020-06-25,Montgomery,Tennessee,47125,413,7 +2020-06-26,Montgomery,Tennessee,47125,434,7 +2020-06-27,Montgomery,Tennessee,47125,438,7 +2020-06-28,Montgomery,Tennessee,47125,438,7 +2020-06-29,Montgomery,Tennessee,47125,464,7 +2020-06-30,Montgomery,Tennessee,47125,479,7 +2020-07-01,Montgomery,Tennessee,47125,493,7 +2020-07-02,Montgomery,Tennessee,47125,513,7 +2020-07-03,Montgomery,Tennessee,47125,534,7 +2020-07-04,Montgomery,Tennessee,47125,549,7 +2020-07-05,Montgomery,Tennessee,47125,554,7 +2020-07-06,Montgomery,Tennessee,47125,567,7 +2020-07-07,Montgomery,Tennessee,47125,587,7 +2020-07-08,Montgomery,Tennessee,47125,620,7 +2020-07-09,Montgomery,Tennessee,47125,658,7 +2020-04-15,Moore,Tennessee,47127,1,0 +2020-04-16,Moore,Tennessee,47127,1,0 +2020-04-17,Moore,Tennessee,47127,1,0 +2020-04-18,Moore,Tennessee,47127,2,0 +2020-04-19,Moore,Tennessee,47127,2,0 +2020-04-20,Moore,Tennessee,47127,2,0 +2020-04-21,Moore,Tennessee,47127,2,0 +2020-04-22,Moore,Tennessee,47127,3,0 +2020-04-23,Moore,Tennessee,47127,3,0 +2020-04-24,Moore,Tennessee,47127,3,0 +2020-04-25,Moore,Tennessee,47127,3,0 +2020-04-26,Moore,Tennessee,47127,3,0 +2020-04-27,Moore,Tennessee,47127,3,0 +2020-04-28,Moore,Tennessee,47127,3,0 +2020-04-29,Moore,Tennessee,47127,3,0 +2020-04-30,Moore,Tennessee,47127,3,0 +2020-05-01,Moore,Tennessee,47127,3,0 +2020-05-02,Moore,Tennessee,47127,3,0 +2020-05-03,Moore,Tennessee,47127,3,0 +2020-05-04,Moore,Tennessee,47127,3,0 +2020-05-05,Moore,Tennessee,47127,3,0 +2020-05-06,Moore,Tennessee,47127,3,0 +2020-05-07,Moore,Tennessee,47127,3,0 +2020-05-08,Moore,Tennessee,47127,3,0 +2020-05-09,Moore,Tennessee,47127,3,0 +2020-05-10,Moore,Tennessee,47127,3,0 +2020-05-11,Moore,Tennessee,47127,3,0 +2020-05-12,Moore,Tennessee,47127,3,0 +2020-05-13,Moore,Tennessee,47127,3,0 +2020-05-14,Moore,Tennessee,47127,3,0 +2020-05-15,Moore,Tennessee,47127,3,0 +2020-05-16,Moore,Tennessee,47127,3,0 +2020-05-17,Moore,Tennessee,47127,3,0 +2020-05-18,Moore,Tennessee,47127,3,0 +2020-05-19,Moore,Tennessee,47127,3,0 +2020-05-20,Moore,Tennessee,47127,3,0 +2020-05-21,Moore,Tennessee,47127,3,0 +2020-05-22,Moore,Tennessee,47127,3,0 +2020-05-23,Moore,Tennessee,47127,3,0 +2020-05-24,Moore,Tennessee,47127,3,0 +2020-05-25,Moore,Tennessee,47127,3,0 +2020-05-26,Moore,Tennessee,47127,3,0 +2020-05-27,Moore,Tennessee,47127,3,0 +2020-05-28,Moore,Tennessee,47127,3,0 +2020-05-29,Moore,Tennessee,47127,3,0 +2020-05-30,Moore,Tennessee,47127,3,0 +2020-05-31,Moore,Tennessee,47127,3,0 +2020-06-01,Moore,Tennessee,47127,3,0 +2020-06-02,Moore,Tennessee,47127,4,0 +2020-06-03,Moore,Tennessee,47127,5,0 +2020-06-04,Moore,Tennessee,47127,5,0 +2020-06-05,Moore,Tennessee,47127,5,0 +2020-06-06,Moore,Tennessee,47127,5,0 +2020-06-07,Moore,Tennessee,47127,5,0 +2020-06-08,Moore,Tennessee,47127,5,0 +2020-06-09,Moore,Tennessee,47127,5,0 +2020-06-10,Moore,Tennessee,47127,5,0 +2020-06-11,Moore,Tennessee,47127,5,0 +2020-06-12,Moore,Tennessee,47127,5,0 +2020-06-13,Moore,Tennessee,47127,5,0 +2020-06-14,Moore,Tennessee,47127,5,0 +2020-06-15,Moore,Tennessee,47127,5,0 +2020-06-16,Moore,Tennessee,47127,5,0 +2020-06-17,Moore,Tennessee,47127,5,0 +2020-06-18,Moore,Tennessee,47127,5,0 +2020-06-19,Moore,Tennessee,47127,5,0 +2020-06-20,Moore,Tennessee,47127,5,0 +2020-06-21,Moore,Tennessee,47127,5,0 +2020-06-22,Moore,Tennessee,47127,5,0 +2020-06-23,Moore,Tennessee,47127,5,0 +2020-06-24,Moore,Tennessee,47127,5,0 +2020-06-25,Moore,Tennessee,47127,5,0 +2020-06-26,Moore,Tennessee,47127,5,0 +2020-06-27,Moore,Tennessee,47127,6,0 +2020-06-28,Moore,Tennessee,47127,6,0 +2020-06-29,Moore,Tennessee,47127,6,0 +2020-06-30,Moore,Tennessee,47127,7,0 +2020-07-01,Moore,Tennessee,47127,8,0 +2020-07-02,Moore,Tennessee,47127,10,0 +2020-07-03,Moore,Tennessee,47127,12,0 +2020-07-04,Moore,Tennessee,47127,12,0 +2020-07-05,Moore,Tennessee,47127,12,0 +2020-07-06,Moore,Tennessee,47127,13,0 +2020-07-07,Moore,Tennessee,47127,15,0 +2020-07-08,Moore,Tennessee,47127,17,0 +2020-07-09,Moore,Tennessee,47127,17,0 +2020-03-28,Morgan,Tennessee,47129,1,0 +2020-03-29,Morgan,Tennessee,47129,1,0 +2020-03-30,Morgan,Tennessee,47129,1,0 +2020-03-31,Morgan,Tennessee,47129,1,0 +2020-04-01,Morgan,Tennessee,47129,1,0 +2020-04-02,Morgan,Tennessee,47129,1,0 +2020-04-03,Morgan,Tennessee,47129,2,0 +2020-04-04,Morgan,Tennessee,47129,4,0 +2020-04-05,Morgan,Tennessee,47129,4,0 +2020-04-06,Morgan,Tennessee,47129,5,0 +2020-04-07,Morgan,Tennessee,47129,5,0 +2020-04-08,Morgan,Tennessee,47129,5,0 +2020-04-09,Morgan,Tennessee,47129,5,0 +2020-04-10,Morgan,Tennessee,47129,5,0 +2020-04-11,Morgan,Tennessee,47129,5,0 +2020-04-12,Morgan,Tennessee,47129,5,0 +2020-04-13,Morgan,Tennessee,47129,5,0 +2020-04-14,Morgan,Tennessee,47129,5,0 +2020-04-15,Morgan,Tennessee,47129,5,0 +2020-04-16,Morgan,Tennessee,47129,5,0 +2020-04-17,Morgan,Tennessee,47129,5,0 +2020-04-18,Morgan,Tennessee,47129,5,0 +2020-04-19,Morgan,Tennessee,47129,5,0 +2020-04-20,Morgan,Tennessee,47129,5,0 +2020-04-21,Morgan,Tennessee,47129,5,0 +2020-04-22,Morgan,Tennessee,47129,5,0 +2020-04-23,Morgan,Tennessee,47129,5,0 +2020-04-24,Morgan,Tennessee,47129,5,0 +2020-04-25,Morgan,Tennessee,47129,6,0 +2020-04-26,Morgan,Tennessee,47129,6,0 +2020-04-27,Morgan,Tennessee,47129,6,0 +2020-04-28,Morgan,Tennessee,47129,6,0 +2020-04-29,Morgan,Tennessee,47129,6,0 +2020-04-30,Morgan,Tennessee,47129,6,0 +2020-05-01,Morgan,Tennessee,47129,6,0 +2020-05-02,Morgan,Tennessee,47129,6,0 +2020-05-03,Morgan,Tennessee,47129,6,0 +2020-05-04,Morgan,Tennessee,47129,6,0 +2020-05-05,Morgan,Tennessee,47129,6,0 +2020-05-06,Morgan,Tennessee,47129,6,0 +2020-05-07,Morgan,Tennessee,47129,6,0 +2020-05-08,Morgan,Tennessee,47129,6,0 +2020-05-09,Morgan,Tennessee,47129,10,0 +2020-05-10,Morgan,Tennessee,47129,12,0 +2020-05-11,Morgan,Tennessee,47129,12,0 +2020-05-12,Morgan,Tennessee,47129,12,0 +2020-05-13,Morgan,Tennessee,47129,12,0 +2020-05-14,Morgan,Tennessee,47129,12,0 +2020-05-15,Morgan,Tennessee,47129,12,0 +2020-05-16,Morgan,Tennessee,47129,12,0 +2020-05-17,Morgan,Tennessee,47129,12,0 +2020-05-18,Morgan,Tennessee,47129,12,0 +2020-05-19,Morgan,Tennessee,47129,17,0 +2020-05-20,Morgan,Tennessee,47129,17,0 +2020-05-21,Morgan,Tennessee,47129,17,0 +2020-05-22,Morgan,Tennessee,47129,17,0 +2020-05-23,Morgan,Tennessee,47129,17,0 +2020-05-24,Morgan,Tennessee,47129,17,0 +2020-05-25,Morgan,Tennessee,47129,17,0 +2020-05-26,Morgan,Tennessee,47129,17,0 +2020-05-27,Morgan,Tennessee,47129,17,0 +2020-05-28,Morgan,Tennessee,47129,17,0 +2020-05-29,Morgan,Tennessee,47129,17,0 +2020-05-30,Morgan,Tennessee,47129,17,0 +2020-05-31,Morgan,Tennessee,47129,17,0 +2020-06-01,Morgan,Tennessee,47129,17,0 +2020-06-02,Morgan,Tennessee,47129,17,0 +2020-06-03,Morgan,Tennessee,47129,17,0 +2020-06-04,Morgan,Tennessee,47129,17,0 +2020-06-05,Morgan,Tennessee,47129,18,0 +2020-06-06,Morgan,Tennessee,47129,18,0 +2020-06-07,Morgan,Tennessee,47129,19,0 +2020-06-08,Morgan,Tennessee,47129,19,0 +2020-06-09,Morgan,Tennessee,47129,19,0 +2020-06-10,Morgan,Tennessee,47129,19,0 +2020-06-11,Morgan,Tennessee,47129,18,0 +2020-06-12,Morgan,Tennessee,47129,18,0 +2020-06-13,Morgan,Tennessee,47129,19,0 +2020-06-14,Morgan,Tennessee,47129,19,0 +2020-06-15,Morgan,Tennessee,47129,20,0 +2020-06-16,Morgan,Tennessee,47129,21,1 +2020-06-17,Morgan,Tennessee,47129,21,1 +2020-06-18,Morgan,Tennessee,47129,22,1 +2020-06-19,Morgan,Tennessee,47129,22,1 +2020-06-20,Morgan,Tennessee,47129,22,1 +2020-06-21,Morgan,Tennessee,47129,22,1 +2020-06-22,Morgan,Tennessee,47129,22,1 +2020-06-23,Morgan,Tennessee,47129,22,1 +2020-06-24,Morgan,Tennessee,47129,22,1 +2020-06-25,Morgan,Tennessee,47129,22,1 +2020-06-26,Morgan,Tennessee,47129,23,1 +2020-06-27,Morgan,Tennessee,47129,23,1 +2020-06-28,Morgan,Tennessee,47129,23,1 +2020-06-29,Morgan,Tennessee,47129,23,1 +2020-06-30,Morgan,Tennessee,47129,24,1 +2020-07-01,Morgan,Tennessee,47129,24,1 +2020-07-02,Morgan,Tennessee,47129,24,1 +2020-07-03,Morgan,Tennessee,47129,25,1 +2020-07-04,Morgan,Tennessee,47129,25,1 +2020-07-05,Morgan,Tennessee,47129,27,1 +2020-07-06,Morgan,Tennessee,47129,27,1 +2020-07-07,Morgan,Tennessee,47129,28,1 +2020-07-08,Morgan,Tennessee,47129,29,1 +2020-07-09,Morgan,Tennessee,47129,29,1 +2020-03-29,Obion,Tennessee,47131,1,0 +2020-03-30,Obion,Tennessee,47131,1,0 +2020-03-31,Obion,Tennessee,47131,1,0 +2020-04-01,Obion,Tennessee,47131,2,0 +2020-04-02,Obion,Tennessee,47131,2,1 +2020-04-03,Obion,Tennessee,47131,2,1 +2020-04-04,Obion,Tennessee,47131,2,1 +2020-04-05,Obion,Tennessee,47131,2,1 +2020-04-06,Obion,Tennessee,47131,2,1 +2020-04-07,Obion,Tennessee,47131,3,1 +2020-04-08,Obion,Tennessee,47131,4,1 +2020-04-09,Obion,Tennessee,47131,4,1 +2020-04-10,Obion,Tennessee,47131,5,1 +2020-04-11,Obion,Tennessee,47131,7,1 +2020-04-12,Obion,Tennessee,47131,7,1 +2020-04-13,Obion,Tennessee,47131,8,1 +2020-04-14,Obion,Tennessee,47131,8,1 +2020-04-15,Obion,Tennessee,47131,8,1 +2020-04-16,Obion,Tennessee,47131,8,1 +2020-04-17,Obion,Tennessee,47131,9,1 +2020-04-18,Obion,Tennessee,47131,9,1 +2020-04-19,Obion,Tennessee,47131,9,1 +2020-04-20,Obion,Tennessee,47131,9,1 +2020-04-21,Obion,Tennessee,47131,9,1 +2020-04-22,Obion,Tennessee,47131,10,1 +2020-04-23,Obion,Tennessee,47131,12,1 +2020-04-24,Obion,Tennessee,47131,12,1 +2020-04-25,Obion,Tennessee,47131,12,1 +2020-04-26,Obion,Tennessee,47131,12,1 +2020-04-27,Obion,Tennessee,47131,12,1 +2020-04-28,Obion,Tennessee,47131,12,1 +2020-04-29,Obion,Tennessee,47131,12,1 +2020-04-30,Obion,Tennessee,47131,13,1 +2020-05-01,Obion,Tennessee,47131,14,1 +2020-05-02,Obion,Tennessee,47131,15,1 +2020-05-03,Obion,Tennessee,47131,15,1 +2020-05-04,Obion,Tennessee,47131,17,1 +2020-05-05,Obion,Tennessee,47131,16,1 +2020-05-06,Obion,Tennessee,47131,15,1 +2020-05-07,Obion,Tennessee,47131,15,1 +2020-05-08,Obion,Tennessee,47131,16,1 +2020-05-09,Obion,Tennessee,47131,16,1 +2020-05-10,Obion,Tennessee,47131,16,1 +2020-05-11,Obion,Tennessee,47131,16,1 +2020-05-12,Obion,Tennessee,47131,16,1 +2020-05-13,Obion,Tennessee,47131,16,1 +2020-05-14,Obion,Tennessee,47131,17,1 +2020-05-15,Obion,Tennessee,47131,17,1 +2020-05-16,Obion,Tennessee,47131,17,1 +2020-05-17,Obion,Tennessee,47131,19,1 +2020-05-18,Obion,Tennessee,47131,19,1 +2020-05-19,Obion,Tennessee,47131,19,1 +2020-05-20,Obion,Tennessee,47131,19,1 +2020-05-21,Obion,Tennessee,47131,20,1 +2020-05-22,Obion,Tennessee,47131,21,1 +2020-05-23,Obion,Tennessee,47131,24,1 +2020-05-24,Obion,Tennessee,47131,24,1 +2020-05-25,Obion,Tennessee,47131,24,1 +2020-05-26,Obion,Tennessee,47131,27,1 +2020-05-27,Obion,Tennessee,47131,28,1 +2020-05-28,Obion,Tennessee,47131,28,1 +2020-05-29,Obion,Tennessee,47131,30,1 +2020-05-30,Obion,Tennessee,47131,30,1 +2020-05-31,Obion,Tennessee,47131,30,1 +2020-06-01,Obion,Tennessee,47131,30,1 +2020-06-02,Obion,Tennessee,47131,40,3 +2020-06-03,Obion,Tennessee,47131,43,3 +2020-06-04,Obion,Tennessee,47131,45,3 +2020-06-05,Obion,Tennessee,47131,48,1 +2020-06-06,Obion,Tennessee,47131,52,1 +2020-06-07,Obion,Tennessee,47131,56,1 +2020-06-08,Obion,Tennessee,47131,53,1 +2020-06-09,Obion,Tennessee,47131,53,1 +2020-06-10,Obion,Tennessee,47131,53,1 +2020-06-11,Obion,Tennessee,47131,53,1 +2020-06-12,Obion,Tennessee,47131,56,1 +2020-06-13,Obion,Tennessee,47131,56,1 +2020-06-14,Obion,Tennessee,47131,61,1 +2020-06-15,Obion,Tennessee,47131,63,1 +2020-06-16,Obion,Tennessee,47131,67,1 +2020-06-17,Obion,Tennessee,47131,67,1 +2020-06-18,Obion,Tennessee,47131,68,1 +2020-06-19,Obion,Tennessee,47131,71,1 +2020-06-20,Obion,Tennessee,47131,71,1 +2020-06-21,Obion,Tennessee,47131,71,1 +2020-06-22,Obion,Tennessee,47131,71,1 +2020-06-23,Obion,Tennessee,47131,73,1 +2020-06-24,Obion,Tennessee,47131,74,1 +2020-06-25,Obion,Tennessee,47131,75,2 +2020-06-26,Obion,Tennessee,47131,79,2 +2020-06-27,Obion,Tennessee,47131,87,2 +2020-06-28,Obion,Tennessee,47131,87,2 +2020-06-29,Obion,Tennessee,47131,93,2 +2020-06-30,Obion,Tennessee,47131,94,2 +2020-07-01,Obion,Tennessee,47131,98,2 +2020-07-02,Obion,Tennessee,47131,106,2 +2020-07-03,Obion,Tennessee,47131,113,2 +2020-07-04,Obion,Tennessee,47131,112,2 +2020-07-05,Obion,Tennessee,47131,112,2 +2020-07-06,Obion,Tennessee,47131,113,2 +2020-07-07,Obion,Tennessee,47131,117,2 +2020-07-08,Obion,Tennessee,47131,117,2 +2020-07-09,Obion,Tennessee,47131,118,2 +2020-03-24,Overton,Tennessee,47133,1,0 +2020-03-25,Overton,Tennessee,47133,1,0 +2020-03-26,Overton,Tennessee,47133,1,0 +2020-03-27,Overton,Tennessee,47133,1,0 +2020-03-28,Overton,Tennessee,47133,2,0 +2020-03-29,Overton,Tennessee,47133,2,0 +2020-03-30,Overton,Tennessee,47133,2,0 +2020-03-31,Overton,Tennessee,47133,2,0 +2020-04-01,Overton,Tennessee,47133,2,0 +2020-04-02,Overton,Tennessee,47133,2,0 +2020-04-03,Overton,Tennessee,47133,2,0 +2020-04-04,Overton,Tennessee,47133,2,0 +2020-04-05,Overton,Tennessee,47133,3,0 +2020-04-06,Overton,Tennessee,47133,4,0 +2020-04-07,Overton,Tennessee,47133,4,0 +2020-04-08,Overton,Tennessee,47133,5,0 +2020-04-09,Overton,Tennessee,47133,5,0 +2020-04-10,Overton,Tennessee,47133,5,0 +2020-04-11,Overton,Tennessee,47133,5,0 +2020-04-12,Overton,Tennessee,47133,5,0 +2020-04-13,Overton,Tennessee,47133,5,0 +2020-04-14,Overton,Tennessee,47133,6,0 +2020-04-15,Overton,Tennessee,47133,7,0 +2020-04-16,Overton,Tennessee,47133,7,0 +2020-04-17,Overton,Tennessee,47133,7,0 +2020-04-18,Overton,Tennessee,47133,7,0 +2020-04-19,Overton,Tennessee,47133,7,0 +2020-04-20,Overton,Tennessee,47133,7,0 +2020-04-21,Overton,Tennessee,47133,7,0 +2020-04-22,Overton,Tennessee,47133,7,0 +2020-04-23,Overton,Tennessee,47133,7,0 +2020-04-24,Overton,Tennessee,47133,7,0 +2020-04-25,Overton,Tennessee,47133,7,0 +2020-04-26,Overton,Tennessee,47133,7,0 +2020-04-27,Overton,Tennessee,47133,8,0 +2020-04-28,Overton,Tennessee,47133,8,0 +2020-04-29,Overton,Tennessee,47133,8,0 +2020-04-30,Overton,Tennessee,47133,8,0 +2020-05-01,Overton,Tennessee,47133,8,0 +2020-05-02,Overton,Tennessee,47133,9,0 +2020-05-03,Overton,Tennessee,47133,9,0 +2020-05-04,Overton,Tennessee,47133,9,0 +2020-05-05,Overton,Tennessee,47133,10,0 +2020-05-06,Overton,Tennessee,47133,10,0 +2020-05-07,Overton,Tennessee,47133,11,0 +2020-05-08,Overton,Tennessee,47133,11,0 +2020-05-09,Overton,Tennessee,47133,11,0 +2020-05-10,Overton,Tennessee,47133,11,0 +2020-05-11,Overton,Tennessee,47133,14,0 +2020-05-12,Overton,Tennessee,47133,14,0 +2020-05-13,Overton,Tennessee,47133,14,0 +2020-05-14,Overton,Tennessee,47133,14,0 +2020-05-15,Overton,Tennessee,47133,14,0 +2020-05-16,Overton,Tennessee,47133,14,0 +2020-05-17,Overton,Tennessee,47133,14,0 +2020-05-18,Overton,Tennessee,47133,16,0 +2020-05-19,Overton,Tennessee,47133,18,0 +2020-05-20,Overton,Tennessee,47133,18,0 +2020-05-21,Overton,Tennessee,47133,18,0 +2020-05-22,Overton,Tennessee,47133,18,0 +2020-05-23,Overton,Tennessee,47133,20,0 +2020-05-24,Overton,Tennessee,47133,20,0 +2020-05-25,Overton,Tennessee,47133,21,0 +2020-05-26,Overton,Tennessee,47133,23,0 +2020-05-27,Overton,Tennessee,47133,25,0 +2020-05-28,Overton,Tennessee,47133,26,0 +2020-05-29,Overton,Tennessee,47133,26,0 +2020-05-30,Overton,Tennessee,47133,26,0 +2020-05-31,Overton,Tennessee,47133,26,0 +2020-06-01,Overton,Tennessee,47133,26,0 +2020-06-02,Overton,Tennessee,47133,32,0 +2020-06-03,Overton,Tennessee,47133,32,0 +2020-06-04,Overton,Tennessee,47133,32,0 +2020-06-05,Overton,Tennessee,47133,33,0 +2020-06-06,Overton,Tennessee,47133,34,0 +2020-06-07,Overton,Tennessee,47133,35,0 +2020-06-08,Overton,Tennessee,47133,35,0 +2020-06-09,Overton,Tennessee,47133,35,0 +2020-06-10,Overton,Tennessee,47133,36,0 +2020-06-11,Overton,Tennessee,47133,36,0 +2020-06-12,Overton,Tennessee,47133,37,0 +2020-06-13,Overton,Tennessee,47133,37,0 +2020-06-14,Overton,Tennessee,47133,37,0 +2020-06-15,Overton,Tennessee,47133,38,0 +2020-06-16,Overton,Tennessee,47133,38,0 +2020-06-17,Overton,Tennessee,47133,38,0 +2020-06-18,Overton,Tennessee,47133,38,0 +2020-06-19,Overton,Tennessee,47133,40,0 +2020-06-20,Overton,Tennessee,47133,41,0 +2020-06-21,Overton,Tennessee,47133,42,0 +2020-06-22,Overton,Tennessee,47133,43,0 +2020-06-23,Overton,Tennessee,47133,44,0 +2020-06-24,Overton,Tennessee,47133,45,0 +2020-06-25,Overton,Tennessee,47133,46,0 +2020-06-26,Overton,Tennessee,47133,50,0 +2020-06-27,Overton,Tennessee,47133,51,0 +2020-06-28,Overton,Tennessee,47133,51,0 +2020-06-29,Overton,Tennessee,47133,55,0 +2020-06-30,Overton,Tennessee,47133,56,0 +2020-07-01,Overton,Tennessee,47133,57,1 +2020-07-02,Overton,Tennessee,47133,58,1 +2020-07-03,Overton,Tennessee,47133,59,1 +2020-07-04,Overton,Tennessee,47133,61,1 +2020-07-05,Overton,Tennessee,47133,62,1 +2020-07-06,Overton,Tennessee,47133,63,1 +2020-07-07,Overton,Tennessee,47133,65,1 +2020-07-08,Overton,Tennessee,47133,67,1 +2020-07-09,Overton,Tennessee,47133,68,1 +2020-03-22,Perry,Tennessee,47135,1,0 +2020-03-23,Perry,Tennessee,47135,1,0 +2020-03-24,Perry,Tennessee,47135,1,0 +2020-03-25,Perry,Tennessee,47135,1,0 +2020-03-26,Perry,Tennessee,47135,1,0 +2020-03-27,Perry,Tennessee,47135,2,0 +2020-03-28,Perry,Tennessee,47135,2,0 +2020-03-29,Perry,Tennessee,47135,2,0 +2020-03-30,Perry,Tennessee,47135,2,0 +2020-03-31,Perry,Tennessee,47135,2,0 +2020-04-01,Perry,Tennessee,47135,2,0 +2020-04-02,Perry,Tennessee,47135,2,0 +2020-04-03,Perry,Tennessee,47135,2,0 +2020-04-04,Perry,Tennessee,47135,3,0 +2020-04-05,Perry,Tennessee,47135,3,0 +2020-04-06,Perry,Tennessee,47135,3,0 +2020-04-07,Perry,Tennessee,47135,3,0 +2020-04-08,Perry,Tennessee,47135,3,0 +2020-04-09,Perry,Tennessee,47135,3,0 +2020-04-10,Perry,Tennessee,47135,3,0 +2020-04-11,Perry,Tennessee,47135,3,0 +2020-04-12,Perry,Tennessee,47135,3,0 +2020-04-13,Perry,Tennessee,47135,4,0 +2020-04-14,Perry,Tennessee,47135,4,0 +2020-04-15,Perry,Tennessee,47135,5,0 +2020-04-16,Perry,Tennessee,47135,6,0 +2020-04-17,Perry,Tennessee,47135,6,0 +2020-04-18,Perry,Tennessee,47135,6,0 +2020-04-19,Perry,Tennessee,47135,6,0 +2020-04-20,Perry,Tennessee,47135,6,0 +2020-04-21,Perry,Tennessee,47135,6,0 +2020-04-22,Perry,Tennessee,47135,8,0 +2020-04-23,Perry,Tennessee,47135,8,0 +2020-04-24,Perry,Tennessee,47135,8,0 +2020-04-25,Perry,Tennessee,47135,8,0 +2020-04-26,Perry,Tennessee,47135,8,0 +2020-04-27,Perry,Tennessee,47135,8,0 +2020-04-28,Perry,Tennessee,47135,8,0 +2020-04-29,Perry,Tennessee,47135,8,0 +2020-04-30,Perry,Tennessee,47135,9,0 +2020-05-01,Perry,Tennessee,47135,12,0 +2020-05-02,Perry,Tennessee,47135,12,0 +2020-05-03,Perry,Tennessee,47135,12,0 +2020-05-04,Perry,Tennessee,47135,12,0 +2020-05-05,Perry,Tennessee,47135,12,0 +2020-05-06,Perry,Tennessee,47135,13,0 +2020-05-07,Perry,Tennessee,47135,13,0 +2020-05-08,Perry,Tennessee,47135,13,0 +2020-05-09,Perry,Tennessee,47135,13,0 +2020-05-10,Perry,Tennessee,47135,13,0 +2020-05-11,Perry,Tennessee,47135,13,0 +2020-05-12,Perry,Tennessee,47135,13,0 +2020-05-13,Perry,Tennessee,47135,13,0 +2020-05-14,Perry,Tennessee,47135,13,0 +2020-05-15,Perry,Tennessee,47135,13,0 +2020-05-16,Perry,Tennessee,47135,13,0 +2020-05-17,Perry,Tennessee,47135,13,0 +2020-05-18,Perry,Tennessee,47135,13,0 +2020-05-19,Perry,Tennessee,47135,13,0 +2020-05-20,Perry,Tennessee,47135,13,0 +2020-05-21,Perry,Tennessee,47135,13,0 +2020-05-22,Perry,Tennessee,47135,13,0 +2020-05-23,Perry,Tennessee,47135,13,0 +2020-05-24,Perry,Tennessee,47135,13,0 +2020-05-25,Perry,Tennessee,47135,13,0 +2020-05-26,Perry,Tennessee,47135,13,0 +2020-05-27,Perry,Tennessee,47135,13,0 +2020-05-28,Perry,Tennessee,47135,16,0 +2020-05-29,Perry,Tennessee,47135,17,0 +2020-05-30,Perry,Tennessee,47135,21,0 +2020-05-31,Perry,Tennessee,47135,21,0 +2020-06-01,Perry,Tennessee,47135,21,0 +2020-06-02,Perry,Tennessee,47135,23,0 +2020-06-03,Perry,Tennessee,47135,24,0 +2020-06-04,Perry,Tennessee,47135,24,0 +2020-06-05,Perry,Tennessee,47135,24,0 +2020-06-06,Perry,Tennessee,47135,24,0 +2020-06-07,Perry,Tennessee,47135,24,0 +2020-06-08,Perry,Tennessee,47135,24,0 +2020-06-09,Perry,Tennessee,47135,24,0 +2020-06-10,Perry,Tennessee,47135,24,0 +2020-06-11,Perry,Tennessee,47135,24,0 +2020-06-12,Perry,Tennessee,47135,25,0 +2020-06-13,Perry,Tennessee,47135,27,0 +2020-06-14,Perry,Tennessee,47135,27,0 +2020-06-15,Perry,Tennessee,47135,27,0 +2020-06-16,Perry,Tennessee,47135,28,0 +2020-06-17,Perry,Tennessee,47135,28,0 +2020-06-18,Perry,Tennessee,47135,28,0 +2020-06-19,Perry,Tennessee,47135,28,0 +2020-06-20,Perry,Tennessee,47135,28,0 +2020-06-21,Perry,Tennessee,47135,28,0 +2020-06-22,Perry,Tennessee,47135,28,0 +2020-06-23,Perry,Tennessee,47135,28,0 +2020-06-24,Perry,Tennessee,47135,28,0 +2020-06-25,Perry,Tennessee,47135,28,0 +2020-06-26,Perry,Tennessee,47135,28,0 +2020-06-27,Perry,Tennessee,47135,29,0 +2020-06-28,Perry,Tennessee,47135,29,0 +2020-06-29,Perry,Tennessee,47135,30,0 +2020-06-30,Perry,Tennessee,47135,31,0 +2020-07-01,Perry,Tennessee,47135,32,0 +2020-07-02,Perry,Tennessee,47135,31,0 +2020-07-03,Perry,Tennessee,47135,33,0 +2020-07-04,Perry,Tennessee,47135,34,0 +2020-07-05,Perry,Tennessee,47135,34,0 +2020-07-06,Perry,Tennessee,47135,34,0 +2020-07-07,Perry,Tennessee,47135,35,0 +2020-07-08,Perry,Tennessee,47135,35,0 +2020-07-09,Perry,Tennessee,47135,35,0 +2020-05-10,Pickett,Tennessee,47137,1,0 +2020-05-11,Pickett,Tennessee,47137,1,0 +2020-05-12,Pickett,Tennessee,47137,1,0 +2020-05-13,Pickett,Tennessee,47137,1,0 +2020-05-14,Pickett,Tennessee,47137,1,0 +2020-05-15,Pickett,Tennessee,47137,1,0 +2020-05-16,Pickett,Tennessee,47137,1,0 +2020-05-17,Pickett,Tennessee,47137,1,0 +2020-05-18,Pickett,Tennessee,47137,2,0 +2020-05-19,Pickett,Tennessee,47137,2,0 +2020-05-20,Pickett,Tennessee,47137,2,0 +2020-05-21,Pickett,Tennessee,47137,2,0 +2020-05-22,Pickett,Tennessee,47137,2,0 +2020-05-23,Pickett,Tennessee,47137,3,0 +2020-05-24,Pickett,Tennessee,47137,3,0 +2020-05-25,Pickett,Tennessee,47137,3,0 +2020-05-26,Pickett,Tennessee,47137,3,0 +2020-05-27,Pickett,Tennessee,47137,3,0 +2020-05-28,Pickett,Tennessee,47137,3,0 +2020-05-29,Pickett,Tennessee,47137,3,0 +2020-05-30,Pickett,Tennessee,47137,3,0 +2020-05-31,Pickett,Tennessee,47137,3,0 +2020-06-01,Pickett,Tennessee,47137,3,0 +2020-06-02,Pickett,Tennessee,47137,3,0 +2020-06-03,Pickett,Tennessee,47137,3,0 +2020-06-04,Pickett,Tennessee,47137,3,0 +2020-06-05,Pickett,Tennessee,47137,3,0 +2020-06-06,Pickett,Tennessee,47137,4,0 +2020-06-07,Pickett,Tennessee,47137,4,0 +2020-06-08,Pickett,Tennessee,47137,4,0 +2020-06-09,Pickett,Tennessee,47137,4,0 +2020-06-10,Pickett,Tennessee,47137,4,0 +2020-06-11,Pickett,Tennessee,47137,4,0 +2020-06-12,Pickett,Tennessee,47137,4,0 +2020-06-13,Pickett,Tennessee,47137,4,0 +2020-06-14,Pickett,Tennessee,47137,4,0 +2020-06-15,Pickett,Tennessee,47137,4,0 +2020-06-16,Pickett,Tennessee,47137,4,0 +2020-06-17,Pickett,Tennessee,47137,4,0 +2020-06-18,Pickett,Tennessee,47137,4,0 +2020-06-19,Pickett,Tennessee,47137,4,0 +2020-06-20,Pickett,Tennessee,47137,4,0 +2020-06-21,Pickett,Tennessee,47137,4,0 +2020-06-22,Pickett,Tennessee,47137,5,0 +2020-06-23,Pickett,Tennessee,47137,5,0 +2020-06-24,Pickett,Tennessee,47137,5,0 +2020-06-25,Pickett,Tennessee,47137,6,0 +2020-06-26,Pickett,Tennessee,47137,6,0 +2020-06-27,Pickett,Tennessee,47137,6,0 +2020-06-28,Pickett,Tennessee,47137,6,0 +2020-06-29,Pickett,Tennessee,47137,6,0 +2020-06-30,Pickett,Tennessee,47137,6,0 +2020-07-01,Pickett,Tennessee,47137,6,0 +2020-07-02,Pickett,Tennessee,47137,6,0 +2020-07-03,Pickett,Tennessee,47137,6,0 +2020-07-04,Pickett,Tennessee,47137,6,0 +2020-07-05,Pickett,Tennessee,47137,6,0 +2020-07-06,Pickett,Tennessee,47137,6,0 +2020-07-07,Pickett,Tennessee,47137,6,0 +2020-07-08,Pickett,Tennessee,47137,6,0 +2020-07-09,Pickett,Tennessee,47137,7,0 +2020-04-02,Polk,Tennessee,47139,1,0 +2020-04-03,Polk,Tennessee,47139,2,0 +2020-04-04,Polk,Tennessee,47139,3,0 +2020-04-05,Polk,Tennessee,47139,3,0 +2020-04-06,Polk,Tennessee,47139,3,0 +2020-04-07,Polk,Tennessee,47139,3,0 +2020-04-08,Polk,Tennessee,47139,3,0 +2020-04-09,Polk,Tennessee,47139,3,0 +2020-04-10,Polk,Tennessee,47139,5,0 +2020-04-11,Polk,Tennessee,47139,4,0 +2020-04-12,Polk,Tennessee,47139,4,0 +2020-04-13,Polk,Tennessee,47139,5,0 +2020-04-14,Polk,Tennessee,47139,5,0 +2020-04-15,Polk,Tennessee,47139,5,0 +2020-04-16,Polk,Tennessee,47139,5,0 +2020-04-17,Polk,Tennessee,47139,5,0 +2020-04-18,Polk,Tennessee,47139,5,0 +2020-04-19,Polk,Tennessee,47139,5,0 +2020-04-20,Polk,Tennessee,47139,5,0 +2020-04-21,Polk,Tennessee,47139,5,0 +2020-04-22,Polk,Tennessee,47139,6,0 +2020-04-23,Polk,Tennessee,47139,7,0 +2020-04-24,Polk,Tennessee,47139,7,0 +2020-04-25,Polk,Tennessee,47139,7,0 +2020-04-26,Polk,Tennessee,47139,7,0 +2020-04-27,Polk,Tennessee,47139,7,0 +2020-04-28,Polk,Tennessee,47139,8,0 +2020-04-29,Polk,Tennessee,47139,7,0 +2020-04-30,Polk,Tennessee,47139,8,0 +2020-05-01,Polk,Tennessee,47139,8,0 +2020-05-02,Polk,Tennessee,47139,11,0 +2020-05-03,Polk,Tennessee,47139,11,0 +2020-05-04,Polk,Tennessee,47139,12,0 +2020-05-05,Polk,Tennessee,47139,12,0 +2020-05-06,Polk,Tennessee,47139,12,0 +2020-05-07,Polk,Tennessee,47139,12,0 +2020-05-08,Polk,Tennessee,47139,12,0 +2020-05-09,Polk,Tennessee,47139,12,0 +2020-05-10,Polk,Tennessee,47139,12,0 +2020-05-11,Polk,Tennessee,47139,12,0 +2020-05-12,Polk,Tennessee,47139,12,0 +2020-05-13,Polk,Tennessee,47139,12,0 +2020-05-14,Polk,Tennessee,47139,12,0 +2020-05-15,Polk,Tennessee,47139,12,0 +2020-05-16,Polk,Tennessee,47139,12,0 +2020-05-17,Polk,Tennessee,47139,13,0 +2020-05-18,Polk,Tennessee,47139,14,0 +2020-05-19,Polk,Tennessee,47139,14,0 +2020-05-20,Polk,Tennessee,47139,14,0 +2020-05-21,Polk,Tennessee,47139,14,0 +2020-05-22,Polk,Tennessee,47139,14,0 +2020-05-23,Polk,Tennessee,47139,14,0 +2020-05-24,Polk,Tennessee,47139,14,0 +2020-05-25,Polk,Tennessee,47139,14,0 +2020-05-26,Polk,Tennessee,47139,14,0 +2020-05-27,Polk,Tennessee,47139,15,0 +2020-05-28,Polk,Tennessee,47139,15,0 +2020-05-29,Polk,Tennessee,47139,15,0 +2020-05-30,Polk,Tennessee,47139,16,0 +2020-05-31,Polk,Tennessee,47139,16,0 +2020-06-01,Polk,Tennessee,47139,16,0 +2020-06-02,Polk,Tennessee,47139,18,0 +2020-06-03,Polk,Tennessee,47139,18,0 +2020-06-04,Polk,Tennessee,47139,19,0 +2020-06-05,Polk,Tennessee,47139,19,0 +2020-06-06,Polk,Tennessee,47139,21,0 +2020-06-07,Polk,Tennessee,47139,21,0 +2020-06-08,Polk,Tennessee,47139,23,0 +2020-06-09,Polk,Tennessee,47139,24,0 +2020-06-10,Polk,Tennessee,47139,24,0 +2020-06-11,Polk,Tennessee,47139,24,0 +2020-06-12,Polk,Tennessee,47139,28,0 +2020-06-13,Polk,Tennessee,47139,29,0 +2020-06-14,Polk,Tennessee,47139,29,0 +2020-06-15,Polk,Tennessee,47139,29,0 +2020-06-16,Polk,Tennessee,47139,29,0 +2020-06-17,Polk,Tennessee,47139,32,0 +2020-06-18,Polk,Tennessee,47139,32,0 +2020-06-19,Polk,Tennessee,47139,32,0 +2020-06-20,Polk,Tennessee,47139,32,0 +2020-06-21,Polk,Tennessee,47139,32,0 +2020-06-22,Polk,Tennessee,47139,36,0 +2020-06-23,Polk,Tennessee,47139,36,0 +2020-06-24,Polk,Tennessee,47139,36,0 +2020-06-25,Polk,Tennessee,47139,36,0 +2020-06-26,Polk,Tennessee,47139,36,0 +2020-06-27,Polk,Tennessee,47139,38,0 +2020-06-28,Polk,Tennessee,47139,38,0 +2020-06-29,Polk,Tennessee,47139,41,0 +2020-06-30,Polk,Tennessee,47139,41,0 +2020-07-01,Polk,Tennessee,47139,41,0 +2020-07-02,Polk,Tennessee,47139,41,0 +2020-07-03,Polk,Tennessee,47139,44,0 +2020-07-04,Polk,Tennessee,47139,45,0 +2020-07-05,Polk,Tennessee,47139,45,0 +2020-07-06,Polk,Tennessee,47139,46,0 +2020-07-07,Polk,Tennessee,47139,46,0 +2020-07-08,Polk,Tennessee,47139,48,0 +2020-07-09,Polk,Tennessee,47139,51,0 +2020-03-21,Putnam,Tennessee,47141,5,0 +2020-03-22,Putnam,Tennessee,47141,6,0 +2020-03-23,Putnam,Tennessee,47141,6,0 +2020-03-24,Putnam,Tennessee,47141,8,0 +2020-03-25,Putnam,Tennessee,47141,9,0 +2020-03-26,Putnam,Tennessee,47141,11,0 +2020-03-27,Putnam,Tennessee,47141,13,0 +2020-03-28,Putnam,Tennessee,47141,17,0 +2020-03-29,Putnam,Tennessee,47141,17,0 +2020-03-30,Putnam,Tennessee,47141,24,0 +2020-03-31,Putnam,Tennessee,47141,24,0 +2020-04-01,Putnam,Tennessee,47141,31,0 +2020-04-02,Putnam,Tennessee,47141,37,0 +2020-04-03,Putnam,Tennessee,47141,81,0 +2020-04-04,Putnam,Tennessee,47141,81,0 +2020-04-05,Putnam,Tennessee,47141,81,0 +2020-04-06,Putnam,Tennessee,47141,81,0 +2020-04-07,Putnam,Tennessee,47141,81,0 +2020-04-08,Putnam,Tennessee,47141,81,0 +2020-04-09,Putnam,Tennessee,47141,82,0 +2020-04-10,Putnam,Tennessee,47141,84,0 +2020-04-11,Putnam,Tennessee,47141,85,0 +2020-04-12,Putnam,Tennessee,47141,85,0 +2020-04-13,Putnam,Tennessee,47141,87,0 +2020-04-14,Putnam,Tennessee,47141,92,0 +2020-04-15,Putnam,Tennessee,47141,93,0 +2020-04-16,Putnam,Tennessee,47141,93,2 +2020-04-17,Putnam,Tennessee,47141,94,2 +2020-04-18,Putnam,Tennessee,47141,95,2 +2020-04-19,Putnam,Tennessee,47141,95,2 +2020-04-20,Putnam,Tennessee,47141,96,3 +2020-04-21,Putnam,Tennessee,47141,95,3 +2020-04-22,Putnam,Tennessee,47141,100,4 +2020-04-23,Putnam,Tennessee,47141,101,4 +2020-04-24,Putnam,Tennessee,47141,101,4 +2020-04-25,Putnam,Tennessee,47141,106,5 +2020-04-26,Putnam,Tennessee,47141,109,5 +2020-04-27,Putnam,Tennessee,47141,114,5 +2020-04-28,Putnam,Tennessee,47141,115,5 +2020-04-29,Putnam,Tennessee,47141,119,5 +2020-04-30,Putnam,Tennessee,47141,121,5 +2020-05-01,Putnam,Tennessee,47141,122,5 +2020-05-02,Putnam,Tennessee,47141,136,5 +2020-05-03,Putnam,Tennessee,47141,136,5 +2020-05-04,Putnam,Tennessee,47141,139,5 +2020-05-05,Putnam,Tennessee,47141,160,5 +2020-05-06,Putnam,Tennessee,47141,162,5 +2020-05-07,Putnam,Tennessee,47141,162,5 +2020-05-08,Putnam,Tennessee,47141,166,5 +2020-05-09,Putnam,Tennessee,47141,166,5 +2020-05-10,Putnam,Tennessee,47141,175,5 +2020-05-11,Putnam,Tennessee,47141,178,5 +2020-05-12,Putnam,Tennessee,47141,180,5 +2020-05-13,Putnam,Tennessee,47141,190,5 +2020-05-14,Putnam,Tennessee,47141,204,5 +2020-05-15,Putnam,Tennessee,47141,206,5 +2020-05-16,Putnam,Tennessee,47141,232,5 +2020-05-17,Putnam,Tennessee,47141,235,5 +2020-05-18,Putnam,Tennessee,47141,240,5 +2020-05-19,Putnam,Tennessee,47141,286,5 +2020-05-20,Putnam,Tennessee,47141,286,5 +2020-05-21,Putnam,Tennessee,47141,321,5 +2020-05-22,Putnam,Tennessee,47141,350,5 +2020-05-23,Putnam,Tennessee,47141,359,5 +2020-05-24,Putnam,Tennessee,47141,377,5 +2020-05-25,Putnam,Tennessee,47141,380,5 +2020-05-26,Putnam,Tennessee,47141,410,5 +2020-05-27,Putnam,Tennessee,47141,428,5 +2020-05-28,Putnam,Tennessee,47141,461,5 +2020-05-29,Putnam,Tennessee,47141,465,6 +2020-05-30,Putnam,Tennessee,47141,479,5 +2020-05-31,Putnam,Tennessee,47141,479,5 +2020-06-01,Putnam,Tennessee,47141,479,5 +2020-06-02,Putnam,Tennessee,47141,507,5 +2020-06-03,Putnam,Tennessee,47141,519,6 +2020-06-04,Putnam,Tennessee,47141,524,6 +2020-06-05,Putnam,Tennessee,47141,525,6 +2020-06-06,Putnam,Tennessee,47141,529,6 +2020-06-07,Putnam,Tennessee,47141,552,6 +2020-06-08,Putnam,Tennessee,47141,552,6 +2020-06-09,Putnam,Tennessee,47141,569,6 +2020-06-10,Putnam,Tennessee,47141,571,6 +2020-06-11,Putnam,Tennessee,47141,572,6 +2020-06-12,Putnam,Tennessee,47141,588,6 +2020-06-13,Putnam,Tennessee,47141,588,6 +2020-06-14,Putnam,Tennessee,47141,601,6 +2020-06-15,Putnam,Tennessee,47141,610,6 +2020-06-16,Putnam,Tennessee,47141,613,6 +2020-06-17,Putnam,Tennessee,47141,612,6 +2020-06-18,Putnam,Tennessee,47141,630,6 +2020-06-19,Putnam,Tennessee,47141,643,7 +2020-06-20,Putnam,Tennessee,47141,655,7 +2020-06-21,Putnam,Tennessee,47141,663,7 +2020-06-22,Putnam,Tennessee,47141,673,7 +2020-06-23,Putnam,Tennessee,47141,676,7 +2020-06-24,Putnam,Tennessee,47141,675,7 +2020-06-25,Putnam,Tennessee,47141,706,7 +2020-06-26,Putnam,Tennessee,47141,726,7 +2020-06-27,Putnam,Tennessee,47141,735,7 +2020-06-28,Putnam,Tennessee,47141,735,7 +2020-06-29,Putnam,Tennessee,47141,773,7 +2020-06-30,Putnam,Tennessee,47141,783,7 +2020-07-01,Putnam,Tennessee,47141,805,7 +2020-07-02,Putnam,Tennessee,47141,814,7 +2020-07-03,Putnam,Tennessee,47141,853,7 +2020-07-04,Putnam,Tennessee,47141,882,7 +2020-07-05,Putnam,Tennessee,47141,883,7 +2020-07-06,Putnam,Tennessee,47141,906,7 +2020-07-07,Putnam,Tennessee,47141,919,7 +2020-07-08,Putnam,Tennessee,47141,926,7 +2020-07-09,Putnam,Tennessee,47141,989,7 +2020-04-17,Rhea,Tennessee,47143,1,0 +2020-04-18,Rhea,Tennessee,47143,1,0 +2020-04-19,Rhea,Tennessee,47143,2,0 +2020-04-20,Rhea,Tennessee,47143,2,0 +2020-04-21,Rhea,Tennessee,47143,3,0 +2020-04-22,Rhea,Tennessee,47143,4,0 +2020-04-23,Rhea,Tennessee,47143,4,0 +2020-04-24,Rhea,Tennessee,47143,4,0 +2020-04-25,Rhea,Tennessee,47143,4,0 +2020-04-26,Rhea,Tennessee,47143,4,0 +2020-04-27,Rhea,Tennessee,47143,4,0 +2020-04-28,Rhea,Tennessee,47143,4,0 +2020-04-29,Rhea,Tennessee,47143,4,0 +2020-04-30,Rhea,Tennessee,47143,5,0 +2020-05-01,Rhea,Tennessee,47143,5,0 +2020-05-02,Rhea,Tennessee,47143,5,0 +2020-05-03,Rhea,Tennessee,47143,5,0 +2020-05-04,Rhea,Tennessee,47143,5,0 +2020-05-05,Rhea,Tennessee,47143,6,0 +2020-05-06,Rhea,Tennessee,47143,6,0 +2020-05-07,Rhea,Tennessee,47143,6,0 +2020-05-08,Rhea,Tennessee,47143,6,0 +2020-05-09,Rhea,Tennessee,47143,6,0 +2020-05-10,Rhea,Tennessee,47143,6,0 +2020-05-11,Rhea,Tennessee,47143,6,0 +2020-05-12,Rhea,Tennessee,47143,6,0 +2020-05-13,Rhea,Tennessee,47143,6,0 +2020-05-14,Rhea,Tennessee,47143,6,0 +2020-05-15,Rhea,Tennessee,47143,7,0 +2020-05-16,Rhea,Tennessee,47143,7,0 +2020-05-17,Rhea,Tennessee,47143,7,0 +2020-05-18,Rhea,Tennessee,47143,10,0 +2020-05-19,Rhea,Tennessee,47143,15,0 +2020-05-20,Rhea,Tennessee,47143,15,0 +2020-05-21,Rhea,Tennessee,47143,188,0 +2020-05-22,Rhea,Tennessee,47143,193,0 +2020-05-23,Rhea,Tennessee,47143,194,0 +2020-05-24,Rhea,Tennessee,47143,195,0 +2020-05-25,Rhea,Tennessee,47143,197,0 +2020-05-26,Rhea,Tennessee,47143,197,0 +2020-05-27,Rhea,Tennessee,47143,197,0 +2020-05-28,Rhea,Tennessee,47143,198,0 +2020-05-29,Rhea,Tennessee,47143,209,0 +2020-05-30,Rhea,Tennessee,47143,210,0 +2020-05-31,Rhea,Tennessee,47143,210,0 +2020-06-01,Rhea,Tennessee,47143,210,0 +2020-06-02,Rhea,Tennessee,47143,214,0 +2020-06-03,Rhea,Tennessee,47143,214,0 +2020-06-04,Rhea,Tennessee,47143,217,0 +2020-06-05,Rhea,Tennessee,47143,216,0 +2020-06-06,Rhea,Tennessee,47143,218,0 +2020-06-07,Rhea,Tennessee,47143,218,0 +2020-06-08,Rhea,Tennessee,47143,221,0 +2020-06-09,Rhea,Tennessee,47143,219,0 +2020-06-10,Rhea,Tennessee,47143,220,0 +2020-06-11,Rhea,Tennessee,47143,220,0 +2020-06-12,Rhea,Tennessee,47143,222,0 +2020-06-13,Rhea,Tennessee,47143,228,0 +2020-06-14,Rhea,Tennessee,47143,232,0 +2020-06-15,Rhea,Tennessee,47143,239,0 +2020-06-16,Rhea,Tennessee,47143,239,0 +2020-06-17,Rhea,Tennessee,47143,243,0 +2020-06-18,Rhea,Tennessee,47143,243,0 +2020-06-19,Rhea,Tennessee,47143,247,0 +2020-06-20,Rhea,Tennessee,47143,253,0 +2020-06-21,Rhea,Tennessee,47143,256,0 +2020-06-22,Rhea,Tennessee,47143,255,0 +2020-06-23,Rhea,Tennessee,47143,256,0 +2020-06-24,Rhea,Tennessee,47143,257,0 +2020-06-25,Rhea,Tennessee,47143,258,0 +2020-06-26,Rhea,Tennessee,47143,259,0 +2020-06-27,Rhea,Tennessee,47143,262,0 +2020-06-28,Rhea,Tennessee,47143,262,0 +2020-06-29,Rhea,Tennessee,47143,266,0 +2020-06-30,Rhea,Tennessee,47143,269,0 +2020-07-01,Rhea,Tennessee,47143,272,0 +2020-07-02,Rhea,Tennessee,47143,274,0 +2020-07-03,Rhea,Tennessee,47143,276,0 +2020-07-04,Rhea,Tennessee,47143,278,0 +2020-07-05,Rhea,Tennessee,47143,286,0 +2020-07-06,Rhea,Tennessee,47143,285,0 +2020-07-07,Rhea,Tennessee,47143,289,0 +2020-07-08,Rhea,Tennessee,47143,293,0 +2020-07-09,Rhea,Tennessee,47143,294,0 +2020-03-21,Roane,Tennessee,47145,1,0 +2020-03-22,Roane,Tennessee,47145,1,0 +2020-03-23,Roane,Tennessee,47145,1,0 +2020-03-24,Roane,Tennessee,47145,1,0 +2020-03-25,Roane,Tennessee,47145,1,0 +2020-03-26,Roane,Tennessee,47145,1,0 +2020-03-27,Roane,Tennessee,47145,1,0 +2020-03-28,Roane,Tennessee,47145,1,0 +2020-03-29,Roane,Tennessee,47145,2,0 +2020-03-30,Roane,Tennessee,47145,2,0 +2020-03-31,Roane,Tennessee,47145,2,0 +2020-04-01,Roane,Tennessee,47145,2,0 +2020-04-02,Roane,Tennessee,47145,3,0 +2020-04-03,Roane,Tennessee,47145,3,0 +2020-04-04,Roane,Tennessee,47145,5,0 +2020-04-05,Roane,Tennessee,47145,5,0 +2020-04-06,Roane,Tennessee,47145,5,0 +2020-04-07,Roane,Tennessee,47145,5,0 +2020-04-08,Roane,Tennessee,47145,5,0 +2020-04-09,Roane,Tennessee,47145,5,0 +2020-04-10,Roane,Tennessee,47145,5,0 +2020-04-11,Roane,Tennessee,47145,5,0 +2020-04-12,Roane,Tennessee,47145,5,0 +2020-04-13,Roane,Tennessee,47145,5,0 +2020-04-14,Roane,Tennessee,47145,5,0 +2020-04-15,Roane,Tennessee,47145,6,0 +2020-04-16,Roane,Tennessee,47145,7,0 +2020-04-17,Roane,Tennessee,47145,8,0 +2020-04-18,Roane,Tennessee,47145,8,0 +2020-04-19,Roane,Tennessee,47145,8,0 +2020-04-20,Roane,Tennessee,47145,8,0 +2020-04-21,Roane,Tennessee,47145,8,0 +2020-04-22,Roane,Tennessee,47145,8,0 +2020-04-23,Roane,Tennessee,47145,8,0 +2020-04-24,Roane,Tennessee,47145,8,0 +2020-04-25,Roane,Tennessee,47145,8,0 +2020-04-26,Roane,Tennessee,47145,8,0 +2020-04-27,Roane,Tennessee,47145,8,0 +2020-04-28,Roane,Tennessee,47145,8,0 +2020-04-29,Roane,Tennessee,47145,8,0 +2020-04-30,Roane,Tennessee,47145,8,0 +2020-05-01,Roane,Tennessee,47145,8,0 +2020-05-02,Roane,Tennessee,47145,8,0 +2020-05-03,Roane,Tennessee,47145,8,0 +2020-05-04,Roane,Tennessee,47145,8,0 +2020-05-05,Roane,Tennessee,47145,8,0 +2020-05-06,Roane,Tennessee,47145,8,0 +2020-05-07,Roane,Tennessee,47145,8,0 +2020-05-08,Roane,Tennessee,47145,8,0 +2020-05-09,Roane,Tennessee,47145,8,0 +2020-05-10,Roane,Tennessee,47145,8,0 +2020-05-11,Roane,Tennessee,47145,8,0 +2020-05-12,Roane,Tennessee,47145,8,0 +2020-05-13,Roane,Tennessee,47145,8,0 +2020-05-14,Roane,Tennessee,47145,8,0 +2020-05-15,Roane,Tennessee,47145,8,0 +2020-05-16,Roane,Tennessee,47145,8,0 +2020-05-17,Roane,Tennessee,47145,8,0 +2020-05-18,Roane,Tennessee,47145,9,0 +2020-05-19,Roane,Tennessee,47145,9,0 +2020-05-20,Roane,Tennessee,47145,9,0 +2020-05-21,Roane,Tennessee,47145,9,0 +2020-05-22,Roane,Tennessee,47145,10,0 +2020-05-23,Roane,Tennessee,47145,13,0 +2020-05-24,Roane,Tennessee,47145,15,0 +2020-05-25,Roane,Tennessee,47145,15,0 +2020-05-26,Roane,Tennessee,47145,15,0 +2020-05-27,Roane,Tennessee,47145,16,0 +2020-05-28,Roane,Tennessee,47145,16,0 +2020-05-29,Roane,Tennessee,47145,16,0 +2020-05-30,Roane,Tennessee,47145,16,0 +2020-05-31,Roane,Tennessee,47145,16,0 +2020-06-01,Roane,Tennessee,47145,16,0 +2020-06-02,Roane,Tennessee,47145,16,0 +2020-06-03,Roane,Tennessee,47145,16,0 +2020-06-04,Roane,Tennessee,47145,16,0 +2020-06-05,Roane,Tennessee,47145,17,0 +2020-06-06,Roane,Tennessee,47145,19,0 +2020-06-07,Roane,Tennessee,47145,21,0 +2020-06-08,Roane,Tennessee,47145,21,0 +2020-06-09,Roane,Tennessee,47145,23,0 +2020-06-10,Roane,Tennessee,47145,23,0 +2020-06-11,Roane,Tennessee,47145,23,0 +2020-06-12,Roane,Tennessee,47145,33,0 +2020-06-13,Roane,Tennessee,47145,32,0 +2020-06-14,Roane,Tennessee,47145,33,0 +2020-06-15,Roane,Tennessee,47145,33,0 +2020-06-16,Roane,Tennessee,47145,32,0 +2020-06-17,Roane,Tennessee,47145,32,0 +2020-06-18,Roane,Tennessee,47145,32,0 +2020-06-19,Roane,Tennessee,47145,34,0 +2020-06-20,Roane,Tennessee,47145,34,0 +2020-06-21,Roane,Tennessee,47145,34,0 +2020-06-22,Roane,Tennessee,47145,34,0 +2020-06-23,Roane,Tennessee,47145,35,0 +2020-06-24,Roane,Tennessee,47145,41,0 +2020-06-25,Roane,Tennessee,47145,42,0 +2020-06-26,Roane,Tennessee,47145,42,0 +2020-06-27,Roane,Tennessee,47145,43,0 +2020-06-28,Roane,Tennessee,47145,43,0 +2020-06-29,Roane,Tennessee,47145,43,0 +2020-06-30,Roane,Tennessee,47145,44,0 +2020-07-01,Roane,Tennessee,47145,46,0 +2020-07-02,Roane,Tennessee,47145,50,0 +2020-07-03,Roane,Tennessee,47145,59,0 +2020-07-04,Roane,Tennessee,47145,61,0 +2020-07-05,Roane,Tennessee,47145,62,0 +2020-07-06,Roane,Tennessee,47145,62,0 +2020-07-07,Roane,Tennessee,47145,64,0 +2020-07-08,Roane,Tennessee,47145,71,0 +2020-07-09,Roane,Tennessee,47145,75,0 +2020-03-18,Robertson,Tennessee,47147,1,0 +2020-03-19,Robertson,Tennessee,47147,2,0 +2020-03-20,Robertson,Tennessee,47147,2,0 +2020-03-21,Robertson,Tennessee,47147,2,0 +2020-03-22,Robertson,Tennessee,47147,3,0 +2020-03-23,Robertson,Tennessee,47147,3,0 +2020-03-24,Robertson,Tennessee,47147,12,0 +2020-03-25,Robertson,Tennessee,47147,15,0 +2020-03-26,Robertson,Tennessee,47147,20,0 +2020-03-27,Robertson,Tennessee,47147,22,0 +2020-03-28,Robertson,Tennessee,47147,23,0 +2020-03-29,Robertson,Tennessee,47147,25,0 +2020-03-30,Robertson,Tennessee,47147,27,0 +2020-03-31,Robertson,Tennessee,47147,27,0 +2020-04-01,Robertson,Tennessee,47147,35,0 +2020-04-02,Robertson,Tennessee,47147,41,0 +2020-04-03,Robertson,Tennessee,47147,51,0 +2020-04-04,Robertson,Tennessee,47147,51,0 +2020-04-05,Robertson,Tennessee,47147,59,0 +2020-04-06,Robertson,Tennessee,47147,60,0 +2020-04-07,Robertson,Tennessee,47147,65,0 +2020-04-08,Robertson,Tennessee,47147,67,0 +2020-04-09,Robertson,Tennessee,47147,70,0 +2020-04-10,Robertson,Tennessee,47147,73,0 +2020-04-11,Robertson,Tennessee,47147,81,0 +2020-04-12,Robertson,Tennessee,47147,81,0 +2020-04-13,Robertson,Tennessee,47147,88,0 +2020-04-14,Robertson,Tennessee,47147,92,0 +2020-04-15,Robertson,Tennessee,47147,94,0 +2020-04-16,Robertson,Tennessee,47147,95,0 +2020-04-17,Robertson,Tennessee,47147,105,0 +2020-04-18,Robertson,Tennessee,47147,105,0 +2020-04-19,Robertson,Tennessee,47147,113,0 +2020-04-20,Robertson,Tennessee,47147,116,0 +2020-04-21,Robertson,Tennessee,47147,117,0 +2020-04-22,Robertson,Tennessee,47147,123,0 +2020-04-23,Robertson,Tennessee,47147,126,0 +2020-04-24,Robertson,Tennessee,47147,125,0 +2020-04-25,Robertson,Tennessee,47147,127,0 +2020-04-26,Robertson,Tennessee,47147,136,0 +2020-04-27,Robertson,Tennessee,47147,138,0 +2020-04-28,Robertson,Tennessee,47147,139,0 +2020-04-29,Robertson,Tennessee,47147,139,0 +2020-04-30,Robertson,Tennessee,47147,148,0 +2020-05-01,Robertson,Tennessee,47147,157,0 +2020-05-02,Robertson,Tennessee,47147,168,0 +2020-05-03,Robertson,Tennessee,47147,179,0 +2020-05-04,Robertson,Tennessee,47147,184,0 +2020-05-05,Robertson,Tennessee,47147,185,0 +2020-05-06,Robertson,Tennessee,47147,186,0 +2020-05-07,Robertson,Tennessee,47147,195,0 +2020-05-08,Robertson,Tennessee,47147,207,0 +2020-05-09,Robertson,Tennessee,47147,219,0 +2020-05-10,Robertson,Tennessee,47147,218,0 +2020-05-11,Robertson,Tennessee,47147,220,0 +2020-05-12,Robertson,Tennessee,47147,244,0 +2020-05-13,Robertson,Tennessee,47147,245,0 +2020-05-14,Robertson,Tennessee,47147,250,0 +2020-05-15,Robertson,Tennessee,47147,263,0 +2020-05-16,Robertson,Tennessee,47147,274,0 +2020-05-17,Robertson,Tennessee,47147,274,0 +2020-05-18,Robertson,Tennessee,47147,294,0 +2020-05-19,Robertson,Tennessee,47147,298,0 +2020-05-20,Robertson,Tennessee,47147,298,0 +2020-05-21,Robertson,Tennessee,47147,317,0 +2020-05-22,Robertson,Tennessee,47147,335,0 +2020-05-23,Robertson,Tennessee,47147,360,0 +2020-05-24,Robertson,Tennessee,47147,371,1 +2020-05-25,Robertson,Tennessee,47147,389,1 +2020-05-26,Robertson,Tennessee,47147,414,1 +2020-05-27,Robertson,Tennessee,47147,426,2 +2020-05-28,Robertson,Tennessee,47147,441,2 +2020-05-29,Robertson,Tennessee,47147,449,3 +2020-05-30,Robertson,Tennessee,47147,465,3 +2020-05-31,Robertson,Tennessee,47147,465,3 +2020-06-01,Robertson,Tennessee,47147,465,3 +2020-06-02,Robertson,Tennessee,47147,511,4 +2020-06-03,Robertson,Tennessee,47147,516,5 +2020-06-04,Robertson,Tennessee,47147,523,5 +2020-06-05,Robertson,Tennessee,47147,542,5 +2020-06-06,Robertson,Tennessee,47147,545,6 +2020-06-07,Robertson,Tennessee,47147,553,6 +2020-06-08,Robertson,Tennessee,47147,567,6 +2020-06-09,Robertson,Tennessee,47147,580,7 +2020-06-10,Robertson,Tennessee,47147,584,7 +2020-06-11,Robertson,Tennessee,47147,594,7 +2020-06-12,Robertson,Tennessee,47147,597,8 +2020-06-13,Robertson,Tennessee,47147,609,8 +2020-06-14,Robertson,Tennessee,47147,633,9 +2020-06-15,Robertson,Tennessee,47147,649,9 +2020-06-16,Robertson,Tennessee,47147,657,9 +2020-06-17,Robertson,Tennessee,47147,658,9 +2020-06-18,Robertson,Tennessee,47147,670,9 +2020-06-19,Robertson,Tennessee,47147,703,9 +2020-06-20,Robertson,Tennessee,47147,701,9 +2020-06-21,Robertson,Tennessee,47147,705,9 +2020-06-22,Robertson,Tennessee,47147,708,10 +2020-06-23,Robertson,Tennessee,47147,715,10 +2020-06-24,Robertson,Tennessee,47147,722,10 +2020-06-25,Robertson,Tennessee,47147,729,10 +2020-06-26,Robertson,Tennessee,47147,742,11 +2020-06-27,Robertson,Tennessee,47147,751,11 +2020-06-28,Robertson,Tennessee,47147,751,11 +2020-06-29,Robertson,Tennessee,47147,768,11 +2020-06-30,Robertson,Tennessee,47147,776,11 +2020-07-01,Robertson,Tennessee,47147,792,11 +2020-07-02,Robertson,Tennessee,47147,801,11 +2020-07-03,Robertson,Tennessee,47147,815,11 +2020-07-04,Robertson,Tennessee,47147,826,11 +2020-07-05,Robertson,Tennessee,47147,834,11 +2020-07-06,Robertson,Tennessee,47147,839,11 +2020-07-07,Robertson,Tennessee,47147,855,11 +2020-07-08,Robertson,Tennessee,47147,875,11 +2020-07-09,Robertson,Tennessee,47147,882,13 +2020-03-13,Rutherford,Tennessee,47149,1,0 +2020-03-14,Rutherford,Tennessee,47149,1,0 +2020-03-15,Rutherford,Tennessee,47149,1,0 +2020-03-16,Rutherford,Tennessee,47149,1,0 +2020-03-17,Rutherford,Tennessee,47149,1,0 +2020-03-18,Rutherford,Tennessee,47149,1,0 +2020-03-19,Rutherford,Tennessee,47149,1,0 +2020-03-20,Rutherford,Tennessee,47149,1,0 +2020-03-21,Rutherford,Tennessee,47149,5,0 +2020-03-22,Rutherford,Tennessee,47149,8,0 +2020-03-23,Rutherford,Tennessee,47149,8,0 +2020-03-24,Rutherford,Tennessee,47149,13,0 +2020-03-25,Rutherford,Tennessee,47149,19,0 +2020-03-26,Rutherford,Tennessee,47149,27,0 +2020-03-27,Rutherford,Tennessee,47149,39,0 +2020-03-28,Rutherford,Tennessee,47149,46,0 +2020-03-29,Rutherford,Tennessee,47149,48,0 +2020-03-30,Rutherford,Tennessee,47149,57,0 +2020-03-31,Rutherford,Tennessee,47149,57,0 +2020-04-01,Rutherford,Tennessee,47149,86,1 +2020-04-02,Rutherford,Tennessee,47149,113,1 +2020-04-03,Rutherford,Tennessee,47149,127,3 +2020-04-04,Rutherford,Tennessee,47149,140,3 +2020-04-05,Rutherford,Tennessee,47149,147,3 +2020-04-06,Rutherford,Tennessee,47149,161,3 +2020-04-07,Rutherford,Tennessee,47149,178,3 +2020-04-08,Rutherford,Tennessee,47149,193,3 +2020-04-09,Rutherford,Tennessee,47149,203,3 +2020-04-10,Rutherford,Tennessee,47149,222,6 +2020-04-11,Rutherford,Tennessee,47149,235,6 +2020-04-12,Rutherford,Tennessee,47149,235,6 +2020-04-13,Rutherford,Tennessee,47149,250,6 +2020-04-14,Rutherford,Tennessee,47149,253,6 +2020-04-15,Rutherford,Tennessee,47149,269,6 +2020-04-16,Rutherford,Tennessee,47149,271,6 +2020-04-17,Rutherford,Tennessee,47149,295,6 +2020-04-18,Rutherford,Tennessee,47149,302,6 +2020-04-19,Rutherford,Tennessee,47149,309,6 +2020-04-20,Rutherford,Tennessee,47149,328,7 +2020-04-21,Rutherford,Tennessee,47149,338,7 +2020-04-22,Rutherford,Tennessee,47149,345,7 +2020-04-23,Rutherford,Tennessee,47149,352,7 +2020-04-24,Rutherford,Tennessee,47149,364,7 +2020-04-25,Rutherford,Tennessee,47149,387,8 +2020-04-26,Rutherford,Tennessee,47149,405,9 +2020-04-27,Rutherford,Tennessee,47149,423,9 +2020-04-28,Rutherford,Tennessee,47149,434,10 +2020-04-29,Rutherford,Tennessee,47149,448,11 +2020-04-30,Rutherford,Tennessee,47149,474,11 +2020-05-01,Rutherford,Tennessee,47149,502,11 +2020-05-02,Rutherford,Tennessee,47149,547,11 +2020-05-03,Rutherford,Tennessee,47149,579,11 +2020-05-04,Rutherford,Tennessee,47149,603,11 +2020-05-05,Rutherford,Tennessee,47149,620,12 +2020-05-06,Rutherford,Tennessee,47149,655,14 +2020-05-07,Rutherford,Tennessee,47149,661,14 +2020-05-08,Rutherford,Tennessee,47149,685,14 +2020-05-09,Rutherford,Tennessee,47149,720,14 +2020-05-10,Rutherford,Tennessee,47149,725,14 +2020-05-11,Rutherford,Tennessee,47149,745,14 +2020-05-12,Rutherford,Tennessee,47149,764,18 +2020-05-13,Rutherford,Tennessee,47149,780,20 +2020-05-14,Rutherford,Tennessee,47149,796,19 +2020-05-15,Rutherford,Tennessee,47149,814,19 +2020-05-16,Rutherford,Tennessee,47149,847,19 +2020-05-17,Rutherford,Tennessee,47149,847,19 +2020-05-18,Rutherford,Tennessee,47149,884,19 +2020-05-19,Rutherford,Tennessee,47149,906,19 +2020-05-20,Rutherford,Tennessee,47149,906,19 +2020-05-21,Rutherford,Tennessee,47149,930,20 +2020-05-22,Rutherford,Tennessee,47149,950,20 +2020-05-23,Rutherford,Tennessee,47149,977,22 +2020-05-24,Rutherford,Tennessee,47149,998,22 +2020-05-25,Rutherford,Tennessee,47149,1029,22 +2020-05-26,Rutherford,Tennessee,47149,1063,22 +2020-05-27,Rutherford,Tennessee,47149,1090,22 +2020-05-28,Rutherford,Tennessee,47149,1116,22 +2020-05-29,Rutherford,Tennessee,47149,1162,22 +2020-05-30,Rutherford,Tennessee,47149,1196,23 +2020-05-31,Rutherford,Tennessee,47149,1196,23 +2020-06-01,Rutherford,Tennessee,47149,1196,23 +2020-06-02,Rutherford,Tennessee,47149,1278,27 +2020-06-03,Rutherford,Tennessee,47149,1321,28 +2020-06-04,Rutherford,Tennessee,47149,1343,28 +2020-06-05,Rutherford,Tennessee,47149,1398,29 +2020-06-06,Rutherford,Tennessee,47149,1443,29 +2020-06-07,Rutherford,Tennessee,47149,1479,29 +2020-06-08,Rutherford,Tennessee,47149,1522,29 +2020-06-09,Rutherford,Tennessee,47149,1568,29 +2020-06-10,Rutherford,Tennessee,47149,1600,29 +2020-06-11,Rutherford,Tennessee,47149,1620,29 +2020-06-12,Rutherford,Tennessee,47149,1653,30 +2020-06-13,Rutherford,Tennessee,47149,1675,30 +2020-06-14,Rutherford,Tennessee,47149,1719,30 +2020-06-15,Rutherford,Tennessee,47149,1775,30 +2020-06-16,Rutherford,Tennessee,47149,1820,31 +2020-06-17,Rutherford,Tennessee,47149,1851,31 +2020-06-18,Rutherford,Tennessee,47149,1888,32 +2020-06-19,Rutherford,Tennessee,47149,1990,32 +2020-06-20,Rutherford,Tennessee,47149,2019,32 +2020-06-21,Rutherford,Tennessee,47149,2060,32 +2020-06-22,Rutherford,Tennessee,47149,2100,32 +2020-06-23,Rutherford,Tennessee,47149,2150,33 +2020-06-24,Rutherford,Tennessee,47149,2211,33 +2020-06-25,Rutherford,Tennessee,47149,2266,34 +2020-06-26,Rutherford,Tennessee,47149,2337,34 +2020-06-27,Rutherford,Tennessee,47149,2362,34 +2020-06-28,Rutherford,Tennessee,47149,2362,34 +2020-06-29,Rutherford,Tennessee,47149,2450,34 +2020-06-30,Rutherford,Tennessee,47149,2528,34 +2020-07-01,Rutherford,Tennessee,47149,2648,35 +2020-07-02,Rutherford,Tennessee,47149,2733,35 +2020-07-03,Rutherford,Tennessee,47149,2854,35 +2020-07-04,Rutherford,Tennessee,47149,2919,35 +2020-07-05,Rutherford,Tennessee,47149,2987,35 +2020-07-06,Rutherford,Tennessee,47149,3040,35 +2020-07-07,Rutherford,Tennessee,47149,3111,36 +2020-07-08,Rutherford,Tennessee,47149,3234,37 +2020-07-09,Rutherford,Tennessee,47149,3326,38 +2020-03-21,Scott,Tennessee,47151,2,0 +2020-03-22,Scott,Tennessee,47151,2,0 +2020-03-23,Scott,Tennessee,47151,2,0 +2020-03-24,Scott,Tennessee,47151,2,0 +2020-03-25,Scott,Tennessee,47151,2,0 +2020-03-26,Scott,Tennessee,47151,2,0 +2020-03-27,Scott,Tennessee,47151,2,0 +2020-03-28,Scott,Tennessee,47151,2,0 +2020-03-29,Scott,Tennessee,47151,2,0 +2020-03-30,Scott,Tennessee,47151,2,0 +2020-03-31,Scott,Tennessee,47151,2,0 +2020-04-01,Scott,Tennessee,47151,3,0 +2020-04-02,Scott,Tennessee,47151,3,0 +2020-04-03,Scott,Tennessee,47151,3,0 +2020-04-04,Scott,Tennessee,47151,3,0 +2020-04-05,Scott,Tennessee,47151,3,0 +2020-04-06,Scott,Tennessee,47151,3,0 +2020-04-07,Scott,Tennessee,47151,4,0 +2020-04-08,Scott,Tennessee,47151,5,0 +2020-04-09,Scott,Tennessee,47151,5,0 +2020-04-10,Scott,Tennessee,47151,8,0 +2020-04-11,Scott,Tennessee,47151,8,0 +2020-04-12,Scott,Tennessee,47151,8,0 +2020-04-13,Scott,Tennessee,47151,9,0 +2020-04-14,Scott,Tennessee,47151,10,0 +2020-04-15,Scott,Tennessee,47151,11,0 +2020-04-16,Scott,Tennessee,47151,11,0 +2020-04-17,Scott,Tennessee,47151,11,0 +2020-04-18,Scott,Tennessee,47151,11,0 +2020-04-19,Scott,Tennessee,47151,11,0 +2020-04-20,Scott,Tennessee,47151,11,0 +2020-04-21,Scott,Tennessee,47151,12,0 +2020-04-22,Scott,Tennessee,47151,11,0 +2020-04-23,Scott,Tennessee,47151,11,0 +2020-04-24,Scott,Tennessee,47151,11,0 +2020-04-25,Scott,Tennessee,47151,11,0 +2020-04-26,Scott,Tennessee,47151,11,0 +2020-04-27,Scott,Tennessee,47151,11,0 +2020-04-28,Scott,Tennessee,47151,11,0 +2020-04-29,Scott,Tennessee,47151,11,0 +2020-04-30,Scott,Tennessee,47151,11,0 +2020-05-01,Scott,Tennessee,47151,11,0 +2020-05-02,Scott,Tennessee,47151,11,0 +2020-05-03,Scott,Tennessee,47151,11,0 +2020-05-04,Scott,Tennessee,47151,12,0 +2020-05-05,Scott,Tennessee,47151,12,0 +2020-05-06,Scott,Tennessee,47151,11,0 +2020-05-07,Scott,Tennessee,47151,11,0 +2020-05-08,Scott,Tennessee,47151,11,0 +2020-05-09,Scott,Tennessee,47151,11,0 +2020-05-10,Scott,Tennessee,47151,11,0 +2020-05-11,Scott,Tennessee,47151,11,0 +2020-05-12,Scott,Tennessee,47151,11,0 +2020-05-13,Scott,Tennessee,47151,11,0 +2020-05-14,Scott,Tennessee,47151,11,0 +2020-05-15,Scott,Tennessee,47151,11,0 +2020-05-16,Scott,Tennessee,47151,11,0 +2020-05-17,Scott,Tennessee,47151,11,0 +2020-05-18,Scott,Tennessee,47151,12,0 +2020-05-19,Scott,Tennessee,47151,11,0 +2020-05-20,Scott,Tennessee,47151,11,0 +2020-05-21,Scott,Tennessee,47151,11,0 +2020-05-22,Scott,Tennessee,47151,11,0 +2020-05-23,Scott,Tennessee,47151,11,0 +2020-05-24,Scott,Tennessee,47151,11,0 +2020-05-25,Scott,Tennessee,47151,11,0 +2020-05-26,Scott,Tennessee,47151,11,0 +2020-05-27,Scott,Tennessee,47151,11,0 +2020-05-28,Scott,Tennessee,47151,11,0 +2020-05-29,Scott,Tennessee,47151,12,0 +2020-05-30,Scott,Tennessee,47151,12,0 +2020-05-31,Scott,Tennessee,47151,12,0 +2020-06-01,Scott,Tennessee,47151,12,0 +2020-06-02,Scott,Tennessee,47151,12,0 +2020-06-03,Scott,Tennessee,47151,12,0 +2020-06-04,Scott,Tennessee,47151,12,0 +2020-06-05,Scott,Tennessee,47151,13,0 +2020-06-06,Scott,Tennessee,47151,13,0 +2020-06-07,Scott,Tennessee,47151,14,0 +2020-06-08,Scott,Tennessee,47151,13,0 +2020-06-09,Scott,Tennessee,47151,13,0 +2020-06-10,Scott,Tennessee,47151,14,0 +2020-06-11,Scott,Tennessee,47151,14,0 +2020-06-12,Scott,Tennessee,47151,14,0 +2020-06-13,Scott,Tennessee,47151,14,0 +2020-06-14,Scott,Tennessee,47151,14,0 +2020-06-15,Scott,Tennessee,47151,14,0 +2020-06-16,Scott,Tennessee,47151,14,0 +2020-06-17,Scott,Tennessee,47151,14,0 +2020-06-18,Scott,Tennessee,47151,15,0 +2020-06-19,Scott,Tennessee,47151,15,0 +2020-06-20,Scott,Tennessee,47151,14,0 +2020-06-21,Scott,Tennessee,47151,14,0 +2020-06-22,Scott,Tennessee,47151,14,0 +2020-06-23,Scott,Tennessee,47151,14,0 +2020-06-24,Scott,Tennessee,47151,14,0 +2020-06-25,Scott,Tennessee,47151,14,0 +2020-06-26,Scott,Tennessee,47151,14,0 +2020-06-27,Scott,Tennessee,47151,14,0 +2020-06-28,Scott,Tennessee,47151,14,0 +2020-06-29,Scott,Tennessee,47151,14,0 +2020-06-30,Scott,Tennessee,47151,14,0 +2020-07-01,Scott,Tennessee,47151,15,0 +2020-07-02,Scott,Tennessee,47151,15,0 +2020-07-03,Scott,Tennessee,47151,18,0 +2020-07-04,Scott,Tennessee,47151,17,0 +2020-07-05,Scott,Tennessee,47151,17,0 +2020-07-06,Scott,Tennessee,47151,17,0 +2020-07-07,Scott,Tennessee,47151,18,0 +2020-07-08,Scott,Tennessee,47151,21,0 +2020-07-09,Scott,Tennessee,47151,22,0 +2020-04-01,Sequatchie,Tennessee,47153,1,0 +2020-04-02,Sequatchie,Tennessee,47153,2,0 +2020-04-03,Sequatchie,Tennessee,47153,2,0 +2020-04-04,Sequatchie,Tennessee,47153,2,0 +2020-04-05,Sequatchie,Tennessee,47153,2,0 +2020-04-06,Sequatchie,Tennessee,47153,2,0 +2020-04-07,Sequatchie,Tennessee,47153,1,0 +2020-04-08,Sequatchie,Tennessee,47153,1,0 +2020-04-09,Sequatchie,Tennessee,47153,1,0 +2020-04-10,Sequatchie,Tennessee,47153,1,0 +2020-04-11,Sequatchie,Tennessee,47153,1,0 +2020-04-12,Sequatchie,Tennessee,47153,1,0 +2020-04-13,Sequatchie,Tennessee,47153,3,0 +2020-04-14,Sequatchie,Tennessee,47153,3,0 +2020-04-15,Sequatchie,Tennessee,47153,3,0 +2020-04-16,Sequatchie,Tennessee,47153,3,0 +2020-04-17,Sequatchie,Tennessee,47153,3,0 +2020-04-18,Sequatchie,Tennessee,47153,3,0 +2020-04-19,Sequatchie,Tennessee,47153,3,0 +2020-04-20,Sequatchie,Tennessee,47153,3,0 +2020-04-21,Sequatchie,Tennessee,47153,3,0 +2020-04-22,Sequatchie,Tennessee,47153,3,0 +2020-04-23,Sequatchie,Tennessee,47153,3,0 +2020-04-24,Sequatchie,Tennessee,47153,3,0 +2020-04-25,Sequatchie,Tennessee,47153,4,0 +2020-04-26,Sequatchie,Tennessee,47153,5,0 +2020-04-27,Sequatchie,Tennessee,47153,5,0 +2020-04-28,Sequatchie,Tennessee,47153,5,0 +2020-04-29,Sequatchie,Tennessee,47153,5,0 +2020-04-30,Sequatchie,Tennessee,47153,5,0 +2020-05-01,Sequatchie,Tennessee,47153,5,0 +2020-05-02,Sequatchie,Tennessee,47153,5,0 +2020-05-03,Sequatchie,Tennessee,47153,5,0 +2020-05-04,Sequatchie,Tennessee,47153,5,0 +2020-05-05,Sequatchie,Tennessee,47153,5,0 +2020-05-06,Sequatchie,Tennessee,47153,7,0 +2020-05-07,Sequatchie,Tennessee,47153,7,0 +2020-05-08,Sequatchie,Tennessee,47153,6,0 +2020-05-09,Sequatchie,Tennessee,47153,6,0 +2020-05-10,Sequatchie,Tennessee,47153,6,0 +2020-05-11,Sequatchie,Tennessee,47153,6,0 +2020-05-12,Sequatchie,Tennessee,47153,6,0 +2020-05-13,Sequatchie,Tennessee,47153,7,0 +2020-05-14,Sequatchie,Tennessee,47153,10,0 +2020-05-15,Sequatchie,Tennessee,47153,10,0 +2020-05-16,Sequatchie,Tennessee,47153,10,0 +2020-05-17,Sequatchie,Tennessee,47153,10,0 +2020-05-18,Sequatchie,Tennessee,47153,10,0 +2020-05-19,Sequatchie,Tennessee,47153,9,0 +2020-05-20,Sequatchie,Tennessee,47153,9,0 +2020-05-21,Sequatchie,Tennessee,47153,10,0 +2020-05-22,Sequatchie,Tennessee,47153,10,0 +2020-05-23,Sequatchie,Tennessee,47153,10,0 +2020-05-24,Sequatchie,Tennessee,47153,10,0 +2020-05-25,Sequatchie,Tennessee,47153,11,0 +2020-05-26,Sequatchie,Tennessee,47153,12,0 +2020-05-27,Sequatchie,Tennessee,47153,13,0 +2020-05-28,Sequatchie,Tennessee,47153,15,0 +2020-05-29,Sequatchie,Tennessee,47153,15,0 +2020-05-30,Sequatchie,Tennessee,47153,15,0 +2020-05-31,Sequatchie,Tennessee,47153,15,0 +2020-06-01,Sequatchie,Tennessee,47153,15,0 +2020-06-02,Sequatchie,Tennessee,47153,19,0 +2020-06-03,Sequatchie,Tennessee,47153,19,0 +2020-06-04,Sequatchie,Tennessee,47153,20,0 +2020-06-05,Sequatchie,Tennessee,47153,20,0 +2020-06-06,Sequatchie,Tennessee,47153,20,0 +2020-06-07,Sequatchie,Tennessee,47153,20,0 +2020-06-08,Sequatchie,Tennessee,47153,21,0 +2020-06-09,Sequatchie,Tennessee,47153,21,0 +2020-06-10,Sequatchie,Tennessee,47153,21,0 +2020-06-11,Sequatchie,Tennessee,47153,21,0 +2020-06-12,Sequatchie,Tennessee,47153,21,0 +2020-06-13,Sequatchie,Tennessee,47153,22,0 +2020-06-14,Sequatchie,Tennessee,47153,22,0 +2020-06-15,Sequatchie,Tennessee,47153,22,0 +2020-06-16,Sequatchie,Tennessee,47153,22,0 +2020-06-17,Sequatchie,Tennessee,47153,23,0 +2020-06-18,Sequatchie,Tennessee,47153,23,0 +2020-06-19,Sequatchie,Tennessee,47153,22,0 +2020-06-20,Sequatchie,Tennessee,47153,22,0 +2020-06-21,Sequatchie,Tennessee,47153,24,0 +2020-06-22,Sequatchie,Tennessee,47153,24,0 +2020-06-23,Sequatchie,Tennessee,47153,24,0 +2020-06-24,Sequatchie,Tennessee,47153,24,0 +2020-06-25,Sequatchie,Tennessee,47153,24,0 +2020-06-26,Sequatchie,Tennessee,47153,24,0 +2020-06-27,Sequatchie,Tennessee,47153,24,0 +2020-06-28,Sequatchie,Tennessee,47153,24,0 +2020-06-29,Sequatchie,Tennessee,47153,24,0 +2020-06-30,Sequatchie,Tennessee,47153,24,0 +2020-07-01,Sequatchie,Tennessee,47153,28,0 +2020-07-02,Sequatchie,Tennessee,47153,29,0 +2020-07-03,Sequatchie,Tennessee,47153,33,0 +2020-07-04,Sequatchie,Tennessee,47153,38,0 +2020-07-05,Sequatchie,Tennessee,47153,42,0 +2020-07-06,Sequatchie,Tennessee,47153,41,0 +2020-07-07,Sequatchie,Tennessee,47153,42,0 +2020-07-08,Sequatchie,Tennessee,47153,42,0 +2020-07-09,Sequatchie,Tennessee,47153,43,0 +2020-03-16,Sevier,Tennessee,47155,1,0 +2020-03-17,Sevier,Tennessee,47155,1,0 +2020-03-18,Sevier,Tennessee,47155,1,0 +2020-03-19,Sevier,Tennessee,47155,1,0 +2020-03-20,Sevier,Tennessee,47155,1,0 +2020-03-21,Sevier,Tennessee,47155,2,0 +2020-03-22,Sevier,Tennessee,47155,3,0 +2020-03-23,Sevier,Tennessee,47155,3,0 +2020-03-24,Sevier,Tennessee,47155,3,0 +2020-03-25,Sevier,Tennessee,47155,3,0 +2020-03-26,Sevier,Tennessee,47155,3,0 +2020-03-27,Sevier,Tennessee,47155,6,0 +2020-03-28,Sevier,Tennessee,47155,6,0 +2020-03-29,Sevier,Tennessee,47155,6,0 +2020-03-30,Sevier,Tennessee,47155,7,0 +2020-03-31,Sevier,Tennessee,47155,7,0 +2020-04-01,Sevier,Tennessee,47155,9,0 +2020-04-02,Sevier,Tennessee,47155,10,0 +2020-04-03,Sevier,Tennessee,47155,13,0 +2020-04-04,Sevier,Tennessee,47155,13,0 +2020-04-05,Sevier,Tennessee,47155,14,0 +2020-04-06,Sevier,Tennessee,47155,16,0 +2020-04-07,Sevier,Tennessee,47155,18,0 +2020-04-08,Sevier,Tennessee,47155,19,0 +2020-04-09,Sevier,Tennessee,47155,21,0 +2020-04-10,Sevier,Tennessee,47155,21,0 +2020-04-11,Sevier,Tennessee,47155,21,0 +2020-04-12,Sevier,Tennessee,47155,21,0 +2020-04-13,Sevier,Tennessee,47155,22,0 +2020-04-14,Sevier,Tennessee,47155,22,0 +2020-04-15,Sevier,Tennessee,47155,22,0 +2020-04-16,Sevier,Tennessee,47155,22,0 +2020-04-17,Sevier,Tennessee,47155,24,1 +2020-04-18,Sevier,Tennessee,47155,24,1 +2020-04-19,Sevier,Tennessee,47155,24,1 +2020-04-20,Sevier,Tennessee,47155,26,1 +2020-04-21,Sevier,Tennessee,47155,29,1 +2020-04-22,Sevier,Tennessee,47155,33,1 +2020-04-23,Sevier,Tennessee,47155,34,1 +2020-04-24,Sevier,Tennessee,47155,35,1 +2020-04-25,Sevier,Tennessee,47155,42,1 +2020-04-26,Sevier,Tennessee,47155,45,1 +2020-04-27,Sevier,Tennessee,47155,46,1 +2020-04-28,Sevier,Tennessee,47155,46,1 +2020-04-29,Sevier,Tennessee,47155,48,1 +2020-04-30,Sevier,Tennessee,47155,49,1 +2020-05-01,Sevier,Tennessee,47155,49,1 +2020-05-02,Sevier,Tennessee,47155,49,1 +2020-05-03,Sevier,Tennessee,47155,51,1 +2020-05-04,Sevier,Tennessee,47155,58,1 +2020-05-05,Sevier,Tennessee,47155,60,2 +2020-05-06,Sevier,Tennessee,47155,60,2 +2020-05-07,Sevier,Tennessee,47155,63,2 +2020-05-08,Sevier,Tennessee,47155,65,2 +2020-05-09,Sevier,Tennessee,47155,65,2 +2020-05-10,Sevier,Tennessee,47155,65,2 +2020-05-11,Sevier,Tennessee,47155,65,2 +2020-05-12,Sevier,Tennessee,47155,65,2 +2020-05-13,Sevier,Tennessee,47155,65,2 +2020-05-14,Sevier,Tennessee,47155,65,2 +2020-05-15,Sevier,Tennessee,47155,66,2 +2020-05-16,Sevier,Tennessee,47155,68,2 +2020-05-17,Sevier,Tennessee,47155,68,2 +2020-05-18,Sevier,Tennessee,47155,69,2 +2020-05-19,Sevier,Tennessee,47155,68,2 +2020-05-20,Sevier,Tennessee,47155,68,2 +2020-05-21,Sevier,Tennessee,47155,69,2 +2020-05-22,Sevier,Tennessee,47155,70,2 +2020-05-23,Sevier,Tennessee,47155,72,2 +2020-05-24,Sevier,Tennessee,47155,72,2 +2020-05-25,Sevier,Tennessee,47155,72,2 +2020-05-26,Sevier,Tennessee,47155,75,2 +2020-05-27,Sevier,Tennessee,47155,75,2 +2020-05-28,Sevier,Tennessee,47155,76,2 +2020-05-29,Sevier,Tennessee,47155,80,2 +2020-05-30,Sevier,Tennessee,47155,81,2 +2020-05-31,Sevier,Tennessee,47155,81,2 +2020-06-01,Sevier,Tennessee,47155,81,2 +2020-06-02,Sevier,Tennessee,47155,90,2 +2020-06-03,Sevier,Tennessee,47155,94,2 +2020-06-04,Sevier,Tennessee,47155,97,2 +2020-06-05,Sevier,Tennessee,47155,100,2 +2020-06-06,Sevier,Tennessee,47155,109,2 +2020-06-07,Sevier,Tennessee,47155,110,2 +2020-06-08,Sevier,Tennessee,47155,129,2 +2020-06-09,Sevier,Tennessee,47155,158,2 +2020-06-10,Sevier,Tennessee,47155,178,2 +2020-06-11,Sevier,Tennessee,47155,184,2 +2020-06-12,Sevier,Tennessee,47155,206,2 +2020-06-13,Sevier,Tennessee,47155,229,2 +2020-06-14,Sevier,Tennessee,47155,233,2 +2020-06-15,Sevier,Tennessee,47155,248,2 +2020-06-16,Sevier,Tennessee,47155,285,2 +2020-06-17,Sevier,Tennessee,47155,297,3 +2020-06-18,Sevier,Tennessee,47155,342,3 +2020-06-19,Sevier,Tennessee,47155,387,3 +2020-06-20,Sevier,Tennessee,47155,411,3 +2020-06-21,Sevier,Tennessee,47155,420,3 +2020-06-22,Sevier,Tennessee,47155,422,3 +2020-06-23,Sevier,Tennessee,47155,464,3 +2020-06-24,Sevier,Tennessee,47155,489,3 +2020-06-25,Sevier,Tennessee,47155,516,3 +2020-06-26,Sevier,Tennessee,47155,536,3 +2020-06-27,Sevier,Tennessee,47155,549,3 +2020-06-28,Sevier,Tennessee,47155,549,3 +2020-06-29,Sevier,Tennessee,47155,588,3 +2020-06-30,Sevier,Tennessee,47155,608,3 +2020-07-01,Sevier,Tennessee,47155,657,3 +2020-07-02,Sevier,Tennessee,47155,733,3 +2020-07-03,Sevier,Tennessee,47155,768,3 +2020-07-04,Sevier,Tennessee,47155,790,3 +2020-07-05,Sevier,Tennessee,47155,804,3 +2020-07-06,Sevier,Tennessee,47155,830,3 +2020-07-07,Sevier,Tennessee,47155,857,3 +2020-07-08,Sevier,Tennessee,47155,857,3 +2020-07-09,Sevier,Tennessee,47155,863,3 +2020-03-08,Shelby,Tennessee,47157,1,0 +2020-03-09,Shelby,Tennessee,47157,1,0 +2020-03-10,Shelby,Tennessee,47157,1,0 +2020-03-11,Shelby,Tennessee,47157,1,0 +2020-03-12,Shelby,Tennessee,47157,2,0 +2020-03-13,Shelby,Tennessee,47157,2,0 +2020-03-14,Shelby,Tennessee,47157,2,0 +2020-03-15,Shelby,Tennessee,47157,2,0 +2020-03-16,Shelby,Tennessee,47157,2,0 +2020-03-17,Shelby,Tennessee,47157,2,0 +2020-03-18,Shelby,Tennessee,47157,4,0 +2020-03-19,Shelby,Tennessee,47157,22,0 +2020-03-20,Shelby,Tennessee,47157,42,0 +2020-03-21,Shelby,Tennessee,47157,42,0 +2020-03-22,Shelby,Tennessee,47157,66,0 +2020-03-23,Shelby,Tennessee,47157,66,0 +2020-03-24,Shelby,Tennessee,47157,135,0 +2020-03-25,Shelby,Tennessee,47157,170,0 +2020-03-26,Shelby,Tennessee,47157,198,0 +2020-03-27,Shelby,Tennessee,47157,223,0 +2020-03-28,Shelby,Tennessee,47157,275,0 +2020-03-29,Shelby,Tennessee,47157,362,1 +2020-03-30,Shelby,Tennessee,47157,396,1 +2020-03-31,Shelby,Tennessee,47157,396,1 +2020-04-01,Shelby,Tennessee,47157,496,3 +2020-04-02,Shelby,Tennessee,47157,638,7 +2020-04-03,Shelby,Tennessee,47157,640,7 +2020-04-04,Shelby,Tennessee,47157,706,10 +2020-04-05,Shelby,Tennessee,47157,754,11 +2020-04-06,Shelby,Tennessee,47157,766,13 +2020-04-07,Shelby,Tennessee,47157,845,18 +2020-04-08,Shelby,Tennessee,47157,912,21 +2020-04-09,Shelby,Tennessee,47157,1006,23 +2020-04-10,Shelby,Tennessee,47157,1083,25 +2020-04-11,Shelby,Tennessee,47157,1147,26 +2020-04-12,Shelby,Tennessee,47157,1216,26 +2020-04-13,Shelby,Tennessee,47157,1331,26 +2020-04-14,Shelby,Tennessee,47157,1359,26 +2020-04-15,Shelby,Tennessee,47157,1432,31 +2020-04-16,Shelby,Tennessee,47157,1508,33 +2020-04-17,Shelby,Tennessee,47157,1682,35 +2020-04-18,Shelby,Tennessee,47157,1730,35 +2020-04-19,Shelby,Tennessee,47157,1778,37 +2020-04-20,Shelby,Tennessee,47157,1839,38 +2020-04-21,Shelby,Tennessee,47157,1873,39 +2020-04-22,Shelby,Tennessee,47157,1924,43 +2020-04-23,Shelby,Tennessee,47157,1953,44 +2020-04-24,Shelby,Tennessee,47157,2001,44 +2020-04-25,Shelby,Tennessee,47157,2086,44 +2020-04-26,Shelby,Tennessee,47157,2296,45 +2020-04-27,Shelby,Tennessee,47157,2327,45 +2020-04-28,Shelby,Tennessee,47157,2376,46 +2020-04-29,Shelby,Tennessee,47157,2432,46 +2020-04-30,Shelby,Tennessee,47157,2507,47 +2020-05-01,Shelby,Tennessee,47157,2599,51 +2020-05-02,Shelby,Tennessee,47157,2672,55 +2020-05-03,Shelby,Tennessee,47157,2815,55 +2020-05-04,Shelby,Tennessee,47157,2878,58 +2020-05-05,Shelby,Tennessee,47157,2922,60 +2020-05-06,Shelby,Tennessee,47157,3010,64 +2020-05-07,Shelby,Tennessee,47157,3066,64 +2020-05-08,Shelby,Tennessee,47157,3113,67 +2020-05-09,Shelby,Tennessee,47157,3189,68 +2020-05-10,Shelby,Tennessee,47157,3260,68 +2020-05-11,Shelby,Tennessee,47157,3372,70 +2020-05-12,Shelby,Tennessee,47157,3429,73 +2020-05-13,Shelby,Tennessee,47157,3475,76 +2020-05-14,Shelby,Tennessee,47157,3542,81 +2020-05-15,Shelby,Tennessee,47157,3595,82 +2020-05-16,Shelby,Tennessee,47157,3681,85 +2020-05-17,Shelby,Tennessee,47157,3726,85 +2020-05-18,Shelby,Tennessee,47157,3846,87 +2020-05-19,Shelby,Tennessee,47157,3936,88 +2020-05-20,Shelby,Tennessee,47157,4005,88 +2020-05-21,Shelby,Tennessee,47157,4034,91 +2020-05-22,Shelby,Tennessee,47157,4127,92 +2020-05-23,Shelby,Tennessee,47157,4225,92 +2020-05-24,Shelby,Tennessee,47157,4336,94 +2020-05-25,Shelby,Tennessee,47157,4451,94 +2020-05-26,Shelby,Tennessee,47157,4531,96 +2020-05-27,Shelby,Tennessee,47157,4615,105 +2020-05-28,Shelby,Tennessee,47157,4718,107 +2020-05-29,Shelby,Tennessee,47157,4823,110 +2020-05-30,Shelby,Tennessee,47157,4943,111 +2020-05-31,Shelby,Tennessee,47157,5003,111 +2020-06-01,Shelby,Tennessee,47157,5124,111 +2020-06-02,Shelby,Tennessee,47157,5314,117 +2020-06-03,Shelby,Tennessee,47157,5428,119 +2020-06-04,Shelby,Tennessee,47157,5546,124 +2020-06-05,Shelby,Tennessee,47157,5669,127 +2020-06-06,Shelby,Tennessee,47157,5812,129 +2020-06-07,Shelby,Tennessee,47157,5908,130 +2020-06-08,Shelby,Tennessee,47157,6005,133 +2020-06-09,Shelby,Tennessee,47157,6125,135 +2020-06-10,Shelby,Tennessee,47157,6220,136 +2020-06-11,Shelby,Tennessee,47157,6365,136 +2020-06-12,Shelby,Tennessee,47157,6451,151 +2020-06-13,Shelby,Tennessee,47157,6556,151 +2020-06-14,Shelby,Tennessee,47157,6773,151 +2020-06-15,Shelby,Tennessee,47157,6954,153 +2020-06-16,Shelby,Tennessee,47157,7104,155 +2020-06-17,Shelby,Tennessee,47157,7244,154 +2020-06-18,Shelby,Tennessee,47157,7290,158 +2020-06-19,Shelby,Tennessee,47157,7623,160 +2020-06-20,Shelby,Tennessee,47157,7737,163 +2020-06-21,Shelby,Tennessee,47157,7916,163 +2020-06-22,Shelby,Tennessee,47157,8064,165 +2020-06-23,Shelby,Tennessee,47157,8268,166 +2020-06-24,Shelby,Tennessee,47157,8490,170 +2020-06-25,Shelby,Tennessee,47157,8643,175 +2020-06-26,Shelby,Tennessee,47157,8988,181 +2020-06-27,Shelby,Tennessee,47157,9139,182 +2020-06-28,Shelby,Tennessee,47157,9139,182 +2020-06-29,Shelby,Tennessee,47157,9671,186 +2020-06-30,Shelby,Tennessee,47157,10028,192 +2020-07-01,Shelby,Tennessee,47157,10344,193 +2020-07-02,Shelby,Tennessee,47157,10765,195 +2020-07-03,Shelby,Tennessee,47157,11145,197 +2020-07-04,Shelby,Tennessee,47157,11560,198 +2020-07-05,Shelby,Tennessee,47157,11829,200 +2020-07-06,Shelby,Tennessee,47157,12019,201 +2020-07-07,Shelby,Tennessee,47157,12176,202 +2020-07-08,Shelby,Tennessee,47157,12549,208 +2020-07-09,Shelby,Tennessee,47157,12842,214 +2020-03-27,Smith,Tennessee,47159,1,0 +2020-03-28,Smith,Tennessee,47159,1,0 +2020-03-29,Smith,Tennessee,47159,1,0 +2020-03-30,Smith,Tennessee,47159,1,0 +2020-03-31,Smith,Tennessee,47159,1,0 +2020-04-01,Smith,Tennessee,47159,3,0 +2020-04-02,Smith,Tennessee,47159,3,0 +2020-04-03,Smith,Tennessee,47159,3,0 +2020-04-04,Smith,Tennessee,47159,3,0 +2020-04-05,Smith,Tennessee,47159,3,0 +2020-04-06,Smith,Tennessee,47159,3,0 +2020-04-07,Smith,Tennessee,47159,3,0 +2020-04-08,Smith,Tennessee,47159,3,0 +2020-04-09,Smith,Tennessee,47159,5,0 +2020-04-10,Smith,Tennessee,47159,5,0 +2020-04-11,Smith,Tennessee,47159,7,0 +2020-04-12,Smith,Tennessee,47159,7,0 +2020-04-13,Smith,Tennessee,47159,10,0 +2020-04-14,Smith,Tennessee,47159,10,0 +2020-04-15,Smith,Tennessee,47159,11,1 +2020-04-16,Smith,Tennessee,47159,11,1 +2020-04-17,Smith,Tennessee,47159,12,1 +2020-04-18,Smith,Tennessee,47159,12,1 +2020-04-19,Smith,Tennessee,47159,13,1 +2020-04-20,Smith,Tennessee,47159,14,1 +2020-04-21,Smith,Tennessee,47159,14,1 +2020-04-22,Smith,Tennessee,47159,18,1 +2020-04-23,Smith,Tennessee,47159,18,1 +2020-04-24,Smith,Tennessee,47159,19,1 +2020-04-25,Smith,Tennessee,47159,19,1 +2020-04-26,Smith,Tennessee,47159,19,1 +2020-04-27,Smith,Tennessee,47159,19,1 +2020-04-28,Smith,Tennessee,47159,20,1 +2020-04-29,Smith,Tennessee,47159,20,1 +2020-04-30,Smith,Tennessee,47159,21,1 +2020-05-01,Smith,Tennessee,47159,22,1 +2020-05-02,Smith,Tennessee,47159,22,1 +2020-05-03,Smith,Tennessee,47159,22,1 +2020-05-04,Smith,Tennessee,47159,24,1 +2020-05-05,Smith,Tennessee,47159,23,1 +2020-05-06,Smith,Tennessee,47159,23,1 +2020-05-07,Smith,Tennessee,47159,23,1 +2020-05-08,Smith,Tennessee,47159,24,1 +2020-05-09,Smith,Tennessee,47159,24,1 +2020-05-10,Smith,Tennessee,47159,24,1 +2020-05-11,Smith,Tennessee,47159,24,1 +2020-05-12,Smith,Tennessee,47159,24,1 +2020-05-13,Smith,Tennessee,47159,24,1 +2020-05-14,Smith,Tennessee,47159,24,1 +2020-05-15,Smith,Tennessee,47159,24,1 +2020-05-16,Smith,Tennessee,47159,24,1 +2020-05-17,Smith,Tennessee,47159,24,1 +2020-05-18,Smith,Tennessee,47159,25,1 +2020-05-19,Smith,Tennessee,47159,29,1 +2020-05-20,Smith,Tennessee,47159,29,1 +2020-05-21,Smith,Tennessee,47159,29,1 +2020-05-22,Smith,Tennessee,47159,29,1 +2020-05-23,Smith,Tennessee,47159,29,1 +2020-05-24,Smith,Tennessee,47159,30,1 +2020-05-25,Smith,Tennessee,47159,30,1 +2020-05-26,Smith,Tennessee,47159,30,1 +2020-05-27,Smith,Tennessee,47159,30,1 +2020-05-28,Smith,Tennessee,47159,30,1 +2020-05-29,Smith,Tennessee,47159,32,1 +2020-05-30,Smith,Tennessee,47159,34,1 +2020-05-31,Smith,Tennessee,47159,34,1 +2020-06-01,Smith,Tennessee,47159,34,1 +2020-06-02,Smith,Tennessee,47159,36,1 +2020-06-03,Smith,Tennessee,47159,37,1 +2020-06-04,Smith,Tennessee,47159,36,1 +2020-06-05,Smith,Tennessee,47159,36,1 +2020-06-06,Smith,Tennessee,47159,36,1 +2020-06-07,Smith,Tennessee,47159,36,1 +2020-06-08,Smith,Tennessee,47159,37,1 +2020-06-09,Smith,Tennessee,47159,37,1 +2020-06-10,Smith,Tennessee,47159,37,1 +2020-06-11,Smith,Tennessee,47159,37,1 +2020-06-12,Smith,Tennessee,47159,39,1 +2020-06-13,Smith,Tennessee,47159,40,1 +2020-06-14,Smith,Tennessee,47159,40,1 +2020-06-15,Smith,Tennessee,47159,41,1 +2020-06-16,Smith,Tennessee,47159,43,1 +2020-06-17,Smith,Tennessee,47159,43,1 +2020-06-18,Smith,Tennessee,47159,46,1 +2020-06-19,Smith,Tennessee,47159,48,1 +2020-06-20,Smith,Tennessee,47159,49,1 +2020-06-21,Smith,Tennessee,47159,50,1 +2020-06-22,Smith,Tennessee,47159,50,1 +2020-06-23,Smith,Tennessee,47159,51,1 +2020-06-24,Smith,Tennessee,47159,53,1 +2020-06-25,Smith,Tennessee,47159,58,1 +2020-06-26,Smith,Tennessee,47159,62,1 +2020-06-27,Smith,Tennessee,47159,67,1 +2020-06-28,Smith,Tennessee,47159,67,1 +2020-06-29,Smith,Tennessee,47159,79,1 +2020-06-30,Smith,Tennessee,47159,90,1 +2020-07-01,Smith,Tennessee,47159,96,1 +2020-07-02,Smith,Tennessee,47159,103,1 +2020-07-03,Smith,Tennessee,47159,111,1 +2020-07-04,Smith,Tennessee,47159,116,1 +2020-07-05,Smith,Tennessee,47159,120,1 +2020-07-06,Smith,Tennessee,47159,122,1 +2020-07-07,Smith,Tennessee,47159,124,1 +2020-07-08,Smith,Tennessee,47159,136,2 +2020-07-09,Smith,Tennessee,47159,139,2 +2020-04-04,Stewart,Tennessee,47161,1,0 +2020-04-05,Stewart,Tennessee,47161,2,0 +2020-04-06,Stewart,Tennessee,47161,2,0 +2020-04-07,Stewart,Tennessee,47161,2,0 +2020-04-08,Stewart,Tennessee,47161,2,0 +2020-04-09,Stewart,Tennessee,47161,2,0 +2020-04-10,Stewart,Tennessee,47161,3,0 +2020-04-11,Stewart,Tennessee,47161,4,0 +2020-04-12,Stewart,Tennessee,47161,4,0 +2020-04-13,Stewart,Tennessee,47161,4,0 +2020-04-14,Stewart,Tennessee,47161,4,0 +2020-04-15,Stewart,Tennessee,47161,4,0 +2020-04-16,Stewart,Tennessee,47161,4,0 +2020-04-17,Stewart,Tennessee,47161,5,0 +2020-04-18,Stewart,Tennessee,47161,5,0 +2020-04-19,Stewart,Tennessee,47161,6,0 +2020-04-20,Stewart,Tennessee,47161,6,0 +2020-04-21,Stewart,Tennessee,47161,6,0 +2020-04-22,Stewart,Tennessee,47161,6,0 +2020-04-23,Stewart,Tennessee,47161,7,0 +2020-04-24,Stewart,Tennessee,47161,6,0 +2020-04-25,Stewart,Tennessee,47161,6,0 +2020-04-26,Stewart,Tennessee,47161,7,0 +2020-04-27,Stewart,Tennessee,47161,7,0 +2020-04-28,Stewart,Tennessee,47161,7,0 +2020-04-29,Stewart,Tennessee,47161,7,0 +2020-04-30,Stewart,Tennessee,47161,7,0 +2020-05-01,Stewart,Tennessee,47161,7,0 +2020-05-02,Stewart,Tennessee,47161,7,0 +2020-05-03,Stewart,Tennessee,47161,7,0 +2020-05-04,Stewart,Tennessee,47161,8,0 +2020-05-05,Stewart,Tennessee,47161,7,0 +2020-05-06,Stewart,Tennessee,47161,7,0 +2020-05-07,Stewart,Tennessee,47161,7,0 +2020-05-08,Stewart,Tennessee,47161,7,0 +2020-05-09,Stewart,Tennessee,47161,7,0 +2020-05-10,Stewart,Tennessee,47161,7,0 +2020-05-11,Stewart,Tennessee,47161,7,0 +2020-05-12,Stewart,Tennessee,47161,7,0 +2020-05-13,Stewart,Tennessee,47161,7,0 +2020-05-14,Stewart,Tennessee,47161,7,0 +2020-05-15,Stewart,Tennessee,47161,7,0 +2020-05-16,Stewart,Tennessee,47161,7,0 +2020-05-17,Stewart,Tennessee,47161,7,0 +2020-05-18,Stewart,Tennessee,47161,7,0 +2020-05-19,Stewart,Tennessee,47161,8,0 +2020-05-20,Stewart,Tennessee,47161,8,0 +2020-05-21,Stewart,Tennessee,47161,8,0 +2020-05-22,Stewart,Tennessee,47161,8,0 +2020-05-23,Stewart,Tennessee,47161,8,0 +2020-05-24,Stewart,Tennessee,47161,9,0 +2020-05-25,Stewart,Tennessee,47161,9,0 +2020-05-26,Stewart,Tennessee,47161,9,0 +2020-05-27,Stewart,Tennessee,47161,10,0 +2020-05-28,Stewart,Tennessee,47161,11,0 +2020-05-29,Stewart,Tennessee,47161,11,0 +2020-05-30,Stewart,Tennessee,47161,11,0 +2020-05-31,Stewart,Tennessee,47161,11,0 +2020-06-01,Stewart,Tennessee,47161,11,0 +2020-06-02,Stewart,Tennessee,47161,13,0 +2020-06-03,Stewart,Tennessee,47161,13,0 +2020-06-04,Stewart,Tennessee,47161,13,0 +2020-06-05,Stewart,Tennessee,47161,14,0 +2020-06-06,Stewart,Tennessee,47161,15,0 +2020-06-07,Stewart,Tennessee,47161,15,0 +2020-06-08,Stewart,Tennessee,47161,15,0 +2020-06-09,Stewart,Tennessee,47161,14,0 +2020-06-10,Stewart,Tennessee,47161,14,0 +2020-06-11,Stewart,Tennessee,47161,14,0 +2020-06-12,Stewart,Tennessee,47161,14,0 +2020-06-13,Stewart,Tennessee,47161,14,0 +2020-06-14,Stewart,Tennessee,47161,16,0 +2020-06-15,Stewart,Tennessee,47161,16,0 +2020-06-16,Stewart,Tennessee,47161,16,0 +2020-06-17,Stewart,Tennessee,47161,16,0 +2020-06-18,Stewart,Tennessee,47161,17,0 +2020-06-19,Stewart,Tennessee,47161,17,0 +2020-06-20,Stewart,Tennessee,47161,17,0 +2020-06-21,Stewart,Tennessee,47161,17,0 +2020-06-22,Stewart,Tennessee,47161,17,0 +2020-06-23,Stewart,Tennessee,47161,19,0 +2020-06-24,Stewart,Tennessee,47161,19,0 +2020-06-25,Stewart,Tennessee,47161,19,0 +2020-06-26,Stewart,Tennessee,47161,19,0 +2020-06-27,Stewart,Tennessee,47161,19,0 +2020-06-28,Stewart,Tennessee,47161,19,0 +2020-06-29,Stewart,Tennessee,47161,20,0 +2020-06-30,Stewart,Tennessee,47161,21,0 +2020-07-01,Stewart,Tennessee,47161,21,0 +2020-07-02,Stewart,Tennessee,47161,21,0 +2020-07-03,Stewart,Tennessee,47161,23,0 +2020-07-04,Stewart,Tennessee,47161,23,0 +2020-07-05,Stewart,Tennessee,47161,23,0 +2020-07-06,Stewart,Tennessee,47161,23,0 +2020-07-07,Stewart,Tennessee,47161,24,0 +2020-07-08,Stewart,Tennessee,47161,25,0 +2020-07-09,Stewart,Tennessee,47161,26,0 +2020-03-10,Sullivan,Tennessee,47163,1,0 +2020-03-11,Sullivan,Tennessee,47163,1,0 +2020-03-12,Sullivan,Tennessee,47163,1,0 +2020-03-13,Sullivan,Tennessee,47163,1,0 +2020-03-14,Sullivan,Tennessee,47163,1,0 +2020-03-15,Sullivan,Tennessee,47163,1,0 +2020-03-16,Sullivan,Tennessee,47163,1,0 +2020-03-17,Sullivan,Tennessee,47163,1,0 +2020-03-18,Sullivan,Tennessee,47163,1,0 +2020-03-19,Sullivan,Tennessee,47163,1,0 +2020-03-20,Sullivan,Tennessee,47163,1,0 +2020-03-21,Sullivan,Tennessee,47163,1,0 +2020-03-22,Sullivan,Tennessee,47163,1,0 +2020-03-23,Sullivan,Tennessee,47163,1,0 +2020-03-24,Sullivan,Tennessee,47163,2,0 +2020-03-25,Sullivan,Tennessee,47163,2,0 +2020-03-26,Sullivan,Tennessee,47163,4,0 +2020-03-27,Sullivan,Tennessee,47163,6,0 +2020-03-28,Sullivan,Tennessee,47163,6,0 +2020-03-29,Sullivan,Tennessee,47163,8,0 +2020-03-30,Sullivan,Tennessee,47163,11,0 +2020-03-31,Sullivan,Tennessee,47163,11,0 +2020-04-01,Sullivan,Tennessee,47163,17,0 +2020-04-02,Sullivan,Tennessee,47163,17,1 +2020-04-03,Sullivan,Tennessee,47163,18,1 +2020-04-04,Sullivan,Tennessee,47163,18,1 +2020-04-05,Sullivan,Tennessee,47163,21,1 +2020-04-06,Sullivan,Tennessee,47163,25,1 +2020-04-07,Sullivan,Tennessee,47163,26,1 +2020-04-08,Sullivan,Tennessee,47163,27,1 +2020-04-09,Sullivan,Tennessee,47163,34,1 +2020-04-10,Sullivan,Tennessee,47163,35,1 +2020-04-11,Sullivan,Tennessee,47163,37,1 +2020-04-12,Sullivan,Tennessee,47163,37,1 +2020-04-13,Sullivan,Tennessee,47163,42,1 +2020-04-14,Sullivan,Tennessee,47163,43,1 +2020-04-15,Sullivan,Tennessee,47163,43,1 +2020-04-16,Sullivan,Tennessee,47163,45,1 +2020-04-17,Sullivan,Tennessee,47163,45,1 +2020-04-18,Sullivan,Tennessee,47163,45,1 +2020-04-19,Sullivan,Tennessee,47163,45,1 +2020-04-20,Sullivan,Tennessee,47163,45,1 +2020-04-21,Sullivan,Tennessee,47163,45,1 +2020-04-22,Sullivan,Tennessee,47163,47,1 +2020-04-23,Sullivan,Tennessee,47163,47,1 +2020-04-24,Sullivan,Tennessee,47163,47,1 +2020-04-25,Sullivan,Tennessee,47163,48,1 +2020-04-26,Sullivan,Tennessee,47163,47,1 +2020-04-27,Sullivan,Tennessee,47163,47,1 +2020-04-28,Sullivan,Tennessee,47163,47,1 +2020-04-29,Sullivan,Tennessee,47163,48,1 +2020-04-30,Sullivan,Tennessee,47163,49,1 +2020-05-01,Sullivan,Tennessee,47163,49,1 +2020-05-02,Sullivan,Tennessee,47163,49,1 +2020-05-03,Sullivan,Tennessee,47163,51,1 +2020-05-04,Sullivan,Tennessee,47163,57,1 +2020-05-05,Sullivan,Tennessee,47163,59,1 +2020-05-06,Sullivan,Tennessee,47163,52,1 +2020-05-07,Sullivan,Tennessee,47163,52,1 +2020-05-08,Sullivan,Tennessee,47163,54,1 +2020-05-09,Sullivan,Tennessee,47163,54,1 +2020-05-10,Sullivan,Tennessee,47163,54,1 +2020-05-11,Sullivan,Tennessee,47163,54,1 +2020-05-12,Sullivan,Tennessee,47163,54,2 +2020-05-13,Sullivan,Tennessee,47163,54,2 +2020-05-14,Sullivan,Tennessee,47163,56,2 +2020-05-15,Sullivan,Tennessee,47163,57,2 +2020-05-16,Sullivan,Tennessee,47163,57,2 +2020-05-17,Sullivan,Tennessee,47163,57,2 +2020-05-18,Sullivan,Tennessee,47163,57,2 +2020-05-19,Sullivan,Tennessee,47163,57,2 +2020-05-20,Sullivan,Tennessee,47163,57,2 +2020-05-21,Sullivan,Tennessee,47163,60,2 +2020-05-22,Sullivan,Tennessee,47163,61,2 +2020-05-23,Sullivan,Tennessee,47163,61,2 +2020-05-24,Sullivan,Tennessee,47163,61,2 +2020-05-25,Sullivan,Tennessee,47163,61,2 +2020-05-26,Sullivan,Tennessee,47163,62,2 +2020-05-27,Sullivan,Tennessee,47163,60,2 +2020-05-28,Sullivan,Tennessee,47163,60,2 +2020-05-29,Sullivan,Tennessee,47163,60,2 +2020-05-30,Sullivan,Tennessee,47163,60,2 +2020-05-31,Sullivan,Tennessee,47163,60,2 +2020-06-01,Sullivan,Tennessee,47163,60,2 +2020-06-02,Sullivan,Tennessee,47163,60,2 +2020-06-03,Sullivan,Tennessee,47163,60,2 +2020-06-04,Sullivan,Tennessee,47163,60,2 +2020-06-05,Sullivan,Tennessee,47163,60,2 +2020-06-06,Sullivan,Tennessee,47163,62,2 +2020-06-07,Sullivan,Tennessee,47163,62,2 +2020-06-08,Sullivan,Tennessee,47163,62,2 +2020-06-09,Sullivan,Tennessee,47163,66,2 +2020-06-10,Sullivan,Tennessee,47163,67,2 +2020-06-11,Sullivan,Tennessee,47163,67,2 +2020-06-12,Sullivan,Tennessee,47163,70,2 +2020-06-13,Sullivan,Tennessee,47163,69,2 +2020-06-14,Sullivan,Tennessee,47163,70,2 +2020-06-15,Sullivan,Tennessee,47163,70,2 +2020-06-16,Sullivan,Tennessee,47163,70,2 +2020-06-17,Sullivan,Tennessee,47163,71,2 +2020-06-18,Sullivan,Tennessee,47163,71,2 +2020-06-19,Sullivan,Tennessee,47163,72,2 +2020-06-20,Sullivan,Tennessee,47163,72,2 +2020-06-21,Sullivan,Tennessee,47163,72,2 +2020-06-22,Sullivan,Tennessee,47163,73,2 +2020-06-23,Sullivan,Tennessee,47163,75,2 +2020-06-24,Sullivan,Tennessee,47163,77,2 +2020-06-25,Sullivan,Tennessee,47163,77,2 +2020-06-26,Sullivan,Tennessee,47163,79,2 +2020-06-27,Sullivan,Tennessee,47163,83,2 +2020-06-28,Sullivan,Tennessee,47163,83,2 +2020-06-29,Sullivan,Tennessee,47163,87,2 +2020-06-30,Sullivan,Tennessee,47163,89,2 +2020-07-01,Sullivan,Tennessee,47163,91,2 +2020-07-02,Sullivan,Tennessee,47163,101,2 +2020-07-03,Sullivan,Tennessee,47163,108,2 +2020-07-04,Sullivan,Tennessee,47163,116,2 +2020-07-05,Sullivan,Tennessee,47163,117,2 +2020-07-06,Sullivan,Tennessee,47163,121,2 +2020-07-07,Sullivan,Tennessee,47163,141,2 +2020-07-08,Sullivan,Tennessee,47163,159,2 +2020-07-09,Sullivan,Tennessee,47163,178,2 +2020-03-18,Sumner,Tennessee,47165,2,0 +2020-03-19,Sumner,Tennessee,47165,3,0 +2020-03-20,Sumner,Tennessee,47165,11,0 +2020-03-21,Sumner,Tennessee,47165,11,0 +2020-03-22,Sumner,Tennessee,47165,22,0 +2020-03-23,Sumner,Tennessee,47165,22,0 +2020-03-24,Sumner,Tennessee,47165,34,0 +2020-03-25,Sumner,Tennessee,47165,36,0 +2020-03-26,Sumner,Tennessee,47165,43,0 +2020-03-27,Sumner,Tennessee,47165,58,0 +2020-03-28,Sumner,Tennessee,47165,82,0 +2020-03-29,Sumner,Tennessee,47165,93,0 +2020-03-30,Sumner,Tennessee,47165,164,0 +2020-03-31,Sumner,Tennessee,47165,164,0 +2020-04-01,Sumner,Tennessee,47165,201,7 +2020-04-02,Sumner,Tennessee,47165,268,7 +2020-04-03,Sumner,Tennessee,47165,283,8 +2020-04-04,Sumner,Tennessee,47165,301,10 +2020-04-05,Sumner,Tennessee,47165,321,10 +2020-04-06,Sumner,Tennessee,47165,335,15 +2020-04-07,Sumner,Tennessee,47165,361,15 +2020-04-08,Sumner,Tennessee,47165,376,18 +2020-04-09,Sumner,Tennessee,47165,389,18 +2020-04-10,Sumner,Tennessee,47165,413,21 +2020-04-11,Sumner,Tennessee,47165,435,22 +2020-04-12,Sumner,Tennessee,47165,435,22 +2020-04-13,Sumner,Tennessee,47165,454,26 +2020-04-14,Sumner,Tennessee,47165,466,27 +2020-04-15,Sumner,Tennessee,47165,478,27 +2020-04-16,Sumner,Tennessee,47165,491,28 +2020-04-17,Sumner,Tennessee,47165,497,29 +2020-04-18,Sumner,Tennessee,47165,503,30 +2020-04-19,Sumner,Tennessee,47165,509,30 +2020-04-20,Sumner,Tennessee,47165,518,31 +2020-04-21,Sumner,Tennessee,47165,530,31 +2020-04-22,Sumner,Tennessee,47165,550,32 +2020-04-23,Sumner,Tennessee,47165,556,32 +2020-04-24,Sumner,Tennessee,47165,573,32 +2020-04-25,Sumner,Tennessee,47165,584,34 +2020-04-26,Sumner,Tennessee,47165,593,34 +2020-04-27,Sumner,Tennessee,47165,603,34 +2020-04-28,Sumner,Tennessee,47165,608,35 +2020-04-29,Sumner,Tennessee,47165,619,37 +2020-04-30,Sumner,Tennessee,47165,623,37 +2020-05-01,Sumner,Tennessee,47165,632,37 +2020-05-02,Sumner,Tennessee,47165,640,38 +2020-05-03,Sumner,Tennessee,47165,653,38 +2020-05-04,Sumner,Tennessee,47165,663,38 +2020-05-05,Sumner,Tennessee,47165,665,38 +2020-05-06,Sumner,Tennessee,47165,671,38 +2020-05-07,Sumner,Tennessee,47165,672,38 +2020-05-08,Sumner,Tennessee,47165,683,38 +2020-05-09,Sumner,Tennessee,47165,693,38 +2020-05-10,Sumner,Tennessee,47165,698,38 +2020-05-11,Sumner,Tennessee,47165,699,38 +2020-05-12,Sumner,Tennessee,47165,708,39 +2020-05-13,Sumner,Tennessee,47165,714,40 +2020-05-14,Sumner,Tennessee,47165,720,41 +2020-05-15,Sumner,Tennessee,47165,724,41 +2020-05-16,Sumner,Tennessee,47165,737,41 +2020-05-17,Sumner,Tennessee,47165,739,41 +2020-05-18,Sumner,Tennessee,47165,749,41 +2020-05-19,Sumner,Tennessee,47165,768,41 +2020-05-20,Sumner,Tennessee,47165,768,41 +2020-05-21,Sumner,Tennessee,47165,778,42 +2020-05-22,Sumner,Tennessee,47165,792,42 +2020-05-23,Sumner,Tennessee,47165,809,45 +2020-05-24,Sumner,Tennessee,47165,811,45 +2020-05-25,Sumner,Tennessee,47165,827,45 +2020-05-26,Sumner,Tennessee,47165,838,45 +2020-05-27,Sumner,Tennessee,47165,843,45 +2020-05-28,Sumner,Tennessee,47165,852,45 +2020-05-29,Sumner,Tennessee,47165,858,45 +2020-05-30,Sumner,Tennessee,47165,881,45 +2020-05-31,Sumner,Tennessee,47165,881,45 +2020-06-01,Sumner,Tennessee,47165,881,45 +2020-06-02,Sumner,Tennessee,47165,913,45 +2020-06-03,Sumner,Tennessee,47165,931,46 +2020-06-04,Sumner,Tennessee,47165,938,46 +2020-06-05,Sumner,Tennessee,47165,951,46 +2020-06-06,Sumner,Tennessee,47165,967,46 +2020-06-07,Sumner,Tennessee,47165,975,46 +2020-06-08,Sumner,Tennessee,47165,987,46 +2020-06-09,Sumner,Tennessee,47165,1011,46 +2020-06-10,Sumner,Tennessee,47165,1033,47 +2020-06-11,Sumner,Tennessee,47165,1049,47 +2020-06-12,Sumner,Tennessee,47165,1059,47 +2020-06-13,Sumner,Tennessee,47165,1075,48 +2020-06-14,Sumner,Tennessee,47165,1088,48 +2020-06-15,Sumner,Tennessee,47165,1105,48 +2020-06-16,Sumner,Tennessee,47165,1112,48 +2020-06-17,Sumner,Tennessee,47165,1119,48 +2020-06-18,Sumner,Tennessee,47165,1130,49 +2020-06-19,Sumner,Tennessee,47165,1155,49 +2020-06-20,Sumner,Tennessee,47165,1165,49 +2020-06-21,Sumner,Tennessee,47165,1181,49 +2020-06-22,Sumner,Tennessee,47165,1196,49 +2020-06-23,Sumner,Tennessee,47165,1212,49 +2020-06-24,Sumner,Tennessee,47165,1231,51 +2020-06-25,Sumner,Tennessee,47165,1260,51 +2020-06-26,Sumner,Tennessee,47165,1296,51 +2020-06-27,Sumner,Tennessee,47165,1318,51 +2020-06-28,Sumner,Tennessee,47165,1318,51 +2020-06-29,Sumner,Tennessee,47165,1371,51 +2020-06-30,Sumner,Tennessee,47165,1417,52 +2020-07-01,Sumner,Tennessee,47165,1469,52 +2020-07-02,Sumner,Tennessee,47165,1507,52 +2020-07-03,Sumner,Tennessee,47165,1559,52 +2020-07-04,Sumner,Tennessee,47165,1593,52 +2020-07-05,Sumner,Tennessee,47165,1610,52 +2020-07-06,Sumner,Tennessee,47165,1636,52 +2020-07-07,Sumner,Tennessee,47165,1670,53 +2020-07-08,Sumner,Tennessee,47165,1727,55 +2020-07-09,Sumner,Tennessee,47165,1802,56 +2020-03-20,Tipton,Tennessee,47167,1,0 +2020-03-21,Tipton,Tennessee,47167,2,0 +2020-03-22,Tipton,Tennessee,47167,5,0 +2020-03-23,Tipton,Tennessee,47167,5,0 +2020-03-24,Tipton,Tennessee,47167,6,0 +2020-03-25,Tipton,Tennessee,47167,6,0 +2020-03-26,Tipton,Tennessee,47167,8,0 +2020-03-27,Tipton,Tennessee,47167,10,0 +2020-03-28,Tipton,Tennessee,47167,11,0 +2020-03-29,Tipton,Tennessee,47167,15,0 +2020-03-30,Tipton,Tennessee,47167,16,0 +2020-03-31,Tipton,Tennessee,47167,16,0 +2020-04-01,Tipton,Tennessee,47167,22,0 +2020-04-02,Tipton,Tennessee,47167,24,0 +2020-04-03,Tipton,Tennessee,47167,28,0 +2020-04-04,Tipton,Tennessee,47167,31,0 +2020-04-05,Tipton,Tennessee,47167,33,0 +2020-04-06,Tipton,Tennessee,47167,36,0 +2020-04-07,Tipton,Tennessee,47167,38,0 +2020-04-08,Tipton,Tennessee,47167,38,0 +2020-04-09,Tipton,Tennessee,47167,39,0 +2020-04-10,Tipton,Tennessee,47167,43,0 +2020-04-11,Tipton,Tennessee,47167,44,0 +2020-04-12,Tipton,Tennessee,47167,44,0 +2020-04-13,Tipton,Tennessee,47167,50,0 +2020-04-14,Tipton,Tennessee,47167,52,0 +2020-04-15,Tipton,Tennessee,47167,53,0 +2020-04-16,Tipton,Tennessee,47167,54,0 +2020-04-17,Tipton,Tennessee,47167,55,0 +2020-04-18,Tipton,Tennessee,47167,57,0 +2020-04-19,Tipton,Tennessee,47167,56,0 +2020-04-20,Tipton,Tennessee,47167,83,0 +2020-04-21,Tipton,Tennessee,47167,83,0 +2020-04-22,Tipton,Tennessee,47167,83,0 +2020-04-23,Tipton,Tennessee,47167,87,0 +2020-04-24,Tipton,Tennessee,47167,88,0 +2020-04-25,Tipton,Tennessee,47167,91,0 +2020-04-26,Tipton,Tennessee,47167,94,0 +2020-04-27,Tipton,Tennessee,47167,95,0 +2020-04-28,Tipton,Tennessee,47167,96,0 +2020-04-29,Tipton,Tennessee,47167,98,0 +2020-04-30,Tipton,Tennessee,47167,98,0 +2020-05-01,Tipton,Tennessee,47167,98,0 +2020-05-02,Tipton,Tennessee,47167,99,0 +2020-05-03,Tipton,Tennessee,47167,146,0 +2020-05-04,Tipton,Tennessee,47167,148,1 +2020-05-05,Tipton,Tennessee,47167,149,1 +2020-05-06,Tipton,Tennessee,47167,155,2 +2020-05-07,Tipton,Tennessee,47167,158,2 +2020-05-08,Tipton,Tennessee,47167,158,2 +2020-05-09,Tipton,Tennessee,47167,158,2 +2020-05-10,Tipton,Tennessee,47167,159,2 +2020-05-11,Tipton,Tennessee,47167,373,2 +2020-05-12,Tipton,Tennessee,47167,395,2 +2020-05-13,Tipton,Tennessee,47167,400,2 +2020-05-14,Tipton,Tennessee,47167,402,2 +2020-05-15,Tipton,Tennessee,47167,402,2 +2020-05-16,Tipton,Tennessee,47167,403,2 +2020-05-17,Tipton,Tennessee,47167,403,2 +2020-05-18,Tipton,Tennessee,47167,405,2 +2020-05-19,Tipton,Tennessee,47167,407,2 +2020-05-20,Tipton,Tennessee,47167,407,2 +2020-05-21,Tipton,Tennessee,47167,409,2 +2020-05-22,Tipton,Tennessee,47167,423,2 +2020-05-23,Tipton,Tennessee,47167,426,2 +2020-05-24,Tipton,Tennessee,47167,421,3 +2020-05-25,Tipton,Tennessee,47167,427,3 +2020-05-26,Tipton,Tennessee,47167,427,3 +2020-05-27,Tipton,Tennessee,47167,428,3 +2020-05-28,Tipton,Tennessee,47167,430,3 +2020-05-29,Tipton,Tennessee,47167,437,3 +2020-05-30,Tipton,Tennessee,47167,442,3 +2020-05-31,Tipton,Tennessee,47167,442,3 +2020-06-01,Tipton,Tennessee,47167,442,3 +2020-06-02,Tipton,Tennessee,47167,455,3 +2020-06-03,Tipton,Tennessee,47167,459,3 +2020-06-04,Tipton,Tennessee,47167,461,3 +2020-06-05,Tipton,Tennessee,47167,467,3 +2020-06-06,Tipton,Tennessee,47167,475,3 +2020-06-07,Tipton,Tennessee,47167,479,3 +2020-06-08,Tipton,Tennessee,47167,480,3 +2020-06-09,Tipton,Tennessee,47167,487,3 +2020-06-10,Tipton,Tennessee,47167,488,3 +2020-06-11,Tipton,Tennessee,47167,491,3 +2020-06-12,Tipton,Tennessee,47167,497,3 +2020-06-13,Tipton,Tennessee,47167,501,3 +2020-06-14,Tipton,Tennessee,47167,510,3 +2020-06-15,Tipton,Tennessee,47167,520,3 +2020-06-16,Tipton,Tennessee,47167,525,3 +2020-06-17,Tipton,Tennessee,47167,534,4 +2020-06-18,Tipton,Tennessee,47167,541,4 +2020-06-19,Tipton,Tennessee,47167,551,4 +2020-06-20,Tipton,Tennessee,47167,554,4 +2020-06-21,Tipton,Tennessee,47167,562,4 +2020-06-22,Tipton,Tennessee,47167,563,4 +2020-06-23,Tipton,Tennessee,47167,565,4 +2020-06-24,Tipton,Tennessee,47167,571,4 +2020-06-25,Tipton,Tennessee,47167,580,4 +2020-06-26,Tipton,Tennessee,47167,584,4 +2020-06-27,Tipton,Tennessee,47167,593,4 +2020-06-28,Tipton,Tennessee,47167,593,4 +2020-06-29,Tipton,Tennessee,47167,605,4 +2020-06-30,Tipton,Tennessee,47167,607,4 +2020-07-01,Tipton,Tennessee,47167,611,4 +2020-07-02,Tipton,Tennessee,47167,620,5 +2020-07-03,Tipton,Tennessee,47167,633,5 +2020-07-04,Tipton,Tennessee,47167,637,5 +2020-07-05,Tipton,Tennessee,47167,645,5 +2020-07-06,Tipton,Tennessee,47167,649,5 +2020-07-07,Tipton,Tennessee,47167,653,5 +2020-07-08,Tipton,Tennessee,47167,662,5 +2020-07-09,Tipton,Tennessee,47167,674,6 +2020-03-28,Trousdale,Tennessee,47169,1,0 +2020-03-29,Trousdale,Tennessee,47169,1,0 +2020-03-30,Trousdale,Tennessee,47169,3,0 +2020-03-31,Trousdale,Tennessee,47169,3,0 +2020-04-01,Trousdale,Tennessee,47169,5,1 +2020-04-02,Trousdale,Tennessee,47169,6,1 +2020-04-03,Trousdale,Tennessee,47169,7,1 +2020-04-04,Trousdale,Tennessee,47169,7,1 +2020-04-05,Trousdale,Tennessee,47169,8,1 +2020-04-06,Trousdale,Tennessee,47169,11,1 +2020-04-07,Trousdale,Tennessee,47169,14,1 +2020-04-08,Trousdale,Tennessee,47169,14,1 +2020-04-09,Trousdale,Tennessee,47169,14,1 +2020-04-10,Trousdale,Tennessee,47169,14,1 +2020-04-11,Trousdale,Tennessee,47169,17,1 +2020-04-12,Trousdale,Tennessee,47169,17,1 +2020-04-13,Trousdale,Tennessee,47169,20,1 +2020-04-14,Trousdale,Tennessee,47169,20,1 +2020-04-15,Trousdale,Tennessee,47169,20,1 +2020-04-16,Trousdale,Tennessee,47169,20,1 +2020-04-17,Trousdale,Tennessee,47169,20,1 +2020-04-18,Trousdale,Tennessee,47169,20,1 +2020-04-19,Trousdale,Tennessee,47169,22,1 +2020-04-20,Trousdale,Tennessee,47169,22,1 +2020-04-21,Trousdale,Tennessee,47169,23,1 +2020-04-22,Trousdale,Tennessee,47169,27,1 +2020-04-23,Trousdale,Tennessee,47169,27,1 +2020-04-24,Trousdale,Tennessee,47169,29,1 +2020-04-25,Trousdale,Tennessee,47169,47,1 +2020-04-26,Trousdale,Tennessee,47169,48,1 +2020-04-27,Trousdale,Tennessee,47169,48,1 +2020-04-28,Trousdale,Tennessee,47169,50,1 +2020-04-29,Trousdale,Tennessee,47169,122,1 +2020-04-30,Trousdale,Tennessee,47169,123,1 +2020-05-01,Trousdale,Tennessee,47169,1020,1 +2020-05-02,Trousdale,Tennessee,47169,1344,1 +2020-05-03,Trousdale,Tennessee,47169,1346,1 +2020-05-04,Trousdale,Tennessee,47169,1348,1 +2020-05-05,Trousdale,Tennessee,47169,1352,2 +2020-05-06,Trousdale,Tennessee,47169,1355,2 +2020-05-07,Trousdale,Tennessee,47169,1356,2 +2020-05-08,Trousdale,Tennessee,47169,1355,2 +2020-05-09,Trousdale,Tennessee,47169,1357,2 +2020-05-10,Trousdale,Tennessee,47169,1357,2 +2020-05-11,Trousdale,Tennessee,47169,1363,2 +2020-05-12,Trousdale,Tennessee,47169,1364,3 +2020-05-13,Trousdale,Tennessee,47169,1381,3 +2020-05-14,Trousdale,Tennessee,47169,1382,3 +2020-05-15,Trousdale,Tennessee,47169,1382,4 +2020-05-16,Trousdale,Tennessee,47169,1382,4 +2020-05-17,Trousdale,Tennessee,47169,1383,4 +2020-05-18,Trousdale,Tennessee,47169,1383,4 +2020-05-19,Trousdale,Tennessee,47169,1384,4 +2020-05-20,Trousdale,Tennessee,47169,1384,4 +2020-05-21,Trousdale,Tennessee,47169,1385,4 +2020-05-22,Trousdale,Tennessee,47169,1390,4 +2020-05-23,Trousdale,Tennessee,47169,1388,4 +2020-05-24,Trousdale,Tennessee,47169,1393,4 +2020-05-25,Trousdale,Tennessee,47169,1392,4 +2020-05-26,Trousdale,Tennessee,47169,1392,4 +2020-05-27,Trousdale,Tennessee,47169,1392,4 +2020-05-28,Trousdale,Tennessee,47169,1393,4 +2020-05-29,Trousdale,Tennessee,47169,1393,4 +2020-05-30,Trousdale,Tennessee,47169,1392,4 +2020-05-31,Trousdale,Tennessee,47169,1392,4 +2020-06-01,Trousdale,Tennessee,47169,1392,4 +2020-06-02,Trousdale,Tennessee,47169,1396,4 +2020-06-03,Trousdale,Tennessee,47169,1394,4 +2020-06-04,Trousdale,Tennessee,47169,1394,4 +2020-06-05,Trousdale,Tennessee,47169,1394,4 +2020-06-06,Trousdale,Tennessee,47169,1394,4 +2020-06-07,Trousdale,Tennessee,47169,1394,4 +2020-06-08,Trousdale,Tennessee,47169,1397,4 +2020-06-09,Trousdale,Tennessee,47169,1397,4 +2020-06-10,Trousdale,Tennessee,47169,1397,4 +2020-06-11,Trousdale,Tennessee,47169,1399,4 +2020-06-12,Trousdale,Tennessee,47169,1458,4 +2020-06-13,Trousdale,Tennessee,47169,1456,4 +2020-06-14,Trousdale,Tennessee,47169,1456,4 +2020-06-15,Trousdale,Tennessee,47169,1458,4 +2020-06-16,Trousdale,Tennessee,47169,1460,4 +2020-06-17,Trousdale,Tennessee,47169,1460,4 +2020-06-18,Trousdale,Tennessee,47169,1464,5 +2020-06-19,Trousdale,Tennessee,47169,1464,5 +2020-06-20,Trousdale,Tennessee,47169,1466,5 +2020-06-21,Trousdale,Tennessee,47169,1466,5 +2020-06-22,Trousdale,Tennessee,47169,1466,5 +2020-06-23,Trousdale,Tennessee,47169,1468,5 +2020-06-24,Trousdale,Tennessee,47169,1469,5 +2020-06-25,Trousdale,Tennessee,47169,1471,5 +2020-06-26,Trousdale,Tennessee,47169,1473,5 +2020-06-27,Trousdale,Tennessee,47169,1476,5 +2020-06-28,Trousdale,Tennessee,47169,1476,5 +2020-06-29,Trousdale,Tennessee,47169,1482,5 +2020-06-30,Trousdale,Tennessee,47169,1485,5 +2020-07-01,Trousdale,Tennessee,47169,1489,5 +2020-07-02,Trousdale,Tennessee,47169,1490,5 +2020-07-03,Trousdale,Tennessee,47169,1494,5 +2020-07-04,Trousdale,Tennessee,47169,1496,5 +2020-07-05,Trousdale,Tennessee,47169,1498,5 +2020-07-06,Trousdale,Tennessee,47169,1498,5 +2020-07-07,Trousdale,Tennessee,47169,1503,5 +2020-07-08,Trousdale,Tennessee,47169,1503,5 +2020-07-09,Trousdale,Tennessee,47169,1505,5 +2020-03-26,Unicoi,Tennessee,47171,1,0 +2020-03-27,Unicoi,Tennessee,47171,1,0 +2020-03-28,Unicoi,Tennessee,47171,1,0 +2020-03-29,Unicoi,Tennessee,47171,1,0 +2020-03-30,Unicoi,Tennessee,47171,1,0 +2020-03-31,Unicoi,Tennessee,47171,1,0 +2020-04-01,Unicoi,Tennessee,47171,1,0 +2020-04-02,Unicoi,Tennessee,47171,1,0 +2020-04-03,Unicoi,Tennessee,47171,1,0 +2020-04-04,Unicoi,Tennessee,47171,1,0 +2020-04-05,Unicoi,Tennessee,47171,1,0 +2020-04-06,Unicoi,Tennessee,47171,1,0 +2020-04-07,Unicoi,Tennessee,47171,1,0 +2020-04-08,Unicoi,Tennessee,47171,1,0 +2020-04-09,Unicoi,Tennessee,47171,1,0 +2020-04-10,Unicoi,Tennessee,47171,1,0 +2020-04-11,Unicoi,Tennessee,47171,1,0 +2020-04-12,Unicoi,Tennessee,47171,1,0 +2020-04-13,Unicoi,Tennessee,47171,1,0 +2020-04-14,Unicoi,Tennessee,47171,1,0 +2020-04-15,Unicoi,Tennessee,47171,1,0 +2020-04-16,Unicoi,Tennessee,47171,1,0 +2020-04-17,Unicoi,Tennessee,47171,1,0 +2020-04-18,Unicoi,Tennessee,47171,1,0 +2020-04-19,Unicoi,Tennessee,47171,1,0 +2020-04-20,Unicoi,Tennessee,47171,1,0 +2020-04-21,Unicoi,Tennessee,47171,1,0 +2020-04-22,Unicoi,Tennessee,47171,1,0 +2020-04-23,Unicoi,Tennessee,47171,1,0 +2020-04-24,Unicoi,Tennessee,47171,1,0 +2020-04-25,Unicoi,Tennessee,47171,1,0 +2020-04-26,Unicoi,Tennessee,47171,1,0 +2020-04-27,Unicoi,Tennessee,47171,1,0 +2020-04-28,Unicoi,Tennessee,47171,1,0 +2020-04-29,Unicoi,Tennessee,47171,1,0 +2020-04-30,Unicoi,Tennessee,47171,1,0 +2020-05-01,Unicoi,Tennessee,47171,2,0 +2020-05-02,Unicoi,Tennessee,47171,2,0 +2020-05-03,Unicoi,Tennessee,47171,2,0 +2020-05-04,Unicoi,Tennessee,47171,2,0 +2020-05-05,Unicoi,Tennessee,47171,2,0 +2020-05-06,Unicoi,Tennessee,47171,2,0 +2020-05-07,Unicoi,Tennessee,47171,2,0 +2020-05-08,Unicoi,Tennessee,47171,2,0 +2020-05-09,Unicoi,Tennessee,47171,2,0 +2020-05-10,Unicoi,Tennessee,47171,3,0 +2020-05-11,Unicoi,Tennessee,47171,3,0 +2020-05-12,Unicoi,Tennessee,47171,3,0 +2020-05-13,Unicoi,Tennessee,47171,3,0 +2020-05-14,Unicoi,Tennessee,47171,3,0 +2020-05-15,Unicoi,Tennessee,47171,3,0 +2020-05-16,Unicoi,Tennessee,47171,3,0 +2020-05-17,Unicoi,Tennessee,47171,3,0 +2020-05-18,Unicoi,Tennessee,47171,3,0 +2020-05-19,Unicoi,Tennessee,47171,3,0 +2020-05-20,Unicoi,Tennessee,47171,3,0 +2020-05-21,Unicoi,Tennessee,47171,3,0 +2020-05-22,Unicoi,Tennessee,47171,3,0 +2020-05-23,Unicoi,Tennessee,47171,3,0 +2020-05-24,Unicoi,Tennessee,47171,3,0 +2020-05-25,Unicoi,Tennessee,47171,3,0 +2020-05-26,Unicoi,Tennessee,47171,3,0 +2020-05-27,Unicoi,Tennessee,47171,3,0 +2020-05-28,Unicoi,Tennessee,47171,4,0 +2020-05-29,Unicoi,Tennessee,47171,4,0 +2020-05-30,Unicoi,Tennessee,47171,4,0 +2020-05-31,Unicoi,Tennessee,47171,4,0 +2020-06-01,Unicoi,Tennessee,47171,4,0 +2020-06-02,Unicoi,Tennessee,47171,41,0 +2020-06-03,Unicoi,Tennessee,47171,48,0 +2020-06-04,Unicoi,Tennessee,47171,48,0 +2020-06-05,Unicoi,Tennessee,47171,49,0 +2020-06-06,Unicoi,Tennessee,47171,52,0 +2020-06-07,Unicoi,Tennessee,47171,52,0 +2020-06-08,Unicoi,Tennessee,47171,52,0 +2020-06-09,Unicoi,Tennessee,47171,52,0 +2020-06-10,Unicoi,Tennessee,47171,52,0 +2020-06-11,Unicoi,Tennessee,47171,52,0 +2020-06-12,Unicoi,Tennessee,47171,52,0 +2020-06-13,Unicoi,Tennessee,47171,53,0 +2020-06-14,Unicoi,Tennessee,47171,53,0 +2020-06-15,Unicoi,Tennessee,47171,53,0 +2020-06-16,Unicoi,Tennessee,47171,52,0 +2020-06-17,Unicoi,Tennessee,47171,52,0 +2020-06-18,Unicoi,Tennessee,47171,52,0 +2020-06-19,Unicoi,Tennessee,47171,52,0 +2020-06-20,Unicoi,Tennessee,47171,52,0 +2020-06-21,Unicoi,Tennessee,47171,52,0 +2020-06-22,Unicoi,Tennessee,47171,53,0 +2020-06-23,Unicoi,Tennessee,47171,53,0 +2020-06-24,Unicoi,Tennessee,47171,53,0 +2020-06-25,Unicoi,Tennessee,47171,53,0 +2020-06-26,Unicoi,Tennessee,47171,53,0 +2020-06-27,Unicoi,Tennessee,47171,53,0 +2020-06-28,Unicoi,Tennessee,47171,53,0 +2020-06-29,Unicoi,Tennessee,47171,53,0 +2020-06-30,Unicoi,Tennessee,47171,54,0 +2020-07-01,Unicoi,Tennessee,47171,54,0 +2020-07-02,Unicoi,Tennessee,47171,55,0 +2020-07-03,Unicoi,Tennessee,47171,55,0 +2020-07-04,Unicoi,Tennessee,47171,55,0 +2020-07-05,Unicoi,Tennessee,47171,55,0 +2020-07-06,Unicoi,Tennessee,47171,55,0 +2020-07-07,Unicoi,Tennessee,47171,55,0 +2020-07-08,Unicoi,Tennessee,47171,56,0 +2020-07-09,Unicoi,Tennessee,47171,56,0 +2020-03-28,Union,Tennessee,47173,1,0 +2020-03-29,Union,Tennessee,47173,1,0 +2020-03-30,Union,Tennessee,47173,1,0 +2020-03-31,Union,Tennessee,47173,1,0 +2020-04-01,Union,Tennessee,47173,1,0 +2020-04-02,Union,Tennessee,47173,1,0 +2020-04-03,Union,Tennessee,47173,1,0 +2020-04-04,Union,Tennessee,47173,1,0 +2020-04-05,Union,Tennessee,47173,1,0 +2020-04-06,Union,Tennessee,47173,1,0 +2020-04-07,Union,Tennessee,47173,1,0 +2020-04-08,Union,Tennessee,47173,2,0 +2020-04-09,Union,Tennessee,47173,2,0 +2020-04-10,Union,Tennessee,47173,3,0 +2020-04-11,Union,Tennessee,47173,3,0 +2020-04-12,Union,Tennessee,47173,3,0 +2020-04-13,Union,Tennessee,47173,3,0 +2020-04-14,Union,Tennessee,47173,3,0 +2020-04-15,Union,Tennessee,47173,3,0 +2020-04-16,Union,Tennessee,47173,3,0 +2020-04-17,Union,Tennessee,47173,3,0 +2020-04-18,Union,Tennessee,47173,3,0 +2020-04-19,Union,Tennessee,47173,3,0 +2020-04-20,Union,Tennessee,47173,3,0 +2020-04-21,Union,Tennessee,47173,3,0 +2020-04-22,Union,Tennessee,47173,3,0 +2020-04-23,Union,Tennessee,47173,3,0 +2020-04-24,Union,Tennessee,47173,3,0 +2020-04-25,Union,Tennessee,47173,3,0 +2020-04-26,Union,Tennessee,47173,3,0 +2020-04-27,Union,Tennessee,47173,3,0 +2020-04-28,Union,Tennessee,47173,3,0 +2020-04-29,Union,Tennessee,47173,3,0 +2020-04-30,Union,Tennessee,47173,3,0 +2020-05-01,Union,Tennessee,47173,3,0 +2020-05-02,Union,Tennessee,47173,3,0 +2020-05-03,Union,Tennessee,47173,3,0 +2020-05-04,Union,Tennessee,47173,3,0 +2020-05-05,Union,Tennessee,47173,3,0 +2020-05-06,Union,Tennessee,47173,3,0 +2020-05-07,Union,Tennessee,47173,3,0 +2020-05-08,Union,Tennessee,47173,3,0 +2020-05-09,Union,Tennessee,47173,3,0 +2020-05-10,Union,Tennessee,47173,3,0 +2020-05-11,Union,Tennessee,47173,3,0 +2020-05-12,Union,Tennessee,47173,3,0 +2020-05-13,Union,Tennessee,47173,4,0 +2020-05-14,Union,Tennessee,47173,4,0 +2020-05-15,Union,Tennessee,47173,4,0 +2020-05-16,Union,Tennessee,47173,4,0 +2020-05-17,Union,Tennessee,47173,4,0 +2020-05-18,Union,Tennessee,47173,4,0 +2020-05-19,Union,Tennessee,47173,4,0 +2020-05-20,Union,Tennessee,47173,4,0 +2020-05-21,Union,Tennessee,47173,4,0 +2020-05-22,Union,Tennessee,47173,4,0 +2020-05-23,Union,Tennessee,47173,4,0 +2020-05-24,Union,Tennessee,47173,4,0 +2020-05-25,Union,Tennessee,47173,4,0 +2020-05-26,Union,Tennessee,47173,4,0 +2020-05-27,Union,Tennessee,47173,4,0 +2020-05-28,Union,Tennessee,47173,4,0 +2020-05-29,Union,Tennessee,47173,4,0 +2020-05-30,Union,Tennessee,47173,4,0 +2020-05-31,Union,Tennessee,47173,4,0 +2020-06-01,Union,Tennessee,47173,4,0 +2020-06-02,Union,Tennessee,47173,5,0 +2020-06-03,Union,Tennessee,47173,4,0 +2020-06-04,Union,Tennessee,47173,4,0 +2020-06-05,Union,Tennessee,47173,4,0 +2020-06-06,Union,Tennessee,47173,4,0 +2020-06-07,Union,Tennessee,47173,4,0 +2020-06-08,Union,Tennessee,47173,4,0 +2020-06-09,Union,Tennessee,47173,5,0 +2020-06-10,Union,Tennessee,47173,5,0 +2020-06-11,Union,Tennessee,47173,6,0 +2020-06-12,Union,Tennessee,47173,7,0 +2020-06-13,Union,Tennessee,47173,8,0 +2020-06-14,Union,Tennessee,47173,8,0 +2020-06-15,Union,Tennessee,47173,8,0 +2020-06-16,Union,Tennessee,47173,9,0 +2020-06-17,Union,Tennessee,47173,9,0 +2020-06-18,Union,Tennessee,47173,9,0 +2020-06-19,Union,Tennessee,47173,9,0 +2020-06-20,Union,Tennessee,47173,9,0 +2020-06-21,Union,Tennessee,47173,10,0 +2020-06-22,Union,Tennessee,47173,10,0 +2020-06-23,Union,Tennessee,47173,9,0 +2020-06-24,Union,Tennessee,47173,9,0 +2020-06-25,Union,Tennessee,47173,10,0 +2020-06-26,Union,Tennessee,47173,11,0 +2020-06-27,Union,Tennessee,47173,11,0 +2020-06-28,Union,Tennessee,47173,11,0 +2020-06-29,Union,Tennessee,47173,12,0 +2020-06-30,Union,Tennessee,47173,12,0 +2020-07-01,Union,Tennessee,47173,13,0 +2020-07-02,Union,Tennessee,47173,15,0 +2020-07-03,Union,Tennessee,47173,16,0 +2020-07-04,Union,Tennessee,47173,18,0 +2020-07-05,Union,Tennessee,47173,18,0 +2020-07-06,Union,Tennessee,47173,19,0 +2020-07-07,Union,Tennessee,47173,19,0 +2020-07-08,Union,Tennessee,47173,19,0 +2020-07-09,Union,Tennessee,47173,20,0 +2020-04-13,Van Buren,Tennessee,47175,1,0 +2020-04-14,Van Buren,Tennessee,47175,1,0 +2020-04-15,Van Buren,Tennessee,47175,1,0 +2020-04-16,Van Buren,Tennessee,47175,1,0 +2020-04-17,Van Buren,Tennessee,47175,1,0 +2020-04-18,Van Buren,Tennessee,47175,1,0 +2020-04-19,Van Buren,Tennessee,47175,1,0 +2020-04-20,Van Buren,Tennessee,47175,1,0 +2020-04-21,Van Buren,Tennessee,47175,1,0 +2020-04-22,Van Buren,Tennessee,47175,1,0 +2020-04-23,Van Buren,Tennessee,47175,1,0 +2020-04-24,Van Buren,Tennessee,47175,1,0 +2020-04-25,Van Buren,Tennessee,47175,2,0 +2020-04-26,Van Buren,Tennessee,47175,2,0 +2020-04-27,Van Buren,Tennessee,47175,2,0 +2020-04-28,Van Buren,Tennessee,47175,2,0 +2020-04-29,Van Buren,Tennessee,47175,2,0 +2020-04-30,Van Buren,Tennessee,47175,2,0 +2020-05-01,Van Buren,Tennessee,47175,2,0 +2020-05-02,Van Buren,Tennessee,47175,2,0 +2020-05-03,Van Buren,Tennessee,47175,2,0 +2020-05-04,Van Buren,Tennessee,47175,2,0 +2020-05-05,Van Buren,Tennessee,47175,2,0 +2020-05-06,Van Buren,Tennessee,47175,2,0 +2020-05-07,Van Buren,Tennessee,47175,2,0 +2020-05-08,Van Buren,Tennessee,47175,2,0 +2020-05-09,Van Buren,Tennessee,47175,2,0 +2020-05-10,Van Buren,Tennessee,47175,2,0 +2020-05-11,Van Buren,Tennessee,47175,2,0 +2020-05-12,Van Buren,Tennessee,47175,2,0 +2020-05-13,Van Buren,Tennessee,47175,2,0 +2020-05-14,Van Buren,Tennessee,47175,2,0 +2020-05-15,Van Buren,Tennessee,47175,3,0 +2020-05-16,Van Buren,Tennessee,47175,3,0 +2020-05-17,Van Buren,Tennessee,47175,3,0 +2020-05-18,Van Buren,Tennessee,47175,4,0 +2020-05-19,Van Buren,Tennessee,47175,4,0 +2020-05-20,Van Buren,Tennessee,47175,4,0 +2020-05-21,Van Buren,Tennessee,47175,4,0 +2020-05-22,Van Buren,Tennessee,47175,4,0 +2020-05-23,Van Buren,Tennessee,47175,4,0 +2020-05-24,Van Buren,Tennessee,47175,4,0 +2020-05-25,Van Buren,Tennessee,47175,4,0 +2020-05-26,Van Buren,Tennessee,47175,4,0 +2020-05-27,Van Buren,Tennessee,47175,4,0 +2020-05-28,Van Buren,Tennessee,47175,4,0 +2020-05-29,Van Buren,Tennessee,47175,4,0 +2020-05-30,Van Buren,Tennessee,47175,4,0 +2020-05-31,Van Buren,Tennessee,47175,4,0 +2020-06-01,Van Buren,Tennessee,47175,4,0 +2020-06-02,Van Buren,Tennessee,47175,4,0 +2020-06-03,Van Buren,Tennessee,47175,4,0 +2020-06-04,Van Buren,Tennessee,47175,4,0 +2020-06-05,Van Buren,Tennessee,47175,4,0 +2020-06-06,Van Buren,Tennessee,47175,4,0 +2020-06-07,Van Buren,Tennessee,47175,4,0 +2020-06-08,Van Buren,Tennessee,47175,4,0 +2020-06-09,Van Buren,Tennessee,47175,4,0 +2020-06-10,Van Buren,Tennessee,47175,4,0 +2020-06-11,Van Buren,Tennessee,47175,4,0 +2020-06-12,Van Buren,Tennessee,47175,4,0 +2020-06-13,Van Buren,Tennessee,47175,4,0 +2020-06-14,Van Buren,Tennessee,47175,4,0 +2020-06-15,Van Buren,Tennessee,47175,5,0 +2020-06-16,Van Buren,Tennessee,47175,5,0 +2020-06-17,Van Buren,Tennessee,47175,5,0 +2020-06-18,Van Buren,Tennessee,47175,5,0 +2020-06-19,Van Buren,Tennessee,47175,5,0 +2020-06-20,Van Buren,Tennessee,47175,5,0 +2020-06-21,Van Buren,Tennessee,47175,5,0 +2020-06-22,Van Buren,Tennessee,47175,5,0 +2020-06-23,Van Buren,Tennessee,47175,6,0 +2020-06-24,Van Buren,Tennessee,47175,6,0 +2020-06-25,Van Buren,Tennessee,47175,6,0 +2020-06-26,Van Buren,Tennessee,47175,6,0 +2020-06-27,Van Buren,Tennessee,47175,6,0 +2020-06-28,Van Buren,Tennessee,47175,6,0 +2020-06-29,Van Buren,Tennessee,47175,7,0 +2020-06-30,Van Buren,Tennessee,47175,7,0 +2020-07-01,Van Buren,Tennessee,47175,7,0 +2020-07-02,Van Buren,Tennessee,47175,7,0 +2020-07-03,Van Buren,Tennessee,47175,8,0 +2020-07-04,Van Buren,Tennessee,47175,8,0 +2020-07-05,Van Buren,Tennessee,47175,8,0 +2020-07-06,Van Buren,Tennessee,47175,7,0 +2020-07-07,Van Buren,Tennessee,47175,7,0 +2020-07-08,Van Buren,Tennessee,47175,7,0 +2020-07-09,Van Buren,Tennessee,47175,7,0 +2020-03-30,Warren,Tennessee,47177,1,0 +2020-03-31,Warren,Tennessee,47177,1,0 +2020-04-01,Warren,Tennessee,47177,1,0 +2020-04-02,Warren,Tennessee,47177,1,0 +2020-04-03,Warren,Tennessee,47177,1,0 +2020-04-04,Warren,Tennessee,47177,1,0 +2020-04-05,Warren,Tennessee,47177,1,0 +2020-04-06,Warren,Tennessee,47177,1,0 +2020-04-07,Warren,Tennessee,47177,2,0 +2020-04-08,Warren,Tennessee,47177,2,0 +2020-04-09,Warren,Tennessee,47177,3,0 +2020-04-10,Warren,Tennessee,47177,3,0 +2020-04-11,Warren,Tennessee,47177,4,0 +2020-04-12,Warren,Tennessee,47177,4,0 +2020-04-13,Warren,Tennessee,47177,4,0 +2020-04-14,Warren,Tennessee,47177,4,0 +2020-04-15,Warren,Tennessee,47177,4,0 +2020-04-16,Warren,Tennessee,47177,4,0 +2020-04-17,Warren,Tennessee,47177,4,0 +2020-04-18,Warren,Tennessee,47177,4,0 +2020-04-19,Warren,Tennessee,47177,5,0 +2020-04-20,Warren,Tennessee,47177,5,0 +2020-04-21,Warren,Tennessee,47177,4,0 +2020-04-22,Warren,Tennessee,47177,4,0 +2020-04-23,Warren,Tennessee,47177,4,0 +2020-04-24,Warren,Tennessee,47177,5,0 +2020-04-25,Warren,Tennessee,47177,5,0 +2020-04-26,Warren,Tennessee,47177,5,0 +2020-04-27,Warren,Tennessee,47177,7,0 +2020-04-28,Warren,Tennessee,47177,7,0 +2020-04-29,Warren,Tennessee,47177,7,0 +2020-04-30,Warren,Tennessee,47177,7,0 +2020-05-01,Warren,Tennessee,47177,8,0 +2020-05-02,Warren,Tennessee,47177,8,0 +2020-05-03,Warren,Tennessee,47177,8,0 +2020-05-04,Warren,Tennessee,47177,8,0 +2020-05-05,Warren,Tennessee,47177,8,0 +2020-05-06,Warren,Tennessee,47177,10,0 +2020-05-07,Warren,Tennessee,47177,10,0 +2020-05-08,Warren,Tennessee,47177,10,0 +2020-05-09,Warren,Tennessee,47177,12,0 +2020-05-10,Warren,Tennessee,47177,12,0 +2020-05-11,Warren,Tennessee,47177,12,0 +2020-05-12,Warren,Tennessee,47177,13,0 +2020-05-13,Warren,Tennessee,47177,13,0 +2020-05-14,Warren,Tennessee,47177,14,0 +2020-05-15,Warren,Tennessee,47177,14,0 +2020-05-16,Warren,Tennessee,47177,15,0 +2020-05-17,Warren,Tennessee,47177,15,0 +2020-05-18,Warren,Tennessee,47177,16,0 +2020-05-19,Warren,Tennessee,47177,16,0 +2020-05-20,Warren,Tennessee,47177,16,0 +2020-05-21,Warren,Tennessee,47177,16,0 +2020-05-22,Warren,Tennessee,47177,16,0 +2020-05-23,Warren,Tennessee,47177,19,0 +2020-05-24,Warren,Tennessee,47177,19,0 +2020-05-25,Warren,Tennessee,47177,21,0 +2020-05-26,Warren,Tennessee,47177,21,0 +2020-05-27,Warren,Tennessee,47177,22,0 +2020-05-28,Warren,Tennessee,47177,22,0 +2020-05-29,Warren,Tennessee,47177,23,0 +2020-05-30,Warren,Tennessee,47177,23,0 +2020-05-31,Warren,Tennessee,47177,23,0 +2020-06-01,Warren,Tennessee,47177,23,0 +2020-06-02,Warren,Tennessee,47177,26,0 +2020-06-03,Warren,Tennessee,47177,26,0 +2020-06-04,Warren,Tennessee,47177,26,0 +2020-06-05,Warren,Tennessee,47177,27,0 +2020-06-06,Warren,Tennessee,47177,28,0 +2020-06-07,Warren,Tennessee,47177,28,0 +2020-06-08,Warren,Tennessee,47177,31,0 +2020-06-09,Warren,Tennessee,47177,32,0 +2020-06-10,Warren,Tennessee,47177,32,0 +2020-06-11,Warren,Tennessee,47177,32,0 +2020-06-12,Warren,Tennessee,47177,32,0 +2020-06-13,Warren,Tennessee,47177,32,0 +2020-06-14,Warren,Tennessee,47177,33,0 +2020-06-15,Warren,Tennessee,47177,33,0 +2020-06-16,Warren,Tennessee,47177,35,0 +2020-06-17,Warren,Tennessee,47177,35,0 +2020-06-18,Warren,Tennessee,47177,36,0 +2020-06-19,Warren,Tennessee,47177,36,0 +2020-06-20,Warren,Tennessee,47177,33,0 +2020-06-21,Warren,Tennessee,47177,34,0 +2020-06-22,Warren,Tennessee,47177,34,0 +2020-06-23,Warren,Tennessee,47177,39,0 +2020-06-24,Warren,Tennessee,47177,46,0 +2020-06-25,Warren,Tennessee,47177,47,0 +2020-06-26,Warren,Tennessee,47177,50,0 +2020-06-27,Warren,Tennessee,47177,55,0 +2020-06-28,Warren,Tennessee,47177,55,0 +2020-06-29,Warren,Tennessee,47177,58,0 +2020-06-30,Warren,Tennessee,47177,62,0 +2020-07-01,Warren,Tennessee,47177,65,0 +2020-07-02,Warren,Tennessee,47177,69,0 +2020-07-03,Warren,Tennessee,47177,72,0 +2020-07-04,Warren,Tennessee,47177,73,0 +2020-07-05,Warren,Tennessee,47177,76,0 +2020-07-06,Warren,Tennessee,47177,78,0 +2020-07-07,Warren,Tennessee,47177,81,0 +2020-07-08,Warren,Tennessee,47177,100,0 +2020-07-09,Warren,Tennessee,47177,106,0 +2020-03-19,Washington,Tennessee,47179,2,0 +2020-03-20,Washington,Tennessee,47179,2,0 +2020-03-21,Washington,Tennessee,47179,2,0 +2020-03-22,Washington,Tennessee,47179,2,0 +2020-03-23,Washington,Tennessee,47179,2,0 +2020-03-24,Washington,Tennessee,47179,7,0 +2020-03-25,Washington,Tennessee,47179,7,0 +2020-03-26,Washington,Tennessee,47179,9,0 +2020-03-27,Washington,Tennessee,47179,10,0 +2020-03-28,Washington,Tennessee,47179,14,0 +2020-03-29,Washington,Tennessee,47179,14,0 +2020-03-30,Washington,Tennessee,47179,14,0 +2020-03-31,Washington,Tennessee,47179,14,0 +2020-04-01,Washington,Tennessee,47179,21,0 +2020-04-02,Washington,Tennessee,47179,21,0 +2020-04-03,Washington,Tennessee,47179,20,0 +2020-04-04,Washington,Tennessee,47179,22,0 +2020-04-05,Washington,Tennessee,47179,23,0 +2020-04-06,Washington,Tennessee,47179,24,0 +2020-04-07,Washington,Tennessee,47179,27,0 +2020-04-08,Washington,Tennessee,47179,30,0 +2020-04-09,Washington,Tennessee,47179,32,0 +2020-04-10,Washington,Tennessee,47179,37,0 +2020-04-11,Washington,Tennessee,47179,37,0 +2020-04-12,Washington,Tennessee,47179,37,0 +2020-04-13,Washington,Tennessee,47179,42,0 +2020-04-14,Washington,Tennessee,47179,44,0 +2020-04-15,Washington,Tennessee,47179,45,0 +2020-04-16,Washington,Tennessee,47179,46,0 +2020-04-17,Washington,Tennessee,47179,46,0 +2020-04-18,Washington,Tennessee,47179,46,0 +2020-04-19,Washington,Tennessee,47179,46,0 +2020-04-20,Washington,Tennessee,47179,46,0 +2020-04-21,Washington,Tennessee,47179,46,0 +2020-04-22,Washington,Tennessee,47179,46,0 +2020-04-23,Washington,Tennessee,47179,46,0 +2020-04-24,Washington,Tennessee,47179,46,0 +2020-04-25,Washington,Tennessee,47179,49,0 +2020-04-26,Washington,Tennessee,47179,52,0 +2020-04-27,Washington,Tennessee,47179,54,0 +2020-04-28,Washington,Tennessee,47179,54,0 +2020-04-29,Washington,Tennessee,47179,54,0 +2020-04-30,Washington,Tennessee,47179,54,0 +2020-05-01,Washington,Tennessee,47179,55,0 +2020-05-02,Washington,Tennessee,47179,57,0 +2020-05-03,Washington,Tennessee,47179,57,0 +2020-05-04,Washington,Tennessee,47179,57,0 +2020-05-05,Washington,Tennessee,47179,58,0 +2020-05-06,Washington,Tennessee,47179,59,0 +2020-05-07,Washington,Tennessee,47179,59,0 +2020-05-08,Washington,Tennessee,47179,60,0 +2020-05-09,Washington,Tennessee,47179,61,0 +2020-05-10,Washington,Tennessee,47179,61,0 +2020-05-11,Washington,Tennessee,47179,65,0 +2020-05-12,Washington,Tennessee,47179,65,0 +2020-05-13,Washington,Tennessee,47179,64,0 +2020-05-14,Washington,Tennessee,47179,66,0 +2020-05-15,Washington,Tennessee,47179,66,0 +2020-05-16,Washington,Tennessee,47179,66,0 +2020-05-17,Washington,Tennessee,47179,66,0 +2020-05-18,Washington,Tennessee,47179,66,0 +2020-05-19,Washington,Tennessee,47179,70,0 +2020-05-20,Washington,Tennessee,47179,70,0 +2020-05-21,Washington,Tennessee,47179,68,0 +2020-05-22,Washington,Tennessee,47179,68,0 +2020-05-23,Washington,Tennessee,47179,72,0 +2020-05-24,Washington,Tennessee,47179,73,0 +2020-05-25,Washington,Tennessee,47179,73,0 +2020-05-26,Washington,Tennessee,47179,75,0 +2020-05-27,Washington,Tennessee,47179,75,0 +2020-05-28,Washington,Tennessee,47179,75,0 +2020-05-29,Washington,Tennessee,47179,75,0 +2020-05-30,Washington,Tennessee,47179,75,0 +2020-05-31,Washington,Tennessee,47179,75,0 +2020-06-01,Washington,Tennessee,47179,75,0 +2020-06-02,Washington,Tennessee,47179,75,0 +2020-06-03,Washington,Tennessee,47179,75,0 +2020-06-04,Washington,Tennessee,47179,75,0 +2020-06-05,Washington,Tennessee,47179,76,0 +2020-06-06,Washington,Tennessee,47179,86,0 +2020-06-07,Washington,Tennessee,47179,86,0 +2020-06-08,Washington,Tennessee,47179,86,0 +2020-06-09,Washington,Tennessee,47179,86,0 +2020-06-10,Washington,Tennessee,47179,87,0 +2020-06-11,Washington,Tennessee,47179,88,0 +2020-06-12,Washington,Tennessee,47179,88,0 +2020-06-13,Washington,Tennessee,47179,90,0 +2020-06-14,Washington,Tennessee,47179,90,0 +2020-06-15,Washington,Tennessee,47179,90,0 +2020-06-16,Washington,Tennessee,47179,91,0 +2020-06-17,Washington,Tennessee,47179,93,0 +2020-06-18,Washington,Tennessee,47179,99,0 +2020-06-19,Washington,Tennessee,47179,101,0 +2020-06-20,Washington,Tennessee,47179,101,0 +2020-06-21,Washington,Tennessee,47179,102,0 +2020-06-22,Washington,Tennessee,47179,103,0 +2020-06-23,Washington,Tennessee,47179,107,0 +2020-06-24,Washington,Tennessee,47179,109,0 +2020-06-25,Washington,Tennessee,47179,112,0 +2020-06-26,Washington,Tennessee,47179,118,0 +2020-06-27,Washington,Tennessee,47179,121,0 +2020-06-28,Washington,Tennessee,47179,121,0 +2020-06-29,Washington,Tennessee,47179,128,0 +2020-06-30,Washington,Tennessee,47179,131,0 +2020-07-01,Washington,Tennessee,47179,134,0 +2020-07-02,Washington,Tennessee,47179,134,0 +2020-07-03,Washington,Tennessee,47179,142,0 +2020-07-04,Washington,Tennessee,47179,149,0 +2020-07-05,Washington,Tennessee,47179,165,0 +2020-07-06,Washington,Tennessee,47179,174,0 +2020-07-07,Washington,Tennessee,47179,182,0 +2020-07-08,Washington,Tennessee,47179,197,0 +2020-07-09,Washington,Tennessee,47179,212,0 +2020-03-30,Wayne,Tennessee,47181,1,0 +2020-03-31,Wayne,Tennessee,47181,1,0 +2020-04-01,Wayne,Tennessee,47181,1,0 +2020-04-02,Wayne,Tennessee,47181,2,0 +2020-04-03,Wayne,Tennessee,47181,2,0 +2020-04-04,Wayne,Tennessee,47181,2,0 +2020-04-05,Wayne,Tennessee,47181,2,0 +2020-04-06,Wayne,Tennessee,47181,2,0 +2020-04-07,Wayne,Tennessee,47181,2,0 +2020-04-08,Wayne,Tennessee,47181,2,0 +2020-04-09,Wayne,Tennessee,47181,2,0 +2020-04-10,Wayne,Tennessee,47181,2,0 +2020-04-11,Wayne,Tennessee,47181,2,0 +2020-04-12,Wayne,Tennessee,47181,2,0 +2020-04-13,Wayne,Tennessee,47181,2,0 +2020-04-14,Wayne,Tennessee,47181,2,0 +2020-04-15,Wayne,Tennessee,47181,2,0 +2020-04-16,Wayne,Tennessee,47181,2,0 +2020-04-17,Wayne,Tennessee,47181,2,0 +2020-04-18,Wayne,Tennessee,47181,2,0 +2020-04-19,Wayne,Tennessee,47181,2,0 +2020-04-20,Wayne,Tennessee,47181,2,0 +2020-04-21,Wayne,Tennessee,47181,2,0 +2020-04-22,Wayne,Tennessee,47181,2,0 +2020-04-23,Wayne,Tennessee,47181,2,0 +2020-04-24,Wayne,Tennessee,47181,2,0 +2020-04-25,Wayne,Tennessee,47181,2,0 +2020-04-26,Wayne,Tennessee,47181,2,0 +2020-04-27,Wayne,Tennessee,47181,2,0 +2020-04-28,Wayne,Tennessee,47181,4,0 +2020-04-29,Wayne,Tennessee,47181,4,0 +2020-04-30,Wayne,Tennessee,47181,4,0 +2020-05-01,Wayne,Tennessee,47181,4,0 +2020-05-02,Wayne,Tennessee,47181,4,0 +2020-05-03,Wayne,Tennessee,47181,4,0 +2020-05-04,Wayne,Tennessee,47181,4,0 +2020-05-05,Wayne,Tennessee,47181,4,0 +2020-05-06,Wayne,Tennessee,47181,4,0 +2020-05-07,Wayne,Tennessee,47181,4,0 +2020-05-08,Wayne,Tennessee,47181,4,0 +2020-05-09,Wayne,Tennessee,47181,4,0 +2020-05-10,Wayne,Tennessee,47181,4,0 +2020-05-11,Wayne,Tennessee,47181,3,0 +2020-05-12,Wayne,Tennessee,47181,3,0 +2020-05-13,Wayne,Tennessee,47181,3,0 +2020-05-14,Wayne,Tennessee,47181,3,0 +2020-05-15,Wayne,Tennessee,47181,61,0 +2020-05-16,Wayne,Tennessee,47181,63,0 +2020-05-17,Wayne,Tennessee,47181,63,0 +2020-05-18,Wayne,Tennessee,47181,63,0 +2020-05-19,Wayne,Tennessee,47181,63,0 +2020-05-20,Wayne,Tennessee,47181,63,0 +2020-05-21,Wayne,Tennessee,47181,63,0 +2020-05-22,Wayne,Tennessee,47181,63,0 +2020-05-23,Wayne,Tennessee,47181,63,0 +2020-05-24,Wayne,Tennessee,47181,63,0 +2020-05-25,Wayne,Tennessee,47181,63,0 +2020-05-26,Wayne,Tennessee,47181,63,0 +2020-05-27,Wayne,Tennessee,47181,63,0 +2020-05-28,Wayne,Tennessee,47181,63,0 +2020-05-29,Wayne,Tennessee,47181,63,0 +2020-05-30,Wayne,Tennessee,47181,64,0 +2020-05-31,Wayne,Tennessee,47181,64,0 +2020-06-01,Wayne,Tennessee,47181,64,0 +2020-06-02,Wayne,Tennessee,47181,64,0 +2020-06-03,Wayne,Tennessee,47181,64,0 +2020-06-04,Wayne,Tennessee,47181,64,0 +2020-06-05,Wayne,Tennessee,47181,64,0 +2020-06-06,Wayne,Tennessee,47181,64,0 +2020-06-07,Wayne,Tennessee,47181,64,0 +2020-06-08,Wayne,Tennessee,47181,64,0 +2020-06-09,Wayne,Tennessee,47181,64,0 +2020-06-10,Wayne,Tennessee,47181,64,0 +2020-06-11,Wayne,Tennessee,47181,64,0 +2020-06-12,Wayne,Tennessee,47181,64,0 +2020-06-13,Wayne,Tennessee,47181,64,0 +2020-06-14,Wayne,Tennessee,47181,64,0 +2020-06-15,Wayne,Tennessee,47181,64,0 +2020-06-16,Wayne,Tennessee,47181,64,0 +2020-06-17,Wayne,Tennessee,47181,64,0 +2020-06-18,Wayne,Tennessee,47181,64,0 +2020-06-19,Wayne,Tennessee,47181,64,0 +2020-06-20,Wayne,Tennessee,47181,64,0 +2020-06-21,Wayne,Tennessee,47181,64,0 +2020-06-22,Wayne,Tennessee,47181,65,0 +2020-06-23,Wayne,Tennessee,47181,67,0 +2020-06-24,Wayne,Tennessee,47181,69,0 +2020-06-25,Wayne,Tennessee,47181,71,0 +2020-06-26,Wayne,Tennessee,47181,71,0 +2020-06-27,Wayne,Tennessee,47181,74,0 +2020-06-28,Wayne,Tennessee,47181,74,0 +2020-06-29,Wayne,Tennessee,47181,75,0 +2020-06-30,Wayne,Tennessee,47181,77,0 +2020-07-01,Wayne,Tennessee,47181,77,0 +2020-07-02,Wayne,Tennessee,47181,80,0 +2020-07-03,Wayne,Tennessee,47181,82,0 +2020-07-04,Wayne,Tennessee,47181,82,0 +2020-07-05,Wayne,Tennessee,47181,86,0 +2020-07-06,Wayne,Tennessee,47181,88,0 +2020-07-07,Wayne,Tennessee,47181,89,0 +2020-07-08,Wayne,Tennessee,47181,90,0 +2020-07-09,Wayne,Tennessee,47181,99,0 +2020-03-28,Weakley,Tennessee,47183,1,0 +2020-03-29,Weakley,Tennessee,47183,1,0 +2020-03-30,Weakley,Tennessee,47183,1,0 +2020-03-31,Weakley,Tennessee,47183,1,0 +2020-04-01,Weakley,Tennessee,47183,1,0 +2020-04-02,Weakley,Tennessee,47183,1,0 +2020-04-03,Weakley,Tennessee,47183,1,0 +2020-04-04,Weakley,Tennessee,47183,1,0 +2020-04-05,Weakley,Tennessee,47183,5,0 +2020-04-06,Weakley,Tennessee,47183,5,0 +2020-04-07,Weakley,Tennessee,47183,5,0 +2020-04-08,Weakley,Tennessee,47183,5,0 +2020-04-09,Weakley,Tennessee,47183,5,0 +2020-04-10,Weakley,Tennessee,47183,5,0 +2020-04-11,Weakley,Tennessee,47183,5,0 +2020-04-12,Weakley,Tennessee,47183,5,0 +2020-04-13,Weakley,Tennessee,47183,6,0 +2020-04-14,Weakley,Tennessee,47183,6,0 +2020-04-15,Weakley,Tennessee,47183,6,0 +2020-04-16,Weakley,Tennessee,47183,6,0 +2020-04-17,Weakley,Tennessee,47183,6,0 +2020-04-18,Weakley,Tennessee,47183,6,0 +2020-04-19,Weakley,Tennessee,47183,8,0 +2020-04-20,Weakley,Tennessee,47183,8,0 +2020-04-21,Weakley,Tennessee,47183,8,0 +2020-04-22,Weakley,Tennessee,47183,9,0 +2020-04-23,Weakley,Tennessee,47183,9,0 +2020-04-24,Weakley,Tennessee,47183,10,0 +2020-04-25,Weakley,Tennessee,47183,16,0 +2020-04-26,Weakley,Tennessee,47183,19,0 +2020-04-27,Weakley,Tennessee,47183,18,0 +2020-04-28,Weakley,Tennessee,47183,18,0 +2020-04-29,Weakley,Tennessee,47183,21,0 +2020-04-30,Weakley,Tennessee,47183,23,0 +2020-05-01,Weakley,Tennessee,47183,23,0 +2020-05-02,Weakley,Tennessee,47183,23,0 +2020-05-03,Weakley,Tennessee,47183,23,0 +2020-05-04,Weakley,Tennessee,47183,24,0 +2020-05-05,Weakley,Tennessee,47183,25,0 +2020-05-06,Weakley,Tennessee,47183,24,0 +2020-05-07,Weakley,Tennessee,47183,24,0 +2020-05-08,Weakley,Tennessee,47183,24,0 +2020-05-09,Weakley,Tennessee,47183,24,0 +2020-05-10,Weakley,Tennessee,47183,24,0 +2020-05-11,Weakley,Tennessee,47183,24,0 +2020-05-12,Weakley,Tennessee,47183,24,0 +2020-05-13,Weakley,Tennessee,47183,24,0 +2020-05-14,Weakley,Tennessee,47183,24,0 +2020-05-15,Weakley,Tennessee,47183,24,0 +2020-05-16,Weakley,Tennessee,47183,24,0 +2020-05-17,Weakley,Tennessee,47183,24,0 +2020-05-18,Weakley,Tennessee,47183,26,0 +2020-05-19,Weakley,Tennessee,47183,27,0 +2020-05-20,Weakley,Tennessee,47183,27,0 +2020-05-21,Weakley,Tennessee,47183,26,0 +2020-05-22,Weakley,Tennessee,47183,26,0 +2020-05-23,Weakley,Tennessee,47183,26,0 +2020-05-24,Weakley,Tennessee,47183,26,0 +2020-05-25,Weakley,Tennessee,47183,26,0 +2020-05-26,Weakley,Tennessee,47183,26,0 +2020-05-27,Weakley,Tennessee,47183,26,0 +2020-05-28,Weakley,Tennessee,47183,26,0 +2020-05-29,Weakley,Tennessee,47183,26,0 +2020-05-30,Weakley,Tennessee,47183,26,0 +2020-05-31,Weakley,Tennessee,47183,26,0 +2020-06-01,Weakley,Tennessee,47183,26,0 +2020-06-02,Weakley,Tennessee,47183,26,0 +2020-06-03,Weakley,Tennessee,47183,26,0 +2020-06-04,Weakley,Tennessee,47183,26,0 +2020-06-05,Weakley,Tennessee,47183,26,0 +2020-06-06,Weakley,Tennessee,47183,26,0 +2020-06-07,Weakley,Tennessee,47183,26,0 +2020-06-08,Weakley,Tennessee,47183,26,0 +2020-06-09,Weakley,Tennessee,47183,26,0 +2020-06-10,Weakley,Tennessee,47183,26,0 +2020-06-11,Weakley,Tennessee,47183,27,0 +2020-06-12,Weakley,Tennessee,47183,28,0 +2020-06-13,Weakley,Tennessee,47183,30,0 +2020-06-14,Weakley,Tennessee,47183,30,0 +2020-06-15,Weakley,Tennessee,47183,30,0 +2020-06-16,Weakley,Tennessee,47183,32,0 +2020-06-17,Weakley,Tennessee,47183,35,0 +2020-06-18,Weakley,Tennessee,47183,36,0 +2020-06-19,Weakley,Tennessee,47183,39,0 +2020-06-20,Weakley,Tennessee,47183,41,0 +2020-06-21,Weakley,Tennessee,47183,42,0 +2020-06-22,Weakley,Tennessee,47183,43,0 +2020-06-23,Weakley,Tennessee,47183,44,0 +2020-06-24,Weakley,Tennessee,47183,44,1 +2020-06-25,Weakley,Tennessee,47183,45,1 +2020-06-26,Weakley,Tennessee,47183,48,1 +2020-06-27,Weakley,Tennessee,47183,49,1 +2020-06-28,Weakley,Tennessee,47183,49,1 +2020-06-29,Weakley,Tennessee,47183,56,1 +2020-06-30,Weakley,Tennessee,47183,60,1 +2020-07-01,Weakley,Tennessee,47183,61,1 +2020-07-02,Weakley,Tennessee,47183,62,1 +2020-07-03,Weakley,Tennessee,47183,63,1 +2020-07-04,Weakley,Tennessee,47183,63,1 +2020-07-05,Weakley,Tennessee,47183,64,1 +2020-07-06,Weakley,Tennessee,47183,64,1 +2020-07-07,Weakley,Tennessee,47183,66,1 +2020-07-08,Weakley,Tennessee,47183,67,1 +2020-07-09,Weakley,Tennessee,47183,69,1 +2020-03-25,White,Tennessee,47185,1,0 +2020-03-26,White,Tennessee,47185,1,0 +2020-03-27,White,Tennessee,47185,1,0 +2020-03-28,White,Tennessee,47185,1,0 +2020-03-29,White,Tennessee,47185,1,0 +2020-03-30,White,Tennessee,47185,1,0 +2020-03-31,White,Tennessee,47185,1,0 +2020-04-01,White,Tennessee,47185,2,0 +2020-04-02,White,Tennessee,47185,2,0 +2020-04-03,White,Tennessee,47185,2,0 +2020-04-04,White,Tennessee,47185,2,0 +2020-04-05,White,Tennessee,47185,2,0 +2020-04-06,White,Tennessee,47185,2,0 +2020-04-07,White,Tennessee,47185,2,0 +2020-04-08,White,Tennessee,47185,2,0 +2020-04-09,White,Tennessee,47185,3,0 +2020-04-10,White,Tennessee,47185,3,0 +2020-04-11,White,Tennessee,47185,3,0 +2020-04-12,White,Tennessee,47185,3,0 +2020-04-13,White,Tennessee,47185,4,0 +2020-04-14,White,Tennessee,47185,4,0 +2020-04-15,White,Tennessee,47185,4,0 +2020-04-16,White,Tennessee,47185,4,0 +2020-04-17,White,Tennessee,47185,4,0 +2020-04-18,White,Tennessee,47185,4,0 +2020-04-19,White,Tennessee,47185,4,0 +2020-04-20,White,Tennessee,47185,4,0 +2020-04-21,White,Tennessee,47185,4,0 +2020-04-22,White,Tennessee,47185,4,0 +2020-04-23,White,Tennessee,47185,4,0 +2020-04-24,White,Tennessee,47185,4,0 +2020-04-25,White,Tennessee,47185,4,0 +2020-04-26,White,Tennessee,47185,4,0 +2020-04-27,White,Tennessee,47185,4,0 +2020-04-28,White,Tennessee,47185,5,0 +2020-04-29,White,Tennessee,47185,6,0 +2020-04-30,White,Tennessee,47185,7,0 +2020-05-01,White,Tennessee,47185,7,0 +2020-05-02,White,Tennessee,47185,7,0 +2020-05-03,White,Tennessee,47185,14,0 +2020-05-04,White,Tennessee,47185,15,0 +2020-05-05,White,Tennessee,47185,15,0 +2020-05-06,White,Tennessee,47185,15,0 +2020-05-07,White,Tennessee,47185,16,0 +2020-05-08,White,Tennessee,47185,16,0 +2020-05-09,White,Tennessee,47185,16,0 +2020-05-10,White,Tennessee,47185,16,0 +2020-05-11,White,Tennessee,47185,16,0 +2020-05-12,White,Tennessee,47185,17,0 +2020-05-13,White,Tennessee,47185,17,0 +2020-05-14,White,Tennessee,47185,17,0 +2020-05-15,White,Tennessee,47185,17,0 +2020-05-16,White,Tennessee,47185,18,0 +2020-05-17,White,Tennessee,47185,18,0 +2020-05-18,White,Tennessee,47185,19,0 +2020-05-19,White,Tennessee,47185,21,0 +2020-05-20,White,Tennessee,47185,21,0 +2020-05-21,White,Tennessee,47185,22,0 +2020-05-22,White,Tennessee,47185,22,0 +2020-05-23,White,Tennessee,47185,24,0 +2020-05-24,White,Tennessee,47185,27,0 +2020-05-25,White,Tennessee,47185,27,0 +2020-05-26,White,Tennessee,47185,27,0 +2020-05-27,White,Tennessee,47185,28,0 +2020-05-28,White,Tennessee,47185,30,0 +2020-05-29,White,Tennessee,47185,31,0 +2020-05-30,White,Tennessee,47185,33,0 +2020-05-31,White,Tennessee,47185,33,0 +2020-06-01,White,Tennessee,47185,33,0 +2020-06-02,White,Tennessee,47185,34,0 +2020-06-03,White,Tennessee,47185,34,0 +2020-06-04,White,Tennessee,47185,33,0 +2020-06-05,White,Tennessee,47185,34,0 +2020-06-06,White,Tennessee,47185,38,0 +2020-06-07,White,Tennessee,47185,41,0 +2020-06-08,White,Tennessee,47185,43,0 +2020-06-09,White,Tennessee,47185,45,0 +2020-06-10,White,Tennessee,47185,44,0 +2020-06-11,White,Tennessee,47185,44,0 +2020-06-12,White,Tennessee,47185,46,0 +2020-06-13,White,Tennessee,47185,46,1 +2020-06-14,White,Tennessee,47185,48,1 +2020-06-15,White,Tennessee,47185,48,2 +2020-06-16,White,Tennessee,47185,49,2 +2020-06-17,White,Tennessee,47185,50,2 +2020-06-18,White,Tennessee,47185,51,2 +2020-06-19,White,Tennessee,47185,52,2 +2020-06-20,White,Tennessee,47185,53,3 +2020-06-21,White,Tennessee,47185,54,3 +2020-06-22,White,Tennessee,47185,54,3 +2020-06-23,White,Tennessee,47185,55,3 +2020-06-24,White,Tennessee,47185,55,3 +2020-06-25,White,Tennessee,47185,58,3 +2020-06-26,White,Tennessee,47185,60,3 +2020-06-27,White,Tennessee,47185,61,3 +2020-06-28,White,Tennessee,47185,61,3 +2020-06-29,White,Tennessee,47185,63,3 +2020-06-30,White,Tennessee,47185,63,3 +2020-07-01,White,Tennessee,47185,64,3 +2020-07-02,White,Tennessee,47185,65,3 +2020-07-03,White,Tennessee,47185,70,3 +2020-07-04,White,Tennessee,47185,70,3 +2020-07-05,White,Tennessee,47185,70,3 +2020-07-06,White,Tennessee,47185,73,3 +2020-07-07,White,Tennessee,47185,76,3 +2020-07-08,White,Tennessee,47185,77,3 +2020-07-09,White,Tennessee,47185,80,3 +2020-03-05,Williamson,Tennessee,47187,1,0 +2020-03-06,Williamson,Tennessee,47187,1,0 +2020-03-07,Williamson,Tennessee,47187,1,0 +2020-03-08,Williamson,Tennessee,47187,1,0 +2020-03-09,Williamson,Tennessee,47187,2,0 +2020-03-10,Williamson,Tennessee,47187,4,0 +2020-03-11,Williamson,Tennessee,47187,4,0 +2020-03-12,Williamson,Tennessee,47187,8,0 +2020-03-13,Williamson,Tennessee,47187,9,0 +2020-03-14,Williamson,Tennessee,47187,10,0 +2020-03-15,Williamson,Tennessee,47187,14,0 +2020-03-16,Williamson,Tennessee,47187,18,0 +2020-03-17,Williamson,Tennessee,47187,21,0 +2020-03-18,Williamson,Tennessee,47187,24,0 +2020-03-19,Williamson,Tennessee,47187,35,0 +2020-03-20,Williamson,Tennessee,47187,35,0 +2020-03-21,Williamson,Tennessee,47187,47,0 +2020-03-22,Williamson,Tennessee,47187,48,0 +2020-03-23,Williamson,Tennessee,47187,48,0 +2020-03-24,Williamson,Tennessee,47187,64,0 +2020-03-25,Williamson,Tennessee,47187,66,0 +2020-03-26,Williamson,Tennessee,47187,70,0 +2020-03-27,Williamson,Tennessee,47187,91,0 +2020-03-28,Williamson,Tennessee,47187,95,0 +2020-03-29,Williamson,Tennessee,47187,101,0 +2020-03-30,Williamson,Tennessee,47187,111,0 +2020-03-31,Williamson,Tennessee,47187,111,0 +2020-04-01,Williamson,Tennessee,47187,148,2 +2020-04-02,Williamson,Tennessee,47187,199,3 +2020-04-03,Williamson,Tennessee,47187,221,3 +2020-04-04,Williamson,Tennessee,47187,239,2 +2020-04-05,Williamson,Tennessee,47187,258,2 +2020-04-06,Williamson,Tennessee,47187,260,2 +2020-04-07,Williamson,Tennessee,47187,278,3 +2020-04-08,Williamson,Tennessee,47187,287,3 +2020-04-09,Williamson,Tennessee,47187,288,3 +2020-04-10,Williamson,Tennessee,47187,299,4 +2020-04-11,Williamson,Tennessee,47187,312,4 +2020-04-12,Williamson,Tennessee,47187,312,4 +2020-04-13,Williamson,Tennessee,47187,318,4 +2020-04-14,Williamson,Tennessee,47187,322,5 +2020-04-15,Williamson,Tennessee,47187,322,5 +2020-04-16,Williamson,Tennessee,47187,324,5 +2020-04-17,Williamson,Tennessee,47187,336,5 +2020-04-18,Williamson,Tennessee,47187,342,6 +2020-04-19,Williamson,Tennessee,47187,348,6 +2020-04-20,Williamson,Tennessee,47187,358,6 +2020-04-21,Williamson,Tennessee,47187,359,6 +2020-04-22,Williamson,Tennessee,47187,365,6 +2020-04-23,Williamson,Tennessee,47187,369,7 +2020-04-24,Williamson,Tennessee,47187,377,7 +2020-04-25,Williamson,Tennessee,47187,381,7 +2020-04-26,Williamson,Tennessee,47187,397,7 +2020-04-27,Williamson,Tennessee,47187,399,7 +2020-04-28,Williamson,Tennessee,47187,399,8 +2020-04-29,Williamson,Tennessee,47187,408,9 +2020-04-30,Williamson,Tennessee,47187,411,9 +2020-05-01,Williamson,Tennessee,47187,416,9 +2020-05-02,Williamson,Tennessee,47187,419,9 +2020-05-03,Williamson,Tennessee,47187,427,9 +2020-05-04,Williamson,Tennessee,47187,431,9 +2020-05-05,Williamson,Tennessee,47187,439,9 +2020-05-06,Williamson,Tennessee,47187,436,10 +2020-05-07,Williamson,Tennessee,47187,434,10 +2020-05-08,Williamson,Tennessee,47187,441,10 +2020-05-09,Williamson,Tennessee,47187,441,10 +2020-05-10,Williamson,Tennessee,47187,443,10 +2020-05-11,Williamson,Tennessee,47187,445,10 +2020-05-12,Williamson,Tennessee,47187,447,10 +2020-05-13,Williamson,Tennessee,47187,453,10 +2020-05-14,Williamson,Tennessee,47187,456,10 +2020-05-15,Williamson,Tennessee,47187,462,10 +2020-05-16,Williamson,Tennessee,47187,471,10 +2020-05-17,Williamson,Tennessee,47187,471,10 +2020-05-18,Williamson,Tennessee,47187,480,10 +2020-05-19,Williamson,Tennessee,47187,492,10 +2020-05-20,Williamson,Tennessee,47187,492,10 +2020-05-21,Williamson,Tennessee,47187,491,10 +2020-05-22,Williamson,Tennessee,47187,500,10 +2020-05-23,Williamson,Tennessee,47187,503,10 +2020-05-24,Williamson,Tennessee,47187,512,10 +2020-05-25,Williamson,Tennessee,47187,522,10 +2020-05-26,Williamson,Tennessee,47187,527,10 +2020-05-27,Williamson,Tennessee,47187,532,10 +2020-05-28,Williamson,Tennessee,47187,533,10 +2020-05-29,Williamson,Tennessee,47187,542,10 +2020-05-30,Williamson,Tennessee,47187,552,10 +2020-05-31,Williamson,Tennessee,47187,552,10 +2020-06-01,Williamson,Tennessee,47187,552,10 +2020-06-02,Williamson,Tennessee,47187,567,11 +2020-06-03,Williamson,Tennessee,47187,577,11 +2020-06-04,Williamson,Tennessee,47187,589,11 +2020-06-05,Williamson,Tennessee,47187,595,11 +2020-06-06,Williamson,Tennessee,47187,606,11 +2020-06-07,Williamson,Tennessee,47187,621,11 +2020-06-08,Williamson,Tennessee,47187,630,11 +2020-06-09,Williamson,Tennessee,47187,648,11 +2020-06-10,Williamson,Tennessee,47187,654,11 +2020-06-11,Williamson,Tennessee,47187,662,11 +2020-06-12,Williamson,Tennessee,47187,670,12 +2020-06-13,Williamson,Tennessee,47187,675,12 +2020-06-14,Williamson,Tennessee,47187,686,12 +2020-06-15,Williamson,Tennessee,47187,703,12 +2020-06-16,Williamson,Tennessee,47187,723,12 +2020-06-17,Williamson,Tennessee,47187,730,12 +2020-06-18,Williamson,Tennessee,47187,742,12 +2020-06-19,Williamson,Tennessee,47187,767,12 +2020-06-20,Williamson,Tennessee,47187,775,12 +2020-06-21,Williamson,Tennessee,47187,782,13 +2020-06-22,Williamson,Tennessee,47187,793,13 +2020-06-23,Williamson,Tennessee,47187,813,14 +2020-06-24,Williamson,Tennessee,47187,840,14 +2020-06-25,Williamson,Tennessee,47187,874,14 +2020-06-26,Williamson,Tennessee,47187,912,14 +2020-06-27,Williamson,Tennessee,47187,945,14 +2020-06-28,Williamson,Tennessee,47187,945,14 +2020-06-29,Williamson,Tennessee,47187,1001,14 +2020-06-30,Williamson,Tennessee,47187,1013,14 +2020-07-01,Williamson,Tennessee,47187,1090,14 +2020-07-02,Williamson,Tennessee,47187,1148,14 +2020-07-03,Williamson,Tennessee,47187,1226,14 +2020-07-04,Williamson,Tennessee,47187,1268,15 +2020-07-05,Williamson,Tennessee,47187,1313,15 +2020-07-06,Williamson,Tennessee,47187,1340,15 +2020-07-07,Williamson,Tennessee,47187,1420,15 +2020-07-08,Williamson,Tennessee,47187,1515,15 +2020-07-09,Williamson,Tennessee,47187,1591,15 +2020-03-19,Wilson,Tennessee,47189,2,0 +2020-03-20,Wilson,Tennessee,47189,3,0 +2020-03-21,Wilson,Tennessee,47189,3,0 +2020-03-22,Wilson,Tennessee,47189,3,0 +2020-03-23,Wilson,Tennessee,47189,3,0 +2020-03-24,Wilson,Tennessee,47189,7,0 +2020-03-25,Wilson,Tennessee,47189,10,0 +2020-03-26,Wilson,Tennessee,47189,13,0 +2020-03-27,Wilson,Tennessee,47189,20,0 +2020-03-28,Wilson,Tennessee,47189,20,0 +2020-03-29,Wilson,Tennessee,47189,27,0 +2020-03-30,Wilson,Tennessee,47189,32,0 +2020-03-31,Wilson,Tennessee,47189,32,0 +2020-04-01,Wilson,Tennessee,47189,45,0 +2020-04-02,Wilson,Tennessee,47189,62,0 +2020-04-03,Wilson,Tennessee,47189,71,0 +2020-04-04,Wilson,Tennessee,47189,82,0 +2020-04-05,Wilson,Tennessee,47189,93,0 +2020-04-06,Wilson,Tennessee,47189,97,0 +2020-04-07,Wilson,Tennessee,47189,113,0 +2020-04-08,Wilson,Tennessee,47189,117,0 +2020-04-09,Wilson,Tennessee,47189,123,0 +2020-04-10,Wilson,Tennessee,47189,129,1 +2020-04-11,Wilson,Tennessee,47189,135,1 +2020-04-12,Wilson,Tennessee,47189,135,1 +2020-04-13,Wilson,Tennessee,47189,143,1 +2020-04-14,Wilson,Tennessee,47189,145,1 +2020-04-15,Wilson,Tennessee,47189,155,1 +2020-04-16,Wilson,Tennessee,47189,161,1 +2020-04-17,Wilson,Tennessee,47189,171,1 +2020-04-18,Wilson,Tennessee,47189,173,1 +2020-04-19,Wilson,Tennessee,47189,181,1 +2020-04-20,Wilson,Tennessee,47189,185,1 +2020-04-21,Wilson,Tennessee,47189,187,1 +2020-04-22,Wilson,Tennessee,47189,194,1 +2020-04-23,Wilson,Tennessee,47189,196,1 +2020-04-24,Wilson,Tennessee,47189,197,1 +2020-04-25,Wilson,Tennessee,47189,199,3 +2020-04-26,Wilson,Tennessee,47189,233,3 +2020-04-27,Wilson,Tennessee,47189,246,3 +2020-04-28,Wilson,Tennessee,47189,249,3 +2020-04-29,Wilson,Tennessee,47189,250,4 +2020-04-30,Wilson,Tennessee,47189,253,4 +2020-05-01,Wilson,Tennessee,47189,259,5 +2020-05-02,Wilson,Tennessee,47189,268,5 +2020-05-03,Wilson,Tennessee,47189,273,5 +2020-05-04,Wilson,Tennessee,47189,276,5 +2020-05-05,Wilson,Tennessee,47189,281,5 +2020-05-06,Wilson,Tennessee,47189,287,7 +2020-05-07,Wilson,Tennessee,47189,288,6 +2020-05-08,Wilson,Tennessee,47189,290,6 +2020-05-09,Wilson,Tennessee,47189,297,6 +2020-05-10,Wilson,Tennessee,47189,300,6 +2020-05-11,Wilson,Tennessee,47189,302,7 +2020-05-12,Wilson,Tennessee,47189,306,8 +2020-05-13,Wilson,Tennessee,47189,309,8 +2020-05-14,Wilson,Tennessee,47189,312,8 +2020-05-15,Wilson,Tennessee,47189,316,8 +2020-05-16,Wilson,Tennessee,47189,318,8 +2020-05-17,Wilson,Tennessee,47189,318,8 +2020-05-18,Wilson,Tennessee,47189,327,8 +2020-05-19,Wilson,Tennessee,47189,338,8 +2020-05-20,Wilson,Tennessee,47189,338,8 +2020-05-21,Wilson,Tennessee,47189,344,8 +2020-05-22,Wilson,Tennessee,47189,343,8 +2020-05-23,Wilson,Tennessee,47189,343,8 +2020-05-24,Wilson,Tennessee,47189,355,8 +2020-05-25,Wilson,Tennessee,47189,363,8 +2020-05-26,Wilson,Tennessee,47189,371,8 +2020-05-27,Wilson,Tennessee,47189,382,8 +2020-05-28,Wilson,Tennessee,47189,387,8 +2020-05-29,Wilson,Tennessee,47189,389,8 +2020-05-30,Wilson,Tennessee,47189,407,8 +2020-05-31,Wilson,Tennessee,47189,407,8 +2020-06-01,Wilson,Tennessee,47189,407,8 +2020-06-02,Wilson,Tennessee,47189,430,8 +2020-06-03,Wilson,Tennessee,47189,442,8 +2020-06-04,Wilson,Tennessee,47189,449,8 +2020-06-05,Wilson,Tennessee,47189,459,8 +2020-06-06,Wilson,Tennessee,47189,469,9 +2020-06-07,Wilson,Tennessee,47189,475,9 +2020-06-08,Wilson,Tennessee,47189,477,9 +2020-06-09,Wilson,Tennessee,47189,488,10 +2020-06-10,Wilson,Tennessee,47189,499,10 +2020-06-11,Wilson,Tennessee,47189,501,11 +2020-06-12,Wilson,Tennessee,47189,511,11 +2020-06-13,Wilson,Tennessee,47189,512,12 +2020-06-14,Wilson,Tennessee,47189,515,12 +2020-06-15,Wilson,Tennessee,47189,518,13 +2020-06-16,Wilson,Tennessee,47189,537,14 +2020-06-17,Wilson,Tennessee,47189,544,14 +2020-06-18,Wilson,Tennessee,47189,565,14 +2020-06-19,Wilson,Tennessee,47189,580,14 +2020-06-20,Wilson,Tennessee,47189,595,15 +2020-06-21,Wilson,Tennessee,47189,616,15 +2020-06-22,Wilson,Tennessee,47189,625,15 +2020-06-23,Wilson,Tennessee,47189,649,15 +2020-06-24,Wilson,Tennessee,47189,658,15 +2020-06-25,Wilson,Tennessee,47189,683,15 +2020-06-26,Wilson,Tennessee,47189,708,15 +2020-06-27,Wilson,Tennessee,47189,725,16 +2020-06-28,Wilson,Tennessee,47189,725,16 +2020-06-29,Wilson,Tennessee,47189,762,17 +2020-06-30,Wilson,Tennessee,47189,779,17 +2020-07-01,Wilson,Tennessee,47189,829,17 +2020-07-02,Wilson,Tennessee,47189,859,17 +2020-07-03,Wilson,Tennessee,47189,891,17 +2020-07-04,Wilson,Tennessee,47189,910,17 +2020-07-05,Wilson,Tennessee,47189,941,17 +2020-07-06,Wilson,Tennessee,47189,963,17 +2020-07-07,Wilson,Tennessee,47189,999,17 +2020-07-08,Wilson,Tennessee,47189,1060,17 +2020-07-09,Wilson,Tennessee,47189,1099,17 +2020-04-01,Anderson,Texas,48001,1,0 +2020-04-02,Anderson,Texas,48001,1,0 +2020-04-03,Anderson,Texas,48001,1,0 +2020-04-04,Anderson,Texas,48001,1,0 +2020-04-05,Anderson,Texas,48001,1,0 +2020-04-06,Anderson,Texas,48001,1,0 +2020-04-07,Anderson,Texas,48001,1,0 +2020-04-08,Anderson,Texas,48001,1,0 +2020-04-09,Anderson,Texas,48001,2,0 +2020-04-10,Anderson,Texas,48001,3,0 +2020-04-11,Anderson,Texas,48001,3,0 +2020-04-12,Anderson,Texas,48001,3,0 +2020-04-13,Anderson,Texas,48001,3,0 +2020-04-14,Anderson,Texas,48001,3,0 +2020-04-15,Anderson,Texas,48001,4,0 +2020-04-16,Anderson,Texas,48001,6,0 +2020-04-17,Anderson,Texas,48001,6,0 +2020-04-18,Anderson,Texas,48001,6,0 +2020-04-19,Anderson,Texas,48001,8,0 +2020-04-20,Anderson,Texas,48001,8,0 +2020-04-21,Anderson,Texas,48001,10,0 +2020-04-22,Anderson,Texas,48001,14,0 +2020-04-23,Anderson,Texas,48001,14,0 +2020-04-24,Anderson,Texas,48001,16,0 +2020-04-25,Anderson,Texas,48001,16,0 +2020-04-26,Anderson,Texas,48001,18,0 +2020-04-27,Anderson,Texas,48001,19,0 +2020-04-28,Anderson,Texas,48001,23,0 +2020-04-29,Anderson,Texas,48001,23,0 +2020-04-30,Anderson,Texas,48001,29,0 +2020-05-01,Anderson,Texas,48001,30,0 +2020-05-02,Anderson,Texas,48001,32,0 +2020-05-03,Anderson,Texas,48001,32,0 +2020-05-04,Anderson,Texas,48001,32,0 +2020-05-05,Anderson,Texas,48001,34,0 +2020-05-06,Anderson,Texas,48001,38,0 +2020-05-07,Anderson,Texas,48001,40,0 +2020-05-08,Anderson,Texas,48001,41,0 +2020-05-09,Anderson,Texas,48001,41,0 +2020-05-10,Anderson,Texas,48001,41,0 +2020-05-11,Anderson,Texas,48001,41,0 +2020-05-12,Anderson,Texas,48001,50,0 +2020-05-13,Anderson,Texas,48001,50,0 +2020-05-14,Anderson,Texas,48001,51,0 +2020-05-15,Anderson,Texas,48001,52,0 +2020-05-16,Anderson,Texas,48001,54,0 +2020-05-17,Anderson,Texas,48001,54,0 +2020-05-18,Anderson,Texas,48001,54,0 +2020-05-19,Anderson,Texas,48001,60,0 +2020-05-20,Anderson,Texas,48001,61,0 +2020-05-21,Anderson,Texas,48001,63,0 +2020-05-22,Anderson,Texas,48001,63,0 +2020-05-23,Anderson,Texas,48001,66,0 +2020-05-24,Anderson,Texas,48001,66,0 +2020-05-25,Anderson,Texas,48001,66,0 +2020-05-26,Anderson,Texas,48001,66,0 +2020-05-27,Anderson,Texas,48001,66,0 +2020-05-28,Anderson,Texas,48001,66,0 +2020-05-29,Anderson,Texas,48001,72,0 +2020-05-30,Anderson,Texas,48001,72,0 +2020-05-31,Anderson,Texas,48001,72,0 +2020-06-01,Anderson,Texas,48001,72,0 +2020-06-02,Anderson,Texas,48001,76,0 +2020-06-03,Anderson,Texas,48001,78,0 +2020-06-04,Anderson,Texas,48001,85,0 +2020-06-05,Anderson,Texas,48001,87,0 +2020-06-06,Anderson,Texas,48001,85,0 +2020-06-07,Anderson,Texas,48001,85,0 +2020-06-08,Anderson,Texas,48001,85,0 +2020-06-09,Anderson,Texas,48001,91,0 +2020-06-10,Anderson,Texas,48001,91,0 +2020-06-11,Anderson,Texas,48001,95,0 +2020-06-12,Anderson,Texas,48001,95,0 +2020-06-13,Anderson,Texas,48001,102,0 +2020-06-14,Anderson,Texas,48001,102,0 +2020-06-15,Anderson,Texas,48001,102,0 +2020-06-16,Anderson,Texas,48001,989,2 +2020-06-17,Anderson,Texas,48001,990,2 +2020-06-18,Anderson,Texas,48001,1003,2 +2020-06-19,Anderson,Texas,48001,1007,2 +2020-06-20,Anderson,Texas,48001,1006,2 +2020-06-21,Anderson,Texas,48001,1006,2 +2020-06-22,Anderson,Texas,48001,1006,2 +2020-06-23,Anderson,Texas,48001,1009,2 +2020-06-24,Anderson,Texas,48001,1013,2 +2020-06-25,Anderson,Texas,48001,1014,2 +2020-06-26,Anderson,Texas,48001,1017,2 +2020-06-27,Anderson,Texas,48001,1017,2 +2020-06-28,Anderson,Texas,48001,1016,2 +2020-06-29,Anderson,Texas,48001,1016,2 +2020-06-30,Anderson,Texas,48001,1032,2 +2020-07-01,Anderson,Texas,48001,1040,2 +2020-07-02,Anderson,Texas,48001,1063,2 +2020-07-03,Anderson,Texas,48001,1072,2 +2020-07-04,Anderson,Texas,48001,1070,2 +2020-07-05,Anderson,Texas,48001,1082,2 +2020-07-06,Anderson,Texas,48001,1082,2 +2020-07-07,Anderson,Texas,48001,1108,2 +2020-07-08,Anderson,Texas,48001,1152,3 +2020-07-09,Anderson,Texas,48001,1533,3 +2020-04-04,Andrews,Texas,48003,1,0 +2020-04-05,Andrews,Texas,48003,6,0 +2020-04-06,Andrews,Texas,48003,6,0 +2020-04-07,Andrews,Texas,48003,10,0 +2020-04-08,Andrews,Texas,48003,10,0 +2020-04-09,Andrews,Texas,48003,10,0 +2020-04-10,Andrews,Texas,48003,11,0 +2020-04-11,Andrews,Texas,48003,11,0 +2020-04-12,Andrews,Texas,48003,11,0 +2020-04-13,Andrews,Texas,48003,12,0 +2020-04-14,Andrews,Texas,48003,13,0 +2020-04-15,Andrews,Texas,48003,13,0 +2020-04-16,Andrews,Texas,48003,19,0 +2020-04-17,Andrews,Texas,48003,19,0 +2020-04-18,Andrews,Texas,48003,19,0 +2020-04-19,Andrews,Texas,48003,19,0 +2020-04-20,Andrews,Texas,48003,19,0 +2020-04-21,Andrews,Texas,48003,19,0 +2020-04-22,Andrews,Texas,48003,19,0 +2020-04-23,Andrews,Texas,48003,19,0 +2020-04-24,Andrews,Texas,48003,19,0 +2020-04-25,Andrews,Texas,48003,19,0 +2020-04-26,Andrews,Texas,48003,19,0 +2020-04-27,Andrews,Texas,48003,19,0 +2020-04-28,Andrews,Texas,48003,19,0 +2020-04-29,Andrews,Texas,48003,19,0 +2020-04-30,Andrews,Texas,48003,19,0 +2020-05-01,Andrews,Texas,48003,20,0 +2020-05-02,Andrews,Texas,48003,20,0 +2020-05-03,Andrews,Texas,48003,21,0 +2020-05-04,Andrews,Texas,48003,21,0 +2020-05-05,Andrews,Texas,48003,21,0 +2020-05-06,Andrews,Texas,48003,21,0 +2020-05-07,Andrews,Texas,48003,21,0 +2020-05-08,Andrews,Texas,48003,21,0 +2020-05-09,Andrews,Texas,48003,21,0 +2020-05-10,Andrews,Texas,48003,21,0 +2020-05-11,Andrews,Texas,48003,21,0 +2020-05-12,Andrews,Texas,48003,22,0 +2020-05-13,Andrews,Texas,48003,22,0 +2020-05-14,Andrews,Texas,48003,22,0 +2020-05-15,Andrews,Texas,48003,22,0 +2020-05-16,Andrews,Texas,48003,22,0 +2020-05-17,Andrews,Texas,48003,22,0 +2020-05-18,Andrews,Texas,48003,22,0 +2020-05-19,Andrews,Texas,48003,22,0 +2020-05-20,Andrews,Texas,48003,22,0 +2020-05-21,Andrews,Texas,48003,22,0 +2020-05-22,Andrews,Texas,48003,22,0 +2020-05-23,Andrews,Texas,48003,23,0 +2020-05-24,Andrews,Texas,48003,24,0 +2020-05-25,Andrews,Texas,48003,27,0 +2020-05-26,Andrews,Texas,48003,27,0 +2020-05-27,Andrews,Texas,48003,27,0 +2020-05-28,Andrews,Texas,48003,27,0 +2020-05-29,Andrews,Texas,48003,27,0 +2020-05-30,Andrews,Texas,48003,27,0 +2020-05-31,Andrews,Texas,48003,27,0 +2020-06-01,Andrews,Texas,48003,27,0 +2020-06-02,Andrews,Texas,48003,27,0 +2020-06-03,Andrews,Texas,48003,27,0 +2020-06-04,Andrews,Texas,48003,27,0 +2020-06-05,Andrews,Texas,48003,27,0 +2020-06-06,Andrews,Texas,48003,27,0 +2020-06-07,Andrews,Texas,48003,27,0 +2020-06-08,Andrews,Texas,48003,27,0 +2020-06-09,Andrews,Texas,48003,27,0 +2020-06-10,Andrews,Texas,48003,27,0 +2020-06-11,Andrews,Texas,48003,27,0 +2020-06-12,Andrews,Texas,48003,27,0 +2020-06-13,Andrews,Texas,48003,28,0 +2020-06-14,Andrews,Texas,48003,28,0 +2020-06-15,Andrews,Texas,48003,28,0 +2020-06-16,Andrews,Texas,48003,30,0 +2020-06-17,Andrews,Texas,48003,30,0 +2020-06-18,Andrews,Texas,48003,33,0 +2020-06-19,Andrews,Texas,48003,35,0 +2020-06-20,Andrews,Texas,48003,42,0 +2020-06-21,Andrews,Texas,48003,44,0 +2020-06-22,Andrews,Texas,48003,44,0 +2020-06-23,Andrews,Texas,48003,44,0 +2020-06-24,Andrews,Texas,48003,46,0 +2020-06-25,Andrews,Texas,48003,51,0 +2020-06-26,Andrews,Texas,48003,56,0 +2020-06-27,Andrews,Texas,48003,63,0 +2020-06-28,Andrews,Texas,48003,73,0 +2020-06-29,Andrews,Texas,48003,73,0 +2020-06-30,Andrews,Texas,48003,75,0 +2020-07-01,Andrews,Texas,48003,82,0 +2020-07-02,Andrews,Texas,48003,89,0 +2020-07-03,Andrews,Texas,48003,90,0 +2020-07-04,Andrews,Texas,48003,98,1 +2020-07-05,Andrews,Texas,48003,103,1 +2020-07-06,Andrews,Texas,48003,103,1 +2020-07-07,Andrews,Texas,48003,103,1 +2020-07-08,Andrews,Texas,48003,120,2 +2020-07-09,Andrews,Texas,48003,132,2 +2020-03-26,Angelina,Texas,48005,1,0 +2020-03-27,Angelina,Texas,48005,2,0 +2020-03-28,Angelina,Texas,48005,1,0 +2020-03-29,Angelina,Texas,48005,3,0 +2020-03-30,Angelina,Texas,48005,3,0 +2020-03-31,Angelina,Texas,48005,4,0 +2020-04-01,Angelina,Texas,48005,5,0 +2020-04-02,Angelina,Texas,48005,5,0 +2020-04-03,Angelina,Texas,48005,8,0 +2020-04-04,Angelina,Texas,48005,10,0 +2020-04-05,Angelina,Texas,48005,10,0 +2020-04-06,Angelina,Texas,48005,14,0 +2020-04-07,Angelina,Texas,48005,14,0 +2020-04-08,Angelina,Texas,48005,15,0 +2020-04-09,Angelina,Texas,48005,15,0 +2020-04-10,Angelina,Texas,48005,16,0 +2020-04-11,Angelina,Texas,48005,16,0 +2020-04-12,Angelina,Texas,48005,16,0 +2020-04-13,Angelina,Texas,48005,16,0 +2020-04-14,Angelina,Texas,48005,17,0 +2020-04-15,Angelina,Texas,48005,20,0 +2020-04-16,Angelina,Texas,48005,20,0 +2020-04-17,Angelina,Texas,48005,23,0 +2020-04-18,Angelina,Texas,48005,23,0 +2020-04-19,Angelina,Texas,48005,23,0 +2020-04-20,Angelina,Texas,48005,23,0 +2020-04-21,Angelina,Texas,48005,27,0 +2020-04-22,Angelina,Texas,48005,30,0 +2020-04-23,Angelina,Texas,48005,31,0 +2020-04-24,Angelina,Texas,48005,36,0 +2020-04-25,Angelina,Texas,48005,36,0 +2020-04-26,Angelina,Texas,48005,36,0 +2020-04-27,Angelina,Texas,48005,36,0 +2020-04-28,Angelina,Texas,48005,46,0 +2020-04-29,Angelina,Texas,48005,49,0 +2020-04-30,Angelina,Texas,48005,53,0 +2020-05-01,Angelina,Texas,48005,54,0 +2020-05-02,Angelina,Texas,48005,55,0 +2020-05-03,Angelina,Texas,48005,55,0 +2020-05-04,Angelina,Texas,48005,55,0 +2020-05-05,Angelina,Texas,48005,79,0 +2020-05-06,Angelina,Texas,48005,86,0 +2020-05-07,Angelina,Texas,48005,93,0 +2020-05-08,Angelina,Texas,48005,100,0 +2020-05-09,Angelina,Texas,48005,100,0 +2020-05-10,Angelina,Texas,48005,100,0 +2020-05-11,Angelina,Texas,48005,100,0 +2020-05-12,Angelina,Texas,48005,117,1 +2020-05-13,Angelina,Texas,48005,117,1 +2020-05-14,Angelina,Texas,48005,119,1 +2020-05-15,Angelina,Texas,48005,131,1 +2020-05-16,Angelina,Texas,48005,139,1 +2020-05-17,Angelina,Texas,48005,139,1 +2020-05-18,Angelina,Texas,48005,139,1 +2020-05-19,Angelina,Texas,48005,154,1 +2020-05-20,Angelina,Texas,48005,154,2 +2020-05-21,Angelina,Texas,48005,168,2 +2020-05-22,Angelina,Texas,48005,168,2 +2020-05-23,Angelina,Texas,48005,175,2 +2020-05-24,Angelina,Texas,48005,175,2 +2020-05-25,Angelina,Texas,48005,175,2 +2020-05-26,Angelina,Texas,48005,175,2 +2020-05-27,Angelina,Texas,48005,193,4 +2020-05-28,Angelina,Texas,48005,201,4 +2020-05-29,Angelina,Texas,48005,203,4 +2020-05-30,Angelina,Texas,48005,205,4 +2020-05-31,Angelina,Texas,48005,205,4 +2020-06-01,Angelina,Texas,48005,205,4 +2020-06-02,Angelina,Texas,48005,215,5 +2020-06-03,Angelina,Texas,48005,232,5 +2020-06-04,Angelina,Texas,48005,232,5 +2020-06-05,Angelina,Texas,48005,232,5 +2020-06-06,Angelina,Texas,48005,237,5 +2020-06-07,Angelina,Texas,48005,237,5 +2020-06-08,Angelina,Texas,48005,237,5 +2020-06-09,Angelina,Texas,48005,237,5 +2020-06-10,Angelina,Texas,48005,281,5 +2020-06-11,Angelina,Texas,48005,281,5 +2020-06-12,Angelina,Texas,48005,309,5 +2020-06-13,Angelina,Texas,48005,309,5 +2020-06-14,Angelina,Texas,48005,309,5 +2020-06-15,Angelina,Texas,48005,309,5 +2020-06-16,Angelina,Texas,48005,331,5 +2020-06-17,Angelina,Texas,48005,352,5 +2020-06-18,Angelina,Texas,48005,352,6 +2020-06-19,Angelina,Texas,48005,366,6 +2020-06-20,Angelina,Texas,48005,380,6 +2020-06-21,Angelina,Texas,48005,380,6 +2020-06-22,Angelina,Texas,48005,380,6 +2020-06-23,Angelina,Texas,48005,415,6 +2020-06-24,Angelina,Texas,48005,426,6 +2020-06-25,Angelina,Texas,48005,445,6 +2020-06-26,Angelina,Texas,48005,464,6 +2020-06-27,Angelina,Texas,48005,464,6 +2020-06-28,Angelina,Texas,48005,464,6 +2020-06-29,Angelina,Texas,48005,464,6 +2020-06-30,Angelina,Texas,48005,476,6 +2020-07-01,Angelina,Texas,48005,519,9 +2020-07-02,Angelina,Texas,48005,541,9 +2020-07-03,Angelina,Texas,48005,541,9 +2020-07-04,Angelina,Texas,48005,541,9 +2020-07-05,Angelina,Texas,48005,541,9 +2020-07-06,Angelina,Texas,48005,541,9 +2020-07-07,Angelina,Texas,48005,610,9 +2020-07-08,Angelina,Texas,48005,645,9 +2020-07-09,Angelina,Texas,48005,683,9 +2020-04-05,Aransas,Texas,48007,1,0 +2020-04-06,Aransas,Texas,48007,1,0 +2020-04-07,Aransas,Texas,48007,1,0 +2020-04-08,Aransas,Texas,48007,1,0 +2020-04-09,Aransas,Texas,48007,2,0 +2020-04-10,Aransas,Texas,48007,2,0 +2020-04-11,Aransas,Texas,48007,2,0 +2020-04-12,Aransas,Texas,48007,2,0 +2020-04-13,Aransas,Texas,48007,2,0 +2020-04-14,Aransas,Texas,48007,2,0 +2020-04-15,Aransas,Texas,48007,2,0 +2020-04-16,Aransas,Texas,48007,2,0 +2020-04-17,Aransas,Texas,48007,2,0 +2020-04-18,Aransas,Texas,48007,2,0 +2020-04-19,Aransas,Texas,48007,2,0 +2020-04-20,Aransas,Texas,48007,2,0 +2020-04-21,Aransas,Texas,48007,2,0 +2020-04-22,Aransas,Texas,48007,2,0 +2020-04-23,Aransas,Texas,48007,2,0 +2020-04-24,Aransas,Texas,48007,2,0 +2020-04-25,Aransas,Texas,48007,2,0 +2020-04-26,Aransas,Texas,48007,2,0 +2020-04-27,Aransas,Texas,48007,2,0 +2020-04-28,Aransas,Texas,48007,2,0 +2020-04-29,Aransas,Texas,48007,2,0 +2020-04-30,Aransas,Texas,48007,2,0 +2020-05-01,Aransas,Texas,48007,2,0 +2020-05-02,Aransas,Texas,48007,2,0 +2020-05-03,Aransas,Texas,48007,2,0 +2020-05-04,Aransas,Texas,48007,2,0 +2020-05-05,Aransas,Texas,48007,2,0 +2020-05-06,Aransas,Texas,48007,2,0 +2020-05-07,Aransas,Texas,48007,2,0 +2020-05-08,Aransas,Texas,48007,2,0 +2020-05-09,Aransas,Texas,48007,2,0 +2020-05-10,Aransas,Texas,48007,2,0 +2020-05-11,Aransas,Texas,48007,2,0 +2020-05-12,Aransas,Texas,48007,2,0 +2020-05-13,Aransas,Texas,48007,2,0 +2020-05-14,Aransas,Texas,48007,3,0 +2020-05-15,Aransas,Texas,48007,3,0 +2020-05-16,Aransas,Texas,48007,3,0 +2020-05-17,Aransas,Texas,48007,3,0 +2020-05-18,Aransas,Texas,48007,3,0 +2020-05-19,Aransas,Texas,48007,3,0 +2020-05-20,Aransas,Texas,48007,4,0 +2020-05-21,Aransas,Texas,48007,5,0 +2020-05-22,Aransas,Texas,48007,5,0 +2020-05-23,Aransas,Texas,48007,5,0 +2020-05-24,Aransas,Texas,48007,5,0 +2020-05-25,Aransas,Texas,48007,5,0 +2020-05-26,Aransas,Texas,48007,5,0 +2020-05-27,Aransas,Texas,48007,5,0 +2020-05-28,Aransas,Texas,48007,5,0 +2020-05-29,Aransas,Texas,48007,5,0 +2020-05-30,Aransas,Texas,48007,5,0 +2020-05-31,Aransas,Texas,48007,5,0 +2020-06-01,Aransas,Texas,48007,5,0 +2020-06-02,Aransas,Texas,48007,5,0 +2020-06-03,Aransas,Texas,48007,5,0 +2020-06-04,Aransas,Texas,48007,5,0 +2020-06-05,Aransas,Texas,48007,5,0 +2020-06-06,Aransas,Texas,48007,5,0 +2020-06-07,Aransas,Texas,48007,5,0 +2020-06-08,Aransas,Texas,48007,5,0 +2020-06-09,Aransas,Texas,48007,5,0 +2020-06-10,Aransas,Texas,48007,5,0 +2020-06-11,Aransas,Texas,48007,5,0 +2020-06-12,Aransas,Texas,48007,6,0 +2020-06-13,Aransas,Texas,48007,6,0 +2020-06-14,Aransas,Texas,48007,6,0 +2020-06-15,Aransas,Texas,48007,6,0 +2020-06-16,Aransas,Texas,48007,7,0 +2020-06-17,Aransas,Texas,48007,7,0 +2020-06-18,Aransas,Texas,48007,7,0 +2020-06-19,Aransas,Texas,48007,7,0 +2020-06-20,Aransas,Texas,48007,7,0 +2020-06-21,Aransas,Texas,48007,7,0 +2020-06-22,Aransas,Texas,48007,7,0 +2020-06-23,Aransas,Texas,48007,10,0 +2020-06-24,Aransas,Texas,48007,10,0 +2020-06-25,Aransas,Texas,48007,10,0 +2020-06-26,Aransas,Texas,48007,12,0 +2020-06-27,Aransas,Texas,48007,16,0 +2020-06-28,Aransas,Texas,48007,17,0 +2020-06-29,Aransas,Texas,48007,20,0 +2020-06-30,Aransas,Texas,48007,23,0 +2020-07-01,Aransas,Texas,48007,24,0 +2020-07-02,Aransas,Texas,48007,28,0 +2020-07-03,Aransas,Texas,48007,31,0 +2020-07-04,Aransas,Texas,48007,34,0 +2020-07-05,Aransas,Texas,48007,35,0 +2020-07-06,Aransas,Texas,48007,43,0 +2020-07-07,Aransas,Texas,48007,44,0 +2020-07-08,Aransas,Texas,48007,46,0 +2020-07-09,Aransas,Texas,48007,49,0 +2020-05-15,Archer,Texas,48009,1,0 +2020-05-16,Archer,Texas,48009,1,0 +2020-05-17,Archer,Texas,48009,1,0 +2020-05-18,Archer,Texas,48009,1,0 +2020-05-19,Archer,Texas,48009,1,0 +2020-05-20,Archer,Texas,48009,1,0 +2020-05-21,Archer,Texas,48009,1,0 +2020-05-22,Archer,Texas,48009,1,0 +2020-05-23,Archer,Texas,48009,1,0 +2020-05-24,Archer,Texas,48009,1,0 +2020-05-25,Archer,Texas,48009,1,0 +2020-05-26,Archer,Texas,48009,1,0 +2020-05-27,Archer,Texas,48009,1,0 +2020-05-28,Archer,Texas,48009,1,0 +2020-05-29,Archer,Texas,48009,1,0 +2020-05-30,Archer,Texas,48009,1,0 +2020-05-31,Archer,Texas,48009,1,0 +2020-06-01,Archer,Texas,48009,1,0 +2020-06-02,Archer,Texas,48009,1,0 +2020-06-03,Archer,Texas,48009,1,0 +2020-06-04,Archer,Texas,48009,1,0 +2020-06-05,Archer,Texas,48009,2,0 +2020-06-06,Archer,Texas,48009,2,0 +2020-06-07,Archer,Texas,48009,2,0 +2020-06-08,Archer,Texas,48009,2,0 +2020-06-09,Archer,Texas,48009,3,0 +2020-06-10,Archer,Texas,48009,3,0 +2020-06-11,Archer,Texas,48009,3,0 +2020-06-12,Archer,Texas,48009,3,0 +2020-06-13,Archer,Texas,48009,3,0 +2020-06-14,Archer,Texas,48009,3,0 +2020-06-15,Archer,Texas,48009,3,0 +2020-06-16,Archer,Texas,48009,3,0 +2020-06-17,Archer,Texas,48009,3,0 +2020-06-18,Archer,Texas,48009,3,0 +2020-06-19,Archer,Texas,48009,3,0 +2020-06-20,Archer,Texas,48009,3,0 +2020-06-21,Archer,Texas,48009,3,0 +2020-06-22,Archer,Texas,48009,3,0 +2020-06-23,Archer,Texas,48009,4,0 +2020-06-24,Archer,Texas,48009,5,0 +2020-06-25,Archer,Texas,48009,5,0 +2020-06-26,Archer,Texas,48009,5,0 +2020-06-27,Archer,Texas,48009,6,0 +2020-06-28,Archer,Texas,48009,6,0 +2020-06-29,Archer,Texas,48009,6,0 +2020-06-30,Archer,Texas,48009,7,0 +2020-07-01,Archer,Texas,48009,7,0 +2020-07-02,Archer,Texas,48009,8,0 +2020-07-03,Archer,Texas,48009,8,0 +2020-07-04,Archer,Texas,48009,8,0 +2020-07-05,Archer,Texas,48009,8,0 +2020-07-06,Archer,Texas,48009,8,0 +2020-07-07,Archer,Texas,48009,10,0 +2020-07-08,Archer,Texas,48009,11,0 +2020-07-09,Archer,Texas,48009,11,0 +2020-04-14,Armstrong,Texas,48011,1,0 +2020-04-15,Armstrong,Texas,48011,1,0 +2020-04-16,Armstrong,Texas,48011,1,0 +2020-04-17,Armstrong,Texas,48011,1,0 +2020-04-18,Armstrong,Texas,48011,1,0 +2020-04-19,Armstrong,Texas,48011,1,0 +2020-04-20,Armstrong,Texas,48011,1,0 +2020-04-21,Armstrong,Texas,48011,1,0 +2020-04-22,Armstrong,Texas,48011,1,0 +2020-04-23,Armstrong,Texas,48011,1,0 +2020-04-24,Armstrong,Texas,48011,1,0 +2020-04-25,Armstrong,Texas,48011,2,0 +2020-04-26,Armstrong,Texas,48011,2,0 +2020-04-27,Armstrong,Texas,48011,2,0 +2020-04-28,Armstrong,Texas,48011,2,0 +2020-04-29,Armstrong,Texas,48011,2,0 +2020-04-30,Armstrong,Texas,48011,2,0 +2020-05-01,Armstrong,Texas,48011,2,0 +2020-05-02,Armstrong,Texas,48011,2,0 +2020-05-03,Armstrong,Texas,48011,2,0 +2020-05-04,Armstrong,Texas,48011,2,0 +2020-05-05,Armstrong,Texas,48011,2,0 +2020-05-06,Armstrong,Texas,48011,2,0 +2020-05-07,Armstrong,Texas,48011,2,0 +2020-05-08,Armstrong,Texas,48011,2,0 +2020-05-09,Armstrong,Texas,48011,2,0 +2020-05-10,Armstrong,Texas,48011,2,0 +2020-05-11,Armstrong,Texas,48011,2,0 +2020-05-12,Armstrong,Texas,48011,2,0 +2020-05-13,Armstrong,Texas,48011,2,0 +2020-05-14,Armstrong,Texas,48011,2,0 +2020-05-15,Armstrong,Texas,48011,2,0 +2020-05-16,Armstrong,Texas,48011,2,0 +2020-05-17,Armstrong,Texas,48011,2,0 +2020-05-18,Armstrong,Texas,48011,2,0 +2020-05-19,Armstrong,Texas,48011,2,0 +2020-05-20,Armstrong,Texas,48011,2,0 +2020-05-21,Armstrong,Texas,48011,2,0 +2020-05-22,Armstrong,Texas,48011,2,0 +2020-05-23,Armstrong,Texas,48011,2,0 +2020-05-24,Armstrong,Texas,48011,2,0 +2020-05-25,Armstrong,Texas,48011,2,0 +2020-05-26,Armstrong,Texas,48011,2,0 +2020-05-27,Armstrong,Texas,48011,2,0 +2020-05-28,Armstrong,Texas,48011,2,0 +2020-05-29,Armstrong,Texas,48011,3,0 +2020-05-30,Armstrong,Texas,48011,3,0 +2020-05-31,Armstrong,Texas,48011,3,0 +2020-06-01,Armstrong,Texas,48011,3,0 +2020-06-02,Armstrong,Texas,48011,3,0 +2020-06-03,Armstrong,Texas,48011,3,0 +2020-06-04,Armstrong,Texas,48011,3,0 +2020-06-05,Armstrong,Texas,48011,3,0 +2020-06-06,Armstrong,Texas,48011,3,0 +2020-06-07,Armstrong,Texas,48011,3,0 +2020-06-08,Armstrong,Texas,48011,3,0 +2020-06-09,Armstrong,Texas,48011,3,0 +2020-06-10,Armstrong,Texas,48011,3,0 +2020-06-11,Armstrong,Texas,48011,3,0 +2020-06-12,Armstrong,Texas,48011,2,0 +2020-06-13,Armstrong,Texas,48011,2,0 +2020-06-14,Armstrong,Texas,48011,2,0 +2020-06-15,Armstrong,Texas,48011,2,0 +2020-06-16,Armstrong,Texas,48011,2,0 +2020-06-17,Armstrong,Texas,48011,3,0 +2020-06-18,Armstrong,Texas,48011,3,0 +2020-06-19,Armstrong,Texas,48011,3,0 +2020-06-20,Armstrong,Texas,48011,3,0 +2020-06-21,Armstrong,Texas,48011,3,0 +2020-06-22,Armstrong,Texas,48011,3,0 +2020-06-23,Armstrong,Texas,48011,3,0 +2020-06-24,Armstrong,Texas,48011,3,0 +2020-06-25,Armstrong,Texas,48011,3,0 +2020-06-26,Armstrong,Texas,48011,3,0 +2020-06-27,Armstrong,Texas,48011,3,0 +2020-06-28,Armstrong,Texas,48011,3,0 +2020-06-29,Armstrong,Texas,48011,3,0 +2020-06-30,Armstrong,Texas,48011,3,0 +2020-07-01,Armstrong,Texas,48011,3,0 +2020-07-02,Armstrong,Texas,48011,3,0 +2020-07-03,Armstrong,Texas,48011,3,0 +2020-07-04,Armstrong,Texas,48011,3,0 +2020-07-05,Armstrong,Texas,48011,3,0 +2020-07-06,Armstrong,Texas,48011,3,0 +2020-07-07,Armstrong,Texas,48011,3,0 +2020-07-08,Armstrong,Texas,48011,3,0 +2020-07-09,Armstrong,Texas,48011,3,0 +2020-03-25,Atascosa,Texas,48013,2,0 +2020-03-26,Atascosa,Texas,48013,2,0 +2020-03-27,Atascosa,Texas,48013,2,0 +2020-03-28,Atascosa,Texas,48013,2,0 +2020-03-29,Atascosa,Texas,48013,2,0 +2020-03-30,Atascosa,Texas,48013,2,0 +2020-03-31,Atascosa,Texas,48013,2,0 +2020-04-01,Atascosa,Texas,48013,2,0 +2020-04-02,Atascosa,Texas,48013,2,0 +2020-04-03,Atascosa,Texas,48013,2,0 +2020-04-04,Atascosa,Texas,48013,2,0 +2020-04-05,Atascosa,Texas,48013,2,0 +2020-04-06,Atascosa,Texas,48013,4,0 +2020-04-07,Atascosa,Texas,48013,4,0 +2020-04-08,Atascosa,Texas,48013,5,0 +2020-04-09,Atascosa,Texas,48013,5,0 +2020-04-10,Atascosa,Texas,48013,8,0 +2020-04-11,Atascosa,Texas,48013,8,0 +2020-04-12,Atascosa,Texas,48013,9,0 +2020-04-13,Atascosa,Texas,48013,9,0 +2020-04-14,Atascosa,Texas,48013,9,0 +2020-04-15,Atascosa,Texas,48013,9,0 +2020-04-16,Atascosa,Texas,48013,9,0 +2020-04-17,Atascosa,Texas,48013,9,0 +2020-04-18,Atascosa,Texas,48013,10,1 +2020-04-19,Atascosa,Texas,48013,10,1 +2020-04-20,Atascosa,Texas,48013,12,1 +2020-04-21,Atascosa,Texas,48013,14,1 +2020-04-22,Atascosa,Texas,48013,14,1 +2020-04-23,Atascosa,Texas,48013,14,1 +2020-04-24,Atascosa,Texas,48013,14,1 +2020-04-25,Atascosa,Texas,48013,14,1 +2020-04-26,Atascosa,Texas,48013,14,1 +2020-04-27,Atascosa,Texas,48013,14,1 +2020-04-28,Atascosa,Texas,48013,16,1 +2020-04-29,Atascosa,Texas,48013,16,1 +2020-04-30,Atascosa,Texas,48013,19,1 +2020-05-01,Atascosa,Texas,48013,19,1 +2020-05-02,Atascosa,Texas,48013,19,1 +2020-05-03,Atascosa,Texas,48013,19,1 +2020-05-04,Atascosa,Texas,48013,19,1 +2020-05-05,Atascosa,Texas,48013,19,1 +2020-05-06,Atascosa,Texas,48013,21,1 +2020-05-07,Atascosa,Texas,48013,22,1 +2020-05-08,Atascosa,Texas,48013,22,1 +2020-05-09,Atascosa,Texas,48013,22,1 +2020-05-10,Atascosa,Texas,48013,22,1 +2020-05-11,Atascosa,Texas,48013,24,1 +2020-05-12,Atascosa,Texas,48013,27,1 +2020-05-13,Atascosa,Texas,48013,27,1 +2020-05-14,Atascosa,Texas,48013,27,1 +2020-05-15,Atascosa,Texas,48013,30,1 +2020-05-16,Atascosa,Texas,48013,30,1 +2020-05-17,Atascosa,Texas,48013,30,1 +2020-05-18,Atascosa,Texas,48013,30,1 +2020-05-19,Atascosa,Texas,48013,32,1 +2020-05-20,Atascosa,Texas,48013,32,1 +2020-05-21,Atascosa,Texas,48013,35,1 +2020-05-22,Atascosa,Texas,48013,35,1 +2020-05-23,Atascosa,Texas,48013,36,1 +2020-05-24,Atascosa,Texas,48013,36,2 +2020-05-25,Atascosa,Texas,48013,36,2 +2020-05-26,Atascosa,Texas,48013,36,2 +2020-05-27,Atascosa,Texas,48013,36,2 +2020-05-28,Atascosa,Texas,48013,36,2 +2020-05-29,Atascosa,Texas,48013,36,2 +2020-05-30,Atascosa,Texas,48013,36,2 +2020-05-31,Atascosa,Texas,48013,37,2 +2020-06-01,Atascosa,Texas,48013,37,2 +2020-06-02,Atascosa,Texas,48013,37,2 +2020-06-03,Atascosa,Texas,48013,37,2 +2020-06-04,Atascosa,Texas,48013,38,2 +2020-06-05,Atascosa,Texas,48013,41,2 +2020-06-06,Atascosa,Texas,48013,41,2 +2020-06-07,Atascosa,Texas,48013,42,2 +2020-06-08,Atascosa,Texas,48013,42,2 +2020-06-09,Atascosa,Texas,48013,42,2 +2020-06-10,Atascosa,Texas,48013,45,2 +2020-06-11,Atascosa,Texas,48013,43,2 +2020-06-12,Atascosa,Texas,48013,43,2 +2020-06-13,Atascosa,Texas,48013,42,2 +2020-06-14,Atascosa,Texas,48013,42,2 +2020-06-15,Atascosa,Texas,48013,42,2 +2020-06-16,Atascosa,Texas,48013,42,2 +2020-06-17,Atascosa,Texas,48013,42,2 +2020-06-18,Atascosa,Texas,48013,45,2 +2020-06-19,Atascosa,Texas,48013,62,2 +2020-06-20,Atascosa,Texas,48013,69,2 +2020-06-21,Atascosa,Texas,48013,70,2 +2020-06-22,Atascosa,Texas,48013,70,2 +2020-06-23,Atascosa,Texas,48013,79,2 +2020-06-24,Atascosa,Texas,48013,84,2 +2020-06-25,Atascosa,Texas,48013,87,2 +2020-06-26,Atascosa,Texas,48013,85,2 +2020-06-27,Atascosa,Texas,48013,87,2 +2020-06-28,Atascosa,Texas,48013,90,2 +2020-06-29,Atascosa,Texas,48013,90,2 +2020-06-30,Atascosa,Texas,48013,106,2 +2020-07-01,Atascosa,Texas,48013,108,2 +2020-07-02,Atascosa,Texas,48013,116,2 +2020-07-03,Atascosa,Texas,48013,116,2 +2020-07-04,Atascosa,Texas,48013,135,2 +2020-07-05,Atascosa,Texas,48013,135,2 +2020-07-06,Atascosa,Texas,48013,135,2 +2020-07-07,Atascosa,Texas,48013,148,2 +2020-07-08,Atascosa,Texas,48013,152,2 +2020-07-09,Atascosa,Texas,48013,188,2 +2020-03-25,Austin,Texas,48015,1,0 +2020-03-26,Austin,Texas,48015,1,0 +2020-03-27,Austin,Texas,48015,1,0 +2020-03-28,Austin,Texas,48015,1,0 +2020-03-29,Austin,Texas,48015,2,0 +2020-03-30,Austin,Texas,48015,2,0 +2020-03-31,Austin,Texas,48015,2,0 +2020-04-01,Austin,Texas,48015,2,0 +2020-04-02,Austin,Texas,48015,4,0 +2020-04-03,Austin,Texas,48015,4,0 +2020-04-04,Austin,Texas,48015,4,0 +2020-04-05,Austin,Texas,48015,5,0 +2020-04-06,Austin,Texas,48015,5,0 +2020-04-07,Austin,Texas,48015,6,0 +2020-04-08,Austin,Texas,48015,6,0 +2020-04-09,Austin,Texas,48015,7,0 +2020-04-10,Austin,Texas,48015,8,0 +2020-04-11,Austin,Texas,48015,8,0 +2020-04-12,Austin,Texas,48015,10,0 +2020-04-13,Austin,Texas,48015,11,0 +2020-04-14,Austin,Texas,48015,12,0 +2020-04-15,Austin,Texas,48015,12,0 +2020-04-16,Austin,Texas,48015,12,0 +2020-04-17,Austin,Texas,48015,12,0 +2020-04-18,Austin,Texas,48015,12,0 +2020-04-19,Austin,Texas,48015,12,0 +2020-04-20,Austin,Texas,48015,12,0 +2020-04-21,Austin,Texas,48015,12,0 +2020-04-22,Austin,Texas,48015,12,0 +2020-04-23,Austin,Texas,48015,12,0 +2020-04-24,Austin,Texas,48015,12,0 +2020-04-25,Austin,Texas,48015,12,0 +2020-04-26,Austin,Texas,48015,12,0 +2020-04-27,Austin,Texas,48015,12,0 +2020-04-28,Austin,Texas,48015,12,0 +2020-04-29,Austin,Texas,48015,13,0 +2020-04-30,Austin,Texas,48015,13,0 +2020-05-01,Austin,Texas,48015,13,0 +2020-05-02,Austin,Texas,48015,13,0 +2020-05-03,Austin,Texas,48015,13,0 +2020-05-04,Austin,Texas,48015,13,0 +2020-05-05,Austin,Texas,48015,13,0 +2020-05-06,Austin,Texas,48015,14,0 +2020-05-07,Austin,Texas,48015,14,0 +2020-05-08,Austin,Texas,48015,14,0 +2020-05-09,Austin,Texas,48015,15,0 +2020-05-10,Austin,Texas,48015,15,0 +2020-05-11,Austin,Texas,48015,15,0 +2020-05-12,Austin,Texas,48015,15,0 +2020-05-13,Austin,Texas,48015,15,0 +2020-05-14,Austin,Texas,48015,16,0 +2020-05-15,Austin,Texas,48015,17,0 +2020-05-16,Austin,Texas,48015,19,0 +2020-05-17,Austin,Texas,48015,19,0 +2020-05-18,Austin,Texas,48015,19,0 +2020-05-19,Austin,Texas,48015,20,0 +2020-05-20,Austin,Texas,48015,20,0 +2020-05-21,Austin,Texas,48015,21,0 +2020-05-22,Austin,Texas,48015,21,0 +2020-05-23,Austin,Texas,48015,21,0 +2020-05-24,Austin,Texas,48015,22,0 +2020-05-25,Austin,Texas,48015,22,0 +2020-05-26,Austin,Texas,48015,22,0 +2020-05-27,Austin,Texas,48015,24,0 +2020-05-28,Austin,Texas,48015,24,0 +2020-05-29,Austin,Texas,48015,25,0 +2020-05-30,Austin,Texas,48015,25,0 +2020-05-31,Austin,Texas,48015,26,0 +2020-06-01,Austin,Texas,48015,27,0 +2020-06-02,Austin,Texas,48015,27,0 +2020-06-03,Austin,Texas,48015,27,0 +2020-06-04,Austin,Texas,48015,27,0 +2020-06-05,Austin,Texas,48015,29,0 +2020-06-06,Austin,Texas,48015,29,0 +2020-06-07,Austin,Texas,48015,29,0 +2020-06-08,Austin,Texas,48015,29,0 +2020-06-09,Austin,Texas,48015,32,0 +2020-06-10,Austin,Texas,48015,31,0 +2020-06-11,Austin,Texas,48015,31,0 +2020-06-12,Austin,Texas,48015,33,0 +2020-06-13,Austin,Texas,48015,34,0 +2020-06-14,Austin,Texas,48015,34,0 +2020-06-15,Austin,Texas,48015,34,0 +2020-06-16,Austin,Texas,48015,36,0 +2020-06-17,Austin,Texas,48015,37,0 +2020-06-18,Austin,Texas,48015,42,0 +2020-06-19,Austin,Texas,48015,42,0 +2020-06-20,Austin,Texas,48015,43,0 +2020-06-21,Austin,Texas,48015,45,0 +2020-06-22,Austin,Texas,48015,48,0 +2020-06-23,Austin,Texas,48015,56,0 +2020-06-24,Austin,Texas,48015,57,0 +2020-06-25,Austin,Texas,48015,57,0 +2020-06-26,Austin,Texas,48015,60,0 +2020-06-27,Austin,Texas,48015,61,0 +2020-06-28,Austin,Texas,48015,67,0 +2020-06-29,Austin,Texas,48015,69,0 +2020-06-30,Austin,Texas,48015,71,0 +2020-07-01,Austin,Texas,48015,72,0 +2020-07-02,Austin,Texas,48015,88,0 +2020-07-03,Austin,Texas,48015,88,0 +2020-07-04,Austin,Texas,48015,88,0 +2020-07-05,Austin,Texas,48015,88,0 +2020-07-06,Austin,Texas,48015,92,0 +2020-07-07,Austin,Texas,48015,100,0 +2020-07-08,Austin,Texas,48015,105,0 +2020-07-09,Austin,Texas,48015,117,0 +2020-05-05,Bailey,Texas,48017,1,0 +2020-05-06,Bailey,Texas,48017,2,0 +2020-05-07,Bailey,Texas,48017,2,0 +2020-05-08,Bailey,Texas,48017,2,0 +2020-05-09,Bailey,Texas,48017,2,0 +2020-05-10,Bailey,Texas,48017,3,0 +2020-05-11,Bailey,Texas,48017,3,0 +2020-05-12,Bailey,Texas,48017,3,0 +2020-05-13,Bailey,Texas,48017,3,0 +2020-05-14,Bailey,Texas,48017,3,0 +2020-05-15,Bailey,Texas,48017,3,0 +2020-05-16,Bailey,Texas,48017,6,0 +2020-05-17,Bailey,Texas,48017,6,0 +2020-05-18,Bailey,Texas,48017,8,0 +2020-05-19,Bailey,Texas,48017,10,0 +2020-05-20,Bailey,Texas,48017,10,0 +2020-05-21,Bailey,Texas,48017,10,0 +2020-05-22,Bailey,Texas,48017,10,0 +2020-05-23,Bailey,Texas,48017,10,0 +2020-05-24,Bailey,Texas,48017,10,0 +2020-05-25,Bailey,Texas,48017,10,0 +2020-05-26,Bailey,Texas,48017,10,0 +2020-05-27,Bailey,Texas,48017,14,0 +2020-05-28,Bailey,Texas,48017,14,0 +2020-05-29,Bailey,Texas,48017,16,0 +2020-05-30,Bailey,Texas,48017,17,0 +2020-05-31,Bailey,Texas,48017,17,0 +2020-06-01,Bailey,Texas,48017,17,0 +2020-06-02,Bailey,Texas,48017,17,0 +2020-06-03,Bailey,Texas,48017,19,0 +2020-06-04,Bailey,Texas,48017,19,0 +2020-06-05,Bailey,Texas,48017,24,0 +2020-06-06,Bailey,Texas,48017,26,0 +2020-06-07,Bailey,Texas,48017,26,0 +2020-06-08,Bailey,Texas,48017,26,0 +2020-06-09,Bailey,Texas,48017,26,0 +2020-06-10,Bailey,Texas,48017,28,0 +2020-06-11,Bailey,Texas,48017,29,0 +2020-06-12,Bailey,Texas,48017,30,0 +2020-06-13,Bailey,Texas,48017,34,0 +2020-06-14,Bailey,Texas,48017,34,0 +2020-06-15,Bailey,Texas,48017,34,0 +2020-06-16,Bailey,Texas,48017,40,0 +2020-06-17,Bailey,Texas,48017,52,0 +2020-06-18,Bailey,Texas,48017,83,0 +2020-06-19,Bailey,Texas,48017,83,0 +2020-06-20,Bailey,Texas,48017,83,0 +2020-06-21,Bailey,Texas,48017,83,0 +2020-06-22,Bailey,Texas,48017,86,0 +2020-06-23,Bailey,Texas,48017,88,1 +2020-06-24,Bailey,Texas,48017,86,1 +2020-06-25,Bailey,Texas,48017,87,1 +2020-06-26,Bailey,Texas,48017,88,1 +2020-06-27,Bailey,Texas,48017,93,1 +2020-06-28,Bailey,Texas,48017,93,1 +2020-06-29,Bailey,Texas,48017,93,1 +2020-06-30,Bailey,Texas,48017,94,1 +2020-07-01,Bailey,Texas,48017,100,1 +2020-07-02,Bailey,Texas,48017,101,1 +2020-07-03,Bailey,Texas,48017,102,1 +2020-07-04,Bailey,Texas,48017,102,1 +2020-07-05,Bailey,Texas,48017,102,1 +2020-07-06,Bailey,Texas,48017,102,1 +2020-07-07,Bailey,Texas,48017,108,1 +2020-07-08,Bailey,Texas,48017,109,1 +2020-07-09,Bailey,Texas,48017,111,1 +2020-04-09,Bandera,Texas,48019,1,0 +2020-04-10,Bandera,Texas,48019,1,0 +2020-04-11,Bandera,Texas,48019,2,0 +2020-04-12,Bandera,Texas,48019,2,0 +2020-04-13,Bandera,Texas,48019,2,0 +2020-04-14,Bandera,Texas,48019,2,0 +2020-04-15,Bandera,Texas,48019,2,0 +2020-04-16,Bandera,Texas,48019,3,0 +2020-04-17,Bandera,Texas,48019,4,0 +2020-04-18,Bandera,Texas,48019,4,0 +2020-04-19,Bandera,Texas,48019,4,0 +2020-04-20,Bandera,Texas,48019,4,0 +2020-04-21,Bandera,Texas,48019,4,0 +2020-04-22,Bandera,Texas,48019,4,0 +2020-04-23,Bandera,Texas,48019,4,0 +2020-04-24,Bandera,Texas,48019,4,0 +2020-04-25,Bandera,Texas,48019,4,0 +2020-04-26,Bandera,Texas,48019,6,0 +2020-04-27,Bandera,Texas,48019,6,0 +2020-04-28,Bandera,Texas,48019,6,0 +2020-04-29,Bandera,Texas,48019,6,0 +2020-04-30,Bandera,Texas,48019,6,0 +2020-05-01,Bandera,Texas,48019,6,0 +2020-05-02,Bandera,Texas,48019,6,0 +2020-05-03,Bandera,Texas,48019,6,0 +2020-05-04,Bandera,Texas,48019,6,0 +2020-05-05,Bandera,Texas,48019,6,0 +2020-05-06,Bandera,Texas,48019,6,0 +2020-05-07,Bandera,Texas,48019,6,0 +2020-05-08,Bandera,Texas,48019,6,0 +2020-05-09,Bandera,Texas,48019,6,0 +2020-05-10,Bandera,Texas,48019,6,0 +2020-05-11,Bandera,Texas,48019,6,0 +2020-05-12,Bandera,Texas,48019,6,0 +2020-05-13,Bandera,Texas,48019,6,0 +2020-05-14,Bandera,Texas,48019,6,0 +2020-05-15,Bandera,Texas,48019,6,0 +2020-05-16,Bandera,Texas,48019,6,0 +2020-05-17,Bandera,Texas,48019,6,0 +2020-05-18,Bandera,Texas,48019,6,0 +2020-05-19,Bandera,Texas,48019,6,0 +2020-05-20,Bandera,Texas,48019,6,0 +2020-05-21,Bandera,Texas,48019,6,0 +2020-05-22,Bandera,Texas,48019,6,0 +2020-05-23,Bandera,Texas,48019,6,0 +2020-05-24,Bandera,Texas,48019,6,0 +2020-05-25,Bandera,Texas,48019,6,0 +2020-05-26,Bandera,Texas,48019,6,0 +2020-05-27,Bandera,Texas,48019,6,0 +2020-05-28,Bandera,Texas,48019,6,0 +2020-05-29,Bandera,Texas,48019,6,0 +2020-05-30,Bandera,Texas,48019,6,0 +2020-05-31,Bandera,Texas,48019,6,0 +2020-06-01,Bandera,Texas,48019,6,0 +2020-06-02,Bandera,Texas,48019,6,0 +2020-06-03,Bandera,Texas,48019,6,0 +2020-06-04,Bandera,Texas,48019,6,0 +2020-06-05,Bandera,Texas,48019,6,0 +2020-06-06,Bandera,Texas,48019,6,0 +2020-06-07,Bandera,Texas,48019,6,0 +2020-06-08,Bandera,Texas,48019,6,0 +2020-06-09,Bandera,Texas,48019,6,0 +2020-06-10,Bandera,Texas,48019,6,0 +2020-06-11,Bandera,Texas,48019,6,0 +2020-06-12,Bandera,Texas,48019,7,0 +2020-06-13,Bandera,Texas,48019,7,0 +2020-06-14,Bandera,Texas,48019,7,0 +2020-06-15,Bandera,Texas,48019,7,0 +2020-06-16,Bandera,Texas,48019,7,0 +2020-06-17,Bandera,Texas,48019,7,0 +2020-06-18,Bandera,Texas,48019,8,0 +2020-06-19,Bandera,Texas,48019,13,0 +2020-06-20,Bandera,Texas,48019,15,0 +2020-06-21,Bandera,Texas,48019,15,0 +2020-06-22,Bandera,Texas,48019,15,0 +2020-06-23,Bandera,Texas,48019,16,0 +2020-06-24,Bandera,Texas,48019,15,0 +2020-06-25,Bandera,Texas,48019,15,0 +2020-06-26,Bandera,Texas,48019,16,0 +2020-06-27,Bandera,Texas,48019,16,0 +2020-06-28,Bandera,Texas,48019,16,0 +2020-06-29,Bandera,Texas,48019,16,0 +2020-06-30,Bandera,Texas,48019,16,0 +2020-07-01,Bandera,Texas,48019,21,0 +2020-07-02,Bandera,Texas,48019,22,0 +2020-07-03,Bandera,Texas,48019,23,0 +2020-07-04,Bandera,Texas,48019,27,0 +2020-07-05,Bandera,Texas,48019,27,0 +2020-07-06,Bandera,Texas,48019,27,0 +2020-07-07,Bandera,Texas,48019,27,0 +2020-07-08,Bandera,Texas,48019,27,0 +2020-07-09,Bandera,Texas,48019,33,0 +2020-03-21,Bastrop,Texas,48021,1,0 +2020-03-22,Bastrop,Texas,48021,1,0 +2020-03-23,Bastrop,Texas,48021,1,0 +2020-03-24,Bastrop,Texas,48021,1,0 +2020-03-25,Bastrop,Texas,48021,1,0 +2020-03-26,Bastrop,Texas,48021,2,0 +2020-03-27,Bastrop,Texas,48021,2,0 +2020-03-28,Bastrop,Texas,48021,4,0 +2020-03-29,Bastrop,Texas,48021,5,0 +2020-03-30,Bastrop,Texas,48021,6,0 +2020-03-31,Bastrop,Texas,48021,6,0 +2020-04-01,Bastrop,Texas,48021,8,0 +2020-04-02,Bastrop,Texas,48021,10,0 +2020-04-03,Bastrop,Texas,48021,10,0 +2020-04-04,Bastrop,Texas,48021,10,0 +2020-04-05,Bastrop,Texas,48021,9,0 +2020-04-06,Bastrop,Texas,48021,11,1 +2020-04-07,Bastrop,Texas,48021,15,1 +2020-04-08,Bastrop,Texas,48021,18,1 +2020-04-09,Bastrop,Texas,48021,18,1 +2020-04-10,Bastrop,Texas,48021,26,1 +2020-04-11,Bastrop,Texas,48021,27,1 +2020-04-12,Bastrop,Texas,48021,27,1 +2020-04-13,Bastrop,Texas,48021,27,1 +2020-04-14,Bastrop,Texas,48021,34,1 +2020-04-15,Bastrop,Texas,48021,38,1 +2020-04-16,Bastrop,Texas,48021,43,1 +2020-04-17,Bastrop,Texas,48021,44,2 +2020-04-18,Bastrop,Texas,48021,44,2 +2020-04-19,Bastrop,Texas,48021,44,2 +2020-04-20,Bastrop,Texas,48021,48,2 +2020-04-21,Bastrop,Texas,48021,50,2 +2020-04-22,Bastrop,Texas,48021,52,2 +2020-04-23,Bastrop,Texas,48021,53,2 +2020-04-24,Bastrop,Texas,48021,57,2 +2020-04-25,Bastrop,Texas,48021,57,2 +2020-04-26,Bastrop,Texas,48021,58,2 +2020-04-27,Bastrop,Texas,48021,59,2 +2020-04-28,Bastrop,Texas,48021,59,2 +2020-04-29,Bastrop,Texas,48021,67,2 +2020-04-30,Bastrop,Texas,48021,73,2 +2020-05-01,Bastrop,Texas,48021,82,2 +2020-05-02,Bastrop,Texas,48021,83,2 +2020-05-03,Bastrop,Texas,48021,86,2 +2020-05-04,Bastrop,Texas,48021,89,2 +2020-05-05,Bastrop,Texas,48021,98,2 +2020-05-06,Bastrop,Texas,48021,100,2 +2020-05-07,Bastrop,Texas,48021,107,2 +2020-05-08,Bastrop,Texas,48021,106,2 +2020-05-09,Bastrop,Texas,48021,108,2 +2020-05-10,Bastrop,Texas,48021,109,2 +2020-05-11,Bastrop,Texas,48021,110,2 +2020-05-12,Bastrop,Texas,48021,117,2 +2020-05-13,Bastrop,Texas,48021,120,2 +2020-05-14,Bastrop,Texas,48021,125,2 +2020-05-15,Bastrop,Texas,48021,128,2 +2020-05-16,Bastrop,Texas,48021,132,2 +2020-05-17,Bastrop,Texas,48021,132,2 +2020-05-18,Bastrop,Texas,48021,132,2 +2020-05-19,Bastrop,Texas,48021,148,2 +2020-05-20,Bastrop,Texas,48021,152,2 +2020-05-21,Bastrop,Texas,48021,161,2 +2020-05-22,Bastrop,Texas,48021,161,2 +2020-05-23,Bastrop,Texas,48021,173,2 +2020-05-24,Bastrop,Texas,48021,177,2 +2020-05-25,Bastrop,Texas,48021,182,2 +2020-05-26,Bastrop,Texas,48021,184,2 +2020-05-27,Bastrop,Texas,48021,190,2 +2020-05-28,Bastrop,Texas,48021,196,3 +2020-05-29,Bastrop,Texas,48021,200,3 +2020-05-30,Bastrop,Texas,48021,204,3 +2020-05-31,Bastrop,Texas,48021,211,3 +2020-06-01,Bastrop,Texas,48021,212,3 +2020-06-02,Bastrop,Texas,48021,220,3 +2020-06-03,Bastrop,Texas,48021,231,3 +2020-06-04,Bastrop,Texas,48021,240,3 +2020-06-05,Bastrop,Texas,48021,245,3 +2020-06-06,Bastrop,Texas,48021,250,3 +2020-06-07,Bastrop,Texas,48021,255,3 +2020-06-08,Bastrop,Texas,48021,255,3 +2020-06-09,Bastrop,Texas,48021,270,4 +2020-06-10,Bastrop,Texas,48021,279,4 +2020-06-11,Bastrop,Texas,48021,285,4 +2020-06-12,Bastrop,Texas,48021,288,4 +2020-06-13,Bastrop,Texas,48021,293,4 +2020-06-14,Bastrop,Texas,48021,295,4 +2020-06-15,Bastrop,Texas,48021,295,4 +2020-06-16,Bastrop,Texas,48021,313,4 +2020-06-17,Bastrop,Texas,48021,338,4 +2020-06-18,Bastrop,Texas,48021,346,4 +2020-06-19,Bastrop,Texas,48021,338,4 +2020-06-20,Bastrop,Texas,48021,340,4 +2020-06-21,Bastrop,Texas,48021,340,4 +2020-06-22,Bastrop,Texas,48021,363,4 +2020-06-23,Bastrop,Texas,48021,369,4 +2020-06-24,Bastrop,Texas,48021,373,5 +2020-06-25,Bastrop,Texas,48021,386,6 +2020-06-26,Bastrop,Texas,48021,407,6 +2020-06-27,Bastrop,Texas,48021,415,6 +2020-06-28,Bastrop,Texas,48021,417,6 +2020-06-29,Bastrop,Texas,48021,439,6 +2020-06-30,Bastrop,Texas,48021,442,6 +2020-07-01,Bastrop,Texas,48021,446,6 +2020-07-02,Bastrop,Texas,48021,458,6 +2020-07-03,Bastrop,Texas,48021,457,6 +2020-07-04,Bastrop,Texas,48021,468,6 +2020-07-05,Bastrop,Texas,48021,468,6 +2020-07-06,Bastrop,Texas,48021,522,6 +2020-07-07,Bastrop,Texas,48021,522,6 +2020-07-08,Bastrop,Texas,48021,619,7 +2020-07-09,Bastrop,Texas,48021,659,8 +2020-06-05,Baylor,Texas,48023,3,0 +2020-06-06,Baylor,Texas,48023,1,0 +2020-06-07,Baylor,Texas,48023,1,0 +2020-06-08,Baylor,Texas,48023,1,0 +2020-06-09,Baylor,Texas,48023,1,0 +2020-06-10,Baylor,Texas,48023,1,0 +2020-06-11,Baylor,Texas,48023,1,0 +2020-06-12,Baylor,Texas,48023,1,0 +2020-06-13,Baylor,Texas,48023,1,0 +2020-06-14,Baylor,Texas,48023,1,0 +2020-06-15,Baylor,Texas,48023,1,0 +2020-06-16,Baylor,Texas,48023,1,0 +2020-06-17,Baylor,Texas,48023,1,0 +2020-06-18,Baylor,Texas,48023,1,0 +2020-06-19,Baylor,Texas,48023,1,0 +2020-06-20,Baylor,Texas,48023,1,0 +2020-06-21,Baylor,Texas,48023,1,0 +2020-06-22,Baylor,Texas,48023,1,0 +2020-06-23,Baylor,Texas,48023,1,0 +2020-06-24,Baylor,Texas,48023,2,0 +2020-06-25,Baylor,Texas,48023,2,0 +2020-06-26,Baylor,Texas,48023,2,0 +2020-06-27,Baylor,Texas,48023,1,0 +2020-06-28,Baylor,Texas,48023,1,0 +2020-06-29,Baylor,Texas,48023,1,0 +2020-06-30,Baylor,Texas,48023,1,0 +2020-07-01,Baylor,Texas,48023,1,0 +2020-07-02,Baylor,Texas,48023,1,0 +2020-07-03,Baylor,Texas,48023,1,0 +2020-07-04,Baylor,Texas,48023,1,0 +2020-07-05,Baylor,Texas,48023,1,0 +2020-07-06,Baylor,Texas,48023,1,0 +2020-07-07,Baylor,Texas,48023,1,0 +2020-07-08,Baylor,Texas,48023,1,0 +2020-07-09,Baylor,Texas,48023,1,0 +2020-04-08,Bee,Texas,48025,1,0 +2020-04-09,Bee,Texas,48025,1,0 +2020-04-10,Bee,Texas,48025,1,0 +2020-04-11,Bee,Texas,48025,2,0 +2020-04-12,Bee,Texas,48025,2,0 +2020-04-13,Bee,Texas,48025,2,0 +2020-04-14,Bee,Texas,48025,3,0 +2020-04-15,Bee,Texas,48025,3,0 +2020-04-16,Bee,Texas,48025,3,0 +2020-04-17,Bee,Texas,48025,5,0 +2020-04-18,Bee,Texas,48025,5,0 +2020-04-19,Bee,Texas,48025,5,0 +2020-04-20,Bee,Texas,48025,5,0 +2020-04-21,Bee,Texas,48025,5,0 +2020-04-22,Bee,Texas,48025,5,0 +2020-04-23,Bee,Texas,48025,6,0 +2020-04-24,Bee,Texas,48025,6,0 +2020-04-25,Bee,Texas,48025,6,0 +2020-04-26,Bee,Texas,48025,6,0 +2020-04-27,Bee,Texas,48025,6,0 +2020-04-28,Bee,Texas,48025,6,0 +2020-04-29,Bee,Texas,48025,6,0 +2020-04-30,Bee,Texas,48025,6,0 +2020-05-01,Bee,Texas,48025,6,0 +2020-05-02,Bee,Texas,48025,6,0 +2020-05-03,Bee,Texas,48025,6,0 +2020-05-04,Bee,Texas,48025,6,0 +2020-05-05,Bee,Texas,48025,6,0 +2020-05-06,Bee,Texas,48025,6,0 +2020-05-07,Bee,Texas,48025,6,0 +2020-05-08,Bee,Texas,48025,6,0 +2020-05-09,Bee,Texas,48025,6,0 +2020-05-10,Bee,Texas,48025,6,0 +2020-05-11,Bee,Texas,48025,6,0 +2020-05-12,Bee,Texas,48025,6,0 +2020-05-13,Bee,Texas,48025,6,0 +2020-05-14,Bee,Texas,48025,6,0 +2020-05-15,Bee,Texas,48025,6,0 +2020-05-16,Bee,Texas,48025,6,0 +2020-05-17,Bee,Texas,48025,6,0 +2020-05-18,Bee,Texas,48025,6,0 +2020-05-19,Bee,Texas,48025,6,0 +2020-05-20,Bee,Texas,48025,7,0 +2020-05-21,Bee,Texas,48025,8,0 +2020-05-22,Bee,Texas,48025,8,0 +2020-05-23,Bee,Texas,48025,8,0 +2020-05-24,Bee,Texas,48025,9,0 +2020-05-25,Bee,Texas,48025,9,0 +2020-05-26,Bee,Texas,48025,9,0 +2020-05-27,Bee,Texas,48025,9,0 +2020-05-28,Bee,Texas,48025,9,0 +2020-05-29,Bee,Texas,48025,9,0 +2020-05-30,Bee,Texas,48025,9,0 +2020-05-31,Bee,Texas,48025,9,0 +2020-06-01,Bee,Texas,48025,9,0 +2020-06-02,Bee,Texas,48025,10,0 +2020-06-03,Bee,Texas,48025,11,0 +2020-06-04,Bee,Texas,48025,11,0 +2020-06-05,Bee,Texas,48025,18,0 +2020-06-06,Bee,Texas,48025,22,0 +2020-06-07,Bee,Texas,48025,22,0 +2020-06-08,Bee,Texas,48025,22,0 +2020-06-09,Bee,Texas,48025,24,0 +2020-06-10,Bee,Texas,48025,26,0 +2020-06-11,Bee,Texas,48025,27,0 +2020-06-12,Bee,Texas,48025,31,0 +2020-06-13,Bee,Texas,48025,31,0 +2020-06-14,Bee,Texas,48025,31,0 +2020-06-15,Bee,Texas,48025,31,0 +2020-06-16,Bee,Texas,48025,32,0 +2020-06-17,Bee,Texas,48025,32,0 +2020-06-18,Bee,Texas,48025,32,0 +2020-06-19,Bee,Texas,48025,33,0 +2020-06-20,Bee,Texas,48025,34,0 +2020-06-21,Bee,Texas,48025,36,0 +2020-06-22,Bee,Texas,48025,36,0 +2020-06-23,Bee,Texas,48025,36,0 +2020-06-24,Bee,Texas,48025,36,0 +2020-06-25,Bee,Texas,48025,38,0 +2020-06-26,Bee,Texas,48025,39,0 +2020-06-27,Bee,Texas,48025,43,0 +2020-06-28,Bee,Texas,48025,43,0 +2020-06-29,Bee,Texas,48025,46,0 +2020-06-30,Bee,Texas,48025,46,0 +2020-07-01,Bee,Texas,48025,47,0 +2020-07-02,Bee,Texas,48025,51,0 +2020-07-03,Bee,Texas,48025,55,0 +2020-07-04,Bee,Texas,48025,59,0 +2020-07-05,Bee,Texas,48025,69,0 +2020-07-06,Bee,Texas,48025,85,0 +2020-07-07,Bee,Texas,48025,91,0 +2020-07-08,Bee,Texas,48025,98,0 +2020-07-09,Bee,Texas,48025,135,0 +2020-03-13,Bell,Texas,48027,1,0 +2020-03-14,Bell,Texas,48027,1,0 +2020-03-15,Bell,Texas,48027,1,0 +2020-03-16,Bell,Texas,48027,1,0 +2020-03-17,Bell,Texas,48027,1,0 +2020-03-18,Bell,Texas,48027,1,0 +2020-03-19,Bell,Texas,48027,1,0 +2020-03-20,Bell,Texas,48027,2,0 +2020-03-21,Bell,Texas,48027,8,0 +2020-03-22,Bell,Texas,48027,8,0 +2020-03-23,Bell,Texas,48027,8,0 +2020-03-24,Bell,Texas,48027,8,0 +2020-03-25,Bell,Texas,48027,18,0 +2020-03-26,Bell,Texas,48027,20,1 +2020-03-27,Bell,Texas,48027,25,1 +2020-03-28,Bell,Texas,48027,28,1 +2020-03-29,Bell,Texas,48027,28,1 +2020-03-30,Bell,Texas,48027,28,1 +2020-03-31,Bell,Texas,48027,36,1 +2020-04-01,Bell,Texas,48027,44,1 +2020-04-02,Bell,Texas,48027,46,1 +2020-04-03,Bell,Texas,48027,51,1 +2020-04-04,Bell,Texas,48027,51,1 +2020-04-05,Bell,Texas,48027,58,1 +2020-04-06,Bell,Texas,48027,68,2 +2020-04-07,Bell,Texas,48027,68,2 +2020-04-08,Bell,Texas,48027,74,2 +2020-04-09,Bell,Texas,48027,84,3 +2020-04-10,Bell,Texas,48027,84,3 +2020-04-11,Bell,Texas,48027,91,3 +2020-04-12,Bell,Texas,48027,101,3 +2020-04-13,Bell,Texas,48027,101,3 +2020-04-14,Bell,Texas,48027,107,3 +2020-04-15,Bell,Texas,48027,110,3 +2020-04-16,Bell,Texas,48027,115,3 +2020-04-17,Bell,Texas,48027,124,3 +2020-04-18,Bell,Texas,48027,126,3 +2020-04-19,Bell,Texas,48027,126,3 +2020-04-20,Bell,Texas,48027,126,3 +2020-04-21,Bell,Texas,48027,135,3 +2020-04-22,Bell,Texas,48027,145,3 +2020-04-23,Bell,Texas,48027,153,3 +2020-04-24,Bell,Texas,48027,161,3 +2020-04-25,Bell,Texas,48027,165,3 +2020-04-26,Bell,Texas,48027,165,3 +2020-04-27,Bell,Texas,48027,165,3 +2020-04-28,Bell,Texas,48027,173,3 +2020-04-29,Bell,Texas,48027,180,3 +2020-04-30,Bell,Texas,48027,189,3 +2020-05-01,Bell,Texas,48027,189,3 +2020-05-02,Bell,Texas,48027,193,3 +2020-05-03,Bell,Texas,48027,194,3 +2020-05-04,Bell,Texas,48027,194,3 +2020-05-05,Bell,Texas,48027,210,3 +2020-05-06,Bell,Texas,48027,210,3 +2020-05-07,Bell,Texas,48027,213,3 +2020-05-08,Bell,Texas,48027,218,3 +2020-05-09,Bell,Texas,48027,220,3 +2020-05-10,Bell,Texas,48027,220,3 +2020-05-11,Bell,Texas,48027,220,3 +2020-05-12,Bell,Texas,48027,223,3 +2020-05-13,Bell,Texas,48027,231,3 +2020-05-14,Bell,Texas,48027,237,3 +2020-05-15,Bell,Texas,48027,242,3 +2020-05-16,Bell,Texas,48027,248,3 +2020-05-17,Bell,Texas,48027,248,3 +2020-05-18,Bell,Texas,48027,248,3 +2020-05-19,Bell,Texas,48027,260,3 +2020-05-20,Bell,Texas,48027,267,3 +2020-05-21,Bell,Texas,48027,282,3 +2020-05-22,Bell,Texas,48027,282,3 +2020-05-23,Bell,Texas,48027,298,3 +2020-05-24,Bell,Texas,48027,298,3 +2020-05-25,Bell,Texas,48027,298,3 +2020-05-26,Bell,Texas,48027,309,3 +2020-05-27,Bell,Texas,48027,329,3 +2020-05-28,Bell,Texas,48027,335,3 +2020-05-29,Bell,Texas,48027,345,3 +2020-05-30,Bell,Texas,48027,356,4 +2020-05-31,Bell,Texas,48027,362,4 +2020-06-01,Bell,Texas,48027,378,4 +2020-06-02,Bell,Texas,48027,391,4 +2020-06-03,Bell,Texas,48027,411,5 +2020-06-04,Bell,Texas,48027,423,5 +2020-06-05,Bell,Texas,48027,432,5 +2020-06-06,Bell,Texas,48027,446,5 +2020-06-07,Bell,Texas,48027,446,5 +2020-06-08,Bell,Texas,48027,446,5 +2020-06-09,Bell,Texas,48027,476,6 +2020-06-10,Bell,Texas,48027,507,6 +2020-06-11,Bell,Texas,48027,530,6 +2020-06-12,Bell,Texas,48027,574,6 +2020-06-13,Bell,Texas,48027,605,6 +2020-06-14,Bell,Texas,48027,629,6 +2020-06-15,Bell,Texas,48027,629,7 +2020-06-16,Bell,Texas,48027,651,7 +2020-06-17,Bell,Texas,48027,672,9 +2020-06-18,Bell,Texas,48027,722,9 +2020-06-19,Bell,Texas,48027,769,10 +2020-06-20,Bell,Texas,48027,818,10 +2020-06-21,Bell,Texas,48027,822,10 +2020-06-22,Bell,Texas,48027,822,10 +2020-06-23,Bell,Texas,48027,875,11 +2020-06-24,Bell,Texas,48027,925,11 +2020-06-25,Bell,Texas,48027,1009,12 +2020-06-26,Bell,Texas,48027,1077,12 +2020-06-27,Bell,Texas,48027,1128,12 +2020-06-28,Bell,Texas,48027,1128,12 +2020-06-29,Bell,Texas,48027,1128,13 +2020-06-30,Bell,Texas,48027,1209,13 +2020-07-01,Bell,Texas,48027,1315,13 +2020-07-02,Bell,Texas,48027,1394,13 +2020-07-03,Bell,Texas,48027,1480,13 +2020-07-04,Bell,Texas,48027,1523,13 +2020-07-05,Bell,Texas,48027,1523,13 +2020-07-06,Bell,Texas,48027,1523,13 +2020-07-07,Bell,Texas,48027,1628,13 +2020-07-08,Bell,Texas,48027,1746,13 +2020-07-09,Bell,Texas,48027,1886,13 +2020-02-12,Bexar,Texas,48029,1,0 +2020-02-13,Bexar,Texas,48029,2,0 +2020-02-14,Bexar,Texas,48029,2,0 +2020-02-15,Bexar,Texas,48029,2,0 +2020-02-16,Bexar,Texas,48029,2,0 +2020-02-17,Bexar,Texas,48029,2,0 +2020-02-18,Bexar,Texas,48029,2,0 +2020-02-19,Bexar,Texas,48029,2,0 +2020-02-20,Bexar,Texas,48029,2,0 +2020-02-21,Bexar,Texas,48029,4,0 +2020-02-22,Bexar,Texas,48029,4,0 +2020-02-23,Bexar,Texas,48029,4,0 +2020-02-24,Bexar,Texas,48029,10,0 +2020-02-25,Bexar,Texas,48029,10,0 +2020-02-26,Bexar,Texas,48029,10,0 +2020-02-27,Bexar,Texas,48029,10,0 +2020-02-28,Bexar,Texas,48029,11,0 +2020-02-29,Bexar,Texas,48029,11,0 +2020-03-01,Bexar,Texas,48029,11,0 +2020-03-02,Bexar,Texas,48029,11,0 +2020-03-03,Bexar,Texas,48029,11,0 +2020-03-04,Bexar,Texas,48029,11,0 +2020-03-05,Bexar,Texas,48029,11,0 +2020-03-06,Bexar,Texas,48029,11,0 +2020-03-07,Bexar,Texas,48029,11,0 +2020-03-08,Bexar,Texas,48029,11,0 +2020-03-09,Bexar,Texas,48029,11,0 +2020-03-10,Bexar,Texas,48029,11,0 +2020-03-11,Bexar,Texas,48029,11,0 +2020-03-12,Bexar,Texas,48029,11,0 +2020-03-13,Bexar,Texas,48029,11,0 +2020-03-14,Bexar,Texas,48029,12,0 +2020-03-15,Bexar,Texas,48029,12,0 +2020-03-16,Bexar,Texas,48029,13,0 +2020-03-17,Bexar,Texas,48029,13,0 +2020-03-18,Bexar,Texas,48029,13,0 +2020-03-19,Bexar,Texas,48029,17,0 +2020-03-20,Bexar,Texas,48029,40,0 +2020-03-21,Bexar,Texas,48029,50,0 +2020-03-22,Bexar,Texas,48029,50,1 +2020-03-23,Bexar,Texas,48029,50,1 +2020-03-24,Bexar,Texas,48029,68,1 +2020-03-25,Bexar,Texas,48029,69,1 +2020-03-26,Bexar,Texas,48029,84,3 +2020-03-27,Bexar,Texas,48029,113,5 +2020-03-28,Bexar,Texas,48029,125,5 +2020-03-29,Bexar,Texas,48029,140,5 +2020-03-30,Bexar,Texas,48029,157,5 +2020-03-31,Bexar,Texas,48029,207,9 +2020-04-01,Bexar,Texas,48029,229,9 +2020-04-02,Bexar,Texas,48029,254,9 +2020-04-03,Bexar,Texas,48029,342,10 +2020-04-04,Bexar,Texas,48029,395,11 +2020-04-05,Bexar,Texas,48029,421,11 +2020-04-06,Bexar,Texas,48029,467,12 +2020-04-07,Bexar,Texas,48029,514,18 +2020-04-08,Bexar,Texas,48029,514,18 +2020-04-09,Bexar,Texas,48029,626,22 +2020-04-10,Bexar,Texas,48029,676,24 +2020-04-11,Bexar,Texas,48029,723,24 +2020-04-12,Bexar,Texas,48029,734,27 +2020-04-13,Bexar,Texas,48029,783,27 +2020-04-14,Bexar,Texas,48029,805,33 +2020-04-15,Bexar,Texas,48029,901,37 +2020-04-16,Bexar,Texas,48029,901,37 +2020-04-17,Bexar,Texas,48029,970,37 +2020-04-18,Bexar,Texas,48029,1003,38 +2020-04-19,Bexar,Texas,48029,1015,39 +2020-04-20,Bexar,Texas,48029,1040,39 +2020-04-21,Bexar,Texas,48029,1080,39 +2020-04-22,Bexar,Texas,48029,1126,39 +2020-04-23,Bexar,Texas,48029,1178,43 +2020-04-24,Bexar,Texas,48029,1206,43 +2020-04-25,Bexar,Texas,48029,1243,43 +2020-04-26,Bexar,Texas,48029,1254,43 +2020-04-27,Bexar,Texas,48029,1287,44 +2020-04-28,Bexar,Texas,48029,1307,44 +2020-04-29,Bexar,Texas,48029,1326,46 +2020-04-30,Bexar,Texas,48029,1374,48 +2020-05-01,Bexar,Texas,48029,1489,48 +2020-05-02,Bexar,Texas,48029,1585,48 +2020-05-03,Bexar,Texas,48029,1625,48 +2020-05-04,Bexar,Texas,48029,1664,48 +2020-05-05,Bexar,Texas,48029,1689,52 +2020-05-06,Bexar,Texas,48029,1761,53 +2020-05-07,Bexar,Texas,48029,1805,54 +2020-05-08,Bexar,Texas,48029,1835,56 +2020-05-09,Bexar,Texas,48029,1887,56 +2020-05-10,Bexar,Texas,48029,1901,56 +2020-05-11,Bexar,Texas,48029,1920,57 +2020-05-12,Bexar,Texas,48029,1942,57 +2020-05-13,Bexar,Texas,48029,1976,58 +2020-05-14,Bexar,Texas,48029,2041,59 +2020-05-15,Bexar,Texas,48029,2120,62 +2020-05-16,Bexar,Texas,48029,2120,62 +2020-05-17,Bexar,Texas,48029,2120,62 +2020-05-18,Bexar,Texas,48029,2192,62 +2020-05-19,Bexar,Texas,48029,2278,62 +2020-05-20,Bexar,Texas,48029,2322,63 +2020-05-21,Bexar,Texas,48029,2371,64 +2020-05-22,Bexar,Texas,48029,2392,66 +2020-05-23,Bexar,Texas,48029,2418,66 +2020-05-24,Bexar,Texas,48029,2454,69 +2020-05-25,Bexar,Texas,48029,2461,69 +2020-05-26,Bexar,Texas,48029,2492,69 +2020-05-27,Bexar,Texas,48029,2537,70 +2020-05-28,Bexar,Texas,48029,2595,71 +2020-05-29,Bexar,Texas,48029,2648,72 +2020-05-30,Bexar,Texas,48029,2837,73 +2020-05-31,Bexar,Texas,48029,2842,74 +2020-06-01,Bexar,Texas,48029,2851,75 +2020-06-02,Bexar,Texas,48029,2894,75 +2020-06-03,Bexar,Texas,48029,2965,78 +2020-06-04,Bexar,Texas,48029,3030,78 +2020-06-05,Bexar,Texas,48029,3155,78 +2020-06-06,Bexar,Texas,48029,3302,78 +2020-06-07,Bexar,Texas,48029,3323,78 +2020-06-08,Bexar,Texas,48029,3345,78 +2020-06-09,Bexar,Texas,48029,3525,80 +2020-06-10,Bexar,Texas,48029,3660,80 +2020-06-11,Bexar,Texas,48029,3852,82 +2020-06-12,Bexar,Texas,48029,4024,84 +2020-06-13,Bexar,Texas,48029,4254,88 +2020-06-14,Bexar,Texas,48029,4405,88 +2020-06-15,Bexar,Texas,48029,4449,89 +2020-06-16,Bexar,Texas,48029,4888,89 +2020-06-17,Bexar,Texas,48029,5154,90 +2020-06-18,Bexar,Texas,48029,5562,92 +2020-06-19,Bexar,Texas,48029,5974,96 +2020-06-20,Bexar,Texas,48029,6356,96 +2020-06-21,Bexar,Texas,48029,6894,97 +2020-06-22,Bexar,Texas,48029,7168,97 +2020-06-23,Bexar,Texas,48029,7479,100 +2020-06-24,Bexar,Texas,48029,7826,104 +2020-06-25,Bexar,Texas,48029,8464,104 +2020-06-26,Bexar,Texas,48029,8869,105 +2020-06-27,Bexar,Texas,48029,9664,107 +2020-06-28,Bexar,Texas,48029,10159,109 +2020-06-29,Bexar,Texas,48029,10809,109 +2020-06-30,Bexar,Texas,48029,12077,110 +2020-07-01,Bexar,Texas,48029,12516,111 +2020-07-02,Bexar,Texas,48029,12890,115 +2020-07-03,Bexar,Texas,48029,14224,117 +2020-07-04,Bexar,Texas,48029,14565,122 +2020-07-05,Bexar,Texas,48029,14763,130 +2020-07-06,Bexar,Texas,48029,15114,132 +2020-07-07,Bexar,Texas,48029,15892,137 +2020-07-08,Bexar,Texas,48029,16737,146 +2020-07-09,Bexar,Texas,48029,17691,165 +2020-03-25,Blanco,Texas,48031,1,0 +2020-03-26,Blanco,Texas,48031,1,0 +2020-03-27,Blanco,Texas,48031,1,0 +2020-03-28,Blanco,Texas,48031,1,0 +2020-03-29,Blanco,Texas,48031,1,0 +2020-03-30,Blanco,Texas,48031,1,0 +2020-03-31,Blanco,Texas,48031,1,0 +2020-04-01,Blanco,Texas,48031,1,0 +2020-04-02,Blanco,Texas,48031,1,0 +2020-04-03,Blanco,Texas,48031,1,0 +2020-04-04,Blanco,Texas,48031,2,0 +2020-04-05,Blanco,Texas,48031,2,0 +2020-04-06,Blanco,Texas,48031,2,0 +2020-04-07,Blanco,Texas,48031,4,0 +2020-04-08,Blanco,Texas,48031,4,0 +2020-04-09,Blanco,Texas,48031,4,0 +2020-04-10,Blanco,Texas,48031,4,0 +2020-04-11,Blanco,Texas,48031,4,0 +2020-04-12,Blanco,Texas,48031,4,0 +2020-04-13,Blanco,Texas,48031,4,0 +2020-04-14,Blanco,Texas,48031,4,0 +2020-04-15,Blanco,Texas,48031,4,0 +2020-04-16,Blanco,Texas,48031,4,0 +2020-04-17,Blanco,Texas,48031,5,0 +2020-04-18,Blanco,Texas,48031,4,0 +2020-04-19,Blanco,Texas,48031,4,0 +2020-04-20,Blanco,Texas,48031,4,0 +2020-04-21,Blanco,Texas,48031,4,0 +2020-04-22,Blanco,Texas,48031,5,0 +2020-04-23,Blanco,Texas,48031,6,0 +2020-04-24,Blanco,Texas,48031,6,0 +2020-04-25,Blanco,Texas,48031,6,0 +2020-04-26,Blanco,Texas,48031,6,0 +2020-04-27,Blanco,Texas,48031,6,0 +2020-04-28,Blanco,Texas,48031,6,0 +2020-04-29,Blanco,Texas,48031,6,0 +2020-04-30,Blanco,Texas,48031,6,0 +2020-05-01,Blanco,Texas,48031,6,0 +2020-05-02,Blanco,Texas,48031,6,0 +2020-05-03,Blanco,Texas,48031,6,0 +2020-05-04,Blanco,Texas,48031,6,0 +2020-05-05,Blanco,Texas,48031,6,0 +2020-05-06,Blanco,Texas,48031,6,0 +2020-05-07,Blanco,Texas,48031,6,0 +2020-05-08,Blanco,Texas,48031,6,0 +2020-05-09,Blanco,Texas,48031,6,0 +2020-05-10,Blanco,Texas,48031,6,0 +2020-05-11,Blanco,Texas,48031,6,0 +2020-05-12,Blanco,Texas,48031,6,0 +2020-05-13,Blanco,Texas,48031,6,0 +2020-05-14,Blanco,Texas,48031,6,0 +2020-05-15,Blanco,Texas,48031,6,0 +2020-05-16,Blanco,Texas,48031,6,0 +2020-05-17,Blanco,Texas,48031,6,0 +2020-05-18,Blanco,Texas,48031,6,0 +2020-05-19,Blanco,Texas,48031,6,0 +2020-05-20,Blanco,Texas,48031,7,0 +2020-05-21,Blanco,Texas,48031,7,0 +2020-05-22,Blanco,Texas,48031,7,0 +2020-05-23,Blanco,Texas,48031,8,0 +2020-05-24,Blanco,Texas,48031,8,0 +2020-05-25,Blanco,Texas,48031,8,0 +2020-05-26,Blanco,Texas,48031,8,0 +2020-05-27,Blanco,Texas,48031,8,0 +2020-05-28,Blanco,Texas,48031,8,0 +2020-05-29,Blanco,Texas,48031,9,0 +2020-05-30,Blanco,Texas,48031,10,1 +2020-05-31,Blanco,Texas,48031,11,1 +2020-06-01,Blanco,Texas,48031,11,1 +2020-06-02,Blanco,Texas,48031,11,1 +2020-06-03,Blanco,Texas,48031,11,1 +2020-06-04,Blanco,Texas,48031,11,1 +2020-06-05,Blanco,Texas,48031,11,1 +2020-06-06,Blanco,Texas,48031,11,1 +2020-06-07,Blanco,Texas,48031,11,1 +2020-06-08,Blanco,Texas,48031,11,1 +2020-06-09,Blanco,Texas,48031,12,1 +2020-06-10,Blanco,Texas,48031,12,1 +2020-06-11,Blanco,Texas,48031,11,1 +2020-06-12,Blanco,Texas,48031,11,1 +2020-06-13,Blanco,Texas,48031,11,1 +2020-06-14,Blanco,Texas,48031,11,1 +2020-06-15,Blanco,Texas,48031,11,1 +2020-06-16,Blanco,Texas,48031,11,1 +2020-06-17,Blanco,Texas,48031,12,1 +2020-06-18,Blanco,Texas,48031,13,1 +2020-06-19,Blanco,Texas,48031,14,1 +2020-06-20,Blanco,Texas,48031,14,1 +2020-06-21,Blanco,Texas,48031,14,1 +2020-06-22,Blanco,Texas,48031,22,1 +2020-06-23,Blanco,Texas,48031,24,1 +2020-06-24,Blanco,Texas,48031,27,1 +2020-06-25,Blanco,Texas,48031,27,1 +2020-06-26,Blanco,Texas,48031,26,1 +2020-06-27,Blanco,Texas,48031,26,1 +2020-06-28,Blanco,Texas,48031,26,1 +2020-06-29,Blanco,Texas,48031,27,1 +2020-06-30,Blanco,Texas,48031,27,1 +2020-07-01,Blanco,Texas,48031,27,1 +2020-07-02,Blanco,Texas,48031,29,1 +2020-07-03,Blanco,Texas,48031,31,1 +2020-07-04,Blanco,Texas,48031,31,1 +2020-07-05,Blanco,Texas,48031,31,1 +2020-07-06,Blanco,Texas,48031,31,1 +2020-07-07,Blanco,Texas,48031,31,1 +2020-07-08,Blanco,Texas,48031,49,1 +2020-07-09,Blanco,Texas,48031,50,1 +2020-04-15,Bosque,Texas,48035,1,0 +2020-04-16,Bosque,Texas,48035,1,0 +2020-04-17,Bosque,Texas,48035,1,0 +2020-04-18,Bosque,Texas,48035,1,0 +2020-04-19,Bosque,Texas,48035,1,0 +2020-04-20,Bosque,Texas,48035,1,0 +2020-04-21,Bosque,Texas,48035,3,0 +2020-04-22,Bosque,Texas,48035,3,0 +2020-04-23,Bosque,Texas,48035,3,0 +2020-04-24,Bosque,Texas,48035,3,0 +2020-04-25,Bosque,Texas,48035,3,0 +2020-04-26,Bosque,Texas,48035,4,0 +2020-04-27,Bosque,Texas,48035,4,0 +2020-04-28,Bosque,Texas,48035,4,0 +2020-04-29,Bosque,Texas,48035,4,0 +2020-04-30,Bosque,Texas,48035,4,0 +2020-05-01,Bosque,Texas,48035,4,0 +2020-05-02,Bosque,Texas,48035,4,0 +2020-05-03,Bosque,Texas,48035,4,0 +2020-05-04,Bosque,Texas,48035,4,0 +2020-05-05,Bosque,Texas,48035,5,0 +2020-05-06,Bosque,Texas,48035,5,0 +2020-05-07,Bosque,Texas,48035,5,0 +2020-05-08,Bosque,Texas,48035,5,0 +2020-05-09,Bosque,Texas,48035,5,0 +2020-05-10,Bosque,Texas,48035,5,0 +2020-05-11,Bosque,Texas,48035,5,0 +2020-05-12,Bosque,Texas,48035,6,0 +2020-05-13,Bosque,Texas,48035,6,0 +2020-05-14,Bosque,Texas,48035,6,0 +2020-05-15,Bosque,Texas,48035,6,0 +2020-05-16,Bosque,Texas,48035,6,0 +2020-05-17,Bosque,Texas,48035,6,0 +2020-05-18,Bosque,Texas,48035,6,0 +2020-05-19,Bosque,Texas,48035,6,0 +2020-05-20,Bosque,Texas,48035,6,0 +2020-05-21,Bosque,Texas,48035,6,0 +2020-05-22,Bosque,Texas,48035,6,0 +2020-05-23,Bosque,Texas,48035,6,0 +2020-05-24,Bosque,Texas,48035,6,0 +2020-05-25,Bosque,Texas,48035,6,0 +2020-05-26,Bosque,Texas,48035,6,0 +2020-05-27,Bosque,Texas,48035,6,0 +2020-05-28,Bosque,Texas,48035,6,0 +2020-05-29,Bosque,Texas,48035,6,0 +2020-05-30,Bosque,Texas,48035,7,0 +2020-05-31,Bosque,Texas,48035,7,0 +2020-06-01,Bosque,Texas,48035,7,0 +2020-06-02,Bosque,Texas,48035,7,0 +2020-06-03,Bosque,Texas,48035,7,0 +2020-06-04,Bosque,Texas,48035,7,0 +2020-06-05,Bosque,Texas,48035,7,0 +2020-06-06,Bosque,Texas,48035,7,0 +2020-06-07,Bosque,Texas,48035,7,0 +2020-06-08,Bosque,Texas,48035,7,0 +2020-06-09,Bosque,Texas,48035,7,0 +2020-06-10,Bosque,Texas,48035,7,0 +2020-06-11,Bosque,Texas,48035,7,0 +2020-06-12,Bosque,Texas,48035,7,0 +2020-06-13,Bosque,Texas,48035,7,0 +2020-06-14,Bosque,Texas,48035,7,0 +2020-06-15,Bosque,Texas,48035,7,0 +2020-06-16,Bosque,Texas,48035,7,0 +2020-06-17,Bosque,Texas,48035,7,0 +2020-06-18,Bosque,Texas,48035,7,0 +2020-06-19,Bosque,Texas,48035,7,0 +2020-06-20,Bosque,Texas,48035,7,0 +2020-06-21,Bosque,Texas,48035,10,0 +2020-06-22,Bosque,Texas,48035,10,0 +2020-06-23,Bosque,Texas,48035,10,0 +2020-06-24,Bosque,Texas,48035,10,0 +2020-06-25,Bosque,Texas,48035,10,0 +2020-06-26,Bosque,Texas,48035,10,0 +2020-06-27,Bosque,Texas,48035,10,0 +2020-06-28,Bosque,Texas,48035,10,0 +2020-06-29,Bosque,Texas,48035,13,0 +2020-06-30,Bosque,Texas,48035,13,0 +2020-07-01,Bosque,Texas,48035,14,0 +2020-07-02,Bosque,Texas,48035,15,0 +2020-07-03,Bosque,Texas,48035,16,0 +2020-07-04,Bosque,Texas,48035,16,0 +2020-07-05,Bosque,Texas,48035,16,0 +2020-07-06,Bosque,Texas,48035,18,0 +2020-07-07,Bosque,Texas,48035,18,0 +2020-07-08,Bosque,Texas,48035,33,0 +2020-07-09,Bosque,Texas,48035,36,0 +2020-03-16,Bowie,Texas,48037,1,0 +2020-03-17,Bowie,Texas,48037,1,0 +2020-03-18,Bowie,Texas,48037,1,0 +2020-03-19,Bowie,Texas,48037,1,0 +2020-03-20,Bowie,Texas,48037,1,0 +2020-03-21,Bowie,Texas,48037,1,0 +2020-03-22,Bowie,Texas,48037,1,0 +2020-03-23,Bowie,Texas,48037,1,0 +2020-03-24,Bowie,Texas,48037,1,0 +2020-03-25,Bowie,Texas,48037,1,0 +2020-03-26,Bowie,Texas,48037,1,0 +2020-03-27,Bowie,Texas,48037,2,0 +2020-03-28,Bowie,Texas,48037,3,0 +2020-03-29,Bowie,Texas,48037,3,0 +2020-03-30,Bowie,Texas,48037,4,0 +2020-03-31,Bowie,Texas,48037,9,0 +2020-04-01,Bowie,Texas,48037,9,0 +2020-04-02,Bowie,Texas,48037,9,0 +2020-04-03,Bowie,Texas,48037,10,0 +2020-04-04,Bowie,Texas,48037,17,1 +2020-04-05,Bowie,Texas,48037,17,1 +2020-04-06,Bowie,Texas,48037,27,5 +2020-04-07,Bowie,Texas,48037,27,5 +2020-04-08,Bowie,Texas,48037,35,5 +2020-04-09,Bowie,Texas,48037,35,5 +2020-04-10,Bowie,Texas,48037,35,5 +2020-04-11,Bowie,Texas,48037,35,5 +2020-04-12,Bowie,Texas,48037,35,5 +2020-04-13,Bowie,Texas,48037,51,5 +2020-04-14,Bowie,Texas,48037,54,5 +2020-04-15,Bowie,Texas,48037,63,5 +2020-04-16,Bowie,Texas,48037,71,5 +2020-04-17,Bowie,Texas,48037,76,5 +2020-04-18,Bowie,Texas,48037,76,5 +2020-04-19,Bowie,Texas,48037,76,5 +2020-04-20,Bowie,Texas,48037,83,6 +2020-04-21,Bowie,Texas,48037,88,6 +2020-04-22,Bowie,Texas,48037,88,6 +2020-04-23,Bowie,Texas,48037,89,6 +2020-04-24,Bowie,Texas,48037,93,6 +2020-04-25,Bowie,Texas,48037,93,7 +2020-04-26,Bowie,Texas,48037,93,7 +2020-04-27,Bowie,Texas,48037,94,8 +2020-04-28,Bowie,Texas,48037,94,8 +2020-04-29,Bowie,Texas,48037,95,8 +2020-04-30,Bowie,Texas,48037,99,9 +2020-05-01,Bowie,Texas,48037,101,9 +2020-05-02,Bowie,Texas,48037,101,9 +2020-05-03,Bowie,Texas,48037,101,9 +2020-05-04,Bowie,Texas,48037,103,10 +2020-05-05,Bowie,Texas,48037,104,10 +2020-05-06,Bowie,Texas,48037,105,10 +2020-05-07,Bowie,Texas,48037,105,10 +2020-05-08,Bowie,Texas,48037,105,10 +2020-05-09,Bowie,Texas,48037,105,10 +2020-05-10,Bowie,Texas,48037,105,10 +2020-05-11,Bowie,Texas,48037,107,11 +2020-05-12,Bowie,Texas,48037,110,11 +2020-05-13,Bowie,Texas,48037,111,11 +2020-05-14,Bowie,Texas,48037,120,11 +2020-05-15,Bowie,Texas,48037,122,11 +2020-05-16,Bowie,Texas,48037,130,11 +2020-05-17,Bowie,Texas,48037,133,11 +2020-05-18,Bowie,Texas,48037,133,11 +2020-05-19,Bowie,Texas,48037,137,11 +2020-05-20,Bowie,Texas,48037,174,11 +2020-05-21,Bowie,Texas,48037,176,11 +2020-05-22,Bowie,Texas,48037,176,11 +2020-05-23,Bowie,Texas,48037,176,11 +2020-05-24,Bowie,Texas,48037,153,11 +2020-05-25,Bowie,Texas,48037,153,11 +2020-05-26,Bowie,Texas,48037,147,12 +2020-05-27,Bowie,Texas,48037,156,12 +2020-05-28,Bowie,Texas,48037,189,12 +2020-05-29,Bowie,Texas,48037,191,12 +2020-05-30,Bowie,Texas,48037,197,12 +2020-05-31,Bowie,Texas,48037,265,12 +2020-06-01,Bowie,Texas,48037,267,12 +2020-06-02,Bowie,Texas,48037,270,13 +2020-06-03,Bowie,Texas,48037,287,13 +2020-06-04,Bowie,Texas,48037,296,13 +2020-06-05,Bowie,Texas,48037,301,13 +2020-06-06,Bowie,Texas,48037,312,13 +2020-06-07,Bowie,Texas,48037,336,13 +2020-06-08,Bowie,Texas,48037,336,13 +2020-06-09,Bowie,Texas,48037,351,13 +2020-06-10,Bowie,Texas,48037,358,13 +2020-06-11,Bowie,Texas,48037,363,13 +2020-06-12,Bowie,Texas,48037,367,13 +2020-06-13,Bowie,Texas,48037,370,13 +2020-06-14,Bowie,Texas,48037,373,13 +2020-06-15,Bowie,Texas,48037,372,13 +2020-06-16,Bowie,Texas,48037,377,13 +2020-06-17,Bowie,Texas,48037,381,13 +2020-06-18,Bowie,Texas,48037,384,13 +2020-06-19,Bowie,Texas,48037,394,15 +2020-06-20,Bowie,Texas,48037,398,15 +2020-06-21,Bowie,Texas,48037,400,15 +2020-06-22,Bowie,Texas,48037,400,15 +2020-06-23,Bowie,Texas,48037,404,16 +2020-06-24,Bowie,Texas,48037,406,16 +2020-06-25,Bowie,Texas,48037,413,16 +2020-06-26,Bowie,Texas,48037,415,16 +2020-06-27,Bowie,Texas,48037,418,16 +2020-06-28,Bowie,Texas,48037,418,16 +2020-06-29,Bowie,Texas,48037,430,16 +2020-06-30,Bowie,Texas,48037,427,16 +2020-07-01,Bowie,Texas,48037,438,17 +2020-07-02,Bowie,Texas,48037,439,17 +2020-07-03,Bowie,Texas,48037,444,17 +2020-07-04,Bowie,Texas,48037,449,22 +2020-07-05,Bowie,Texas,48037,458,22 +2020-07-06,Bowie,Texas,48037,461,22 +2020-07-07,Bowie,Texas,48037,462,22 +2020-07-08,Bowie,Texas,48037,467,26 +2020-07-09,Bowie,Texas,48037,471,26 +2020-03-14,Brazoria,Texas,48039,2,0 +2020-03-15,Brazoria,Texas,48039,2,0 +2020-03-16,Brazoria,Texas,48039,2,0 +2020-03-17,Brazoria,Texas,48039,2,0 +2020-03-18,Brazoria,Texas,48039,4,0 +2020-03-19,Brazoria,Texas,48039,4,0 +2020-03-20,Brazoria,Texas,48039,10,0 +2020-03-21,Brazoria,Texas,48039,14,0 +2020-03-22,Brazoria,Texas,48039,14,0 +2020-03-23,Brazoria,Texas,48039,16,0 +2020-03-24,Brazoria,Texas,48039,18,0 +2020-03-25,Brazoria,Texas,48039,19,0 +2020-03-26,Brazoria,Texas,48039,33,0 +2020-03-27,Brazoria,Texas,48039,39,0 +2020-03-28,Brazoria,Texas,48039,52,0 +2020-03-29,Brazoria,Texas,48039,61,0 +2020-03-30,Brazoria,Texas,48039,61,0 +2020-03-31,Brazoria,Texas,48039,95,1 +2020-04-01,Brazoria,Texas,48039,95,1 +2020-04-02,Brazoria,Texas,48039,109,1 +2020-04-03,Brazoria,Texas,48039,123,1 +2020-04-04,Brazoria,Texas,48039,136,1 +2020-04-05,Brazoria,Texas,48039,144,1 +2020-04-06,Brazoria,Texas,48039,151,1 +2020-04-07,Brazoria,Texas,48039,167,1 +2020-04-08,Brazoria,Texas,48039,184,1 +2020-04-09,Brazoria,Texas,48039,199,2 +2020-04-10,Brazoria,Texas,48039,199,2 +2020-04-11,Brazoria,Texas,48039,225,2 +2020-04-12,Brazoria,Texas,48039,225,2 +2020-04-13,Brazoria,Texas,48039,250,2 +2020-04-14,Brazoria,Texas,48039,259,3 +2020-04-15,Brazoria,Texas,48039,272,3 +2020-04-16,Brazoria,Texas,48039,272,3 +2020-04-17,Brazoria,Texas,48039,302,3 +2020-04-18,Brazoria,Texas,48039,304,3 +2020-04-19,Brazoria,Texas,48039,315,3 +2020-04-20,Brazoria,Texas,48039,333,3 +2020-04-21,Brazoria,Texas,48039,345,3 +2020-04-22,Brazoria,Texas,48039,382,3 +2020-04-23,Brazoria,Texas,48039,392,3 +2020-04-24,Brazoria,Texas,48039,417,3 +2020-04-25,Brazoria,Texas,48039,445,3 +2020-04-26,Brazoria,Texas,48039,449,3 +2020-04-27,Brazoria,Texas,48039,464,5 +2020-04-28,Brazoria,Texas,48039,476,6 +2020-04-29,Brazoria,Texas,48039,485,6 +2020-04-30,Brazoria,Texas,48039,509,6 +2020-05-01,Brazoria,Texas,48039,537,6 +2020-05-02,Brazoria,Texas,48039,542,6 +2020-05-03,Brazoria,Texas,48039,551,6 +2020-05-04,Brazoria,Texas,48039,566,7 +2020-05-05,Brazoria,Texas,48039,570,7 +2020-05-06,Brazoria,Texas,48039,588,7 +2020-05-07,Brazoria,Texas,48039,613,8 +2020-05-08,Brazoria,Texas,48039,644,9 +2020-05-09,Brazoria,Texas,48039,656,9 +2020-05-10,Brazoria,Texas,48039,661,9 +2020-05-11,Brazoria,Texas,48039,673,9 +2020-05-12,Brazoria,Texas,48039,686,9 +2020-05-13,Brazoria,Texas,48039,710,9 +2020-05-14,Brazoria,Texas,48039,712,9 +2020-05-15,Brazoria,Texas,48039,721,9 +2020-05-16,Brazoria,Texas,48039,727,10 +2020-05-17,Brazoria,Texas,48039,767,11 +2020-05-18,Brazoria,Texas,48039,786,11 +2020-05-19,Brazoria,Texas,48039,795,11 +2020-05-20,Brazoria,Texas,48039,805,11 +2020-05-21,Brazoria,Texas,48039,816,11 +2020-05-22,Brazoria,Texas,48039,825,12 +2020-05-23,Brazoria,Texas,48039,835,12 +2020-05-24,Brazoria,Texas,48039,838,12 +2020-05-25,Brazoria,Texas,48039,843,12 +2020-05-26,Brazoria,Texas,48039,853,12 +2020-05-27,Brazoria,Texas,48039,861,12 +2020-05-28,Brazoria,Texas,48039,882,12 +2020-05-29,Brazoria,Texas,48039,894,12 +2020-05-30,Brazoria,Texas,48039,907,12 +2020-05-31,Brazoria,Texas,48039,917,12 +2020-06-01,Brazoria,Texas,48039,929,12 +2020-06-02,Brazoria,Texas,48039,941,12 +2020-06-03,Brazoria,Texas,48039,957,12 +2020-06-04,Brazoria,Texas,48039,967,12 +2020-06-05,Brazoria,Texas,48039,990,13 +2020-06-06,Brazoria,Texas,48039,990,13 +2020-06-07,Brazoria,Texas,48039,1003,14 +2020-06-08,Brazoria,Texas,48039,990,13 +2020-06-09,Brazoria,Texas,48039,1015,14 +2020-06-10,Brazoria,Texas,48039,1035,16 +2020-06-11,Brazoria,Texas,48039,1058,16 +2020-06-12,Brazoria,Texas,48039,1095,16 +2020-06-13,Brazoria,Texas,48039,1109,16 +2020-06-14,Brazoria,Texas,48039,1151,17 +2020-06-15,Brazoria,Texas,48039,1184,18 +2020-06-16,Brazoria,Texas,48039,1495,18 +2020-06-17,Brazoria,Texas,48039,1525,18 +2020-06-18,Brazoria,Texas,48039,1558,18 +2020-06-19,Brazoria,Texas,48039,1609,18 +2020-06-20,Brazoria,Texas,48039,1669,19 +2020-06-21,Brazoria,Texas,48039,1728,19 +2020-06-22,Brazoria,Texas,48039,1762,19 +2020-06-23,Brazoria,Texas,48039,1814,19 +2020-06-24,Brazoria,Texas,48039,1838,19 +2020-06-25,Brazoria,Texas,48039,1913,19 +2020-06-26,Brazoria,Texas,48039,1986,20 +2020-06-27,Brazoria,Texas,48039,2064,21 +2020-06-28,Brazoria,Texas,48039,2161,21 +2020-06-29,Brazoria,Texas,48039,2217,21 +2020-06-30,Brazoria,Texas,48039,2269,21 +2020-07-01,Brazoria,Texas,48039,2336,21 +2020-07-02,Brazoria,Texas,48039,2438,22 +2020-07-03,Brazoria,Texas,48039,2516,22 +2020-07-04,Brazoria,Texas,48039,2626,22 +2020-07-05,Brazoria,Texas,48039,2715,22 +2020-07-06,Brazoria,Texas,48039,2829,22 +2020-07-07,Brazoria,Texas,48039,2925,22 +2020-07-08,Brazoria,Texas,48039,3036,23 +2020-07-09,Brazoria,Texas,48039,3146,24 +2020-03-17,Brazos,Texas,48041,1,0 +2020-03-18,Brazos,Texas,48041,3,0 +2020-03-19,Brazos,Texas,48041,4,0 +2020-03-20,Brazos,Texas,48041,6,0 +2020-03-21,Brazos,Texas,48041,10,0 +2020-03-22,Brazos,Texas,48041,12,0 +2020-03-23,Brazos,Texas,48041,12,0 +2020-03-24,Brazos,Texas,48041,12,0 +2020-03-25,Brazos,Texas,48041,16,0 +2020-03-26,Brazos,Texas,48041,28,0 +2020-03-27,Brazos,Texas,48041,31,0 +2020-03-28,Brazos,Texas,48041,36,0 +2020-03-29,Brazos,Texas,48041,44,2 +2020-03-30,Brazos,Texas,48041,44,2 +2020-03-31,Brazos,Texas,48041,46,2 +2020-04-01,Brazos,Texas,48041,63,3 +2020-04-02,Brazos,Texas,48041,68,4 +2020-04-03,Brazos,Texas,48041,72,4 +2020-04-04,Brazos,Texas,48041,72,5 +2020-04-05,Brazos,Texas,48041,75,5 +2020-04-06,Brazos,Texas,48041,94,7 +2020-04-07,Brazos,Texas,48041,94,7 +2020-04-08,Brazos,Texas,48041,108,7 +2020-04-09,Brazos,Texas,48041,114,9 +2020-04-10,Brazos,Texas,48041,116,9 +2020-04-11,Brazos,Texas,48041,134,10 +2020-04-12,Brazos,Texas,48041,140,11 +2020-04-13,Brazos,Texas,48041,143,12 +2020-04-14,Brazos,Texas,48041,149,13 +2020-04-15,Brazos,Texas,48041,151,13 +2020-04-16,Brazos,Texas,48041,151,13 +2020-04-17,Brazos,Texas,48041,164,15 +2020-04-18,Brazos,Texas,48041,169,16 +2020-04-19,Brazos,Texas,48041,170,16 +2020-04-20,Brazos,Texas,48041,170,16 +2020-04-21,Brazos,Texas,48041,173,16 +2020-04-22,Brazos,Texas,48041,177,16 +2020-04-23,Brazos,Texas,48041,177,16 +2020-04-24,Brazos,Texas,48041,181,16 +2020-04-25,Brazos,Texas,48041,181,16 +2020-04-26,Brazos,Texas,48041,182,16 +2020-04-27,Brazos,Texas,48041,182,16 +2020-04-28,Brazos,Texas,48041,188,16 +2020-04-29,Brazos,Texas,48041,193,16 +2020-04-30,Brazos,Texas,48041,197,16 +2020-05-01,Brazos,Texas,48041,202,16 +2020-05-02,Brazos,Texas,48041,208,16 +2020-05-03,Brazos,Texas,48041,208,16 +2020-05-04,Brazos,Texas,48041,209,16 +2020-05-05,Brazos,Texas,48041,219,17 +2020-05-06,Brazos,Texas,48041,232,17 +2020-05-07,Brazos,Texas,48041,243,17 +2020-05-08,Brazos,Texas,48041,256,18 +2020-05-09,Brazos,Texas,48041,265,18 +2020-05-10,Brazos,Texas,48041,271,18 +2020-05-11,Brazos,Texas,48041,278,18 +2020-05-12,Brazos,Texas,48041,287,18 +2020-05-13,Brazos,Texas,48041,301,18 +2020-05-14,Brazos,Texas,48041,305,18 +2020-05-15,Brazos,Texas,48041,312,18 +2020-05-16,Brazos,Texas,48041,318,18 +2020-05-17,Brazos,Texas,48041,325,18 +2020-05-18,Brazos,Texas,48041,333,18 +2020-05-19,Brazos,Texas,48041,341,18 +2020-05-20,Brazos,Texas,48041,362,18 +2020-05-21,Brazos,Texas,48041,373,18 +2020-05-22,Brazos,Texas,48041,383,18 +2020-05-23,Brazos,Texas,48041,436,19 +2020-05-24,Brazos,Texas,48041,438,19 +2020-05-25,Brazos,Texas,48041,441,19 +2020-05-26,Brazos,Texas,48041,444,19 +2020-05-27,Brazos,Texas,48041,455,19 +2020-05-28,Brazos,Texas,48041,463,19 +2020-05-29,Brazos,Texas,48041,470,19 +2020-05-30,Brazos,Texas,48041,477,19 +2020-05-31,Brazos,Texas,48041,483,19 +2020-06-01,Brazos,Texas,48041,487,19 +2020-06-02,Brazos,Texas,48041,501,19 +2020-06-03,Brazos,Texas,48041,517,21 +2020-06-04,Brazos,Texas,48041,532,22 +2020-06-05,Brazos,Texas,48041,565,22 +2020-06-06,Brazos,Texas,48041,605,22 +2020-06-07,Brazos,Texas,48041,626,22 +2020-06-08,Brazos,Texas,48041,634,22 +2020-06-09,Brazos,Texas,48041,665,24 +2020-06-10,Brazos,Texas,48041,684,24 +2020-06-11,Brazos,Texas,48041,710,24 +2020-06-12,Brazos,Texas,48041,721,24 +2020-06-13,Brazos,Texas,48041,781,25 +2020-06-14,Brazos,Texas,48041,803,25 +2020-06-15,Brazos,Texas,48041,821,25 +2020-06-16,Brazos,Texas,48041,880,25 +2020-06-17,Brazos,Texas,48041,1025,25 +2020-06-18,Brazos,Texas,48041,1095,25 +2020-06-19,Brazos,Texas,48041,1163,25 +2020-06-20,Brazos,Texas,48041,1225,25 +2020-06-21,Brazos,Texas,48041,1244,25 +2020-06-22,Brazos,Texas,48041,1260,25 +2020-06-23,Brazos,Texas,48041,1305,25 +2020-06-24,Brazos,Texas,48041,1377,26 +2020-06-25,Brazos,Texas,48041,1493,27 +2020-06-26,Brazos,Texas,48041,1615,28 +2020-06-27,Brazos,Texas,48041,1720,29 +2020-06-28,Brazos,Texas,48041,1822,29 +2020-06-29,Brazos,Texas,48041,1943,29 +2020-06-30,Brazos,Texas,48041,2005,31 +2020-07-01,Brazos,Texas,48041,2127,31 +2020-07-02,Brazos,Texas,48041,2228,31 +2020-07-03,Brazos,Texas,48041,2331,31 +2020-07-04,Brazos,Texas,48041,2401,33 +2020-07-05,Brazos,Texas,48041,2484,34 +2020-07-06,Brazos,Texas,48041,2532,34 +2020-07-07,Brazos,Texas,48041,2626,34 +2020-07-08,Brazos,Texas,48041,2704,34 +2020-07-09,Brazos,Texas,48041,2804,34 +2020-05-01,Brewster,Texas,48043,1,0 +2020-05-02,Brewster,Texas,48043,1,0 +2020-05-03,Brewster,Texas,48043,1,0 +2020-05-04,Brewster,Texas,48043,1,0 +2020-05-05,Brewster,Texas,48043,1,0 +2020-05-06,Brewster,Texas,48043,1,0 +2020-05-07,Brewster,Texas,48043,1,0 +2020-05-08,Brewster,Texas,48043,1,0 +2020-05-09,Brewster,Texas,48043,1,0 +2020-05-10,Brewster,Texas,48043,1,0 +2020-05-11,Brewster,Texas,48043,1,0 +2020-05-12,Brewster,Texas,48043,1,0 +2020-05-13,Brewster,Texas,48043,1,0 +2020-05-14,Brewster,Texas,48043,1,0 +2020-05-15,Brewster,Texas,48043,1,0 +2020-05-16,Brewster,Texas,48043,1,0 +2020-05-17,Brewster,Texas,48043,1,0 +2020-05-18,Brewster,Texas,48043,1,0 +2020-05-19,Brewster,Texas,48043,1,0 +2020-05-20,Brewster,Texas,48043,1,0 +2020-05-21,Brewster,Texas,48043,1,0 +2020-05-22,Brewster,Texas,48043,1,0 +2020-05-23,Brewster,Texas,48043,1,0 +2020-05-24,Brewster,Texas,48043,1,0 +2020-05-25,Brewster,Texas,48043,1,0 +2020-05-26,Brewster,Texas,48043,1,0 +2020-05-27,Brewster,Texas,48043,1,0 +2020-05-28,Brewster,Texas,48043,1,0 +2020-05-29,Brewster,Texas,48043,1,0 +2020-05-30,Brewster,Texas,48043,1,0 +2020-05-31,Brewster,Texas,48043,1,0 +2020-06-01,Brewster,Texas,48043,1,0 +2020-06-02,Brewster,Texas,48043,1,0 +2020-06-03,Brewster,Texas,48043,1,0 +2020-06-04,Brewster,Texas,48043,1,0 +2020-06-05,Brewster,Texas,48043,1,0 +2020-06-06,Brewster,Texas,48043,1,0 +2020-06-07,Brewster,Texas,48043,1,0 +2020-06-08,Brewster,Texas,48043,1,0 +2020-06-09,Brewster,Texas,48043,1,0 +2020-06-10,Brewster,Texas,48043,1,0 +2020-06-11,Brewster,Texas,48043,1,0 +2020-06-12,Brewster,Texas,48043,1,0 +2020-06-13,Brewster,Texas,48043,4,0 +2020-06-14,Brewster,Texas,48043,7,0 +2020-06-15,Brewster,Texas,48043,11,0 +2020-06-16,Brewster,Texas,48043,13,0 +2020-06-17,Brewster,Texas,48043,18,0 +2020-06-18,Brewster,Texas,48043,22,0 +2020-06-19,Brewster,Texas,48043,24,0 +2020-06-20,Brewster,Texas,48043,24,0 +2020-06-21,Brewster,Texas,48043,24,0 +2020-06-22,Brewster,Texas,48043,39,0 +2020-06-23,Brewster,Texas,48043,45,0 +2020-06-24,Brewster,Texas,48043,61,0 +2020-06-25,Brewster,Texas,48043,76,0 +2020-06-26,Brewster,Texas,48043,85,0 +2020-06-27,Brewster,Texas,48043,85,0 +2020-06-28,Brewster,Texas,48043,85,0 +2020-06-29,Brewster,Texas,48043,85,0 +2020-06-30,Brewster,Texas,48043,130,1 +2020-07-01,Brewster,Texas,48043,136,1 +2020-07-02,Brewster,Texas,48043,142,1 +2020-07-03,Brewster,Texas,48043,143,1 +2020-07-04,Brewster,Texas,48043,143,1 +2020-07-05,Brewster,Texas,48043,143,1 +2020-07-06,Brewster,Texas,48043,143,1 +2020-07-07,Brewster,Texas,48043,146,1 +2020-07-08,Brewster,Texas,48043,147,1 +2020-07-09,Brewster,Texas,48043,148,1 +2020-05-02,Briscoe,Texas,48045,1,0 +2020-05-03,Briscoe,Texas,48045,1,0 +2020-05-04,Briscoe,Texas,48045,1,0 +2020-05-05,Briscoe,Texas,48045,1,0 +2020-05-06,Briscoe,Texas,48045,1,0 +2020-05-07,Briscoe,Texas,48045,1,0 +2020-05-08,Briscoe,Texas,48045,1,0 +2020-05-09,Briscoe,Texas,48045,1,0 +2020-05-10,Briscoe,Texas,48045,1,0 +2020-05-11,Briscoe,Texas,48045,1,0 +2020-05-12,Briscoe,Texas,48045,1,0 +2020-05-13,Briscoe,Texas,48045,1,0 +2020-05-14,Briscoe,Texas,48045,1,0 +2020-05-15,Briscoe,Texas,48045,1,0 +2020-05-16,Briscoe,Texas,48045,1,0 +2020-05-17,Briscoe,Texas,48045,1,0 +2020-05-18,Briscoe,Texas,48045,1,0 +2020-05-19,Briscoe,Texas,48045,1,0 +2020-05-20,Briscoe,Texas,48045,1,0 +2020-05-21,Briscoe,Texas,48045,1,0 +2020-05-22,Briscoe,Texas,48045,1,0 +2020-05-23,Briscoe,Texas,48045,1,0 +2020-05-24,Briscoe,Texas,48045,1,0 +2020-05-25,Briscoe,Texas,48045,1,0 +2020-05-26,Briscoe,Texas,48045,1,0 +2020-05-27,Briscoe,Texas,48045,1,0 +2020-05-28,Briscoe,Texas,48045,1,0 +2020-05-29,Briscoe,Texas,48045,1,0 +2020-05-30,Briscoe,Texas,48045,1,0 +2020-05-31,Briscoe,Texas,48045,1,0 +2020-06-01,Briscoe,Texas,48045,1,0 +2020-06-02,Briscoe,Texas,48045,1,0 +2020-06-03,Briscoe,Texas,48045,1,0 +2020-06-04,Briscoe,Texas,48045,1,0 +2020-06-05,Briscoe,Texas,48045,1,0 +2020-06-06,Briscoe,Texas,48045,1,0 +2020-06-07,Briscoe,Texas,48045,1,0 +2020-06-08,Briscoe,Texas,48045,1,0 +2020-06-09,Briscoe,Texas,48045,1,0 +2020-06-10,Briscoe,Texas,48045,1,0 +2020-06-11,Briscoe,Texas,48045,1,0 +2020-06-12,Briscoe,Texas,48045,1,0 +2020-06-13,Briscoe,Texas,48045,1,0 +2020-06-14,Briscoe,Texas,48045,1,0 +2020-06-15,Briscoe,Texas,48045,1,0 +2020-06-16,Briscoe,Texas,48045,1,0 +2020-06-17,Briscoe,Texas,48045,1,0 +2020-06-18,Briscoe,Texas,48045,1,0 +2020-06-19,Briscoe,Texas,48045,1,0 +2020-06-20,Briscoe,Texas,48045,1,0 +2020-06-21,Briscoe,Texas,48045,1,0 +2020-06-22,Briscoe,Texas,48045,1,0 +2020-06-23,Briscoe,Texas,48045,1,0 +2020-06-24,Briscoe,Texas,48045,1,0 +2020-06-25,Briscoe,Texas,48045,2,0 +2020-06-26,Briscoe,Texas,48045,2,0 +2020-06-27,Briscoe,Texas,48045,2,0 +2020-06-28,Briscoe,Texas,48045,2,0 +2020-06-29,Briscoe,Texas,48045,2,0 +2020-06-30,Briscoe,Texas,48045,2,0 +2020-07-01,Briscoe,Texas,48045,3,0 +2020-07-02,Briscoe,Texas,48045,3,0 +2020-07-03,Briscoe,Texas,48045,3,0 +2020-07-04,Briscoe,Texas,48045,7,0 +2020-07-05,Briscoe,Texas,48045,7,0 +2020-07-06,Briscoe,Texas,48045,7,0 +2020-07-07,Briscoe,Texas,48045,8,0 +2020-07-08,Briscoe,Texas,48045,8,0 +2020-07-09,Briscoe,Texas,48045,9,0 +2020-04-22,Brooks,Texas,48047,1,0 +2020-04-23,Brooks,Texas,48047,1,0 +2020-04-24,Brooks,Texas,48047,1,0 +2020-04-25,Brooks,Texas,48047,1,0 +2020-04-26,Brooks,Texas,48047,1,0 +2020-04-27,Brooks,Texas,48047,1,0 +2020-04-28,Brooks,Texas,48047,1,0 +2020-04-29,Brooks,Texas,48047,1,0 +2020-04-30,Brooks,Texas,48047,1,0 +2020-05-01,Brooks,Texas,48047,1,0 +2020-05-02,Brooks,Texas,48047,1,0 +2020-05-03,Brooks,Texas,48047,1,0 +2020-05-04,Brooks,Texas,48047,1,0 +2020-05-05,Brooks,Texas,48047,1,0 +2020-05-06,Brooks,Texas,48047,1,0 +2020-05-07,Brooks,Texas,48047,1,0 +2020-05-08,Brooks,Texas,48047,1,0 +2020-05-09,Brooks,Texas,48047,1,0 +2020-05-10,Brooks,Texas,48047,1,0 +2020-05-11,Brooks,Texas,48047,1,0 +2020-05-12,Brooks,Texas,48047,1,0 +2020-05-13,Brooks,Texas,48047,1,0 +2020-05-14,Brooks,Texas,48047,1,0 +2020-05-15,Brooks,Texas,48047,1,0 +2020-05-16,Brooks,Texas,48047,1,0 +2020-05-17,Brooks,Texas,48047,1,0 +2020-05-18,Brooks,Texas,48047,1,0 +2020-05-19,Brooks,Texas,48047,1,0 +2020-05-20,Brooks,Texas,48047,1,0 +2020-05-21,Brooks,Texas,48047,1,0 +2020-05-22,Brooks,Texas,48047,1,0 +2020-05-23,Brooks,Texas,48047,1,0 +2020-05-24,Brooks,Texas,48047,1,0 +2020-05-25,Brooks,Texas,48047,1,0 +2020-05-26,Brooks,Texas,48047,1,0 +2020-05-27,Brooks,Texas,48047,1,0 +2020-05-28,Brooks,Texas,48047,1,0 +2020-05-29,Brooks,Texas,48047,1,0 +2020-05-30,Brooks,Texas,48047,1,0 +2020-05-31,Brooks,Texas,48047,1,0 +2020-06-01,Brooks,Texas,48047,1,0 +2020-06-02,Brooks,Texas,48047,1,0 +2020-06-03,Brooks,Texas,48047,1,0 +2020-06-04,Brooks,Texas,48047,1,0 +2020-06-05,Brooks,Texas,48047,1,0 +2020-06-06,Brooks,Texas,48047,1,0 +2020-06-07,Brooks,Texas,48047,1,0 +2020-06-08,Brooks,Texas,48047,1,0 +2020-06-09,Brooks,Texas,48047,1,0 +2020-06-10,Brooks,Texas,48047,1,0 +2020-06-11,Brooks,Texas,48047,1,0 +2020-06-12,Brooks,Texas,48047,1,0 +2020-06-13,Brooks,Texas,48047,1,0 +2020-06-14,Brooks,Texas,48047,2,0 +2020-06-15,Brooks,Texas,48047,2,0 +2020-06-16,Brooks,Texas,48047,2,0 +2020-06-17,Brooks,Texas,48047,2,0 +2020-06-18,Brooks,Texas,48047,2,0 +2020-06-19,Brooks,Texas,48047,2,0 +2020-06-20,Brooks,Texas,48047,2,0 +2020-06-21,Brooks,Texas,48047,3,0 +2020-06-22,Brooks,Texas,48047,3,0 +2020-06-23,Brooks,Texas,48047,3,0 +2020-06-24,Brooks,Texas,48047,3,0 +2020-06-25,Brooks,Texas,48047,3,0 +2020-06-26,Brooks,Texas,48047,3,0 +2020-06-27,Brooks,Texas,48047,3,0 +2020-06-28,Brooks,Texas,48047,3,0 +2020-06-29,Brooks,Texas,48047,3,0 +2020-06-30,Brooks,Texas,48047,3,0 +2020-07-01,Brooks,Texas,48047,3,0 +2020-07-02,Brooks,Texas,48047,6,0 +2020-07-03,Brooks,Texas,48047,6,0 +2020-07-04,Brooks,Texas,48047,9,0 +2020-07-05,Brooks,Texas,48047,9,0 +2020-07-06,Brooks,Texas,48047,10,0 +2020-07-07,Brooks,Texas,48047,11,0 +2020-07-08,Brooks,Texas,48047,18,0 +2020-07-09,Brooks,Texas,48047,29,0 +2020-03-20,Brown,Texas,48049,1,0 +2020-03-21,Brown,Texas,48049,2,0 +2020-03-22,Brown,Texas,48049,2,0 +2020-03-23,Brown,Texas,48049,2,0 +2020-03-24,Brown,Texas,48049,2,0 +2020-03-25,Brown,Texas,48049,2,0 +2020-03-26,Brown,Texas,48049,3,0 +2020-03-27,Brown,Texas,48049,3,0 +2020-03-28,Brown,Texas,48049,3,0 +2020-03-29,Brown,Texas,48049,3,0 +2020-03-30,Brown,Texas,48049,3,0 +2020-03-31,Brown,Texas,48049,3,0 +2020-04-01,Brown,Texas,48049,3,0 +2020-04-02,Brown,Texas,48049,3,0 +2020-04-03,Brown,Texas,48049,4,0 +2020-04-04,Brown,Texas,48049,4,0 +2020-04-05,Brown,Texas,48049,5,0 +2020-04-06,Brown,Texas,48049,5,0 +2020-04-07,Brown,Texas,48049,6,0 +2020-04-08,Brown,Texas,48049,6,0 +2020-04-09,Brown,Texas,48049,8,0 +2020-04-10,Brown,Texas,48049,8,0 +2020-04-11,Brown,Texas,48049,10,0 +2020-04-12,Brown,Texas,48049,10,0 +2020-04-13,Brown,Texas,48049,10,1 +2020-04-14,Brown,Texas,48049,11,1 +2020-04-15,Brown,Texas,48049,11,1 +2020-04-16,Brown,Texas,48049,12,1 +2020-04-17,Brown,Texas,48049,12,1 +2020-04-18,Brown,Texas,48049,12,1 +2020-04-19,Brown,Texas,48049,13,1 +2020-04-20,Brown,Texas,48049,13,1 +2020-04-21,Brown,Texas,48049,13,1 +2020-04-22,Brown,Texas,48049,13,1 +2020-04-23,Brown,Texas,48049,13,1 +2020-04-24,Brown,Texas,48049,17,1 +2020-04-25,Brown,Texas,48049,17,1 +2020-04-26,Brown,Texas,48049,17,1 +2020-04-27,Brown,Texas,48049,28,2 +2020-04-28,Brown,Texas,48049,34,3 +2020-04-29,Brown,Texas,48049,34,3 +2020-04-30,Brown,Texas,48049,36,4 +2020-05-01,Brown,Texas,48049,36,4 +2020-05-02,Brown,Texas,48049,36,5 +2020-05-03,Brown,Texas,48049,36,5 +2020-05-04,Brown,Texas,48049,36,5 +2020-05-05,Brown,Texas,48049,38,6 +2020-05-06,Brown,Texas,48049,38,6 +2020-05-07,Brown,Texas,48049,38,6 +2020-05-08,Brown,Texas,48049,38,6 +2020-05-09,Brown,Texas,48049,38,6 +2020-05-10,Brown,Texas,48049,38,6 +2020-05-11,Brown,Texas,48049,38,6 +2020-05-12,Brown,Texas,48049,38,6 +2020-05-13,Brown,Texas,48049,51,7 +2020-05-14,Brown,Texas,48049,51,7 +2020-05-15,Brown,Texas,48049,51,7 +2020-05-16,Brown,Texas,48049,51,7 +2020-05-17,Brown,Texas,48049,51,7 +2020-05-18,Brown,Texas,48049,51,7 +2020-05-19,Brown,Texas,48049,51,7 +2020-05-20,Brown,Texas,48049,55,7 +2020-05-21,Brown,Texas,48049,55,7 +2020-05-22,Brown,Texas,48049,55,7 +2020-05-23,Brown,Texas,48049,56,8 +2020-05-24,Brown,Texas,48049,56,8 +2020-05-25,Brown,Texas,48049,56,8 +2020-05-26,Brown,Texas,48049,57,9 +2020-05-27,Brown,Texas,48049,57,9 +2020-05-28,Brown,Texas,48049,57,9 +2020-05-29,Brown,Texas,48049,58,9 +2020-05-30,Brown,Texas,48049,58,9 +2020-05-31,Brown,Texas,48049,58,9 +2020-06-01,Brown,Texas,48049,58,9 +2020-06-02,Brown,Texas,48049,59,10 +2020-06-03,Brown,Texas,48049,59,10 +2020-06-04,Brown,Texas,48049,59,10 +2020-06-05,Brown,Texas,48049,59,10 +2020-06-06,Brown,Texas,48049,59,10 +2020-06-07,Brown,Texas,48049,59,10 +2020-06-08,Brown,Texas,48049,59,10 +2020-06-09,Brown,Texas,48049,60,10 +2020-06-10,Brown,Texas,48049,60,10 +2020-06-11,Brown,Texas,48049,60,10 +2020-06-12,Brown,Texas,48049,60,10 +2020-06-13,Brown,Texas,48049,60,10 +2020-06-14,Brown,Texas,48049,60,10 +2020-06-15,Brown,Texas,48049,60,10 +2020-06-16,Brown,Texas,48049,61,10 +2020-06-17,Brown,Texas,48049,61,10 +2020-06-18,Brown,Texas,48049,61,10 +2020-06-19,Brown,Texas,48049,62,10 +2020-06-20,Brown,Texas,48049,62,10 +2020-06-21,Brown,Texas,48049,62,10 +2020-06-22,Brown,Texas,48049,62,10 +2020-06-23,Brown,Texas,48049,65,10 +2020-06-24,Brown,Texas,48049,65,10 +2020-06-25,Brown,Texas,48049,66,10 +2020-06-26,Brown,Texas,48049,68,10 +2020-06-27,Brown,Texas,48049,68,10 +2020-06-28,Brown,Texas,48049,68,10 +2020-06-29,Brown,Texas,48049,68,10 +2020-06-30,Brown,Texas,48049,73,10 +2020-07-01,Brown,Texas,48049,77,10 +2020-07-02,Brown,Texas,48049,85,10 +2020-07-03,Brown,Texas,48049,87,11 +2020-07-04,Brown,Texas,48049,99,13 +2020-07-05,Brown,Texas,48049,99,13 +2020-07-06,Brown,Texas,48049,99,13 +2020-07-07,Brown,Texas,48049,99,13 +2020-07-08,Brown,Texas,48049,156,13 +2020-07-09,Brown,Texas,48049,162,13 +2020-03-28,Burleson,Texas,48051,1,0 +2020-03-29,Burleson,Texas,48051,1,0 +2020-03-30,Burleson,Texas,48051,1,0 +2020-03-31,Burleson,Texas,48051,1,0 +2020-04-01,Burleson,Texas,48051,1,0 +2020-04-02,Burleson,Texas,48051,1,0 +2020-04-03,Burleson,Texas,48051,1,0 +2020-04-04,Burleson,Texas,48051,2,0 +2020-04-05,Burleson,Texas,48051,2,0 +2020-04-06,Burleson,Texas,48051,2,0 +2020-04-07,Burleson,Texas,48051,5,0 +2020-04-08,Burleson,Texas,48051,5,0 +2020-04-09,Burleson,Texas,48051,5,0 +2020-04-10,Burleson,Texas,48051,6,0 +2020-04-11,Burleson,Texas,48051,6,0 +2020-04-12,Burleson,Texas,48051,6,0 +2020-04-13,Burleson,Texas,48051,6,0 +2020-04-14,Burleson,Texas,48051,6,0 +2020-04-15,Burleson,Texas,48051,8,0 +2020-04-16,Burleson,Texas,48051,8,0 +2020-04-17,Burleson,Texas,48051,9,0 +2020-04-18,Burleson,Texas,48051,8,0 +2020-04-19,Burleson,Texas,48051,8,0 +2020-04-20,Burleson,Texas,48051,8,0 +2020-04-21,Burleson,Texas,48051,9,0 +2020-04-22,Burleson,Texas,48051,10,0 +2020-04-23,Burleson,Texas,48051,11,0 +2020-04-24,Burleson,Texas,48051,11,0 +2020-04-25,Burleson,Texas,48051,11,0 +2020-04-26,Burleson,Texas,48051,11,0 +2020-04-27,Burleson,Texas,48051,11,0 +2020-04-28,Burleson,Texas,48051,12,0 +2020-04-29,Burleson,Texas,48051,12,0 +2020-04-30,Burleson,Texas,48051,12,0 +2020-05-01,Burleson,Texas,48051,13,0 +2020-05-02,Burleson,Texas,48051,14,0 +2020-05-03,Burleson,Texas,48051,14,0 +2020-05-04,Burleson,Texas,48051,14,0 +2020-05-05,Burleson,Texas,48051,14,0 +2020-05-06,Burleson,Texas,48051,14,0 +2020-05-07,Burleson,Texas,48051,14,0 +2020-05-08,Burleson,Texas,48051,15,0 +2020-05-09,Burleson,Texas,48051,15,0 +2020-05-10,Burleson,Texas,48051,15,0 +2020-05-11,Burleson,Texas,48051,15,0 +2020-05-12,Burleson,Texas,48051,16,0 +2020-05-13,Burleson,Texas,48051,16,0 +2020-05-14,Burleson,Texas,48051,17,0 +2020-05-15,Burleson,Texas,48051,17,0 +2020-05-16,Burleson,Texas,48051,18,0 +2020-05-17,Burleson,Texas,48051,18,0 +2020-05-18,Burleson,Texas,48051,18,0 +2020-05-19,Burleson,Texas,48051,20,0 +2020-05-20,Burleson,Texas,48051,20,0 +2020-05-21,Burleson,Texas,48051,20,0 +2020-05-22,Burleson,Texas,48051,20,0 +2020-05-23,Burleson,Texas,48051,22,0 +2020-05-24,Burleson,Texas,48051,22,0 +2020-05-25,Burleson,Texas,48051,22,0 +2020-05-26,Burleson,Texas,48051,22,0 +2020-05-27,Burleson,Texas,48051,22,0 +2020-05-28,Burleson,Texas,48051,23,0 +2020-05-29,Burleson,Texas,48051,24,0 +2020-05-30,Burleson,Texas,48051,24,0 +2020-05-31,Burleson,Texas,48051,24,0 +2020-06-01,Burleson,Texas,48051,25,0 +2020-06-02,Burleson,Texas,48051,25,0 +2020-06-03,Burleson,Texas,48051,26,0 +2020-06-04,Burleson,Texas,48051,28,0 +2020-06-05,Burleson,Texas,48051,29,0 +2020-06-06,Burleson,Texas,48051,32,0 +2020-06-07,Burleson,Texas,48051,32,0 +2020-06-08,Burleson,Texas,48051,32,0 +2020-06-09,Burleson,Texas,48051,35,0 +2020-06-10,Burleson,Texas,48051,39,0 +2020-06-11,Burleson,Texas,48051,39,0 +2020-06-12,Burleson,Texas,48051,40,0 +2020-06-13,Burleson,Texas,48051,41,0 +2020-06-14,Burleson,Texas,48051,41,0 +2020-06-15,Burleson,Texas,48051,41,0 +2020-06-16,Burleson,Texas,48051,45,0 +2020-06-17,Burleson,Texas,48051,48,0 +2020-06-18,Burleson,Texas,48051,53,0 +2020-06-19,Burleson,Texas,48051,53,0 +2020-06-20,Burleson,Texas,48051,54,0 +2020-06-21,Burleson,Texas,48051,55,0 +2020-06-22,Burleson,Texas,48051,60,0 +2020-06-23,Burleson,Texas,48051,67,0 +2020-06-24,Burleson,Texas,48051,67,0 +2020-06-25,Burleson,Texas,48051,68,0 +2020-06-26,Burleson,Texas,48051,69,0 +2020-06-27,Burleson,Texas,48051,70,0 +2020-06-28,Burleson,Texas,48051,74,0 +2020-06-29,Burleson,Texas,48051,76,0 +2020-06-30,Burleson,Texas,48051,76,0 +2020-07-01,Burleson,Texas,48051,83,0 +2020-07-02,Burleson,Texas,48051,84,0 +2020-07-03,Burleson,Texas,48051,86,0 +2020-07-04,Burleson,Texas,48051,87,0 +2020-07-05,Burleson,Texas,48051,87,0 +2020-07-06,Burleson,Texas,48051,93,0 +2020-07-07,Burleson,Texas,48051,93,0 +2020-07-08,Burleson,Texas,48051,120,0 +2020-07-09,Burleson,Texas,48051,131,0 +2020-03-25,Burnet,Texas,48053,1,0 +2020-03-26,Burnet,Texas,48053,1,0 +2020-03-27,Burnet,Texas,48053,1,0 +2020-03-28,Burnet,Texas,48053,1,0 +2020-03-29,Burnet,Texas,48053,1,0 +2020-03-30,Burnet,Texas,48053,2,0 +2020-03-31,Burnet,Texas,48053,2,0 +2020-04-01,Burnet,Texas,48053,3,0 +2020-04-02,Burnet,Texas,48053,4,0 +2020-04-03,Burnet,Texas,48053,4,0 +2020-04-04,Burnet,Texas,48053,4,0 +2020-04-05,Burnet,Texas,48053,4,0 +2020-04-06,Burnet,Texas,48053,4,0 +2020-04-07,Burnet,Texas,48053,5,0 +2020-04-08,Burnet,Texas,48053,5,0 +2020-04-09,Burnet,Texas,48053,5,0 +2020-04-10,Burnet,Texas,48053,6,0 +2020-04-11,Burnet,Texas,48053,6,0 +2020-04-12,Burnet,Texas,48053,6,0 +2020-04-13,Burnet,Texas,48053,6,0 +2020-04-14,Burnet,Texas,48053,6,0 +2020-04-15,Burnet,Texas,48053,7,0 +2020-04-16,Burnet,Texas,48053,7,0 +2020-04-17,Burnet,Texas,48053,8,0 +2020-04-18,Burnet,Texas,48053,8,0 +2020-04-19,Burnet,Texas,48053,8,0 +2020-04-20,Burnet,Texas,48053,9,0 +2020-04-21,Burnet,Texas,48053,13,0 +2020-04-22,Burnet,Texas,48053,13,0 +2020-04-23,Burnet,Texas,48053,14,0 +2020-04-24,Burnet,Texas,48053,14,0 +2020-04-25,Burnet,Texas,48053,14,0 +2020-04-26,Burnet,Texas,48053,14,0 +2020-04-27,Burnet,Texas,48053,15,0 +2020-04-28,Burnet,Texas,48053,15,0 +2020-04-29,Burnet,Texas,48053,16,0 +2020-04-30,Burnet,Texas,48053,19,0 +2020-05-01,Burnet,Texas,48053,19,0 +2020-05-02,Burnet,Texas,48053,20,0 +2020-05-03,Burnet,Texas,48053,19,0 +2020-05-04,Burnet,Texas,48053,23,0 +2020-05-05,Burnet,Texas,48053,24,0 +2020-05-06,Burnet,Texas,48053,24,0 +2020-05-07,Burnet,Texas,48053,24,0 +2020-05-08,Burnet,Texas,48053,25,0 +2020-05-09,Burnet,Texas,48053,26,0 +2020-05-10,Burnet,Texas,48053,26,0 +2020-05-11,Burnet,Texas,48053,26,0 +2020-05-12,Burnet,Texas,48053,28,0 +2020-05-13,Burnet,Texas,48053,28,0 +2020-05-14,Burnet,Texas,48053,28,0 +2020-05-15,Burnet,Texas,48053,28,0 +2020-05-16,Burnet,Texas,48053,28,0 +2020-05-17,Burnet,Texas,48053,28,0 +2020-05-18,Burnet,Texas,48053,28,0 +2020-05-19,Burnet,Texas,48053,28,0 +2020-05-20,Burnet,Texas,48053,28,0 +2020-05-21,Burnet,Texas,48053,29,0 +2020-05-22,Burnet,Texas,48053,29,0 +2020-05-23,Burnet,Texas,48053,29,0 +2020-05-24,Burnet,Texas,48053,29,0 +2020-05-25,Burnet,Texas,48053,29,0 +2020-05-26,Burnet,Texas,48053,29,0 +2020-05-27,Burnet,Texas,48053,30,0 +2020-05-28,Burnet,Texas,48053,32,0 +2020-05-29,Burnet,Texas,48053,35,0 +2020-05-30,Burnet,Texas,48053,36,0 +2020-05-31,Burnet,Texas,48053,37,0 +2020-06-01,Burnet,Texas,48053,38,0 +2020-06-02,Burnet,Texas,48053,39,0 +2020-06-03,Burnet,Texas,48053,45,0 +2020-06-04,Burnet,Texas,48053,49,0 +2020-06-05,Burnet,Texas,48053,49,0 +2020-06-06,Burnet,Texas,48053,51,1 +2020-06-07,Burnet,Texas,48053,54,1 +2020-06-08,Burnet,Texas,48053,54,1 +2020-06-09,Burnet,Texas,48053,55,1 +2020-06-10,Burnet,Texas,48053,55,1 +2020-06-11,Burnet,Texas,48053,56,1 +2020-06-12,Burnet,Texas,48053,56,1 +2020-06-13,Burnet,Texas,48053,61,1 +2020-06-14,Burnet,Texas,48053,62,1 +2020-06-15,Burnet,Texas,48053,62,1 +2020-06-16,Burnet,Texas,48053,62,1 +2020-06-17,Burnet,Texas,48053,66,1 +2020-06-18,Burnet,Texas,48053,75,2 +2020-06-19,Burnet,Texas,48053,79,3 +2020-06-20,Burnet,Texas,48053,80,3 +2020-06-21,Burnet,Texas,48053,80,3 +2020-06-22,Burnet,Texas,48053,89,3 +2020-06-23,Burnet,Texas,48053,97,3 +2020-06-24,Burnet,Texas,48053,100,3 +2020-06-25,Burnet,Texas,48053,100,3 +2020-06-26,Burnet,Texas,48053,115,3 +2020-06-27,Burnet,Texas,48053,116,3 +2020-06-28,Burnet,Texas,48053,117,3 +2020-06-29,Burnet,Texas,48053,129,3 +2020-06-30,Burnet,Texas,48053,129,3 +2020-07-01,Burnet,Texas,48053,135,3 +2020-07-02,Burnet,Texas,48053,141,3 +2020-07-03,Burnet,Texas,48053,143,3 +2020-07-04,Burnet,Texas,48053,145,3 +2020-07-05,Burnet,Texas,48053,145,3 +2020-07-06,Burnet,Texas,48053,181,3 +2020-07-07,Burnet,Texas,48053,181,3 +2020-07-08,Burnet,Texas,48053,203,3 +2020-07-09,Burnet,Texas,48053,215,3 +2020-03-28,Caldwell,Texas,48055,1,0 +2020-03-29,Caldwell,Texas,48055,1,0 +2020-03-30,Caldwell,Texas,48055,1,0 +2020-03-31,Caldwell,Texas,48055,1,0 +2020-04-01,Caldwell,Texas,48055,1,0 +2020-04-02,Caldwell,Texas,48055,1,0 +2020-04-03,Caldwell,Texas,48055,2,0 +2020-04-04,Caldwell,Texas,48055,3,0 +2020-04-05,Caldwell,Texas,48055,3,0 +2020-04-06,Caldwell,Texas,48055,3,0 +2020-04-07,Caldwell,Texas,48055,5,0 +2020-04-08,Caldwell,Texas,48055,5,0 +2020-04-09,Caldwell,Texas,48055,5,0 +2020-04-10,Caldwell,Texas,48055,6,0 +2020-04-11,Caldwell,Texas,48055,6,0 +2020-04-12,Caldwell,Texas,48055,6,0 +2020-04-13,Caldwell,Texas,48055,6,0 +2020-04-14,Caldwell,Texas,48055,6,0 +2020-04-15,Caldwell,Texas,48055,6,0 +2020-04-16,Caldwell,Texas,48055,7,0 +2020-04-17,Caldwell,Texas,48055,7,0 +2020-04-18,Caldwell,Texas,48055,7,0 +2020-04-19,Caldwell,Texas,48055,7,0 +2020-04-20,Caldwell,Texas,48055,8,0 +2020-04-21,Caldwell,Texas,48055,9,0 +2020-04-22,Caldwell,Texas,48055,8,0 +2020-04-23,Caldwell,Texas,48055,10,0 +2020-04-24,Caldwell,Texas,48055,10,0 +2020-04-25,Caldwell,Texas,48055,10,0 +2020-04-26,Caldwell,Texas,48055,11,0 +2020-04-27,Caldwell,Texas,48055,11,0 +2020-04-28,Caldwell,Texas,48055,11,0 +2020-04-29,Caldwell,Texas,48055,11,0 +2020-04-30,Caldwell,Texas,48055,14,0 +2020-05-01,Caldwell,Texas,48055,14,0 +2020-05-02,Caldwell,Texas,48055,20,0 +2020-05-03,Caldwell,Texas,48055,20,0 +2020-05-04,Caldwell,Texas,48055,21,0 +2020-05-05,Caldwell,Texas,48055,23,0 +2020-05-06,Caldwell,Texas,48055,24,0 +2020-05-07,Caldwell,Texas,48055,25,0 +2020-05-08,Caldwell,Texas,48055,25,0 +2020-05-09,Caldwell,Texas,48055,26,0 +2020-05-10,Caldwell,Texas,48055,27,0 +2020-05-11,Caldwell,Texas,48055,30,0 +2020-05-12,Caldwell,Texas,48055,31,0 +2020-05-13,Caldwell,Texas,48055,33,0 +2020-05-14,Caldwell,Texas,48055,33,0 +2020-05-15,Caldwell,Texas,48055,35,0 +2020-05-16,Caldwell,Texas,48055,36,0 +2020-05-17,Caldwell,Texas,48055,36,0 +2020-05-18,Caldwell,Texas,48055,36,0 +2020-05-19,Caldwell,Texas,48055,39,0 +2020-05-20,Caldwell,Texas,48055,39,0 +2020-05-21,Caldwell,Texas,48055,41,0 +2020-05-22,Caldwell,Texas,48055,41,0 +2020-05-23,Caldwell,Texas,48055,50,0 +2020-05-24,Caldwell,Texas,48055,50,0 +2020-05-25,Caldwell,Texas,48055,50,0 +2020-05-26,Caldwell,Texas,48055,51,0 +2020-05-27,Caldwell,Texas,48055,52,0 +2020-05-28,Caldwell,Texas,48055,57,0 +2020-05-29,Caldwell,Texas,48055,63,0 +2020-05-30,Caldwell,Texas,48055,64,0 +2020-05-31,Caldwell,Texas,48055,65,0 +2020-06-01,Caldwell,Texas,48055,66,0 +2020-06-02,Caldwell,Texas,48055,67,0 +2020-06-03,Caldwell,Texas,48055,73,0 +2020-06-04,Caldwell,Texas,48055,73,0 +2020-06-05,Caldwell,Texas,48055,74,0 +2020-06-06,Caldwell,Texas,48055,76,0 +2020-06-07,Caldwell,Texas,48055,77,0 +2020-06-08,Caldwell,Texas,48055,77,0 +2020-06-09,Caldwell,Texas,48055,79,0 +2020-06-10,Caldwell,Texas,48055,81,0 +2020-06-11,Caldwell,Texas,48055,85,0 +2020-06-12,Caldwell,Texas,48055,87,0 +2020-06-13,Caldwell,Texas,48055,95,0 +2020-06-14,Caldwell,Texas,48055,147,0 +2020-06-15,Caldwell,Texas,48055,147,0 +2020-06-16,Caldwell,Texas,48055,157,0 +2020-06-17,Caldwell,Texas,48055,170,1 +2020-06-18,Caldwell,Texas,48055,190,1 +2020-06-19,Caldwell,Texas,48055,197,1 +2020-06-20,Caldwell,Texas,48055,208,1 +2020-06-21,Caldwell,Texas,48055,216,1 +2020-06-22,Caldwell,Texas,48055,226,1 +2020-06-23,Caldwell,Texas,48055,275,1 +2020-06-24,Caldwell,Texas,48055,286,1 +2020-06-25,Caldwell,Texas,48055,286,1 +2020-06-26,Caldwell,Texas,48055,297,1 +2020-06-27,Caldwell,Texas,48055,303,1 +2020-06-28,Caldwell,Texas,48055,307,2 +2020-06-29,Caldwell,Texas,48055,332,2 +2020-06-30,Caldwell,Texas,48055,336,2 +2020-07-01,Caldwell,Texas,48055,346,2 +2020-07-02,Caldwell,Texas,48055,377,2 +2020-07-03,Caldwell,Texas,48055,383,2 +2020-07-04,Caldwell,Texas,48055,437,2 +2020-07-05,Caldwell,Texas,48055,437,2 +2020-07-06,Caldwell,Texas,48055,460,2 +2020-07-07,Caldwell,Texas,48055,494,2 +2020-07-08,Caldwell,Texas,48055,550,3 +2020-07-09,Caldwell,Texas,48055,591,4 +2020-03-26,Calhoun,Texas,48057,2,0 +2020-03-27,Calhoun,Texas,48057,2,0 +2020-03-28,Calhoun,Texas,48057,3,0 +2020-03-29,Calhoun,Texas,48057,3,0 +2020-03-30,Calhoun,Texas,48057,3,0 +2020-03-31,Calhoun,Texas,48057,3,0 +2020-04-01,Calhoun,Texas,48057,7,0 +2020-04-02,Calhoun,Texas,48057,8,0 +2020-04-03,Calhoun,Texas,48057,8,0 +2020-04-04,Calhoun,Texas,48057,8,0 +2020-04-05,Calhoun,Texas,48057,11,0 +2020-04-06,Calhoun,Texas,48057,11,0 +2020-04-07,Calhoun,Texas,48057,12,0 +2020-04-08,Calhoun,Texas,48057,12,0 +2020-04-09,Calhoun,Texas,48057,13,0 +2020-04-10,Calhoun,Texas,48057,14,0 +2020-04-11,Calhoun,Texas,48057,14,0 +2020-04-12,Calhoun,Texas,48057,15,0 +2020-04-13,Calhoun,Texas,48057,15,0 +2020-04-14,Calhoun,Texas,48057,19,0 +2020-04-15,Calhoun,Texas,48057,19,0 +2020-04-16,Calhoun,Texas,48057,19,0 +2020-04-17,Calhoun,Texas,48057,21,0 +2020-04-18,Calhoun,Texas,48057,21,0 +2020-04-19,Calhoun,Texas,48057,21,1 +2020-04-20,Calhoun,Texas,48057,21,1 +2020-04-21,Calhoun,Texas,48057,22,2 +2020-04-22,Calhoun,Texas,48057,22,2 +2020-04-23,Calhoun,Texas,48057,23,2 +2020-04-24,Calhoun,Texas,48057,23,2 +2020-04-25,Calhoun,Texas,48057,26,2 +2020-04-26,Calhoun,Texas,48057,26,2 +2020-04-27,Calhoun,Texas,48057,29,2 +2020-04-28,Calhoun,Texas,48057,30,3 +2020-04-29,Calhoun,Texas,48057,30,3 +2020-04-30,Calhoun,Texas,48057,30,3 +2020-05-01,Calhoun,Texas,48057,30,3 +2020-05-02,Calhoun,Texas,48057,31,3 +2020-05-03,Calhoun,Texas,48057,32,3 +2020-05-04,Calhoun,Texas,48057,33,3 +2020-05-05,Calhoun,Texas,48057,34,3 +2020-05-06,Calhoun,Texas,48057,34,3 +2020-05-07,Calhoun,Texas,48057,34,3 +2020-05-08,Calhoun,Texas,48057,36,3 +2020-05-09,Calhoun,Texas,48057,36,3 +2020-05-10,Calhoun,Texas,48057,36,3 +2020-05-11,Calhoun,Texas,48057,36,3 +2020-05-12,Calhoun,Texas,48057,36,3 +2020-05-13,Calhoun,Texas,48057,36,3 +2020-05-14,Calhoun,Texas,48057,36,3 +2020-05-15,Calhoun,Texas,48057,36,3 +2020-05-16,Calhoun,Texas,48057,36,3 +2020-05-17,Calhoun,Texas,48057,36,3 +2020-05-18,Calhoun,Texas,48057,36,3 +2020-05-19,Calhoun,Texas,48057,36,3 +2020-05-20,Calhoun,Texas,48057,37,3 +2020-05-21,Calhoun,Texas,48057,37,3 +2020-05-22,Calhoun,Texas,48057,37,3 +2020-05-23,Calhoun,Texas,48057,37,3 +2020-05-24,Calhoun,Texas,48057,37,3 +2020-05-25,Calhoun,Texas,48057,37,3 +2020-05-26,Calhoun,Texas,48057,37,3 +2020-05-27,Calhoun,Texas,48057,37,3 +2020-05-28,Calhoun,Texas,48057,37,3 +2020-05-29,Calhoun,Texas,48057,37,3 +2020-05-30,Calhoun,Texas,48057,37,3 +2020-05-31,Calhoun,Texas,48057,37,3 +2020-06-01,Calhoun,Texas,48057,37,3 +2020-06-02,Calhoun,Texas,48057,37,3 +2020-06-03,Calhoun,Texas,48057,37,3 +2020-06-04,Calhoun,Texas,48057,37,3 +2020-06-05,Calhoun,Texas,48057,37,3 +2020-06-06,Calhoun,Texas,48057,38,3 +2020-06-07,Calhoun,Texas,48057,39,3 +2020-06-08,Calhoun,Texas,48057,39,3 +2020-06-09,Calhoun,Texas,48057,41,3 +2020-06-10,Calhoun,Texas,48057,42,3 +2020-06-11,Calhoun,Texas,48057,45,3 +2020-06-12,Calhoun,Texas,48057,46,3 +2020-06-13,Calhoun,Texas,48057,46,3 +2020-06-14,Calhoun,Texas,48057,46,3 +2020-06-15,Calhoun,Texas,48057,46,3 +2020-06-16,Calhoun,Texas,48057,46,3 +2020-06-17,Calhoun,Texas,48057,46,3 +2020-06-18,Calhoun,Texas,48057,46,3 +2020-06-19,Calhoun,Texas,48057,52,3 +2020-06-20,Calhoun,Texas,48057,55,3 +2020-06-21,Calhoun,Texas,48057,55,3 +2020-06-22,Calhoun,Texas,48057,55,3 +2020-06-23,Calhoun,Texas,48057,56,3 +2020-06-24,Calhoun,Texas,48057,58,3 +2020-06-25,Calhoun,Texas,48057,69,3 +2020-06-26,Calhoun,Texas,48057,69,3 +2020-06-27,Calhoun,Texas,48057,72,3 +2020-06-28,Calhoun,Texas,48057,72,3 +2020-06-29,Calhoun,Texas,48057,72,3 +2020-06-30,Calhoun,Texas,48057,74,3 +2020-07-01,Calhoun,Texas,48057,90,3 +2020-07-02,Calhoun,Texas,48057,94,3 +2020-07-03,Calhoun,Texas,48057,96,3 +2020-07-04,Calhoun,Texas,48057,97,3 +2020-07-05,Calhoun,Texas,48057,97,3 +2020-07-06,Calhoun,Texas,48057,97,3 +2020-07-07,Calhoun,Texas,48057,110,3 +2020-07-08,Calhoun,Texas,48057,113,3 +2020-07-09,Calhoun,Texas,48057,126,3 +2020-04-07,Callahan,Texas,48059,1,0 +2020-04-08,Callahan,Texas,48059,1,0 +2020-04-09,Callahan,Texas,48059,1,0 +2020-04-10,Callahan,Texas,48059,1,0 +2020-04-11,Callahan,Texas,48059,1,0 +2020-04-12,Callahan,Texas,48059,1,0 +2020-04-13,Callahan,Texas,48059,1,0 +2020-04-14,Callahan,Texas,48059,1,0 +2020-04-15,Callahan,Texas,48059,1,0 +2020-04-16,Callahan,Texas,48059,1,0 +2020-04-17,Callahan,Texas,48059,1,0 +2020-04-18,Callahan,Texas,48059,1,0 +2020-04-19,Callahan,Texas,48059,1,0 +2020-04-20,Callahan,Texas,48059,1,0 +2020-04-21,Callahan,Texas,48059,1,0 +2020-04-22,Callahan,Texas,48059,1,0 +2020-04-23,Callahan,Texas,48059,1,0 +2020-04-24,Callahan,Texas,48059,1,0 +2020-04-25,Callahan,Texas,48059,1,0 +2020-04-26,Callahan,Texas,48059,1,0 +2020-04-27,Callahan,Texas,48059,1,0 +2020-04-28,Callahan,Texas,48059,2,0 +2020-04-29,Callahan,Texas,48059,2,0 +2020-04-30,Callahan,Texas,48059,2,0 +2020-05-01,Callahan,Texas,48059,2,0 +2020-05-02,Callahan,Texas,48059,2,0 +2020-05-03,Callahan,Texas,48059,2,0 +2020-05-04,Callahan,Texas,48059,2,0 +2020-05-05,Callahan,Texas,48059,2,0 +2020-05-06,Callahan,Texas,48059,2,0 +2020-05-07,Callahan,Texas,48059,5,1 +2020-05-08,Callahan,Texas,48059,6,1 +2020-05-09,Callahan,Texas,48059,6,1 +2020-05-10,Callahan,Texas,48059,6,1 +2020-05-11,Callahan,Texas,48059,6,1 +2020-05-12,Callahan,Texas,48059,6,1 +2020-05-13,Callahan,Texas,48059,7,1 +2020-05-14,Callahan,Texas,48059,8,1 +2020-05-15,Callahan,Texas,48059,8,1 +2020-05-16,Callahan,Texas,48059,8,1 +2020-05-17,Callahan,Texas,48059,8,1 +2020-05-18,Callahan,Texas,48059,8,1 +2020-05-19,Callahan,Texas,48059,8,1 +2020-05-20,Callahan,Texas,48059,8,1 +2020-05-21,Callahan,Texas,48059,8,1 +2020-05-22,Callahan,Texas,48059,8,1 +2020-05-23,Callahan,Texas,48059,8,1 +2020-05-24,Callahan,Texas,48059,8,1 +2020-05-25,Callahan,Texas,48059,8,1 +2020-05-26,Callahan,Texas,48059,9,1 +2020-05-27,Callahan,Texas,48059,9,1 +2020-05-28,Callahan,Texas,48059,9,1 +2020-05-29,Callahan,Texas,48059,9,1 +2020-05-30,Callahan,Texas,48059,9,1 +2020-05-31,Callahan,Texas,48059,9,1 +2020-06-01,Callahan,Texas,48059,9,1 +2020-06-02,Callahan,Texas,48059,9,1 +2020-06-03,Callahan,Texas,48059,9,1 +2020-06-04,Callahan,Texas,48059,10,1 +2020-06-05,Callahan,Texas,48059,10,1 +2020-06-06,Callahan,Texas,48059,10,1 +2020-06-07,Callahan,Texas,48059,10,1 +2020-06-08,Callahan,Texas,48059,10,1 +2020-06-09,Callahan,Texas,48059,10,1 +2020-06-10,Callahan,Texas,48059,10,1 +2020-06-11,Callahan,Texas,48059,12,1 +2020-06-12,Callahan,Texas,48059,12,1 +2020-06-13,Callahan,Texas,48059,13,2 +2020-06-14,Callahan,Texas,48059,13,2 +2020-06-15,Callahan,Texas,48059,13,2 +2020-06-16,Callahan,Texas,48059,13,2 +2020-06-17,Callahan,Texas,48059,13,2 +2020-06-18,Callahan,Texas,48059,13,2 +2020-06-19,Callahan,Texas,48059,13,2 +2020-06-20,Callahan,Texas,48059,13,2 +2020-06-21,Callahan,Texas,48059,13,2 +2020-06-22,Callahan,Texas,48059,13,2 +2020-06-23,Callahan,Texas,48059,13,2 +2020-06-24,Callahan,Texas,48059,16,2 +2020-06-25,Callahan,Texas,48059,16,2 +2020-06-26,Callahan,Texas,48059,16,2 +2020-06-27,Callahan,Texas,48059,16,2 +2020-06-28,Callahan,Texas,48059,16,2 +2020-06-29,Callahan,Texas,48059,16,2 +2020-06-30,Callahan,Texas,48059,16,2 +2020-07-01,Callahan,Texas,48059,17,2 +2020-07-02,Callahan,Texas,48059,17,2 +2020-07-03,Callahan,Texas,48059,18,2 +2020-07-04,Callahan,Texas,48059,19,2 +2020-07-05,Callahan,Texas,48059,19,2 +2020-07-06,Callahan,Texas,48059,19,2 +2020-07-07,Callahan,Texas,48059,24,2 +2020-07-08,Callahan,Texas,48059,25,2 +2020-07-09,Callahan,Texas,48059,25,2 +2020-03-19,Cameron,Texas,48061,1,0 +2020-03-20,Cameron,Texas,48061,1,0 +2020-03-21,Cameron,Texas,48061,6,0 +2020-03-22,Cameron,Texas,48061,6,0 +2020-03-23,Cameron,Texas,48061,6,0 +2020-03-24,Cameron,Texas,48061,6,0 +2020-03-25,Cameron,Texas,48061,6,0 +2020-03-26,Cameron,Texas,48061,13,0 +2020-03-27,Cameron,Texas,48061,13,0 +2020-03-28,Cameron,Texas,48061,13,0 +2020-03-29,Cameron,Texas,48061,20,0 +2020-03-30,Cameron,Texas,48061,20,0 +2020-03-31,Cameron,Texas,48061,26,0 +2020-04-01,Cameron,Texas,48061,26,0 +2020-04-02,Cameron,Texas,48061,37,0 +2020-04-03,Cameron,Texas,48061,55,0 +2020-04-04,Cameron,Texas,48061,62,0 +2020-04-05,Cameron,Texas,48061,77,0 +2020-04-06,Cameron,Texas,48061,87,0 +2020-04-07,Cameron,Texas,48061,101,0 +2020-04-08,Cameron,Texas,48061,108,0 +2020-04-09,Cameron,Texas,48061,126,3 +2020-04-10,Cameron,Texas,48061,147,3 +2020-04-11,Cameron,Texas,48061,159,3 +2020-04-12,Cameron,Texas,48061,195,3 +2020-04-13,Cameron,Texas,48061,195,3 +2020-04-14,Cameron,Texas,48061,216,3 +2020-04-15,Cameron,Texas,48061,239,3 +2020-04-16,Cameron,Texas,48061,254,3 +2020-04-17,Cameron,Texas,48061,279,5 +2020-04-18,Cameron,Texas,48061,298,6 +2020-04-19,Cameron,Texas,48061,298,6 +2020-04-20,Cameron,Texas,48061,298,6 +2020-04-21,Cameron,Texas,48061,310,7 +2020-04-22,Cameron,Texas,48061,321,9 +2020-04-23,Cameron,Texas,48061,333,12 +2020-04-24,Cameron,Texas,48061,344,14 +2020-04-25,Cameron,Texas,48061,354,14 +2020-04-26,Cameron,Texas,48061,366,14 +2020-04-27,Cameron,Texas,48061,376,14 +2020-04-28,Cameron,Texas,48061,376,14 +2020-04-29,Cameron,Texas,48061,401,16 +2020-04-30,Cameron,Texas,48061,401,17 +2020-05-01,Cameron,Texas,48061,412,18 +2020-05-02,Cameron,Texas,48061,421,18 +2020-05-03,Cameron,Texas,48061,432,18 +2020-05-04,Cameron,Texas,48061,443,18 +2020-05-05,Cameron,Texas,48061,443,18 +2020-05-06,Cameron,Texas,48061,469,19 +2020-05-07,Cameron,Texas,48061,483,20 +2020-05-08,Cameron,Texas,48061,483,20 +2020-05-09,Cameron,Texas,48061,494,22 +2020-05-10,Cameron,Texas,48061,512,22 +2020-05-11,Cameron,Texas,48061,527,23 +2020-05-12,Cameron,Texas,48061,527,23 +2020-05-13,Cameron,Texas,48061,544,25 +2020-05-14,Cameron,Texas,48061,582,26 +2020-05-15,Cameron,Texas,48061,582,26 +2020-05-16,Cameron,Texas,48061,582,26 +2020-05-17,Cameron,Texas,48061,619,27 +2020-05-18,Cameron,Texas,48061,619,27 +2020-05-19,Cameron,Texas,48061,649,30 +2020-05-20,Cameron,Texas,48061,664,32 +2020-05-21,Cameron,Texas,48061,664,32 +2020-05-22,Cameron,Texas,48061,671,32 +2020-05-23,Cameron,Texas,48061,686,32 +2020-05-24,Cameron,Texas,48061,698,33 +2020-05-25,Cameron,Texas,48061,698,33 +2020-05-26,Cameron,Texas,48061,698,33 +2020-05-27,Cameron,Texas,48061,711,33 +2020-05-28,Cameron,Texas,48061,731,33 +2020-05-29,Cameron,Texas,48061,743,35 +2020-05-30,Cameron,Texas,48061,754,36 +2020-05-31,Cameron,Texas,48061,764,36 +2020-06-01,Cameron,Texas,48061,764,36 +2020-06-02,Cameron,Texas,48061,776,36 +2020-06-03,Cameron,Texas,48061,799,36 +2020-06-04,Cameron,Texas,48061,820,39 +2020-06-05,Cameron,Texas,48061,841,39 +2020-06-06,Cameron,Texas,48061,892,39 +2020-06-07,Cameron,Texas,48061,892,39 +2020-06-08,Cameron,Texas,48061,892,39 +2020-06-09,Cameron,Texas,48061,919,39 +2020-06-10,Cameron,Texas,48061,951,40 +2020-06-11,Cameron,Texas,48061,990,42 +2020-06-12,Cameron,Texas,48061,1031,44 +2020-06-13,Cameron,Texas,48061,1081,44 +2020-06-14,Cameron,Texas,48061,1138,44 +2020-06-15,Cameron,Texas,48061,1138,44 +2020-06-16,Cameron,Texas,48061,1178,44 +2020-06-17,Cameron,Texas,48061,1236,45 +2020-06-18,Cameron,Texas,48061,1301,47 +2020-06-19,Cameron,Texas,48061,1371,48 +2020-06-20,Cameron,Texas,48061,1546,48 +2020-06-21,Cameron,Texas,48061,1546,48 +2020-06-22,Cameron,Texas,48061,1546,48 +2020-06-23,Cameron,Texas,48061,1647,49 +2020-06-24,Cameron,Texas,48061,1758,50 +2020-06-25,Cameron,Texas,48061,1881,52 +2020-06-26,Cameron,Texas,48061,1972,52 +2020-06-27,Cameron,Texas,48061,2183,55 +2020-06-28,Cameron,Texas,48061,2183,55 +2020-06-29,Cameron,Texas,48061,2183,55 +2020-06-30,Cameron,Texas,48061,2296,55 +2020-07-01,Cameron,Texas,48061,2399,55 +2020-07-02,Cameron,Texas,48061,2510,56 +2020-07-03,Cameron,Texas,48061,2692,63 +2020-07-04,Cameron,Texas,48061,2779,67 +2020-07-05,Cameron,Texas,48061,2779,67 +2020-07-06,Cameron,Texas,48061,2779,67 +2020-07-07,Cameron,Texas,48061,2880,68 +2020-07-08,Cameron,Texas,48061,3120,71 +2020-07-09,Cameron,Texas,48061,3246,71 +2020-04-01,Camp,Texas,48063,1,0 +2020-04-02,Camp,Texas,48063,1,0 +2020-04-03,Camp,Texas,48063,1,0 +2020-04-04,Camp,Texas,48063,1,0 +2020-04-05,Camp,Texas,48063,1,0 +2020-04-06,Camp,Texas,48063,1,0 +2020-04-07,Camp,Texas,48063,1,0 +2020-04-08,Camp,Texas,48063,1,0 +2020-04-09,Camp,Texas,48063,3,0 +2020-04-10,Camp,Texas,48063,3,0 +2020-04-11,Camp,Texas,48063,3,0 +2020-04-12,Camp,Texas,48063,3,0 +2020-04-13,Camp,Texas,48063,3,0 +2020-04-14,Camp,Texas,48063,5,0 +2020-04-15,Camp,Texas,48063,5,0 +2020-04-16,Camp,Texas,48063,6,0 +2020-04-17,Camp,Texas,48063,6,0 +2020-04-18,Camp,Texas,48063,6,0 +2020-04-19,Camp,Texas,48063,6,0 +2020-04-20,Camp,Texas,48063,6,0 +2020-04-21,Camp,Texas,48063,6,0 +2020-04-22,Camp,Texas,48063,6,0 +2020-04-23,Camp,Texas,48063,6,0 +2020-04-24,Camp,Texas,48063,6,0 +2020-04-25,Camp,Texas,48063,6,0 +2020-04-26,Camp,Texas,48063,6,0 +2020-04-27,Camp,Texas,48063,6,0 +2020-04-28,Camp,Texas,48063,6,0 +2020-04-29,Camp,Texas,48063,6,0 +2020-04-30,Camp,Texas,48063,6,0 +2020-05-01,Camp,Texas,48063,6,0 +2020-05-02,Camp,Texas,48063,6,0 +2020-05-03,Camp,Texas,48063,7,0 +2020-05-04,Camp,Texas,48063,7,0 +2020-05-05,Camp,Texas,48063,7,0 +2020-05-06,Camp,Texas,48063,7,0 +2020-05-07,Camp,Texas,48063,7,0 +2020-05-08,Camp,Texas,48063,7,0 +2020-05-09,Camp,Texas,48063,7,0 +2020-05-10,Camp,Texas,48063,7,0 +2020-05-11,Camp,Texas,48063,7,0 +2020-05-12,Camp,Texas,48063,7,0 +2020-05-13,Camp,Texas,48063,11,0 +2020-05-14,Camp,Texas,48063,13,0 +2020-05-15,Camp,Texas,48063,16,0 +2020-05-16,Camp,Texas,48063,21,0 +2020-05-17,Camp,Texas,48063,21,0 +2020-05-18,Camp,Texas,48063,24,0 +2020-05-19,Camp,Texas,48063,26,0 +2020-05-20,Camp,Texas,48063,29,0 +2020-05-21,Camp,Texas,48063,32,0 +2020-05-22,Camp,Texas,48063,37,0 +2020-05-23,Camp,Texas,48063,41,0 +2020-05-24,Camp,Texas,48063,42,0 +2020-05-25,Camp,Texas,48063,44,0 +2020-05-26,Camp,Texas,48063,51,0 +2020-05-27,Camp,Texas,48063,58,0 +2020-05-28,Camp,Texas,48063,74,0 +2020-05-29,Camp,Texas,48063,81,0 +2020-05-30,Camp,Texas,48063,82,0 +2020-05-31,Camp,Texas,48063,83,0 +2020-06-01,Camp,Texas,48063,84,0 +2020-06-02,Camp,Texas,48063,84,0 +2020-06-03,Camp,Texas,48063,84,0 +2020-06-04,Camp,Texas,48063,85,0 +2020-06-05,Camp,Texas,48063,87,0 +2020-06-06,Camp,Texas,48063,91,0 +2020-06-07,Camp,Texas,48063,92,0 +2020-06-08,Camp,Texas,48063,92,0 +2020-06-09,Camp,Texas,48063,95,0 +2020-06-10,Camp,Texas,48063,95,0 +2020-06-11,Camp,Texas,48063,98,1 +2020-06-12,Camp,Texas,48063,98,1 +2020-06-13,Camp,Texas,48063,105,1 +2020-06-14,Camp,Texas,48063,106,1 +2020-06-15,Camp,Texas,48063,108,1 +2020-06-16,Camp,Texas,48063,109,1 +2020-06-17,Camp,Texas,48063,109,1 +2020-06-18,Camp,Texas,48063,109,1 +2020-06-19,Camp,Texas,48063,109,1 +2020-06-20,Camp,Texas,48063,110,1 +2020-06-21,Camp,Texas,48063,110,1 +2020-06-22,Camp,Texas,48063,110,1 +2020-06-23,Camp,Texas,48063,110,1 +2020-06-24,Camp,Texas,48063,113,1 +2020-06-25,Camp,Texas,48063,113,1 +2020-06-26,Camp,Texas,48063,116,1 +2020-06-27,Camp,Texas,48063,117,1 +2020-06-28,Camp,Texas,48063,117,1 +2020-06-29,Camp,Texas,48063,117,1 +2020-06-30,Camp,Texas,48063,117,1 +2020-07-01,Camp,Texas,48063,118,1 +2020-07-02,Camp,Texas,48063,120,1 +2020-07-03,Camp,Texas,48063,122,1 +2020-07-04,Camp,Texas,48063,123,1 +2020-07-05,Camp,Texas,48063,123,2 +2020-07-06,Camp,Texas,48063,123,2 +2020-07-07,Camp,Texas,48063,126,2 +2020-07-08,Camp,Texas,48063,128,2 +2020-07-09,Camp,Texas,48063,130,2 +2020-04-18,Carson,Texas,48065,1,0 +2020-04-19,Carson,Texas,48065,1,0 +2020-04-20,Carson,Texas,48065,1,0 +2020-04-21,Carson,Texas,48065,1,0 +2020-04-22,Carson,Texas,48065,1,0 +2020-04-23,Carson,Texas,48065,1,0 +2020-04-24,Carson,Texas,48065,1,0 +2020-04-25,Carson,Texas,48065,1,0 +2020-04-26,Carson,Texas,48065,1,0 +2020-04-27,Carson,Texas,48065,1,0 +2020-04-28,Carson,Texas,48065,1,0 +2020-04-29,Carson,Texas,48065,2,0 +2020-04-30,Carson,Texas,48065,2,0 +2020-05-01,Carson,Texas,48065,2,0 +2020-05-02,Carson,Texas,48065,2,0 +2020-05-03,Carson,Texas,48065,3,0 +2020-05-04,Carson,Texas,48065,3,0 +2020-05-05,Carson,Texas,48065,3,0 +2020-05-06,Carson,Texas,48065,3,0 +2020-05-07,Carson,Texas,48065,3,0 +2020-05-08,Carson,Texas,48065,3,0 +2020-05-09,Carson,Texas,48065,3,0 +2020-05-10,Carson,Texas,48065,3,0 +2020-05-11,Carson,Texas,48065,3,0 +2020-05-12,Carson,Texas,48065,3,0 +2020-05-13,Carson,Texas,48065,3,0 +2020-05-14,Carson,Texas,48065,3,0 +2020-05-15,Carson,Texas,48065,3,0 +2020-05-16,Carson,Texas,48065,3,0 +2020-05-17,Carson,Texas,48065,4,0 +2020-05-18,Carson,Texas,48065,5,0 +2020-05-19,Carson,Texas,48065,5,0 +2020-05-20,Carson,Texas,48065,5,0 +2020-05-21,Carson,Texas,48065,6,0 +2020-05-22,Carson,Texas,48065,6,0 +2020-05-23,Carson,Texas,48065,6,0 +2020-05-24,Carson,Texas,48065,6,0 +2020-05-25,Carson,Texas,48065,6,0 +2020-05-26,Carson,Texas,48065,6,0 +2020-05-27,Carson,Texas,48065,6,0 +2020-05-28,Carson,Texas,48065,6,0 +2020-05-29,Carson,Texas,48065,6,0 +2020-05-30,Carson,Texas,48065,6,0 +2020-05-31,Carson,Texas,48065,6,0 +2020-06-01,Carson,Texas,48065,6,0 +2020-06-02,Carson,Texas,48065,6,0 +2020-06-03,Carson,Texas,48065,6,0 +2020-06-04,Carson,Texas,48065,6,0 +2020-06-05,Carson,Texas,48065,6,0 +2020-06-06,Carson,Texas,48065,6,0 +2020-06-07,Carson,Texas,48065,6,0 +2020-06-08,Carson,Texas,48065,6,0 +2020-06-09,Carson,Texas,48065,6,0 +2020-06-10,Carson,Texas,48065,6,0 +2020-06-11,Carson,Texas,48065,6,0 +2020-06-12,Carson,Texas,48065,6,0 +2020-06-13,Carson,Texas,48065,6,0 +2020-06-14,Carson,Texas,48065,6,0 +2020-06-15,Carson,Texas,48065,6,0 +2020-06-16,Carson,Texas,48065,6,0 +2020-06-17,Carson,Texas,48065,6,0 +2020-06-18,Carson,Texas,48065,6,0 +2020-06-19,Carson,Texas,48065,6,0 +2020-06-20,Carson,Texas,48065,6,0 +2020-06-21,Carson,Texas,48065,6,0 +2020-06-22,Carson,Texas,48065,6,0 +2020-06-23,Carson,Texas,48065,6,0 +2020-06-24,Carson,Texas,48065,6,0 +2020-06-25,Carson,Texas,48065,6,0 +2020-06-26,Carson,Texas,48065,6,0 +2020-06-27,Carson,Texas,48065,6,0 +2020-06-28,Carson,Texas,48065,6,0 +2020-06-29,Carson,Texas,48065,6,0 +2020-06-30,Carson,Texas,48065,6,0 +2020-07-01,Carson,Texas,48065,6,0 +2020-07-02,Carson,Texas,48065,7,0 +2020-07-03,Carson,Texas,48065,7,0 +2020-07-04,Carson,Texas,48065,7,0 +2020-07-05,Carson,Texas,48065,7,0 +2020-07-06,Carson,Texas,48065,7,0 +2020-07-07,Carson,Texas,48065,7,0 +2020-07-08,Carson,Texas,48065,7,0 +2020-07-09,Carson,Texas,48065,10,0 +2020-03-20,Cass,Texas,48067,1,0 +2020-03-21,Cass,Texas,48067,1,0 +2020-03-22,Cass,Texas,48067,1,0 +2020-03-23,Cass,Texas,48067,1,0 +2020-03-24,Cass,Texas,48067,1,0 +2020-03-25,Cass,Texas,48067,1,0 +2020-03-26,Cass,Texas,48067,1,0 +2020-03-27,Cass,Texas,48067,1,0 +2020-03-28,Cass,Texas,48067,2,0 +2020-03-29,Cass,Texas,48067,2,0 +2020-03-30,Cass,Texas,48067,2,0 +2020-03-31,Cass,Texas,48067,2,0 +2020-04-01,Cass,Texas,48067,3,0 +2020-04-02,Cass,Texas,48067,4,0 +2020-04-03,Cass,Texas,48067,4,0 +2020-04-04,Cass,Texas,48067,4,0 +2020-04-05,Cass,Texas,48067,4,0 +2020-04-06,Cass,Texas,48067,5,2 +2020-04-07,Cass,Texas,48067,5,2 +2020-04-08,Cass,Texas,48067,5,2 +2020-04-09,Cass,Texas,48067,5,2 +2020-04-10,Cass,Texas,48067,5,2 +2020-04-11,Cass,Texas,48067,5,2 +2020-04-12,Cass,Texas,48067,5,2 +2020-04-13,Cass,Texas,48067,5,2 +2020-04-14,Cass,Texas,48067,5,2 +2020-04-15,Cass,Texas,48067,8,2 +2020-04-16,Cass,Texas,48067,8,2 +2020-04-17,Cass,Texas,48067,8,2 +2020-04-18,Cass,Texas,48067,10,2 +2020-04-19,Cass,Texas,48067,13,2 +2020-04-20,Cass,Texas,48067,13,2 +2020-04-21,Cass,Texas,48067,13,2 +2020-04-22,Cass,Texas,48067,13,2 +2020-04-23,Cass,Texas,48067,13,2 +2020-04-24,Cass,Texas,48067,16,2 +2020-04-25,Cass,Texas,48067,16,2 +2020-04-26,Cass,Texas,48067,16,2 +2020-04-27,Cass,Texas,48067,16,2 +2020-04-28,Cass,Texas,48067,16,2 +2020-04-29,Cass,Texas,48067,16,2 +2020-04-30,Cass,Texas,48067,16,2 +2020-05-01,Cass,Texas,48067,16,2 +2020-05-02,Cass,Texas,48067,16,2 +2020-05-03,Cass,Texas,48067,16,2 +2020-05-04,Cass,Texas,48067,16,2 +2020-05-05,Cass,Texas,48067,16,2 +2020-05-06,Cass,Texas,48067,17,2 +2020-05-07,Cass,Texas,48067,17,2 +2020-05-08,Cass,Texas,48067,17,2 +2020-05-09,Cass,Texas,48067,17,0 +2020-05-10,Cass,Texas,48067,20,0 +2020-05-11,Cass,Texas,48067,20,0 +2020-05-12,Cass,Texas,48067,20,0 +2020-05-13,Cass,Texas,48067,20,0 +2020-05-14,Cass,Texas,48067,20,0 +2020-05-15,Cass,Texas,48067,20,0 +2020-05-16,Cass,Texas,48067,20,0 +2020-05-17,Cass,Texas,48067,20,0 +2020-05-18,Cass,Texas,48067,20,0 +2020-05-19,Cass,Texas,48067,21,0 +2020-05-20,Cass,Texas,48067,21,0 +2020-05-21,Cass,Texas,48067,21,0 +2020-05-22,Cass,Texas,48067,21,0 +2020-05-23,Cass,Texas,48067,21,0 +2020-05-24,Cass,Texas,48067,21,0 +2020-05-25,Cass,Texas,48067,21,0 +2020-05-26,Cass,Texas,48067,23,0 +2020-05-27,Cass,Texas,48067,25,0 +2020-05-28,Cass,Texas,48067,29,0 +2020-05-29,Cass,Texas,48067,29,0 +2020-05-30,Cass,Texas,48067,29,0 +2020-05-31,Cass,Texas,48067,29,0 +2020-06-01,Cass,Texas,48067,29,0 +2020-06-02,Cass,Texas,48067,30,0 +2020-06-03,Cass,Texas,48067,30,1 +2020-06-04,Cass,Texas,48067,30,1 +2020-06-05,Cass,Texas,48067,30,1 +2020-06-06,Cass,Texas,48067,31,1 +2020-06-07,Cass,Texas,48067,31,1 +2020-06-08,Cass,Texas,48067,31,1 +2020-06-09,Cass,Texas,48067,32,1 +2020-06-10,Cass,Texas,48067,32,1 +2020-06-11,Cass,Texas,48067,33,1 +2020-06-12,Cass,Texas,48067,34,1 +2020-06-13,Cass,Texas,48067,34,1 +2020-06-14,Cass,Texas,48067,34,2 +2020-06-15,Cass,Texas,48067,34,2 +2020-06-16,Cass,Texas,48067,34,2 +2020-06-17,Cass,Texas,48067,35,2 +2020-06-18,Cass,Texas,48067,36,2 +2020-06-19,Cass,Texas,48067,36,2 +2020-06-20,Cass,Texas,48067,36,2 +2020-06-21,Cass,Texas,48067,36,2 +2020-06-22,Cass,Texas,48067,36,2 +2020-06-23,Cass,Texas,48067,36,2 +2020-06-24,Cass,Texas,48067,36,2 +2020-06-25,Cass,Texas,48067,37,2 +2020-06-26,Cass,Texas,48067,37,2 +2020-06-27,Cass,Texas,48067,37,2 +2020-06-28,Cass,Texas,48067,37,2 +2020-06-29,Cass,Texas,48067,38,2 +2020-06-30,Cass,Texas,48067,38,2 +2020-07-01,Cass,Texas,48067,41,2 +2020-07-02,Cass,Texas,48067,44,2 +2020-07-03,Cass,Texas,48067,44,2 +2020-07-04,Cass,Texas,48067,51,2 +2020-07-05,Cass,Texas,48067,51,2 +2020-07-06,Cass,Texas,48067,51,2 +2020-07-07,Cass,Texas,48067,51,2 +2020-07-08,Cass,Texas,48067,57,3 +2020-07-09,Cass,Texas,48067,57,3 +2020-03-21,Castro,Texas,48069,1,0 +2020-03-22,Castro,Texas,48069,1,0 +2020-03-23,Castro,Texas,48069,1,0 +2020-03-24,Castro,Texas,48069,2,0 +2020-03-25,Castro,Texas,48069,3,0 +2020-03-26,Castro,Texas,48069,6,0 +2020-03-27,Castro,Texas,48069,7,0 +2020-03-28,Castro,Texas,48069,8,0 +2020-03-29,Castro,Texas,48069,8,0 +2020-03-30,Castro,Texas,48069,8,0 +2020-03-31,Castro,Texas,48069,8,0 +2020-04-01,Castro,Texas,48069,8,0 +2020-04-02,Castro,Texas,48069,8,0 +2020-04-03,Castro,Texas,48069,9,0 +2020-04-04,Castro,Texas,48069,10,1 +2020-04-05,Castro,Texas,48069,10,1 +2020-04-06,Castro,Texas,48069,10,1 +2020-04-07,Castro,Texas,48069,10,1 +2020-04-08,Castro,Texas,48069,10,1 +2020-04-09,Castro,Texas,48069,10,1 +2020-04-10,Castro,Texas,48069,10,1 +2020-04-11,Castro,Texas,48069,10,1 +2020-04-12,Castro,Texas,48069,11,1 +2020-04-13,Castro,Texas,48069,11,1 +2020-04-14,Castro,Texas,48069,11,1 +2020-04-15,Castro,Texas,48069,11,1 +2020-04-16,Castro,Texas,48069,11,1 +2020-04-17,Castro,Texas,48069,11,1 +2020-04-18,Castro,Texas,48069,11,1 +2020-04-19,Castro,Texas,48069,11,1 +2020-04-20,Castro,Texas,48069,11,1 +2020-04-21,Castro,Texas,48069,11,1 +2020-04-22,Castro,Texas,48069,12,1 +2020-04-23,Castro,Texas,48069,13,1 +2020-04-24,Castro,Texas,48069,13,1 +2020-04-25,Castro,Texas,48069,13,1 +2020-04-26,Castro,Texas,48069,13,1 +2020-04-27,Castro,Texas,48069,13,1 +2020-04-28,Castro,Texas,48069,13,1 +2020-04-29,Castro,Texas,48069,13,1 +2020-04-30,Castro,Texas,48069,13,1 +2020-05-01,Castro,Texas,48069,15,1 +2020-05-02,Castro,Texas,48069,15,1 +2020-05-03,Castro,Texas,48069,15,1 +2020-05-04,Castro,Texas,48069,18,1 +2020-05-05,Castro,Texas,48069,18,1 +2020-05-06,Castro,Texas,48069,20,1 +2020-05-07,Castro,Texas,48069,22,1 +2020-05-08,Castro,Texas,48069,22,1 +2020-05-09,Castro,Texas,48069,22,1 +2020-05-10,Castro,Texas,48069,23,1 +2020-05-11,Castro,Texas,48069,23,1 +2020-05-12,Castro,Texas,48069,23,1 +2020-05-13,Castro,Texas,48069,24,1 +2020-05-14,Castro,Texas,48069,25,1 +2020-05-15,Castro,Texas,48069,27,1 +2020-05-16,Castro,Texas,48069,26,1 +2020-05-17,Castro,Texas,48069,27,1 +2020-05-18,Castro,Texas,48069,27,1 +2020-05-19,Castro,Texas,48069,28,1 +2020-05-20,Castro,Texas,48069,28,1 +2020-05-21,Castro,Texas,48069,29,1 +2020-05-22,Castro,Texas,48069,29,1 +2020-05-23,Castro,Texas,48069,32,1 +2020-05-24,Castro,Texas,48069,32,1 +2020-05-25,Castro,Texas,48069,32,1 +2020-05-26,Castro,Texas,48069,32,1 +2020-05-27,Castro,Texas,48069,32,1 +2020-05-28,Castro,Texas,48069,32,1 +2020-05-29,Castro,Texas,48069,32,1 +2020-05-30,Castro,Texas,48069,33,1 +2020-05-31,Castro,Texas,48069,33,1 +2020-06-01,Castro,Texas,48069,33,1 +2020-06-02,Castro,Texas,48069,33,1 +2020-06-03,Castro,Texas,48069,33,1 +2020-06-04,Castro,Texas,48069,34,1 +2020-06-05,Castro,Texas,48069,34,1 +2020-06-06,Castro,Texas,48069,35,1 +2020-06-07,Castro,Texas,48069,35,1 +2020-06-08,Castro,Texas,48069,35,1 +2020-06-09,Castro,Texas,48069,36,1 +2020-06-10,Castro,Texas,48069,37,1 +2020-06-11,Castro,Texas,48069,37,1 +2020-06-12,Castro,Texas,48069,39,1 +2020-06-13,Castro,Texas,48069,42,1 +2020-06-14,Castro,Texas,48069,42,1 +2020-06-15,Castro,Texas,48069,42,1 +2020-06-16,Castro,Texas,48069,48,1 +2020-06-17,Castro,Texas,48069,48,1 +2020-06-18,Castro,Texas,48069,50,1 +2020-06-19,Castro,Texas,48069,51,1 +2020-06-20,Castro,Texas,48069,51,1 +2020-06-21,Castro,Texas,48069,51,1 +2020-06-22,Castro,Texas,48069,58,1 +2020-06-23,Castro,Texas,48069,63,1 +2020-06-24,Castro,Texas,48069,65,1 +2020-06-25,Castro,Texas,48069,70,1 +2020-06-26,Castro,Texas,48069,73,1 +2020-06-27,Castro,Texas,48069,74,1 +2020-06-28,Castro,Texas,48069,74,1 +2020-06-29,Castro,Texas,48069,74,1 +2020-06-30,Castro,Texas,48069,75,1 +2020-07-01,Castro,Texas,48069,87,1 +2020-07-02,Castro,Texas,48069,93,1 +2020-07-03,Castro,Texas,48069,97,1 +2020-07-04,Castro,Texas,48069,99,1 +2020-07-05,Castro,Texas,48069,99,1 +2020-07-06,Castro,Texas,48069,99,1 +2020-07-07,Castro,Texas,48069,108,1 +2020-07-08,Castro,Texas,48069,107,1 +2020-07-09,Castro,Texas,48069,110,1 +2020-03-24,Chambers,Texas,48071,2,0 +2020-03-25,Chambers,Texas,48071,2,0 +2020-03-26,Chambers,Texas,48071,2,0 +2020-03-27,Chambers,Texas,48071,2,0 +2020-03-28,Chambers,Texas,48071,3,0 +2020-03-29,Chambers,Texas,48071,3,0 +2020-03-30,Chambers,Texas,48071,5,0 +2020-03-31,Chambers,Texas,48071,8,0 +2020-04-01,Chambers,Texas,48071,9,0 +2020-04-02,Chambers,Texas,48071,9,0 +2020-04-03,Chambers,Texas,48071,11,0 +2020-04-04,Chambers,Texas,48071,11,0 +2020-04-05,Chambers,Texas,48071,11,0 +2020-04-06,Chambers,Texas,48071,17,0 +2020-04-07,Chambers,Texas,48071,17,0 +2020-04-08,Chambers,Texas,48071,22,0 +2020-04-09,Chambers,Texas,48071,22,0 +2020-04-10,Chambers,Texas,48071,24,0 +2020-04-11,Chambers,Texas,48071,29,0 +2020-04-12,Chambers,Texas,48071,29,0 +2020-04-13,Chambers,Texas,48071,29,0 +2020-04-14,Chambers,Texas,48071,31,0 +2020-04-15,Chambers,Texas,48071,33,0 +2020-04-16,Chambers,Texas,48071,33,0 +2020-04-17,Chambers,Texas,48071,35,0 +2020-04-18,Chambers,Texas,48071,35,0 +2020-04-19,Chambers,Texas,48071,35,0 +2020-04-20,Chambers,Texas,48071,35,0 +2020-04-21,Chambers,Texas,48071,36,0 +2020-04-22,Chambers,Texas,48071,39,0 +2020-04-23,Chambers,Texas,48071,41,0 +2020-04-24,Chambers,Texas,48071,41,0 +2020-04-25,Chambers,Texas,48071,41,0 +2020-04-26,Chambers,Texas,48071,41,0 +2020-04-27,Chambers,Texas,48071,41,0 +2020-04-28,Chambers,Texas,48071,41,0 +2020-04-29,Chambers,Texas,48071,41,0 +2020-04-30,Chambers,Texas,48071,42,0 +2020-05-01,Chambers,Texas,48071,43,0 +2020-05-02,Chambers,Texas,48071,43,0 +2020-05-03,Chambers,Texas,48071,45,0 +2020-05-04,Chambers,Texas,48071,45,0 +2020-05-05,Chambers,Texas,48071,45,0 +2020-05-06,Chambers,Texas,48071,47,0 +2020-05-07,Chambers,Texas,48071,47,0 +2020-05-08,Chambers,Texas,48071,48,0 +2020-05-09,Chambers,Texas,48071,48,0 +2020-05-10,Chambers,Texas,48071,50,0 +2020-05-11,Chambers,Texas,48071,50,0 +2020-05-12,Chambers,Texas,48071,50,0 +2020-05-13,Chambers,Texas,48071,50,0 +2020-05-14,Chambers,Texas,48071,52,0 +2020-05-15,Chambers,Texas,48071,52,0 +2020-05-16,Chambers,Texas,48071,53,0 +2020-05-17,Chambers,Texas,48071,53,0 +2020-05-18,Chambers,Texas,48071,55,0 +2020-05-19,Chambers,Texas,48071,58,0 +2020-05-20,Chambers,Texas,48071,58,0 +2020-05-21,Chambers,Texas,48071,58,0 +2020-05-22,Chambers,Texas,48071,58,0 +2020-05-23,Chambers,Texas,48071,59,0 +2020-05-24,Chambers,Texas,48071,61,0 +2020-05-25,Chambers,Texas,48071,61,0 +2020-05-26,Chambers,Texas,48071,62,0 +2020-05-27,Chambers,Texas,48071,62,0 +2020-05-28,Chambers,Texas,48071,65,0 +2020-05-29,Chambers,Texas,48071,67,0 +2020-05-30,Chambers,Texas,48071,68,0 +2020-05-31,Chambers,Texas,48071,68,0 +2020-06-01,Chambers,Texas,48071,68,0 +2020-06-02,Chambers,Texas,48071,69,0 +2020-06-03,Chambers,Texas,48071,70,0 +2020-06-04,Chambers,Texas,48071,73,0 +2020-06-05,Chambers,Texas,48071,76,0 +2020-06-06,Chambers,Texas,48071,76,1 +2020-06-07,Chambers,Texas,48071,79,0 +2020-06-08,Chambers,Texas,48071,83,0 +2020-06-09,Chambers,Texas,48071,86,0 +2020-06-10,Chambers,Texas,48071,88,0 +2020-06-11,Chambers,Texas,48071,88,0 +2020-06-12,Chambers,Texas,48071,104,0 +2020-06-13,Chambers,Texas,48071,106,0 +2020-06-14,Chambers,Texas,48071,109,0 +2020-06-15,Chambers,Texas,48071,117,0 +2020-06-16,Chambers,Texas,48071,128,0 +2020-06-17,Chambers,Texas,48071,130,0 +2020-06-18,Chambers,Texas,48071,130,0 +2020-06-19,Chambers,Texas,48071,149,0 +2020-06-20,Chambers,Texas,48071,156,0 +2020-06-21,Chambers,Texas,48071,156,0 +2020-06-22,Chambers,Texas,48071,175,0 +2020-06-23,Chambers,Texas,48071,181,2 +2020-06-24,Chambers,Texas,48071,191,2 +2020-06-25,Chambers,Texas,48071,198,2 +2020-06-26,Chambers,Texas,48071,198,2 +2020-06-27,Chambers,Texas,48071,272,2 +2020-06-28,Chambers,Texas,48071,272,2 +2020-06-29,Chambers,Texas,48071,272,2 +2020-06-30,Chambers,Texas,48071,288,2 +2020-07-01,Chambers,Texas,48071,308,2 +2020-07-02,Chambers,Texas,48071,334,2 +2020-07-03,Chambers,Texas,48071,352,2 +2020-07-04,Chambers,Texas,48071,352,2 +2020-07-05,Chambers,Texas,48071,352,2 +2020-07-06,Chambers,Texas,48071,352,2 +2020-07-07,Chambers,Texas,48071,469,2 +2020-07-08,Chambers,Texas,48071,469,2 +2020-07-09,Chambers,Texas,48071,555,2 +2020-03-27,Cherokee,Texas,48073,1,0 +2020-03-28,Cherokee,Texas,48073,1,0 +2020-03-29,Cherokee,Texas,48073,2,0 +2020-03-30,Cherokee,Texas,48073,2,0 +2020-03-31,Cherokee,Texas,48073,2,0 +2020-04-01,Cherokee,Texas,48073,4,0 +2020-04-02,Cherokee,Texas,48073,5,0 +2020-04-03,Cherokee,Texas,48073,5,0 +2020-04-04,Cherokee,Texas,48073,5,0 +2020-04-05,Cherokee,Texas,48073,5,0 +2020-04-06,Cherokee,Texas,48073,5,0 +2020-04-07,Cherokee,Texas,48073,6,0 +2020-04-08,Cherokee,Texas,48073,6,0 +2020-04-09,Cherokee,Texas,48073,6,0 +2020-04-10,Cherokee,Texas,48073,6,0 +2020-04-11,Cherokee,Texas,48073,6,0 +2020-04-12,Cherokee,Texas,48073,6,0 +2020-04-13,Cherokee,Texas,48073,6,0 +2020-04-14,Cherokee,Texas,48073,7,1 +2020-04-15,Cherokee,Texas,48073,7,1 +2020-04-16,Cherokee,Texas,48073,8,1 +2020-04-17,Cherokee,Texas,48073,8,1 +2020-04-18,Cherokee,Texas,48073,8,1 +2020-04-19,Cherokee,Texas,48073,8,1 +2020-04-20,Cherokee,Texas,48073,8,1 +2020-04-21,Cherokee,Texas,48073,8,1 +2020-04-22,Cherokee,Texas,48073,8,1 +2020-04-23,Cherokee,Texas,48073,8,1 +2020-04-24,Cherokee,Texas,48073,12,1 +2020-04-25,Cherokee,Texas,48073,12,1 +2020-04-26,Cherokee,Texas,48073,12,1 +2020-04-27,Cherokee,Texas,48073,12,1 +2020-04-28,Cherokee,Texas,48073,14,1 +2020-04-29,Cherokee,Texas,48073,14,1 +2020-04-30,Cherokee,Texas,48073,14,1 +2020-05-01,Cherokee,Texas,48073,16,1 +2020-05-02,Cherokee,Texas,48073,17,1 +2020-05-03,Cherokee,Texas,48073,17,1 +2020-05-04,Cherokee,Texas,48073,17,1 +2020-05-05,Cherokee,Texas,48073,19,1 +2020-05-06,Cherokee,Texas,48073,20,1 +2020-05-07,Cherokee,Texas,48073,20,1 +2020-05-08,Cherokee,Texas,48073,18,1 +2020-05-09,Cherokee,Texas,48073,18,1 +2020-05-10,Cherokee,Texas,48073,18,1 +2020-05-11,Cherokee,Texas,48073,18,1 +2020-05-12,Cherokee,Texas,48073,23,1 +2020-05-13,Cherokee,Texas,48073,27,1 +2020-05-14,Cherokee,Texas,48073,27,1 +2020-05-15,Cherokee,Texas,48073,31,1 +2020-05-16,Cherokee,Texas,48073,34,1 +2020-05-17,Cherokee,Texas,48073,34,1 +2020-05-18,Cherokee,Texas,48073,34,1 +2020-05-19,Cherokee,Texas,48073,36,2 +2020-05-20,Cherokee,Texas,48073,38,2 +2020-05-21,Cherokee,Texas,48073,44,2 +2020-05-22,Cherokee,Texas,48073,44,2 +2020-05-23,Cherokee,Texas,48073,44,2 +2020-05-24,Cherokee,Texas,48073,42,2 +2020-05-25,Cherokee,Texas,48073,42,2 +2020-05-26,Cherokee,Texas,48073,42,2 +2020-05-27,Cherokee,Texas,48073,44,2 +2020-05-28,Cherokee,Texas,48073,44,2 +2020-05-29,Cherokee,Texas,48073,44,2 +2020-05-30,Cherokee,Texas,48073,44,2 +2020-05-31,Cherokee,Texas,48073,44,2 +2020-06-01,Cherokee,Texas,48073,44,2 +2020-06-02,Cherokee,Texas,48073,46,2 +2020-06-03,Cherokee,Texas,48073,47,2 +2020-06-04,Cherokee,Texas,48073,49,2 +2020-06-05,Cherokee,Texas,48073,50,2 +2020-06-06,Cherokee,Texas,48073,52,2 +2020-06-07,Cherokee,Texas,48073,52,2 +2020-06-08,Cherokee,Texas,48073,52,2 +2020-06-09,Cherokee,Texas,48073,54,2 +2020-06-10,Cherokee,Texas,48073,54,2 +2020-06-11,Cherokee,Texas,48073,54,2 +2020-06-12,Cherokee,Texas,48073,54,2 +2020-06-13,Cherokee,Texas,48073,54,2 +2020-06-14,Cherokee,Texas,48073,54,2 +2020-06-15,Cherokee,Texas,48073,54,2 +2020-06-16,Cherokee,Texas,48073,61,2 +2020-06-17,Cherokee,Texas,48073,61,2 +2020-06-18,Cherokee,Texas,48073,65,2 +2020-06-19,Cherokee,Texas,48073,67,2 +2020-06-20,Cherokee,Texas,48073,67,2 +2020-06-21,Cherokee,Texas,48073,67,2 +2020-06-22,Cherokee,Texas,48073,67,2 +2020-06-23,Cherokee,Texas,48073,77,2 +2020-06-24,Cherokee,Texas,48073,82,2 +2020-06-25,Cherokee,Texas,48073,87,2 +2020-06-26,Cherokee,Texas,48073,93,2 +2020-06-27,Cherokee,Texas,48073,105,2 +2020-06-28,Cherokee,Texas,48073,105,2 +2020-06-29,Cherokee,Texas,48073,130,2 +2020-06-30,Cherokee,Texas,48073,148,2 +2020-07-01,Cherokee,Texas,48073,147,2 +2020-07-02,Cherokee,Texas,48073,172,2 +2020-07-03,Cherokee,Texas,48073,188,2 +2020-07-04,Cherokee,Texas,48073,212,2 +2020-07-05,Cherokee,Texas,48073,212,2 +2020-07-06,Cherokee,Texas,48073,212,2 +2020-07-07,Cherokee,Texas,48073,250,2 +2020-07-08,Cherokee,Texas,48073,270,2 +2020-07-09,Cherokee,Texas,48073,286,2 +2020-04-19,Childress,Texas,48075,1,0 +2020-04-20,Childress,Texas,48075,1,0 +2020-04-21,Childress,Texas,48075,1,0 +2020-04-22,Childress,Texas,48075,1,0 +2020-04-23,Childress,Texas,48075,1,0 +2020-04-24,Childress,Texas,48075,1,0 +2020-04-25,Childress,Texas,48075,1,0 +2020-04-26,Childress,Texas,48075,1,0 +2020-04-27,Childress,Texas,48075,1,0 +2020-04-28,Childress,Texas,48075,1,0 +2020-04-29,Childress,Texas,48075,1,0 +2020-04-30,Childress,Texas,48075,1,0 +2020-05-01,Childress,Texas,48075,1,0 +2020-05-02,Childress,Texas,48075,1,0 +2020-05-03,Childress,Texas,48075,1,0 +2020-05-04,Childress,Texas,48075,1,0 +2020-05-05,Childress,Texas,48075,1,0 +2020-05-06,Childress,Texas,48075,1,0 +2020-05-07,Childress,Texas,48075,1,0 +2020-05-08,Childress,Texas,48075,1,0 +2020-05-09,Childress,Texas,48075,1,0 +2020-05-10,Childress,Texas,48075,2,0 +2020-05-11,Childress,Texas,48075,2,0 +2020-05-12,Childress,Texas,48075,2,0 +2020-05-13,Childress,Texas,48075,2,0 +2020-05-14,Childress,Texas,48075,2,0 +2020-05-15,Childress,Texas,48075,2,0 +2020-05-16,Childress,Texas,48075,2,0 +2020-05-17,Childress,Texas,48075,2,0 +2020-05-18,Childress,Texas,48075,2,0 +2020-05-19,Childress,Texas,48075,2,0 +2020-05-20,Childress,Texas,48075,2,0 +2020-05-21,Childress,Texas,48075,2,0 +2020-05-22,Childress,Texas,48075,2,0 +2020-05-23,Childress,Texas,48075,2,0 +2020-05-24,Childress,Texas,48075,2,0 +2020-05-25,Childress,Texas,48075,2,0 +2020-05-26,Childress,Texas,48075,2,0 +2020-05-27,Childress,Texas,48075,2,0 +2020-05-28,Childress,Texas,48075,2,0 +2020-05-29,Childress,Texas,48075,2,0 +2020-05-30,Childress,Texas,48075,2,0 +2020-05-31,Childress,Texas,48075,2,0 +2020-06-01,Childress,Texas,48075,2,0 +2020-06-02,Childress,Texas,48075,2,0 +2020-06-03,Childress,Texas,48075,2,0 +2020-06-04,Childress,Texas,48075,2,0 +2020-06-05,Childress,Texas,48075,2,0 +2020-06-06,Childress,Texas,48075,2,0 +2020-06-07,Childress,Texas,48075,2,0 +2020-06-08,Childress,Texas,48075,2,0 +2020-06-09,Childress,Texas,48075,4,0 +2020-06-10,Childress,Texas,48075,6,0 +2020-06-11,Childress,Texas,48075,6,0 +2020-06-12,Childress,Texas,48075,6,0 +2020-06-13,Childress,Texas,48075,6,0 +2020-06-14,Childress,Texas,48075,6,0 +2020-06-15,Childress,Texas,48075,6,0 +2020-06-16,Childress,Texas,48075,6,0 +2020-06-17,Childress,Texas,48075,6,0 +2020-06-18,Childress,Texas,48075,6,0 +2020-06-19,Childress,Texas,48075,6,0 +2020-06-20,Childress,Texas,48075,6,0 +2020-06-21,Childress,Texas,48075,6,0 +2020-06-22,Childress,Texas,48075,6,0 +2020-06-23,Childress,Texas,48075,6,0 +2020-06-24,Childress,Texas,48075,7,0 +2020-06-25,Childress,Texas,48075,7,0 +2020-06-26,Childress,Texas,48075,8,0 +2020-06-27,Childress,Texas,48075,7,0 +2020-06-28,Childress,Texas,48075,7,0 +2020-06-29,Childress,Texas,48075,7,0 +2020-06-30,Childress,Texas,48075,7,0 +2020-07-01,Childress,Texas,48075,7,0 +2020-07-02,Childress,Texas,48075,7,0 +2020-07-03,Childress,Texas,48075,7,0 +2020-07-04,Childress,Texas,48075,7,0 +2020-07-05,Childress,Texas,48075,7,0 +2020-07-06,Childress,Texas,48075,7,0 +2020-07-07,Childress,Texas,48075,7,0 +2020-07-08,Childress,Texas,48075,7,0 +2020-07-09,Childress,Texas,48075,7,0 +2020-04-01,Clay,Texas,48077,1,0 +2020-04-02,Clay,Texas,48077,1,0 +2020-04-03,Clay,Texas,48077,1,0 +2020-04-04,Clay,Texas,48077,1,0 +2020-04-05,Clay,Texas,48077,3,0 +2020-04-06,Clay,Texas,48077,3,0 +2020-04-07,Clay,Texas,48077,3,0 +2020-04-08,Clay,Texas,48077,3,0 +2020-04-09,Clay,Texas,48077,3,0 +2020-04-10,Clay,Texas,48077,3,0 +2020-04-11,Clay,Texas,48077,3,0 +2020-04-12,Clay,Texas,48077,3,0 +2020-04-13,Clay,Texas,48077,3,0 +2020-04-14,Clay,Texas,48077,3,0 +2020-04-15,Clay,Texas,48077,3,0 +2020-04-16,Clay,Texas,48077,3,0 +2020-04-17,Clay,Texas,48077,3,0 +2020-04-18,Clay,Texas,48077,3,0 +2020-04-19,Clay,Texas,48077,3,0 +2020-04-20,Clay,Texas,48077,3,0 +2020-04-21,Clay,Texas,48077,3,0 +2020-04-22,Clay,Texas,48077,3,0 +2020-04-23,Clay,Texas,48077,3,0 +2020-04-24,Clay,Texas,48077,3,0 +2020-04-25,Clay,Texas,48077,3,0 +2020-04-26,Clay,Texas,48077,3,0 +2020-04-27,Clay,Texas,48077,3,0 +2020-04-28,Clay,Texas,48077,3,0 +2020-04-29,Clay,Texas,48077,3,0 +2020-04-30,Clay,Texas,48077,3,0 +2020-05-01,Clay,Texas,48077,3,0 +2020-05-02,Clay,Texas,48077,3,0 +2020-05-03,Clay,Texas,48077,3,0 +2020-05-04,Clay,Texas,48077,3,0 +2020-05-05,Clay,Texas,48077,3,0 +2020-05-06,Clay,Texas,48077,3,0 +2020-05-07,Clay,Texas,48077,3,0 +2020-05-08,Clay,Texas,48077,3,0 +2020-05-09,Clay,Texas,48077,3,0 +2020-05-10,Clay,Texas,48077,3,0 +2020-05-11,Clay,Texas,48077,3,0 +2020-05-12,Clay,Texas,48077,3,0 +2020-05-13,Clay,Texas,48077,3,0 +2020-05-14,Clay,Texas,48077,3,0 +2020-05-15,Clay,Texas,48077,3,0 +2020-05-16,Clay,Texas,48077,3,0 +2020-05-17,Clay,Texas,48077,3,0 +2020-05-18,Clay,Texas,48077,3,0 +2020-05-19,Clay,Texas,48077,3,0 +2020-05-20,Clay,Texas,48077,3,0 +2020-05-21,Clay,Texas,48077,3,0 +2020-05-22,Clay,Texas,48077,3,0 +2020-05-23,Clay,Texas,48077,3,0 +2020-05-24,Clay,Texas,48077,3,0 +2020-05-25,Clay,Texas,48077,3,0 +2020-05-26,Clay,Texas,48077,3,0 +2020-05-27,Clay,Texas,48077,3,0 +2020-05-28,Clay,Texas,48077,3,0 +2020-05-29,Clay,Texas,48077,3,0 +2020-05-30,Clay,Texas,48077,3,0 +2020-05-31,Clay,Texas,48077,3,0 +2020-06-01,Clay,Texas,48077,3,0 +2020-06-02,Clay,Texas,48077,4,0 +2020-06-03,Clay,Texas,48077,4,0 +2020-06-04,Clay,Texas,48077,5,0 +2020-06-05,Clay,Texas,48077,5,0 +2020-06-06,Clay,Texas,48077,5,0 +2020-06-07,Clay,Texas,48077,5,0 +2020-06-08,Clay,Texas,48077,5,0 +2020-06-09,Clay,Texas,48077,5,0 +2020-06-10,Clay,Texas,48077,5,0 +2020-06-11,Clay,Texas,48077,5,0 +2020-06-12,Clay,Texas,48077,5,0 +2020-06-13,Clay,Texas,48077,5,0 +2020-06-14,Clay,Texas,48077,5,0 +2020-06-15,Clay,Texas,48077,5,0 +2020-06-16,Clay,Texas,48077,5,0 +2020-06-17,Clay,Texas,48077,5,0 +2020-06-18,Clay,Texas,48077,5,0 +2020-06-19,Clay,Texas,48077,5,0 +2020-06-20,Clay,Texas,48077,5,0 +2020-06-21,Clay,Texas,48077,5,0 +2020-06-22,Clay,Texas,48077,5,0 +2020-06-23,Clay,Texas,48077,5,0 +2020-06-24,Clay,Texas,48077,5,0 +2020-06-25,Clay,Texas,48077,5,0 +2020-06-26,Clay,Texas,48077,5,0 +2020-06-27,Clay,Texas,48077,6,0 +2020-06-28,Clay,Texas,48077,6,0 +2020-06-29,Clay,Texas,48077,6,0 +2020-06-30,Clay,Texas,48077,7,0 +2020-07-01,Clay,Texas,48077,8,0 +2020-07-02,Clay,Texas,48077,8,0 +2020-07-03,Clay,Texas,48077,9,0 +2020-07-04,Clay,Texas,48077,9,0 +2020-07-05,Clay,Texas,48077,9,0 +2020-07-06,Clay,Texas,48077,9,0 +2020-07-07,Clay,Texas,48077,9,0 +2020-07-08,Clay,Texas,48077,13,0 +2020-07-09,Clay,Texas,48077,13,0 +2020-04-23,Cochran,Texas,48079,1,0 +2020-04-24,Cochran,Texas,48079,1,0 +2020-04-25,Cochran,Texas,48079,1,0 +2020-04-26,Cochran,Texas,48079,1,0 +2020-04-27,Cochran,Texas,48079,1,0 +2020-04-28,Cochran,Texas,48079,1,0 +2020-04-29,Cochran,Texas,48079,1,0 +2020-04-30,Cochran,Texas,48079,1,0 +2020-05-01,Cochran,Texas,48079,1,0 +2020-05-02,Cochran,Texas,48079,1,0 +2020-05-03,Cochran,Texas,48079,1,0 +2020-05-04,Cochran,Texas,48079,1,0 +2020-05-05,Cochran,Texas,48079,1,0 +2020-05-06,Cochran,Texas,48079,1,0 +2020-05-07,Cochran,Texas,48079,1,0 +2020-05-08,Cochran,Texas,48079,1,0 +2020-05-09,Cochran,Texas,48079,1,0 +2020-05-10,Cochran,Texas,48079,1,0 +2020-05-11,Cochran,Texas,48079,1,0 +2020-05-12,Cochran,Texas,48079,1,0 +2020-05-13,Cochran,Texas,48079,1,0 +2020-05-14,Cochran,Texas,48079,1,0 +2020-05-15,Cochran,Texas,48079,1,0 +2020-05-16,Cochran,Texas,48079,1,0 +2020-05-17,Cochran,Texas,48079,1,0 +2020-05-18,Cochran,Texas,48079,1,0 +2020-05-19,Cochran,Texas,48079,1,0 +2020-05-20,Cochran,Texas,48079,1,0 +2020-05-21,Cochran,Texas,48079,1,0 +2020-05-22,Cochran,Texas,48079,1,0 +2020-05-23,Cochran,Texas,48079,1,0 +2020-05-24,Cochran,Texas,48079,1,0 +2020-05-25,Cochran,Texas,48079,1,0 +2020-05-26,Cochran,Texas,48079,1,0 +2020-05-27,Cochran,Texas,48079,1,0 +2020-05-28,Cochran,Texas,48079,1,0 +2020-05-29,Cochran,Texas,48079,1,0 +2020-05-30,Cochran,Texas,48079,1,0 +2020-05-31,Cochran,Texas,48079,1,0 +2020-06-01,Cochran,Texas,48079,1,0 +2020-06-02,Cochran,Texas,48079,1,0 +2020-06-03,Cochran,Texas,48079,1,0 +2020-06-04,Cochran,Texas,48079,1,0 +2020-06-05,Cochran,Texas,48079,1,0 +2020-06-06,Cochran,Texas,48079,1,0 +2020-06-07,Cochran,Texas,48079,1,0 +2020-06-08,Cochran,Texas,48079,1,0 +2020-06-09,Cochran,Texas,48079,1,0 +2020-06-10,Cochran,Texas,48079,1,0 +2020-06-11,Cochran,Texas,48079,1,0 +2020-06-12,Cochran,Texas,48079,1,0 +2020-06-13,Cochran,Texas,48079,1,0 +2020-06-14,Cochran,Texas,48079,1,0 +2020-06-15,Cochran,Texas,48079,1,0 +2020-06-16,Cochran,Texas,48079,1,0 +2020-06-17,Cochran,Texas,48079,1,0 +2020-06-18,Cochran,Texas,48079,1,0 +2020-06-19,Cochran,Texas,48079,1,0 +2020-06-20,Cochran,Texas,48079,1,0 +2020-06-21,Cochran,Texas,48079,1,0 +2020-06-22,Cochran,Texas,48079,1,0 +2020-06-23,Cochran,Texas,48079,1,0 +2020-06-24,Cochran,Texas,48079,1,0 +2020-06-25,Cochran,Texas,48079,1,0 +2020-06-26,Cochran,Texas,48079,1,0 +2020-06-27,Cochran,Texas,48079,1,0 +2020-06-28,Cochran,Texas,48079,1,0 +2020-06-29,Cochran,Texas,48079,1,0 +2020-06-30,Cochran,Texas,48079,1,0 +2020-07-01,Cochran,Texas,48079,1,0 +2020-07-02,Cochran,Texas,48079,1,0 +2020-07-03,Cochran,Texas,48079,1,0 +2020-07-04,Cochran,Texas,48079,1,0 +2020-07-05,Cochran,Texas,48079,1,0 +2020-07-06,Cochran,Texas,48079,1,0 +2020-07-07,Cochran,Texas,48079,3,0 +2020-07-08,Cochran,Texas,48079,4,0 +2020-07-09,Cochran,Texas,48079,5,0 +2020-05-05,Coke,Texas,48081,1,0 +2020-05-06,Coke,Texas,48081,1,0 +2020-05-07,Coke,Texas,48081,1,0 +2020-05-08,Coke,Texas,48081,1,0 +2020-05-09,Coke,Texas,48081,1,0 +2020-05-10,Coke,Texas,48081,1,0 +2020-05-11,Coke,Texas,48081,1,0 +2020-05-12,Coke,Texas,48081,1,0 +2020-05-13,Coke,Texas,48081,1,0 +2020-05-14,Coke,Texas,48081,1,0 +2020-05-15,Coke,Texas,48081,1,0 +2020-05-16,Coke,Texas,48081,1,0 +2020-05-17,Coke,Texas,48081,1,0 +2020-05-18,Coke,Texas,48081,1,0 +2020-05-19,Coke,Texas,48081,1,0 +2020-05-20,Coke,Texas,48081,1,0 +2020-05-21,Coke,Texas,48081,1,0 +2020-05-22,Coke,Texas,48081,1,0 +2020-05-23,Coke,Texas,48081,1,0 +2020-05-24,Coke,Texas,48081,1,0 +2020-05-25,Coke,Texas,48081,1,0 +2020-05-26,Coke,Texas,48081,1,0 +2020-05-27,Coke,Texas,48081,1,0 +2020-05-28,Coke,Texas,48081,1,0 +2020-05-29,Coke,Texas,48081,1,0 +2020-05-30,Coke,Texas,48081,1,0 +2020-05-31,Coke,Texas,48081,1,0 +2020-06-01,Coke,Texas,48081,1,0 +2020-06-02,Coke,Texas,48081,1,0 +2020-06-03,Coke,Texas,48081,1,0 +2020-06-04,Coke,Texas,48081,1,0 +2020-06-05,Coke,Texas,48081,1,0 +2020-06-06,Coke,Texas,48081,1,0 +2020-06-07,Coke,Texas,48081,1,0 +2020-06-08,Coke,Texas,48081,1,0 +2020-06-09,Coke,Texas,48081,1,0 +2020-06-10,Coke,Texas,48081,1,0 +2020-06-11,Coke,Texas,48081,2,0 +2020-06-12,Coke,Texas,48081,4,0 +2020-06-13,Coke,Texas,48081,4,0 +2020-06-14,Coke,Texas,48081,4,0 +2020-06-15,Coke,Texas,48081,4,0 +2020-06-16,Coke,Texas,48081,4,0 +2020-06-17,Coke,Texas,48081,4,0 +2020-06-18,Coke,Texas,48081,4,0 +2020-06-19,Coke,Texas,48081,4,0 +2020-06-20,Coke,Texas,48081,4,0 +2020-06-21,Coke,Texas,48081,4,0 +2020-06-22,Coke,Texas,48081,4,0 +2020-06-23,Coke,Texas,48081,5,1 +2020-06-24,Coke,Texas,48081,5,1 +2020-06-25,Coke,Texas,48081,5,1 +2020-06-26,Coke,Texas,48081,5,1 +2020-06-27,Coke,Texas,48081,5,1 +2020-06-28,Coke,Texas,48081,5,1 +2020-06-29,Coke,Texas,48081,5,1 +2020-06-30,Coke,Texas,48081,5,1 +2020-07-01,Coke,Texas,48081,5,1 +2020-07-02,Coke,Texas,48081,5,1 +2020-07-03,Coke,Texas,48081,5,1 +2020-07-04,Coke,Texas,48081,5,1 +2020-07-05,Coke,Texas,48081,5,1 +2020-07-06,Coke,Texas,48081,5,1 +2020-07-07,Coke,Texas,48081,5,1 +2020-07-08,Coke,Texas,48081,5,1 +2020-07-09,Coke,Texas,48081,5,1 +2020-05-02,Coleman,Texas,48083,1,0 +2020-05-03,Coleman,Texas,48083,1,0 +2020-05-04,Coleman,Texas,48083,1,0 +2020-05-05,Coleman,Texas,48083,1,0 +2020-05-06,Coleman,Texas,48083,1,0 +2020-05-07,Coleman,Texas,48083,2,0 +2020-05-08,Coleman,Texas,48083,2,0 +2020-05-09,Coleman,Texas,48083,2,0 +2020-05-10,Coleman,Texas,48083,2,0 +2020-05-11,Coleman,Texas,48083,2,0 +2020-05-12,Coleman,Texas,48083,2,0 +2020-05-13,Coleman,Texas,48083,2,0 +2020-05-14,Coleman,Texas,48083,2,0 +2020-05-15,Coleman,Texas,48083,2,0 +2020-05-16,Coleman,Texas,48083,2,0 +2020-05-17,Coleman,Texas,48083,2,0 +2020-05-18,Coleman,Texas,48083,2,0 +2020-05-19,Coleman,Texas,48083,2,0 +2020-05-20,Coleman,Texas,48083,2,0 +2020-05-21,Coleman,Texas,48083,2,0 +2020-05-22,Coleman,Texas,48083,2,0 +2020-05-23,Coleman,Texas,48083,2,0 +2020-05-24,Coleman,Texas,48083,2,0 +2020-05-25,Coleman,Texas,48083,2,0 +2020-05-26,Coleman,Texas,48083,2,0 +2020-05-27,Coleman,Texas,48083,2,0 +2020-05-28,Coleman,Texas,48083,3,0 +2020-05-29,Coleman,Texas,48083,3,0 +2020-05-30,Coleman,Texas,48083,3,0 +2020-05-31,Coleman,Texas,48083,3,0 +2020-06-01,Coleman,Texas,48083,3,0 +2020-06-02,Coleman,Texas,48083,3,0 +2020-06-03,Coleman,Texas,48083,4,0 +2020-06-04,Coleman,Texas,48083,4,0 +2020-06-05,Coleman,Texas,48083,4,0 +2020-06-06,Coleman,Texas,48083,3,0 +2020-06-07,Coleman,Texas,48083,3,0 +2020-06-08,Coleman,Texas,48083,3,0 +2020-06-09,Coleman,Texas,48083,3,0 +2020-06-10,Coleman,Texas,48083,3,0 +2020-06-11,Coleman,Texas,48083,3,0 +2020-06-12,Coleman,Texas,48083,3,0 +2020-06-13,Coleman,Texas,48083,3,0 +2020-06-14,Coleman,Texas,48083,3,0 +2020-06-15,Coleman,Texas,48083,3,0 +2020-06-16,Coleman,Texas,48083,3,0 +2020-06-17,Coleman,Texas,48083,3,0 +2020-06-18,Coleman,Texas,48083,3,0 +2020-06-19,Coleman,Texas,48083,3,0 +2020-06-20,Coleman,Texas,48083,3,0 +2020-06-21,Coleman,Texas,48083,3,0 +2020-06-22,Coleman,Texas,48083,3,0 +2020-06-23,Coleman,Texas,48083,3,0 +2020-06-24,Coleman,Texas,48083,3,0 +2020-06-25,Coleman,Texas,48083,3,0 +2020-06-26,Coleman,Texas,48083,3,0 +2020-06-27,Coleman,Texas,48083,3,0 +2020-06-28,Coleman,Texas,48083,3,0 +2020-06-29,Coleman,Texas,48083,3,0 +2020-06-30,Coleman,Texas,48083,3,0 +2020-07-01,Coleman,Texas,48083,3,0 +2020-07-02,Coleman,Texas,48083,3,0 +2020-07-03,Coleman,Texas,48083,3,0 +2020-07-04,Coleman,Texas,48083,3,0 +2020-07-05,Coleman,Texas,48083,3,0 +2020-07-06,Coleman,Texas,48083,3,0 +2020-07-07,Coleman,Texas,48083,3,0 +2020-07-08,Coleman,Texas,48083,4,0 +2020-07-09,Coleman,Texas,48083,4,0 +2020-03-09,Collin,Texas,48085,1,0 +2020-03-10,Collin,Texas,48085,3,0 +2020-03-11,Collin,Texas,48085,3,0 +2020-03-12,Collin,Texas,48085,4,0 +2020-03-13,Collin,Texas,48085,5,0 +2020-03-14,Collin,Texas,48085,7,0 +2020-03-15,Collin,Texas,48085,8,0 +2020-03-16,Collin,Texas,48085,8,0 +2020-03-17,Collin,Texas,48085,8,0 +2020-03-18,Collin,Texas,48085,13,1 +2020-03-19,Collin,Texas,48085,18,1 +2020-03-20,Collin,Texas,48085,27,1 +2020-03-21,Collin,Texas,48085,31,1 +2020-03-22,Collin,Texas,48085,38,1 +2020-03-23,Collin,Texas,48085,45,1 +2020-03-24,Collin,Texas,48085,53,1 +2020-03-25,Collin,Texas,48085,66,1 +2020-03-26,Collin,Texas,48085,88,1 +2020-03-27,Collin,Texas,48085,118,1 +2020-03-28,Collin,Texas,48085,128,1 +2020-03-29,Collin,Texas,48085,134,1 +2020-03-30,Collin,Texas,48085,160,1 +2020-03-31,Collin,Texas,48085,160,1 +2020-04-01,Collin,Texas,48085,184,1 +2020-04-02,Collin,Texas,48085,207,1 +2020-04-03,Collin,Texas,48085,227,2 +2020-04-04,Collin,Texas,48085,268,3 +2020-04-05,Collin,Texas,48085,268,3 +2020-04-06,Collin,Texas,48085,306,4 +2020-04-07,Collin,Texas,48085,343,4 +2020-04-08,Collin,Texas,48085,378,5 +2020-04-09,Collin,Texas,48085,406,6 +2020-04-10,Collin,Texas,48085,406,6 +2020-04-11,Collin,Texas,48085,441,7 +2020-04-12,Collin,Texas,48085,441,7 +2020-04-13,Collin,Texas,48085,472,10 +2020-04-14,Collin,Texas,48085,477,10 +2020-04-15,Collin,Texas,48085,477,10 +2020-04-16,Collin,Texas,48085,494,10 +2020-04-17,Collin,Texas,48085,521,12 +2020-04-18,Collin,Texas,48085,522,13 +2020-04-19,Collin,Texas,48085,527,13 +2020-04-20,Collin,Texas,48085,544,13 +2020-04-21,Collin,Texas,48085,570,14 +2020-04-22,Collin,Texas,48085,584,14 +2020-04-23,Collin,Texas,48085,609,14 +2020-04-24,Collin,Texas,48085,639,16 +2020-04-25,Collin,Texas,48085,654,16 +2020-04-26,Collin,Texas,48085,663,17 +2020-04-27,Collin,Texas,48085,676,17 +2020-04-28,Collin,Texas,48085,692,19 +2020-04-29,Collin,Texas,48085,710,19 +2020-04-30,Collin,Texas,48085,724,20 +2020-05-01,Collin,Texas,48085,767,22 +2020-05-02,Collin,Texas,48085,786,22 +2020-05-03,Collin,Texas,48085,791,22 +2020-05-04,Collin,Texas,48085,806,22 +2020-05-05,Collin,Texas,48085,830,22 +2020-05-06,Collin,Texas,48085,841,22 +2020-05-07,Collin,Texas,48085,859,24 +2020-05-08,Collin,Texas,48085,889,27 +2020-05-09,Collin,Texas,48085,903,27 +2020-05-10,Collin,Texas,48085,920,28 +2020-05-11,Collin,Texas,48085,941,29 +2020-05-12,Collin,Texas,48085,965,29 +2020-05-13,Collin,Texas,48085,980,30 +2020-05-14,Collin,Texas,48085,995,30 +2020-05-15,Collin,Texas,48085,1010,31 +2020-05-16,Collin,Texas,48085,1018,31 +2020-05-17,Collin,Texas,48085,1030,31 +2020-05-18,Collin,Texas,48085,1049,31 +2020-05-19,Collin,Texas,48085,1075,31 +2020-05-20,Collin,Texas,48085,1092,31 +2020-05-21,Collin,Texas,48085,1120,31 +2020-05-22,Collin,Texas,48085,1135,33 +2020-05-23,Collin,Texas,48085,1138,33 +2020-05-24,Collin,Texas,48085,1153,33 +2020-05-25,Collin,Texas,48085,1157,33 +2020-05-26,Collin,Texas,48085,1189,33 +2020-05-27,Collin,Texas,48085,1217,33 +2020-05-28,Collin,Texas,48085,1236,33 +2020-05-29,Collin,Texas,48085,1278,34 +2020-05-30,Collin,Texas,48085,1297,34 +2020-05-31,Collin,Texas,48085,1312,34 +2020-06-01,Collin,Texas,48085,1315,35 +2020-06-02,Collin,Texas,48085,1315,35 +2020-06-03,Collin,Texas,48085,1346,35 +2020-06-04,Collin,Texas,48085,1388,35 +2020-06-05,Collin,Texas,48085,1430,35 +2020-06-06,Collin,Texas,48085,1447,35 +2020-06-07,Collin,Texas,48085,1447,35 +2020-06-08,Collin,Texas,48085,1515,37 +2020-06-09,Collin,Texas,48085,1582,37 +2020-06-10,Collin,Texas,48085,1596,37 +2020-06-11,Collin,Texas,48085,1609,37 +2020-06-12,Collin,Texas,48085,1638,37 +2020-06-13,Collin,Texas,48085,1647,37 +2020-06-14,Collin,Texas,48085,1667,37 +2020-06-15,Collin,Texas,48085,1787,38 +2020-06-16,Collin,Texas,48085,1866,38 +2020-06-17,Collin,Texas,48085,1967,38 +2020-06-18,Collin,Texas,48085,2026,38 +2020-06-19,Collin,Texas,48085,2064,38 +2020-06-20,Collin,Texas,48085,2189,38 +2020-06-21,Collin,Texas,48085,2223,38 +2020-06-22,Collin,Texas,48085,2250,38 +2020-06-23,Collin,Texas,48085,2359,38 +2020-06-24,Collin,Texas,48085,2449,39 +2020-06-25,Collin,Texas,48085,2486,40 +2020-06-26,Collin,Texas,48085,2532,41 +2020-06-27,Collin,Texas,48085,2671,42 +2020-06-28,Collin,Texas,48085,2763,42 +2020-06-29,Collin,Texas,48085,2882,42 +2020-06-30,Collin,Texas,48085,2997,42 +2020-07-01,Collin,Texas,48085,3114,43 +2020-07-02,Collin,Texas,48085,3199,45 +2020-07-03,Collin,Texas,48085,3321,45 +2020-07-04,Collin,Texas,48085,3409,46 +2020-07-05,Collin,Texas,48085,3521,46 +2020-07-06,Collin,Texas,48085,3707,47 +2020-07-07,Collin,Texas,48085,3825,50 +2020-07-08,Collin,Texas,48085,3948,53 +2020-07-09,Collin,Texas,48085,4108,56 +2020-05-05,Collingsworth,Texas,48087,1,0 +2020-05-06,Collingsworth,Texas,48087,1,0 +2020-05-07,Collingsworth,Texas,48087,1,0 +2020-05-08,Collingsworth,Texas,48087,1,0 +2020-05-09,Collingsworth,Texas,48087,1,0 +2020-05-10,Collingsworth,Texas,48087,4,0 +2020-05-11,Collingsworth,Texas,48087,4,0 +2020-05-12,Collingsworth,Texas,48087,4,0 +2020-05-13,Collingsworth,Texas,48087,4,0 +2020-05-14,Collingsworth,Texas,48087,4,0 +2020-05-15,Collingsworth,Texas,48087,4,0 +2020-05-16,Collingsworth,Texas,48087,4,0 +2020-05-17,Collingsworth,Texas,48087,4,0 +2020-05-18,Collingsworth,Texas,48087,4,0 +2020-05-19,Collingsworth,Texas,48087,4,0 +2020-05-20,Collingsworth,Texas,48087,4,0 +2020-05-21,Collingsworth,Texas,48087,4,0 +2020-05-22,Collingsworth,Texas,48087,4,0 +2020-05-23,Collingsworth,Texas,48087,4,0 +2020-05-24,Collingsworth,Texas,48087,4,0 +2020-05-25,Collingsworth,Texas,48087,4,0 +2020-05-26,Collingsworth,Texas,48087,5,0 +2020-05-27,Collingsworth,Texas,48087,5,0 +2020-05-28,Collingsworth,Texas,48087,5,0 +2020-05-29,Collingsworth,Texas,48087,5,0 +2020-05-30,Collingsworth,Texas,48087,5,0 +2020-05-31,Collingsworth,Texas,48087,5,0 +2020-06-01,Collingsworth,Texas,48087,5,0 +2020-06-02,Collingsworth,Texas,48087,5,0 +2020-06-03,Collingsworth,Texas,48087,5,0 +2020-06-04,Collingsworth,Texas,48087,5,0 +2020-06-05,Collingsworth,Texas,48087,5,0 +2020-06-06,Collingsworth,Texas,48087,5,0 +2020-06-07,Collingsworth,Texas,48087,5,0 +2020-06-08,Collingsworth,Texas,48087,5,0 +2020-06-09,Collingsworth,Texas,48087,5,0 +2020-06-10,Collingsworth,Texas,48087,5,0 +2020-06-11,Collingsworth,Texas,48087,5,0 +2020-06-12,Collingsworth,Texas,48087,5,0 +2020-06-13,Collingsworth,Texas,48087,5,0 +2020-06-14,Collingsworth,Texas,48087,5,0 +2020-06-15,Collingsworth,Texas,48087,5,0 +2020-06-16,Collingsworth,Texas,48087,5,0 +2020-06-17,Collingsworth,Texas,48087,5,0 +2020-06-18,Collingsworth,Texas,48087,5,0 +2020-06-19,Collingsworth,Texas,48087,5,0 +2020-06-20,Collingsworth,Texas,48087,5,0 +2020-06-21,Collingsworth,Texas,48087,5,0 +2020-06-22,Collingsworth,Texas,48087,5,0 +2020-06-23,Collingsworth,Texas,48087,5,0 +2020-06-24,Collingsworth,Texas,48087,5,0 +2020-06-25,Collingsworth,Texas,48087,5,0 +2020-06-26,Collingsworth,Texas,48087,5,0 +2020-06-27,Collingsworth,Texas,48087,6,0 +2020-06-28,Collingsworth,Texas,48087,6,0 +2020-06-29,Collingsworth,Texas,48087,6,0 +2020-06-30,Collingsworth,Texas,48087,6,0 +2020-07-01,Collingsworth,Texas,48087,6,0 +2020-07-02,Collingsworth,Texas,48087,6,0 +2020-07-03,Collingsworth,Texas,48087,6,0 +2020-07-04,Collingsworth,Texas,48087,6,0 +2020-07-05,Collingsworth,Texas,48087,6,0 +2020-07-06,Collingsworth,Texas,48087,6,0 +2020-07-07,Collingsworth,Texas,48087,6,0 +2020-07-08,Collingsworth,Texas,48087,6,0 +2020-07-09,Collingsworth,Texas,48087,6,0 +2020-04-01,Colorado,Texas,48089,2,0 +2020-04-02,Colorado,Texas,48089,2,0 +2020-04-03,Colorado,Texas,48089,4,0 +2020-04-04,Colorado,Texas,48089,4,0 +2020-04-05,Colorado,Texas,48089,2,0 +2020-04-06,Colorado,Texas,48089,2,0 +2020-04-07,Colorado,Texas,48089,3,0 +2020-04-08,Colorado,Texas,48089,3,0 +2020-04-09,Colorado,Texas,48089,6,0 +2020-04-10,Colorado,Texas,48089,6,0 +2020-04-11,Colorado,Texas,48089,7,0 +2020-04-12,Colorado,Texas,48089,7,0 +2020-04-13,Colorado,Texas,48089,7,0 +2020-04-14,Colorado,Texas,48089,7,0 +2020-04-15,Colorado,Texas,48089,7,0 +2020-04-16,Colorado,Texas,48089,7,0 +2020-04-17,Colorado,Texas,48089,7,0 +2020-04-18,Colorado,Texas,48089,8,0 +2020-04-19,Colorado,Texas,48089,8,0 +2020-04-20,Colorado,Texas,48089,8,0 +2020-04-21,Colorado,Texas,48089,9,0 +2020-04-22,Colorado,Texas,48089,9,0 +2020-04-23,Colorado,Texas,48089,10,0 +2020-04-24,Colorado,Texas,48089,10,0 +2020-04-25,Colorado,Texas,48089,10,0 +2020-04-26,Colorado,Texas,48089,10,0 +2020-04-27,Colorado,Texas,48089,10,0 +2020-04-28,Colorado,Texas,48089,10,0 +2020-04-29,Colorado,Texas,48089,10,0 +2020-04-30,Colorado,Texas,48089,10,0 +2020-05-01,Colorado,Texas,48089,11,0 +2020-05-02,Colorado,Texas,48089,11,0 +2020-05-03,Colorado,Texas,48089,10,0 +2020-05-04,Colorado,Texas,48089,10,0 +2020-05-05,Colorado,Texas,48089,10,0 +2020-05-06,Colorado,Texas,48089,12,0 +2020-05-07,Colorado,Texas,48089,12,0 +2020-05-08,Colorado,Texas,48089,13,0 +2020-05-09,Colorado,Texas,48089,16,0 +2020-05-10,Colorado,Texas,48089,16,0 +2020-05-11,Colorado,Texas,48089,16,0 +2020-05-12,Colorado,Texas,48089,16,0 +2020-05-13,Colorado,Texas,48089,18,0 +2020-05-14,Colorado,Texas,48089,18,0 +2020-05-15,Colorado,Texas,48089,18,0 +2020-05-16,Colorado,Texas,48089,18,0 +2020-05-17,Colorado,Texas,48089,18,0 +2020-05-18,Colorado,Texas,48089,18,0 +2020-05-19,Colorado,Texas,48089,19,0 +2020-05-20,Colorado,Texas,48089,19,0 +2020-05-21,Colorado,Texas,48089,19,0 +2020-05-22,Colorado,Texas,48089,19,0 +2020-05-23,Colorado,Texas,48089,19,0 +2020-05-24,Colorado,Texas,48089,19,0 +2020-05-25,Colorado,Texas,48089,20,0 +2020-05-26,Colorado,Texas,48089,20,0 +2020-05-27,Colorado,Texas,48089,21,0 +2020-05-28,Colorado,Texas,48089,22,0 +2020-05-29,Colorado,Texas,48089,22,0 +2020-05-30,Colorado,Texas,48089,22,0 +2020-05-31,Colorado,Texas,48089,22,0 +2020-06-01,Colorado,Texas,48089,22,0 +2020-06-02,Colorado,Texas,48089,23,0 +2020-06-03,Colorado,Texas,48089,23,0 +2020-06-04,Colorado,Texas,48089,24,0 +2020-06-05,Colorado,Texas,48089,24,0 +2020-06-06,Colorado,Texas,48089,24,0 +2020-06-07,Colorado,Texas,48089,24,0 +2020-06-08,Colorado,Texas,48089,24,0 +2020-06-09,Colorado,Texas,48089,26,0 +2020-06-10,Colorado,Texas,48089,27,0 +2020-06-11,Colorado,Texas,48089,28,0 +2020-06-12,Colorado,Texas,48089,31,0 +2020-06-13,Colorado,Texas,48089,33,0 +2020-06-14,Colorado,Texas,48089,33,0 +2020-06-15,Colorado,Texas,48089,34,0 +2020-06-16,Colorado,Texas,48089,36,0 +2020-06-17,Colorado,Texas,48089,41,0 +2020-06-18,Colorado,Texas,48089,44,0 +2020-06-19,Colorado,Texas,48089,46,0 +2020-06-20,Colorado,Texas,48089,55,0 +2020-06-21,Colorado,Texas,48089,55,0 +2020-06-22,Colorado,Texas,48089,55,0 +2020-06-23,Colorado,Texas,48089,55,0 +2020-06-24,Colorado,Texas,48089,58,0 +2020-06-25,Colorado,Texas,48089,66,0 +2020-06-26,Colorado,Texas,48089,71,0 +2020-06-27,Colorado,Texas,48089,82,0 +2020-06-28,Colorado,Texas,48089,87,0 +2020-06-29,Colorado,Texas,48089,87,0 +2020-06-30,Colorado,Texas,48089,87,0 +2020-07-01,Colorado,Texas,48089,93,0 +2020-07-02,Colorado,Texas,48089,95,0 +2020-07-03,Colorado,Texas,48089,100,0 +2020-07-04,Colorado,Texas,48089,104,0 +2020-07-05,Colorado,Texas,48089,104,0 +2020-07-06,Colorado,Texas,48089,108,0 +2020-07-07,Colorado,Texas,48089,109,0 +2020-07-08,Colorado,Texas,48089,111,0 +2020-07-09,Colorado,Texas,48089,143,0 +2020-03-24,Comal,Texas,48091,3,0 +2020-03-25,Comal,Texas,48091,5,0 +2020-03-26,Comal,Texas,48091,8,1 +2020-03-27,Comal,Texas,48091,9,1 +2020-03-28,Comal,Texas,48091,9,1 +2020-03-29,Comal,Texas,48091,9,1 +2020-03-30,Comal,Texas,48091,9,2 +2020-03-31,Comal,Texas,48091,11,2 +2020-04-01,Comal,Texas,48091,12,2 +2020-04-02,Comal,Texas,48091,12,2 +2020-04-03,Comal,Texas,48091,18,2 +2020-04-04,Comal,Texas,48091,18,2 +2020-04-05,Comal,Texas,48091,21,2 +2020-04-06,Comal,Texas,48091,22,2 +2020-04-07,Comal,Texas,48091,22,2 +2020-04-08,Comal,Texas,48091,29,3 +2020-04-09,Comal,Texas,48091,29,4 +2020-04-10,Comal,Texas,48091,37,4 +2020-04-11,Comal,Texas,48091,37,4 +2020-04-12,Comal,Texas,48091,37,4 +2020-04-13,Comal,Texas,48091,38,6 +2020-04-14,Comal,Texas,48091,39,6 +2020-04-15,Comal,Texas,48091,43,6 +2020-04-16,Comal,Texas,48091,43,6 +2020-04-17,Comal,Texas,48091,43,6 +2020-04-18,Comal,Texas,48091,43,6 +2020-04-19,Comal,Texas,48091,43,6 +2020-04-20,Comal,Texas,48091,43,6 +2020-04-21,Comal,Texas,48091,45,6 +2020-04-22,Comal,Texas,48091,47,6 +2020-04-23,Comal,Texas,48091,48,6 +2020-04-24,Comal,Texas,48091,48,6 +2020-04-25,Comal,Texas,48091,48,6 +2020-04-26,Comal,Texas,48091,48,6 +2020-04-27,Comal,Texas,48091,49,6 +2020-04-28,Comal,Texas,48091,52,6 +2020-04-29,Comal,Texas,48091,54,6 +2020-04-30,Comal,Texas,48091,55,6 +2020-05-01,Comal,Texas,48091,58,6 +2020-05-02,Comal,Texas,48091,58,6 +2020-05-03,Comal,Texas,48091,58,6 +2020-05-04,Comal,Texas,48091,58,6 +2020-05-05,Comal,Texas,48091,59,6 +2020-05-06,Comal,Texas,48091,61,6 +2020-05-07,Comal,Texas,48091,65,6 +2020-05-08,Comal,Texas,48091,65,6 +2020-05-09,Comal,Texas,48091,65,6 +2020-05-10,Comal,Texas,48091,65,6 +2020-05-11,Comal,Texas,48091,65,6 +2020-05-12,Comal,Texas,48091,68,6 +2020-05-13,Comal,Texas,48091,68,6 +2020-05-14,Comal,Texas,48091,68,6 +2020-05-15,Comal,Texas,48091,70,6 +2020-05-16,Comal,Texas,48091,70,6 +2020-05-17,Comal,Texas,48091,70,6 +2020-05-18,Comal,Texas,48091,71,6 +2020-05-19,Comal,Texas,48091,72,6 +2020-05-20,Comal,Texas,48091,78,6 +2020-05-21,Comal,Texas,48091,81,6 +2020-05-22,Comal,Texas,48091,82,6 +2020-05-23,Comal,Texas,48091,82,6 +2020-05-24,Comal,Texas,48091,82,6 +2020-05-25,Comal,Texas,48091,82,6 +2020-05-26,Comal,Texas,48091,83,6 +2020-05-27,Comal,Texas,48091,83,6 +2020-05-28,Comal,Texas,48091,90,7 +2020-05-29,Comal,Texas,48091,94,7 +2020-05-30,Comal,Texas,48091,94,7 +2020-05-31,Comal,Texas,48091,94,7 +2020-06-01,Comal,Texas,48091,100,7 +2020-06-02,Comal,Texas,48091,108,7 +2020-06-03,Comal,Texas,48091,111,7 +2020-06-04,Comal,Texas,48091,113,7 +2020-06-05,Comal,Texas,48091,117,7 +2020-06-06,Comal,Texas,48091,117,7 +2020-06-07,Comal,Texas,48091,117,7 +2020-06-08,Comal,Texas,48091,121,7 +2020-06-09,Comal,Texas,48091,134,7 +2020-06-10,Comal,Texas,48091,137,7 +2020-06-11,Comal,Texas,48091,159,7 +2020-06-12,Comal,Texas,48091,176,7 +2020-06-13,Comal,Texas,48091,191,7 +2020-06-14,Comal,Texas,48091,191,7 +2020-06-15,Comal,Texas,48091,191,7 +2020-06-16,Comal,Texas,48091,240,7 +2020-06-17,Comal,Texas,48091,258,7 +2020-06-18,Comal,Texas,48091,277,7 +2020-06-19,Comal,Texas,48091,298,7 +2020-06-20,Comal,Texas,48091,346,7 +2020-06-21,Comal,Texas,48091,346,7 +2020-06-22,Comal,Texas,48091,346,7 +2020-06-23,Comal,Texas,48091,419,7 +2020-06-24,Comal,Texas,48091,471,7 +2020-06-25,Comal,Texas,48091,504,7 +2020-06-26,Comal,Texas,48091,552,7 +2020-06-27,Comal,Texas,48091,598,7 +2020-06-28,Comal,Texas,48091,598,7 +2020-06-29,Comal,Texas,48091,598,7 +2020-06-30,Comal,Texas,48091,654,7 +2020-07-01,Comal,Texas,48091,778,8 +2020-07-02,Comal,Texas,48091,836,8 +2020-07-03,Comal,Texas,48091,907,9 +2020-07-04,Comal,Texas,48091,907,9 +2020-07-05,Comal,Texas,48091,907,9 +2020-07-06,Comal,Texas,48091,907,9 +2020-07-07,Comal,Texas,48091,989,9 +2020-07-08,Comal,Texas,48091,1092,15 +2020-07-09,Comal,Texas,48091,1142,18 +2020-04-01,Comanche,Texas,48093,1,0 +2020-04-02,Comanche,Texas,48093,1,0 +2020-04-03,Comanche,Texas,48093,1,0 +2020-04-04,Comanche,Texas,48093,1,0 +2020-04-05,Comanche,Texas,48093,1,0 +2020-04-06,Comanche,Texas,48093,1,0 +2020-04-07,Comanche,Texas,48093,3,0 +2020-04-08,Comanche,Texas,48093,3,0 +2020-04-09,Comanche,Texas,48093,3,0 +2020-04-10,Comanche,Texas,48093,3,0 +2020-04-11,Comanche,Texas,48093,3,0 +2020-04-12,Comanche,Texas,48093,3,0 +2020-04-13,Comanche,Texas,48093,3,0 +2020-04-14,Comanche,Texas,48093,3,0 +2020-04-15,Comanche,Texas,48093,3,0 +2020-04-16,Comanche,Texas,48093,3,0 +2020-04-17,Comanche,Texas,48093,3,0 +2020-04-18,Comanche,Texas,48093,3,0 +2020-04-19,Comanche,Texas,48093,3,0 +2020-04-20,Comanche,Texas,48093,3,0 +2020-04-21,Comanche,Texas,48093,3,0 +2020-04-22,Comanche,Texas,48093,3,0 +2020-04-23,Comanche,Texas,48093,3,0 +2020-04-24,Comanche,Texas,48093,3,0 +2020-04-25,Comanche,Texas,48093,3,0 +2020-04-26,Comanche,Texas,48093,3,0 +2020-04-27,Comanche,Texas,48093,3,0 +2020-04-28,Comanche,Texas,48093,3,0 +2020-04-29,Comanche,Texas,48093,3,0 +2020-04-30,Comanche,Texas,48093,3,1 +2020-05-01,Comanche,Texas,48093,3,1 +2020-05-02,Comanche,Texas,48093,3,1 +2020-05-03,Comanche,Texas,48093,3,1 +2020-05-04,Comanche,Texas,48093,3,1 +2020-05-05,Comanche,Texas,48093,3,1 +2020-05-06,Comanche,Texas,48093,3,1 +2020-05-07,Comanche,Texas,48093,3,1 +2020-05-08,Comanche,Texas,48093,3,1 +2020-05-09,Comanche,Texas,48093,3,1 +2020-05-10,Comanche,Texas,48093,3,1 +2020-05-11,Comanche,Texas,48093,3,1 +2020-05-12,Comanche,Texas,48093,3,1 +2020-05-13,Comanche,Texas,48093,3,1 +2020-05-14,Comanche,Texas,48093,3,1 +2020-05-15,Comanche,Texas,48093,3,1 +2020-05-16,Comanche,Texas,48093,3,1 +2020-05-17,Comanche,Texas,48093,3,1 +2020-05-18,Comanche,Texas,48093,3,1 +2020-05-19,Comanche,Texas,48093,5,1 +2020-05-20,Comanche,Texas,48093,5,1 +2020-05-21,Comanche,Texas,48093,5,1 +2020-05-22,Comanche,Texas,48093,5,1 +2020-05-23,Comanche,Texas,48093,10,1 +2020-05-24,Comanche,Texas,48093,10,1 +2020-05-25,Comanche,Texas,48093,10,1 +2020-05-26,Comanche,Texas,48093,10,1 +2020-05-27,Comanche,Texas,48093,10,1 +2020-05-28,Comanche,Texas,48093,10,1 +2020-05-29,Comanche,Texas,48093,11,1 +2020-05-30,Comanche,Texas,48093,12,1 +2020-05-31,Comanche,Texas,48093,12,1 +2020-06-01,Comanche,Texas,48093,12,1 +2020-06-02,Comanche,Texas,48093,12,1 +2020-06-03,Comanche,Texas,48093,12,1 +2020-06-04,Comanche,Texas,48093,12,1 +2020-06-05,Comanche,Texas,48093,12,1 +2020-06-06,Comanche,Texas,48093,12,1 +2020-06-07,Comanche,Texas,48093,12,1 +2020-06-08,Comanche,Texas,48093,12,1 +2020-06-09,Comanche,Texas,48093,12,1 +2020-06-10,Comanche,Texas,48093,12,1 +2020-06-11,Comanche,Texas,48093,12,1 +2020-06-12,Comanche,Texas,48093,12,1 +2020-06-13,Comanche,Texas,48093,12,1 +2020-06-14,Comanche,Texas,48093,12,1 +2020-06-15,Comanche,Texas,48093,12,1 +2020-06-16,Comanche,Texas,48093,14,1 +2020-06-17,Comanche,Texas,48093,14,1 +2020-06-18,Comanche,Texas,48093,14,1 +2020-06-19,Comanche,Texas,48093,14,1 +2020-06-20,Comanche,Texas,48093,14,1 +2020-06-21,Comanche,Texas,48093,14,1 +2020-06-22,Comanche,Texas,48093,14,1 +2020-06-23,Comanche,Texas,48093,14,1 +2020-06-24,Comanche,Texas,48093,14,1 +2020-06-25,Comanche,Texas,48093,14,1 +2020-06-26,Comanche,Texas,48093,14,1 +2020-06-27,Comanche,Texas,48093,14,1 +2020-06-28,Comanche,Texas,48093,14,1 +2020-06-29,Comanche,Texas,48093,14,1 +2020-06-30,Comanche,Texas,48093,17,1 +2020-07-01,Comanche,Texas,48093,18,1 +2020-07-02,Comanche,Texas,48093,19,1 +2020-07-03,Comanche,Texas,48093,21,1 +2020-07-04,Comanche,Texas,48093,21,1 +2020-07-05,Comanche,Texas,48093,21,1 +2020-07-06,Comanche,Texas,48093,21,1 +2020-07-07,Comanche,Texas,48093,21,1 +2020-07-08,Comanche,Texas,48093,25,1 +2020-07-09,Comanche,Texas,48093,25,1 +2020-04-10,Concho,Texas,48095,1,0 +2020-04-11,Concho,Texas,48095,1,0 +2020-04-12,Concho,Texas,48095,1,0 +2020-04-13,Concho,Texas,48095,1,0 +2020-04-14,Concho,Texas,48095,1,0 +2020-04-15,Concho,Texas,48095,1,0 +2020-04-16,Concho,Texas,48095,1,0 +2020-04-17,Concho,Texas,48095,1,0 +2020-04-18,Concho,Texas,48095,1,0 +2020-04-19,Concho,Texas,48095,1,0 +2020-04-20,Concho,Texas,48095,1,0 +2020-04-21,Concho,Texas,48095,1,0 +2020-04-22,Concho,Texas,48095,1,0 +2020-04-23,Concho,Texas,48095,1,0 +2020-04-24,Concho,Texas,48095,1,0 +2020-04-25,Concho,Texas,48095,1,0 +2020-04-26,Concho,Texas,48095,1,0 +2020-04-27,Concho,Texas,48095,1,0 +2020-04-28,Concho,Texas,48095,1,0 +2020-04-29,Concho,Texas,48095,1,0 +2020-04-30,Concho,Texas,48095,1,0 +2020-05-01,Concho,Texas,48095,1,0 +2020-05-02,Concho,Texas,48095,1,0 +2020-05-03,Concho,Texas,48095,1,0 +2020-05-04,Concho,Texas,48095,1,0 +2020-05-05,Concho,Texas,48095,1,0 +2020-05-06,Concho,Texas,48095,1,0 +2020-05-07,Concho,Texas,48095,1,0 +2020-05-08,Concho,Texas,48095,1,0 +2020-05-09,Concho,Texas,48095,1,0 +2020-05-10,Concho,Texas,48095,1,0 +2020-05-11,Concho,Texas,48095,1,0 +2020-05-12,Concho,Texas,48095,1,0 +2020-05-13,Concho,Texas,48095,1,0 +2020-05-14,Concho,Texas,48095,1,0 +2020-05-15,Concho,Texas,48095,1,0 +2020-05-16,Concho,Texas,48095,1,0 +2020-05-17,Concho,Texas,48095,1,0 +2020-05-18,Concho,Texas,48095,1,0 +2020-05-19,Concho,Texas,48095,1,0 +2020-05-20,Concho,Texas,48095,1,0 +2020-05-21,Concho,Texas,48095,1,0 +2020-05-22,Concho,Texas,48095,1,0 +2020-05-23,Concho,Texas,48095,1,0 +2020-05-24,Concho,Texas,48095,1,0 +2020-05-25,Concho,Texas,48095,1,0 +2020-05-26,Concho,Texas,48095,1,0 +2020-05-27,Concho,Texas,48095,1,0 +2020-05-28,Concho,Texas,48095,1,0 +2020-05-29,Concho,Texas,48095,1,0 +2020-05-30,Concho,Texas,48095,1,0 +2020-05-31,Concho,Texas,48095,1,0 +2020-06-01,Concho,Texas,48095,1,0 +2020-06-02,Concho,Texas,48095,1,0 +2020-06-03,Concho,Texas,48095,1,0 +2020-06-04,Concho,Texas,48095,1,0 +2020-06-05,Concho,Texas,48095,1,0 +2020-06-06,Concho,Texas,48095,1,0 +2020-06-07,Concho,Texas,48095,1,0 +2020-06-08,Concho,Texas,48095,1,0 +2020-06-09,Concho,Texas,48095,1,0 +2020-06-10,Concho,Texas,48095,1,0 +2020-06-11,Concho,Texas,48095,1,0 +2020-06-12,Concho,Texas,48095,1,0 +2020-06-13,Concho,Texas,48095,1,0 +2020-06-14,Concho,Texas,48095,1,0 +2020-06-15,Concho,Texas,48095,1,0 +2020-06-16,Concho,Texas,48095,1,0 +2020-06-17,Concho,Texas,48095,1,0 +2020-06-18,Concho,Texas,48095,1,0 +2020-06-19,Concho,Texas,48095,1,0 +2020-06-20,Concho,Texas,48095,2,0 +2020-06-21,Concho,Texas,48095,2,0 +2020-06-22,Concho,Texas,48095,2,0 +2020-06-23,Concho,Texas,48095,2,0 +2020-06-24,Concho,Texas,48095,2,0 +2020-06-25,Concho,Texas,48095,4,0 +2020-06-26,Concho,Texas,48095,5,0 +2020-06-27,Concho,Texas,48095,7,0 +2020-06-28,Concho,Texas,48095,7,0 +2020-06-29,Concho,Texas,48095,7,0 +2020-06-30,Concho,Texas,48095,9,0 +2020-07-01,Concho,Texas,48095,9,0 +2020-07-02,Concho,Texas,48095,9,0 +2020-07-03,Concho,Texas,48095,9,0 +2020-07-04,Concho,Texas,48095,11,0 +2020-07-05,Concho,Texas,48095,11,0 +2020-07-06,Concho,Texas,48095,11,0 +2020-07-07,Concho,Texas,48095,11,0 +2020-07-08,Concho,Texas,48095,11,0 +2020-07-09,Concho,Texas,48095,13,0 +2020-04-10,Cooke,Texas,48097,1,0 +2020-04-11,Cooke,Texas,48097,1,0 +2020-04-12,Cooke,Texas,48097,1,0 +2020-04-13,Cooke,Texas,48097,1,0 +2020-04-14,Cooke,Texas,48097,1,0 +2020-04-15,Cooke,Texas,48097,2,0 +2020-04-16,Cooke,Texas,48097,2,0 +2020-04-17,Cooke,Texas,48097,2,0 +2020-04-18,Cooke,Texas,48097,3,0 +2020-04-19,Cooke,Texas,48097,3,0 +2020-04-20,Cooke,Texas,48097,3,0 +2020-04-21,Cooke,Texas,48097,4,0 +2020-04-22,Cooke,Texas,48097,4,0 +2020-04-23,Cooke,Texas,48097,4,0 +2020-04-24,Cooke,Texas,48097,4,0 +2020-04-25,Cooke,Texas,48097,4,0 +2020-04-26,Cooke,Texas,48097,4,0 +2020-04-27,Cooke,Texas,48097,4,0 +2020-04-28,Cooke,Texas,48097,4,0 +2020-04-29,Cooke,Texas,48097,8,0 +2020-04-30,Cooke,Texas,48097,7,0 +2020-05-01,Cooke,Texas,48097,7,0 +2020-05-02,Cooke,Texas,48097,8,0 +2020-05-03,Cooke,Texas,48097,8,0 +2020-05-04,Cooke,Texas,48097,9,0 +2020-05-05,Cooke,Texas,48097,9,0 +2020-05-06,Cooke,Texas,48097,11,0 +2020-05-07,Cooke,Texas,48097,11,0 +2020-05-08,Cooke,Texas,48097,11,0 +2020-05-09,Cooke,Texas,48097,12,0 +2020-05-10,Cooke,Texas,48097,12,0 +2020-05-11,Cooke,Texas,48097,12,0 +2020-05-12,Cooke,Texas,48097,12,0 +2020-05-13,Cooke,Texas,48097,13,0 +2020-05-14,Cooke,Texas,48097,13,0 +2020-05-15,Cooke,Texas,48097,13,0 +2020-05-16,Cooke,Texas,48097,13,0 +2020-05-17,Cooke,Texas,48097,13,0 +2020-05-18,Cooke,Texas,48097,13,0 +2020-05-19,Cooke,Texas,48097,13,0 +2020-05-20,Cooke,Texas,48097,13,0 +2020-05-21,Cooke,Texas,48097,13,0 +2020-05-22,Cooke,Texas,48097,13,0 +2020-05-23,Cooke,Texas,48097,13,0 +2020-05-24,Cooke,Texas,48097,13,0 +2020-05-25,Cooke,Texas,48097,13,0 +2020-05-26,Cooke,Texas,48097,13,0 +2020-05-27,Cooke,Texas,48097,13,0 +2020-05-28,Cooke,Texas,48097,13,0 +2020-05-29,Cooke,Texas,48097,14,0 +2020-05-30,Cooke,Texas,48097,14,0 +2020-05-31,Cooke,Texas,48097,14,0 +2020-06-01,Cooke,Texas,48097,14,0 +2020-06-02,Cooke,Texas,48097,16,0 +2020-06-03,Cooke,Texas,48097,18,0 +2020-06-04,Cooke,Texas,48097,19,0 +2020-06-05,Cooke,Texas,48097,20,0 +2020-06-06,Cooke,Texas,48097,20,0 +2020-06-07,Cooke,Texas,48097,20,0 +2020-06-08,Cooke,Texas,48097,20,0 +2020-06-09,Cooke,Texas,48097,20,0 +2020-06-10,Cooke,Texas,48097,20,0 +2020-06-11,Cooke,Texas,48097,23,0 +2020-06-12,Cooke,Texas,48097,23,0 +2020-06-13,Cooke,Texas,48097,23,0 +2020-06-14,Cooke,Texas,48097,23,0 +2020-06-15,Cooke,Texas,48097,23,0 +2020-06-16,Cooke,Texas,48097,24,0 +2020-06-17,Cooke,Texas,48097,26,0 +2020-06-18,Cooke,Texas,48097,27,0 +2020-06-19,Cooke,Texas,48097,27,0 +2020-06-20,Cooke,Texas,48097,27,0 +2020-06-21,Cooke,Texas,48097,27,0 +2020-06-22,Cooke,Texas,48097,27,0 +2020-06-23,Cooke,Texas,48097,30,0 +2020-06-24,Cooke,Texas,48097,30,0 +2020-06-25,Cooke,Texas,48097,30,0 +2020-06-26,Cooke,Texas,48097,30,0 +2020-06-27,Cooke,Texas,48097,35,0 +2020-06-28,Cooke,Texas,48097,35,0 +2020-06-29,Cooke,Texas,48097,35,0 +2020-06-30,Cooke,Texas,48097,43,0 +2020-07-01,Cooke,Texas,48097,43,0 +2020-07-02,Cooke,Texas,48097,43,0 +2020-07-03,Cooke,Texas,48097,60,0 +2020-07-04,Cooke,Texas,48097,61,0 +2020-07-05,Cooke,Texas,48097,61,0 +2020-07-06,Cooke,Texas,48097,61,0 +2020-07-07,Cooke,Texas,48097,68,0 +2020-07-08,Cooke,Texas,48097,75,0 +2020-07-09,Cooke,Texas,48097,83,0 +2020-03-25,Coryell,Texas,48099,1,0 +2020-03-26,Coryell,Texas,48099,1,0 +2020-03-27,Coryell,Texas,48099,1,0 +2020-03-28,Coryell,Texas,48099,1,0 +2020-03-29,Coryell,Texas,48099,1,0 +2020-03-30,Coryell,Texas,48099,1,0 +2020-03-31,Coryell,Texas,48099,1,0 +2020-04-01,Coryell,Texas,48099,1,0 +2020-04-02,Coryell,Texas,48099,1,0 +2020-04-03,Coryell,Texas,48099,2,0 +2020-04-04,Coryell,Texas,48099,4,0 +2020-04-05,Coryell,Texas,48099,5,0 +2020-04-06,Coryell,Texas,48099,5,0 +2020-04-07,Coryell,Texas,48099,11,0 +2020-04-08,Coryell,Texas,48099,11,0 +2020-04-09,Coryell,Texas,48099,17,0 +2020-04-10,Coryell,Texas,48099,18,0 +2020-04-11,Coryell,Texas,48099,34,0 +2020-04-12,Coryell,Texas,48099,34,0 +2020-04-13,Coryell,Texas,48099,34,0 +2020-04-14,Coryell,Texas,48099,34,0 +2020-04-15,Coryell,Texas,48099,60,0 +2020-04-16,Coryell,Texas,48099,70,1 +2020-04-17,Coryell,Texas,48099,71,1 +2020-04-18,Coryell,Texas,48099,75,1 +2020-04-19,Coryell,Texas,48099,75,1 +2020-04-20,Coryell,Texas,48099,75,1 +2020-04-21,Coryell,Texas,48099,84,1 +2020-04-22,Coryell,Texas,48099,86,1 +2020-04-23,Coryell,Texas,48099,86,1 +2020-04-24,Coryell,Texas,48099,103,1 +2020-04-25,Coryell,Texas,48099,104,1 +2020-04-26,Coryell,Texas,48099,105,1 +2020-04-27,Coryell,Texas,48099,105,1 +2020-04-28,Coryell,Texas,48099,105,1 +2020-04-29,Coryell,Texas,48099,105,2 +2020-04-30,Coryell,Texas,48099,155,2 +2020-05-01,Coryell,Texas,48099,158,2 +2020-05-02,Coryell,Texas,48099,160,2 +2020-05-03,Coryell,Texas,48099,162,2 +2020-05-04,Coryell,Texas,48099,162,2 +2020-05-05,Coryell,Texas,48099,180,2 +2020-05-06,Coryell,Texas,48099,190,2 +2020-05-07,Coryell,Texas,48099,201,2 +2020-05-08,Coryell,Texas,48099,205,2 +2020-05-09,Coryell,Texas,48099,207,2 +2020-05-10,Coryell,Texas,48099,208,2 +2020-05-11,Coryell,Texas,48099,208,2 +2020-05-12,Coryell,Texas,48099,211,2 +2020-05-13,Coryell,Texas,48099,217,2 +2020-05-14,Coryell,Texas,48099,220,2 +2020-05-15,Coryell,Texas,48099,221,2 +2020-05-16,Coryell,Texas,48099,224,2 +2020-05-17,Coryell,Texas,48099,224,2 +2020-05-18,Coryell,Texas,48099,224,2 +2020-05-19,Coryell,Texas,48099,226,2 +2020-05-20,Coryell,Texas,48099,225,2 +2020-05-21,Coryell,Texas,48099,226,2 +2020-05-22,Coryell,Texas,48099,226,2 +2020-05-23,Coryell,Texas,48099,226,2 +2020-05-24,Coryell,Texas,48099,226,2 +2020-05-25,Coryell,Texas,48099,226,2 +2020-05-26,Coryell,Texas,48099,227,2 +2020-05-27,Coryell,Texas,48099,227,2 +2020-05-28,Coryell,Texas,48099,227,2 +2020-05-29,Coryell,Texas,48099,230,2 +2020-05-30,Coryell,Texas,48099,231,2 +2020-05-31,Coryell,Texas,48099,281,2 +2020-06-01,Coryell,Texas,48099,282,2 +2020-06-02,Coryell,Texas,48099,285,2 +2020-06-03,Coryell,Texas,48099,289,2 +2020-06-04,Coryell,Texas,48099,289,2 +2020-06-05,Coryell,Texas,48099,289,2 +2020-06-06,Coryell,Texas,48099,290,2 +2020-06-07,Coryell,Texas,48099,289,2 +2020-06-08,Coryell,Texas,48099,289,2 +2020-06-09,Coryell,Texas,48099,296,2 +2020-06-10,Coryell,Texas,48099,299,2 +2020-06-11,Coryell,Texas,48099,296,2 +2020-06-12,Coryell,Texas,48099,299,2 +2020-06-13,Coryell,Texas,48099,299,2 +2020-06-14,Coryell,Texas,48099,300,2 +2020-06-15,Coryell,Texas,48099,300,2 +2020-06-16,Coryell,Texas,48099,300,2 +2020-06-17,Coryell,Texas,48099,303,2 +2020-06-18,Coryell,Texas,48099,304,2 +2020-06-19,Coryell,Texas,48099,305,2 +2020-06-20,Coryell,Texas,48099,305,2 +2020-06-21,Coryell,Texas,48099,310,2 +2020-06-22,Coryell,Texas,48099,315,2 +2020-06-23,Coryell,Texas,48099,321,2 +2020-06-24,Coryell,Texas,48099,322,2 +2020-06-25,Coryell,Texas,48099,321,2 +2020-06-26,Coryell,Texas,48099,327,2 +2020-06-27,Coryell,Texas,48099,326,2 +2020-06-28,Coryell,Texas,48099,327,2 +2020-06-29,Coryell,Texas,48099,330,2 +2020-06-30,Coryell,Texas,48099,331,2 +2020-07-01,Coryell,Texas,48099,331,2 +2020-07-02,Coryell,Texas,48099,335,2 +2020-07-03,Coryell,Texas,48099,336,2 +2020-07-04,Coryell,Texas,48099,336,2 +2020-07-05,Coryell,Texas,48099,336,2 +2020-07-06,Coryell,Texas,48099,336,2 +2020-07-07,Coryell,Texas,48099,336,2 +2020-07-08,Coryell,Texas,48099,353,2 +2020-07-09,Coryell,Texas,48099,356,2 +2020-04-27,Cottle,Texas,48101,1,0 +2020-04-28,Cottle,Texas,48101,1,0 +2020-04-29,Cottle,Texas,48101,2,0 +2020-04-30,Cottle,Texas,48101,2,0 +2020-05-01,Cottle,Texas,48101,2,0 +2020-05-02,Cottle,Texas,48101,2,0 +2020-05-03,Cottle,Texas,48101,2,0 +2020-05-04,Cottle,Texas,48101,2,0 +2020-05-05,Cottle,Texas,48101,3,0 +2020-05-06,Cottle,Texas,48101,3,0 +2020-05-07,Cottle,Texas,48101,3,0 +2020-05-08,Cottle,Texas,48101,3,0 +2020-05-09,Cottle,Texas,48101,4,1 +2020-05-10,Cottle,Texas,48101,4,1 +2020-05-11,Cottle,Texas,48101,4,1 +2020-05-12,Cottle,Texas,48101,4,1 +2020-05-13,Cottle,Texas,48101,4,1 +2020-05-14,Cottle,Texas,48101,4,1 +2020-05-15,Cottle,Texas,48101,4,1 +2020-05-16,Cottle,Texas,48101,4,1 +2020-05-17,Cottle,Texas,48101,4,1 +2020-05-18,Cottle,Texas,48101,4,1 +2020-05-19,Cottle,Texas,48101,4,1 +2020-05-20,Cottle,Texas,48101,4,1 +2020-05-21,Cottle,Texas,48101,4,1 +2020-05-22,Cottle,Texas,48101,4,1 +2020-05-23,Cottle,Texas,48101,4,1 +2020-05-24,Cottle,Texas,48101,4,1 +2020-05-25,Cottle,Texas,48101,4,1 +2020-05-26,Cottle,Texas,48101,4,1 +2020-05-27,Cottle,Texas,48101,4,1 +2020-05-28,Cottle,Texas,48101,4,1 +2020-05-29,Cottle,Texas,48101,4,1 +2020-05-30,Cottle,Texas,48101,4,1 +2020-05-31,Cottle,Texas,48101,4,1 +2020-06-01,Cottle,Texas,48101,4,1 +2020-06-02,Cottle,Texas,48101,4,1 +2020-06-03,Cottle,Texas,48101,4,1 +2020-06-04,Cottle,Texas,48101,4,1 +2020-06-05,Cottle,Texas,48101,4,1 +2020-06-06,Cottle,Texas,48101,4,1 +2020-06-07,Cottle,Texas,48101,4,1 +2020-06-08,Cottle,Texas,48101,4,1 +2020-06-09,Cottle,Texas,48101,4,1 +2020-06-10,Cottle,Texas,48101,4,1 +2020-06-11,Cottle,Texas,48101,4,1 +2020-06-12,Cottle,Texas,48101,4,1 +2020-06-13,Cottle,Texas,48101,4,1 +2020-06-14,Cottle,Texas,48101,4,1 +2020-06-15,Cottle,Texas,48101,4,1 +2020-06-16,Cottle,Texas,48101,4,1 +2020-06-17,Cottle,Texas,48101,4,1 +2020-06-18,Cottle,Texas,48101,4,1 +2020-06-19,Cottle,Texas,48101,4,1 +2020-06-20,Cottle,Texas,48101,4,1 +2020-06-21,Cottle,Texas,48101,4,1 +2020-06-22,Cottle,Texas,48101,4,1 +2020-06-23,Cottle,Texas,48101,4,1 +2020-06-24,Cottle,Texas,48101,4,1 +2020-06-25,Cottle,Texas,48101,4,1 +2020-06-26,Cottle,Texas,48101,4,1 +2020-06-27,Cottle,Texas,48101,4,1 +2020-06-28,Cottle,Texas,48101,4,1 +2020-06-29,Cottle,Texas,48101,4,1 +2020-06-30,Cottle,Texas,48101,4,1 +2020-07-01,Cottle,Texas,48101,4,1 +2020-07-02,Cottle,Texas,48101,4,1 +2020-07-03,Cottle,Texas,48101,4,1 +2020-07-04,Cottle,Texas,48101,4,1 +2020-07-05,Cottle,Texas,48101,4,1 +2020-07-06,Cottle,Texas,48101,4,1 +2020-07-07,Cottle,Texas,48101,4,1 +2020-07-08,Cottle,Texas,48101,4,1 +2020-07-09,Cottle,Texas,48101,4,1 +2020-03-19,Crane,Texas,48103,1,0 +2020-03-20,Crane,Texas,48103,1,0 +2020-03-21,Crane,Texas,48103,1,0 +2020-03-22,Crane,Texas,48103,1,0 +2020-03-23,Crane,Texas,48103,1,0 +2020-03-24,Crane,Texas,48103,1,0 +2020-03-25,Crane,Texas,48103,1,0 +2020-03-26,Crane,Texas,48103,1,0 +2020-03-27,Crane,Texas,48103,1,0 +2020-03-28,Crane,Texas,48103,1,0 +2020-03-29,Crane,Texas,48103,1,0 +2020-03-30,Crane,Texas,48103,1,0 +2020-03-31,Crane,Texas,48103,1,0 +2020-04-01,Crane,Texas,48103,2,0 +2020-04-02,Crane,Texas,48103,2,0 +2020-04-03,Crane,Texas,48103,2,0 +2020-04-04,Crane,Texas,48103,2,0 +2020-04-05,Crane,Texas,48103,2,0 +2020-04-06,Crane,Texas,48103,2,0 +2020-04-07,Crane,Texas,48103,2,0 +2020-04-08,Crane,Texas,48103,2,0 +2020-04-09,Crane,Texas,48103,2,0 +2020-04-10,Crane,Texas,48103,2,0 +2020-04-11,Crane,Texas,48103,2,0 +2020-04-12,Crane,Texas,48103,2,0 +2020-04-13,Crane,Texas,48103,2,0 +2020-04-14,Crane,Texas,48103,2,0 +2020-04-15,Crane,Texas,48103,2,0 +2020-04-16,Crane,Texas,48103,2,0 +2020-04-17,Crane,Texas,48103,2,0 +2020-04-18,Crane,Texas,48103,2,0 +2020-04-19,Crane,Texas,48103,2,0 +2020-04-20,Crane,Texas,48103,2,0 +2020-04-21,Crane,Texas,48103,2,0 +2020-04-22,Crane,Texas,48103,2,0 +2020-04-23,Crane,Texas,48103,2,0 +2020-04-24,Crane,Texas,48103,2,0 +2020-04-25,Crane,Texas,48103,2,0 +2020-04-26,Crane,Texas,48103,2,0 +2020-04-27,Crane,Texas,48103,2,0 +2020-04-28,Crane,Texas,48103,2,0 +2020-04-29,Crane,Texas,48103,2,0 +2020-04-30,Crane,Texas,48103,2,0 +2020-05-01,Crane,Texas,48103,2,0 +2020-05-02,Crane,Texas,48103,2,0 +2020-05-03,Crane,Texas,48103,2,0 +2020-05-04,Crane,Texas,48103,2,0 +2020-05-05,Crane,Texas,48103,2,0 +2020-05-06,Crane,Texas,48103,2,0 +2020-05-07,Crane,Texas,48103,2,0 +2020-05-08,Crane,Texas,48103,2,0 +2020-05-09,Crane,Texas,48103,2,0 +2020-05-10,Crane,Texas,48103,2,0 +2020-05-11,Crane,Texas,48103,2,0 +2020-05-12,Crane,Texas,48103,2,0 +2020-05-13,Crane,Texas,48103,2,0 +2020-05-14,Crane,Texas,48103,2,0 +2020-05-15,Crane,Texas,48103,2,0 +2020-05-16,Crane,Texas,48103,2,0 +2020-05-17,Crane,Texas,48103,2,0 +2020-05-18,Crane,Texas,48103,2,0 +2020-05-19,Crane,Texas,48103,2,0 +2020-05-20,Crane,Texas,48103,2,0 +2020-05-21,Crane,Texas,48103,3,0 +2020-05-22,Crane,Texas,48103,3,0 +2020-05-23,Crane,Texas,48103,7,0 +2020-05-24,Crane,Texas,48103,7,0 +2020-05-25,Crane,Texas,48103,22,0 +2020-05-26,Crane,Texas,48103,22,0 +2020-05-27,Crane,Texas,48103,22,1 +2020-05-28,Crane,Texas,48103,22,2 +2020-05-29,Crane,Texas,48103,22,2 +2020-05-30,Crane,Texas,48103,23,2 +2020-05-31,Crane,Texas,48103,23,2 +2020-06-01,Crane,Texas,48103,23,2 +2020-06-02,Crane,Texas,48103,25,5 +2020-06-03,Crane,Texas,48103,25,5 +2020-06-04,Crane,Texas,48103,25,5 +2020-06-05,Crane,Texas,48103,26,5 +2020-06-06,Crane,Texas,48103,27,5 +2020-06-07,Crane,Texas,48103,27,5 +2020-06-08,Crane,Texas,48103,27,5 +2020-06-09,Crane,Texas,48103,28,5 +2020-06-10,Crane,Texas,48103,31,5 +2020-06-11,Crane,Texas,48103,32,5 +2020-06-12,Crane,Texas,48103,32,5 +2020-06-13,Crane,Texas,48103,32,5 +2020-06-14,Crane,Texas,48103,32,5 +2020-06-15,Crane,Texas,48103,32,5 +2020-06-16,Crane,Texas,48103,39,5 +2020-06-17,Crane,Texas,48103,39,5 +2020-06-18,Crane,Texas,48103,45,5 +2020-06-19,Crane,Texas,48103,45,5 +2020-06-20,Crane,Texas,48103,46,5 +2020-06-21,Crane,Texas,48103,46,5 +2020-06-22,Crane,Texas,48103,47,5 +2020-06-23,Crane,Texas,48103,47,6 +2020-06-24,Crane,Texas,48103,48,6 +2020-06-25,Crane,Texas,48103,49,7 +2020-06-26,Crane,Texas,48103,50,7 +2020-06-27,Crane,Texas,48103,50,8 +2020-06-28,Crane,Texas,48103,50,8 +2020-06-29,Crane,Texas,48103,50,8 +2020-06-30,Crane,Texas,48103,54,8 +2020-07-01,Crane,Texas,48103,57,9 +2020-07-02,Crane,Texas,48103,57,9 +2020-07-03,Crane,Texas,48103,58,9 +2020-07-04,Crane,Texas,48103,60,9 +2020-07-05,Crane,Texas,48103,60,9 +2020-07-06,Crane,Texas,48103,60,9 +2020-07-07,Crane,Texas,48103,61,9 +2020-07-08,Crane,Texas,48103,62,9 +2020-07-09,Crane,Texas,48103,62,9 +2020-06-05,Crockett,Texas,48105,1,0 +2020-06-06,Crockett,Texas,48105,1,0 +2020-06-07,Crockett,Texas,48105,1,0 +2020-06-08,Crockett,Texas,48105,1,0 +2020-06-09,Crockett,Texas,48105,4,0 +2020-06-10,Crockett,Texas,48105,5,0 +2020-06-11,Crockett,Texas,48105,5,0 +2020-06-12,Crockett,Texas,48105,5,0 +2020-06-13,Crockett,Texas,48105,5,0 +2020-06-14,Crockett,Texas,48105,5,0 +2020-06-15,Crockett,Texas,48105,5,0 +2020-06-16,Crockett,Texas,48105,5,0 +2020-06-17,Crockett,Texas,48105,5,0 +2020-06-18,Crockett,Texas,48105,5,0 +2020-06-19,Crockett,Texas,48105,5,0 +2020-06-20,Crockett,Texas,48105,5,0 +2020-06-21,Crockett,Texas,48105,5,0 +2020-06-22,Crockett,Texas,48105,5,0 +2020-06-23,Crockett,Texas,48105,5,0 +2020-06-24,Crockett,Texas,48105,5,0 +2020-06-25,Crockett,Texas,48105,5,0 +2020-06-26,Crockett,Texas,48105,5,0 +2020-06-27,Crockett,Texas,48105,7,0 +2020-06-28,Crockett,Texas,48105,7,0 +2020-06-29,Crockett,Texas,48105,8,0 +2020-06-30,Crockett,Texas,48105,9,0 +2020-07-01,Crockett,Texas,48105,10,0 +2020-07-02,Crockett,Texas,48105,11,0 +2020-07-03,Crockett,Texas,48105,13,0 +2020-07-04,Crockett,Texas,48105,13,0 +2020-07-05,Crockett,Texas,48105,13,0 +2020-07-06,Crockett,Texas,48105,13,0 +2020-07-07,Crockett,Texas,48105,15,0 +2020-07-08,Crockett,Texas,48105,16,0 +2020-07-09,Crockett,Texas,48105,18,0 +2020-04-07,Crosby,Texas,48107,1,0 +2020-04-08,Crosby,Texas,48107,1,0 +2020-04-09,Crosby,Texas,48107,1,0 +2020-04-10,Crosby,Texas,48107,1,0 +2020-04-11,Crosby,Texas,48107,1,0 +2020-04-12,Crosby,Texas,48107,1,0 +2020-04-13,Crosby,Texas,48107,1,0 +2020-04-14,Crosby,Texas,48107,1,0 +2020-04-15,Crosby,Texas,48107,1,1 +2020-04-16,Crosby,Texas,48107,1,1 +2020-04-17,Crosby,Texas,48107,1,1 +2020-04-18,Crosby,Texas,48107,1,1 +2020-04-19,Crosby,Texas,48107,1,1 +2020-04-20,Crosby,Texas,48107,1,1 +2020-04-21,Crosby,Texas,48107,1,1 +2020-04-22,Crosby,Texas,48107,1,1 +2020-04-23,Crosby,Texas,48107,1,1 +2020-04-24,Crosby,Texas,48107,2,1 +2020-04-25,Crosby,Texas,48107,2,1 +2020-04-26,Crosby,Texas,48107,2,1 +2020-04-27,Crosby,Texas,48107,2,1 +2020-04-28,Crosby,Texas,48107,2,1 +2020-04-29,Crosby,Texas,48107,2,1 +2020-04-30,Crosby,Texas,48107,2,1 +2020-05-01,Crosby,Texas,48107,2,1 +2020-05-02,Crosby,Texas,48107,2,1 +2020-05-03,Crosby,Texas,48107,2,1 +2020-05-04,Crosby,Texas,48107,2,1 +2020-05-05,Crosby,Texas,48107,2,1 +2020-05-06,Crosby,Texas,48107,2,1 +2020-05-07,Crosby,Texas,48107,2,1 +2020-05-08,Crosby,Texas,48107,2,1 +2020-05-09,Crosby,Texas,48107,2,1 +2020-05-10,Crosby,Texas,48107,2,1 +2020-05-11,Crosby,Texas,48107,2,1 +2020-05-12,Crosby,Texas,48107,2,1 +2020-05-13,Crosby,Texas,48107,2,1 +2020-05-14,Crosby,Texas,48107,2,1 +2020-05-15,Crosby,Texas,48107,2,1 +2020-05-16,Crosby,Texas,48107,2,1 +2020-05-17,Crosby,Texas,48107,3,1 +2020-05-18,Crosby,Texas,48107,3,1 +2020-05-19,Crosby,Texas,48107,3,1 +2020-05-20,Crosby,Texas,48107,3,1 +2020-05-21,Crosby,Texas,48107,3,1 +2020-05-22,Crosby,Texas,48107,3,1 +2020-05-23,Crosby,Texas,48107,3,1 +2020-05-24,Crosby,Texas,48107,3,1 +2020-05-25,Crosby,Texas,48107,3,1 +2020-05-26,Crosby,Texas,48107,3,1 +2020-05-27,Crosby,Texas,48107,3,1 +2020-05-28,Crosby,Texas,48107,3,1 +2020-05-29,Crosby,Texas,48107,3,1 +2020-05-30,Crosby,Texas,48107,4,1 +2020-05-31,Crosby,Texas,48107,4,1 +2020-06-01,Crosby,Texas,48107,4,1 +2020-06-02,Crosby,Texas,48107,4,1 +2020-06-03,Crosby,Texas,48107,3,1 +2020-06-04,Crosby,Texas,48107,3,1 +2020-06-05,Crosby,Texas,48107,3,1 +2020-06-06,Crosby,Texas,48107,3,1 +2020-06-07,Crosby,Texas,48107,3,1 +2020-06-08,Crosby,Texas,48107,3,1 +2020-06-09,Crosby,Texas,48107,3,1 +2020-06-10,Crosby,Texas,48107,4,1 +2020-06-11,Crosby,Texas,48107,4,1 +2020-06-12,Crosby,Texas,48107,4,1 +2020-06-13,Crosby,Texas,48107,4,1 +2020-06-14,Crosby,Texas,48107,4,1 +2020-06-15,Crosby,Texas,48107,4,1 +2020-06-16,Crosby,Texas,48107,7,1 +2020-06-17,Crosby,Texas,48107,8,1 +2020-06-18,Crosby,Texas,48107,8,1 +2020-06-19,Crosby,Texas,48107,8,1 +2020-06-20,Crosby,Texas,48107,8,1 +2020-06-21,Crosby,Texas,48107,8,1 +2020-06-22,Crosby,Texas,48107,8,1 +2020-06-23,Crosby,Texas,48107,9,1 +2020-06-24,Crosby,Texas,48107,13,1 +2020-06-25,Crosby,Texas,48107,13,1 +2020-06-26,Crosby,Texas,48107,15,1 +2020-06-27,Crosby,Texas,48107,15,1 +2020-06-28,Crosby,Texas,48107,15,1 +2020-06-29,Crosby,Texas,48107,15,1 +2020-06-30,Crosby,Texas,48107,21,1 +2020-07-01,Crosby,Texas,48107,25,1 +2020-07-02,Crosby,Texas,48107,26,1 +2020-07-03,Crosby,Texas,48107,26,1 +2020-07-04,Crosby,Texas,48107,26,1 +2020-07-05,Crosby,Texas,48107,26,1 +2020-07-06,Crosby,Texas,48107,26,1 +2020-07-07,Crosby,Texas,48107,28,1 +2020-07-08,Crosby,Texas,48107,30,1 +2020-07-09,Crosby,Texas,48107,34,1 +2020-06-20,Culberson,Texas,48109,1,0 +2020-06-21,Culberson,Texas,48109,1,0 +2020-06-22,Culberson,Texas,48109,1,0 +2020-06-23,Culberson,Texas,48109,3,0 +2020-06-24,Culberson,Texas,48109,3,0 +2020-06-25,Culberson,Texas,48109,3,0 +2020-06-26,Culberson,Texas,48109,3,0 +2020-06-27,Culberson,Texas,48109,3,0 +2020-06-28,Culberson,Texas,48109,3,0 +2020-06-29,Culberson,Texas,48109,3,0 +2020-06-30,Culberson,Texas,48109,3,0 +2020-07-01,Culberson,Texas,48109,3,0 +2020-07-02,Culberson,Texas,48109,3,0 +2020-07-03,Culberson,Texas,48109,3,0 +2020-07-04,Culberson,Texas,48109,3,0 +2020-07-05,Culberson,Texas,48109,3,0 +2020-07-06,Culberson,Texas,48109,3,0 +2020-07-07,Culberson,Texas,48109,4,0 +2020-07-08,Culberson,Texas,48109,4,0 +2020-07-09,Culberson,Texas,48109,6,0 +2020-04-07,Dallam,Texas,48111,1,0 +2020-04-08,Dallam,Texas,48111,1,0 +2020-04-09,Dallam,Texas,48111,1,0 +2020-04-10,Dallam,Texas,48111,1,0 +2020-04-11,Dallam,Texas,48111,1,0 +2020-04-12,Dallam,Texas,48111,1,0 +2020-04-13,Dallam,Texas,48111,1,0 +2020-04-14,Dallam,Texas,48111,2,0 +2020-04-15,Dallam,Texas,48111,2,0 +2020-04-16,Dallam,Texas,48111,2,0 +2020-04-17,Dallam,Texas,48111,3,0 +2020-04-18,Dallam,Texas,48111,3,0 +2020-04-19,Dallam,Texas,48111,3,0 +2020-04-20,Dallam,Texas,48111,2,0 +2020-04-21,Dallam,Texas,48111,2,0 +2020-04-22,Dallam,Texas,48111,3,0 +2020-04-23,Dallam,Texas,48111,3,1 +2020-04-24,Dallam,Texas,48111,4,1 +2020-04-25,Dallam,Texas,48111,8,1 +2020-04-26,Dallam,Texas,48111,8,1 +2020-04-27,Dallam,Texas,48111,8,1 +2020-04-28,Dallam,Texas,48111,8,1 +2020-04-29,Dallam,Texas,48111,10,1 +2020-04-30,Dallam,Texas,48111,10,1 +2020-05-01,Dallam,Texas,48111,10,1 +2020-05-02,Dallam,Texas,48111,12,1 +2020-05-03,Dallam,Texas,48111,12,1 +2020-05-04,Dallam,Texas,48111,13,1 +2020-05-05,Dallam,Texas,48111,10,1 +2020-05-06,Dallam,Texas,48111,10,1 +2020-05-07,Dallam,Texas,48111,10,1 +2020-05-08,Dallam,Texas,48111,11,1 +2020-05-09,Dallam,Texas,48111,13,0 +2020-05-10,Dallam,Texas,48111,13,0 +2020-05-11,Dallam,Texas,48111,14,0 +2020-05-12,Dallam,Texas,48111,16,0 +2020-05-13,Dallam,Texas,48111,17,0 +2020-05-14,Dallam,Texas,48111,19,0 +2020-05-15,Dallam,Texas,48111,21,0 +2020-05-16,Dallam,Texas,48111,20,0 +2020-05-17,Dallam,Texas,48111,22,0 +2020-05-18,Dallam,Texas,48111,22,0 +2020-05-19,Dallam,Texas,48111,18,0 +2020-05-20,Dallam,Texas,48111,18,0 +2020-05-21,Dallam,Texas,48111,18,0 +2020-05-22,Dallam,Texas,48111,18,0 +2020-05-23,Dallam,Texas,48111,22,0 +2020-05-24,Dallam,Texas,48111,22,0 +2020-05-25,Dallam,Texas,48111,22,0 +2020-05-26,Dallam,Texas,48111,22,0 +2020-05-27,Dallam,Texas,48111,22,0 +2020-05-28,Dallam,Texas,48111,24,0 +2020-05-29,Dallam,Texas,48111,25,0 +2020-05-30,Dallam,Texas,48111,25,0 +2020-05-31,Dallam,Texas,48111,25,0 +2020-06-01,Dallam,Texas,48111,25,0 +2020-06-02,Dallam,Texas,48111,26,0 +2020-06-03,Dallam,Texas,48111,27,0 +2020-06-04,Dallam,Texas,48111,27,0 +2020-06-05,Dallam,Texas,48111,27,0 +2020-06-06,Dallam,Texas,48111,27,0 +2020-06-07,Dallam,Texas,48111,27,0 +2020-06-08,Dallam,Texas,48111,27,0 +2020-06-09,Dallam,Texas,48111,29,0 +2020-06-10,Dallam,Texas,48111,32,0 +2020-06-11,Dallam,Texas,48111,35,0 +2020-06-12,Dallam,Texas,48111,36,0 +2020-06-13,Dallam,Texas,48111,35,0 +2020-06-14,Dallam,Texas,48111,35,0 +2020-06-15,Dallam,Texas,48111,35,0 +2020-06-16,Dallam,Texas,48111,36,0 +2020-06-17,Dallam,Texas,48111,39,0 +2020-06-18,Dallam,Texas,48111,45,0 +2020-06-19,Dallam,Texas,48111,49,0 +2020-06-20,Dallam,Texas,48111,49,0 +2020-06-21,Dallam,Texas,48111,49,0 +2020-06-22,Dallam,Texas,48111,58,0 +2020-06-23,Dallam,Texas,48111,62,0 +2020-06-24,Dallam,Texas,48111,76,0 +2020-06-25,Dallam,Texas,48111,79,0 +2020-06-26,Dallam,Texas,48111,75,0 +2020-06-27,Dallam,Texas,48111,84,1 +2020-06-28,Dallam,Texas,48111,84,1 +2020-06-29,Dallam,Texas,48111,84,1 +2020-06-30,Dallam,Texas,48111,83,1 +2020-07-01,Dallam,Texas,48111,85,1 +2020-07-02,Dallam,Texas,48111,91,1 +2020-07-03,Dallam,Texas,48111,91,1 +2020-07-04,Dallam,Texas,48111,91,1 +2020-07-05,Dallam,Texas,48111,91,1 +2020-07-06,Dallam,Texas,48111,91,1 +2020-07-07,Dallam,Texas,48111,102,1 +2020-07-08,Dallam,Texas,48111,104,1 +2020-07-09,Dallam,Texas,48111,104,1 +2020-03-10,Dallas,Texas,48113,2,0 +2020-03-11,Dallas,Texas,48113,3,0 +2020-03-12,Dallas,Texas,48113,8,0 +2020-03-13,Dallas,Texas,48113,9,0 +2020-03-14,Dallas,Texas,48113,11,0 +2020-03-15,Dallas,Texas,48113,14,0 +2020-03-16,Dallas,Texas,48113,14,0 +2020-03-17,Dallas,Texas,48113,23,0 +2020-03-18,Dallas,Texas,48113,34,0 +2020-03-19,Dallas,Texas,48113,56,1 +2020-03-20,Dallas,Texas,48113,74,1 +2020-03-21,Dallas,Texas,48113,95,1 +2020-03-22,Dallas,Texas,48113,132,2 +2020-03-23,Dallas,Texas,48113,159,2 +2020-03-24,Dallas,Texas,48113,169,5 +2020-03-25,Dallas,Texas,48113,169,6 +2020-03-26,Dallas,Texas,48113,303,7 +2020-03-27,Dallas,Texas,48113,367,7 +2020-03-28,Dallas,Texas,48113,439,9 +2020-03-29,Dallas,Texas,48113,443,9 +2020-03-30,Dallas,Texas,48113,549,11 +2020-03-31,Dallas,Texas,48113,631,13 +2020-04-01,Dallas,Texas,48113,731,15 +2020-04-02,Dallas,Texas,48113,831,17 +2020-04-03,Dallas,Texas,48113,921,17 +2020-04-04,Dallas,Texas,48113,1015,18 +2020-04-05,Dallas,Texas,48113,1112,18 +2020-04-06,Dallas,Texas,48113,1155,18 +2020-04-07,Dallas,Texas,48113,1261,19 +2020-04-08,Dallas,Texas,48113,1324,20 +2020-04-09,Dallas,Texas,48113,1432,22 +2020-04-10,Dallas,Texas,48113,1537,25 +2020-04-11,Dallas,Texas,48113,1648,27 +2020-04-12,Dallas,Texas,48113,1723,31 +2020-04-13,Dallas,Texas,48113,1788,32 +2020-04-14,Dallas,Texas,48113,1877,42 +2020-04-15,Dallas,Texas,48113,1986,43 +2020-04-16,Dallas,Texas,48113,2066,50 +2020-04-17,Dallas,Texas,48113,2190,55 +2020-04-18,Dallas,Texas,48113,2324,60 +2020-04-19,Dallas,Texas,48113,2428,60 +2020-04-20,Dallas,Texas,48113,2512,60 +2020-04-21,Dallas,Texas,48113,2602,64 +2020-04-22,Dallas,Texas,48113,2683,65 +2020-04-23,Dallas,Texas,48113,2763,72 +2020-04-24,Dallas,Texas,48113,2834,77 +2020-04-25,Dallas,Texas,48113,2909,81 +2020-04-26,Dallas,Texas,48113,3014,82 +2020-04-27,Dallas,Texas,48113,3105,84 +2020-04-28,Dallas,Texas,48113,3240,94 +2020-04-29,Dallas,Texas,48113,3352,99 +2020-04-30,Dallas,Texas,48113,3531,104 +2020-05-01,Dallas,Texas,48113,3718,106 +2020-05-02,Dallas,Texas,48113,3899,110 +2020-05-03,Dallas,Texas,48113,4133,111 +2020-05-04,Dallas,Texas,48113,4370,114 +2020-05-05,Dallas,Texas,48113,4623,121 +2020-05-06,Dallas,Texas,48113,4869,123 +2020-05-07,Dallas,Texas,48113,5120,125 +2020-05-08,Dallas,Texas,48113,5369,135 +2020-05-09,Dallas,Texas,48113,5619,143 +2020-05-10,Dallas,Texas,48113,5870,143 +2020-05-11,Dallas,Texas,48113,6123,145 +2020-05-12,Dallas,Texas,48113,6359,148 +2020-05-13,Dallas,Texas,48113,6602,153 +2020-05-14,Dallas,Texas,48113,6837,159 +2020-05-15,Dallas,Texas,48113,7036,164 +2020-05-16,Dallas,Texas,48113,7250,170 +2020-05-17,Dallas,Texas,48113,7455,176 +2020-05-18,Dallas,Texas,48113,7679,177 +2020-05-19,Dallas,Texas,48113,7904,191 +2020-05-20,Dallas,Texas,48113,8090,196 +2020-05-21,Dallas,Texas,48113,8273,203 +2020-05-22,Dallas,Texas,48113,8477,207 +2020-05-23,Dallas,Texas,48113,8649,210 +2020-05-24,Dallas,Texas,48113,8827,211 +2020-05-25,Dallas,Texas,48113,8998,211 +2020-05-26,Dallas,Texas,48113,9188,213 +2020-05-27,Dallas,Texas,48113,9385,221 +2020-05-28,Dallas,Texas,48113,9587,222 +2020-05-29,Dallas,Texas,48113,9787,223 +2020-05-30,Dallas,Texas,48113,10006,228 +2020-05-31,Dallas,Texas,48113,10234,229 +2020-06-01,Dallas,Texas,48113,10462,229 +2020-06-02,Dallas,Texas,48113,10719,245 +2020-06-03,Dallas,Texas,48113,10958,249 +2020-06-04,Dallas,Texas,48113,11243,250 +2020-06-05,Dallas,Texas,48113,11541,260 +2020-06-06,Dallas,Texas,48113,11830,262 +2020-06-07,Dallas,Texas,48113,12093,264 +2020-06-08,Dallas,Texas,48113,12347,264 +2020-06-09,Dallas,Texas,48113,12645,271 +2020-06-10,Dallas,Texas,48113,12945,274 +2020-06-11,Dallas,Texas,48113,13257,277 +2020-06-12,Dallas,Texas,48113,13585,280 +2020-06-13,Dallas,Texas,48113,13930,283 +2020-06-14,Dallas,Texas,48113,14232,284 +2020-06-15,Dallas,Texas,48113,14537,285 +2020-06-16,Dallas,Texas,48113,14843,293 +2020-06-17,Dallas,Texas,48113,15256,302 +2020-06-18,Dallas,Texas,48113,15648,307 +2020-06-19,Dallas,Texas,48113,16042,311 +2020-06-20,Dallas,Texas,48113,16437,313 +2020-06-21,Dallas,Texas,48113,16845,314 +2020-06-22,Dallas,Texas,48113,17299,317 +2020-06-23,Dallas,Texas,48113,17744,324 +2020-06-24,Dallas,Texas,48113,18135,328 +2020-06-25,Dallas,Texas,48113,18538,334 +2020-06-26,Dallas,Texas,48113,19034,344 +2020-06-27,Dallas,Texas,48113,19595,351 +2020-06-28,Dallas,Texas,48113,20165,352 +2020-06-29,Dallas,Texas,48113,20737,353 +2020-06-30,Dallas,Texas,48113,21338,373 +2020-07-01,Dallas,Texas,48113,21882,380 +2020-07-02,Dallas,Texas,48113,22590,387 +2020-07-03,Dallas,Texas,48113,23675,393 +2020-07-04,Dallas,Texas,48113,24778,395 +2020-07-05,Dallas,Texas,48113,25840,395 +2020-07-06,Dallas,Texas,48113,27054,401 +2020-07-07,Dallas,Texas,48113,28131,410 +2020-07-08,Dallas,Texas,48113,29160,426 +2020-07-09,Dallas,Texas,48113,30361,436 +2020-03-29,Dawson,Texas,48115,1,0 +2020-03-30,Dawson,Texas,48115,1,0 +2020-03-31,Dawson,Texas,48115,3,0 +2020-04-01,Dawson,Texas,48115,3,0 +2020-04-02,Dawson,Texas,48115,3,0 +2020-04-03,Dawson,Texas,48115,3,0 +2020-04-04,Dawson,Texas,48115,3,0 +2020-04-05,Dawson,Texas,48115,3,0 +2020-04-06,Dawson,Texas,48115,3,0 +2020-04-07,Dawson,Texas,48115,5,0 +2020-04-08,Dawson,Texas,48115,5,0 +2020-04-09,Dawson,Texas,48115,5,1 +2020-04-10,Dawson,Texas,48115,5,1 +2020-04-11,Dawson,Texas,48115,6,1 +2020-04-12,Dawson,Texas,48115,6,1 +2020-04-13,Dawson,Texas,48115,8,1 +2020-04-14,Dawson,Texas,48115,8,1 +2020-04-15,Dawson,Texas,48115,8,1 +2020-04-16,Dawson,Texas,48115,8,1 +2020-04-17,Dawson,Texas,48115,12,1 +2020-04-18,Dawson,Texas,48115,12,1 +2020-04-19,Dawson,Texas,48115,12,1 +2020-04-20,Dawson,Texas,48115,13,1 +2020-04-21,Dawson,Texas,48115,14,1 +2020-04-22,Dawson,Texas,48115,14,1 +2020-04-23,Dawson,Texas,48115,18,1 +2020-04-24,Dawson,Texas,48115,18,1 +2020-04-25,Dawson,Texas,48115,18,1 +2020-04-26,Dawson,Texas,48115,21,1 +2020-04-27,Dawson,Texas,48115,21,1 +2020-04-28,Dawson,Texas,48115,21,1 +2020-04-29,Dawson,Texas,48115,21,1 +2020-04-30,Dawson,Texas,48115,24,1 +2020-05-01,Dawson,Texas,48115,24,1 +2020-05-02,Dawson,Texas,48115,26,1 +2020-05-03,Dawson,Texas,48115,26,1 +2020-05-04,Dawson,Texas,48115,26,1 +2020-05-05,Dawson,Texas,48115,29,1 +2020-05-06,Dawson,Texas,48115,30,1 +2020-05-07,Dawson,Texas,48115,30,1 +2020-05-08,Dawson,Texas,48115,30,1 +2020-05-09,Dawson,Texas,48115,30,1 +2020-05-10,Dawson,Texas,48115,30,1 +2020-05-11,Dawson,Texas,48115,30,1 +2020-05-12,Dawson,Texas,48115,30,1 +2020-05-13,Dawson,Texas,48115,32,1 +2020-05-14,Dawson,Texas,48115,32,1 +2020-05-15,Dawson,Texas,48115,36,1 +2020-05-16,Dawson,Texas,48115,38,1 +2020-05-17,Dawson,Texas,48115,38,1 +2020-05-18,Dawson,Texas,48115,38,1 +2020-05-19,Dawson,Texas,48115,38,1 +2020-05-20,Dawson,Texas,48115,39,1 +2020-05-21,Dawson,Texas,48115,39,1 +2020-05-22,Dawson,Texas,48115,39,1 +2020-05-23,Dawson,Texas,48115,39,1 +2020-05-24,Dawson,Texas,48115,39,1 +2020-05-25,Dawson,Texas,48115,39,1 +2020-05-26,Dawson,Texas,48115,40,1 +2020-05-27,Dawson,Texas,48115,40,1 +2020-05-28,Dawson,Texas,48115,40,1 +2020-05-29,Dawson,Texas,48115,41,1 +2020-05-30,Dawson,Texas,48115,42,1 +2020-05-31,Dawson,Texas,48115,42,1 +2020-06-01,Dawson,Texas,48115,42,1 +2020-06-02,Dawson,Texas,48115,42,1 +2020-06-03,Dawson,Texas,48115,43,1 +2020-06-04,Dawson,Texas,48115,45,1 +2020-06-05,Dawson,Texas,48115,45,1 +2020-06-06,Dawson,Texas,48115,45,1 +2020-06-07,Dawson,Texas,48115,45,1 +2020-06-08,Dawson,Texas,48115,45,1 +2020-06-09,Dawson,Texas,48115,45,1 +2020-06-10,Dawson,Texas,48115,45,1 +2020-06-11,Dawson,Texas,48115,45,1 +2020-06-12,Dawson,Texas,48115,45,1 +2020-06-13,Dawson,Texas,48115,45,1 +2020-06-14,Dawson,Texas,48115,45,1 +2020-06-15,Dawson,Texas,48115,45,1 +2020-06-16,Dawson,Texas,48115,45,1 +2020-06-17,Dawson,Texas,48115,45,1 +2020-06-18,Dawson,Texas,48115,45,1 +2020-06-19,Dawson,Texas,48115,45,1 +2020-06-20,Dawson,Texas,48115,45,1 +2020-06-21,Dawson,Texas,48115,45,1 +2020-06-22,Dawson,Texas,48115,45,1 +2020-06-23,Dawson,Texas,48115,45,1 +2020-06-24,Dawson,Texas,48115,45,1 +2020-06-25,Dawson,Texas,48115,45,1 +2020-06-26,Dawson,Texas,48115,45,1 +2020-06-27,Dawson,Texas,48115,45,1 +2020-06-28,Dawson,Texas,48115,45,1 +2020-06-29,Dawson,Texas,48115,45,1 +2020-06-30,Dawson,Texas,48115,52,1 +2020-07-01,Dawson,Texas,48115,52,1 +2020-07-02,Dawson,Texas,48115,59,1 +2020-07-03,Dawson,Texas,48115,59,1 +2020-07-04,Dawson,Texas,48115,70,1 +2020-07-05,Dawson,Texas,48115,70,1 +2020-07-06,Dawson,Texas,48115,70,1 +2020-07-07,Dawson,Texas,48115,70,1 +2020-07-08,Dawson,Texas,48115,70,1 +2020-07-09,Dawson,Texas,48115,75,1 +2020-03-21,Deaf Smith,Texas,48117,1,0 +2020-03-22,Deaf Smith,Texas,48117,1,0 +2020-03-23,Deaf Smith,Texas,48117,1,0 +2020-03-24,Deaf Smith,Texas,48117,2,0 +2020-03-25,Deaf Smith,Texas,48117,2,0 +2020-03-26,Deaf Smith,Texas,48117,2,0 +2020-03-27,Deaf Smith,Texas,48117,2,0 +2020-03-28,Deaf Smith,Texas,48117,2,0 +2020-03-29,Deaf Smith,Texas,48117,2,0 +2020-03-30,Deaf Smith,Texas,48117,2,0 +2020-03-31,Deaf Smith,Texas,48117,2,0 +2020-04-01,Deaf Smith,Texas,48117,2,0 +2020-04-02,Deaf Smith,Texas,48117,2,0 +2020-04-03,Deaf Smith,Texas,48117,3,0 +2020-04-04,Deaf Smith,Texas,48117,5,0 +2020-04-05,Deaf Smith,Texas,48117,5,0 +2020-04-06,Deaf Smith,Texas,48117,5,0 +2020-04-07,Deaf Smith,Texas,48117,7,0 +2020-04-08,Deaf Smith,Texas,48117,7,0 +2020-04-09,Deaf Smith,Texas,48117,7,0 +2020-04-10,Deaf Smith,Texas,48117,7,0 +2020-04-11,Deaf Smith,Texas,48117,7,0 +2020-04-12,Deaf Smith,Texas,48117,7,0 +2020-04-13,Deaf Smith,Texas,48117,8,0 +2020-04-14,Deaf Smith,Texas,48117,11,0 +2020-04-15,Deaf Smith,Texas,48117,11,0 +2020-04-16,Deaf Smith,Texas,48117,11,0 +2020-04-17,Deaf Smith,Texas,48117,11,0 +2020-04-18,Deaf Smith,Texas,48117,11,0 +2020-04-19,Deaf Smith,Texas,48117,12,0 +2020-04-20,Deaf Smith,Texas,48117,12,0 +2020-04-21,Deaf Smith,Texas,48117,14,0 +2020-04-22,Deaf Smith,Texas,48117,14,0 +2020-04-23,Deaf Smith,Texas,48117,17,0 +2020-04-24,Deaf Smith,Texas,48117,21,0 +2020-04-25,Deaf Smith,Texas,48117,21,0 +2020-04-26,Deaf Smith,Texas,48117,21,0 +2020-04-27,Deaf Smith,Texas,48117,25,0 +2020-04-28,Deaf Smith,Texas,48117,26,0 +2020-04-29,Deaf Smith,Texas,48117,26,0 +2020-04-30,Deaf Smith,Texas,48117,31,0 +2020-05-01,Deaf Smith,Texas,48117,31,0 +2020-05-02,Deaf Smith,Texas,48117,34,0 +2020-05-03,Deaf Smith,Texas,48117,35,0 +2020-05-04,Deaf Smith,Texas,48117,37,0 +2020-05-05,Deaf Smith,Texas,48117,38,0 +2020-05-06,Deaf Smith,Texas,48117,41,0 +2020-05-07,Deaf Smith,Texas,48117,41,0 +2020-05-08,Deaf Smith,Texas,48117,46,0 +2020-05-09,Deaf Smith,Texas,48117,46,0 +2020-05-10,Deaf Smith,Texas,48117,59,0 +2020-05-11,Deaf Smith,Texas,48117,59,0 +2020-05-12,Deaf Smith,Texas,48117,67,1 +2020-05-13,Deaf Smith,Texas,48117,92,2 +2020-05-14,Deaf Smith,Texas,48117,93,2 +2020-05-15,Deaf Smith,Texas,48117,119,2 +2020-05-16,Deaf Smith,Texas,48117,120,6 +2020-05-17,Deaf Smith,Texas,48117,122,6 +2020-05-18,Deaf Smith,Texas,48117,122,6 +2020-05-19,Deaf Smith,Texas,48117,133,7 +2020-05-20,Deaf Smith,Texas,48117,139,7 +2020-05-21,Deaf Smith,Texas,48117,141,7 +2020-05-22,Deaf Smith,Texas,48117,141,7 +2020-05-23,Deaf Smith,Texas,48117,157,12 +2020-05-24,Deaf Smith,Texas,48117,157,13 +2020-05-25,Deaf Smith,Texas,48117,157,13 +2020-05-26,Deaf Smith,Texas,48117,157,14 +2020-05-27,Deaf Smith,Texas,48117,158,14 +2020-05-28,Deaf Smith,Texas,48117,161,13 +2020-05-29,Deaf Smith,Texas,48117,162,13 +2020-05-30,Deaf Smith,Texas,48117,164,13 +2020-05-31,Deaf Smith,Texas,48117,164,13 +2020-06-01,Deaf Smith,Texas,48117,164,13 +2020-06-02,Deaf Smith,Texas,48117,163,13 +2020-06-03,Deaf Smith,Texas,48117,166,13 +2020-06-04,Deaf Smith,Texas,48117,166,13 +2020-06-05,Deaf Smith,Texas,48117,174,13 +2020-06-06,Deaf Smith,Texas,48117,176,13 +2020-06-07,Deaf Smith,Texas,48117,176,13 +2020-06-08,Deaf Smith,Texas,48117,176,13 +2020-06-09,Deaf Smith,Texas,48117,183,13 +2020-06-10,Deaf Smith,Texas,48117,190,13 +2020-06-11,Deaf Smith,Texas,48117,192,14 +2020-06-12,Deaf Smith,Texas,48117,203,14 +2020-06-13,Deaf Smith,Texas,48117,212,14 +2020-06-14,Deaf Smith,Texas,48117,212,14 +2020-06-15,Deaf Smith,Texas,48117,212,14 +2020-06-16,Deaf Smith,Texas,48117,222,14 +2020-06-17,Deaf Smith,Texas,48117,223,16 +2020-06-18,Deaf Smith,Texas,48117,226,16 +2020-06-19,Deaf Smith,Texas,48117,233,16 +2020-06-20,Deaf Smith,Texas,48117,233,16 +2020-06-21,Deaf Smith,Texas,48117,233,16 +2020-06-22,Deaf Smith,Texas,48117,242,16 +2020-06-23,Deaf Smith,Texas,48117,254,16 +2020-06-24,Deaf Smith,Texas,48117,262,16 +2020-06-25,Deaf Smith,Texas,48117,268,16 +2020-06-26,Deaf Smith,Texas,48117,284,16 +2020-06-27,Deaf Smith,Texas,48117,287,16 +2020-06-28,Deaf Smith,Texas,48117,287,16 +2020-06-29,Deaf Smith,Texas,48117,287,16 +2020-06-30,Deaf Smith,Texas,48117,292,16 +2020-07-01,Deaf Smith,Texas,48117,305,16 +2020-07-02,Deaf Smith,Texas,48117,324,17 +2020-07-03,Deaf Smith,Texas,48117,337,17 +2020-07-04,Deaf Smith,Texas,48117,355,17 +2020-07-05,Deaf Smith,Texas,48117,355,17 +2020-07-06,Deaf Smith,Texas,48117,355,17 +2020-07-07,Deaf Smith,Texas,48117,371,17 +2020-07-08,Deaf Smith,Texas,48117,383,17 +2020-07-09,Deaf Smith,Texas,48117,401,17 +2020-04-08,Delta,Texas,48119,1,0 +2020-04-09,Delta,Texas,48119,1,0 +2020-04-10,Delta,Texas,48119,1,0 +2020-04-11,Delta,Texas,48119,1,0 +2020-04-12,Delta,Texas,48119,1,0 +2020-04-13,Delta,Texas,48119,1,0 +2020-04-14,Delta,Texas,48119,1,0 +2020-04-15,Delta,Texas,48119,1,0 +2020-04-16,Delta,Texas,48119,1,0 +2020-04-17,Delta,Texas,48119,1,0 +2020-04-18,Delta,Texas,48119,1,0 +2020-04-19,Delta,Texas,48119,1,0 +2020-04-20,Delta,Texas,48119,1,0 +2020-04-21,Delta,Texas,48119,1,0 +2020-04-22,Delta,Texas,48119,1,0 +2020-04-23,Delta,Texas,48119,1,0 +2020-04-24,Delta,Texas,48119,1,0 +2020-04-25,Delta,Texas,48119,1,0 +2020-04-26,Delta,Texas,48119,1,0 +2020-04-27,Delta,Texas,48119,1,0 +2020-04-28,Delta,Texas,48119,1,0 +2020-04-29,Delta,Texas,48119,1,0 +2020-04-30,Delta,Texas,48119,1,0 +2020-05-01,Delta,Texas,48119,1,0 +2020-05-02,Delta,Texas,48119,1,0 +2020-05-03,Delta,Texas,48119,1,0 +2020-05-04,Delta,Texas,48119,1,0 +2020-05-05,Delta,Texas,48119,1,0 +2020-05-06,Delta,Texas,48119,1,0 +2020-05-07,Delta,Texas,48119,1,0 +2020-05-08,Delta,Texas,48119,1,0 +2020-05-09,Delta,Texas,48119,1,0 +2020-05-10,Delta,Texas,48119,1,0 +2020-05-11,Delta,Texas,48119,1,0 +2020-05-12,Delta,Texas,48119,1,0 +2020-05-13,Delta,Texas,48119,1,0 +2020-05-14,Delta,Texas,48119,1,0 +2020-05-15,Delta,Texas,48119,1,0 +2020-05-16,Delta,Texas,48119,1,0 +2020-05-17,Delta,Texas,48119,1,0 +2020-05-18,Delta,Texas,48119,1,0 +2020-05-19,Delta,Texas,48119,1,0 +2020-05-20,Delta,Texas,48119,1,0 +2020-05-21,Delta,Texas,48119,1,0 +2020-05-22,Delta,Texas,48119,1,0 +2020-05-23,Delta,Texas,48119,1,0 +2020-05-24,Delta,Texas,48119,1,0 +2020-05-25,Delta,Texas,48119,1,0 +2020-05-26,Delta,Texas,48119,1,0 +2020-05-27,Delta,Texas,48119,1,0 +2020-05-28,Delta,Texas,48119,1,0 +2020-05-29,Delta,Texas,48119,1,0 +2020-05-30,Delta,Texas,48119,1,0 +2020-05-31,Delta,Texas,48119,1,0 +2020-06-01,Delta,Texas,48119,1,0 +2020-06-02,Delta,Texas,48119,1,0 +2020-06-03,Delta,Texas,48119,2,0 +2020-06-04,Delta,Texas,48119,2,0 +2020-06-05,Delta,Texas,48119,2,0 +2020-06-06,Delta,Texas,48119,2,0 +2020-06-07,Delta,Texas,48119,2,0 +2020-06-08,Delta,Texas,48119,2,0 +2020-06-09,Delta,Texas,48119,2,0 +2020-06-10,Delta,Texas,48119,2,0 +2020-06-11,Delta,Texas,48119,2,0 +2020-06-12,Delta,Texas,48119,2,0 +2020-06-13,Delta,Texas,48119,2,0 +2020-06-14,Delta,Texas,48119,2,0 +2020-06-15,Delta,Texas,48119,2,0 +2020-06-16,Delta,Texas,48119,2,0 +2020-06-17,Delta,Texas,48119,3,0 +2020-06-18,Delta,Texas,48119,3,0 +2020-06-19,Delta,Texas,48119,4,0 +2020-06-20,Delta,Texas,48119,4,0 +2020-06-21,Delta,Texas,48119,4,0 +2020-06-22,Delta,Texas,48119,4,0 +2020-06-23,Delta,Texas,48119,4,0 +2020-06-24,Delta,Texas,48119,5,0 +2020-06-25,Delta,Texas,48119,5,0 +2020-06-26,Delta,Texas,48119,5,0 +2020-06-27,Delta,Texas,48119,5,0 +2020-06-28,Delta,Texas,48119,5,0 +2020-06-29,Delta,Texas,48119,6,0 +2020-06-30,Delta,Texas,48119,6,0 +2020-07-01,Delta,Texas,48119,6,0 +2020-07-02,Delta,Texas,48119,7,0 +2020-07-03,Delta,Texas,48119,7,0 +2020-07-04,Delta,Texas,48119,7,0 +2020-07-05,Delta,Texas,48119,7,0 +2020-07-06,Delta,Texas,48119,7,0 +2020-07-07,Delta,Texas,48119,7,0 +2020-07-08,Delta,Texas,48119,7,0 +2020-07-09,Delta,Texas,48119,7,0 +2020-03-15,Denton,Texas,48121,1,0 +2020-03-16,Denton,Texas,48121,1,0 +2020-03-17,Denton,Texas,48121,1,0 +2020-03-18,Denton,Texas,48121,5,0 +2020-03-19,Denton,Texas,48121,9,0 +2020-03-20,Denton,Texas,48121,15,0 +2020-03-21,Denton,Texas,48121,24,0 +2020-03-22,Denton,Texas,48121,30,0 +2020-03-23,Denton,Texas,48121,36,0 +2020-03-24,Denton,Texas,48121,38,0 +2020-03-25,Denton,Texas,48121,70,0 +2020-03-26,Denton,Texas,48121,83,1 +2020-03-27,Denton,Texas,48121,137,1 +2020-03-28,Denton,Texas,48121,148,2 +2020-03-29,Denton,Texas,48121,165,2 +2020-03-30,Denton,Texas,48121,191,3 +2020-03-31,Denton,Texas,48121,206,4 +2020-04-01,Denton,Texas,48121,231,4 +2020-04-02,Denton,Texas,48121,254,5 +2020-04-03,Denton,Texas,48121,273,6 +2020-04-04,Denton,Texas,48121,288,6 +2020-04-05,Denton,Texas,48121,304,7 +2020-04-06,Denton,Texas,48121,337,7 +2020-04-07,Denton,Texas,48121,366,7 +2020-04-08,Denton,Texas,48121,398,7 +2020-04-09,Denton,Texas,48121,426,9 +2020-04-10,Denton,Texas,48121,426,9 +2020-04-11,Denton,Texas,48121,454,10 +2020-04-12,Denton,Texas,48121,482,13 +2020-04-13,Denton,Texas,48121,507,13 +2020-04-14,Denton,Texas,48121,521,14 +2020-04-15,Denton,Texas,48121,521,14 +2020-04-16,Denton,Texas,48121,564,15 +2020-04-17,Denton,Texas,48121,585,15 +2020-04-18,Denton,Texas,48121,592,16 +2020-04-19,Denton,Texas,48121,593,16 +2020-04-20,Denton,Texas,48121,598,17 +2020-04-21,Denton,Texas,48121,619,18 +2020-04-22,Denton,Texas,48121,644,19 +2020-04-23,Denton,Texas,48121,661,19 +2020-04-24,Denton,Texas,48121,661,19 +2020-04-25,Denton,Texas,48121,702,20 +2020-04-26,Denton,Texas,48121,713,20 +2020-04-27,Denton,Texas,48121,725,20 +2020-04-28,Denton,Texas,48121,738,20 +2020-04-29,Denton,Texas,48121,748,20 +2020-04-30,Denton,Texas,48121,765,21 +2020-05-01,Denton,Texas,48121,786,22 +2020-05-02,Denton,Texas,48121,799,22 +2020-05-03,Denton,Texas,48121,803,22 +2020-05-04,Denton,Texas,48121,806,22 +2020-05-05,Denton,Texas,48121,832,22 +2020-05-06,Denton,Texas,48121,846,22 +2020-05-07,Denton,Texas,48121,872,23 +2020-05-08,Denton,Texas,48121,902,25 +2020-05-09,Denton,Texas,48121,914,25 +2020-05-10,Denton,Texas,48121,922,25 +2020-05-11,Denton,Texas,48121,946,25 +2020-05-12,Denton,Texas,48121,968,25 +2020-05-13,Denton,Texas,48121,989,25 +2020-05-14,Denton,Texas,48121,1016,28 +2020-05-15,Denton,Texas,48121,1040,28 +2020-05-16,Denton,Texas,48121,1051,28 +2020-05-17,Denton,Texas,48121,1069,28 +2020-05-18,Denton,Texas,48121,1088,28 +2020-05-19,Denton,Texas,48121,1116,28 +2020-05-20,Denton,Texas,48121,1161,28 +2020-05-21,Denton,Texas,48121,1188,29 +2020-05-22,Denton,Texas,48121,1205,30 +2020-05-23,Denton,Texas,48121,1212,30 +2020-05-24,Denton,Texas,48121,1224,30 +2020-05-25,Denton,Texas,48121,1233,30 +2020-05-26,Denton,Texas,48121,1255,30 +2020-05-27,Denton,Texas,48121,1285,30 +2020-05-28,Denton,Texas,48121,1318,30 +2020-05-29,Denton,Texas,48121,1329,30 +2020-05-30,Denton,Texas,48121,1357,31 +2020-05-31,Denton,Texas,48121,1373,31 +2020-06-01,Denton,Texas,48121,1398,32 +2020-06-02,Denton,Texas,48121,1416,32 +2020-06-03,Denton,Texas,48121,1435,32 +2020-06-04,Denton,Texas,48121,1454,32 +2020-06-05,Denton,Texas,48121,1467,33 +2020-06-06,Denton,Texas,48121,1486,33 +2020-06-07,Denton,Texas,48121,1500,33 +2020-06-08,Denton,Texas,48121,1524,34 +2020-06-09,Denton,Texas,48121,1559,35 +2020-06-10,Denton,Texas,48121,1599,36 +2020-06-11,Denton,Texas,48121,1632,36 +2020-06-12,Denton,Texas,48121,1687,36 +2020-06-13,Denton,Texas,48121,1719,36 +2020-06-14,Denton,Texas,48121,1736,36 +2020-06-15,Denton,Texas,48121,1772,36 +2020-06-16,Denton,Texas,48121,1812,36 +2020-06-17,Denton,Texas,48121,1893,36 +2020-06-18,Denton,Texas,48121,1980,36 +2020-06-19,Denton,Texas,48121,2054,36 +2020-06-20,Denton,Texas,48121,2113,36 +2020-06-21,Denton,Texas,48121,2163,36 +2020-06-22,Denton,Texas,48121,2219,36 +2020-06-23,Denton,Texas,48121,2302,36 +2020-06-24,Denton,Texas,48121,2417,37 +2020-06-25,Denton,Texas,48121,2494,37 +2020-06-26,Denton,Texas,48121,2581,37 +2020-06-27,Denton,Texas,48121,2630,37 +2020-06-28,Denton,Texas,48121,2670,37 +2020-06-29,Denton,Texas,48121,2740,37 +2020-06-30,Denton,Texas,48121,2845,37 +2020-07-01,Denton,Texas,48121,2951,37 +2020-07-02,Denton,Texas,48121,3032,37 +2020-07-03,Denton,Texas,48121,3184,37 +2020-07-04,Denton,Texas,48121,3279,37 +2020-07-05,Denton,Texas,48121,3338,37 +2020-07-06,Denton,Texas,48121,3403,37 +2020-07-07,Denton,Texas,48121,3459,37 +2020-07-08,Denton,Texas,48121,3582,37 +2020-07-09,Denton,Texas,48121,3697,38 +2020-03-19,DeWitt,Texas,48123,1,0 +2020-03-20,DeWitt,Texas,48123,1,0 +2020-03-21,DeWitt,Texas,48123,1,0 +2020-03-22,DeWitt,Texas,48123,1,0 +2020-03-23,DeWitt,Texas,48123,1,0 +2020-03-24,DeWitt,Texas,48123,1,0 +2020-03-25,DeWitt,Texas,48123,1,0 +2020-03-26,DeWitt,Texas,48123,2,0 +2020-03-27,DeWitt,Texas,48123,3,0 +2020-03-28,DeWitt,Texas,48123,3,0 +2020-03-29,DeWitt,Texas,48123,3,0 +2020-03-30,DeWitt,Texas,48123,3,0 +2020-03-31,DeWitt,Texas,48123,3,0 +2020-04-01,DeWitt,Texas,48123,4,0 +2020-04-02,DeWitt,Texas,48123,4,0 +2020-04-03,DeWitt,Texas,48123,6,0 +2020-04-04,DeWitt,Texas,48123,6,0 +2020-04-05,DeWitt,Texas,48123,7,0 +2020-04-06,DeWitt,Texas,48123,7,0 +2020-04-07,DeWitt,Texas,48123,7,0 +2020-04-08,DeWitt,Texas,48123,7,0 +2020-04-09,DeWitt,Texas,48123,8,0 +2020-04-10,DeWitt,Texas,48123,8,0 +2020-04-11,DeWitt,Texas,48123,9,0 +2020-04-12,DeWitt,Texas,48123,9,0 +2020-04-13,DeWitt,Texas,48123,9,0 +2020-04-14,DeWitt,Texas,48123,10,0 +2020-04-15,DeWitt,Texas,48123,10,0 +2020-04-16,DeWitt,Texas,48123,10,0 +2020-04-17,DeWitt,Texas,48123,10,0 +2020-04-18,DeWitt,Texas,48123,13,0 +2020-04-19,DeWitt,Texas,48123,13,0 +2020-04-20,DeWitt,Texas,48123,13,0 +2020-04-21,DeWitt,Texas,48123,14,1 +2020-04-22,DeWitt,Texas,48123,14,1 +2020-04-23,DeWitt,Texas,48123,14,1 +2020-04-24,DeWitt,Texas,48123,14,1 +2020-04-25,DeWitt,Texas,48123,15,1 +2020-04-26,DeWitt,Texas,48123,15,1 +2020-04-27,DeWitt,Texas,48123,15,1 +2020-04-28,DeWitt,Texas,48123,15,1 +2020-04-29,DeWitt,Texas,48123,15,1 +2020-04-30,DeWitt,Texas,48123,15,1 +2020-05-01,DeWitt,Texas,48123,15,1 +2020-05-02,DeWitt,Texas,48123,15,1 +2020-05-03,DeWitt,Texas,48123,15,1 +2020-05-04,DeWitt,Texas,48123,15,1 +2020-05-05,DeWitt,Texas,48123,15,1 +2020-05-06,DeWitt,Texas,48123,15,1 +2020-05-07,DeWitt,Texas,48123,15,1 +2020-05-08,DeWitt,Texas,48123,15,1 +2020-05-09,DeWitt,Texas,48123,15,1 +2020-05-10,DeWitt,Texas,48123,15,1 +2020-05-11,DeWitt,Texas,48123,15,1 +2020-05-12,DeWitt,Texas,48123,17,1 +2020-05-13,DeWitt,Texas,48123,17,1 +2020-05-14,DeWitt,Texas,48123,17,1 +2020-05-15,DeWitt,Texas,48123,17,1 +2020-05-16,DeWitt,Texas,48123,17,1 +2020-05-17,DeWitt,Texas,48123,17,1 +2020-05-18,DeWitt,Texas,48123,17,1 +2020-05-19,DeWitt,Texas,48123,17,1 +2020-05-20,DeWitt,Texas,48123,17,1 +2020-05-21,DeWitt,Texas,48123,17,1 +2020-05-22,DeWitt,Texas,48123,17,1 +2020-05-23,DeWitt,Texas,48123,17,1 +2020-05-24,DeWitt,Texas,48123,17,1 +2020-05-25,DeWitt,Texas,48123,17,1 +2020-05-26,DeWitt,Texas,48123,17,1 +2020-05-27,DeWitt,Texas,48123,17,1 +2020-05-28,DeWitt,Texas,48123,17,1 +2020-05-29,DeWitt,Texas,48123,17,1 +2020-05-30,DeWitt,Texas,48123,17,1 +2020-05-31,DeWitt,Texas,48123,17,1 +2020-06-01,DeWitt,Texas,48123,17,1 +2020-06-02,DeWitt,Texas,48123,17,1 +2020-06-03,DeWitt,Texas,48123,17,1 +2020-06-04,DeWitt,Texas,48123,17,1 +2020-06-05,DeWitt,Texas,48123,18,1 +2020-06-06,DeWitt,Texas,48123,18,1 +2020-06-07,DeWitt,Texas,48123,18,1 +2020-06-08,DeWitt,Texas,48123,18,1 +2020-06-09,DeWitt,Texas,48123,23,1 +2020-06-10,DeWitt,Texas,48123,24,1 +2020-06-11,DeWitt,Texas,48123,25,1 +2020-06-12,DeWitt,Texas,48123,26,1 +2020-06-13,DeWitt,Texas,48123,28,1 +2020-06-14,DeWitt,Texas,48123,28,1 +2020-06-15,DeWitt,Texas,48123,28,1 +2020-06-16,DeWitt,Texas,48123,31,1 +2020-06-17,DeWitt,Texas,48123,31,1 +2020-06-18,DeWitt,Texas,48123,35,1 +2020-06-19,DeWitt,Texas,48123,35,1 +2020-06-20,DeWitt,Texas,48123,37,1 +2020-06-21,DeWitt,Texas,48123,37,1 +2020-06-22,DeWitt,Texas,48123,37,1 +2020-06-23,DeWitt,Texas,48123,42,1 +2020-06-24,DeWitt,Texas,48123,42,1 +2020-06-25,DeWitt,Texas,48123,43,1 +2020-06-26,DeWitt,Texas,48123,47,1 +2020-06-27,DeWitt,Texas,48123,56,1 +2020-06-28,DeWitt,Texas,48123,56,1 +2020-06-29,DeWitt,Texas,48123,56,1 +2020-06-30,DeWitt,Texas,48123,56,1 +2020-07-01,DeWitt,Texas,48123,70,1 +2020-07-02,DeWitt,Texas,48123,70,1 +2020-07-03,DeWitt,Texas,48123,96,1 +2020-07-04,DeWitt,Texas,48123,96,1 +2020-07-05,DeWitt,Texas,48123,96,1 +2020-07-06,DeWitt,Texas,48123,96,1 +2020-07-07,DeWitt,Texas,48123,110,3 +2020-07-08,DeWitt,Texas,48123,110,3 +2020-07-09,DeWitt,Texas,48123,131,3 +2020-04-08,Dickens,Texas,48125,1,0 +2020-04-09,Dickens,Texas,48125,1,0 +2020-04-10,Dickens,Texas,48125,1,0 +2020-04-11,Dickens,Texas,48125,2,0 +2020-04-12,Dickens,Texas,48125,2,0 +2020-04-13,Dickens,Texas,48125,1,0 +2020-04-14,Dickens,Texas,48125,1,0 +2020-04-15,Dickens,Texas,48125,1,0 +2020-04-16,Dickens,Texas,48125,1,0 +2020-04-17,Dickens,Texas,48125,1,0 +2020-04-18,Dickens,Texas,48125,1,0 +2020-04-19,Dickens,Texas,48125,1,0 +2020-04-20,Dickens,Texas,48125,1,0 +2020-04-21,Dickens,Texas,48125,1,0 +2020-04-22,Dickens,Texas,48125,1,0 +2020-04-23,Dickens,Texas,48125,1,0 +2020-04-24,Dickens,Texas,48125,1,0 +2020-04-25,Dickens,Texas,48125,1,0 +2020-04-26,Dickens,Texas,48125,1,0 +2020-04-27,Dickens,Texas,48125,1,0 +2020-04-28,Dickens,Texas,48125,1,0 +2020-04-29,Dickens,Texas,48125,1,0 +2020-04-30,Dickens,Texas,48125,1,0 +2020-05-01,Dickens,Texas,48125,1,0 +2020-05-02,Dickens,Texas,48125,1,0 +2020-05-03,Dickens,Texas,48125,1,0 +2020-05-04,Dickens,Texas,48125,1,0 +2020-05-05,Dickens,Texas,48125,1,0 +2020-05-06,Dickens,Texas,48125,1,0 +2020-05-07,Dickens,Texas,48125,1,0 +2020-05-08,Dickens,Texas,48125,1,0 +2020-05-09,Dickens,Texas,48125,1,0 +2020-05-10,Dickens,Texas,48125,1,0 +2020-05-11,Dickens,Texas,48125,1,0 +2020-05-12,Dickens,Texas,48125,1,0 +2020-05-13,Dickens,Texas,48125,1,0 +2020-05-14,Dickens,Texas,48125,1,0 +2020-05-15,Dickens,Texas,48125,1,0 +2020-05-16,Dickens,Texas,48125,1,0 +2020-05-17,Dickens,Texas,48125,1,0 +2020-05-18,Dickens,Texas,48125,1,0 +2020-05-19,Dickens,Texas,48125,1,0 +2020-05-20,Dickens,Texas,48125,1,0 +2020-05-21,Dickens,Texas,48125,1,0 +2020-05-22,Dickens,Texas,48125,1,0 +2020-05-23,Dickens,Texas,48125,1,0 +2020-05-24,Dickens,Texas,48125,1,0 +2020-05-25,Dickens,Texas,48125,1,0 +2020-05-26,Dickens,Texas,48125,1,0 +2020-05-27,Dickens,Texas,48125,1,0 +2020-05-28,Dickens,Texas,48125,1,0 +2020-05-29,Dickens,Texas,48125,1,0 +2020-05-30,Dickens,Texas,48125,1,0 +2020-05-31,Dickens,Texas,48125,1,0 +2020-06-01,Dickens,Texas,48125,1,0 +2020-06-02,Dickens,Texas,48125,1,0 +2020-06-03,Dickens,Texas,48125,1,0 +2020-06-04,Dickens,Texas,48125,1,0 +2020-06-05,Dickens,Texas,48125,1,0 +2020-06-06,Dickens,Texas,48125,1,0 +2020-06-07,Dickens,Texas,48125,1,0 +2020-06-08,Dickens,Texas,48125,1,0 +2020-06-09,Dickens,Texas,48125,1,0 +2020-06-10,Dickens,Texas,48125,1,0 +2020-06-11,Dickens,Texas,48125,1,0 +2020-06-12,Dickens,Texas,48125,2,0 +2020-06-13,Dickens,Texas,48125,2,0 +2020-06-14,Dickens,Texas,48125,2,0 +2020-06-15,Dickens,Texas,48125,2,0 +2020-06-16,Dickens,Texas,48125,2,0 +2020-06-17,Dickens,Texas,48125,2,0 +2020-06-18,Dickens,Texas,48125,2,0 +2020-06-19,Dickens,Texas,48125,2,0 +2020-06-20,Dickens,Texas,48125,2,0 +2020-06-21,Dickens,Texas,48125,2,0 +2020-06-22,Dickens,Texas,48125,2,0 +2020-06-23,Dickens,Texas,48125,2,0 +2020-06-24,Dickens,Texas,48125,2,0 +2020-06-25,Dickens,Texas,48125,2,0 +2020-06-26,Dickens,Texas,48125,2,0 +2020-06-27,Dickens,Texas,48125,2,0 +2020-06-28,Dickens,Texas,48125,2,0 +2020-06-29,Dickens,Texas,48125,2,0 +2020-06-30,Dickens,Texas,48125,2,0 +2020-07-01,Dickens,Texas,48125,2,0 +2020-07-02,Dickens,Texas,48125,2,0 +2020-07-03,Dickens,Texas,48125,2,0 +2020-07-04,Dickens,Texas,48125,2,0 +2020-07-05,Dickens,Texas,48125,2,0 +2020-07-06,Dickens,Texas,48125,2,0 +2020-07-07,Dickens,Texas,48125,2,0 +2020-07-08,Dickens,Texas,48125,2,0 +2020-07-09,Dickens,Texas,48125,2,0 +2020-04-11,Dimmit,Texas,48127,1,0 +2020-04-12,Dimmit,Texas,48127,1,0 +2020-04-13,Dimmit,Texas,48127,1,0 +2020-04-14,Dimmit,Texas,48127,1,0 +2020-04-15,Dimmit,Texas,48127,1,0 +2020-04-16,Dimmit,Texas,48127,1,0 +2020-04-17,Dimmit,Texas,48127,1,0 +2020-04-18,Dimmit,Texas,48127,1,0 +2020-04-19,Dimmit,Texas,48127,1,0 +2020-04-20,Dimmit,Texas,48127,1,0 +2020-04-21,Dimmit,Texas,48127,1,0 +2020-04-22,Dimmit,Texas,48127,1,0 +2020-04-23,Dimmit,Texas,48127,1,0 +2020-04-24,Dimmit,Texas,48127,1,0 +2020-04-25,Dimmit,Texas,48127,1,0 +2020-04-26,Dimmit,Texas,48127,1,0 +2020-04-27,Dimmit,Texas,48127,1,0 +2020-04-28,Dimmit,Texas,48127,1,0 +2020-04-29,Dimmit,Texas,48127,1,0 +2020-04-30,Dimmit,Texas,48127,1,0 +2020-05-01,Dimmit,Texas,48127,1,0 +2020-05-02,Dimmit,Texas,48127,1,0 +2020-05-03,Dimmit,Texas,48127,1,0 +2020-05-04,Dimmit,Texas,48127,1,0 +2020-05-05,Dimmit,Texas,48127,1,0 +2020-05-06,Dimmit,Texas,48127,1,0 +2020-05-07,Dimmit,Texas,48127,1,0 +2020-05-08,Dimmit,Texas,48127,1,0 +2020-05-09,Dimmit,Texas,48127,1,0 +2020-05-10,Dimmit,Texas,48127,1,0 +2020-05-11,Dimmit,Texas,48127,1,0 +2020-05-12,Dimmit,Texas,48127,1,0 +2020-05-13,Dimmit,Texas,48127,1,0 +2020-05-14,Dimmit,Texas,48127,1,0 +2020-05-15,Dimmit,Texas,48127,1,0 +2020-05-16,Dimmit,Texas,48127,1,0 +2020-05-17,Dimmit,Texas,48127,1,0 +2020-05-18,Dimmit,Texas,48127,1,0 +2020-05-19,Dimmit,Texas,48127,1,0 +2020-05-20,Dimmit,Texas,48127,1,0 +2020-05-21,Dimmit,Texas,48127,1,0 +2020-05-22,Dimmit,Texas,48127,1,0 +2020-05-23,Dimmit,Texas,48127,1,0 +2020-05-24,Dimmit,Texas,48127,1,0 +2020-05-25,Dimmit,Texas,48127,1,0 +2020-05-26,Dimmit,Texas,48127,1,0 +2020-05-27,Dimmit,Texas,48127,1,0 +2020-05-28,Dimmit,Texas,48127,1,0 +2020-05-29,Dimmit,Texas,48127,1,0 +2020-05-30,Dimmit,Texas,48127,1,0 +2020-05-31,Dimmit,Texas,48127,1,0 +2020-06-01,Dimmit,Texas,48127,1,0 +2020-06-02,Dimmit,Texas,48127,1,0 +2020-06-03,Dimmit,Texas,48127,1,0 +2020-06-04,Dimmit,Texas,48127,1,0 +2020-06-05,Dimmit,Texas,48127,1,0 +2020-06-06,Dimmit,Texas,48127,1,0 +2020-06-07,Dimmit,Texas,48127,1,0 +2020-06-08,Dimmit,Texas,48127,1,0 +2020-06-09,Dimmit,Texas,48127,1,0 +2020-06-10,Dimmit,Texas,48127,1,0 +2020-06-11,Dimmit,Texas,48127,1,0 +2020-06-12,Dimmit,Texas,48127,1,0 +2020-06-13,Dimmit,Texas,48127,1,0 +2020-06-14,Dimmit,Texas,48127,1,0 +2020-06-15,Dimmit,Texas,48127,1,0 +2020-06-16,Dimmit,Texas,48127,1,0 +2020-06-17,Dimmit,Texas,48127,1,0 +2020-06-18,Dimmit,Texas,48127,1,0 +2020-06-19,Dimmit,Texas,48127,3,0 +2020-06-20,Dimmit,Texas,48127,3,0 +2020-06-21,Dimmit,Texas,48127,3,0 +2020-06-22,Dimmit,Texas,48127,3,0 +2020-06-23,Dimmit,Texas,48127,3,0 +2020-06-24,Dimmit,Texas,48127,3,0 +2020-06-25,Dimmit,Texas,48127,5,0 +2020-06-26,Dimmit,Texas,48127,9,0 +2020-06-27,Dimmit,Texas,48127,11,0 +2020-06-28,Dimmit,Texas,48127,11,0 +2020-06-29,Dimmit,Texas,48127,11,0 +2020-06-30,Dimmit,Texas,48127,13,0 +2020-07-01,Dimmit,Texas,48127,13,0 +2020-07-02,Dimmit,Texas,48127,13,0 +2020-07-03,Dimmit,Texas,48127,13,0 +2020-07-04,Dimmit,Texas,48127,13,0 +2020-07-05,Dimmit,Texas,48127,13,0 +2020-07-06,Dimmit,Texas,48127,13,0 +2020-07-07,Dimmit,Texas,48127,18,0 +2020-07-08,Dimmit,Texas,48127,18,0 +2020-07-09,Dimmit,Texas,48127,25,0 +2020-04-02,Donley,Texas,48129,1,0 +2020-04-03,Donley,Texas,48129,5,0 +2020-04-04,Donley,Texas,48129,5,0 +2020-04-05,Donley,Texas,48129,7,0 +2020-04-06,Donley,Texas,48129,7,0 +2020-04-07,Donley,Texas,48129,7,0 +2020-04-08,Donley,Texas,48129,7,0 +2020-04-09,Donley,Texas,48129,14,0 +2020-04-10,Donley,Texas,48129,21,0 +2020-04-11,Donley,Texas,48129,23,0 +2020-04-12,Donley,Texas,48129,23,0 +2020-04-13,Donley,Texas,48129,23,0 +2020-04-14,Donley,Texas,48129,23,0 +2020-04-15,Donley,Texas,48129,23,0 +2020-04-16,Donley,Texas,48129,23,0 +2020-04-17,Donley,Texas,48129,23,0 +2020-04-18,Donley,Texas,48129,23,0 +2020-04-19,Donley,Texas,48129,23,0 +2020-04-20,Donley,Texas,48129,23,0 +2020-04-21,Donley,Texas,48129,24,0 +2020-04-22,Donley,Texas,48129,24,0 +2020-04-23,Donley,Texas,48129,24,0 +2020-04-24,Donley,Texas,48129,24,0 +2020-04-25,Donley,Texas,48129,24,0 +2020-04-26,Donley,Texas,48129,24,0 +2020-04-27,Donley,Texas,48129,24,0 +2020-04-28,Donley,Texas,48129,24,0 +2020-04-29,Donley,Texas,48129,24,0 +2020-04-30,Donley,Texas,48129,24,0 +2020-05-01,Donley,Texas,48129,24,0 +2020-05-02,Donley,Texas,48129,25,0 +2020-05-03,Donley,Texas,48129,25,0 +2020-05-04,Donley,Texas,48129,25,0 +2020-05-05,Donley,Texas,48129,25,0 +2020-05-06,Donley,Texas,48129,25,0 +2020-05-07,Donley,Texas,48129,25,0 +2020-05-08,Donley,Texas,48129,25,0 +2020-05-09,Donley,Texas,48129,25,0 +2020-05-10,Donley,Texas,48129,26,0 +2020-05-11,Donley,Texas,48129,26,0 +2020-05-12,Donley,Texas,48129,26,0 +2020-05-13,Donley,Texas,48129,26,0 +2020-05-14,Donley,Texas,48129,26,0 +2020-05-15,Donley,Texas,48129,26,0 +2020-05-16,Donley,Texas,48129,26,0 +2020-05-17,Donley,Texas,48129,26,0 +2020-05-18,Donley,Texas,48129,26,0 +2020-05-19,Donley,Texas,48129,27,0 +2020-05-20,Donley,Texas,48129,26,0 +2020-05-21,Donley,Texas,48129,26,0 +2020-05-22,Donley,Texas,48129,26,0 +2020-05-23,Donley,Texas,48129,26,0 +2020-05-24,Donley,Texas,48129,26,0 +2020-05-25,Donley,Texas,48129,26,0 +2020-05-26,Donley,Texas,48129,26,0 +2020-05-27,Donley,Texas,48129,26,0 +2020-05-28,Donley,Texas,48129,26,0 +2020-05-29,Donley,Texas,48129,26,0 +2020-05-30,Donley,Texas,48129,26,0 +2020-05-31,Donley,Texas,48129,26,0 +2020-06-01,Donley,Texas,48129,26,0 +2020-06-02,Donley,Texas,48129,26,0 +2020-06-03,Donley,Texas,48129,26,0 +2020-06-04,Donley,Texas,48129,27,0 +2020-06-05,Donley,Texas,48129,27,0 +2020-06-06,Donley,Texas,48129,27,0 +2020-06-07,Donley,Texas,48129,27,0 +2020-06-08,Donley,Texas,48129,27,0 +2020-06-09,Donley,Texas,48129,27,0 +2020-06-10,Donley,Texas,48129,27,0 +2020-06-11,Donley,Texas,48129,27,0 +2020-06-12,Donley,Texas,48129,28,0 +2020-06-13,Donley,Texas,48129,28,0 +2020-06-14,Donley,Texas,48129,28,0 +2020-06-15,Donley,Texas,48129,28,0 +2020-06-16,Donley,Texas,48129,28,0 +2020-06-17,Donley,Texas,48129,27,0 +2020-06-18,Donley,Texas,48129,27,0 +2020-06-19,Donley,Texas,48129,27,0 +2020-06-20,Donley,Texas,48129,27,0 +2020-06-21,Donley,Texas,48129,27,0 +2020-06-22,Donley,Texas,48129,27,0 +2020-06-23,Donley,Texas,48129,27,0 +2020-06-24,Donley,Texas,48129,27,0 +2020-06-25,Donley,Texas,48129,27,0 +2020-06-26,Donley,Texas,48129,27,0 +2020-06-27,Donley,Texas,48129,27,0 +2020-06-28,Donley,Texas,48129,27,0 +2020-06-29,Donley,Texas,48129,27,0 +2020-06-30,Donley,Texas,48129,27,0 +2020-07-01,Donley,Texas,48129,27,0 +2020-07-02,Donley,Texas,48129,27,0 +2020-07-03,Donley,Texas,48129,27,0 +2020-07-04,Donley,Texas,48129,27,0 +2020-07-05,Donley,Texas,48129,27,0 +2020-07-06,Donley,Texas,48129,27,0 +2020-07-07,Donley,Texas,48129,28,0 +2020-07-08,Donley,Texas,48129,28,0 +2020-07-09,Donley,Texas,48129,28,0 +2020-04-14,Duval,Texas,48131,1,0 +2020-04-15,Duval,Texas,48131,1,0 +2020-04-16,Duval,Texas,48131,1,0 +2020-04-17,Duval,Texas,48131,1,0 +2020-04-18,Duval,Texas,48131,1,0 +2020-04-19,Duval,Texas,48131,1,0 +2020-04-20,Duval,Texas,48131,1,0 +2020-04-21,Duval,Texas,48131,1,0 +2020-04-22,Duval,Texas,48131,1,0 +2020-04-23,Duval,Texas,48131,1,0 +2020-04-24,Duval,Texas,48131,1,0 +2020-04-25,Duval,Texas,48131,2,0 +2020-04-26,Duval,Texas,48131,2,0 +2020-04-27,Duval,Texas,48131,2,0 +2020-04-28,Duval,Texas,48131,2,0 +2020-04-29,Duval,Texas,48131,2,0 +2020-04-30,Duval,Texas,48131,2,0 +2020-05-01,Duval,Texas,48131,2,0 +2020-05-02,Duval,Texas,48131,3,0 +2020-05-03,Duval,Texas,48131,3,0 +2020-05-04,Duval,Texas,48131,3,0 +2020-05-05,Duval,Texas,48131,3,0 +2020-05-06,Duval,Texas,48131,3,0 +2020-05-07,Duval,Texas,48131,3,0 +2020-05-08,Duval,Texas,48131,3,0 +2020-05-09,Duval,Texas,48131,5,0 +2020-05-10,Duval,Texas,48131,5,0 +2020-05-11,Duval,Texas,48131,5,0 +2020-05-12,Duval,Texas,48131,5,0 +2020-05-13,Duval,Texas,48131,5,0 +2020-05-14,Duval,Texas,48131,5,0 +2020-05-15,Duval,Texas,48131,5,0 +2020-05-16,Duval,Texas,48131,5,0 +2020-05-17,Duval,Texas,48131,5,0 +2020-05-18,Duval,Texas,48131,5,0 +2020-05-19,Duval,Texas,48131,5,0 +2020-05-20,Duval,Texas,48131,6,0 +2020-05-21,Duval,Texas,48131,5,0 +2020-05-22,Duval,Texas,48131,5,0 +2020-05-23,Duval,Texas,48131,5,0 +2020-05-24,Duval,Texas,48131,5,0 +2020-05-25,Duval,Texas,48131,5,0 +2020-05-26,Duval,Texas,48131,5,0 +2020-05-27,Duval,Texas,48131,5,0 +2020-05-28,Duval,Texas,48131,5,0 +2020-05-29,Duval,Texas,48131,5,0 +2020-05-30,Duval,Texas,48131,5,0 +2020-05-31,Duval,Texas,48131,5,0 +2020-06-01,Duval,Texas,48131,5,0 +2020-06-02,Duval,Texas,48131,5,0 +2020-06-03,Duval,Texas,48131,5,0 +2020-06-04,Duval,Texas,48131,5,0 +2020-06-05,Duval,Texas,48131,5,0 +2020-06-06,Duval,Texas,48131,5,0 +2020-06-07,Duval,Texas,48131,5,0 +2020-06-08,Duval,Texas,48131,5,0 +2020-06-09,Duval,Texas,48131,5,0 +2020-06-10,Duval,Texas,48131,5,0 +2020-06-11,Duval,Texas,48131,5,0 +2020-06-12,Duval,Texas,48131,5,0 +2020-06-13,Duval,Texas,48131,5,0 +2020-06-14,Duval,Texas,48131,5,0 +2020-06-15,Duval,Texas,48131,5,0 +2020-06-16,Duval,Texas,48131,5,0 +2020-06-17,Duval,Texas,48131,5,0 +2020-06-18,Duval,Texas,48131,5,0 +2020-06-19,Duval,Texas,48131,5,0 +2020-06-20,Duval,Texas,48131,5,0 +2020-06-21,Duval,Texas,48131,5,0 +2020-06-22,Duval,Texas,48131,5,0 +2020-06-23,Duval,Texas,48131,6,0 +2020-06-24,Duval,Texas,48131,7,0 +2020-06-25,Duval,Texas,48131,8,0 +2020-06-26,Duval,Texas,48131,9,0 +2020-06-27,Duval,Texas,48131,10,0 +2020-06-28,Duval,Texas,48131,15,0 +2020-06-29,Duval,Texas,48131,20,0 +2020-06-30,Duval,Texas,48131,41,0 +2020-07-01,Duval,Texas,48131,50,0 +2020-07-02,Duval,Texas,48131,54,0 +2020-07-03,Duval,Texas,48131,54,0 +2020-07-04,Duval,Texas,48131,56,0 +2020-07-05,Duval,Texas,48131,57,0 +2020-07-06,Duval,Texas,48131,62,0 +2020-07-07,Duval,Texas,48131,65,0 +2020-07-08,Duval,Texas,48131,67,0 +2020-07-09,Duval,Texas,48131,70,0 +2020-03-25,Eastland,Texas,48133,2,0 +2020-03-26,Eastland,Texas,48133,2,0 +2020-03-27,Eastland,Texas,48133,2,0 +2020-03-28,Eastland,Texas,48133,3,0 +2020-03-29,Eastland,Texas,48133,3,0 +2020-03-30,Eastland,Texas,48133,3,0 +2020-03-31,Eastland,Texas,48133,3,0 +2020-04-01,Eastland,Texas,48133,3,0 +2020-04-02,Eastland,Texas,48133,3,0 +2020-04-03,Eastland,Texas,48133,3,0 +2020-04-04,Eastland,Texas,48133,3,0 +2020-04-05,Eastland,Texas,48133,3,0 +2020-04-06,Eastland,Texas,48133,3,0 +2020-04-07,Eastland,Texas,48133,3,0 +2020-04-08,Eastland,Texas,48133,3,0 +2020-04-09,Eastland,Texas,48133,3,0 +2020-04-10,Eastland,Texas,48133,3,0 +2020-04-11,Eastland,Texas,48133,3,0 +2020-04-12,Eastland,Texas,48133,3,0 +2020-04-13,Eastland,Texas,48133,3,0 +2020-04-14,Eastland,Texas,48133,3,0 +2020-04-15,Eastland,Texas,48133,3,0 +2020-04-16,Eastland,Texas,48133,3,0 +2020-04-17,Eastland,Texas,48133,3,0 +2020-04-18,Eastland,Texas,48133,3,0 +2020-04-19,Eastland,Texas,48133,3,0 +2020-04-20,Eastland,Texas,48133,3,0 +2020-04-21,Eastland,Texas,48133,3,0 +2020-04-22,Eastland,Texas,48133,3,0 +2020-04-23,Eastland,Texas,48133,3,0 +2020-04-24,Eastland,Texas,48133,3,0 +2020-04-25,Eastland,Texas,48133,3,0 +2020-04-26,Eastland,Texas,48133,3,0 +2020-04-27,Eastland,Texas,48133,3,0 +2020-04-28,Eastland,Texas,48133,3,0 +2020-04-29,Eastland,Texas,48133,3,0 +2020-04-30,Eastland,Texas,48133,3,0 +2020-05-01,Eastland,Texas,48133,3,0 +2020-05-02,Eastland,Texas,48133,3,0 +2020-05-03,Eastland,Texas,48133,3,0 +2020-05-04,Eastland,Texas,48133,3,0 +2020-05-05,Eastland,Texas,48133,3,0 +2020-05-06,Eastland,Texas,48133,3,0 +2020-05-07,Eastland,Texas,48133,3,0 +2020-05-08,Eastland,Texas,48133,3,0 +2020-05-09,Eastland,Texas,48133,3,0 +2020-05-10,Eastland,Texas,48133,3,0 +2020-05-11,Eastland,Texas,48133,3,0 +2020-05-12,Eastland,Texas,48133,3,0 +2020-05-13,Eastland,Texas,48133,3,0 +2020-05-14,Eastland,Texas,48133,4,0 +2020-05-15,Eastland,Texas,48133,4,0 +2020-05-16,Eastland,Texas,48133,5,0 +2020-05-17,Eastland,Texas,48133,5,0 +2020-05-18,Eastland,Texas,48133,5,0 +2020-05-19,Eastland,Texas,48133,5,0 +2020-05-20,Eastland,Texas,48133,5,0 +2020-05-21,Eastland,Texas,48133,5,0 +2020-05-22,Eastland,Texas,48133,5,0 +2020-05-23,Eastland,Texas,48133,5,0 +2020-05-24,Eastland,Texas,48133,5,0 +2020-05-25,Eastland,Texas,48133,5,0 +2020-05-26,Eastland,Texas,48133,5,0 +2020-05-27,Eastland,Texas,48133,6,0 +2020-05-28,Eastland,Texas,48133,6,0 +2020-05-29,Eastland,Texas,48133,6,0 +2020-05-30,Eastland,Texas,48133,6,0 +2020-05-31,Eastland,Texas,48133,6,0 +2020-06-01,Eastland,Texas,48133,6,0 +2020-06-02,Eastland,Texas,48133,6,0 +2020-06-03,Eastland,Texas,48133,7,0 +2020-06-04,Eastland,Texas,48133,7,0 +2020-06-05,Eastland,Texas,48133,7,0 +2020-06-06,Eastland,Texas,48133,7,0 +2020-06-07,Eastland,Texas,48133,7,0 +2020-06-08,Eastland,Texas,48133,7,0 +2020-06-09,Eastland,Texas,48133,7,0 +2020-06-10,Eastland,Texas,48133,7,0 +2020-06-11,Eastland,Texas,48133,7,0 +2020-06-12,Eastland,Texas,48133,7,0 +2020-06-13,Eastland,Texas,48133,7,0 +2020-06-14,Eastland,Texas,48133,7,0 +2020-06-15,Eastland,Texas,48133,7,0 +2020-06-16,Eastland,Texas,48133,7,0 +2020-06-17,Eastland,Texas,48133,7,0 +2020-06-18,Eastland,Texas,48133,7,0 +2020-06-19,Eastland,Texas,48133,7,0 +2020-06-20,Eastland,Texas,48133,7,0 +2020-06-21,Eastland,Texas,48133,7,0 +2020-06-22,Eastland,Texas,48133,7,0 +2020-06-23,Eastland,Texas,48133,7,0 +2020-06-24,Eastland,Texas,48133,8,0 +2020-06-25,Eastland,Texas,48133,8,0 +2020-06-26,Eastland,Texas,48133,8,0 +2020-06-27,Eastland,Texas,48133,9,0 +2020-06-28,Eastland,Texas,48133,9,0 +2020-06-29,Eastland,Texas,48133,9,0 +2020-06-30,Eastland,Texas,48133,10,0 +2020-07-01,Eastland,Texas,48133,10,0 +2020-07-02,Eastland,Texas,48133,10,0 +2020-07-03,Eastland,Texas,48133,11,0 +2020-07-04,Eastland,Texas,48133,11,0 +2020-07-05,Eastland,Texas,48133,11,0 +2020-07-06,Eastland,Texas,48133,11,0 +2020-07-07,Eastland,Texas,48133,11,0 +2020-07-08,Eastland,Texas,48133,13,0 +2020-07-09,Eastland,Texas,48133,17,0 +2020-03-29,Ector,Texas,48135,3,0 +2020-03-30,Ector,Texas,48135,3,0 +2020-03-31,Ector,Texas,48135,7,0 +2020-04-01,Ector,Texas,48135,11,0 +2020-04-02,Ector,Texas,48135,12,0 +2020-04-03,Ector,Texas,48135,15,0 +2020-04-04,Ector,Texas,48135,22,0 +2020-04-05,Ector,Texas,48135,22,0 +2020-04-06,Ector,Texas,48135,30,0 +2020-04-07,Ector,Texas,48135,30,0 +2020-04-08,Ector,Texas,48135,30,0 +2020-04-09,Ector,Texas,48135,34,1 +2020-04-10,Ector,Texas,48135,39,1 +2020-04-11,Ector,Texas,48135,41,1 +2020-04-12,Ector,Texas,48135,43,2 +2020-04-13,Ector,Texas,48135,45,2 +2020-04-14,Ector,Texas,48135,46,2 +2020-04-15,Ector,Texas,48135,48,2 +2020-04-16,Ector,Texas,48135,48,2 +2020-04-17,Ector,Texas,48135,58,4 +2020-04-18,Ector,Texas,48135,58,4 +2020-04-19,Ector,Texas,48135,58,4 +2020-04-20,Ector,Texas,48135,60,4 +2020-04-21,Ector,Texas,48135,61,4 +2020-04-22,Ector,Texas,48135,62,4 +2020-04-23,Ector,Texas,48135,64,4 +2020-04-24,Ector,Texas,48135,67,4 +2020-04-25,Ector,Texas,48135,70,4 +2020-04-26,Ector,Texas,48135,73,4 +2020-04-27,Ector,Texas,48135,79,4 +2020-04-28,Ector,Texas,48135,81,4 +2020-04-29,Ector,Texas,48135,81,4 +2020-04-30,Ector,Texas,48135,81,4 +2020-05-01,Ector,Texas,48135,81,4 +2020-05-02,Ector,Texas,48135,81,4 +2020-05-03,Ector,Texas,48135,84,4 +2020-05-04,Ector,Texas,48135,87,4 +2020-05-05,Ector,Texas,48135,88,4 +2020-05-06,Ector,Texas,48135,93,4 +2020-05-07,Ector,Texas,48135,97,4 +2020-05-08,Ector,Texas,48135,98,4 +2020-05-09,Ector,Texas,48135,98,4 +2020-05-10,Ector,Texas,48135,102,4 +2020-05-11,Ector,Texas,48135,103,4 +2020-05-12,Ector,Texas,48135,103,4 +2020-05-13,Ector,Texas,48135,103,4 +2020-05-14,Ector,Texas,48135,106,4 +2020-05-15,Ector,Texas,48135,112,4 +2020-05-16,Ector,Texas,48135,117,4 +2020-05-17,Ector,Texas,48135,117,4 +2020-05-18,Ector,Texas,48135,118,4 +2020-05-19,Ector,Texas,48135,127,4 +2020-05-20,Ector,Texas,48135,130,4 +2020-05-21,Ector,Texas,48135,137,4 +2020-05-22,Ector,Texas,48135,139,4 +2020-05-23,Ector,Texas,48135,147,4 +2020-05-24,Ector,Texas,48135,149,4 +2020-05-25,Ector,Texas,48135,154,4 +2020-05-26,Ector,Texas,48135,155,5 +2020-05-27,Ector,Texas,48135,155,5 +2020-05-28,Ector,Texas,48135,155,5 +2020-05-29,Ector,Texas,48135,160,5 +2020-05-30,Ector,Texas,48135,160,5 +2020-05-31,Ector,Texas,48135,160,5 +2020-06-01,Ector,Texas,48135,170,5 +2020-06-02,Ector,Texas,48135,176,5 +2020-06-03,Ector,Texas,48135,188,5 +2020-06-04,Ector,Texas,48135,198,5 +2020-06-05,Ector,Texas,48135,200,5 +2020-06-06,Ector,Texas,48135,200,5 +2020-06-07,Ector,Texas,48135,200,5 +2020-06-08,Ector,Texas,48135,225,6 +2020-06-09,Ector,Texas,48135,233,6 +2020-06-10,Ector,Texas,48135,243,6 +2020-06-11,Ector,Texas,48135,258,6 +2020-06-12,Ector,Texas,48135,273,6 +2020-06-13,Ector,Texas,48135,273,6 +2020-06-14,Ector,Texas,48135,273,6 +2020-06-15,Ector,Texas,48135,323,6 +2020-06-16,Ector,Texas,48135,358,7 +2020-06-17,Ector,Texas,48135,398,7 +2020-06-18,Ector,Texas,48135,398,7 +2020-06-19,Ector,Texas,48135,476,7 +2020-06-20,Ector,Texas,48135,476,7 +2020-06-21,Ector,Texas,48135,476,7 +2020-06-22,Ector,Texas,48135,572,7 +2020-06-23,Ector,Texas,48135,632,7 +2020-06-24,Ector,Texas,48135,670,7 +2020-06-25,Ector,Texas,48135,734,7 +2020-06-26,Ector,Texas,48135,807,7 +2020-06-27,Ector,Texas,48135,807,7 +2020-06-28,Ector,Texas,48135,807,7 +2020-06-29,Ector,Texas,48135,900,7 +2020-06-30,Ector,Texas,48135,900,7 +2020-07-01,Ector,Texas,48135,1044,9 +2020-07-02,Ector,Texas,48135,1092,9 +2020-07-03,Ector,Texas,48135,1092,9 +2020-07-04,Ector,Texas,48135,1092,9 +2020-07-05,Ector,Texas,48135,1092,9 +2020-07-06,Ector,Texas,48135,1392,11 +2020-07-07,Ector,Texas,48135,1392,11 +2020-07-08,Ector,Texas,48135,1602,13 +2020-07-09,Ector,Texas,48135,1602,13 +2020-06-25,Edwards,Texas,48137,2,0 +2020-06-26,Edwards,Texas,48137,2,0 +2020-06-27,Edwards,Texas,48137,2,0 +2020-06-28,Edwards,Texas,48137,2,0 +2020-06-29,Edwards,Texas,48137,2,0 +2020-06-30,Edwards,Texas,48137,2,0 +2020-07-01,Edwards,Texas,48137,2,0 +2020-07-02,Edwards,Texas,48137,2,0 +2020-07-03,Edwards,Texas,48137,2,0 +2020-07-04,Edwards,Texas,48137,2,0 +2020-07-05,Edwards,Texas,48137,2,0 +2020-07-06,Edwards,Texas,48137,2,0 +2020-07-07,Edwards,Texas,48137,2,0 +2020-07-08,Edwards,Texas,48137,2,0 +2020-07-09,Edwards,Texas,48137,2,0 +2020-03-17,Ellis,Texas,48139,2,0 +2020-03-18,Ellis,Texas,48139,2,0 +2020-03-19,Ellis,Texas,48139,2,0 +2020-03-20,Ellis,Texas,48139,2,0 +2020-03-21,Ellis,Texas,48139,3,0 +2020-03-22,Ellis,Texas,48139,5,0 +2020-03-23,Ellis,Texas,48139,5,0 +2020-03-24,Ellis,Texas,48139,5,0 +2020-03-25,Ellis,Texas,48139,6,0 +2020-03-26,Ellis,Texas,48139,6,0 +2020-03-27,Ellis,Texas,48139,13,0 +2020-03-28,Ellis,Texas,48139,13,0 +2020-03-29,Ellis,Texas,48139,15,0 +2020-03-30,Ellis,Texas,48139,16,1 +2020-03-31,Ellis,Texas,48139,16,1 +2020-04-01,Ellis,Texas,48139,20,1 +2020-04-02,Ellis,Texas,48139,26,1 +2020-04-03,Ellis,Texas,48139,27,1 +2020-04-04,Ellis,Texas,48139,32,2 +2020-04-05,Ellis,Texas,48139,32,2 +2020-04-06,Ellis,Texas,48139,38,2 +2020-04-07,Ellis,Texas,48139,38,2 +2020-04-08,Ellis,Texas,48139,44,2 +2020-04-09,Ellis,Texas,48139,44,2 +2020-04-10,Ellis,Texas,48139,63,2 +2020-04-11,Ellis,Texas,48139,71,2 +2020-04-12,Ellis,Texas,48139,71,2 +2020-04-13,Ellis,Texas,48139,73,3 +2020-04-14,Ellis,Texas,48139,73,3 +2020-04-15,Ellis,Texas,48139,83,3 +2020-04-16,Ellis,Texas,48139,83,3 +2020-04-17,Ellis,Texas,48139,94,3 +2020-04-18,Ellis,Texas,48139,94,3 +2020-04-19,Ellis,Texas,48139,99,3 +2020-04-20,Ellis,Texas,48139,101,4 +2020-04-21,Ellis,Texas,48139,101,4 +2020-04-22,Ellis,Texas,48139,110,4 +2020-04-23,Ellis,Texas,48139,111,4 +2020-04-24,Ellis,Texas,48139,121,4 +2020-04-25,Ellis,Texas,48139,127,5 +2020-04-26,Ellis,Texas,48139,127,5 +2020-04-27,Ellis,Texas,48139,133,5 +2020-04-28,Ellis,Texas,48139,133,5 +2020-04-29,Ellis,Texas,48139,143,6 +2020-04-30,Ellis,Texas,48139,148,6 +2020-05-01,Ellis,Texas,48139,148,6 +2020-05-02,Ellis,Texas,48139,166,6 +2020-05-03,Ellis,Texas,48139,166,6 +2020-05-04,Ellis,Texas,48139,169,6 +2020-05-05,Ellis,Texas,48139,176,6 +2020-05-06,Ellis,Texas,48139,184,9 +2020-05-07,Ellis,Texas,48139,188,10 +2020-05-08,Ellis,Texas,48139,193,11 +2020-05-09,Ellis,Texas,48139,202,11 +2020-05-10,Ellis,Texas,48139,202,11 +2020-05-11,Ellis,Texas,48139,211,11 +2020-05-12,Ellis,Texas,48139,216,11 +2020-05-13,Ellis,Texas,48139,221,11 +2020-05-14,Ellis,Texas,48139,236,11 +2020-05-15,Ellis,Texas,48139,241,11 +2020-05-16,Ellis,Texas,48139,247,12 +2020-05-17,Ellis,Texas,48139,247,12 +2020-05-18,Ellis,Texas,48139,247,12 +2020-05-19,Ellis,Texas,48139,258,12 +2020-05-20,Ellis,Texas,48139,264,12 +2020-05-21,Ellis,Texas,48139,266,12 +2020-05-22,Ellis,Texas,48139,266,12 +2020-05-23,Ellis,Texas,48139,272,12 +2020-05-24,Ellis,Texas,48139,272,12 +2020-05-25,Ellis,Texas,48139,272,12 +2020-05-26,Ellis,Texas,48139,289,12 +2020-05-27,Ellis,Texas,48139,290,13 +2020-05-28,Ellis,Texas,48139,305,13 +2020-05-29,Ellis,Texas,48139,309,14 +2020-05-30,Ellis,Texas,48139,317,14 +2020-05-31,Ellis,Texas,48139,317,14 +2020-06-01,Ellis,Texas,48139,317,14 +2020-06-02,Ellis,Texas,48139,325,15 +2020-06-03,Ellis,Texas,48139,332,15 +2020-06-04,Ellis,Texas,48139,338,15 +2020-06-05,Ellis,Texas,48139,361,16 +2020-06-06,Ellis,Texas,48139,364,16 +2020-06-07,Ellis,Texas,48139,364,16 +2020-06-08,Ellis,Texas,48139,364,16 +2020-06-09,Ellis,Texas,48139,399,16 +2020-06-10,Ellis,Texas,48139,418,18 +2020-06-11,Ellis,Texas,48139,429,18 +2020-06-12,Ellis,Texas,48139,437,18 +2020-06-13,Ellis,Texas,48139,448,19 +2020-06-14,Ellis,Texas,48139,448,19 +2020-06-15,Ellis,Texas,48139,448,19 +2020-06-16,Ellis,Texas,48139,458,19 +2020-06-17,Ellis,Texas,48139,470,19 +2020-06-18,Ellis,Texas,48139,490,19 +2020-06-19,Ellis,Texas,48139,510,19 +2020-06-20,Ellis,Texas,48139,510,19 +2020-06-21,Ellis,Texas,48139,510,19 +2020-06-22,Ellis,Texas,48139,510,19 +2020-06-23,Ellis,Texas,48139,539,19 +2020-06-24,Ellis,Texas,48139,684,19 +2020-06-25,Ellis,Texas,48139,684,19 +2020-06-26,Ellis,Texas,48139,684,19 +2020-06-27,Ellis,Texas,48139,711,19 +2020-06-28,Ellis,Texas,48139,711,19 +2020-06-29,Ellis,Texas,48139,711,19 +2020-06-30,Ellis,Texas,48139,820,19 +2020-07-01,Ellis,Texas,48139,862,19 +2020-07-02,Ellis,Texas,48139,901,19 +2020-07-03,Ellis,Texas,48139,978,19 +2020-07-04,Ellis,Texas,48139,1046,19 +2020-07-05,Ellis,Texas,48139,1046,19 +2020-07-06,Ellis,Texas,48139,1046,19 +2020-07-07,Ellis,Texas,48139,1182,19 +2020-07-08,Ellis,Texas,48139,1351,19 +2020-07-09,Ellis,Texas,48139,1424,20 +2020-03-13,El Paso,Texas,48141,1,0 +2020-03-14,El Paso,Texas,48141,1,0 +2020-03-15,El Paso,Texas,48141,2,0 +2020-03-16,El Paso,Texas,48141,2,0 +2020-03-17,El Paso,Texas,48141,2,0 +2020-03-18,El Paso,Texas,48141,3,0 +2020-03-19,El Paso,Texas,48141,6,0 +2020-03-20,El Paso,Texas,48141,6,0 +2020-03-21,El Paso,Texas,48141,6,0 +2020-03-22,El Paso,Texas,48141,6,0 +2020-03-23,El Paso,Texas,48141,6,0 +2020-03-24,El Paso,Texas,48141,12,0 +2020-03-25,El Paso,Texas,48141,12,0 +2020-03-26,El Paso,Texas,48141,25,0 +2020-03-27,El Paso,Texas,48141,30,0 +2020-03-28,El Paso,Texas,48141,35,0 +2020-03-29,El Paso,Texas,48141,40,0 +2020-03-30,El Paso,Texas,48141,47,0 +2020-03-31,El Paso,Texas,48141,50,0 +2020-04-01,El Paso,Texas,48141,50,0 +2020-04-02,El Paso,Texas,48141,68,0 +2020-04-03,El Paso,Texas,48141,78,0 +2020-04-04,El Paso,Texas,48141,96,0 +2020-04-05,El Paso,Texas,48141,106,0 +2020-04-06,El Paso,Texas,48141,125,0 +2020-04-07,El Paso,Texas,48141,153,0 +2020-04-08,El Paso,Texas,48141,153,0 +2020-04-09,El Paso,Texas,48141,225,1 +2020-04-10,El Paso,Texas,48141,252,2 +2020-04-11,El Paso,Texas,48141,269,2 +2020-04-12,El Paso,Texas,48141,269,2 +2020-04-13,El Paso,Texas,48141,300,2 +2020-04-14,El Paso,Texas,48141,346,4 +2020-04-15,El Paso,Texas,48141,346,4 +2020-04-16,El Paso,Texas,48141,393,7 +2020-04-17,El Paso,Texas,48141,482,7 +2020-04-18,El Paso,Texas,48141,505,8 +2020-04-19,El Paso,Texas,48141,531,8 +2020-04-20,El Paso,Texas,48141,540,9 +2020-04-21,El Paso,Texas,48141,587,9 +2020-04-22,El Paso,Texas,48141,645,10 +2020-04-23,El Paso,Texas,48141,674,10 +2020-04-24,El Paso,Texas,48141,706,10 +2020-04-25,El Paso,Texas,48141,780,12 +2020-04-26,El Paso,Texas,48141,802,12 +2020-04-27,El Paso,Texas,48141,802,12 +2020-04-28,El Paso,Texas,48141,857,14 +2020-04-29,El Paso,Texas,48141,887,18 +2020-04-30,El Paso,Texas,48141,924,21 +2020-05-01,El Paso,Texas,48141,961,22 +2020-05-02,El Paso,Texas,48141,986,22 +2020-05-03,El Paso,Texas,48141,998,22 +2020-05-04,El Paso,Texas,48141,1029,22 +2020-05-05,El Paso,Texas,48141,1080,22 +2020-05-06,El Paso,Texas,48141,1119,23 +2020-05-07,El Paso,Texas,48141,1190,30 +2020-05-08,El Paso,Texas,48141,1276,32 +2020-05-09,El Paso,Texas,48141,1322,32 +2020-05-10,El Paso,Texas,48141,1340,33 +2020-05-11,El Paso,Texas,48141,1340,33 +2020-05-12,El Paso,Texas,48141,1413,33 +2020-05-13,El Paso,Texas,48141,1456,41 +2020-05-14,El Paso,Texas,48141,1607,43 +2020-05-15,El Paso,Texas,48141,1655,45 +2020-05-16,El Paso,Texas,48141,1726,46 +2020-05-17,El Paso,Texas,48141,1772,47 +2020-05-18,El Paso,Texas,48141,1800,47 +2020-05-19,El Paso,Texas,48141,1852,52 +2020-05-20,El Paso,Texas,48141,1930,54 +2020-05-21,El Paso,Texas,48141,2046,57 +2020-05-22,El Paso,Texas,48141,2160,58 +2020-05-23,El Paso,Texas,48141,2265,58 +2020-05-24,El Paso,Texas,48141,2340,58 +2020-05-25,El Paso,Texas,48141,2376,58 +2020-05-26,El Paso,Texas,48141,2393,60 +2020-05-27,El Paso,Texas,48141,2461,68 +2020-05-28,El Paso,Texas,48141,2569,72 +2020-05-29,El Paso,Texas,48141,2623,77 +2020-05-30,El Paso,Texas,48141,2704,78 +2020-05-31,El Paso,Texas,48141,2764,78 +2020-06-01,El Paso,Texas,48141,2794,80 +2020-06-02,El Paso,Texas,48141,2833,83 +2020-06-03,El Paso,Texas,48141,2872,88 +2020-06-04,El Paso,Texas,48141,3069,89 +2020-06-05,El Paso,Texas,48141,3213,90 +2020-06-06,El Paso,Texas,48141,3298,90 +2020-06-07,El Paso,Texas,48141,3376,90 +2020-06-08,El Paso,Texas,48141,3453,91 +2020-06-09,El Paso,Texas,48141,3512,93 +2020-06-10,El Paso,Texas,48141,3582,93 +2020-06-11,El Paso,Texas,48141,3650,97 +2020-06-12,El Paso,Texas,48141,3695,98 +2020-06-13,El Paso,Texas,48141,3794,100 +2020-06-14,El Paso,Texas,48141,3834,100 +2020-06-15,El Paso,Texas,48141,3911,102 +2020-06-16,El Paso,Texas,48141,3948,109 +2020-06-17,El Paso,Texas,48141,3999,113 +2020-06-18,El Paso,Texas,48141,4088,119 +2020-06-19,El Paso,Texas,48141,4178,119 +2020-06-20,El Paso,Texas,48141,4340,120 +2020-06-21,El Paso,Texas,48141,4488,120 +2020-06-22,El Paso,Texas,48141,4553,120 +2020-06-23,El Paso,Texas,48141,4677,122 +2020-06-24,El Paso,Texas,48141,4809,122 +2020-06-25,El Paso,Texas,48141,4984,125 +2020-06-26,El Paso,Texas,48141,5217,126 +2020-06-27,El Paso,Texas,48141,5330,127 +2020-06-28,El Paso,Texas,48141,5614,127 +2020-06-29,El Paso,Texas,48141,5745,128 +2020-06-30,El Paso,Texas,48141,5928,130 +2020-07-01,El Paso,Texas,48141,6124,131 +2020-07-02,El Paso,Texas,48141,6389,132 +2020-07-03,El Paso,Texas,48141,6665,135 +2020-07-04,El Paso,Texas,48141,6953,135 +2020-07-05,El Paso,Texas,48141,7213,135 +2020-07-06,El Paso,Texas,48141,7461,135 +2020-07-07,El Paso,Texas,48141,7642,139 +2020-07-08,El Paso,Texas,48141,8035,144 +2020-07-09,El Paso,Texas,48141,8385,145 +2020-03-25,Erath,Texas,48143,1,0 +2020-03-26,Erath,Texas,48143,1,0 +2020-03-27,Erath,Texas,48143,1,0 +2020-03-28,Erath,Texas,48143,1,0 +2020-03-29,Erath,Texas,48143,1,0 +2020-03-30,Erath,Texas,48143,1,0 +2020-03-31,Erath,Texas,48143,1,0 +2020-04-01,Erath,Texas,48143,2,0 +2020-04-02,Erath,Texas,48143,2,0 +2020-04-03,Erath,Texas,48143,3,1 +2020-04-04,Erath,Texas,48143,7,1 +2020-04-05,Erath,Texas,48143,7,1 +2020-04-06,Erath,Texas,48143,7,1 +2020-04-07,Erath,Texas,48143,8,1 +2020-04-08,Erath,Texas,48143,8,1 +2020-04-09,Erath,Texas,48143,10,1 +2020-04-10,Erath,Texas,48143,10,1 +2020-04-11,Erath,Texas,48143,12,1 +2020-04-12,Erath,Texas,48143,12,1 +2020-04-13,Erath,Texas,48143,12,1 +2020-04-14,Erath,Texas,48143,12,1 +2020-04-15,Erath,Texas,48143,12,1 +2020-04-16,Erath,Texas,48143,12,1 +2020-04-17,Erath,Texas,48143,12,1 +2020-04-18,Erath,Texas,48143,12,1 +2020-04-19,Erath,Texas,48143,12,1 +2020-04-20,Erath,Texas,48143,12,1 +2020-04-21,Erath,Texas,48143,12,1 +2020-04-22,Erath,Texas,48143,12,1 +2020-04-23,Erath,Texas,48143,12,1 +2020-04-24,Erath,Texas,48143,12,1 +2020-04-25,Erath,Texas,48143,12,1 +2020-04-26,Erath,Texas,48143,12,1 +2020-04-27,Erath,Texas,48143,12,1 +2020-04-28,Erath,Texas,48143,12,1 +2020-04-29,Erath,Texas,48143,12,1 +2020-04-30,Erath,Texas,48143,12,1 +2020-05-01,Erath,Texas,48143,12,1 +2020-05-02,Erath,Texas,48143,12,1 +2020-05-03,Erath,Texas,48143,12,1 +2020-05-04,Erath,Texas,48143,12,1 +2020-05-05,Erath,Texas,48143,12,1 +2020-05-06,Erath,Texas,48143,13,1 +2020-05-07,Erath,Texas,48143,15,1 +2020-05-08,Erath,Texas,48143,14,1 +2020-05-09,Erath,Texas,48143,14,1 +2020-05-10,Erath,Texas,48143,14,1 +2020-05-11,Erath,Texas,48143,14,1 +2020-05-12,Erath,Texas,48143,14,1 +2020-05-13,Erath,Texas,48143,14,1 +2020-05-14,Erath,Texas,48143,15,1 +2020-05-15,Erath,Texas,48143,15,1 +2020-05-16,Erath,Texas,48143,15,1 +2020-05-17,Erath,Texas,48143,15,1 +2020-05-18,Erath,Texas,48143,15,1 +2020-05-19,Erath,Texas,48143,15,1 +2020-05-20,Erath,Texas,48143,15,1 +2020-05-21,Erath,Texas,48143,15,1 +2020-05-22,Erath,Texas,48143,15,1 +2020-05-23,Erath,Texas,48143,15,1 +2020-05-24,Erath,Texas,48143,15,1 +2020-05-25,Erath,Texas,48143,15,1 +2020-05-26,Erath,Texas,48143,16,1 +2020-05-27,Erath,Texas,48143,16,1 +2020-05-28,Erath,Texas,48143,16,1 +2020-05-29,Erath,Texas,48143,16,1 +2020-05-30,Erath,Texas,48143,17,1 +2020-05-31,Erath,Texas,48143,17,1 +2020-06-01,Erath,Texas,48143,17,1 +2020-06-02,Erath,Texas,48143,17,1 +2020-06-03,Erath,Texas,48143,17,1 +2020-06-04,Erath,Texas,48143,17,1 +2020-06-05,Erath,Texas,48143,25,1 +2020-06-06,Erath,Texas,48143,26,1 +2020-06-07,Erath,Texas,48143,26,1 +2020-06-08,Erath,Texas,48143,26,1 +2020-06-09,Erath,Texas,48143,29,1 +2020-06-10,Erath,Texas,48143,29,1 +2020-06-11,Erath,Texas,48143,30,1 +2020-06-12,Erath,Texas,48143,32,1 +2020-06-13,Erath,Texas,48143,36,1 +2020-06-14,Erath,Texas,48143,36,1 +2020-06-15,Erath,Texas,48143,36,1 +2020-06-16,Erath,Texas,48143,37,1 +2020-06-17,Erath,Texas,48143,41,1 +2020-06-18,Erath,Texas,48143,43,1 +2020-06-19,Erath,Texas,48143,44,1 +2020-06-20,Erath,Texas,48143,44,1 +2020-06-21,Erath,Texas,48143,44,1 +2020-06-22,Erath,Texas,48143,44,1 +2020-06-23,Erath,Texas,48143,44,1 +2020-06-24,Erath,Texas,48143,69,1 +2020-06-25,Erath,Texas,48143,69,1 +2020-06-26,Erath,Texas,48143,69,1 +2020-06-27,Erath,Texas,48143,69,1 +2020-06-28,Erath,Texas,48143,69,1 +2020-06-29,Erath,Texas,48143,69,1 +2020-06-30,Erath,Texas,48143,87,1 +2020-07-01,Erath,Texas,48143,92,1 +2020-07-02,Erath,Texas,48143,103,1 +2020-07-03,Erath,Texas,48143,133,1 +2020-07-04,Erath,Texas,48143,146,1 +2020-07-05,Erath,Texas,48143,146,1 +2020-07-06,Erath,Texas,48143,146,1 +2020-07-07,Erath,Texas,48143,160,1 +2020-07-08,Erath,Texas,48143,186,1 +2020-07-09,Erath,Texas,48143,200,1 +2020-03-24,Falls,Texas,48145,1,0 +2020-03-25,Falls,Texas,48145,1,0 +2020-03-26,Falls,Texas,48145,1,0 +2020-03-27,Falls,Texas,48145,1,0 +2020-03-28,Falls,Texas,48145,1,0 +2020-03-29,Falls,Texas,48145,1,0 +2020-03-30,Falls,Texas,48145,1,0 +2020-03-31,Falls,Texas,48145,1,0 +2020-04-01,Falls,Texas,48145,1,0 +2020-04-02,Falls,Texas,48145,1,0 +2020-04-03,Falls,Texas,48145,1,0 +2020-04-04,Falls,Texas,48145,1,0 +2020-04-05,Falls,Texas,48145,1,0 +2020-04-06,Falls,Texas,48145,1,0 +2020-04-07,Falls,Texas,48145,1,0 +2020-04-08,Falls,Texas,48145,1,0 +2020-04-09,Falls,Texas,48145,1,0 +2020-04-10,Falls,Texas,48145,1,0 +2020-04-11,Falls,Texas,48145,1,0 +2020-04-12,Falls,Texas,48145,1,0 +2020-04-13,Falls,Texas,48145,1,0 +2020-04-14,Falls,Texas,48145,1,0 +2020-04-15,Falls,Texas,48145,1,0 +2020-04-16,Falls,Texas,48145,1,0 +2020-04-17,Falls,Texas,48145,1,0 +2020-04-18,Falls,Texas,48145,1,0 +2020-04-19,Falls,Texas,48145,1,0 +2020-04-20,Falls,Texas,48145,1,0 +2020-04-21,Falls,Texas,48145,1,0 +2020-04-22,Falls,Texas,48145,1,0 +2020-04-23,Falls,Texas,48145,1,0 +2020-04-24,Falls,Texas,48145,1,0 +2020-04-25,Falls,Texas,48145,1,0 +2020-04-26,Falls,Texas,48145,2,0 +2020-04-27,Falls,Texas,48145,3,0 +2020-04-28,Falls,Texas,48145,3,0 +2020-04-29,Falls,Texas,48145,4,0 +2020-04-30,Falls,Texas,48145,4,0 +2020-05-01,Falls,Texas,48145,4,0 +2020-05-02,Falls,Texas,48145,4,0 +2020-05-03,Falls,Texas,48145,4,0 +2020-05-04,Falls,Texas,48145,4,0 +2020-05-05,Falls,Texas,48145,6,0 +2020-05-06,Falls,Texas,48145,6,0 +2020-05-07,Falls,Texas,48145,6,0 +2020-05-08,Falls,Texas,48145,6,0 +2020-05-09,Falls,Texas,48145,6,0 +2020-05-10,Falls,Texas,48145,6,0 +2020-05-11,Falls,Texas,48145,6,0 +2020-05-12,Falls,Texas,48145,6,0 +2020-05-13,Falls,Texas,48145,6,0 +2020-05-14,Falls,Texas,48145,6,0 +2020-05-15,Falls,Texas,48145,6,0 +2020-05-16,Falls,Texas,48145,6,0 +2020-05-17,Falls,Texas,48145,6,0 +2020-05-18,Falls,Texas,48145,6,0 +2020-05-19,Falls,Texas,48145,6,0 +2020-05-20,Falls,Texas,48145,6,0 +2020-05-21,Falls,Texas,48145,6,0 +2020-05-22,Falls,Texas,48145,6,0 +2020-05-23,Falls,Texas,48145,6,0 +2020-05-24,Falls,Texas,48145,6,0 +2020-05-25,Falls,Texas,48145,6,0 +2020-05-26,Falls,Texas,48145,6,0 +2020-05-27,Falls,Texas,48145,6,0 +2020-05-28,Falls,Texas,48145,6,0 +2020-05-29,Falls,Texas,48145,6,0 +2020-05-30,Falls,Texas,48145,7,0 +2020-05-31,Falls,Texas,48145,7,0 +2020-06-01,Falls,Texas,48145,7,0 +2020-06-02,Falls,Texas,48145,9,0 +2020-06-03,Falls,Texas,48145,9,0 +2020-06-04,Falls,Texas,48145,10,0 +2020-06-05,Falls,Texas,48145,11,0 +2020-06-06,Falls,Texas,48145,11,0 +2020-06-07,Falls,Texas,48145,11,0 +2020-06-08,Falls,Texas,48145,11,0 +2020-06-09,Falls,Texas,48145,13,0 +2020-06-10,Falls,Texas,48145,13,0 +2020-06-11,Falls,Texas,48145,14,0 +2020-06-12,Falls,Texas,48145,14,0 +2020-06-13,Falls,Texas,48145,14,0 +2020-06-14,Falls,Texas,48145,17,0 +2020-06-15,Falls,Texas,48145,17,0 +2020-06-16,Falls,Texas,48145,18,0 +2020-06-17,Falls,Texas,48145,19,0 +2020-06-18,Falls,Texas,48145,21,0 +2020-06-19,Falls,Texas,48145,22,0 +2020-06-20,Falls,Texas,48145,22,0 +2020-06-21,Falls,Texas,48145,22,0 +2020-06-22,Falls,Texas,48145,23,0 +2020-06-23,Falls,Texas,48145,25,0 +2020-06-24,Falls,Texas,48145,25,0 +2020-06-25,Falls,Texas,48145,25,0 +2020-06-26,Falls,Texas,48145,25,0 +2020-06-27,Falls,Texas,48145,25,0 +2020-06-28,Falls,Texas,48145,26,0 +2020-06-29,Falls,Texas,48145,28,0 +2020-06-30,Falls,Texas,48145,29,0 +2020-07-01,Falls,Texas,48145,31,0 +2020-07-02,Falls,Texas,48145,31,0 +2020-07-03,Falls,Texas,48145,31,0 +2020-07-04,Falls,Texas,48145,34,0 +2020-07-05,Falls,Texas,48145,34,0 +2020-07-06,Falls,Texas,48145,35,0 +2020-07-07,Falls,Texas,48145,35,0 +2020-07-08,Falls,Texas,48145,44,0 +2020-07-09,Falls,Texas,48145,46,0 +2020-03-20,Fannin,Texas,48147,1,0 +2020-03-21,Fannin,Texas,48147,1,0 +2020-03-22,Fannin,Texas,48147,1,0 +2020-03-23,Fannin,Texas,48147,1,0 +2020-03-24,Fannin,Texas,48147,1,0 +2020-03-25,Fannin,Texas,48147,1,0 +2020-03-26,Fannin,Texas,48147,1,0 +2020-03-27,Fannin,Texas,48147,1,0 +2020-03-28,Fannin,Texas,48147,1,0 +2020-03-29,Fannin,Texas,48147,1,0 +2020-03-30,Fannin,Texas,48147,1,0 +2020-03-31,Fannin,Texas,48147,1,0 +2020-04-01,Fannin,Texas,48147,1,0 +2020-04-02,Fannin,Texas,48147,1,0 +2020-04-03,Fannin,Texas,48147,2,0 +2020-04-04,Fannin,Texas,48147,2,0 +2020-04-05,Fannin,Texas,48147,2,0 +2020-04-06,Fannin,Texas,48147,2,0 +2020-04-07,Fannin,Texas,48147,2,0 +2020-04-08,Fannin,Texas,48147,2,0 +2020-04-09,Fannin,Texas,48147,4,0 +2020-04-10,Fannin,Texas,48147,5,0 +2020-04-11,Fannin,Texas,48147,5,0 +2020-04-12,Fannin,Texas,48147,5,0 +2020-04-13,Fannin,Texas,48147,5,0 +2020-04-14,Fannin,Texas,48147,5,0 +2020-04-15,Fannin,Texas,48147,5,0 +2020-04-16,Fannin,Texas,48147,5,0 +2020-04-17,Fannin,Texas,48147,5,0 +2020-04-18,Fannin,Texas,48147,7,0 +2020-04-19,Fannin,Texas,48147,7,0 +2020-04-20,Fannin,Texas,48147,8,0 +2020-04-21,Fannin,Texas,48147,9,0 +2020-04-22,Fannin,Texas,48147,12,0 +2020-04-23,Fannin,Texas,48147,13,0 +2020-04-24,Fannin,Texas,48147,13,0 +2020-04-25,Fannin,Texas,48147,15,0 +2020-04-26,Fannin,Texas,48147,15,0 +2020-04-27,Fannin,Texas,48147,16,0 +2020-04-28,Fannin,Texas,48147,17,0 +2020-04-29,Fannin,Texas,48147,18,0 +2020-04-30,Fannin,Texas,48147,18,0 +2020-05-01,Fannin,Texas,48147,18,0 +2020-05-02,Fannin,Texas,48147,19,0 +2020-05-03,Fannin,Texas,48147,19,0 +2020-05-04,Fannin,Texas,48147,20,0 +2020-05-05,Fannin,Texas,48147,20,0 +2020-05-06,Fannin,Texas,48147,22,1 +2020-05-07,Fannin,Texas,48147,23,1 +2020-05-08,Fannin,Texas,48147,23,1 +2020-05-09,Fannin,Texas,48147,23,1 +2020-05-10,Fannin,Texas,48147,23,1 +2020-05-11,Fannin,Texas,48147,23,1 +2020-05-12,Fannin,Texas,48147,23,1 +2020-05-13,Fannin,Texas,48147,24,1 +2020-05-14,Fannin,Texas,48147,24,1 +2020-05-15,Fannin,Texas,48147,24,1 +2020-05-16,Fannin,Texas,48147,25,2 +2020-05-17,Fannin,Texas,48147,25,2 +2020-05-18,Fannin,Texas,48147,25,2 +2020-05-19,Fannin,Texas,48147,27,2 +2020-05-20,Fannin,Texas,48147,28,2 +2020-05-21,Fannin,Texas,48147,29,2 +2020-05-22,Fannin,Texas,48147,29,2 +2020-05-23,Fannin,Texas,48147,34,2 +2020-05-24,Fannin,Texas,48147,34,2 +2020-05-25,Fannin,Texas,48147,34,2 +2020-05-26,Fannin,Texas,48147,37,2 +2020-05-27,Fannin,Texas,48147,37,2 +2020-05-28,Fannin,Texas,48147,37,2 +2020-05-29,Fannin,Texas,48147,38,2 +2020-05-30,Fannin,Texas,48147,41,2 +2020-05-31,Fannin,Texas,48147,41,2 +2020-06-01,Fannin,Texas,48147,41,2 +2020-06-02,Fannin,Texas,48147,40,2 +2020-06-03,Fannin,Texas,48147,41,2 +2020-06-04,Fannin,Texas,48147,41,2 +2020-06-05,Fannin,Texas,48147,42,2 +2020-06-06,Fannin,Texas,48147,43,2 +2020-06-07,Fannin,Texas,48147,43,2 +2020-06-08,Fannin,Texas,48147,43,2 +2020-06-09,Fannin,Texas,48147,49,2 +2020-06-10,Fannin,Texas,48147,50,2 +2020-06-11,Fannin,Texas,48147,51,2 +2020-06-12,Fannin,Texas,48147,52,2 +2020-06-13,Fannin,Texas,48147,54,2 +2020-06-14,Fannin,Texas,48147,54,2 +2020-06-15,Fannin,Texas,48147,54,2 +2020-06-16,Fannin,Texas,48147,55,6 +2020-06-17,Fannin,Texas,48147,59,6 +2020-06-18,Fannin,Texas,48147,65,6 +2020-06-19,Fannin,Texas,48147,65,6 +2020-06-20,Fannin,Texas,48147,65,6 +2020-06-21,Fannin,Texas,48147,65,6 +2020-06-22,Fannin,Texas,48147,65,6 +2020-06-23,Fannin,Texas,48147,67,7 +2020-06-24,Fannin,Texas,48147,82,7 +2020-06-25,Fannin,Texas,48147,82,7 +2020-06-26,Fannin,Texas,48147,82,7 +2020-06-27,Fannin,Texas,48147,82,7 +2020-06-28,Fannin,Texas,48147,82,7 +2020-06-29,Fannin,Texas,48147,82,7 +2020-06-30,Fannin,Texas,48147,88,7 +2020-07-01,Fannin,Texas,48147,91,7 +2020-07-02,Fannin,Texas,48147,96,7 +2020-07-03,Fannin,Texas,48147,109,7 +2020-07-04,Fannin,Texas,48147,112,7 +2020-07-05,Fannin,Texas,48147,112,7 +2020-07-06,Fannin,Texas,48147,112,7 +2020-07-07,Fannin,Texas,48147,122,7 +2020-07-08,Fannin,Texas,48147,122,8 +2020-07-09,Fannin,Texas,48147,130,8 +2020-03-25,Fayette,Texas,48149,1,0 +2020-03-26,Fayette,Texas,48149,1,0 +2020-03-27,Fayette,Texas,48149,1,0 +2020-03-28,Fayette,Texas,48149,1,0 +2020-03-29,Fayette,Texas,48149,1,0 +2020-03-30,Fayette,Texas,48149,2,0 +2020-03-31,Fayette,Texas,48149,2,0 +2020-04-01,Fayette,Texas,48149,4,0 +2020-04-02,Fayette,Texas,48149,4,0 +2020-04-03,Fayette,Texas,48149,10,0 +2020-04-04,Fayette,Texas,48149,11,0 +2020-04-05,Fayette,Texas,48149,11,0 +2020-04-06,Fayette,Texas,48149,16,0 +2020-04-07,Fayette,Texas,48149,16,0 +2020-04-08,Fayette,Texas,48149,16,0 +2020-04-09,Fayette,Texas,48149,17,0 +2020-04-10,Fayette,Texas,48149,17,0 +2020-04-11,Fayette,Texas,48149,17,0 +2020-04-12,Fayette,Texas,48149,17,0 +2020-04-13,Fayette,Texas,48149,17,0 +2020-04-14,Fayette,Texas,48149,17,0 +2020-04-15,Fayette,Texas,48149,17,0 +2020-04-16,Fayette,Texas,48149,14,0 +2020-04-17,Fayette,Texas,48149,15,0 +2020-04-18,Fayette,Texas,48149,15,0 +2020-04-19,Fayette,Texas,48149,15,0 +2020-04-20,Fayette,Texas,48149,15,0 +2020-04-21,Fayette,Texas,48149,14,0 +2020-04-22,Fayette,Texas,48149,15,0 +2020-04-23,Fayette,Texas,48149,15,0 +2020-04-24,Fayette,Texas,48149,15,1 +2020-04-25,Fayette,Texas,48149,15,1 +2020-04-26,Fayette,Texas,48149,15,1 +2020-04-27,Fayette,Texas,48149,15,1 +2020-04-28,Fayette,Texas,48149,15,1 +2020-04-29,Fayette,Texas,48149,15,1 +2020-04-30,Fayette,Texas,48149,15,1 +2020-05-01,Fayette,Texas,48149,15,1 +2020-05-02,Fayette,Texas,48149,15,1 +2020-05-03,Fayette,Texas,48149,15,1 +2020-05-04,Fayette,Texas,48149,15,1 +2020-05-05,Fayette,Texas,48149,17,1 +2020-05-06,Fayette,Texas,48149,17,1 +2020-05-07,Fayette,Texas,48149,19,1 +2020-05-08,Fayette,Texas,48149,21,1 +2020-05-09,Fayette,Texas,48149,24,1 +2020-05-10,Fayette,Texas,48149,25,1 +2020-05-11,Fayette,Texas,48149,25,1 +2020-05-12,Fayette,Texas,48149,26,1 +2020-05-13,Fayette,Texas,48149,26,1 +2020-05-14,Fayette,Texas,48149,28,2 +2020-05-15,Fayette,Texas,48149,26,2 +2020-05-16,Fayette,Texas,48149,29,2 +2020-05-17,Fayette,Texas,48149,29,2 +2020-05-18,Fayette,Texas,48149,29,2 +2020-05-19,Fayette,Texas,48149,31,2 +2020-05-20,Fayette,Texas,48149,31,2 +2020-05-21,Fayette,Texas,48149,31,2 +2020-05-22,Fayette,Texas,48149,31,2 +2020-05-23,Fayette,Texas,48149,32,2 +2020-05-24,Fayette,Texas,48149,32,2 +2020-05-25,Fayette,Texas,48149,32,2 +2020-05-26,Fayette,Texas,48149,32,2 +2020-05-27,Fayette,Texas,48149,32,2 +2020-05-28,Fayette,Texas,48149,34,2 +2020-05-29,Fayette,Texas,48149,34,2 +2020-05-30,Fayette,Texas,48149,34,2 +2020-05-31,Fayette,Texas,48149,34,2 +2020-06-01,Fayette,Texas,48149,34,2 +2020-06-02,Fayette,Texas,48149,34,2 +2020-06-03,Fayette,Texas,48149,36,2 +2020-06-04,Fayette,Texas,48149,38,2 +2020-06-05,Fayette,Texas,48149,38,2 +2020-06-06,Fayette,Texas,48149,38,2 +2020-06-07,Fayette,Texas,48149,38,2 +2020-06-08,Fayette,Texas,48149,38,2 +2020-06-09,Fayette,Texas,48149,38,2 +2020-06-10,Fayette,Texas,48149,39,2 +2020-06-11,Fayette,Texas,48149,43,2 +2020-06-12,Fayette,Texas,48149,44,2 +2020-06-13,Fayette,Texas,48149,43,2 +2020-06-14,Fayette,Texas,48149,44,2 +2020-06-15,Fayette,Texas,48149,44,2 +2020-06-16,Fayette,Texas,48149,45,2 +2020-06-17,Fayette,Texas,48149,52,2 +2020-06-18,Fayette,Texas,48149,51,2 +2020-06-19,Fayette,Texas,48149,52,2 +2020-06-20,Fayette,Texas,48149,58,2 +2020-06-21,Fayette,Texas,48149,60,2 +2020-06-22,Fayette,Texas,48149,66,2 +2020-06-23,Fayette,Texas,48149,71,2 +2020-06-24,Fayette,Texas,48149,75,2 +2020-06-25,Fayette,Texas,48149,76,2 +2020-06-26,Fayette,Texas,48149,75,2 +2020-06-27,Fayette,Texas,48149,75,2 +2020-06-28,Fayette,Texas,48149,80,2 +2020-06-29,Fayette,Texas,48149,86,2 +2020-06-30,Fayette,Texas,48149,86,2 +2020-07-01,Fayette,Texas,48149,90,2 +2020-07-02,Fayette,Texas,48149,95,2 +2020-07-03,Fayette,Texas,48149,96,2 +2020-07-04,Fayette,Texas,48149,104,3 +2020-07-05,Fayette,Texas,48149,104,3 +2020-07-06,Fayette,Texas,48149,104,3 +2020-07-07,Fayette,Texas,48149,104,3 +2020-07-08,Fayette,Texas,48149,134,3 +2020-07-09,Fayette,Texas,48149,136,3 +2020-05-15,Fisher,Texas,48151,1,0 +2020-05-16,Fisher,Texas,48151,1,0 +2020-05-17,Fisher,Texas,48151,1,0 +2020-05-18,Fisher,Texas,48151,1,0 +2020-05-19,Fisher,Texas,48151,2,0 +2020-05-20,Fisher,Texas,48151,2,0 +2020-05-21,Fisher,Texas,48151,2,0 +2020-05-22,Fisher,Texas,48151,2,0 +2020-05-23,Fisher,Texas,48151,2,1 +2020-05-24,Fisher,Texas,48151,2,1 +2020-05-25,Fisher,Texas,48151,2,1 +2020-05-26,Fisher,Texas,48151,2,1 +2020-05-27,Fisher,Texas,48151,2,1 +2020-05-28,Fisher,Texas,48151,2,1 +2020-05-29,Fisher,Texas,48151,2,1 +2020-05-30,Fisher,Texas,48151,2,1 +2020-05-31,Fisher,Texas,48151,2,1 +2020-06-01,Fisher,Texas,48151,2,1 +2020-06-02,Fisher,Texas,48151,2,1 +2020-06-03,Fisher,Texas,48151,2,1 +2020-06-04,Fisher,Texas,48151,2,1 +2020-06-05,Fisher,Texas,48151,2,1 +2020-06-06,Fisher,Texas,48151,2,1 +2020-06-07,Fisher,Texas,48151,2,1 +2020-06-08,Fisher,Texas,48151,2,1 +2020-06-09,Fisher,Texas,48151,2,1 +2020-06-10,Fisher,Texas,48151,2,1 +2020-06-11,Fisher,Texas,48151,2,1 +2020-06-12,Fisher,Texas,48151,2,1 +2020-06-13,Fisher,Texas,48151,2,1 +2020-06-14,Fisher,Texas,48151,2,1 +2020-06-15,Fisher,Texas,48151,2,1 +2020-06-16,Fisher,Texas,48151,2,1 +2020-06-17,Fisher,Texas,48151,2,1 +2020-06-18,Fisher,Texas,48151,2,1 +2020-06-19,Fisher,Texas,48151,2,1 +2020-06-20,Fisher,Texas,48151,2,1 +2020-06-21,Fisher,Texas,48151,2,1 +2020-06-22,Fisher,Texas,48151,2,1 +2020-06-23,Fisher,Texas,48151,2,1 +2020-06-24,Fisher,Texas,48151,2,1 +2020-06-25,Fisher,Texas,48151,2,1 +2020-06-26,Fisher,Texas,48151,2,1 +2020-06-27,Fisher,Texas,48151,5,1 +2020-06-28,Fisher,Texas,48151,5,1 +2020-06-29,Fisher,Texas,48151,5,1 +2020-06-30,Fisher,Texas,48151,5,1 +2020-07-01,Fisher,Texas,48151,5,1 +2020-07-02,Fisher,Texas,48151,8,1 +2020-07-03,Fisher,Texas,48151,10,1 +2020-07-04,Fisher,Texas,48151,10,1 +2020-07-05,Fisher,Texas,48151,11,1 +2020-07-06,Fisher,Texas,48151,11,1 +2020-07-07,Fisher,Texas,48151,11,1 +2020-07-08,Fisher,Texas,48151,11,1 +2020-07-09,Fisher,Texas,48151,11,1 +2020-04-08,Floyd,Texas,48153,1,0 +2020-04-09,Floyd,Texas,48153,1,0 +2020-04-10,Floyd,Texas,48153,1,0 +2020-04-11,Floyd,Texas,48153,1,0 +2020-04-12,Floyd,Texas,48153,1,0 +2020-04-13,Floyd,Texas,48153,1,0 +2020-04-14,Floyd,Texas,48153,1,0 +2020-04-15,Floyd,Texas,48153,2,0 +2020-04-16,Floyd,Texas,48153,2,0 +2020-04-17,Floyd,Texas,48153,2,0 +2020-04-18,Floyd,Texas,48153,2,0 +2020-04-19,Floyd,Texas,48153,2,0 +2020-04-20,Floyd,Texas,48153,2,0 +2020-04-21,Floyd,Texas,48153,2,0 +2020-04-22,Floyd,Texas,48153,2,0 +2020-04-23,Floyd,Texas,48153,3,0 +2020-04-24,Floyd,Texas,48153,3,0 +2020-04-25,Floyd,Texas,48153,3,0 +2020-04-26,Floyd,Texas,48153,3,0 +2020-04-27,Floyd,Texas,48153,3,0 +2020-04-28,Floyd,Texas,48153,3,0 +2020-04-29,Floyd,Texas,48153,3,0 +2020-04-30,Floyd,Texas,48153,3,0 +2020-05-01,Floyd,Texas,48153,3,0 +2020-05-02,Floyd,Texas,48153,3,0 +2020-05-03,Floyd,Texas,48153,3,0 +2020-05-04,Floyd,Texas,48153,3,0 +2020-05-05,Floyd,Texas,48153,4,0 +2020-05-06,Floyd,Texas,48153,4,0 +2020-05-07,Floyd,Texas,48153,4,0 +2020-05-08,Floyd,Texas,48153,4,0 +2020-05-09,Floyd,Texas,48153,4,0 +2020-05-10,Floyd,Texas,48153,4,0 +2020-05-11,Floyd,Texas,48153,4,0 +2020-05-12,Floyd,Texas,48153,4,0 +2020-05-13,Floyd,Texas,48153,4,0 +2020-05-14,Floyd,Texas,48153,4,0 +2020-05-15,Floyd,Texas,48153,4,0 +2020-05-16,Floyd,Texas,48153,4,0 +2020-05-17,Floyd,Texas,48153,4,0 +2020-05-18,Floyd,Texas,48153,4,0 +2020-05-19,Floyd,Texas,48153,5,0 +2020-05-20,Floyd,Texas,48153,5,0 +2020-05-21,Floyd,Texas,48153,5,0 +2020-05-22,Floyd,Texas,48153,5,0 +2020-05-23,Floyd,Texas,48153,5,0 +2020-05-24,Floyd,Texas,48153,5,0 +2020-05-25,Floyd,Texas,48153,5,0 +2020-05-26,Floyd,Texas,48153,5,0 +2020-05-27,Floyd,Texas,48153,7,0 +2020-05-28,Floyd,Texas,48153,8,0 +2020-05-29,Floyd,Texas,48153,11,0 +2020-05-30,Floyd,Texas,48153,11,0 +2020-05-31,Floyd,Texas,48153,11,0 +2020-06-01,Floyd,Texas,48153,11,0 +2020-06-02,Floyd,Texas,48153,11,0 +2020-06-03,Floyd,Texas,48153,15,0 +2020-06-04,Floyd,Texas,48153,15,0 +2020-06-05,Floyd,Texas,48153,16,0 +2020-06-06,Floyd,Texas,48153,16,0 +2020-06-07,Floyd,Texas,48153,16,0 +2020-06-08,Floyd,Texas,48153,16,0 +2020-06-09,Floyd,Texas,48153,16,0 +2020-06-10,Floyd,Texas,48153,16,0 +2020-06-11,Floyd,Texas,48153,16,0 +2020-06-12,Floyd,Texas,48153,16,1 +2020-06-13,Floyd,Texas,48153,16,1 +2020-06-14,Floyd,Texas,48153,16,1 +2020-06-15,Floyd,Texas,48153,16,1 +2020-06-16,Floyd,Texas,48153,16,0 +2020-06-17,Floyd,Texas,48153,16,0 +2020-06-18,Floyd,Texas,48153,17,0 +2020-06-19,Floyd,Texas,48153,18,0 +2020-06-20,Floyd,Texas,48153,18,0 +2020-06-21,Floyd,Texas,48153,18,0 +2020-06-22,Floyd,Texas,48153,19,0 +2020-06-23,Floyd,Texas,48153,21,0 +2020-06-24,Floyd,Texas,48153,21,0 +2020-06-25,Floyd,Texas,48153,22,0 +2020-06-26,Floyd,Texas,48153,22,0 +2020-06-27,Floyd,Texas,48153,22,0 +2020-06-28,Floyd,Texas,48153,22,0 +2020-06-29,Floyd,Texas,48153,22,0 +2020-06-30,Floyd,Texas,48153,28,0 +2020-07-01,Floyd,Texas,48153,31,0 +2020-07-02,Floyd,Texas,48153,34,0 +2020-07-03,Floyd,Texas,48153,34,0 +2020-07-04,Floyd,Texas,48153,36,0 +2020-07-05,Floyd,Texas,48153,36,0 +2020-07-06,Floyd,Texas,48153,36,0 +2020-07-07,Floyd,Texas,48153,46,0 +2020-07-08,Floyd,Texas,48153,49,0 +2020-07-09,Floyd,Texas,48153,49,0 +2020-03-04,Fort Bend,Texas,48157,1,0 +2020-03-05,Fort Bend,Texas,48157,1,0 +2020-03-06,Fort Bend,Texas,48157,3,0 +2020-03-07,Fort Bend,Texas,48157,3,0 +2020-03-08,Fort Bend,Texas,48157,6,0 +2020-03-09,Fort Bend,Texas,48157,6,0 +2020-03-10,Fort Bend,Texas,48157,6,0 +2020-03-11,Fort Bend,Texas,48157,6,0 +2020-03-12,Fort Bend,Texas,48157,6,0 +2020-03-13,Fort Bend,Texas,48157,9,0 +2020-03-14,Fort Bend,Texas,48157,9,0 +2020-03-15,Fort Bend,Texas,48157,9,0 +2020-03-16,Fort Bend,Texas,48157,9,0 +2020-03-17,Fort Bend,Texas,48157,10,0 +2020-03-18,Fort Bend,Texas,48157,12,0 +2020-03-19,Fort Bend,Texas,48157,19,0 +2020-03-20,Fort Bend,Texas,48157,24,0 +2020-03-21,Fort Bend,Texas,48157,29,0 +2020-03-22,Fort Bend,Texas,48157,29,0 +2020-03-23,Fort Bend,Texas,48157,42,0 +2020-03-24,Fort Bend,Texas,48157,42,0 +2020-03-25,Fort Bend,Texas,48157,54,0 +2020-03-26,Fort Bend,Texas,48157,86,0 +2020-03-27,Fort Bend,Texas,48157,101,1 +2020-03-28,Fort Bend,Texas,48157,101,1 +2020-03-29,Fort Bend,Texas,48157,119,1 +2020-03-30,Fort Bend,Texas,48157,119,1 +2020-03-31,Fort Bend,Texas,48157,138,2 +2020-04-01,Fort Bend,Texas,48157,163,2 +2020-04-02,Fort Bend,Texas,48157,194,2 +2020-04-03,Fort Bend,Texas,48157,221,2 +2020-04-04,Fort Bend,Texas,48157,268,5 +2020-04-05,Fort Bend,Texas,48157,268,5 +2020-04-06,Fort Bend,Texas,48157,318,6 +2020-04-07,Fort Bend,Texas,48157,318,6 +2020-04-08,Fort Bend,Texas,48157,417,7 +2020-04-09,Fort Bend,Texas,48157,432,7 +2020-04-10,Fort Bend,Texas,48157,485,10 +2020-04-11,Fort Bend,Texas,48157,518,11 +2020-04-12,Fort Bend,Texas,48157,536,11 +2020-04-13,Fort Bend,Texas,48157,543,12 +2020-04-14,Fort Bend,Texas,48157,577,14 +2020-04-15,Fort Bend,Texas,48157,627,15 +2020-04-16,Fort Bend,Texas,48157,656,16 +2020-04-17,Fort Bend,Texas,48157,695,17 +2020-04-18,Fort Bend,Texas,48157,755,17 +2020-04-19,Fort Bend,Texas,48157,783,17 +2020-04-20,Fort Bend,Texas,48157,799,18 +2020-04-21,Fort Bend,Texas,48157,808,18 +2020-04-22,Fort Bend,Texas,48157,870,18 +2020-04-23,Fort Bend,Texas,48157,889,20 +2020-04-24,Fort Bend,Texas,48157,905,21 +2020-04-25,Fort Bend,Texas,48157,919,21 +2020-04-26,Fort Bend,Texas,48157,952,21 +2020-04-27,Fort Bend,Texas,48157,957,22 +2020-04-28,Fort Bend,Texas,48157,973,24 +2020-04-29,Fort Bend,Texas,48157,1018,24 +2020-04-30,Fort Bend,Texas,48157,1052,26 +2020-05-01,Fort Bend,Texas,48157,1079,26 +2020-05-02,Fort Bend,Texas,48157,1133,27 +2020-05-03,Fort Bend,Texas,48157,1183,28 +2020-05-04,Fort Bend,Texas,48157,1187,28 +2020-05-05,Fort Bend,Texas,48157,1245,30 +2020-05-06,Fort Bend,Texas,48157,1287,32 +2020-05-07,Fort Bend,Texas,48157,1332,33 +2020-05-08,Fort Bend,Texas,48157,1357,36 +2020-05-09,Fort Bend,Texas,48157,1370,36 +2020-05-10,Fort Bend,Texas,48157,1384,38 +2020-05-11,Fort Bend,Texas,48157,1385,38 +2020-05-12,Fort Bend,Texas,48157,1404,40 +2020-05-13,Fort Bend,Texas,48157,1452,40 +2020-05-14,Fort Bend,Texas,48157,1471,40 +2020-05-15,Fort Bend,Texas,48157,1510,40 +2020-05-16,Fort Bend,Texas,48157,1558,40 +2020-05-17,Fort Bend,Texas,48157,1559,40 +2020-05-18,Fort Bend,Texas,48157,1559,40 +2020-05-19,Fort Bend,Texas,48157,1581,40 +2020-05-20,Fort Bend,Texas,48157,1621,40 +2020-05-21,Fort Bend,Texas,48157,1652,41 +2020-05-22,Fort Bend,Texas,48157,1661,41 +2020-05-23,Fort Bend,Texas,48157,1676,41 +2020-05-24,Fort Bend,Texas,48157,1685,41 +2020-05-25,Fort Bend,Texas,48157,1685,41 +2020-05-26,Fort Bend,Texas,48157,1732,41 +2020-05-27,Fort Bend,Texas,48157,1766,41 +2020-05-28,Fort Bend,Texas,48157,1783,41 +2020-05-29,Fort Bend,Texas,48157,1832,41 +2020-05-30,Fort Bend,Texas,48157,1861,44 +2020-05-31,Fort Bend,Texas,48157,1861,44 +2020-06-01,Fort Bend,Texas,48157,1881,44 +2020-06-02,Fort Bend,Texas,48157,1916,45 +2020-06-03,Fort Bend,Texas,48157,1951,47 +2020-06-04,Fort Bend,Texas,48157,2032,47 +2020-06-05,Fort Bend,Texas,48157,2117,47 +2020-06-06,Fort Bend,Texas,48157,2117,47 +2020-06-07,Fort Bend,Texas,48157,2117,47 +2020-06-08,Fort Bend,Texas,48157,2138,47 +2020-06-09,Fort Bend,Texas,48157,2225,47 +2020-06-10,Fort Bend,Texas,48157,2299,47 +2020-06-11,Fort Bend,Texas,48157,2320,47 +2020-06-12,Fort Bend,Texas,48157,2358,47 +2020-06-13,Fort Bend,Texas,48157,2385,49 +2020-06-14,Fort Bend,Texas,48157,2385,49 +2020-06-15,Fort Bend,Texas,48157,2402,49 +2020-06-16,Fort Bend,Texas,48157,2496,50 +2020-06-17,Fort Bend,Texas,48157,2667,50 +2020-06-18,Fort Bend,Texas,48157,2726,50 +2020-06-19,Fort Bend,Texas,48157,2882,50 +2020-06-20,Fort Bend,Texas,48157,2951,50 +2020-06-21,Fort Bend,Texas,48157,3069,50 +2020-06-22,Fort Bend,Texas,48157,3132,50 +2020-06-23,Fort Bend,Texas,48157,3176,50 +2020-06-24,Fort Bend,Texas,48157,3267,51 +2020-06-25,Fort Bend,Texas,48157,3397,51 +2020-06-26,Fort Bend,Texas,48157,3645,52 +2020-06-27,Fort Bend,Texas,48157,3716,53 +2020-06-28,Fort Bend,Texas,48157,3716,53 +2020-06-29,Fort Bend,Texas,48157,3722,53 +2020-06-30,Fort Bend,Texas,48157,3782,54 +2020-07-01,Fort Bend,Texas,48157,3868,54 +2020-07-02,Fort Bend,Texas,48157,3999,56 +2020-07-03,Fort Bend,Texas,48157,4120,56 +2020-07-04,Fort Bend,Texas,48157,4120,56 +2020-07-05,Fort Bend,Texas,48157,4120,56 +2020-07-06,Fort Bend,Texas,48157,4286,57 +2020-07-07,Fort Bend,Texas,48157,4346,59 +2020-07-08,Fort Bend,Texas,48157,4413,60 +2020-07-09,Fort Bend,Texas,48157,4524,61 +2020-03-29,Franklin,Texas,48159,1,0 +2020-03-30,Franklin,Texas,48159,1,0 +2020-03-31,Franklin,Texas,48159,1,0 +2020-04-01,Franklin,Texas,48159,1,0 +2020-04-02,Franklin,Texas,48159,1,0 +2020-04-03,Franklin,Texas,48159,1,0 +2020-04-04,Franklin,Texas,48159,1,0 +2020-04-05,Franklin,Texas,48159,1,0 +2020-04-06,Franklin,Texas,48159,1,0 +2020-04-07,Franklin,Texas,48159,1,0 +2020-04-08,Franklin,Texas,48159,1,0 +2020-04-09,Franklin,Texas,48159,1,0 +2020-04-10,Franklin,Texas,48159,1,0 +2020-04-11,Franklin,Texas,48159,1,0 +2020-04-12,Franklin,Texas,48159,1,0 +2020-04-13,Franklin,Texas,48159,1,0 +2020-04-14,Franklin,Texas,48159,1,0 +2020-04-15,Franklin,Texas,48159,1,0 +2020-04-16,Franklin,Texas,48159,1,0 +2020-04-17,Franklin,Texas,48159,1,0 +2020-04-18,Franklin,Texas,48159,1,0 +2020-04-19,Franklin,Texas,48159,1,0 +2020-04-20,Franklin,Texas,48159,1,0 +2020-04-21,Franklin,Texas,48159,1,0 +2020-04-22,Franklin,Texas,48159,1,0 +2020-04-23,Franklin,Texas,48159,1,0 +2020-04-24,Franklin,Texas,48159,1,0 +2020-04-25,Franklin,Texas,48159,1,0 +2020-04-26,Franklin,Texas,48159,1,0 +2020-04-27,Franklin,Texas,48159,1,0 +2020-04-28,Franklin,Texas,48159,1,0 +2020-04-29,Franklin,Texas,48159,1,0 +2020-04-30,Franklin,Texas,48159,1,0 +2020-05-01,Franklin,Texas,48159,1,0 +2020-05-02,Franklin,Texas,48159,2,0 +2020-05-03,Franklin,Texas,48159,2,0 +2020-05-04,Franklin,Texas,48159,2,0 +2020-05-05,Franklin,Texas,48159,2,0 +2020-05-06,Franklin,Texas,48159,3,0 +2020-05-07,Franklin,Texas,48159,3,0 +2020-05-08,Franklin,Texas,48159,3,0 +2020-05-09,Franklin,Texas,48159,3,0 +2020-05-10,Franklin,Texas,48159,3,0 +2020-05-11,Franklin,Texas,48159,3,0 +2020-05-12,Franklin,Texas,48159,3,0 +2020-05-13,Franklin,Texas,48159,3,0 +2020-05-14,Franklin,Texas,48159,4,0 +2020-05-15,Franklin,Texas,48159,4,0 +2020-05-16,Franklin,Texas,48159,5,0 +2020-05-17,Franklin,Texas,48159,5,0 +2020-05-18,Franklin,Texas,48159,6,0 +2020-05-19,Franklin,Texas,48159,7,0 +2020-05-20,Franklin,Texas,48159,8,0 +2020-05-21,Franklin,Texas,48159,8,0 +2020-05-22,Franklin,Texas,48159,8,0 +2020-05-23,Franklin,Texas,48159,11,0 +2020-05-24,Franklin,Texas,48159,12,0 +2020-05-25,Franklin,Texas,48159,12,0 +2020-05-26,Franklin,Texas,48159,12,0 +2020-05-27,Franklin,Texas,48159,13,0 +2020-05-28,Franklin,Texas,48159,13,0 +2020-05-29,Franklin,Texas,48159,13,0 +2020-05-30,Franklin,Texas,48159,15,0 +2020-05-31,Franklin,Texas,48159,15,0 +2020-06-01,Franklin,Texas,48159,16,0 +2020-06-02,Franklin,Texas,48159,16,0 +2020-06-03,Franklin,Texas,48159,17,0 +2020-06-04,Franklin,Texas,48159,18,0 +2020-06-05,Franklin,Texas,48159,18,0 +2020-06-06,Franklin,Texas,48159,19,0 +2020-06-07,Franklin,Texas,48159,19,0 +2020-06-08,Franklin,Texas,48159,19,0 +2020-06-09,Franklin,Texas,48159,22,0 +2020-06-10,Franklin,Texas,48159,22,0 +2020-06-11,Franklin,Texas,48159,24,0 +2020-06-12,Franklin,Texas,48159,24,0 +2020-06-13,Franklin,Texas,48159,27,0 +2020-06-14,Franklin,Texas,48159,27,0 +2020-06-15,Franklin,Texas,48159,27,0 +2020-06-16,Franklin,Texas,48159,27,0 +2020-06-17,Franklin,Texas,48159,29,0 +2020-06-18,Franklin,Texas,48159,30,0 +2020-06-19,Franklin,Texas,48159,30,0 +2020-06-20,Franklin,Texas,48159,31,0 +2020-06-21,Franklin,Texas,48159,33,0 +2020-06-22,Franklin,Texas,48159,33,0 +2020-06-23,Franklin,Texas,48159,35,0 +2020-06-24,Franklin,Texas,48159,35,0 +2020-06-25,Franklin,Texas,48159,36,0 +2020-06-26,Franklin,Texas,48159,39,0 +2020-06-27,Franklin,Texas,48159,41,0 +2020-06-28,Franklin,Texas,48159,41,0 +2020-06-29,Franklin,Texas,48159,41,0 +2020-06-30,Franklin,Texas,48159,41,0 +2020-07-01,Franklin,Texas,48159,41,0 +2020-07-02,Franklin,Texas,48159,47,0 +2020-07-03,Franklin,Texas,48159,50,0 +2020-07-04,Franklin,Texas,48159,50,0 +2020-07-05,Franklin,Texas,48159,50,0 +2020-07-06,Franklin,Texas,48159,50,0 +2020-07-07,Franklin,Texas,48159,53,0 +2020-07-08,Franklin,Texas,48159,53,0 +2020-07-09,Franklin,Texas,48159,53,1 +2020-04-15,Freestone,Texas,48161,1,0 +2020-04-16,Freestone,Texas,48161,1,0 +2020-04-17,Freestone,Texas,48161,1,0 +2020-04-18,Freestone,Texas,48161,3,0 +2020-04-19,Freestone,Texas,48161,3,0 +2020-04-20,Freestone,Texas,48161,3,0 +2020-04-21,Freestone,Texas,48161,3,0 +2020-04-22,Freestone,Texas,48161,3,0 +2020-04-23,Freestone,Texas,48161,3,0 +2020-04-24,Freestone,Texas,48161,3,0 +2020-04-25,Freestone,Texas,48161,3,0 +2020-04-26,Freestone,Texas,48161,3,0 +2020-04-27,Freestone,Texas,48161,3,0 +2020-04-28,Freestone,Texas,48161,3,0 +2020-04-29,Freestone,Texas,48161,3,0 +2020-04-30,Freestone,Texas,48161,3,0 +2020-05-01,Freestone,Texas,48161,5,0 +2020-05-02,Freestone,Texas,48161,6,0 +2020-05-03,Freestone,Texas,48161,7,0 +2020-05-04,Freestone,Texas,48161,7,0 +2020-05-05,Freestone,Texas,48161,7,0 +2020-05-06,Freestone,Texas,48161,7,0 +2020-05-07,Freestone,Texas,48161,7,0 +2020-05-08,Freestone,Texas,48161,7,0 +2020-05-09,Freestone,Texas,48161,7,0 +2020-05-10,Freestone,Texas,48161,7,0 +2020-05-11,Freestone,Texas,48161,7,0 +2020-05-12,Freestone,Texas,48161,7,0 +2020-05-13,Freestone,Texas,48161,7,0 +2020-05-14,Freestone,Texas,48161,8,0 +2020-05-15,Freestone,Texas,48161,7,0 +2020-05-16,Freestone,Texas,48161,7,0 +2020-05-17,Freestone,Texas,48161,7,0 +2020-05-18,Freestone,Texas,48161,7,0 +2020-05-19,Freestone,Texas,48161,7,0 +2020-05-20,Freestone,Texas,48161,7,0 +2020-05-21,Freestone,Texas,48161,7,0 +2020-05-22,Freestone,Texas,48161,7,0 +2020-05-23,Freestone,Texas,48161,10,0 +2020-05-24,Freestone,Texas,48161,10,0 +2020-05-25,Freestone,Texas,48161,10,0 +2020-05-26,Freestone,Texas,48161,10,0 +2020-05-27,Freestone,Texas,48161,10,0 +2020-05-28,Freestone,Texas,48161,10,0 +2020-05-29,Freestone,Texas,48161,10,0 +2020-05-30,Freestone,Texas,48161,10,0 +2020-05-31,Freestone,Texas,48161,10,0 +2020-06-01,Freestone,Texas,48161,10,0 +2020-06-02,Freestone,Texas,48161,10,0 +2020-06-03,Freestone,Texas,48161,10,0 +2020-06-04,Freestone,Texas,48161,10,0 +2020-06-05,Freestone,Texas,48161,10,0 +2020-06-06,Freestone,Texas,48161,11,0 +2020-06-07,Freestone,Texas,48161,11,0 +2020-06-08,Freestone,Texas,48161,11,0 +2020-06-09,Freestone,Texas,48161,12,0 +2020-06-10,Freestone,Texas,48161,13,0 +2020-06-11,Freestone,Texas,48161,12,0 +2020-06-12,Freestone,Texas,48161,15,0 +2020-06-13,Freestone,Texas,48161,15,0 +2020-06-14,Freestone,Texas,48161,15,0 +2020-06-15,Freestone,Texas,48161,15,0 +2020-06-16,Freestone,Texas,48161,17,0 +2020-06-17,Freestone,Texas,48161,17,0 +2020-06-18,Freestone,Texas,48161,19,0 +2020-06-19,Freestone,Texas,48161,18,0 +2020-06-20,Freestone,Texas,48161,18,0 +2020-06-21,Freestone,Texas,48161,19,0 +2020-06-22,Freestone,Texas,48161,19,0 +2020-06-23,Freestone,Texas,48161,20,0 +2020-06-24,Freestone,Texas,48161,20,0 +2020-06-25,Freestone,Texas,48161,21,0 +2020-06-26,Freestone,Texas,48161,23,0 +2020-06-27,Freestone,Texas,48161,20,0 +2020-06-28,Freestone,Texas,48161,20,0 +2020-06-29,Freestone,Texas,48161,28,0 +2020-06-30,Freestone,Texas,48161,28,0 +2020-07-01,Freestone,Texas,48161,29,0 +2020-07-02,Freestone,Texas,48161,31,0 +2020-07-03,Freestone,Texas,48161,33,0 +2020-07-04,Freestone,Texas,48161,33,0 +2020-07-05,Freestone,Texas,48161,33,0 +2020-07-06,Freestone,Texas,48161,39,0 +2020-07-07,Freestone,Texas,48161,39,0 +2020-07-08,Freestone,Texas,48161,59,0 +2020-07-09,Freestone,Texas,48161,64,0 +2020-04-08,Frio,Texas,48163,1,0 +2020-04-09,Frio,Texas,48163,1,0 +2020-04-10,Frio,Texas,48163,1,0 +2020-04-11,Frio,Texas,48163,1,0 +2020-04-12,Frio,Texas,48163,1,0 +2020-04-13,Frio,Texas,48163,1,0 +2020-04-14,Frio,Texas,48163,1,0 +2020-04-15,Frio,Texas,48163,1,0 +2020-04-16,Frio,Texas,48163,1,0 +2020-04-17,Frio,Texas,48163,1,0 +2020-04-18,Frio,Texas,48163,1,0 +2020-04-19,Frio,Texas,48163,1,0 +2020-04-20,Frio,Texas,48163,1,0 +2020-04-21,Frio,Texas,48163,1,0 +2020-04-22,Frio,Texas,48163,1,0 +2020-04-23,Frio,Texas,48163,1,0 +2020-04-24,Frio,Texas,48163,1,0 +2020-04-25,Frio,Texas,48163,3,0 +2020-04-26,Frio,Texas,48163,3,0 +2020-04-27,Frio,Texas,48163,3,0 +2020-04-28,Frio,Texas,48163,4,0 +2020-04-29,Frio,Texas,48163,7,0 +2020-04-30,Frio,Texas,48163,7,0 +2020-05-01,Frio,Texas,48163,7,0 +2020-05-02,Frio,Texas,48163,8,0 +2020-05-03,Frio,Texas,48163,10,0 +2020-05-04,Frio,Texas,48163,10,0 +2020-05-05,Frio,Texas,48163,10,0 +2020-05-06,Frio,Texas,48163,10,0 +2020-05-07,Frio,Texas,48163,25,0 +2020-05-08,Frio,Texas,48163,25,0 +2020-05-09,Frio,Texas,48163,34,0 +2020-05-10,Frio,Texas,48163,34,0 +2020-05-11,Frio,Texas,48163,34,0 +2020-05-12,Frio,Texas,48163,34,0 +2020-05-13,Frio,Texas,48163,34,0 +2020-05-14,Frio,Texas,48163,34,0 +2020-05-15,Frio,Texas,48163,34,0 +2020-05-16,Frio,Texas,48163,35,0 +2020-05-17,Frio,Texas,48163,35,0 +2020-05-18,Frio,Texas,48163,35,0 +2020-05-19,Frio,Texas,48163,35,0 +2020-05-20,Frio,Texas,48163,35,0 +2020-05-21,Frio,Texas,48163,35,0 +2020-05-22,Frio,Texas,48163,35,0 +2020-05-23,Frio,Texas,48163,35,0 +2020-05-24,Frio,Texas,48163,36,0 +2020-05-25,Frio,Texas,48163,36,0 +2020-05-26,Frio,Texas,48163,36,0 +2020-05-27,Frio,Texas,48163,37,0 +2020-05-28,Frio,Texas,48163,37,0 +2020-05-29,Frio,Texas,48163,37,0 +2020-05-30,Frio,Texas,48163,37,0 +2020-05-31,Frio,Texas,48163,37,0 +2020-06-01,Frio,Texas,48163,37,0 +2020-06-02,Frio,Texas,48163,37,0 +2020-06-03,Frio,Texas,48163,37,0 +2020-06-04,Frio,Texas,48163,37,0 +2020-06-05,Frio,Texas,48163,40,0 +2020-06-06,Frio,Texas,48163,40,0 +2020-06-07,Frio,Texas,48163,46,0 +2020-06-08,Frio,Texas,48163,46,0 +2020-06-09,Frio,Texas,48163,50,0 +2020-06-10,Frio,Texas,48163,54,0 +2020-06-11,Frio,Texas,48163,54,0 +2020-06-12,Frio,Texas,48163,57,0 +2020-06-13,Frio,Texas,48163,64,0 +2020-06-14,Frio,Texas,48163,79,0 +2020-06-15,Frio,Texas,48163,79,0 +2020-06-16,Frio,Texas,48163,79,0 +2020-06-17,Frio,Texas,48163,80,0 +2020-06-18,Frio,Texas,48163,86,0 +2020-06-19,Frio,Texas,48163,119,0 +2020-06-20,Frio,Texas,48163,130,0 +2020-06-21,Frio,Texas,48163,139,0 +2020-06-22,Frio,Texas,48163,139,0 +2020-06-23,Frio,Texas,48163,142,0 +2020-06-24,Frio,Texas,48163,157,0 +2020-06-25,Frio,Texas,48163,157,0 +2020-06-26,Frio,Texas,48163,173,0 +2020-06-27,Frio,Texas,48163,181,0 +2020-06-28,Frio,Texas,48163,178,0 +2020-06-29,Frio,Texas,48163,178,0 +2020-06-30,Frio,Texas,48163,192,0 +2020-07-01,Frio,Texas,48163,218,0 +2020-07-02,Frio,Texas,48163,225,0 +2020-07-03,Frio,Texas,48163,225,0 +2020-07-04,Frio,Texas,48163,233,0 +2020-07-05,Frio,Texas,48163,233,0 +2020-07-06,Frio,Texas,48163,233,0 +2020-07-07,Frio,Texas,48163,238,0 +2020-07-08,Frio,Texas,48163,239,0 +2020-07-09,Frio,Texas,48163,293,0 +2020-03-25,Gaines,Texas,48165,1,0 +2020-03-26,Gaines,Texas,48165,1,0 +2020-03-27,Gaines,Texas,48165,1,0 +2020-03-28,Gaines,Texas,48165,1,0 +2020-03-29,Gaines,Texas,48165,1,0 +2020-03-30,Gaines,Texas,48165,1,0 +2020-03-31,Gaines,Texas,48165,1,0 +2020-04-01,Gaines,Texas,48165,1,0 +2020-04-02,Gaines,Texas,48165,1,0 +2020-04-03,Gaines,Texas,48165,1,0 +2020-04-04,Gaines,Texas,48165,1,0 +2020-04-05,Gaines,Texas,48165,1,0 +2020-04-06,Gaines,Texas,48165,1,0 +2020-04-07,Gaines,Texas,48165,1,0 +2020-04-08,Gaines,Texas,48165,1,0 +2020-04-09,Gaines,Texas,48165,1,0 +2020-04-10,Gaines,Texas,48165,1,0 +2020-04-11,Gaines,Texas,48165,1,0 +2020-04-12,Gaines,Texas,48165,1,0 +2020-04-13,Gaines,Texas,48165,2,0 +2020-04-14,Gaines,Texas,48165,2,0 +2020-04-15,Gaines,Texas,48165,2,0 +2020-04-16,Gaines,Texas,48165,2,0 +2020-04-17,Gaines,Texas,48165,2,0 +2020-04-18,Gaines,Texas,48165,2,0 +2020-04-19,Gaines,Texas,48165,2,0 +2020-04-20,Gaines,Texas,48165,2,0 +2020-04-21,Gaines,Texas,48165,2,0 +2020-04-22,Gaines,Texas,48165,2,0 +2020-04-23,Gaines,Texas,48165,2,0 +2020-04-24,Gaines,Texas,48165,2,0 +2020-04-25,Gaines,Texas,48165,2,0 +2020-04-26,Gaines,Texas,48165,2,0 +2020-04-27,Gaines,Texas,48165,2,0 +2020-04-28,Gaines,Texas,48165,2,0 +2020-04-29,Gaines,Texas,48165,2,0 +2020-04-30,Gaines,Texas,48165,2,0 +2020-05-01,Gaines,Texas,48165,2,0 +2020-05-02,Gaines,Texas,48165,2,0 +2020-05-03,Gaines,Texas,48165,2,0 +2020-05-04,Gaines,Texas,48165,2,0 +2020-05-05,Gaines,Texas,48165,3,0 +2020-05-06,Gaines,Texas,48165,3,0 +2020-05-07,Gaines,Texas,48165,3,0 +2020-05-08,Gaines,Texas,48165,3,0 +2020-05-09,Gaines,Texas,48165,3,0 +2020-05-10,Gaines,Texas,48165,3,0 +2020-05-11,Gaines,Texas,48165,3,0 +2020-05-12,Gaines,Texas,48165,4,0 +2020-05-13,Gaines,Texas,48165,4,0 +2020-05-14,Gaines,Texas,48165,4,0 +2020-05-15,Gaines,Texas,48165,5,0 +2020-05-16,Gaines,Texas,48165,5,0 +2020-05-17,Gaines,Texas,48165,5,0 +2020-05-18,Gaines,Texas,48165,5,0 +2020-05-19,Gaines,Texas,48165,6,0 +2020-05-20,Gaines,Texas,48165,6,0 +2020-05-21,Gaines,Texas,48165,6,0 +2020-05-22,Gaines,Texas,48165,6,0 +2020-05-23,Gaines,Texas,48165,6,0 +2020-05-24,Gaines,Texas,48165,6,0 +2020-05-25,Gaines,Texas,48165,6,0 +2020-05-26,Gaines,Texas,48165,6,0 +2020-05-27,Gaines,Texas,48165,7,0 +2020-05-28,Gaines,Texas,48165,7,0 +2020-05-29,Gaines,Texas,48165,7,0 +2020-05-30,Gaines,Texas,48165,7,0 +2020-05-31,Gaines,Texas,48165,7,0 +2020-06-01,Gaines,Texas,48165,7,0 +2020-06-02,Gaines,Texas,48165,7,0 +2020-06-03,Gaines,Texas,48165,7,0 +2020-06-04,Gaines,Texas,48165,7,0 +2020-06-05,Gaines,Texas,48165,7,0 +2020-06-06,Gaines,Texas,48165,8,0 +2020-06-07,Gaines,Texas,48165,8,0 +2020-06-08,Gaines,Texas,48165,8,0 +2020-06-09,Gaines,Texas,48165,9,0 +2020-06-10,Gaines,Texas,48165,9,0 +2020-06-11,Gaines,Texas,48165,9,0 +2020-06-12,Gaines,Texas,48165,9,0 +2020-06-13,Gaines,Texas,48165,14,0 +2020-06-14,Gaines,Texas,48165,14,0 +2020-06-15,Gaines,Texas,48165,14,0 +2020-06-16,Gaines,Texas,48165,14,0 +2020-06-17,Gaines,Texas,48165,14,0 +2020-06-18,Gaines,Texas,48165,14,0 +2020-06-19,Gaines,Texas,48165,14,0 +2020-06-20,Gaines,Texas,48165,14,0 +2020-06-21,Gaines,Texas,48165,14,0 +2020-06-22,Gaines,Texas,48165,14,0 +2020-06-23,Gaines,Texas,48165,14,0 +2020-06-24,Gaines,Texas,48165,14,0 +2020-06-25,Gaines,Texas,48165,15,0 +2020-06-26,Gaines,Texas,48165,15,0 +2020-06-27,Gaines,Texas,48165,15,0 +2020-06-28,Gaines,Texas,48165,15,0 +2020-06-29,Gaines,Texas,48165,15,0 +2020-06-30,Gaines,Texas,48165,16,0 +2020-07-01,Gaines,Texas,48165,16,0 +2020-07-02,Gaines,Texas,48165,26,0 +2020-07-03,Gaines,Texas,48165,26,0 +2020-07-04,Gaines,Texas,48165,28,0 +2020-07-05,Gaines,Texas,48165,28,0 +2020-07-06,Gaines,Texas,48165,28,0 +2020-07-07,Gaines,Texas,48165,30,0 +2020-07-08,Gaines,Texas,48165,36,0 +2020-07-09,Gaines,Texas,48165,39,0 +2020-03-13,Galveston,Texas,48167,1,0 +2020-03-14,Galveston,Texas,48167,1,0 +2020-03-15,Galveston,Texas,48167,1,0 +2020-03-16,Galveston,Texas,48167,1,0 +2020-03-17,Galveston,Texas,48167,1,0 +2020-03-18,Galveston,Texas,48167,4,0 +2020-03-19,Galveston,Texas,48167,4,0 +2020-03-20,Galveston,Texas,48167,6,0 +2020-03-21,Galveston,Texas,48167,8,0 +2020-03-22,Galveston,Texas,48167,11,0 +2020-03-23,Galveston,Texas,48167,17,0 +2020-03-24,Galveston,Texas,48167,18,0 +2020-03-25,Galveston,Texas,48167,22,0 +2020-03-26,Galveston,Texas,48167,27,0 +2020-03-27,Galveston,Texas,48167,49,0 +2020-03-28,Galveston,Texas,48167,60,0 +2020-03-29,Galveston,Texas,48167,70,0 +2020-03-30,Galveston,Texas,48167,92,0 +2020-03-31,Galveston,Texas,48167,106,0 +2020-04-01,Galveston,Texas,48167,118,0 +2020-04-02,Galveston,Texas,48167,130,0 +2020-04-03,Galveston,Texas,48167,206,0 +2020-04-04,Galveston,Texas,48167,222,1 +2020-04-05,Galveston,Texas,48167,240,1 +2020-04-06,Galveston,Texas,48167,256,1 +2020-04-07,Galveston,Texas,48167,272,5 +2020-04-08,Galveston,Texas,48167,287,5 +2020-04-09,Galveston,Texas,48167,308,7 +2020-04-10,Galveston,Texas,48167,341,8 +2020-04-11,Galveston,Texas,48167,355,8 +2020-04-12,Galveston,Texas,48167,355,8 +2020-04-13,Galveston,Texas,48167,377,9 +2020-04-14,Galveston,Texas,48167,392,11 +2020-04-15,Galveston,Texas,48167,401,13 +2020-04-16,Galveston,Texas,48167,421,14 +2020-04-17,Galveston,Texas,48167,438,14 +2020-04-18,Galveston,Texas,48167,450,15 +2020-04-19,Galveston,Texas,48167,455,17 +2020-04-20,Galveston,Texas,48167,468,19 +2020-04-21,Galveston,Texas,48167,479,20 +2020-04-22,Galveston,Texas,48167,491,21 +2020-04-23,Galveston,Texas,48167,507,21 +2020-04-24,Galveston,Texas,48167,522,21 +2020-04-25,Galveston,Texas,48167,539,22 +2020-04-26,Galveston,Texas,48167,541,22 +2020-04-27,Galveston,Texas,48167,548,24 +2020-04-28,Galveston,Texas,48167,554,24 +2020-04-29,Galveston,Texas,48167,572,24 +2020-04-30,Galveston,Texas,48167,595,26 +2020-05-01,Galveston,Texas,48167,614,27 +2020-05-02,Galveston,Texas,48167,629,28 +2020-05-03,Galveston,Texas,48167,636,28 +2020-05-04,Galveston,Texas,48167,648,28 +2020-05-05,Galveston,Texas,48167,659,28 +2020-05-06,Galveston,Texas,48167,669,28 +2020-05-07,Galveston,Texas,48167,672,28 +2020-05-08,Galveston,Texas,48167,676,28 +2020-05-09,Galveston,Texas,48167,680,29 +2020-05-10,Galveston,Texas,48167,685,29 +2020-05-11,Galveston,Texas,48167,686,29 +2020-05-12,Galveston,Texas,48167,688,29 +2020-05-13,Galveston,Texas,48167,691,29 +2020-05-14,Galveston,Texas,48167,693,30 +2020-05-15,Galveston,Texas,48167,696,30 +2020-05-16,Galveston,Texas,48167,701,31 +2020-05-17,Galveston,Texas,48167,702,31 +2020-05-18,Galveston,Texas,48167,706,31 +2020-05-19,Galveston,Texas,48167,706,31 +2020-05-20,Galveston,Texas,48167,715,31 +2020-05-21,Galveston,Texas,48167,732,31 +2020-05-22,Galveston,Texas,48167,740,31 +2020-05-23,Galveston,Texas,48167,749,32 +2020-05-24,Galveston,Texas,48167,752,32 +2020-05-25,Galveston,Texas,48167,753,32 +2020-05-26,Galveston,Texas,48167,763,32 +2020-05-27,Galveston,Texas,48167,779,32 +2020-05-28,Galveston,Texas,48167,788,32 +2020-05-29,Galveston,Texas,48167,795,32 +2020-05-30,Galveston,Texas,48167,807,37 +2020-05-31,Galveston,Texas,48167,817,37 +2020-06-01,Galveston,Texas,48167,847,37 +2020-06-02,Galveston,Texas,48167,857,37 +2020-06-03,Galveston,Texas,48167,876,37 +2020-06-04,Galveston,Texas,48167,906,38 +2020-06-05,Galveston,Texas,48167,906,38 +2020-06-06,Galveston,Texas,48167,972,38 +2020-06-07,Galveston,Texas,48167,994,38 +2020-06-08,Galveston,Texas,48167,1026,38 +2020-06-09,Galveston,Texas,48167,1051,38 +2020-06-10,Galveston,Texas,48167,1084,38 +2020-06-11,Galveston,Texas,48167,1114,38 +2020-06-12,Galveston,Texas,48167,1166,40 +2020-06-13,Galveston,Texas,48167,1237,40 +2020-06-14,Galveston,Texas,48167,1255,40 +2020-06-15,Galveston,Texas,48167,1312,40 +2020-06-16,Galveston,Texas,48167,1378,40 +2020-06-17,Galveston,Texas,48167,1486,40 +2020-06-18,Galveston,Texas,48167,1535,40 +2020-06-19,Galveston,Texas,48167,1642,40 +2020-06-20,Galveston,Texas,48167,1784,40 +2020-06-21,Galveston,Texas,48167,1867,40 +2020-06-22,Galveston,Texas,48167,1968,40 +2020-06-23,Galveston,Texas,48167,2040,40 +2020-06-24,Galveston,Texas,48167,2266,40 +2020-06-25,Galveston,Texas,48167,2415,40 +2020-06-26,Galveston,Texas,48167,2667,40 +2020-06-27,Galveston,Texas,48167,2821,40 +2020-06-28,Galveston,Texas,48167,2923,40 +2020-06-29,Galveston,Texas,48167,3062,40 +2020-06-30,Galveston,Texas,48167,3293,40 +2020-07-01,Galveston,Texas,48167,3565,40 +2020-07-02,Galveston,Texas,48167,3778,45 +2020-07-03,Galveston,Texas,48167,3990,46 +2020-07-04,Galveston,Texas,48167,3990,46 +2020-07-05,Galveston,Texas,48167,3990,46 +2020-07-06,Galveston,Texas,48167,4586,46 +2020-07-07,Galveston,Texas,48167,4809,50 +2020-07-08,Galveston,Texas,48167,5063,50 +2020-07-09,Galveston,Texas,48167,5320,50 +2020-04-30,Garza,Texas,48169,1,0 +2020-05-01,Garza,Texas,48169,1,0 +2020-05-02,Garza,Texas,48169,3,0 +2020-05-03,Garza,Texas,48169,3,0 +2020-05-04,Garza,Texas,48169,3,0 +2020-05-05,Garza,Texas,48169,3,0 +2020-05-06,Garza,Texas,48169,3,0 +2020-05-07,Garza,Texas,48169,3,0 +2020-05-08,Garza,Texas,48169,3,0 +2020-05-09,Garza,Texas,48169,3,0 +2020-05-10,Garza,Texas,48169,3,0 +2020-05-11,Garza,Texas,48169,3,0 +2020-05-12,Garza,Texas,48169,4,0 +2020-05-13,Garza,Texas,48169,4,0 +2020-05-14,Garza,Texas,48169,4,0 +2020-05-15,Garza,Texas,48169,4,0 +2020-05-16,Garza,Texas,48169,4,0 +2020-05-17,Garza,Texas,48169,4,0 +2020-05-18,Garza,Texas,48169,4,0 +2020-05-19,Garza,Texas,48169,4,0 +2020-05-20,Garza,Texas,48169,4,0 +2020-05-21,Garza,Texas,48169,4,0 +2020-05-22,Garza,Texas,48169,4,0 +2020-05-23,Garza,Texas,48169,5,0 +2020-05-24,Garza,Texas,48169,5,0 +2020-05-25,Garza,Texas,48169,5,0 +2020-05-26,Garza,Texas,48169,5,0 +2020-05-27,Garza,Texas,48169,5,0 +2020-05-28,Garza,Texas,48169,5,0 +2020-05-29,Garza,Texas,48169,5,0 +2020-05-30,Garza,Texas,48169,5,0 +2020-05-31,Garza,Texas,48169,5,0 +2020-06-01,Garza,Texas,48169,5,0 +2020-06-02,Garza,Texas,48169,5,0 +2020-06-03,Garza,Texas,48169,6,0 +2020-06-04,Garza,Texas,48169,6,0 +2020-06-05,Garza,Texas,48169,6,0 +2020-06-06,Garza,Texas,48169,6,0 +2020-06-07,Garza,Texas,48169,6,0 +2020-06-08,Garza,Texas,48169,6,0 +2020-06-09,Garza,Texas,48169,6,0 +2020-06-10,Garza,Texas,48169,7,0 +2020-06-11,Garza,Texas,48169,6,0 +2020-06-12,Garza,Texas,48169,6,0 +2020-06-13,Garza,Texas,48169,6,0 +2020-06-14,Garza,Texas,48169,6,0 +2020-06-15,Garza,Texas,48169,6,0 +2020-06-16,Garza,Texas,48169,7,0 +2020-06-17,Garza,Texas,48169,7,0 +2020-06-18,Garza,Texas,48169,7,0 +2020-06-19,Garza,Texas,48169,7,0 +2020-06-20,Garza,Texas,48169,7,0 +2020-06-21,Garza,Texas,48169,7,0 +2020-06-22,Garza,Texas,48169,7,0 +2020-06-23,Garza,Texas,48169,7,0 +2020-06-24,Garza,Texas,48169,7,0 +2020-06-25,Garza,Texas,48169,11,0 +2020-06-26,Garza,Texas,48169,11,0 +2020-06-27,Garza,Texas,48169,12,0 +2020-06-28,Garza,Texas,48169,12,0 +2020-06-29,Garza,Texas,48169,12,0 +2020-06-30,Garza,Texas,48169,12,0 +2020-07-01,Garza,Texas,48169,12,0 +2020-07-02,Garza,Texas,48169,12,0 +2020-07-03,Garza,Texas,48169,12,0 +2020-07-04,Garza,Texas,48169,12,0 +2020-07-05,Garza,Texas,48169,12,0 +2020-07-06,Garza,Texas,48169,12,0 +2020-07-07,Garza,Texas,48169,14,0 +2020-07-08,Garza,Texas,48169,18,0 +2020-07-09,Garza,Texas,48169,19,0 +2020-04-02,Gillespie,Texas,48171,1,0 +2020-04-03,Gillespie,Texas,48171,1,0 +2020-04-04,Gillespie,Texas,48171,2,0 +2020-04-05,Gillespie,Texas,48171,2,0 +2020-04-06,Gillespie,Texas,48171,2,0 +2020-04-07,Gillespie,Texas,48171,2,0 +2020-04-08,Gillespie,Texas,48171,2,0 +2020-04-09,Gillespie,Texas,48171,2,0 +2020-04-10,Gillespie,Texas,48171,2,0 +2020-04-11,Gillespie,Texas,48171,2,0 +2020-04-12,Gillespie,Texas,48171,2,0 +2020-04-13,Gillespie,Texas,48171,2,0 +2020-04-14,Gillespie,Texas,48171,2,0 +2020-04-15,Gillespie,Texas,48171,2,0 +2020-04-16,Gillespie,Texas,48171,2,0 +2020-04-17,Gillespie,Texas,48171,2,0 +2020-04-18,Gillespie,Texas,48171,2,0 +2020-04-19,Gillespie,Texas,48171,2,0 +2020-04-20,Gillespie,Texas,48171,2,0 +2020-04-21,Gillespie,Texas,48171,2,0 +2020-04-22,Gillespie,Texas,48171,2,0 +2020-04-23,Gillespie,Texas,48171,2,0 +2020-04-24,Gillespie,Texas,48171,2,0 +2020-04-25,Gillespie,Texas,48171,2,0 +2020-04-26,Gillespie,Texas,48171,2,0 +2020-04-27,Gillespie,Texas,48171,2,0 +2020-04-28,Gillespie,Texas,48171,2,0 +2020-04-29,Gillespie,Texas,48171,2,0 +2020-04-30,Gillespie,Texas,48171,2,0 +2020-05-01,Gillespie,Texas,48171,2,0 +2020-05-02,Gillespie,Texas,48171,3,0 +2020-05-03,Gillespie,Texas,48171,3,0 +2020-05-04,Gillespie,Texas,48171,4,0 +2020-05-05,Gillespie,Texas,48171,4,0 +2020-05-06,Gillespie,Texas,48171,4,0 +2020-05-07,Gillespie,Texas,48171,4,0 +2020-05-08,Gillespie,Texas,48171,4,0 +2020-05-09,Gillespie,Texas,48171,4,0 +2020-05-10,Gillespie,Texas,48171,4,0 +2020-05-11,Gillespie,Texas,48171,4,0 +2020-05-12,Gillespie,Texas,48171,4,0 +2020-05-13,Gillespie,Texas,48171,4,0 +2020-05-14,Gillespie,Texas,48171,4,0 +2020-05-15,Gillespie,Texas,48171,4,0 +2020-05-16,Gillespie,Texas,48171,4,0 +2020-05-17,Gillespie,Texas,48171,4,0 +2020-05-18,Gillespie,Texas,48171,4,0 +2020-05-19,Gillespie,Texas,48171,5,0 +2020-05-20,Gillespie,Texas,48171,5,0 +2020-05-21,Gillespie,Texas,48171,5,0 +2020-05-22,Gillespie,Texas,48171,5,0 +2020-05-23,Gillespie,Texas,48171,5,0 +2020-05-24,Gillespie,Texas,48171,5,0 +2020-05-25,Gillespie,Texas,48171,5,0 +2020-05-26,Gillespie,Texas,48171,5,0 +2020-05-27,Gillespie,Texas,48171,5,0 +2020-05-28,Gillespie,Texas,48171,5,0 +2020-05-29,Gillespie,Texas,48171,5,0 +2020-05-30,Gillespie,Texas,48171,5,0 +2020-05-31,Gillespie,Texas,48171,5,0 +2020-06-01,Gillespie,Texas,48171,5,0 +2020-06-02,Gillespie,Texas,48171,5,0 +2020-06-03,Gillespie,Texas,48171,5,0 +2020-06-04,Gillespie,Texas,48171,5,0 +2020-06-05,Gillespie,Texas,48171,5,0 +2020-06-06,Gillespie,Texas,48171,5,0 +2020-06-07,Gillespie,Texas,48171,5,0 +2020-06-08,Gillespie,Texas,48171,5,0 +2020-06-09,Gillespie,Texas,48171,5,0 +2020-06-10,Gillespie,Texas,48171,5,0 +2020-06-11,Gillespie,Texas,48171,5,0 +2020-06-12,Gillespie,Texas,48171,5,0 +2020-06-13,Gillespie,Texas,48171,6,0 +2020-06-14,Gillespie,Texas,48171,6,0 +2020-06-15,Gillespie,Texas,48171,6,0 +2020-06-16,Gillespie,Texas,48171,9,0 +2020-06-17,Gillespie,Texas,48171,9,0 +2020-06-18,Gillespie,Texas,48171,10,0 +2020-06-19,Gillespie,Texas,48171,16,0 +2020-06-20,Gillespie,Texas,48171,17,0 +2020-06-21,Gillespie,Texas,48171,17,0 +2020-06-22,Gillespie,Texas,48171,17,0 +2020-06-23,Gillespie,Texas,48171,23,0 +2020-06-24,Gillespie,Texas,48171,29,0 +2020-06-25,Gillespie,Texas,48171,33,0 +2020-06-26,Gillespie,Texas,48171,33,0 +2020-06-27,Gillespie,Texas,48171,33,0 +2020-06-28,Gillespie,Texas,48171,33,0 +2020-06-29,Gillespie,Texas,48171,33,0 +2020-06-30,Gillespie,Texas,48171,42,0 +2020-07-01,Gillespie,Texas,48171,42,0 +2020-07-02,Gillespie,Texas,48171,41,0 +2020-07-03,Gillespie,Texas,48171,42,0 +2020-07-04,Gillespie,Texas,48171,45,0 +2020-07-05,Gillespie,Texas,48171,45,0 +2020-07-06,Gillespie,Texas,48171,45,0 +2020-07-07,Gillespie,Texas,48171,49,0 +2020-07-08,Gillespie,Texas,48171,53,0 +2020-07-09,Gillespie,Texas,48171,55,0 +2020-04-30,Glasscock,Texas,48173,1,0 +2020-05-01,Glasscock,Texas,48173,1,0 +2020-05-02,Glasscock,Texas,48173,1,0 +2020-05-03,Glasscock,Texas,48173,1,0 +2020-05-04,Glasscock,Texas,48173,1,0 +2020-05-05,Glasscock,Texas,48173,1,0 +2020-05-06,Glasscock,Texas,48173,1,0 +2020-05-07,Glasscock,Texas,48173,1,0 +2020-05-08,Glasscock,Texas,48173,1,0 +2020-05-09,Glasscock,Texas,48173,1,0 +2020-05-10,Glasscock,Texas,48173,1,0 +2020-05-11,Glasscock,Texas,48173,1,0 +2020-05-12,Glasscock,Texas,48173,1,0 +2020-05-13,Glasscock,Texas,48173,1,0 +2020-05-14,Glasscock,Texas,48173,1,0 +2020-05-15,Glasscock,Texas,48173,1,0 +2020-05-16,Glasscock,Texas,48173,1,0 +2020-05-17,Glasscock,Texas,48173,1,0 +2020-05-18,Glasscock,Texas,48173,1,0 +2020-05-19,Glasscock,Texas,48173,1,0 +2020-05-20,Glasscock,Texas,48173,1,0 +2020-05-21,Glasscock,Texas,48173,1,0 +2020-05-22,Glasscock,Texas,48173,1,0 +2020-05-23,Glasscock,Texas,48173,1,0 +2020-05-24,Glasscock,Texas,48173,1,0 +2020-05-25,Glasscock,Texas,48173,1,0 +2020-05-26,Glasscock,Texas,48173,1,0 +2020-05-27,Glasscock,Texas,48173,1,0 +2020-05-28,Glasscock,Texas,48173,1,0 +2020-05-29,Glasscock,Texas,48173,1,0 +2020-05-30,Glasscock,Texas,48173,1,0 +2020-05-31,Glasscock,Texas,48173,1,0 +2020-06-01,Glasscock,Texas,48173,1,0 +2020-06-02,Glasscock,Texas,48173,1,0 +2020-06-03,Glasscock,Texas,48173,1,0 +2020-06-04,Glasscock,Texas,48173,1,0 +2020-06-05,Glasscock,Texas,48173,1,0 +2020-06-06,Glasscock,Texas,48173,1,0 +2020-06-07,Glasscock,Texas,48173,1,0 +2020-06-08,Glasscock,Texas,48173,1,0 +2020-06-09,Glasscock,Texas,48173,1,0 +2020-06-10,Glasscock,Texas,48173,1,0 +2020-06-11,Glasscock,Texas,48173,1,0 +2020-06-12,Glasscock,Texas,48173,1,0 +2020-06-13,Glasscock,Texas,48173,2,0 +2020-06-14,Glasscock,Texas,48173,2,0 +2020-06-15,Glasscock,Texas,48173,2,0 +2020-06-16,Glasscock,Texas,48173,3,0 +2020-06-17,Glasscock,Texas,48173,3,0 +2020-06-18,Glasscock,Texas,48173,5,0 +2020-06-19,Glasscock,Texas,48173,5,0 +2020-06-20,Glasscock,Texas,48173,5,0 +2020-06-21,Glasscock,Texas,48173,5,0 +2020-06-22,Glasscock,Texas,48173,5,0 +2020-06-23,Glasscock,Texas,48173,5,0 +2020-06-24,Glasscock,Texas,48173,5,0 +2020-06-25,Glasscock,Texas,48173,5,0 +2020-06-26,Glasscock,Texas,48173,5,0 +2020-06-27,Glasscock,Texas,48173,5,0 +2020-06-28,Glasscock,Texas,48173,5,0 +2020-06-29,Glasscock,Texas,48173,5,0 +2020-06-30,Glasscock,Texas,48173,5,0 +2020-07-01,Glasscock,Texas,48173,5,0 +2020-07-02,Glasscock,Texas,48173,5,0 +2020-07-03,Glasscock,Texas,48173,5,0 +2020-07-04,Glasscock,Texas,48173,5,0 +2020-07-05,Glasscock,Texas,48173,5,0 +2020-07-06,Glasscock,Texas,48173,5,0 +2020-07-07,Glasscock,Texas,48173,5,0 +2020-07-08,Glasscock,Texas,48173,6,0 +2020-07-09,Glasscock,Texas,48173,6,0 +2020-04-02,Goliad,Texas,48175,1,0 +2020-04-03,Goliad,Texas,48175,1,0 +2020-04-04,Goliad,Texas,48175,1,0 +2020-04-05,Goliad,Texas,48175,1,0 +2020-04-06,Goliad,Texas,48175,1,0 +2020-04-07,Goliad,Texas,48175,3,0 +2020-04-08,Goliad,Texas,48175,3,0 +2020-04-09,Goliad,Texas,48175,3,0 +2020-04-10,Goliad,Texas,48175,4,0 +2020-04-11,Goliad,Texas,48175,4,0 +2020-04-12,Goliad,Texas,48175,4,0 +2020-04-13,Goliad,Texas,48175,4,0 +2020-04-14,Goliad,Texas,48175,4,0 +2020-04-15,Goliad,Texas,48175,5,0 +2020-04-16,Goliad,Texas,48175,5,0 +2020-04-17,Goliad,Texas,48175,5,0 +2020-04-18,Goliad,Texas,48175,5,0 +2020-04-19,Goliad,Texas,48175,5,0 +2020-04-20,Goliad,Texas,48175,5,0 +2020-04-21,Goliad,Texas,48175,6,0 +2020-04-22,Goliad,Texas,48175,6,0 +2020-04-23,Goliad,Texas,48175,6,0 +2020-04-24,Goliad,Texas,48175,6,0 +2020-04-25,Goliad,Texas,48175,6,0 +2020-04-26,Goliad,Texas,48175,7,0 +2020-04-27,Goliad,Texas,48175,7,0 +2020-04-28,Goliad,Texas,48175,7,0 +2020-04-29,Goliad,Texas,48175,7,0 +2020-04-30,Goliad,Texas,48175,7,0 +2020-05-01,Goliad,Texas,48175,7,0 +2020-05-02,Goliad,Texas,48175,7,0 +2020-05-03,Goliad,Texas,48175,7,0 +2020-05-04,Goliad,Texas,48175,7,0 +2020-05-05,Goliad,Texas,48175,7,0 +2020-05-06,Goliad,Texas,48175,7,0 +2020-05-07,Goliad,Texas,48175,7,0 +2020-05-08,Goliad,Texas,48175,7,0 +2020-05-09,Goliad,Texas,48175,7,0 +2020-05-10,Goliad,Texas,48175,7,0 +2020-05-11,Goliad,Texas,48175,7,0 +2020-05-12,Goliad,Texas,48175,7,0 +2020-05-13,Goliad,Texas,48175,7,0 +2020-05-14,Goliad,Texas,48175,7,0 +2020-05-15,Goliad,Texas,48175,7,0 +2020-05-16,Goliad,Texas,48175,7,0 +2020-05-17,Goliad,Texas,48175,7,0 +2020-05-18,Goliad,Texas,48175,7,0 +2020-05-19,Goliad,Texas,48175,7,0 +2020-05-20,Goliad,Texas,48175,7,0 +2020-05-21,Goliad,Texas,48175,7,0 +2020-05-22,Goliad,Texas,48175,7,0 +2020-05-23,Goliad,Texas,48175,7,0 +2020-05-24,Goliad,Texas,48175,7,0 +2020-05-25,Goliad,Texas,48175,7,0 +2020-05-26,Goliad,Texas,48175,7,0 +2020-05-27,Goliad,Texas,48175,7,0 +2020-05-28,Goliad,Texas,48175,7,0 +2020-05-29,Goliad,Texas,48175,7,0 +2020-05-30,Goliad,Texas,48175,7,0 +2020-05-31,Goliad,Texas,48175,7,0 +2020-06-01,Goliad,Texas,48175,7,0 +2020-06-02,Goliad,Texas,48175,7,0 +2020-06-03,Goliad,Texas,48175,7,0 +2020-06-04,Goliad,Texas,48175,7,0 +2020-06-05,Goliad,Texas,48175,7,0 +2020-06-06,Goliad,Texas,48175,7,0 +2020-06-07,Goliad,Texas,48175,7,0 +2020-06-08,Goliad,Texas,48175,7,0 +2020-06-09,Goliad,Texas,48175,7,0 +2020-06-10,Goliad,Texas,48175,7,0 +2020-06-11,Goliad,Texas,48175,7,0 +2020-06-12,Goliad,Texas,48175,7,0 +2020-06-13,Goliad,Texas,48175,7,0 +2020-06-14,Goliad,Texas,48175,7,0 +2020-06-15,Goliad,Texas,48175,7,0 +2020-06-16,Goliad,Texas,48175,7,0 +2020-06-17,Goliad,Texas,48175,7,0 +2020-06-18,Goliad,Texas,48175,7,0 +2020-06-19,Goliad,Texas,48175,7,0 +2020-06-20,Goliad,Texas,48175,7,0 +2020-06-21,Goliad,Texas,48175,7,0 +2020-06-22,Goliad,Texas,48175,7,0 +2020-06-23,Goliad,Texas,48175,7,0 +2020-06-24,Goliad,Texas,48175,7,0 +2020-06-25,Goliad,Texas,48175,8,0 +2020-06-26,Goliad,Texas,48175,8,0 +2020-06-27,Goliad,Texas,48175,12,0 +2020-06-28,Goliad,Texas,48175,12,0 +2020-06-29,Goliad,Texas,48175,12,0 +2020-06-30,Goliad,Texas,48175,14,0 +2020-07-01,Goliad,Texas,48175,14,0 +2020-07-02,Goliad,Texas,48175,15,0 +2020-07-03,Goliad,Texas,48175,15,0 +2020-07-04,Goliad,Texas,48175,15,0 +2020-07-05,Goliad,Texas,48175,15,0 +2020-07-06,Goliad,Texas,48175,14,0 +2020-07-07,Goliad,Texas,48175,15,0 +2020-07-08,Goliad,Texas,48175,15,0 +2020-07-09,Goliad,Texas,48175,21,0 +2020-04-01,Gonzales,Texas,48177,1,0 +2020-04-02,Gonzales,Texas,48177,1,0 +2020-04-03,Gonzales,Texas,48177,1,0 +2020-04-04,Gonzales,Texas,48177,1,0 +2020-04-05,Gonzales,Texas,48177,1,0 +2020-04-06,Gonzales,Texas,48177,1,0 +2020-04-07,Gonzales,Texas,48177,1,0 +2020-04-08,Gonzales,Texas,48177,1,0 +2020-04-09,Gonzales,Texas,48177,2,0 +2020-04-10,Gonzales,Texas,48177,2,0 +2020-04-11,Gonzales,Texas,48177,2,0 +2020-04-12,Gonzales,Texas,48177,2,0 +2020-04-13,Gonzales,Texas,48177,2,0 +2020-04-14,Gonzales,Texas,48177,2,0 +2020-04-15,Gonzales,Texas,48177,2,0 +2020-04-16,Gonzales,Texas,48177,2,0 +2020-04-17,Gonzales,Texas,48177,2,0 +2020-04-18,Gonzales,Texas,48177,2,0 +2020-04-19,Gonzales,Texas,48177,2,0 +2020-04-20,Gonzales,Texas,48177,2,0 +2020-04-21,Gonzales,Texas,48177,2,0 +2020-04-22,Gonzales,Texas,48177,3,0 +2020-04-23,Gonzales,Texas,48177,4,0 +2020-04-24,Gonzales,Texas,48177,4,0 +2020-04-25,Gonzales,Texas,48177,8,1 +2020-04-26,Gonzales,Texas,48177,12,1 +2020-04-27,Gonzales,Texas,48177,12,1 +2020-04-28,Gonzales,Texas,48177,14,2 +2020-04-29,Gonzales,Texas,48177,18,2 +2020-04-30,Gonzales,Texas,48177,20,2 +2020-05-01,Gonzales,Texas,48177,21,2 +2020-05-02,Gonzales,Texas,48177,23,2 +2020-05-03,Gonzales,Texas,48177,27,2 +2020-05-04,Gonzales,Texas,48177,30,2 +2020-05-05,Gonzales,Texas,48177,31,2 +2020-05-06,Gonzales,Texas,48177,31,2 +2020-05-07,Gonzales,Texas,48177,31,2 +2020-05-08,Gonzales,Texas,48177,31,2 +2020-05-09,Gonzales,Texas,48177,40,2 +2020-05-10,Gonzales,Texas,48177,53,2 +2020-05-11,Gonzales,Texas,48177,59,2 +2020-05-12,Gonzales,Texas,48177,59,2 +2020-05-13,Gonzales,Texas,48177,62,2 +2020-05-14,Gonzales,Texas,48177,70,2 +2020-05-15,Gonzales,Texas,48177,73,2 +2020-05-16,Gonzales,Texas,48177,75,2 +2020-05-17,Gonzales,Texas,48177,79,2 +2020-05-18,Gonzales,Texas,48177,85,2 +2020-05-19,Gonzales,Texas,48177,86,2 +2020-05-20,Gonzales,Texas,48177,88,2 +2020-05-21,Gonzales,Texas,48177,90,2 +2020-05-22,Gonzales,Texas,48177,90,2 +2020-05-23,Gonzales,Texas,48177,91,2 +2020-05-24,Gonzales,Texas,48177,91,2 +2020-05-25,Gonzales,Texas,48177,91,2 +2020-05-26,Gonzales,Texas,48177,91,2 +2020-05-27,Gonzales,Texas,48177,100,2 +2020-05-28,Gonzales,Texas,48177,111,2 +2020-05-29,Gonzales,Texas,48177,118,2 +2020-05-30,Gonzales,Texas,48177,121,2 +2020-05-31,Gonzales,Texas,48177,129,2 +2020-06-01,Gonzales,Texas,48177,129,2 +2020-06-02,Gonzales,Texas,48177,132,2 +2020-06-03,Gonzales,Texas,48177,143,3 +2020-06-04,Gonzales,Texas,48177,144,3 +2020-06-05,Gonzales,Texas,48177,147,3 +2020-06-06,Gonzales,Texas,48177,149,3 +2020-06-07,Gonzales,Texas,48177,151,3 +2020-06-08,Gonzales,Texas,48177,151,3 +2020-06-09,Gonzales,Texas,48177,153,3 +2020-06-10,Gonzales,Texas,48177,155,3 +2020-06-11,Gonzales,Texas,48177,157,4 +2020-06-12,Gonzales,Texas,48177,157,4 +2020-06-13,Gonzales,Texas,48177,165,4 +2020-06-14,Gonzales,Texas,48177,166,4 +2020-06-15,Gonzales,Texas,48177,166,4 +2020-06-16,Gonzales,Texas,48177,169,4 +2020-06-17,Gonzales,Texas,48177,172,4 +2020-06-18,Gonzales,Texas,48177,175,4 +2020-06-19,Gonzales,Texas,48177,203,4 +2020-06-20,Gonzales,Texas,48177,213,4 +2020-06-21,Gonzales,Texas,48177,215,4 +2020-06-22,Gonzales,Texas,48177,215,4 +2020-06-23,Gonzales,Texas,48177,217,4 +2020-06-24,Gonzales,Texas,48177,231,4 +2020-06-25,Gonzales,Texas,48177,235,4 +2020-06-26,Gonzales,Texas,48177,244,4 +2020-06-27,Gonzales,Texas,48177,247,4 +2020-06-28,Gonzales,Texas,48177,248,4 +2020-06-29,Gonzales,Texas,48177,248,4 +2020-06-30,Gonzales,Texas,48177,260,4 +2020-07-01,Gonzales,Texas,48177,261,4 +2020-07-02,Gonzales,Texas,48177,297,4 +2020-07-03,Gonzales,Texas,48177,301,4 +2020-07-04,Gonzales,Texas,48177,306,4 +2020-07-05,Gonzales,Texas,48177,306,4 +2020-07-06,Gonzales,Texas,48177,307,4 +2020-07-07,Gonzales,Texas,48177,314,4 +2020-07-08,Gonzales,Texas,48177,314,4 +2020-07-09,Gonzales,Texas,48177,316,4 +2020-04-01,Gray,Texas,48179,1,0 +2020-04-02,Gray,Texas,48179,1,0 +2020-04-03,Gray,Texas,48179,1,0 +2020-04-04,Gray,Texas,48179,5,0 +2020-04-05,Gray,Texas,48179,5,0 +2020-04-06,Gray,Texas,48179,5,0 +2020-04-07,Gray,Texas,48179,9,0 +2020-04-08,Gray,Texas,48179,9,0 +2020-04-09,Gray,Texas,48179,12,0 +2020-04-10,Gray,Texas,48179,12,0 +2020-04-11,Gray,Texas,48179,13,0 +2020-04-12,Gray,Texas,48179,13,0 +2020-04-13,Gray,Texas,48179,13,0 +2020-04-14,Gray,Texas,48179,13,0 +2020-04-15,Gray,Texas,48179,13,0 +2020-04-16,Gray,Texas,48179,19,0 +2020-04-17,Gray,Texas,48179,19,0 +2020-04-18,Gray,Texas,48179,19,0 +2020-04-19,Gray,Texas,48179,19,0 +2020-04-20,Gray,Texas,48179,19,0 +2020-04-21,Gray,Texas,48179,20,0 +2020-04-22,Gray,Texas,48179,22,0 +2020-04-23,Gray,Texas,48179,27,0 +2020-04-24,Gray,Texas,48179,32,0 +2020-04-25,Gray,Texas,48179,35,0 +2020-04-26,Gray,Texas,48179,37,0 +2020-04-27,Gray,Texas,48179,37,0 +2020-04-28,Gray,Texas,48179,38,0 +2020-04-29,Gray,Texas,48179,42,0 +2020-04-30,Gray,Texas,48179,47,0 +2020-05-01,Gray,Texas,48179,58,0 +2020-05-02,Gray,Texas,48179,58,0 +2020-05-03,Gray,Texas,48179,58,0 +2020-05-04,Gray,Texas,48179,67,0 +2020-05-05,Gray,Texas,48179,68,0 +2020-05-06,Gray,Texas,48179,71,0 +2020-05-07,Gray,Texas,48179,73,0 +2020-05-08,Gray,Texas,48179,73,0 +2020-05-09,Gray,Texas,48179,73,0 +2020-05-10,Gray,Texas,48179,75,0 +2020-05-11,Gray,Texas,48179,75,0 +2020-05-12,Gray,Texas,48179,76,0 +2020-05-13,Gray,Texas,48179,77,0 +2020-05-14,Gray,Texas,48179,77,0 +2020-05-15,Gray,Texas,48179,88,0 +2020-05-16,Gray,Texas,48179,91,0 +2020-05-17,Gray,Texas,48179,91,0 +2020-05-18,Gray,Texas,48179,93,0 +2020-05-19,Gray,Texas,48179,94,1 +2020-05-20,Gray,Texas,48179,95,1 +2020-05-21,Gray,Texas,48179,95,1 +2020-05-22,Gray,Texas,48179,95,1 +2020-05-23,Gray,Texas,48179,95,2 +2020-05-24,Gray,Texas,48179,96,2 +2020-05-25,Gray,Texas,48179,96,2 +2020-05-26,Gray,Texas,48179,96,2 +2020-05-27,Gray,Texas,48179,96,2 +2020-05-28,Gray,Texas,48179,96,2 +2020-05-29,Gray,Texas,48179,96,2 +2020-05-30,Gray,Texas,48179,98,2 +2020-05-31,Gray,Texas,48179,98,2 +2020-06-01,Gray,Texas,48179,98,2 +2020-06-02,Gray,Texas,48179,100,2 +2020-06-03,Gray,Texas,48179,100,2 +2020-06-04,Gray,Texas,48179,101,2 +2020-06-05,Gray,Texas,48179,104,2 +2020-06-06,Gray,Texas,48179,104,2 +2020-06-07,Gray,Texas,48179,104,2 +2020-06-08,Gray,Texas,48179,104,2 +2020-06-09,Gray,Texas,48179,105,3 +2020-06-10,Gray,Texas,48179,106,3 +2020-06-11,Gray,Texas,48179,107,3 +2020-06-12,Gray,Texas,48179,111,3 +2020-06-13,Gray,Texas,48179,111,3 +2020-06-14,Gray,Texas,48179,111,3 +2020-06-15,Gray,Texas,48179,111,3 +2020-06-16,Gray,Texas,48179,111,3 +2020-06-17,Gray,Texas,48179,111,4 +2020-06-18,Gray,Texas,48179,112,4 +2020-06-19,Gray,Texas,48179,113,4 +2020-06-20,Gray,Texas,48179,113,4 +2020-06-21,Gray,Texas,48179,113,4 +2020-06-22,Gray,Texas,48179,113,4 +2020-06-23,Gray,Texas,48179,113,4 +2020-06-24,Gray,Texas,48179,113,4 +2020-06-25,Gray,Texas,48179,113,4 +2020-06-26,Gray,Texas,48179,113,4 +2020-06-27,Gray,Texas,48179,114,4 +2020-06-28,Gray,Texas,48179,114,4 +2020-06-29,Gray,Texas,48179,114,4 +2020-06-30,Gray,Texas,48179,114,4 +2020-07-01,Gray,Texas,48179,117,4 +2020-07-02,Gray,Texas,48179,117,4 +2020-07-03,Gray,Texas,48179,119,4 +2020-07-04,Gray,Texas,48179,121,4 +2020-07-05,Gray,Texas,48179,121,4 +2020-07-06,Gray,Texas,48179,121,4 +2020-07-07,Gray,Texas,48179,122,4 +2020-07-08,Gray,Texas,48179,126,4 +2020-07-09,Gray,Texas,48179,126,4 +2020-03-24,Grayson,Texas,48181,1,0 +2020-03-25,Grayson,Texas,48181,2,0 +2020-03-26,Grayson,Texas,48181,2,0 +2020-03-27,Grayson,Texas,48181,2,0 +2020-03-28,Grayson,Texas,48181,2,0 +2020-03-29,Grayson,Texas,48181,3,0 +2020-03-30,Grayson,Texas,48181,6,0 +2020-03-31,Grayson,Texas,48181,7,0 +2020-04-01,Grayson,Texas,48181,8,0 +2020-04-02,Grayson,Texas,48181,11,0 +2020-04-03,Grayson,Texas,48181,12,0 +2020-04-04,Grayson,Texas,48181,12,0 +2020-04-05,Grayson,Texas,48181,12,0 +2020-04-06,Grayson,Texas,48181,14,0 +2020-04-07,Grayson,Texas,48181,14,0 +2020-04-08,Grayson,Texas,48181,14,0 +2020-04-09,Grayson,Texas,48181,15,0 +2020-04-10,Grayson,Texas,48181,17,0 +2020-04-11,Grayson,Texas,48181,17,0 +2020-04-12,Grayson,Texas,48181,17,0 +2020-04-13,Grayson,Texas,48181,17,0 +2020-04-14,Grayson,Texas,48181,17,0 +2020-04-15,Grayson,Texas,48181,19,0 +2020-04-16,Grayson,Texas,48181,19,0 +2020-04-17,Grayson,Texas,48181,19,0 +2020-04-18,Grayson,Texas,48181,19,0 +2020-04-19,Grayson,Texas,48181,19,0 +2020-04-20,Grayson,Texas,48181,19,0 +2020-04-21,Grayson,Texas,48181,19,0 +2020-04-22,Grayson,Texas,48181,19,0 +2020-04-23,Grayson,Texas,48181,19,0 +2020-04-24,Grayson,Texas,48181,19,0 +2020-04-25,Grayson,Texas,48181,22,0 +2020-04-26,Grayson,Texas,48181,22,0 +2020-04-27,Grayson,Texas,48181,23,0 +2020-04-28,Grayson,Texas,48181,24,0 +2020-04-29,Grayson,Texas,48181,27,0 +2020-04-30,Grayson,Texas,48181,31,0 +2020-05-01,Grayson,Texas,48181,34,0 +2020-05-02,Grayson,Texas,48181,38,0 +2020-05-03,Grayson,Texas,48181,41,0 +2020-05-04,Grayson,Texas,48181,49,0 +2020-05-05,Grayson,Texas,48181,53,0 +2020-05-06,Grayson,Texas,48181,58,0 +2020-05-07,Grayson,Texas,48181,60,0 +2020-05-08,Grayson,Texas,48181,78,0 +2020-05-09,Grayson,Texas,48181,83,0 +2020-05-10,Grayson,Texas,48181,89,0 +2020-05-11,Grayson,Texas,48181,91,0 +2020-05-12,Grayson,Texas,48181,105,0 +2020-05-13,Grayson,Texas,48181,112,0 +2020-05-14,Grayson,Texas,48181,122,0 +2020-05-15,Grayson,Texas,48181,129,0 +2020-05-16,Grayson,Texas,48181,140,0 +2020-05-17,Grayson,Texas,48181,147,0 +2020-05-18,Grayson,Texas,48181,152,0 +2020-05-19,Grayson,Texas,48181,165,0 +2020-05-20,Grayson,Texas,48181,199,1 +2020-05-21,Grayson,Texas,48181,268,1 +2020-05-22,Grayson,Texas,48181,268,1 +2020-05-23,Grayson,Texas,48181,287,2 +2020-05-24,Grayson,Texas,48181,296,2 +2020-05-25,Grayson,Texas,48181,300,2 +2020-05-26,Grayson,Texas,48181,303,2 +2020-05-27,Grayson,Texas,48181,310,2 +2020-05-28,Grayson,Texas,48181,316,2 +2020-05-29,Grayson,Texas,48181,323,2 +2020-05-30,Grayson,Texas,48181,327,2 +2020-05-31,Grayson,Texas,48181,333,2 +2020-06-01,Grayson,Texas,48181,338,2 +2020-06-02,Grayson,Texas,48181,342,2 +2020-06-03,Grayson,Texas,48181,350,2 +2020-06-04,Grayson,Texas,48181,355,2 +2020-06-05,Grayson,Texas,48181,366,2 +2020-06-06,Grayson,Texas,48181,372,2 +2020-06-07,Grayson,Texas,48181,375,2 +2020-06-08,Grayson,Texas,48181,377,2 +2020-06-09,Grayson,Texas,48181,384,3 +2020-06-10,Grayson,Texas,48181,389,4 +2020-06-11,Grayson,Texas,48181,403,4 +2020-06-12,Grayson,Texas,48181,408,4 +2020-06-13,Grayson,Texas,48181,433,4 +2020-06-14,Grayson,Texas,48181,433,4 +2020-06-15,Grayson,Texas,48181,438,4 +2020-06-16,Grayson,Texas,48181,440,4 +2020-06-17,Grayson,Texas,48181,473,4 +2020-06-18,Grayson,Texas,48181,481,4 +2020-06-19,Grayson,Texas,48181,491,5 +2020-06-20,Grayson,Texas,48181,491,5 +2020-06-21,Grayson,Texas,48181,514,5 +2020-06-22,Grayson,Texas,48181,518,5 +2020-06-23,Grayson,Texas,48181,521,5 +2020-06-24,Grayson,Texas,48181,537,5 +2020-06-25,Grayson,Texas,48181,547,5 +2020-06-26,Grayson,Texas,48181,550,5 +2020-06-27,Grayson,Texas,48181,558,5 +2020-06-28,Grayson,Texas,48181,563,5 +2020-06-29,Grayson,Texas,48181,566,5 +2020-06-30,Grayson,Texas,48181,572,5 +2020-07-01,Grayson,Texas,48181,580,5 +2020-07-02,Grayson,Texas,48181,594,5 +2020-07-03,Grayson,Texas,48181,617,5 +2020-07-04,Grayson,Texas,48181,630,5 +2020-07-05,Grayson,Texas,48181,633,5 +2020-07-06,Grayson,Texas,48181,633,5 +2020-07-07,Grayson,Texas,48181,648,5 +2020-07-08,Grayson,Texas,48181,688,5 +2020-07-09,Grayson,Texas,48181,695,7 +2020-03-11,Gregg,Texas,48183,1,0 +2020-03-12,Gregg,Texas,48183,1,0 +2020-03-13,Gregg,Texas,48183,1,0 +2020-03-14,Gregg,Texas,48183,1,0 +2020-03-15,Gregg,Texas,48183,1,0 +2020-03-16,Gregg,Texas,48183,1,0 +2020-03-17,Gregg,Texas,48183,1,0 +2020-03-18,Gregg,Texas,48183,1,0 +2020-03-19,Gregg,Texas,48183,1,0 +2020-03-20,Gregg,Texas,48183,1,0 +2020-03-21,Gregg,Texas,48183,1,0 +2020-03-22,Gregg,Texas,48183,1,0 +2020-03-23,Gregg,Texas,48183,1,0 +2020-03-24,Gregg,Texas,48183,1,0 +2020-03-25,Gregg,Texas,48183,1,0 +2020-03-26,Gregg,Texas,48183,3,0 +2020-03-27,Gregg,Texas,48183,4,0 +2020-03-28,Gregg,Texas,48183,4,0 +2020-03-29,Gregg,Texas,48183,4,0 +2020-03-30,Gregg,Texas,48183,5,0 +2020-03-31,Gregg,Texas,48183,5,0 +2020-04-01,Gregg,Texas,48183,6,0 +2020-04-02,Gregg,Texas,48183,7,0 +2020-04-03,Gregg,Texas,48183,8,0 +2020-04-04,Gregg,Texas,48183,13,0 +2020-04-05,Gregg,Texas,48183,13,0 +2020-04-06,Gregg,Texas,48183,26,0 +2020-04-07,Gregg,Texas,48183,26,0 +2020-04-08,Gregg,Texas,48183,34,0 +2020-04-09,Gregg,Texas,48183,37,0 +2020-04-10,Gregg,Texas,48183,39,0 +2020-04-11,Gregg,Texas,48183,39,0 +2020-04-12,Gregg,Texas,48183,39,0 +2020-04-13,Gregg,Texas,48183,39,0 +2020-04-14,Gregg,Texas,48183,45,0 +2020-04-15,Gregg,Texas,48183,46,0 +2020-04-16,Gregg,Texas,48183,48,0 +2020-04-17,Gregg,Texas,48183,48,0 +2020-04-18,Gregg,Texas,48183,50,0 +2020-04-19,Gregg,Texas,48183,51,0 +2020-04-20,Gregg,Texas,48183,51,0 +2020-04-21,Gregg,Texas,48183,52,0 +2020-04-22,Gregg,Texas,48183,53,0 +2020-04-23,Gregg,Texas,48183,55,0 +2020-04-24,Gregg,Texas,48183,58,0 +2020-04-25,Gregg,Texas,48183,58,0 +2020-04-26,Gregg,Texas,48183,62,0 +2020-04-27,Gregg,Texas,48183,66,0 +2020-04-28,Gregg,Texas,48183,69,0 +2020-04-29,Gregg,Texas,48183,69,0 +2020-04-30,Gregg,Texas,48183,73,0 +2020-05-01,Gregg,Texas,48183,80,0 +2020-05-02,Gregg,Texas,48183,87,0 +2020-05-03,Gregg,Texas,48183,87,0 +2020-05-04,Gregg,Texas,48183,87,0 +2020-05-05,Gregg,Texas,48183,97,0 +2020-05-06,Gregg,Texas,48183,107,0 +2020-05-07,Gregg,Texas,48183,109,0 +2020-05-08,Gregg,Texas,48183,117,0 +2020-05-09,Gregg,Texas,48183,117,0 +2020-05-10,Gregg,Texas,48183,118,0 +2020-05-11,Gregg,Texas,48183,118,0 +2020-05-12,Gregg,Texas,48183,132,0 +2020-05-13,Gregg,Texas,48183,136,0 +2020-05-14,Gregg,Texas,48183,138,0 +2020-05-15,Gregg,Texas,48183,142,0 +2020-05-16,Gregg,Texas,48183,170,0 +2020-05-17,Gregg,Texas,48183,170,0 +2020-05-18,Gregg,Texas,48183,170,0 +2020-05-19,Gregg,Texas,48183,173,0 +2020-05-20,Gregg,Texas,48183,173,4 +2020-05-21,Gregg,Texas,48183,180,4 +2020-05-22,Gregg,Texas,48183,187,4 +2020-05-23,Gregg,Texas,48183,187,4 +2020-05-24,Gregg,Texas,48183,187,4 +2020-05-25,Gregg,Texas,48183,187,4 +2020-05-26,Gregg,Texas,48183,204,5 +2020-05-27,Gregg,Texas,48183,248,6 +2020-05-28,Gregg,Texas,48183,249,6 +2020-05-29,Gregg,Texas,48183,249,6 +2020-05-30,Gregg,Texas,48183,249,6 +2020-05-31,Gregg,Texas,48183,249,6 +2020-06-01,Gregg,Texas,48183,291,6 +2020-06-02,Gregg,Texas,48183,299,7 +2020-06-03,Gregg,Texas,48183,304,9 +2020-06-04,Gregg,Texas,48183,307,9 +2020-06-05,Gregg,Texas,48183,312,10 +2020-06-06,Gregg,Texas,48183,312,10 +2020-06-07,Gregg,Texas,48183,312,10 +2020-06-08,Gregg,Texas,48183,325,11 +2020-06-09,Gregg,Texas,48183,325,11 +2020-06-10,Gregg,Texas,48183,331,11 +2020-06-11,Gregg,Texas,48183,332,11 +2020-06-12,Gregg,Texas,48183,284,12 +2020-06-13,Gregg,Texas,48183,284,12 +2020-06-14,Gregg,Texas,48183,284,12 +2020-06-15,Gregg,Texas,48183,287,12 +2020-06-16,Gregg,Texas,48183,299,13 +2020-06-17,Gregg,Texas,48183,299,13 +2020-06-18,Gregg,Texas,48183,302,13 +2020-06-19,Gregg,Texas,48183,306,13 +2020-06-20,Gregg,Texas,48183,306,13 +2020-06-21,Gregg,Texas,48183,306,13 +2020-06-22,Gregg,Texas,48183,309,13 +2020-06-23,Gregg,Texas,48183,317,13 +2020-06-24,Gregg,Texas,48183,320,14 +2020-06-25,Gregg,Texas,48183,334,14 +2020-06-26,Gregg,Texas,48183,340,14 +2020-06-27,Gregg,Texas,48183,340,14 +2020-06-28,Gregg,Texas,48183,340,14 +2020-06-29,Gregg,Texas,48183,354,14 +2020-06-30,Gregg,Texas,48183,355,14 +2020-07-01,Gregg,Texas,48183,397,14 +2020-07-02,Gregg,Texas,48183,417,14 +2020-07-03,Gregg,Texas,48183,417,14 +2020-07-04,Gregg,Texas,48183,417,14 +2020-07-05,Gregg,Texas,48183,417,14 +2020-07-06,Gregg,Texas,48183,486,14 +2020-07-07,Gregg,Texas,48183,486,14 +2020-07-08,Gregg,Texas,48183,668,14 +2020-07-09,Gregg,Texas,48183,745,14 +2020-03-25,Grimes,Texas,48185,2,0 +2020-03-26,Grimes,Texas,48185,2,0 +2020-03-27,Grimes,Texas,48185,2,0 +2020-03-28,Grimes,Texas,48185,2,0 +2020-03-29,Grimes,Texas,48185,2,0 +2020-03-30,Grimes,Texas,48185,2,0 +2020-03-31,Grimes,Texas,48185,3,0 +2020-04-01,Grimes,Texas,48185,3,0 +2020-04-02,Grimes,Texas,48185,3,0 +2020-04-03,Grimes,Texas,48185,3,0 +2020-04-04,Grimes,Texas,48185,3,0 +2020-04-05,Grimes,Texas,48185,3,0 +2020-04-06,Grimes,Texas,48185,3,0 +2020-04-07,Grimes,Texas,48185,4,0 +2020-04-08,Grimes,Texas,48185,4,0 +2020-04-09,Grimes,Texas,48185,5,0 +2020-04-10,Grimes,Texas,48185,6,0 +2020-04-11,Grimes,Texas,48185,6,0 +2020-04-12,Grimes,Texas,48185,7,0 +2020-04-13,Grimes,Texas,48185,7,0 +2020-04-14,Grimes,Texas,48185,7,0 +2020-04-15,Grimes,Texas,48185,7,0 +2020-04-16,Grimes,Texas,48185,9,1 +2020-04-17,Grimes,Texas,48185,10,1 +2020-04-18,Grimes,Texas,48185,10,1 +2020-04-19,Grimes,Texas,48185,10,1 +2020-04-20,Grimes,Texas,48185,10,1 +2020-04-21,Grimes,Texas,48185,10,1 +2020-04-22,Grimes,Texas,48185,10,1 +2020-04-23,Grimes,Texas,48185,10,1 +2020-04-24,Grimes,Texas,48185,13,1 +2020-04-25,Grimes,Texas,48185,13,1 +2020-04-26,Grimes,Texas,48185,13,1 +2020-04-27,Grimes,Texas,48185,15,1 +2020-04-28,Grimes,Texas,48185,16,1 +2020-04-29,Grimes,Texas,48185,16,1 +2020-04-30,Grimes,Texas,48185,19,1 +2020-05-01,Grimes,Texas,48185,19,1 +2020-05-02,Grimes,Texas,48185,21,1 +2020-05-03,Grimes,Texas,48185,22,1 +2020-05-04,Grimes,Texas,48185,22,1 +2020-05-05,Grimes,Texas,48185,22,1 +2020-05-06,Grimes,Texas,48185,25,1 +2020-05-07,Grimes,Texas,48185,25,1 +2020-05-08,Grimes,Texas,48185,37,1 +2020-05-09,Grimes,Texas,48185,42,1 +2020-05-10,Grimes,Texas,48185,42,1 +2020-05-11,Grimes,Texas,48185,42,1 +2020-05-12,Grimes,Texas,48185,42,1 +2020-05-13,Grimes,Texas,48185,54,1 +2020-05-14,Grimes,Texas,48185,56,1 +2020-05-15,Grimes,Texas,48185,63,1 +2020-05-16,Grimes,Texas,48185,65,1 +2020-05-17,Grimes,Texas,48185,65,1 +2020-05-18,Grimes,Texas,48185,65,1 +2020-05-19,Grimes,Texas,48185,65,1 +2020-05-20,Grimes,Texas,48185,89,1 +2020-05-21,Grimes,Texas,48185,91,1 +2020-05-22,Grimes,Texas,48185,91,1 +2020-05-23,Grimes,Texas,48185,99,1 +2020-05-24,Grimes,Texas,48185,99,1 +2020-05-25,Grimes,Texas,48185,100,1 +2020-05-26,Grimes,Texas,48185,104,1 +2020-05-27,Grimes,Texas,48185,111,1 +2020-05-28,Grimes,Texas,48185,113,1 +2020-05-29,Grimes,Texas,48185,114,1 +2020-05-30,Grimes,Texas,48185,121,1 +2020-05-31,Grimes,Texas,48185,215,1 +2020-06-01,Grimes,Texas,48185,217,1 +2020-06-02,Grimes,Texas,48185,218,1 +2020-06-03,Grimes,Texas,48185,226,1 +2020-06-04,Grimes,Texas,48185,226,1 +2020-06-05,Grimes,Texas,48185,226,1 +2020-06-06,Grimes,Texas,48185,237,1 +2020-06-07,Grimes,Texas,48185,241,1 +2020-06-08,Grimes,Texas,48185,241,1 +2020-06-09,Grimes,Texas,48185,245,1 +2020-06-10,Grimes,Texas,48185,252,1 +2020-06-11,Grimes,Texas,48185,252,1 +2020-06-12,Grimes,Texas,48185,270,1 +2020-06-13,Grimes,Texas,48185,271,2 +2020-06-14,Grimes,Texas,48185,274,2 +2020-06-15,Grimes,Texas,48185,274,2 +2020-06-16,Grimes,Texas,48185,281,2 +2020-06-17,Grimes,Texas,48185,287,2 +2020-06-18,Grimes,Texas,48185,291,2 +2020-06-19,Grimes,Texas,48185,288,2 +2020-06-20,Grimes,Texas,48185,289,2 +2020-06-21,Grimes,Texas,48185,301,2 +2020-06-22,Grimes,Texas,48185,303,2 +2020-06-23,Grimes,Texas,48185,312,2 +2020-06-24,Grimes,Texas,48185,312,2 +2020-06-25,Grimes,Texas,48185,322,2 +2020-06-26,Grimes,Texas,48185,338,2 +2020-06-27,Grimes,Texas,48185,341,2 +2020-06-28,Grimes,Texas,48185,344,2 +2020-06-29,Grimes,Texas,48185,355,2 +2020-06-30,Grimes,Texas,48185,513,2 +2020-07-01,Grimes,Texas,48185,539,2 +2020-07-02,Grimes,Texas,48185,545,2 +2020-07-03,Grimes,Texas,48185,551,2 +2020-07-04,Grimes,Texas,48185,557,2 +2020-07-05,Grimes,Texas,48185,557,2 +2020-07-06,Grimes,Texas,48185,558,2 +2020-07-07,Grimes,Texas,48185,575,2 +2020-07-08,Grimes,Texas,48185,617,2 +2020-07-09,Grimes,Texas,48185,638,2 +2020-03-25,Guadalupe,Texas,48187,4,0 +2020-03-26,Guadalupe,Texas,48187,8,0 +2020-03-27,Guadalupe,Texas,48187,8,0 +2020-03-28,Guadalupe,Texas,48187,8,0 +2020-03-29,Guadalupe,Texas,48187,10,0 +2020-03-30,Guadalupe,Texas,48187,13,0 +2020-03-31,Guadalupe,Texas,48187,15,0 +2020-04-01,Guadalupe,Texas,48187,17,0 +2020-04-02,Guadalupe,Texas,48187,20,0 +2020-04-03,Guadalupe,Texas,48187,23,0 +2020-04-04,Guadalupe,Texas,48187,26,0 +2020-04-05,Guadalupe,Texas,48187,28,0 +2020-04-06,Guadalupe,Texas,48187,28,0 +2020-04-07,Guadalupe,Texas,48187,39,0 +2020-04-08,Guadalupe,Texas,48187,45,0 +2020-04-09,Guadalupe,Texas,48187,45,0 +2020-04-10,Guadalupe,Texas,48187,47,0 +2020-04-11,Guadalupe,Texas,48187,47,0 +2020-04-12,Guadalupe,Texas,48187,49,0 +2020-04-13,Guadalupe,Texas,48187,49,0 +2020-04-14,Guadalupe,Texas,48187,50,0 +2020-04-15,Guadalupe,Texas,48187,50,0 +2020-04-16,Guadalupe,Texas,48187,53,0 +2020-04-17,Guadalupe,Texas,48187,53,0 +2020-04-18,Guadalupe,Texas,48187,53,0 +2020-04-19,Guadalupe,Texas,48187,57,0 +2020-04-20,Guadalupe,Texas,48187,58,0 +2020-04-21,Guadalupe,Texas,48187,60,0 +2020-04-22,Guadalupe,Texas,48187,63,0 +2020-04-23,Guadalupe,Texas,48187,64,0 +2020-04-24,Guadalupe,Texas,48187,64,0 +2020-04-25,Guadalupe,Texas,48187,67,0 +2020-04-26,Guadalupe,Texas,48187,68,0 +2020-04-27,Guadalupe,Texas,48187,69,0 +2020-04-28,Guadalupe,Texas,48187,69,0 +2020-04-29,Guadalupe,Texas,48187,80,0 +2020-04-30,Guadalupe,Texas,48187,80,0 +2020-05-01,Guadalupe,Texas,48187,81,0 +2020-05-02,Guadalupe,Texas,48187,85,0 +2020-05-03,Guadalupe,Texas,48187,85,0 +2020-05-04,Guadalupe,Texas,48187,86,0 +2020-05-05,Guadalupe,Texas,48187,87,0 +2020-05-06,Guadalupe,Texas,48187,88,0 +2020-05-07,Guadalupe,Texas,48187,90,0 +2020-05-08,Guadalupe,Texas,48187,92,0 +2020-05-09,Guadalupe,Texas,48187,92,0 +2020-05-10,Guadalupe,Texas,48187,95,0 +2020-05-11,Guadalupe,Texas,48187,97,0 +2020-05-12,Guadalupe,Texas,48187,99,0 +2020-05-13,Guadalupe,Texas,48187,99,0 +2020-05-14,Guadalupe,Texas,48187,101,0 +2020-05-15,Guadalupe,Texas,48187,106,0 +2020-05-16,Guadalupe,Texas,48187,109,0 +2020-05-17,Guadalupe,Texas,48187,110,0 +2020-05-18,Guadalupe,Texas,48187,110,0 +2020-05-19,Guadalupe,Texas,48187,110,0 +2020-05-20,Guadalupe,Texas,48187,114,0 +2020-05-21,Guadalupe,Texas,48187,116,0 +2020-05-22,Guadalupe,Texas,48187,116,0 +2020-05-23,Guadalupe,Texas,48187,122,0 +2020-05-24,Guadalupe,Texas,48187,122,0 +2020-05-25,Guadalupe,Texas,48187,122,0 +2020-05-26,Guadalupe,Texas,48187,122,0 +2020-05-27,Guadalupe,Texas,48187,124,0 +2020-05-28,Guadalupe,Texas,48187,126,0 +2020-05-29,Guadalupe,Texas,48187,129,0 +2020-05-30,Guadalupe,Texas,48187,132,0 +2020-05-31,Guadalupe,Texas,48187,133,0 +2020-06-01,Guadalupe,Texas,48187,133,0 +2020-06-02,Guadalupe,Texas,48187,133,0 +2020-06-03,Guadalupe,Texas,48187,135,0 +2020-06-04,Guadalupe,Texas,48187,142,0 +2020-06-05,Guadalupe,Texas,48187,145,0 +2020-06-06,Guadalupe,Texas,48187,147,0 +2020-06-07,Guadalupe,Texas,48187,147,0 +2020-06-08,Guadalupe,Texas,48187,147,0 +2020-06-09,Guadalupe,Texas,48187,147,0 +2020-06-10,Guadalupe,Texas,48187,151,0 +2020-06-11,Guadalupe,Texas,48187,154,0 +2020-06-12,Guadalupe,Texas,48187,160,0 +2020-06-13,Guadalupe,Texas,48187,165,0 +2020-06-14,Guadalupe,Texas,48187,171,0 +2020-06-15,Guadalupe,Texas,48187,171,0 +2020-06-16,Guadalupe,Texas,48187,175,0 +2020-06-17,Guadalupe,Texas,48187,184,0 +2020-06-18,Guadalupe,Texas,48187,186,0 +2020-06-19,Guadalupe,Texas,48187,280,1 +2020-06-20,Guadalupe,Texas,48187,311,1 +2020-06-21,Guadalupe,Texas,48187,323,1 +2020-06-22,Guadalupe,Texas,48187,323,1 +2020-06-23,Guadalupe,Texas,48187,417,1 +2020-06-24,Guadalupe,Texas,48187,467,1 +2020-06-25,Guadalupe,Texas,48187,563,1 +2020-06-26,Guadalupe,Texas,48187,581,1 +2020-06-27,Guadalupe,Texas,48187,636,1 +2020-06-28,Guadalupe,Texas,48187,638,1 +2020-06-29,Guadalupe,Texas,48187,638,1 +2020-06-30,Guadalupe,Texas,48187,698,1 +2020-07-01,Guadalupe,Texas,48187,705,2 +2020-07-02,Guadalupe,Texas,48187,737,2 +2020-07-03,Guadalupe,Texas,48187,768,2 +2020-07-04,Guadalupe,Texas,48187,849,3 +2020-07-05,Guadalupe,Texas,48187,849,3 +2020-07-06,Guadalupe,Texas,48187,858,3 +2020-07-07,Guadalupe,Texas,48187,896,3 +2020-07-08,Guadalupe,Texas,48187,901,3 +2020-07-09,Guadalupe,Texas,48187,929,3 +2020-03-25,Hale,Texas,48189,1,0 +2020-03-26,Hale,Texas,48189,1,0 +2020-03-27,Hale,Texas,48189,1,0 +2020-03-28,Hale,Texas,48189,1,0 +2020-03-29,Hale,Texas,48189,1,0 +2020-03-30,Hale,Texas,48189,1,0 +2020-03-31,Hale,Texas,48189,1,0 +2020-04-01,Hale,Texas,48189,1,0 +2020-04-02,Hale,Texas,48189,1,0 +2020-04-03,Hale,Texas,48189,6,0 +2020-04-04,Hale,Texas,48189,7,0 +2020-04-05,Hale,Texas,48189,7,0 +2020-04-06,Hale,Texas,48189,7,0 +2020-04-07,Hale,Texas,48189,7,0 +2020-04-08,Hale,Texas,48189,7,0 +2020-04-09,Hale,Texas,48189,9,1 +2020-04-10,Hale,Texas,48189,9,1 +2020-04-11,Hale,Texas,48189,11,2 +2020-04-12,Hale,Texas,48189,11,2 +2020-04-13,Hale,Texas,48189,11,2 +2020-04-14,Hale,Texas,48189,11,2 +2020-04-15,Hale,Texas,48189,11,2 +2020-04-16,Hale,Texas,48189,11,2 +2020-04-17,Hale,Texas,48189,11,2 +2020-04-18,Hale,Texas,48189,11,2 +2020-04-19,Hale,Texas,48189,12,2 +2020-04-20,Hale,Texas,48189,12,2 +2020-04-21,Hale,Texas,48189,15,2 +2020-04-22,Hale,Texas,48189,16,4 +2020-04-23,Hale,Texas,48189,16,4 +2020-04-24,Hale,Texas,48189,19,4 +2020-04-25,Hale,Texas,48189,19,4 +2020-04-26,Hale,Texas,48189,19,4 +2020-04-27,Hale,Texas,48189,19,4 +2020-04-28,Hale,Texas,48189,24,4 +2020-04-29,Hale,Texas,48189,24,4 +2020-04-30,Hale,Texas,48189,25,4 +2020-05-01,Hale,Texas,48189,25,4 +2020-05-02,Hale,Texas,48189,26,4 +2020-05-03,Hale,Texas,48189,29,4 +2020-05-04,Hale,Texas,48189,29,4 +2020-05-05,Hale,Texas,48189,29,4 +2020-05-06,Hale,Texas,48189,31,4 +2020-05-07,Hale,Texas,48189,37,4 +2020-05-08,Hale,Texas,48189,37,4 +2020-05-09,Hale,Texas,48189,37,4 +2020-05-10,Hale,Texas,48189,37,4 +2020-05-11,Hale,Texas,48189,37,4 +2020-05-12,Hale,Texas,48189,39,4 +2020-05-13,Hale,Texas,48189,40,4 +2020-05-14,Hale,Texas,48189,41,4 +2020-05-15,Hale,Texas,48189,42,4 +2020-05-16,Hale,Texas,48189,43,4 +2020-05-17,Hale,Texas,48189,44,4 +2020-05-18,Hale,Texas,48189,44,4 +2020-05-19,Hale,Texas,48189,49,4 +2020-05-20,Hale,Texas,48189,49,4 +2020-05-21,Hale,Texas,48189,50,4 +2020-05-22,Hale,Texas,48189,50,4 +2020-05-23,Hale,Texas,48189,54,4 +2020-05-24,Hale,Texas,48189,55,4 +2020-05-25,Hale,Texas,48189,55,4 +2020-05-26,Hale,Texas,48189,55,4 +2020-05-27,Hale,Texas,48189,56,4 +2020-05-28,Hale,Texas,48189,56,4 +2020-05-29,Hale,Texas,48189,57,4 +2020-05-30,Hale,Texas,48189,57,4 +2020-05-31,Hale,Texas,48189,58,4 +2020-06-01,Hale,Texas,48189,58,4 +2020-06-02,Hale,Texas,48189,58,4 +2020-06-03,Hale,Texas,48189,60,4 +2020-06-04,Hale,Texas,48189,60,4 +2020-06-05,Hale,Texas,48189,60,4 +2020-06-06,Hale,Texas,48189,60,4 +2020-06-07,Hale,Texas,48189,60,4 +2020-06-08,Hale,Texas,48189,61,4 +2020-06-09,Hale,Texas,48189,61,4 +2020-06-10,Hale,Texas,48189,67,5 +2020-06-11,Hale,Texas,48189,67,5 +2020-06-12,Hale,Texas,48189,76,5 +2020-06-13,Hale,Texas,48189,76,5 +2020-06-14,Hale,Texas,48189,85,5 +2020-06-15,Hale,Texas,48189,85,5 +2020-06-16,Hale,Texas,48189,100,5 +2020-06-17,Hale,Texas,48189,110,5 +2020-06-18,Hale,Texas,48189,110,5 +2020-06-19,Hale,Texas,48189,122,5 +2020-06-20,Hale,Texas,48189,135,5 +2020-06-21,Hale,Texas,48189,139,5 +2020-06-22,Hale,Texas,48189,139,5 +2020-06-23,Hale,Texas,48189,176,6 +2020-06-24,Hale,Texas,48189,178,6 +2020-06-25,Hale,Texas,48189,214,7 +2020-06-26,Hale,Texas,48189,235,7 +2020-06-27,Hale,Texas,48189,235,7 +2020-06-28,Hale,Texas,48189,235,7 +2020-06-29,Hale,Texas,48189,235,7 +2020-06-30,Hale,Texas,48189,285,7 +2020-07-01,Hale,Texas,48189,300,7 +2020-07-02,Hale,Texas,48189,369,7 +2020-07-03,Hale,Texas,48189,427,7 +2020-07-04,Hale,Texas,48189,500,7 +2020-07-05,Hale,Texas,48189,500,7 +2020-07-06,Hale,Texas,48189,500,7 +2020-07-07,Hale,Texas,48189,592,7 +2020-07-08,Hale,Texas,48189,592,7 +2020-07-09,Hale,Texas,48189,661,8 +2020-05-20,Hall,Texas,48191,1,0 +2020-05-21,Hall,Texas,48191,1,0 +2020-05-22,Hall,Texas,48191,1,0 +2020-05-23,Hall,Texas,48191,1,0 +2020-05-24,Hall,Texas,48191,2,0 +2020-05-25,Hall,Texas,48191,2,0 +2020-05-26,Hall,Texas,48191,2,0 +2020-05-27,Hall,Texas,48191,2,0 +2020-05-28,Hall,Texas,48191,2,0 +2020-05-29,Hall,Texas,48191,2,0 +2020-05-30,Hall,Texas,48191,2,0 +2020-05-31,Hall,Texas,48191,2,0 +2020-06-01,Hall,Texas,48191,2,0 +2020-06-02,Hall,Texas,48191,2,0 +2020-06-03,Hall,Texas,48191,2,0 +2020-06-04,Hall,Texas,48191,2,0 +2020-06-05,Hall,Texas,48191,2,0 +2020-06-06,Hall,Texas,48191,2,0 +2020-06-07,Hall,Texas,48191,2,0 +2020-06-08,Hall,Texas,48191,2,0 +2020-06-09,Hall,Texas,48191,2,0 +2020-06-10,Hall,Texas,48191,2,0 +2020-06-11,Hall,Texas,48191,2,1 +2020-06-12,Hall,Texas,48191,2,1 +2020-06-13,Hall,Texas,48191,2,1 +2020-06-14,Hall,Texas,48191,2,1 +2020-06-15,Hall,Texas,48191,2,1 +2020-06-16,Hall,Texas,48191,2,1 +2020-06-17,Hall,Texas,48191,2,1 +2020-06-18,Hall,Texas,48191,2,1 +2020-06-19,Hall,Texas,48191,2,1 +2020-06-20,Hall,Texas,48191,2,1 +2020-06-21,Hall,Texas,48191,2,1 +2020-06-22,Hall,Texas,48191,2,1 +2020-06-23,Hall,Texas,48191,2,1 +2020-06-24,Hall,Texas,48191,2,1 +2020-06-25,Hall,Texas,48191,2,1 +2020-06-26,Hall,Texas,48191,2,1 +2020-06-27,Hall,Texas,48191,2,1 +2020-06-28,Hall,Texas,48191,2,1 +2020-06-29,Hall,Texas,48191,2,1 +2020-06-30,Hall,Texas,48191,2,1 +2020-07-01,Hall,Texas,48191,2,1 +2020-07-02,Hall,Texas,48191,2,1 +2020-07-03,Hall,Texas,48191,2,1 +2020-07-04,Hall,Texas,48191,2,1 +2020-07-05,Hall,Texas,48191,2,1 +2020-07-06,Hall,Texas,48191,2,1 +2020-07-07,Hall,Texas,48191,2,1 +2020-07-08,Hall,Texas,48191,2,1 +2020-07-09,Hall,Texas,48191,2,1 +2020-04-07,Hamilton,Texas,48193,1,0 +2020-04-08,Hamilton,Texas,48193,1,0 +2020-04-09,Hamilton,Texas,48193,1,0 +2020-04-10,Hamilton,Texas,48193,1,0 +2020-04-11,Hamilton,Texas,48193,2,0 +2020-04-12,Hamilton,Texas,48193,2,0 +2020-04-13,Hamilton,Texas,48193,2,0 +2020-04-14,Hamilton,Texas,48193,2,0 +2020-04-15,Hamilton,Texas,48193,3,0 +2020-04-16,Hamilton,Texas,48193,3,0 +2020-04-17,Hamilton,Texas,48193,5,0 +2020-04-18,Hamilton,Texas,48193,5,0 +2020-04-19,Hamilton,Texas,48193,5,0 +2020-04-20,Hamilton,Texas,48193,5,0 +2020-04-21,Hamilton,Texas,48193,5,0 +2020-04-22,Hamilton,Texas,48193,5,0 +2020-04-23,Hamilton,Texas,48193,5,0 +2020-04-24,Hamilton,Texas,48193,5,0 +2020-04-25,Hamilton,Texas,48193,5,0 +2020-04-26,Hamilton,Texas,48193,5,0 +2020-04-27,Hamilton,Texas,48193,5,0 +2020-04-28,Hamilton,Texas,48193,5,0 +2020-04-29,Hamilton,Texas,48193,5,0 +2020-04-30,Hamilton,Texas,48193,5,0 +2020-05-01,Hamilton,Texas,48193,5,0 +2020-05-02,Hamilton,Texas,48193,5,0 +2020-05-03,Hamilton,Texas,48193,5,0 +2020-05-04,Hamilton,Texas,48193,5,0 +2020-05-05,Hamilton,Texas,48193,5,0 +2020-05-06,Hamilton,Texas,48193,5,0 +2020-05-07,Hamilton,Texas,48193,5,0 +2020-05-08,Hamilton,Texas,48193,6,0 +2020-05-09,Hamilton,Texas,48193,6,0 +2020-05-10,Hamilton,Texas,48193,6,0 +2020-05-11,Hamilton,Texas,48193,7,0 +2020-05-12,Hamilton,Texas,48193,7,0 +2020-05-13,Hamilton,Texas,48193,7,0 +2020-05-14,Hamilton,Texas,48193,7,0 +2020-05-15,Hamilton,Texas,48193,7,0 +2020-05-16,Hamilton,Texas,48193,7,0 +2020-05-17,Hamilton,Texas,48193,7,0 +2020-05-18,Hamilton,Texas,48193,7,0 +2020-05-19,Hamilton,Texas,48193,7,0 +2020-05-20,Hamilton,Texas,48193,7,0 +2020-05-21,Hamilton,Texas,48193,7,0 +2020-05-22,Hamilton,Texas,48193,7,0 +2020-05-23,Hamilton,Texas,48193,7,1 +2020-05-24,Hamilton,Texas,48193,7,1 +2020-05-25,Hamilton,Texas,48193,7,1 +2020-05-26,Hamilton,Texas,48193,7,1 +2020-05-27,Hamilton,Texas,48193,7,1 +2020-05-28,Hamilton,Texas,48193,7,1 +2020-05-29,Hamilton,Texas,48193,7,1 +2020-05-30,Hamilton,Texas,48193,8,1 +2020-05-31,Hamilton,Texas,48193,8,1 +2020-06-01,Hamilton,Texas,48193,8,1 +2020-06-02,Hamilton,Texas,48193,8,1 +2020-06-03,Hamilton,Texas,48193,8,1 +2020-06-04,Hamilton,Texas,48193,9,1 +2020-06-05,Hamilton,Texas,48193,9,1 +2020-06-06,Hamilton,Texas,48193,9,1 +2020-06-07,Hamilton,Texas,48193,9,1 +2020-06-08,Hamilton,Texas,48193,9,1 +2020-06-09,Hamilton,Texas,48193,10,1 +2020-06-10,Hamilton,Texas,48193,10,1 +2020-06-11,Hamilton,Texas,48193,10,1 +2020-06-12,Hamilton,Texas,48193,11,1 +2020-06-13,Hamilton,Texas,48193,11,1 +2020-06-14,Hamilton,Texas,48193,11,1 +2020-06-15,Hamilton,Texas,48193,11,1 +2020-06-16,Hamilton,Texas,48193,15,1 +2020-06-17,Hamilton,Texas,48193,18,1 +2020-06-18,Hamilton,Texas,48193,18,1 +2020-06-19,Hamilton,Texas,48193,18,1 +2020-06-20,Hamilton,Texas,48193,18,1 +2020-06-21,Hamilton,Texas,48193,18,1 +2020-06-22,Hamilton,Texas,48193,19,1 +2020-06-23,Hamilton,Texas,48193,19,1 +2020-06-24,Hamilton,Texas,48193,19,1 +2020-06-25,Hamilton,Texas,48193,19,1 +2020-06-26,Hamilton,Texas,48193,19,1 +2020-06-27,Hamilton,Texas,48193,19,1 +2020-06-28,Hamilton,Texas,48193,19,1 +2020-06-29,Hamilton,Texas,48193,20,1 +2020-06-30,Hamilton,Texas,48193,20,1 +2020-07-01,Hamilton,Texas,48193,20,1 +2020-07-02,Hamilton,Texas,48193,20,1 +2020-07-03,Hamilton,Texas,48193,21,1 +2020-07-04,Hamilton,Texas,48193,22,1 +2020-07-05,Hamilton,Texas,48193,22,1 +2020-07-06,Hamilton,Texas,48193,22,1 +2020-07-07,Hamilton,Texas,48193,22,1 +2020-07-08,Hamilton,Texas,48193,26,1 +2020-07-09,Hamilton,Texas,48193,28,1 +2020-04-07,Hansford,Texas,48195,1,0 +2020-04-08,Hansford,Texas,48195,1,0 +2020-04-09,Hansford,Texas,48195,1,0 +2020-04-10,Hansford,Texas,48195,1,0 +2020-04-11,Hansford,Texas,48195,1,0 +2020-04-12,Hansford,Texas,48195,1,0 +2020-04-13,Hansford,Texas,48195,1,0 +2020-04-14,Hansford,Texas,48195,1,0 +2020-04-15,Hansford,Texas,48195,1,0 +2020-04-16,Hansford,Texas,48195,1,0 +2020-04-17,Hansford,Texas,48195,1,0 +2020-04-18,Hansford,Texas,48195,1,0 +2020-04-19,Hansford,Texas,48195,1,0 +2020-04-20,Hansford,Texas,48195,1,0 +2020-04-21,Hansford,Texas,48195,1,0 +2020-04-22,Hansford,Texas,48195,1,0 +2020-04-23,Hansford,Texas,48195,2,0 +2020-04-24,Hansford,Texas,48195,2,0 +2020-04-25,Hansford,Texas,48195,4,0 +2020-04-26,Hansford,Texas,48195,4,0 +2020-04-27,Hansford,Texas,48195,4,0 +2020-04-28,Hansford,Texas,48195,5,0 +2020-04-29,Hansford,Texas,48195,5,0 +2020-04-30,Hansford,Texas,48195,6,0 +2020-05-01,Hansford,Texas,48195,6,0 +2020-05-02,Hansford,Texas,48195,6,0 +2020-05-03,Hansford,Texas,48195,7,0 +2020-05-04,Hansford,Texas,48195,7,1 +2020-05-05,Hansford,Texas,48195,11,2 +2020-05-06,Hansford,Texas,48195,11,2 +2020-05-07,Hansford,Texas,48195,11,2 +2020-05-08,Hansford,Texas,48195,12,2 +2020-05-09,Hansford,Texas,48195,12,2 +2020-05-10,Hansford,Texas,48195,12,2 +2020-05-11,Hansford,Texas,48195,12,2 +2020-05-12,Hansford,Texas,48195,13,2 +2020-05-13,Hansford,Texas,48195,13,2 +2020-05-14,Hansford,Texas,48195,15,2 +2020-05-15,Hansford,Texas,48195,15,2 +2020-05-16,Hansford,Texas,48195,16,2 +2020-05-17,Hansford,Texas,48195,16,2 +2020-05-18,Hansford,Texas,48195,16,2 +2020-05-19,Hansford,Texas,48195,16,2 +2020-05-20,Hansford,Texas,48195,17,2 +2020-05-21,Hansford,Texas,48195,18,2 +2020-05-22,Hansford,Texas,48195,18,2 +2020-05-23,Hansford,Texas,48195,18,2 +2020-05-24,Hansford,Texas,48195,18,2 +2020-05-25,Hansford,Texas,48195,18,2 +2020-05-26,Hansford,Texas,48195,18,2 +2020-05-27,Hansford,Texas,48195,18,2 +2020-05-28,Hansford,Texas,48195,18,2 +2020-05-29,Hansford,Texas,48195,18,2 +2020-05-30,Hansford,Texas,48195,19,2 +2020-05-31,Hansford,Texas,48195,19,2 +2020-06-01,Hansford,Texas,48195,19,2 +2020-06-02,Hansford,Texas,48195,19,2 +2020-06-03,Hansford,Texas,48195,20,2 +2020-06-04,Hansford,Texas,48195,20,2 +2020-06-05,Hansford,Texas,48195,20,2 +2020-06-06,Hansford,Texas,48195,20,2 +2020-06-07,Hansford,Texas,48195,20,2 +2020-06-08,Hansford,Texas,48195,20,2 +2020-06-09,Hansford,Texas,48195,20,2 +2020-06-10,Hansford,Texas,48195,21,2 +2020-06-11,Hansford,Texas,48195,21,2 +2020-06-12,Hansford,Texas,48195,21,2 +2020-06-13,Hansford,Texas,48195,21,2 +2020-06-14,Hansford,Texas,48195,21,2 +2020-06-15,Hansford,Texas,48195,21,2 +2020-06-16,Hansford,Texas,48195,23,2 +2020-06-17,Hansford,Texas,48195,23,2 +2020-06-18,Hansford,Texas,48195,23,2 +2020-06-19,Hansford,Texas,48195,23,2 +2020-06-20,Hansford,Texas,48195,23,2 +2020-06-21,Hansford,Texas,48195,23,2 +2020-06-22,Hansford,Texas,48195,23,2 +2020-06-23,Hansford,Texas,48195,24,2 +2020-06-24,Hansford,Texas,48195,24,2 +2020-06-25,Hansford,Texas,48195,26,2 +2020-06-26,Hansford,Texas,48195,27,2 +2020-06-27,Hansford,Texas,48195,28,2 +2020-06-28,Hansford,Texas,48195,28,2 +2020-06-29,Hansford,Texas,48195,28,2 +2020-06-30,Hansford,Texas,48195,28,2 +2020-07-01,Hansford,Texas,48195,28,2 +2020-07-02,Hansford,Texas,48195,31,2 +2020-07-03,Hansford,Texas,48195,31,2 +2020-07-04,Hansford,Texas,48195,31,2 +2020-07-05,Hansford,Texas,48195,31,2 +2020-07-06,Hansford,Texas,48195,31,2 +2020-07-07,Hansford,Texas,48195,31,2 +2020-07-08,Hansford,Texas,48195,31,2 +2020-07-09,Hansford,Texas,48195,31,2 +2020-05-23,Hardeman,Texas,48197,1,0 +2020-05-24,Hardeman,Texas,48197,1,0 +2020-05-25,Hardeman,Texas,48197,1,0 +2020-05-26,Hardeman,Texas,48197,1,0 +2020-05-27,Hardeman,Texas,48197,1,0 +2020-05-28,Hardeman,Texas,48197,1,0 +2020-05-29,Hardeman,Texas,48197,1,0 +2020-05-30,Hardeman,Texas,48197,1,0 +2020-05-31,Hardeman,Texas,48197,1,0 +2020-06-01,Hardeman,Texas,48197,1,0 +2020-06-02,Hardeman,Texas,48197,1,0 +2020-06-03,Hardeman,Texas,48197,2,0 +2020-06-04,Hardeman,Texas,48197,2,0 +2020-06-05,Hardeman,Texas,48197,3,0 +2020-06-06,Hardeman,Texas,48197,3,0 +2020-06-07,Hardeman,Texas,48197,3,0 +2020-06-08,Hardeman,Texas,48197,3,0 +2020-06-09,Hardeman,Texas,48197,4,0 +2020-06-10,Hardeman,Texas,48197,4,0 +2020-06-11,Hardeman,Texas,48197,4,0 +2020-06-12,Hardeman,Texas,48197,4,0 +2020-06-13,Hardeman,Texas,48197,4,0 +2020-06-14,Hardeman,Texas,48197,4,0 +2020-06-15,Hardeman,Texas,48197,4,0 +2020-06-16,Hardeman,Texas,48197,4,0 +2020-06-17,Hardeman,Texas,48197,4,0 +2020-06-18,Hardeman,Texas,48197,4,0 +2020-06-19,Hardeman,Texas,48197,4,0 +2020-06-20,Hardeman,Texas,48197,4,0 +2020-06-21,Hardeman,Texas,48197,4,0 +2020-06-22,Hardeman,Texas,48197,4,0 +2020-06-23,Hardeman,Texas,48197,4,0 +2020-06-24,Hardeman,Texas,48197,4,0 +2020-06-25,Hardeman,Texas,48197,4,0 +2020-06-26,Hardeman,Texas,48197,4,0 +2020-06-27,Hardeman,Texas,48197,4,0 +2020-06-28,Hardeman,Texas,48197,4,0 +2020-06-29,Hardeman,Texas,48197,4,0 +2020-06-30,Hardeman,Texas,48197,5,0 +2020-07-01,Hardeman,Texas,48197,5,0 +2020-07-02,Hardeman,Texas,48197,5,0 +2020-07-03,Hardeman,Texas,48197,5,0 +2020-07-04,Hardeman,Texas,48197,5,0 +2020-07-05,Hardeman,Texas,48197,5,0 +2020-07-06,Hardeman,Texas,48197,5,0 +2020-07-07,Hardeman,Texas,48197,5,0 +2020-07-08,Hardeman,Texas,48197,5,0 +2020-07-09,Hardeman,Texas,48197,5,0 +2020-03-25,Hardin,Texas,48199,2,0 +2020-03-26,Hardin,Texas,48199,2,0 +2020-03-27,Hardin,Texas,48199,4,0 +2020-03-28,Hardin,Texas,48199,6,1 +2020-03-29,Hardin,Texas,48199,9,1 +2020-03-30,Hardin,Texas,48199,9,1 +2020-03-31,Hardin,Texas,48199,12,1 +2020-04-01,Hardin,Texas,48199,13,1 +2020-04-02,Hardin,Texas,48199,14,1 +2020-04-03,Hardin,Texas,48199,15,1 +2020-04-04,Hardin,Texas,48199,19,1 +2020-04-05,Hardin,Texas,48199,26,1 +2020-04-06,Hardin,Texas,48199,28,1 +2020-04-07,Hardin,Texas,48199,28,1 +2020-04-08,Hardin,Texas,48199,39,1 +2020-04-09,Hardin,Texas,48199,41,2 +2020-04-10,Hardin,Texas,48199,41,2 +2020-04-11,Hardin,Texas,48199,57,2 +2020-04-12,Hardin,Texas,48199,61,2 +2020-04-13,Hardin,Texas,48199,61,2 +2020-04-14,Hardin,Texas,48199,65,2 +2020-04-15,Hardin,Texas,48199,65,2 +2020-04-16,Hardin,Texas,48199,66,2 +2020-04-17,Hardin,Texas,48199,75,2 +2020-04-18,Hardin,Texas,48199,80,2 +2020-04-19,Hardin,Texas,48199,80,2 +2020-04-20,Hardin,Texas,48199,88,2 +2020-04-21,Hardin,Texas,48199,91,2 +2020-04-22,Hardin,Texas,48199,91,2 +2020-04-23,Hardin,Texas,48199,91,3 +2020-04-24,Hardin,Texas,48199,95,3 +2020-04-25,Hardin,Texas,48199,95,3 +2020-04-26,Hardin,Texas,48199,95,3 +2020-04-27,Hardin,Texas,48199,99,3 +2020-04-28,Hardin,Texas,48199,99,3 +2020-04-29,Hardin,Texas,48199,100,3 +2020-04-30,Hardin,Texas,48199,100,3 +2020-05-01,Hardin,Texas,48199,103,3 +2020-05-02,Hardin,Texas,48199,107,3 +2020-05-03,Hardin,Texas,48199,107,3 +2020-05-04,Hardin,Texas,48199,112,3 +2020-05-05,Hardin,Texas,48199,112,3 +2020-05-06,Hardin,Texas,48199,115,3 +2020-05-07,Hardin,Texas,48199,115,3 +2020-05-08,Hardin,Texas,48199,115,3 +2020-05-09,Hardin,Texas,48199,115,3 +2020-05-10,Hardin,Texas,48199,115,4 +2020-05-11,Hardin,Texas,48199,115,4 +2020-05-12,Hardin,Texas,48199,116,4 +2020-05-13,Hardin,Texas,48199,116,4 +2020-05-14,Hardin,Texas,48199,116,4 +2020-05-15,Hardin,Texas,48199,116,4 +2020-05-16,Hardin,Texas,48199,117,4 +2020-05-17,Hardin,Texas,48199,118,4 +2020-05-18,Hardin,Texas,48199,120,4 +2020-05-19,Hardin,Texas,48199,120,4 +2020-05-20,Hardin,Texas,48199,125,4 +2020-05-21,Hardin,Texas,48199,125,5 +2020-05-22,Hardin,Texas,48199,125,5 +2020-05-23,Hardin,Texas,48199,136,5 +2020-05-24,Hardin,Texas,48199,136,5 +2020-05-25,Hardin,Texas,48199,136,5 +2020-05-26,Hardin,Texas,48199,136,5 +2020-05-27,Hardin,Texas,48199,136,5 +2020-05-28,Hardin,Texas,48199,137,5 +2020-05-29,Hardin,Texas,48199,138,5 +2020-05-30,Hardin,Texas,48199,138,5 +2020-05-31,Hardin,Texas,48199,138,5 +2020-06-01,Hardin,Texas,48199,138,5 +2020-06-02,Hardin,Texas,48199,138,5 +2020-06-03,Hardin,Texas,48199,138,5 +2020-06-04,Hardin,Texas,48199,142,5 +2020-06-05,Hardin,Texas,48199,142,5 +2020-06-06,Hardin,Texas,48199,142,5 +2020-06-07,Hardin,Texas,48199,142,5 +2020-06-08,Hardin,Texas,48199,142,5 +2020-06-09,Hardin,Texas,48199,142,5 +2020-06-10,Hardin,Texas,48199,144,5 +2020-06-11,Hardin,Texas,48199,144,5 +2020-06-12,Hardin,Texas,48199,145,5 +2020-06-13,Hardin,Texas,48199,146,5 +2020-06-14,Hardin,Texas,48199,146,5 +2020-06-15,Hardin,Texas,48199,146,5 +2020-06-16,Hardin,Texas,48199,147,5 +2020-06-17,Hardin,Texas,48199,155,5 +2020-06-18,Hardin,Texas,48199,156,5 +2020-06-19,Hardin,Texas,48199,167,5 +2020-06-20,Hardin,Texas,48199,172,5 +2020-06-21,Hardin,Texas,48199,172,5 +2020-06-22,Hardin,Texas,48199,172,5 +2020-06-23,Hardin,Texas,48199,194,5 +2020-06-24,Hardin,Texas,48199,205,5 +2020-06-25,Hardin,Texas,48199,211,5 +2020-06-26,Hardin,Texas,48199,212,5 +2020-06-27,Hardin,Texas,48199,217,5 +2020-06-28,Hardin,Texas,48199,217,5 +2020-06-29,Hardin,Texas,48199,217,5 +2020-06-30,Hardin,Texas,48199,232,5 +2020-07-01,Hardin,Texas,48199,254,5 +2020-07-02,Hardin,Texas,48199,257,5 +2020-07-03,Hardin,Texas,48199,260,5 +2020-07-04,Hardin,Texas,48199,260,5 +2020-07-05,Hardin,Texas,48199,260,5 +2020-07-06,Hardin,Texas,48199,260,5 +2020-07-07,Hardin,Texas,48199,275,5 +2020-07-08,Hardin,Texas,48199,303,5 +2020-07-09,Hardin,Texas,48199,306,5 +2020-03-05,Harris,Texas,48201,4,0 +2020-03-06,Harris,Texas,48201,5,0 +2020-03-07,Harris,Texas,48201,5,0 +2020-03-08,Harris,Texas,48201,6,0 +2020-03-09,Harris,Texas,48201,6,0 +2020-03-10,Harris,Texas,48201,7,0 +2020-03-11,Harris,Texas,48201,7,0 +2020-03-12,Harris,Texas,48201,9,0 +2020-03-13,Harris,Texas,48201,10,0 +2020-03-14,Harris,Texas,48201,11,0 +2020-03-15,Harris,Texas,48201,13,0 +2020-03-16,Harris,Texas,48201,13,0 +2020-03-17,Harris,Texas,48201,16,0 +2020-03-18,Harris,Texas,48201,28,0 +2020-03-19,Harris,Texas,48201,35,1 +2020-03-20,Harris,Texas,48201,55,1 +2020-03-21,Harris,Texas,48201,68,1 +2020-03-22,Harris,Texas,48201,74,1 +2020-03-23,Harris,Texas,48201,78,1 +2020-03-24,Harris,Texas,48201,134,1 +2020-03-25,Harris,Texas,48201,185,1 +2020-03-26,Harris,Texas,48201,203,2 +2020-03-27,Harris,Texas,48201,229,2 +2020-03-28,Harris,Texas,48201,445,3 +2020-03-29,Harris,Texas,48201,526,4 +2020-03-30,Harris,Texas,48201,563,7 +2020-03-31,Harris,Texas,48201,680,6 +2020-04-01,Harris,Texas,48201,847,6 +2020-04-02,Harris,Texas,48201,895,10 +2020-04-03,Harris,Texas,48201,1036,12 +2020-04-04,Harris,Texas,48201,1284,17 +2020-04-05,Harris,Texas,48201,1395,20 +2020-04-06,Harris,Texas,48201,1809,22 +2020-04-07,Harris,Texas,48201,2146,23 +2020-04-08,Harris,Texas,48201,2341,31 +2020-04-09,Harris,Texas,48201,3047,34 +2020-04-10,Harris,Texas,48201,3261,40 +2020-04-11,Harris,Texas,48201,3561,41 +2020-04-12,Harris,Texas,48201,3629,44 +2020-04-13,Harris,Texas,48201,3747,46 +2020-04-14,Harris,Texas,48201,3907,52 +2020-04-15,Harris,Texas,48201,4097,58 +2020-04-16,Harris,Texas,48201,4306,63 +2020-04-17,Harris,Texas,48201,4460,67 +2020-04-18,Harris,Texas,48201,4653,71 +2020-04-19,Harris,Texas,48201,4823,75 +2020-04-20,Harris,Texas,48201,4977,78 +2020-04-21,Harris,Texas,48201,5143,79 +2020-04-22,Harris,Texas,48201,5211,80 +2020-04-23,Harris,Texas,48201,5330,82 +2020-04-24,Harris,Texas,48201,5482,84 +2020-04-25,Harris,Texas,48201,5628,89 +2020-04-26,Harris,Texas,48201,5729,93 +2020-04-27,Harris,Texas,48201,5827,98 +2020-04-28,Harris,Texas,48201,5986,103 +2020-04-29,Harris,Texas,48201,6161,109 +2020-04-30,Harris,Texas,48201,6356,114 +2020-05-01,Harris,Texas,48201,6551,122 +2020-05-02,Harris,Texas,48201,6708,129 +2020-05-03,Harris,Texas,48201,6838,133 +2020-05-04,Harris,Texas,48201,6967,140 +2020-05-05,Harris,Texas,48201,7128,144 +2020-05-06,Harris,Texas,48201,7244,150 +2020-05-07,Harris,Texas,48201,7377,154 +2020-05-08,Harris,Texas,48201,7594,160 +2020-05-09,Harris,Texas,48201,7803,168 +2020-05-10,Harris,Texas,48201,7878,172 +2020-05-11,Harris,Texas,48201,8176,179 +2020-05-12,Harris,Texas,48201,8416,183 +2020-05-13,Harris,Texas,48201,8621,188 +2020-05-14,Harris,Texas,48201,8817,193 +2020-05-15,Harris,Texas,48201,9050,193 +2020-05-16,Harris,Texas,48201,9126,204 +2020-05-17,Harris,Texas,48201,9465,204 +2020-05-18,Harris,Texas,48201,9635,205 +2020-05-19,Harris,Texas,48201,9859,207 +2020-05-20,Harris,Texas,48201,10095,210 +2020-05-21,Harris,Texas,48201,10283,216 +2020-05-22,Harris,Texas,48201,10526,217 +2020-05-23,Harris,Texas,48201,10770,219 +2020-05-24,Harris,Texas,48201,10921,220 +2020-05-25,Harris,Texas,48201,10921,220 +2020-05-26,Harris,Texas,48201,11281,221 +2020-05-27,Harris,Texas,48201,11542,223 +2020-05-28,Harris,Texas,48201,11770,224 +2020-05-29,Harris,Texas,48201,12009,228 +2020-05-30,Harris,Texas,48201,12220,231 +2020-05-31,Harris,Texas,48201,12276,232 +2020-06-01,Harris,Texas,48201,12664,235 +2020-06-02,Harris,Texas,48201,13027,236 +2020-06-03,Harris,Texas,48201,13268,241 +2020-06-04,Harris,Texas,48201,13603,247 +2020-06-05,Harris,Texas,48201,13940,253 +2020-06-06,Harris,Texas,48201,14423,259 +2020-06-07,Harris,Texas,48201,14586,261 +2020-06-08,Harris,Texas,48201,14918,262 +2020-06-09,Harris,Texas,48201,15238,262 +2020-06-10,Harris,Texas,48201,15552,267 +2020-06-11,Harris,Texas,48201,15864,267 +2020-06-12,Harris,Texas,48201,16188,271 +2020-06-13,Harris,Texas,48201,16568,275 +2020-06-14,Harris,Texas,48201,16778,275 +2020-06-15,Harris,Texas,48201,17282,284 +2020-06-16,Harris,Texas,48201,17707,289 +2020-06-17,Harris,Texas,48201,18157,298 +2020-06-18,Harris,Texas,48201,18552,305 +2020-06-19,Harris,Texas,48201,19739,311 +2020-06-20,Harris,Texas,48201,20874,322 +2020-06-21,Harris,Texas,48201,21053,325 +2020-06-22,Harris,Texas,48201,23047,332 +2020-06-23,Harris,Texas,48201,24421,335 +2020-06-24,Harris,Texas,48201,25786,346 +2020-06-25,Harris,Texas,48201,27017,353 +2020-06-26,Harris,Texas,48201,28255,361 +2020-06-27,Harris,Texas,48201,29163,369 +2020-06-28,Harris,Texas,48201,29276,371 +2020-06-29,Harris,Texas,48201,30729,376 +2020-06-30,Harris,Texas,48201,31422,378 +2020-07-01,Harris,Texas,48201,32859,384 +2020-07-02,Harris,Texas,48201,34108,387 +2020-07-03,Harris,Texas,48201,35316,395 +2020-07-04,Harris,Texas,48201,35913,400 +2020-07-05,Harris,Texas,48201,36597,400 +2020-07-06,Harris,Texas,48201,37776,401 +2020-07-07,Harris,Texas,48201,39311,407 +2020-07-08,Harris,Texas,48201,40012,411 +2020-07-09,Harris,Texas,48201,40919,423 +2020-03-27,Harrison,Texas,48203,1,0 +2020-03-28,Harrison,Texas,48203,1,0 +2020-03-29,Harrison,Texas,48203,1,0 +2020-03-30,Harrison,Texas,48203,1,0 +2020-03-31,Harrison,Texas,48203,1,0 +2020-04-01,Harrison,Texas,48203,3,0 +2020-04-02,Harrison,Texas,48203,5,0 +2020-04-03,Harrison,Texas,48203,5,1 +2020-04-04,Harrison,Texas,48203,5,1 +2020-04-05,Harrison,Texas,48203,6,1 +2020-04-06,Harrison,Texas,48203,6,1 +2020-04-07,Harrison,Texas,48203,11,1 +2020-04-08,Harrison,Texas,48203,11,1 +2020-04-09,Harrison,Texas,48203,12,1 +2020-04-10,Harrison,Texas,48203,12,1 +2020-04-11,Harrison,Texas,48203,12,1 +2020-04-12,Harrison,Texas,48203,16,1 +2020-04-13,Harrison,Texas,48203,16,2 +2020-04-14,Harrison,Texas,48203,20,2 +2020-04-15,Harrison,Texas,48203,34,2 +2020-04-16,Harrison,Texas,48203,35,2 +2020-04-17,Harrison,Texas,48203,40,2 +2020-04-18,Harrison,Texas,48203,42,2 +2020-04-19,Harrison,Texas,48203,44,2 +2020-04-20,Harrison,Texas,48203,47,2 +2020-04-21,Harrison,Texas,48203,58,2 +2020-04-22,Harrison,Texas,48203,59,2 +2020-04-23,Harrison,Texas,48203,61,2 +2020-04-24,Harrison,Texas,48203,69,2 +2020-04-25,Harrison,Texas,48203,69,2 +2020-04-26,Harrison,Texas,48203,71,2 +2020-04-27,Harrison,Texas,48203,86,2 +2020-04-28,Harrison,Texas,48203,84,2 +2020-04-29,Harrison,Texas,48203,84,2 +2020-04-30,Harrison,Texas,48203,102,6 +2020-05-01,Harrison,Texas,48203,113,6 +2020-05-02,Harrison,Texas,48203,121,6 +2020-05-03,Harrison,Texas,48203,140,6 +2020-05-04,Harrison,Texas,48203,140,6 +2020-05-05,Harrison,Texas,48203,149,6 +2020-05-06,Harrison,Texas,48203,160,6 +2020-05-07,Harrison,Texas,48203,167,6 +2020-05-08,Harrison,Texas,48203,180,6 +2020-05-09,Harrison,Texas,48203,180,6 +2020-05-10,Harrison,Texas,48203,186,9 +2020-05-11,Harrison,Texas,48203,186,9 +2020-05-12,Harrison,Texas,48203,189,9 +2020-05-13,Harrison,Texas,48203,192,9 +2020-05-14,Harrison,Texas,48203,195,9 +2020-05-15,Harrison,Texas,48203,200,19 +2020-05-16,Harrison,Texas,48203,200,19 +2020-05-17,Harrison,Texas,48203,202,19 +2020-05-18,Harrison,Texas,48203,202,19 +2020-05-19,Harrison,Texas,48203,205,21 +2020-05-20,Harrison,Texas,48203,206,22 +2020-05-21,Harrison,Texas,48203,217,22 +2020-05-22,Harrison,Texas,48203,230,23 +2020-05-23,Harrison,Texas,48203,230,23 +2020-05-24,Harrison,Texas,48203,230,23 +2020-05-25,Harrison,Texas,48203,230,23 +2020-05-26,Harrison,Texas,48203,230,24 +2020-05-27,Harrison,Texas,48203,236,25 +2020-05-28,Harrison,Texas,48203,239,25 +2020-05-29,Harrison,Texas,48203,239,24 +2020-05-30,Harrison,Texas,48203,244,25 +2020-05-31,Harrison,Texas,48203,245,25 +2020-06-01,Harrison,Texas,48203,245,25 +2020-06-02,Harrison,Texas,48203,247,25 +2020-06-03,Harrison,Texas,48203,250,26 +2020-06-04,Harrison,Texas,48203,255,27 +2020-06-05,Harrison,Texas,48203,256,27 +2020-06-06,Harrison,Texas,48203,256,27 +2020-06-07,Harrison,Texas,48203,256,27 +2020-06-08,Harrison,Texas,48203,256,27 +2020-06-09,Harrison,Texas,48203,258,28 +2020-06-10,Harrison,Texas,48203,259,28 +2020-06-11,Harrison,Texas,48203,261,28 +2020-06-12,Harrison,Texas,48203,267,28 +2020-06-13,Harrison,Texas,48203,268,28 +2020-06-14,Harrison,Texas,48203,269,28 +2020-06-15,Harrison,Texas,48203,270,28 +2020-06-16,Harrison,Texas,48203,269,29 +2020-06-17,Harrison,Texas,48203,269,29 +2020-06-18,Harrison,Texas,48203,268,30 +2020-06-19,Harrison,Texas,48203,268,31 +2020-06-20,Harrison,Texas,48203,271,32 +2020-06-21,Harrison,Texas,48203,272,32 +2020-06-22,Harrison,Texas,48203,274,32 +2020-06-23,Harrison,Texas,48203,276,33 +2020-06-24,Harrison,Texas,48203,279,33 +2020-06-25,Harrison,Texas,48203,281,33 +2020-06-26,Harrison,Texas,48203,284,30 +2020-06-27,Harrison,Texas,48203,288,30 +2020-06-28,Harrison,Texas,48203,288,30 +2020-06-29,Harrison,Texas,48203,289,30 +2020-06-30,Harrison,Texas,48203,308,30 +2020-07-01,Harrison,Texas,48203,314,30 +2020-07-02,Harrison,Texas,48203,325,30 +2020-07-03,Harrison,Texas,48203,327,30 +2020-07-04,Harrison,Texas,48203,332,30 +2020-07-05,Harrison,Texas,48203,339,30 +2020-07-06,Harrison,Texas,48203,363,30 +2020-07-07,Harrison,Texas,48203,383,30 +2020-07-08,Harrison,Texas,48203,389,31 +2020-07-09,Harrison,Texas,48203,392,31 +2020-04-20,Hartley,Texas,48205,1,0 +2020-04-21,Hartley,Texas,48205,1,0 +2020-04-22,Hartley,Texas,48205,1,0 +2020-04-23,Hartley,Texas,48205,2,0 +2020-04-24,Hartley,Texas,48205,4,0 +2020-04-25,Hartley,Texas,48205,4,0 +2020-04-26,Hartley,Texas,48205,4,0 +2020-04-27,Hartley,Texas,48205,4,0 +2020-04-28,Hartley,Texas,48205,4,0 +2020-04-29,Hartley,Texas,48205,4,0 +2020-04-30,Hartley,Texas,48205,4,0 +2020-05-01,Hartley,Texas,48205,5,0 +2020-05-02,Hartley,Texas,48205,5,0 +2020-05-03,Hartley,Texas,48205,5,0 +2020-05-04,Hartley,Texas,48205,5,0 +2020-05-05,Hartley,Texas,48205,7,1 +2020-05-06,Hartley,Texas,48205,7,2 +2020-05-07,Hartley,Texas,48205,7,2 +2020-05-08,Hartley,Texas,48205,7,2 +2020-05-09,Hartley,Texas,48205,8,2 +2020-05-10,Hartley,Texas,48205,8,2 +2020-05-11,Hartley,Texas,48205,8,2 +2020-05-12,Hartley,Texas,48205,9,2 +2020-05-13,Hartley,Texas,48205,9,2 +2020-05-14,Hartley,Texas,48205,9,2 +2020-05-15,Hartley,Texas,48205,9,2 +2020-05-16,Hartley,Texas,48205,9,2 +2020-05-17,Hartley,Texas,48205,9,2 +2020-05-18,Hartley,Texas,48205,9,2 +2020-05-19,Hartley,Texas,48205,11,2 +2020-05-20,Hartley,Texas,48205,11,2 +2020-05-21,Hartley,Texas,48205,11,2 +2020-05-22,Hartley,Texas,48205,11,2 +2020-05-23,Hartley,Texas,48205,11,2 +2020-05-24,Hartley,Texas,48205,11,2 +2020-05-25,Hartley,Texas,48205,11,2 +2020-05-26,Hartley,Texas,48205,11,2 +2020-05-27,Hartley,Texas,48205,11,2 +2020-05-28,Hartley,Texas,48205,11,2 +2020-05-29,Hartley,Texas,48205,11,2 +2020-05-30,Hartley,Texas,48205,11,2 +2020-05-31,Hartley,Texas,48205,11,2 +2020-06-01,Hartley,Texas,48205,12,2 +2020-06-02,Hartley,Texas,48205,12,2 +2020-06-03,Hartley,Texas,48205,12,2 +2020-06-04,Hartley,Texas,48205,12,2 +2020-06-05,Hartley,Texas,48205,12,2 +2020-06-06,Hartley,Texas,48205,12,2 +2020-06-07,Hartley,Texas,48205,12,2 +2020-06-08,Hartley,Texas,48205,12,2 +2020-06-09,Hartley,Texas,48205,12,2 +2020-06-10,Hartley,Texas,48205,12,2 +2020-06-11,Hartley,Texas,48205,12,2 +2020-06-12,Hartley,Texas,48205,12,2 +2020-06-13,Hartley,Texas,48205,13,2 +2020-06-14,Hartley,Texas,48205,13,2 +2020-06-15,Hartley,Texas,48205,13,2 +2020-06-16,Hartley,Texas,48205,13,2 +2020-06-17,Hartley,Texas,48205,13,2 +2020-06-18,Hartley,Texas,48205,13,2 +2020-06-19,Hartley,Texas,48205,13,2 +2020-06-20,Hartley,Texas,48205,13,2 +2020-06-21,Hartley,Texas,48205,13,2 +2020-06-22,Hartley,Texas,48205,13,2 +2020-06-23,Hartley,Texas,48205,13,2 +2020-06-24,Hartley,Texas,48205,13,2 +2020-06-25,Hartley,Texas,48205,13,2 +2020-06-26,Hartley,Texas,48205,21,2 +2020-06-27,Hartley,Texas,48205,22,2 +2020-06-28,Hartley,Texas,48205,22,2 +2020-06-29,Hartley,Texas,48205,22,2 +2020-06-30,Hartley,Texas,48205,26,2 +2020-07-01,Hartley,Texas,48205,28,2 +2020-07-02,Hartley,Texas,48205,31,2 +2020-07-03,Hartley,Texas,48205,36,2 +2020-07-04,Hartley,Texas,48205,36,2 +2020-07-05,Hartley,Texas,48205,36,2 +2020-07-06,Hartley,Texas,48205,36,2 +2020-07-07,Hartley,Texas,48205,36,2 +2020-07-08,Hartley,Texas,48205,40,2 +2020-07-09,Hartley,Texas,48205,45,2 +2020-05-15,Haskell,Texas,48207,1,0 +2020-05-16,Haskell,Texas,48207,1,0 +2020-05-17,Haskell,Texas,48207,1,0 +2020-05-18,Haskell,Texas,48207,1,0 +2020-05-19,Haskell,Texas,48207,2,0 +2020-05-20,Haskell,Texas,48207,2,0 +2020-05-21,Haskell,Texas,48207,2,0 +2020-05-22,Haskell,Texas,48207,2,0 +2020-05-23,Haskell,Texas,48207,2,0 +2020-05-24,Haskell,Texas,48207,2,0 +2020-05-25,Haskell,Texas,48207,2,0 +2020-05-26,Haskell,Texas,48207,2,0 +2020-05-27,Haskell,Texas,48207,2,0 +2020-05-28,Haskell,Texas,48207,2,0 +2020-05-29,Haskell,Texas,48207,3,0 +2020-05-30,Haskell,Texas,48207,3,0 +2020-05-31,Haskell,Texas,48207,3,0 +2020-06-01,Haskell,Texas,48207,3,0 +2020-06-02,Haskell,Texas,48207,3,0 +2020-06-03,Haskell,Texas,48207,3,0 +2020-06-04,Haskell,Texas,48207,3,0 +2020-06-05,Haskell,Texas,48207,3,0 +2020-06-06,Haskell,Texas,48207,3,0 +2020-06-07,Haskell,Texas,48207,3,0 +2020-06-08,Haskell,Texas,48207,3,0 +2020-06-09,Haskell,Texas,48207,3,0 +2020-06-10,Haskell,Texas,48207,3,0 +2020-06-11,Haskell,Texas,48207,3,0 +2020-06-12,Haskell,Texas,48207,4,0 +2020-06-13,Haskell,Texas,48207,4,0 +2020-06-14,Haskell,Texas,48207,4,0 +2020-06-15,Haskell,Texas,48207,4,0 +2020-06-16,Haskell,Texas,48207,4,0 +2020-06-17,Haskell,Texas,48207,4,0 +2020-06-18,Haskell,Texas,48207,4,0 +2020-06-19,Haskell,Texas,48207,4,0 +2020-06-20,Haskell,Texas,48207,4,0 +2020-06-21,Haskell,Texas,48207,4,0 +2020-06-22,Haskell,Texas,48207,4,0 +2020-06-23,Haskell,Texas,48207,4,0 +2020-06-24,Haskell,Texas,48207,4,0 +2020-06-25,Haskell,Texas,48207,4,0 +2020-06-26,Haskell,Texas,48207,4,0 +2020-06-27,Haskell,Texas,48207,4,0 +2020-06-28,Haskell,Texas,48207,4,0 +2020-06-29,Haskell,Texas,48207,4,0 +2020-06-30,Haskell,Texas,48207,5,0 +2020-07-01,Haskell,Texas,48207,5,0 +2020-07-02,Haskell,Texas,48207,5,0 +2020-07-03,Haskell,Texas,48207,5,0 +2020-07-04,Haskell,Texas,48207,5,0 +2020-07-05,Haskell,Texas,48207,5,0 +2020-07-06,Haskell,Texas,48207,5,0 +2020-07-07,Haskell,Texas,48207,6,0 +2020-07-08,Haskell,Texas,48207,6,0 +2020-07-09,Haskell,Texas,48207,7,0 +2020-03-14,Hays,Texas,48209,1,0 +2020-03-15,Hays,Texas,48209,1,0 +2020-03-16,Hays,Texas,48209,1,0 +2020-03-17,Hays,Texas,48209,1,0 +2020-03-18,Hays,Texas,48209,3,0 +2020-03-19,Hays,Texas,48209,5,0 +2020-03-20,Hays,Texas,48209,6,0 +2020-03-21,Hays,Texas,48209,6,0 +2020-03-22,Hays,Texas,48209,6,0 +2020-03-23,Hays,Texas,48209,6,0 +2020-03-24,Hays,Texas,48209,6,0 +2020-03-25,Hays,Texas,48209,7,0 +2020-03-26,Hays,Texas,48209,9,0 +2020-03-27,Hays,Texas,48209,13,0 +2020-03-28,Hays,Texas,48209,13,0 +2020-03-29,Hays,Texas,48209,13,0 +2020-03-30,Hays,Texas,48209,16,0 +2020-03-31,Hays,Texas,48209,24,0 +2020-04-01,Hays,Texas,48209,38,0 +2020-04-02,Hays,Texas,48209,42,0 +2020-04-03,Hays,Texas,48209,47,0 +2020-04-04,Hays,Texas,48209,47,0 +2020-04-05,Hays,Texas,48209,50,0 +2020-04-06,Hays,Texas,48209,59,0 +2020-04-07,Hays,Texas,48209,59,0 +2020-04-08,Hays,Texas,48209,77,0 +2020-04-09,Hays,Texas,48209,78,0 +2020-04-10,Hays,Texas,48209,79,0 +2020-04-11,Hays,Texas,48209,82,0 +2020-04-12,Hays,Texas,48209,89,0 +2020-04-13,Hays,Texas,48209,93,1 +2020-04-14,Hays,Texas,48209,103,1 +2020-04-15,Hays,Texas,48209,104,1 +2020-04-16,Hays,Texas,48209,116,1 +2020-04-17,Hays,Texas,48209,121,1 +2020-04-18,Hays,Texas,48209,125,1 +2020-04-19,Hays,Texas,48209,127,1 +2020-04-20,Hays,Texas,48209,135,1 +2020-04-21,Hays,Texas,48209,137,1 +2020-04-22,Hays,Texas,48209,143,1 +2020-04-23,Hays,Texas,48209,147,1 +2020-04-24,Hays,Texas,48209,148,1 +2020-04-25,Hays,Texas,48209,149,1 +2020-04-26,Hays,Texas,48209,149,1 +2020-04-27,Hays,Texas,48209,155,1 +2020-04-28,Hays,Texas,48209,160,1 +2020-04-29,Hays,Texas,48209,165,1 +2020-04-30,Hays,Texas,48209,165,1 +2020-05-01,Hays,Texas,48209,167,1 +2020-05-02,Hays,Texas,48209,167,1 +2020-05-03,Hays,Texas,48209,167,1 +2020-05-04,Hays,Texas,48209,176,1 +2020-05-05,Hays,Texas,48209,183,1 +2020-05-06,Hays,Texas,48209,195,1 +2020-05-07,Hays,Texas,48209,199,1 +2020-05-08,Hays,Texas,48209,203,2 +2020-05-09,Hays,Texas,48209,204,2 +2020-05-10,Hays,Texas,48209,204,2 +2020-05-11,Hays,Texas,48209,209,2 +2020-05-12,Hays,Texas,48209,214,3 +2020-05-13,Hays,Texas,48209,217,3 +2020-05-14,Hays,Texas,48209,219,3 +2020-05-15,Hays,Texas,48209,221,3 +2020-05-16,Hays,Texas,48209,221,3 +2020-05-17,Hays,Texas,48209,221,3 +2020-05-18,Hays,Texas,48209,235,3 +2020-05-19,Hays,Texas,48209,238,3 +2020-05-20,Hays,Texas,48209,250,3 +2020-05-21,Hays,Texas,48209,258,3 +2020-05-22,Hays,Texas,48209,266,3 +2020-05-23,Hays,Texas,48209,270,3 +2020-05-24,Hays,Texas,48209,270,3 +2020-05-25,Hays,Texas,48209,270,3 +2020-05-26,Hays,Texas,48209,276,3 +2020-05-27,Hays,Texas,48209,297,3 +2020-05-28,Hays,Texas,48209,314,3 +2020-05-29,Hays,Texas,48209,329,4 +2020-05-30,Hays,Texas,48209,329,4 +2020-05-31,Hays,Texas,48209,335,4 +2020-06-01,Hays,Texas,48209,353,5 +2020-06-02,Hays,Texas,48209,371,5 +2020-06-03,Hays,Texas,48209,385,5 +2020-06-04,Hays,Texas,48209,389,5 +2020-06-05,Hays,Texas,48209,398,5 +2020-06-06,Hays,Texas,48209,398,5 +2020-06-07,Hays,Texas,48209,398,5 +2020-06-08,Hays,Texas,48209,441,5 +2020-06-09,Hays,Texas,48209,465,5 +2020-06-10,Hays,Texas,48209,492,5 +2020-06-11,Hays,Texas,48209,574,5 +2020-06-12,Hays,Texas,48209,673,5 +2020-06-13,Hays,Texas,48209,673,5 +2020-06-14,Hays,Texas,48209,727,5 +2020-06-15,Hays,Texas,48209,938,5 +2020-06-16,Hays,Texas,48209,1093,5 +2020-06-17,Hays,Texas,48209,1238,5 +2020-06-18,Hays,Texas,48209,1448,5 +2020-06-19,Hays,Texas,48209,1551,5 +2020-06-20,Hays,Texas,48209,1608,5 +2020-06-21,Hays,Texas,48209,1711,5 +2020-06-22,Hays,Texas,48209,1871,5 +2020-06-23,Hays,Texas,48209,2001,5 +2020-06-24,Hays,Texas,48209,2194,5 +2020-06-25,Hays,Texas,48209,2275,5 +2020-06-26,Hays,Texas,48209,2415,5 +2020-06-27,Hays,Texas,48209,2469,6 +2020-06-28,Hays,Texas,48209,2586,6 +2020-06-29,Hays,Texas,48209,2661,6 +2020-06-30,Hays,Texas,48209,2819,7 +2020-07-01,Hays,Texas,48209,2924,7 +2020-07-02,Hays,Texas,48209,3050,7 +2020-07-03,Hays,Texas,48209,3050,7 +2020-07-04,Hays,Texas,48209,3067,7 +2020-07-05,Hays,Texas,48209,3088,7 +2020-07-06,Hays,Texas,48209,3193,10 +2020-07-07,Hays,Texas,48209,3243,10 +2020-07-08,Hays,Texas,48209,3328,11 +2020-07-09,Hays,Texas,48209,3409,11 +2020-04-04,Hemphill,Texas,48211,1,0 +2020-04-05,Hemphill,Texas,48211,1,0 +2020-04-06,Hemphill,Texas,48211,1,0 +2020-04-07,Hemphill,Texas,48211,1,0 +2020-04-08,Hemphill,Texas,48211,1,0 +2020-04-09,Hemphill,Texas,48211,1,0 +2020-04-10,Hemphill,Texas,48211,1,0 +2020-04-11,Hemphill,Texas,48211,1,0 +2020-04-12,Hemphill,Texas,48211,1,0 +2020-04-13,Hemphill,Texas,48211,1,0 +2020-04-14,Hemphill,Texas,48211,1,0 +2020-04-15,Hemphill,Texas,48211,1,0 +2020-04-16,Hemphill,Texas,48211,1,0 +2020-04-17,Hemphill,Texas,48211,1,0 +2020-04-18,Hemphill,Texas,48211,1,0 +2020-04-19,Hemphill,Texas,48211,1,0 +2020-04-20,Hemphill,Texas,48211,1,0 +2020-04-21,Hemphill,Texas,48211,1,0 +2020-04-22,Hemphill,Texas,48211,1,0 +2020-04-23,Hemphill,Texas,48211,1,0 +2020-04-24,Hemphill,Texas,48211,1,0 +2020-04-25,Hemphill,Texas,48211,1,0 +2020-04-26,Hemphill,Texas,48211,1,0 +2020-04-27,Hemphill,Texas,48211,1,0 +2020-04-28,Hemphill,Texas,48211,1,0 +2020-04-29,Hemphill,Texas,48211,1,0 +2020-04-30,Hemphill,Texas,48211,1,0 +2020-05-01,Hemphill,Texas,48211,1,0 +2020-05-02,Hemphill,Texas,48211,1,0 +2020-05-03,Hemphill,Texas,48211,1,0 +2020-05-04,Hemphill,Texas,48211,1,0 +2020-05-05,Hemphill,Texas,48211,1,0 +2020-05-06,Hemphill,Texas,48211,1,0 +2020-05-07,Hemphill,Texas,48211,1,0 +2020-05-08,Hemphill,Texas,48211,1,0 +2020-05-09,Hemphill,Texas,48211,1,0 +2020-05-10,Hemphill,Texas,48211,1,0 +2020-05-11,Hemphill,Texas,48211,1,0 +2020-05-12,Hemphill,Texas,48211,1,0 +2020-05-13,Hemphill,Texas,48211,1,0 +2020-05-14,Hemphill,Texas,48211,1,0 +2020-05-15,Hemphill,Texas,48211,1,0 +2020-05-16,Hemphill,Texas,48211,1,0 +2020-05-17,Hemphill,Texas,48211,1,0 +2020-05-18,Hemphill,Texas,48211,1,0 +2020-05-19,Hemphill,Texas,48211,1,0 +2020-05-20,Hemphill,Texas,48211,1,0 +2020-05-21,Hemphill,Texas,48211,1,0 +2020-05-22,Hemphill,Texas,48211,1,0 +2020-05-23,Hemphill,Texas,48211,1,0 +2020-05-24,Hemphill,Texas,48211,1,0 +2020-05-25,Hemphill,Texas,48211,1,0 +2020-05-26,Hemphill,Texas,48211,1,0 +2020-05-27,Hemphill,Texas,48211,1,0 +2020-05-28,Hemphill,Texas,48211,1,0 +2020-05-29,Hemphill,Texas,48211,1,0 +2020-05-30,Hemphill,Texas,48211,1,0 +2020-05-31,Hemphill,Texas,48211,1,0 +2020-06-01,Hemphill,Texas,48211,1,0 +2020-06-02,Hemphill,Texas,48211,1,0 +2020-06-03,Hemphill,Texas,48211,1,0 +2020-06-04,Hemphill,Texas,48211,1,0 +2020-06-05,Hemphill,Texas,48211,1,0 +2020-06-06,Hemphill,Texas,48211,1,0 +2020-06-07,Hemphill,Texas,48211,1,0 +2020-06-08,Hemphill,Texas,48211,1,0 +2020-06-09,Hemphill,Texas,48211,1,0 +2020-06-10,Hemphill,Texas,48211,1,0 +2020-06-11,Hemphill,Texas,48211,1,0 +2020-06-12,Hemphill,Texas,48211,1,0 +2020-06-13,Hemphill,Texas,48211,1,0 +2020-06-14,Hemphill,Texas,48211,1,0 +2020-06-15,Hemphill,Texas,48211,1,0 +2020-06-16,Hemphill,Texas,48211,1,0 +2020-06-17,Hemphill,Texas,48211,2,0 +2020-06-18,Hemphill,Texas,48211,2,0 +2020-06-19,Hemphill,Texas,48211,2,0 +2020-06-20,Hemphill,Texas,48211,2,0 +2020-06-21,Hemphill,Texas,48211,2,0 +2020-06-22,Hemphill,Texas,48211,3,0 +2020-06-23,Hemphill,Texas,48211,3,0 +2020-06-24,Hemphill,Texas,48211,3,0 +2020-06-25,Hemphill,Texas,48211,5,0 +2020-06-26,Hemphill,Texas,48211,6,0 +2020-06-27,Hemphill,Texas,48211,7,0 +2020-06-28,Hemphill,Texas,48211,7,0 +2020-06-29,Hemphill,Texas,48211,7,0 +2020-06-30,Hemphill,Texas,48211,7,0 +2020-07-01,Hemphill,Texas,48211,8,0 +2020-07-02,Hemphill,Texas,48211,10,0 +2020-07-03,Hemphill,Texas,48211,14,0 +2020-07-04,Hemphill,Texas,48211,15,0 +2020-07-05,Hemphill,Texas,48211,15,0 +2020-07-06,Hemphill,Texas,48211,15,0 +2020-07-07,Hemphill,Texas,48211,15,0 +2020-07-08,Hemphill,Texas,48211,17,0 +2020-07-09,Hemphill,Texas,48211,18,0 +2020-03-29,Henderson,Texas,48213,1,0 +2020-03-30,Henderson,Texas,48213,1,0 +2020-03-31,Henderson,Texas,48213,1,0 +2020-04-01,Henderson,Texas,48213,1,0 +2020-04-02,Henderson,Texas,48213,1,0 +2020-04-03,Henderson,Texas,48213,1,0 +2020-04-04,Henderson,Texas,48213,1,0 +2020-04-05,Henderson,Texas,48213,1,0 +2020-04-06,Henderson,Texas,48213,1,0 +2020-04-07,Henderson,Texas,48213,1,0 +2020-04-08,Henderson,Texas,48213,1,0 +2020-04-09,Henderson,Texas,48213,6,0 +2020-04-10,Henderson,Texas,48213,10,0 +2020-04-11,Henderson,Texas,48213,10,0 +2020-04-12,Henderson,Texas,48213,10,0 +2020-04-13,Henderson,Texas,48213,10,0 +2020-04-14,Henderson,Texas,48213,10,0 +2020-04-15,Henderson,Texas,48213,11,0 +2020-04-16,Henderson,Texas,48213,12,0 +2020-04-17,Henderson,Texas,48213,12,0 +2020-04-18,Henderson,Texas,48213,13,0 +2020-04-19,Henderson,Texas,48213,13,0 +2020-04-20,Henderson,Texas,48213,13,0 +2020-04-21,Henderson,Texas,48213,15,0 +2020-04-22,Henderson,Texas,48213,19,0 +2020-04-23,Henderson,Texas,48213,22,0 +2020-04-24,Henderson,Texas,48213,22,0 +2020-04-25,Henderson,Texas,48213,22,0 +2020-04-26,Henderson,Texas,48213,24,0 +2020-04-27,Henderson,Texas,48213,24,0 +2020-04-28,Henderson,Texas,48213,24,0 +2020-04-29,Henderson,Texas,48213,24,0 +2020-04-30,Henderson,Texas,48213,25,0 +2020-05-01,Henderson,Texas,48213,25,0 +2020-05-02,Henderson,Texas,48213,28,0 +2020-05-03,Henderson,Texas,48213,28,0 +2020-05-04,Henderson,Texas,48213,28,0 +2020-05-05,Henderson,Texas,48213,32,0 +2020-05-06,Henderson,Texas,48213,33,0 +2020-05-07,Henderson,Texas,48213,34,0 +2020-05-08,Henderson,Texas,48213,36,0 +2020-05-09,Henderson,Texas,48213,36,0 +2020-05-10,Henderson,Texas,48213,41,0 +2020-05-11,Henderson,Texas,48213,41,0 +2020-05-12,Henderson,Texas,48213,46,0 +2020-05-13,Henderson,Texas,48213,47,0 +2020-05-14,Henderson,Texas,48213,47,0 +2020-05-15,Henderson,Texas,48213,48,0 +2020-05-16,Henderson,Texas,48213,48,0 +2020-05-17,Henderson,Texas,48213,48,0 +2020-05-18,Henderson,Texas,48213,48,0 +2020-05-19,Henderson,Texas,48213,49,0 +2020-05-20,Henderson,Texas,48213,49,0 +2020-05-21,Henderson,Texas,48213,51,0 +2020-05-22,Henderson,Texas,48213,51,0 +2020-05-23,Henderson,Texas,48213,55,0 +2020-05-24,Henderson,Texas,48213,55,0 +2020-05-25,Henderson,Texas,48213,55,0 +2020-05-26,Henderson,Texas,48213,55,0 +2020-05-27,Henderson,Texas,48213,56,0 +2020-05-28,Henderson,Texas,48213,57,0 +2020-05-29,Henderson,Texas,48213,57,2 +2020-05-30,Henderson,Texas,48213,57,2 +2020-05-31,Henderson,Texas,48213,57,2 +2020-06-01,Henderson,Texas,48213,57,2 +2020-06-02,Henderson,Texas,48213,59,2 +2020-06-03,Henderson,Texas,48213,63,3 +2020-06-04,Henderson,Texas,48213,65,3 +2020-06-05,Henderson,Texas,48213,65,3 +2020-06-06,Henderson,Texas,48213,68,3 +2020-06-07,Henderson,Texas,48213,68,3 +2020-06-08,Henderson,Texas,48213,68,3 +2020-06-09,Henderson,Texas,48213,71,3 +2020-06-10,Henderson,Texas,48213,71,3 +2020-06-11,Henderson,Texas,48213,74,3 +2020-06-12,Henderson,Texas,48213,74,3 +2020-06-13,Henderson,Texas,48213,80,3 +2020-06-14,Henderson,Texas,48213,80,3 +2020-06-15,Henderson,Texas,48213,80,3 +2020-06-16,Henderson,Texas,48213,82,3 +2020-06-17,Henderson,Texas,48213,85,3 +2020-06-18,Henderson,Texas,48213,90,3 +2020-06-19,Henderson,Texas,48213,94,3 +2020-06-20,Henderson,Texas,48213,97,3 +2020-06-21,Henderson,Texas,48213,97,3 +2020-06-22,Henderson,Texas,48213,97,3 +2020-06-23,Henderson,Texas,48213,102,3 +2020-06-24,Henderson,Texas,48213,104,4 +2020-06-25,Henderson,Texas,48213,109,4 +2020-06-26,Henderson,Texas,48213,116,4 +2020-06-27,Henderson,Texas,48213,116,4 +2020-06-28,Henderson,Texas,48213,117,4 +2020-06-29,Henderson,Texas,48213,117,4 +2020-06-30,Henderson,Texas,48213,128,4 +2020-07-01,Henderson,Texas,48213,137,4 +2020-07-02,Henderson,Texas,48213,143,4 +2020-07-03,Henderson,Texas,48213,159,4 +2020-07-04,Henderson,Texas,48213,159,4 +2020-07-05,Henderson,Texas,48213,168,4 +2020-07-06,Henderson,Texas,48213,168,4 +2020-07-07,Henderson,Texas,48213,196,4 +2020-07-08,Henderson,Texas,48213,215,4 +2020-07-09,Henderson,Texas,48213,225,4 +2020-03-24,Hidalgo,Texas,48215,2,0 +2020-03-25,Hidalgo,Texas,48215,2,0 +2020-03-26,Hidalgo,Texas,48215,7,0 +2020-03-27,Hidalgo,Texas,48215,18,0 +2020-03-28,Hidalgo,Texas,48215,18,0 +2020-03-29,Hidalgo,Texas,48215,27,0 +2020-03-30,Hidalgo,Texas,48215,28,0 +2020-03-31,Hidalgo,Texas,48215,38,0 +2020-04-01,Hidalgo,Texas,48215,46,0 +2020-04-02,Hidalgo,Texas,48215,62,0 +2020-04-03,Hidalgo,Texas,48215,79,0 +2020-04-04,Hidalgo,Texas,48215,86,0 +2020-04-05,Hidalgo,Texas,48215,86,0 +2020-04-06,Hidalgo,Texas,48215,99,0 +2020-04-07,Hidalgo,Texas,48215,128,1 +2020-04-08,Hidalgo,Texas,48215,128,1 +2020-04-09,Hidalgo,Texas,48215,139,1 +2020-04-10,Hidalgo,Texas,48215,146,1 +2020-04-11,Hidalgo,Texas,48215,188,1 +2020-04-12,Hidalgo,Texas,48215,188,1 +2020-04-13,Hidalgo,Texas,48215,190,1 +2020-04-14,Hidalgo,Texas,48215,198,1 +2020-04-15,Hidalgo,Texas,48215,217,1 +2020-04-16,Hidalgo,Texas,48215,225,3 +2020-04-17,Hidalgo,Texas,48215,242,3 +2020-04-18,Hidalgo,Texas,48215,255,3 +2020-04-19,Hidalgo,Texas,48215,255,3 +2020-04-20,Hidalgo,Texas,48215,261,3 +2020-04-21,Hidalgo,Texas,48215,275,3 +2020-04-22,Hidalgo,Texas,48215,275,3 +2020-04-23,Hidalgo,Texas,48215,290,4 +2020-04-24,Hidalgo,Texas,48215,299,4 +2020-04-25,Hidalgo,Texas,48215,303,4 +2020-04-26,Hidalgo,Texas,48215,308,4 +2020-04-27,Hidalgo,Texas,48215,308,4 +2020-04-28,Hidalgo,Texas,48215,315,6 +2020-04-29,Hidalgo,Texas,48215,324,6 +2020-04-30,Hidalgo,Texas,48215,334,6 +2020-05-01,Hidalgo,Texas,48215,339,6 +2020-05-02,Hidalgo,Texas,48215,340,6 +2020-05-03,Hidalgo,Texas,48215,341,6 +2020-05-04,Hidalgo,Texas,48215,341,6 +2020-05-05,Hidalgo,Texas,48215,353,7 +2020-05-06,Hidalgo,Texas,48215,353,7 +2020-05-07,Hidalgo,Texas,48215,368,7 +2020-05-08,Hidalgo,Texas,48215,377,7 +2020-05-09,Hidalgo,Texas,48215,387,8 +2020-05-10,Hidalgo,Texas,48215,389,8 +2020-05-11,Hidalgo,Texas,48215,394,8 +2020-05-12,Hidalgo,Texas,48215,403,8 +2020-05-13,Hidalgo,Texas,48215,409,10 +2020-05-14,Hidalgo,Texas,48215,417,10 +2020-05-15,Hidalgo,Texas,48215,425,10 +2020-05-16,Hidalgo,Texas,48215,425,10 +2020-05-17,Hidalgo,Texas,48215,440,10 +2020-05-18,Hidalgo,Texas,48215,448,10 +2020-05-19,Hidalgo,Texas,48215,457,10 +2020-05-20,Hidalgo,Texas,48215,467,10 +2020-05-21,Hidalgo,Texas,48215,472,10 +2020-05-22,Hidalgo,Texas,48215,482,10 +2020-05-23,Hidalgo,Texas,48215,482,10 +2020-05-24,Hidalgo,Texas,48215,497,10 +2020-05-25,Hidalgo,Texas,48215,504,10 +2020-05-26,Hidalgo,Texas,48215,516,10 +2020-05-27,Hidalgo,Texas,48215,537,10 +2020-05-28,Hidalgo,Texas,48215,548,10 +2020-05-29,Hidalgo,Texas,48215,548,10 +2020-05-30,Hidalgo,Texas,48215,548,10 +2020-05-31,Hidalgo,Texas,48215,575,10 +2020-06-01,Hidalgo,Texas,48215,584,11 +2020-06-02,Hidalgo,Texas,48215,610,11 +2020-06-03,Hidalgo,Texas,48215,610,11 +2020-06-04,Hidalgo,Texas,48215,679,11 +2020-06-05,Hidalgo,Texas,48215,679,11 +2020-06-06,Hidalgo,Texas,48215,679,11 +2020-06-07,Hidalgo,Texas,48215,733,12 +2020-06-08,Hidalgo,Texas,48215,759,12 +2020-06-09,Hidalgo,Texas,48215,804,12 +2020-06-10,Hidalgo,Texas,48215,842,12 +2020-06-11,Hidalgo,Texas,48215,912,12 +2020-06-12,Hidalgo,Texas,48215,967,12 +2020-06-13,Hidalgo,Texas,48215,967,12 +2020-06-14,Hidalgo,Texas,48215,1050,12 +2020-06-15,Hidalgo,Texas,48215,1112,15 +2020-06-16,Hidalgo,Texas,48215,1255,17 +2020-06-17,Hidalgo,Texas,48215,1347,19 +2020-06-18,Hidalgo,Texas,48215,1447,20 +2020-06-19,Hidalgo,Texas,48215,1556,21 +2020-06-20,Hidalgo,Texas,48215,1556,21 +2020-06-21,Hidalgo,Texas,48215,1689,22 +2020-06-22,Hidalgo,Texas,48215,1882,23 +2020-06-23,Hidalgo,Texas,48215,1882,23 +2020-06-24,Hidalgo,Texas,48215,2503,29 +2020-06-25,Hidalgo,Texas,48215,2693,29 +2020-06-26,Hidalgo,Texas,48215,2871,31 +2020-06-27,Hidalgo,Texas,48215,2892,31 +2020-06-28,Hidalgo,Texas,48215,3273,32 +2020-06-29,Hidalgo,Texas,48215,3519,35 +2020-06-30,Hidalgo,Texas,48215,3955,46 +2020-07-01,Hidalgo,Texas,48215,3982,46 +2020-07-02,Hidalgo,Texas,48215,4252,49 +2020-07-03,Hidalgo,Texas,48215,4520,57 +2020-07-04,Hidalgo,Texas,48215,4798,58 +2020-07-05,Hidalgo,Texas,48215,4798,58 +2020-07-06,Hidalgo,Texas,48215,5407,75 +2020-07-07,Hidalgo,Texas,48215,5739,90 +2020-07-08,Hidalgo,Texas,48215,6009,103 +2020-07-09,Hidalgo,Texas,48215,7278,123 +2020-03-30,Hill,Texas,48217,1,0 +2020-03-31,Hill,Texas,48217,1,0 +2020-04-01,Hill,Texas,48217,2,0 +2020-04-02,Hill,Texas,48217,3,0 +2020-04-03,Hill,Texas,48217,3,0 +2020-04-04,Hill,Texas,48217,5,0 +2020-04-05,Hill,Texas,48217,5,0 +2020-04-06,Hill,Texas,48217,5,0 +2020-04-07,Hill,Texas,48217,5,0 +2020-04-08,Hill,Texas,48217,5,0 +2020-04-09,Hill,Texas,48217,6,0 +2020-04-10,Hill,Texas,48217,8,0 +2020-04-11,Hill,Texas,48217,8,0 +2020-04-12,Hill,Texas,48217,8,0 +2020-04-13,Hill,Texas,48217,8,0 +2020-04-14,Hill,Texas,48217,8,0 +2020-04-15,Hill,Texas,48217,8,0 +2020-04-16,Hill,Texas,48217,9,1 +2020-04-17,Hill,Texas,48217,10,1 +2020-04-18,Hill,Texas,48217,10,1 +2020-04-19,Hill,Texas,48217,10,1 +2020-04-20,Hill,Texas,48217,10,1 +2020-04-21,Hill,Texas,48217,11,1 +2020-04-22,Hill,Texas,48217,12,1 +2020-04-23,Hill,Texas,48217,14,1 +2020-04-24,Hill,Texas,48217,15,1 +2020-04-25,Hill,Texas,48217,15,1 +2020-04-26,Hill,Texas,48217,15,1 +2020-04-27,Hill,Texas,48217,15,1 +2020-04-28,Hill,Texas,48217,15,1 +2020-04-29,Hill,Texas,48217,16,1 +2020-04-30,Hill,Texas,48217,16,1 +2020-05-01,Hill,Texas,48217,16,1 +2020-05-02,Hill,Texas,48217,16,1 +2020-05-03,Hill,Texas,48217,17,1 +2020-05-04,Hill,Texas,48217,17,1 +2020-05-05,Hill,Texas,48217,18,1 +2020-05-06,Hill,Texas,48217,18,1 +2020-05-07,Hill,Texas,48217,18,1 +2020-05-08,Hill,Texas,48217,19,1 +2020-05-09,Hill,Texas,48217,19,1 +2020-05-10,Hill,Texas,48217,19,1 +2020-05-11,Hill,Texas,48217,19,1 +2020-05-12,Hill,Texas,48217,21,1 +2020-05-13,Hill,Texas,48217,21,1 +2020-05-14,Hill,Texas,48217,22,1 +2020-05-15,Hill,Texas,48217,22,1 +2020-05-16,Hill,Texas,48217,22,1 +2020-05-17,Hill,Texas,48217,22,1 +2020-05-18,Hill,Texas,48217,22,1 +2020-05-19,Hill,Texas,48217,23,1 +2020-05-20,Hill,Texas,48217,23,1 +2020-05-21,Hill,Texas,48217,23,1 +2020-05-22,Hill,Texas,48217,23,1 +2020-05-23,Hill,Texas,48217,24,1 +2020-05-24,Hill,Texas,48217,24,1 +2020-05-25,Hill,Texas,48217,24,1 +2020-05-26,Hill,Texas,48217,24,1 +2020-05-27,Hill,Texas,48217,24,1 +2020-05-28,Hill,Texas,48217,24,1 +2020-05-29,Hill,Texas,48217,24,1 +2020-05-30,Hill,Texas,48217,24,1 +2020-05-31,Hill,Texas,48217,24,1 +2020-06-01,Hill,Texas,48217,24,1 +2020-06-02,Hill,Texas,48217,24,1 +2020-06-03,Hill,Texas,48217,24,1 +2020-06-04,Hill,Texas,48217,25,1 +2020-06-05,Hill,Texas,48217,26,1 +2020-06-06,Hill,Texas,48217,27,1 +2020-06-07,Hill,Texas,48217,29,1 +2020-06-08,Hill,Texas,48217,29,1 +2020-06-09,Hill,Texas,48217,30,1 +2020-06-10,Hill,Texas,48217,30,1 +2020-06-11,Hill,Texas,48217,33,1 +2020-06-12,Hill,Texas,48217,34,1 +2020-06-13,Hill,Texas,48217,36,1 +2020-06-14,Hill,Texas,48217,36,1 +2020-06-15,Hill,Texas,48217,36,1 +2020-06-16,Hill,Texas,48217,38,1 +2020-06-17,Hill,Texas,48217,41,1 +2020-06-18,Hill,Texas,48217,46,1 +2020-06-19,Hill,Texas,48217,47,1 +2020-06-20,Hill,Texas,48217,48,1 +2020-06-21,Hill,Texas,48217,48,1 +2020-06-22,Hill,Texas,48217,49,1 +2020-06-23,Hill,Texas,48217,50,1 +2020-06-24,Hill,Texas,48217,50,1 +2020-06-25,Hill,Texas,48217,51,1 +2020-06-26,Hill,Texas,48217,58,1 +2020-06-27,Hill,Texas,48217,58,1 +2020-06-28,Hill,Texas,48217,59,1 +2020-06-29,Hill,Texas,48217,66,1 +2020-06-30,Hill,Texas,48217,66,1 +2020-07-01,Hill,Texas,48217,70,1 +2020-07-02,Hill,Texas,48217,74,1 +2020-07-03,Hill,Texas,48217,75,1 +2020-07-04,Hill,Texas,48217,76,1 +2020-07-05,Hill,Texas,48217,76,1 +2020-07-06,Hill,Texas,48217,82,2 +2020-07-07,Hill,Texas,48217,82,2 +2020-07-08,Hill,Texas,48217,117,2 +2020-07-09,Hill,Texas,48217,130,2 +2020-03-20,Hockley,Texas,48219,1,0 +2020-03-21,Hockley,Texas,48219,2,0 +2020-03-22,Hockley,Texas,48219,2,0 +2020-03-23,Hockley,Texas,48219,2,0 +2020-03-24,Hockley,Texas,48219,3,0 +2020-03-25,Hockley,Texas,48219,3,0 +2020-03-26,Hockley,Texas,48219,5,0 +2020-03-27,Hockley,Texas,48219,5,0 +2020-03-28,Hockley,Texas,48219,7,0 +2020-03-29,Hockley,Texas,48219,7,0 +2020-03-30,Hockley,Texas,48219,7,0 +2020-03-31,Hockley,Texas,48219,7,0 +2020-04-01,Hockley,Texas,48219,7,0 +2020-04-02,Hockley,Texas,48219,7,0 +2020-04-03,Hockley,Texas,48219,7,1 +2020-04-04,Hockley,Texas,48219,7,1 +2020-04-05,Hockley,Texas,48219,10,1 +2020-04-06,Hockley,Texas,48219,10,1 +2020-04-07,Hockley,Texas,48219,10,1 +2020-04-08,Hockley,Texas,48219,10,1 +2020-04-09,Hockley,Texas,48219,12,1 +2020-04-10,Hockley,Texas,48219,12,1 +2020-04-11,Hockley,Texas,48219,13,1 +2020-04-12,Hockley,Texas,48219,14,1 +2020-04-13,Hockley,Texas,48219,14,1 +2020-04-14,Hockley,Texas,48219,14,1 +2020-04-15,Hockley,Texas,48219,15,1 +2020-04-16,Hockley,Texas,48219,15,1 +2020-04-17,Hockley,Texas,48219,15,1 +2020-04-18,Hockley,Texas,48219,15,1 +2020-04-19,Hockley,Texas,48219,16,1 +2020-04-20,Hockley,Texas,48219,16,1 +2020-04-21,Hockley,Texas,48219,16,1 +2020-04-22,Hockley,Texas,48219,17,1 +2020-04-23,Hockley,Texas,48219,18,1 +2020-04-24,Hockley,Texas,48219,19,1 +2020-04-25,Hockley,Texas,48219,20,1 +2020-04-26,Hockley,Texas,48219,20,1 +2020-04-27,Hockley,Texas,48219,20,1 +2020-04-28,Hockley,Texas,48219,20,1 +2020-04-29,Hockley,Texas,48219,20,1 +2020-04-30,Hockley,Texas,48219,20,1 +2020-05-01,Hockley,Texas,48219,21,1 +2020-05-02,Hockley,Texas,48219,20,1 +2020-05-03,Hockley,Texas,48219,20,1 +2020-05-04,Hockley,Texas,48219,20,1 +2020-05-05,Hockley,Texas,48219,20,1 +2020-05-06,Hockley,Texas,48219,20,1 +2020-05-07,Hockley,Texas,48219,19,1 +2020-05-08,Hockley,Texas,48219,20,1 +2020-05-09,Hockley,Texas,48219,20,1 +2020-05-10,Hockley,Texas,48219,20,1 +2020-05-11,Hockley,Texas,48219,20,1 +2020-05-12,Hockley,Texas,48219,20,1 +2020-05-13,Hockley,Texas,48219,23,1 +2020-05-14,Hockley,Texas,48219,22,1 +2020-05-15,Hockley,Texas,48219,23,1 +2020-05-16,Hockley,Texas,48219,23,1 +2020-05-17,Hockley,Texas,48219,23,1 +2020-05-18,Hockley,Texas,48219,23,1 +2020-05-19,Hockley,Texas,48219,24,1 +2020-05-20,Hockley,Texas,48219,27,1 +2020-05-21,Hockley,Texas,48219,27,1 +2020-05-22,Hockley,Texas,48219,27,1 +2020-05-23,Hockley,Texas,48219,27,1 +2020-05-24,Hockley,Texas,48219,27,1 +2020-05-25,Hockley,Texas,48219,27,1 +2020-05-26,Hockley,Texas,48219,27,1 +2020-05-27,Hockley,Texas,48219,27,1 +2020-05-28,Hockley,Texas,48219,27,1 +2020-05-29,Hockley,Texas,48219,27,1 +2020-05-30,Hockley,Texas,48219,27,1 +2020-05-31,Hockley,Texas,48219,27,1 +2020-06-01,Hockley,Texas,48219,27,1 +2020-06-02,Hockley,Texas,48219,27,1 +2020-06-03,Hockley,Texas,48219,27,1 +2020-06-04,Hockley,Texas,48219,27,1 +2020-06-05,Hockley,Texas,48219,27,1 +2020-06-06,Hockley,Texas,48219,27,1 +2020-06-07,Hockley,Texas,48219,27,1 +2020-06-08,Hockley,Texas,48219,27,1 +2020-06-09,Hockley,Texas,48219,27,1 +2020-06-10,Hockley,Texas,48219,27,1 +2020-06-11,Hockley,Texas,48219,28,1 +2020-06-12,Hockley,Texas,48219,28,1 +2020-06-13,Hockley,Texas,48219,28,1 +2020-06-14,Hockley,Texas,48219,28,1 +2020-06-15,Hockley,Texas,48219,28,1 +2020-06-16,Hockley,Texas,48219,28,1 +2020-06-17,Hockley,Texas,48219,29,1 +2020-06-18,Hockley,Texas,48219,29,1 +2020-06-19,Hockley,Texas,48219,29,1 +2020-06-20,Hockley,Texas,48219,29,1 +2020-06-21,Hockley,Texas,48219,29,1 +2020-06-22,Hockley,Texas,48219,30,1 +2020-06-23,Hockley,Texas,48219,30,1 +2020-06-24,Hockley,Texas,48219,33,1 +2020-06-25,Hockley,Texas,48219,33,1 +2020-06-26,Hockley,Texas,48219,36,1 +2020-06-27,Hockley,Texas,48219,36,1 +2020-06-28,Hockley,Texas,48219,36,1 +2020-06-29,Hockley,Texas,48219,36,1 +2020-06-30,Hockley,Texas,48219,38,1 +2020-07-01,Hockley,Texas,48219,50,1 +2020-07-02,Hockley,Texas,48219,56,1 +2020-07-03,Hockley,Texas,48219,60,1 +2020-07-04,Hockley,Texas,48219,68,1 +2020-07-05,Hockley,Texas,48219,68,1 +2020-07-06,Hockley,Texas,48219,68,1 +2020-07-07,Hockley,Texas,48219,86,1 +2020-07-08,Hockley,Texas,48219,96,1 +2020-07-09,Hockley,Texas,48219,96,1 +2020-03-27,Hood,Texas,48221,2,0 +2020-03-28,Hood,Texas,48221,3,0 +2020-03-29,Hood,Texas,48221,2,0 +2020-03-30,Hood,Texas,48221,3,0 +2020-03-31,Hood,Texas,48221,6,0 +2020-04-01,Hood,Texas,48221,6,0 +2020-04-02,Hood,Texas,48221,7,0 +2020-04-03,Hood,Texas,48221,8,1 +2020-04-04,Hood,Texas,48221,9,1 +2020-04-05,Hood,Texas,48221,9,1 +2020-04-06,Hood,Texas,48221,11,1 +2020-04-07,Hood,Texas,48221,11,1 +2020-04-08,Hood,Texas,48221,12,1 +2020-04-09,Hood,Texas,48221,12,1 +2020-04-10,Hood,Texas,48221,16,1 +2020-04-11,Hood,Texas,48221,16,1 +2020-04-12,Hood,Texas,48221,16,1 +2020-04-13,Hood,Texas,48221,16,1 +2020-04-14,Hood,Texas,48221,16,1 +2020-04-15,Hood,Texas,48221,17,3 +2020-04-16,Hood,Texas,48221,17,3 +2020-04-17,Hood,Texas,48221,17,3 +2020-04-18,Hood,Texas,48221,17,3 +2020-04-19,Hood,Texas,48221,17,3 +2020-04-20,Hood,Texas,48221,17,3 +2020-04-21,Hood,Texas,48221,17,3 +2020-04-22,Hood,Texas,48221,17,3 +2020-04-23,Hood,Texas,48221,17,3 +2020-04-24,Hood,Texas,48221,17,3 +2020-04-25,Hood,Texas,48221,17,3 +2020-04-26,Hood,Texas,48221,17,3 +2020-04-27,Hood,Texas,48221,17,3 +2020-04-28,Hood,Texas,48221,17,3 +2020-04-29,Hood,Texas,48221,18,3 +2020-04-30,Hood,Texas,48221,18,3 +2020-05-01,Hood,Texas,48221,18,3 +2020-05-02,Hood,Texas,48221,20,3 +2020-05-03,Hood,Texas,48221,20,3 +2020-05-04,Hood,Texas,48221,20,3 +2020-05-05,Hood,Texas,48221,19,3 +2020-05-06,Hood,Texas,48221,19,3 +2020-05-07,Hood,Texas,48221,19,3 +2020-05-08,Hood,Texas,48221,19,3 +2020-05-09,Hood,Texas,48221,19,3 +2020-05-10,Hood,Texas,48221,19,3 +2020-05-11,Hood,Texas,48221,19,3 +2020-05-12,Hood,Texas,48221,21,3 +2020-05-13,Hood,Texas,48221,22,3 +2020-05-14,Hood,Texas,48221,22,3 +2020-05-15,Hood,Texas,48221,22,3 +2020-05-16,Hood,Texas,48221,22,3 +2020-05-17,Hood,Texas,48221,22,3 +2020-05-18,Hood,Texas,48221,22,3 +2020-05-19,Hood,Texas,48221,22,3 +2020-05-20,Hood,Texas,48221,23,3 +2020-05-21,Hood,Texas,48221,23,3 +2020-05-22,Hood,Texas,48221,23,3 +2020-05-23,Hood,Texas,48221,23,3 +2020-05-24,Hood,Texas,48221,23,3 +2020-05-25,Hood,Texas,48221,23,3 +2020-05-26,Hood,Texas,48221,26,3 +2020-05-27,Hood,Texas,48221,26,3 +2020-05-28,Hood,Texas,48221,26,3 +2020-05-29,Hood,Texas,48221,27,3 +2020-05-30,Hood,Texas,48221,27,3 +2020-05-31,Hood,Texas,48221,27,3 +2020-06-01,Hood,Texas,48221,27,3 +2020-06-02,Hood,Texas,48221,27,3 +2020-06-03,Hood,Texas,48221,27,3 +2020-06-04,Hood,Texas,48221,27,3 +2020-06-05,Hood,Texas,48221,31,3 +2020-06-06,Hood,Texas,48221,31,3 +2020-06-07,Hood,Texas,48221,31,3 +2020-06-08,Hood,Texas,48221,31,3 +2020-06-09,Hood,Texas,48221,31,4 +2020-06-10,Hood,Texas,48221,31,4 +2020-06-11,Hood,Texas,48221,31,4 +2020-06-12,Hood,Texas,48221,34,4 +2020-06-13,Hood,Texas,48221,35,4 +2020-06-14,Hood,Texas,48221,35,4 +2020-06-15,Hood,Texas,48221,35,4 +2020-06-16,Hood,Texas,48221,35,4 +2020-06-17,Hood,Texas,48221,35,4 +2020-06-18,Hood,Texas,48221,35,4 +2020-06-19,Hood,Texas,48221,35,4 +2020-06-20,Hood,Texas,48221,35,4 +2020-06-21,Hood,Texas,48221,35,4 +2020-06-22,Hood,Texas,48221,35,4 +2020-06-23,Hood,Texas,48221,36,4 +2020-06-24,Hood,Texas,48221,45,4 +2020-06-25,Hood,Texas,48221,45,4 +2020-06-26,Hood,Texas,48221,45,4 +2020-06-27,Hood,Texas,48221,48,4 +2020-06-28,Hood,Texas,48221,48,4 +2020-06-29,Hood,Texas,48221,48,4 +2020-06-30,Hood,Texas,48221,61,4 +2020-07-01,Hood,Texas,48221,67,4 +2020-07-02,Hood,Texas,48221,83,4 +2020-07-03,Hood,Texas,48221,92,4 +2020-07-04,Hood,Texas,48221,120,4 +2020-07-05,Hood,Texas,48221,120,4 +2020-07-06,Hood,Texas,48221,120,4 +2020-07-07,Hood,Texas,48221,138,4 +2020-07-08,Hood,Texas,48221,154,5 +2020-07-09,Hood,Texas,48221,162,5 +2020-03-25,Hopkins,Texas,48223,1,0 +2020-03-26,Hopkins,Texas,48223,1,0 +2020-03-27,Hopkins,Texas,48223,1,0 +2020-03-28,Hopkins,Texas,48223,1,0 +2020-03-29,Hopkins,Texas,48223,1,0 +2020-03-30,Hopkins,Texas,48223,2,0 +2020-03-31,Hopkins,Texas,48223,3,0 +2020-04-01,Hopkins,Texas,48223,3,0 +2020-04-02,Hopkins,Texas,48223,3,0 +2020-04-03,Hopkins,Texas,48223,3,0 +2020-04-04,Hopkins,Texas,48223,3,0 +2020-04-05,Hopkins,Texas,48223,4,0 +2020-04-06,Hopkins,Texas,48223,4,0 +2020-04-07,Hopkins,Texas,48223,4,0 +2020-04-08,Hopkins,Texas,48223,4,0 +2020-04-09,Hopkins,Texas,48223,4,0 +2020-04-10,Hopkins,Texas,48223,4,0 +2020-04-11,Hopkins,Texas,48223,4,0 +2020-04-12,Hopkins,Texas,48223,4,0 +2020-04-13,Hopkins,Texas,48223,4,0 +2020-04-14,Hopkins,Texas,48223,4,0 +2020-04-15,Hopkins,Texas,48223,4,0 +2020-04-16,Hopkins,Texas,48223,4,0 +2020-04-17,Hopkins,Texas,48223,4,0 +2020-04-18,Hopkins,Texas,48223,4,0 +2020-04-19,Hopkins,Texas,48223,4,0 +2020-04-20,Hopkins,Texas,48223,4,0 +2020-04-21,Hopkins,Texas,48223,4,0 +2020-04-22,Hopkins,Texas,48223,4,0 +2020-04-23,Hopkins,Texas,48223,4,0 +2020-04-24,Hopkins,Texas,48223,4,0 +2020-04-25,Hopkins,Texas,48223,4,0 +2020-04-26,Hopkins,Texas,48223,4,0 +2020-04-27,Hopkins,Texas,48223,4,0 +2020-04-28,Hopkins,Texas,48223,4,0 +2020-04-29,Hopkins,Texas,48223,4,0 +2020-04-30,Hopkins,Texas,48223,4,0 +2020-05-01,Hopkins,Texas,48223,4,0 +2020-05-02,Hopkins,Texas,48223,6,0 +2020-05-03,Hopkins,Texas,48223,6,0 +2020-05-04,Hopkins,Texas,48223,6,0 +2020-05-05,Hopkins,Texas,48223,6,0 +2020-05-06,Hopkins,Texas,48223,6,0 +2020-05-07,Hopkins,Texas,48223,7,0 +2020-05-08,Hopkins,Texas,48223,7,0 +2020-05-09,Hopkins,Texas,48223,7,0 +2020-05-10,Hopkins,Texas,48223,8,0 +2020-05-11,Hopkins,Texas,48223,8,0 +2020-05-12,Hopkins,Texas,48223,8,0 +2020-05-13,Hopkins,Texas,48223,8,0 +2020-05-14,Hopkins,Texas,48223,8,0 +2020-05-15,Hopkins,Texas,48223,8,0 +2020-05-16,Hopkins,Texas,48223,8,0 +2020-05-17,Hopkins,Texas,48223,8,0 +2020-05-18,Hopkins,Texas,48223,8,0 +2020-05-19,Hopkins,Texas,48223,8,0 +2020-05-20,Hopkins,Texas,48223,11,0 +2020-05-21,Hopkins,Texas,48223,12,0 +2020-05-22,Hopkins,Texas,48223,12,0 +2020-05-23,Hopkins,Texas,48223,15,0 +2020-05-24,Hopkins,Texas,48223,15,0 +2020-05-25,Hopkins,Texas,48223,17,0 +2020-05-26,Hopkins,Texas,48223,18,0 +2020-05-27,Hopkins,Texas,48223,21,0 +2020-05-28,Hopkins,Texas,48223,24,0 +2020-05-29,Hopkins,Texas,48223,24,0 +2020-05-30,Hopkins,Texas,48223,26,0 +2020-05-31,Hopkins,Texas,48223,26,0 +2020-06-01,Hopkins,Texas,48223,26,0 +2020-06-02,Hopkins,Texas,48223,26,0 +2020-06-03,Hopkins,Texas,48223,27,0 +2020-06-04,Hopkins,Texas,48223,27,0 +2020-06-05,Hopkins,Texas,48223,28,0 +2020-06-06,Hopkins,Texas,48223,29,0 +2020-06-07,Hopkins,Texas,48223,30,0 +2020-06-08,Hopkins,Texas,48223,30,0 +2020-06-09,Hopkins,Texas,48223,39,0 +2020-06-10,Hopkins,Texas,48223,39,0 +2020-06-11,Hopkins,Texas,48223,41,0 +2020-06-12,Hopkins,Texas,48223,41,0 +2020-06-13,Hopkins,Texas,48223,41,0 +2020-06-14,Hopkins,Texas,48223,41,0 +2020-06-15,Hopkins,Texas,48223,41,0 +2020-06-16,Hopkins,Texas,48223,44,0 +2020-06-17,Hopkins,Texas,48223,44,0 +2020-06-18,Hopkins,Texas,48223,44,0 +2020-06-19,Hopkins,Texas,48223,48,1 +2020-06-20,Hopkins,Texas,48223,48,1 +2020-06-21,Hopkins,Texas,48223,50,2 +2020-06-22,Hopkins,Texas,48223,50,2 +2020-06-23,Hopkins,Texas,48223,51,1 +2020-06-24,Hopkins,Texas,48223,51,1 +2020-06-25,Hopkins,Texas,48223,52,0 +2020-06-26,Hopkins,Texas,48223,53,0 +2020-06-27,Hopkins,Texas,48223,54,0 +2020-06-28,Hopkins,Texas,48223,54,0 +2020-06-29,Hopkins,Texas,48223,54,0 +2020-06-30,Hopkins,Texas,48223,56,0 +2020-07-01,Hopkins,Texas,48223,63,0 +2020-07-02,Hopkins,Texas,48223,69,0 +2020-07-03,Hopkins,Texas,48223,70,0 +2020-07-04,Hopkins,Texas,48223,70,0 +2020-07-05,Hopkins,Texas,48223,70,1 +2020-07-06,Hopkins,Texas,48223,70,1 +2020-07-07,Hopkins,Texas,48223,75,0 +2020-07-08,Hopkins,Texas,48223,78,0 +2020-07-09,Hopkins,Texas,48223,77,0 +2020-04-19,Houston,Texas,48225,1,0 +2020-04-20,Houston,Texas,48225,1,0 +2020-04-21,Houston,Texas,48225,1,0 +2020-04-22,Houston,Texas,48225,1,0 +2020-04-23,Houston,Texas,48225,4,0 +2020-04-24,Houston,Texas,48225,4,0 +2020-04-25,Houston,Texas,48225,4,0 +2020-04-26,Houston,Texas,48225,4,0 +2020-04-27,Houston,Texas,48225,4,0 +2020-04-28,Houston,Texas,48225,5,0 +2020-04-29,Houston,Texas,48225,5,0 +2020-04-30,Houston,Texas,48225,5,0 +2020-05-01,Houston,Texas,48225,6,0 +2020-05-02,Houston,Texas,48225,7,0 +2020-05-03,Houston,Texas,48225,7,0 +2020-05-04,Houston,Texas,48225,7,0 +2020-05-05,Houston,Texas,48225,8,0 +2020-05-06,Houston,Texas,48225,9,0 +2020-05-07,Houston,Texas,48225,10,0 +2020-05-08,Houston,Texas,48225,10,0 +2020-05-09,Houston,Texas,48225,10,0 +2020-05-10,Houston,Texas,48225,13,0 +2020-05-11,Houston,Texas,48225,13,0 +2020-05-12,Houston,Texas,48225,14,0 +2020-05-13,Houston,Texas,48225,21,0 +2020-05-14,Houston,Texas,48225,71,0 +2020-05-15,Houston,Texas,48225,74,0 +2020-05-16,Houston,Texas,48225,76,0 +2020-05-17,Houston,Texas,48225,76,0 +2020-05-18,Houston,Texas,48225,79,0 +2020-05-19,Houston,Texas,48225,81,0 +2020-05-20,Houston,Texas,48225,81,0 +2020-05-21,Houston,Texas,48225,81,0 +2020-05-22,Houston,Texas,48225,81,0 +2020-05-23,Houston,Texas,48225,46,0 +2020-05-24,Houston,Texas,48225,46,0 +2020-05-25,Houston,Texas,48225,46,0 +2020-05-26,Houston,Texas,48225,46,0 +2020-05-27,Houston,Texas,48225,46,0 +2020-05-28,Houston,Texas,48225,49,0 +2020-05-29,Houston,Texas,48225,52,0 +2020-05-30,Houston,Texas,48225,53,0 +2020-05-31,Houston,Texas,48225,114,0 +2020-06-01,Houston,Texas,48225,114,0 +2020-06-02,Houston,Texas,48225,114,0 +2020-06-03,Houston,Texas,48225,127,0 +2020-06-04,Houston,Texas,48225,145,0 +2020-06-05,Houston,Texas,48225,151,0 +2020-06-06,Houston,Texas,48225,151,0 +2020-06-07,Houston,Texas,48225,151,0 +2020-06-08,Houston,Texas,48225,151,0 +2020-06-09,Houston,Texas,48225,152,0 +2020-06-10,Houston,Texas,48225,153,0 +2020-06-11,Houston,Texas,48225,153,0 +2020-06-12,Houston,Texas,48225,154,0 +2020-06-13,Houston,Texas,48225,155,0 +2020-06-14,Houston,Texas,48225,156,0 +2020-06-15,Houston,Texas,48225,156,0 +2020-06-16,Houston,Texas,48225,147,0 +2020-06-17,Houston,Texas,48225,148,0 +2020-06-18,Houston,Texas,48225,147,0 +2020-06-19,Houston,Texas,48225,147,0 +2020-06-20,Houston,Texas,48225,148,0 +2020-06-21,Houston,Texas,48225,148,0 +2020-06-22,Houston,Texas,48225,148,0 +2020-06-23,Houston,Texas,48225,153,0 +2020-06-24,Houston,Texas,48225,157,0 +2020-06-25,Houston,Texas,48225,157,0 +2020-06-26,Houston,Texas,48225,159,0 +2020-06-27,Houston,Texas,48225,160,0 +2020-06-28,Houston,Texas,48225,160,0 +2020-06-29,Houston,Texas,48225,160,0 +2020-06-30,Houston,Texas,48225,160,0 +2020-07-01,Houston,Texas,48225,162,0 +2020-07-02,Houston,Texas,48225,165,0 +2020-07-03,Houston,Texas,48225,165,0 +2020-07-04,Houston,Texas,48225,171,0 +2020-07-05,Houston,Texas,48225,171,0 +2020-07-06,Houston,Texas,48225,171,0 +2020-07-07,Houston,Texas,48225,172,0 +2020-07-08,Houston,Texas,48225,174,0 +2020-07-09,Houston,Texas,48225,175,0 +2020-04-10,Howard,Texas,48227,1,0 +2020-04-11,Howard,Texas,48227,1,1 +2020-04-12,Howard,Texas,48227,1,1 +2020-04-13,Howard,Texas,48227,1,1 +2020-04-14,Howard,Texas,48227,1,1 +2020-04-15,Howard,Texas,48227,1,1 +2020-04-16,Howard,Texas,48227,1,1 +2020-04-17,Howard,Texas,48227,1,1 +2020-04-18,Howard,Texas,48227,1,1 +2020-04-19,Howard,Texas,48227,1,1 +2020-04-20,Howard,Texas,48227,1,1 +2020-04-21,Howard,Texas,48227,1,1 +2020-04-22,Howard,Texas,48227,1,1 +2020-04-23,Howard,Texas,48227,2,1 +2020-04-24,Howard,Texas,48227,4,1 +2020-04-25,Howard,Texas,48227,4,1 +2020-04-26,Howard,Texas,48227,4,1 +2020-04-27,Howard,Texas,48227,4,1 +2020-04-28,Howard,Texas,48227,4,1 +2020-04-29,Howard,Texas,48227,4,1 +2020-04-30,Howard,Texas,48227,4,1 +2020-05-01,Howard,Texas,48227,4,1 +2020-05-02,Howard,Texas,48227,4,1 +2020-05-03,Howard,Texas,48227,4,1 +2020-05-04,Howard,Texas,48227,4,1 +2020-05-05,Howard,Texas,48227,5,1 +2020-05-06,Howard,Texas,48227,6,1 +2020-05-07,Howard,Texas,48227,6,1 +2020-05-08,Howard,Texas,48227,6,1 +2020-05-09,Howard,Texas,48227,6,1 +2020-05-10,Howard,Texas,48227,6,1 +2020-05-11,Howard,Texas,48227,6,1 +2020-05-12,Howard,Texas,48227,6,1 +2020-05-13,Howard,Texas,48227,6,1 +2020-05-14,Howard,Texas,48227,6,1 +2020-05-15,Howard,Texas,48227,6,1 +2020-05-16,Howard,Texas,48227,6,1 +2020-05-17,Howard,Texas,48227,6,1 +2020-05-18,Howard,Texas,48227,6,1 +2020-05-19,Howard,Texas,48227,6,1 +2020-05-20,Howard,Texas,48227,6,1 +2020-05-21,Howard,Texas,48227,6,1 +2020-05-22,Howard,Texas,48227,6,1 +2020-05-23,Howard,Texas,48227,6,1 +2020-05-24,Howard,Texas,48227,6,1 +2020-05-25,Howard,Texas,48227,6,1 +2020-05-26,Howard,Texas,48227,6,1 +2020-05-27,Howard,Texas,48227,6,1 +2020-05-28,Howard,Texas,48227,7,1 +2020-05-29,Howard,Texas,48227,8,1 +2020-05-30,Howard,Texas,48227,8,1 +2020-05-31,Howard,Texas,48227,8,1 +2020-06-01,Howard,Texas,48227,8,1 +2020-06-02,Howard,Texas,48227,9,1 +2020-06-03,Howard,Texas,48227,9,1 +2020-06-04,Howard,Texas,48227,9,1 +2020-06-05,Howard,Texas,48227,9,1 +2020-06-06,Howard,Texas,48227,9,1 +2020-06-07,Howard,Texas,48227,9,1 +2020-06-08,Howard,Texas,48227,9,1 +2020-06-09,Howard,Texas,48227,15,1 +2020-06-10,Howard,Texas,48227,17,1 +2020-06-11,Howard,Texas,48227,18,1 +2020-06-12,Howard,Texas,48227,18,1 +2020-06-13,Howard,Texas,48227,18,1 +2020-06-14,Howard,Texas,48227,18,1 +2020-06-15,Howard,Texas,48227,18,1 +2020-06-16,Howard,Texas,48227,23,1 +2020-06-17,Howard,Texas,48227,24,1 +2020-06-18,Howard,Texas,48227,24,1 +2020-06-19,Howard,Texas,48227,24,1 +2020-06-20,Howard,Texas,48227,26,1 +2020-06-21,Howard,Texas,48227,26,1 +2020-06-22,Howard,Texas,48227,27,1 +2020-06-23,Howard,Texas,48227,29,1 +2020-06-24,Howard,Texas,48227,32,1 +2020-06-25,Howard,Texas,48227,34,1 +2020-06-26,Howard,Texas,48227,34,1 +2020-06-27,Howard,Texas,48227,34,1 +2020-06-28,Howard,Texas,48227,34,1 +2020-06-29,Howard,Texas,48227,34,1 +2020-06-30,Howard,Texas,48227,40,1 +2020-07-01,Howard,Texas,48227,40,1 +2020-07-02,Howard,Texas,48227,43,1 +2020-07-03,Howard,Texas,48227,42,1 +2020-07-04,Howard,Texas,48227,43,1 +2020-07-05,Howard,Texas,48227,43,1 +2020-07-06,Howard,Texas,48227,43,1 +2020-07-07,Howard,Texas,48227,55,1 +2020-07-08,Howard,Texas,48227,60,1 +2020-07-09,Howard,Texas,48227,64,1 +2020-05-26,Hudspeth,Texas,48229,1,0 +2020-05-27,Hudspeth,Texas,48229,1,0 +2020-05-28,Hudspeth,Texas,48229,1,0 +2020-05-29,Hudspeth,Texas,48229,1,0 +2020-05-30,Hudspeth,Texas,48229,2,0 +2020-05-31,Hudspeth,Texas,48229,2,0 +2020-06-01,Hudspeth,Texas,48229,2,0 +2020-06-02,Hudspeth,Texas,48229,2,0 +2020-06-03,Hudspeth,Texas,48229,2,0 +2020-06-04,Hudspeth,Texas,48229,3,0 +2020-06-05,Hudspeth,Texas,48229,4,0 +2020-06-06,Hudspeth,Texas,48229,4,0 +2020-06-07,Hudspeth,Texas,48229,4,0 +2020-06-08,Hudspeth,Texas,48229,4,0 +2020-06-09,Hudspeth,Texas,48229,4,0 +2020-06-10,Hudspeth,Texas,48229,11,0 +2020-06-11,Hudspeth,Texas,48229,11,0 +2020-06-12,Hudspeth,Texas,48229,12,0 +2020-06-13,Hudspeth,Texas,48229,13,0 +2020-06-14,Hudspeth,Texas,48229,13,0 +2020-06-15,Hudspeth,Texas,48229,13,0 +2020-06-16,Hudspeth,Texas,48229,13,0 +2020-06-17,Hudspeth,Texas,48229,13,0 +2020-06-18,Hudspeth,Texas,48229,14,0 +2020-06-19,Hudspeth,Texas,48229,14,0 +2020-06-20,Hudspeth,Texas,48229,14,0 +2020-06-21,Hudspeth,Texas,48229,14,0 +2020-06-22,Hudspeth,Texas,48229,14,0 +2020-06-23,Hudspeth,Texas,48229,14,0 +2020-06-24,Hudspeth,Texas,48229,14,0 +2020-06-25,Hudspeth,Texas,48229,14,0 +2020-06-26,Hudspeth,Texas,48229,15,0 +2020-06-27,Hudspeth,Texas,48229,15,0 +2020-06-28,Hudspeth,Texas,48229,15,0 +2020-06-29,Hudspeth,Texas,48229,15,0 +2020-06-30,Hudspeth,Texas,48229,15,0 +2020-07-01,Hudspeth,Texas,48229,15,0 +2020-07-02,Hudspeth,Texas,48229,16,0 +2020-07-03,Hudspeth,Texas,48229,16,0 +2020-07-04,Hudspeth,Texas,48229,16,0 +2020-07-05,Hudspeth,Texas,48229,16,0 +2020-07-06,Hudspeth,Texas,48229,16,0 +2020-07-07,Hudspeth,Texas,48229,16,0 +2020-07-08,Hudspeth,Texas,48229,16,0 +2020-07-09,Hudspeth,Texas,48229,16,0 +2020-03-25,Hunt,Texas,48231,1,0 +2020-03-26,Hunt,Texas,48231,1,0 +2020-03-27,Hunt,Texas,48231,1,0 +2020-03-28,Hunt,Texas,48231,1,0 +2020-03-29,Hunt,Texas,48231,1,0 +2020-03-30,Hunt,Texas,48231,3,0 +2020-03-31,Hunt,Texas,48231,4,0 +2020-04-01,Hunt,Texas,48231,4,0 +2020-04-02,Hunt,Texas,48231,4,0 +2020-04-03,Hunt,Texas,48231,8,0 +2020-04-04,Hunt,Texas,48231,8,0 +2020-04-05,Hunt,Texas,48231,8,0 +2020-04-06,Hunt,Texas,48231,8,0 +2020-04-07,Hunt,Texas,48231,8,0 +2020-04-08,Hunt,Texas,48231,8,0 +2020-04-09,Hunt,Texas,48231,15,0 +2020-04-10,Hunt,Texas,48231,15,0 +2020-04-11,Hunt,Texas,48231,16,0 +2020-04-12,Hunt,Texas,48231,18,0 +2020-04-13,Hunt,Texas,48231,18,1 +2020-04-14,Hunt,Texas,48231,22,2 +2020-04-15,Hunt,Texas,48231,22,2 +2020-04-16,Hunt,Texas,48231,25,2 +2020-04-17,Hunt,Texas,48231,25,2 +2020-04-18,Hunt,Texas,48231,25,2 +2020-04-19,Hunt,Texas,48231,26,2 +2020-04-20,Hunt,Texas,48231,32,2 +2020-04-21,Hunt,Texas,48231,35,2 +2020-04-22,Hunt,Texas,48231,38,2 +2020-04-23,Hunt,Texas,48231,37,2 +2020-04-24,Hunt,Texas,48231,37,2 +2020-04-25,Hunt,Texas,48231,38,2 +2020-04-26,Hunt,Texas,48231,39,3 +2020-04-27,Hunt,Texas,48231,41,2 +2020-04-28,Hunt,Texas,48231,44,2 +2020-04-29,Hunt,Texas,48231,44,2 +2020-04-30,Hunt,Texas,48231,44,2 +2020-05-01,Hunt,Texas,48231,47,2 +2020-05-02,Hunt,Texas,48231,48,2 +2020-05-03,Hunt,Texas,48231,49,2 +2020-05-04,Hunt,Texas,48231,49,3 +2020-05-05,Hunt,Texas,48231,52,3 +2020-05-06,Hunt,Texas,48231,54,3 +2020-05-07,Hunt,Texas,48231,54,3 +2020-05-08,Hunt,Texas,48231,56,3 +2020-05-09,Hunt,Texas,48231,57,3 +2020-05-10,Hunt,Texas,48231,57,3 +2020-05-11,Hunt,Texas,48231,57,3 +2020-05-12,Hunt,Texas,48231,58,3 +2020-05-13,Hunt,Texas,48231,58,3 +2020-05-14,Hunt,Texas,48231,58,3 +2020-05-15,Hunt,Texas,48231,66,3 +2020-05-16,Hunt,Texas,48231,66,3 +2020-05-17,Hunt,Texas,48231,66,3 +2020-05-18,Hunt,Texas,48231,66,3 +2020-05-19,Hunt,Texas,48231,68,3 +2020-05-20,Hunt,Texas,48231,69,3 +2020-05-21,Hunt,Texas,48231,71,3 +2020-05-22,Hunt,Texas,48231,71,3 +2020-05-23,Hunt,Texas,48231,75,3 +2020-05-24,Hunt,Texas,48231,75,4 +2020-05-25,Hunt,Texas,48231,75,4 +2020-05-26,Hunt,Texas,48231,76,4 +2020-05-27,Hunt,Texas,48231,76,4 +2020-05-28,Hunt,Texas,48231,76,4 +2020-05-29,Hunt,Texas,48231,79,4 +2020-05-30,Hunt,Texas,48231,82,4 +2020-05-31,Hunt,Texas,48231,88,4 +2020-06-01,Hunt,Texas,48231,88,4 +2020-06-02,Hunt,Texas,48231,89,4 +2020-06-03,Hunt,Texas,48231,91,4 +2020-06-04,Hunt,Texas,48231,96,4 +2020-06-05,Hunt,Texas,48231,106,4 +2020-06-06,Hunt,Texas,48231,114,5 +2020-06-07,Hunt,Texas,48231,121,5 +2020-06-08,Hunt,Texas,48231,121,5 +2020-06-09,Hunt,Texas,48231,121,5 +2020-06-10,Hunt,Texas,48231,132,5 +2020-06-11,Hunt,Texas,48231,147,5 +2020-06-12,Hunt,Texas,48231,162,5 +2020-06-13,Hunt,Texas,48231,185,5 +2020-06-14,Hunt,Texas,48231,185,5 +2020-06-15,Hunt,Texas,48231,185,5 +2020-06-16,Hunt,Texas,48231,185,5 +2020-06-17,Hunt,Texas,48231,217,5 +2020-06-18,Hunt,Texas,48231,223,5 +2020-06-19,Hunt,Texas,48231,227,5 +2020-06-20,Hunt,Texas,48231,246,5 +2020-06-21,Hunt,Texas,48231,258,5 +2020-06-22,Hunt,Texas,48231,258,5 +2020-06-23,Hunt,Texas,48231,258,5 +2020-06-24,Hunt,Texas,48231,319,5 +2020-06-25,Hunt,Texas,48231,330,5 +2020-06-26,Hunt,Texas,48231,364,6 +2020-06-27,Hunt,Texas,48231,364,6 +2020-06-28,Hunt,Texas,48231,392,6 +2020-06-29,Hunt,Texas,48231,392,6 +2020-06-30,Hunt,Texas,48231,392,6 +2020-07-01,Hunt,Texas,48231,452,6 +2020-07-02,Hunt,Texas,48231,480,8 +2020-07-03,Hunt,Texas,48231,505,8 +2020-07-04,Hunt,Texas,48231,533,8 +2020-07-05,Hunt,Texas,48231,533,8 +2020-07-06,Hunt,Texas,48231,533,8 +2020-07-07,Hunt,Texas,48231,616,8 +2020-07-08,Hunt,Texas,48231,616,8 +2020-07-09,Hunt,Texas,48231,637,8 +2020-04-04,Hutchinson,Texas,48233,2,0 +2020-04-05,Hutchinson,Texas,48233,2,0 +2020-04-06,Hutchinson,Texas,48233,2,0 +2020-04-07,Hutchinson,Texas,48233,2,0 +2020-04-08,Hutchinson,Texas,48233,2,0 +2020-04-09,Hutchinson,Texas,48233,2,0 +2020-04-10,Hutchinson,Texas,48233,2,0 +2020-04-11,Hutchinson,Texas,48233,2,0 +2020-04-12,Hutchinson,Texas,48233,2,0 +2020-04-13,Hutchinson,Texas,48233,3,0 +2020-04-14,Hutchinson,Texas,48233,3,0 +2020-04-15,Hutchinson,Texas,48233,3,0 +2020-04-16,Hutchinson,Texas,48233,6,0 +2020-04-17,Hutchinson,Texas,48233,6,0 +2020-04-18,Hutchinson,Texas,48233,7,0 +2020-04-19,Hutchinson,Texas,48233,7,0 +2020-04-20,Hutchinson,Texas,48233,8,0 +2020-04-21,Hutchinson,Texas,48233,8,0 +2020-04-22,Hutchinson,Texas,48233,8,0 +2020-04-23,Hutchinson,Texas,48233,9,0 +2020-04-24,Hutchinson,Texas,48233,10,0 +2020-04-25,Hutchinson,Texas,48233,11,0 +2020-04-26,Hutchinson,Texas,48233,11,0 +2020-04-27,Hutchinson,Texas,48233,13,0 +2020-04-28,Hutchinson,Texas,48233,13,0 +2020-04-29,Hutchinson,Texas,48233,13,0 +2020-04-30,Hutchinson,Texas,48233,14,0 +2020-05-01,Hutchinson,Texas,48233,14,0 +2020-05-02,Hutchinson,Texas,48233,14,0 +2020-05-03,Hutchinson,Texas,48233,16,0 +2020-05-04,Hutchinson,Texas,48233,16,0 +2020-05-05,Hutchinson,Texas,48233,19,0 +2020-05-06,Hutchinson,Texas,48233,20,0 +2020-05-07,Hutchinson,Texas,48233,19,0 +2020-05-08,Hutchinson,Texas,48233,19,0 +2020-05-09,Hutchinson,Texas,48233,20,0 +2020-05-10,Hutchinson,Texas,48233,21,0 +2020-05-11,Hutchinson,Texas,48233,21,0 +2020-05-12,Hutchinson,Texas,48233,22,0 +2020-05-13,Hutchinson,Texas,48233,25,0 +2020-05-14,Hutchinson,Texas,48233,25,0 +2020-05-15,Hutchinson,Texas,48233,25,0 +2020-05-16,Hutchinson,Texas,48233,25,0 +2020-05-17,Hutchinson,Texas,48233,25,0 +2020-05-18,Hutchinson,Texas,48233,28,0 +2020-05-19,Hutchinson,Texas,48233,30,0 +2020-05-20,Hutchinson,Texas,48233,32,0 +2020-05-21,Hutchinson,Texas,48233,31,0 +2020-05-22,Hutchinson,Texas,48233,31,0 +2020-05-23,Hutchinson,Texas,48233,31,0 +2020-05-24,Hutchinson,Texas,48233,30,0 +2020-05-25,Hutchinson,Texas,48233,30,0 +2020-05-26,Hutchinson,Texas,48233,30,0 +2020-05-27,Hutchinson,Texas,48233,30,0 +2020-05-28,Hutchinson,Texas,48233,34,0 +2020-05-29,Hutchinson,Texas,48233,37,0 +2020-05-30,Hutchinson,Texas,48233,36,0 +2020-05-31,Hutchinson,Texas,48233,36,0 +2020-06-01,Hutchinson,Texas,48233,36,0 +2020-06-02,Hutchinson,Texas,48233,42,0 +2020-06-03,Hutchinson,Texas,48233,42,0 +2020-06-04,Hutchinson,Texas,48233,44,0 +2020-06-05,Hutchinson,Texas,48233,44,0 +2020-06-06,Hutchinson,Texas,48233,44,0 +2020-06-07,Hutchinson,Texas,48233,44,0 +2020-06-08,Hutchinson,Texas,48233,44,0 +2020-06-09,Hutchinson,Texas,48233,44,0 +2020-06-10,Hutchinson,Texas,48233,44,0 +2020-06-11,Hutchinson,Texas,48233,44,0 +2020-06-12,Hutchinson,Texas,48233,45,0 +2020-06-13,Hutchinson,Texas,48233,45,0 +2020-06-14,Hutchinson,Texas,48233,45,0 +2020-06-15,Hutchinson,Texas,48233,45,0 +2020-06-16,Hutchinson,Texas,48233,45,0 +2020-06-17,Hutchinson,Texas,48233,47,0 +2020-06-18,Hutchinson,Texas,48233,47,0 +2020-06-19,Hutchinson,Texas,48233,49,0 +2020-06-20,Hutchinson,Texas,48233,49,0 +2020-06-21,Hutchinson,Texas,48233,49,0 +2020-06-22,Hutchinson,Texas,48233,51,0 +2020-06-23,Hutchinson,Texas,48233,53,0 +2020-06-24,Hutchinson,Texas,48233,54,0 +2020-06-25,Hutchinson,Texas,48233,55,0 +2020-06-26,Hutchinson,Texas,48233,56,0 +2020-06-27,Hutchinson,Texas,48233,57,0 +2020-06-28,Hutchinson,Texas,48233,57,0 +2020-06-29,Hutchinson,Texas,48233,57,0 +2020-06-30,Hutchinson,Texas,48233,62,0 +2020-07-01,Hutchinson,Texas,48233,65,0 +2020-07-02,Hutchinson,Texas,48233,68,0 +2020-07-03,Hutchinson,Texas,48233,68,0 +2020-07-04,Hutchinson,Texas,48233,70,0 +2020-07-05,Hutchinson,Texas,48233,70,0 +2020-07-06,Hutchinson,Texas,48233,70,0 +2020-07-07,Hutchinson,Texas,48233,70,0 +2020-07-08,Hutchinson,Texas,48233,70,0 +2020-07-09,Hutchinson,Texas,48233,71,0 +2020-06-02,Irion,Texas,48235,1,0 +2020-06-03,Irion,Texas,48235,1,0 +2020-06-04,Irion,Texas,48235,1,0 +2020-06-05,Irion,Texas,48235,1,0 +2020-06-06,Irion,Texas,48235,1,0 +2020-06-07,Irion,Texas,48235,1,0 +2020-06-08,Irion,Texas,48235,1,0 +2020-06-09,Irion,Texas,48235,1,0 +2020-06-10,Irion,Texas,48235,1,0 +2020-06-11,Irion,Texas,48235,1,0 +2020-06-12,Irion,Texas,48235,1,0 +2020-06-13,Irion,Texas,48235,1,0 +2020-06-14,Irion,Texas,48235,1,0 +2020-06-15,Irion,Texas,48235,1,0 +2020-06-16,Irion,Texas,48235,1,0 +2020-06-17,Irion,Texas,48235,1,0 +2020-06-18,Irion,Texas,48235,1,0 +2020-06-19,Irion,Texas,48235,1,0 +2020-06-20,Irion,Texas,48235,1,0 +2020-06-21,Irion,Texas,48235,1,0 +2020-06-22,Irion,Texas,48235,1,0 +2020-06-23,Irion,Texas,48235,1,0 +2020-06-24,Irion,Texas,48235,1,0 +2020-06-25,Irion,Texas,48235,1,0 +2020-06-26,Irion,Texas,48235,1,0 +2020-06-27,Irion,Texas,48235,2,0 +2020-06-28,Irion,Texas,48235,2,0 +2020-06-29,Irion,Texas,48235,2,0 +2020-06-30,Irion,Texas,48235,2,0 +2020-07-01,Irion,Texas,48235,2,0 +2020-07-02,Irion,Texas,48235,2,0 +2020-07-03,Irion,Texas,48235,2,0 +2020-07-04,Irion,Texas,48235,2,0 +2020-07-05,Irion,Texas,48235,2,0 +2020-07-06,Irion,Texas,48235,2,0 +2020-07-07,Irion,Texas,48235,2,0 +2020-07-08,Irion,Texas,48235,2,0 +2020-07-09,Irion,Texas,48235,3,0 +2020-04-09,Jack,Texas,48237,1,0 +2020-04-10,Jack,Texas,48237,1,0 +2020-04-11,Jack,Texas,48237,1,0 +2020-04-12,Jack,Texas,48237,1,0 +2020-04-13,Jack,Texas,48237,1,0 +2020-04-14,Jack,Texas,48237,2,0 +2020-04-15,Jack,Texas,48237,4,0 +2020-04-16,Jack,Texas,48237,4,0 +2020-04-17,Jack,Texas,48237,4,0 +2020-04-18,Jack,Texas,48237,4,0 +2020-04-19,Jack,Texas,48237,4,0 +2020-04-20,Jack,Texas,48237,4,0 +2020-04-21,Jack,Texas,48237,4,0 +2020-04-22,Jack,Texas,48237,4,0 +2020-04-23,Jack,Texas,48237,4,0 +2020-04-24,Jack,Texas,48237,4,0 +2020-04-25,Jack,Texas,48237,4,0 +2020-04-26,Jack,Texas,48237,4,0 +2020-04-27,Jack,Texas,48237,4,0 +2020-04-28,Jack,Texas,48237,4,0 +2020-04-29,Jack,Texas,48237,4,0 +2020-04-30,Jack,Texas,48237,4,0 +2020-05-01,Jack,Texas,48237,4,0 +2020-05-02,Jack,Texas,48237,4,0 +2020-05-03,Jack,Texas,48237,4,0 +2020-05-04,Jack,Texas,48237,4,0 +2020-05-05,Jack,Texas,48237,4,0 +2020-05-06,Jack,Texas,48237,4,0 +2020-05-07,Jack,Texas,48237,4,0 +2020-05-08,Jack,Texas,48237,4,0 +2020-05-09,Jack,Texas,48237,4,0 +2020-05-10,Jack,Texas,48237,4,0 +2020-05-11,Jack,Texas,48237,4,0 +2020-05-12,Jack,Texas,48237,4,0 +2020-05-13,Jack,Texas,48237,4,0 +2020-05-14,Jack,Texas,48237,4,0 +2020-05-15,Jack,Texas,48237,4,0 +2020-05-16,Jack,Texas,48237,4,0 +2020-05-17,Jack,Texas,48237,4,0 +2020-05-18,Jack,Texas,48237,4,0 +2020-05-19,Jack,Texas,48237,4,0 +2020-05-20,Jack,Texas,48237,4,0 +2020-05-21,Jack,Texas,48237,4,0 +2020-05-22,Jack,Texas,48237,4,0 +2020-05-23,Jack,Texas,48237,4,0 +2020-05-24,Jack,Texas,48237,4,0 +2020-05-25,Jack,Texas,48237,4,0 +2020-05-26,Jack,Texas,48237,4,0 +2020-05-27,Jack,Texas,48237,4,0 +2020-05-28,Jack,Texas,48237,4,0 +2020-05-29,Jack,Texas,48237,4,0 +2020-05-30,Jack,Texas,48237,4,0 +2020-05-31,Jack,Texas,48237,4,0 +2020-06-01,Jack,Texas,48237,4,0 +2020-06-02,Jack,Texas,48237,4,0 +2020-06-03,Jack,Texas,48237,4,0 +2020-06-04,Jack,Texas,48237,4,0 +2020-06-05,Jack,Texas,48237,4,0 +2020-06-06,Jack,Texas,48237,4,0 +2020-06-07,Jack,Texas,48237,4,0 +2020-06-08,Jack,Texas,48237,4,0 +2020-06-09,Jack,Texas,48237,4,0 +2020-06-10,Jack,Texas,48237,4,0 +2020-06-11,Jack,Texas,48237,4,0 +2020-06-12,Jack,Texas,48237,4,0 +2020-06-13,Jack,Texas,48237,4,0 +2020-06-14,Jack,Texas,48237,4,0 +2020-06-15,Jack,Texas,48237,4,0 +2020-06-16,Jack,Texas,48237,4,0 +2020-06-17,Jack,Texas,48237,4,0 +2020-06-18,Jack,Texas,48237,4,0 +2020-06-19,Jack,Texas,48237,4,0 +2020-06-20,Jack,Texas,48237,4,0 +2020-06-21,Jack,Texas,48237,4,0 +2020-06-22,Jack,Texas,48237,4,0 +2020-06-23,Jack,Texas,48237,6,0 +2020-06-24,Jack,Texas,48237,7,0 +2020-06-25,Jack,Texas,48237,7,0 +2020-06-26,Jack,Texas,48237,7,0 +2020-06-27,Jack,Texas,48237,7,0 +2020-06-28,Jack,Texas,48237,7,0 +2020-06-29,Jack,Texas,48237,7,0 +2020-06-30,Jack,Texas,48237,9,0 +2020-07-01,Jack,Texas,48237,11,0 +2020-07-02,Jack,Texas,48237,11,0 +2020-07-03,Jack,Texas,48237,11,0 +2020-07-04,Jack,Texas,48237,12,0 +2020-07-05,Jack,Texas,48237,12,0 +2020-07-06,Jack,Texas,48237,12,0 +2020-07-07,Jack,Texas,48237,12,0 +2020-07-08,Jack,Texas,48237,12,0 +2020-07-09,Jack,Texas,48237,12,0 +2020-03-26,Jackson,Texas,48239,1,0 +2020-03-27,Jackson,Texas,48239,1,0 +2020-03-28,Jackson,Texas,48239,1,0 +2020-03-29,Jackson,Texas,48239,1,0 +2020-03-30,Jackson,Texas,48239,1,0 +2020-03-31,Jackson,Texas,48239,1,0 +2020-04-01,Jackson,Texas,48239,1,0 +2020-04-02,Jackson,Texas,48239,2,0 +2020-04-03,Jackson,Texas,48239,3,0 +2020-04-04,Jackson,Texas,48239,3,0 +2020-04-05,Jackson,Texas,48239,3,0 +2020-04-06,Jackson,Texas,48239,3,0 +2020-04-07,Jackson,Texas,48239,4,0 +2020-04-08,Jackson,Texas,48239,4,0 +2020-04-09,Jackson,Texas,48239,4,0 +2020-04-10,Jackson,Texas,48239,4,0 +2020-04-11,Jackson,Texas,48239,4,0 +2020-04-12,Jackson,Texas,48239,4,0 +2020-04-13,Jackson,Texas,48239,4,0 +2020-04-14,Jackson,Texas,48239,4,0 +2020-04-15,Jackson,Texas,48239,4,0 +2020-04-16,Jackson,Texas,48239,4,0 +2020-04-17,Jackson,Texas,48239,4,0 +2020-04-18,Jackson,Texas,48239,4,0 +2020-04-19,Jackson,Texas,48239,4,0 +2020-04-20,Jackson,Texas,48239,4,0 +2020-04-21,Jackson,Texas,48239,6,0 +2020-04-22,Jackson,Texas,48239,6,0 +2020-04-23,Jackson,Texas,48239,6,0 +2020-04-24,Jackson,Texas,48239,6,0 +2020-04-25,Jackson,Texas,48239,6,0 +2020-04-26,Jackson,Texas,48239,6,0 +2020-04-27,Jackson,Texas,48239,6,0 +2020-04-28,Jackson,Texas,48239,6,0 +2020-04-29,Jackson,Texas,48239,6,0 +2020-04-30,Jackson,Texas,48239,6,0 +2020-05-01,Jackson,Texas,48239,8,0 +2020-05-02,Jackson,Texas,48239,10,0 +2020-05-03,Jackson,Texas,48239,14,0 +2020-05-04,Jackson,Texas,48239,14,0 +2020-05-05,Jackson,Texas,48239,14,0 +2020-05-06,Jackson,Texas,48239,14,0 +2020-05-07,Jackson,Texas,48239,14,0 +2020-05-08,Jackson,Texas,48239,14,0 +2020-05-09,Jackson,Texas,48239,14,0 +2020-05-10,Jackson,Texas,48239,14,0 +2020-05-11,Jackson,Texas,48239,14,0 +2020-05-12,Jackson,Texas,48239,15,0 +2020-05-13,Jackson,Texas,48239,15,0 +2020-05-14,Jackson,Texas,48239,15,1 +2020-05-15,Jackson,Texas,48239,15,1 +2020-05-16,Jackson,Texas,48239,15,1 +2020-05-17,Jackson,Texas,48239,15,1 +2020-05-18,Jackson,Texas,48239,15,1 +2020-05-19,Jackson,Texas,48239,15,1 +2020-05-20,Jackson,Texas,48239,15,1 +2020-05-21,Jackson,Texas,48239,16,1 +2020-05-22,Jackson,Texas,48239,16,1 +2020-05-23,Jackson,Texas,48239,17,1 +2020-05-24,Jackson,Texas,48239,17,1 +2020-05-25,Jackson,Texas,48239,17,1 +2020-05-26,Jackson,Texas,48239,17,1 +2020-05-27,Jackson,Texas,48239,17,1 +2020-05-28,Jackson,Texas,48239,18,1 +2020-05-29,Jackson,Texas,48239,18,1 +2020-05-30,Jackson,Texas,48239,18,1 +2020-05-31,Jackson,Texas,48239,18,1 +2020-06-01,Jackson,Texas,48239,18,1 +2020-06-02,Jackson,Texas,48239,19,1 +2020-06-03,Jackson,Texas,48239,19,1 +2020-06-04,Jackson,Texas,48239,19,1 +2020-06-05,Jackson,Texas,48239,19,1 +2020-06-06,Jackson,Texas,48239,19,1 +2020-06-07,Jackson,Texas,48239,19,1 +2020-06-08,Jackson,Texas,48239,19,1 +2020-06-09,Jackson,Texas,48239,19,1 +2020-06-10,Jackson,Texas,48239,19,1 +2020-06-11,Jackson,Texas,48239,20,1 +2020-06-12,Jackson,Texas,48239,20,1 +2020-06-13,Jackson,Texas,48239,20,1 +2020-06-14,Jackson,Texas,48239,21,1 +2020-06-15,Jackson,Texas,48239,21,1 +2020-06-16,Jackson,Texas,48239,21,1 +2020-06-17,Jackson,Texas,48239,21,1 +2020-06-18,Jackson,Texas,48239,21,1 +2020-06-19,Jackson,Texas,48239,24,1 +2020-06-20,Jackson,Texas,48239,25,1 +2020-06-21,Jackson,Texas,48239,25,1 +2020-06-22,Jackson,Texas,48239,25,1 +2020-06-23,Jackson,Texas,48239,27,1 +2020-06-24,Jackson,Texas,48239,27,1 +2020-06-25,Jackson,Texas,48239,36,1 +2020-06-26,Jackson,Texas,48239,39,1 +2020-06-27,Jackson,Texas,48239,39,1 +2020-06-28,Jackson,Texas,48239,40,1 +2020-06-29,Jackson,Texas,48239,40,1 +2020-06-30,Jackson,Texas,48239,41,1 +2020-07-01,Jackson,Texas,48239,47,1 +2020-07-02,Jackson,Texas,48239,47,1 +2020-07-03,Jackson,Texas,48239,47,1 +2020-07-04,Jackson,Texas,48239,53,1 +2020-07-05,Jackson,Texas,48239,53,1 +2020-07-06,Jackson,Texas,48239,53,1 +2020-07-07,Jackson,Texas,48239,68,1 +2020-07-08,Jackson,Texas,48239,68,1 +2020-07-09,Jackson,Texas,48239,73,1 +2020-04-02,Jasper,Texas,48241,2,0 +2020-04-03,Jasper,Texas,48241,2,0 +2020-04-04,Jasper,Texas,48241,2,0 +2020-04-05,Jasper,Texas,48241,2,0 +2020-04-06,Jasper,Texas,48241,3,0 +2020-04-07,Jasper,Texas,48241,3,0 +2020-04-08,Jasper,Texas,48241,3,0 +2020-04-09,Jasper,Texas,48241,5,1 +2020-04-10,Jasper,Texas,48241,6,1 +2020-04-11,Jasper,Texas,48241,7,1 +2020-04-12,Jasper,Texas,48241,7,1 +2020-04-13,Jasper,Texas,48241,7,1 +2020-04-14,Jasper,Texas,48241,7,1 +2020-04-15,Jasper,Texas,48241,7,1 +2020-04-16,Jasper,Texas,48241,7,1 +2020-04-17,Jasper,Texas,48241,7,1 +2020-04-18,Jasper,Texas,48241,7,1 +2020-04-19,Jasper,Texas,48241,7,1 +2020-04-20,Jasper,Texas,48241,7,1 +2020-04-21,Jasper,Texas,48241,10,1 +2020-04-22,Jasper,Texas,48241,10,1 +2020-04-23,Jasper,Texas,48241,10,1 +2020-04-24,Jasper,Texas,48241,10,1 +2020-04-25,Jasper,Texas,48241,10,1 +2020-04-26,Jasper,Texas,48241,12,1 +2020-04-27,Jasper,Texas,48241,12,1 +2020-04-28,Jasper,Texas,48241,12,1 +2020-04-29,Jasper,Texas,48241,12,1 +2020-04-30,Jasper,Texas,48241,16,1 +2020-05-01,Jasper,Texas,48241,16,1 +2020-05-02,Jasper,Texas,48241,18,1 +2020-05-03,Jasper,Texas,48241,18,1 +2020-05-04,Jasper,Texas,48241,18,1 +2020-05-05,Jasper,Texas,48241,18,1 +2020-05-06,Jasper,Texas,48241,18,1 +2020-05-07,Jasper,Texas,48241,18,1 +2020-05-08,Jasper,Texas,48241,19,1 +2020-05-09,Jasper,Texas,48241,19,1 +2020-05-10,Jasper,Texas,48241,19,1 +2020-05-11,Jasper,Texas,48241,19,1 +2020-05-12,Jasper,Texas,48241,28,2 +2020-05-13,Jasper,Texas,48241,32,2 +2020-05-14,Jasper,Texas,48241,33,2 +2020-05-15,Jasper,Texas,48241,33,2 +2020-05-16,Jasper,Texas,48241,33,2 +2020-05-17,Jasper,Texas,48241,33,2 +2020-05-18,Jasper,Texas,48241,33,2 +2020-05-19,Jasper,Texas,48241,33,2 +2020-05-20,Jasper,Texas,48241,34,2 +2020-05-21,Jasper,Texas,48241,34,2 +2020-05-22,Jasper,Texas,48241,34,2 +2020-05-23,Jasper,Texas,48241,34,2 +2020-05-24,Jasper,Texas,48241,34,2 +2020-05-25,Jasper,Texas,48241,34,2 +2020-05-26,Jasper,Texas,48241,34,2 +2020-05-27,Jasper,Texas,48241,34,2 +2020-05-28,Jasper,Texas,48241,34,2 +2020-05-29,Jasper,Texas,48241,34,2 +2020-05-30,Jasper,Texas,48241,34,2 +2020-05-31,Jasper,Texas,48241,34,2 +2020-06-01,Jasper,Texas,48241,34,2 +2020-06-02,Jasper,Texas,48241,34,2 +2020-06-03,Jasper,Texas,48241,34,2 +2020-06-04,Jasper,Texas,48241,34,2 +2020-06-05,Jasper,Texas,48241,34,2 +2020-06-06,Jasper,Texas,48241,34,2 +2020-06-07,Jasper,Texas,48241,34,2 +2020-06-08,Jasper,Texas,48241,34,2 +2020-06-09,Jasper,Texas,48241,34,2 +2020-06-10,Jasper,Texas,48241,34,2 +2020-06-11,Jasper,Texas,48241,34,2 +2020-06-12,Jasper,Texas,48241,34,2 +2020-06-13,Jasper,Texas,48241,34,2 +2020-06-14,Jasper,Texas,48241,34,2 +2020-06-15,Jasper,Texas,48241,34,2 +2020-06-16,Jasper,Texas,48241,34,2 +2020-06-17,Jasper,Texas,48241,34,2 +2020-06-18,Jasper,Texas,48241,34,2 +2020-06-19,Jasper,Texas,48241,34,2 +2020-06-20,Jasper,Texas,48241,35,2 +2020-06-21,Jasper,Texas,48241,36,2 +2020-06-22,Jasper,Texas,48241,36,2 +2020-06-23,Jasper,Texas,48241,39,2 +2020-06-24,Jasper,Texas,48241,41,2 +2020-06-25,Jasper,Texas,48241,43,2 +2020-06-26,Jasper,Texas,48241,43,2 +2020-06-27,Jasper,Texas,48241,43,2 +2020-06-28,Jasper,Texas,48241,51,2 +2020-06-29,Jasper,Texas,48241,51,2 +2020-06-30,Jasper,Texas,48241,51,2 +2020-07-01,Jasper,Texas,48241,52,2 +2020-07-02,Jasper,Texas,48241,52,2 +2020-07-03,Jasper,Texas,48241,60,2 +2020-07-04,Jasper,Texas,48241,60,2 +2020-07-05,Jasper,Texas,48241,61,2 +2020-07-06,Jasper,Texas,48241,61,2 +2020-07-07,Jasper,Texas,48241,69,2 +2020-07-08,Jasper,Texas,48241,69,2 +2020-07-09,Jasper,Texas,48241,70,2 +2020-06-26,Jeff Davis,Texas,48243,1,0 +2020-06-27,Jeff Davis,Texas,48243,1,0 +2020-06-28,Jeff Davis,Texas,48243,1,0 +2020-06-29,Jeff Davis,Texas,48243,1,0 +2020-06-30,Jeff Davis,Texas,48243,4,0 +2020-07-01,Jeff Davis,Texas,48243,4,0 +2020-07-02,Jeff Davis,Texas,48243,4,0 +2020-07-03,Jeff Davis,Texas,48243,4,0 +2020-07-04,Jeff Davis,Texas,48243,4,0 +2020-07-05,Jeff Davis,Texas,48243,4,0 +2020-07-06,Jeff Davis,Texas,48243,4,0 +2020-07-07,Jeff Davis,Texas,48243,4,0 +2020-07-08,Jeff Davis,Texas,48243,4,0 +2020-07-09,Jeff Davis,Texas,48243,5,0 +2020-03-24,Jefferson,Texas,48245,7,0 +2020-03-25,Jefferson,Texas,48245,7,0 +2020-03-26,Jefferson,Texas,48245,7,0 +2020-03-27,Jefferson,Texas,48245,8,0 +2020-03-28,Jefferson,Texas,48245,12,0 +2020-03-29,Jefferson,Texas,48245,16,0 +2020-03-30,Jefferson,Texas,48245,18,0 +2020-03-31,Jefferson,Texas,48245,18,0 +2020-04-01,Jefferson,Texas,48245,27,0 +2020-04-02,Jefferson,Texas,48245,31,0 +2020-04-03,Jefferson,Texas,48245,40,2 +2020-04-04,Jefferson,Texas,48245,40,2 +2020-04-05,Jefferson,Texas,48245,51,2 +2020-04-06,Jefferson,Texas,48245,64,2 +2020-04-07,Jefferson,Texas,48245,78,2 +2020-04-08,Jefferson,Texas,48245,78,4 +2020-04-09,Jefferson,Texas,48245,92,5 +2020-04-10,Jefferson,Texas,48245,94,5 +2020-04-11,Jefferson,Texas,48245,100,5 +2020-04-12,Jefferson,Texas,48245,100,5 +2020-04-13,Jefferson,Texas,48245,124,6 +2020-04-14,Jefferson,Texas,48245,134,6 +2020-04-15,Jefferson,Texas,48245,140,6 +2020-04-16,Jefferson,Texas,48245,143,6 +2020-04-17,Jefferson,Texas,48245,157,7 +2020-04-18,Jefferson,Texas,48245,167,9 +2020-04-19,Jefferson,Texas,48245,167,9 +2020-04-20,Jefferson,Texas,48245,180,10 +2020-04-21,Jefferson,Texas,48245,196,10 +2020-04-22,Jefferson,Texas,48245,209,13 +2020-04-23,Jefferson,Texas,48245,244,13 +2020-04-24,Jefferson,Texas,48245,244,16 +2020-04-25,Jefferson,Texas,48245,243,18 +2020-04-26,Jefferson,Texas,48245,266,18 +2020-04-27,Jefferson,Texas,48245,268,18 +2020-04-28,Jefferson,Texas,48245,288,19 +2020-04-29,Jefferson,Texas,48245,298,19 +2020-04-30,Jefferson,Texas,48245,305,21 +2020-05-01,Jefferson,Texas,48245,307,21 +2020-05-02,Jefferson,Texas,48245,320,22 +2020-05-03,Jefferson,Texas,48245,324,22 +2020-05-04,Jefferson,Texas,48245,325,23 +2020-05-05,Jefferson,Texas,48245,337,23 +2020-05-06,Jefferson,Texas,48245,337,23 +2020-05-07,Jefferson,Texas,48245,354,24 +2020-05-08,Jefferson,Texas,48245,354,25 +2020-05-09,Jefferson,Texas,48245,360,25 +2020-05-10,Jefferson,Texas,48245,376,25 +2020-05-11,Jefferson,Texas,48245,381,25 +2020-05-12,Jefferson,Texas,48245,385,26 +2020-05-13,Jefferson,Texas,48245,399,26 +2020-05-14,Jefferson,Texas,48245,418,26 +2020-05-15,Jefferson,Texas,48245,429,26 +2020-05-16,Jefferson,Texas,48245,436,26 +2020-05-17,Jefferson,Texas,48245,436,26 +2020-05-18,Jefferson,Texas,48245,463,26 +2020-05-19,Jefferson,Texas,48245,466,26 +2020-05-20,Jefferson,Texas,48245,472,26 +2020-05-21,Jefferson,Texas,48245,472,27 +2020-05-22,Jefferson,Texas,48245,476,27 +2020-05-23,Jefferson,Texas,48245,478,27 +2020-05-24,Jefferson,Texas,48245,492,27 +2020-05-25,Jefferson,Texas,48245,498,27 +2020-05-26,Jefferson,Texas,48245,503,27 +2020-05-27,Jefferson,Texas,48245,506,27 +2020-05-28,Jefferson,Texas,48245,518,27 +2020-05-29,Jefferson,Texas,48245,524,27 +2020-05-30,Jefferson,Texas,48245,533,27 +2020-05-31,Jefferson,Texas,48245,544,27 +2020-06-01,Jefferson,Texas,48245,550,28 +2020-06-02,Jefferson,Texas,48245,562,28 +2020-06-03,Jefferson,Texas,48245,581,29 +2020-06-04,Jefferson,Texas,48245,585,29 +2020-06-05,Jefferson,Texas,48245,604,29 +2020-06-06,Jefferson,Texas,48245,619,30 +2020-06-07,Jefferson,Texas,48245,627,30 +2020-06-08,Jefferson,Texas,48245,627,30 +2020-06-09,Jefferson,Texas,48245,647,30 +2020-06-10,Jefferson,Texas,48245,1184,31 +2020-06-11,Jefferson,Texas,48245,1187,31 +2020-06-12,Jefferson,Texas,48245,1222,31 +2020-06-13,Jefferson,Texas,48245,1233,31 +2020-06-14,Jefferson,Texas,48245,1235,31 +2020-06-15,Jefferson,Texas,48245,1242,31 +2020-06-16,Jefferson,Texas,48245,1279,32 +2020-06-17,Jefferson,Texas,48245,1319,32 +2020-06-18,Jefferson,Texas,48245,1340,32 +2020-06-19,Jefferson,Texas,48245,1356,32 +2020-06-20,Jefferson,Texas,48245,1388,32 +2020-06-21,Jefferson,Texas,48245,1393,32 +2020-06-22,Jefferson,Texas,48245,1393,32 +2020-06-23,Jefferson,Texas,48245,1447,32 +2020-06-24,Jefferson,Texas,48245,1486,32 +2020-06-25,Jefferson,Texas,48245,1520,32 +2020-06-26,Jefferson,Texas,48245,1539,32 +2020-06-27,Jefferson,Texas,48245,1621,32 +2020-06-28,Jefferson,Texas,48245,1631,32 +2020-06-29,Jefferson,Texas,48245,1638,32 +2020-06-30,Jefferson,Texas,48245,1787,33 +2020-07-01,Jefferson,Texas,48245,1875,34 +2020-07-02,Jefferson,Texas,48245,1947,34 +2020-07-03,Jefferson,Texas,48245,2240,34 +2020-07-04,Jefferson,Texas,48245,2727,35 +2020-07-05,Jefferson,Texas,48245,2727,35 +2020-07-06,Jefferson,Texas,48245,2727,35 +2020-07-07,Jefferson,Texas,48245,2959,36 +2020-07-08,Jefferson,Texas,48245,3094,36 +2020-07-09,Jefferson,Texas,48245,3235,36 +2020-04-23,Jim Hogg,Texas,48247,1,0 +2020-04-24,Jim Hogg,Texas,48247,1,0 +2020-04-25,Jim Hogg,Texas,48247,1,0 +2020-04-26,Jim Hogg,Texas,48247,1,0 +2020-04-27,Jim Hogg,Texas,48247,1,0 +2020-04-28,Jim Hogg,Texas,48247,3,0 +2020-04-29,Jim Hogg,Texas,48247,3,0 +2020-04-30,Jim Hogg,Texas,48247,3,0 +2020-05-01,Jim Hogg,Texas,48247,3,0 +2020-05-02,Jim Hogg,Texas,48247,3,0 +2020-05-03,Jim Hogg,Texas,48247,3,0 +2020-05-04,Jim Hogg,Texas,48247,3,0 +2020-05-05,Jim Hogg,Texas,48247,3,0 +2020-05-06,Jim Hogg,Texas,48247,3,0 +2020-05-07,Jim Hogg,Texas,48247,3,0 +2020-05-08,Jim Hogg,Texas,48247,3,0 +2020-05-09,Jim Hogg,Texas,48247,3,0 +2020-05-10,Jim Hogg,Texas,48247,3,0 +2020-05-11,Jim Hogg,Texas,48247,3,0 +2020-05-12,Jim Hogg,Texas,48247,3,0 +2020-05-13,Jim Hogg,Texas,48247,3,0 +2020-05-14,Jim Hogg,Texas,48247,3,0 +2020-05-15,Jim Hogg,Texas,48247,3,0 +2020-05-16,Jim Hogg,Texas,48247,4,0 +2020-05-17,Jim Hogg,Texas,48247,4,0 +2020-05-18,Jim Hogg,Texas,48247,4,0 +2020-05-19,Jim Hogg,Texas,48247,4,0 +2020-05-20,Jim Hogg,Texas,48247,4,0 +2020-05-21,Jim Hogg,Texas,48247,4,0 +2020-05-22,Jim Hogg,Texas,48247,4,0 +2020-05-23,Jim Hogg,Texas,48247,4,0 +2020-05-24,Jim Hogg,Texas,48247,4,0 +2020-05-25,Jim Hogg,Texas,48247,4,0 +2020-05-26,Jim Hogg,Texas,48247,4,0 +2020-05-27,Jim Hogg,Texas,48247,4,0 +2020-05-28,Jim Hogg,Texas,48247,4,0 +2020-05-29,Jim Hogg,Texas,48247,4,0 +2020-05-30,Jim Hogg,Texas,48247,4,0 +2020-05-31,Jim Hogg,Texas,48247,4,0 +2020-06-01,Jim Hogg,Texas,48247,4,0 +2020-06-02,Jim Hogg,Texas,48247,4,0 +2020-06-03,Jim Hogg,Texas,48247,4,0 +2020-06-04,Jim Hogg,Texas,48247,4,0 +2020-06-05,Jim Hogg,Texas,48247,4,0 +2020-06-06,Jim Hogg,Texas,48247,4,0 +2020-06-07,Jim Hogg,Texas,48247,4,0 +2020-06-08,Jim Hogg,Texas,48247,4,0 +2020-06-09,Jim Hogg,Texas,48247,4,0 +2020-06-10,Jim Hogg,Texas,48247,4,0 +2020-06-11,Jim Hogg,Texas,48247,4,0 +2020-06-12,Jim Hogg,Texas,48247,4,0 +2020-06-13,Jim Hogg,Texas,48247,4,0 +2020-06-14,Jim Hogg,Texas,48247,4,0 +2020-06-15,Jim Hogg,Texas,48247,4,0 +2020-06-16,Jim Hogg,Texas,48247,4,0 +2020-06-17,Jim Hogg,Texas,48247,4,0 +2020-06-18,Jim Hogg,Texas,48247,6,0 +2020-06-19,Jim Hogg,Texas,48247,6,0 +2020-06-20,Jim Hogg,Texas,48247,8,0 +2020-06-21,Jim Hogg,Texas,48247,9,0 +2020-06-22,Jim Hogg,Texas,48247,9,0 +2020-06-23,Jim Hogg,Texas,48247,9,0 +2020-06-24,Jim Hogg,Texas,48247,9,0 +2020-06-25,Jim Hogg,Texas,48247,10,0 +2020-06-26,Jim Hogg,Texas,48247,12,0 +2020-06-27,Jim Hogg,Texas,48247,13,0 +2020-06-28,Jim Hogg,Texas,48247,13,0 +2020-06-29,Jim Hogg,Texas,48247,14,0 +2020-06-30,Jim Hogg,Texas,48247,15,0 +2020-07-01,Jim Hogg,Texas,48247,15,0 +2020-07-02,Jim Hogg,Texas,48247,16,0 +2020-07-03,Jim Hogg,Texas,48247,16,0 +2020-07-04,Jim Hogg,Texas,48247,19,0 +2020-07-05,Jim Hogg,Texas,48247,20,0 +2020-07-06,Jim Hogg,Texas,48247,22,0 +2020-07-07,Jim Hogg,Texas,48247,24,0 +2020-07-08,Jim Hogg,Texas,48247,25,0 +2020-07-09,Jim Hogg,Texas,48247,27,0 +2020-04-02,Jim Wells,Texas,48249,1,0 +2020-04-03,Jim Wells,Texas,48249,1,0 +2020-04-04,Jim Wells,Texas,48249,2,0 +2020-04-05,Jim Wells,Texas,48249,2,0 +2020-04-06,Jim Wells,Texas,48249,2,0 +2020-04-07,Jim Wells,Texas,48249,2,0 +2020-04-08,Jim Wells,Texas,48249,2,0 +2020-04-09,Jim Wells,Texas,48249,2,0 +2020-04-10,Jim Wells,Texas,48249,2,0 +2020-04-11,Jim Wells,Texas,48249,2,0 +2020-04-12,Jim Wells,Texas,48249,2,0 +2020-04-13,Jim Wells,Texas,48249,2,0 +2020-04-14,Jim Wells,Texas,48249,2,0 +2020-04-15,Jim Wells,Texas,48249,2,0 +2020-04-16,Jim Wells,Texas,48249,2,0 +2020-04-17,Jim Wells,Texas,48249,2,0 +2020-04-18,Jim Wells,Texas,48249,2,0 +2020-04-19,Jim Wells,Texas,48249,2,0 +2020-04-20,Jim Wells,Texas,48249,2,0 +2020-04-21,Jim Wells,Texas,48249,2,0 +2020-04-22,Jim Wells,Texas,48249,2,0 +2020-04-23,Jim Wells,Texas,48249,2,0 +2020-04-24,Jim Wells,Texas,48249,2,0 +2020-04-25,Jim Wells,Texas,48249,3,0 +2020-04-26,Jim Wells,Texas,48249,3,0 +2020-04-27,Jim Wells,Texas,48249,3,0 +2020-04-28,Jim Wells,Texas,48249,3,0 +2020-04-29,Jim Wells,Texas,48249,3,0 +2020-04-30,Jim Wells,Texas,48249,3,0 +2020-05-01,Jim Wells,Texas,48249,3,0 +2020-05-02,Jim Wells,Texas,48249,4,0 +2020-05-03,Jim Wells,Texas,48249,5,0 +2020-05-04,Jim Wells,Texas,48249,5,0 +2020-05-05,Jim Wells,Texas,48249,5,0 +2020-05-06,Jim Wells,Texas,48249,5,0 +2020-05-07,Jim Wells,Texas,48249,5,0 +2020-05-08,Jim Wells,Texas,48249,5,0 +2020-05-09,Jim Wells,Texas,48249,6,0 +2020-05-10,Jim Wells,Texas,48249,7,0 +2020-05-11,Jim Wells,Texas,48249,7,0 +2020-05-12,Jim Wells,Texas,48249,7,0 +2020-05-13,Jim Wells,Texas,48249,7,0 +2020-05-14,Jim Wells,Texas,48249,7,0 +2020-05-15,Jim Wells,Texas,48249,7,0 +2020-05-16,Jim Wells,Texas,48249,8,0 +2020-05-17,Jim Wells,Texas,48249,8,0 +2020-05-18,Jim Wells,Texas,48249,8,0 +2020-05-19,Jim Wells,Texas,48249,8,0 +2020-05-20,Jim Wells,Texas,48249,8,0 +2020-05-21,Jim Wells,Texas,48249,9,0 +2020-05-22,Jim Wells,Texas,48249,9,0 +2020-05-23,Jim Wells,Texas,48249,9,0 +2020-05-24,Jim Wells,Texas,48249,9,0 +2020-05-25,Jim Wells,Texas,48249,9,0 +2020-05-26,Jim Wells,Texas,48249,9,0 +2020-05-27,Jim Wells,Texas,48249,9,0 +2020-05-28,Jim Wells,Texas,48249,9,0 +2020-05-29,Jim Wells,Texas,48249,9,0 +2020-05-30,Jim Wells,Texas,48249,9,0 +2020-05-31,Jim Wells,Texas,48249,9,0 +2020-06-01,Jim Wells,Texas,48249,9,0 +2020-06-02,Jim Wells,Texas,48249,9,0 +2020-06-03,Jim Wells,Texas,48249,12,0 +2020-06-04,Jim Wells,Texas,48249,12,0 +2020-06-05,Jim Wells,Texas,48249,12,0 +2020-06-06,Jim Wells,Texas,48249,13,0 +2020-06-07,Jim Wells,Texas,48249,13,0 +2020-06-08,Jim Wells,Texas,48249,13,0 +2020-06-09,Jim Wells,Texas,48249,13,0 +2020-06-10,Jim Wells,Texas,48249,15,0 +2020-06-11,Jim Wells,Texas,48249,15,0 +2020-06-12,Jim Wells,Texas,48249,17,0 +2020-06-13,Jim Wells,Texas,48249,17,0 +2020-06-14,Jim Wells,Texas,48249,18,0 +2020-06-15,Jim Wells,Texas,48249,18,0 +2020-06-16,Jim Wells,Texas,48249,18,0 +2020-06-17,Jim Wells,Texas,48249,19,0 +2020-06-18,Jim Wells,Texas,48249,21,0 +2020-06-19,Jim Wells,Texas,48249,21,0 +2020-06-20,Jim Wells,Texas,48249,22,0 +2020-06-21,Jim Wells,Texas,48249,27,0 +2020-06-22,Jim Wells,Texas,48249,34,0 +2020-06-23,Jim Wells,Texas,48249,46,0 +2020-06-24,Jim Wells,Texas,48249,50,0 +2020-06-25,Jim Wells,Texas,48249,56,0 +2020-06-26,Jim Wells,Texas,48249,66,0 +2020-06-27,Jim Wells,Texas,48249,81,0 +2020-06-28,Jim Wells,Texas,48249,105,0 +2020-06-29,Jim Wells,Texas,48249,124,0 +2020-06-30,Jim Wells,Texas,48249,142,0 +2020-07-01,Jim Wells,Texas,48249,147,0 +2020-07-02,Jim Wells,Texas,48249,166,0 +2020-07-03,Jim Wells,Texas,48249,176,0 +2020-07-04,Jim Wells,Texas,48249,185,0 +2020-07-05,Jim Wells,Texas,48249,189,0 +2020-07-06,Jim Wells,Texas,48249,208,0 +2020-07-07,Jim Wells,Texas,48249,218,0 +2020-07-08,Jim Wells,Texas,48249,230,0 +2020-07-09,Jim Wells,Texas,48249,242,0 +2020-03-19,Johnson,Texas,48251,2,0 +2020-03-20,Johnson,Texas,48251,2,0 +2020-03-21,Johnson,Texas,48251,2,0 +2020-03-22,Johnson,Texas,48251,2,0 +2020-03-23,Johnson,Texas,48251,2,0 +2020-03-24,Johnson,Texas,48251,2,0 +2020-03-25,Johnson,Texas,48251,3,0 +2020-03-26,Johnson,Texas,48251,3,0 +2020-03-27,Johnson,Texas,48251,6,0 +2020-03-28,Johnson,Texas,48251,8,0 +2020-03-29,Johnson,Texas,48251,8,0 +2020-03-30,Johnson,Texas,48251,8,0 +2020-03-31,Johnson,Texas,48251,8,0 +2020-04-01,Johnson,Texas,48251,12,0 +2020-04-02,Johnson,Texas,48251,17,0 +2020-04-03,Johnson,Texas,48251,18,0 +2020-04-04,Johnson,Texas,48251,20,0 +2020-04-05,Johnson,Texas,48251,20,0 +2020-04-06,Johnson,Texas,48251,22,0 +2020-04-07,Johnson,Texas,48251,27,0 +2020-04-08,Johnson,Texas,48251,30,0 +2020-04-09,Johnson,Texas,48251,30,0 +2020-04-10,Johnson,Texas,48251,32,0 +2020-04-11,Johnson,Texas,48251,32,0 +2020-04-12,Johnson,Texas,48251,32,0 +2020-04-13,Johnson,Texas,48251,35,1 +2020-04-14,Johnson,Texas,48251,39,1 +2020-04-15,Johnson,Texas,48251,42,1 +2020-04-16,Johnson,Texas,48251,44,1 +2020-04-17,Johnson,Texas,48251,45,1 +2020-04-18,Johnson,Texas,48251,44,1 +2020-04-19,Johnson,Texas,48251,44,1 +2020-04-20,Johnson,Texas,48251,44,1 +2020-04-21,Johnson,Texas,48251,52,1 +2020-04-22,Johnson,Texas,48251,61,1 +2020-04-23,Johnson,Texas,48251,61,1 +2020-04-24,Johnson,Texas,48251,61,1 +2020-04-25,Johnson,Texas,48251,63,1 +2020-04-26,Johnson,Texas,48251,64,1 +2020-04-27,Johnson,Texas,48251,64,2 +2020-04-28,Johnson,Texas,48251,73,3 +2020-04-29,Johnson,Texas,48251,81,4 +2020-04-30,Johnson,Texas,48251,82,4 +2020-05-01,Johnson,Texas,48251,90,4 +2020-05-02,Johnson,Texas,48251,90,4 +2020-05-03,Johnson,Texas,48251,90,4 +2020-05-04,Johnson,Texas,48251,97,4 +2020-05-05,Johnson,Texas,48251,102,4 +2020-05-06,Johnson,Texas,48251,102,4 +2020-05-07,Johnson,Texas,48251,150,4 +2020-05-08,Johnson,Texas,48251,114,4 +2020-05-09,Johnson,Texas,48251,114,4 +2020-05-10,Johnson,Texas,48251,114,4 +2020-05-11,Johnson,Texas,48251,117,4 +2020-05-12,Johnson,Texas,48251,121,4 +2020-05-13,Johnson,Texas,48251,121,4 +2020-05-14,Johnson,Texas,48251,124,4 +2020-05-15,Johnson,Texas,48251,132,4 +2020-05-16,Johnson,Texas,48251,132,4 +2020-05-17,Johnson,Texas,48251,132,4 +2020-05-18,Johnson,Texas,48251,148,4 +2020-05-19,Johnson,Texas,48251,161,4 +2020-05-20,Johnson,Texas,48251,161,4 +2020-05-21,Johnson,Texas,48251,161,4 +2020-05-22,Johnson,Texas,48251,173,4 +2020-05-23,Johnson,Texas,48251,173,4 +2020-05-24,Johnson,Texas,48251,173,4 +2020-05-25,Johnson,Texas,48251,173,4 +2020-05-26,Johnson,Texas,48251,173,4 +2020-05-27,Johnson,Texas,48251,173,4 +2020-05-28,Johnson,Texas,48251,192,4 +2020-05-29,Johnson,Texas,48251,195,4 +2020-05-30,Johnson,Texas,48251,195,4 +2020-05-31,Johnson,Texas,48251,195,4 +2020-06-01,Johnson,Texas,48251,199,4 +2020-06-02,Johnson,Texas,48251,202,4 +2020-06-03,Johnson,Texas,48251,204,4 +2020-06-04,Johnson,Texas,48251,206,4 +2020-06-05,Johnson,Texas,48251,216,4 +2020-06-06,Johnson,Texas,48251,216,4 +2020-06-07,Johnson,Texas,48251,216,3 +2020-06-08,Johnson,Texas,48251,216,3 +2020-06-09,Johnson,Texas,48251,235,3 +2020-06-10,Johnson,Texas,48251,242,3 +2020-06-11,Johnson,Texas,48251,246,3 +2020-06-12,Johnson,Texas,48251,256,3 +2020-06-13,Johnson,Texas,48251,256,3 +2020-06-14,Johnson,Texas,48251,256,3 +2020-06-15,Johnson,Texas,48251,272,3 +2020-06-16,Johnson,Texas,48251,278,4 +2020-06-17,Johnson,Texas,48251,282,4 +2020-06-18,Johnson,Texas,48251,282,4 +2020-06-19,Johnson,Texas,48251,298,4 +2020-06-20,Johnson,Texas,48251,298,4 +2020-06-21,Johnson,Texas,48251,298,4 +2020-06-22,Johnson,Texas,48251,328,4 +2020-06-23,Johnson,Texas,48251,328,4 +2020-06-24,Johnson,Texas,48251,328,4 +2020-06-25,Johnson,Texas,48251,328,4 +2020-06-26,Johnson,Texas,48251,328,4 +2020-06-27,Johnson,Texas,48251,372,4 +2020-06-28,Johnson,Texas,48251,372,4 +2020-06-29,Johnson,Texas,48251,436,4 +2020-06-30,Johnson,Texas,48251,436,4 +2020-07-01,Johnson,Texas,48251,448,4 +2020-07-02,Johnson,Texas,48251,478,4 +2020-07-03,Johnson,Texas,48251,526,4 +2020-07-04,Johnson,Texas,48251,553,4 +2020-07-05,Johnson,Texas,48251,553,4 +2020-07-06,Johnson,Texas,48251,610,4 +2020-07-07,Johnson,Texas,48251,610,4 +2020-07-08,Johnson,Texas,48251,737,4 +2020-07-09,Johnson,Texas,48251,782,4 +2020-04-08,Jones,Texas,48253,1,0 +2020-04-09,Jones,Texas,48253,1,0 +2020-04-10,Jones,Texas,48253,2,0 +2020-04-11,Jones,Texas,48253,2,0 +2020-04-12,Jones,Texas,48253,2,0 +2020-04-13,Jones,Texas,48253,2,0 +2020-04-14,Jones,Texas,48253,2,0 +2020-04-15,Jones,Texas,48253,2,0 +2020-04-16,Jones,Texas,48253,3,0 +2020-04-17,Jones,Texas,48253,3,0 +2020-04-18,Jones,Texas,48253,3,0 +2020-04-19,Jones,Texas,48253,3,0 +2020-04-20,Jones,Texas,48253,3,0 +2020-04-21,Jones,Texas,48253,3,0 +2020-04-22,Jones,Texas,48253,3,0 +2020-04-23,Jones,Texas,48253,4,0 +2020-04-24,Jones,Texas,48253,7,0 +2020-04-25,Jones,Texas,48253,13,0 +2020-04-26,Jones,Texas,48253,13,0 +2020-04-27,Jones,Texas,48253,13,0 +2020-04-28,Jones,Texas,48253,13,0 +2020-04-29,Jones,Texas,48253,37,0 +2020-04-30,Jones,Texas,48253,37,0 +2020-05-01,Jones,Texas,48253,37,0 +2020-05-02,Jones,Texas,48253,62,0 +2020-05-03,Jones,Texas,48253,62,0 +2020-05-04,Jones,Texas,48253,78,0 +2020-05-05,Jones,Texas,48253,78,0 +2020-05-06,Jones,Texas,48253,84,0 +2020-05-07,Jones,Texas,48253,84,0 +2020-05-08,Jones,Texas,48253,87,0 +2020-05-09,Jones,Texas,48253,92,0 +2020-05-10,Jones,Texas,48253,92,0 +2020-05-11,Jones,Texas,48253,95,0 +2020-05-12,Jones,Texas,48253,96,0 +2020-05-13,Jones,Texas,48253,101,0 +2020-05-14,Jones,Texas,48253,110,0 +2020-05-15,Jones,Texas,48253,110,0 +2020-05-16,Jones,Texas,48253,112,0 +2020-05-17,Jones,Texas,48253,112,0 +2020-05-18,Jones,Texas,48253,112,0 +2020-05-19,Jones,Texas,48253,115,0 +2020-05-20,Jones,Texas,48253,117,0 +2020-05-21,Jones,Texas,48253,134,0 +2020-05-22,Jones,Texas,48253,134,0 +2020-05-23,Jones,Texas,48253,135,0 +2020-05-24,Jones,Texas,48253,135,0 +2020-05-25,Jones,Texas,48253,135,0 +2020-05-26,Jones,Texas,48253,135,0 +2020-05-27,Jones,Texas,48253,135,0 +2020-05-28,Jones,Texas,48253,323,0 +2020-05-29,Jones,Texas,48253,354,0 +2020-05-30,Jones,Texas,48253,401,0 +2020-05-31,Jones,Texas,48253,401,0 +2020-06-01,Jones,Texas,48253,401,0 +2020-06-02,Jones,Texas,48253,606,0 +2020-06-03,Jones,Texas,48253,637,0 +2020-06-04,Jones,Texas,48253,636,0 +2020-06-05,Jones,Texas,48253,637,0 +2020-06-06,Jones,Texas,48253,637,0 +2020-06-07,Jones,Texas,48253,637,0 +2020-06-08,Jones,Texas,48253,637,0 +2020-06-09,Jones,Texas,48253,636,0 +2020-06-10,Jones,Texas,48253,636,0 +2020-06-11,Jones,Texas,48253,633,0 +2020-06-12,Jones,Texas,48253,632,0 +2020-06-13,Jones,Texas,48253,631,0 +2020-06-14,Jones,Texas,48253,631,0 +2020-06-15,Jones,Texas,48253,631,0 +2020-06-16,Jones,Texas,48253,630,0 +2020-06-17,Jones,Texas,48253,615,0 +2020-06-18,Jones,Texas,48253,614,0 +2020-06-19,Jones,Texas,48253,610,0 +2020-06-20,Jones,Texas,48253,650,0 +2020-06-21,Jones,Texas,48253,650,0 +2020-06-22,Jones,Texas,48253,650,0 +2020-06-23,Jones,Texas,48253,604,0 +2020-06-24,Jones,Texas,48253,604,0 +2020-06-25,Jones,Texas,48253,604,0 +2020-06-26,Jones,Texas,48253,604,0 +2020-06-27,Jones,Texas,48253,607,0 +2020-06-28,Jones,Texas,48253,607,0 +2020-06-29,Jones,Texas,48253,607,0 +2020-06-30,Jones,Texas,48253,611,0 +2020-07-01,Jones,Texas,48253,613,0 +2020-07-02,Jones,Texas,48253,610,0 +2020-07-03,Jones,Texas,48253,610,0 +2020-07-04,Jones,Texas,48253,610,0 +2020-07-05,Jones,Texas,48253,610,0 +2020-07-06,Jones,Texas,48253,610,0 +2020-07-07,Jones,Texas,48253,609,0 +2020-07-08,Jones,Texas,48253,611,0 +2020-07-09,Jones,Texas,48253,607,0 +2020-03-26,Karnes,Texas,48255,1,0 +2020-03-27,Karnes,Texas,48255,1,0 +2020-03-28,Karnes,Texas,48255,1,0 +2020-03-29,Karnes,Texas,48255,2,0 +2020-03-30,Karnes,Texas,48255,2,0 +2020-03-31,Karnes,Texas,48255,2,0 +2020-04-01,Karnes,Texas,48255,2,0 +2020-04-02,Karnes,Texas,48255,2,0 +2020-04-03,Karnes,Texas,48255,2,0 +2020-04-04,Karnes,Texas,48255,2,0 +2020-04-05,Karnes,Texas,48255,2,0 +2020-04-06,Karnes,Texas,48255,2,0 +2020-04-07,Karnes,Texas,48255,2,0 +2020-04-08,Karnes,Texas,48255,2,0 +2020-04-09,Karnes,Texas,48255,2,0 +2020-04-10,Karnes,Texas,48255,2,0 +2020-04-11,Karnes,Texas,48255,2,0 +2020-04-12,Karnes,Texas,48255,2,0 +2020-04-13,Karnes,Texas,48255,2,0 +2020-04-14,Karnes,Texas,48255,3,0 +2020-04-15,Karnes,Texas,48255,3,0 +2020-04-16,Karnes,Texas,48255,3,0 +2020-04-17,Karnes,Texas,48255,3,0 +2020-04-18,Karnes,Texas,48255,3,0 +2020-04-19,Karnes,Texas,48255,3,0 +2020-04-20,Karnes,Texas,48255,3,0 +2020-04-21,Karnes,Texas,48255,3,0 +2020-04-22,Karnes,Texas,48255,3,0 +2020-04-23,Karnes,Texas,48255,3,0 +2020-04-24,Karnes,Texas,48255,3,0 +2020-04-25,Karnes,Texas,48255,3,0 +2020-04-26,Karnes,Texas,48255,3,0 +2020-04-27,Karnes,Texas,48255,3,0 +2020-04-28,Karnes,Texas,48255,3,0 +2020-04-29,Karnes,Texas,48255,3,0 +2020-04-30,Karnes,Texas,48255,3,0 +2020-05-01,Karnes,Texas,48255,3,0 +2020-05-02,Karnes,Texas,48255,3,0 +2020-05-03,Karnes,Texas,48255,3,0 +2020-05-04,Karnes,Texas,48255,3,0 +2020-05-05,Karnes,Texas,48255,3,0 +2020-05-06,Karnes,Texas,48255,3,0 +2020-05-07,Karnes,Texas,48255,3,0 +2020-05-08,Karnes,Texas,48255,3,0 +2020-05-09,Karnes,Texas,48255,3,0 +2020-05-10,Karnes,Texas,48255,3,0 +2020-05-11,Karnes,Texas,48255,3,0 +2020-05-12,Karnes,Texas,48255,3,0 +2020-05-13,Karnes,Texas,48255,4,0 +2020-05-14,Karnes,Texas,48255,4,0 +2020-05-15,Karnes,Texas,48255,4,0 +2020-05-16,Karnes,Texas,48255,3,0 +2020-05-17,Karnes,Texas,48255,3,0 +2020-05-18,Karnes,Texas,48255,3,0 +2020-05-19,Karnes,Texas,48255,4,0 +2020-05-20,Karnes,Texas,48255,4,0 +2020-05-21,Karnes,Texas,48255,4,0 +2020-05-22,Karnes,Texas,48255,4,0 +2020-05-23,Karnes,Texas,48255,4,0 +2020-05-24,Karnes,Texas,48255,4,0 +2020-05-25,Karnes,Texas,48255,4,0 +2020-05-26,Karnes,Texas,48255,4,0 +2020-05-27,Karnes,Texas,48255,4,0 +2020-05-28,Karnes,Texas,48255,4,0 +2020-05-29,Karnes,Texas,48255,4,0 +2020-05-30,Karnes,Texas,48255,4,0 +2020-05-31,Karnes,Texas,48255,4,0 +2020-06-01,Karnes,Texas,48255,4,0 +2020-06-02,Karnes,Texas,48255,4,0 +2020-06-03,Karnes,Texas,48255,4,0 +2020-06-04,Karnes,Texas,48255,4,0 +2020-06-05,Karnes,Texas,48255,4,0 +2020-06-06,Karnes,Texas,48255,4,0 +2020-06-07,Karnes,Texas,48255,4,0 +2020-06-08,Karnes,Texas,48255,4,0 +2020-06-09,Karnes,Texas,48255,4,0 +2020-06-10,Karnes,Texas,48255,4,0 +2020-06-11,Karnes,Texas,48255,4,0 +2020-06-12,Karnes,Texas,48255,4,0 +2020-06-13,Karnes,Texas,48255,4,0 +2020-06-14,Karnes,Texas,48255,4,0 +2020-06-15,Karnes,Texas,48255,4,0 +2020-06-16,Karnes,Texas,48255,4,0 +2020-06-17,Karnes,Texas,48255,7,0 +2020-06-18,Karnes,Texas,48255,7,0 +2020-06-19,Karnes,Texas,48255,11,0 +2020-06-20,Karnes,Texas,48255,14,0 +2020-06-21,Karnes,Texas,48255,14,0 +2020-06-22,Karnes,Texas,48255,14,0 +2020-06-23,Karnes,Texas,48255,14,0 +2020-06-24,Karnes,Texas,48255,15,0 +2020-06-25,Karnes,Texas,48255,17,0 +2020-06-26,Karnes,Texas,48255,19,0 +2020-06-27,Karnes,Texas,48255,21,0 +2020-06-28,Karnes,Texas,48255,21,0 +2020-06-29,Karnes,Texas,48255,21,0 +2020-06-30,Karnes,Texas,48255,29,0 +2020-07-01,Karnes,Texas,48255,48,0 +2020-07-02,Karnes,Texas,48255,51,0 +2020-07-03,Karnes,Texas,48255,52,0 +2020-07-04,Karnes,Texas,48255,53,0 +2020-07-05,Karnes,Texas,48255,53,0 +2020-07-06,Karnes,Texas,48255,53,0 +2020-07-07,Karnes,Texas,48255,58,0 +2020-07-08,Karnes,Texas,48255,60,0 +2020-07-09,Karnes,Texas,48255,62,0 +2020-03-25,Kaufman,Texas,48257,2,0 +2020-03-26,Kaufman,Texas,48257,2,0 +2020-03-27,Kaufman,Texas,48257,2,0 +2020-03-28,Kaufman,Texas,48257,2,0 +2020-03-29,Kaufman,Texas,48257,2,0 +2020-03-30,Kaufman,Texas,48257,3,0 +2020-03-31,Kaufman,Texas,48257,3,0 +2020-04-01,Kaufman,Texas,48257,4,0 +2020-04-02,Kaufman,Texas,48257,5,0 +2020-04-03,Kaufman,Texas,48257,9,0 +2020-04-04,Kaufman,Texas,48257,10,0 +2020-04-05,Kaufman,Texas,48257,10,0 +2020-04-06,Kaufman,Texas,48257,10,0 +2020-04-07,Kaufman,Texas,48257,14,0 +2020-04-08,Kaufman,Texas,48257,14,0 +2020-04-09,Kaufman,Texas,48257,19,0 +2020-04-10,Kaufman,Texas,48257,24,0 +2020-04-11,Kaufman,Texas,48257,26,0 +2020-04-12,Kaufman,Texas,48257,26,0 +2020-04-13,Kaufman,Texas,48257,28,0 +2020-04-14,Kaufman,Texas,48257,32,0 +2020-04-15,Kaufman,Texas,48257,33,0 +2020-04-16,Kaufman,Texas,48257,33,0 +2020-04-17,Kaufman,Texas,48257,38,0 +2020-04-18,Kaufman,Texas,48257,42,0 +2020-04-19,Kaufman,Texas,48257,42,0 +2020-04-20,Kaufman,Texas,48257,44,0 +2020-04-21,Kaufman,Texas,48257,48,0 +2020-04-22,Kaufman,Texas,48257,51,0 +2020-04-23,Kaufman,Texas,48257,58,0 +2020-04-24,Kaufman,Texas,48257,62,0 +2020-04-25,Kaufman,Texas,48257,71,0 +2020-04-26,Kaufman,Texas,48257,71,0 +2020-04-27,Kaufman,Texas,48257,74,0 +2020-04-28,Kaufman,Texas,48257,75,0 +2020-04-29,Kaufman,Texas,48257,83,0 +2020-04-30,Kaufman,Texas,48257,86,1 +2020-05-01,Kaufman,Texas,48257,86,1 +2020-05-02,Kaufman,Texas,48257,87,1 +2020-05-03,Kaufman,Texas,48257,87,1 +2020-05-04,Kaufman,Texas,48257,90,1 +2020-05-05,Kaufman,Texas,48257,96,1 +2020-05-06,Kaufman,Texas,48257,101,1 +2020-05-07,Kaufman,Texas,48257,106,1 +2020-05-08,Kaufman,Texas,48257,111,1 +2020-05-09,Kaufman,Texas,48257,116,1 +2020-05-10,Kaufman,Texas,48257,116,1 +2020-05-11,Kaufman,Texas,48257,120,1 +2020-05-12,Kaufman,Texas,48257,127,1 +2020-05-13,Kaufman,Texas,48257,133,1 +2020-05-14,Kaufman,Texas,48257,137,1 +2020-05-15,Kaufman,Texas,48257,143,1 +2020-05-16,Kaufman,Texas,48257,147,1 +2020-05-17,Kaufman,Texas,48257,147,1 +2020-05-18,Kaufman,Texas,48257,147,1 +2020-05-19,Kaufman,Texas,48257,155,2 +2020-05-20,Kaufman,Texas,48257,165,2 +2020-05-21,Kaufman,Texas,48257,173,2 +2020-05-22,Kaufman,Texas,48257,173,2 +2020-05-23,Kaufman,Texas,48257,182,2 +2020-05-24,Kaufman,Texas,48257,182,2 +2020-05-25,Kaufman,Texas,48257,182,2 +2020-05-26,Kaufman,Texas,48257,198,2 +2020-05-27,Kaufman,Texas,48257,199,2 +2020-05-28,Kaufman,Texas,48257,203,2 +2020-05-29,Kaufman,Texas,48257,217,2 +2020-05-30,Kaufman,Texas,48257,223,2 +2020-05-31,Kaufman,Texas,48257,223,2 +2020-06-01,Kaufman,Texas,48257,223,2 +2020-06-02,Kaufman,Texas,48257,227,2 +2020-06-03,Kaufman,Texas,48257,230,2 +2020-06-04,Kaufman,Texas,48257,240,2 +2020-06-05,Kaufman,Texas,48257,260,2 +2020-06-06,Kaufman,Texas,48257,269,2 +2020-06-07,Kaufman,Texas,48257,269,2 +2020-06-08,Kaufman,Texas,48257,269,2 +2020-06-09,Kaufman,Texas,48257,275,2 +2020-06-10,Kaufman,Texas,48257,308,2 +2020-06-11,Kaufman,Texas,48257,316,3 +2020-06-12,Kaufman,Texas,48257,325,3 +2020-06-13,Kaufman,Texas,48257,330,3 +2020-06-14,Kaufman,Texas,48257,330,3 +2020-06-15,Kaufman,Texas,48257,330,3 +2020-06-16,Kaufman,Texas,48257,339,4 +2020-06-17,Kaufman,Texas,48257,343,4 +2020-06-18,Kaufman,Texas,48257,349,4 +2020-06-19,Kaufman,Texas,48257,360,4 +2020-06-20,Kaufman,Texas,48257,360,4 +2020-06-21,Kaufman,Texas,48257,360,4 +2020-06-22,Kaufman,Texas,48257,360,4 +2020-06-23,Kaufman,Texas,48257,374,4 +2020-06-24,Kaufman,Texas,48257,490,4 +2020-06-25,Kaufman,Texas,48257,490,4 +2020-06-26,Kaufman,Texas,48257,490,4 +2020-06-27,Kaufman,Texas,48257,518,4 +2020-06-28,Kaufman,Texas,48257,518,4 +2020-06-29,Kaufman,Texas,48257,518,4 +2020-06-30,Kaufman,Texas,48257,586,4 +2020-07-01,Kaufman,Texas,48257,627,4 +2020-07-02,Kaufman,Texas,48257,676,4 +2020-07-03,Kaufman,Texas,48257,724,5 +2020-07-04,Kaufman,Texas,48257,758,5 +2020-07-05,Kaufman,Texas,48257,758,5 +2020-07-06,Kaufman,Texas,48257,758,5 +2020-07-07,Kaufman,Texas,48257,828,5 +2020-07-08,Kaufman,Texas,48257,874,5 +2020-07-09,Kaufman,Texas,48257,927,5 +2020-03-25,Kendall,Texas,48259,3,0 +2020-03-26,Kendall,Texas,48259,3,0 +2020-03-27,Kendall,Texas,48259,4,0 +2020-03-28,Kendall,Texas,48259,6,0 +2020-03-29,Kendall,Texas,48259,7,0 +2020-03-30,Kendall,Texas,48259,7,0 +2020-03-31,Kendall,Texas,48259,7,0 +2020-04-01,Kendall,Texas,48259,7,0 +2020-04-02,Kendall,Texas,48259,8,0 +2020-04-03,Kendall,Texas,48259,8,0 +2020-04-04,Kendall,Texas,48259,9,0 +2020-04-05,Kendall,Texas,48259,10,0 +2020-04-06,Kendall,Texas,48259,10,0 +2020-04-07,Kendall,Texas,48259,10,0 +2020-04-08,Kendall,Texas,48259,9,0 +2020-04-09,Kendall,Texas,48259,9,0 +2020-04-10,Kendall,Texas,48259,10,0 +2020-04-11,Kendall,Texas,48259,10,0 +2020-04-12,Kendall,Texas,48259,11,0 +2020-04-13,Kendall,Texas,48259,11,0 +2020-04-14,Kendall,Texas,48259,12,0 +2020-04-15,Kendall,Texas,48259,14,0 +2020-04-16,Kendall,Texas,48259,14,0 +2020-04-17,Kendall,Texas,48259,14,0 +2020-04-18,Kendall,Texas,48259,14,0 +2020-04-19,Kendall,Texas,48259,14,0 +2020-04-20,Kendall,Texas,48259,14,0 +2020-04-21,Kendall,Texas,48259,14,0 +2020-04-22,Kendall,Texas,48259,14,0 +2020-04-23,Kendall,Texas,48259,15,0 +2020-04-24,Kendall,Texas,48259,15,0 +2020-04-25,Kendall,Texas,48259,16,0 +2020-04-26,Kendall,Texas,48259,16,0 +2020-04-27,Kendall,Texas,48259,16,0 +2020-04-28,Kendall,Texas,48259,16,0 +2020-04-29,Kendall,Texas,48259,16,0 +2020-04-30,Kendall,Texas,48259,16,0 +2020-05-01,Kendall,Texas,48259,16,0 +2020-05-02,Kendall,Texas,48259,16,0 +2020-05-03,Kendall,Texas,48259,16,0 +2020-05-04,Kendall,Texas,48259,16,0 +2020-05-05,Kendall,Texas,48259,17,0 +2020-05-06,Kendall,Texas,48259,17,0 +2020-05-07,Kendall,Texas,48259,18,0 +2020-05-08,Kendall,Texas,48259,18,0 +2020-05-09,Kendall,Texas,48259,19,0 +2020-05-10,Kendall,Texas,48259,19,0 +2020-05-11,Kendall,Texas,48259,19,0 +2020-05-12,Kendall,Texas,48259,20,0 +2020-05-13,Kendall,Texas,48259,20,0 +2020-05-14,Kendall,Texas,48259,20,0 +2020-05-15,Kendall,Texas,48259,20,0 +2020-05-16,Kendall,Texas,48259,21,0 +2020-05-17,Kendall,Texas,48259,21,0 +2020-05-18,Kendall,Texas,48259,21,0 +2020-05-19,Kendall,Texas,48259,23,0 +2020-05-20,Kendall,Texas,48259,24,0 +2020-05-21,Kendall,Texas,48259,24,0 +2020-05-22,Kendall,Texas,48259,24,0 +2020-05-23,Kendall,Texas,48259,24,0 +2020-05-24,Kendall,Texas,48259,24,0 +2020-05-25,Kendall,Texas,48259,24,0 +2020-05-26,Kendall,Texas,48259,24,0 +2020-05-27,Kendall,Texas,48259,28,0 +2020-05-28,Kendall,Texas,48259,28,0 +2020-05-29,Kendall,Texas,48259,28,0 +2020-05-30,Kendall,Texas,48259,29,0 +2020-05-31,Kendall,Texas,48259,29,0 +2020-06-01,Kendall,Texas,48259,29,0 +2020-06-02,Kendall,Texas,48259,30,0 +2020-06-03,Kendall,Texas,48259,31,0 +2020-06-04,Kendall,Texas,48259,31,0 +2020-06-05,Kendall,Texas,48259,32,0 +2020-06-06,Kendall,Texas,48259,33,0 +2020-06-07,Kendall,Texas,48259,33,0 +2020-06-08,Kendall,Texas,48259,33,0 +2020-06-09,Kendall,Texas,48259,33,0 +2020-06-10,Kendall,Texas,48259,35,0 +2020-06-11,Kendall,Texas,48259,35,0 +2020-06-12,Kendall,Texas,48259,35,0 +2020-06-13,Kendall,Texas,48259,35,0 +2020-06-14,Kendall,Texas,48259,36,0 +2020-06-15,Kendall,Texas,48259,36,0 +2020-06-16,Kendall,Texas,48259,36,0 +2020-06-17,Kendall,Texas,48259,36,0 +2020-06-18,Kendall,Texas,48259,36,0 +2020-06-19,Kendall,Texas,48259,44,0 +2020-06-20,Kendall,Texas,48259,44,0 +2020-06-21,Kendall,Texas,48259,44,0 +2020-06-22,Kendall,Texas,48259,44,0 +2020-06-23,Kendall,Texas,48259,47,0 +2020-06-24,Kendall,Texas,48259,56,0 +2020-06-25,Kendall,Texas,48259,58,0 +2020-06-26,Kendall,Texas,48259,58,0 +2020-06-27,Kendall,Texas,48259,61,0 +2020-06-28,Kendall,Texas,48259,61,0 +2020-06-29,Kendall,Texas,48259,61,0 +2020-06-30,Kendall,Texas,48259,66,0 +2020-07-01,Kendall,Texas,48259,67,0 +2020-07-02,Kendall,Texas,48259,68,0 +2020-07-03,Kendall,Texas,48259,70,0 +2020-07-04,Kendall,Texas,48259,90,0 +2020-07-05,Kendall,Texas,48259,90,0 +2020-07-06,Kendall,Texas,48259,89,0 +2020-07-07,Kendall,Texas,48259,95,0 +2020-07-08,Kendall,Texas,48259,95,0 +2020-07-09,Kendall,Texas,48259,95,0 +2020-07-03,Kenedy,Texas,48261,1,0 +2020-07-04,Kenedy,Texas,48261,1,0 +2020-07-05,Kenedy,Texas,48261,1,0 +2020-07-06,Kenedy,Texas,48261,1,0 +2020-07-07,Kenedy,Texas,48261,1,0 +2020-07-08,Kenedy,Texas,48261,1,0 +2020-07-09,Kenedy,Texas,48261,1,0 +2020-04-01,Kerr,Texas,48265,1,0 +2020-04-02,Kerr,Texas,48265,1,0 +2020-04-03,Kerr,Texas,48265,2,0 +2020-04-04,Kerr,Texas,48265,2,0 +2020-04-05,Kerr,Texas,48265,2,0 +2020-04-06,Kerr,Texas,48265,2,0 +2020-04-07,Kerr,Texas,48265,2,0 +2020-04-08,Kerr,Texas,48265,2,0 +2020-04-09,Kerr,Texas,48265,2,0 +2020-04-10,Kerr,Texas,48265,2,0 +2020-04-11,Kerr,Texas,48265,2,0 +2020-04-12,Kerr,Texas,48265,2,0 +2020-04-13,Kerr,Texas,48265,2,0 +2020-04-14,Kerr,Texas,48265,2,0 +2020-04-15,Kerr,Texas,48265,3,0 +2020-04-16,Kerr,Texas,48265,4,0 +2020-04-17,Kerr,Texas,48265,4,0 +2020-04-18,Kerr,Texas,48265,4,0 +2020-04-19,Kerr,Texas,48265,4,0 +2020-04-20,Kerr,Texas,48265,4,0 +2020-04-21,Kerr,Texas,48265,4,0 +2020-04-22,Kerr,Texas,48265,4,0 +2020-04-23,Kerr,Texas,48265,5,0 +2020-04-24,Kerr,Texas,48265,5,0 +2020-04-25,Kerr,Texas,48265,5,0 +2020-04-26,Kerr,Texas,48265,6,0 +2020-04-27,Kerr,Texas,48265,5,0 +2020-04-28,Kerr,Texas,48265,5,0 +2020-04-29,Kerr,Texas,48265,5,0 +2020-04-30,Kerr,Texas,48265,5,0 +2020-05-01,Kerr,Texas,48265,5,0 +2020-05-02,Kerr,Texas,48265,5,0 +2020-05-03,Kerr,Texas,48265,5,0 +2020-05-04,Kerr,Texas,48265,5,0 +2020-05-05,Kerr,Texas,48265,5,0 +2020-05-06,Kerr,Texas,48265,6,0 +2020-05-07,Kerr,Texas,48265,6,0 +2020-05-08,Kerr,Texas,48265,7,0 +2020-05-09,Kerr,Texas,48265,9,0 +2020-05-10,Kerr,Texas,48265,9,0 +2020-05-11,Kerr,Texas,48265,9,0 +2020-05-12,Kerr,Texas,48265,9,0 +2020-05-13,Kerr,Texas,48265,9,0 +2020-05-14,Kerr,Texas,48265,10,0 +2020-05-15,Kerr,Texas,48265,10,0 +2020-05-16,Kerr,Texas,48265,10,0 +2020-05-17,Kerr,Texas,48265,10,0 +2020-05-18,Kerr,Texas,48265,10,0 +2020-05-19,Kerr,Texas,48265,10,0 +2020-05-20,Kerr,Texas,48265,11,0 +2020-05-21,Kerr,Texas,48265,11,0 +2020-05-22,Kerr,Texas,48265,11,0 +2020-05-23,Kerr,Texas,48265,13,0 +2020-05-24,Kerr,Texas,48265,16,0 +2020-05-25,Kerr,Texas,48265,16,0 +2020-05-26,Kerr,Texas,48265,16,0 +2020-05-27,Kerr,Texas,48265,17,0 +2020-05-28,Kerr,Texas,48265,17,0 +2020-05-29,Kerr,Texas,48265,18,0 +2020-05-30,Kerr,Texas,48265,18,0 +2020-05-31,Kerr,Texas,48265,19,0 +2020-06-01,Kerr,Texas,48265,19,0 +2020-06-02,Kerr,Texas,48265,20,0 +2020-06-03,Kerr,Texas,48265,20,0 +2020-06-04,Kerr,Texas,48265,20,0 +2020-06-05,Kerr,Texas,48265,20,1 +2020-06-06,Kerr,Texas,48265,20,1 +2020-06-07,Kerr,Texas,48265,20,1 +2020-06-08,Kerr,Texas,48265,20,1 +2020-06-09,Kerr,Texas,48265,20,1 +2020-06-10,Kerr,Texas,48265,20,1 +2020-06-11,Kerr,Texas,48265,20,1 +2020-06-12,Kerr,Texas,48265,20,1 +2020-06-13,Kerr,Texas,48265,20,1 +2020-06-14,Kerr,Texas,48265,20,1 +2020-06-15,Kerr,Texas,48265,20,1 +2020-06-16,Kerr,Texas,48265,20,1 +2020-06-17,Kerr,Texas,48265,20,1 +2020-06-18,Kerr,Texas,48265,20,1 +2020-06-19,Kerr,Texas,48265,32,1 +2020-06-20,Kerr,Texas,48265,33,1 +2020-06-21,Kerr,Texas,48265,33,1 +2020-06-22,Kerr,Texas,48265,33,1 +2020-06-23,Kerr,Texas,48265,43,1 +2020-06-24,Kerr,Texas,48265,50,1 +2020-06-25,Kerr,Texas,48265,66,1 +2020-06-26,Kerr,Texas,48265,70,1 +2020-06-27,Kerr,Texas,48265,72,1 +2020-06-28,Kerr,Texas,48265,72,1 +2020-06-29,Kerr,Texas,48265,72,1 +2020-06-30,Kerr,Texas,48265,77,1 +2020-07-01,Kerr,Texas,48265,90,1 +2020-07-02,Kerr,Texas,48265,94,1 +2020-07-03,Kerr,Texas,48265,109,1 +2020-07-04,Kerr,Texas,48265,111,1 +2020-07-05,Kerr,Texas,48265,111,1 +2020-07-06,Kerr,Texas,48265,110,1 +2020-07-07,Kerr,Texas,48265,115,1 +2020-07-08,Kerr,Texas,48265,115,1 +2020-07-09,Kerr,Texas,48265,129,1 +2020-05-08,Kimble,Texas,48267,1,0 +2020-05-09,Kimble,Texas,48267,1,0 +2020-05-10,Kimble,Texas,48267,1,0 +2020-05-11,Kimble,Texas,48267,1,0 +2020-05-12,Kimble,Texas,48267,1,0 +2020-05-13,Kimble,Texas,48267,1,0 +2020-05-14,Kimble,Texas,48267,1,0 +2020-05-15,Kimble,Texas,48267,1,0 +2020-05-16,Kimble,Texas,48267,1,0 +2020-05-17,Kimble,Texas,48267,1,0 +2020-05-18,Kimble,Texas,48267,1,0 +2020-05-19,Kimble,Texas,48267,1,0 +2020-05-20,Kimble,Texas,48267,1,0 +2020-05-21,Kimble,Texas,48267,1,0 +2020-05-22,Kimble,Texas,48267,1,0 +2020-05-23,Kimble,Texas,48267,1,0 +2020-05-24,Kimble,Texas,48267,1,0 +2020-05-25,Kimble,Texas,48267,1,0 +2020-05-26,Kimble,Texas,48267,1,0 +2020-05-27,Kimble,Texas,48267,1,0 +2020-05-28,Kimble,Texas,48267,1,0 +2020-05-29,Kimble,Texas,48267,1,0 +2020-05-30,Kimble,Texas,48267,1,0 +2020-05-31,Kimble,Texas,48267,1,0 +2020-06-01,Kimble,Texas,48267,1,0 +2020-06-02,Kimble,Texas,48267,1,0 +2020-06-03,Kimble,Texas,48267,1,0 +2020-06-04,Kimble,Texas,48267,1,0 +2020-06-05,Kimble,Texas,48267,1,0 +2020-06-06,Kimble,Texas,48267,1,0 +2020-06-07,Kimble,Texas,48267,1,0 +2020-06-08,Kimble,Texas,48267,1,0 +2020-06-09,Kimble,Texas,48267,1,0 +2020-06-10,Kimble,Texas,48267,1,0 +2020-06-11,Kimble,Texas,48267,1,0 +2020-06-12,Kimble,Texas,48267,1,0 +2020-06-13,Kimble,Texas,48267,1,0 +2020-06-14,Kimble,Texas,48267,1,0 +2020-06-15,Kimble,Texas,48267,1,0 +2020-06-16,Kimble,Texas,48267,1,0 +2020-06-17,Kimble,Texas,48267,1,0 +2020-06-18,Kimble,Texas,48267,1,0 +2020-06-19,Kimble,Texas,48267,1,0 +2020-06-20,Kimble,Texas,48267,1,0 +2020-06-21,Kimble,Texas,48267,1,0 +2020-06-22,Kimble,Texas,48267,1,0 +2020-06-23,Kimble,Texas,48267,1,0 +2020-06-24,Kimble,Texas,48267,1,0 +2020-06-25,Kimble,Texas,48267,1,0 +2020-06-26,Kimble,Texas,48267,2,0 +2020-06-27,Kimble,Texas,48267,1,0 +2020-06-28,Kimble,Texas,48267,1,0 +2020-06-29,Kimble,Texas,48267,4,0 +2020-06-30,Kimble,Texas,48267,5,0 +2020-07-01,Kimble,Texas,48267,5,0 +2020-07-02,Kimble,Texas,48267,5,0 +2020-07-03,Kimble,Texas,48267,6,0 +2020-07-04,Kimble,Texas,48267,6,0 +2020-07-05,Kimble,Texas,48267,6,0 +2020-07-06,Kimble,Texas,48267,6,0 +2020-07-07,Kimble,Texas,48267,10,0 +2020-07-08,Kimble,Texas,48267,9,0 +2020-07-09,Kimble,Texas,48267,9,0 +2020-05-30,Kinney,Texas,48271,1,0 +2020-05-31,Kinney,Texas,48271,1,0 +2020-06-01,Kinney,Texas,48271,1,0 +2020-06-02,Kinney,Texas,48271,1,0 +2020-06-03,Kinney,Texas,48271,1,0 +2020-06-04,Kinney,Texas,48271,1,0 +2020-06-05,Kinney,Texas,48271,1,0 +2020-06-06,Kinney,Texas,48271,1,0 +2020-06-07,Kinney,Texas,48271,1,0 +2020-06-08,Kinney,Texas,48271,1,0 +2020-06-09,Kinney,Texas,48271,1,0 +2020-06-10,Kinney,Texas,48271,1,0 +2020-06-11,Kinney,Texas,48271,1,0 +2020-06-12,Kinney,Texas,48271,1,0 +2020-06-13,Kinney,Texas,48271,1,0 +2020-06-14,Kinney,Texas,48271,1,0 +2020-06-15,Kinney,Texas,48271,1,0 +2020-06-16,Kinney,Texas,48271,1,0 +2020-06-17,Kinney,Texas,48271,1,0 +2020-06-18,Kinney,Texas,48271,1,0 +2020-06-19,Kinney,Texas,48271,1,0 +2020-06-20,Kinney,Texas,48271,2,0 +2020-06-21,Kinney,Texas,48271,2,0 +2020-06-22,Kinney,Texas,48271,2,0 +2020-06-23,Kinney,Texas,48271,3,0 +2020-06-24,Kinney,Texas,48271,2,0 +2020-06-25,Kinney,Texas,48271,2,0 +2020-06-26,Kinney,Texas,48271,2,0 +2020-06-27,Kinney,Texas,48271,2,0 +2020-06-28,Kinney,Texas,48271,2,0 +2020-06-29,Kinney,Texas,48271,2,0 +2020-06-30,Kinney,Texas,48271,2,0 +2020-07-01,Kinney,Texas,48271,2,0 +2020-07-02,Kinney,Texas,48271,2,0 +2020-07-03,Kinney,Texas,48271,2,0 +2020-07-04,Kinney,Texas,48271,2,0 +2020-07-05,Kinney,Texas,48271,2,0 +2020-07-06,Kinney,Texas,48271,2,0 +2020-07-07,Kinney,Texas,48271,2,0 +2020-07-08,Kinney,Texas,48271,2,0 +2020-07-09,Kinney,Texas,48271,3,0 +2020-03-29,Kleberg,Texas,48273,1,0 +2020-03-30,Kleberg,Texas,48273,1,0 +2020-03-31,Kleberg,Texas,48273,1,0 +2020-04-01,Kleberg,Texas,48273,1,0 +2020-04-02,Kleberg,Texas,48273,2,0 +2020-04-03,Kleberg,Texas,48273,1,0 +2020-04-04,Kleberg,Texas,48273,2,0 +2020-04-05,Kleberg,Texas,48273,2,0 +2020-04-06,Kleberg,Texas,48273,2,0 +2020-04-07,Kleberg,Texas,48273,2,0 +2020-04-08,Kleberg,Texas,48273,2,0 +2020-04-09,Kleberg,Texas,48273,2,0 +2020-04-10,Kleberg,Texas,48273,2,0 +2020-04-11,Kleberg,Texas,48273,2,0 +2020-04-12,Kleberg,Texas,48273,2,0 +2020-04-13,Kleberg,Texas,48273,2,1 +2020-04-14,Kleberg,Texas,48273,2,1 +2020-04-15,Kleberg,Texas,48273,3,1 +2020-04-16,Kleberg,Texas,48273,3,1 +2020-04-17,Kleberg,Texas,48273,5,1 +2020-04-18,Kleberg,Texas,48273,5,1 +2020-04-19,Kleberg,Texas,48273,6,1 +2020-04-20,Kleberg,Texas,48273,6,1 +2020-04-21,Kleberg,Texas,48273,6,1 +2020-04-22,Kleberg,Texas,48273,7,1 +2020-04-23,Kleberg,Texas,48273,7,1 +2020-04-24,Kleberg,Texas,48273,7,1 +2020-04-25,Kleberg,Texas,48273,8,1 +2020-04-26,Kleberg,Texas,48273,8,1 +2020-04-27,Kleberg,Texas,48273,9,1 +2020-04-28,Kleberg,Texas,48273,9,1 +2020-04-29,Kleberg,Texas,48273,8,1 +2020-04-30,Kleberg,Texas,48273,8,1 +2020-05-01,Kleberg,Texas,48273,8,1 +2020-05-02,Kleberg,Texas,48273,10,1 +2020-05-03,Kleberg,Texas,48273,10,1 +2020-05-04,Kleberg,Texas,48273,10,1 +2020-05-05,Kleberg,Texas,48273,10,1 +2020-05-06,Kleberg,Texas,48273,10,1 +2020-05-07,Kleberg,Texas,48273,10,1 +2020-05-08,Kleberg,Texas,48273,10,1 +2020-05-09,Kleberg,Texas,48273,10,1 +2020-05-10,Kleberg,Texas,48273,11,1 +2020-05-11,Kleberg,Texas,48273,11,1 +2020-05-12,Kleberg,Texas,48273,11,1 +2020-05-13,Kleberg,Texas,48273,11,1 +2020-05-14,Kleberg,Texas,48273,11,1 +2020-05-15,Kleberg,Texas,48273,13,1 +2020-05-16,Kleberg,Texas,48273,14,1 +2020-05-17,Kleberg,Texas,48273,14,1 +2020-05-18,Kleberg,Texas,48273,14,1 +2020-05-19,Kleberg,Texas,48273,14,1 +2020-05-20,Kleberg,Texas,48273,14,1 +2020-05-21,Kleberg,Texas,48273,14,1 +2020-05-22,Kleberg,Texas,48273,14,1 +2020-05-23,Kleberg,Texas,48273,15,1 +2020-05-24,Kleberg,Texas,48273,15,1 +2020-05-25,Kleberg,Texas,48273,15,1 +2020-05-26,Kleberg,Texas,48273,16,1 +2020-05-27,Kleberg,Texas,48273,16,1 +2020-05-28,Kleberg,Texas,48273,16,1 +2020-05-29,Kleberg,Texas,48273,16,1 +2020-05-30,Kleberg,Texas,48273,16,1 +2020-05-31,Kleberg,Texas,48273,16,1 +2020-06-01,Kleberg,Texas,48273,16,1 +2020-06-02,Kleberg,Texas,48273,17,1 +2020-06-03,Kleberg,Texas,48273,17,1 +2020-06-04,Kleberg,Texas,48273,17,1 +2020-06-05,Kleberg,Texas,48273,18,1 +2020-06-06,Kleberg,Texas,48273,18,1 +2020-06-07,Kleberg,Texas,48273,18,1 +2020-06-08,Kleberg,Texas,48273,18,1 +2020-06-09,Kleberg,Texas,48273,20,1 +2020-06-10,Kleberg,Texas,48273,20,1 +2020-06-11,Kleberg,Texas,48273,20,1 +2020-06-12,Kleberg,Texas,48273,20,1 +2020-06-13,Kleberg,Texas,48273,20,1 +2020-06-14,Kleberg,Texas,48273,20,1 +2020-06-15,Kleberg,Texas,48273,20,1 +2020-06-16,Kleberg,Texas,48273,20,1 +2020-06-17,Kleberg,Texas,48273,20,1 +2020-06-18,Kleberg,Texas,48273,23,1 +2020-06-19,Kleberg,Texas,48273,24,1 +2020-06-20,Kleberg,Texas,48273,25,1 +2020-06-21,Kleberg,Texas,48273,27,1 +2020-06-22,Kleberg,Texas,48273,29,1 +2020-06-23,Kleberg,Texas,48273,32,1 +2020-06-24,Kleberg,Texas,48273,32,1 +2020-06-25,Kleberg,Texas,48273,33,1 +2020-06-26,Kleberg,Texas,48273,35,1 +2020-06-27,Kleberg,Texas,48273,42,1 +2020-06-28,Kleberg,Texas,48273,52,1 +2020-06-29,Kleberg,Texas,48273,59,1 +2020-06-30,Kleberg,Texas,48273,66,1 +2020-07-01,Kleberg,Texas,48273,71,1 +2020-07-02,Kleberg,Texas,48273,77,1 +2020-07-03,Kleberg,Texas,48273,79,1 +2020-07-04,Kleberg,Texas,48273,87,1 +2020-07-05,Kleberg,Texas,48273,87,1 +2020-07-06,Kleberg,Texas,48273,97,1 +2020-07-07,Kleberg,Texas,48273,105,1 +2020-07-08,Kleberg,Texas,48273,106,1 +2020-07-09,Kleberg,Texas,48273,111,1 +2020-04-07,Knox,Texas,48275,1,0 +2020-04-08,Knox,Texas,48275,1,0 +2020-04-09,Knox,Texas,48275,1,0 +2020-04-10,Knox,Texas,48275,1,0 +2020-04-11,Knox,Texas,48275,1,0 +2020-04-12,Knox,Texas,48275,1,0 +2020-04-13,Knox,Texas,48275,1,0 +2020-04-14,Knox,Texas,48275,1,0 +2020-04-15,Knox,Texas,48275,1,0 +2020-04-16,Knox,Texas,48275,1,0 +2020-04-17,Knox,Texas,48275,1,0 +2020-04-18,Knox,Texas,48275,1,0 +2020-04-19,Knox,Texas,48275,1,0 +2020-04-20,Knox,Texas,48275,1,0 +2020-04-21,Knox,Texas,48275,1,0 +2020-04-22,Knox,Texas,48275,1,0 +2020-04-23,Knox,Texas,48275,1,0 +2020-04-24,Knox,Texas,48275,1,0 +2020-04-25,Knox,Texas,48275,1,0 +2020-04-26,Knox,Texas,48275,1,0 +2020-04-27,Knox,Texas,48275,1,0 +2020-04-28,Knox,Texas,48275,1,0 +2020-04-29,Knox,Texas,48275,1,0 +2020-04-30,Knox,Texas,48275,1,0 +2020-05-01,Knox,Texas,48275,1,0 +2020-05-02,Knox,Texas,48275,1,0 +2020-05-03,Knox,Texas,48275,1,0 +2020-05-04,Knox,Texas,48275,1,0 +2020-05-05,Knox,Texas,48275,1,0 +2020-05-06,Knox,Texas,48275,1,0 +2020-05-07,Knox,Texas,48275,1,0 +2020-05-08,Knox,Texas,48275,1,0 +2020-05-09,Knox,Texas,48275,1,0 +2020-05-10,Knox,Texas,48275,1,0 +2020-05-11,Knox,Texas,48275,1,0 +2020-05-12,Knox,Texas,48275,1,0 +2020-05-13,Knox,Texas,48275,1,0 +2020-05-14,Knox,Texas,48275,1,0 +2020-05-15,Knox,Texas,48275,1,0 +2020-05-16,Knox,Texas,48275,1,0 +2020-05-17,Knox,Texas,48275,1,0 +2020-05-18,Knox,Texas,48275,1,0 +2020-05-19,Knox,Texas,48275,1,0 +2020-05-20,Knox,Texas,48275,1,0 +2020-05-21,Knox,Texas,48275,1,0 +2020-05-22,Knox,Texas,48275,1,0 +2020-05-23,Knox,Texas,48275,1,0 +2020-05-24,Knox,Texas,48275,1,0 +2020-05-25,Knox,Texas,48275,1,0 +2020-05-26,Knox,Texas,48275,1,0 +2020-05-27,Knox,Texas,48275,1,0 +2020-05-28,Knox,Texas,48275,1,0 +2020-05-29,Knox,Texas,48275,1,0 +2020-05-30,Knox,Texas,48275,1,0 +2020-05-31,Knox,Texas,48275,1,0 +2020-06-01,Knox,Texas,48275,1,0 +2020-06-02,Knox,Texas,48275,1,0 +2020-06-03,Knox,Texas,48275,1,0 +2020-06-04,Knox,Texas,48275,1,0 +2020-06-05,Knox,Texas,48275,1,0 +2020-06-06,Knox,Texas,48275,1,0 +2020-06-07,Knox,Texas,48275,1,0 +2020-06-08,Knox,Texas,48275,1,0 +2020-06-09,Knox,Texas,48275,1,0 +2020-06-10,Knox,Texas,48275,1,0 +2020-06-11,Knox,Texas,48275,1,0 +2020-06-12,Knox,Texas,48275,1,0 +2020-06-13,Knox,Texas,48275,1,0 +2020-06-14,Knox,Texas,48275,1,0 +2020-06-15,Knox,Texas,48275,1,0 +2020-06-16,Knox,Texas,48275,1,0 +2020-06-17,Knox,Texas,48275,1,0 +2020-06-18,Knox,Texas,48275,1,0 +2020-06-19,Knox,Texas,48275,1,0 +2020-06-20,Knox,Texas,48275,1,0 +2020-06-21,Knox,Texas,48275,1,0 +2020-06-22,Knox,Texas,48275,1,0 +2020-06-23,Knox,Texas,48275,1,0 +2020-06-24,Knox,Texas,48275,1,0 +2020-06-25,Knox,Texas,48275,1,0 +2020-06-26,Knox,Texas,48275,1,0 +2020-06-27,Knox,Texas,48275,1,0 +2020-06-28,Knox,Texas,48275,1,0 +2020-06-29,Knox,Texas,48275,1,0 +2020-06-30,Knox,Texas,48275,3,0 +2020-07-01,Knox,Texas,48275,3,0 +2020-07-02,Knox,Texas,48275,3,0 +2020-07-03,Knox,Texas,48275,3,0 +2020-07-04,Knox,Texas,48275,3,0 +2020-07-05,Knox,Texas,48275,3,0 +2020-07-06,Knox,Texas,48275,3,0 +2020-07-07,Knox,Texas,48275,4,0 +2020-07-08,Knox,Texas,48275,5,0 +2020-07-09,Knox,Texas,48275,5,0 +2020-03-25,Lamar,Texas,48277,1,0 +2020-03-26,Lamar,Texas,48277,1,0 +2020-03-27,Lamar,Texas,48277,1,0 +2020-03-28,Lamar,Texas,48277,3,0 +2020-03-29,Lamar,Texas,48277,3,0 +2020-03-30,Lamar,Texas,48277,3,0 +2020-03-31,Lamar,Texas,48277,3,0 +2020-04-01,Lamar,Texas,48277,3,0 +2020-04-02,Lamar,Texas,48277,3,0 +2020-04-03,Lamar,Texas,48277,3,0 +2020-04-04,Lamar,Texas,48277,5,0 +2020-04-05,Lamar,Texas,48277,5,0 +2020-04-06,Lamar,Texas,48277,5,0 +2020-04-07,Lamar,Texas,48277,6,0 +2020-04-08,Lamar,Texas,48277,6,0 +2020-04-09,Lamar,Texas,48277,8,0 +2020-04-10,Lamar,Texas,48277,8,0 +2020-04-11,Lamar,Texas,48277,8,0 +2020-04-12,Lamar,Texas,48277,8,0 +2020-04-13,Lamar,Texas,48277,8,0 +2020-04-14,Lamar,Texas,48277,8,0 +2020-04-15,Lamar,Texas,48277,8,0 +2020-04-16,Lamar,Texas,48277,8,0 +2020-04-17,Lamar,Texas,48277,8,0 +2020-04-18,Lamar,Texas,48277,8,0 +2020-04-19,Lamar,Texas,48277,8,0 +2020-04-20,Lamar,Texas,48277,8,0 +2020-04-21,Lamar,Texas,48277,8,0 +2020-04-22,Lamar,Texas,48277,8,0 +2020-04-23,Lamar,Texas,48277,8,0 +2020-04-24,Lamar,Texas,48277,8,0 +2020-04-25,Lamar,Texas,48277,8,0 +2020-04-26,Lamar,Texas,48277,8,0 +2020-04-27,Lamar,Texas,48277,8,0 +2020-04-28,Lamar,Texas,48277,51,0 +2020-04-29,Lamar,Texas,48277,51,0 +2020-04-30,Lamar,Texas,48277,51,0 +2020-05-01,Lamar,Texas,48277,61,0 +2020-05-02,Lamar,Texas,48277,67,0 +2020-05-03,Lamar,Texas,48277,67,0 +2020-05-04,Lamar,Texas,48277,67,0 +2020-05-05,Lamar,Texas,48277,69,0 +2020-05-06,Lamar,Texas,48277,71,0 +2020-05-07,Lamar,Texas,48277,76,0 +2020-05-08,Lamar,Texas,48277,77,0 +2020-05-09,Lamar,Texas,48277,77,0 +2020-05-10,Lamar,Texas,48277,89,4 +2020-05-11,Lamar,Texas,48277,89,4 +2020-05-12,Lamar,Texas,48277,96,4 +2020-05-13,Lamar,Texas,48277,104,4 +2020-05-14,Lamar,Texas,48277,105,4 +2020-05-15,Lamar,Texas,48277,111,4 +2020-05-16,Lamar,Texas,48277,111,4 +2020-05-17,Lamar,Texas,48277,116,9 +2020-05-18,Lamar,Texas,48277,116,9 +2020-05-19,Lamar,Texas,48277,116,9 +2020-05-20,Lamar,Texas,48277,122,9 +2020-05-21,Lamar,Texas,48277,126,9 +2020-05-22,Lamar,Texas,48277,126,9 +2020-05-23,Lamar,Texas,48277,128,9 +2020-05-24,Lamar,Texas,48277,133,9 +2020-05-25,Lamar,Texas,48277,134,9 +2020-05-26,Lamar,Texas,48277,134,9 +2020-05-27,Lamar,Texas,48277,134,9 +2020-05-28,Lamar,Texas,48277,136,9 +2020-05-29,Lamar,Texas,48277,138,9 +2020-05-30,Lamar,Texas,48277,138,9 +2020-05-31,Lamar,Texas,48277,145,11 +2020-06-01,Lamar,Texas,48277,145,11 +2020-06-02,Lamar,Texas,48277,145,11 +2020-06-03,Lamar,Texas,48277,151,11 +2020-06-04,Lamar,Texas,48277,152,11 +2020-06-05,Lamar,Texas,48277,154,11 +2020-06-06,Lamar,Texas,48277,155,11 +2020-06-07,Lamar,Texas,48277,154,11 +2020-06-08,Lamar,Texas,48277,154,11 +2020-06-09,Lamar,Texas,48277,156,11 +2020-06-10,Lamar,Texas,48277,158,11 +2020-06-11,Lamar,Texas,48277,160,11 +2020-06-12,Lamar,Texas,48277,163,11 +2020-06-13,Lamar,Texas,48277,163,11 +2020-06-14,Lamar,Texas,48277,165,11 +2020-06-15,Lamar,Texas,48277,165,11 +2020-06-16,Lamar,Texas,48277,174,12 +2020-06-17,Lamar,Texas,48277,180,12 +2020-06-18,Lamar,Texas,48277,180,12 +2020-06-19,Lamar,Texas,48277,199,13 +2020-06-20,Lamar,Texas,48277,199,13 +2020-06-21,Lamar,Texas,48277,205,13 +2020-06-22,Lamar,Texas,48277,205,13 +2020-06-23,Lamar,Texas,48277,227,13 +2020-06-24,Lamar,Texas,48277,230,13 +2020-06-25,Lamar,Texas,48277,238,13 +2020-06-26,Lamar,Texas,48277,244,13 +2020-06-27,Lamar,Texas,48277,244,13 +2020-06-28,Lamar,Texas,48277,265,13 +2020-06-29,Lamar,Texas,48277,265,13 +2020-06-30,Lamar,Texas,48277,283,13 +2020-07-01,Lamar,Texas,48277,296,13 +2020-07-02,Lamar,Texas,48277,296,13 +2020-07-03,Lamar,Texas,48277,316,13 +2020-07-04,Lamar,Texas,48277,316,13 +2020-07-05,Lamar,Texas,48277,325,13 +2020-07-06,Lamar,Texas,48277,332,13 +2020-07-07,Lamar,Texas,48277,332,13 +2020-07-08,Lamar,Texas,48277,347,13 +2020-07-09,Lamar,Texas,48277,354,13 +2020-03-28,Lamb,Texas,48279,1,0 +2020-03-29,Lamb,Texas,48279,1,0 +2020-03-30,Lamb,Texas,48279,1,0 +2020-03-31,Lamb,Texas,48279,1,0 +2020-04-01,Lamb,Texas,48279,1,0 +2020-04-02,Lamb,Texas,48279,1,0 +2020-04-03,Lamb,Texas,48279,1,0 +2020-04-04,Lamb,Texas,48279,1,0 +2020-04-05,Lamb,Texas,48279,1,0 +2020-04-06,Lamb,Texas,48279,1,0 +2020-04-07,Lamb,Texas,48279,1,0 +2020-04-08,Lamb,Texas,48279,1,0 +2020-04-09,Lamb,Texas,48279,1,0 +2020-04-10,Lamb,Texas,48279,1,0 +2020-04-11,Lamb,Texas,48279,1,0 +2020-04-12,Lamb,Texas,48279,1,0 +2020-04-13,Lamb,Texas,48279,1,0 +2020-04-14,Lamb,Texas,48279,2,0 +2020-04-15,Lamb,Texas,48279,2,0 +2020-04-16,Lamb,Texas,48279,2,0 +2020-04-17,Lamb,Texas,48279,2,0 +2020-04-18,Lamb,Texas,48279,2,0 +2020-04-19,Lamb,Texas,48279,2,0 +2020-04-20,Lamb,Texas,48279,2,0 +2020-04-21,Lamb,Texas,48279,2,0 +2020-04-22,Lamb,Texas,48279,2,0 +2020-04-23,Lamb,Texas,48279,2,0 +2020-04-24,Lamb,Texas,48279,2,0 +2020-04-25,Lamb,Texas,48279,2,0 +2020-04-26,Lamb,Texas,48279,2,0 +2020-04-27,Lamb,Texas,48279,3,0 +2020-04-28,Lamb,Texas,48279,3,0 +2020-04-29,Lamb,Texas,48279,3,0 +2020-04-30,Lamb,Texas,48279,3,0 +2020-05-01,Lamb,Texas,48279,3,0 +2020-05-02,Lamb,Texas,48279,4,0 +2020-05-03,Lamb,Texas,48279,4,0 +2020-05-04,Lamb,Texas,48279,4,0 +2020-05-05,Lamb,Texas,48279,4,0 +2020-05-06,Lamb,Texas,48279,4,0 +2020-05-07,Lamb,Texas,48279,5,0 +2020-05-08,Lamb,Texas,48279,5,0 +2020-05-09,Lamb,Texas,48279,5,0 +2020-05-10,Lamb,Texas,48279,7,0 +2020-05-11,Lamb,Texas,48279,7,0 +2020-05-12,Lamb,Texas,48279,8,0 +2020-05-13,Lamb,Texas,48279,8,0 +2020-05-14,Lamb,Texas,48279,10,0 +2020-05-15,Lamb,Texas,48279,10,0 +2020-05-16,Lamb,Texas,48279,11,0 +2020-05-17,Lamb,Texas,48279,11,0 +2020-05-18,Lamb,Texas,48279,11,0 +2020-05-19,Lamb,Texas,48279,11,0 +2020-05-20,Lamb,Texas,48279,11,0 +2020-05-21,Lamb,Texas,48279,11,0 +2020-05-22,Lamb,Texas,48279,11,0 +2020-05-23,Lamb,Texas,48279,15,0 +2020-05-24,Lamb,Texas,48279,15,0 +2020-05-25,Lamb,Texas,48279,15,0 +2020-05-26,Lamb,Texas,48279,15,0 +2020-05-27,Lamb,Texas,48279,16,0 +2020-05-28,Lamb,Texas,48279,16,0 +2020-05-29,Lamb,Texas,48279,16,0 +2020-05-30,Lamb,Texas,48279,16,0 +2020-05-31,Lamb,Texas,48279,16,0 +2020-06-01,Lamb,Texas,48279,16,0 +2020-06-02,Lamb,Texas,48279,16,0 +2020-06-03,Lamb,Texas,48279,16,0 +2020-06-04,Lamb,Texas,48279,16,0 +2020-06-05,Lamb,Texas,48279,16,0 +2020-06-06,Lamb,Texas,48279,17,0 +2020-06-07,Lamb,Texas,48279,17,0 +2020-06-08,Lamb,Texas,48279,17,0 +2020-06-09,Lamb,Texas,48279,17,0 +2020-06-10,Lamb,Texas,48279,18,0 +2020-06-11,Lamb,Texas,48279,18,0 +2020-06-12,Lamb,Texas,48279,17,0 +2020-06-13,Lamb,Texas,48279,18,0 +2020-06-14,Lamb,Texas,48279,18,0 +2020-06-15,Lamb,Texas,48279,18,0 +2020-06-16,Lamb,Texas,48279,20,0 +2020-06-17,Lamb,Texas,48279,25,0 +2020-06-18,Lamb,Texas,48279,28,0 +2020-06-19,Lamb,Texas,48279,29,0 +2020-06-20,Lamb,Texas,48279,29,0 +2020-06-21,Lamb,Texas,48279,29,0 +2020-06-22,Lamb,Texas,48279,31,0 +2020-06-23,Lamb,Texas,48279,32,0 +2020-06-24,Lamb,Texas,48279,32,0 +2020-06-25,Lamb,Texas,48279,33,0 +2020-06-26,Lamb,Texas,48279,33,0 +2020-06-27,Lamb,Texas,48279,36,0 +2020-06-28,Lamb,Texas,48279,36,0 +2020-06-29,Lamb,Texas,48279,36,0 +2020-06-30,Lamb,Texas,48279,37,0 +2020-07-01,Lamb,Texas,48279,41,0 +2020-07-02,Lamb,Texas,48279,44,0 +2020-07-03,Lamb,Texas,48279,50,0 +2020-07-04,Lamb,Texas,48279,50,0 +2020-07-05,Lamb,Texas,48279,50,0 +2020-07-06,Lamb,Texas,48279,50,0 +2020-07-07,Lamb,Texas,48279,53,0 +2020-07-08,Lamb,Texas,48279,71,0 +2020-07-09,Lamb,Texas,48279,71,0 +2020-04-03,Lampasas,Texas,48281,1,0 +2020-04-04,Lampasas,Texas,48281,1,0 +2020-04-05,Lampasas,Texas,48281,1,0 +2020-04-06,Lampasas,Texas,48281,1,0 +2020-04-07,Lampasas,Texas,48281,2,0 +2020-04-08,Lampasas,Texas,48281,2,0 +2020-04-09,Lampasas,Texas,48281,2,0 +2020-04-10,Lampasas,Texas,48281,3,0 +2020-04-11,Lampasas,Texas,48281,3,0 +2020-04-12,Lampasas,Texas,48281,3,0 +2020-04-13,Lampasas,Texas,48281,3,0 +2020-04-14,Lampasas,Texas,48281,3,0 +2020-04-15,Lampasas,Texas,48281,3,0 +2020-04-16,Lampasas,Texas,48281,3,0 +2020-04-17,Lampasas,Texas,48281,3,0 +2020-04-18,Lampasas,Texas,48281,3,0 +2020-04-19,Lampasas,Texas,48281,3,0 +2020-04-20,Lampasas,Texas,48281,3,0 +2020-04-21,Lampasas,Texas,48281,3,0 +2020-04-22,Lampasas,Texas,48281,3,0 +2020-04-23,Lampasas,Texas,48281,3,0 +2020-04-24,Lampasas,Texas,48281,3,0 +2020-04-25,Lampasas,Texas,48281,3,0 +2020-04-26,Lampasas,Texas,48281,3,0 +2020-04-27,Lampasas,Texas,48281,3,0 +2020-04-28,Lampasas,Texas,48281,3,0 +2020-04-29,Lampasas,Texas,48281,3,0 +2020-04-30,Lampasas,Texas,48281,3,0 +2020-05-01,Lampasas,Texas,48281,3,0 +2020-05-02,Lampasas,Texas,48281,4,0 +2020-05-03,Lampasas,Texas,48281,4,0 +2020-05-04,Lampasas,Texas,48281,4,0 +2020-05-05,Lampasas,Texas,48281,5,0 +2020-05-06,Lampasas,Texas,48281,5,0 +2020-05-07,Lampasas,Texas,48281,6,0 +2020-05-08,Lampasas,Texas,48281,6,0 +2020-05-09,Lampasas,Texas,48281,8,0 +2020-05-10,Lampasas,Texas,48281,8,0 +2020-05-11,Lampasas,Texas,48281,8,0 +2020-05-12,Lampasas,Texas,48281,8,0 +2020-05-13,Lampasas,Texas,48281,8,0 +2020-05-14,Lampasas,Texas,48281,8,0 +2020-05-15,Lampasas,Texas,48281,8,0 +2020-05-16,Lampasas,Texas,48281,8,0 +2020-05-17,Lampasas,Texas,48281,8,0 +2020-05-18,Lampasas,Texas,48281,8,0 +2020-05-19,Lampasas,Texas,48281,8,0 +2020-05-20,Lampasas,Texas,48281,8,0 +2020-05-21,Lampasas,Texas,48281,8,0 +2020-05-22,Lampasas,Texas,48281,8,0 +2020-05-23,Lampasas,Texas,48281,8,0 +2020-05-24,Lampasas,Texas,48281,8,0 +2020-05-25,Lampasas,Texas,48281,8,0 +2020-05-26,Lampasas,Texas,48281,8,0 +2020-05-27,Lampasas,Texas,48281,8,0 +2020-05-28,Lampasas,Texas,48281,8,0 +2020-05-29,Lampasas,Texas,48281,8,0 +2020-05-30,Lampasas,Texas,48281,9,0 +2020-05-31,Lampasas,Texas,48281,9,0 +2020-06-01,Lampasas,Texas,48281,9,0 +2020-06-02,Lampasas,Texas,48281,9,0 +2020-06-03,Lampasas,Texas,48281,9,0 +2020-06-04,Lampasas,Texas,48281,9,0 +2020-06-05,Lampasas,Texas,48281,9,0 +2020-06-06,Lampasas,Texas,48281,9,0 +2020-06-07,Lampasas,Texas,48281,9,0 +2020-06-08,Lampasas,Texas,48281,9,0 +2020-06-09,Lampasas,Texas,48281,9,0 +2020-06-10,Lampasas,Texas,48281,9,0 +2020-06-11,Lampasas,Texas,48281,9,0 +2020-06-12,Lampasas,Texas,48281,9,0 +2020-06-13,Lampasas,Texas,48281,9,0 +2020-06-14,Lampasas,Texas,48281,9,0 +2020-06-15,Lampasas,Texas,48281,9,0 +2020-06-16,Lampasas,Texas,48281,11,0 +2020-06-17,Lampasas,Texas,48281,13,0 +2020-06-18,Lampasas,Texas,48281,13,0 +2020-06-19,Lampasas,Texas,48281,15,0 +2020-06-20,Lampasas,Texas,48281,16,0 +2020-06-21,Lampasas,Texas,48281,17,0 +2020-06-22,Lampasas,Texas,48281,18,0 +2020-06-23,Lampasas,Texas,48281,19,0 +2020-06-24,Lampasas,Texas,48281,19,0 +2020-06-25,Lampasas,Texas,48281,19,0 +2020-06-26,Lampasas,Texas,48281,19,0 +2020-06-27,Lampasas,Texas,48281,19,0 +2020-06-28,Lampasas,Texas,48281,19,0 +2020-06-29,Lampasas,Texas,48281,20,0 +2020-06-30,Lampasas,Texas,48281,20,0 +2020-07-01,Lampasas,Texas,48281,20,0 +2020-07-02,Lampasas,Texas,48281,20,0 +2020-07-03,Lampasas,Texas,48281,20,0 +2020-07-04,Lampasas,Texas,48281,20,0 +2020-07-05,Lampasas,Texas,48281,20,0 +2020-07-06,Lampasas,Texas,48281,20,0 +2020-07-07,Lampasas,Texas,48281,20,0 +2020-07-08,Lampasas,Texas,48281,30,0 +2020-07-09,Lampasas,Texas,48281,32,0 +2020-04-16,La Salle,Texas,48283,1,0 +2020-04-17,La Salle,Texas,48283,1,0 +2020-04-18,La Salle,Texas,48283,1,0 +2020-04-19,La Salle,Texas,48283,1,0 +2020-04-20,La Salle,Texas,48283,1,0 +2020-04-21,La Salle,Texas,48283,1,0 +2020-04-22,La Salle,Texas,48283,1,0 +2020-04-23,La Salle,Texas,48283,1,0 +2020-04-24,La Salle,Texas,48283,1,0 +2020-04-25,La Salle,Texas,48283,1,0 +2020-04-26,La Salle,Texas,48283,1,0 +2020-04-27,La Salle,Texas,48283,1,0 +2020-04-28,La Salle,Texas,48283,1,0 +2020-04-29,La Salle,Texas,48283,1,0 +2020-04-30,La Salle,Texas,48283,1,0 +2020-05-01,La Salle,Texas,48283,1,0 +2020-05-02,La Salle,Texas,48283,1,0 +2020-05-03,La Salle,Texas,48283,1,0 +2020-05-04,La Salle,Texas,48283,1,0 +2020-05-05,La Salle,Texas,48283,1,0 +2020-05-06,La Salle,Texas,48283,1,0 +2020-05-07,La Salle,Texas,48283,1,0 +2020-05-08,La Salle,Texas,48283,1,0 +2020-05-09,La Salle,Texas,48283,2,0 +2020-05-10,La Salle,Texas,48283,2,0 +2020-05-11,La Salle,Texas,48283,2,0 +2020-05-12,La Salle,Texas,48283,2,0 +2020-05-13,La Salle,Texas,48283,3,0 +2020-05-14,La Salle,Texas,48283,4,0 +2020-05-15,La Salle,Texas,48283,4,0 +2020-05-16,La Salle,Texas,48283,4,0 +2020-05-17,La Salle,Texas,48283,4,0 +2020-05-18,La Salle,Texas,48283,4,0 +2020-05-19,La Salle,Texas,48283,4,0 +2020-05-20,La Salle,Texas,48283,4,0 +2020-05-21,La Salle,Texas,48283,4,0 +2020-05-22,La Salle,Texas,48283,4,0 +2020-05-23,La Salle,Texas,48283,4,0 +2020-05-24,La Salle,Texas,48283,4,0 +2020-05-25,La Salle,Texas,48283,4,0 +2020-05-26,La Salle,Texas,48283,4,0 +2020-05-27,La Salle,Texas,48283,4,0 +2020-05-28,La Salle,Texas,48283,4,0 +2020-05-29,La Salle,Texas,48283,4,0 +2020-05-30,La Salle,Texas,48283,4,0 +2020-05-31,La Salle,Texas,48283,4,0 +2020-06-01,La Salle,Texas,48283,4,0 +2020-06-02,La Salle,Texas,48283,4,0 +2020-06-03,La Salle,Texas,48283,4,0 +2020-06-04,La Salle,Texas,48283,4,0 +2020-06-05,La Salle,Texas,48283,4,0 +2020-06-06,La Salle,Texas,48283,4,0 +2020-06-07,La Salle,Texas,48283,4,0 +2020-06-08,La Salle,Texas,48283,4,0 +2020-06-09,La Salle,Texas,48283,4,0 +2020-06-10,La Salle,Texas,48283,4,0 +2020-06-11,La Salle,Texas,48283,4,0 +2020-06-12,La Salle,Texas,48283,4,0 +2020-06-13,La Salle,Texas,48283,4,0 +2020-06-14,La Salle,Texas,48283,4,0 +2020-06-15,La Salle,Texas,48283,4,0 +2020-06-16,La Salle,Texas,48283,4,0 +2020-06-17,La Salle,Texas,48283,5,0 +2020-06-18,La Salle,Texas,48283,5,0 +2020-06-19,La Salle,Texas,48283,7,0 +2020-06-20,La Salle,Texas,48283,7,0 +2020-06-21,La Salle,Texas,48283,7,0 +2020-06-22,La Salle,Texas,48283,7,0 +2020-06-23,La Salle,Texas,48283,7,0 +2020-06-24,La Salle,Texas,48283,8,0 +2020-06-25,La Salle,Texas,48283,8,0 +2020-06-26,La Salle,Texas,48283,8,0 +2020-06-27,La Salle,Texas,48283,10,0 +2020-06-28,La Salle,Texas,48283,10,0 +2020-06-29,La Salle,Texas,48283,10,0 +2020-06-30,La Salle,Texas,48283,13,0 +2020-07-01,La Salle,Texas,48283,14,0 +2020-07-02,La Salle,Texas,48283,19,0 +2020-07-03,La Salle,Texas,48283,21,0 +2020-07-04,La Salle,Texas,48283,21,0 +2020-07-05,La Salle,Texas,48283,21,0 +2020-07-06,La Salle,Texas,48283,21,0 +2020-07-07,La Salle,Texas,48283,24,0 +2020-07-08,La Salle,Texas,48283,41,0 +2020-07-09,La Salle,Texas,48283,51,0 +2020-03-18,Lavaca,Texas,48285,1,0 +2020-03-19,Lavaca,Texas,48285,1,0 +2020-03-20,Lavaca,Texas,48285,1,0 +2020-03-21,Lavaca,Texas,48285,1,0 +2020-03-22,Lavaca,Texas,48285,1,0 +2020-03-23,Lavaca,Texas,48285,1,0 +2020-03-24,Lavaca,Texas,48285,1,0 +2020-03-25,Lavaca,Texas,48285,1,0 +2020-03-26,Lavaca,Texas,48285,1,0 +2020-03-27,Lavaca,Texas,48285,1,0 +2020-03-28,Lavaca,Texas,48285,3,0 +2020-03-29,Lavaca,Texas,48285,1,0 +2020-03-30,Lavaca,Texas,48285,1,0 +2020-03-31,Lavaca,Texas,48285,1,0 +2020-04-01,Lavaca,Texas,48285,1,0 +2020-04-02,Lavaca,Texas,48285,1,0 +2020-04-03,Lavaca,Texas,48285,1,0 +2020-04-04,Lavaca,Texas,48285,2,0 +2020-04-05,Lavaca,Texas,48285,2,0 +2020-04-06,Lavaca,Texas,48285,2,0 +2020-04-07,Lavaca,Texas,48285,2,0 +2020-04-08,Lavaca,Texas,48285,2,0 +2020-04-09,Lavaca,Texas,48285,4,0 +2020-04-10,Lavaca,Texas,48285,4,0 +2020-04-11,Lavaca,Texas,48285,4,0 +2020-04-12,Lavaca,Texas,48285,4,0 +2020-04-13,Lavaca,Texas,48285,4,0 +2020-04-14,Lavaca,Texas,48285,4,0 +2020-04-15,Lavaca,Texas,48285,4,0 +2020-04-16,Lavaca,Texas,48285,4,0 +2020-04-17,Lavaca,Texas,48285,4,0 +2020-04-18,Lavaca,Texas,48285,4,0 +2020-04-19,Lavaca,Texas,48285,4,0 +2020-04-20,Lavaca,Texas,48285,4,0 +2020-04-21,Lavaca,Texas,48285,4,0 +2020-04-22,Lavaca,Texas,48285,4,0 +2020-04-23,Lavaca,Texas,48285,5,0 +2020-04-24,Lavaca,Texas,48285,5,0 +2020-04-25,Lavaca,Texas,48285,5,1 +2020-04-26,Lavaca,Texas,48285,5,1 +2020-04-27,Lavaca,Texas,48285,5,1 +2020-04-28,Lavaca,Texas,48285,5,1 +2020-04-29,Lavaca,Texas,48285,5,1 +2020-04-30,Lavaca,Texas,48285,6,1 +2020-05-01,Lavaca,Texas,48285,6,1 +2020-05-02,Lavaca,Texas,48285,6,1 +2020-05-03,Lavaca,Texas,48285,6,1 +2020-05-04,Lavaca,Texas,48285,6,1 +2020-05-05,Lavaca,Texas,48285,6,1 +2020-05-06,Lavaca,Texas,48285,6,1 +2020-05-07,Lavaca,Texas,48285,6,1 +2020-05-08,Lavaca,Texas,48285,6,1 +2020-05-09,Lavaca,Texas,48285,6,1 +2020-05-10,Lavaca,Texas,48285,6,1 +2020-05-11,Lavaca,Texas,48285,6,1 +2020-05-12,Lavaca,Texas,48285,6,1 +2020-05-13,Lavaca,Texas,48285,7,1 +2020-05-14,Lavaca,Texas,48285,7,1 +2020-05-15,Lavaca,Texas,48285,7,1 +2020-05-16,Lavaca,Texas,48285,8,1 +2020-05-17,Lavaca,Texas,48285,8,1 +2020-05-18,Lavaca,Texas,48285,8,1 +2020-05-19,Lavaca,Texas,48285,8,1 +2020-05-20,Lavaca,Texas,48285,8,1 +2020-05-21,Lavaca,Texas,48285,8,1 +2020-05-22,Lavaca,Texas,48285,8,1 +2020-05-23,Lavaca,Texas,48285,8,1 +2020-05-24,Lavaca,Texas,48285,9,1 +2020-05-25,Lavaca,Texas,48285,9,1 +2020-05-26,Lavaca,Texas,48285,9,1 +2020-05-27,Lavaca,Texas,48285,11,1 +2020-05-28,Lavaca,Texas,48285,11,1 +2020-05-29,Lavaca,Texas,48285,11,1 +2020-05-30,Lavaca,Texas,48285,12,1 +2020-05-31,Lavaca,Texas,48285,12,1 +2020-06-01,Lavaca,Texas,48285,12,1 +2020-06-02,Lavaca,Texas,48285,13,1 +2020-06-03,Lavaca,Texas,48285,14,1 +2020-06-04,Lavaca,Texas,48285,17,1 +2020-06-05,Lavaca,Texas,48285,18,1 +2020-06-06,Lavaca,Texas,48285,19,1 +2020-06-07,Lavaca,Texas,48285,19,1 +2020-06-08,Lavaca,Texas,48285,19,1 +2020-06-09,Lavaca,Texas,48285,19,1 +2020-06-10,Lavaca,Texas,48285,20,1 +2020-06-11,Lavaca,Texas,48285,21,1 +2020-06-12,Lavaca,Texas,48285,21,1 +2020-06-13,Lavaca,Texas,48285,22,1 +2020-06-14,Lavaca,Texas,48285,22,1 +2020-06-15,Lavaca,Texas,48285,22,1 +2020-06-16,Lavaca,Texas,48285,22,1 +2020-06-17,Lavaca,Texas,48285,22,1 +2020-06-18,Lavaca,Texas,48285,22,1 +2020-06-19,Lavaca,Texas,48285,43,1 +2020-06-20,Lavaca,Texas,48285,68,1 +2020-06-21,Lavaca,Texas,48285,85,1 +2020-06-22,Lavaca,Texas,48285,85,1 +2020-06-23,Lavaca,Texas,48285,86,1 +2020-06-24,Lavaca,Texas,48285,99,1 +2020-06-25,Lavaca,Texas,48285,108,1 +2020-06-26,Lavaca,Texas,48285,117,1 +2020-06-27,Lavaca,Texas,48285,122,1 +2020-06-28,Lavaca,Texas,48285,123,1 +2020-06-29,Lavaca,Texas,48285,123,1 +2020-06-30,Lavaca,Texas,48285,131,1 +2020-07-01,Lavaca,Texas,48285,134,1 +2020-07-02,Lavaca,Texas,48285,150,1 +2020-07-03,Lavaca,Texas,48285,175,1 +2020-07-04,Lavaca,Texas,48285,184,1 +2020-07-05,Lavaca,Texas,48285,184,1 +2020-07-06,Lavaca,Texas,48285,184,1 +2020-07-07,Lavaca,Texas,48285,197,1 +2020-07-08,Lavaca,Texas,48285,198,1 +2020-07-09,Lavaca,Texas,48285,212,1 +2020-04-02,Lee,Texas,48287,1,0 +2020-04-03,Lee,Texas,48287,2,0 +2020-04-04,Lee,Texas,48287,2,0 +2020-04-05,Lee,Texas,48287,2,0 +2020-04-06,Lee,Texas,48287,2,0 +2020-04-07,Lee,Texas,48287,2,0 +2020-04-08,Lee,Texas,48287,2,0 +2020-04-09,Lee,Texas,48287,2,0 +2020-04-10,Lee,Texas,48287,2,0 +2020-04-11,Lee,Texas,48287,2,0 +2020-04-12,Lee,Texas,48287,2,0 +2020-04-13,Lee,Texas,48287,2,0 +2020-04-14,Lee,Texas,48287,2,0 +2020-04-15,Lee,Texas,48287,2,0 +2020-04-16,Lee,Texas,48287,2,0 +2020-04-17,Lee,Texas,48287,2,0 +2020-04-18,Lee,Texas,48287,2,0 +2020-04-19,Lee,Texas,48287,2,0 +2020-04-20,Lee,Texas,48287,2,0 +2020-04-21,Lee,Texas,48287,2,0 +2020-04-22,Lee,Texas,48287,2,0 +2020-04-23,Lee,Texas,48287,2,0 +2020-04-24,Lee,Texas,48287,2,0 +2020-04-25,Lee,Texas,48287,2,0 +2020-04-26,Lee,Texas,48287,2,0 +2020-04-27,Lee,Texas,48287,2,0 +2020-04-28,Lee,Texas,48287,2,0 +2020-04-29,Lee,Texas,48287,2,0 +2020-04-30,Lee,Texas,48287,2,0 +2020-05-01,Lee,Texas,48287,2,0 +2020-05-02,Lee,Texas,48287,2,0 +2020-05-03,Lee,Texas,48287,2,0 +2020-05-04,Lee,Texas,48287,2,0 +2020-05-05,Lee,Texas,48287,2,0 +2020-05-06,Lee,Texas,48287,2,0 +2020-05-07,Lee,Texas,48287,2,0 +2020-05-08,Lee,Texas,48287,4,0 +2020-05-09,Lee,Texas,48287,5,0 +2020-05-10,Lee,Texas,48287,5,0 +2020-05-11,Lee,Texas,48287,5,0 +2020-05-12,Lee,Texas,48287,6,0 +2020-05-13,Lee,Texas,48287,6,0 +2020-05-14,Lee,Texas,48287,6,0 +2020-05-15,Lee,Texas,48287,6,0 +2020-05-16,Lee,Texas,48287,6,0 +2020-05-17,Lee,Texas,48287,6,0 +2020-05-18,Lee,Texas,48287,6,0 +2020-05-19,Lee,Texas,48287,7,0 +2020-05-20,Lee,Texas,48287,6,0 +2020-05-21,Lee,Texas,48287,8,0 +2020-05-22,Lee,Texas,48287,8,0 +2020-05-23,Lee,Texas,48287,8,0 +2020-05-24,Lee,Texas,48287,9,0 +2020-05-25,Lee,Texas,48287,10,0 +2020-05-26,Lee,Texas,48287,10,0 +2020-05-27,Lee,Texas,48287,11,0 +2020-05-28,Lee,Texas,48287,21,0 +2020-05-29,Lee,Texas,48287,21,0 +2020-05-30,Lee,Texas,48287,25,0 +2020-05-31,Lee,Texas,48287,24,1 +2020-06-01,Lee,Texas,48287,24,1 +2020-06-02,Lee,Texas,48287,24,1 +2020-06-03,Lee,Texas,48287,25,1 +2020-06-04,Lee,Texas,48287,25,1 +2020-06-05,Lee,Texas,48287,25,1 +2020-06-06,Lee,Texas,48287,25,2 +2020-06-07,Lee,Texas,48287,26,2 +2020-06-08,Lee,Texas,48287,26,2 +2020-06-09,Lee,Texas,48287,26,2 +2020-06-10,Lee,Texas,48287,29,2 +2020-06-11,Lee,Texas,48287,32,2 +2020-06-12,Lee,Texas,48287,35,2 +2020-06-13,Lee,Texas,48287,35,2 +2020-06-14,Lee,Texas,48287,35,2 +2020-06-15,Lee,Texas,48287,35,2 +2020-06-16,Lee,Texas,48287,36,2 +2020-06-17,Lee,Texas,48287,39,3 +2020-06-18,Lee,Texas,48287,48,3 +2020-06-19,Lee,Texas,48287,47,3 +2020-06-20,Lee,Texas,48287,48,3 +2020-06-21,Lee,Texas,48287,49,3 +2020-06-22,Lee,Texas,48287,53,3 +2020-06-23,Lee,Texas,48287,53,3 +2020-06-24,Lee,Texas,48287,53,4 +2020-06-25,Lee,Texas,48287,54,4 +2020-06-26,Lee,Texas,48287,55,3 +2020-06-27,Lee,Texas,48287,56,3 +2020-06-28,Lee,Texas,48287,56,3 +2020-06-29,Lee,Texas,48287,58,3 +2020-06-30,Lee,Texas,48287,59,3 +2020-07-01,Lee,Texas,48287,60,3 +2020-07-02,Lee,Texas,48287,62,3 +2020-07-03,Lee,Texas,48287,63,3 +2020-07-04,Lee,Texas,48287,72,3 +2020-07-05,Lee,Texas,48287,72,3 +2020-07-06,Lee,Texas,48287,85,3 +2020-07-07,Lee,Texas,48287,85,3 +2020-07-08,Lee,Texas,48287,88,3 +2020-07-09,Lee,Texas,48287,92,3 +2020-03-30,Leon,Texas,48289,1,0 +2020-03-31,Leon,Texas,48289,1,0 +2020-04-01,Leon,Texas,48289,2,0 +2020-04-02,Leon,Texas,48289,2,0 +2020-04-03,Leon,Texas,48289,2,0 +2020-04-04,Leon,Texas,48289,2,0 +2020-04-05,Leon,Texas,48289,2,0 +2020-04-06,Leon,Texas,48289,2,0 +2020-04-07,Leon,Texas,48289,2,0 +2020-04-08,Leon,Texas,48289,2,0 +2020-04-09,Leon,Texas,48289,2,0 +2020-04-10,Leon,Texas,48289,3,0 +2020-04-11,Leon,Texas,48289,3,0 +2020-04-12,Leon,Texas,48289,3,0 +2020-04-13,Leon,Texas,48289,3,0 +2020-04-14,Leon,Texas,48289,3,0 +2020-04-15,Leon,Texas,48289,4,0 +2020-04-16,Leon,Texas,48289,4,0 +2020-04-17,Leon,Texas,48289,5,0 +2020-04-18,Leon,Texas,48289,5,0 +2020-04-19,Leon,Texas,48289,5,0 +2020-04-20,Leon,Texas,48289,5,0 +2020-04-21,Leon,Texas,48289,5,0 +2020-04-22,Leon,Texas,48289,5,0 +2020-04-23,Leon,Texas,48289,5,0 +2020-04-24,Leon,Texas,48289,5,0 +2020-04-25,Leon,Texas,48289,5,0 +2020-04-26,Leon,Texas,48289,5,0 +2020-04-27,Leon,Texas,48289,5,0 +2020-04-28,Leon,Texas,48289,5,0 +2020-04-29,Leon,Texas,48289,5,0 +2020-04-30,Leon,Texas,48289,5,0 +2020-05-01,Leon,Texas,48289,6,0 +2020-05-02,Leon,Texas,48289,6,0 +2020-05-03,Leon,Texas,48289,6,0 +2020-05-04,Leon,Texas,48289,6,0 +2020-05-05,Leon,Texas,48289,7,0 +2020-05-06,Leon,Texas,48289,7,0 +2020-05-07,Leon,Texas,48289,7,0 +2020-05-08,Leon,Texas,48289,9,0 +2020-05-09,Leon,Texas,48289,9,0 +2020-05-10,Leon,Texas,48289,9,0 +2020-05-11,Leon,Texas,48289,9,0 +2020-05-12,Leon,Texas,48289,9,0 +2020-05-13,Leon,Texas,48289,9,0 +2020-05-14,Leon,Texas,48289,9,0 +2020-05-15,Leon,Texas,48289,9,0 +2020-05-16,Leon,Texas,48289,9,0 +2020-05-17,Leon,Texas,48289,9,0 +2020-05-18,Leon,Texas,48289,9,0 +2020-05-19,Leon,Texas,48289,9,0 +2020-05-20,Leon,Texas,48289,9,0 +2020-05-21,Leon,Texas,48289,9,0 +2020-05-22,Leon,Texas,48289,9,0 +2020-05-23,Leon,Texas,48289,9,0 +2020-05-24,Leon,Texas,48289,9,0 +2020-05-25,Leon,Texas,48289,9,0 +2020-05-26,Leon,Texas,48289,9,0 +2020-05-27,Leon,Texas,48289,9,0 +2020-05-28,Leon,Texas,48289,10,0 +2020-05-29,Leon,Texas,48289,10,0 +2020-05-30,Leon,Texas,48289,10,0 +2020-05-31,Leon,Texas,48289,10,0 +2020-06-01,Leon,Texas,48289,10,0 +2020-06-02,Leon,Texas,48289,10,0 +2020-06-03,Leon,Texas,48289,10,0 +2020-06-04,Leon,Texas,48289,10,0 +2020-06-05,Leon,Texas,48289,11,0 +2020-06-06,Leon,Texas,48289,11,0 +2020-06-07,Leon,Texas,48289,11,0 +2020-06-08,Leon,Texas,48289,11,0 +2020-06-09,Leon,Texas,48289,11,0 +2020-06-10,Leon,Texas,48289,11,0 +2020-06-11,Leon,Texas,48289,11,0 +2020-06-12,Leon,Texas,48289,11,0 +2020-06-13,Leon,Texas,48289,11,0 +2020-06-14,Leon,Texas,48289,11,0 +2020-06-15,Leon,Texas,48289,11,0 +2020-06-16,Leon,Texas,48289,12,0 +2020-06-17,Leon,Texas,48289,13,0 +2020-06-18,Leon,Texas,48289,13,0 +2020-06-19,Leon,Texas,48289,13,0 +2020-06-20,Leon,Texas,48289,14,0 +2020-06-21,Leon,Texas,48289,15,0 +2020-06-22,Leon,Texas,48289,16,0 +2020-06-23,Leon,Texas,48289,19,0 +2020-06-24,Leon,Texas,48289,19,0 +2020-06-25,Leon,Texas,48289,19,0 +2020-06-26,Leon,Texas,48289,20,0 +2020-06-27,Leon,Texas,48289,20,0 +2020-06-28,Leon,Texas,48289,20,0 +2020-06-29,Leon,Texas,48289,27,0 +2020-06-30,Leon,Texas,48289,27,0 +2020-07-01,Leon,Texas,48289,31,0 +2020-07-02,Leon,Texas,48289,31,0 +2020-07-03,Leon,Texas,48289,33,0 +2020-07-04,Leon,Texas,48289,37,0 +2020-07-05,Leon,Texas,48289,37,0 +2020-07-06,Leon,Texas,48289,43,0 +2020-07-07,Leon,Texas,48289,43,0 +2020-07-08,Leon,Texas,48289,78,0 +2020-07-09,Leon,Texas,48289,82,0 +2020-03-25,Liberty,Texas,48291,1,0 +2020-03-26,Liberty,Texas,48291,1,0 +2020-03-27,Liberty,Texas,48291,2,0 +2020-03-28,Liberty,Texas,48291,2,0 +2020-03-29,Liberty,Texas,48291,2,0 +2020-03-30,Liberty,Texas,48291,2,0 +2020-03-31,Liberty,Texas,48291,2,0 +2020-04-01,Liberty,Texas,48291,3,0 +2020-04-02,Liberty,Texas,48291,4,0 +2020-04-03,Liberty,Texas,48291,5,0 +2020-04-04,Liberty,Texas,48291,5,0 +2020-04-05,Liberty,Texas,48291,6,0 +2020-04-06,Liberty,Texas,48291,8,0 +2020-04-07,Liberty,Texas,48291,12,0 +2020-04-08,Liberty,Texas,48291,14,0 +2020-04-09,Liberty,Texas,48291,15,0 +2020-04-10,Liberty,Texas,48291,16,0 +2020-04-11,Liberty,Texas,48291,17,0 +2020-04-12,Liberty,Texas,48291,19,0 +2020-04-13,Liberty,Texas,48291,19,0 +2020-04-14,Liberty,Texas,48291,20,0 +2020-04-15,Liberty,Texas,48291,23,0 +2020-04-16,Liberty,Texas,48291,25,0 +2020-04-17,Liberty,Texas,48291,25,0 +2020-04-18,Liberty,Texas,48291,29,0 +2020-04-19,Liberty,Texas,48291,32,0 +2020-04-20,Liberty,Texas,48291,32,0 +2020-04-21,Liberty,Texas,48291,33,0 +2020-04-22,Liberty,Texas,48291,37,0 +2020-04-23,Liberty,Texas,48291,36,0 +2020-04-24,Liberty,Texas,48291,37,0 +2020-04-25,Liberty,Texas,48291,38,0 +2020-04-26,Liberty,Texas,48291,38,0 +2020-04-27,Liberty,Texas,48291,38,0 +2020-04-28,Liberty,Texas,48291,39,0 +2020-04-29,Liberty,Texas,48291,41,0 +2020-04-30,Liberty,Texas,48291,42,0 +2020-05-01,Liberty,Texas,48291,43,0 +2020-05-02,Liberty,Texas,48291,45,0 +2020-05-03,Liberty,Texas,48291,45,0 +2020-05-04,Liberty,Texas,48291,45,1 +2020-05-05,Liberty,Texas,48291,46,1 +2020-05-06,Liberty,Texas,48291,47,1 +2020-05-07,Liberty,Texas,48291,48,1 +2020-05-08,Liberty,Texas,48291,49,1 +2020-05-09,Liberty,Texas,48291,62,1 +2020-05-10,Liberty,Texas,48291,64,1 +2020-05-11,Liberty,Texas,48291,66,1 +2020-05-12,Liberty,Texas,48291,70,1 +2020-05-13,Liberty,Texas,48291,72,1 +2020-05-14,Liberty,Texas,48291,72,2 +2020-05-15,Liberty,Texas,48291,72,2 +2020-05-16,Liberty,Texas,48291,75,2 +2020-05-17,Liberty,Texas,48291,75,3 +2020-05-18,Liberty,Texas,48291,75,3 +2020-05-19,Liberty,Texas,48291,75,3 +2020-05-20,Liberty,Texas,48291,79,3 +2020-05-21,Liberty,Texas,48291,81,3 +2020-05-22,Liberty,Texas,48291,81,3 +2020-05-23,Liberty,Texas,48291,81,3 +2020-05-24,Liberty,Texas,48291,80,3 +2020-05-25,Liberty,Texas,48291,80,3 +2020-05-26,Liberty,Texas,48291,80,3 +2020-05-27,Liberty,Texas,48291,80,3 +2020-05-28,Liberty,Texas,48291,81,3 +2020-05-29,Liberty,Texas,48291,90,3 +2020-05-30,Liberty,Texas,48291,92,3 +2020-05-31,Liberty,Texas,48291,95,3 +2020-06-01,Liberty,Texas,48291,95,3 +2020-06-02,Liberty,Texas,48291,95,3 +2020-06-03,Liberty,Texas,48291,97,3 +2020-06-04,Liberty,Texas,48291,97,3 +2020-06-05,Liberty,Texas,48291,101,3 +2020-06-06,Liberty,Texas,48291,101,3 +2020-06-07,Liberty,Texas,48291,103,3 +2020-06-08,Liberty,Texas,48291,103,3 +2020-06-09,Liberty,Texas,48291,108,3 +2020-06-10,Liberty,Texas,48291,110,3 +2020-06-11,Liberty,Texas,48291,115,3 +2020-06-12,Liberty,Texas,48291,121,3 +2020-06-13,Liberty,Texas,48291,121,3 +2020-06-14,Liberty,Texas,48291,122,3 +2020-06-15,Liberty,Texas,48291,127,3 +2020-06-16,Liberty,Texas,48291,137,3 +2020-06-17,Liberty,Texas,48291,156,3 +2020-06-18,Liberty,Texas,48291,163,3 +2020-06-19,Liberty,Texas,48291,169,3 +2020-06-20,Liberty,Texas,48291,177,3 +2020-06-21,Liberty,Texas,48291,182,3 +2020-06-22,Liberty,Texas,48291,186,3 +2020-06-23,Liberty,Texas,48291,196,3 +2020-06-24,Liberty,Texas,48291,207,3 +2020-06-25,Liberty,Texas,48291,212,3 +2020-06-26,Liberty,Texas,48291,236,3 +2020-06-27,Liberty,Texas,48291,262,3 +2020-06-28,Liberty,Texas,48291,275,3 +2020-06-29,Liberty,Texas,48291,287,3 +2020-06-30,Liberty,Texas,48291,314,3 +2020-07-01,Liberty,Texas,48291,331,3 +2020-07-02,Liberty,Texas,48291,361,3 +2020-07-03,Liberty,Texas,48291,376,3 +2020-07-04,Liberty,Texas,48291,390,3 +2020-07-05,Liberty,Texas,48291,390,3 +2020-07-06,Liberty,Texas,48291,410,3 +2020-07-07,Liberty,Texas,48291,428,3 +2020-07-08,Liberty,Texas,48291,445,3 +2020-07-09,Liberty,Texas,48291,464,3 +2020-03-25,Limestone,Texas,48293,1,0 +2020-03-26,Limestone,Texas,48293,1,0 +2020-03-27,Limestone,Texas,48293,1,0 +2020-03-28,Limestone,Texas,48293,1,0 +2020-03-29,Limestone,Texas,48293,1,0 +2020-03-30,Limestone,Texas,48293,2,0 +2020-03-31,Limestone,Texas,48293,2,0 +2020-04-01,Limestone,Texas,48293,2,0 +2020-04-02,Limestone,Texas,48293,3,0 +2020-04-03,Limestone,Texas,48293,3,0 +2020-04-04,Limestone,Texas,48293,3,1 +2020-04-05,Limestone,Texas,48293,3,1 +2020-04-06,Limestone,Texas,48293,3,1 +2020-04-07,Limestone,Texas,48293,6,1 +2020-04-08,Limestone,Texas,48293,6,1 +2020-04-09,Limestone,Texas,48293,7,1 +2020-04-10,Limestone,Texas,48293,9,1 +2020-04-11,Limestone,Texas,48293,11,1 +2020-04-12,Limestone,Texas,48293,11,1 +2020-04-13,Limestone,Texas,48293,11,1 +2020-04-14,Limestone,Texas,48293,11,1 +2020-04-15,Limestone,Texas,48293,11,1 +2020-04-16,Limestone,Texas,48293,11,1 +2020-04-17,Limestone,Texas,48293,11,1 +2020-04-18,Limestone,Texas,48293,11,1 +2020-04-19,Limestone,Texas,48293,11,1 +2020-04-20,Limestone,Texas,48293,11,1 +2020-04-21,Limestone,Texas,48293,11,1 +2020-04-22,Limestone,Texas,48293,11,1 +2020-04-23,Limestone,Texas,48293,11,1 +2020-04-24,Limestone,Texas,48293,11,1 +2020-04-25,Limestone,Texas,48293,11,1 +2020-04-26,Limestone,Texas,48293,11,1 +2020-04-27,Limestone,Texas,48293,12,1 +2020-04-28,Limestone,Texas,48293,13,1 +2020-04-29,Limestone,Texas,48293,12,1 +2020-04-30,Limestone,Texas,48293,12,1 +2020-05-01,Limestone,Texas,48293,12,1 +2020-05-02,Limestone,Texas,48293,13,1 +2020-05-03,Limestone,Texas,48293,13,1 +2020-05-04,Limestone,Texas,48293,13,1 +2020-05-05,Limestone,Texas,48293,13,1 +2020-05-06,Limestone,Texas,48293,13,1 +2020-05-07,Limestone,Texas,48293,13,1 +2020-05-08,Limestone,Texas,48293,13,1 +2020-05-09,Limestone,Texas,48293,14,1 +2020-05-10,Limestone,Texas,48293,15,1 +2020-05-11,Limestone,Texas,48293,15,1 +2020-05-12,Limestone,Texas,48293,15,1 +2020-05-13,Limestone,Texas,48293,15,1 +2020-05-14,Limestone,Texas,48293,15,1 +2020-05-15,Limestone,Texas,48293,15,1 +2020-05-16,Limestone,Texas,48293,15,1 +2020-05-17,Limestone,Texas,48293,15,1 +2020-05-18,Limestone,Texas,48293,15,1 +2020-05-19,Limestone,Texas,48293,17,1 +2020-05-20,Limestone,Texas,48293,17,1 +2020-05-21,Limestone,Texas,48293,18,1 +2020-05-22,Limestone,Texas,48293,18,1 +2020-05-23,Limestone,Texas,48293,22,1 +2020-05-24,Limestone,Texas,48293,23,1 +2020-05-25,Limestone,Texas,48293,23,1 +2020-05-26,Limestone,Texas,48293,23,1 +2020-05-27,Limestone,Texas,48293,23,1 +2020-05-28,Limestone,Texas,48293,23,1 +2020-05-29,Limestone,Texas,48293,24,1 +2020-05-30,Limestone,Texas,48293,24,1 +2020-05-31,Limestone,Texas,48293,24,1 +2020-06-01,Limestone,Texas,48293,24,1 +2020-06-02,Limestone,Texas,48293,26,1 +2020-06-03,Limestone,Texas,48293,27,1 +2020-06-04,Limestone,Texas,48293,30,1 +2020-06-05,Limestone,Texas,48293,30,1 +2020-06-06,Limestone,Texas,48293,32,1 +2020-06-07,Limestone,Texas,48293,32,1 +2020-06-08,Limestone,Texas,48293,32,1 +2020-06-09,Limestone,Texas,48293,34,1 +2020-06-10,Limestone,Texas,48293,34,1 +2020-06-11,Limestone,Texas,48293,36,1 +2020-06-12,Limestone,Texas,48293,36,1 +2020-06-13,Limestone,Texas,48293,38,1 +2020-06-14,Limestone,Texas,48293,39,1 +2020-06-15,Limestone,Texas,48293,39,1 +2020-06-16,Limestone,Texas,48293,40,1 +2020-06-17,Limestone,Texas,48293,41,1 +2020-06-18,Limestone,Texas,48293,40,1 +2020-06-19,Limestone,Texas,48293,40,1 +2020-06-20,Limestone,Texas,48293,41,1 +2020-06-21,Limestone,Texas,48293,41,1 +2020-06-22,Limestone,Texas,48293,42,1 +2020-06-23,Limestone,Texas,48293,42,1 +2020-06-24,Limestone,Texas,48293,42,1 +2020-06-25,Limestone,Texas,48293,42,1 +2020-06-26,Limestone,Texas,48293,43,1 +2020-06-27,Limestone,Texas,48293,45,1 +2020-06-28,Limestone,Texas,48293,45,1 +2020-06-29,Limestone,Texas,48293,47,1 +2020-06-30,Limestone,Texas,48293,49,1 +2020-07-01,Limestone,Texas,48293,52,1 +2020-07-02,Limestone,Texas,48293,56,1 +2020-07-03,Limestone,Texas,48293,60,1 +2020-07-04,Limestone,Texas,48293,61,1 +2020-07-05,Limestone,Texas,48293,61,1 +2020-07-06,Limestone,Texas,48293,62,1 +2020-07-07,Limestone,Texas,48293,62,1 +2020-07-08,Limestone,Texas,48293,74,1 +2020-07-09,Limestone,Texas,48293,86,1 +2020-04-28,Lipscomb,Texas,48295,1,0 +2020-04-29,Lipscomb,Texas,48295,2,0 +2020-04-30,Lipscomb,Texas,48295,2,0 +2020-05-01,Lipscomb,Texas,48295,2,0 +2020-05-02,Lipscomb,Texas,48295,2,0 +2020-05-03,Lipscomb,Texas,48295,2,0 +2020-05-04,Lipscomb,Texas,48295,2,0 +2020-05-05,Lipscomb,Texas,48295,2,0 +2020-05-06,Lipscomb,Texas,48295,2,0 +2020-05-07,Lipscomb,Texas,48295,2,0 +2020-05-08,Lipscomb,Texas,48295,2,0 +2020-05-09,Lipscomb,Texas,48295,2,0 +2020-05-10,Lipscomb,Texas,48295,2,0 +2020-05-11,Lipscomb,Texas,48295,2,0 +2020-05-12,Lipscomb,Texas,48295,2,0 +2020-05-13,Lipscomb,Texas,48295,2,0 +2020-05-14,Lipscomb,Texas,48295,2,0 +2020-05-15,Lipscomb,Texas,48295,2,0 +2020-05-16,Lipscomb,Texas,48295,2,0 +2020-05-17,Lipscomb,Texas,48295,2,0 +2020-05-18,Lipscomb,Texas,48295,2,0 +2020-05-19,Lipscomb,Texas,48295,2,0 +2020-05-20,Lipscomb,Texas,48295,2,0 +2020-05-21,Lipscomb,Texas,48295,2,0 +2020-05-22,Lipscomb,Texas,48295,2,0 +2020-05-23,Lipscomb,Texas,48295,2,0 +2020-05-24,Lipscomb,Texas,48295,2,0 +2020-05-25,Lipscomb,Texas,48295,2,0 +2020-05-26,Lipscomb,Texas,48295,2,0 +2020-05-27,Lipscomb,Texas,48295,2,0 +2020-05-28,Lipscomb,Texas,48295,2,0 +2020-05-29,Lipscomb,Texas,48295,2,0 +2020-05-30,Lipscomb,Texas,48295,2,0 +2020-05-31,Lipscomb,Texas,48295,2,0 +2020-06-01,Lipscomb,Texas,48295,2,0 +2020-06-02,Lipscomb,Texas,48295,2,0 +2020-06-03,Lipscomb,Texas,48295,3,0 +2020-06-04,Lipscomb,Texas,48295,4,0 +2020-06-05,Lipscomb,Texas,48295,5,0 +2020-06-06,Lipscomb,Texas,48295,5,0 +2020-06-07,Lipscomb,Texas,48295,5,0 +2020-06-08,Lipscomb,Texas,48295,5,0 +2020-06-09,Lipscomb,Texas,48295,7,0 +2020-06-10,Lipscomb,Texas,48295,7,0 +2020-06-11,Lipscomb,Texas,48295,7,0 +2020-06-12,Lipscomb,Texas,48295,7,0 +2020-06-13,Lipscomb,Texas,48295,7,0 +2020-06-14,Lipscomb,Texas,48295,7,0 +2020-06-15,Lipscomb,Texas,48295,7,0 +2020-06-16,Lipscomb,Texas,48295,9,0 +2020-06-17,Lipscomb,Texas,48295,9,0 +2020-06-18,Lipscomb,Texas,48295,9,0 +2020-06-19,Lipscomb,Texas,48295,9,0 +2020-06-20,Lipscomb,Texas,48295,9,0 +2020-06-21,Lipscomb,Texas,48295,9,0 +2020-06-22,Lipscomb,Texas,48295,9,0 +2020-06-23,Lipscomb,Texas,48295,9,0 +2020-06-24,Lipscomb,Texas,48295,9,0 +2020-06-25,Lipscomb,Texas,48295,9,0 +2020-06-26,Lipscomb,Texas,48295,9,0 +2020-06-27,Lipscomb,Texas,48295,9,0 +2020-06-28,Lipscomb,Texas,48295,9,0 +2020-06-29,Lipscomb,Texas,48295,9,0 +2020-06-30,Lipscomb,Texas,48295,9,0 +2020-07-01,Lipscomb,Texas,48295,11,0 +2020-07-02,Lipscomb,Texas,48295,11,0 +2020-07-03,Lipscomb,Texas,48295,11,0 +2020-07-04,Lipscomb,Texas,48295,11,0 +2020-07-05,Lipscomb,Texas,48295,11,0 +2020-07-06,Lipscomb,Texas,48295,11,0 +2020-07-07,Lipscomb,Texas,48295,11,0 +2020-07-08,Lipscomb,Texas,48295,11,0 +2020-07-09,Lipscomb,Texas,48295,11,0 +2020-04-01,Live Oak,Texas,48297,1,0 +2020-04-02,Live Oak,Texas,48297,2,0 +2020-04-03,Live Oak,Texas,48297,3,0 +2020-04-04,Live Oak,Texas,48297,3,0 +2020-04-05,Live Oak,Texas,48297,3,0 +2020-04-06,Live Oak,Texas,48297,3,0 +2020-04-07,Live Oak,Texas,48297,3,0 +2020-04-08,Live Oak,Texas,48297,3,0 +2020-04-09,Live Oak,Texas,48297,3,0 +2020-04-10,Live Oak,Texas,48297,3,0 +2020-04-11,Live Oak,Texas,48297,3,0 +2020-04-12,Live Oak,Texas,48297,3,0 +2020-04-13,Live Oak,Texas,48297,3,0 +2020-04-14,Live Oak,Texas,48297,3,0 +2020-04-15,Live Oak,Texas,48297,3,0 +2020-04-16,Live Oak,Texas,48297,3,0 +2020-04-17,Live Oak,Texas,48297,3,0 +2020-04-18,Live Oak,Texas,48297,3,0 +2020-04-19,Live Oak,Texas,48297,3,0 +2020-04-20,Live Oak,Texas,48297,3,0 +2020-04-21,Live Oak,Texas,48297,3,0 +2020-04-22,Live Oak,Texas,48297,5,0 +2020-04-23,Live Oak,Texas,48297,5,0 +2020-04-24,Live Oak,Texas,48297,5,0 +2020-04-25,Live Oak,Texas,48297,5,0 +2020-04-26,Live Oak,Texas,48297,5,0 +2020-04-27,Live Oak,Texas,48297,5,0 +2020-04-28,Live Oak,Texas,48297,5,0 +2020-04-29,Live Oak,Texas,48297,5,0 +2020-04-30,Live Oak,Texas,48297,5,0 +2020-05-01,Live Oak,Texas,48297,5,0 +2020-05-02,Live Oak,Texas,48297,5,0 +2020-05-03,Live Oak,Texas,48297,5,0 +2020-05-04,Live Oak,Texas,48297,5,0 +2020-05-05,Live Oak,Texas,48297,5,0 +2020-05-06,Live Oak,Texas,48297,5,0 +2020-05-07,Live Oak,Texas,48297,5,0 +2020-05-08,Live Oak,Texas,48297,5,0 +2020-05-09,Live Oak,Texas,48297,5,0 +2020-05-10,Live Oak,Texas,48297,5,0 +2020-05-11,Live Oak,Texas,48297,5,0 +2020-05-12,Live Oak,Texas,48297,5,0 +2020-05-13,Live Oak,Texas,48297,5,0 +2020-05-14,Live Oak,Texas,48297,5,0 +2020-05-15,Live Oak,Texas,48297,6,0 +2020-05-16,Live Oak,Texas,48297,6,0 +2020-05-17,Live Oak,Texas,48297,6,0 +2020-05-18,Live Oak,Texas,48297,7,0 +2020-05-19,Live Oak,Texas,48297,7,0 +2020-05-20,Live Oak,Texas,48297,7,0 +2020-05-21,Live Oak,Texas,48297,9,0 +2020-05-22,Live Oak,Texas,48297,9,0 +2020-05-23,Live Oak,Texas,48297,9,0 +2020-05-24,Live Oak,Texas,48297,9,0 +2020-05-25,Live Oak,Texas,48297,9,0 +2020-05-26,Live Oak,Texas,48297,9,0 +2020-05-27,Live Oak,Texas,48297,9,0 +2020-05-28,Live Oak,Texas,48297,9,0 +2020-05-29,Live Oak,Texas,48297,9,0 +2020-05-30,Live Oak,Texas,48297,9,0 +2020-05-31,Live Oak,Texas,48297,9,0 +2020-06-01,Live Oak,Texas,48297,9,0 +2020-06-02,Live Oak,Texas,48297,9,0 +2020-06-03,Live Oak,Texas,48297,9,0 +2020-06-04,Live Oak,Texas,48297,9,0 +2020-06-05,Live Oak,Texas,48297,9,0 +2020-06-06,Live Oak,Texas,48297,9,0 +2020-06-07,Live Oak,Texas,48297,9,0 +2020-06-08,Live Oak,Texas,48297,9,0 +2020-06-09,Live Oak,Texas,48297,9,0 +2020-06-10,Live Oak,Texas,48297,9,0 +2020-06-11,Live Oak,Texas,48297,9,0 +2020-06-12,Live Oak,Texas,48297,9,0 +2020-06-13,Live Oak,Texas,48297,9,0 +2020-06-14,Live Oak,Texas,48297,9,0 +2020-06-15,Live Oak,Texas,48297,9,0 +2020-06-16,Live Oak,Texas,48297,9,0 +2020-06-17,Live Oak,Texas,48297,9,0 +2020-06-18,Live Oak,Texas,48297,9,0 +2020-06-19,Live Oak,Texas,48297,9,0 +2020-06-20,Live Oak,Texas,48297,9,0 +2020-06-21,Live Oak,Texas,48297,9,0 +2020-06-22,Live Oak,Texas,48297,15,0 +2020-06-23,Live Oak,Texas,48297,15,0 +2020-06-24,Live Oak,Texas,48297,15,0 +2020-06-25,Live Oak,Texas,48297,15,0 +2020-06-26,Live Oak,Texas,48297,21,0 +2020-06-27,Live Oak,Texas,48297,21,0 +2020-06-28,Live Oak,Texas,48297,21,0 +2020-06-29,Live Oak,Texas,48297,21,0 +2020-06-30,Live Oak,Texas,48297,31,0 +2020-07-01,Live Oak,Texas,48297,31,0 +2020-07-02,Live Oak,Texas,48297,31,0 +2020-07-03,Live Oak,Texas,48297,31,0 +2020-07-04,Live Oak,Texas,48297,31,0 +2020-07-05,Live Oak,Texas,48297,37,0 +2020-07-06,Live Oak,Texas,48297,42,0 +2020-07-07,Live Oak,Texas,48297,50,0 +2020-07-08,Live Oak,Texas,48297,62,0 +2020-07-09,Live Oak,Texas,48297,63,0 +2020-03-25,Llano,Texas,48299,1,0 +2020-03-26,Llano,Texas,48299,2,0 +2020-03-27,Llano,Texas,48299,2,0 +2020-03-28,Llano,Texas,48299,2,0 +2020-03-29,Llano,Texas,48299,2,0 +2020-03-30,Llano,Texas,48299,3,0 +2020-03-31,Llano,Texas,48299,3,0 +2020-04-01,Llano,Texas,48299,3,0 +2020-04-02,Llano,Texas,48299,3,0 +2020-04-03,Llano,Texas,48299,3,0 +2020-04-04,Llano,Texas,48299,3,0 +2020-04-05,Llano,Texas,48299,3,0 +2020-04-06,Llano,Texas,48299,3,0 +2020-04-07,Llano,Texas,48299,3,0 +2020-04-08,Llano,Texas,48299,3,0 +2020-04-09,Llano,Texas,48299,3,0 +2020-04-10,Llano,Texas,48299,3,0 +2020-04-11,Llano,Texas,48299,3,0 +2020-04-12,Llano,Texas,48299,3,0 +2020-04-13,Llano,Texas,48299,3,0 +2020-04-14,Llano,Texas,48299,3,0 +2020-04-15,Llano,Texas,48299,3,0 +2020-04-16,Llano,Texas,48299,3,0 +2020-04-17,Llano,Texas,48299,3,0 +2020-04-18,Llano,Texas,48299,3,0 +2020-04-19,Llano,Texas,48299,3,0 +2020-04-20,Llano,Texas,48299,3,0 +2020-04-21,Llano,Texas,48299,3,0 +2020-04-22,Llano,Texas,48299,3,0 +2020-04-23,Llano,Texas,48299,3,0 +2020-04-24,Llano,Texas,48299,3,0 +2020-04-25,Llano,Texas,48299,3,0 +2020-04-26,Llano,Texas,48299,3,0 +2020-04-27,Llano,Texas,48299,3,0 +2020-04-28,Llano,Texas,48299,3,0 +2020-04-29,Llano,Texas,48299,3,0 +2020-04-30,Llano,Texas,48299,3,0 +2020-05-01,Llano,Texas,48299,3,0 +2020-05-02,Llano,Texas,48299,3,0 +2020-05-03,Llano,Texas,48299,3,0 +2020-05-04,Llano,Texas,48299,3,0 +2020-05-05,Llano,Texas,48299,3,0 +2020-05-06,Llano,Texas,48299,3,0 +2020-05-07,Llano,Texas,48299,3,0 +2020-05-08,Llano,Texas,48299,3,0 +2020-05-09,Llano,Texas,48299,3,0 +2020-05-10,Llano,Texas,48299,3,0 +2020-05-11,Llano,Texas,48299,3,0 +2020-05-12,Llano,Texas,48299,3,0 +2020-05-13,Llano,Texas,48299,3,0 +2020-05-14,Llano,Texas,48299,3,0 +2020-05-15,Llano,Texas,48299,3,0 +2020-05-16,Llano,Texas,48299,3,0 +2020-05-17,Llano,Texas,48299,3,0 +2020-05-18,Llano,Texas,48299,3,0 +2020-05-19,Llano,Texas,48299,3,0 +2020-05-20,Llano,Texas,48299,3,0 +2020-05-21,Llano,Texas,48299,3,0 +2020-05-22,Llano,Texas,48299,3,0 +2020-05-23,Llano,Texas,48299,3,0 +2020-05-24,Llano,Texas,48299,3,0 +2020-05-25,Llano,Texas,48299,3,0 +2020-05-26,Llano,Texas,48299,3,0 +2020-05-27,Llano,Texas,48299,3,0 +2020-05-28,Llano,Texas,48299,3,0 +2020-05-29,Llano,Texas,48299,3,0 +2020-05-30,Llano,Texas,48299,3,0 +2020-05-31,Llano,Texas,48299,3,0 +2020-06-01,Llano,Texas,48299,3,0 +2020-06-02,Llano,Texas,48299,3,0 +2020-06-03,Llano,Texas,48299,3,0 +2020-06-04,Llano,Texas,48299,3,0 +2020-06-05,Llano,Texas,48299,3,0 +2020-06-06,Llano,Texas,48299,3,0 +2020-06-07,Llano,Texas,48299,3,0 +2020-06-08,Llano,Texas,48299,3,0 +2020-06-09,Llano,Texas,48299,3,0 +2020-06-10,Llano,Texas,48299,3,0 +2020-06-11,Llano,Texas,48299,4,0 +2020-06-12,Llano,Texas,48299,4,0 +2020-06-13,Llano,Texas,48299,4,0 +2020-06-14,Llano,Texas,48299,4,0 +2020-06-15,Llano,Texas,48299,4,0 +2020-06-16,Llano,Texas,48299,5,0 +2020-06-17,Llano,Texas,48299,5,0 +2020-06-18,Llano,Texas,48299,5,0 +2020-06-19,Llano,Texas,48299,5,0 +2020-06-20,Llano,Texas,48299,5,0 +2020-06-21,Llano,Texas,48299,5,0 +2020-06-22,Llano,Texas,48299,8,0 +2020-06-23,Llano,Texas,48299,8,0 +2020-06-24,Llano,Texas,48299,8,0 +2020-06-25,Llano,Texas,48299,7,0 +2020-06-26,Llano,Texas,48299,7,0 +2020-06-27,Llano,Texas,48299,8,0 +2020-06-28,Llano,Texas,48299,8,0 +2020-06-29,Llano,Texas,48299,9,0 +2020-06-30,Llano,Texas,48299,10,0 +2020-07-01,Llano,Texas,48299,11,0 +2020-07-02,Llano,Texas,48299,10,0 +2020-07-03,Llano,Texas,48299,11,0 +2020-07-04,Llano,Texas,48299,11,0 +2020-07-05,Llano,Texas,48299,11,0 +2020-07-06,Llano,Texas,48299,11,0 +2020-07-07,Llano,Texas,48299,11,0 +2020-07-08,Llano,Texas,48299,24,0 +2020-07-09,Llano,Texas,48299,27,0 +2020-03-17,Lubbock,Texas,48303,2,0 +2020-03-18,Lubbock,Texas,48303,3,0 +2020-03-19,Lubbock,Texas,48303,3,0 +2020-03-20,Lubbock,Texas,48303,5,0 +2020-03-21,Lubbock,Texas,48303,9,0 +2020-03-22,Lubbock,Texas,48303,9,0 +2020-03-23,Lubbock,Texas,48303,9,0 +2020-03-24,Lubbock,Texas,48303,9,0 +2020-03-25,Lubbock,Texas,48303,12,0 +2020-03-26,Lubbock,Texas,48303,19,0 +2020-03-27,Lubbock,Texas,48303,31,0 +2020-03-28,Lubbock,Texas,48303,31,0 +2020-03-29,Lubbock,Texas,48303,41,0 +2020-03-30,Lubbock,Texas,48303,51,1 +2020-03-31,Lubbock,Texas,48303,77,1 +2020-04-01,Lubbock,Texas,48303,100,2 +2020-04-02,Lubbock,Texas,48303,108,3 +2020-04-03,Lubbock,Texas,48303,117,3 +2020-04-04,Lubbock,Texas,48303,138,4 +2020-04-05,Lubbock,Texas,48303,151,4 +2020-04-06,Lubbock,Texas,48303,180,6 +2020-04-07,Lubbock,Texas,48303,180,6 +2020-04-08,Lubbock,Texas,48303,191,6 +2020-04-09,Lubbock,Texas,48303,214,7 +2020-04-10,Lubbock,Texas,48303,234,9 +2020-04-11,Lubbock,Texas,48303,270,13 +2020-04-12,Lubbock,Texas,48303,270,14 +2020-04-13,Lubbock,Texas,48303,317,21 +2020-04-14,Lubbock,Texas,48303,330,25 +2020-04-15,Lubbock,Texas,48303,330,25 +2020-04-16,Lubbock,Texas,48303,367,25 +2020-04-17,Lubbock,Texas,48303,407,28 +2020-04-18,Lubbock,Texas,48303,419,28 +2020-04-19,Lubbock,Texas,48303,430,32 +2020-04-20,Lubbock,Texas,48303,445,36 +2020-04-21,Lubbock,Texas,48303,458,38 +2020-04-22,Lubbock,Texas,48303,470,39 +2020-04-23,Lubbock,Texas,48303,481,40 +2020-04-24,Lubbock,Texas,48303,494,40 +2020-04-25,Lubbock,Texas,48303,497,40 +2020-04-26,Lubbock,Texas,48303,499,40 +2020-04-27,Lubbock,Texas,48303,504,43 +2020-04-28,Lubbock,Texas,48303,507,43 +2020-04-29,Lubbock,Texas,48303,516,43 +2020-04-30,Lubbock,Texas,48303,535,45 +2020-05-01,Lubbock,Texas,48303,543,43 +2020-05-02,Lubbock,Texas,48303,549,44 +2020-05-03,Lubbock,Texas,48303,553,44 +2020-05-04,Lubbock,Texas,48303,560,45 +2020-05-05,Lubbock,Texas,48303,567,46 +2020-05-06,Lubbock,Texas,48303,575,47 +2020-05-07,Lubbock,Texas,48303,582,48 +2020-05-08,Lubbock,Texas,48303,583,49 +2020-05-09,Lubbock,Texas,48303,583,49 +2020-05-10,Lubbock,Texas,48303,592,49 +2020-05-11,Lubbock,Texas,48303,598,50 +2020-05-12,Lubbock,Texas,48303,605,50 +2020-05-13,Lubbock,Texas,48303,607,50 +2020-05-14,Lubbock,Texas,48303,614,50 +2020-05-15,Lubbock,Texas,48303,616,50 +2020-05-16,Lubbock,Texas,48303,616,50 +2020-05-17,Lubbock,Texas,48303,619,50 +2020-05-18,Lubbock,Texas,48303,619,50 +2020-05-19,Lubbock,Texas,48303,624,50 +2020-05-20,Lubbock,Texas,48303,630,50 +2020-05-21,Lubbock,Texas,48303,639,50 +2020-05-22,Lubbock,Texas,48303,656,50 +2020-05-23,Lubbock,Texas,48303,662,50 +2020-05-24,Lubbock,Texas,48303,664,50 +2020-05-25,Lubbock,Texas,48303,667,50 +2020-05-26,Lubbock,Texas,48303,674,50 +2020-05-27,Lubbock,Texas,48303,677,50 +2020-05-28,Lubbock,Texas,48303,680,50 +2020-05-29,Lubbock,Texas,48303,688,50 +2020-05-30,Lubbock,Texas,48303,691,50 +2020-05-31,Lubbock,Texas,48303,692,50 +2020-06-01,Lubbock,Texas,48303,704,50 +2020-06-02,Lubbock,Texas,48303,706,50 +2020-06-03,Lubbock,Texas,48303,707,50 +2020-06-04,Lubbock,Texas,48303,720,50 +2020-06-05,Lubbock,Texas,48303,734,50 +2020-06-06,Lubbock,Texas,48303,741,50 +2020-06-07,Lubbock,Texas,48303,747,50 +2020-06-08,Lubbock,Texas,48303,756,50 +2020-06-09,Lubbock,Texas,48303,759,50 +2020-06-10,Lubbock,Texas,48303,775,50 +2020-06-11,Lubbock,Texas,48303,790,50 +2020-06-12,Lubbock,Texas,48303,813,51 +2020-06-13,Lubbock,Texas,48303,847,51 +2020-06-14,Lubbock,Texas,48303,857,51 +2020-06-15,Lubbock,Texas,48303,894,51 +2020-06-16,Lubbock,Texas,48303,955,51 +2020-06-17,Lubbock,Texas,48303,1032,51 +2020-06-18,Lubbock,Texas,48303,1136,51 +2020-06-19,Lubbock,Texas,48303,1208,51 +2020-06-20,Lubbock,Texas,48303,1288,51 +2020-06-21,Lubbock,Texas,48303,1320,51 +2020-06-22,Lubbock,Texas,48303,1407,51 +2020-06-23,Lubbock,Texas,48303,1547,51 +2020-06-24,Lubbock,Texas,48303,1665,51 +2020-06-25,Lubbock,Texas,48303,1795,51 +2020-06-26,Lubbock,Texas,48303,1916,51 +2020-06-27,Lubbock,Texas,48303,1984,51 +2020-06-28,Lubbock,Texas,48303,2041,51 +2020-06-29,Lubbock,Texas,48303,2095,51 +2020-06-30,Lubbock,Texas,48303,2273,51 +2020-07-01,Lubbock,Texas,48303,2457,52 +2020-07-02,Lubbock,Texas,48303,2620,52 +2020-07-03,Lubbock,Texas,48303,2620,52 +2020-07-04,Lubbock,Texas,48303,2620,52 +2020-07-05,Lubbock,Texas,48303,2620,52 +2020-07-06,Lubbock,Texas,48303,2918,56 +2020-07-07,Lubbock,Texas,48303,3051,56 +2020-07-08,Lubbock,Texas,48303,3231,58 +2020-07-09,Lubbock,Texas,48303,3376,59 +2020-03-28,Lynn,Texas,48305,1,0 +2020-03-29,Lynn,Texas,48305,1,0 +2020-03-30,Lynn,Texas,48305,2,0 +2020-03-31,Lynn,Texas,48305,2,0 +2020-04-01,Lynn,Texas,48305,2,0 +2020-04-02,Lynn,Texas,48305,3,0 +2020-04-03,Lynn,Texas,48305,3,0 +2020-04-04,Lynn,Texas,48305,3,0 +2020-04-05,Lynn,Texas,48305,3,0 +2020-04-06,Lynn,Texas,48305,3,0 +2020-04-07,Lynn,Texas,48305,3,0 +2020-04-08,Lynn,Texas,48305,3,0 +2020-04-09,Lynn,Texas,48305,3,0 +2020-04-10,Lynn,Texas,48305,5,0 +2020-04-11,Lynn,Texas,48305,5,0 +2020-04-12,Lynn,Texas,48305,5,0 +2020-04-13,Lynn,Texas,48305,5,0 +2020-04-14,Lynn,Texas,48305,5,0 +2020-04-15,Lynn,Texas,48305,5,0 +2020-04-16,Lynn,Texas,48305,5,0 +2020-04-17,Lynn,Texas,48305,5,0 +2020-04-18,Lynn,Texas,48305,5,0 +2020-04-19,Lynn,Texas,48305,5,0 +2020-04-20,Lynn,Texas,48305,5,0 +2020-04-21,Lynn,Texas,48305,5,1 +2020-04-22,Lynn,Texas,48305,5,1 +2020-04-23,Lynn,Texas,48305,5,1 +2020-04-24,Lynn,Texas,48305,5,1 +2020-04-25,Lynn,Texas,48305,5,1 +2020-04-26,Lynn,Texas,48305,5,1 +2020-04-27,Lynn,Texas,48305,5,1 +2020-04-28,Lynn,Texas,48305,5,1 +2020-04-29,Lynn,Texas,48305,5,1 +2020-04-30,Lynn,Texas,48305,5,1 +2020-05-01,Lynn,Texas,48305,5,1 +2020-05-02,Lynn,Texas,48305,5,1 +2020-05-03,Lynn,Texas,48305,5,1 +2020-05-04,Lynn,Texas,48305,5,1 +2020-05-05,Lynn,Texas,48305,5,1 +2020-05-06,Lynn,Texas,48305,5,1 +2020-05-07,Lynn,Texas,48305,5,1 +2020-05-08,Lynn,Texas,48305,5,1 +2020-05-09,Lynn,Texas,48305,5,1 +2020-05-10,Lynn,Texas,48305,5,1 +2020-05-11,Lynn,Texas,48305,5,1 +2020-05-12,Lynn,Texas,48305,5,1 +2020-05-13,Lynn,Texas,48305,5,1 +2020-05-14,Lynn,Texas,48305,5,1 +2020-05-15,Lynn,Texas,48305,5,1 +2020-05-16,Lynn,Texas,48305,5,1 +2020-05-17,Lynn,Texas,48305,5,1 +2020-05-18,Lynn,Texas,48305,5,1 +2020-05-19,Lynn,Texas,48305,5,1 +2020-05-20,Lynn,Texas,48305,5,1 +2020-05-21,Lynn,Texas,48305,5,1 +2020-05-22,Lynn,Texas,48305,5,1 +2020-05-23,Lynn,Texas,48305,5,1 +2020-05-24,Lynn,Texas,48305,5,1 +2020-05-25,Lynn,Texas,48305,5,1 +2020-05-26,Lynn,Texas,48305,5,1 +2020-05-27,Lynn,Texas,48305,6,1 +2020-05-28,Lynn,Texas,48305,6,1 +2020-05-29,Lynn,Texas,48305,7,1 +2020-05-30,Lynn,Texas,48305,7,1 +2020-05-31,Lynn,Texas,48305,7,1 +2020-06-01,Lynn,Texas,48305,7,1 +2020-06-02,Lynn,Texas,48305,7,1 +2020-06-03,Lynn,Texas,48305,7,1 +2020-06-04,Lynn,Texas,48305,8,1 +2020-06-05,Lynn,Texas,48305,8,1 +2020-06-06,Lynn,Texas,48305,8,1 +2020-06-07,Lynn,Texas,48305,8,1 +2020-06-08,Lynn,Texas,48305,8,1 +2020-06-09,Lynn,Texas,48305,8,1 +2020-06-10,Lynn,Texas,48305,10,1 +2020-06-11,Lynn,Texas,48305,14,1 +2020-06-12,Lynn,Texas,48305,14,1 +2020-06-13,Lynn,Texas,48305,19,1 +2020-06-14,Lynn,Texas,48305,19,1 +2020-06-15,Lynn,Texas,48305,19,1 +2020-06-16,Lynn,Texas,48305,21,1 +2020-06-17,Lynn,Texas,48305,21,1 +2020-06-18,Lynn,Texas,48305,21,1 +2020-06-19,Lynn,Texas,48305,21,1 +2020-06-20,Lynn,Texas,48305,21,1 +2020-06-21,Lynn,Texas,48305,21,1 +2020-06-22,Lynn,Texas,48305,21,1 +2020-06-23,Lynn,Texas,48305,23,1 +2020-06-24,Lynn,Texas,48305,23,1 +2020-06-25,Lynn,Texas,48305,26,1 +2020-06-26,Lynn,Texas,48305,28,1 +2020-06-27,Lynn,Texas,48305,28,1 +2020-06-28,Lynn,Texas,48305,28,1 +2020-06-29,Lynn,Texas,48305,28,1 +2020-06-30,Lynn,Texas,48305,33,1 +2020-07-01,Lynn,Texas,48305,33,1 +2020-07-02,Lynn,Texas,48305,38,1 +2020-07-03,Lynn,Texas,48305,38,1 +2020-07-04,Lynn,Texas,48305,39,1 +2020-07-05,Lynn,Texas,48305,39,1 +2020-07-06,Lynn,Texas,48305,39,1 +2020-07-07,Lynn,Texas,48305,40,1 +2020-07-08,Lynn,Texas,48305,45,1 +2020-07-09,Lynn,Texas,48305,49,1 +2020-04-09,McCulloch,Texas,48307,1,0 +2020-04-10,McCulloch,Texas,48307,2,0 +2020-04-11,McCulloch,Texas,48307,3,0 +2020-04-12,McCulloch,Texas,48307,3,0 +2020-04-13,McCulloch,Texas,48307,3,0 +2020-04-14,McCulloch,Texas,48307,3,0 +2020-04-15,McCulloch,Texas,48307,3,0 +2020-04-16,McCulloch,Texas,48307,3,0 +2020-04-17,McCulloch,Texas,48307,3,0 +2020-04-18,McCulloch,Texas,48307,3,0 +2020-04-19,McCulloch,Texas,48307,3,0 +2020-04-20,McCulloch,Texas,48307,3,0 +2020-04-21,McCulloch,Texas,48307,3,0 +2020-04-22,McCulloch,Texas,48307,3,0 +2020-04-23,McCulloch,Texas,48307,3,0 +2020-04-24,McCulloch,Texas,48307,3,0 +2020-04-25,McCulloch,Texas,48307,3,0 +2020-04-26,McCulloch,Texas,48307,3,0 +2020-04-27,McCulloch,Texas,48307,3,0 +2020-04-28,McCulloch,Texas,48307,3,0 +2020-04-29,McCulloch,Texas,48307,3,0 +2020-04-30,McCulloch,Texas,48307,3,0 +2020-05-01,McCulloch,Texas,48307,3,0 +2020-05-02,McCulloch,Texas,48307,3,0 +2020-05-03,McCulloch,Texas,48307,3,0 +2020-05-04,McCulloch,Texas,48307,3,0 +2020-05-05,McCulloch,Texas,48307,3,0 +2020-05-06,McCulloch,Texas,48307,3,0 +2020-05-07,McCulloch,Texas,48307,3,0 +2020-05-08,McCulloch,Texas,48307,3,0 +2020-05-09,McCulloch,Texas,48307,3,0 +2020-05-10,McCulloch,Texas,48307,3,0 +2020-05-11,McCulloch,Texas,48307,3,0 +2020-05-12,McCulloch,Texas,48307,3,0 +2020-05-13,McCulloch,Texas,48307,3,0 +2020-05-14,McCulloch,Texas,48307,3,0 +2020-05-15,McCulloch,Texas,48307,3,0 +2020-05-16,McCulloch,Texas,48307,3,0 +2020-05-17,McCulloch,Texas,48307,3,0 +2020-05-18,McCulloch,Texas,48307,3,0 +2020-05-19,McCulloch,Texas,48307,3,0 +2020-05-20,McCulloch,Texas,48307,3,0 +2020-05-21,McCulloch,Texas,48307,3,0 +2020-05-22,McCulloch,Texas,48307,3,0 +2020-05-23,McCulloch,Texas,48307,3,0 +2020-05-24,McCulloch,Texas,48307,3,0 +2020-05-25,McCulloch,Texas,48307,3,0 +2020-05-26,McCulloch,Texas,48307,3,0 +2020-05-27,McCulloch,Texas,48307,3,0 +2020-05-28,McCulloch,Texas,48307,3,0 +2020-05-29,McCulloch,Texas,48307,3,0 +2020-05-30,McCulloch,Texas,48307,3,0 +2020-05-31,McCulloch,Texas,48307,3,0 +2020-06-01,McCulloch,Texas,48307,3,0 +2020-06-02,McCulloch,Texas,48307,3,0 +2020-06-03,McCulloch,Texas,48307,3,0 +2020-06-04,McCulloch,Texas,48307,3,0 +2020-06-05,McCulloch,Texas,48307,3,0 +2020-06-06,McCulloch,Texas,48307,3,0 +2020-06-07,McCulloch,Texas,48307,3,0 +2020-06-08,McCulloch,Texas,48307,3,0 +2020-06-09,McCulloch,Texas,48307,3,0 +2020-06-10,McCulloch,Texas,48307,3,0 +2020-06-11,McCulloch,Texas,48307,3,0 +2020-06-12,McCulloch,Texas,48307,3,0 +2020-06-13,McCulloch,Texas,48307,3,0 +2020-06-14,McCulloch,Texas,48307,3,0 +2020-06-15,McCulloch,Texas,48307,3,0 +2020-06-16,McCulloch,Texas,48307,4,0 +2020-06-17,McCulloch,Texas,48307,4,0 +2020-06-18,McCulloch,Texas,48307,4,0 +2020-06-19,McCulloch,Texas,48307,4,0 +2020-06-20,McCulloch,Texas,48307,5,0 +2020-06-21,McCulloch,Texas,48307,5,0 +2020-06-22,McCulloch,Texas,48307,5,0 +2020-06-23,McCulloch,Texas,48307,6,0 +2020-06-24,McCulloch,Texas,48307,7,0 +2020-06-25,McCulloch,Texas,48307,7,0 +2020-06-26,McCulloch,Texas,48307,8,0 +2020-06-27,McCulloch,Texas,48307,11,0 +2020-06-28,McCulloch,Texas,48307,11,0 +2020-06-29,McCulloch,Texas,48307,11,0 +2020-06-30,McCulloch,Texas,48307,12,0 +2020-07-01,McCulloch,Texas,48307,13,0 +2020-07-02,McCulloch,Texas,48307,17,0 +2020-07-03,McCulloch,Texas,48307,17,0 +2020-07-04,McCulloch,Texas,48307,20,0 +2020-07-05,McCulloch,Texas,48307,20,0 +2020-07-06,McCulloch,Texas,48307,20,0 +2020-07-07,McCulloch,Texas,48307,21,0 +2020-07-08,McCulloch,Texas,48307,22,0 +2020-07-09,McCulloch,Texas,48307,23,0 +2020-03-18,McLennan,Texas,48309,5,0 +2020-03-19,McLennan,Texas,48309,7,0 +2020-03-20,McLennan,Texas,48309,13,0 +2020-03-21,McLennan,Texas,48309,16,0 +2020-03-22,McLennan,Texas,48309,16,0 +2020-03-23,McLennan,Texas,48309,20,0 +2020-03-24,McLennan,Texas,48309,20,0 +2020-03-25,McLennan,Texas,48309,23,0 +2020-03-26,McLennan,Texas,48309,28,0 +2020-03-27,McLennan,Texas,48309,33,0 +2020-03-28,McLennan,Texas,48309,34,0 +2020-03-29,McLennan,Texas,48309,36,0 +2020-03-30,McLennan,Texas,48309,39,0 +2020-03-31,McLennan,Texas,48309,39,1 +2020-04-01,McLennan,Texas,48309,48,1 +2020-04-02,McLennan,Texas,48309,48,1 +2020-04-03,McLennan,Texas,48309,49,1 +2020-04-04,McLennan,Texas,48309,50,1 +2020-04-05,McLennan,Texas,48309,51,1 +2020-04-06,McLennan,Texas,48309,56,1 +2020-04-07,McLennan,Texas,48309,62,1 +2020-04-08,McLennan,Texas,48309,62,1 +2020-04-09,McLennan,Texas,48309,66,2 +2020-04-10,McLennan,Texas,48309,68,2 +2020-04-11,McLennan,Texas,48309,69,2 +2020-04-12,McLennan,Texas,48309,71,2 +2020-04-13,McLennan,Texas,48309,72,3 +2020-04-14,McLennan,Texas,48309,74,3 +2020-04-15,McLennan,Texas,48309,74,4 +2020-04-16,McLennan,Texas,48309,76,4 +2020-04-17,McLennan,Texas,48309,76,4 +2020-04-18,McLennan,Texas,48309,76,4 +2020-04-19,McLennan,Texas,48309,76,4 +2020-04-20,McLennan,Texas,48309,77,4 +2020-04-21,McLennan,Texas,48309,78,4 +2020-04-22,McLennan,Texas,48309,81,4 +2020-04-23,McLennan,Texas,48309,81,4 +2020-04-24,McLennan,Texas,48309,81,4 +2020-04-25,McLennan,Texas,48309,81,4 +2020-04-26,McLennan,Texas,48309,82,4 +2020-04-27,McLennan,Texas,48309,87,4 +2020-04-28,McLennan,Texas,48309,87,4 +2020-04-29,McLennan,Texas,48309,88,4 +2020-04-30,McLennan,Texas,48309,89,4 +2020-05-01,McLennan,Texas,48309,91,4 +2020-05-02,McLennan,Texas,48309,91,4 +2020-05-03,McLennan,Texas,48309,91,4 +2020-05-04,McLennan,Texas,48309,91,4 +2020-05-05,McLennan,Texas,48309,92,4 +2020-05-06,McLennan,Texas,48309,92,4 +2020-05-07,McLennan,Texas,48309,94,4 +2020-05-08,McLennan,Texas,48309,94,4 +2020-05-09,McLennan,Texas,48309,94,4 +2020-05-10,McLennan,Texas,48309,94,4 +2020-05-11,McLennan,Texas,48309,94,4 +2020-05-12,McLennan,Texas,48309,96,4 +2020-05-13,McLennan,Texas,48309,96,4 +2020-05-14,McLennan,Texas,48309,96,4 +2020-05-15,McLennan,Texas,48309,97,4 +2020-05-16,McLennan,Texas,48309,97,4 +2020-05-17,McLennan,Texas,48309,98,4 +2020-05-18,McLennan,Texas,48309,98,4 +2020-05-19,McLennan,Texas,48309,98,4 +2020-05-20,McLennan,Texas,48309,102,4 +2020-05-21,McLennan,Texas,48309,106,4 +2020-05-22,McLennan,Texas,48309,107,4 +2020-05-23,McLennan,Texas,48309,107,4 +2020-05-24,McLennan,Texas,48309,107,4 +2020-05-25,McLennan,Texas,48309,107,4 +2020-05-26,McLennan,Texas,48309,112,4 +2020-05-27,McLennan,Texas,48309,113,4 +2020-05-28,McLennan,Texas,48309,117,4 +2020-05-29,McLennan,Texas,48309,118,4 +2020-05-30,McLennan,Texas,48309,118,4 +2020-05-31,McLennan,Texas,48309,118,4 +2020-06-01,McLennan,Texas,48309,120,4 +2020-06-02,McLennan,Texas,48309,121,4 +2020-06-03,McLennan,Texas,48309,123,4 +2020-06-04,McLennan,Texas,48309,125,4 +2020-06-05,McLennan,Texas,48309,127,4 +2020-06-06,McLennan,Texas,48309,129,4 +2020-06-07,McLennan,Texas,48309,129,4 +2020-06-08,McLennan,Texas,48309,132,4 +2020-06-09,McLennan,Texas,48309,138,4 +2020-06-10,McLennan,Texas,48309,141,4 +2020-06-11,McLennan,Texas,48309,150,4 +2020-06-12,McLennan,Texas,48309,153,4 +2020-06-13,McLennan,Texas,48309,158,4 +2020-06-14,McLennan,Texas,48309,163,4 +2020-06-15,McLennan,Texas,48309,163,4 +2020-06-16,McLennan,Texas,48309,196,4 +2020-06-17,McLennan,Texas,48309,222,4 +2020-06-18,McLennan,Texas,48309,245,5 +2020-06-19,McLennan,Texas,48309,262,5 +2020-06-20,McLennan,Texas,48309,303,5 +2020-06-21,McLennan,Texas,48309,354,5 +2020-06-22,McLennan,Texas,48309,371,5 +2020-06-23,McLennan,Texas,48309,421,5 +2020-06-24,McLennan,Texas,48309,473,6 +2020-06-25,McLennan,Texas,48309,552,6 +2020-06-26,McLennan,Texas,48309,624,6 +2020-06-27,McLennan,Texas,48309,697,6 +2020-06-28,McLennan,Texas,48309,744,6 +2020-06-29,McLennan,Texas,48309,795,8 +2020-06-30,McLennan,Texas,48309,957,9 +2020-07-01,McLennan,Texas,48309,1068,9 +2020-07-02,McLennan,Texas,48309,1292,9 +2020-07-03,McLennan,Texas,48309,1563,9 +2020-07-04,McLennan,Texas,48309,1636,11 +2020-07-05,McLennan,Texas,48309,1636,11 +2020-07-06,McLennan,Texas,48309,1798,13 +2020-07-07,McLennan,Texas,48309,2044,13 +2020-07-08,McLennan,Texas,48309,2283,14 +2020-07-09,McLennan,Texas,48309,2438,15 +2020-04-09,Madison,Texas,48313,1,0 +2020-04-10,Madison,Texas,48313,1,0 +2020-04-11,Madison,Texas,48313,1,0 +2020-04-12,Madison,Texas,48313,1,0 +2020-04-13,Madison,Texas,48313,1,0 +2020-04-14,Madison,Texas,48313,1,0 +2020-04-15,Madison,Texas,48313,1,0 +2020-04-16,Madison,Texas,48313,1,0 +2020-04-17,Madison,Texas,48313,1,0 +2020-04-18,Madison,Texas,48313,2,0 +2020-04-19,Madison,Texas,48313,2,0 +2020-04-20,Madison,Texas,48313,2,0 +2020-04-21,Madison,Texas,48313,2,0 +2020-04-22,Madison,Texas,48313,2,0 +2020-04-23,Madison,Texas,48313,2,0 +2020-04-24,Madison,Texas,48313,2,0 +2020-04-25,Madison,Texas,48313,2,0 +2020-04-26,Madison,Texas,48313,2,0 +2020-04-27,Madison,Texas,48313,2,0 +2020-04-28,Madison,Texas,48313,2,0 +2020-04-29,Madison,Texas,48313,2,0 +2020-04-30,Madison,Texas,48313,2,0 +2020-05-01,Madison,Texas,48313,2,0 +2020-05-02,Madison,Texas,48313,2,0 +2020-05-03,Madison,Texas,48313,2,0 +2020-05-04,Madison,Texas,48313,2,0 +2020-05-05,Madison,Texas,48313,2,0 +2020-05-06,Madison,Texas,48313,2,0 +2020-05-07,Madison,Texas,48313,2,0 +2020-05-08,Madison,Texas,48313,3,0 +2020-05-09,Madison,Texas,48313,3,0 +2020-05-10,Madison,Texas,48313,3,0 +2020-05-11,Madison,Texas,48313,3,0 +2020-05-12,Madison,Texas,48313,3,0 +2020-05-13,Madison,Texas,48313,3,0 +2020-05-14,Madison,Texas,48313,4,0 +2020-05-15,Madison,Texas,48313,6,0 +2020-05-16,Madison,Texas,48313,8,0 +2020-05-17,Madison,Texas,48313,8,0 +2020-05-18,Madison,Texas,48313,8,0 +2020-05-19,Madison,Texas,48313,8,0 +2020-05-20,Madison,Texas,48313,8,0 +2020-05-21,Madison,Texas,48313,8,0 +2020-05-22,Madison,Texas,48313,8,0 +2020-05-23,Madison,Texas,48313,8,0 +2020-05-24,Madison,Texas,48313,8,0 +2020-05-25,Madison,Texas,48313,8,0 +2020-05-26,Madison,Texas,48313,8,0 +2020-05-27,Madison,Texas,48313,8,0 +2020-05-28,Madison,Texas,48313,8,0 +2020-05-29,Madison,Texas,48313,8,0 +2020-05-30,Madison,Texas,48313,8,0 +2020-05-31,Madison,Texas,48313,8,0 +2020-06-01,Madison,Texas,48313,8,0 +2020-06-02,Madison,Texas,48313,8,0 +2020-06-03,Madison,Texas,48313,9,0 +2020-06-04,Madison,Texas,48313,9,0 +2020-06-05,Madison,Texas,48313,9,0 +2020-06-06,Madison,Texas,48313,10,0 +2020-06-07,Madison,Texas,48313,10,0 +2020-06-08,Madison,Texas,48313,10,0 +2020-06-09,Madison,Texas,48313,16,0 +2020-06-10,Madison,Texas,48313,17,0 +2020-06-11,Madison,Texas,48313,19,0 +2020-06-12,Madison,Texas,48313,19,0 +2020-06-13,Madison,Texas,48313,20,0 +2020-06-14,Madison,Texas,48313,20,0 +2020-06-15,Madison,Texas,48313,20,0 +2020-06-16,Madison,Texas,48313,22,0 +2020-06-17,Madison,Texas,48313,23,0 +2020-06-18,Madison,Texas,48313,24,0 +2020-06-19,Madison,Texas,48313,25,0 +2020-06-20,Madison,Texas,48313,26,0 +2020-06-21,Madison,Texas,48313,28,0 +2020-06-22,Madison,Texas,48313,29,0 +2020-06-23,Madison,Texas,48313,28,0 +2020-06-24,Madison,Texas,48313,27,0 +2020-06-25,Madison,Texas,48313,26,0 +2020-06-26,Madison,Texas,48313,27,0 +2020-06-27,Madison,Texas,48313,28,0 +2020-06-28,Madison,Texas,48313,30,0 +2020-06-29,Madison,Texas,48313,29,0 +2020-06-30,Madison,Texas,48313,30,0 +2020-07-01,Madison,Texas,48313,33,0 +2020-07-02,Madison,Texas,48313,36,0 +2020-07-03,Madison,Texas,48313,38,0 +2020-07-04,Madison,Texas,48313,45,0 +2020-07-05,Madison,Texas,48313,45,0 +2020-07-06,Madison,Texas,48313,45,0 +2020-07-07,Madison,Texas,48313,45,0 +2020-07-08,Madison,Texas,48313,75,0 +2020-07-09,Madison,Texas,48313,96,0 +2020-04-16,Marion,Texas,48315,3,0 +2020-04-17,Marion,Texas,48315,3,0 +2020-04-18,Marion,Texas,48315,3,0 +2020-04-19,Marion,Texas,48315,3,0 +2020-04-20,Marion,Texas,48315,3,0 +2020-04-21,Marion,Texas,48315,6,0 +2020-04-22,Marion,Texas,48315,6,0 +2020-04-23,Marion,Texas,48315,6,0 +2020-04-24,Marion,Texas,48315,6,0 +2020-04-25,Marion,Texas,48315,6,0 +2020-04-26,Marion,Texas,48315,7,0 +2020-04-27,Marion,Texas,48315,9,0 +2020-04-28,Marion,Texas,48315,9,0 +2020-04-29,Marion,Texas,48315,9,0 +2020-04-30,Marion,Texas,48315,13,0 +2020-05-01,Marion,Texas,48315,14,0 +2020-05-02,Marion,Texas,48315,14,0 +2020-05-03,Marion,Texas,48315,15,0 +2020-05-04,Marion,Texas,48315,15,0 +2020-05-05,Marion,Texas,48315,15,0 +2020-05-06,Marion,Texas,48315,15,0 +2020-05-07,Marion,Texas,48315,15,0 +2020-05-08,Marion,Texas,48315,16,0 +2020-05-09,Marion,Texas,48315,16,0 +2020-05-10,Marion,Texas,48315,16,0 +2020-05-11,Marion,Texas,48315,16,0 +2020-05-12,Marion,Texas,48315,16,0 +2020-05-13,Marion,Texas,48315,16,0 +2020-05-14,Marion,Texas,48315,16,0 +2020-05-15,Marion,Texas,48315,16,0 +2020-05-16,Marion,Texas,48315,16,0 +2020-05-17,Marion,Texas,48315,16,0 +2020-05-18,Marion,Texas,48315,16,0 +2020-05-19,Marion,Texas,48315,16,0 +2020-05-20,Marion,Texas,48315,16,0 +2020-05-21,Marion,Texas,48315,16,0 +2020-05-22,Marion,Texas,48315,16,0 +2020-05-23,Marion,Texas,48315,15,0 +2020-05-24,Marion,Texas,48315,15,0 +2020-05-25,Marion,Texas,48315,15,0 +2020-05-26,Marion,Texas,48315,15,0 +2020-05-27,Marion,Texas,48315,16,1 +2020-05-28,Marion,Texas,48315,16,1 +2020-05-29,Marion,Texas,48315,16,1 +2020-05-30,Marion,Texas,48315,16,1 +2020-05-31,Marion,Texas,48315,16,1 +2020-06-01,Marion,Texas,48315,16,1 +2020-06-02,Marion,Texas,48315,16,1 +2020-06-03,Marion,Texas,48315,17,1 +2020-06-04,Marion,Texas,48315,17,1 +2020-06-05,Marion,Texas,48315,17,1 +2020-06-06,Marion,Texas,48315,17,1 +2020-06-07,Marion,Texas,48315,17,1 +2020-06-08,Marion,Texas,48315,17,1 +2020-06-09,Marion,Texas,48315,18,1 +2020-06-10,Marion,Texas,48315,18,1 +2020-06-11,Marion,Texas,48315,18,1 +2020-06-12,Marion,Texas,48315,19,1 +2020-06-13,Marion,Texas,48315,19,1 +2020-06-14,Marion,Texas,48315,19,1 +2020-06-15,Marion,Texas,48315,21,1 +2020-06-16,Marion,Texas,48315,21,1 +2020-06-17,Marion,Texas,48315,21,1 +2020-06-18,Marion,Texas,48315,21,1 +2020-06-19,Marion,Texas,48315,21,1 +2020-06-20,Marion,Texas,48315,21,1 +2020-06-21,Marion,Texas,48315,21,1 +2020-06-22,Marion,Texas,48315,21,1 +2020-06-23,Marion,Texas,48315,21,1 +2020-06-24,Marion,Texas,48315,23,1 +2020-06-25,Marion,Texas,48315,23,1 +2020-06-26,Marion,Texas,48315,25,1 +2020-06-27,Marion,Texas,48315,26,1 +2020-06-28,Marion,Texas,48315,26,1 +2020-06-29,Marion,Texas,48315,26,1 +2020-06-30,Marion,Texas,48315,26,1 +2020-07-01,Marion,Texas,48315,28,1 +2020-07-02,Marion,Texas,48315,28,1 +2020-07-03,Marion,Texas,48315,28,1 +2020-07-04,Marion,Texas,48315,28,1 +2020-07-05,Marion,Texas,48315,29,1 +2020-07-06,Marion,Texas,48315,29,1 +2020-07-07,Marion,Texas,48315,34,1 +2020-07-08,Marion,Texas,48315,37,1 +2020-07-09,Marion,Texas,48315,37,1 +2020-03-26,Martin,Texas,48317,1,0 +2020-03-27,Martin,Texas,48317,1,0 +2020-03-28,Martin,Texas,48317,1,0 +2020-03-29,Martin,Texas,48317,1,0 +2020-03-30,Martin,Texas,48317,1,0 +2020-03-31,Martin,Texas,48317,1,0 +2020-04-01,Martin,Texas,48317,1,0 +2020-04-02,Martin,Texas,48317,1,0 +2020-04-03,Martin,Texas,48317,1,0 +2020-04-04,Martin,Texas,48317,1,0 +2020-04-05,Martin,Texas,48317,1,0 +2020-04-06,Martin,Texas,48317,1,0 +2020-04-07,Martin,Texas,48317,2,0 +2020-04-08,Martin,Texas,48317,2,0 +2020-04-09,Martin,Texas,48317,2,0 +2020-04-10,Martin,Texas,48317,2,0 +2020-04-11,Martin,Texas,48317,2,0 +2020-04-12,Martin,Texas,48317,2,0 +2020-04-13,Martin,Texas,48317,2,0 +2020-04-14,Martin,Texas,48317,2,0 +2020-04-15,Martin,Texas,48317,2,0 +2020-04-16,Martin,Texas,48317,2,0 +2020-04-17,Martin,Texas,48317,2,0 +2020-04-18,Martin,Texas,48317,2,0 +2020-04-19,Martin,Texas,48317,2,0 +2020-04-20,Martin,Texas,48317,2,0 +2020-04-21,Martin,Texas,48317,2,0 +2020-04-22,Martin,Texas,48317,2,0 +2020-04-23,Martin,Texas,48317,2,0 +2020-04-24,Martin,Texas,48317,2,0 +2020-04-25,Martin,Texas,48317,2,0 +2020-04-26,Martin,Texas,48317,2,0 +2020-04-27,Martin,Texas,48317,2,0 +2020-04-28,Martin,Texas,48317,2,0 +2020-04-29,Martin,Texas,48317,2,0 +2020-04-30,Martin,Texas,48317,2,0 +2020-05-01,Martin,Texas,48317,2,0 +2020-05-02,Martin,Texas,48317,2,0 +2020-05-03,Martin,Texas,48317,2,0 +2020-05-04,Martin,Texas,48317,2,0 +2020-05-05,Martin,Texas,48317,3,1 +2020-05-06,Martin,Texas,48317,3,1 +2020-05-07,Martin,Texas,48317,3,1 +2020-05-08,Martin,Texas,48317,3,1 +2020-05-09,Martin,Texas,48317,3,1 +2020-05-10,Martin,Texas,48317,3,1 +2020-05-11,Martin,Texas,48317,3,1 +2020-05-12,Martin,Texas,48317,3,1 +2020-05-13,Martin,Texas,48317,3,1 +2020-05-14,Martin,Texas,48317,3,1 +2020-05-15,Martin,Texas,48317,3,1 +2020-05-16,Martin,Texas,48317,3,1 +2020-05-17,Martin,Texas,48317,3,1 +2020-05-18,Martin,Texas,48317,3,1 +2020-05-19,Martin,Texas,48317,3,1 +2020-05-20,Martin,Texas,48317,3,1 +2020-05-21,Martin,Texas,48317,3,1 +2020-05-22,Martin,Texas,48317,3,1 +2020-05-23,Martin,Texas,48317,3,1 +2020-05-24,Martin,Texas,48317,3,1 +2020-05-25,Martin,Texas,48317,3,1 +2020-05-26,Martin,Texas,48317,3,1 +2020-05-27,Martin,Texas,48317,3,1 +2020-05-28,Martin,Texas,48317,3,1 +2020-05-29,Martin,Texas,48317,3,1 +2020-05-30,Martin,Texas,48317,3,1 +2020-05-31,Martin,Texas,48317,3,1 +2020-06-01,Martin,Texas,48317,3,1 +2020-06-02,Martin,Texas,48317,3,1 +2020-06-03,Martin,Texas,48317,3,1 +2020-06-04,Martin,Texas,48317,3,1 +2020-06-05,Martin,Texas,48317,3,1 +2020-06-06,Martin,Texas,48317,3,1 +2020-06-07,Martin,Texas,48317,3,1 +2020-06-08,Martin,Texas,48317,3,1 +2020-06-09,Martin,Texas,48317,3,1 +2020-06-10,Martin,Texas,48317,3,1 +2020-06-11,Martin,Texas,48317,3,1 +2020-06-12,Martin,Texas,48317,3,1 +2020-06-13,Martin,Texas,48317,3,1 +2020-06-14,Martin,Texas,48317,3,1 +2020-06-15,Martin,Texas,48317,4,1 +2020-06-16,Martin,Texas,48317,4,1 +2020-06-17,Martin,Texas,48317,4,1 +2020-06-18,Martin,Texas,48317,4,1 +2020-06-19,Martin,Texas,48317,5,1 +2020-06-20,Martin,Texas,48317,6,1 +2020-06-21,Martin,Texas,48317,6,1 +2020-06-22,Martin,Texas,48317,7,1 +2020-06-23,Martin,Texas,48317,7,1 +2020-06-24,Martin,Texas,48317,8,1 +2020-06-25,Martin,Texas,48317,9,1 +2020-06-26,Martin,Texas,48317,9,1 +2020-06-27,Martin,Texas,48317,11,1 +2020-06-28,Martin,Texas,48317,11,1 +2020-06-29,Martin,Texas,48317,14,1 +2020-06-30,Martin,Texas,48317,16,1 +2020-07-01,Martin,Texas,48317,17,1 +2020-07-02,Martin,Texas,48317,17,1 +2020-07-03,Martin,Texas,48317,17,1 +2020-07-04,Martin,Texas,48317,18,1 +2020-07-05,Martin,Texas,48317,18,1 +2020-07-06,Martin,Texas,48317,18,1 +2020-07-07,Martin,Texas,48317,19,1 +2020-07-08,Martin,Texas,48317,21,1 +2020-07-09,Martin,Texas,48317,22,1 +2020-04-04,Mason,Texas,48319,1,0 +2020-04-05,Mason,Texas,48319,1,0 +2020-04-06,Mason,Texas,48319,1,0 +2020-04-07,Mason,Texas,48319,1,0 +2020-04-08,Mason,Texas,48319,1,0 +2020-04-09,Mason,Texas,48319,1,0 +2020-04-10,Mason,Texas,48319,1,0 +2020-04-11,Mason,Texas,48319,1,0 +2020-04-12,Mason,Texas,48319,1,0 +2020-04-13,Mason,Texas,48319,1,0 +2020-04-14,Mason,Texas,48319,1,0 +2020-04-15,Mason,Texas,48319,1,0 +2020-04-16,Mason,Texas,48319,1,0 +2020-04-17,Mason,Texas,48319,1,0 +2020-04-18,Mason,Texas,48319,1,0 +2020-04-19,Mason,Texas,48319,1,0 +2020-04-20,Mason,Texas,48319,1,0 +2020-04-21,Mason,Texas,48319,1,0 +2020-04-22,Mason,Texas,48319,1,0 +2020-04-23,Mason,Texas,48319,1,0 +2020-04-24,Mason,Texas,48319,1,0 +2020-04-25,Mason,Texas,48319,1,0 +2020-04-26,Mason,Texas,48319,1,0 +2020-04-27,Mason,Texas,48319,5,0 +2020-04-28,Mason,Texas,48319,5,0 +2020-04-29,Mason,Texas,48319,15,0 +2020-04-30,Mason,Texas,48319,15,0 +2020-05-01,Mason,Texas,48319,21,0 +2020-05-02,Mason,Texas,48319,24,0 +2020-05-03,Mason,Texas,48319,24,0 +2020-05-04,Mason,Texas,48319,24,0 +2020-05-05,Mason,Texas,48319,26,0 +2020-05-06,Mason,Texas,48319,27,0 +2020-05-07,Mason,Texas,48319,28,0 +2020-05-08,Mason,Texas,48319,28,0 +2020-05-09,Mason,Texas,48319,28,0 +2020-05-10,Mason,Texas,48319,28,0 +2020-05-11,Mason,Texas,48319,28,0 +2020-05-12,Mason,Texas,48319,28,0 +2020-05-13,Mason,Texas,48319,28,0 +2020-05-14,Mason,Texas,48319,28,0 +2020-05-15,Mason,Texas,48319,28,0 +2020-05-16,Mason,Texas,48319,31,0 +2020-05-17,Mason,Texas,48319,31,0 +2020-05-18,Mason,Texas,48319,31,0 +2020-05-19,Mason,Texas,48319,31,0 +2020-05-20,Mason,Texas,48319,31,0 +2020-05-21,Mason,Texas,48319,31,0 +2020-05-22,Mason,Texas,48319,31,0 +2020-05-23,Mason,Texas,48319,31,0 +2020-05-24,Mason,Texas,48319,31,0 +2020-05-25,Mason,Texas,48319,31,0 +2020-05-26,Mason,Texas,48319,31,0 +2020-05-27,Mason,Texas,48319,31,0 +2020-05-28,Mason,Texas,48319,31,0 +2020-05-29,Mason,Texas,48319,31,0 +2020-05-30,Mason,Texas,48319,32,0 +2020-05-31,Mason,Texas,48319,32,0 +2020-06-01,Mason,Texas,48319,32,0 +2020-06-02,Mason,Texas,48319,32,0 +2020-06-03,Mason,Texas,48319,32,0 +2020-06-04,Mason,Texas,48319,32,0 +2020-06-05,Mason,Texas,48319,32,0 +2020-06-06,Mason,Texas,48319,32,0 +2020-06-07,Mason,Texas,48319,32,0 +2020-06-08,Mason,Texas,48319,32,0 +2020-06-09,Mason,Texas,48319,32,0 +2020-06-10,Mason,Texas,48319,32,0 +2020-06-11,Mason,Texas,48319,33,0 +2020-06-12,Mason,Texas,48319,33,0 +2020-06-13,Mason,Texas,48319,33,0 +2020-06-14,Mason,Texas,48319,33,0 +2020-06-15,Mason,Texas,48319,33,0 +2020-06-16,Mason,Texas,48319,33,0 +2020-06-17,Mason,Texas,48319,33,0 +2020-06-18,Mason,Texas,48319,33,0 +2020-06-19,Mason,Texas,48319,33,0 +2020-06-20,Mason,Texas,48319,33,0 +2020-06-21,Mason,Texas,48319,33,0 +2020-06-22,Mason,Texas,48319,33,0 +2020-06-23,Mason,Texas,48319,33,0 +2020-06-24,Mason,Texas,48319,33,0 +2020-06-25,Mason,Texas,48319,33,0 +2020-06-26,Mason,Texas,48319,33,0 +2020-06-27,Mason,Texas,48319,33,0 +2020-06-28,Mason,Texas,48319,33,0 +2020-06-29,Mason,Texas,48319,33,0 +2020-06-30,Mason,Texas,48319,33,0 +2020-07-01,Mason,Texas,48319,34,0 +2020-07-02,Mason,Texas,48319,34,0 +2020-07-03,Mason,Texas,48319,34,0 +2020-07-04,Mason,Texas,48319,34,0 +2020-07-05,Mason,Texas,48319,34,0 +2020-07-06,Mason,Texas,48319,34,0 +2020-07-07,Mason,Texas,48319,35,0 +2020-07-08,Mason,Texas,48319,35,0 +2020-07-09,Mason,Texas,48319,35,0 +2020-03-16,Matagorda,Texas,48321,2,1 +2020-03-17,Matagorda,Texas,48321,2,1 +2020-03-18,Matagorda,Texas,48321,2,1 +2020-03-19,Matagorda,Texas,48321,3,1 +2020-03-20,Matagorda,Texas,48321,3,1 +2020-03-21,Matagorda,Texas,48321,4,1 +2020-03-22,Matagorda,Texas,48321,4,1 +2020-03-23,Matagorda,Texas,48321,4,1 +2020-03-24,Matagorda,Texas,48321,4,1 +2020-03-25,Matagorda,Texas,48321,6,1 +2020-03-26,Matagorda,Texas,48321,9,1 +2020-03-27,Matagorda,Texas,48321,9,1 +2020-03-28,Matagorda,Texas,48321,10,1 +2020-03-29,Matagorda,Texas,48321,12,1 +2020-03-30,Matagorda,Texas,48321,13,1 +2020-03-31,Matagorda,Texas,48321,27,2 +2020-04-01,Matagorda,Texas,48321,29,2 +2020-04-02,Matagorda,Texas,48321,32,2 +2020-04-03,Matagorda,Texas,48321,36,2 +2020-04-04,Matagorda,Texas,48321,39,2 +2020-04-05,Matagorda,Texas,48321,41,3 +2020-04-06,Matagorda,Texas,48321,42,3 +2020-04-07,Matagorda,Texas,48321,42,3 +2020-04-08,Matagorda,Texas,48321,44,3 +2020-04-09,Matagorda,Texas,48321,45,3 +2020-04-10,Matagorda,Texas,48321,49,3 +2020-04-11,Matagorda,Texas,48321,49,3 +2020-04-12,Matagorda,Texas,48321,49,3 +2020-04-13,Matagorda,Texas,48321,50,3 +2020-04-14,Matagorda,Texas,48321,51,3 +2020-04-15,Matagorda,Texas,48321,51,3 +2020-04-16,Matagorda,Texas,48321,51,3 +2020-04-17,Matagorda,Texas,48321,51,3 +2020-04-18,Matagorda,Texas,48321,51,3 +2020-04-19,Matagorda,Texas,48321,54,3 +2020-04-20,Matagorda,Texas,48321,55,3 +2020-04-21,Matagorda,Texas,48321,56,3 +2020-04-22,Matagorda,Texas,48321,57,3 +2020-04-23,Matagorda,Texas,48321,58,3 +2020-04-24,Matagorda,Texas,48321,59,3 +2020-04-25,Matagorda,Texas,48321,61,3 +2020-04-26,Matagorda,Texas,48321,63,3 +2020-04-27,Matagorda,Texas,48321,63,3 +2020-04-28,Matagorda,Texas,48321,63,3 +2020-04-29,Matagorda,Texas,48321,63,3 +2020-04-30,Matagorda,Texas,48321,63,3 +2020-05-01,Matagorda,Texas,48321,64,3 +2020-05-02,Matagorda,Texas,48321,64,3 +2020-05-03,Matagorda,Texas,48321,64,3 +2020-05-04,Matagorda,Texas,48321,64,3 +2020-05-05,Matagorda,Texas,48321,64,3 +2020-05-06,Matagorda,Texas,48321,64,3 +2020-05-07,Matagorda,Texas,48321,64,5 +2020-05-08,Matagorda,Texas,48321,64,5 +2020-05-09,Matagorda,Texas,48321,64,5 +2020-05-10,Matagorda,Texas,48321,64,5 +2020-05-11,Matagorda,Texas,48321,64,5 +2020-05-12,Matagorda,Texas,48321,64,5 +2020-05-13,Matagorda,Texas,48321,64,5 +2020-05-14,Matagorda,Texas,48321,65,5 +2020-05-15,Matagorda,Texas,48321,66,5 +2020-05-16,Matagorda,Texas,48321,66,5 +2020-05-17,Matagorda,Texas,48321,66,5 +2020-05-18,Matagorda,Texas,48321,66,5 +2020-05-19,Matagorda,Texas,48321,66,5 +2020-05-20,Matagorda,Texas,48321,66,5 +2020-05-21,Matagorda,Texas,48321,66,5 +2020-05-22,Matagorda,Texas,48321,67,5 +2020-05-23,Matagorda,Texas,48321,67,5 +2020-05-24,Matagorda,Texas,48321,67,5 +2020-05-25,Matagorda,Texas,48321,68,5 +2020-05-26,Matagorda,Texas,48321,69,5 +2020-05-27,Matagorda,Texas,48321,69,5 +2020-05-28,Matagorda,Texas,48321,70,5 +2020-05-29,Matagorda,Texas,48321,70,5 +2020-05-30,Matagorda,Texas,48321,70,5 +2020-05-31,Matagorda,Texas,48321,70,5 +2020-06-01,Matagorda,Texas,48321,70,5 +2020-06-02,Matagorda,Texas,48321,70,5 +2020-06-03,Matagorda,Texas,48321,71,5 +2020-06-04,Matagorda,Texas,48321,71,5 +2020-06-05,Matagorda,Texas,48321,71,5 +2020-06-06,Matagorda,Texas,48321,71,5 +2020-06-07,Matagorda,Texas,48321,71,5 +2020-06-08,Matagorda,Texas,48321,77,5 +2020-06-09,Matagorda,Texas,48321,77,5 +2020-06-10,Matagorda,Texas,48321,77,5 +2020-06-11,Matagorda,Texas,48321,77,5 +2020-06-12,Matagorda,Texas,48321,77,5 +2020-06-13,Matagorda,Texas,48321,78,5 +2020-06-14,Matagorda,Texas,48321,80,5 +2020-06-15,Matagorda,Texas,48321,81,5 +2020-06-16,Matagorda,Texas,48321,85,5 +2020-06-17,Matagorda,Texas,48321,94,5 +2020-06-18,Matagorda,Texas,48321,96,5 +2020-06-19,Matagorda,Texas,48321,104,5 +2020-06-20,Matagorda,Texas,48321,105,5 +2020-06-21,Matagorda,Texas,48321,109,5 +2020-06-22,Matagorda,Texas,48321,110,5 +2020-06-23,Matagorda,Texas,48321,117,5 +2020-06-24,Matagorda,Texas,48321,131,5 +2020-06-25,Matagorda,Texas,48321,131,5 +2020-06-26,Matagorda,Texas,48321,136,5 +2020-06-27,Matagorda,Texas,48321,149,5 +2020-06-28,Matagorda,Texas,48321,152,5 +2020-06-29,Matagorda,Texas,48321,158,5 +2020-06-30,Matagorda,Texas,48321,172,5 +2020-07-01,Matagorda,Texas,48321,213,5 +2020-07-02,Matagorda,Texas,48321,240,5 +2020-07-03,Matagorda,Texas,48321,261,5 +2020-07-04,Matagorda,Texas,48321,263,5 +2020-07-05,Matagorda,Texas,48321,262,5 +2020-07-06,Matagorda,Texas,48321,266,5 +2020-07-07,Matagorda,Texas,48321,274,5 +2020-07-08,Matagorda,Texas,48321,286,5 +2020-07-09,Matagorda,Texas,48321,295,5 +2020-03-25,Maverick,Texas,48323,1,0 +2020-03-26,Maverick,Texas,48323,1,0 +2020-03-27,Maverick,Texas,48323,1,0 +2020-03-28,Maverick,Texas,48323,1,0 +2020-03-29,Maverick,Texas,48323,1,0 +2020-03-30,Maverick,Texas,48323,1,0 +2020-03-31,Maverick,Texas,48323,1,0 +2020-04-01,Maverick,Texas,48323,1,0 +2020-04-02,Maverick,Texas,48323,3,0 +2020-04-03,Maverick,Texas,48323,4,0 +2020-04-04,Maverick,Texas,48323,4,0 +2020-04-05,Maverick,Texas,48323,7,0 +2020-04-06,Maverick,Texas,48323,7,0 +2020-04-07,Maverick,Texas,48323,7,0 +2020-04-08,Maverick,Texas,48323,7,0 +2020-04-09,Maverick,Texas,48323,7,0 +2020-04-10,Maverick,Texas,48323,9,0 +2020-04-11,Maverick,Texas,48323,9,0 +2020-04-12,Maverick,Texas,48323,9,0 +2020-04-13,Maverick,Texas,48323,9,0 +2020-04-14,Maverick,Texas,48323,10,0 +2020-04-15,Maverick,Texas,48323,10,0 +2020-04-16,Maverick,Texas,48323,10,0 +2020-04-17,Maverick,Texas,48323,12,0 +2020-04-18,Maverick,Texas,48323,12,0 +2020-04-19,Maverick,Texas,48323,12,0 +2020-04-20,Maverick,Texas,48323,12,0 +2020-04-21,Maverick,Texas,48323,15,0 +2020-04-22,Maverick,Texas,48323,15,0 +2020-04-23,Maverick,Texas,48323,14,0 +2020-04-24,Maverick,Texas,48323,14,0 +2020-04-25,Maverick,Texas,48323,16,0 +2020-04-26,Maverick,Texas,48323,16,0 +2020-04-27,Maverick,Texas,48323,16,0 +2020-04-28,Maverick,Texas,48323,16,0 +2020-04-29,Maverick,Texas,48323,16,0 +2020-04-30,Maverick,Texas,48323,16,0 +2020-05-01,Maverick,Texas,48323,24,0 +2020-05-02,Maverick,Texas,48323,24,0 +2020-05-03,Maverick,Texas,48323,24,0 +2020-05-04,Maverick,Texas,48323,24,0 +2020-05-05,Maverick,Texas,48323,26,0 +2020-05-06,Maverick,Texas,48323,26,0 +2020-05-07,Maverick,Texas,48323,26,0 +2020-05-08,Maverick,Texas,48323,26,0 +2020-05-09,Maverick,Texas,48323,26,0 +2020-05-10,Maverick,Texas,48323,26,0 +2020-05-11,Maverick,Texas,48323,26,0 +2020-05-12,Maverick,Texas,48323,41,0 +2020-05-13,Maverick,Texas,48323,41,0 +2020-05-14,Maverick,Texas,48323,52,0 +2020-05-15,Maverick,Texas,48323,57,0 +2020-05-16,Maverick,Texas,48323,57,0 +2020-05-17,Maverick,Texas,48323,74,0 +2020-05-18,Maverick,Texas,48323,74,0 +2020-05-19,Maverick,Texas,48323,89,0 +2020-05-20,Maverick,Texas,48323,93,1 +2020-05-21,Maverick,Texas,48323,94,1 +2020-05-22,Maverick,Texas,48323,94,1 +2020-05-23,Maverick,Texas,48323,97,1 +2020-05-24,Maverick,Texas,48323,97,1 +2020-05-25,Maverick,Texas,48323,97,1 +2020-05-26,Maverick,Texas,48323,97,1 +2020-05-27,Maverick,Texas,48323,97,1 +2020-05-28,Maverick,Texas,48323,97,1 +2020-05-29,Maverick,Texas,48323,109,1 +2020-05-30,Maverick,Texas,48323,116,1 +2020-05-31,Maverick,Texas,48323,116,1 +2020-06-01,Maverick,Texas,48323,116,1 +2020-06-02,Maverick,Texas,48323,120,1 +2020-06-03,Maverick,Texas,48323,120,1 +2020-06-04,Maverick,Texas,48323,129,1 +2020-06-05,Maverick,Texas,48323,129,1 +2020-06-06,Maverick,Texas,48323,133,2 +2020-06-07,Maverick,Texas,48323,133,2 +2020-06-08,Maverick,Texas,48323,133,2 +2020-06-09,Maverick,Texas,48323,133,2 +2020-06-10,Maverick,Texas,48323,142,2 +2020-06-11,Maverick,Texas,48323,149,2 +2020-06-12,Maverick,Texas,48323,149,2 +2020-06-13,Maverick,Texas,48323,160,2 +2020-06-14,Maverick,Texas,48323,160,2 +2020-06-15,Maverick,Texas,48323,160,2 +2020-06-16,Maverick,Texas,48323,160,2 +2020-06-17,Maverick,Texas,48323,199,2 +2020-06-18,Maverick,Texas,48323,200,2 +2020-06-19,Maverick,Texas,48323,206,2 +2020-06-20,Maverick,Texas,48323,214,2 +2020-06-21,Maverick,Texas,48323,214,2 +2020-06-22,Maverick,Texas,48323,214,2 +2020-06-23,Maverick,Texas,48323,214,2 +2020-06-24,Maverick,Texas,48323,250,2 +2020-06-25,Maverick,Texas,48323,282,2 +2020-06-26,Maverick,Texas,48323,290,2 +2020-06-27,Maverick,Texas,48323,311,2 +2020-06-28,Maverick,Texas,48323,311,2 +2020-06-29,Maverick,Texas,48323,311,2 +2020-06-30,Maverick,Texas,48323,311,2 +2020-07-01,Maverick,Texas,48323,434,3 +2020-07-02,Maverick,Texas,48323,434,3 +2020-07-03,Maverick,Texas,48323,455,5 +2020-07-04,Maverick,Texas,48323,519,5 +2020-07-05,Maverick,Texas,48323,519,5 +2020-07-06,Maverick,Texas,48323,519,5 +2020-07-07,Maverick,Texas,48323,550,5 +2020-07-08,Maverick,Texas,48323,550,5 +2020-07-09,Maverick,Texas,48323,677,6 +2020-03-18,Medina,Texas,48325,1,0 +2020-03-19,Medina,Texas,48325,1,0 +2020-03-20,Medina,Texas,48325,1,0 +2020-03-21,Medina,Texas,48325,1,0 +2020-03-22,Medina,Texas,48325,1,0 +2020-03-23,Medina,Texas,48325,1,0 +2020-03-24,Medina,Texas,48325,1,0 +2020-03-25,Medina,Texas,48325,1,0 +2020-03-26,Medina,Texas,48325,1,0 +2020-03-27,Medina,Texas,48325,3,0 +2020-03-28,Medina,Texas,48325,3,0 +2020-03-29,Medina,Texas,48325,3,0 +2020-03-30,Medina,Texas,48325,3,0 +2020-03-31,Medina,Texas,48325,3,0 +2020-04-01,Medina,Texas,48325,3,0 +2020-04-02,Medina,Texas,48325,3,0 +2020-04-03,Medina,Texas,48325,3,0 +2020-04-04,Medina,Texas,48325,3,0 +2020-04-05,Medina,Texas,48325,4,0 +2020-04-06,Medina,Texas,48325,6,0 +2020-04-07,Medina,Texas,48325,6,0 +2020-04-08,Medina,Texas,48325,7,0 +2020-04-09,Medina,Texas,48325,9,1 +2020-04-10,Medina,Texas,48325,10,1 +2020-04-11,Medina,Texas,48325,12,1 +2020-04-12,Medina,Texas,48325,13,1 +2020-04-13,Medina,Texas,48325,13,1 +2020-04-14,Medina,Texas,48325,13,1 +2020-04-15,Medina,Texas,48325,13,1 +2020-04-16,Medina,Texas,48325,15,2 +2020-04-17,Medina,Texas,48325,15,2 +2020-04-18,Medina,Texas,48325,15,2 +2020-04-19,Medina,Texas,48325,15,2 +2020-04-20,Medina,Texas,48325,15,2 +2020-04-21,Medina,Texas,48325,15,2 +2020-04-22,Medina,Texas,48325,17,2 +2020-04-23,Medina,Texas,48325,17,2 +2020-04-24,Medina,Texas,48325,17,2 +2020-04-25,Medina,Texas,48325,19,2 +2020-04-26,Medina,Texas,48325,19,2 +2020-04-27,Medina,Texas,48325,19,2 +2020-04-28,Medina,Texas,48325,19,2 +2020-04-29,Medina,Texas,48325,19,2 +2020-04-30,Medina,Texas,48325,20,2 +2020-05-01,Medina,Texas,48325,20,2 +2020-05-02,Medina,Texas,48325,20,2 +2020-05-03,Medina,Texas,48325,20,2 +2020-05-04,Medina,Texas,48325,20,2 +2020-05-05,Medina,Texas,48325,20,2 +2020-05-06,Medina,Texas,48325,20,2 +2020-05-07,Medina,Texas,48325,21,2 +2020-05-08,Medina,Texas,48325,22,2 +2020-05-09,Medina,Texas,48325,22,2 +2020-05-10,Medina,Texas,48325,31,2 +2020-05-11,Medina,Texas,48325,32,2 +2020-05-12,Medina,Texas,48325,38,2 +2020-05-13,Medina,Texas,48325,45,2 +2020-05-14,Medina,Texas,48325,47,2 +2020-05-15,Medina,Texas,48325,48,2 +2020-05-16,Medina,Texas,48325,49,2 +2020-05-17,Medina,Texas,48325,50,2 +2020-05-18,Medina,Texas,48325,58,2 +2020-05-19,Medina,Texas,48325,59,2 +2020-05-20,Medina,Texas,48325,60,2 +2020-05-21,Medina,Texas,48325,64,2 +2020-05-22,Medina,Texas,48325,64,2 +2020-05-23,Medina,Texas,48325,66,2 +2020-05-24,Medina,Texas,48325,67,2 +2020-05-25,Medina,Texas,48325,67,2 +2020-05-26,Medina,Texas,48325,67,2 +2020-05-27,Medina,Texas,48325,68,2 +2020-05-28,Medina,Texas,48325,69,2 +2020-05-29,Medina,Texas,48325,71,2 +2020-05-30,Medina,Texas,48325,71,2 +2020-05-31,Medina,Texas,48325,73,2 +2020-06-01,Medina,Texas,48325,73,2 +2020-06-02,Medina,Texas,48325,73,2 +2020-06-03,Medina,Texas,48325,74,2 +2020-06-04,Medina,Texas,48325,76,2 +2020-06-05,Medina,Texas,48325,78,2 +2020-06-06,Medina,Texas,48325,216,2 +2020-06-07,Medina,Texas,48325,216,2 +2020-06-08,Medina,Texas,48325,216,2 +2020-06-09,Medina,Texas,48325,216,2 +2020-06-10,Medina,Texas,48325,216,2 +2020-06-11,Medina,Texas,48325,218,2 +2020-06-12,Medina,Texas,48325,220,2 +2020-06-13,Medina,Texas,48325,221,2 +2020-06-14,Medina,Texas,48325,221,2 +2020-06-15,Medina,Texas,48325,221,2 +2020-06-16,Medina,Texas,48325,221,2 +2020-06-17,Medina,Texas,48325,227,2 +2020-06-18,Medina,Texas,48325,228,2 +2020-06-19,Medina,Texas,48325,244,2 +2020-06-20,Medina,Texas,48325,245,2 +2020-06-21,Medina,Texas,48325,250,2 +2020-06-22,Medina,Texas,48325,250,2 +2020-06-23,Medina,Texas,48325,251,2 +2020-06-24,Medina,Texas,48325,255,2 +2020-06-25,Medina,Texas,48325,255,2 +2020-06-26,Medina,Texas,48325,256,2 +2020-06-27,Medina,Texas,48325,254,2 +2020-06-28,Medina,Texas,48325,254,2 +2020-06-29,Medina,Texas,48325,254,2 +2020-06-30,Medina,Texas,48325,255,2 +2020-07-01,Medina,Texas,48325,278,2 +2020-07-02,Medina,Texas,48325,282,2 +2020-07-03,Medina,Texas,48325,293,2 +2020-07-04,Medina,Texas,48325,295,2 +2020-07-05,Medina,Texas,48325,295,2 +2020-07-06,Medina,Texas,48325,295,2 +2020-07-07,Medina,Texas,48325,327,3 +2020-07-08,Medina,Texas,48325,335,3 +2020-07-09,Medina,Texas,48325,338,3 +2020-06-22,Menard,Texas,48327,1,0 +2020-06-23,Menard,Texas,48327,2,0 +2020-06-24,Menard,Texas,48327,3,0 +2020-06-25,Menard,Texas,48327,3,0 +2020-06-26,Menard,Texas,48327,3,0 +2020-06-27,Menard,Texas,48327,3,0 +2020-06-28,Menard,Texas,48327,3,0 +2020-06-29,Menard,Texas,48327,3,0 +2020-06-30,Menard,Texas,48327,6,0 +2020-07-01,Menard,Texas,48327,6,0 +2020-07-02,Menard,Texas,48327,6,0 +2020-07-03,Menard,Texas,48327,8,0 +2020-07-04,Menard,Texas,48327,8,0 +2020-07-05,Menard,Texas,48327,8,0 +2020-07-06,Menard,Texas,48327,8,0 +2020-07-07,Menard,Texas,48327,12,0 +2020-07-08,Menard,Texas,48327,12,0 +2020-07-09,Menard,Texas,48327,12,0 +2020-03-21,Midland,Texas,48329,1,0 +2020-03-22,Midland,Texas,48329,1,0 +2020-03-23,Midland,Texas,48329,1,0 +2020-03-24,Midland,Texas,48329,1,0 +2020-03-25,Midland,Texas,48329,3,1 +2020-03-26,Midland,Texas,48329,4,1 +2020-03-27,Midland,Texas,48329,6,1 +2020-03-28,Midland,Texas,48329,8,1 +2020-03-29,Midland,Texas,48329,11,1 +2020-03-30,Midland,Texas,48329,13,1 +2020-03-31,Midland,Texas,48329,13,1 +2020-04-01,Midland,Texas,48329,16,1 +2020-04-02,Midland,Texas,48329,16,1 +2020-04-03,Midland,Texas,48329,19,1 +2020-04-04,Midland,Texas,48329,22,1 +2020-04-05,Midland,Texas,48329,24,1 +2020-04-06,Midland,Texas,48329,27,1 +2020-04-07,Midland,Texas,48329,27,1 +2020-04-08,Midland,Texas,48329,30,1 +2020-04-09,Midland,Texas,48329,30,1 +2020-04-10,Midland,Texas,48329,31,1 +2020-04-11,Midland,Texas,48329,31,1 +2020-04-12,Midland,Texas,48329,32,2 +2020-04-13,Midland,Texas,48329,32,2 +2020-04-14,Midland,Texas,48329,35,2 +2020-04-15,Midland,Texas,48329,35,2 +2020-04-16,Midland,Texas,48329,39,2 +2020-04-17,Midland,Texas,48329,42,3 +2020-04-18,Midland,Texas,48329,42,3 +2020-04-19,Midland,Texas,48329,43,3 +2020-04-20,Midland,Texas,48329,64,3 +2020-04-21,Midland,Texas,48329,65,4 +2020-04-22,Midland,Texas,48329,67,4 +2020-04-23,Midland,Texas,48329,69,5 +2020-04-24,Midland,Texas,48329,70,5 +2020-04-25,Midland,Texas,48329,71,5 +2020-04-26,Midland,Texas,48329,73,5 +2020-04-27,Midland,Texas,48329,74,5 +2020-04-28,Midland,Texas,48329,75,6 +2020-04-29,Midland,Texas,48329,76,6 +2020-04-30,Midland,Texas,48329,79,6 +2020-05-01,Midland,Texas,48329,82,6 +2020-05-02,Midland,Texas,48329,82,6 +2020-05-03,Midland,Texas,48329,82,6 +2020-05-04,Midland,Texas,48329,89,8 +2020-05-05,Midland,Texas,48329,91,8 +2020-05-06,Midland,Texas,48329,91,8 +2020-05-07,Midland,Texas,48329,100,10 +2020-05-08,Midland,Texas,48329,100,11 +2020-05-09,Midland,Texas,48329,101,11 +2020-05-10,Midland,Texas,48329,101,11 +2020-05-11,Midland,Texas,48329,101,12 +2020-05-12,Midland,Texas,48329,107,12 +2020-05-13,Midland,Texas,48329,115,12 +2020-05-14,Midland,Texas,48329,116,12 +2020-05-15,Midland,Texas,48329,116,12 +2020-05-16,Midland,Texas,48329,120,12 +2020-05-17,Midland,Texas,48329,120,12 +2020-05-18,Midland,Texas,48329,122,12 +2020-05-19,Midland,Texas,48329,122,12 +2020-05-20,Midland,Texas,48329,123,12 +2020-05-21,Midland,Texas,48329,123,12 +2020-05-22,Midland,Texas,48329,124,12 +2020-05-23,Midland,Texas,48329,124,12 +2020-05-24,Midland,Texas,48329,124,12 +2020-05-25,Midland,Texas,48329,124,12 +2020-05-26,Midland,Texas,48329,125,12 +2020-05-27,Midland,Texas,48329,126,12 +2020-05-28,Midland,Texas,48329,128,12 +2020-05-29,Midland,Texas,48329,128,12 +2020-05-30,Midland,Texas,48329,129,12 +2020-05-31,Midland,Texas,48329,129,12 +2020-06-01,Midland,Texas,48329,132,12 +2020-06-02,Midland,Texas,48329,137,13 +2020-06-03,Midland,Texas,48329,141,13 +2020-06-04,Midland,Texas,48329,143,13 +2020-06-05,Midland,Texas,48329,155,13 +2020-06-06,Midland,Texas,48329,155,13 +2020-06-07,Midland,Texas,48329,155,13 +2020-06-08,Midland,Texas,48329,155,13 +2020-06-09,Midland,Texas,48329,177,13 +2020-06-10,Midland,Texas,48329,180,13 +2020-06-11,Midland,Texas,48329,194,13 +2020-06-12,Midland,Texas,48329,201,13 +2020-06-13,Midland,Texas,48329,201,13 +2020-06-14,Midland,Texas,48329,201,13 +2020-06-15,Midland,Texas,48329,222,13 +2020-06-16,Midland,Texas,48329,222,13 +2020-06-17,Midland,Texas,48329,264,13 +2020-06-18,Midland,Texas,48329,264,13 +2020-06-19,Midland,Texas,48329,322,13 +2020-06-20,Midland,Texas,48329,322,13 +2020-06-21,Midland,Texas,48329,322,13 +2020-06-22,Midland,Texas,48329,417,13 +2020-06-23,Midland,Texas,48329,454,14 +2020-06-24,Midland,Texas,48329,494,14 +2020-06-25,Midland,Texas,48329,494,14 +2020-06-26,Midland,Texas,48329,563,14 +2020-06-27,Midland,Texas,48329,563,14 +2020-06-28,Midland,Texas,48329,563,14 +2020-06-29,Midland,Texas,48329,651,14 +2020-06-30,Midland,Texas,48329,701,15 +2020-07-01,Midland,Texas,48329,734,15 +2020-07-02,Midland,Texas,48329,772,15 +2020-07-03,Midland,Texas,48329,772,15 +2020-07-04,Midland,Texas,48329,772,15 +2020-07-05,Midland,Texas,48329,772,15 +2020-07-06,Midland,Texas,48329,927,17 +2020-07-07,Midland,Texas,48329,976,19 +2020-07-08,Midland,Texas,48329,1020,19 +2020-07-09,Midland,Texas,48329,1070,19 +2020-03-25,Milam,Texas,48331,2,0 +2020-03-26,Milam,Texas,48331,2,0 +2020-03-27,Milam,Texas,48331,2,0 +2020-03-28,Milam,Texas,48331,2,0 +2020-03-29,Milam,Texas,48331,2,0 +2020-03-30,Milam,Texas,48331,2,0 +2020-03-31,Milam,Texas,48331,2,0 +2020-04-01,Milam,Texas,48331,2,0 +2020-04-02,Milam,Texas,48331,2,0 +2020-04-03,Milam,Texas,48331,2,0 +2020-04-04,Milam,Texas,48331,2,0 +2020-04-05,Milam,Texas,48331,3,0 +2020-04-06,Milam,Texas,48331,3,0 +2020-04-07,Milam,Texas,48331,3,0 +2020-04-08,Milam,Texas,48331,7,0 +2020-04-09,Milam,Texas,48331,7,0 +2020-04-10,Milam,Texas,48331,7,0 +2020-04-11,Milam,Texas,48331,7,0 +2020-04-12,Milam,Texas,48331,7,0 +2020-04-13,Milam,Texas,48331,8,0 +2020-04-14,Milam,Texas,48331,8,0 +2020-04-15,Milam,Texas,48331,8,0 +2020-04-16,Milam,Texas,48331,8,0 +2020-04-17,Milam,Texas,48331,9,0 +2020-04-18,Milam,Texas,48331,9,0 +2020-04-19,Milam,Texas,48331,11,0 +2020-04-20,Milam,Texas,48331,12,0 +2020-04-21,Milam,Texas,48331,12,0 +2020-04-22,Milam,Texas,48331,12,0 +2020-04-23,Milam,Texas,48331,13,0 +2020-04-24,Milam,Texas,48331,13,1 +2020-04-25,Milam,Texas,48331,13,1 +2020-04-26,Milam,Texas,48331,13,1 +2020-04-27,Milam,Texas,48331,13,1 +2020-04-28,Milam,Texas,48331,14,1 +2020-04-29,Milam,Texas,48331,14,1 +2020-04-30,Milam,Texas,48331,16,1 +2020-05-01,Milam,Texas,48331,16,1 +2020-05-02,Milam,Texas,48331,16,1 +2020-05-03,Milam,Texas,48331,17,1 +2020-05-04,Milam,Texas,48331,18,1 +2020-05-05,Milam,Texas,48331,18,1 +2020-05-06,Milam,Texas,48331,18,1 +2020-05-07,Milam,Texas,48331,18,1 +2020-05-08,Milam,Texas,48331,18,1 +2020-05-09,Milam,Texas,48331,20,1 +2020-05-10,Milam,Texas,48331,20,1 +2020-05-11,Milam,Texas,48331,20,1 +2020-05-12,Milam,Texas,48331,20,1 +2020-05-13,Milam,Texas,48331,20,1 +2020-05-14,Milam,Texas,48331,22,1 +2020-05-15,Milam,Texas,48331,23,1 +2020-05-16,Milam,Texas,48331,23,1 +2020-05-17,Milam,Texas,48331,24,1 +2020-05-18,Milam,Texas,48331,24,1 +2020-05-19,Milam,Texas,48331,25,1 +2020-05-20,Milam,Texas,48331,26,1 +2020-05-21,Milam,Texas,48331,27,1 +2020-05-22,Milam,Texas,48331,27,1 +2020-05-23,Milam,Texas,48331,28,1 +2020-05-24,Milam,Texas,48331,28,1 +2020-05-25,Milam,Texas,48331,28,1 +2020-05-26,Milam,Texas,48331,28,1 +2020-05-27,Milam,Texas,48331,28,1 +2020-05-28,Milam,Texas,48331,28,1 +2020-05-29,Milam,Texas,48331,28,1 +2020-05-30,Milam,Texas,48331,28,1 +2020-05-31,Milam,Texas,48331,28,1 +2020-06-01,Milam,Texas,48331,28,1 +2020-06-02,Milam,Texas,48331,29,1 +2020-06-03,Milam,Texas,48331,29,1 +2020-06-04,Milam,Texas,48331,29,1 +2020-06-05,Milam,Texas,48331,32,1 +2020-06-06,Milam,Texas,48331,35,1 +2020-06-07,Milam,Texas,48331,35,1 +2020-06-08,Milam,Texas,48331,35,1 +2020-06-09,Milam,Texas,48331,35,1 +2020-06-10,Milam,Texas,48331,37,1 +2020-06-11,Milam,Texas,48331,38,1 +2020-06-12,Milam,Texas,48331,40,1 +2020-06-13,Milam,Texas,48331,42,1 +2020-06-14,Milam,Texas,48331,44,1 +2020-06-15,Milam,Texas,48331,44,1 +2020-06-16,Milam,Texas,48331,44,1 +2020-06-17,Milam,Texas,48331,48,1 +2020-06-18,Milam,Texas,48331,51,1 +2020-06-19,Milam,Texas,48331,56,1 +2020-06-20,Milam,Texas,48331,57,1 +2020-06-21,Milam,Texas,48331,57,1 +2020-06-22,Milam,Texas,48331,57,1 +2020-06-23,Milam,Texas,48331,63,1 +2020-06-24,Milam,Texas,48331,68,1 +2020-06-25,Milam,Texas,48331,73,1 +2020-06-26,Milam,Texas,48331,78,1 +2020-06-27,Milam,Texas,48331,80,1 +2020-06-28,Milam,Texas,48331,80,1 +2020-06-29,Milam,Texas,48331,80,1 +2020-06-30,Milam,Texas,48331,83,1 +2020-07-01,Milam,Texas,48331,88,1 +2020-07-02,Milam,Texas,48331,90,1 +2020-07-03,Milam,Texas,48331,92,1 +2020-07-04,Milam,Texas,48331,92,1 +2020-07-05,Milam,Texas,48331,92,1 +2020-07-06,Milam,Texas,48331,92,1 +2020-07-07,Milam,Texas,48331,112,1 +2020-07-08,Milam,Texas,48331,120,1 +2020-07-09,Milam,Texas,48331,133,1 +2020-05-19,Mills,Texas,48333,1,0 +2020-05-20,Mills,Texas,48333,1,0 +2020-05-21,Mills,Texas,48333,1,0 +2020-05-22,Mills,Texas,48333,1,0 +2020-05-23,Mills,Texas,48333,1,0 +2020-05-24,Mills,Texas,48333,1,0 +2020-05-25,Mills,Texas,48333,1,0 +2020-05-26,Mills,Texas,48333,1,0 +2020-05-27,Mills,Texas,48333,1,0 +2020-05-28,Mills,Texas,48333,1,0 +2020-05-29,Mills,Texas,48333,1,0 +2020-05-30,Mills,Texas,48333,1,0 +2020-05-31,Mills,Texas,48333,1,0 +2020-06-01,Mills,Texas,48333,1,0 +2020-06-02,Mills,Texas,48333,1,0 +2020-06-03,Mills,Texas,48333,1,0 +2020-06-04,Mills,Texas,48333,1,0 +2020-06-05,Mills,Texas,48333,1,0 +2020-06-06,Mills,Texas,48333,1,0 +2020-06-07,Mills,Texas,48333,1,0 +2020-06-08,Mills,Texas,48333,1,0 +2020-06-09,Mills,Texas,48333,1,0 +2020-06-10,Mills,Texas,48333,1,0 +2020-06-11,Mills,Texas,48333,1,0 +2020-06-12,Mills,Texas,48333,1,0 +2020-06-13,Mills,Texas,48333,1,0 +2020-06-14,Mills,Texas,48333,1,0 +2020-06-15,Mills,Texas,48333,1,0 +2020-06-16,Mills,Texas,48333,1,0 +2020-06-17,Mills,Texas,48333,1,0 +2020-06-18,Mills,Texas,48333,1,0 +2020-06-19,Mills,Texas,48333,1,0 +2020-06-20,Mills,Texas,48333,1,0 +2020-06-21,Mills,Texas,48333,1,0 +2020-06-22,Mills,Texas,48333,1,0 +2020-06-23,Mills,Texas,48333,1,0 +2020-06-24,Mills,Texas,48333,1,0 +2020-06-25,Mills,Texas,48333,1,0 +2020-06-26,Mills,Texas,48333,1,0 +2020-06-27,Mills,Texas,48333,1,0 +2020-06-28,Mills,Texas,48333,1,0 +2020-06-29,Mills,Texas,48333,1,0 +2020-06-30,Mills,Texas,48333,1,0 +2020-07-01,Mills,Texas,48333,1,0 +2020-07-02,Mills,Texas,48333,1,0 +2020-07-03,Mills,Texas,48333,1,0 +2020-07-04,Mills,Texas,48333,1,0 +2020-07-05,Mills,Texas,48333,1,0 +2020-07-06,Mills,Texas,48333,1,0 +2020-07-07,Mills,Texas,48333,1,0 +2020-07-08,Mills,Texas,48333,3,0 +2020-07-09,Mills,Texas,48333,6,0 +2020-04-07,Mitchell,Texas,48335,1,0 +2020-04-08,Mitchell,Texas,48335,1,0 +2020-04-09,Mitchell,Texas,48335,1,0 +2020-04-10,Mitchell,Texas,48335,1,0 +2020-04-11,Mitchell,Texas,48335,1,0 +2020-04-12,Mitchell,Texas,48335,1,0 +2020-04-13,Mitchell,Texas,48335,1,0 +2020-04-14,Mitchell,Texas,48335,1,0 +2020-04-15,Mitchell,Texas,48335,1,0 +2020-04-16,Mitchell,Texas,48335,1,0 +2020-04-17,Mitchell,Texas,48335,1,0 +2020-04-18,Mitchell,Texas,48335,1,0 +2020-04-19,Mitchell,Texas,48335,1,0 +2020-04-20,Mitchell,Texas,48335,1,0 +2020-04-21,Mitchell,Texas,48335,1,0 +2020-04-22,Mitchell,Texas,48335,1,0 +2020-04-23,Mitchell,Texas,48335,1,0 +2020-04-24,Mitchell,Texas,48335,1,0 +2020-04-25,Mitchell,Texas,48335,1,0 +2020-04-26,Mitchell,Texas,48335,1,0 +2020-04-27,Mitchell,Texas,48335,1,0 +2020-04-28,Mitchell,Texas,48335,1,0 +2020-04-29,Mitchell,Texas,48335,1,0 +2020-04-30,Mitchell,Texas,48335,1,0 +2020-05-01,Mitchell,Texas,48335,1,0 +2020-05-02,Mitchell,Texas,48335,1,0 +2020-05-03,Mitchell,Texas,48335,1,0 +2020-05-04,Mitchell,Texas,48335,1,0 +2020-05-05,Mitchell,Texas,48335,1,0 +2020-05-06,Mitchell,Texas,48335,1,0 +2020-05-07,Mitchell,Texas,48335,1,0 +2020-05-08,Mitchell,Texas,48335,1,0 +2020-05-09,Mitchell,Texas,48335,1,0 +2020-05-10,Mitchell,Texas,48335,1,0 +2020-05-11,Mitchell,Texas,48335,1,0 +2020-05-12,Mitchell,Texas,48335,1,0 +2020-05-13,Mitchell,Texas,48335,1,0 +2020-05-14,Mitchell,Texas,48335,1,0 +2020-05-15,Mitchell,Texas,48335,1,0 +2020-05-16,Mitchell,Texas,48335,1,0 +2020-05-17,Mitchell,Texas,48335,1,0 +2020-05-18,Mitchell,Texas,48335,1,0 +2020-05-19,Mitchell,Texas,48335,1,0 +2020-05-20,Mitchell,Texas,48335,1,0 +2020-05-21,Mitchell,Texas,48335,1,0 +2020-05-22,Mitchell,Texas,48335,1,0 +2020-05-23,Mitchell,Texas,48335,1,0 +2020-05-24,Mitchell,Texas,48335,1,0 +2020-05-25,Mitchell,Texas,48335,1,0 +2020-05-26,Mitchell,Texas,48335,1,0 +2020-05-27,Mitchell,Texas,48335,1,0 +2020-05-28,Mitchell,Texas,48335,1,0 +2020-05-29,Mitchell,Texas,48335,1,0 +2020-05-30,Mitchell,Texas,48335,1,0 +2020-05-31,Mitchell,Texas,48335,1,0 +2020-06-01,Mitchell,Texas,48335,1,0 +2020-06-02,Mitchell,Texas,48335,1,0 +2020-06-03,Mitchell,Texas,48335,1,0 +2020-06-04,Mitchell,Texas,48335,1,0 +2020-06-05,Mitchell,Texas,48335,1,0 +2020-06-06,Mitchell,Texas,48335,1,0 +2020-06-07,Mitchell,Texas,48335,1,0 +2020-06-08,Mitchell,Texas,48335,1,0 +2020-06-09,Mitchell,Texas,48335,1,0 +2020-06-10,Mitchell,Texas,48335,1,0 +2020-06-11,Mitchell,Texas,48335,2,0 +2020-06-12,Mitchell,Texas,48335,2,0 +2020-06-13,Mitchell,Texas,48335,2,0 +2020-06-14,Mitchell,Texas,48335,2,0 +2020-06-15,Mitchell,Texas,48335,2,0 +2020-06-16,Mitchell,Texas,48335,2,0 +2020-06-17,Mitchell,Texas,48335,2,0 +2020-06-18,Mitchell,Texas,48335,2,0 +2020-06-19,Mitchell,Texas,48335,2,0 +2020-06-20,Mitchell,Texas,48335,2,0 +2020-06-21,Mitchell,Texas,48335,2,0 +2020-06-22,Mitchell,Texas,48335,2,0 +2020-06-23,Mitchell,Texas,48335,3,0 +2020-06-24,Mitchell,Texas,48335,3,0 +2020-06-25,Mitchell,Texas,48335,4,0 +2020-06-26,Mitchell,Texas,48335,4,0 +2020-06-27,Mitchell,Texas,48335,4,0 +2020-06-28,Mitchell,Texas,48335,4,0 +2020-06-29,Mitchell,Texas,48335,4,0 +2020-06-30,Mitchell,Texas,48335,5,0 +2020-07-01,Mitchell,Texas,48335,9,0 +2020-07-02,Mitchell,Texas,48335,9,0 +2020-07-03,Mitchell,Texas,48335,10,0 +2020-07-04,Mitchell,Texas,48335,10,0 +2020-07-05,Mitchell,Texas,48335,12,0 +2020-07-06,Mitchell,Texas,48335,12,0 +2020-07-07,Mitchell,Texas,48335,12,0 +2020-07-08,Mitchell,Texas,48335,18,0 +2020-07-09,Mitchell,Texas,48335,21,0 +2020-03-27,Montague,Texas,48337,1,0 +2020-03-28,Montague,Texas,48337,1,0 +2020-03-29,Montague,Texas,48337,1,0 +2020-03-30,Montague,Texas,48337,1,0 +2020-03-31,Montague,Texas,48337,1,0 +2020-04-01,Montague,Texas,48337,1,0 +2020-04-02,Montague,Texas,48337,1,0 +2020-04-03,Montague,Texas,48337,1,0 +2020-04-04,Montague,Texas,48337,1,0 +2020-04-05,Montague,Texas,48337,1,0 +2020-04-06,Montague,Texas,48337,1,0 +2020-04-07,Montague,Texas,48337,1,0 +2020-04-08,Montague,Texas,48337,1,0 +2020-04-09,Montague,Texas,48337,1,0 +2020-04-10,Montague,Texas,48337,1,0 +2020-04-11,Montague,Texas,48337,2,0 +2020-04-12,Montague,Texas,48337,2,0 +2020-04-13,Montague,Texas,48337,2,0 +2020-04-14,Montague,Texas,48337,5,0 +2020-04-15,Montague,Texas,48337,5,0 +2020-04-16,Montague,Texas,48337,5,0 +2020-04-17,Montague,Texas,48337,5,0 +2020-04-18,Montague,Texas,48337,5,0 +2020-04-19,Montague,Texas,48337,5,0 +2020-04-20,Montague,Texas,48337,5,0 +2020-04-21,Montague,Texas,48337,6,1 +2020-04-22,Montague,Texas,48337,6,1 +2020-04-23,Montague,Texas,48337,6,1 +2020-04-24,Montague,Texas,48337,6,1 +2020-04-25,Montague,Texas,48337,6,1 +2020-04-26,Montague,Texas,48337,6,1 +2020-04-27,Montague,Texas,48337,6,1 +2020-04-28,Montague,Texas,48337,6,1 +2020-04-29,Montague,Texas,48337,6,1 +2020-04-30,Montague,Texas,48337,6,1 +2020-05-01,Montague,Texas,48337,6,1 +2020-05-02,Montague,Texas,48337,6,1 +2020-05-03,Montague,Texas,48337,6,1 +2020-05-04,Montague,Texas,48337,7,1 +2020-05-05,Montague,Texas,48337,8,1 +2020-05-06,Montague,Texas,48337,9,1 +2020-05-07,Montague,Texas,48337,9,1 +2020-05-08,Montague,Texas,48337,9,1 +2020-05-09,Montague,Texas,48337,9,1 +2020-05-10,Montague,Texas,48337,9,1 +2020-05-11,Montague,Texas,48337,9,1 +2020-05-12,Montague,Texas,48337,9,1 +2020-05-13,Montague,Texas,48337,9,1 +2020-05-14,Montague,Texas,48337,9,1 +2020-05-15,Montague,Texas,48337,9,1 +2020-05-16,Montague,Texas,48337,9,1 +2020-05-17,Montague,Texas,48337,9,1 +2020-05-18,Montague,Texas,48337,9,1 +2020-05-19,Montague,Texas,48337,9,1 +2020-05-20,Montague,Texas,48337,9,1 +2020-05-21,Montague,Texas,48337,9,1 +2020-05-22,Montague,Texas,48337,9,1 +2020-05-23,Montague,Texas,48337,9,1 +2020-05-24,Montague,Texas,48337,9,1 +2020-05-25,Montague,Texas,48337,9,1 +2020-05-26,Montague,Texas,48337,9,1 +2020-05-27,Montague,Texas,48337,9,1 +2020-05-28,Montague,Texas,48337,9,1 +2020-05-29,Montague,Texas,48337,9,1 +2020-05-30,Montague,Texas,48337,9,1 +2020-05-31,Montague,Texas,48337,9,1 +2020-06-01,Montague,Texas,48337,9,1 +2020-06-02,Montague,Texas,48337,9,1 +2020-06-03,Montague,Texas,48337,9,1 +2020-06-04,Montague,Texas,48337,9,1 +2020-06-05,Montague,Texas,48337,9,1 +2020-06-06,Montague,Texas,48337,9,1 +2020-06-07,Montague,Texas,48337,9,1 +2020-06-08,Montague,Texas,48337,9,1 +2020-06-09,Montague,Texas,48337,9,1 +2020-06-10,Montague,Texas,48337,9,1 +2020-06-11,Montague,Texas,48337,9,1 +2020-06-12,Montague,Texas,48337,9,1 +2020-06-13,Montague,Texas,48337,9,1 +2020-06-14,Montague,Texas,48337,9,1 +2020-06-15,Montague,Texas,48337,9,1 +2020-06-16,Montague,Texas,48337,9,1 +2020-06-17,Montague,Texas,48337,9,1 +2020-06-18,Montague,Texas,48337,9,1 +2020-06-19,Montague,Texas,48337,12,1 +2020-06-20,Montague,Texas,48337,12,1 +2020-06-21,Montague,Texas,48337,12,1 +2020-06-22,Montague,Texas,48337,12,1 +2020-06-23,Montague,Texas,48337,14,1 +2020-06-24,Montague,Texas,48337,17,1 +2020-06-25,Montague,Texas,48337,17,1 +2020-06-26,Montague,Texas,48337,17,1 +2020-06-27,Montague,Texas,48337,17,1 +2020-06-28,Montague,Texas,48337,17,1 +2020-06-29,Montague,Texas,48337,17,1 +2020-06-30,Montague,Texas,48337,18,1 +2020-07-01,Montague,Texas,48337,18,1 +2020-07-02,Montague,Texas,48337,18,1 +2020-07-03,Montague,Texas,48337,21,1 +2020-07-04,Montague,Texas,48337,21,1 +2020-07-05,Montague,Texas,48337,21,1 +2020-07-06,Montague,Texas,48337,21,1 +2020-07-07,Montague,Texas,48337,21,1 +2020-07-08,Montague,Texas,48337,24,1 +2020-07-09,Montague,Texas,48337,25,1 +2020-03-10,Montgomery,Texas,48339,1,0 +2020-03-11,Montgomery,Texas,48339,1,0 +2020-03-12,Montgomery,Texas,48339,1,0 +2020-03-13,Montgomery,Texas,48339,1,0 +2020-03-14,Montgomery,Texas,48339,1,0 +2020-03-15,Montgomery,Texas,48339,1,0 +2020-03-16,Montgomery,Texas,48339,3,0 +2020-03-17,Montgomery,Texas,48339,3,0 +2020-03-18,Montgomery,Texas,48339,3,0 +2020-03-19,Montgomery,Texas,48339,3,0 +2020-03-20,Montgomery,Texas,48339,4,0 +2020-03-21,Montgomery,Texas,48339,4,0 +2020-03-22,Montgomery,Texas,48339,13,0 +2020-03-23,Montgomery,Texas,48339,15,0 +2020-03-24,Montgomery,Texas,48339,15,0 +2020-03-25,Montgomery,Texas,48339,23,0 +2020-03-26,Montgomery,Texas,48339,31,0 +2020-03-27,Montgomery,Texas,48339,46,0 +2020-03-28,Montgomery,Texas,48339,47,0 +2020-03-29,Montgomery,Texas,48339,64,0 +2020-03-30,Montgomery,Texas,48339,66,0 +2020-03-31,Montgomery,Texas,48339,81,0 +2020-04-01,Montgomery,Texas,48339,110,2 +2020-04-02,Montgomery,Texas,48339,110,2 +2020-04-03,Montgomery,Texas,48339,119,3 +2020-04-04,Montgomery,Texas,48339,130,3 +2020-04-05,Montgomery,Texas,48339,142,3 +2020-04-06,Montgomery,Texas,48339,161,3 +2020-04-07,Montgomery,Texas,48339,161,3 +2020-04-08,Montgomery,Texas,48339,197,4 +2020-04-09,Montgomery,Texas,48339,210,4 +2020-04-10,Montgomery,Texas,48339,231,4 +2020-04-11,Montgomery,Texas,48339,245,4 +2020-04-12,Montgomery,Texas,48339,251,5 +2020-04-13,Montgomery,Texas,48339,266,6 +2020-04-14,Montgomery,Texas,48339,308,6 +2020-04-15,Montgomery,Texas,48339,331,6 +2020-04-16,Montgomery,Texas,48339,350,6 +2020-04-17,Montgomery,Texas,48339,370,7 +2020-04-18,Montgomery,Texas,48339,377,7 +2020-04-19,Montgomery,Texas,48339,377,7 +2020-04-20,Montgomery,Texas,48339,393,7 +2020-04-21,Montgomery,Texas,48339,417,7 +2020-04-22,Montgomery,Texas,48339,440,7 +2020-04-23,Montgomery,Texas,48339,467,8 +2020-04-24,Montgomery,Texas,48339,496,9 +2020-04-25,Montgomery,Texas,48339,496,9 +2020-04-26,Montgomery,Texas,48339,506,9 +2020-04-27,Montgomery,Texas,48339,530,10 +2020-04-28,Montgomery,Texas,48339,562,12 +2020-04-29,Montgomery,Texas,48339,582,12 +2020-04-30,Montgomery,Texas,48339,602,12 +2020-05-01,Montgomery,Texas,48339,629,14 +2020-05-02,Montgomery,Texas,48339,634,14 +2020-05-03,Montgomery,Texas,48339,634,14 +2020-05-04,Montgomery,Texas,48339,640,15 +2020-05-05,Montgomery,Texas,48339,662,15 +2020-05-06,Montgomery,Texas,48339,672,15 +2020-05-07,Montgomery,Texas,48339,689,15 +2020-05-08,Montgomery,Texas,48339,699,15 +2020-05-09,Montgomery,Texas,48339,699,16 +2020-05-10,Montgomery,Texas,48339,699,16 +2020-05-11,Montgomery,Texas,48339,724,17 +2020-05-12,Montgomery,Texas,48339,742,17 +2020-05-13,Montgomery,Texas,48339,758,17 +2020-05-14,Montgomery,Texas,48339,773,18 +2020-05-15,Montgomery,Texas,48339,798,18 +2020-05-16,Montgomery,Texas,48339,798,18 +2020-05-17,Montgomery,Texas,48339,798,18 +2020-05-18,Montgomery,Texas,48339,817,18 +2020-05-19,Montgomery,Texas,48339,848,18 +2020-05-20,Montgomery,Texas,48339,861,21 +2020-05-21,Montgomery,Texas,48339,881,21 +2020-05-22,Montgomery,Texas,48339,888,23 +2020-05-23,Montgomery,Texas,48339,888,23 +2020-05-24,Montgomery,Texas,48339,888,23 +2020-05-25,Montgomery,Texas,48339,888,23 +2020-05-26,Montgomery,Texas,48339,913,24 +2020-05-27,Montgomery,Texas,48339,926,26 +2020-05-28,Montgomery,Texas,48339,940,26 +2020-05-29,Montgomery,Texas,48339,954,26 +2020-05-30,Montgomery,Texas,48339,954,26 +2020-05-31,Montgomery,Texas,48339,954,26 +2020-06-01,Montgomery,Texas,48339,966,26 +2020-06-02,Montgomery,Texas,48339,1010,26 +2020-06-03,Montgomery,Texas,48339,1033,26 +2020-06-04,Montgomery,Texas,48339,1053,27 +2020-06-05,Montgomery,Texas,48339,1064,28 +2020-06-06,Montgomery,Texas,48339,1064,28 +2020-06-07,Montgomery,Texas,48339,1064,28 +2020-06-08,Montgomery,Texas,48339,1090,31 +2020-06-09,Montgomery,Texas,48339,1122,31 +2020-06-10,Montgomery,Texas,48339,1162,32 +2020-06-11,Montgomery,Texas,48339,1197,32 +2020-06-12,Montgomery,Texas,48339,1258,32 +2020-06-13,Montgomery,Texas,48339,1258,32 +2020-06-14,Montgomery,Texas,48339,1258,32 +2020-06-15,Montgomery,Texas,48339,1300,33 +2020-06-16,Montgomery,Texas,48339,1359,33 +2020-06-17,Montgomery,Texas,48339,1428,33 +2020-06-18,Montgomery,Texas,48339,1484,33 +2020-06-19,Montgomery,Texas,48339,1555,34 +2020-06-20,Montgomery,Texas,48339,1555,34 +2020-06-21,Montgomery,Texas,48339,1555,34 +2020-06-22,Montgomery,Texas,48339,1647,34 +2020-06-23,Montgomery,Texas,48339,1737,34 +2020-06-24,Montgomery,Texas,48339,1831,36 +2020-06-25,Montgomery,Texas,48339,1889,36 +2020-06-26,Montgomery,Texas,48339,1952,36 +2020-06-27,Montgomery,Texas,48339,1952,36 +2020-06-28,Montgomery,Texas,48339,1952,36 +2020-06-29,Montgomery,Texas,48339,2028,36 +2020-06-30,Montgomery,Texas,48339,2133,36 +2020-07-01,Montgomery,Texas,48339,2257,36 +2020-07-02,Montgomery,Texas,48339,2353,37 +2020-07-03,Montgomery,Texas,48339,2353,37 +2020-07-04,Montgomery,Texas,48339,2353,37 +2020-07-05,Montgomery,Texas,48339,2353,37 +2020-07-06,Montgomery,Texas,48339,2550,37 +2020-07-07,Montgomery,Texas,48339,2654,38 +2020-07-08,Montgomery,Texas,48339,2784,38 +2020-07-09,Montgomery,Texas,48339,2876,40 +2020-03-30,Moore,Texas,48341,1,0 +2020-03-31,Moore,Texas,48341,1,0 +2020-04-01,Moore,Texas,48341,1,0 +2020-04-02,Moore,Texas,48341,6,0 +2020-04-03,Moore,Texas,48341,6,0 +2020-04-04,Moore,Texas,48341,6,0 +2020-04-05,Moore,Texas,48341,6,0 +2020-04-06,Moore,Texas,48341,6,0 +2020-04-07,Moore,Texas,48341,7,0 +2020-04-08,Moore,Texas,48341,7,0 +2020-04-09,Moore,Texas,48341,15,0 +2020-04-10,Moore,Texas,48341,21,0 +2020-04-11,Moore,Texas,48341,21,0 +2020-04-12,Moore,Texas,48341,22,0 +2020-04-13,Moore,Texas,48341,22,0 +2020-04-14,Moore,Texas,48341,36,0 +2020-04-15,Moore,Texas,48341,52,0 +2020-04-16,Moore,Texas,48341,59,0 +2020-04-17,Moore,Texas,48341,75,0 +2020-04-18,Moore,Texas,48341,99,0 +2020-04-19,Moore,Texas,48341,106,0 +2020-04-20,Moore,Texas,48341,121,2 +2020-04-21,Moore,Texas,48341,139,2 +2020-04-22,Moore,Texas,48341,162,2 +2020-04-23,Moore,Texas,48341,172,2 +2020-04-24,Moore,Texas,48341,186,2 +2020-04-25,Moore,Texas,48341,192,3 +2020-04-26,Moore,Texas,48341,252,3 +2020-04-27,Moore,Texas,48341,272,3 +2020-04-28,Moore,Texas,48341,294,3 +2020-04-29,Moore,Texas,48341,295,3 +2020-04-30,Moore,Texas,48341,327,3 +2020-05-01,Moore,Texas,48341,350,5 +2020-05-02,Moore,Texas,48341,363,5 +2020-05-03,Moore,Texas,48341,399,6 +2020-05-04,Moore,Texas,48341,399,6 +2020-05-05,Moore,Texas,48341,434,6 +2020-05-06,Moore,Texas,48341,448,6 +2020-05-07,Moore,Texas,48341,454,6 +2020-05-08,Moore,Texas,48341,487,7 +2020-05-09,Moore,Texas,48341,494,8 +2020-05-10,Moore,Texas,48341,527,8 +2020-05-11,Moore,Texas,48341,526,9 +2020-05-12,Moore,Texas,48341,535,9 +2020-05-13,Moore,Texas,48341,526,9 +2020-05-14,Moore,Texas,48341,534,9 +2020-05-15,Moore,Texas,48341,540,9 +2020-05-16,Moore,Texas,48341,544,11 +2020-05-17,Moore,Texas,48341,552,11 +2020-05-18,Moore,Texas,48341,567,12 +2020-05-19,Moore,Texas,48341,575,12 +2020-05-20,Moore,Texas,48341,579,12 +2020-05-21,Moore,Texas,48341,579,13 +2020-05-22,Moore,Texas,48341,579,13 +2020-05-23,Moore,Texas,48341,579,13 +2020-05-24,Moore,Texas,48341,512,13 +2020-05-25,Moore,Texas,48341,513,13 +2020-05-26,Moore,Texas,48341,514,13 +2020-05-27,Moore,Texas,48341,518,13 +2020-05-28,Moore,Texas,48341,565,13 +2020-05-29,Moore,Texas,48341,602,13 +2020-05-30,Moore,Texas,48341,604,13 +2020-05-31,Moore,Texas,48341,686,13 +2020-06-01,Moore,Texas,48341,689,13 +2020-06-02,Moore,Texas,48341,838,13 +2020-06-03,Moore,Texas,48341,840,13 +2020-06-04,Moore,Texas,48341,844,13 +2020-06-05,Moore,Texas,48341,851,13 +2020-06-06,Moore,Texas,48341,852,14 +2020-06-07,Moore,Texas,48341,852,14 +2020-06-08,Moore,Texas,48341,852,14 +2020-06-09,Moore,Texas,48341,864,14 +2020-06-10,Moore,Texas,48341,864,14 +2020-06-11,Moore,Texas,48341,866,14 +2020-06-12,Moore,Texas,48341,871,14 +2020-06-13,Moore,Texas,48341,873,14 +2020-06-14,Moore,Texas,48341,873,14 +2020-06-15,Moore,Texas,48341,873,14 +2020-06-16,Moore,Texas,48341,872,14 +2020-06-17,Moore,Texas,48341,872,14 +2020-06-18,Moore,Texas,48341,876,14 +2020-06-19,Moore,Texas,48341,877,14 +2020-06-20,Moore,Texas,48341,877,14 +2020-06-21,Moore,Texas,48341,877,14 +2020-06-22,Moore,Texas,48341,879,14 +2020-06-23,Moore,Texas,48341,881,14 +2020-06-24,Moore,Texas,48341,881,14 +2020-06-25,Moore,Texas,48341,886,14 +2020-06-26,Moore,Texas,48341,888,14 +2020-06-27,Moore,Texas,48341,888,15 +2020-06-28,Moore,Texas,48341,888,15 +2020-06-29,Moore,Texas,48341,888,15 +2020-06-30,Moore,Texas,48341,889,15 +2020-07-01,Moore,Texas,48341,893,15 +2020-07-02,Moore,Texas,48341,896,15 +2020-07-03,Moore,Texas,48341,897,15 +2020-07-04,Moore,Texas,48341,897,15 +2020-07-05,Moore,Texas,48341,897,15 +2020-07-06,Moore,Texas,48341,897,15 +2020-07-07,Moore,Texas,48341,902,15 +2020-07-08,Moore,Texas,48341,909,15 +2020-07-09,Moore,Texas,48341,912,15 +2020-03-23,Morris,Texas,48343,1,0 +2020-03-24,Morris,Texas,48343,1,0 +2020-03-25,Morris,Texas,48343,1,0 +2020-03-26,Morris,Texas,48343,1,0 +2020-03-27,Morris,Texas,48343,1,0 +2020-03-28,Morris,Texas,48343,1,0 +2020-03-29,Morris,Texas,48343,1,0 +2020-03-30,Morris,Texas,48343,1,0 +2020-03-31,Morris,Texas,48343,1,0 +2020-04-01,Morris,Texas,48343,1,0 +2020-04-02,Morris,Texas,48343,1,0 +2020-04-03,Morris,Texas,48343,1,0 +2020-04-04,Morris,Texas,48343,1,0 +2020-04-05,Morris,Texas,48343,1,0 +2020-04-06,Morris,Texas,48343,1,0 +2020-04-07,Morris,Texas,48343,1,0 +2020-04-08,Morris,Texas,48343,1,0 +2020-04-09,Morris,Texas,48343,2,0 +2020-04-10,Morris,Texas,48343,3,0 +2020-04-11,Morris,Texas,48343,3,0 +2020-04-12,Morris,Texas,48343,3,0 +2020-04-13,Morris,Texas,48343,3,0 +2020-04-14,Morris,Texas,48343,3,0 +2020-04-15,Morris,Texas,48343,3,0 +2020-04-16,Morris,Texas,48343,3,0 +2020-04-17,Morris,Texas,48343,4,0 +2020-04-18,Morris,Texas,48343,4,0 +2020-04-19,Morris,Texas,48343,5,0 +2020-04-20,Morris,Texas,48343,5,0 +2020-04-21,Morris,Texas,48343,5,0 +2020-04-22,Morris,Texas,48343,5,0 +2020-04-23,Morris,Texas,48343,5,0 +2020-04-24,Morris,Texas,48343,5,0 +2020-04-25,Morris,Texas,48343,5,0 +2020-04-26,Morris,Texas,48343,5,0 +2020-04-27,Morris,Texas,48343,5,0 +2020-04-28,Morris,Texas,48343,5,0 +2020-04-29,Morris,Texas,48343,5,0 +2020-04-30,Morris,Texas,48343,5,0 +2020-05-01,Morris,Texas,48343,5,0 +2020-05-02,Morris,Texas,48343,8,0 +2020-05-03,Morris,Texas,48343,9,0 +2020-05-04,Morris,Texas,48343,9,0 +2020-05-05,Morris,Texas,48343,9,0 +2020-05-06,Morris,Texas,48343,9,0 +2020-05-07,Morris,Texas,48343,9,0 +2020-05-08,Morris,Texas,48343,9,0 +2020-05-09,Morris,Texas,48343,9,0 +2020-05-10,Morris,Texas,48343,9,0 +2020-05-11,Morris,Texas,48343,9,0 +2020-05-12,Morris,Texas,48343,9,0 +2020-05-13,Morris,Texas,48343,9,0 +2020-05-14,Morris,Texas,48343,10,0 +2020-05-15,Morris,Texas,48343,10,0 +2020-05-16,Morris,Texas,48343,11,0 +2020-05-17,Morris,Texas,48343,11,0 +2020-05-18,Morris,Texas,48343,11,0 +2020-05-19,Morris,Texas,48343,13,0 +2020-05-20,Morris,Texas,48343,14,0 +2020-05-21,Morris,Texas,48343,15,0 +2020-05-22,Morris,Texas,48343,17,0 +2020-05-23,Morris,Texas,48343,17,0 +2020-05-24,Morris,Texas,48343,17,0 +2020-05-25,Morris,Texas,48343,17,0 +2020-05-26,Morris,Texas,48343,21,0 +2020-05-27,Morris,Texas,48343,22,0 +2020-05-28,Morris,Texas,48343,27,0 +2020-05-29,Morris,Texas,48343,28,0 +2020-05-30,Morris,Texas,48343,26,0 +2020-05-31,Morris,Texas,48343,26,0 +2020-06-01,Morris,Texas,48343,26,0 +2020-06-02,Morris,Texas,48343,26,0 +2020-06-03,Morris,Texas,48343,25,0 +2020-06-04,Morris,Texas,48343,27,0 +2020-06-05,Morris,Texas,48343,27,0 +2020-06-06,Morris,Texas,48343,27,0 +2020-06-07,Morris,Texas,48343,27,0 +2020-06-08,Morris,Texas,48343,27,0 +2020-06-09,Morris,Texas,48343,27,0 +2020-06-10,Morris,Texas,48343,27,0 +2020-06-11,Morris,Texas,48343,28,0 +2020-06-12,Morris,Texas,48343,28,0 +2020-06-13,Morris,Texas,48343,30,0 +2020-06-14,Morris,Texas,48343,31,0 +2020-06-15,Morris,Texas,48343,31,0 +2020-06-16,Morris,Texas,48343,31,0 +2020-06-17,Morris,Texas,48343,31,0 +2020-06-18,Morris,Texas,48343,31,0 +2020-06-19,Morris,Texas,48343,31,0 +2020-06-20,Morris,Texas,48343,33,0 +2020-06-21,Morris,Texas,48343,34,0 +2020-06-22,Morris,Texas,48343,34,0 +2020-06-23,Morris,Texas,48343,35,0 +2020-06-24,Morris,Texas,48343,37,0 +2020-06-25,Morris,Texas,48343,37,0 +2020-06-26,Morris,Texas,48343,37,0 +2020-06-27,Morris,Texas,48343,37,0 +2020-06-28,Morris,Texas,48343,37,0 +2020-06-29,Morris,Texas,48343,38,0 +2020-06-30,Morris,Texas,48343,38,0 +2020-07-01,Morris,Texas,48343,39,0 +2020-07-02,Morris,Texas,48343,40,0 +2020-07-03,Morris,Texas,48343,41,0 +2020-07-04,Morris,Texas,48343,42,0 +2020-07-05,Morris,Texas,48343,42,0 +2020-07-06,Morris,Texas,48343,43,0 +2020-07-07,Morris,Texas,48343,49,0 +2020-07-08,Morris,Texas,48343,49,0 +2020-07-09,Morris,Texas,48343,50,0 +2020-04-13,Motley,Texas,48345,1,0 +2020-04-14,Motley,Texas,48345,1,0 +2020-04-15,Motley,Texas,48345,1,0 +2020-04-16,Motley,Texas,48345,1,0 +2020-04-17,Motley,Texas,48345,1,0 +2020-04-18,Motley,Texas,48345,1,0 +2020-04-19,Motley,Texas,48345,1,0 +2020-04-20,Motley,Texas,48345,1,0 +2020-04-21,Motley,Texas,48345,1,0 +2020-04-22,Motley,Texas,48345,1,0 +2020-04-23,Motley,Texas,48345,1,0 +2020-04-24,Motley,Texas,48345,1,0 +2020-04-25,Motley,Texas,48345,1,0 +2020-04-26,Motley,Texas,48345,1,0 +2020-04-27,Motley,Texas,48345,1,0 +2020-04-28,Motley,Texas,48345,1,0 +2020-04-29,Motley,Texas,48345,1,0 +2020-04-30,Motley,Texas,48345,1,0 +2020-05-01,Motley,Texas,48345,1,0 +2020-05-02,Motley,Texas,48345,1,0 +2020-05-03,Motley,Texas,48345,1,0 +2020-05-04,Motley,Texas,48345,1,0 +2020-05-05,Motley,Texas,48345,1,0 +2020-05-06,Motley,Texas,48345,1,0 +2020-05-07,Motley,Texas,48345,1,0 +2020-05-08,Motley,Texas,48345,1,0 +2020-05-09,Motley,Texas,48345,1,0 +2020-05-10,Motley,Texas,48345,1,0 +2020-05-11,Motley,Texas,48345,1,0 +2020-05-12,Motley,Texas,48345,1,0 +2020-05-13,Motley,Texas,48345,1,0 +2020-05-14,Motley,Texas,48345,1,0 +2020-05-15,Motley,Texas,48345,1,0 +2020-05-16,Motley,Texas,48345,1,0 +2020-05-17,Motley,Texas,48345,1,0 +2020-05-18,Motley,Texas,48345,1,0 +2020-05-19,Motley,Texas,48345,1,0 +2020-05-20,Motley,Texas,48345,1,0 +2020-05-21,Motley,Texas,48345,1,0 +2020-05-22,Motley,Texas,48345,1,0 +2020-05-23,Motley,Texas,48345,1,0 +2020-05-24,Motley,Texas,48345,1,0 +2020-05-25,Motley,Texas,48345,1,0 +2020-05-26,Motley,Texas,48345,1,0 +2020-05-27,Motley,Texas,48345,1,0 +2020-05-28,Motley,Texas,48345,1,0 +2020-05-29,Motley,Texas,48345,1,0 +2020-05-30,Motley,Texas,48345,1,0 +2020-05-31,Motley,Texas,48345,1,0 +2020-06-01,Motley,Texas,48345,1,0 +2020-06-02,Motley,Texas,48345,1,0 +2020-06-03,Motley,Texas,48345,1,0 +2020-06-04,Motley,Texas,48345,1,0 +2020-06-05,Motley,Texas,48345,1,0 +2020-06-06,Motley,Texas,48345,1,0 +2020-06-07,Motley,Texas,48345,1,0 +2020-06-08,Motley,Texas,48345,1,0 +2020-06-09,Motley,Texas,48345,1,0 +2020-06-10,Motley,Texas,48345,1,0 +2020-06-11,Motley,Texas,48345,1,0 +2020-06-12,Motley,Texas,48345,1,0 +2020-06-13,Motley,Texas,48345,1,0 +2020-06-14,Motley,Texas,48345,1,0 +2020-06-15,Motley,Texas,48345,1,0 +2020-06-16,Motley,Texas,48345,1,0 +2020-06-17,Motley,Texas,48345,1,0 +2020-06-18,Motley,Texas,48345,1,0 +2020-06-19,Motley,Texas,48345,1,0 +2020-06-20,Motley,Texas,48345,1,0 +2020-06-21,Motley,Texas,48345,1,0 +2020-06-22,Motley,Texas,48345,1,0 +2020-06-23,Motley,Texas,48345,1,0 +2020-06-24,Motley,Texas,48345,1,0 +2020-06-25,Motley,Texas,48345,1,0 +2020-06-26,Motley,Texas,48345,1,0 +2020-06-27,Motley,Texas,48345,1,0 +2020-06-28,Motley,Texas,48345,1,0 +2020-06-29,Motley,Texas,48345,1,0 +2020-06-30,Motley,Texas,48345,1,0 +2020-07-01,Motley,Texas,48345,1,0 +2020-07-02,Motley,Texas,48345,1,0 +2020-07-03,Motley,Texas,48345,1,0 +2020-07-04,Motley,Texas,48345,1,0 +2020-07-05,Motley,Texas,48345,1,0 +2020-07-06,Motley,Texas,48345,1,0 +2020-07-07,Motley,Texas,48345,1,0 +2020-07-08,Motley,Texas,48345,2,0 +2020-07-09,Motley,Texas,48345,2,0 +2020-03-26,Nacogdoches,Texas,48347,1,0 +2020-03-27,Nacogdoches,Texas,48347,1,0 +2020-03-28,Nacogdoches,Texas,48347,1,0 +2020-03-29,Nacogdoches,Texas,48347,2,0 +2020-03-30,Nacogdoches,Texas,48347,2,0 +2020-03-31,Nacogdoches,Texas,48347,2,0 +2020-04-01,Nacogdoches,Texas,48347,4,0 +2020-04-02,Nacogdoches,Texas,48347,5,0 +2020-04-03,Nacogdoches,Texas,48347,12,1 +2020-04-04,Nacogdoches,Texas,48347,15,2 +2020-04-05,Nacogdoches,Texas,48347,16,2 +2020-04-06,Nacogdoches,Texas,48347,16,2 +2020-04-07,Nacogdoches,Texas,48347,21,2 +2020-04-08,Nacogdoches,Texas,48347,21,2 +2020-04-09,Nacogdoches,Texas,48347,25,2 +2020-04-10,Nacogdoches,Texas,48347,29,2 +2020-04-11,Nacogdoches,Texas,48347,30,2 +2020-04-12,Nacogdoches,Texas,48347,47,2 +2020-04-13,Nacogdoches,Texas,48347,48,2 +2020-04-14,Nacogdoches,Texas,48347,56,2 +2020-04-15,Nacogdoches,Texas,48347,64,6 +2020-04-16,Nacogdoches,Texas,48347,69,6 +2020-04-17,Nacogdoches,Texas,48347,75,6 +2020-04-18,Nacogdoches,Texas,48347,88,6 +2020-04-19,Nacogdoches,Texas,48347,89,6 +2020-04-20,Nacogdoches,Texas,48347,91,6 +2020-04-21,Nacogdoches,Texas,48347,96,6 +2020-04-22,Nacogdoches,Texas,48347,98,6 +2020-04-23,Nacogdoches,Texas,48347,110,6 +2020-04-24,Nacogdoches,Texas,48347,115,6 +2020-04-25,Nacogdoches,Texas,48347,115,6 +2020-04-26,Nacogdoches,Texas,48347,125,6 +2020-04-27,Nacogdoches,Texas,48347,125,6 +2020-04-28,Nacogdoches,Texas,48347,141,6 +2020-04-29,Nacogdoches,Texas,48347,141,6 +2020-04-30,Nacogdoches,Texas,48347,157,7 +2020-05-01,Nacogdoches,Texas,48347,160,7 +2020-05-02,Nacogdoches,Texas,48347,172,7 +2020-05-03,Nacogdoches,Texas,48347,172,7 +2020-05-04,Nacogdoches,Texas,48347,174,7 +2020-05-05,Nacogdoches,Texas,48347,187,7 +2020-05-06,Nacogdoches,Texas,48347,189,7 +2020-05-07,Nacogdoches,Texas,48347,202,7 +2020-05-08,Nacogdoches,Texas,48347,202,7 +2020-05-09,Nacogdoches,Texas,48347,202,7 +2020-05-10,Nacogdoches,Texas,48347,206,9 +2020-05-11,Nacogdoches,Texas,48347,211,9 +2020-05-12,Nacogdoches,Texas,48347,221,9 +2020-05-13,Nacogdoches,Texas,48347,224,9 +2020-05-14,Nacogdoches,Texas,48347,227,9 +2020-05-15,Nacogdoches,Texas,48347,229,17 +2020-05-16,Nacogdoches,Texas,48347,233,17 +2020-05-17,Nacogdoches,Texas,48347,238,17 +2020-05-18,Nacogdoches,Texas,48347,239,17 +2020-05-19,Nacogdoches,Texas,48347,241,17 +2020-05-20,Nacogdoches,Texas,48347,243,17 +2020-05-21,Nacogdoches,Texas,48347,244,17 +2020-05-22,Nacogdoches,Texas,48347,244,17 +2020-05-23,Nacogdoches,Texas,48347,255,17 +2020-05-24,Nacogdoches,Texas,48347,257,17 +2020-05-25,Nacogdoches,Texas,48347,257,17 +2020-05-26,Nacogdoches,Texas,48347,257,17 +2020-05-27,Nacogdoches,Texas,48347,261,17 +2020-05-28,Nacogdoches,Texas,48347,271,20 +2020-05-29,Nacogdoches,Texas,48347,270,20 +2020-05-30,Nacogdoches,Texas,48347,287,21 +2020-05-31,Nacogdoches,Texas,48347,287,21 +2020-06-01,Nacogdoches,Texas,48347,288,21 +2020-06-02,Nacogdoches,Texas,48347,290,21 +2020-06-03,Nacogdoches,Texas,48347,294,21 +2020-06-04,Nacogdoches,Texas,48347,298,21 +2020-06-05,Nacogdoches,Texas,48347,301,21 +2020-06-06,Nacogdoches,Texas,48347,301,21 +2020-06-07,Nacogdoches,Texas,48347,304,21 +2020-06-08,Nacogdoches,Texas,48347,304,21 +2020-06-09,Nacogdoches,Texas,48347,305,21 +2020-06-10,Nacogdoches,Texas,48347,315,21 +2020-06-11,Nacogdoches,Texas,48347,317,24 +2020-06-12,Nacogdoches,Texas,48347,317,25 +2020-06-13,Nacogdoches,Texas,48347,324,25 +2020-06-14,Nacogdoches,Texas,48347,324,25 +2020-06-15,Nacogdoches,Texas,48347,324,25 +2020-06-16,Nacogdoches,Texas,48347,326,25 +2020-06-17,Nacogdoches,Texas,48347,329,25 +2020-06-18,Nacogdoches,Texas,48347,337,25 +2020-06-19,Nacogdoches,Texas,48347,341,25 +2020-06-20,Nacogdoches,Texas,48347,343,25 +2020-06-21,Nacogdoches,Texas,48347,345,25 +2020-06-22,Nacogdoches,Texas,48347,346,25 +2020-06-23,Nacogdoches,Texas,48347,349,26 +2020-06-24,Nacogdoches,Texas,48347,353,26 +2020-06-25,Nacogdoches,Texas,48347,360,26 +2020-06-26,Nacogdoches,Texas,48347,370,26 +2020-06-27,Nacogdoches,Texas,48347,379,26 +2020-06-28,Nacogdoches,Texas,48347,381,26 +2020-06-29,Nacogdoches,Texas,48347,381,26 +2020-06-30,Nacogdoches,Texas,48347,397,26 +2020-07-01,Nacogdoches,Texas,48347,407,26 +2020-07-02,Nacogdoches,Texas,48347,416,26 +2020-07-03,Nacogdoches,Texas,48347,425,26 +2020-07-04,Nacogdoches,Texas,48347,435,26 +2020-07-05,Nacogdoches,Texas,48347,443,26 +2020-07-06,Nacogdoches,Texas,48347,444,26 +2020-07-07,Nacogdoches,Texas,48347,461,26 +2020-07-08,Nacogdoches,Texas,48347,479,29 +2020-07-09,Nacogdoches,Texas,48347,516,29 +2020-03-27,Navarro,Texas,48349,1,0 +2020-03-28,Navarro,Texas,48349,1,0 +2020-03-29,Navarro,Texas,48349,1,0 +2020-03-30,Navarro,Texas,48349,3,0 +2020-03-31,Navarro,Texas,48349,3,0 +2020-04-01,Navarro,Texas,48349,4,0 +2020-04-02,Navarro,Texas,48349,4,1 +2020-04-03,Navarro,Texas,48349,5,1 +2020-04-04,Navarro,Texas,48349,5,1 +2020-04-05,Navarro,Texas,48349,7,2 +2020-04-06,Navarro,Texas,48349,8,2 +2020-04-07,Navarro,Texas,48349,8,2 +2020-04-08,Navarro,Texas,48349,8,2 +2020-04-09,Navarro,Texas,48349,11,2 +2020-04-10,Navarro,Texas,48349,11,2 +2020-04-11,Navarro,Texas,48349,12,2 +2020-04-12,Navarro,Texas,48349,12,2 +2020-04-13,Navarro,Texas,48349,12,2 +2020-04-14,Navarro,Texas,48349,16,2 +2020-04-15,Navarro,Texas,48349,16,2 +2020-04-16,Navarro,Texas,48349,18,2 +2020-04-17,Navarro,Texas,48349,20,2 +2020-04-18,Navarro,Texas,48349,20,2 +2020-04-19,Navarro,Texas,48349,20,2 +2020-04-20,Navarro,Texas,48349,20,2 +2020-04-21,Navarro,Texas,48349,23,2 +2020-04-22,Navarro,Texas,48349,24,2 +2020-04-23,Navarro,Texas,48349,25,2 +2020-04-24,Navarro,Texas,48349,26,2 +2020-04-25,Navarro,Texas,48349,28,2 +2020-04-26,Navarro,Texas,48349,28,2 +2020-04-27,Navarro,Texas,48349,28,2 +2020-04-28,Navarro,Texas,48349,28,2 +2020-04-29,Navarro,Texas,48349,30,2 +2020-04-30,Navarro,Texas,48349,30,2 +2020-05-01,Navarro,Texas,48349,31,2 +2020-05-02,Navarro,Texas,48349,31,2 +2020-05-03,Navarro,Texas,48349,31,2 +2020-05-04,Navarro,Texas,48349,31,2 +2020-05-05,Navarro,Texas,48349,31,2 +2020-05-06,Navarro,Texas,48349,33,2 +2020-05-07,Navarro,Texas,48349,34,2 +2020-05-08,Navarro,Texas,48349,36,2 +2020-05-09,Navarro,Texas,48349,36,2 +2020-05-10,Navarro,Texas,48349,36,2 +2020-05-11,Navarro,Texas,48349,36,2 +2020-05-12,Navarro,Texas,48349,36,2 +2020-05-13,Navarro,Texas,48349,37,2 +2020-05-14,Navarro,Texas,48349,37,2 +2020-05-15,Navarro,Texas,48349,38,2 +2020-05-16,Navarro,Texas,48349,38,2 +2020-05-17,Navarro,Texas,48349,38,2 +2020-05-18,Navarro,Texas,48349,38,2 +2020-05-19,Navarro,Texas,48349,38,2 +2020-05-20,Navarro,Texas,48349,40,2 +2020-05-21,Navarro,Texas,48349,40,2 +2020-05-22,Navarro,Texas,48349,40,2 +2020-05-23,Navarro,Texas,48349,44,2 +2020-05-24,Navarro,Texas,48349,44,2 +2020-05-25,Navarro,Texas,48349,44,2 +2020-05-26,Navarro,Texas,48349,45,2 +2020-05-27,Navarro,Texas,48349,49,2 +2020-05-28,Navarro,Texas,48349,49,2 +2020-05-29,Navarro,Texas,48349,50,2 +2020-05-30,Navarro,Texas,48349,55,2 +2020-05-31,Navarro,Texas,48349,56,2 +2020-06-01,Navarro,Texas,48349,56,2 +2020-06-02,Navarro,Texas,48349,57,2 +2020-06-03,Navarro,Texas,48349,58,2 +2020-06-04,Navarro,Texas,48349,61,2 +2020-06-05,Navarro,Texas,48349,64,2 +2020-06-06,Navarro,Texas,48349,66,2 +2020-06-07,Navarro,Texas,48349,66,2 +2020-06-08,Navarro,Texas,48349,66,2 +2020-06-09,Navarro,Texas,48349,70,2 +2020-06-10,Navarro,Texas,48349,70,3 +2020-06-11,Navarro,Texas,48349,74,3 +2020-06-12,Navarro,Texas,48349,84,3 +2020-06-13,Navarro,Texas,48349,87,3 +2020-06-14,Navarro,Texas,48349,87,3 +2020-06-15,Navarro,Texas,48349,87,3 +2020-06-16,Navarro,Texas,48349,98,4 +2020-06-17,Navarro,Texas,48349,98,4 +2020-06-18,Navarro,Texas,48349,101,4 +2020-06-19,Navarro,Texas,48349,116,4 +2020-06-20,Navarro,Texas,48349,120,4 +2020-06-21,Navarro,Texas,48349,120,4 +2020-06-22,Navarro,Texas,48349,120,4 +2020-06-23,Navarro,Texas,48349,148,4 +2020-06-24,Navarro,Texas,48349,156,4 +2020-06-25,Navarro,Texas,48349,170,5 +2020-06-26,Navarro,Texas,48349,177,5 +2020-06-27,Navarro,Texas,48349,185,6 +2020-06-28,Navarro,Texas,48349,185,6 +2020-06-29,Navarro,Texas,48349,185,6 +2020-06-30,Navarro,Texas,48349,230,6 +2020-07-01,Navarro,Texas,48349,276,6 +2020-07-02,Navarro,Texas,48349,295,6 +2020-07-03,Navarro,Texas,48349,323,6 +2020-07-04,Navarro,Texas,48349,323,6 +2020-07-05,Navarro,Texas,48349,323,6 +2020-07-06,Navarro,Texas,48349,414,6 +2020-07-07,Navarro,Texas,48349,445,6 +2020-07-08,Navarro,Texas,48349,478,6 +2020-07-09,Navarro,Texas,48349,493,7 +2020-04-01,Newton,Texas,48351,1,0 +2020-04-02,Newton,Texas,48351,1,0 +2020-04-03,Newton,Texas,48351,1,0 +2020-04-04,Newton,Texas,48351,1,0 +2020-04-05,Newton,Texas,48351,1,0 +2020-04-06,Newton,Texas,48351,1,0 +2020-04-07,Newton,Texas,48351,1,0 +2020-04-08,Newton,Texas,48351,1,0 +2020-04-09,Newton,Texas,48351,1,0 +2020-04-10,Newton,Texas,48351,1,0 +2020-04-11,Newton,Texas,48351,2,0 +2020-04-12,Newton,Texas,48351,2,0 +2020-04-13,Newton,Texas,48351,2,0 +2020-04-14,Newton,Texas,48351,2,0 +2020-04-15,Newton,Texas,48351,2,0 +2020-04-16,Newton,Texas,48351,2,0 +2020-04-17,Newton,Texas,48351,2,0 +2020-04-18,Newton,Texas,48351,2,0 +2020-04-19,Newton,Texas,48351,2,0 +2020-04-20,Newton,Texas,48351,2,0 +2020-04-21,Newton,Texas,48351,2,0 +2020-04-22,Newton,Texas,48351,2,0 +2020-04-23,Newton,Texas,48351,2,0 +2020-04-24,Newton,Texas,48351,2,0 +2020-04-25,Newton,Texas,48351,2,0 +2020-04-26,Newton,Texas,48351,2,0 +2020-04-27,Newton,Texas,48351,2,0 +2020-04-28,Newton,Texas,48351,2,0 +2020-04-29,Newton,Texas,48351,2,0 +2020-04-30,Newton,Texas,48351,2,0 +2020-05-01,Newton,Texas,48351,2,0 +2020-05-02,Newton,Texas,48351,2,0 +2020-05-03,Newton,Texas,48351,2,0 +2020-05-04,Newton,Texas,48351,2,0 +2020-05-05,Newton,Texas,48351,2,0 +2020-05-06,Newton,Texas,48351,4,0 +2020-05-07,Newton,Texas,48351,4,0 +2020-05-08,Newton,Texas,48351,4,0 +2020-05-09,Newton,Texas,48351,4,0 +2020-05-10,Newton,Texas,48351,4,0 +2020-05-11,Newton,Texas,48351,4,0 +2020-05-12,Newton,Texas,48351,4,0 +2020-05-13,Newton,Texas,48351,4,0 +2020-05-14,Newton,Texas,48351,4,0 +2020-05-15,Newton,Texas,48351,4,0 +2020-05-16,Newton,Texas,48351,4,0 +2020-05-17,Newton,Texas,48351,4,0 +2020-05-18,Newton,Texas,48351,4,0 +2020-05-19,Newton,Texas,48351,4,0 +2020-05-20,Newton,Texas,48351,4,0 +2020-05-21,Newton,Texas,48351,4,0 +2020-05-22,Newton,Texas,48351,4,0 +2020-05-23,Newton,Texas,48351,4,0 +2020-05-24,Newton,Texas,48351,4,0 +2020-05-25,Newton,Texas,48351,4,0 +2020-05-26,Newton,Texas,48351,4,0 +2020-05-27,Newton,Texas,48351,4,0 +2020-05-28,Newton,Texas,48351,4,0 +2020-05-29,Newton,Texas,48351,4,0 +2020-05-30,Newton,Texas,48351,5,0 +2020-05-31,Newton,Texas,48351,5,0 +2020-06-01,Newton,Texas,48351,5,0 +2020-06-02,Newton,Texas,48351,5,0 +2020-06-03,Newton,Texas,48351,5,0 +2020-06-04,Newton,Texas,48351,5,0 +2020-06-05,Newton,Texas,48351,5,0 +2020-06-06,Newton,Texas,48351,6,0 +2020-06-07,Newton,Texas,48351,6,0 +2020-06-08,Newton,Texas,48351,6,0 +2020-06-09,Newton,Texas,48351,6,0 +2020-06-10,Newton,Texas,48351,6,0 +2020-06-11,Newton,Texas,48351,6,0 +2020-06-12,Newton,Texas,48351,6,0 +2020-06-13,Newton,Texas,48351,6,0 +2020-06-14,Newton,Texas,48351,6,0 +2020-06-15,Newton,Texas,48351,6,0 +2020-06-16,Newton,Texas,48351,6,0 +2020-06-17,Newton,Texas,48351,6,0 +2020-06-18,Newton,Texas,48351,6,0 +2020-06-19,Newton,Texas,48351,6,0 +2020-06-20,Newton,Texas,48351,6,0 +2020-06-21,Newton,Texas,48351,8,0 +2020-06-22,Newton,Texas,48351,11,0 +2020-06-23,Newton,Texas,48351,11,0 +2020-06-24,Newton,Texas,48351,12,0 +2020-06-25,Newton,Texas,48351,12,0 +2020-06-26,Newton,Texas,48351,12,0 +2020-06-27,Newton,Texas,48351,12,0 +2020-06-28,Newton,Texas,48351,12,0 +2020-06-29,Newton,Texas,48351,12,0 +2020-06-30,Newton,Texas,48351,12,0 +2020-07-01,Newton,Texas,48351,12,0 +2020-07-02,Newton,Texas,48351,12,0 +2020-07-03,Newton,Texas,48351,12,0 +2020-07-04,Newton,Texas,48351,12,0 +2020-07-05,Newton,Texas,48351,12,0 +2020-07-06,Newton,Texas,48351,12,0 +2020-07-07,Newton,Texas,48351,12,0 +2020-07-08,Newton,Texas,48351,12,0 +2020-07-09,Newton,Texas,48351,12,0 +2020-04-24,Nolan,Texas,48353,1,0 +2020-04-25,Nolan,Texas,48353,1,0 +2020-04-26,Nolan,Texas,48353,1,0 +2020-04-27,Nolan,Texas,48353,1,0 +2020-04-28,Nolan,Texas,48353,1,0 +2020-04-29,Nolan,Texas,48353,1,0 +2020-04-30,Nolan,Texas,48353,1,0 +2020-05-01,Nolan,Texas,48353,1,0 +2020-05-02,Nolan,Texas,48353,2,0 +2020-05-03,Nolan,Texas,48353,2,0 +2020-05-04,Nolan,Texas,48353,2,0 +2020-05-05,Nolan,Texas,48353,2,0 +2020-05-06,Nolan,Texas,48353,2,0 +2020-05-07,Nolan,Texas,48353,2,0 +2020-05-08,Nolan,Texas,48353,2,0 +2020-05-09,Nolan,Texas,48353,2,0 +2020-05-10,Nolan,Texas,48353,2,0 +2020-05-11,Nolan,Texas,48353,2,0 +2020-05-12,Nolan,Texas,48353,2,0 +2020-05-13,Nolan,Texas,48353,2,0 +2020-05-14,Nolan,Texas,48353,2,0 +2020-05-15,Nolan,Texas,48353,2,0 +2020-05-16,Nolan,Texas,48353,2,0 +2020-05-17,Nolan,Texas,48353,2,0 +2020-05-18,Nolan,Texas,48353,2,0 +2020-05-19,Nolan,Texas,48353,2,0 +2020-05-20,Nolan,Texas,48353,2,0 +2020-05-21,Nolan,Texas,48353,2,0 +2020-05-22,Nolan,Texas,48353,2,0 +2020-05-23,Nolan,Texas,48353,2,0 +2020-05-24,Nolan,Texas,48353,2,0 +2020-05-25,Nolan,Texas,48353,2,0 +2020-05-26,Nolan,Texas,48353,2,0 +2020-05-27,Nolan,Texas,48353,2,0 +2020-05-28,Nolan,Texas,48353,2,0 +2020-05-29,Nolan,Texas,48353,2,0 +2020-05-30,Nolan,Texas,48353,4,0 +2020-05-31,Nolan,Texas,48353,4,0 +2020-06-01,Nolan,Texas,48353,4,0 +2020-06-02,Nolan,Texas,48353,2,0 +2020-06-03,Nolan,Texas,48353,3,0 +2020-06-04,Nolan,Texas,48353,8,0 +2020-06-05,Nolan,Texas,48353,8,0 +2020-06-06,Nolan,Texas,48353,9,0 +2020-06-07,Nolan,Texas,48353,9,0 +2020-06-08,Nolan,Texas,48353,9,0 +2020-06-09,Nolan,Texas,48353,9,0 +2020-06-10,Nolan,Texas,48353,3,0 +2020-06-11,Nolan,Texas,48353,3,0 +2020-06-12,Nolan,Texas,48353,3,0 +2020-06-13,Nolan,Texas,48353,4,0 +2020-06-14,Nolan,Texas,48353,4,0 +2020-06-15,Nolan,Texas,48353,4,0 +2020-06-16,Nolan,Texas,48353,5,0 +2020-06-17,Nolan,Texas,48353,5,0 +2020-06-18,Nolan,Texas,48353,8,0 +2020-06-19,Nolan,Texas,48353,8,0 +2020-06-20,Nolan,Texas,48353,10,0 +2020-06-21,Nolan,Texas,48353,10,0 +2020-06-22,Nolan,Texas,48353,13,0 +2020-06-23,Nolan,Texas,48353,13,0 +2020-06-24,Nolan,Texas,48353,16,0 +2020-06-25,Nolan,Texas,48353,18,0 +2020-06-26,Nolan,Texas,48353,20,0 +2020-06-27,Nolan,Texas,48353,24,0 +2020-06-28,Nolan,Texas,48353,33,0 +2020-06-29,Nolan,Texas,48353,33,0 +2020-06-30,Nolan,Texas,48353,33,0 +2020-07-01,Nolan,Texas,48353,36,0 +2020-07-02,Nolan,Texas,48353,42,0 +2020-07-03,Nolan,Texas,48353,42,0 +2020-07-04,Nolan,Texas,48353,42,0 +2020-07-05,Nolan,Texas,48353,45,0 +2020-07-06,Nolan,Texas,48353,46,0 +2020-07-07,Nolan,Texas,48353,46,0 +2020-07-08,Nolan,Texas,48353,49,0 +2020-07-09,Nolan,Texas,48353,55,0 +2020-03-24,Nueces,Texas,48355,1,0 +2020-03-25,Nueces,Texas,48355,10,0 +2020-03-26,Nueces,Texas,48355,14,0 +2020-03-27,Nueces,Texas,48355,18,0 +2020-03-28,Nueces,Texas,48355,20,0 +2020-03-29,Nueces,Texas,48355,21,0 +2020-03-30,Nueces,Texas,48355,22,0 +2020-03-31,Nueces,Texas,48355,31,0 +2020-04-01,Nueces,Texas,48355,34,0 +2020-04-02,Nueces,Texas,48355,40,0 +2020-04-03,Nueces,Texas,48355,41,0 +2020-04-04,Nueces,Texas,48355,47,0 +2020-04-05,Nueces,Texas,48355,50,0 +2020-04-06,Nueces,Texas,48355,59,0 +2020-04-07,Nueces,Texas,48355,59,0 +2020-04-08,Nueces,Texas,48355,69,0 +2020-04-09,Nueces,Texas,48355,69,0 +2020-04-10,Nueces,Texas,48355,72,0 +2020-04-11,Nueces,Texas,48355,72,0 +2020-04-12,Nueces,Texas,48355,76,0 +2020-04-13,Nueces,Texas,48355,79,0 +2020-04-14,Nueces,Texas,48355,83,0 +2020-04-15,Nueces,Texas,48355,83,0 +2020-04-16,Nueces,Texas,48355,83,0 +2020-04-17,Nueces,Texas,48355,89,0 +2020-04-18,Nueces,Texas,48355,90,0 +2020-04-19,Nueces,Texas,48355,90,0 +2020-04-20,Nueces,Texas,48355,90,1 +2020-04-21,Nueces,Texas,48355,90,1 +2020-04-22,Nueces,Texas,48355,90,1 +2020-04-23,Nueces,Texas,48355,91,1 +2020-04-24,Nueces,Texas,48355,92,1 +2020-04-25,Nueces,Texas,48355,94,2 +2020-04-26,Nueces,Texas,48355,94,3 +2020-04-27,Nueces,Texas,48355,99,3 +2020-04-28,Nueces,Texas,48355,99,3 +2020-04-29,Nueces,Texas,48355,99,3 +2020-04-30,Nueces,Texas,48355,102,3 +2020-05-01,Nueces,Texas,48355,106,3 +2020-05-02,Nueces,Texas,48355,107,3 +2020-05-03,Nueces,Texas,48355,107,3 +2020-05-04,Nueces,Texas,48355,113,3 +2020-05-05,Nueces,Texas,48355,114,3 +2020-05-06,Nueces,Texas,48355,117,3 +2020-05-07,Nueces,Texas,48355,123,3 +2020-05-08,Nueces,Texas,48355,128,3 +2020-05-09,Nueces,Texas,48355,128,3 +2020-05-10,Nueces,Texas,48355,132,3 +2020-05-11,Nueces,Texas,48355,147,3 +2020-05-12,Nueces,Texas,48355,174,3 +2020-05-13,Nueces,Texas,48355,186,3 +2020-05-14,Nueces,Texas,48355,209,3 +2020-05-15,Nueces,Texas,48355,231,3 +2020-05-16,Nueces,Texas,48355,233,3 +2020-05-17,Nueces,Texas,48355,234,3 +2020-05-18,Nueces,Texas,48355,242,3 +2020-05-19,Nueces,Texas,48355,248,3 +2020-05-20,Nueces,Texas,48355,256,3 +2020-05-21,Nueces,Texas,48355,260,3 +2020-05-22,Nueces,Texas,48355,260,3 +2020-05-23,Nueces,Texas,48355,262,3 +2020-05-24,Nueces,Texas,48355,262,3 +2020-05-25,Nueces,Texas,48355,263,3 +2020-05-26,Nueces,Texas,48355,266,3 +2020-05-27,Nueces,Texas,48355,268,3 +2020-05-28,Nueces,Texas,48355,268,3 +2020-05-29,Nueces,Texas,48355,268,3 +2020-05-30,Nueces,Texas,48355,274,3 +2020-05-31,Nueces,Texas,48355,275,3 +2020-06-01,Nueces,Texas,48355,275,3 +2020-06-02,Nueces,Texas,48355,280,3 +2020-06-03,Nueces,Texas,48355,285,3 +2020-06-04,Nueces,Texas,48355,286,3 +2020-06-05,Nueces,Texas,48355,289,3 +2020-06-06,Nueces,Texas,48355,289,3 +2020-06-07,Nueces,Texas,48355,289,3 +2020-06-08,Nueces,Texas,48355,300,3 +2020-06-09,Nueces,Texas,48355,303,3 +2020-06-10,Nueces,Texas,48355,310,3 +2020-06-11,Nueces,Texas,48355,321,3 +2020-06-12,Nueces,Texas,48355,336,3 +2020-06-13,Nueces,Texas,48355,336,3 +2020-06-14,Nueces,Texas,48355,336,3 +2020-06-15,Nueces,Texas,48355,360,4 +2020-06-16,Nueces,Texas,48355,391,4 +2020-06-17,Nueces,Texas,48355,420,4 +2020-06-18,Nueces,Texas,48355,485,5 +2020-06-19,Nueces,Texas,48355,548,6 +2020-06-20,Nueces,Texas,48355,597,6 +2020-06-21,Nueces,Texas,48355,633,6 +2020-06-22,Nueces,Texas,48355,742,6 +2020-06-23,Nueces,Texas,48355,813,6 +2020-06-24,Nueces,Texas,48355,1028,6 +2020-06-25,Nueces,Texas,48355,1028,6 +2020-06-26,Nueces,Texas,48355,1499,6 +2020-06-27,Nueces,Texas,48355,1727,6 +2020-06-28,Nueces,Texas,48355,1915,7 +2020-06-29,Nueces,Texas,48355,2120,8 +2020-06-30,Nueces,Texas,48355,2394,8 +2020-07-01,Nueces,Texas,48355,2756,9 +2020-07-02,Nueces,Texas,48355,3018,9 +2020-07-03,Nueces,Texas,48355,3272,10 +2020-07-04,Nueces,Texas,48355,3593,11 +2020-07-05,Nueces,Texas,48355,3796,14 +2020-07-06,Nueces,Texas,48355,4084,18 +2020-07-07,Nueces,Texas,48355,4472,27 +2020-07-08,Nueces,Texas,48355,4917,35 +2020-07-09,Nueces,Texas,48355,5260,37 +2020-04-24,Ochiltree,Texas,48357,1,0 +2020-04-25,Ochiltree,Texas,48357,5,1 +2020-04-26,Ochiltree,Texas,48357,5,1 +2020-04-27,Ochiltree,Texas,48357,5,1 +2020-04-28,Ochiltree,Texas,48357,24,1 +2020-04-29,Ochiltree,Texas,48357,25,1 +2020-04-30,Ochiltree,Texas,48357,25,1 +2020-05-01,Ochiltree,Texas,48357,19,1 +2020-05-02,Ochiltree,Texas,48357,19,1 +2020-05-03,Ochiltree,Texas,48357,19,1 +2020-05-04,Ochiltree,Texas,48357,19,1 +2020-05-05,Ochiltree,Texas,48357,25,1 +2020-05-06,Ochiltree,Texas,48357,26,1 +2020-05-07,Ochiltree,Texas,48357,28,1 +2020-05-08,Ochiltree,Texas,48357,29,1 +2020-05-09,Ochiltree,Texas,48357,29,1 +2020-05-10,Ochiltree,Texas,48357,29,1 +2020-05-11,Ochiltree,Texas,48357,29,1 +2020-05-12,Ochiltree,Texas,48357,29,1 +2020-05-13,Ochiltree,Texas,48357,40,1 +2020-05-14,Ochiltree,Texas,48357,40,2 +2020-05-15,Ochiltree,Texas,48357,40,2 +2020-05-16,Ochiltree,Texas,48357,39,2 +2020-05-17,Ochiltree,Texas,48357,40,2 +2020-05-18,Ochiltree,Texas,48357,41,2 +2020-05-19,Ochiltree,Texas,48357,40,2 +2020-05-20,Ochiltree,Texas,48357,41,3 +2020-05-21,Ochiltree,Texas,48357,41,3 +2020-05-22,Ochiltree,Texas,48357,41,3 +2020-05-23,Ochiltree,Texas,48357,42,3 +2020-05-24,Ochiltree,Texas,48357,43,2 +2020-05-25,Ochiltree,Texas,48357,43,2 +2020-05-26,Ochiltree,Texas,48357,43,2 +2020-05-27,Ochiltree,Texas,48357,43,2 +2020-05-28,Ochiltree,Texas,48357,48,2 +2020-05-29,Ochiltree,Texas,48357,49,2 +2020-05-30,Ochiltree,Texas,48357,49,2 +2020-05-31,Ochiltree,Texas,48357,49,2 +2020-06-01,Ochiltree,Texas,48357,49,2 +2020-06-02,Ochiltree,Texas,48357,49,2 +2020-06-03,Ochiltree,Texas,48357,50,2 +2020-06-04,Ochiltree,Texas,48357,51,2 +2020-06-05,Ochiltree,Texas,48357,51,2 +2020-06-06,Ochiltree,Texas,48357,51,2 +2020-06-07,Ochiltree,Texas,48357,51,2 +2020-06-08,Ochiltree,Texas,48357,51,2 +2020-06-09,Ochiltree,Texas,48357,52,2 +2020-06-10,Ochiltree,Texas,48357,52,2 +2020-06-11,Ochiltree,Texas,48357,52,2 +2020-06-12,Ochiltree,Texas,48357,53,2 +2020-06-13,Ochiltree,Texas,48357,53,2 +2020-06-14,Ochiltree,Texas,48357,53,2 +2020-06-15,Ochiltree,Texas,48357,53,2 +2020-06-16,Ochiltree,Texas,48357,53,2 +2020-06-17,Ochiltree,Texas,48357,53,2 +2020-06-18,Ochiltree,Texas,48357,53,2 +2020-06-19,Ochiltree,Texas,48357,53,2 +2020-06-20,Ochiltree,Texas,48357,53,2 +2020-06-21,Ochiltree,Texas,48357,53,2 +2020-06-22,Ochiltree,Texas,48357,53,2 +2020-06-23,Ochiltree,Texas,48357,53,2 +2020-06-24,Ochiltree,Texas,48357,53,2 +2020-06-25,Ochiltree,Texas,48357,53,2 +2020-06-26,Ochiltree,Texas,48357,53,2 +2020-06-27,Ochiltree,Texas,48357,53,2 +2020-06-28,Ochiltree,Texas,48357,53,2 +2020-06-29,Ochiltree,Texas,48357,53,2 +2020-06-30,Ochiltree,Texas,48357,53,2 +2020-07-01,Ochiltree,Texas,48357,53,2 +2020-07-02,Ochiltree,Texas,48357,53,2 +2020-07-03,Ochiltree,Texas,48357,53,2 +2020-07-04,Ochiltree,Texas,48357,53,2 +2020-07-05,Ochiltree,Texas,48357,53,2 +2020-07-06,Ochiltree,Texas,48357,53,2 +2020-07-07,Ochiltree,Texas,48357,60,2 +2020-07-08,Ochiltree,Texas,48357,60,2 +2020-07-09,Ochiltree,Texas,48357,60,2 +2020-03-21,Oldham,Texas,48359,1,0 +2020-03-22,Oldham,Texas,48359,1,0 +2020-03-23,Oldham,Texas,48359,1,0 +2020-03-24,Oldham,Texas,48359,1,0 +2020-03-25,Oldham,Texas,48359,1,1 +2020-03-26,Oldham,Texas,48359,1,1 +2020-03-27,Oldham,Texas,48359,1,1 +2020-03-28,Oldham,Texas,48359,1,1 +2020-03-29,Oldham,Texas,48359,2,1 +2020-03-30,Oldham,Texas,48359,2,1 +2020-03-31,Oldham,Texas,48359,2,1 +2020-04-01,Oldham,Texas,48359,2,1 +2020-04-02,Oldham,Texas,48359,2,1 +2020-04-03,Oldham,Texas,48359,2,1 +2020-04-04,Oldham,Texas,48359,2,1 +2020-04-05,Oldham,Texas,48359,2,1 +2020-04-06,Oldham,Texas,48359,2,1 +2020-04-07,Oldham,Texas,48359,3,1 +2020-04-08,Oldham,Texas,48359,3,1 +2020-04-09,Oldham,Texas,48359,3,1 +2020-04-10,Oldham,Texas,48359,3,1 +2020-04-11,Oldham,Texas,48359,3,1 +2020-04-12,Oldham,Texas,48359,3,1 +2020-04-13,Oldham,Texas,48359,3,1 +2020-04-14,Oldham,Texas,48359,3,1 +2020-04-15,Oldham,Texas,48359,3,1 +2020-04-16,Oldham,Texas,48359,3,1 +2020-04-17,Oldham,Texas,48359,3,1 +2020-04-18,Oldham,Texas,48359,3,1 +2020-04-19,Oldham,Texas,48359,3,1 +2020-04-20,Oldham,Texas,48359,3,1 +2020-04-21,Oldham,Texas,48359,3,1 +2020-04-22,Oldham,Texas,48359,3,1 +2020-04-23,Oldham,Texas,48359,3,1 +2020-04-24,Oldham,Texas,48359,3,1 +2020-04-25,Oldham,Texas,48359,3,1 +2020-04-26,Oldham,Texas,48359,3,1 +2020-04-27,Oldham,Texas,48359,3,1 +2020-04-28,Oldham,Texas,48359,3,1 +2020-04-29,Oldham,Texas,48359,3,1 +2020-04-30,Oldham,Texas,48359,3,1 +2020-05-01,Oldham,Texas,48359,3,1 +2020-05-02,Oldham,Texas,48359,3,1 +2020-05-03,Oldham,Texas,48359,3,1 +2020-05-04,Oldham,Texas,48359,3,1 +2020-05-05,Oldham,Texas,48359,3,1 +2020-05-06,Oldham,Texas,48359,3,1 +2020-05-07,Oldham,Texas,48359,3,1 +2020-05-08,Oldham,Texas,48359,3,1 +2020-05-09,Oldham,Texas,48359,3,1 +2020-05-10,Oldham,Texas,48359,3,1 +2020-05-11,Oldham,Texas,48359,3,1 +2020-05-12,Oldham,Texas,48359,3,1 +2020-05-13,Oldham,Texas,48359,3,1 +2020-05-14,Oldham,Texas,48359,3,1 +2020-05-15,Oldham,Texas,48359,4,1 +2020-05-16,Oldham,Texas,48359,4,1 +2020-05-17,Oldham,Texas,48359,3,1 +2020-05-18,Oldham,Texas,48359,3,1 +2020-05-19,Oldham,Texas,48359,3,1 +2020-05-20,Oldham,Texas,48359,3,1 +2020-05-21,Oldham,Texas,48359,3,1 +2020-05-22,Oldham,Texas,48359,3,1 +2020-05-23,Oldham,Texas,48359,3,1 +2020-05-24,Oldham,Texas,48359,3,1 +2020-05-25,Oldham,Texas,48359,3,1 +2020-05-26,Oldham,Texas,48359,3,1 +2020-05-27,Oldham,Texas,48359,3,1 +2020-05-28,Oldham,Texas,48359,3,1 +2020-05-29,Oldham,Texas,48359,3,1 +2020-05-30,Oldham,Texas,48359,3,1 +2020-05-31,Oldham,Texas,48359,3,1 +2020-06-01,Oldham,Texas,48359,3,1 +2020-06-02,Oldham,Texas,48359,4,1 +2020-06-03,Oldham,Texas,48359,4,1 +2020-06-04,Oldham,Texas,48359,4,1 +2020-06-05,Oldham,Texas,48359,4,1 +2020-06-06,Oldham,Texas,48359,4,1 +2020-06-07,Oldham,Texas,48359,4,1 +2020-06-08,Oldham,Texas,48359,4,1 +2020-06-09,Oldham,Texas,48359,4,1 +2020-06-10,Oldham,Texas,48359,4,1 +2020-06-11,Oldham,Texas,48359,4,1 +2020-06-12,Oldham,Texas,48359,4,1 +2020-06-13,Oldham,Texas,48359,4,1 +2020-06-14,Oldham,Texas,48359,4,1 +2020-06-15,Oldham,Texas,48359,4,1 +2020-06-16,Oldham,Texas,48359,4,1 +2020-06-17,Oldham,Texas,48359,4,1 +2020-06-18,Oldham,Texas,48359,4,1 +2020-06-19,Oldham,Texas,48359,4,1 +2020-06-20,Oldham,Texas,48359,4,1 +2020-06-21,Oldham,Texas,48359,4,1 +2020-06-22,Oldham,Texas,48359,4,1 +2020-06-23,Oldham,Texas,48359,4,1 +2020-06-24,Oldham,Texas,48359,4,1 +2020-06-25,Oldham,Texas,48359,4,1 +2020-06-26,Oldham,Texas,48359,4,1 +2020-06-27,Oldham,Texas,48359,4,1 +2020-06-28,Oldham,Texas,48359,4,1 +2020-06-29,Oldham,Texas,48359,4,1 +2020-06-30,Oldham,Texas,48359,4,1 +2020-07-01,Oldham,Texas,48359,4,1 +2020-07-02,Oldham,Texas,48359,4,1 +2020-07-03,Oldham,Texas,48359,4,1 +2020-07-04,Oldham,Texas,48359,4,1 +2020-07-05,Oldham,Texas,48359,4,1 +2020-07-06,Oldham,Texas,48359,4,1 +2020-07-07,Oldham,Texas,48359,5,1 +2020-07-08,Oldham,Texas,48359,4,1 +2020-07-09,Oldham,Texas,48359,4,1 +2020-03-25,Orange,Texas,48361,1,0 +2020-03-26,Orange,Texas,48361,1,0 +2020-03-27,Orange,Texas,48361,1,0 +2020-03-28,Orange,Texas,48361,1,0 +2020-03-29,Orange,Texas,48361,1,0 +2020-03-30,Orange,Texas,48361,5,0 +2020-03-31,Orange,Texas,48361,5,0 +2020-04-01,Orange,Texas,48361,7,0 +2020-04-02,Orange,Texas,48361,7,0 +2020-04-03,Orange,Texas,48361,7,0 +2020-04-04,Orange,Texas,48361,12,0 +2020-04-05,Orange,Texas,48361,22,0 +2020-04-06,Orange,Texas,48361,23,0 +2020-04-07,Orange,Texas,48361,26,0 +2020-04-08,Orange,Texas,48361,26,0 +2020-04-09,Orange,Texas,48361,31,0 +2020-04-10,Orange,Texas,48361,31,0 +2020-04-11,Orange,Texas,48361,33,0 +2020-04-12,Orange,Texas,48361,44,0 +2020-04-13,Orange,Texas,48361,44,0 +2020-04-14,Orange,Texas,48361,45,0 +2020-04-15,Orange,Texas,48361,46,0 +2020-04-16,Orange,Texas,48361,47,0 +2020-04-17,Orange,Texas,48361,48,0 +2020-04-18,Orange,Texas,48361,48,0 +2020-04-19,Orange,Texas,48361,49,0 +2020-04-20,Orange,Texas,48361,49,0 +2020-04-21,Orange,Texas,48361,58,0 +2020-04-22,Orange,Texas,48361,59,0 +2020-04-23,Orange,Texas,48361,59,0 +2020-04-24,Orange,Texas,48361,63,0 +2020-04-25,Orange,Texas,48361,64,0 +2020-04-26,Orange,Texas,48361,64,0 +2020-04-27,Orange,Texas,48361,64,0 +2020-04-28,Orange,Texas,48361,64,0 +2020-04-29,Orange,Texas,48361,70,1 +2020-04-30,Orange,Texas,48361,70,1 +2020-05-01,Orange,Texas,48361,71,1 +2020-05-02,Orange,Texas,48361,71,1 +2020-05-03,Orange,Texas,48361,71,1 +2020-05-04,Orange,Texas,48361,71,1 +2020-05-05,Orange,Texas,48361,77,2 +2020-05-06,Orange,Texas,48361,79,2 +2020-05-07,Orange,Texas,48361,81,2 +2020-05-08,Orange,Texas,48361,81,2 +2020-05-09,Orange,Texas,48361,85,2 +2020-05-10,Orange,Texas,48361,85,2 +2020-05-11,Orange,Texas,48361,85,2 +2020-05-12,Orange,Texas,48361,85,2 +2020-05-13,Orange,Texas,48361,85,2 +2020-05-14,Orange,Texas,48361,85,2 +2020-05-15,Orange,Texas,48361,87,2 +2020-05-16,Orange,Texas,48361,87,2 +2020-05-17,Orange,Texas,48361,87,2 +2020-05-18,Orange,Texas,48361,87,2 +2020-05-19,Orange,Texas,48361,87,2 +2020-05-20,Orange,Texas,48361,89,2 +2020-05-21,Orange,Texas,48361,89,2 +2020-05-22,Orange,Texas,48361,89,2 +2020-05-23,Orange,Texas,48361,96,2 +2020-05-24,Orange,Texas,48361,96,2 +2020-05-25,Orange,Texas,48361,96,2 +2020-05-26,Orange,Texas,48361,96,2 +2020-05-27,Orange,Texas,48361,96,2 +2020-05-28,Orange,Texas,48361,96,2 +2020-05-29,Orange,Texas,48361,98,2 +2020-05-30,Orange,Texas,48361,98,2 +2020-05-31,Orange,Texas,48361,98,2 +2020-06-01,Orange,Texas,48361,98,2 +2020-06-02,Orange,Texas,48361,98,2 +2020-06-03,Orange,Texas,48361,98,2 +2020-06-04,Orange,Texas,48361,101,2 +2020-06-05,Orange,Texas,48361,101,2 +2020-06-06,Orange,Texas,48361,100,2 +2020-06-07,Orange,Texas,48361,100,2 +2020-06-08,Orange,Texas,48361,100,2 +2020-06-09,Orange,Texas,48361,100,2 +2020-06-10,Orange,Texas,48361,102,2 +2020-06-11,Orange,Texas,48361,102,2 +2020-06-12,Orange,Texas,48361,105,2 +2020-06-13,Orange,Texas,48361,106,2 +2020-06-14,Orange,Texas,48361,106,2 +2020-06-15,Orange,Texas,48361,106,2 +2020-06-16,Orange,Texas,48361,107,2 +2020-06-17,Orange,Texas,48361,118,3 +2020-06-18,Orange,Texas,48361,126,3 +2020-06-19,Orange,Texas,48361,135,3 +2020-06-20,Orange,Texas,48361,143,3 +2020-06-21,Orange,Texas,48361,143,3 +2020-06-22,Orange,Texas,48361,143,3 +2020-06-23,Orange,Texas,48361,155,3 +2020-06-24,Orange,Texas,48361,164,3 +2020-06-25,Orange,Texas,48361,166,3 +2020-06-26,Orange,Texas,48361,191,3 +2020-06-27,Orange,Texas,48361,198,3 +2020-06-28,Orange,Texas,48361,198,3 +2020-06-29,Orange,Texas,48361,198,3 +2020-06-30,Orange,Texas,48361,212,3 +2020-07-01,Orange,Texas,48361,272,3 +2020-07-02,Orange,Texas,48361,273,3 +2020-07-03,Orange,Texas,48361,303,5 +2020-07-04,Orange,Texas,48361,303,5 +2020-07-05,Orange,Texas,48361,303,5 +2020-07-06,Orange,Texas,48361,303,5 +2020-07-07,Orange,Texas,48361,327,5 +2020-07-08,Orange,Texas,48361,415,5 +2020-07-09,Orange,Texas,48361,443,5 +2020-04-02,Palo Pinto,Texas,48363,1,0 +2020-04-03,Palo Pinto,Texas,48363,1,0 +2020-04-04,Palo Pinto,Texas,48363,1,0 +2020-04-05,Palo Pinto,Texas,48363,1,0 +2020-04-06,Palo Pinto,Texas,48363,1,0 +2020-04-07,Palo Pinto,Texas,48363,2,0 +2020-04-08,Palo Pinto,Texas,48363,2,0 +2020-04-09,Palo Pinto,Texas,48363,4,0 +2020-04-10,Palo Pinto,Texas,48363,4,0 +2020-04-11,Palo Pinto,Texas,48363,4,1 +2020-04-12,Palo Pinto,Texas,48363,4,1 +2020-04-13,Palo Pinto,Texas,48363,4,1 +2020-04-14,Palo Pinto,Texas,48363,5,1 +2020-04-15,Palo Pinto,Texas,48363,5,1 +2020-04-16,Palo Pinto,Texas,48363,6,1 +2020-04-17,Palo Pinto,Texas,48363,6,1 +2020-04-18,Palo Pinto,Texas,48363,6,1 +2020-04-19,Palo Pinto,Texas,48363,6,1 +2020-04-20,Palo Pinto,Texas,48363,7,1 +2020-04-21,Palo Pinto,Texas,48363,7,1 +2020-04-22,Palo Pinto,Texas,48363,7,1 +2020-04-23,Palo Pinto,Texas,48363,7,1 +2020-04-24,Palo Pinto,Texas,48363,7,1 +2020-04-25,Palo Pinto,Texas,48363,7,1 +2020-04-26,Palo Pinto,Texas,48363,7,1 +2020-04-27,Palo Pinto,Texas,48363,7,1 +2020-04-28,Palo Pinto,Texas,48363,7,1 +2020-04-29,Palo Pinto,Texas,48363,7,1 +2020-04-30,Palo Pinto,Texas,48363,7,1 +2020-05-01,Palo Pinto,Texas,48363,7,1 +2020-05-02,Palo Pinto,Texas,48363,8,1 +2020-05-03,Palo Pinto,Texas,48363,8,1 +2020-05-04,Palo Pinto,Texas,48363,8,1 +2020-05-05,Palo Pinto,Texas,48363,8,1 +2020-05-06,Palo Pinto,Texas,48363,9,2 +2020-05-07,Palo Pinto,Texas,48363,9,2 +2020-05-08,Palo Pinto,Texas,48363,9,2 +2020-05-09,Palo Pinto,Texas,48363,9,2 +2020-05-10,Palo Pinto,Texas,48363,9,2 +2020-05-11,Palo Pinto,Texas,48363,9,2 +2020-05-12,Palo Pinto,Texas,48363,9,2 +2020-05-13,Palo Pinto,Texas,48363,9,2 +2020-05-14,Palo Pinto,Texas,48363,9,2 +2020-05-15,Palo Pinto,Texas,48363,9,2 +2020-05-16,Palo Pinto,Texas,48363,9,2 +2020-05-17,Palo Pinto,Texas,48363,9,2 +2020-05-18,Palo Pinto,Texas,48363,9,2 +2020-05-19,Palo Pinto,Texas,48363,9,2 +2020-05-20,Palo Pinto,Texas,48363,10,2 +2020-05-21,Palo Pinto,Texas,48363,10,2 +2020-05-22,Palo Pinto,Texas,48363,10,2 +2020-05-23,Palo Pinto,Texas,48363,10,2 +2020-05-24,Palo Pinto,Texas,48363,10,2 +2020-05-25,Palo Pinto,Texas,48363,10,2 +2020-05-26,Palo Pinto,Texas,48363,11,2 +2020-05-27,Palo Pinto,Texas,48363,11,2 +2020-05-28,Palo Pinto,Texas,48363,11,2 +2020-05-29,Palo Pinto,Texas,48363,13,2 +2020-05-30,Palo Pinto,Texas,48363,13,2 +2020-05-31,Palo Pinto,Texas,48363,13,2 +2020-06-01,Palo Pinto,Texas,48363,13,2 +2020-06-02,Palo Pinto,Texas,48363,13,2 +2020-06-03,Palo Pinto,Texas,48363,13,2 +2020-06-04,Palo Pinto,Texas,48363,13,2 +2020-06-05,Palo Pinto,Texas,48363,13,2 +2020-06-06,Palo Pinto,Texas,48363,13,2 +2020-06-07,Palo Pinto,Texas,48363,13,2 +2020-06-08,Palo Pinto,Texas,48363,13,2 +2020-06-09,Palo Pinto,Texas,48363,13,2 +2020-06-10,Palo Pinto,Texas,48363,13,2 +2020-06-11,Palo Pinto,Texas,48363,14,2 +2020-06-12,Palo Pinto,Texas,48363,14,2 +2020-06-13,Palo Pinto,Texas,48363,14,2 +2020-06-14,Palo Pinto,Texas,48363,14,2 +2020-06-15,Palo Pinto,Texas,48363,14,2 +2020-06-16,Palo Pinto,Texas,48363,14,2 +2020-06-17,Palo Pinto,Texas,48363,14,2 +2020-06-18,Palo Pinto,Texas,48363,14,2 +2020-06-19,Palo Pinto,Texas,48363,14,2 +2020-06-20,Palo Pinto,Texas,48363,14,2 +2020-06-21,Palo Pinto,Texas,48363,14,2 +2020-06-22,Palo Pinto,Texas,48363,14,2 +2020-06-23,Palo Pinto,Texas,48363,14,2 +2020-06-24,Palo Pinto,Texas,48363,17,2 +2020-06-25,Palo Pinto,Texas,48363,17,2 +2020-06-26,Palo Pinto,Texas,48363,17,2 +2020-06-27,Palo Pinto,Texas,48363,17,2 +2020-06-28,Palo Pinto,Texas,48363,17,2 +2020-06-29,Palo Pinto,Texas,48363,17,2 +2020-06-30,Palo Pinto,Texas,48363,19,2 +2020-07-01,Palo Pinto,Texas,48363,21,2 +2020-07-02,Palo Pinto,Texas,48363,25,2 +2020-07-03,Palo Pinto,Texas,48363,34,2 +2020-07-04,Palo Pinto,Texas,48363,38,2 +2020-07-05,Palo Pinto,Texas,48363,38,2 +2020-07-06,Palo Pinto,Texas,48363,38,2 +2020-07-07,Palo Pinto,Texas,48363,47,2 +2020-07-08,Palo Pinto,Texas,48363,52,2 +2020-07-09,Palo Pinto,Texas,48363,55,2 +2020-04-02,Panola,Texas,48365,3,0 +2020-04-03,Panola,Texas,48365,4,1 +2020-04-04,Panola,Texas,48365,4,1 +2020-04-05,Panola,Texas,48365,4,1 +2020-04-06,Panola,Texas,48365,4,1 +2020-04-07,Panola,Texas,48365,4,1 +2020-04-08,Panola,Texas,48365,4,1 +2020-04-09,Panola,Texas,48365,7,1 +2020-04-10,Panola,Texas,48365,10,1 +2020-04-11,Panola,Texas,48365,10,1 +2020-04-12,Panola,Texas,48365,10,1 +2020-04-13,Panola,Texas,48365,13,1 +2020-04-14,Panola,Texas,48365,20,1 +2020-04-15,Panola,Texas,48365,22,1 +2020-04-16,Panola,Texas,48365,32,1 +2020-04-17,Panola,Texas,48365,35,1 +2020-04-18,Panola,Texas,48365,37,1 +2020-04-19,Panola,Texas,48365,37,1 +2020-04-20,Panola,Texas,48365,38,1 +2020-04-21,Panola,Texas,48365,47,5 +2020-04-22,Panola,Texas,48365,49,5 +2020-04-23,Panola,Texas,48365,61,5 +2020-04-24,Panola,Texas,48365,70,5 +2020-04-25,Panola,Texas,48365,70,5 +2020-04-26,Panola,Texas,48365,76,5 +2020-04-27,Panola,Texas,48365,78,5 +2020-04-28,Panola,Texas,48365,80,5 +2020-04-29,Panola,Texas,48365,80,5 +2020-04-30,Panola,Texas,48365,107,5 +2020-05-01,Panola,Texas,48365,128,5 +2020-05-02,Panola,Texas,48365,133,5 +2020-05-03,Panola,Texas,48365,133,5 +2020-05-04,Panola,Texas,48365,135,5 +2020-05-05,Panola,Texas,48365,135,5 +2020-05-06,Panola,Texas,48365,136,5 +2020-05-07,Panola,Texas,48365,139,5 +2020-05-08,Panola,Texas,48365,138,5 +2020-05-09,Panola,Texas,48365,138,5 +2020-05-10,Panola,Texas,48365,142,8 +2020-05-11,Panola,Texas,48365,144,8 +2020-05-12,Panola,Texas,48365,149,8 +2020-05-13,Panola,Texas,48365,149,8 +2020-05-14,Panola,Texas,48365,155,8 +2020-05-15,Panola,Texas,48365,158,15 +2020-05-16,Panola,Texas,48365,159,15 +2020-05-17,Panola,Texas,48365,162,15 +2020-05-18,Panola,Texas,48365,162,15 +2020-05-19,Panola,Texas,48365,162,16 +2020-05-20,Panola,Texas,48365,164,19 +2020-05-21,Panola,Texas,48365,164,19 +2020-05-22,Panola,Texas,48365,164,19 +2020-05-23,Panola,Texas,48365,166,20 +2020-05-24,Panola,Texas,48365,171,21 +2020-05-25,Panola,Texas,48365,172,21 +2020-05-26,Panola,Texas,48365,172,21 +2020-05-27,Panola,Texas,48365,173,21 +2020-05-28,Panola,Texas,48365,174,22 +2020-05-29,Panola,Texas,48365,175,23 +2020-05-30,Panola,Texas,48365,178,23 +2020-05-31,Panola,Texas,48365,179,23 +2020-06-01,Panola,Texas,48365,180,23 +2020-06-02,Panola,Texas,48365,180,23 +2020-06-03,Panola,Texas,48365,181,23 +2020-06-04,Panola,Texas,48365,213,23 +2020-06-05,Panola,Texas,48365,213,23 +2020-06-06,Panola,Texas,48365,213,23 +2020-06-07,Panola,Texas,48365,214,23 +2020-06-08,Panola,Texas,48365,214,23 +2020-06-09,Panola,Texas,48365,214,23 +2020-06-10,Panola,Texas,48365,214,23 +2020-06-11,Panola,Texas,48365,214,23 +2020-06-12,Panola,Texas,48365,216,23 +2020-06-13,Panola,Texas,48365,216,23 +2020-06-14,Panola,Texas,48365,219,23 +2020-06-15,Panola,Texas,48365,221,23 +2020-06-16,Panola,Texas,48365,187,23 +2020-06-17,Panola,Texas,48365,188,23 +2020-06-18,Panola,Texas,48365,191,23 +2020-06-19,Panola,Texas,48365,191,23 +2020-06-20,Panola,Texas,48365,193,23 +2020-06-21,Panola,Texas,48365,193,23 +2020-06-22,Panola,Texas,48365,194,23 +2020-06-23,Panola,Texas,48365,195,23 +2020-06-24,Panola,Texas,48365,196,24 +2020-06-25,Panola,Texas,48365,200,25 +2020-06-26,Panola,Texas,48365,200,25 +2020-06-27,Panola,Texas,48365,205,25 +2020-06-28,Panola,Texas,48365,205,25 +2020-06-29,Panola,Texas,48365,209,25 +2020-06-30,Panola,Texas,48365,209,25 +2020-07-01,Panola,Texas,48365,209,24 +2020-07-02,Panola,Texas,48365,212,24 +2020-07-03,Panola,Texas,48365,213,24 +2020-07-04,Panola,Texas,48365,214,24 +2020-07-05,Panola,Texas,48365,216,24 +2020-07-06,Panola,Texas,48365,217,24 +2020-07-07,Panola,Texas,48365,218,24 +2020-07-08,Panola,Texas,48365,218,24 +2020-07-09,Panola,Texas,48365,221,24 +2020-03-24,Parker,Texas,48367,1,0 +2020-03-25,Parker,Texas,48367,1,0 +2020-03-26,Parker,Texas,48367,2,0 +2020-03-27,Parker,Texas,48367,2,0 +2020-03-28,Parker,Texas,48367,4,0 +2020-03-29,Parker,Texas,48367,4,0 +2020-03-30,Parker,Texas,48367,4,0 +2020-03-31,Parker,Texas,48367,4,0 +2020-04-01,Parker,Texas,48367,4,0 +2020-04-02,Parker,Texas,48367,4,0 +2020-04-03,Parker,Texas,48367,5,0 +2020-04-04,Parker,Texas,48367,6,0 +2020-04-05,Parker,Texas,48367,6,0 +2020-04-06,Parker,Texas,48367,6,0 +2020-04-07,Parker,Texas,48367,6,0 +2020-04-08,Parker,Texas,48367,6,0 +2020-04-09,Parker,Texas,48367,6,0 +2020-04-10,Parker,Texas,48367,11,0 +2020-04-11,Parker,Texas,48367,13,0 +2020-04-12,Parker,Texas,48367,13,0 +2020-04-13,Parker,Texas,48367,14,0 +2020-04-14,Parker,Texas,48367,15,0 +2020-04-15,Parker,Texas,48367,16,0 +2020-04-16,Parker,Texas,48367,17,0 +2020-04-17,Parker,Texas,48367,20,0 +2020-04-18,Parker,Texas,48367,21,0 +2020-04-19,Parker,Texas,48367,21,0 +2020-04-20,Parker,Texas,48367,21,0 +2020-04-21,Parker,Texas,48367,21,0 +2020-04-22,Parker,Texas,48367,21,0 +2020-04-23,Parker,Texas,48367,22,0 +2020-04-24,Parker,Texas,48367,23,0 +2020-04-25,Parker,Texas,48367,24,0 +2020-04-26,Parker,Texas,48367,24,0 +2020-04-27,Parker,Texas,48367,24,0 +2020-04-28,Parker,Texas,48367,25,0 +2020-04-29,Parker,Texas,48367,30,0 +2020-04-30,Parker,Texas,48367,30,0 +2020-05-01,Parker,Texas,48367,30,0 +2020-05-02,Parker,Texas,48367,35,0 +2020-05-03,Parker,Texas,48367,35,0 +2020-05-04,Parker,Texas,48367,39,0 +2020-05-05,Parker,Texas,48367,40,0 +2020-05-06,Parker,Texas,48367,41,0 +2020-05-07,Parker,Texas,48367,43,0 +2020-05-08,Parker,Texas,48367,44,0 +2020-05-09,Parker,Texas,48367,45,0 +2020-05-10,Parker,Texas,48367,45,0 +2020-05-11,Parker,Texas,48367,45,0 +2020-05-12,Parker,Texas,48367,45,0 +2020-05-13,Parker,Texas,48367,47,0 +2020-05-14,Parker,Texas,48367,56,0 +2020-05-15,Parker,Texas,48367,57,0 +2020-05-16,Parker,Texas,48367,57,0 +2020-05-17,Parker,Texas,48367,57,0 +2020-05-18,Parker,Texas,48367,57,0 +2020-05-19,Parker,Texas,48367,63,0 +2020-05-20,Parker,Texas,48367,64,0 +2020-05-21,Parker,Texas,48367,67,1 +2020-05-22,Parker,Texas,48367,67,1 +2020-05-23,Parker,Texas,48367,67,1 +2020-05-24,Parker,Texas,48367,67,1 +2020-05-25,Parker,Texas,48367,67,1 +2020-05-26,Parker,Texas,48367,68,1 +2020-05-27,Parker,Texas,48367,68,1 +2020-05-28,Parker,Texas,48367,70,1 +2020-05-29,Parker,Texas,48367,74,1 +2020-05-30,Parker,Texas,48367,76,1 +2020-05-31,Parker,Texas,48367,76,1 +2020-06-01,Parker,Texas,48367,76,1 +2020-06-02,Parker,Texas,48367,79,1 +2020-06-03,Parker,Texas,48367,81,1 +2020-06-04,Parker,Texas,48367,81,1 +2020-06-05,Parker,Texas,48367,87,1 +2020-06-06,Parker,Texas,48367,92,1 +2020-06-07,Parker,Texas,48367,92,1 +2020-06-08,Parker,Texas,48367,92,1 +2020-06-09,Parker,Texas,48367,104,1 +2020-06-10,Parker,Texas,48367,105,1 +2020-06-11,Parker,Texas,48367,105,1 +2020-06-12,Parker,Texas,48367,110,1 +2020-06-13,Parker,Texas,48367,112,1 +2020-06-14,Parker,Texas,48367,112,1 +2020-06-15,Parker,Texas,48367,112,1 +2020-06-16,Parker,Texas,48367,116,1 +2020-06-17,Parker,Texas,48367,118,1 +2020-06-18,Parker,Texas,48367,120,1 +2020-06-19,Parker,Texas,48367,124,1 +2020-06-20,Parker,Texas,48367,124,1 +2020-06-21,Parker,Texas,48367,124,1 +2020-06-22,Parker,Texas,48367,124,1 +2020-06-23,Parker,Texas,48367,138,1 +2020-06-24,Parker,Texas,48367,177,1 +2020-06-25,Parker,Texas,48367,177,1 +2020-06-26,Parker,Texas,48367,177,1 +2020-06-27,Parker,Texas,48367,260,1 +2020-06-28,Parker,Texas,48367,255,1 +2020-06-29,Parker,Texas,48367,255,1 +2020-06-30,Parker,Texas,48367,286,1 +2020-07-01,Parker,Texas,48367,291,1 +2020-07-02,Parker,Texas,48367,304,1 +2020-07-03,Parker,Texas,48367,333,1 +2020-07-04,Parker,Texas,48367,344,1 +2020-07-05,Parker,Texas,48367,344,1 +2020-07-06,Parker,Texas,48367,344,1 +2020-07-07,Parker,Texas,48367,388,1 +2020-07-08,Parker,Texas,48367,473,1 +2020-07-09,Parker,Texas,48367,507,1 +2020-04-19,Parmer,Texas,48369,1,0 +2020-04-20,Parmer,Texas,48369,1,0 +2020-04-21,Parmer,Texas,48369,2,0 +2020-04-22,Parmer,Texas,48369,3,0 +2020-04-23,Parmer,Texas,48369,3,0 +2020-04-24,Parmer,Texas,48369,4,0 +2020-04-25,Parmer,Texas,48369,4,0 +2020-04-26,Parmer,Texas,48369,4,0 +2020-04-27,Parmer,Texas,48369,4,0 +2020-04-28,Parmer,Texas,48369,6,0 +2020-04-29,Parmer,Texas,48369,6,0 +2020-04-30,Parmer,Texas,48369,6,0 +2020-05-01,Parmer,Texas,48369,8,0 +2020-05-02,Parmer,Texas,48369,8,0 +2020-05-03,Parmer,Texas,48369,8,0 +2020-05-04,Parmer,Texas,48369,13,0 +2020-05-05,Parmer,Texas,48369,13,0 +2020-05-06,Parmer,Texas,48369,14,0 +2020-05-07,Parmer,Texas,48369,17,0 +2020-05-08,Parmer,Texas,48369,17,0 +2020-05-09,Parmer,Texas,48369,19,0 +2020-05-10,Parmer,Texas,48369,19,0 +2020-05-11,Parmer,Texas,48369,19,0 +2020-05-12,Parmer,Texas,48369,21,0 +2020-05-13,Parmer,Texas,48369,22,0 +2020-05-14,Parmer,Texas,48369,23,0 +2020-05-15,Parmer,Texas,48369,23,0 +2020-05-16,Parmer,Texas,48369,25,0 +2020-05-17,Parmer,Texas,48369,26,0 +2020-05-18,Parmer,Texas,48369,34,0 +2020-05-19,Parmer,Texas,48369,36,0 +2020-05-20,Parmer,Texas,48369,39,0 +2020-05-21,Parmer,Texas,48369,39,0 +2020-05-22,Parmer,Texas,48369,39,0 +2020-05-23,Parmer,Texas,48369,51,0 +2020-05-24,Parmer,Texas,48369,53,0 +2020-05-25,Parmer,Texas,48369,53,0 +2020-05-26,Parmer,Texas,48369,54,0 +2020-05-27,Parmer,Texas,48369,54,0 +2020-05-28,Parmer,Texas,48369,53,0 +2020-05-29,Parmer,Texas,48369,55,0 +2020-05-30,Parmer,Texas,48369,59,0 +2020-05-31,Parmer,Texas,48369,59,0 +2020-06-01,Parmer,Texas,48369,59,0 +2020-06-02,Parmer,Texas,48369,59,0 +2020-06-03,Parmer,Texas,48369,69,0 +2020-06-04,Parmer,Texas,48369,71,0 +2020-06-05,Parmer,Texas,48369,88,0 +2020-06-06,Parmer,Texas,48369,89,0 +2020-06-07,Parmer,Texas,48369,89,0 +2020-06-08,Parmer,Texas,48369,89,0 +2020-06-09,Parmer,Texas,48369,98,0 +2020-06-10,Parmer,Texas,48369,98,0 +2020-06-11,Parmer,Texas,48369,100,0 +2020-06-12,Parmer,Texas,48369,111,0 +2020-06-13,Parmer,Texas,48369,120,0 +2020-06-14,Parmer,Texas,48369,120,0 +2020-06-15,Parmer,Texas,48369,120,0 +2020-06-16,Parmer,Texas,48369,124,0 +2020-06-17,Parmer,Texas,48369,132,0 +2020-06-18,Parmer,Texas,48369,139,0 +2020-06-19,Parmer,Texas,48369,155,0 +2020-06-20,Parmer,Texas,48369,155,0 +2020-06-21,Parmer,Texas,48369,155,0 +2020-06-22,Parmer,Texas,48369,158,2 +2020-06-23,Parmer,Texas,48369,165,2 +2020-06-24,Parmer,Texas,48369,167,3 +2020-06-25,Parmer,Texas,48369,174,3 +2020-06-26,Parmer,Texas,48369,184,5 +2020-06-27,Parmer,Texas,48369,188,8 +2020-06-28,Parmer,Texas,48369,188,8 +2020-06-29,Parmer,Texas,48369,188,8 +2020-06-30,Parmer,Texas,48369,191,8 +2020-07-01,Parmer,Texas,48369,199,8 +2020-07-02,Parmer,Texas,48369,205,8 +2020-07-03,Parmer,Texas,48369,213,8 +2020-07-04,Parmer,Texas,48369,215,8 +2020-07-05,Parmer,Texas,48369,215,8 +2020-07-06,Parmer,Texas,48369,215,8 +2020-07-07,Parmer,Texas,48369,227,8 +2020-07-08,Parmer,Texas,48369,229,8 +2020-07-09,Parmer,Texas,48369,236,8 +2020-04-06,Pecos,Texas,48371,1,0 +2020-04-07,Pecos,Texas,48371,1,0 +2020-04-08,Pecos,Texas,48371,1,0 +2020-04-09,Pecos,Texas,48371,1,0 +2020-04-10,Pecos,Texas,48371,1,0 +2020-04-11,Pecos,Texas,48371,1,0 +2020-04-12,Pecos,Texas,48371,1,0 +2020-04-13,Pecos,Texas,48371,1,0 +2020-04-14,Pecos,Texas,48371,1,0 +2020-04-15,Pecos,Texas,48371,5,0 +2020-04-16,Pecos,Texas,48371,5,0 +2020-04-17,Pecos,Texas,48371,5,0 +2020-04-18,Pecos,Texas,48371,5,0 +2020-04-19,Pecos,Texas,48371,5,0 +2020-04-20,Pecos,Texas,48371,5,0 +2020-04-21,Pecos,Texas,48371,5,0 +2020-04-22,Pecos,Texas,48371,5,0 +2020-04-23,Pecos,Texas,48371,6,0 +2020-04-24,Pecos,Texas,48371,6,0 +2020-04-25,Pecos,Texas,48371,8,0 +2020-04-26,Pecos,Texas,48371,6,0 +2020-04-27,Pecos,Texas,48371,9,0 +2020-04-28,Pecos,Texas,48371,9,0 +2020-04-29,Pecos,Texas,48371,9,0 +2020-04-30,Pecos,Texas,48371,9,0 +2020-05-01,Pecos,Texas,48371,11,0 +2020-05-02,Pecos,Texas,48371,10,0 +2020-05-03,Pecos,Texas,48371,10,0 +2020-05-04,Pecos,Texas,48371,10,0 +2020-05-05,Pecos,Texas,48371,13,0 +2020-05-06,Pecos,Texas,48371,14,0 +2020-05-07,Pecos,Texas,48371,14,0 +2020-05-08,Pecos,Texas,48371,14,0 +2020-05-09,Pecos,Texas,48371,15,0 +2020-05-10,Pecos,Texas,48371,15,0 +2020-05-11,Pecos,Texas,48371,15,0 +2020-05-12,Pecos,Texas,48371,19,0 +2020-05-13,Pecos,Texas,48371,20,0 +2020-05-14,Pecos,Texas,48371,20,0 +2020-05-15,Pecos,Texas,48371,20,0 +2020-05-16,Pecos,Texas,48371,20,0 +2020-05-17,Pecos,Texas,48371,20,0 +2020-05-18,Pecos,Texas,48371,20,0 +2020-05-19,Pecos,Texas,48371,23,0 +2020-05-20,Pecos,Texas,48371,24,0 +2020-05-21,Pecos,Texas,48371,24,0 +2020-05-22,Pecos,Texas,48371,24,0 +2020-05-23,Pecos,Texas,48371,27,0 +2020-05-24,Pecos,Texas,48371,27,0 +2020-05-25,Pecos,Texas,48371,27,0 +2020-05-26,Pecos,Texas,48371,27,0 +2020-05-27,Pecos,Texas,48371,27,0 +2020-05-28,Pecos,Texas,48371,56,0 +2020-05-29,Pecos,Texas,48371,66,0 +2020-05-30,Pecos,Texas,48371,66,0 +2020-05-31,Pecos,Texas,48371,93,0 +2020-06-01,Pecos,Texas,48371,102,0 +2020-06-02,Pecos,Texas,48371,102,0 +2020-06-03,Pecos,Texas,48371,103,0 +2020-06-04,Pecos,Texas,48371,103,0 +2020-06-05,Pecos,Texas,48371,103,0 +2020-06-06,Pecos,Texas,48371,104,0 +2020-06-07,Pecos,Texas,48371,105,0 +2020-06-08,Pecos,Texas,48371,105,0 +2020-06-09,Pecos,Texas,48371,27,0 +2020-06-10,Pecos,Texas,48371,107,0 +2020-06-11,Pecos,Texas,48371,107,0 +2020-06-12,Pecos,Texas,48371,107,0 +2020-06-13,Pecos,Texas,48371,107,0 +2020-06-14,Pecos,Texas,48371,107,0 +2020-06-15,Pecos,Texas,48371,107,0 +2020-06-16,Pecos,Texas,48371,112,0 +2020-06-17,Pecos,Texas,48371,111,0 +2020-06-18,Pecos,Texas,48371,111,0 +2020-06-19,Pecos,Texas,48371,112,0 +2020-06-20,Pecos,Texas,48371,112,0 +2020-06-21,Pecos,Texas,48371,112,0 +2020-06-22,Pecos,Texas,48371,112,0 +2020-06-23,Pecos,Texas,48371,112,0 +2020-06-24,Pecos,Texas,48371,113,0 +2020-06-25,Pecos,Texas,48371,116,0 +2020-06-26,Pecos,Texas,48371,116,0 +2020-06-27,Pecos,Texas,48371,120,0 +2020-06-28,Pecos,Texas,48371,117,0 +2020-06-29,Pecos,Texas,48371,120,0 +2020-06-30,Pecos,Texas,48371,124,0 +2020-07-01,Pecos,Texas,48371,127,0 +2020-07-02,Pecos,Texas,48371,130,0 +2020-07-03,Pecos,Texas,48371,131,0 +2020-07-04,Pecos,Texas,48371,132,0 +2020-07-05,Pecos,Texas,48371,131,0 +2020-07-06,Pecos,Texas,48371,131,0 +2020-07-07,Pecos,Texas,48371,135,1 +2020-07-08,Pecos,Texas,48371,135,1 +2020-07-09,Pecos,Texas,48371,138,1 +2020-03-29,Polk,Texas,48373,1,0 +2020-03-30,Polk,Texas,48373,1,0 +2020-03-31,Polk,Texas,48373,4,0 +2020-04-01,Polk,Texas,48373,4,0 +2020-04-02,Polk,Texas,48373,4,0 +2020-04-03,Polk,Texas,48373,7,0 +2020-04-04,Polk,Texas,48373,7,0 +2020-04-05,Polk,Texas,48373,7,0 +2020-04-06,Polk,Texas,48373,8,0 +2020-04-07,Polk,Texas,48373,8,0 +2020-04-08,Polk,Texas,48373,8,0 +2020-04-09,Polk,Texas,48373,8,0 +2020-04-10,Polk,Texas,48373,9,0 +2020-04-11,Polk,Texas,48373,9,0 +2020-04-12,Polk,Texas,48373,9,0 +2020-04-13,Polk,Texas,48373,9,0 +2020-04-14,Polk,Texas,48373,11,0 +2020-04-15,Polk,Texas,48373,14,0 +2020-04-16,Polk,Texas,48373,14,0 +2020-04-17,Polk,Texas,48373,14,0 +2020-04-18,Polk,Texas,48373,14,0 +2020-04-19,Polk,Texas,48373,14,0 +2020-04-20,Polk,Texas,48373,14,0 +2020-04-21,Polk,Texas,48373,15,0 +2020-04-22,Polk,Texas,48373,15,0 +2020-04-23,Polk,Texas,48373,17,0 +2020-04-24,Polk,Texas,48373,18,0 +2020-04-25,Polk,Texas,48373,18,0 +2020-04-26,Polk,Texas,48373,18,0 +2020-04-27,Polk,Texas,48373,18,0 +2020-04-28,Polk,Texas,48373,18,0 +2020-04-29,Polk,Texas,48373,19,0 +2020-04-30,Polk,Texas,48373,19,0 +2020-05-01,Polk,Texas,48373,20,0 +2020-05-02,Polk,Texas,48373,20,0 +2020-05-03,Polk,Texas,48373,20,0 +2020-05-04,Polk,Texas,48373,20,0 +2020-05-05,Polk,Texas,48373,30,0 +2020-05-06,Polk,Texas,48373,30,0 +2020-05-07,Polk,Texas,48373,30,0 +2020-05-08,Polk,Texas,48373,35,0 +2020-05-09,Polk,Texas,48373,35,0 +2020-05-10,Polk,Texas,48373,35,0 +2020-05-11,Polk,Texas,48373,35,0 +2020-05-12,Polk,Texas,48373,40,0 +2020-05-13,Polk,Texas,48373,40,0 +2020-05-14,Polk,Texas,48373,46,0 +2020-05-15,Polk,Texas,48373,47,0 +2020-05-16,Polk,Texas,48373,47,0 +2020-05-17,Polk,Texas,48373,47,0 +2020-05-18,Polk,Texas,48373,47,0 +2020-05-19,Polk,Texas,48373,50,0 +2020-05-20,Polk,Texas,48373,50,0 +2020-05-21,Polk,Texas,48373,52,0 +2020-05-22,Polk,Texas,48373,52,0 +2020-05-23,Polk,Texas,48373,52,0 +2020-05-24,Polk,Texas,48373,52,0 +2020-05-25,Polk,Texas,48373,52,0 +2020-05-26,Polk,Texas,48373,52,0 +2020-05-27,Polk,Texas,48373,53,0 +2020-05-28,Polk,Texas,48373,54,0 +2020-05-29,Polk,Texas,48373,55,0 +2020-05-30,Polk,Texas,48373,56,0 +2020-05-31,Polk,Texas,48373,56,0 +2020-06-01,Polk,Texas,48373,56,0 +2020-06-02,Polk,Texas,48373,60,0 +2020-06-03,Polk,Texas,48373,60,0 +2020-06-04,Polk,Texas,48373,60,0 +2020-06-05,Polk,Texas,48373,60,0 +2020-06-06,Polk,Texas,48373,61,0 +2020-06-07,Polk,Texas,48373,61,0 +2020-06-08,Polk,Texas,48373,61,0 +2020-06-09,Polk,Texas,48373,61,0 +2020-06-10,Polk,Texas,48373,62,0 +2020-06-11,Polk,Texas,48373,62,0 +2020-06-12,Polk,Texas,48373,65,0 +2020-06-13,Polk,Texas,48373,65,0 +2020-06-14,Polk,Texas,48373,65,0 +2020-06-15,Polk,Texas,48373,65,0 +2020-06-16,Polk,Texas,48373,71,0 +2020-06-17,Polk,Texas,48373,72,0 +2020-06-18,Polk,Texas,48373,73,0 +2020-06-19,Polk,Texas,48373,73,0 +2020-06-20,Polk,Texas,48373,75,0 +2020-06-21,Polk,Texas,48373,75,0 +2020-06-22,Polk,Texas,48373,75,0 +2020-06-23,Polk,Texas,48373,85,0 +2020-06-24,Polk,Texas,48373,88,0 +2020-06-25,Polk,Texas,48373,95,0 +2020-06-26,Polk,Texas,48373,106,0 +2020-06-27,Polk,Texas,48373,106,0 +2020-06-28,Polk,Texas,48373,106,0 +2020-06-29,Polk,Texas,48373,106,0 +2020-06-30,Polk,Texas,48373,113,0 +2020-07-01,Polk,Texas,48373,155,0 +2020-07-02,Polk,Texas,48373,170,0 +2020-07-03,Polk,Texas,48373,170,0 +2020-07-04,Polk,Texas,48373,170,0 +2020-07-05,Polk,Texas,48373,170,0 +2020-07-06,Polk,Texas,48373,170,0 +2020-07-07,Polk,Texas,48373,205,0 +2020-07-08,Polk,Texas,48373,268,0 +2020-07-09,Polk,Texas,48373,288,0 +2020-03-21,Potter,Texas,48375,2,0 +2020-03-22,Potter,Texas,48375,2,0 +2020-03-23,Potter,Texas,48375,2,0 +2020-03-24,Potter,Texas,48375,2,0 +2020-03-25,Potter,Texas,48375,2,0 +2020-03-26,Potter,Texas,48375,2,0 +2020-03-27,Potter,Texas,48375,2,0 +2020-03-28,Potter,Texas,48375,2,0 +2020-03-29,Potter,Texas,48375,4,0 +2020-03-30,Potter,Texas,48375,5,0 +2020-03-31,Potter,Texas,48375,5,0 +2020-04-01,Potter,Texas,48375,16,0 +2020-04-02,Potter,Texas,48375,16,0 +2020-04-03,Potter,Texas,48375,21,0 +2020-04-04,Potter,Texas,48375,24,0 +2020-04-05,Potter,Texas,48375,40,1 +2020-04-06,Potter,Texas,48375,41,1 +2020-04-07,Potter,Texas,48375,41,1 +2020-04-08,Potter,Texas,48375,47,1 +2020-04-09,Potter,Texas,48375,58,1 +2020-04-10,Potter,Texas,48375,66,2 +2020-04-11,Potter,Texas,48375,66,2 +2020-04-12,Potter,Texas,48375,70,2 +2020-04-13,Potter,Texas,48375,70,2 +2020-04-14,Potter,Texas,48375,79,2 +2020-04-15,Potter,Texas,48375,79,2 +2020-04-16,Potter,Texas,48375,92,2 +2020-04-17,Potter,Texas,48375,101,2 +2020-04-18,Potter,Texas,48375,110,2 +2020-04-19,Potter,Texas,48375,130,2 +2020-04-20,Potter,Texas,48375,142,3 +2020-04-21,Potter,Texas,48375,160,4 +2020-04-22,Potter,Texas,48375,204,5 +2020-04-23,Potter,Texas,48375,221,5 +2020-04-24,Potter,Texas,48375,280,6 +2020-04-25,Potter,Texas,48375,326,6 +2020-04-26,Potter,Texas,48375,333,6 +2020-04-27,Potter,Texas,48375,396,6 +2020-04-28,Potter,Texas,48375,396,6 +2020-04-29,Potter,Texas,48375,499,8 +2020-04-30,Potter,Texas,48375,572,8 +2020-05-01,Potter,Texas,48375,684,9 +2020-05-02,Potter,Texas,48375,766,9 +2020-05-03,Potter,Texas,48375,818,9 +2020-05-04,Potter,Texas,48375,876,9 +2020-05-05,Potter,Texas,48375,907,12 +2020-05-06,Potter,Texas,48375,971,15 +2020-05-07,Potter,Texas,48375,1027,15 +2020-05-08,Potter,Texas,48375,1101,15 +2020-05-09,Potter,Texas,48375,1101,15 +2020-05-10,Potter,Texas,48375,1124,15 +2020-05-11,Potter,Texas,48375,1179,17 +2020-05-12,Potter,Texas,48375,1327,17 +2020-05-13,Potter,Texas,48375,1421,21 +2020-05-14,Potter,Texas,48375,1462,23 +2020-05-15,Potter,Texas,48375,2080,23 +2020-05-16,Potter,Texas,48375,2129,23 +2020-05-17,Potter,Texas,48375,2129,23 +2020-05-18,Potter,Texas,48375,2145,23 +2020-05-19,Potter,Texas,48375,2193,24 +2020-05-20,Potter,Texas,48375,2196,24 +2020-05-21,Potter,Texas,48375,2202,25 +2020-05-22,Potter,Texas,48375,2229,26 +2020-05-23,Potter,Texas,48375,2238,26 +2020-05-24,Potter,Texas,48375,2238,26 +2020-05-25,Potter,Texas,48375,2238,26 +2020-05-26,Potter,Texas,48375,2251,26 +2020-05-27,Potter,Texas,48375,2266,27 +2020-05-28,Potter,Texas,48375,2276,28 +2020-05-29,Potter,Texas,48375,2317,28 +2020-05-30,Potter,Texas,48375,2321,30 +2020-05-31,Potter,Texas,48375,2321,30 +2020-06-01,Potter,Texas,48375,2354,30 +2020-06-02,Potter,Texas,48375,2432,31 +2020-06-03,Potter,Texas,48375,2488,31 +2020-06-04,Potter,Texas,48375,2488,31 +2020-06-05,Potter,Texas,48375,2754,32 +2020-06-06,Potter,Texas,48375,2756,32 +2020-06-07,Potter,Texas,48375,2756,32 +2020-06-08,Potter,Texas,48375,2763,32 +2020-06-09,Potter,Texas,48375,2766,32 +2020-06-10,Potter,Texas,48375,2778,36 +2020-06-11,Potter,Texas,48375,2783,36 +2020-06-12,Potter,Texas,48375,2785,36 +2020-06-13,Potter,Texas,48375,2785,36 +2020-06-14,Potter,Texas,48375,2785,36 +2020-06-15,Potter,Texas,48375,2789,36 +2020-06-16,Potter,Texas,48375,2798,37 +2020-06-17,Potter,Texas,48375,2811,38 +2020-06-18,Potter,Texas,48375,2819,39 +2020-06-19,Potter,Texas,48375,2822,39 +2020-06-20,Potter,Texas,48375,2822,39 +2020-06-21,Potter,Texas,48375,2822,39 +2020-06-22,Potter,Texas,48375,2831,39 +2020-06-23,Potter,Texas,48375,2838,39 +2020-06-24,Potter,Texas,48375,2843,39 +2020-06-25,Potter,Texas,48375,2854,39 +2020-06-26,Potter,Texas,48375,2858,39 +2020-06-27,Potter,Texas,48375,2858,39 +2020-06-28,Potter,Texas,48375,2858,39 +2020-06-29,Potter,Texas,48375,2873,39 +2020-06-30,Potter,Texas,48375,2885,39 +2020-07-01,Potter,Texas,48375,2913,39 +2020-07-02,Potter,Texas,48375,2937,39 +2020-07-03,Potter,Texas,48375,2937,39 +2020-07-04,Potter,Texas,48375,2937,39 +2020-07-05,Potter,Texas,48375,2937,39 +2020-07-06,Potter,Texas,48375,2978,39 +2020-07-07,Potter,Texas,48375,3008,39 +2020-07-08,Potter,Texas,48375,3025,39 +2020-07-09,Potter,Texas,48375,3038,39 +2020-05-25,Presidio,Texas,48377,1,0 +2020-05-26,Presidio,Texas,48377,1,0 +2020-05-27,Presidio,Texas,48377,1,0 +2020-05-28,Presidio,Texas,48377,1,0 +2020-05-29,Presidio,Texas,48377,1,0 +2020-05-30,Presidio,Texas,48377,1,0 +2020-05-31,Presidio,Texas,48377,1,0 +2020-06-01,Presidio,Texas,48377,1,0 +2020-06-02,Presidio,Texas,48377,1,0 +2020-06-03,Presidio,Texas,48377,1,0 +2020-06-04,Presidio,Texas,48377,1,0 +2020-06-05,Presidio,Texas,48377,1,0 +2020-06-06,Presidio,Texas,48377,2,0 +2020-06-07,Presidio,Texas,48377,2,0 +2020-06-08,Presidio,Texas,48377,2,0 +2020-06-09,Presidio,Texas,48377,2,0 +2020-06-10,Presidio,Texas,48377,2,0 +2020-06-11,Presidio,Texas,48377,2,0 +2020-06-12,Presidio,Texas,48377,2,0 +2020-06-13,Presidio,Texas,48377,2,0 +2020-06-14,Presidio,Texas,48377,2,0 +2020-06-15,Presidio,Texas,48377,2,0 +2020-06-16,Presidio,Texas,48377,2,0 +2020-06-17,Presidio,Texas,48377,11,0 +2020-06-18,Presidio,Texas,48377,11,0 +2020-06-19,Presidio,Texas,48377,11,0 +2020-06-20,Presidio,Texas,48377,11,0 +2020-06-21,Presidio,Texas,48377,11,0 +2020-06-22,Presidio,Texas,48377,13,0 +2020-06-23,Presidio,Texas,48377,14,0 +2020-06-24,Presidio,Texas,48377,14,0 +2020-06-25,Presidio,Texas,48377,14,0 +2020-06-26,Presidio,Texas,48377,14,0 +2020-06-27,Presidio,Texas,48377,15,0 +2020-06-28,Presidio,Texas,48377,15,0 +2020-06-29,Presidio,Texas,48377,15,0 +2020-06-30,Presidio,Texas,48377,19,0 +2020-07-01,Presidio,Texas,48377,19,0 +2020-07-02,Presidio,Texas,48377,19,0 +2020-07-03,Presidio,Texas,48377,19,0 +2020-07-04,Presidio,Texas,48377,19,0 +2020-07-05,Presidio,Texas,48377,19,0 +2020-07-06,Presidio,Texas,48377,19,0 +2020-07-07,Presidio,Texas,48377,19,0 +2020-07-08,Presidio,Texas,48377,19,0 +2020-07-09,Presidio,Texas,48377,26,0 +2020-04-10,Rains,Texas,48379,1,0 +2020-04-11,Rains,Texas,48379,1,0 +2020-04-12,Rains,Texas,48379,1,0 +2020-04-13,Rains,Texas,48379,1,0 +2020-04-14,Rains,Texas,48379,1,0 +2020-04-15,Rains,Texas,48379,2,0 +2020-04-16,Rains,Texas,48379,2,0 +2020-04-17,Rains,Texas,48379,2,0 +2020-04-18,Rains,Texas,48379,2,0 +2020-04-19,Rains,Texas,48379,2,0 +2020-04-20,Rains,Texas,48379,2,0 +2020-04-21,Rains,Texas,48379,2,0 +2020-04-22,Rains,Texas,48379,2,0 +2020-04-23,Rains,Texas,48379,2,0 +2020-04-24,Rains,Texas,48379,2,0 +2020-04-25,Rains,Texas,48379,2,0 +2020-04-26,Rains,Texas,48379,2,0 +2020-04-27,Rains,Texas,48379,2,0 +2020-04-28,Rains,Texas,48379,2,0 +2020-04-29,Rains,Texas,48379,2,0 +2020-04-30,Rains,Texas,48379,2,0 +2020-05-01,Rains,Texas,48379,2,0 +2020-05-02,Rains,Texas,48379,2,0 +2020-05-03,Rains,Texas,48379,2,0 +2020-05-04,Rains,Texas,48379,2,0 +2020-05-05,Rains,Texas,48379,2,0 +2020-05-06,Rains,Texas,48379,2,0 +2020-05-07,Rains,Texas,48379,2,0 +2020-05-08,Rains,Texas,48379,2,0 +2020-05-09,Rains,Texas,48379,2,0 +2020-05-10,Rains,Texas,48379,2,0 +2020-05-11,Rains,Texas,48379,2,0 +2020-05-12,Rains,Texas,48379,2,0 +2020-05-13,Rains,Texas,48379,2,0 +2020-05-14,Rains,Texas,48379,2,0 +2020-05-15,Rains,Texas,48379,2,0 +2020-05-16,Rains,Texas,48379,2,0 +2020-05-17,Rains,Texas,48379,2,0 +2020-05-18,Rains,Texas,48379,2,0 +2020-05-19,Rains,Texas,48379,2,0 +2020-05-20,Rains,Texas,48379,2,0 +2020-05-21,Rains,Texas,48379,3,0 +2020-05-22,Rains,Texas,48379,3,0 +2020-05-23,Rains,Texas,48379,3,0 +2020-05-24,Rains,Texas,48379,3,0 +2020-05-25,Rains,Texas,48379,3,0 +2020-05-26,Rains,Texas,48379,3,0 +2020-05-27,Rains,Texas,48379,3,0 +2020-05-28,Rains,Texas,48379,3,0 +2020-05-29,Rains,Texas,48379,3,0 +2020-05-30,Rains,Texas,48379,3,0 +2020-05-31,Rains,Texas,48379,3,0 +2020-06-01,Rains,Texas,48379,3,0 +2020-06-02,Rains,Texas,48379,3,0 +2020-06-03,Rains,Texas,48379,4,0 +2020-06-04,Rains,Texas,48379,4,0 +2020-06-05,Rains,Texas,48379,4,0 +2020-06-06,Rains,Texas,48379,4,0 +2020-06-07,Rains,Texas,48379,4,0 +2020-06-08,Rains,Texas,48379,4,0 +2020-06-09,Rains,Texas,48379,4,0 +2020-06-10,Rains,Texas,48379,4,0 +2020-06-11,Rains,Texas,48379,4,0 +2020-06-12,Rains,Texas,48379,4,0 +2020-06-13,Rains,Texas,48379,5,0 +2020-06-14,Rains,Texas,48379,5,0 +2020-06-15,Rains,Texas,48379,5,0 +2020-06-16,Rains,Texas,48379,5,0 +2020-06-17,Rains,Texas,48379,6,0 +2020-06-18,Rains,Texas,48379,6,0 +2020-06-19,Rains,Texas,48379,7,0 +2020-06-20,Rains,Texas,48379,8,0 +2020-06-21,Rains,Texas,48379,8,0 +2020-06-22,Rains,Texas,48379,8,0 +2020-06-23,Rains,Texas,48379,8,0 +2020-06-24,Rains,Texas,48379,8,0 +2020-06-25,Rains,Texas,48379,8,0 +2020-06-26,Rains,Texas,48379,8,0 +2020-06-27,Rains,Texas,48379,8,0 +2020-06-28,Rains,Texas,48379,8,0 +2020-06-29,Rains,Texas,48379,8,0 +2020-06-30,Rains,Texas,48379,12,0 +2020-07-01,Rains,Texas,48379,12,0 +2020-07-02,Rains,Texas,48379,13,0 +2020-07-03,Rains,Texas,48379,13,0 +2020-07-04,Rains,Texas,48379,13,0 +2020-07-05,Rains,Texas,48379,14,0 +2020-07-06,Rains,Texas,48379,14,0 +2020-07-07,Rains,Texas,48379,16,0 +2020-07-08,Rains,Texas,48379,16,0 +2020-07-09,Rains,Texas,48379,17,0 +2020-03-27,Randall,Texas,48381,3,0 +2020-03-28,Randall,Texas,48381,3,0 +2020-03-29,Randall,Texas,48381,3,0 +2020-03-30,Randall,Texas,48381,6,0 +2020-03-31,Randall,Texas,48381,6,0 +2020-04-01,Randall,Texas,48381,17,0 +2020-04-02,Randall,Texas,48381,17,0 +2020-04-03,Randall,Texas,48381,21,0 +2020-04-04,Randall,Texas,48381,24,0 +2020-04-05,Randall,Texas,48381,34,0 +2020-04-06,Randall,Texas,48381,36,2 +2020-04-07,Randall,Texas,48381,36,2 +2020-04-08,Randall,Texas,48381,40,2 +2020-04-09,Randall,Texas,48381,52,2 +2020-04-10,Randall,Texas,48381,60,2 +2020-04-11,Randall,Texas,48381,60,2 +2020-04-12,Randall,Texas,48381,64,2 +2020-04-13,Randall,Texas,48381,64,2 +2020-04-14,Randall,Texas,48381,73,2 +2020-04-15,Randall,Texas,48381,73,2 +2020-04-16,Randall,Texas,48381,80,2 +2020-04-17,Randall,Texas,48381,93,2 +2020-04-18,Randall,Texas,48381,97,3 +2020-04-19,Randall,Texas,48381,103,3 +2020-04-20,Randall,Texas,48381,112,3 +2020-04-21,Randall,Texas,48381,115,3 +2020-04-22,Randall,Texas,48381,125,3 +2020-04-23,Randall,Texas,48381,137,3 +2020-04-24,Randall,Texas,48381,149,3 +2020-04-25,Randall,Texas,48381,164,3 +2020-04-26,Randall,Texas,48381,172,3 +2020-04-27,Randall,Texas,48381,191,3 +2020-04-28,Randall,Texas,48381,191,3 +2020-04-29,Randall,Texas,48381,213,3 +2020-04-30,Randall,Texas,48381,234,3 +2020-05-01,Randall,Texas,48381,256,3 +2020-05-02,Randall,Texas,48381,270,3 +2020-05-03,Randall,Texas,48381,279,3 +2020-05-04,Randall,Texas,48381,296,3 +2020-05-05,Randall,Texas,48381,296,3 +2020-05-06,Randall,Texas,48381,333,3 +2020-05-07,Randall,Texas,48381,343,3 +2020-05-08,Randall,Texas,48381,355,3 +2020-05-09,Randall,Texas,48381,355,3 +2020-05-10,Randall,Texas,48381,358,3 +2020-05-11,Randall,Texas,48381,379,3 +2020-05-12,Randall,Texas,48381,413,4 +2020-05-13,Randall,Texas,48381,444,4 +2020-05-14,Randall,Texas,48381,477,4 +2020-05-15,Randall,Texas,48381,593,4 +2020-05-16,Randall,Texas,48381,602,4 +2020-05-17,Randall,Texas,48381,602,4 +2020-05-18,Randall,Texas,48381,611,5 +2020-05-19,Randall,Texas,48381,616,5 +2020-05-20,Randall,Texas,48381,625,5 +2020-05-21,Randall,Texas,48381,629,6 +2020-05-22,Randall,Texas,48381,645,6 +2020-05-23,Randall,Texas,48381,648,6 +2020-05-24,Randall,Texas,48381,648,6 +2020-05-25,Randall,Texas,48381,648,6 +2020-05-26,Randall,Texas,48381,652,6 +2020-05-27,Randall,Texas,48381,655,6 +2020-05-28,Randall,Texas,48381,658,6 +2020-05-29,Randall,Texas,48381,671,6 +2020-05-30,Randall,Texas,48381,674,6 +2020-05-31,Randall,Texas,48381,674,6 +2020-06-01,Randall,Texas,48381,688,6 +2020-06-02,Randall,Texas,48381,711,6 +2020-06-03,Randall,Texas,48381,715,6 +2020-06-04,Randall,Texas,48381,715,6 +2020-06-05,Randall,Texas,48381,727,6 +2020-06-06,Randall,Texas,48381,728,6 +2020-06-07,Randall,Texas,48381,728,6 +2020-06-08,Randall,Texas,48381,737,6 +2020-06-09,Randall,Texas,48381,740,6 +2020-06-10,Randall,Texas,48381,747,6 +2020-06-11,Randall,Texas,48381,748,7 +2020-06-12,Randall,Texas,48381,749,7 +2020-06-13,Randall,Texas,48381,751,7 +2020-06-14,Randall,Texas,48381,751,7 +2020-06-15,Randall,Texas,48381,758,7 +2020-06-16,Randall,Texas,48381,763,7 +2020-06-17,Randall,Texas,48381,769,7 +2020-06-18,Randall,Texas,48381,771,7 +2020-06-19,Randall,Texas,48381,775,6 +2020-06-20,Randall,Texas,48381,775,6 +2020-06-21,Randall,Texas,48381,775,6 +2020-06-22,Randall,Texas,48381,780,6 +2020-06-23,Randall,Texas,48381,793,6 +2020-06-24,Randall,Texas,48381,809,6 +2020-06-25,Randall,Texas,48381,821,6 +2020-06-26,Randall,Texas,48381,825,6 +2020-06-27,Randall,Texas,48381,825,6 +2020-06-28,Randall,Texas,48381,825,6 +2020-06-29,Randall,Texas,48381,844,7 +2020-06-30,Randall,Texas,48381,863,7 +2020-07-01,Randall,Texas,48381,899,7 +2020-07-02,Randall,Texas,48381,918,7 +2020-07-03,Randall,Texas,48381,918,7 +2020-07-04,Randall,Texas,48381,918,7 +2020-07-05,Randall,Texas,48381,918,7 +2020-07-06,Randall,Texas,48381,942,7 +2020-07-07,Randall,Texas,48381,971,7 +2020-07-08,Randall,Texas,48381,1001,7 +2020-07-09,Randall,Texas,48381,1026,7 +2020-05-27,Reagan,Texas,48383,1,0 +2020-05-28,Reagan,Texas,48383,1,0 +2020-05-29,Reagan,Texas,48383,2,0 +2020-05-30,Reagan,Texas,48383,2,0 +2020-05-31,Reagan,Texas,48383,2,0 +2020-06-01,Reagan,Texas,48383,2,0 +2020-06-02,Reagan,Texas,48383,2,0 +2020-06-03,Reagan,Texas,48383,2,0 +2020-06-04,Reagan,Texas,48383,2,0 +2020-06-05,Reagan,Texas,48383,2,0 +2020-06-06,Reagan,Texas,48383,2,0 +2020-06-07,Reagan,Texas,48383,2,0 +2020-06-08,Reagan,Texas,48383,2,0 +2020-06-09,Reagan,Texas,48383,2,0 +2020-06-10,Reagan,Texas,48383,2,0 +2020-06-11,Reagan,Texas,48383,2,0 +2020-06-12,Reagan,Texas,48383,2,0 +2020-06-13,Reagan,Texas,48383,2,0 +2020-06-14,Reagan,Texas,48383,2,0 +2020-06-15,Reagan,Texas,48383,2,0 +2020-06-16,Reagan,Texas,48383,2,0 +2020-06-17,Reagan,Texas,48383,2,0 +2020-06-18,Reagan,Texas,48383,2,0 +2020-06-19,Reagan,Texas,48383,2,0 +2020-06-20,Reagan,Texas,48383,2,0 +2020-06-21,Reagan,Texas,48383,2,0 +2020-06-22,Reagan,Texas,48383,2,0 +2020-06-23,Reagan,Texas,48383,2,0 +2020-06-24,Reagan,Texas,48383,2,0 +2020-06-25,Reagan,Texas,48383,2,0 +2020-06-26,Reagan,Texas,48383,3,0 +2020-06-27,Reagan,Texas,48383,2,0 +2020-06-28,Reagan,Texas,48383,2,0 +2020-06-29,Reagan,Texas,48383,2,0 +2020-06-30,Reagan,Texas,48383,4,0 +2020-07-01,Reagan,Texas,48383,6,0 +2020-07-02,Reagan,Texas,48383,9,0 +2020-07-03,Reagan,Texas,48383,10,0 +2020-07-04,Reagan,Texas,48383,13,0 +2020-07-05,Reagan,Texas,48383,13,0 +2020-07-06,Reagan,Texas,48383,14,0 +2020-07-07,Reagan,Texas,48383,14,0 +2020-07-08,Reagan,Texas,48383,15,0 +2020-07-09,Reagan,Texas,48383,23,0 +2020-06-05,Real,Texas,48385,1,0 +2020-06-06,Real,Texas,48385,1,0 +2020-06-07,Real,Texas,48385,1,0 +2020-06-08,Real,Texas,48385,1,0 +2020-06-09,Real,Texas,48385,1,0 +2020-06-10,Real,Texas,48385,1,0 +2020-06-11,Real,Texas,48385,1,0 +2020-06-12,Real,Texas,48385,1,0 +2020-06-13,Real,Texas,48385,1,0 +2020-06-14,Real,Texas,48385,1,0 +2020-06-15,Real,Texas,48385,1,0 +2020-06-16,Real,Texas,48385,1,0 +2020-06-17,Real,Texas,48385,1,0 +2020-06-18,Real,Texas,48385,1,0 +2020-06-19,Real,Texas,48385,1,0 +2020-06-20,Real,Texas,48385,1,0 +2020-06-21,Real,Texas,48385,1,0 +2020-06-22,Real,Texas,48385,1,0 +2020-06-23,Real,Texas,48385,1,0 +2020-06-24,Real,Texas,48385,1,0 +2020-06-25,Real,Texas,48385,1,0 +2020-06-26,Real,Texas,48385,1,0 +2020-06-27,Real,Texas,48385,1,0 +2020-06-28,Real,Texas,48385,1,0 +2020-06-29,Real,Texas,48385,1,0 +2020-06-30,Real,Texas,48385,1,0 +2020-07-01,Real,Texas,48385,1,0 +2020-07-02,Real,Texas,48385,1,0 +2020-07-03,Real,Texas,48385,2,0 +2020-07-04,Real,Texas,48385,4,0 +2020-07-05,Real,Texas,48385,4,0 +2020-07-06,Real,Texas,48385,4,0 +2020-07-07,Real,Texas,48385,4,0 +2020-07-08,Real,Texas,48385,4,0 +2020-07-09,Real,Texas,48385,4,0 +2020-04-16,Red River,Texas,48387,1,0 +2020-04-17,Red River,Texas,48387,1,0 +2020-04-18,Red River,Texas,48387,1,0 +2020-04-19,Red River,Texas,48387,1,0 +2020-04-20,Red River,Texas,48387,1,0 +2020-04-21,Red River,Texas,48387,1,0 +2020-04-22,Red River,Texas,48387,1,0 +2020-04-23,Red River,Texas,48387,1,0 +2020-04-24,Red River,Texas,48387,1,0 +2020-04-25,Red River,Texas,48387,1,0 +2020-04-26,Red River,Texas,48387,1,0 +2020-04-27,Red River,Texas,48387,1,0 +2020-04-28,Red River,Texas,48387,1,0 +2020-04-29,Red River,Texas,48387,1,0 +2020-04-30,Red River,Texas,48387,1,0 +2020-05-01,Red River,Texas,48387,1,0 +2020-05-02,Red River,Texas,48387,1,0 +2020-05-03,Red River,Texas,48387,1,0 +2020-05-04,Red River,Texas,48387,1,0 +2020-05-05,Red River,Texas,48387,1,0 +2020-05-06,Red River,Texas,48387,1,0 +2020-05-07,Red River,Texas,48387,2,0 +2020-05-08,Red River,Texas,48387,3,0 +2020-05-09,Red River,Texas,48387,3,0 +2020-05-10,Red River,Texas,48387,9,0 +2020-05-11,Red River,Texas,48387,9,0 +2020-05-12,Red River,Texas,48387,27,0 +2020-05-13,Red River,Texas,48387,28,0 +2020-05-14,Red River,Texas,48387,33,0 +2020-05-15,Red River,Texas,48387,35,0 +2020-05-16,Red River,Texas,48387,35,0 +2020-05-17,Red River,Texas,48387,35,0 +2020-05-18,Red River,Texas,48387,35,0 +2020-05-19,Red River,Texas,48387,36,0 +2020-05-20,Red River,Texas,48387,40,4 +2020-05-21,Red River,Texas,48387,42,4 +2020-05-22,Red River,Texas,48387,42,4 +2020-05-23,Red River,Texas,48387,46,4 +2020-05-24,Red River,Texas,48387,46,4 +2020-05-25,Red River,Texas,48387,47,4 +2020-05-26,Red River,Texas,48387,48,4 +2020-05-27,Red River,Texas,48387,50,5 +2020-05-28,Red River,Texas,48387,50,5 +2020-05-29,Red River,Texas,48387,50,8 +2020-05-30,Red River,Texas,48387,66,8 +2020-05-31,Red River,Texas,48387,70,8 +2020-06-01,Red River,Texas,48387,70,8 +2020-06-02,Red River,Texas,48387,72,8 +2020-06-03,Red River,Texas,48387,74,8 +2020-06-04,Red River,Texas,48387,76,8 +2020-06-05,Red River,Texas,48387,76,8 +2020-06-06,Red River,Texas,48387,78,8 +2020-06-07,Red River,Texas,48387,79,8 +2020-06-08,Red River,Texas,48387,79,8 +2020-06-09,Red River,Texas,48387,81,8 +2020-06-10,Red River,Texas,48387,83,8 +2020-06-11,Red River,Texas,48387,86,8 +2020-06-12,Red River,Texas,48387,89,8 +2020-06-13,Red River,Texas,48387,93,8 +2020-06-14,Red River,Texas,48387,93,8 +2020-06-15,Red River,Texas,48387,93,8 +2020-06-16,Red River,Texas,48387,95,8 +2020-06-17,Red River,Texas,48387,95,8 +2020-06-18,Red River,Texas,48387,95,8 +2020-06-19,Red River,Texas,48387,96,8 +2020-06-20,Red River,Texas,48387,99,8 +2020-06-21,Red River,Texas,48387,99,8 +2020-06-22,Red River,Texas,48387,99,8 +2020-06-23,Red River,Texas,48387,99,8 +2020-06-24,Red River,Texas,48387,99,8 +2020-06-25,Red River,Texas,48387,101,8 +2020-06-26,Red River,Texas,48387,105,10 +2020-06-27,Red River,Texas,48387,105,10 +2020-06-28,Red River,Texas,48387,105,10 +2020-06-29,Red River,Texas,48387,105,10 +2020-06-30,Red River,Texas,48387,110,10 +2020-07-01,Red River,Texas,48387,112,10 +2020-07-02,Red River,Texas,48387,112,12 +2020-07-03,Red River,Texas,48387,115,12 +2020-07-04,Red River,Texas,48387,116,12 +2020-07-05,Red River,Texas,48387,117,12 +2020-07-06,Red River,Texas,48387,117,12 +2020-07-07,Red River,Texas,48387,117,12 +2020-07-08,Red River,Texas,48387,117,12 +2020-07-09,Red River,Texas,48387,117,12 +2020-05-08,Reeves,Texas,48389,1,0 +2020-05-09,Reeves,Texas,48389,1,0 +2020-05-10,Reeves,Texas,48389,1,0 +2020-05-11,Reeves,Texas,48389,1,0 +2020-05-12,Reeves,Texas,48389,1,0 +2020-05-13,Reeves,Texas,48389,1,0 +2020-05-14,Reeves,Texas,48389,1,0 +2020-05-15,Reeves,Texas,48389,3,0 +2020-05-16,Reeves,Texas,48389,3,0 +2020-05-17,Reeves,Texas,48389,3,0 +2020-05-18,Reeves,Texas,48389,3,0 +2020-05-19,Reeves,Texas,48389,3,0 +2020-05-20,Reeves,Texas,48389,3,0 +2020-05-21,Reeves,Texas,48389,5,0 +2020-05-22,Reeves,Texas,48389,5,0 +2020-05-23,Reeves,Texas,48389,5,0 +2020-05-24,Reeves,Texas,48389,5,0 +2020-05-25,Reeves,Texas,48389,7,0 +2020-05-26,Reeves,Texas,48389,7,0 +2020-05-27,Reeves,Texas,48389,7,0 +2020-05-28,Reeves,Texas,48389,7,0 +2020-05-29,Reeves,Texas,48389,7,0 +2020-05-30,Reeves,Texas,48389,7,0 +2020-05-31,Reeves,Texas,48389,7,0 +2020-06-01,Reeves,Texas,48389,7,0 +2020-06-02,Reeves,Texas,48389,7,0 +2020-06-03,Reeves,Texas,48389,7,0 +2020-06-04,Reeves,Texas,48389,7,0 +2020-06-05,Reeves,Texas,48389,8,0 +2020-06-06,Reeves,Texas,48389,8,0 +2020-06-07,Reeves,Texas,48389,8,0 +2020-06-08,Reeves,Texas,48389,8,0 +2020-06-09,Reeves,Texas,48389,11,0 +2020-06-10,Reeves,Texas,48389,11,0 +2020-06-11,Reeves,Texas,48389,11,0 +2020-06-12,Reeves,Texas,48389,12,0 +2020-06-13,Reeves,Texas,48389,12,0 +2020-06-14,Reeves,Texas,48389,12,0 +2020-06-15,Reeves,Texas,48389,12,0 +2020-06-16,Reeves,Texas,48389,14,0 +2020-06-17,Reeves,Texas,48389,14,0 +2020-06-18,Reeves,Texas,48389,14,0 +2020-06-19,Reeves,Texas,48389,14,0 +2020-06-20,Reeves,Texas,48389,14,0 +2020-06-21,Reeves,Texas,48389,14,0 +2020-06-22,Reeves,Texas,48389,14,0 +2020-06-23,Reeves,Texas,48389,15,0 +2020-06-24,Reeves,Texas,48389,17,0 +2020-06-25,Reeves,Texas,48389,18,0 +2020-06-26,Reeves,Texas,48389,19,0 +2020-06-27,Reeves,Texas,48389,19,0 +2020-06-28,Reeves,Texas,48389,19,0 +2020-06-29,Reeves,Texas,48389,20,0 +2020-06-30,Reeves,Texas,48389,29,0 +2020-07-01,Reeves,Texas,48389,31,0 +2020-07-02,Reeves,Texas,48389,39,0 +2020-07-03,Reeves,Texas,48389,47,0 +2020-07-04,Reeves,Texas,48389,47,0 +2020-07-05,Reeves,Texas,48389,47,0 +2020-07-06,Reeves,Texas,48389,48,0 +2020-07-07,Reeves,Texas,48389,59,1 +2020-07-08,Reeves,Texas,48389,59,1 +2020-07-09,Reeves,Texas,48389,63,1 +2020-05-04,Refugio,Texas,48391,1,0 +2020-05-05,Refugio,Texas,48391,1,0 +2020-05-06,Refugio,Texas,48391,1,0 +2020-05-07,Refugio,Texas,48391,1,0 +2020-05-08,Refugio,Texas,48391,1,0 +2020-05-09,Refugio,Texas,48391,1,0 +2020-05-10,Refugio,Texas,48391,1,0 +2020-05-11,Refugio,Texas,48391,1,0 +2020-05-12,Refugio,Texas,48391,2,0 +2020-05-13,Refugio,Texas,48391,3,0 +2020-05-14,Refugio,Texas,48391,3,0 +2020-05-15,Refugio,Texas,48391,3,0 +2020-05-16,Refugio,Texas,48391,3,0 +2020-05-17,Refugio,Texas,48391,3,0 +2020-05-18,Refugio,Texas,48391,3,0 +2020-05-19,Refugio,Texas,48391,3,0 +2020-05-20,Refugio,Texas,48391,3,0 +2020-05-21,Refugio,Texas,48391,3,0 +2020-05-22,Refugio,Texas,48391,3,0 +2020-05-23,Refugio,Texas,48391,3,0 +2020-05-24,Refugio,Texas,48391,3,0 +2020-05-25,Refugio,Texas,48391,3,0 +2020-05-26,Refugio,Texas,48391,3,0 +2020-05-27,Refugio,Texas,48391,3,0 +2020-05-28,Refugio,Texas,48391,3,0 +2020-05-29,Refugio,Texas,48391,3,0 +2020-05-30,Refugio,Texas,48391,3,0 +2020-05-31,Refugio,Texas,48391,3,0 +2020-06-01,Refugio,Texas,48391,3,0 +2020-06-02,Refugio,Texas,48391,3,0 +2020-06-03,Refugio,Texas,48391,3,0 +2020-06-04,Refugio,Texas,48391,3,0 +2020-06-05,Refugio,Texas,48391,3,0 +2020-06-06,Refugio,Texas,48391,3,0 +2020-06-07,Refugio,Texas,48391,3,0 +2020-06-08,Refugio,Texas,48391,3,0 +2020-06-09,Refugio,Texas,48391,5,0 +2020-06-10,Refugio,Texas,48391,5,0 +2020-06-11,Refugio,Texas,48391,5,0 +2020-06-12,Refugio,Texas,48391,5,0 +2020-06-13,Refugio,Texas,48391,5,0 +2020-06-14,Refugio,Texas,48391,5,0 +2020-06-15,Refugio,Texas,48391,5,0 +2020-06-16,Refugio,Texas,48391,6,0 +2020-06-17,Refugio,Texas,48391,6,0 +2020-06-18,Refugio,Texas,48391,6,0 +2020-06-19,Refugio,Texas,48391,6,0 +2020-06-20,Refugio,Texas,48391,6,0 +2020-06-21,Refugio,Texas,48391,6,0 +2020-06-22,Refugio,Texas,48391,6,0 +2020-06-23,Refugio,Texas,48391,6,0 +2020-06-24,Refugio,Texas,48391,9,0 +2020-06-25,Refugio,Texas,48391,10,0 +2020-06-26,Refugio,Texas,48391,10,0 +2020-06-27,Refugio,Texas,48391,10,0 +2020-06-28,Refugio,Texas,48391,10,0 +2020-06-29,Refugio,Texas,48391,12,0 +2020-06-30,Refugio,Texas,48391,12,0 +2020-07-01,Refugio,Texas,48391,13,0 +2020-07-02,Refugio,Texas,48391,14,0 +2020-07-03,Refugio,Texas,48391,18,0 +2020-07-04,Refugio,Texas,48391,26,0 +2020-07-05,Refugio,Texas,48391,29,0 +2020-07-06,Refugio,Texas,48391,31,0 +2020-07-07,Refugio,Texas,48391,33,0 +2020-07-08,Refugio,Texas,48391,37,0 +2020-07-09,Refugio,Texas,48391,39,0 +2020-04-16,Roberts,Texas,48393,2,0 +2020-04-17,Roberts,Texas,48393,2,0 +2020-04-18,Roberts,Texas,48393,2,0 +2020-04-19,Roberts,Texas,48393,2,0 +2020-04-20,Roberts,Texas,48393,2,0 +2020-04-21,Roberts,Texas,48393,2,0 +2020-04-22,Roberts,Texas,48393,2,0 +2020-04-23,Roberts,Texas,48393,2,0 +2020-04-24,Roberts,Texas,48393,2,0 +2020-04-25,Roberts,Texas,48393,2,0 +2020-04-26,Roberts,Texas,48393,2,0 +2020-04-27,Roberts,Texas,48393,2,0 +2020-04-28,Roberts,Texas,48393,2,0 +2020-04-29,Roberts,Texas,48393,2,0 +2020-04-30,Roberts,Texas,48393,2,0 +2020-05-01,Roberts,Texas,48393,2,0 +2020-05-02,Roberts,Texas,48393,2,0 +2020-05-03,Roberts,Texas,48393,2,0 +2020-05-04,Roberts,Texas,48393,2,0 +2020-05-05,Roberts,Texas,48393,2,0 +2020-05-06,Roberts,Texas,48393,2,0 +2020-05-07,Roberts,Texas,48393,2,0 +2020-05-08,Roberts,Texas,48393,2,0 +2020-05-09,Roberts,Texas,48393,2,0 +2020-05-10,Roberts,Texas,48393,2,0 +2020-05-11,Roberts,Texas,48393,2,0 +2020-05-12,Roberts,Texas,48393,2,0 +2020-05-13,Roberts,Texas,48393,2,0 +2020-05-14,Roberts,Texas,48393,2,0 +2020-05-15,Roberts,Texas,48393,2,0 +2020-05-16,Roberts,Texas,48393,2,0 +2020-05-17,Roberts,Texas,48393,2,0 +2020-05-18,Roberts,Texas,48393,2,0 +2020-05-19,Roberts,Texas,48393,2,0 +2020-05-20,Roberts,Texas,48393,2,0 +2020-05-21,Roberts,Texas,48393,2,0 +2020-05-22,Roberts,Texas,48393,2,0 +2020-05-23,Roberts,Texas,48393,2,0 +2020-05-24,Roberts,Texas,48393,2,0 +2020-05-25,Roberts,Texas,48393,2,0 +2020-05-26,Roberts,Texas,48393,2,0 +2020-05-27,Roberts,Texas,48393,2,0 +2020-05-28,Roberts,Texas,48393,2,0 +2020-05-29,Roberts,Texas,48393,2,0 +2020-05-30,Roberts,Texas,48393,2,0 +2020-05-31,Roberts,Texas,48393,2,0 +2020-06-01,Roberts,Texas,48393,2,0 +2020-06-02,Roberts,Texas,48393,2,0 +2020-06-03,Roberts,Texas,48393,2,0 +2020-06-04,Roberts,Texas,48393,2,0 +2020-06-05,Roberts,Texas,48393,2,0 +2020-06-06,Roberts,Texas,48393,2,0 +2020-06-07,Roberts,Texas,48393,2,0 +2020-06-08,Roberts,Texas,48393,2,0 +2020-06-09,Roberts,Texas,48393,2,0 +2020-06-10,Roberts,Texas,48393,2,0 +2020-06-11,Roberts,Texas,48393,2,0 +2020-06-12,Roberts,Texas,48393,2,0 +2020-06-13,Roberts,Texas,48393,2,0 +2020-06-14,Roberts,Texas,48393,2,0 +2020-06-15,Roberts,Texas,48393,2,0 +2020-06-16,Roberts,Texas,48393,2,0 +2020-06-17,Roberts,Texas,48393,2,0 +2020-06-18,Roberts,Texas,48393,2,0 +2020-06-19,Roberts,Texas,48393,2,0 +2020-06-20,Roberts,Texas,48393,2,0 +2020-06-21,Roberts,Texas,48393,2,0 +2020-06-22,Roberts,Texas,48393,3,0 +2020-06-23,Roberts,Texas,48393,3,0 +2020-06-24,Roberts,Texas,48393,3,0 +2020-06-25,Roberts,Texas,48393,3,0 +2020-06-26,Roberts,Texas,48393,3,0 +2020-06-27,Roberts,Texas,48393,3,0 +2020-06-28,Roberts,Texas,48393,3,0 +2020-06-29,Roberts,Texas,48393,3,0 +2020-06-30,Roberts,Texas,48393,3,0 +2020-07-01,Roberts,Texas,48393,3,0 +2020-07-02,Roberts,Texas,48393,3,0 +2020-07-03,Roberts,Texas,48393,4,0 +2020-07-04,Roberts,Texas,48393,4,0 +2020-07-05,Roberts,Texas,48393,4,0 +2020-07-06,Roberts,Texas,48393,4,0 +2020-07-07,Roberts,Texas,48393,5,0 +2020-07-08,Roberts,Texas,48393,6,0 +2020-07-09,Roberts,Texas,48393,6,0 +2020-03-25,Robertson,Texas,48395,1,0 +2020-03-26,Robertson,Texas,48395,1,0 +2020-03-27,Robertson,Texas,48395,1,0 +2020-03-28,Robertson,Texas,48395,2,0 +2020-03-29,Robertson,Texas,48395,2,0 +2020-03-30,Robertson,Texas,48395,2,0 +2020-03-31,Robertson,Texas,48395,2,0 +2020-04-01,Robertson,Texas,48395,2,0 +2020-04-02,Robertson,Texas,48395,2,0 +2020-04-03,Robertson,Texas,48395,2,0 +2020-04-04,Robertson,Texas,48395,2,0 +2020-04-05,Robertson,Texas,48395,2,0 +2020-04-06,Robertson,Texas,48395,2,0 +2020-04-07,Robertson,Texas,48395,2,0 +2020-04-08,Robertson,Texas,48395,2,0 +2020-04-09,Robertson,Texas,48395,2,0 +2020-04-10,Robertson,Texas,48395,2,0 +2020-04-11,Robertson,Texas,48395,2,0 +2020-04-12,Robertson,Texas,48395,2,0 +2020-04-13,Robertson,Texas,48395,2,0 +2020-04-14,Robertson,Texas,48395,2,0 +2020-04-15,Robertson,Texas,48395,2,0 +2020-04-16,Robertson,Texas,48395,2,0 +2020-04-17,Robertson,Texas,48395,2,0 +2020-04-18,Robertson,Texas,48395,2,0 +2020-04-19,Robertson,Texas,48395,2,0 +2020-04-20,Robertson,Texas,48395,2,0 +2020-04-21,Robertson,Texas,48395,2,0 +2020-04-22,Robertson,Texas,48395,2,0 +2020-04-23,Robertson,Texas,48395,2,0 +2020-04-24,Robertson,Texas,48395,2,0 +2020-04-25,Robertson,Texas,48395,2,0 +2020-04-26,Robertson,Texas,48395,2,0 +2020-04-27,Robertson,Texas,48395,2,0 +2020-04-28,Robertson,Texas,48395,2,0 +2020-04-29,Robertson,Texas,48395,4,0 +2020-04-30,Robertson,Texas,48395,3,0 +2020-05-01,Robertson,Texas,48395,4,0 +2020-05-02,Robertson,Texas,48395,4,0 +2020-05-03,Robertson,Texas,48395,4,0 +2020-05-04,Robertson,Texas,48395,4,0 +2020-05-05,Robertson,Texas,48395,4,0 +2020-05-06,Robertson,Texas,48395,4,0 +2020-05-07,Robertson,Texas,48395,5,0 +2020-05-08,Robertson,Texas,48395,5,0 +2020-05-09,Robertson,Texas,48395,5,0 +2020-05-10,Robertson,Texas,48395,5,0 +2020-05-11,Robertson,Texas,48395,5,0 +2020-05-12,Robertson,Texas,48395,5,0 +2020-05-13,Robertson,Texas,48395,6,0 +2020-05-14,Robertson,Texas,48395,6,0 +2020-05-15,Robertson,Texas,48395,6,0 +2020-05-16,Robertson,Texas,48395,6,0 +2020-05-17,Robertson,Texas,48395,6,0 +2020-05-18,Robertson,Texas,48395,6,0 +2020-05-19,Robertson,Texas,48395,7,0 +2020-05-20,Robertson,Texas,48395,7,0 +2020-05-21,Robertson,Texas,48395,7,0 +2020-05-22,Robertson,Texas,48395,7,0 +2020-05-23,Robertson,Texas,48395,7,0 +2020-05-24,Robertson,Texas,48395,7,0 +2020-05-25,Robertson,Texas,48395,7,0 +2020-05-26,Robertson,Texas,48395,7,0 +2020-05-27,Robertson,Texas,48395,7,0 +2020-05-28,Robertson,Texas,48395,7,0 +2020-05-29,Robertson,Texas,48395,8,0 +2020-05-30,Robertson,Texas,48395,8,0 +2020-05-31,Robertson,Texas,48395,8,0 +2020-06-01,Robertson,Texas,48395,9,0 +2020-06-02,Robertson,Texas,48395,11,0 +2020-06-03,Robertson,Texas,48395,11,0 +2020-06-04,Robertson,Texas,48395,11,0 +2020-06-05,Robertson,Texas,48395,14,0 +2020-06-06,Robertson,Texas,48395,14,0 +2020-06-07,Robertson,Texas,48395,16,0 +2020-06-08,Robertson,Texas,48395,16,0 +2020-06-09,Robertson,Texas,48395,17,0 +2020-06-10,Robertson,Texas,48395,17,0 +2020-06-11,Robertson,Texas,48395,18,0 +2020-06-12,Robertson,Texas,48395,17,0 +2020-06-13,Robertson,Texas,48395,17,0 +2020-06-14,Robertson,Texas,48395,17,0 +2020-06-15,Robertson,Texas,48395,17,0 +2020-06-16,Robertson,Texas,48395,18,0 +2020-06-17,Robertson,Texas,48395,18,0 +2020-06-18,Robertson,Texas,48395,23,0 +2020-06-19,Robertson,Texas,48395,22,0 +2020-06-20,Robertson,Texas,48395,23,0 +2020-06-21,Robertson,Texas,48395,27,0 +2020-06-22,Robertson,Texas,48395,30,0 +2020-06-23,Robertson,Texas,48395,33,0 +2020-06-24,Robertson,Texas,48395,33,0 +2020-06-25,Robertson,Texas,48395,33,0 +2020-06-26,Robertson,Texas,48395,34,0 +2020-06-27,Robertson,Texas,48395,34,0 +2020-06-28,Robertson,Texas,48395,35,0 +2020-06-29,Robertson,Texas,48395,42,0 +2020-06-30,Robertson,Texas,48395,42,0 +2020-07-01,Robertson,Texas,48395,52,0 +2020-07-02,Robertson,Texas,48395,53,0 +2020-07-03,Robertson,Texas,48395,54,0 +2020-07-04,Robertson,Texas,48395,57,0 +2020-07-05,Robertson,Texas,48395,57,0 +2020-07-06,Robertson,Texas,48395,61,0 +2020-07-07,Robertson,Texas,48395,61,0 +2020-07-08,Robertson,Texas,48395,77,0 +2020-07-09,Robertson,Texas,48395,86,0 +2020-03-26,Rockwall,Texas,48397,2,0 +2020-03-27,Rockwall,Texas,48397,3,0 +2020-03-28,Rockwall,Texas,48397,3,0 +2020-03-29,Rockwall,Texas,48397,4,0 +2020-03-30,Rockwall,Texas,48397,4,0 +2020-03-31,Rockwall,Texas,48397,5,0 +2020-04-01,Rockwall,Texas,48397,9,0 +2020-04-02,Rockwall,Texas,48397,10,0 +2020-04-03,Rockwall,Texas,48397,10,0 +2020-04-04,Rockwall,Texas,48397,11,0 +2020-04-05,Rockwall,Texas,48397,11,0 +2020-04-06,Rockwall,Texas,48397,11,0 +2020-04-07,Rockwall,Texas,48397,11,0 +2020-04-08,Rockwall,Texas,48397,11,0 +2020-04-09,Rockwall,Texas,48397,14,0 +2020-04-10,Rockwall,Texas,48397,16,0 +2020-04-11,Rockwall,Texas,48397,24,0 +2020-04-12,Rockwall,Texas,48397,24,0 +2020-04-13,Rockwall,Texas,48397,24,0 +2020-04-14,Rockwall,Texas,48397,24,0 +2020-04-15,Rockwall,Texas,48397,30,0 +2020-04-16,Rockwall,Texas,48397,30,0 +2020-04-17,Rockwall,Texas,48397,32,0 +2020-04-18,Rockwall,Texas,48397,34,0 +2020-04-19,Rockwall,Texas,48397,34,0 +2020-04-20,Rockwall,Texas,48397,36,0 +2020-04-21,Rockwall,Texas,48397,40,0 +2020-04-22,Rockwall,Texas,48397,48,0 +2020-04-23,Rockwall,Texas,48397,48,0 +2020-04-24,Rockwall,Texas,48397,49,0 +2020-04-25,Rockwall,Texas,48397,51,0 +2020-04-26,Rockwall,Texas,48397,51,0 +2020-04-27,Rockwall,Texas,48397,56,1 +2020-04-28,Rockwall,Texas,48397,58,1 +2020-04-29,Rockwall,Texas,48397,75,1 +2020-04-30,Rockwall,Texas,48397,75,1 +2020-05-01,Rockwall,Texas,48397,75,1 +2020-05-02,Rockwall,Texas,48397,85,3 +2020-05-03,Rockwall,Texas,48397,85,3 +2020-05-04,Rockwall,Texas,48397,88,3 +2020-05-05,Rockwall,Texas,48397,91,3 +2020-05-06,Rockwall,Texas,48397,95,3 +2020-05-07,Rockwall,Texas,48397,96,3 +2020-05-08,Rockwall,Texas,48397,100,4 +2020-05-09,Rockwall,Texas,48397,100,4 +2020-05-10,Rockwall,Texas,48397,100,4 +2020-05-11,Rockwall,Texas,48397,104,5 +2020-05-12,Rockwall,Texas,48397,113,4 +2020-05-13,Rockwall,Texas,48397,116,4 +2020-05-14,Rockwall,Texas,48397,123,4 +2020-05-15,Rockwall,Texas,48397,125,5 +2020-05-16,Rockwall,Texas,48397,134,5 +2020-05-17,Rockwall,Texas,48397,134,5 +2020-05-18,Rockwall,Texas,48397,134,5 +2020-05-19,Rockwall,Texas,48397,136,5 +2020-05-20,Rockwall,Texas,48397,143,5 +2020-05-21,Rockwall,Texas,48397,147,9 +2020-05-22,Rockwall,Texas,48397,147,9 +2020-05-23,Rockwall,Texas,48397,151,10 +2020-05-24,Rockwall,Texas,48397,151,10 +2020-05-25,Rockwall,Texas,48397,151,10 +2020-05-26,Rockwall,Texas,48397,155,11 +2020-05-27,Rockwall,Texas,48397,156,12 +2020-05-28,Rockwall,Texas,48397,159,13 +2020-05-29,Rockwall,Texas,48397,164,13 +2020-05-30,Rockwall,Texas,48397,167,13 +2020-05-31,Rockwall,Texas,48397,167,13 +2020-06-01,Rockwall,Texas,48397,167,13 +2020-06-02,Rockwall,Texas,48397,171,14 +2020-06-03,Rockwall,Texas,48397,171,14 +2020-06-04,Rockwall,Texas,48397,176,14 +2020-06-05,Rockwall,Texas,48397,181,14 +2020-06-06,Rockwall,Texas,48397,183,14 +2020-06-07,Rockwall,Texas,48397,183,14 +2020-06-08,Rockwall,Texas,48397,183,14 +2020-06-09,Rockwall,Texas,48397,189,14 +2020-06-10,Rockwall,Texas,48397,194,14 +2020-06-11,Rockwall,Texas,48397,199,14 +2020-06-12,Rockwall,Texas,48397,203,14 +2020-06-13,Rockwall,Texas,48397,204,14 +2020-06-14,Rockwall,Texas,48397,204,14 +2020-06-15,Rockwall,Texas,48397,204,14 +2020-06-16,Rockwall,Texas,48397,213,15 +2020-06-17,Rockwall,Texas,48397,216,15 +2020-06-18,Rockwall,Texas,48397,222,15 +2020-06-19,Rockwall,Texas,48397,228,16 +2020-06-20,Rockwall,Texas,48397,228,16 +2020-06-21,Rockwall,Texas,48397,228,16 +2020-06-22,Rockwall,Texas,48397,228,16 +2020-06-23,Rockwall,Texas,48397,231,16 +2020-06-24,Rockwall,Texas,48397,276,16 +2020-06-25,Rockwall,Texas,48397,276,16 +2020-06-26,Rockwall,Texas,48397,276,16 +2020-06-27,Rockwall,Texas,48397,331,16 +2020-06-28,Rockwall,Texas,48397,331,16 +2020-06-29,Rockwall,Texas,48397,331,16 +2020-06-30,Rockwall,Texas,48397,360,16 +2020-07-01,Rockwall,Texas,48397,375,16 +2020-07-02,Rockwall,Texas,48397,375,16 +2020-07-03,Rockwall,Texas,48397,377,16 +2020-07-04,Rockwall,Texas,48397,395,16 +2020-07-05,Rockwall,Texas,48397,395,16 +2020-07-06,Rockwall,Texas,48397,395,16 +2020-07-07,Rockwall,Texas,48397,403,16 +2020-07-08,Rockwall,Texas,48397,423,17 +2020-07-09,Rockwall,Texas,48397,423,17 +2020-04-28,Runnels,Texas,48399,1,0 +2020-04-29,Runnels,Texas,48399,1,0 +2020-04-30,Runnels,Texas,48399,1,0 +2020-05-01,Runnels,Texas,48399,1,0 +2020-05-02,Runnels,Texas,48399,2,0 +2020-05-03,Runnels,Texas,48399,2,0 +2020-05-04,Runnels,Texas,48399,2,0 +2020-05-05,Runnels,Texas,48399,2,0 +2020-05-06,Runnels,Texas,48399,2,0 +2020-05-07,Runnels,Texas,48399,2,0 +2020-05-08,Runnels,Texas,48399,2,0 +2020-05-09,Runnels,Texas,48399,2,0 +2020-05-10,Runnels,Texas,48399,2,0 +2020-05-11,Runnels,Texas,48399,2,0 +2020-05-12,Runnels,Texas,48399,2,0 +2020-05-13,Runnels,Texas,48399,2,0 +2020-05-14,Runnels,Texas,48399,2,0 +2020-05-15,Runnels,Texas,48399,2,0 +2020-05-16,Runnels,Texas,48399,2,0 +2020-05-17,Runnels,Texas,48399,2,0 +2020-05-18,Runnels,Texas,48399,2,0 +2020-05-19,Runnels,Texas,48399,2,0 +2020-05-20,Runnels,Texas,48399,2,0 +2020-05-21,Runnels,Texas,48399,2,0 +2020-05-22,Runnels,Texas,48399,2,0 +2020-05-23,Runnels,Texas,48399,2,0 +2020-05-24,Runnels,Texas,48399,2,0 +2020-05-25,Runnels,Texas,48399,2,0 +2020-05-26,Runnels,Texas,48399,2,0 +2020-05-27,Runnels,Texas,48399,2,0 +2020-05-28,Runnels,Texas,48399,2,0 +2020-05-29,Runnels,Texas,48399,3,0 +2020-05-30,Runnels,Texas,48399,3,0 +2020-05-31,Runnels,Texas,48399,3,0 +2020-06-01,Runnels,Texas,48399,3,0 +2020-06-02,Runnels,Texas,48399,2,0 +2020-06-03,Runnels,Texas,48399,2,0 +2020-06-04,Runnels,Texas,48399,2,0 +2020-06-05,Runnels,Texas,48399,3,0 +2020-06-06,Runnels,Texas,48399,3,0 +2020-06-07,Runnels,Texas,48399,3,0 +2020-06-08,Runnels,Texas,48399,3,0 +2020-06-09,Runnels,Texas,48399,3,0 +2020-06-10,Runnels,Texas,48399,2,0 +2020-06-11,Runnels,Texas,48399,2,0 +2020-06-12,Runnels,Texas,48399,2,0 +2020-06-13,Runnels,Texas,48399,2,0 +2020-06-14,Runnels,Texas,48399,2,0 +2020-06-15,Runnels,Texas,48399,2,0 +2020-06-16,Runnels,Texas,48399,2,0 +2020-06-17,Runnels,Texas,48399,2,0 +2020-06-18,Runnels,Texas,48399,2,0 +2020-06-19,Runnels,Texas,48399,3,0 +2020-06-20,Runnels,Texas,48399,3,0 +2020-06-21,Runnels,Texas,48399,3,0 +2020-06-22,Runnels,Texas,48399,3,0 +2020-06-23,Runnels,Texas,48399,3,0 +2020-06-24,Runnels,Texas,48399,5,0 +2020-06-25,Runnels,Texas,48399,5,0 +2020-06-26,Runnels,Texas,48399,5,0 +2020-06-27,Runnels,Texas,48399,5,0 +2020-06-28,Runnels,Texas,48399,5,0 +2020-06-29,Runnels,Texas,48399,5,0 +2020-06-30,Runnels,Texas,48399,7,0 +2020-07-01,Runnels,Texas,48399,8,0 +2020-07-02,Runnels,Texas,48399,11,0 +2020-07-03,Runnels,Texas,48399,17,0 +2020-07-04,Runnels,Texas,48399,17,0 +2020-07-05,Runnels,Texas,48399,17,0 +2020-07-06,Runnels,Texas,48399,17,0 +2020-07-07,Runnels,Texas,48399,17,0 +2020-07-08,Runnels,Texas,48399,17,0 +2020-07-09,Runnels,Texas,48399,19,0 +2020-03-18,Rusk,Texas,48401,1,0 +2020-03-19,Rusk,Texas,48401,1,0 +2020-03-20,Rusk,Texas,48401,1,0 +2020-03-21,Rusk,Texas,48401,1,0 +2020-03-22,Rusk,Texas,48401,1,0 +2020-03-23,Rusk,Texas,48401,1,0 +2020-03-24,Rusk,Texas,48401,1,0 +2020-03-25,Rusk,Texas,48401,1,0 +2020-03-26,Rusk,Texas,48401,2,0 +2020-03-27,Rusk,Texas,48401,2,0 +2020-03-28,Rusk,Texas,48401,2,0 +2020-03-29,Rusk,Texas,48401,3,0 +2020-03-30,Rusk,Texas,48401,3,0 +2020-03-31,Rusk,Texas,48401,3,0 +2020-04-01,Rusk,Texas,48401,5,0 +2020-04-02,Rusk,Texas,48401,6,0 +2020-04-03,Rusk,Texas,48401,7,0 +2020-04-04,Rusk,Texas,48401,11,0 +2020-04-05,Rusk,Texas,48401,12,0 +2020-04-06,Rusk,Texas,48401,12,0 +2020-04-07,Rusk,Texas,48401,12,0 +2020-04-08,Rusk,Texas,48401,12,0 +2020-04-09,Rusk,Texas,48401,14,0 +2020-04-10,Rusk,Texas,48401,14,0 +2020-04-11,Rusk,Texas,48401,14,0 +2020-04-12,Rusk,Texas,48401,16,0 +2020-04-13,Rusk,Texas,48401,15,0 +2020-04-14,Rusk,Texas,48401,16,0 +2020-04-15,Rusk,Texas,48401,17,0 +2020-04-16,Rusk,Texas,48401,24,0 +2020-04-17,Rusk,Texas,48401,25,1 +2020-04-18,Rusk,Texas,48401,27,1 +2020-04-19,Rusk,Texas,48401,27,1 +2020-04-20,Rusk,Texas,48401,27,1 +2020-04-21,Rusk,Texas,48401,27,1 +2020-04-22,Rusk,Texas,48401,28,1 +2020-04-23,Rusk,Texas,48401,28,1 +2020-04-24,Rusk,Texas,48401,30,1 +2020-04-25,Rusk,Texas,48401,30,1 +2020-04-26,Rusk,Texas,48401,32,1 +2020-04-27,Rusk,Texas,48401,32,1 +2020-04-28,Rusk,Texas,48401,33,1 +2020-04-29,Rusk,Texas,48401,33,1 +2020-04-30,Rusk,Texas,48401,35,1 +2020-05-01,Rusk,Texas,48401,36,1 +2020-05-02,Rusk,Texas,48401,36,1 +2020-05-03,Rusk,Texas,48401,36,1 +2020-05-04,Rusk,Texas,48401,36,1 +2020-05-05,Rusk,Texas,48401,38,1 +2020-05-06,Rusk,Texas,48401,39,1 +2020-05-07,Rusk,Texas,48401,40,1 +2020-05-08,Rusk,Texas,48401,40,1 +2020-05-09,Rusk,Texas,48401,40,1 +2020-05-10,Rusk,Texas,48401,40,1 +2020-05-11,Rusk,Texas,48401,40,1 +2020-05-12,Rusk,Texas,48401,40,1 +2020-05-13,Rusk,Texas,48401,40,1 +2020-05-14,Rusk,Texas,48401,40,1 +2020-05-15,Rusk,Texas,48401,40,1 +2020-05-16,Rusk,Texas,48401,42,1 +2020-05-17,Rusk,Texas,48401,42,1 +2020-05-18,Rusk,Texas,48401,42,1 +2020-05-19,Rusk,Texas,48401,42,2 +2020-05-20,Rusk,Texas,48401,42,2 +2020-05-21,Rusk,Texas,48401,42,2 +2020-05-22,Rusk,Texas,48401,42,2 +2020-05-23,Rusk,Texas,48401,42,2 +2020-05-24,Rusk,Texas,48401,43,2 +2020-05-25,Rusk,Texas,48401,43,2 +2020-05-26,Rusk,Texas,48401,44,2 +2020-05-27,Rusk,Texas,48401,44,2 +2020-05-28,Rusk,Texas,48401,45,2 +2020-05-29,Rusk,Texas,48401,45,2 +2020-05-30,Rusk,Texas,48401,52,2 +2020-05-31,Rusk,Texas,48401,55,2 +2020-06-01,Rusk,Texas,48401,55,2 +2020-06-02,Rusk,Texas,48401,56,2 +2020-06-03,Rusk,Texas,48401,57,2 +2020-06-04,Rusk,Texas,48401,59,2 +2020-06-05,Rusk,Texas,48401,60,2 +2020-06-06,Rusk,Texas,48401,63,2 +2020-06-07,Rusk,Texas,48401,64,2 +2020-06-08,Rusk,Texas,48401,64,2 +2020-06-09,Rusk,Texas,48401,67,2 +2020-06-10,Rusk,Texas,48401,65,2 +2020-06-11,Rusk,Texas,48401,68,2 +2020-06-12,Rusk,Texas,48401,68,2 +2020-06-13,Rusk,Texas,48401,70,2 +2020-06-14,Rusk,Texas,48401,70,2 +2020-06-15,Rusk,Texas,48401,128,2 +2020-06-16,Rusk,Texas,48401,232,2 +2020-06-17,Rusk,Texas,48401,233,2 +2020-06-18,Rusk,Texas,48401,241,2 +2020-06-19,Rusk,Texas,48401,245,2 +2020-06-20,Rusk,Texas,48401,250,2 +2020-06-21,Rusk,Texas,48401,250,2 +2020-06-22,Rusk,Texas,48401,250,2 +2020-06-23,Rusk,Texas,48401,253,2 +2020-06-24,Rusk,Texas,48401,253,2 +2020-06-25,Rusk,Texas,48401,262,2 +2020-06-26,Rusk,Texas,48401,265,3 +2020-06-27,Rusk,Texas,48401,264,3 +2020-06-28,Rusk,Texas,48401,264,3 +2020-06-29,Rusk,Texas,48401,266,3 +2020-06-30,Rusk,Texas,48401,268,3 +2020-07-01,Rusk,Texas,48401,277,3 +2020-07-02,Rusk,Texas,48401,279,3 +2020-07-03,Rusk,Texas,48401,281,3 +2020-07-04,Rusk,Texas,48401,273,3 +2020-07-05,Rusk,Texas,48401,283,3 +2020-07-06,Rusk,Texas,48401,283,3 +2020-07-07,Rusk,Texas,48401,289,3 +2020-07-08,Rusk,Texas,48401,292,3 +2020-07-09,Rusk,Texas,48401,266,3 +2020-04-09,Sabine,Texas,48403,1,0 +2020-04-10,Sabine,Texas,48403,1,0 +2020-04-11,Sabine,Texas,48403,1,0 +2020-04-12,Sabine,Texas,48403,1,0 +2020-04-13,Sabine,Texas,48403,1,0 +2020-04-14,Sabine,Texas,48403,1,0 +2020-04-15,Sabine,Texas,48403,1,0 +2020-04-16,Sabine,Texas,48403,1,0 +2020-04-17,Sabine,Texas,48403,1,0 +2020-04-18,Sabine,Texas,48403,1,0 +2020-04-19,Sabine,Texas,48403,1,0 +2020-04-20,Sabine,Texas,48403,1,0 +2020-04-21,Sabine,Texas,48403,1,0 +2020-04-22,Sabine,Texas,48403,1,0 +2020-04-23,Sabine,Texas,48403,1,0 +2020-04-24,Sabine,Texas,48403,1,0 +2020-04-25,Sabine,Texas,48403,1,0 +2020-04-26,Sabine,Texas,48403,1,0 +2020-04-27,Sabine,Texas,48403,1,0 +2020-04-28,Sabine,Texas,48403,1,0 +2020-04-29,Sabine,Texas,48403,1,0 +2020-04-30,Sabine,Texas,48403,1,0 +2020-05-01,Sabine,Texas,48403,1,0 +2020-05-02,Sabine,Texas,48403,1,0 +2020-05-03,Sabine,Texas,48403,1,0 +2020-05-04,Sabine,Texas,48403,1,0 +2020-05-05,Sabine,Texas,48403,1,0 +2020-05-06,Sabine,Texas,48403,1,0 +2020-05-07,Sabine,Texas,48403,2,0 +2020-05-08,Sabine,Texas,48403,2,0 +2020-05-09,Sabine,Texas,48403,2,0 +2020-05-10,Sabine,Texas,48403,2,0 +2020-05-11,Sabine,Texas,48403,2,0 +2020-05-12,Sabine,Texas,48403,3,0 +2020-05-13,Sabine,Texas,48403,3,0 +2020-05-14,Sabine,Texas,48403,3,0 +2020-05-15,Sabine,Texas,48403,3,0 +2020-05-16,Sabine,Texas,48403,3,0 +2020-05-17,Sabine,Texas,48403,3,0 +2020-05-18,Sabine,Texas,48403,3,0 +2020-05-19,Sabine,Texas,48403,4,0 +2020-05-20,Sabine,Texas,48403,4,0 +2020-05-21,Sabine,Texas,48403,4,0 +2020-05-22,Sabine,Texas,48403,4,0 +2020-05-23,Sabine,Texas,48403,5,0 +2020-05-24,Sabine,Texas,48403,5,0 +2020-05-25,Sabine,Texas,48403,5,0 +2020-05-26,Sabine,Texas,48403,5,0 +2020-05-27,Sabine,Texas,48403,5,0 +2020-05-28,Sabine,Texas,48403,6,0 +2020-05-29,Sabine,Texas,48403,6,0 +2020-05-30,Sabine,Texas,48403,14,0 +2020-05-31,Sabine,Texas,48403,14,0 +2020-06-01,Sabine,Texas,48403,15,0 +2020-06-02,Sabine,Texas,48403,15,0 +2020-06-03,Sabine,Texas,48403,15,1 +2020-06-04,Sabine,Texas,48403,15,1 +2020-06-05,Sabine,Texas,48403,15,1 +2020-06-06,Sabine,Texas,48403,15,1 +2020-06-07,Sabine,Texas,48403,15,1 +2020-06-08,Sabine,Texas,48403,15,1 +2020-06-09,Sabine,Texas,48403,15,1 +2020-06-10,Sabine,Texas,48403,15,1 +2020-06-11,Sabine,Texas,48403,15,1 +2020-06-12,Sabine,Texas,48403,15,1 +2020-06-13,Sabine,Texas,48403,15,1 +2020-06-14,Sabine,Texas,48403,15,1 +2020-06-15,Sabine,Texas,48403,15,1 +2020-06-16,Sabine,Texas,48403,15,1 +2020-06-17,Sabine,Texas,48403,15,1 +2020-06-18,Sabine,Texas,48403,15,1 +2020-06-19,Sabine,Texas,48403,15,1 +2020-06-20,Sabine,Texas,48403,18,1 +2020-06-21,Sabine,Texas,48403,19,1 +2020-06-22,Sabine,Texas,48403,19,1 +2020-06-23,Sabine,Texas,48403,21,1 +2020-06-24,Sabine,Texas,48403,21,1 +2020-06-25,Sabine,Texas,48403,21,1 +2020-06-26,Sabine,Texas,48403,21,1 +2020-06-27,Sabine,Texas,48403,21,1 +2020-06-28,Sabine,Texas,48403,23,1 +2020-06-29,Sabine,Texas,48403,23,1 +2020-06-30,Sabine,Texas,48403,24,1 +2020-07-01,Sabine,Texas,48403,24,1 +2020-07-02,Sabine,Texas,48403,25,1 +2020-07-03,Sabine,Texas,48403,26,1 +2020-07-04,Sabine,Texas,48403,26,1 +2020-07-05,Sabine,Texas,48403,27,1 +2020-07-06,Sabine,Texas,48403,27,1 +2020-07-07,Sabine,Texas,48403,28,1 +2020-07-08,Sabine,Texas,48403,28,1 +2020-07-09,Sabine,Texas,48403,28,1 +2020-04-01,San Augustine,Texas,48405,1,0 +2020-04-02,San Augustine,Texas,48405,1,0 +2020-04-03,San Augustine,Texas,48405,4,1 +2020-04-04,San Augustine,Texas,48405,4,1 +2020-04-05,San Augustine,Texas,48405,4,1 +2020-04-06,San Augustine,Texas,48405,4,1 +2020-04-07,San Augustine,Texas,48405,4,1 +2020-04-08,San Augustine,Texas,48405,7,1 +2020-04-09,San Augustine,Texas,48405,7,1 +2020-04-10,San Augustine,Texas,48405,9,1 +2020-04-11,San Augustine,Texas,48405,9,1 +2020-04-12,San Augustine,Texas,48405,9,1 +2020-04-13,San Augustine,Texas,48405,9,1 +2020-04-14,San Augustine,Texas,48405,9,1 +2020-04-15,San Augustine,Texas,48405,11,1 +2020-04-16,San Augustine,Texas,48405,11,1 +2020-04-17,San Augustine,Texas,48405,14,1 +2020-04-18,San Augustine,Texas,48405,14,1 +2020-04-19,San Augustine,Texas,48405,14,1 +2020-04-20,San Augustine,Texas,48405,14,1 +2020-04-21,San Augustine,Texas,48405,14,1 +2020-04-22,San Augustine,Texas,48405,14,1 +2020-04-23,San Augustine,Texas,48405,15,1 +2020-04-24,San Augustine,Texas,48405,16,1 +2020-04-25,San Augustine,Texas,48405,16,1 +2020-04-26,San Augustine,Texas,48405,16,1 +2020-04-27,San Augustine,Texas,48405,16,1 +2020-04-28,San Augustine,Texas,48405,16,1 +2020-04-29,San Augustine,Texas,48405,16,1 +2020-04-30,San Augustine,Texas,48405,16,1 +2020-05-01,San Augustine,Texas,48405,19,1 +2020-05-02,San Augustine,Texas,48405,19,1 +2020-05-03,San Augustine,Texas,48405,19,1 +2020-05-04,San Augustine,Texas,48405,19,1 +2020-05-05,San Augustine,Texas,48405,19,1 +2020-05-06,San Augustine,Texas,48405,21,1 +2020-05-07,San Augustine,Texas,48405,21,1 +2020-05-08,San Augustine,Texas,48405,21,1 +2020-05-09,San Augustine,Texas,48405,21,1 +2020-05-10,San Augustine,Texas,48405,21,1 +2020-05-11,San Augustine,Texas,48405,21,1 +2020-05-12,San Augustine,Texas,48405,22,1 +2020-05-13,San Augustine,Texas,48405,22,1 +2020-05-14,San Augustine,Texas,48405,22,1 +2020-05-15,San Augustine,Texas,48405,22,1 +2020-05-16,San Augustine,Texas,48405,22,1 +2020-05-17,San Augustine,Texas,48405,22,1 +2020-05-18,San Augustine,Texas,48405,22,1 +2020-05-19,San Augustine,Texas,48405,26,1 +2020-05-20,San Augustine,Texas,48405,26,1 +2020-05-21,San Augustine,Texas,48405,28,1 +2020-05-22,San Augustine,Texas,48405,28,1 +2020-05-23,San Augustine,Texas,48405,29,1 +2020-05-24,San Augustine,Texas,48405,29,1 +2020-05-25,San Augustine,Texas,48405,29,1 +2020-05-26,San Augustine,Texas,48405,29,1 +2020-05-27,San Augustine,Texas,48405,31,2 +2020-05-28,San Augustine,Texas,48405,31,2 +2020-05-29,San Augustine,Texas,48405,37,2 +2020-05-30,San Augustine,Texas,48405,38,2 +2020-05-31,San Augustine,Texas,48405,38,2 +2020-06-01,San Augustine,Texas,48405,38,2 +2020-06-02,San Augustine,Texas,48405,44,2 +2020-06-03,San Augustine,Texas,48405,44,2 +2020-06-04,San Augustine,Texas,48405,44,4 +2020-06-05,San Augustine,Texas,48405,44,4 +2020-06-06,San Augustine,Texas,48405,45,4 +2020-06-07,San Augustine,Texas,48405,45,4 +2020-06-08,San Augustine,Texas,48405,45,4 +2020-06-09,San Augustine,Texas,48405,45,4 +2020-06-10,San Augustine,Texas,48405,49,4 +2020-06-11,San Augustine,Texas,48405,49,4 +2020-06-12,San Augustine,Texas,48405,55,4 +2020-06-13,San Augustine,Texas,48405,55,4 +2020-06-14,San Augustine,Texas,48405,55,4 +2020-06-15,San Augustine,Texas,48405,55,4 +2020-06-16,San Augustine,Texas,48405,61,4 +2020-06-17,San Augustine,Texas,48405,74,5 +2020-06-18,San Augustine,Texas,48405,86,6 +2020-06-19,San Augustine,Texas,48405,86,6 +2020-06-20,San Augustine,Texas,48405,87,6 +2020-06-21,San Augustine,Texas,48405,87,6 +2020-06-22,San Augustine,Texas,48405,87,6 +2020-06-23,San Augustine,Texas,48405,88,6 +2020-06-24,San Augustine,Texas,48405,99,6 +2020-06-25,San Augustine,Texas,48405,101,6 +2020-06-26,San Augustine,Texas,48405,103,7 +2020-06-27,San Augustine,Texas,48405,103,7 +2020-06-28,San Augustine,Texas,48405,103,7 +2020-06-29,San Augustine,Texas,48405,103,7 +2020-06-30,San Augustine,Texas,48405,105,7 +2020-07-01,San Augustine,Texas,48405,110,7 +2020-07-02,San Augustine,Texas,48405,114,7 +2020-07-03,San Augustine,Texas,48405,114,7 +2020-07-04,San Augustine,Texas,48405,114,7 +2020-07-05,San Augustine,Texas,48405,114,7 +2020-07-06,San Augustine,Texas,48405,114,7 +2020-07-07,San Augustine,Texas,48405,114,7 +2020-07-08,San Augustine,Texas,48405,119,7 +2020-07-09,San Augustine,Texas,48405,121,7 +2020-03-29,San Jacinto,Texas,48407,1,0 +2020-03-30,San Jacinto,Texas,48407,1,0 +2020-03-31,San Jacinto,Texas,48407,1,0 +2020-04-01,San Jacinto,Texas,48407,1,0 +2020-04-02,San Jacinto,Texas,48407,1,0 +2020-04-03,San Jacinto,Texas,48407,1,0 +2020-04-04,San Jacinto,Texas,48407,1,0 +2020-04-05,San Jacinto,Texas,48407,1,0 +2020-04-06,San Jacinto,Texas,48407,1,0 +2020-04-07,San Jacinto,Texas,48407,1,0 +2020-04-08,San Jacinto,Texas,48407,1,0 +2020-04-09,San Jacinto,Texas,48407,3,0 +2020-04-10,San Jacinto,Texas,48407,3,0 +2020-04-11,San Jacinto,Texas,48407,5,0 +2020-04-12,San Jacinto,Texas,48407,5,0 +2020-04-13,San Jacinto,Texas,48407,7,0 +2020-04-14,San Jacinto,Texas,48407,8,0 +2020-04-15,San Jacinto,Texas,48407,7,0 +2020-04-16,San Jacinto,Texas,48407,10,0 +2020-04-17,San Jacinto,Texas,48407,10,0 +2020-04-18,San Jacinto,Texas,48407,10,0 +2020-04-19,San Jacinto,Texas,48407,10,0 +2020-04-20,San Jacinto,Texas,48407,10,0 +2020-04-21,San Jacinto,Texas,48407,10,0 +2020-04-22,San Jacinto,Texas,48407,10,0 +2020-04-23,San Jacinto,Texas,48407,10,0 +2020-04-24,San Jacinto,Texas,48407,10,0 +2020-04-25,San Jacinto,Texas,48407,10,0 +2020-04-26,San Jacinto,Texas,48407,10,0 +2020-04-27,San Jacinto,Texas,48407,10,0 +2020-04-28,San Jacinto,Texas,48407,10,0 +2020-04-29,San Jacinto,Texas,48407,10,0 +2020-04-30,San Jacinto,Texas,48407,10,0 +2020-05-01,San Jacinto,Texas,48407,10,0 +2020-05-02,San Jacinto,Texas,48407,10,0 +2020-05-03,San Jacinto,Texas,48407,10,0 +2020-05-04,San Jacinto,Texas,48407,10,0 +2020-05-05,San Jacinto,Texas,48407,10,0 +2020-05-06,San Jacinto,Texas,48407,10,0 +2020-05-07,San Jacinto,Texas,48407,10,0 +2020-05-08,San Jacinto,Texas,48407,10,0 +2020-05-09,San Jacinto,Texas,48407,10,0 +2020-05-10,San Jacinto,Texas,48407,11,0 +2020-05-11,San Jacinto,Texas,48407,11,0 +2020-05-12,San Jacinto,Texas,48407,11,0 +2020-05-13,San Jacinto,Texas,48407,11,0 +2020-05-14,San Jacinto,Texas,48407,12,0 +2020-05-15,San Jacinto,Texas,48407,12,0 +2020-05-16,San Jacinto,Texas,48407,12,0 +2020-05-17,San Jacinto,Texas,48407,12,0 +2020-05-18,San Jacinto,Texas,48407,12,0 +2020-05-19,San Jacinto,Texas,48407,12,0 +2020-05-20,San Jacinto,Texas,48407,12,0 +2020-05-21,San Jacinto,Texas,48407,13,0 +2020-05-22,San Jacinto,Texas,48407,13,0 +2020-05-23,San Jacinto,Texas,48407,14,0 +2020-05-24,San Jacinto,Texas,48407,14,0 +2020-05-25,San Jacinto,Texas,48407,14,0 +2020-05-26,San Jacinto,Texas,48407,14,0 +2020-05-27,San Jacinto,Texas,48407,14,0 +2020-05-28,San Jacinto,Texas,48407,14,0 +2020-05-29,San Jacinto,Texas,48407,14,0 +2020-05-30,San Jacinto,Texas,48407,14,0 +2020-05-31,San Jacinto,Texas,48407,14,0 +2020-06-01,San Jacinto,Texas,48407,14,0 +2020-06-02,San Jacinto,Texas,48407,14,0 +2020-06-03,San Jacinto,Texas,48407,14,0 +2020-06-04,San Jacinto,Texas,48407,16,0 +2020-06-05,San Jacinto,Texas,48407,17,0 +2020-06-06,San Jacinto,Texas,48407,17,0 +2020-06-07,San Jacinto,Texas,48407,17,0 +2020-06-08,San Jacinto,Texas,48407,17,0 +2020-06-09,San Jacinto,Texas,48407,19,0 +2020-06-10,San Jacinto,Texas,48407,19,0 +2020-06-11,San Jacinto,Texas,48407,20,0 +2020-06-12,San Jacinto,Texas,48407,20,0 +2020-06-13,San Jacinto,Texas,48407,20,0 +2020-06-14,San Jacinto,Texas,48407,20,0 +2020-06-15,San Jacinto,Texas,48407,20,0 +2020-06-16,San Jacinto,Texas,48407,19,0 +2020-06-17,San Jacinto,Texas,48407,22,0 +2020-06-18,San Jacinto,Texas,48407,22,0 +2020-06-19,San Jacinto,Texas,48407,23,0 +2020-06-20,San Jacinto,Texas,48407,23,0 +2020-06-21,San Jacinto,Texas,48407,23,0 +2020-06-22,San Jacinto,Texas,48407,24,0 +2020-06-23,San Jacinto,Texas,48407,24,0 +2020-06-24,San Jacinto,Texas,48407,25,0 +2020-06-25,San Jacinto,Texas,48407,28,0 +2020-06-26,San Jacinto,Texas,48407,29,0 +2020-06-27,San Jacinto,Texas,48407,31,0 +2020-06-28,San Jacinto,Texas,48407,31,0 +2020-06-29,San Jacinto,Texas,48407,31,0 +2020-06-30,San Jacinto,Texas,48407,33,0 +2020-07-01,San Jacinto,Texas,48407,35,0 +2020-07-02,San Jacinto,Texas,48407,36,0 +2020-07-03,San Jacinto,Texas,48407,57,0 +2020-07-04,San Jacinto,Texas,48407,60,0 +2020-07-05,San Jacinto,Texas,48407,63,0 +2020-07-06,San Jacinto,Texas,48407,63,0 +2020-07-07,San Jacinto,Texas,48407,63,0 +2020-07-08,San Jacinto,Texas,48407,64,0 +2020-07-09,San Jacinto,Texas,48407,61,0 +2020-03-25,San Patricio,Texas,48409,1,0 +2020-03-26,San Patricio,Texas,48409,1,0 +2020-03-27,San Patricio,Texas,48409,1,0 +2020-03-28,San Patricio,Texas,48409,1,0 +2020-03-29,San Patricio,Texas,48409,1,0 +2020-03-30,San Patricio,Texas,48409,1,0 +2020-03-31,San Patricio,Texas,48409,1,0 +2020-04-01,San Patricio,Texas,48409,2,0 +2020-04-02,San Patricio,Texas,48409,2,0 +2020-04-03,San Patricio,Texas,48409,3,0 +2020-04-04,San Patricio,Texas,48409,4,0 +2020-04-05,San Patricio,Texas,48409,5,0 +2020-04-06,San Patricio,Texas,48409,7,0 +2020-04-07,San Patricio,Texas,48409,7,0 +2020-04-08,San Patricio,Texas,48409,7,0 +2020-04-09,San Patricio,Texas,48409,7,0 +2020-04-10,San Patricio,Texas,48409,7,0 +2020-04-11,San Patricio,Texas,48409,7,0 +2020-04-12,San Patricio,Texas,48409,7,0 +2020-04-13,San Patricio,Texas,48409,7,0 +2020-04-14,San Patricio,Texas,48409,9,0 +2020-04-15,San Patricio,Texas,48409,8,0 +2020-04-16,San Patricio,Texas,48409,8,0 +2020-04-17,San Patricio,Texas,48409,8,0 +2020-04-18,San Patricio,Texas,48409,8,0 +2020-04-19,San Patricio,Texas,48409,8,0 +2020-04-20,San Patricio,Texas,48409,8,0 +2020-04-21,San Patricio,Texas,48409,8,0 +2020-04-22,San Patricio,Texas,48409,9,0 +2020-04-23,San Patricio,Texas,48409,11,0 +2020-04-24,San Patricio,Texas,48409,11,0 +2020-04-25,San Patricio,Texas,48409,12,0 +2020-04-26,San Patricio,Texas,48409,12,0 +2020-04-27,San Patricio,Texas,48409,12,0 +2020-04-28,San Patricio,Texas,48409,13,0 +2020-04-29,San Patricio,Texas,48409,12,0 +2020-04-30,San Patricio,Texas,48409,12,0 +2020-05-01,San Patricio,Texas,48409,12,0 +2020-05-02,San Patricio,Texas,48409,12,0 +2020-05-03,San Patricio,Texas,48409,12,0 +2020-05-04,San Patricio,Texas,48409,13,0 +2020-05-05,San Patricio,Texas,48409,13,0 +2020-05-06,San Patricio,Texas,48409,14,0 +2020-05-07,San Patricio,Texas,48409,16,0 +2020-05-08,San Patricio,Texas,48409,16,0 +2020-05-09,San Patricio,Texas,48409,18,0 +2020-05-10,San Patricio,Texas,48409,20,0 +2020-05-11,San Patricio,Texas,48409,22,0 +2020-05-12,San Patricio,Texas,48409,22,0 +2020-05-13,San Patricio,Texas,48409,22,0 +2020-05-14,San Patricio,Texas,48409,23,0 +2020-05-15,San Patricio,Texas,48409,25,0 +2020-05-16,San Patricio,Texas,48409,25,0 +2020-05-17,San Patricio,Texas,48409,26,0 +2020-05-18,San Patricio,Texas,48409,26,0 +2020-05-19,San Patricio,Texas,48409,26,0 +2020-05-20,San Patricio,Texas,48409,26,0 +2020-05-21,San Patricio,Texas,48409,28,0 +2020-05-22,San Patricio,Texas,48409,28,0 +2020-05-23,San Patricio,Texas,48409,28,0 +2020-05-24,San Patricio,Texas,48409,28,0 +2020-05-25,San Patricio,Texas,48409,28,0 +2020-05-26,San Patricio,Texas,48409,28,0 +2020-05-27,San Patricio,Texas,48409,29,0 +2020-05-28,San Patricio,Texas,48409,32,0 +2020-05-29,San Patricio,Texas,48409,33,0 +2020-05-30,San Patricio,Texas,48409,33,0 +2020-05-31,San Patricio,Texas,48409,33,0 +2020-06-01,San Patricio,Texas,48409,33,0 +2020-06-02,San Patricio,Texas,48409,36,0 +2020-06-03,San Patricio,Texas,48409,36,0 +2020-06-04,San Patricio,Texas,48409,36,0 +2020-06-05,San Patricio,Texas,48409,38,0 +2020-06-06,San Patricio,Texas,48409,38,0 +2020-06-07,San Patricio,Texas,48409,39,0 +2020-06-08,San Patricio,Texas,48409,39,0 +2020-06-09,San Patricio,Texas,48409,41,0 +2020-06-10,San Patricio,Texas,48409,41,0 +2020-06-11,San Patricio,Texas,48409,41,0 +2020-06-12,San Patricio,Texas,48409,41,0 +2020-06-13,San Patricio,Texas,48409,41,0 +2020-06-14,San Patricio,Texas,48409,41,0 +2020-06-15,San Patricio,Texas,48409,41,0 +2020-06-16,San Patricio,Texas,48409,48,0 +2020-06-17,San Patricio,Texas,48409,48,0 +2020-06-18,San Patricio,Texas,48409,62,0 +2020-06-19,San Patricio,Texas,48409,66,0 +2020-06-20,San Patricio,Texas,48409,66,0 +2020-06-21,San Patricio,Texas,48409,66,0 +2020-06-22,San Patricio,Texas,48409,66,0 +2020-06-23,San Patricio,Texas,48409,80,0 +2020-06-24,San Patricio,Texas,48409,85,0 +2020-06-25,San Patricio,Texas,48409,96,0 +2020-06-26,San Patricio,Texas,48409,101,0 +2020-06-27,San Patricio,Texas,48409,109,0 +2020-06-28,San Patricio,Texas,48409,109,0 +2020-06-29,San Patricio,Texas,48409,109,0 +2020-06-30,San Patricio,Texas,48409,133,0 +2020-07-01,San Patricio,Texas,48409,161,0 +2020-07-02,San Patricio,Texas,48409,177,0 +2020-07-03,San Patricio,Texas,48409,187,0 +2020-07-04,San Patricio,Texas,48409,187,0 +2020-07-05,San Patricio,Texas,48409,187,0 +2020-07-06,San Patricio,Texas,48409,187,0 +2020-07-07,San Patricio,Texas,48409,204,0 +2020-07-08,San Patricio,Texas,48409,204,0 +2020-07-09,San Patricio,Texas,48409,267,0 +2020-05-19,San Saba,Texas,48411,1,0 +2020-05-20,San Saba,Texas,48411,1,0 +2020-05-21,San Saba,Texas,48411,1,0 +2020-05-22,San Saba,Texas,48411,1,0 +2020-05-23,San Saba,Texas,48411,1,0 +2020-05-24,San Saba,Texas,48411,1,0 +2020-05-25,San Saba,Texas,48411,1,0 +2020-05-26,San Saba,Texas,48411,1,0 +2020-05-27,San Saba,Texas,48411,1,0 +2020-05-28,San Saba,Texas,48411,1,0 +2020-05-29,San Saba,Texas,48411,1,0 +2020-05-30,San Saba,Texas,48411,1,0 +2020-05-31,San Saba,Texas,48411,1,0 +2020-06-01,San Saba,Texas,48411,1,0 +2020-06-02,San Saba,Texas,48411,1,0 +2020-06-03,San Saba,Texas,48411,1,0 +2020-06-04,San Saba,Texas,48411,1,0 +2020-06-05,San Saba,Texas,48411,1,0 +2020-06-06,San Saba,Texas,48411,1,0 +2020-06-07,San Saba,Texas,48411,1,0 +2020-06-08,San Saba,Texas,48411,1,0 +2020-06-09,San Saba,Texas,48411,1,0 +2020-06-10,San Saba,Texas,48411,1,0 +2020-06-11,San Saba,Texas,48411,1,0 +2020-06-12,San Saba,Texas,48411,1,0 +2020-06-13,San Saba,Texas,48411,2,0 +2020-06-14,San Saba,Texas,48411,2,0 +2020-06-15,San Saba,Texas,48411,2,0 +2020-06-16,San Saba,Texas,48411,2,0 +2020-06-17,San Saba,Texas,48411,2,0 +2020-06-18,San Saba,Texas,48411,2,0 +2020-06-19,San Saba,Texas,48411,2,0 +2020-06-20,San Saba,Texas,48411,2,0 +2020-06-21,San Saba,Texas,48411,2,0 +2020-06-22,San Saba,Texas,48411,3,0 +2020-06-23,San Saba,Texas,48411,4,0 +2020-06-24,San Saba,Texas,48411,4,0 +2020-06-25,San Saba,Texas,48411,4,0 +2020-06-26,San Saba,Texas,48411,4,0 +2020-06-27,San Saba,Texas,48411,4,0 +2020-06-28,San Saba,Texas,48411,4,0 +2020-06-29,San Saba,Texas,48411,4,0 +2020-06-30,San Saba,Texas,48411,4,0 +2020-07-01,San Saba,Texas,48411,4,0 +2020-07-02,San Saba,Texas,48411,4,0 +2020-07-03,San Saba,Texas,48411,5,0 +2020-07-04,San Saba,Texas,48411,5,0 +2020-07-05,San Saba,Texas,48411,5,0 +2020-07-06,San Saba,Texas,48411,5,0 +2020-07-07,San Saba,Texas,48411,5,0 +2020-07-08,San Saba,Texas,48411,7,0 +2020-07-09,San Saba,Texas,48411,7,0 +2020-06-13,Schleicher,Texas,48413,1,0 +2020-06-14,Schleicher,Texas,48413,1,0 +2020-06-15,Schleicher,Texas,48413,1,0 +2020-06-16,Schleicher,Texas,48413,6,0 +2020-06-17,Schleicher,Texas,48413,8,0 +2020-06-18,Schleicher,Texas,48413,8,0 +2020-06-19,Schleicher,Texas,48413,10,0 +2020-06-20,Schleicher,Texas,48413,12,0 +2020-06-21,Schleicher,Texas,48413,12,0 +2020-06-22,Schleicher,Texas,48413,12,0 +2020-06-23,Schleicher,Texas,48413,12,0 +2020-06-24,Schleicher,Texas,48413,12,0 +2020-06-25,Schleicher,Texas,48413,12,0 +2020-06-26,Schleicher,Texas,48413,12,0 +2020-06-27,Schleicher,Texas,48413,14,0 +2020-06-28,Schleicher,Texas,48413,14,0 +2020-06-29,Schleicher,Texas,48413,15,0 +2020-06-30,Schleicher,Texas,48413,20,0 +2020-07-01,Schleicher,Texas,48413,20,0 +2020-07-02,Schleicher,Texas,48413,21,0 +2020-07-03,Schleicher,Texas,48413,21,0 +2020-07-04,Schleicher,Texas,48413,21,0 +2020-07-05,Schleicher,Texas,48413,21,0 +2020-07-06,Schleicher,Texas,48413,21,0 +2020-07-07,Schleicher,Texas,48413,21,0 +2020-07-08,Schleicher,Texas,48413,21,1 +2020-07-09,Schleicher,Texas,48413,21,1 +2020-04-09,Scurry,Texas,48415,1,0 +2020-04-10,Scurry,Texas,48415,1,0 +2020-04-11,Scurry,Texas,48415,2,0 +2020-04-12,Scurry,Texas,48415,2,0 +2020-04-13,Scurry,Texas,48415,2,0 +2020-04-14,Scurry,Texas,48415,2,0 +2020-04-15,Scurry,Texas,48415,2,0 +2020-04-16,Scurry,Texas,48415,2,0 +2020-04-17,Scurry,Texas,48415,2,0 +2020-04-18,Scurry,Texas,48415,2,0 +2020-04-19,Scurry,Texas,48415,2,0 +2020-04-20,Scurry,Texas,48415,2,0 +2020-04-21,Scurry,Texas,48415,2,0 +2020-04-22,Scurry,Texas,48415,2,0 +2020-04-23,Scurry,Texas,48415,2,0 +2020-04-24,Scurry,Texas,48415,2,0 +2020-04-25,Scurry,Texas,48415,2,0 +2020-04-26,Scurry,Texas,48415,2,0 +2020-04-27,Scurry,Texas,48415,2,0 +2020-04-28,Scurry,Texas,48415,2,0 +2020-04-29,Scurry,Texas,48415,2,0 +2020-04-30,Scurry,Texas,48415,2,0 +2020-05-01,Scurry,Texas,48415,2,0 +2020-05-02,Scurry,Texas,48415,2,0 +2020-05-03,Scurry,Texas,48415,2,0 +2020-05-04,Scurry,Texas,48415,2,0 +2020-05-05,Scurry,Texas,48415,2,0 +2020-05-06,Scurry,Texas,48415,2,0 +2020-05-07,Scurry,Texas,48415,2,0 +2020-05-08,Scurry,Texas,48415,2,0 +2020-05-09,Scurry,Texas,48415,2,0 +2020-05-10,Scurry,Texas,48415,2,0 +2020-05-11,Scurry,Texas,48415,2,0 +2020-05-12,Scurry,Texas,48415,2,0 +2020-05-13,Scurry,Texas,48415,2,0 +2020-05-14,Scurry,Texas,48415,2,0 +2020-05-15,Scurry,Texas,48415,2,0 +2020-05-16,Scurry,Texas,48415,2,0 +2020-05-17,Scurry,Texas,48415,2,0 +2020-05-18,Scurry,Texas,48415,2,0 +2020-05-19,Scurry,Texas,48415,2,0 +2020-05-20,Scurry,Texas,48415,2,0 +2020-05-21,Scurry,Texas,48415,2,0 +2020-05-22,Scurry,Texas,48415,2,0 +2020-05-23,Scurry,Texas,48415,2,0 +2020-05-24,Scurry,Texas,48415,2,0 +2020-05-25,Scurry,Texas,48415,2,0 +2020-05-26,Scurry,Texas,48415,2,0 +2020-05-27,Scurry,Texas,48415,2,0 +2020-05-28,Scurry,Texas,48415,2,0 +2020-05-29,Scurry,Texas,48415,2,0 +2020-05-30,Scurry,Texas,48415,24,0 +2020-05-31,Scurry,Texas,48415,24,0 +2020-06-01,Scurry,Texas,48415,24,0 +2020-06-02,Scurry,Texas,48415,32,0 +2020-06-03,Scurry,Texas,48415,32,0 +2020-06-04,Scurry,Texas,48415,33,0 +2020-06-05,Scurry,Texas,48415,25,0 +2020-06-06,Scurry,Texas,48415,26,0 +2020-06-07,Scurry,Texas,48415,26,0 +2020-06-08,Scurry,Texas,48415,26,0 +2020-06-09,Scurry,Texas,48415,26,0 +2020-06-10,Scurry,Texas,48415,26,0 +2020-06-11,Scurry,Texas,48415,27,0 +2020-06-12,Scurry,Texas,48415,28,0 +2020-06-13,Scurry,Texas,48415,28,0 +2020-06-14,Scurry,Texas,48415,28,0 +2020-06-15,Scurry,Texas,48415,28,0 +2020-06-16,Scurry,Texas,48415,28,0 +2020-06-17,Scurry,Texas,48415,28,0 +2020-06-18,Scurry,Texas,48415,29,0 +2020-06-19,Scurry,Texas,48415,29,0 +2020-06-20,Scurry,Texas,48415,29,0 +2020-06-21,Scurry,Texas,48415,29,0 +2020-06-22,Scurry,Texas,48415,29,0 +2020-06-23,Scurry,Texas,48415,29,0 +2020-06-24,Scurry,Texas,48415,29,0 +2020-06-25,Scurry,Texas,48415,32,0 +2020-06-26,Scurry,Texas,48415,32,0 +2020-06-27,Scurry,Texas,48415,32,0 +2020-06-28,Scurry,Texas,48415,32,0 +2020-06-29,Scurry,Texas,48415,32,0 +2020-06-30,Scurry,Texas,48415,32,0 +2020-07-01,Scurry,Texas,48415,36,0 +2020-07-02,Scurry,Texas,48415,42,0 +2020-07-03,Scurry,Texas,48415,45,0 +2020-07-04,Scurry,Texas,48415,59,0 +2020-07-05,Scurry,Texas,48415,59,0 +2020-07-06,Scurry,Texas,48415,59,0 +2020-07-07,Scurry,Texas,48415,71,1 +2020-07-08,Scurry,Texas,48415,71,1 +2020-07-09,Scurry,Texas,48415,84,1 +2020-05-07,Shackelford,Texas,48417,1,0 +2020-05-08,Shackelford,Texas,48417,1,0 +2020-05-09,Shackelford,Texas,48417,1,0 +2020-05-10,Shackelford,Texas,48417,1,0 +2020-05-11,Shackelford,Texas,48417,1,0 +2020-05-12,Shackelford,Texas,48417,1,0 +2020-05-13,Shackelford,Texas,48417,1,0 +2020-05-14,Shackelford,Texas,48417,1,0 +2020-05-15,Shackelford,Texas,48417,1,0 +2020-05-16,Shackelford,Texas,48417,1,0 +2020-05-17,Shackelford,Texas,48417,1,0 +2020-05-18,Shackelford,Texas,48417,1,0 +2020-05-19,Shackelford,Texas,48417,1,0 +2020-05-20,Shackelford,Texas,48417,1,0 +2020-05-21,Shackelford,Texas,48417,1,0 +2020-05-22,Shackelford,Texas,48417,1,0 +2020-05-23,Shackelford,Texas,48417,1,0 +2020-05-24,Shackelford,Texas,48417,1,0 +2020-05-25,Shackelford,Texas,48417,1,0 +2020-05-26,Shackelford,Texas,48417,1,0 +2020-05-27,Shackelford,Texas,48417,1,0 +2020-05-28,Shackelford,Texas,48417,1,0 +2020-05-29,Shackelford,Texas,48417,1,0 +2020-05-30,Shackelford,Texas,48417,1,0 +2020-05-31,Shackelford,Texas,48417,1,0 +2020-06-01,Shackelford,Texas,48417,1,0 +2020-06-02,Shackelford,Texas,48417,1,0 +2020-06-03,Shackelford,Texas,48417,1,0 +2020-06-04,Shackelford,Texas,48417,1,0 +2020-06-05,Shackelford,Texas,48417,1,0 +2020-06-06,Shackelford,Texas,48417,1,0 +2020-06-07,Shackelford,Texas,48417,1,0 +2020-06-08,Shackelford,Texas,48417,1,0 +2020-06-09,Shackelford,Texas,48417,1,0 +2020-06-10,Shackelford,Texas,48417,1,0 +2020-06-11,Shackelford,Texas,48417,1,0 +2020-06-12,Shackelford,Texas,48417,1,0 +2020-06-13,Shackelford,Texas,48417,1,0 +2020-06-14,Shackelford,Texas,48417,1,0 +2020-06-15,Shackelford,Texas,48417,1,0 +2020-06-16,Shackelford,Texas,48417,1,0 +2020-06-17,Shackelford,Texas,48417,1,0 +2020-06-18,Shackelford,Texas,48417,1,0 +2020-06-19,Shackelford,Texas,48417,1,0 +2020-06-20,Shackelford,Texas,48417,1,0 +2020-06-21,Shackelford,Texas,48417,1,0 +2020-06-22,Shackelford,Texas,48417,1,0 +2020-06-23,Shackelford,Texas,48417,1,0 +2020-06-24,Shackelford,Texas,48417,1,0 +2020-06-25,Shackelford,Texas,48417,1,0 +2020-06-26,Shackelford,Texas,48417,1,0 +2020-06-27,Shackelford,Texas,48417,1,0 +2020-06-28,Shackelford,Texas,48417,1,0 +2020-06-29,Shackelford,Texas,48417,1,0 +2020-06-30,Shackelford,Texas,48417,1,0 +2020-07-01,Shackelford,Texas,48417,1,0 +2020-07-02,Shackelford,Texas,48417,3,0 +2020-07-03,Shackelford,Texas,48417,5,0 +2020-07-04,Shackelford,Texas,48417,4,0 +2020-07-05,Shackelford,Texas,48417,4,0 +2020-07-06,Shackelford,Texas,48417,4,0 +2020-07-07,Shackelford,Texas,48417,5,0 +2020-07-08,Shackelford,Texas,48417,5,0 +2020-07-09,Shackelford,Texas,48417,6,0 +2020-03-27,Shelby,Texas,48419,1,0 +2020-03-28,Shelby,Texas,48419,1,0 +2020-03-29,Shelby,Texas,48419,1,0 +2020-03-30,Shelby,Texas,48419,2,0 +2020-03-31,Shelby,Texas,48419,2,0 +2020-04-01,Shelby,Texas,48419,2,0 +2020-04-02,Shelby,Texas,48419,4,0 +2020-04-03,Shelby,Texas,48419,10,0 +2020-04-04,Shelby,Texas,48419,11,0 +2020-04-05,Shelby,Texas,48419,11,0 +2020-04-06,Shelby,Texas,48419,11,0 +2020-04-07,Shelby,Texas,48419,13,0 +2020-04-08,Shelby,Texas,48419,13,0 +2020-04-09,Shelby,Texas,48419,23,0 +2020-04-10,Shelby,Texas,48419,31,0 +2020-04-11,Shelby,Texas,48419,34,0 +2020-04-12,Shelby,Texas,48419,34,0 +2020-04-13,Shelby,Texas,48419,36,0 +2020-04-14,Shelby,Texas,48419,40,0 +2020-04-15,Shelby,Texas,48419,46,0 +2020-04-16,Shelby,Texas,48419,51,0 +2020-04-17,Shelby,Texas,48419,53,0 +2020-04-18,Shelby,Texas,48419,60,0 +2020-04-19,Shelby,Texas,48419,60,0 +2020-04-20,Shelby,Texas,48419,60,0 +2020-04-21,Shelby,Texas,48419,69,0 +2020-04-22,Shelby,Texas,48419,69,0 +2020-04-23,Shelby,Texas,48419,85,0 +2020-04-24,Shelby,Texas,48419,86,0 +2020-04-25,Shelby,Texas,48419,86,0 +2020-04-26,Shelby,Texas,48419,97,0 +2020-04-27,Shelby,Texas,48419,98,0 +2020-04-28,Shelby,Texas,48419,101,0 +2020-04-29,Shelby,Texas,48419,101,0 +2020-04-30,Shelby,Texas,48419,106,4 +2020-05-01,Shelby,Texas,48419,117,4 +2020-05-02,Shelby,Texas,48419,117,4 +2020-05-03,Shelby,Texas,48419,117,4 +2020-05-04,Shelby,Texas,48419,117,4 +2020-05-05,Shelby,Texas,48419,129,4 +2020-05-06,Shelby,Texas,48419,131,4 +2020-05-07,Shelby,Texas,48419,144,4 +2020-05-08,Shelby,Texas,48419,149,4 +2020-05-09,Shelby,Texas,48419,149,4 +2020-05-10,Shelby,Texas,48419,152,5 +2020-05-11,Shelby,Texas,48419,152,5 +2020-05-12,Shelby,Texas,48419,158,5 +2020-05-13,Shelby,Texas,48419,163,5 +2020-05-14,Shelby,Texas,48419,167,5 +2020-05-15,Shelby,Texas,48419,172,5 +2020-05-16,Shelby,Texas,48419,173,5 +2020-05-17,Shelby,Texas,48419,175,5 +2020-05-18,Shelby,Texas,48419,175,5 +2020-05-19,Shelby,Texas,48419,175,5 +2020-05-20,Shelby,Texas,48419,177,5 +2020-05-21,Shelby,Texas,48419,180,5 +2020-05-22,Shelby,Texas,48419,180,5 +2020-05-23,Shelby,Texas,48419,183,6 +2020-05-24,Shelby,Texas,48419,183,6 +2020-05-25,Shelby,Texas,48419,183,6 +2020-05-26,Shelby,Texas,48419,183,6 +2020-05-27,Shelby,Texas,48419,187,6 +2020-05-28,Shelby,Texas,48419,189,6 +2020-05-29,Shelby,Texas,48419,189,6 +2020-05-30,Shelby,Texas,48419,201,6 +2020-05-31,Shelby,Texas,48419,201,6 +2020-06-01,Shelby,Texas,48419,201,6 +2020-06-02,Shelby,Texas,48419,203,6 +2020-06-03,Shelby,Texas,48419,207,7 +2020-06-04,Shelby,Texas,48419,213,8 +2020-06-05,Shelby,Texas,48419,213,8 +2020-06-06,Shelby,Texas,48419,213,8 +2020-06-07,Shelby,Texas,48419,213,8 +2020-06-08,Shelby,Texas,48419,213,8 +2020-06-09,Shelby,Texas,48419,214,8 +2020-06-10,Shelby,Texas,48419,215,8 +2020-06-11,Shelby,Texas,48419,224,8 +2020-06-12,Shelby,Texas,48419,226,8 +2020-06-13,Shelby,Texas,48419,227,8 +2020-06-14,Shelby,Texas,48419,229,8 +2020-06-15,Shelby,Texas,48419,230,8 +2020-06-16,Shelby,Texas,48419,230,8 +2020-06-17,Shelby,Texas,48419,230,8 +2020-06-18,Shelby,Texas,48419,235,8 +2020-06-19,Shelby,Texas,48419,241,8 +2020-06-20,Shelby,Texas,48419,253,8 +2020-06-21,Shelby,Texas,48419,254,9 +2020-06-22,Shelby,Texas,48419,254,9 +2020-06-23,Shelby,Texas,48419,259,9 +2020-06-24,Shelby,Texas,48419,260,9 +2020-06-25,Shelby,Texas,48419,263,9 +2020-06-26,Shelby,Texas,48419,266,9 +2020-06-27,Shelby,Texas,48419,275,9 +2020-06-28,Shelby,Texas,48419,275,9 +2020-06-29,Shelby,Texas,48419,275,9 +2020-06-30,Shelby,Texas,48419,277,9 +2020-07-01,Shelby,Texas,48419,278,9 +2020-07-02,Shelby,Texas,48419,281,9 +2020-07-03,Shelby,Texas,48419,281,9 +2020-07-04,Shelby,Texas,48419,283,9 +2020-07-05,Shelby,Texas,48419,287,10 +2020-07-06,Shelby,Texas,48419,287,10 +2020-07-07,Shelby,Texas,48419,288,10 +2020-07-08,Shelby,Texas,48419,288,11 +2020-07-09,Shelby,Texas,48419,292,14 +2020-04-16,Sherman,Texas,48421,4,0 +2020-04-17,Sherman,Texas,48421,6,0 +2020-04-18,Sherman,Texas,48421,7,0 +2020-04-19,Sherman,Texas,48421,7,0 +2020-04-20,Sherman,Texas,48421,7,0 +2020-04-21,Sherman,Texas,48421,7,0 +2020-04-22,Sherman,Texas,48421,9,0 +2020-04-23,Sherman,Texas,48421,10,0 +2020-04-24,Sherman,Texas,48421,10,0 +2020-04-25,Sherman,Texas,48421,11,0 +2020-04-26,Sherman,Texas,48421,12,0 +2020-04-27,Sherman,Texas,48421,14,0 +2020-04-28,Sherman,Texas,48421,14,0 +2020-04-29,Sherman,Texas,48421,14,0 +2020-04-30,Sherman,Texas,48421,15,0 +2020-05-01,Sherman,Texas,48421,17,0 +2020-05-02,Sherman,Texas,48421,17,0 +2020-05-03,Sherman,Texas,48421,18,0 +2020-05-04,Sherman,Texas,48421,18,0 +2020-05-05,Sherman,Texas,48421,18,0 +2020-05-06,Sherman,Texas,48421,18,0 +2020-05-07,Sherman,Texas,48421,19,0 +2020-05-08,Sherman,Texas,48421,20,0 +2020-05-09,Sherman,Texas,48421,20,0 +2020-05-10,Sherman,Texas,48421,23,0 +2020-05-11,Sherman,Texas,48421,23,0 +2020-05-12,Sherman,Texas,48421,23,0 +2020-05-13,Sherman,Texas,48421,23,0 +2020-05-14,Sherman,Texas,48421,23,0 +2020-05-15,Sherman,Texas,48421,23,0 +2020-05-16,Sherman,Texas,48421,23,0 +2020-05-17,Sherman,Texas,48421,23,0 +2020-05-18,Sherman,Texas,48421,23,0 +2020-05-19,Sherman,Texas,48421,23,0 +2020-05-20,Sherman,Texas,48421,23,0 +2020-05-21,Sherman,Texas,48421,23,0 +2020-05-22,Sherman,Texas,48421,23,0 +2020-05-23,Sherman,Texas,48421,23,0 +2020-05-24,Sherman,Texas,48421,21,0 +2020-05-25,Sherman,Texas,48421,21,0 +2020-05-26,Sherman,Texas,48421,21,0 +2020-05-27,Sherman,Texas,48421,22,0 +2020-05-28,Sherman,Texas,48421,23,0 +2020-05-29,Sherman,Texas,48421,24,0 +2020-05-30,Sherman,Texas,48421,24,0 +2020-05-31,Sherman,Texas,48421,24,0 +2020-06-01,Sherman,Texas,48421,24,0 +2020-06-02,Sherman,Texas,48421,27,0 +2020-06-03,Sherman,Texas,48421,27,0 +2020-06-04,Sherman,Texas,48421,27,0 +2020-06-05,Sherman,Texas,48421,28,0 +2020-06-06,Sherman,Texas,48421,28,0 +2020-06-07,Sherman,Texas,48421,28,0 +2020-06-08,Sherman,Texas,48421,28,0 +2020-06-09,Sherman,Texas,48421,28,0 +2020-06-10,Sherman,Texas,48421,28,0 +2020-06-11,Sherman,Texas,48421,28,0 +2020-06-12,Sherman,Texas,48421,28,0 +2020-06-13,Sherman,Texas,48421,28,0 +2020-06-14,Sherman,Texas,48421,28,0 +2020-06-15,Sherman,Texas,48421,28,0 +2020-06-16,Sherman,Texas,48421,28,0 +2020-06-17,Sherman,Texas,48421,28,0 +2020-06-18,Sherman,Texas,48421,30,0 +2020-06-19,Sherman,Texas,48421,30,0 +2020-06-20,Sherman,Texas,48421,30,0 +2020-06-21,Sherman,Texas,48421,30,0 +2020-06-22,Sherman,Texas,48421,30,0 +2020-06-23,Sherman,Texas,48421,30,0 +2020-06-24,Sherman,Texas,48421,30,0 +2020-06-25,Sherman,Texas,48421,30,0 +2020-06-26,Sherman,Texas,48421,30,0 +2020-06-27,Sherman,Texas,48421,30,0 +2020-06-28,Sherman,Texas,48421,30,0 +2020-06-29,Sherman,Texas,48421,30,0 +2020-06-30,Sherman,Texas,48421,30,0 +2020-07-01,Sherman,Texas,48421,30,0 +2020-07-02,Sherman,Texas,48421,30,0 +2020-07-03,Sherman,Texas,48421,30,0 +2020-07-04,Sherman,Texas,48421,30,0 +2020-07-05,Sherman,Texas,48421,30,0 +2020-07-06,Sherman,Texas,48421,30,0 +2020-07-07,Sherman,Texas,48421,30,0 +2020-07-08,Sherman,Texas,48421,30,0 +2020-07-09,Sherman,Texas,48421,32,0 +2020-03-13,Smith,Texas,48423,3,0 +2020-03-14,Smith,Texas,48423,3,0 +2020-03-15,Smith,Texas,48423,4,0 +2020-03-16,Smith,Texas,48423,4,0 +2020-03-17,Smith,Texas,48423,4,0 +2020-03-18,Smith,Texas,48423,5,0 +2020-03-19,Smith,Texas,48423,5,0 +2020-03-20,Smith,Texas,48423,8,0 +2020-03-21,Smith,Texas,48423,8,0 +2020-03-22,Smith,Texas,48423,10,0 +2020-03-23,Smith,Texas,48423,10,0 +2020-03-24,Smith,Texas,48423,10,0 +2020-03-25,Smith,Texas,48423,14,0 +2020-03-26,Smith,Texas,48423,21,1 +2020-03-27,Smith,Texas,48423,27,1 +2020-03-28,Smith,Texas,48423,27,1 +2020-03-29,Smith,Texas,48423,31,1 +2020-03-30,Smith,Texas,48423,32,1 +2020-03-31,Smith,Texas,48423,32,1 +2020-04-01,Smith,Texas,48423,43,1 +2020-04-02,Smith,Texas,48423,47,1 +2020-04-03,Smith,Texas,48423,53,1 +2020-04-04,Smith,Texas,48423,57,1 +2020-04-05,Smith,Texas,48423,57,1 +2020-04-06,Smith,Texas,48423,62,2 +2020-04-07,Smith,Texas,48423,63,2 +2020-04-08,Smith,Texas,48423,82,2 +2020-04-09,Smith,Texas,48423,82,2 +2020-04-10,Smith,Texas,48423,93,2 +2020-04-11,Smith,Texas,48423,93,2 +2020-04-12,Smith,Texas,48423,96,2 +2020-04-13,Smith,Texas,48423,101,2 +2020-04-14,Smith,Texas,48423,103,2 +2020-04-15,Smith,Texas,48423,108,2 +2020-04-16,Smith,Texas,48423,108,2 +2020-04-17,Smith,Texas,48423,116,2 +2020-04-18,Smith,Texas,48423,121,2 +2020-04-19,Smith,Texas,48423,121,3 +2020-04-20,Smith,Texas,48423,123,3 +2020-04-21,Smith,Texas,48423,124,3 +2020-04-22,Smith,Texas,48423,125,3 +2020-04-23,Smith,Texas,48423,131,3 +2020-04-24,Smith,Texas,48423,132,3 +2020-04-25,Smith,Texas,48423,134,3 +2020-04-26,Smith,Texas,48423,134,3 +2020-04-27,Smith,Texas,48423,139,3 +2020-04-28,Smith,Texas,48423,139,3 +2020-04-29,Smith,Texas,48423,142,4 +2020-04-30,Smith,Texas,48423,144,4 +2020-05-01,Smith,Texas,48423,146,4 +2020-05-02,Smith,Texas,48423,146,4 +2020-05-03,Smith,Texas,48423,146,4 +2020-05-04,Smith,Texas,48423,155,4 +2020-05-05,Smith,Texas,48423,156,4 +2020-05-06,Smith,Texas,48423,165,4 +2020-05-07,Smith,Texas,48423,170,4 +2020-05-08,Smith,Texas,48423,174,4 +2020-05-09,Smith,Texas,48423,174,4 +2020-05-10,Smith,Texas,48423,174,4 +2020-05-11,Smith,Texas,48423,178,4 +2020-05-12,Smith,Texas,48423,185,4 +2020-05-13,Smith,Texas,48423,186,4 +2020-05-14,Smith,Texas,48423,189,4 +2020-05-15,Smith,Texas,48423,189,4 +2020-05-16,Smith,Texas,48423,189,4 +2020-05-17,Smith,Texas,48423,189,4 +2020-05-18,Smith,Texas,48423,192,4 +2020-05-19,Smith,Texas,48423,192,4 +2020-05-20,Smith,Texas,48423,195,4 +2020-05-21,Smith,Texas,48423,195,4 +2020-05-22,Smith,Texas,48423,198,4 +2020-05-23,Smith,Texas,48423,198,4 +2020-05-24,Smith,Texas,48423,198,4 +2020-05-25,Smith,Texas,48423,198,4 +2020-05-26,Smith,Texas,48423,199,4 +2020-05-27,Smith,Texas,48423,200,4 +2020-05-28,Smith,Texas,48423,202,4 +2020-05-29,Smith,Texas,48423,204,4 +2020-05-30,Smith,Texas,48423,204,4 +2020-05-31,Smith,Texas,48423,204,4 +2020-06-01,Smith,Texas,48423,210,4 +2020-06-02,Smith,Texas,48423,212,4 +2020-06-03,Smith,Texas,48423,215,4 +2020-06-04,Smith,Texas,48423,216,4 +2020-06-05,Smith,Texas,48423,223,4 +2020-06-06,Smith,Texas,48423,223,4 +2020-06-07,Smith,Texas,48423,223,4 +2020-06-08,Smith,Texas,48423,223,4 +2020-06-09,Smith,Texas,48423,238,4 +2020-06-10,Smith,Texas,48423,244,4 +2020-06-11,Smith,Texas,48423,244,4 +2020-06-12,Smith,Texas,48423,271,4 +2020-06-13,Smith,Texas,48423,271,4 +2020-06-14,Smith,Texas,48423,271,4 +2020-06-15,Smith,Texas,48423,283,4 +2020-06-16,Smith,Texas,48423,297,4 +2020-06-17,Smith,Texas,48423,310,4 +2020-06-18,Smith,Texas,48423,310,4 +2020-06-19,Smith,Texas,48423,318,4 +2020-06-20,Smith,Texas,48423,340,4 +2020-06-21,Smith,Texas,48423,340,4 +2020-06-22,Smith,Texas,48423,340,4 +2020-06-23,Smith,Texas,48423,392,4 +2020-06-24,Smith,Texas,48423,422,4 +2020-06-25,Smith,Texas,48423,455,4 +2020-06-26,Smith,Texas,48423,500,5 +2020-06-27,Smith,Texas,48423,500,5 +2020-06-28,Smith,Texas,48423,500,5 +2020-06-29,Smith,Texas,48423,567,5 +2020-06-30,Smith,Texas,48423,619,5 +2020-07-01,Smith,Texas,48423,657,5 +2020-07-02,Smith,Texas,48423,702,5 +2020-07-03,Smith,Texas,48423,772,5 +2020-07-04,Smith,Texas,48423,772,5 +2020-07-05,Smith,Texas,48423,772,5 +2020-07-06,Smith,Texas,48423,849,5 +2020-07-07,Smith,Texas,48423,1099,6 +2020-07-08,Smith,Texas,48423,1164,8 +2020-07-09,Smith,Texas,48423,1221,8 +2020-06-09,Somervell,Texas,48425,1,0 +2020-06-10,Somervell,Texas,48425,1,0 +2020-06-11,Somervell,Texas,48425,2,0 +2020-06-12,Somervell,Texas,48425,2,0 +2020-06-13,Somervell,Texas,48425,2,0 +2020-06-14,Somervell,Texas,48425,2,0 +2020-06-15,Somervell,Texas,48425,2,0 +2020-06-16,Somervell,Texas,48425,3,0 +2020-06-17,Somervell,Texas,48425,3,0 +2020-06-18,Somervell,Texas,48425,3,0 +2020-06-19,Somervell,Texas,48425,3,0 +2020-06-20,Somervell,Texas,48425,3,0 +2020-06-21,Somervell,Texas,48425,3,0 +2020-06-22,Somervell,Texas,48425,3,0 +2020-06-23,Somervell,Texas,48425,3,0 +2020-06-24,Somervell,Texas,48425,5,0 +2020-06-25,Somervell,Texas,48425,5,0 +2020-06-26,Somervell,Texas,48425,5,0 +2020-06-27,Somervell,Texas,48425,5,0 +2020-06-28,Somervell,Texas,48425,5,0 +2020-06-29,Somervell,Texas,48425,5,0 +2020-06-30,Somervell,Texas,48425,6,0 +2020-07-01,Somervell,Texas,48425,8,0 +2020-07-02,Somervell,Texas,48425,9,0 +2020-07-03,Somervell,Texas,48425,9,0 +2020-07-04,Somervell,Texas,48425,11,0 +2020-07-05,Somervell,Texas,48425,11,0 +2020-07-06,Somervell,Texas,48425,11,0 +2020-07-07,Somervell,Texas,48425,16,0 +2020-07-08,Somervell,Texas,48425,20,0 +2020-07-09,Somervell,Texas,48425,22,0 +2020-03-27,Starr,Texas,48427,2,0 +2020-03-28,Starr,Texas,48427,2,0 +2020-03-29,Starr,Texas,48427,2,0 +2020-03-30,Starr,Texas,48427,2,0 +2020-03-31,Starr,Texas,48427,2,0 +2020-04-01,Starr,Texas,48427,4,0 +2020-04-02,Starr,Texas,48427,4,0 +2020-04-03,Starr,Texas,48427,5,0 +2020-04-04,Starr,Texas,48427,5,0 +2020-04-05,Starr,Texas,48427,6,0 +2020-04-06,Starr,Texas,48427,6,0 +2020-04-07,Starr,Texas,48427,7,0 +2020-04-08,Starr,Texas,48427,7,0 +2020-04-09,Starr,Texas,48427,7,0 +2020-04-10,Starr,Texas,48427,7,0 +2020-04-11,Starr,Texas,48427,7,0 +2020-04-12,Starr,Texas,48427,7,0 +2020-04-13,Starr,Texas,48427,7,0 +2020-04-14,Starr,Texas,48427,7,0 +2020-04-15,Starr,Texas,48427,7,0 +2020-04-16,Starr,Texas,48427,7,0 +2020-04-17,Starr,Texas,48427,7,0 +2020-04-18,Starr,Texas,48427,7,0 +2020-04-19,Starr,Texas,48427,7,0 +2020-04-20,Starr,Texas,48427,7,0 +2020-04-21,Starr,Texas,48427,7,0 +2020-04-22,Starr,Texas,48427,7,0 +2020-04-23,Starr,Texas,48427,7,0 +2020-04-24,Starr,Texas,48427,7,0 +2020-04-25,Starr,Texas,48427,7,0 +2020-04-26,Starr,Texas,48427,7,0 +2020-04-27,Starr,Texas,48427,7,0 +2020-04-28,Starr,Texas,48427,8,0 +2020-04-29,Starr,Texas,48427,9,0 +2020-04-30,Starr,Texas,48427,9,0 +2020-05-01,Starr,Texas,48427,9,0 +2020-05-02,Starr,Texas,48427,9,0 +2020-05-03,Starr,Texas,48427,9,0 +2020-05-04,Starr,Texas,48427,9,0 +2020-05-05,Starr,Texas,48427,10,0 +2020-05-06,Starr,Texas,48427,10,0 +2020-05-07,Starr,Texas,48427,10,0 +2020-05-08,Starr,Texas,48427,14,0 +2020-05-09,Starr,Texas,48427,14,0 +2020-05-10,Starr,Texas,48427,14,0 +2020-05-11,Starr,Texas,48427,14,0 +2020-05-12,Starr,Texas,48427,14,0 +2020-05-13,Starr,Texas,48427,14,0 +2020-05-14,Starr,Texas,48427,14,0 +2020-05-15,Starr,Texas,48427,16,0 +2020-05-16,Starr,Texas,48427,17,0 +2020-05-17,Starr,Texas,48427,17,0 +2020-05-18,Starr,Texas,48427,17,0 +2020-05-19,Starr,Texas,48427,19,0 +2020-05-20,Starr,Texas,48427,22,0 +2020-05-21,Starr,Texas,48427,22,0 +2020-05-22,Starr,Texas,48427,22,0 +2020-05-23,Starr,Texas,48427,24,0 +2020-05-24,Starr,Texas,48427,24,0 +2020-05-25,Starr,Texas,48427,24,0 +2020-05-26,Starr,Texas,48427,24,0 +2020-05-27,Starr,Texas,48427,26,0 +2020-05-28,Starr,Texas,48427,27,0 +2020-05-29,Starr,Texas,48427,33,0 +2020-05-30,Starr,Texas,48427,33,0 +2020-05-31,Starr,Texas,48427,33,0 +2020-06-01,Starr,Texas,48427,34,0 +2020-06-02,Starr,Texas,48427,36,0 +2020-06-03,Starr,Texas,48427,37,0 +2020-06-04,Starr,Texas,48427,42,0 +2020-06-05,Starr,Texas,48427,44,0 +2020-06-06,Starr,Texas,48427,50,0 +2020-06-07,Starr,Texas,48427,52,0 +2020-06-08,Starr,Texas,48427,52,0 +2020-06-09,Starr,Texas,48427,57,0 +2020-06-10,Starr,Texas,48427,61,0 +2020-06-11,Starr,Texas,48427,68,0 +2020-06-12,Starr,Texas,48427,88,0 +2020-06-13,Starr,Texas,48427,102,0 +2020-06-14,Starr,Texas,48427,112,0 +2020-06-15,Starr,Texas,48427,119,0 +2020-06-16,Starr,Texas,48427,135,0 +2020-06-17,Starr,Texas,48427,159,0 +2020-06-18,Starr,Texas,48427,186,0 +2020-06-19,Starr,Texas,48427,203,0 +2020-06-20,Starr,Texas,48427,224,0 +2020-06-21,Starr,Texas,48427,244,0 +2020-06-22,Starr,Texas,48427,319,0 +2020-06-23,Starr,Texas,48427,334,3 +2020-06-24,Starr,Texas,48427,355,3 +2020-06-25,Starr,Texas,48427,373,3 +2020-06-26,Starr,Texas,48427,407,3 +2020-06-27,Starr,Texas,48427,475,3 +2020-06-28,Starr,Texas,48427,496,3 +2020-06-29,Starr,Texas,48427,551,3 +2020-06-30,Starr,Texas,48427,578,3 +2020-07-01,Starr,Texas,48427,642,3 +2020-07-02,Starr,Texas,48427,670,3 +2020-07-03,Starr,Texas,48427,683,3 +2020-07-04,Starr,Texas,48427,683,3 +2020-07-05,Starr,Texas,48427,936,3 +2020-07-06,Starr,Texas,48427,936,3 +2020-07-07,Starr,Texas,48427,936,4 +2020-07-08,Starr,Texas,48427,936,4 +2020-07-09,Starr,Texas,48427,936,4 +2020-04-10,Stephens,Texas,48429,1,0 +2020-04-11,Stephens,Texas,48429,1,0 +2020-04-12,Stephens,Texas,48429,1,0 +2020-04-13,Stephens,Texas,48429,1,0 +2020-04-14,Stephens,Texas,48429,1,0 +2020-04-15,Stephens,Texas,48429,1,0 +2020-04-16,Stephens,Texas,48429,1,0 +2020-04-17,Stephens,Texas,48429,1,0 +2020-04-18,Stephens,Texas,48429,1,0 +2020-04-19,Stephens,Texas,48429,1,0 +2020-04-20,Stephens,Texas,48429,1,0 +2020-04-21,Stephens,Texas,48429,1,0 +2020-04-22,Stephens,Texas,48429,1,0 +2020-04-23,Stephens,Texas,48429,1,0 +2020-04-24,Stephens,Texas,48429,1,0 +2020-04-25,Stephens,Texas,48429,1,0 +2020-04-26,Stephens,Texas,48429,1,0 +2020-04-27,Stephens,Texas,48429,1,0 +2020-04-28,Stephens,Texas,48429,1,0 +2020-04-29,Stephens,Texas,48429,1,0 +2020-04-30,Stephens,Texas,48429,1,0 +2020-05-01,Stephens,Texas,48429,1,0 +2020-05-02,Stephens,Texas,48429,1,0 +2020-05-03,Stephens,Texas,48429,1,0 +2020-05-04,Stephens,Texas,48429,1,0 +2020-05-05,Stephens,Texas,48429,1,0 +2020-05-06,Stephens,Texas,48429,1,0 +2020-05-07,Stephens,Texas,48429,1,0 +2020-05-08,Stephens,Texas,48429,1,0 +2020-05-09,Stephens,Texas,48429,1,0 +2020-05-10,Stephens,Texas,48429,1,0 +2020-05-11,Stephens,Texas,48429,1,0 +2020-05-12,Stephens,Texas,48429,1,0 +2020-05-13,Stephens,Texas,48429,2,0 +2020-05-14,Stephens,Texas,48429,2,0 +2020-05-15,Stephens,Texas,48429,2,0 +2020-05-16,Stephens,Texas,48429,2,0 +2020-05-17,Stephens,Texas,48429,2,0 +2020-05-18,Stephens,Texas,48429,2,0 +2020-05-19,Stephens,Texas,48429,2,0 +2020-05-20,Stephens,Texas,48429,2,0 +2020-05-21,Stephens,Texas,48429,2,0 +2020-05-22,Stephens,Texas,48429,2,0 +2020-05-23,Stephens,Texas,48429,2,0 +2020-05-24,Stephens,Texas,48429,2,0 +2020-05-25,Stephens,Texas,48429,2,0 +2020-05-26,Stephens,Texas,48429,4,0 +2020-05-27,Stephens,Texas,48429,4,0 +2020-05-28,Stephens,Texas,48429,4,0 +2020-05-29,Stephens,Texas,48429,4,0 +2020-05-30,Stephens,Texas,48429,4,0 +2020-05-31,Stephens,Texas,48429,4,0 +2020-06-01,Stephens,Texas,48429,4,0 +2020-06-02,Stephens,Texas,48429,4,0 +2020-06-03,Stephens,Texas,48429,4,0 +2020-06-04,Stephens,Texas,48429,4,0 +2020-06-05,Stephens,Texas,48429,4,0 +2020-06-06,Stephens,Texas,48429,4,0 +2020-06-07,Stephens,Texas,48429,4,0 +2020-06-08,Stephens,Texas,48429,4,0 +2020-06-09,Stephens,Texas,48429,4,0 +2020-06-10,Stephens,Texas,48429,4,0 +2020-06-11,Stephens,Texas,48429,4,0 +2020-06-12,Stephens,Texas,48429,4,0 +2020-06-13,Stephens,Texas,48429,5,0 +2020-06-14,Stephens,Texas,48429,5,0 +2020-06-15,Stephens,Texas,48429,5,0 +2020-06-16,Stephens,Texas,48429,5,0 +2020-06-17,Stephens,Texas,48429,5,0 +2020-06-18,Stephens,Texas,48429,5,0 +2020-06-19,Stephens,Texas,48429,5,0 +2020-06-20,Stephens,Texas,48429,5,0 +2020-06-21,Stephens,Texas,48429,5,0 +2020-06-22,Stephens,Texas,48429,5,0 +2020-06-23,Stephens,Texas,48429,5,0 +2020-06-24,Stephens,Texas,48429,7,0 +2020-06-25,Stephens,Texas,48429,7,0 +2020-06-26,Stephens,Texas,48429,7,0 +2020-06-27,Stephens,Texas,48429,7,0 +2020-06-28,Stephens,Texas,48429,7,0 +2020-06-29,Stephens,Texas,48429,7,0 +2020-06-30,Stephens,Texas,48429,8,0 +2020-07-01,Stephens,Texas,48429,8,0 +2020-07-02,Stephens,Texas,48429,8,0 +2020-07-03,Stephens,Texas,48429,8,0 +2020-07-04,Stephens,Texas,48429,8,0 +2020-07-05,Stephens,Texas,48429,8,0 +2020-07-06,Stephens,Texas,48429,8,0 +2020-07-07,Stephens,Texas,48429,9,0 +2020-07-08,Stephens,Texas,48429,11,0 +2020-07-09,Stephens,Texas,48429,12,0 +2020-06-19,Sutton,Texas,48435,1,0 +2020-06-20,Sutton,Texas,48435,1,0 +2020-06-21,Sutton,Texas,48435,1,0 +2020-06-22,Sutton,Texas,48435,1,0 +2020-06-23,Sutton,Texas,48435,3,0 +2020-06-24,Sutton,Texas,48435,3,0 +2020-06-25,Sutton,Texas,48435,3,0 +2020-06-26,Sutton,Texas,48435,3,0 +2020-06-27,Sutton,Texas,48435,3,0 +2020-06-28,Sutton,Texas,48435,3,0 +2020-06-29,Sutton,Texas,48435,4,0 +2020-06-30,Sutton,Texas,48435,5,0 +2020-07-01,Sutton,Texas,48435,5,0 +2020-07-02,Sutton,Texas,48435,6,0 +2020-07-03,Sutton,Texas,48435,11,0 +2020-07-04,Sutton,Texas,48435,11,0 +2020-07-05,Sutton,Texas,48435,11,0 +2020-07-06,Sutton,Texas,48435,11,0 +2020-07-07,Sutton,Texas,48435,13,0 +2020-07-08,Sutton,Texas,48435,13,0 +2020-07-09,Sutton,Texas,48435,16,0 +2020-03-29,Swisher,Texas,48437,1,0 +2020-03-30,Swisher,Texas,48437,1,0 +2020-03-31,Swisher,Texas,48437,1,0 +2020-04-01,Swisher,Texas,48437,1,0 +2020-04-02,Swisher,Texas,48437,1,0 +2020-04-03,Swisher,Texas,48437,1,0 +2020-04-04,Swisher,Texas,48437,1,0 +2020-04-05,Swisher,Texas,48437,1,0 +2020-04-06,Swisher,Texas,48437,1,0 +2020-04-07,Swisher,Texas,48437,1,0 +2020-04-08,Swisher,Texas,48437,1,0 +2020-04-09,Swisher,Texas,48437,2,0 +2020-04-10,Swisher,Texas,48437,3,0 +2020-04-11,Swisher,Texas,48437,3,0 +2020-04-12,Swisher,Texas,48437,4,0 +2020-04-13,Swisher,Texas,48437,4,0 +2020-04-14,Swisher,Texas,48437,4,0 +2020-04-15,Swisher,Texas,48437,4,0 +2020-04-16,Swisher,Texas,48437,4,0 +2020-04-17,Swisher,Texas,48437,4,0 +2020-04-18,Swisher,Texas,48437,4,0 +2020-04-19,Swisher,Texas,48437,4,0 +2020-04-20,Swisher,Texas,48437,5,0 +2020-04-21,Swisher,Texas,48437,5,0 +2020-04-22,Swisher,Texas,48437,6,0 +2020-04-23,Swisher,Texas,48437,6,0 +2020-04-24,Swisher,Texas,48437,7,0 +2020-04-25,Swisher,Texas,48437,7,0 +2020-04-26,Swisher,Texas,48437,9,0 +2020-04-27,Swisher,Texas,48437,9,0 +2020-04-28,Swisher,Texas,48437,9,0 +2020-04-29,Swisher,Texas,48437,9,0 +2020-04-30,Swisher,Texas,48437,9,0 +2020-05-01,Swisher,Texas,48437,9,0 +2020-05-02,Swisher,Texas,48437,9,0 +2020-05-03,Swisher,Texas,48437,9,0 +2020-05-04,Swisher,Texas,48437,9,0 +2020-05-05,Swisher,Texas,48437,10,0 +2020-05-06,Swisher,Texas,48437,11,0 +2020-05-07,Swisher,Texas,48437,11,0 +2020-05-08,Swisher,Texas,48437,11,0 +2020-05-09,Swisher,Texas,48437,11,0 +2020-05-10,Swisher,Texas,48437,12,0 +2020-05-11,Swisher,Texas,48437,12,0 +2020-05-12,Swisher,Texas,48437,13,0 +2020-05-13,Swisher,Texas,48437,13,0 +2020-05-14,Swisher,Texas,48437,13,0 +2020-05-15,Swisher,Texas,48437,14,0 +2020-05-16,Swisher,Texas,48437,14,0 +2020-05-17,Swisher,Texas,48437,14,0 +2020-05-18,Swisher,Texas,48437,15,0 +2020-05-19,Swisher,Texas,48437,15,0 +2020-05-20,Swisher,Texas,48437,15,0 +2020-05-21,Swisher,Texas,48437,15,0 +2020-05-22,Swisher,Texas,48437,15,0 +2020-05-23,Swisher,Texas,48437,17,0 +2020-05-24,Swisher,Texas,48437,17,0 +2020-05-25,Swisher,Texas,48437,17,0 +2020-05-26,Swisher,Texas,48437,17,0 +2020-05-27,Swisher,Texas,48437,17,0 +2020-05-28,Swisher,Texas,48437,18,0 +2020-05-29,Swisher,Texas,48437,18,0 +2020-05-30,Swisher,Texas,48437,17,0 +2020-05-31,Swisher,Texas,48437,17,0 +2020-06-01,Swisher,Texas,48437,17,0 +2020-06-02,Swisher,Texas,48437,17,0 +2020-06-03,Swisher,Texas,48437,17,0 +2020-06-04,Swisher,Texas,48437,18,0 +2020-06-05,Swisher,Texas,48437,18,0 +2020-06-06,Swisher,Texas,48437,18,1 +2020-06-07,Swisher,Texas,48437,18,1 +2020-06-08,Swisher,Texas,48437,18,1 +2020-06-09,Swisher,Texas,48437,18,1 +2020-06-10,Swisher,Texas,48437,18,1 +2020-06-11,Swisher,Texas,48437,19,1 +2020-06-12,Swisher,Texas,48437,21,1 +2020-06-13,Swisher,Texas,48437,21,1 +2020-06-14,Swisher,Texas,48437,21,1 +2020-06-15,Swisher,Texas,48437,21,1 +2020-06-16,Swisher,Texas,48437,21,1 +2020-06-17,Swisher,Texas,48437,23,1 +2020-06-18,Swisher,Texas,48437,23,1 +2020-06-19,Swisher,Texas,48437,23,1 +2020-06-20,Swisher,Texas,48437,23,1 +2020-06-21,Swisher,Texas,48437,23,1 +2020-06-22,Swisher,Texas,48437,23,1 +2020-06-23,Swisher,Texas,48437,23,1 +2020-06-24,Swisher,Texas,48437,24,1 +2020-06-25,Swisher,Texas,48437,26,1 +2020-06-26,Swisher,Texas,48437,28,1 +2020-06-27,Swisher,Texas,48437,31,1 +2020-06-28,Swisher,Texas,48437,31,1 +2020-06-29,Swisher,Texas,48437,31,1 +2020-06-30,Swisher,Texas,48437,31,1 +2020-07-01,Swisher,Texas,48437,35,1 +2020-07-02,Swisher,Texas,48437,35,1 +2020-07-03,Swisher,Texas,48437,37,1 +2020-07-04,Swisher,Texas,48437,38,1 +2020-07-05,Swisher,Texas,48437,38,1 +2020-07-06,Swisher,Texas,48437,38,1 +2020-07-07,Swisher,Texas,48437,44,1 +2020-07-08,Swisher,Texas,48437,45,1 +2020-07-09,Swisher,Texas,48437,51,1 +2020-03-10,Tarrant,Texas,48439,1,0 +2020-03-11,Tarrant,Texas,48439,1,0 +2020-03-12,Tarrant,Texas,48439,1,0 +2020-03-13,Tarrant,Texas,48439,2,0 +2020-03-14,Tarrant,Texas,48439,4,0 +2020-03-15,Tarrant,Texas,48439,4,0 +2020-03-16,Tarrant,Texas,48439,5,0 +2020-03-17,Tarrant,Texas,48439,6,0 +2020-03-18,Tarrant,Texas,48439,6,0 +2020-03-19,Tarrant,Texas,48439,19,0 +2020-03-20,Tarrant,Texas,48439,29,1 +2020-03-21,Tarrant,Texas,48439,47,1 +2020-03-22,Tarrant,Texas,48439,47,1 +2020-03-23,Tarrant,Texas,48439,57,1 +2020-03-24,Tarrant,Texas,48439,57,1 +2020-03-25,Tarrant,Texas,48439,71,1 +2020-03-26,Tarrant,Texas,48439,90,1 +2020-03-27,Tarrant,Texas,48439,114,1 +2020-03-28,Tarrant,Texas,48439,114,1 +2020-03-29,Tarrant,Texas,48439,139,1 +2020-03-30,Tarrant,Texas,48439,139,1 +2020-03-31,Tarrant,Texas,48439,175,1 +2020-04-01,Tarrant,Texas,48439,288,3 +2020-04-02,Tarrant,Texas,48439,325,6 +2020-04-03,Tarrant,Texas,48439,383,7 +2020-04-04,Tarrant,Texas,48439,383,9 +2020-04-05,Tarrant,Texas,48439,404,11 +2020-04-06,Tarrant,Texas,48439,452,13 +2020-04-07,Tarrant,Texas,48439,452,18 +2020-04-08,Tarrant,Texas,48439,588,19 +2020-04-09,Tarrant,Texas,48439,637,20 +2020-04-10,Tarrant,Texas,48439,705,21 +2020-04-11,Tarrant,Texas,48439,705,21 +2020-04-12,Tarrant,Texas,48439,806,25 +2020-04-13,Tarrant,Texas,48439,876,25 +2020-04-14,Tarrant,Texas,48439,929,29 +2020-04-15,Tarrant,Texas,48439,990,30 +2020-04-16,Tarrant,Texas,48439,990,34 +2020-04-17,Tarrant,Texas,48439,1175,35 +2020-04-18,Tarrant,Texas,48439,1229,38 +2020-04-19,Tarrant,Texas,48439,1242,39 +2020-04-20,Tarrant,Texas,48439,1249,39 +2020-04-21,Tarrant,Texas,48439,1333,42 +2020-04-22,Tarrant,Texas,48439,1430,44 +2020-04-23,Tarrant,Texas,48439,1559,45 +2020-04-24,Tarrant,Texas,48439,1706,48 +2020-04-25,Tarrant,Texas,48439,1836,52 +2020-04-26,Tarrant,Texas,48439,1947,53 +2020-04-27,Tarrant,Texas,48439,2019,53 +2020-04-28,Tarrant,Texas,48439,2088,58 +2020-04-29,Tarrant,Texas,48439,2149,61 +2020-04-30,Tarrant,Texas,48439,2246,68 +2020-05-01,Tarrant,Texas,48439,2388,69 +2020-05-02,Tarrant,Texas,48439,2503,71 +2020-05-03,Tarrant,Texas,48439,2584,75 +2020-05-04,Tarrant,Texas,48439,2624,77 +2020-05-05,Tarrant,Texas,48439,2686,83 +2020-05-06,Tarrant,Texas,48439,2813,88 +2020-05-07,Tarrant,Texas,48439,2956,90 +2020-05-08,Tarrant,Texas,48439,3127,95 +2020-05-09,Tarrant,Texas,48439,3210,101 +2020-05-10,Tarrant,Texas,48439,3695,103 +2020-05-11,Tarrant,Texas,48439,3745,104 +2020-05-12,Tarrant,Texas,48439,3810,109 +2020-05-13,Tarrant,Texas,48439,4076,114 +2020-05-14,Tarrant,Texas,48439,4211,117 +2020-05-15,Tarrant,Texas,48439,4266,120 +2020-05-16,Tarrant,Texas,48439,4350,121 +2020-05-17,Tarrant,Texas,48439,4447,123 +2020-05-18,Tarrant,Texas,48439,4559,123 +2020-05-19,Tarrant,Texas,48439,4643,130 +2020-05-20,Tarrant,Texas,48439,4711,132 +2020-05-21,Tarrant,Texas,48439,4803,139 +2020-05-22,Tarrant,Texas,48439,4899,141 +2020-05-23,Tarrant,Texas,48439,4951,143 +2020-05-24,Tarrant,Texas,48439,4977,144 +2020-05-25,Tarrant,Texas,48439,4977,144 +2020-05-26,Tarrant,Texas,48439,5039,144 +2020-05-27,Tarrant,Texas,48439,5190,155 +2020-05-28,Tarrant,Texas,48439,5294,158 +2020-05-29,Tarrant,Texas,48439,5379,160 +2020-05-30,Tarrant,Texas,48439,5463,165 +2020-05-31,Tarrant,Texas,48439,5513,165 +2020-06-01,Tarrant,Texas,48439,5534,165 +2020-06-02,Tarrant,Texas,48439,5623,167 +2020-06-03,Tarrant,Texas,48439,5761,168 +2020-06-04,Tarrant,Texas,48439,5863,173 +2020-06-05,Tarrant,Texas,48439,5985,174 +2020-06-06,Tarrant,Texas,48439,6073,176 +2020-06-07,Tarrant,Texas,48439,6150,178 +2020-06-08,Tarrant,Texas,48439,6369,178 +2020-06-09,Tarrant,Texas,48439,6433,184 +2020-06-10,Tarrant,Texas,48439,6599,189 +2020-06-11,Tarrant,Texas,48439,6824,190 +2020-06-12,Tarrant,Texas,48439,7120,191 +2020-06-13,Tarrant,Texas,48439,7253,194 +2020-06-14,Tarrant,Texas,48439,7334,197 +2020-06-15,Tarrant,Texas,48439,7498,197 +2020-06-16,Tarrant,Texas,48439,7642,198 +2020-06-17,Tarrant,Texas,48439,7822,199 +2020-06-18,Tarrant,Texas,48439,8099,205 +2020-06-19,Tarrant,Texas,48439,8331,207 +2020-06-20,Tarrant,Texas,48439,8511,208 +2020-06-21,Tarrant,Texas,48439,8955,208 +2020-06-22,Tarrant,Texas,48439,9126,210 +2020-06-23,Tarrant,Texas,48439,9386,211 +2020-06-24,Tarrant,Texas,48439,9846,215 +2020-06-25,Tarrant,Texas,48439,10363,218 +2020-06-26,Tarrant,Texas,48439,10706,222 +2020-06-27,Tarrant,Texas,48439,11083,224 +2020-06-28,Tarrant,Texas,48439,11476,225 +2020-06-29,Tarrant,Texas,48439,11739,225 +2020-06-30,Tarrant,Texas,48439,12344,228 +2020-07-01,Tarrant,Texas,48439,12950,231 +2020-07-02,Tarrant,Texas,48439,13423,233 +2020-07-03,Tarrant,Texas,48439,13423,233 +2020-07-04,Tarrant,Texas,48439,13423,233 +2020-07-05,Tarrant,Texas,48439,14008,236 +2020-07-06,Tarrant,Texas,48439,14828,238 +2020-07-07,Tarrant,Texas,48439,15585,248 +2020-07-08,Tarrant,Texas,48439,16180,254 +2020-07-09,Tarrant,Texas,48439,16700,259 +2020-03-27,Taylor,Texas,48441,1,0 +2020-03-28,Taylor,Texas,48441,2,0 +2020-03-29,Taylor,Texas,48441,7,0 +2020-03-30,Taylor,Texas,48441,7,0 +2020-03-31,Taylor,Texas,48441,11,0 +2020-04-01,Taylor,Texas,48441,14,0 +2020-04-02,Taylor,Texas,48441,14,0 +2020-04-03,Taylor,Texas,48441,18,0 +2020-04-04,Taylor,Texas,48441,23,1 +2020-04-05,Taylor,Texas,48441,27,1 +2020-04-06,Taylor,Texas,48441,27,1 +2020-04-07,Taylor,Texas,48441,31,1 +2020-04-08,Taylor,Texas,48441,31,1 +2020-04-09,Taylor,Texas,48441,31,1 +2020-04-10,Taylor,Texas,48441,51,1 +2020-04-11,Taylor,Texas,48441,55,1 +2020-04-12,Taylor,Texas,48441,59,1 +2020-04-13,Taylor,Texas,48441,68,1 +2020-04-14,Taylor,Texas,48441,74,1 +2020-04-15,Taylor,Texas,48441,74,2 +2020-04-16,Taylor,Texas,48441,79,2 +2020-04-17,Taylor,Texas,48441,89,2 +2020-04-18,Taylor,Texas,48441,142,2 +2020-04-19,Taylor,Texas,48441,142,2 +2020-04-20,Taylor,Texas,48441,144,2 +2020-04-21,Taylor,Texas,48441,164,3 +2020-04-22,Taylor,Texas,48441,164,2 +2020-04-23,Taylor,Texas,48441,191,3 +2020-04-24,Taylor,Texas,48441,191,3 +2020-04-25,Taylor,Texas,48441,203,3 +2020-04-26,Taylor,Texas,48441,216,3 +2020-04-27,Taylor,Texas,48441,255,3 +2020-04-28,Taylor,Texas,48441,277,3 +2020-04-29,Taylor,Texas,48441,291,5 +2020-04-30,Taylor,Texas,48441,319,5 +2020-05-01,Taylor,Texas,48441,319,5 +2020-05-02,Taylor,Texas,48441,327,5 +2020-05-03,Taylor,Texas,48441,348,5 +2020-05-04,Taylor,Texas,48441,349,5 +2020-05-05,Taylor,Texas,48441,378,6 +2020-05-06,Taylor,Texas,48441,378,6 +2020-05-07,Taylor,Texas,48441,382,6 +2020-05-08,Taylor,Texas,48441,384,6 +2020-05-09,Taylor,Texas,48441,384,6 +2020-05-10,Taylor,Texas,48441,384,6 +2020-05-11,Taylor,Texas,48441,386,6 +2020-05-12,Taylor,Texas,48441,389,6 +2020-05-13,Taylor,Texas,48441,390,6 +2020-05-14,Taylor,Texas,48441,391,6 +2020-05-15,Taylor,Texas,48441,393,6 +2020-05-16,Taylor,Texas,48441,393,6 +2020-05-17,Taylor,Texas,48441,393,6 +2020-05-18,Taylor,Texas,48441,393,6 +2020-05-19,Taylor,Texas,48441,400,6 +2020-05-20,Taylor,Texas,48441,400,6 +2020-05-21,Taylor,Texas,48441,400,6 +2020-05-22,Taylor,Texas,48441,322,5 +2020-05-23,Taylor,Texas,48441,322,5 +2020-05-24,Taylor,Texas,48441,322,5 +2020-05-25,Taylor,Texas,48441,322,5 +2020-05-26,Taylor,Texas,48441,324,5 +2020-05-27,Taylor,Texas,48441,325,5 +2020-05-28,Taylor,Texas,48441,326,5 +2020-05-29,Taylor,Texas,48441,328,5 +2020-05-30,Taylor,Texas,48441,328,5 +2020-05-31,Taylor,Texas,48441,328,5 +2020-06-01,Taylor,Texas,48441,328,5 +2020-06-02,Taylor,Texas,48441,335,5 +2020-06-03,Taylor,Texas,48441,336,5 +2020-06-04,Taylor,Texas,48441,339,5 +2020-06-05,Taylor,Texas,48441,340,5 +2020-06-06,Taylor,Texas,48441,340,5 +2020-06-07,Taylor,Texas,48441,340,5 +2020-06-08,Taylor,Texas,48441,341,5 +2020-06-09,Taylor,Texas,48441,342,5 +2020-06-10,Taylor,Texas,48441,343,5 +2020-06-11,Taylor,Texas,48441,343,5 +2020-06-12,Taylor,Texas,48441,346,5 +2020-06-13,Taylor,Texas,48441,346,5 +2020-06-14,Taylor,Texas,48441,349,5 +2020-06-15,Taylor,Texas,48441,349,5 +2020-06-16,Taylor,Texas,48441,353,5 +2020-06-17,Taylor,Texas,48441,355,5 +2020-06-18,Taylor,Texas,48441,355,5 +2020-06-19,Taylor,Texas,48441,372,5 +2020-06-20,Taylor,Texas,48441,372,5 +2020-06-21,Taylor,Texas,48441,376,5 +2020-06-22,Taylor,Texas,48441,392,5 +2020-06-23,Taylor,Texas,48441,407,5 +2020-06-24,Taylor,Texas,48441,412,5 +2020-06-25,Taylor,Texas,48441,421,5 +2020-06-26,Taylor,Texas,48441,433,5 +2020-06-27,Taylor,Texas,48441,433,5 +2020-06-28,Taylor,Texas,48441,440,5 +2020-06-29,Taylor,Texas,48441,460,5 +2020-06-30,Taylor,Texas,48441,494,5 +2020-07-01,Taylor,Texas,48441,517,5 +2020-07-02,Taylor,Texas,48441,540,6 +2020-07-03,Taylor,Texas,48441,540,6 +2020-07-04,Taylor,Texas,48441,580,6 +2020-07-05,Taylor,Texas,48441,588,6 +2020-07-06,Taylor,Texas,48441,637,6 +2020-07-07,Taylor,Texas,48441,667,6 +2020-07-08,Taylor,Texas,48441,691,6 +2020-07-09,Taylor,Texas,48441,716,7 +2020-06-23,Terrell,Texas,48443,1,0 +2020-06-24,Terrell,Texas,48443,1,0 +2020-06-25,Terrell,Texas,48443,1,0 +2020-06-26,Terrell,Texas,48443,1,0 +2020-06-27,Terrell,Texas,48443,1,0 +2020-06-28,Terrell,Texas,48443,1,0 +2020-06-29,Terrell,Texas,48443,1,0 +2020-06-30,Terrell,Texas,48443,2,0 +2020-07-01,Terrell,Texas,48443,3,0 +2020-07-02,Terrell,Texas,48443,2,0 +2020-07-03,Terrell,Texas,48443,2,0 +2020-07-04,Terrell,Texas,48443,2,0 +2020-07-05,Terrell,Texas,48443,2,0 +2020-07-06,Terrell,Texas,48443,2,0 +2020-07-07,Terrell,Texas,48443,2,0 +2020-07-08,Terrell,Texas,48443,2,0 +2020-07-09,Terrell,Texas,48443,2,0 +2020-03-25,Terry,Texas,48445,1,0 +2020-03-26,Terry,Texas,48445,3,0 +2020-03-27,Terry,Texas,48445,1,0 +2020-03-28,Terry,Texas,48445,1,0 +2020-03-29,Terry,Texas,48445,3,0 +2020-03-30,Terry,Texas,48445,3,0 +2020-03-31,Terry,Texas,48445,4,0 +2020-04-01,Terry,Texas,48445,4,0 +2020-04-02,Terry,Texas,48445,4,0 +2020-04-03,Terry,Texas,48445,4,0 +2020-04-04,Terry,Texas,48445,4,0 +2020-04-05,Terry,Texas,48445,4,0 +2020-04-06,Terry,Texas,48445,4,0 +2020-04-07,Terry,Texas,48445,4,0 +2020-04-08,Terry,Texas,48445,4,0 +2020-04-09,Terry,Texas,48445,6,0 +2020-04-10,Terry,Texas,48445,6,0 +2020-04-11,Terry,Texas,48445,6,0 +2020-04-12,Terry,Texas,48445,6,0 +2020-04-13,Terry,Texas,48445,10,0 +2020-04-14,Terry,Texas,48445,10,0 +2020-04-15,Terry,Texas,48445,10,0 +2020-04-16,Terry,Texas,48445,10,0 +2020-04-17,Terry,Texas,48445,10,0 +2020-04-18,Terry,Texas,48445,10,0 +2020-04-19,Terry,Texas,48445,10,0 +2020-04-20,Terry,Texas,48445,10,0 +2020-04-21,Terry,Texas,48445,10,0 +2020-04-22,Terry,Texas,48445,10,0 +2020-04-23,Terry,Texas,48445,10,0 +2020-04-24,Terry,Texas,48445,10,0 +2020-04-25,Terry,Texas,48445,10,0 +2020-04-26,Terry,Texas,48445,10,0 +2020-04-27,Terry,Texas,48445,10,0 +2020-04-28,Terry,Texas,48445,10,0 +2020-04-29,Terry,Texas,48445,10,0 +2020-04-30,Terry,Texas,48445,11,0 +2020-05-01,Terry,Texas,48445,11,0 +2020-05-02,Terry,Texas,48445,11,0 +2020-05-03,Terry,Texas,48445,11,0 +2020-05-04,Terry,Texas,48445,11,0 +2020-05-05,Terry,Texas,48445,12,0 +2020-05-06,Terry,Texas,48445,12,0 +2020-05-07,Terry,Texas,48445,12,0 +2020-05-08,Terry,Texas,48445,12,0 +2020-05-09,Terry,Texas,48445,12,0 +2020-05-10,Terry,Texas,48445,12,0 +2020-05-11,Terry,Texas,48445,12,0 +2020-05-12,Terry,Texas,48445,12,0 +2020-05-13,Terry,Texas,48445,12,0 +2020-05-14,Terry,Texas,48445,12,0 +2020-05-15,Terry,Texas,48445,12,0 +2020-05-16,Terry,Texas,48445,12,0 +2020-05-17,Terry,Texas,48445,12,0 +2020-05-18,Terry,Texas,48445,12,0 +2020-05-19,Terry,Texas,48445,13,0 +2020-05-20,Terry,Texas,48445,13,0 +2020-05-21,Terry,Texas,48445,13,0 +2020-05-22,Terry,Texas,48445,13,0 +2020-05-23,Terry,Texas,48445,13,0 +2020-05-24,Terry,Texas,48445,13,0 +2020-05-25,Terry,Texas,48445,13,0 +2020-05-26,Terry,Texas,48445,13,0 +2020-05-27,Terry,Texas,48445,13,0 +2020-05-28,Terry,Texas,48445,13,0 +2020-05-29,Terry,Texas,48445,13,0 +2020-05-30,Terry,Texas,48445,13,0 +2020-05-31,Terry,Texas,48445,13,0 +2020-06-01,Terry,Texas,48445,13,0 +2020-06-02,Terry,Texas,48445,13,0 +2020-06-03,Terry,Texas,48445,13,0 +2020-06-04,Terry,Texas,48445,13,0 +2020-06-05,Terry,Texas,48445,13,0 +2020-06-06,Terry,Texas,48445,13,0 +2020-06-07,Terry,Texas,48445,13,0 +2020-06-08,Terry,Texas,48445,13,0 +2020-06-09,Terry,Texas,48445,13,0 +2020-06-10,Terry,Texas,48445,13,0 +2020-06-11,Terry,Texas,48445,13,0 +2020-06-12,Terry,Texas,48445,13,0 +2020-06-13,Terry,Texas,48445,13,0 +2020-06-14,Terry,Texas,48445,13,0 +2020-06-15,Terry,Texas,48445,13,0 +2020-06-16,Terry,Texas,48445,13,0 +2020-06-17,Terry,Texas,48445,13,0 +2020-06-18,Terry,Texas,48445,14,0 +2020-06-19,Terry,Texas,48445,14,0 +2020-06-20,Terry,Texas,48445,14,0 +2020-06-21,Terry,Texas,48445,14,0 +2020-06-22,Terry,Texas,48445,14,0 +2020-06-23,Terry,Texas,48445,14,0 +2020-06-24,Terry,Texas,48445,14,0 +2020-06-25,Terry,Texas,48445,15,0 +2020-06-26,Terry,Texas,48445,16,0 +2020-06-27,Terry,Texas,48445,16,0 +2020-06-28,Terry,Texas,48445,16,0 +2020-06-29,Terry,Texas,48445,16,0 +2020-06-30,Terry,Texas,48445,17,0 +2020-07-01,Terry,Texas,48445,17,0 +2020-07-02,Terry,Texas,48445,21,0 +2020-07-03,Terry,Texas,48445,21,0 +2020-07-04,Terry,Texas,48445,36,0 +2020-07-05,Terry,Texas,48445,36,0 +2020-07-06,Terry,Texas,48445,36,0 +2020-07-07,Terry,Texas,48445,39,0 +2020-07-08,Terry,Texas,48445,44,0 +2020-07-09,Terry,Texas,48445,47,0 +2020-07-03,Throckmorton,Texas,48447,1,0 +2020-07-04,Throckmorton,Texas,48447,1,0 +2020-07-05,Throckmorton,Texas,48447,1,0 +2020-07-06,Throckmorton,Texas,48447,1,0 +2020-07-07,Throckmorton,Texas,48447,1,0 +2020-07-08,Throckmorton,Texas,48447,1,0 +2020-07-09,Throckmorton,Texas,48447,1,0 +2020-04-03,Titus,Texas,48449,1,0 +2020-04-04,Titus,Texas,48449,1,0 +2020-04-05,Titus,Texas,48449,1,0 +2020-04-06,Titus,Texas,48449,1,0 +2020-04-07,Titus,Texas,48449,2,0 +2020-04-08,Titus,Texas,48449,2,0 +2020-04-09,Titus,Texas,48449,4,0 +2020-04-10,Titus,Texas,48449,6,0 +2020-04-11,Titus,Texas,48449,6,0 +2020-04-12,Titus,Texas,48449,6,0 +2020-04-13,Titus,Texas,48449,6,0 +2020-04-14,Titus,Texas,48449,7,0 +2020-04-15,Titus,Texas,48449,8,0 +2020-04-16,Titus,Texas,48449,8,0 +2020-04-17,Titus,Texas,48449,8,0 +2020-04-18,Titus,Texas,48449,8,0 +2020-04-19,Titus,Texas,48449,9,0 +2020-04-20,Titus,Texas,48449,9,0 +2020-04-21,Titus,Texas,48449,11,0 +2020-04-22,Titus,Texas,48449,12,0 +2020-04-23,Titus,Texas,48449,12,0 +2020-04-24,Titus,Texas,48449,15,0 +2020-04-25,Titus,Texas,48449,15,0 +2020-04-26,Titus,Texas,48449,15,0 +2020-04-27,Titus,Texas,48449,15,0 +2020-04-28,Titus,Texas,48449,15,0 +2020-04-29,Titus,Texas,48449,15,0 +2020-04-30,Titus,Texas,48449,16,0 +2020-05-01,Titus,Texas,48449,17,0 +2020-05-02,Titus,Texas,48449,17,0 +2020-05-03,Titus,Texas,48449,20,0 +2020-05-04,Titus,Texas,48449,20,0 +2020-05-05,Titus,Texas,48449,21,0 +2020-05-06,Titus,Texas,48449,23,0 +2020-05-07,Titus,Texas,48449,27,0 +2020-05-08,Titus,Texas,48449,29,0 +2020-05-09,Titus,Texas,48449,29,0 +2020-05-10,Titus,Texas,48449,35,0 +2020-05-11,Titus,Texas,48449,35,0 +2020-05-12,Titus,Texas,48449,37,0 +2020-05-13,Titus,Texas,48449,59,0 +2020-05-14,Titus,Texas,48449,74,0 +2020-05-15,Titus,Texas,48449,83,1 +2020-05-16,Titus,Texas,48449,96,1 +2020-05-17,Titus,Texas,48449,96,1 +2020-05-18,Titus,Texas,48449,102,1 +2020-05-19,Titus,Texas,48449,129,1 +2020-05-20,Titus,Texas,48449,142,2 +2020-05-21,Titus,Texas,48449,189,2 +2020-05-22,Titus,Texas,48449,248,2 +2020-05-23,Titus,Texas,48449,272,2 +2020-05-24,Titus,Texas,48449,272,2 +2020-05-25,Titus,Texas,48449,299,2 +2020-05-26,Titus,Texas,48449,321,2 +2020-05-27,Titus,Texas,48449,366,2 +2020-05-28,Titus,Texas,48449,443,2 +2020-05-29,Titus,Texas,48449,464,2 +2020-05-30,Titus,Texas,48449,446,2 +2020-05-31,Titus,Texas,48449,495,3 +2020-06-01,Titus,Texas,48449,495,3 +2020-06-02,Titus,Texas,48449,511,3 +2020-06-03,Titus,Texas,48449,541,3 +2020-06-04,Titus,Texas,48449,576,3 +2020-06-05,Titus,Texas,48449,583,3 +2020-06-06,Titus,Texas,48449,616,3 +2020-06-07,Titus,Texas,48449,616,3 +2020-06-08,Titus,Texas,48449,629,3 +2020-06-09,Titus,Texas,48449,635,3 +2020-06-10,Titus,Texas,48449,635,3 +2020-06-11,Titus,Texas,48449,635,3 +2020-06-12,Titus,Texas,48449,655,3 +2020-06-13,Titus,Texas,48449,707,5 +2020-06-14,Titus,Texas,48449,707,5 +2020-06-15,Titus,Texas,48449,714,5 +2020-06-16,Titus,Texas,48449,719,5 +2020-06-17,Titus,Texas,48449,719,5 +2020-06-18,Titus,Texas,48449,719,5 +2020-06-19,Titus,Texas,48449,729,5 +2020-06-20,Titus,Texas,48449,732,5 +2020-06-21,Titus,Texas,48449,739,5 +2020-06-22,Titus,Texas,48449,739,5 +2020-06-23,Titus,Texas,48449,744,5 +2020-06-24,Titus,Texas,48449,752,5 +2020-06-25,Titus,Texas,48449,763,5 +2020-06-26,Titus,Texas,48449,787,5 +2020-06-27,Titus,Texas,48449,787,5 +2020-06-28,Titus,Texas,48449,787,5 +2020-06-29,Titus,Texas,48449,799,5 +2020-06-30,Titus,Texas,48449,799,5 +2020-07-01,Titus,Texas,48449,809,5 +2020-07-02,Titus,Texas,48449,828,5 +2020-07-03,Titus,Texas,48449,852,5 +2020-07-04,Titus,Texas,48449,852,5 +2020-07-05,Titus,Texas,48449,852,5 +2020-07-06,Titus,Texas,48449,875,5 +2020-07-07,Titus,Texas,48449,955,5 +2020-07-08,Titus,Texas,48449,956,6 +2020-07-09,Titus,Texas,48449,956,6 +2020-03-25,Tom Green,Texas,48451,1,0 +2020-03-26,Tom Green,Texas,48451,2,0 +2020-03-27,Tom Green,Texas,48451,2,0 +2020-03-28,Tom Green,Texas,48451,3,0 +2020-03-29,Tom Green,Texas,48451,3,0 +2020-03-30,Tom Green,Texas,48451,5,0 +2020-03-31,Tom Green,Texas,48451,6,0 +2020-04-01,Tom Green,Texas,48451,9,0 +2020-04-02,Tom Green,Texas,48451,9,0 +2020-04-03,Tom Green,Texas,48451,10,0 +2020-04-04,Tom Green,Texas,48451,17,0 +2020-04-05,Tom Green,Texas,48451,20,0 +2020-04-06,Tom Green,Texas,48451,20,0 +2020-04-07,Tom Green,Texas,48451,24,0 +2020-04-08,Tom Green,Texas,48451,24,0 +2020-04-09,Tom Green,Texas,48451,25,0 +2020-04-10,Tom Green,Texas,48451,32,1 +2020-04-11,Tom Green,Texas,48451,33,1 +2020-04-12,Tom Green,Texas,48451,35,1 +2020-04-13,Tom Green,Texas,48451,35,1 +2020-04-14,Tom Green,Texas,48451,39,1 +2020-04-15,Tom Green,Texas,48451,39,1 +2020-04-16,Tom Green,Texas,48451,40,1 +2020-04-17,Tom Green,Texas,48451,41,1 +2020-04-18,Tom Green,Texas,48451,41,1 +2020-04-19,Tom Green,Texas,48451,41,1 +2020-04-20,Tom Green,Texas,48451,41,1 +2020-04-21,Tom Green,Texas,48451,41,1 +2020-04-22,Tom Green,Texas,48451,41,1 +2020-04-23,Tom Green,Texas,48451,41,1 +2020-04-24,Tom Green,Texas,48451,42,1 +2020-04-25,Tom Green,Texas,48451,42,1 +2020-04-26,Tom Green,Texas,48451,43,1 +2020-04-27,Tom Green,Texas,48451,44,1 +2020-04-28,Tom Green,Texas,48451,44,1 +2020-04-29,Tom Green,Texas,48451,44,1 +2020-04-30,Tom Green,Texas,48451,49,1 +2020-05-01,Tom Green,Texas,48451,48,1 +2020-05-02,Tom Green,Texas,48451,50,1 +2020-05-03,Tom Green,Texas,48451,54,1 +2020-05-04,Tom Green,Texas,48451,55,1 +2020-05-05,Tom Green,Texas,48451,56,1 +2020-05-06,Tom Green,Texas,48451,56,1 +2020-05-07,Tom Green,Texas,48451,58,1 +2020-05-08,Tom Green,Texas,48451,59,1 +2020-05-09,Tom Green,Texas,48451,59,1 +2020-05-10,Tom Green,Texas,48451,59,1 +2020-05-11,Tom Green,Texas,48451,59,1 +2020-05-12,Tom Green,Texas,48451,59,1 +2020-05-13,Tom Green,Texas,48451,59,1 +2020-05-14,Tom Green,Texas,48451,59,1 +2020-05-15,Tom Green,Texas,48451,60,1 +2020-05-16,Tom Green,Texas,48451,61,1 +2020-05-17,Tom Green,Texas,48451,61,1 +2020-05-18,Tom Green,Texas,48451,61,1 +2020-05-19,Tom Green,Texas,48451,62,1 +2020-05-20,Tom Green,Texas,48451,62,1 +2020-05-21,Tom Green,Texas,48451,63,1 +2020-05-22,Tom Green,Texas,48451,63,1 +2020-05-23,Tom Green,Texas,48451,64,1 +2020-05-24,Tom Green,Texas,48451,64,1 +2020-05-25,Tom Green,Texas,48451,64,1 +2020-05-26,Tom Green,Texas,48451,64,1 +2020-05-27,Tom Green,Texas,48451,64,1 +2020-05-28,Tom Green,Texas,48451,67,1 +2020-05-29,Tom Green,Texas,48451,67,1 +2020-05-30,Tom Green,Texas,48451,65,1 +2020-05-31,Tom Green,Texas,48451,69,1 +2020-06-01,Tom Green,Texas,48451,70,1 +2020-06-02,Tom Green,Texas,48451,70,1 +2020-06-03,Tom Green,Texas,48451,70,1 +2020-06-04,Tom Green,Texas,48451,69,1 +2020-06-05,Tom Green,Texas,48451,69,1 +2020-06-06,Tom Green,Texas,48451,78,1 +2020-06-07,Tom Green,Texas,48451,78,1 +2020-06-08,Tom Green,Texas,48451,81,1 +2020-06-09,Tom Green,Texas,48451,82,1 +2020-06-10,Tom Green,Texas,48451,82,1 +2020-06-11,Tom Green,Texas,48451,83,1 +2020-06-12,Tom Green,Texas,48451,89,1 +2020-06-13,Tom Green,Texas,48451,95,1 +2020-06-14,Tom Green,Texas,48451,104,1 +2020-06-15,Tom Green,Texas,48451,106,1 +2020-06-16,Tom Green,Texas,48451,121,1 +2020-06-17,Tom Green,Texas,48451,131,1 +2020-06-18,Tom Green,Texas,48451,151,1 +2020-06-19,Tom Green,Texas,48451,171,1 +2020-06-20,Tom Green,Texas,48451,178,1 +2020-06-21,Tom Green,Texas,48451,186,1 +2020-06-22,Tom Green,Texas,48451,192,1 +2020-06-23,Tom Green,Texas,48451,201,1 +2020-06-24,Tom Green,Texas,48451,206,1 +2020-06-25,Tom Green,Texas,48451,219,1 +2020-06-26,Tom Green,Texas,48451,228,1 +2020-06-27,Tom Green,Texas,48451,241,1 +2020-06-28,Tom Green,Texas,48451,268,1 +2020-06-29,Tom Green,Texas,48451,280,1 +2020-06-30,Tom Green,Texas,48451,299,1 +2020-07-01,Tom Green,Texas,48451,312,1 +2020-07-02,Tom Green,Texas,48451,338,1 +2020-07-03,Tom Green,Texas,48451,372,1 +2020-07-04,Tom Green,Texas,48451,408,1 +2020-07-05,Tom Green,Texas,48451,434,1 +2020-07-06,Tom Green,Texas,48451,510,1 +2020-07-07,Tom Green,Texas,48451,530,1 +2020-07-08,Tom Green,Texas,48451,595,1 +2020-07-09,Tom Green,Texas,48451,608,1 +2020-03-13,Travis,Texas,48453,4,0 +2020-03-14,Travis,Texas,48453,4,0 +2020-03-15,Travis,Texas,48453,6,0 +2020-03-16,Travis,Texas,48453,6,0 +2020-03-17,Travis,Texas,48453,6,0 +2020-03-18,Travis,Texas,48453,6,0 +2020-03-19,Travis,Texas,48453,7,0 +2020-03-20,Travis,Texas,48453,21,0 +2020-03-21,Travis,Texas,48453,62,0 +2020-03-22,Travis,Texas,48453,79,0 +2020-03-23,Travis,Texas,48453,79,0 +2020-03-24,Travis,Texas,48453,79,0 +2020-03-25,Travis,Texas,48453,119,0 +2020-03-26,Travis,Texas,48453,137,0 +2020-03-27,Travis,Texas,48453,160,1 +2020-03-28,Travis,Texas,48453,160,1 +2020-03-29,Travis,Texas,48453,179,1 +2020-03-30,Travis,Texas,48453,206,2 +2020-03-31,Travis,Texas,48453,206,2 +2020-04-01,Travis,Texas,48453,244,2 +2020-04-02,Travis,Texas,48453,305,3 +2020-04-03,Travis,Texas,48453,351,3 +2020-04-04,Travis,Texas,48453,430,6 +2020-04-05,Travis,Texas,48453,460,6 +2020-04-06,Travis,Texas,48453,502,6 +2020-04-07,Travis,Texas,48453,502,6 +2020-04-08,Travis,Texas,48453,596,7 +2020-04-09,Travis,Texas,48453,597,7 +2020-04-10,Travis,Texas,48453,642,7 +2020-04-11,Travis,Texas,48453,690,9 +2020-04-12,Travis,Texas,48453,774,9 +2020-04-13,Travis,Texas,48453,856,11 +2020-04-14,Travis,Texas,48453,900,14 +2020-04-15,Travis,Texas,48453,900,14 +2020-04-16,Travis,Texas,48453,977,17 +2020-04-17,Travis,Texas,48453,1074,21 +2020-04-18,Travis,Texas,48453,1092,23 +2020-04-19,Travis,Texas,48453,1108,25 +2020-04-20,Travis,Texas,48453,1174,26 +2020-04-21,Travis,Texas,48453,1233,27 +2020-04-22,Travis,Texas,48453,1263,28 +2020-04-23,Travis,Texas,48453,1312,31 +2020-04-24,Travis,Texas,48453,1379,32 +2020-04-25,Travis,Texas,48453,1396,36 +2020-04-26,Travis,Texas,48453,1412,39 +2020-04-27,Travis,Texas,48453,1464,42 +2020-04-28,Travis,Texas,48453,1539,42 +2020-04-29,Travis,Texas,48453,1591,44 +2020-04-30,Travis,Texas,48453,1654,47 +2020-05-01,Travis,Texas,48453,1683,51 +2020-05-02,Travis,Texas,48453,1714,51 +2020-05-03,Travis,Texas,48453,1756,52 +2020-05-04,Travis,Texas,48453,1816,53 +2020-05-05,Travis,Texas,48453,1876,58 +2020-05-06,Travis,Texas,48453,1946,58 +2020-05-07,Travis,Texas,48453,2002,59 +2020-05-08,Travis,Texas,48453,2071,60 +2020-05-09,Travis,Texas,48453,2095,60 +2020-05-10,Travis,Texas,48453,2127,60 +2020-05-11,Travis,Texas,48453,2171,65 +2020-05-12,Travis,Texas,48453,2235,71 +2020-05-13,Travis,Texas,48453,2288,72 +2020-05-14,Travis,Texas,48453,2345,74 +2020-05-15,Travis,Texas,48453,2381,77 +2020-05-16,Travis,Texas,48453,2425,77 +2020-05-17,Travis,Texas,48453,2459,77 +2020-05-18,Travis,Texas,48453,2537,79 +2020-05-19,Travis,Texas,48453,2595,81 +2020-05-20,Travis,Texas,48453,2644,82 +2020-05-21,Travis,Texas,48453,2712,83 +2020-05-22,Travis,Texas,48453,2761,83 +2020-05-23,Travis,Texas,48453,2788,83 +2020-05-24,Travis,Texas,48453,2847,84 +2020-05-25,Travis,Texas,48453,2933,85 +2020-05-26,Travis,Texas,48453,2984,88 +2020-05-27,Travis,Texas,48453,3057,91 +2020-05-28,Travis,Texas,48453,3124,92 +2020-05-29,Travis,Texas,48453,3186,93 +2020-05-30,Travis,Texas,48453,3232,93 +2020-05-31,Travis,Texas,48453,3272,93 +2020-06-01,Travis,Texas,48453,3360,93 +2020-06-02,Travis,Texas,48453,3433,93 +2020-06-03,Travis,Texas,48453,3501,95 +2020-06-04,Travis,Texas,48453,3562,95 +2020-06-05,Travis,Texas,48453,3616,97 +2020-06-06,Travis,Texas,48453,3662,97 +2020-06-07,Travis,Texas,48453,3697,97 +2020-06-08,Travis,Texas,48453,3815,98 +2020-06-09,Travis,Texas,48453,3976,99 +2020-06-10,Travis,Texas,48453,4109,99 +2020-06-11,Travis,Texas,48453,4238,101 +2020-06-12,Travis,Texas,48453,4314,104 +2020-06-13,Travis,Texas,48453,4461,104 +2020-06-14,Travis,Texas,48453,4545,104 +2020-06-15,Travis,Texas,48453,4664,106 +2020-06-16,Travis,Texas,48453,4771,106 +2020-06-17,Travis,Texas,48453,4991,108 +2020-06-18,Travis,Texas,48453,4991,108 +2020-06-19,Travis,Texas,48453,5286,108 +2020-06-20,Travis,Texas,48453,5704,109 +2020-06-21,Travis,Texas,48453,6210,110 +2020-06-22,Travis,Texas,48453,6339,112 +2020-06-23,Travis,Texas,48453,6596,114 +2020-06-24,Travis,Texas,48453,6914,116 +2020-06-25,Travis,Texas,48453,7097,116 +2020-06-26,Travis,Texas,48453,7097,116 +2020-06-27,Travis,Texas,48453,7825,117 +2020-06-28,Travis,Texas,48453,8461,117 +2020-06-29,Travis,Texas,48453,8969,121 +2020-06-30,Travis,Texas,48453,9527,124 +2020-07-01,Travis,Texas,48453,10124,128 +2020-07-02,Travis,Texas,48453,10695,133 +2020-07-03,Travis,Texas,48453,11009,134 +2020-07-04,Travis,Texas,48453,11131,136 +2020-07-05,Travis,Texas,48453,11679,137 +2020-07-06,Travis,Texas,48453,11926,144 +2020-07-07,Travis,Texas,48453,12408,151 +2020-07-08,Travis,Texas,48453,13161,159 +2020-07-09,Travis,Texas,48453,13864,159 +2020-04-04,Trinity,Texas,48455,2,0 +2020-04-05,Trinity,Texas,48455,2,0 +2020-04-06,Trinity,Texas,48455,2,0 +2020-04-07,Trinity,Texas,48455,2,0 +2020-04-08,Trinity,Texas,48455,2,0 +2020-04-09,Trinity,Texas,48455,3,0 +2020-04-10,Trinity,Texas,48455,3,0 +2020-04-11,Trinity,Texas,48455,3,0 +2020-04-12,Trinity,Texas,48455,3,0 +2020-04-13,Trinity,Texas,48455,3,0 +2020-04-14,Trinity,Texas,48455,4,0 +2020-04-15,Trinity,Texas,48455,4,0 +2020-04-16,Trinity,Texas,48455,7,0 +2020-04-17,Trinity,Texas,48455,7,0 +2020-04-18,Trinity,Texas,48455,7,0 +2020-04-19,Trinity,Texas,48455,7,0 +2020-04-20,Trinity,Texas,48455,7,0 +2020-04-21,Trinity,Texas,48455,7,0 +2020-04-22,Trinity,Texas,48455,7,0 +2020-04-23,Trinity,Texas,48455,7,0 +2020-04-24,Trinity,Texas,48455,8,0 +2020-04-25,Trinity,Texas,48455,8,0 +2020-04-26,Trinity,Texas,48455,8,0 +2020-04-27,Trinity,Texas,48455,8,0 +2020-04-28,Trinity,Texas,48455,8,0 +2020-04-29,Trinity,Texas,48455,8,0 +2020-04-30,Trinity,Texas,48455,8,0 +2020-05-01,Trinity,Texas,48455,8,0 +2020-05-02,Trinity,Texas,48455,8,0 +2020-05-03,Trinity,Texas,48455,8,0 +2020-05-04,Trinity,Texas,48455,8,0 +2020-05-05,Trinity,Texas,48455,9,0 +2020-05-06,Trinity,Texas,48455,10,0 +2020-05-07,Trinity,Texas,48455,10,0 +2020-05-08,Trinity,Texas,48455,11,0 +2020-05-09,Trinity,Texas,48455,11,0 +2020-05-10,Trinity,Texas,48455,11,0 +2020-05-11,Trinity,Texas,48455,11,0 +2020-05-12,Trinity,Texas,48455,11,0 +2020-05-13,Trinity,Texas,48455,11,0 +2020-05-14,Trinity,Texas,48455,11,0 +2020-05-15,Trinity,Texas,48455,11,0 +2020-05-16,Trinity,Texas,48455,11,0 +2020-05-17,Trinity,Texas,48455,11,0 +2020-05-18,Trinity,Texas,48455,11,0 +2020-05-19,Trinity,Texas,48455,11,0 +2020-05-20,Trinity,Texas,48455,11,0 +2020-05-21,Trinity,Texas,48455,11,0 +2020-05-22,Trinity,Texas,48455,11,0 +2020-05-23,Trinity,Texas,48455,13,0 +2020-05-24,Trinity,Texas,48455,13,0 +2020-05-25,Trinity,Texas,48455,13,0 +2020-05-26,Trinity,Texas,48455,13,0 +2020-05-27,Trinity,Texas,48455,13,0 +2020-05-28,Trinity,Texas,48455,13,0 +2020-05-29,Trinity,Texas,48455,13,0 +2020-05-30,Trinity,Texas,48455,14,0 +2020-05-31,Trinity,Texas,48455,15,0 +2020-06-01,Trinity,Texas,48455,15,0 +2020-06-02,Trinity,Texas,48455,15,0 +2020-06-03,Trinity,Texas,48455,15,0 +2020-06-04,Trinity,Texas,48455,20,0 +2020-06-05,Trinity,Texas,48455,20,0 +2020-06-06,Trinity,Texas,48455,20,0 +2020-06-07,Trinity,Texas,48455,20,0 +2020-06-08,Trinity,Texas,48455,20,0 +2020-06-09,Trinity,Texas,48455,22,0 +2020-06-10,Trinity,Texas,48455,22,0 +2020-06-11,Trinity,Texas,48455,22,0 +2020-06-12,Trinity,Texas,48455,22,0 +2020-06-13,Trinity,Texas,48455,22,0 +2020-06-14,Trinity,Texas,48455,22,0 +2020-06-15,Trinity,Texas,48455,22,0 +2020-06-16,Trinity,Texas,48455,17,0 +2020-06-17,Trinity,Texas,48455,20,0 +2020-06-18,Trinity,Texas,48455,21,0 +2020-06-19,Trinity,Texas,48455,21,0 +2020-06-20,Trinity,Texas,48455,22,0 +2020-06-21,Trinity,Texas,48455,23,0 +2020-06-22,Trinity,Texas,48455,23,0 +2020-06-23,Trinity,Texas,48455,24,0 +2020-06-24,Trinity,Texas,48455,26,0 +2020-06-25,Trinity,Texas,48455,28,0 +2020-06-26,Trinity,Texas,48455,28,0 +2020-06-27,Trinity,Texas,48455,32,0 +2020-06-28,Trinity,Texas,48455,32,0 +2020-06-29,Trinity,Texas,48455,32,0 +2020-06-30,Trinity,Texas,48455,32,0 +2020-07-01,Trinity,Texas,48455,36,0 +2020-07-02,Trinity,Texas,48455,39,0 +2020-07-03,Trinity,Texas,48455,42,0 +2020-07-04,Trinity,Texas,48455,44,0 +2020-07-05,Trinity,Texas,48455,48,0 +2020-07-06,Trinity,Texas,48455,48,0 +2020-07-07,Trinity,Texas,48455,48,0 +2020-07-08,Trinity,Texas,48455,48,0 +2020-07-09,Trinity,Texas,48455,52,0 +2020-04-04,Tyler,Texas,48457,1,0 +2020-04-05,Tyler,Texas,48457,1,0 +2020-04-06,Tyler,Texas,48457,2,0 +2020-04-07,Tyler,Texas,48457,2,0 +2020-04-08,Tyler,Texas,48457,2,0 +2020-04-09,Tyler,Texas,48457,4,0 +2020-04-10,Tyler,Texas,48457,4,0 +2020-04-11,Tyler,Texas,48457,4,0 +2020-04-12,Tyler,Texas,48457,4,0 +2020-04-13,Tyler,Texas,48457,4,0 +2020-04-14,Tyler,Texas,48457,4,0 +2020-04-15,Tyler,Texas,48457,4,0 +2020-04-16,Tyler,Texas,48457,4,0 +2020-04-17,Tyler,Texas,48457,4,0 +2020-04-18,Tyler,Texas,48457,5,0 +2020-04-19,Tyler,Texas,48457,5,0 +2020-04-20,Tyler,Texas,48457,6,0 +2020-04-21,Tyler,Texas,48457,6,0 +2020-04-22,Tyler,Texas,48457,6,0 +2020-04-23,Tyler,Texas,48457,6,0 +2020-04-24,Tyler,Texas,48457,6,0 +2020-04-25,Tyler,Texas,48457,6,0 +2020-04-26,Tyler,Texas,48457,6,0 +2020-04-27,Tyler,Texas,48457,6,0 +2020-04-28,Tyler,Texas,48457,6,0 +2020-04-29,Tyler,Texas,48457,6,0 +2020-04-30,Tyler,Texas,48457,6,0 +2020-05-01,Tyler,Texas,48457,6,0 +2020-05-02,Tyler,Texas,48457,6,0 +2020-05-03,Tyler,Texas,48457,6,0 +2020-05-04,Tyler,Texas,48457,6,0 +2020-05-05,Tyler,Texas,48457,7,0 +2020-05-06,Tyler,Texas,48457,7,0 +2020-05-07,Tyler,Texas,48457,7,0 +2020-05-08,Tyler,Texas,48457,7,0 +2020-05-09,Tyler,Texas,48457,7,0 +2020-05-10,Tyler,Texas,48457,7,0 +2020-05-11,Tyler,Texas,48457,7,0 +2020-05-12,Tyler,Texas,48457,8,0 +2020-05-13,Tyler,Texas,48457,8,0 +2020-05-14,Tyler,Texas,48457,8,0 +2020-05-15,Tyler,Texas,48457,8,0 +2020-05-16,Tyler,Texas,48457,9,0 +2020-05-17,Tyler,Texas,48457,9,0 +2020-05-18,Tyler,Texas,48457,9,0 +2020-05-19,Tyler,Texas,48457,10,0 +2020-05-20,Tyler,Texas,48457,12,0 +2020-05-21,Tyler,Texas,48457,12,0 +2020-05-22,Tyler,Texas,48457,12,0 +2020-05-23,Tyler,Texas,48457,12,0 +2020-05-24,Tyler,Texas,48457,12,0 +2020-05-25,Tyler,Texas,48457,12,0 +2020-05-26,Tyler,Texas,48457,12,0 +2020-05-27,Tyler,Texas,48457,12,0 +2020-05-28,Tyler,Texas,48457,12,0 +2020-05-29,Tyler,Texas,48457,12,0 +2020-05-30,Tyler,Texas,48457,12,0 +2020-05-31,Tyler,Texas,48457,12,0 +2020-06-01,Tyler,Texas,48457,12,0 +2020-06-02,Tyler,Texas,48457,12,0 +2020-06-03,Tyler,Texas,48457,12,0 +2020-06-04,Tyler,Texas,48457,14,0 +2020-06-05,Tyler,Texas,48457,14,0 +2020-06-06,Tyler,Texas,48457,15,0 +2020-06-07,Tyler,Texas,48457,16,0 +2020-06-08,Tyler,Texas,48457,16,0 +2020-06-09,Tyler,Texas,48457,16,0 +2020-06-10,Tyler,Texas,48457,16,0 +2020-06-11,Tyler,Texas,48457,16,0 +2020-06-12,Tyler,Texas,48457,16,0 +2020-06-13,Tyler,Texas,48457,16,0 +2020-06-14,Tyler,Texas,48457,16,0 +2020-06-15,Tyler,Texas,48457,16,0 +2020-06-16,Tyler,Texas,48457,14,0 +2020-06-17,Tyler,Texas,48457,14,0 +2020-06-18,Tyler,Texas,48457,14,0 +2020-06-19,Tyler,Texas,48457,14,0 +2020-06-20,Tyler,Texas,48457,18,0 +2020-06-21,Tyler,Texas,48457,18,0 +2020-06-22,Tyler,Texas,48457,18,0 +2020-06-23,Tyler,Texas,48457,20,0 +2020-06-24,Tyler,Texas,48457,21,0 +2020-06-25,Tyler,Texas,48457,21,0 +2020-06-26,Tyler,Texas,48457,21,0 +2020-06-27,Tyler,Texas,48457,21,0 +2020-06-28,Tyler,Texas,48457,25,0 +2020-06-29,Tyler,Texas,48457,25,0 +2020-06-30,Tyler,Texas,48457,25,0 +2020-07-01,Tyler,Texas,48457,25,0 +2020-07-02,Tyler,Texas,48457,25,0 +2020-07-03,Tyler,Texas,48457,27,0 +2020-07-04,Tyler,Texas,48457,27,0 +2020-07-05,Tyler,Texas,48457,27,0 +2020-07-06,Tyler,Texas,48457,27,0 +2020-07-07,Tyler,Texas,48457,30,0 +2020-07-08,Tyler,Texas,48457,30,0 +2020-07-09,Tyler,Texas,48457,30,0 +2020-03-20,Upshur,Texas,48459,1,0 +2020-03-21,Upshur,Texas,48459,1,0 +2020-03-22,Upshur,Texas,48459,1,0 +2020-03-23,Upshur,Texas,48459,1,0 +2020-03-24,Upshur,Texas,48459,1,0 +2020-03-25,Upshur,Texas,48459,1,0 +2020-03-26,Upshur,Texas,48459,1,0 +2020-03-27,Upshur,Texas,48459,1,0 +2020-03-28,Upshur,Texas,48459,1,0 +2020-03-29,Upshur,Texas,48459,1,0 +2020-03-30,Upshur,Texas,48459,2,0 +2020-03-31,Upshur,Texas,48459,2,0 +2020-04-01,Upshur,Texas,48459,2,0 +2020-04-02,Upshur,Texas,48459,3,0 +2020-04-03,Upshur,Texas,48459,3,0 +2020-04-04,Upshur,Texas,48459,3,0 +2020-04-05,Upshur,Texas,48459,3,0 +2020-04-06,Upshur,Texas,48459,3,0 +2020-04-07,Upshur,Texas,48459,5,0 +2020-04-08,Upshur,Texas,48459,5,0 +2020-04-09,Upshur,Texas,48459,6,0 +2020-04-10,Upshur,Texas,48459,6,0 +2020-04-11,Upshur,Texas,48459,6,0 +2020-04-12,Upshur,Texas,48459,8,0 +2020-04-13,Upshur,Texas,48459,8,0 +2020-04-14,Upshur,Texas,48459,9,0 +2020-04-15,Upshur,Texas,48459,9,0 +2020-04-16,Upshur,Texas,48459,9,0 +2020-04-17,Upshur,Texas,48459,9,0 +2020-04-18,Upshur,Texas,48459,9,0 +2020-04-19,Upshur,Texas,48459,9,0 +2020-04-20,Upshur,Texas,48459,9,0 +2020-04-21,Upshur,Texas,48459,9,0 +2020-04-22,Upshur,Texas,48459,12,0 +2020-04-23,Upshur,Texas,48459,12,0 +2020-04-24,Upshur,Texas,48459,13,0 +2020-04-25,Upshur,Texas,48459,13,0 +2020-04-26,Upshur,Texas,48459,13,0 +2020-04-27,Upshur,Texas,48459,13,0 +2020-04-28,Upshur,Texas,48459,13,0 +2020-04-29,Upshur,Texas,48459,13,0 +2020-04-30,Upshur,Texas,48459,14,0 +2020-05-01,Upshur,Texas,48459,15,0 +2020-05-02,Upshur,Texas,48459,15,0 +2020-05-03,Upshur,Texas,48459,15,0 +2020-05-04,Upshur,Texas,48459,15,0 +2020-05-05,Upshur,Texas,48459,15,0 +2020-05-06,Upshur,Texas,48459,16,0 +2020-05-07,Upshur,Texas,48459,16,0 +2020-05-08,Upshur,Texas,48459,17,0 +2020-05-09,Upshur,Texas,48459,17,0 +2020-05-10,Upshur,Texas,48459,17,0 +2020-05-11,Upshur,Texas,48459,17,0 +2020-05-12,Upshur,Texas,48459,17,0 +2020-05-13,Upshur,Texas,48459,17,0 +2020-05-14,Upshur,Texas,48459,17,0 +2020-05-15,Upshur,Texas,48459,18,0 +2020-05-16,Upshur,Texas,48459,18,0 +2020-05-17,Upshur,Texas,48459,18,0 +2020-05-18,Upshur,Texas,48459,18,0 +2020-05-19,Upshur,Texas,48459,18,0 +2020-05-20,Upshur,Texas,48459,18,0 +2020-05-21,Upshur,Texas,48459,18,0 +2020-05-22,Upshur,Texas,48459,18,0 +2020-05-23,Upshur,Texas,48459,18,0 +2020-05-24,Upshur,Texas,48459,18,0 +2020-05-25,Upshur,Texas,48459,18,0 +2020-05-26,Upshur,Texas,48459,19,0 +2020-05-27,Upshur,Texas,48459,19,0 +2020-05-28,Upshur,Texas,48459,20,0 +2020-05-29,Upshur,Texas,48459,21,0 +2020-05-30,Upshur,Texas,48459,26,0 +2020-05-31,Upshur,Texas,48459,26,0 +2020-06-01,Upshur,Texas,48459,26,0 +2020-06-02,Upshur,Texas,48459,27,0 +2020-06-03,Upshur,Texas,48459,28,0 +2020-06-04,Upshur,Texas,48459,28,0 +2020-06-05,Upshur,Texas,48459,30,0 +2020-06-06,Upshur,Texas,48459,31,0 +2020-06-07,Upshur,Texas,48459,31,0 +2020-06-08,Upshur,Texas,48459,31,0 +2020-06-09,Upshur,Texas,48459,35,0 +2020-06-10,Upshur,Texas,48459,35,0 +2020-06-11,Upshur,Texas,48459,35,0 +2020-06-12,Upshur,Texas,48459,37,0 +2020-06-13,Upshur,Texas,48459,37,0 +2020-06-14,Upshur,Texas,48459,37,0 +2020-06-15,Upshur,Texas,48459,38,0 +2020-06-16,Upshur,Texas,48459,41,0 +2020-06-17,Upshur,Texas,48459,42,0 +2020-06-18,Upshur,Texas,48459,41,0 +2020-06-19,Upshur,Texas,48459,41,0 +2020-06-20,Upshur,Texas,48459,41,0 +2020-06-21,Upshur,Texas,48459,43,0 +2020-06-22,Upshur,Texas,48459,43,0 +2020-06-23,Upshur,Texas,48459,44,0 +2020-06-24,Upshur,Texas,48459,46,0 +2020-06-25,Upshur,Texas,48459,46,0 +2020-06-26,Upshur,Texas,48459,46,0 +2020-06-27,Upshur,Texas,48459,46,0 +2020-06-28,Upshur,Texas,48459,46,0 +2020-06-29,Upshur,Texas,48459,46,0 +2020-06-30,Upshur,Texas,48459,53,0 +2020-07-01,Upshur,Texas,48459,58,0 +2020-07-02,Upshur,Texas,48459,62,0 +2020-07-03,Upshur,Texas,48459,65,0 +2020-07-04,Upshur,Texas,48459,66,0 +2020-07-05,Upshur,Texas,48459,70,0 +2020-07-06,Upshur,Texas,48459,71,0 +2020-07-07,Upshur,Texas,48459,76,0 +2020-07-08,Upshur,Texas,48459,78,0 +2020-07-09,Upshur,Texas,48459,82,0 +2020-06-19,Upton,Texas,48461,1,0 +2020-06-20,Upton,Texas,48461,1,0 +2020-06-21,Upton,Texas,48461,1,0 +2020-06-22,Upton,Texas,48461,1,0 +2020-06-23,Upton,Texas,48461,2,0 +2020-06-24,Upton,Texas,48461,2,0 +2020-06-25,Upton,Texas,48461,2,0 +2020-06-26,Upton,Texas,48461,2,0 +2020-06-27,Upton,Texas,48461,2,0 +2020-06-28,Upton,Texas,48461,2,0 +2020-06-29,Upton,Texas,48461,2,0 +2020-06-30,Upton,Texas,48461,3,0 +2020-07-01,Upton,Texas,48461,3,0 +2020-07-02,Upton,Texas,48461,4,0 +2020-07-03,Upton,Texas,48461,6,0 +2020-07-04,Upton,Texas,48461,6,0 +2020-07-05,Upton,Texas,48461,6,0 +2020-07-06,Upton,Texas,48461,6,0 +2020-07-07,Upton,Texas,48461,7,0 +2020-07-08,Upton,Texas,48461,7,0 +2020-07-09,Upton,Texas,48461,10,0 +2020-03-27,Uvalde,Texas,48463,1,0 +2020-03-28,Uvalde,Texas,48463,1,0 +2020-03-29,Uvalde,Texas,48463,2,0 +2020-03-30,Uvalde,Texas,48463,2,0 +2020-03-31,Uvalde,Texas,48463,2,0 +2020-04-01,Uvalde,Texas,48463,4,0 +2020-04-02,Uvalde,Texas,48463,4,0 +2020-04-03,Uvalde,Texas,48463,4,0 +2020-04-04,Uvalde,Texas,48463,4,0 +2020-04-05,Uvalde,Texas,48463,4,0 +2020-04-06,Uvalde,Texas,48463,4,0 +2020-04-07,Uvalde,Texas,48463,5,0 +2020-04-08,Uvalde,Texas,48463,5,0 +2020-04-09,Uvalde,Texas,48463,6,0 +2020-04-10,Uvalde,Texas,48463,7,0 +2020-04-11,Uvalde,Texas,48463,7,0 +2020-04-12,Uvalde,Texas,48463,7,0 +2020-04-13,Uvalde,Texas,48463,7,0 +2020-04-14,Uvalde,Texas,48463,7,0 +2020-04-15,Uvalde,Texas,48463,7,0 +2020-04-16,Uvalde,Texas,48463,7,0 +2020-04-17,Uvalde,Texas,48463,7,0 +2020-04-18,Uvalde,Texas,48463,7,0 +2020-04-19,Uvalde,Texas,48463,7,0 +2020-04-20,Uvalde,Texas,48463,7,0 +2020-04-21,Uvalde,Texas,48463,7,0 +2020-04-22,Uvalde,Texas,48463,7,0 +2020-04-23,Uvalde,Texas,48463,7,0 +2020-04-24,Uvalde,Texas,48463,7,0 +2020-04-25,Uvalde,Texas,48463,7,0 +2020-04-26,Uvalde,Texas,48463,7,0 +2020-04-27,Uvalde,Texas,48463,7,0 +2020-04-28,Uvalde,Texas,48463,7,0 +2020-04-29,Uvalde,Texas,48463,7,0 +2020-04-30,Uvalde,Texas,48463,7,0 +2020-05-01,Uvalde,Texas,48463,7,0 +2020-05-02,Uvalde,Texas,48463,7,0 +2020-05-03,Uvalde,Texas,48463,7,0 +2020-05-04,Uvalde,Texas,48463,7,0 +2020-05-05,Uvalde,Texas,48463,7,0 +2020-05-06,Uvalde,Texas,48463,7,0 +2020-05-07,Uvalde,Texas,48463,7,0 +2020-05-08,Uvalde,Texas,48463,7,0 +2020-05-09,Uvalde,Texas,48463,6,0 +2020-05-10,Uvalde,Texas,48463,6,0 +2020-05-11,Uvalde,Texas,48463,6,0 +2020-05-12,Uvalde,Texas,48463,6,0 +2020-05-13,Uvalde,Texas,48463,6,0 +2020-05-14,Uvalde,Texas,48463,6,0 +2020-05-15,Uvalde,Texas,48463,6,0 +2020-05-16,Uvalde,Texas,48463,6,0 +2020-05-17,Uvalde,Texas,48463,6,0 +2020-05-18,Uvalde,Texas,48463,6,0 +2020-05-19,Uvalde,Texas,48463,6,0 +2020-05-20,Uvalde,Texas,48463,6,0 +2020-05-21,Uvalde,Texas,48463,6,0 +2020-05-22,Uvalde,Texas,48463,6,0 +2020-05-23,Uvalde,Texas,48463,6,0 +2020-05-24,Uvalde,Texas,48463,6,0 +2020-05-25,Uvalde,Texas,48463,6,0 +2020-05-26,Uvalde,Texas,48463,6,0 +2020-05-27,Uvalde,Texas,48463,6,0 +2020-05-28,Uvalde,Texas,48463,6,0 +2020-05-29,Uvalde,Texas,48463,7,0 +2020-05-30,Uvalde,Texas,48463,11,0 +2020-05-31,Uvalde,Texas,48463,12,0 +2020-06-01,Uvalde,Texas,48463,12,0 +2020-06-02,Uvalde,Texas,48463,14,0 +2020-06-03,Uvalde,Texas,48463,16,0 +2020-06-04,Uvalde,Texas,48463,18,0 +2020-06-05,Uvalde,Texas,48463,17,0 +2020-06-06,Uvalde,Texas,48463,17,0 +2020-06-07,Uvalde,Texas,48463,17,0 +2020-06-08,Uvalde,Texas,48463,17,0 +2020-06-09,Uvalde,Texas,48463,17,0 +2020-06-10,Uvalde,Texas,48463,21,0 +2020-06-11,Uvalde,Texas,48463,22,0 +2020-06-12,Uvalde,Texas,48463,24,0 +2020-06-13,Uvalde,Texas,48463,24,0 +2020-06-14,Uvalde,Texas,48463,25,0 +2020-06-15,Uvalde,Texas,48463,26,0 +2020-06-16,Uvalde,Texas,48463,26,0 +2020-06-17,Uvalde,Texas,48463,29,0 +2020-06-18,Uvalde,Texas,48463,30,0 +2020-06-19,Uvalde,Texas,48463,31,0 +2020-06-20,Uvalde,Texas,48463,36,0 +2020-06-21,Uvalde,Texas,48463,37,0 +2020-06-22,Uvalde,Texas,48463,38,0 +2020-06-23,Uvalde,Texas,48463,41,0 +2020-06-24,Uvalde,Texas,48463,42,0 +2020-06-25,Uvalde,Texas,48463,48,1 +2020-06-26,Uvalde,Texas,48463,58,1 +2020-06-27,Uvalde,Texas,48463,62,1 +2020-06-28,Uvalde,Texas,48463,70,1 +2020-06-29,Uvalde,Texas,48463,73,1 +2020-06-30,Uvalde,Texas,48463,80,1 +2020-07-01,Uvalde,Texas,48463,85,1 +2020-07-02,Uvalde,Texas,48463,97,1 +2020-07-03,Uvalde,Texas,48463,97,1 +2020-07-04,Uvalde,Texas,48463,137,1 +2020-07-05,Uvalde,Texas,48463,150,1 +2020-07-06,Uvalde,Texas,48463,161,1 +2020-07-07,Uvalde,Texas,48463,172,1 +2020-07-08,Uvalde,Texas,48463,179,1 +2020-07-09,Uvalde,Texas,48463,190,1 +2020-03-26,Val Verde,Texas,48465,1,0 +2020-03-27,Val Verde,Texas,48465,2,0 +2020-03-28,Val Verde,Texas,48465,4,0 +2020-03-29,Val Verde,Texas,48465,5,0 +2020-03-30,Val Verde,Texas,48465,5,0 +2020-03-31,Val Verde,Texas,48465,5,0 +2020-04-01,Val Verde,Texas,48465,5,0 +2020-04-02,Val Verde,Texas,48465,5,0 +2020-04-03,Val Verde,Texas,48465,5,0 +2020-04-04,Val Verde,Texas,48465,5,0 +2020-04-05,Val Verde,Texas,48465,5,0 +2020-04-06,Val Verde,Texas,48465,11,0 +2020-04-07,Val Verde,Texas,48465,11,0 +2020-04-08,Val Verde,Texas,48465,11,0 +2020-04-09,Val Verde,Texas,48465,12,0 +2020-04-10,Val Verde,Texas,48465,12,0 +2020-04-11,Val Verde,Texas,48465,12,0 +2020-04-12,Val Verde,Texas,48465,12,0 +2020-04-13,Val Verde,Texas,48465,12,0 +2020-04-14,Val Verde,Texas,48465,12,0 +2020-04-15,Val Verde,Texas,48465,12,0 +2020-04-16,Val Verde,Texas,48465,12,0 +2020-04-17,Val Verde,Texas,48465,12,0 +2020-04-18,Val Verde,Texas,48465,12,0 +2020-04-19,Val Verde,Texas,48465,12,0 +2020-04-20,Val Verde,Texas,48465,12,0 +2020-04-21,Val Verde,Texas,48465,12,0 +2020-04-22,Val Verde,Texas,48465,12,0 +2020-04-23,Val Verde,Texas,48465,12,0 +2020-04-24,Val Verde,Texas,48465,12,0 +2020-04-25,Val Verde,Texas,48465,12,0 +2020-04-26,Val Verde,Texas,48465,12,0 +2020-04-27,Val Verde,Texas,48465,12,0 +2020-04-28,Val Verde,Texas,48465,12,0 +2020-04-29,Val Verde,Texas,48465,12,0 +2020-04-30,Val Verde,Texas,48465,12,0 +2020-05-01,Val Verde,Texas,48465,12,0 +2020-05-02,Val Verde,Texas,48465,13,0 +2020-05-03,Val Verde,Texas,48465,13,0 +2020-05-04,Val Verde,Texas,48465,13,0 +2020-05-05,Val Verde,Texas,48465,13,0 +2020-05-06,Val Verde,Texas,48465,13,0 +2020-05-07,Val Verde,Texas,48465,13,0 +2020-05-08,Val Verde,Texas,48465,13,0 +2020-05-09,Val Verde,Texas,48465,13,0 +2020-05-10,Val Verde,Texas,48465,13,0 +2020-05-11,Val Verde,Texas,48465,13,0 +2020-05-12,Val Verde,Texas,48465,13,0 +2020-05-13,Val Verde,Texas,48465,13,0 +2020-05-14,Val Verde,Texas,48465,13,0 +2020-05-15,Val Verde,Texas,48465,13,0 +2020-05-16,Val Verde,Texas,48465,13,0 +2020-05-17,Val Verde,Texas,48465,13,0 +2020-05-18,Val Verde,Texas,48465,13,0 +2020-05-19,Val Verde,Texas,48465,13,0 +2020-05-20,Val Verde,Texas,48465,13,0 +2020-05-21,Val Verde,Texas,48465,13,0 +2020-05-22,Val Verde,Texas,48465,13,0 +2020-05-23,Val Verde,Texas,48465,13,0 +2020-05-24,Val Verde,Texas,48465,13,0 +2020-05-25,Val Verde,Texas,48465,13,0 +2020-05-26,Val Verde,Texas,48465,14,0 +2020-05-27,Val Verde,Texas,48465,14,0 +2020-05-28,Val Verde,Texas,48465,14,0 +2020-05-29,Val Verde,Texas,48465,18,0 +2020-05-30,Val Verde,Texas,48465,18,0 +2020-05-31,Val Verde,Texas,48465,18,0 +2020-06-01,Val Verde,Texas,48465,18,0 +2020-06-02,Val Verde,Texas,48465,21,0 +2020-06-03,Val Verde,Texas,48465,21,0 +2020-06-04,Val Verde,Texas,48465,21,0 +2020-06-05,Val Verde,Texas,48465,21,0 +2020-06-06,Val Verde,Texas,48465,21,0 +2020-06-07,Val Verde,Texas,48465,21,0 +2020-06-08,Val Verde,Texas,48465,21,0 +2020-06-09,Val Verde,Texas,48465,21,0 +2020-06-10,Val Verde,Texas,48465,21,0 +2020-06-11,Val Verde,Texas,48465,21,0 +2020-06-12,Val Verde,Texas,48465,21,0 +2020-06-13,Val Verde,Texas,48465,21,0 +2020-06-14,Val Verde,Texas,48465,21,0 +2020-06-15,Val Verde,Texas,48465,21,0 +2020-06-16,Val Verde,Texas,48465,21,0 +2020-06-17,Val Verde,Texas,48465,21,0 +2020-06-18,Val Verde,Texas,48465,39,0 +2020-06-19,Val Verde,Texas,48465,39,0 +2020-06-20,Val Verde,Texas,48465,59,0 +2020-06-21,Val Verde,Texas,48465,59,0 +2020-06-22,Val Verde,Texas,48465,59,0 +2020-06-23,Val Verde,Texas,48465,85,0 +2020-06-24,Val Verde,Texas,48465,85,0 +2020-06-25,Val Verde,Texas,48465,85,0 +2020-06-26,Val Verde,Texas,48465,108,0 +2020-06-27,Val Verde,Texas,48465,108,0 +2020-06-28,Val Verde,Texas,48465,108,0 +2020-06-29,Val Verde,Texas,48465,108,0 +2020-06-30,Val Verde,Texas,48465,108,0 +2020-07-01,Val Verde,Texas,48465,108,0 +2020-07-02,Val Verde,Texas,48465,108,0 +2020-07-03,Val Verde,Texas,48465,108,0 +2020-07-04,Val Verde,Texas,48465,285,0 +2020-07-05,Val Verde,Texas,48465,285,0 +2020-07-06,Val Verde,Texas,48465,285,0 +2020-07-07,Val Verde,Texas,48465,285,0 +2020-07-08,Val Verde,Texas,48465,387,1 +2020-07-09,Val Verde,Texas,48465,387,1 +2020-03-19,Van Zandt,Texas,48467,1,0 +2020-03-20,Van Zandt,Texas,48467,1,0 +2020-03-21,Van Zandt,Texas,48467,1,0 +2020-03-22,Van Zandt,Texas,48467,1,0 +2020-03-23,Van Zandt,Texas,48467,1,0 +2020-03-24,Van Zandt,Texas,48467,1,0 +2020-03-25,Van Zandt,Texas,48467,1,0 +2020-03-26,Van Zandt,Texas,48467,1,0 +2020-03-27,Van Zandt,Texas,48467,1,0 +2020-03-28,Van Zandt,Texas,48467,1,0 +2020-03-29,Van Zandt,Texas,48467,1,1 +2020-03-30,Van Zandt,Texas,48467,2,1 +2020-03-31,Van Zandt,Texas,48467,2,1 +2020-04-01,Van Zandt,Texas,48467,2,1 +2020-04-02,Van Zandt,Texas,48467,3,1 +2020-04-03,Van Zandt,Texas,48467,3,1 +2020-04-04,Van Zandt,Texas,48467,3,1 +2020-04-05,Van Zandt,Texas,48467,4,1 +2020-04-06,Van Zandt,Texas,48467,7,1 +2020-04-07,Van Zandt,Texas,48467,7,1 +2020-04-08,Van Zandt,Texas,48467,7,1 +2020-04-09,Van Zandt,Texas,48467,8,1 +2020-04-10,Van Zandt,Texas,48467,10,1 +2020-04-11,Van Zandt,Texas,48467,10,1 +2020-04-12,Van Zandt,Texas,48467,10,1 +2020-04-13,Van Zandt,Texas,48467,10,1 +2020-04-14,Van Zandt,Texas,48467,10,1 +2020-04-15,Van Zandt,Texas,48467,10,1 +2020-04-16,Van Zandt,Texas,48467,11,1 +2020-04-17,Van Zandt,Texas,48467,11,1 +2020-04-18,Van Zandt,Texas,48467,12,1 +2020-04-19,Van Zandt,Texas,48467,12,1 +2020-04-20,Van Zandt,Texas,48467,12,1 +2020-04-21,Van Zandt,Texas,48467,12,1 +2020-04-22,Van Zandt,Texas,48467,13,1 +2020-04-23,Van Zandt,Texas,48467,13,1 +2020-04-24,Van Zandt,Texas,48467,13,1 +2020-04-25,Van Zandt,Texas,48467,13,1 +2020-04-26,Van Zandt,Texas,48467,13,1 +2020-04-27,Van Zandt,Texas,48467,13,1 +2020-04-28,Van Zandt,Texas,48467,14,1 +2020-04-29,Van Zandt,Texas,48467,14,1 +2020-04-30,Van Zandt,Texas,48467,14,1 +2020-05-01,Van Zandt,Texas,48467,15,1 +2020-05-02,Van Zandt,Texas,48467,16,1 +2020-05-03,Van Zandt,Texas,48467,16,1 +2020-05-04,Van Zandt,Texas,48467,16,1 +2020-05-05,Van Zandt,Texas,48467,16,1 +2020-05-06,Van Zandt,Texas,48467,18,1 +2020-05-07,Van Zandt,Texas,48467,18,1 +2020-05-08,Van Zandt,Texas,48467,18,1 +2020-05-09,Van Zandt,Texas,48467,18,1 +2020-05-10,Van Zandt,Texas,48467,18,1 +2020-05-11,Van Zandt,Texas,48467,18,1 +2020-05-12,Van Zandt,Texas,48467,18,1 +2020-05-13,Van Zandt,Texas,48467,22,1 +2020-05-14,Van Zandt,Texas,48467,22,1 +2020-05-15,Van Zandt,Texas,48467,22,1 +2020-05-16,Van Zandt,Texas,48467,22,1 +2020-05-17,Van Zandt,Texas,48467,22,1 +2020-05-18,Van Zandt,Texas,48467,22,1 +2020-05-19,Van Zandt,Texas,48467,23,1 +2020-05-20,Van Zandt,Texas,48467,24,1 +2020-05-21,Van Zandt,Texas,48467,25,1 +2020-05-22,Van Zandt,Texas,48467,25,1 +2020-05-23,Van Zandt,Texas,48467,26,1 +2020-05-24,Van Zandt,Texas,48467,26,1 +2020-05-25,Van Zandt,Texas,48467,26,1 +2020-05-26,Van Zandt,Texas,48467,26,1 +2020-05-27,Van Zandt,Texas,48467,30,1 +2020-05-28,Van Zandt,Texas,48467,30,1 +2020-05-29,Van Zandt,Texas,48467,30,1 +2020-05-30,Van Zandt,Texas,48467,31,1 +2020-05-31,Van Zandt,Texas,48467,31,1 +2020-06-01,Van Zandt,Texas,48467,31,1 +2020-06-02,Van Zandt,Texas,48467,34,1 +2020-06-03,Van Zandt,Texas,48467,35,1 +2020-06-04,Van Zandt,Texas,48467,35,1 +2020-06-05,Van Zandt,Texas,48467,37,1 +2020-06-06,Van Zandt,Texas,48467,39,1 +2020-06-07,Van Zandt,Texas,48467,39,1 +2020-06-08,Van Zandt,Texas,48467,39,1 +2020-06-09,Van Zandt,Texas,48467,40,1 +2020-06-10,Van Zandt,Texas,48467,41,1 +2020-06-11,Van Zandt,Texas,48467,44,1 +2020-06-12,Van Zandt,Texas,48467,44,1 +2020-06-13,Van Zandt,Texas,48467,46,1 +2020-06-14,Van Zandt,Texas,48467,46,1 +2020-06-15,Van Zandt,Texas,48467,46,1 +2020-06-16,Van Zandt,Texas,48467,52,1 +2020-06-17,Van Zandt,Texas,48467,53,1 +2020-06-18,Van Zandt,Texas,48467,52,1 +2020-06-19,Van Zandt,Texas,48467,54,3 +2020-06-20,Van Zandt,Texas,48467,54,3 +2020-06-21,Van Zandt,Texas,48467,54,3 +2020-06-22,Van Zandt,Texas,48467,54,3 +2020-06-23,Van Zandt,Texas,48467,59,3 +2020-06-24,Van Zandt,Texas,48467,59,3 +2020-06-25,Van Zandt,Texas,48467,65,3 +2020-06-26,Van Zandt,Texas,48467,71,3 +2020-06-27,Van Zandt,Texas,48467,71,3 +2020-06-28,Van Zandt,Texas,48467,78,3 +2020-06-29,Van Zandt,Texas,48467,78,3 +2020-06-30,Van Zandt,Texas,48467,85,3 +2020-07-01,Van Zandt,Texas,48467,91,3 +2020-07-02,Van Zandt,Texas,48467,98,3 +2020-07-03,Van Zandt,Texas,48467,101,3 +2020-07-04,Van Zandt,Texas,48467,101,3 +2020-07-05,Van Zandt,Texas,48467,112,3 +2020-07-06,Van Zandt,Texas,48467,112,3 +2020-07-07,Van Zandt,Texas,48467,127,3 +2020-07-08,Van Zandt,Texas,48467,150,3 +2020-07-09,Van Zandt,Texas,48467,158,3 +2020-03-24,Victoria,Texas,48469,3,0 +2020-03-25,Victoria,Texas,48469,3,0 +2020-03-26,Victoria,Texas,48469,3,0 +2020-03-27,Victoria,Texas,48469,3,0 +2020-03-28,Victoria,Texas,48469,3,0 +2020-03-29,Victoria,Texas,48469,3,0 +2020-03-30,Victoria,Texas,48469,6,0 +2020-03-31,Victoria,Texas,48469,9,0 +2020-04-01,Victoria,Texas,48469,16,0 +2020-04-02,Victoria,Texas,48469,20,0 +2020-04-03,Victoria,Texas,48469,27,0 +2020-04-04,Victoria,Texas,48469,27,0 +2020-04-05,Victoria,Texas,48469,32,0 +2020-04-06,Victoria,Texas,48469,50,0 +2020-04-07,Victoria,Texas,48469,50,0 +2020-04-08,Victoria,Texas,48469,59,0 +2020-04-09,Victoria,Texas,48469,62,0 +2020-04-10,Victoria,Texas,48469,73,0 +2020-04-11,Victoria,Texas,48469,76,0 +2020-04-12,Victoria,Texas,48469,77,0 +2020-04-13,Victoria,Texas,48469,81,0 +2020-04-14,Victoria,Texas,48469,87,0 +2020-04-15,Victoria,Texas,48469,89,1 +2020-04-16,Victoria,Texas,48469,89,1 +2020-04-17,Victoria,Texas,48469,89,1 +2020-04-18,Victoria,Texas,48469,89,1 +2020-04-19,Victoria,Texas,48469,93,1 +2020-04-20,Victoria,Texas,48469,93,1 +2020-04-21,Victoria,Texas,48469,95,1 +2020-04-22,Victoria,Texas,48469,96,1 +2020-04-23,Victoria,Texas,48469,105,2 +2020-04-24,Victoria,Texas,48469,105,2 +2020-04-25,Victoria,Texas,48469,114,2 +2020-04-26,Victoria,Texas,48469,117,2 +2020-04-27,Victoria,Texas,48469,121,2 +2020-04-28,Victoria,Texas,48469,127,3 +2020-04-29,Victoria,Texas,48469,127,3 +2020-04-30,Victoria,Texas,48469,132,3 +2020-05-01,Victoria,Texas,48469,137,3 +2020-05-02,Victoria,Texas,48469,139,5 +2020-05-03,Victoria,Texas,48469,139,5 +2020-05-04,Victoria,Texas,48469,139,5 +2020-05-05,Victoria,Texas,48469,143,5 +2020-05-06,Victoria,Texas,48469,146,5 +2020-05-07,Victoria,Texas,48469,146,5 +2020-05-08,Victoria,Texas,48469,146,5 +2020-05-09,Victoria,Texas,48469,148,5 +2020-05-10,Victoria,Texas,48469,150,5 +2020-05-11,Victoria,Texas,48469,150,5 +2020-05-12,Victoria,Texas,48469,150,6 +2020-05-13,Victoria,Texas,48469,150,6 +2020-05-14,Victoria,Texas,48469,154,6 +2020-05-15,Victoria,Texas,48469,154,6 +2020-05-16,Victoria,Texas,48469,154,6 +2020-05-17,Victoria,Texas,48469,154,7 +2020-05-18,Victoria,Texas,48469,156,7 +2020-05-19,Victoria,Texas,48469,157,7 +2020-05-20,Victoria,Texas,48469,157,7 +2020-05-21,Victoria,Texas,48469,157,7 +2020-05-22,Victoria,Texas,48469,157,7 +2020-05-23,Victoria,Texas,48469,157,7 +2020-05-24,Victoria,Texas,48469,157,7 +2020-05-25,Victoria,Texas,48469,157,7 +2020-05-26,Victoria,Texas,48469,157,7 +2020-05-27,Victoria,Texas,48469,157,7 +2020-05-28,Victoria,Texas,48469,159,7 +2020-05-29,Victoria,Texas,48469,160,7 +2020-05-30,Victoria,Texas,48469,160,7 +2020-05-31,Victoria,Texas,48469,160,7 +2020-06-01,Victoria,Texas,48469,160,7 +2020-06-02,Victoria,Texas,48469,160,7 +2020-06-03,Victoria,Texas,48469,162,7 +2020-06-04,Victoria,Texas,48469,167,7 +2020-06-05,Victoria,Texas,48469,170,7 +2020-06-06,Victoria,Texas,48469,170,7 +2020-06-07,Victoria,Texas,48469,170,7 +2020-06-08,Victoria,Texas,48469,170,7 +2020-06-09,Victoria,Texas,48469,174,7 +2020-06-10,Victoria,Texas,48469,180,8 +2020-06-11,Victoria,Texas,48469,184,8 +2020-06-12,Victoria,Texas,48469,184,8 +2020-06-13,Victoria,Texas,48469,197,8 +2020-06-14,Victoria,Texas,48469,199,8 +2020-06-15,Victoria,Texas,48469,199,8 +2020-06-16,Victoria,Texas,48469,202,8 +2020-06-17,Victoria,Texas,48469,207,8 +2020-06-18,Victoria,Texas,48469,223,8 +2020-06-19,Victoria,Texas,48469,241,8 +2020-06-20,Victoria,Texas,48469,241,8 +2020-06-21,Victoria,Texas,48469,241,8 +2020-06-22,Victoria,Texas,48469,241,8 +2020-06-23,Victoria,Texas,48469,309,8 +2020-06-24,Victoria,Texas,48469,346,8 +2020-06-25,Victoria,Texas,48469,372,8 +2020-06-26,Victoria,Texas,48469,372,8 +2020-06-27,Victoria,Texas,48469,480,8 +2020-06-28,Victoria,Texas,48469,480,8 +2020-06-29,Victoria,Texas,48469,480,8 +2020-06-30,Victoria,Texas,48469,480,8 +2020-07-01,Victoria,Texas,48469,794,8 +2020-07-02,Victoria,Texas,48469,862,8 +2020-07-03,Victoria,Texas,48469,862,8 +2020-07-04,Victoria,Texas,48469,1063,8 +2020-07-05,Victoria,Texas,48469,1063,8 +2020-07-06,Victoria,Texas,48469,1242,9 +2020-07-07,Victoria,Texas,48469,1336,9 +2020-07-08,Victoria,Texas,48469,1336,9 +2020-07-09,Victoria,Texas,48469,1465,9 +2020-03-25,Walker,Texas,48471,1,0 +2020-03-26,Walker,Texas,48471,3,0 +2020-03-27,Walker,Texas,48471,2,0 +2020-03-28,Walker,Texas,48471,3,0 +2020-03-29,Walker,Texas,48471,3,0 +2020-03-30,Walker,Texas,48471,3,0 +2020-03-31,Walker,Texas,48471,3,0 +2020-04-01,Walker,Texas,48471,5,0 +2020-04-02,Walker,Texas,48471,7,0 +2020-04-03,Walker,Texas,48471,9,0 +2020-04-04,Walker,Texas,48471,9,0 +2020-04-05,Walker,Texas,48471,10,0 +2020-04-06,Walker,Texas,48471,15,0 +2020-04-07,Walker,Texas,48471,15,0 +2020-04-08,Walker,Texas,48471,15,0 +2020-04-09,Walker,Texas,48471,18,0 +2020-04-10,Walker,Texas,48471,18,0 +2020-04-11,Walker,Texas,48471,18,0 +2020-04-12,Walker,Texas,48471,18,0 +2020-04-13,Walker,Texas,48471,21,0 +2020-04-14,Walker,Texas,48471,38,0 +2020-04-15,Walker,Texas,48471,38,0 +2020-04-16,Walker,Texas,48471,58,0 +2020-04-17,Walker,Texas,48471,67,0 +2020-04-18,Walker,Texas,48471,68,0 +2020-04-19,Walker,Texas,48471,77,0 +2020-04-20,Walker,Texas,48471,73,0 +2020-04-21,Walker,Texas,48471,95,0 +2020-04-22,Walker,Texas,48471,95,1 +2020-04-23,Walker,Texas,48471,136,1 +2020-04-24,Walker,Texas,48471,151,2 +2020-04-25,Walker,Texas,48471,164,2 +2020-04-26,Walker,Texas,48471,164,2 +2020-04-27,Walker,Texas,48471,192,2 +2020-04-28,Walker,Texas,48471,200,2 +2020-04-29,Walker,Texas,48471,212,2 +2020-04-30,Walker,Texas,48471,245,2 +2020-05-01,Walker,Texas,48471,269,2 +2020-05-02,Walker,Texas,48471,269,2 +2020-05-03,Walker,Texas,48471,298,2 +2020-05-04,Walker,Texas,48471,298,2 +2020-05-05,Walker,Texas,48471,293,2 +2020-05-06,Walker,Texas,48471,303,2 +2020-05-07,Walker,Texas,48471,315,2 +2020-05-08,Walker,Texas,48471,332,2 +2020-05-09,Walker,Texas,48471,337,2 +2020-05-10,Walker,Texas,48471,340,2 +2020-05-11,Walker,Texas,48471,342,2 +2020-05-12,Walker,Texas,48471,342,2 +2020-05-13,Walker,Texas,48471,393,2 +2020-05-14,Walker,Texas,48471,363,19 +2020-05-15,Walker,Texas,48471,373,19 +2020-05-16,Walker,Texas,48471,405,19 +2020-05-17,Walker,Texas,48471,421,26 +2020-05-18,Walker,Texas,48471,423,26 +2020-05-19,Walker,Texas,48471,442,26 +2020-05-20,Walker,Texas,48471,552,27 +2020-05-21,Walker,Texas,48471,430,27 +2020-05-22,Walker,Texas,48471,430,27 +2020-05-23,Walker,Texas,48471,462,27 +2020-05-24,Walker,Texas,48471,474,27 +2020-05-25,Walker,Texas,48471,475,27 +2020-05-26,Walker,Texas,48471,475,27 +2020-05-27,Walker,Texas,48471,716,27 +2020-05-28,Walker,Texas,48471,869,27 +2020-05-29,Walker,Texas,48471,869,27 +2020-05-30,Walker,Texas,48471,945,27 +2020-05-31,Walker,Texas,48471,1455,27 +2020-06-01,Walker,Texas,48471,1456,27 +2020-06-02,Walker,Texas,48471,1574,27 +2020-06-03,Walker,Texas,48471,1730,27 +2020-06-04,Walker,Texas,48471,1801,27 +2020-06-05,Walker,Texas,48471,1843,27 +2020-06-06,Walker,Texas,48471,1850,27 +2020-06-07,Walker,Texas,48471,1851,27 +2020-06-08,Walker,Texas,48471,1851,27 +2020-06-09,Walker,Texas,48471,1868,27 +2020-06-10,Walker,Texas,48471,1842,27 +2020-06-11,Walker,Texas,48471,1866,27 +2020-06-12,Walker,Texas,48471,1868,27 +2020-06-13,Walker,Texas,48471,1870,27 +2020-06-14,Walker,Texas,48471,1871,27 +2020-06-15,Walker,Texas,48471,1878,27 +2020-06-16,Walker,Texas,48471,1873,27 +2020-06-17,Walker,Texas,48471,1879,27 +2020-06-18,Walker,Texas,48471,1885,28 +2020-06-19,Walker,Texas,48471,1890,28 +2020-06-20,Walker,Texas,48471,1905,28 +2020-06-21,Walker,Texas,48471,1912,28 +2020-06-22,Walker,Texas,48471,1912,28 +2020-06-23,Walker,Texas,48471,1928,28 +2020-06-24,Walker,Texas,48471,1950,28 +2020-06-25,Walker,Texas,48471,1960,28 +2020-06-26,Walker,Texas,48471,1950,28 +2020-06-27,Walker,Texas,48471,1961,28 +2020-06-28,Walker,Texas,48471,1967,28 +2020-06-29,Walker,Texas,48471,1981,28 +2020-06-30,Walker,Texas,48471,1991,28 +2020-07-01,Walker,Texas,48471,2028,28 +2020-07-02,Walker,Texas,48471,2048,28 +2020-07-03,Walker,Texas,48471,2080,28 +2020-07-04,Walker,Texas,48471,2080,28 +2020-07-05,Walker,Texas,48471,2081,28 +2020-07-06,Walker,Texas,48471,2095,28 +2020-07-07,Walker,Texas,48471,2099,28 +2020-07-08,Walker,Texas,48471,2149,28 +2020-07-09,Walker,Texas,48471,2172,28 +2020-03-29,Waller,Texas,48473,3,0 +2020-03-30,Waller,Texas,48473,3,0 +2020-03-31,Waller,Texas,48473,3,0 +2020-04-01,Waller,Texas,48473,3,0 +2020-04-02,Waller,Texas,48473,7,0 +2020-04-03,Waller,Texas,48473,7,0 +2020-04-04,Waller,Texas,48473,7,0 +2020-04-05,Waller,Texas,48473,9,0 +2020-04-06,Waller,Texas,48473,9,0 +2020-04-07,Waller,Texas,48473,11,0 +2020-04-08,Waller,Texas,48473,11,0 +2020-04-09,Waller,Texas,48473,11,0 +2020-04-10,Waller,Texas,48473,13,0 +2020-04-11,Waller,Texas,48473,14,0 +2020-04-12,Waller,Texas,48473,15,0 +2020-04-13,Waller,Texas,48473,16,0 +2020-04-14,Waller,Texas,48473,18,0 +2020-04-15,Waller,Texas,48473,20,0 +2020-04-16,Waller,Texas,48473,22,0 +2020-04-17,Waller,Texas,48473,23,0 +2020-04-18,Waller,Texas,48473,22,0 +2020-04-19,Waller,Texas,48473,24,0 +2020-04-20,Waller,Texas,48473,24,0 +2020-04-21,Waller,Texas,48473,24,0 +2020-04-22,Waller,Texas,48473,27,0 +2020-04-23,Waller,Texas,48473,25,0 +2020-04-24,Waller,Texas,48473,25,0 +2020-04-25,Waller,Texas,48473,28,0 +2020-04-26,Waller,Texas,48473,29,0 +2020-04-27,Waller,Texas,48473,29,0 +2020-04-28,Waller,Texas,48473,31,0 +2020-04-29,Waller,Texas,48473,30,0 +2020-04-30,Waller,Texas,48473,32,0 +2020-05-01,Waller,Texas,48473,33,0 +2020-05-02,Waller,Texas,48473,33,0 +2020-05-03,Waller,Texas,48473,33,0 +2020-05-04,Waller,Texas,48473,33,0 +2020-05-05,Waller,Texas,48473,33,0 +2020-05-06,Waller,Texas,48473,36,0 +2020-05-07,Waller,Texas,48473,37,0 +2020-05-08,Waller,Texas,48473,36,0 +2020-05-09,Waller,Texas,48473,38,0 +2020-05-10,Waller,Texas,48473,38,0 +2020-05-11,Waller,Texas,48473,38,0 +2020-05-12,Waller,Texas,48473,38,0 +2020-05-13,Waller,Texas,48473,38,0 +2020-05-14,Waller,Texas,48473,38,0 +2020-05-15,Waller,Texas,48473,38,0 +2020-05-16,Waller,Texas,48473,39,0 +2020-05-17,Waller,Texas,48473,40,0 +2020-05-18,Waller,Texas,48473,40,0 +2020-05-19,Waller,Texas,48473,43,0 +2020-05-20,Waller,Texas,48473,45,0 +2020-05-21,Waller,Texas,48473,45,0 +2020-05-22,Waller,Texas,48473,45,0 +2020-05-23,Waller,Texas,48473,47,0 +2020-05-24,Waller,Texas,48473,49,0 +2020-05-25,Waller,Texas,48473,53,0 +2020-05-26,Waller,Texas,48473,53,0 +2020-05-27,Waller,Texas,48473,56,0 +2020-05-28,Waller,Texas,48473,55,0 +2020-05-29,Waller,Texas,48473,56,0 +2020-05-30,Waller,Texas,48473,57,0 +2020-05-31,Waller,Texas,48473,57,0 +2020-06-01,Waller,Texas,48473,62,0 +2020-06-02,Waller,Texas,48473,63,0 +2020-06-03,Waller,Texas,48473,63,0 +2020-06-04,Waller,Texas,48473,64,0 +2020-06-05,Waller,Texas,48473,65,0 +2020-06-06,Waller,Texas,48473,68,0 +2020-06-07,Waller,Texas,48473,72,0 +2020-06-08,Waller,Texas,48473,72,0 +2020-06-09,Waller,Texas,48473,77,0 +2020-06-10,Waller,Texas,48473,85,0 +2020-06-11,Waller,Texas,48473,86,0 +2020-06-12,Waller,Texas,48473,90,0 +2020-06-13,Waller,Texas,48473,85,0 +2020-06-14,Waller,Texas,48473,88,0 +2020-06-15,Waller,Texas,48473,90,0 +2020-06-16,Waller,Texas,48473,92,0 +2020-06-17,Waller,Texas,48473,99,0 +2020-06-18,Waller,Texas,48473,100,0 +2020-06-19,Waller,Texas,48473,104,0 +2020-06-20,Waller,Texas,48473,106,0 +2020-06-21,Waller,Texas,48473,110,0 +2020-06-22,Waller,Texas,48473,114,0 +2020-06-23,Waller,Texas,48473,119,0 +2020-06-24,Waller,Texas,48473,128,0 +2020-06-25,Waller,Texas,48473,132,0 +2020-06-26,Waller,Texas,48473,132,0 +2020-06-27,Waller,Texas,48473,133,0 +2020-06-28,Waller,Texas,48473,145,0 +2020-06-29,Waller,Texas,48473,149,0 +2020-06-30,Waller,Texas,48473,152,0 +2020-07-01,Waller,Texas,48473,156,0 +2020-07-02,Waller,Texas,48473,160,0 +2020-07-03,Waller,Texas,48473,165,0 +2020-07-04,Waller,Texas,48473,178,0 +2020-07-05,Waller,Texas,48473,175,0 +2020-07-06,Waller,Texas,48473,186,0 +2020-07-07,Waller,Texas,48473,195,0 +2020-07-08,Waller,Texas,48473,205,0 +2020-07-09,Waller,Texas,48473,216,0 +2020-05-23,Ward,Texas,48475,1,0 +2020-05-24,Ward,Texas,48475,1,0 +2020-05-25,Ward,Texas,48475,1,0 +2020-05-26,Ward,Texas,48475,1,0 +2020-05-27,Ward,Texas,48475,1,0 +2020-05-28,Ward,Texas,48475,1,0 +2020-05-29,Ward,Texas,48475,1,0 +2020-05-30,Ward,Texas,48475,1,0 +2020-05-31,Ward,Texas,48475,1,0 +2020-06-01,Ward,Texas,48475,1,0 +2020-06-02,Ward,Texas,48475,1,0 +2020-06-03,Ward,Texas,48475,1,0 +2020-06-04,Ward,Texas,48475,1,0 +2020-06-05,Ward,Texas,48475,1,0 +2020-06-06,Ward,Texas,48475,1,0 +2020-06-07,Ward,Texas,48475,1,0 +2020-06-08,Ward,Texas,48475,1,0 +2020-06-09,Ward,Texas,48475,2,0 +2020-06-10,Ward,Texas,48475,2,0 +2020-06-11,Ward,Texas,48475,2,0 +2020-06-12,Ward,Texas,48475,4,0 +2020-06-13,Ward,Texas,48475,4,0 +2020-06-14,Ward,Texas,48475,4,0 +2020-06-15,Ward,Texas,48475,4,0 +2020-06-16,Ward,Texas,48475,7,0 +2020-06-17,Ward,Texas,48475,7,0 +2020-06-18,Ward,Texas,48475,7,0 +2020-06-19,Ward,Texas,48475,7,0 +2020-06-20,Ward,Texas,48475,8,0 +2020-06-21,Ward,Texas,48475,8,0 +2020-06-22,Ward,Texas,48475,8,0 +2020-06-23,Ward,Texas,48475,8,0 +2020-06-24,Ward,Texas,48475,9,0 +2020-06-25,Ward,Texas,48475,11,0 +2020-06-26,Ward,Texas,48475,12,0 +2020-06-27,Ward,Texas,48475,14,0 +2020-06-28,Ward,Texas,48475,14,0 +2020-06-29,Ward,Texas,48475,14,0 +2020-06-30,Ward,Texas,48475,19,0 +2020-07-01,Ward,Texas,48475,20,0 +2020-07-02,Ward,Texas,48475,20,0 +2020-07-03,Ward,Texas,48475,21,0 +2020-07-04,Ward,Texas,48475,22,0 +2020-07-05,Ward,Texas,48475,24,0 +2020-07-06,Ward,Texas,48475,24,0 +2020-07-07,Ward,Texas,48475,29,0 +2020-07-08,Ward,Texas,48475,29,0 +2020-07-09,Ward,Texas,48475,31,0 +2020-03-28,Washington,Texas,48477,5,0 +2020-03-29,Washington,Texas,48477,5,0 +2020-03-30,Washington,Texas,48477,8,0 +2020-03-31,Washington,Texas,48477,8,0 +2020-04-01,Washington,Texas,48477,17,0 +2020-04-02,Washington,Texas,48477,17,0 +2020-04-03,Washington,Texas,48477,17,0 +2020-04-04,Washington,Texas,48477,17,0 +2020-04-05,Washington,Texas,48477,17,1 +2020-04-06,Washington,Texas,48477,21,1 +2020-04-07,Washington,Texas,48477,21,1 +2020-04-08,Washington,Texas,48477,26,1 +2020-04-09,Washington,Texas,48477,29,1 +2020-04-10,Washington,Texas,48477,36,1 +2020-04-11,Washington,Texas,48477,36,1 +2020-04-12,Washington,Texas,48477,37,2 +2020-04-13,Washington,Texas,48477,37,2 +2020-04-14,Washington,Texas,48477,37,2 +2020-04-15,Washington,Texas,48477,41,3 +2020-04-16,Washington,Texas,48477,46,3 +2020-04-17,Washington,Texas,48477,47,4 +2020-04-18,Washington,Texas,48477,50,4 +2020-04-19,Washington,Texas,48477,52,4 +2020-04-20,Washington,Texas,48477,61,4 +2020-04-21,Washington,Texas,48477,67,6 +2020-04-22,Washington,Texas,48477,71,6 +2020-04-23,Washington,Texas,48477,77,6 +2020-04-24,Washington,Texas,48477,78,6 +2020-04-25,Washington,Texas,48477,103,11 +2020-04-26,Washington,Texas,48477,113,11 +2020-04-27,Washington,Texas,48477,113,11 +2020-04-28,Washington,Texas,48477,136,11 +2020-04-29,Washington,Texas,48477,140,14 +2020-04-30,Washington,Texas,48477,142,15 +2020-05-01,Washington,Texas,48477,144,15 +2020-05-02,Washington,Texas,48477,145,15 +2020-05-03,Washington,Texas,48477,145,18 +2020-05-04,Washington,Texas,48477,145,18 +2020-05-05,Washington,Texas,48477,147,18 +2020-05-06,Washington,Texas,48477,150,18 +2020-05-07,Washington,Texas,48477,153,18 +2020-05-08,Washington,Texas,48477,156,18 +2020-05-09,Washington,Texas,48477,164,18 +2020-05-10,Washington,Texas,48477,164,18 +2020-05-11,Washington,Texas,48477,164,18 +2020-05-12,Washington,Texas,48477,170,22 +2020-05-13,Washington,Texas,48477,175,22 +2020-05-14,Washington,Texas,48477,175,22 +2020-05-15,Washington,Texas,48477,179,22 +2020-05-16,Washington,Texas,48477,181,22 +2020-05-17,Washington,Texas,48477,181,22 +2020-05-18,Washington,Texas,48477,181,22 +2020-05-19,Washington,Texas,48477,184,22 +2020-05-20,Washington,Texas,48477,186,22 +2020-05-21,Washington,Texas,48477,187,22 +2020-05-22,Washington,Texas,48477,187,22 +2020-05-23,Washington,Texas,48477,193,23 +2020-05-24,Washington,Texas,48477,193,23 +2020-05-25,Washington,Texas,48477,193,23 +2020-05-26,Washington,Texas,48477,193,23 +2020-05-27,Washington,Texas,48477,196,23 +2020-05-28,Washington,Texas,48477,197,23 +2020-05-29,Washington,Texas,48477,198,25 +2020-05-30,Washington,Texas,48477,202,25 +2020-05-31,Washington,Texas,48477,202,25 +2020-06-01,Washington,Texas,48477,202,25 +2020-06-02,Washington,Texas,48477,205,25 +2020-06-03,Washington,Texas,48477,204,25 +2020-06-04,Washington,Texas,48477,206,25 +2020-06-05,Washington,Texas,48477,206,25 +2020-06-06,Washington,Texas,48477,206,25 +2020-06-07,Washington,Texas,48477,207,25 +2020-06-08,Washington,Texas,48477,207,25 +2020-06-09,Washington,Texas,48477,208,25 +2020-06-10,Washington,Texas,48477,213,25 +2020-06-11,Washington,Texas,48477,214,25 +2020-06-12,Washington,Texas,48477,216,26 +2020-06-13,Washington,Texas,48477,218,26 +2020-06-14,Washington,Texas,48477,218,26 +2020-06-15,Washington,Texas,48477,218,26 +2020-06-16,Washington,Texas,48477,218,26 +2020-06-17,Washington,Texas,48477,219,26 +2020-06-18,Washington,Texas,48477,222,26 +2020-06-19,Washington,Texas,48477,222,26 +2020-06-20,Washington,Texas,48477,224,26 +2020-06-21,Washington,Texas,48477,229,26 +2020-06-22,Washington,Texas,48477,235,27 +2020-06-23,Washington,Texas,48477,239,27 +2020-06-24,Washington,Texas,48477,241,27 +2020-06-25,Washington,Texas,48477,244,27 +2020-06-26,Washington,Texas,48477,247,31 +2020-06-27,Washington,Texas,48477,260,31 +2020-06-28,Washington,Texas,48477,261,31 +2020-06-29,Washington,Texas,48477,265,31 +2020-06-30,Washington,Texas,48477,267,31 +2020-07-01,Washington,Texas,48477,275,31 +2020-07-02,Washington,Texas,48477,280,31 +2020-07-03,Washington,Texas,48477,282,31 +2020-07-04,Washington,Texas,48477,296,31 +2020-07-05,Washington,Texas,48477,296,31 +2020-07-06,Washington,Texas,48477,318,31 +2020-07-07,Washington,Texas,48477,318,31 +2020-07-08,Washington,Texas,48477,335,32 +2020-07-09,Washington,Texas,48477,337,32 +2020-03-18,Webb,Texas,48479,1,0 +2020-03-19,Webb,Texas,48479,1,0 +2020-03-20,Webb,Texas,48479,1,0 +2020-03-21,Webb,Texas,48479,2,0 +2020-03-22,Webb,Texas,48479,2,0 +2020-03-23,Webb,Texas,48479,4,0 +2020-03-24,Webb,Texas,48479,5,0 +2020-03-25,Webb,Texas,48479,8,0 +2020-03-26,Webb,Texas,48479,10,0 +2020-03-27,Webb,Texas,48479,22,0 +2020-03-28,Webb,Texas,48479,25,0 +2020-03-29,Webb,Texas,48479,30,0 +2020-03-30,Webb,Texas,48479,32,1 +2020-03-31,Webb,Texas,48479,37,2 +2020-04-01,Webb,Texas,48479,45,2 +2020-04-02,Webb,Texas,48479,57,3 +2020-04-03,Webb,Texas,48479,65,5 +2020-04-04,Webb,Texas,48479,65,5 +2020-04-05,Webb,Texas,48479,102,6 +2020-04-06,Webb,Texas,48479,110,6 +2020-04-07,Webb,Texas,48479,125,6 +2020-04-08,Webb,Texas,48479,135,6 +2020-04-09,Webb,Texas,48479,163,6 +2020-04-10,Webb,Texas,48479,166,6 +2020-04-11,Webb,Texas,48479,171,6 +2020-04-12,Webb,Texas,48479,191,6 +2020-04-13,Webb,Texas,48479,206,8 +2020-04-14,Webb,Texas,48479,223,8 +2020-04-15,Webb,Texas,48479,239,10 +2020-04-16,Webb,Texas,48479,245,11 +2020-04-17,Webb,Texas,48479,253,11 +2020-04-18,Webb,Texas,48479,267,11 +2020-04-19,Webb,Texas,48479,280,11 +2020-04-20,Webb,Texas,48479,281,11 +2020-04-21,Webb,Texas,48479,295,11 +2020-04-22,Webb,Texas,48479,302,12 +2020-04-23,Webb,Texas,48479,321,12 +2020-04-24,Webb,Texas,48479,338,12 +2020-04-25,Webb,Texas,48479,340,13 +2020-04-26,Webb,Texas,48479,345,15 +2020-04-27,Webb,Texas,48479,346,15 +2020-04-28,Webb,Texas,48479,349,15 +2020-04-29,Webb,Texas,48479,358,16 +2020-04-30,Webb,Texas,48479,363,16 +2020-05-01,Webb,Texas,48479,368,16 +2020-05-02,Webb,Texas,48479,385,16 +2020-05-03,Webb,Texas,48479,391,16 +2020-05-04,Webb,Texas,48479,396,17 +2020-05-05,Webb,Texas,48479,400,17 +2020-05-06,Webb,Texas,48479,410,17 +2020-05-07,Webb,Texas,48479,414,17 +2020-05-08,Webb,Texas,48479,424,17 +2020-05-09,Webb,Texas,48479,434,17 +2020-05-10,Webb,Texas,48479,435,17 +2020-05-11,Webb,Texas,48479,437,17 +2020-05-12,Webb,Texas,48479,444,17 +2020-05-13,Webb,Texas,48479,445,17 +2020-05-14,Webb,Texas,48479,451,17 +2020-05-15,Webb,Texas,48479,469,17 +2020-05-16,Webb,Texas,48479,477,18 +2020-05-17,Webb,Texas,48479,477,18 +2020-05-18,Webb,Texas,48479,477,18 +2020-05-19,Webb,Texas,48479,479,18 +2020-05-20,Webb,Texas,48479,492,18 +2020-05-21,Webb,Texas,48479,498,18 +2020-05-22,Webb,Texas,48479,498,18 +2020-05-23,Webb,Texas,48479,502,18 +2020-05-24,Webb,Texas,48479,511,18 +2020-05-25,Webb,Texas,48479,516,19 +2020-05-26,Webb,Texas,48479,516,19 +2020-05-27,Webb,Texas,48479,521,19 +2020-05-28,Webb,Texas,48479,524,19 +2020-05-29,Webb,Texas,48479,535,19 +2020-05-30,Webb,Texas,48479,540,19 +2020-05-31,Webb,Texas,48479,546,19 +2020-06-01,Webb,Texas,48479,548,19 +2020-06-02,Webb,Texas,48479,551,19 +2020-06-03,Webb,Texas,48479,552,19 +2020-06-04,Webb,Texas,48479,565,19 +2020-06-05,Webb,Texas,48479,574,19 +2020-06-06,Webb,Texas,48479,594,19 +2020-06-07,Webb,Texas,48479,594,19 +2020-06-08,Webb,Texas,48479,594,19 +2020-06-09,Webb,Texas,48479,608,20 +2020-06-10,Webb,Texas,48479,634,20 +2020-06-11,Webb,Texas,48479,652,20 +2020-06-12,Webb,Texas,48479,661,20 +2020-06-13,Webb,Texas,48479,675,20 +2020-06-14,Webb,Texas,48479,675,20 +2020-06-15,Webb,Texas,48479,675,20 +2020-06-16,Webb,Texas,48479,718,20 +2020-06-17,Webb,Texas,48479,756,21 +2020-06-18,Webb,Texas,48479,803,22 +2020-06-19,Webb,Texas,48479,854,22 +2020-06-20,Webb,Texas,48479,874,22 +2020-06-21,Webb,Texas,48479,874,22 +2020-06-22,Webb,Texas,48479,929,22 +2020-06-23,Webb,Texas,48479,948,22 +2020-06-24,Webb,Texas,48479,1003,23 +2020-06-25,Webb,Texas,48479,1045,23 +2020-06-26,Webb,Texas,48479,1101,23 +2020-06-27,Webb,Texas,48479,1212,23 +2020-06-28,Webb,Texas,48479,1262,24 +2020-06-29,Webb,Texas,48479,1503,25 +2020-06-30,Webb,Texas,48479,1538,25 +2020-07-01,Webb,Texas,48479,1604,26 +2020-07-02,Webb,Texas,48479,1703,27 +2020-07-03,Webb,Texas,48479,1773,27 +2020-07-04,Webb,Texas,48479,1831,28 +2020-07-05,Webb,Texas,48479,1868,28 +2020-07-06,Webb,Texas,48479,1960,29 +2020-07-07,Webb,Texas,48479,2091,32 +2020-07-08,Webb,Texas,48479,2163,36 +2020-07-09,Webb,Texas,48479,2405,39 +2020-03-25,Wharton,Texas,48481,3,0 +2020-03-26,Wharton,Texas,48481,3,0 +2020-03-27,Wharton,Texas,48481,3,0 +2020-03-28,Wharton,Texas,48481,3,0 +2020-03-29,Wharton,Texas,48481,6,0 +2020-03-30,Wharton,Texas,48481,6,0 +2020-03-31,Wharton,Texas,48481,6,0 +2020-04-01,Wharton,Texas,48481,7,0 +2020-04-02,Wharton,Texas,48481,9,0 +2020-04-03,Wharton,Texas,48481,9,0 +2020-04-04,Wharton,Texas,48481,9,0 +2020-04-05,Wharton,Texas,48481,9,0 +2020-04-06,Wharton,Texas,48481,9,0 +2020-04-07,Wharton,Texas,48481,17,0 +2020-04-08,Wharton,Texas,48481,17,0 +2020-04-09,Wharton,Texas,48481,18,0 +2020-04-10,Wharton,Texas,48481,20,0 +2020-04-11,Wharton,Texas,48481,26,0 +2020-04-12,Wharton,Texas,48481,28,0 +2020-04-13,Wharton,Texas,48481,29,0 +2020-04-14,Wharton,Texas,48481,31,0 +2020-04-15,Wharton,Texas,48481,31,0 +2020-04-16,Wharton,Texas,48481,32,0 +2020-04-17,Wharton,Texas,48481,34,0 +2020-04-18,Wharton,Texas,48481,35,0 +2020-04-19,Wharton,Texas,48481,35,0 +2020-04-20,Wharton,Texas,48481,36,0 +2020-04-21,Wharton,Texas,48481,36,0 +2020-04-22,Wharton,Texas,48481,36,0 +2020-04-23,Wharton,Texas,48481,36,0 +2020-04-24,Wharton,Texas,48481,36,0 +2020-04-25,Wharton,Texas,48481,36,0 +2020-04-26,Wharton,Texas,48481,37,0 +2020-04-27,Wharton,Texas,48481,36,0 +2020-04-28,Wharton,Texas,48481,36,0 +2020-04-29,Wharton,Texas,48481,37,0 +2020-04-30,Wharton,Texas,48481,38,0 +2020-05-01,Wharton,Texas,48481,38,0 +2020-05-02,Wharton,Texas,48481,38,0 +2020-05-03,Wharton,Texas,48481,38,0 +2020-05-04,Wharton,Texas,48481,41,0 +2020-05-05,Wharton,Texas,48481,41,0 +2020-05-06,Wharton,Texas,48481,41,0 +2020-05-07,Wharton,Texas,48481,41,0 +2020-05-08,Wharton,Texas,48481,41,0 +2020-05-09,Wharton,Texas,48481,41,0 +2020-05-10,Wharton,Texas,48481,41,0 +2020-05-11,Wharton,Texas,48481,41,0 +2020-05-12,Wharton,Texas,48481,42,0 +2020-05-13,Wharton,Texas,48481,42,0 +2020-05-14,Wharton,Texas,48481,42,0 +2020-05-15,Wharton,Texas,48481,42,0 +2020-05-16,Wharton,Texas,48481,42,0 +2020-05-17,Wharton,Texas,48481,42,0 +2020-05-18,Wharton,Texas,48481,43,0 +2020-05-19,Wharton,Texas,48481,44,0 +2020-05-20,Wharton,Texas,48481,46,0 +2020-05-21,Wharton,Texas,48481,45,0 +2020-05-22,Wharton,Texas,48481,45,0 +2020-05-23,Wharton,Texas,48481,45,0 +2020-05-24,Wharton,Texas,48481,45,0 +2020-05-25,Wharton,Texas,48481,50,0 +2020-05-26,Wharton,Texas,48481,55,0 +2020-05-27,Wharton,Texas,48481,56,0 +2020-05-28,Wharton,Texas,48481,57,0 +2020-05-29,Wharton,Texas,48481,57,0 +2020-05-30,Wharton,Texas,48481,57,0 +2020-05-31,Wharton,Texas,48481,58,0 +2020-06-01,Wharton,Texas,48481,58,0 +2020-06-02,Wharton,Texas,48481,64,0 +2020-06-03,Wharton,Texas,48481,68,0 +2020-06-04,Wharton,Texas,48481,70,1 +2020-06-05,Wharton,Texas,48481,73,1 +2020-06-06,Wharton,Texas,48481,75,1 +2020-06-07,Wharton,Texas,48481,76,1 +2020-06-08,Wharton,Texas,48481,76,1 +2020-06-09,Wharton,Texas,48481,84,1 +2020-06-10,Wharton,Texas,48481,86,1 +2020-06-11,Wharton,Texas,48481,87,1 +2020-06-12,Wharton,Texas,48481,89,1 +2020-06-13,Wharton,Texas,48481,92,1 +2020-06-14,Wharton,Texas,48481,94,1 +2020-06-15,Wharton,Texas,48481,94,1 +2020-06-16,Wharton,Texas,48481,98,1 +2020-06-17,Wharton,Texas,48481,98,1 +2020-06-18,Wharton,Texas,48481,99,1 +2020-06-19,Wharton,Texas,48481,114,1 +2020-06-20,Wharton,Texas,48481,115,1 +2020-06-21,Wharton,Texas,48481,118,1 +2020-06-22,Wharton,Texas,48481,118,1 +2020-06-23,Wharton,Texas,48481,120,1 +2020-06-24,Wharton,Texas,48481,144,1 +2020-06-25,Wharton,Texas,48481,147,1 +2020-06-26,Wharton,Texas,48481,163,1 +2020-06-27,Wharton,Texas,48481,181,1 +2020-06-28,Wharton,Texas,48481,189,1 +2020-06-29,Wharton,Texas,48481,192,1 +2020-06-30,Wharton,Texas,48481,197,1 +2020-07-01,Wharton,Texas,48481,203,1 +2020-07-02,Wharton,Texas,48481,215,1 +2020-07-03,Wharton,Texas,48481,226,1 +2020-07-04,Wharton,Texas,48481,230,1 +2020-07-05,Wharton,Texas,48481,230,1 +2020-07-06,Wharton,Texas,48481,236,1 +2020-07-07,Wharton,Texas,48481,244,1 +2020-07-08,Wharton,Texas,48481,251,1 +2020-07-09,Wharton,Texas,48481,262,1 +2020-04-22,Wheeler,Texas,48483,1,0 +2020-04-23,Wheeler,Texas,48483,1,0 +2020-04-24,Wheeler,Texas,48483,3,0 +2020-04-25,Wheeler,Texas,48483,3,0 +2020-04-26,Wheeler,Texas,48483,5,0 +2020-04-27,Wheeler,Texas,48483,5,0 +2020-04-28,Wheeler,Texas,48483,5,0 +2020-04-29,Wheeler,Texas,48483,7,0 +2020-04-30,Wheeler,Texas,48483,7,0 +2020-05-01,Wheeler,Texas,48483,7,0 +2020-05-02,Wheeler,Texas,48483,8,0 +2020-05-03,Wheeler,Texas,48483,9,0 +2020-05-04,Wheeler,Texas,48483,9,0 +2020-05-05,Wheeler,Texas,48483,11,0 +2020-05-06,Wheeler,Texas,48483,12,0 +2020-05-07,Wheeler,Texas,48483,12,0 +2020-05-08,Wheeler,Texas,48483,13,0 +2020-05-09,Wheeler,Texas,48483,13,0 +2020-05-10,Wheeler,Texas,48483,14,0 +2020-05-11,Wheeler,Texas,48483,14,0 +2020-05-12,Wheeler,Texas,48483,14,0 +2020-05-13,Wheeler,Texas,48483,14,0 +2020-05-14,Wheeler,Texas,48483,14,0 +2020-05-15,Wheeler,Texas,48483,14,0 +2020-05-16,Wheeler,Texas,48483,14,0 +2020-05-17,Wheeler,Texas,48483,14,0 +2020-05-18,Wheeler,Texas,48483,14,0 +2020-05-19,Wheeler,Texas,48483,14,0 +2020-05-20,Wheeler,Texas,48483,15,0 +2020-05-21,Wheeler,Texas,48483,15,0 +2020-05-22,Wheeler,Texas,48483,15,0 +2020-05-23,Wheeler,Texas,48483,15,0 +2020-05-24,Wheeler,Texas,48483,15,0 +2020-05-25,Wheeler,Texas,48483,15,0 +2020-05-26,Wheeler,Texas,48483,15,0 +2020-05-27,Wheeler,Texas,48483,15,0 +2020-05-28,Wheeler,Texas,48483,15,0 +2020-05-29,Wheeler,Texas,48483,15,0 +2020-05-30,Wheeler,Texas,48483,15,0 +2020-05-31,Wheeler,Texas,48483,15,0 +2020-06-01,Wheeler,Texas,48483,15,0 +2020-06-02,Wheeler,Texas,48483,15,0 +2020-06-03,Wheeler,Texas,48483,15,0 +2020-06-04,Wheeler,Texas,48483,15,0 +2020-06-05,Wheeler,Texas,48483,15,0 +2020-06-06,Wheeler,Texas,48483,15,0 +2020-06-07,Wheeler,Texas,48483,15,0 +2020-06-08,Wheeler,Texas,48483,15,0 +2020-06-09,Wheeler,Texas,48483,15,0 +2020-06-10,Wheeler,Texas,48483,15,0 +2020-06-11,Wheeler,Texas,48483,15,0 +2020-06-12,Wheeler,Texas,48483,15,0 +2020-06-13,Wheeler,Texas,48483,15,0 +2020-06-14,Wheeler,Texas,48483,15,0 +2020-06-15,Wheeler,Texas,48483,15,0 +2020-06-16,Wheeler,Texas,48483,15,0 +2020-06-17,Wheeler,Texas,48483,16,0 +2020-06-18,Wheeler,Texas,48483,16,0 +2020-06-19,Wheeler,Texas,48483,16,0 +2020-06-20,Wheeler,Texas,48483,16,0 +2020-06-21,Wheeler,Texas,48483,16,0 +2020-06-22,Wheeler,Texas,48483,16,0 +2020-06-23,Wheeler,Texas,48483,16,0 +2020-06-24,Wheeler,Texas,48483,16,0 +2020-06-25,Wheeler,Texas,48483,16,0 +2020-06-26,Wheeler,Texas,48483,16,0 +2020-06-27,Wheeler,Texas,48483,16,0 +2020-06-28,Wheeler,Texas,48483,16,0 +2020-06-29,Wheeler,Texas,48483,16,0 +2020-06-30,Wheeler,Texas,48483,16,0 +2020-07-01,Wheeler,Texas,48483,16,0 +2020-07-02,Wheeler,Texas,48483,18,0 +2020-07-03,Wheeler,Texas,48483,19,0 +2020-07-04,Wheeler,Texas,48483,19,0 +2020-07-05,Wheeler,Texas,48483,19,0 +2020-07-06,Wheeler,Texas,48483,19,0 +2020-07-07,Wheeler,Texas,48483,19,0 +2020-07-08,Wheeler,Texas,48483,19,0 +2020-07-09,Wheeler,Texas,48483,19,0 +2020-03-18,Wichita,Texas,48485,1,0 +2020-03-19,Wichita,Texas,48485,1,0 +2020-03-20,Wichita,Texas,48485,4,0 +2020-03-21,Wichita,Texas,48485,4,0 +2020-03-22,Wichita,Texas,48485,5,0 +2020-03-23,Wichita,Texas,48485,5,0 +2020-03-24,Wichita,Texas,48485,6,0 +2020-03-25,Wichita,Texas,48485,6,0 +2020-03-26,Wichita,Texas,48485,8,0 +2020-03-27,Wichita,Texas,48485,15,0 +2020-03-28,Wichita,Texas,48485,15,0 +2020-03-29,Wichita,Texas,48485,28,0 +2020-03-30,Wichita,Texas,48485,28,0 +2020-03-31,Wichita,Texas,48485,30,0 +2020-04-01,Wichita,Texas,48485,38,0 +2020-04-02,Wichita,Texas,48485,43,0 +2020-04-03,Wichita,Texas,48485,44,0 +2020-04-04,Wichita,Texas,48485,44,0 +2020-04-05,Wichita,Texas,48485,46,0 +2020-04-06,Wichita,Texas,48485,48,0 +2020-04-07,Wichita,Texas,48485,48,0 +2020-04-08,Wichita,Texas,48485,50,0 +2020-04-09,Wichita,Texas,48485,50,0 +2020-04-10,Wichita,Texas,48485,54,0 +2020-04-11,Wichita,Texas,48485,54,0 +2020-04-12,Wichita,Texas,48485,56,0 +2020-04-13,Wichita,Texas,48485,56,0 +2020-04-14,Wichita,Texas,48485,56,0 +2020-04-15,Wichita,Texas,48485,57,1 +2020-04-16,Wichita,Texas,48485,57,1 +2020-04-17,Wichita,Texas,48485,58,1 +2020-04-18,Wichita,Texas,48485,59,2 +2020-04-19,Wichita,Texas,48485,60,2 +2020-04-20,Wichita,Texas,48485,60,2 +2020-04-21,Wichita,Texas,48485,62,2 +2020-04-22,Wichita,Texas,48485,62,2 +2020-04-23,Wichita,Texas,48485,62,2 +2020-04-24,Wichita,Texas,48485,62,2 +2020-04-25,Wichita,Texas,48485,62,2 +2020-04-26,Wichita,Texas,48485,62,2 +2020-04-27,Wichita,Texas,48485,63,2 +2020-04-28,Wichita,Texas,48485,64,2 +2020-04-29,Wichita,Texas,48485,65,2 +2020-04-30,Wichita,Texas,48485,65,2 +2020-05-01,Wichita,Texas,48485,65,2 +2020-05-02,Wichita,Texas,48485,65,2 +2020-05-03,Wichita,Texas,48485,65,2 +2020-05-04,Wichita,Texas,48485,68,2 +2020-05-05,Wichita,Texas,48485,70,2 +2020-05-06,Wichita,Texas,48485,70,2 +2020-05-07,Wichita,Texas,48485,71,2 +2020-05-08,Wichita,Texas,48485,74,2 +2020-05-09,Wichita,Texas,48485,75,2 +2020-05-10,Wichita,Texas,48485,75,2 +2020-05-11,Wichita,Texas,48485,75,2 +2020-05-12,Wichita,Texas,48485,76,2 +2020-05-13,Wichita,Texas,48485,77,2 +2020-05-14,Wichita,Texas,48485,78,2 +2020-05-15,Wichita,Texas,48485,78,2 +2020-05-16,Wichita,Texas,48485,78,2 +2020-05-17,Wichita,Texas,48485,78,2 +2020-05-18,Wichita,Texas,48485,80,2 +2020-05-19,Wichita,Texas,48485,82,2 +2020-05-20,Wichita,Texas,48485,82,2 +2020-05-21,Wichita,Texas,48485,82,2 +2020-05-22,Wichita,Texas,48485,82,2 +2020-05-23,Wichita,Texas,48485,82,2 +2020-05-24,Wichita,Texas,48485,82,2 +2020-05-25,Wichita,Texas,48485,82,2 +2020-05-26,Wichita,Texas,48485,84,2 +2020-05-27,Wichita,Texas,48485,84,2 +2020-05-28,Wichita,Texas,48485,84,2 +2020-05-29,Wichita,Texas,48485,84,2 +2020-05-30,Wichita,Texas,48485,84,2 +2020-05-31,Wichita,Texas,48485,84,2 +2020-06-01,Wichita,Texas,48485,85,2 +2020-06-02,Wichita,Texas,48485,85,2 +2020-06-03,Wichita,Texas,48485,85,2 +2020-06-04,Wichita,Texas,48485,87,2 +2020-06-05,Wichita,Texas,48485,87,2 +2020-06-06,Wichita,Texas,48485,87,2 +2020-06-07,Wichita,Texas,48485,87,2 +2020-06-08,Wichita,Texas,48485,90,2 +2020-06-09,Wichita,Texas,48485,90,2 +2020-06-10,Wichita,Texas,48485,92,2 +2020-06-11,Wichita,Texas,48485,93,2 +2020-06-12,Wichita,Texas,48485,99,2 +2020-06-13,Wichita,Texas,48485,99,2 +2020-06-14,Wichita,Texas,48485,99,2 +2020-06-15,Wichita,Texas,48485,117,2 +2020-06-16,Wichita,Texas,48485,120,2 +2020-06-17,Wichita,Texas,48485,137,2 +2020-06-18,Wichita,Texas,48485,150,2 +2020-06-19,Wichita,Texas,48485,169,2 +2020-06-20,Wichita,Texas,48485,169,2 +2020-06-21,Wichita,Texas,48485,169,2 +2020-06-22,Wichita,Texas,48485,201,2 +2020-06-23,Wichita,Texas,48485,230,2 +2020-06-24,Wichita,Texas,48485,250,2 +2020-06-25,Wichita,Texas,48485,270,2 +2020-06-26,Wichita,Texas,48485,300,2 +2020-06-27,Wichita,Texas,48485,300,2 +2020-06-28,Wichita,Texas,48485,300,2 +2020-06-29,Wichita,Texas,48485,318,2 +2020-06-30,Wichita,Texas,48485,363,2 +2020-07-01,Wichita,Texas,48485,397,2 +2020-07-02,Wichita,Texas,48485,420,2 +2020-07-03,Wichita,Texas,48485,425,2 +2020-07-04,Wichita,Texas,48485,425,2 +2020-07-05,Wichita,Texas,48485,436,3 +2020-07-06,Wichita,Texas,48485,464,3 +2020-07-07,Wichita,Texas,48485,512,3 +2020-07-08,Wichita,Texas,48485,548,3 +2020-07-09,Wichita,Texas,48485,567,3 +2020-04-14,Wilbarger,Texas,48487,1,0 +2020-04-15,Wilbarger,Texas,48487,1,0 +2020-04-16,Wilbarger,Texas,48487,1,0 +2020-04-17,Wilbarger,Texas,48487,1,0 +2020-04-18,Wilbarger,Texas,48487,1,0 +2020-04-19,Wilbarger,Texas,48487,1,0 +2020-04-20,Wilbarger,Texas,48487,1,0 +2020-04-21,Wilbarger,Texas,48487,1,0 +2020-04-22,Wilbarger,Texas,48487,1,0 +2020-04-23,Wilbarger,Texas,48487,1,0 +2020-04-24,Wilbarger,Texas,48487,1,0 +2020-04-25,Wilbarger,Texas,48487,1,0 +2020-04-26,Wilbarger,Texas,48487,1,0 +2020-04-27,Wilbarger,Texas,48487,1,0 +2020-04-28,Wilbarger,Texas,48487,1,0 +2020-04-29,Wilbarger,Texas,48487,1,0 +2020-04-30,Wilbarger,Texas,48487,1,0 +2020-05-01,Wilbarger,Texas,48487,1,0 +2020-05-02,Wilbarger,Texas,48487,1,0 +2020-05-03,Wilbarger,Texas,48487,1,0 +2020-05-04,Wilbarger,Texas,48487,1,0 +2020-05-05,Wilbarger,Texas,48487,1,0 +2020-05-06,Wilbarger,Texas,48487,2,0 +2020-05-07,Wilbarger,Texas,48487,2,0 +2020-05-08,Wilbarger,Texas,48487,2,0 +2020-05-09,Wilbarger,Texas,48487,2,0 +2020-05-10,Wilbarger,Texas,48487,2,0 +2020-05-11,Wilbarger,Texas,48487,2,0 +2020-05-12,Wilbarger,Texas,48487,2,0 +2020-05-13,Wilbarger,Texas,48487,2,0 +2020-05-14,Wilbarger,Texas,48487,2,0 +2020-05-15,Wilbarger,Texas,48487,5,0 +2020-05-16,Wilbarger,Texas,48487,5,0 +2020-05-17,Wilbarger,Texas,48487,5,0 +2020-05-18,Wilbarger,Texas,48487,5,0 +2020-05-19,Wilbarger,Texas,48487,6,0 +2020-05-20,Wilbarger,Texas,48487,6,0 +2020-05-21,Wilbarger,Texas,48487,6,0 +2020-05-22,Wilbarger,Texas,48487,6,0 +2020-05-23,Wilbarger,Texas,48487,6,0 +2020-05-24,Wilbarger,Texas,48487,6,0 +2020-05-25,Wilbarger,Texas,48487,6,0 +2020-05-26,Wilbarger,Texas,48487,6,0 +2020-05-27,Wilbarger,Texas,48487,6,0 +2020-05-28,Wilbarger,Texas,48487,6,0 +2020-05-29,Wilbarger,Texas,48487,7,0 +2020-05-30,Wilbarger,Texas,48487,7,0 +2020-05-31,Wilbarger,Texas,48487,7,0 +2020-06-01,Wilbarger,Texas,48487,7,0 +2020-06-02,Wilbarger,Texas,48487,7,0 +2020-06-03,Wilbarger,Texas,48487,7,0 +2020-06-04,Wilbarger,Texas,48487,7,0 +2020-06-05,Wilbarger,Texas,48487,7,0 +2020-06-06,Wilbarger,Texas,48487,7,0 +2020-06-07,Wilbarger,Texas,48487,7,0 +2020-06-08,Wilbarger,Texas,48487,7,0 +2020-06-09,Wilbarger,Texas,48487,7,0 +2020-06-10,Wilbarger,Texas,48487,7,0 +2020-06-11,Wilbarger,Texas,48487,7,0 +2020-06-12,Wilbarger,Texas,48487,7,0 +2020-06-13,Wilbarger,Texas,48487,7,0 +2020-06-14,Wilbarger,Texas,48487,7,0 +2020-06-15,Wilbarger,Texas,48487,7,0 +2020-06-16,Wilbarger,Texas,48487,7,0 +2020-06-17,Wilbarger,Texas,48487,7,0 +2020-06-18,Wilbarger,Texas,48487,7,0 +2020-06-19,Wilbarger,Texas,48487,7,0 +2020-06-20,Wilbarger,Texas,48487,7,0 +2020-06-21,Wilbarger,Texas,48487,7,0 +2020-06-22,Wilbarger,Texas,48487,7,0 +2020-06-23,Wilbarger,Texas,48487,8,0 +2020-06-24,Wilbarger,Texas,48487,9,0 +2020-06-25,Wilbarger,Texas,48487,9,0 +2020-06-26,Wilbarger,Texas,48487,9,0 +2020-06-27,Wilbarger,Texas,48487,9,0 +2020-06-28,Wilbarger,Texas,48487,9,0 +2020-06-29,Wilbarger,Texas,48487,9,0 +2020-06-30,Wilbarger,Texas,48487,10,0 +2020-07-01,Wilbarger,Texas,48487,10,0 +2020-07-02,Wilbarger,Texas,48487,10,0 +2020-07-03,Wilbarger,Texas,48487,11,0 +2020-07-04,Wilbarger,Texas,48487,12,0 +2020-07-05,Wilbarger,Texas,48487,12,0 +2020-07-06,Wilbarger,Texas,48487,12,0 +2020-07-07,Wilbarger,Texas,48487,13,0 +2020-07-08,Wilbarger,Texas,48487,16,0 +2020-07-09,Wilbarger,Texas,48487,17,0 +2020-03-27,Willacy,Texas,48489,1,0 +2020-03-28,Willacy,Texas,48489,1,0 +2020-03-29,Willacy,Texas,48489,2,0 +2020-03-30,Willacy,Texas,48489,2,0 +2020-03-31,Willacy,Texas,48489,2,0 +2020-04-01,Willacy,Texas,48489,2,0 +2020-04-02,Willacy,Texas,48489,3,0 +2020-04-03,Willacy,Texas,48489,5,0 +2020-04-04,Willacy,Texas,48489,5,1 +2020-04-05,Willacy,Texas,48489,5,1 +2020-04-06,Willacy,Texas,48489,5,1 +2020-04-07,Willacy,Texas,48489,5,1 +2020-04-08,Willacy,Texas,48489,5,1 +2020-04-09,Willacy,Texas,48489,5,1 +2020-04-10,Willacy,Texas,48489,5,1 +2020-04-11,Willacy,Texas,48489,5,1 +2020-04-12,Willacy,Texas,48489,5,1 +2020-04-13,Willacy,Texas,48489,5,1 +2020-04-14,Willacy,Texas,48489,5,1 +2020-04-15,Willacy,Texas,48489,6,1 +2020-04-16,Willacy,Texas,48489,7,1 +2020-04-17,Willacy,Texas,48489,7,1 +2020-04-18,Willacy,Texas,48489,8,1 +2020-04-19,Willacy,Texas,48489,8,1 +2020-04-20,Willacy,Texas,48489,8,1 +2020-04-21,Willacy,Texas,48489,9,1 +2020-04-22,Willacy,Texas,48489,10,1 +2020-04-23,Willacy,Texas,48489,10,1 +2020-04-24,Willacy,Texas,48489,10,1 +2020-04-25,Willacy,Texas,48489,13,1 +2020-04-26,Willacy,Texas,48489,13,1 +2020-04-27,Willacy,Texas,48489,13,1 +2020-04-28,Willacy,Texas,48489,13,1 +2020-04-29,Willacy,Texas,48489,13,1 +2020-04-30,Willacy,Texas,48489,13,1 +2020-05-01,Willacy,Texas,48489,13,1 +2020-05-02,Willacy,Texas,48489,13,1 +2020-05-03,Willacy,Texas,48489,13,1 +2020-05-04,Willacy,Texas,48489,13,1 +2020-05-05,Willacy,Texas,48489,13,1 +2020-05-06,Willacy,Texas,48489,13,1 +2020-05-07,Willacy,Texas,48489,14,1 +2020-05-08,Willacy,Texas,48489,14,1 +2020-05-09,Willacy,Texas,48489,14,1 +2020-05-10,Willacy,Texas,48489,14,1 +2020-05-11,Willacy,Texas,48489,14,1 +2020-05-12,Willacy,Texas,48489,14,1 +2020-05-13,Willacy,Texas,48489,14,1 +2020-05-14,Willacy,Texas,48489,14,1 +2020-05-15,Willacy,Texas,48489,14,1 +2020-05-16,Willacy,Texas,48489,14,1 +2020-05-17,Willacy,Texas,48489,14,1 +2020-05-18,Willacy,Texas,48489,14,1 +2020-05-19,Willacy,Texas,48489,14,1 +2020-05-20,Willacy,Texas,48489,15,1 +2020-05-21,Willacy,Texas,48489,15,1 +2020-05-22,Willacy,Texas,48489,15,1 +2020-05-23,Willacy,Texas,48489,15,1 +2020-05-24,Willacy,Texas,48489,14,1 +2020-05-25,Willacy,Texas,48489,14,1 +2020-05-26,Willacy,Texas,48489,14,1 +2020-05-27,Willacy,Texas,48489,15,1 +2020-05-28,Willacy,Texas,48489,14,1 +2020-05-29,Willacy,Texas,48489,15,1 +2020-05-30,Willacy,Texas,48489,16,1 +2020-05-31,Willacy,Texas,48489,16,1 +2020-06-01,Willacy,Texas,48489,18,1 +2020-06-02,Willacy,Texas,48489,21,2 +2020-06-03,Willacy,Texas,48489,21,2 +2020-06-04,Willacy,Texas,48489,21,2 +2020-06-05,Willacy,Texas,48489,26,2 +2020-06-06,Willacy,Texas,48489,35,2 +2020-06-07,Willacy,Texas,48489,37,2 +2020-06-08,Willacy,Texas,48489,37,2 +2020-06-09,Willacy,Texas,48489,42,2 +2020-06-10,Willacy,Texas,48489,45,2 +2020-06-11,Willacy,Texas,48489,48,3 +2020-06-12,Willacy,Texas,48489,52,3 +2020-06-13,Willacy,Texas,48489,54,3 +2020-06-14,Willacy,Texas,48489,56,3 +2020-06-15,Willacy,Texas,48489,59,3 +2020-06-16,Willacy,Texas,48489,61,3 +2020-06-17,Willacy,Texas,48489,65,3 +2020-06-18,Willacy,Texas,48489,71,3 +2020-06-19,Willacy,Texas,48489,75,3 +2020-06-20,Willacy,Texas,48489,82,3 +2020-06-21,Willacy,Texas,48489,87,3 +2020-06-22,Willacy,Texas,48489,93,3 +2020-06-23,Willacy,Texas,48489,103,3 +2020-06-24,Willacy,Texas,48489,114,3 +2020-06-25,Willacy,Texas,48489,118,3 +2020-06-26,Willacy,Texas,48489,125,3 +2020-06-27,Willacy,Texas,48489,129,3 +2020-06-28,Willacy,Texas,48489,137,3 +2020-06-29,Willacy,Texas,48489,151,3 +2020-06-30,Willacy,Texas,48489,154,3 +2020-07-01,Willacy,Texas,48489,156,3 +2020-07-02,Willacy,Texas,48489,168,3 +2020-07-03,Willacy,Texas,48489,207,3 +2020-07-04,Willacy,Texas,48489,217,3 +2020-07-05,Willacy,Texas,48489,229,3 +2020-07-06,Willacy,Texas,48489,233,3 +2020-07-07,Willacy,Texas,48489,242,3 +2020-07-08,Willacy,Texas,48489,243,3 +2020-07-09,Willacy,Texas,48489,251,3 +2020-03-18,Williamson,Texas,48491,4,0 +2020-03-19,Williamson,Texas,48491,8,0 +2020-03-20,Williamson,Texas,48491,9,0 +2020-03-21,Williamson,Texas,48491,9,0 +2020-03-22,Williamson,Texas,48491,9,0 +2020-03-23,Williamson,Texas,48491,14,0 +2020-03-24,Williamson,Texas,48491,14,0 +2020-03-25,Williamson,Texas,48491,22,0 +2020-03-26,Williamson,Texas,48491,27,0 +2020-03-27,Williamson,Texas,48491,34,0 +2020-03-28,Williamson,Texas,48491,34,0 +2020-03-29,Williamson,Texas,48491,37,1 +2020-03-30,Williamson,Texas,48491,37,1 +2020-03-31,Williamson,Texas,48491,42,1 +2020-04-01,Williamson,Texas,48491,55,1 +2020-04-02,Williamson,Texas,48491,55,1 +2020-04-03,Williamson,Texas,48491,71,1 +2020-04-04,Williamson,Texas,48491,71,1 +2020-04-05,Williamson,Texas,48491,77,2 +2020-04-06,Williamson,Texas,48491,81,3 +2020-04-07,Williamson,Texas,48491,81,3 +2020-04-08,Williamson,Texas,48491,87,4 +2020-04-09,Williamson,Texas,48491,103,4 +2020-04-10,Williamson,Texas,48491,110,4 +2020-04-11,Williamson,Texas,48491,110,4 +2020-04-12,Williamson,Texas,48491,117,4 +2020-04-13,Williamson,Texas,48491,119,4 +2020-04-14,Williamson,Texas,48491,124,4 +2020-04-15,Williamson,Texas,48491,128,4 +2020-04-16,Williamson,Texas,48491,140,4 +2020-04-17,Williamson,Texas,48491,146,4 +2020-04-18,Williamson,Texas,48491,151,4 +2020-04-19,Williamson,Texas,48491,155,4 +2020-04-20,Williamson,Texas,48491,156,4 +2020-04-21,Williamson,Texas,48491,158,5 +2020-04-22,Williamson,Texas,48491,167,5 +2020-04-23,Williamson,Texas,48491,184,5 +2020-04-24,Williamson,Texas,48491,206,5 +2020-04-25,Williamson,Texas,48491,211,6 +2020-04-26,Williamson,Texas,48491,262,6 +2020-04-27,Williamson,Texas,48491,287,6 +2020-04-28,Williamson,Texas,48491,287,7 +2020-04-29,Williamson,Texas,48491,293,8 +2020-04-30,Williamson,Texas,48491,301,9 +2020-05-01,Williamson,Texas,48491,306,10 +2020-05-02,Williamson,Texas,48491,313,10 +2020-05-03,Williamson,Texas,48491,323,10 +2020-05-04,Williamson,Texas,48491,328,10 +2020-05-05,Williamson,Texas,48491,333,11 +2020-05-06,Williamson,Texas,48491,341,12 +2020-05-07,Williamson,Texas,48491,352,12 +2020-05-08,Williamson,Texas,48491,361,12 +2020-05-09,Williamson,Texas,48491,368,13 +2020-05-10,Williamson,Texas,48491,377,13 +2020-05-11,Williamson,Texas,48491,380,14 +2020-05-12,Williamson,Texas,48491,397,16 +2020-05-13,Williamson,Texas,48491,424,16 +2020-05-14,Williamson,Texas,48491,442,19 +2020-05-15,Williamson,Texas,48491,451,19 +2020-05-16,Williamson,Texas,48491,463,19 +2020-05-17,Williamson,Texas,48491,481,19 +2020-05-18,Williamson,Texas,48491,486,19 +2020-05-19,Williamson,Texas,48491,501,20 +2020-05-20,Williamson,Texas,48491,513,20 +2020-05-21,Williamson,Texas,48491,520,20 +2020-05-22,Williamson,Texas,48491,528,21 +2020-05-23,Williamson,Texas,48491,541,21 +2020-05-24,Williamson,Texas,48491,553,21 +2020-05-25,Williamson,Texas,48491,565,22 +2020-05-26,Williamson,Texas,48491,584,22 +2020-05-27,Williamson,Texas,48491,588,22 +2020-05-28,Williamson,Texas,48491,596,23 +2020-05-29,Williamson,Texas,48491,605,24 +2020-05-30,Williamson,Texas,48491,612,24 +2020-05-31,Williamson,Texas,48491,621,24 +2020-06-01,Williamson,Texas,48491,630,25 +2020-06-02,Williamson,Texas,48491,636,25 +2020-06-03,Williamson,Texas,48491,649,25 +2020-06-04,Williamson,Texas,48491,660,27 +2020-06-05,Williamson,Texas,48491,672,27 +2020-06-06,Williamson,Texas,48491,684,28 +2020-06-07,Williamson,Texas,48491,691,28 +2020-06-08,Williamson,Texas,48491,698,28 +2020-06-09,Williamson,Texas,48491,745,29 +2020-06-10,Williamson,Texas,48491,763,29 +2020-06-11,Williamson,Texas,48491,787,30 +2020-06-12,Williamson,Texas,48491,820,30 +2020-06-13,Williamson,Texas,48491,862,30 +2020-06-14,Williamson,Texas,48491,904,30 +2020-06-15,Williamson,Texas,48491,960,30 +2020-06-16,Williamson,Texas,48491,1021,30 +2020-06-17,Williamson,Texas,48491,1068,32 +2020-06-18,Williamson,Texas,48491,1114,32 +2020-06-19,Williamson,Texas,48491,1159,32 +2020-06-20,Williamson,Texas,48491,1237,32 +2020-06-21,Williamson,Texas,48491,1337,32 +2020-06-22,Williamson,Texas,48491,1411,32 +2020-06-23,Williamson,Texas,48491,1498,32 +2020-06-24,Williamson,Texas,48491,1614,32 +2020-06-25,Williamson,Texas,48491,1702,32 +2020-06-26,Williamson,Texas,48491,1770,35 +2020-06-27,Williamson,Texas,48491,1850,35 +2020-06-28,Williamson,Texas,48491,2019,35 +2020-06-29,Williamson,Texas,48491,2100,37 +2020-06-30,Williamson,Texas,48491,2230,39 +2020-07-01,Williamson,Texas,48491,2339,39 +2020-07-02,Williamson,Texas,48491,2388,39 +2020-07-03,Williamson,Texas,48491,2469,42 +2020-07-04,Williamson,Texas,48491,2469,42 +2020-07-05,Williamson,Texas,48491,2469,42 +2020-07-06,Williamson,Texas,48491,3151,45 +2020-07-07,Williamson,Texas,48491,3318,46 +2020-07-08,Williamson,Texas,48491,3442,48 +2020-07-09,Williamson,Texas,48491,3617,51 +2020-03-25,Wilson,Texas,48493,1,0 +2020-03-26,Wilson,Texas,48493,1,0 +2020-03-27,Wilson,Texas,48493,1,0 +2020-03-28,Wilson,Texas,48493,2,0 +2020-03-29,Wilson,Texas,48493,2,0 +2020-03-30,Wilson,Texas,48493,2,0 +2020-03-31,Wilson,Texas,48493,3,0 +2020-04-01,Wilson,Texas,48493,5,0 +2020-04-02,Wilson,Texas,48493,5,0 +2020-04-03,Wilson,Texas,48493,6,0 +2020-04-04,Wilson,Texas,48493,6,0 +2020-04-05,Wilson,Texas,48493,6,0 +2020-04-06,Wilson,Texas,48493,6,0 +2020-04-07,Wilson,Texas,48493,7,0 +2020-04-08,Wilson,Texas,48493,7,0 +2020-04-09,Wilson,Texas,48493,9,0 +2020-04-10,Wilson,Texas,48493,10,0 +2020-04-11,Wilson,Texas,48493,10,0 +2020-04-12,Wilson,Texas,48493,11,0 +2020-04-13,Wilson,Texas,48493,11,0 +2020-04-14,Wilson,Texas,48493,11,1 +2020-04-15,Wilson,Texas,48493,12,1 +2020-04-16,Wilson,Texas,48493,13,1 +2020-04-17,Wilson,Texas,48493,19,1 +2020-04-18,Wilson,Texas,48493,19,1 +2020-04-19,Wilson,Texas,48493,21,1 +2020-04-20,Wilson,Texas,48493,21,1 +2020-04-21,Wilson,Texas,48493,22,1 +2020-04-22,Wilson,Texas,48493,23,2 +2020-04-23,Wilson,Texas,48493,25,2 +2020-04-24,Wilson,Texas,48493,25,2 +2020-04-25,Wilson,Texas,48493,26,2 +2020-04-26,Wilson,Texas,48493,29,2 +2020-04-27,Wilson,Texas,48493,29,2 +2020-04-28,Wilson,Texas,48493,29,2 +2020-04-29,Wilson,Texas,48493,31,2 +2020-04-30,Wilson,Texas,48493,32,3 +2020-05-01,Wilson,Texas,48493,32,3 +2020-05-02,Wilson,Texas,48493,33,3 +2020-05-03,Wilson,Texas,48493,33,3 +2020-05-04,Wilson,Texas,48493,33,3 +2020-05-05,Wilson,Texas,48493,34,3 +2020-05-06,Wilson,Texas,48493,34,4 +2020-05-07,Wilson,Texas,48493,34,4 +2020-05-08,Wilson,Texas,48493,34,4 +2020-05-09,Wilson,Texas,48493,34,4 +2020-05-10,Wilson,Texas,48493,35,4 +2020-05-11,Wilson,Texas,48493,36,4 +2020-05-12,Wilson,Texas,48493,36,4 +2020-05-13,Wilson,Texas,48493,36,4 +2020-05-14,Wilson,Texas,48493,36,4 +2020-05-15,Wilson,Texas,48493,36,4 +2020-05-16,Wilson,Texas,48493,36,4 +2020-05-17,Wilson,Texas,48493,36,5 +2020-05-18,Wilson,Texas,48493,36,5 +2020-05-19,Wilson,Texas,48493,37,5 +2020-05-20,Wilson,Texas,48493,37,5 +2020-05-21,Wilson,Texas,48493,38,5 +2020-05-22,Wilson,Texas,48493,38,5 +2020-05-23,Wilson,Texas,48493,38,5 +2020-05-24,Wilson,Texas,48493,38,5 +2020-05-25,Wilson,Texas,48493,38,5 +2020-05-26,Wilson,Texas,48493,38,5 +2020-05-27,Wilson,Texas,48493,38,5 +2020-05-28,Wilson,Texas,48493,38,5 +2020-05-29,Wilson,Texas,48493,38,5 +2020-05-30,Wilson,Texas,48493,38,5 +2020-05-31,Wilson,Texas,48493,38,5 +2020-06-01,Wilson,Texas,48493,38,5 +2020-06-02,Wilson,Texas,48493,40,5 +2020-06-03,Wilson,Texas,48493,41,5 +2020-06-04,Wilson,Texas,48493,41,5 +2020-06-05,Wilson,Texas,48493,44,5 +2020-06-06,Wilson,Texas,48493,44,5 +2020-06-07,Wilson,Texas,48493,45,5 +2020-06-08,Wilson,Texas,48493,45,5 +2020-06-09,Wilson,Texas,48493,45,5 +2020-06-10,Wilson,Texas,48493,46,5 +2020-06-11,Wilson,Texas,48493,46,5 +2020-06-12,Wilson,Texas,48493,50,5 +2020-06-13,Wilson,Texas,48493,52,5 +2020-06-14,Wilson,Texas,48493,52,5 +2020-06-15,Wilson,Texas,48493,52,5 +2020-06-16,Wilson,Texas,48493,53,5 +2020-06-17,Wilson,Texas,48493,53,5 +2020-06-18,Wilson,Texas,48493,55,5 +2020-06-19,Wilson,Texas,48493,65,5 +2020-06-20,Wilson,Texas,48493,69,5 +2020-06-21,Wilson,Texas,48493,72,5 +2020-06-22,Wilson,Texas,48493,72,5 +2020-06-23,Wilson,Texas,48493,76,5 +2020-06-24,Wilson,Texas,48493,80,5 +2020-06-25,Wilson,Texas,48493,83,5 +2020-06-26,Wilson,Texas,48493,83,5 +2020-06-27,Wilson,Texas,48493,88,5 +2020-06-28,Wilson,Texas,48493,86,5 +2020-06-29,Wilson,Texas,48493,86,5 +2020-06-30,Wilson,Texas,48493,98,5 +2020-07-01,Wilson,Texas,48493,101,5 +2020-07-02,Wilson,Texas,48493,111,5 +2020-07-03,Wilson,Texas,48493,113,5 +2020-07-04,Wilson,Texas,48493,132,5 +2020-07-05,Wilson,Texas,48493,132,5 +2020-07-06,Wilson,Texas,48493,132,5 +2020-07-07,Wilson,Texas,48493,144,5 +2020-07-08,Wilson,Texas,48493,146,5 +2020-07-09,Wilson,Texas,48493,166,5 +2020-04-10,Winkler,Texas,48495,1,0 +2020-04-11,Winkler,Texas,48495,1,0 +2020-04-12,Winkler,Texas,48495,1,0 +2020-04-13,Winkler,Texas,48495,1,0 +2020-04-14,Winkler,Texas,48495,1,0 +2020-04-15,Winkler,Texas,48495,2,0 +2020-04-16,Winkler,Texas,48495,2,0 +2020-04-17,Winkler,Texas,48495,3,0 +2020-04-18,Winkler,Texas,48495,3,0 +2020-04-19,Winkler,Texas,48495,3,0 +2020-04-20,Winkler,Texas,48495,3,0 +2020-04-21,Winkler,Texas,48495,3,0 +2020-04-22,Winkler,Texas,48495,3,0 +2020-04-23,Winkler,Texas,48495,3,0 +2020-04-24,Winkler,Texas,48495,3,0 +2020-04-25,Winkler,Texas,48495,3,0 +2020-04-26,Winkler,Texas,48495,3,0 +2020-04-27,Winkler,Texas,48495,3,0 +2020-04-28,Winkler,Texas,48495,3,0 +2020-04-29,Winkler,Texas,48495,3,0 +2020-04-30,Winkler,Texas,48495,3,0 +2020-05-01,Winkler,Texas,48495,3,0 +2020-05-02,Winkler,Texas,48495,3,0 +2020-05-03,Winkler,Texas,48495,3,0 +2020-05-04,Winkler,Texas,48495,3,0 +2020-05-05,Winkler,Texas,48495,3,0 +2020-05-06,Winkler,Texas,48495,3,0 +2020-05-07,Winkler,Texas,48495,3,0 +2020-05-08,Winkler,Texas,48495,3,0 +2020-05-09,Winkler,Texas,48495,3,0 +2020-05-10,Winkler,Texas,48495,3,0 +2020-05-11,Winkler,Texas,48495,3,0 +2020-05-12,Winkler,Texas,48495,3,0 +2020-05-13,Winkler,Texas,48495,3,0 +2020-05-14,Winkler,Texas,48495,3,0 +2020-05-15,Winkler,Texas,48495,3,0 +2020-05-16,Winkler,Texas,48495,3,0 +2020-05-17,Winkler,Texas,48495,3,0 +2020-05-18,Winkler,Texas,48495,3,0 +2020-05-19,Winkler,Texas,48495,3,0 +2020-05-20,Winkler,Texas,48495,3,0 +2020-05-21,Winkler,Texas,48495,3,0 +2020-05-22,Winkler,Texas,48495,3,0 +2020-05-23,Winkler,Texas,48495,3,0 +2020-05-24,Winkler,Texas,48495,3,0 +2020-05-25,Winkler,Texas,48495,3,0 +2020-05-26,Winkler,Texas,48495,3,0 +2020-05-27,Winkler,Texas,48495,3,0 +2020-05-28,Winkler,Texas,48495,3,0 +2020-05-29,Winkler,Texas,48495,3,0 +2020-05-30,Winkler,Texas,48495,3,0 +2020-05-31,Winkler,Texas,48495,3,0 +2020-06-01,Winkler,Texas,48495,3,0 +2020-06-02,Winkler,Texas,48495,3,0 +2020-06-03,Winkler,Texas,48495,3,0 +2020-06-04,Winkler,Texas,48495,3,0 +2020-06-05,Winkler,Texas,48495,3,0 +2020-06-06,Winkler,Texas,48495,3,0 +2020-06-07,Winkler,Texas,48495,3,0 +2020-06-08,Winkler,Texas,48495,3,0 +2020-06-09,Winkler,Texas,48495,3,0 +2020-06-10,Winkler,Texas,48495,3,0 +2020-06-11,Winkler,Texas,48495,3,0 +2020-06-12,Winkler,Texas,48495,4,0 +2020-06-13,Winkler,Texas,48495,4,0 +2020-06-14,Winkler,Texas,48495,4,0 +2020-06-15,Winkler,Texas,48495,4,0 +2020-06-16,Winkler,Texas,48495,4,0 +2020-06-17,Winkler,Texas,48495,4,0 +2020-06-18,Winkler,Texas,48495,5,0 +2020-06-19,Winkler,Texas,48495,6,0 +2020-06-20,Winkler,Texas,48495,6,0 +2020-06-21,Winkler,Texas,48495,6,0 +2020-06-22,Winkler,Texas,48495,6,0 +2020-06-23,Winkler,Texas,48495,6,0 +2020-06-24,Winkler,Texas,48495,8,0 +2020-06-25,Winkler,Texas,48495,10,0 +2020-06-26,Winkler,Texas,48495,12,0 +2020-06-27,Winkler,Texas,48495,14,0 +2020-06-28,Winkler,Texas,48495,14,0 +2020-06-29,Winkler,Texas,48495,16,0 +2020-06-30,Winkler,Texas,48495,21,0 +2020-07-01,Winkler,Texas,48495,24,0 +2020-07-02,Winkler,Texas,48495,26,0 +2020-07-03,Winkler,Texas,48495,26,0 +2020-07-04,Winkler,Texas,48495,29,0 +2020-07-05,Winkler,Texas,48495,29,0 +2020-07-06,Winkler,Texas,48495,29,0 +2020-07-07,Winkler,Texas,48495,37,0 +2020-07-08,Winkler,Texas,48495,38,0 +2020-07-09,Winkler,Texas,48495,40,0 +2020-03-30,Wise,Texas,48497,1,0 +2020-03-31,Wise,Texas,48497,1,0 +2020-04-01,Wise,Texas,48497,3,0 +2020-04-02,Wise,Texas,48497,3,0 +2020-04-03,Wise,Texas,48497,3,0 +2020-04-04,Wise,Texas,48497,3,0 +2020-04-05,Wise,Texas,48497,3,0 +2020-04-06,Wise,Texas,48497,3,0 +2020-04-07,Wise,Texas,48497,3,0 +2020-04-08,Wise,Texas,48497,3,0 +2020-04-09,Wise,Texas,48497,3,0 +2020-04-10,Wise,Texas,48497,4,0 +2020-04-11,Wise,Texas,48497,5,0 +2020-04-12,Wise,Texas,48497,5,0 +2020-04-13,Wise,Texas,48497,5,0 +2020-04-14,Wise,Texas,48497,5,0 +2020-04-15,Wise,Texas,48497,7,0 +2020-04-16,Wise,Texas,48497,7,1 +2020-04-17,Wise,Texas,48497,8,2 +2020-04-18,Wise,Texas,48497,9,2 +2020-04-19,Wise,Texas,48497,9,2 +2020-04-20,Wise,Texas,48497,9,2 +2020-04-21,Wise,Texas,48497,12,2 +2020-04-22,Wise,Texas,48497,13,2 +2020-04-23,Wise,Texas,48497,14,2 +2020-04-24,Wise,Texas,48497,14,2 +2020-04-25,Wise,Texas,48497,15,2 +2020-04-26,Wise,Texas,48497,15,2 +2020-04-27,Wise,Texas,48497,15,2 +2020-04-28,Wise,Texas,48497,15,2 +2020-04-29,Wise,Texas,48497,17,2 +2020-04-30,Wise,Texas,48497,17,2 +2020-05-01,Wise,Texas,48497,17,2 +2020-05-02,Wise,Texas,48497,24,2 +2020-05-03,Wise,Texas,48497,24,2 +2020-05-04,Wise,Texas,48497,26,2 +2020-05-05,Wise,Texas,48497,27,2 +2020-05-06,Wise,Texas,48497,28,2 +2020-05-07,Wise,Texas,48497,28,2 +2020-05-08,Wise,Texas,48497,28,2 +2020-05-09,Wise,Texas,48497,30,2 +2020-05-10,Wise,Texas,48497,30,2 +2020-05-11,Wise,Texas,48497,30,2 +2020-05-12,Wise,Texas,48497,31,2 +2020-05-13,Wise,Texas,48497,35,2 +2020-05-14,Wise,Texas,48497,36,2 +2020-05-15,Wise,Texas,48497,36,2 +2020-05-16,Wise,Texas,48497,36,2 +2020-05-17,Wise,Texas,48497,36,2 +2020-05-18,Wise,Texas,48497,36,2 +2020-05-19,Wise,Texas,48497,38,2 +2020-05-20,Wise,Texas,48497,38,2 +2020-05-21,Wise,Texas,48497,42,2 +2020-05-22,Wise,Texas,48497,42,2 +2020-05-23,Wise,Texas,48497,42,3 +2020-05-24,Wise,Texas,48497,42,3 +2020-05-25,Wise,Texas,48497,42,3 +2020-05-26,Wise,Texas,48497,45,3 +2020-05-27,Wise,Texas,48497,45,3 +2020-05-28,Wise,Texas,48497,45,3 +2020-05-29,Wise,Texas,48497,45,3 +2020-05-30,Wise,Texas,48497,46,3 +2020-05-31,Wise,Texas,48497,46,3 +2020-06-01,Wise,Texas,48497,46,3 +2020-06-02,Wise,Texas,48497,47,3 +2020-06-03,Wise,Texas,48497,47,3 +2020-06-04,Wise,Texas,48497,50,3 +2020-06-05,Wise,Texas,48497,52,4 +2020-06-06,Wise,Texas,48497,52,4 +2020-06-07,Wise,Texas,48497,52,4 +2020-06-08,Wise,Texas,48497,52,4 +2020-06-09,Wise,Texas,48497,53,4 +2020-06-10,Wise,Texas,48497,55,5 +2020-06-11,Wise,Texas,48497,55,5 +2020-06-12,Wise,Texas,48497,55,5 +2020-06-13,Wise,Texas,48497,56,5 +2020-06-14,Wise,Texas,48497,56,5 +2020-06-15,Wise,Texas,48497,56,5 +2020-06-16,Wise,Texas,48497,56,5 +2020-06-17,Wise,Texas,48497,58,5 +2020-06-18,Wise,Texas,48497,62,5 +2020-06-19,Wise,Texas,48497,62,5 +2020-06-20,Wise,Texas,48497,62,5 +2020-06-21,Wise,Texas,48497,62,5 +2020-06-22,Wise,Texas,48497,62,5 +2020-06-23,Wise,Texas,48497,63,5 +2020-06-24,Wise,Texas,48497,88,5 +2020-06-25,Wise,Texas,48497,88,5 +2020-06-26,Wise,Texas,48497,88,5 +2020-06-27,Wise,Texas,48497,90,5 +2020-06-28,Wise,Texas,48497,90,5 +2020-06-29,Wise,Texas,48497,90,5 +2020-06-30,Wise,Texas,48497,104,5 +2020-07-01,Wise,Texas,48497,107,5 +2020-07-02,Wise,Texas,48497,116,5 +2020-07-03,Wise,Texas,48497,125,5 +2020-07-04,Wise,Texas,48497,135,5 +2020-07-05,Wise,Texas,48497,135,5 +2020-07-06,Wise,Texas,48497,135,5 +2020-07-07,Wise,Texas,48497,149,5 +2020-07-08,Wise,Texas,48497,157,5 +2020-07-09,Wise,Texas,48497,164,5 +2020-04-01,Wood,Texas,48499,1,0 +2020-04-02,Wood,Texas,48499,1,0 +2020-04-03,Wood,Texas,48499,1,0 +2020-04-04,Wood,Texas,48499,1,0 +2020-04-05,Wood,Texas,48499,2,0 +2020-04-06,Wood,Texas,48499,2,0 +2020-04-07,Wood,Texas,48499,4,0 +2020-04-08,Wood,Texas,48499,4,0 +2020-04-09,Wood,Texas,48499,4,0 +2020-04-10,Wood,Texas,48499,5,0 +2020-04-11,Wood,Texas,48499,5,0 +2020-04-12,Wood,Texas,48499,5,0 +2020-04-13,Wood,Texas,48499,5,0 +2020-04-14,Wood,Texas,48499,6,0 +2020-04-15,Wood,Texas,48499,6,0 +2020-04-16,Wood,Texas,48499,6,0 +2020-04-17,Wood,Texas,48499,6,0 +2020-04-18,Wood,Texas,48499,6,0 +2020-04-19,Wood,Texas,48499,6,0 +2020-04-20,Wood,Texas,48499,6,0 +2020-04-21,Wood,Texas,48499,6,0 +2020-04-22,Wood,Texas,48499,6,0 +2020-04-23,Wood,Texas,48499,6,0 +2020-04-24,Wood,Texas,48499,7,0 +2020-04-25,Wood,Texas,48499,7,0 +2020-04-26,Wood,Texas,48499,7,0 +2020-04-27,Wood,Texas,48499,7,0 +2020-04-28,Wood,Texas,48499,7,0 +2020-04-29,Wood,Texas,48499,7,0 +2020-04-30,Wood,Texas,48499,8,0 +2020-05-01,Wood,Texas,48499,9,0 +2020-05-02,Wood,Texas,48499,10,0 +2020-05-03,Wood,Texas,48499,10,0 +2020-05-04,Wood,Texas,48499,10,0 +2020-05-05,Wood,Texas,48499,11,0 +2020-05-06,Wood,Texas,48499,11,0 +2020-05-07,Wood,Texas,48499,11,0 +2020-05-08,Wood,Texas,48499,13,0 +2020-05-09,Wood,Texas,48499,13,0 +2020-05-10,Wood,Texas,48499,14,0 +2020-05-11,Wood,Texas,48499,14,0 +2020-05-12,Wood,Texas,48499,15,0 +2020-05-13,Wood,Texas,48499,15,0 +2020-05-14,Wood,Texas,48499,15,0 +2020-05-15,Wood,Texas,48499,17,0 +2020-05-16,Wood,Texas,48499,18,0 +2020-05-17,Wood,Texas,48499,18,0 +2020-05-18,Wood,Texas,48499,18,0 +2020-05-19,Wood,Texas,48499,22,0 +2020-05-20,Wood,Texas,48499,22,1 +2020-05-21,Wood,Texas,48499,22,1 +2020-05-22,Wood,Texas,48499,22,1 +2020-05-23,Wood,Texas,48499,23,1 +2020-05-24,Wood,Texas,48499,23,1 +2020-05-25,Wood,Texas,48499,23,1 +2020-05-26,Wood,Texas,48499,23,1 +2020-05-27,Wood,Texas,48499,25,1 +2020-05-28,Wood,Texas,48499,26,1 +2020-05-29,Wood,Texas,48499,27,1 +2020-05-30,Wood,Texas,48499,29,1 +2020-05-31,Wood,Texas,48499,29,1 +2020-06-01,Wood,Texas,48499,29,1 +2020-06-02,Wood,Texas,48499,33,3 +2020-06-03,Wood,Texas,48499,38,3 +2020-06-04,Wood,Texas,48499,40,4 +2020-06-05,Wood,Texas,48499,40,4 +2020-06-06,Wood,Texas,48499,49,4 +2020-06-07,Wood,Texas,48499,49,4 +2020-06-08,Wood,Texas,48499,49,4 +2020-06-09,Wood,Texas,48499,51,4 +2020-06-10,Wood,Texas,48499,51,4 +2020-06-11,Wood,Texas,48499,51,5 +2020-06-12,Wood,Texas,48499,51,5 +2020-06-13,Wood,Texas,48499,53,5 +2020-06-14,Wood,Texas,48499,53,5 +2020-06-15,Wood,Texas,48499,53,5 +2020-06-16,Wood,Texas,48499,56,5 +2020-06-17,Wood,Texas,48499,62,5 +2020-06-18,Wood,Texas,48499,66,5 +2020-06-19,Wood,Texas,48499,70,5 +2020-06-20,Wood,Texas,48499,71,5 +2020-06-21,Wood,Texas,48499,71,5 +2020-06-22,Wood,Texas,48499,71,5 +2020-06-23,Wood,Texas,48499,76,5 +2020-06-24,Wood,Texas,48499,77,5 +2020-06-25,Wood,Texas,48499,77,5 +2020-06-26,Wood,Texas,48499,78,5 +2020-06-27,Wood,Texas,48499,78,5 +2020-06-28,Wood,Texas,48499,80,5 +2020-06-29,Wood,Texas,48499,80,5 +2020-06-30,Wood,Texas,48499,82,5 +2020-07-01,Wood,Texas,48499,92,5 +2020-07-02,Wood,Texas,48499,92,5 +2020-07-03,Wood,Texas,48499,94,5 +2020-07-04,Wood,Texas,48499,94,5 +2020-07-05,Wood,Texas,48499,98,5 +2020-07-06,Wood,Texas,48499,98,5 +2020-07-07,Wood,Texas,48499,107,5 +2020-07-08,Wood,Texas,48499,115,5 +2020-07-09,Wood,Texas,48499,118,5 +2020-04-18,Yoakum,Texas,48501,1,0 +2020-04-19,Yoakum,Texas,48501,1,0 +2020-04-20,Yoakum,Texas,48501,1,0 +2020-04-21,Yoakum,Texas,48501,1,0 +2020-04-22,Yoakum,Texas,48501,1,0 +2020-04-23,Yoakum,Texas,48501,1,0 +2020-04-24,Yoakum,Texas,48501,1,0 +2020-04-25,Yoakum,Texas,48501,1,0 +2020-04-26,Yoakum,Texas,48501,1,0 +2020-04-27,Yoakum,Texas,48501,1,0 +2020-04-28,Yoakum,Texas,48501,1,0 +2020-04-29,Yoakum,Texas,48501,1,0 +2020-04-30,Yoakum,Texas,48501,1,0 +2020-05-01,Yoakum,Texas,48501,1,0 +2020-05-02,Yoakum,Texas,48501,1,0 +2020-05-03,Yoakum,Texas,48501,1,0 +2020-05-04,Yoakum,Texas,48501,1,0 +2020-05-05,Yoakum,Texas,48501,2,0 +2020-05-06,Yoakum,Texas,48501,2,0 +2020-05-07,Yoakum,Texas,48501,2,0 +2020-05-08,Yoakum,Texas,48501,2,0 +2020-05-09,Yoakum,Texas,48501,2,0 +2020-05-10,Yoakum,Texas,48501,2,0 +2020-05-11,Yoakum,Texas,48501,2,0 +2020-05-12,Yoakum,Texas,48501,2,0 +2020-05-13,Yoakum,Texas,48501,2,0 +2020-05-14,Yoakum,Texas,48501,2,0 +2020-05-15,Yoakum,Texas,48501,2,0 +2020-05-16,Yoakum,Texas,48501,2,0 +2020-05-17,Yoakum,Texas,48501,2,0 +2020-05-18,Yoakum,Texas,48501,2,0 +2020-05-19,Yoakum,Texas,48501,2,0 +2020-05-20,Yoakum,Texas,48501,3,0 +2020-05-21,Yoakum,Texas,48501,3,0 +2020-05-22,Yoakum,Texas,48501,3,0 +2020-05-23,Yoakum,Texas,48501,3,0 +2020-05-24,Yoakum,Texas,48501,3,0 +2020-05-25,Yoakum,Texas,48501,3,0 +2020-05-26,Yoakum,Texas,48501,3,0 +2020-05-27,Yoakum,Texas,48501,3,0 +2020-05-28,Yoakum,Texas,48501,3,0 +2020-05-29,Yoakum,Texas,48501,3,0 +2020-05-30,Yoakum,Texas,48501,3,0 +2020-05-31,Yoakum,Texas,48501,3,0 +2020-06-01,Yoakum,Texas,48501,3,0 +2020-06-02,Yoakum,Texas,48501,3,0 +2020-06-03,Yoakum,Texas,48501,3,0 +2020-06-04,Yoakum,Texas,48501,3,0 +2020-06-05,Yoakum,Texas,48501,3,0 +2020-06-06,Yoakum,Texas,48501,3,0 +2020-06-07,Yoakum,Texas,48501,3,0 +2020-06-08,Yoakum,Texas,48501,3,0 +2020-06-09,Yoakum,Texas,48501,5,0 +2020-06-10,Yoakum,Texas,48501,8,0 +2020-06-11,Yoakum,Texas,48501,8,0 +2020-06-12,Yoakum,Texas,48501,8,0 +2020-06-13,Yoakum,Texas,48501,9,0 +2020-06-14,Yoakum,Texas,48501,9,0 +2020-06-15,Yoakum,Texas,48501,9,0 +2020-06-16,Yoakum,Texas,48501,10,0 +2020-06-17,Yoakum,Texas,48501,10,0 +2020-06-18,Yoakum,Texas,48501,11,0 +2020-06-19,Yoakum,Texas,48501,11,0 +2020-06-20,Yoakum,Texas,48501,13,0 +2020-06-21,Yoakum,Texas,48501,13,0 +2020-06-22,Yoakum,Texas,48501,13,0 +2020-06-23,Yoakum,Texas,48501,15,0 +2020-06-24,Yoakum,Texas,48501,15,0 +2020-06-25,Yoakum,Texas,48501,19,0 +2020-06-26,Yoakum,Texas,48501,21,0 +2020-06-27,Yoakum,Texas,48501,21,0 +2020-06-28,Yoakum,Texas,48501,21,0 +2020-06-29,Yoakum,Texas,48501,21,0 +2020-06-30,Yoakum,Texas,48501,24,0 +2020-07-01,Yoakum,Texas,48501,24,0 +2020-07-02,Yoakum,Texas,48501,30,0 +2020-07-03,Yoakum,Texas,48501,30,0 +2020-07-04,Yoakum,Texas,48501,38,0 +2020-07-05,Yoakum,Texas,48501,38,0 +2020-07-06,Yoakum,Texas,48501,38,0 +2020-07-07,Yoakum,Texas,48501,39,0 +2020-07-08,Yoakum,Texas,48501,40,0 +2020-07-09,Yoakum,Texas,48501,40,0 +2020-03-27,Young,Texas,48503,1,0 +2020-03-28,Young,Texas,48503,1,0 +2020-03-29,Young,Texas,48503,1,0 +2020-03-30,Young,Texas,48503,1,0 +2020-03-31,Young,Texas,48503,1,0 +2020-04-01,Young,Texas,48503,3,0 +2020-04-02,Young,Texas,48503,3,0 +2020-04-03,Young,Texas,48503,3,0 +2020-04-04,Young,Texas,48503,3,0 +2020-04-05,Young,Texas,48503,3,0 +2020-04-06,Young,Texas,48503,3,0 +2020-04-07,Young,Texas,48503,3,0 +2020-04-08,Young,Texas,48503,3,0 +2020-04-09,Young,Texas,48503,3,0 +2020-04-10,Young,Texas,48503,3,0 +2020-04-11,Young,Texas,48503,3,0 +2020-04-12,Young,Texas,48503,3,0 +2020-04-13,Young,Texas,48503,3,0 +2020-04-14,Young,Texas,48503,3,0 +2020-04-15,Young,Texas,48503,4,1 +2020-04-16,Young,Texas,48503,4,1 +2020-04-17,Young,Texas,48503,4,1 +2020-04-18,Young,Texas,48503,4,1 +2020-04-19,Young,Texas,48503,4,1 +2020-04-20,Young,Texas,48503,4,1 +2020-04-21,Young,Texas,48503,4,1 +2020-04-22,Young,Texas,48503,4,1 +2020-04-23,Young,Texas,48503,4,1 +2020-04-24,Young,Texas,48503,4,1 +2020-04-25,Young,Texas,48503,4,1 +2020-04-26,Young,Texas,48503,4,1 +2020-04-27,Young,Texas,48503,4,1 +2020-04-28,Young,Texas,48503,4,1 +2020-04-29,Young,Texas,48503,4,1 +2020-04-30,Young,Texas,48503,4,1 +2020-05-01,Young,Texas,48503,4,1 +2020-05-02,Young,Texas,48503,4,1 +2020-05-03,Young,Texas,48503,4,1 +2020-05-04,Young,Texas,48503,4,1 +2020-05-05,Young,Texas,48503,4,1 +2020-05-06,Young,Texas,48503,4,1 +2020-05-07,Young,Texas,48503,4,1 +2020-05-08,Young,Texas,48503,4,1 +2020-05-09,Young,Texas,48503,4,1 +2020-05-10,Young,Texas,48503,4,1 +2020-05-11,Young,Texas,48503,4,1 +2020-05-12,Young,Texas,48503,4,1 +2020-05-13,Young,Texas,48503,4,1 +2020-05-14,Young,Texas,48503,4,1 +2020-05-15,Young,Texas,48503,4,1 +2020-05-16,Young,Texas,48503,4,1 +2020-05-17,Young,Texas,48503,4,1 +2020-05-18,Young,Texas,48503,4,1 +2020-05-19,Young,Texas,48503,4,1 +2020-05-20,Young,Texas,48503,4,1 +2020-05-21,Young,Texas,48503,4,1 +2020-05-22,Young,Texas,48503,4,1 +2020-05-23,Young,Texas,48503,4,1 +2020-05-24,Young,Texas,48503,4,1 +2020-05-25,Young,Texas,48503,4,1 +2020-05-26,Young,Texas,48503,4,1 +2020-05-27,Young,Texas,48503,4,1 +2020-05-28,Young,Texas,48503,4,1 +2020-05-29,Young,Texas,48503,4,1 +2020-05-30,Young,Texas,48503,4,1 +2020-05-31,Young,Texas,48503,4,1 +2020-06-01,Young,Texas,48503,4,1 +2020-06-02,Young,Texas,48503,4,1 +2020-06-03,Young,Texas,48503,4,1 +2020-06-04,Young,Texas,48503,4,1 +2020-06-05,Young,Texas,48503,6,1 +2020-06-06,Young,Texas,48503,6,1 +2020-06-07,Young,Texas,48503,6,1 +2020-06-08,Young,Texas,48503,6,1 +2020-06-09,Young,Texas,48503,6,1 +2020-06-10,Young,Texas,48503,11,1 +2020-06-11,Young,Texas,48503,13,1 +2020-06-12,Young,Texas,48503,14,1 +2020-06-13,Young,Texas,48503,15,1 +2020-06-14,Young,Texas,48503,15,1 +2020-06-15,Young,Texas,48503,15,1 +2020-06-16,Young,Texas,48503,15,1 +2020-06-17,Young,Texas,48503,15,1 +2020-06-18,Young,Texas,48503,15,1 +2020-06-19,Young,Texas,48503,16,1 +2020-06-20,Young,Texas,48503,16,1 +2020-06-21,Young,Texas,48503,16,1 +2020-06-22,Young,Texas,48503,16,1 +2020-06-23,Young,Texas,48503,17,1 +2020-06-24,Young,Texas,48503,22,1 +2020-06-25,Young,Texas,48503,22,1 +2020-06-26,Young,Texas,48503,22,1 +2020-06-27,Young,Texas,48503,22,1 +2020-06-28,Young,Texas,48503,22,1 +2020-06-29,Young,Texas,48503,22,1 +2020-06-30,Young,Texas,48503,24,1 +2020-07-01,Young,Texas,48503,25,1 +2020-07-02,Young,Texas,48503,30,1 +2020-07-03,Young,Texas,48503,33,1 +2020-07-04,Young,Texas,48503,34,1 +2020-07-05,Young,Texas,48503,34,1 +2020-07-06,Young,Texas,48503,34,1 +2020-07-07,Young,Texas,48503,34,1 +2020-07-08,Young,Texas,48503,38,1 +2020-07-09,Young,Texas,48503,42,1 +2020-04-06,Zapata,Texas,48505,1,0 +2020-04-07,Zapata,Texas,48505,1,0 +2020-04-08,Zapata,Texas,48505,1,0 +2020-04-09,Zapata,Texas,48505,1,0 +2020-04-10,Zapata,Texas,48505,3,0 +2020-04-11,Zapata,Texas,48505,3,0 +2020-04-12,Zapata,Texas,48505,3,0 +2020-04-13,Zapata,Texas,48505,3,0 +2020-04-14,Zapata,Texas,48505,3,0 +2020-04-15,Zapata,Texas,48505,4,0 +2020-04-16,Zapata,Texas,48505,4,0 +2020-04-17,Zapata,Texas,48505,6,0 +2020-04-18,Zapata,Texas,48505,6,0 +2020-04-19,Zapata,Texas,48505,6,0 +2020-04-20,Zapata,Texas,48505,6,0 +2020-04-21,Zapata,Texas,48505,6,0 +2020-04-22,Zapata,Texas,48505,7,0 +2020-04-23,Zapata,Texas,48505,7,0 +2020-04-24,Zapata,Texas,48505,7,0 +2020-04-25,Zapata,Texas,48505,7,0 +2020-04-26,Zapata,Texas,48505,7,0 +2020-04-27,Zapata,Texas,48505,7,0 +2020-04-28,Zapata,Texas,48505,7,0 +2020-04-29,Zapata,Texas,48505,7,0 +2020-04-30,Zapata,Texas,48505,7,0 +2020-05-01,Zapata,Texas,48505,7,0 +2020-05-02,Zapata,Texas,48505,7,0 +2020-05-03,Zapata,Texas,48505,7,0 +2020-05-04,Zapata,Texas,48505,7,0 +2020-05-05,Zapata,Texas,48505,7,0 +2020-05-06,Zapata,Texas,48505,7,0 +2020-05-07,Zapata,Texas,48505,7,0 +2020-05-08,Zapata,Texas,48505,7,0 +2020-05-09,Zapata,Texas,48505,7,0 +2020-05-10,Zapata,Texas,48505,7,0 +2020-05-11,Zapata,Texas,48505,7,0 +2020-05-12,Zapata,Texas,48505,7,0 +2020-05-13,Zapata,Texas,48505,7,0 +2020-05-14,Zapata,Texas,48505,7,0 +2020-05-15,Zapata,Texas,48505,7,0 +2020-05-16,Zapata,Texas,48505,7,0 +2020-05-17,Zapata,Texas,48505,7,0 +2020-05-18,Zapata,Texas,48505,7,0 +2020-05-19,Zapata,Texas,48505,7,0 +2020-05-20,Zapata,Texas,48505,8,0 +2020-05-21,Zapata,Texas,48505,8,0 +2020-05-22,Zapata,Texas,48505,8,0 +2020-05-23,Zapata,Texas,48505,8,0 +2020-05-24,Zapata,Texas,48505,8,0 +2020-05-25,Zapata,Texas,48505,8,0 +2020-05-26,Zapata,Texas,48505,8,0 +2020-05-27,Zapata,Texas,48505,8,0 +2020-05-28,Zapata,Texas,48505,8,0 +2020-05-29,Zapata,Texas,48505,8,0 +2020-05-30,Zapata,Texas,48505,9,0 +2020-05-31,Zapata,Texas,48505,9,0 +2020-06-01,Zapata,Texas,48505,9,0 +2020-06-02,Zapata,Texas,48505,10,0 +2020-06-03,Zapata,Texas,48505,11,0 +2020-06-04,Zapata,Texas,48505,11,0 +2020-06-05,Zapata,Texas,48505,11,0 +2020-06-06,Zapata,Texas,48505,11,0 +2020-06-07,Zapata,Texas,48505,12,0 +2020-06-08,Zapata,Texas,48505,12,0 +2020-06-09,Zapata,Texas,48505,12,0 +2020-06-10,Zapata,Texas,48505,12,0 +2020-06-11,Zapata,Texas,48505,12,0 +2020-06-12,Zapata,Texas,48505,14,0 +2020-06-13,Zapata,Texas,48505,14,0 +2020-06-14,Zapata,Texas,48505,15,0 +2020-06-15,Zapata,Texas,48505,15,0 +2020-06-16,Zapata,Texas,48505,23,0 +2020-06-17,Zapata,Texas,48505,24,0 +2020-06-18,Zapata,Texas,48505,31,0 +2020-06-19,Zapata,Texas,48505,31,0 +2020-06-20,Zapata,Texas,48505,32,0 +2020-06-21,Zapata,Texas,48505,33,0 +2020-06-22,Zapata,Texas,48505,33,0 +2020-06-23,Zapata,Texas,48505,40,0 +2020-06-24,Zapata,Texas,48505,40,0 +2020-06-25,Zapata,Texas,48505,41,0 +2020-06-26,Zapata,Texas,48505,42,0 +2020-06-27,Zapata,Texas,48505,44,0 +2020-06-28,Zapata,Texas,48505,45,0 +2020-06-29,Zapata,Texas,48505,45,0 +2020-06-30,Zapata,Texas,48505,47,0 +2020-07-01,Zapata,Texas,48505,52,0 +2020-07-02,Zapata,Texas,48505,55,0 +2020-07-03,Zapata,Texas,48505,55,0 +2020-07-04,Zapata,Texas,48505,56,0 +2020-07-05,Zapata,Texas,48505,56,0 +2020-07-06,Zapata,Texas,48505,58,0 +2020-07-07,Zapata,Texas,48505,62,0 +2020-07-08,Zapata,Texas,48505,63,0 +2020-07-09,Zapata,Texas,48505,64,0 +2020-04-17,Zavala,Texas,48507,1,0 +2020-04-18,Zavala,Texas,48507,1,0 +2020-04-19,Zavala,Texas,48507,1,0 +2020-04-20,Zavala,Texas,48507,1,0 +2020-04-21,Zavala,Texas,48507,1,0 +2020-04-22,Zavala,Texas,48507,1,0 +2020-04-23,Zavala,Texas,48507,1,0 +2020-04-24,Zavala,Texas,48507,1,0 +2020-04-25,Zavala,Texas,48507,1,0 +2020-04-26,Zavala,Texas,48507,1,0 +2020-04-27,Zavala,Texas,48507,1,0 +2020-04-28,Zavala,Texas,48507,1,0 +2020-04-29,Zavala,Texas,48507,1,0 +2020-04-30,Zavala,Texas,48507,1,0 +2020-05-01,Zavala,Texas,48507,1,0 +2020-05-02,Zavala,Texas,48507,1,0 +2020-05-03,Zavala,Texas,48507,1,0 +2020-05-04,Zavala,Texas,48507,1,0 +2020-05-05,Zavala,Texas,48507,1,0 +2020-05-06,Zavala,Texas,48507,1,0 +2020-05-07,Zavala,Texas,48507,1,0 +2020-05-08,Zavala,Texas,48507,1,0 +2020-05-09,Zavala,Texas,48507,2,0 +2020-05-10,Zavala,Texas,48507,2,0 +2020-05-11,Zavala,Texas,48507,2,0 +2020-05-12,Zavala,Texas,48507,7,0 +2020-05-13,Zavala,Texas,48507,9,0 +2020-05-14,Zavala,Texas,48507,9,0 +2020-05-15,Zavala,Texas,48507,9,0 +2020-05-16,Zavala,Texas,48507,9,0 +2020-05-17,Zavala,Texas,48507,9,0 +2020-05-18,Zavala,Texas,48507,9,0 +2020-05-19,Zavala,Texas,48507,9,0 +2020-05-20,Zavala,Texas,48507,10,0 +2020-05-21,Zavala,Texas,48507,11,0 +2020-05-22,Zavala,Texas,48507,11,0 +2020-05-23,Zavala,Texas,48507,11,0 +2020-05-24,Zavala,Texas,48507,11,0 +2020-05-25,Zavala,Texas,48507,11,0 +2020-05-26,Zavala,Texas,48507,11,0 +2020-05-27,Zavala,Texas,48507,11,0 +2020-05-28,Zavala,Texas,48507,11,0 +2020-05-29,Zavala,Texas,48507,11,0 +2020-05-30,Zavala,Texas,48507,11,0 +2020-05-31,Zavala,Texas,48507,11,0 +2020-06-01,Zavala,Texas,48507,11,0 +2020-06-02,Zavala,Texas,48507,12,0 +2020-06-03,Zavala,Texas,48507,12,0 +2020-06-04,Zavala,Texas,48507,12,0 +2020-06-05,Zavala,Texas,48507,12,0 +2020-06-06,Zavala,Texas,48507,12,0 +2020-06-07,Zavala,Texas,48507,12,0 +2020-06-08,Zavala,Texas,48507,12,0 +2020-06-09,Zavala,Texas,48507,12,0 +2020-06-10,Zavala,Texas,48507,12,0 +2020-06-11,Zavala,Texas,48507,12,0 +2020-06-12,Zavala,Texas,48507,12,0 +2020-06-13,Zavala,Texas,48507,13,0 +2020-06-14,Zavala,Texas,48507,13,0 +2020-06-15,Zavala,Texas,48507,13,0 +2020-06-16,Zavala,Texas,48507,13,0 +2020-06-17,Zavala,Texas,48507,13,0 +2020-06-18,Zavala,Texas,48507,13,0 +2020-06-19,Zavala,Texas,48507,13,0 +2020-06-20,Zavala,Texas,48507,13,0 +2020-06-21,Zavala,Texas,48507,13,0 +2020-06-22,Zavala,Texas,48507,13,0 +2020-06-23,Zavala,Texas,48507,14,0 +2020-06-24,Zavala,Texas,48507,16,0 +2020-06-25,Zavala,Texas,48507,17,0 +2020-06-26,Zavala,Texas,48507,18,0 +2020-06-27,Zavala,Texas,48507,19,0 +2020-06-28,Zavala,Texas,48507,19,0 +2020-06-29,Zavala,Texas,48507,19,0 +2020-06-30,Zavala,Texas,48507,21,0 +2020-07-01,Zavala,Texas,48507,21,0 +2020-07-02,Zavala,Texas,48507,23,0 +2020-07-03,Zavala,Texas,48507,23,0 +2020-07-04,Zavala,Texas,48507,25,0 +2020-07-05,Zavala,Texas,48507,52,0 +2020-07-06,Zavala,Texas,48507,52,0 +2020-07-07,Zavala,Texas,48507,52,0 +2020-07-08,Zavala,Texas,48507,69,1 +2020-07-09,Zavala,Texas,48507,72,2 +2020-06-15,Beaver,Utah,49001,1,0 +2020-06-16,Beaver,Utah,49001,1,0 +2020-06-17,Beaver,Utah,49001,1,0 +2020-06-18,Beaver,Utah,49001,1,0 +2020-06-19,Beaver,Utah,49001,1,0 +2020-06-20,Beaver,Utah,49001,1,0 +2020-06-21,Beaver,Utah,49001,1,0 +2020-06-22,Beaver,Utah,49001,2,0 +2020-06-23,Beaver,Utah,49001,2,0 +2020-06-24,Beaver,Utah,49001,4,0 +2020-06-25,Beaver,Utah,49001,7,0 +2020-06-26,Beaver,Utah,49001,8,0 +2020-06-27,Beaver,Utah,49001,8,0 +2020-06-28,Beaver,Utah,49001,8,0 +2020-06-29,Beaver,Utah,49001,8,0 +2020-06-30,Beaver,Utah,49001,9,0 +2020-07-01,Beaver,Utah,49001,9,0 +2020-07-02,Beaver,Utah,49001,9,0 +2020-07-03,Beaver,Utah,49001,9,0 +2020-07-04,Beaver,Utah,49001,11,0 +2020-07-05,Beaver,Utah,49001,11,0 +2020-07-06,Beaver,Utah,49001,12,0 +2020-07-07,Beaver,Utah,49001,12,0 +2020-07-08,Beaver,Utah,49001,12,0 +2020-07-09,Beaver,Utah,49001,12,0 +2020-03-18,Box Elder,Utah,49003,1,0 +2020-03-19,Box Elder,Utah,49003,1,0 +2020-03-20,Box Elder,Utah,49003,1,0 +2020-03-21,Box Elder,Utah,49003,1,0 +2020-03-22,Box Elder,Utah,49003,1,0 +2020-03-23,Box Elder,Utah,49003,1,0 +2020-03-24,Box Elder,Utah,49003,1,0 +2020-03-25,Box Elder,Utah,49003,2,0 +2020-03-26,Box Elder,Utah,49003,2,0 +2020-03-27,Box Elder,Utah,49003,2,0 +2020-03-28,Box Elder,Utah,49003,4,0 +2020-03-29,Box Elder,Utah,49003,4,0 +2020-03-30,Box Elder,Utah,49003,7,0 +2020-03-31,Box Elder,Utah,49003,7,0 +2020-04-01,Box Elder,Utah,49003,7,0 +2020-04-02,Box Elder,Utah,49003,9,0 +2020-04-03,Box Elder,Utah,49003,10,0 +2020-04-04,Box Elder,Utah,49003,10,0 +2020-04-05,Box Elder,Utah,49003,10,0 +2020-04-06,Box Elder,Utah,49003,10,0 +2020-04-07,Box Elder,Utah,49003,11,0 +2020-04-08,Box Elder,Utah,49003,13,0 +2020-04-09,Box Elder,Utah,49003,13,0 +2020-04-10,Box Elder,Utah,49003,12,0 +2020-04-11,Box Elder,Utah,49003,12,0 +2020-04-12,Box Elder,Utah,49003,12,0 +2020-04-13,Box Elder,Utah,49003,13,0 +2020-04-14,Box Elder,Utah,49003,13,0 +2020-04-15,Box Elder,Utah,49003,13,0 +2020-04-16,Box Elder,Utah,49003,13,0 +2020-04-17,Box Elder,Utah,49003,16,0 +2020-04-18,Box Elder,Utah,49003,16,0 +2020-04-19,Box Elder,Utah,49003,16,0 +2020-04-20,Box Elder,Utah,49003,17,1 +2020-04-21,Box Elder,Utah,49003,17,1 +2020-04-22,Box Elder,Utah,49003,17,1 +2020-04-23,Box Elder,Utah,49003,17,1 +2020-04-24,Box Elder,Utah,49003,17,1 +2020-04-25,Box Elder,Utah,49003,17,1 +2020-04-26,Box Elder,Utah,49003,17,1 +2020-04-27,Box Elder,Utah,49003,17,1 +2020-04-28,Box Elder,Utah,49003,17,1 +2020-04-29,Box Elder,Utah,49003,17,1 +2020-04-30,Box Elder,Utah,49003,17,1 +2020-05-01,Box Elder,Utah,49003,18,1 +2020-05-02,Box Elder,Utah,49003,18,1 +2020-05-03,Box Elder,Utah,49003,18,1 +2020-05-04,Box Elder,Utah,49003,18,1 +2020-05-05,Box Elder,Utah,49003,18,1 +2020-05-06,Box Elder,Utah,49003,19,1 +2020-05-07,Box Elder,Utah,49003,19,1 +2020-05-08,Box Elder,Utah,49003,19,1 +2020-05-09,Box Elder,Utah,49003,20,1 +2020-05-10,Box Elder,Utah,49003,20,1 +2020-05-11,Box Elder,Utah,49003,21,1 +2020-05-12,Box Elder,Utah,49003,21,1 +2020-05-13,Box Elder,Utah,49003,23,1 +2020-05-14,Box Elder,Utah,49003,24,1 +2020-05-15,Box Elder,Utah,49003,24,1 +2020-05-16,Box Elder,Utah,49003,25,1 +2020-05-17,Box Elder,Utah,49003,25,1 +2020-05-18,Box Elder,Utah,49003,25,1 +2020-05-19,Box Elder,Utah,49003,25,1 +2020-05-20,Box Elder,Utah,49003,25,1 +2020-05-21,Box Elder,Utah,49003,25,1 +2020-05-22,Box Elder,Utah,49003,25,1 +2020-05-23,Box Elder,Utah,49003,25,1 +2020-05-24,Box Elder,Utah,49003,25,1 +2020-05-25,Box Elder,Utah,49003,25,1 +2020-05-26,Box Elder,Utah,49003,26,1 +2020-05-27,Box Elder,Utah,49003,26,1 +2020-05-28,Box Elder,Utah,49003,26,1 +2020-05-29,Box Elder,Utah,49003,26,1 +2020-05-30,Box Elder,Utah,49003,27,1 +2020-05-31,Box Elder,Utah,49003,29,1 +2020-06-01,Box Elder,Utah,49003,29,1 +2020-06-02,Box Elder,Utah,49003,30,1 +2020-06-03,Box Elder,Utah,49003,31,1 +2020-06-04,Box Elder,Utah,49003,34,1 +2020-06-05,Box Elder,Utah,49003,47,1 +2020-06-06,Box Elder,Utah,49003,49,1 +2020-06-07,Box Elder,Utah,49003,51,1 +2020-06-08,Box Elder,Utah,49003,55,1 +2020-06-09,Box Elder,Utah,49003,59,1 +2020-06-10,Box Elder,Utah,49003,61,1 +2020-06-11,Box Elder,Utah,49003,71,1 +2020-06-12,Box Elder,Utah,49003,73,1 +2020-06-13,Box Elder,Utah,49003,77,1 +2020-06-14,Box Elder,Utah,49003,78,1 +2020-06-15,Box Elder,Utah,49003,82,1 +2020-06-16,Box Elder,Utah,49003,82,1 +2020-06-17,Box Elder,Utah,49003,85,1 +2020-06-18,Box Elder,Utah,49003,90,1 +2020-06-19,Box Elder,Utah,49003,97,1 +2020-06-20,Box Elder,Utah,49003,100,1 +2020-06-21,Box Elder,Utah,49003,106,1 +2020-06-22,Box Elder,Utah,49003,111,1 +2020-06-23,Box Elder,Utah,49003,111,1 +2020-06-24,Box Elder,Utah,49003,115,1 +2020-06-25,Box Elder,Utah,49003,117,1 +2020-06-26,Box Elder,Utah,49003,124,1 +2020-06-27,Box Elder,Utah,49003,136,1 +2020-06-28,Box Elder,Utah,49003,138,1 +2020-06-29,Box Elder,Utah,49003,144,1 +2020-06-30,Box Elder,Utah,49003,147,1 +2020-07-01,Box Elder,Utah,49003,150,1 +2020-07-02,Box Elder,Utah,49003,157,1 +2020-07-03,Box Elder,Utah,49003,161,1 +2020-07-04,Box Elder,Utah,49003,170,1 +2020-07-05,Box Elder,Utah,49003,175,1 +2020-07-06,Box Elder,Utah,49003,180,1 +2020-07-07,Box Elder,Utah,49003,190,1 +2020-07-08,Box Elder,Utah,49003,199,1 +2020-07-09,Box Elder,Utah,49003,209,1 +2020-03-18,Cache,Utah,49005,2,0 +2020-03-19,Cache,Utah,49005,2,0 +2020-03-20,Cache,Utah,49005,2,0 +2020-03-21,Cache,Utah,49005,2,0 +2020-03-22,Cache,Utah,49005,2,0 +2020-03-23,Cache,Utah,49005,3,0 +2020-03-24,Cache,Utah,49005,3,0 +2020-03-25,Cache,Utah,49005,4,0 +2020-03-26,Cache,Utah,49005,4,0 +2020-03-27,Cache,Utah,49005,5,0 +2020-03-28,Cache,Utah,49005,5,0 +2020-03-29,Cache,Utah,49005,5,0 +2020-03-30,Cache,Utah,49005,6,0 +2020-03-31,Cache,Utah,49005,7,0 +2020-04-01,Cache,Utah,49005,7,0 +2020-04-02,Cache,Utah,49005,10,0 +2020-04-03,Cache,Utah,49005,15,0 +2020-04-04,Cache,Utah,49005,15,0 +2020-04-05,Cache,Utah,49005,19,0 +2020-04-06,Cache,Utah,49005,20,0 +2020-04-07,Cache,Utah,49005,23,0 +2020-04-08,Cache,Utah,49005,28,0 +2020-04-09,Cache,Utah,49005,29,0 +2020-04-10,Cache,Utah,49005,30,0 +2020-04-11,Cache,Utah,49005,30,0 +2020-04-12,Cache,Utah,49005,33,0 +2020-04-13,Cache,Utah,49005,36,0 +2020-04-14,Cache,Utah,49005,36,0 +2020-04-15,Cache,Utah,49005,36,0 +2020-04-16,Cache,Utah,49005,36,0 +2020-04-17,Cache,Utah,49005,38,0 +2020-04-18,Cache,Utah,49005,40,0 +2020-04-19,Cache,Utah,49005,40,0 +2020-04-20,Cache,Utah,49005,40,0 +2020-04-21,Cache,Utah,49005,40,0 +2020-04-22,Cache,Utah,49005,40,0 +2020-04-23,Cache,Utah,49005,40,0 +2020-04-24,Cache,Utah,49005,41,0 +2020-04-25,Cache,Utah,49005,41,0 +2020-04-26,Cache,Utah,49005,43,0 +2020-04-27,Cache,Utah,49005,43,0 +2020-04-28,Cache,Utah,49005,43,0 +2020-04-29,Cache,Utah,49005,43,0 +2020-04-30,Cache,Utah,49005,43,0 +2020-05-01,Cache,Utah,49005,43,0 +2020-05-02,Cache,Utah,49005,43,0 +2020-05-03,Cache,Utah,49005,44,0 +2020-05-04,Cache,Utah,49005,44,0 +2020-05-05,Cache,Utah,49005,44,0 +2020-05-06,Cache,Utah,49005,45,0 +2020-05-07,Cache,Utah,49005,45,0 +2020-05-08,Cache,Utah,49005,51,0 +2020-05-09,Cache,Utah,49005,51,0 +2020-05-10,Cache,Utah,49005,58,0 +2020-05-11,Cache,Utah,49005,59,0 +2020-05-12,Cache,Utah,49005,59,0 +2020-05-13,Cache,Utah,49005,60,0 +2020-05-14,Cache,Utah,49005,60,0 +2020-05-15,Cache,Utah,49005,61,0 +2020-05-16,Cache,Utah,49005,63,0 +2020-05-17,Cache,Utah,49005,63,0 +2020-05-18,Cache,Utah,49005,64,0 +2020-05-19,Cache,Utah,49005,64,0 +2020-05-20,Cache,Utah,49005,72,0 +2020-05-21,Cache,Utah,49005,72,0 +2020-05-22,Cache,Utah,49005,74,0 +2020-05-23,Cache,Utah,49005,77,0 +2020-05-24,Cache,Utah,49005,77,0 +2020-05-25,Cache,Utah,49005,78,1 +2020-05-26,Cache,Utah,49005,79,1 +2020-05-27,Cache,Utah,49005,89,1 +2020-05-28,Cache,Utah,49005,111,1 +2020-05-29,Cache,Utah,49005,142,1 +2020-05-30,Cache,Utah,49005,179,1 +2020-05-31,Cache,Utah,49005,219,1 +2020-06-01,Cache,Utah,49005,238,1 +2020-06-02,Cache,Utah,49005,268,1 +2020-06-03,Cache,Utah,49005,310,1 +2020-06-04,Cache,Utah,49005,329,1 +2020-06-05,Cache,Utah,49005,514,1 +2020-06-06,Cache,Utah,49005,709,1 +2020-06-07,Cache,Utah,49005,731,1 +2020-06-08,Cache,Utah,49005,773,1 +2020-06-09,Cache,Utah,49005,805,1 +2020-06-10,Cache,Utah,49005,861,1 +2020-06-11,Cache,Utah,49005,913,1 +2020-06-12,Cache,Utah,49005,939,1 +2020-06-13,Cache,Utah,49005,966,1 +2020-06-14,Cache,Utah,49005,982,1 +2020-06-15,Cache,Utah,49005,1020,1 +2020-06-16,Cache,Utah,49005,1060,1 +2020-06-17,Cache,Utah,49005,1087,1 +2020-06-18,Cache,Utah,49005,1136,1 +2020-06-19,Cache,Utah,49005,1205,1 +2020-06-20,Cache,Utah,49005,1245,1 +2020-06-21,Cache,Utah,49005,1283,1 +2020-06-22,Cache,Utah,49005,1301,1 +2020-06-23,Cache,Utah,49005,1317,1 +2020-06-24,Cache,Utah,49005,1328,1 +2020-06-25,Cache,Utah,49005,1357,1 +2020-06-26,Cache,Utah,49005,1389,1 +2020-06-27,Cache,Utah,49005,1400,1 +2020-06-28,Cache,Utah,49005,1426,1 +2020-06-29,Cache,Utah,49005,1445,1 +2020-06-30,Cache,Utah,49005,1453,1 +2020-07-01,Cache,Utah,49005,1470,2 +2020-07-02,Cache,Utah,49005,1477,2 +2020-07-03,Cache,Utah,49005,1499,2 +2020-07-04,Cache,Utah,49005,1521,2 +2020-07-05,Cache,Utah,49005,1532,2 +2020-07-06,Cache,Utah,49005,1540,2 +2020-07-07,Cache,Utah,49005,1557,2 +2020-07-08,Cache,Utah,49005,1571,2 +2020-07-09,Cache,Utah,49005,1582,2 +2020-04-03,Carbon,Utah,49007,1,0 +2020-04-04,Carbon,Utah,49007,1,0 +2020-04-05,Carbon,Utah,49007,1,0 +2020-04-06,Carbon,Utah,49007,1,0 +2020-04-07,Carbon,Utah,49007,1,0 +2020-04-08,Carbon,Utah,49007,2,0 +2020-04-09,Carbon,Utah,49007,2,0 +2020-04-10,Carbon,Utah,49007,2,0 +2020-04-11,Carbon,Utah,49007,2,0 +2020-04-12,Carbon,Utah,49007,2,0 +2020-04-13,Carbon,Utah,49007,2,0 +2020-04-14,Carbon,Utah,49007,2,0 +2020-04-15,Carbon,Utah,49007,2,0 +2020-04-16,Carbon,Utah,49007,2,0 +2020-04-17,Carbon,Utah,49007,2,0 +2020-04-18,Carbon,Utah,49007,3,0 +2020-04-19,Carbon,Utah,49007,3,0 +2020-04-20,Carbon,Utah,49007,4,0 +2020-04-21,Carbon,Utah,49007,4,0 +2020-04-22,Carbon,Utah,49007,4,0 +2020-04-23,Carbon,Utah,49007,5,0 +2020-04-24,Carbon,Utah,49007,5,0 +2020-04-25,Carbon,Utah,49007,7,0 +2020-04-26,Carbon,Utah,49007,7,0 +2020-04-27,Carbon,Utah,49007,7,0 +2020-04-28,Carbon,Utah,49007,7,0 +2020-04-29,Carbon,Utah,49007,7,0 +2020-04-30,Carbon,Utah,49007,7,0 +2020-05-01,Carbon,Utah,49007,7,0 +2020-05-02,Carbon,Utah,49007,7,0 +2020-05-03,Carbon,Utah,49007,7,0 +2020-05-04,Carbon,Utah,49007,7,0 +2020-05-05,Carbon,Utah,49007,7,0 +2020-05-06,Carbon,Utah,49007,7,0 +2020-05-07,Carbon,Utah,49007,7,0 +2020-05-08,Carbon,Utah,49007,7,0 +2020-05-09,Carbon,Utah,49007,7,0 +2020-05-10,Carbon,Utah,49007,7,0 +2020-05-11,Carbon,Utah,49007,7,0 +2020-05-12,Carbon,Utah,49007,7,0 +2020-05-13,Carbon,Utah,49007,7,0 +2020-05-14,Carbon,Utah,49007,7,0 +2020-05-15,Carbon,Utah,49007,8,0 +2020-05-16,Carbon,Utah,49007,7,0 +2020-05-17,Carbon,Utah,49007,7,0 +2020-05-18,Carbon,Utah,49007,8,0 +2020-05-19,Carbon,Utah,49007,8,0 +2020-05-20,Carbon,Utah,49007,8,0 +2020-05-21,Carbon,Utah,49007,8,0 +2020-05-22,Carbon,Utah,49007,8,0 +2020-05-23,Carbon,Utah,49007,8,0 +2020-05-24,Carbon,Utah,49007,8,0 +2020-05-25,Carbon,Utah,49007,8,0 +2020-05-26,Carbon,Utah,49007,11,0 +2020-05-27,Carbon,Utah,49007,11,0 +2020-05-28,Carbon,Utah,49007,11,0 +2020-05-29,Carbon,Utah,49007,11,0 +2020-05-30,Carbon,Utah,49007,11,0 +2020-05-31,Carbon,Utah,49007,11,0 +2020-06-01,Carbon,Utah,49007,11,0 +2020-06-02,Carbon,Utah,49007,11,0 +2020-06-03,Carbon,Utah,49007,11,0 +2020-06-04,Carbon,Utah,49007,11,0 +2020-06-05,Carbon,Utah,49007,11,0 +2020-06-06,Carbon,Utah,49007,11,0 +2020-06-07,Carbon,Utah,49007,11,0 +2020-06-08,Carbon,Utah,49007,13,0 +2020-06-09,Carbon,Utah,49007,13,0 +2020-06-10,Carbon,Utah,49007,13,0 +2020-06-11,Carbon,Utah,49007,13,0 +2020-06-12,Carbon,Utah,49007,13,0 +2020-06-13,Carbon,Utah,49007,13,0 +2020-06-14,Carbon,Utah,49007,13,0 +2020-06-15,Carbon,Utah,49007,13,0 +2020-06-16,Carbon,Utah,49007,13,0 +2020-06-17,Carbon,Utah,49007,13,0 +2020-06-18,Carbon,Utah,49007,14,0 +2020-06-19,Carbon,Utah,49007,14,0 +2020-06-20,Carbon,Utah,49007,14,0 +2020-06-21,Carbon,Utah,49007,14,0 +2020-06-22,Carbon,Utah,49007,14,0 +2020-06-23,Carbon,Utah,49007,14,0 +2020-06-24,Carbon,Utah,49007,14,0 +2020-06-25,Carbon,Utah,49007,14,0 +2020-06-26,Carbon,Utah,49007,14,0 +2020-06-27,Carbon,Utah,49007,14,0 +2020-06-28,Carbon,Utah,49007,14,0 +2020-06-29,Carbon,Utah,49007,15,0 +2020-06-30,Carbon,Utah,49007,15,0 +2020-07-01,Carbon,Utah,49007,15,0 +2020-07-02,Carbon,Utah,49007,15,0 +2020-07-03,Carbon,Utah,49007,15,0 +2020-07-04,Carbon,Utah,49007,15,0 +2020-07-05,Carbon,Utah,49007,15,0 +2020-07-06,Carbon,Utah,49007,15,0 +2020-07-07,Carbon,Utah,49007,15,0 +2020-07-08,Carbon,Utah,49007,15,0 +2020-07-09,Carbon,Utah,49007,19,0 +2020-03-06,Davis,Utah,49011,1,0 +2020-03-07,Davis,Utah,49011,1,0 +2020-03-08,Davis,Utah,49011,1,0 +2020-03-09,Davis,Utah,49011,1,0 +2020-03-10,Davis,Utah,49011,1,0 +2020-03-11,Davis,Utah,49011,1,0 +2020-03-12,Davis,Utah,49011,1,0 +2020-03-13,Davis,Utah,49011,1,0 +2020-03-14,Davis,Utah,49011,2,0 +2020-03-15,Davis,Utah,49011,3,0 +2020-03-16,Davis,Utah,49011,4,0 +2020-03-17,Davis,Utah,49011,4,0 +2020-03-18,Davis,Utah,49011,6,0 +2020-03-19,Davis,Utah,49011,8,0 +2020-03-20,Davis,Utah,49011,12,0 +2020-03-21,Davis,Utah,49011,16,0 +2020-03-22,Davis,Utah,49011,19,1 +2020-03-23,Davis,Utah,49011,29,1 +2020-03-24,Davis,Utah,49011,31,1 +2020-03-25,Davis,Utah,49011,35,1 +2020-03-26,Davis,Utah,49011,39,1 +2020-03-27,Davis,Utah,49011,50,1 +2020-03-28,Davis,Utah,49011,59,1 +2020-03-29,Davis,Utah,49011,69,1 +2020-03-30,Davis,Utah,49011,77,1 +2020-03-31,Davis,Utah,49011,84,1 +2020-04-01,Davis,Utah,49011,93,1 +2020-04-02,Davis,Utah,49011,103,1 +2020-04-03,Davis,Utah,49011,122,2 +2020-04-04,Davis,Utah,49011,137,2 +2020-04-05,Davis,Utah,49011,142,2 +2020-04-06,Davis,Utah,49011,154,2 +2020-04-07,Davis,Utah,49011,158,2 +2020-04-08,Davis,Utah,49011,163,2 +2020-04-09,Davis,Utah,49011,170,2 +2020-04-10,Davis,Utah,49011,180,2 +2020-04-11,Davis,Utah,49011,193,2 +2020-04-12,Davis,Utah,49011,199,2 +2020-04-13,Davis,Utah,49011,204,2 +2020-04-14,Davis,Utah,49011,211,2 +2020-04-15,Davis,Utah,49011,217,2 +2020-04-16,Davis,Utah,49011,220,2 +2020-04-17,Davis,Utah,49011,227,2 +2020-04-18,Davis,Utah,49011,230,2 +2020-04-19,Davis,Utah,49011,236,2 +2020-04-20,Davis,Utah,49011,242,2 +2020-04-21,Davis,Utah,49011,243,2 +2020-04-22,Davis,Utah,49011,249,2 +2020-04-23,Davis,Utah,49011,254,2 +2020-04-24,Davis,Utah,49011,256,2 +2020-04-25,Davis,Utah,49011,268,2 +2020-04-26,Davis,Utah,49011,275,2 +2020-04-27,Davis,Utah,49011,276,2 +2020-04-28,Davis,Utah,49011,278,2 +2020-04-29,Davis,Utah,49011,283,2 +2020-04-30,Davis,Utah,49011,285,2 +2020-05-01,Davis,Utah,49011,293,2 +2020-05-02,Davis,Utah,49011,296,2 +2020-05-03,Davis,Utah,49011,300,2 +2020-05-04,Davis,Utah,49011,299,2 +2020-05-05,Davis,Utah,49011,302,2 +2020-05-06,Davis,Utah,49011,308,2 +2020-05-07,Davis,Utah,49011,315,2 +2020-05-08,Davis,Utah,49011,321,2 +2020-05-09,Davis,Utah,49011,327,2 +2020-05-10,Davis,Utah,49011,336,2 +2020-05-11,Davis,Utah,49011,338,2 +2020-05-12,Davis,Utah,49011,340,2 +2020-05-13,Davis,Utah,49011,344,2 +2020-05-14,Davis,Utah,49011,349,2 +2020-05-15,Davis,Utah,49011,354,2 +2020-05-16,Davis,Utah,49011,363,2 +2020-05-17,Davis,Utah,49011,368,2 +2020-05-18,Davis,Utah,49011,370,2 +2020-05-19,Davis,Utah,49011,373,2 +2020-05-20,Davis,Utah,49011,386,2 +2020-05-21,Davis,Utah,49011,396,2 +2020-05-22,Davis,Utah,49011,401,2 +2020-05-23,Davis,Utah,49011,407,2 +2020-05-24,Davis,Utah,49011,410,2 +2020-05-25,Davis,Utah,49011,414,2 +2020-05-26,Davis,Utah,49011,419,2 +2020-05-27,Davis,Utah,49011,424,2 +2020-05-28,Davis,Utah,49011,435,2 +2020-05-29,Davis,Utah,49011,447,2 +2020-05-30,Davis,Utah,49011,458,2 +2020-05-31,Davis,Utah,49011,465,2 +2020-06-01,Davis,Utah,49011,472,2 +2020-06-02,Davis,Utah,49011,476,2 +2020-06-03,Davis,Utah,49011,494,2 +2020-06-04,Davis,Utah,49011,513,2 +2020-06-05,Davis,Utah,49011,525,2 +2020-06-06,Davis,Utah,49011,541,2 +2020-06-07,Davis,Utah,49011,549,2 +2020-06-08,Davis,Utah,49011,564,3 +2020-06-09,Davis,Utah,49011,580,3 +2020-06-10,Davis,Utah,49011,593,4 +2020-06-11,Davis,Utah,49011,620,4 +2020-06-12,Davis,Utah,49011,628,4 +2020-06-13,Davis,Utah,49011,646,4 +2020-06-14,Davis,Utah,49011,660,4 +2020-06-15,Davis,Utah,49011,672,4 +2020-06-16,Davis,Utah,49011,691,4 +2020-06-17,Davis,Utah,49011,715,4 +2020-06-18,Davis,Utah,49011,739,4 +2020-06-19,Davis,Utah,49011,775,4 +2020-06-20,Davis,Utah,49011,822,4 +2020-06-21,Davis,Utah,49011,856,4 +2020-06-22,Davis,Utah,49011,877,4 +2020-06-23,Davis,Utah,49011,905,4 +2020-06-24,Davis,Utah,49011,938,4 +2020-06-25,Davis,Utah,49011,989,4 +2020-06-26,Davis,Utah,49011,1036,4 +2020-06-27,Davis,Utah,49011,1080,4 +2020-06-28,Davis,Utah,49011,1113,4 +2020-06-29,Davis,Utah,49011,1155,5 +2020-06-30,Davis,Utah,49011,1179,5 +2020-07-01,Davis,Utah,49011,1218,5 +2020-07-02,Davis,Utah,49011,1268,5 +2020-07-03,Davis,Utah,49011,1322,5 +2020-07-04,Davis,Utah,49011,1379,5 +2020-07-05,Davis,Utah,49011,1422,5 +2020-07-06,Davis,Utah,49011,1470,6 +2020-07-07,Davis,Utah,49011,1522,6 +2020-07-08,Davis,Utah,49011,1575,6 +2020-07-09,Davis,Utah,49011,1644,6 +2020-04-03,Duchesne,Utah,49013,1,0 +2020-04-04,Duchesne,Utah,49013,1,0 +2020-04-05,Duchesne,Utah,49013,1,0 +2020-04-06,Duchesne,Utah,49013,1,0 +2020-04-07,Duchesne,Utah,49013,1,0 +2020-04-08,Duchesne,Utah,49013,2,0 +2020-04-09,Duchesne,Utah,49013,3,0 +2020-04-10,Duchesne,Utah,49013,3,0 +2020-04-11,Duchesne,Utah,49013,3,0 +2020-04-12,Duchesne,Utah,49013,3,0 +2020-04-13,Duchesne,Utah,49013,3,0 +2020-04-14,Duchesne,Utah,49013,3,0 +2020-04-15,Duchesne,Utah,49013,3,0 +2020-04-16,Duchesne,Utah,49013,3,0 +2020-04-17,Duchesne,Utah,49013,4,0 +2020-04-18,Duchesne,Utah,49013,4,0 +2020-04-19,Duchesne,Utah,49013,5,0 +2020-04-20,Duchesne,Utah,49013,4,0 +2020-04-21,Duchesne,Utah,49013,4,0 +2020-04-22,Duchesne,Utah,49013,4,0 +2020-04-23,Duchesne,Utah,49013,4,0 +2020-04-24,Duchesne,Utah,49013,4,0 +2020-04-25,Duchesne,Utah,49013,4,0 +2020-04-26,Duchesne,Utah,49013,5,0 +2020-04-27,Duchesne,Utah,49013,5,0 +2020-04-28,Duchesne,Utah,49013,5,0 +2020-04-29,Duchesne,Utah,49013,5,0 +2020-04-30,Duchesne,Utah,49013,5,0 +2020-05-01,Duchesne,Utah,49013,7,0 +2020-05-02,Duchesne,Utah,49013,7,0 +2020-05-03,Duchesne,Utah,49013,8,0 +2020-05-04,Duchesne,Utah,49013,8,0 +2020-05-05,Duchesne,Utah,49013,8,0 +2020-05-06,Duchesne,Utah,49013,8,0 +2020-05-07,Duchesne,Utah,49013,8,0 +2020-05-08,Duchesne,Utah,49013,8,0 +2020-05-09,Duchesne,Utah,49013,9,0 +2020-05-10,Duchesne,Utah,49013,9,0 +2020-05-11,Duchesne,Utah,49013,9,0 +2020-05-12,Duchesne,Utah,49013,9,0 +2020-05-13,Duchesne,Utah,49013,9,0 +2020-05-14,Duchesne,Utah,49013,9,0 +2020-05-15,Duchesne,Utah,49013,11,0 +2020-05-16,Duchesne,Utah,49013,11,0 +2020-05-17,Duchesne,Utah,49013,11,0 +2020-05-18,Duchesne,Utah,49013,9,0 +2020-05-19,Duchesne,Utah,49013,9,0 +2020-05-20,Duchesne,Utah,49013,9,0 +2020-05-21,Duchesne,Utah,49013,9,0 +2020-05-22,Duchesne,Utah,49013,9,0 +2020-05-23,Duchesne,Utah,49013,8,0 +2020-05-24,Duchesne,Utah,49013,8,0 +2020-05-25,Duchesne,Utah,49013,8,0 +2020-05-26,Duchesne,Utah,49013,8,0 +2020-05-27,Duchesne,Utah,49013,8,0 +2020-05-28,Duchesne,Utah,49013,8,0 +2020-05-29,Duchesne,Utah,49013,8,0 +2020-05-30,Duchesne,Utah,49013,9,0 +2020-05-31,Duchesne,Utah,49013,9,0 +2020-06-01,Duchesne,Utah,49013,9,0 +2020-06-02,Duchesne,Utah,49013,9,0 +2020-06-03,Duchesne,Utah,49013,9,0 +2020-06-04,Duchesne,Utah,49013,9,0 +2020-06-05,Duchesne,Utah,49013,9,0 +2020-06-06,Duchesne,Utah,49013,9,0 +2020-06-07,Duchesne,Utah,49013,10,0 +2020-06-08,Duchesne,Utah,49013,9,0 +2020-06-09,Duchesne,Utah,49013,9,0 +2020-06-10,Duchesne,Utah,49013,9,0 +2020-06-11,Duchesne,Utah,49013,9,0 +2020-06-12,Duchesne,Utah,49013,9,0 +2020-06-13,Duchesne,Utah,49013,10,0 +2020-06-14,Duchesne,Utah,49013,10,0 +2020-06-15,Duchesne,Utah,49013,10,0 +2020-06-16,Duchesne,Utah,49013,10,0 +2020-06-17,Duchesne,Utah,49013,10,0 +2020-06-18,Duchesne,Utah,49013,10,0 +2020-06-19,Duchesne,Utah,49013,10,0 +2020-06-20,Duchesne,Utah,49013,10,0 +2020-06-21,Duchesne,Utah,49013,10,0 +2020-06-22,Duchesne,Utah,49013,10,0 +2020-06-23,Duchesne,Utah,49013,10,0 +2020-06-24,Duchesne,Utah,49013,11,0 +2020-06-25,Duchesne,Utah,49013,11,0 +2020-06-26,Duchesne,Utah,49013,13,0 +2020-06-27,Duchesne,Utah,49013,13,0 +2020-06-28,Duchesne,Utah,49013,13,0 +2020-06-29,Duchesne,Utah,49013,13,0 +2020-06-30,Duchesne,Utah,49013,14,0 +2020-07-01,Duchesne,Utah,49013,14,0 +2020-07-02,Duchesne,Utah,49013,14,0 +2020-07-03,Duchesne,Utah,49013,14,0 +2020-07-04,Duchesne,Utah,49013,14,0 +2020-07-05,Duchesne,Utah,49013,14,0 +2020-07-06,Duchesne,Utah,49013,15,0 +2020-07-07,Duchesne,Utah,49013,15,0 +2020-07-08,Duchesne,Utah,49013,15,0 +2020-07-09,Duchesne,Utah,49013,20,0 +2020-04-03,Emery,Utah,49015,1,0 +2020-04-04,Emery,Utah,49015,1,0 +2020-04-05,Emery,Utah,49015,1,0 +2020-04-06,Emery,Utah,49015,2,0 +2020-04-07,Emery,Utah,49015,2,0 +2020-04-08,Emery,Utah,49015,2,0 +2020-04-09,Emery,Utah,49015,2,0 +2020-04-10,Emery,Utah,49015,2,0 +2020-04-11,Emery,Utah,49015,2,0 +2020-04-12,Emery,Utah,49015,2,0 +2020-04-13,Emery,Utah,49015,2,0 +2020-04-14,Emery,Utah,49015,3,0 +2020-04-15,Emery,Utah,49015,3,0 +2020-04-16,Emery,Utah,49015,3,0 +2020-04-17,Emery,Utah,49015,4,0 +2020-04-18,Emery,Utah,49015,4,0 +2020-04-19,Emery,Utah,49015,4,0 +2020-04-20,Emery,Utah,49015,4,0 +2020-04-21,Emery,Utah,49015,4,0 +2020-04-22,Emery,Utah,49015,4,0 +2020-04-23,Emery,Utah,49015,4,0 +2020-04-24,Emery,Utah,49015,4,0 +2020-04-25,Emery,Utah,49015,4,0 +2020-04-26,Emery,Utah,49015,4,0 +2020-04-27,Emery,Utah,49015,4,0 +2020-04-28,Emery,Utah,49015,4,0 +2020-04-29,Emery,Utah,49015,4,0 +2020-04-30,Emery,Utah,49015,4,0 +2020-05-01,Emery,Utah,49015,5,0 +2020-05-02,Emery,Utah,49015,5,0 +2020-05-03,Emery,Utah,49015,5,0 +2020-05-04,Emery,Utah,49015,5,0 +2020-05-05,Emery,Utah,49015,5,0 +2020-05-06,Emery,Utah,49015,5,0 +2020-05-07,Emery,Utah,49015,5,0 +2020-05-08,Emery,Utah,49015,5,0 +2020-05-09,Emery,Utah,49015,5,0 +2020-05-10,Emery,Utah,49015,5,0 +2020-05-11,Emery,Utah,49015,5,0 +2020-05-12,Emery,Utah,49015,5,0 +2020-05-13,Emery,Utah,49015,5,0 +2020-05-14,Emery,Utah,49015,5,0 +2020-05-15,Emery,Utah,49015,5,0 +2020-05-16,Emery,Utah,49015,5,0 +2020-05-17,Emery,Utah,49015,5,0 +2020-05-18,Emery,Utah,49015,5,0 +2020-05-19,Emery,Utah,49015,7,0 +2020-05-20,Emery,Utah,49015,7,0 +2020-05-21,Emery,Utah,49015,7,0 +2020-05-22,Emery,Utah,49015,7,0 +2020-05-23,Emery,Utah,49015,7,0 +2020-05-24,Emery,Utah,49015,7,0 +2020-05-25,Emery,Utah,49015,7,0 +2020-05-26,Emery,Utah,49015,7,0 +2020-05-27,Emery,Utah,49015,7,0 +2020-05-28,Emery,Utah,49015,7,0 +2020-05-29,Emery,Utah,49015,7,0 +2020-05-30,Emery,Utah,49015,7,0 +2020-05-31,Emery,Utah,49015,7,0 +2020-06-01,Emery,Utah,49015,7,0 +2020-06-02,Emery,Utah,49015,7,0 +2020-06-03,Emery,Utah,49015,7,0 +2020-06-04,Emery,Utah,49015,7,0 +2020-06-05,Emery,Utah,49015,7,0 +2020-06-06,Emery,Utah,49015,7,0 +2020-06-07,Emery,Utah,49015,7,0 +2020-06-08,Emery,Utah,49015,7,0 +2020-06-09,Emery,Utah,49015,7,0 +2020-06-10,Emery,Utah,49015,7,0 +2020-06-11,Emery,Utah,49015,7,0 +2020-06-12,Emery,Utah,49015,7,0 +2020-06-13,Emery,Utah,49015,7,0 +2020-06-14,Emery,Utah,49015,7,0 +2020-06-15,Emery,Utah,49015,8,0 +2020-06-16,Emery,Utah,49015,8,0 +2020-06-17,Emery,Utah,49015,8,0 +2020-06-18,Emery,Utah,49015,9,0 +2020-06-19,Emery,Utah,49015,9,0 +2020-06-20,Emery,Utah,49015,9,0 +2020-06-21,Emery,Utah,49015,9,0 +2020-06-22,Emery,Utah,49015,9,0 +2020-06-23,Emery,Utah,49015,9,0 +2020-06-24,Emery,Utah,49015,9,0 +2020-06-25,Emery,Utah,49015,9,0 +2020-06-26,Emery,Utah,49015,9,0 +2020-06-27,Emery,Utah,49015,9,0 +2020-06-28,Emery,Utah,49015,9,0 +2020-06-29,Emery,Utah,49015,9,0 +2020-06-30,Emery,Utah,49015,9,0 +2020-07-01,Emery,Utah,49015,9,0 +2020-07-02,Emery,Utah,49015,9,0 +2020-07-03,Emery,Utah,49015,9,0 +2020-07-04,Emery,Utah,49015,9,0 +2020-07-05,Emery,Utah,49015,9,0 +2020-07-06,Emery,Utah,49015,9,0 +2020-07-07,Emery,Utah,49015,9,0 +2020-07-08,Emery,Utah,49015,9,0 +2020-07-09,Emery,Utah,49015,9,0 +2020-03-28,Garfield,Utah,49017,1,0 +2020-03-29,Garfield,Utah,49017,1,0 +2020-03-30,Garfield,Utah,49017,1,0 +2020-03-31,Garfield,Utah,49017,1,0 +2020-04-01,Garfield,Utah,49017,1,0 +2020-04-02,Garfield,Utah,49017,1,0 +2020-04-03,Garfield,Utah,49017,1,0 +2020-04-04,Garfield,Utah,49017,1,0 +2020-04-05,Garfield,Utah,49017,1,0 +2020-04-06,Garfield,Utah,49017,1,0 +2020-04-07,Garfield,Utah,49017,1,0 +2020-04-08,Garfield,Utah,49017,1,0 +2020-04-09,Garfield,Utah,49017,1,0 +2020-04-10,Garfield,Utah,49017,1,0 +2020-04-11,Garfield,Utah,49017,1,0 +2020-04-12,Garfield,Utah,49017,1,0 +2020-04-13,Garfield,Utah,49017,1,0 +2020-04-14,Garfield,Utah,49017,1,0 +2020-04-15,Garfield,Utah,49017,1,0 +2020-04-16,Garfield,Utah,49017,1,0 +2020-04-17,Garfield,Utah,49017,1,0 +2020-04-18,Garfield,Utah,49017,1,0 +2020-04-19,Garfield,Utah,49017,1,0 +2020-04-20,Garfield,Utah,49017,1,0 +2020-04-21,Garfield,Utah,49017,1,0 +2020-04-22,Garfield,Utah,49017,1,0 +2020-04-23,Garfield,Utah,49017,1,0 +2020-04-24,Garfield,Utah,49017,1,0 +2020-04-25,Garfield,Utah,49017,1,0 +2020-04-26,Garfield,Utah,49017,1,0 +2020-04-27,Garfield,Utah,49017,3,0 +2020-04-28,Garfield,Utah,49017,3,0 +2020-04-29,Garfield,Utah,49017,3,0 +2020-04-30,Garfield,Utah,49017,3,0 +2020-05-01,Garfield,Utah,49017,3,0 +2020-05-02,Garfield,Utah,49017,3,0 +2020-05-03,Garfield,Utah,49017,3,0 +2020-05-04,Garfield,Utah,49017,3,0 +2020-05-05,Garfield,Utah,49017,3,0 +2020-05-06,Garfield,Utah,49017,3,0 +2020-05-07,Garfield,Utah,49017,3,0 +2020-05-08,Garfield,Utah,49017,3,0 +2020-05-09,Garfield,Utah,49017,3,0 +2020-05-10,Garfield,Utah,49017,3,0 +2020-05-11,Garfield,Utah,49017,3,0 +2020-05-12,Garfield,Utah,49017,3,0 +2020-05-13,Garfield,Utah,49017,3,0 +2020-05-14,Garfield,Utah,49017,3,0 +2020-05-15,Garfield,Utah,49017,3,0 +2020-05-16,Garfield,Utah,49017,3,0 +2020-05-17,Garfield,Utah,49017,3,0 +2020-05-18,Garfield,Utah,49017,3,0 +2020-05-19,Garfield,Utah,49017,3,0 +2020-05-20,Garfield,Utah,49017,3,0 +2020-05-21,Garfield,Utah,49017,3,0 +2020-05-22,Garfield,Utah,49017,3,0 +2020-05-23,Garfield,Utah,49017,3,0 +2020-05-24,Garfield,Utah,49017,3,0 +2020-05-25,Garfield,Utah,49017,3,0 +2020-05-26,Garfield,Utah,49017,3,0 +2020-05-27,Garfield,Utah,49017,3,0 +2020-05-28,Garfield,Utah,49017,3,0 +2020-05-29,Garfield,Utah,49017,3,0 +2020-05-30,Garfield,Utah,49017,3,0 +2020-05-31,Garfield,Utah,49017,3,0 +2020-06-01,Garfield,Utah,49017,3,0 +2020-06-02,Garfield,Utah,49017,3,0 +2020-06-03,Garfield,Utah,49017,3,0 +2020-06-04,Garfield,Utah,49017,4,0 +2020-06-05,Garfield,Utah,49017,4,0 +2020-06-06,Garfield,Utah,49017,4,0 +2020-06-07,Garfield,Utah,49017,4,0 +2020-06-08,Garfield,Utah,49017,4,0 +2020-06-09,Garfield,Utah,49017,4,0 +2020-06-10,Garfield,Utah,49017,4,0 +2020-06-11,Garfield,Utah,49017,4,0 +2020-06-12,Garfield,Utah,49017,4,0 +2020-06-13,Garfield,Utah,49017,4,0 +2020-06-14,Garfield,Utah,49017,4,0 +2020-06-15,Garfield,Utah,49017,4,0 +2020-06-16,Garfield,Utah,49017,4,0 +2020-06-17,Garfield,Utah,49017,4,0 +2020-06-18,Garfield,Utah,49017,4,0 +2020-06-19,Garfield,Utah,49017,4,0 +2020-06-20,Garfield,Utah,49017,5,0 +2020-06-21,Garfield,Utah,49017,5,0 +2020-06-22,Garfield,Utah,49017,9,0 +2020-06-23,Garfield,Utah,49017,11,0 +2020-06-24,Garfield,Utah,49017,11,0 +2020-06-25,Garfield,Utah,49017,12,0 +2020-06-26,Garfield,Utah,49017,12,0 +2020-06-27,Garfield,Utah,49017,13,0 +2020-06-28,Garfield,Utah,49017,13,0 +2020-06-29,Garfield,Utah,49017,14,0 +2020-06-30,Garfield,Utah,49017,14,0 +2020-07-01,Garfield,Utah,49017,15,0 +2020-07-02,Garfield,Utah,49017,15,0 +2020-07-03,Garfield,Utah,49017,15,0 +2020-07-04,Garfield,Utah,49017,15,0 +2020-07-05,Garfield,Utah,49017,15,0 +2020-07-06,Garfield,Utah,49017,15,0 +2020-07-07,Garfield,Utah,49017,18,0 +2020-07-08,Garfield,Utah,49017,18,0 +2020-07-09,Garfield,Utah,49017,18,0 +2020-04-03,Grand,Utah,49019,1,0 +2020-04-04,Grand,Utah,49019,1,0 +2020-04-05,Grand,Utah,49019,1,0 +2020-04-06,Grand,Utah,49019,1,0 +2020-04-07,Grand,Utah,49019,1,0 +2020-04-08,Grand,Utah,49019,1,0 +2020-04-09,Grand,Utah,49019,1,0 +2020-04-10,Grand,Utah,49019,1,0 +2020-04-11,Grand,Utah,49019,1,0 +2020-04-12,Grand,Utah,49019,1,0 +2020-04-13,Grand,Utah,49019,1,0 +2020-04-14,Grand,Utah,49019,1,0 +2020-04-15,Grand,Utah,49019,1,0 +2020-04-16,Grand,Utah,49019,1,0 +2020-04-17,Grand,Utah,49019,1,0 +2020-04-18,Grand,Utah,49019,1,0 +2020-04-19,Grand,Utah,49019,1,0 +2020-04-20,Grand,Utah,49019,1,0 +2020-04-21,Grand,Utah,49019,1,0 +2020-04-22,Grand,Utah,49019,1,0 +2020-04-23,Grand,Utah,49019,1,0 +2020-04-24,Grand,Utah,49019,2,0 +2020-04-25,Grand,Utah,49019,2,0 +2020-04-26,Grand,Utah,49019,2,0 +2020-04-27,Grand,Utah,49019,2,0 +2020-04-28,Grand,Utah,49019,2,0 +2020-04-29,Grand,Utah,49019,2,0 +2020-04-30,Grand,Utah,49019,2,0 +2020-05-01,Grand,Utah,49019,3,0 +2020-05-02,Grand,Utah,49019,3,0 +2020-05-03,Grand,Utah,49019,3,0 +2020-05-04,Grand,Utah,49019,4,0 +2020-05-05,Grand,Utah,49019,4,0 +2020-05-06,Grand,Utah,49019,4,0 +2020-05-07,Grand,Utah,49019,4,0 +2020-05-08,Grand,Utah,49019,4,0 +2020-05-09,Grand,Utah,49019,4,0 +2020-05-10,Grand,Utah,49019,4,0 +2020-05-11,Grand,Utah,49019,4,0 +2020-05-12,Grand,Utah,49019,4,0 +2020-05-13,Grand,Utah,49019,4,0 +2020-05-14,Grand,Utah,49019,4,0 +2020-05-15,Grand,Utah,49019,4,0 +2020-05-16,Grand,Utah,49019,4,0 +2020-05-17,Grand,Utah,49019,4,0 +2020-05-18,Grand,Utah,49019,4,0 +2020-05-19,Grand,Utah,49019,4,0 +2020-05-20,Grand,Utah,49019,4,0 +2020-05-21,Grand,Utah,49019,4,0 +2020-05-22,Grand,Utah,49019,4,0 +2020-05-23,Grand,Utah,49019,4,0 +2020-05-24,Grand,Utah,49019,4,0 +2020-05-25,Grand,Utah,49019,4,0 +2020-05-26,Grand,Utah,49019,7,0 +2020-05-27,Grand,Utah,49019,7,0 +2020-05-28,Grand,Utah,49019,9,0 +2020-05-29,Grand,Utah,49019,9,0 +2020-05-30,Grand,Utah,49019,9,0 +2020-05-31,Grand,Utah,49019,9,0 +2020-06-01,Grand,Utah,49019,12,0 +2020-06-02,Grand,Utah,49019,12,0 +2020-06-03,Grand,Utah,49019,12,0 +2020-06-04,Grand,Utah,49019,12,0 +2020-06-05,Grand,Utah,49019,12,0 +2020-06-06,Grand,Utah,49019,12,0 +2020-06-07,Grand,Utah,49019,12,0 +2020-06-08,Grand,Utah,49019,12,0 +2020-06-09,Grand,Utah,49019,12,0 +2020-06-10,Grand,Utah,49019,12,0 +2020-06-11,Grand,Utah,49019,12,0 +2020-06-12,Grand,Utah,49019,12,0 +2020-06-13,Grand,Utah,49019,12,0 +2020-06-14,Grand,Utah,49019,12,0 +2020-06-15,Grand,Utah,49019,12,0 +2020-06-16,Grand,Utah,49019,12,0 +2020-06-17,Grand,Utah,49019,12,0 +2020-06-18,Grand,Utah,49019,12,0 +2020-06-19,Grand,Utah,49019,12,0 +2020-06-20,Grand,Utah,49019,12,0 +2020-06-21,Grand,Utah,49019,12,0 +2020-06-22,Grand,Utah,49019,12,0 +2020-06-23,Grand,Utah,49019,12,0 +2020-06-24,Grand,Utah,49019,12,0 +2020-06-25,Grand,Utah,49019,12,0 +2020-06-26,Grand,Utah,49019,12,0 +2020-06-27,Grand,Utah,49019,12,0 +2020-06-28,Grand,Utah,49019,12,0 +2020-06-29,Grand,Utah,49019,14,0 +2020-06-30,Grand,Utah,49019,14,0 +2020-07-01,Grand,Utah,49019,18,0 +2020-07-02,Grand,Utah,49019,18,0 +2020-07-03,Grand,Utah,49019,18,0 +2020-07-04,Grand,Utah,49019,18,0 +2020-07-05,Grand,Utah,49019,18,0 +2020-07-06,Grand,Utah,49019,20,0 +2020-07-07,Grand,Utah,49019,20,0 +2020-07-08,Grand,Utah,49019,20,0 +2020-07-09,Grand,Utah,49019,23,0 +2020-03-23,Iron,Utah,49021,1,0 +2020-03-24,Iron,Utah,49021,1,0 +2020-03-25,Iron,Utah,49021,1,0 +2020-03-26,Iron,Utah,49021,2,0 +2020-03-27,Iron,Utah,49021,2,0 +2020-03-28,Iron,Utah,49021,4,0 +2020-03-29,Iron,Utah,49021,4,0 +2020-03-30,Iron,Utah,49021,4,0 +2020-03-31,Iron,Utah,49021,6,0 +2020-04-01,Iron,Utah,49021,6,0 +2020-04-02,Iron,Utah,49021,9,0 +2020-04-03,Iron,Utah,49021,10,0 +2020-04-04,Iron,Utah,49021,10,0 +2020-04-05,Iron,Utah,49021,13,0 +2020-04-06,Iron,Utah,49021,13,0 +2020-04-07,Iron,Utah,49021,13,0 +2020-04-08,Iron,Utah,49021,13,0 +2020-04-09,Iron,Utah,49021,13,0 +2020-04-10,Iron,Utah,49021,13,0 +2020-04-11,Iron,Utah,49021,13,0 +2020-04-12,Iron,Utah,49021,13,0 +2020-04-13,Iron,Utah,49021,13,0 +2020-04-14,Iron,Utah,49021,15,0 +2020-04-15,Iron,Utah,49021,15,0 +2020-04-16,Iron,Utah,49021,15,0 +2020-04-17,Iron,Utah,49021,16,0 +2020-04-18,Iron,Utah,49021,17,0 +2020-04-19,Iron,Utah,49021,17,0 +2020-04-20,Iron,Utah,49021,17,0 +2020-04-21,Iron,Utah,49021,18,0 +2020-04-22,Iron,Utah,49021,18,0 +2020-04-23,Iron,Utah,49021,21,0 +2020-04-24,Iron,Utah,49021,21,0 +2020-04-25,Iron,Utah,49021,21,0 +2020-04-26,Iron,Utah,49021,21,0 +2020-04-27,Iron,Utah,49021,21,0 +2020-04-28,Iron,Utah,49021,21,0 +2020-04-29,Iron,Utah,49021,22,0 +2020-04-30,Iron,Utah,49021,22,0 +2020-05-01,Iron,Utah,49021,24,0 +2020-05-02,Iron,Utah,49021,24,0 +2020-05-03,Iron,Utah,49021,25,0 +2020-05-04,Iron,Utah,49021,26,0 +2020-05-05,Iron,Utah,49021,26,0 +2020-05-06,Iron,Utah,49021,27,0 +2020-05-07,Iron,Utah,49021,27,0 +2020-05-08,Iron,Utah,49021,28,0 +2020-05-09,Iron,Utah,49021,29,0 +2020-05-10,Iron,Utah,49021,29,0 +2020-05-11,Iron,Utah,49021,29,0 +2020-05-12,Iron,Utah,49021,29,0 +2020-05-13,Iron,Utah,49021,29,0 +2020-05-14,Iron,Utah,49021,29,0 +2020-05-15,Iron,Utah,49021,29,0 +2020-05-16,Iron,Utah,49021,30,0 +2020-05-17,Iron,Utah,49021,31,0 +2020-05-18,Iron,Utah,49021,32,0 +2020-05-19,Iron,Utah,49021,35,0 +2020-05-20,Iron,Utah,49021,36,0 +2020-05-21,Iron,Utah,49021,39,0 +2020-05-22,Iron,Utah,49021,40,0 +2020-05-23,Iron,Utah,49021,41,0 +2020-05-24,Iron,Utah,49021,41,0 +2020-05-25,Iron,Utah,49021,44,0 +2020-05-26,Iron,Utah,49021,45,0 +2020-05-27,Iron,Utah,49021,46,0 +2020-05-28,Iron,Utah,49021,50,0 +2020-05-29,Iron,Utah,49021,56,0 +2020-05-30,Iron,Utah,49021,60,0 +2020-05-31,Iron,Utah,49021,69,0 +2020-06-01,Iron,Utah,49021,74,0 +2020-06-02,Iron,Utah,49021,82,0 +2020-06-03,Iron,Utah,49021,92,0 +2020-06-04,Iron,Utah,49021,107,0 +2020-06-05,Iron,Utah,49021,112,0 +2020-06-06,Iron,Utah,49021,122,0 +2020-06-07,Iron,Utah,49021,122,0 +2020-06-08,Iron,Utah,49021,128,0 +2020-06-09,Iron,Utah,49021,136,0 +2020-06-10,Iron,Utah,49021,140,0 +2020-06-11,Iron,Utah,49021,145,0 +2020-06-12,Iron,Utah,49021,153,0 +2020-06-13,Iron,Utah,49021,168,0 +2020-06-14,Iron,Utah,49021,168,0 +2020-06-15,Iron,Utah,49021,178,0 +2020-06-16,Iron,Utah,49021,183,0 +2020-06-17,Iron,Utah,49021,191,0 +2020-06-18,Iron,Utah,49021,194,0 +2020-06-19,Iron,Utah,49021,197,0 +2020-06-20,Iron,Utah,49021,214,0 +2020-06-21,Iron,Utah,49021,214,0 +2020-06-22,Iron,Utah,49021,224,0 +2020-06-23,Iron,Utah,49021,233,0 +2020-06-24,Iron,Utah,49021,243,0 +2020-06-25,Iron,Utah,49021,256,0 +2020-06-26,Iron,Utah,49021,265,0 +2020-06-27,Iron,Utah,49021,271,0 +2020-06-28,Iron,Utah,49021,271,0 +2020-06-29,Iron,Utah,49021,283,0 +2020-06-30,Iron,Utah,49021,292,0 +2020-07-01,Iron,Utah,49021,295,0 +2020-07-02,Iron,Utah,49021,308,0 +2020-07-03,Iron,Utah,49021,315,0 +2020-07-04,Iron,Utah,49021,324,0 +2020-07-05,Iron,Utah,49021,324,0 +2020-07-06,Iron,Utah,49021,332,0 +2020-07-07,Iron,Utah,49021,336,0 +2020-07-08,Iron,Utah,49021,339,0 +2020-07-09,Iron,Utah,49021,344,0 +2020-04-03,Juab,Utah,49023,1,0 +2020-04-04,Juab,Utah,49023,1,0 +2020-04-05,Juab,Utah,49023,1,0 +2020-04-06,Juab,Utah,49023,2,0 +2020-04-07,Juab,Utah,49023,2,0 +2020-04-08,Juab,Utah,49023,2,0 +2020-04-09,Juab,Utah,49023,2,0 +2020-04-10,Juab,Utah,49023,2,0 +2020-04-11,Juab,Utah,49023,2,0 +2020-04-12,Juab,Utah,49023,2,0 +2020-04-13,Juab,Utah,49023,2,0 +2020-04-14,Juab,Utah,49023,2,0 +2020-04-15,Juab,Utah,49023,2,0 +2020-04-16,Juab,Utah,49023,2,0 +2020-04-17,Juab,Utah,49023,2,0 +2020-04-18,Juab,Utah,49023,2,0 +2020-04-19,Juab,Utah,49023,2,0 +2020-04-20,Juab,Utah,49023,2,0 +2020-04-21,Juab,Utah,49023,4,0 +2020-04-22,Juab,Utah,49023,4,0 +2020-04-23,Juab,Utah,49023,7,0 +2020-04-24,Juab,Utah,49023,7,0 +2020-04-25,Juab,Utah,49023,7,0 +2020-04-26,Juab,Utah,49023,7,0 +2020-04-27,Juab,Utah,49023,7,0 +2020-04-28,Juab,Utah,49023,7,0 +2020-04-29,Juab,Utah,49023,7,0 +2020-04-30,Juab,Utah,49023,7,0 +2020-05-01,Juab,Utah,49023,7,0 +2020-05-02,Juab,Utah,49023,7,0 +2020-05-03,Juab,Utah,49023,7,0 +2020-05-04,Juab,Utah,49023,7,0 +2020-05-05,Juab,Utah,49023,7,0 +2020-05-06,Juab,Utah,49023,7,0 +2020-05-07,Juab,Utah,49023,7,0 +2020-05-08,Juab,Utah,49023,7,0 +2020-05-09,Juab,Utah,49023,8,0 +2020-05-10,Juab,Utah,49023,8,0 +2020-05-11,Juab,Utah,49023,8,0 +2020-05-12,Juab,Utah,49023,8,0 +2020-05-13,Juab,Utah,49023,8,0 +2020-05-14,Juab,Utah,49023,8,0 +2020-05-15,Juab,Utah,49023,8,0 +2020-05-16,Juab,Utah,49023,8,0 +2020-05-17,Juab,Utah,49023,8,0 +2020-05-18,Juab,Utah,49023,8,0 +2020-05-19,Juab,Utah,49023,8,0 +2020-05-20,Juab,Utah,49023,9,0 +2020-05-21,Juab,Utah,49023,10,0 +2020-05-22,Juab,Utah,49023,10,0 +2020-05-23,Juab,Utah,49023,10,0 +2020-05-24,Juab,Utah,49023,10,0 +2020-05-25,Juab,Utah,49023,10,0 +2020-05-26,Juab,Utah,49023,10,0 +2020-05-27,Juab,Utah,49023,10,0 +2020-05-28,Juab,Utah,49023,10,0 +2020-05-29,Juab,Utah,49023,10,0 +2020-05-30,Juab,Utah,49023,10,0 +2020-05-31,Juab,Utah,49023,10,0 +2020-06-01,Juab,Utah,49023,10,0 +2020-06-02,Juab,Utah,49023,10,0 +2020-06-03,Juab,Utah,49023,10,0 +2020-06-04,Juab,Utah,49023,11,0 +2020-06-05,Juab,Utah,49023,11,0 +2020-06-06,Juab,Utah,49023,11,0 +2020-06-07,Juab,Utah,49023,11,0 +2020-06-08,Juab,Utah,49023,11,0 +2020-06-09,Juab,Utah,49023,11,0 +2020-06-10,Juab,Utah,49023,12,0 +2020-06-11,Juab,Utah,49023,12,0 +2020-06-12,Juab,Utah,49023,11,0 +2020-06-13,Juab,Utah,49023,11,0 +2020-06-14,Juab,Utah,49023,11,0 +2020-06-15,Juab,Utah,49023,11,0 +2020-06-16,Juab,Utah,49023,12,0 +2020-06-17,Juab,Utah,49023,13,0 +2020-06-18,Juab,Utah,49023,13,0 +2020-06-19,Juab,Utah,49023,14,0 +2020-06-20,Juab,Utah,49023,15,0 +2020-06-21,Juab,Utah,49023,15,0 +2020-06-22,Juab,Utah,49023,15,0 +2020-06-23,Juab,Utah,49023,15,0 +2020-06-24,Juab,Utah,49023,15,0 +2020-06-25,Juab,Utah,49023,15,0 +2020-06-26,Juab,Utah,49023,15,0 +2020-06-27,Juab,Utah,49023,15,0 +2020-06-28,Juab,Utah,49023,17,0 +2020-06-29,Juab,Utah,49023,17,0 +2020-06-30,Juab,Utah,49023,18,0 +2020-07-01,Juab,Utah,49023,21,0 +2020-07-02,Juab,Utah,49023,21,0 +2020-07-03,Juab,Utah,49023,21,0 +2020-07-04,Juab,Utah,49023,21,0 +2020-07-05,Juab,Utah,49023,21,0 +2020-07-06,Juab,Utah,49023,26,0 +2020-07-07,Juab,Utah,49023,26,0 +2020-07-08,Juab,Utah,49023,31,0 +2020-07-09,Juab,Utah,49023,31,0 +2020-04-02,Kane,Utah,49025,1,0 +2020-04-03,Kane,Utah,49025,1,0 +2020-04-04,Kane,Utah,49025,1,0 +2020-04-05,Kane,Utah,49025,2,0 +2020-04-06,Kane,Utah,49025,2,0 +2020-04-07,Kane,Utah,49025,2,0 +2020-04-08,Kane,Utah,49025,2,0 +2020-04-09,Kane,Utah,49025,3,0 +2020-04-10,Kane,Utah,49025,3,0 +2020-04-11,Kane,Utah,49025,3,0 +2020-04-12,Kane,Utah,49025,3,0 +2020-04-13,Kane,Utah,49025,3,0 +2020-04-14,Kane,Utah,49025,3,0 +2020-04-15,Kane,Utah,49025,3,0 +2020-04-16,Kane,Utah,49025,3,0 +2020-04-17,Kane,Utah,49025,3,0 +2020-04-18,Kane,Utah,49025,3,0 +2020-04-19,Kane,Utah,49025,3,0 +2020-04-20,Kane,Utah,49025,3,0 +2020-04-21,Kane,Utah,49025,3,0 +2020-04-22,Kane,Utah,49025,3,0 +2020-04-23,Kane,Utah,49025,3,0 +2020-04-24,Kane,Utah,49025,3,0 +2020-04-25,Kane,Utah,49025,3,0 +2020-04-26,Kane,Utah,49025,3,0 +2020-04-27,Kane,Utah,49025,3,0 +2020-04-28,Kane,Utah,49025,3,0 +2020-04-29,Kane,Utah,49025,3,0 +2020-04-30,Kane,Utah,49025,3,0 +2020-05-01,Kane,Utah,49025,3,0 +2020-05-02,Kane,Utah,49025,3,0 +2020-05-03,Kane,Utah,49025,3,0 +2020-05-04,Kane,Utah,49025,3,0 +2020-05-05,Kane,Utah,49025,3,0 +2020-05-06,Kane,Utah,49025,3,0 +2020-05-07,Kane,Utah,49025,3,0 +2020-05-08,Kane,Utah,49025,3,0 +2020-05-09,Kane,Utah,49025,3,0 +2020-05-10,Kane,Utah,49025,3,0 +2020-05-11,Kane,Utah,49025,3,0 +2020-05-12,Kane,Utah,49025,3,0 +2020-05-13,Kane,Utah,49025,3,0 +2020-05-14,Kane,Utah,49025,3,0 +2020-05-15,Kane,Utah,49025,3,0 +2020-05-16,Kane,Utah,49025,3,0 +2020-05-17,Kane,Utah,49025,3,0 +2020-05-18,Kane,Utah,49025,3,0 +2020-05-19,Kane,Utah,49025,3,0 +2020-05-20,Kane,Utah,49025,3,0 +2020-05-21,Kane,Utah,49025,3,0 +2020-05-22,Kane,Utah,49025,3,0 +2020-05-23,Kane,Utah,49025,3,0 +2020-05-24,Kane,Utah,49025,3,0 +2020-05-25,Kane,Utah,49025,3,0 +2020-05-26,Kane,Utah,49025,3,0 +2020-05-27,Kane,Utah,49025,3,0 +2020-05-28,Kane,Utah,49025,3,0 +2020-05-29,Kane,Utah,49025,3,0 +2020-05-30,Kane,Utah,49025,3,0 +2020-05-31,Kane,Utah,49025,3,0 +2020-06-01,Kane,Utah,49025,3,0 +2020-06-02,Kane,Utah,49025,3,0 +2020-06-03,Kane,Utah,49025,3,0 +2020-06-04,Kane,Utah,49025,3,0 +2020-06-05,Kane,Utah,49025,3,0 +2020-06-06,Kane,Utah,49025,3,0 +2020-06-07,Kane,Utah,49025,3,0 +2020-06-08,Kane,Utah,49025,4,0 +2020-06-09,Kane,Utah,49025,4,0 +2020-06-10,Kane,Utah,49025,4,0 +2020-06-11,Kane,Utah,49025,4,0 +2020-06-12,Kane,Utah,49025,4,0 +2020-06-13,Kane,Utah,49025,4,0 +2020-06-14,Kane,Utah,49025,4,0 +2020-06-15,Kane,Utah,49025,4,0 +2020-06-16,Kane,Utah,49025,4,0 +2020-06-17,Kane,Utah,49025,4,0 +2020-06-18,Kane,Utah,49025,4,0 +2020-06-19,Kane,Utah,49025,5,0 +2020-06-20,Kane,Utah,49025,5,0 +2020-06-21,Kane,Utah,49025,5,0 +2020-06-22,Kane,Utah,49025,5,0 +2020-06-23,Kane,Utah,49025,6,0 +2020-06-24,Kane,Utah,49025,6,0 +2020-06-25,Kane,Utah,49025,6,0 +2020-06-26,Kane,Utah,49025,6,0 +2020-06-27,Kane,Utah,49025,6,0 +2020-06-28,Kane,Utah,49025,6,0 +2020-06-29,Kane,Utah,49025,6,0 +2020-06-30,Kane,Utah,49025,6,0 +2020-07-01,Kane,Utah,49025,6,0 +2020-07-02,Kane,Utah,49025,7,0 +2020-07-03,Kane,Utah,49025,7,0 +2020-07-04,Kane,Utah,49025,7,0 +2020-07-05,Kane,Utah,49025,7,0 +2020-07-06,Kane,Utah,49025,12,0 +2020-07-07,Kane,Utah,49025,12,0 +2020-07-08,Kane,Utah,49025,12,0 +2020-07-09,Kane,Utah,49025,13,0 +2020-04-03,Millard,Utah,49027,1,0 +2020-04-04,Millard,Utah,49027,1,0 +2020-04-05,Millard,Utah,49027,1,0 +2020-04-06,Millard,Utah,49027,4,0 +2020-04-07,Millard,Utah,49027,2,0 +2020-04-08,Millard,Utah,49027,4,0 +2020-04-09,Millard,Utah,49027,4,0 +2020-04-10,Millard,Utah,49027,4,0 +2020-04-11,Millard,Utah,49027,4,0 +2020-04-12,Millard,Utah,49027,4,0 +2020-04-13,Millard,Utah,49027,4,0 +2020-04-14,Millard,Utah,49027,4,0 +2020-04-15,Millard,Utah,49027,4,0 +2020-04-16,Millard,Utah,49027,4,0 +2020-04-17,Millard,Utah,49027,6,0 +2020-04-18,Millard,Utah,49027,5,0 +2020-04-19,Millard,Utah,49027,5,0 +2020-04-20,Millard,Utah,49027,5,0 +2020-04-21,Millard,Utah,49027,5,0 +2020-04-22,Millard,Utah,49027,5,0 +2020-04-23,Millard,Utah,49027,5,0 +2020-04-24,Millard,Utah,49027,5,0 +2020-04-25,Millard,Utah,49027,5,0 +2020-04-26,Millard,Utah,49027,5,0 +2020-04-27,Millard,Utah,49027,5,0 +2020-04-28,Millard,Utah,49027,5,0 +2020-04-29,Millard,Utah,49027,5,0 +2020-04-30,Millard,Utah,49027,5,0 +2020-05-01,Millard,Utah,49027,5,0 +2020-05-02,Millard,Utah,49027,5,0 +2020-05-03,Millard,Utah,49027,5,0 +2020-05-04,Millard,Utah,49027,5,0 +2020-05-05,Millard,Utah,49027,5,0 +2020-05-06,Millard,Utah,49027,5,0 +2020-05-07,Millard,Utah,49027,5,0 +2020-05-08,Millard,Utah,49027,5,0 +2020-05-09,Millard,Utah,49027,5,0 +2020-05-10,Millard,Utah,49027,5,0 +2020-05-11,Millard,Utah,49027,5,0 +2020-05-12,Millard,Utah,49027,6,0 +2020-05-13,Millard,Utah,49027,6,0 +2020-05-14,Millard,Utah,49027,6,0 +2020-05-15,Millard,Utah,49027,6,0 +2020-05-16,Millard,Utah,49027,6,0 +2020-05-17,Millard,Utah,49027,6,0 +2020-05-18,Millard,Utah,49027,6,0 +2020-05-19,Millard,Utah,49027,6,0 +2020-05-20,Millard,Utah,49027,6,0 +2020-05-21,Millard,Utah,49027,6,0 +2020-05-22,Millard,Utah,49027,6,0 +2020-05-23,Millard,Utah,49027,6,0 +2020-05-24,Millard,Utah,49027,6,0 +2020-05-25,Millard,Utah,49027,6,0 +2020-05-26,Millard,Utah,49027,6,0 +2020-05-27,Millard,Utah,49027,6,0 +2020-05-28,Millard,Utah,49027,6,0 +2020-05-29,Millard,Utah,49027,6,0 +2020-05-30,Millard,Utah,49027,6,0 +2020-05-31,Millard,Utah,49027,6,0 +2020-06-01,Millard,Utah,49027,6,0 +2020-06-02,Millard,Utah,49027,6,0 +2020-06-03,Millard,Utah,49027,6,0 +2020-06-04,Millard,Utah,49027,6,0 +2020-06-05,Millard,Utah,49027,6,0 +2020-06-06,Millard,Utah,49027,6,0 +2020-06-07,Millard,Utah,49027,6,0 +2020-06-08,Millard,Utah,49027,6,0 +2020-06-09,Millard,Utah,49027,6,0 +2020-06-10,Millard,Utah,49027,6,0 +2020-06-11,Millard,Utah,49027,7,0 +2020-06-12,Millard,Utah,49027,7,0 +2020-06-13,Millard,Utah,49027,7,0 +2020-06-14,Millard,Utah,49027,7,0 +2020-06-15,Millard,Utah,49027,8,0 +2020-06-16,Millard,Utah,49027,8,0 +2020-06-17,Millard,Utah,49027,8,0 +2020-06-18,Millard,Utah,49027,8,0 +2020-06-19,Millard,Utah,49027,8,0 +2020-06-20,Millard,Utah,49027,8,0 +2020-06-21,Millard,Utah,49027,10,0 +2020-06-22,Millard,Utah,49027,12,0 +2020-06-23,Millard,Utah,49027,13,0 +2020-06-24,Millard,Utah,49027,14,0 +2020-06-25,Millard,Utah,49027,14,0 +2020-06-26,Millard,Utah,49027,27,0 +2020-06-27,Millard,Utah,49027,29,0 +2020-06-28,Millard,Utah,49027,38,0 +2020-06-29,Millard,Utah,49027,38,0 +2020-06-30,Millard,Utah,49027,47,0 +2020-07-01,Millard,Utah,49027,48,0 +2020-07-02,Millard,Utah,49027,48,0 +2020-07-03,Millard,Utah,49027,59,0 +2020-07-04,Millard,Utah,49027,59,0 +2020-07-05,Millard,Utah,49027,59,0 +2020-07-06,Millard,Utah,49027,73,0 +2020-07-07,Millard,Utah,49027,73,0 +2020-07-08,Millard,Utah,49027,79,0 +2020-07-09,Millard,Utah,49027,79,0 +2020-03-26,Morgan,Utah,49029,2,0 +2020-03-27,Morgan,Utah,49029,2,0 +2020-03-28,Morgan,Utah,49029,2,0 +2020-03-29,Morgan,Utah,49029,2,0 +2020-03-30,Morgan,Utah,49029,3,0 +2020-03-31,Morgan,Utah,49029,3,0 +2020-04-01,Morgan,Utah,49029,3,0 +2020-04-02,Morgan,Utah,49029,3,0 +2020-04-03,Morgan,Utah,49029,3,0 +2020-04-04,Morgan,Utah,49029,3,0 +2020-04-05,Morgan,Utah,49029,3,0 +2020-04-06,Morgan,Utah,49029,3,0 +2020-04-07,Morgan,Utah,49029,3,0 +2020-04-08,Morgan,Utah,49029,3,0 +2020-04-09,Morgan,Utah,49029,3,0 +2020-04-10,Morgan,Utah,49029,3,0 +2020-04-11,Morgan,Utah,49029,3,0 +2020-04-12,Morgan,Utah,49029,3,0 +2020-04-13,Morgan,Utah,49029,3,0 +2020-04-14,Morgan,Utah,49029,3,0 +2020-04-15,Morgan,Utah,49029,3,0 +2020-04-16,Morgan,Utah,49029,7,0 +2020-04-17,Morgan,Utah,49029,7,0 +2020-04-18,Morgan,Utah,49029,7,0 +2020-04-19,Morgan,Utah,49029,7,0 +2020-04-20,Morgan,Utah,49029,7,0 +2020-04-21,Morgan,Utah,49029,7,0 +2020-04-22,Morgan,Utah,49029,9,0 +2020-04-23,Morgan,Utah,49029,9,0 +2020-04-24,Morgan,Utah,49029,9,0 +2020-04-25,Morgan,Utah,49029,9,0 +2020-04-26,Morgan,Utah,49029,9,0 +2020-04-27,Morgan,Utah,49029,9,0 +2020-04-28,Morgan,Utah,49029,9,0 +2020-04-29,Morgan,Utah,49029,9,0 +2020-04-30,Morgan,Utah,49029,9,0 +2020-05-01,Morgan,Utah,49029,9,0 +2020-05-02,Morgan,Utah,49029,9,0 +2020-05-03,Morgan,Utah,49029,9,0 +2020-05-04,Morgan,Utah,49029,9,0 +2020-05-05,Morgan,Utah,49029,9,0 +2020-05-06,Morgan,Utah,49029,9,0 +2020-05-07,Morgan,Utah,49029,9,0 +2020-05-08,Morgan,Utah,49029,9,0 +2020-05-09,Morgan,Utah,49029,9,0 +2020-05-10,Morgan,Utah,49029,10,0 +2020-05-11,Morgan,Utah,49029,10,0 +2020-05-12,Morgan,Utah,49029,10,0 +2020-05-13,Morgan,Utah,49029,10,0 +2020-05-14,Morgan,Utah,49029,10,0 +2020-05-15,Morgan,Utah,49029,10,0 +2020-05-16,Morgan,Utah,49029,10,0 +2020-05-17,Morgan,Utah,49029,10,0 +2020-05-18,Morgan,Utah,49029,10,0 +2020-05-19,Morgan,Utah,49029,10,0 +2020-05-20,Morgan,Utah,49029,10,0 +2020-05-21,Morgan,Utah,49029,10,0 +2020-05-22,Morgan,Utah,49029,10,0 +2020-05-23,Morgan,Utah,49029,10,0 +2020-05-24,Morgan,Utah,49029,10,0 +2020-05-25,Morgan,Utah,49029,10,0 +2020-05-26,Morgan,Utah,49029,11,0 +2020-05-27,Morgan,Utah,49029,11,0 +2020-05-28,Morgan,Utah,49029,11,0 +2020-05-29,Morgan,Utah,49029,11,0 +2020-05-30,Morgan,Utah,49029,11,0 +2020-05-31,Morgan,Utah,49029,11,0 +2020-06-01,Morgan,Utah,49029,12,0 +2020-06-02,Morgan,Utah,49029,12,0 +2020-06-03,Morgan,Utah,49029,12,0 +2020-06-04,Morgan,Utah,49029,13,0 +2020-06-05,Morgan,Utah,49029,13,0 +2020-06-06,Morgan,Utah,49029,13,0 +2020-06-07,Morgan,Utah,49029,13,0 +2020-06-08,Morgan,Utah,49029,13,0 +2020-06-09,Morgan,Utah,49029,14,0 +2020-06-10,Morgan,Utah,49029,15,0 +2020-06-11,Morgan,Utah,49029,15,0 +2020-06-12,Morgan,Utah,49029,16,0 +2020-06-13,Morgan,Utah,49029,16,0 +2020-06-14,Morgan,Utah,49029,16,0 +2020-06-15,Morgan,Utah,49029,16,0 +2020-06-16,Morgan,Utah,49029,17,0 +2020-06-17,Morgan,Utah,49029,16,0 +2020-06-18,Morgan,Utah,49029,17,0 +2020-06-19,Morgan,Utah,49029,17,0 +2020-06-20,Morgan,Utah,49029,17,0 +2020-06-21,Morgan,Utah,49029,18,0 +2020-06-22,Morgan,Utah,49029,17,0 +2020-06-23,Morgan,Utah,49029,17,0 +2020-06-24,Morgan,Utah,49029,17,0 +2020-06-25,Morgan,Utah,49029,17,0 +2020-06-26,Morgan,Utah,49029,18,0 +2020-06-27,Morgan,Utah,49029,18,0 +2020-06-28,Morgan,Utah,49029,18,0 +2020-06-29,Morgan,Utah,49029,19,0 +2020-06-30,Morgan,Utah,49029,22,0 +2020-07-01,Morgan,Utah,49029,22,0 +2020-07-02,Morgan,Utah,49029,23,0 +2020-07-03,Morgan,Utah,49029,24,0 +2020-07-04,Morgan,Utah,49029,24,0 +2020-07-05,Morgan,Utah,49029,24,0 +2020-07-06,Morgan,Utah,49029,25,0 +2020-07-07,Morgan,Utah,49029,25,0 +2020-07-08,Morgan,Utah,49029,26,0 +2020-07-09,Morgan,Utah,49029,26,0 +2020-05-07,Piute,Utah,49031,1,0 +2020-05-08,Piute,Utah,49031,1,0 +2020-05-09,Piute,Utah,49031,1,0 +2020-05-10,Piute,Utah,49031,1,0 +2020-05-11,Piute,Utah,49031,1,0 +2020-05-12,Piute,Utah,49031,1,0 +2020-05-13,Piute,Utah,49031,1,0 +2020-05-14,Piute,Utah,49031,1,0 +2020-05-15,Piute,Utah,49031,1,0 +2020-05-16,Piute,Utah,49031,1,0 +2020-05-17,Piute,Utah,49031,1,0 +2020-05-18,Piute,Utah,49031,1,0 +2020-05-19,Piute,Utah,49031,1,0 +2020-05-20,Piute,Utah,49031,1,0 +2020-05-21,Piute,Utah,49031,1,0 +2020-05-22,Piute,Utah,49031,1,0 +2020-05-23,Piute,Utah,49031,1,0 +2020-05-24,Piute,Utah,49031,1,0 +2020-05-25,Piute,Utah,49031,1,0 +2020-05-26,Piute,Utah,49031,2,0 +2020-05-27,Piute,Utah,49031,2,0 +2020-05-28,Piute,Utah,49031,2,0 +2020-05-29,Piute,Utah,49031,2,0 +2020-05-30,Piute,Utah,49031,2,0 +2020-05-31,Piute,Utah,49031,2,0 +2020-06-01,Piute,Utah,49031,2,0 +2020-06-02,Piute,Utah,49031,2,0 +2020-06-03,Piute,Utah,49031,2,0 +2020-06-04,Piute,Utah,49031,2,0 +2020-06-05,Piute,Utah,49031,2,0 +2020-06-06,Piute,Utah,49031,2,0 +2020-06-07,Piute,Utah,49031,2,0 +2020-06-08,Piute,Utah,49031,2,0 +2020-06-09,Piute,Utah,49031,2,0 +2020-06-10,Piute,Utah,49031,2,0 +2020-06-11,Piute,Utah,49031,2,0 +2020-06-12,Piute,Utah,49031,2,0 +2020-06-13,Piute,Utah,49031,2,0 +2020-06-14,Piute,Utah,49031,2,0 +2020-06-15,Piute,Utah,49031,2,0 +2020-06-16,Piute,Utah,49031,2,0 +2020-06-17,Piute,Utah,49031,2,0 +2020-06-18,Piute,Utah,49031,2,0 +2020-06-19,Piute,Utah,49031,2,0 +2020-06-20,Piute,Utah,49031,2,0 +2020-06-21,Piute,Utah,49031,2,0 +2020-06-22,Piute,Utah,49031,2,0 +2020-06-23,Piute,Utah,49031,2,0 +2020-06-24,Piute,Utah,49031,2,0 +2020-06-25,Piute,Utah,49031,2,0 +2020-06-26,Piute,Utah,49031,2,0 +2020-06-27,Piute,Utah,49031,2,0 +2020-06-28,Piute,Utah,49031,3,0 +2020-06-29,Piute,Utah,49031,3,0 +2020-06-30,Piute,Utah,49031,3,0 +2020-07-01,Piute,Utah,49031,3,0 +2020-07-02,Piute,Utah,49031,3,0 +2020-07-03,Piute,Utah,49031,4,0 +2020-07-04,Piute,Utah,49031,4,0 +2020-07-05,Piute,Utah,49031,4,0 +2020-07-06,Piute,Utah,49031,4,0 +2020-07-07,Piute,Utah,49031,4,0 +2020-07-08,Piute,Utah,49031,4,0 +2020-07-09,Piute,Utah,49031,4,0 +2020-06-12,Rich,Utah,49033,1,0 +2020-06-13,Rich,Utah,49033,1,0 +2020-06-14,Rich,Utah,49033,1,0 +2020-06-15,Rich,Utah,49033,1,0 +2020-06-16,Rich,Utah,49033,2,0 +2020-06-17,Rich,Utah,49033,2,0 +2020-06-18,Rich,Utah,49033,3,0 +2020-06-19,Rich,Utah,49033,3,0 +2020-06-20,Rich,Utah,49033,3,0 +2020-06-21,Rich,Utah,49033,3,0 +2020-06-22,Rich,Utah,49033,3,0 +2020-06-23,Rich,Utah,49033,3,0 +2020-06-24,Rich,Utah,49033,3,0 +2020-06-25,Rich,Utah,49033,3,0 +2020-06-26,Rich,Utah,49033,3,0 +2020-06-27,Rich,Utah,49033,4,0 +2020-06-28,Rich,Utah,49033,4,0 +2020-06-29,Rich,Utah,49033,4,0 +2020-06-30,Rich,Utah,49033,4,0 +2020-07-01,Rich,Utah,49033,4,0 +2020-07-02,Rich,Utah,49033,4,0 +2020-07-03,Rich,Utah,49033,4,0 +2020-07-04,Rich,Utah,49033,4,0 +2020-07-05,Rich,Utah,49033,4,0 +2020-07-06,Rich,Utah,49033,4,0 +2020-07-07,Rich,Utah,49033,4,0 +2020-07-08,Rich,Utah,49033,4,0 +2020-07-09,Rich,Utah,49033,4,0 +2020-02-25,Salt Lake,Utah,49035,1,0 +2020-02-26,Salt Lake,Utah,49035,1,0 +2020-02-27,Salt Lake,Utah,49035,1,0 +2020-02-28,Salt Lake,Utah,49035,1,0 +2020-02-29,Salt Lake,Utah,49035,1,0 +2020-03-01,Salt Lake,Utah,49035,1,0 +2020-03-02,Salt Lake,Utah,49035,1,0 +2020-03-03,Salt Lake,Utah,49035,1,0 +2020-03-04,Salt Lake,Utah,49035,1,0 +2020-03-05,Salt Lake,Utah,49035,1,0 +2020-03-06,Salt Lake,Utah,49035,1,0 +2020-03-07,Salt Lake,Utah,49035,1,0 +2020-03-08,Salt Lake,Utah,49035,1,0 +2020-03-09,Salt Lake,Utah,49035,1,0 +2020-03-10,Salt Lake,Utah,49035,1,0 +2020-03-11,Salt Lake,Utah,49035,2,0 +2020-03-12,Salt Lake,Utah,49035,4,0 +2020-03-13,Salt Lake,Utah,49035,4,0 +2020-03-14,Salt Lake,Utah,49035,15,0 +2020-03-15,Salt Lake,Utah,49035,15,0 +2020-03-16,Salt Lake,Utah,49035,20,0 +2020-03-17,Salt Lake,Utah,49035,23,0 +2020-03-18,Salt Lake,Utah,49035,24,0 +2020-03-19,Salt Lake,Utah,49035,31,0 +2020-03-20,Salt Lake,Utah,49035,46,0 +2020-03-21,Salt Lake,Utah,49035,60,0 +2020-03-22,Salt Lake,Utah,49035,84,0 +2020-03-23,Salt Lake,Utah,49035,112,0 +2020-03-24,Salt Lake,Utah,49035,127,0 +2020-03-25,Salt Lake,Utah,49035,151,0 +2020-03-26,Salt Lake,Utah,49035,181,0 +2020-03-27,Salt Lake,Utah,49035,212,0 +2020-03-28,Salt Lake,Utah,49035,276,0 +2020-03-29,Salt Lake,Utah,49035,324,0 +2020-03-30,Salt Lake,Utah,49035,363,0 +2020-03-31,Salt Lake,Utah,49035,396,0 +2020-04-01,Salt Lake,Utah,49035,444,1 +2020-04-02,Salt Lake,Utah,49035,476,1 +2020-04-03,Salt Lake,Utah,49035,541,1 +2020-04-04,Salt Lake,Utah,49035,650,1 +2020-04-05,Salt Lake,Utah,49035,741,1 +2020-04-06,Salt Lake,Utah,49035,741,1 +2020-04-07,Salt Lake,Utah,49035,807,1 +2020-04-08,Salt Lake,Utah,49035,868,7 +2020-04-09,Salt Lake,Utah,49035,935,7 +2020-04-10,Salt Lake,Utah,49035,1011,7 +2020-04-11,Salt Lake,Utah,49035,1071,7 +2020-04-12,Salt Lake,Utah,49035,1126,7 +2020-04-13,Salt Lake,Utah,49035,1157,7 +2020-04-14,Salt Lake,Utah,49035,1187,7 +2020-04-15,Salt Lake,Utah,49035,1285,7 +2020-04-16,Salt Lake,Utah,49035,1377,12 +2020-04-17,Salt Lake,Utah,49035,1456,12 +2020-04-18,Salt Lake,Utah,49035,1547,13 +2020-04-19,Salt Lake,Utah,49035,1615,15 +2020-04-20,Salt Lake,Utah,49035,1671,15 +2020-04-21,Salt Lake,Utah,49035,1714,18 +2020-04-22,Salt Lake,Utah,49035,1795,19 +2020-04-23,Salt Lake,Utah,49035,1889,20 +2020-04-24,Salt Lake,Utah,49035,1975,23 +2020-04-25,Salt Lake,Utah,49035,2051,25 +2020-04-26,Salt Lake,Utah,49035,2144,25 +2020-04-27,Salt Lake,Utah,49035,2190,24 +2020-04-28,Salt Lake,Utah,49035,2256,28 +2020-04-29,Salt Lake,Utah,49035,2348,28 +2020-04-30,Salt Lake,Utah,49035,2438,29 +2020-05-01,Salt Lake,Utah,49035,2526,30 +2020-05-02,Salt Lake,Utah,49035,2609,30 +2020-05-03,Salt Lake,Utah,49035,2707,31 +2020-05-04,Salt Lake,Utah,49035,2769,31 +2020-05-05,Salt Lake,Utah,49035,2832,35 +2020-05-06,Salt Lake,Utah,49035,2919,38 +2020-05-07,Salt Lake,Utah,49035,3010,39 +2020-05-08,Salt Lake,Utah,49035,3104,39 +2020-05-09,Salt Lake,Utah,49035,3206,44 +2020-05-10,Salt Lake,Utah,49035,3291,44 +2020-05-11,Salt Lake,Utah,49035,3370,48 +2020-05-12,Salt Lake,Utah,49035,3425,51 +2020-05-13,Salt Lake,Utah,49035,3530,52 +2020-05-14,Salt Lake,Utah,49035,3609,52 +2020-05-15,Salt Lake,Utah,49035,3717,55 +2020-05-16,Salt Lake,Utah,49035,3785,55 +2020-05-17,Salt Lake,Utah,49035,3883,56 +2020-05-18,Salt Lake,Utah,49035,3942,56 +2020-05-19,Salt Lake,Utah,49035,4019,62 +2020-05-20,Salt Lake,Utah,49035,4123,62 +2020-05-21,Salt Lake,Utah,49035,4217,65 +2020-05-22,Salt Lake,Utah,49035,4308,65 +2020-05-23,Salt Lake,Utah,49035,4441,68 +2020-05-24,Salt Lake,Utah,49035,4515,68 +2020-05-25,Salt Lake,Utah,49035,4583,68 +2020-05-26,Salt Lake,Utah,49035,4632,70 +2020-05-27,Salt Lake,Utah,49035,4682,71 +2020-05-28,Salt Lake,Utah,49035,4806,71 +2020-05-29,Salt Lake,Utah,49035,4994,71 +2020-05-30,Salt Lake,Utah,49035,5118,74 +2020-05-31,Salt Lake,Utah,49035,5242,74 +2020-06-01,Salt Lake,Utah,49035,5340,74 +2020-06-02,Salt Lake,Utah,49035,5449,74 +2020-06-03,Salt Lake,Utah,49035,5621,78 +2020-06-04,Salt Lake,Utah,49035,5760,78 +2020-06-05,Salt Lake,Utah,49035,5918,81 +2020-06-06,Salt Lake,Utah,49035,6096,81 +2020-06-07,Salt Lake,Utah,49035,6182,81 +2020-06-08,Salt Lake,Utah,49035,6313,83 +2020-06-09,Salt Lake,Utah,49035,6437,85 +2020-06-10,Salt Lake,Utah,49035,6619,85 +2020-06-11,Salt Lake,Utah,49035,6783,87 +2020-06-12,Salt Lake,Utah,49035,6966,93 +2020-06-13,Salt Lake,Utah,49035,7187,93 +2020-06-14,Salt Lake,Utah,49035,7309,93 +2020-06-15,Salt Lake,Utah,49035,7506,95 +2020-06-16,Salt Lake,Utah,49035,7644,96 +2020-06-17,Salt Lake,Utah,49035,7846,99 +2020-06-18,Salt Lake,Utah,49035,8140,100 +2020-06-19,Salt Lake,Utah,49035,8404,102 +2020-06-20,Salt Lake,Utah,49035,8713,102 +2020-06-21,Salt Lake,Utah,49035,8878,102 +2020-06-22,Salt Lake,Utah,49035,9073,102 +2020-06-23,Salt Lake,Utah,49035,9252,105 +2020-06-24,Salt Lake,Utah,49035,9501,105 +2020-06-25,Salt Lake,Utah,49035,9830,105 +2020-06-26,Salt Lake,Utah,49035,10163,106 +2020-06-27,Salt Lake,Utah,49035,10458,106 +2020-06-28,Salt Lake,Utah,49035,10629,106 +2020-06-29,Salt Lake,Utah,49035,10951,107 +2020-06-30,Salt Lake,Utah,49035,11227,107 +2020-07-01,Salt Lake,Utah,49035,11487,108 +2020-07-02,Salt Lake,Utah,49035,11833,111 +2020-07-03,Salt Lake,Utah,49035,12149,112 +2020-07-04,Salt Lake,Utah,49035,12435,112 +2020-07-05,Salt Lake,Utah,49035,12540,113 +2020-07-06,Salt Lake,Utah,49035,12842,117 +2020-07-07,Salt Lake,Utah,49035,13069,120 +2020-07-08,Salt Lake,Utah,49035,13419,122 +2020-07-09,Salt Lake,Utah,49035,13763,124 +2020-03-28,San Juan,Utah,49037,1,0 +2020-03-29,San Juan,Utah,49037,4,0 +2020-03-30,San Juan,Utah,49037,4,0 +2020-03-31,San Juan,Utah,49037,4,0 +2020-04-01,San Juan,Utah,49037,4,0 +2020-04-02,San Juan,Utah,49037,5,0 +2020-04-03,San Juan,Utah,49037,5,0 +2020-04-04,San Juan,Utah,49037,5,0 +2020-04-05,San Juan,Utah,49037,5,0 +2020-04-06,San Juan,Utah,49037,5,0 +2020-04-07,San Juan,Utah,49037,5,0 +2020-04-08,San Juan,Utah,49037,6,0 +2020-04-09,San Juan,Utah,49037,6,0 +2020-04-10,San Juan,Utah,49037,6,0 +2020-04-11,San Juan,Utah,49037,8,0 +2020-04-12,San Juan,Utah,49037,8,0 +2020-04-13,San Juan,Utah,49037,9,0 +2020-04-14,San Juan,Utah,49037,9,0 +2020-04-15,San Juan,Utah,49037,9,0 +2020-04-16,San Juan,Utah,49037,9,0 +2020-04-17,San Juan,Utah,49037,17,2 +2020-04-18,San Juan,Utah,49037,18,2 +2020-04-19,San Juan,Utah,49037,22,2 +2020-04-20,San Juan,Utah,49037,29,2 +2020-04-21,San Juan,Utah,49037,34,2 +2020-04-22,San Juan,Utah,49037,34,2 +2020-04-23,San Juan,Utah,49037,37,2 +2020-04-24,San Juan,Utah,49037,37,2 +2020-04-25,San Juan,Utah,49037,40,2 +2020-04-26,San Juan,Utah,49037,43,2 +2020-04-27,San Juan,Utah,49037,45,2 +2020-04-28,San Juan,Utah,49037,45,2 +2020-04-29,San Juan,Utah,49037,45,2 +2020-04-30,San Juan,Utah,49037,46,2 +2020-05-01,San Juan,Utah,49037,47,2 +2020-05-02,San Juan,Utah,49037,78,2 +2020-05-03,San Juan,Utah,49037,100,2 +2020-05-04,San Juan,Utah,49037,116,2 +2020-05-05,San Juan,Utah,49037,119,2 +2020-05-06,San Juan,Utah,49037,126,2 +2020-05-07,San Juan,Utah,49037,132,2 +2020-05-08,San Juan,Utah,49037,135,2 +2020-05-09,San Juan,Utah,49037,145,3 +2020-05-10,San Juan,Utah,49037,147,3 +2020-05-11,San Juan,Utah,49037,149,3 +2020-05-12,San Juan,Utah,49037,152,3 +2020-05-13,San Juan,Utah,49037,152,3 +2020-05-14,San Juan,Utah,49037,154,3 +2020-05-15,San Juan,Utah,49037,159,4 +2020-05-16,San Juan,Utah,49037,177,4 +2020-05-17,San Juan,Utah,49037,198,4 +2020-05-18,San Juan,Utah,49037,227,4 +2020-05-19,San Juan,Utah,49037,238,4 +2020-05-20,San Juan,Utah,49037,246,4 +2020-05-21,San Juan,Utah,49037,251,4 +2020-05-22,San Juan,Utah,49037,254,4 +2020-05-23,San Juan,Utah,49037,259,4 +2020-05-24,San Juan,Utah,49037,264,4 +2020-05-25,San Juan,Utah,49037,268,4 +2020-05-26,San Juan,Utah,49037,272,5 +2020-05-27,San Juan,Utah,49037,272,5 +2020-05-28,San Juan,Utah,49037,283,5 +2020-05-29,San Juan,Utah,49037,286,5 +2020-05-30,San Juan,Utah,49037,289,5 +2020-05-31,San Juan,Utah,49037,297,5 +2020-06-01,San Juan,Utah,49037,299,5 +2020-06-02,San Juan,Utah,49037,308,5 +2020-06-03,San Juan,Utah,49037,309,5 +2020-06-04,San Juan,Utah,49037,312,5 +2020-06-05,San Juan,Utah,49037,314,5 +2020-06-06,San Juan,Utah,49037,333,5 +2020-06-07,San Juan,Utah,49037,333,5 +2020-06-08,San Juan,Utah,49037,333,5 +2020-06-09,San Juan,Utah,49037,337,5 +2020-06-10,San Juan,Utah,49037,339,5 +2020-06-11,San Juan,Utah,49037,343,5 +2020-06-12,San Juan,Utah,49037,350,5 +2020-06-13,San Juan,Utah,49037,351,5 +2020-06-14,San Juan,Utah,49037,357,5 +2020-06-15,San Juan,Utah,49037,363,6 +2020-06-16,San Juan,Utah,49037,365,6 +2020-06-17,San Juan,Utah,49037,367,6 +2020-06-18,San Juan,Utah,49037,374,7 +2020-06-19,San Juan,Utah,49037,380,7 +2020-06-20,San Juan,Utah,49037,382,7 +2020-06-21,San Juan,Utah,49037,383,7 +2020-06-22,San Juan,Utah,49037,386,7 +2020-06-23,San Juan,Utah,49037,388,7 +2020-06-24,San Juan,Utah,49037,389,7 +2020-06-25,San Juan,Utah,49037,391,7 +2020-06-26,San Juan,Utah,49037,395,7 +2020-06-27,San Juan,Utah,49037,399,8 +2020-06-28,San Juan,Utah,49037,399,8 +2020-06-29,San Juan,Utah,49037,400,8 +2020-06-30,San Juan,Utah,49037,399,9 +2020-07-01,San Juan,Utah,49037,402,9 +2020-07-02,San Juan,Utah,49037,404,9 +2020-07-03,San Juan,Utah,49037,403,9 +2020-07-04,San Juan,Utah,49037,413,9 +2020-07-05,San Juan,Utah,49037,414,9 +2020-07-06,San Juan,Utah,49037,416,9 +2020-07-07,San Juan,Utah,49037,417,9 +2020-07-08,San Juan,Utah,49037,425,10 +2020-07-09,San Juan,Utah,49037,441,11 +2020-04-18,Sanpete,Utah,49039,3,0 +2020-04-19,Sanpete,Utah,49039,3,0 +2020-04-20,Sanpete,Utah,49039,3,0 +2020-04-21,Sanpete,Utah,49039,3,0 +2020-04-22,Sanpete,Utah,49039,3,0 +2020-04-23,Sanpete,Utah,49039,4,0 +2020-04-24,Sanpete,Utah,49039,4,0 +2020-04-25,Sanpete,Utah,49039,4,0 +2020-04-26,Sanpete,Utah,49039,5,0 +2020-04-27,Sanpete,Utah,49039,5,0 +2020-04-28,Sanpete,Utah,49039,5,0 +2020-04-29,Sanpete,Utah,49039,5,0 +2020-04-30,Sanpete,Utah,49039,5,0 +2020-05-01,Sanpete,Utah,49039,5,0 +2020-05-02,Sanpete,Utah,49039,5,0 +2020-05-03,Sanpete,Utah,49039,5,0 +2020-05-04,Sanpete,Utah,49039,6,0 +2020-05-05,Sanpete,Utah,49039,6,0 +2020-05-06,Sanpete,Utah,49039,6,0 +2020-05-07,Sanpete,Utah,49039,6,0 +2020-05-08,Sanpete,Utah,49039,6,0 +2020-05-09,Sanpete,Utah,49039,6,0 +2020-05-10,Sanpete,Utah,49039,6,0 +2020-05-11,Sanpete,Utah,49039,6,0 +2020-05-12,Sanpete,Utah,49039,6,0 +2020-05-13,Sanpete,Utah,49039,6,0 +2020-05-14,Sanpete,Utah,49039,6,0 +2020-05-15,Sanpete,Utah,49039,6,0 +2020-05-16,Sanpete,Utah,49039,6,0 +2020-05-17,Sanpete,Utah,49039,6,0 +2020-05-18,Sanpete,Utah,49039,6,0 +2020-05-19,Sanpete,Utah,49039,6,0 +2020-05-20,Sanpete,Utah,49039,7,0 +2020-05-21,Sanpete,Utah,49039,7,0 +2020-05-22,Sanpete,Utah,49039,7,0 +2020-05-23,Sanpete,Utah,49039,7,0 +2020-05-24,Sanpete,Utah,49039,7,0 +2020-05-25,Sanpete,Utah,49039,7,0 +2020-05-26,Sanpete,Utah,49039,7,0 +2020-05-27,Sanpete,Utah,49039,7,0 +2020-05-28,Sanpete,Utah,49039,12,0 +2020-05-29,Sanpete,Utah,49039,12,0 +2020-05-30,Sanpete,Utah,49039,12,0 +2020-05-31,Sanpete,Utah,49039,12,0 +2020-06-01,Sanpete,Utah,49039,12,0 +2020-06-02,Sanpete,Utah,49039,12,0 +2020-06-03,Sanpete,Utah,49039,12,0 +2020-06-04,Sanpete,Utah,49039,13,0 +2020-06-05,Sanpete,Utah,49039,14,0 +2020-06-06,Sanpete,Utah,49039,14,0 +2020-06-07,Sanpete,Utah,49039,14,0 +2020-06-08,Sanpete,Utah,49039,14,0 +2020-06-09,Sanpete,Utah,49039,16,0 +2020-06-10,Sanpete,Utah,49039,17,0 +2020-06-11,Sanpete,Utah,49039,20,0 +2020-06-12,Sanpete,Utah,49039,21,0 +2020-06-13,Sanpete,Utah,49039,21,0 +2020-06-14,Sanpete,Utah,49039,21,0 +2020-06-15,Sanpete,Utah,49039,27,0 +2020-06-16,Sanpete,Utah,49039,28,0 +2020-06-17,Sanpete,Utah,49039,29,0 +2020-06-18,Sanpete,Utah,49039,29,0 +2020-06-19,Sanpete,Utah,49039,35,0 +2020-06-20,Sanpete,Utah,49039,39,0 +2020-06-21,Sanpete,Utah,49039,41,0 +2020-06-22,Sanpete,Utah,49039,42,0 +2020-06-23,Sanpete,Utah,49039,43,0 +2020-06-24,Sanpete,Utah,49039,44,0 +2020-06-25,Sanpete,Utah,49039,44,0 +2020-06-26,Sanpete,Utah,49039,45,0 +2020-06-27,Sanpete,Utah,49039,45,0 +2020-06-28,Sanpete,Utah,49039,47,0 +2020-06-29,Sanpete,Utah,49039,47,0 +2020-06-30,Sanpete,Utah,49039,50,0 +2020-07-01,Sanpete,Utah,49039,53,0 +2020-07-02,Sanpete,Utah,49039,53,0 +2020-07-03,Sanpete,Utah,49039,56,0 +2020-07-04,Sanpete,Utah,49039,56,0 +2020-07-05,Sanpete,Utah,49039,56,0 +2020-07-06,Sanpete,Utah,49039,66,0 +2020-07-07,Sanpete,Utah,49039,66,0 +2020-07-08,Sanpete,Utah,49039,69,0 +2020-07-09,Sanpete,Utah,49039,69,0 +2020-04-15,Sevier,Utah,49041,2,0 +2020-04-16,Sevier,Utah,49041,2,0 +2020-04-17,Sevier,Utah,49041,4,0 +2020-04-18,Sevier,Utah,49041,5,0 +2020-04-19,Sevier,Utah,49041,5,0 +2020-04-20,Sevier,Utah,49041,5,0 +2020-04-21,Sevier,Utah,49041,5,0 +2020-04-22,Sevier,Utah,49041,5,0 +2020-04-23,Sevier,Utah,49041,5,0 +2020-04-24,Sevier,Utah,49041,5,0 +2020-04-25,Sevier,Utah,49041,5,0 +2020-04-26,Sevier,Utah,49041,5,0 +2020-04-27,Sevier,Utah,49041,5,0 +2020-04-28,Sevier,Utah,49041,5,0 +2020-04-29,Sevier,Utah,49041,5,0 +2020-04-30,Sevier,Utah,49041,5,0 +2020-05-01,Sevier,Utah,49041,6,0 +2020-05-02,Sevier,Utah,49041,6,0 +2020-05-03,Sevier,Utah,49041,6,0 +2020-05-04,Sevier,Utah,49041,7,0 +2020-05-05,Sevier,Utah,49041,7,0 +2020-05-06,Sevier,Utah,49041,7,0 +2020-05-07,Sevier,Utah,49041,7,0 +2020-05-08,Sevier,Utah,49041,8,0 +2020-05-09,Sevier,Utah,49041,8,0 +2020-05-10,Sevier,Utah,49041,8,0 +2020-05-11,Sevier,Utah,49041,8,0 +2020-05-12,Sevier,Utah,49041,8,0 +2020-05-13,Sevier,Utah,49041,8,0 +2020-05-14,Sevier,Utah,49041,8,0 +2020-05-15,Sevier,Utah,49041,8,0 +2020-05-16,Sevier,Utah,49041,8,0 +2020-05-17,Sevier,Utah,49041,8,0 +2020-05-18,Sevier,Utah,49041,8,0 +2020-05-19,Sevier,Utah,49041,8,0 +2020-05-20,Sevier,Utah,49041,8,0 +2020-05-21,Sevier,Utah,49041,8,0 +2020-05-22,Sevier,Utah,49041,8,0 +2020-05-23,Sevier,Utah,49041,8,0 +2020-05-24,Sevier,Utah,49041,8,0 +2020-05-25,Sevier,Utah,49041,8,0 +2020-05-26,Sevier,Utah,49041,8,0 +2020-05-27,Sevier,Utah,49041,8,0 +2020-05-28,Sevier,Utah,49041,8,0 +2020-05-29,Sevier,Utah,49041,8,0 +2020-05-30,Sevier,Utah,49041,8,0 +2020-05-31,Sevier,Utah,49041,8,0 +2020-06-01,Sevier,Utah,49041,8,0 +2020-06-02,Sevier,Utah,49041,9,0 +2020-06-03,Sevier,Utah,49041,9,0 +2020-06-04,Sevier,Utah,49041,9,0 +2020-06-05,Sevier,Utah,49041,9,0 +2020-06-06,Sevier,Utah,49041,10,0 +2020-06-07,Sevier,Utah,49041,10,0 +2020-06-08,Sevier,Utah,49041,10,0 +2020-06-09,Sevier,Utah,49041,13,0 +2020-06-10,Sevier,Utah,49041,14,0 +2020-06-11,Sevier,Utah,49041,19,0 +2020-06-12,Sevier,Utah,49041,22,0 +2020-06-13,Sevier,Utah,49041,22,0 +2020-06-14,Sevier,Utah,49041,22,0 +2020-06-15,Sevier,Utah,49041,29,0 +2020-06-16,Sevier,Utah,49041,29,0 +2020-06-17,Sevier,Utah,49041,29,0 +2020-06-18,Sevier,Utah,49041,29,0 +2020-06-19,Sevier,Utah,49041,33,0 +2020-06-20,Sevier,Utah,49041,38,0 +2020-06-21,Sevier,Utah,49041,39,0 +2020-06-22,Sevier,Utah,49041,39,0 +2020-06-23,Sevier,Utah,49041,39,0 +2020-06-24,Sevier,Utah,49041,39,0 +2020-06-25,Sevier,Utah,49041,39,0 +2020-06-26,Sevier,Utah,49041,43,0 +2020-06-27,Sevier,Utah,49041,46,0 +2020-06-28,Sevier,Utah,49041,47,0 +2020-06-29,Sevier,Utah,49041,47,0 +2020-06-30,Sevier,Utah,49041,48,0 +2020-07-01,Sevier,Utah,49041,48,0 +2020-07-02,Sevier,Utah,49041,48,0 +2020-07-03,Sevier,Utah,49041,50,0 +2020-07-04,Sevier,Utah,49041,50,0 +2020-07-05,Sevier,Utah,49041,50,0 +2020-07-06,Sevier,Utah,49041,52,0 +2020-07-07,Sevier,Utah,49041,52,0 +2020-07-08,Sevier,Utah,49041,58,0 +2020-07-09,Sevier,Utah,49041,58,0 +2020-03-14,Summit,Utah,49043,2,0 +2020-03-15,Summit,Utah,49043,8,0 +2020-03-16,Summit,Utah,49043,11,0 +2020-03-17,Summit,Utah,49043,15,0 +2020-03-18,Summit,Utah,49043,22,0 +2020-03-19,Summit,Utah,49043,26,0 +2020-03-20,Summit,Utah,49043,35,0 +2020-03-21,Summit,Utah,49043,35,0 +2020-03-22,Summit,Utah,49043,50,0 +2020-03-23,Summit,Utah,49043,73,0 +2020-03-24,Summit,Utah,49043,90,0 +2020-03-25,Summit,Utah,49043,90,0 +2020-03-26,Summit,Utah,49043,103,0 +2020-03-27,Summit,Utah,49043,110,0 +2020-03-28,Summit,Utah,49043,127,0 +2020-03-29,Summit,Utah,49043,159,0 +2020-03-30,Summit,Utah,49043,176,0 +2020-03-31,Summit,Utah,49043,172,0 +2020-04-01,Summit,Utah,49043,195,0 +2020-04-02,Summit,Utah,49043,195,0 +2020-04-03,Summit,Utah,49043,222,0 +2020-04-04,Summit,Utah,49043,230,0 +2020-04-05,Summit,Utah,49043,256,0 +2020-04-06,Summit,Utah,49043,260,0 +2020-04-07,Summit,Utah,49043,265,0 +2020-04-08,Summit,Utah,49043,273,0 +2020-04-09,Summit,Utah,49043,289,0 +2020-04-10,Summit,Utah,49043,296,0 +2020-04-11,Summit,Utah,49043,300,0 +2020-04-12,Summit,Utah,49043,304,0 +2020-04-13,Summit,Utah,49043,306,0 +2020-04-14,Summit,Utah,49043,306,0 +2020-04-15,Summit,Utah,49043,306,0 +2020-04-16,Summit,Utah,49043,308,0 +2020-04-17,Summit,Utah,49043,311,0 +2020-04-18,Summit,Utah,49043,316,0 +2020-04-19,Summit,Utah,49043,318,0 +2020-04-20,Summit,Utah,49043,331,0 +2020-04-21,Summit,Utah,49043,335,0 +2020-04-22,Summit,Utah,49043,341,0 +2020-04-23,Summit,Utah,49043,343,0 +2020-04-24,Summit,Utah,49043,351,0 +2020-04-25,Summit,Utah,49043,355,0 +2020-04-26,Summit,Utah,49043,357,0 +2020-04-27,Summit,Utah,49043,358,0 +2020-04-28,Summit,Utah,49043,359,0 +2020-04-29,Summit,Utah,49043,361,0 +2020-04-30,Summit,Utah,49043,369,0 +2020-05-01,Summit,Utah,49043,373,0 +2020-05-02,Summit,Utah,49043,375,0 +2020-05-03,Summit,Utah,49043,376,0 +2020-05-04,Summit,Utah,49043,377,0 +2020-05-05,Summit,Utah,49043,382,0 +2020-05-06,Summit,Utah,49043,382,0 +2020-05-07,Summit,Utah,49043,382,0 +2020-05-08,Summit,Utah,49043,384,0 +2020-05-09,Summit,Utah,49043,385,0 +2020-05-10,Summit,Utah,49043,385,0 +2020-05-11,Summit,Utah,49043,386,0 +2020-05-12,Summit,Utah,49043,388,0 +2020-05-13,Summit,Utah,49043,392,0 +2020-05-14,Summit,Utah,49043,393,0 +2020-05-15,Summit,Utah,49043,396,0 +2020-05-16,Summit,Utah,49043,400,0 +2020-05-17,Summit,Utah,49043,401,0 +2020-05-18,Summit,Utah,49043,401,0 +2020-05-19,Summit,Utah,49043,403,0 +2020-05-20,Summit,Utah,49043,403,0 +2020-05-21,Summit,Utah,49043,404,0 +2020-05-22,Summit,Utah,49043,403,0 +2020-05-23,Summit,Utah,49043,403,0 +2020-05-24,Summit,Utah,49043,405,0 +2020-05-25,Summit,Utah,49043,405,0 +2020-05-26,Summit,Utah,49043,405,0 +2020-05-27,Summit,Utah,49043,407,0 +2020-05-28,Summit,Utah,49043,409,0 +2020-05-29,Summit,Utah,49043,412,0 +2020-05-30,Summit,Utah,49043,412,0 +2020-05-31,Summit,Utah,49043,415,0 +2020-06-01,Summit,Utah,49043,416,0 +2020-06-02,Summit,Utah,49043,417,0 +2020-06-03,Summit,Utah,49043,418,0 +2020-06-04,Summit,Utah,49043,419,0 +2020-06-05,Summit,Utah,49043,422,0 +2020-06-06,Summit,Utah,49043,426,0 +2020-06-07,Summit,Utah,49043,434,0 +2020-06-08,Summit,Utah,49043,437,0 +2020-06-09,Summit,Utah,49043,440,0 +2020-06-10,Summit,Utah,49043,443,0 +2020-06-11,Summit,Utah,49043,442,0 +2020-06-12,Summit,Utah,49043,444,0 +2020-06-13,Summit,Utah,49043,446,0 +2020-06-14,Summit,Utah,49043,449,0 +2020-06-15,Summit,Utah,49043,449,0 +2020-06-16,Summit,Utah,49043,448,0 +2020-06-17,Summit,Utah,49043,451,0 +2020-06-18,Summit,Utah,49043,453,0 +2020-06-19,Summit,Utah,49043,455,0 +2020-06-20,Summit,Utah,49043,460,0 +2020-06-21,Summit,Utah,49043,463,0 +2020-06-22,Summit,Utah,49043,466,0 +2020-06-23,Summit,Utah,49043,470,0 +2020-06-24,Summit,Utah,49043,474,0 +2020-06-25,Summit,Utah,49043,477,0 +2020-06-26,Summit,Utah,49043,480,0 +2020-06-27,Summit,Utah,49043,482,0 +2020-06-28,Summit,Utah,49043,483,0 +2020-06-29,Summit,Utah,49043,485,0 +2020-06-30,Summit,Utah,49043,488,0 +2020-07-01,Summit,Utah,49043,493,0 +2020-07-02,Summit,Utah,49043,498,0 +2020-07-03,Summit,Utah,49043,508,1 +2020-07-04,Summit,Utah,49043,515,1 +2020-07-05,Summit,Utah,49043,519,1 +2020-07-06,Summit,Utah,49043,534,1 +2020-07-07,Summit,Utah,49043,538,1 +2020-07-08,Summit,Utah,49043,543,1 +2020-07-09,Summit,Utah,49043,553,1 +2020-03-16,Tooele,Utah,49045,1,0 +2020-03-17,Tooele,Utah,49045,1,0 +2020-03-18,Tooele,Utah,49045,1,0 +2020-03-19,Tooele,Utah,49045,1,0 +2020-03-20,Tooele,Utah,49045,2,0 +2020-03-21,Tooele,Utah,49045,2,0 +2020-03-22,Tooele,Utah,49045,3,0 +2020-03-23,Tooele,Utah,49045,3,0 +2020-03-24,Tooele,Utah,49045,3,0 +2020-03-25,Tooele,Utah,49045,3,0 +2020-03-26,Tooele,Utah,49045,4,0 +2020-03-27,Tooele,Utah,49045,5,0 +2020-03-28,Tooele,Utah,49045,8,0 +2020-03-29,Tooele,Utah,49045,9,0 +2020-03-30,Tooele,Utah,49045,9,0 +2020-03-31,Tooele,Utah,49045,12,0 +2020-04-01,Tooele,Utah,49045,13,0 +2020-04-02,Tooele,Utah,49045,13,0 +2020-04-03,Tooele,Utah,49045,16,0 +2020-04-04,Tooele,Utah,49045,17,0 +2020-04-05,Tooele,Utah,49045,19,0 +2020-04-06,Tooele,Utah,49045,22,0 +2020-04-07,Tooele,Utah,49045,23,0 +2020-04-08,Tooele,Utah,49045,23,0 +2020-04-09,Tooele,Utah,49045,24,0 +2020-04-10,Tooele,Utah,49045,28,0 +2020-04-11,Tooele,Utah,49045,31,0 +2020-04-12,Tooele,Utah,49045,33,0 +2020-04-13,Tooele,Utah,49045,34,0 +2020-04-14,Tooele,Utah,49045,34,0 +2020-04-15,Tooele,Utah,49045,37,0 +2020-04-16,Tooele,Utah,49045,38,0 +2020-04-17,Tooele,Utah,49045,38,0 +2020-04-18,Tooele,Utah,49045,39,0 +2020-04-19,Tooele,Utah,49045,42,0 +2020-04-20,Tooele,Utah,49045,41,0 +2020-04-21,Tooele,Utah,49045,41,0 +2020-04-22,Tooele,Utah,49045,42,0 +2020-04-23,Tooele,Utah,49045,46,0 +2020-04-24,Tooele,Utah,49045,47,0 +2020-04-25,Tooele,Utah,49045,52,0 +2020-04-26,Tooele,Utah,49045,54,0 +2020-04-27,Tooele,Utah,49045,56,0 +2020-04-28,Tooele,Utah,49045,58,0 +2020-04-29,Tooele,Utah,49045,63,0 +2020-04-30,Tooele,Utah,49045,65,0 +2020-05-01,Tooele,Utah,49045,68,0 +2020-05-02,Tooele,Utah,49045,69,0 +2020-05-03,Tooele,Utah,49045,71,0 +2020-05-04,Tooele,Utah,49045,71,0 +2020-05-05,Tooele,Utah,49045,70,0 +2020-05-06,Tooele,Utah,49045,70,0 +2020-05-07,Tooele,Utah,49045,71,0 +2020-05-08,Tooele,Utah,49045,72,0 +2020-05-09,Tooele,Utah,49045,76,0 +2020-05-10,Tooele,Utah,49045,77,0 +2020-05-11,Tooele,Utah,49045,77,0 +2020-05-12,Tooele,Utah,49045,78,0 +2020-05-13,Tooele,Utah,49045,85,0 +2020-05-14,Tooele,Utah,49045,84,0 +2020-05-15,Tooele,Utah,49045,86,0 +2020-05-16,Tooele,Utah,49045,93,0 +2020-05-17,Tooele,Utah,49045,93,0 +2020-05-18,Tooele,Utah,49045,94,0 +2020-05-19,Tooele,Utah,49045,103,0 +2020-05-20,Tooele,Utah,49045,104,0 +2020-05-21,Tooele,Utah,49045,104,0 +2020-05-22,Tooele,Utah,49045,108,0 +2020-05-23,Tooele,Utah,49045,112,0 +2020-05-24,Tooele,Utah,49045,113,0 +2020-05-25,Tooele,Utah,49045,113,0 +2020-05-26,Tooele,Utah,49045,114,0 +2020-05-27,Tooele,Utah,49045,115,0 +2020-05-28,Tooele,Utah,49045,122,0 +2020-05-29,Tooele,Utah,49045,125,0 +2020-05-30,Tooele,Utah,49045,126,0 +2020-05-31,Tooele,Utah,49045,128,0 +2020-06-01,Tooele,Utah,49045,129,0 +2020-06-02,Tooele,Utah,49045,132,0 +2020-06-03,Tooele,Utah,49045,136,0 +2020-06-04,Tooele,Utah,49045,140,0 +2020-06-05,Tooele,Utah,49045,144,0 +2020-06-06,Tooele,Utah,49045,145,0 +2020-06-07,Tooele,Utah,49045,148,0 +2020-06-08,Tooele,Utah,49045,150,0 +2020-06-09,Tooele,Utah,49045,153,0 +2020-06-10,Tooele,Utah,49045,153,0 +2020-06-11,Tooele,Utah,49045,158,0 +2020-06-12,Tooele,Utah,49045,159,0 +2020-06-13,Tooele,Utah,49045,162,0 +2020-06-14,Tooele,Utah,49045,165,0 +2020-06-15,Tooele,Utah,49045,170,0 +2020-06-16,Tooele,Utah,49045,178,0 +2020-06-17,Tooele,Utah,49045,181,0 +2020-06-18,Tooele,Utah,49045,184,0 +2020-06-19,Tooele,Utah,49045,188,0 +2020-06-20,Tooele,Utah,49045,195,0 +2020-06-21,Tooele,Utah,49045,199,0 +2020-06-22,Tooele,Utah,49045,202,0 +2020-06-23,Tooele,Utah,49045,208,0 +2020-06-24,Tooele,Utah,49045,208,0 +2020-06-25,Tooele,Utah,49045,212,0 +2020-06-26,Tooele,Utah,49045,222,0 +2020-06-27,Tooele,Utah,49045,225,0 +2020-06-28,Tooele,Utah,49045,229,0 +2020-06-29,Tooele,Utah,49045,234,0 +2020-06-30,Tooele,Utah,49045,244,0 +2020-07-01,Tooele,Utah,49045,247,0 +2020-07-02,Tooele,Utah,49045,256,0 +2020-07-03,Tooele,Utah,49045,255,0 +2020-07-04,Tooele,Utah,49045,265,0 +2020-07-05,Tooele,Utah,49045,269,0 +2020-07-06,Tooele,Utah,49045,275,0 +2020-07-07,Tooele,Utah,49045,294,0 +2020-07-08,Tooele,Utah,49045,304,0 +2020-07-09,Tooele,Utah,49045,315,0 +2020-03-27,Uintah,Utah,49047,1,0 +2020-03-28,Uintah,Utah,49047,1,0 +2020-03-29,Uintah,Utah,49047,1,0 +2020-03-30,Uintah,Utah,49047,1,0 +2020-03-31,Uintah,Utah,49047,1,0 +2020-04-01,Uintah,Utah,49047,1,0 +2020-04-02,Uintah,Utah,49047,1,0 +2020-04-03,Uintah,Utah,49047,1,0 +2020-04-04,Uintah,Utah,49047,1,0 +2020-04-05,Uintah,Utah,49047,1,0 +2020-04-06,Uintah,Utah,49047,1,0 +2020-04-07,Uintah,Utah,49047,2,0 +2020-04-08,Uintah,Utah,49047,4,0 +2020-04-09,Uintah,Utah,49047,5,0 +2020-04-10,Uintah,Utah,49047,5,0 +2020-04-11,Uintah,Utah,49047,5,0 +2020-04-12,Uintah,Utah,49047,5,0 +2020-04-13,Uintah,Utah,49047,6,0 +2020-04-14,Uintah,Utah,49047,6,0 +2020-04-15,Uintah,Utah,49047,6,0 +2020-04-16,Uintah,Utah,49047,6,0 +2020-04-17,Uintah,Utah,49047,6,0 +2020-04-18,Uintah,Utah,49047,6,0 +2020-04-19,Uintah,Utah,49047,6,0 +2020-04-20,Uintah,Utah,49047,6,0 +2020-04-21,Uintah,Utah,49047,6,0 +2020-04-22,Uintah,Utah,49047,6,0 +2020-04-23,Uintah,Utah,49047,6,0 +2020-04-24,Uintah,Utah,49047,6,0 +2020-04-25,Uintah,Utah,49047,6,0 +2020-04-26,Uintah,Utah,49047,6,0 +2020-04-27,Uintah,Utah,49047,6,0 +2020-04-28,Uintah,Utah,49047,6,0 +2020-04-29,Uintah,Utah,49047,6,0 +2020-04-30,Uintah,Utah,49047,6,0 +2020-05-01,Uintah,Utah,49047,6,0 +2020-05-02,Uintah,Utah,49047,6,0 +2020-05-03,Uintah,Utah,49047,6,0 +2020-05-04,Uintah,Utah,49047,6,0 +2020-05-05,Uintah,Utah,49047,6,0 +2020-05-06,Uintah,Utah,49047,6,0 +2020-05-07,Uintah,Utah,49047,6,0 +2020-05-08,Uintah,Utah,49047,6,0 +2020-05-09,Uintah,Utah,49047,7,0 +2020-05-10,Uintah,Utah,49047,7,0 +2020-05-11,Uintah,Utah,49047,7,0 +2020-05-12,Uintah,Utah,49047,7,0 +2020-05-13,Uintah,Utah,49047,7,0 +2020-05-14,Uintah,Utah,49047,8,0 +2020-05-15,Uintah,Utah,49047,8,0 +2020-05-16,Uintah,Utah,49047,8,0 +2020-05-17,Uintah,Utah,49047,8,0 +2020-05-18,Uintah,Utah,49047,10,0 +2020-05-19,Uintah,Utah,49047,10,0 +2020-05-20,Uintah,Utah,49047,10,0 +2020-05-21,Uintah,Utah,49047,10,0 +2020-05-22,Uintah,Utah,49047,10,0 +2020-05-23,Uintah,Utah,49047,9,0 +2020-05-24,Uintah,Utah,49047,9,0 +2020-05-25,Uintah,Utah,49047,9,0 +2020-05-26,Uintah,Utah,49047,9,0 +2020-05-27,Uintah,Utah,49047,9,0 +2020-05-28,Uintah,Utah,49047,9,0 +2020-05-29,Uintah,Utah,49047,9,0 +2020-05-30,Uintah,Utah,49047,10,0 +2020-05-31,Uintah,Utah,49047,10,0 +2020-06-01,Uintah,Utah,49047,10,0 +2020-06-02,Uintah,Utah,49047,10,0 +2020-06-03,Uintah,Utah,49047,10,0 +2020-06-04,Uintah,Utah,49047,10,0 +2020-06-05,Uintah,Utah,49047,10,0 +2020-06-06,Uintah,Utah,49047,10,0 +2020-06-07,Uintah,Utah,49047,11,0 +2020-06-08,Uintah,Utah,49047,12,0 +2020-06-09,Uintah,Utah,49047,12,0 +2020-06-10,Uintah,Utah,49047,13,0 +2020-06-11,Uintah,Utah,49047,17,0 +2020-06-12,Uintah,Utah,49047,17,0 +2020-06-13,Uintah,Utah,49047,18,0 +2020-06-14,Uintah,Utah,49047,19,0 +2020-06-15,Uintah,Utah,49047,19,0 +2020-06-16,Uintah,Utah,49047,20,0 +2020-06-17,Uintah,Utah,49047,22,0 +2020-06-18,Uintah,Utah,49047,25,0 +2020-06-19,Uintah,Utah,49047,26,0 +2020-06-20,Uintah,Utah,49047,26,0 +2020-06-21,Uintah,Utah,49047,26,0 +2020-06-22,Uintah,Utah,49047,26,0 +2020-06-23,Uintah,Utah,49047,27,0 +2020-06-24,Uintah,Utah,49047,27,0 +2020-06-25,Uintah,Utah,49047,29,0 +2020-06-26,Uintah,Utah,49047,29,0 +2020-06-27,Uintah,Utah,49047,29,0 +2020-06-28,Uintah,Utah,49047,30,0 +2020-06-29,Uintah,Utah,49047,30,0 +2020-06-30,Uintah,Utah,49047,31,0 +2020-07-01,Uintah,Utah,49047,31,0 +2020-07-02,Uintah,Utah,49047,31,0 +2020-07-03,Uintah,Utah,49047,31,0 +2020-07-04,Uintah,Utah,49047,33,0 +2020-07-05,Uintah,Utah,49047,34,0 +2020-07-06,Uintah,Utah,49047,34,0 +2020-07-07,Uintah,Utah,49047,35,0 +2020-07-08,Uintah,Utah,49047,36,0 +2020-07-09,Uintah,Utah,49047,41,0 +2020-03-15,Utah,Utah,49049,1,0 +2020-03-16,Utah,Utah,49049,1,0 +2020-03-17,Utah,Utah,49049,1,0 +2020-03-18,Utah,Utah,49049,2,0 +2020-03-19,Utah,Utah,49049,3,0 +2020-03-20,Utah,Utah,49049,3,0 +2020-03-21,Utah,Utah,49049,7,0 +2020-03-22,Utah,Utah,49049,7,0 +2020-03-23,Utah,Utah,49049,12,0 +2020-03-24,Utah,Utah,49049,14,0 +2020-03-25,Utah,Utah,49049,18,0 +2020-03-26,Utah,Utah,49049,25,0 +2020-03-27,Utah,Utah,49049,27,0 +2020-03-28,Utah,Utah,49049,30,0 +2020-03-29,Utah,Utah,49049,51,0 +2020-03-30,Utah,Utah,49049,58,0 +2020-03-31,Utah,Utah,49049,70,0 +2020-04-01,Utah,Utah,49049,90,0 +2020-04-02,Utah,Utah,49049,105,0 +2020-04-03,Utah,Utah,49049,150,0 +2020-04-04,Utah,Utah,49049,186,0 +2020-04-05,Utah,Utah,49049,216,0 +2020-04-06,Utah,Utah,49049,223,0 +2020-04-07,Utah,Utah,49049,236,0 +2020-04-08,Utah,Utah,49049,267,0 +2020-04-09,Utah,Utah,49049,272,0 +2020-04-10,Utah,Utah,49049,283,0 +2020-04-11,Utah,Utah,49049,295,0 +2020-04-12,Utah,Utah,49049,313,0 +2020-04-13,Utah,Utah,49049,322,0 +2020-04-14,Utah,Utah,49049,335,0 +2020-04-15,Utah,Utah,49049,352,0 +2020-04-16,Utah,Utah,49049,387,4 +2020-04-17,Utah,Utah,49049,403,4 +2020-04-18,Utah,Utah,49049,417,5 +2020-04-19,Utah,Utah,49049,455,5 +2020-04-20,Utah,Utah,49049,498,5 +2020-04-21,Utah,Utah,49049,523,5 +2020-04-22,Utah,Utah,49049,570,6 +2020-04-23,Utah,Utah,49049,611,6 +2020-04-24,Utah,Utah,49049,669,7 +2020-04-25,Utah,Utah,49049,725,7 +2020-04-26,Utah,Utah,49049,777,7 +2020-04-27,Utah,Utah,49049,828,7 +2020-04-28,Utah,Utah,49049,862,7 +2020-04-29,Utah,Utah,49049,899,7 +2020-04-30,Utah,Utah,49049,957,7 +2020-05-01,Utah,Utah,49049,993,7 +2020-05-02,Utah,Utah,49049,1021,9 +2020-05-03,Utah,Utah,49049,1073,9 +2020-05-04,Utah,Utah,49049,1122,9 +2020-05-05,Utah,Utah,49049,1171,10 +2020-05-06,Utah,Utah,49049,1210,10 +2020-05-07,Utah,Utah,49049,1219,11 +2020-05-08,Utah,Utah,49049,1288,11 +2020-05-09,Utah,Utah,49049,1318,11 +2020-05-10,Utah,Utah,49049,1346,11 +2020-05-11,Utah,Utah,49049,1358,11 +2020-05-12,Utah,Utah,49049,1365,11 +2020-05-13,Utah,Utah,49049,1400,11 +2020-05-14,Utah,Utah,49049,1435,11 +2020-05-15,Utah,Utah,49049,1455,11 +2020-05-16,Utah,Utah,49049,1471,11 +2020-05-17,Utah,Utah,49049,1497,11 +2020-05-18,Utah,Utah,49049,1520,11 +2020-05-19,Utah,Utah,49049,1537,12 +2020-05-20,Utah,Utah,49049,1569,13 +2020-05-21,Utah,Utah,49049,1592,13 +2020-05-22,Utah,Utah,49049,1651,13 +2020-05-23,Utah,Utah,49049,1678,14 +2020-05-24,Utah,Utah,49049,1704,14 +2020-05-25,Utah,Utah,49049,1722,14 +2020-05-26,Utah,Utah,49049,1744,14 +2020-05-27,Utah,Utah,49049,1753,15 +2020-05-28,Utah,Utah,49049,1777,17 +2020-05-29,Utah,Utah,49049,1826,17 +2020-05-30,Utah,Utah,49049,1870,17 +2020-05-31,Utah,Utah,49049,1929,17 +2020-06-01,Utah,Utah,49049,1965,17 +2020-06-02,Utah,Utah,49049,1991,17 +2020-06-03,Utah,Utah,49049,2028,17 +2020-06-04,Utah,Utah,49049,2088,17 +2020-06-05,Utah,Utah,49049,2143,17 +2020-06-06,Utah,Utah,49049,2183,17 +2020-06-07,Utah,Utah,49049,2261,17 +2020-06-08,Utah,Utah,49049,2310,17 +2020-06-09,Utah,Utah,49049,2337,18 +2020-06-10,Utah,Utah,49049,2376,18 +2020-06-11,Utah,Utah,49049,2444,19 +2020-06-12,Utah,Utah,49049,2491,19 +2020-06-13,Utah,Utah,49049,2551,19 +2020-06-14,Utah,Utah,49049,2607,19 +2020-06-15,Utah,Utah,49049,2654,19 +2020-06-16,Utah,Utah,49049,2711,19 +2020-06-17,Utah,Utah,49049,2776,19 +2020-06-18,Utah,Utah,49049,2861,19 +2020-06-19,Utah,Utah,49049,2957,19 +2020-06-20,Utah,Utah,49049,3056,19 +2020-06-21,Utah,Utah,49049,3136,21 +2020-06-22,Utah,Utah,49049,3263,21 +2020-06-23,Utah,Utah,49049,3355,22 +2020-06-24,Utah,Utah,49049,3447,22 +2020-06-25,Utah,Utah,49049,3541,22 +2020-06-26,Utah,Utah,49049,3675,22 +2020-06-27,Utah,Utah,49049,3751,22 +2020-06-28,Utah,Utah,49049,3850,22 +2020-06-29,Utah,Utah,49049,3965,22 +2020-06-30,Utah,Utah,49049,4084,22 +2020-07-01,Utah,Utah,49049,4154,22 +2020-07-02,Utah,Utah,49049,4249,22 +2020-07-03,Utah,Utah,49049,4340,22 +2020-07-04,Utah,Utah,49049,4474,22 +2020-07-05,Utah,Utah,49049,4553,23 +2020-07-06,Utah,Utah,49049,4648,23 +2020-07-07,Utah,Utah,49049,4761,24 +2020-07-08,Utah,Utah,49049,4894,27 +2020-07-09,Utah,Utah,49049,4988,27 +2020-03-16,Wasatch,Utah,49051,1,0 +2020-03-17,Wasatch,Utah,49051,2,0 +2020-03-18,Wasatch,Utah,49051,2,0 +2020-03-19,Wasatch,Utah,49051,3,0 +2020-03-20,Wasatch,Utah,49051,4,0 +2020-03-21,Wasatch,Utah,49051,7,0 +2020-03-22,Wasatch,Utah,49051,8,0 +2020-03-23,Wasatch,Utah,49051,11,0 +2020-03-24,Wasatch,Utah,49051,16,0 +2020-03-25,Wasatch,Utah,49051,16,0 +2020-03-26,Wasatch,Utah,49051,21,0 +2020-03-27,Wasatch,Utah,49051,29,0 +2020-03-28,Wasatch,Utah,49051,36,0 +2020-03-29,Wasatch,Utah,49051,40,0 +2020-03-30,Wasatch,Utah,49051,45,0 +2020-03-31,Wasatch,Utah,49051,50,0 +2020-04-01,Wasatch,Utah,49051,56,0 +2020-04-02,Wasatch,Utah,49051,61,0 +2020-04-03,Wasatch,Utah,49051,69,0 +2020-04-04,Wasatch,Utah,49051,70,0 +2020-04-05,Wasatch,Utah,49051,78,0 +2020-04-06,Wasatch,Utah,49051,79,0 +2020-04-07,Wasatch,Utah,49051,80,0 +2020-04-08,Wasatch,Utah,49051,82,0 +2020-04-09,Wasatch,Utah,49051,88,0 +2020-04-10,Wasatch,Utah,49051,96,0 +2020-04-11,Wasatch,Utah,49051,98,1 +2020-04-12,Wasatch,Utah,49051,103,1 +2020-04-13,Wasatch,Utah,49051,103,1 +2020-04-14,Wasatch,Utah,49051,105,1 +2020-04-15,Wasatch,Utah,49051,105,1 +2020-04-16,Wasatch,Utah,49051,103,1 +2020-04-17,Wasatch,Utah,49051,103,1 +2020-04-18,Wasatch,Utah,49051,109,1 +2020-04-19,Wasatch,Utah,49051,111,1 +2020-04-20,Wasatch,Utah,49051,118,1 +2020-04-21,Wasatch,Utah,49051,122,1 +2020-04-22,Wasatch,Utah,49051,123,1 +2020-04-23,Wasatch,Utah,49051,127,1 +2020-04-24,Wasatch,Utah,49051,129,1 +2020-04-25,Wasatch,Utah,49051,132,1 +2020-04-26,Wasatch,Utah,49051,138,1 +2020-04-27,Wasatch,Utah,49051,140,1 +2020-04-28,Wasatch,Utah,49051,142,1 +2020-04-29,Wasatch,Utah,49051,147,1 +2020-04-30,Wasatch,Utah,49051,148,1 +2020-05-01,Wasatch,Utah,49051,155,1 +2020-05-02,Wasatch,Utah,49051,156,1 +2020-05-03,Wasatch,Utah,49051,159,1 +2020-05-04,Wasatch,Utah,49051,165,1 +2020-05-05,Wasatch,Utah,49051,166,1 +2020-05-06,Wasatch,Utah,49051,170,1 +2020-05-07,Wasatch,Utah,49051,173,1 +2020-05-08,Wasatch,Utah,49051,173,1 +2020-05-09,Wasatch,Utah,49051,176,1 +2020-05-10,Wasatch,Utah,49051,176,1 +2020-05-11,Wasatch,Utah,49051,183,1 +2020-05-12,Wasatch,Utah,49051,184,1 +2020-05-13,Wasatch,Utah,49051,185,1 +2020-05-14,Wasatch,Utah,49051,188,1 +2020-05-15,Wasatch,Utah,49051,196,1 +2020-05-16,Wasatch,Utah,49051,200,1 +2020-05-17,Wasatch,Utah,49051,202,1 +2020-05-18,Wasatch,Utah,49051,203,1 +2020-05-19,Wasatch,Utah,49051,212,1 +2020-05-20,Wasatch,Utah,49051,217,1 +2020-05-21,Wasatch,Utah,49051,222,1 +2020-05-22,Wasatch,Utah,49051,228,1 +2020-05-23,Wasatch,Utah,49051,237,1 +2020-05-24,Wasatch,Utah,49051,241,1 +2020-05-25,Wasatch,Utah,49051,247,1 +2020-05-26,Wasatch,Utah,49051,253,1 +2020-05-27,Wasatch,Utah,49051,258,1 +2020-05-28,Wasatch,Utah,49051,259,1 +2020-05-29,Wasatch,Utah,49051,265,1 +2020-05-30,Wasatch,Utah,49051,272,1 +2020-05-31,Wasatch,Utah,49051,282,2 +2020-06-01,Wasatch,Utah,49051,292,2 +2020-06-02,Wasatch,Utah,49051,294,2 +2020-06-03,Wasatch,Utah,49051,305,2 +2020-06-04,Wasatch,Utah,49051,313,2 +2020-06-05,Wasatch,Utah,49051,317,2 +2020-06-06,Wasatch,Utah,49051,326,2 +2020-06-07,Wasatch,Utah,49051,330,2 +2020-06-08,Wasatch,Utah,49051,332,2 +2020-06-09,Wasatch,Utah,49051,335,2 +2020-06-10,Wasatch,Utah,49051,337,2 +2020-06-11,Wasatch,Utah,49051,341,2 +2020-06-12,Wasatch,Utah,49051,342,2 +2020-06-13,Wasatch,Utah,49051,343,2 +2020-06-14,Wasatch,Utah,49051,349,2 +2020-06-15,Wasatch,Utah,49051,351,2 +2020-06-16,Wasatch,Utah,49051,356,2 +2020-06-17,Wasatch,Utah,49051,362,2 +2020-06-18,Wasatch,Utah,49051,368,2 +2020-06-19,Wasatch,Utah,49051,371,3 +2020-06-20,Wasatch,Utah,49051,380,3 +2020-06-21,Wasatch,Utah,49051,380,3 +2020-06-22,Wasatch,Utah,49051,384,3 +2020-06-23,Wasatch,Utah,49051,387,3 +2020-06-24,Wasatch,Utah,49051,389,3 +2020-06-25,Wasatch,Utah,49051,392,3 +2020-06-26,Wasatch,Utah,49051,394,3 +2020-06-27,Wasatch,Utah,49051,399,3 +2020-06-28,Wasatch,Utah,49051,400,3 +2020-06-29,Wasatch,Utah,49051,406,3 +2020-06-30,Wasatch,Utah,49051,408,3 +2020-07-01,Wasatch,Utah,49051,410,3 +2020-07-02,Wasatch,Utah,49051,414,3 +2020-07-03,Wasatch,Utah,49051,418,3 +2020-07-04,Wasatch,Utah,49051,419,3 +2020-07-05,Wasatch,Utah,49051,422,3 +2020-07-06,Wasatch,Utah,49051,426,4 +2020-07-07,Wasatch,Utah,49051,427,4 +2020-07-08,Wasatch,Utah,49051,436,4 +2020-07-09,Wasatch,Utah,49051,442,4 +2020-03-06,Washington,Utah,49053,1,0 +2020-03-07,Washington,Utah,49053,1,0 +2020-03-08,Washington,Utah,49053,1,0 +2020-03-09,Washington,Utah,49053,1,0 +2020-03-10,Washington,Utah,49053,1,0 +2020-03-11,Washington,Utah,49053,1,0 +2020-03-12,Washington,Utah,49053,1,0 +2020-03-13,Washington,Utah,49053,1,0 +2020-03-14,Washington,Utah,49053,1,0 +2020-03-15,Washington,Utah,49053,1,0 +2020-03-16,Washington,Utah,49053,1,0 +2020-03-17,Washington,Utah,49053,1,0 +2020-03-18,Washington,Utah,49053,1,0 +2020-03-19,Washington,Utah,49053,1,0 +2020-03-20,Washington,Utah,49053,1,0 +2020-03-21,Washington,Utah,49053,2,0 +2020-03-22,Washington,Utah,49053,2,0 +2020-03-23,Washington,Utah,49053,4,0 +2020-03-24,Washington,Utah,49053,4,0 +2020-03-25,Washington,Utah,49053,6,0 +2020-03-26,Washington,Utah,49053,6,0 +2020-03-27,Washington,Utah,49053,6,0 +2020-03-28,Washington,Utah,49053,8,0 +2020-03-29,Washington,Utah,49053,8,0 +2020-03-30,Washington,Utah,49053,8,0 +2020-03-31,Washington,Utah,49053,14,0 +2020-04-01,Washington,Utah,49053,14,0 +2020-04-02,Washington,Utah,49053,19,0 +2020-04-03,Washington,Utah,49053,21,0 +2020-04-04,Washington,Utah,49053,21,0 +2020-04-05,Washington,Utah,49053,24,0 +2020-04-06,Washington,Utah,49053,24,0 +2020-04-07,Washington,Utah,49053,26,0 +2020-04-08,Washington,Utah,49053,27,0 +2020-04-09,Washington,Utah,49053,31,0 +2020-04-10,Washington,Utah,49053,35,0 +2020-04-11,Washington,Utah,49053,35,0 +2020-04-12,Washington,Utah,49053,36,0 +2020-04-13,Washington,Utah,49053,36,0 +2020-04-14,Washington,Utah,49053,39,0 +2020-04-15,Washington,Utah,49053,39,0 +2020-04-16,Washington,Utah,49053,39,0 +2020-04-17,Washington,Utah,49053,41,0 +2020-04-18,Washington,Utah,49053,44,0 +2020-04-19,Washington,Utah,49053,44,0 +2020-04-20,Washington,Utah,49053,45,0 +2020-04-21,Washington,Utah,49053,48,0 +2020-04-22,Washington,Utah,49053,48,0 +2020-04-23,Washington,Utah,49053,51,0 +2020-04-24,Washington,Utah,49053,51,0 +2020-04-25,Washington,Utah,49053,58,0 +2020-04-26,Washington,Utah,49053,62,0 +2020-04-27,Washington,Utah,49053,62,0 +2020-04-28,Washington,Utah,49053,62,0 +2020-04-29,Washington,Utah,49053,65,0 +2020-04-30,Washington,Utah,49053,65,0 +2020-05-01,Washington,Utah,49053,68,0 +2020-05-02,Washington,Utah,49053,71,0 +2020-05-03,Washington,Utah,49053,72,0 +2020-05-04,Washington,Utah,49053,85,0 +2020-05-05,Washington,Utah,49053,85,0 +2020-05-06,Washington,Utah,49053,95,0 +2020-05-07,Washington,Utah,49053,95,0 +2020-05-08,Washington,Utah,49053,95,0 +2020-05-09,Washington,Utah,49053,103,0 +2020-05-10,Washington,Utah,49053,120,0 +2020-05-11,Washington,Utah,49053,125,0 +2020-05-12,Washington,Utah,49053,136,0 +2020-05-13,Washington,Utah,49053,145,0 +2020-05-14,Washington,Utah,49053,152,0 +2020-05-15,Washington,Utah,49053,165,0 +2020-05-16,Washington,Utah,49053,173,0 +2020-05-17,Washington,Utah,49053,182,0 +2020-05-18,Washington,Utah,49053,198,0 +2020-05-19,Washington,Utah,49053,214,0 +2020-05-20,Washington,Utah,49053,218,0 +2020-05-21,Washington,Utah,49053,226,0 +2020-05-22,Washington,Utah,49053,235,0 +2020-05-23,Washington,Utah,49053,247,0 +2020-05-24,Washington,Utah,49053,247,0 +2020-05-25,Washington,Utah,49053,274,0 +2020-05-26,Washington,Utah,49053,279,0 +2020-05-27,Washington,Utah,49053,283,0 +2020-05-28,Washington,Utah,49053,304,0 +2020-05-29,Washington,Utah,49053,324,0 +2020-05-30,Washington,Utah,49053,357,0 +2020-05-31,Washington,Utah,49053,365,0 +2020-06-01,Washington,Utah,49053,374,0 +2020-06-02,Washington,Utah,49053,388,0 +2020-06-03,Washington,Utah,49053,400,0 +2020-06-04,Washington,Utah,49053,410,0 +2020-06-05,Washington,Utah,49053,435,0 +2020-06-06,Washington,Utah,49053,455,0 +2020-06-07,Washington,Utah,49053,455,0 +2020-06-08,Washington,Utah,49053,492,0 +2020-06-09,Washington,Utah,49053,511,0 +2020-06-10,Washington,Utah,49053,532,0 +2020-06-11,Washington,Utah,49053,565,0 +2020-06-12,Washington,Utah,49053,578,0 +2020-06-13,Washington,Utah,49053,604,0 +2020-06-14,Washington,Utah,49053,604,0 +2020-06-15,Washington,Utah,49053,640,0 +2020-06-16,Washington,Utah,49053,663,0 +2020-06-17,Washington,Utah,49053,689,0 +2020-06-18,Washington,Utah,49053,716,0 +2020-06-19,Washington,Utah,49053,767,0 +2020-06-20,Washington,Utah,49053,806,0 +2020-06-21,Washington,Utah,49053,806,0 +2020-06-22,Washington,Utah,49053,864,0 +2020-06-23,Washington,Utah,49053,899,0 +2020-06-24,Washington,Utah,49053,936,0 +2020-06-25,Washington,Utah,49053,977,0 +2020-06-26,Washington,Utah,49053,1011,0 +2020-06-27,Washington,Utah,49053,1063,0 +2020-06-28,Washington,Utah,49053,1063,0 +2020-06-29,Washington,Utah,49053,1156,0 +2020-06-30,Washington,Utah,49053,1198,0 +2020-07-01,Washington,Utah,49053,1228,0 +2020-07-02,Washington,Utah,49053,1245,0 +2020-07-03,Washington,Utah,49053,1280,0 +2020-07-04,Washington,Utah,49053,1304,0 +2020-07-05,Washington,Utah,49053,1304,0 +2020-07-06,Washington,Utah,49053,1361,0 +2020-07-07,Washington,Utah,49053,1428,0 +2020-07-08,Washington,Utah,49053,1460,0 +2020-07-09,Washington,Utah,49053,1494,0 +2020-03-10,Weber,Utah,49057,1,0 +2020-03-11,Weber,Utah,49057,1,0 +2020-03-12,Weber,Utah,49057,1,0 +2020-03-13,Weber,Utah,49057,1,0 +2020-03-14,Weber,Utah,49057,1,0 +2020-03-15,Weber,Utah,49057,1,0 +2020-03-16,Weber,Utah,49057,1,0 +2020-03-17,Weber,Utah,49057,4,0 +2020-03-18,Weber,Utah,49057,4,0 +2020-03-19,Weber,Utah,49057,4,0 +2020-03-20,Weber,Utah,49057,6,0 +2020-03-21,Weber,Utah,49057,6,0 +2020-03-22,Weber,Utah,49057,6,0 +2020-03-23,Weber,Utah,49057,8,0 +2020-03-24,Weber,Utah,49057,9,0 +2020-03-25,Weber,Utah,49057,10,0 +2020-03-26,Weber,Utah,49057,8,0 +2020-03-27,Weber,Utah,49057,12,0 +2020-03-28,Weber,Utah,49057,29,0 +2020-03-29,Weber,Utah,49057,37,0 +2020-03-30,Weber,Utah,49057,36,0 +2020-03-31,Weber,Utah,49057,41,1 +2020-04-01,Weber,Utah,49057,41,1 +2020-04-02,Weber,Utah,49057,50,1 +2020-04-03,Weber,Utah,49057,55,1 +2020-04-04,Weber,Utah,49057,63,1 +2020-04-05,Weber,Utah,49057,68,1 +2020-04-06,Weber,Utah,49057,70,1 +2020-04-07,Weber,Utah,49057,73,1 +2020-04-08,Weber,Utah,49057,74,1 +2020-04-09,Weber,Utah,49057,84,1 +2020-04-10,Weber,Utah,49057,87,1 +2020-04-11,Weber,Utah,49057,89,1 +2020-04-12,Weber,Utah,49057,93,1 +2020-04-13,Weber,Utah,49057,100,1 +2020-04-14,Weber,Utah,49057,102,1 +2020-04-15,Weber,Utah,49057,105,1 +2020-04-16,Weber,Utah,49057,105,1 +2020-04-17,Weber,Utah,49057,105,1 +2020-04-18,Weber,Utah,49057,105,1 +2020-04-19,Weber,Utah,49057,110,1 +2020-04-20,Weber,Utah,49057,119,1 +2020-04-21,Weber,Utah,49057,119,1 +2020-04-22,Weber,Utah,49057,125,1 +2020-04-23,Weber,Utah,49057,131,2 +2020-04-24,Weber,Utah,49057,132,2 +2020-04-25,Weber,Utah,49057,133,2 +2020-04-26,Weber,Utah,49057,133,2 +2020-04-27,Weber,Utah,49057,139,2 +2020-04-28,Weber,Utah,49057,139,2 +2020-04-29,Weber,Utah,49057,145,2 +2020-04-30,Weber,Utah,49057,145,2 +2020-05-01,Weber,Utah,49057,155,2 +2020-05-02,Weber,Utah,49057,155,2 +2020-05-03,Weber,Utah,49057,155,2 +2020-05-04,Weber,Utah,49057,164,2 +2020-05-05,Weber,Utah,49057,164,2 +2020-05-06,Weber,Utah,49057,164,2 +2020-05-07,Weber,Utah,49057,164,2 +2020-05-08,Weber,Utah,49057,175,2 +2020-05-09,Weber,Utah,49057,175,2 +2020-05-10,Weber,Utah,49057,179,2 +2020-05-11,Weber,Utah,49057,193,2 +2020-05-12,Weber,Utah,49057,200,2 +2020-05-13,Weber,Utah,49057,202,3 +2020-05-14,Weber,Utah,49057,205,3 +2020-05-15,Weber,Utah,49057,207,3 +2020-05-16,Weber,Utah,49057,207,3 +2020-05-17,Weber,Utah,49057,207,3 +2020-05-18,Weber,Utah,49057,224,3 +2020-05-19,Weber,Utah,49057,224,3 +2020-05-20,Weber,Utah,49057,233,3 +2020-05-21,Weber,Utah,49057,242,3 +2020-05-22,Weber,Utah,49057,244,3 +2020-05-23,Weber,Utah,49057,244,3 +2020-05-24,Weber,Utah,49057,244,3 +2020-05-25,Weber,Utah,49057,250,4 +2020-05-26,Weber,Utah,49057,262,4 +2020-05-27,Weber,Utah,49057,263,5 +2020-05-28,Weber,Utah,49057,272,5 +2020-05-29,Weber,Utah,49057,280,6 +2020-05-30,Weber,Utah,49057,282,6 +2020-05-31,Weber,Utah,49057,288,7 +2020-06-01,Weber,Utah,49057,293,7 +2020-06-02,Weber,Utah,49057,296,7 +2020-06-03,Weber,Utah,49057,308,7 +2020-06-04,Weber,Utah,49057,323,7 +2020-06-05,Weber,Utah,49057,342,8 +2020-06-06,Weber,Utah,49057,369,8 +2020-06-07,Weber,Utah,49057,374,8 +2020-06-08,Weber,Utah,49057,374,8 +2020-06-09,Weber,Utah,49057,386,8 +2020-06-10,Weber,Utah,49057,400,8 +2020-06-11,Weber,Utah,49057,400,8 +2020-06-12,Weber,Utah,49057,412,9 +2020-06-13,Weber,Utah,49057,412,9 +2020-06-14,Weber,Utah,49057,412,9 +2020-06-15,Weber,Utah,49057,507,9 +2020-06-16,Weber,Utah,49057,526,9 +2020-06-17,Weber,Utah,49057,541,9 +2020-06-18,Weber,Utah,49057,580,9 +2020-06-19,Weber,Utah,49057,596,9 +2020-06-20,Weber,Utah,49057,596,9 +2020-06-21,Weber,Utah,49057,653,9 +2020-06-22,Weber,Utah,49057,667,10 +2020-06-23,Weber,Utah,49057,706,10 +2020-06-24,Weber,Utah,49057,719,10 +2020-06-25,Weber,Utah,49057,771,11 +2020-06-26,Weber,Utah,49057,808,11 +2020-06-27,Weber,Utah,49057,808,11 +2020-06-28,Weber,Utah,49057,875,11 +2020-06-29,Weber,Utah,49057,910,12 +2020-06-30,Weber,Utah,49057,941,13 +2020-07-01,Weber,Utah,49057,994,13 +2020-07-02,Weber,Utah,49057,1039,13 +2020-07-03,Weber,Utah,49057,1084,14 +2020-07-04,Weber,Utah,49057,1158,14 +2020-07-05,Weber,Utah,49057,1190,14 +2020-07-06,Weber,Utah,49057,1247,14 +2020-07-07,Weber,Utah,49057,1278,14 +2020-07-08,Weber,Utah,49057,1348,14 +2020-07-09,Weber,Utah,49057,1431,14 +2020-03-20,Addison,Vermont,50001,1,0 +2020-03-21,Addison,Vermont,50001,3,0 +2020-03-22,Addison,Vermont,50001,3,0 +2020-03-23,Addison,Vermont,50001,3,0 +2020-03-24,Addison,Vermont,50001,8,0 +2020-03-25,Addison,Vermont,50001,9,0 +2020-03-26,Addison,Vermont,50001,12,0 +2020-03-27,Addison,Vermont,50001,13,0 +2020-03-28,Addison,Vermont,50001,15,0 +2020-03-29,Addison,Vermont,50001,17,0 +2020-03-30,Addison,Vermont,50001,21,0 +2020-03-31,Addison,Vermont,50001,23,0 +2020-04-01,Addison,Vermont,50001,24,0 +2020-04-02,Addison,Vermont,50001,26,0 +2020-04-03,Addison,Vermont,50001,32,0 +2020-04-04,Addison,Vermont,50001,34,0 +2020-04-05,Addison,Vermont,50001,40,0 +2020-04-06,Addison,Vermont,50001,40,0 +2020-04-07,Addison,Vermont,50001,47,0 +2020-04-08,Addison,Vermont,50001,49,0 +2020-04-09,Addison,Vermont,50001,50,0 +2020-04-10,Addison,Vermont,50001,50,0 +2020-04-11,Addison,Vermont,50001,54,0 +2020-04-12,Addison,Vermont,50001,55,1 +2020-04-13,Addison,Vermont,50001,56,1 +2020-04-14,Addison,Vermont,50001,56,1 +2020-04-15,Addison,Vermont,50001,56,1 +2020-04-16,Addison,Vermont,50001,56,1 +2020-04-17,Addison,Vermont,50001,57,1 +2020-04-18,Addison,Vermont,50001,61,2 +2020-04-19,Addison,Vermont,50001,61,2 +2020-04-20,Addison,Vermont,50001,61,2 +2020-04-21,Addison,Vermont,50001,61,2 +2020-04-22,Addison,Vermont,50001,61,2 +2020-04-23,Addison,Vermont,50001,61,2 +2020-04-24,Addison,Vermont,50001,61,2 +2020-04-25,Addison,Vermont,50001,61,2 +2020-04-26,Addison,Vermont,50001,61,2 +2020-04-27,Addison,Vermont,50001,61,2 +2020-04-28,Addison,Vermont,50001,61,2 +2020-04-29,Addison,Vermont,50001,61,2 +2020-04-30,Addison,Vermont,50001,61,2 +2020-05-01,Addison,Vermont,50001,61,2 +2020-05-02,Addison,Vermont,50001,61,2 +2020-05-03,Addison,Vermont,50001,61,2 +2020-05-04,Addison,Vermont,50001,61,2 +2020-05-05,Addison,Vermont,50001,61,2 +2020-05-06,Addison,Vermont,50001,61,2 +2020-05-07,Addison,Vermont,50001,61,2 +2020-05-08,Addison,Vermont,50001,62,2 +2020-05-09,Addison,Vermont,50001,62,2 +2020-05-10,Addison,Vermont,50001,62,2 +2020-05-11,Addison,Vermont,50001,62,2 +2020-05-12,Addison,Vermont,50001,62,2 +2020-05-13,Addison,Vermont,50001,62,2 +2020-05-14,Addison,Vermont,50001,62,2 +2020-05-15,Addison,Vermont,50001,62,2 +2020-05-16,Addison,Vermont,50001,62,2 +2020-05-17,Addison,Vermont,50001,62,2 +2020-05-18,Addison,Vermont,50001,62,2 +2020-05-19,Addison,Vermont,50001,62,2 +2020-05-20,Addison,Vermont,50001,62,2 +2020-05-21,Addison,Vermont,50001,62,2 +2020-05-22,Addison,Vermont,50001,62,2 +2020-05-23,Addison,Vermont,50001,62,2 +2020-05-24,Addison,Vermont,50001,62,2 +2020-05-25,Addison,Vermont,50001,62,2 +2020-05-26,Addison,Vermont,50001,62,2 +2020-05-27,Addison,Vermont,50001,62,2 +2020-05-28,Addison,Vermont,50001,62,2 +2020-05-29,Addison,Vermont,50001,62,2 +2020-05-30,Addison,Vermont,50001,63,2 +2020-05-31,Addison,Vermont,50001,64,2 +2020-06-01,Addison,Vermont,50001,64,2 +2020-06-02,Addison,Vermont,50001,64,2 +2020-06-03,Addison,Vermont,50001,64,2 +2020-06-04,Addison,Vermont,50001,64,2 +2020-06-05,Addison,Vermont,50001,64,2 +2020-06-06,Addison,Vermont,50001,65,2 +2020-06-07,Addison,Vermont,50001,65,2 +2020-06-08,Addison,Vermont,50001,65,2 +2020-06-09,Addison,Vermont,50001,66,2 +2020-06-10,Addison,Vermont,50001,66,2 +2020-06-11,Addison,Vermont,50001,66,2 +2020-06-12,Addison,Vermont,50001,66,2 +2020-06-13,Addison,Vermont,50001,66,2 +2020-06-14,Addison,Vermont,50001,66,2 +2020-06-15,Addison,Vermont,50001,66,2 +2020-06-16,Addison,Vermont,50001,66,2 +2020-06-17,Addison,Vermont,50001,66,2 +2020-06-18,Addison,Vermont,50001,67,2 +2020-06-19,Addison,Vermont,50001,67,2 +2020-06-20,Addison,Vermont,50001,67,2 +2020-06-21,Addison,Vermont,50001,67,2 +2020-06-22,Addison,Vermont,50001,67,2 +2020-06-23,Addison,Vermont,50001,68,2 +2020-06-24,Addison,Vermont,50001,68,2 +2020-06-25,Addison,Vermont,50001,68,2 +2020-06-26,Addison,Vermont,50001,68,2 +2020-06-27,Addison,Vermont,50001,68,2 +2020-06-28,Addison,Vermont,50001,68,2 +2020-06-29,Addison,Vermont,50001,68,2 +2020-06-30,Addison,Vermont,50001,68,2 +2020-07-01,Addison,Vermont,50001,68,2 +2020-07-02,Addison,Vermont,50001,68,2 +2020-07-03,Addison,Vermont,50001,68,2 +2020-07-04,Addison,Vermont,50001,68,2 +2020-07-05,Addison,Vermont,50001,68,2 +2020-07-06,Addison,Vermont,50001,68,2 +2020-07-07,Addison,Vermont,50001,68,2 +2020-07-08,Addison,Vermont,50001,68,2 +2020-07-09,Addison,Vermont,50001,68,2 +2020-03-07,Bennington,Vermont,50003,1,0 +2020-03-08,Bennington,Vermont,50003,1,0 +2020-03-09,Bennington,Vermont,50003,1,0 +2020-03-10,Bennington,Vermont,50003,1,0 +2020-03-11,Bennington,Vermont,50003,1,0 +2020-03-12,Bennington,Vermont,50003,1,0 +2020-03-13,Bennington,Vermont,50003,1,0 +2020-03-14,Bennington,Vermont,50003,1,0 +2020-03-15,Bennington,Vermont,50003,2,0 +2020-03-16,Bennington,Vermont,50003,3,0 +2020-03-17,Bennington,Vermont,50003,3,0 +2020-03-18,Bennington,Vermont,50003,3,0 +2020-03-19,Bennington,Vermont,50003,4,0 +2020-03-20,Bennington,Vermont,50003,4,0 +2020-03-21,Bennington,Vermont,50003,4,0 +2020-03-22,Bennington,Vermont,50003,4,0 +2020-03-23,Bennington,Vermont,50003,4,0 +2020-03-24,Bennington,Vermont,50003,9,0 +2020-03-25,Bennington,Vermont,50003,11,0 +2020-03-26,Bennington,Vermont,50003,11,0 +2020-03-27,Bennington,Vermont,50003,13,0 +2020-03-28,Bennington,Vermont,50003,15,0 +2020-03-29,Bennington,Vermont,50003,16,0 +2020-03-30,Bennington,Vermont,50003,17,0 +2020-03-31,Bennington,Vermont,50003,18,0 +2020-04-01,Bennington,Vermont,50003,18,0 +2020-04-02,Bennington,Vermont,50003,17,0 +2020-04-03,Bennington,Vermont,50003,19,0 +2020-04-04,Bennington,Vermont,50003,23,0 +2020-04-05,Bennington,Vermont,50003,24,0 +2020-04-06,Bennington,Vermont,50003,25,0 +2020-04-07,Bennington,Vermont,50003,27,0 +2020-04-08,Bennington,Vermont,50003,28,1 +2020-04-09,Bennington,Vermont,50003,31,1 +2020-04-10,Bennington,Vermont,50003,31,1 +2020-04-11,Bennington,Vermont,50003,31,1 +2020-04-12,Bennington,Vermont,50003,31,1 +2020-04-13,Bennington,Vermont,50003,32,1 +2020-04-14,Bennington,Vermont,50003,32,1 +2020-04-15,Bennington,Vermont,50003,32,1 +2020-04-16,Bennington,Vermont,50003,33,1 +2020-04-17,Bennington,Vermont,50003,33,1 +2020-04-18,Bennington,Vermont,50003,37,1 +2020-04-19,Bennington,Vermont,50003,37,1 +2020-04-20,Bennington,Vermont,50003,37,1 +2020-04-21,Bennington,Vermont,50003,37,1 +2020-04-22,Bennington,Vermont,50003,37,1 +2020-04-23,Bennington,Vermont,50003,37,1 +2020-04-24,Bennington,Vermont,50003,38,1 +2020-04-25,Bennington,Vermont,50003,39,1 +2020-04-26,Bennington,Vermont,50003,40,1 +2020-04-27,Bennington,Vermont,50003,40,1 +2020-04-28,Bennington,Vermont,50003,44,1 +2020-04-29,Bennington,Vermont,50003,44,1 +2020-04-30,Bennington,Vermont,50003,44,1 +2020-05-01,Bennington,Vermont,50003,47,1 +2020-05-02,Bennington,Vermont,50003,47,1 +2020-05-03,Bennington,Vermont,50003,51,1 +2020-05-04,Bennington,Vermont,50003,51,1 +2020-05-05,Bennington,Vermont,50003,54,1 +2020-05-06,Bennington,Vermont,50003,53,1 +2020-05-07,Bennington,Vermont,50003,53,1 +2020-05-08,Bennington,Vermont,50003,54,1 +2020-05-09,Bennington,Vermont,50003,56,1 +2020-05-10,Bennington,Vermont,50003,60,1 +2020-05-11,Bennington,Vermont,50003,60,1 +2020-05-12,Bennington,Vermont,50003,60,1 +2020-05-13,Bennington,Vermont,50003,60,1 +2020-05-14,Bennington,Vermont,50003,60,1 +2020-05-15,Bennington,Vermont,50003,60,1 +2020-05-16,Bennington,Vermont,50003,60,1 +2020-05-17,Bennington,Vermont,50003,60,1 +2020-05-18,Bennington,Vermont,50003,60,1 +2020-05-19,Bennington,Vermont,50003,60,1 +2020-05-20,Bennington,Vermont,50003,60,1 +2020-05-21,Bennington,Vermont,50003,60,1 +2020-05-22,Bennington,Vermont,50003,60,1 +2020-05-23,Bennington,Vermont,50003,60,1 +2020-05-24,Bennington,Vermont,50003,61,1 +2020-05-25,Bennington,Vermont,50003,62,1 +2020-05-26,Bennington,Vermont,50003,62,1 +2020-05-27,Bennington,Vermont,50003,62,1 +2020-05-28,Bennington,Vermont,50003,62,1 +2020-05-29,Bennington,Vermont,50003,63,1 +2020-05-30,Bennington,Vermont,50003,63,1 +2020-05-31,Bennington,Vermont,50003,63,1 +2020-06-01,Bennington,Vermont,50003,63,1 +2020-06-02,Bennington,Vermont,50003,64,1 +2020-06-03,Bennington,Vermont,50003,64,1 +2020-06-04,Bennington,Vermont,50003,65,1 +2020-06-05,Bennington,Vermont,50003,66,1 +2020-06-06,Bennington,Vermont,50003,66,1 +2020-06-07,Bennington,Vermont,50003,66,1 +2020-06-08,Bennington,Vermont,50003,66,1 +2020-06-09,Bennington,Vermont,50003,66,1 +2020-06-10,Bennington,Vermont,50003,67,1 +2020-06-11,Bennington,Vermont,50003,67,1 +2020-06-12,Bennington,Vermont,50003,67,1 +2020-06-13,Bennington,Vermont,50003,67,1 +2020-06-14,Bennington,Vermont,50003,67,1 +2020-06-15,Bennington,Vermont,50003,67,1 +2020-06-16,Bennington,Vermont,50003,67,1 +2020-06-17,Bennington,Vermont,50003,67,1 +2020-06-18,Bennington,Vermont,50003,68,1 +2020-06-19,Bennington,Vermont,50003,69,1 +2020-06-20,Bennington,Vermont,50003,69,1 +2020-06-21,Bennington,Vermont,50003,69,1 +2020-06-22,Bennington,Vermont,50003,69,1 +2020-06-23,Bennington,Vermont,50003,69,1 +2020-06-24,Bennington,Vermont,50003,69,1 +2020-06-25,Bennington,Vermont,50003,70,1 +2020-06-26,Bennington,Vermont,50003,71,1 +2020-06-27,Bennington,Vermont,50003,71,1 +2020-06-28,Bennington,Vermont,50003,71,1 +2020-06-29,Bennington,Vermont,50003,72,1 +2020-06-30,Bennington,Vermont,50003,72,1 +2020-07-01,Bennington,Vermont,50003,72,1 +2020-07-02,Bennington,Vermont,50003,72,1 +2020-07-03,Bennington,Vermont,50003,73,1 +2020-07-04,Bennington,Vermont,50003,73,1 +2020-07-05,Bennington,Vermont,50003,73,1 +2020-07-06,Bennington,Vermont,50003,73,1 +2020-07-07,Bennington,Vermont,50003,73,1 +2020-07-08,Bennington,Vermont,50003,73,1 +2020-07-09,Bennington,Vermont,50003,74,1 +2020-03-24,Caledonia,Vermont,50005,1,0 +2020-03-25,Caledonia,Vermont,50005,1,0 +2020-03-26,Caledonia,Vermont,50005,1,0 +2020-03-27,Caledonia,Vermont,50005,2,0 +2020-03-28,Caledonia,Vermont,50005,2,0 +2020-03-29,Caledonia,Vermont,50005,2,0 +2020-03-30,Caledonia,Vermont,50005,2,0 +2020-03-31,Caledonia,Vermont,50005,2,0 +2020-04-01,Caledonia,Vermont,50005,3,0 +2020-04-02,Caledonia,Vermont,50005,4,0 +2020-04-03,Caledonia,Vermont,50005,4,0 +2020-04-04,Caledonia,Vermont,50005,5,0 +2020-04-05,Caledonia,Vermont,50005,6,0 +2020-04-06,Caledonia,Vermont,50005,6,0 +2020-04-07,Caledonia,Vermont,50005,8,0 +2020-04-08,Caledonia,Vermont,50005,8,0 +2020-04-09,Caledonia,Vermont,50005,8,0 +2020-04-10,Caledonia,Vermont,50005,8,0 +2020-04-11,Caledonia,Vermont,50005,8,0 +2020-04-12,Caledonia,Vermont,50005,8,0 +2020-04-13,Caledonia,Vermont,50005,9,0 +2020-04-14,Caledonia,Vermont,50005,9,0 +2020-04-15,Caledonia,Vermont,50005,9,0 +2020-04-16,Caledonia,Vermont,50005,9,0 +2020-04-17,Caledonia,Vermont,50005,10,0 +2020-04-18,Caledonia,Vermont,50005,10,0 +2020-04-19,Caledonia,Vermont,50005,12,0 +2020-04-20,Caledonia,Vermont,50005,12,0 +2020-04-21,Caledonia,Vermont,50005,12,0 +2020-04-22,Caledonia,Vermont,50005,12,0 +2020-04-23,Caledonia,Vermont,50005,12,0 +2020-04-24,Caledonia,Vermont,50005,12,0 +2020-04-25,Caledonia,Vermont,50005,13,0 +2020-04-26,Caledonia,Vermont,50005,13,0 +2020-04-27,Caledonia,Vermont,50005,13,0 +2020-04-28,Caledonia,Vermont,50005,13,0 +2020-04-29,Caledonia,Vermont,50005,13,0 +2020-04-30,Caledonia,Vermont,50005,13,0 +2020-05-01,Caledonia,Vermont,50005,14,0 +2020-05-02,Caledonia,Vermont,50005,14,0 +2020-05-03,Caledonia,Vermont,50005,14,0 +2020-05-04,Caledonia,Vermont,50005,14,0 +2020-05-05,Caledonia,Vermont,50005,14,0 +2020-05-06,Caledonia,Vermont,50005,14,0 +2020-05-07,Caledonia,Vermont,50005,14,0 +2020-05-08,Caledonia,Vermont,50005,14,0 +2020-05-09,Caledonia,Vermont,50005,14,0 +2020-05-10,Caledonia,Vermont,50005,14,0 +2020-05-11,Caledonia,Vermont,50005,14,0 +2020-05-12,Caledonia,Vermont,50005,14,0 +2020-05-13,Caledonia,Vermont,50005,14,0 +2020-05-14,Caledonia,Vermont,50005,14,0 +2020-05-15,Caledonia,Vermont,50005,14,0 +2020-05-16,Caledonia,Vermont,50005,14,0 +2020-05-17,Caledonia,Vermont,50005,14,0 +2020-05-18,Caledonia,Vermont,50005,14,0 +2020-05-19,Caledonia,Vermont,50005,14,0 +2020-05-20,Caledonia,Vermont,50005,14,0 +2020-05-21,Caledonia,Vermont,50005,14,0 +2020-05-22,Caledonia,Vermont,50005,14,0 +2020-05-23,Caledonia,Vermont,50005,14,0 +2020-05-24,Caledonia,Vermont,50005,15,0 +2020-05-25,Caledonia,Vermont,50005,15,0 +2020-05-26,Caledonia,Vermont,50005,15,0 +2020-05-27,Caledonia,Vermont,50005,15,0 +2020-05-28,Caledonia,Vermont,50005,15,0 +2020-05-29,Caledonia,Vermont,50005,15,0 +2020-05-30,Caledonia,Vermont,50005,15,0 +2020-05-31,Caledonia,Vermont,50005,15,0 +2020-06-01,Caledonia,Vermont,50005,15,0 +2020-06-02,Caledonia,Vermont,50005,15,0 +2020-06-03,Caledonia,Vermont,50005,16,0 +2020-06-04,Caledonia,Vermont,50005,16,0 +2020-06-05,Caledonia,Vermont,50005,16,0 +2020-06-06,Caledonia,Vermont,50005,16,0 +2020-06-07,Caledonia,Vermont,50005,16,0 +2020-06-08,Caledonia,Vermont,50005,16,0 +2020-06-09,Caledonia,Vermont,50005,16,0 +2020-06-10,Caledonia,Vermont,50005,16,0 +2020-06-11,Caledonia,Vermont,50005,16,0 +2020-06-12,Caledonia,Vermont,50005,16,0 +2020-06-13,Caledonia,Vermont,50005,16,0 +2020-06-14,Caledonia,Vermont,50005,16,0 +2020-06-15,Caledonia,Vermont,50005,16,0 +2020-06-16,Caledonia,Vermont,50005,16,0 +2020-06-17,Caledonia,Vermont,50005,16,0 +2020-06-18,Caledonia,Vermont,50005,16,0 +2020-06-19,Caledonia,Vermont,50005,16,0 +2020-06-20,Caledonia,Vermont,50005,17,0 +2020-06-21,Caledonia,Vermont,50005,18,0 +2020-06-22,Caledonia,Vermont,50005,18,0 +2020-06-23,Caledonia,Vermont,50005,18,0 +2020-06-24,Caledonia,Vermont,50005,18,0 +2020-06-25,Caledonia,Vermont,50005,19,0 +2020-06-26,Caledonia,Vermont,50005,19,0 +2020-06-27,Caledonia,Vermont,50005,19,0 +2020-06-28,Caledonia,Vermont,50005,19,0 +2020-06-29,Caledonia,Vermont,50005,19,0 +2020-06-30,Caledonia,Vermont,50005,19,0 +2020-07-01,Caledonia,Vermont,50005,19,0 +2020-07-02,Caledonia,Vermont,50005,20,0 +2020-07-03,Caledonia,Vermont,50005,20,0 +2020-07-04,Caledonia,Vermont,50005,20,0 +2020-07-05,Caledonia,Vermont,50005,21,0 +2020-07-06,Caledonia,Vermont,50005,21,0 +2020-07-07,Caledonia,Vermont,50005,21,0 +2020-07-08,Caledonia,Vermont,50005,21,0 +2020-07-09,Caledonia,Vermont,50005,21,0 +2020-03-11,Chittenden,Vermont,50007,1,0 +2020-03-12,Chittenden,Vermont,50007,1,0 +2020-03-13,Chittenden,Vermont,50007,1,0 +2020-03-14,Chittenden,Vermont,50007,1,0 +2020-03-15,Chittenden,Vermont,50007,2,0 +2020-03-16,Chittenden,Vermont,50007,4,0 +2020-03-17,Chittenden,Vermont,50007,6,0 +2020-03-18,Chittenden,Vermont,50007,11,0 +2020-03-19,Chittenden,Vermont,50007,12,1 +2020-03-20,Chittenden,Vermont,50007,12,1 +2020-03-21,Chittenden,Vermont,50007,22,1 +2020-03-22,Chittenden,Vermont,50007,22,1 +2020-03-23,Chittenden,Vermont,50007,22,1 +2020-03-24,Chittenden,Vermont,50007,40,1 +2020-03-25,Chittenden,Vermont,50007,55,6 +2020-03-26,Chittenden,Vermont,50007,75,6 +2020-03-27,Chittenden,Vermont,50007,90,6 +2020-03-28,Chittenden,Vermont,50007,105,6 +2020-03-29,Chittenden,Vermont,50007,117,6 +2020-03-30,Chittenden,Vermont,50007,133,6 +2020-03-31,Chittenden,Vermont,50007,152,6 +2020-04-01,Chittenden,Vermont,50007,164,6 +2020-04-02,Chittenden,Vermont,50007,177,6 +2020-04-03,Chittenden,Vermont,50007,199,6 +2020-04-04,Chittenden,Vermont,50007,245,6 +2020-04-05,Chittenden,Vermont,50007,271,6 +2020-04-06,Chittenden,Vermont,50007,285,6 +2020-04-07,Chittenden,Vermont,50007,308,6 +2020-04-08,Chittenden,Vermont,50007,324,15 +2020-04-09,Chittenden,Vermont,50007,336,15 +2020-04-10,Chittenden,Vermont,50007,336,15 +2020-04-11,Chittenden,Vermont,50007,351,16 +2020-04-12,Chittenden,Vermont,50007,364,17 +2020-04-13,Chittenden,Vermont,50007,372,18 +2020-04-14,Chittenden,Vermont,50007,372,19 +2020-04-15,Chittenden,Vermont,50007,372,20 +2020-04-16,Chittenden,Vermont,50007,377,22 +2020-04-17,Chittenden,Vermont,50007,378,22 +2020-04-18,Chittenden,Vermont,50007,384,23 +2020-04-19,Chittenden,Vermont,50007,385,23 +2020-04-20,Chittenden,Vermont,50007,385,24 +2020-04-21,Chittenden,Vermont,50007,391,25 +2020-04-22,Chittenden,Vermont,50007,393,25 +2020-04-23,Chittenden,Vermont,50007,395,27 +2020-04-24,Chittenden,Vermont,50007,396,28 +2020-04-25,Chittenden,Vermont,50007,405,30 +2020-04-26,Chittenden,Vermont,50007,410,30 +2020-04-27,Chittenden,Vermont,50007,414,31 +2020-04-28,Chittenden,Vermont,50007,416,31 +2020-04-29,Chittenden,Vermont,50007,416,31 +2020-04-30,Chittenden,Vermont,50007,418,32 +2020-05-01,Chittenden,Vermont,50007,419,33 +2020-05-02,Chittenden,Vermont,50007,422,34 +2020-05-03,Chittenden,Vermont,50007,423,36 +2020-05-04,Chittenden,Vermont,50007,425,36 +2020-05-05,Chittenden,Vermont,50007,425,36 +2020-05-06,Chittenden,Vermont,50007,426,36 +2020-05-07,Chittenden,Vermont,50007,431,37 +2020-05-08,Chittenden,Vermont,50007,431,37 +2020-05-09,Chittenden,Vermont,50007,431,37 +2020-05-10,Chittenden,Vermont,50007,432,37 +2020-05-11,Chittenden,Vermont,50007,432,37 +2020-05-12,Chittenden,Vermont,50007,432,37 +2020-05-13,Chittenden,Vermont,50007,432,37 +2020-05-14,Chittenden,Vermont,50007,432,37 +2020-05-15,Chittenden,Vermont,50007,433,37 +2020-05-16,Chittenden,Vermont,50007,434,37 +2020-05-17,Chittenden,Vermont,50007,439,38 +2020-05-18,Chittenden,Vermont,50007,439,38 +2020-05-19,Chittenden,Vermont,50007,439,38 +2020-05-20,Chittenden,Vermont,50007,439,38 +2020-05-21,Chittenden,Vermont,50007,440,38 +2020-05-22,Chittenden,Vermont,50007,440,38 +2020-05-23,Chittenden,Vermont,50007,440,38 +2020-05-24,Chittenden,Vermont,50007,440,38 +2020-05-25,Chittenden,Vermont,50007,441,38 +2020-05-26,Chittenden,Vermont,50007,444,38 +2020-05-27,Chittenden,Vermont,50007,446,38 +2020-05-28,Chittenden,Vermont,50007,449,39 +2020-05-29,Chittenden,Vermont,50007,448,39 +2020-05-30,Chittenden,Vermont,50007,449,39 +2020-05-31,Chittenden,Vermont,50007,451,39 +2020-06-01,Chittenden,Vermont,50007,453,39 +2020-06-02,Chittenden,Vermont,50007,457,39 +2020-06-03,Chittenden,Vermont,50007,457,39 +2020-06-04,Chittenden,Vermont,50007,491,39 +2020-06-05,Chittenden,Vermont,50007,490,39 +2020-06-06,Chittenden,Vermont,50007,503,39 +2020-06-07,Chittenden,Vermont,50007,520,39 +2020-06-08,Chittenden,Vermont,50007,528,39 +2020-06-09,Chittenden,Vermont,50007,535,39 +2020-06-10,Chittenden,Vermont,50007,544,39 +2020-06-11,Chittenden,Vermont,50007,559,39 +2020-06-12,Chittenden,Vermont,50007,564,39 +2020-06-13,Chittenden,Vermont,50007,568,39 +2020-06-14,Chittenden,Vermont,50007,569,39 +2020-06-15,Chittenden,Vermont,50007,572,39 +2020-06-16,Chittenden,Vermont,50007,572,39 +2020-06-17,Chittenden,Vermont,50007,572,39 +2020-06-18,Chittenden,Vermont,50007,574,39 +2020-06-19,Chittenden,Vermont,50007,579,39 +2020-06-20,Chittenden,Vermont,50007,579,39 +2020-06-21,Chittenden,Vermont,50007,586,39 +2020-06-22,Chittenden,Vermont,50007,590,39 +2020-06-23,Chittenden,Vermont,50007,590,39 +2020-06-24,Chittenden,Vermont,50007,598,39 +2020-06-25,Chittenden,Vermont,50007,599,39 +2020-06-26,Chittenden,Vermont,50007,601,39 +2020-06-27,Chittenden,Vermont,50007,601,39 +2020-06-28,Chittenden,Vermont,50007,602,39 +2020-06-29,Chittenden,Vermont,50007,607,39 +2020-06-30,Chittenden,Vermont,50007,607,39 +2020-07-01,Chittenden,Vermont,50007,608,39 +2020-07-02,Chittenden,Vermont,50007,617,39 +2020-07-03,Chittenden,Vermont,50007,622,39 +2020-07-04,Chittenden,Vermont,50007,623,39 +2020-07-05,Chittenden,Vermont,50007,629,39 +2020-07-06,Chittenden,Vermont,50007,630,39 +2020-07-07,Chittenden,Vermont,50007,631,39 +2020-07-08,Chittenden,Vermont,50007,632,39 +2020-07-09,Chittenden,Vermont,50007,643,39 +2020-04-08,Essex,Vermont,50009,3,0 +2020-04-09,Essex,Vermont,50009,1,0 +2020-04-10,Essex,Vermont,50009,1,0 +2020-04-11,Essex,Vermont,50009,1,0 +2020-04-12,Essex,Vermont,50009,1,0 +2020-04-13,Essex,Vermont,50009,1,0 +2020-04-14,Essex,Vermont,50009,1,0 +2020-04-15,Essex,Vermont,50009,1,0 +2020-04-16,Essex,Vermont,50009,1,0 +2020-04-17,Essex,Vermont,50009,1,0 +2020-04-18,Essex,Vermont,50009,1,0 +2020-04-19,Essex,Vermont,50009,2,0 +2020-04-20,Essex,Vermont,50009,2,0 +2020-04-21,Essex,Vermont,50009,2,0 +2020-04-22,Essex,Vermont,50009,2,0 +2020-04-23,Essex,Vermont,50009,2,0 +2020-04-24,Essex,Vermont,50009,2,0 +2020-04-25,Essex,Vermont,50009,2,0 +2020-04-26,Essex,Vermont,50009,2,0 +2020-04-27,Essex,Vermont,50009,2,0 +2020-04-28,Essex,Vermont,50009,2,0 +2020-04-29,Essex,Vermont,50009,2,0 +2020-04-30,Essex,Vermont,50009,2,0 +2020-05-01,Essex,Vermont,50009,2,0 +2020-05-02,Essex,Vermont,50009,2,0 +2020-05-03,Essex,Vermont,50009,2,0 +2020-05-04,Essex,Vermont,50009,2,0 +2020-05-05,Essex,Vermont,50009,2,0 +2020-05-06,Essex,Vermont,50009,2,0 +2020-05-07,Essex,Vermont,50009,2,0 +2020-05-08,Essex,Vermont,50009,2,0 +2020-05-09,Essex,Vermont,50009,2,0 +2020-05-10,Essex,Vermont,50009,2,0 +2020-05-11,Essex,Vermont,50009,2,0 +2020-05-12,Essex,Vermont,50009,2,0 +2020-05-13,Essex,Vermont,50009,2,0 +2020-05-14,Essex,Vermont,50009,2,0 +2020-05-15,Essex,Vermont,50009,2,0 +2020-05-16,Essex,Vermont,50009,2,0 +2020-05-17,Essex,Vermont,50009,2,0 +2020-05-18,Essex,Vermont,50009,2,0 +2020-05-19,Essex,Vermont,50009,2,0 +2020-05-20,Essex,Vermont,50009,2,0 +2020-05-21,Essex,Vermont,50009,2,0 +2020-05-22,Essex,Vermont,50009,3,0 +2020-05-23,Essex,Vermont,50009,3,0 +2020-05-24,Essex,Vermont,50009,3,0 +2020-05-25,Essex,Vermont,50009,3,0 +2020-05-26,Essex,Vermont,50009,3,0 +2020-05-27,Essex,Vermont,50009,3,0 +2020-05-28,Essex,Vermont,50009,3,0 +2020-05-29,Essex,Vermont,50009,3,0 +2020-05-30,Essex,Vermont,50009,3,0 +2020-05-31,Essex,Vermont,50009,3,0 +2020-06-01,Essex,Vermont,50009,3,0 +2020-06-02,Essex,Vermont,50009,3,0 +2020-06-03,Essex,Vermont,50009,3,0 +2020-06-04,Essex,Vermont,50009,3,0 +2020-06-05,Essex,Vermont,50009,3,0 +2020-06-06,Essex,Vermont,50009,3,0 +2020-06-07,Essex,Vermont,50009,3,0 +2020-06-08,Essex,Vermont,50009,3,0 +2020-06-09,Essex,Vermont,50009,3,0 +2020-06-10,Essex,Vermont,50009,3,0 +2020-06-11,Essex,Vermont,50009,3,0 +2020-06-12,Essex,Vermont,50009,3,0 +2020-06-13,Essex,Vermont,50009,3,0 +2020-06-14,Essex,Vermont,50009,3,0 +2020-06-15,Essex,Vermont,50009,3,0 +2020-06-16,Essex,Vermont,50009,3,0 +2020-06-17,Essex,Vermont,50009,3,0 +2020-06-18,Essex,Vermont,50009,3,0 +2020-06-19,Essex,Vermont,50009,3,0 +2020-06-20,Essex,Vermont,50009,3,0 +2020-06-21,Essex,Vermont,50009,3,0 +2020-06-22,Essex,Vermont,50009,3,0 +2020-06-23,Essex,Vermont,50009,3,0 +2020-06-24,Essex,Vermont,50009,3,0 +2020-06-25,Essex,Vermont,50009,3,0 +2020-06-26,Essex,Vermont,50009,3,0 +2020-06-27,Essex,Vermont,50009,3,0 +2020-06-28,Essex,Vermont,50009,3,0 +2020-06-29,Essex,Vermont,50009,3,0 +2020-06-30,Essex,Vermont,50009,3,0 +2020-07-01,Essex,Vermont,50009,3,0 +2020-07-02,Essex,Vermont,50009,3,0 +2020-07-03,Essex,Vermont,50009,3,0 +2020-07-04,Essex,Vermont,50009,3,0 +2020-07-05,Essex,Vermont,50009,3,0 +2020-07-06,Essex,Vermont,50009,4,0 +2020-07-07,Essex,Vermont,50009,4,0 +2020-07-08,Essex,Vermont,50009,4,0 +2020-07-09,Essex,Vermont,50009,5,0 +2020-03-21,Franklin,Vermont,50011,2,0 +2020-03-22,Franklin,Vermont,50011,2,0 +2020-03-23,Franklin,Vermont,50011,2,0 +2020-03-24,Franklin,Vermont,50011,2,0 +2020-03-25,Franklin,Vermont,50011,3,0 +2020-03-26,Franklin,Vermont,50011,4,0 +2020-03-27,Franklin,Vermont,50011,6,0 +2020-03-28,Franklin,Vermont,50011,7,0 +2020-03-29,Franklin,Vermont,50011,9,0 +2020-03-30,Franklin,Vermont,50011,11,0 +2020-03-31,Franklin,Vermont,50011,13,0 +2020-04-01,Franklin,Vermont,50011,15,0 +2020-04-02,Franklin,Vermont,50011,16,0 +2020-04-03,Franklin,Vermont,50011,21,0 +2020-04-04,Franklin,Vermont,50011,23,0 +2020-04-05,Franklin,Vermont,50011,27,0 +2020-04-06,Franklin,Vermont,50011,29,0 +2020-04-07,Franklin,Vermont,50011,33,0 +2020-04-08,Franklin,Vermont,50011,33,3 +2020-04-09,Franklin,Vermont,50011,35,3 +2020-04-10,Franklin,Vermont,50011,68,3 +2020-04-11,Franklin,Vermont,50011,80,3 +2020-04-12,Franklin,Vermont,50011,81,3 +2020-04-13,Franklin,Vermont,50011,83,3 +2020-04-14,Franklin,Vermont,50011,84,3 +2020-04-15,Franklin,Vermont,50011,84,3 +2020-04-16,Franklin,Vermont,50011,86,3 +2020-04-17,Franklin,Vermont,50011,88,3 +2020-04-18,Franklin,Vermont,50011,90,3 +2020-04-19,Franklin,Vermont,50011,91,3 +2020-04-20,Franklin,Vermont,50011,93,3 +2020-04-21,Franklin,Vermont,50011,92,4 +2020-04-22,Franklin,Vermont,50011,92,4 +2020-04-23,Franklin,Vermont,50011,90,5 +2020-04-24,Franklin,Vermont,50011,90,5 +2020-04-25,Franklin,Vermont,50011,90,5 +2020-04-26,Franklin,Vermont,50011,91,5 +2020-04-27,Franklin,Vermont,50011,91,5 +2020-04-28,Franklin,Vermont,50011,91,5 +2020-04-29,Franklin,Vermont,50011,91,5 +2020-04-30,Franklin,Vermont,50011,91,5 +2020-05-01,Franklin,Vermont,50011,98,5 +2020-05-02,Franklin,Vermont,50011,98,5 +2020-05-03,Franklin,Vermont,50011,99,5 +2020-05-04,Franklin,Vermont,50011,99,5 +2020-05-05,Franklin,Vermont,50011,99,5 +2020-05-06,Franklin,Vermont,50011,99,5 +2020-05-07,Franklin,Vermont,50011,99,5 +2020-05-08,Franklin,Vermont,50011,99,5 +2020-05-09,Franklin,Vermont,50011,99,5 +2020-05-10,Franklin,Vermont,50011,99,5 +2020-05-11,Franklin,Vermont,50011,99,5 +2020-05-12,Franklin,Vermont,50011,99,5 +2020-05-13,Franklin,Vermont,50011,99,5 +2020-05-14,Franklin,Vermont,50011,99,5 +2020-05-15,Franklin,Vermont,50011,99,5 +2020-05-16,Franklin,Vermont,50011,99,5 +2020-05-17,Franklin,Vermont,50011,99,5 +2020-05-18,Franklin,Vermont,50011,99,5 +2020-05-19,Franklin,Vermont,50011,99,5 +2020-05-20,Franklin,Vermont,50011,99,5 +2020-05-21,Franklin,Vermont,50011,99,5 +2020-05-22,Franklin,Vermont,50011,99,5 +2020-05-23,Franklin,Vermont,50011,99,5 +2020-05-24,Franklin,Vermont,50011,99,5 +2020-05-25,Franklin,Vermont,50011,99,5 +2020-05-26,Franklin,Vermont,50011,99,5 +2020-05-27,Franklin,Vermont,50011,99,5 +2020-05-28,Franklin,Vermont,50011,99,5 +2020-05-29,Franklin,Vermont,50011,99,5 +2020-05-30,Franklin,Vermont,50011,99,5 +2020-05-31,Franklin,Vermont,50011,99,5 +2020-06-01,Franklin,Vermont,50011,99,5 +2020-06-02,Franklin,Vermont,50011,99,5 +2020-06-03,Franklin,Vermont,50011,99,5 +2020-06-04,Franklin,Vermont,50011,99,5 +2020-06-05,Franklin,Vermont,50011,100,5 +2020-06-06,Franklin,Vermont,50011,100,5 +2020-06-07,Franklin,Vermont,50011,100,5 +2020-06-08,Franklin,Vermont,50011,100,5 +2020-06-09,Franklin,Vermont,50011,100,5 +2020-06-10,Franklin,Vermont,50011,101,5 +2020-06-11,Franklin,Vermont,50011,101,5 +2020-06-12,Franklin,Vermont,50011,102,5 +2020-06-13,Franklin,Vermont,50011,102,5 +2020-06-14,Franklin,Vermont,50011,102,5 +2020-06-15,Franklin,Vermont,50011,102,5 +2020-06-16,Franklin,Vermont,50011,102,5 +2020-06-17,Franklin,Vermont,50011,102,5 +2020-06-18,Franklin,Vermont,50011,102,6 +2020-06-19,Franklin,Vermont,50011,102,6 +2020-06-20,Franklin,Vermont,50011,102,6 +2020-06-21,Franklin,Vermont,50011,102,6 +2020-06-22,Franklin,Vermont,50011,102,6 +2020-06-23,Franklin,Vermont,50011,102,6 +2020-06-24,Franklin,Vermont,50011,102,6 +2020-06-25,Franklin,Vermont,50011,103,6 +2020-06-26,Franklin,Vermont,50011,103,6 +2020-06-27,Franklin,Vermont,50011,104,6 +2020-06-28,Franklin,Vermont,50011,104,6 +2020-06-29,Franklin,Vermont,50011,104,6 +2020-06-30,Franklin,Vermont,50011,104,6 +2020-07-01,Franklin,Vermont,50011,105,6 +2020-07-02,Franklin,Vermont,50011,108,6 +2020-07-03,Franklin,Vermont,50011,110,6 +2020-07-04,Franklin,Vermont,50011,110,6 +2020-07-05,Franklin,Vermont,50011,110,6 +2020-07-06,Franklin,Vermont,50011,110,6 +2020-07-07,Franklin,Vermont,50011,110,6 +2020-07-08,Franklin,Vermont,50011,110,6 +2020-07-09,Franklin,Vermont,50011,110,6 +2020-04-07,Grand Isle,Vermont,50013,1,0 +2020-04-08,Grand Isle,Vermont,50013,1,0 +2020-04-09,Grand Isle,Vermont,50013,3,0 +2020-04-10,Grand Isle,Vermont,50013,3,0 +2020-04-11,Grand Isle,Vermont,50013,3,0 +2020-04-12,Grand Isle,Vermont,50013,3,0 +2020-04-13,Grand Isle,Vermont,50013,3,0 +2020-04-14,Grand Isle,Vermont,50013,3,0 +2020-04-15,Grand Isle,Vermont,50013,3,0 +2020-04-16,Grand Isle,Vermont,50013,3,0 +2020-04-17,Grand Isle,Vermont,50013,3,0 +2020-04-18,Grand Isle,Vermont,50013,3,0 +2020-04-19,Grand Isle,Vermont,50013,3,0 +2020-04-20,Grand Isle,Vermont,50013,3,0 +2020-04-21,Grand Isle,Vermont,50013,3,0 +2020-04-22,Grand Isle,Vermont,50013,3,0 +2020-04-23,Grand Isle,Vermont,50013,3,0 +2020-04-24,Grand Isle,Vermont,50013,3,0 +2020-04-25,Grand Isle,Vermont,50013,3,0 +2020-04-26,Grand Isle,Vermont,50013,3,0 +2020-04-27,Grand Isle,Vermont,50013,3,0 +2020-04-28,Grand Isle,Vermont,50013,3,0 +2020-04-29,Grand Isle,Vermont,50013,3,0 +2020-04-30,Grand Isle,Vermont,50013,3,0 +2020-05-01,Grand Isle,Vermont,50013,3,0 +2020-05-02,Grand Isle,Vermont,50013,3,0 +2020-05-03,Grand Isle,Vermont,50013,4,0 +2020-05-04,Grand Isle,Vermont,50013,4,0 +2020-05-05,Grand Isle,Vermont,50013,4,0 +2020-05-06,Grand Isle,Vermont,50013,4,0 +2020-05-07,Grand Isle,Vermont,50013,4,0 +2020-05-08,Grand Isle,Vermont,50013,4,0 +2020-05-09,Grand Isle,Vermont,50013,4,0 +2020-05-10,Grand Isle,Vermont,50013,4,0 +2020-05-11,Grand Isle,Vermont,50013,4,0 +2020-05-12,Grand Isle,Vermont,50013,4,0 +2020-05-13,Grand Isle,Vermont,50013,4,0 +2020-05-14,Grand Isle,Vermont,50013,4,0 +2020-05-15,Grand Isle,Vermont,50013,4,0 +2020-05-16,Grand Isle,Vermont,50013,4,0 +2020-05-17,Grand Isle,Vermont,50013,4,0 +2020-05-18,Grand Isle,Vermont,50013,4,0 +2020-05-19,Grand Isle,Vermont,50013,4,0 +2020-05-20,Grand Isle,Vermont,50013,4,0 +2020-05-21,Grand Isle,Vermont,50013,5,0 +2020-05-22,Grand Isle,Vermont,50013,5,0 +2020-05-23,Grand Isle,Vermont,50013,6,0 +2020-05-24,Grand Isle,Vermont,50013,6,0 +2020-05-25,Grand Isle,Vermont,50013,7,0 +2020-05-26,Grand Isle,Vermont,50013,7,0 +2020-05-27,Grand Isle,Vermont,50013,7,0 +2020-05-28,Grand Isle,Vermont,50013,7,0 +2020-05-29,Grand Isle,Vermont,50013,7,0 +2020-05-30,Grand Isle,Vermont,50013,7,0 +2020-05-31,Grand Isle,Vermont,50013,7,0 +2020-06-01,Grand Isle,Vermont,50013,7,0 +2020-06-02,Grand Isle,Vermont,50013,7,0 +2020-06-03,Grand Isle,Vermont,50013,7,0 +2020-06-04,Grand Isle,Vermont,50013,7,0 +2020-06-05,Grand Isle,Vermont,50013,7,0 +2020-06-06,Grand Isle,Vermont,50013,7,0 +2020-06-07,Grand Isle,Vermont,50013,7,0 +2020-06-08,Grand Isle,Vermont,50013,7,0 +2020-06-09,Grand Isle,Vermont,50013,7,0 +2020-06-10,Grand Isle,Vermont,50013,7,0 +2020-06-11,Grand Isle,Vermont,50013,8,0 +2020-06-12,Grand Isle,Vermont,50013,8,0 +2020-06-13,Grand Isle,Vermont,50013,8,0 +2020-06-14,Grand Isle,Vermont,50013,8,0 +2020-06-15,Grand Isle,Vermont,50013,8,0 +2020-06-16,Grand Isle,Vermont,50013,8,0 +2020-06-17,Grand Isle,Vermont,50013,8,0 +2020-06-18,Grand Isle,Vermont,50013,8,0 +2020-06-19,Grand Isle,Vermont,50013,8,0 +2020-06-20,Grand Isle,Vermont,50013,8,0 +2020-06-21,Grand Isle,Vermont,50013,8,0 +2020-06-22,Grand Isle,Vermont,50013,8,0 +2020-06-23,Grand Isle,Vermont,50013,8,0 +2020-06-24,Grand Isle,Vermont,50013,9,0 +2020-06-25,Grand Isle,Vermont,50013,10,0 +2020-06-26,Grand Isle,Vermont,50013,10,0 +2020-06-27,Grand Isle,Vermont,50013,10,0 +2020-06-28,Grand Isle,Vermont,50013,10,0 +2020-06-29,Grand Isle,Vermont,50013,10,0 +2020-06-30,Grand Isle,Vermont,50013,10,0 +2020-07-01,Grand Isle,Vermont,50013,10,0 +2020-07-02,Grand Isle,Vermont,50013,10,0 +2020-07-03,Grand Isle,Vermont,50013,10,0 +2020-07-04,Grand Isle,Vermont,50013,10,0 +2020-07-05,Grand Isle,Vermont,50013,10,0 +2020-07-06,Grand Isle,Vermont,50013,10,0 +2020-07-07,Grand Isle,Vermont,50013,10,0 +2020-07-08,Grand Isle,Vermont,50013,10,0 +2020-07-09,Grand Isle,Vermont,50013,10,0 +2020-03-25,Lamoille,Vermont,50015,4,0 +2020-03-26,Lamoille,Vermont,50015,5,0 +2020-03-27,Lamoille,Vermont,50015,6,0 +2020-03-28,Lamoille,Vermont,50015,9,0 +2020-03-29,Lamoille,Vermont,50015,12,0 +2020-03-30,Lamoille,Vermont,50015,13,0 +2020-03-31,Lamoille,Vermont,50015,13,0 +2020-04-01,Lamoille,Vermont,50015,13,0 +2020-04-02,Lamoille,Vermont,50015,14,0 +2020-04-03,Lamoille,Vermont,50015,17,0 +2020-04-04,Lamoille,Vermont,50015,17,0 +2020-04-05,Lamoille,Vermont,50015,17,0 +2020-04-06,Lamoille,Vermont,50015,18,0 +2020-04-07,Lamoille,Vermont,50015,19,0 +2020-04-08,Lamoille,Vermont,50015,19,1 +2020-04-09,Lamoille,Vermont,50015,19,1 +2020-04-10,Lamoille,Vermont,50015,19,1 +2020-04-11,Lamoille,Vermont,50015,21,1 +2020-04-12,Lamoille,Vermont,50015,21,1 +2020-04-13,Lamoille,Vermont,50015,22,1 +2020-04-14,Lamoille,Vermont,50015,22,1 +2020-04-15,Lamoille,Vermont,50015,22,1 +2020-04-16,Lamoille,Vermont,50015,22,1 +2020-04-17,Lamoille,Vermont,50015,22,1 +2020-04-18,Lamoille,Vermont,50015,23,1 +2020-04-19,Lamoille,Vermont,50015,23,1 +2020-04-20,Lamoille,Vermont,50015,23,1 +2020-04-21,Lamoille,Vermont,50015,23,1 +2020-04-22,Lamoille,Vermont,50015,23,1 +2020-04-23,Lamoille,Vermont,50015,25,1 +2020-04-24,Lamoille,Vermont,50015,25,1 +2020-04-25,Lamoille,Vermont,50015,26,1 +2020-04-26,Lamoille,Vermont,50015,26,1 +2020-04-27,Lamoille,Vermont,50015,26,1 +2020-04-28,Lamoille,Vermont,50015,26,1 +2020-04-29,Lamoille,Vermont,50015,26,1 +2020-04-30,Lamoille,Vermont,50015,26,1 +2020-05-01,Lamoille,Vermont,50015,26,1 +2020-05-02,Lamoille,Vermont,50015,26,1 +2020-05-03,Lamoille,Vermont,50015,25,1 +2020-05-04,Lamoille,Vermont,50015,26,1 +2020-05-05,Lamoille,Vermont,50015,26,1 +2020-05-06,Lamoille,Vermont,50015,26,1 +2020-05-07,Lamoille,Vermont,50015,26,1 +2020-05-08,Lamoille,Vermont,50015,26,1 +2020-05-09,Lamoille,Vermont,50015,26,1 +2020-05-10,Lamoille,Vermont,50015,26,1 +2020-05-11,Lamoille,Vermont,50015,26,1 +2020-05-12,Lamoille,Vermont,50015,26,1 +2020-05-13,Lamoille,Vermont,50015,27,1 +2020-05-14,Lamoille,Vermont,50015,27,1 +2020-05-15,Lamoille,Vermont,50015,27,1 +2020-05-16,Lamoille,Vermont,50015,27,1 +2020-05-17,Lamoille,Vermont,50015,27,1 +2020-05-18,Lamoille,Vermont,50015,27,1 +2020-05-19,Lamoille,Vermont,50015,28,1 +2020-05-20,Lamoille,Vermont,50015,27,1 +2020-05-21,Lamoille,Vermont,50015,29,1 +2020-05-22,Lamoille,Vermont,50015,29,1 +2020-05-23,Lamoille,Vermont,50015,29,1 +2020-05-24,Lamoille,Vermont,50015,29,1 +2020-05-25,Lamoille,Vermont,50015,29,1 +2020-05-26,Lamoille,Vermont,50015,29,1 +2020-05-27,Lamoille,Vermont,50015,29,1 +2020-05-28,Lamoille,Vermont,50015,29,1 +2020-05-29,Lamoille,Vermont,50015,29,1 +2020-05-30,Lamoille,Vermont,50015,29,1 +2020-05-31,Lamoille,Vermont,50015,29,1 +2020-06-01,Lamoille,Vermont,50015,29,1 +2020-06-02,Lamoille,Vermont,50015,29,1 +2020-06-03,Lamoille,Vermont,50015,29,1 +2020-06-04,Lamoille,Vermont,50015,29,1 +2020-06-05,Lamoille,Vermont,50015,29,1 +2020-06-06,Lamoille,Vermont,50015,29,1 +2020-06-07,Lamoille,Vermont,50015,29,1 +2020-06-08,Lamoille,Vermont,50015,29,1 +2020-06-09,Lamoille,Vermont,50015,29,1 +2020-06-10,Lamoille,Vermont,50015,29,1 +2020-06-11,Lamoille,Vermont,50015,29,1 +2020-06-12,Lamoille,Vermont,50015,29,1 +2020-06-13,Lamoille,Vermont,50015,29,1 +2020-06-14,Lamoille,Vermont,50015,29,1 +2020-06-15,Lamoille,Vermont,50015,29,1 +2020-06-16,Lamoille,Vermont,50015,29,1 +2020-06-17,Lamoille,Vermont,50015,29,1 +2020-06-18,Lamoille,Vermont,50015,29,1 +2020-06-19,Lamoille,Vermont,50015,30,1 +2020-06-20,Lamoille,Vermont,50015,30,1 +2020-06-21,Lamoille,Vermont,50015,30,1 +2020-06-22,Lamoille,Vermont,50015,30,1 +2020-06-23,Lamoille,Vermont,50015,30,1 +2020-06-24,Lamoille,Vermont,50015,30,1 +2020-06-25,Lamoille,Vermont,50015,30,1 +2020-06-26,Lamoille,Vermont,50015,30,1 +2020-06-27,Lamoille,Vermont,50015,30,1 +2020-06-28,Lamoille,Vermont,50015,30,1 +2020-06-29,Lamoille,Vermont,50015,30,1 +2020-06-30,Lamoille,Vermont,50015,30,1 +2020-07-01,Lamoille,Vermont,50015,30,1 +2020-07-02,Lamoille,Vermont,50015,31,1 +2020-07-03,Lamoille,Vermont,50015,31,1 +2020-07-04,Lamoille,Vermont,50015,32,1 +2020-07-05,Lamoille,Vermont,50015,34,1 +2020-07-06,Lamoille,Vermont,50015,34,1 +2020-07-07,Lamoille,Vermont,50015,34,1 +2020-07-08,Lamoille,Vermont,50015,34,1 +2020-07-09,Lamoille,Vermont,50015,36,1 +2020-03-16,Orange,Vermont,50017,1,0 +2020-03-17,Orange,Vermont,50017,1,0 +2020-03-18,Orange,Vermont,50017,1,0 +2020-03-19,Orange,Vermont,50017,2,0 +2020-03-20,Orange,Vermont,50017,3,0 +2020-03-21,Orange,Vermont,50017,3,0 +2020-03-22,Orange,Vermont,50017,3,0 +2020-03-23,Orange,Vermont,50017,3,0 +2020-03-24,Orange,Vermont,50017,3,0 +2020-03-25,Orange,Vermont,50017,3,0 +2020-03-26,Orange,Vermont,50017,3,0 +2020-03-27,Orange,Vermont,50017,3,0 +2020-03-28,Orange,Vermont,50017,3,0 +2020-03-29,Orange,Vermont,50017,3,0 +2020-03-30,Orange,Vermont,50017,4,0 +2020-03-31,Orange,Vermont,50017,4,0 +2020-04-01,Orange,Vermont,50017,4,0 +2020-04-02,Orange,Vermont,50017,4,0 +2020-04-03,Orange,Vermont,50017,4,0 +2020-04-04,Orange,Vermont,50017,4,0 +2020-04-05,Orange,Vermont,50017,4,0 +2020-04-06,Orange,Vermont,50017,4,0 +2020-04-07,Orange,Vermont,50017,4,0 +2020-04-08,Orange,Vermont,50017,5,0 +2020-04-09,Orange,Vermont,50017,5,0 +2020-04-10,Orange,Vermont,50017,5,0 +2020-04-11,Orange,Vermont,50017,5,0 +2020-04-12,Orange,Vermont,50017,5,0 +2020-04-13,Orange,Vermont,50017,5,0 +2020-04-14,Orange,Vermont,50017,5,0 +2020-04-15,Orange,Vermont,50017,5,0 +2020-04-16,Orange,Vermont,50017,5,0 +2020-04-17,Orange,Vermont,50017,5,0 +2020-04-18,Orange,Vermont,50017,5,0 +2020-04-19,Orange,Vermont,50017,5,0 +2020-04-20,Orange,Vermont,50017,5,0 +2020-04-21,Orange,Vermont,50017,6,0 +2020-04-22,Orange,Vermont,50017,6,0 +2020-04-23,Orange,Vermont,50017,6,0 +2020-04-24,Orange,Vermont,50017,6,0 +2020-04-25,Orange,Vermont,50017,6,0 +2020-04-26,Orange,Vermont,50017,6,0 +2020-04-27,Orange,Vermont,50017,7,0 +2020-04-28,Orange,Vermont,50017,7,0 +2020-04-29,Orange,Vermont,50017,7,0 +2020-04-30,Orange,Vermont,50017,7,0 +2020-05-01,Orange,Vermont,50017,7,0 +2020-05-02,Orange,Vermont,50017,7,0 +2020-05-03,Orange,Vermont,50017,7,0 +2020-05-04,Orange,Vermont,50017,8,0 +2020-05-05,Orange,Vermont,50017,8,0 +2020-05-06,Orange,Vermont,50017,8,0 +2020-05-07,Orange,Vermont,50017,8,0 +2020-05-08,Orange,Vermont,50017,8,0 +2020-05-09,Orange,Vermont,50017,8,0 +2020-05-10,Orange,Vermont,50017,8,0 +2020-05-11,Orange,Vermont,50017,8,0 +2020-05-12,Orange,Vermont,50017,8,0 +2020-05-13,Orange,Vermont,50017,8,0 +2020-05-14,Orange,Vermont,50017,8,0 +2020-05-15,Orange,Vermont,50017,8,0 +2020-05-16,Orange,Vermont,50017,8,0 +2020-05-17,Orange,Vermont,50017,8,0 +2020-05-18,Orange,Vermont,50017,8,0 +2020-05-19,Orange,Vermont,50017,8,0 +2020-05-20,Orange,Vermont,50017,8,0 +2020-05-21,Orange,Vermont,50017,8,0 +2020-05-22,Orange,Vermont,50017,8,0 +2020-05-23,Orange,Vermont,50017,8,0 +2020-05-24,Orange,Vermont,50017,8,0 +2020-05-25,Orange,Vermont,50017,8,0 +2020-05-26,Orange,Vermont,50017,8,0 +2020-05-27,Orange,Vermont,50017,8,0 +2020-05-28,Orange,Vermont,50017,8,0 +2020-05-29,Orange,Vermont,50017,8,0 +2020-05-30,Orange,Vermont,50017,8,0 +2020-05-31,Orange,Vermont,50017,9,0 +2020-06-01,Orange,Vermont,50017,9,0 +2020-06-02,Orange,Vermont,50017,9,0 +2020-06-03,Orange,Vermont,50017,9,0 +2020-06-04,Orange,Vermont,50017,9,0 +2020-06-05,Orange,Vermont,50017,9,0 +2020-06-06,Orange,Vermont,50017,9,0 +2020-06-07,Orange,Vermont,50017,9,0 +2020-06-08,Orange,Vermont,50017,9,0 +2020-06-09,Orange,Vermont,50017,9,0 +2020-06-10,Orange,Vermont,50017,9,0 +2020-06-11,Orange,Vermont,50017,9,0 +2020-06-12,Orange,Vermont,50017,9,0 +2020-06-13,Orange,Vermont,50017,9,0 +2020-06-14,Orange,Vermont,50017,9,0 +2020-06-15,Orange,Vermont,50017,9,0 +2020-06-16,Orange,Vermont,50017,9,0 +2020-06-17,Orange,Vermont,50017,9,0 +2020-06-18,Orange,Vermont,50017,9,0 +2020-06-19,Orange,Vermont,50017,9,0 +2020-06-20,Orange,Vermont,50017,9,0 +2020-06-21,Orange,Vermont,50017,9,0 +2020-06-22,Orange,Vermont,50017,9,0 +2020-06-23,Orange,Vermont,50017,9,0 +2020-06-24,Orange,Vermont,50017,9,0 +2020-06-25,Orange,Vermont,50017,9,0 +2020-06-26,Orange,Vermont,50017,9,0 +2020-06-27,Orange,Vermont,50017,9,0 +2020-06-28,Orange,Vermont,50017,9,0 +2020-06-29,Orange,Vermont,50017,9,0 +2020-06-30,Orange,Vermont,50017,9,0 +2020-07-01,Orange,Vermont,50017,9,0 +2020-07-02,Orange,Vermont,50017,9,0 +2020-07-03,Orange,Vermont,50017,9,0 +2020-07-04,Orange,Vermont,50017,9,0 +2020-07-05,Orange,Vermont,50017,10,0 +2020-07-06,Orange,Vermont,50017,10,0 +2020-07-07,Orange,Vermont,50017,10,0 +2020-07-08,Orange,Vermont,50017,10,0 +2020-07-09,Orange,Vermont,50017,10,0 +2020-03-24,Orleans,Vermont,50019,2,0 +2020-03-25,Orleans,Vermont,50019,3,0 +2020-03-26,Orleans,Vermont,50019,3,0 +2020-03-27,Orleans,Vermont,50019,4,0 +2020-03-28,Orleans,Vermont,50019,5,0 +2020-03-29,Orleans,Vermont,50019,5,0 +2020-03-30,Orleans,Vermont,50019,5,0 +2020-03-31,Orleans,Vermont,50019,7,0 +2020-04-01,Orleans,Vermont,50019,7,0 +2020-04-02,Orleans,Vermont,50019,7,0 +2020-04-03,Orleans,Vermont,50019,8,0 +2020-04-04,Orleans,Vermont,50019,8,0 +2020-04-05,Orleans,Vermont,50019,8,0 +2020-04-06,Orleans,Vermont,50019,8,0 +2020-04-07,Orleans,Vermont,50019,8,0 +2020-04-08,Orleans,Vermont,50019,8,0 +2020-04-09,Orleans,Vermont,50019,8,0 +2020-04-10,Orleans,Vermont,50019,8,0 +2020-04-11,Orleans,Vermont,50019,8,0 +2020-04-12,Orleans,Vermont,50019,8,0 +2020-04-13,Orleans,Vermont,50019,8,0 +2020-04-14,Orleans,Vermont,50019,8,0 +2020-04-15,Orleans,Vermont,50019,8,0 +2020-04-16,Orleans,Vermont,50019,8,0 +2020-04-17,Orleans,Vermont,50019,8,0 +2020-04-18,Orleans,Vermont,50019,9,0 +2020-04-19,Orleans,Vermont,50019,9,0 +2020-04-20,Orleans,Vermont,50019,9,0 +2020-04-21,Orleans,Vermont,50019,9,0 +2020-04-22,Orleans,Vermont,50019,9,0 +2020-04-23,Orleans,Vermont,50019,9,0 +2020-04-24,Orleans,Vermont,50019,9,0 +2020-04-25,Orleans,Vermont,50019,9,0 +2020-04-26,Orleans,Vermont,50019,9,0 +2020-04-27,Orleans,Vermont,50019,9,0 +2020-04-28,Orleans,Vermont,50019,9,0 +2020-04-29,Orleans,Vermont,50019,9,0 +2020-04-30,Orleans,Vermont,50019,9,0 +2020-05-01,Orleans,Vermont,50019,9,0 +2020-05-02,Orleans,Vermont,50019,9,0 +2020-05-03,Orleans,Vermont,50019,9,0 +2020-05-04,Orleans,Vermont,50019,9,0 +2020-05-05,Orleans,Vermont,50019,9,0 +2020-05-06,Orleans,Vermont,50019,9,0 +2020-05-07,Orleans,Vermont,50019,9,0 +2020-05-08,Orleans,Vermont,50019,9,0 +2020-05-09,Orleans,Vermont,50019,9,0 +2020-05-10,Orleans,Vermont,50019,9,0 +2020-05-11,Orleans,Vermont,50019,9,0 +2020-05-12,Orleans,Vermont,50019,9,0 +2020-05-13,Orleans,Vermont,50019,9,0 +2020-05-14,Orleans,Vermont,50019,9,0 +2020-05-15,Orleans,Vermont,50019,9,0 +2020-05-16,Orleans,Vermont,50019,9,0 +2020-05-17,Orleans,Vermont,50019,9,0 +2020-05-18,Orleans,Vermont,50019,9,0 +2020-05-19,Orleans,Vermont,50019,9,0 +2020-05-20,Orleans,Vermont,50019,9,0 +2020-05-21,Orleans,Vermont,50019,9,0 +2020-05-22,Orleans,Vermont,50019,9,0 +2020-05-23,Orleans,Vermont,50019,9,0 +2020-05-24,Orleans,Vermont,50019,9,0 +2020-05-25,Orleans,Vermont,50019,9,0 +2020-05-26,Orleans,Vermont,50019,10,0 +2020-05-27,Orleans,Vermont,50019,10,0 +2020-05-28,Orleans,Vermont,50019,10,0 +2020-05-29,Orleans,Vermont,50019,10,0 +2020-05-30,Orleans,Vermont,50019,10,0 +2020-05-31,Orleans,Vermont,50019,10,0 +2020-06-01,Orleans,Vermont,50019,10,0 +2020-06-02,Orleans,Vermont,50019,10,0 +2020-06-03,Orleans,Vermont,50019,10,0 +2020-06-04,Orleans,Vermont,50019,10,0 +2020-06-05,Orleans,Vermont,50019,10,0 +2020-06-06,Orleans,Vermont,50019,10,0 +2020-06-07,Orleans,Vermont,50019,10,0 +2020-06-08,Orleans,Vermont,50019,13,0 +2020-06-09,Orleans,Vermont,50019,13,0 +2020-06-10,Orleans,Vermont,50019,13,0 +2020-06-11,Orleans,Vermont,50019,13,0 +2020-06-12,Orleans,Vermont,50019,13,0 +2020-06-13,Orleans,Vermont,50019,13,0 +2020-06-14,Orleans,Vermont,50019,13,0 +2020-06-15,Orleans,Vermont,50019,13,0 +2020-06-16,Orleans,Vermont,50019,13,0 +2020-06-17,Orleans,Vermont,50019,13,0 +2020-06-18,Orleans,Vermont,50019,13,0 +2020-06-19,Orleans,Vermont,50019,14,0 +2020-06-20,Orleans,Vermont,50019,14,0 +2020-06-21,Orleans,Vermont,50019,14,0 +2020-06-22,Orleans,Vermont,50019,14,0 +2020-06-23,Orleans,Vermont,50019,14,0 +2020-06-24,Orleans,Vermont,50019,14,0 +2020-06-25,Orleans,Vermont,50019,14,0 +2020-06-26,Orleans,Vermont,50019,14,0 +2020-06-27,Orleans,Vermont,50019,14,0 +2020-06-28,Orleans,Vermont,50019,14,0 +2020-06-29,Orleans,Vermont,50019,14,0 +2020-06-30,Orleans,Vermont,50019,14,0 +2020-07-01,Orleans,Vermont,50019,14,0 +2020-07-02,Orleans,Vermont,50019,14,0 +2020-07-03,Orleans,Vermont,50019,14,0 +2020-07-04,Orleans,Vermont,50019,14,0 +2020-07-05,Orleans,Vermont,50019,14,0 +2020-07-06,Orleans,Vermont,50019,14,0 +2020-07-07,Orleans,Vermont,50019,14,0 +2020-07-08,Orleans,Vermont,50019,14,0 +2020-07-09,Orleans,Vermont,50019,14,0 +2020-03-20,Rutland,Vermont,50021,1,0 +2020-03-21,Rutland,Vermont,50021,3,0 +2020-03-22,Rutland,Vermont,50021,3,0 +2020-03-23,Rutland,Vermont,50021,3,0 +2020-03-24,Rutland,Vermont,50021,5,0 +2020-03-25,Rutland,Vermont,50021,5,0 +2020-03-26,Rutland,Vermont,50021,5,0 +2020-03-27,Rutland,Vermont,50021,5,0 +2020-03-28,Rutland,Vermont,50021,6,0 +2020-03-29,Rutland,Vermont,50021,6,0 +2020-03-30,Rutland,Vermont,50021,6,0 +2020-03-31,Rutland,Vermont,50021,6,0 +2020-04-01,Rutland,Vermont,50021,10,0 +2020-04-02,Rutland,Vermont,50021,12,0 +2020-04-03,Rutland,Vermont,50021,17,0 +2020-04-04,Rutland,Vermont,50021,24,0 +2020-04-05,Rutland,Vermont,50021,27,0 +2020-04-06,Rutland,Vermont,50021,28,0 +2020-04-07,Rutland,Vermont,50021,31,0 +2020-04-08,Rutland,Vermont,50021,31,0 +2020-04-09,Rutland,Vermont,50021,34,0 +2020-04-10,Rutland,Vermont,50021,34,0 +2020-04-11,Rutland,Vermont,50021,35,0 +2020-04-12,Rutland,Vermont,50021,36,0 +2020-04-13,Rutland,Vermont,50021,39,0 +2020-04-14,Rutland,Vermont,50021,39,0 +2020-04-15,Rutland,Vermont,50021,39,0 +2020-04-16,Rutland,Vermont,50021,41,1 +2020-04-17,Rutland,Vermont,50021,41,1 +2020-04-18,Rutland,Vermont,50021,42,1 +2020-04-19,Rutland,Vermont,50021,43,1 +2020-04-20,Rutland,Vermont,50021,43,1 +2020-04-21,Rutland,Vermont,50021,44,1 +2020-04-22,Rutland,Vermont,50021,44,1 +2020-04-23,Rutland,Vermont,50021,44,1 +2020-04-24,Rutland,Vermont,50021,44,1 +2020-04-25,Rutland,Vermont,50021,44,1 +2020-04-26,Rutland,Vermont,50021,44,1 +2020-04-27,Rutland,Vermont,50021,44,1 +2020-04-28,Rutland,Vermont,50021,44,1 +2020-04-29,Rutland,Vermont,50021,44,1 +2020-04-30,Rutland,Vermont,50021,45,1 +2020-05-01,Rutland,Vermont,50021,46,1 +2020-05-02,Rutland,Vermont,50021,49,1 +2020-05-03,Rutland,Vermont,50021,49,1 +2020-05-04,Rutland,Vermont,50021,49,1 +2020-05-05,Rutland,Vermont,50021,50,1 +2020-05-06,Rutland,Vermont,50021,49,1 +2020-05-07,Rutland,Vermont,50021,49,1 +2020-05-08,Rutland,Vermont,50021,50,1 +2020-05-09,Rutland,Vermont,50021,49,1 +2020-05-10,Rutland,Vermont,50021,49,1 +2020-05-11,Rutland,Vermont,50021,49,1 +2020-05-12,Rutland,Vermont,50021,49,1 +2020-05-13,Rutland,Vermont,50021,49,1 +2020-05-14,Rutland,Vermont,50021,49,1 +2020-05-15,Rutland,Vermont,50021,49,1 +2020-05-16,Rutland,Vermont,50021,49,1 +2020-05-17,Rutland,Vermont,50021,50,1 +2020-05-18,Rutland,Vermont,50021,50,1 +2020-05-19,Rutland,Vermont,50021,50,1 +2020-05-20,Rutland,Vermont,50021,50,1 +2020-05-21,Rutland,Vermont,50021,50,1 +2020-05-22,Rutland,Vermont,50021,51,1 +2020-05-23,Rutland,Vermont,50021,51,1 +2020-05-24,Rutland,Vermont,50021,51,1 +2020-05-25,Rutland,Vermont,50021,53,1 +2020-05-26,Rutland,Vermont,50021,53,1 +2020-05-27,Rutland,Vermont,50021,54,1 +2020-05-28,Rutland,Vermont,50021,54,1 +2020-05-29,Rutland,Vermont,50021,55,1 +2020-05-30,Rutland,Vermont,50021,55,1 +2020-05-31,Rutland,Vermont,50021,55,1 +2020-06-01,Rutland,Vermont,50021,55,1 +2020-06-02,Rutland,Vermont,50021,55,1 +2020-06-03,Rutland,Vermont,50021,55,1 +2020-06-04,Rutland,Vermont,50021,56,1 +2020-06-05,Rutland,Vermont,50021,56,1 +2020-06-06,Rutland,Vermont,50021,57,1 +2020-06-07,Rutland,Vermont,50021,57,1 +2020-06-08,Rutland,Vermont,50021,57,1 +2020-06-09,Rutland,Vermont,50021,57,1 +2020-06-10,Rutland,Vermont,50021,57,1 +2020-06-11,Rutland,Vermont,50021,57,1 +2020-06-12,Rutland,Vermont,50021,58,1 +2020-06-13,Rutland,Vermont,50021,58,1 +2020-06-14,Rutland,Vermont,50021,59,1 +2020-06-15,Rutland,Vermont,50021,59,1 +2020-06-16,Rutland,Vermont,50021,59,1 +2020-06-17,Rutland,Vermont,50021,59,1 +2020-06-18,Rutland,Vermont,50021,60,1 +2020-06-19,Rutland,Vermont,50021,61,1 +2020-06-20,Rutland,Vermont,50021,61,1 +2020-06-21,Rutland,Vermont,50021,61,1 +2020-06-22,Rutland,Vermont,50021,61,1 +2020-06-23,Rutland,Vermont,50021,61,1 +2020-06-24,Rutland,Vermont,50021,71,1 +2020-06-25,Rutland,Vermont,50021,71,1 +2020-06-26,Rutland,Vermont,50021,73,1 +2020-06-27,Rutland,Vermont,50021,73,1 +2020-06-28,Rutland,Vermont,50021,73,1 +2020-06-29,Rutland,Vermont,50021,73,1 +2020-06-30,Rutland,Vermont,50021,73,1 +2020-07-01,Rutland,Vermont,50021,73,1 +2020-07-02,Rutland,Vermont,50021,73,1 +2020-07-03,Rutland,Vermont,50021,74,1 +2020-07-04,Rutland,Vermont,50021,74,1 +2020-07-05,Rutland,Vermont,50021,74,1 +2020-07-06,Rutland,Vermont,50021,74,1 +2020-07-07,Rutland,Vermont,50021,75,1 +2020-07-08,Rutland,Vermont,50021,75,1 +2020-07-09,Rutland,Vermont,50021,75,1 +2020-03-14,Washington,Vermont,50023,1,0 +2020-03-15,Washington,Vermont,50023,1,0 +2020-03-16,Washington,Vermont,50023,1,0 +2020-03-17,Washington,Vermont,50023,1,0 +2020-03-18,Washington,Vermont,50023,1,0 +2020-03-19,Washington,Vermont,50023,1,0 +2020-03-20,Washington,Vermont,50023,2,0 +2020-03-21,Washington,Vermont,50023,2,0 +2020-03-22,Washington,Vermont,50023,2,0 +2020-03-23,Washington,Vermont,50023,2,0 +2020-03-24,Washington,Vermont,50023,3,0 +2020-03-25,Washington,Vermont,50023,5,0 +2020-03-26,Washington,Vermont,50023,7,0 +2020-03-27,Washington,Vermont,50023,9,0 +2020-03-28,Washington,Vermont,50023,10,0 +2020-03-29,Washington,Vermont,50023,12,0 +2020-03-30,Washington,Vermont,50023,13,0 +2020-03-31,Washington,Vermont,50023,15,0 +2020-04-01,Washington,Vermont,50023,15,0 +2020-04-02,Washington,Vermont,50023,15,0 +2020-04-03,Washington,Vermont,50023,21,0 +2020-04-04,Washington,Vermont,50023,21,0 +2020-04-05,Washington,Vermont,50023,22,0 +2020-04-06,Washington,Vermont,50023,22,0 +2020-04-07,Washington,Vermont,50023,24,0 +2020-04-08,Washington,Vermont,50023,24,0 +2020-04-09,Washington,Vermont,50023,24,0 +2020-04-10,Washington,Vermont,50023,24,0 +2020-04-11,Washington,Vermont,50023,28,0 +2020-04-12,Washington,Vermont,50023,28,0 +2020-04-13,Washington,Vermont,50023,28,0 +2020-04-14,Washington,Vermont,50023,29,0 +2020-04-15,Washington,Vermont,50023,29,0 +2020-04-16,Washington,Vermont,50023,29,1 +2020-04-17,Washington,Vermont,50023,30,1 +2020-04-18,Washington,Vermont,50023,31,1 +2020-04-19,Washington,Vermont,50023,32,1 +2020-04-20,Washington,Vermont,50023,32,1 +2020-04-21,Washington,Vermont,50023,32,1 +2020-04-22,Washington,Vermont,50023,33,1 +2020-04-23,Washington,Vermont,50023,33,1 +2020-04-24,Washington,Vermont,50023,33,1 +2020-04-25,Washington,Vermont,50023,33,1 +2020-04-26,Washington,Vermont,50023,33,1 +2020-04-27,Washington,Vermont,50023,32,1 +2020-04-28,Washington,Vermont,50023,32,1 +2020-04-29,Washington,Vermont,50023,32,1 +2020-04-30,Washington,Vermont,50023,33,1 +2020-05-01,Washington,Vermont,50023,33,1 +2020-05-02,Washington,Vermont,50023,33,1 +2020-05-03,Washington,Vermont,50023,35,1 +2020-05-04,Washington,Vermont,50023,35,1 +2020-05-05,Washington,Vermont,50023,35,1 +2020-05-06,Washington,Vermont,50023,36,1 +2020-05-07,Washington,Vermont,50023,37,1 +2020-05-08,Washington,Vermont,50023,37,1 +2020-05-09,Washington,Vermont,50023,37,1 +2020-05-10,Washington,Vermont,50023,38,1 +2020-05-11,Washington,Vermont,50023,38,1 +2020-05-12,Washington,Vermont,50023,38,1 +2020-05-13,Washington,Vermont,50023,38,1 +2020-05-14,Washington,Vermont,50023,38,1 +2020-05-15,Washington,Vermont,50023,38,1 +2020-05-16,Washington,Vermont,50023,38,1 +2020-05-17,Washington,Vermont,50023,38,1 +2020-05-18,Washington,Vermont,50023,38,1 +2020-05-19,Washington,Vermont,50023,38,1 +2020-05-20,Washington,Vermont,50023,38,1 +2020-05-21,Washington,Vermont,50023,38,1 +2020-05-22,Washington,Vermont,50023,38,1 +2020-05-23,Washington,Vermont,50023,39,1 +2020-05-24,Washington,Vermont,50023,39,1 +2020-05-25,Washington,Vermont,50023,39,1 +2020-05-26,Washington,Vermont,50023,39,1 +2020-05-27,Washington,Vermont,50023,39,1 +2020-05-28,Washington,Vermont,50023,39,1 +2020-05-29,Washington,Vermont,50023,39,1 +2020-05-30,Washington,Vermont,50023,39,1 +2020-05-31,Washington,Vermont,50023,39,1 +2020-06-01,Washington,Vermont,50023,39,1 +2020-06-02,Washington,Vermont,50023,39,1 +2020-06-03,Washington,Vermont,50023,39,1 +2020-06-04,Washington,Vermont,50023,39,1 +2020-06-05,Washington,Vermont,50023,39,1 +2020-06-06,Washington,Vermont,50023,39,1 +2020-06-07,Washington,Vermont,50023,39,1 +2020-06-08,Washington,Vermont,50023,39,1 +2020-06-09,Washington,Vermont,50023,39,1 +2020-06-10,Washington,Vermont,50023,39,1 +2020-06-11,Washington,Vermont,50023,39,1 +2020-06-12,Washington,Vermont,50023,40,1 +2020-06-13,Washington,Vermont,50023,41,1 +2020-06-14,Washington,Vermont,50023,41,1 +2020-06-15,Washington,Vermont,50023,41,1 +2020-06-16,Washington,Vermont,50023,41,1 +2020-06-17,Washington,Vermont,50023,41,1 +2020-06-18,Washington,Vermont,50023,41,1 +2020-06-19,Washington,Vermont,50023,41,1 +2020-06-20,Washington,Vermont,50023,41,1 +2020-06-21,Washington,Vermont,50023,41,1 +2020-06-22,Washington,Vermont,50023,41,1 +2020-06-23,Washington,Vermont,50023,41,1 +2020-06-24,Washington,Vermont,50023,41,1 +2020-06-25,Washington,Vermont,50023,41,1 +2020-06-26,Washington,Vermont,50023,41,1 +2020-06-27,Washington,Vermont,50023,41,1 +2020-06-28,Washington,Vermont,50023,41,1 +2020-06-29,Washington,Vermont,50023,41,1 +2020-06-30,Washington,Vermont,50023,41,1 +2020-07-01,Washington,Vermont,50023,41,1 +2020-07-02,Washington,Vermont,50023,41,1 +2020-07-03,Washington,Vermont,50023,41,1 +2020-07-04,Washington,Vermont,50023,41,1 +2020-07-05,Washington,Vermont,50023,42,1 +2020-07-06,Washington,Vermont,50023,42,1 +2020-07-07,Washington,Vermont,50023,42,1 +2020-07-08,Washington,Vermont,50023,42,1 +2020-07-09,Washington,Vermont,50023,42,1 +2020-03-21,Windham,Vermont,50025,2,0 +2020-03-22,Windham,Vermont,50025,5,0 +2020-03-23,Windham,Vermont,50025,5,0 +2020-03-24,Windham,Vermont,50025,5,0 +2020-03-25,Windham,Vermont,50025,7,0 +2020-03-26,Windham,Vermont,50025,7,0 +2020-03-27,Windham,Vermont,50025,9,0 +2020-03-28,Windham,Vermont,50025,9,0 +2020-03-29,Windham,Vermont,50025,11,0 +2020-03-30,Windham,Vermont,50025,11,0 +2020-03-31,Windham,Vermont,50025,11,0 +2020-04-01,Windham,Vermont,50025,16,0 +2020-04-02,Windham,Vermont,50025,18,0 +2020-04-03,Windham,Vermont,50025,21,0 +2020-04-04,Windham,Vermont,50025,21,0 +2020-04-05,Windham,Vermont,50025,31,0 +2020-04-06,Windham,Vermont,50025,35,0 +2020-04-07,Windham,Vermont,50025,38,0 +2020-04-08,Windham,Vermont,50025,40,1 +2020-04-09,Windham,Vermont,50025,42,1 +2020-04-10,Windham,Vermont,50025,42,1 +2020-04-11,Windham,Vermont,50025,50,1 +2020-04-12,Windham,Vermont,50025,54,1 +2020-04-13,Windham,Vermont,50025,55,1 +2020-04-14,Windham,Vermont,50025,57,1 +2020-04-15,Windham,Vermont,50025,58,1 +2020-04-16,Windham,Vermont,50025,58,2 +2020-04-17,Windham,Vermont,50025,60,2 +2020-04-18,Windham,Vermont,50025,63,2 +2020-04-19,Windham,Vermont,50025,62,2 +2020-04-20,Windham,Vermont,50025,63,2 +2020-04-21,Windham,Vermont,50025,65,2 +2020-04-22,Windham,Vermont,50025,67,2 +2020-04-23,Windham,Vermont,50025,67,2 +2020-04-24,Windham,Vermont,50025,67,2 +2020-04-25,Windham,Vermont,50025,68,2 +2020-04-26,Windham,Vermont,50025,69,2 +2020-04-27,Windham,Vermont,50025,70,2 +2020-04-28,Windham,Vermont,50025,71,2 +2020-04-29,Windham,Vermont,50025,71,2 +2020-04-30,Windham,Vermont,50025,71,3 +2020-05-01,Windham,Vermont,50025,71,3 +2020-05-02,Windham,Vermont,50025,71,3 +2020-05-03,Windham,Vermont,50025,72,3 +2020-05-04,Windham,Vermont,50025,72,3 +2020-05-05,Windham,Vermont,50025,73,3 +2020-05-06,Windham,Vermont,50025,73,3 +2020-05-07,Windham,Vermont,50025,73,3 +2020-05-08,Windham,Vermont,50025,73,3 +2020-05-09,Windham,Vermont,50025,74,3 +2020-05-10,Windham,Vermont,50025,74,3 +2020-05-11,Windham,Vermont,50025,74,3 +2020-05-12,Windham,Vermont,50025,75,3 +2020-05-13,Windham,Vermont,50025,75,3 +2020-05-14,Windham,Vermont,50025,77,3 +2020-05-15,Windham,Vermont,50025,77,3 +2020-05-16,Windham,Vermont,50025,77,3 +2020-05-17,Windham,Vermont,50025,76,3 +2020-05-18,Windham,Vermont,50025,76,3 +2020-05-19,Windham,Vermont,50025,77,3 +2020-05-20,Windham,Vermont,50025,77,3 +2020-05-21,Windham,Vermont,50025,80,3 +2020-05-22,Windham,Vermont,50025,80,3 +2020-05-23,Windham,Vermont,50025,80,3 +2020-05-24,Windham,Vermont,50025,80,3 +2020-05-25,Windham,Vermont,50025,80,3 +2020-05-26,Windham,Vermont,50025,80,3 +2020-05-27,Windham,Vermont,50025,80,3 +2020-05-28,Windham,Vermont,50025,81,3 +2020-05-29,Windham,Vermont,50025,81,3 +2020-05-30,Windham,Vermont,50025,81,3 +2020-05-31,Windham,Vermont,50025,81,3 +2020-06-01,Windham,Vermont,50025,81,3 +2020-06-02,Windham,Vermont,50025,81,3 +2020-06-03,Windham,Vermont,50025,81,3 +2020-06-04,Windham,Vermont,50025,81,3 +2020-06-05,Windham,Vermont,50025,81,3 +2020-06-06,Windham,Vermont,50025,82,3 +2020-06-07,Windham,Vermont,50025,82,3 +2020-06-08,Windham,Vermont,50025,83,3 +2020-06-09,Windham,Vermont,50025,83,3 +2020-06-10,Windham,Vermont,50025,83,3 +2020-06-11,Windham,Vermont,50025,83,3 +2020-06-12,Windham,Vermont,50025,84,3 +2020-06-13,Windham,Vermont,50025,85,3 +2020-06-14,Windham,Vermont,50025,85,3 +2020-06-15,Windham,Vermont,50025,85,3 +2020-06-16,Windham,Vermont,50025,85,3 +2020-06-17,Windham,Vermont,50025,85,3 +2020-06-18,Windham,Vermont,50025,85,3 +2020-06-19,Windham,Vermont,50025,85,3 +2020-06-20,Windham,Vermont,50025,87,3 +2020-06-21,Windham,Vermont,50025,91,3 +2020-06-22,Windham,Vermont,50025,91,3 +2020-06-23,Windham,Vermont,50025,91,3 +2020-06-24,Windham,Vermont,50025,92,3 +2020-06-25,Windham,Vermont,50025,93,3 +2020-06-26,Windham,Vermont,50025,93,3 +2020-06-27,Windham,Vermont,50025,94,3 +2020-06-28,Windham,Vermont,50025,94,3 +2020-06-29,Windham,Vermont,50025,94,3 +2020-06-30,Windham,Vermont,50025,94,3 +2020-07-01,Windham,Vermont,50025,94,3 +2020-07-02,Windham,Vermont,50025,97,3 +2020-07-03,Windham,Vermont,50025,97,3 +2020-07-04,Windham,Vermont,50025,97,3 +2020-07-05,Windham,Vermont,50025,97,3 +2020-07-06,Windham,Vermont,50025,97,3 +2020-07-07,Windham,Vermont,50025,98,3 +2020-07-08,Windham,Vermont,50025,97,3 +2020-07-09,Windham,Vermont,50025,98,3 +2020-03-14,Windsor,Vermont,50027,2,0 +2020-03-15,Windsor,Vermont,50027,3,0 +2020-03-16,Windsor,Vermont,50027,3,0 +2020-03-17,Windsor,Vermont,50027,3,0 +2020-03-18,Windsor,Vermont,50027,3,0 +2020-03-19,Windsor,Vermont,50027,3,1 +2020-03-20,Windsor,Vermont,50027,6,1 +2020-03-21,Windsor,Vermont,50027,8,1 +2020-03-22,Windsor,Vermont,50027,8,1 +2020-03-23,Windsor,Vermont,50027,8,1 +2020-03-24,Windsor,Vermont,50027,15,1 +2020-03-25,Windsor,Vermont,50027,17,1 +2020-03-26,Windsor,Vermont,50027,17,1 +2020-03-27,Windsor,Vermont,50027,18,1 +2020-03-28,Windsor,Vermont,50027,18,1 +2020-03-29,Windsor,Vermont,50027,18,1 +2020-03-30,Windsor,Vermont,50027,18,1 +2020-03-31,Windsor,Vermont,50027,18,1 +2020-04-01,Windsor,Vermont,50027,18,1 +2020-04-02,Windsor,Vermont,50027,20,1 +2020-04-03,Windsor,Vermont,50027,20,1 +2020-04-04,Windsor,Vermont,50027,24,1 +2020-04-05,Windsor,Vermont,50027,22,1 +2020-04-06,Windsor,Vermont,50027,22,1 +2020-04-07,Windsor,Vermont,50027,24,1 +2020-04-08,Windsor,Vermont,50027,24,2 +2020-04-09,Windsor,Vermont,50027,24,2 +2020-04-10,Windsor,Vermont,50027,24,2 +2020-04-11,Windsor,Vermont,50027,25,2 +2020-04-12,Windsor,Vermont,50027,25,2 +2020-04-13,Windsor,Vermont,50027,27,2 +2020-04-14,Windsor,Vermont,50027,27,2 +2020-04-15,Windsor,Vermont,50027,29,2 +2020-04-16,Windsor,Vermont,50027,31,2 +2020-04-17,Windsor,Vermont,50027,33,2 +2020-04-18,Windsor,Vermont,50027,34,2 +2020-04-19,Windsor,Vermont,50027,37,2 +2020-04-20,Windsor,Vermont,50027,37,2 +2020-04-21,Windsor,Vermont,50027,38,2 +2020-04-22,Windsor,Vermont,50027,38,2 +2020-04-23,Windsor,Vermont,50027,38,2 +2020-04-24,Windsor,Vermont,50027,38,2 +2020-04-25,Windsor,Vermont,50027,39,2 +2020-04-26,Windsor,Vermont,50027,39,2 +2020-04-27,Windsor,Vermont,50027,40,2 +2020-04-28,Windsor,Vermont,50027,40,2 +2020-04-29,Windsor,Vermont,50027,40,2 +2020-04-30,Windsor,Vermont,50027,40,2 +2020-05-01,Windsor,Vermont,50027,40,2 +2020-05-02,Windsor,Vermont,50027,41,2 +2020-05-03,Windsor,Vermont,50027,42,2 +2020-05-04,Windsor,Vermont,50027,43,2 +2020-05-05,Windsor,Vermont,50027,43,2 +2020-05-06,Windsor,Vermont,50027,44,2 +2020-05-07,Windsor,Vermont,50027,46,2 +2020-05-08,Windsor,Vermont,50027,46,2 +2020-05-09,Windsor,Vermont,50027,46,2 +2020-05-10,Windsor,Vermont,50027,45,2 +2020-05-11,Windsor,Vermont,50027,45,2 +2020-05-12,Windsor,Vermont,50027,45,2 +2020-05-13,Windsor,Vermont,50027,46,2 +2020-05-14,Windsor,Vermont,50027,47,2 +2020-05-15,Windsor,Vermont,50027,47,2 +2020-05-16,Windsor,Vermont,50027,47,2 +2020-05-17,Windsor,Vermont,50027,47,2 +2020-05-18,Windsor,Vermont,50027,47,2 +2020-05-19,Windsor,Vermont,50027,48,2 +2020-05-20,Windsor,Vermont,50027,48,2 +2020-05-21,Windsor,Vermont,50027,49,2 +2020-05-22,Windsor,Vermont,50027,49,2 +2020-05-23,Windsor,Vermont,50027,49,2 +2020-05-24,Windsor,Vermont,50027,49,2 +2020-05-25,Windsor,Vermont,50027,50,2 +2020-05-26,Windsor,Vermont,50027,51,2 +2020-05-27,Windsor,Vermont,50027,51,2 +2020-05-28,Windsor,Vermont,50027,51,2 +2020-05-29,Windsor,Vermont,50027,51,2 +2020-05-30,Windsor,Vermont,50027,51,2 +2020-05-31,Windsor,Vermont,50027,51,2 +2020-06-01,Windsor,Vermont,50027,51,2 +2020-06-02,Windsor,Vermont,50027,51,2 +2020-06-03,Windsor,Vermont,50027,52,2 +2020-06-04,Windsor,Vermont,50027,52,2 +2020-06-05,Windsor,Vermont,50027,52,2 +2020-06-06,Windsor,Vermont,50027,55,2 +2020-06-07,Windsor,Vermont,50027,55,2 +2020-06-08,Windsor,Vermont,50027,55,2 +2020-06-09,Windsor,Vermont,50027,56,2 +2020-06-10,Windsor,Vermont,50027,56,2 +2020-06-11,Windsor,Vermont,50027,55,2 +2020-06-12,Windsor,Vermont,50027,55,2 +2020-06-13,Windsor,Vermont,50027,55,2 +2020-06-14,Windsor,Vermont,50027,55,2 +2020-06-15,Windsor,Vermont,50027,55,2 +2020-06-16,Windsor,Vermont,50027,55,2 +2020-06-17,Windsor,Vermont,50027,55,2 +2020-06-18,Windsor,Vermont,50027,55,2 +2020-06-19,Windsor,Vermont,50027,55,2 +2020-06-20,Windsor,Vermont,50027,55,2 +2020-06-21,Windsor,Vermont,50027,55,2 +2020-06-22,Windsor,Vermont,50027,55,2 +2020-06-23,Windsor,Vermont,50027,55,2 +2020-06-24,Windsor,Vermont,50027,55,2 +2020-06-25,Windsor,Vermont,50027,56,2 +2020-06-26,Windsor,Vermont,50027,58,2 +2020-06-27,Windsor,Vermont,50027,58,2 +2020-06-28,Windsor,Vermont,50027,58,2 +2020-06-29,Windsor,Vermont,50027,58,2 +2020-06-30,Windsor,Vermont,50027,58,2 +2020-07-01,Windsor,Vermont,50027,58,2 +2020-07-02,Windsor,Vermont,50027,59,2 +2020-07-03,Windsor,Vermont,50027,59,2 +2020-07-04,Windsor,Vermont,50027,59,2 +2020-07-05,Windsor,Vermont,50027,59,2 +2020-07-06,Windsor,Vermont,50027,59,2 +2020-07-07,Windsor,Vermont,50027,59,2 +2020-07-08,Windsor,Vermont,50027,61,2 +2020-07-09,Windsor,Vermont,50027,61,2 +2020-03-20,Accomack,Virginia,51001,1,0 +2020-03-21,Accomack,Virginia,51001,1,0 +2020-03-22,Accomack,Virginia,51001,1,0 +2020-03-23,Accomack,Virginia,51001,1,0 +2020-03-24,Accomack,Virginia,51001,1,0 +2020-03-25,Accomack,Virginia,51001,1,0 +2020-03-26,Accomack,Virginia,51001,2,0 +2020-03-27,Accomack,Virginia,51001,2,0 +2020-03-28,Accomack,Virginia,51001,2,0 +2020-03-29,Accomack,Virginia,51001,3,0 +2020-03-30,Accomack,Virginia,51001,6,0 +2020-03-31,Accomack,Virginia,51001,7,0 +2020-04-01,Accomack,Virginia,51001,7,0 +2020-04-02,Accomack,Virginia,51001,10,0 +2020-04-03,Accomack,Virginia,51001,8,0 +2020-04-04,Accomack,Virginia,51001,8,0 +2020-04-05,Accomack,Virginia,51001,11,0 +2020-04-06,Accomack,Virginia,51001,11,0 +2020-04-07,Accomack,Virginia,51001,11,0 +2020-04-08,Accomack,Virginia,51001,11,0 +2020-04-09,Accomack,Virginia,51001,11,0 +2020-04-10,Accomack,Virginia,51001,12,0 +2020-04-11,Accomack,Virginia,51001,15,0 +2020-04-12,Accomack,Virginia,51001,15,0 +2020-04-13,Accomack,Virginia,51001,15,0 +2020-04-14,Accomack,Virginia,51001,15,0 +2020-04-15,Accomack,Virginia,51001,15,0 +2020-04-16,Accomack,Virginia,51001,19,0 +2020-04-17,Accomack,Virginia,51001,28,0 +2020-04-18,Accomack,Virginia,51001,33,0 +2020-04-19,Accomack,Virginia,51001,42,0 +2020-04-20,Accomack,Virginia,51001,52,0 +2020-04-21,Accomack,Virginia,51001,52,1 +2020-04-22,Accomack,Virginia,51001,59,1 +2020-04-23,Accomack,Virginia,51001,76,2 +2020-04-24,Accomack,Virginia,51001,100,3 +2020-04-25,Accomack,Virginia,51001,146,3 +2020-04-26,Accomack,Virginia,51001,187,3 +2020-04-27,Accomack,Virginia,51001,195,3 +2020-04-28,Accomack,Virginia,51001,223,4 +2020-04-29,Accomack,Virginia,51001,229,4 +2020-04-30,Accomack,Virginia,51001,264,4 +2020-05-01,Accomack,Virginia,51001,303,5 +2020-05-02,Accomack,Virginia,51001,353,5 +2020-05-03,Accomack,Virginia,51001,400,6 +2020-05-04,Accomack,Virginia,51001,425,6 +2020-05-05,Accomack,Virginia,51001,429,7 +2020-05-06,Accomack,Virginia,51001,429,7 +2020-05-07,Accomack,Virginia,51001,463,7 +2020-05-08,Accomack,Virginia,51001,463,7 +2020-05-09,Accomack,Virginia,51001,496,7 +2020-05-10,Accomack,Virginia,51001,508,7 +2020-05-11,Accomack,Virginia,51001,524,7 +2020-05-12,Accomack,Virginia,51001,530,7 +2020-05-13,Accomack,Virginia,51001,545,7 +2020-05-14,Accomack,Virginia,51001,593,8 +2020-05-15,Accomack,Virginia,51001,648,9 +2020-05-16,Accomack,Virginia,51001,668,9 +2020-05-17,Accomack,Virginia,51001,688,9 +2020-05-18,Accomack,Virginia,51001,690,9 +2020-05-19,Accomack,Virginia,51001,701,9 +2020-05-20,Accomack,Virginia,51001,709,11 +2020-05-21,Accomack,Virginia,51001,709,11 +2020-05-22,Accomack,Virginia,51001,711,11 +2020-05-23,Accomack,Virginia,51001,722,11 +2020-05-24,Accomack,Virginia,51001,727,11 +2020-05-25,Accomack,Virginia,51001,731,11 +2020-05-26,Accomack,Virginia,51001,758,11 +2020-05-27,Accomack,Virginia,51001,780,12 +2020-05-28,Accomack,Virginia,51001,807,12 +2020-05-29,Accomack,Virginia,51001,827,12 +2020-05-30,Accomack,Virginia,51001,863,12 +2020-05-31,Accomack,Virginia,51001,909,12 +2020-06-01,Accomack,Virginia,51001,917,12 +2020-06-02,Accomack,Virginia,51001,939,12 +2020-06-03,Accomack,Virginia,51001,953,12 +2020-06-04,Accomack,Virginia,51001,966,12 +2020-06-05,Accomack,Virginia,51001,969,12 +2020-06-06,Accomack,Virginia,51001,970,13 +2020-06-07,Accomack,Virginia,51001,983,13 +2020-06-08,Accomack,Virginia,51001,983,13 +2020-06-09,Accomack,Virginia,51001,983,13 +2020-06-10,Accomack,Virginia,51001,984,13 +2020-06-11,Accomack,Virginia,51001,984,13 +2020-06-12,Accomack,Virginia,51001,987,13 +2020-06-13,Accomack,Virginia,51001,989,14 +2020-06-14,Accomack,Virginia,51001,993,14 +2020-06-15,Accomack,Virginia,51001,996,14 +2020-06-16,Accomack,Virginia,51001,1007,14 +2020-06-17,Accomack,Virginia,51001,1018,14 +2020-06-18,Accomack,Virginia,51001,1018,14 +2020-06-19,Accomack,Virginia,51001,1022,14 +2020-06-20,Accomack,Virginia,51001,1024,14 +2020-06-21,Accomack,Virginia,51001,1031,14 +2020-06-22,Accomack,Virginia,51001,1032,14 +2020-06-23,Accomack,Virginia,51001,1033,14 +2020-06-24,Accomack,Virginia,51001,1034,14 +2020-06-25,Accomack,Virginia,51001,1037,14 +2020-06-26,Accomack,Virginia,51001,1037,14 +2020-06-27,Accomack,Virginia,51001,1039,14 +2020-06-28,Accomack,Virginia,51001,1039,14 +2020-06-29,Accomack,Virginia,51001,1039,14 +2020-06-30,Accomack,Virginia,51001,1042,14 +2020-07-01,Accomack,Virginia,51001,1043,14 +2020-07-02,Accomack,Virginia,51001,1042,14 +2020-07-03,Accomack,Virginia,51001,1042,14 +2020-07-04,Accomack,Virginia,51001,1043,14 +2020-07-05,Accomack,Virginia,51001,1044,14 +2020-07-06,Accomack,Virginia,51001,1044,14 +2020-07-07,Accomack,Virginia,51001,1042,14 +2020-07-08,Accomack,Virginia,51001,1042,14 +2020-07-09,Accomack,Virginia,51001,1042,14 +2020-03-21,Albemarle,Virginia,51003,1,0 +2020-03-22,Albemarle,Virginia,51003,2,0 +2020-03-23,Albemarle,Virginia,51003,2,0 +2020-03-24,Albemarle,Virginia,51003,2,0 +2020-03-25,Albemarle,Virginia,51003,4,0 +2020-03-26,Albemarle,Virginia,51003,8,0 +2020-03-27,Albemarle,Virginia,51003,8,0 +2020-03-28,Albemarle,Virginia,51003,16,0 +2020-03-29,Albemarle,Virginia,51003,17,0 +2020-03-30,Albemarle,Virginia,51003,19,0 +2020-03-31,Albemarle,Virginia,51003,21,0 +2020-04-01,Albemarle,Virginia,51003,21,0 +2020-04-02,Albemarle,Virginia,51003,23,0 +2020-04-03,Albemarle,Virginia,51003,26,0 +2020-04-04,Albemarle,Virginia,51003,27,0 +2020-04-05,Albemarle,Virginia,51003,32,0 +2020-04-06,Albemarle,Virginia,51003,34,0 +2020-04-07,Albemarle,Virginia,51003,38,0 +2020-04-08,Albemarle,Virginia,51003,41,0 +2020-04-09,Albemarle,Virginia,51003,43,0 +2020-04-10,Albemarle,Virginia,51003,43,0 +2020-04-11,Albemarle,Virginia,51003,46,0 +2020-04-12,Albemarle,Virginia,51003,46,0 +2020-04-13,Albemarle,Virginia,51003,49,0 +2020-04-14,Albemarle,Virginia,51003,50,0 +2020-04-15,Albemarle,Virginia,51003,53,0 +2020-04-16,Albemarle,Virginia,51003,54,0 +2020-04-17,Albemarle,Virginia,51003,56,0 +2020-04-18,Albemarle,Virginia,51003,56,0 +2020-04-19,Albemarle,Virginia,51003,57,0 +2020-04-20,Albemarle,Virginia,51003,61,0 +2020-04-21,Albemarle,Virginia,51003,66,3 +2020-04-22,Albemarle,Virginia,51003,68,3 +2020-04-23,Albemarle,Virginia,51003,71,3 +2020-04-24,Albemarle,Virginia,51003,72,3 +2020-04-25,Albemarle,Virginia,51003,73,3 +2020-04-26,Albemarle,Virginia,51003,76,3 +2020-04-27,Albemarle,Virginia,51003,77,3 +2020-04-28,Albemarle,Virginia,51003,80,4 +2020-04-29,Albemarle,Virginia,51003,81,4 +2020-04-30,Albemarle,Virginia,51003,103,4 +2020-05-01,Albemarle,Virginia,51003,103,4 +2020-05-02,Albemarle,Virginia,51003,105,4 +2020-05-03,Albemarle,Virginia,51003,108,4 +2020-05-04,Albemarle,Virginia,51003,110,4 +2020-05-05,Albemarle,Virginia,51003,110,4 +2020-05-06,Albemarle,Virginia,51003,110,4 +2020-05-07,Albemarle,Virginia,51003,112,4 +2020-05-08,Albemarle,Virginia,51003,116,4 +2020-05-09,Albemarle,Virginia,51003,119,4 +2020-05-10,Albemarle,Virginia,51003,120,4 +2020-05-11,Albemarle,Virginia,51003,123,4 +2020-05-12,Albemarle,Virginia,51003,124,4 +2020-05-13,Albemarle,Virginia,51003,126,4 +2020-05-14,Albemarle,Virginia,51003,130,4 +2020-05-15,Albemarle,Virginia,51003,133,4 +2020-05-16,Albemarle,Virginia,51003,136,4 +2020-05-17,Albemarle,Virginia,51003,138,4 +2020-05-18,Albemarle,Virginia,51003,139,4 +2020-05-19,Albemarle,Virginia,51003,141,4 +2020-05-20,Albemarle,Virginia,51003,142,4 +2020-05-21,Albemarle,Virginia,51003,142,4 +2020-05-22,Albemarle,Virginia,51003,142,4 +2020-05-23,Albemarle,Virginia,51003,143,5 +2020-05-24,Albemarle,Virginia,51003,148,8 +2020-05-25,Albemarle,Virginia,51003,149,8 +2020-05-26,Albemarle,Virginia,51003,161,8 +2020-05-27,Albemarle,Virginia,51003,168,8 +2020-05-28,Albemarle,Virginia,51003,170,8 +2020-05-29,Albemarle,Virginia,51003,180,8 +2020-05-30,Albemarle,Virginia,51003,187,8 +2020-05-31,Albemarle,Virginia,51003,187,8 +2020-06-01,Albemarle,Virginia,51003,199,8 +2020-06-02,Albemarle,Virginia,51003,200,8 +2020-06-03,Albemarle,Virginia,51003,204,8 +2020-06-04,Albemarle,Virginia,51003,213,8 +2020-06-05,Albemarle,Virginia,51003,217,8 +2020-06-06,Albemarle,Virginia,51003,221,8 +2020-06-07,Albemarle,Virginia,51003,251,8 +2020-06-08,Albemarle,Virginia,51003,255,8 +2020-06-09,Albemarle,Virginia,51003,258,8 +2020-06-10,Albemarle,Virginia,51003,260,8 +2020-06-11,Albemarle,Virginia,51003,269,8 +2020-06-12,Albemarle,Virginia,51003,272,8 +2020-06-13,Albemarle,Virginia,51003,275,8 +2020-06-14,Albemarle,Virginia,51003,286,8 +2020-06-15,Albemarle,Virginia,51003,290,8 +2020-06-16,Albemarle,Virginia,51003,293,8 +2020-06-17,Albemarle,Virginia,51003,293,8 +2020-06-18,Albemarle,Virginia,51003,302,8 +2020-06-19,Albemarle,Virginia,51003,304,8 +2020-06-20,Albemarle,Virginia,51003,321,8 +2020-06-21,Albemarle,Virginia,51003,334,8 +2020-06-22,Albemarle,Virginia,51003,340,8 +2020-06-23,Albemarle,Virginia,51003,352,8 +2020-06-24,Albemarle,Virginia,51003,359,8 +2020-06-25,Albemarle,Virginia,51003,367,8 +2020-06-26,Albemarle,Virginia,51003,374,8 +2020-06-27,Albemarle,Virginia,51003,382,8 +2020-06-28,Albemarle,Virginia,51003,393,8 +2020-06-29,Albemarle,Virginia,51003,394,8 +2020-06-30,Albemarle,Virginia,51003,401,8 +2020-07-01,Albemarle,Virginia,51003,407,9 +2020-07-02,Albemarle,Virginia,51003,412,9 +2020-07-03,Albemarle,Virginia,51003,420,9 +2020-07-04,Albemarle,Virginia,51003,456,9 +2020-07-05,Albemarle,Virginia,51003,460,9 +2020-07-06,Albemarle,Virginia,51003,467,9 +2020-07-07,Albemarle,Virginia,51003,472,10 +2020-07-08,Albemarle,Virginia,51003,498,10 +2020-07-09,Albemarle,Virginia,51003,512,10 +2020-03-29,Alleghany,Virginia,51005,1,0 +2020-03-30,Alleghany,Virginia,51005,1,0 +2020-03-31,Alleghany,Virginia,51005,1,0 +2020-04-01,Alleghany,Virginia,51005,1,0 +2020-04-02,Alleghany,Virginia,51005,2,0 +2020-04-03,Alleghany,Virginia,51005,2,0 +2020-04-04,Alleghany,Virginia,51005,2,0 +2020-04-05,Alleghany,Virginia,51005,2,0 +2020-04-06,Alleghany,Virginia,51005,2,0 +2020-04-07,Alleghany,Virginia,51005,2,0 +2020-04-08,Alleghany,Virginia,51005,2,0 +2020-04-09,Alleghany,Virginia,51005,2,0 +2020-04-10,Alleghany,Virginia,51005,2,0 +2020-04-11,Alleghany,Virginia,51005,4,0 +2020-04-12,Alleghany,Virginia,51005,4,0 +2020-04-13,Alleghany,Virginia,51005,4,0 +2020-04-14,Alleghany,Virginia,51005,4,0 +2020-04-15,Alleghany,Virginia,51005,4,0 +2020-04-16,Alleghany,Virginia,51005,4,0 +2020-04-17,Alleghany,Virginia,51005,4,0 +2020-04-18,Alleghany,Virginia,51005,4,0 +2020-04-19,Alleghany,Virginia,51005,5,0 +2020-04-20,Alleghany,Virginia,51005,5,0 +2020-04-21,Alleghany,Virginia,51005,5,0 +2020-04-22,Alleghany,Virginia,51005,5,0 +2020-04-23,Alleghany,Virginia,51005,5,0 +2020-04-24,Alleghany,Virginia,51005,5,0 +2020-04-25,Alleghany,Virginia,51005,5,0 +2020-04-26,Alleghany,Virginia,51005,5,0 +2020-04-27,Alleghany,Virginia,51005,5,0 +2020-04-28,Alleghany,Virginia,51005,5,0 +2020-04-29,Alleghany,Virginia,51005,6,0 +2020-04-30,Alleghany,Virginia,51005,6,0 +2020-05-01,Alleghany,Virginia,51005,6,0 +2020-05-02,Alleghany,Virginia,51005,6,0 +2020-05-03,Alleghany,Virginia,51005,6,0 +2020-05-04,Alleghany,Virginia,51005,6,0 +2020-05-05,Alleghany,Virginia,51005,6,0 +2020-05-06,Alleghany,Virginia,51005,6,0 +2020-05-07,Alleghany,Virginia,51005,6,0 +2020-05-08,Alleghany,Virginia,51005,6,0 +2020-05-09,Alleghany,Virginia,51005,6,0 +2020-05-10,Alleghany,Virginia,51005,6,0 +2020-05-11,Alleghany,Virginia,51005,6,0 +2020-05-12,Alleghany,Virginia,51005,6,0 +2020-05-13,Alleghany,Virginia,51005,6,0 +2020-05-14,Alleghany,Virginia,51005,6,0 +2020-05-15,Alleghany,Virginia,51005,6,0 +2020-05-16,Alleghany,Virginia,51005,6,0 +2020-05-17,Alleghany,Virginia,51005,7,0 +2020-05-18,Alleghany,Virginia,51005,9,0 +2020-05-19,Alleghany,Virginia,51005,9,0 +2020-05-20,Alleghany,Virginia,51005,10,0 +2020-05-21,Alleghany,Virginia,51005,9,0 +2020-05-22,Alleghany,Virginia,51005,10,2 +2020-05-23,Alleghany,Virginia,51005,13,2 +2020-05-24,Alleghany,Virginia,51005,13,2 +2020-05-25,Alleghany,Virginia,51005,13,2 +2020-05-26,Alleghany,Virginia,51005,16,2 +2020-05-27,Alleghany,Virginia,51005,16,2 +2020-05-28,Alleghany,Virginia,51005,17,2 +2020-05-29,Alleghany,Virginia,51005,19,2 +2020-05-30,Alleghany,Virginia,51005,20,2 +2020-05-31,Alleghany,Virginia,51005,20,2 +2020-06-01,Alleghany,Virginia,51005,23,2 +2020-06-02,Alleghany,Virginia,51005,24,2 +2020-06-03,Alleghany,Virginia,51005,24,2 +2020-06-04,Alleghany,Virginia,51005,24,2 +2020-06-05,Alleghany,Virginia,51005,24,2 +2020-06-06,Alleghany,Virginia,51005,26,2 +2020-06-07,Alleghany,Virginia,51005,26,2 +2020-06-08,Alleghany,Virginia,51005,26,2 +2020-06-09,Alleghany,Virginia,51005,26,2 +2020-06-10,Alleghany,Virginia,51005,26,2 +2020-06-11,Alleghany,Virginia,51005,26,2 +2020-06-12,Alleghany,Virginia,51005,27,2 +2020-06-13,Alleghany,Virginia,51005,28,2 +2020-06-14,Alleghany,Virginia,51005,28,2 +2020-06-15,Alleghany,Virginia,51005,28,2 +2020-06-16,Alleghany,Virginia,51005,30,2 +2020-06-17,Alleghany,Virginia,51005,30,2 +2020-06-18,Alleghany,Virginia,51005,30,2 +2020-06-19,Alleghany,Virginia,51005,30,2 +2020-06-20,Alleghany,Virginia,51005,30,2 +2020-06-21,Alleghany,Virginia,51005,30,2 +2020-06-22,Alleghany,Virginia,51005,31,2 +2020-06-23,Alleghany,Virginia,51005,31,2 +2020-06-24,Alleghany,Virginia,51005,31,2 +2020-06-25,Alleghany,Virginia,51005,31,2 +2020-06-26,Alleghany,Virginia,51005,31,2 +2020-06-27,Alleghany,Virginia,51005,31,2 +2020-06-28,Alleghany,Virginia,51005,31,2 +2020-06-29,Alleghany,Virginia,51005,31,2 +2020-06-30,Alleghany,Virginia,51005,31,2 +2020-07-01,Alleghany,Virginia,51005,33,2 +2020-07-02,Alleghany,Virginia,51005,33,2 +2020-07-03,Alleghany,Virginia,51005,34,2 +2020-07-04,Alleghany,Virginia,51005,35,2 +2020-07-05,Alleghany,Virginia,51005,35,2 +2020-07-06,Alleghany,Virginia,51005,36,2 +2020-07-07,Alleghany,Virginia,51005,38,2 +2020-07-08,Alleghany,Virginia,51005,39,2 +2020-07-09,Alleghany,Virginia,51005,39,2 +2020-03-26,Amelia,Virginia,51007,1,0 +2020-03-27,Amelia,Virginia,51007,1,0 +2020-03-28,Amelia,Virginia,51007,1,0 +2020-03-29,Amelia,Virginia,51007,1,0 +2020-03-30,Amelia,Virginia,51007,1,0 +2020-03-31,Amelia,Virginia,51007,2,0 +2020-04-01,Amelia,Virginia,51007,2,0 +2020-04-02,Amelia,Virginia,51007,4,0 +2020-04-03,Amelia,Virginia,51007,5,0 +2020-04-04,Amelia,Virginia,51007,6,0 +2020-04-05,Amelia,Virginia,51007,6,0 +2020-04-06,Amelia,Virginia,51007,6,0 +2020-04-07,Amelia,Virginia,51007,7,0 +2020-04-08,Amelia,Virginia,51007,8,0 +2020-04-09,Amelia,Virginia,51007,8,0 +2020-04-10,Amelia,Virginia,51007,9,0 +2020-04-11,Amelia,Virginia,51007,9,0 +2020-04-12,Amelia,Virginia,51007,9,0 +2020-04-13,Amelia,Virginia,51007,9,0 +2020-04-14,Amelia,Virginia,51007,9,0 +2020-04-15,Amelia,Virginia,51007,10,0 +2020-04-16,Amelia,Virginia,51007,13,0 +2020-04-17,Amelia,Virginia,51007,13,0 +2020-04-18,Amelia,Virginia,51007,13,0 +2020-04-19,Amelia,Virginia,51007,14,0 +2020-04-20,Amelia,Virginia,51007,14,0 +2020-04-21,Amelia,Virginia,51007,15,1 +2020-04-22,Amelia,Virginia,51007,15,1 +2020-04-23,Amelia,Virginia,51007,15,1 +2020-04-24,Amelia,Virginia,51007,15,1 +2020-04-25,Amelia,Virginia,51007,15,1 +2020-04-26,Amelia,Virginia,51007,15,1 +2020-04-27,Amelia,Virginia,51007,15,1 +2020-04-28,Amelia,Virginia,51007,15,1 +2020-04-29,Amelia,Virginia,51007,15,1 +2020-04-30,Amelia,Virginia,51007,15,1 +2020-05-01,Amelia,Virginia,51007,16,1 +2020-05-02,Amelia,Virginia,51007,16,1 +2020-05-03,Amelia,Virginia,51007,16,1 +2020-05-04,Amelia,Virginia,51007,16,1 +2020-05-05,Amelia,Virginia,51007,18,1 +2020-05-06,Amelia,Virginia,51007,18,1 +2020-05-07,Amelia,Virginia,51007,17,1 +2020-05-08,Amelia,Virginia,51007,17,1 +2020-05-09,Amelia,Virginia,51007,17,1 +2020-05-10,Amelia,Virginia,51007,17,1 +2020-05-11,Amelia,Virginia,51007,17,1 +2020-05-12,Amelia,Virginia,51007,17,1 +2020-05-13,Amelia,Virginia,51007,17,1 +2020-05-14,Amelia,Virginia,51007,17,1 +2020-05-15,Amelia,Virginia,51007,17,1 +2020-05-16,Amelia,Virginia,51007,18,1 +2020-05-17,Amelia,Virginia,51007,18,1 +2020-05-18,Amelia,Virginia,51007,20,1 +2020-05-19,Amelia,Virginia,51007,20,1 +2020-05-20,Amelia,Virginia,51007,21,1 +2020-05-21,Amelia,Virginia,51007,22,1 +2020-05-22,Amelia,Virginia,51007,22,1 +2020-05-23,Amelia,Virginia,51007,22,1 +2020-05-24,Amelia,Virginia,51007,21,1 +2020-05-25,Amelia,Virginia,51007,21,1 +2020-05-26,Amelia,Virginia,51007,23,1 +2020-05-27,Amelia,Virginia,51007,23,1 +2020-05-28,Amelia,Virginia,51007,23,1 +2020-05-29,Amelia,Virginia,51007,25,1 +2020-05-30,Amelia,Virginia,51007,25,1 +2020-05-31,Amelia,Virginia,51007,25,1 +2020-06-01,Amelia,Virginia,51007,25,1 +2020-06-02,Amelia,Virginia,51007,26,1 +2020-06-03,Amelia,Virginia,51007,28,1 +2020-06-04,Amelia,Virginia,51007,28,1 +2020-06-05,Amelia,Virginia,51007,28,1 +2020-06-06,Amelia,Virginia,51007,31,1 +2020-06-07,Amelia,Virginia,51007,31,1 +2020-06-08,Amelia,Virginia,51007,32,1 +2020-06-09,Amelia,Virginia,51007,33,1 +2020-06-10,Amelia,Virginia,51007,34,1 +2020-06-11,Amelia,Virginia,51007,34,1 +2020-06-12,Amelia,Virginia,51007,37,1 +2020-06-13,Amelia,Virginia,51007,38,1 +2020-06-14,Amelia,Virginia,51007,38,1 +2020-06-15,Amelia,Virginia,51007,39,1 +2020-06-16,Amelia,Virginia,51007,38,1 +2020-06-17,Amelia,Virginia,51007,38,1 +2020-06-18,Amelia,Virginia,51007,39,1 +2020-06-19,Amelia,Virginia,51007,41,1 +2020-06-20,Amelia,Virginia,51007,41,1 +2020-06-21,Amelia,Virginia,51007,41,1 +2020-06-22,Amelia,Virginia,51007,42,1 +2020-06-23,Amelia,Virginia,51007,42,1 +2020-06-24,Amelia,Virginia,51007,42,1 +2020-06-25,Amelia,Virginia,51007,42,1 +2020-06-26,Amelia,Virginia,51007,42,1 +2020-06-27,Amelia,Virginia,51007,42,1 +2020-06-28,Amelia,Virginia,51007,42,1 +2020-06-29,Amelia,Virginia,51007,44,1 +2020-06-30,Amelia,Virginia,51007,44,1 +2020-07-01,Amelia,Virginia,51007,44,1 +2020-07-02,Amelia,Virginia,51007,44,1 +2020-07-03,Amelia,Virginia,51007,45,1 +2020-07-04,Amelia,Virginia,51007,45,1 +2020-07-05,Amelia,Virginia,51007,45,1 +2020-07-06,Amelia,Virginia,51007,45,1 +2020-07-07,Amelia,Virginia,51007,46,1 +2020-07-08,Amelia,Virginia,51007,48,1 +2020-07-09,Amelia,Virginia,51007,49,1 +2020-03-22,Amherst,Virginia,51009,1,0 +2020-03-23,Amherst,Virginia,51009,1,0 +2020-03-24,Amherst,Virginia,51009,1,0 +2020-03-25,Amherst,Virginia,51009,1,0 +2020-03-26,Amherst,Virginia,51009,1,0 +2020-03-27,Amherst,Virginia,51009,1,0 +2020-03-28,Amherst,Virginia,51009,2,0 +2020-03-29,Amherst,Virginia,51009,2,0 +2020-03-30,Amherst,Virginia,51009,3,0 +2020-03-31,Amherst,Virginia,51009,3,0 +2020-04-01,Amherst,Virginia,51009,5,0 +2020-04-02,Amherst,Virginia,51009,6,0 +2020-04-03,Amherst,Virginia,51009,6,0 +2020-04-04,Amherst,Virginia,51009,6,0 +2020-04-05,Amherst,Virginia,51009,6,0 +2020-04-06,Amherst,Virginia,51009,6,0 +2020-04-07,Amherst,Virginia,51009,8,0 +2020-04-08,Amherst,Virginia,51009,8,0 +2020-04-09,Amherst,Virginia,51009,9,0 +2020-04-10,Amherst,Virginia,51009,9,0 +2020-04-11,Amherst,Virginia,51009,10,0 +2020-04-12,Amherst,Virginia,51009,10,0 +2020-04-13,Amherst,Virginia,51009,10,0 +2020-04-14,Amherst,Virginia,51009,10,0 +2020-04-15,Amherst,Virginia,51009,10,0 +2020-04-16,Amherst,Virginia,51009,10,0 +2020-04-17,Amherst,Virginia,51009,10,0 +2020-04-18,Amherst,Virginia,51009,10,0 +2020-04-19,Amherst,Virginia,51009,10,0 +2020-04-20,Amherst,Virginia,51009,10,0 +2020-04-21,Amherst,Virginia,51009,10,1 +2020-04-22,Amherst,Virginia,51009,10,1 +2020-04-23,Amherst,Virginia,51009,10,1 +2020-04-24,Amherst,Virginia,51009,10,1 +2020-04-25,Amherst,Virginia,51009,9,0 +2020-04-26,Amherst,Virginia,51009,9,0 +2020-04-27,Amherst,Virginia,51009,9,0 +2020-04-28,Amherst,Virginia,51009,9,0 +2020-04-29,Amherst,Virginia,51009,11,0 +2020-04-30,Amherst,Virginia,51009,12,0 +2020-05-01,Amherst,Virginia,51009,13,0 +2020-05-02,Amherst,Virginia,51009,12,0 +2020-05-03,Amherst,Virginia,51009,14,0 +2020-05-04,Amherst,Virginia,51009,14,0 +2020-05-05,Amherst,Virginia,51009,15,0 +2020-05-06,Amherst,Virginia,51009,15,0 +2020-05-07,Amherst,Virginia,51009,15,0 +2020-05-08,Amherst,Virginia,51009,15,0 +2020-05-09,Amherst,Virginia,51009,15,0 +2020-05-10,Amherst,Virginia,51009,15,0 +2020-05-11,Amherst,Virginia,51009,16,0 +2020-05-12,Amherst,Virginia,51009,17,0 +2020-05-13,Amherst,Virginia,51009,20,0 +2020-05-14,Amherst,Virginia,51009,21,0 +2020-05-15,Amherst,Virginia,51009,22,0 +2020-05-16,Amherst,Virginia,51009,24,0 +2020-05-17,Amherst,Virginia,51009,25,0 +2020-05-18,Amherst,Virginia,51009,25,0 +2020-05-19,Amherst,Virginia,51009,25,0 +2020-05-20,Amherst,Virginia,51009,25,0 +2020-05-21,Amherst,Virginia,51009,25,0 +2020-05-22,Amherst,Virginia,51009,25,0 +2020-05-23,Amherst,Virginia,51009,25,0 +2020-05-24,Amherst,Virginia,51009,25,0 +2020-05-25,Amherst,Virginia,51009,26,0 +2020-05-26,Amherst,Virginia,51009,26,0 +2020-05-27,Amherst,Virginia,51009,27,0 +2020-05-28,Amherst,Virginia,51009,27,0 +2020-05-29,Amherst,Virginia,51009,27,0 +2020-05-30,Amherst,Virginia,51009,27,0 +2020-05-31,Amherst,Virginia,51009,27,0 +2020-06-01,Amherst,Virginia,51009,27,0 +2020-06-02,Amherst,Virginia,51009,27,0 +2020-06-03,Amherst,Virginia,51009,27,0 +2020-06-04,Amherst,Virginia,51009,27,0 +2020-06-05,Amherst,Virginia,51009,27,0 +2020-06-06,Amherst,Virginia,51009,27,0 +2020-06-07,Amherst,Virginia,51009,27,0 +2020-06-08,Amherst,Virginia,51009,27,0 +2020-06-09,Amherst,Virginia,51009,27,0 +2020-06-10,Amherst,Virginia,51009,27,0 +2020-06-11,Amherst,Virginia,51009,27,0 +2020-06-12,Amherst,Virginia,51009,27,0 +2020-06-13,Amherst,Virginia,51009,27,0 +2020-06-14,Amherst,Virginia,51009,27,0 +2020-06-15,Amherst,Virginia,51009,27,0 +2020-06-16,Amherst,Virginia,51009,28,0 +2020-06-17,Amherst,Virginia,51009,28,0 +2020-06-18,Amherst,Virginia,51009,28,0 +2020-06-19,Amherst,Virginia,51009,28,0 +2020-06-20,Amherst,Virginia,51009,29,0 +2020-06-21,Amherst,Virginia,51009,29,0 +2020-06-22,Amherst,Virginia,51009,29,0 +2020-06-23,Amherst,Virginia,51009,31,0 +2020-06-24,Amherst,Virginia,51009,31,0 +2020-06-25,Amherst,Virginia,51009,32,0 +2020-06-26,Amherst,Virginia,51009,35,0 +2020-06-27,Amherst,Virginia,51009,35,0 +2020-06-28,Amherst,Virginia,51009,35,0 +2020-06-29,Amherst,Virginia,51009,35,0 +2020-06-30,Amherst,Virginia,51009,36,0 +2020-07-01,Amherst,Virginia,51009,36,0 +2020-07-02,Amherst,Virginia,51009,36,0 +2020-07-03,Amherst,Virginia,51009,37,0 +2020-07-04,Amherst,Virginia,51009,37,0 +2020-07-05,Amherst,Virginia,51009,37,0 +2020-07-06,Amherst,Virginia,51009,38,0 +2020-07-07,Amherst,Virginia,51009,38,0 +2020-07-08,Amherst,Virginia,51009,38,0 +2020-07-09,Amherst,Virginia,51009,38,0 +2020-04-06,Appomattox,Virginia,51011,1,0 +2020-04-07,Appomattox,Virginia,51011,3,0 +2020-04-08,Appomattox,Virginia,51011,3,0 +2020-04-09,Appomattox,Virginia,51011,4,0 +2020-04-10,Appomattox,Virginia,51011,5,0 +2020-04-11,Appomattox,Virginia,51011,7,0 +2020-04-12,Appomattox,Virginia,51011,7,0 +2020-04-13,Appomattox,Virginia,51011,7,0 +2020-04-14,Appomattox,Virginia,51011,7,0 +2020-04-15,Appomattox,Virginia,51011,7,0 +2020-04-16,Appomattox,Virginia,51011,7,0 +2020-04-17,Appomattox,Virginia,51011,7,0 +2020-04-18,Appomattox,Virginia,51011,7,0 +2020-04-19,Appomattox,Virginia,51011,7,0 +2020-04-20,Appomattox,Virginia,51011,7,0 +2020-04-21,Appomattox,Virginia,51011,7,0 +2020-04-22,Appomattox,Virginia,51011,10,0 +2020-04-23,Appomattox,Virginia,51011,12,0 +2020-04-24,Appomattox,Virginia,51011,12,0 +2020-04-25,Appomattox,Virginia,51011,12,0 +2020-04-26,Appomattox,Virginia,51011,17,0 +2020-04-27,Appomattox,Virginia,51011,17,0 +2020-04-28,Appomattox,Virginia,51011,17,0 +2020-04-29,Appomattox,Virginia,51011,18,0 +2020-04-30,Appomattox,Virginia,51011,20,0 +2020-05-01,Appomattox,Virginia,51011,20,0 +2020-05-02,Appomattox,Virginia,51011,21,0 +2020-05-03,Appomattox,Virginia,51011,21,0 +2020-05-04,Appomattox,Virginia,51011,21,0 +2020-05-05,Appomattox,Virginia,51011,21,0 +2020-05-06,Appomattox,Virginia,51011,21,0 +2020-05-07,Appomattox,Virginia,51011,21,0 +2020-05-08,Appomattox,Virginia,51011,21,0 +2020-05-09,Appomattox,Virginia,51011,22,0 +2020-05-10,Appomattox,Virginia,51011,22,0 +2020-05-11,Appomattox,Virginia,51011,22,0 +2020-05-12,Appomattox,Virginia,51011,22,0 +2020-05-13,Appomattox,Virginia,51011,22,0 +2020-05-14,Appomattox,Virginia,51011,22,0 +2020-05-15,Appomattox,Virginia,51011,23,0 +2020-05-16,Appomattox,Virginia,51011,23,0 +2020-05-17,Appomattox,Virginia,51011,23,0 +2020-05-18,Appomattox,Virginia,51011,25,0 +2020-05-19,Appomattox,Virginia,51011,24,0 +2020-05-20,Appomattox,Virginia,51011,24,0 +2020-05-21,Appomattox,Virginia,51011,25,0 +2020-05-22,Appomattox,Virginia,51011,26,0 +2020-05-23,Appomattox,Virginia,51011,26,0 +2020-05-24,Appomattox,Virginia,51011,26,0 +2020-05-25,Appomattox,Virginia,51011,26,0 +2020-05-26,Appomattox,Virginia,51011,26,0 +2020-05-27,Appomattox,Virginia,51011,31,0 +2020-05-28,Appomattox,Virginia,51011,31,0 +2020-05-29,Appomattox,Virginia,51011,31,0 +2020-05-30,Appomattox,Virginia,51011,31,0 +2020-05-31,Appomattox,Virginia,51011,31,0 +2020-06-01,Appomattox,Virginia,51011,31,0 +2020-06-02,Appomattox,Virginia,51011,31,0 +2020-06-03,Appomattox,Virginia,51011,31,0 +2020-06-04,Appomattox,Virginia,51011,31,0 +2020-06-05,Appomattox,Virginia,51011,33,0 +2020-06-06,Appomattox,Virginia,51011,33,0 +2020-06-07,Appomattox,Virginia,51011,33,0 +2020-06-08,Appomattox,Virginia,51011,33,0 +2020-06-09,Appomattox,Virginia,51011,33,0 +2020-06-10,Appomattox,Virginia,51011,33,0 +2020-06-11,Appomattox,Virginia,51011,33,0 +2020-06-12,Appomattox,Virginia,51011,34,0 +2020-06-13,Appomattox,Virginia,51011,34,0 +2020-06-14,Appomattox,Virginia,51011,34,0 +2020-06-15,Appomattox,Virginia,51011,34,0 +2020-06-16,Appomattox,Virginia,51011,34,0 +2020-06-17,Appomattox,Virginia,51011,34,0 +2020-06-18,Appomattox,Virginia,51011,34,0 +2020-06-19,Appomattox,Virginia,51011,35,0 +2020-06-20,Appomattox,Virginia,51011,36,0 +2020-06-21,Appomattox,Virginia,51011,36,0 +2020-06-22,Appomattox,Virginia,51011,36,0 +2020-06-23,Appomattox,Virginia,51011,36,0 +2020-06-24,Appomattox,Virginia,51011,36,0 +2020-06-25,Appomattox,Virginia,51011,37,0 +2020-06-26,Appomattox,Virginia,51011,38,0 +2020-06-27,Appomattox,Virginia,51011,38,0 +2020-06-28,Appomattox,Virginia,51011,39,0 +2020-06-29,Appomattox,Virginia,51011,39,0 +2020-06-30,Appomattox,Virginia,51011,40,0 +2020-07-01,Appomattox,Virginia,51011,40,0 +2020-07-02,Appomattox,Virginia,51011,41,0 +2020-07-03,Appomattox,Virginia,51011,43,0 +2020-07-04,Appomattox,Virginia,51011,43,0 +2020-07-05,Appomattox,Virginia,51011,43,0 +2020-07-06,Appomattox,Virginia,51011,43,0 +2020-07-07,Appomattox,Virginia,51011,44,0 +2020-07-08,Appomattox,Virginia,51011,44,0 +2020-07-09,Appomattox,Virginia,51011,44,0 +2020-03-11,Arlington,Virginia,51013,2,0 +2020-03-12,Arlington,Virginia,51013,2,0 +2020-03-13,Arlington,Virginia,51013,5,0 +2020-03-14,Arlington,Virginia,51013,7,0 +2020-03-15,Arlington,Virginia,51013,8,0 +2020-03-16,Arlington,Virginia,51013,9,0 +2020-03-17,Arlington,Virginia,51013,13,0 +2020-03-18,Arlington,Virginia,51013,14,0 +2020-03-19,Arlington,Virginia,51013,17,0 +2020-03-20,Arlington,Virginia,51013,17,0 +2020-03-21,Arlington,Virginia,51013,22,0 +2020-03-22,Arlington,Virginia,51013,26,0 +2020-03-23,Arlington,Virginia,51013,34,0 +2020-03-24,Arlington,Virginia,51013,36,0 +2020-03-25,Arlington,Virginia,51013,46,0 +2020-03-26,Arlington,Virginia,51013,63,0 +2020-03-27,Arlington,Virginia,51013,63,0 +2020-03-28,Arlington,Virginia,51013,75,0 +2020-03-29,Arlington,Virginia,51013,84,2 +2020-03-30,Arlington,Virginia,51013,86,2 +2020-03-31,Arlington,Virginia,51013,104,2 +2020-04-01,Arlington,Virginia,51013,119,2 +2020-04-02,Arlington,Virginia,51013,128,2 +2020-04-03,Arlington,Virginia,51013,135,2 +2020-04-04,Arlington,Virginia,51013,150,2 +2020-04-05,Arlington,Virginia,51013,181,2 +2020-04-06,Arlington,Virginia,51013,203,2 +2020-04-07,Arlington,Virginia,51013,237,2 +2020-04-08,Arlington,Virginia,51013,254,2 +2020-04-09,Arlington,Virginia,51013,280,2 +2020-04-10,Arlington,Virginia,51013,312,2 +2020-04-11,Arlington,Virginia,51013,349,2 +2020-04-12,Arlington,Virginia,51013,366,2 +2020-04-13,Arlington,Virginia,51013,390,3 +2020-04-14,Arlington,Virginia,51013,401,12 +2020-04-15,Arlington,Virginia,51013,420,12 +2020-04-16,Arlington,Virginia,51013,453,12 +2020-04-17,Arlington,Virginia,51013,485,12 +2020-04-18,Arlington,Virginia,51013,520,12 +2020-04-19,Arlington,Virginia,51013,575,20 +2020-04-20,Arlington,Virginia,51013,593,20 +2020-04-21,Arlington,Virginia,51013,625,23 +2020-04-22,Arlington,Virginia,51013,663,24 +2020-04-23,Arlington,Virginia,51013,686,24 +2020-04-24,Arlington,Virginia,51013,722,24 +2020-04-25,Arlington,Virginia,51013,764,29 +2020-04-26,Arlington,Virginia,51013,790,32 +2020-04-27,Arlington,Virginia,51013,836,32 +2020-04-28,Arlington,Virginia,51013,865,32 +2020-04-29,Arlington,Virginia,51013,912,32 +2020-04-30,Arlington,Virginia,51013,967,41 +2020-05-01,Arlington,Virginia,51013,1004,42 +2020-05-02,Arlington,Virginia,51013,1044,46 +2020-05-03,Arlington,Virginia,51013,1106,46 +2020-05-04,Arlington,Virginia,51013,1139,47 +2020-05-05,Arlington,Virginia,51013,1169,49 +2020-05-06,Arlington,Virginia,51013,1169,49 +2020-05-07,Arlington,Virginia,51013,1248,52 +2020-05-08,Arlington,Virginia,51013,1281,57 +2020-05-09,Arlington,Virginia,51013,1332,60 +2020-05-10,Arlington,Virginia,51013,1368,61 +2020-05-11,Arlington,Virginia,51013,1399,60 +2020-05-12,Arlington,Virginia,51013,1416,66 +2020-05-13,Arlington,Virginia,51013,1460,69 +2020-05-14,Arlington,Virginia,51013,1499,70 +2020-05-15,Arlington,Virginia,51013,1534,71 +2020-05-16,Arlington,Virginia,51013,1560,74 +2020-05-17,Arlington,Virginia,51013,1590,75 +2020-05-18,Arlington,Virginia,51013,1638,77 +2020-05-19,Arlington,Virginia,51013,1688,79 +2020-05-20,Arlington,Virginia,51013,1728,81 +2020-05-21,Arlington,Virginia,51013,1763,89 +2020-05-22,Arlington,Virginia,51013,1795,91 +2020-05-23,Arlington,Virginia,51013,1804,95 +2020-05-24,Arlington,Virginia,51013,1873,98 +2020-05-25,Arlington,Virginia,51013,1897,101 +2020-05-26,Arlington,Virginia,51013,1935,104 +2020-05-27,Arlington,Virginia,51013,1988,109 +2020-05-28,Arlington,Virginia,51013,2039,109 +2020-05-29,Arlington,Virginia,51013,2089,111 +2020-05-30,Arlington,Virginia,51013,2107,113 +2020-05-31,Arlington,Virginia,51013,2116,115 +2020-06-01,Arlington,Virginia,51013,2123,116 +2020-06-02,Arlington,Virginia,51013,2133,117 +2020-06-03,Arlington,Virginia,51013,2142,120 +2020-06-04,Arlington,Virginia,51013,2150,120 +2020-06-05,Arlington,Virginia,51013,2173,121 +2020-06-06,Arlington,Virginia,51013,2195,120 +2020-06-07,Arlington,Virginia,51013,2225,121 +2020-06-08,Arlington,Virginia,51013,2256,122 +2020-06-09,Arlington,Virginia,51013,2265,122 +2020-06-10,Arlington,Virginia,51013,2280,121 +2020-06-11,Arlington,Virginia,51013,2299,124 +2020-06-12,Arlington,Virginia,51013,2307,125 +2020-06-13,Arlington,Virginia,51013,2321,125 +2020-06-14,Arlington,Virginia,51013,2338,125 +2020-06-15,Arlington,Virginia,51013,2346,125 +2020-06-16,Arlington,Virginia,51013,2363,125 +2020-06-17,Arlington,Virginia,51013,2372,124 +2020-06-18,Arlington,Virginia,51013,2382,126 +2020-06-19,Arlington,Virginia,51013,2396,126 +2020-06-20,Arlington,Virginia,51013,2405,126 +2020-06-21,Arlington,Virginia,51013,2418,126 +2020-06-22,Arlington,Virginia,51013,2424,126 +2020-06-23,Arlington,Virginia,51013,2431,126 +2020-06-24,Arlington,Virginia,51013,2438,126 +2020-06-25,Arlington,Virginia,51013,2445,127 +2020-06-26,Arlington,Virginia,51013,2449,132 +2020-06-27,Arlington,Virginia,51013,2454,132 +2020-06-28,Arlington,Virginia,51013,2464,132 +2020-06-29,Arlington,Virginia,51013,2466,132 +2020-06-30,Arlington,Virginia,51013,2479,132 +2020-07-01,Arlington,Virginia,51013,2484,132 +2020-07-02,Arlington,Virginia,51013,2496,132 +2020-07-03,Arlington,Virginia,51013,2500,132 +2020-07-04,Arlington,Virginia,51013,2519,131 +2020-07-05,Arlington,Virginia,51013,2533,131 +2020-07-06,Arlington,Virginia,51013,2533,131 +2020-07-07,Arlington,Virginia,51013,2550,131 +2020-07-08,Arlington,Virginia,51013,2558,132 +2020-07-09,Arlington,Virginia,51013,2567,132 +2020-04-01,Augusta,Virginia,51015,1,0 +2020-04-02,Augusta,Virginia,51015,2,0 +2020-04-03,Augusta,Virginia,51015,4,0 +2020-04-04,Augusta,Virginia,51015,7,0 +2020-04-05,Augusta,Virginia,51015,8,0 +2020-04-06,Augusta,Virginia,51015,9,0 +2020-04-07,Augusta,Virginia,51015,10,0 +2020-04-08,Augusta,Virginia,51015,13,0 +2020-04-09,Augusta,Virginia,51015,13,0 +2020-04-10,Augusta,Virginia,51015,15,0 +2020-04-11,Augusta,Virginia,51015,17,0 +2020-04-12,Augusta,Virginia,51015,17,0 +2020-04-13,Augusta,Virginia,51015,17,0 +2020-04-14,Augusta,Virginia,51015,17,0 +2020-04-15,Augusta,Virginia,51015,18,0 +2020-04-16,Augusta,Virginia,51015,19,0 +2020-04-17,Augusta,Virginia,51015,19,0 +2020-04-18,Augusta,Virginia,51015,22,0 +2020-04-19,Augusta,Virginia,51015,22,0 +2020-04-20,Augusta,Virginia,51015,24,0 +2020-04-21,Augusta,Virginia,51015,28,0 +2020-04-22,Augusta,Virginia,51015,30,0 +2020-04-23,Augusta,Virginia,51015,33,1 +2020-04-24,Augusta,Virginia,51015,34,1 +2020-04-25,Augusta,Virginia,51015,36,1 +2020-04-26,Augusta,Virginia,51015,36,1 +2020-04-27,Augusta,Virginia,51015,36,1 +2020-04-28,Augusta,Virginia,51015,39,1 +2020-04-29,Augusta,Virginia,51015,41,1 +2020-04-30,Augusta,Virginia,51015,43,1 +2020-05-01,Augusta,Virginia,51015,44,1 +2020-05-02,Augusta,Virginia,51015,45,1 +2020-05-03,Augusta,Virginia,51015,46,1 +2020-05-04,Augusta,Virginia,51015,47,1 +2020-05-05,Augusta,Virginia,51015,47,1 +2020-05-06,Augusta,Virginia,51015,47,1 +2020-05-07,Augusta,Virginia,51015,55,1 +2020-05-08,Augusta,Virginia,51015,55,1 +2020-05-09,Augusta,Virginia,51015,64,1 +2020-05-10,Augusta,Virginia,51015,64,1 +2020-05-11,Augusta,Virginia,51015,64,1 +2020-05-12,Augusta,Virginia,51015,64,1 +2020-05-13,Augusta,Virginia,51015,66,1 +2020-05-14,Augusta,Virginia,51015,70,1 +2020-05-15,Augusta,Virginia,51015,74,1 +2020-05-16,Augusta,Virginia,51015,82,1 +2020-05-17,Augusta,Virginia,51015,84,1 +2020-05-18,Augusta,Virginia,51015,85,1 +2020-05-19,Augusta,Virginia,51015,87,1 +2020-05-20,Augusta,Virginia,51015,88,1 +2020-05-21,Augusta,Virginia,51015,85,1 +2020-05-22,Augusta,Virginia,51015,86,1 +2020-05-23,Augusta,Virginia,51015,89,1 +2020-05-24,Augusta,Virginia,51015,90,1 +2020-05-25,Augusta,Virginia,51015,93,1 +2020-05-26,Augusta,Virginia,51015,100,1 +2020-05-27,Augusta,Virginia,51015,102,1 +2020-05-28,Augusta,Virginia,51015,105,1 +2020-05-29,Augusta,Virginia,51015,105,1 +2020-05-30,Augusta,Virginia,51015,109,1 +2020-05-31,Augusta,Virginia,51015,109,1 +2020-06-01,Augusta,Virginia,51015,112,1 +2020-06-02,Augusta,Virginia,51015,115,2 +2020-06-03,Augusta,Virginia,51015,115,2 +2020-06-04,Augusta,Virginia,51015,122,2 +2020-06-05,Augusta,Virginia,51015,124,2 +2020-06-06,Augusta,Virginia,51015,125,2 +2020-06-07,Augusta,Virginia,51015,132,2 +2020-06-08,Augusta,Virginia,51015,136,2 +2020-06-09,Augusta,Virginia,51015,137,2 +2020-06-10,Augusta,Virginia,51015,139,2 +2020-06-11,Augusta,Virginia,51015,139,2 +2020-06-12,Augusta,Virginia,51015,141,2 +2020-06-13,Augusta,Virginia,51015,143,2 +2020-06-14,Augusta,Virginia,51015,146,2 +2020-06-15,Augusta,Virginia,51015,146,2 +2020-06-16,Augusta,Virginia,51015,152,2 +2020-06-17,Augusta,Virginia,51015,157,2 +2020-06-18,Augusta,Virginia,51015,164,2 +2020-06-19,Augusta,Virginia,51015,166,2 +2020-06-20,Augusta,Virginia,51015,167,2 +2020-06-21,Augusta,Virginia,51015,169,2 +2020-06-22,Augusta,Virginia,51015,171,2 +2020-06-23,Augusta,Virginia,51015,171,2 +2020-06-24,Augusta,Virginia,51015,174,2 +2020-06-25,Augusta,Virginia,51015,178,2 +2020-06-26,Augusta,Virginia,51015,179,2 +2020-06-27,Augusta,Virginia,51015,179,2 +2020-06-28,Augusta,Virginia,51015,183,2 +2020-06-29,Augusta,Virginia,51015,183,2 +2020-06-30,Augusta,Virginia,51015,185,2 +2020-07-01,Augusta,Virginia,51015,184,2 +2020-07-02,Augusta,Virginia,51015,189,2 +2020-07-03,Augusta,Virginia,51015,190,2 +2020-07-04,Augusta,Virginia,51015,192,2 +2020-07-05,Augusta,Virginia,51015,193,2 +2020-07-06,Augusta,Virginia,51015,194,2 +2020-07-07,Augusta,Virginia,51015,200,2 +2020-07-08,Augusta,Virginia,51015,201,2 +2020-07-09,Augusta,Virginia,51015,200,2 +2020-07-08,Bath,Virginia,51017,1,0 +2020-07-09,Bath,Virginia,51017,1,0 +2020-03-22,Bedford,Virginia,51019,1,0 +2020-03-23,Bedford,Virginia,51019,1,0 +2020-03-24,Bedford,Virginia,51019,1,0 +2020-03-25,Bedford,Virginia,51019,2,0 +2020-03-26,Bedford,Virginia,51019,2,0 +2020-03-27,Bedford,Virginia,51019,2,0 +2020-03-28,Bedford,Virginia,51019,2,0 +2020-03-29,Bedford,Virginia,51019,2,0 +2020-03-30,Bedford,Virginia,51019,2,0 +2020-03-31,Bedford,Virginia,51019,2,0 +2020-04-01,Bedford,Virginia,51019,3,0 +2020-04-02,Bedford,Virginia,51019,3,0 +2020-04-03,Bedford,Virginia,51019,3,0 +2020-04-04,Bedford,Virginia,51019,4,0 +2020-04-05,Bedford,Virginia,51019,4,0 +2020-04-06,Bedford,Virginia,51019,5,0 +2020-04-07,Bedford,Virginia,51019,8,0 +2020-04-08,Bedford,Virginia,51019,12,0 +2020-04-09,Bedford,Virginia,51019,12,0 +2020-04-10,Bedford,Virginia,51019,15,0 +2020-04-11,Bedford,Virginia,51019,15,0 +2020-04-12,Bedford,Virginia,51019,15,0 +2020-04-13,Bedford,Virginia,51019,16,0 +2020-04-14,Bedford,Virginia,51019,16,0 +2020-04-15,Bedford,Virginia,51019,16,0 +2020-04-16,Bedford,Virginia,51019,16,0 +2020-04-17,Bedford,Virginia,51019,17,0 +2020-04-18,Bedford,Virginia,51019,17,0 +2020-04-19,Bedford,Virginia,51019,18,0 +2020-04-20,Bedford,Virginia,51019,18,0 +2020-04-21,Bedford,Virginia,51019,19,0 +2020-04-22,Bedford,Virginia,51019,20,0 +2020-04-23,Bedford,Virginia,51019,21,0 +2020-04-24,Bedford,Virginia,51019,23,0 +2020-04-25,Bedford,Virginia,51019,24,0 +2020-04-26,Bedford,Virginia,51019,24,0 +2020-04-27,Bedford,Virginia,51019,25,0 +2020-04-28,Bedford,Virginia,51019,25,0 +2020-04-29,Bedford,Virginia,51019,27,0 +2020-04-30,Bedford,Virginia,51019,30,0 +2020-05-01,Bedford,Virginia,51019,33,0 +2020-05-02,Bedford,Virginia,51019,34,0 +2020-05-03,Bedford,Virginia,51019,34,0 +2020-05-04,Bedford,Virginia,51019,35,0 +2020-05-05,Bedford,Virginia,51019,36,0 +2020-05-06,Bedford,Virginia,51019,36,0 +2020-05-07,Bedford,Virginia,51019,37,1 +2020-05-08,Bedford,Virginia,51019,37,1 +2020-05-09,Bedford,Virginia,51019,38,1 +2020-05-10,Bedford,Virginia,51019,38,1 +2020-05-11,Bedford,Virginia,51019,38,1 +2020-05-12,Bedford,Virginia,51019,38,1 +2020-05-13,Bedford,Virginia,51019,40,1 +2020-05-14,Bedford,Virginia,51019,40,1 +2020-05-15,Bedford,Virginia,51019,40,1 +2020-05-16,Bedford,Virginia,51019,40,1 +2020-05-17,Bedford,Virginia,51019,40,1 +2020-05-18,Bedford,Virginia,51019,41,1 +2020-05-19,Bedford,Virginia,51019,41,1 +2020-05-20,Bedford,Virginia,51019,41,1 +2020-05-21,Bedford,Virginia,51019,41,1 +2020-05-22,Bedford,Virginia,51019,41,2 +2020-05-23,Bedford,Virginia,51019,41,2 +2020-05-24,Bedford,Virginia,51019,41,2 +2020-05-25,Bedford,Virginia,51019,41,2 +2020-05-26,Bedford,Virginia,51019,43,2 +2020-05-27,Bedford,Virginia,51019,45,2 +2020-05-28,Bedford,Virginia,51019,47,2 +2020-05-29,Bedford,Virginia,51019,47,2 +2020-05-30,Bedford,Virginia,51019,51,2 +2020-05-31,Bedford,Virginia,51019,57,2 +2020-06-01,Bedford,Virginia,51019,60,2 +2020-06-02,Bedford,Virginia,51019,62,2 +2020-06-03,Bedford,Virginia,51019,62,2 +2020-06-04,Bedford,Virginia,51019,63,2 +2020-06-05,Bedford,Virginia,51019,72,2 +2020-06-06,Bedford,Virginia,51019,76,2 +2020-06-07,Bedford,Virginia,51019,79,2 +2020-06-08,Bedford,Virginia,51019,79,2 +2020-06-09,Bedford,Virginia,51019,81,2 +2020-06-10,Bedford,Virginia,51019,83,2 +2020-06-11,Bedford,Virginia,51019,82,2 +2020-06-12,Bedford,Virginia,51019,86,2 +2020-06-13,Bedford,Virginia,51019,91,2 +2020-06-14,Bedford,Virginia,51019,91,2 +2020-06-15,Bedford,Virginia,51019,91,2 +2020-06-16,Bedford,Virginia,51019,94,2 +2020-06-17,Bedford,Virginia,51019,96,2 +2020-06-18,Bedford,Virginia,51019,94,2 +2020-06-19,Bedford,Virginia,51019,95,2 +2020-06-20,Bedford,Virginia,51019,98,2 +2020-06-21,Bedford,Virginia,51019,99,2 +2020-06-22,Bedford,Virginia,51019,99,2 +2020-06-23,Bedford,Virginia,51019,103,3 +2020-06-24,Bedford,Virginia,51019,104,3 +2020-06-25,Bedford,Virginia,51019,106,3 +2020-06-26,Bedford,Virginia,51019,107,3 +2020-06-27,Bedford,Virginia,51019,107,3 +2020-06-28,Bedford,Virginia,51019,109,3 +2020-06-29,Bedford,Virginia,51019,114,3 +2020-06-30,Bedford,Virginia,51019,118,3 +2020-07-01,Bedford,Virginia,51019,119,3 +2020-07-02,Bedford,Virginia,51019,125,3 +2020-07-03,Bedford,Virginia,51019,131,3 +2020-07-04,Bedford,Virginia,51019,137,3 +2020-07-05,Bedford,Virginia,51019,137,3 +2020-07-06,Bedford,Virginia,51019,140,3 +2020-07-07,Bedford,Virginia,51019,140,4 +2020-07-08,Bedford,Virginia,51019,140,4 +2020-07-09,Bedford,Virginia,51019,142,4 +2020-06-19,Bland,Virginia,51021,1,0 +2020-06-20,Bland,Virginia,51021,1,0 +2020-06-21,Bland,Virginia,51021,2,0 +2020-06-22,Bland,Virginia,51021,2,0 +2020-06-23,Bland,Virginia,51021,2,0 +2020-06-24,Bland,Virginia,51021,2,0 +2020-06-25,Bland,Virginia,51021,2,0 +2020-06-26,Bland,Virginia,51021,2,0 +2020-06-27,Bland,Virginia,51021,2,0 +2020-06-28,Bland,Virginia,51021,2,0 +2020-06-29,Bland,Virginia,51021,2,0 +2020-06-30,Bland,Virginia,51021,2,0 +2020-07-01,Bland,Virginia,51021,2,0 +2020-07-02,Bland,Virginia,51021,2,0 +2020-07-03,Bland,Virginia,51021,2,0 +2020-07-04,Bland,Virginia,51021,2,0 +2020-07-05,Bland,Virginia,51021,2,0 +2020-07-06,Bland,Virginia,51021,2,0 +2020-07-07,Bland,Virginia,51021,2,0 +2020-07-08,Bland,Virginia,51021,2,0 +2020-07-09,Bland,Virginia,51021,2,0 +2020-03-21,Botetourt,Virginia,51023,1,0 +2020-03-22,Botetourt,Virginia,51023,1,0 +2020-03-23,Botetourt,Virginia,51023,1,0 +2020-03-24,Botetourt,Virginia,51023,1,0 +2020-03-25,Botetourt,Virginia,51023,1,0 +2020-03-26,Botetourt,Virginia,51023,1,0 +2020-03-27,Botetourt,Virginia,51023,1,0 +2020-03-28,Botetourt,Virginia,51023,1,0 +2020-03-29,Botetourt,Virginia,51023,2,0 +2020-03-30,Botetourt,Virginia,51023,5,0 +2020-03-31,Botetourt,Virginia,51023,5,0 +2020-04-01,Botetourt,Virginia,51023,6,0 +2020-04-02,Botetourt,Virginia,51023,8,0 +2020-04-03,Botetourt,Virginia,51023,8,0 +2020-04-04,Botetourt,Virginia,51023,14,0 +2020-04-05,Botetourt,Virginia,51023,15,0 +2020-04-06,Botetourt,Virginia,51023,15,0 +2020-04-07,Botetourt,Virginia,51023,18,0 +2020-04-08,Botetourt,Virginia,51023,18,0 +2020-04-09,Botetourt,Virginia,51023,18,0 +2020-04-10,Botetourt,Virginia,51023,21,0 +2020-04-11,Botetourt,Virginia,51023,22,0 +2020-04-12,Botetourt,Virginia,51023,23,0 +2020-04-13,Botetourt,Virginia,51023,24,0 +2020-04-14,Botetourt,Virginia,51023,23,0 +2020-04-15,Botetourt,Virginia,51023,23,0 +2020-04-16,Botetourt,Virginia,51023,23,0 +2020-04-17,Botetourt,Virginia,51023,23,0 +2020-04-18,Botetourt,Virginia,51023,23,0 +2020-04-19,Botetourt,Virginia,51023,24,0 +2020-04-20,Botetourt,Virginia,51023,24,0 +2020-04-21,Botetourt,Virginia,51023,25,3 +2020-04-22,Botetourt,Virginia,51023,26,3 +2020-04-23,Botetourt,Virginia,51023,26,3 +2020-04-24,Botetourt,Virginia,51023,27,3 +2020-04-25,Botetourt,Virginia,51023,27,3 +2020-04-26,Botetourt,Virginia,51023,27,3 +2020-04-27,Botetourt,Virginia,51023,27,3 +2020-04-28,Botetourt,Virginia,51023,27,3 +2020-04-29,Botetourt,Virginia,51023,28,3 +2020-04-30,Botetourt,Virginia,51023,28,3 +2020-05-01,Botetourt,Virginia,51023,28,3 +2020-05-02,Botetourt,Virginia,51023,28,3 +2020-05-03,Botetourt,Virginia,51023,28,3 +2020-05-04,Botetourt,Virginia,51023,28,3 +2020-05-05,Botetourt,Virginia,51023,29,3 +2020-05-06,Botetourt,Virginia,51023,29,3 +2020-05-07,Botetourt,Virginia,51023,29,3 +2020-05-08,Botetourt,Virginia,51023,30,3 +2020-05-09,Botetourt,Virginia,51023,29,3 +2020-05-10,Botetourt,Virginia,51023,29,3 +2020-05-11,Botetourt,Virginia,51023,30,3 +2020-05-12,Botetourt,Virginia,51023,30,3 +2020-05-13,Botetourt,Virginia,51023,30,3 +2020-05-14,Botetourt,Virginia,51023,30,3 +2020-05-15,Botetourt,Virginia,51023,30,3 +2020-05-16,Botetourt,Virginia,51023,30,3 +2020-05-17,Botetourt,Virginia,51023,31,3 +2020-05-18,Botetourt,Virginia,51023,31,3 +2020-05-19,Botetourt,Virginia,51023,31,3 +2020-05-20,Botetourt,Virginia,51023,31,3 +2020-05-21,Botetourt,Virginia,51023,31,3 +2020-05-22,Botetourt,Virginia,51023,31,4 +2020-05-23,Botetourt,Virginia,51023,31,4 +2020-05-24,Botetourt,Virginia,51023,31,4 +2020-05-25,Botetourt,Virginia,51023,32,4 +2020-05-26,Botetourt,Virginia,51023,32,4 +2020-05-27,Botetourt,Virginia,51023,32,4 +2020-05-28,Botetourt,Virginia,51023,32,4 +2020-05-29,Botetourt,Virginia,51023,32,4 +2020-05-30,Botetourt,Virginia,51023,32,4 +2020-05-31,Botetourt,Virginia,51023,32,4 +2020-06-01,Botetourt,Virginia,51023,32,4 +2020-06-02,Botetourt,Virginia,51023,34,4 +2020-06-03,Botetourt,Virginia,51023,34,4 +2020-06-04,Botetourt,Virginia,51023,34,4 +2020-06-05,Botetourt,Virginia,51023,35,4 +2020-06-06,Botetourt,Virginia,51023,39,4 +2020-06-07,Botetourt,Virginia,51023,40,4 +2020-06-08,Botetourt,Virginia,51023,40,4 +2020-06-09,Botetourt,Virginia,51023,40,4 +2020-06-10,Botetourt,Virginia,51023,40,4 +2020-06-11,Botetourt,Virginia,51023,44,4 +2020-06-12,Botetourt,Virginia,51023,44,4 +2020-06-13,Botetourt,Virginia,51023,47,4 +2020-06-14,Botetourt,Virginia,51023,47,4 +2020-06-15,Botetourt,Virginia,51023,47,4 +2020-06-16,Botetourt,Virginia,51023,50,4 +2020-06-17,Botetourt,Virginia,51023,51,4 +2020-06-18,Botetourt,Virginia,51023,51,4 +2020-06-19,Botetourt,Virginia,51023,55,4 +2020-06-20,Botetourt,Virginia,51023,58,4 +2020-06-21,Botetourt,Virginia,51023,58,4 +2020-06-22,Botetourt,Virginia,51023,59,4 +2020-06-23,Botetourt,Virginia,51023,67,4 +2020-06-24,Botetourt,Virginia,51023,69,4 +2020-06-25,Botetourt,Virginia,51023,69,4 +2020-06-26,Botetourt,Virginia,51023,69,4 +2020-06-27,Botetourt,Virginia,51023,69,4 +2020-06-28,Botetourt,Virginia,51023,73,4 +2020-06-29,Botetourt,Virginia,51023,86,4 +2020-06-30,Botetourt,Virginia,51023,121,4 +2020-07-01,Botetourt,Virginia,51023,123,4 +2020-07-02,Botetourt,Virginia,51023,125,4 +2020-07-03,Botetourt,Virginia,51023,133,4 +2020-07-04,Botetourt,Virginia,51023,133,4 +2020-07-05,Botetourt,Virginia,51023,134,4 +2020-07-06,Botetourt,Virginia,51023,139,4 +2020-07-07,Botetourt,Virginia,51023,145,4 +2020-07-08,Botetourt,Virginia,51023,148,4 +2020-07-09,Botetourt,Virginia,51023,150,4 +2020-03-31,Brunswick,Virginia,51025,1,0 +2020-04-01,Brunswick,Virginia,51025,1,0 +2020-04-02,Brunswick,Virginia,51025,1,0 +2020-04-03,Brunswick,Virginia,51025,1,0 +2020-04-04,Brunswick,Virginia,51025,1,0 +2020-04-05,Brunswick,Virginia,51025,1,0 +2020-04-06,Brunswick,Virginia,51025,1,0 +2020-04-07,Brunswick,Virginia,51025,1,0 +2020-04-08,Brunswick,Virginia,51025,1,0 +2020-04-09,Brunswick,Virginia,51025,1,0 +2020-04-10,Brunswick,Virginia,51025,2,0 +2020-04-11,Brunswick,Virginia,51025,3,0 +2020-04-12,Brunswick,Virginia,51025,3,0 +2020-04-13,Brunswick,Virginia,51025,3,0 +2020-04-14,Brunswick,Virginia,51025,9,0 +2020-04-15,Brunswick,Virginia,51025,9,0 +2020-04-16,Brunswick,Virginia,51025,10,0 +2020-04-17,Brunswick,Virginia,51025,10,0 +2020-04-18,Brunswick,Virginia,51025,12,0 +2020-04-19,Brunswick,Virginia,51025,12,0 +2020-04-20,Brunswick,Virginia,51025,12,0 +2020-04-21,Brunswick,Virginia,51025,12,0 +2020-04-22,Brunswick,Virginia,51025,13,0 +2020-04-23,Brunswick,Virginia,51025,13,0 +2020-04-24,Brunswick,Virginia,51025,14,0 +2020-04-25,Brunswick,Virginia,51025,14,0 +2020-04-26,Brunswick,Virginia,51025,14,0 +2020-04-27,Brunswick,Virginia,51025,14,0 +2020-04-28,Brunswick,Virginia,51025,13,0 +2020-04-29,Brunswick,Virginia,51025,14,0 +2020-04-30,Brunswick,Virginia,51025,14,0 +2020-05-01,Brunswick,Virginia,51025,14,0 +2020-05-02,Brunswick,Virginia,51025,15,0 +2020-05-03,Brunswick,Virginia,51025,15,0 +2020-05-04,Brunswick,Virginia,51025,15,0 +2020-05-05,Brunswick,Virginia,51025,15,0 +2020-05-06,Brunswick,Virginia,51025,15,0 +2020-05-07,Brunswick,Virginia,51025,16,0 +2020-05-08,Brunswick,Virginia,51025,17,0 +2020-05-09,Brunswick,Virginia,51025,17,0 +2020-05-10,Brunswick,Virginia,51025,18,0 +2020-05-11,Brunswick,Virginia,51025,19,0 +2020-05-12,Brunswick,Virginia,51025,20,0 +2020-05-13,Brunswick,Virginia,51025,20,0 +2020-05-14,Brunswick,Virginia,51025,20,0 +2020-05-15,Brunswick,Virginia,51025,20,1 +2020-05-16,Brunswick,Virginia,51025,20,1 +2020-05-17,Brunswick,Virginia,51025,20,1 +2020-05-18,Brunswick,Virginia,51025,20,1 +2020-05-19,Brunswick,Virginia,51025,21,1 +2020-05-20,Brunswick,Virginia,51025,21,1 +2020-05-21,Brunswick,Virginia,51025,21,1 +2020-05-22,Brunswick,Virginia,51025,21,1 +2020-05-23,Brunswick,Virginia,51025,21,1 +2020-05-24,Brunswick,Virginia,51025,21,1 +2020-05-25,Brunswick,Virginia,51025,21,1 +2020-05-26,Brunswick,Virginia,51025,21,1 +2020-05-27,Brunswick,Virginia,51025,21,1 +2020-05-28,Brunswick,Virginia,51025,24,1 +2020-05-29,Brunswick,Virginia,51025,25,1 +2020-05-30,Brunswick,Virginia,51025,25,1 +2020-05-31,Brunswick,Virginia,51025,25,1 +2020-06-01,Brunswick,Virginia,51025,27,1 +2020-06-02,Brunswick,Virginia,51025,28,1 +2020-06-03,Brunswick,Virginia,51025,30,1 +2020-06-04,Brunswick,Virginia,51025,31,1 +2020-06-05,Brunswick,Virginia,51025,32,1 +2020-06-06,Brunswick,Virginia,51025,32,1 +2020-06-07,Brunswick,Virginia,51025,39,1 +2020-06-08,Brunswick,Virginia,51025,41,1 +2020-06-09,Brunswick,Virginia,51025,41,1 +2020-06-10,Brunswick,Virginia,51025,43,1 +2020-06-11,Brunswick,Virginia,51025,44,1 +2020-06-12,Brunswick,Virginia,51025,44,1 +2020-06-13,Brunswick,Virginia,51025,46,1 +2020-06-14,Brunswick,Virginia,51025,46,1 +2020-06-15,Brunswick,Virginia,51025,46,1 +2020-06-16,Brunswick,Virginia,51025,54,1 +2020-06-17,Brunswick,Virginia,51025,59,1 +2020-06-18,Brunswick,Virginia,51025,72,1 +2020-06-19,Brunswick,Virginia,51025,90,1 +2020-06-20,Brunswick,Virginia,51025,90,1 +2020-06-21,Brunswick,Virginia,51025,91,1 +2020-06-22,Brunswick,Virginia,51025,92,1 +2020-06-23,Brunswick,Virginia,51025,92,1 +2020-06-24,Brunswick,Virginia,51025,93,1 +2020-06-25,Brunswick,Virginia,51025,96,1 +2020-06-26,Brunswick,Virginia,51025,96,1 +2020-06-27,Brunswick,Virginia,51025,99,1 +2020-06-28,Brunswick,Virginia,51025,102,1 +2020-06-29,Brunswick,Virginia,51025,102,1 +2020-06-30,Brunswick,Virginia,51025,103,1 +2020-07-01,Brunswick,Virginia,51025,106,1 +2020-07-02,Brunswick,Virginia,51025,107,1 +2020-07-03,Brunswick,Virginia,51025,107,1 +2020-07-04,Brunswick,Virginia,51025,109,1 +2020-07-05,Brunswick,Virginia,51025,112,1 +2020-07-06,Brunswick,Virginia,51025,113,1 +2020-07-07,Brunswick,Virginia,51025,116,1 +2020-07-08,Brunswick,Virginia,51025,117,1 +2020-07-09,Brunswick,Virginia,51025,116,1 +2020-04-07,Buchanan,Virginia,51027,1,0 +2020-04-08,Buchanan,Virginia,51027,1,0 +2020-04-09,Buchanan,Virginia,51027,1,0 +2020-04-10,Buchanan,Virginia,51027,1,0 +2020-04-11,Buchanan,Virginia,51027,2,0 +2020-04-12,Buchanan,Virginia,51027,2,0 +2020-04-13,Buchanan,Virginia,51027,2,0 +2020-04-14,Buchanan,Virginia,51027,12,0 +2020-04-15,Buchanan,Virginia,51027,12,0 +2020-04-16,Buchanan,Virginia,51027,12,0 +2020-04-17,Buchanan,Virginia,51027,12,0 +2020-04-18,Buchanan,Virginia,51027,12,0 +2020-04-19,Buchanan,Virginia,51027,12,0 +2020-04-20,Buchanan,Virginia,51027,12,0 +2020-04-21,Buchanan,Virginia,51027,12,0 +2020-04-22,Buchanan,Virginia,51027,12,0 +2020-04-23,Buchanan,Virginia,51027,12,0 +2020-04-24,Buchanan,Virginia,51027,12,0 +2020-04-25,Buchanan,Virginia,51027,13,0 +2020-04-26,Buchanan,Virginia,51027,13,0 +2020-04-27,Buchanan,Virginia,51027,14,0 +2020-04-28,Buchanan,Virginia,51027,16,0 +2020-04-29,Buchanan,Virginia,51027,16,0 +2020-04-30,Buchanan,Virginia,51027,16,0 +2020-05-01,Buchanan,Virginia,51027,16,0 +2020-05-02,Buchanan,Virginia,51027,16,0 +2020-05-03,Buchanan,Virginia,51027,16,0 +2020-05-04,Buchanan,Virginia,51027,16,0 +2020-05-05,Buchanan,Virginia,51027,16,0 +2020-05-06,Buchanan,Virginia,51027,16,0 +2020-05-07,Buchanan,Virginia,51027,16,0 +2020-05-08,Buchanan,Virginia,51027,16,0 +2020-05-09,Buchanan,Virginia,51027,16,0 +2020-05-10,Buchanan,Virginia,51027,16,0 +2020-05-11,Buchanan,Virginia,51027,16,0 +2020-05-12,Buchanan,Virginia,51027,16,0 +2020-05-13,Buchanan,Virginia,51027,16,0 +2020-05-14,Buchanan,Virginia,51027,16,0 +2020-05-15,Buchanan,Virginia,51027,16,0 +2020-05-16,Buchanan,Virginia,51027,16,0 +2020-05-17,Buchanan,Virginia,51027,16,0 +2020-05-18,Buchanan,Virginia,51027,16,0 +2020-05-19,Buchanan,Virginia,51027,18,0 +2020-05-20,Buchanan,Virginia,51027,18,0 +2020-05-21,Buchanan,Virginia,51027,18,0 +2020-05-22,Buchanan,Virginia,51027,18,0 +2020-05-23,Buchanan,Virginia,51027,18,0 +2020-05-24,Buchanan,Virginia,51027,18,0 +2020-05-25,Buchanan,Virginia,51027,18,0 +2020-05-26,Buchanan,Virginia,51027,19,0 +2020-05-27,Buchanan,Virginia,51027,18,0 +2020-05-28,Buchanan,Virginia,51027,18,0 +2020-05-29,Buchanan,Virginia,51027,18,0 +2020-05-30,Buchanan,Virginia,51027,18,0 +2020-05-31,Buchanan,Virginia,51027,18,0 +2020-06-01,Buchanan,Virginia,51027,18,0 +2020-06-02,Buchanan,Virginia,51027,18,0 +2020-06-03,Buchanan,Virginia,51027,18,0 +2020-06-04,Buchanan,Virginia,51027,18,0 +2020-06-05,Buchanan,Virginia,51027,18,0 +2020-06-06,Buchanan,Virginia,51027,18,0 +2020-06-07,Buchanan,Virginia,51027,18,0 +2020-06-08,Buchanan,Virginia,51027,18,0 +2020-06-09,Buchanan,Virginia,51027,18,0 +2020-06-10,Buchanan,Virginia,51027,18,0 +2020-06-11,Buchanan,Virginia,51027,18,0 +2020-06-12,Buchanan,Virginia,51027,18,0 +2020-06-13,Buchanan,Virginia,51027,18,0 +2020-06-14,Buchanan,Virginia,51027,18,0 +2020-06-15,Buchanan,Virginia,51027,18,0 +2020-06-16,Buchanan,Virginia,51027,18,0 +2020-06-17,Buchanan,Virginia,51027,18,0 +2020-06-18,Buchanan,Virginia,51027,18,0 +2020-06-19,Buchanan,Virginia,51027,18,0 +2020-06-20,Buchanan,Virginia,51027,18,0 +2020-06-21,Buchanan,Virginia,51027,18,0 +2020-06-22,Buchanan,Virginia,51027,18,0 +2020-06-23,Buchanan,Virginia,51027,18,0 +2020-06-24,Buchanan,Virginia,51027,18,0 +2020-06-25,Buchanan,Virginia,51027,18,0 +2020-06-26,Buchanan,Virginia,51027,18,0 +2020-06-27,Buchanan,Virginia,51027,31,0 +2020-06-28,Buchanan,Virginia,51027,31,0 +2020-06-29,Buchanan,Virginia,51027,31,0 +2020-06-30,Buchanan,Virginia,51027,31,0 +2020-07-01,Buchanan,Virginia,51027,31,0 +2020-07-02,Buchanan,Virginia,51027,31,0 +2020-07-03,Buchanan,Virginia,51027,31,0 +2020-07-04,Buchanan,Virginia,51027,31,0 +2020-07-05,Buchanan,Virginia,51027,33,0 +2020-07-06,Buchanan,Virginia,51027,33,0 +2020-07-07,Buchanan,Virginia,51027,34,0 +2020-07-08,Buchanan,Virginia,51027,36,0 +2020-07-09,Buchanan,Virginia,51027,38,0 +2020-03-31,Buckingham,Virginia,51029,2,0 +2020-04-01,Buckingham,Virginia,51029,2,0 +2020-04-02,Buckingham,Virginia,51029,2,0 +2020-04-03,Buckingham,Virginia,51029,3,0 +2020-04-04,Buckingham,Virginia,51029,4,0 +2020-04-05,Buckingham,Virginia,51029,4,0 +2020-04-06,Buckingham,Virginia,51029,4,0 +2020-04-07,Buckingham,Virginia,51029,6,0 +2020-04-08,Buckingham,Virginia,51029,9,0 +2020-04-09,Buckingham,Virginia,51029,9,0 +2020-04-10,Buckingham,Virginia,51029,10,0 +2020-04-11,Buckingham,Virginia,51029,14,0 +2020-04-12,Buckingham,Virginia,51029,14,0 +2020-04-13,Buckingham,Virginia,51029,16,0 +2020-04-14,Buckingham,Virginia,51029,18,0 +2020-04-15,Buckingham,Virginia,51029,22,0 +2020-04-16,Buckingham,Virginia,51029,23,0 +2020-04-17,Buckingham,Virginia,51029,24,0 +2020-04-18,Buckingham,Virginia,51029,25,0 +2020-04-19,Buckingham,Virginia,51029,26,0 +2020-04-20,Buckingham,Virginia,51029,26,0 +2020-04-21,Buckingham,Virginia,51029,27,0 +2020-04-22,Buckingham,Virginia,51029,27,0 +2020-04-23,Buckingham,Virginia,51029,31,0 +2020-04-24,Buckingham,Virginia,51029,31,0 +2020-04-25,Buckingham,Virginia,51029,34,0 +2020-04-26,Buckingham,Virginia,51029,35,0 +2020-04-27,Buckingham,Virginia,51029,45,0 +2020-04-28,Buckingham,Virginia,51029,55,0 +2020-04-29,Buckingham,Virginia,51029,55,0 +2020-04-30,Buckingham,Virginia,51029,58,0 +2020-05-01,Buckingham,Virginia,51029,94,0 +2020-05-02,Buckingham,Virginia,51029,137,0 +2020-05-03,Buckingham,Virginia,51029,137,0 +2020-05-04,Buckingham,Virginia,51029,137,0 +2020-05-05,Buckingham,Virginia,51029,171,0 +2020-05-06,Buckingham,Virginia,51029,171,0 +2020-05-07,Buckingham,Virginia,51029,225,0 +2020-05-08,Buckingham,Virginia,51029,225,1 +2020-05-09,Buckingham,Virginia,51029,246,1 +2020-05-10,Buckingham,Virginia,51029,246,1 +2020-05-11,Buckingham,Virginia,51029,246,1 +2020-05-12,Buckingham,Virginia,51029,301,2 +2020-05-13,Buckingham,Virginia,51029,347,2 +2020-05-14,Buckingham,Virginia,51029,348,2 +2020-05-15,Buckingham,Virginia,51029,366,2 +2020-05-16,Buckingham,Virginia,51029,411,2 +2020-05-17,Buckingham,Virginia,51029,411,2 +2020-05-18,Buckingham,Virginia,51029,417,2 +2020-05-19,Buckingham,Virginia,51029,419,2 +2020-05-20,Buckingham,Virginia,51029,419,2 +2020-05-21,Buckingham,Virginia,51029,438,2 +2020-05-22,Buckingham,Virginia,51029,439,2 +2020-05-23,Buckingham,Virginia,51029,443,2 +2020-05-24,Buckingham,Virginia,51029,442,2 +2020-05-25,Buckingham,Virginia,51029,443,3 +2020-05-26,Buckingham,Virginia,51029,445,3 +2020-05-27,Buckingham,Virginia,51029,445,3 +2020-05-28,Buckingham,Virginia,51029,453,3 +2020-05-29,Buckingham,Virginia,51029,453,3 +2020-05-30,Buckingham,Virginia,51029,456,3 +2020-05-31,Buckingham,Virginia,51029,459,3 +2020-06-01,Buckingham,Virginia,51029,461,3 +2020-06-02,Buckingham,Virginia,51029,465,3 +2020-06-03,Buckingham,Virginia,51029,467,3 +2020-06-04,Buckingham,Virginia,51029,469,3 +2020-06-05,Buckingham,Virginia,51029,475,3 +2020-06-06,Buckingham,Virginia,51029,477,3 +2020-06-07,Buckingham,Virginia,51029,481,3 +2020-06-08,Buckingham,Virginia,51029,481,3 +2020-06-09,Buckingham,Virginia,51029,484,3 +2020-06-10,Buckingham,Virginia,51029,497,3 +2020-06-11,Buckingham,Virginia,51029,517,3 +2020-06-12,Buckingham,Virginia,51029,518,3 +2020-06-13,Buckingham,Virginia,51029,519,3 +2020-06-14,Buckingham,Virginia,51029,519,3 +2020-06-15,Buckingham,Virginia,51029,521,3 +2020-06-16,Buckingham,Virginia,51029,534,3 +2020-06-17,Buckingham,Virginia,51029,542,3 +2020-06-18,Buckingham,Virginia,51029,552,3 +2020-06-19,Buckingham,Virginia,51029,552,3 +2020-06-20,Buckingham,Virginia,51029,552,3 +2020-06-21,Buckingham,Virginia,51029,552,3 +2020-06-22,Buckingham,Virginia,51029,553,3 +2020-06-23,Buckingham,Virginia,51029,553,4 +2020-06-24,Buckingham,Virginia,51029,553,4 +2020-06-25,Buckingham,Virginia,51029,555,4 +2020-06-26,Buckingham,Virginia,51029,555,4 +2020-06-27,Buckingham,Virginia,51029,556,4 +2020-06-28,Buckingham,Virginia,51029,556,4 +2020-06-29,Buckingham,Virginia,51029,556,4 +2020-06-30,Buckingham,Virginia,51029,556,4 +2020-07-01,Buckingham,Virginia,51029,559,4 +2020-07-02,Buckingham,Virginia,51029,560,4 +2020-07-03,Buckingham,Virginia,51029,566,4 +2020-07-04,Buckingham,Virginia,51029,566,4 +2020-07-05,Buckingham,Virginia,51029,566,4 +2020-07-06,Buckingham,Virginia,51029,571,4 +2020-07-07,Buckingham,Virginia,51029,570,5 +2020-07-08,Buckingham,Virginia,51029,571,5 +2020-07-09,Buckingham,Virginia,51029,572,6 +2020-03-31,Campbell,Virginia,51031,1,0 +2020-04-01,Campbell,Virginia,51031,2,0 +2020-04-02,Campbell,Virginia,51031,2,0 +2020-04-03,Campbell,Virginia,51031,2,0 +2020-04-04,Campbell,Virginia,51031,2,0 +2020-04-05,Campbell,Virginia,51031,2,0 +2020-04-06,Campbell,Virginia,51031,2,0 +2020-04-07,Campbell,Virginia,51031,3,0 +2020-04-08,Campbell,Virginia,51031,4,0 +2020-04-09,Campbell,Virginia,51031,4,0 +2020-04-10,Campbell,Virginia,51031,7,0 +2020-04-11,Campbell,Virginia,51031,9,0 +2020-04-12,Campbell,Virginia,51031,9,0 +2020-04-13,Campbell,Virginia,51031,10,0 +2020-04-14,Campbell,Virginia,51031,11,0 +2020-04-15,Campbell,Virginia,51031,11,0 +2020-04-16,Campbell,Virginia,51031,9,0 +2020-04-17,Campbell,Virginia,51031,9,0 +2020-04-18,Campbell,Virginia,51031,9,0 +2020-04-19,Campbell,Virginia,51031,9,0 +2020-04-20,Campbell,Virginia,51031,9,0 +2020-04-21,Campbell,Virginia,51031,10,0 +2020-04-22,Campbell,Virginia,51031,10,0 +2020-04-23,Campbell,Virginia,51031,10,0 +2020-04-24,Campbell,Virginia,51031,10,0 +2020-04-25,Campbell,Virginia,51031,10,0 +2020-04-26,Campbell,Virginia,51031,11,0 +2020-04-27,Campbell,Virginia,51031,11,0 +2020-04-28,Campbell,Virginia,51031,11,0 +2020-04-29,Campbell,Virginia,51031,12,0 +2020-04-30,Campbell,Virginia,51031,12,0 +2020-05-01,Campbell,Virginia,51031,12,0 +2020-05-02,Campbell,Virginia,51031,13,0 +2020-05-03,Campbell,Virginia,51031,13,0 +2020-05-04,Campbell,Virginia,51031,13,0 +2020-05-05,Campbell,Virginia,51031,13,0 +2020-05-06,Campbell,Virginia,51031,13,0 +2020-05-07,Campbell,Virginia,51031,13,0 +2020-05-08,Campbell,Virginia,51031,13,0 +2020-05-09,Campbell,Virginia,51031,13,0 +2020-05-10,Campbell,Virginia,51031,13,0 +2020-05-11,Campbell,Virginia,51031,13,0 +2020-05-12,Campbell,Virginia,51031,13,0 +2020-05-13,Campbell,Virginia,51031,13,0 +2020-05-14,Campbell,Virginia,51031,13,1 +2020-05-15,Campbell,Virginia,51031,13,1 +2020-05-16,Campbell,Virginia,51031,13,1 +2020-05-17,Campbell,Virginia,51031,13,1 +2020-05-18,Campbell,Virginia,51031,13,1 +2020-05-19,Campbell,Virginia,51031,13,1 +2020-05-20,Campbell,Virginia,51031,13,1 +2020-05-21,Campbell,Virginia,51031,13,1 +2020-05-22,Campbell,Virginia,51031,13,1 +2020-05-23,Campbell,Virginia,51031,13,1 +2020-05-24,Campbell,Virginia,51031,13,1 +2020-05-25,Campbell,Virginia,51031,13,1 +2020-05-26,Campbell,Virginia,51031,15,1 +2020-05-27,Campbell,Virginia,51031,16,1 +2020-05-28,Campbell,Virginia,51031,16,1 +2020-05-29,Campbell,Virginia,51031,17,1 +2020-05-30,Campbell,Virginia,51031,18,1 +2020-05-31,Campbell,Virginia,51031,18,1 +2020-06-01,Campbell,Virginia,51031,18,1 +2020-06-02,Campbell,Virginia,51031,18,1 +2020-06-03,Campbell,Virginia,51031,18,1 +2020-06-04,Campbell,Virginia,51031,18,1 +2020-06-05,Campbell,Virginia,51031,20,1 +2020-06-06,Campbell,Virginia,51031,20,1 +2020-06-07,Campbell,Virginia,51031,20,1 +2020-06-08,Campbell,Virginia,51031,20,1 +2020-06-09,Campbell,Virginia,51031,20,1 +2020-06-10,Campbell,Virginia,51031,22,1 +2020-06-11,Campbell,Virginia,51031,22,1 +2020-06-12,Campbell,Virginia,51031,22,1 +2020-06-13,Campbell,Virginia,51031,23,1 +2020-06-14,Campbell,Virginia,51031,25,1 +2020-06-15,Campbell,Virginia,51031,25,1 +2020-06-16,Campbell,Virginia,51031,28,1 +2020-06-17,Campbell,Virginia,51031,28,1 +2020-06-18,Campbell,Virginia,51031,28,1 +2020-06-19,Campbell,Virginia,51031,30,1 +2020-06-20,Campbell,Virginia,51031,32,1 +2020-06-21,Campbell,Virginia,51031,32,1 +2020-06-22,Campbell,Virginia,51031,32,1 +2020-06-23,Campbell,Virginia,51031,33,1 +2020-06-24,Campbell,Virginia,51031,32,1 +2020-06-25,Campbell,Virginia,51031,34,1 +2020-06-26,Campbell,Virginia,51031,41,1 +2020-06-27,Campbell,Virginia,51031,41,1 +2020-06-28,Campbell,Virginia,51031,43,1 +2020-06-29,Campbell,Virginia,51031,44,1 +2020-06-30,Campbell,Virginia,51031,45,1 +2020-07-01,Campbell,Virginia,51031,45,1 +2020-07-02,Campbell,Virginia,51031,45,1 +2020-07-03,Campbell,Virginia,51031,48,1 +2020-07-04,Campbell,Virginia,51031,51,1 +2020-07-05,Campbell,Virginia,51031,51,1 +2020-07-06,Campbell,Virginia,51031,51,1 +2020-07-07,Campbell,Virginia,51031,53,1 +2020-07-08,Campbell,Virginia,51031,54,1 +2020-07-09,Campbell,Virginia,51031,54,1 +2020-04-03,Caroline,Virginia,51033,1,0 +2020-04-04,Caroline,Virginia,51033,1,0 +2020-04-05,Caroline,Virginia,51033,1,0 +2020-04-06,Caroline,Virginia,51033,1,0 +2020-04-07,Caroline,Virginia,51033,4,0 +2020-04-08,Caroline,Virginia,51033,4,0 +2020-04-09,Caroline,Virginia,51033,4,0 +2020-04-10,Caroline,Virginia,51033,6,0 +2020-04-11,Caroline,Virginia,51033,6,0 +2020-04-12,Caroline,Virginia,51033,6,0 +2020-04-13,Caroline,Virginia,51033,6,0 +2020-04-14,Caroline,Virginia,51033,7,0 +2020-04-15,Caroline,Virginia,51033,9,0 +2020-04-16,Caroline,Virginia,51033,11,0 +2020-04-17,Caroline,Virginia,51033,11,0 +2020-04-18,Caroline,Virginia,51033,13,0 +2020-04-19,Caroline,Virginia,51033,13,0 +2020-04-20,Caroline,Virginia,51033,14,0 +2020-04-21,Caroline,Virginia,51033,17,0 +2020-04-22,Caroline,Virginia,51033,20,0 +2020-04-23,Caroline,Virginia,51033,21,0 +2020-04-24,Caroline,Virginia,51033,21,0 +2020-04-25,Caroline,Virginia,51033,21,0 +2020-04-26,Caroline,Virginia,51033,21,0 +2020-04-27,Caroline,Virginia,51033,21,0 +2020-04-28,Caroline,Virginia,51033,22,0 +2020-04-29,Caroline,Virginia,51033,25,0 +2020-04-30,Caroline,Virginia,51033,27,1 +2020-05-01,Caroline,Virginia,51033,32,1 +2020-05-02,Caroline,Virginia,51033,29,1 +2020-05-03,Caroline,Virginia,51033,31,1 +2020-05-04,Caroline,Virginia,51033,32,1 +2020-05-05,Caroline,Virginia,51033,34,1 +2020-05-06,Caroline,Virginia,51033,34,1 +2020-05-07,Caroline,Virginia,51033,36,1 +2020-05-08,Caroline,Virginia,51033,37,1 +2020-05-09,Caroline,Virginia,51033,38,2 +2020-05-10,Caroline,Virginia,51033,38,2 +2020-05-11,Caroline,Virginia,51033,38,2 +2020-05-12,Caroline,Virginia,51033,38,2 +2020-05-13,Caroline,Virginia,51033,39,2 +2020-05-14,Caroline,Virginia,51033,41,2 +2020-05-15,Caroline,Virginia,51033,42,2 +2020-05-16,Caroline,Virginia,51033,42,2 +2020-05-17,Caroline,Virginia,51033,42,2 +2020-05-18,Caroline,Virginia,51033,42,2 +2020-05-19,Caroline,Virginia,51033,44,2 +2020-05-20,Caroline,Virginia,51033,45,2 +2020-05-21,Caroline,Virginia,51033,45,2 +2020-05-22,Caroline,Virginia,51033,45,2 +2020-05-23,Caroline,Virginia,51033,46,2 +2020-05-24,Caroline,Virginia,51033,47,2 +2020-05-25,Caroline,Virginia,51033,49,2 +2020-05-26,Caroline,Virginia,51033,53,2 +2020-05-27,Caroline,Virginia,51033,55,2 +2020-05-28,Caroline,Virginia,51033,56,2 +2020-05-29,Caroline,Virginia,51033,58,2 +2020-05-30,Caroline,Virginia,51033,64,2 +2020-05-31,Caroline,Virginia,51033,67,2 +2020-06-01,Caroline,Virginia,51033,69,2 +2020-06-02,Caroline,Virginia,51033,76,2 +2020-06-03,Caroline,Virginia,51033,76,2 +2020-06-04,Caroline,Virginia,51033,76,3 +2020-06-05,Caroline,Virginia,51033,79,3 +2020-06-06,Caroline,Virginia,51033,83,3 +2020-06-07,Caroline,Virginia,51033,90,3 +2020-06-08,Caroline,Virginia,51033,93,3 +2020-06-09,Caroline,Virginia,51033,97,3 +2020-06-10,Caroline,Virginia,51033,99,3 +2020-06-11,Caroline,Virginia,51033,100,3 +2020-06-12,Caroline,Virginia,51033,101,3 +2020-06-13,Caroline,Virginia,51033,106,4 +2020-06-14,Caroline,Virginia,51033,109,4 +2020-06-15,Caroline,Virginia,51033,111,4 +2020-06-16,Caroline,Virginia,51033,113,4 +2020-06-17,Caroline,Virginia,51033,116,4 +2020-06-18,Caroline,Virginia,51033,119,4 +2020-06-19,Caroline,Virginia,51033,121,4 +2020-06-20,Caroline,Virginia,51033,125,4 +2020-06-21,Caroline,Virginia,51033,126,4 +2020-06-22,Caroline,Virginia,51033,126,4 +2020-06-23,Caroline,Virginia,51033,124,4 +2020-06-24,Caroline,Virginia,51033,125,4 +2020-06-25,Caroline,Virginia,51033,126,4 +2020-06-26,Caroline,Virginia,51033,128,4 +2020-06-27,Caroline,Virginia,51033,128,4 +2020-06-28,Caroline,Virginia,51033,128,4 +2020-06-29,Caroline,Virginia,51033,128,4 +2020-06-30,Caroline,Virginia,51033,128,4 +2020-07-01,Caroline,Virginia,51033,125,4 +2020-07-02,Caroline,Virginia,51033,128,4 +2020-07-03,Caroline,Virginia,51033,128,4 +2020-07-04,Caroline,Virginia,51033,128,4 +2020-07-05,Caroline,Virginia,51033,129,4 +2020-07-06,Caroline,Virginia,51033,129,4 +2020-07-07,Caroline,Virginia,51033,129,4 +2020-07-08,Caroline,Virginia,51033,131,4 +2020-07-09,Caroline,Virginia,51033,132,4 +2020-03-31,Carroll,Virginia,51035,1,0 +2020-04-01,Carroll,Virginia,51035,1,0 +2020-04-02,Carroll,Virginia,51035,1,0 +2020-04-03,Carroll,Virginia,51035,1,0 +2020-04-04,Carroll,Virginia,51035,1,0 +2020-04-05,Carroll,Virginia,51035,1,0 +2020-04-06,Carroll,Virginia,51035,1,0 +2020-04-07,Carroll,Virginia,51035,2,0 +2020-04-08,Carroll,Virginia,51035,2,0 +2020-04-09,Carroll,Virginia,51035,3,0 +2020-04-10,Carroll,Virginia,51035,3,0 +2020-04-11,Carroll,Virginia,51035,3,0 +2020-04-12,Carroll,Virginia,51035,3,0 +2020-04-13,Carroll,Virginia,51035,3,0 +2020-04-14,Carroll,Virginia,51035,3,0 +2020-04-15,Carroll,Virginia,51035,3,0 +2020-04-16,Carroll,Virginia,51035,3,0 +2020-04-17,Carroll,Virginia,51035,3,0 +2020-04-18,Carroll,Virginia,51035,3,0 +2020-04-19,Carroll,Virginia,51035,3,0 +2020-04-20,Carroll,Virginia,51035,3,0 +2020-04-21,Carroll,Virginia,51035,3,0 +2020-04-22,Carroll,Virginia,51035,3,0 +2020-04-23,Carroll,Virginia,51035,3,0 +2020-04-24,Carroll,Virginia,51035,3,0 +2020-04-25,Carroll,Virginia,51035,3,0 +2020-04-26,Carroll,Virginia,51035,3,0 +2020-04-27,Carroll,Virginia,51035,4,0 +2020-04-28,Carroll,Virginia,51035,4,0 +2020-04-29,Carroll,Virginia,51035,9,0 +2020-04-30,Carroll,Virginia,51035,11,0 +2020-05-01,Carroll,Virginia,51035,12,0 +2020-05-02,Carroll,Virginia,51035,13,0 +2020-05-03,Carroll,Virginia,51035,15,0 +2020-05-04,Carroll,Virginia,51035,19,0 +2020-05-05,Carroll,Virginia,51035,19,0 +2020-05-06,Carroll,Virginia,51035,19,0 +2020-05-07,Carroll,Virginia,51035,25,0 +2020-05-08,Carroll,Virginia,51035,26,0 +2020-05-09,Carroll,Virginia,51035,28,0 +2020-05-10,Carroll,Virginia,51035,33,0 +2020-05-11,Carroll,Virginia,51035,34,0 +2020-05-12,Carroll,Virginia,51035,34,0 +2020-05-13,Carroll,Virginia,51035,39,0 +2020-05-14,Carroll,Virginia,51035,40,0 +2020-05-15,Carroll,Virginia,51035,42,0 +2020-05-16,Carroll,Virginia,51035,45,0 +2020-05-17,Carroll,Virginia,51035,48,0 +2020-05-18,Carroll,Virginia,51035,49,0 +2020-05-19,Carroll,Virginia,51035,50,0 +2020-05-20,Carroll,Virginia,51035,64,1 +2020-05-21,Carroll,Virginia,51035,64,1 +2020-05-22,Carroll,Virginia,51035,66,1 +2020-05-23,Carroll,Virginia,51035,66,1 +2020-05-24,Carroll,Virginia,51035,74,1 +2020-05-25,Carroll,Virginia,51035,77,1 +2020-05-26,Carroll,Virginia,51035,84,1 +2020-05-27,Carroll,Virginia,51035,86,1 +2020-05-28,Carroll,Virginia,51035,88,1 +2020-05-29,Carroll,Virginia,51035,90,1 +2020-05-30,Carroll,Virginia,51035,91,1 +2020-05-31,Carroll,Virginia,51035,96,1 +2020-06-01,Carroll,Virginia,51035,97,1 +2020-06-02,Carroll,Virginia,51035,100,1 +2020-06-03,Carroll,Virginia,51035,105,1 +2020-06-04,Carroll,Virginia,51035,122,1 +2020-06-05,Carroll,Virginia,51035,122,1 +2020-06-06,Carroll,Virginia,51035,125,1 +2020-06-07,Carroll,Virginia,51035,130,2 +2020-06-08,Carroll,Virginia,51035,141,4 +2020-06-09,Carroll,Virginia,51035,149,5 +2020-06-10,Carroll,Virginia,51035,153,5 +2020-06-11,Carroll,Virginia,51035,158,5 +2020-06-12,Carroll,Virginia,51035,159,5 +2020-06-13,Carroll,Virginia,51035,165,5 +2020-06-14,Carroll,Virginia,51035,171,5 +2020-06-15,Carroll,Virginia,51035,173,5 +2020-06-16,Carroll,Virginia,51035,175,5 +2020-06-17,Carroll,Virginia,51035,177,5 +2020-06-18,Carroll,Virginia,51035,178,5 +2020-06-19,Carroll,Virginia,51035,187,5 +2020-06-20,Carroll,Virginia,51035,187,5 +2020-06-21,Carroll,Virginia,51035,188,5 +2020-06-22,Carroll,Virginia,51035,189,5 +2020-06-23,Carroll,Virginia,51035,193,5 +2020-06-24,Carroll,Virginia,51035,196,6 +2020-06-25,Carroll,Virginia,51035,200,6 +2020-06-26,Carroll,Virginia,51035,198,6 +2020-06-27,Carroll,Virginia,51035,203,8 +2020-06-28,Carroll,Virginia,51035,206,8 +2020-06-29,Carroll,Virginia,51035,209,8 +2020-06-30,Carroll,Virginia,51035,214,8 +2020-07-01,Carroll,Virginia,51035,221,8 +2020-07-02,Carroll,Virginia,51035,224,8 +2020-07-03,Carroll,Virginia,51035,225,9 +2020-07-04,Carroll,Virginia,51035,227,9 +2020-07-05,Carroll,Virginia,51035,232,9 +2020-07-06,Carroll,Virginia,51035,233,9 +2020-07-07,Carroll,Virginia,51035,235,9 +2020-07-08,Carroll,Virginia,51035,239,9 +2020-07-09,Carroll,Virginia,51035,241,9 +2020-03-18,Charles City,Virginia,51036,1,0 +2020-03-19,Charles City,Virginia,51036,1,0 +2020-03-20,Charles City,Virginia,51036,1,0 +2020-03-21,Charles City,Virginia,51036,1,0 +2020-03-22,Charles City,Virginia,51036,1,0 +2020-03-23,Charles City,Virginia,51036,1,0 +2020-03-24,Charles City,Virginia,51036,1,0 +2020-03-25,Charles City,Virginia,51036,1,0 +2020-03-26,Charles City,Virginia,51036,1,0 +2020-03-27,Charles City,Virginia,51036,1,0 +2020-03-28,Charles City,Virginia,51036,1,0 +2020-03-29,Charles City,Virginia,51036,1,0 +2020-03-30,Charles City,Virginia,51036,1,0 +2020-03-31,Charles City,Virginia,51036,1,0 +2020-04-01,Charles City,Virginia,51036,2,0 +2020-04-02,Charles City,Virginia,51036,4,0 +2020-04-03,Charles City,Virginia,51036,4,0 +2020-04-04,Charles City,Virginia,51036,4,0 +2020-04-05,Charles City,Virginia,51036,4,0 +2020-04-06,Charles City,Virginia,51036,4,0 +2020-04-07,Charles City,Virginia,51036,4,0 +2020-04-08,Charles City,Virginia,51036,5,0 +2020-04-09,Charles City,Virginia,51036,5,0 +2020-04-10,Charles City,Virginia,51036,7,0 +2020-04-11,Charles City,Virginia,51036,8,0 +2020-04-12,Charles City,Virginia,51036,9,0 +2020-04-13,Charles City,Virginia,51036,9,0 +2020-04-14,Charles City,Virginia,51036,9,0 +2020-04-15,Charles City,Virginia,51036,9,0 +2020-04-16,Charles City,Virginia,51036,9,0 +2020-04-17,Charles City,Virginia,51036,10,0 +2020-04-18,Charles City,Virginia,51036,11,0 +2020-04-19,Charles City,Virginia,51036,11,0 +2020-04-20,Charles City,Virginia,51036,11,0 +2020-04-21,Charles City,Virginia,51036,11,1 +2020-04-22,Charles City,Virginia,51036,11,1 +2020-04-23,Charles City,Virginia,51036,12,1 +2020-04-24,Charles City,Virginia,51036,12,1 +2020-04-25,Charles City,Virginia,51036,12,1 +2020-04-26,Charles City,Virginia,51036,13,1 +2020-04-27,Charles City,Virginia,51036,13,1 +2020-04-28,Charles City,Virginia,51036,13,1 +2020-04-29,Charles City,Virginia,51036,13,1 +2020-04-30,Charles City,Virginia,51036,13,1 +2020-05-01,Charles City,Virginia,51036,13,1 +2020-05-02,Charles City,Virginia,51036,13,1 +2020-05-03,Charles City,Virginia,51036,17,1 +2020-05-04,Charles City,Virginia,51036,17,1 +2020-05-05,Charles City,Virginia,51036,17,1 +2020-05-06,Charles City,Virginia,51036,17,1 +2020-05-07,Charles City,Virginia,51036,17,1 +2020-05-08,Charles City,Virginia,51036,19,1 +2020-05-09,Charles City,Virginia,51036,21,1 +2020-05-10,Charles City,Virginia,51036,21,1 +2020-05-11,Charles City,Virginia,51036,21,1 +2020-05-12,Charles City,Virginia,51036,21,1 +2020-05-13,Charles City,Virginia,51036,21,1 +2020-05-14,Charles City,Virginia,51036,21,1 +2020-05-15,Charles City,Virginia,51036,22,1 +2020-05-16,Charles City,Virginia,51036,22,1 +2020-05-17,Charles City,Virginia,51036,22,1 +2020-05-18,Charles City,Virginia,51036,23,1 +2020-05-19,Charles City,Virginia,51036,24,1 +2020-05-20,Charles City,Virginia,51036,24,1 +2020-05-21,Charles City,Virginia,51036,25,1 +2020-05-22,Charles City,Virginia,51036,25,1 +2020-05-23,Charles City,Virginia,51036,27,1 +2020-05-24,Charles City,Virginia,51036,27,1 +2020-05-25,Charles City,Virginia,51036,27,1 +2020-05-26,Charles City,Virginia,51036,27,1 +2020-05-27,Charles City,Virginia,51036,27,1 +2020-05-28,Charles City,Virginia,51036,27,1 +2020-05-29,Charles City,Virginia,51036,27,1 +2020-05-30,Charles City,Virginia,51036,27,1 +2020-05-31,Charles City,Virginia,51036,27,1 +2020-06-01,Charles City,Virginia,51036,27,1 +2020-06-02,Charles City,Virginia,51036,27,1 +2020-06-03,Charles City,Virginia,51036,27,2 +2020-06-04,Charles City,Virginia,51036,27,2 +2020-06-05,Charles City,Virginia,51036,27,2 +2020-06-06,Charles City,Virginia,51036,27,2 +2020-06-07,Charles City,Virginia,51036,28,2 +2020-06-08,Charles City,Virginia,51036,28,2 +2020-06-09,Charles City,Virginia,51036,28,2 +2020-06-10,Charles City,Virginia,51036,28,2 +2020-06-11,Charles City,Virginia,51036,28,2 +2020-06-12,Charles City,Virginia,51036,28,2 +2020-06-13,Charles City,Virginia,51036,29,2 +2020-06-14,Charles City,Virginia,51036,30,2 +2020-06-15,Charles City,Virginia,51036,32,3 +2020-06-16,Charles City,Virginia,51036,33,3 +2020-06-17,Charles City,Virginia,51036,34,3 +2020-06-18,Charles City,Virginia,51036,34,3 +2020-06-19,Charles City,Virginia,51036,35,2 +2020-06-20,Charles City,Virginia,51036,37,2 +2020-06-21,Charles City,Virginia,51036,37,2 +2020-06-22,Charles City,Virginia,51036,37,3 +2020-06-23,Charles City,Virginia,51036,37,3 +2020-06-24,Charles City,Virginia,51036,40,4 +2020-06-25,Charles City,Virginia,51036,39,3 +2020-06-26,Charles City,Virginia,51036,39,3 +2020-06-27,Charles City,Virginia,51036,39,3 +2020-06-28,Charles City,Virginia,51036,39,3 +2020-06-29,Charles City,Virginia,51036,40,3 +2020-06-30,Charles City,Virginia,51036,39,3 +2020-07-01,Charles City,Virginia,51036,39,3 +2020-07-02,Charles City,Virginia,51036,39,3 +2020-07-03,Charles City,Virginia,51036,41,3 +2020-07-04,Charles City,Virginia,51036,40,3 +2020-07-05,Charles City,Virginia,51036,41,3 +2020-07-06,Charles City,Virginia,51036,41,3 +2020-07-07,Charles City,Virginia,51036,41,3 +2020-07-08,Charles City,Virginia,51036,41,3 +2020-07-09,Charles City,Virginia,51036,41,3 +2020-04-04,Charlotte,Virginia,51037,1,0 +2020-04-05,Charlotte,Virginia,51037,1,0 +2020-04-06,Charlotte,Virginia,51037,1,0 +2020-04-07,Charlotte,Virginia,51037,1,0 +2020-04-08,Charlotte,Virginia,51037,1,0 +2020-04-09,Charlotte,Virginia,51037,1,0 +2020-04-10,Charlotte,Virginia,51037,2,0 +2020-04-11,Charlotte,Virginia,51037,2,0 +2020-04-12,Charlotte,Virginia,51037,4,0 +2020-04-13,Charlotte,Virginia,51037,4,0 +2020-04-14,Charlotte,Virginia,51037,4,0 +2020-04-15,Charlotte,Virginia,51037,5,0 +2020-04-16,Charlotte,Virginia,51037,8,0 +2020-04-17,Charlotte,Virginia,51037,8,0 +2020-04-18,Charlotte,Virginia,51037,8,0 +2020-04-19,Charlotte,Virginia,51037,8,0 +2020-04-20,Charlotte,Virginia,51037,8,0 +2020-04-21,Charlotte,Virginia,51037,8,0 +2020-04-22,Charlotte,Virginia,51037,8,0 +2020-04-23,Charlotte,Virginia,51037,8,0 +2020-04-24,Charlotte,Virginia,51037,8,0 +2020-04-25,Charlotte,Virginia,51037,7,0 +2020-04-26,Charlotte,Virginia,51037,7,0 +2020-04-27,Charlotte,Virginia,51037,7,0 +2020-04-28,Charlotte,Virginia,51037,7,0 +2020-04-29,Charlotte,Virginia,51037,7,0 +2020-04-30,Charlotte,Virginia,51037,7,0 +2020-05-01,Charlotte,Virginia,51037,8,0 +2020-05-02,Charlotte,Virginia,51037,9,0 +2020-05-03,Charlotte,Virginia,51037,9,0 +2020-05-04,Charlotte,Virginia,51037,10,0 +2020-05-05,Charlotte,Virginia,51037,11,0 +2020-05-06,Charlotte,Virginia,51037,11,0 +2020-05-07,Charlotte,Virginia,51037,11,0 +2020-05-08,Charlotte,Virginia,51037,11,0 +2020-05-09,Charlotte,Virginia,51037,12,0 +2020-05-10,Charlotte,Virginia,51037,11,0 +2020-05-11,Charlotte,Virginia,51037,11,0 +2020-05-12,Charlotte,Virginia,51037,11,0 +2020-05-13,Charlotte,Virginia,51037,11,0 +2020-05-14,Charlotte,Virginia,51037,11,0 +2020-05-15,Charlotte,Virginia,51037,11,0 +2020-05-16,Charlotte,Virginia,51037,11,0 +2020-05-17,Charlotte,Virginia,51037,11,0 +2020-05-18,Charlotte,Virginia,51037,14,0 +2020-05-19,Charlotte,Virginia,51037,14,0 +2020-05-20,Charlotte,Virginia,51037,15,0 +2020-05-21,Charlotte,Virginia,51037,16,0 +2020-05-22,Charlotte,Virginia,51037,19,0 +2020-05-23,Charlotte,Virginia,51037,19,0 +2020-05-24,Charlotte,Virginia,51037,19,0 +2020-05-25,Charlotte,Virginia,51037,19,0 +2020-05-26,Charlotte,Virginia,51037,23,0 +2020-05-27,Charlotte,Virginia,51037,23,0 +2020-05-28,Charlotte,Virginia,51037,23,0 +2020-05-29,Charlotte,Virginia,51037,23,0 +2020-05-30,Charlotte,Virginia,51037,23,0 +2020-05-31,Charlotte,Virginia,51037,23,0 +2020-06-01,Charlotte,Virginia,51037,24,0 +2020-06-02,Charlotte,Virginia,51037,25,0 +2020-06-03,Charlotte,Virginia,51037,27,0 +2020-06-04,Charlotte,Virginia,51037,28,0 +2020-06-05,Charlotte,Virginia,51037,28,0 +2020-06-06,Charlotte,Virginia,51037,28,0 +2020-06-07,Charlotte,Virginia,51037,28,0 +2020-06-08,Charlotte,Virginia,51037,28,0 +2020-06-09,Charlotte,Virginia,51037,29,0 +2020-06-10,Charlotte,Virginia,51037,29,0 +2020-06-11,Charlotte,Virginia,51037,29,0 +2020-06-12,Charlotte,Virginia,51037,30,0 +2020-06-13,Charlotte,Virginia,51037,30,0 +2020-06-14,Charlotte,Virginia,51037,30,0 +2020-06-15,Charlotte,Virginia,51037,30,0 +2020-06-16,Charlotte,Virginia,51037,30,0 +2020-06-17,Charlotte,Virginia,51037,30,0 +2020-06-18,Charlotte,Virginia,51037,30,0 +2020-06-19,Charlotte,Virginia,51037,30,0 +2020-06-20,Charlotte,Virginia,51037,31,0 +2020-06-21,Charlotte,Virginia,51037,31,0 +2020-06-22,Charlotte,Virginia,51037,31,0 +2020-06-23,Charlotte,Virginia,51037,31,0 +2020-06-24,Charlotte,Virginia,51037,31,0 +2020-06-25,Charlotte,Virginia,51037,30,0 +2020-06-26,Charlotte,Virginia,51037,30,0 +2020-06-27,Charlotte,Virginia,51037,30,0 +2020-06-28,Charlotte,Virginia,51037,30,0 +2020-06-29,Charlotte,Virginia,51037,31,0 +2020-06-30,Charlotte,Virginia,51037,31,0 +2020-07-01,Charlotte,Virginia,51037,32,0 +2020-07-02,Charlotte,Virginia,51037,32,0 +2020-07-03,Charlotte,Virginia,51037,33,0 +2020-07-04,Charlotte,Virginia,51037,33,0 +2020-07-05,Charlotte,Virginia,51037,33,0 +2020-07-06,Charlotte,Virginia,51037,33,0 +2020-07-07,Charlotte,Virginia,51037,33,0 +2020-07-08,Charlotte,Virginia,51037,33,0 +2020-07-09,Charlotte,Virginia,51037,33,0 +2020-03-14,Chesterfield,Virginia,51041,1,0 +2020-03-15,Chesterfield,Virginia,51041,1,0 +2020-03-16,Chesterfield,Virginia,51041,2,0 +2020-03-17,Chesterfield,Virginia,51041,4,0 +2020-03-18,Chesterfield,Virginia,51041,5,0 +2020-03-19,Chesterfield,Virginia,51041,6,0 +2020-03-20,Chesterfield,Virginia,51041,6,0 +2020-03-21,Chesterfield,Virginia,51041,7,0 +2020-03-22,Chesterfield,Virginia,51041,8,0 +2020-03-23,Chesterfield,Virginia,51041,9,0 +2020-03-24,Chesterfield,Virginia,51041,10,0 +2020-03-25,Chesterfield,Virginia,51041,11,0 +2020-03-26,Chesterfield,Virginia,51041,12,0 +2020-03-27,Chesterfield,Virginia,51041,12,0 +2020-03-28,Chesterfield,Virginia,51041,12,0 +2020-03-29,Chesterfield,Virginia,51041,13,0 +2020-03-30,Chesterfield,Virginia,51041,21,0 +2020-03-31,Chesterfield,Virginia,51041,43,0 +2020-04-01,Chesterfield,Virginia,51041,59,0 +2020-04-02,Chesterfield,Virginia,51041,73,0 +2020-04-03,Chesterfield,Virginia,51041,89,0 +2020-04-04,Chesterfield,Virginia,51041,106,0 +2020-04-05,Chesterfield,Virginia,51041,108,0 +2020-04-06,Chesterfield,Virginia,51041,108,0 +2020-04-07,Chesterfield,Virginia,51041,128,0 +2020-04-08,Chesterfield,Virginia,51041,145,0 +2020-04-09,Chesterfield,Virginia,51041,158,0 +2020-04-10,Chesterfield,Virginia,51041,179,0 +2020-04-11,Chesterfield,Virginia,51041,203,0 +2020-04-12,Chesterfield,Virginia,51041,209,0 +2020-04-13,Chesterfield,Virginia,51041,211,5 +2020-04-14,Chesterfield,Virginia,51041,241,5 +2020-04-15,Chesterfield,Virginia,51041,254,5 +2020-04-16,Chesterfield,Virginia,51041,267,5 +2020-04-17,Chesterfield,Virginia,51041,291,5 +2020-04-18,Chesterfield,Virginia,51041,310,5 +2020-04-19,Chesterfield,Virginia,51041,311,5 +2020-04-20,Chesterfield,Virginia,51041,331,5 +2020-04-21,Chesterfield,Virginia,51041,346,7 +2020-04-22,Chesterfield,Virginia,51041,356,7 +2020-04-23,Chesterfield,Virginia,51041,402,7 +2020-04-24,Chesterfield,Virginia,51041,423,17 +2020-04-25,Chesterfield,Virginia,51041,440,18 +2020-04-26,Chesterfield,Virginia,51041,457,18 +2020-04-27,Chesterfield,Virginia,51041,457,18 +2020-04-28,Chesterfield,Virginia,51041,488,19 +2020-04-29,Chesterfield,Virginia,51041,501,19 +2020-04-30,Chesterfield,Virginia,51041,531,20 +2020-05-01,Chesterfield,Virginia,51041,557,24 +2020-05-02,Chesterfield,Virginia,51041,593,24 +2020-05-03,Chesterfield,Virginia,51041,601,24 +2020-05-04,Chesterfield,Virginia,51041,601,24 +2020-05-05,Chesterfield,Virginia,51041,646,25 +2020-05-06,Chesterfield,Virginia,51041,646,25 +2020-05-07,Chesterfield,Virginia,51041,707,26 +2020-05-08,Chesterfield,Virginia,51041,741,26 +2020-05-09,Chesterfield,Virginia,51041,765,26 +2020-05-10,Chesterfield,Virginia,51041,787,26 +2020-05-11,Chesterfield,Virginia,51041,789,26 +2020-05-12,Chesterfield,Virginia,51041,837,28 +2020-05-13,Chesterfield,Virginia,51041,862,29 +2020-05-14,Chesterfield,Virginia,51041,909,29 +2020-05-15,Chesterfield,Virginia,51041,946,29 +2020-05-16,Chesterfield,Virginia,51041,978,29 +2020-05-17,Chesterfield,Virginia,51041,988,29 +2020-05-18,Chesterfield,Virginia,51041,1002,29 +2020-05-19,Chesterfield,Virginia,51041,1043,29 +2020-05-20,Chesterfield,Virginia,51041,1100,29 +2020-05-21,Chesterfield,Virginia,51041,1132,29 +2020-05-22,Chesterfield,Virginia,51041,1152,29 +2020-05-23,Chesterfield,Virginia,51041,1193,29 +2020-05-24,Chesterfield,Virginia,51041,1193,29 +2020-05-25,Chesterfield,Virginia,51041,1200,30 +2020-05-26,Chesterfield,Virginia,51041,1213,32 +2020-05-27,Chesterfield,Virginia,51041,1263,32 +2020-05-28,Chesterfield,Virginia,51041,1331,36 +2020-05-29,Chesterfield,Virginia,51041,1400,35 +2020-05-30,Chesterfield,Virginia,51041,1461,35 +2020-05-31,Chesterfield,Virginia,51041,1548,35 +2020-06-01,Chesterfield,Virginia,51041,1568,35 +2020-06-02,Chesterfield,Virginia,51041,1627,37 +2020-06-03,Chesterfield,Virginia,51041,1661,37 +2020-06-04,Chesterfield,Virginia,51041,1721,37 +2020-06-05,Chesterfield,Virginia,51041,1761,37 +2020-06-06,Chesterfield,Virginia,51041,1797,37 +2020-06-07,Chesterfield,Virginia,51041,1831,37 +2020-06-08,Chesterfield,Virginia,51041,1866,37 +2020-06-09,Chesterfield,Virginia,51041,1942,37 +2020-06-10,Chesterfield,Virginia,51041,1995,38 +2020-06-11,Chesterfield,Virginia,51041,2041,38 +2020-06-12,Chesterfield,Virginia,51041,2109,38 +2020-06-13,Chesterfield,Virginia,51041,2150,39 +2020-06-14,Chesterfield,Virginia,51041,2181,39 +2020-06-15,Chesterfield,Virginia,51041,2194,39 +2020-06-16,Chesterfield,Virginia,51041,2259,39 +2020-06-17,Chesterfield,Virginia,51041,2316,40 +2020-06-18,Chesterfield,Virginia,51041,2375,40 +2020-06-19,Chesterfield,Virginia,51041,2456,46 +2020-06-20,Chesterfield,Virginia,51041,2541,46 +2020-06-21,Chesterfield,Virginia,51041,2557,46 +2020-06-22,Chesterfield,Virginia,51041,2577,46 +2020-06-23,Chesterfield,Virginia,51041,2651,49 +2020-06-24,Chesterfield,Virginia,51041,2710,49 +2020-06-25,Chesterfield,Virginia,51041,2735,49 +2020-06-26,Chesterfield,Virginia,51041,2784,49 +2020-06-27,Chesterfield,Virginia,51041,2842,49 +2020-06-28,Chesterfield,Virginia,51041,2856,49 +2020-06-29,Chesterfield,Virginia,51041,2869,49 +2020-06-30,Chesterfield,Virginia,51041,2897,50 +2020-07-01,Chesterfield,Virginia,51041,2914,53 +2020-07-02,Chesterfield,Virginia,51041,2939,53 +2020-07-03,Chesterfield,Virginia,51041,2974,53 +2020-07-04,Chesterfield,Virginia,51041,2972,53 +2020-07-05,Chesterfield,Virginia,51041,3015,53 +2020-07-06,Chesterfield,Virginia,51041,3026,53 +2020-07-07,Chesterfield,Virginia,51041,3059,56 +2020-07-08,Chesterfield,Virginia,51041,3078,59 +2020-07-09,Chesterfield,Virginia,51041,3108,61 +2020-03-31,Clarke,Virginia,51043,1,0 +2020-04-01,Clarke,Virginia,51043,1,0 +2020-04-02,Clarke,Virginia,51043,1,0 +2020-04-03,Clarke,Virginia,51043,2,0 +2020-04-04,Clarke,Virginia,51043,2,0 +2020-04-05,Clarke,Virginia,51043,2,0 +2020-04-06,Clarke,Virginia,51043,2,0 +2020-04-07,Clarke,Virginia,51043,2,0 +2020-04-08,Clarke,Virginia,51043,3,0 +2020-04-09,Clarke,Virginia,51043,3,0 +2020-04-10,Clarke,Virginia,51043,3,0 +2020-04-11,Clarke,Virginia,51043,3,0 +2020-04-12,Clarke,Virginia,51043,3,0 +2020-04-13,Clarke,Virginia,51043,3,0 +2020-04-14,Clarke,Virginia,51043,5,0 +2020-04-15,Clarke,Virginia,51043,6,0 +2020-04-16,Clarke,Virginia,51043,6,0 +2020-04-17,Clarke,Virginia,51043,6,0 +2020-04-18,Clarke,Virginia,51043,6,0 +2020-04-19,Clarke,Virginia,51043,6,0 +2020-04-20,Clarke,Virginia,51043,6,0 +2020-04-21,Clarke,Virginia,51043,6,0 +2020-04-22,Clarke,Virginia,51043,6,0 +2020-04-23,Clarke,Virginia,51043,7,0 +2020-04-24,Clarke,Virginia,51043,7,0 +2020-04-25,Clarke,Virginia,51043,7,0 +2020-04-26,Clarke,Virginia,51043,7,0 +2020-04-27,Clarke,Virginia,51043,7,0 +2020-04-28,Clarke,Virginia,51043,7,0 +2020-04-29,Clarke,Virginia,51043,8,0 +2020-04-30,Clarke,Virginia,51043,8,0 +2020-05-01,Clarke,Virginia,51043,9,0 +2020-05-02,Clarke,Virginia,51043,10,0 +2020-05-03,Clarke,Virginia,51043,10,0 +2020-05-04,Clarke,Virginia,51043,10,0 +2020-05-05,Clarke,Virginia,51043,12,0 +2020-05-06,Clarke,Virginia,51043,12,0 +2020-05-07,Clarke,Virginia,51043,16,0 +2020-05-08,Clarke,Virginia,51043,16,0 +2020-05-09,Clarke,Virginia,51043,16,0 +2020-05-10,Clarke,Virginia,51043,16,0 +2020-05-11,Clarke,Virginia,51043,16,0 +2020-05-12,Clarke,Virginia,51043,16,0 +2020-05-13,Clarke,Virginia,51043,16,0 +2020-05-14,Clarke,Virginia,51043,16,0 +2020-05-15,Clarke,Virginia,51043,17,0 +2020-05-16,Clarke,Virginia,51043,19,0 +2020-05-17,Clarke,Virginia,51043,19,0 +2020-05-18,Clarke,Virginia,51043,18,0 +2020-05-19,Clarke,Virginia,51043,19,0 +2020-05-20,Clarke,Virginia,51043,19,0 +2020-05-21,Clarke,Virginia,51043,19,0 +2020-05-22,Clarke,Virginia,51043,21,0 +2020-05-23,Clarke,Virginia,51043,21,0 +2020-05-24,Clarke,Virginia,51043,21,0 +2020-05-25,Clarke,Virginia,51043,22,0 +2020-05-26,Clarke,Virginia,51043,22,0 +2020-05-27,Clarke,Virginia,51043,23,0 +2020-05-28,Clarke,Virginia,51043,24,0 +2020-05-29,Clarke,Virginia,51043,25,0 +2020-05-30,Clarke,Virginia,51043,25,0 +2020-05-31,Clarke,Virginia,51043,27,0 +2020-06-01,Clarke,Virginia,51043,28,0 +2020-06-02,Clarke,Virginia,51043,28,0 +2020-06-03,Clarke,Virginia,51043,29,0 +2020-06-04,Clarke,Virginia,51043,31,0 +2020-06-05,Clarke,Virginia,51043,31,0 +2020-06-06,Clarke,Virginia,51043,31,0 +2020-06-07,Clarke,Virginia,51043,33,0 +2020-06-08,Clarke,Virginia,51043,35,0 +2020-06-09,Clarke,Virginia,51043,35,0 +2020-06-10,Clarke,Virginia,51043,35,0 +2020-06-11,Clarke,Virginia,51043,36,0 +2020-06-12,Clarke,Virginia,51043,37,0 +2020-06-13,Clarke,Virginia,51043,37,0 +2020-06-14,Clarke,Virginia,51043,38,0 +2020-06-15,Clarke,Virginia,51043,38,0 +2020-06-16,Clarke,Virginia,51043,40,0 +2020-06-17,Clarke,Virginia,51043,40,0 +2020-06-18,Clarke,Virginia,51043,43,0 +2020-06-19,Clarke,Virginia,51043,44,0 +2020-06-20,Clarke,Virginia,51043,44,0 +2020-06-21,Clarke,Virginia,51043,45,0 +2020-06-22,Clarke,Virginia,51043,46,0 +2020-06-23,Clarke,Virginia,51043,48,0 +2020-06-24,Clarke,Virginia,51043,48,0 +2020-06-25,Clarke,Virginia,51043,47,0 +2020-06-26,Clarke,Virginia,51043,48,0 +2020-06-27,Clarke,Virginia,51043,49,0 +2020-06-28,Clarke,Virginia,51043,49,0 +2020-06-29,Clarke,Virginia,51043,49,0 +2020-06-30,Clarke,Virginia,51043,49,0 +2020-07-01,Clarke,Virginia,51043,51,0 +2020-07-02,Clarke,Virginia,51043,54,0 +2020-07-03,Clarke,Virginia,51043,54,0 +2020-07-04,Clarke,Virginia,51043,55,0 +2020-07-05,Clarke,Virginia,51043,56,0 +2020-07-06,Clarke,Virginia,51043,57,0 +2020-07-07,Clarke,Virginia,51043,58,0 +2020-07-08,Clarke,Virginia,51043,59,0 +2020-07-09,Clarke,Virginia,51043,58,0 +2020-04-07,Craig,Virginia,51045,2,0 +2020-04-08,Craig,Virginia,51045,2,0 +2020-04-09,Craig,Virginia,51045,2,0 +2020-04-10,Craig,Virginia,51045,2,0 +2020-04-11,Craig,Virginia,51045,2,0 +2020-04-12,Craig,Virginia,51045,2,0 +2020-04-13,Craig,Virginia,51045,2,0 +2020-04-14,Craig,Virginia,51045,2,0 +2020-04-15,Craig,Virginia,51045,2,0 +2020-04-16,Craig,Virginia,51045,2,0 +2020-04-17,Craig,Virginia,51045,2,0 +2020-04-18,Craig,Virginia,51045,2,0 +2020-04-19,Craig,Virginia,51045,2,0 +2020-04-20,Craig,Virginia,51045,2,0 +2020-04-21,Craig,Virginia,51045,2,0 +2020-04-22,Craig,Virginia,51045,2,0 +2020-04-23,Craig,Virginia,51045,2,0 +2020-04-24,Craig,Virginia,51045,2,0 +2020-04-25,Craig,Virginia,51045,2,0 +2020-04-26,Craig,Virginia,51045,2,0 +2020-04-27,Craig,Virginia,51045,2,0 +2020-04-28,Craig,Virginia,51045,2,0 +2020-04-29,Craig,Virginia,51045,2,0 +2020-04-30,Craig,Virginia,51045,3,0 +2020-05-01,Craig,Virginia,51045,3,0 +2020-05-02,Craig,Virginia,51045,3,0 +2020-05-03,Craig,Virginia,51045,3,0 +2020-05-04,Craig,Virginia,51045,3,0 +2020-05-05,Craig,Virginia,51045,4,0 +2020-05-06,Craig,Virginia,51045,4,0 +2020-05-07,Craig,Virginia,51045,4,0 +2020-05-08,Craig,Virginia,51045,4,0 +2020-05-09,Craig,Virginia,51045,4,0 +2020-05-10,Craig,Virginia,51045,4,0 +2020-05-11,Craig,Virginia,51045,4,0 +2020-05-12,Craig,Virginia,51045,4,0 +2020-05-13,Craig,Virginia,51045,4,0 +2020-05-14,Craig,Virginia,51045,4,0 +2020-05-15,Craig,Virginia,51045,4,0 +2020-05-16,Craig,Virginia,51045,4,0 +2020-05-17,Craig,Virginia,51045,4,0 +2020-05-18,Craig,Virginia,51045,4,0 +2020-05-19,Craig,Virginia,51045,4,0 +2020-05-20,Craig,Virginia,51045,4,0 +2020-05-21,Craig,Virginia,51045,5,0 +2020-05-22,Craig,Virginia,51045,5,0 +2020-05-23,Craig,Virginia,51045,5,0 +2020-05-24,Craig,Virginia,51045,5,0 +2020-05-25,Craig,Virginia,51045,5,0 +2020-05-26,Craig,Virginia,51045,5,0 +2020-05-27,Craig,Virginia,51045,5,0 +2020-05-28,Craig,Virginia,51045,5,0 +2020-05-29,Craig,Virginia,51045,5,0 +2020-05-30,Craig,Virginia,51045,5,0 +2020-05-31,Craig,Virginia,51045,5,0 +2020-06-01,Craig,Virginia,51045,5,0 +2020-06-02,Craig,Virginia,51045,5,0 +2020-06-03,Craig,Virginia,51045,5,0 +2020-06-04,Craig,Virginia,51045,5,0 +2020-06-05,Craig,Virginia,51045,5,0 +2020-06-06,Craig,Virginia,51045,6,0 +2020-06-07,Craig,Virginia,51045,6,0 +2020-06-08,Craig,Virginia,51045,6,0 +2020-06-09,Craig,Virginia,51045,6,0 +2020-06-10,Craig,Virginia,51045,6,0 +2020-06-11,Craig,Virginia,51045,6,0 +2020-06-12,Craig,Virginia,51045,6,0 +2020-06-13,Craig,Virginia,51045,6,0 +2020-06-14,Craig,Virginia,51045,6,0 +2020-06-15,Craig,Virginia,51045,6,0 +2020-06-16,Craig,Virginia,51045,6,0 +2020-06-17,Craig,Virginia,51045,6,0 +2020-06-18,Craig,Virginia,51045,6,0 +2020-06-19,Craig,Virginia,51045,6,0 +2020-06-20,Craig,Virginia,51045,6,0 +2020-06-21,Craig,Virginia,51045,6,0 +2020-06-22,Craig,Virginia,51045,6,0 +2020-06-23,Craig,Virginia,51045,6,0 +2020-06-24,Craig,Virginia,51045,6,0 +2020-06-25,Craig,Virginia,51045,6,0 +2020-06-26,Craig,Virginia,51045,6,0 +2020-06-27,Craig,Virginia,51045,6,0 +2020-06-28,Craig,Virginia,51045,6,0 +2020-06-29,Craig,Virginia,51045,7,0 +2020-06-30,Craig,Virginia,51045,7,0 +2020-07-01,Craig,Virginia,51045,7,0 +2020-07-02,Craig,Virginia,51045,7,0 +2020-07-03,Craig,Virginia,51045,7,0 +2020-07-04,Craig,Virginia,51045,8,0 +2020-07-05,Craig,Virginia,51045,8,0 +2020-07-06,Craig,Virginia,51045,8,0 +2020-07-07,Craig,Virginia,51045,9,0 +2020-07-08,Craig,Virginia,51045,9,0 +2020-07-09,Craig,Virginia,51045,9,0 +2020-03-22,Culpeper,Virginia,51047,2,0 +2020-03-23,Culpeper,Virginia,51047,2,0 +2020-03-24,Culpeper,Virginia,51047,2,0 +2020-03-25,Culpeper,Virginia,51047,2,0 +2020-03-26,Culpeper,Virginia,51047,2,0 +2020-03-27,Culpeper,Virginia,51047,2,0 +2020-03-28,Culpeper,Virginia,51047,2,0 +2020-03-29,Culpeper,Virginia,51047,2,0 +2020-03-30,Culpeper,Virginia,51047,3,0 +2020-03-31,Culpeper,Virginia,51047,3,0 +2020-04-01,Culpeper,Virginia,51047,5,0 +2020-04-02,Culpeper,Virginia,51047,6,0 +2020-04-03,Culpeper,Virginia,51047,7,0 +2020-04-04,Culpeper,Virginia,51047,8,0 +2020-04-05,Culpeper,Virginia,51047,8,0 +2020-04-06,Culpeper,Virginia,51047,8,0 +2020-04-07,Culpeper,Virginia,51047,9,0 +2020-04-08,Culpeper,Virginia,51047,10,0 +2020-04-09,Culpeper,Virginia,51047,13,0 +2020-04-10,Culpeper,Virginia,51047,14,0 +2020-04-11,Culpeper,Virginia,51047,17,0 +2020-04-12,Culpeper,Virginia,51047,19,0 +2020-04-13,Culpeper,Virginia,51047,20,0 +2020-04-14,Culpeper,Virginia,51047,24,0 +2020-04-15,Culpeper,Virginia,51047,25,0 +2020-04-16,Culpeper,Virginia,51047,29,0 +2020-04-17,Culpeper,Virginia,51047,32,0 +2020-04-18,Culpeper,Virginia,51047,39,0 +2020-04-19,Culpeper,Virginia,51047,43,0 +2020-04-20,Culpeper,Virginia,51047,51,0 +2020-04-21,Culpeper,Virginia,51047,65,1 +2020-04-22,Culpeper,Virginia,51047,73,1 +2020-04-23,Culpeper,Virginia,51047,84,1 +2020-04-24,Culpeper,Virginia,51047,90,1 +2020-04-25,Culpeper,Virginia,51047,95,1 +2020-04-26,Culpeper,Virginia,51047,103,1 +2020-04-27,Culpeper,Virginia,51047,113,2 +2020-04-28,Culpeper,Virginia,51047,126,2 +2020-04-29,Culpeper,Virginia,51047,129,3 +2020-04-30,Culpeper,Virginia,51047,141,3 +2020-05-01,Culpeper,Virginia,51047,162,3 +2020-05-02,Culpeper,Virginia,51047,177,3 +2020-05-03,Culpeper,Virginia,51047,191,3 +2020-05-04,Culpeper,Virginia,51047,196,3 +2020-05-05,Culpeper,Virginia,51047,201,3 +2020-05-06,Culpeper,Virginia,51047,201,3 +2020-05-07,Culpeper,Virginia,51047,217,4 +2020-05-08,Culpeper,Virginia,51047,239,4 +2020-05-09,Culpeper,Virginia,51047,253,5 +2020-05-10,Culpeper,Virginia,51047,264,5 +2020-05-11,Culpeper,Virginia,51047,276,5 +2020-05-12,Culpeper,Virginia,51047,291,5 +2020-05-13,Culpeper,Virginia,51047,320,5 +2020-05-14,Culpeper,Virginia,51047,329,5 +2020-05-15,Culpeper,Virginia,51047,343,5 +2020-05-16,Culpeper,Virginia,51047,365,5 +2020-05-17,Culpeper,Virginia,51047,374,5 +2020-05-18,Culpeper,Virginia,51047,388,5 +2020-05-19,Culpeper,Virginia,51047,452,5 +2020-05-20,Culpeper,Virginia,51047,494,5 +2020-05-21,Culpeper,Virginia,51047,526,5 +2020-05-22,Culpeper,Virginia,51047,555,5 +2020-05-23,Culpeper,Virginia,51047,574,5 +2020-05-24,Culpeper,Virginia,51047,594,5 +2020-05-25,Culpeper,Virginia,51047,614,5 +2020-05-26,Culpeper,Virginia,51047,638,6 +2020-05-27,Culpeper,Virginia,51047,645,5 +2020-05-28,Culpeper,Virginia,51047,656,5 +2020-05-29,Culpeper,Virginia,51047,666,6 +2020-05-30,Culpeper,Virginia,51047,674,6 +2020-05-31,Culpeper,Virginia,51047,691,6 +2020-06-01,Culpeper,Virginia,51047,713,6 +2020-06-02,Culpeper,Virginia,51047,720,8 +2020-06-03,Culpeper,Virginia,51047,727,8 +2020-06-04,Culpeper,Virginia,51047,732,8 +2020-06-05,Culpeper,Virginia,51047,740,8 +2020-06-06,Culpeper,Virginia,51047,745,8 +2020-06-07,Culpeper,Virginia,51047,764,8 +2020-06-08,Culpeper,Virginia,51047,767,8 +2020-06-09,Culpeper,Virginia,51047,772,8 +2020-06-10,Culpeper,Virginia,51047,773,9 +2020-06-11,Culpeper,Virginia,51047,774,9 +2020-06-12,Culpeper,Virginia,51047,774,9 +2020-06-13,Culpeper,Virginia,51047,777,9 +2020-06-14,Culpeper,Virginia,51047,780,9 +2020-06-15,Culpeper,Virginia,51047,783,9 +2020-06-16,Culpeper,Virginia,51047,787,9 +2020-06-17,Culpeper,Virginia,51047,790,9 +2020-06-18,Culpeper,Virginia,51047,790,9 +2020-06-19,Culpeper,Virginia,51047,792,9 +2020-06-20,Culpeper,Virginia,51047,794,9 +2020-06-21,Culpeper,Virginia,51047,795,9 +2020-06-22,Culpeper,Virginia,51047,795,9 +2020-06-23,Culpeper,Virginia,51047,802,9 +2020-06-24,Culpeper,Virginia,51047,803,9 +2020-06-25,Culpeper,Virginia,51047,803,9 +2020-06-26,Culpeper,Virginia,51047,806,9 +2020-06-27,Culpeper,Virginia,51047,807,10 +2020-06-28,Culpeper,Virginia,51047,808,10 +2020-06-29,Culpeper,Virginia,51047,808,10 +2020-06-30,Culpeper,Virginia,51047,808,10 +2020-07-01,Culpeper,Virginia,51047,811,10 +2020-07-02,Culpeper,Virginia,51047,812,11 +2020-07-03,Culpeper,Virginia,51047,814,11 +2020-07-04,Culpeper,Virginia,51047,817,11 +2020-07-05,Culpeper,Virginia,51047,822,11 +2020-07-06,Culpeper,Virginia,51047,823,11 +2020-07-07,Culpeper,Virginia,51047,829,11 +2020-07-08,Culpeper,Virginia,51047,831,11 +2020-07-09,Culpeper,Virginia,51047,837,12 +2020-04-02,Cumberland,Virginia,51049,1,0 +2020-04-03,Cumberland,Virginia,51049,1,0 +2020-04-04,Cumberland,Virginia,51049,2,0 +2020-04-05,Cumberland,Virginia,51049,2,0 +2020-04-06,Cumberland,Virginia,51049,2,0 +2020-04-07,Cumberland,Virginia,51049,6,0 +2020-04-08,Cumberland,Virginia,51049,6,0 +2020-04-09,Cumberland,Virginia,51049,6,0 +2020-04-10,Cumberland,Virginia,51049,8,0 +2020-04-11,Cumberland,Virginia,51049,8,0 +2020-04-12,Cumberland,Virginia,51049,8,0 +2020-04-13,Cumberland,Virginia,51049,8,0 +2020-04-14,Cumberland,Virginia,51049,8,0 +2020-04-15,Cumberland,Virginia,51049,8,0 +2020-04-16,Cumberland,Virginia,51049,7,0 +2020-04-17,Cumberland,Virginia,51049,8,0 +2020-04-18,Cumberland,Virginia,51049,10,0 +2020-04-19,Cumberland,Virginia,51049,10,0 +2020-04-20,Cumberland,Virginia,51049,10,0 +2020-04-21,Cumberland,Virginia,51049,10,0 +2020-04-22,Cumberland,Virginia,51049,10,0 +2020-04-23,Cumberland,Virginia,51049,10,0 +2020-04-24,Cumberland,Virginia,51049,10,0 +2020-04-25,Cumberland,Virginia,51049,10,0 +2020-04-26,Cumberland,Virginia,51049,10,0 +2020-04-27,Cumberland,Virginia,51049,10,0 +2020-04-28,Cumberland,Virginia,51049,11,0 +2020-04-29,Cumberland,Virginia,51049,11,0 +2020-04-30,Cumberland,Virginia,51049,13,0 +2020-05-01,Cumberland,Virginia,51049,13,0 +2020-05-02,Cumberland,Virginia,51049,12,0 +2020-05-03,Cumberland,Virginia,51049,12,0 +2020-05-04,Cumberland,Virginia,51049,12,0 +2020-05-05,Cumberland,Virginia,51049,12,0 +2020-05-06,Cumberland,Virginia,51049,12,0 +2020-05-07,Cumberland,Virginia,51049,12,0 +2020-05-08,Cumberland,Virginia,51049,13,0 +2020-05-09,Cumberland,Virginia,51049,13,0 +2020-05-10,Cumberland,Virginia,51049,13,0 +2020-05-11,Cumberland,Virginia,51049,13,0 +2020-05-12,Cumberland,Virginia,51049,16,0 +2020-05-13,Cumberland,Virginia,51049,18,0 +2020-05-14,Cumberland,Virginia,51049,18,0 +2020-05-15,Cumberland,Virginia,51049,18,0 +2020-05-16,Cumberland,Virginia,51049,23,0 +2020-05-17,Cumberland,Virginia,51049,23,0 +2020-05-18,Cumberland,Virginia,51049,23,0 +2020-05-19,Cumberland,Virginia,51049,25,0 +2020-05-20,Cumberland,Virginia,51049,25,0 +2020-05-21,Cumberland,Virginia,51049,25,0 +2020-05-22,Cumberland,Virginia,51049,25,0 +2020-05-23,Cumberland,Virginia,51049,26,0 +2020-05-24,Cumberland,Virginia,51049,26,0 +2020-05-25,Cumberland,Virginia,51049,27,0 +2020-05-26,Cumberland,Virginia,51049,31,0 +2020-05-27,Cumberland,Virginia,51049,32,0 +2020-05-28,Cumberland,Virginia,51049,32,0 +2020-05-29,Cumberland,Virginia,51049,35,0 +2020-05-30,Cumberland,Virginia,51049,37,0 +2020-05-31,Cumberland,Virginia,51049,37,0 +2020-06-01,Cumberland,Virginia,51049,38,0 +2020-06-02,Cumberland,Virginia,51049,38,0 +2020-06-03,Cumberland,Virginia,51049,39,0 +2020-06-04,Cumberland,Virginia,51049,39,0 +2020-06-05,Cumberland,Virginia,51049,41,0 +2020-06-06,Cumberland,Virginia,51049,41,0 +2020-06-07,Cumberland,Virginia,51049,41,0 +2020-06-08,Cumberland,Virginia,51049,45,0 +2020-06-09,Cumberland,Virginia,51049,45,0 +2020-06-10,Cumberland,Virginia,51049,45,0 +2020-06-11,Cumberland,Virginia,51049,46,0 +2020-06-12,Cumberland,Virginia,51049,46,0 +2020-06-13,Cumberland,Virginia,51049,47,0 +2020-06-14,Cumberland,Virginia,51049,47,0 +2020-06-15,Cumberland,Virginia,51049,49,0 +2020-06-16,Cumberland,Virginia,51049,50,0 +2020-06-17,Cumberland,Virginia,51049,50,0 +2020-06-18,Cumberland,Virginia,51049,50,0 +2020-06-19,Cumberland,Virginia,51049,50,0 +2020-06-20,Cumberland,Virginia,51049,50,0 +2020-06-21,Cumberland,Virginia,51049,50,0 +2020-06-22,Cumberland,Virginia,51049,51,0 +2020-06-23,Cumberland,Virginia,51049,51,0 +2020-06-24,Cumberland,Virginia,51049,51,0 +2020-06-25,Cumberland,Virginia,51049,51,0 +2020-06-26,Cumberland,Virginia,51049,51,0 +2020-06-27,Cumberland,Virginia,51049,50,0 +2020-06-28,Cumberland,Virginia,51049,50,0 +2020-06-29,Cumberland,Virginia,51049,50,0 +2020-06-30,Cumberland,Virginia,51049,51,0 +2020-07-01,Cumberland,Virginia,51049,52,0 +2020-07-02,Cumberland,Virginia,51049,52,0 +2020-07-03,Cumberland,Virginia,51049,57,0 +2020-07-04,Cumberland,Virginia,51049,57,0 +2020-07-05,Cumberland,Virginia,51049,57,0 +2020-07-06,Cumberland,Virginia,51049,57,0 +2020-07-07,Cumberland,Virginia,51049,58,0 +2020-07-08,Cumberland,Virginia,51049,59,0 +2020-07-09,Cumberland,Virginia,51049,59,0 +2020-06-16,Dickenson,Virginia,51051,1,0 +2020-06-17,Dickenson,Virginia,51051,1,0 +2020-06-18,Dickenson,Virginia,51051,1,0 +2020-06-19,Dickenson,Virginia,51051,1,0 +2020-06-20,Dickenson,Virginia,51051,1,0 +2020-06-21,Dickenson,Virginia,51051,1,0 +2020-06-22,Dickenson,Virginia,51051,1,0 +2020-06-23,Dickenson,Virginia,51051,1,0 +2020-06-24,Dickenson,Virginia,51051,1,0 +2020-06-25,Dickenson,Virginia,51051,1,0 +2020-06-26,Dickenson,Virginia,51051,1,0 +2020-06-27,Dickenson,Virginia,51051,3,0 +2020-06-28,Dickenson,Virginia,51051,3,0 +2020-06-29,Dickenson,Virginia,51051,4,0 +2020-06-30,Dickenson,Virginia,51051,4,0 +2020-07-01,Dickenson,Virginia,51051,4,0 +2020-07-02,Dickenson,Virginia,51051,5,0 +2020-07-03,Dickenson,Virginia,51051,5,0 +2020-07-04,Dickenson,Virginia,51051,5,0 +2020-07-05,Dickenson,Virginia,51051,5,0 +2020-07-06,Dickenson,Virginia,51051,5,0 +2020-07-07,Dickenson,Virginia,51051,5,0 +2020-07-08,Dickenson,Virginia,51051,5,0 +2020-07-09,Dickenson,Virginia,51051,5,0 +2020-04-07,Dinwiddie,Virginia,51053,1,0 +2020-04-08,Dinwiddie,Virginia,51053,2,0 +2020-04-09,Dinwiddie,Virginia,51053,2,0 +2020-04-10,Dinwiddie,Virginia,51053,3,0 +2020-04-11,Dinwiddie,Virginia,51053,6,0 +2020-04-12,Dinwiddie,Virginia,51053,6,0 +2020-04-13,Dinwiddie,Virginia,51053,6,0 +2020-04-14,Dinwiddie,Virginia,51053,7,0 +2020-04-15,Dinwiddie,Virginia,51053,7,0 +2020-04-16,Dinwiddie,Virginia,51053,7,0 +2020-04-17,Dinwiddie,Virginia,51053,7,0 +2020-04-18,Dinwiddie,Virginia,51053,7,0 +2020-04-19,Dinwiddie,Virginia,51053,7,0 +2020-04-20,Dinwiddie,Virginia,51053,8,0 +2020-04-21,Dinwiddie,Virginia,51053,8,0 +2020-04-22,Dinwiddie,Virginia,51053,8,0 +2020-04-23,Dinwiddie,Virginia,51053,12,0 +2020-04-24,Dinwiddie,Virginia,51053,12,0 +2020-04-25,Dinwiddie,Virginia,51053,12,0 +2020-04-26,Dinwiddie,Virginia,51053,14,0 +2020-04-27,Dinwiddie,Virginia,51053,15,0 +2020-04-28,Dinwiddie,Virginia,51053,15,0 +2020-04-29,Dinwiddie,Virginia,51053,15,0 +2020-04-30,Dinwiddie,Virginia,51053,16,0 +2020-05-01,Dinwiddie,Virginia,51053,16,0 +2020-05-02,Dinwiddie,Virginia,51053,18,0 +2020-05-03,Dinwiddie,Virginia,51053,18,0 +2020-05-04,Dinwiddie,Virginia,51053,23,0 +2020-05-05,Dinwiddie,Virginia,51053,25,0 +2020-05-06,Dinwiddie,Virginia,51053,25,0 +2020-05-07,Dinwiddie,Virginia,51053,25,0 +2020-05-08,Dinwiddie,Virginia,51053,25,0 +2020-05-09,Dinwiddie,Virginia,51053,25,0 +2020-05-10,Dinwiddie,Virginia,51053,27,0 +2020-05-11,Dinwiddie,Virginia,51053,28,0 +2020-05-12,Dinwiddie,Virginia,51053,30,0 +2020-05-13,Dinwiddie,Virginia,51053,30,0 +2020-05-14,Dinwiddie,Virginia,51053,33,0 +2020-05-15,Dinwiddie,Virginia,51053,36,0 +2020-05-16,Dinwiddie,Virginia,51053,36,0 +2020-05-17,Dinwiddie,Virginia,51053,36,0 +2020-05-18,Dinwiddie,Virginia,51053,38,0 +2020-05-19,Dinwiddie,Virginia,51053,45,0 +2020-05-20,Dinwiddie,Virginia,51053,47,0 +2020-05-21,Dinwiddie,Virginia,51053,47,0 +2020-05-22,Dinwiddie,Virginia,51053,47,0 +2020-05-23,Dinwiddie,Virginia,51053,48,0 +2020-05-24,Dinwiddie,Virginia,51053,48,0 +2020-05-25,Dinwiddie,Virginia,51053,48,0 +2020-05-26,Dinwiddie,Virginia,51053,55,0 +2020-05-27,Dinwiddie,Virginia,51053,61,0 +2020-05-28,Dinwiddie,Virginia,51053,68,0 +2020-05-29,Dinwiddie,Virginia,51053,71,0 +2020-05-30,Dinwiddie,Virginia,51053,77,0 +2020-05-31,Dinwiddie,Virginia,51053,80,0 +2020-06-01,Dinwiddie,Virginia,51053,83,0 +2020-06-02,Dinwiddie,Virginia,51053,83,0 +2020-06-03,Dinwiddie,Virginia,51053,84,0 +2020-06-04,Dinwiddie,Virginia,51053,90,0 +2020-06-05,Dinwiddie,Virginia,51053,93,0 +2020-06-06,Dinwiddie,Virginia,51053,98,0 +2020-06-07,Dinwiddie,Virginia,51053,98,0 +2020-06-08,Dinwiddie,Virginia,51053,98,0 +2020-06-09,Dinwiddie,Virginia,51053,99,0 +2020-06-10,Dinwiddie,Virginia,51053,101,0 +2020-06-11,Dinwiddie,Virginia,51053,101,0 +2020-06-12,Dinwiddie,Virginia,51053,105,0 +2020-06-13,Dinwiddie,Virginia,51053,107,0 +2020-06-14,Dinwiddie,Virginia,51053,108,0 +2020-06-15,Dinwiddie,Virginia,51053,110,0 +2020-06-16,Dinwiddie,Virginia,51053,110,0 +2020-06-17,Dinwiddie,Virginia,51053,113,0 +2020-06-18,Dinwiddie,Virginia,51053,114,0 +2020-06-19,Dinwiddie,Virginia,51053,118,0 +2020-06-20,Dinwiddie,Virginia,51053,121,0 +2020-06-21,Dinwiddie,Virginia,51053,121,0 +2020-06-22,Dinwiddie,Virginia,51053,123,0 +2020-06-23,Dinwiddie,Virginia,51053,127,0 +2020-06-24,Dinwiddie,Virginia,51053,130,0 +2020-06-25,Dinwiddie,Virginia,51053,129,0 +2020-06-26,Dinwiddie,Virginia,51053,131,0 +2020-06-27,Dinwiddie,Virginia,51053,141,0 +2020-06-28,Dinwiddie,Virginia,51053,141,0 +2020-06-29,Dinwiddie,Virginia,51053,140,0 +2020-06-30,Dinwiddie,Virginia,51053,142,0 +2020-07-01,Dinwiddie,Virginia,51053,142,0 +2020-07-02,Dinwiddie,Virginia,51053,143,0 +2020-07-03,Dinwiddie,Virginia,51053,148,2 +2020-07-04,Dinwiddie,Virginia,51053,148,2 +2020-07-05,Dinwiddie,Virginia,51053,148,2 +2020-07-06,Dinwiddie,Virginia,51053,151,2 +2020-07-07,Dinwiddie,Virginia,51053,152,2 +2020-07-08,Dinwiddie,Virginia,51053,154,2 +2020-07-09,Dinwiddie,Virginia,51053,154,2 +2020-04-16,Essex,Virginia,51057,2,0 +2020-04-17,Essex,Virginia,51057,2,0 +2020-04-18,Essex,Virginia,51057,2,0 +2020-04-19,Essex,Virginia,51057,2,0 +2020-04-20,Essex,Virginia,51057,2,0 +2020-04-21,Essex,Virginia,51057,2,0 +2020-04-22,Essex,Virginia,51057,2,0 +2020-04-23,Essex,Virginia,51057,3,0 +2020-04-24,Essex,Virginia,51057,3,0 +2020-04-25,Essex,Virginia,51057,4,0 +2020-04-26,Essex,Virginia,51057,6,0 +2020-04-27,Essex,Virginia,51057,6,0 +2020-04-28,Essex,Virginia,51057,6,0 +2020-04-29,Essex,Virginia,51057,6,0 +2020-04-30,Essex,Virginia,51057,7,0 +2020-05-01,Essex,Virginia,51057,8,0 +2020-05-02,Essex,Virginia,51057,8,0 +2020-05-03,Essex,Virginia,51057,11,0 +2020-05-04,Essex,Virginia,51057,16,0 +2020-05-05,Essex,Virginia,51057,17,0 +2020-05-06,Essex,Virginia,51057,17,0 +2020-05-07,Essex,Virginia,51057,18,0 +2020-05-08,Essex,Virginia,51057,18,0 +2020-05-09,Essex,Virginia,51057,22,0 +2020-05-10,Essex,Virginia,51057,23,0 +2020-05-11,Essex,Virginia,51057,24,0 +2020-05-12,Essex,Virginia,51057,26,0 +2020-05-13,Essex,Virginia,51057,29,0 +2020-05-14,Essex,Virginia,51057,29,0 +2020-05-15,Essex,Virginia,51057,30,0 +2020-05-16,Essex,Virginia,51057,31,0 +2020-05-17,Essex,Virginia,51057,31,0 +2020-05-18,Essex,Virginia,51057,31,0 +2020-05-19,Essex,Virginia,51057,35,0 +2020-05-20,Essex,Virginia,51057,35,0 +2020-05-21,Essex,Virginia,51057,36,0 +2020-05-22,Essex,Virginia,51057,36,0 +2020-05-23,Essex,Virginia,51057,41,0 +2020-05-24,Essex,Virginia,51057,43,0 +2020-05-25,Essex,Virginia,51057,44,0 +2020-05-26,Essex,Virginia,51057,44,0 +2020-05-27,Essex,Virginia,51057,43,0 +2020-05-28,Essex,Virginia,51057,46,0 +2020-05-29,Essex,Virginia,51057,46,0 +2020-05-30,Essex,Virginia,51057,46,0 +2020-05-31,Essex,Virginia,51057,48,0 +2020-06-01,Essex,Virginia,51057,48,0 +2020-06-02,Essex,Virginia,51057,48,0 +2020-06-03,Essex,Virginia,51057,48,0 +2020-06-04,Essex,Virginia,51057,52,0 +2020-06-05,Essex,Virginia,51057,53,0 +2020-06-06,Essex,Virginia,51057,53,0 +2020-06-07,Essex,Virginia,51057,53,0 +2020-06-08,Essex,Virginia,51057,53,0 +2020-06-09,Essex,Virginia,51057,53,0 +2020-06-10,Essex,Virginia,51057,53,0 +2020-06-11,Essex,Virginia,51057,52,0 +2020-06-12,Essex,Virginia,51057,52,0 +2020-06-13,Essex,Virginia,51057,52,0 +2020-06-14,Essex,Virginia,51057,53,0 +2020-06-15,Essex,Virginia,51057,53,0 +2020-06-16,Essex,Virginia,51057,53,0 +2020-06-17,Essex,Virginia,51057,53,0 +2020-06-18,Essex,Virginia,51057,54,0 +2020-06-19,Essex,Virginia,51057,54,0 +2020-06-20,Essex,Virginia,51057,54,0 +2020-06-21,Essex,Virginia,51057,54,0 +2020-06-22,Essex,Virginia,51057,54,0 +2020-06-23,Essex,Virginia,51057,54,0 +2020-06-24,Essex,Virginia,51057,54,0 +2020-06-25,Essex,Virginia,51057,54,0 +2020-06-26,Essex,Virginia,51057,56,0 +2020-06-27,Essex,Virginia,51057,56,0 +2020-06-28,Essex,Virginia,51057,56,0 +2020-06-29,Essex,Virginia,51057,57,0 +2020-06-30,Essex,Virginia,51057,58,0 +2020-07-01,Essex,Virginia,51057,59,0 +2020-07-02,Essex,Virginia,51057,59,0 +2020-07-03,Essex,Virginia,51057,59,0 +2020-07-04,Essex,Virginia,51057,59,0 +2020-07-05,Essex,Virginia,51057,59,0 +2020-07-06,Essex,Virginia,51057,59,0 +2020-07-07,Essex,Virginia,51057,59,0 +2020-07-08,Essex,Virginia,51057,59,0 +2020-07-09,Essex,Virginia,51057,64,0 +2020-03-07,Fairfax,Virginia,51059,1,0 +2020-03-08,Fairfax,Virginia,51059,2,0 +2020-03-09,Fairfax,Virginia,51059,4,0 +2020-03-10,Fairfax,Virginia,51059,4,0 +2020-03-11,Fairfax,Virginia,51059,4,0 +2020-03-12,Fairfax,Virginia,51059,4,0 +2020-03-13,Fairfax,Virginia,51059,6,0 +2020-03-14,Fairfax,Virginia,51059,10,0 +2020-03-15,Fairfax,Virginia,51059,10,0 +2020-03-16,Fairfax,Virginia,51059,10,0 +2020-03-17,Fairfax,Virginia,51059,12,0 +2020-03-18,Fairfax,Virginia,51059,14,0 +2020-03-19,Fairfax,Virginia,51059,16,0 +2020-03-20,Fairfax,Virginia,51059,16,0 +2020-03-21,Fairfax,Virginia,51059,22,1 +2020-03-22,Fairfax,Virginia,51059,31,1 +2020-03-23,Fairfax,Virginia,51059,43,1 +2020-03-24,Fairfax,Virginia,51059,46,1 +2020-03-25,Fairfax,Virginia,51059,76,1 +2020-03-26,Fairfax,Virginia,51059,124,1 +2020-03-27,Fairfax,Virginia,51059,124,1 +2020-03-28,Fairfax,Virginia,51059,156,1 +2020-03-29,Fairfax,Virginia,51059,187,1 +2020-03-30,Fairfax,Virginia,51059,225,2 +2020-03-31,Fairfax,Virginia,51059,244,2 +2020-04-01,Fairfax,Virginia,51059,288,5 +2020-04-02,Fairfax,Virginia,51059,328,5 +2020-04-03,Fairfax,Virginia,51059,372,5 +2020-04-04,Fairfax,Virginia,51059,387,5 +2020-04-05,Fairfax,Virginia,51059,426,5 +2020-04-06,Fairfax,Virginia,51059,488,6 +2020-04-07,Fairfax,Virginia,51059,532,9 +2020-04-08,Fairfax,Virginia,51059,570,9 +2020-04-09,Fairfax,Virginia,51059,690,16 +2020-04-10,Fairfax,Virginia,51059,777,16 +2020-04-11,Fairfax,Virginia,51059,946,16 +2020-04-12,Fairfax,Virginia,51059,1008,16 +2020-04-13,Fairfax,Virginia,51059,1164,20 +2020-04-14,Fairfax,Virginia,51059,1207,20 +2020-04-15,Fairfax,Virginia,51059,1298,29 +2020-04-16,Fairfax,Virginia,51059,1375,30 +2020-04-17,Fairfax,Virginia,51059,1476,37 +2020-04-18,Fairfax,Virginia,51059,1633,37 +2020-04-19,Fairfax,Virginia,51059,1809,37 +2020-04-20,Fairfax,Virginia,51059,1925,59 +2020-04-21,Fairfax,Virginia,51059,2077,64 +2020-04-22,Fairfax,Virginia,51059,2256,66 +2020-04-23,Fairfax,Virginia,51059,2362,76 +2020-04-24,Fairfax,Virginia,51059,2534,85 +2020-04-25,Fairfax,Virginia,51059,2745,90 +2020-04-26,Fairfax,Virginia,51059,2889,95 +2020-04-27,Fairfax,Virginia,51059,3002,100 +2020-04-28,Fairfax,Virginia,51059,3278,114 +2020-04-29,Fairfax,Virginia,51059,3448,124 +2020-04-30,Fairfax,Virginia,51059,3611,134 +2020-05-01,Fairfax,Virginia,51059,3897,137 +2020-05-02,Fairfax,Virginia,51059,4046,153 +2020-05-03,Fairfax,Virginia,51059,4340,184 +2020-05-04,Fairfax,Virginia,51059,4615,198 +2020-05-05,Fairfax,Virginia,51059,4834,201 +2020-05-06,Fairfax,Virginia,51059,4834,201 +2020-05-07,Fairfax,Virginia,51059,5045,211 +2020-05-08,Fairfax,Virginia,51059,5338,227 +2020-05-09,Fairfax,Virginia,51059,5610,230 +2020-05-10,Fairfax,Virginia,51059,5892,239 +2020-05-11,Fairfax,Virginia,51059,6200,243 +2020-05-12,Fairfax,Virginia,51059,6470,253 +2020-05-13,Fairfax,Virginia,51059,6666,262 +2020-05-14,Fairfax,Virginia,51059,6951,267 +2020-05-15,Fairfax,Virginia,51059,7159,273 +2020-05-16,Fairfax,Virginia,51059,7386,278 +2020-05-17,Fairfax,Virginia,51059,7643,282 +2020-05-18,Fairfax,Virginia,51059,7843,284 +2020-05-19,Fairfax,Virginia,51059,8020,292 +2020-05-20,Fairfax,Virginia,51059,8163,302 +2020-05-21,Fairfax,Virginia,51059,8580,309 +2020-05-22,Fairfax,Virginia,51059,8734,321 +2020-05-23,Fairfax,Virginia,51059,8945,326 +2020-05-24,Fairfax,Virginia,51059,8989,327 +2020-05-25,Fairfax,Virginia,51059,9482,331 +2020-05-26,Fairfax,Virginia,51059,9839,340 +2020-05-27,Fairfax,Virginia,51059,10069,364 +2020-05-28,Fairfax,Virginia,51059,10503,371 +2020-05-29,Fairfax,Virginia,51059,10738,378 +2020-05-30,Fairfax,Virginia,51059,10906,383 +2020-05-31,Fairfax,Virginia,51059,11110,383 +2020-06-01,Fairfax,Virginia,51059,11219,387 +2020-06-02,Fairfax,Virginia,51059,11426,391 +2020-06-03,Fairfax,Virginia,51059,11596,396 +2020-06-04,Fairfax,Virginia,51059,11815,403 +2020-06-05,Fairfax,Virginia,51059,11904,410 +2020-06-06,Fairfax,Virginia,51059,12056,413 +2020-06-07,Fairfax,Virginia,51059,12455,414 +2020-06-08,Fairfax,Virginia,51059,12603,414 +2020-06-09,Fairfax,Virginia,51059,12695,416 +2020-06-10,Fairfax,Virginia,51059,12746,422 +2020-06-11,Fairfax,Virginia,51059,12812,418 +2020-06-12,Fairfax,Virginia,51059,12863,421 +2020-06-13,Fairfax,Virginia,51059,12939,423 +2020-06-14,Fairfax,Virginia,51059,13017,423 +2020-06-15,Fairfax,Virginia,51059,13092,423 +2020-06-16,Fairfax,Virginia,51059,13103,428 +2020-06-17,Fairfax,Virginia,51059,13153,429 +2020-06-18,Fairfax,Virginia,51059,13209,431 +2020-06-19,Fairfax,Virginia,51059,13244,432 +2020-06-20,Fairfax,Virginia,51059,13341,435 +2020-06-21,Fairfax,Virginia,51059,13419,435 +2020-06-22,Fairfax,Virginia,51059,13499,438 +2020-06-23,Fairfax,Virginia,51059,13579,445 +2020-06-24,Fairfax,Virginia,51059,13588,450 +2020-06-25,Fairfax,Virginia,51059,13611,457 +2020-06-26,Fairfax,Virginia,51059,13653,463 +2020-06-27,Fairfax,Virginia,51059,13728,468 +2020-06-28,Fairfax,Virginia,51059,13778,473 +2020-06-29,Fairfax,Virginia,51059,13840,478 +2020-06-30,Fairfax,Virginia,51059,13850,488 +2020-07-01,Fairfax,Virginia,51059,13864,488 +2020-07-02,Fairfax,Virginia,51059,13886,492 +2020-07-03,Fairfax,Virginia,51059,13965,494 +2020-07-04,Fairfax,Virginia,51059,14072,495 +2020-07-05,Fairfax,Virginia,51059,14153,496 +2020-07-06,Fairfax,Virginia,51059,14205,495 +2020-07-07,Fairfax,Virginia,51059,14191,495 +2020-07-08,Fairfax,Virginia,51059,14253,495 +2020-07-09,Fairfax,Virginia,51059,14284,497 +2020-03-26,Fauquier,Virginia,51061,4,0 +2020-03-27,Fauquier,Virginia,51061,4,0 +2020-03-28,Fauquier,Virginia,51061,6,0 +2020-03-29,Fauquier,Virginia,51061,6,0 +2020-03-30,Fauquier,Virginia,51061,6,0 +2020-03-31,Fauquier,Virginia,51061,7,0 +2020-04-01,Fauquier,Virginia,51061,7,0 +2020-04-02,Fauquier,Virginia,51061,8,0 +2020-04-03,Fauquier,Virginia,51061,9,0 +2020-04-04,Fauquier,Virginia,51061,10,0 +2020-04-05,Fauquier,Virginia,51061,10,0 +2020-04-06,Fauquier,Virginia,51061,11,0 +2020-04-07,Fauquier,Virginia,51061,18,0 +2020-04-08,Fauquier,Virginia,51061,17,0 +2020-04-09,Fauquier,Virginia,51061,20,0 +2020-04-10,Fauquier,Virginia,51061,23,0 +2020-04-11,Fauquier,Virginia,51061,25,0 +2020-04-12,Fauquier,Virginia,51061,25,0 +2020-04-13,Fauquier,Virginia,51061,28,0 +2020-04-14,Fauquier,Virginia,51061,28,0 +2020-04-15,Fauquier,Virginia,51061,29,0 +2020-04-16,Fauquier,Virginia,51061,32,0 +2020-04-17,Fauquier,Virginia,51061,35,0 +2020-04-18,Fauquier,Virginia,51061,36,0 +2020-04-19,Fauquier,Virginia,51061,39,0 +2020-04-20,Fauquier,Virginia,51061,41,0 +2020-04-21,Fauquier,Virginia,51061,49,1 +2020-04-22,Fauquier,Virginia,51061,56,1 +2020-04-23,Fauquier,Virginia,51061,64,1 +2020-04-24,Fauquier,Virginia,51061,73,2 +2020-04-25,Fauquier,Virginia,51061,80,2 +2020-04-26,Fauquier,Virginia,51061,87,2 +2020-04-27,Fauquier,Virginia,51061,96,2 +2020-04-28,Fauquier,Virginia,51061,105,2 +2020-04-29,Fauquier,Virginia,51061,109,2 +2020-04-30,Fauquier,Virginia,51061,111,2 +2020-05-01,Fauquier,Virginia,51061,128,2 +2020-05-02,Fauquier,Virginia,51061,128,2 +2020-05-03,Fauquier,Virginia,51061,133,2 +2020-05-04,Fauquier,Virginia,51061,140,3 +2020-05-05,Fauquier,Virginia,51061,147,3 +2020-05-06,Fauquier,Virginia,51061,147,3 +2020-05-07,Fauquier,Virginia,51061,149,4 +2020-05-08,Fauquier,Virginia,51061,153,4 +2020-05-09,Fauquier,Virginia,51061,168,4 +2020-05-10,Fauquier,Virginia,51061,172,4 +2020-05-11,Fauquier,Virginia,51061,180,4 +2020-05-12,Fauquier,Virginia,51061,180,5 +2020-05-13,Fauquier,Virginia,51061,190,5 +2020-05-14,Fauquier,Virginia,51061,200,5 +2020-05-15,Fauquier,Virginia,51061,205,5 +2020-05-16,Fauquier,Virginia,51061,211,5 +2020-05-17,Fauquier,Virginia,51061,213,5 +2020-05-18,Fauquier,Virginia,51061,223,5 +2020-05-19,Fauquier,Virginia,51061,243,5 +2020-05-20,Fauquier,Virginia,51061,251,5 +2020-05-21,Fauquier,Virginia,51061,261,5 +2020-05-22,Fauquier,Virginia,51061,267,5 +2020-05-23,Fauquier,Virginia,51061,269,5 +2020-05-24,Fauquier,Virginia,51061,282,5 +2020-05-25,Fauquier,Virginia,51061,285,5 +2020-05-26,Fauquier,Virginia,51061,300,5 +2020-05-27,Fauquier,Virginia,51061,302,5 +2020-05-28,Fauquier,Virginia,51061,303,6 +2020-05-29,Fauquier,Virginia,51061,308,6 +2020-05-30,Fauquier,Virginia,51061,312,6 +2020-05-31,Fauquier,Virginia,51061,315,6 +2020-06-01,Fauquier,Virginia,51061,323,6 +2020-06-02,Fauquier,Virginia,51061,326,6 +2020-06-03,Fauquier,Virginia,51061,329,6 +2020-06-04,Fauquier,Virginia,51061,334,6 +2020-06-05,Fauquier,Virginia,51061,339,6 +2020-06-06,Fauquier,Virginia,51061,345,6 +2020-06-07,Fauquier,Virginia,51061,355,6 +2020-06-08,Fauquier,Virginia,51061,363,6 +2020-06-09,Fauquier,Virginia,51061,365,6 +2020-06-10,Fauquier,Virginia,51061,370,6 +2020-06-11,Fauquier,Virginia,51061,374,6 +2020-06-12,Fauquier,Virginia,51061,376,6 +2020-06-13,Fauquier,Virginia,51061,380,6 +2020-06-14,Fauquier,Virginia,51061,385,6 +2020-06-15,Fauquier,Virginia,51061,386,6 +2020-06-16,Fauquier,Virginia,51061,393,6 +2020-06-17,Fauquier,Virginia,51061,398,6 +2020-06-18,Fauquier,Virginia,51061,399,6 +2020-06-19,Fauquier,Virginia,51061,401,6 +2020-06-20,Fauquier,Virginia,51061,403,6 +2020-06-21,Fauquier,Virginia,51061,404,6 +2020-06-22,Fauquier,Virginia,51061,409,6 +2020-06-23,Fauquier,Virginia,51061,413,6 +2020-06-24,Fauquier,Virginia,51061,417,6 +2020-06-25,Fauquier,Virginia,51061,415,6 +2020-06-26,Fauquier,Virginia,51061,416,6 +2020-06-27,Fauquier,Virginia,51061,417,6 +2020-06-28,Fauquier,Virginia,51061,417,6 +2020-06-29,Fauquier,Virginia,51061,417,6 +2020-06-30,Fauquier,Virginia,51061,420,6 +2020-07-01,Fauquier,Virginia,51061,420,7 +2020-07-02,Fauquier,Virginia,51061,421,7 +2020-07-03,Fauquier,Virginia,51061,427,7 +2020-07-04,Fauquier,Virginia,51061,431,7 +2020-07-05,Fauquier,Virginia,51061,442,7 +2020-07-06,Fauquier,Virginia,51061,446,7 +2020-07-07,Fauquier,Virginia,51061,450,8 +2020-07-08,Fauquier,Virginia,51061,455,8 +2020-07-09,Fauquier,Virginia,51061,460,8 +2020-04-09,Floyd,Virginia,51063,1,0 +2020-04-10,Floyd,Virginia,51063,1,0 +2020-04-11,Floyd,Virginia,51063,1,0 +2020-04-12,Floyd,Virginia,51063,1,0 +2020-04-13,Floyd,Virginia,51063,1,0 +2020-04-14,Floyd,Virginia,51063,1,0 +2020-04-15,Floyd,Virginia,51063,1,0 +2020-04-16,Floyd,Virginia,51063,1,0 +2020-04-17,Floyd,Virginia,51063,1,0 +2020-04-18,Floyd,Virginia,51063,1,0 +2020-04-19,Floyd,Virginia,51063,1,0 +2020-04-20,Floyd,Virginia,51063,1,0 +2020-04-21,Floyd,Virginia,51063,1,0 +2020-04-22,Floyd,Virginia,51063,1,0 +2020-04-23,Floyd,Virginia,51063,1,0 +2020-04-24,Floyd,Virginia,51063,1,0 +2020-04-25,Floyd,Virginia,51063,1,0 +2020-04-26,Floyd,Virginia,51063,1,0 +2020-04-27,Floyd,Virginia,51063,1,0 +2020-04-28,Floyd,Virginia,51063,1,0 +2020-04-29,Floyd,Virginia,51063,2,0 +2020-04-30,Floyd,Virginia,51063,2,0 +2020-05-01,Floyd,Virginia,51063,3,0 +2020-05-02,Floyd,Virginia,51063,3,0 +2020-05-03,Floyd,Virginia,51063,3,0 +2020-05-04,Floyd,Virginia,51063,3,0 +2020-05-05,Floyd,Virginia,51063,3,0 +2020-05-06,Floyd,Virginia,51063,3,0 +2020-05-07,Floyd,Virginia,51063,3,0 +2020-05-08,Floyd,Virginia,51063,3,0 +2020-05-09,Floyd,Virginia,51063,3,0 +2020-05-10,Floyd,Virginia,51063,3,0 +2020-05-11,Floyd,Virginia,51063,3,0 +2020-05-12,Floyd,Virginia,51063,3,0 +2020-05-13,Floyd,Virginia,51063,4,0 +2020-05-14,Floyd,Virginia,51063,4,0 +2020-05-15,Floyd,Virginia,51063,4,0 +2020-05-16,Floyd,Virginia,51063,4,0 +2020-05-17,Floyd,Virginia,51063,4,0 +2020-05-18,Floyd,Virginia,51063,4,0 +2020-05-19,Floyd,Virginia,51063,4,0 +2020-05-20,Floyd,Virginia,51063,4,0 +2020-05-21,Floyd,Virginia,51063,4,0 +2020-05-22,Floyd,Virginia,51063,4,0 +2020-05-23,Floyd,Virginia,51063,4,0 +2020-05-24,Floyd,Virginia,51063,4,0 +2020-05-25,Floyd,Virginia,51063,5,0 +2020-05-26,Floyd,Virginia,51063,5,0 +2020-05-27,Floyd,Virginia,51063,5,0 +2020-05-28,Floyd,Virginia,51063,5,0 +2020-05-29,Floyd,Virginia,51063,6,0 +2020-05-30,Floyd,Virginia,51063,6,0 +2020-05-31,Floyd,Virginia,51063,6,0 +2020-06-01,Floyd,Virginia,51063,6,0 +2020-06-02,Floyd,Virginia,51063,7,0 +2020-06-03,Floyd,Virginia,51063,7,0 +2020-06-04,Floyd,Virginia,51063,6,1 +2020-06-05,Floyd,Virginia,51063,6,1 +2020-06-06,Floyd,Virginia,51063,6,1 +2020-06-07,Floyd,Virginia,51063,6,1 +2020-06-08,Floyd,Virginia,51063,8,1 +2020-06-09,Floyd,Virginia,51063,8,1 +2020-06-10,Floyd,Virginia,51063,8,1 +2020-06-11,Floyd,Virginia,51063,8,1 +2020-06-12,Floyd,Virginia,51063,8,1 +2020-06-13,Floyd,Virginia,51063,9,1 +2020-06-14,Floyd,Virginia,51063,9,1 +2020-06-15,Floyd,Virginia,51063,10,1 +2020-06-16,Floyd,Virginia,51063,10,1 +2020-06-17,Floyd,Virginia,51063,10,1 +2020-06-18,Floyd,Virginia,51063,10,1 +2020-06-19,Floyd,Virginia,51063,10,1 +2020-06-20,Floyd,Virginia,51063,10,1 +2020-06-21,Floyd,Virginia,51063,14,1 +2020-06-22,Floyd,Virginia,51063,14,1 +2020-06-23,Floyd,Virginia,51063,14,1 +2020-06-24,Floyd,Virginia,51063,15,1 +2020-06-25,Floyd,Virginia,51063,14,1 +2020-06-26,Floyd,Virginia,51063,15,1 +2020-06-27,Floyd,Virginia,51063,15,1 +2020-06-28,Floyd,Virginia,51063,16,1 +2020-06-29,Floyd,Virginia,51063,17,1 +2020-06-30,Floyd,Virginia,51063,17,1 +2020-07-01,Floyd,Virginia,51063,18,1 +2020-07-02,Floyd,Virginia,51063,18,1 +2020-07-03,Floyd,Virginia,51063,19,1 +2020-07-04,Floyd,Virginia,51063,20,1 +2020-07-05,Floyd,Virginia,51063,20,1 +2020-07-06,Floyd,Virginia,51063,21,1 +2020-07-07,Floyd,Virginia,51063,21,1 +2020-07-08,Floyd,Virginia,51063,20,1 +2020-07-09,Floyd,Virginia,51063,20,1 +2020-03-22,Fluvanna,Virginia,51065,1,0 +2020-03-23,Fluvanna,Virginia,51065,1,0 +2020-03-24,Fluvanna,Virginia,51065,1,0 +2020-03-25,Fluvanna,Virginia,51065,1,0 +2020-03-26,Fluvanna,Virginia,51065,3,0 +2020-03-27,Fluvanna,Virginia,51065,3,0 +2020-03-28,Fluvanna,Virginia,51065,3,0 +2020-03-29,Fluvanna,Virginia,51065,3,0 +2020-03-30,Fluvanna,Virginia,51065,3,0 +2020-03-31,Fluvanna,Virginia,51065,3,0 +2020-04-01,Fluvanna,Virginia,51065,3,0 +2020-04-02,Fluvanna,Virginia,51065,4,0 +2020-04-03,Fluvanna,Virginia,51065,5,0 +2020-04-04,Fluvanna,Virginia,51065,5,0 +2020-04-05,Fluvanna,Virginia,51065,7,0 +2020-04-06,Fluvanna,Virginia,51065,9,0 +2020-04-07,Fluvanna,Virginia,51065,9,0 +2020-04-08,Fluvanna,Virginia,51065,12,0 +2020-04-09,Fluvanna,Virginia,51065,16,0 +2020-04-10,Fluvanna,Virginia,51065,15,0 +2020-04-11,Fluvanna,Virginia,51065,19,0 +2020-04-12,Fluvanna,Virginia,51065,21,0 +2020-04-13,Fluvanna,Virginia,51065,23,0 +2020-04-14,Fluvanna,Virginia,51065,40,0 +2020-04-15,Fluvanna,Virginia,51065,62,0 +2020-04-16,Fluvanna,Virginia,51065,64,0 +2020-04-17,Fluvanna,Virginia,51065,64,0 +2020-04-18,Fluvanna,Virginia,51065,66,0 +2020-04-19,Fluvanna,Virginia,51065,66,0 +2020-04-20,Fluvanna,Virginia,51065,68,0 +2020-04-21,Fluvanna,Virginia,51065,68,4 +2020-04-22,Fluvanna,Virginia,51065,69,4 +2020-04-23,Fluvanna,Virginia,51065,72,4 +2020-04-24,Fluvanna,Virginia,51065,72,5 +2020-04-25,Fluvanna,Virginia,51065,72,5 +2020-04-26,Fluvanna,Virginia,51065,72,5 +2020-04-27,Fluvanna,Virginia,51065,73,5 +2020-04-28,Fluvanna,Virginia,51065,73,5 +2020-04-29,Fluvanna,Virginia,51065,73,5 +2020-04-30,Fluvanna,Virginia,51065,73,6 +2020-05-01,Fluvanna,Virginia,51065,74,6 +2020-05-02,Fluvanna,Virginia,51065,76,6 +2020-05-03,Fluvanna,Virginia,51065,76,6 +2020-05-04,Fluvanna,Virginia,51065,76,6 +2020-05-05,Fluvanna,Virginia,51065,76,6 +2020-05-06,Fluvanna,Virginia,51065,76,6 +2020-05-07,Fluvanna,Virginia,51065,78,6 +2020-05-08,Fluvanna,Virginia,51065,78,6 +2020-05-09,Fluvanna,Virginia,51065,79,6 +2020-05-10,Fluvanna,Virginia,51065,79,6 +2020-05-11,Fluvanna,Virginia,51065,79,6 +2020-05-12,Fluvanna,Virginia,51065,78,6 +2020-05-13,Fluvanna,Virginia,51065,79,6 +2020-05-14,Fluvanna,Virginia,51065,79,6 +2020-05-15,Fluvanna,Virginia,51065,79,6 +2020-05-16,Fluvanna,Virginia,51065,81,6 +2020-05-17,Fluvanna,Virginia,51065,81,6 +2020-05-18,Fluvanna,Virginia,51065,82,6 +2020-05-19,Fluvanna,Virginia,51065,82,6 +2020-05-20,Fluvanna,Virginia,51065,82,6 +2020-05-21,Fluvanna,Virginia,51065,83,6 +2020-05-22,Fluvanna,Virginia,51065,84,6 +2020-05-23,Fluvanna,Virginia,51065,84,6 +2020-05-24,Fluvanna,Virginia,51065,84,6 +2020-05-25,Fluvanna,Virginia,51065,85,6 +2020-05-26,Fluvanna,Virginia,51065,87,6 +2020-05-27,Fluvanna,Virginia,51065,87,6 +2020-05-28,Fluvanna,Virginia,51065,88,6 +2020-05-29,Fluvanna,Virginia,51065,90,6 +2020-05-30,Fluvanna,Virginia,51065,91,6 +2020-05-31,Fluvanna,Virginia,51065,92,6 +2020-06-01,Fluvanna,Virginia,51065,92,6 +2020-06-02,Fluvanna,Virginia,51065,92,6 +2020-06-03,Fluvanna,Virginia,51065,92,6 +2020-06-04,Fluvanna,Virginia,51065,94,6 +2020-06-05,Fluvanna,Virginia,51065,94,6 +2020-06-06,Fluvanna,Virginia,51065,94,6 +2020-06-07,Fluvanna,Virginia,51065,94,6 +2020-06-08,Fluvanna,Virginia,51065,95,6 +2020-06-09,Fluvanna,Virginia,51065,95,6 +2020-06-10,Fluvanna,Virginia,51065,98,6 +2020-06-11,Fluvanna,Virginia,51065,98,6 +2020-06-12,Fluvanna,Virginia,51065,101,6 +2020-06-13,Fluvanna,Virginia,51065,101,6 +2020-06-14,Fluvanna,Virginia,51065,102,6 +2020-06-15,Fluvanna,Virginia,51065,102,6 +2020-06-16,Fluvanna,Virginia,51065,102,6 +2020-06-17,Fluvanna,Virginia,51065,103,6 +2020-06-18,Fluvanna,Virginia,51065,103,6 +2020-06-19,Fluvanna,Virginia,51065,103,6 +2020-06-20,Fluvanna,Virginia,51065,104,6 +2020-06-21,Fluvanna,Virginia,51065,105,6 +2020-06-22,Fluvanna,Virginia,51065,105,6 +2020-06-23,Fluvanna,Virginia,51065,108,6 +2020-06-24,Fluvanna,Virginia,51065,107,6 +2020-06-25,Fluvanna,Virginia,51065,107,6 +2020-06-26,Fluvanna,Virginia,51065,109,6 +2020-06-27,Fluvanna,Virginia,51065,109,6 +2020-06-28,Fluvanna,Virginia,51065,109,6 +2020-06-29,Fluvanna,Virginia,51065,110,6 +2020-06-30,Fluvanna,Virginia,51065,110,7 +2020-07-01,Fluvanna,Virginia,51065,112,7 +2020-07-02,Fluvanna,Virginia,51065,114,7 +2020-07-03,Fluvanna,Virginia,51065,116,8 +2020-07-04,Fluvanna,Virginia,51065,120,8 +2020-07-05,Fluvanna,Virginia,51065,120,8 +2020-07-06,Fluvanna,Virginia,51065,121,8 +2020-07-07,Fluvanna,Virginia,51065,123,8 +2020-07-08,Fluvanna,Virginia,51065,125,8 +2020-07-09,Fluvanna,Virginia,51065,126,8 +2020-03-21,Franklin,Virginia,51067,1,0 +2020-03-22,Franklin,Virginia,51067,1,0 +2020-03-23,Franklin,Virginia,51067,1,0 +2020-03-24,Franklin,Virginia,51067,1,0 +2020-03-25,Franklin,Virginia,51067,1,0 +2020-03-26,Franklin,Virginia,51067,1,0 +2020-03-27,Franklin,Virginia,51067,1,0 +2020-03-28,Franklin,Virginia,51067,1,0 +2020-03-29,Franklin,Virginia,51067,5,0 +2020-03-30,Franklin,Virginia,51067,5,0 +2020-03-31,Franklin,Virginia,51067,5,0 +2020-04-01,Franklin,Virginia,51067,5,0 +2020-04-02,Franklin,Virginia,51067,6,0 +2020-04-03,Franklin,Virginia,51067,9,0 +2020-04-04,Franklin,Virginia,51067,10,0 +2020-04-05,Franklin,Virginia,51067,10,0 +2020-04-06,Franklin,Virginia,51067,10,0 +2020-04-07,Franklin,Virginia,51067,11,0 +2020-04-08,Franklin,Virginia,51067,12,0 +2020-04-09,Franklin,Virginia,51067,13,0 +2020-04-10,Franklin,Virginia,51067,13,0 +2020-04-11,Franklin,Virginia,51067,14,0 +2020-04-12,Franklin,Virginia,51067,14,0 +2020-04-13,Franklin,Virginia,51067,14,0 +2020-04-14,Franklin,Virginia,51067,15,0 +2020-04-15,Franklin,Virginia,51067,15,0 +2020-04-16,Franklin,Virginia,51067,15,0 +2020-04-17,Franklin,Virginia,51067,15,0 +2020-04-18,Franklin,Virginia,51067,15,0 +2020-04-19,Franklin,Virginia,51067,15,0 +2020-04-20,Franklin,Virginia,51067,16,0 +2020-04-21,Franklin,Virginia,51067,16,0 +2020-04-22,Franklin,Virginia,51067,17,0 +2020-04-23,Franklin,Virginia,51067,17,0 +2020-04-24,Franklin,Virginia,51067,19,0 +2020-04-25,Franklin,Virginia,51067,19,0 +2020-04-26,Franklin,Virginia,51067,19,0 +2020-04-27,Franklin,Virginia,51067,19,0 +2020-04-28,Franklin,Virginia,51067,20,0 +2020-04-29,Franklin,Virginia,51067,21,0 +2020-04-30,Franklin,Virginia,51067,21,0 +2020-05-01,Franklin,Virginia,51067,21,0 +2020-05-02,Franklin,Virginia,51067,22,0 +2020-05-03,Franklin,Virginia,51067,23,0 +2020-05-04,Franklin,Virginia,51067,23,0 +2020-05-05,Franklin,Virginia,51067,23,0 +2020-05-06,Franklin,Virginia,51067,23,0 +2020-05-07,Franklin,Virginia,51067,24,0 +2020-05-08,Franklin,Virginia,51067,25,0 +2020-05-09,Franklin,Virginia,51067,26,0 +2020-05-10,Franklin,Virginia,51067,27,0 +2020-05-11,Franklin,Virginia,51067,28,0 +2020-05-12,Franklin,Virginia,51067,28,0 +2020-05-13,Franklin,Virginia,51067,30,0 +2020-05-14,Franklin,Virginia,51067,30,1 +2020-05-15,Franklin,Virginia,51067,30,1 +2020-05-16,Franklin,Virginia,51067,30,1 +2020-05-17,Franklin,Virginia,51067,30,1 +2020-05-18,Franklin,Virginia,51067,30,1 +2020-05-19,Franklin,Virginia,51067,30,1 +2020-05-20,Franklin,Virginia,51067,30,1 +2020-05-21,Franklin,Virginia,51067,30,1 +2020-05-22,Franklin,Virginia,51067,31,1 +2020-05-23,Franklin,Virginia,51067,32,1 +2020-05-24,Franklin,Virginia,51067,32,1 +2020-05-25,Franklin,Virginia,51067,33,2 +2020-05-26,Franklin,Virginia,51067,34,2 +2020-05-27,Franklin,Virginia,51067,35,2 +2020-05-28,Franklin,Virginia,51067,35,1 +2020-05-29,Franklin,Virginia,51067,35,1 +2020-05-30,Franklin,Virginia,51067,36,1 +2020-05-31,Franklin,Virginia,51067,36,1 +2020-06-01,Franklin,Virginia,51067,36,1 +2020-06-02,Franklin,Virginia,51067,36,1 +2020-06-03,Franklin,Virginia,51067,36,1 +2020-06-04,Franklin,Virginia,51067,37,1 +2020-06-05,Franklin,Virginia,51067,38,1 +2020-06-06,Franklin,Virginia,51067,39,1 +2020-06-07,Franklin,Virginia,51067,40,1 +2020-06-08,Franklin,Virginia,51067,40,1 +2020-06-09,Franklin,Virginia,51067,41,1 +2020-06-10,Franklin,Virginia,51067,41,1 +2020-06-11,Franklin,Virginia,51067,42,1 +2020-06-12,Franklin,Virginia,51067,42,1 +2020-06-13,Franklin,Virginia,51067,43,1 +2020-06-14,Franklin,Virginia,51067,43,1 +2020-06-15,Franklin,Virginia,51067,43,1 +2020-06-16,Franklin,Virginia,51067,43,1 +2020-06-17,Franklin,Virginia,51067,46,1 +2020-06-18,Franklin,Virginia,51067,46,1 +2020-06-19,Franklin,Virginia,51067,48,1 +2020-06-20,Franklin,Virginia,51067,48,1 +2020-06-21,Franklin,Virginia,51067,50,1 +2020-06-22,Franklin,Virginia,51067,50,1 +2020-06-23,Franklin,Virginia,51067,52,1 +2020-06-24,Franklin,Virginia,51067,53,1 +2020-06-25,Franklin,Virginia,51067,53,1 +2020-06-26,Franklin,Virginia,51067,54,1 +2020-06-27,Franklin,Virginia,51067,60,1 +2020-06-28,Franklin,Virginia,51067,66,1 +2020-06-29,Franklin,Virginia,51067,72,1 +2020-06-30,Franklin,Virginia,51067,88,1 +2020-07-01,Franklin,Virginia,51067,91,1 +2020-07-02,Franklin,Virginia,51067,92,1 +2020-07-03,Franklin,Virginia,51067,92,1 +2020-07-04,Franklin,Virginia,51067,92,1 +2020-07-05,Franklin,Virginia,51067,96,1 +2020-07-06,Franklin,Virginia,51067,104,1 +2020-07-07,Franklin,Virginia,51067,104,1 +2020-07-08,Franklin,Virginia,51067,104,1 +2020-07-09,Franklin,Virginia,51067,106,1 +2020-03-25,Frederick,Virginia,51069,2,0 +2020-03-26,Frederick,Virginia,51069,4,0 +2020-03-27,Frederick,Virginia,51069,4,0 +2020-03-28,Frederick,Virginia,51069,4,0 +2020-03-29,Frederick,Virginia,51069,8,0 +2020-03-30,Frederick,Virginia,51069,10,0 +2020-03-31,Frederick,Virginia,51069,12,0 +2020-04-01,Frederick,Virginia,51069,15,0 +2020-04-02,Frederick,Virginia,51069,16,0 +2020-04-03,Frederick,Virginia,51069,20,0 +2020-04-04,Frederick,Virginia,51069,24,0 +2020-04-05,Frederick,Virginia,51069,27,0 +2020-04-06,Frederick,Virginia,51069,31,0 +2020-04-07,Frederick,Virginia,51069,43,0 +2020-04-08,Frederick,Virginia,51069,46,0 +2020-04-09,Frederick,Virginia,51069,54,0 +2020-04-10,Frederick,Virginia,51069,62,0 +2020-04-11,Frederick,Virginia,51069,63,0 +2020-04-12,Frederick,Virginia,51069,65,0 +2020-04-13,Frederick,Virginia,51069,66,0 +2020-04-14,Frederick,Virginia,51069,71,0 +2020-04-15,Frederick,Virginia,51069,73,0 +2020-04-16,Frederick,Virginia,51069,72,0 +2020-04-17,Frederick,Virginia,51069,76,0 +2020-04-18,Frederick,Virginia,51069,81,0 +2020-04-19,Frederick,Virginia,51069,81,0 +2020-04-20,Frederick,Virginia,51069,81,0 +2020-04-21,Frederick,Virginia,51069,83,0 +2020-04-22,Frederick,Virginia,51069,86,0 +2020-04-23,Frederick,Virginia,51069,87,0 +2020-04-24,Frederick,Virginia,51069,87,0 +2020-04-25,Frederick,Virginia,51069,93,0 +2020-04-26,Frederick,Virginia,51069,93,0 +2020-04-27,Frederick,Virginia,51069,95,0 +2020-04-28,Frederick,Virginia,51069,97,1 +2020-04-29,Frederick,Virginia,51069,101,1 +2020-04-30,Frederick,Virginia,51069,105,1 +2020-05-01,Frederick,Virginia,51069,115,1 +2020-05-02,Frederick,Virginia,51069,115,1 +2020-05-03,Frederick,Virginia,51069,121,1 +2020-05-04,Frederick,Virginia,51069,126,1 +2020-05-05,Frederick,Virginia,51069,132,1 +2020-05-06,Frederick,Virginia,51069,132,1 +2020-05-07,Frederick,Virginia,51069,147,1 +2020-05-08,Frederick,Virginia,51069,150,2 +2020-05-09,Frederick,Virginia,51069,162,2 +2020-05-10,Frederick,Virginia,51069,164,2 +2020-05-11,Frederick,Virginia,51069,166,2 +2020-05-12,Frederick,Virginia,51069,175,2 +2020-05-13,Frederick,Virginia,51069,182,2 +2020-05-14,Frederick,Virginia,51069,191,3 +2020-05-15,Frederick,Virginia,51069,195,3 +2020-05-16,Frederick,Virginia,51069,209,3 +2020-05-17,Frederick,Virginia,51069,211,3 +2020-05-18,Frederick,Virginia,51069,217,3 +2020-05-19,Frederick,Virginia,51069,223,3 +2020-05-20,Frederick,Virginia,51069,234,3 +2020-05-21,Frederick,Virginia,51069,245,3 +2020-05-22,Frederick,Virginia,51069,249,3 +2020-05-23,Frederick,Virginia,51069,255,3 +2020-05-24,Frederick,Virginia,51069,262,3 +2020-05-25,Frederick,Virginia,51069,271,4 +2020-05-26,Frederick,Virginia,51069,272,4 +2020-05-27,Frederick,Virginia,51069,296,4 +2020-05-28,Frederick,Virginia,51069,319,4 +2020-05-29,Frederick,Virginia,51069,331,4 +2020-05-30,Frederick,Virginia,51069,344,4 +2020-05-31,Frederick,Virginia,51069,349,4 +2020-06-01,Frederick,Virginia,51069,359,4 +2020-06-02,Frederick,Virginia,51069,371,4 +2020-06-03,Frederick,Virginia,51069,378,4 +2020-06-04,Frederick,Virginia,51069,384,4 +2020-06-05,Frederick,Virginia,51069,388,4 +2020-06-06,Frederick,Virginia,51069,393,4 +2020-06-07,Frederick,Virginia,51069,410,4 +2020-06-08,Frederick,Virginia,51069,409,4 +2020-06-09,Frederick,Virginia,51069,413,4 +2020-06-10,Frederick,Virginia,51069,415,4 +2020-06-11,Frederick,Virginia,51069,416,4 +2020-06-12,Frederick,Virginia,51069,423,4 +2020-06-13,Frederick,Virginia,51069,428,4 +2020-06-14,Frederick,Virginia,51069,433,4 +2020-06-15,Frederick,Virginia,51069,435,4 +2020-06-16,Frederick,Virginia,51069,435,4 +2020-06-17,Frederick,Virginia,51069,440,4 +2020-06-18,Frederick,Virginia,51069,444,4 +2020-06-19,Frederick,Virginia,51069,446,4 +2020-06-20,Frederick,Virginia,51069,449,4 +2020-06-21,Frederick,Virginia,51069,456,4 +2020-06-22,Frederick,Virginia,51069,460,4 +2020-06-23,Frederick,Virginia,51069,461,4 +2020-06-24,Frederick,Virginia,51069,461,4 +2020-06-25,Frederick,Virginia,51069,464,4 +2020-06-26,Frederick,Virginia,51069,465,4 +2020-06-27,Frederick,Virginia,51069,479,5 +2020-06-28,Frederick,Virginia,51069,488,5 +2020-06-29,Frederick,Virginia,51069,491,5 +2020-06-30,Frederick,Virginia,51069,493,6 +2020-07-01,Frederick,Virginia,51069,505,6 +2020-07-02,Frederick,Virginia,51069,512,6 +2020-07-03,Frederick,Virginia,51069,517,6 +2020-07-04,Frederick,Virginia,51069,518,6 +2020-07-05,Frederick,Virginia,51069,521,6 +2020-07-06,Frederick,Virginia,51069,520,6 +2020-07-07,Frederick,Virginia,51069,524,6 +2020-07-08,Frederick,Virginia,51069,529,6 +2020-07-09,Frederick,Virginia,51069,534,6 +2020-04-06,Giles,Virginia,51071,1,0 +2020-04-07,Giles,Virginia,51071,2,0 +2020-04-08,Giles,Virginia,51071,2,0 +2020-04-09,Giles,Virginia,51071,2,0 +2020-04-10,Giles,Virginia,51071,2,0 +2020-04-11,Giles,Virginia,51071,2,0 +2020-04-12,Giles,Virginia,51071,3,0 +2020-04-13,Giles,Virginia,51071,4,0 +2020-04-14,Giles,Virginia,51071,4,0 +2020-04-15,Giles,Virginia,51071,4,0 +2020-04-16,Giles,Virginia,51071,4,0 +2020-04-17,Giles,Virginia,51071,4,0 +2020-04-18,Giles,Virginia,51071,4,0 +2020-04-19,Giles,Virginia,51071,4,0 +2020-04-20,Giles,Virginia,51071,4,0 +2020-04-21,Giles,Virginia,51071,4,0 +2020-04-22,Giles,Virginia,51071,4,0 +2020-04-23,Giles,Virginia,51071,4,0 +2020-04-24,Giles,Virginia,51071,4,0 +2020-04-25,Giles,Virginia,51071,4,0 +2020-04-26,Giles,Virginia,51071,4,0 +2020-04-27,Giles,Virginia,51071,4,0 +2020-04-28,Giles,Virginia,51071,4,0 +2020-04-29,Giles,Virginia,51071,4,0 +2020-04-30,Giles,Virginia,51071,4,0 +2020-05-01,Giles,Virginia,51071,4,0 +2020-05-02,Giles,Virginia,51071,4,0 +2020-05-03,Giles,Virginia,51071,4,0 +2020-05-04,Giles,Virginia,51071,4,0 +2020-05-05,Giles,Virginia,51071,4,0 +2020-05-06,Giles,Virginia,51071,4,0 +2020-05-07,Giles,Virginia,51071,4,0 +2020-05-08,Giles,Virginia,51071,4,0 +2020-05-09,Giles,Virginia,51071,8,0 +2020-05-10,Giles,Virginia,51071,8,0 +2020-05-11,Giles,Virginia,51071,8,0 +2020-05-12,Giles,Virginia,51071,8,0 +2020-05-13,Giles,Virginia,51071,5,0 +2020-05-14,Giles,Virginia,51071,5,0 +2020-05-15,Giles,Virginia,51071,5,0 +2020-05-16,Giles,Virginia,51071,5,0 +2020-05-17,Giles,Virginia,51071,5,0 +2020-05-18,Giles,Virginia,51071,5,0 +2020-05-19,Giles,Virginia,51071,5,0 +2020-05-20,Giles,Virginia,51071,5,0 +2020-05-21,Giles,Virginia,51071,5,0 +2020-05-22,Giles,Virginia,51071,5,0 +2020-05-23,Giles,Virginia,51071,5,0 +2020-05-24,Giles,Virginia,51071,5,0 +2020-05-25,Giles,Virginia,51071,5,0 +2020-05-26,Giles,Virginia,51071,5,0 +2020-05-27,Giles,Virginia,51071,5,0 +2020-05-28,Giles,Virginia,51071,5,0 +2020-05-29,Giles,Virginia,51071,5,0 +2020-05-30,Giles,Virginia,51071,5,0 +2020-05-31,Giles,Virginia,51071,5,0 +2020-06-01,Giles,Virginia,51071,5,0 +2020-06-02,Giles,Virginia,51071,5,0 +2020-06-03,Giles,Virginia,51071,5,0 +2020-06-04,Giles,Virginia,51071,5,0 +2020-06-05,Giles,Virginia,51071,5,0 +2020-06-06,Giles,Virginia,51071,5,0 +2020-06-07,Giles,Virginia,51071,5,0 +2020-06-08,Giles,Virginia,51071,5,0 +2020-06-09,Giles,Virginia,51071,5,0 +2020-06-10,Giles,Virginia,51071,5,0 +2020-06-11,Giles,Virginia,51071,5,0 +2020-06-12,Giles,Virginia,51071,5,0 +2020-06-13,Giles,Virginia,51071,5,0 +2020-06-14,Giles,Virginia,51071,6,0 +2020-06-15,Giles,Virginia,51071,6,0 +2020-06-16,Giles,Virginia,51071,6,0 +2020-06-17,Giles,Virginia,51071,6,0 +2020-06-18,Giles,Virginia,51071,6,0 +2020-06-19,Giles,Virginia,51071,6,0 +2020-06-20,Giles,Virginia,51071,7,0 +2020-06-21,Giles,Virginia,51071,7,0 +2020-06-22,Giles,Virginia,51071,7,0 +2020-06-23,Giles,Virginia,51071,7,0 +2020-06-24,Giles,Virginia,51071,7,0 +2020-06-25,Giles,Virginia,51071,8,0 +2020-06-26,Giles,Virginia,51071,8,0 +2020-06-27,Giles,Virginia,51071,8,0 +2020-06-28,Giles,Virginia,51071,13,0 +2020-06-29,Giles,Virginia,51071,14,0 +2020-06-30,Giles,Virginia,51071,15,0 +2020-07-01,Giles,Virginia,51071,15,0 +2020-07-02,Giles,Virginia,51071,17,0 +2020-07-03,Giles,Virginia,51071,17,0 +2020-07-04,Giles,Virginia,51071,18,0 +2020-07-05,Giles,Virginia,51071,18,0 +2020-07-06,Giles,Virginia,51071,18,0 +2020-07-07,Giles,Virginia,51071,18,0 +2020-07-08,Giles,Virginia,51071,18,0 +2020-07-09,Giles,Virginia,51071,18,0 +2020-03-20,Gloucester,Virginia,51073,1,0 +2020-03-21,Gloucester,Virginia,51073,2,0 +2020-03-22,Gloucester,Virginia,51073,2,0 +2020-03-23,Gloucester,Virginia,51073,2,0 +2020-03-24,Gloucester,Virginia,51073,2,0 +2020-03-25,Gloucester,Virginia,51073,2,0 +2020-03-26,Gloucester,Virginia,51073,3,0 +2020-03-27,Gloucester,Virginia,51073,3,0 +2020-03-28,Gloucester,Virginia,51073,6,0 +2020-03-29,Gloucester,Virginia,51073,6,0 +2020-03-30,Gloucester,Virginia,51073,7,0 +2020-03-31,Gloucester,Virginia,51073,7,0 +2020-04-01,Gloucester,Virginia,51073,8,0 +2020-04-02,Gloucester,Virginia,51073,8,0 +2020-04-03,Gloucester,Virginia,51073,8,0 +2020-04-04,Gloucester,Virginia,51073,9,0 +2020-04-05,Gloucester,Virginia,51073,10,0 +2020-04-06,Gloucester,Virginia,51073,12,0 +2020-04-07,Gloucester,Virginia,51073,15,0 +2020-04-08,Gloucester,Virginia,51073,16,0 +2020-04-09,Gloucester,Virginia,51073,16,0 +2020-04-10,Gloucester,Virginia,51073,18,0 +2020-04-11,Gloucester,Virginia,51073,20,0 +2020-04-12,Gloucester,Virginia,51073,20,0 +2020-04-13,Gloucester,Virginia,51073,20,0 +2020-04-14,Gloucester,Virginia,51073,20,0 +2020-04-15,Gloucester,Virginia,51073,20,0 +2020-04-16,Gloucester,Virginia,51073,20,0 +2020-04-17,Gloucester,Virginia,51073,20,0 +2020-04-18,Gloucester,Virginia,51073,21,0 +2020-04-19,Gloucester,Virginia,51073,21,0 +2020-04-20,Gloucester,Virginia,51073,21,0 +2020-04-21,Gloucester,Virginia,51073,21,1 +2020-04-22,Gloucester,Virginia,51073,21,1 +2020-04-23,Gloucester,Virginia,51073,21,1 +2020-04-24,Gloucester,Virginia,51073,21,1 +2020-04-25,Gloucester,Virginia,51073,22,1 +2020-04-26,Gloucester,Virginia,51073,22,1 +2020-04-27,Gloucester,Virginia,51073,22,1 +2020-04-28,Gloucester,Virginia,51073,22,1 +2020-04-29,Gloucester,Virginia,51073,23,1 +2020-04-30,Gloucester,Virginia,51073,23,1 +2020-05-01,Gloucester,Virginia,51073,24,1 +2020-05-02,Gloucester,Virginia,51073,24,1 +2020-05-03,Gloucester,Virginia,51073,25,1 +2020-05-04,Gloucester,Virginia,51073,27,1 +2020-05-05,Gloucester,Virginia,51073,26,1 +2020-05-06,Gloucester,Virginia,51073,26,1 +2020-05-07,Gloucester,Virginia,51073,27,1 +2020-05-08,Gloucester,Virginia,51073,27,1 +2020-05-09,Gloucester,Virginia,51073,27,1 +2020-05-10,Gloucester,Virginia,51073,27,1 +2020-05-11,Gloucester,Virginia,51073,27,1 +2020-05-12,Gloucester,Virginia,51073,27,1 +2020-05-13,Gloucester,Virginia,51073,28,1 +2020-05-14,Gloucester,Virginia,51073,28,1 +2020-05-15,Gloucester,Virginia,51073,28,1 +2020-05-16,Gloucester,Virginia,51073,28,1 +2020-05-17,Gloucester,Virginia,51073,28,1 +2020-05-18,Gloucester,Virginia,51073,28,1 +2020-05-19,Gloucester,Virginia,51073,28,1 +2020-05-20,Gloucester,Virginia,51073,29,1 +2020-05-21,Gloucester,Virginia,51073,30,1 +2020-05-22,Gloucester,Virginia,51073,30,1 +2020-05-23,Gloucester,Virginia,51073,30,1 +2020-05-24,Gloucester,Virginia,51073,30,1 +2020-05-25,Gloucester,Virginia,51073,30,1 +2020-05-26,Gloucester,Virginia,51073,30,1 +2020-05-27,Gloucester,Virginia,51073,30,1 +2020-05-28,Gloucester,Virginia,51073,30,1 +2020-05-29,Gloucester,Virginia,51073,30,1 +2020-05-30,Gloucester,Virginia,51073,31,1 +2020-05-31,Gloucester,Virginia,51073,31,1 +2020-06-01,Gloucester,Virginia,51073,31,1 +2020-06-02,Gloucester,Virginia,51073,31,1 +2020-06-03,Gloucester,Virginia,51073,31,1 +2020-06-04,Gloucester,Virginia,51073,31,1 +2020-06-05,Gloucester,Virginia,51073,32,1 +2020-06-06,Gloucester,Virginia,51073,32,1 +2020-06-07,Gloucester,Virginia,51073,32,1 +2020-06-08,Gloucester,Virginia,51073,33,1 +2020-06-09,Gloucester,Virginia,51073,33,1 +2020-06-10,Gloucester,Virginia,51073,33,1 +2020-06-11,Gloucester,Virginia,51073,34,1 +2020-06-12,Gloucester,Virginia,51073,35,1 +2020-06-13,Gloucester,Virginia,51073,36,1 +2020-06-14,Gloucester,Virginia,51073,37,1 +2020-06-15,Gloucester,Virginia,51073,38,1 +2020-06-16,Gloucester,Virginia,51073,38,1 +2020-06-17,Gloucester,Virginia,51073,38,1 +2020-06-18,Gloucester,Virginia,51073,40,1 +2020-06-19,Gloucester,Virginia,51073,41,1 +2020-06-20,Gloucester,Virginia,51073,42,1 +2020-06-21,Gloucester,Virginia,51073,42,1 +2020-06-22,Gloucester,Virginia,51073,42,1 +2020-06-23,Gloucester,Virginia,51073,42,1 +2020-06-24,Gloucester,Virginia,51073,45,1 +2020-06-25,Gloucester,Virginia,51073,46,1 +2020-06-26,Gloucester,Virginia,51073,47,1 +2020-06-27,Gloucester,Virginia,51073,44,1 +2020-06-28,Gloucester,Virginia,51073,45,1 +2020-06-29,Gloucester,Virginia,51073,48,1 +2020-06-30,Gloucester,Virginia,51073,49,1 +2020-07-01,Gloucester,Virginia,51073,49,1 +2020-07-02,Gloucester,Virginia,51073,49,1 +2020-07-03,Gloucester,Virginia,51073,49,1 +2020-07-04,Gloucester,Virginia,51073,49,1 +2020-07-05,Gloucester,Virginia,51073,50,1 +2020-07-06,Gloucester,Virginia,51073,50,1 +2020-07-07,Gloucester,Virginia,51073,53,1 +2020-07-08,Gloucester,Virginia,51073,52,1 +2020-07-09,Gloucester,Virginia,51073,64,1 +2020-03-17,Goochland,Virginia,51075,1,0 +2020-03-18,Goochland,Virginia,51075,1,0 +2020-03-19,Goochland,Virginia,51075,1,0 +2020-03-20,Goochland,Virginia,51075,1,0 +2020-03-21,Goochland,Virginia,51075,1,0 +2020-03-22,Goochland,Virginia,51075,2,0 +2020-03-23,Goochland,Virginia,51075,2,0 +2020-03-24,Goochland,Virginia,51075,3,0 +2020-03-25,Goochland,Virginia,51075,3,0 +2020-03-26,Goochland,Virginia,51075,3,0 +2020-03-27,Goochland,Virginia,51075,3,0 +2020-03-28,Goochland,Virginia,51075,5,0 +2020-03-29,Goochland,Virginia,51075,6,0 +2020-03-30,Goochland,Virginia,51075,6,0 +2020-03-31,Goochland,Virginia,51075,7,0 +2020-04-01,Goochland,Virginia,51075,7,0 +2020-04-02,Goochland,Virginia,51075,9,0 +2020-04-03,Goochland,Virginia,51075,8,0 +2020-04-04,Goochland,Virginia,51075,10,0 +2020-04-05,Goochland,Virginia,51075,15,0 +2020-04-06,Goochland,Virginia,51075,17,0 +2020-04-07,Goochland,Virginia,51075,22,0 +2020-04-08,Goochland,Virginia,51075,24,0 +2020-04-09,Goochland,Virginia,51075,24,0 +2020-04-10,Goochland,Virginia,51075,26,0 +2020-04-11,Goochland,Virginia,51075,26,0 +2020-04-12,Goochland,Virginia,51075,32,0 +2020-04-13,Goochland,Virginia,51075,38,0 +2020-04-14,Goochland,Virginia,51075,39,1 +2020-04-15,Goochland,Virginia,51075,40,1 +2020-04-16,Goochland,Virginia,51075,41,1 +2020-04-17,Goochland,Virginia,51075,52,1 +2020-04-18,Goochland,Virginia,51075,55,1 +2020-04-19,Goochland,Virginia,51075,55,1 +2020-04-20,Goochland,Virginia,51075,58,1 +2020-04-21,Goochland,Virginia,51075,62,3 +2020-04-22,Goochland,Virginia,51075,63,3 +2020-04-23,Goochland,Virginia,51075,63,3 +2020-04-24,Goochland,Virginia,51075,69,3 +2020-04-25,Goochland,Virginia,51075,69,3 +2020-04-26,Goochland,Virginia,51075,70,3 +2020-04-27,Goochland,Virginia,51075,72,3 +2020-04-28,Goochland,Virginia,51075,74,3 +2020-04-29,Goochland,Virginia,51075,74,4 +2020-04-30,Goochland,Virginia,51075,76,4 +2020-05-01,Goochland,Virginia,51075,78,4 +2020-05-02,Goochland,Virginia,51075,78,4 +2020-05-03,Goochland,Virginia,51075,79,5 +2020-05-04,Goochland,Virginia,51075,80,5 +2020-05-05,Goochland,Virginia,51075,80,5 +2020-05-06,Goochland,Virginia,51075,80,5 +2020-05-07,Goochland,Virginia,51075,81,5 +2020-05-08,Goochland,Virginia,51075,81,5 +2020-05-09,Goochland,Virginia,51075,81,5 +2020-05-10,Goochland,Virginia,51075,81,5 +2020-05-11,Goochland,Virginia,51075,81,5 +2020-05-12,Goochland,Virginia,51075,82,5 +2020-05-13,Goochland,Virginia,51075,82,5 +2020-05-14,Goochland,Virginia,51075,86,5 +2020-05-15,Goochland,Virginia,51075,86,5 +2020-05-16,Goochland,Virginia,51075,87,5 +2020-05-17,Goochland,Virginia,51075,87,5 +2020-05-18,Goochland,Virginia,51075,88,5 +2020-05-19,Goochland,Virginia,51075,88,5 +2020-05-20,Goochland,Virginia,51075,88,5 +2020-05-21,Goochland,Virginia,51075,89,5 +2020-05-22,Goochland,Virginia,51075,89,5 +2020-05-23,Goochland,Virginia,51075,90,5 +2020-05-24,Goochland,Virginia,51075,90,5 +2020-05-25,Goochland,Virginia,51075,93,6 +2020-05-26,Goochland,Virginia,51075,93,6 +2020-05-27,Goochland,Virginia,51075,94,6 +2020-05-28,Goochland,Virginia,51075,93,6 +2020-05-29,Goochland,Virginia,51075,95,6 +2020-05-30,Goochland,Virginia,51075,96,6 +2020-05-31,Goochland,Virginia,51075,99,6 +2020-06-01,Goochland,Virginia,51075,99,6 +2020-06-02,Goochland,Virginia,51075,101,6 +2020-06-03,Goochland,Virginia,51075,103,6 +2020-06-04,Goochland,Virginia,51075,103,6 +2020-06-05,Goochland,Virginia,51075,105,6 +2020-06-06,Goochland,Virginia,51075,105,6 +2020-06-07,Goochland,Virginia,51075,107,6 +2020-06-08,Goochland,Virginia,51075,107,6 +2020-06-09,Goochland,Virginia,51075,108,6 +2020-06-10,Goochland,Virginia,51075,106,6 +2020-06-11,Goochland,Virginia,51075,109,6 +2020-06-12,Goochland,Virginia,51075,112,6 +2020-06-13,Goochland,Virginia,51075,114,6 +2020-06-14,Goochland,Virginia,51075,114,6 +2020-06-15,Goochland,Virginia,51075,116,6 +2020-06-16,Goochland,Virginia,51075,116,6 +2020-06-17,Goochland,Virginia,51075,116,6 +2020-06-18,Goochland,Virginia,51075,116,6 +2020-06-19,Goochland,Virginia,51075,115,6 +2020-06-20,Goochland,Virginia,51075,115,6 +2020-06-21,Goochland,Virginia,51075,115,6 +2020-06-22,Goochland,Virginia,51075,116,6 +2020-06-23,Goochland,Virginia,51075,118,6 +2020-06-24,Goochland,Virginia,51075,118,6 +2020-06-25,Goochland,Virginia,51075,118,6 +2020-06-26,Goochland,Virginia,51075,118,6 +2020-06-27,Goochland,Virginia,51075,118,6 +2020-06-28,Goochland,Virginia,51075,119,6 +2020-06-29,Goochland,Virginia,51075,119,6 +2020-06-30,Goochland,Virginia,51075,119,6 +2020-07-01,Goochland,Virginia,51075,120,6 +2020-07-02,Goochland,Virginia,51075,121,6 +2020-07-03,Goochland,Virginia,51075,126,6 +2020-07-04,Goochland,Virginia,51075,126,6 +2020-07-05,Goochland,Virginia,51075,127,6 +2020-07-06,Goochland,Virginia,51075,127,6 +2020-07-07,Goochland,Virginia,51075,128,6 +2020-07-08,Goochland,Virginia,51075,128,6 +2020-07-09,Goochland,Virginia,51075,129,6 +2020-04-28,Grayson,Virginia,51077,1,0 +2020-04-29,Grayson,Virginia,51077,1,0 +2020-04-30,Grayson,Virginia,51077,2,0 +2020-05-01,Grayson,Virginia,51077,2,0 +2020-05-02,Grayson,Virginia,51077,2,0 +2020-05-03,Grayson,Virginia,51077,2,0 +2020-05-04,Grayson,Virginia,51077,4,0 +2020-05-05,Grayson,Virginia,51077,5,0 +2020-05-06,Grayson,Virginia,51077,5,0 +2020-05-07,Grayson,Virginia,51077,5,0 +2020-05-08,Grayson,Virginia,51077,5,0 +2020-05-09,Grayson,Virginia,51077,5,0 +2020-05-10,Grayson,Virginia,51077,12,0 +2020-05-11,Grayson,Virginia,51077,15,0 +2020-05-12,Grayson,Virginia,51077,16,0 +2020-05-13,Grayson,Virginia,51077,18,0 +2020-05-14,Grayson,Virginia,51077,18,0 +2020-05-15,Grayson,Virginia,51077,19,0 +2020-05-16,Grayson,Virginia,51077,20,0 +2020-05-17,Grayson,Virginia,51077,21,0 +2020-05-18,Grayson,Virginia,51077,21,0 +2020-05-19,Grayson,Virginia,51077,21,0 +2020-05-20,Grayson,Virginia,51077,22,0 +2020-05-21,Grayson,Virginia,51077,22,0 +2020-05-22,Grayson,Virginia,51077,24,0 +2020-05-23,Grayson,Virginia,51077,24,0 +2020-05-24,Grayson,Virginia,51077,26,0 +2020-05-25,Grayson,Virginia,51077,30,0 +2020-05-26,Grayson,Virginia,51077,31,0 +2020-05-27,Grayson,Virginia,51077,32,0 +2020-05-28,Grayson,Virginia,51077,32,0 +2020-05-29,Grayson,Virginia,51077,34,0 +2020-05-30,Grayson,Virginia,51077,37,0 +2020-05-31,Grayson,Virginia,51077,38,0 +2020-06-01,Grayson,Virginia,51077,38,0 +2020-06-02,Grayson,Virginia,51077,40,0 +2020-06-03,Grayson,Virginia,51077,42,0 +2020-06-04,Grayson,Virginia,51077,46,0 +2020-06-05,Grayson,Virginia,51077,46,0 +2020-06-06,Grayson,Virginia,51077,48,0 +2020-06-07,Grayson,Virginia,51077,53,0 +2020-06-08,Grayson,Virginia,51077,54,0 +2020-06-09,Grayson,Virginia,51077,55,1 +2020-06-10,Grayson,Virginia,51077,60,2 +2020-06-11,Grayson,Virginia,51077,63,2 +2020-06-12,Grayson,Virginia,51077,63,2 +2020-06-13,Grayson,Virginia,51077,66,2 +2020-06-14,Grayson,Virginia,51077,66,2 +2020-06-15,Grayson,Virginia,51077,66,2 +2020-06-16,Grayson,Virginia,51077,66,2 +2020-06-17,Grayson,Virginia,51077,68,2 +2020-06-18,Grayson,Virginia,51077,69,2 +2020-06-19,Grayson,Virginia,51077,74,2 +2020-06-20,Grayson,Virginia,51077,77,2 +2020-06-21,Grayson,Virginia,51077,79,2 +2020-06-22,Grayson,Virginia,51077,80,2 +2020-06-23,Grayson,Virginia,51077,81,2 +2020-06-24,Grayson,Virginia,51077,81,2 +2020-06-25,Grayson,Virginia,51077,81,2 +2020-06-26,Grayson,Virginia,51077,84,2 +2020-06-27,Grayson,Virginia,51077,84,2 +2020-06-28,Grayson,Virginia,51077,84,2 +2020-06-29,Grayson,Virginia,51077,84,2 +2020-06-30,Grayson,Virginia,51077,84,2 +2020-07-01,Grayson,Virginia,51077,86,2 +2020-07-02,Grayson,Virginia,51077,87,2 +2020-07-03,Grayson,Virginia,51077,87,2 +2020-07-04,Grayson,Virginia,51077,88,2 +2020-07-05,Grayson,Virginia,51077,89,2 +2020-07-06,Grayson,Virginia,51077,90,2 +2020-07-07,Grayson,Virginia,51077,91,2 +2020-07-08,Grayson,Virginia,51077,91,2 +2020-07-09,Grayson,Virginia,51077,91,4 +2020-03-26,Greene,Virginia,51079,1,0 +2020-03-27,Greene,Virginia,51079,1,0 +2020-03-28,Greene,Virginia,51079,1,0 +2020-03-29,Greene,Virginia,51079,1,0 +2020-03-30,Greene,Virginia,51079,1,0 +2020-03-31,Greene,Virginia,51079,1,0 +2020-04-01,Greene,Virginia,51079,1,0 +2020-04-02,Greene,Virginia,51079,1,0 +2020-04-03,Greene,Virginia,51079,1,0 +2020-04-04,Greene,Virginia,51079,2,0 +2020-04-05,Greene,Virginia,51079,3,0 +2020-04-06,Greene,Virginia,51079,4,0 +2020-04-07,Greene,Virginia,51079,4,0 +2020-04-08,Greene,Virginia,51079,4,0 +2020-04-09,Greene,Virginia,51079,4,0 +2020-04-10,Greene,Virginia,51079,4,0 +2020-04-11,Greene,Virginia,51079,4,0 +2020-04-12,Greene,Virginia,51079,4,0 +2020-04-13,Greene,Virginia,51079,5,0 +2020-04-14,Greene,Virginia,51079,5,0 +2020-04-15,Greene,Virginia,51079,5,0 +2020-04-16,Greene,Virginia,51079,5,0 +2020-04-17,Greene,Virginia,51079,7,0 +2020-04-18,Greene,Virginia,51079,8,0 +2020-04-19,Greene,Virginia,51079,8,0 +2020-04-20,Greene,Virginia,51079,8,0 +2020-04-21,Greene,Virginia,51079,8,1 +2020-04-22,Greene,Virginia,51079,9,1 +2020-04-23,Greene,Virginia,51079,10,1 +2020-04-24,Greene,Virginia,51079,10,1 +2020-04-25,Greene,Virginia,51079,10,1 +2020-04-26,Greene,Virginia,51079,10,1 +2020-04-27,Greene,Virginia,51079,10,1 +2020-04-28,Greene,Virginia,51079,9,1 +2020-04-29,Greene,Virginia,51079,10,1 +2020-04-30,Greene,Virginia,51079,10,1 +2020-05-01,Greene,Virginia,51079,10,1 +2020-05-02,Greene,Virginia,51079,10,1 +2020-05-03,Greene,Virginia,51079,10,1 +2020-05-04,Greene,Virginia,51079,12,1 +2020-05-05,Greene,Virginia,51079,13,1 +2020-05-06,Greene,Virginia,51079,13,1 +2020-05-07,Greene,Virginia,51079,13,1 +2020-05-08,Greene,Virginia,51079,14,1 +2020-05-09,Greene,Virginia,51079,14,1 +2020-05-10,Greene,Virginia,51079,15,1 +2020-05-11,Greene,Virginia,51079,15,1 +2020-05-12,Greene,Virginia,51079,16,1 +2020-05-13,Greene,Virginia,51079,16,1 +2020-05-14,Greene,Virginia,51079,16,1 +2020-05-15,Greene,Virginia,51079,16,1 +2020-05-16,Greene,Virginia,51079,19,1 +2020-05-17,Greene,Virginia,51079,19,1 +2020-05-18,Greene,Virginia,51079,19,1 +2020-05-19,Greene,Virginia,51079,19,1 +2020-05-20,Greene,Virginia,51079,20,1 +2020-05-21,Greene,Virginia,51079,20,1 +2020-05-22,Greene,Virginia,51079,21,1 +2020-05-23,Greene,Virginia,51079,21,1 +2020-05-24,Greene,Virginia,51079,22,1 +2020-05-25,Greene,Virginia,51079,23,1 +2020-05-26,Greene,Virginia,51079,25,1 +2020-05-27,Greene,Virginia,51079,27,1 +2020-05-28,Greene,Virginia,51079,28,1 +2020-05-29,Greene,Virginia,51079,31,1 +2020-05-30,Greene,Virginia,51079,34,1 +2020-05-31,Greene,Virginia,51079,34,1 +2020-06-01,Greene,Virginia,51079,34,1 +2020-06-02,Greene,Virginia,51079,34,1 +2020-06-03,Greene,Virginia,51079,34,1 +2020-06-04,Greene,Virginia,51079,34,1 +2020-06-05,Greene,Virginia,51079,35,1 +2020-06-06,Greene,Virginia,51079,38,1 +2020-06-07,Greene,Virginia,51079,43,1 +2020-06-08,Greene,Virginia,51079,44,1 +2020-06-09,Greene,Virginia,51079,44,1 +2020-06-10,Greene,Virginia,51079,44,1 +2020-06-11,Greene,Virginia,51079,45,1 +2020-06-12,Greene,Virginia,51079,45,1 +2020-06-13,Greene,Virginia,51079,45,1 +2020-06-14,Greene,Virginia,51079,45,1 +2020-06-15,Greene,Virginia,51079,45,1 +2020-06-16,Greene,Virginia,51079,45,1 +2020-06-17,Greene,Virginia,51079,46,1 +2020-06-18,Greene,Virginia,51079,48,1 +2020-06-19,Greene,Virginia,51079,48,1 +2020-06-20,Greene,Virginia,51079,48,1 +2020-06-21,Greene,Virginia,51079,49,1 +2020-06-22,Greene,Virginia,51079,55,1 +2020-06-23,Greene,Virginia,51079,55,1 +2020-06-24,Greene,Virginia,51079,55,1 +2020-06-25,Greene,Virginia,51079,57,1 +2020-06-26,Greene,Virginia,51079,57,1 +2020-06-27,Greene,Virginia,51079,60,1 +2020-06-28,Greene,Virginia,51079,65,1 +2020-06-29,Greene,Virginia,51079,65,1 +2020-06-30,Greene,Virginia,51079,67,1 +2020-07-01,Greene,Virginia,51079,66,1 +2020-07-02,Greene,Virginia,51079,67,1 +2020-07-03,Greene,Virginia,51079,67,1 +2020-07-04,Greene,Virginia,51079,72,1 +2020-07-05,Greene,Virginia,51079,73,1 +2020-07-06,Greene,Virginia,51079,75,1 +2020-07-07,Greene,Virginia,51079,76,2 +2020-07-08,Greene,Virginia,51079,76,2 +2020-07-09,Greene,Virginia,51079,78,2 +2020-03-29,Greensville,Virginia,51081,1,0 +2020-03-30,Greensville,Virginia,51081,3,0 +2020-03-31,Greensville,Virginia,51081,3,0 +2020-04-01,Greensville,Virginia,51081,3,0 +2020-04-02,Greensville,Virginia,51081,3,0 +2020-04-03,Greensville,Virginia,51081,4,0 +2020-04-04,Greensville,Virginia,51081,4,0 +2020-04-05,Greensville,Virginia,51081,4,0 +2020-04-06,Greensville,Virginia,51081,4,0 +2020-04-07,Greensville,Virginia,51081,5,0 +2020-04-08,Greensville,Virginia,51081,5,0 +2020-04-09,Greensville,Virginia,51081,6,0 +2020-04-10,Greensville,Virginia,51081,7,0 +2020-04-11,Greensville,Virginia,51081,8,0 +2020-04-12,Greensville,Virginia,51081,8,0 +2020-04-13,Greensville,Virginia,51081,10,0 +2020-04-14,Greensville,Virginia,51081,15,0 +2020-04-15,Greensville,Virginia,51081,16,0 +2020-04-16,Greensville,Virginia,51081,16,0 +2020-04-17,Greensville,Virginia,51081,18,0 +2020-04-18,Greensville,Virginia,51081,18,0 +2020-04-19,Greensville,Virginia,51081,18,0 +2020-04-20,Greensville,Virginia,51081,21,0 +2020-04-21,Greensville,Virginia,51081,23,4 +2020-04-22,Greensville,Virginia,51081,24,4 +2020-04-23,Greensville,Virginia,51081,30,4 +2020-04-24,Greensville,Virginia,51081,30,4 +2020-04-25,Greensville,Virginia,51081,30,4 +2020-04-26,Greensville,Virginia,51081,30,5 +2020-04-27,Greensville,Virginia,51081,36,6 +2020-04-28,Greensville,Virginia,51081,36,6 +2020-04-29,Greensville,Virginia,51081,38,6 +2020-04-30,Greensville,Virginia,51081,39,6 +2020-05-01,Greensville,Virginia,51081,39,6 +2020-05-02,Greensville,Virginia,51081,39,6 +2020-05-03,Greensville,Virginia,51081,39,6 +2020-05-04,Greensville,Virginia,51081,41,7 +2020-05-05,Greensville,Virginia,51081,41,7 +2020-05-06,Greensville,Virginia,51081,41,7 +2020-05-07,Greensville,Virginia,51081,44,7 +2020-05-08,Greensville,Virginia,51081,44,7 +2020-05-09,Greensville,Virginia,51081,44,7 +2020-05-10,Greensville,Virginia,51081,46,7 +2020-05-11,Greensville,Virginia,51081,47,7 +2020-05-12,Greensville,Virginia,51081,48,7 +2020-05-13,Greensville,Virginia,51081,49,7 +2020-05-14,Greensville,Virginia,51081,49,7 +2020-05-15,Greensville,Virginia,51081,50,7 +2020-05-16,Greensville,Virginia,51081,50,7 +2020-05-17,Greensville,Virginia,51081,50,7 +2020-05-18,Greensville,Virginia,51081,50,7 +2020-05-19,Greensville,Virginia,51081,54,7 +2020-05-20,Greensville,Virginia,51081,55,7 +2020-05-21,Greensville,Virginia,51081,55,7 +2020-05-22,Greensville,Virginia,51081,55,7 +2020-05-23,Greensville,Virginia,51081,55,7 +2020-05-24,Greensville,Virginia,51081,55,7 +2020-05-25,Greensville,Virginia,51081,55,7 +2020-05-26,Greensville,Virginia,51081,57,7 +2020-05-27,Greensville,Virginia,51081,58,7 +2020-05-28,Greensville,Virginia,51081,63,7 +2020-05-29,Greensville,Virginia,51081,69,7 +2020-05-30,Greensville,Virginia,51081,73,7 +2020-05-31,Greensville,Virginia,51081,73,7 +2020-06-01,Greensville,Virginia,51081,74,7 +2020-06-02,Greensville,Virginia,51081,100,7 +2020-06-03,Greensville,Virginia,51081,150,7 +2020-06-04,Greensville,Virginia,51081,213,7 +2020-06-05,Greensville,Virginia,51081,229,7 +2020-06-06,Greensville,Virginia,51081,239,7 +2020-06-07,Greensville,Virginia,51081,254,7 +2020-06-08,Greensville,Virginia,51081,255,7 +2020-06-09,Greensville,Virginia,51081,277,7 +2020-06-10,Greensville,Virginia,51081,300,7 +2020-06-11,Greensville,Virginia,51081,303,7 +2020-06-12,Greensville,Virginia,51081,306,7 +2020-06-13,Greensville,Virginia,51081,336,7 +2020-06-14,Greensville,Virginia,51081,343,7 +2020-06-15,Greensville,Virginia,51081,344,7 +2020-06-16,Greensville,Virginia,51081,342,7 +2020-06-17,Greensville,Virginia,51081,343,7 +2020-06-18,Greensville,Virginia,51081,344,7 +2020-06-19,Greensville,Virginia,51081,344,7 +2020-06-20,Greensville,Virginia,51081,343,7 +2020-06-21,Greensville,Virginia,51081,343,7 +2020-06-22,Greensville,Virginia,51081,346,7 +2020-06-23,Greensville,Virginia,51081,347,7 +2020-06-24,Greensville,Virginia,51081,350,7 +2020-06-25,Greensville,Virginia,51081,351,7 +2020-06-26,Greensville,Virginia,51081,352,7 +2020-06-27,Greensville,Virginia,51081,355,7 +2020-06-28,Greensville,Virginia,51081,355,7 +2020-06-29,Greensville,Virginia,51081,354,7 +2020-06-30,Greensville,Virginia,51081,359,7 +2020-07-01,Greensville,Virginia,51081,361,7 +2020-07-02,Greensville,Virginia,51081,366,7 +2020-07-03,Greensville,Virginia,51081,366,7 +2020-07-04,Greensville,Virginia,51081,368,7 +2020-07-05,Greensville,Virginia,51081,368,7 +2020-07-06,Greensville,Virginia,51081,368,7 +2020-07-07,Greensville,Virginia,51081,367,8 +2020-07-08,Greensville,Virginia,51081,370,8 +2020-07-09,Greensville,Virginia,51081,373,8 +2020-03-24,Halifax,Virginia,51083,1,0 +2020-03-25,Halifax,Virginia,51083,1,0 +2020-03-26,Halifax,Virginia,51083,1,0 +2020-03-27,Halifax,Virginia,51083,1,0 +2020-03-28,Halifax,Virginia,51083,1,0 +2020-03-29,Halifax,Virginia,51083,1,0 +2020-03-30,Halifax,Virginia,51083,1,0 +2020-03-31,Halifax,Virginia,51083,1,0 +2020-04-01,Halifax,Virginia,51083,1,0 +2020-04-02,Halifax,Virginia,51083,1,0 +2020-04-03,Halifax,Virginia,51083,1,0 +2020-04-04,Halifax,Virginia,51083,1,0 +2020-04-05,Halifax,Virginia,51083,2,0 +2020-04-06,Halifax,Virginia,51083,2,0 +2020-04-07,Halifax,Virginia,51083,2,0 +2020-04-08,Halifax,Virginia,51083,2,0 +2020-04-09,Halifax,Virginia,51083,4,0 +2020-04-10,Halifax,Virginia,51083,5,0 +2020-04-11,Halifax,Virginia,51083,7,0 +2020-04-12,Halifax,Virginia,51083,7,0 +2020-04-13,Halifax,Virginia,51083,7,0 +2020-04-14,Halifax,Virginia,51083,7,0 +2020-04-15,Halifax,Virginia,51083,7,0 +2020-04-16,Halifax,Virginia,51083,7,0 +2020-04-17,Halifax,Virginia,51083,7,0 +2020-04-18,Halifax,Virginia,51083,8,0 +2020-04-19,Halifax,Virginia,51083,8,0 +2020-04-20,Halifax,Virginia,51083,10,0 +2020-04-21,Halifax,Virginia,51083,12,0 +2020-04-22,Halifax,Virginia,51083,12,0 +2020-04-23,Halifax,Virginia,51083,13,0 +2020-04-24,Halifax,Virginia,51083,16,0 +2020-04-25,Halifax,Virginia,51083,16,0 +2020-04-26,Halifax,Virginia,51083,17,0 +2020-04-27,Halifax,Virginia,51083,17,0 +2020-04-28,Halifax,Virginia,51083,17,0 +2020-04-29,Halifax,Virginia,51083,17,0 +2020-04-30,Halifax,Virginia,51083,18,0 +2020-05-01,Halifax,Virginia,51083,18,0 +2020-05-02,Halifax,Virginia,51083,19,0 +2020-05-03,Halifax,Virginia,51083,19,0 +2020-05-04,Halifax,Virginia,51083,19,0 +2020-05-05,Halifax,Virginia,51083,18,0 +2020-05-06,Halifax,Virginia,51083,18,0 +2020-05-07,Halifax,Virginia,51083,19,0 +2020-05-08,Halifax,Virginia,51083,20,0 +2020-05-09,Halifax,Virginia,51083,22,0 +2020-05-10,Halifax,Virginia,51083,22,0 +2020-05-11,Halifax,Virginia,51083,22,0 +2020-05-12,Halifax,Virginia,51083,24,0 +2020-05-13,Halifax,Virginia,51083,25,0 +2020-05-14,Halifax,Virginia,51083,27,0 +2020-05-15,Halifax,Virginia,51083,27,0 +2020-05-16,Halifax,Virginia,51083,27,0 +2020-05-17,Halifax,Virginia,51083,27,0 +2020-05-18,Halifax,Virginia,51083,27,0 +2020-05-19,Halifax,Virginia,51083,29,0 +2020-05-20,Halifax,Virginia,51083,29,0 +2020-05-21,Halifax,Virginia,51083,29,0 +2020-05-22,Halifax,Virginia,51083,29,0 +2020-05-23,Halifax,Virginia,51083,29,0 +2020-05-24,Halifax,Virginia,51083,29,0 +2020-05-25,Halifax,Virginia,51083,29,0 +2020-05-26,Halifax,Virginia,51083,30,0 +2020-05-27,Halifax,Virginia,51083,30,0 +2020-05-28,Halifax,Virginia,51083,30,0 +2020-05-29,Halifax,Virginia,51083,30,0 +2020-05-30,Halifax,Virginia,51083,30,0 +2020-05-31,Halifax,Virginia,51083,30,0 +2020-06-01,Halifax,Virginia,51083,30,0 +2020-06-02,Halifax,Virginia,51083,30,0 +2020-06-03,Halifax,Virginia,51083,30,1 +2020-06-04,Halifax,Virginia,51083,31,1 +2020-06-05,Halifax,Virginia,51083,31,1 +2020-06-06,Halifax,Virginia,51083,31,1 +2020-06-07,Halifax,Virginia,51083,32,1 +2020-06-08,Halifax,Virginia,51083,32,1 +2020-06-09,Halifax,Virginia,51083,32,1 +2020-06-10,Halifax,Virginia,51083,32,1 +2020-06-11,Halifax,Virginia,51083,32,1 +2020-06-12,Halifax,Virginia,51083,32,1 +2020-06-13,Halifax,Virginia,51083,35,1 +2020-06-14,Halifax,Virginia,51083,37,1 +2020-06-15,Halifax,Virginia,51083,37,1 +2020-06-16,Halifax,Virginia,51083,38,1 +2020-06-17,Halifax,Virginia,51083,39,1 +2020-06-18,Halifax,Virginia,51083,39,1 +2020-06-19,Halifax,Virginia,51083,39,1 +2020-06-20,Halifax,Virginia,51083,39,1 +2020-06-21,Halifax,Virginia,51083,39,1 +2020-06-22,Halifax,Virginia,51083,39,1 +2020-06-23,Halifax,Virginia,51083,41,1 +2020-06-24,Halifax,Virginia,51083,41,1 +2020-06-25,Halifax,Virginia,51083,41,1 +2020-06-26,Halifax,Virginia,51083,42,1 +2020-06-27,Halifax,Virginia,51083,49,1 +2020-06-28,Halifax,Virginia,51083,49,1 +2020-06-29,Halifax,Virginia,51083,50,1 +2020-06-30,Halifax,Virginia,51083,53,1 +2020-07-01,Halifax,Virginia,51083,54,1 +2020-07-02,Halifax,Virginia,51083,57,1 +2020-07-03,Halifax,Virginia,51083,59,1 +2020-07-04,Halifax,Virginia,51083,63,1 +2020-07-05,Halifax,Virginia,51083,63,1 +2020-07-06,Halifax,Virginia,51083,65,1 +2020-07-07,Halifax,Virginia,51083,68,1 +2020-07-08,Halifax,Virginia,51083,70,1 +2020-07-09,Halifax,Virginia,51083,73,1 +2020-03-12,Hanover,Virginia,51085,1,0 +2020-03-13,Hanover,Virginia,51085,1,0 +2020-03-14,Hanover,Virginia,51085,1,0 +2020-03-15,Hanover,Virginia,51085,1,0 +2020-03-16,Hanover,Virginia,51085,1,0 +2020-03-17,Hanover,Virginia,51085,1,0 +2020-03-18,Hanover,Virginia,51085,1,0 +2020-03-19,Hanover,Virginia,51085,1,0 +2020-03-20,Hanover,Virginia,51085,1,0 +2020-03-21,Hanover,Virginia,51085,1,0 +2020-03-22,Hanover,Virginia,51085,1,0 +2020-03-23,Hanover,Virginia,51085,2,0 +2020-03-24,Hanover,Virginia,51085,2,0 +2020-03-25,Hanover,Virginia,51085,2,0 +2020-03-26,Hanover,Virginia,51085,2,0 +2020-03-27,Hanover,Virginia,51085,2,0 +2020-03-28,Hanover,Virginia,51085,3,0 +2020-03-29,Hanover,Virginia,51085,4,0 +2020-03-30,Hanover,Virginia,51085,5,0 +2020-03-31,Hanover,Virginia,51085,6,0 +2020-04-01,Hanover,Virginia,51085,6,0 +2020-04-02,Hanover,Virginia,51085,8,0 +2020-04-03,Hanover,Virginia,51085,12,0 +2020-04-04,Hanover,Virginia,51085,12,0 +2020-04-05,Hanover,Virginia,51085,12,0 +2020-04-06,Hanover,Virginia,51085,13,0 +2020-04-07,Hanover,Virginia,51085,19,0 +2020-04-08,Hanover,Virginia,51085,22,0 +2020-04-09,Hanover,Virginia,51085,29,0 +2020-04-10,Hanover,Virginia,51085,31,0 +2020-04-11,Hanover,Virginia,51085,38,0 +2020-04-12,Hanover,Virginia,51085,38,0 +2020-04-13,Hanover,Virginia,51085,39,0 +2020-04-14,Hanover,Virginia,51085,52,0 +2020-04-15,Hanover,Virginia,51085,53,0 +2020-04-16,Hanover,Virginia,51085,61,0 +2020-04-17,Hanover,Virginia,51085,70,0 +2020-04-18,Hanover,Virginia,51085,79,0 +2020-04-19,Hanover,Virginia,51085,84,0 +2020-04-20,Hanover,Virginia,51085,91,0 +2020-04-21,Hanover,Virginia,51085,93,6 +2020-04-22,Hanover,Virginia,51085,97,6 +2020-04-23,Hanover,Virginia,51085,99,7 +2020-04-24,Hanover,Virginia,51085,100,7 +2020-04-25,Hanover,Virginia,51085,103,7 +2020-04-26,Hanover,Virginia,51085,105,7 +2020-04-27,Hanover,Virginia,51085,108,7 +2020-04-28,Hanover,Virginia,51085,109,9 +2020-04-29,Hanover,Virginia,51085,113,9 +2020-04-30,Hanover,Virginia,51085,118,9 +2020-05-01,Hanover,Virginia,51085,132,12 +2020-05-02,Hanover,Virginia,51085,133,11 +2020-05-03,Hanover,Virginia,51085,137,12 +2020-05-04,Hanover,Virginia,51085,141,12 +2020-05-05,Hanover,Virginia,51085,145,13 +2020-05-06,Hanover,Virginia,51085,145,13 +2020-05-07,Hanover,Virginia,51085,154,15 +2020-05-08,Hanover,Virginia,51085,155,15 +2020-05-09,Hanover,Virginia,51085,163,16 +2020-05-10,Hanover,Virginia,51085,170,16 +2020-05-11,Hanover,Virginia,51085,171,16 +2020-05-12,Hanover,Virginia,51085,174,17 +2020-05-13,Hanover,Virginia,51085,183,17 +2020-05-14,Hanover,Virginia,51085,198,18 +2020-05-15,Hanover,Virginia,51085,208,19 +2020-05-16,Hanover,Virginia,51085,215,19 +2020-05-17,Hanover,Virginia,51085,220,19 +2020-05-18,Hanover,Virginia,51085,225,19 +2020-05-19,Hanover,Virginia,51085,232,19 +2020-05-20,Hanover,Virginia,51085,238,19 +2020-05-21,Hanover,Virginia,51085,244,19 +2020-05-22,Hanover,Virginia,51085,246,19 +2020-05-23,Hanover,Virginia,51085,252,19 +2020-05-24,Hanover,Virginia,51085,252,19 +2020-05-25,Hanover,Virginia,51085,275,19 +2020-05-26,Hanover,Virginia,51085,301,19 +2020-05-27,Hanover,Virginia,51085,309,22 +2020-05-28,Hanover,Virginia,51085,316,24 +2020-05-29,Hanover,Virginia,51085,320,24 +2020-05-30,Hanover,Virginia,51085,322,24 +2020-05-31,Hanover,Virginia,51085,326,24 +2020-06-01,Hanover,Virginia,51085,327,24 +2020-06-02,Hanover,Virginia,51085,335,24 +2020-06-03,Hanover,Virginia,51085,331,24 +2020-06-04,Hanover,Virginia,51085,336,24 +2020-06-05,Hanover,Virginia,51085,338,24 +2020-06-06,Hanover,Virginia,51085,340,24 +2020-06-07,Hanover,Virginia,51085,348,24 +2020-06-08,Hanover,Virginia,51085,347,24 +2020-06-09,Hanover,Virginia,51085,351,24 +2020-06-10,Hanover,Virginia,51085,354,25 +2020-06-11,Hanover,Virginia,51085,357,25 +2020-06-12,Hanover,Virginia,51085,362,25 +2020-06-13,Hanover,Virginia,51085,368,25 +2020-06-14,Hanover,Virginia,51085,371,25 +2020-06-15,Hanover,Virginia,51085,374,25 +2020-06-16,Hanover,Virginia,51085,375,25 +2020-06-17,Hanover,Virginia,51085,378,25 +2020-06-18,Hanover,Virginia,51085,380,25 +2020-06-19,Hanover,Virginia,51085,387,25 +2020-06-20,Hanover,Virginia,51085,397,25 +2020-06-21,Hanover,Virginia,51085,403,25 +2020-06-22,Hanover,Virginia,51085,405,25 +2020-06-23,Hanover,Virginia,51085,410,25 +2020-06-24,Hanover,Virginia,51085,410,25 +2020-06-25,Hanover,Virginia,51085,412,25 +2020-06-26,Hanover,Virginia,51085,415,25 +2020-06-27,Hanover,Virginia,51085,416,26 +2020-06-28,Hanover,Virginia,51085,420,26 +2020-06-29,Hanover,Virginia,51085,423,26 +2020-06-30,Hanover,Virginia,51085,429,26 +2020-07-01,Hanover,Virginia,51085,429,27 +2020-07-02,Hanover,Virginia,51085,435,27 +2020-07-03,Hanover,Virginia,51085,442,29 +2020-07-04,Hanover,Virginia,51085,443,29 +2020-07-05,Hanover,Virginia,51085,447,29 +2020-07-06,Hanover,Virginia,51085,449,29 +2020-07-07,Hanover,Virginia,51085,452,31 +2020-07-08,Hanover,Virginia,51085,456,31 +2020-07-09,Hanover,Virginia,51085,459,31 +2020-03-17,Henrico,Virginia,51087,2,0 +2020-03-18,Henrico,Virginia,51087,2,0 +2020-03-19,Henrico,Virginia,51087,2,0 +2020-03-20,Henrico,Virginia,51087,3,0 +2020-03-21,Henrico,Virginia,51087,7,0 +2020-03-22,Henrico,Virginia,51087,8,0 +2020-03-23,Henrico,Virginia,51087,11,0 +2020-03-24,Henrico,Virginia,51087,14,0 +2020-03-25,Henrico,Virginia,51087,20,2 +2020-03-26,Henrico,Virginia,51087,28,3 +2020-03-27,Henrico,Virginia,51087,28,3 +2020-03-28,Henrico,Virginia,51087,31,3 +2020-03-29,Henrico,Virginia,51087,40,3 +2020-03-30,Henrico,Virginia,51087,44,3 +2020-03-31,Henrico,Virginia,51087,62,3 +2020-04-01,Henrico,Virginia,51087,78,3 +2020-04-02,Henrico,Virginia,51087,87,3 +2020-04-03,Henrico,Virginia,51087,112,16 +2020-04-04,Henrico,Virginia,51087,174,16 +2020-04-05,Henrico,Virginia,51087,194,16 +2020-04-06,Henrico,Virginia,51087,207,16 +2020-04-07,Henrico,Virginia,51087,267,16 +2020-04-08,Henrico,Virginia,51087,291,33 +2020-04-09,Henrico,Virginia,51087,319,35 +2020-04-10,Henrico,Virginia,51087,342,35 +2020-04-11,Henrico,Virginia,51087,368,35 +2020-04-12,Henrico,Virginia,51087,379,35 +2020-04-13,Henrico,Virginia,51087,397,45 +2020-04-14,Henrico,Virginia,51087,432,45 +2020-04-15,Henrico,Virginia,51087,453,45 +2020-04-16,Henrico,Virginia,51087,497,45 +2020-04-17,Henrico,Virginia,51087,532,45 +2020-04-18,Henrico,Virginia,51087,559,45 +2020-04-19,Henrico,Virginia,51087,584,71 +2020-04-20,Henrico,Virginia,51087,598,71 +2020-04-21,Henrico,Virginia,51087,621,77 +2020-04-22,Henrico,Virginia,51087,684,82 +2020-04-23,Henrico,Virginia,51087,718,83 +2020-04-24,Henrico,Virginia,51087,729,86 +2020-04-25,Henrico,Virginia,51087,764,89 +2020-04-26,Henrico,Virginia,51087,792,89 +2020-04-27,Henrico,Virginia,51087,817,89 +2020-04-28,Henrico,Virginia,51087,835,95 +2020-04-29,Henrico,Virginia,51087,846,98 +2020-04-30,Henrico,Virginia,51087,876,100 +2020-05-01,Henrico,Virginia,51087,898,102 +2020-05-02,Henrico,Virginia,51087,926,104 +2020-05-03,Henrico,Virginia,51087,954,105 +2020-05-04,Henrico,Virginia,51087,964,105 +2020-05-05,Henrico,Virginia,51087,985,106 +2020-05-06,Henrico,Virginia,51087,985,106 +2020-05-07,Henrico,Virginia,51087,1025,109 +2020-05-08,Henrico,Virginia,51087,1032,110 +2020-05-09,Henrico,Virginia,51087,1054,109 +2020-05-10,Henrico,Virginia,51087,1067,109 +2020-05-11,Henrico,Virginia,51087,1083,110 +2020-05-12,Henrico,Virginia,51087,1106,112 +2020-05-13,Henrico,Virginia,51087,1146,112 +2020-05-14,Henrico,Virginia,51087,1174,112 +2020-05-15,Henrico,Virginia,51087,1198,113 +2020-05-16,Henrico,Virginia,51087,1226,113 +2020-05-17,Henrico,Virginia,51087,1252,113 +2020-05-18,Henrico,Virginia,51087,1272,113 +2020-05-19,Henrico,Virginia,51087,1299,114 +2020-05-20,Henrico,Virginia,51087,1321,114 +2020-05-21,Henrico,Virginia,51087,1339,114 +2020-05-22,Henrico,Virginia,51087,1375,117 +2020-05-23,Henrico,Virginia,51087,1411,118 +2020-05-24,Henrico,Virginia,51087,1446,118 +2020-05-25,Henrico,Virginia,51087,1492,118 +2020-05-26,Henrico,Virginia,51087,1546,118 +2020-05-27,Henrico,Virginia,51087,1579,119 +2020-05-28,Henrico,Virginia,51087,1624,131 +2020-05-29,Henrico,Virginia,51087,1678,133 +2020-05-30,Henrico,Virginia,51087,1754,133 +2020-05-31,Henrico,Virginia,51087,1820,133 +2020-06-01,Henrico,Virginia,51087,1858,134 +2020-06-02,Henrico,Virginia,51087,1919,135 +2020-06-03,Henrico,Virginia,51087,1933,134 +2020-06-04,Henrico,Virginia,51087,1946,134 +2020-06-05,Henrico,Virginia,51087,1983,134 +2020-06-06,Henrico,Virginia,51087,2033,134 +2020-06-07,Henrico,Virginia,51087,2096,134 +2020-06-08,Henrico,Virginia,51087,2128,134 +2020-06-09,Henrico,Virginia,51087,2146,134 +2020-06-10,Henrico,Virginia,51087,2162,135 +2020-06-11,Henrico,Virginia,51087,2170,135 +2020-06-12,Henrico,Virginia,51087,2193,136 +2020-06-13,Henrico,Virginia,51087,2234,136 +2020-06-14,Henrico,Virginia,51087,2264,136 +2020-06-15,Henrico,Virginia,51087,2289,136 +2020-06-16,Henrico,Virginia,51087,2311,137 +2020-06-17,Henrico,Virginia,51087,2332,140 +2020-06-18,Henrico,Virginia,51087,2342,139 +2020-06-19,Henrico,Virginia,51087,2368,138 +2020-06-20,Henrico,Virginia,51087,2383,138 +2020-06-21,Henrico,Virginia,51087,2413,138 +2020-06-22,Henrico,Virginia,51087,2426,138 +2020-06-23,Henrico,Virginia,51087,2448,138 +2020-06-24,Henrico,Virginia,51087,2463,138 +2020-06-25,Henrico,Virginia,51087,2500,140 +2020-06-26,Henrico,Virginia,51087,2543,141 +2020-06-27,Henrico,Virginia,51087,2560,141 +2020-06-28,Henrico,Virginia,51087,2579,141 +2020-06-29,Henrico,Virginia,51087,2584,141 +2020-06-30,Henrico,Virginia,51087,2591,141 +2020-07-01,Henrico,Virginia,51087,2603,146 +2020-07-02,Henrico,Virginia,51087,2615,152 +2020-07-03,Henrico,Virginia,51087,2629,157 +2020-07-04,Henrico,Virginia,51087,2663,158 +2020-07-05,Henrico,Virginia,51087,2681,158 +2020-07-06,Henrico,Virginia,51087,2685,159 +2020-07-07,Henrico,Virginia,51087,2708,163 +2020-07-08,Henrico,Virginia,51087,2721,165 +2020-07-09,Henrico,Virginia,51087,2725,169 +2020-03-30,Henry,Virginia,51089,1,0 +2020-03-31,Henry,Virginia,51089,1,0 +2020-04-01,Henry,Virginia,51089,2,0 +2020-04-02,Henry,Virginia,51089,2,0 +2020-04-03,Henry,Virginia,51089,3,0 +2020-04-04,Henry,Virginia,51089,3,0 +2020-04-05,Henry,Virginia,51089,3,0 +2020-04-06,Henry,Virginia,51089,3,0 +2020-04-07,Henry,Virginia,51089,4,0 +2020-04-08,Henry,Virginia,51089,4,0 +2020-04-09,Henry,Virginia,51089,5,0 +2020-04-10,Henry,Virginia,51089,5,0 +2020-04-11,Henry,Virginia,51089,8,0 +2020-04-12,Henry,Virginia,51089,8,0 +2020-04-13,Henry,Virginia,51089,8,0 +2020-04-14,Henry,Virginia,51089,8,0 +2020-04-15,Henry,Virginia,51089,8,0 +2020-04-16,Henry,Virginia,51089,8,0 +2020-04-17,Henry,Virginia,51089,10,0 +2020-04-18,Henry,Virginia,51089,10,0 +2020-04-19,Henry,Virginia,51089,10,0 +2020-04-20,Henry,Virginia,51089,10,0 +2020-04-21,Henry,Virginia,51089,10,1 +2020-04-22,Henry,Virginia,51089,10,1 +2020-04-23,Henry,Virginia,51089,10,1 +2020-04-24,Henry,Virginia,51089,12,1 +2020-04-25,Henry,Virginia,51089,13,1 +2020-04-26,Henry,Virginia,51089,14,1 +2020-04-27,Henry,Virginia,51089,15,1 +2020-04-28,Henry,Virginia,51089,16,1 +2020-04-29,Henry,Virginia,51089,16,1 +2020-04-30,Henry,Virginia,51089,16,1 +2020-05-01,Henry,Virginia,51089,16,1 +2020-05-02,Henry,Virginia,51089,19,1 +2020-05-03,Henry,Virginia,51089,19,1 +2020-05-04,Henry,Virginia,51089,19,1 +2020-05-05,Henry,Virginia,51089,19,1 +2020-05-06,Henry,Virginia,51089,19,1 +2020-05-07,Henry,Virginia,51089,20,1 +2020-05-08,Henry,Virginia,51089,21,1 +2020-05-09,Henry,Virginia,51089,22,1 +2020-05-10,Henry,Virginia,51089,22,1 +2020-05-11,Henry,Virginia,51089,25,1 +2020-05-12,Henry,Virginia,51089,27,1 +2020-05-13,Henry,Virginia,51089,28,1 +2020-05-14,Henry,Virginia,51089,28,1 +2020-05-15,Henry,Virginia,51089,30,1 +2020-05-16,Henry,Virginia,51089,34,2 +2020-05-17,Henry,Virginia,51089,36,2 +2020-05-18,Henry,Virginia,51089,43,2 +2020-05-19,Henry,Virginia,51089,46,2 +2020-05-20,Henry,Virginia,51089,50,2 +2020-05-21,Henry,Virginia,51089,53,2 +2020-05-22,Henry,Virginia,51089,59,2 +2020-05-23,Henry,Virginia,51089,63,2 +2020-05-24,Henry,Virginia,51089,67,2 +2020-05-25,Henry,Virginia,51089,77,2 +2020-05-26,Henry,Virginia,51089,84,2 +2020-05-27,Henry,Virginia,51089,92,3 +2020-05-28,Henry,Virginia,51089,95,3 +2020-05-29,Henry,Virginia,51089,99,3 +2020-05-30,Henry,Virginia,51089,104,3 +2020-05-31,Henry,Virginia,51089,113,3 +2020-06-01,Henry,Virginia,51089,114,3 +2020-06-02,Henry,Virginia,51089,136,3 +2020-06-03,Henry,Virginia,51089,145,3 +2020-06-04,Henry,Virginia,51089,152,3 +2020-06-05,Henry,Virginia,51089,155,3 +2020-06-06,Henry,Virginia,51089,159,3 +2020-06-07,Henry,Virginia,51089,166,3 +2020-06-08,Henry,Virginia,51089,169,3 +2020-06-09,Henry,Virginia,51089,174,3 +2020-06-10,Henry,Virginia,51089,182,3 +2020-06-11,Henry,Virginia,51089,188,3 +2020-06-12,Henry,Virginia,51089,193,3 +2020-06-13,Henry,Virginia,51089,198,3 +2020-06-14,Henry,Virginia,51089,199,3 +2020-06-15,Henry,Virginia,51089,202,3 +2020-06-16,Henry,Virginia,51089,210,3 +2020-06-17,Henry,Virginia,51089,212,3 +2020-06-18,Henry,Virginia,51089,214,3 +2020-06-19,Henry,Virginia,51089,224,3 +2020-06-20,Henry,Virginia,51089,227,3 +2020-06-21,Henry,Virginia,51089,226,3 +2020-06-22,Henry,Virginia,51089,227,3 +2020-06-23,Henry,Virginia,51089,228,4 +2020-06-24,Henry,Virginia,51089,230,4 +2020-06-25,Henry,Virginia,51089,232,4 +2020-06-26,Henry,Virginia,51089,237,4 +2020-06-27,Henry,Virginia,51089,243,4 +2020-06-28,Henry,Virginia,51089,249,4 +2020-06-29,Henry,Virginia,51089,250,4 +2020-06-30,Henry,Virginia,51089,260,4 +2020-07-01,Henry,Virginia,51089,264,4 +2020-07-02,Henry,Virginia,51089,273,4 +2020-07-03,Henry,Virginia,51089,280,4 +2020-07-04,Henry,Virginia,51089,284,4 +2020-07-05,Henry,Virginia,51089,288,4 +2020-07-06,Henry,Virginia,51089,293,4 +2020-07-07,Henry,Virginia,51089,301,5 +2020-07-08,Henry,Virginia,51089,315,5 +2020-07-09,Henry,Virginia,51089,330,5 +2020-04-22,Highland,Virginia,51091,1,0 +2020-04-23,Highland,Virginia,51091,1,0 +2020-04-24,Highland,Virginia,51091,1,0 +2020-04-25,Highland,Virginia,51091,1,0 +2020-04-26,Highland,Virginia,51091,1,0 +2020-04-27,Highland,Virginia,51091,1,0 +2020-04-28,Highland,Virginia,51091,2,0 +2020-04-29,Highland,Virginia,51091,2,0 +2020-04-30,Highland,Virginia,51091,2,0 +2020-05-01,Highland,Virginia,51091,2,0 +2020-05-02,Highland,Virginia,51091,2,0 +2020-05-03,Highland,Virginia,51091,2,0 +2020-05-04,Highland,Virginia,51091,2,0 +2020-05-05,Highland,Virginia,51091,2,0 +2020-05-06,Highland,Virginia,51091,2,0 +2020-05-07,Highland,Virginia,51091,2,0 +2020-05-08,Highland,Virginia,51091,2,0 +2020-05-09,Highland,Virginia,51091,2,0 +2020-05-10,Highland,Virginia,51091,2,0 +2020-05-11,Highland,Virginia,51091,2,0 +2020-05-12,Highland,Virginia,51091,2,0 +2020-05-13,Highland,Virginia,51091,2,0 +2020-05-14,Highland,Virginia,51091,2,0 +2020-05-15,Highland,Virginia,51091,2,0 +2020-05-16,Highland,Virginia,51091,2,0 +2020-05-17,Highland,Virginia,51091,2,0 +2020-05-18,Highland,Virginia,51091,2,0 +2020-05-19,Highland,Virginia,51091,2,0 +2020-05-20,Highland,Virginia,51091,2,0 +2020-05-21,Highland,Virginia,51091,3,0 +2020-05-22,Highland,Virginia,51091,3,0 +2020-05-23,Highland,Virginia,51091,3,0 +2020-05-24,Highland,Virginia,51091,3,0 +2020-05-25,Highland,Virginia,51091,3,0 +2020-05-26,Highland,Virginia,51091,3,0 +2020-05-27,Highland,Virginia,51091,3,0 +2020-05-28,Highland,Virginia,51091,3,0 +2020-05-29,Highland,Virginia,51091,3,0 +2020-05-30,Highland,Virginia,51091,3,0 +2020-05-31,Highland,Virginia,51091,3,0 +2020-06-01,Highland,Virginia,51091,3,0 +2020-06-02,Highland,Virginia,51091,3,0 +2020-06-03,Highland,Virginia,51091,3,0 +2020-06-04,Highland,Virginia,51091,3,0 +2020-06-05,Highland,Virginia,51091,3,0 +2020-06-06,Highland,Virginia,51091,3,0 +2020-06-07,Highland,Virginia,51091,3,0 +2020-06-08,Highland,Virginia,51091,3,0 +2020-06-09,Highland,Virginia,51091,3,0 +2020-06-10,Highland,Virginia,51091,2,0 +2020-06-11,Highland,Virginia,51091,2,0 +2020-06-12,Highland,Virginia,51091,2,0 +2020-06-13,Highland,Virginia,51091,2,0 +2020-06-14,Highland,Virginia,51091,3,0 +2020-06-15,Highland,Virginia,51091,3,0 +2020-06-16,Highland,Virginia,51091,3,0 +2020-06-17,Highland,Virginia,51091,3,0 +2020-06-18,Highland,Virginia,51091,3,0 +2020-06-19,Highland,Virginia,51091,3,0 +2020-06-20,Highland,Virginia,51091,3,0 +2020-06-21,Highland,Virginia,51091,3,0 +2020-06-22,Highland,Virginia,51091,3,0 +2020-06-23,Highland,Virginia,51091,3,0 +2020-06-24,Highland,Virginia,51091,3,0 +2020-06-25,Highland,Virginia,51091,3,0 +2020-06-26,Highland,Virginia,51091,3,0 +2020-06-27,Highland,Virginia,51091,3,0 +2020-06-28,Highland,Virginia,51091,3,0 +2020-06-29,Highland,Virginia,51091,3,0 +2020-06-30,Highland,Virginia,51091,3,0 +2020-07-01,Highland,Virginia,51091,3,0 +2020-07-02,Highland,Virginia,51091,3,0 +2020-07-03,Highland,Virginia,51091,3,0 +2020-07-04,Highland,Virginia,51091,3,0 +2020-07-05,Highland,Virginia,51091,3,0 +2020-07-06,Highland,Virginia,51091,3,0 +2020-07-07,Highland,Virginia,51091,3,0 +2020-07-08,Highland,Virginia,51091,3,0 +2020-07-09,Highland,Virginia,51091,3,0 +2020-03-21,Isle of Wight,Virginia,51093,1,0 +2020-03-22,Isle of Wight,Virginia,51093,1,0 +2020-03-23,Isle of Wight,Virginia,51093,1,0 +2020-03-24,Isle of Wight,Virginia,51093,2,0 +2020-03-25,Isle of Wight,Virginia,51093,2,0 +2020-03-26,Isle of Wight,Virginia,51093,2,0 +2020-03-27,Isle of Wight,Virginia,51093,2,0 +2020-03-28,Isle of Wight,Virginia,51093,3,0 +2020-03-29,Isle of Wight,Virginia,51093,3,0 +2020-03-30,Isle of Wight,Virginia,51093,3,0 +2020-03-31,Isle of Wight,Virginia,51093,4,0 +2020-04-01,Isle of Wight,Virginia,51093,5,0 +2020-04-02,Isle of Wight,Virginia,51093,8,0 +2020-04-03,Isle of Wight,Virginia,51093,11,0 +2020-04-04,Isle of Wight,Virginia,51093,18,0 +2020-04-05,Isle of Wight,Virginia,51093,18,0 +2020-04-06,Isle of Wight,Virginia,51093,22,0 +2020-04-07,Isle of Wight,Virginia,51093,23,0 +2020-04-08,Isle of Wight,Virginia,51093,23,0 +2020-04-09,Isle of Wight,Virginia,51093,24,0 +2020-04-10,Isle of Wight,Virginia,51093,24,0 +2020-04-11,Isle of Wight,Virginia,51093,28,0 +2020-04-12,Isle of Wight,Virginia,51093,31,0 +2020-04-13,Isle of Wight,Virginia,51093,33,0 +2020-04-14,Isle of Wight,Virginia,51093,60,0 +2020-04-15,Isle of Wight,Virginia,51093,60,0 +2020-04-16,Isle of Wight,Virginia,51093,63,0 +2020-04-17,Isle of Wight,Virginia,51093,69,0 +2020-04-18,Isle of Wight,Virginia,51093,83,0 +2020-04-19,Isle of Wight,Virginia,51093,86,0 +2020-04-20,Isle of Wight,Virginia,51093,86,0 +2020-04-21,Isle of Wight,Virginia,51093,88,1 +2020-04-22,Isle of Wight,Virginia,51093,90,2 +2020-04-23,Isle of Wight,Virginia,51093,91,2 +2020-04-24,Isle of Wight,Virginia,51093,91,2 +2020-04-25,Isle of Wight,Virginia,51093,91,2 +2020-04-26,Isle of Wight,Virginia,51093,93,2 +2020-04-27,Isle of Wight,Virginia,51093,93,2 +2020-04-28,Isle of Wight,Virginia,51093,96,2 +2020-04-29,Isle of Wight,Virginia,51093,96,2 +2020-04-30,Isle of Wight,Virginia,51093,99,2 +2020-05-01,Isle of Wight,Virginia,51093,99,2 +2020-05-02,Isle of Wight,Virginia,51093,99,2 +2020-05-03,Isle of Wight,Virginia,51093,99,2 +2020-05-04,Isle of Wight,Virginia,51093,99,2 +2020-05-05,Isle of Wight,Virginia,51093,100,3 +2020-05-06,Isle of Wight,Virginia,51093,100,3 +2020-05-07,Isle of Wight,Virginia,51093,103,3 +2020-05-08,Isle of Wight,Virginia,51093,105,3 +2020-05-09,Isle of Wight,Virginia,51093,108,3 +2020-05-10,Isle of Wight,Virginia,51093,110,3 +2020-05-11,Isle of Wight,Virginia,51093,112,3 +2020-05-12,Isle of Wight,Virginia,51093,113,3 +2020-05-13,Isle of Wight,Virginia,51093,113,3 +2020-05-14,Isle of Wight,Virginia,51093,114,3 +2020-05-15,Isle of Wight,Virginia,51093,115,3 +2020-05-16,Isle of Wight,Virginia,51093,115,3 +2020-05-17,Isle of Wight,Virginia,51093,115,3 +2020-05-18,Isle of Wight,Virginia,51093,119,3 +2020-05-19,Isle of Wight,Virginia,51093,119,3 +2020-05-20,Isle of Wight,Virginia,51093,120,3 +2020-05-21,Isle of Wight,Virginia,51093,121,3 +2020-05-22,Isle of Wight,Virginia,51093,122,3 +2020-05-23,Isle of Wight,Virginia,51093,124,3 +2020-05-24,Isle of Wight,Virginia,51093,124,3 +2020-05-25,Isle of Wight,Virginia,51093,125,3 +2020-05-26,Isle of Wight,Virginia,51093,125,3 +2020-05-27,Isle of Wight,Virginia,51093,125,3 +2020-05-28,Isle of Wight,Virginia,51093,126,3 +2020-05-29,Isle of Wight,Virginia,51093,127,3 +2020-05-30,Isle of Wight,Virginia,51093,128,3 +2020-05-31,Isle of Wight,Virginia,51093,128,3 +2020-06-01,Isle of Wight,Virginia,51093,128,3 +2020-06-02,Isle of Wight,Virginia,51093,132,3 +2020-06-03,Isle of Wight,Virginia,51093,133,3 +2020-06-04,Isle of Wight,Virginia,51093,133,3 +2020-06-05,Isle of Wight,Virginia,51093,137,3 +2020-06-06,Isle of Wight,Virginia,51093,142,3 +2020-06-07,Isle of Wight,Virginia,51093,142,3 +2020-06-08,Isle of Wight,Virginia,51093,145,3 +2020-06-09,Isle of Wight,Virginia,51093,149,8 +2020-06-10,Isle of Wight,Virginia,51093,150,8 +2020-06-11,Isle of Wight,Virginia,51093,150,8 +2020-06-12,Isle of Wight,Virginia,51093,150,8 +2020-06-13,Isle of Wight,Virginia,51093,154,8 +2020-06-14,Isle of Wight,Virginia,51093,156,8 +2020-06-15,Isle of Wight,Virginia,51093,156,8 +2020-06-16,Isle of Wight,Virginia,51093,158,8 +2020-06-17,Isle of Wight,Virginia,51093,158,8 +2020-06-18,Isle of Wight,Virginia,51093,158,8 +2020-06-19,Isle of Wight,Virginia,51093,159,8 +2020-06-20,Isle of Wight,Virginia,51093,161,8 +2020-06-21,Isle of Wight,Virginia,51093,161,8 +2020-06-22,Isle of Wight,Virginia,51093,163,8 +2020-06-23,Isle of Wight,Virginia,51093,165,8 +2020-06-24,Isle of Wight,Virginia,51093,165,8 +2020-06-25,Isle of Wight,Virginia,51093,168,8 +2020-06-26,Isle of Wight,Virginia,51093,169,8 +2020-06-27,Isle of Wight,Virginia,51093,177,8 +2020-06-28,Isle of Wight,Virginia,51093,177,8 +2020-06-29,Isle of Wight,Virginia,51093,178,8 +2020-06-30,Isle of Wight,Virginia,51093,179,8 +2020-07-01,Isle of Wight,Virginia,51093,181,8 +2020-07-02,Isle of Wight,Virginia,51093,181,8 +2020-07-03,Isle of Wight,Virginia,51093,186,9 +2020-07-04,Isle of Wight,Virginia,51093,190,9 +2020-07-05,Isle of Wight,Virginia,51093,193,9 +2020-07-06,Isle of Wight,Virginia,51093,194,9 +2020-07-07,Isle of Wight,Virginia,51093,199,9 +2020-07-08,Isle of Wight,Virginia,51093,204,9 +2020-07-09,Isle of Wight,Virginia,51093,209,9 +2020-03-12,James City,Virginia,51095,3,0 +2020-03-13,James City,Virginia,51095,8,0 +2020-03-14,James City,Virginia,51095,9,1 +2020-03-15,James City,Virginia,51095,9,1 +2020-03-16,James City,Virginia,51095,10,1 +2020-03-17,James City,Virginia,51095,12,2 +2020-03-18,James City,Virginia,51095,13,2 +2020-03-19,James City,Virginia,51095,14,2 +2020-03-20,James City,Virginia,51095,19,2 +2020-03-21,James City,Virginia,51095,20,2 +2020-03-22,James City,Virginia,51095,32,3 +2020-03-23,James City,Virginia,51095,34,3 +2020-03-24,James City,Virginia,51095,37,3 +2020-03-25,James City,Virginia,51095,41,3 +2020-03-26,James City,Virginia,51095,49,3 +2020-03-27,James City,Virginia,51095,55,3 +2020-03-28,James City,Virginia,51095,65,3 +2020-03-29,James City,Virginia,51095,70,3 +2020-03-30,James City,Virginia,51095,73,3 +2020-03-31,James City,Virginia,51095,89,3 +2020-04-01,James City,Virginia,51095,95,3 +2020-04-02,James City,Virginia,51095,97,3 +2020-04-03,James City,Virginia,51095,104,3 +2020-04-04,James City,Virginia,51095,111,3 +2020-04-05,James City,Virginia,51095,117,3 +2020-04-06,James City,Virginia,51095,118,3 +2020-04-07,James City,Virginia,51095,119,3 +2020-04-08,James City,Virginia,51095,122,3 +2020-04-09,James City,Virginia,51095,123,3 +2020-04-10,James City,Virginia,51095,125,3 +2020-04-11,James City,Virginia,51095,126,3 +2020-04-12,James City,Virginia,51095,126,3 +2020-04-13,James City,Virginia,51095,126,3 +2020-04-14,James City,Virginia,51095,128,3 +2020-04-15,James City,Virginia,51095,132,3 +2020-04-16,James City,Virginia,51095,135,3 +2020-04-17,James City,Virginia,51095,138,3 +2020-04-18,James City,Virginia,51095,139,3 +2020-04-19,James City,Virginia,51095,141,3 +2020-04-20,James City,Virginia,51095,141,3 +2020-04-21,James City,Virginia,51095,146,12 +2020-04-22,James City,Virginia,51095,147,12 +2020-04-23,James City,Virginia,51095,149,12 +2020-04-24,James City,Virginia,51095,150,12 +2020-04-25,James City,Virginia,51095,151,12 +2020-04-26,James City,Virginia,51095,153,12 +2020-04-27,James City,Virginia,51095,154,12 +2020-04-28,James City,Virginia,51095,155,12 +2020-04-29,James City,Virginia,51095,155,12 +2020-04-30,James City,Virginia,51095,158,12 +2020-05-01,James City,Virginia,51095,160,12 +2020-05-02,James City,Virginia,51095,161,13 +2020-05-03,James City,Virginia,51095,163,13 +2020-05-04,James City,Virginia,51095,167,13 +2020-05-05,James City,Virginia,51095,166,14 +2020-05-06,James City,Virginia,51095,166,14 +2020-05-07,James City,Virginia,51095,167,15 +2020-05-08,James City,Virginia,51095,170,15 +2020-05-09,James City,Virginia,51095,169,15 +2020-05-10,James City,Virginia,51095,173,15 +2020-05-11,James City,Virginia,51095,173,15 +2020-05-12,James City,Virginia,51095,174,15 +2020-05-13,James City,Virginia,51095,174,15 +2020-05-14,James City,Virginia,51095,174,15 +2020-05-15,James City,Virginia,51095,179,15 +2020-05-16,James City,Virginia,51095,179,15 +2020-05-17,James City,Virginia,51095,186,15 +2020-05-18,James City,Virginia,51095,187,15 +2020-05-19,James City,Virginia,51095,189,15 +2020-05-20,James City,Virginia,51095,189,15 +2020-05-21,James City,Virginia,51095,189,15 +2020-05-22,James City,Virginia,51095,191,16 +2020-05-23,James City,Virginia,51095,192,16 +2020-05-24,James City,Virginia,51095,196,16 +2020-05-25,James City,Virginia,51095,197,16 +2020-05-26,James City,Virginia,51095,200,16 +2020-05-27,James City,Virginia,51095,200,16 +2020-05-28,James City,Virginia,51095,202,15 +2020-05-29,James City,Virginia,51095,202,15 +2020-05-30,James City,Virginia,51095,202,15 +2020-05-31,James City,Virginia,51095,205,15 +2020-06-01,James City,Virginia,51095,206,15 +2020-06-02,James City,Virginia,51095,210,15 +2020-06-03,James City,Virginia,51095,211,15 +2020-06-04,James City,Virginia,51095,211,15 +2020-06-05,James City,Virginia,51095,211,15 +2020-06-06,James City,Virginia,51095,211,15 +2020-06-07,James City,Virginia,51095,216,15 +2020-06-08,James City,Virginia,51095,217,15 +2020-06-09,James City,Virginia,51095,224,15 +2020-06-10,James City,Virginia,51095,224,15 +2020-06-11,James City,Virginia,51095,225,15 +2020-06-12,James City,Virginia,51095,230,15 +2020-06-13,James City,Virginia,51095,231,15 +2020-06-14,James City,Virginia,51095,233,15 +2020-06-15,James City,Virginia,51095,233,15 +2020-06-16,James City,Virginia,51095,236,15 +2020-06-17,James City,Virginia,51095,236,15 +2020-06-18,James City,Virginia,51095,237,15 +2020-06-19,James City,Virginia,51095,238,15 +2020-06-20,James City,Virginia,51095,239,15 +2020-06-21,James City,Virginia,51095,242,15 +2020-06-22,James City,Virginia,51095,245,15 +2020-06-23,James City,Virginia,51095,245,15 +2020-06-24,James City,Virginia,51095,247,15 +2020-06-25,James City,Virginia,51095,248,15 +2020-06-26,James City,Virginia,51095,251,15 +2020-06-27,James City,Virginia,51095,252,15 +2020-06-28,James City,Virginia,51095,254,15 +2020-06-29,James City,Virginia,51095,258,15 +2020-06-30,James City,Virginia,51095,263,15 +2020-07-01,James City,Virginia,51095,265,15 +2020-07-02,James City,Virginia,51095,268,15 +2020-07-03,James City,Virginia,51095,270,15 +2020-07-04,James City,Virginia,51095,279,15 +2020-07-05,James City,Virginia,51095,293,15 +2020-07-06,James City,Virginia,51095,297,15 +2020-07-07,James City,Virginia,51095,306,15 +2020-07-08,James City,Virginia,51095,313,16 +2020-07-09,James City,Virginia,51095,323,16 +2020-03-31,King and Queen,Virginia,51097,1,0 +2020-04-01,King and Queen,Virginia,51097,1,0 +2020-04-02,King and Queen,Virginia,51097,1,0 +2020-04-03,King and Queen,Virginia,51097,1,0 +2020-04-04,King and Queen,Virginia,51097,1,0 +2020-04-05,King and Queen,Virginia,51097,1,0 +2020-04-06,King and Queen,Virginia,51097,1,0 +2020-04-07,King and Queen,Virginia,51097,1,0 +2020-04-08,King and Queen,Virginia,51097,1,0 +2020-04-09,King and Queen,Virginia,51097,2,0 +2020-04-10,King and Queen,Virginia,51097,2,0 +2020-04-11,King and Queen,Virginia,51097,2,0 +2020-04-12,King and Queen,Virginia,51097,2,0 +2020-04-13,King and Queen,Virginia,51097,2,0 +2020-04-14,King and Queen,Virginia,51097,2,0 +2020-04-15,King and Queen,Virginia,51097,2,0 +2020-04-16,King and Queen,Virginia,51097,2,0 +2020-04-17,King and Queen,Virginia,51097,2,0 +2020-04-18,King and Queen,Virginia,51097,2,0 +2020-04-19,King and Queen,Virginia,51097,2,0 +2020-04-20,King and Queen,Virginia,51097,2,0 +2020-04-21,King and Queen,Virginia,51097,2,0 +2020-04-22,King and Queen,Virginia,51097,2,0 +2020-04-23,King and Queen,Virginia,51097,2,0 +2020-04-24,King and Queen,Virginia,51097,2,0 +2020-04-25,King and Queen,Virginia,51097,2,0 +2020-04-26,King and Queen,Virginia,51097,2,0 +2020-04-27,King and Queen,Virginia,51097,2,0 +2020-04-28,King and Queen,Virginia,51097,2,0 +2020-04-29,King and Queen,Virginia,51097,2,0 +2020-04-30,King and Queen,Virginia,51097,2,0 +2020-05-01,King and Queen,Virginia,51097,2,0 +2020-05-02,King and Queen,Virginia,51097,3,0 +2020-05-03,King and Queen,Virginia,51097,3,0 +2020-05-04,King and Queen,Virginia,51097,3,0 +2020-05-05,King and Queen,Virginia,51097,3,0 +2020-05-06,King and Queen,Virginia,51097,3,0 +2020-05-07,King and Queen,Virginia,51097,4,0 +2020-05-08,King and Queen,Virginia,51097,4,0 +2020-05-09,King and Queen,Virginia,51097,5,0 +2020-05-10,King and Queen,Virginia,51097,5,0 +2020-05-11,King and Queen,Virginia,51097,5,0 +2020-05-12,King and Queen,Virginia,51097,6,0 +2020-05-13,King and Queen,Virginia,51097,6,0 +2020-05-14,King and Queen,Virginia,51097,7,0 +2020-05-15,King and Queen,Virginia,51097,7,0 +2020-05-16,King and Queen,Virginia,51097,7,0 +2020-05-17,King and Queen,Virginia,51097,7,0 +2020-05-18,King and Queen,Virginia,51097,7,0 +2020-05-19,King and Queen,Virginia,51097,7,0 +2020-05-20,King and Queen,Virginia,51097,7,0 +2020-05-21,King and Queen,Virginia,51097,7,0 +2020-05-22,King and Queen,Virginia,51097,7,0 +2020-05-23,King and Queen,Virginia,51097,7,0 +2020-05-24,King and Queen,Virginia,51097,7,0 +2020-05-25,King and Queen,Virginia,51097,7,0 +2020-05-26,King and Queen,Virginia,51097,7,0 +2020-05-27,King and Queen,Virginia,51097,8,0 +2020-05-28,King and Queen,Virginia,51097,10,1 +2020-05-29,King and Queen,Virginia,51097,10,1 +2020-05-30,King and Queen,Virginia,51097,10,1 +2020-05-31,King and Queen,Virginia,51097,13,1 +2020-06-01,King and Queen,Virginia,51097,13,1 +2020-06-02,King and Queen,Virginia,51097,13,1 +2020-06-03,King and Queen,Virginia,51097,13,1 +2020-06-04,King and Queen,Virginia,51097,21,1 +2020-06-05,King and Queen,Virginia,51097,21,1 +2020-06-06,King and Queen,Virginia,51097,22,1 +2020-06-07,King and Queen,Virginia,51097,24,1 +2020-06-08,King and Queen,Virginia,51097,24,1 +2020-06-09,King and Queen,Virginia,51097,23,1 +2020-06-10,King and Queen,Virginia,51097,24,1 +2020-06-11,King and Queen,Virginia,51097,24,1 +2020-06-12,King and Queen,Virginia,51097,24,1 +2020-06-13,King and Queen,Virginia,51097,24,1 +2020-06-14,King and Queen,Virginia,51097,24,1 +2020-06-15,King and Queen,Virginia,51097,24,1 +2020-06-16,King and Queen,Virginia,51097,24,1 +2020-06-17,King and Queen,Virginia,51097,24,1 +2020-06-18,King and Queen,Virginia,51097,24,1 +2020-06-19,King and Queen,Virginia,51097,24,1 +2020-06-20,King and Queen,Virginia,51097,24,1 +2020-06-21,King and Queen,Virginia,51097,24,1 +2020-06-22,King and Queen,Virginia,51097,24,1 +2020-06-23,King and Queen,Virginia,51097,24,1 +2020-06-24,King and Queen,Virginia,51097,24,1 +2020-06-25,King and Queen,Virginia,51097,24,1 +2020-06-26,King and Queen,Virginia,51097,23,1 +2020-06-27,King and Queen,Virginia,51097,23,1 +2020-06-28,King and Queen,Virginia,51097,23,1 +2020-06-29,King and Queen,Virginia,51097,23,1 +2020-06-30,King and Queen,Virginia,51097,23,1 +2020-07-01,King and Queen,Virginia,51097,23,1 +2020-07-02,King and Queen,Virginia,51097,24,1 +2020-07-03,King and Queen,Virginia,51097,24,1 +2020-07-04,King and Queen,Virginia,51097,24,1 +2020-07-05,King and Queen,Virginia,51097,24,1 +2020-07-06,King and Queen,Virginia,51097,24,1 +2020-07-07,King and Queen,Virginia,51097,24,1 +2020-07-08,King and Queen,Virginia,51097,25,1 +2020-07-09,King and Queen,Virginia,51097,26,1 +2020-03-26,King George,Virginia,51099,1,0 +2020-03-27,King George,Virginia,51099,1,0 +2020-03-28,King George,Virginia,51099,2,0 +2020-03-29,King George,Virginia,51099,2,0 +2020-03-30,King George,Virginia,51099,3,0 +2020-03-31,King George,Virginia,51099,3,0 +2020-04-01,King George,Virginia,51099,4,0 +2020-04-02,King George,Virginia,51099,4,0 +2020-04-03,King George,Virginia,51099,6,0 +2020-04-04,King George,Virginia,51099,8,0 +2020-04-05,King George,Virginia,51099,8,0 +2020-04-06,King George,Virginia,51099,10,0 +2020-04-07,King George,Virginia,51099,10,0 +2020-04-08,King George,Virginia,51099,11,0 +2020-04-09,King George,Virginia,51099,13,0 +2020-04-10,King George,Virginia,51099,14,0 +2020-04-11,King George,Virginia,51099,13,0 +2020-04-12,King George,Virginia,51099,14,0 +2020-04-13,King George,Virginia,51099,14,0 +2020-04-14,King George,Virginia,51099,16,0 +2020-04-15,King George,Virginia,51099,17,0 +2020-04-16,King George,Virginia,51099,18,0 +2020-04-17,King George,Virginia,51099,18,0 +2020-04-18,King George,Virginia,51099,18,0 +2020-04-19,King George,Virginia,51099,18,0 +2020-04-20,King George,Virginia,51099,18,0 +2020-04-21,King George,Virginia,51099,19,2 +2020-04-22,King George,Virginia,51099,20,4 +2020-04-23,King George,Virginia,51099,21,4 +2020-04-24,King George,Virginia,51099,23,4 +2020-04-25,King George,Virginia,51099,25,4 +2020-04-26,King George,Virginia,51099,27,4 +2020-04-27,King George,Virginia,51099,28,4 +2020-04-28,King George,Virginia,51099,30,4 +2020-04-29,King George,Virginia,51099,30,4 +2020-04-30,King George,Virginia,51099,32,4 +2020-05-01,King George,Virginia,51099,34,4 +2020-05-02,King George,Virginia,51099,33,4 +2020-05-03,King George,Virginia,51099,35,4 +2020-05-04,King George,Virginia,51099,35,4 +2020-05-05,King George,Virginia,51099,36,4 +2020-05-06,King George,Virginia,51099,36,4 +2020-05-07,King George,Virginia,51099,38,4 +2020-05-08,King George,Virginia,51099,38,4 +2020-05-09,King George,Virginia,51099,38,4 +2020-05-10,King George,Virginia,51099,41,4 +2020-05-11,King George,Virginia,51099,42,4 +2020-05-12,King George,Virginia,51099,44,4 +2020-05-13,King George,Virginia,51099,44,4 +2020-05-14,King George,Virginia,51099,44,4 +2020-05-15,King George,Virginia,51099,45,4 +2020-05-16,King George,Virginia,51099,47,4 +2020-05-17,King George,Virginia,51099,48,4 +2020-05-18,King George,Virginia,51099,48,4 +2020-05-19,King George,Virginia,51099,48,4 +2020-05-20,King George,Virginia,51099,48,4 +2020-05-21,King George,Virginia,51099,49,4 +2020-05-22,King George,Virginia,51099,50,4 +2020-05-23,King George,Virginia,51099,52,4 +2020-05-24,King George,Virginia,51099,54,4 +2020-05-25,King George,Virginia,51099,56,4 +2020-05-26,King George,Virginia,51099,60,4 +2020-05-27,King George,Virginia,51099,60,4 +2020-05-28,King George,Virginia,51099,62,4 +2020-05-29,King George,Virginia,51099,62,4 +2020-05-30,King George,Virginia,51099,65,4 +2020-05-31,King George,Virginia,51099,68,4 +2020-06-01,King George,Virginia,51099,69,4 +2020-06-02,King George,Virginia,51099,70,4 +2020-06-03,King George,Virginia,51099,70,4 +2020-06-04,King George,Virginia,51099,72,4 +2020-06-05,King George,Virginia,51099,72,4 +2020-06-06,King George,Virginia,51099,73,4 +2020-06-07,King George,Virginia,51099,78,4 +2020-06-08,King George,Virginia,51099,78,4 +2020-06-09,King George,Virginia,51099,79,4 +2020-06-10,King George,Virginia,51099,83,4 +2020-06-11,King George,Virginia,51099,83,4 +2020-06-12,King George,Virginia,51099,87,4 +2020-06-13,King George,Virginia,51099,87,4 +2020-06-14,King George,Virginia,51099,88,4 +2020-06-15,King George,Virginia,51099,88,4 +2020-06-16,King George,Virginia,51099,91,4 +2020-06-17,King George,Virginia,51099,93,4 +2020-06-18,King George,Virginia,51099,95,4 +2020-06-19,King George,Virginia,51099,95,4 +2020-06-20,King George,Virginia,51099,96,4 +2020-06-21,King George,Virginia,51099,96,4 +2020-06-22,King George,Virginia,51099,96,4 +2020-06-23,King George,Virginia,51099,96,4 +2020-06-24,King George,Virginia,51099,96,4 +2020-06-25,King George,Virginia,51099,96,4 +2020-06-26,King George,Virginia,51099,98,4 +2020-06-27,King George,Virginia,51099,97,4 +2020-06-28,King George,Virginia,51099,97,4 +2020-06-29,King George,Virginia,51099,97,4 +2020-06-30,King George,Virginia,51099,97,4 +2020-07-01,King George,Virginia,51099,97,4 +2020-07-02,King George,Virginia,51099,99,4 +2020-07-03,King George,Virginia,51099,99,4 +2020-07-04,King George,Virginia,51099,100,4 +2020-07-05,King George,Virginia,51099,100,4 +2020-07-06,King George,Virginia,51099,100,4 +2020-07-07,King George,Virginia,51099,100,4 +2020-07-08,King George,Virginia,51099,99,4 +2020-07-09,King George,Virginia,51099,102,4 +2020-03-30,King William,Virginia,51101,1,0 +2020-03-31,King William,Virginia,51101,1,0 +2020-04-01,King William,Virginia,51101,1,0 +2020-04-02,King William,Virginia,51101,1,0 +2020-04-03,King William,Virginia,51101,1,0 +2020-04-04,King William,Virginia,51101,1,0 +2020-04-05,King William,Virginia,51101,2,0 +2020-04-06,King William,Virginia,51101,2,0 +2020-04-07,King William,Virginia,51101,2,0 +2020-04-08,King William,Virginia,51101,2,0 +2020-04-09,King William,Virginia,51101,2,0 +2020-04-10,King William,Virginia,51101,2,0 +2020-04-11,King William,Virginia,51101,2,0 +2020-04-12,King William,Virginia,51101,2,0 +2020-04-13,King William,Virginia,51101,2,0 +2020-04-14,King William,Virginia,51101,2,0 +2020-04-15,King William,Virginia,51101,2,0 +2020-04-16,King William,Virginia,51101,2,0 +2020-04-17,King William,Virginia,51101,2,0 +2020-04-18,King William,Virginia,51101,2,0 +2020-04-19,King William,Virginia,51101,2,0 +2020-04-20,King William,Virginia,51101,2,0 +2020-04-21,King William,Virginia,51101,2,0 +2020-04-22,King William,Virginia,51101,2,0 +2020-04-23,King William,Virginia,51101,3,0 +2020-04-24,King William,Virginia,51101,3,0 +2020-04-25,King William,Virginia,51101,5,0 +2020-04-26,King William,Virginia,51101,5,0 +2020-04-27,King William,Virginia,51101,5,0 +2020-04-28,King William,Virginia,51101,5,0 +2020-04-29,King William,Virginia,51101,5,1 +2020-04-30,King William,Virginia,51101,5,1 +2020-05-01,King William,Virginia,51101,5,1 +2020-05-02,King William,Virginia,51101,9,1 +2020-05-03,King William,Virginia,51101,9,1 +2020-05-04,King William,Virginia,51101,9,1 +2020-05-05,King William,Virginia,51101,10,1 +2020-05-06,King William,Virginia,51101,10,1 +2020-05-07,King William,Virginia,51101,11,1 +2020-05-08,King William,Virginia,51101,11,1 +2020-05-09,King William,Virginia,51101,11,1 +2020-05-10,King William,Virginia,51101,11,1 +2020-05-11,King William,Virginia,51101,12,1 +2020-05-12,King William,Virginia,51101,12,0 +2020-05-13,King William,Virginia,51101,12,0 +2020-05-14,King William,Virginia,51101,12,0 +2020-05-15,King William,Virginia,51101,13,0 +2020-05-16,King William,Virginia,51101,14,0 +2020-05-17,King William,Virginia,51101,14,0 +2020-05-18,King William,Virginia,51101,15,0 +2020-05-19,King William,Virginia,51101,15,0 +2020-05-20,King William,Virginia,51101,15,0 +2020-05-21,King William,Virginia,51101,16,0 +2020-05-22,King William,Virginia,51101,19,0 +2020-05-23,King William,Virginia,51101,20,0 +2020-05-24,King William,Virginia,51101,20,0 +2020-05-25,King William,Virginia,51101,24,0 +2020-05-26,King William,Virginia,51101,24,0 +2020-05-27,King William,Virginia,51101,25,0 +2020-05-28,King William,Virginia,51101,26,0 +2020-05-29,King William,Virginia,51101,26,0 +2020-05-30,King William,Virginia,51101,30,0 +2020-05-31,King William,Virginia,51101,30,0 +2020-06-01,King William,Virginia,51101,31,0 +2020-06-02,King William,Virginia,51101,31,0 +2020-06-03,King William,Virginia,51101,31,0 +2020-06-04,King William,Virginia,51101,31,0 +2020-06-05,King William,Virginia,51101,31,0 +2020-06-06,King William,Virginia,51101,32,0 +2020-06-07,King William,Virginia,51101,32,0 +2020-06-08,King William,Virginia,51101,32,0 +2020-06-09,King William,Virginia,51101,32,0 +2020-06-10,King William,Virginia,51101,32,0 +2020-06-11,King William,Virginia,51101,32,0 +2020-06-12,King William,Virginia,51101,32,0 +2020-06-13,King William,Virginia,51101,33,0 +2020-06-14,King William,Virginia,51101,33,0 +2020-06-15,King William,Virginia,51101,33,0 +2020-06-16,King William,Virginia,51101,33,0 +2020-06-17,King William,Virginia,51101,33,0 +2020-06-18,King William,Virginia,51101,33,0 +2020-06-19,King William,Virginia,51101,33,0 +2020-06-20,King William,Virginia,51101,35,0 +2020-06-21,King William,Virginia,51101,36,0 +2020-06-22,King William,Virginia,51101,37,0 +2020-06-23,King William,Virginia,51101,36,0 +2020-06-24,King William,Virginia,51101,37,0 +2020-06-25,King William,Virginia,51101,38,0 +2020-06-26,King William,Virginia,51101,40,0 +2020-06-27,King William,Virginia,51101,40,0 +2020-06-28,King William,Virginia,51101,42,0 +2020-06-29,King William,Virginia,51101,42,0 +2020-06-30,King William,Virginia,51101,42,0 +2020-07-01,King William,Virginia,51101,42,0 +2020-07-02,King William,Virginia,51101,42,0 +2020-07-03,King William,Virginia,51101,42,0 +2020-07-04,King William,Virginia,51101,43,0 +2020-07-05,King William,Virginia,51101,44,0 +2020-07-06,King William,Virginia,51101,44,0 +2020-07-07,King William,Virginia,51101,47,1 +2020-07-08,King William,Virginia,51101,47,1 +2020-07-09,King William,Virginia,51101,54,1 +2020-03-28,Lancaster,Virginia,51103,1,0 +2020-03-29,Lancaster,Virginia,51103,1,0 +2020-03-30,Lancaster,Virginia,51103,1,0 +2020-03-31,Lancaster,Virginia,51103,1,0 +2020-04-01,Lancaster,Virginia,51103,1,0 +2020-04-02,Lancaster,Virginia,51103,1,0 +2020-04-03,Lancaster,Virginia,51103,1,0 +2020-04-04,Lancaster,Virginia,51103,1,0 +2020-04-05,Lancaster,Virginia,51103,1,0 +2020-04-06,Lancaster,Virginia,51103,1,0 +2020-04-07,Lancaster,Virginia,51103,1,0 +2020-04-08,Lancaster,Virginia,51103,1,0 +2020-04-09,Lancaster,Virginia,51103,1,0 +2020-04-10,Lancaster,Virginia,51103,1,0 +2020-04-11,Lancaster,Virginia,51103,1,0 +2020-04-12,Lancaster,Virginia,51103,1,0 +2020-04-13,Lancaster,Virginia,51103,1,0 +2020-04-14,Lancaster,Virginia,51103,1,0 +2020-04-15,Lancaster,Virginia,51103,1,0 +2020-04-16,Lancaster,Virginia,51103,1,0 +2020-04-17,Lancaster,Virginia,51103,1,0 +2020-04-18,Lancaster,Virginia,51103,1,0 +2020-04-19,Lancaster,Virginia,51103,1,0 +2020-04-20,Lancaster,Virginia,51103,1,0 +2020-04-21,Lancaster,Virginia,51103,1,0 +2020-04-22,Lancaster,Virginia,51103,1,0 +2020-04-23,Lancaster,Virginia,51103,1,0 +2020-04-24,Lancaster,Virginia,51103,1,0 +2020-04-25,Lancaster,Virginia,51103,1,0 +2020-04-26,Lancaster,Virginia,51103,1,0 +2020-04-27,Lancaster,Virginia,51103,1,0 +2020-04-28,Lancaster,Virginia,51103,1,0 +2020-04-29,Lancaster,Virginia,51103,1,0 +2020-04-30,Lancaster,Virginia,51103,2,0 +2020-05-01,Lancaster,Virginia,51103,3,0 +2020-05-02,Lancaster,Virginia,51103,3,0 +2020-05-03,Lancaster,Virginia,51103,4,0 +2020-05-04,Lancaster,Virginia,51103,5,0 +2020-05-05,Lancaster,Virginia,51103,5,0 +2020-05-06,Lancaster,Virginia,51103,5,0 +2020-05-07,Lancaster,Virginia,51103,6,0 +2020-05-08,Lancaster,Virginia,51103,6,0 +2020-05-09,Lancaster,Virginia,51103,6,0 +2020-05-10,Lancaster,Virginia,51103,6,0 +2020-05-11,Lancaster,Virginia,51103,6,0 +2020-05-12,Lancaster,Virginia,51103,7,0 +2020-05-13,Lancaster,Virginia,51103,7,0 +2020-05-14,Lancaster,Virginia,51103,7,0 +2020-05-15,Lancaster,Virginia,51103,7,0 +2020-05-16,Lancaster,Virginia,51103,7,0 +2020-05-17,Lancaster,Virginia,51103,7,0 +2020-05-18,Lancaster,Virginia,51103,7,0 +2020-05-19,Lancaster,Virginia,51103,7,0 +2020-05-20,Lancaster,Virginia,51103,7,0 +2020-05-21,Lancaster,Virginia,51103,8,0 +2020-05-22,Lancaster,Virginia,51103,10,0 +2020-05-23,Lancaster,Virginia,51103,10,0 +2020-05-24,Lancaster,Virginia,51103,10,0 +2020-05-25,Lancaster,Virginia,51103,10,0 +2020-05-26,Lancaster,Virginia,51103,10,0 +2020-05-27,Lancaster,Virginia,51103,10,0 +2020-05-28,Lancaster,Virginia,51103,10,0 +2020-05-29,Lancaster,Virginia,51103,10,0 +2020-05-30,Lancaster,Virginia,51103,10,0 +2020-05-31,Lancaster,Virginia,51103,10,0 +2020-06-01,Lancaster,Virginia,51103,10,0 +2020-06-02,Lancaster,Virginia,51103,10,0 +2020-06-03,Lancaster,Virginia,51103,10,0 +2020-06-04,Lancaster,Virginia,51103,10,0 +2020-06-05,Lancaster,Virginia,51103,10,0 +2020-06-06,Lancaster,Virginia,51103,10,0 +2020-06-07,Lancaster,Virginia,51103,10,0 +2020-06-08,Lancaster,Virginia,51103,10,0 +2020-06-09,Lancaster,Virginia,51103,10,0 +2020-06-10,Lancaster,Virginia,51103,10,0 +2020-06-11,Lancaster,Virginia,51103,11,0 +2020-06-12,Lancaster,Virginia,51103,11,0 +2020-06-13,Lancaster,Virginia,51103,11,0 +2020-06-14,Lancaster,Virginia,51103,11,0 +2020-06-15,Lancaster,Virginia,51103,11,0 +2020-06-16,Lancaster,Virginia,51103,11,0 +2020-06-17,Lancaster,Virginia,51103,11,0 +2020-06-18,Lancaster,Virginia,51103,11,0 +2020-06-19,Lancaster,Virginia,51103,11,0 +2020-06-20,Lancaster,Virginia,51103,12,0 +2020-06-21,Lancaster,Virginia,51103,12,0 +2020-06-22,Lancaster,Virginia,51103,12,0 +2020-06-23,Lancaster,Virginia,51103,12,0 +2020-06-24,Lancaster,Virginia,51103,12,0 +2020-06-25,Lancaster,Virginia,51103,12,0 +2020-06-26,Lancaster,Virginia,51103,10,0 +2020-06-27,Lancaster,Virginia,51103,10,0 +2020-06-28,Lancaster,Virginia,51103,11,0 +2020-06-29,Lancaster,Virginia,51103,11,0 +2020-06-30,Lancaster,Virginia,51103,11,0 +2020-07-01,Lancaster,Virginia,51103,11,0 +2020-07-02,Lancaster,Virginia,51103,11,0 +2020-07-03,Lancaster,Virginia,51103,11,0 +2020-07-04,Lancaster,Virginia,51103,11,0 +2020-07-05,Lancaster,Virginia,51103,11,0 +2020-07-06,Lancaster,Virginia,51103,11,0 +2020-07-07,Lancaster,Virginia,51103,11,0 +2020-07-08,Lancaster,Virginia,51103,11,0 +2020-07-09,Lancaster,Virginia,51103,12,0 +2020-03-22,Lee,Virginia,51105,2,0 +2020-03-23,Lee,Virginia,51105,2,0 +2020-03-24,Lee,Virginia,51105,2,0 +2020-03-25,Lee,Virginia,51105,2,0 +2020-03-26,Lee,Virginia,51105,2,0 +2020-03-27,Lee,Virginia,51105,2,0 +2020-03-28,Lee,Virginia,51105,2,0 +2020-03-29,Lee,Virginia,51105,2,0 +2020-03-30,Lee,Virginia,51105,2,0 +2020-03-31,Lee,Virginia,51105,2,0 +2020-04-01,Lee,Virginia,51105,2,0 +2020-04-02,Lee,Virginia,51105,2,0 +2020-04-03,Lee,Virginia,51105,2,0 +2020-04-04,Lee,Virginia,51105,2,0 +2020-04-05,Lee,Virginia,51105,2,0 +2020-04-06,Lee,Virginia,51105,2,0 +2020-04-07,Lee,Virginia,51105,2,0 +2020-04-08,Lee,Virginia,51105,3,0 +2020-04-09,Lee,Virginia,51105,3,0 +2020-04-10,Lee,Virginia,51105,3,0 +2020-04-11,Lee,Virginia,51105,6,0 +2020-04-12,Lee,Virginia,51105,6,0 +2020-04-13,Lee,Virginia,51105,7,0 +2020-04-14,Lee,Virginia,51105,6,0 +2020-04-15,Lee,Virginia,51105,6,0 +2020-04-16,Lee,Virginia,51105,6,0 +2020-04-17,Lee,Virginia,51105,7,0 +2020-04-18,Lee,Virginia,51105,7,0 +2020-04-19,Lee,Virginia,51105,7,0 +2020-04-20,Lee,Virginia,51105,7,0 +2020-04-21,Lee,Virginia,51105,7,0 +2020-04-22,Lee,Virginia,51105,7,0 +2020-04-23,Lee,Virginia,51105,7,0 +2020-04-24,Lee,Virginia,51105,8,0 +2020-04-25,Lee,Virginia,51105,8,0 +2020-04-26,Lee,Virginia,51105,8,0 +2020-04-27,Lee,Virginia,51105,8,0 +2020-04-28,Lee,Virginia,51105,9,0 +2020-04-29,Lee,Virginia,51105,9,0 +2020-04-30,Lee,Virginia,51105,9,0 +2020-05-01,Lee,Virginia,51105,10,0 +2020-05-02,Lee,Virginia,51105,10,0 +2020-05-03,Lee,Virginia,51105,10,0 +2020-05-04,Lee,Virginia,51105,10,0 +2020-05-05,Lee,Virginia,51105,10,0 +2020-05-06,Lee,Virginia,51105,10,0 +2020-05-07,Lee,Virginia,51105,10,0 +2020-05-08,Lee,Virginia,51105,10,0 +2020-05-09,Lee,Virginia,51105,10,0 +2020-05-10,Lee,Virginia,51105,10,0 +2020-05-11,Lee,Virginia,51105,10,0 +2020-05-12,Lee,Virginia,51105,10,0 +2020-05-13,Lee,Virginia,51105,10,0 +2020-05-14,Lee,Virginia,51105,10,0 +2020-05-15,Lee,Virginia,51105,10,0 +2020-05-16,Lee,Virginia,51105,10,0 +2020-05-17,Lee,Virginia,51105,10,0 +2020-05-18,Lee,Virginia,51105,10,0 +2020-05-19,Lee,Virginia,51105,10,0 +2020-05-20,Lee,Virginia,51105,10,0 +2020-05-21,Lee,Virginia,51105,10,0 +2020-05-22,Lee,Virginia,51105,9,0 +2020-05-23,Lee,Virginia,51105,9,0 +2020-05-24,Lee,Virginia,51105,9,0 +2020-05-25,Lee,Virginia,51105,9,0 +2020-05-26,Lee,Virginia,51105,9,0 +2020-05-27,Lee,Virginia,51105,9,0 +2020-05-28,Lee,Virginia,51105,9,0 +2020-05-29,Lee,Virginia,51105,9,0 +2020-05-30,Lee,Virginia,51105,9,0 +2020-05-31,Lee,Virginia,51105,9,0 +2020-06-01,Lee,Virginia,51105,9,0 +2020-06-02,Lee,Virginia,51105,9,0 +2020-06-03,Lee,Virginia,51105,9,0 +2020-06-04,Lee,Virginia,51105,9,0 +2020-06-05,Lee,Virginia,51105,9,0 +2020-06-06,Lee,Virginia,51105,9,0 +2020-06-07,Lee,Virginia,51105,10,0 +2020-06-08,Lee,Virginia,51105,10,0 +2020-06-09,Lee,Virginia,51105,9,0 +2020-06-10,Lee,Virginia,51105,9,0 +2020-06-11,Lee,Virginia,51105,9,0 +2020-06-12,Lee,Virginia,51105,9,0 +2020-06-13,Lee,Virginia,51105,9,0 +2020-06-14,Lee,Virginia,51105,9,0 +2020-06-15,Lee,Virginia,51105,9,0 +2020-06-16,Lee,Virginia,51105,9,0 +2020-06-17,Lee,Virginia,51105,9,0 +2020-06-18,Lee,Virginia,51105,9,0 +2020-06-19,Lee,Virginia,51105,9,0 +2020-06-20,Lee,Virginia,51105,9,0 +2020-06-21,Lee,Virginia,51105,9,0 +2020-06-22,Lee,Virginia,51105,9,0 +2020-06-23,Lee,Virginia,51105,9,0 +2020-06-24,Lee,Virginia,51105,9,0 +2020-06-25,Lee,Virginia,51105,9,0 +2020-06-26,Lee,Virginia,51105,9,0 +2020-06-27,Lee,Virginia,51105,9,0 +2020-06-28,Lee,Virginia,51105,9,0 +2020-06-29,Lee,Virginia,51105,9,0 +2020-06-30,Lee,Virginia,51105,11,0 +2020-07-01,Lee,Virginia,51105,11,0 +2020-07-02,Lee,Virginia,51105,12,0 +2020-07-03,Lee,Virginia,51105,12,0 +2020-07-04,Lee,Virginia,51105,12,0 +2020-07-05,Lee,Virginia,51105,15,0 +2020-07-06,Lee,Virginia,51105,16,0 +2020-07-07,Lee,Virginia,51105,16,0 +2020-07-08,Lee,Virginia,51105,15,0 +2020-07-09,Lee,Virginia,51105,15,0 +2020-03-10,Loudoun,Virginia,51107,2,0 +2020-03-11,Loudoun,Virginia,51107,2,0 +2020-03-12,Loudoun,Virginia,51107,2,0 +2020-03-13,Loudoun,Virginia,51107,3,0 +2020-03-14,Loudoun,Virginia,51107,5,0 +2020-03-15,Loudoun,Virginia,51107,5,0 +2020-03-16,Loudoun,Virginia,51107,5,0 +2020-03-17,Loudoun,Virginia,51107,5,0 +2020-03-18,Loudoun,Virginia,51107,5,0 +2020-03-19,Loudoun,Virginia,51107,5,0 +2020-03-20,Loudoun,Virginia,51107,9,0 +2020-03-21,Loudoun,Virginia,51107,14,0 +2020-03-22,Loudoun,Virginia,51107,15,0 +2020-03-23,Loudoun,Virginia,51107,15,0 +2020-03-24,Loudoun,Virginia,51107,18,0 +2020-03-25,Loudoun,Virginia,51107,20,0 +2020-03-26,Loudoun,Virginia,51107,43,0 +2020-03-27,Loudoun,Virginia,51107,43,0 +2020-03-28,Loudoun,Virginia,51107,54,0 +2020-03-29,Loudoun,Virginia,51107,61,0 +2020-03-30,Loudoun,Virginia,51107,61,0 +2020-03-31,Loudoun,Virginia,51107,87,0 +2020-04-01,Loudoun,Virginia,51107,105,0 +2020-04-02,Loudoun,Virginia,51107,121,0 +2020-04-03,Loudoun,Virginia,51107,130,0 +2020-04-04,Loudoun,Virginia,51107,150,0 +2020-04-05,Loudoun,Virginia,51107,167,0 +2020-04-06,Loudoun,Virginia,51107,188,0 +2020-04-07,Loudoun,Virginia,51107,209,0 +2020-04-08,Loudoun,Virginia,51107,238,0 +2020-04-09,Loudoun,Virginia,51107,258,0 +2020-04-10,Loudoun,Virginia,51107,274,0 +2020-04-11,Loudoun,Virginia,51107,296,0 +2020-04-12,Loudoun,Virginia,51107,309,0 +2020-04-13,Loudoun,Virginia,51107,324,5 +2020-04-14,Loudoun,Virginia,51107,344,5 +2020-04-15,Loudoun,Virginia,51107,367,5 +2020-04-16,Loudoun,Virginia,51107,378,5 +2020-04-17,Loudoun,Virginia,51107,385,5 +2020-04-18,Loudoun,Virginia,51107,413,5 +2020-04-19,Loudoun,Virginia,51107,425,7 +2020-04-20,Loudoun,Virginia,51107,446,7 +2020-04-21,Loudoun,Virginia,51107,468,8 +2020-04-22,Loudoun,Virginia,51107,475,9 +2020-04-23,Loudoun,Virginia,51107,498,10 +2020-04-24,Loudoun,Virginia,51107,529,10 +2020-04-25,Loudoun,Virginia,51107,564,11 +2020-04-26,Loudoun,Virginia,51107,596,11 +2020-04-27,Loudoun,Virginia,51107,628,12 +2020-04-28,Loudoun,Virginia,51107,688,12 +2020-04-29,Loudoun,Virginia,51107,727,14 +2020-04-30,Loudoun,Virginia,51107,746,15 +2020-05-01,Loudoun,Virginia,51107,832,15 +2020-05-02,Loudoun,Virginia,51107,881,16 +2020-05-03,Loudoun,Virginia,51107,931,16 +2020-05-04,Loudoun,Virginia,51107,961,18 +2020-05-05,Loudoun,Virginia,51107,998,24 +2020-05-06,Loudoun,Virginia,51107,998,24 +2020-05-07,Loudoun,Virginia,51107,1043,26 +2020-05-08,Loudoun,Virginia,51107,1070,29 +2020-05-09,Loudoun,Virginia,51107,1127,30 +2020-05-10,Loudoun,Virginia,51107,1159,30 +2020-05-11,Loudoun,Virginia,51107,1195,30 +2020-05-12,Loudoun,Virginia,51107,1210,35 +2020-05-13,Loudoun,Virginia,51107,1283,38 +2020-05-14,Loudoun,Virginia,51107,1339,44 +2020-05-15,Loudoun,Virginia,51107,1374,48 +2020-05-16,Loudoun,Virginia,51107,1430,48 +2020-05-17,Loudoun,Virginia,51107,1446,48 +2020-05-18,Loudoun,Virginia,51107,1486,48 +2020-05-19,Loudoun,Virginia,51107,1527,48 +2020-05-20,Loudoun,Virginia,51107,1579,49 +2020-05-21,Loudoun,Virginia,51107,1700,49 +2020-05-22,Loudoun,Virginia,51107,1807,51 +2020-05-23,Loudoun,Virginia,51107,1831,52 +2020-05-24,Loudoun,Virginia,51107,1821,52 +2020-05-25,Loudoun,Virginia,51107,2047,52 +2020-05-26,Loudoun,Virginia,51107,2186,52 +2020-05-27,Loudoun,Virginia,51107,2274,53 +2020-05-28,Loudoun,Virginia,51107,2318,63 +2020-05-29,Loudoun,Virginia,51107,2429,62 +2020-05-30,Loudoun,Virginia,51107,2529,62 +2020-05-31,Loudoun,Virginia,51107,2575,62 +2020-06-01,Loudoun,Virginia,51107,2611,66 +2020-06-02,Loudoun,Virginia,51107,2636,67 +2020-06-03,Loudoun,Virginia,51107,2659,67 +2020-06-04,Loudoun,Virginia,51107,2794,67 +2020-06-05,Loudoun,Virginia,51107,2837,67 +2020-06-06,Loudoun,Virginia,51107,2939,67 +2020-06-07,Loudoun,Virginia,51107,3094,67 +2020-06-08,Loudoun,Virginia,51107,3147,67 +2020-06-09,Loudoun,Virginia,51107,3174,67 +2020-06-10,Loudoun,Virginia,51107,3180,67 +2020-06-11,Loudoun,Virginia,51107,3229,69 +2020-06-12,Loudoun,Virginia,51107,3280,70 +2020-06-13,Loudoun,Virginia,51107,3321,71 +2020-06-14,Loudoun,Virginia,51107,3384,71 +2020-06-15,Loudoun,Virginia,51107,3404,71 +2020-06-16,Loudoun,Virginia,51107,3439,76 +2020-06-17,Loudoun,Virginia,51107,3458,80 +2020-06-18,Loudoun,Virginia,51107,3499,82 +2020-06-19,Loudoun,Virginia,51107,3504,82 +2020-06-20,Loudoun,Virginia,51107,3543,82 +2020-06-21,Loudoun,Virginia,51107,3585,83 +2020-06-22,Loudoun,Virginia,51107,3612,84 +2020-06-23,Loudoun,Virginia,51107,3632,84 +2020-06-24,Loudoun,Virginia,51107,3683,84 +2020-06-25,Loudoun,Virginia,51107,3739,85 +2020-06-26,Loudoun,Virginia,51107,3806,86 +2020-06-27,Loudoun,Virginia,51107,3890,86 +2020-06-28,Loudoun,Virginia,51107,3932,87 +2020-06-29,Loudoun,Virginia,51107,3968,87 +2020-06-30,Loudoun,Virginia,51107,4000,87 +2020-07-01,Loudoun,Virginia,51107,4047,87 +2020-07-02,Loudoun,Virginia,51107,4083,89 +2020-07-03,Loudoun,Virginia,51107,4113,91 +2020-07-04,Loudoun,Virginia,51107,4175,91 +2020-07-05,Loudoun,Virginia,51107,4207,90 +2020-07-06,Loudoun,Virginia,51107,4216,90 +2020-07-07,Loudoun,Virginia,51107,4252,93 +2020-07-08,Loudoun,Virginia,51107,4282,98 +2020-07-09,Loudoun,Virginia,51107,4319,99 +2020-03-22,Louisa,Virginia,51109,1,0 +2020-03-23,Louisa,Virginia,51109,2,0 +2020-03-24,Louisa,Virginia,51109,2,0 +2020-03-25,Louisa,Virginia,51109,3,0 +2020-03-26,Louisa,Virginia,51109,5,0 +2020-03-27,Louisa,Virginia,51109,5,0 +2020-03-28,Louisa,Virginia,51109,6,0 +2020-03-29,Louisa,Virginia,51109,7,0 +2020-03-30,Louisa,Virginia,51109,8,0 +2020-03-31,Louisa,Virginia,51109,9,0 +2020-04-01,Louisa,Virginia,51109,11,0 +2020-04-02,Louisa,Virginia,51109,12,0 +2020-04-03,Louisa,Virginia,51109,12,0 +2020-04-04,Louisa,Virginia,51109,13,0 +2020-04-05,Louisa,Virginia,51109,14,0 +2020-04-06,Louisa,Virginia,51109,14,0 +2020-04-07,Louisa,Virginia,51109,14,0 +2020-04-08,Louisa,Virginia,51109,16,0 +2020-04-09,Louisa,Virginia,51109,17,0 +2020-04-10,Louisa,Virginia,51109,20,0 +2020-04-11,Louisa,Virginia,51109,25,0 +2020-04-12,Louisa,Virginia,51109,25,0 +2020-04-13,Louisa,Virginia,51109,27,0 +2020-04-14,Louisa,Virginia,51109,27,0 +2020-04-15,Louisa,Virginia,51109,29,0 +2020-04-16,Louisa,Virginia,51109,30,0 +2020-04-17,Louisa,Virginia,51109,33,0 +2020-04-18,Louisa,Virginia,51109,33,0 +2020-04-19,Louisa,Virginia,51109,33,0 +2020-04-20,Louisa,Virginia,51109,33,0 +2020-04-21,Louisa,Virginia,51109,35,0 +2020-04-22,Louisa,Virginia,51109,37,0 +2020-04-23,Louisa,Virginia,51109,38,0 +2020-04-24,Louisa,Virginia,51109,38,0 +2020-04-25,Louisa,Virginia,51109,39,0 +2020-04-26,Louisa,Virginia,51109,40,0 +2020-04-27,Louisa,Virginia,51109,41,0 +2020-04-28,Louisa,Virginia,51109,41,0 +2020-04-29,Louisa,Virginia,51109,41,0 +2020-04-30,Louisa,Virginia,51109,43,0 +2020-05-01,Louisa,Virginia,51109,45,0 +2020-05-02,Louisa,Virginia,51109,46,0 +2020-05-03,Louisa,Virginia,51109,46,0 +2020-05-04,Louisa,Virginia,51109,49,0 +2020-05-05,Louisa,Virginia,51109,50,0 +2020-05-06,Louisa,Virginia,51109,50,0 +2020-05-07,Louisa,Virginia,51109,51,0 +2020-05-08,Louisa,Virginia,51109,53,0 +2020-05-09,Louisa,Virginia,51109,55,0 +2020-05-10,Louisa,Virginia,51109,55,0 +2020-05-11,Louisa,Virginia,51109,56,0 +2020-05-12,Louisa,Virginia,51109,56,0 +2020-05-13,Louisa,Virginia,51109,59,0 +2020-05-14,Louisa,Virginia,51109,59,0 +2020-05-15,Louisa,Virginia,51109,59,0 +2020-05-16,Louisa,Virginia,51109,59,0 +2020-05-17,Louisa,Virginia,51109,59,0 +2020-05-18,Louisa,Virginia,51109,60,0 +2020-05-19,Louisa,Virginia,51109,60,0 +2020-05-20,Louisa,Virginia,51109,61,0 +2020-05-21,Louisa,Virginia,51109,64,0 +2020-05-22,Louisa,Virginia,51109,67,1 +2020-05-23,Louisa,Virginia,51109,67,1 +2020-05-24,Louisa,Virginia,51109,69,1 +2020-05-25,Louisa,Virginia,51109,69,1 +2020-05-26,Louisa,Virginia,51109,73,1 +2020-05-27,Louisa,Virginia,51109,75,1 +2020-05-28,Louisa,Virginia,51109,76,1 +2020-05-29,Louisa,Virginia,51109,76,1 +2020-05-30,Louisa,Virginia,51109,78,1 +2020-05-31,Louisa,Virginia,51109,79,1 +2020-06-01,Louisa,Virginia,51109,79,1 +2020-06-02,Louisa,Virginia,51109,81,1 +2020-06-03,Louisa,Virginia,51109,81,1 +2020-06-04,Louisa,Virginia,51109,84,1 +2020-06-05,Louisa,Virginia,51109,85,1 +2020-06-06,Louisa,Virginia,51109,92,1 +2020-06-07,Louisa,Virginia,51109,92,1 +2020-06-08,Louisa,Virginia,51109,94,1 +2020-06-09,Louisa,Virginia,51109,94,1 +2020-06-10,Louisa,Virginia,51109,94,1 +2020-06-11,Louisa,Virginia,51109,95,1 +2020-06-12,Louisa,Virginia,51109,98,1 +2020-06-13,Louisa,Virginia,51109,98,1 +2020-06-14,Louisa,Virginia,51109,98,1 +2020-06-15,Louisa,Virginia,51109,99,1 +2020-06-16,Louisa,Virginia,51109,99,1 +2020-06-17,Louisa,Virginia,51109,101,1 +2020-06-18,Louisa,Virginia,51109,102,1 +2020-06-19,Louisa,Virginia,51109,102,1 +2020-06-20,Louisa,Virginia,51109,108,1 +2020-06-21,Louisa,Virginia,51109,109,1 +2020-06-22,Louisa,Virginia,51109,109,1 +2020-06-23,Louisa,Virginia,51109,110,1 +2020-06-24,Louisa,Virginia,51109,111,1 +2020-06-25,Louisa,Virginia,51109,112,1 +2020-06-26,Louisa,Virginia,51109,114,1 +2020-06-27,Louisa,Virginia,51109,117,1 +2020-06-28,Louisa,Virginia,51109,118,1 +2020-06-29,Louisa,Virginia,51109,118,1 +2020-06-30,Louisa,Virginia,51109,118,1 +2020-07-01,Louisa,Virginia,51109,119,1 +2020-07-02,Louisa,Virginia,51109,119,1 +2020-07-03,Louisa,Virginia,51109,119,1 +2020-07-04,Louisa,Virginia,51109,127,1 +2020-07-05,Louisa,Virginia,51109,130,1 +2020-07-06,Louisa,Virginia,51109,131,1 +2020-07-07,Louisa,Virginia,51109,132,2 +2020-07-08,Louisa,Virginia,51109,133,2 +2020-07-09,Louisa,Virginia,51109,134,2 +2020-04-07,Lunenburg,Virginia,51111,2,0 +2020-04-08,Lunenburg,Virginia,51111,2,0 +2020-04-09,Lunenburg,Virginia,51111,2,0 +2020-04-10,Lunenburg,Virginia,51111,2,0 +2020-04-11,Lunenburg,Virginia,51111,3,0 +2020-04-12,Lunenburg,Virginia,51111,3,0 +2020-04-13,Lunenburg,Virginia,51111,4,0 +2020-04-14,Lunenburg,Virginia,51111,3,0 +2020-04-15,Lunenburg,Virginia,51111,3,0 +2020-04-16,Lunenburg,Virginia,51111,3,0 +2020-04-17,Lunenburg,Virginia,51111,3,0 +2020-04-18,Lunenburg,Virginia,51111,3,0 +2020-04-19,Lunenburg,Virginia,51111,3,0 +2020-04-20,Lunenburg,Virginia,51111,3,0 +2020-04-21,Lunenburg,Virginia,51111,3,0 +2020-04-22,Lunenburg,Virginia,51111,3,0 +2020-04-23,Lunenburg,Virginia,51111,3,0 +2020-04-24,Lunenburg,Virginia,51111,3,0 +2020-04-25,Lunenburg,Virginia,51111,4,0 +2020-04-26,Lunenburg,Virginia,51111,4,0 +2020-04-27,Lunenburg,Virginia,51111,4,0 +2020-04-28,Lunenburg,Virginia,51111,4,0 +2020-04-29,Lunenburg,Virginia,51111,4,0 +2020-04-30,Lunenburg,Virginia,51111,4,0 +2020-05-01,Lunenburg,Virginia,51111,4,0 +2020-05-02,Lunenburg,Virginia,51111,4,0 +2020-05-03,Lunenburg,Virginia,51111,4,0 +2020-05-04,Lunenburg,Virginia,51111,4,0 +2020-05-05,Lunenburg,Virginia,51111,4,0 +2020-05-06,Lunenburg,Virginia,51111,4,0 +2020-05-07,Lunenburg,Virginia,51111,4,0 +2020-05-08,Lunenburg,Virginia,51111,5,0 +2020-05-09,Lunenburg,Virginia,51111,6,0 +2020-05-10,Lunenburg,Virginia,51111,6,0 +2020-05-11,Lunenburg,Virginia,51111,6,0 +2020-05-12,Lunenburg,Virginia,51111,6,0 +2020-05-13,Lunenburg,Virginia,51111,6,0 +2020-05-14,Lunenburg,Virginia,51111,6,0 +2020-05-15,Lunenburg,Virginia,51111,7,0 +2020-05-16,Lunenburg,Virginia,51111,7,0 +2020-05-17,Lunenburg,Virginia,51111,7,0 +2020-05-18,Lunenburg,Virginia,51111,7,0 +2020-05-19,Lunenburg,Virginia,51111,7,0 +2020-05-20,Lunenburg,Virginia,51111,7,0 +2020-05-21,Lunenburg,Virginia,51111,7,0 +2020-05-22,Lunenburg,Virginia,51111,7,0 +2020-05-23,Lunenburg,Virginia,51111,7,0 +2020-05-24,Lunenburg,Virginia,51111,8,0 +2020-05-25,Lunenburg,Virginia,51111,8,0 +2020-05-26,Lunenburg,Virginia,51111,10,0 +2020-05-27,Lunenburg,Virginia,51111,10,0 +2020-05-28,Lunenburg,Virginia,51111,11,0 +2020-05-29,Lunenburg,Virginia,51111,12,0 +2020-05-30,Lunenburg,Virginia,51111,13,0 +2020-05-31,Lunenburg,Virginia,51111,13,0 +2020-06-01,Lunenburg,Virginia,51111,13,0 +2020-06-02,Lunenburg,Virginia,51111,15,0 +2020-06-03,Lunenburg,Virginia,51111,15,0 +2020-06-04,Lunenburg,Virginia,51111,16,0 +2020-06-05,Lunenburg,Virginia,51111,17,0 +2020-06-06,Lunenburg,Virginia,51111,17,0 +2020-06-07,Lunenburg,Virginia,51111,17,0 +2020-06-08,Lunenburg,Virginia,51111,17,0 +2020-06-09,Lunenburg,Virginia,51111,18,0 +2020-06-10,Lunenburg,Virginia,51111,18,0 +2020-06-11,Lunenburg,Virginia,51111,18,0 +2020-06-12,Lunenburg,Virginia,51111,19,0 +2020-06-13,Lunenburg,Virginia,51111,20,0 +2020-06-14,Lunenburg,Virginia,51111,21,0 +2020-06-15,Lunenburg,Virginia,51111,21,0 +2020-06-16,Lunenburg,Virginia,51111,21,0 +2020-06-17,Lunenburg,Virginia,51111,21,0 +2020-06-18,Lunenburg,Virginia,51111,21,0 +2020-06-19,Lunenburg,Virginia,51111,21,0 +2020-06-20,Lunenburg,Virginia,51111,21,0 +2020-06-21,Lunenburg,Virginia,51111,22,0 +2020-06-22,Lunenburg,Virginia,51111,28,0 +2020-06-23,Lunenburg,Virginia,51111,28,0 +2020-06-24,Lunenburg,Virginia,51111,30,0 +2020-06-25,Lunenburg,Virginia,51111,30,0 +2020-06-26,Lunenburg,Virginia,51111,29,0 +2020-06-27,Lunenburg,Virginia,51111,30,0 +2020-06-28,Lunenburg,Virginia,51111,30,0 +2020-06-29,Lunenburg,Virginia,51111,31,0 +2020-06-30,Lunenburg,Virginia,51111,31,0 +2020-07-01,Lunenburg,Virginia,51111,34,0 +2020-07-02,Lunenburg,Virginia,51111,36,0 +2020-07-03,Lunenburg,Virginia,51111,37,0 +2020-07-04,Lunenburg,Virginia,51111,37,0 +2020-07-05,Lunenburg,Virginia,51111,37,0 +2020-07-06,Lunenburg,Virginia,51111,39,0 +2020-07-07,Lunenburg,Virginia,51111,39,0 +2020-07-08,Lunenburg,Virginia,51111,39,0 +2020-07-09,Lunenburg,Virginia,51111,39,0 +2020-03-25,Madison,Virginia,51113,1,0 +2020-03-26,Madison,Virginia,51113,2,0 +2020-03-27,Madison,Virginia,51113,2,0 +2020-03-28,Madison,Virginia,51113,3,0 +2020-03-29,Madison,Virginia,51113,3,0 +2020-03-30,Madison,Virginia,51113,3,0 +2020-03-31,Madison,Virginia,51113,3,0 +2020-04-01,Madison,Virginia,51113,3,0 +2020-04-02,Madison,Virginia,51113,3,0 +2020-04-03,Madison,Virginia,51113,2,0 +2020-04-04,Madison,Virginia,51113,2,0 +2020-04-05,Madison,Virginia,51113,3,0 +2020-04-06,Madison,Virginia,51113,4,0 +2020-04-07,Madison,Virginia,51113,4,0 +2020-04-08,Madison,Virginia,51113,5,0 +2020-04-09,Madison,Virginia,51113,5,0 +2020-04-10,Madison,Virginia,51113,5,0 +2020-04-11,Madison,Virginia,51113,6,0 +2020-04-12,Madison,Virginia,51113,6,0 +2020-04-13,Madison,Virginia,51113,6,0 +2020-04-14,Madison,Virginia,51113,7,0 +2020-04-15,Madison,Virginia,51113,8,0 +2020-04-16,Madison,Virginia,51113,8,0 +2020-04-17,Madison,Virginia,51113,8,0 +2020-04-18,Madison,Virginia,51113,8,0 +2020-04-19,Madison,Virginia,51113,8,0 +2020-04-20,Madison,Virginia,51113,8,0 +2020-04-21,Madison,Virginia,51113,12,0 +2020-04-22,Madison,Virginia,51113,12,0 +2020-04-23,Madison,Virginia,51113,14,0 +2020-04-24,Madison,Virginia,51113,14,0 +2020-04-25,Madison,Virginia,51113,14,0 +2020-04-26,Madison,Virginia,51113,14,0 +2020-04-27,Madison,Virginia,51113,14,0 +2020-04-28,Madison,Virginia,51113,14,0 +2020-04-29,Madison,Virginia,51113,14,0 +2020-04-30,Madison,Virginia,51113,14,0 +2020-05-01,Madison,Virginia,51113,14,0 +2020-05-02,Madison,Virginia,51113,15,0 +2020-05-03,Madison,Virginia,51113,15,0 +2020-05-04,Madison,Virginia,51113,16,1 +2020-05-05,Madison,Virginia,51113,17,1 +2020-05-06,Madison,Virginia,51113,17,1 +2020-05-07,Madison,Virginia,51113,18,1 +2020-05-08,Madison,Virginia,51113,20,1 +2020-05-09,Madison,Virginia,51113,20,1 +2020-05-10,Madison,Virginia,51113,21,1 +2020-05-11,Madison,Virginia,51113,21,1 +2020-05-12,Madison,Virginia,51113,21,1 +2020-05-13,Madison,Virginia,51113,22,1 +2020-05-14,Madison,Virginia,51113,23,1 +2020-05-15,Madison,Virginia,51113,23,1 +2020-05-16,Madison,Virginia,51113,24,1 +2020-05-17,Madison,Virginia,51113,24,1 +2020-05-18,Madison,Virginia,51113,24,1 +2020-05-19,Madison,Virginia,51113,27,1 +2020-05-20,Madison,Virginia,51113,27,1 +2020-05-21,Madison,Virginia,51113,27,1 +2020-05-22,Madison,Virginia,51113,27,1 +2020-05-23,Madison,Virginia,51113,27,1 +2020-05-24,Madison,Virginia,51113,32,1 +2020-05-25,Madison,Virginia,51113,32,1 +2020-05-26,Madison,Virginia,51113,37,1 +2020-05-27,Madison,Virginia,51113,38,1 +2020-05-28,Madison,Virginia,51113,38,1 +2020-05-29,Madison,Virginia,51113,39,1 +2020-05-30,Madison,Virginia,51113,40,1 +2020-05-31,Madison,Virginia,51113,41,1 +2020-06-01,Madison,Virginia,51113,41,1 +2020-06-02,Madison,Virginia,51113,41,1 +2020-06-03,Madison,Virginia,51113,41,1 +2020-06-04,Madison,Virginia,51113,41,1 +2020-06-05,Madison,Virginia,51113,41,1 +2020-06-06,Madison,Virginia,51113,41,1 +2020-06-07,Madison,Virginia,51113,41,1 +2020-06-08,Madison,Virginia,51113,41,1 +2020-06-09,Madison,Virginia,51113,41,1 +2020-06-10,Madison,Virginia,51113,41,1 +2020-06-11,Madison,Virginia,51113,41,1 +2020-06-12,Madison,Virginia,51113,42,1 +2020-06-13,Madison,Virginia,51113,42,1 +2020-06-14,Madison,Virginia,51113,42,1 +2020-06-15,Madison,Virginia,51113,42,1 +2020-06-16,Madison,Virginia,51113,42,1 +2020-06-17,Madison,Virginia,51113,42,1 +2020-06-18,Madison,Virginia,51113,42,1 +2020-06-19,Madison,Virginia,51113,42,1 +2020-06-20,Madison,Virginia,51113,42,1 +2020-06-21,Madison,Virginia,51113,43,1 +2020-06-22,Madison,Virginia,51113,43,1 +2020-06-23,Madison,Virginia,51113,43,1 +2020-06-24,Madison,Virginia,51113,43,1 +2020-06-25,Madison,Virginia,51113,43,1 +2020-06-26,Madison,Virginia,51113,43,1 +2020-06-27,Madison,Virginia,51113,43,1 +2020-06-28,Madison,Virginia,51113,43,1 +2020-06-29,Madison,Virginia,51113,43,1 +2020-06-30,Madison,Virginia,51113,43,1 +2020-07-01,Madison,Virginia,51113,43,1 +2020-07-02,Madison,Virginia,51113,43,1 +2020-07-03,Madison,Virginia,51113,43,1 +2020-07-04,Madison,Virginia,51113,43,1 +2020-07-05,Madison,Virginia,51113,44,1 +2020-07-06,Madison,Virginia,51113,45,1 +2020-07-07,Madison,Virginia,51113,46,1 +2020-07-08,Madison,Virginia,51113,46,1 +2020-07-09,Madison,Virginia,51113,46,1 +2020-03-25,Mathews,Virginia,51115,1,0 +2020-03-26,Mathews,Virginia,51115,1,0 +2020-03-27,Mathews,Virginia,51115,1,0 +2020-03-28,Mathews,Virginia,51115,2,0 +2020-03-29,Mathews,Virginia,51115,2,0 +2020-03-30,Mathews,Virginia,51115,2,0 +2020-03-31,Mathews,Virginia,51115,2,0 +2020-04-01,Mathews,Virginia,51115,2,0 +2020-04-02,Mathews,Virginia,51115,2,0 +2020-04-03,Mathews,Virginia,51115,2,0 +2020-04-04,Mathews,Virginia,51115,2,0 +2020-04-05,Mathews,Virginia,51115,2,0 +2020-04-06,Mathews,Virginia,51115,2,0 +2020-04-07,Mathews,Virginia,51115,2,0 +2020-04-08,Mathews,Virginia,51115,2,0 +2020-04-09,Mathews,Virginia,51115,2,0 +2020-04-10,Mathews,Virginia,51115,2,0 +2020-04-11,Mathews,Virginia,51115,2,0 +2020-04-12,Mathews,Virginia,51115,2,0 +2020-04-13,Mathews,Virginia,51115,3,0 +2020-04-14,Mathews,Virginia,51115,3,0 +2020-04-15,Mathews,Virginia,51115,3,0 +2020-04-16,Mathews,Virginia,51115,3,0 +2020-04-17,Mathews,Virginia,51115,3,0 +2020-04-18,Mathews,Virginia,51115,3,0 +2020-04-19,Mathews,Virginia,51115,3,0 +2020-04-20,Mathews,Virginia,51115,3,0 +2020-04-21,Mathews,Virginia,51115,3,0 +2020-04-22,Mathews,Virginia,51115,3,0 +2020-04-23,Mathews,Virginia,51115,3,0 +2020-04-24,Mathews,Virginia,51115,3,0 +2020-04-25,Mathews,Virginia,51115,4,0 +2020-04-26,Mathews,Virginia,51115,4,0 +2020-04-27,Mathews,Virginia,51115,4,0 +2020-04-28,Mathews,Virginia,51115,4,0 +2020-04-29,Mathews,Virginia,51115,4,0 +2020-04-30,Mathews,Virginia,51115,4,0 +2020-05-01,Mathews,Virginia,51115,4,0 +2020-05-02,Mathews,Virginia,51115,4,0 +2020-05-03,Mathews,Virginia,51115,4,0 +2020-05-04,Mathews,Virginia,51115,4,0 +2020-05-05,Mathews,Virginia,51115,4,0 +2020-05-06,Mathews,Virginia,51115,4,0 +2020-05-07,Mathews,Virginia,51115,4,0 +2020-05-08,Mathews,Virginia,51115,4,0 +2020-05-09,Mathews,Virginia,51115,5,0 +2020-05-10,Mathews,Virginia,51115,5,0 +2020-05-11,Mathews,Virginia,51115,5,0 +2020-05-12,Mathews,Virginia,51115,5,0 +2020-05-13,Mathews,Virginia,51115,5,0 +2020-05-14,Mathews,Virginia,51115,5,0 +2020-05-15,Mathews,Virginia,51115,5,0 +2020-05-16,Mathews,Virginia,51115,5,0 +2020-05-17,Mathews,Virginia,51115,5,0 +2020-05-18,Mathews,Virginia,51115,5,0 +2020-05-19,Mathews,Virginia,51115,5,0 +2020-05-20,Mathews,Virginia,51115,5,0 +2020-05-21,Mathews,Virginia,51115,5,0 +2020-05-22,Mathews,Virginia,51115,5,0 +2020-05-23,Mathews,Virginia,51115,5,0 +2020-05-24,Mathews,Virginia,51115,5,0 +2020-05-25,Mathews,Virginia,51115,5,0 +2020-05-26,Mathews,Virginia,51115,5,0 +2020-05-27,Mathews,Virginia,51115,5,0 +2020-05-28,Mathews,Virginia,51115,5,0 +2020-05-29,Mathews,Virginia,51115,5,0 +2020-05-30,Mathews,Virginia,51115,5,0 +2020-05-31,Mathews,Virginia,51115,5,0 +2020-06-01,Mathews,Virginia,51115,5,0 +2020-06-02,Mathews,Virginia,51115,5,0 +2020-06-03,Mathews,Virginia,51115,5,0 +2020-06-04,Mathews,Virginia,51115,5,0 +2020-06-05,Mathews,Virginia,51115,5,0 +2020-06-06,Mathews,Virginia,51115,5,0 +2020-06-07,Mathews,Virginia,51115,5,0 +2020-06-08,Mathews,Virginia,51115,5,0 +2020-06-09,Mathews,Virginia,51115,5,0 +2020-06-10,Mathews,Virginia,51115,5,0 +2020-06-11,Mathews,Virginia,51115,5,0 +2020-06-12,Mathews,Virginia,51115,5,0 +2020-06-13,Mathews,Virginia,51115,5,0 +2020-06-14,Mathews,Virginia,51115,5,0 +2020-06-15,Mathews,Virginia,51115,5,0 +2020-06-16,Mathews,Virginia,51115,5,0 +2020-06-17,Mathews,Virginia,51115,5,0 +2020-06-18,Mathews,Virginia,51115,5,0 +2020-06-19,Mathews,Virginia,51115,5,0 +2020-06-20,Mathews,Virginia,51115,5,0 +2020-06-21,Mathews,Virginia,51115,5,0 +2020-06-22,Mathews,Virginia,51115,5,0 +2020-06-23,Mathews,Virginia,51115,5,0 +2020-06-24,Mathews,Virginia,51115,5,0 +2020-06-25,Mathews,Virginia,51115,5,0 +2020-06-26,Mathews,Virginia,51115,5,0 +2020-06-27,Mathews,Virginia,51115,5,0 +2020-06-28,Mathews,Virginia,51115,5,0 +2020-06-29,Mathews,Virginia,51115,5,0 +2020-06-30,Mathews,Virginia,51115,6,0 +2020-07-01,Mathews,Virginia,51115,6,0 +2020-07-02,Mathews,Virginia,51115,6,0 +2020-07-03,Mathews,Virginia,51115,6,0 +2020-07-04,Mathews,Virginia,51115,6,0 +2020-07-05,Mathews,Virginia,51115,6,0 +2020-07-06,Mathews,Virginia,51115,6,0 +2020-07-07,Mathews,Virginia,51115,6,0 +2020-07-08,Mathews,Virginia,51115,6,0 +2020-07-09,Mathews,Virginia,51115,7,0 +2020-03-21,Mecklenburg,Virginia,51117,1,0 +2020-03-22,Mecklenburg,Virginia,51117,1,0 +2020-03-23,Mecklenburg,Virginia,51117,1,0 +2020-03-24,Mecklenburg,Virginia,51117,2,0 +2020-03-25,Mecklenburg,Virginia,51117,3,0 +2020-03-26,Mecklenburg,Virginia,51117,4,0 +2020-03-27,Mecklenburg,Virginia,51117,4,0 +2020-03-28,Mecklenburg,Virginia,51117,4,0 +2020-03-29,Mecklenburg,Virginia,51117,4,0 +2020-03-30,Mecklenburg,Virginia,51117,4,0 +2020-03-31,Mecklenburg,Virginia,51117,4,0 +2020-04-01,Mecklenburg,Virginia,51117,4,0 +2020-04-02,Mecklenburg,Virginia,51117,5,0 +2020-04-03,Mecklenburg,Virginia,51117,7,0 +2020-04-04,Mecklenburg,Virginia,51117,8,0 +2020-04-05,Mecklenburg,Virginia,51117,12,0 +2020-04-06,Mecklenburg,Virginia,51117,12,0 +2020-04-07,Mecklenburg,Virginia,51117,12,0 +2020-04-08,Mecklenburg,Virginia,51117,16,0 +2020-04-09,Mecklenburg,Virginia,51117,25,0 +2020-04-10,Mecklenburg,Virginia,51117,48,0 +2020-04-11,Mecklenburg,Virginia,51117,53,0 +2020-04-12,Mecklenburg,Virginia,51117,55,0 +2020-04-13,Mecklenburg,Virginia,51117,57,0 +2020-04-14,Mecklenburg,Virginia,51117,57,0 +2020-04-15,Mecklenburg,Virginia,51117,57,0 +2020-04-16,Mecklenburg,Virginia,51117,61,0 +2020-04-17,Mecklenburg,Virginia,51117,62,0 +2020-04-18,Mecklenburg,Virginia,51117,64,0 +2020-04-19,Mecklenburg,Virginia,51117,65,0 +2020-04-20,Mecklenburg,Virginia,51117,65,0 +2020-04-21,Mecklenburg,Virginia,51117,68,1 +2020-04-22,Mecklenburg,Virginia,51117,69,1 +2020-04-23,Mecklenburg,Virginia,51117,71,1 +2020-04-24,Mecklenburg,Virginia,51117,74,7 +2020-04-25,Mecklenburg,Virginia,51117,85,9 +2020-04-26,Mecklenburg,Virginia,51117,94,9 +2020-04-27,Mecklenburg,Virginia,51117,98,9 +2020-04-28,Mecklenburg,Virginia,51117,100,9 +2020-04-29,Mecklenburg,Virginia,51117,100,10 +2020-04-30,Mecklenburg,Virginia,51117,100,10 +2020-05-01,Mecklenburg,Virginia,51117,103,10 +2020-05-02,Mecklenburg,Virginia,51117,104,10 +2020-05-03,Mecklenburg,Virginia,51117,106,10 +2020-05-04,Mecklenburg,Virginia,51117,106,10 +2020-05-05,Mecklenburg,Virginia,51117,106,10 +2020-05-06,Mecklenburg,Virginia,51117,106,10 +2020-05-07,Mecklenburg,Virginia,51117,109,10 +2020-05-08,Mecklenburg,Virginia,51117,111,10 +2020-05-09,Mecklenburg,Virginia,51117,118,10 +2020-05-10,Mecklenburg,Virginia,51117,122,10 +2020-05-11,Mecklenburg,Virginia,51117,134,10 +2020-05-12,Mecklenburg,Virginia,51117,138,10 +2020-05-13,Mecklenburg,Virginia,51117,138,13 +2020-05-14,Mecklenburg,Virginia,51117,146,13 +2020-05-15,Mecklenburg,Virginia,51117,152,15 +2020-05-16,Mecklenburg,Virginia,51117,164,16 +2020-05-17,Mecklenburg,Virginia,51117,167,16 +2020-05-18,Mecklenburg,Virginia,51117,169,16 +2020-05-19,Mecklenburg,Virginia,51117,178,17 +2020-05-20,Mecklenburg,Virginia,51117,178,19 +2020-05-21,Mecklenburg,Virginia,51117,185,20 +2020-05-22,Mecklenburg,Virginia,51117,192,20 +2020-05-23,Mecklenburg,Virginia,51117,193,20 +2020-05-24,Mecklenburg,Virginia,51117,200,20 +2020-05-25,Mecklenburg,Virginia,51117,205,20 +2020-05-26,Mecklenburg,Virginia,51117,211,20 +2020-05-27,Mecklenburg,Virginia,51117,212,21 +2020-05-28,Mecklenburg,Virginia,51117,214,21 +2020-05-29,Mecklenburg,Virginia,51117,214,21 +2020-05-30,Mecklenburg,Virginia,51117,217,21 +2020-05-31,Mecklenburg,Virginia,51117,217,21 +2020-06-01,Mecklenburg,Virginia,51117,218,21 +2020-06-02,Mecklenburg,Virginia,51117,218,22 +2020-06-03,Mecklenburg,Virginia,51117,219,23 +2020-06-04,Mecklenburg,Virginia,51117,219,23 +2020-06-05,Mecklenburg,Virginia,51117,220,23 +2020-06-06,Mecklenburg,Virginia,51117,222,23 +2020-06-07,Mecklenburg,Virginia,51117,224,23 +2020-06-08,Mecklenburg,Virginia,51117,224,23 +2020-06-09,Mecklenburg,Virginia,51117,224,24 +2020-06-10,Mecklenburg,Virginia,51117,224,24 +2020-06-11,Mecklenburg,Virginia,51117,225,24 +2020-06-12,Mecklenburg,Virginia,51117,226,24 +2020-06-13,Mecklenburg,Virginia,51117,226,24 +2020-06-14,Mecklenburg,Virginia,51117,226,24 +2020-06-15,Mecklenburg,Virginia,51117,229,24 +2020-06-16,Mecklenburg,Virginia,51117,231,24 +2020-06-17,Mecklenburg,Virginia,51117,231,24 +2020-06-18,Mecklenburg,Virginia,51117,233,24 +2020-06-19,Mecklenburg,Virginia,51117,234,24 +2020-06-20,Mecklenburg,Virginia,51117,234,24 +2020-06-21,Mecklenburg,Virginia,51117,234,24 +2020-06-22,Mecklenburg,Virginia,51117,235,24 +2020-06-23,Mecklenburg,Virginia,51117,237,24 +2020-06-24,Mecklenburg,Virginia,51117,237,26 +2020-06-25,Mecklenburg,Virginia,51117,238,26 +2020-06-26,Mecklenburg,Virginia,51117,238,26 +2020-06-27,Mecklenburg,Virginia,51117,240,26 +2020-06-28,Mecklenburg,Virginia,51117,240,26 +2020-06-29,Mecklenburg,Virginia,51117,240,26 +2020-06-30,Mecklenburg,Virginia,51117,240,26 +2020-07-01,Mecklenburg,Virginia,51117,242,26 +2020-07-02,Mecklenburg,Virginia,51117,246,28 +2020-07-03,Mecklenburg,Virginia,51117,248,28 +2020-07-04,Mecklenburg,Virginia,51117,248,28 +2020-07-05,Mecklenburg,Virginia,51117,248,28 +2020-07-06,Mecklenburg,Virginia,51117,249,28 +2020-07-07,Mecklenburg,Virginia,51117,249,28 +2020-07-08,Mecklenburg,Virginia,51117,250,29 +2020-07-09,Mecklenburg,Virginia,51117,252,29 +2020-04-09,Middlesex,Virginia,51119,2,0 +2020-04-10,Middlesex,Virginia,51119,3,0 +2020-04-11,Middlesex,Virginia,51119,3,0 +2020-04-12,Middlesex,Virginia,51119,3,0 +2020-04-13,Middlesex,Virginia,51119,3,0 +2020-04-14,Middlesex,Virginia,51119,3,0 +2020-04-15,Middlesex,Virginia,51119,3,0 +2020-04-16,Middlesex,Virginia,51119,3,0 +2020-04-17,Middlesex,Virginia,51119,3,0 +2020-04-18,Middlesex,Virginia,51119,3,0 +2020-04-19,Middlesex,Virginia,51119,3,0 +2020-04-20,Middlesex,Virginia,51119,3,0 +2020-04-21,Middlesex,Virginia,51119,3,0 +2020-04-22,Middlesex,Virginia,51119,3,0 +2020-04-23,Middlesex,Virginia,51119,3,0 +2020-04-24,Middlesex,Virginia,51119,3,0 +2020-04-25,Middlesex,Virginia,51119,4,0 +2020-04-26,Middlesex,Virginia,51119,4,0 +2020-04-27,Middlesex,Virginia,51119,4,0 +2020-04-28,Middlesex,Virginia,51119,4,0 +2020-04-29,Middlesex,Virginia,51119,4,0 +2020-04-30,Middlesex,Virginia,51119,8,0 +2020-05-01,Middlesex,Virginia,51119,7,0 +2020-05-02,Middlesex,Virginia,51119,7,0 +2020-05-03,Middlesex,Virginia,51119,7,0 +2020-05-04,Middlesex,Virginia,51119,7,0 +2020-05-05,Middlesex,Virginia,51119,7,0 +2020-05-06,Middlesex,Virginia,51119,7,0 +2020-05-07,Middlesex,Virginia,51119,7,0 +2020-05-08,Middlesex,Virginia,51119,10,0 +2020-05-09,Middlesex,Virginia,51119,10,0 +2020-05-10,Middlesex,Virginia,51119,10,0 +2020-05-11,Middlesex,Virginia,51119,10,0 +2020-05-12,Middlesex,Virginia,51119,10,0 +2020-05-13,Middlesex,Virginia,51119,10,0 +2020-05-14,Middlesex,Virginia,51119,11,0 +2020-05-15,Middlesex,Virginia,51119,11,0 +2020-05-16,Middlesex,Virginia,51119,12,0 +2020-05-17,Middlesex,Virginia,51119,12,0 +2020-05-18,Middlesex,Virginia,51119,12,0 +2020-05-19,Middlesex,Virginia,51119,12,0 +2020-05-20,Middlesex,Virginia,51119,12,0 +2020-05-21,Middlesex,Virginia,51119,12,0 +2020-05-22,Middlesex,Virginia,51119,12,0 +2020-05-23,Middlesex,Virginia,51119,12,0 +2020-05-24,Middlesex,Virginia,51119,12,0 +2020-05-25,Middlesex,Virginia,51119,12,0 +2020-05-26,Middlesex,Virginia,51119,14,0 +2020-05-27,Middlesex,Virginia,51119,14,0 +2020-05-28,Middlesex,Virginia,51119,14,0 +2020-05-29,Middlesex,Virginia,51119,14,0 +2020-05-30,Middlesex,Virginia,51119,15,0 +2020-05-31,Middlesex,Virginia,51119,15,0 +2020-06-01,Middlesex,Virginia,51119,15,0 +2020-06-02,Middlesex,Virginia,51119,15,0 +2020-06-03,Middlesex,Virginia,51119,15,0 +2020-06-04,Middlesex,Virginia,51119,15,0 +2020-06-05,Middlesex,Virginia,51119,14,0 +2020-06-06,Middlesex,Virginia,51119,14,0 +2020-06-07,Middlesex,Virginia,51119,14,0 +2020-06-08,Middlesex,Virginia,51119,14,0 +2020-06-09,Middlesex,Virginia,51119,14,0 +2020-06-10,Middlesex,Virginia,51119,14,0 +2020-06-11,Middlesex,Virginia,51119,14,0 +2020-06-12,Middlesex,Virginia,51119,14,0 +2020-06-13,Middlesex,Virginia,51119,14,0 +2020-06-14,Middlesex,Virginia,51119,14,0 +2020-06-15,Middlesex,Virginia,51119,14,0 +2020-06-16,Middlesex,Virginia,51119,14,0 +2020-06-17,Middlesex,Virginia,51119,14,0 +2020-06-18,Middlesex,Virginia,51119,14,0 +2020-06-19,Middlesex,Virginia,51119,14,0 +2020-06-20,Middlesex,Virginia,51119,15,0 +2020-06-21,Middlesex,Virginia,51119,15,0 +2020-06-22,Middlesex,Virginia,51119,15,0 +2020-06-23,Middlesex,Virginia,51119,15,0 +2020-06-24,Middlesex,Virginia,51119,15,0 +2020-06-25,Middlesex,Virginia,51119,15,0 +2020-06-26,Middlesex,Virginia,51119,15,0 +2020-06-27,Middlesex,Virginia,51119,15,0 +2020-06-28,Middlesex,Virginia,51119,15,0 +2020-06-29,Middlesex,Virginia,51119,15,0 +2020-06-30,Middlesex,Virginia,51119,15,0 +2020-07-01,Middlesex,Virginia,51119,15,0 +2020-07-02,Middlesex,Virginia,51119,15,0 +2020-07-03,Middlesex,Virginia,51119,15,0 +2020-07-04,Middlesex,Virginia,51119,15,0 +2020-07-05,Middlesex,Virginia,51119,15,0 +2020-07-06,Middlesex,Virginia,51119,15,0 +2020-07-07,Middlesex,Virginia,51119,15,0 +2020-07-08,Middlesex,Virginia,51119,15,0 +2020-07-09,Middlesex,Virginia,51119,15,0 +2020-03-28,Montgomery,Virginia,51121,1,0 +2020-03-29,Montgomery,Virginia,51121,1,0 +2020-03-30,Montgomery,Virginia,51121,1,0 +2020-03-31,Montgomery,Virginia,51121,1,0 +2020-04-01,Montgomery,Virginia,51121,1,0 +2020-04-02,Montgomery,Virginia,51121,1,0 +2020-04-03,Montgomery,Virginia,51121,1,0 +2020-04-04,Montgomery,Virginia,51121,6,0 +2020-04-05,Montgomery,Virginia,51121,6,0 +2020-04-06,Montgomery,Virginia,51121,7,0 +2020-04-07,Montgomery,Virginia,51121,16,0 +2020-04-08,Montgomery,Virginia,51121,16,0 +2020-04-09,Montgomery,Virginia,51121,17,0 +2020-04-10,Montgomery,Virginia,51121,18,0 +2020-04-11,Montgomery,Virginia,51121,31,0 +2020-04-12,Montgomery,Virginia,51121,32,0 +2020-04-13,Montgomery,Virginia,51121,32,0 +2020-04-14,Montgomery,Virginia,51121,33,0 +2020-04-15,Montgomery,Virginia,51121,34,0 +2020-04-16,Montgomery,Virginia,51121,34,0 +2020-04-17,Montgomery,Virginia,51121,40,0 +2020-04-18,Montgomery,Virginia,51121,42,0 +2020-04-19,Montgomery,Virginia,51121,42,0 +2020-04-20,Montgomery,Virginia,51121,44,0 +2020-04-21,Montgomery,Virginia,51121,48,0 +2020-04-22,Montgomery,Virginia,51121,50,0 +2020-04-23,Montgomery,Virginia,51121,50,0 +2020-04-24,Montgomery,Virginia,51121,50,0 +2020-04-25,Montgomery,Virginia,51121,51,1 +2020-04-26,Montgomery,Virginia,51121,51,1 +2020-04-27,Montgomery,Virginia,51121,54,1 +2020-04-28,Montgomery,Virginia,51121,54,1 +2020-04-29,Montgomery,Virginia,51121,55,1 +2020-04-30,Montgomery,Virginia,51121,56,1 +2020-05-01,Montgomery,Virginia,51121,56,1 +2020-05-02,Montgomery,Virginia,51121,56,1 +2020-05-03,Montgomery,Virginia,51121,56,1 +2020-05-04,Montgomery,Virginia,51121,59,1 +2020-05-05,Montgomery,Virginia,51121,61,1 +2020-05-06,Montgomery,Virginia,51121,61,1 +2020-05-07,Montgomery,Virginia,51121,61,1 +2020-05-08,Montgomery,Virginia,51121,61,1 +2020-05-09,Montgomery,Virginia,51121,64,1 +2020-05-10,Montgomery,Virginia,51121,65,1 +2020-05-11,Montgomery,Virginia,51121,66,1 +2020-05-12,Montgomery,Virginia,51121,66,1 +2020-05-13,Montgomery,Virginia,51121,66,1 +2020-05-14,Montgomery,Virginia,51121,66,1 +2020-05-15,Montgomery,Virginia,51121,66,1 +2020-05-16,Montgomery,Virginia,51121,66,1 +2020-05-17,Montgomery,Virginia,51121,66,1 +2020-05-18,Montgomery,Virginia,51121,66,1 +2020-05-19,Montgomery,Virginia,51121,66,1 +2020-05-20,Montgomery,Virginia,51121,66,1 +2020-05-21,Montgomery,Virginia,51121,67,1 +2020-05-22,Montgomery,Virginia,51121,67,1 +2020-05-23,Montgomery,Virginia,51121,69,1 +2020-05-24,Montgomery,Virginia,51121,69,1 +2020-05-25,Montgomery,Virginia,51121,69,1 +2020-05-26,Montgomery,Virginia,51121,69,1 +2020-05-27,Montgomery,Virginia,51121,70,1 +2020-05-28,Montgomery,Virginia,51121,72,1 +2020-05-29,Montgomery,Virginia,51121,73,1 +2020-05-30,Montgomery,Virginia,51121,73,1 +2020-05-31,Montgomery,Virginia,51121,77,1 +2020-06-01,Montgomery,Virginia,51121,78,1 +2020-06-02,Montgomery,Virginia,51121,80,1 +2020-06-03,Montgomery,Virginia,51121,80,1 +2020-06-04,Montgomery,Virginia,51121,82,1 +2020-06-05,Montgomery,Virginia,51121,85,1 +2020-06-06,Montgomery,Virginia,51121,91,1 +2020-06-07,Montgomery,Virginia,51121,91,1 +2020-06-08,Montgomery,Virginia,51121,94,1 +2020-06-09,Montgomery,Virginia,51121,95,1 +2020-06-10,Montgomery,Virginia,51121,96,1 +2020-06-11,Montgomery,Virginia,51121,96,2 +2020-06-12,Montgomery,Virginia,51121,96,2 +2020-06-13,Montgomery,Virginia,51121,96,2 +2020-06-14,Montgomery,Virginia,51121,96,2 +2020-06-15,Montgomery,Virginia,51121,95,2 +2020-06-16,Montgomery,Virginia,51121,97,2 +2020-06-17,Montgomery,Virginia,51121,97,2 +2020-06-18,Montgomery,Virginia,51121,97,2 +2020-06-19,Montgomery,Virginia,51121,97,2 +2020-06-20,Montgomery,Virginia,51121,107,2 +2020-06-21,Montgomery,Virginia,51121,110,2 +2020-06-22,Montgomery,Virginia,51121,110,2 +2020-06-23,Montgomery,Virginia,51121,112,2 +2020-06-24,Montgomery,Virginia,51121,116,2 +2020-06-25,Montgomery,Virginia,51121,116,2 +2020-06-26,Montgomery,Virginia,51121,122,2 +2020-06-27,Montgomery,Virginia,51121,126,2 +2020-06-28,Montgomery,Virginia,51121,136,2 +2020-06-29,Montgomery,Virginia,51121,143,2 +2020-06-30,Montgomery,Virginia,51121,145,2 +2020-07-01,Montgomery,Virginia,51121,147,2 +2020-07-02,Montgomery,Virginia,51121,149,2 +2020-07-03,Montgomery,Virginia,51121,154,2 +2020-07-04,Montgomery,Virginia,51121,155,2 +2020-07-05,Montgomery,Virginia,51121,158,2 +2020-07-06,Montgomery,Virginia,51121,163,2 +2020-07-07,Montgomery,Virginia,51121,167,2 +2020-07-08,Montgomery,Virginia,51121,170,3 +2020-07-09,Montgomery,Virginia,51121,172,3 +2020-03-25,Nelson,Virginia,51125,1,0 +2020-03-26,Nelson,Virginia,51125,1,0 +2020-03-27,Nelson,Virginia,51125,1,0 +2020-03-28,Nelson,Virginia,51125,2,0 +2020-03-29,Nelson,Virginia,51125,2,0 +2020-03-30,Nelson,Virginia,51125,2,0 +2020-03-31,Nelson,Virginia,51125,2,0 +2020-04-01,Nelson,Virginia,51125,2,0 +2020-04-02,Nelson,Virginia,51125,2,0 +2020-04-03,Nelson,Virginia,51125,2,0 +2020-04-04,Nelson,Virginia,51125,2,0 +2020-04-05,Nelson,Virginia,51125,2,0 +2020-04-06,Nelson,Virginia,51125,2,0 +2020-04-07,Nelson,Virginia,51125,2,0 +2020-04-08,Nelson,Virginia,51125,3,0 +2020-04-09,Nelson,Virginia,51125,3,0 +2020-04-10,Nelson,Virginia,51125,4,0 +2020-04-11,Nelson,Virginia,51125,4,0 +2020-04-12,Nelson,Virginia,51125,5,0 +2020-04-13,Nelson,Virginia,51125,5,0 +2020-04-14,Nelson,Virginia,51125,5,0 +2020-04-15,Nelson,Virginia,51125,5,0 +2020-04-16,Nelson,Virginia,51125,5,0 +2020-04-17,Nelson,Virginia,51125,5,0 +2020-04-18,Nelson,Virginia,51125,5,0 +2020-04-19,Nelson,Virginia,51125,5,0 +2020-04-20,Nelson,Virginia,51125,5,0 +2020-04-21,Nelson,Virginia,51125,6,0 +2020-04-22,Nelson,Virginia,51125,7,0 +2020-04-23,Nelson,Virginia,51125,7,0 +2020-04-24,Nelson,Virginia,51125,7,0 +2020-04-25,Nelson,Virginia,51125,7,0 +2020-04-26,Nelson,Virginia,51125,7,0 +2020-04-27,Nelson,Virginia,51125,7,0 +2020-04-28,Nelson,Virginia,51125,7,0 +2020-04-29,Nelson,Virginia,51125,7,0 +2020-04-30,Nelson,Virginia,51125,8,0 +2020-05-01,Nelson,Virginia,51125,8,0 +2020-05-02,Nelson,Virginia,51125,8,0 +2020-05-03,Nelson,Virginia,51125,8,0 +2020-05-04,Nelson,Virginia,51125,9,0 +2020-05-05,Nelson,Virginia,51125,9,0 +2020-05-06,Nelson,Virginia,51125,9,0 +2020-05-07,Nelson,Virginia,51125,9,0 +2020-05-08,Nelson,Virginia,51125,10,0 +2020-05-09,Nelson,Virginia,51125,10,0 +2020-05-10,Nelson,Virginia,51125,10,0 +2020-05-11,Nelson,Virginia,51125,10,0 +2020-05-12,Nelson,Virginia,51125,12,0 +2020-05-13,Nelson,Virginia,51125,12,0 +2020-05-14,Nelson,Virginia,51125,12,0 +2020-05-15,Nelson,Virginia,51125,12,0 +2020-05-16,Nelson,Virginia,51125,12,0 +2020-05-17,Nelson,Virginia,51125,12,0 +2020-05-18,Nelson,Virginia,51125,12,0 +2020-05-19,Nelson,Virginia,51125,13,0 +2020-05-20,Nelson,Virginia,51125,13,0 +2020-05-21,Nelson,Virginia,51125,13,0 +2020-05-22,Nelson,Virginia,51125,13,0 +2020-05-23,Nelson,Virginia,51125,13,0 +2020-05-24,Nelson,Virginia,51125,13,0 +2020-05-25,Nelson,Virginia,51125,14,0 +2020-05-26,Nelson,Virginia,51125,15,0 +2020-05-27,Nelson,Virginia,51125,16,0 +2020-05-28,Nelson,Virginia,51125,16,0 +2020-05-29,Nelson,Virginia,51125,16,0 +2020-05-30,Nelson,Virginia,51125,17,0 +2020-05-31,Nelson,Virginia,51125,17,0 +2020-06-01,Nelson,Virginia,51125,17,0 +2020-06-02,Nelson,Virginia,51125,17,0 +2020-06-03,Nelson,Virginia,51125,17,0 +2020-06-04,Nelson,Virginia,51125,17,0 +2020-06-05,Nelson,Virginia,51125,17,0 +2020-06-06,Nelson,Virginia,51125,17,0 +2020-06-07,Nelson,Virginia,51125,17,0 +2020-06-08,Nelson,Virginia,51125,17,0 +2020-06-09,Nelson,Virginia,51125,17,0 +2020-06-10,Nelson,Virginia,51125,17,0 +2020-06-11,Nelson,Virginia,51125,18,0 +2020-06-12,Nelson,Virginia,51125,18,0 +2020-06-13,Nelson,Virginia,51125,18,0 +2020-06-14,Nelson,Virginia,51125,18,0 +2020-06-15,Nelson,Virginia,51125,18,0 +2020-06-16,Nelson,Virginia,51125,18,0 +2020-06-17,Nelson,Virginia,51125,18,0 +2020-06-18,Nelson,Virginia,51125,18,0 +2020-06-19,Nelson,Virginia,51125,18,0 +2020-06-20,Nelson,Virginia,51125,18,0 +2020-06-21,Nelson,Virginia,51125,18,0 +2020-06-22,Nelson,Virginia,51125,18,0 +2020-06-23,Nelson,Virginia,51125,18,0 +2020-06-24,Nelson,Virginia,51125,18,0 +2020-06-25,Nelson,Virginia,51125,18,0 +2020-06-26,Nelson,Virginia,51125,18,0 +2020-06-27,Nelson,Virginia,51125,18,0 +2020-06-28,Nelson,Virginia,51125,18,0 +2020-06-29,Nelson,Virginia,51125,18,0 +2020-06-30,Nelson,Virginia,51125,18,0 +2020-07-01,Nelson,Virginia,51125,18,0 +2020-07-02,Nelson,Virginia,51125,18,0 +2020-07-03,Nelson,Virginia,51125,18,0 +2020-07-04,Nelson,Virginia,51125,20,0 +2020-07-05,Nelson,Virginia,51125,20,0 +2020-07-06,Nelson,Virginia,51125,21,0 +2020-07-07,Nelson,Virginia,51125,21,0 +2020-07-08,Nelson,Virginia,51125,22,0 +2020-07-09,Nelson,Virginia,51125,22,0 +2020-03-28,New Kent,Virginia,51127,1,0 +2020-03-29,New Kent,Virginia,51127,1,0 +2020-03-30,New Kent,Virginia,51127,1,0 +2020-03-31,New Kent,Virginia,51127,1,0 +2020-04-01,New Kent,Virginia,51127,1,0 +2020-04-02,New Kent,Virginia,51127,3,0 +2020-04-03,New Kent,Virginia,51127,6,0 +2020-04-04,New Kent,Virginia,51127,8,0 +2020-04-05,New Kent,Virginia,51127,9,0 +2020-04-06,New Kent,Virginia,51127,12,0 +2020-04-07,New Kent,Virginia,51127,12,0 +2020-04-08,New Kent,Virginia,51127,11,0 +2020-04-09,New Kent,Virginia,51127,11,0 +2020-04-10,New Kent,Virginia,51127,13,0 +2020-04-11,New Kent,Virginia,51127,12,0 +2020-04-12,New Kent,Virginia,51127,12,0 +2020-04-13,New Kent,Virginia,51127,13,0 +2020-04-14,New Kent,Virginia,51127,15,0 +2020-04-15,New Kent,Virginia,51127,16,0 +2020-04-16,New Kent,Virginia,51127,16,0 +2020-04-17,New Kent,Virginia,51127,17,0 +2020-04-18,New Kent,Virginia,51127,17,0 +2020-04-19,New Kent,Virginia,51127,17,0 +2020-04-20,New Kent,Virginia,51127,18,0 +2020-04-21,New Kent,Virginia,51127,20,2 +2020-04-22,New Kent,Virginia,51127,20,1 +2020-04-23,New Kent,Virginia,51127,20,2 +2020-04-24,New Kent,Virginia,51127,20,2 +2020-04-25,New Kent,Virginia,51127,20,1 +2020-04-26,New Kent,Virginia,51127,20,1 +2020-04-27,New Kent,Virginia,51127,20,1 +2020-04-28,New Kent,Virginia,51127,21,1 +2020-04-29,New Kent,Virginia,51127,23,1 +2020-04-30,New Kent,Virginia,51127,23,1 +2020-05-01,New Kent,Virginia,51127,23,1 +2020-05-02,New Kent,Virginia,51127,23,1 +2020-05-03,New Kent,Virginia,51127,25,1 +2020-05-04,New Kent,Virginia,51127,26,1 +2020-05-05,New Kent,Virginia,51127,26,1 +2020-05-06,New Kent,Virginia,51127,26,1 +2020-05-07,New Kent,Virginia,51127,26,1 +2020-05-08,New Kent,Virginia,51127,26,1 +2020-05-09,New Kent,Virginia,51127,26,1 +2020-05-10,New Kent,Virginia,51127,26,1 +2020-05-11,New Kent,Virginia,51127,26,1 +2020-05-12,New Kent,Virginia,51127,26,1 +2020-05-13,New Kent,Virginia,51127,28,1 +2020-05-14,New Kent,Virginia,51127,28,2 +2020-05-15,New Kent,Virginia,51127,26,1 +2020-05-16,New Kent,Virginia,51127,26,1 +2020-05-17,New Kent,Virginia,51127,26,1 +2020-05-18,New Kent,Virginia,51127,26,1 +2020-05-19,New Kent,Virginia,51127,27,1 +2020-05-20,New Kent,Virginia,51127,27,1 +2020-05-21,New Kent,Virginia,51127,26,1 +2020-05-22,New Kent,Virginia,51127,26,1 +2020-05-23,New Kent,Virginia,51127,27,1 +2020-05-24,New Kent,Virginia,51127,27,1 +2020-05-25,New Kent,Virginia,51127,29,1 +2020-05-26,New Kent,Virginia,51127,35,1 +2020-05-27,New Kent,Virginia,51127,35,1 +2020-05-28,New Kent,Virginia,51127,36,1 +2020-05-29,New Kent,Virginia,51127,36,1 +2020-05-30,New Kent,Virginia,51127,36,1 +2020-05-31,New Kent,Virginia,51127,36,1 +2020-06-01,New Kent,Virginia,51127,36,1 +2020-06-02,New Kent,Virginia,51127,38,1 +2020-06-03,New Kent,Virginia,51127,38,1 +2020-06-04,New Kent,Virginia,51127,39,1 +2020-06-05,New Kent,Virginia,51127,39,1 +2020-06-06,New Kent,Virginia,51127,43,1 +2020-06-07,New Kent,Virginia,51127,44,1 +2020-06-08,New Kent,Virginia,51127,44,1 +2020-06-09,New Kent,Virginia,51127,45,1 +2020-06-10,New Kent,Virginia,51127,45,1 +2020-06-11,New Kent,Virginia,51127,45,1 +2020-06-12,New Kent,Virginia,51127,44,1 +2020-06-13,New Kent,Virginia,51127,45,1 +2020-06-14,New Kent,Virginia,51127,46,1 +2020-06-15,New Kent,Virginia,51127,46,1 +2020-06-16,New Kent,Virginia,51127,46,1 +2020-06-17,New Kent,Virginia,51127,47,1 +2020-06-18,New Kent,Virginia,51127,48,1 +2020-06-19,New Kent,Virginia,51127,48,1 +2020-06-20,New Kent,Virginia,51127,48,1 +2020-06-21,New Kent,Virginia,51127,49,1 +2020-06-22,New Kent,Virginia,51127,49,1 +2020-06-23,New Kent,Virginia,51127,50,1 +2020-06-24,New Kent,Virginia,51127,50,1 +2020-06-25,New Kent,Virginia,51127,52,1 +2020-06-26,New Kent,Virginia,51127,55,1 +2020-06-27,New Kent,Virginia,51127,57,1 +2020-06-28,New Kent,Virginia,51127,57,1 +2020-06-29,New Kent,Virginia,51127,57,1 +2020-06-30,New Kent,Virginia,51127,57,1 +2020-07-01,New Kent,Virginia,51127,57,1 +2020-07-02,New Kent,Virginia,51127,57,1 +2020-07-03,New Kent,Virginia,51127,60,1 +2020-07-04,New Kent,Virginia,51127,60,1 +2020-07-05,New Kent,Virginia,51127,60,1 +2020-07-06,New Kent,Virginia,51127,60,1 +2020-07-07,New Kent,Virginia,51127,62,1 +2020-07-08,New Kent,Virginia,51127,62,1 +2020-07-09,New Kent,Virginia,51127,62,1 +2020-03-26,Northampton,Virginia,51131,1,0 +2020-03-27,Northampton,Virginia,51131,1,0 +2020-03-28,Northampton,Virginia,51131,1,0 +2020-03-29,Northampton,Virginia,51131,1,0 +2020-03-30,Northampton,Virginia,51131,1,0 +2020-03-31,Northampton,Virginia,51131,1,0 +2020-04-01,Northampton,Virginia,51131,1,0 +2020-04-02,Northampton,Virginia,51131,1,0 +2020-04-03,Northampton,Virginia,51131,2,0 +2020-04-04,Northampton,Virginia,51131,2,0 +2020-04-05,Northampton,Virginia,51131,2,0 +2020-04-06,Northampton,Virginia,51131,2,0 +2020-04-07,Northampton,Virginia,51131,2,0 +2020-04-08,Northampton,Virginia,51131,2,0 +2020-04-09,Northampton,Virginia,51131,2,0 +2020-04-10,Northampton,Virginia,51131,4,0 +2020-04-11,Northampton,Virginia,51131,4,0 +2020-04-12,Northampton,Virginia,51131,4,0 +2020-04-13,Northampton,Virginia,51131,4,0 +2020-04-14,Northampton,Virginia,51131,4,0 +2020-04-15,Northampton,Virginia,51131,4,0 +2020-04-16,Northampton,Virginia,51131,4,0 +2020-04-17,Northampton,Virginia,51131,5,0 +2020-04-18,Northampton,Virginia,51131,5,0 +2020-04-19,Northampton,Virginia,51131,7,0 +2020-04-20,Northampton,Virginia,51131,7,0 +2020-04-21,Northampton,Virginia,51131,7,0 +2020-04-22,Northampton,Virginia,51131,8,0 +2020-04-23,Northampton,Virginia,51131,12,0 +2020-04-24,Northampton,Virginia,51131,15,0 +2020-04-25,Northampton,Virginia,51131,20,0 +2020-04-26,Northampton,Virginia,51131,24,0 +2020-04-27,Northampton,Virginia,51131,28,0 +2020-04-28,Northampton,Virginia,51131,35,0 +2020-04-29,Northampton,Virginia,51131,36,0 +2020-04-30,Northampton,Virginia,51131,64,0 +2020-05-01,Northampton,Virginia,51131,82,0 +2020-05-02,Northampton,Virginia,51131,94,0 +2020-05-03,Northampton,Virginia,51131,134,1 +2020-05-04,Northampton,Virginia,51131,139,1 +2020-05-05,Northampton,Virginia,51131,140,1 +2020-05-06,Northampton,Virginia,51131,140,1 +2020-05-07,Northampton,Virginia,51131,149,3 +2020-05-08,Northampton,Virginia,51131,149,5 +2020-05-09,Northampton,Virginia,51131,159,5 +2020-05-10,Northampton,Virginia,51131,163,5 +2020-05-11,Northampton,Virginia,51131,170,5 +2020-05-12,Northampton,Virginia,51131,171,5 +2020-05-13,Northampton,Virginia,51131,174,5 +2020-05-14,Northampton,Virginia,51131,184,6 +2020-05-15,Northampton,Virginia,51131,193,7 +2020-05-16,Northampton,Virginia,51131,196,8 +2020-05-17,Northampton,Virginia,51131,198,9 +2020-05-18,Northampton,Virginia,51131,198,9 +2020-05-19,Northampton,Virginia,51131,204,11 +2020-05-20,Northampton,Virginia,51131,205,15 +2020-05-21,Northampton,Virginia,51131,206,16 +2020-05-22,Northampton,Virginia,51131,206,16 +2020-05-23,Northampton,Virginia,51131,210,16 +2020-05-24,Northampton,Virginia,51131,213,16 +2020-05-25,Northampton,Virginia,51131,216,17 +2020-05-26,Northampton,Virginia,51131,221,17 +2020-05-27,Northampton,Virginia,51131,225,18 +2020-05-28,Northampton,Virginia,51131,227,20 +2020-05-29,Northampton,Virginia,51131,228,20 +2020-05-30,Northampton,Virginia,51131,230,20 +2020-05-31,Northampton,Virginia,51131,237,23 +2020-06-01,Northampton,Virginia,51131,241,23 +2020-06-02,Northampton,Virginia,51131,243,23 +2020-06-03,Northampton,Virginia,51131,245,23 +2020-06-04,Northampton,Virginia,51131,247,25 +2020-06-05,Northampton,Virginia,51131,249,25 +2020-06-06,Northampton,Virginia,51131,251,25 +2020-06-07,Northampton,Virginia,51131,255,26 +2020-06-08,Northampton,Virginia,51131,255,26 +2020-06-09,Northampton,Virginia,51131,256,27 +2020-06-10,Northampton,Virginia,51131,257,27 +2020-06-11,Northampton,Virginia,51131,259,27 +2020-06-12,Northampton,Virginia,51131,259,27 +2020-06-13,Northampton,Virginia,51131,261,27 +2020-06-14,Northampton,Virginia,51131,262,27 +2020-06-15,Northampton,Virginia,51131,262,27 +2020-06-16,Northampton,Virginia,51131,264,27 +2020-06-17,Northampton,Virginia,51131,265,27 +2020-06-18,Northampton,Virginia,51131,267,27 +2020-06-19,Northampton,Virginia,51131,267,27 +2020-06-20,Northampton,Virginia,51131,268,27 +2020-06-21,Northampton,Virginia,51131,270,28 +2020-06-22,Northampton,Virginia,51131,271,28 +2020-06-23,Northampton,Virginia,51131,271,28 +2020-06-24,Northampton,Virginia,51131,270,28 +2020-06-25,Northampton,Virginia,51131,269,28 +2020-06-26,Northampton,Virginia,51131,269,28 +2020-06-27,Northampton,Virginia,51131,269,28 +2020-06-28,Northampton,Virginia,51131,269,28 +2020-06-29,Northampton,Virginia,51131,269,28 +2020-06-30,Northampton,Virginia,51131,269,28 +2020-07-01,Northampton,Virginia,51131,269,28 +2020-07-02,Northampton,Virginia,51131,271,28 +2020-07-03,Northampton,Virginia,51131,271,28 +2020-07-04,Northampton,Virginia,51131,271,28 +2020-07-05,Northampton,Virginia,51131,272,28 +2020-07-06,Northampton,Virginia,51131,272,28 +2020-07-07,Northampton,Virginia,51131,272,28 +2020-07-08,Northampton,Virginia,51131,272,28 +2020-07-09,Northampton,Virginia,51131,272,28 +2020-03-28,Northumberland,Virginia,51133,2,0 +2020-03-29,Northumberland,Virginia,51133,2,0 +2020-03-30,Northumberland,Virginia,51133,2,0 +2020-03-31,Northumberland,Virginia,51133,3,0 +2020-04-01,Northumberland,Virginia,51133,3,0 +2020-04-02,Northumberland,Virginia,51133,3,0 +2020-04-03,Northumberland,Virginia,51133,3,0 +2020-04-04,Northumberland,Virginia,51133,3,0 +2020-04-05,Northumberland,Virginia,51133,3,0 +2020-04-06,Northumberland,Virginia,51133,3,0 +2020-04-07,Northumberland,Virginia,51133,3,0 +2020-04-08,Northumberland,Virginia,51133,3,0 +2020-04-09,Northumberland,Virginia,51133,3,0 +2020-04-10,Northumberland,Virginia,51133,3,0 +2020-04-11,Northumberland,Virginia,51133,4,0 +2020-04-12,Northumberland,Virginia,51133,4,0 +2020-04-13,Northumberland,Virginia,51133,4,0 +2020-04-14,Northumberland,Virginia,51133,4,0 +2020-04-15,Northumberland,Virginia,51133,4,0 +2020-04-16,Northumberland,Virginia,51133,5,0 +2020-04-17,Northumberland,Virginia,51133,5,0 +2020-04-18,Northumberland,Virginia,51133,5,0 +2020-04-19,Northumberland,Virginia,51133,5,0 +2020-04-20,Northumberland,Virginia,51133,5,0 +2020-04-21,Northumberland,Virginia,51133,5,0 +2020-04-22,Northumberland,Virginia,51133,5,0 +2020-04-23,Northumberland,Virginia,51133,6,0 +2020-04-24,Northumberland,Virginia,51133,6,0 +2020-04-25,Northumberland,Virginia,51133,8,0 +2020-04-26,Northumberland,Virginia,51133,8,0 +2020-04-27,Northumberland,Virginia,51133,8,0 +2020-04-28,Northumberland,Virginia,51133,8,0 +2020-04-29,Northumberland,Virginia,51133,8,0 +2020-04-30,Northumberland,Virginia,51133,9,0 +2020-05-01,Northumberland,Virginia,51133,9,0 +2020-05-02,Northumberland,Virginia,51133,9,0 +2020-05-03,Northumberland,Virginia,51133,9,0 +2020-05-04,Northumberland,Virginia,51133,9,0 +2020-05-05,Northumberland,Virginia,51133,9,0 +2020-05-06,Northumberland,Virginia,51133,9,0 +2020-05-07,Northumberland,Virginia,51133,9,1 +2020-05-08,Northumberland,Virginia,51133,9,1 +2020-05-09,Northumberland,Virginia,51133,9,1 +2020-05-10,Northumberland,Virginia,51133,10,1 +2020-05-11,Northumberland,Virginia,51133,10,1 +2020-05-12,Northumberland,Virginia,51133,10,1 +2020-05-13,Northumberland,Virginia,51133,11,1 +2020-05-14,Northumberland,Virginia,51133,15,1 +2020-05-15,Northumberland,Virginia,51133,15,1 +2020-05-16,Northumberland,Virginia,51133,17,1 +2020-05-17,Northumberland,Virginia,51133,18,1 +2020-05-18,Northumberland,Virginia,51133,18,1 +2020-05-19,Northumberland,Virginia,51133,20,1 +2020-05-20,Northumberland,Virginia,51133,21,1 +2020-05-21,Northumberland,Virginia,51133,21,1 +2020-05-22,Northumberland,Virginia,51133,22,1 +2020-05-23,Northumberland,Virginia,51133,22,1 +2020-05-24,Northumberland,Virginia,51133,22,1 +2020-05-25,Northumberland,Virginia,51133,23,1 +2020-05-26,Northumberland,Virginia,51133,23,1 +2020-05-27,Northumberland,Virginia,51133,23,1 +2020-05-28,Northumberland,Virginia,51133,25,1 +2020-05-29,Northumberland,Virginia,51133,25,1 +2020-05-30,Northumberland,Virginia,51133,25,1 +2020-05-31,Northumberland,Virginia,51133,25,1 +2020-06-01,Northumberland,Virginia,51133,25,1 +2020-06-02,Northumberland,Virginia,51133,25,1 +2020-06-03,Northumberland,Virginia,51133,25,1 +2020-06-04,Northumberland,Virginia,51133,25,1 +2020-06-05,Northumberland,Virginia,51133,25,1 +2020-06-06,Northumberland,Virginia,51133,25,1 +2020-06-07,Northumberland,Virginia,51133,25,1 +2020-06-08,Northumberland,Virginia,51133,25,1 +2020-06-09,Northumberland,Virginia,51133,25,1 +2020-06-10,Northumberland,Virginia,51133,25,1 +2020-06-11,Northumberland,Virginia,51133,25,1 +2020-06-12,Northumberland,Virginia,51133,25,1 +2020-06-13,Northumberland,Virginia,51133,26,1 +2020-06-14,Northumberland,Virginia,51133,26,1 +2020-06-15,Northumberland,Virginia,51133,27,1 +2020-06-16,Northumberland,Virginia,51133,27,1 +2020-06-17,Northumberland,Virginia,51133,27,1 +2020-06-18,Northumberland,Virginia,51133,27,1 +2020-06-19,Northumberland,Virginia,51133,28,1 +2020-06-20,Northumberland,Virginia,51133,28,1 +2020-06-21,Northumberland,Virginia,51133,28,1 +2020-06-22,Northumberland,Virginia,51133,28,1 +2020-06-23,Northumberland,Virginia,51133,28,1 +2020-06-24,Northumberland,Virginia,51133,28,1 +2020-06-25,Northumberland,Virginia,51133,28,1 +2020-06-26,Northumberland,Virginia,51133,38,1 +2020-06-27,Northumberland,Virginia,51133,38,1 +2020-06-28,Northumberland,Virginia,51133,38,1 +2020-06-29,Northumberland,Virginia,51133,39,1 +2020-06-30,Northumberland,Virginia,51133,37,1 +2020-07-01,Northumberland,Virginia,51133,37,1 +2020-07-02,Northumberland,Virginia,51133,37,1 +2020-07-03,Northumberland,Virginia,51133,36,1 +2020-07-04,Northumberland,Virginia,51133,36,1 +2020-07-05,Northumberland,Virginia,51133,37,1 +2020-07-06,Northumberland,Virginia,51133,37,1 +2020-07-07,Northumberland,Virginia,51133,37,1 +2020-07-08,Northumberland,Virginia,51133,37,1 +2020-07-09,Northumberland,Virginia,51133,37,1 +2020-03-25,Nottoway,Virginia,51135,1,0 +2020-03-26,Nottoway,Virginia,51135,1,0 +2020-03-27,Nottoway,Virginia,51135,1,0 +2020-03-28,Nottoway,Virginia,51135,1,0 +2020-03-29,Nottoway,Virginia,51135,1,0 +2020-03-30,Nottoway,Virginia,51135,1,0 +2020-03-31,Nottoway,Virginia,51135,1,0 +2020-04-01,Nottoway,Virginia,51135,1,0 +2020-04-02,Nottoway,Virginia,51135,1,0 +2020-04-03,Nottoway,Virginia,51135,1,0 +2020-04-04,Nottoway,Virginia,51135,1,0 +2020-04-05,Nottoway,Virginia,51135,1,0 +2020-04-06,Nottoway,Virginia,51135,1,0 +2020-04-07,Nottoway,Virginia,51135,3,0 +2020-04-08,Nottoway,Virginia,51135,3,0 +2020-04-09,Nottoway,Virginia,51135,3,0 +2020-04-10,Nottoway,Virginia,51135,3,0 +2020-04-11,Nottoway,Virginia,51135,4,0 +2020-04-12,Nottoway,Virginia,51135,5,0 +2020-04-13,Nottoway,Virginia,51135,5,0 +2020-04-14,Nottoway,Virginia,51135,5,0 +2020-04-15,Nottoway,Virginia,51135,5,0 +2020-04-16,Nottoway,Virginia,51135,5,0 +2020-04-17,Nottoway,Virginia,51135,5,0 +2020-04-18,Nottoway,Virginia,51135,6,0 +2020-04-19,Nottoway,Virginia,51135,8,0 +2020-04-20,Nottoway,Virginia,51135,8,0 +2020-04-21,Nottoway,Virginia,51135,8,0 +2020-04-22,Nottoway,Virginia,51135,8,0 +2020-04-23,Nottoway,Virginia,51135,8,0 +2020-04-24,Nottoway,Virginia,51135,10,0 +2020-04-25,Nottoway,Virginia,51135,11,0 +2020-04-26,Nottoway,Virginia,51135,11,0 +2020-04-27,Nottoway,Virginia,51135,11,0 +2020-04-28,Nottoway,Virginia,51135,11,0 +2020-04-29,Nottoway,Virginia,51135,12,0 +2020-04-30,Nottoway,Virginia,51135,12,0 +2020-05-01,Nottoway,Virginia,51135,13,0 +2020-05-02,Nottoway,Virginia,51135,13,0 +2020-05-03,Nottoway,Virginia,51135,13,0 +2020-05-04,Nottoway,Virginia,51135,14,0 +2020-05-05,Nottoway,Virginia,51135,14,0 +2020-05-06,Nottoway,Virginia,51135,14,0 +2020-05-07,Nottoway,Virginia,51135,14,0 +2020-05-08,Nottoway,Virginia,51135,14,0 +2020-05-09,Nottoway,Virginia,51135,14,0 +2020-05-10,Nottoway,Virginia,51135,14,0 +2020-05-11,Nottoway,Virginia,51135,14,0 +2020-05-12,Nottoway,Virginia,51135,14,0 +2020-05-13,Nottoway,Virginia,51135,14,0 +2020-05-14,Nottoway,Virginia,51135,14,0 +2020-05-15,Nottoway,Virginia,51135,16,0 +2020-05-16,Nottoway,Virginia,51135,16,0 +2020-05-17,Nottoway,Virginia,51135,16,0 +2020-05-18,Nottoway,Virginia,51135,18,0 +2020-05-19,Nottoway,Virginia,51135,18,0 +2020-05-20,Nottoway,Virginia,51135,18,0 +2020-05-21,Nottoway,Virginia,51135,19,0 +2020-05-22,Nottoway,Virginia,51135,19,0 +2020-05-23,Nottoway,Virginia,51135,19,0 +2020-05-24,Nottoway,Virginia,51135,19,0 +2020-05-25,Nottoway,Virginia,51135,19,0 +2020-05-26,Nottoway,Virginia,51135,20,0 +2020-05-27,Nottoway,Virginia,51135,21,0 +2020-05-28,Nottoway,Virginia,51135,24,0 +2020-05-29,Nottoway,Virginia,51135,25,0 +2020-05-30,Nottoway,Virginia,51135,28,0 +2020-05-31,Nottoway,Virginia,51135,29,0 +2020-06-01,Nottoway,Virginia,51135,33,0 +2020-06-02,Nottoway,Virginia,51135,39,0 +2020-06-03,Nottoway,Virginia,51135,40,0 +2020-06-04,Nottoway,Virginia,51135,40,0 +2020-06-05,Nottoway,Virginia,51135,44,0 +2020-06-06,Nottoway,Virginia,51135,48,0 +2020-06-07,Nottoway,Virginia,51135,48,0 +2020-06-08,Nottoway,Virginia,51135,50,0 +2020-06-09,Nottoway,Virginia,51135,50,0 +2020-06-10,Nottoway,Virginia,51135,51,0 +2020-06-11,Nottoway,Virginia,51135,58,0 +2020-06-12,Nottoway,Virginia,51135,63,0 +2020-06-13,Nottoway,Virginia,51135,65,0 +2020-06-14,Nottoway,Virginia,51135,67,0 +2020-06-15,Nottoway,Virginia,51135,67,0 +2020-06-16,Nottoway,Virginia,51135,68,0 +2020-06-17,Nottoway,Virginia,51135,68,0 +2020-06-18,Nottoway,Virginia,51135,74,0 +2020-06-19,Nottoway,Virginia,51135,80,0 +2020-06-20,Nottoway,Virginia,51135,80,0 +2020-06-21,Nottoway,Virginia,51135,79,0 +2020-06-22,Nottoway,Virginia,51135,99,0 +2020-06-23,Nottoway,Virginia,51135,102,2 +2020-06-24,Nottoway,Virginia,51135,106,2 +2020-06-25,Nottoway,Virginia,51135,107,2 +2020-06-26,Nottoway,Virginia,51135,107,2 +2020-06-27,Nottoway,Virginia,51135,109,2 +2020-06-28,Nottoway,Virginia,51135,109,2 +2020-06-29,Nottoway,Virginia,51135,110,2 +2020-06-30,Nottoway,Virginia,51135,111,2 +2020-07-01,Nottoway,Virginia,51135,111,2 +2020-07-02,Nottoway,Virginia,51135,112,2 +2020-07-03,Nottoway,Virginia,51135,114,2 +2020-07-04,Nottoway,Virginia,51135,114,2 +2020-07-05,Nottoway,Virginia,51135,114,2 +2020-07-06,Nottoway,Virginia,51135,114,2 +2020-07-07,Nottoway,Virginia,51135,114,2 +2020-07-08,Nottoway,Virginia,51135,115,3 +2020-07-09,Nottoway,Virginia,51135,114,4 +2020-03-25,Orange,Virginia,51137,1,0 +2020-03-26,Orange,Virginia,51137,1,0 +2020-03-27,Orange,Virginia,51137,1,0 +2020-03-28,Orange,Virginia,51137,1,0 +2020-03-29,Orange,Virginia,51137,1,0 +2020-03-30,Orange,Virginia,51137,1,0 +2020-03-31,Orange,Virginia,51137,2,0 +2020-04-01,Orange,Virginia,51137,4,0 +2020-04-02,Orange,Virginia,51137,4,0 +2020-04-03,Orange,Virginia,51137,4,0 +2020-04-04,Orange,Virginia,51137,5,0 +2020-04-05,Orange,Virginia,51137,5,0 +2020-04-06,Orange,Virginia,51137,5,0 +2020-04-07,Orange,Virginia,51137,7,0 +2020-04-08,Orange,Virginia,51137,7,0 +2020-04-09,Orange,Virginia,51137,9,0 +2020-04-10,Orange,Virginia,51137,14,0 +2020-04-11,Orange,Virginia,51137,13,0 +2020-04-12,Orange,Virginia,51137,13,0 +2020-04-13,Orange,Virginia,51137,14,0 +2020-04-14,Orange,Virginia,51137,15,0 +2020-04-15,Orange,Virginia,51137,17,0 +2020-04-16,Orange,Virginia,51137,18,0 +2020-04-17,Orange,Virginia,51137,19,0 +2020-04-18,Orange,Virginia,51137,20,0 +2020-04-19,Orange,Virginia,51137,20,0 +2020-04-20,Orange,Virginia,51137,21,0 +2020-04-21,Orange,Virginia,51137,21,0 +2020-04-22,Orange,Virginia,51137,22,0 +2020-04-23,Orange,Virginia,51137,22,0 +2020-04-24,Orange,Virginia,51137,22,0 +2020-04-25,Orange,Virginia,51137,25,0 +2020-04-26,Orange,Virginia,51137,26,0 +2020-04-27,Orange,Virginia,51137,26,0 +2020-04-28,Orange,Virginia,51137,27,0 +2020-04-29,Orange,Virginia,51137,27,0 +2020-04-30,Orange,Virginia,51137,31,0 +2020-05-01,Orange,Virginia,51137,36,0 +2020-05-02,Orange,Virginia,51137,37,0 +2020-05-03,Orange,Virginia,51137,37,0 +2020-05-04,Orange,Virginia,51137,39,0 +2020-05-05,Orange,Virginia,51137,41,0 +2020-05-06,Orange,Virginia,51137,41,0 +2020-05-07,Orange,Virginia,51137,43,0 +2020-05-08,Orange,Virginia,51137,43,0 +2020-05-09,Orange,Virginia,51137,44,0 +2020-05-10,Orange,Virginia,51137,46,0 +2020-05-11,Orange,Virginia,51137,47,0 +2020-05-12,Orange,Virginia,51137,48,0 +2020-05-13,Orange,Virginia,51137,50,0 +2020-05-14,Orange,Virginia,51137,50,0 +2020-05-15,Orange,Virginia,51137,51,0 +2020-05-16,Orange,Virginia,51137,53,0 +2020-05-17,Orange,Virginia,51137,56,0 +2020-05-18,Orange,Virginia,51137,60,0 +2020-05-19,Orange,Virginia,51137,67,0 +2020-05-20,Orange,Virginia,51137,69,0 +2020-05-21,Orange,Virginia,51137,73,0 +2020-05-22,Orange,Virginia,51137,73,0 +2020-05-23,Orange,Virginia,51137,77,0 +2020-05-24,Orange,Virginia,51137,80,0 +2020-05-25,Orange,Virginia,51137,81,0 +2020-05-26,Orange,Virginia,51137,86,0 +2020-05-27,Orange,Virginia,51137,91,0 +2020-05-28,Orange,Virginia,51137,92,0 +2020-05-29,Orange,Virginia,51137,97,1 +2020-05-30,Orange,Virginia,51137,101,1 +2020-05-31,Orange,Virginia,51137,102,1 +2020-06-01,Orange,Virginia,51137,106,1 +2020-06-02,Orange,Virginia,51137,110,1 +2020-06-03,Orange,Virginia,51137,111,1 +2020-06-04,Orange,Virginia,51137,115,1 +2020-06-05,Orange,Virginia,51137,119,1 +2020-06-06,Orange,Virginia,51137,117,2 +2020-06-07,Orange,Virginia,51137,117,2 +2020-06-08,Orange,Virginia,51137,117,2 +2020-06-09,Orange,Virginia,51137,118,2 +2020-06-10,Orange,Virginia,51137,119,2 +2020-06-11,Orange,Virginia,51137,119,2 +2020-06-12,Orange,Virginia,51137,124,2 +2020-06-13,Orange,Virginia,51137,124,2 +2020-06-14,Orange,Virginia,51137,130,2 +2020-06-15,Orange,Virginia,51137,131,2 +2020-06-16,Orange,Virginia,51137,133,2 +2020-06-17,Orange,Virginia,51137,135,2 +2020-06-18,Orange,Virginia,51137,136,2 +2020-06-19,Orange,Virginia,51137,136,2 +2020-06-20,Orange,Virginia,51137,137,2 +2020-06-21,Orange,Virginia,51137,137,2 +2020-06-22,Orange,Virginia,51137,138,2 +2020-06-23,Orange,Virginia,51137,141,2 +2020-06-24,Orange,Virginia,51137,141,2 +2020-06-25,Orange,Virginia,51137,142,2 +2020-06-26,Orange,Virginia,51137,143,2 +2020-06-27,Orange,Virginia,51137,145,3 +2020-06-28,Orange,Virginia,51137,145,3 +2020-06-29,Orange,Virginia,51137,146,3 +2020-06-30,Orange,Virginia,51137,149,3 +2020-07-01,Orange,Virginia,51137,150,3 +2020-07-02,Orange,Virginia,51137,152,3 +2020-07-03,Orange,Virginia,51137,152,3 +2020-07-04,Orange,Virginia,51137,153,3 +2020-07-05,Orange,Virginia,51137,153,3 +2020-07-06,Orange,Virginia,51137,153,3 +2020-07-07,Orange,Virginia,51137,154,3 +2020-07-08,Orange,Virginia,51137,154,3 +2020-07-09,Orange,Virginia,51137,155,3 +2020-03-31,Page,Virginia,51139,1,0 +2020-04-01,Page,Virginia,51139,1,0 +2020-04-02,Page,Virginia,51139,2,0 +2020-04-03,Page,Virginia,51139,2,0 +2020-04-04,Page,Virginia,51139,2,0 +2020-04-05,Page,Virginia,51139,2,0 +2020-04-06,Page,Virginia,51139,2,0 +2020-04-07,Page,Virginia,51139,3,0 +2020-04-08,Page,Virginia,51139,3,0 +2020-04-09,Page,Virginia,51139,5,0 +2020-04-10,Page,Virginia,51139,5,0 +2020-04-11,Page,Virginia,51139,6,0 +2020-04-12,Page,Virginia,51139,6,0 +2020-04-13,Page,Virginia,51139,6,0 +2020-04-14,Page,Virginia,51139,6,0 +2020-04-15,Page,Virginia,51139,6,0 +2020-04-16,Page,Virginia,51139,7,0 +2020-04-17,Page,Virginia,51139,10,0 +2020-04-18,Page,Virginia,51139,13,0 +2020-04-19,Page,Virginia,51139,13,0 +2020-04-20,Page,Virginia,51139,14,0 +2020-04-21,Page,Virginia,51139,14,0 +2020-04-22,Page,Virginia,51139,16,0 +2020-04-23,Page,Virginia,51139,22,0 +2020-04-24,Page,Virginia,51139,30,0 +2020-04-25,Page,Virginia,51139,82,0 +2020-04-26,Page,Virginia,51139,84,0 +2020-04-27,Page,Virginia,51139,87,0 +2020-04-28,Page,Virginia,51139,89,0 +2020-04-29,Page,Virginia,51139,91,1 +2020-04-30,Page,Virginia,51139,100,1 +2020-05-01,Page,Virginia,51139,104,1 +2020-05-02,Page,Virginia,51139,107,2 +2020-05-03,Page,Virginia,51139,109,2 +2020-05-04,Page,Virginia,51139,113,2 +2020-05-05,Page,Virginia,51139,113,5 +2020-05-06,Page,Virginia,51139,113,5 +2020-05-07,Page,Virginia,51139,122,11 +2020-05-08,Page,Virginia,51139,123,11 +2020-05-09,Page,Virginia,51139,128,12 +2020-05-10,Page,Virginia,51139,128,12 +2020-05-11,Page,Virginia,51139,129,12 +2020-05-12,Page,Virginia,51139,129,12 +2020-05-13,Page,Virginia,51139,140,16 +2020-05-14,Page,Virginia,51139,143,16 +2020-05-15,Page,Virginia,51139,145,16 +2020-05-16,Page,Virginia,51139,158,16 +2020-05-17,Page,Virginia,51139,161,16 +2020-05-18,Page,Virginia,51139,161,16 +2020-05-19,Page,Virginia,51139,165,17 +2020-05-20,Page,Virginia,51139,166,17 +2020-05-21,Page,Virginia,51139,166,19 +2020-05-22,Page,Virginia,51139,172,19 +2020-05-23,Page,Virginia,51139,186,21 +2020-05-24,Page,Virginia,51139,188,21 +2020-05-25,Page,Virginia,51139,197,21 +2020-05-26,Page,Virginia,51139,199,21 +2020-05-27,Page,Virginia,51139,208,21 +2020-05-28,Page,Virginia,51139,213,21 +2020-05-29,Page,Virginia,51139,214,21 +2020-05-30,Page,Virginia,51139,219,21 +2020-05-31,Page,Virginia,51139,220,21 +2020-06-01,Page,Virginia,51139,225,21 +2020-06-02,Page,Virginia,51139,230,24 +2020-06-03,Page,Virginia,51139,231,24 +2020-06-04,Page,Virginia,51139,231,24 +2020-06-05,Page,Virginia,51139,233,24 +2020-06-06,Page,Virginia,51139,237,24 +2020-06-07,Page,Virginia,51139,244,24 +2020-06-08,Page,Virginia,51139,245,24 +2020-06-09,Page,Virginia,51139,246,24 +2020-06-10,Page,Virginia,51139,247,24 +2020-06-11,Page,Virginia,51139,249,24 +2020-06-12,Page,Virginia,51139,250,24 +2020-06-13,Page,Virginia,51139,251,24 +2020-06-14,Page,Virginia,51139,251,24 +2020-06-15,Page,Virginia,51139,252,24 +2020-06-16,Page,Virginia,51139,256,24 +2020-06-17,Page,Virginia,51139,256,24 +2020-06-18,Page,Virginia,51139,259,24 +2020-06-19,Page,Virginia,51139,261,24 +2020-06-20,Page,Virginia,51139,261,24 +2020-06-21,Page,Virginia,51139,263,24 +2020-06-22,Page,Virginia,51139,263,24 +2020-06-23,Page,Virginia,51139,264,24 +2020-06-24,Page,Virginia,51139,264,24 +2020-06-25,Page,Virginia,51139,266,24 +2020-06-26,Page,Virginia,51139,266,24 +2020-06-27,Page,Virginia,51139,267,24 +2020-06-28,Page,Virginia,51139,267,24 +2020-06-29,Page,Virginia,51139,267,24 +2020-06-30,Page,Virginia,51139,269,24 +2020-07-01,Page,Virginia,51139,275,24 +2020-07-02,Page,Virginia,51139,278,23 +2020-07-03,Page,Virginia,51139,281,23 +2020-07-04,Page,Virginia,51139,281,23 +2020-07-05,Page,Virginia,51139,283,23 +2020-07-06,Page,Virginia,51139,285,23 +2020-07-07,Page,Virginia,51139,290,23 +2020-07-08,Page,Virginia,51139,293,23 +2020-07-09,Page,Virginia,51139,295,23 +2020-04-21,Patrick,Virginia,51141,1,0 +2020-04-22,Patrick,Virginia,51141,1,0 +2020-04-23,Patrick,Virginia,51141,1,0 +2020-04-24,Patrick,Virginia,51141,2,0 +2020-04-25,Patrick,Virginia,51141,2,0 +2020-04-26,Patrick,Virginia,51141,2,0 +2020-04-27,Patrick,Virginia,51141,2,0 +2020-04-28,Patrick,Virginia,51141,2,0 +2020-04-29,Patrick,Virginia,51141,2,0 +2020-04-30,Patrick,Virginia,51141,2,0 +2020-05-01,Patrick,Virginia,51141,2,0 +2020-05-02,Patrick,Virginia,51141,2,0 +2020-05-03,Patrick,Virginia,51141,2,0 +2020-05-04,Patrick,Virginia,51141,2,0 +2020-05-05,Patrick,Virginia,51141,2,0 +2020-05-06,Patrick,Virginia,51141,2,0 +2020-05-07,Patrick,Virginia,51141,4,0 +2020-05-08,Patrick,Virginia,51141,4,0 +2020-05-09,Patrick,Virginia,51141,4,0 +2020-05-10,Patrick,Virginia,51141,4,0 +2020-05-11,Patrick,Virginia,51141,4,0 +2020-05-12,Patrick,Virginia,51141,5,0 +2020-05-13,Patrick,Virginia,51141,6,0 +2020-05-14,Patrick,Virginia,51141,6,0 +2020-05-15,Patrick,Virginia,51141,6,0 +2020-05-16,Patrick,Virginia,51141,6,0 +2020-05-17,Patrick,Virginia,51141,6,0 +2020-05-18,Patrick,Virginia,51141,8,0 +2020-05-19,Patrick,Virginia,51141,9,0 +2020-05-20,Patrick,Virginia,51141,10,0 +2020-05-21,Patrick,Virginia,51141,12,0 +2020-05-22,Patrick,Virginia,51141,12,0 +2020-05-23,Patrick,Virginia,51141,13,0 +2020-05-24,Patrick,Virginia,51141,14,0 +2020-05-25,Patrick,Virginia,51141,14,0 +2020-05-26,Patrick,Virginia,51141,14,0 +2020-05-27,Patrick,Virginia,51141,15,0 +2020-05-28,Patrick,Virginia,51141,18,0 +2020-05-29,Patrick,Virginia,51141,18,0 +2020-05-30,Patrick,Virginia,51141,18,0 +2020-05-31,Patrick,Virginia,51141,19,0 +2020-06-01,Patrick,Virginia,51141,19,0 +2020-06-02,Patrick,Virginia,51141,19,0 +2020-06-03,Patrick,Virginia,51141,21,0 +2020-06-04,Patrick,Virginia,51141,22,0 +2020-06-05,Patrick,Virginia,51141,23,0 +2020-06-06,Patrick,Virginia,51141,27,0 +2020-06-07,Patrick,Virginia,51141,28,0 +2020-06-08,Patrick,Virginia,51141,28,0 +2020-06-09,Patrick,Virginia,51141,28,0 +2020-06-10,Patrick,Virginia,51141,28,0 +2020-06-11,Patrick,Virginia,51141,29,0 +2020-06-12,Patrick,Virginia,51141,31,0 +2020-06-13,Patrick,Virginia,51141,31,0 +2020-06-14,Patrick,Virginia,51141,31,0 +2020-06-15,Patrick,Virginia,51141,32,0 +2020-06-16,Patrick,Virginia,51141,32,0 +2020-06-17,Patrick,Virginia,51141,33,0 +2020-06-18,Patrick,Virginia,51141,36,0 +2020-06-19,Patrick,Virginia,51141,36,0 +2020-06-20,Patrick,Virginia,51141,36,0 +2020-06-21,Patrick,Virginia,51141,38,0 +2020-06-22,Patrick,Virginia,51141,39,0 +2020-06-23,Patrick,Virginia,51141,40,0 +2020-06-24,Patrick,Virginia,51141,39,1 +2020-06-25,Patrick,Virginia,51141,39,1 +2020-06-26,Patrick,Virginia,51141,40,1 +2020-06-27,Patrick,Virginia,51141,41,1 +2020-06-28,Patrick,Virginia,51141,42,1 +2020-06-29,Patrick,Virginia,51141,42,1 +2020-06-30,Patrick,Virginia,51141,46,1 +2020-07-01,Patrick,Virginia,51141,47,1 +2020-07-02,Patrick,Virginia,51141,47,1 +2020-07-03,Patrick,Virginia,51141,48,1 +2020-07-04,Patrick,Virginia,51141,48,1 +2020-07-05,Patrick,Virginia,51141,48,1 +2020-07-06,Patrick,Virginia,51141,48,1 +2020-07-07,Patrick,Virginia,51141,48,1 +2020-07-08,Patrick,Virginia,51141,48,1 +2020-07-09,Patrick,Virginia,51141,48,1 +2020-03-26,Pittsylvania,Virginia,51143,1,0 +2020-03-27,Pittsylvania,Virginia,51143,1,0 +2020-03-28,Pittsylvania,Virginia,51143,1,0 +2020-03-29,Pittsylvania,Virginia,51143,1,0 +2020-03-30,Pittsylvania,Virginia,51143,1,0 +2020-03-31,Pittsylvania,Virginia,51143,1,0 +2020-04-01,Pittsylvania,Virginia,51143,1,0 +2020-04-02,Pittsylvania,Virginia,51143,1,0 +2020-04-03,Pittsylvania,Virginia,51143,1,0 +2020-04-04,Pittsylvania,Virginia,51143,2,0 +2020-04-05,Pittsylvania,Virginia,51143,2,0 +2020-04-06,Pittsylvania,Virginia,51143,3,0 +2020-04-07,Pittsylvania,Virginia,51143,3,0 +2020-04-08,Pittsylvania,Virginia,51143,3,0 +2020-04-09,Pittsylvania,Virginia,51143,4,0 +2020-04-10,Pittsylvania,Virginia,51143,4,0 +2020-04-11,Pittsylvania,Virginia,51143,4,0 +2020-04-12,Pittsylvania,Virginia,51143,4,0 +2020-04-13,Pittsylvania,Virginia,51143,4,0 +2020-04-14,Pittsylvania,Virginia,51143,4,0 +2020-04-15,Pittsylvania,Virginia,51143,4,0 +2020-04-16,Pittsylvania,Virginia,51143,5,0 +2020-04-17,Pittsylvania,Virginia,51143,6,0 +2020-04-18,Pittsylvania,Virginia,51143,6,0 +2020-04-19,Pittsylvania,Virginia,51143,6,0 +2020-04-20,Pittsylvania,Virginia,51143,6,0 +2020-04-21,Pittsylvania,Virginia,51143,7,1 +2020-04-22,Pittsylvania,Virginia,51143,9,1 +2020-04-23,Pittsylvania,Virginia,51143,11,1 +2020-04-24,Pittsylvania,Virginia,51143,11,1 +2020-04-25,Pittsylvania,Virginia,51143,11,1 +2020-04-26,Pittsylvania,Virginia,51143,11,1 +2020-04-27,Pittsylvania,Virginia,51143,11,1 +2020-04-28,Pittsylvania,Virginia,51143,11,1 +2020-04-29,Pittsylvania,Virginia,51143,12,1 +2020-04-30,Pittsylvania,Virginia,51143,13,1 +2020-05-01,Pittsylvania,Virginia,51143,13,1 +2020-05-02,Pittsylvania,Virginia,51143,14,1 +2020-05-03,Pittsylvania,Virginia,51143,14,1 +2020-05-04,Pittsylvania,Virginia,51143,15,1 +2020-05-05,Pittsylvania,Virginia,51143,16,1 +2020-05-06,Pittsylvania,Virginia,51143,16,1 +2020-05-07,Pittsylvania,Virginia,51143,17,1 +2020-05-08,Pittsylvania,Virginia,51143,17,1 +2020-05-09,Pittsylvania,Virginia,51143,17,1 +2020-05-10,Pittsylvania,Virginia,51143,17,1 +2020-05-11,Pittsylvania,Virginia,51143,17,1 +2020-05-12,Pittsylvania,Virginia,51143,17,1 +2020-05-13,Pittsylvania,Virginia,51143,17,1 +2020-05-14,Pittsylvania,Virginia,51143,17,1 +2020-05-15,Pittsylvania,Virginia,51143,18,1 +2020-05-16,Pittsylvania,Virginia,51143,23,1 +2020-05-17,Pittsylvania,Virginia,51143,24,1 +2020-05-18,Pittsylvania,Virginia,51143,24,1 +2020-05-19,Pittsylvania,Virginia,51143,26,1 +2020-05-20,Pittsylvania,Virginia,51143,26,1 +2020-05-21,Pittsylvania,Virginia,51143,26,1 +2020-05-22,Pittsylvania,Virginia,51143,27,1 +2020-05-23,Pittsylvania,Virginia,51143,28,1 +2020-05-24,Pittsylvania,Virginia,51143,32,1 +2020-05-25,Pittsylvania,Virginia,51143,35,1 +2020-05-26,Pittsylvania,Virginia,51143,35,1 +2020-05-27,Pittsylvania,Virginia,51143,35,1 +2020-05-28,Pittsylvania,Virginia,51143,38,1 +2020-05-29,Pittsylvania,Virginia,51143,39,1 +2020-05-30,Pittsylvania,Virginia,51143,40,1 +2020-05-31,Pittsylvania,Virginia,51143,44,1 +2020-06-01,Pittsylvania,Virginia,51143,44,1 +2020-06-02,Pittsylvania,Virginia,51143,45,1 +2020-06-03,Pittsylvania,Virginia,51143,45,1 +2020-06-04,Pittsylvania,Virginia,51143,45,1 +2020-06-05,Pittsylvania,Virginia,51143,47,1 +2020-06-06,Pittsylvania,Virginia,51143,47,1 +2020-06-07,Pittsylvania,Virginia,51143,50,1 +2020-06-08,Pittsylvania,Virginia,51143,50,1 +2020-06-09,Pittsylvania,Virginia,51143,50,1 +2020-06-10,Pittsylvania,Virginia,51143,54,1 +2020-06-11,Pittsylvania,Virginia,51143,56,1 +2020-06-12,Pittsylvania,Virginia,51143,59,1 +2020-06-13,Pittsylvania,Virginia,51143,60,1 +2020-06-14,Pittsylvania,Virginia,51143,69,1 +2020-06-15,Pittsylvania,Virginia,51143,70,1 +2020-06-16,Pittsylvania,Virginia,51143,70,1 +2020-06-17,Pittsylvania,Virginia,51143,73,1 +2020-06-18,Pittsylvania,Virginia,51143,76,1 +2020-06-19,Pittsylvania,Virginia,51143,76,1 +2020-06-20,Pittsylvania,Virginia,51143,82,1 +2020-06-21,Pittsylvania,Virginia,51143,85,1 +2020-06-22,Pittsylvania,Virginia,51143,87,1 +2020-06-23,Pittsylvania,Virginia,51143,88,1 +2020-06-24,Pittsylvania,Virginia,51143,88,1 +2020-06-25,Pittsylvania,Virginia,51143,95,1 +2020-06-26,Pittsylvania,Virginia,51143,102,1 +2020-06-27,Pittsylvania,Virginia,51143,107,1 +2020-06-28,Pittsylvania,Virginia,51143,108,1 +2020-06-29,Pittsylvania,Virginia,51143,117,1 +2020-06-30,Pittsylvania,Virginia,51143,122,1 +2020-07-01,Pittsylvania,Virginia,51143,122,1 +2020-07-02,Pittsylvania,Virginia,51143,123,1 +2020-07-03,Pittsylvania,Virginia,51143,132,1 +2020-07-04,Pittsylvania,Virginia,51143,134,1 +2020-07-05,Pittsylvania,Virginia,51143,137,1 +2020-07-06,Pittsylvania,Virginia,51143,137,1 +2020-07-07,Pittsylvania,Virginia,51143,139,1 +2020-07-08,Pittsylvania,Virginia,51143,146,1 +2020-07-09,Pittsylvania,Virginia,51143,146,1 +2020-03-28,Powhatan,Virginia,51145,1,0 +2020-03-29,Powhatan,Virginia,51145,1,0 +2020-03-30,Powhatan,Virginia,51145,3,0 +2020-03-31,Powhatan,Virginia,51145,4,0 +2020-04-01,Powhatan,Virginia,51145,4,0 +2020-04-02,Powhatan,Virginia,51145,3,0 +2020-04-03,Powhatan,Virginia,51145,4,0 +2020-04-04,Powhatan,Virginia,51145,4,0 +2020-04-05,Powhatan,Virginia,51145,4,0 +2020-04-06,Powhatan,Virginia,51145,4,0 +2020-04-07,Powhatan,Virginia,51145,4,0 +2020-04-08,Powhatan,Virginia,51145,4,0 +2020-04-09,Powhatan,Virginia,51145,4,0 +2020-04-10,Powhatan,Virginia,51145,4,0 +2020-04-11,Powhatan,Virginia,51145,5,0 +2020-04-12,Powhatan,Virginia,51145,5,0 +2020-04-13,Powhatan,Virginia,51145,5,0 +2020-04-14,Powhatan,Virginia,51145,5,0 +2020-04-15,Powhatan,Virginia,51145,5,0 +2020-04-16,Powhatan,Virginia,51145,5,0 +2020-04-17,Powhatan,Virginia,51145,7,0 +2020-04-18,Powhatan,Virginia,51145,9,0 +2020-04-19,Powhatan,Virginia,51145,8,0 +2020-04-20,Powhatan,Virginia,51145,8,0 +2020-04-21,Powhatan,Virginia,51145,8,0 +2020-04-22,Powhatan,Virginia,51145,9,0 +2020-04-23,Powhatan,Virginia,51145,9,0 +2020-04-24,Powhatan,Virginia,51145,9,0 +2020-04-25,Powhatan,Virginia,51145,11,0 +2020-04-26,Powhatan,Virginia,51145,11,0 +2020-04-27,Powhatan,Virginia,51145,11,0 +2020-04-28,Powhatan,Virginia,51145,11,0 +2020-04-29,Powhatan,Virginia,51145,12,0 +2020-04-30,Powhatan,Virginia,51145,13,0 +2020-05-01,Powhatan,Virginia,51145,14,0 +2020-05-02,Powhatan,Virginia,51145,14,0 +2020-05-03,Powhatan,Virginia,51145,15,0 +2020-05-04,Powhatan,Virginia,51145,15,0 +2020-05-05,Powhatan,Virginia,51145,15,0 +2020-05-06,Powhatan,Virginia,51145,15,0 +2020-05-07,Powhatan,Virginia,51145,17,0 +2020-05-08,Powhatan,Virginia,51145,18,0 +2020-05-09,Powhatan,Virginia,51145,18,0 +2020-05-10,Powhatan,Virginia,51145,18,0 +2020-05-11,Powhatan,Virginia,51145,18,0 +2020-05-12,Powhatan,Virginia,51145,21,0 +2020-05-13,Powhatan,Virginia,51145,22,0 +2020-05-14,Powhatan,Virginia,51145,23,0 +2020-05-15,Powhatan,Virginia,51145,23,0 +2020-05-16,Powhatan,Virginia,51145,24,0 +2020-05-17,Powhatan,Virginia,51145,24,0 +2020-05-18,Powhatan,Virginia,51145,24,0 +2020-05-19,Powhatan,Virginia,51145,25,0 +2020-05-20,Powhatan,Virginia,51145,25,0 +2020-05-21,Powhatan,Virginia,51145,26,0 +2020-05-22,Powhatan,Virginia,51145,26,0 +2020-05-23,Powhatan,Virginia,51145,29,0 +2020-05-24,Powhatan,Virginia,51145,29,0 +2020-05-25,Powhatan,Virginia,51145,29,0 +2020-05-26,Powhatan,Virginia,51145,29,0 +2020-05-27,Powhatan,Virginia,51145,29,0 +2020-05-28,Powhatan,Virginia,51145,30,0 +2020-05-29,Powhatan,Virginia,51145,32,0 +2020-05-30,Powhatan,Virginia,51145,32,0 +2020-05-31,Powhatan,Virginia,51145,35,0 +2020-06-01,Powhatan,Virginia,51145,35,0 +2020-06-02,Powhatan,Virginia,51145,36,0 +2020-06-03,Powhatan,Virginia,51145,36,0 +2020-06-04,Powhatan,Virginia,51145,36,0 +2020-06-05,Powhatan,Virginia,51145,37,0 +2020-06-06,Powhatan,Virginia,51145,44,0 +2020-06-07,Powhatan,Virginia,51145,45,0 +2020-06-08,Powhatan,Virginia,51145,47,0 +2020-06-09,Powhatan,Virginia,51145,47,0 +2020-06-10,Powhatan,Virginia,51145,48,0 +2020-06-11,Powhatan,Virginia,51145,48,0 +2020-06-12,Powhatan,Virginia,51145,50,0 +2020-06-13,Powhatan,Virginia,51145,51,0 +2020-06-14,Powhatan,Virginia,51145,51,0 +2020-06-15,Powhatan,Virginia,51145,51,0 +2020-06-16,Powhatan,Virginia,51145,53,0 +2020-06-17,Powhatan,Virginia,51145,54,0 +2020-06-18,Powhatan,Virginia,51145,55,0 +2020-06-19,Powhatan,Virginia,51145,59,2 +2020-06-20,Powhatan,Virginia,51145,61,2 +2020-06-21,Powhatan,Virginia,51145,62,2 +2020-06-22,Powhatan,Virginia,51145,62,2 +2020-06-23,Powhatan,Virginia,51145,66,2 +2020-06-24,Powhatan,Virginia,51145,71,2 +2020-06-25,Powhatan,Virginia,51145,74,2 +2020-06-26,Powhatan,Virginia,51145,75,2 +2020-06-27,Powhatan,Virginia,51145,77,2 +2020-06-28,Powhatan,Virginia,51145,77,2 +2020-06-29,Powhatan,Virginia,51145,79,2 +2020-06-30,Powhatan,Virginia,51145,82,2 +2020-07-01,Powhatan,Virginia,51145,82,2 +2020-07-02,Powhatan,Virginia,51145,82,2 +2020-07-03,Powhatan,Virginia,51145,84,2 +2020-07-04,Powhatan,Virginia,51145,84,2 +2020-07-05,Powhatan,Virginia,51145,84,2 +2020-07-06,Powhatan,Virginia,51145,84,2 +2020-07-07,Powhatan,Virginia,51145,86,2 +2020-07-08,Powhatan,Virginia,51145,86,2 +2020-07-09,Powhatan,Virginia,51145,86,2 +2020-03-12,Prince Edward,Virginia,51147,1,0 +2020-03-13,Prince Edward,Virginia,51147,1,0 +2020-03-14,Prince Edward,Virginia,51147,1,0 +2020-03-15,Prince Edward,Virginia,51147,1,0 +2020-03-16,Prince Edward,Virginia,51147,1,0 +2020-03-17,Prince Edward,Virginia,51147,1,0 +2020-03-18,Prince Edward,Virginia,51147,1,0 +2020-03-19,Prince Edward,Virginia,51147,1,0 +2020-03-20,Prince Edward,Virginia,51147,1,0 +2020-03-21,Prince Edward,Virginia,51147,1,0 +2020-03-22,Prince Edward,Virginia,51147,1,0 +2020-03-23,Prince Edward,Virginia,51147,1,0 +2020-03-24,Prince Edward,Virginia,51147,1,0 +2020-03-25,Prince Edward,Virginia,51147,2,0 +2020-03-26,Prince Edward,Virginia,51147,2,0 +2020-03-27,Prince Edward,Virginia,51147,2,0 +2020-03-28,Prince Edward,Virginia,51147,2,0 +2020-03-29,Prince Edward,Virginia,51147,2,0 +2020-03-30,Prince Edward,Virginia,51147,2,0 +2020-03-31,Prince Edward,Virginia,51147,2,0 +2020-04-01,Prince Edward,Virginia,51147,2,0 +2020-04-02,Prince Edward,Virginia,51147,2,0 +2020-04-03,Prince Edward,Virginia,51147,2,0 +2020-04-04,Prince Edward,Virginia,51147,3,0 +2020-04-05,Prince Edward,Virginia,51147,3,0 +2020-04-06,Prince Edward,Virginia,51147,3,0 +2020-04-07,Prince Edward,Virginia,51147,3,0 +2020-04-08,Prince Edward,Virginia,51147,3,0 +2020-04-09,Prince Edward,Virginia,51147,3,0 +2020-04-10,Prince Edward,Virginia,51147,5,0 +2020-04-11,Prince Edward,Virginia,51147,8,1 +2020-04-12,Prince Edward,Virginia,51147,9,1 +2020-04-13,Prince Edward,Virginia,51147,13,1 +2020-04-14,Prince Edward,Virginia,51147,13,1 +2020-04-15,Prince Edward,Virginia,51147,15,1 +2020-04-16,Prince Edward,Virginia,51147,15,1 +2020-04-17,Prince Edward,Virginia,51147,17,1 +2020-04-18,Prince Edward,Virginia,51147,17,1 +2020-04-19,Prince Edward,Virginia,51147,17,1 +2020-04-20,Prince Edward,Virginia,51147,17,1 +2020-04-21,Prince Edward,Virginia,51147,19,2 +2020-04-22,Prince Edward,Virginia,51147,19,2 +2020-04-23,Prince Edward,Virginia,51147,29,2 +2020-04-24,Prince Edward,Virginia,51147,34,2 +2020-04-25,Prince Edward,Virginia,51147,37,2 +2020-04-26,Prince Edward,Virginia,51147,41,2 +2020-04-27,Prince Edward,Virginia,51147,41,2 +2020-04-28,Prince Edward,Virginia,51147,41,2 +2020-04-29,Prince Edward,Virginia,51147,46,2 +2020-04-30,Prince Edward,Virginia,51147,49,2 +2020-05-01,Prince Edward,Virginia,51147,51,2 +2020-05-02,Prince Edward,Virginia,51147,55,2 +2020-05-03,Prince Edward,Virginia,51147,55,2 +2020-05-04,Prince Edward,Virginia,51147,55,2 +2020-05-05,Prince Edward,Virginia,51147,58,2 +2020-05-06,Prince Edward,Virginia,51147,58,2 +2020-05-07,Prince Edward,Virginia,51147,63,2 +2020-05-08,Prince Edward,Virginia,51147,65,2 +2020-05-09,Prince Edward,Virginia,51147,66,2 +2020-05-10,Prince Edward,Virginia,51147,66,2 +2020-05-11,Prince Edward,Virginia,51147,66,2 +2020-05-12,Prince Edward,Virginia,51147,68,2 +2020-05-13,Prince Edward,Virginia,51147,69,2 +2020-05-14,Prince Edward,Virginia,51147,72,2 +2020-05-15,Prince Edward,Virginia,51147,72,2 +2020-05-16,Prince Edward,Virginia,51147,73,2 +2020-05-17,Prince Edward,Virginia,51147,73,2 +2020-05-18,Prince Edward,Virginia,51147,77,2 +2020-05-19,Prince Edward,Virginia,51147,83,2 +2020-05-20,Prince Edward,Virginia,51147,86,2 +2020-05-21,Prince Edward,Virginia,51147,99,2 +2020-05-22,Prince Edward,Virginia,51147,104,2 +2020-05-23,Prince Edward,Virginia,51147,108,2 +2020-05-24,Prince Edward,Virginia,51147,108,2 +2020-05-25,Prince Edward,Virginia,51147,108,2 +2020-05-26,Prince Edward,Virginia,51147,122,2 +2020-05-27,Prince Edward,Virginia,51147,129,2 +2020-05-28,Prince Edward,Virginia,51147,129,2 +2020-05-29,Prince Edward,Virginia,51147,129,2 +2020-05-30,Prince Edward,Virginia,51147,134,2 +2020-05-31,Prince Edward,Virginia,51147,134,2 +2020-06-01,Prince Edward,Virginia,51147,137,2 +2020-06-02,Prince Edward,Virginia,51147,143,2 +2020-06-03,Prince Edward,Virginia,51147,143,2 +2020-06-04,Prince Edward,Virginia,51147,146,2 +2020-06-05,Prince Edward,Virginia,51147,146,2 +2020-06-06,Prince Edward,Virginia,51147,148,2 +2020-06-07,Prince Edward,Virginia,51147,148,2 +2020-06-08,Prince Edward,Virginia,51147,151,2 +2020-06-09,Prince Edward,Virginia,51147,151,2 +2020-06-10,Prince Edward,Virginia,51147,153,3 +2020-06-11,Prince Edward,Virginia,51147,155,3 +2020-06-12,Prince Edward,Virginia,51147,161,3 +2020-06-13,Prince Edward,Virginia,51147,161,3 +2020-06-14,Prince Edward,Virginia,51147,162,3 +2020-06-15,Prince Edward,Virginia,51147,170,3 +2020-06-16,Prince Edward,Virginia,51147,171,3 +2020-06-17,Prince Edward,Virginia,51147,171,3 +2020-06-18,Prince Edward,Virginia,51147,173,3 +2020-06-19,Prince Edward,Virginia,51147,173,3 +2020-06-20,Prince Edward,Virginia,51147,173,3 +2020-06-21,Prince Edward,Virginia,51147,173,3 +2020-06-22,Prince Edward,Virginia,51147,173,3 +2020-06-23,Prince Edward,Virginia,51147,175,3 +2020-06-24,Prince Edward,Virginia,51147,176,3 +2020-06-25,Prince Edward,Virginia,51147,178,3 +2020-06-26,Prince Edward,Virginia,51147,178,3 +2020-06-27,Prince Edward,Virginia,51147,182,3 +2020-06-28,Prince Edward,Virginia,51147,182,3 +2020-06-29,Prince Edward,Virginia,51147,186,3 +2020-06-30,Prince Edward,Virginia,51147,187,3 +2020-07-01,Prince Edward,Virginia,51147,191,4 +2020-07-02,Prince Edward,Virginia,51147,194,5 +2020-07-03,Prince Edward,Virginia,51147,213,6 +2020-07-04,Prince Edward,Virginia,51147,213,6 +2020-07-05,Prince Edward,Virginia,51147,213,6 +2020-07-06,Prince Edward,Virginia,51147,214,6 +2020-07-07,Prince Edward,Virginia,51147,216,6 +2020-07-08,Prince Edward,Virginia,51147,219,6 +2020-07-09,Prince Edward,Virginia,51147,234,6 +2020-03-26,Prince George,Virginia,51149,2,0 +2020-03-27,Prince George,Virginia,51149,2,0 +2020-03-28,Prince George,Virginia,51149,2,0 +2020-03-29,Prince George,Virginia,51149,4,0 +2020-03-30,Prince George,Virginia,51149,5,0 +2020-03-31,Prince George,Virginia,51149,7,0 +2020-04-01,Prince George,Virginia,51149,8,0 +2020-04-02,Prince George,Virginia,51149,8,0 +2020-04-03,Prince George,Virginia,51149,10,0 +2020-04-04,Prince George,Virginia,51149,16,0 +2020-04-05,Prince George,Virginia,51149,18,0 +2020-04-06,Prince George,Virginia,51149,18,0 +2020-04-07,Prince George,Virginia,51149,21,0 +2020-04-08,Prince George,Virginia,51149,24,0 +2020-04-09,Prince George,Virginia,51149,25,0 +2020-04-10,Prince George,Virginia,51149,26,0 +2020-04-11,Prince George,Virginia,51149,26,0 +2020-04-12,Prince George,Virginia,51149,26,0 +2020-04-13,Prince George,Virginia,51149,27,0 +2020-04-14,Prince George,Virginia,51149,27,0 +2020-04-15,Prince George,Virginia,51149,27,0 +2020-04-16,Prince George,Virginia,51149,26,0 +2020-04-17,Prince George,Virginia,51149,28,0 +2020-04-18,Prince George,Virginia,51149,28,0 +2020-04-19,Prince George,Virginia,51149,28,0 +2020-04-20,Prince George,Virginia,51149,28,0 +2020-04-21,Prince George,Virginia,51149,28,0 +2020-04-22,Prince George,Virginia,51149,28,0 +2020-04-23,Prince George,Virginia,51149,29,0 +2020-04-24,Prince George,Virginia,51149,29,0 +2020-04-25,Prince George,Virginia,51149,30,0 +2020-04-26,Prince George,Virginia,51149,30,0 +2020-04-27,Prince George,Virginia,51149,31,0 +2020-04-28,Prince George,Virginia,51149,31,0 +2020-04-29,Prince George,Virginia,51149,33,0 +2020-04-30,Prince George,Virginia,51149,33,0 +2020-05-01,Prince George,Virginia,51149,34,0 +2020-05-02,Prince George,Virginia,51149,35,0 +2020-05-03,Prince George,Virginia,51149,35,0 +2020-05-04,Prince George,Virginia,51149,40,0 +2020-05-05,Prince George,Virginia,51149,40,0 +2020-05-06,Prince George,Virginia,51149,40,0 +2020-05-07,Prince George,Virginia,51149,42,0 +2020-05-08,Prince George,Virginia,51149,42,0 +2020-05-09,Prince George,Virginia,51149,42,0 +2020-05-10,Prince George,Virginia,51149,44,0 +2020-05-11,Prince George,Virginia,51149,45,0 +2020-05-12,Prince George,Virginia,51149,45,0 +2020-05-13,Prince George,Virginia,51149,46,0 +2020-05-14,Prince George,Virginia,51149,48,0 +2020-05-15,Prince George,Virginia,51149,49,0 +2020-05-16,Prince George,Virginia,51149,49,0 +2020-05-17,Prince George,Virginia,51149,49,0 +2020-05-18,Prince George,Virginia,51149,52,0 +2020-05-19,Prince George,Virginia,51149,56,0 +2020-05-20,Prince George,Virginia,51149,56,0 +2020-05-21,Prince George,Virginia,51149,56,0 +2020-05-22,Prince George,Virginia,51149,56,0 +2020-05-23,Prince George,Virginia,51149,60,0 +2020-05-24,Prince George,Virginia,51149,60,0 +2020-05-25,Prince George,Virginia,51149,60,0 +2020-05-26,Prince George,Virginia,51149,71,0 +2020-05-27,Prince George,Virginia,51149,79,0 +2020-05-28,Prince George,Virginia,51149,81,0 +2020-05-29,Prince George,Virginia,51149,121,0 +2020-05-30,Prince George,Virginia,51149,126,0 +2020-05-31,Prince George,Virginia,51149,126,0 +2020-06-01,Prince George,Virginia,51149,129,0 +2020-06-02,Prince George,Virginia,51149,135,0 +2020-06-03,Prince George,Virginia,51149,135,0 +2020-06-04,Prince George,Virginia,51149,142,0 +2020-06-05,Prince George,Virginia,51149,142,0 +2020-06-06,Prince George,Virginia,51149,146,0 +2020-06-07,Prince George,Virginia,51149,148,0 +2020-06-08,Prince George,Virginia,51149,150,0 +2020-06-09,Prince George,Virginia,51149,153,0 +2020-06-10,Prince George,Virginia,51149,153,0 +2020-06-11,Prince George,Virginia,51149,158,0 +2020-06-12,Prince George,Virginia,51149,158,0 +2020-06-13,Prince George,Virginia,51149,162,0 +2020-06-14,Prince George,Virginia,51149,163,0 +2020-06-15,Prince George,Virginia,51149,167,0 +2020-06-16,Prince George,Virginia,51149,168,0 +2020-06-17,Prince George,Virginia,51149,169,0 +2020-06-18,Prince George,Virginia,51149,170,0 +2020-06-19,Prince George,Virginia,51149,179,0 +2020-06-20,Prince George,Virginia,51149,191,0 +2020-06-21,Prince George,Virginia,51149,213,0 +2020-06-22,Prince George,Virginia,51149,215,0 +2020-06-23,Prince George,Virginia,51149,207,0 +2020-06-24,Prince George,Virginia,51149,215,0 +2020-06-25,Prince George,Virginia,51149,222,0 +2020-06-26,Prince George,Virginia,51149,227,0 +2020-06-27,Prince George,Virginia,51149,228,1 +2020-06-28,Prince George,Virginia,51149,229,1 +2020-06-29,Prince George,Virginia,51149,235,1 +2020-06-30,Prince George,Virginia,51149,238,1 +2020-07-01,Prince George,Virginia,51149,239,1 +2020-07-02,Prince George,Virginia,51149,238,1 +2020-07-03,Prince George,Virginia,51149,243,1 +2020-07-04,Prince George,Virginia,51149,244,1 +2020-07-05,Prince George,Virginia,51149,244,1 +2020-07-06,Prince George,Virginia,51149,245,1 +2020-07-07,Prince George,Virginia,51149,246,1 +2020-07-08,Prince George,Virginia,51149,254,2 +2020-07-09,Prince George,Virginia,51149,254,2 +2020-03-12,Prince William,Virginia,51153,1,0 +2020-03-13,Prince William,Virginia,51153,2,0 +2020-03-14,Prince William,Virginia,51153,2,0 +2020-03-15,Prince William,Virginia,51153,3,0 +2020-03-16,Prince William,Virginia,51153,3,0 +2020-03-17,Prince William,Virginia,51153,4,0 +2020-03-18,Prince William,Virginia,51153,4,0 +2020-03-19,Prince William,Virginia,51153,12,0 +2020-03-20,Prince William,Virginia,51153,12,0 +2020-03-21,Prince William,Virginia,51153,14,0 +2020-03-22,Prince William,Virginia,51153,18,0 +2020-03-23,Prince William,Virginia,51153,18,0 +2020-03-24,Prince William,Virginia,51153,23,0 +2020-03-25,Prince William,Virginia,51153,32,0 +2020-03-26,Prince William,Virginia,51153,44,0 +2020-03-27,Prince William,Virginia,51153,44,0 +2020-03-28,Prince William,Virginia,51153,56,0 +2020-03-29,Prince William,Virginia,51153,72,0 +2020-03-30,Prince William,Virginia,51153,79,0 +2020-03-31,Prince William,Virginia,51153,94,0 +2020-04-01,Prince William,Virginia,51153,106,1 +2020-04-02,Prince William,Virginia,51153,117,1 +2020-04-03,Prince William,Virginia,51153,131,1 +2020-04-04,Prince William,Virginia,51153,159,1 +2020-04-05,Prince William,Virginia,51153,175,1 +2020-04-06,Prince William,Virginia,51153,193,1 +2020-04-07,Prince William,Virginia,51153,236,1 +2020-04-08,Prince William,Virginia,51153,263,1 +2020-04-09,Prince William,Virginia,51153,299,1 +2020-04-10,Prince William,Virginia,51153,337,1 +2020-04-11,Prince William,Virginia,51153,390,1 +2020-04-12,Prince William,Virginia,51153,389,1 +2020-04-13,Prince William,Virginia,51153,434,1 +2020-04-14,Prince William,Virginia,51153,508,1 +2020-04-15,Prince William,Virginia,51153,536,1 +2020-04-16,Prince William,Virginia,51153,582,1 +2020-04-17,Prince William,Virginia,51153,644,1 +2020-04-18,Prince William,Virginia,51153,700,1 +2020-04-19,Prince William,Virginia,51153,742,1 +2020-04-20,Prince William,Virginia,51153,793,1 +2020-04-21,Prince William,Virginia,51153,867,16 +2020-04-22,Prince William,Virginia,51153,924,17 +2020-04-23,Prince William,Virginia,51153,1027,18 +2020-04-24,Prince William,Virginia,51153,1110,18 +2020-04-25,Prince William,Virginia,51153,1184,19 +2020-04-26,Prince William,Virginia,51153,1265,19 +2020-04-27,Prince William,Virginia,51153,1353,20 +2020-04-28,Prince William,Virginia,51153,1449,20 +2020-04-29,Prince William,Virginia,51153,1527,22 +2020-04-30,Prince William,Virginia,51153,1645,24 +2020-05-01,Prince William,Virginia,51153,1781,28 +2020-05-02,Prince William,Virginia,51153,1900,29 +2020-05-03,Prince William,Virginia,51153,2026,30 +2020-05-04,Prince William,Virginia,51153,2146,32 +2020-05-05,Prince William,Virginia,51153,2223,33 +2020-05-06,Prince William,Virginia,51153,2223,33 +2020-05-07,Prince William,Virginia,51153,2398,39 +2020-05-08,Prince William,Virginia,51153,2474,46 +2020-05-09,Prince William,Virginia,51153,2548,47 +2020-05-10,Prince William,Virginia,51153,2740,48 +2020-05-11,Prince William,Virginia,51153,2991,53 +2020-05-12,Prince William,Virginia,51153,3078,58 +2020-05-13,Prince William,Virginia,51153,3181,65 +2020-05-14,Prince William,Virginia,51153,3351,66 +2020-05-15,Prince William,Virginia,51153,3421,67 +2020-05-16,Prince William,Virginia,51153,3563,69 +2020-05-17,Prince William,Virginia,51153,3666,70 +2020-05-18,Prince William,Virginia,51153,3759,70 +2020-05-19,Prince William,Virginia,51153,3934,73 +2020-05-20,Prince William,Virginia,51153,4054,79 +2020-05-21,Prince William,Virginia,51153,4183,79 +2020-05-22,Prince William,Virginia,51153,4315,80 +2020-05-23,Prince William,Virginia,51153,4408,84 +2020-05-24,Prince William,Virginia,51153,4468,84 +2020-05-25,Prince William,Virginia,51153,4702,94 +2020-05-26,Prince William,Virginia,51153,4992,96 +2020-05-27,Prince William,Virginia,51153,5074,99 +2020-05-28,Prince William,Virginia,51153,5157,101 +2020-05-29,Prince William,Virginia,51153,5270,101 +2020-05-30,Prince William,Virginia,51153,5412,104 +2020-05-31,Prince William,Virginia,51153,5533,104 +2020-06-01,Prince William,Virginia,51153,5663,104 +2020-06-02,Prince William,Virginia,51153,5724,104 +2020-06-03,Prince William,Virginia,51153,5837,109 +2020-06-04,Prince William,Virginia,51153,5932,110 +2020-06-05,Prince William,Virginia,51153,6030,110 +2020-06-06,Prince William,Virginia,51153,6121,110 +2020-06-07,Prince William,Virginia,51153,6207,118 +2020-06-08,Prince William,Virginia,51153,6278,118 +2020-06-09,Prince William,Virginia,51153,6336,119 +2020-06-10,Prince William,Virginia,51153,6376,118 +2020-06-11,Prince William,Virginia,51153,6396,118 +2020-06-12,Prince William,Virginia,51153,6439,120 +2020-06-13,Prince William,Virginia,51153,6509,120 +2020-06-14,Prince William,Virginia,51153,6580,120 +2020-06-15,Prince William,Virginia,51153,6608,122 +2020-06-16,Prince William,Virginia,51153,6621,127 +2020-06-17,Prince William,Virginia,51153,6654,127 +2020-06-18,Prince William,Virginia,51153,6684,127 +2020-06-19,Prince William,Virginia,51153,6756,131 +2020-06-20,Prince William,Virginia,51153,6807,131 +2020-06-21,Prince William,Virginia,51153,6879,133 +2020-06-22,Prince William,Virginia,51153,6904,133 +2020-06-23,Prince William,Virginia,51153,6962,134 +2020-06-24,Prince William,Virginia,51153,7038,136 +2020-06-25,Prince William,Virginia,51153,7064,137 +2020-06-26,Prince William,Virginia,51153,7107,138 +2020-06-27,Prince William,Virginia,51153,7166,139 +2020-06-28,Prince William,Virginia,51153,7204,139 +2020-06-29,Prince William,Virginia,51153,7210,139 +2020-06-30,Prince William,Virginia,51153,7285,144 +2020-07-01,Prince William,Virginia,51153,7331,144 +2020-07-02,Prince William,Virginia,51153,7390,143 +2020-07-03,Prince William,Virginia,51153,7442,146 +2020-07-04,Prince William,Virginia,51153,7484,147 +2020-07-05,Prince William,Virginia,51153,7570,147 +2020-07-06,Prince William,Virginia,51153,7582,147 +2020-07-07,Prince William,Virginia,51153,7638,148 +2020-07-08,Prince William,Virginia,51153,7664,151 +2020-07-09,Prince William,Virginia,51153,7687,155 +2020-04-03,Pulaski,Virginia,51155,1,0 +2020-04-04,Pulaski,Virginia,51155,1,0 +2020-04-05,Pulaski,Virginia,51155,1,0 +2020-04-06,Pulaski,Virginia,51155,1,0 +2020-04-07,Pulaski,Virginia,51155,2,0 +2020-04-08,Pulaski,Virginia,51155,2,0 +2020-04-09,Pulaski,Virginia,51155,3,0 +2020-04-10,Pulaski,Virginia,51155,4,0 +2020-04-11,Pulaski,Virginia,51155,4,0 +2020-04-12,Pulaski,Virginia,51155,4,0 +2020-04-13,Pulaski,Virginia,51155,4,0 +2020-04-14,Pulaski,Virginia,51155,4,0 +2020-04-15,Pulaski,Virginia,51155,4,0 +2020-04-16,Pulaski,Virginia,51155,5,0 +2020-04-17,Pulaski,Virginia,51155,8,0 +2020-04-18,Pulaski,Virginia,51155,8,0 +2020-04-19,Pulaski,Virginia,51155,8,0 +2020-04-20,Pulaski,Virginia,51155,8,0 +2020-04-21,Pulaski,Virginia,51155,8,0 +2020-04-22,Pulaski,Virginia,51155,9,0 +2020-04-23,Pulaski,Virginia,51155,9,0 +2020-04-24,Pulaski,Virginia,51155,10,0 +2020-04-25,Pulaski,Virginia,51155,10,0 +2020-04-26,Pulaski,Virginia,51155,10,0 +2020-04-27,Pulaski,Virginia,51155,9,0 +2020-04-28,Pulaski,Virginia,51155,9,0 +2020-04-29,Pulaski,Virginia,51155,9,0 +2020-04-30,Pulaski,Virginia,51155,9,0 +2020-05-01,Pulaski,Virginia,51155,9,0 +2020-05-02,Pulaski,Virginia,51155,9,0 +2020-05-03,Pulaski,Virginia,51155,9,0 +2020-05-04,Pulaski,Virginia,51155,9,0 +2020-05-05,Pulaski,Virginia,51155,9,0 +2020-05-06,Pulaski,Virginia,51155,9,0 +2020-05-07,Pulaski,Virginia,51155,9,0 +2020-05-08,Pulaski,Virginia,51155,9,0 +2020-05-09,Pulaski,Virginia,51155,9,0 +2020-05-10,Pulaski,Virginia,51155,9,0 +2020-05-11,Pulaski,Virginia,51155,9,0 +2020-05-12,Pulaski,Virginia,51155,9,0 +2020-05-13,Pulaski,Virginia,51155,9,0 +2020-05-14,Pulaski,Virginia,51155,10,0 +2020-05-15,Pulaski,Virginia,51155,10,0 +2020-05-16,Pulaski,Virginia,51155,10,0 +2020-05-17,Pulaski,Virginia,51155,10,0 +2020-05-18,Pulaski,Virginia,51155,10,0 +2020-05-19,Pulaski,Virginia,51155,10,0 +2020-05-20,Pulaski,Virginia,51155,10,0 +2020-05-21,Pulaski,Virginia,51155,10,0 +2020-05-22,Pulaski,Virginia,51155,10,0 +2020-05-23,Pulaski,Virginia,51155,10,0 +2020-05-24,Pulaski,Virginia,51155,10,0 +2020-05-25,Pulaski,Virginia,51155,11,0 +2020-05-26,Pulaski,Virginia,51155,12,0 +2020-05-27,Pulaski,Virginia,51155,14,0 +2020-05-28,Pulaski,Virginia,51155,18,0 +2020-05-29,Pulaski,Virginia,51155,19,0 +2020-05-30,Pulaski,Virginia,51155,19,0 +2020-05-31,Pulaski,Virginia,51155,19,0 +2020-06-01,Pulaski,Virginia,51155,19,0 +2020-06-02,Pulaski,Virginia,51155,20,0 +2020-06-03,Pulaski,Virginia,51155,21,0 +2020-06-04,Pulaski,Virginia,51155,21,0 +2020-06-05,Pulaski,Virginia,51155,21,0 +2020-06-06,Pulaski,Virginia,51155,24,1 +2020-06-07,Pulaski,Virginia,51155,27,1 +2020-06-08,Pulaski,Virginia,51155,28,1 +2020-06-09,Pulaski,Virginia,51155,28,1 +2020-06-10,Pulaski,Virginia,51155,30,1 +2020-06-11,Pulaski,Virginia,51155,30,1 +2020-06-12,Pulaski,Virginia,51155,30,1 +2020-06-13,Pulaski,Virginia,51155,30,1 +2020-06-14,Pulaski,Virginia,51155,30,1 +2020-06-15,Pulaski,Virginia,51155,30,1 +2020-06-16,Pulaski,Virginia,51155,30,1 +2020-06-17,Pulaski,Virginia,51155,30,1 +2020-06-18,Pulaski,Virginia,51155,31,1 +2020-06-19,Pulaski,Virginia,51155,31,1 +2020-06-20,Pulaski,Virginia,51155,36,1 +2020-06-21,Pulaski,Virginia,51155,36,1 +2020-06-22,Pulaski,Virginia,51155,36,1 +2020-06-23,Pulaski,Virginia,51155,37,1 +2020-06-24,Pulaski,Virginia,51155,39,1 +2020-06-25,Pulaski,Virginia,51155,39,2 +2020-06-26,Pulaski,Virginia,51155,39,2 +2020-06-27,Pulaski,Virginia,51155,39,2 +2020-06-28,Pulaski,Virginia,51155,39,2 +2020-06-29,Pulaski,Virginia,51155,45,2 +2020-06-30,Pulaski,Virginia,51155,45,2 +2020-07-01,Pulaski,Virginia,51155,46,2 +2020-07-02,Pulaski,Virginia,51155,46,2 +2020-07-03,Pulaski,Virginia,51155,48,2 +2020-07-04,Pulaski,Virginia,51155,48,2 +2020-07-05,Pulaski,Virginia,51155,48,2 +2020-07-06,Pulaski,Virginia,51155,48,2 +2020-07-07,Pulaski,Virginia,51155,48,2 +2020-07-08,Pulaski,Virginia,51155,48,2 +2020-07-09,Pulaski,Virginia,51155,48,2 +2020-04-07,Rappahannock,Virginia,51157,1,0 +2020-04-08,Rappahannock,Virginia,51157,1,0 +2020-04-09,Rappahannock,Virginia,51157,1,0 +2020-04-10,Rappahannock,Virginia,51157,1,0 +2020-04-11,Rappahannock,Virginia,51157,1,0 +2020-04-12,Rappahannock,Virginia,51157,1,0 +2020-04-13,Rappahannock,Virginia,51157,1,0 +2020-04-14,Rappahannock,Virginia,51157,1,0 +2020-04-15,Rappahannock,Virginia,51157,1,0 +2020-04-16,Rappahannock,Virginia,51157,1,0 +2020-04-17,Rappahannock,Virginia,51157,1,0 +2020-04-18,Rappahannock,Virginia,51157,1,0 +2020-04-19,Rappahannock,Virginia,51157,1,0 +2020-04-20,Rappahannock,Virginia,51157,1,0 +2020-04-21,Rappahannock,Virginia,51157,1,0 +2020-04-22,Rappahannock,Virginia,51157,1,0 +2020-04-23,Rappahannock,Virginia,51157,1,0 +2020-04-24,Rappahannock,Virginia,51157,1,0 +2020-04-25,Rappahannock,Virginia,51157,2,0 +2020-04-26,Rappahannock,Virginia,51157,2,0 +2020-04-27,Rappahannock,Virginia,51157,1,0 +2020-04-28,Rappahannock,Virginia,51157,3,0 +2020-04-29,Rappahannock,Virginia,51157,3,0 +2020-04-30,Rappahannock,Virginia,51157,5,0 +2020-05-01,Rappahannock,Virginia,51157,5,0 +2020-05-02,Rappahannock,Virginia,51157,6,0 +2020-05-03,Rappahannock,Virginia,51157,6,0 +2020-05-04,Rappahannock,Virginia,51157,6,0 +2020-05-05,Rappahannock,Virginia,51157,6,0 +2020-05-06,Rappahannock,Virginia,51157,6,0 +2020-05-07,Rappahannock,Virginia,51157,7,0 +2020-05-08,Rappahannock,Virginia,51157,6,0 +2020-05-09,Rappahannock,Virginia,51157,7,0 +2020-05-10,Rappahannock,Virginia,51157,8,0 +2020-05-11,Rappahannock,Virginia,51157,10,0 +2020-05-12,Rappahannock,Virginia,51157,10,0 +2020-05-13,Rappahannock,Virginia,51157,10,0 +2020-05-14,Rappahannock,Virginia,51157,10,0 +2020-05-15,Rappahannock,Virginia,51157,11,0 +2020-05-16,Rappahannock,Virginia,51157,12,0 +2020-05-17,Rappahannock,Virginia,51157,12,0 +2020-05-18,Rappahannock,Virginia,51157,12,0 +2020-05-19,Rappahannock,Virginia,51157,12,0 +2020-05-20,Rappahannock,Virginia,51157,12,0 +2020-05-21,Rappahannock,Virginia,51157,12,0 +2020-05-22,Rappahannock,Virginia,51157,12,0 +2020-05-23,Rappahannock,Virginia,51157,12,0 +2020-05-24,Rappahannock,Virginia,51157,12,0 +2020-05-25,Rappahannock,Virginia,51157,13,0 +2020-05-26,Rappahannock,Virginia,51157,13,0 +2020-05-27,Rappahannock,Virginia,51157,13,0 +2020-05-28,Rappahannock,Virginia,51157,13,0 +2020-05-29,Rappahannock,Virginia,51157,13,0 +2020-05-30,Rappahannock,Virginia,51157,13,0 +2020-05-31,Rappahannock,Virginia,51157,13,0 +2020-06-01,Rappahannock,Virginia,51157,13,0 +2020-06-02,Rappahannock,Virginia,51157,14,0 +2020-06-03,Rappahannock,Virginia,51157,14,0 +2020-06-04,Rappahannock,Virginia,51157,15,0 +2020-06-05,Rappahannock,Virginia,51157,15,0 +2020-06-06,Rappahannock,Virginia,51157,18,0 +2020-06-07,Rappahannock,Virginia,51157,17,0 +2020-06-08,Rappahannock,Virginia,51157,15,0 +2020-06-09,Rappahannock,Virginia,51157,16,0 +2020-06-10,Rappahannock,Virginia,51157,16,0 +2020-06-11,Rappahannock,Virginia,51157,16,0 +2020-06-12,Rappahannock,Virginia,51157,16,0 +2020-06-13,Rappahannock,Virginia,51157,17,0 +2020-06-14,Rappahannock,Virginia,51157,17,0 +2020-06-15,Rappahannock,Virginia,51157,17,0 +2020-06-16,Rappahannock,Virginia,51157,17,0 +2020-06-17,Rappahannock,Virginia,51157,17,0 +2020-06-18,Rappahannock,Virginia,51157,16,0 +2020-06-19,Rappahannock,Virginia,51157,16,0 +2020-06-20,Rappahannock,Virginia,51157,17,0 +2020-06-21,Rappahannock,Virginia,51157,16,0 +2020-06-22,Rappahannock,Virginia,51157,17,0 +2020-06-23,Rappahannock,Virginia,51157,18,0 +2020-06-24,Rappahannock,Virginia,51157,19,0 +2020-06-25,Rappahannock,Virginia,51157,20,0 +2020-06-26,Rappahannock,Virginia,51157,20,0 +2020-06-27,Rappahannock,Virginia,51157,20,0 +2020-06-28,Rappahannock,Virginia,51157,20,0 +2020-06-29,Rappahannock,Virginia,51157,20,0 +2020-06-30,Rappahannock,Virginia,51157,20,0 +2020-07-01,Rappahannock,Virginia,51157,20,0 +2020-07-02,Rappahannock,Virginia,51157,20,0 +2020-07-03,Rappahannock,Virginia,51157,21,0 +2020-07-04,Rappahannock,Virginia,51157,22,0 +2020-07-05,Rappahannock,Virginia,51157,23,0 +2020-07-06,Rappahannock,Virginia,51157,26,0 +2020-07-07,Rappahannock,Virginia,51157,30,0 +2020-07-08,Rappahannock,Virginia,51157,31,0 +2020-07-09,Rappahannock,Virginia,51157,31,0 +2020-04-03,Richmond,Virginia,51159,1,0 +2020-04-04,Richmond,Virginia,51159,1,0 +2020-04-05,Richmond,Virginia,51159,1,0 +2020-04-06,Richmond,Virginia,51159,1,0 +2020-04-07,Richmond,Virginia,51159,2,0 +2020-04-08,Richmond,Virginia,51159,2,0 +2020-04-09,Richmond,Virginia,51159,3,0 +2020-04-10,Richmond,Virginia,51159,5,0 +2020-04-11,Richmond,Virginia,51159,5,0 +2020-04-12,Richmond,Virginia,51159,5,0 +2020-04-13,Richmond,Virginia,51159,5,0 +2020-04-14,Richmond,Virginia,51159,7,0 +2020-04-15,Richmond,Virginia,51159,7,0 +2020-04-16,Richmond,Virginia,51159,7,0 +2020-04-17,Richmond,Virginia,51159,8,0 +2020-04-18,Richmond,Virginia,51159,8,0 +2020-04-19,Richmond,Virginia,51159,9,0 +2020-04-20,Richmond,Virginia,51159,9,0 +2020-04-21,Richmond,Virginia,51159,53,0 +2020-04-22,Richmond,Virginia,51159,53,0 +2020-04-23,Richmond,Virginia,51159,66,0 +2020-04-24,Richmond,Virginia,51159,66,0 +2020-04-25,Richmond,Virginia,51159,79,0 +2020-04-26,Richmond,Virginia,51159,89,0 +2020-04-27,Richmond,Virginia,51159,132,0 +2020-04-28,Richmond,Virginia,51159,141,0 +2020-04-29,Richmond,Virginia,51159,143,0 +2020-04-30,Richmond,Virginia,51159,144,0 +2020-05-01,Richmond,Virginia,51159,142,0 +2020-05-02,Richmond,Virginia,51159,143,0 +2020-05-03,Richmond,Virginia,51159,145,0 +2020-05-04,Richmond,Virginia,51159,145,0 +2020-05-05,Richmond,Virginia,51159,143,1 +2020-05-06,Richmond,Virginia,51159,143,1 +2020-05-07,Richmond,Virginia,51159,187,2 +2020-05-08,Richmond,Virginia,51159,187,3 +2020-05-09,Richmond,Virginia,51159,188,3 +2020-05-10,Richmond,Virginia,51159,189,3 +2020-05-11,Richmond,Virginia,51159,190,3 +2020-05-12,Richmond,Virginia,51159,200,3 +2020-05-13,Richmond,Virginia,51159,200,3 +2020-05-14,Richmond,Virginia,51159,203,4 +2020-05-15,Richmond,Virginia,51159,201,4 +2020-05-16,Richmond,Virginia,51159,204,4 +2020-05-17,Richmond,Virginia,51159,261,4 +2020-05-18,Richmond,Virginia,51159,263,4 +2020-05-19,Richmond,Virginia,51159,265,4 +2020-05-20,Richmond,Virginia,51159,263,4 +2020-05-21,Richmond,Virginia,51159,263,4 +2020-05-22,Richmond,Virginia,51159,267,4 +2020-05-23,Richmond,Virginia,51159,276,4 +2020-05-24,Richmond,Virginia,51159,275,4 +2020-05-25,Richmond,Virginia,51159,275,4 +2020-05-26,Richmond,Virginia,51159,278,4 +2020-05-27,Richmond,Virginia,51159,275,4 +2020-05-28,Richmond,Virginia,51159,275,4 +2020-05-29,Richmond,Virginia,51159,276,4 +2020-05-30,Richmond,Virginia,51159,275,4 +2020-05-31,Richmond,Virginia,51159,276,4 +2020-06-01,Richmond,Virginia,51159,287,4 +2020-06-02,Richmond,Virginia,51159,287,4 +2020-06-03,Richmond,Virginia,51159,287,5 +2020-06-04,Richmond,Virginia,51159,287,5 +2020-06-05,Richmond,Virginia,51159,289,5 +2020-06-06,Richmond,Virginia,51159,291,6 +2020-06-07,Richmond,Virginia,51159,293,6 +2020-06-08,Richmond,Virginia,51159,293,6 +2020-06-09,Richmond,Virginia,51159,289,5 +2020-06-10,Richmond,Virginia,51159,290,5 +2020-06-11,Richmond,Virginia,51159,290,5 +2020-06-12,Richmond,Virginia,51159,290,5 +2020-06-13,Richmond,Virginia,51159,291,5 +2020-06-14,Richmond,Virginia,51159,291,5 +2020-06-15,Richmond,Virginia,51159,292,5 +2020-06-16,Richmond,Virginia,51159,294,6 +2020-06-17,Richmond,Virginia,51159,294,6 +2020-06-18,Richmond,Virginia,51159,295,5 +2020-06-19,Richmond,Virginia,51159,301,7 +2020-06-20,Richmond,Virginia,51159,317,7 +2020-06-21,Richmond,Virginia,51159,317,7 +2020-06-22,Richmond,Virginia,51159,317,7 +2020-06-23,Richmond,Virginia,51159,318,8 +2020-06-24,Richmond,Virginia,51159,295,6 +2020-06-25,Richmond,Virginia,51159,295,6 +2020-06-26,Richmond,Virginia,51159,296,4 +2020-06-27,Richmond,Virginia,51159,296,4 +2020-06-28,Richmond,Virginia,51159,296,4 +2020-06-29,Richmond,Virginia,51159,296,4 +2020-06-30,Richmond,Virginia,51159,298,4 +2020-07-01,Richmond,Virginia,51159,298,4 +2020-07-02,Richmond,Virginia,51159,298,4 +2020-07-03,Richmond,Virginia,51159,298,4 +2020-07-04,Richmond,Virginia,51159,298,4 +2020-07-05,Richmond,Virginia,51159,299,4 +2020-07-06,Richmond,Virginia,51159,299,4 +2020-07-07,Richmond,Virginia,51159,300,4 +2020-07-08,Richmond,Virginia,51159,299,4 +2020-07-09,Richmond,Virginia,51159,304,4 +2020-03-25,Roanoke,Virginia,51161,1,0 +2020-03-26,Roanoke,Virginia,51161,1,0 +2020-03-27,Roanoke,Virginia,51161,1,0 +2020-03-28,Roanoke,Virginia,51161,1,0 +2020-03-29,Roanoke,Virginia,51161,2,0 +2020-03-30,Roanoke,Virginia,51161,2,0 +2020-03-31,Roanoke,Virginia,51161,3,0 +2020-04-01,Roanoke,Virginia,51161,4,0 +2020-04-02,Roanoke,Virginia,51161,4,0 +2020-04-03,Roanoke,Virginia,51161,4,0 +2020-04-04,Roanoke,Virginia,51161,5,0 +2020-04-05,Roanoke,Virginia,51161,5,0 +2020-04-06,Roanoke,Virginia,51161,5,0 +2020-04-07,Roanoke,Virginia,51161,8,0 +2020-04-08,Roanoke,Virginia,51161,9,0 +2020-04-09,Roanoke,Virginia,51161,9,0 +2020-04-10,Roanoke,Virginia,51161,13,0 +2020-04-11,Roanoke,Virginia,51161,13,0 +2020-04-12,Roanoke,Virginia,51161,14,0 +2020-04-13,Roanoke,Virginia,51161,18,0 +2020-04-14,Roanoke,Virginia,51161,16,0 +2020-04-15,Roanoke,Virginia,51161,17,0 +2020-04-16,Roanoke,Virginia,51161,19,0 +2020-04-17,Roanoke,Virginia,51161,20,0 +2020-04-18,Roanoke,Virginia,51161,20,0 +2020-04-19,Roanoke,Virginia,51161,22,0 +2020-04-20,Roanoke,Virginia,51161,24,0 +2020-04-21,Roanoke,Virginia,51161,25,0 +2020-04-22,Roanoke,Virginia,51161,31,0 +2020-04-23,Roanoke,Virginia,51161,34,0 +2020-04-24,Roanoke,Virginia,51161,39,0 +2020-04-25,Roanoke,Virginia,51161,39,0 +2020-04-26,Roanoke,Virginia,51161,39,0 +2020-04-27,Roanoke,Virginia,51161,41,0 +2020-04-28,Roanoke,Virginia,51161,41,0 +2020-04-29,Roanoke,Virginia,51161,47,0 +2020-04-30,Roanoke,Virginia,51161,51,0 +2020-05-01,Roanoke,Virginia,51161,53,0 +2020-05-02,Roanoke,Virginia,51161,54,0 +2020-05-03,Roanoke,Virginia,51161,57,0 +2020-05-04,Roanoke,Virginia,51161,57,0 +2020-05-05,Roanoke,Virginia,51161,57,0 +2020-05-06,Roanoke,Virginia,51161,57,0 +2020-05-07,Roanoke,Virginia,51161,60,0 +2020-05-08,Roanoke,Virginia,51161,62,0 +2020-05-09,Roanoke,Virginia,51161,62,0 +2020-05-10,Roanoke,Virginia,51161,62,0 +2020-05-11,Roanoke,Virginia,51161,79,0 +2020-05-12,Roanoke,Virginia,51161,79,0 +2020-05-13,Roanoke,Virginia,51161,80,0 +2020-05-14,Roanoke,Virginia,51161,83,1 +2020-05-15,Roanoke,Virginia,51161,83,1 +2020-05-16,Roanoke,Virginia,51161,84,3 +2020-05-17,Roanoke,Virginia,51161,85,3 +2020-05-18,Roanoke,Virginia,51161,86,3 +2020-05-19,Roanoke,Virginia,51161,88,3 +2020-05-20,Roanoke,Virginia,51161,88,3 +2020-05-21,Roanoke,Virginia,51161,89,3 +2020-05-22,Roanoke,Virginia,51161,90,5 +2020-05-23,Roanoke,Virginia,51161,90,5 +2020-05-24,Roanoke,Virginia,51161,90,5 +2020-05-25,Roanoke,Virginia,51161,94,7 +2020-05-26,Roanoke,Virginia,51161,96,7 +2020-05-27,Roanoke,Virginia,51161,96,7 +2020-05-28,Roanoke,Virginia,51161,97,7 +2020-05-29,Roanoke,Virginia,51161,102,7 +2020-05-30,Roanoke,Virginia,51161,104,7 +2020-05-31,Roanoke,Virginia,51161,105,7 +2020-06-01,Roanoke,Virginia,51161,106,7 +2020-06-02,Roanoke,Virginia,51161,110,7 +2020-06-03,Roanoke,Virginia,51161,113,6 +2020-06-04,Roanoke,Virginia,51161,113,6 +2020-06-05,Roanoke,Virginia,51161,119,6 +2020-06-06,Roanoke,Virginia,51161,122,6 +2020-06-07,Roanoke,Virginia,51161,122,6 +2020-06-08,Roanoke,Virginia,51161,122,6 +2020-06-09,Roanoke,Virginia,51161,126,6 +2020-06-10,Roanoke,Virginia,51161,125,5 +2020-06-11,Roanoke,Virginia,51161,128,5 +2020-06-12,Roanoke,Virginia,51161,132,5 +2020-06-13,Roanoke,Virginia,51161,134,5 +2020-06-14,Roanoke,Virginia,51161,134,5 +2020-06-15,Roanoke,Virginia,51161,134,5 +2020-06-16,Roanoke,Virginia,51161,141,5 +2020-06-17,Roanoke,Virginia,51161,148,5 +2020-06-18,Roanoke,Virginia,51161,149,5 +2020-06-19,Roanoke,Virginia,51161,161,5 +2020-06-20,Roanoke,Virginia,51161,171,5 +2020-06-21,Roanoke,Virginia,51161,171,5 +2020-06-22,Roanoke,Virginia,51161,177,5 +2020-06-23,Roanoke,Virginia,51161,195,5 +2020-06-24,Roanoke,Virginia,51161,200,5 +2020-06-25,Roanoke,Virginia,51161,200,5 +2020-06-26,Roanoke,Virginia,51161,199,5 +2020-06-27,Roanoke,Virginia,51161,200,5 +2020-06-28,Roanoke,Virginia,51161,206,5 +2020-06-29,Roanoke,Virginia,51161,234,5 +2020-06-30,Roanoke,Virginia,51161,254,6 +2020-07-01,Roanoke,Virginia,51161,253,6 +2020-07-02,Roanoke,Virginia,51161,260,6 +2020-07-03,Roanoke,Virginia,51161,274,6 +2020-07-04,Roanoke,Virginia,51161,278,6 +2020-07-05,Roanoke,Virginia,51161,283,6 +2020-07-06,Roanoke,Virginia,51161,287,6 +2020-07-07,Roanoke,Virginia,51161,292,6 +2020-07-08,Roanoke,Virginia,51161,296,6 +2020-07-09,Roanoke,Virginia,51161,301,6 +2020-03-23,Rockbridge,Virginia,51163,1,0 +2020-03-24,Rockbridge,Virginia,51163,1,0 +2020-03-25,Rockbridge,Virginia,51163,1,0 +2020-03-26,Rockbridge,Virginia,51163,1,0 +2020-03-27,Rockbridge,Virginia,51163,1,0 +2020-03-28,Rockbridge,Virginia,51163,2,0 +2020-03-29,Rockbridge,Virginia,51163,2,0 +2020-03-30,Rockbridge,Virginia,51163,2,0 +2020-03-31,Rockbridge,Virginia,51163,2,0 +2020-04-01,Rockbridge,Virginia,51163,2,0 +2020-04-02,Rockbridge,Virginia,51163,2,0 +2020-04-03,Rockbridge,Virginia,51163,2,0 +2020-04-04,Rockbridge,Virginia,51163,3,0 +2020-04-05,Rockbridge,Virginia,51163,3,0 +2020-04-06,Rockbridge,Virginia,51163,3,0 +2020-04-07,Rockbridge,Virginia,51163,3,0 +2020-04-08,Rockbridge,Virginia,51163,3,0 +2020-04-09,Rockbridge,Virginia,51163,3,0 +2020-04-10,Rockbridge,Virginia,51163,3,0 +2020-04-11,Rockbridge,Virginia,51163,3,0 +2020-04-12,Rockbridge,Virginia,51163,3,0 +2020-04-13,Rockbridge,Virginia,51163,3,0 +2020-04-14,Rockbridge,Virginia,51163,3,0 +2020-04-15,Rockbridge,Virginia,51163,3,0 +2020-04-16,Rockbridge,Virginia,51163,3,0 +2020-04-17,Rockbridge,Virginia,51163,5,0 +2020-04-18,Rockbridge,Virginia,51163,5,0 +2020-04-19,Rockbridge,Virginia,51163,5,0 +2020-04-20,Rockbridge,Virginia,51163,5,0 +2020-04-21,Rockbridge,Virginia,51163,5,0 +2020-04-22,Rockbridge,Virginia,51163,5,0 +2020-04-23,Rockbridge,Virginia,51163,5,0 +2020-04-24,Rockbridge,Virginia,51163,5,0 +2020-04-25,Rockbridge,Virginia,51163,5,0 +2020-04-26,Rockbridge,Virginia,51163,5,0 +2020-04-27,Rockbridge,Virginia,51163,5,0 +2020-04-28,Rockbridge,Virginia,51163,5,0 +2020-04-29,Rockbridge,Virginia,51163,5,0 +2020-04-30,Rockbridge,Virginia,51163,6,0 +2020-05-01,Rockbridge,Virginia,51163,7,0 +2020-05-02,Rockbridge,Virginia,51163,7,0 +2020-05-03,Rockbridge,Virginia,51163,7,0 +2020-05-04,Rockbridge,Virginia,51163,7,0 +2020-05-05,Rockbridge,Virginia,51163,8,0 +2020-05-06,Rockbridge,Virginia,51163,8,0 +2020-05-07,Rockbridge,Virginia,51163,8,0 +2020-05-08,Rockbridge,Virginia,51163,8,0 +2020-05-09,Rockbridge,Virginia,51163,9,0 +2020-05-10,Rockbridge,Virginia,51163,9,0 +2020-05-11,Rockbridge,Virginia,51163,9,0 +2020-05-12,Rockbridge,Virginia,51163,9,0 +2020-05-13,Rockbridge,Virginia,51163,11,0 +2020-05-14,Rockbridge,Virginia,51163,11,0 +2020-05-15,Rockbridge,Virginia,51163,10,0 +2020-05-16,Rockbridge,Virginia,51163,11,0 +2020-05-17,Rockbridge,Virginia,51163,11,0 +2020-05-18,Rockbridge,Virginia,51163,11,0 +2020-05-19,Rockbridge,Virginia,51163,13,0 +2020-05-20,Rockbridge,Virginia,51163,13,0 +2020-05-21,Rockbridge,Virginia,51163,12,0 +2020-05-22,Rockbridge,Virginia,51163,13,0 +2020-05-23,Rockbridge,Virginia,51163,14,0 +2020-05-24,Rockbridge,Virginia,51163,14,0 +2020-05-25,Rockbridge,Virginia,51163,16,0 +2020-05-26,Rockbridge,Virginia,51163,17,0 +2020-05-27,Rockbridge,Virginia,51163,17,0 +2020-05-28,Rockbridge,Virginia,51163,16,0 +2020-05-29,Rockbridge,Virginia,51163,16,0 +2020-05-30,Rockbridge,Virginia,51163,18,0 +2020-05-31,Rockbridge,Virginia,51163,18,0 +2020-06-01,Rockbridge,Virginia,51163,18,0 +2020-06-02,Rockbridge,Virginia,51163,19,0 +2020-06-03,Rockbridge,Virginia,51163,19,0 +2020-06-04,Rockbridge,Virginia,51163,18,0 +2020-06-05,Rockbridge,Virginia,51163,18,0 +2020-06-06,Rockbridge,Virginia,51163,18,0 +2020-06-07,Rockbridge,Virginia,51163,19,0 +2020-06-08,Rockbridge,Virginia,51163,20,0 +2020-06-09,Rockbridge,Virginia,51163,19,0 +2020-06-10,Rockbridge,Virginia,51163,19,0 +2020-06-11,Rockbridge,Virginia,51163,19,0 +2020-06-12,Rockbridge,Virginia,51163,19,0 +2020-06-13,Rockbridge,Virginia,51163,19,0 +2020-06-14,Rockbridge,Virginia,51163,19,0 +2020-06-15,Rockbridge,Virginia,51163,19,0 +2020-06-16,Rockbridge,Virginia,51163,18,0 +2020-06-17,Rockbridge,Virginia,51163,18,0 +2020-06-18,Rockbridge,Virginia,51163,18,0 +2020-06-19,Rockbridge,Virginia,51163,18,0 +2020-06-20,Rockbridge,Virginia,51163,18,0 +2020-06-21,Rockbridge,Virginia,51163,18,0 +2020-06-22,Rockbridge,Virginia,51163,21,0 +2020-06-23,Rockbridge,Virginia,51163,23,0 +2020-06-24,Rockbridge,Virginia,51163,24,0 +2020-06-25,Rockbridge,Virginia,51163,27,0 +2020-06-26,Rockbridge,Virginia,51163,28,0 +2020-06-27,Rockbridge,Virginia,51163,29,0 +2020-06-28,Rockbridge,Virginia,51163,30,0 +2020-06-29,Rockbridge,Virginia,51163,30,0 +2020-06-30,Rockbridge,Virginia,51163,30,0 +2020-07-01,Rockbridge,Virginia,51163,31,0 +2020-07-02,Rockbridge,Virginia,51163,32,0 +2020-07-03,Rockbridge,Virginia,51163,32,0 +2020-07-04,Rockbridge,Virginia,51163,33,0 +2020-07-05,Rockbridge,Virginia,51163,33,0 +2020-07-06,Rockbridge,Virginia,51163,33,0 +2020-07-07,Rockbridge,Virginia,51163,33,0 +2020-07-08,Rockbridge,Virginia,51163,33,0 +2020-07-09,Rockbridge,Virginia,51163,33,0 +2020-03-22,Rockingham,Virginia,51165,2,0 +2020-03-23,Rockingham,Virginia,51165,2,0 +2020-03-24,Rockingham,Virginia,51165,3,0 +2020-03-25,Rockingham,Virginia,51165,2,0 +2020-03-26,Rockingham,Virginia,51165,4,0 +2020-03-27,Rockingham,Virginia,51165,4,0 +2020-03-28,Rockingham,Virginia,51165,4,0 +2020-03-29,Rockingham,Virginia,51165,4,0 +2020-03-30,Rockingham,Virginia,51165,5,0 +2020-03-31,Rockingham,Virginia,51165,5,0 +2020-04-01,Rockingham,Virginia,51165,9,0 +2020-04-02,Rockingham,Virginia,51165,11,0 +2020-04-03,Rockingham,Virginia,51165,11,0 +2020-04-04,Rockingham,Virginia,51165,15,0 +2020-04-05,Rockingham,Virginia,51165,16,0 +2020-04-06,Rockingham,Virginia,51165,15,0 +2020-04-07,Rockingham,Virginia,51165,16,0 +2020-04-08,Rockingham,Virginia,51165,20,0 +2020-04-09,Rockingham,Virginia,51165,21,0 +2020-04-10,Rockingham,Virginia,51165,31,0 +2020-04-11,Rockingham,Virginia,51165,44,0 +2020-04-12,Rockingham,Virginia,51165,43,0 +2020-04-13,Rockingham,Virginia,51165,49,0 +2020-04-14,Rockingham,Virginia,51165,56,0 +2020-04-15,Rockingham,Virginia,51165,67,0 +2020-04-16,Rockingham,Virginia,51165,69,0 +2020-04-17,Rockingham,Virginia,51165,83,0 +2020-04-18,Rockingham,Virginia,51165,100,0 +2020-04-19,Rockingham,Virginia,51165,100,0 +2020-04-20,Rockingham,Virginia,51165,106,0 +2020-04-21,Rockingham,Virginia,51165,122,1 +2020-04-22,Rockingham,Virginia,51165,145,1 +2020-04-23,Rockingham,Virginia,51165,163,1 +2020-04-24,Rockingham,Virginia,51165,176,1 +2020-04-25,Rockingham,Virginia,51165,184,1 +2020-04-26,Rockingham,Virginia,51165,184,1 +2020-04-27,Rockingham,Virginia,51165,193,1 +2020-04-28,Rockingham,Virginia,51165,216,1 +2020-04-29,Rockingham,Virginia,51165,220,1 +2020-04-30,Rockingham,Virginia,51165,240,1 +2020-05-01,Rockingham,Virginia,51165,249,1 +2020-05-02,Rockingham,Virginia,51165,259,1 +2020-05-03,Rockingham,Virginia,51165,265,1 +2020-05-04,Rockingham,Virginia,51165,269,1 +2020-05-05,Rockingham,Virginia,51165,282,1 +2020-05-06,Rockingham,Virginia,51165,282,1 +2020-05-07,Rockingham,Virginia,51165,310,1 +2020-05-08,Rockingham,Virginia,51165,320,1 +2020-05-09,Rockingham,Virginia,51165,339,1 +2020-05-10,Rockingham,Virginia,51165,344,2 +2020-05-11,Rockingham,Virginia,51165,360,2 +2020-05-12,Rockingham,Virginia,51165,364,2 +2020-05-13,Rockingham,Virginia,51165,373,2 +2020-05-14,Rockingham,Virginia,51165,381,2 +2020-05-15,Rockingham,Virginia,51165,388,2 +2020-05-16,Rockingham,Virginia,51165,387,2 +2020-05-17,Rockingham,Virginia,51165,389,2 +2020-05-18,Rockingham,Virginia,51165,397,2 +2020-05-19,Rockingham,Virginia,51165,401,5 +2020-05-20,Rockingham,Virginia,51165,414,5 +2020-05-21,Rockingham,Virginia,51165,434,6 +2020-05-22,Rockingham,Virginia,51165,444,6 +2020-05-23,Rockingham,Virginia,51165,452,6 +2020-05-24,Rockingham,Virginia,51165,453,6 +2020-05-25,Rockingham,Virginia,51165,467,6 +2020-05-26,Rockingham,Virginia,51165,478,6 +2020-05-27,Rockingham,Virginia,51165,483,6 +2020-05-28,Rockingham,Virginia,51165,490,6 +2020-05-29,Rockingham,Virginia,51165,505,6 +2020-05-30,Rockingham,Virginia,51165,511,6 +2020-05-31,Rockingham,Virginia,51165,518,6 +2020-06-01,Rockingham,Virginia,51165,541,6 +2020-06-02,Rockingham,Virginia,51165,545,6 +2020-06-03,Rockingham,Virginia,51165,548,6 +2020-06-04,Rockingham,Virginia,51165,555,6 +2020-06-05,Rockingham,Virginia,51165,561,6 +2020-06-06,Rockingham,Virginia,51165,572,6 +2020-06-07,Rockingham,Virginia,51165,580,6 +2020-06-08,Rockingham,Virginia,51165,589,6 +2020-06-09,Rockingham,Virginia,51165,596,6 +2020-06-10,Rockingham,Virginia,51165,602,6 +2020-06-11,Rockingham,Virginia,51165,606,7 +2020-06-12,Rockingham,Virginia,51165,614,7 +2020-06-13,Rockingham,Virginia,51165,621,7 +2020-06-14,Rockingham,Virginia,51165,627,7 +2020-06-15,Rockingham,Virginia,51165,629,7 +2020-06-16,Rockingham,Virginia,51165,631,7 +2020-06-17,Rockingham,Virginia,51165,636,7 +2020-06-18,Rockingham,Virginia,51165,641,7 +2020-06-19,Rockingham,Virginia,51165,646,7 +2020-06-20,Rockingham,Virginia,51165,651,7 +2020-06-21,Rockingham,Virginia,51165,653,7 +2020-06-22,Rockingham,Virginia,51165,657,9 +2020-06-23,Rockingham,Virginia,51165,660,9 +2020-06-24,Rockingham,Virginia,51165,663,9 +2020-06-25,Rockingham,Virginia,51165,674,9 +2020-06-26,Rockingham,Virginia,51165,685,9 +2020-06-27,Rockingham,Virginia,51165,701,9 +2020-06-28,Rockingham,Virginia,51165,707,10 +2020-06-29,Rockingham,Virginia,51165,713,10 +2020-06-30,Rockingham,Virginia,51165,720,10 +2020-07-01,Rockingham,Virginia,51165,720,11 +2020-07-02,Rockingham,Virginia,51165,730,11 +2020-07-03,Rockingham,Virginia,51165,739,11 +2020-07-04,Rockingham,Virginia,51165,743,11 +2020-07-05,Rockingham,Virginia,51165,746,11 +2020-07-06,Rockingham,Virginia,51165,744,11 +2020-07-07,Rockingham,Virginia,51165,751,11 +2020-07-08,Rockingham,Virginia,51165,758,11 +2020-07-09,Rockingham,Virginia,51165,763,12 +2020-04-06,Russell,Virginia,51167,1,0 +2020-04-07,Russell,Virginia,51167,1,0 +2020-04-08,Russell,Virginia,51167,1,0 +2020-04-09,Russell,Virginia,51167,1,0 +2020-04-10,Russell,Virginia,51167,1,0 +2020-04-11,Russell,Virginia,51167,1,0 +2020-04-12,Russell,Virginia,51167,1,0 +2020-04-13,Russell,Virginia,51167,1,0 +2020-04-14,Russell,Virginia,51167,2,0 +2020-04-15,Russell,Virginia,51167,2,0 +2020-04-16,Russell,Virginia,51167,2,0 +2020-04-17,Russell,Virginia,51167,2,0 +2020-04-18,Russell,Virginia,51167,2,0 +2020-04-19,Russell,Virginia,51167,2,0 +2020-04-20,Russell,Virginia,51167,2,0 +2020-04-21,Russell,Virginia,51167,2,0 +2020-04-22,Russell,Virginia,51167,2,0 +2020-04-23,Russell,Virginia,51167,2,0 +2020-04-24,Russell,Virginia,51167,2,0 +2020-04-25,Russell,Virginia,51167,3,0 +2020-04-26,Russell,Virginia,51167,3,0 +2020-04-27,Russell,Virginia,51167,3,0 +2020-04-28,Russell,Virginia,51167,3,0 +2020-04-29,Russell,Virginia,51167,3,0 +2020-04-30,Russell,Virginia,51167,3,0 +2020-05-01,Russell,Virginia,51167,4,0 +2020-05-02,Russell,Virginia,51167,5,0 +2020-05-03,Russell,Virginia,51167,5,0 +2020-05-04,Russell,Virginia,51167,5,0 +2020-05-05,Russell,Virginia,51167,5,0 +2020-05-06,Russell,Virginia,51167,5,0 +2020-05-07,Russell,Virginia,51167,6,0 +2020-05-08,Russell,Virginia,51167,6,0 +2020-05-09,Russell,Virginia,51167,6,0 +2020-05-10,Russell,Virginia,51167,6,0 +2020-05-11,Russell,Virginia,51167,6,0 +2020-05-12,Russell,Virginia,51167,6,0 +2020-05-13,Russell,Virginia,51167,6,0 +2020-05-14,Russell,Virginia,51167,6,0 +2020-05-15,Russell,Virginia,51167,6,0 +2020-05-16,Russell,Virginia,51167,8,0 +2020-05-17,Russell,Virginia,51167,8,0 +2020-05-18,Russell,Virginia,51167,8,0 +2020-05-19,Russell,Virginia,51167,8,0 +2020-05-20,Russell,Virginia,51167,8,0 +2020-05-21,Russell,Virginia,51167,8,0 +2020-05-22,Russell,Virginia,51167,8,0 +2020-05-23,Russell,Virginia,51167,8,0 +2020-05-24,Russell,Virginia,51167,8,0 +2020-05-25,Russell,Virginia,51167,8,0 +2020-05-26,Russell,Virginia,51167,8,0 +2020-05-27,Russell,Virginia,51167,8,0 +2020-05-28,Russell,Virginia,51167,8,0 +2020-05-29,Russell,Virginia,51167,8,0 +2020-05-30,Russell,Virginia,51167,8,0 +2020-05-31,Russell,Virginia,51167,8,0 +2020-06-01,Russell,Virginia,51167,8,0 +2020-06-02,Russell,Virginia,51167,8,0 +2020-06-03,Russell,Virginia,51167,8,0 +2020-06-04,Russell,Virginia,51167,8,0 +2020-06-05,Russell,Virginia,51167,8,0 +2020-06-06,Russell,Virginia,51167,8,0 +2020-06-07,Russell,Virginia,51167,8,0 +2020-06-08,Russell,Virginia,51167,8,0 +2020-06-09,Russell,Virginia,51167,8,0 +2020-06-10,Russell,Virginia,51167,8,0 +2020-06-11,Russell,Virginia,51167,8,0 +2020-06-12,Russell,Virginia,51167,8,0 +2020-06-13,Russell,Virginia,51167,8,0 +2020-06-14,Russell,Virginia,51167,8,0 +2020-06-15,Russell,Virginia,51167,8,0 +2020-06-16,Russell,Virginia,51167,8,0 +2020-06-17,Russell,Virginia,51167,9,0 +2020-06-18,Russell,Virginia,51167,9,0 +2020-06-19,Russell,Virginia,51167,9,0 +2020-06-20,Russell,Virginia,51167,9,0 +2020-06-21,Russell,Virginia,51167,9,0 +2020-06-22,Russell,Virginia,51167,9,0 +2020-06-23,Russell,Virginia,51167,9,0 +2020-06-24,Russell,Virginia,51167,9,0 +2020-06-25,Russell,Virginia,51167,9,0 +2020-06-26,Russell,Virginia,51167,9,0 +2020-06-27,Russell,Virginia,51167,9,0 +2020-06-28,Russell,Virginia,51167,9,0 +2020-06-29,Russell,Virginia,51167,11,0 +2020-06-30,Russell,Virginia,51167,12,0 +2020-07-01,Russell,Virginia,51167,12,0 +2020-07-02,Russell,Virginia,51167,13,0 +2020-07-03,Russell,Virginia,51167,13,0 +2020-07-04,Russell,Virginia,51167,14,0 +2020-07-05,Russell,Virginia,51167,14,0 +2020-07-06,Russell,Virginia,51167,14,0 +2020-07-07,Russell,Virginia,51167,14,0 +2020-07-08,Russell,Virginia,51167,15,0 +2020-07-09,Russell,Virginia,51167,15,0 +2020-04-10,Scott,Virginia,51169,3,0 +2020-04-11,Scott,Virginia,51169,3,0 +2020-04-12,Scott,Virginia,51169,3,0 +2020-04-13,Scott,Virginia,51169,3,0 +2020-04-14,Scott,Virginia,51169,3,0 +2020-04-15,Scott,Virginia,51169,3,0 +2020-04-16,Scott,Virginia,51169,3,0 +2020-04-17,Scott,Virginia,51169,3,0 +2020-04-18,Scott,Virginia,51169,4,0 +2020-04-19,Scott,Virginia,51169,4,0 +2020-04-20,Scott,Virginia,51169,4,0 +2020-04-21,Scott,Virginia,51169,5,1 +2020-04-22,Scott,Virginia,51169,5,1 +2020-04-23,Scott,Virginia,51169,5,1 +2020-04-24,Scott,Virginia,51169,5,1 +2020-04-25,Scott,Virginia,51169,5,1 +2020-04-26,Scott,Virginia,51169,6,1 +2020-04-27,Scott,Virginia,51169,6,1 +2020-04-28,Scott,Virginia,51169,7,1 +2020-04-29,Scott,Virginia,51169,7,1 +2020-04-30,Scott,Virginia,51169,7,1 +2020-05-01,Scott,Virginia,51169,7,1 +2020-05-02,Scott,Virginia,51169,7,1 +2020-05-03,Scott,Virginia,51169,7,1 +2020-05-04,Scott,Virginia,51169,7,1 +2020-05-05,Scott,Virginia,51169,7,1 +2020-05-06,Scott,Virginia,51169,7,1 +2020-05-07,Scott,Virginia,51169,7,1 +2020-05-08,Scott,Virginia,51169,7,2 +2020-05-09,Scott,Virginia,51169,7,2 +2020-05-10,Scott,Virginia,51169,7,2 +2020-05-11,Scott,Virginia,51169,7,2 +2020-05-12,Scott,Virginia,51169,7,2 +2020-05-13,Scott,Virginia,51169,7,2 +2020-05-14,Scott,Virginia,51169,7,2 +2020-05-15,Scott,Virginia,51169,7,2 +2020-05-16,Scott,Virginia,51169,7,2 +2020-05-17,Scott,Virginia,51169,7,2 +2020-05-18,Scott,Virginia,51169,7,2 +2020-05-19,Scott,Virginia,51169,7,2 +2020-05-20,Scott,Virginia,51169,7,2 +2020-05-21,Scott,Virginia,51169,8,2 +2020-05-22,Scott,Virginia,51169,7,2 +2020-05-23,Scott,Virginia,51169,7,2 +2020-05-24,Scott,Virginia,51169,7,2 +2020-05-25,Scott,Virginia,51169,7,2 +2020-05-26,Scott,Virginia,51169,7,2 +2020-05-27,Scott,Virginia,51169,7,2 +2020-05-28,Scott,Virginia,51169,7,2 +2020-05-29,Scott,Virginia,51169,7,2 +2020-05-30,Scott,Virginia,51169,7,2 +2020-05-31,Scott,Virginia,51169,7,2 +2020-06-01,Scott,Virginia,51169,7,2 +2020-06-02,Scott,Virginia,51169,7,2 +2020-06-03,Scott,Virginia,51169,7,2 +2020-06-04,Scott,Virginia,51169,7,2 +2020-06-05,Scott,Virginia,51169,7,2 +2020-06-06,Scott,Virginia,51169,7,2 +2020-06-07,Scott,Virginia,51169,7,2 +2020-06-08,Scott,Virginia,51169,7,2 +2020-06-09,Scott,Virginia,51169,7,2 +2020-06-10,Scott,Virginia,51169,7,2 +2020-06-11,Scott,Virginia,51169,7,2 +2020-06-12,Scott,Virginia,51169,7,2 +2020-06-13,Scott,Virginia,51169,7,2 +2020-06-14,Scott,Virginia,51169,7,2 +2020-06-15,Scott,Virginia,51169,8,2 +2020-06-16,Scott,Virginia,51169,8,2 +2020-06-17,Scott,Virginia,51169,8,2 +2020-06-18,Scott,Virginia,51169,8,2 +2020-06-19,Scott,Virginia,51169,8,2 +2020-06-20,Scott,Virginia,51169,8,2 +2020-06-21,Scott,Virginia,51169,8,2 +2020-06-22,Scott,Virginia,51169,8,2 +2020-06-23,Scott,Virginia,51169,9,2 +2020-06-24,Scott,Virginia,51169,9,2 +2020-06-25,Scott,Virginia,51169,9,2 +2020-06-26,Scott,Virginia,51169,9,2 +2020-06-27,Scott,Virginia,51169,9,2 +2020-06-28,Scott,Virginia,51169,10,2 +2020-06-29,Scott,Virginia,51169,10,2 +2020-06-30,Scott,Virginia,51169,10,2 +2020-07-01,Scott,Virginia,51169,10,2 +2020-07-02,Scott,Virginia,51169,10,2 +2020-07-03,Scott,Virginia,51169,10,2 +2020-07-04,Scott,Virginia,51169,10,2 +2020-07-05,Scott,Virginia,51169,11,2 +2020-07-06,Scott,Virginia,51169,11,2 +2020-07-07,Scott,Virginia,51169,11,2 +2020-07-08,Scott,Virginia,51169,11,2 +2020-07-09,Scott,Virginia,51169,11,2 +2020-03-25,Shenandoah,Virginia,51171,3,0 +2020-03-26,Shenandoah,Virginia,51171,3,0 +2020-03-27,Shenandoah,Virginia,51171,3,0 +2020-03-28,Shenandoah,Virginia,51171,3,0 +2020-03-29,Shenandoah,Virginia,51171,4,0 +2020-03-30,Shenandoah,Virginia,51171,6,0 +2020-03-31,Shenandoah,Virginia,51171,7,0 +2020-04-01,Shenandoah,Virginia,51171,8,0 +2020-04-02,Shenandoah,Virginia,51171,9,0 +2020-04-03,Shenandoah,Virginia,51171,10,0 +2020-04-04,Shenandoah,Virginia,51171,10,0 +2020-04-05,Shenandoah,Virginia,51171,12,0 +2020-04-06,Shenandoah,Virginia,51171,13,0 +2020-04-07,Shenandoah,Virginia,51171,12,0 +2020-04-08,Shenandoah,Virginia,51171,13,0 +2020-04-09,Shenandoah,Virginia,51171,15,0 +2020-04-10,Shenandoah,Virginia,51171,15,0 +2020-04-11,Shenandoah,Virginia,51171,16,1 +2020-04-12,Shenandoah,Virginia,51171,17,1 +2020-04-13,Shenandoah,Virginia,51171,17,1 +2020-04-14,Shenandoah,Virginia,51171,23,1 +2020-04-15,Shenandoah,Virginia,51171,27,1 +2020-04-16,Shenandoah,Virginia,51171,28,1 +2020-04-17,Shenandoah,Virginia,51171,33,1 +2020-04-18,Shenandoah,Virginia,51171,39,1 +2020-04-19,Shenandoah,Virginia,51171,39,1 +2020-04-20,Shenandoah,Virginia,51171,41,1 +2020-04-21,Shenandoah,Virginia,51171,45,1 +2020-04-22,Shenandoah,Virginia,51171,53,0 +2020-04-23,Shenandoah,Virginia,51171,58,1 +2020-04-24,Shenandoah,Virginia,51171,65,1 +2020-04-25,Shenandoah,Virginia,51171,72,1 +2020-04-26,Shenandoah,Virginia,51171,74,1 +2020-04-27,Shenandoah,Virginia,51171,78,2 +2020-04-28,Shenandoah,Virginia,51171,79,2 +2020-04-29,Shenandoah,Virginia,51171,95,2 +2020-04-30,Shenandoah,Virginia,51171,108,2 +2020-05-01,Shenandoah,Virginia,51171,120,2 +2020-05-02,Shenandoah,Virginia,51171,134,2 +2020-05-03,Shenandoah,Virginia,51171,145,2 +2020-05-04,Shenandoah,Virginia,51171,149,2 +2020-05-05,Shenandoah,Virginia,51171,165,3 +2020-05-06,Shenandoah,Virginia,51171,165,3 +2020-05-07,Shenandoah,Virginia,51171,213,3 +2020-05-08,Shenandoah,Virginia,51171,236,4 +2020-05-09,Shenandoah,Virginia,51171,242,6 +2020-05-10,Shenandoah,Virginia,51171,245,6 +2020-05-11,Shenandoah,Virginia,51171,250,6 +2020-05-12,Shenandoah,Virginia,51171,260,7 +2020-05-13,Shenandoah,Virginia,51171,271,8 +2020-05-14,Shenandoah,Virginia,51171,278,9 +2020-05-15,Shenandoah,Virginia,51171,285,10 +2020-05-16,Shenandoah,Virginia,51171,297,11 +2020-05-17,Shenandoah,Virginia,51171,303,11 +2020-05-18,Shenandoah,Virginia,51171,319,12 +2020-05-19,Shenandoah,Virginia,51171,329,12 +2020-05-20,Shenandoah,Virginia,51171,345,12 +2020-05-21,Shenandoah,Virginia,51171,355,12 +2020-05-22,Shenandoah,Virginia,51171,358,12 +2020-05-23,Shenandoah,Virginia,51171,365,16 +2020-05-24,Shenandoah,Virginia,51171,372,16 +2020-05-25,Shenandoah,Virginia,51171,376,17 +2020-05-26,Shenandoah,Virginia,51171,378,17 +2020-05-27,Shenandoah,Virginia,51171,394,17 +2020-05-28,Shenandoah,Virginia,51171,414,20 +2020-05-29,Shenandoah,Virginia,51171,429,21 +2020-05-30,Shenandoah,Virginia,51171,444,21 +2020-05-31,Shenandoah,Virginia,51171,448,21 +2020-06-01,Shenandoah,Virginia,51171,458,21 +2020-06-02,Shenandoah,Virginia,51171,465,22 +2020-06-03,Shenandoah,Virginia,51171,465,22 +2020-06-04,Shenandoah,Virginia,51171,470,22 +2020-06-05,Shenandoah,Virginia,51171,472,22 +2020-06-06,Shenandoah,Virginia,51171,476,22 +2020-06-07,Shenandoah,Virginia,51171,480,22 +2020-06-08,Shenandoah,Virginia,51171,484,24 +2020-06-09,Shenandoah,Virginia,51171,487,24 +2020-06-10,Shenandoah,Virginia,51171,492,25 +2020-06-11,Shenandoah,Virginia,51171,499,25 +2020-06-12,Shenandoah,Virginia,51171,505,26 +2020-06-13,Shenandoah,Virginia,51171,509,26 +2020-06-14,Shenandoah,Virginia,51171,510,26 +2020-06-15,Shenandoah,Virginia,51171,511,26 +2020-06-16,Shenandoah,Virginia,51171,516,27 +2020-06-17,Shenandoah,Virginia,51171,522,27 +2020-06-18,Shenandoah,Virginia,51171,530,27 +2020-06-19,Shenandoah,Virginia,51171,534,27 +2020-06-20,Shenandoah,Virginia,51171,536,27 +2020-06-21,Shenandoah,Virginia,51171,540,27 +2020-06-22,Shenandoah,Virginia,51171,542,27 +2020-06-23,Shenandoah,Virginia,51171,546,27 +2020-06-24,Shenandoah,Virginia,51171,547,27 +2020-06-25,Shenandoah,Virginia,51171,552,28 +2020-06-26,Shenandoah,Virginia,51171,552,28 +2020-06-27,Shenandoah,Virginia,51171,558,29 +2020-06-28,Shenandoah,Virginia,51171,558,29 +2020-06-29,Shenandoah,Virginia,51171,559,29 +2020-06-30,Shenandoah,Virginia,51171,562,29 +2020-07-01,Shenandoah,Virginia,51171,567,29 +2020-07-02,Shenandoah,Virginia,51171,582,29 +2020-07-03,Shenandoah,Virginia,51171,584,30 +2020-07-04,Shenandoah,Virginia,51171,587,31 +2020-07-05,Shenandoah,Virginia,51171,598,34 +2020-07-06,Shenandoah,Virginia,51171,598,34 +2020-07-07,Shenandoah,Virginia,51171,600,34 +2020-07-08,Shenandoah,Virginia,51171,601,34 +2020-07-09,Shenandoah,Virginia,51171,604,35 +2020-03-30,Smyth,Virginia,51173,1,0 +2020-03-31,Smyth,Virginia,51173,1,0 +2020-04-01,Smyth,Virginia,51173,2,0 +2020-04-02,Smyth,Virginia,51173,2,0 +2020-04-03,Smyth,Virginia,51173,2,0 +2020-04-04,Smyth,Virginia,51173,2,0 +2020-04-05,Smyth,Virginia,51173,2,0 +2020-04-06,Smyth,Virginia,51173,2,0 +2020-04-07,Smyth,Virginia,51173,3,0 +2020-04-08,Smyth,Virginia,51173,5,0 +2020-04-09,Smyth,Virginia,51173,8,0 +2020-04-10,Smyth,Virginia,51173,9,0 +2020-04-11,Smyth,Virginia,51173,9,0 +2020-04-12,Smyth,Virginia,51173,9,0 +2020-04-13,Smyth,Virginia,51173,11,0 +2020-04-14,Smyth,Virginia,51173,11,0 +2020-04-15,Smyth,Virginia,51173,11,0 +2020-04-16,Smyth,Virginia,51173,11,0 +2020-04-17,Smyth,Virginia,51173,11,0 +2020-04-18,Smyth,Virginia,51173,12,0 +2020-04-19,Smyth,Virginia,51173,12,0 +2020-04-20,Smyth,Virginia,51173,13,0 +2020-04-21,Smyth,Virginia,51173,13,0 +2020-04-22,Smyth,Virginia,51173,13,0 +2020-04-23,Smyth,Virginia,51173,13,0 +2020-04-24,Smyth,Virginia,51173,13,0 +2020-04-25,Smyth,Virginia,51173,13,0 +2020-04-26,Smyth,Virginia,51173,13,0 +2020-04-27,Smyth,Virginia,51173,13,0 +2020-04-28,Smyth,Virginia,51173,13,0 +2020-04-29,Smyth,Virginia,51173,13,0 +2020-04-30,Smyth,Virginia,51173,13,0 +2020-05-01,Smyth,Virginia,51173,13,0 +2020-05-02,Smyth,Virginia,51173,13,0 +2020-05-03,Smyth,Virginia,51173,13,0 +2020-05-04,Smyth,Virginia,51173,13,0 +2020-05-05,Smyth,Virginia,51173,13,0 +2020-05-06,Smyth,Virginia,51173,13,0 +2020-05-07,Smyth,Virginia,51173,13,0 +2020-05-08,Smyth,Virginia,51173,13,0 +2020-05-09,Smyth,Virginia,51173,13,0 +2020-05-10,Smyth,Virginia,51173,13,0 +2020-05-11,Smyth,Virginia,51173,13,0 +2020-05-12,Smyth,Virginia,51173,13,0 +2020-05-13,Smyth,Virginia,51173,15,0 +2020-05-14,Smyth,Virginia,51173,15,0 +2020-05-15,Smyth,Virginia,51173,15,0 +2020-05-16,Smyth,Virginia,51173,15,0 +2020-05-17,Smyth,Virginia,51173,15,0 +2020-05-18,Smyth,Virginia,51173,15,0 +2020-05-19,Smyth,Virginia,51173,15,0 +2020-05-20,Smyth,Virginia,51173,15,0 +2020-05-21,Smyth,Virginia,51173,15,0 +2020-05-22,Smyth,Virginia,51173,15,0 +2020-05-23,Smyth,Virginia,51173,15,0 +2020-05-24,Smyth,Virginia,51173,15,0 +2020-05-25,Smyth,Virginia,51173,15,0 +2020-05-26,Smyth,Virginia,51173,15,0 +2020-05-27,Smyth,Virginia,51173,15,0 +2020-05-28,Smyth,Virginia,51173,15,0 +2020-05-29,Smyth,Virginia,51173,15,0 +2020-05-30,Smyth,Virginia,51173,15,0 +2020-05-31,Smyth,Virginia,51173,15,0 +2020-06-01,Smyth,Virginia,51173,15,0 +2020-06-02,Smyth,Virginia,51173,15,0 +2020-06-03,Smyth,Virginia,51173,15,0 +2020-06-04,Smyth,Virginia,51173,15,0 +2020-06-05,Smyth,Virginia,51173,15,0 +2020-06-06,Smyth,Virginia,51173,15,0 +2020-06-07,Smyth,Virginia,51173,15,0 +2020-06-08,Smyth,Virginia,51173,15,0 +2020-06-09,Smyth,Virginia,51173,15,0 +2020-06-10,Smyth,Virginia,51173,15,0 +2020-06-11,Smyth,Virginia,51173,16,0 +2020-06-12,Smyth,Virginia,51173,18,0 +2020-06-13,Smyth,Virginia,51173,18,0 +2020-06-14,Smyth,Virginia,51173,18,0 +2020-06-15,Smyth,Virginia,51173,20,0 +2020-06-16,Smyth,Virginia,51173,22,0 +2020-06-17,Smyth,Virginia,51173,26,0 +2020-06-18,Smyth,Virginia,51173,28,0 +2020-06-19,Smyth,Virginia,51173,30,0 +2020-06-20,Smyth,Virginia,51173,33,0 +2020-06-21,Smyth,Virginia,51173,32,0 +2020-06-22,Smyth,Virginia,51173,33,0 +2020-06-23,Smyth,Virginia,51173,34,0 +2020-06-24,Smyth,Virginia,51173,34,1 +2020-06-25,Smyth,Virginia,51173,35,1 +2020-06-26,Smyth,Virginia,51173,33,1 +2020-06-27,Smyth,Virginia,51173,33,1 +2020-06-28,Smyth,Virginia,51173,35,1 +2020-06-29,Smyth,Virginia,51173,36,1 +2020-06-30,Smyth,Virginia,51173,36,1 +2020-07-01,Smyth,Virginia,51173,39,1 +2020-07-02,Smyth,Virginia,51173,40,1 +2020-07-03,Smyth,Virginia,51173,42,1 +2020-07-04,Smyth,Virginia,51173,42,1 +2020-07-05,Smyth,Virginia,51173,42,1 +2020-07-06,Smyth,Virginia,51173,42,1 +2020-07-07,Smyth,Virginia,51173,42,1 +2020-07-08,Smyth,Virginia,51173,42,1 +2020-07-09,Smyth,Virginia,51173,42,1 +2020-03-26,Southampton,Virginia,51175,1,0 +2020-03-27,Southampton,Virginia,51175,1,0 +2020-03-28,Southampton,Virginia,51175,1,0 +2020-03-29,Southampton,Virginia,51175,1,0 +2020-03-30,Southampton,Virginia,51175,1,0 +2020-03-31,Southampton,Virginia,51175,1,0 +2020-04-01,Southampton,Virginia,51175,1,0 +2020-04-02,Southampton,Virginia,51175,2,0 +2020-04-03,Southampton,Virginia,51175,4,0 +2020-04-04,Southampton,Virginia,51175,5,0 +2020-04-05,Southampton,Virginia,51175,5,0 +2020-04-06,Southampton,Virginia,51175,5,0 +2020-04-07,Southampton,Virginia,51175,5,0 +2020-04-08,Southampton,Virginia,51175,5,0 +2020-04-09,Southampton,Virginia,51175,5,0 +2020-04-10,Southampton,Virginia,51175,5,0 +2020-04-11,Southampton,Virginia,51175,5,0 +2020-04-12,Southampton,Virginia,51175,5,0 +2020-04-13,Southampton,Virginia,51175,5,0 +2020-04-14,Southampton,Virginia,51175,6,0 +2020-04-15,Southampton,Virginia,51175,6,0 +2020-04-16,Southampton,Virginia,51175,6,0 +2020-04-17,Southampton,Virginia,51175,7,0 +2020-04-18,Southampton,Virginia,51175,9,0 +2020-04-19,Southampton,Virginia,51175,16,0 +2020-04-20,Southampton,Virginia,51175,17,0 +2020-04-21,Southampton,Virginia,51175,18,1 +2020-04-22,Southampton,Virginia,51175,19,1 +2020-04-23,Southampton,Virginia,51175,71,1 +2020-04-24,Southampton,Virginia,51175,75,1 +2020-04-25,Southampton,Virginia,51175,75,1 +2020-04-26,Southampton,Virginia,51175,115,1 +2020-04-27,Southampton,Virginia,51175,115,1 +2020-04-28,Southampton,Virginia,51175,115,1 +2020-04-29,Southampton,Virginia,51175,115,1 +2020-04-30,Southampton,Virginia,51175,125,1 +2020-05-01,Southampton,Virginia,51175,125,1 +2020-05-02,Southampton,Virginia,51175,125,1 +2020-05-03,Southampton,Virginia,51175,127,1 +2020-05-04,Southampton,Virginia,51175,127,1 +2020-05-05,Southampton,Virginia,51175,128,1 +2020-05-06,Southampton,Virginia,51175,128,1 +2020-05-07,Southampton,Virginia,51175,128,1 +2020-05-08,Southampton,Virginia,51175,129,1 +2020-05-09,Southampton,Virginia,51175,131,1 +2020-05-10,Southampton,Virginia,51175,131,1 +2020-05-11,Southampton,Virginia,51175,131,1 +2020-05-12,Southampton,Virginia,51175,131,1 +2020-05-13,Southampton,Virginia,51175,132,2 +2020-05-14,Southampton,Virginia,51175,134,2 +2020-05-15,Southampton,Virginia,51175,135,2 +2020-05-16,Southampton,Virginia,51175,135,2 +2020-05-17,Southampton,Virginia,51175,135,2 +2020-05-18,Southampton,Virginia,51175,137,2 +2020-05-19,Southampton,Virginia,51175,137,2 +2020-05-20,Southampton,Virginia,51175,137,2 +2020-05-21,Southampton,Virginia,51175,138,2 +2020-05-22,Southampton,Virginia,51175,137,2 +2020-05-23,Southampton,Virginia,51175,141,2 +2020-05-24,Southampton,Virginia,51175,143,2 +2020-05-25,Southampton,Virginia,51175,143,2 +2020-05-26,Southampton,Virginia,51175,143,2 +2020-05-27,Southampton,Virginia,51175,144,2 +2020-05-28,Southampton,Virginia,51175,146,2 +2020-05-29,Southampton,Virginia,51175,146,2 +2020-05-30,Southampton,Virginia,51175,146,2 +2020-05-31,Southampton,Virginia,51175,147,2 +2020-06-01,Southampton,Virginia,51175,147,2 +2020-06-02,Southampton,Virginia,51175,149,2 +2020-06-03,Southampton,Virginia,51175,150,2 +2020-06-04,Southampton,Virginia,51175,150,2 +2020-06-05,Southampton,Virginia,51175,152,2 +2020-06-06,Southampton,Virginia,51175,152,2 +2020-06-07,Southampton,Virginia,51175,153,2 +2020-06-08,Southampton,Virginia,51175,153,2 +2020-06-09,Southampton,Virginia,51175,153,2 +2020-06-10,Southampton,Virginia,51175,154,2 +2020-06-11,Southampton,Virginia,51175,155,2 +2020-06-12,Southampton,Virginia,51175,155,2 +2020-06-13,Southampton,Virginia,51175,155,2 +2020-06-14,Southampton,Virginia,51175,155,2 +2020-06-15,Southampton,Virginia,51175,155,2 +2020-06-16,Southampton,Virginia,51175,155,2 +2020-06-17,Southampton,Virginia,51175,154,2 +2020-06-18,Southampton,Virginia,51175,154,2 +2020-06-19,Southampton,Virginia,51175,154,2 +2020-06-20,Southampton,Virginia,51175,154,2 +2020-06-21,Southampton,Virginia,51175,154,2 +2020-06-22,Southampton,Virginia,51175,154,2 +2020-06-23,Southampton,Virginia,51175,154,2 +2020-06-24,Southampton,Virginia,51175,155,2 +2020-06-25,Southampton,Virginia,51175,155,2 +2020-06-26,Southampton,Virginia,51175,155,2 +2020-06-27,Southampton,Virginia,51175,155,2 +2020-06-28,Southampton,Virginia,51175,155,2 +2020-06-29,Southampton,Virginia,51175,155,2 +2020-06-30,Southampton,Virginia,51175,156,4 +2020-07-01,Southampton,Virginia,51175,157,5 +2020-07-02,Southampton,Virginia,51175,160,6 +2020-07-03,Southampton,Virginia,51175,162,7 +2020-07-04,Southampton,Virginia,51175,163,7 +2020-07-05,Southampton,Virginia,51175,163,7 +2020-07-06,Southampton,Virginia,51175,163,7 +2020-07-07,Southampton,Virginia,51175,165,8 +2020-07-08,Southampton,Virginia,51175,166,8 +2020-07-09,Southampton,Virginia,51175,168,9 +2020-03-14,Spotsylvania,Virginia,51177,1,0 +2020-03-15,Spotsylvania,Virginia,51177,1,0 +2020-03-16,Spotsylvania,Virginia,51177,1,0 +2020-03-17,Spotsylvania,Virginia,51177,1,0 +2020-03-18,Spotsylvania,Virginia,51177,1,0 +2020-03-19,Spotsylvania,Virginia,51177,1,0 +2020-03-20,Spotsylvania,Virginia,51177,1,0 +2020-03-21,Spotsylvania,Virginia,51177,1,0 +2020-03-22,Spotsylvania,Virginia,51177,2,0 +2020-03-23,Spotsylvania,Virginia,51177,2,0 +2020-03-24,Spotsylvania,Virginia,51177,2,0 +2020-03-25,Spotsylvania,Virginia,51177,3,0 +2020-03-26,Spotsylvania,Virginia,51177,3,0 +2020-03-27,Spotsylvania,Virginia,51177,3,0 +2020-03-28,Spotsylvania,Virginia,51177,3,0 +2020-03-29,Spotsylvania,Virginia,51177,5,0 +2020-03-30,Spotsylvania,Virginia,51177,6,0 +2020-03-31,Spotsylvania,Virginia,51177,7,0 +2020-04-01,Spotsylvania,Virginia,51177,8,0 +2020-04-02,Spotsylvania,Virginia,51177,9,0 +2020-04-03,Spotsylvania,Virginia,51177,11,0 +2020-04-04,Spotsylvania,Virginia,51177,18,0 +2020-04-05,Spotsylvania,Virginia,51177,24,0 +2020-04-06,Spotsylvania,Virginia,51177,26,0 +2020-04-07,Spotsylvania,Virginia,51177,29,0 +2020-04-08,Spotsylvania,Virginia,51177,31,0 +2020-04-09,Spotsylvania,Virginia,51177,36,0 +2020-04-10,Spotsylvania,Virginia,51177,43,0 +2020-04-11,Spotsylvania,Virginia,51177,47,0 +2020-04-12,Spotsylvania,Virginia,51177,50,0 +2020-04-13,Spotsylvania,Virginia,51177,51,0 +2020-04-14,Spotsylvania,Virginia,51177,56,0 +2020-04-15,Spotsylvania,Virginia,51177,60,0 +2020-04-16,Spotsylvania,Virginia,51177,62,0 +2020-04-17,Spotsylvania,Virginia,51177,69,0 +2020-04-18,Spotsylvania,Virginia,51177,72,0 +2020-04-19,Spotsylvania,Virginia,51177,74,0 +2020-04-20,Spotsylvania,Virginia,51177,77,0 +2020-04-21,Spotsylvania,Virginia,51177,79,2 +2020-04-22,Spotsylvania,Virginia,51177,83,3 +2020-04-23,Spotsylvania,Virginia,51177,94,3 +2020-04-24,Spotsylvania,Virginia,51177,97,3 +2020-04-25,Spotsylvania,Virginia,51177,101,3 +2020-04-26,Spotsylvania,Virginia,51177,107,3 +2020-04-27,Spotsylvania,Virginia,51177,119,3 +2020-04-28,Spotsylvania,Virginia,51177,126,3 +2020-04-29,Spotsylvania,Virginia,51177,131,3 +2020-04-30,Spotsylvania,Virginia,51177,143,3 +2020-05-01,Spotsylvania,Virginia,51177,155,4 +2020-05-02,Spotsylvania,Virginia,51177,174,4 +2020-05-03,Spotsylvania,Virginia,51177,186,4 +2020-05-04,Spotsylvania,Virginia,51177,195,4 +2020-05-05,Spotsylvania,Virginia,51177,206,4 +2020-05-06,Spotsylvania,Virginia,51177,206,4 +2020-05-07,Spotsylvania,Virginia,51177,230,4 +2020-05-08,Spotsylvania,Virginia,51177,233,4 +2020-05-09,Spotsylvania,Virginia,51177,239,4 +2020-05-10,Spotsylvania,Virginia,51177,248,4 +2020-05-11,Spotsylvania,Virginia,51177,257,4 +2020-05-12,Spotsylvania,Virginia,51177,261,4 +2020-05-13,Spotsylvania,Virginia,51177,270,4 +2020-05-14,Spotsylvania,Virginia,51177,282,4 +2020-05-15,Spotsylvania,Virginia,51177,291,4 +2020-05-16,Spotsylvania,Virginia,51177,304,4 +2020-05-17,Spotsylvania,Virginia,51177,312,4 +2020-05-18,Spotsylvania,Virginia,51177,319,4 +2020-05-19,Spotsylvania,Virginia,51177,339,4 +2020-05-20,Spotsylvania,Virginia,51177,351,4 +2020-05-21,Spotsylvania,Virginia,51177,366,4 +2020-05-22,Spotsylvania,Virginia,51177,373,4 +2020-05-23,Spotsylvania,Virginia,51177,386,4 +2020-05-24,Spotsylvania,Virginia,51177,401,5 +2020-05-25,Spotsylvania,Virginia,51177,422,6 +2020-05-26,Spotsylvania,Virginia,51177,463,6 +2020-05-27,Spotsylvania,Virginia,51177,474,6 +2020-05-28,Spotsylvania,Virginia,51177,487,6 +2020-05-29,Spotsylvania,Virginia,51177,500,7 +2020-05-30,Spotsylvania,Virginia,51177,524,7 +2020-05-31,Spotsylvania,Virginia,51177,556,7 +2020-06-01,Spotsylvania,Virginia,51177,571,7 +2020-06-02,Spotsylvania,Virginia,51177,586,7 +2020-06-03,Spotsylvania,Virginia,51177,590,7 +2020-06-04,Spotsylvania,Virginia,51177,593,7 +2020-06-05,Spotsylvania,Virginia,51177,615,7 +2020-06-06,Spotsylvania,Virginia,51177,634,7 +2020-06-07,Spotsylvania,Virginia,51177,695,7 +2020-06-08,Spotsylvania,Virginia,51177,707,7 +2020-06-09,Spotsylvania,Virginia,51177,712,9 +2020-06-10,Spotsylvania,Virginia,51177,723,10 +2020-06-11,Spotsylvania,Virginia,51177,729,11 +2020-06-12,Spotsylvania,Virginia,51177,739,12 +2020-06-13,Spotsylvania,Virginia,51177,752,13 +2020-06-14,Spotsylvania,Virginia,51177,813,15 +2020-06-15,Spotsylvania,Virginia,51177,837,16 +2020-06-16,Spotsylvania,Virginia,51177,849,17 +2020-06-17,Spotsylvania,Virginia,51177,858,17 +2020-06-18,Spotsylvania,Virginia,51177,862,17 +2020-06-19,Spotsylvania,Virginia,51177,874,19 +2020-06-20,Spotsylvania,Virginia,51177,891,20 +2020-06-21,Spotsylvania,Virginia,51177,902,20 +2020-06-22,Spotsylvania,Virginia,51177,909,21 +2020-06-23,Spotsylvania,Virginia,51177,917,24 +2020-06-24,Spotsylvania,Virginia,51177,924,26 +2020-06-25,Spotsylvania,Virginia,51177,931,26 +2020-06-26,Spotsylvania,Virginia,51177,945,28 +2020-06-27,Spotsylvania,Virginia,51177,975,29 +2020-06-28,Spotsylvania,Virginia,51177,981,29 +2020-06-29,Spotsylvania,Virginia,51177,985,29 +2020-06-30,Spotsylvania,Virginia,51177,993,29 +2020-07-01,Spotsylvania,Virginia,51177,994,30 +2020-07-02,Spotsylvania,Virginia,51177,1001,31 +2020-07-03,Spotsylvania,Virginia,51177,1010,31 +2020-07-04,Spotsylvania,Virginia,51177,1027,31 +2020-07-05,Spotsylvania,Virginia,51177,1036,31 +2020-07-06,Spotsylvania,Virginia,51177,1038,31 +2020-07-07,Spotsylvania,Virginia,51177,1048,31 +2020-07-08,Spotsylvania,Virginia,51177,1053,31 +2020-07-09,Spotsylvania,Virginia,51177,1060,31 +2020-03-16,Stafford,Virginia,51179,1,0 +2020-03-17,Stafford,Virginia,51179,1,0 +2020-03-18,Stafford,Virginia,51179,2,0 +2020-03-19,Stafford,Virginia,51179,2,0 +2020-03-20,Stafford,Virginia,51179,2,0 +2020-03-21,Stafford,Virginia,51179,2,0 +2020-03-22,Stafford,Virginia,51179,5,0 +2020-03-23,Stafford,Virginia,51179,6,0 +2020-03-24,Stafford,Virginia,51179,6,0 +2020-03-25,Stafford,Virginia,51179,6,0 +2020-03-26,Stafford,Virginia,51179,11,0 +2020-03-27,Stafford,Virginia,51179,11,0 +2020-03-28,Stafford,Virginia,51179,11,0 +2020-03-29,Stafford,Virginia,51179,13,0 +2020-03-30,Stafford,Virginia,51179,20,0 +2020-03-31,Stafford,Virginia,51179,24,0 +2020-04-01,Stafford,Virginia,51179,28,0 +2020-04-02,Stafford,Virginia,51179,28,0 +2020-04-03,Stafford,Virginia,51179,29,0 +2020-04-04,Stafford,Virginia,51179,38,0 +2020-04-05,Stafford,Virginia,51179,41,0 +2020-04-06,Stafford,Virginia,51179,43,0 +2020-04-07,Stafford,Virginia,51179,49,0 +2020-04-08,Stafford,Virginia,51179,48,0 +2020-04-09,Stafford,Virginia,51179,54,0 +2020-04-10,Stafford,Virginia,51179,60,0 +2020-04-11,Stafford,Virginia,51179,67,0 +2020-04-12,Stafford,Virginia,51179,72,1 +2020-04-13,Stafford,Virginia,51179,87,1 +2020-04-14,Stafford,Virginia,51179,95,1 +2020-04-15,Stafford,Virginia,51179,108,1 +2020-04-16,Stafford,Virginia,51179,120,1 +2020-04-17,Stafford,Virginia,51179,128,1 +2020-04-18,Stafford,Virginia,51179,143,1 +2020-04-19,Stafford,Virginia,51179,152,1 +2020-04-20,Stafford,Virginia,51179,161,1 +2020-04-21,Stafford,Virginia,51179,164,2 +2020-04-22,Stafford,Virginia,51179,170,2 +2020-04-23,Stafford,Virginia,51179,180,2 +2020-04-24,Stafford,Virginia,51179,193,2 +2020-04-25,Stafford,Virginia,51179,198,2 +2020-04-26,Stafford,Virginia,51179,213,2 +2020-04-27,Stafford,Virginia,51179,218,2 +2020-04-28,Stafford,Virginia,51179,221,2 +2020-04-29,Stafford,Virginia,51179,225,2 +2020-04-30,Stafford,Virginia,51179,240,2 +2020-05-01,Stafford,Virginia,51179,251,2 +2020-05-02,Stafford,Virginia,51179,262,2 +2020-05-03,Stafford,Virginia,51179,271,2 +2020-05-04,Stafford,Virginia,51179,288,2 +2020-05-05,Stafford,Virginia,51179,308,2 +2020-05-06,Stafford,Virginia,51179,308,2 +2020-05-07,Stafford,Virginia,51179,334,2 +2020-05-08,Stafford,Virginia,51179,344,2 +2020-05-09,Stafford,Virginia,51179,354,2 +2020-05-10,Stafford,Virginia,51179,374,2 +2020-05-11,Stafford,Virginia,51179,384,2 +2020-05-12,Stafford,Virginia,51179,396,4 +2020-05-13,Stafford,Virginia,51179,413,4 +2020-05-14,Stafford,Virginia,51179,426,4 +2020-05-15,Stafford,Virginia,51179,442,4 +2020-05-16,Stafford,Virginia,51179,458,4 +2020-05-17,Stafford,Virginia,51179,467,4 +2020-05-18,Stafford,Virginia,51179,484,4 +2020-05-19,Stafford,Virginia,51179,501,4 +2020-05-20,Stafford,Virginia,51179,514,4 +2020-05-21,Stafford,Virginia,51179,540,4 +2020-05-22,Stafford,Virginia,51179,552,4 +2020-05-23,Stafford,Virginia,51179,569,4 +2020-05-24,Stafford,Virginia,51179,581,4 +2020-05-25,Stafford,Virginia,51179,599,4 +2020-05-26,Stafford,Virginia,51179,642,4 +2020-05-27,Stafford,Virginia,51179,657,4 +2020-05-28,Stafford,Virginia,51179,672,4 +2020-05-29,Stafford,Virginia,51179,681,4 +2020-05-30,Stafford,Virginia,51179,702,4 +2020-05-31,Stafford,Virginia,51179,713,4 +2020-06-01,Stafford,Virginia,51179,722,5 +2020-06-02,Stafford,Virginia,51179,733,5 +2020-06-03,Stafford,Virginia,51179,738,5 +2020-06-04,Stafford,Virginia,51179,742,5 +2020-06-05,Stafford,Virginia,51179,750,5 +2020-06-06,Stafford,Virginia,51179,765,5 +2020-06-07,Stafford,Virginia,51179,803,5 +2020-06-08,Stafford,Virginia,51179,815,5 +2020-06-09,Stafford,Virginia,51179,824,5 +2020-06-10,Stafford,Virginia,51179,831,5 +2020-06-11,Stafford,Virginia,51179,841,5 +2020-06-12,Stafford,Virginia,51179,862,5 +2020-06-13,Stafford,Virginia,51179,877,5 +2020-06-14,Stafford,Virginia,51179,887,5 +2020-06-15,Stafford,Virginia,51179,893,5 +2020-06-16,Stafford,Virginia,51179,900,5 +2020-06-17,Stafford,Virginia,51179,906,5 +2020-06-18,Stafford,Virginia,51179,917,5 +2020-06-19,Stafford,Virginia,51179,921,5 +2020-06-20,Stafford,Virginia,51179,920,5 +2020-06-21,Stafford,Virginia,51179,924,5 +2020-06-22,Stafford,Virginia,51179,930,5 +2020-06-23,Stafford,Virginia,51179,936,5 +2020-06-24,Stafford,Virginia,51179,949,5 +2020-06-25,Stafford,Virginia,51179,954,5 +2020-06-26,Stafford,Virginia,51179,965,5 +2020-06-27,Stafford,Virginia,51179,974,5 +2020-06-28,Stafford,Virginia,51179,983,5 +2020-06-29,Stafford,Virginia,51179,985,5 +2020-06-30,Stafford,Virginia,51179,988,5 +2020-07-01,Stafford,Virginia,51179,990,5 +2020-07-02,Stafford,Virginia,51179,1000,5 +2020-07-03,Stafford,Virginia,51179,998,5 +2020-07-04,Stafford,Virginia,51179,1008,5 +2020-07-05,Stafford,Virginia,51179,1011,5 +2020-07-06,Stafford,Virginia,51179,1012,5 +2020-07-07,Stafford,Virginia,51179,1022,5 +2020-07-08,Stafford,Virginia,51179,1029,5 +2020-07-09,Stafford,Virginia,51179,1038,6 +2020-03-31,Surry,Virginia,51181,1,0 +2020-04-01,Surry,Virginia,51181,1,0 +2020-04-02,Surry,Virginia,51181,1,0 +2020-04-03,Surry,Virginia,51181,3,0 +2020-04-04,Surry,Virginia,51181,3,0 +2020-04-05,Surry,Virginia,51181,3,0 +2020-04-06,Surry,Virginia,51181,3,0 +2020-04-07,Surry,Virginia,51181,3,0 +2020-04-08,Surry,Virginia,51181,3,0 +2020-04-09,Surry,Virginia,51181,3,0 +2020-04-10,Surry,Virginia,51181,3,0 +2020-04-11,Surry,Virginia,51181,3,0 +2020-04-12,Surry,Virginia,51181,3,0 +2020-04-13,Surry,Virginia,51181,3,0 +2020-04-14,Surry,Virginia,51181,3,0 +2020-04-15,Surry,Virginia,51181,3,0 +2020-04-16,Surry,Virginia,51181,3,0 +2020-04-17,Surry,Virginia,51181,3,0 +2020-04-18,Surry,Virginia,51181,3,0 +2020-04-19,Surry,Virginia,51181,3,0 +2020-04-20,Surry,Virginia,51181,4,0 +2020-04-21,Surry,Virginia,51181,4,1 +2020-04-22,Surry,Virginia,51181,4,1 +2020-04-23,Surry,Virginia,51181,4,1 +2020-04-24,Surry,Virginia,51181,4,1 +2020-04-25,Surry,Virginia,51181,4,1 +2020-04-26,Surry,Virginia,51181,4,1 +2020-04-27,Surry,Virginia,51181,4,1 +2020-04-28,Surry,Virginia,51181,4,1 +2020-04-29,Surry,Virginia,51181,4,1 +2020-04-30,Surry,Virginia,51181,4,1 +2020-05-01,Surry,Virginia,51181,4,1 +2020-05-02,Surry,Virginia,51181,4,1 +2020-05-03,Surry,Virginia,51181,4,1 +2020-05-04,Surry,Virginia,51181,4,1 +2020-05-05,Surry,Virginia,51181,4,1 +2020-05-06,Surry,Virginia,51181,4,1 +2020-05-07,Surry,Virginia,51181,4,1 +2020-05-08,Surry,Virginia,51181,4,1 +2020-05-09,Surry,Virginia,51181,5,1 +2020-05-10,Surry,Virginia,51181,5,1 +2020-05-11,Surry,Virginia,51181,5,1 +2020-05-12,Surry,Virginia,51181,6,1 +2020-05-13,Surry,Virginia,51181,6,1 +2020-05-14,Surry,Virginia,51181,6,1 +2020-05-15,Surry,Virginia,51181,6,1 +2020-05-16,Surry,Virginia,51181,6,1 +2020-05-17,Surry,Virginia,51181,6,1 +2020-05-18,Surry,Virginia,51181,6,1 +2020-05-19,Surry,Virginia,51181,6,1 +2020-05-20,Surry,Virginia,51181,6,1 +2020-05-21,Surry,Virginia,51181,6,1 +2020-05-22,Surry,Virginia,51181,6,1 +2020-05-23,Surry,Virginia,51181,6,1 +2020-05-24,Surry,Virginia,51181,6,1 +2020-05-25,Surry,Virginia,51181,6,1 +2020-05-26,Surry,Virginia,51181,7,1 +2020-05-27,Surry,Virginia,51181,8,1 +2020-05-28,Surry,Virginia,51181,9,1 +2020-05-29,Surry,Virginia,51181,10,1 +2020-05-30,Surry,Virginia,51181,10,1 +2020-05-31,Surry,Virginia,51181,10,1 +2020-06-01,Surry,Virginia,51181,10,1 +2020-06-02,Surry,Virginia,51181,11,1 +2020-06-03,Surry,Virginia,51181,11,1 +2020-06-04,Surry,Virginia,51181,10,1 +2020-06-05,Surry,Virginia,51181,10,1 +2020-06-06,Surry,Virginia,51181,10,1 +2020-06-07,Surry,Virginia,51181,10,1 +2020-06-08,Surry,Virginia,51181,10,1 +2020-06-09,Surry,Virginia,51181,10,1 +2020-06-10,Surry,Virginia,51181,10,1 +2020-06-11,Surry,Virginia,51181,11,1 +2020-06-12,Surry,Virginia,51181,13,1 +2020-06-13,Surry,Virginia,51181,13,1 +2020-06-14,Surry,Virginia,51181,13,1 +2020-06-15,Surry,Virginia,51181,13,1 +2020-06-16,Surry,Virginia,51181,13,1 +2020-06-17,Surry,Virginia,51181,13,1 +2020-06-18,Surry,Virginia,51181,13,1 +2020-06-19,Surry,Virginia,51181,13,1 +2020-06-20,Surry,Virginia,51181,13,1 +2020-06-21,Surry,Virginia,51181,13,1 +2020-06-22,Surry,Virginia,51181,13,1 +2020-06-23,Surry,Virginia,51181,13,1 +2020-06-24,Surry,Virginia,51181,14,1 +2020-06-25,Surry,Virginia,51181,14,1 +2020-06-26,Surry,Virginia,51181,14,1 +2020-06-27,Surry,Virginia,51181,14,1 +2020-06-28,Surry,Virginia,51181,14,1 +2020-06-29,Surry,Virginia,51181,14,1 +2020-06-30,Surry,Virginia,51181,15,1 +2020-07-01,Surry,Virginia,51181,16,1 +2020-07-02,Surry,Virginia,51181,16,1 +2020-07-03,Surry,Virginia,51181,16,1 +2020-07-04,Surry,Virginia,51181,17,1 +2020-07-05,Surry,Virginia,51181,17,1 +2020-07-06,Surry,Virginia,51181,17,1 +2020-07-07,Surry,Virginia,51181,17,1 +2020-07-08,Surry,Virginia,51181,17,1 +2020-07-09,Surry,Virginia,51181,17,1 +2020-04-01,Sussex,Virginia,51183,1,0 +2020-04-02,Sussex,Virginia,51183,1,0 +2020-04-03,Sussex,Virginia,51183,2,0 +2020-04-04,Sussex,Virginia,51183,3,0 +2020-04-05,Sussex,Virginia,51183,4,0 +2020-04-06,Sussex,Virginia,51183,4,0 +2020-04-07,Sussex,Virginia,51183,5,0 +2020-04-08,Sussex,Virginia,51183,6,0 +2020-04-09,Sussex,Virginia,51183,6,0 +2020-04-10,Sussex,Virginia,51183,8,0 +2020-04-11,Sussex,Virginia,51183,8,0 +2020-04-12,Sussex,Virginia,51183,8,0 +2020-04-13,Sussex,Virginia,51183,8,0 +2020-04-14,Sussex,Virginia,51183,8,0 +2020-04-15,Sussex,Virginia,51183,10,0 +2020-04-16,Sussex,Virginia,51183,9,0 +2020-04-17,Sussex,Virginia,51183,11,0 +2020-04-18,Sussex,Virginia,51183,11,0 +2020-04-19,Sussex,Virginia,51183,11,0 +2020-04-20,Sussex,Virginia,51183,12,0 +2020-04-21,Sussex,Virginia,51183,23,1 +2020-04-22,Sussex,Virginia,51183,23,1 +2020-04-23,Sussex,Virginia,51183,25,1 +2020-04-24,Sussex,Virginia,51183,28,1 +2020-04-25,Sussex,Virginia,51183,28,1 +2020-04-26,Sussex,Virginia,51183,28,1 +2020-04-27,Sussex,Virginia,51183,30,1 +2020-04-28,Sussex,Virginia,51183,30,1 +2020-04-29,Sussex,Virginia,51183,30,1 +2020-04-30,Sussex,Virginia,51183,31,1 +2020-05-01,Sussex,Virginia,51183,31,1 +2020-05-02,Sussex,Virginia,51183,31,1 +2020-05-03,Sussex,Virginia,51183,31,1 +2020-05-04,Sussex,Virginia,51183,32,1 +2020-05-05,Sussex,Virginia,51183,32,1 +2020-05-06,Sussex,Virginia,51183,32,1 +2020-05-07,Sussex,Virginia,51183,32,1 +2020-05-08,Sussex,Virginia,51183,32,1 +2020-05-09,Sussex,Virginia,51183,32,1 +2020-05-10,Sussex,Virginia,51183,33,1 +2020-05-11,Sussex,Virginia,51183,34,1 +2020-05-12,Sussex,Virginia,51183,38,1 +2020-05-13,Sussex,Virginia,51183,38,1 +2020-05-14,Sussex,Virginia,51183,53,1 +2020-05-15,Sussex,Virginia,51183,67,1 +2020-05-16,Sussex,Virginia,51183,80,1 +2020-05-17,Sussex,Virginia,51183,80,1 +2020-05-18,Sussex,Virginia,51183,91,1 +2020-05-19,Sussex,Virginia,51183,98,1 +2020-05-20,Sussex,Virginia,51183,99,1 +2020-05-21,Sussex,Virginia,51183,100,1 +2020-05-22,Sussex,Virginia,51183,100,1 +2020-05-23,Sussex,Virginia,51183,114,1 +2020-05-24,Sussex,Virginia,51183,114,1 +2020-05-25,Sussex,Virginia,51183,114,1 +2020-05-26,Sussex,Virginia,51183,135,1 +2020-05-27,Sussex,Virginia,51183,138,1 +2020-05-28,Sussex,Virginia,51183,142,2 +2020-05-29,Sussex,Virginia,51183,151,2 +2020-05-30,Sussex,Virginia,51183,154,2 +2020-05-31,Sussex,Virginia,51183,154,2 +2020-06-01,Sussex,Virginia,51183,161,2 +2020-06-02,Sussex,Virginia,51183,161,2 +2020-06-03,Sussex,Virginia,51183,165,2 +2020-06-04,Sussex,Virginia,51183,173,2 +2020-06-05,Sussex,Virginia,51183,174,2 +2020-06-06,Sussex,Virginia,51183,175,2 +2020-06-07,Sussex,Virginia,51183,175,2 +2020-06-08,Sussex,Virginia,51183,175,2 +2020-06-09,Sussex,Virginia,51183,175,2 +2020-06-10,Sussex,Virginia,51183,175,2 +2020-06-11,Sussex,Virginia,51183,176,2 +2020-06-12,Sussex,Virginia,51183,177,2 +2020-06-13,Sussex,Virginia,51183,178,2 +2020-06-14,Sussex,Virginia,51183,181,2 +2020-06-15,Sussex,Virginia,51183,183,2 +2020-06-16,Sussex,Virginia,51183,183,2 +2020-06-17,Sussex,Virginia,51183,184,2 +2020-06-18,Sussex,Virginia,51183,185,2 +2020-06-19,Sussex,Virginia,51183,185,2 +2020-06-20,Sussex,Virginia,51183,185,2 +2020-06-21,Sussex,Virginia,51183,185,2 +2020-06-22,Sussex,Virginia,51183,186,2 +2020-06-23,Sussex,Virginia,51183,187,2 +2020-06-24,Sussex,Virginia,51183,191,2 +2020-06-25,Sussex,Virginia,51183,193,2 +2020-06-26,Sussex,Virginia,51183,194,2 +2020-06-27,Sussex,Virginia,51183,195,2 +2020-06-28,Sussex,Virginia,51183,195,2 +2020-06-29,Sussex,Virginia,51183,195,2 +2020-06-30,Sussex,Virginia,51183,194,2 +2020-07-01,Sussex,Virginia,51183,200,3 +2020-07-02,Sussex,Virginia,51183,205,4 +2020-07-03,Sussex,Virginia,51183,208,5 +2020-07-04,Sussex,Virginia,51183,209,5 +2020-07-05,Sussex,Virginia,51183,209,5 +2020-07-06,Sussex,Virginia,51183,210,5 +2020-07-07,Sussex,Virginia,51183,211,5 +2020-07-08,Sussex,Virginia,51183,212,5 +2020-07-09,Sussex,Virginia,51183,210,7 +2020-03-29,Tazewell,Virginia,51185,1,0 +2020-03-30,Tazewell,Virginia,51185,2,0 +2020-03-31,Tazewell,Virginia,51185,2,0 +2020-04-01,Tazewell,Virginia,51185,2,0 +2020-04-02,Tazewell,Virginia,51185,2,0 +2020-04-03,Tazewell,Virginia,51185,2,0 +2020-04-04,Tazewell,Virginia,51185,2,0 +2020-04-05,Tazewell,Virginia,51185,2,0 +2020-04-06,Tazewell,Virginia,51185,3,0 +2020-04-07,Tazewell,Virginia,51185,4,0 +2020-04-08,Tazewell,Virginia,51185,4,0 +2020-04-09,Tazewell,Virginia,51185,4,0 +2020-04-10,Tazewell,Virginia,51185,4,0 +2020-04-11,Tazewell,Virginia,51185,4,0 +2020-04-12,Tazewell,Virginia,51185,4,0 +2020-04-13,Tazewell,Virginia,51185,4,0 +2020-04-14,Tazewell,Virginia,51185,4,0 +2020-04-15,Tazewell,Virginia,51185,4,0 +2020-04-16,Tazewell,Virginia,51185,4,0 +2020-04-17,Tazewell,Virginia,51185,4,0 +2020-04-18,Tazewell,Virginia,51185,4,0 +2020-04-19,Tazewell,Virginia,51185,4,0 +2020-04-20,Tazewell,Virginia,51185,4,0 +2020-04-21,Tazewell,Virginia,51185,4,0 +2020-04-22,Tazewell,Virginia,51185,4,0 +2020-04-23,Tazewell,Virginia,51185,4,0 +2020-04-24,Tazewell,Virginia,51185,4,0 +2020-04-25,Tazewell,Virginia,51185,4,0 +2020-04-26,Tazewell,Virginia,51185,4,0 +2020-04-27,Tazewell,Virginia,51185,5,0 +2020-04-28,Tazewell,Virginia,51185,5,0 +2020-04-29,Tazewell,Virginia,51185,6,0 +2020-04-30,Tazewell,Virginia,51185,6,0 +2020-05-01,Tazewell,Virginia,51185,6,0 +2020-05-02,Tazewell,Virginia,51185,6,0 +2020-05-03,Tazewell,Virginia,51185,6,0 +2020-05-04,Tazewell,Virginia,51185,6,0 +2020-05-05,Tazewell,Virginia,51185,6,0 +2020-05-06,Tazewell,Virginia,51185,6,0 +2020-05-07,Tazewell,Virginia,51185,6,0 +2020-05-08,Tazewell,Virginia,51185,6,0 +2020-05-09,Tazewell,Virginia,51185,6,0 +2020-05-10,Tazewell,Virginia,51185,7,0 +2020-05-11,Tazewell,Virginia,51185,7,0 +2020-05-12,Tazewell,Virginia,51185,7,0 +2020-05-13,Tazewell,Virginia,51185,6,0 +2020-05-14,Tazewell,Virginia,51185,6,0 +2020-05-15,Tazewell,Virginia,51185,6,0 +2020-05-16,Tazewell,Virginia,51185,6,0 +2020-05-17,Tazewell,Virginia,51185,6,0 +2020-05-18,Tazewell,Virginia,51185,6,0 +2020-05-19,Tazewell,Virginia,51185,6,0 +2020-05-20,Tazewell,Virginia,51185,6,0 +2020-05-21,Tazewell,Virginia,51185,6,0 +2020-05-22,Tazewell,Virginia,51185,6,0 +2020-05-23,Tazewell,Virginia,51185,6,0 +2020-05-24,Tazewell,Virginia,51185,6,0 +2020-05-25,Tazewell,Virginia,51185,6,0 +2020-05-26,Tazewell,Virginia,51185,6,0 +2020-05-27,Tazewell,Virginia,51185,6,0 +2020-05-28,Tazewell,Virginia,51185,7,0 +2020-05-29,Tazewell,Virginia,51185,7,0 +2020-05-30,Tazewell,Virginia,51185,7,0 +2020-05-31,Tazewell,Virginia,51185,9,0 +2020-06-01,Tazewell,Virginia,51185,9,0 +2020-06-02,Tazewell,Virginia,51185,9,0 +2020-06-03,Tazewell,Virginia,51185,9,0 +2020-06-04,Tazewell,Virginia,51185,9,0 +2020-06-05,Tazewell,Virginia,51185,9,0 +2020-06-06,Tazewell,Virginia,51185,10,0 +2020-06-07,Tazewell,Virginia,51185,10,0 +2020-06-08,Tazewell,Virginia,51185,10,0 +2020-06-09,Tazewell,Virginia,51185,9,0 +2020-06-10,Tazewell,Virginia,51185,9,0 +2020-06-11,Tazewell,Virginia,51185,9,0 +2020-06-12,Tazewell,Virginia,51185,9,0 +2020-06-13,Tazewell,Virginia,51185,9,0 +2020-06-14,Tazewell,Virginia,51185,9,0 +2020-06-15,Tazewell,Virginia,51185,9,0 +2020-06-16,Tazewell,Virginia,51185,9,0 +2020-06-17,Tazewell,Virginia,51185,9,0 +2020-06-18,Tazewell,Virginia,51185,9,0 +2020-06-19,Tazewell,Virginia,51185,9,0 +2020-06-20,Tazewell,Virginia,51185,9,0 +2020-06-21,Tazewell,Virginia,51185,9,0 +2020-06-22,Tazewell,Virginia,51185,9,0 +2020-06-23,Tazewell,Virginia,51185,9,0 +2020-06-24,Tazewell,Virginia,51185,11,0 +2020-06-25,Tazewell,Virginia,51185,13,0 +2020-06-26,Tazewell,Virginia,51185,13,0 +2020-06-27,Tazewell,Virginia,51185,15,0 +2020-06-28,Tazewell,Virginia,51185,15,0 +2020-06-29,Tazewell,Virginia,51185,15,0 +2020-06-30,Tazewell,Virginia,51185,15,0 +2020-07-01,Tazewell,Virginia,51185,15,0 +2020-07-02,Tazewell,Virginia,51185,16,0 +2020-07-03,Tazewell,Virginia,51185,16,0 +2020-07-04,Tazewell,Virginia,51185,16,0 +2020-07-05,Tazewell,Virginia,51185,16,0 +2020-07-06,Tazewell,Virginia,51185,17,0 +2020-07-07,Tazewell,Virginia,51185,22,0 +2020-07-08,Tazewell,Virginia,51185,23,0 +2020-07-09,Tazewell,Virginia,51185,23,0 +2020-03-26,Warren,Virginia,51187,2,0 +2020-03-27,Warren,Virginia,51187,2,0 +2020-03-28,Warren,Virginia,51187,2,0 +2020-03-29,Warren,Virginia,51187,2,0 +2020-03-30,Warren,Virginia,51187,2,0 +2020-03-31,Warren,Virginia,51187,3,0 +2020-04-01,Warren,Virginia,51187,3,0 +2020-04-02,Warren,Virginia,51187,3,0 +2020-04-03,Warren,Virginia,51187,4,0 +2020-04-04,Warren,Virginia,51187,4,0 +2020-04-05,Warren,Virginia,51187,4,0 +2020-04-06,Warren,Virginia,51187,5,0 +2020-04-07,Warren,Virginia,51187,6,0 +2020-04-08,Warren,Virginia,51187,8,0 +2020-04-09,Warren,Virginia,51187,9,0 +2020-04-10,Warren,Virginia,51187,10,0 +2020-04-11,Warren,Virginia,51187,15,0 +2020-04-12,Warren,Virginia,51187,15,0 +2020-04-13,Warren,Virginia,51187,17,0 +2020-04-14,Warren,Virginia,51187,19,0 +2020-04-15,Warren,Virginia,51187,20,0 +2020-04-16,Warren,Virginia,51187,21,0 +2020-04-17,Warren,Virginia,51187,22,0 +2020-04-18,Warren,Virginia,51187,24,0 +2020-04-19,Warren,Virginia,51187,24,0 +2020-04-20,Warren,Virginia,51187,24,0 +2020-04-21,Warren,Virginia,51187,26,0 +2020-04-22,Warren,Virginia,51187,27,0 +2020-04-23,Warren,Virginia,51187,30,0 +2020-04-24,Warren,Virginia,51187,36,0 +2020-04-25,Warren,Virginia,51187,42,0 +2020-04-26,Warren,Virginia,51187,43,0 +2020-04-27,Warren,Virginia,51187,44,0 +2020-04-28,Warren,Virginia,51187,47,0 +2020-04-29,Warren,Virginia,51187,51,0 +2020-04-30,Warren,Virginia,51187,52,0 +2020-05-01,Warren,Virginia,51187,57,0 +2020-05-02,Warren,Virginia,51187,61,0 +2020-05-03,Warren,Virginia,51187,61,0 +2020-05-04,Warren,Virginia,51187,63,0 +2020-05-05,Warren,Virginia,51187,68,0 +2020-05-06,Warren,Virginia,51187,68,0 +2020-05-07,Warren,Virginia,51187,75,0 +2020-05-08,Warren,Virginia,51187,78,0 +2020-05-09,Warren,Virginia,51187,82,1 +2020-05-10,Warren,Virginia,51187,85,1 +2020-05-11,Warren,Virginia,51187,86,1 +2020-05-12,Warren,Virginia,51187,87,1 +2020-05-13,Warren,Virginia,51187,88,1 +2020-05-14,Warren,Virginia,51187,90,2 +2020-05-15,Warren,Virginia,51187,94,2 +2020-05-16,Warren,Virginia,51187,96,2 +2020-05-17,Warren,Virginia,51187,99,2 +2020-05-18,Warren,Virginia,51187,99,2 +2020-05-19,Warren,Virginia,51187,103,2 +2020-05-20,Warren,Virginia,51187,105,2 +2020-05-21,Warren,Virginia,51187,110,2 +2020-05-22,Warren,Virginia,51187,110,2 +2020-05-23,Warren,Virginia,51187,110,2 +2020-05-24,Warren,Virginia,51187,111,2 +2020-05-25,Warren,Virginia,51187,117,2 +2020-05-26,Warren,Virginia,51187,117,2 +2020-05-27,Warren,Virginia,51187,129,2 +2020-05-28,Warren,Virginia,51187,141,2 +2020-05-29,Warren,Virginia,51187,146,2 +2020-05-30,Warren,Virginia,51187,155,2 +2020-05-31,Warren,Virginia,51187,157,2 +2020-06-01,Warren,Virginia,51187,157,2 +2020-06-02,Warren,Virginia,51187,166,2 +2020-06-03,Warren,Virginia,51187,204,3 +2020-06-04,Warren,Virginia,51187,217,3 +2020-06-05,Warren,Virginia,51187,220,4 +2020-06-06,Warren,Virginia,51187,222,4 +2020-06-07,Warren,Virginia,51187,222,4 +2020-06-08,Warren,Virginia,51187,220,4 +2020-06-09,Warren,Virginia,51187,222,4 +2020-06-10,Warren,Virginia,51187,225,4 +2020-06-11,Warren,Virginia,51187,225,4 +2020-06-12,Warren,Virginia,51187,228,4 +2020-06-13,Warren,Virginia,51187,229,4 +2020-06-14,Warren,Virginia,51187,230,4 +2020-06-15,Warren,Virginia,51187,231,4 +2020-06-16,Warren,Virginia,51187,233,4 +2020-06-17,Warren,Virginia,51187,233,4 +2020-06-18,Warren,Virginia,51187,234,4 +2020-06-19,Warren,Virginia,51187,235,4 +2020-06-20,Warren,Virginia,51187,236,4 +2020-06-21,Warren,Virginia,51187,254,4 +2020-06-22,Warren,Virginia,51187,265,4 +2020-06-23,Warren,Virginia,51187,266,4 +2020-06-24,Warren,Virginia,51187,266,4 +2020-06-25,Warren,Virginia,51187,269,4 +2020-06-26,Warren,Virginia,51187,269,5 +2020-06-27,Warren,Virginia,51187,278,5 +2020-06-28,Warren,Virginia,51187,285,5 +2020-06-29,Warren,Virginia,51187,285,5 +2020-06-30,Warren,Virginia,51187,284,5 +2020-07-01,Warren,Virginia,51187,290,5 +2020-07-02,Warren,Virginia,51187,292,6 +2020-07-03,Warren,Virginia,51187,294,7 +2020-07-04,Warren,Virginia,51187,295,8 +2020-07-05,Warren,Virginia,51187,297,8 +2020-07-06,Warren,Virginia,51187,299,8 +2020-07-07,Warren,Virginia,51187,300,8 +2020-07-08,Warren,Virginia,51187,302,8 +2020-07-09,Warren,Virginia,51187,303,7 +2020-03-26,Washington,Virginia,51191,1,0 +2020-03-27,Washington,Virginia,51191,1,0 +2020-03-28,Washington,Virginia,51191,1,0 +2020-03-29,Washington,Virginia,51191,2,0 +2020-03-30,Washington,Virginia,51191,2,0 +2020-03-31,Washington,Virginia,51191,2,0 +2020-04-01,Washington,Virginia,51191,2,0 +2020-04-02,Washington,Virginia,51191,2,0 +2020-04-03,Washington,Virginia,51191,3,0 +2020-04-04,Washington,Virginia,51191,3,0 +2020-04-05,Washington,Virginia,51191,5,0 +2020-04-06,Washington,Virginia,51191,5,0 +2020-04-07,Washington,Virginia,51191,10,0 +2020-04-08,Washington,Virginia,51191,12,0 +2020-04-09,Washington,Virginia,51191,15,0 +2020-04-10,Washington,Virginia,51191,17,0 +2020-04-11,Washington,Virginia,51191,24,0 +2020-04-12,Washington,Virginia,51191,24,0 +2020-04-13,Washington,Virginia,51191,28,0 +2020-04-14,Washington,Virginia,51191,27,0 +2020-04-15,Washington,Virginia,51191,27,0 +2020-04-16,Washington,Virginia,51191,27,0 +2020-04-17,Washington,Virginia,51191,28,0 +2020-04-18,Washington,Virginia,51191,27,0 +2020-04-19,Washington,Virginia,51191,29,0 +2020-04-20,Washington,Virginia,51191,29,0 +2020-04-21,Washington,Virginia,51191,29,3 +2020-04-22,Washington,Virginia,51191,29,3 +2020-04-23,Washington,Virginia,51191,30,3 +2020-04-24,Washington,Virginia,51191,30,3 +2020-04-25,Washington,Virginia,51191,30,3 +2020-04-26,Washington,Virginia,51191,34,3 +2020-04-27,Washington,Virginia,51191,34,3 +2020-04-28,Washington,Virginia,51191,34,3 +2020-04-29,Washington,Virginia,51191,36,3 +2020-04-30,Washington,Virginia,51191,36,3 +2020-05-01,Washington,Virginia,51191,38,3 +2020-05-02,Washington,Virginia,51191,39,3 +2020-05-03,Washington,Virginia,51191,39,3 +2020-05-04,Washington,Virginia,51191,39,3 +2020-05-05,Washington,Virginia,51191,40,3 +2020-05-06,Washington,Virginia,51191,40,3 +2020-05-07,Washington,Virginia,51191,41,3 +2020-05-08,Washington,Virginia,51191,42,3 +2020-05-09,Washington,Virginia,51191,42,3 +2020-05-10,Washington,Virginia,51191,49,3 +2020-05-11,Washington,Virginia,51191,49,3 +2020-05-12,Washington,Virginia,51191,48,3 +2020-05-13,Washington,Virginia,51191,49,3 +2020-05-14,Washington,Virginia,51191,49,3 +2020-05-15,Washington,Virginia,51191,49,3 +2020-05-16,Washington,Virginia,51191,49,3 +2020-05-17,Washington,Virginia,51191,49,3 +2020-05-18,Washington,Virginia,51191,49,3 +2020-05-19,Washington,Virginia,51191,50,4 +2020-05-20,Washington,Virginia,51191,50,4 +2020-05-21,Washington,Virginia,51191,51,4 +2020-05-22,Washington,Virginia,51191,51,4 +2020-05-23,Washington,Virginia,51191,51,4 +2020-05-24,Washington,Virginia,51191,51,4 +2020-05-25,Washington,Virginia,51191,51,4 +2020-05-26,Washington,Virginia,51191,51,4 +2020-05-27,Washington,Virginia,51191,51,4 +2020-05-28,Washington,Virginia,51191,51,4 +2020-05-29,Washington,Virginia,51191,51,4 +2020-05-30,Washington,Virginia,51191,51,4 +2020-05-31,Washington,Virginia,51191,51,4 +2020-06-01,Washington,Virginia,51191,51,4 +2020-06-02,Washington,Virginia,51191,52,4 +2020-06-03,Washington,Virginia,51191,53,4 +2020-06-04,Washington,Virginia,51191,53,4 +2020-06-05,Washington,Virginia,51191,53,4 +2020-06-06,Washington,Virginia,51191,53,4 +2020-06-07,Washington,Virginia,51191,57,4 +2020-06-08,Washington,Virginia,51191,57,4 +2020-06-09,Washington,Virginia,51191,57,4 +2020-06-10,Washington,Virginia,51191,58,4 +2020-06-11,Washington,Virginia,51191,58,4 +2020-06-12,Washington,Virginia,51191,58,4 +2020-06-13,Washington,Virginia,51191,58,4 +2020-06-14,Washington,Virginia,51191,58,4 +2020-06-15,Washington,Virginia,51191,58,4 +2020-06-16,Washington,Virginia,51191,58,4 +2020-06-17,Washington,Virginia,51191,58,4 +2020-06-18,Washington,Virginia,51191,58,4 +2020-06-19,Washington,Virginia,51191,58,4 +2020-06-20,Washington,Virginia,51191,59,4 +2020-06-21,Washington,Virginia,51191,60,4 +2020-06-22,Washington,Virginia,51191,60,4 +2020-06-23,Washington,Virginia,51191,60,4 +2020-06-24,Washington,Virginia,51191,60,4 +2020-06-25,Washington,Virginia,51191,60,4 +2020-06-26,Washington,Virginia,51191,62,4 +2020-06-27,Washington,Virginia,51191,63,4 +2020-06-28,Washington,Virginia,51191,63,4 +2020-06-29,Washington,Virginia,51191,63,4 +2020-06-30,Washington,Virginia,51191,64,4 +2020-07-01,Washington,Virginia,51191,64,4 +2020-07-02,Washington,Virginia,51191,65,4 +2020-07-03,Washington,Virginia,51191,65,4 +2020-07-04,Washington,Virginia,51191,66,4 +2020-07-05,Washington,Virginia,51191,67,4 +2020-07-06,Washington,Virginia,51191,67,4 +2020-07-07,Washington,Virginia,51191,68,4 +2020-07-08,Washington,Virginia,51191,70,4 +2020-07-09,Washington,Virginia,51191,74,4 +2020-04-03,Westmoreland,Virginia,51193,1,0 +2020-04-04,Westmoreland,Virginia,51193,2,0 +2020-04-05,Westmoreland,Virginia,51193,2,0 +2020-04-06,Westmoreland,Virginia,51193,3,0 +2020-04-07,Westmoreland,Virginia,51193,3,0 +2020-04-08,Westmoreland,Virginia,51193,5,0 +2020-04-09,Westmoreland,Virginia,51193,5,0 +2020-04-10,Westmoreland,Virginia,51193,8,0 +2020-04-11,Westmoreland,Virginia,51193,8,0 +2020-04-12,Westmoreland,Virginia,51193,8,0 +2020-04-13,Westmoreland,Virginia,51193,8,0 +2020-04-14,Westmoreland,Virginia,51193,8,0 +2020-04-15,Westmoreland,Virginia,51193,8,0 +2020-04-16,Westmoreland,Virginia,51193,9,0 +2020-04-17,Westmoreland,Virginia,51193,9,0 +2020-04-18,Westmoreland,Virginia,51193,10,0 +2020-04-19,Westmoreland,Virginia,51193,10,0 +2020-04-20,Westmoreland,Virginia,51193,10,0 +2020-04-21,Westmoreland,Virginia,51193,10,0 +2020-04-22,Westmoreland,Virginia,51193,12,0 +2020-04-23,Westmoreland,Virginia,51193,14,0 +2020-04-24,Westmoreland,Virginia,51193,14,0 +2020-04-25,Westmoreland,Virginia,51193,17,0 +2020-04-26,Westmoreland,Virginia,51193,20,0 +2020-04-27,Westmoreland,Virginia,51193,20,0 +2020-04-28,Westmoreland,Virginia,51193,21,0 +2020-04-29,Westmoreland,Virginia,51193,22,0 +2020-04-30,Westmoreland,Virginia,51193,21,0 +2020-05-01,Westmoreland,Virginia,51193,23,0 +2020-05-02,Westmoreland,Virginia,51193,25,0 +2020-05-03,Westmoreland,Virginia,51193,26,0 +2020-05-04,Westmoreland,Virginia,51193,31,0 +2020-05-05,Westmoreland,Virginia,51193,30,0 +2020-05-06,Westmoreland,Virginia,51193,30,0 +2020-05-07,Westmoreland,Virginia,51193,33,0 +2020-05-08,Westmoreland,Virginia,51193,35,0 +2020-05-09,Westmoreland,Virginia,51193,37,0 +2020-05-10,Westmoreland,Virginia,51193,38,0 +2020-05-11,Westmoreland,Virginia,51193,38,0 +2020-05-12,Westmoreland,Virginia,51193,41,0 +2020-05-13,Westmoreland,Virginia,51193,42,0 +2020-05-14,Westmoreland,Virginia,51193,42,0 +2020-05-15,Westmoreland,Virginia,51193,42,0 +2020-05-16,Westmoreland,Virginia,51193,42,0 +2020-05-17,Westmoreland,Virginia,51193,42,0 +2020-05-18,Westmoreland,Virginia,51193,42,0 +2020-05-19,Westmoreland,Virginia,51193,43,0 +2020-05-20,Westmoreland,Virginia,51193,42,0 +2020-05-21,Westmoreland,Virginia,51193,43,0 +2020-05-22,Westmoreland,Virginia,51193,43,0 +2020-05-23,Westmoreland,Virginia,51193,46,0 +2020-05-24,Westmoreland,Virginia,51193,48,0 +2020-05-25,Westmoreland,Virginia,51193,50,0 +2020-05-26,Westmoreland,Virginia,51193,54,0 +2020-05-27,Westmoreland,Virginia,51193,61,0 +2020-05-28,Westmoreland,Virginia,51193,63,1 +2020-05-29,Westmoreland,Virginia,51193,63,1 +2020-05-30,Westmoreland,Virginia,51193,63,1 +2020-05-31,Westmoreland,Virginia,51193,65,1 +2020-06-01,Westmoreland,Virginia,51193,68,1 +2020-06-02,Westmoreland,Virginia,51193,70,1 +2020-06-03,Westmoreland,Virginia,51193,76,1 +2020-06-04,Westmoreland,Virginia,51193,80,1 +2020-06-05,Westmoreland,Virginia,51193,80,1 +2020-06-06,Westmoreland,Virginia,51193,81,1 +2020-06-07,Westmoreland,Virginia,51193,81,1 +2020-06-08,Westmoreland,Virginia,51193,82,1 +2020-06-09,Westmoreland,Virginia,51193,83,1 +2020-06-10,Westmoreland,Virginia,51193,83,1 +2020-06-11,Westmoreland,Virginia,51193,83,1 +2020-06-12,Westmoreland,Virginia,51193,84,1 +2020-06-13,Westmoreland,Virginia,51193,85,1 +2020-06-14,Westmoreland,Virginia,51193,87,1 +2020-06-15,Westmoreland,Virginia,51193,87,1 +2020-06-16,Westmoreland,Virginia,51193,87,1 +2020-06-17,Westmoreland,Virginia,51193,87,1 +2020-06-18,Westmoreland,Virginia,51193,87,1 +2020-06-19,Westmoreland,Virginia,51193,87,1 +2020-06-20,Westmoreland,Virginia,51193,88,1 +2020-06-21,Westmoreland,Virginia,51193,91,1 +2020-06-22,Westmoreland,Virginia,51193,91,1 +2020-06-23,Westmoreland,Virginia,51193,92,1 +2020-06-24,Westmoreland,Virginia,51193,92,1 +2020-06-25,Westmoreland,Virginia,51193,92,1 +2020-06-26,Westmoreland,Virginia,51193,93,2 +2020-06-27,Westmoreland,Virginia,51193,100,2 +2020-06-28,Westmoreland,Virginia,51193,104,2 +2020-06-29,Westmoreland,Virginia,51193,105,2 +2020-06-30,Westmoreland,Virginia,51193,108,2 +2020-07-01,Westmoreland,Virginia,51193,108,2 +2020-07-02,Westmoreland,Virginia,51193,108,2 +2020-07-03,Westmoreland,Virginia,51193,108,2 +2020-07-04,Westmoreland,Virginia,51193,108,2 +2020-07-05,Westmoreland,Virginia,51193,116,2 +2020-07-06,Westmoreland,Virginia,51193,116,2 +2020-07-07,Westmoreland,Virginia,51193,118,2 +2020-07-08,Westmoreland,Virginia,51193,118,2 +2020-07-09,Westmoreland,Virginia,51193,124,2 +2020-04-03,Wise,Virginia,51195,1,0 +2020-04-04,Wise,Virginia,51195,1,0 +2020-04-05,Wise,Virginia,51195,1,0 +2020-04-06,Wise,Virginia,51195,1,0 +2020-04-07,Wise,Virginia,51195,3,0 +2020-04-08,Wise,Virginia,51195,4,0 +2020-04-09,Wise,Virginia,51195,5,0 +2020-04-10,Wise,Virginia,51195,8,0 +2020-04-11,Wise,Virginia,51195,8,1 +2020-04-12,Wise,Virginia,51195,8,1 +2020-04-13,Wise,Virginia,51195,13,1 +2020-04-14,Wise,Virginia,51195,14,1 +2020-04-15,Wise,Virginia,51195,15,1 +2020-04-16,Wise,Virginia,51195,18,1 +2020-04-17,Wise,Virginia,51195,17,1 +2020-04-18,Wise,Virginia,51195,18,1 +2020-04-19,Wise,Virginia,51195,18,1 +2020-04-20,Wise,Virginia,51195,18,1 +2020-04-21,Wise,Virginia,51195,18,1 +2020-04-22,Wise,Virginia,51195,18,1 +2020-04-23,Wise,Virginia,51195,20,1 +2020-04-24,Wise,Virginia,51195,20,1 +2020-04-25,Wise,Virginia,51195,20,1 +2020-04-26,Wise,Virginia,51195,20,1 +2020-04-27,Wise,Virginia,51195,21,1 +2020-04-28,Wise,Virginia,51195,22,1 +2020-04-29,Wise,Virginia,51195,22,1 +2020-04-30,Wise,Virginia,51195,22,1 +2020-05-01,Wise,Virginia,51195,22,1 +2020-05-02,Wise,Virginia,51195,22,1 +2020-05-03,Wise,Virginia,51195,22,1 +2020-05-04,Wise,Virginia,51195,22,1 +2020-05-05,Wise,Virginia,51195,22,1 +2020-05-06,Wise,Virginia,51195,22,1 +2020-05-07,Wise,Virginia,51195,22,1 +2020-05-08,Wise,Virginia,51195,22,1 +2020-05-09,Wise,Virginia,51195,22,1 +2020-05-10,Wise,Virginia,51195,22,1 +2020-05-11,Wise,Virginia,51195,22,1 +2020-05-12,Wise,Virginia,51195,22,1 +2020-05-13,Wise,Virginia,51195,23,2 +2020-05-14,Wise,Virginia,51195,23,2 +2020-05-15,Wise,Virginia,51195,23,2 +2020-05-16,Wise,Virginia,51195,23,2 +2020-05-17,Wise,Virginia,51195,23,2 +2020-05-18,Wise,Virginia,51195,23,2 +2020-05-19,Wise,Virginia,51195,23,2 +2020-05-20,Wise,Virginia,51195,23,2 +2020-05-21,Wise,Virginia,51195,24,2 +2020-05-22,Wise,Virginia,51195,24,2 +2020-05-23,Wise,Virginia,51195,24,2 +2020-05-24,Wise,Virginia,51195,24,2 +2020-05-25,Wise,Virginia,51195,24,2 +2020-05-26,Wise,Virginia,51195,24,2 +2020-05-27,Wise,Virginia,51195,24,2 +2020-05-28,Wise,Virginia,51195,24,2 +2020-05-29,Wise,Virginia,51195,24,2 +2020-05-30,Wise,Virginia,51195,24,2 +2020-05-31,Wise,Virginia,51195,25,2 +2020-06-01,Wise,Virginia,51195,25,2 +2020-06-02,Wise,Virginia,51195,25,2 +2020-06-03,Wise,Virginia,51195,25,2 +2020-06-04,Wise,Virginia,51195,27,2 +2020-06-05,Wise,Virginia,51195,27,2 +2020-06-06,Wise,Virginia,51195,27,2 +2020-06-07,Wise,Virginia,51195,27,2 +2020-06-08,Wise,Virginia,51195,27,2 +2020-06-09,Wise,Virginia,51195,27,2 +2020-06-10,Wise,Virginia,51195,27,2 +2020-06-11,Wise,Virginia,51195,27,2 +2020-06-12,Wise,Virginia,51195,27,2 +2020-06-13,Wise,Virginia,51195,27,2 +2020-06-14,Wise,Virginia,51195,27,2 +2020-06-15,Wise,Virginia,51195,27,2 +2020-06-16,Wise,Virginia,51195,27,2 +2020-06-17,Wise,Virginia,51195,27,2 +2020-06-18,Wise,Virginia,51195,27,2 +2020-06-19,Wise,Virginia,51195,27,2 +2020-06-20,Wise,Virginia,51195,27,2 +2020-06-21,Wise,Virginia,51195,27,2 +2020-06-22,Wise,Virginia,51195,27,2 +2020-06-23,Wise,Virginia,51195,27,2 +2020-06-24,Wise,Virginia,51195,27,2 +2020-06-25,Wise,Virginia,51195,27,2 +2020-06-26,Wise,Virginia,51195,27,2 +2020-06-27,Wise,Virginia,51195,27,2 +2020-06-28,Wise,Virginia,51195,27,2 +2020-06-29,Wise,Virginia,51195,27,2 +2020-06-30,Wise,Virginia,51195,28,2 +2020-07-01,Wise,Virginia,51195,28,2 +2020-07-02,Wise,Virginia,51195,28,2 +2020-07-03,Wise,Virginia,51195,29,2 +2020-07-04,Wise,Virginia,51195,30,2 +2020-07-05,Wise,Virginia,51195,30,2 +2020-07-06,Wise,Virginia,51195,32,2 +2020-07-07,Wise,Virginia,51195,32,2 +2020-07-08,Wise,Virginia,51195,33,2 +2020-07-09,Wise,Virginia,51195,34,2 +2020-03-29,Wythe,Virginia,51197,1,0 +2020-03-30,Wythe,Virginia,51197,1,0 +2020-03-31,Wythe,Virginia,51197,1,0 +2020-04-01,Wythe,Virginia,51197,2,0 +2020-04-02,Wythe,Virginia,51197,2,0 +2020-04-03,Wythe,Virginia,51197,2,0 +2020-04-04,Wythe,Virginia,51197,2,0 +2020-04-05,Wythe,Virginia,51197,2,0 +2020-04-06,Wythe,Virginia,51197,3,0 +2020-04-07,Wythe,Virginia,51197,3,0 +2020-04-08,Wythe,Virginia,51197,6,0 +2020-04-09,Wythe,Virginia,51197,6,0 +2020-04-10,Wythe,Virginia,51197,7,0 +2020-04-11,Wythe,Virginia,51197,7,0 +2020-04-12,Wythe,Virginia,51197,7,0 +2020-04-13,Wythe,Virginia,51197,7,0 +2020-04-14,Wythe,Virginia,51197,7,0 +2020-04-15,Wythe,Virginia,51197,7,0 +2020-04-16,Wythe,Virginia,51197,7,0 +2020-04-17,Wythe,Virginia,51197,8,0 +2020-04-18,Wythe,Virginia,51197,8,0 +2020-04-19,Wythe,Virginia,51197,10,0 +2020-04-20,Wythe,Virginia,51197,10,0 +2020-04-21,Wythe,Virginia,51197,10,1 +2020-04-22,Wythe,Virginia,51197,11,1 +2020-04-23,Wythe,Virginia,51197,11,1 +2020-04-24,Wythe,Virginia,51197,11,1 +2020-04-25,Wythe,Virginia,51197,11,1 +2020-04-26,Wythe,Virginia,51197,11,1 +2020-04-27,Wythe,Virginia,51197,11,1 +2020-04-28,Wythe,Virginia,51197,11,1 +2020-04-29,Wythe,Virginia,51197,11,1 +2020-04-30,Wythe,Virginia,51197,11,1 +2020-05-01,Wythe,Virginia,51197,11,1 +2020-05-02,Wythe,Virginia,51197,11,1 +2020-05-03,Wythe,Virginia,51197,12,1 +2020-05-04,Wythe,Virginia,51197,12,1 +2020-05-05,Wythe,Virginia,51197,12,1 +2020-05-06,Wythe,Virginia,51197,12,1 +2020-05-07,Wythe,Virginia,51197,12,1 +2020-05-08,Wythe,Virginia,51197,12,1 +2020-05-09,Wythe,Virginia,51197,13,1 +2020-05-10,Wythe,Virginia,51197,13,1 +2020-05-11,Wythe,Virginia,51197,13,1 +2020-05-12,Wythe,Virginia,51197,14,1 +2020-05-13,Wythe,Virginia,51197,15,1 +2020-05-14,Wythe,Virginia,51197,15,1 +2020-05-15,Wythe,Virginia,51197,15,1 +2020-05-16,Wythe,Virginia,51197,16,1 +2020-05-17,Wythe,Virginia,51197,16,1 +2020-05-18,Wythe,Virginia,51197,16,1 +2020-05-19,Wythe,Virginia,51197,16,1 +2020-05-20,Wythe,Virginia,51197,16,1 +2020-05-21,Wythe,Virginia,51197,16,1 +2020-05-22,Wythe,Virginia,51197,17,1 +2020-05-23,Wythe,Virginia,51197,17,1 +2020-05-24,Wythe,Virginia,51197,17,1 +2020-05-25,Wythe,Virginia,51197,18,1 +2020-05-26,Wythe,Virginia,51197,21,1 +2020-05-27,Wythe,Virginia,51197,21,1 +2020-05-28,Wythe,Virginia,51197,21,1 +2020-05-29,Wythe,Virginia,51197,21,1 +2020-05-30,Wythe,Virginia,51197,21,1 +2020-05-31,Wythe,Virginia,51197,23,1 +2020-06-01,Wythe,Virginia,51197,23,1 +2020-06-02,Wythe,Virginia,51197,23,1 +2020-06-03,Wythe,Virginia,51197,29,1 +2020-06-04,Wythe,Virginia,51197,30,1 +2020-06-05,Wythe,Virginia,51197,30,1 +2020-06-06,Wythe,Virginia,51197,33,1 +2020-06-07,Wythe,Virginia,51197,36,1 +2020-06-08,Wythe,Virginia,51197,36,1 +2020-06-09,Wythe,Virginia,51197,38,1 +2020-06-10,Wythe,Virginia,51197,38,1 +2020-06-11,Wythe,Virginia,51197,42,1 +2020-06-12,Wythe,Virginia,51197,42,1 +2020-06-13,Wythe,Virginia,51197,42,1 +2020-06-14,Wythe,Virginia,51197,42,1 +2020-06-15,Wythe,Virginia,51197,42,1 +2020-06-16,Wythe,Virginia,51197,42,1 +2020-06-17,Wythe,Virginia,51197,42,1 +2020-06-18,Wythe,Virginia,51197,42,1 +2020-06-19,Wythe,Virginia,51197,42,1 +2020-06-20,Wythe,Virginia,51197,43,1 +2020-06-21,Wythe,Virginia,51197,44,1 +2020-06-22,Wythe,Virginia,51197,44,1 +2020-06-23,Wythe,Virginia,51197,46,1 +2020-06-24,Wythe,Virginia,51197,46,1 +2020-06-25,Wythe,Virginia,51197,48,1 +2020-06-26,Wythe,Virginia,51197,47,1 +2020-06-27,Wythe,Virginia,51197,47,1 +2020-06-28,Wythe,Virginia,51197,49,1 +2020-06-29,Wythe,Virginia,51197,49,1 +2020-06-30,Wythe,Virginia,51197,50,1 +2020-07-01,Wythe,Virginia,51197,53,1 +2020-07-02,Wythe,Virginia,51197,53,1 +2020-07-03,Wythe,Virginia,51197,54,1 +2020-07-04,Wythe,Virginia,51197,54,1 +2020-07-05,Wythe,Virginia,51197,56,1 +2020-07-06,Wythe,Virginia,51197,58,1 +2020-07-07,Wythe,Virginia,51197,57,1 +2020-07-08,Wythe,Virginia,51197,57,1 +2020-07-09,Wythe,Virginia,51197,57,1 +2020-03-16,York,Virginia,51199,1,0 +2020-03-17,York,Virginia,51199,1,0 +2020-03-18,York,Virginia,51199,1,0 +2020-03-19,York,Virginia,51199,1,0 +2020-03-20,York,Virginia,51199,3,0 +2020-03-21,York,Virginia,51199,3,0 +2020-03-22,York,Virginia,51199,5,0 +2020-03-23,York,Virginia,51199,5,0 +2020-03-24,York,Virginia,51199,6,0 +2020-03-25,York,Virginia,51199,8,0 +2020-03-26,York,Virginia,51199,9,0 +2020-03-27,York,Virginia,51199,9,0 +2020-03-28,York,Virginia,51199,9,0 +2020-03-29,York,Virginia,51199,9,0 +2020-03-30,York,Virginia,51199,11,0 +2020-03-31,York,Virginia,51199,14,0 +2020-04-01,York,Virginia,51199,16,0 +2020-04-02,York,Virginia,51199,17,0 +2020-04-03,York,Virginia,51199,17,0 +2020-04-04,York,Virginia,51199,19,0 +2020-04-05,York,Virginia,51199,20,0 +2020-04-06,York,Virginia,51199,21,0 +2020-04-07,York,Virginia,51199,25,1 +2020-04-08,York,Virginia,51199,25,1 +2020-04-09,York,Virginia,51199,25,1 +2020-04-10,York,Virginia,51199,25,1 +2020-04-11,York,Virginia,51199,27,1 +2020-04-12,York,Virginia,51199,29,1 +2020-04-13,York,Virginia,51199,33,1 +2020-04-14,York,Virginia,51199,35,1 +2020-04-15,York,Virginia,51199,35,1 +2020-04-16,York,Virginia,51199,37,1 +2020-04-17,York,Virginia,51199,38,1 +2020-04-18,York,Virginia,51199,38,1 +2020-04-19,York,Virginia,51199,44,1 +2020-04-20,York,Virginia,51199,44,1 +2020-04-21,York,Virginia,51199,43,1 +2020-04-22,York,Virginia,51199,43,1 +2020-04-23,York,Virginia,51199,43,1 +2020-04-24,York,Virginia,51199,43,1 +2020-04-25,York,Virginia,51199,44,1 +2020-04-26,York,Virginia,51199,44,1 +2020-04-27,York,Virginia,51199,44,1 +2020-04-28,York,Virginia,51199,45,1 +2020-04-29,York,Virginia,51199,45,1 +2020-04-30,York,Virginia,51199,46,1 +2020-05-01,York,Virginia,51199,46,1 +2020-05-02,York,Virginia,51199,46,1 +2020-05-03,York,Virginia,51199,47,1 +2020-05-04,York,Virginia,51199,47,1 +2020-05-05,York,Virginia,51199,48,1 +2020-05-06,York,Virginia,51199,48,1 +2020-05-07,York,Virginia,51199,51,1 +2020-05-08,York,Virginia,51199,55,2 +2020-05-09,York,Virginia,51199,55,2 +2020-05-10,York,Virginia,51199,56,2 +2020-05-11,York,Virginia,51199,57,2 +2020-05-12,York,Virginia,51199,59,2 +2020-05-13,York,Virginia,51199,60,2 +2020-05-14,York,Virginia,51199,61,2 +2020-05-15,York,Virginia,51199,62,3 +2020-05-16,York,Virginia,51199,62,3 +2020-05-17,York,Virginia,51199,62,3 +2020-05-18,York,Virginia,51199,63,3 +2020-05-19,York,Virginia,51199,63,3 +2020-05-20,York,Virginia,51199,63,3 +2020-05-21,York,Virginia,51199,65,3 +2020-05-22,York,Virginia,51199,67,3 +2020-05-23,York,Virginia,51199,67,3 +2020-05-24,York,Virginia,51199,68,3 +2020-05-25,York,Virginia,51199,69,3 +2020-05-26,York,Virginia,51199,71,3 +2020-05-27,York,Virginia,51199,71,3 +2020-05-28,York,Virginia,51199,72,3 +2020-05-29,York,Virginia,51199,72,3 +2020-05-30,York,Virginia,51199,72,3 +2020-05-31,York,Virginia,51199,74,3 +2020-06-01,York,Virginia,51199,77,3 +2020-06-02,York,Virginia,51199,77,3 +2020-06-03,York,Virginia,51199,77,3 +2020-06-04,York,Virginia,51199,77,3 +2020-06-05,York,Virginia,51199,79,3 +2020-06-06,York,Virginia,51199,82,3 +2020-06-07,York,Virginia,51199,86,3 +2020-06-08,York,Virginia,51199,86,3 +2020-06-09,York,Virginia,51199,86,3 +2020-06-10,York,Virginia,51199,86,3 +2020-06-11,York,Virginia,51199,89,3 +2020-06-12,York,Virginia,51199,90,3 +2020-06-13,York,Virginia,51199,91,3 +2020-06-14,York,Virginia,51199,93,3 +2020-06-15,York,Virginia,51199,93,3 +2020-06-16,York,Virginia,51199,94,3 +2020-06-17,York,Virginia,51199,94,3 +2020-06-18,York,Virginia,51199,94,3 +2020-06-19,York,Virginia,51199,97,3 +2020-06-20,York,Virginia,51199,98,3 +2020-06-21,York,Virginia,51199,99,3 +2020-06-22,York,Virginia,51199,101,3 +2020-06-23,York,Virginia,51199,106,3 +2020-06-24,York,Virginia,51199,106,3 +2020-06-25,York,Virginia,51199,106,3 +2020-06-26,York,Virginia,51199,108,3 +2020-06-27,York,Virginia,51199,110,3 +2020-06-28,York,Virginia,51199,114,3 +2020-06-29,York,Virginia,51199,115,3 +2020-06-30,York,Virginia,51199,115,3 +2020-07-01,York,Virginia,51199,115,3 +2020-07-02,York,Virginia,51199,116,3 +2020-07-03,York,Virginia,51199,120,3 +2020-07-04,York,Virginia,51199,124,3 +2020-07-05,York,Virginia,51199,129,3 +2020-07-06,York,Virginia,51199,131,3 +2020-07-07,York,Virginia,51199,131,3 +2020-07-08,York,Virginia,51199,135,3 +2020-07-09,York,Virginia,51199,140,3 +2020-03-12,Alexandria city,Virginia,51510,1,0 +2020-03-13,Alexandria city,Virginia,51510,1,0 +2020-03-14,Alexandria city,Virginia,51510,1,0 +2020-03-15,Alexandria city,Virginia,51510,1,0 +2020-03-16,Alexandria city,Virginia,51510,2,0 +2020-03-17,Alexandria city,Virginia,51510,2,0 +2020-03-18,Alexandria city,Virginia,51510,2,0 +2020-03-19,Alexandria city,Virginia,51510,3,0 +2020-03-20,Alexandria city,Virginia,51510,3,0 +2020-03-21,Alexandria city,Virginia,51510,5,0 +2020-03-22,Alexandria city,Virginia,51510,5,0 +2020-03-23,Alexandria city,Virginia,51510,6,0 +2020-03-24,Alexandria city,Virginia,51510,8,0 +2020-03-25,Alexandria city,Virginia,51510,9,0 +2020-03-26,Alexandria city,Virginia,51510,14,0 +2020-03-27,Alexandria city,Virginia,51510,18,0 +2020-03-28,Alexandria city,Virginia,51510,20,0 +2020-03-29,Alexandria city,Virginia,51510,25,0 +2020-03-30,Alexandria city,Virginia,51510,26,0 +2020-03-31,Alexandria city,Virginia,51510,30,0 +2020-04-01,Alexandria city,Virginia,51510,32,0 +2020-04-02,Alexandria city,Virginia,51510,33,0 +2020-04-03,Alexandria city,Virginia,51510,56,0 +2020-04-04,Alexandria city,Virginia,51510,68,0 +2020-04-05,Alexandria city,Virginia,51510,74,0 +2020-04-06,Alexandria city,Virginia,51510,93,0 +2020-04-07,Alexandria city,Virginia,51510,126,1 +2020-04-08,Alexandria city,Virginia,51510,143,1 +2020-04-09,Alexandria city,Virginia,51510,149,1 +2020-04-10,Alexandria city,Virginia,51510,174,1 +2020-04-11,Alexandria city,Virginia,51510,188,1 +2020-04-12,Alexandria city,Virginia,51510,198,1 +2020-04-13,Alexandria city,Virginia,51510,235,1 +2020-04-14,Alexandria city,Virginia,51510,247,1 +2020-04-15,Alexandria city,Virginia,51510,254,6 +2020-04-16,Alexandria city,Virginia,51510,275,6 +2020-04-17,Alexandria city,Virginia,51510,321,6 +2020-04-18,Alexandria city,Virginia,51510,354,6 +2020-04-19,Alexandria city,Virginia,51510,383,6 +2020-04-20,Alexandria city,Virginia,51510,421,6 +2020-04-21,Alexandria city,Virginia,51510,462,9 +2020-04-22,Alexandria city,Virginia,51510,474,12 +2020-04-23,Alexandria city,Virginia,51510,512,14 +2020-04-24,Alexandria city,Virginia,51510,547,15 +2020-04-25,Alexandria city,Virginia,51510,575,18 +2020-04-26,Alexandria city,Virginia,51510,591,19 +2020-04-27,Alexandria city,Virginia,51510,627,18 +2020-04-28,Alexandria city,Virginia,51510,653,20 +2020-04-29,Alexandria city,Virginia,51510,700,21 +2020-04-30,Alexandria city,Virginia,51510,754,21 +2020-05-01,Alexandria city,Virginia,51510,802,24 +2020-05-02,Alexandria city,Virginia,51510,848,26 +2020-05-03,Alexandria city,Virginia,51510,899,26 +2020-05-04,Alexandria city,Virginia,51510,940,26 +2020-05-05,Alexandria city,Virginia,51510,983,26 +2020-05-06,Alexandria city,Virginia,51510,983,26 +2020-05-07,Alexandria city,Virginia,51510,1060,29 +2020-05-08,Alexandria city,Virginia,51510,1110,29 +2020-05-09,Alexandria city,Virginia,51510,1142,30 +2020-05-10,Alexandria city,Virginia,51510,1193,30 +2020-05-11,Alexandria city,Virginia,51510,1224,30 +2020-05-12,Alexandria city,Virginia,51510,1240,30 +2020-05-13,Alexandria city,Virginia,51510,1305,31 +2020-05-14,Alexandria city,Virginia,51510,1349,32 +2020-05-15,Alexandria city,Virginia,51510,1396,32 +2020-05-16,Alexandria city,Virginia,51510,1460,34 +2020-05-17,Alexandria city,Virginia,51510,1476,34 +2020-05-18,Alexandria city,Virginia,51510,1510,34 +2020-05-19,Alexandria city,Virginia,51510,1544,34 +2020-05-20,Alexandria city,Virginia,51510,1577,34 +2020-05-21,Alexandria city,Virginia,51510,1627,37 +2020-05-22,Alexandria city,Virginia,51510,1657,37 +2020-05-23,Alexandria city,Virginia,51510,1703,38 +2020-05-24,Alexandria city,Virginia,51510,1733,38 +2020-05-25,Alexandria city,Virginia,51510,1754,38 +2020-05-26,Alexandria city,Virginia,51510,1785,41 +2020-05-27,Alexandria city,Virginia,51510,1824,42 +2020-05-28,Alexandria city,Virginia,51510,1887,44 +2020-05-29,Alexandria city,Virginia,51510,1941,44 +2020-05-30,Alexandria city,Virginia,51510,1960,44 +2020-05-31,Alexandria city,Virginia,51510,1974,44 +2020-06-01,Alexandria city,Virginia,51510,1981,45 +2020-06-02,Alexandria city,Virginia,51510,2000,44 +2020-06-03,Alexandria city,Virginia,51510,2016,46 +2020-06-04,Alexandria city,Virginia,51510,2031,46 +2020-06-05,Alexandria city,Virginia,51510,2045,45 +2020-06-06,Alexandria city,Virginia,51510,2070,45 +2020-06-07,Alexandria city,Virginia,51510,2095,45 +2020-06-08,Alexandria city,Virginia,51510,2102,45 +2020-06-09,Alexandria city,Virginia,51510,2115,47 +2020-06-10,Alexandria city,Virginia,51510,2125,47 +2020-06-11,Alexandria city,Virginia,51510,2127,48 +2020-06-12,Alexandria city,Virginia,51510,2128,48 +2020-06-13,Alexandria city,Virginia,51510,2134,48 +2020-06-14,Alexandria city,Virginia,51510,2151,48 +2020-06-15,Alexandria city,Virginia,51510,2160,48 +2020-06-16,Alexandria city,Virginia,51510,2168,47 +2020-06-17,Alexandria city,Virginia,51510,2175,48 +2020-06-18,Alexandria city,Virginia,51510,2186,48 +2020-06-19,Alexandria city,Virginia,51510,2198,48 +2020-06-20,Alexandria city,Virginia,51510,2217,49 +2020-06-21,Alexandria city,Virginia,51510,2227,49 +2020-06-22,Alexandria city,Virginia,51510,2236,49 +2020-06-23,Alexandria city,Virginia,51510,2248,49 +2020-06-24,Alexandria city,Virginia,51510,2258,50 +2020-06-25,Alexandria city,Virginia,51510,2271,50 +2020-06-26,Alexandria city,Virginia,51510,2287,56 +2020-06-27,Alexandria city,Virginia,51510,2303,57 +2020-06-28,Alexandria city,Virginia,51510,2312,57 +2020-06-29,Alexandria city,Virginia,51510,2317,57 +2020-06-30,Alexandria city,Virginia,51510,2325,57 +2020-07-01,Alexandria city,Virginia,51510,2325,57 +2020-07-02,Alexandria city,Virginia,51510,2327,57 +2020-07-03,Alexandria city,Virginia,51510,2338,57 +2020-07-04,Alexandria city,Virginia,51510,2357,57 +2020-07-05,Alexandria city,Virginia,51510,2376,57 +2020-07-06,Alexandria city,Virginia,51510,2380,57 +2020-07-07,Alexandria city,Virginia,51510,2399,57 +2020-07-08,Alexandria city,Virginia,51510,2408,57 +2020-07-09,Alexandria city,Virginia,51510,2419,57 +2020-03-27,Bristol city,Virginia,51520,1,0 +2020-03-28,Bristol city,Virginia,51520,1,0 +2020-03-29,Bristol city,Virginia,51520,1,0 +2020-03-30,Bristol city,Virginia,51520,1,0 +2020-03-31,Bristol city,Virginia,51520,1,0 +2020-04-01,Bristol city,Virginia,51520,1,0 +2020-04-02,Bristol city,Virginia,51520,1,0 +2020-04-03,Bristol city,Virginia,51520,1,0 +2020-04-04,Bristol city,Virginia,51520,1,0 +2020-04-05,Bristol city,Virginia,51520,1,0 +2020-04-06,Bristol city,Virginia,51520,1,0 +2020-04-07,Bristol city,Virginia,51520,1,0 +2020-04-08,Bristol city,Virginia,51520,1,0 +2020-04-09,Bristol city,Virginia,51520,1,0 +2020-04-10,Bristol city,Virginia,51520,1,0 +2020-04-11,Bristol city,Virginia,51520,1,0 +2020-04-12,Bristol city,Virginia,51520,1,0 +2020-04-13,Bristol city,Virginia,51520,1,0 +2020-04-14,Bristol city,Virginia,51520,1,0 +2020-04-15,Bristol city,Virginia,51520,1,0 +2020-04-16,Bristol city,Virginia,51520,1,0 +2020-04-17,Bristol city,Virginia,51520,1,0 +2020-04-18,Bristol city,Virginia,51520,1,0 +2020-04-19,Bristol city,Virginia,51520,1,0 +2020-04-20,Bristol city,Virginia,51520,1,0 +2020-04-21,Bristol city,Virginia,51520,1,0 +2020-04-22,Bristol city,Virginia,51520,1,0 +2020-04-23,Bristol city,Virginia,51520,1,0 +2020-04-24,Bristol city,Virginia,51520,1,0 +2020-04-25,Bristol city,Virginia,51520,1,0 +2020-04-26,Bristol city,Virginia,51520,1,0 +2020-04-27,Bristol city,Virginia,51520,1,0 +2020-04-28,Bristol city,Virginia,51520,1,0 +2020-04-29,Bristol city,Virginia,51520,1,0 +2020-04-30,Bristol city,Virginia,51520,1,0 +2020-05-01,Bristol city,Virginia,51520,1,0 +2020-05-02,Bristol city,Virginia,51520,1,0 +2020-05-03,Bristol city,Virginia,51520,2,0 +2020-05-04,Bristol city,Virginia,51520,2,0 +2020-05-05,Bristol city,Virginia,51520,2,0 +2020-05-06,Bristol city,Virginia,51520,2,0 +2020-05-07,Bristol city,Virginia,51520,2,0 +2020-05-08,Bristol city,Virginia,51520,2,0 +2020-05-09,Bristol city,Virginia,51520,2,0 +2020-05-10,Bristol city,Virginia,51520,3,0 +2020-05-11,Bristol city,Virginia,51520,3,0 +2020-05-12,Bristol city,Virginia,51520,3,0 +2020-05-13,Bristol city,Virginia,51520,3,0 +2020-05-14,Bristol city,Virginia,51520,3,0 +2020-05-15,Bristol city,Virginia,51520,3,0 +2020-05-16,Bristol city,Virginia,51520,3,0 +2020-05-17,Bristol city,Virginia,51520,3,0 +2020-05-18,Bristol city,Virginia,51520,3,0 +2020-05-19,Bristol city,Virginia,51520,3,0 +2020-05-20,Bristol city,Virginia,51520,3,0 +2020-05-21,Bristol city,Virginia,51520,4,0 +2020-05-22,Bristol city,Virginia,51520,4,0 +2020-05-23,Bristol city,Virginia,51520,4,0 +2020-05-24,Bristol city,Virginia,51520,4,0 +2020-05-25,Bristol city,Virginia,51520,4,0 +2020-05-26,Bristol city,Virginia,51520,4,0 +2020-05-27,Bristol city,Virginia,51520,4,0 +2020-05-28,Bristol city,Virginia,51520,4,0 +2020-05-29,Bristol city,Virginia,51520,4,0 +2020-05-30,Bristol city,Virginia,51520,4,0 +2020-05-31,Bristol city,Virginia,51520,4,0 +2020-06-01,Bristol city,Virginia,51520,4,0 +2020-06-02,Bristol city,Virginia,51520,4,0 +2020-06-03,Bristol city,Virginia,51520,4,0 +2020-06-04,Bristol city,Virginia,51520,4,0 +2020-06-05,Bristol city,Virginia,51520,4,0 +2020-06-06,Bristol city,Virginia,51520,4,0 +2020-06-07,Bristol city,Virginia,51520,4,0 +2020-06-08,Bristol city,Virginia,51520,4,0 +2020-06-09,Bristol city,Virginia,51520,4,0 +2020-06-10,Bristol city,Virginia,51520,4,0 +2020-06-11,Bristol city,Virginia,51520,4,0 +2020-06-12,Bristol city,Virginia,51520,4,0 +2020-06-13,Bristol city,Virginia,51520,4,0 +2020-06-14,Bristol city,Virginia,51520,4,0 +2020-06-15,Bristol city,Virginia,51520,4,0 +2020-06-16,Bristol city,Virginia,51520,4,0 +2020-06-17,Bristol city,Virginia,51520,4,0 +2020-06-18,Bristol city,Virginia,51520,4,0 +2020-06-19,Bristol city,Virginia,51520,4,0 +2020-06-20,Bristol city,Virginia,51520,4,0 +2020-06-21,Bristol city,Virginia,51520,4,0 +2020-06-22,Bristol city,Virginia,51520,4,0 +2020-06-23,Bristol city,Virginia,51520,4,0 +2020-06-24,Bristol city,Virginia,51520,4,0 +2020-06-25,Bristol city,Virginia,51520,4,0 +2020-06-26,Bristol city,Virginia,51520,4,0 +2020-06-27,Bristol city,Virginia,51520,4,0 +2020-06-28,Bristol city,Virginia,51520,4,0 +2020-06-29,Bristol city,Virginia,51520,4,0 +2020-06-30,Bristol city,Virginia,51520,4,0 +2020-07-01,Bristol city,Virginia,51520,4,0 +2020-07-02,Bristol city,Virginia,51520,4,0 +2020-07-03,Bristol city,Virginia,51520,5,0 +2020-07-04,Bristol city,Virginia,51520,5,0 +2020-07-05,Bristol city,Virginia,51520,5,0 +2020-07-06,Bristol city,Virginia,51520,5,0 +2020-07-07,Bristol city,Virginia,51520,5,0 +2020-07-08,Bristol city,Virginia,51520,7,0 +2020-07-09,Bristol city,Virginia,51520,8,0 +2020-04-03,Buena Vista city,Virginia,51530,1,0 +2020-04-04,Buena Vista city,Virginia,51530,1,0 +2020-04-05,Buena Vista city,Virginia,51530,4,0 +2020-04-06,Buena Vista city,Virginia,51530,4,0 +2020-04-07,Buena Vista city,Virginia,51530,4,0 +2020-04-08,Buena Vista city,Virginia,51530,4,0 +2020-04-09,Buena Vista city,Virginia,51530,4,0 +2020-04-10,Buena Vista city,Virginia,51530,4,0 +2020-04-11,Buena Vista city,Virginia,51530,4,0 +2020-04-12,Buena Vista city,Virginia,51530,4,0 +2020-04-13,Buena Vista city,Virginia,51530,4,0 +2020-04-14,Buena Vista city,Virginia,51530,4,0 +2020-04-15,Buena Vista city,Virginia,51530,4,0 +2020-04-16,Buena Vista city,Virginia,51530,4,0 +2020-04-17,Buena Vista city,Virginia,51530,5,0 +2020-04-18,Buena Vista city,Virginia,51530,5,0 +2020-04-19,Buena Vista city,Virginia,51530,5,0 +2020-04-20,Buena Vista city,Virginia,51530,5,0 +2020-04-21,Buena Vista city,Virginia,51530,5,0 +2020-04-22,Buena Vista city,Virginia,51530,5,0 +2020-04-23,Buena Vista city,Virginia,51530,5,0 +2020-04-24,Buena Vista city,Virginia,51530,5,0 +2020-04-25,Buena Vista city,Virginia,51530,5,0 +2020-04-26,Buena Vista city,Virginia,51530,5,0 +2020-04-27,Buena Vista city,Virginia,51530,5,0 +2020-04-28,Buena Vista city,Virginia,51530,5,0 +2020-04-29,Buena Vista city,Virginia,51530,5,0 +2020-04-30,Buena Vista city,Virginia,51530,6,0 +2020-05-01,Buena Vista city,Virginia,51530,6,0 +2020-05-02,Buena Vista city,Virginia,51530,6,0 +2020-05-03,Buena Vista city,Virginia,51530,6,0 +2020-05-04,Buena Vista city,Virginia,51530,6,0 +2020-05-05,Buena Vista city,Virginia,51530,6,0 +2020-05-06,Buena Vista city,Virginia,51530,6,0 +2020-05-07,Buena Vista city,Virginia,51530,8,0 +2020-05-08,Buena Vista city,Virginia,51530,8,0 +2020-05-09,Buena Vista city,Virginia,51530,8,0 +2020-05-10,Buena Vista city,Virginia,51530,8,0 +2020-05-11,Buena Vista city,Virginia,51530,8,0 +2020-05-12,Buena Vista city,Virginia,51530,8,0 +2020-05-13,Buena Vista city,Virginia,51530,8,0 +2020-05-14,Buena Vista city,Virginia,51530,8,0 +2020-05-15,Buena Vista city,Virginia,51530,8,0 +2020-05-16,Buena Vista city,Virginia,51530,8,0 +2020-05-17,Buena Vista city,Virginia,51530,8,0 +2020-05-18,Buena Vista city,Virginia,51530,9,0 +2020-05-19,Buena Vista city,Virginia,51530,11,0 +2020-05-20,Buena Vista city,Virginia,51530,11,0 +2020-05-21,Buena Vista city,Virginia,51530,12,0 +2020-05-22,Buena Vista city,Virginia,51530,12,0 +2020-05-23,Buena Vista city,Virginia,51530,12,0 +2020-05-24,Buena Vista city,Virginia,51530,12,0 +2020-05-25,Buena Vista city,Virginia,51530,12,0 +2020-05-26,Buena Vista city,Virginia,51530,13,0 +2020-05-27,Buena Vista city,Virginia,51530,13,0 +2020-05-28,Buena Vista city,Virginia,51530,13,0 +2020-05-29,Buena Vista city,Virginia,51530,13,0 +2020-05-30,Buena Vista city,Virginia,51530,13,0 +2020-05-31,Buena Vista city,Virginia,51530,13,0 +2020-06-01,Buena Vista city,Virginia,51530,13,0 +2020-06-02,Buena Vista city,Virginia,51530,13,0 +2020-06-03,Buena Vista city,Virginia,51530,13,0 +2020-06-04,Buena Vista city,Virginia,51530,13,0 +2020-06-05,Buena Vista city,Virginia,51530,13,0 +2020-06-06,Buena Vista city,Virginia,51530,13,0 +2020-06-07,Buena Vista city,Virginia,51530,13,0 +2020-06-08,Buena Vista city,Virginia,51530,13,0 +2020-06-09,Buena Vista city,Virginia,51530,13,0 +2020-06-10,Buena Vista city,Virginia,51530,13,0 +2020-06-11,Buena Vista city,Virginia,51530,12,0 +2020-06-12,Buena Vista city,Virginia,51530,12,0 +2020-06-13,Buena Vista city,Virginia,51530,12,0 +2020-06-14,Buena Vista city,Virginia,51530,12,0 +2020-06-15,Buena Vista city,Virginia,51530,12,0 +2020-06-16,Buena Vista city,Virginia,51530,12,0 +2020-06-17,Buena Vista city,Virginia,51530,12,0 +2020-06-18,Buena Vista city,Virginia,51530,12,0 +2020-06-19,Buena Vista city,Virginia,51530,12,0 +2020-06-20,Buena Vista city,Virginia,51530,12,0 +2020-06-21,Buena Vista city,Virginia,51530,12,0 +2020-06-22,Buena Vista city,Virginia,51530,12,0 +2020-06-23,Buena Vista city,Virginia,51530,14,0 +2020-06-24,Buena Vista city,Virginia,51530,14,0 +2020-06-25,Buena Vista city,Virginia,51530,14,0 +2020-06-26,Buena Vista city,Virginia,51530,14,0 +2020-06-27,Buena Vista city,Virginia,51530,14,0 +2020-06-28,Buena Vista city,Virginia,51530,14,0 +2020-06-29,Buena Vista city,Virginia,51530,14,0 +2020-06-30,Buena Vista city,Virginia,51530,15,0 +2020-07-01,Buena Vista city,Virginia,51530,16,0 +2020-07-02,Buena Vista city,Virginia,51530,16,0 +2020-07-03,Buena Vista city,Virginia,51530,16,0 +2020-07-04,Buena Vista city,Virginia,51530,15,0 +2020-07-05,Buena Vista city,Virginia,51530,15,0 +2020-07-06,Buena Vista city,Virginia,51530,15,0 +2020-07-07,Buena Vista city,Virginia,51530,16,0 +2020-07-08,Buena Vista city,Virginia,51530,16,0 +2020-07-09,Buena Vista city,Virginia,51530,15,0 +2020-03-17,Charlottesville city,Virginia,51540,1,0 +2020-03-18,Charlottesville city,Virginia,51540,1,0 +2020-03-19,Charlottesville city,Virginia,51540,1,0 +2020-03-20,Charlottesville city,Virginia,51540,1,0 +2020-03-21,Charlottesville city,Virginia,51540,1,0 +2020-03-22,Charlottesville city,Virginia,51540,4,0 +2020-03-23,Charlottesville city,Virginia,51540,4,0 +2020-03-24,Charlottesville city,Virginia,51540,5,0 +2020-03-25,Charlottesville city,Virginia,51540,6,0 +2020-03-26,Charlottesville city,Virginia,51540,9,0 +2020-03-27,Charlottesville city,Virginia,51540,11,0 +2020-03-28,Charlottesville city,Virginia,51540,12,0 +2020-03-29,Charlottesville city,Virginia,51540,12,0 +2020-03-30,Charlottesville city,Virginia,51540,13,0 +2020-03-31,Charlottesville city,Virginia,51540,14,0 +2020-04-01,Charlottesville city,Virginia,51540,16,0 +2020-04-02,Charlottesville city,Virginia,51540,17,0 +2020-04-03,Charlottesville city,Virginia,51540,17,0 +2020-04-04,Charlottesville city,Virginia,51540,21,0 +2020-04-05,Charlottesville city,Virginia,51540,23,0 +2020-04-06,Charlottesville city,Virginia,51540,22,0 +2020-04-07,Charlottesville city,Virginia,51540,23,1 +2020-04-08,Charlottesville city,Virginia,51540,23,1 +2020-04-09,Charlottesville city,Virginia,51540,27,1 +2020-04-10,Charlottesville city,Virginia,51540,28,1 +2020-04-11,Charlottesville city,Virginia,51540,31,1 +2020-04-12,Charlottesville city,Virginia,51540,31,1 +2020-04-13,Charlottesville city,Virginia,51540,33,1 +2020-04-14,Charlottesville city,Virginia,51540,36,1 +2020-04-15,Charlottesville city,Virginia,51540,38,1 +2020-04-16,Charlottesville city,Virginia,51540,38,1 +2020-04-17,Charlottesville city,Virginia,51540,40,1 +2020-04-18,Charlottesville city,Virginia,51540,41,1 +2020-04-19,Charlottesville city,Virginia,51540,41,1 +2020-04-20,Charlottesville city,Virginia,51540,41,1 +2020-04-21,Charlottesville city,Virginia,51540,41,2 +2020-04-22,Charlottesville city,Virginia,51540,44,2 +2020-04-23,Charlottesville city,Virginia,51540,44,2 +2020-04-24,Charlottesville city,Virginia,51540,45,2 +2020-04-25,Charlottesville city,Virginia,51540,48,2 +2020-04-26,Charlottesville city,Virginia,51540,49,2 +2020-04-27,Charlottesville city,Virginia,51540,50,2 +2020-04-28,Charlottesville city,Virginia,51540,51,2 +2020-04-29,Charlottesville city,Virginia,51540,52,2 +2020-04-30,Charlottesville city,Virginia,51540,56,2 +2020-05-01,Charlottesville city,Virginia,51540,58,2 +2020-05-02,Charlottesville city,Virginia,51540,58,2 +2020-05-03,Charlottesville city,Virginia,51540,63,2 +2020-05-04,Charlottesville city,Virginia,51540,63,2 +2020-05-05,Charlottesville city,Virginia,51540,64,2 +2020-05-06,Charlottesville city,Virginia,51540,64,2 +2020-05-07,Charlottesville city,Virginia,51540,65,2 +2020-05-08,Charlottesville city,Virginia,51540,66,2 +2020-05-09,Charlottesville city,Virginia,51540,66,2 +2020-05-10,Charlottesville city,Virginia,51540,66,2 +2020-05-11,Charlottesville city,Virginia,51540,68,2 +2020-05-12,Charlottesville city,Virginia,51540,68,2 +2020-05-13,Charlottesville city,Virginia,51540,68,2 +2020-05-14,Charlottesville city,Virginia,51540,68,2 +2020-05-15,Charlottesville city,Virginia,51540,71,2 +2020-05-16,Charlottesville city,Virginia,51540,71,2 +2020-05-17,Charlottesville city,Virginia,51540,71,2 +2020-05-18,Charlottesville city,Virginia,51540,72,2 +2020-05-19,Charlottesville city,Virginia,51540,72,2 +2020-05-20,Charlottesville city,Virginia,51540,72,2 +2020-05-21,Charlottesville city,Virginia,51540,72,2 +2020-05-22,Charlottesville city,Virginia,51540,74,2 +2020-05-23,Charlottesville city,Virginia,51540,74,3 +2020-05-24,Charlottesville city,Virginia,51540,80,3 +2020-05-25,Charlottesville city,Virginia,51540,82,3 +2020-05-26,Charlottesville city,Virginia,51540,90,3 +2020-05-27,Charlottesville city,Virginia,51540,97,3 +2020-05-28,Charlottesville city,Virginia,51540,102,3 +2020-05-29,Charlottesville city,Virginia,51540,105,3 +2020-05-30,Charlottesville city,Virginia,51540,108,3 +2020-05-31,Charlottesville city,Virginia,51540,116,3 +2020-06-01,Charlottesville city,Virginia,51540,125,3 +2020-06-02,Charlottesville city,Virginia,51540,128,3 +2020-06-03,Charlottesville city,Virginia,51540,128,3 +2020-06-04,Charlottesville city,Virginia,51540,131,3 +2020-06-05,Charlottesville city,Virginia,51540,131,3 +2020-06-06,Charlottesville city,Virginia,51540,131,3 +2020-06-07,Charlottesville city,Virginia,51540,137,3 +2020-06-08,Charlottesville city,Virginia,51540,139,3 +2020-06-09,Charlottesville city,Virginia,51540,141,3 +2020-06-10,Charlottesville city,Virginia,51540,142,3 +2020-06-11,Charlottesville city,Virginia,51540,144,3 +2020-06-12,Charlottesville city,Virginia,51540,146,3 +2020-06-13,Charlottesville city,Virginia,51540,148,3 +2020-06-14,Charlottesville city,Virginia,51540,152,3 +2020-06-15,Charlottesville city,Virginia,51540,154,3 +2020-06-16,Charlottesville city,Virginia,51540,160,3 +2020-06-17,Charlottesville city,Virginia,51540,161,3 +2020-06-18,Charlottesville city,Virginia,51540,164,3 +2020-06-19,Charlottesville city,Virginia,51540,164,3 +2020-06-20,Charlottesville city,Virginia,51540,166,3 +2020-06-21,Charlottesville city,Virginia,51540,169,3 +2020-06-22,Charlottesville city,Virginia,51540,172,3 +2020-06-23,Charlottesville city,Virginia,51540,176,3 +2020-06-24,Charlottesville city,Virginia,51540,182,3 +2020-06-25,Charlottesville city,Virginia,51540,193,3 +2020-06-26,Charlottesville city,Virginia,51540,196,3 +2020-06-27,Charlottesville city,Virginia,51540,200,3 +2020-06-28,Charlottesville city,Virginia,51540,209,3 +2020-06-29,Charlottesville city,Virginia,51540,211,3 +2020-06-30,Charlottesville city,Virginia,51540,212,3 +2020-07-01,Charlottesville city,Virginia,51540,216,4 +2020-07-02,Charlottesville city,Virginia,51540,218,5 +2020-07-03,Charlottesville city,Virginia,51540,220,6 +2020-07-04,Charlottesville city,Virginia,51540,230,6 +2020-07-05,Charlottesville city,Virginia,51540,237,6 +2020-07-06,Charlottesville city,Virginia,51540,237,6 +2020-07-07,Charlottesville city,Virginia,51540,239,7 +2020-07-08,Charlottesville city,Virginia,51540,241,7 +2020-07-09,Charlottesville city,Virginia,51540,251,7 +2020-03-24,Chesapeake city,Virginia,51550,1,0 +2020-03-25,Chesapeake city,Virginia,51550,3,0 +2020-03-26,Chesapeake city,Virginia,51550,4,0 +2020-03-27,Chesapeake city,Virginia,51550,5,0 +2020-03-28,Chesapeake city,Virginia,51550,7,0 +2020-03-29,Chesapeake city,Virginia,51550,15,0 +2020-03-30,Chesapeake city,Virginia,51550,18,0 +2020-03-31,Chesapeake city,Virginia,51550,23,0 +2020-04-01,Chesapeake city,Virginia,51550,31,0 +2020-04-02,Chesapeake city,Virginia,51550,39,0 +2020-04-03,Chesapeake city,Virginia,51550,50,1 +2020-04-04,Chesapeake city,Virginia,51550,65,1 +2020-04-05,Chesapeake city,Virginia,51550,72,1 +2020-04-06,Chesapeake city,Virginia,51550,77,1 +2020-04-07,Chesapeake city,Virginia,51550,80,1 +2020-04-08,Chesapeake city,Virginia,51550,99,1 +2020-04-09,Chesapeake city,Virginia,51550,101,1 +2020-04-10,Chesapeake city,Virginia,51550,109,1 +2020-04-11,Chesapeake city,Virginia,51550,115,1 +2020-04-12,Chesapeake city,Virginia,51550,121,1 +2020-04-13,Chesapeake city,Virginia,51550,126,1 +2020-04-14,Chesapeake city,Virginia,51550,136,3 +2020-04-15,Chesapeake city,Virginia,51550,140,3 +2020-04-16,Chesapeake city,Virginia,51550,143,3 +2020-04-17,Chesapeake city,Virginia,51550,147,3 +2020-04-18,Chesapeake city,Virginia,51550,154,3 +2020-04-19,Chesapeake city,Virginia,51550,162,5 +2020-04-20,Chesapeake city,Virginia,51550,166,5 +2020-04-21,Chesapeake city,Virginia,51550,176,5 +2020-04-22,Chesapeake city,Virginia,51550,180,5 +2020-04-23,Chesapeake city,Virginia,51550,186,5 +2020-04-24,Chesapeake city,Virginia,51550,197,5 +2020-04-25,Chesapeake city,Virginia,51550,200,6 +2020-04-26,Chesapeake city,Virginia,51550,208,6 +2020-04-27,Chesapeake city,Virginia,51550,214,6 +2020-04-28,Chesapeake city,Virginia,51550,220,6 +2020-04-29,Chesapeake city,Virginia,51550,232,6 +2020-04-30,Chesapeake city,Virginia,51550,242,6 +2020-05-01,Chesapeake city,Virginia,51550,256,7 +2020-05-02,Chesapeake city,Virginia,51550,263,7 +2020-05-03,Chesapeake city,Virginia,51550,279,9 +2020-05-04,Chesapeake city,Virginia,51550,284,9 +2020-05-05,Chesapeake city,Virginia,51550,293,9 +2020-05-06,Chesapeake city,Virginia,51550,293,9 +2020-05-07,Chesapeake city,Virginia,51550,311,9 +2020-05-08,Chesapeake city,Virginia,51550,316,9 +2020-05-09,Chesapeake city,Virginia,51550,325,9 +2020-05-10,Chesapeake city,Virginia,51550,328,9 +2020-05-11,Chesapeake city,Virginia,51550,340,9 +2020-05-12,Chesapeake city,Virginia,51550,343,9 +2020-05-13,Chesapeake city,Virginia,51550,354,9 +2020-05-14,Chesapeake city,Virginia,51550,362,9 +2020-05-15,Chesapeake city,Virginia,51550,379,10 +2020-05-16,Chesapeake city,Virginia,51550,380,10 +2020-05-17,Chesapeake city,Virginia,51550,384,10 +2020-05-18,Chesapeake city,Virginia,51550,387,10 +2020-05-19,Chesapeake city,Virginia,51550,396,10 +2020-05-20,Chesapeake city,Virginia,51550,401,12 +2020-05-21,Chesapeake city,Virginia,51550,412,13 +2020-05-22,Chesapeake city,Virginia,51550,419,13 +2020-05-23,Chesapeake city,Virginia,51550,426,13 +2020-05-24,Chesapeake city,Virginia,51550,433,13 +2020-05-25,Chesapeake city,Virginia,51550,449,14 +2020-05-26,Chesapeake city,Virginia,51550,459,14 +2020-05-27,Chesapeake city,Virginia,51550,472,14 +2020-05-28,Chesapeake city,Virginia,51550,481,14 +2020-05-29,Chesapeake city,Virginia,51550,494,15 +2020-05-30,Chesapeake city,Virginia,51550,520,15 +2020-05-31,Chesapeake city,Virginia,51550,521,15 +2020-06-01,Chesapeake city,Virginia,51550,535,15 +2020-06-02,Chesapeake city,Virginia,51550,541,15 +2020-06-03,Chesapeake city,Virginia,51550,548,15 +2020-06-04,Chesapeake city,Virginia,51550,554,15 +2020-06-05,Chesapeake city,Virginia,51550,563,15 +2020-06-06,Chesapeake city,Virginia,51550,577,15 +2020-06-07,Chesapeake city,Virginia,51550,592,15 +2020-06-08,Chesapeake city,Virginia,51550,596,15 +2020-06-09,Chesapeake city,Virginia,51550,605,15 +2020-06-10,Chesapeake city,Virginia,51550,617,15 +2020-06-11,Chesapeake city,Virginia,51550,622,15 +2020-06-12,Chesapeake city,Virginia,51550,636,16 +2020-06-13,Chesapeake city,Virginia,51550,650,16 +2020-06-14,Chesapeake city,Virginia,51550,659,16 +2020-06-15,Chesapeake city,Virginia,51550,672,16 +2020-06-16,Chesapeake city,Virginia,51550,678,16 +2020-06-17,Chesapeake city,Virginia,51550,684,16 +2020-06-18,Chesapeake city,Virginia,51550,697,16 +2020-06-19,Chesapeake city,Virginia,51550,709,16 +2020-06-20,Chesapeake city,Virginia,51550,721,16 +2020-06-21,Chesapeake city,Virginia,51550,733,16 +2020-06-22,Chesapeake city,Virginia,51550,759,16 +2020-06-23,Chesapeake city,Virginia,51550,774,16 +2020-06-24,Chesapeake city,Virginia,51550,792,16 +2020-06-25,Chesapeake city,Virginia,51550,800,16 +2020-06-26,Chesapeake city,Virginia,51550,846,18 +2020-06-27,Chesapeake city,Virginia,51550,854,20 +2020-06-28,Chesapeake city,Virginia,51550,879,20 +2020-06-29,Chesapeake city,Virginia,51550,887,20 +2020-06-30,Chesapeake city,Virginia,51550,895,20 +2020-07-01,Chesapeake city,Virginia,51550,925,20 +2020-07-02,Chesapeake city,Virginia,51550,959,21 +2020-07-03,Chesapeake city,Virginia,51550,972,21 +2020-07-04,Chesapeake city,Virginia,51550,1003,21 +2020-07-05,Chesapeake city,Virginia,51550,1015,21 +2020-07-06,Chesapeake city,Virginia,51550,1026,21 +2020-07-07,Chesapeake city,Virginia,51550,1046,22 +2020-07-08,Chesapeake city,Virginia,51550,1088,22 +2020-07-09,Chesapeake city,Virginia,51550,1117,22 +2020-04-10,Colonial Heights city,Virginia,51570,4,0 +2020-04-11,Colonial Heights city,Virginia,51570,6,0 +2020-04-12,Colonial Heights city,Virginia,51570,6,0 +2020-04-13,Colonial Heights city,Virginia,51570,10,0 +2020-04-14,Colonial Heights city,Virginia,51570,16,0 +2020-04-15,Colonial Heights city,Virginia,51570,17,0 +2020-04-16,Colonial Heights city,Virginia,51570,18,0 +2020-04-17,Colonial Heights city,Virginia,51570,19,0 +2020-04-18,Colonial Heights city,Virginia,51570,23,0 +2020-04-19,Colonial Heights city,Virginia,51570,23,0 +2020-04-20,Colonial Heights city,Virginia,51570,26,0 +2020-04-21,Colonial Heights city,Virginia,51570,36,2 +2020-04-22,Colonial Heights city,Virginia,51570,37,2 +2020-04-23,Colonial Heights city,Virginia,51570,41,2 +2020-04-24,Colonial Heights city,Virginia,51570,41,3 +2020-04-25,Colonial Heights city,Virginia,51570,43,3 +2020-04-26,Colonial Heights city,Virginia,51570,45,3 +2020-04-27,Colonial Heights city,Virginia,51570,45,3 +2020-04-28,Colonial Heights city,Virginia,51570,47,4 +2020-04-29,Colonial Heights city,Virginia,51570,49,4 +2020-04-30,Colonial Heights city,Virginia,51570,54,5 +2020-05-01,Colonial Heights city,Virginia,51570,54,5 +2020-05-02,Colonial Heights city,Virginia,51570,57,5 +2020-05-03,Colonial Heights city,Virginia,51570,57,6 +2020-05-04,Colonial Heights city,Virginia,51570,57,6 +2020-05-05,Colonial Heights city,Virginia,51570,58,6 +2020-05-06,Colonial Heights city,Virginia,51570,58,6 +2020-05-07,Colonial Heights city,Virginia,51570,64,6 +2020-05-08,Colonial Heights city,Virginia,51570,65,6 +2020-05-09,Colonial Heights city,Virginia,51570,65,6 +2020-05-10,Colonial Heights city,Virginia,51570,66,6 +2020-05-11,Colonial Heights city,Virginia,51570,66,6 +2020-05-12,Colonial Heights city,Virginia,51570,67,6 +2020-05-13,Colonial Heights city,Virginia,51570,71,7 +2020-05-14,Colonial Heights city,Virginia,51570,73,7 +2020-05-15,Colonial Heights city,Virginia,51570,74,7 +2020-05-16,Colonial Heights city,Virginia,51570,76,7 +2020-05-17,Colonial Heights city,Virginia,51570,76,7 +2020-05-18,Colonial Heights city,Virginia,51570,76,7 +2020-05-19,Colonial Heights city,Virginia,51570,77,7 +2020-05-20,Colonial Heights city,Virginia,51570,80,7 +2020-05-21,Colonial Heights city,Virginia,51570,82,7 +2020-05-22,Colonial Heights city,Virginia,51570,83,8 +2020-05-23,Colonial Heights city,Virginia,51570,83,8 +2020-05-24,Colonial Heights city,Virginia,51570,83,8 +2020-05-25,Colonial Heights city,Virginia,51570,83,8 +2020-05-26,Colonial Heights city,Virginia,51570,85,10 +2020-05-27,Colonial Heights city,Virginia,51570,85,10 +2020-05-28,Colonial Heights city,Virginia,51570,86,15 +2020-05-29,Colonial Heights city,Virginia,51570,86,17 +2020-05-30,Colonial Heights city,Virginia,51570,91,17 +2020-05-31,Colonial Heights city,Virginia,51570,95,17 +2020-06-01,Colonial Heights city,Virginia,51570,96,17 +2020-06-02,Colonial Heights city,Virginia,51570,96,17 +2020-06-03,Colonial Heights city,Virginia,51570,96,17 +2020-06-04,Colonial Heights city,Virginia,51570,97,17 +2020-06-05,Colonial Heights city,Virginia,51570,97,17 +2020-06-06,Colonial Heights city,Virginia,51570,97,17 +2020-06-07,Colonial Heights city,Virginia,51570,98,17 +2020-06-08,Colonial Heights city,Virginia,51570,101,17 +2020-06-09,Colonial Heights city,Virginia,51570,104,17 +2020-06-10,Colonial Heights city,Virginia,51570,106,17 +2020-06-11,Colonial Heights city,Virginia,51570,106,17 +2020-06-12,Colonial Heights city,Virginia,51570,111,17 +2020-06-13,Colonial Heights city,Virginia,51570,115,17 +2020-06-14,Colonial Heights city,Virginia,51570,115,17 +2020-06-15,Colonial Heights city,Virginia,51570,115,17 +2020-06-16,Colonial Heights city,Virginia,51570,117,17 +2020-06-17,Colonial Heights city,Virginia,51570,117,17 +2020-06-18,Colonial Heights city,Virginia,51570,119,17 +2020-06-19,Colonial Heights city,Virginia,51570,126,17 +2020-06-20,Colonial Heights city,Virginia,51570,131,17 +2020-06-21,Colonial Heights city,Virginia,51570,131,17 +2020-06-22,Colonial Heights city,Virginia,51570,131,17 +2020-06-23,Colonial Heights city,Virginia,51570,132,17 +2020-06-24,Colonial Heights city,Virginia,51570,139,17 +2020-06-25,Colonial Heights city,Virginia,51570,142,17 +2020-06-26,Colonial Heights city,Virginia,51570,142,17 +2020-06-27,Colonial Heights city,Virginia,51570,143,17 +2020-06-28,Colonial Heights city,Virginia,51570,143,17 +2020-06-29,Colonial Heights city,Virginia,51570,143,17 +2020-06-30,Colonial Heights city,Virginia,51570,143,17 +2020-07-01,Colonial Heights city,Virginia,51570,144,17 +2020-07-02,Colonial Heights city,Virginia,51570,145,18 +2020-07-03,Colonial Heights city,Virginia,51570,145,18 +2020-07-04,Colonial Heights city,Virginia,51570,145,18 +2020-07-05,Colonial Heights city,Virginia,51570,148,18 +2020-07-06,Colonial Heights city,Virginia,51570,150,18 +2020-07-07,Colonial Heights city,Virginia,51570,151,18 +2020-07-08,Colonial Heights city,Virginia,51570,151,18 +2020-07-09,Colonial Heights city,Virginia,51570,151,20 +2020-05-09,Covington city,Virginia,51580,1,0 +2020-05-10,Covington city,Virginia,51580,1,0 +2020-05-11,Covington city,Virginia,51580,1,0 +2020-05-12,Covington city,Virginia,51580,1,0 +2020-05-13,Covington city,Virginia,51580,1,0 +2020-05-14,Covington city,Virginia,51580,2,0 +2020-05-15,Covington city,Virginia,51580,2,0 +2020-05-16,Covington city,Virginia,51580,2,0 +2020-05-17,Covington city,Virginia,51580,2,0 +2020-05-18,Covington city,Virginia,51580,2,0 +2020-05-19,Covington city,Virginia,51580,2,0 +2020-05-20,Covington city,Virginia,51580,3,0 +2020-05-21,Covington city,Virginia,51580,3,0 +2020-05-22,Covington city,Virginia,51580,3,0 +2020-05-23,Covington city,Virginia,51580,3,0 +2020-05-24,Covington city,Virginia,51580,3,0 +2020-05-25,Covington city,Virginia,51580,3,0 +2020-05-26,Covington city,Virginia,51580,3,0 +2020-05-27,Covington city,Virginia,51580,3,0 +2020-05-28,Covington city,Virginia,51580,3,0 +2020-05-29,Covington city,Virginia,51580,3,0 +2020-05-30,Covington city,Virginia,51580,4,0 +2020-05-31,Covington city,Virginia,51580,4,0 +2020-06-01,Covington city,Virginia,51580,4,0 +2020-06-02,Covington city,Virginia,51580,4,0 +2020-06-03,Covington city,Virginia,51580,4,0 +2020-06-04,Covington city,Virginia,51580,4,0 +2020-06-05,Covington city,Virginia,51580,4,0 +2020-06-06,Covington city,Virginia,51580,4,0 +2020-06-07,Covington city,Virginia,51580,4,0 +2020-06-08,Covington city,Virginia,51580,4,0 +2020-06-09,Covington city,Virginia,51580,4,0 +2020-06-10,Covington city,Virginia,51580,4,0 +2020-06-11,Covington city,Virginia,51580,4,0 +2020-06-12,Covington city,Virginia,51580,4,0 +2020-06-13,Covington city,Virginia,51580,4,0 +2020-06-14,Covington city,Virginia,51580,4,0 +2020-06-15,Covington city,Virginia,51580,4,0 +2020-06-16,Covington city,Virginia,51580,4,0 +2020-06-17,Covington city,Virginia,51580,4,0 +2020-06-18,Covington city,Virginia,51580,4,0 +2020-06-19,Covington city,Virginia,51580,4,0 +2020-06-20,Covington city,Virginia,51580,4,0 +2020-06-21,Covington city,Virginia,51580,4,0 +2020-06-22,Covington city,Virginia,51580,4,0 +2020-06-23,Covington city,Virginia,51580,4,0 +2020-06-24,Covington city,Virginia,51580,4,0 +2020-06-25,Covington city,Virginia,51580,3,0 +2020-06-26,Covington city,Virginia,51580,3,0 +2020-06-27,Covington city,Virginia,51580,3,0 +2020-06-28,Covington city,Virginia,51580,3,0 +2020-06-29,Covington city,Virginia,51580,3,0 +2020-06-30,Covington city,Virginia,51580,5,0 +2020-07-01,Covington city,Virginia,51580,5,0 +2020-07-02,Covington city,Virginia,51580,5,0 +2020-07-03,Covington city,Virginia,51580,5,0 +2020-07-04,Covington city,Virginia,51580,5,0 +2020-07-05,Covington city,Virginia,51580,5,0 +2020-07-06,Covington city,Virginia,51580,5,0 +2020-07-07,Covington city,Virginia,51580,5,0 +2020-07-08,Covington city,Virginia,51580,5,0 +2020-07-09,Covington city,Virginia,51580,5,0 +2020-03-23,Danville city,Virginia,51590,1,0 +2020-03-24,Danville city,Virginia,51590,1,0 +2020-03-25,Danville city,Virginia,51590,2,0 +2020-03-26,Danville city,Virginia,51590,2,0 +2020-03-27,Danville city,Virginia,51590,4,0 +2020-03-28,Danville city,Virginia,51590,4,0 +2020-03-29,Danville city,Virginia,51590,4,0 +2020-03-30,Danville city,Virginia,51590,4,0 +2020-03-31,Danville city,Virginia,51590,4,0 +2020-04-01,Danville city,Virginia,51590,4,0 +2020-04-02,Danville city,Virginia,51590,7,0 +2020-04-03,Danville city,Virginia,51590,9,0 +2020-04-04,Danville city,Virginia,51590,12,0 +2020-04-05,Danville city,Virginia,51590,12,0 +2020-04-06,Danville city,Virginia,51590,13,0 +2020-04-07,Danville city,Virginia,51590,15,0 +2020-04-08,Danville city,Virginia,51590,15,0 +2020-04-09,Danville city,Virginia,51590,19,0 +2020-04-10,Danville city,Virginia,51590,20,0 +2020-04-11,Danville city,Virginia,51590,20,0 +2020-04-12,Danville city,Virginia,51590,20,0 +2020-04-13,Danville city,Virginia,51590,21,0 +2020-04-14,Danville city,Virginia,51590,22,0 +2020-04-15,Danville city,Virginia,51590,22,0 +2020-04-16,Danville city,Virginia,51590,22,0 +2020-04-17,Danville city,Virginia,51590,22,0 +2020-04-18,Danville city,Virginia,51590,24,0 +2020-04-19,Danville city,Virginia,51590,27,0 +2020-04-20,Danville city,Virginia,51590,28,0 +2020-04-21,Danville city,Virginia,51590,29,1 +2020-04-22,Danville city,Virginia,51590,29,1 +2020-04-23,Danville city,Virginia,51590,31,1 +2020-04-24,Danville city,Virginia,51590,31,1 +2020-04-25,Danville city,Virginia,51590,32,1 +2020-04-26,Danville city,Virginia,51590,33,1 +2020-04-27,Danville city,Virginia,51590,33,1 +2020-04-28,Danville city,Virginia,51590,33,1 +2020-04-29,Danville city,Virginia,51590,34,1 +2020-04-30,Danville city,Virginia,51590,35,1 +2020-05-01,Danville city,Virginia,51590,35,1 +2020-05-02,Danville city,Virginia,51590,37,1 +2020-05-03,Danville city,Virginia,51590,37,1 +2020-05-04,Danville city,Virginia,51590,37,1 +2020-05-05,Danville city,Virginia,51590,37,1 +2020-05-06,Danville city,Virginia,51590,37,1 +2020-05-07,Danville city,Virginia,51590,38,1 +2020-05-08,Danville city,Virginia,51590,39,1 +2020-05-09,Danville city,Virginia,51590,39,1 +2020-05-10,Danville city,Virginia,51590,38,1 +2020-05-11,Danville city,Virginia,51590,39,1 +2020-05-12,Danville city,Virginia,51590,41,1 +2020-05-13,Danville city,Virginia,51590,41,1 +2020-05-14,Danville city,Virginia,51590,43,1 +2020-05-15,Danville city,Virginia,51590,43,1 +2020-05-16,Danville city,Virginia,51590,44,1 +2020-05-17,Danville city,Virginia,51590,44,1 +2020-05-18,Danville city,Virginia,51590,44,1 +2020-05-19,Danville city,Virginia,51590,44,1 +2020-05-20,Danville city,Virginia,51590,45,1 +2020-05-21,Danville city,Virginia,51590,45,1 +2020-05-22,Danville city,Virginia,51590,46,2 +2020-05-23,Danville city,Virginia,51590,46,2 +2020-05-24,Danville city,Virginia,51590,46,2 +2020-05-25,Danville city,Virginia,51590,48,2 +2020-05-26,Danville city,Virginia,51590,48,2 +2020-05-27,Danville city,Virginia,51590,48,2 +2020-05-28,Danville city,Virginia,51590,50,2 +2020-05-29,Danville city,Virginia,51590,51,2 +2020-05-30,Danville city,Virginia,51590,51,2 +2020-05-31,Danville city,Virginia,51590,55,2 +2020-06-01,Danville city,Virginia,51590,56,2 +2020-06-02,Danville city,Virginia,51590,57,2 +2020-06-03,Danville city,Virginia,51590,58,2 +2020-06-04,Danville city,Virginia,51590,58,2 +2020-06-05,Danville city,Virginia,51590,60,2 +2020-06-06,Danville city,Virginia,51590,60,2 +2020-06-07,Danville city,Virginia,51590,60,2 +2020-06-08,Danville city,Virginia,51590,60,2 +2020-06-09,Danville city,Virginia,51590,60,2 +2020-06-10,Danville city,Virginia,51590,61,2 +2020-06-11,Danville city,Virginia,51590,61,2 +2020-06-12,Danville city,Virginia,51590,63,2 +2020-06-13,Danville city,Virginia,51590,63,2 +2020-06-14,Danville city,Virginia,51590,65,2 +2020-06-15,Danville city,Virginia,51590,66,2 +2020-06-16,Danville city,Virginia,51590,66,2 +2020-06-17,Danville city,Virginia,51590,66,2 +2020-06-18,Danville city,Virginia,51590,68,2 +2020-06-19,Danville city,Virginia,51590,68,2 +2020-06-20,Danville city,Virginia,51590,72,2 +2020-06-21,Danville city,Virginia,51590,73,2 +2020-06-22,Danville city,Virginia,51590,73,2 +2020-06-23,Danville city,Virginia,51590,72,2 +2020-06-24,Danville city,Virginia,51590,73,2 +2020-06-25,Danville city,Virginia,51590,73,2 +2020-06-26,Danville city,Virginia,51590,77,2 +2020-06-27,Danville city,Virginia,51590,79,2 +2020-06-28,Danville city,Virginia,51590,80,2 +2020-06-29,Danville city,Virginia,51590,82,2 +2020-06-30,Danville city,Virginia,51590,86,2 +2020-07-01,Danville city,Virginia,51590,87,2 +2020-07-02,Danville city,Virginia,51590,89,2 +2020-07-03,Danville city,Virginia,51590,91,2 +2020-07-04,Danville city,Virginia,51590,93,2 +2020-07-05,Danville city,Virginia,51590,99,2 +2020-07-06,Danville city,Virginia,51590,99,2 +2020-07-07,Danville city,Virginia,51590,99,2 +2020-07-08,Danville city,Virginia,51590,101,2 +2020-07-09,Danville city,Virginia,51590,102,2 +2020-04-03,Emporia city,Virginia,51595,1,0 +2020-04-04,Emporia city,Virginia,51595,2,0 +2020-04-05,Emporia city,Virginia,51595,2,0 +2020-04-06,Emporia city,Virginia,51595,2,0 +2020-04-07,Emporia city,Virginia,51595,2,0 +2020-04-08,Emporia city,Virginia,51595,4,0 +2020-04-09,Emporia city,Virginia,51595,5,0 +2020-04-10,Emporia city,Virginia,51595,5,0 +2020-04-11,Emporia city,Virginia,51595,7,0 +2020-04-12,Emporia city,Virginia,51595,7,0 +2020-04-13,Emporia city,Virginia,51595,7,0 +2020-04-14,Emporia city,Virginia,51595,8,0 +2020-04-15,Emporia city,Virginia,51595,7,0 +2020-04-16,Emporia city,Virginia,51595,7,0 +2020-04-17,Emporia city,Virginia,51595,7,0 +2020-04-18,Emporia city,Virginia,51595,7,0 +2020-04-19,Emporia city,Virginia,51595,7,0 +2020-04-20,Emporia city,Virginia,51595,11,0 +2020-04-21,Emporia city,Virginia,51595,12,1 +2020-04-22,Emporia city,Virginia,51595,12,1 +2020-04-23,Emporia city,Virginia,51595,18,1 +2020-04-24,Emporia city,Virginia,51595,18,1 +2020-04-25,Emporia city,Virginia,51595,18,1 +2020-04-26,Emporia city,Virginia,51595,18,2 +2020-04-27,Emporia city,Virginia,51595,20,2 +2020-04-28,Emporia city,Virginia,51595,20,2 +2020-04-29,Emporia city,Virginia,51595,22,2 +2020-04-30,Emporia city,Virginia,51595,23,2 +2020-05-01,Emporia city,Virginia,51595,23,2 +2020-05-02,Emporia city,Virginia,51595,23,2 +2020-05-03,Emporia city,Virginia,51595,24,3 +2020-05-04,Emporia city,Virginia,51595,46,3 +2020-05-05,Emporia city,Virginia,51595,46,3 +2020-05-06,Emporia city,Virginia,51595,46,3 +2020-05-07,Emporia city,Virginia,51595,47,3 +2020-05-08,Emporia city,Virginia,51595,47,3 +2020-05-09,Emporia city,Virginia,51595,47,3 +2020-05-10,Emporia city,Virginia,51595,48,3 +2020-05-11,Emporia city,Virginia,51595,49,3 +2020-05-12,Emporia city,Virginia,51595,49,3 +2020-05-13,Emporia city,Virginia,51595,50,3 +2020-05-14,Emporia city,Virginia,51595,50,3 +2020-05-15,Emporia city,Virginia,51595,50,3 +2020-05-16,Emporia city,Virginia,51595,50,3 +2020-05-17,Emporia city,Virginia,51595,52,3 +2020-05-18,Emporia city,Virginia,51595,55,3 +2020-05-19,Emporia city,Virginia,51595,58,3 +2020-05-20,Emporia city,Virginia,51595,58,3 +2020-05-21,Emporia city,Virginia,51595,58,3 +2020-05-22,Emporia city,Virginia,51595,60,3 +2020-05-23,Emporia city,Virginia,51595,60,3 +2020-05-24,Emporia city,Virginia,51595,60,3 +2020-05-25,Emporia city,Virginia,51595,62,5 +2020-05-26,Emporia city,Virginia,51595,62,5 +2020-05-27,Emporia city,Virginia,51595,70,5 +2020-05-28,Emporia city,Virginia,51595,76,5 +2020-05-29,Emporia city,Virginia,51595,78,5 +2020-05-30,Emporia city,Virginia,51595,78,5 +2020-05-31,Emporia city,Virginia,51595,79,5 +2020-06-01,Emporia city,Virginia,51595,82,6 +2020-06-02,Emporia city,Virginia,51595,82,6 +2020-06-03,Emporia city,Virginia,51595,86,6 +2020-06-04,Emporia city,Virginia,51595,89,6 +2020-06-05,Emporia city,Virginia,51595,86,6 +2020-06-06,Emporia city,Virginia,51595,88,6 +2020-06-07,Emporia city,Virginia,51595,89,6 +2020-06-08,Emporia city,Virginia,51595,89,6 +2020-06-09,Emporia city,Virginia,51595,91,6 +2020-06-10,Emporia city,Virginia,51595,93,6 +2020-06-11,Emporia city,Virginia,51595,94,6 +2020-06-12,Emporia city,Virginia,51595,94,6 +2020-06-13,Emporia city,Virginia,51595,95,6 +2020-06-14,Emporia city,Virginia,51595,97,6 +2020-06-15,Emporia city,Virginia,51595,98,6 +2020-06-16,Emporia city,Virginia,51595,101,6 +2020-06-17,Emporia city,Virginia,51595,106,6 +2020-06-18,Emporia city,Virginia,51595,107,6 +2020-06-19,Emporia city,Virginia,51595,112,6 +2020-06-20,Emporia city,Virginia,51595,112,6 +2020-06-21,Emporia city,Virginia,51595,112,6 +2020-06-22,Emporia city,Virginia,51595,116,6 +2020-06-23,Emporia city,Virginia,51595,118,6 +2020-06-24,Emporia city,Virginia,51595,123,6 +2020-06-25,Emporia city,Virginia,51595,124,6 +2020-06-26,Emporia city,Virginia,51595,127,6 +2020-06-27,Emporia city,Virginia,51595,133,10 +2020-06-28,Emporia city,Virginia,51595,133,10 +2020-06-29,Emporia city,Virginia,51595,133,12 +2020-06-30,Emporia city,Virginia,51595,136,14 +2020-07-01,Emporia city,Virginia,51595,137,14 +2020-07-02,Emporia city,Virginia,51595,140,14 +2020-07-03,Emporia city,Virginia,51595,141,15 +2020-07-04,Emporia city,Virginia,51595,141,15 +2020-07-05,Emporia city,Virginia,51595,143,15 +2020-07-06,Emporia city,Virginia,51595,143,15 +2020-07-07,Emporia city,Virginia,51595,145,15 +2020-07-08,Emporia city,Virginia,51595,145,15 +2020-07-09,Emporia city,Virginia,51595,147,15 +2020-04-10,Fairfax city,Virginia,51600,1,0 +2020-04-11,Fairfax city,Virginia,51600,1,0 +2020-04-12,Fairfax city,Virginia,51600,1,0 +2020-04-13,Fairfax city,Virginia,51600,1,0 +2020-04-14,Fairfax city,Virginia,51600,1,0 +2020-04-15,Fairfax city,Virginia,51600,1,0 +2020-04-16,Fairfax city,Virginia,51600,1,0 +2020-04-17,Fairfax city,Virginia,51600,2,0 +2020-04-18,Fairfax city,Virginia,51600,3,0 +2020-04-19,Fairfax city,Virginia,51600,11,0 +2020-04-20,Fairfax city,Virginia,51600,21,0 +2020-04-21,Fairfax city,Virginia,51600,22,1 +2020-04-22,Fairfax city,Virginia,51600,25,1 +2020-04-23,Fairfax city,Virginia,51600,26,2 +2020-04-24,Fairfax city,Virginia,51600,26,2 +2020-04-25,Fairfax city,Virginia,51600,26,2 +2020-04-26,Fairfax city,Virginia,51600,26,2 +2020-04-27,Fairfax city,Virginia,51600,27,2 +2020-04-28,Fairfax city,Virginia,51600,27,2 +2020-04-29,Fairfax city,Virginia,51600,27,2 +2020-04-30,Fairfax city,Virginia,51600,27,2 +2020-05-01,Fairfax city,Virginia,51600,29,2 +2020-05-02,Fairfax city,Virginia,51600,29,2 +2020-05-03,Fairfax city,Virginia,51600,32,2 +2020-05-04,Fairfax city,Virginia,51600,33,2 +2020-05-05,Fairfax city,Virginia,51600,33,2 +2020-05-06,Fairfax city,Virginia,51600,33,2 +2020-05-07,Fairfax city,Virginia,51600,35,3 +2020-05-08,Fairfax city,Virginia,51600,39,3 +2020-05-09,Fairfax city,Virginia,51600,39,3 +2020-05-10,Fairfax city,Virginia,51600,39,3 +2020-05-11,Fairfax city,Virginia,51600,39,3 +2020-05-12,Fairfax city,Virginia,51600,40,3 +2020-05-13,Fairfax city,Virginia,51600,43,3 +2020-05-14,Fairfax city,Virginia,51600,45,3 +2020-05-15,Fairfax city,Virginia,51600,46,3 +2020-05-16,Fairfax city,Virginia,51600,47,3 +2020-05-17,Fairfax city,Virginia,51600,47,3 +2020-05-18,Fairfax city,Virginia,51600,47,3 +2020-05-19,Fairfax city,Virginia,51600,47,3 +2020-05-20,Fairfax city,Virginia,51600,47,3 +2020-05-21,Fairfax city,Virginia,51600,51,3 +2020-05-22,Fairfax city,Virginia,51600,51,4 +2020-05-23,Fairfax city,Virginia,51600,52,3 +2020-05-24,Fairfax city,Virginia,51600,52,3 +2020-05-25,Fairfax city,Virginia,51600,57,3 +2020-05-26,Fairfax city,Virginia,51600,59,4 +2020-05-27,Fairfax city,Virginia,51600,59,4 +2020-05-28,Fairfax city,Virginia,51600,63,6 +2020-05-29,Fairfax city,Virginia,51600,63,6 +2020-05-30,Fairfax city,Virginia,51600,65,6 +2020-05-31,Fairfax city,Virginia,51600,65,6 +2020-06-01,Fairfax city,Virginia,51600,67,6 +2020-06-02,Fairfax city,Virginia,51600,67,6 +2020-06-03,Fairfax city,Virginia,51600,67,6 +2020-06-04,Fairfax city,Virginia,51600,67,6 +2020-06-05,Fairfax city,Virginia,51600,67,5 +2020-06-06,Fairfax city,Virginia,51600,68,5 +2020-06-07,Fairfax city,Virginia,51600,69,5 +2020-06-08,Fairfax city,Virginia,51600,69,5 +2020-06-09,Fairfax city,Virginia,51600,69,5 +2020-06-10,Fairfax city,Virginia,51600,69,6 +2020-06-11,Fairfax city,Virginia,51600,68,6 +2020-06-12,Fairfax city,Virginia,51600,68,6 +2020-06-13,Fairfax city,Virginia,51600,67,6 +2020-06-14,Fairfax city,Virginia,51600,67,6 +2020-06-15,Fairfax city,Virginia,51600,67,6 +2020-06-16,Fairfax city,Virginia,51600,67,6 +2020-06-17,Fairfax city,Virginia,51600,68,7 +2020-06-18,Fairfax city,Virginia,51600,67,6 +2020-06-19,Fairfax city,Virginia,51600,67,6 +2020-06-20,Fairfax city,Virginia,51600,68,6 +2020-06-21,Fairfax city,Virginia,51600,68,6 +2020-06-22,Fairfax city,Virginia,51600,68,7 +2020-06-23,Fairfax city,Virginia,51600,68,7 +2020-06-24,Fairfax city,Virginia,51600,69,7 +2020-06-25,Fairfax city,Virginia,51600,69,7 +2020-06-26,Fairfax city,Virginia,51600,69,7 +2020-06-27,Fairfax city,Virginia,51600,70,7 +2020-06-28,Fairfax city,Virginia,51600,70,7 +2020-06-29,Fairfax city,Virginia,51600,70,7 +2020-06-30,Fairfax city,Virginia,51600,70,7 +2020-07-01,Fairfax city,Virginia,51600,70,7 +2020-07-02,Fairfax city,Virginia,51600,71,7 +2020-07-03,Fairfax city,Virginia,51600,70,7 +2020-07-04,Fairfax city,Virginia,51600,71,7 +2020-07-05,Fairfax city,Virginia,51600,71,7 +2020-07-06,Fairfax city,Virginia,51600,71,7 +2020-07-07,Fairfax city,Virginia,51600,72,7 +2020-07-08,Fairfax city,Virginia,51600,72,7 +2020-07-09,Fairfax city,Virginia,51600,72,7 +2020-04-13,Falls Church city,Virginia,51610,2,0 +2020-04-14,Falls Church city,Virginia,51610,2,0 +2020-04-15,Falls Church city,Virginia,51610,2,0 +2020-04-16,Falls Church city,Virginia,51610,2,0 +2020-04-17,Falls Church city,Virginia,51610,2,0 +2020-04-18,Falls Church city,Virginia,51610,2,0 +2020-04-19,Falls Church city,Virginia,51610,2,0 +2020-04-20,Falls Church city,Virginia,51610,24,0 +2020-04-21,Falls Church city,Virginia,51610,24,1 +2020-04-22,Falls Church city,Virginia,51610,25,1 +2020-04-23,Falls Church city,Virginia,51610,25,2 +2020-04-24,Falls Church city,Virginia,51610,24,2 +2020-04-25,Falls Church city,Virginia,51610,26,2 +2020-04-26,Falls Church city,Virginia,51610,26,2 +2020-04-27,Falls Church city,Virginia,51610,26,2 +2020-04-28,Falls Church city,Virginia,51610,26,2 +2020-04-29,Falls Church city,Virginia,51610,26,2 +2020-04-30,Falls Church city,Virginia,51610,26,2 +2020-05-01,Falls Church city,Virginia,51610,26,2 +2020-05-02,Falls Church city,Virginia,51610,26,2 +2020-05-03,Falls Church city,Virginia,51610,35,3 +2020-05-04,Falls Church city,Virginia,51610,36,4 +2020-05-05,Falls Church city,Virginia,51610,36,4 +2020-05-06,Falls Church city,Virginia,51610,36,4 +2020-05-07,Falls Church city,Virginia,51610,36,4 +2020-05-08,Falls Church city,Virginia,51610,37,4 +2020-05-09,Falls Church city,Virginia,51610,37,4 +2020-05-10,Falls Church city,Virginia,51610,37,4 +2020-05-11,Falls Church city,Virginia,51610,37,4 +2020-05-12,Falls Church city,Virginia,51610,37,4 +2020-05-13,Falls Church city,Virginia,51610,39,4 +2020-05-14,Falls Church city,Virginia,51610,39,4 +2020-05-15,Falls Church city,Virginia,51610,40,4 +2020-05-16,Falls Church city,Virginia,51610,42,4 +2020-05-17,Falls Church city,Virginia,51610,44,4 +2020-05-18,Falls Church city,Virginia,51610,44,4 +2020-05-19,Falls Church city,Virginia,51610,44,4 +2020-05-20,Falls Church city,Virginia,51610,44,5 +2020-05-21,Falls Church city,Virginia,51610,46,5 +2020-05-22,Falls Church city,Virginia,51610,46,5 +2020-05-23,Falls Church city,Virginia,51610,47,5 +2020-05-24,Falls Church city,Virginia,51610,47,5 +2020-05-25,Falls Church city,Virginia,51610,48,5 +2020-05-26,Falls Church city,Virginia,51610,49,6 +2020-05-27,Falls Church city,Virginia,51610,53,8 +2020-05-28,Falls Church city,Virginia,51610,53,8 +2020-05-29,Falls Church city,Virginia,51610,55,8 +2020-05-30,Falls Church city,Virginia,51610,55,8 +2020-05-31,Falls Church city,Virginia,51610,55,8 +2020-06-01,Falls Church city,Virginia,51610,55,8 +2020-06-02,Falls Church city,Virginia,51610,55,8 +2020-06-03,Falls Church city,Virginia,51610,55,8 +2020-06-04,Falls Church city,Virginia,51610,56,8 +2020-06-05,Falls Church city,Virginia,51610,56,8 +2020-06-06,Falls Church city,Virginia,51610,56,8 +2020-06-07,Falls Church city,Virginia,51610,56,8 +2020-06-08,Falls Church city,Virginia,51610,56,8 +2020-06-09,Falls Church city,Virginia,51610,56,8 +2020-06-10,Falls Church city,Virginia,51610,56,8 +2020-06-11,Falls Church city,Virginia,51610,56,8 +2020-06-12,Falls Church city,Virginia,51610,56,8 +2020-06-13,Falls Church city,Virginia,51610,56,7 +2020-06-14,Falls Church city,Virginia,51610,56,7 +2020-06-15,Falls Church city,Virginia,51610,56,7 +2020-06-16,Falls Church city,Virginia,51610,58,7 +2020-06-17,Falls Church city,Virginia,51610,58,7 +2020-06-18,Falls Church city,Virginia,51610,58,7 +2020-06-19,Falls Church city,Virginia,51610,58,7 +2020-06-20,Falls Church city,Virginia,51610,59,7 +2020-06-21,Falls Church city,Virginia,51610,59,7 +2020-06-22,Falls Church city,Virginia,51610,59,7 +2020-06-23,Falls Church city,Virginia,51610,58,7 +2020-06-24,Falls Church city,Virginia,51610,57,7 +2020-06-25,Falls Church city,Virginia,51610,57,7 +2020-06-26,Falls Church city,Virginia,51610,56,7 +2020-06-27,Falls Church city,Virginia,51610,56,7 +2020-06-28,Falls Church city,Virginia,51610,56,7 +2020-06-29,Falls Church city,Virginia,51610,56,8 +2020-06-30,Falls Church city,Virginia,51610,56,8 +2020-07-01,Falls Church city,Virginia,51610,52,8 +2020-07-02,Falls Church city,Virginia,51610,53,8 +2020-07-03,Falls Church city,Virginia,51610,54,8 +2020-07-04,Falls Church city,Virginia,51610,54,8 +2020-07-05,Falls Church city,Virginia,51610,55,8 +2020-07-06,Falls Church city,Virginia,51610,55,8 +2020-07-07,Falls Church city,Virginia,51610,54,8 +2020-07-08,Falls Church city,Virginia,51610,54,8 +2020-07-09,Falls Church city,Virginia,51610,53,7 +2020-03-31,Franklin city,Virginia,51620,1,0 +2020-04-01,Franklin city,Virginia,51620,1,0 +2020-04-02,Franklin city,Virginia,51620,1,0 +2020-04-03,Franklin city,Virginia,51620,3,0 +2020-04-04,Franklin city,Virginia,51620,4,0 +2020-04-05,Franklin city,Virginia,51620,4,0 +2020-04-06,Franklin city,Virginia,51620,4,0 +2020-04-07,Franklin city,Virginia,51620,4,0 +2020-04-08,Franklin city,Virginia,51620,5,0 +2020-04-09,Franklin city,Virginia,51620,6,0 +2020-04-10,Franklin city,Virginia,51620,6,0 +2020-04-11,Franklin city,Virginia,51620,6,0 +2020-04-12,Franklin city,Virginia,51620,6,0 +2020-04-13,Franklin city,Virginia,51620,7,0 +2020-04-14,Franklin city,Virginia,51620,7,0 +2020-04-15,Franklin city,Virginia,51620,7,0 +2020-04-16,Franklin city,Virginia,51620,9,0 +2020-04-17,Franklin city,Virginia,51620,9,0 +2020-04-18,Franklin city,Virginia,51620,12,0 +2020-04-19,Franklin city,Virginia,51620,12,0 +2020-04-20,Franklin city,Virginia,51620,12,0 +2020-04-21,Franklin city,Virginia,51620,12,0 +2020-04-22,Franklin city,Virginia,51620,14,0 +2020-04-23,Franklin city,Virginia,51620,15,0 +2020-04-24,Franklin city,Virginia,51620,15,0 +2020-04-25,Franklin city,Virginia,51620,16,0 +2020-04-26,Franklin city,Virginia,51620,16,0 +2020-04-27,Franklin city,Virginia,51620,16,0 +2020-04-28,Franklin city,Virginia,51620,18,0 +2020-04-29,Franklin city,Virginia,51620,19,0 +2020-04-30,Franklin city,Virginia,51620,20,0 +2020-05-01,Franklin city,Virginia,51620,23,1 +2020-05-02,Franklin city,Virginia,51620,23,1 +2020-05-03,Franklin city,Virginia,51620,23,1 +2020-05-04,Franklin city,Virginia,51620,23,1 +2020-05-05,Franklin city,Virginia,51620,23,1 +2020-05-06,Franklin city,Virginia,51620,23,1 +2020-05-07,Franklin city,Virginia,51620,23,1 +2020-05-08,Franklin city,Virginia,51620,23,1 +2020-05-09,Franklin city,Virginia,51620,25,1 +2020-05-10,Franklin city,Virginia,51620,26,1 +2020-05-11,Franklin city,Virginia,51620,26,1 +2020-05-12,Franklin city,Virginia,51620,26,2 +2020-05-13,Franklin city,Virginia,51620,25,1 +2020-05-14,Franklin city,Virginia,51620,26,1 +2020-05-15,Franklin city,Virginia,51620,27,1 +2020-05-16,Franklin city,Virginia,51620,27,1 +2020-05-17,Franklin city,Virginia,51620,29,1 +2020-05-18,Franklin city,Virginia,51620,32,1 +2020-05-19,Franklin city,Virginia,51620,32,1 +2020-05-20,Franklin city,Virginia,51620,32,1 +2020-05-21,Franklin city,Virginia,51620,34,1 +2020-05-22,Franklin city,Virginia,51620,34,1 +2020-05-23,Franklin city,Virginia,51620,38,1 +2020-05-24,Franklin city,Virginia,51620,38,1 +2020-05-25,Franklin city,Virginia,51620,39,1 +2020-05-26,Franklin city,Virginia,51620,39,1 +2020-05-27,Franklin city,Virginia,51620,39,1 +2020-05-28,Franklin city,Virginia,51620,41,2 +2020-05-29,Franklin city,Virginia,51620,42,2 +2020-05-30,Franklin city,Virginia,51620,42,2 +2020-05-31,Franklin city,Virginia,51620,42,2 +2020-06-01,Franklin city,Virginia,51620,42,2 +2020-06-02,Franklin city,Virginia,51620,42,2 +2020-06-03,Franklin city,Virginia,51620,42,2 +2020-06-04,Franklin city,Virginia,51620,42,2 +2020-06-05,Franklin city,Virginia,51620,42,2 +2020-06-06,Franklin city,Virginia,51620,42,2 +2020-06-07,Franklin city,Virginia,51620,42,2 +2020-06-08,Franklin city,Virginia,51620,42,2 +2020-06-09,Franklin city,Virginia,51620,42,2 +2020-06-10,Franklin city,Virginia,51620,42,2 +2020-06-11,Franklin city,Virginia,51620,43,2 +2020-06-12,Franklin city,Virginia,51620,43,2 +2020-06-13,Franklin city,Virginia,51620,44,2 +2020-06-14,Franklin city,Virginia,51620,44,2 +2020-06-15,Franklin city,Virginia,51620,44,2 +2020-06-16,Franklin city,Virginia,51620,44,2 +2020-06-17,Franklin city,Virginia,51620,44,2 +2020-06-18,Franklin city,Virginia,51620,44,2 +2020-06-19,Franklin city,Virginia,51620,44,2 +2020-06-20,Franklin city,Virginia,51620,44,2 +2020-06-21,Franklin city,Virginia,51620,45,2 +2020-06-22,Franklin city,Virginia,51620,45,2 +2020-06-23,Franklin city,Virginia,51620,46,2 +2020-06-24,Franklin city,Virginia,51620,46,2 +2020-06-25,Franklin city,Virginia,51620,46,2 +2020-06-26,Franklin city,Virginia,51620,46,2 +2020-06-27,Franklin city,Virginia,51620,47,2 +2020-06-28,Franklin city,Virginia,51620,47,2 +2020-06-29,Franklin city,Virginia,51620,50,2 +2020-06-30,Franklin city,Virginia,51620,51,2 +2020-07-01,Franklin city,Virginia,51620,52,2 +2020-07-02,Franklin city,Virginia,51620,51,2 +2020-07-03,Franklin city,Virginia,51620,52,2 +2020-07-04,Franklin city,Virginia,51620,53,2 +2020-07-05,Franklin city,Virginia,51620,54,2 +2020-07-06,Franklin city,Virginia,51620,55,2 +2020-07-07,Franklin city,Virginia,51620,58,2 +2020-07-08,Franklin city,Virginia,51620,61,2 +2020-07-09,Franklin city,Virginia,51620,66,3 +2020-03-25,Fredericksburg city,Virginia,51630,1,0 +2020-03-26,Fredericksburg city,Virginia,51630,1,0 +2020-03-27,Fredericksburg city,Virginia,51630,1,0 +2020-03-28,Fredericksburg city,Virginia,51630,1,0 +2020-03-29,Fredericksburg city,Virginia,51630,1,0 +2020-03-30,Fredericksburg city,Virginia,51630,1,0 +2020-03-31,Fredericksburg city,Virginia,51630,1,0 +2020-04-01,Fredericksburg city,Virginia,51630,1,0 +2020-04-02,Fredericksburg city,Virginia,51630,2,0 +2020-04-03,Fredericksburg city,Virginia,51630,4,0 +2020-04-04,Fredericksburg city,Virginia,51630,7,0 +2020-04-05,Fredericksburg city,Virginia,51630,7,0 +2020-04-06,Fredericksburg city,Virginia,51630,7,0 +2020-04-07,Fredericksburg city,Virginia,51630,8,0 +2020-04-08,Fredericksburg city,Virginia,51630,8,0 +2020-04-09,Fredericksburg city,Virginia,51630,10,0 +2020-04-10,Fredericksburg city,Virginia,51630,10,0 +2020-04-11,Fredericksburg city,Virginia,51630,11,0 +2020-04-12,Fredericksburg city,Virginia,51630,12,0 +2020-04-13,Fredericksburg city,Virginia,51630,13,0 +2020-04-14,Fredericksburg city,Virginia,51630,14,0 +2020-04-15,Fredericksburg city,Virginia,51630,15,0 +2020-04-16,Fredericksburg city,Virginia,51630,15,0 +2020-04-17,Fredericksburg city,Virginia,51630,15,0 +2020-04-18,Fredericksburg city,Virginia,51630,15,0 +2020-04-19,Fredericksburg city,Virginia,51630,17,0 +2020-04-20,Fredericksburg city,Virginia,51630,17,0 +2020-04-21,Fredericksburg city,Virginia,51630,17,0 +2020-04-22,Fredericksburg city,Virginia,51630,17,0 +2020-04-23,Fredericksburg city,Virginia,51630,20,0 +2020-04-24,Fredericksburg city,Virginia,51630,21,0 +2020-04-25,Fredericksburg city,Virginia,51630,23,0 +2020-04-26,Fredericksburg city,Virginia,51630,23,0 +2020-04-27,Fredericksburg city,Virginia,51630,24,0 +2020-04-28,Fredericksburg city,Virginia,51630,27,0 +2020-04-29,Fredericksburg city,Virginia,51630,28,0 +2020-04-30,Fredericksburg city,Virginia,51630,33,0 +2020-05-01,Fredericksburg city,Virginia,51630,34,0 +2020-05-02,Fredericksburg city,Virginia,51630,37,0 +2020-05-03,Fredericksburg city,Virginia,51630,39,0 +2020-05-04,Fredericksburg city,Virginia,51630,45,0 +2020-05-05,Fredericksburg city,Virginia,51630,45,0 +2020-05-06,Fredericksburg city,Virginia,51630,45,0 +2020-05-07,Fredericksburg city,Virginia,51630,52,0 +2020-05-08,Fredericksburg city,Virginia,51630,55,0 +2020-05-09,Fredericksburg city,Virginia,51630,58,0 +2020-05-10,Fredericksburg city,Virginia,51630,61,0 +2020-05-11,Fredericksburg city,Virginia,51630,61,0 +2020-05-12,Fredericksburg city,Virginia,51630,66,0 +2020-05-13,Fredericksburg city,Virginia,51630,72,0 +2020-05-14,Fredericksburg city,Virginia,51630,80,0 +2020-05-15,Fredericksburg city,Virginia,51630,82,0 +2020-05-16,Fredericksburg city,Virginia,51630,89,0 +2020-05-17,Fredericksburg city,Virginia,51630,93,0 +2020-05-18,Fredericksburg city,Virginia,51630,96,0 +2020-05-19,Fredericksburg city,Virginia,51630,101,0 +2020-05-20,Fredericksburg city,Virginia,51630,101,0 +2020-05-21,Fredericksburg city,Virginia,51630,107,0 +2020-05-22,Fredericksburg city,Virginia,51630,109,0 +2020-05-23,Fredericksburg city,Virginia,51630,113,0 +2020-05-24,Fredericksburg city,Virginia,51630,118,0 +2020-05-25,Fredericksburg city,Virginia,51630,123,0 +2020-05-26,Fredericksburg city,Virginia,51630,136,0 +2020-05-27,Fredericksburg city,Virginia,51630,135,0 +2020-05-28,Fredericksburg city,Virginia,51630,142,0 +2020-05-29,Fredericksburg city,Virginia,51630,147,0 +2020-05-30,Fredericksburg city,Virginia,51630,158,0 +2020-05-31,Fredericksburg city,Virginia,51630,164,0 +2020-06-01,Fredericksburg city,Virginia,51630,166,0 +2020-06-02,Fredericksburg city,Virginia,51630,172,0 +2020-06-03,Fredericksburg city,Virginia,51630,172,0 +2020-06-04,Fredericksburg city,Virginia,51630,178,1 +2020-06-05,Fredericksburg city,Virginia,51630,186,0 +2020-06-06,Fredericksburg city,Virginia,51630,192,0 +2020-06-07,Fredericksburg city,Virginia,51630,208,0 +2020-06-08,Fredericksburg city,Virginia,51630,196,0 +2020-06-09,Fredericksburg city,Virginia,51630,193,0 +2020-06-10,Fredericksburg city,Virginia,51630,194,0 +2020-06-11,Fredericksburg city,Virginia,51630,197,0 +2020-06-12,Fredericksburg city,Virginia,51630,199,0 +2020-06-13,Fredericksburg city,Virginia,51630,201,0 +2020-06-14,Fredericksburg city,Virginia,51630,208,0 +2020-06-15,Fredericksburg city,Virginia,51630,211,0 +2020-06-16,Fredericksburg city,Virginia,51630,213,0 +2020-06-17,Fredericksburg city,Virginia,51630,215,0 +2020-06-18,Fredericksburg city,Virginia,51630,218,0 +2020-06-19,Fredericksburg city,Virginia,51630,219,0 +2020-06-20,Fredericksburg city,Virginia,51630,223,0 +2020-06-21,Fredericksburg city,Virginia,51630,227,0 +2020-06-22,Fredericksburg city,Virginia,51630,232,0 +2020-06-23,Fredericksburg city,Virginia,51630,234,1 +2020-06-24,Fredericksburg city,Virginia,51630,235,0 +2020-06-25,Fredericksburg city,Virginia,51630,236,0 +2020-06-26,Fredericksburg city,Virginia,51630,238,0 +2020-06-27,Fredericksburg city,Virginia,51630,239,0 +2020-06-28,Fredericksburg city,Virginia,51630,246,0 +2020-06-29,Fredericksburg city,Virginia,51630,247,0 +2020-06-30,Fredericksburg city,Virginia,51630,246,0 +2020-07-01,Fredericksburg city,Virginia,51630,249,0 +2020-07-02,Fredericksburg city,Virginia,51630,250,0 +2020-07-03,Fredericksburg city,Virginia,51630,254,0 +2020-07-04,Fredericksburg city,Virginia,51630,255,0 +2020-07-05,Fredericksburg city,Virginia,51630,255,0 +2020-07-06,Fredericksburg city,Virginia,51630,255,0 +2020-07-07,Fredericksburg city,Virginia,51630,260,0 +2020-07-08,Fredericksburg city,Virginia,51630,263,0 +2020-07-09,Fredericksburg city,Virginia,51630,264,0 +2020-03-27,Galax city,Virginia,51640,1,0 +2020-03-28,Galax city,Virginia,51640,1,0 +2020-03-29,Galax city,Virginia,51640,1,0 +2020-03-30,Galax city,Virginia,51640,1,0 +2020-03-31,Galax city,Virginia,51640,1,0 +2020-04-01,Galax city,Virginia,51640,1,0 +2020-04-02,Galax city,Virginia,51640,1,0 +2020-04-03,Galax city,Virginia,51640,1,0 +2020-04-04,Galax city,Virginia,51640,1,0 +2020-04-05,Galax city,Virginia,51640,1,0 +2020-04-06,Galax city,Virginia,51640,1,0 +2020-04-07,Galax city,Virginia,51640,1,0 +2020-04-08,Galax city,Virginia,51640,1,0 +2020-04-09,Galax city,Virginia,51640,1,0 +2020-04-10,Galax city,Virginia,51640,1,0 +2020-04-11,Galax city,Virginia,51640,1,0 +2020-04-12,Galax city,Virginia,51640,1,0 +2020-04-13,Galax city,Virginia,51640,1,0 +2020-04-14,Galax city,Virginia,51640,1,0 +2020-04-15,Galax city,Virginia,51640,1,0 +2020-04-16,Galax city,Virginia,51640,1,0 +2020-04-17,Galax city,Virginia,51640,1,0 +2020-04-18,Galax city,Virginia,51640,1,0 +2020-04-19,Galax city,Virginia,51640,1,0 +2020-04-20,Galax city,Virginia,51640,1,0 +2020-04-21,Galax city,Virginia,51640,1,0 +2020-04-22,Galax city,Virginia,51640,1,0 +2020-04-23,Galax city,Virginia,51640,1,0 +2020-04-24,Galax city,Virginia,51640,1,0 +2020-04-25,Galax city,Virginia,51640,1,0 +2020-04-26,Galax city,Virginia,51640,4,0 +2020-04-27,Galax city,Virginia,51640,3,0 +2020-04-28,Galax city,Virginia,51640,4,0 +2020-04-29,Galax city,Virginia,51640,4,0 +2020-04-30,Galax city,Virginia,51640,4,0 +2020-05-01,Galax city,Virginia,51640,9,0 +2020-05-02,Galax city,Virginia,51640,10,0 +2020-05-03,Galax city,Virginia,51640,12,0 +2020-05-04,Galax city,Virginia,51640,25,0 +2020-05-05,Galax city,Virginia,51640,25,0 +2020-05-06,Galax city,Virginia,51640,25,0 +2020-05-07,Galax city,Virginia,51640,32,0 +2020-05-08,Galax city,Virginia,51640,33,0 +2020-05-09,Galax city,Virginia,51640,34,0 +2020-05-10,Galax city,Virginia,51640,45,0 +2020-05-11,Galax city,Virginia,51640,55,0 +2020-05-12,Galax city,Virginia,51640,56,0 +2020-05-13,Galax city,Virginia,51640,64,0 +2020-05-14,Galax city,Virginia,51640,65,0 +2020-05-15,Galax city,Virginia,51640,66,0 +2020-05-16,Galax city,Virginia,51640,77,0 +2020-05-17,Galax city,Virginia,51640,80,0 +2020-05-18,Galax city,Virginia,51640,82,0 +2020-05-19,Galax city,Virginia,51640,82,0 +2020-05-20,Galax city,Virginia,51640,82,0 +2020-05-21,Galax city,Virginia,51640,82,0 +2020-05-22,Galax city,Virginia,51640,85,0 +2020-05-23,Galax city,Virginia,51640,87,0 +2020-05-24,Galax city,Virginia,51640,88,0 +2020-05-25,Galax city,Virginia,51640,95,0 +2020-05-26,Galax city,Virginia,51640,104,0 +2020-05-27,Galax city,Virginia,51640,106,0 +2020-05-28,Galax city,Virginia,51640,107,0 +2020-05-29,Galax city,Virginia,51640,107,0 +2020-05-30,Galax city,Virginia,51640,112,0 +2020-05-31,Galax city,Virginia,51640,123,0 +2020-06-01,Galax city,Virginia,51640,124,0 +2020-06-02,Galax city,Virginia,51640,127,0 +2020-06-03,Galax city,Virginia,51640,131,1 +2020-06-04,Galax city,Virginia,51640,140,1 +2020-06-05,Galax city,Virginia,51640,140,1 +2020-06-06,Galax city,Virginia,51640,143,1 +2020-06-07,Galax city,Virginia,51640,147,1 +2020-06-08,Galax city,Virginia,51640,147,1 +2020-06-09,Galax city,Virginia,51640,148,1 +2020-06-10,Galax city,Virginia,51640,154,6 +2020-06-11,Galax city,Virginia,51640,165,7 +2020-06-12,Galax city,Virginia,51640,171,8 +2020-06-13,Galax city,Virginia,51640,193,8 +2020-06-14,Galax city,Virginia,51640,204,10 +2020-06-15,Galax city,Virginia,51640,205,10 +2020-06-16,Galax city,Virginia,51640,206,10 +2020-06-17,Galax city,Virginia,51640,208,11 +2020-06-18,Galax city,Virginia,51640,211,11 +2020-06-19,Galax city,Virginia,51640,217,11 +2020-06-20,Galax city,Virginia,51640,222,11 +2020-06-21,Galax city,Virginia,51640,223,11 +2020-06-22,Galax city,Virginia,51640,224,11 +2020-06-23,Galax city,Virginia,51640,227,11 +2020-06-24,Galax city,Virginia,51640,233,13 +2020-06-25,Galax city,Virginia,51640,238,13 +2020-06-26,Galax city,Virginia,51640,243,13 +2020-06-27,Galax city,Virginia,51640,244,13 +2020-06-28,Galax city,Virginia,51640,252,13 +2020-06-29,Galax city,Virginia,51640,253,13 +2020-06-30,Galax city,Virginia,51640,253,13 +2020-07-01,Galax city,Virginia,51640,256,14 +2020-07-02,Galax city,Virginia,51640,261,15 +2020-07-03,Galax city,Virginia,51640,263,15 +2020-07-04,Galax city,Virginia,51640,265,15 +2020-07-05,Galax city,Virginia,51640,272,15 +2020-07-06,Galax city,Virginia,51640,276,15 +2020-07-07,Galax city,Virginia,51640,281,16 +2020-07-08,Galax city,Virginia,51640,282,16 +2020-07-09,Galax city,Virginia,51640,282,16 +2020-03-26,Hampton city,Virginia,51650,1,0 +2020-03-27,Hampton city,Virginia,51650,5,0 +2020-03-28,Hampton city,Virginia,51650,7,0 +2020-03-29,Hampton city,Virginia,51650,7,0 +2020-03-30,Hampton city,Virginia,51650,9,0 +2020-03-31,Hampton city,Virginia,51650,13,0 +2020-04-01,Hampton city,Virginia,51650,14,0 +2020-04-02,Hampton city,Virginia,51650,16,0 +2020-04-03,Hampton city,Virginia,51650,29,0 +2020-04-04,Hampton city,Virginia,51650,39,0 +2020-04-05,Hampton city,Virginia,51650,40,0 +2020-04-06,Hampton city,Virginia,51650,41,0 +2020-04-07,Hampton city,Virginia,51650,43,1 +2020-04-08,Hampton city,Virginia,51650,53,1 +2020-04-09,Hampton city,Virginia,51650,53,1 +2020-04-10,Hampton city,Virginia,51650,62,1 +2020-04-11,Hampton city,Virginia,51650,64,1 +2020-04-12,Hampton city,Virginia,51650,65,1 +2020-04-13,Hampton city,Virginia,51650,72,1 +2020-04-14,Hampton city,Virginia,51650,73,1 +2020-04-15,Hampton city,Virginia,51650,75,1 +2020-04-16,Hampton city,Virginia,51650,77,1 +2020-04-17,Hampton city,Virginia,51650,78,1 +2020-04-18,Hampton city,Virginia,51650,79,1 +2020-04-19,Hampton city,Virginia,51650,83,1 +2020-04-20,Hampton city,Virginia,51650,90,1 +2020-04-21,Hampton city,Virginia,51650,92,1 +2020-04-22,Hampton city,Virginia,51650,97,1 +2020-04-23,Hampton city,Virginia,51650,99,1 +2020-04-24,Hampton city,Virginia,51650,99,1 +2020-04-25,Hampton city,Virginia,51650,101,1 +2020-04-26,Hampton city,Virginia,51650,104,1 +2020-04-27,Hampton city,Virginia,51650,108,1 +2020-04-28,Hampton city,Virginia,51650,108,1 +2020-04-29,Hampton city,Virginia,51650,109,1 +2020-04-30,Hampton city,Virginia,51650,115,1 +2020-05-01,Hampton city,Virginia,51650,119,1 +2020-05-02,Hampton city,Virginia,51650,122,1 +2020-05-03,Hampton city,Virginia,51650,123,1 +2020-05-04,Hampton city,Virginia,51650,128,1 +2020-05-05,Hampton city,Virginia,51650,128,3 +2020-05-06,Hampton city,Virginia,51650,128,3 +2020-05-07,Hampton city,Virginia,51650,131,3 +2020-05-08,Hampton city,Virginia,51650,135,3 +2020-05-09,Hampton city,Virginia,51650,138,3 +2020-05-10,Hampton city,Virginia,51650,144,3 +2020-05-11,Hampton city,Virginia,51650,146,3 +2020-05-12,Hampton city,Virginia,51650,147,3 +2020-05-13,Hampton city,Virginia,51650,148,3 +2020-05-14,Hampton city,Virginia,51650,156,3 +2020-05-15,Hampton city,Virginia,51650,158,3 +2020-05-16,Hampton city,Virginia,51650,158,3 +2020-05-17,Hampton city,Virginia,51650,161,3 +2020-05-18,Hampton city,Virginia,51650,163,3 +2020-05-19,Hampton city,Virginia,51650,164,3 +2020-05-20,Hampton city,Virginia,51650,165,3 +2020-05-21,Hampton city,Virginia,51650,167,3 +2020-05-22,Hampton city,Virginia,51650,169,3 +2020-05-23,Hampton city,Virginia,51650,172,3 +2020-05-24,Hampton city,Virginia,51650,174,3 +2020-05-25,Hampton city,Virginia,51650,181,3 +2020-05-26,Hampton city,Virginia,51650,183,3 +2020-05-27,Hampton city,Virginia,51650,183,3 +2020-05-28,Hampton city,Virginia,51650,190,3 +2020-05-29,Hampton city,Virginia,51650,192,3 +2020-05-30,Hampton city,Virginia,51650,197,3 +2020-05-31,Hampton city,Virginia,51650,207,3 +2020-06-01,Hampton city,Virginia,51650,210,3 +2020-06-02,Hampton city,Virginia,51650,212,3 +2020-06-03,Hampton city,Virginia,51650,212,3 +2020-06-04,Hampton city,Virginia,51650,214,4 +2020-06-05,Hampton city,Virginia,51650,215,4 +2020-06-06,Hampton city,Virginia,51650,215,4 +2020-06-07,Hampton city,Virginia,51650,226,4 +2020-06-08,Hampton city,Virginia,51650,227,4 +2020-06-09,Hampton city,Virginia,51650,228,4 +2020-06-10,Hampton city,Virginia,51650,231,5 +2020-06-11,Hampton city,Virginia,51650,233,5 +2020-06-12,Hampton city,Virginia,51650,234,5 +2020-06-13,Hampton city,Virginia,51650,234,5 +2020-06-14,Hampton city,Virginia,51650,238,5 +2020-06-15,Hampton city,Virginia,51650,241,5 +2020-06-16,Hampton city,Virginia,51650,246,5 +2020-06-17,Hampton city,Virginia,51650,248,5 +2020-06-18,Hampton city,Virginia,51650,251,5 +2020-06-19,Hampton city,Virginia,51650,252,5 +2020-06-20,Hampton city,Virginia,51650,258,5 +2020-06-21,Hampton city,Virginia,51650,264,5 +2020-06-22,Hampton city,Virginia,51650,271,5 +2020-06-23,Hampton city,Virginia,51650,271,5 +2020-06-24,Hampton city,Virginia,51650,276,5 +2020-06-25,Hampton city,Virginia,51650,281,5 +2020-06-26,Hampton city,Virginia,51650,296,5 +2020-06-27,Hampton city,Virginia,51650,305,5 +2020-06-28,Hampton city,Virginia,51650,310,5 +2020-06-29,Hampton city,Virginia,51650,316,5 +2020-06-30,Hampton city,Virginia,51650,328,5 +2020-07-01,Hampton city,Virginia,51650,336,5 +2020-07-02,Hampton city,Virginia,51650,339,5 +2020-07-03,Hampton city,Virginia,51650,354,5 +2020-07-04,Hampton city,Virginia,51650,360,5 +2020-07-05,Hampton city,Virginia,51650,369,5 +2020-07-06,Hampton city,Virginia,51650,376,5 +2020-07-07,Hampton city,Virginia,51650,390,5 +2020-07-08,Hampton city,Virginia,51650,409,5 +2020-07-09,Hampton city,Virginia,51650,424,4 +2020-03-13,Harrisonburg city,Virginia,51660,1,0 +2020-03-14,Harrisonburg city,Virginia,51660,1,0 +2020-03-15,Harrisonburg city,Virginia,51660,1,0 +2020-03-16,Harrisonburg city,Virginia,51660,1,0 +2020-03-17,Harrisonburg city,Virginia,51660,1,0 +2020-03-18,Harrisonburg city,Virginia,51660,1,0 +2020-03-19,Harrisonburg city,Virginia,51660,1,0 +2020-03-20,Harrisonburg city,Virginia,51660,1,0 +2020-03-21,Harrisonburg city,Virginia,51660,1,0 +2020-03-22,Harrisonburg city,Virginia,51660,1,0 +2020-03-23,Harrisonburg city,Virginia,51660,1,0 +2020-03-24,Harrisonburg city,Virginia,51660,1,0 +2020-03-25,Harrisonburg city,Virginia,51660,2,0 +2020-03-26,Harrisonburg city,Virginia,51660,3,0 +2020-03-27,Harrisonburg city,Virginia,51660,5,0 +2020-03-28,Harrisonburg city,Virginia,51660,5,0 +2020-03-29,Harrisonburg city,Virginia,51660,5,0 +2020-03-30,Harrisonburg city,Virginia,51660,6,0 +2020-03-31,Harrisonburg city,Virginia,51660,6,0 +2020-04-01,Harrisonburg city,Virginia,51660,10,0 +2020-04-02,Harrisonburg city,Virginia,51660,15,0 +2020-04-03,Harrisonburg city,Virginia,51660,22,0 +2020-04-04,Harrisonburg city,Virginia,51660,22,0 +2020-04-05,Harrisonburg city,Virginia,51660,25,0 +2020-04-06,Harrisonburg city,Virginia,51660,27,0 +2020-04-07,Harrisonburg city,Virginia,51660,27,0 +2020-04-08,Harrisonburg city,Virginia,51660,36,0 +2020-04-09,Harrisonburg city,Virginia,51660,39,0 +2020-04-10,Harrisonburg city,Virginia,51660,57,0 +2020-04-11,Harrisonburg city,Virginia,51660,79,0 +2020-04-12,Harrisonburg city,Virginia,51660,81,0 +2020-04-13,Harrisonburg city,Virginia,51660,87,0 +2020-04-14,Harrisonburg city,Virginia,51660,95,0 +2020-04-15,Harrisonburg city,Virginia,51660,101,0 +2020-04-16,Harrisonburg city,Virginia,51660,119,0 +2020-04-17,Harrisonburg city,Virginia,51660,214,0 +2020-04-18,Harrisonburg city,Virginia,51660,233,0 +2020-04-19,Harrisonburg city,Virginia,51660,236,0 +2020-04-20,Harrisonburg city,Virginia,51660,252,0 +2020-04-21,Harrisonburg city,Virginia,51660,264,0 +2020-04-22,Harrisonburg city,Virginia,51660,318,8 +2020-04-23,Harrisonburg city,Virginia,51660,346,8 +2020-04-24,Harrisonburg city,Virginia,51660,355,9 +2020-04-25,Harrisonburg city,Virginia,51660,370,9 +2020-04-26,Harrisonburg city,Virginia,51660,371,9 +2020-04-27,Harrisonburg city,Virginia,51660,383,9 +2020-04-28,Harrisonburg city,Virginia,51660,406,9 +2020-04-29,Harrisonburg city,Virginia,51660,411,11 +2020-04-30,Harrisonburg city,Virginia,51660,426,11 +2020-05-01,Harrisonburg city,Virginia,51660,456,11 +2020-05-02,Harrisonburg city,Virginia,51660,470,15 +2020-05-03,Harrisonburg city,Virginia,51660,478,16 +2020-05-04,Harrisonburg city,Virginia,51660,497,16 +2020-05-05,Harrisonburg city,Virginia,51660,525,19 +2020-05-06,Harrisonburg city,Virginia,51660,525,19 +2020-05-07,Harrisonburg city,Virginia,51660,552,20 +2020-05-08,Harrisonburg city,Virginia,51660,574,21 +2020-05-09,Harrisonburg city,Virginia,51660,578,21 +2020-05-10,Harrisonburg city,Virginia,51660,579,21 +2020-05-11,Harrisonburg city,Virginia,51660,583,21 +2020-05-12,Harrisonburg city,Virginia,51660,584,21 +2020-05-13,Harrisonburg city,Virginia,51660,607,21 +2020-05-14,Harrisonburg city,Virginia,51660,615,21 +2020-05-15,Harrisonburg city,Virginia,51660,620,21 +2020-05-16,Harrisonburg city,Virginia,51660,631,21 +2020-05-17,Harrisonburg city,Virginia,51660,632,21 +2020-05-18,Harrisonburg city,Virginia,51660,633,21 +2020-05-19,Harrisonburg city,Virginia,51660,647,21 +2020-05-20,Harrisonburg city,Virginia,51660,675,21 +2020-05-21,Harrisonburg city,Virginia,51660,695,21 +2020-05-22,Harrisonburg city,Virginia,51660,704,21 +2020-05-23,Harrisonburg city,Virginia,51660,709,21 +2020-05-24,Harrisonburg city,Virginia,51660,716,21 +2020-05-25,Harrisonburg city,Virginia,51660,727,21 +2020-05-26,Harrisonburg city,Virginia,51660,742,21 +2020-05-27,Harrisonburg city,Virginia,51660,746,21 +2020-05-28,Harrisonburg city,Virginia,51660,757,23 +2020-05-29,Harrisonburg city,Virginia,51660,765,23 +2020-05-30,Harrisonburg city,Virginia,51660,774,23 +2020-05-31,Harrisonburg city,Virginia,51660,779,23 +2020-06-01,Harrisonburg city,Virginia,51660,797,23 +2020-06-02,Harrisonburg city,Virginia,51660,799,23 +2020-06-03,Harrisonburg city,Virginia,51660,809,23 +2020-06-04,Harrisonburg city,Virginia,51660,814,23 +2020-06-05,Harrisonburg city,Virginia,51660,817,23 +2020-06-06,Harrisonburg city,Virginia,51660,823,23 +2020-06-07,Harrisonburg city,Virginia,51660,832,23 +2020-06-08,Harrisonburg city,Virginia,51660,833,23 +2020-06-09,Harrisonburg city,Virginia,51660,837,23 +2020-06-10,Harrisonburg city,Virginia,51660,842,23 +2020-06-11,Harrisonburg city,Virginia,51660,846,23 +2020-06-12,Harrisonburg city,Virginia,51660,850,23 +2020-06-13,Harrisonburg city,Virginia,51660,847,23 +2020-06-14,Harrisonburg city,Virginia,51660,855,23 +2020-06-15,Harrisonburg city,Virginia,51660,856,23 +2020-06-16,Harrisonburg city,Virginia,51660,859,22 +2020-06-17,Harrisonburg city,Virginia,51660,864,23 +2020-06-18,Harrisonburg city,Virginia,51660,870,23 +2020-06-19,Harrisonburg city,Virginia,51660,874,23 +2020-06-20,Harrisonburg city,Virginia,51660,885,23 +2020-06-21,Harrisonburg city,Virginia,51660,889,23 +2020-06-22,Harrisonburg city,Virginia,51660,893,23 +2020-06-23,Harrisonburg city,Virginia,51660,896,23 +2020-06-24,Harrisonburg city,Virginia,51660,901,23 +2020-06-25,Harrisonburg city,Virginia,51660,907,23 +2020-06-26,Harrisonburg city,Virginia,51660,913,23 +2020-06-27,Harrisonburg city,Virginia,51660,925,23 +2020-06-28,Harrisonburg city,Virginia,51660,933,24 +2020-06-29,Harrisonburg city,Virginia,51660,936,24 +2020-06-30,Harrisonburg city,Virginia,51660,939,24 +2020-07-01,Harrisonburg city,Virginia,51660,937,24 +2020-07-02,Harrisonburg city,Virginia,51660,941,26 +2020-07-03,Harrisonburg city,Virginia,51660,957,27 +2020-07-04,Harrisonburg city,Virginia,51660,963,27 +2020-07-05,Harrisonburg city,Virginia,51660,966,27 +2020-07-06,Harrisonburg city,Virginia,51660,966,27 +2020-07-07,Harrisonburg city,Virginia,51660,967,28 +2020-07-08,Harrisonburg city,Virginia,51660,972,28 +2020-07-09,Harrisonburg city,Virginia,51660,975,28 +2020-03-28,Hopewell city,Virginia,51670,1,0 +2020-03-29,Hopewell city,Virginia,51670,1,0 +2020-03-30,Hopewell city,Virginia,51670,3,0 +2020-03-31,Hopewell city,Virginia,51670,4,0 +2020-04-01,Hopewell city,Virginia,51670,4,0 +2020-04-02,Hopewell city,Virginia,51670,5,0 +2020-04-03,Hopewell city,Virginia,51670,7,0 +2020-04-04,Hopewell city,Virginia,51670,9,0 +2020-04-05,Hopewell city,Virginia,51670,10,0 +2020-04-06,Hopewell city,Virginia,51670,10,0 +2020-04-07,Hopewell city,Virginia,51670,13,0 +2020-04-08,Hopewell city,Virginia,51670,13,0 +2020-04-09,Hopewell city,Virginia,51670,13,0 +2020-04-10,Hopewell city,Virginia,51670,14,0 +2020-04-11,Hopewell city,Virginia,51670,14,0 +2020-04-12,Hopewell city,Virginia,51670,14,0 +2020-04-13,Hopewell city,Virginia,51670,14,0 +2020-04-14,Hopewell city,Virginia,51670,14,0 +2020-04-15,Hopewell city,Virginia,51670,14,0 +2020-04-16,Hopewell city,Virginia,51670,14,0 +2020-04-17,Hopewell city,Virginia,51670,14,0 +2020-04-18,Hopewell city,Virginia,51670,16,0 +2020-04-19,Hopewell city,Virginia,51670,16,0 +2020-04-20,Hopewell city,Virginia,51670,16,0 +2020-04-21,Hopewell city,Virginia,51670,16,0 +2020-04-22,Hopewell city,Virginia,51670,16,0 +2020-04-23,Hopewell city,Virginia,51670,19,0 +2020-04-24,Hopewell city,Virginia,51670,19,0 +2020-04-25,Hopewell city,Virginia,51670,21,0 +2020-04-26,Hopewell city,Virginia,51670,22,0 +2020-04-27,Hopewell city,Virginia,51670,24,0 +2020-04-28,Hopewell city,Virginia,51670,24,0 +2020-04-29,Hopewell city,Virginia,51670,24,0 +2020-04-30,Hopewell city,Virginia,51670,24,0 +2020-05-01,Hopewell city,Virginia,51670,25,0 +2020-05-02,Hopewell city,Virginia,51670,27,0 +2020-05-03,Hopewell city,Virginia,51670,27,0 +2020-05-04,Hopewell city,Virginia,51670,31,0 +2020-05-05,Hopewell city,Virginia,51670,31,0 +2020-05-06,Hopewell city,Virginia,51670,31,0 +2020-05-07,Hopewell city,Virginia,51670,33,0 +2020-05-08,Hopewell city,Virginia,51670,33,0 +2020-05-09,Hopewell city,Virginia,51670,33,0 +2020-05-10,Hopewell city,Virginia,51670,37,0 +2020-05-11,Hopewell city,Virginia,51670,39,0 +2020-05-12,Hopewell city,Virginia,51670,44,0 +2020-05-13,Hopewell city,Virginia,51670,45,0 +2020-05-14,Hopewell city,Virginia,51670,48,0 +2020-05-15,Hopewell city,Virginia,51670,49,0 +2020-05-16,Hopewell city,Virginia,51670,49,0 +2020-05-17,Hopewell city,Virginia,51670,51,0 +2020-05-18,Hopewell city,Virginia,51670,53,0 +2020-05-19,Hopewell city,Virginia,51670,58,0 +2020-05-20,Hopewell city,Virginia,51670,61,0 +2020-05-21,Hopewell city,Virginia,51670,62,0 +2020-05-22,Hopewell city,Virginia,51670,66,0 +2020-05-23,Hopewell city,Virginia,51670,67,0 +2020-05-24,Hopewell city,Virginia,51670,66,0 +2020-05-25,Hopewell city,Virginia,51670,66,0 +2020-05-26,Hopewell city,Virginia,51670,73,0 +2020-05-27,Hopewell city,Virginia,51670,78,0 +2020-05-28,Hopewell city,Virginia,51670,81,0 +2020-05-29,Hopewell city,Virginia,51670,85,0 +2020-05-30,Hopewell city,Virginia,51670,87,0 +2020-05-31,Hopewell city,Virginia,51670,90,0 +2020-06-01,Hopewell city,Virginia,51670,92,1 +2020-06-02,Hopewell city,Virginia,51670,96,1 +2020-06-03,Hopewell city,Virginia,51670,98,1 +2020-06-04,Hopewell city,Virginia,51670,103,2 +2020-06-05,Hopewell city,Virginia,51670,110,2 +2020-06-06,Hopewell city,Virginia,51670,114,2 +2020-06-07,Hopewell city,Virginia,51670,116,2 +2020-06-08,Hopewell city,Virginia,51670,118,2 +2020-06-09,Hopewell city,Virginia,51670,118,2 +2020-06-10,Hopewell city,Virginia,51670,120,2 +2020-06-11,Hopewell city,Virginia,51670,120,2 +2020-06-12,Hopewell city,Virginia,51670,129,2 +2020-06-13,Hopewell city,Virginia,51670,138,2 +2020-06-14,Hopewell city,Virginia,51670,138,2 +2020-06-15,Hopewell city,Virginia,51670,141,2 +2020-06-16,Hopewell city,Virginia,51670,144,2 +2020-06-17,Hopewell city,Virginia,51670,149,2 +2020-06-18,Hopewell city,Virginia,51670,150,2 +2020-06-19,Hopewell city,Virginia,51670,151,2 +2020-06-20,Hopewell city,Virginia,51670,151,2 +2020-06-21,Hopewell city,Virginia,51670,151,2 +2020-06-22,Hopewell city,Virginia,51670,152,2 +2020-06-23,Hopewell city,Virginia,51670,155,2 +2020-06-24,Hopewell city,Virginia,51670,163,2 +2020-06-25,Hopewell city,Virginia,51670,163,2 +2020-06-26,Hopewell city,Virginia,51670,163,2 +2020-06-27,Hopewell city,Virginia,51670,169,2 +2020-06-28,Hopewell city,Virginia,51670,169,2 +2020-06-29,Hopewell city,Virginia,51670,169,2 +2020-06-30,Hopewell city,Virginia,51670,174,2 +2020-07-01,Hopewell city,Virginia,51670,176,2 +2020-07-02,Hopewell city,Virginia,51670,182,2 +2020-07-03,Hopewell city,Virginia,51670,184,2 +2020-07-04,Hopewell city,Virginia,51670,185,2 +2020-07-05,Hopewell city,Virginia,51670,186,2 +2020-07-06,Hopewell city,Virginia,51670,188,2 +2020-07-07,Hopewell city,Virginia,51670,191,3 +2020-07-08,Hopewell city,Virginia,51670,191,4 +2020-07-09,Hopewell city,Virginia,51670,192,5 +2020-04-03,Lexington city,Virginia,51678,2,0 +2020-04-04,Lexington city,Virginia,51678,3,0 +2020-04-05,Lexington city,Virginia,51678,3,0 +2020-04-06,Lexington city,Virginia,51678,3,0 +2020-04-07,Lexington city,Virginia,51678,3,0 +2020-04-08,Lexington city,Virginia,51678,3,0 +2020-04-09,Lexington city,Virginia,51678,3,0 +2020-04-10,Lexington city,Virginia,51678,3,0 +2020-04-11,Lexington city,Virginia,51678,3,0 +2020-04-12,Lexington city,Virginia,51678,3,0 +2020-04-13,Lexington city,Virginia,51678,3,0 +2020-04-14,Lexington city,Virginia,51678,3,0 +2020-04-15,Lexington city,Virginia,51678,3,0 +2020-04-16,Lexington city,Virginia,51678,3,0 +2020-04-17,Lexington city,Virginia,51678,3,0 +2020-04-18,Lexington city,Virginia,51678,3,0 +2020-04-19,Lexington city,Virginia,51678,3,0 +2020-04-20,Lexington city,Virginia,51678,3,0 +2020-04-21,Lexington city,Virginia,51678,3,0 +2020-04-22,Lexington city,Virginia,51678,3,0 +2020-04-23,Lexington city,Virginia,51678,3,0 +2020-04-24,Lexington city,Virginia,51678,3,0 +2020-04-25,Lexington city,Virginia,51678,3,0 +2020-04-26,Lexington city,Virginia,51678,3,0 +2020-04-27,Lexington city,Virginia,51678,3,0 +2020-04-28,Lexington city,Virginia,51678,3,0 +2020-04-29,Lexington city,Virginia,51678,3,0 +2020-04-30,Lexington city,Virginia,51678,3,0 +2020-05-01,Lexington city,Virginia,51678,4,0 +2020-05-02,Lexington city,Virginia,51678,5,0 +2020-05-03,Lexington city,Virginia,51678,6,0 +2020-05-04,Lexington city,Virginia,51678,6,0 +2020-05-05,Lexington city,Virginia,51678,5,0 +2020-05-06,Lexington city,Virginia,51678,5,0 +2020-05-07,Lexington city,Virginia,51678,5,0 +2020-05-08,Lexington city,Virginia,51678,5,0 +2020-05-09,Lexington city,Virginia,51678,4,0 +2020-05-10,Lexington city,Virginia,51678,4,0 +2020-05-11,Lexington city,Virginia,51678,5,0 +2020-05-12,Lexington city,Virginia,51678,5,0 +2020-05-13,Lexington city,Virginia,51678,5,0 +2020-05-14,Lexington city,Virginia,51678,5,0 +2020-05-15,Lexington city,Virginia,51678,5,0 +2020-05-16,Lexington city,Virginia,51678,5,0 +2020-05-17,Lexington city,Virginia,51678,6,0 +2020-05-18,Lexington city,Virginia,51678,6,0 +2020-05-19,Lexington city,Virginia,51678,6,0 +2020-05-20,Lexington city,Virginia,51678,6,0 +2020-05-21,Lexington city,Virginia,51678,6,0 +2020-05-22,Lexington city,Virginia,51678,6,0 +2020-05-23,Lexington city,Virginia,51678,6,0 +2020-05-24,Lexington city,Virginia,51678,6,0 +2020-05-25,Lexington city,Virginia,51678,6,0 +2020-05-26,Lexington city,Virginia,51678,6,0 +2020-05-27,Lexington city,Virginia,51678,6,0 +2020-05-28,Lexington city,Virginia,51678,7,0 +2020-05-29,Lexington city,Virginia,51678,7,0 +2020-05-30,Lexington city,Virginia,51678,7,0 +2020-05-31,Lexington city,Virginia,51678,7,0 +2020-06-01,Lexington city,Virginia,51678,7,0 +2020-06-02,Lexington city,Virginia,51678,7,0 +2020-06-03,Lexington city,Virginia,51678,7,0 +2020-06-04,Lexington city,Virginia,51678,7,0 +2020-06-05,Lexington city,Virginia,51678,7,0 +2020-06-06,Lexington city,Virginia,51678,7,0 +2020-06-07,Lexington city,Virginia,51678,8,0 +2020-06-08,Lexington city,Virginia,51678,8,0 +2020-06-09,Lexington city,Virginia,51678,8,0 +2020-06-10,Lexington city,Virginia,51678,8,0 +2020-06-11,Lexington city,Virginia,51678,8,0 +2020-06-12,Lexington city,Virginia,51678,8,0 +2020-06-13,Lexington city,Virginia,51678,8,0 +2020-06-14,Lexington city,Virginia,51678,8,0 +2020-06-15,Lexington city,Virginia,51678,8,0 +2020-06-16,Lexington city,Virginia,51678,8,0 +2020-06-17,Lexington city,Virginia,51678,8,0 +2020-06-18,Lexington city,Virginia,51678,8,0 +2020-06-19,Lexington city,Virginia,51678,8,0 +2020-06-20,Lexington city,Virginia,51678,9,0 +2020-06-21,Lexington city,Virginia,51678,9,0 +2020-06-22,Lexington city,Virginia,51678,10,0 +2020-06-23,Lexington city,Virginia,51678,10,0 +2020-06-24,Lexington city,Virginia,51678,10,0 +2020-06-25,Lexington city,Virginia,51678,10,0 +2020-06-26,Lexington city,Virginia,51678,10,0 +2020-06-27,Lexington city,Virginia,51678,10,0 +2020-06-28,Lexington city,Virginia,51678,10,0 +2020-06-29,Lexington city,Virginia,51678,10,0 +2020-06-30,Lexington city,Virginia,51678,10,0 +2020-07-01,Lexington city,Virginia,51678,10,0 +2020-07-02,Lexington city,Virginia,51678,11,0 +2020-07-03,Lexington city,Virginia,51678,11,0 +2020-07-04,Lexington city,Virginia,51678,13,0 +2020-07-05,Lexington city,Virginia,51678,13,0 +2020-07-06,Lexington city,Virginia,51678,13,0 +2020-07-07,Lexington city,Virginia,51678,13,0 +2020-07-08,Lexington city,Virginia,51678,13,0 +2020-07-09,Lexington city,Virginia,51678,12,0 +2020-03-26,Lynchburg city,Virginia,51680,1,0 +2020-03-27,Lynchburg city,Virginia,51680,2,0 +2020-03-28,Lynchburg city,Virginia,51680,2,0 +2020-03-29,Lynchburg city,Virginia,51680,3,0 +2020-03-30,Lynchburg city,Virginia,51680,4,0 +2020-03-31,Lynchburg city,Virginia,51680,5,0 +2020-04-01,Lynchburg city,Virginia,51680,7,0 +2020-04-02,Lynchburg city,Virginia,51680,9,0 +2020-04-03,Lynchburg city,Virginia,51680,9,0 +2020-04-04,Lynchburg city,Virginia,51680,10,0 +2020-04-05,Lynchburg city,Virginia,51680,10,0 +2020-04-06,Lynchburg city,Virginia,51680,11,0 +2020-04-07,Lynchburg city,Virginia,51680,20,0 +2020-04-08,Lynchburg city,Virginia,51680,20,0 +2020-04-09,Lynchburg city,Virginia,51680,21,0 +2020-04-10,Lynchburg city,Virginia,51680,27,0 +2020-04-11,Lynchburg city,Virginia,51680,31,0 +2020-04-12,Lynchburg city,Virginia,51680,31,0 +2020-04-13,Lynchburg city,Virginia,51680,33,0 +2020-04-14,Lynchburg city,Virginia,51680,33,0 +2020-04-15,Lynchburg city,Virginia,51680,34,0 +2020-04-16,Lynchburg city,Virginia,51680,34,0 +2020-04-17,Lynchburg city,Virginia,51680,38,0 +2020-04-18,Lynchburg city,Virginia,51680,38,0 +2020-04-19,Lynchburg city,Virginia,51680,38,0 +2020-04-20,Lynchburg city,Virginia,51680,38,0 +2020-04-21,Lynchburg city,Virginia,51680,43,1 +2020-04-22,Lynchburg city,Virginia,51680,43,1 +2020-04-23,Lynchburg city,Virginia,51680,47,1 +2020-04-24,Lynchburg city,Virginia,51680,48,1 +2020-04-25,Lynchburg city,Virginia,51680,48,1 +2020-04-26,Lynchburg city,Virginia,51680,50,1 +2020-04-27,Lynchburg city,Virginia,51680,51,1 +2020-04-28,Lynchburg city,Virginia,51680,51,1 +2020-04-29,Lynchburg city,Virginia,51680,52,1 +2020-04-30,Lynchburg city,Virginia,51680,53,1 +2020-05-01,Lynchburg city,Virginia,51680,58,1 +2020-05-02,Lynchburg city,Virginia,51680,62,1 +2020-05-03,Lynchburg city,Virginia,51680,64,1 +2020-05-04,Lynchburg city,Virginia,51680,64,1 +2020-05-05,Lynchburg city,Virginia,51680,65,1 +2020-05-06,Lynchburg city,Virginia,51680,65,1 +2020-05-07,Lynchburg city,Virginia,51680,68,1 +2020-05-08,Lynchburg city,Virginia,51680,68,1 +2020-05-09,Lynchburg city,Virginia,51680,68,1 +2020-05-10,Lynchburg city,Virginia,51680,68,1 +2020-05-11,Lynchburg city,Virginia,51680,69,1 +2020-05-12,Lynchburg city,Virginia,51680,70,1 +2020-05-13,Lynchburg city,Virginia,51680,72,1 +2020-05-14,Lynchburg city,Virginia,51680,73,1 +2020-05-15,Lynchburg city,Virginia,51680,73,1 +2020-05-16,Lynchburg city,Virginia,51680,73,1 +2020-05-17,Lynchburg city,Virginia,51680,73,1 +2020-05-18,Lynchburg city,Virginia,51680,74,1 +2020-05-19,Lynchburg city,Virginia,51680,75,1 +2020-05-20,Lynchburg city,Virginia,51680,75,1 +2020-05-21,Lynchburg city,Virginia,51680,75,1 +2020-05-22,Lynchburg city,Virginia,51680,77,1 +2020-05-23,Lynchburg city,Virginia,51680,77,1 +2020-05-24,Lynchburg city,Virginia,51680,77,1 +2020-05-25,Lynchburg city,Virginia,51680,77,1 +2020-05-26,Lynchburg city,Virginia,51680,79,1 +2020-05-27,Lynchburg city,Virginia,51680,80,1 +2020-05-28,Lynchburg city,Virginia,51680,80,1 +2020-05-29,Lynchburg city,Virginia,51680,80,1 +2020-05-30,Lynchburg city,Virginia,51680,80,1 +2020-05-31,Lynchburg city,Virginia,51680,80,1 +2020-06-01,Lynchburg city,Virginia,51680,80,1 +2020-06-02,Lynchburg city,Virginia,51680,80,1 +2020-06-03,Lynchburg city,Virginia,51680,80,1 +2020-06-04,Lynchburg city,Virginia,51680,80,1 +2020-06-05,Lynchburg city,Virginia,51680,87,1 +2020-06-06,Lynchburg city,Virginia,51680,88,1 +2020-06-07,Lynchburg city,Virginia,51680,88,1 +2020-06-08,Lynchburg city,Virginia,51680,88,1 +2020-06-09,Lynchburg city,Virginia,51680,89,1 +2020-06-10,Lynchburg city,Virginia,51680,89,1 +2020-06-11,Lynchburg city,Virginia,51680,89,1 +2020-06-12,Lynchburg city,Virginia,51680,91,1 +2020-06-13,Lynchburg city,Virginia,51680,92,1 +2020-06-14,Lynchburg city,Virginia,51680,92,1 +2020-06-15,Lynchburg city,Virginia,51680,92,1 +2020-06-16,Lynchburg city,Virginia,51680,96,1 +2020-06-17,Lynchburg city,Virginia,51680,96,1 +2020-06-18,Lynchburg city,Virginia,51680,99,1 +2020-06-19,Lynchburg city,Virginia,51680,105,1 +2020-06-20,Lynchburg city,Virginia,51680,108,1 +2020-06-21,Lynchburg city,Virginia,51680,108,1 +2020-06-22,Lynchburg city,Virginia,51680,108,1 +2020-06-23,Lynchburg city,Virginia,51680,113,1 +2020-06-24,Lynchburg city,Virginia,51680,116,1 +2020-06-25,Lynchburg city,Virginia,51680,122,1 +2020-06-26,Lynchburg city,Virginia,51680,132,1 +2020-06-27,Lynchburg city,Virginia,51680,132,1 +2020-06-28,Lynchburg city,Virginia,51680,134,1 +2020-06-29,Lynchburg city,Virginia,51680,139,1 +2020-06-30,Lynchburg city,Virginia,51680,147,1 +2020-07-01,Lynchburg city,Virginia,51680,145,1 +2020-07-02,Lynchburg city,Virginia,51680,146,1 +2020-07-03,Lynchburg city,Virginia,51680,159,1 +2020-07-04,Lynchburg city,Virginia,51680,162,1 +2020-07-05,Lynchburg city,Virginia,51680,162,1 +2020-07-06,Lynchburg city,Virginia,51680,164,1 +2020-07-07,Lynchburg city,Virginia,51680,169,1 +2020-07-08,Lynchburg city,Virginia,51680,169,1 +2020-07-09,Lynchburg city,Virginia,51680,169,1 +2020-03-25,Manassas city,Virginia,51683,2,0 +2020-03-26,Manassas city,Virginia,51683,3,0 +2020-03-27,Manassas city,Virginia,51683,3,0 +2020-03-28,Manassas city,Virginia,51683,4,0 +2020-03-29,Manassas city,Virginia,51683,5,0 +2020-03-30,Manassas city,Virginia,51683,7,0 +2020-03-31,Manassas city,Virginia,51683,8,0 +2020-04-01,Manassas city,Virginia,51683,9,0 +2020-04-02,Manassas city,Virginia,51683,12,0 +2020-04-03,Manassas city,Virginia,51683,13,0 +2020-04-04,Manassas city,Virginia,51683,14,0 +2020-04-05,Manassas city,Virginia,51683,14,0 +2020-04-06,Manassas city,Virginia,51683,17,0 +2020-04-07,Manassas city,Virginia,51683,20,0 +2020-04-08,Manassas city,Virginia,51683,20,0 +2020-04-09,Manassas city,Virginia,51683,25,0 +2020-04-10,Manassas city,Virginia,51683,29,0 +2020-04-11,Manassas city,Virginia,51683,34,0 +2020-04-12,Manassas city,Virginia,51683,34,0 +2020-04-13,Manassas city,Virginia,51683,41,0 +2020-04-14,Manassas city,Virginia,51683,49,0 +2020-04-15,Manassas city,Virginia,51683,53,0 +2020-04-16,Manassas city,Virginia,51683,62,0 +2020-04-17,Manassas city,Virginia,51683,72,0 +2020-04-18,Manassas city,Virginia,51683,82,0 +2020-04-19,Manassas city,Virginia,51683,93,0 +2020-04-20,Manassas city,Virginia,51683,96,0 +2020-04-21,Manassas city,Virginia,51683,110,0 +2020-04-22,Manassas city,Virginia,51683,117,0 +2020-04-23,Manassas city,Virginia,51683,127,1 +2020-04-24,Manassas city,Virginia,51683,137,1 +2020-04-25,Manassas city,Virginia,51683,154,1 +2020-04-26,Manassas city,Virginia,51683,158,2 +2020-04-27,Manassas city,Virginia,51683,165,2 +2020-04-28,Manassas city,Virginia,51683,175,2 +2020-04-29,Manassas city,Virginia,51683,196,3 +2020-04-30,Manassas city,Virginia,51683,216,2 +2020-05-01,Manassas city,Virginia,51683,222,2 +2020-05-02,Manassas city,Virginia,51683,258,2 +2020-05-03,Manassas city,Virginia,51683,266,1 +2020-05-04,Manassas city,Virginia,51683,273,1 +2020-05-05,Manassas city,Virginia,51683,289,1 +2020-05-06,Manassas city,Virginia,51683,289,1 +2020-05-07,Manassas city,Virginia,51683,332,1 +2020-05-08,Manassas city,Virginia,51683,355,2 +2020-05-09,Manassas city,Virginia,51683,358,2 +2020-05-10,Manassas city,Virginia,51683,381,2 +2020-05-11,Manassas city,Virginia,51683,428,3 +2020-05-12,Manassas city,Virginia,51683,430,3 +2020-05-13,Manassas city,Virginia,51683,459,4 +2020-05-14,Manassas city,Virginia,51683,515,5 +2020-05-15,Manassas city,Virginia,51683,533,5 +2020-05-16,Manassas city,Virginia,51683,574,5 +2020-05-17,Manassas city,Virginia,51683,594,5 +2020-05-18,Manassas city,Virginia,51683,628,5 +2020-05-19,Manassas city,Virginia,51683,680,5 +2020-05-20,Manassas city,Virginia,51683,699,6 +2020-05-21,Manassas city,Virginia,51683,743,6 +2020-05-22,Manassas city,Virginia,51683,764,7 +2020-05-23,Manassas city,Virginia,51683,792,7 +2020-05-24,Manassas city,Virginia,51683,806,7 +2020-05-25,Manassas city,Virginia,51683,849,9 +2020-05-26,Manassas city,Virginia,51683,956,9 +2020-05-27,Manassas city,Virginia,51683,966,10 +2020-05-28,Manassas city,Virginia,51683,971,10 +2020-05-29,Manassas city,Virginia,51683,1004,10 +2020-05-30,Manassas city,Virginia,51683,1046,10 +2020-05-31,Manassas city,Virginia,51683,1092,10 +2020-06-01,Manassas city,Virginia,51683,1105,11 +2020-06-02,Manassas city,Virginia,51683,1135,11 +2020-06-03,Manassas city,Virginia,51683,1154,12 +2020-06-04,Manassas city,Virginia,51683,1166,12 +2020-06-05,Manassas city,Virginia,51683,1190,12 +2020-06-06,Manassas city,Virginia,51683,1214,12 +2020-06-07,Manassas city,Virginia,51683,1228,11 +2020-06-08,Manassas city,Virginia,51683,1248,11 +2020-06-09,Manassas city,Virginia,51683,1254,11 +2020-06-10,Manassas city,Virginia,51683,1262,12 +2020-06-11,Manassas city,Virginia,51683,1271,12 +2020-06-12,Manassas city,Virginia,51683,1282,12 +2020-06-13,Manassas city,Virginia,51683,1299,12 +2020-06-14,Manassas city,Virginia,51683,1309,12 +2020-06-15,Manassas city,Virginia,51683,1314,13 +2020-06-16,Manassas city,Virginia,51683,1317,14 +2020-06-17,Manassas city,Virginia,51683,1320,14 +2020-06-18,Manassas city,Virginia,51683,1337,14 +2020-06-19,Manassas city,Virginia,51683,1352,16 +2020-06-20,Manassas city,Virginia,51683,1353,16 +2020-06-21,Manassas city,Virginia,51683,1363,16 +2020-06-22,Manassas city,Virginia,51683,1366,16 +2020-06-23,Manassas city,Virginia,51683,1367,16 +2020-06-24,Manassas city,Virginia,51683,1370,16 +2020-06-25,Manassas city,Virginia,51683,1374,16 +2020-06-26,Manassas city,Virginia,51683,1379,16 +2020-06-27,Manassas city,Virginia,51683,1382,16 +2020-06-28,Manassas city,Virginia,51683,1387,16 +2020-06-29,Manassas city,Virginia,51683,1385,16 +2020-06-30,Manassas city,Virginia,51683,1397,16 +2020-07-01,Manassas city,Virginia,51683,1414,18 +2020-07-02,Manassas city,Virginia,51683,1417,18 +2020-07-03,Manassas city,Virginia,51683,1430,18 +2020-07-04,Manassas city,Virginia,51683,1435,18 +2020-07-05,Manassas city,Virginia,51683,1451,18 +2020-07-06,Manassas city,Virginia,51683,1452,18 +2020-07-07,Manassas city,Virginia,51683,1458,18 +2020-07-08,Manassas city,Virginia,51683,1464,18 +2020-07-09,Manassas city,Virginia,51683,1464,18 +2020-03-29,Manassas Park city,Virginia,51685,1,0 +2020-03-30,Manassas Park city,Virginia,51685,1,0 +2020-03-31,Manassas Park city,Virginia,51685,1,0 +2020-04-01,Manassas Park city,Virginia,51685,1,0 +2020-04-02,Manassas Park city,Virginia,51685,1,0 +2020-04-03,Manassas Park city,Virginia,51685,2,0 +2020-04-04,Manassas Park city,Virginia,51685,2,0 +2020-04-05,Manassas Park city,Virginia,51685,2,0 +2020-04-06,Manassas Park city,Virginia,51685,4,0 +2020-04-07,Manassas Park city,Virginia,51685,4,0 +2020-04-08,Manassas Park city,Virginia,51685,5,0 +2020-04-09,Manassas Park city,Virginia,51685,5,0 +2020-04-10,Manassas Park city,Virginia,51685,7,0 +2020-04-11,Manassas Park city,Virginia,51685,10,0 +2020-04-12,Manassas Park city,Virginia,51685,10,0 +2020-04-13,Manassas Park city,Virginia,51685,10,0 +2020-04-14,Manassas Park city,Virginia,51685,13,0 +2020-04-15,Manassas Park city,Virginia,51685,14,0 +2020-04-16,Manassas Park city,Virginia,51685,16,0 +2020-04-17,Manassas Park city,Virginia,51685,21,0 +2020-04-18,Manassas Park city,Virginia,51685,21,0 +2020-04-19,Manassas Park city,Virginia,51685,25,0 +2020-04-20,Manassas Park city,Virginia,51685,30,0 +2020-04-21,Manassas Park city,Virginia,51685,31,1 +2020-04-22,Manassas Park city,Virginia,51685,34,1 +2020-04-23,Manassas Park city,Virginia,51685,38,1 +2020-04-24,Manassas Park city,Virginia,51685,44,1 +2020-04-25,Manassas Park city,Virginia,51685,44,1 +2020-04-26,Manassas Park city,Virginia,51685,45,1 +2020-04-27,Manassas Park city,Virginia,51685,50,1 +2020-04-28,Manassas Park city,Virginia,51685,53,1 +2020-04-29,Manassas Park city,Virginia,51685,60,1 +2020-04-30,Manassas Park city,Virginia,51685,61,1 +2020-05-01,Manassas Park city,Virginia,51685,68,1 +2020-05-02,Manassas Park city,Virginia,51685,76,1 +2020-05-03,Manassas Park city,Virginia,51685,82,1 +2020-05-04,Manassas Park city,Virginia,51685,88,2 +2020-05-05,Manassas Park city,Virginia,51685,96,2 +2020-05-06,Manassas Park city,Virginia,51685,96,2 +2020-05-07,Manassas Park city,Virginia,51685,106,2 +2020-05-08,Manassas Park city,Virginia,51685,114,2 +2020-05-09,Manassas Park city,Virginia,51685,116,2 +2020-05-10,Manassas Park city,Virginia,51685,120,2 +2020-05-11,Manassas Park city,Virginia,51685,135,2 +2020-05-12,Manassas Park city,Virginia,51685,139,3 +2020-05-13,Manassas Park city,Virginia,51685,152,3 +2020-05-14,Manassas Park city,Virginia,51685,170,3 +2020-05-15,Manassas Park city,Virginia,51685,176,3 +2020-05-16,Manassas Park city,Virginia,51685,183,3 +2020-05-17,Manassas Park city,Virginia,51685,187,3 +2020-05-18,Manassas Park city,Virginia,51685,198,3 +2020-05-19,Manassas Park city,Virginia,51685,202,3 +2020-05-20,Manassas Park city,Virginia,51685,207,3 +2020-05-21,Manassas Park city,Virginia,51685,223,3 +2020-05-22,Manassas Park city,Virginia,51685,228,4 +2020-05-23,Manassas Park city,Virginia,51685,230,4 +2020-05-24,Manassas Park city,Virginia,51685,239,4 +2020-05-25,Manassas Park city,Virginia,51685,261,5 +2020-05-26,Manassas Park city,Virginia,51685,277,6 +2020-05-27,Manassas Park city,Virginia,51685,280,6 +2020-05-28,Manassas Park city,Virginia,51685,281,6 +2020-05-29,Manassas Park city,Virginia,51685,287,6 +2020-05-30,Manassas Park city,Virginia,51685,299,6 +2020-05-31,Manassas Park city,Virginia,51685,305,6 +2020-06-01,Manassas Park city,Virginia,51685,317,6 +2020-06-02,Manassas Park city,Virginia,51685,327,6 +2020-06-03,Manassas Park city,Virginia,51685,332,6 +2020-06-04,Manassas Park city,Virginia,51685,339,6 +2020-06-05,Manassas Park city,Virginia,51685,343,6 +2020-06-06,Manassas Park city,Virginia,51685,351,6 +2020-06-07,Manassas Park city,Virginia,51685,355,6 +2020-06-08,Manassas Park city,Virginia,51685,359,6 +2020-06-09,Manassas Park city,Virginia,51685,359,6 +2020-06-10,Manassas Park city,Virginia,51685,360,6 +2020-06-11,Manassas Park city,Virginia,51685,361,6 +2020-06-12,Manassas Park city,Virginia,51685,369,6 +2020-06-13,Manassas Park city,Virginia,51685,372,6 +2020-06-14,Manassas Park city,Virginia,51685,378,6 +2020-06-15,Manassas Park city,Virginia,51685,384,6 +2020-06-16,Manassas Park city,Virginia,51685,388,6 +2020-06-17,Manassas Park city,Virginia,51685,390,6 +2020-06-18,Manassas Park city,Virginia,51685,393,6 +2020-06-19,Manassas Park city,Virginia,51685,402,5 +2020-06-20,Manassas Park city,Virginia,51685,407,5 +2020-06-21,Manassas Park city,Virginia,51685,410,5 +2020-06-22,Manassas Park city,Virginia,51685,414,5 +2020-06-23,Manassas Park city,Virginia,51685,416,5 +2020-06-24,Manassas Park city,Virginia,51685,416,5 +2020-06-25,Manassas Park city,Virginia,51685,417,5 +2020-06-26,Manassas Park city,Virginia,51685,419,5 +2020-06-27,Manassas Park city,Virginia,51685,422,5 +2020-06-28,Manassas Park city,Virginia,51685,428,5 +2020-06-29,Manassas Park city,Virginia,51685,427,5 +2020-06-30,Manassas Park city,Virginia,51685,431,6 +2020-07-01,Manassas Park city,Virginia,51685,430,6 +2020-07-02,Manassas Park city,Virginia,51685,431,6 +2020-07-03,Manassas Park city,Virginia,51685,434,6 +2020-07-04,Manassas Park city,Virginia,51685,435,6 +2020-07-05,Manassas Park city,Virginia,51685,444,6 +2020-07-06,Manassas Park city,Virginia,51685,445,6 +2020-07-07,Manassas Park city,Virginia,51685,447,6 +2020-07-08,Manassas Park city,Virginia,51685,449,6 +2020-07-09,Manassas Park city,Virginia,51685,451,6 +2020-03-20,Newport News city,Virginia,51700,1,0 +2020-03-21,Newport News city,Virginia,51700,2,0 +2020-03-22,Newport News city,Virginia,51700,2,1 +2020-03-23,Newport News city,Virginia,51700,2,1 +2020-03-24,Newport News city,Virginia,51700,3,1 +2020-03-25,Newport News city,Virginia,51700,4,1 +2020-03-26,Newport News city,Virginia,51700,8,1 +2020-03-27,Newport News city,Virginia,51700,12,1 +2020-03-28,Newport News city,Virginia,51700,13,1 +2020-03-29,Newport News city,Virginia,51700,17,1 +2020-03-30,Newport News city,Virginia,51700,18,1 +2020-03-31,Newport News city,Virginia,51700,23,1 +2020-04-01,Newport News city,Virginia,51700,29,1 +2020-04-02,Newport News city,Virginia,51700,33,1 +2020-04-03,Newport News city,Virginia,51700,37,1 +2020-04-04,Newport News city,Virginia,51700,48,1 +2020-04-05,Newport News city,Virginia,51700,51,1 +2020-04-06,Newport News city,Virginia,51700,54,1 +2020-04-07,Newport News city,Virginia,51700,57,1 +2020-04-08,Newport News city,Virginia,51700,60,1 +2020-04-09,Newport News city,Virginia,51700,64,1 +2020-04-10,Newport News city,Virginia,51700,68,1 +2020-04-11,Newport News city,Virginia,51700,75,1 +2020-04-12,Newport News city,Virginia,51700,78,1 +2020-04-13,Newport News city,Virginia,51700,88,1 +2020-04-14,Newport News city,Virginia,51700,93,1 +2020-04-15,Newport News city,Virginia,51700,95,1 +2020-04-16,Newport News city,Virginia,51700,97,1 +2020-04-17,Newport News city,Virginia,51700,100,1 +2020-04-18,Newport News city,Virginia,51700,102,1 +2020-04-19,Newport News city,Virginia,51700,101,1 +2020-04-20,Newport News city,Virginia,51700,102,1 +2020-04-21,Newport News city,Virginia,51700,101,6 +2020-04-22,Newport News city,Virginia,51700,101,6 +2020-04-23,Newport News city,Virginia,51700,105,6 +2020-04-24,Newport News city,Virginia,51700,107,6 +2020-04-25,Newport News city,Virginia,51700,109,6 +2020-04-26,Newport News city,Virginia,51700,111,6 +2020-04-27,Newport News city,Virginia,51700,112,7 +2020-04-28,Newport News city,Virginia,51700,112,7 +2020-04-29,Newport News city,Virginia,51700,114,7 +2020-04-30,Newport News city,Virginia,51700,118,7 +2020-05-01,Newport News city,Virginia,51700,120,9 +2020-05-02,Newport News city,Virginia,51700,123,9 +2020-05-03,Newport News city,Virginia,51700,125,9 +2020-05-04,Newport News city,Virginia,51700,132,9 +2020-05-05,Newport News city,Virginia,51700,133,9 +2020-05-06,Newport News city,Virginia,51700,133,9 +2020-05-07,Newport News city,Virginia,51700,137,10 +2020-05-08,Newport News city,Virginia,51700,144,10 +2020-05-09,Newport News city,Virginia,51700,152,10 +2020-05-10,Newport News city,Virginia,51700,159,10 +2020-05-11,Newport News city,Virginia,51700,164,10 +2020-05-12,Newport News city,Virginia,51700,166,10 +2020-05-13,Newport News city,Virginia,51700,171,10 +2020-05-14,Newport News city,Virginia,51700,179,10 +2020-05-15,Newport News city,Virginia,51700,184,10 +2020-05-16,Newport News city,Virginia,51700,187,10 +2020-05-17,Newport News city,Virginia,51700,193,10 +2020-05-18,Newport News city,Virginia,51700,206,10 +2020-05-19,Newport News city,Virginia,51700,209,10 +2020-05-20,Newport News city,Virginia,51700,211,10 +2020-05-21,Newport News city,Virginia,51700,215,10 +2020-05-22,Newport News city,Virginia,51700,224,10 +2020-05-23,Newport News city,Virginia,51700,234,10 +2020-05-24,Newport News city,Virginia,51700,237,10 +2020-05-25,Newport News city,Virginia,51700,245,10 +2020-05-26,Newport News city,Virginia,51700,250,10 +2020-05-27,Newport News city,Virginia,51700,254,10 +2020-05-28,Newport News city,Virginia,51700,257,10 +2020-05-29,Newport News city,Virginia,51700,257,10 +2020-05-30,Newport News city,Virginia,51700,258,10 +2020-05-31,Newport News city,Virginia,51700,273,10 +2020-06-01,Newport News city,Virginia,51700,282,10 +2020-06-02,Newport News city,Virginia,51700,291,10 +2020-06-03,Newport News city,Virginia,51700,292,10 +2020-06-04,Newport News city,Virginia,51700,299,10 +2020-06-05,Newport News city,Virginia,51700,309,10 +2020-06-06,Newport News city,Virginia,51700,314,10 +2020-06-07,Newport News city,Virginia,51700,320,10 +2020-06-08,Newport News city,Virginia,51700,322,10 +2020-06-09,Newport News city,Virginia,51700,323,10 +2020-06-10,Newport News city,Virginia,51700,328,10 +2020-06-11,Newport News city,Virginia,51700,337,10 +2020-06-12,Newport News city,Virginia,51700,351,10 +2020-06-13,Newport News city,Virginia,51700,357,10 +2020-06-14,Newport News city,Virginia,51700,371,10 +2020-06-15,Newport News city,Virginia,51700,381,10 +2020-06-16,Newport News city,Virginia,51700,390,10 +2020-06-17,Newport News city,Virginia,51700,399,10 +2020-06-18,Newport News city,Virginia,51700,402,10 +2020-06-19,Newport News city,Virginia,51700,410,10 +2020-06-20,Newport News city,Virginia,51700,430,10 +2020-06-21,Newport News city,Virginia,51700,438,10 +2020-06-22,Newport News city,Virginia,51700,447,10 +2020-06-23,Newport News city,Virginia,51700,452,10 +2020-06-24,Newport News city,Virginia,51700,463,10 +2020-06-25,Newport News city,Virginia,51700,466,10 +2020-06-26,Newport News city,Virginia,51700,474,10 +2020-06-27,Newport News city,Virginia,51700,490,10 +2020-06-28,Newport News city,Virginia,51700,500,10 +2020-06-29,Newport News city,Virginia,51700,513,10 +2020-06-30,Newport News city,Virginia,51700,523,10 +2020-07-01,Newport News city,Virginia,51700,535,10 +2020-07-02,Newport News city,Virginia,51700,541,10 +2020-07-03,Newport News city,Virginia,51700,549,10 +2020-07-04,Newport News city,Virginia,51700,568,10 +2020-07-05,Newport News city,Virginia,51700,584,10 +2020-07-06,Newport News city,Virginia,51700,592,10 +2020-07-07,Newport News city,Virginia,51700,613,10 +2020-07-08,Newport News city,Virginia,51700,634,10 +2020-07-09,Newport News city,Virginia,51700,659,10 +2020-03-20,Norfolk city,Virginia,51710,1,0 +2020-03-21,Norfolk city,Virginia,51710,3,0 +2020-03-22,Norfolk city,Virginia,51710,3,0 +2020-03-23,Norfolk city,Virginia,51710,4,0 +2020-03-24,Norfolk city,Virginia,51710,5,0 +2020-03-25,Norfolk city,Virginia,51710,5,0 +2020-03-26,Norfolk city,Virginia,51710,6,0 +2020-03-27,Norfolk city,Virginia,51710,8,0 +2020-03-28,Norfolk city,Virginia,51710,10,0 +2020-03-29,Norfolk city,Virginia,51710,14,0 +2020-03-30,Norfolk city,Virginia,51710,17,0 +2020-03-31,Norfolk city,Virginia,51710,27,0 +2020-04-01,Norfolk city,Virginia,51710,33,0 +2020-04-02,Norfolk city,Virginia,51710,37,0 +2020-04-03,Norfolk city,Virginia,51710,43,1 +2020-04-04,Norfolk city,Virginia,51710,55,1 +2020-04-05,Norfolk city,Virginia,51710,59,1 +2020-04-06,Norfolk city,Virginia,51710,60,1 +2020-04-07,Norfolk city,Virginia,51710,72,1 +2020-04-08,Norfolk city,Virginia,51710,77,1 +2020-04-09,Norfolk city,Virginia,51710,84,1 +2020-04-10,Norfolk city,Virginia,51710,88,1 +2020-04-11,Norfolk city,Virginia,51710,90,1 +2020-04-12,Norfolk city,Virginia,51710,90,1 +2020-04-13,Norfolk city,Virginia,51710,99,1 +2020-04-14,Norfolk city,Virginia,51710,97,1 +2020-04-15,Norfolk city,Virginia,51710,99,1 +2020-04-16,Norfolk city,Virginia,51710,105,1 +2020-04-17,Norfolk city,Virginia,51710,108,1 +2020-04-18,Norfolk city,Virginia,51710,109,1 +2020-04-19,Norfolk city,Virginia,51710,111,2 +2020-04-20,Norfolk city,Virginia,51710,113,2 +2020-04-21,Norfolk city,Virginia,51710,118,3 +2020-04-22,Norfolk city,Virginia,51710,126,3 +2020-04-23,Norfolk city,Virginia,51710,136,3 +2020-04-24,Norfolk city,Virginia,51710,141,3 +2020-04-25,Norfolk city,Virginia,51710,169,3 +2020-04-26,Norfolk city,Virginia,51710,179,3 +2020-04-27,Norfolk city,Virginia,51710,184,3 +2020-04-28,Norfolk city,Virginia,51710,188,3 +2020-04-29,Norfolk city,Virginia,51710,192,3 +2020-04-30,Norfolk city,Virginia,51710,198,3 +2020-05-01,Norfolk city,Virginia,51710,204,3 +2020-05-02,Norfolk city,Virginia,51710,211,3 +2020-05-03,Norfolk city,Virginia,51710,221,4 +2020-05-04,Norfolk city,Virginia,51710,239,4 +2020-05-05,Norfolk city,Virginia,51710,251,4 +2020-05-06,Norfolk city,Virginia,51710,251,4 +2020-05-07,Norfolk city,Virginia,51710,270,5 +2020-05-08,Norfolk city,Virginia,51710,274,5 +2020-05-09,Norfolk city,Virginia,51710,290,5 +2020-05-10,Norfolk city,Virginia,51710,304,5 +2020-05-11,Norfolk city,Virginia,51710,308,5 +2020-05-12,Norfolk city,Virginia,51710,319,5 +2020-05-13,Norfolk city,Virginia,51710,327,5 +2020-05-14,Norfolk city,Virginia,51710,338,5 +2020-05-15,Norfolk city,Virginia,51710,349,5 +2020-05-16,Norfolk city,Virginia,51710,350,5 +2020-05-17,Norfolk city,Virginia,51710,350,5 +2020-05-18,Norfolk city,Virginia,51710,361,5 +2020-05-19,Norfolk city,Virginia,51710,370,6 +2020-05-20,Norfolk city,Virginia,51710,370,6 +2020-05-21,Norfolk city,Virginia,51710,377,6 +2020-05-22,Norfolk city,Virginia,51710,388,6 +2020-05-23,Norfolk city,Virginia,51710,393,6 +2020-05-24,Norfolk city,Virginia,51710,399,6 +2020-05-25,Norfolk city,Virginia,51710,432,6 +2020-05-26,Norfolk city,Virginia,51710,450,6 +2020-05-27,Norfolk city,Virginia,51710,451,6 +2020-05-28,Norfolk city,Virginia,51710,452,6 +2020-05-29,Norfolk city,Virginia,51710,470,6 +2020-05-30,Norfolk city,Virginia,51710,490,6 +2020-05-31,Norfolk city,Virginia,51710,503,6 +2020-06-01,Norfolk city,Virginia,51710,521,6 +2020-06-02,Norfolk city,Virginia,51710,530,6 +2020-06-03,Norfolk city,Virginia,51710,539,6 +2020-06-04,Norfolk city,Virginia,51710,552,6 +2020-06-05,Norfolk city,Virginia,51710,560,6 +2020-06-06,Norfolk city,Virginia,51710,562,7 +2020-06-07,Norfolk city,Virginia,51710,583,7 +2020-06-08,Norfolk city,Virginia,51710,589,7 +2020-06-09,Norfolk city,Virginia,51710,596,7 +2020-06-10,Norfolk city,Virginia,51710,605,7 +2020-06-11,Norfolk city,Virginia,51710,619,7 +2020-06-12,Norfolk city,Virginia,51710,630,7 +2020-06-13,Norfolk city,Virginia,51710,643,7 +2020-06-14,Norfolk city,Virginia,51710,660,7 +2020-06-15,Norfolk city,Virginia,51710,668,7 +2020-06-16,Norfolk city,Virginia,51710,681,7 +2020-06-17,Norfolk city,Virginia,51710,698,7 +2020-06-18,Norfolk city,Virginia,51710,704,7 +2020-06-19,Norfolk city,Virginia,51710,707,7 +2020-06-20,Norfolk city,Virginia,51710,723,7 +2020-06-21,Norfolk city,Virginia,51710,737,7 +2020-06-22,Norfolk city,Virginia,51710,746,7 +2020-06-23,Norfolk city,Virginia,51710,747,7 +2020-06-24,Norfolk city,Virginia,51710,771,7 +2020-06-25,Norfolk city,Virginia,51710,795,8 +2020-06-26,Norfolk city,Virginia,51710,822,8 +2020-06-27,Norfolk city,Virginia,51710,842,9 +2020-06-28,Norfolk city,Virginia,51710,855,9 +2020-06-29,Norfolk city,Virginia,51710,889,9 +2020-06-30,Norfolk city,Virginia,51710,915,9 +2020-07-01,Norfolk city,Virginia,51710,934,10 +2020-07-02,Norfolk city,Virginia,51710,987,11 +2020-07-03,Norfolk city,Virginia,51710,1000,11 +2020-07-04,Norfolk city,Virginia,51710,1067,12 +2020-07-05,Norfolk city,Virginia,51710,1072,12 +2020-07-06,Norfolk city,Virginia,51710,1105,12 +2020-07-07,Norfolk city,Virginia,51710,1162,12 +2020-07-08,Norfolk city,Virginia,51710,1194,14 +2020-07-09,Norfolk city,Virginia,51710,1289,14 +2020-04-21,Norton city,Virginia,51720,2,0 +2020-04-22,Norton city,Virginia,51720,2,0 +2020-04-23,Norton city,Virginia,51720,2,0 +2020-04-24,Norton city,Virginia,51720,2,0 +2020-04-25,Norton city,Virginia,51720,2,0 +2020-04-26,Norton city,Virginia,51720,2,0 +2020-04-27,Norton city,Virginia,51720,2,0 +2020-04-28,Norton city,Virginia,51720,2,0 +2020-04-29,Norton city,Virginia,51720,2,0 +2020-04-30,Norton city,Virginia,51720,2,0 +2020-05-01,Norton city,Virginia,51720,2,0 +2020-05-02,Norton city,Virginia,51720,2,0 +2020-05-03,Norton city,Virginia,51720,2,0 +2020-05-04,Norton city,Virginia,51720,2,0 +2020-05-05,Norton city,Virginia,51720,2,0 +2020-05-06,Norton city,Virginia,51720,2,0 +2020-05-07,Norton city,Virginia,51720,2,0 +2020-05-08,Norton city,Virginia,51720,2,0 +2020-05-09,Norton city,Virginia,51720,2,0 +2020-05-10,Norton city,Virginia,51720,2,0 +2020-05-11,Norton city,Virginia,51720,2,0 +2020-05-12,Norton city,Virginia,51720,2,0 +2020-05-13,Norton city,Virginia,51720,2,0 +2020-05-14,Norton city,Virginia,51720,2,0 +2020-05-15,Norton city,Virginia,51720,2,0 +2020-05-16,Norton city,Virginia,51720,2,0 +2020-05-17,Norton city,Virginia,51720,2,0 +2020-05-18,Norton city,Virginia,51720,2,0 +2020-05-19,Norton city,Virginia,51720,2,0 +2020-05-20,Norton city,Virginia,51720,2,0 +2020-05-21,Norton city,Virginia,51720,2,0 +2020-05-22,Norton city,Virginia,51720,2,0 +2020-05-23,Norton city,Virginia,51720,2,0 +2020-05-24,Norton city,Virginia,51720,2,0 +2020-05-25,Norton city,Virginia,51720,2,0 +2020-05-26,Norton city,Virginia,51720,2,0 +2020-05-27,Norton city,Virginia,51720,2,0 +2020-05-28,Norton city,Virginia,51720,2,0 +2020-05-29,Norton city,Virginia,51720,2,0 +2020-05-30,Norton city,Virginia,51720,2,0 +2020-05-31,Norton city,Virginia,51720,2,0 +2020-06-01,Norton city,Virginia,51720,2,0 +2020-06-02,Norton city,Virginia,51720,2,0 +2020-06-03,Norton city,Virginia,51720,2,0 +2020-06-04,Norton city,Virginia,51720,2,0 +2020-06-05,Norton city,Virginia,51720,2,0 +2020-06-06,Norton city,Virginia,51720,2,0 +2020-06-07,Norton city,Virginia,51720,2,0 +2020-06-08,Norton city,Virginia,51720,2,0 +2020-06-09,Norton city,Virginia,51720,2,0 +2020-06-10,Norton city,Virginia,51720,2,0 +2020-06-11,Norton city,Virginia,51720,2,0 +2020-06-12,Norton city,Virginia,51720,2,0 +2020-06-13,Norton city,Virginia,51720,2,0 +2020-06-14,Norton city,Virginia,51720,2,0 +2020-06-15,Norton city,Virginia,51720,2,0 +2020-06-16,Norton city,Virginia,51720,2,0 +2020-06-17,Norton city,Virginia,51720,2,0 +2020-06-18,Norton city,Virginia,51720,2,0 +2020-06-19,Norton city,Virginia,51720,2,0 +2020-06-20,Norton city,Virginia,51720,2,0 +2020-06-21,Norton city,Virginia,51720,2,0 +2020-06-22,Norton city,Virginia,51720,4,0 +2020-06-23,Norton city,Virginia,51720,4,0 +2020-06-24,Norton city,Virginia,51720,4,0 +2020-06-25,Norton city,Virginia,51720,4,0 +2020-06-26,Norton city,Virginia,51720,4,0 +2020-06-27,Norton city,Virginia,51720,4,0 +2020-06-28,Norton city,Virginia,51720,4,0 +2020-06-29,Norton city,Virginia,51720,4,0 +2020-06-30,Norton city,Virginia,51720,4,0 +2020-07-01,Norton city,Virginia,51720,4,0 +2020-07-02,Norton city,Virginia,51720,4,0 +2020-07-03,Norton city,Virginia,51720,4,0 +2020-07-04,Norton city,Virginia,51720,4,0 +2020-07-05,Norton city,Virginia,51720,4,0 +2020-07-06,Norton city,Virginia,51720,4,0 +2020-07-07,Norton city,Virginia,51720,4,0 +2020-07-08,Norton city,Virginia,51720,4,0 +2020-07-09,Norton city,Virginia,51720,4,0 +2020-03-30,Petersburg city,Virginia,51730,2,0 +2020-03-31,Petersburg city,Virginia,51730,2,0 +2020-04-01,Petersburg city,Virginia,51730,4,0 +2020-04-02,Petersburg city,Virginia,51730,4,0 +2020-04-03,Petersburg city,Virginia,51730,8,0 +2020-04-04,Petersburg city,Virginia,51730,10,0 +2020-04-05,Petersburg city,Virginia,51730,10,0 +2020-04-06,Petersburg city,Virginia,51730,10,0 +2020-04-07,Petersburg city,Virginia,51730,10,0 +2020-04-08,Petersburg city,Virginia,51730,9,0 +2020-04-09,Petersburg city,Virginia,51730,12,0 +2020-04-10,Petersburg city,Virginia,51730,13,0 +2020-04-11,Petersburg city,Virginia,51730,17,0 +2020-04-12,Petersburg city,Virginia,51730,17,0 +2020-04-13,Petersburg city,Virginia,51730,19,0 +2020-04-14,Petersburg city,Virginia,51730,19,0 +2020-04-15,Petersburg city,Virginia,51730,19,0 +2020-04-16,Petersburg city,Virginia,51730,19,0 +2020-04-17,Petersburg city,Virginia,51730,21,0 +2020-04-18,Petersburg city,Virginia,51730,21,0 +2020-04-19,Petersburg city,Virginia,51730,21,0 +2020-04-20,Petersburg city,Virginia,51730,21,0 +2020-04-21,Petersburg city,Virginia,51730,24,2 +2020-04-22,Petersburg city,Virginia,51730,24,2 +2020-04-23,Petersburg city,Virginia,51730,27,2 +2020-04-24,Petersburg city,Virginia,51730,27,2 +2020-04-25,Petersburg city,Virginia,51730,27,2 +2020-04-26,Petersburg city,Virginia,51730,27,2 +2020-04-27,Petersburg city,Virginia,51730,30,2 +2020-04-28,Petersburg city,Virginia,51730,30,2 +2020-04-29,Petersburg city,Virginia,51730,31,2 +2020-04-30,Petersburg city,Virginia,51730,31,2 +2020-05-01,Petersburg city,Virginia,51730,33,2 +2020-05-02,Petersburg city,Virginia,51730,35,2 +2020-05-03,Petersburg city,Virginia,51730,35,2 +2020-05-04,Petersburg city,Virginia,51730,39,2 +2020-05-05,Petersburg city,Virginia,51730,40,2 +2020-05-06,Petersburg city,Virginia,51730,40,2 +2020-05-07,Petersburg city,Virginia,51730,41,2 +2020-05-08,Petersburg city,Virginia,51730,41,2 +2020-05-09,Petersburg city,Virginia,51730,41,2 +2020-05-10,Petersburg city,Virginia,51730,45,2 +2020-05-11,Petersburg city,Virginia,51730,48,2 +2020-05-12,Petersburg city,Virginia,51730,53,2 +2020-05-13,Petersburg city,Virginia,51730,53,2 +2020-05-14,Petersburg city,Virginia,51730,57,2 +2020-05-15,Petersburg city,Virginia,51730,58,2 +2020-05-16,Petersburg city,Virginia,51730,58,2 +2020-05-17,Petersburg city,Virginia,51730,58,2 +2020-05-18,Petersburg city,Virginia,51730,60,2 +2020-05-19,Petersburg city,Virginia,51730,75,2 +2020-05-20,Petersburg city,Virginia,51730,80,2 +2020-05-21,Petersburg city,Virginia,51730,84,2 +2020-05-22,Petersburg city,Virginia,51730,84,2 +2020-05-23,Petersburg city,Virginia,51730,87,2 +2020-05-24,Petersburg city,Virginia,51730,86,2 +2020-05-25,Petersburg city,Virginia,51730,88,2 +2020-05-26,Petersburg city,Virginia,51730,96,2 +2020-05-27,Petersburg city,Virginia,51730,101,3 +2020-05-28,Petersburg city,Virginia,51730,112,3 +2020-05-29,Petersburg city,Virginia,51730,118,3 +2020-05-30,Petersburg city,Virginia,51730,127,3 +2020-05-31,Petersburg city,Virginia,51730,134,3 +2020-06-01,Petersburg city,Virginia,51730,138,3 +2020-06-02,Petersburg city,Virginia,51730,141,3 +2020-06-03,Petersburg city,Virginia,51730,143,3 +2020-06-04,Petersburg city,Virginia,51730,152,3 +2020-06-05,Petersburg city,Virginia,51730,159,3 +2020-06-06,Petersburg city,Virginia,51730,163,3 +2020-06-07,Petersburg city,Virginia,51730,165,3 +2020-06-08,Petersburg city,Virginia,51730,167,3 +2020-06-09,Petersburg city,Virginia,51730,170,3 +2020-06-10,Petersburg city,Virginia,51730,174,3 +2020-06-11,Petersburg city,Virginia,51730,176,3 +2020-06-12,Petersburg city,Virginia,51730,178,3 +2020-06-13,Petersburg city,Virginia,51730,180,3 +2020-06-14,Petersburg city,Virginia,51730,185,3 +2020-06-15,Petersburg city,Virginia,51730,191,3 +2020-06-16,Petersburg city,Virginia,51730,192,3 +2020-06-17,Petersburg city,Virginia,51730,194,3 +2020-06-18,Petersburg city,Virginia,51730,196,3 +2020-06-19,Petersburg city,Virginia,51730,197,3 +2020-06-20,Petersburg city,Virginia,51730,198,3 +2020-06-21,Petersburg city,Virginia,51730,198,3 +2020-06-22,Petersburg city,Virginia,51730,199,3 +2020-06-23,Petersburg city,Virginia,51730,201,3 +2020-06-24,Petersburg city,Virginia,51730,211,3 +2020-06-25,Petersburg city,Virginia,51730,212,3 +2020-06-26,Petersburg city,Virginia,51730,219,3 +2020-06-27,Petersburg city,Virginia,51730,221,3 +2020-06-28,Petersburg city,Virginia,51730,221,3 +2020-06-29,Petersburg city,Virginia,51730,226,3 +2020-06-30,Petersburg city,Virginia,51730,234,3 +2020-07-01,Petersburg city,Virginia,51730,239,4 +2020-07-02,Petersburg city,Virginia,51730,249,4 +2020-07-03,Petersburg city,Virginia,51730,256,5 +2020-07-04,Petersburg city,Virginia,51730,271,5 +2020-07-05,Petersburg city,Virginia,51730,275,5 +2020-07-06,Petersburg city,Virginia,51730,290,5 +2020-07-07,Petersburg city,Virginia,51730,311,5 +2020-07-08,Petersburg city,Virginia,51730,313,7 +2020-07-09,Petersburg city,Virginia,51730,314,8 +2020-03-26,Poquoson city,Virginia,51735,1,0 +2020-03-27,Poquoson city,Virginia,51735,1,0 +2020-03-28,Poquoson city,Virginia,51735,2,0 +2020-03-29,Poquoson city,Virginia,51735,2,0 +2020-03-30,Poquoson city,Virginia,51735,2,0 +2020-03-31,Poquoson city,Virginia,51735,2,0 +2020-04-01,Poquoson city,Virginia,51735,3,0 +2020-04-02,Poquoson city,Virginia,51735,3,0 +2020-04-03,Poquoson city,Virginia,51735,3,0 +2020-04-04,Poquoson city,Virginia,51735,3,0 +2020-04-05,Poquoson city,Virginia,51735,3,0 +2020-04-06,Poquoson city,Virginia,51735,3,0 +2020-04-07,Poquoson city,Virginia,51735,4,0 +2020-04-08,Poquoson city,Virginia,51735,4,0 +2020-04-09,Poquoson city,Virginia,51735,5,0 +2020-04-10,Poquoson city,Virginia,51735,6,0 +2020-04-11,Poquoson city,Virginia,51735,6,0 +2020-04-12,Poquoson city,Virginia,51735,6,0 +2020-04-13,Poquoson city,Virginia,51735,6,0 +2020-04-14,Poquoson city,Virginia,51735,6,0 +2020-04-15,Poquoson city,Virginia,51735,6,0 +2020-04-16,Poquoson city,Virginia,51735,6,0 +2020-04-17,Poquoson city,Virginia,51735,6,0 +2020-04-18,Poquoson city,Virginia,51735,6,0 +2020-04-19,Poquoson city,Virginia,51735,6,0 +2020-04-20,Poquoson city,Virginia,51735,6,0 +2020-04-21,Poquoson city,Virginia,51735,6,0 +2020-04-22,Poquoson city,Virginia,51735,6,0 +2020-04-23,Poquoson city,Virginia,51735,6,0 +2020-04-24,Poquoson city,Virginia,51735,6,0 +2020-04-25,Poquoson city,Virginia,51735,6,0 +2020-04-26,Poquoson city,Virginia,51735,6,0 +2020-04-27,Poquoson city,Virginia,51735,6,0 +2020-04-28,Poquoson city,Virginia,51735,6,0 +2020-04-29,Poquoson city,Virginia,51735,6,0 +2020-04-30,Poquoson city,Virginia,51735,6,0 +2020-05-01,Poquoson city,Virginia,51735,6,0 +2020-05-02,Poquoson city,Virginia,51735,6,0 +2020-05-03,Poquoson city,Virginia,51735,6,0 +2020-05-04,Poquoson city,Virginia,51735,6,0 +2020-05-05,Poquoson city,Virginia,51735,7,0 +2020-05-06,Poquoson city,Virginia,51735,7,0 +2020-05-07,Poquoson city,Virginia,51735,7,0 +2020-05-08,Poquoson city,Virginia,51735,7,0 +2020-05-09,Poquoson city,Virginia,51735,7,0 +2020-05-10,Poquoson city,Virginia,51735,7,0 +2020-05-11,Poquoson city,Virginia,51735,7,0 +2020-05-12,Poquoson city,Virginia,51735,7,0 +2020-05-13,Poquoson city,Virginia,51735,7,0 +2020-05-14,Poquoson city,Virginia,51735,7,0 +2020-05-15,Poquoson city,Virginia,51735,7,0 +2020-05-16,Poquoson city,Virginia,51735,7,0 +2020-05-17,Poquoson city,Virginia,51735,7,0 +2020-05-18,Poquoson city,Virginia,51735,7,0 +2020-05-19,Poquoson city,Virginia,51735,7,0 +2020-05-20,Poquoson city,Virginia,51735,7,0 +2020-05-21,Poquoson city,Virginia,51735,7,0 +2020-05-22,Poquoson city,Virginia,51735,7,0 +2020-05-23,Poquoson city,Virginia,51735,7,0 +2020-05-24,Poquoson city,Virginia,51735,7,0 +2020-05-25,Poquoson city,Virginia,51735,7,0 +2020-05-26,Poquoson city,Virginia,51735,7,0 +2020-05-27,Poquoson city,Virginia,51735,7,0 +2020-05-28,Poquoson city,Virginia,51735,7,0 +2020-05-29,Poquoson city,Virginia,51735,7,0 +2020-05-30,Poquoson city,Virginia,51735,7,0 +2020-05-31,Poquoson city,Virginia,51735,8,0 +2020-06-01,Poquoson city,Virginia,51735,8,0 +2020-06-02,Poquoson city,Virginia,51735,8,0 +2020-06-03,Poquoson city,Virginia,51735,8,0 +2020-06-04,Poquoson city,Virginia,51735,8,0 +2020-06-05,Poquoson city,Virginia,51735,8,0 +2020-06-06,Poquoson city,Virginia,51735,8,0 +2020-06-07,Poquoson city,Virginia,51735,9,0 +2020-06-08,Poquoson city,Virginia,51735,9,0 +2020-06-09,Poquoson city,Virginia,51735,9,0 +2020-06-10,Poquoson city,Virginia,51735,9,0 +2020-06-11,Poquoson city,Virginia,51735,10,0 +2020-06-12,Poquoson city,Virginia,51735,11,0 +2020-06-13,Poquoson city,Virginia,51735,11,0 +2020-06-14,Poquoson city,Virginia,51735,11,0 +2020-06-15,Poquoson city,Virginia,51735,12,0 +2020-06-16,Poquoson city,Virginia,51735,12,0 +2020-06-17,Poquoson city,Virginia,51735,12,0 +2020-06-18,Poquoson city,Virginia,51735,12,0 +2020-06-19,Poquoson city,Virginia,51735,12,0 +2020-06-20,Poquoson city,Virginia,51735,14,0 +2020-06-21,Poquoson city,Virginia,51735,16,0 +2020-06-22,Poquoson city,Virginia,51735,16,0 +2020-06-23,Poquoson city,Virginia,51735,16,0 +2020-06-24,Poquoson city,Virginia,51735,16,0 +2020-06-25,Poquoson city,Virginia,51735,16,0 +2020-06-26,Poquoson city,Virginia,51735,17,0 +2020-06-27,Poquoson city,Virginia,51735,19,0 +2020-06-28,Poquoson city,Virginia,51735,19,0 +2020-06-29,Poquoson city,Virginia,51735,19,0 +2020-06-30,Poquoson city,Virginia,51735,19,0 +2020-07-01,Poquoson city,Virginia,51735,19,0 +2020-07-02,Poquoson city,Virginia,51735,19,0 +2020-07-03,Poquoson city,Virginia,51735,19,0 +2020-07-04,Poquoson city,Virginia,51735,19,0 +2020-07-05,Poquoson city,Virginia,51735,19,0 +2020-07-06,Poquoson city,Virginia,51735,19,0 +2020-07-07,Poquoson city,Virginia,51735,19,0 +2020-07-08,Poquoson city,Virginia,51735,19,0 +2020-07-09,Poquoson city,Virginia,51735,20,0 +2020-03-20,Portsmouth city,Virginia,51740,1,0 +2020-03-21,Portsmouth city,Virginia,51740,1,0 +2020-03-22,Portsmouth city,Virginia,51740,1,0 +2020-03-23,Portsmouth city,Virginia,51740,1,0 +2020-03-24,Portsmouth city,Virginia,51740,3,0 +2020-03-25,Portsmouth city,Virginia,51740,3,0 +2020-03-26,Portsmouth city,Virginia,51740,3,0 +2020-03-27,Portsmouth city,Virginia,51740,3,0 +2020-03-28,Portsmouth city,Virginia,51740,4,0 +2020-03-29,Portsmouth city,Virginia,51740,4,0 +2020-03-30,Portsmouth city,Virginia,51740,4,0 +2020-03-31,Portsmouth city,Virginia,51740,12,0 +2020-04-01,Portsmouth city,Virginia,51740,13,0 +2020-04-02,Portsmouth city,Virginia,51740,16,0 +2020-04-03,Portsmouth city,Virginia,51740,17,1 +2020-04-04,Portsmouth city,Virginia,51740,26,1 +2020-04-05,Portsmouth city,Virginia,51740,26,1 +2020-04-06,Portsmouth city,Virginia,51740,27,1 +2020-04-07,Portsmouth city,Virginia,51740,36,1 +2020-04-08,Portsmouth city,Virginia,51740,41,1 +2020-04-09,Portsmouth city,Virginia,51740,44,1 +2020-04-10,Portsmouth city,Virginia,51740,48,1 +2020-04-11,Portsmouth city,Virginia,51740,49,1 +2020-04-12,Portsmouth city,Virginia,51740,51,1 +2020-04-13,Portsmouth city,Virginia,51740,54,1 +2020-04-14,Portsmouth city,Virginia,51740,59,4 +2020-04-15,Portsmouth city,Virginia,51740,59,4 +2020-04-16,Portsmouth city,Virginia,51740,62,4 +2020-04-17,Portsmouth city,Virginia,51740,63,4 +2020-04-18,Portsmouth city,Virginia,51740,65,4 +2020-04-19,Portsmouth city,Virginia,51740,65,4 +2020-04-20,Portsmouth city,Virginia,51740,65,4 +2020-04-21,Portsmouth city,Virginia,51740,82,4 +2020-04-22,Portsmouth city,Virginia,51740,93,4 +2020-04-23,Portsmouth city,Virginia,51740,98,4 +2020-04-24,Portsmouth city,Virginia,51740,100,4 +2020-04-25,Portsmouth city,Virginia,51740,103,5 +2020-04-26,Portsmouth city,Virginia,51740,108,5 +2020-04-27,Portsmouth city,Virginia,51740,114,5 +2020-04-28,Portsmouth city,Virginia,51740,149,5 +2020-04-29,Portsmouth city,Virginia,51740,150,5 +2020-04-30,Portsmouth city,Virginia,51740,158,5 +2020-05-01,Portsmouth city,Virginia,51740,170,7 +2020-05-02,Portsmouth city,Virginia,51740,173,8 +2020-05-03,Portsmouth city,Virginia,51740,183,8 +2020-05-04,Portsmouth city,Virginia,51740,183,8 +2020-05-05,Portsmouth city,Virginia,51740,187,8 +2020-05-06,Portsmouth city,Virginia,51740,187,8 +2020-05-07,Portsmouth city,Virginia,51740,193,8 +2020-05-08,Portsmouth city,Virginia,51740,194,8 +2020-05-09,Portsmouth city,Virginia,51740,202,8 +2020-05-10,Portsmouth city,Virginia,51740,202,8 +2020-05-11,Portsmouth city,Virginia,51740,208,8 +2020-05-12,Portsmouth city,Virginia,51740,210,9 +2020-05-13,Portsmouth city,Virginia,51740,213,9 +2020-05-14,Portsmouth city,Virginia,51740,217,9 +2020-05-15,Portsmouth city,Virginia,51740,219,10 +2020-05-16,Portsmouth city,Virginia,51740,222,10 +2020-05-17,Portsmouth city,Virginia,51740,225,10 +2020-05-18,Portsmouth city,Virginia,51740,228,10 +2020-05-19,Portsmouth city,Virginia,51740,237,10 +2020-05-20,Portsmouth city,Virginia,51740,241,11 +2020-05-21,Portsmouth city,Virginia,51740,245,11 +2020-05-22,Portsmouth city,Virginia,51740,251,11 +2020-05-23,Portsmouth city,Virginia,51740,253,11 +2020-05-24,Portsmouth city,Virginia,51740,262,11 +2020-05-25,Portsmouth city,Virginia,51740,272,11 +2020-05-26,Portsmouth city,Virginia,51740,281,11 +2020-05-27,Portsmouth city,Virginia,51740,282,11 +2020-05-28,Portsmouth city,Virginia,51740,284,11 +2020-05-29,Portsmouth city,Virginia,51740,294,11 +2020-05-30,Portsmouth city,Virginia,51740,307,11 +2020-05-31,Portsmouth city,Virginia,51740,308,11 +2020-06-01,Portsmouth city,Virginia,51740,313,11 +2020-06-02,Portsmouth city,Virginia,51740,325,11 +2020-06-03,Portsmouth city,Virginia,51740,322,11 +2020-06-04,Portsmouth city,Virginia,51740,325,11 +2020-06-05,Portsmouth city,Virginia,51740,325,11 +2020-06-06,Portsmouth city,Virginia,51740,335,11 +2020-06-07,Portsmouth city,Virginia,51740,343,11 +2020-06-08,Portsmouth city,Virginia,51740,343,11 +2020-06-09,Portsmouth city,Virginia,51740,351,11 +2020-06-10,Portsmouth city,Virginia,51740,354,11 +2020-06-11,Portsmouth city,Virginia,51740,364,11 +2020-06-12,Portsmouth city,Virginia,51740,370,11 +2020-06-13,Portsmouth city,Virginia,51740,375,12 +2020-06-14,Portsmouth city,Virginia,51740,375,12 +2020-06-15,Portsmouth city,Virginia,51740,386,12 +2020-06-16,Portsmouth city,Virginia,51740,387,12 +2020-06-17,Portsmouth city,Virginia,51740,395,13 +2020-06-18,Portsmouth city,Virginia,51740,402,13 +2020-06-19,Portsmouth city,Virginia,51740,405,13 +2020-06-20,Portsmouth city,Virginia,51740,405,13 +2020-06-21,Portsmouth city,Virginia,51740,406,13 +2020-06-22,Portsmouth city,Virginia,51740,419,13 +2020-06-23,Portsmouth city,Virginia,51740,421,16 +2020-06-24,Portsmouth city,Virginia,51740,426,16 +2020-06-25,Portsmouth city,Virginia,51740,442,16 +2020-06-26,Portsmouth city,Virginia,51740,449,16 +2020-06-27,Portsmouth city,Virginia,51740,455,16 +2020-06-28,Portsmouth city,Virginia,51740,459,16 +2020-06-29,Portsmouth city,Virginia,51740,471,16 +2020-06-30,Portsmouth city,Virginia,51740,482,16 +2020-07-01,Portsmouth city,Virginia,51740,497,16 +2020-07-02,Portsmouth city,Virginia,51740,513,18 +2020-07-03,Portsmouth city,Virginia,51740,526,18 +2020-07-04,Portsmouth city,Virginia,51740,539,18 +2020-07-05,Portsmouth city,Virginia,51740,549,18 +2020-07-06,Portsmouth city,Virginia,51740,549,18 +2020-07-07,Portsmouth city,Virginia,51740,572,18 +2020-07-08,Portsmouth city,Virginia,51740,593,18 +2020-07-09,Portsmouth city,Virginia,51740,605,18 +2020-03-26,Radford city,Virginia,51750,1,0 +2020-03-27,Radford city,Virginia,51750,1,0 +2020-03-28,Radford city,Virginia,51750,1,0 +2020-03-29,Radford city,Virginia,51750,1,0 +2020-03-30,Radford city,Virginia,51750,1,0 +2020-03-31,Radford city,Virginia,51750,1,0 +2020-04-01,Radford city,Virginia,51750,1,0 +2020-04-02,Radford city,Virginia,51750,1,0 +2020-04-03,Radford city,Virginia,51750,1,0 +2020-04-04,Radford city,Virginia,51750,1,0 +2020-04-05,Radford city,Virginia,51750,1,0 +2020-04-06,Radford city,Virginia,51750,1,0 +2020-04-07,Radford city,Virginia,51750,1,0 +2020-04-08,Radford city,Virginia,51750,1,0 +2020-04-09,Radford city,Virginia,51750,1,0 +2020-04-10,Radford city,Virginia,51750,1,0 +2020-04-11,Radford city,Virginia,51750,1,0 +2020-04-12,Radford city,Virginia,51750,1,0 +2020-04-13,Radford city,Virginia,51750,1,0 +2020-04-14,Radford city,Virginia,51750,1,0 +2020-04-15,Radford city,Virginia,51750,1,0 +2020-04-16,Radford city,Virginia,51750,1,0 +2020-04-17,Radford city,Virginia,51750,1,0 +2020-04-18,Radford city,Virginia,51750,1,0 +2020-04-19,Radford city,Virginia,51750,1,0 +2020-04-20,Radford city,Virginia,51750,1,0 +2020-04-21,Radford city,Virginia,51750,1,0 +2020-04-22,Radford city,Virginia,51750,2,0 +2020-04-23,Radford city,Virginia,51750,2,0 +2020-04-24,Radford city,Virginia,51750,2,0 +2020-04-25,Radford city,Virginia,51750,3,0 +2020-04-26,Radford city,Virginia,51750,3,0 +2020-04-27,Radford city,Virginia,51750,3,0 +2020-04-28,Radford city,Virginia,51750,3,0 +2020-04-29,Radford city,Virginia,51750,3,0 +2020-04-30,Radford city,Virginia,51750,3,0 +2020-05-01,Radford city,Virginia,51750,3,0 +2020-05-02,Radford city,Virginia,51750,3,0 +2020-05-03,Radford city,Virginia,51750,3,0 +2020-05-04,Radford city,Virginia,51750,3,0 +2020-05-05,Radford city,Virginia,51750,3,0 +2020-05-06,Radford city,Virginia,51750,3,0 +2020-05-07,Radford city,Virginia,51750,3,0 +2020-05-08,Radford city,Virginia,51750,3,0 +2020-05-09,Radford city,Virginia,51750,3,0 +2020-05-10,Radford city,Virginia,51750,3,0 +2020-05-11,Radford city,Virginia,51750,3,0 +2020-05-12,Radford city,Virginia,51750,3,0 +2020-05-13,Radford city,Virginia,51750,3,0 +2020-05-14,Radford city,Virginia,51750,3,0 +2020-05-15,Radford city,Virginia,51750,3,0 +2020-05-16,Radford city,Virginia,51750,3,0 +2020-05-17,Radford city,Virginia,51750,3,0 +2020-05-18,Radford city,Virginia,51750,3,0 +2020-05-19,Radford city,Virginia,51750,3,0 +2020-05-20,Radford city,Virginia,51750,4,0 +2020-05-21,Radford city,Virginia,51750,4,0 +2020-05-22,Radford city,Virginia,51750,4,0 +2020-05-23,Radford city,Virginia,51750,4,0 +2020-05-24,Radford city,Virginia,51750,6,0 +2020-05-25,Radford city,Virginia,51750,7,0 +2020-05-26,Radford city,Virginia,51750,7,0 +2020-05-27,Radford city,Virginia,51750,7,0 +2020-05-28,Radford city,Virginia,51750,6,0 +2020-05-29,Radford city,Virginia,51750,6,0 +2020-05-30,Radford city,Virginia,51750,6,0 +2020-05-31,Radford city,Virginia,51750,6,0 +2020-06-01,Radford city,Virginia,51750,6,0 +2020-06-02,Radford city,Virginia,51750,6,0 +2020-06-03,Radford city,Virginia,51750,6,0 +2020-06-04,Radford city,Virginia,51750,6,0 +2020-06-05,Radford city,Virginia,51750,6,0 +2020-06-06,Radford city,Virginia,51750,7,0 +2020-06-07,Radford city,Virginia,51750,7,0 +2020-06-08,Radford city,Virginia,51750,7,0 +2020-06-09,Radford city,Virginia,51750,7,0 +2020-06-10,Radford city,Virginia,51750,7,0 +2020-06-11,Radford city,Virginia,51750,7,0 +2020-06-12,Radford city,Virginia,51750,7,0 +2020-06-13,Radford city,Virginia,51750,8,0 +2020-06-14,Radford city,Virginia,51750,8,0 +2020-06-15,Radford city,Virginia,51750,8,0 +2020-06-16,Radford city,Virginia,51750,9,0 +2020-06-17,Radford city,Virginia,51750,9,0 +2020-06-18,Radford city,Virginia,51750,9,0 +2020-06-19,Radford city,Virginia,51750,9,0 +2020-06-20,Radford city,Virginia,51750,9,0 +2020-06-21,Radford city,Virginia,51750,10,0 +2020-06-22,Radford city,Virginia,51750,10,0 +2020-06-23,Radford city,Virginia,51750,10,0 +2020-06-24,Radford city,Virginia,51750,11,0 +2020-06-25,Radford city,Virginia,51750,11,0 +2020-06-26,Radford city,Virginia,51750,11,0 +2020-06-27,Radford city,Virginia,51750,11,0 +2020-06-28,Radford city,Virginia,51750,11,0 +2020-06-29,Radford city,Virginia,51750,11,0 +2020-06-30,Radford city,Virginia,51750,11,0 +2020-07-01,Radford city,Virginia,51750,12,0 +2020-07-02,Radford city,Virginia,51750,13,0 +2020-07-03,Radford city,Virginia,51750,14,0 +2020-07-04,Radford city,Virginia,51750,14,0 +2020-07-05,Radford city,Virginia,51750,14,0 +2020-07-06,Radford city,Virginia,51750,14,0 +2020-07-07,Radford city,Virginia,51750,14,0 +2020-07-08,Radford city,Virginia,51750,15,0 +2020-07-09,Radford city,Virginia,51750,16,0 +2020-03-18,Richmond city,Virginia,51760,4,0 +2020-03-19,Richmond city,Virginia,51760,4,0 +2020-03-20,Richmond city,Virginia,51760,5,0 +2020-03-21,Richmond city,Virginia,51760,6,0 +2020-03-22,Richmond city,Virginia,51760,6,0 +2020-03-23,Richmond city,Virginia,51760,8,0 +2020-03-24,Richmond city,Virginia,51760,11,0 +2020-03-25,Richmond city,Virginia,51760,13,0 +2020-03-26,Richmond city,Virginia,51760,14,0 +2020-03-27,Richmond city,Virginia,51760,17,0 +2020-03-28,Richmond city,Virginia,51760,20,0 +2020-03-29,Richmond city,Virginia,51760,25,0 +2020-03-30,Richmond city,Virginia,51760,25,0 +2020-03-31,Richmond city,Virginia,51760,26,0 +2020-04-01,Richmond city,Virginia,51760,33,2 +2020-04-02,Richmond city,Virginia,51760,52,2 +2020-04-03,Richmond city,Virginia,51760,76,2 +2020-04-04,Richmond city,Virginia,51760,96,2 +2020-04-05,Richmond city,Virginia,51760,99,2 +2020-04-06,Richmond city,Virginia,51760,105,2 +2020-04-07,Richmond city,Virginia,51760,110,2 +2020-04-08,Richmond city,Virginia,51760,119,2 +2020-04-09,Richmond city,Virginia,51760,126,2 +2020-04-10,Richmond city,Virginia,51760,139,2 +2020-04-11,Richmond city,Virginia,51760,148,2 +2020-04-12,Richmond city,Virginia,51760,154,2 +2020-04-13,Richmond city,Virginia,51760,167,4 +2020-04-14,Richmond city,Virginia,51760,175,7 +2020-04-15,Richmond city,Virginia,51760,177,7 +2020-04-16,Richmond city,Virginia,51760,188,7 +2020-04-17,Richmond city,Virginia,51760,201,7 +2020-04-18,Richmond city,Virginia,51760,211,7 +2020-04-19,Richmond city,Virginia,51760,231,9 +2020-04-20,Richmond city,Virginia,51760,236,9 +2020-04-21,Richmond city,Virginia,51760,246,10 +2020-04-22,Richmond city,Virginia,51760,250,10 +2020-04-23,Richmond city,Virginia,51760,259,13 +2020-04-24,Richmond city,Virginia,51760,267,14 +2020-04-25,Richmond city,Virginia,51760,287,14 +2020-04-26,Richmond city,Virginia,51760,301,14 +2020-04-27,Richmond city,Virginia,51760,304,14 +2020-04-28,Richmond city,Virginia,51760,312,14 +2020-04-29,Richmond city,Virginia,51760,323,14 +2020-04-30,Richmond city,Virginia,51760,339,15 +2020-05-01,Richmond city,Virginia,51760,364,15 +2020-05-02,Richmond city,Virginia,51760,382,16 +2020-05-03,Richmond city,Virginia,51760,403,16 +2020-05-04,Richmond city,Virginia,51760,419,16 +2020-05-05,Richmond city,Virginia,51760,438,16 +2020-05-06,Richmond city,Virginia,51760,438,16 +2020-05-07,Richmond city,Virginia,51760,473,17 +2020-05-08,Richmond city,Virginia,51760,494,18 +2020-05-09,Richmond city,Virginia,51760,512,18 +2020-05-10,Richmond city,Virginia,51760,530,18 +2020-05-11,Richmond city,Virginia,51760,546,18 +2020-05-12,Richmond city,Virginia,51760,565,18 +2020-05-13,Richmond city,Virginia,51760,592,18 +2020-05-14,Richmond city,Virginia,51760,611,18 +2020-05-15,Richmond city,Virginia,51760,665,18 +2020-05-16,Richmond city,Virginia,51760,741,18 +2020-05-17,Richmond city,Virginia,51760,758,18 +2020-05-18,Richmond city,Virginia,51760,779,18 +2020-05-19,Richmond city,Virginia,51760,811,19 +2020-05-20,Richmond city,Virginia,51760,835,19 +2020-05-21,Richmond city,Virginia,51760,888,20 +2020-05-22,Richmond city,Virginia,51760,934,20 +2020-05-23,Richmond city,Virginia,51760,979,19 +2020-05-24,Richmond city,Virginia,51760,1012,19 +2020-05-25,Richmond city,Virginia,51760,1040,20 +2020-05-26,Richmond city,Virginia,51760,1089,20 +2020-05-27,Richmond city,Virginia,51760,1112,21 +2020-05-28,Richmond city,Virginia,51760,1133,21 +2020-05-29,Richmond city,Virginia,51760,1202,22 +2020-05-30,Richmond city,Virginia,51760,1249,24 +2020-05-31,Richmond city,Virginia,51760,1316,24 +2020-06-01,Richmond city,Virginia,51760,1397,25 +2020-06-02,Richmond city,Virginia,51760,1434,24 +2020-06-03,Richmond city,Virginia,51760,1455,24 +2020-06-04,Richmond city,Virginia,51760,1488,24 +2020-06-05,Richmond city,Virginia,51760,1527,25 +2020-06-06,Richmond city,Virginia,51760,1592,25 +2020-06-07,Richmond city,Virginia,51760,1621,26 +2020-06-08,Richmond city,Virginia,51760,1651,26 +2020-06-09,Richmond city,Virginia,51760,1667,27 +2020-06-10,Richmond city,Virginia,51760,1686,26 +2020-06-11,Richmond city,Virginia,51760,1709,26 +2020-06-12,Richmond city,Virginia,51760,1733,28 +2020-06-13,Richmond city,Virginia,51760,1789,28 +2020-06-14,Richmond city,Virginia,51760,1814,29 +2020-06-15,Richmond city,Virginia,51760,1832,29 +2020-06-16,Richmond city,Virginia,51760,1848,29 +2020-06-17,Richmond city,Virginia,51760,1872,28 +2020-06-18,Richmond city,Virginia,51760,1895,29 +2020-06-19,Richmond city,Virginia,51760,1929,29 +2020-06-20,Richmond city,Virginia,51760,1960,29 +2020-06-21,Richmond city,Virginia,51760,1985,29 +2020-06-22,Richmond city,Virginia,51760,2008,29 +2020-06-23,Richmond city,Virginia,51760,2031,30 +2020-06-24,Richmond city,Virginia,51760,2071,31 +2020-06-25,Richmond city,Virginia,51760,2089,30 +2020-06-26,Richmond city,Virginia,51760,2133,30 +2020-06-27,Richmond city,Virginia,51760,2159,30 +2020-06-28,Richmond city,Virginia,51760,2184,30 +2020-06-29,Richmond city,Virginia,51760,2195,30 +2020-06-30,Richmond city,Virginia,51760,2209,30 +2020-07-01,Richmond city,Virginia,51760,2213,29 +2020-07-02,Richmond city,Virginia,51760,2227,30 +2020-07-03,Richmond city,Virginia,51760,2248,30 +2020-07-04,Richmond city,Virginia,51760,2262,29 +2020-07-05,Richmond city,Virginia,51760,2276,29 +2020-07-06,Richmond city,Virginia,51760,2288,29 +2020-07-07,Richmond city,Virginia,51760,2301,29 +2020-07-08,Richmond city,Virginia,51760,2321,29 +2020-07-09,Richmond city,Virginia,51760,2333,33 +2020-03-27,Roanoke city,Virginia,51770,1,0 +2020-03-28,Roanoke city,Virginia,51770,1,0 +2020-03-29,Roanoke city,Virginia,51770,1,0 +2020-03-30,Roanoke city,Virginia,51770,6,0 +2020-03-31,Roanoke city,Virginia,51770,6,0 +2020-04-01,Roanoke city,Virginia,51770,6,0 +2020-04-02,Roanoke city,Virginia,51770,9,0 +2020-04-03,Roanoke city,Virginia,51770,9,0 +2020-04-04,Roanoke city,Virginia,51770,10,0 +2020-04-05,Roanoke city,Virginia,51770,10,0 +2020-04-06,Roanoke city,Virginia,51770,11,0 +2020-04-07,Roanoke city,Virginia,51770,12,0 +2020-04-08,Roanoke city,Virginia,51770,14,0 +2020-04-09,Roanoke city,Virginia,51770,15,0 +2020-04-10,Roanoke city,Virginia,51770,16,0 +2020-04-11,Roanoke city,Virginia,51770,17,0 +2020-04-12,Roanoke city,Virginia,51770,20,0 +2020-04-13,Roanoke city,Virginia,51770,21,0 +2020-04-14,Roanoke city,Virginia,51770,21,0 +2020-04-15,Roanoke city,Virginia,51770,22,0 +2020-04-16,Roanoke city,Virginia,51770,24,0 +2020-04-17,Roanoke city,Virginia,51770,24,0 +2020-04-18,Roanoke city,Virginia,51770,24,0 +2020-04-19,Roanoke city,Virginia,51770,24,0 +2020-04-20,Roanoke city,Virginia,51770,24,0 +2020-04-21,Roanoke city,Virginia,51770,25,0 +2020-04-22,Roanoke city,Virginia,51770,27,0 +2020-04-23,Roanoke city,Virginia,51770,28,0 +2020-04-24,Roanoke city,Virginia,51770,33,0 +2020-04-25,Roanoke city,Virginia,51770,33,0 +2020-04-26,Roanoke city,Virginia,51770,33,0 +2020-04-27,Roanoke city,Virginia,51770,33,0 +2020-04-28,Roanoke city,Virginia,51770,35,0 +2020-04-29,Roanoke city,Virginia,51770,57,0 +2020-04-30,Roanoke city,Virginia,51770,73,0 +2020-05-01,Roanoke city,Virginia,51770,80,0 +2020-05-02,Roanoke city,Virginia,51770,80,0 +2020-05-03,Roanoke city,Virginia,51770,81,0 +2020-05-04,Roanoke city,Virginia,51770,81,0 +2020-05-05,Roanoke city,Virginia,51770,82,0 +2020-05-06,Roanoke city,Virginia,51770,82,0 +2020-05-07,Roanoke city,Virginia,51770,88,1 +2020-05-08,Roanoke city,Virginia,51770,91,1 +2020-05-09,Roanoke city,Virginia,51770,93,1 +2020-05-10,Roanoke city,Virginia,51770,93,1 +2020-05-11,Roanoke city,Virginia,51770,106,1 +2020-05-12,Roanoke city,Virginia,51770,108,1 +2020-05-13,Roanoke city,Virginia,51770,116,1 +2020-05-14,Roanoke city,Virginia,51770,120,1 +2020-05-15,Roanoke city,Virginia,51770,120,1 +2020-05-16,Roanoke city,Virginia,51770,120,8 +2020-05-17,Roanoke city,Virginia,51770,120,8 +2020-05-18,Roanoke city,Virginia,51770,128,8 +2020-05-19,Roanoke city,Virginia,51770,135,8 +2020-05-20,Roanoke city,Virginia,51770,135,8 +2020-05-21,Roanoke city,Virginia,51770,135,8 +2020-05-22,Roanoke city,Virginia,51770,140,9 +2020-05-23,Roanoke city,Virginia,51770,141,9 +2020-05-24,Roanoke city,Virginia,51770,140,9 +2020-05-25,Roanoke city,Virginia,51770,140,9 +2020-05-26,Roanoke city,Virginia,51770,146,9 +2020-05-27,Roanoke city,Virginia,51770,146,9 +2020-05-28,Roanoke city,Virginia,51770,147,9 +2020-05-29,Roanoke city,Virginia,51770,152,9 +2020-05-30,Roanoke city,Virginia,51770,155,9 +2020-05-31,Roanoke city,Virginia,51770,160,9 +2020-06-01,Roanoke city,Virginia,51770,167,9 +2020-06-02,Roanoke city,Virginia,51770,171,9 +2020-06-03,Roanoke city,Virginia,51770,176,10 +2020-06-04,Roanoke city,Virginia,51770,176,10 +2020-06-05,Roanoke city,Virginia,51770,190,10 +2020-06-06,Roanoke city,Virginia,51770,197,10 +2020-06-07,Roanoke city,Virginia,51770,199,10 +2020-06-08,Roanoke city,Virginia,51770,199,10 +2020-06-09,Roanoke city,Virginia,51770,204,10 +2020-06-10,Roanoke city,Virginia,51770,207,10 +2020-06-11,Roanoke city,Virginia,51770,222,10 +2020-06-12,Roanoke city,Virginia,51770,232,10 +2020-06-13,Roanoke city,Virginia,51770,247,10 +2020-06-14,Roanoke city,Virginia,51770,250,10 +2020-06-15,Roanoke city,Virginia,51770,250,10 +2020-06-16,Roanoke city,Virginia,51770,270,10 +2020-06-17,Roanoke city,Virginia,51770,277,10 +2020-06-18,Roanoke city,Virginia,51770,277,10 +2020-06-19,Roanoke city,Virginia,51770,291,10 +2020-06-20,Roanoke city,Virginia,51770,308,10 +2020-06-21,Roanoke city,Virginia,51770,313,10 +2020-06-22,Roanoke city,Virginia,51770,324,10 +2020-06-23,Roanoke city,Virginia,51770,343,10 +2020-06-24,Roanoke city,Virginia,51770,359,10 +2020-06-25,Roanoke city,Virginia,51770,359,10 +2020-06-26,Roanoke city,Virginia,51770,360,10 +2020-06-27,Roanoke city,Virginia,51770,363,10 +2020-06-28,Roanoke city,Virginia,51770,368,10 +2020-06-29,Roanoke city,Virginia,51770,403,10 +2020-06-30,Roanoke city,Virginia,51770,439,9 +2020-07-01,Roanoke city,Virginia,51770,438,10 +2020-07-02,Roanoke city,Virginia,51770,436,10 +2020-07-03,Roanoke city,Virginia,51770,465,10 +2020-07-04,Roanoke city,Virginia,51770,476,10 +2020-07-05,Roanoke city,Virginia,51770,479,10 +2020-07-06,Roanoke city,Virginia,51770,492,10 +2020-07-07,Roanoke city,Virginia,51770,502,10 +2020-07-08,Roanoke city,Virginia,51770,525,10 +2020-07-09,Roanoke city,Virginia,51770,542,10 +2020-04-02,Salem city,Virginia,51775,1,0 +2020-04-03,Salem city,Virginia,51775,1,0 +2020-04-04,Salem city,Virginia,51775,1,0 +2020-04-05,Salem city,Virginia,51775,1,0 +2020-04-06,Salem city,Virginia,51775,1,0 +2020-04-07,Salem city,Virginia,51775,1,0 +2020-04-08,Salem city,Virginia,51775,1,0 +2020-04-09,Salem city,Virginia,51775,1,0 +2020-04-10,Salem city,Virginia,51775,1,0 +2020-04-11,Salem city,Virginia,51775,1,0 +2020-04-12,Salem city,Virginia,51775,1,0 +2020-04-13,Salem city,Virginia,51775,1,0 +2020-04-14,Salem city,Virginia,51775,3,0 +2020-04-15,Salem city,Virginia,51775,3,0 +2020-04-16,Salem city,Virginia,51775,4,0 +2020-04-17,Salem city,Virginia,51775,6,0 +2020-04-18,Salem city,Virginia,51775,6,0 +2020-04-19,Salem city,Virginia,51775,6,0 +2020-04-20,Salem city,Virginia,51775,6,0 +2020-04-21,Salem city,Virginia,51775,6,0 +2020-04-22,Salem city,Virginia,51775,8,0 +2020-04-23,Salem city,Virginia,51775,8,0 +2020-04-24,Salem city,Virginia,51775,8,0 +2020-04-25,Salem city,Virginia,51775,8,0 +2020-04-26,Salem city,Virginia,51775,9,0 +2020-04-27,Salem city,Virginia,51775,11,0 +2020-04-28,Salem city,Virginia,51775,12,0 +2020-04-29,Salem city,Virginia,51775,16,0 +2020-04-30,Salem city,Virginia,51775,26,0 +2020-05-01,Salem city,Virginia,51775,26,0 +2020-05-02,Salem city,Virginia,51775,26,0 +2020-05-03,Salem city,Virginia,51775,26,0 +2020-05-04,Salem city,Virginia,51775,27,0 +2020-05-05,Salem city,Virginia,51775,31,0 +2020-05-06,Salem city,Virginia,51775,31,0 +2020-05-07,Salem city,Virginia,51775,30,0 +2020-05-08,Salem city,Virginia,51775,30,0 +2020-05-09,Salem city,Virginia,51775,31,0 +2020-05-10,Salem city,Virginia,51775,31,0 +2020-05-11,Salem city,Virginia,51775,32,0 +2020-05-12,Salem city,Virginia,51775,32,0 +2020-05-13,Salem city,Virginia,51775,32,0 +2020-05-14,Salem city,Virginia,51775,32,0 +2020-05-15,Salem city,Virginia,51775,32,0 +2020-05-16,Salem city,Virginia,51775,32,0 +2020-05-17,Salem city,Virginia,51775,32,0 +2020-05-18,Salem city,Virginia,51775,32,0 +2020-05-19,Salem city,Virginia,51775,33,0 +2020-05-20,Salem city,Virginia,51775,33,0 +2020-05-21,Salem city,Virginia,51775,33,0 +2020-05-22,Salem city,Virginia,51775,32,3 +2020-05-23,Salem city,Virginia,51775,32,3 +2020-05-24,Salem city,Virginia,51775,32,3 +2020-05-25,Salem city,Virginia,51775,32,3 +2020-05-26,Salem city,Virginia,51775,32,3 +2020-05-27,Salem city,Virginia,51775,32,3 +2020-05-28,Salem city,Virginia,51775,32,3 +2020-05-29,Salem city,Virginia,51775,34,3 +2020-05-30,Salem city,Virginia,51775,34,3 +2020-05-31,Salem city,Virginia,51775,34,3 +2020-06-01,Salem city,Virginia,51775,34,3 +2020-06-02,Salem city,Virginia,51775,34,3 +2020-06-03,Salem city,Virginia,51775,36,3 +2020-06-04,Salem city,Virginia,51775,36,3 +2020-06-05,Salem city,Virginia,51775,37,3 +2020-06-06,Salem city,Virginia,51775,38,3 +2020-06-07,Salem city,Virginia,51775,38,3 +2020-06-08,Salem city,Virginia,51775,40,3 +2020-06-09,Salem city,Virginia,51775,41,3 +2020-06-10,Salem city,Virginia,51775,42,3 +2020-06-11,Salem city,Virginia,51775,42,3 +2020-06-12,Salem city,Virginia,51775,43,3 +2020-06-13,Salem city,Virginia,51775,43,3 +2020-06-14,Salem city,Virginia,51775,44,3 +2020-06-15,Salem city,Virginia,51775,44,3 +2020-06-16,Salem city,Virginia,51775,47,3 +2020-06-17,Salem city,Virginia,51775,48,3 +2020-06-18,Salem city,Virginia,51775,48,3 +2020-06-19,Salem city,Virginia,51775,49,3 +2020-06-20,Salem city,Virginia,51775,50,3 +2020-06-21,Salem city,Virginia,51775,50,3 +2020-06-22,Salem city,Virginia,51775,50,3 +2020-06-23,Salem city,Virginia,51775,50,3 +2020-06-24,Salem city,Virginia,51775,50,3 +2020-06-25,Salem city,Virginia,51775,50,3 +2020-06-26,Salem city,Virginia,51775,50,3 +2020-06-27,Salem city,Virginia,51775,51,3 +2020-06-28,Salem city,Virginia,51775,51,3 +2020-06-29,Salem city,Virginia,51775,59,3 +2020-06-30,Salem city,Virginia,51775,68,3 +2020-07-01,Salem city,Virginia,51775,69,3 +2020-07-02,Salem city,Virginia,51775,70,3 +2020-07-03,Salem city,Virginia,51775,78,3 +2020-07-04,Salem city,Virginia,51775,78,3 +2020-07-05,Salem city,Virginia,51775,78,3 +2020-07-06,Salem city,Virginia,51775,80,3 +2020-07-07,Salem city,Virginia,51775,83,3 +2020-07-08,Salem city,Virginia,51775,83,3 +2020-07-09,Salem city,Virginia,51775,84,3 +2020-04-04,Staunton city,Virginia,51790,1,0 +2020-04-05,Staunton city,Virginia,51790,1,0 +2020-04-06,Staunton city,Virginia,51790,1,0 +2020-04-07,Staunton city,Virginia,51790,1,0 +2020-04-08,Staunton city,Virginia,51790,1,0 +2020-04-09,Staunton city,Virginia,51790,1,0 +2020-04-10,Staunton city,Virginia,51790,1,0 +2020-04-11,Staunton city,Virginia,51790,1,0 +2020-04-12,Staunton city,Virginia,51790,1,0 +2020-04-13,Staunton city,Virginia,51790,2,0 +2020-04-14,Staunton city,Virginia,51790,2,0 +2020-04-15,Staunton city,Virginia,51790,2,0 +2020-04-16,Staunton city,Virginia,51790,3,0 +2020-04-17,Staunton city,Virginia,51790,4,0 +2020-04-18,Staunton city,Virginia,51790,5,0 +2020-04-19,Staunton city,Virginia,51790,5,0 +2020-04-20,Staunton city,Virginia,51790,8,0 +2020-04-21,Staunton city,Virginia,51790,10,0 +2020-04-22,Staunton city,Virginia,51790,10,0 +2020-04-23,Staunton city,Virginia,51790,10,0 +2020-04-24,Staunton city,Virginia,51790,10,0 +2020-04-25,Staunton city,Virginia,51790,10,0 +2020-04-26,Staunton city,Virginia,51790,10,0 +2020-04-27,Staunton city,Virginia,51790,10,0 +2020-04-28,Staunton city,Virginia,51790,11,0 +2020-04-29,Staunton city,Virginia,51790,12,0 +2020-04-30,Staunton city,Virginia,51790,12,0 +2020-05-01,Staunton city,Virginia,51790,12,0 +2020-05-02,Staunton city,Virginia,51790,13,0 +2020-05-03,Staunton city,Virginia,51790,13,0 +2020-05-04,Staunton city,Virginia,51790,13,0 +2020-05-05,Staunton city,Virginia,51790,13,0 +2020-05-06,Staunton city,Virginia,51790,13,0 +2020-05-07,Staunton city,Virginia,51790,14,0 +2020-05-08,Staunton city,Virginia,51790,15,0 +2020-05-09,Staunton city,Virginia,51790,15,0 +2020-05-10,Staunton city,Virginia,51790,15,0 +2020-05-11,Staunton city,Virginia,51790,18,0 +2020-05-12,Staunton city,Virginia,51790,18,0 +2020-05-13,Staunton city,Virginia,51790,21,0 +2020-05-14,Staunton city,Virginia,51790,23,0 +2020-05-15,Staunton city,Virginia,51790,34,0 +2020-05-16,Staunton city,Virginia,51790,33,0 +2020-05-17,Staunton city,Virginia,51790,34,0 +2020-05-18,Staunton city,Virginia,51790,33,0 +2020-05-19,Staunton city,Virginia,51790,32,0 +2020-05-20,Staunton city,Virginia,51790,33,0 +2020-05-21,Staunton city,Virginia,51790,34,0 +2020-05-22,Staunton city,Virginia,51790,34,0 +2020-05-23,Staunton city,Virginia,51790,35,0 +2020-05-24,Staunton city,Virginia,51790,35,0 +2020-05-25,Staunton city,Virginia,51790,35,0 +2020-05-26,Staunton city,Virginia,51790,36,0 +2020-05-27,Staunton city,Virginia,51790,36,0 +2020-05-28,Staunton city,Virginia,51790,36,0 +2020-05-29,Staunton city,Virginia,51790,36,0 +2020-05-30,Staunton city,Virginia,51790,39,0 +2020-05-31,Staunton city,Virginia,51790,45,0 +2020-06-01,Staunton city,Virginia,51790,47,0 +2020-06-02,Staunton city,Virginia,51790,49,0 +2020-06-03,Staunton city,Virginia,51790,50,0 +2020-06-04,Staunton city,Virginia,51790,52,0 +2020-06-05,Staunton city,Virginia,51790,53,0 +2020-06-06,Staunton city,Virginia,51790,52,0 +2020-06-07,Staunton city,Virginia,51790,53,0 +2020-06-08,Staunton city,Virginia,51790,58,0 +2020-06-09,Staunton city,Virginia,51790,58,0 +2020-06-10,Staunton city,Virginia,51790,58,0 +2020-06-11,Staunton city,Virginia,51790,55,0 +2020-06-12,Staunton city,Virginia,51790,57,0 +2020-06-13,Staunton city,Virginia,51790,60,0 +2020-06-14,Staunton city,Virginia,51790,60,0 +2020-06-15,Staunton city,Virginia,51790,60,0 +2020-06-16,Staunton city,Virginia,51790,60,0 +2020-06-17,Staunton city,Virginia,51790,61,0 +2020-06-18,Staunton city,Virginia,51790,62,0 +2020-06-19,Staunton city,Virginia,51790,62,0 +2020-06-20,Staunton city,Virginia,51790,65,0 +2020-06-21,Staunton city,Virginia,51790,66,0 +2020-06-22,Staunton city,Virginia,51790,67,0 +2020-06-23,Staunton city,Virginia,51790,68,0 +2020-06-24,Staunton city,Virginia,51790,68,0 +2020-06-25,Staunton city,Virginia,51790,68,0 +2020-06-26,Staunton city,Virginia,51790,68,0 +2020-06-27,Staunton city,Virginia,51790,68,0 +2020-06-28,Staunton city,Virginia,51790,68,0 +2020-06-29,Staunton city,Virginia,51790,72,0 +2020-06-30,Staunton city,Virginia,51790,73,0 +2020-07-01,Staunton city,Virginia,51790,74,0 +2020-07-02,Staunton city,Virginia,51790,74,0 +2020-07-03,Staunton city,Virginia,51790,74,0 +2020-07-04,Staunton city,Virginia,51790,77,0 +2020-07-05,Staunton city,Virginia,51790,79,0 +2020-07-06,Staunton city,Virginia,51790,80,0 +2020-07-07,Staunton city,Virginia,51790,81,0 +2020-07-08,Staunton city,Virginia,51790,84,0 +2020-07-09,Staunton city,Virginia,51790,85,0 +2020-03-21,Suffolk city,Virginia,51800,1,0 +2020-03-22,Suffolk city,Virginia,51800,1,0 +2020-03-23,Suffolk city,Virginia,51800,1,0 +2020-03-24,Suffolk city,Virginia,51800,1,0 +2020-03-25,Suffolk city,Virginia,51800,1,0 +2020-03-26,Suffolk city,Virginia,51800,1,0 +2020-03-27,Suffolk city,Virginia,51800,1,0 +2020-03-28,Suffolk city,Virginia,51800,1,0 +2020-03-29,Suffolk city,Virginia,51800,1,0 +2020-03-30,Suffolk city,Virginia,51800,3,0 +2020-03-31,Suffolk city,Virginia,51800,4,0 +2020-04-01,Suffolk city,Virginia,51800,6,0 +2020-04-02,Suffolk city,Virginia,51800,6,0 +2020-04-03,Suffolk city,Virginia,51800,10,0 +2020-04-04,Suffolk city,Virginia,51800,20,0 +2020-04-05,Suffolk city,Virginia,51800,22,0 +2020-04-06,Suffolk city,Virginia,51800,28,0 +2020-04-07,Suffolk city,Virginia,51800,30,0 +2020-04-08,Suffolk city,Virginia,51800,31,0 +2020-04-09,Suffolk city,Virginia,51800,31,0 +2020-04-10,Suffolk city,Virginia,51800,35,0 +2020-04-11,Suffolk city,Virginia,51800,40,0 +2020-04-12,Suffolk city,Virginia,51800,48,0 +2020-04-13,Suffolk city,Virginia,51800,51,0 +2020-04-14,Suffolk city,Virginia,51800,57,0 +2020-04-15,Suffolk city,Virginia,51800,59,0 +2020-04-16,Suffolk city,Virginia,51800,65,0 +2020-04-17,Suffolk city,Virginia,51800,70,0 +2020-04-18,Suffolk city,Virginia,51800,81,0 +2020-04-19,Suffolk city,Virginia,51800,91,0 +2020-04-20,Suffolk city,Virginia,51800,92,0 +2020-04-21,Suffolk city,Virginia,51800,111,2 +2020-04-22,Suffolk city,Virginia,51800,126,3 +2020-04-23,Suffolk city,Virginia,51800,136,3 +2020-04-24,Suffolk city,Virginia,51800,138,4 +2020-04-25,Suffolk city,Virginia,51800,141,5 +2020-04-26,Suffolk city,Virginia,51800,147,5 +2020-04-27,Suffolk city,Virginia,51800,147,5 +2020-04-28,Suffolk city,Virginia,51800,152,8 +2020-04-29,Suffolk city,Virginia,51800,154,12 +2020-04-30,Suffolk city,Virginia,51800,169,12 +2020-05-01,Suffolk city,Virginia,51800,175,13 +2020-05-02,Suffolk city,Virginia,51800,178,13 +2020-05-03,Suffolk city,Virginia,51800,190,14 +2020-05-04,Suffolk city,Virginia,51800,190,14 +2020-05-05,Suffolk city,Virginia,51800,205,15 +2020-05-06,Suffolk city,Virginia,51800,205,15 +2020-05-07,Suffolk city,Virginia,51800,208,19 +2020-05-08,Suffolk city,Virginia,51800,209,19 +2020-05-09,Suffolk city,Virginia,51800,215,19 +2020-05-10,Suffolk city,Virginia,51800,215,19 +2020-05-11,Suffolk city,Virginia,51800,216,19 +2020-05-12,Suffolk city,Virginia,51800,219,20 +2020-05-13,Suffolk city,Virginia,51800,221,21 +2020-05-14,Suffolk city,Virginia,51800,221,22 +2020-05-15,Suffolk city,Virginia,51800,255,22 +2020-05-16,Suffolk city,Virginia,51800,260,22 +2020-05-17,Suffolk city,Virginia,51800,264,22 +2020-05-18,Suffolk city,Virginia,51800,269,22 +2020-05-19,Suffolk city,Virginia,51800,269,25 +2020-05-20,Suffolk city,Virginia,51800,274,25 +2020-05-21,Suffolk city,Virginia,51800,278,25 +2020-05-22,Suffolk city,Virginia,51800,283,25 +2020-05-23,Suffolk city,Virginia,51800,290,25 +2020-05-24,Suffolk city,Virginia,51800,295,29 +2020-05-25,Suffolk city,Virginia,51800,300,31 +2020-05-26,Suffolk city,Virginia,51800,303,31 +2020-05-27,Suffolk city,Virginia,51800,308,31 +2020-05-28,Suffolk city,Virginia,51800,308,31 +2020-05-29,Suffolk city,Virginia,51800,311,32 +2020-05-30,Suffolk city,Virginia,51800,314,32 +2020-05-31,Suffolk city,Virginia,51800,315,32 +2020-06-01,Suffolk city,Virginia,51800,316,33 +2020-06-02,Suffolk city,Virginia,51800,317,33 +2020-06-03,Suffolk city,Virginia,51800,318,33 +2020-06-04,Suffolk city,Virginia,51800,320,33 +2020-06-05,Suffolk city,Virginia,51800,322,33 +2020-06-06,Suffolk city,Virginia,51800,323,33 +2020-06-07,Suffolk city,Virginia,51800,323,33 +2020-06-08,Suffolk city,Virginia,51800,325,33 +2020-06-09,Suffolk city,Virginia,51800,325,34 +2020-06-10,Suffolk city,Virginia,51800,330,33 +2020-06-11,Suffolk city,Virginia,51800,333,33 +2020-06-12,Suffolk city,Virginia,51800,337,33 +2020-06-13,Suffolk city,Virginia,51800,341,33 +2020-06-14,Suffolk city,Virginia,51800,344,33 +2020-06-15,Suffolk city,Virginia,51800,345,34 +2020-06-16,Suffolk city,Virginia,51800,347,34 +2020-06-17,Suffolk city,Virginia,51800,348,34 +2020-06-18,Suffolk city,Virginia,51800,349,34 +2020-06-19,Suffolk city,Virginia,51800,353,34 +2020-06-20,Suffolk city,Virginia,51800,356,34 +2020-06-21,Suffolk city,Virginia,51800,365,34 +2020-06-22,Suffolk city,Virginia,51800,377,34 +2020-06-23,Suffolk city,Virginia,51800,380,34 +2020-06-24,Suffolk city,Virginia,51800,385,34 +2020-06-25,Suffolk city,Virginia,51800,389,34 +2020-06-26,Suffolk city,Virginia,51800,393,34 +2020-06-27,Suffolk city,Virginia,51800,397,34 +2020-06-28,Suffolk city,Virginia,51800,398,34 +2020-06-29,Suffolk city,Virginia,51800,403,34 +2020-06-30,Suffolk city,Virginia,51800,414,34 +2020-07-01,Suffolk city,Virginia,51800,420,35 +2020-07-02,Suffolk city,Virginia,51800,425,36 +2020-07-03,Suffolk city,Virginia,51800,441,37 +2020-07-04,Suffolk city,Virginia,51800,443,37 +2020-07-05,Suffolk city,Virginia,51800,451,38 +2020-07-06,Suffolk city,Virginia,51800,457,38 +2020-07-07,Suffolk city,Virginia,51800,470,38 +2020-07-08,Suffolk city,Virginia,51800,487,38 +2020-07-09,Suffolk city,Virginia,51800,504,40 +2020-03-09,Virginia Beach city,Virginia,51810,1,0 +2020-03-10,Virginia Beach city,Virginia,51810,2,0 +2020-03-11,Virginia Beach city,Virginia,51810,2,0 +2020-03-12,Virginia Beach city,Virginia,51810,2,0 +2020-03-13,Virginia Beach city,Virginia,51810,2,0 +2020-03-14,Virginia Beach city,Virginia,51810,3,0 +2020-03-15,Virginia Beach city,Virginia,51810,4,0 +2020-03-16,Virginia Beach city,Virginia,51810,4,0 +2020-03-17,Virginia Beach city,Virginia,51810,4,0 +2020-03-18,Virginia Beach city,Virginia,51810,4,0 +2020-03-19,Virginia Beach city,Virginia,51810,4,0 +2020-03-20,Virginia Beach city,Virginia,51810,4,0 +2020-03-21,Virginia Beach city,Virginia,51810,4,0 +2020-03-22,Virginia Beach city,Virginia,51810,17,0 +2020-03-23,Virginia Beach city,Virginia,51810,17,0 +2020-03-24,Virginia Beach city,Virginia,51810,17,0 +2020-03-25,Virginia Beach city,Virginia,51810,23,0 +2020-03-26,Virginia Beach city,Virginia,51810,26,0 +2020-03-27,Virginia Beach city,Virginia,51810,29,0 +2020-03-28,Virginia Beach city,Virginia,51810,35,0 +2020-03-29,Virginia Beach city,Virginia,51810,49,0 +2020-03-30,Virginia Beach city,Virginia,51810,52,0 +2020-03-31,Virginia Beach city,Virginia,51810,65,0 +2020-04-01,Virginia Beach city,Virginia,51810,88,0 +2020-04-02,Virginia Beach city,Virginia,51810,111,0 +2020-04-03,Virginia Beach city,Virginia,51810,128,1 +2020-04-04,Virginia Beach city,Virginia,51810,160,1 +2020-04-05,Virginia Beach city,Virginia,51810,170,1 +2020-04-06,Virginia Beach city,Virginia,51810,178,1 +2020-04-07,Virginia Beach city,Virginia,51810,200,1 +2020-04-08,Virginia Beach city,Virginia,51810,207,1 +2020-04-09,Virginia Beach city,Virginia,51810,219,1 +2020-04-10,Virginia Beach city,Virginia,51810,224,1 +2020-04-11,Virginia Beach city,Virginia,51810,236,1 +2020-04-12,Virginia Beach city,Virginia,51810,243,1 +2020-04-13,Virginia Beach city,Virginia,51810,251,1 +2020-04-14,Virginia Beach city,Virginia,51810,252,5 +2020-04-15,Virginia Beach city,Virginia,51810,256,5 +2020-04-16,Virginia Beach city,Virginia,51810,258,5 +2020-04-17,Virginia Beach city,Virginia,51810,265,5 +2020-04-18,Virginia Beach city,Virginia,51810,271,5 +2020-04-19,Virginia Beach city,Virginia,51810,273,8 +2020-04-20,Virginia Beach city,Virginia,51810,281,8 +2020-04-21,Virginia Beach city,Virginia,51810,288,8 +2020-04-22,Virginia Beach city,Virginia,51810,313,8 +2020-04-23,Virginia Beach city,Virginia,51810,328,8 +2020-04-24,Virginia Beach city,Virginia,51810,331,10 +2020-04-25,Virginia Beach city,Virginia,51810,335,10 +2020-04-26,Virginia Beach city,Virginia,51810,345,10 +2020-04-27,Virginia Beach city,Virginia,51810,355,10 +2020-04-28,Virginia Beach city,Virginia,51810,359,12 +2020-04-29,Virginia Beach city,Virginia,51810,365,12 +2020-04-30,Virginia Beach city,Virginia,51810,385,14 +2020-05-01,Virginia Beach city,Virginia,51810,396,14 +2020-05-02,Virginia Beach city,Virginia,51810,413,15 +2020-05-03,Virginia Beach city,Virginia,51810,413,15 +2020-05-04,Virginia Beach city,Virginia,51810,439,15 +2020-05-05,Virginia Beach city,Virginia,51810,445,15 +2020-05-06,Virginia Beach city,Virginia,51810,445,15 +2020-05-07,Virginia Beach city,Virginia,51810,454,17 +2020-05-08,Virginia Beach city,Virginia,51810,469,17 +2020-05-09,Virginia Beach city,Virginia,51810,478,17 +2020-05-10,Virginia Beach city,Virginia,51810,491,17 +2020-05-11,Virginia Beach city,Virginia,51810,505,17 +2020-05-12,Virginia Beach city,Virginia,51810,509,18 +2020-05-13,Virginia Beach city,Virginia,51810,519,18 +2020-05-14,Virginia Beach city,Virginia,51810,528,19 +2020-05-15,Virginia Beach city,Virginia,51810,535,19 +2020-05-16,Virginia Beach city,Virginia,51810,539,19 +2020-05-17,Virginia Beach city,Virginia,51810,548,19 +2020-05-18,Virginia Beach city,Virginia,51810,557,19 +2020-05-19,Virginia Beach city,Virginia,51810,559,19 +2020-05-20,Virginia Beach city,Virginia,51810,564,19 +2020-05-21,Virginia Beach city,Virginia,51810,584,19 +2020-05-22,Virginia Beach city,Virginia,51810,591,19 +2020-05-23,Virginia Beach city,Virginia,51810,598,19 +2020-05-24,Virginia Beach city,Virginia,51810,603,19 +2020-05-25,Virginia Beach city,Virginia,51810,618,20 +2020-05-26,Virginia Beach city,Virginia,51810,638,23 +2020-05-27,Virginia Beach city,Virginia,51810,646,22 +2020-05-28,Virginia Beach city,Virginia,51810,662,22 +2020-05-29,Virginia Beach city,Virginia,51810,680,23 +2020-05-30,Virginia Beach city,Virginia,51810,699,23 +2020-05-31,Virginia Beach city,Virginia,51810,708,23 +2020-06-01,Virginia Beach city,Virginia,51810,745,23 +2020-06-02,Virginia Beach city,Virginia,51810,752,23 +2020-06-03,Virginia Beach city,Virginia,51810,752,23 +2020-06-04,Virginia Beach city,Virginia,51810,770,24 +2020-06-05,Virginia Beach city,Virginia,51810,784,25 +2020-06-06,Virginia Beach city,Virginia,51810,798,25 +2020-06-07,Virginia Beach city,Virginia,51810,801,25 +2020-06-08,Virginia Beach city,Virginia,51810,810,25 +2020-06-09,Virginia Beach city,Virginia,51810,815,27 +2020-06-10,Virginia Beach city,Virginia,51810,823,27 +2020-06-11,Virginia Beach city,Virginia,51810,832,27 +2020-06-12,Virginia Beach city,Virginia,51810,847,27 +2020-06-13,Virginia Beach city,Virginia,51810,869,27 +2020-06-14,Virginia Beach city,Virginia,51810,890,27 +2020-06-15,Virginia Beach city,Virginia,51810,899,27 +2020-06-16,Virginia Beach city,Virginia,51810,909,27 +2020-06-17,Virginia Beach city,Virginia,51810,923,28 +2020-06-18,Virginia Beach city,Virginia,51810,936,27 +2020-06-19,Virginia Beach city,Virginia,51810,950,27 +2020-06-20,Virginia Beach city,Virginia,51810,956,27 +2020-06-21,Virginia Beach city,Virginia,51810,988,27 +2020-06-22,Virginia Beach city,Virginia,51810,1006,27 +2020-06-23,Virginia Beach city,Virginia,51810,1020,27 +2020-06-24,Virginia Beach city,Virginia,51810,1038,27 +2020-06-25,Virginia Beach city,Virginia,51810,1053,27 +2020-06-26,Virginia Beach city,Virginia,51810,1082,28 +2020-06-27,Virginia Beach city,Virginia,51810,1092,29 +2020-06-28,Virginia Beach city,Virginia,51810,1123,29 +2020-06-29,Virginia Beach city,Virginia,51810,1145,29 +2020-06-30,Virginia Beach city,Virginia,51810,1176,29 +2020-07-01,Virginia Beach city,Virginia,51810,1203,29 +2020-07-02,Virginia Beach city,Virginia,51810,1225,30 +2020-07-03,Virginia Beach city,Virginia,51810,1254,30 +2020-07-04,Virginia Beach city,Virginia,51810,1300,30 +2020-07-05,Virginia Beach city,Virginia,51810,1350,30 +2020-07-06,Virginia Beach city,Virginia,51810,1392,30 +2020-07-07,Virginia Beach city,Virginia,51810,1455,30 +2020-07-08,Virginia Beach city,Virginia,51810,1520,30 +2020-07-09,Virginia Beach city,Virginia,51810,1547,30 +2020-03-31,Waynesboro city,Virginia,51820,2,0 +2020-04-01,Waynesboro city,Virginia,51820,2,0 +2020-04-02,Waynesboro city,Virginia,51820,2,0 +2020-04-03,Waynesboro city,Virginia,51820,3,0 +2020-04-04,Waynesboro city,Virginia,51820,2,0 +2020-04-05,Waynesboro city,Virginia,51820,2,0 +2020-04-06,Waynesboro city,Virginia,51820,3,0 +2020-04-07,Waynesboro city,Virginia,51820,2,0 +2020-04-08,Waynesboro city,Virginia,51820,2,0 +2020-04-09,Waynesboro city,Virginia,51820,3,0 +2020-04-10,Waynesboro city,Virginia,51820,5,0 +2020-04-11,Waynesboro city,Virginia,51820,5,0 +2020-04-12,Waynesboro city,Virginia,51820,5,0 +2020-04-13,Waynesboro city,Virginia,51820,6,0 +2020-04-14,Waynesboro city,Virginia,51820,6,0 +2020-04-15,Waynesboro city,Virginia,51820,6,0 +2020-04-16,Waynesboro city,Virginia,51820,6,0 +2020-04-17,Waynesboro city,Virginia,51820,7,0 +2020-04-18,Waynesboro city,Virginia,51820,7,0 +2020-04-19,Waynesboro city,Virginia,51820,7,0 +2020-04-20,Waynesboro city,Virginia,51820,8,0 +2020-04-21,Waynesboro city,Virginia,51820,8,0 +2020-04-22,Waynesboro city,Virginia,51820,8,0 +2020-04-23,Waynesboro city,Virginia,51820,9,0 +2020-04-24,Waynesboro city,Virginia,51820,10,0 +2020-04-25,Waynesboro city,Virginia,51820,10,0 +2020-04-26,Waynesboro city,Virginia,51820,10,0 +2020-04-27,Waynesboro city,Virginia,51820,11,0 +2020-04-28,Waynesboro city,Virginia,51820,11,0 +2020-04-29,Waynesboro city,Virginia,51820,11,0 +2020-04-30,Waynesboro city,Virginia,51820,11,0 +2020-05-01,Waynesboro city,Virginia,51820,13,0 +2020-05-02,Waynesboro city,Virginia,51820,14,0 +2020-05-03,Waynesboro city,Virginia,51820,14,0 +2020-05-04,Waynesboro city,Virginia,51820,14,0 +2020-05-05,Waynesboro city,Virginia,51820,16,0 +2020-05-06,Waynesboro city,Virginia,51820,16,0 +2020-05-07,Waynesboro city,Virginia,51820,20,0 +2020-05-08,Waynesboro city,Virginia,51820,20,0 +2020-05-09,Waynesboro city,Virginia,51820,21,0 +2020-05-10,Waynesboro city,Virginia,51820,21,0 +2020-05-11,Waynesboro city,Virginia,51820,21,0 +2020-05-12,Waynesboro city,Virginia,51820,21,0 +2020-05-13,Waynesboro city,Virginia,51820,21,0 +2020-05-14,Waynesboro city,Virginia,51820,21,0 +2020-05-15,Waynesboro city,Virginia,51820,22,0 +2020-05-16,Waynesboro city,Virginia,51820,22,0 +2020-05-17,Waynesboro city,Virginia,51820,22,0 +2020-05-18,Waynesboro city,Virginia,51820,24,0 +2020-05-19,Waynesboro city,Virginia,51820,28,0 +2020-05-20,Waynesboro city,Virginia,51820,29,0 +2020-05-21,Waynesboro city,Virginia,51820,33,0 +2020-05-22,Waynesboro city,Virginia,51820,36,0 +2020-05-23,Waynesboro city,Virginia,51820,38,0 +2020-05-24,Waynesboro city,Virginia,51820,38,0 +2020-05-25,Waynesboro city,Virginia,51820,39,0 +2020-05-26,Waynesboro city,Virginia,51820,41,0 +2020-05-27,Waynesboro city,Virginia,51820,41,0 +2020-05-28,Waynesboro city,Virginia,51820,41,0 +2020-05-29,Waynesboro city,Virginia,51820,41,0 +2020-05-30,Waynesboro city,Virginia,51820,43,0 +2020-05-31,Waynesboro city,Virginia,51820,46,0 +2020-06-01,Waynesboro city,Virginia,51820,47,0 +2020-06-02,Waynesboro city,Virginia,51820,47,0 +2020-06-03,Waynesboro city,Virginia,51820,47,0 +2020-06-04,Waynesboro city,Virginia,51820,47,0 +2020-06-05,Waynesboro city,Virginia,51820,48,0 +2020-06-06,Waynesboro city,Virginia,51820,49,0 +2020-06-07,Waynesboro city,Virginia,51820,49,0 +2020-06-08,Waynesboro city,Virginia,51820,49,0 +2020-06-09,Waynesboro city,Virginia,51820,50,0 +2020-06-10,Waynesboro city,Virginia,51820,51,0 +2020-06-11,Waynesboro city,Virginia,51820,53,0 +2020-06-12,Waynesboro city,Virginia,51820,53,0 +2020-06-13,Waynesboro city,Virginia,51820,53,0 +2020-06-14,Waynesboro city,Virginia,51820,53,0 +2020-06-15,Waynesboro city,Virginia,51820,54,0 +2020-06-16,Waynesboro city,Virginia,51820,55,0 +2020-06-17,Waynesboro city,Virginia,51820,58,0 +2020-06-18,Waynesboro city,Virginia,51820,61,0 +2020-06-19,Waynesboro city,Virginia,51820,61,0 +2020-06-20,Waynesboro city,Virginia,51820,60,0 +2020-06-21,Waynesboro city,Virginia,51820,63,0 +2020-06-22,Waynesboro city,Virginia,51820,63,0 +2020-06-23,Waynesboro city,Virginia,51820,66,0 +2020-06-24,Waynesboro city,Virginia,51820,67,0 +2020-06-25,Waynesboro city,Virginia,51820,70,0 +2020-06-26,Waynesboro city,Virginia,51820,73,0 +2020-06-27,Waynesboro city,Virginia,51820,74,0 +2020-06-28,Waynesboro city,Virginia,51820,77,0 +2020-06-29,Waynesboro city,Virginia,51820,81,0 +2020-06-30,Waynesboro city,Virginia,51820,82,0 +2020-07-01,Waynesboro city,Virginia,51820,84,0 +2020-07-02,Waynesboro city,Virginia,51820,86,0 +2020-07-03,Waynesboro city,Virginia,51820,89,0 +2020-07-04,Waynesboro city,Virginia,51820,91,0 +2020-07-05,Waynesboro city,Virginia,51820,92,0 +2020-07-06,Waynesboro city,Virginia,51820,94,0 +2020-07-07,Waynesboro city,Virginia,51820,102,0 +2020-07-08,Waynesboro city,Virginia,51820,113,0 +2020-07-09,Waynesboro city,Virginia,51820,114,0 +2020-03-17,Williamsburg city,Virginia,51830,1,0 +2020-03-18,Williamsburg city,Virginia,51830,1,0 +2020-03-19,Williamsburg city,Virginia,51830,1,0 +2020-03-20,Williamsburg city,Virginia,51830,4,0 +2020-03-21,Williamsburg city,Virginia,51830,4,0 +2020-03-22,Williamsburg city,Virginia,51830,5,1 +2020-03-23,Williamsburg city,Virginia,51830,5,1 +2020-03-24,Williamsburg city,Virginia,51830,5,1 +2020-03-25,Williamsburg city,Virginia,51830,5,1 +2020-03-26,Williamsburg city,Virginia,51830,5,1 +2020-03-27,Williamsburg city,Virginia,51830,5,1 +2020-03-28,Williamsburg city,Virginia,51830,6,1 +2020-03-29,Williamsburg city,Virginia,51830,7,1 +2020-03-30,Williamsburg city,Virginia,51830,7,1 +2020-03-31,Williamsburg city,Virginia,51830,8,1 +2020-04-01,Williamsburg city,Virginia,51830,9,1 +2020-04-02,Williamsburg city,Virginia,51830,9,1 +2020-04-03,Williamsburg city,Virginia,51830,9,1 +2020-04-04,Williamsburg city,Virginia,51830,10,1 +2020-04-05,Williamsburg city,Virginia,51830,12,1 +2020-04-06,Williamsburg city,Virginia,51830,13,1 +2020-04-07,Williamsburg city,Virginia,51830,14,1 +2020-04-08,Williamsburg city,Virginia,51830,16,1 +2020-04-09,Williamsburg city,Virginia,51830,16,1 +2020-04-10,Williamsburg city,Virginia,51830,17,1 +2020-04-11,Williamsburg city,Virginia,51830,17,1 +2020-04-12,Williamsburg city,Virginia,51830,17,1 +2020-04-13,Williamsburg city,Virginia,51830,20,1 +2020-04-14,Williamsburg city,Virginia,51830,20,1 +2020-04-15,Williamsburg city,Virginia,51830,19,1 +2020-04-16,Williamsburg city,Virginia,51830,19,1 +2020-04-17,Williamsburg city,Virginia,51830,19,1 +2020-04-18,Williamsburg city,Virginia,51830,19,1 +2020-04-19,Williamsburg city,Virginia,51830,19,1 +2020-04-20,Williamsburg city,Virginia,51830,19,1 +2020-04-21,Williamsburg city,Virginia,51830,15,1 +2020-04-22,Williamsburg city,Virginia,51830,14,1 +2020-04-23,Williamsburg city,Virginia,51830,15,1 +2020-04-24,Williamsburg city,Virginia,51830,15,1 +2020-04-25,Williamsburg city,Virginia,51830,15,1 +2020-04-26,Williamsburg city,Virginia,51830,15,1 +2020-04-27,Williamsburg city,Virginia,51830,15,1 +2020-04-28,Williamsburg city,Virginia,51830,18,1 +2020-04-29,Williamsburg city,Virginia,51830,18,1 +2020-04-30,Williamsburg city,Virginia,51830,18,1 +2020-05-01,Williamsburg city,Virginia,51830,20,1 +2020-05-02,Williamsburg city,Virginia,51830,21,2 +2020-05-03,Williamsburg city,Virginia,51830,22,2 +2020-05-04,Williamsburg city,Virginia,51830,23,2 +2020-05-05,Williamsburg city,Virginia,51830,27,2 +2020-05-06,Williamsburg city,Virginia,51830,27,2 +2020-05-07,Williamsburg city,Virginia,51830,29,2 +2020-05-08,Williamsburg city,Virginia,51830,31,2 +2020-05-09,Williamsburg city,Virginia,51830,31,2 +2020-05-10,Williamsburg city,Virginia,51830,39,2 +2020-05-11,Williamsburg city,Virginia,51830,42,3 +2020-05-12,Williamsburg city,Virginia,51830,42,3 +2020-05-13,Williamsburg city,Virginia,51830,42,3 +2020-05-14,Williamsburg city,Virginia,51830,42,3 +2020-05-15,Williamsburg city,Virginia,51830,42,3 +2020-05-16,Williamsburg city,Virginia,51830,43,3 +2020-05-17,Williamsburg city,Virginia,51830,43,3 +2020-05-18,Williamsburg city,Virginia,51830,43,3 +2020-05-19,Williamsburg city,Virginia,51830,43,3 +2020-05-20,Williamsburg city,Virginia,51830,43,3 +2020-05-21,Williamsburg city,Virginia,51830,43,3 +2020-05-22,Williamsburg city,Virginia,51830,43,3 +2020-05-23,Williamsburg city,Virginia,51830,43,3 +2020-05-24,Williamsburg city,Virginia,51830,43,3 +2020-05-25,Williamsburg city,Virginia,51830,43,3 +2020-05-26,Williamsburg city,Virginia,51830,43,3 +2020-05-27,Williamsburg city,Virginia,51830,43,3 +2020-05-28,Williamsburg city,Virginia,51830,44,4 +2020-05-29,Williamsburg city,Virginia,51830,44,4 +2020-05-30,Williamsburg city,Virginia,51830,44,4 +2020-05-31,Williamsburg city,Virginia,51830,44,4 +2020-06-01,Williamsburg city,Virginia,51830,44,4 +2020-06-02,Williamsburg city,Virginia,51830,44,4 +2020-06-03,Williamsburg city,Virginia,51830,45,4 +2020-06-04,Williamsburg city,Virginia,51830,45,5 +2020-06-05,Williamsburg city,Virginia,51830,45,5 +2020-06-06,Williamsburg city,Virginia,51830,45,5 +2020-06-07,Williamsburg city,Virginia,51830,46,5 +2020-06-08,Williamsburg city,Virginia,51830,46,5 +2020-06-09,Williamsburg city,Virginia,51830,48,5 +2020-06-10,Williamsburg city,Virginia,51830,48,5 +2020-06-11,Williamsburg city,Virginia,51830,49,5 +2020-06-12,Williamsburg city,Virginia,51830,49,5 +2020-06-13,Williamsburg city,Virginia,51830,49,5 +2020-06-14,Williamsburg city,Virginia,51830,50,5 +2020-06-15,Williamsburg city,Virginia,51830,50,5 +2020-06-16,Williamsburg city,Virginia,51830,53,5 +2020-06-17,Williamsburg city,Virginia,51830,54,5 +2020-06-18,Williamsburg city,Virginia,51830,54,5 +2020-06-19,Williamsburg city,Virginia,51830,54,5 +2020-06-20,Williamsburg city,Virginia,51830,54,5 +2020-06-21,Williamsburg city,Virginia,51830,54,5 +2020-06-22,Williamsburg city,Virginia,51830,54,5 +2020-06-23,Williamsburg city,Virginia,51830,54,5 +2020-06-24,Williamsburg city,Virginia,51830,54,5 +2020-06-25,Williamsburg city,Virginia,51830,55,6 +2020-06-26,Williamsburg city,Virginia,51830,55,6 +2020-06-27,Williamsburg city,Virginia,51830,55,6 +2020-06-28,Williamsburg city,Virginia,51830,55,6 +2020-06-29,Williamsburg city,Virginia,51830,56,6 +2020-06-30,Williamsburg city,Virginia,51830,60,6 +2020-07-01,Williamsburg city,Virginia,51830,61,6 +2020-07-02,Williamsburg city,Virginia,51830,61,6 +2020-07-03,Williamsburg city,Virginia,51830,61,6 +2020-07-04,Williamsburg city,Virginia,51830,64,6 +2020-07-05,Williamsburg city,Virginia,51830,72,6 +2020-07-06,Williamsburg city,Virginia,51830,74,6 +2020-07-07,Williamsburg city,Virginia,51830,75,6 +2020-07-08,Williamsburg city,Virginia,51830,77,6 +2020-07-09,Williamsburg city,Virginia,51830,78,6 +2020-03-29,Winchester city,Virginia,51840,1,0 +2020-03-30,Winchester city,Virginia,51840,3,0 +2020-03-31,Winchester city,Virginia,51840,3,0 +2020-04-01,Winchester city,Virginia,51840,5,0 +2020-04-02,Winchester city,Virginia,51840,5,0 +2020-04-03,Winchester city,Virginia,51840,9,0 +2020-04-04,Winchester city,Virginia,51840,10,0 +2020-04-05,Winchester city,Virginia,51840,11,0 +2020-04-06,Winchester city,Virginia,51840,13,0 +2020-04-07,Winchester city,Virginia,51840,14,0 +2020-04-08,Winchester city,Virginia,51840,15,0 +2020-04-09,Winchester city,Virginia,51840,16,0 +2020-04-10,Winchester city,Virginia,51840,16,0 +2020-04-11,Winchester city,Virginia,51840,19,0 +2020-04-12,Winchester city,Virginia,51840,19,0 +2020-04-13,Winchester city,Virginia,51840,20,0 +2020-04-14,Winchester city,Virginia,51840,20,0 +2020-04-15,Winchester city,Virginia,51840,21,0 +2020-04-16,Winchester city,Virginia,51840,21,0 +2020-04-17,Winchester city,Virginia,51840,22,0 +2020-04-18,Winchester city,Virginia,51840,25,0 +2020-04-19,Winchester city,Virginia,51840,25,0 +2020-04-20,Winchester city,Virginia,51840,25,0 +2020-04-21,Winchester city,Virginia,51840,27,0 +2020-04-22,Winchester city,Virginia,51840,29,0 +2020-04-23,Winchester city,Virginia,51840,30,0 +2020-04-24,Winchester city,Virginia,51840,31,0 +2020-04-25,Winchester city,Virginia,51840,33,0 +2020-04-26,Winchester city,Virginia,51840,33,0 +2020-04-27,Winchester city,Virginia,51840,33,0 +2020-04-28,Winchester city,Virginia,51840,36,0 +2020-04-29,Winchester city,Virginia,51840,36,0 +2020-04-30,Winchester city,Virginia,51840,37,0 +2020-05-01,Winchester city,Virginia,51840,41,0 +2020-05-02,Winchester city,Virginia,51840,46,0 +2020-05-03,Winchester city,Virginia,51840,49,0 +2020-05-04,Winchester city,Virginia,51840,50,0 +2020-05-05,Winchester city,Virginia,51840,56,0 +2020-05-06,Winchester city,Virginia,51840,56,0 +2020-05-07,Winchester city,Virginia,51840,61,0 +2020-05-08,Winchester city,Virginia,51840,61,0 +2020-05-09,Winchester city,Virginia,51840,64,0 +2020-05-10,Winchester city,Virginia,51840,66,0 +2020-05-11,Winchester city,Virginia,51840,66,0 +2020-05-12,Winchester city,Virginia,51840,69,1 +2020-05-13,Winchester city,Virginia,51840,73,1 +2020-05-14,Winchester city,Virginia,51840,75,1 +2020-05-15,Winchester city,Virginia,51840,79,1 +2020-05-16,Winchester city,Virginia,51840,80,1 +2020-05-17,Winchester city,Virginia,51840,80,1 +2020-05-18,Winchester city,Virginia,51840,84,1 +2020-05-19,Winchester city,Virginia,51840,96,1 +2020-05-20,Winchester city,Virginia,51840,104,1 +2020-05-21,Winchester city,Virginia,51840,110,1 +2020-05-22,Winchester city,Virginia,51840,121,1 +2020-05-23,Winchester city,Virginia,51840,128,1 +2020-05-24,Winchester city,Virginia,51840,143,1 +2020-05-25,Winchester city,Virginia,51840,145,1 +2020-05-26,Winchester city,Virginia,51840,147,1 +2020-05-27,Winchester city,Virginia,51840,156,1 +2020-05-28,Winchester city,Virginia,51840,168,1 +2020-05-29,Winchester city,Virginia,51840,176,2 +2020-05-30,Winchester city,Virginia,51840,187,2 +2020-05-31,Winchester city,Virginia,51840,189,2 +2020-06-01,Winchester city,Virginia,51840,191,2 +2020-06-02,Winchester city,Virginia,51840,196,2 +2020-06-03,Winchester city,Virginia,51840,198,2 +2020-06-04,Winchester city,Virginia,51840,215,2 +2020-06-05,Winchester city,Virginia,51840,225,2 +2020-06-06,Winchester city,Virginia,51840,232,2 +2020-06-07,Winchester city,Virginia,51840,232,2 +2020-06-08,Winchester city,Virginia,51840,235,2 +2020-06-09,Winchester city,Virginia,51840,238,2 +2020-06-10,Winchester city,Virginia,51840,248,3 +2020-06-11,Winchester city,Virginia,51840,250,3 +2020-06-12,Winchester city,Virginia,51840,260,3 +2020-06-13,Winchester city,Virginia,51840,263,3 +2020-06-14,Winchester city,Virginia,51840,264,3 +2020-06-15,Winchester city,Virginia,51840,265,3 +2020-06-16,Winchester city,Virginia,51840,269,3 +2020-06-17,Winchester city,Virginia,51840,273,3 +2020-06-18,Winchester city,Virginia,51840,276,3 +2020-06-19,Winchester city,Virginia,51840,278,3 +2020-06-20,Winchester city,Virginia,51840,279,3 +2020-06-21,Winchester city,Virginia,51840,286,3 +2020-06-22,Winchester city,Virginia,51840,292,3 +2020-06-23,Winchester city,Virginia,51840,297,3 +2020-06-24,Winchester city,Virginia,51840,300,3 +2020-06-25,Winchester city,Virginia,51840,301,3 +2020-06-26,Winchester city,Virginia,51840,302,3 +2020-06-27,Winchester city,Virginia,51840,310,3 +2020-06-28,Winchester city,Virginia,51840,311,3 +2020-06-29,Winchester city,Virginia,51840,314,3 +2020-06-30,Winchester city,Virginia,51840,317,3 +2020-07-01,Winchester city,Virginia,51840,326,3 +2020-07-02,Winchester city,Virginia,51840,330,3 +2020-07-03,Winchester city,Virginia,51840,330,3 +2020-07-04,Winchester city,Virginia,51840,332,3 +2020-07-05,Winchester city,Virginia,51840,334,3 +2020-07-06,Winchester city,Virginia,51840,334,3 +2020-07-07,Winchester city,Virginia,51840,334,3 +2020-07-08,Winchester city,Virginia,51840,334,3 +2020-07-09,Winchester city,Virginia,51840,334,3 +2020-03-23,Adams,Washington,53001,1,0 +2020-03-24,Adams,Washington,53001,1,0 +2020-03-25,Adams,Washington,53001,1,0 +2020-03-26,Adams,Washington,53001,3,0 +2020-03-27,Adams,Washington,53001,5,0 +2020-03-28,Adams,Washington,53001,5,0 +2020-03-29,Adams,Washington,53001,7,0 +2020-03-30,Adams,Washington,53001,7,0 +2020-03-31,Adams,Washington,53001,7,0 +2020-04-01,Adams,Washington,53001,14,0 +2020-04-02,Adams,Washington,53001,20,0 +2020-04-03,Adams,Washington,53001,20,0 +2020-04-04,Adams,Washington,53001,23,0 +2020-04-05,Adams,Washington,53001,26,0 +2020-04-06,Adams,Washington,53001,27,0 +2020-04-07,Adams,Washington,53001,29,0 +2020-04-08,Adams,Washington,53001,30,0 +2020-04-09,Adams,Washington,53001,30,0 +2020-04-10,Adams,Washington,53001,30,0 +2020-04-11,Adams,Washington,53001,36,0 +2020-04-12,Adams,Washington,53001,37,0 +2020-04-13,Adams,Washington,53001,39,0 +2020-04-14,Adams,Washington,53001,39,0 +2020-04-15,Adams,Washington,53001,40,0 +2020-04-16,Adams,Washington,53001,40,0 +2020-04-17,Adams,Washington,53001,40,0 +2020-04-18,Adams,Washington,53001,40,0 +2020-04-19,Adams,Washington,53001,41,0 +2020-04-20,Adams,Washington,53001,43,0 +2020-04-21,Adams,Washington,53001,44,0 +2020-04-22,Adams,Washington,53001,44,0 +2020-04-23,Adams,Washington,53001,45,0 +2020-04-24,Adams,Washington,53001,45,0 +2020-04-25,Adams,Washington,53001,46,0 +2020-04-26,Adams,Washington,53001,46,0 +2020-04-27,Adams,Washington,53001,46,0 +2020-04-28,Adams,Washington,53001,46,0 +2020-04-29,Adams,Washington,53001,47,0 +2020-04-30,Adams,Washington,53001,47,0 +2020-05-01,Adams,Washington,53001,47,0 +2020-05-02,Adams,Washington,53001,48,0 +2020-05-03,Adams,Washington,53001,48,0 +2020-05-04,Adams,Washington,53001,48,0 +2020-05-05,Adams,Washington,53001,48,0 +2020-05-06,Adams,Washington,53001,49,0 +2020-05-07,Adams,Washington,53001,49,0 +2020-05-08,Adams,Washington,53001,49,0 +2020-05-09,Adams,Washington,53001,49,0 +2020-05-10,Adams,Washington,53001,49,0 +2020-05-11,Adams,Washington,53001,49,0 +2020-05-12,Adams,Washington,53001,50,0 +2020-05-13,Adams,Washington,53001,50,0 +2020-05-14,Adams,Washington,53001,50,0 +2020-05-15,Adams,Washington,53001,50,0 +2020-05-16,Adams,Washington,53001,50,0 +2020-05-17,Adams,Washington,53001,50,0 +2020-05-18,Adams,Washington,53001,50,0 +2020-05-19,Adams,Washington,53001,50,0 +2020-05-20,Adams,Washington,53001,50,0 +2020-05-21,Adams,Washington,53001,50,0 +2020-05-22,Adams,Washington,53001,50,0 +2020-05-23,Adams,Washington,53001,54,0 +2020-05-24,Adams,Washington,53001,54,0 +2020-05-25,Adams,Washington,53001,54,0 +2020-05-26,Adams,Washington,53001,54,0 +2020-05-27,Adams,Washington,53001,54,0 +2020-05-28,Adams,Washington,53001,54,0 +2020-05-29,Adams,Washington,53001,59,0 +2020-05-30,Adams,Washington,53001,62,0 +2020-05-31,Adams,Washington,53001,63,0 +2020-06-01,Adams,Washington,53001,63,0 +2020-06-02,Adams,Washington,53001,63,0 +2020-06-03,Adams,Washington,53001,73,0 +2020-06-04,Adams,Washington,53001,77,0 +2020-06-05,Adams,Washington,53001,78,0 +2020-06-06,Adams,Washington,53001,79,0 +2020-06-07,Adams,Washington,53001,79,0 +2020-06-08,Adams,Washington,53001,79,0 +2020-06-09,Adams,Washington,53001,80,0 +2020-06-10,Adams,Washington,53001,87,0 +2020-06-11,Adams,Washington,53001,89,0 +2020-06-12,Adams,Washington,53001,89,0 +2020-06-13,Adams,Washington,53001,90,0 +2020-06-14,Adams,Washington,53001,91,0 +2020-06-15,Adams,Washington,53001,93,0 +2020-06-16,Adams,Washington,53001,100,0 +2020-06-17,Adams,Washington,53001,101,0 +2020-06-18,Adams,Washington,53001,101,0 +2020-06-19,Adams,Washington,53001,102,0 +2020-06-20,Adams,Washington,53001,102,0 +2020-06-21,Adams,Washington,53001,102,0 +2020-06-22,Adams,Washington,53001,108,0 +2020-06-23,Adams,Washington,53001,109,0 +2020-06-24,Adams,Washington,53001,109,0 +2020-06-25,Adams,Washington,53001,110,0 +2020-06-26,Adams,Washington,53001,112,0 +2020-06-27,Adams,Washington,53001,113,0 +2020-06-28,Adams,Washington,53001,130,0 +2020-06-29,Adams,Washington,53001,130,0 +2020-06-30,Adams,Washington,53001,134,0 +2020-07-01,Adams,Washington,53001,142,0 +2020-07-02,Adams,Washington,53001,146,0 +2020-07-03,Adams,Washington,53001,147,0 +2020-07-04,Adams,Washington,53001,150,0 +2020-07-05,Adams,Washington,53001,166,0 +2020-07-06,Adams,Washington,53001,196,0 +2020-07-07,Adams,Washington,53001,203,0 +2020-07-08,Adams,Washington,53001,199,0 +2020-07-09,Adams,Washington,53001,218,0 +2020-04-03,Asotin,Washington,53003,1,0 +2020-04-04,Asotin,Washington,53003,2,0 +2020-04-05,Asotin,Washington,53003,3,0 +2020-04-06,Asotin,Washington,53003,4,0 +2020-04-07,Asotin,Washington,53003,4,0 +2020-04-08,Asotin,Washington,53003,4,0 +2020-04-09,Asotin,Washington,53003,4,0 +2020-04-10,Asotin,Washington,53003,4,0 +2020-04-11,Asotin,Washington,53003,5,0 +2020-04-12,Asotin,Washington,53003,5,0 +2020-04-13,Asotin,Washington,53003,6,0 +2020-04-14,Asotin,Washington,53003,6,0 +2020-04-15,Asotin,Washington,53003,8,0 +2020-04-16,Asotin,Washington,53003,10,0 +2020-04-17,Asotin,Washington,53003,11,0 +2020-04-18,Asotin,Washington,53003,12,0 +2020-04-19,Asotin,Washington,53003,12,0 +2020-04-20,Asotin,Washington,53003,13,1 +2020-04-21,Asotin,Washington,53003,14,1 +2020-04-22,Asotin,Washington,53003,14,1 +2020-04-23,Asotin,Washington,53003,16,1 +2020-04-24,Asotin,Washington,53003,16,1 +2020-04-25,Asotin,Washington,53003,17,1 +2020-04-26,Asotin,Washington,53003,17,1 +2020-04-27,Asotin,Washington,53003,17,1 +2020-04-28,Asotin,Washington,53003,17,2 +2020-04-29,Asotin,Washington,53003,17,2 +2020-04-30,Asotin,Washington,53003,18,2 +2020-05-01,Asotin,Washington,53003,18,2 +2020-05-02,Asotin,Washington,53003,18,2 +2020-05-03,Asotin,Washington,53003,18,2 +2020-05-04,Asotin,Washington,53003,18,2 +2020-05-05,Asotin,Washington,53003,18,2 +2020-05-06,Asotin,Washington,53003,18,2 +2020-05-07,Asotin,Washington,53003,18,2 +2020-05-08,Asotin,Washington,53003,18,2 +2020-05-09,Asotin,Washington,53003,18,2 +2020-05-10,Asotin,Washington,53003,18,2 +2020-05-11,Asotin,Washington,53003,18,2 +2020-05-12,Asotin,Washington,53003,18,2 +2020-05-13,Asotin,Washington,53003,18,2 +2020-05-14,Asotin,Washington,53003,18,2 +2020-05-15,Asotin,Washington,53003,18,2 +2020-05-16,Asotin,Washington,53003,18,2 +2020-05-17,Asotin,Washington,53003,18,2 +2020-05-18,Asotin,Washington,53003,18,2 +2020-05-19,Asotin,Washington,53003,18,2 +2020-05-20,Asotin,Washington,53003,18,2 +2020-05-21,Asotin,Washington,53003,18,2 +2020-05-22,Asotin,Washington,53003,18,2 +2020-05-23,Asotin,Washington,53003,18,2 +2020-05-24,Asotin,Washington,53003,18,2 +2020-05-25,Asotin,Washington,53003,18,2 +2020-05-26,Asotin,Washington,53003,19,2 +2020-05-27,Asotin,Washington,53003,19,2 +2020-05-28,Asotin,Washington,53003,19,2 +2020-05-29,Asotin,Washington,53003,19,2 +2020-05-30,Asotin,Washington,53003,19,2 +2020-05-31,Asotin,Washington,53003,19,2 +2020-06-01,Asotin,Washington,53003,19,2 +2020-06-02,Asotin,Washington,53003,19,2 +2020-06-03,Asotin,Washington,53003,19,2 +2020-06-04,Asotin,Washington,53003,19,2 +2020-06-05,Asotin,Washington,53003,19,2 +2020-06-06,Asotin,Washington,53003,19,2 +2020-06-07,Asotin,Washington,53003,19,2 +2020-06-08,Asotin,Washington,53003,19,2 +2020-06-09,Asotin,Washington,53003,19,2 +2020-06-10,Asotin,Washington,53003,20,2 +2020-06-11,Asotin,Washington,53003,20,2 +2020-06-12,Asotin,Washington,53003,20,2 +2020-06-13,Asotin,Washington,53003,20,2 +2020-06-14,Asotin,Washington,53003,20,2 +2020-06-15,Asotin,Washington,53003,20,2 +2020-06-16,Asotin,Washington,53003,20,2 +2020-06-17,Asotin,Washington,53003,20,2 +2020-06-18,Asotin,Washington,53003,20,2 +2020-06-19,Asotin,Washington,53003,20,2 +2020-06-20,Asotin,Washington,53003,20,2 +2020-06-21,Asotin,Washington,53003,20,2 +2020-06-22,Asotin,Washington,53003,20,2 +2020-06-23,Asotin,Washington,53003,20,2 +2020-06-24,Asotin,Washington,53003,20,2 +2020-06-25,Asotin,Washington,53003,20,2 +2020-06-26,Asotin,Washington,53003,20,2 +2020-06-27,Asotin,Washington,53003,20,2 +2020-06-28,Asotin,Washington,53003,21,2 +2020-06-29,Asotin,Washington,53003,21,2 +2020-06-30,Asotin,Washington,53003,21,2 +2020-07-01,Asotin,Washington,53003,21,2 +2020-07-02,Asotin,Washington,53003,21,2 +2020-07-03,Asotin,Washington,53003,21,2 +2020-07-04,Asotin,Washington,53003,21,2 +2020-07-05,Asotin,Washington,53003,21,2 +2020-07-06,Asotin,Washington,53003,21,2 +2020-07-07,Asotin,Washington,53003,21,2 +2020-07-08,Asotin,Washington,53003,21,2 +2020-07-09,Asotin,Washington,53003,21,2 +2020-03-18,Benton,Washington,53005,1,1 +2020-03-19,Benton,Washington,53005,2,1 +2020-03-20,Benton,Washington,53005,3,1 +2020-03-21,Benton,Washington,53005,8,2 +2020-03-22,Benton,Washington,53005,8,2 +2020-03-23,Benton,Washington,53005,8,2 +2020-03-24,Benton,Washington,53005,12,2 +2020-03-25,Benton,Washington,53005,10,2 +2020-03-26,Benton,Washington,53005,19,4 +2020-03-27,Benton,Washington,53005,42,5 +2020-03-28,Benton,Washington,53005,56,5 +2020-03-29,Benton,Washington,53005,101,5 +2020-03-30,Benton,Washington,53005,101,5 +2020-03-31,Benton,Washington,53005,101,6 +2020-04-01,Benton,Washington,53005,108,6 +2020-04-02,Benton,Washington,53005,133,9 +2020-04-03,Benton,Washington,53005,136,13 +2020-04-04,Benton,Washington,53005,151,13 +2020-04-05,Benton,Washington,53005,166,13 +2020-04-06,Benton,Washington,53005,175,17 +2020-04-07,Benton,Washington,53005,179,19 +2020-04-08,Benton,Washington,53005,190,19 +2020-04-09,Benton,Washington,53005,215,25 +2020-04-10,Benton,Washington,53005,234,25 +2020-04-11,Benton,Washington,53005,246,26 +2020-04-12,Benton,Washington,53005,250,28 +2020-04-13,Benton,Washington,53005,261,29 +2020-04-14,Benton,Washington,53005,266,29 +2020-04-15,Benton,Washington,53005,273,30 +2020-04-16,Benton,Washington,53005,284,34 +2020-04-17,Benton,Washington,53005,295,34 +2020-04-18,Benton,Washington,53005,306,34 +2020-04-19,Benton,Washington,53005,314,34 +2020-04-20,Benton,Washington,53005,334,34 +2020-04-21,Benton,Washington,53005,338,35 +2020-04-22,Benton,Washington,53005,348,35 +2020-04-23,Benton,Washington,53005,365,38 +2020-04-24,Benton,Washington,53005,383,38 +2020-04-25,Benton,Washington,53005,399,38 +2020-04-26,Benton,Washington,53005,405,38 +2020-04-27,Benton,Washington,53005,409,39 +2020-04-28,Benton,Washington,53005,415,39 +2020-04-29,Benton,Washington,53005,418,41 +2020-04-30,Benton,Washington,53005,430,41 +2020-05-01,Benton,Washington,53005,461,44 +2020-05-02,Benton,Washington,53005,494,43 +2020-05-03,Benton,Washington,53005,518,44 +2020-05-04,Benton,Washington,53005,532,44 +2020-05-05,Benton,Washington,53005,537,46 +2020-05-06,Benton,Washington,53005,660,50 +2020-05-07,Benton,Washington,53005,665,51 +2020-05-08,Benton,Washington,53005,675,51 +2020-05-09,Benton,Washington,53005,695,51 +2020-05-10,Benton,Washington,53005,705,51 +2020-05-11,Benton,Washington,53005,719,54 +2020-05-12,Benton,Washington,53005,723,55 +2020-05-13,Benton,Washington,53005,732,55 +2020-05-14,Benton,Washington,53005,752,56 +2020-05-15,Benton,Washington,53005,760,57 +2020-05-16,Benton,Washington,53005,773,57 +2020-05-17,Benton,Washington,53005,775,57 +2020-05-18,Benton,Washington,53005,791,58 +2020-05-19,Benton,Washington,53005,801,58 +2020-05-20,Benton,Washington,53005,808,60 +2020-05-21,Benton,Washington,53005,811,60 +2020-05-22,Benton,Washington,53005,826,61 +2020-05-23,Benton,Washington,53005,826,61 +2020-05-24,Benton,Washington,53005,825,61 +2020-05-25,Benton,Washington,53005,868,61 +2020-05-26,Benton,Washington,53005,890,61 +2020-05-27,Benton,Washington,53005,899,64 +2020-05-28,Benton,Washington,53005,910,65 +2020-05-29,Benton,Washington,53005,925,65 +2020-05-30,Benton,Washington,53005,944,65 +2020-05-31,Benton,Washington,53005,962,65 +2020-06-01,Benton,Washington,53005,980,67 +2020-06-02,Benton,Washington,53005,999,67 +2020-06-03,Benton,Washington,53005,1017,67 +2020-06-04,Benton,Washington,53005,1029,67 +2020-06-05,Benton,Washington,53005,1065,69 +2020-06-06,Benton,Washington,53005,1076,69 +2020-06-07,Benton,Washington,53005,1100,69 +2020-06-08,Benton,Washington,53005,1153,69 +2020-06-09,Benton,Washington,53005,1165,69 +2020-06-10,Benton,Washington,53005,1185,71 +2020-06-11,Benton,Washington,53005,1221,71 +2020-06-12,Benton,Washington,53005,1263,72 +2020-06-13,Benton,Washington,53005,1263,73 +2020-06-14,Benton,Washington,53005,1263,73 +2020-06-15,Benton,Washington,53005,1341,73 +2020-06-16,Benton,Washington,53005,1389,74 +2020-06-17,Benton,Washington,53005,1407,74 +2020-06-18,Benton,Washington,53005,1438,75 +2020-06-19,Benton,Washington,53005,1495,75 +2020-06-20,Benton,Washington,53005,1495,76 +2020-06-21,Benton,Washington,53005,1495,76 +2020-06-22,Benton,Washington,53005,1608,76 +2020-06-23,Benton,Washington,53005,1634,76 +2020-06-24,Benton,Washington,53005,1692,76 +2020-06-25,Benton,Washington,53005,1725,76 +2020-06-26,Benton,Washington,53005,1756,75 +2020-06-27,Benton,Washington,53005,1827,75 +2020-06-28,Benton,Washington,53005,1856,75 +2020-06-29,Benton,Washington,53005,1889,79 +2020-06-30,Benton,Washington,53005,1904,82 +2020-07-01,Benton,Washington,53005,2051,82 +2020-07-02,Benton,Washington,53005,2026,82 +2020-07-03,Benton,Washington,53005,2059,84 +2020-07-04,Benton,Washington,53005,2085,85 +2020-07-05,Benton,Washington,53005,2126,85 +2020-07-06,Benton,Washington,53005,2207,85 +2020-07-07,Benton,Washington,53005,2263,88 +2020-07-08,Benton,Washington,53005,2294,88 +2020-07-09,Benton,Washington,53005,2353,90 +2020-03-04,Chelan,Washington,53007,1,0 +2020-03-05,Chelan,Washington,53007,1,0 +2020-03-06,Chelan,Washington,53007,1,0 +2020-03-07,Chelan,Washington,53007,1,0 +2020-03-08,Chelan,Washington,53007,1,1 +2020-03-09,Chelan,Washington,53007,1,1 +2020-03-10,Chelan,Washington,53007,1,1 +2020-03-11,Chelan,Washington,53007,1,1 +2020-03-12,Chelan,Washington,53007,1,1 +2020-03-13,Chelan,Washington,53007,1,1 +2020-03-14,Chelan,Washington,53007,1,1 +2020-03-15,Chelan,Washington,53007,1,1 +2020-03-16,Chelan,Washington,53007,1,1 +2020-03-17,Chelan,Washington,53007,3,1 +2020-03-18,Chelan,Washington,53007,3,1 +2020-03-19,Chelan,Washington,53007,3,1 +2020-03-20,Chelan,Washington,53007,3,1 +2020-03-21,Chelan,Washington,53007,3,1 +2020-03-22,Chelan,Washington,53007,3,1 +2020-03-23,Chelan,Washington,53007,6,1 +2020-03-24,Chelan,Washington,53007,6,1 +2020-03-25,Chelan,Washington,53007,11,1 +2020-03-26,Chelan,Washington,53007,11,1 +2020-03-27,Chelan,Washington,53007,14,2 +2020-03-28,Chelan,Washington,53007,14,2 +2020-03-29,Chelan,Washington,53007,15,2 +2020-03-30,Chelan,Washington,53007,15,2 +2020-03-31,Chelan,Washington,53007,15,2 +2020-04-01,Chelan,Washington,53007,15,2 +2020-04-02,Chelan,Washington,53007,19,3 +2020-04-03,Chelan,Washington,53007,20,3 +2020-04-04,Chelan,Washington,53007,23,3 +2020-04-05,Chelan,Washington,53007,29,3 +2020-04-06,Chelan,Washington,53007,34,3 +2020-04-07,Chelan,Washington,53007,34,3 +2020-04-08,Chelan,Washington,53007,35,3 +2020-04-09,Chelan,Washington,53007,43,3 +2020-04-10,Chelan,Washington,53007,45,3 +2020-04-11,Chelan,Washington,53007,54,6 +2020-04-12,Chelan,Washington,53007,55,6 +2020-04-13,Chelan,Washington,53007,60,6 +2020-04-14,Chelan,Washington,53007,62,6 +2020-04-15,Chelan,Washington,53007,62,6 +2020-04-16,Chelan,Washington,53007,63,6 +2020-04-17,Chelan,Washington,53007,67,6 +2020-04-18,Chelan,Washington,53007,68,6 +2020-04-19,Chelan,Washington,53007,72,6 +2020-04-20,Chelan,Washington,53007,78,6 +2020-04-21,Chelan,Washington,53007,79,6 +2020-04-22,Chelan,Washington,53007,88,6 +2020-04-23,Chelan,Washington,53007,92,6 +2020-04-24,Chelan,Washington,53007,92,6 +2020-04-25,Chelan,Washington,53007,93,6 +2020-04-26,Chelan,Washington,53007,94,6 +2020-04-27,Chelan,Washington,53007,97,6 +2020-04-28,Chelan,Washington,53007,100,6 +2020-04-29,Chelan,Washington,53007,102,6 +2020-04-30,Chelan,Washington,53007,111,6 +2020-05-01,Chelan,Washington,53007,114,6 +2020-05-02,Chelan,Washington,53007,117,6 +2020-05-03,Chelan,Washington,53007,123,6 +2020-05-04,Chelan,Washington,53007,123,6 +2020-05-05,Chelan,Washington,53007,128,6 +2020-05-06,Chelan,Washington,53007,138,6 +2020-05-07,Chelan,Washington,53007,142,6 +2020-05-08,Chelan,Washington,53007,143,6 +2020-05-09,Chelan,Washington,53007,146,6 +2020-05-10,Chelan,Washington,53007,152,6 +2020-05-11,Chelan,Washington,53007,153,6 +2020-05-12,Chelan,Washington,53007,154,7 +2020-05-13,Chelan,Washington,53007,165,7 +2020-05-14,Chelan,Washington,53007,169,7 +2020-05-15,Chelan,Washington,53007,177,7 +2020-05-16,Chelan,Washington,53007,178,7 +2020-05-17,Chelan,Washington,53007,181,7 +2020-05-18,Chelan,Washington,53007,183,7 +2020-05-19,Chelan,Washington,53007,187,7 +2020-05-20,Chelan,Washington,53007,187,7 +2020-05-21,Chelan,Washington,53007,203,7 +2020-05-22,Chelan,Washington,53007,209,7 +2020-05-23,Chelan,Washington,53007,222,7 +2020-05-24,Chelan,Washington,53007,234,7 +2020-05-25,Chelan,Washington,53007,237,7 +2020-05-26,Chelan,Washington,53007,239,7 +2020-05-27,Chelan,Washington,53007,244,7 +2020-05-28,Chelan,Washington,53007,246,7 +2020-05-29,Chelan,Washington,53007,252,7 +2020-05-30,Chelan,Washington,53007,254,7 +2020-05-31,Chelan,Washington,53007,256,7 +2020-06-01,Chelan,Washington,53007,256,7 +2020-06-02,Chelan,Washington,53007,258,7 +2020-06-03,Chelan,Washington,53007,261,7 +2020-06-04,Chelan,Washington,53007,261,7 +2020-06-05,Chelan,Washington,53007,265,7 +2020-06-06,Chelan,Washington,53007,265,7 +2020-06-07,Chelan,Washington,53007,265,7 +2020-06-08,Chelan,Washington,53007,266,7 +2020-06-09,Chelan,Washington,53007,268,7 +2020-06-10,Chelan,Washington,53007,272,7 +2020-06-11,Chelan,Washington,53007,272,7 +2020-06-12,Chelan,Washington,53007,275,7 +2020-06-13,Chelan,Washington,53007,275,7 +2020-06-14,Chelan,Washington,53007,275,7 +2020-06-15,Chelan,Washington,53007,276,7 +2020-06-16,Chelan,Washington,53007,277,7 +2020-06-17,Chelan,Washington,53007,279,7 +2020-06-18,Chelan,Washington,53007,282,7 +2020-06-19,Chelan,Washington,53007,284,7 +2020-06-20,Chelan,Washington,53007,284,7 +2020-06-21,Chelan,Washington,53007,286,7 +2020-06-22,Chelan,Washington,53007,287,7 +2020-06-23,Chelan,Washington,53007,294,7 +2020-06-24,Chelan,Washington,53007,297,7 +2020-06-25,Chelan,Washington,53007,299,7 +2020-06-26,Chelan,Washington,53007,308,7 +2020-06-27,Chelan,Washington,53007,315,7 +2020-06-28,Chelan,Washington,53007,316,7 +2020-06-29,Chelan,Washington,53007,326,7 +2020-06-30,Chelan,Washington,53007,336,7 +2020-07-01,Chelan,Washington,53007,348,7 +2020-07-02,Chelan,Washington,53007,376,7 +2020-07-03,Chelan,Washington,53007,389,7 +2020-07-04,Chelan,Washington,53007,393,7 +2020-07-05,Chelan,Washington,53007,404,7 +2020-07-06,Chelan,Washington,53007,437,7 +2020-07-07,Chelan,Washington,53007,444,7 +2020-07-08,Chelan,Washington,53007,483,7 +2020-07-09,Chelan,Washington,53007,493,7 +2020-03-19,Clallam,Washington,53009,1,0 +2020-03-20,Clallam,Washington,53009,1,0 +2020-03-21,Clallam,Washington,53009,2,0 +2020-03-22,Clallam,Washington,53009,4,0 +2020-03-23,Clallam,Washington,53009,4,0 +2020-03-24,Clallam,Washington,53009,4,0 +2020-03-25,Clallam,Washington,53009,4,0 +2020-03-26,Clallam,Washington,53009,5,0 +2020-03-27,Clallam,Washington,53009,5,0 +2020-03-28,Clallam,Washington,53009,5,0 +2020-03-29,Clallam,Washington,53009,6,0 +2020-03-30,Clallam,Washington,53009,6,0 +2020-03-31,Clallam,Washington,53009,6,0 +2020-04-01,Clallam,Washington,53009,8,0 +2020-04-02,Clallam,Washington,53009,8,0 +2020-04-03,Clallam,Washington,53009,8,0 +2020-04-04,Clallam,Washington,53009,8,0 +2020-04-05,Clallam,Washington,53009,8,0 +2020-04-06,Clallam,Washington,53009,8,0 +2020-04-07,Clallam,Washington,53009,9,0 +2020-04-08,Clallam,Washington,53009,10,0 +2020-04-09,Clallam,Washington,53009,11,0 +2020-04-10,Clallam,Washington,53009,11,0 +2020-04-11,Clallam,Washington,53009,12,0 +2020-04-12,Clallam,Washington,53009,12,0 +2020-04-13,Clallam,Washington,53009,12,0 +2020-04-14,Clallam,Washington,53009,12,0 +2020-04-15,Clallam,Washington,53009,14,0 +2020-04-16,Clallam,Washington,53009,15,0 +2020-04-17,Clallam,Washington,53009,14,0 +2020-04-18,Clallam,Washington,53009,14,0 +2020-04-19,Clallam,Washington,53009,14,0 +2020-04-20,Clallam,Washington,53009,14,0 +2020-04-21,Clallam,Washington,53009,14,0 +2020-04-22,Clallam,Washington,53009,14,0 +2020-04-23,Clallam,Washington,53009,14,0 +2020-04-24,Clallam,Washington,53009,14,0 +2020-04-25,Clallam,Washington,53009,15,0 +2020-04-26,Clallam,Washington,53009,15,0 +2020-04-27,Clallam,Washington,53009,15,0 +2020-04-28,Clallam,Washington,53009,17,0 +2020-04-29,Clallam,Washington,53009,18,0 +2020-04-30,Clallam,Washington,53009,18,0 +2020-05-01,Clallam,Washington,53009,18,0 +2020-05-02,Clallam,Washington,53009,18,0 +2020-05-03,Clallam,Washington,53009,19,0 +2020-05-04,Clallam,Washington,53009,18,0 +2020-05-05,Clallam,Washington,53009,19,0 +2020-05-06,Clallam,Washington,53009,19,0 +2020-05-07,Clallam,Washington,53009,19,0 +2020-05-08,Clallam,Washington,53009,19,0 +2020-05-09,Clallam,Washington,53009,19,0 +2020-05-10,Clallam,Washington,53009,19,0 +2020-05-11,Clallam,Washington,53009,19,0 +2020-05-12,Clallam,Washington,53009,19,0 +2020-05-13,Clallam,Washington,53009,19,0 +2020-05-14,Clallam,Washington,53009,19,0 +2020-05-15,Clallam,Washington,53009,21,0 +2020-05-16,Clallam,Washington,53009,21,0 +2020-05-17,Clallam,Washington,53009,21,0 +2020-05-18,Clallam,Washington,53009,21,0 +2020-05-19,Clallam,Washington,53009,21,0 +2020-05-20,Clallam,Washington,53009,21,0 +2020-05-21,Clallam,Washington,53009,21,0 +2020-05-22,Clallam,Washington,53009,25,0 +2020-05-23,Clallam,Washington,53009,25,0 +2020-05-24,Clallam,Washington,53009,25,0 +2020-05-25,Clallam,Washington,53009,25,0 +2020-05-26,Clallam,Washington,53009,25,0 +2020-05-27,Clallam,Washington,53009,25,0 +2020-05-28,Clallam,Washington,53009,25,0 +2020-05-29,Clallam,Washington,53009,25,0 +2020-05-30,Clallam,Washington,53009,25,0 +2020-05-31,Clallam,Washington,53009,25,0 +2020-06-01,Clallam,Washington,53009,25,0 +2020-06-02,Clallam,Washington,53009,25,0 +2020-06-03,Clallam,Washington,53009,27,0 +2020-06-04,Clallam,Washington,53009,27,0 +2020-06-05,Clallam,Washington,53009,27,0 +2020-06-06,Clallam,Washington,53009,27,0 +2020-06-07,Clallam,Washington,53009,27,0 +2020-06-08,Clallam,Washington,53009,27,0 +2020-06-09,Clallam,Washington,53009,27,0 +2020-06-10,Clallam,Washington,53009,29,0 +2020-06-11,Clallam,Washington,53009,29,0 +2020-06-12,Clallam,Washington,53009,29,0 +2020-06-13,Clallam,Washington,53009,29,0 +2020-06-14,Clallam,Washington,53009,29,0 +2020-06-15,Clallam,Washington,53009,29,0 +2020-06-16,Clallam,Washington,53009,29,0 +2020-06-17,Clallam,Washington,53009,32,0 +2020-06-18,Clallam,Washington,53009,32,0 +2020-06-19,Clallam,Washington,53009,33,0 +2020-06-20,Clallam,Washington,53009,33,0 +2020-06-21,Clallam,Washington,53009,33,0 +2020-06-22,Clallam,Washington,53009,33,0 +2020-06-23,Clallam,Washington,53009,33,0 +2020-06-24,Clallam,Washington,53009,33,0 +2020-06-25,Clallam,Washington,53009,33,0 +2020-06-26,Clallam,Washington,53009,34,0 +2020-06-27,Clallam,Washington,53009,35,0 +2020-06-28,Clallam,Washington,53009,36,0 +2020-06-29,Clallam,Washington,53009,36,0 +2020-06-30,Clallam,Washington,53009,36,0 +2020-07-01,Clallam,Washington,53009,36,0 +2020-07-02,Clallam,Washington,53009,41,0 +2020-07-03,Clallam,Washington,53009,42,0 +2020-07-04,Clallam,Washington,53009,42,0 +2020-07-05,Clallam,Washington,53009,43,0 +2020-07-06,Clallam,Washington,53009,45,0 +2020-07-07,Clallam,Washington,53009,46,0 +2020-07-08,Clallam,Washington,53009,46,0 +2020-07-09,Clallam,Washington,53009,47,0 +2020-03-06,Clark,Washington,53011,1,0 +2020-03-07,Clark,Washington,53011,1,0 +2020-03-08,Clark,Washington,53011,1,0 +2020-03-09,Clark,Washington,53011,1,0 +2020-03-10,Clark,Washington,53011,1,0 +2020-03-11,Clark,Washington,53011,1,0 +2020-03-12,Clark,Washington,53011,1,0 +2020-03-13,Clark,Washington,53011,3,0 +2020-03-14,Clark,Washington,53011,3,0 +2020-03-15,Clark,Washington,53011,3,0 +2020-03-16,Clark,Washington,53011,4,0 +2020-03-17,Clark,Washington,53011,4,2 +2020-03-18,Clark,Washington,53011,4,3 +2020-03-19,Clark,Washington,53011,4,3 +2020-03-20,Clark,Washington,53011,6,3 +2020-03-21,Clark,Washington,53011,9,3 +2020-03-22,Clark,Washington,53011,10,3 +2020-03-23,Clark,Washington,53011,13,4 +2020-03-24,Clark,Washington,53011,16,4 +2020-03-25,Clark,Washington,53011,16,4 +2020-03-26,Clark,Washington,53011,48,5 +2020-03-27,Clark,Washington,53011,76,6 +2020-03-28,Clark,Washington,53011,82,6 +2020-03-29,Clark,Washington,53011,90,6 +2020-03-30,Clark,Washington,53011,110,6 +2020-03-31,Clark,Washington,53011,116,6 +2020-04-01,Clark,Washington,53011,130,6 +2020-04-02,Clark,Washington,53011,131,8 +2020-04-03,Clark,Washington,53011,137,8 +2020-04-04,Clark,Washington,53011,137,8 +2020-04-05,Clark,Washington,53011,145,8 +2020-04-06,Clark,Washington,53011,168,11 +2020-04-07,Clark,Washington,53011,185,13 +2020-04-08,Clark,Washington,53011,190,13 +2020-04-09,Clark,Washington,53011,194,13 +2020-04-10,Clark,Washington,53011,220,14 +2020-04-11,Clark,Washington,53011,220,14 +2020-04-12,Clark,Washington,53011,220,14 +2020-04-13,Clark,Washington,53011,239,15 +2020-04-14,Clark,Washington,53011,250,15 +2020-04-15,Clark,Washington,53011,258,15 +2020-04-16,Clark,Washington,53011,265,15 +2020-04-17,Clark,Washington,53011,277,16 +2020-04-18,Clark,Washington,53011,277,16 +2020-04-19,Clark,Washington,53011,277,16 +2020-04-20,Clark,Washington,53011,296,16 +2020-04-21,Clark,Washington,53011,306,16 +2020-04-22,Clark,Washington,53011,313,16 +2020-04-23,Clark,Washington,53011,321,17 +2020-04-24,Clark,Washington,53011,321,17 +2020-04-25,Clark,Washington,53011,327,19 +2020-04-26,Clark,Washington,53011,327,19 +2020-04-27,Clark,Washington,53011,339,21 +2020-04-28,Clark,Washington,53011,343,21 +2020-04-29,Clark,Washington,53011,351,21 +2020-04-30,Clark,Washington,53011,359,21 +2020-05-01,Clark,Washington,53011,361,21 +2020-05-02,Clark,Washington,53011,361,21 +2020-05-03,Clark,Washington,53011,361,21 +2020-05-04,Clark,Washington,53011,367,21 +2020-05-05,Clark,Washington,53011,368,22 +2020-05-06,Clark,Washington,53011,372,23 +2020-05-07,Clark,Washington,53011,375,23 +2020-05-08,Clark,Washington,53011,375,23 +2020-05-09,Clark,Washington,53011,375,23 +2020-05-10,Clark,Washington,53011,375,23 +2020-05-11,Clark,Washington,53011,386,24 +2020-05-12,Clark,Washington,53011,393,24 +2020-05-13,Clark,Washington,53011,395,24 +2020-05-14,Clark,Washington,53011,399,24 +2020-05-15,Clark,Washington,53011,401,25 +2020-05-16,Clark,Washington,53011,401,25 +2020-05-17,Clark,Washington,53011,401,25 +2020-05-18,Clark,Washington,53011,406,25 +2020-05-19,Clark,Washington,53011,412,25 +2020-05-20,Clark,Washington,53011,415,25 +2020-05-21,Clark,Washington,53011,419,25 +2020-05-22,Clark,Washington,53011,427,25 +2020-05-23,Clark,Washington,53011,427,25 +2020-05-24,Clark,Washington,53011,427,25 +2020-05-25,Clark,Washington,53011,427,25 +2020-05-26,Clark,Washington,53011,510,25 +2020-05-27,Clark,Washington,53011,533,25 +2020-05-28,Clark,Washington,53011,548,25 +2020-05-29,Clark,Washington,53011,551,25 +2020-05-30,Clark,Washington,53011,551,25 +2020-05-31,Clark,Washington,53011,551,25 +2020-06-01,Clark,Washington,53011,558,25 +2020-06-02,Clark,Washington,53011,560,25 +2020-06-03,Clark,Washington,53011,566,25 +2020-06-04,Clark,Washington,53011,569,25 +2020-06-05,Clark,Washington,53011,571,27 +2020-06-06,Clark,Washington,53011,571,27 +2020-06-07,Clark,Washington,53011,571,27 +2020-06-08,Clark,Washington,53011,603,28 +2020-06-09,Clark,Washington,53011,605,28 +2020-06-10,Clark,Washington,53011,607,28 +2020-06-11,Clark,Washington,53011,622,28 +2020-06-12,Clark,Washington,53011,630,28 +2020-06-13,Clark,Washington,53011,630,28 +2020-06-14,Clark,Washington,53011,630,28 +2020-06-15,Clark,Washington,53011,647,28 +2020-06-16,Clark,Washington,53011,656,28 +2020-06-17,Clark,Washington,53011,659,28 +2020-06-18,Clark,Washington,53011,671,28 +2020-06-19,Clark,Washington,53011,685,29 +2020-06-20,Clark,Washington,53011,685,29 +2020-06-21,Clark,Washington,53011,685,30 +2020-06-22,Clark,Washington,53011,703,30 +2020-06-23,Clark,Washington,53011,719,30 +2020-06-24,Clark,Washington,53011,732,30 +2020-06-25,Clark,Washington,53011,741,30 +2020-06-26,Clark,Washington,53011,758,30 +2020-06-27,Clark,Washington,53011,758,30 +2020-06-28,Clark,Washington,53011,758,30 +2020-06-29,Clark,Washington,53011,826,30 +2020-06-30,Clark,Washington,53011,843,30 +2020-07-01,Clark,Washington,53011,883,30 +2020-07-02,Clark,Washington,53011,901,30 +2020-07-03,Clark,Washington,53011,901,30 +2020-07-04,Clark,Washington,53011,920,30 +2020-07-05,Clark,Washington,53011,922,30 +2020-07-06,Clark,Washington,53011,1008,30 +2020-07-07,Clark,Washington,53011,1053,30 +2020-07-08,Clark,Washington,53011,1090,30 +2020-07-09,Clark,Washington,53011,1128,31 +2020-03-12,Columbia,Washington,53013,1,0 +2020-03-13,Columbia,Washington,53013,1,0 +2020-03-14,Columbia,Washington,53013,1,0 +2020-03-15,Columbia,Washington,53013,1,0 +2020-03-16,Columbia,Washington,53013,1,0 +2020-03-17,Columbia,Washington,53013,1,0 +2020-03-18,Columbia,Washington,53013,1,0 +2020-03-19,Columbia,Washington,53013,1,0 +2020-03-20,Columbia,Washington,53013,1,0 +2020-03-21,Columbia,Washington,53013,1,0 +2020-03-22,Columbia,Washington,53013,1,0 +2020-03-23,Columbia,Washington,53013,1,0 +2020-03-24,Columbia,Washington,53013,1,0 +2020-03-25,Columbia,Washington,53013,1,0 +2020-03-26,Columbia,Washington,53013,1,0 +2020-03-27,Columbia,Washington,53013,1,0 +2020-03-28,Columbia,Washington,53013,1,0 +2020-03-29,Columbia,Washington,53013,1,0 +2020-03-30,Columbia,Washington,53013,1,0 +2020-03-31,Columbia,Washington,53013,1,0 +2020-04-01,Columbia,Washington,53013,1,0 +2020-04-02,Columbia,Washington,53013,1,0 +2020-04-03,Columbia,Washington,53013,1,0 +2020-04-04,Columbia,Washington,53013,1,0 +2020-04-05,Columbia,Washington,53013,1,0 +2020-04-06,Columbia,Washington,53013,1,0 +2020-04-07,Columbia,Washington,53013,1,0 +2020-04-08,Columbia,Washington,53013,1,0 +2020-04-09,Columbia,Washington,53013,1,0 +2020-04-10,Columbia,Washington,53013,1,0 +2020-04-11,Columbia,Washington,53013,1,0 +2020-04-12,Columbia,Washington,53013,1,0 +2020-04-13,Columbia,Washington,53013,1,0 +2020-04-14,Columbia,Washington,53013,1,0 +2020-04-15,Columbia,Washington,53013,1,0 +2020-04-16,Columbia,Washington,53013,1,0 +2020-04-17,Columbia,Washington,53013,1,0 +2020-04-18,Columbia,Washington,53013,1,0 +2020-04-19,Columbia,Washington,53013,1,0 +2020-04-20,Columbia,Washington,53013,1,0 +2020-04-21,Columbia,Washington,53013,1,0 +2020-04-22,Columbia,Washington,53013,1,0 +2020-04-23,Columbia,Washington,53013,1,0 +2020-04-24,Columbia,Washington,53013,1,0 +2020-04-25,Columbia,Washington,53013,1,0 +2020-04-26,Columbia,Washington,53013,1,0 +2020-04-27,Columbia,Washington,53013,1,0 +2020-04-28,Columbia,Washington,53013,1,0 +2020-04-29,Columbia,Washington,53013,1,0 +2020-04-30,Columbia,Washington,53013,1,0 +2020-05-01,Columbia,Washington,53013,1,0 +2020-05-02,Columbia,Washington,53013,1,0 +2020-05-03,Columbia,Washington,53013,1,0 +2020-05-04,Columbia,Washington,53013,1,0 +2020-05-05,Columbia,Washington,53013,1,0 +2020-05-06,Columbia,Washington,53013,1,0 +2020-05-07,Columbia,Washington,53013,1,0 +2020-05-08,Columbia,Washington,53013,1,0 +2020-05-09,Columbia,Washington,53013,1,0 +2020-05-10,Columbia,Washington,53013,1,0 +2020-05-11,Columbia,Washington,53013,1,0 +2020-05-12,Columbia,Washington,53013,1,0 +2020-05-13,Columbia,Washington,53013,1,0 +2020-05-14,Columbia,Washington,53013,1,0 +2020-05-15,Columbia,Washington,53013,1,0 +2020-05-16,Columbia,Washington,53013,1,0 +2020-05-17,Columbia,Washington,53013,1,0 +2020-05-18,Columbia,Washington,53013,1,0 +2020-05-19,Columbia,Washington,53013,1,0 +2020-05-20,Columbia,Washington,53013,1,0 +2020-05-21,Columbia,Washington,53013,1,0 +2020-05-22,Columbia,Washington,53013,1,0 +2020-05-23,Columbia,Washington,53013,1,0 +2020-05-24,Columbia,Washington,53013,1,0 +2020-05-25,Columbia,Washington,53013,1,0 +2020-05-26,Columbia,Washington,53013,1,0 +2020-05-27,Columbia,Washington,53013,1,0 +2020-05-28,Columbia,Washington,53013,1,0 +2020-05-29,Columbia,Washington,53013,1,0 +2020-05-30,Columbia,Washington,53013,1,0 +2020-05-31,Columbia,Washington,53013,1,0 +2020-06-01,Columbia,Washington,53013,1,0 +2020-06-02,Columbia,Washington,53013,1,0 +2020-06-03,Columbia,Washington,53013,1,0 +2020-06-04,Columbia,Washington,53013,1,0 +2020-06-05,Columbia,Washington,53013,1,0 +2020-06-06,Columbia,Washington,53013,1,0 +2020-06-07,Columbia,Washington,53013,1,0 +2020-06-08,Columbia,Washington,53013,1,0 +2020-06-09,Columbia,Washington,53013,1,0 +2020-06-10,Columbia,Washington,53013,1,0 +2020-06-11,Columbia,Washington,53013,1,0 +2020-06-12,Columbia,Washington,53013,1,0 +2020-06-13,Columbia,Washington,53013,1,0 +2020-06-14,Columbia,Washington,53013,1,0 +2020-06-15,Columbia,Washington,53013,1,0 +2020-06-16,Columbia,Washington,53013,1,0 +2020-06-17,Columbia,Washington,53013,1,0 +2020-06-18,Columbia,Washington,53013,1,0 +2020-06-19,Columbia,Washington,53013,2,0 +2020-06-20,Columbia,Washington,53013,2,0 +2020-06-21,Columbia,Washington,53013,2,0 +2020-06-22,Columbia,Washington,53013,2,0 +2020-06-23,Columbia,Washington,53013,8,0 +2020-06-24,Columbia,Washington,53013,8,0 +2020-06-25,Columbia,Washington,53013,8,0 +2020-06-26,Columbia,Washington,53013,8,0 +2020-06-27,Columbia,Washington,53013,8,0 +2020-06-28,Columbia,Washington,53013,8,0 +2020-06-29,Columbia,Washington,53013,8,0 +2020-06-30,Columbia,Washington,53013,8,0 +2020-07-01,Columbia,Washington,53013,8,0 +2020-07-02,Columbia,Washington,53013,8,0 +2020-07-03,Columbia,Washington,53013,8,0 +2020-07-04,Columbia,Washington,53013,8,0 +2020-07-05,Columbia,Washington,53013,8,0 +2020-07-06,Columbia,Washington,53013,8,0 +2020-07-07,Columbia,Washington,53013,8,0 +2020-07-08,Columbia,Washington,53013,8,0 +2020-07-09,Columbia,Washington,53013,8,0 +2020-03-20,Cowlitz,Washington,53015,2,0 +2020-03-21,Cowlitz,Washington,53015,2,0 +2020-03-22,Cowlitz,Washington,53015,3,0 +2020-03-23,Cowlitz,Washington,53015,3,0 +2020-03-24,Cowlitz,Washington,53015,3,0 +2020-03-25,Cowlitz,Washington,53015,3,0 +2020-03-26,Cowlitz,Washington,53015,7,0 +2020-03-27,Cowlitz,Washington,53015,7,0 +2020-03-28,Cowlitz,Washington,53015,10,0 +2020-03-29,Cowlitz,Washington,53015,13,0 +2020-03-30,Cowlitz,Washington,53015,13,0 +2020-03-31,Cowlitz,Washington,53015,13,0 +2020-04-01,Cowlitz,Washington,53015,18,0 +2020-04-02,Cowlitz,Washington,53015,16,0 +2020-04-03,Cowlitz,Washington,53015,18,0 +2020-04-04,Cowlitz,Washington,53015,18,0 +2020-04-05,Cowlitz,Washington,53015,18,0 +2020-04-06,Cowlitz,Washington,53015,21,0 +2020-04-07,Cowlitz,Washington,53015,21,0 +2020-04-08,Cowlitz,Washington,53015,21,0 +2020-04-09,Cowlitz,Washington,53015,21,0 +2020-04-10,Cowlitz,Washington,53015,23,0 +2020-04-11,Cowlitz,Washington,53015,23,0 +2020-04-12,Cowlitz,Washington,53015,23,0 +2020-04-13,Cowlitz,Washington,53015,24,0 +2020-04-14,Cowlitz,Washington,53015,24,0 +2020-04-15,Cowlitz,Washington,53015,24,0 +2020-04-16,Cowlitz,Washington,53015,26,0 +2020-04-17,Cowlitz,Washington,53015,29,0 +2020-04-18,Cowlitz,Washington,53015,29,0 +2020-04-19,Cowlitz,Washington,53015,29,0 +2020-04-20,Cowlitz,Washington,53015,32,0 +2020-04-21,Cowlitz,Washington,53015,34,0 +2020-04-22,Cowlitz,Washington,53015,35,0 +2020-04-23,Cowlitz,Washington,53015,35,0 +2020-04-24,Cowlitz,Washington,53015,35,0 +2020-04-25,Cowlitz,Washington,53015,39,0 +2020-04-26,Cowlitz,Washington,53015,39,0 +2020-04-27,Cowlitz,Washington,53015,39,0 +2020-04-28,Cowlitz,Washington,53015,39,0 +2020-04-29,Cowlitz,Washington,53015,41,0 +2020-04-30,Cowlitz,Washington,53015,45,0 +2020-05-01,Cowlitz,Washington,53015,47,0 +2020-05-02,Cowlitz,Washington,53015,53,0 +2020-05-03,Cowlitz,Washington,53015,53,0 +2020-05-04,Cowlitz,Washington,53015,59,0 +2020-05-05,Cowlitz,Washington,53015,60,0 +2020-05-06,Cowlitz,Washington,53015,62,0 +2020-05-07,Cowlitz,Washington,53015,62,0 +2020-05-08,Cowlitz,Washington,53015,64,0 +2020-05-09,Cowlitz,Washington,53015,65,0 +2020-05-10,Cowlitz,Washington,53015,66,0 +2020-05-11,Cowlitz,Washington,53015,66,0 +2020-05-12,Cowlitz,Washington,53015,66,0 +2020-05-13,Cowlitz,Washington,53015,66,0 +2020-05-14,Cowlitz,Washington,53015,66,0 +2020-05-15,Cowlitz,Washington,53015,68,0 +2020-05-16,Cowlitz,Washington,53015,68,0 +2020-05-17,Cowlitz,Washington,53015,68,0 +2020-05-18,Cowlitz,Washington,53015,68,0 +2020-05-19,Cowlitz,Washington,53015,69,0 +2020-05-20,Cowlitz,Washington,53015,69,0 +2020-05-21,Cowlitz,Washington,53015,69,0 +2020-05-22,Cowlitz,Washington,53015,71,0 +2020-05-23,Cowlitz,Washington,53015,72,0 +2020-05-24,Cowlitz,Washington,53015,72,0 +2020-05-25,Cowlitz,Washington,53015,72,0 +2020-05-26,Cowlitz,Washington,53015,73,0 +2020-05-27,Cowlitz,Washington,53015,73,0 +2020-05-28,Cowlitz,Washington,53015,73,0 +2020-05-29,Cowlitz,Washington,53015,73,0 +2020-05-30,Cowlitz,Washington,53015,73,0 +2020-05-31,Cowlitz,Washington,53015,73,0 +2020-06-01,Cowlitz,Washington,53015,73,0 +2020-06-02,Cowlitz,Washington,53015,74,0 +2020-06-03,Cowlitz,Washington,53015,76,0 +2020-06-04,Cowlitz,Washington,53015,76,0 +2020-06-05,Cowlitz,Washington,53015,76,0 +2020-06-06,Cowlitz,Washington,53015,78,0 +2020-06-07,Cowlitz,Washington,53015,81,0 +2020-06-08,Cowlitz,Washington,53015,86,0 +2020-06-09,Cowlitz,Washington,53015,89,0 +2020-06-10,Cowlitz,Washington,53015,94,0 +2020-06-11,Cowlitz,Washington,53015,101,0 +2020-06-12,Cowlitz,Washington,53015,102,0 +2020-06-13,Cowlitz,Washington,53015,105,0 +2020-06-14,Cowlitz,Washington,53015,107,0 +2020-06-15,Cowlitz,Washington,53015,109,0 +2020-06-16,Cowlitz,Washington,53015,118,0 +2020-06-17,Cowlitz,Washington,53015,120,0 +2020-06-18,Cowlitz,Washington,53015,124,0 +2020-06-19,Cowlitz,Washington,53015,130,0 +2020-06-20,Cowlitz,Washington,53015,136,0 +2020-06-21,Cowlitz,Washington,53015,145,0 +2020-06-22,Cowlitz,Washington,53015,145,0 +2020-06-23,Cowlitz,Washington,53015,149,0 +2020-06-24,Cowlitz,Washington,53015,153,0 +2020-06-25,Cowlitz,Washington,53015,158,0 +2020-06-26,Cowlitz,Washington,53015,166,0 +2020-06-27,Cowlitz,Washington,53015,170,0 +2020-06-28,Cowlitz,Washington,53015,170,0 +2020-06-29,Cowlitz,Washington,53015,172,0 +2020-06-30,Cowlitz,Washington,53015,179,0 +2020-07-01,Cowlitz,Washington,53015,187,0 +2020-07-02,Cowlitz,Washington,53015,202,0 +2020-07-03,Cowlitz,Washington,53015,207,0 +2020-07-04,Cowlitz,Washington,53015,204,0 +2020-07-05,Cowlitz,Washington,53015,208,0 +2020-07-06,Cowlitz,Washington,53015,210,0 +2020-07-07,Cowlitz,Washington,53015,218,0 +2020-07-08,Cowlitz,Washington,53015,229,0 +2020-07-09,Cowlitz,Washington,53015,234,0 +2020-03-23,Douglas,Washington,53017,1,0 +2020-03-24,Douglas,Washington,53017,2,0 +2020-03-25,Douglas,Washington,53017,2,0 +2020-03-26,Douglas,Washington,53017,5,0 +2020-03-27,Douglas,Washington,53017,5,0 +2020-03-28,Douglas,Washington,53017,5,0 +2020-03-29,Douglas,Washington,53017,5,0 +2020-03-30,Douglas,Washington,53017,5,0 +2020-03-31,Douglas,Washington,53017,5,0 +2020-04-01,Douglas,Washington,53017,5,0 +2020-04-02,Douglas,Washington,53017,6,0 +2020-04-03,Douglas,Washington,53017,7,0 +2020-04-04,Douglas,Washington,53017,10,0 +2020-04-05,Douglas,Washington,53017,10,0 +2020-04-06,Douglas,Washington,53017,10,0 +2020-04-07,Douglas,Washington,53017,10,0 +2020-04-08,Douglas,Washington,53017,12,0 +2020-04-09,Douglas,Washington,53017,13,0 +2020-04-10,Douglas,Washington,53017,16,0 +2020-04-11,Douglas,Washington,53017,16,0 +2020-04-12,Douglas,Washington,53017,18,0 +2020-04-13,Douglas,Washington,53017,20,0 +2020-04-14,Douglas,Washington,53017,29,1 +2020-04-15,Douglas,Washington,53017,29,1 +2020-04-16,Douglas,Washington,53017,32,1 +2020-04-17,Douglas,Washington,53017,30,1 +2020-04-18,Douglas,Washington,53017,31,1 +2020-04-19,Douglas,Washington,53017,32,1 +2020-04-20,Douglas,Washington,53017,59,1 +2020-04-21,Douglas,Washington,53017,61,1 +2020-04-22,Douglas,Washington,53017,61,1 +2020-04-23,Douglas,Washington,53017,63,1 +2020-04-24,Douglas,Washington,53017,69,1 +2020-04-25,Douglas,Washington,53017,70,1 +2020-04-26,Douglas,Washington,53017,72,1 +2020-04-27,Douglas,Washington,53017,75,1 +2020-04-28,Douglas,Washington,53017,75,1 +2020-04-29,Douglas,Washington,53017,77,1 +2020-04-30,Douglas,Washington,53017,78,1 +2020-05-01,Douglas,Washington,53017,79,1 +2020-05-02,Douglas,Washington,53017,82,1 +2020-05-03,Douglas,Washington,53017,82,1 +2020-05-04,Douglas,Washington,53017,84,1 +2020-05-05,Douglas,Washington,53017,84,2 +2020-05-06,Douglas,Washington,53017,95,2 +2020-05-07,Douglas,Washington,53017,98,2 +2020-05-08,Douglas,Washington,53017,102,2 +2020-05-09,Douglas,Washington,53017,107,2 +2020-05-10,Douglas,Washington,53017,117,2 +2020-05-11,Douglas,Washington,53017,117,2 +2020-05-12,Douglas,Washington,53017,117,2 +2020-05-13,Douglas,Washington,53017,120,3 +2020-05-14,Douglas,Washington,53017,123,3 +2020-05-15,Douglas,Washington,53017,126,3 +2020-05-16,Douglas,Washington,53017,127,3 +2020-05-17,Douglas,Washington,53017,127,3 +2020-05-18,Douglas,Washington,53017,131,3 +2020-05-19,Douglas,Washington,53017,131,3 +2020-05-20,Douglas,Washington,53017,131,3 +2020-05-21,Douglas,Washington,53017,138,3 +2020-05-22,Douglas,Washington,53017,141,3 +2020-05-23,Douglas,Washington,53017,147,3 +2020-05-24,Douglas,Washington,53017,157,3 +2020-05-25,Douglas,Washington,53017,159,3 +2020-05-26,Douglas,Washington,53017,159,3 +2020-05-27,Douglas,Washington,53017,162,3 +2020-05-28,Douglas,Washington,53017,164,3 +2020-05-29,Douglas,Washington,53017,168,3 +2020-05-30,Douglas,Washington,53017,170,3 +2020-05-31,Douglas,Washington,53017,172,3 +2020-06-01,Douglas,Washington,53017,173,3 +2020-06-02,Douglas,Washington,53017,173,3 +2020-06-03,Douglas,Washington,53017,174,3 +2020-06-04,Douglas,Washington,53017,176,3 +2020-06-05,Douglas,Washington,53017,180,3 +2020-06-06,Douglas,Washington,53017,180,3 +2020-06-07,Douglas,Washington,53017,180,3 +2020-06-08,Douglas,Washington,53017,180,3 +2020-06-09,Douglas,Washington,53017,181,3 +2020-06-10,Douglas,Washington,53017,181,3 +2020-06-11,Douglas,Washington,53017,181,3 +2020-06-12,Douglas,Washington,53017,181,3 +2020-06-13,Douglas,Washington,53017,181,3 +2020-06-14,Douglas,Washington,53017,185,3 +2020-06-15,Douglas,Washington,53017,183,3 +2020-06-16,Douglas,Washington,53017,187,3 +2020-06-17,Douglas,Washington,53017,187,3 +2020-06-18,Douglas,Washington,53017,189,3 +2020-06-19,Douglas,Washington,53017,190,3 +2020-06-20,Douglas,Washington,53017,190,3 +2020-06-21,Douglas,Washington,53017,193,3 +2020-06-22,Douglas,Washington,53017,196,3 +2020-06-23,Douglas,Washington,53017,199,3 +2020-06-24,Douglas,Washington,53017,205,3 +2020-06-25,Douglas,Washington,53017,210,3 +2020-06-26,Douglas,Washington,53017,216,3 +2020-06-27,Douglas,Washington,53017,223,3 +2020-06-28,Douglas,Washington,53017,230,3 +2020-06-29,Douglas,Washington,53017,233,3 +2020-06-30,Douglas,Washington,53017,239,3 +2020-07-01,Douglas,Washington,53017,245,3 +2020-07-02,Douglas,Washington,53017,253,3 +2020-07-03,Douglas,Washington,53017,265,3 +2020-07-04,Douglas,Washington,53017,273,3 +2020-07-05,Douglas,Washington,53017,279,3 +2020-07-06,Douglas,Washington,53017,303,3 +2020-07-07,Douglas,Washington,53017,310,3 +2020-07-08,Douglas,Washington,53017,325,3 +2020-07-09,Douglas,Washington,53017,334,3 +2020-03-25,Ferry,Washington,53019,1,0 +2020-03-26,Ferry,Washington,53019,1,0 +2020-03-27,Ferry,Washington,53019,1,0 +2020-03-28,Ferry,Washington,53019,1,0 +2020-03-29,Ferry,Washington,53019,1,0 +2020-03-30,Ferry,Washington,53019,1,0 +2020-03-31,Ferry,Washington,53019,1,0 +2020-04-01,Ferry,Washington,53019,1,0 +2020-04-02,Ferry,Washington,53019,1,0 +2020-04-03,Ferry,Washington,53019,1,0 +2020-04-04,Ferry,Washington,53019,1,0 +2020-04-05,Ferry,Washington,53019,1,0 +2020-04-06,Ferry,Washington,53019,1,0 +2020-04-07,Ferry,Washington,53019,1,0 +2020-04-08,Ferry,Washington,53019,1,0 +2020-04-09,Ferry,Washington,53019,1,0 +2020-04-10,Ferry,Washington,53019,1,0 +2020-04-11,Ferry,Washington,53019,1,0 +2020-04-12,Ferry,Washington,53019,1,0 +2020-04-13,Ferry,Washington,53019,1,0 +2020-04-14,Ferry,Washington,53019,1,0 +2020-04-15,Ferry,Washington,53019,1,0 +2020-04-16,Ferry,Washington,53019,1,0 +2020-04-17,Ferry,Washington,53019,1,0 +2020-04-18,Ferry,Washington,53019,1,0 +2020-04-19,Ferry,Washington,53019,1,0 +2020-04-20,Ferry,Washington,53019,1,0 +2020-04-21,Ferry,Washington,53019,1,0 +2020-04-22,Ferry,Washington,53019,1,0 +2020-04-23,Ferry,Washington,53019,1,0 +2020-04-24,Ferry,Washington,53019,1,0 +2020-04-25,Ferry,Washington,53019,1,0 +2020-04-26,Ferry,Washington,53019,1,0 +2020-04-27,Ferry,Washington,53019,1,0 +2020-04-28,Ferry,Washington,53019,1,0 +2020-04-29,Ferry,Washington,53019,1,0 +2020-04-30,Ferry,Washington,53019,1,0 +2020-05-01,Ferry,Washington,53019,1,0 +2020-05-02,Ferry,Washington,53019,1,0 +2020-05-03,Ferry,Washington,53019,1,0 +2020-05-04,Ferry,Washington,53019,1,0 +2020-05-05,Ferry,Washington,53019,1,0 +2020-05-06,Ferry,Washington,53019,1,0 +2020-05-07,Ferry,Washington,53019,1,0 +2020-05-08,Ferry,Washington,53019,1,0 +2020-05-09,Ferry,Washington,53019,1,0 +2020-05-10,Ferry,Washington,53019,1,0 +2020-05-11,Ferry,Washington,53019,1,0 +2020-05-12,Ferry,Washington,53019,1,0 +2020-05-13,Ferry,Washington,53019,1,0 +2020-05-14,Ferry,Washington,53019,1,0 +2020-05-15,Ferry,Washington,53019,1,0 +2020-05-16,Ferry,Washington,53019,1,0 +2020-05-17,Ferry,Washington,53019,1,0 +2020-05-18,Ferry,Washington,53019,1,0 +2020-05-19,Ferry,Washington,53019,1,0 +2020-05-20,Ferry,Washington,53019,1,0 +2020-05-21,Ferry,Washington,53019,1,0 +2020-05-22,Ferry,Washington,53019,1,0 +2020-05-23,Ferry,Washington,53019,1,0 +2020-05-24,Ferry,Washington,53019,1,0 +2020-05-25,Ferry,Washington,53019,1,0 +2020-05-26,Ferry,Washington,53019,1,0 +2020-05-27,Ferry,Washington,53019,1,0 +2020-05-28,Ferry,Washington,53019,1,0 +2020-05-29,Ferry,Washington,53019,1,0 +2020-05-30,Ferry,Washington,53019,1,0 +2020-05-31,Ferry,Washington,53019,1,0 +2020-06-01,Ferry,Washington,53019,1,0 +2020-06-02,Ferry,Washington,53019,1,0 +2020-06-03,Ferry,Washington,53019,1,0 +2020-06-04,Ferry,Washington,53019,1,0 +2020-06-05,Ferry,Washington,53019,1,0 +2020-06-06,Ferry,Washington,53019,1,0 +2020-06-07,Ferry,Washington,53019,1,0 +2020-06-08,Ferry,Washington,53019,1,0 +2020-06-09,Ferry,Washington,53019,1,0 +2020-06-10,Ferry,Washington,53019,1,0 +2020-06-11,Ferry,Washington,53019,1,0 +2020-06-12,Ferry,Washington,53019,1,0 +2020-06-13,Ferry,Washington,53019,1,0 +2020-06-14,Ferry,Washington,53019,1,0 +2020-06-15,Ferry,Washington,53019,1,0 +2020-06-16,Ferry,Washington,53019,1,0 +2020-06-17,Ferry,Washington,53019,1,0 +2020-06-18,Ferry,Washington,53019,1,0 +2020-06-19,Ferry,Washington,53019,1,0 +2020-06-20,Ferry,Washington,53019,1,0 +2020-06-21,Ferry,Washington,53019,1,0 +2020-06-22,Ferry,Washington,53019,1,0 +2020-06-23,Ferry,Washington,53019,1,0 +2020-06-24,Ferry,Washington,53019,1,0 +2020-06-25,Ferry,Washington,53019,1,0 +2020-06-26,Ferry,Washington,53019,1,0 +2020-06-27,Ferry,Washington,53019,1,0 +2020-06-28,Ferry,Washington,53019,1,0 +2020-06-29,Ferry,Washington,53019,1,0 +2020-06-30,Ferry,Washington,53019,1,0 +2020-07-01,Ferry,Washington,53019,1,0 +2020-07-02,Ferry,Washington,53019,1,0 +2020-07-03,Ferry,Washington,53019,1,0 +2020-07-04,Ferry,Washington,53019,1,0 +2020-07-05,Ferry,Washington,53019,1,0 +2020-07-06,Ferry,Washington,53019,1,0 +2020-07-07,Ferry,Washington,53019,1,0 +2020-07-08,Ferry,Washington,53019,1,0 +2020-07-09,Ferry,Washington,53019,1,0 +2020-03-17,Franklin,Washington,53021,1,0 +2020-03-18,Franklin,Washington,53021,1,0 +2020-03-19,Franklin,Washington,53021,1,0 +2020-03-20,Franklin,Washington,53021,1,0 +2020-03-21,Franklin,Washington,53021,1,0 +2020-03-22,Franklin,Washington,53021,2,0 +2020-03-23,Franklin,Washington,53021,2,0 +2020-03-24,Franklin,Washington,53021,7,0 +2020-03-25,Franklin,Washington,53021,7,0 +2020-03-26,Franklin,Washington,53021,7,0 +2020-03-27,Franklin,Washington,53021,12,0 +2020-03-28,Franklin,Washington,53021,16,0 +2020-03-29,Franklin,Washington,53021,32,0 +2020-03-30,Franklin,Washington,53021,32,0 +2020-03-31,Franklin,Washington,53021,33,0 +2020-04-01,Franklin,Washington,53021,33,0 +2020-04-02,Franklin,Washington,53021,43,0 +2020-04-03,Franklin,Washington,53021,45,1 +2020-04-04,Franklin,Washington,53021,49,1 +2020-04-05,Franklin,Washington,53021,59,2 +2020-04-06,Franklin,Washington,53021,64,1 +2020-04-07,Franklin,Washington,53021,75,2 +2020-04-08,Franklin,Washington,53021,75,2 +2020-04-09,Franklin,Washington,53021,93,2 +2020-04-10,Franklin,Washington,53021,107,2 +2020-04-11,Franklin,Washington,53021,112,2 +2020-04-12,Franklin,Washington,53021,120,2 +2020-04-13,Franklin,Washington,53021,129,2 +2020-04-14,Franklin,Washington,53021,138,2 +2020-04-15,Franklin,Washington,53021,142,4 +2020-04-16,Franklin,Washington,53021,156,2 +2020-04-17,Franklin,Washington,53021,167,4 +2020-04-18,Franklin,Washington,53021,177,4 +2020-04-19,Franklin,Washington,53021,187,4 +2020-04-20,Franklin,Washington,53021,198,4 +2020-04-21,Franklin,Washington,53021,207,4 +2020-04-22,Franklin,Washington,53021,212,4 +2020-04-23,Franklin,Washington,53021,233,5 +2020-04-24,Franklin,Washington,53021,242,5 +2020-04-25,Franklin,Washington,53021,250,5 +2020-04-26,Franklin,Washington,53021,251,5 +2020-04-27,Franklin,Washington,53021,259,5 +2020-04-28,Franklin,Washington,53021,265,7 +2020-04-29,Franklin,Washington,53021,276,8 +2020-04-30,Franklin,Washington,53021,279,9 +2020-05-01,Franklin,Washington,53021,309,11 +2020-05-02,Franklin,Washington,53021,348,10 +2020-05-03,Franklin,Washington,53021,363,11 +2020-05-04,Franklin,Washington,53021,377,11 +2020-05-05,Franklin,Washington,53021,379,13 +2020-05-06,Franklin,Washington,53021,487,14 +2020-05-07,Franklin,Washington,53021,501,14 +2020-05-08,Franklin,Washington,53021,507,16 +2020-05-09,Franklin,Washington,53021,513,16 +2020-05-10,Franklin,Washington,53021,516,16 +2020-05-11,Franklin,Washington,53021,525,16 +2020-05-12,Franklin,Washington,53021,530,16 +2020-05-13,Franklin,Washington,53021,531,16 +2020-05-14,Franklin,Washington,53021,544,17 +2020-05-15,Franklin,Washington,53021,552,17 +2020-05-16,Franklin,Washington,53021,564,17 +2020-05-17,Franklin,Washington,53021,572,17 +2020-05-18,Franklin,Washington,53021,577,17 +2020-05-19,Franklin,Washington,53021,587,18 +2020-05-20,Franklin,Washington,53021,593,18 +2020-05-21,Franklin,Washington,53021,605,18 +2020-05-22,Franklin,Washington,53021,612,18 +2020-05-23,Franklin,Washington,53021,612,19 +2020-05-24,Franklin,Washington,53021,612,19 +2020-05-25,Franklin,Washington,53021,641,19 +2020-05-26,Franklin,Washington,53021,649,19 +2020-05-27,Franklin,Washington,53021,661,20 +2020-05-28,Franklin,Washington,53021,668,20 +2020-05-29,Franklin,Washington,53021,694,20 +2020-05-30,Franklin,Washington,53021,694,20 +2020-05-31,Franklin,Washington,53021,704,20 +2020-06-01,Franklin,Washington,53021,760,20 +2020-06-02,Franklin,Washington,53021,786,20 +2020-06-03,Franklin,Washington,53021,800,20 +2020-06-04,Franklin,Washington,53021,834,20 +2020-06-05,Franklin,Washington,53021,855,21 +2020-06-06,Franklin,Washington,53021,855,21 +2020-06-07,Franklin,Washington,53021,859,21 +2020-06-08,Franklin,Washington,53021,943,21 +2020-06-09,Franklin,Washington,53021,956,22 +2020-06-10,Franklin,Washington,53021,979,22 +2020-06-11,Franklin,Washington,53021,1008,25 +2020-06-12,Franklin,Washington,53021,1034,25 +2020-06-13,Franklin,Washington,53021,1034,25 +2020-06-14,Franklin,Washington,53021,1034,25 +2020-06-15,Franklin,Washington,53021,1083,26 +2020-06-16,Franklin,Washington,53021,1144,26 +2020-06-17,Franklin,Washington,53021,1180,26 +2020-06-18,Franklin,Washington,53021,1218,28 +2020-06-19,Franklin,Washington,53021,1264,29 +2020-06-20,Franklin,Washington,53021,1264,29 +2020-06-21,Franklin,Washington,53021,1278,29 +2020-06-22,Franklin,Washington,53021,1450,29 +2020-06-23,Franklin,Washington,53021,1450,30 +2020-06-24,Franklin,Washington,53021,1540,31 +2020-06-25,Franklin,Washington,53021,1587,32 +2020-06-26,Franklin,Washington,53021,1627,32 +2020-06-27,Franklin,Washington,53021,1692,32 +2020-06-28,Franklin,Washington,53021,1715,32 +2020-06-29,Franklin,Washington,53021,1750,33 +2020-06-30,Franklin,Washington,53021,1777,33 +2020-07-01,Franklin,Washington,53021,1842,33 +2020-07-02,Franklin,Washington,53021,1887,33 +2020-07-03,Franklin,Washington,53021,1930,33 +2020-07-04,Franklin,Washington,53021,1977,33 +2020-07-05,Franklin,Washington,53021,2035,33 +2020-07-06,Franklin,Washington,53021,2175,33 +2020-07-07,Franklin,Washington,53021,2250,34 +2020-07-08,Franklin,Washington,53021,2276,34 +2020-07-09,Franklin,Washington,53021,2344,35 +2020-03-13,Grant,Washington,53025,1,0 +2020-03-14,Grant,Washington,53025,1,0 +2020-03-15,Grant,Washington,53025,1,0 +2020-03-16,Grant,Washington,53025,6,0 +2020-03-17,Grant,Washington,53025,6,0 +2020-03-18,Grant,Washington,53025,6,0 +2020-03-19,Grant,Washington,53025,8,0 +2020-03-20,Grant,Washington,53025,11,0 +2020-03-21,Grant,Washington,53025,11,0 +2020-03-22,Grant,Washington,53025,18,0 +2020-03-23,Grant,Washington,53025,23,0 +2020-03-24,Grant,Washington,53025,27,0 +2020-03-25,Grant,Washington,53025,26,0 +2020-03-26,Grant,Washington,53025,33,1 +2020-03-27,Grant,Washington,53025,42,1 +2020-03-28,Grant,Washington,53025,44,1 +2020-03-29,Grant,Washington,53025,58,1 +2020-03-30,Grant,Washington,53025,62,0 +2020-03-31,Grant,Washington,53025,62,0 +2020-04-01,Grant,Washington,53025,73,0 +2020-04-02,Grant,Washington,53025,74,0 +2020-04-03,Grant,Washington,53025,77,0 +2020-04-04,Grant,Washington,53025,80,1 +2020-04-05,Grant,Washington,53025,87,1 +2020-04-06,Grant,Washington,53025,90,2 +2020-04-07,Grant,Washington,53025,93,2 +2020-04-08,Grant,Washington,53025,95,2 +2020-04-09,Grant,Washington,53025,101,2 +2020-04-10,Grant,Washington,53025,101,2 +2020-04-11,Grant,Washington,53025,111,2 +2020-04-12,Grant,Washington,53025,119,2 +2020-04-13,Grant,Washington,53025,121,2 +2020-04-14,Grant,Washington,53025,121,2 +2020-04-15,Grant,Washington,53025,129,2 +2020-04-16,Grant,Washington,53025,132,1 +2020-04-17,Grant,Washington,53025,139,1 +2020-04-18,Grant,Washington,53025,140,1 +2020-04-19,Grant,Washington,53025,140,1 +2020-04-20,Grant,Washington,53025,142,1 +2020-04-21,Grant,Washington,53025,142,1 +2020-04-22,Grant,Washington,53025,143,1 +2020-04-23,Grant,Washington,53025,154,2 +2020-04-24,Grant,Washington,53025,154,2 +2020-04-25,Grant,Washington,53025,156,2 +2020-04-26,Grant,Washington,53025,157,2 +2020-04-27,Grant,Washington,53025,157,2 +2020-04-28,Grant,Washington,53025,157,2 +2020-04-29,Grant,Washington,53025,160,2 +2020-04-30,Grant,Washington,53025,166,2 +2020-05-01,Grant,Washington,53025,170,2 +2020-05-02,Grant,Washington,53025,174,2 +2020-05-03,Grant,Washington,53025,174,2 +2020-05-04,Grant,Washington,53025,179,2 +2020-05-05,Grant,Washington,53025,181,2 +2020-05-06,Grant,Washington,53025,181,2 +2020-05-07,Grant,Washington,53025,183,2 +2020-05-08,Grant,Washington,53025,219,2 +2020-05-09,Grant,Washington,53025,219,2 +2020-05-10,Grant,Washington,53025,219,2 +2020-05-11,Grant,Washington,53025,219,2 +2020-05-12,Grant,Washington,53025,221,2 +2020-05-13,Grant,Washington,53025,221,2 +2020-05-14,Grant,Washington,53025,224,2 +2020-05-15,Grant,Washington,53025,223,2 +2020-05-16,Grant,Washington,53025,223,2 +2020-05-17,Grant,Washington,53025,223,2 +2020-05-18,Grant,Washington,53025,226,3 +2020-05-19,Grant,Washington,53025,226,3 +2020-05-20,Grant,Washington,53025,226,3 +2020-05-21,Grant,Washington,53025,226,3 +2020-05-22,Grant,Washington,53025,231,3 +2020-05-23,Grant,Washington,53025,231,3 +2020-05-24,Grant,Washington,53025,231,3 +2020-05-25,Grant,Washington,53025,231,3 +2020-05-26,Grant,Washington,53025,238,3 +2020-05-27,Grant,Washington,53025,238,3 +2020-05-28,Grant,Washington,53025,238,3 +2020-05-29,Grant,Washington,53025,255,3 +2020-05-30,Grant,Washington,53025,255,3 +2020-05-31,Grant,Washington,53025,255,3 +2020-06-01,Grant,Washington,53025,269,3 +2020-06-02,Grant,Washington,53025,272,3 +2020-06-03,Grant,Washington,53025,276,3 +2020-06-04,Grant,Washington,53025,277,4 +2020-06-05,Grant,Washington,53025,278,4 +2020-06-06,Grant,Washington,53025,278,4 +2020-06-07,Grant,Washington,53025,278,3 +2020-06-08,Grant,Washington,53025,283,3 +2020-06-09,Grant,Washington,53025,288,3 +2020-06-10,Grant,Washington,53025,298,3 +2020-06-11,Grant,Washington,53025,303,3 +2020-06-12,Grant,Washington,53025,321,4 +2020-06-13,Grant,Washington,53025,321,4 +2020-06-14,Grant,Washington,53025,321,4 +2020-06-15,Grant,Washington,53025,370,4 +2020-06-16,Grant,Washington,53025,370,4 +2020-06-17,Grant,Washington,53025,390,4 +2020-06-18,Grant,Washington,53025,390,4 +2020-06-19,Grant,Washington,53025,404,4 +2020-06-20,Grant,Washington,53025,404,4 +2020-06-21,Grant,Washington,53025,404,4 +2020-06-22,Grant,Washington,53025,470,4 +2020-06-23,Grant,Washington,53025,470,5 +2020-06-24,Grant,Washington,53025,478,5 +2020-06-25,Grant,Washington,53025,513,5 +2020-06-26,Grant,Washington,53025,564,5 +2020-06-27,Grant,Washington,53025,577,5 +2020-06-28,Grant,Washington,53025,577,5 +2020-06-29,Grant,Washington,53025,610,5 +2020-06-30,Grant,Washington,53025,611,5 +2020-07-01,Grant,Washington,53025,621,5 +2020-07-02,Grant,Washington,53025,634,5 +2020-07-03,Grant,Washington,53025,646,5 +2020-07-04,Grant,Washington,53025,646,5 +2020-07-05,Grant,Washington,53025,646,5 +2020-07-06,Grant,Washington,53025,724,5 +2020-07-07,Grant,Washington,53025,742,5 +2020-07-08,Grant,Washington,53025,762,5 +2020-07-09,Grant,Washington,53025,788,7 +2020-03-12,Grays Harbor,Washington,53027,1,0 +2020-03-13,Grays Harbor,Washington,53027,1,0 +2020-03-14,Grays Harbor,Washington,53027,1,0 +2020-03-15,Grays Harbor,Washington,53027,1,0 +2020-03-16,Grays Harbor,Washington,53027,1,0 +2020-03-17,Grays Harbor,Washington,53027,1,0 +2020-03-18,Grays Harbor,Washington,53027,1,0 +2020-03-19,Grays Harbor,Washington,53027,1,0 +2020-03-20,Grays Harbor,Washington,53027,1,0 +2020-03-21,Grays Harbor,Washington,53027,1,0 +2020-03-22,Grays Harbor,Washington,53027,1,0 +2020-03-23,Grays Harbor,Washington,53027,1,0 +2020-03-24,Grays Harbor,Washington,53027,1,0 +2020-03-25,Grays Harbor,Washington,53027,1,0 +2020-03-26,Grays Harbor,Washington,53027,1,0 +2020-03-27,Grays Harbor,Washington,53027,1,0 +2020-03-28,Grays Harbor,Washington,53027,1,0 +2020-03-29,Grays Harbor,Washington,53027,1,0 +2020-03-30,Grays Harbor,Washington,53027,1,0 +2020-03-31,Grays Harbor,Washington,53027,1,0 +2020-04-01,Grays Harbor,Washington,53027,1,0 +2020-04-02,Grays Harbor,Washington,53027,2,0 +2020-04-03,Grays Harbor,Washington,53027,3,0 +2020-04-04,Grays Harbor,Washington,53027,3,0 +2020-04-05,Grays Harbor,Washington,53027,6,0 +2020-04-06,Grays Harbor,Washington,53027,6,0 +2020-04-07,Grays Harbor,Washington,53027,6,0 +2020-04-08,Grays Harbor,Washington,53027,7,0 +2020-04-09,Grays Harbor,Washington,53027,8,0 +2020-04-10,Grays Harbor,Washington,53027,8,0 +2020-04-11,Grays Harbor,Washington,53027,11,0 +2020-04-12,Grays Harbor,Washington,53027,11,0 +2020-04-13,Grays Harbor,Washington,53027,11,0 +2020-04-14,Grays Harbor,Washington,53027,11,0 +2020-04-15,Grays Harbor,Washington,53027,12,0 +2020-04-16,Grays Harbor,Washington,53027,12,0 +2020-04-17,Grays Harbor,Washington,53027,12,0 +2020-04-18,Grays Harbor,Washington,53027,12,0 +2020-04-19,Grays Harbor,Washington,53027,12,0 +2020-04-20,Grays Harbor,Washington,53027,12,0 +2020-04-21,Grays Harbor,Washington,53027,12,0 +2020-04-22,Grays Harbor,Washington,53027,12,0 +2020-04-23,Grays Harbor,Washington,53027,12,0 +2020-04-24,Grays Harbor,Washington,53027,12,0 +2020-04-25,Grays Harbor,Washington,53027,12,0 +2020-04-26,Grays Harbor,Washington,53027,12,0 +2020-04-27,Grays Harbor,Washington,53027,12,0 +2020-04-28,Grays Harbor,Washington,53027,12,0 +2020-04-29,Grays Harbor,Washington,53027,12,0 +2020-04-30,Grays Harbor,Washington,53027,12,0 +2020-05-01,Grays Harbor,Washington,53027,12,0 +2020-05-02,Grays Harbor,Washington,53027,12,0 +2020-05-03,Grays Harbor,Washington,53027,12,0 +2020-05-04,Grays Harbor,Washington,53027,12,0 +2020-05-05,Grays Harbor,Washington,53027,12,0 +2020-05-06,Grays Harbor,Washington,53027,12,0 +2020-05-07,Grays Harbor,Washington,53027,13,0 +2020-05-08,Grays Harbor,Washington,53027,13,0 +2020-05-09,Grays Harbor,Washington,53027,14,0 +2020-05-10,Grays Harbor,Washington,53027,13,0 +2020-05-11,Grays Harbor,Washington,53027,13,0 +2020-05-12,Grays Harbor,Washington,53027,13,0 +2020-05-13,Grays Harbor,Washington,53027,13,0 +2020-05-14,Grays Harbor,Washington,53027,13,0 +2020-05-15,Grays Harbor,Washington,53027,14,0 +2020-05-16,Grays Harbor,Washington,53027,15,0 +2020-05-17,Grays Harbor,Washington,53027,15,0 +2020-05-18,Grays Harbor,Washington,53027,15,0 +2020-05-19,Grays Harbor,Washington,53027,15,0 +2020-05-20,Grays Harbor,Washington,53027,15,0 +2020-05-21,Grays Harbor,Washington,53027,15,0 +2020-05-22,Grays Harbor,Washington,53027,16,0 +2020-05-23,Grays Harbor,Washington,53027,16,0 +2020-05-24,Grays Harbor,Washington,53027,16,0 +2020-05-25,Grays Harbor,Washington,53027,16,0 +2020-05-26,Grays Harbor,Washington,53027,16,0 +2020-05-27,Grays Harbor,Washington,53027,16,0 +2020-05-28,Grays Harbor,Washington,53027,16,0 +2020-05-29,Grays Harbor,Washington,53027,16,0 +2020-05-30,Grays Harbor,Washington,53027,16,0 +2020-05-31,Grays Harbor,Washington,53027,17,0 +2020-06-01,Grays Harbor,Washington,53027,17,0 +2020-06-02,Grays Harbor,Washington,53027,17,0 +2020-06-03,Grays Harbor,Washington,53027,18,0 +2020-06-04,Grays Harbor,Washington,53027,18,0 +2020-06-05,Grays Harbor,Washington,53027,19,0 +2020-06-06,Grays Harbor,Washington,53027,19,0 +2020-06-07,Grays Harbor,Washington,53027,19,0 +2020-06-08,Grays Harbor,Washington,53027,19,0 +2020-06-09,Grays Harbor,Washington,53027,19,0 +2020-06-10,Grays Harbor,Washington,53027,19,0 +2020-06-11,Grays Harbor,Washington,53027,19,0 +2020-06-12,Grays Harbor,Washington,53027,20,0 +2020-06-13,Grays Harbor,Washington,53027,20,0 +2020-06-14,Grays Harbor,Washington,53027,20,0 +2020-06-15,Grays Harbor,Washington,53027,20,0 +2020-06-16,Grays Harbor,Washington,53027,20,0 +2020-06-17,Grays Harbor,Washington,53027,21,0 +2020-06-18,Grays Harbor,Washington,53027,21,0 +2020-06-19,Grays Harbor,Washington,53027,22,0 +2020-06-20,Grays Harbor,Washington,53027,24,0 +2020-06-21,Grays Harbor,Washington,53027,24,0 +2020-06-22,Grays Harbor,Washington,53027,23,0 +2020-06-23,Grays Harbor,Washington,53027,23,0 +2020-06-24,Grays Harbor,Washington,53027,24,0 +2020-06-25,Grays Harbor,Washington,53027,24,0 +2020-06-26,Grays Harbor,Washington,53027,24,0 +2020-06-27,Grays Harbor,Washington,53027,25,0 +2020-06-28,Grays Harbor,Washington,53027,26,0 +2020-06-29,Grays Harbor,Washington,53027,26,0 +2020-06-30,Grays Harbor,Washington,53027,27,0 +2020-07-01,Grays Harbor,Washington,53027,26,0 +2020-07-02,Grays Harbor,Washington,53027,26,0 +2020-07-03,Grays Harbor,Washington,53027,26,0 +2020-07-04,Grays Harbor,Washington,53027,26,0 +2020-07-05,Grays Harbor,Washington,53027,26,0 +2020-07-06,Grays Harbor,Washington,53027,31,0 +2020-07-07,Grays Harbor,Washington,53027,32,0 +2020-07-08,Grays Harbor,Washington,53027,32,0 +2020-07-09,Grays Harbor,Washington,53027,33,0 +2020-03-11,Island,Washington,53029,1,0 +2020-03-12,Island,Washington,53029,3,0 +2020-03-13,Island,Washington,53029,3,0 +2020-03-14,Island,Washington,53029,6,0 +2020-03-15,Island,Washington,53029,6,0 +2020-03-16,Island,Washington,53029,7,0 +2020-03-17,Island,Washington,53029,14,0 +2020-03-18,Island,Washington,53029,16,0 +2020-03-19,Island,Washington,53029,17,1 +2020-03-20,Island,Washington,53029,19,1 +2020-03-21,Island,Washington,53029,19,1 +2020-03-22,Island,Washington,53029,21,1 +2020-03-23,Island,Washington,53029,25,1 +2020-03-24,Island,Washington,53029,29,1 +2020-03-25,Island,Washington,53029,38,1 +2020-03-26,Island,Washington,53029,64,1 +2020-03-27,Island,Washington,53029,79,1 +2020-03-28,Island,Washington,53029,92,1 +2020-03-29,Island,Washington,53029,95,1 +2020-03-30,Island,Washington,53029,95,1 +2020-03-31,Island,Washington,53029,106,3 +2020-04-01,Island,Washington,53029,114,3 +2020-04-02,Island,Washington,53029,119,4 +2020-04-03,Island,Washington,53029,122,4 +2020-04-04,Island,Washington,53029,130,4 +2020-04-05,Island,Washington,53029,132,5 +2020-04-06,Island,Washington,53029,142,5 +2020-04-07,Island,Washington,53029,145,6 +2020-04-08,Island,Washington,53029,149,7 +2020-04-09,Island,Washington,53029,151,7 +2020-04-10,Island,Washington,53029,155,7 +2020-04-11,Island,Washington,53029,157,7 +2020-04-12,Island,Washington,53029,158,7 +2020-04-13,Island,Washington,53029,158,7 +2020-04-14,Island,Washington,53029,162,8 +2020-04-15,Island,Washington,53029,163,8 +2020-04-16,Island,Washington,53029,163,8 +2020-04-17,Island,Washington,53029,165,8 +2020-04-18,Island,Washington,53029,166,8 +2020-04-19,Island,Washington,53029,166,8 +2020-04-20,Island,Washington,53029,166,8 +2020-04-21,Island,Washington,53029,168,8 +2020-04-22,Island,Washington,53029,168,9 +2020-04-23,Island,Washington,53029,168,9 +2020-04-24,Island,Washington,53029,168,9 +2020-04-25,Island,Washington,53029,168,9 +2020-04-26,Island,Washington,53029,168,9 +2020-04-27,Island,Washington,53029,171,9 +2020-04-28,Island,Washington,53029,172,9 +2020-04-29,Island,Washington,53029,172,9 +2020-04-30,Island,Washington,53029,172,9 +2020-05-01,Island,Washington,53029,175,9 +2020-05-02,Island,Washington,53029,175,9 +2020-05-03,Island,Washington,53029,175,9 +2020-05-04,Island,Washington,53029,175,9 +2020-05-05,Island,Washington,53029,175,9 +2020-05-06,Island,Washington,53029,178,9 +2020-05-07,Island,Washington,53029,179,9 +2020-05-08,Island,Washington,53029,179,9 +2020-05-09,Island,Washington,53029,179,9 +2020-05-10,Island,Washington,53029,179,9 +2020-05-11,Island,Washington,53029,179,9 +2020-05-12,Island,Washington,53029,181,9 +2020-05-13,Island,Washington,53029,181,9 +2020-05-14,Island,Washington,53029,181,10 +2020-05-15,Island,Washington,53029,181,10 +2020-05-16,Island,Washington,53029,181,10 +2020-05-17,Island,Washington,53029,181,10 +2020-05-18,Island,Washington,53029,181,10 +2020-05-19,Island,Washington,53029,181,10 +2020-05-20,Island,Washington,53029,181,10 +2020-05-21,Island,Washington,53029,181,10 +2020-05-22,Island,Washington,53029,181,10 +2020-05-23,Island,Washington,53029,181,10 +2020-05-24,Island,Washington,53029,181,10 +2020-05-25,Island,Washington,53029,181,10 +2020-05-26,Island,Washington,53029,180,10 +2020-05-27,Island,Washington,53029,180,11 +2020-05-28,Island,Washington,53029,180,11 +2020-05-29,Island,Washington,53029,180,11 +2020-05-30,Island,Washington,53029,180,11 +2020-05-31,Island,Washington,53029,180,11 +2020-06-01,Island,Washington,53029,181,11 +2020-06-02,Island,Washington,53029,181,11 +2020-06-03,Island,Washington,53029,181,11 +2020-06-04,Island,Washington,53029,181,11 +2020-06-05,Island,Washington,53029,181,11 +2020-06-06,Island,Washington,53029,181,11 +2020-06-07,Island,Washington,53029,181,11 +2020-06-08,Island,Washington,53029,182,11 +2020-06-09,Island,Washington,53029,181,11 +2020-06-10,Island,Washington,53029,182,11 +2020-06-11,Island,Washington,53029,182,11 +2020-06-12,Island,Washington,53029,182,11 +2020-06-13,Island,Washington,53029,182,11 +2020-06-14,Island,Washington,53029,182,11 +2020-06-15,Island,Washington,53029,183,11 +2020-06-16,Island,Washington,53029,183,11 +2020-06-17,Island,Washington,53029,184,11 +2020-06-18,Island,Washington,53029,184,12 +2020-06-19,Island,Washington,53029,186,12 +2020-06-20,Island,Washington,53029,188,12 +2020-06-21,Island,Washington,53029,188,12 +2020-06-22,Island,Washington,53029,187,12 +2020-06-23,Island,Washington,53029,187,12 +2020-06-24,Island,Washington,53029,188,12 +2020-06-25,Island,Washington,53029,191,12 +2020-06-26,Island,Washington,53029,191,12 +2020-06-27,Island,Washington,53029,192,12 +2020-06-28,Island,Washington,53029,192,12 +2020-06-29,Island,Washington,53029,192,12 +2020-06-30,Island,Washington,53029,192,12 +2020-07-01,Island,Washington,53029,195,12 +2020-07-02,Island,Washington,53029,195,12 +2020-07-03,Island,Washington,53029,196,12 +2020-07-04,Island,Washington,53029,197,12 +2020-07-05,Island,Washington,53029,198,12 +2020-07-06,Island,Washington,53029,198,12 +2020-07-07,Island,Washington,53029,198,12 +2020-07-08,Island,Washington,53029,201,12 +2020-07-09,Island,Washington,53029,202,12 +2020-03-06,Jefferson,Washington,53031,1,0 +2020-03-07,Jefferson,Washington,53031,1,0 +2020-03-08,Jefferson,Washington,53031,1,0 +2020-03-09,Jefferson,Washington,53031,1,0 +2020-03-10,Jefferson,Washington,53031,1,0 +2020-03-11,Jefferson,Washington,53031,1,0 +2020-03-12,Jefferson,Washington,53031,1,0 +2020-03-13,Jefferson,Washington,53031,1,0 +2020-03-14,Jefferson,Washington,53031,1,0 +2020-03-15,Jefferson,Washington,53031,3,0 +2020-03-16,Jefferson,Washington,53031,3,0 +2020-03-17,Jefferson,Washington,53031,4,0 +2020-03-18,Jefferson,Washington,53031,4,0 +2020-03-19,Jefferson,Washington,53031,4,0 +2020-03-20,Jefferson,Washington,53031,4,0 +2020-03-21,Jefferson,Washington,53031,4,0 +2020-03-22,Jefferson,Washington,53031,6,0 +2020-03-23,Jefferson,Washington,53031,7,0 +2020-03-24,Jefferson,Washington,53031,8,0 +2020-03-25,Jefferson,Washington,53031,10,0 +2020-03-26,Jefferson,Washington,53031,11,0 +2020-03-27,Jefferson,Washington,53031,11,0 +2020-03-28,Jefferson,Washington,53031,13,0 +2020-03-29,Jefferson,Washington,53031,14,0 +2020-03-30,Jefferson,Washington,53031,14,0 +2020-03-31,Jefferson,Washington,53031,14,0 +2020-04-01,Jefferson,Washington,53031,17,0 +2020-04-02,Jefferson,Washington,53031,19,0 +2020-04-03,Jefferson,Washington,53031,19,0 +2020-04-04,Jefferson,Washington,53031,20,0 +2020-04-05,Jefferson,Washington,53031,22,0 +2020-04-06,Jefferson,Washington,53031,27,0 +2020-04-07,Jefferson,Washington,53031,27,0 +2020-04-08,Jefferson,Washington,53031,27,0 +2020-04-09,Jefferson,Washington,53031,28,0 +2020-04-10,Jefferson,Washington,53031,28,0 +2020-04-11,Jefferson,Washington,53031,28,0 +2020-04-12,Jefferson,Washington,53031,28,0 +2020-04-13,Jefferson,Washington,53031,28,0 +2020-04-14,Jefferson,Washington,53031,28,0 +2020-04-15,Jefferson,Washington,53031,28,0 +2020-04-16,Jefferson,Washington,53031,28,0 +2020-04-17,Jefferson,Washington,53031,28,0 +2020-04-18,Jefferson,Washington,53031,29,0 +2020-04-19,Jefferson,Washington,53031,28,0 +2020-04-20,Jefferson,Washington,53031,28,0 +2020-04-21,Jefferson,Washington,53031,28,0 +2020-04-22,Jefferson,Washington,53031,28,0 +2020-04-23,Jefferson,Washington,53031,28,0 +2020-04-24,Jefferson,Washington,53031,28,0 +2020-04-25,Jefferson,Washington,53031,28,0 +2020-04-26,Jefferson,Washington,53031,28,0 +2020-04-27,Jefferson,Washington,53031,28,0 +2020-04-28,Jefferson,Washington,53031,28,0 +2020-04-29,Jefferson,Washington,53031,28,0 +2020-04-30,Jefferson,Washington,53031,28,0 +2020-05-01,Jefferson,Washington,53031,28,0 +2020-05-02,Jefferson,Washington,53031,28,0 +2020-05-03,Jefferson,Washington,53031,28,0 +2020-05-04,Jefferson,Washington,53031,28,0 +2020-05-05,Jefferson,Washington,53031,28,0 +2020-05-06,Jefferson,Washington,53031,28,0 +2020-05-07,Jefferson,Washington,53031,28,0 +2020-05-08,Jefferson,Washington,53031,28,0 +2020-05-09,Jefferson,Washington,53031,29,0 +2020-05-10,Jefferson,Washington,53031,29,0 +2020-05-11,Jefferson,Washington,53031,29,0 +2020-05-12,Jefferson,Washington,53031,29,0 +2020-05-13,Jefferson,Washington,53031,29,0 +2020-05-14,Jefferson,Washington,53031,29,0 +2020-05-15,Jefferson,Washington,53031,29,0 +2020-05-16,Jefferson,Washington,53031,30,0 +2020-05-17,Jefferson,Washington,53031,30,0 +2020-05-18,Jefferson,Washington,53031,30,0 +2020-05-19,Jefferson,Washington,53031,30,0 +2020-05-20,Jefferson,Washington,53031,30,0 +2020-05-21,Jefferson,Washington,53031,30,0 +2020-05-22,Jefferson,Washington,53031,30,0 +2020-05-23,Jefferson,Washington,53031,30,0 +2020-05-24,Jefferson,Washington,53031,30,0 +2020-05-25,Jefferson,Washington,53031,30,0 +2020-05-26,Jefferson,Washington,53031,30,0 +2020-05-27,Jefferson,Washington,53031,30,0 +2020-05-28,Jefferson,Washington,53031,30,0 +2020-05-29,Jefferson,Washington,53031,30,0 +2020-05-30,Jefferson,Washington,53031,30,0 +2020-05-31,Jefferson,Washington,53031,30,0 +2020-06-01,Jefferson,Washington,53031,31,0 +2020-06-02,Jefferson,Washington,53031,31,0 +2020-06-03,Jefferson,Washington,53031,31,0 +2020-06-04,Jefferson,Washington,53031,31,0 +2020-06-05,Jefferson,Washington,53031,31,0 +2020-06-06,Jefferson,Washington,53031,31,0 +2020-06-07,Jefferson,Washington,53031,31,0 +2020-06-08,Jefferson,Washington,53031,31,0 +2020-06-09,Jefferson,Washington,53031,31,0 +2020-06-10,Jefferson,Washington,53031,31,0 +2020-06-11,Jefferson,Washington,53031,31,0 +2020-06-12,Jefferson,Washington,53031,31,0 +2020-06-13,Jefferson,Washington,53031,31,0 +2020-06-14,Jefferson,Washington,53031,31,0 +2020-06-15,Jefferson,Washington,53031,32,0 +2020-06-16,Jefferson,Washington,53031,32,0 +2020-06-17,Jefferson,Washington,53031,32,0 +2020-06-18,Jefferson,Washington,53031,32,0 +2020-06-19,Jefferson,Washington,53031,33,0 +2020-06-20,Jefferson,Washington,53031,33,0 +2020-06-21,Jefferson,Washington,53031,33,0 +2020-06-22,Jefferson,Washington,53031,33,0 +2020-06-23,Jefferson,Washington,53031,33,0 +2020-06-24,Jefferson,Washington,53031,35,0 +2020-06-25,Jefferson,Washington,53031,36,0 +2020-06-26,Jefferson,Washington,53031,36,0 +2020-06-27,Jefferson,Washington,53031,37,0 +2020-06-28,Jefferson,Washington,53031,37,0 +2020-06-29,Jefferson,Washington,53031,38,0 +2020-06-30,Jefferson,Washington,53031,38,0 +2020-07-01,Jefferson,Washington,53031,38,0 +2020-07-02,Jefferson,Washington,53031,38,0 +2020-07-03,Jefferson,Washington,53031,38,0 +2020-07-04,Jefferson,Washington,53031,38,0 +2020-07-05,Jefferson,Washington,53031,39,0 +2020-07-06,Jefferson,Washington,53031,41,0 +2020-07-07,Jefferson,Washington,53031,41,0 +2020-07-08,Jefferson,Washington,53031,41,0 +2020-07-09,Jefferson,Washington,53031,41,0 +2020-02-28,King,Washington,53033,1,0 +2020-02-29,King,Washington,53033,4,1 +2020-03-01,King,Washington,53033,11,3 +2020-03-02,King,Washington,53033,15,6 +2020-03-03,King,Washington,53033,22,10 +2020-03-04,King,Washington,53033,33,11 +2020-03-05,King,Washington,53033,52,11 +2020-03-06,King,Washington,53033,59,12 +2020-03-07,King,Washington,53033,72,16 +2020-03-08,King,Washington,53033,91,18 +2020-03-09,King,Washington,53033,117,21 +2020-03-10,King,Washington,53033,191,23 +2020-03-11,King,Washington,53033,235,27 +2020-03-12,King,Washington,53033,271,28 +2020-03-13,King,Washington,53033,329,33 +2020-03-14,King,Washington,53033,389,36 +2020-03-15,King,Washington,53033,421,38 +2020-03-16,King,Washington,53033,489,44 +2020-03-17,King,Washington,53033,518,47 +2020-03-18,King,Washington,53033,563,57 +2020-03-19,King,Washington,53033,693,61 +2020-03-20,King,Washington,53033,794,68 +2020-03-21,King,Washington,53033,935,76 +2020-03-22,King,Washington,53033,1036,77 +2020-03-23,King,Washington,53033,1166,88 +2020-03-24,King,Washington,53033,1278,95 +2020-03-25,King,Washington,53033,1360,101 +2020-03-26,King,Washington,53033,1579,111 +2020-03-27,King,Washington,53033,1830,127 +2020-03-28,King,Washington,53033,2079,138 +2020-03-29,King,Washington,53033,2163,146 +2020-03-30,King,Washington,53033,2332,152 +2020-03-31,King,Washington,53033,2332,152 +2020-04-01,King,Washington,53033,2498,166 +2020-04-02,King,Washington,53033,2658,177 +2020-04-03,King,Washington,53033,2789,188 +2020-04-04,King,Washington,53033,2900,204 +2020-04-05,King,Washington,53033,3169,210 +2020-04-06,King,Washington,53033,3333,224 +2020-04-07,King,Washington,53033,3488,232 +2020-04-08,King,Washington,53033,3690,246 +2020-04-09,King,Washington,53033,3888,260 +2020-04-10,King,Washington,53033,4119,279 +2020-04-11,King,Washington,53033,4264,286 +2020-04-12,King,Washington,53033,4428,294 +2020-04-13,King,Washington,53033,4551,298 +2020-04-14,King,Washington,53033,4622,305 +2020-04-15,King,Washington,53033,4699,314 +2020-04-16,King,Washington,53033,4811,322 +2020-04-17,King,Washington,53033,4904,333 +2020-04-18,King,Washington,53033,5065,342 +2020-04-19,King,Washington,53033,5174,348 +2020-04-20,King,Washington,53033,5295,362 +2020-04-21,King,Washington,53033,5381,374 +2020-04-22,King,Washington,53033,5451,381 +2020-04-23,King,Washington,53033,5571,386 +2020-04-24,King,Washington,53033,5691,393 +2020-04-25,King,Washington,53033,5813,401 +2020-04-26,King,Washington,53033,5914,410 +2020-04-27,King,Washington,53033,5992,418 +2020-04-28,King,Washington,53033,6056,429 +2020-04-29,King,Washington,53033,6184,438 +2020-04-30,King,Washington,53033,6310,448 +2020-05-01,King,Washington,53033,6409,451 +2020-05-02,King,Washington,53033,6507,456 +2020-05-03,King,Washington,53033,6620,461 +2020-05-04,King,Washington,53033,6584,465 +2020-05-05,King,Washington,53033,6655,471 +2020-05-06,King,Washington,53033,6772,476 +2020-05-07,King,Washington,53033,6865,482 +2020-05-08,King,Washington,53033,6942,487 +2020-05-09,King,Washington,53033,7002,492 +2020-05-10,King,Washington,53033,7048,502 +2020-05-11,King,Washington,53033,7117,507 +2020-05-12,King,Washington,53033,7181,513 +2020-05-13,King,Washington,53033,7223,516 +2020-05-14,King,Washington,53033,7309,516 +2020-05-15,King,Washington,53033,7362,523 +2020-05-16,King,Washington,53033,7442,528 +2020-05-17,King,Washington,53033,7482,529 +2020-05-18,King,Washington,53033,7531,530 +2020-05-19,King,Washington,53033,7584,536 +2020-05-20,King,Washington,53033,7619,536 +2020-05-21,King,Washington,53033,7647,541 +2020-05-22,King,Washington,53033,7699,544 +2020-05-23,King,Washington,53033,7766,544 +2020-05-24,King,Washington,53033,7821,549 +2020-05-25,King,Washington,53033,7881,552 +2020-05-26,King,Washington,53033,7898,554 +2020-05-27,King,Washington,53033,7933,561 +2020-05-28,King,Washington,53033,7988,564 +2020-05-29,King,Washington,53033,8008,566 +2020-05-30,King,Washington,53033,8056,569 +2020-05-31,King,Washington,53033,8161,569 +2020-06-01,King,Washington,53033,8194,571 +2020-06-02,King,Washington,53033,8237,572 +2020-06-03,King,Washington,53033,8279,575 +2020-06-04,King,Washington,53033,8335,576 +2020-06-05,King,Washington,53033,8398,578 +2020-06-06,King,Washington,53033,8419,578 +2020-06-07,King,Washington,53033,8467,580 +2020-06-08,King,Washington,53033,8509,581 +2020-06-09,King,Washington,53033,8538,582 +2020-06-10,King,Washington,53033,8561,582 +2020-06-11,King,Washington,53033,8586,585 +2020-06-12,King,Washington,53033,8646,588 +2020-06-13,King,Washington,53033,8702,593 +2020-06-14,King,Washington,53033,8753,593 +2020-06-15,King,Washington,53033,8799,594 +2020-06-16,King,Washington,53033,8857,597 +2020-06-17,King,Washington,53033,8895,593 +2020-06-18,King,Washington,53033,8989,599 +2020-06-19,King,Washington,53033,9098,602 +2020-06-20,King,Washington,53033,9167,603 +2020-06-21,King,Washington,53033,9236,602 +2020-06-22,King,Washington,53033,9275,604 +2020-06-23,King,Washington,53033,9371,606 +2020-06-24,King,Washington,53033,9504,606 +2020-06-25,King,Washington,53033,9614,608 +2020-06-26,King,Washington,53033,9697,609 +2020-06-27,King,Washington,53033,9821,612 +2020-06-28,King,Washington,53033,9903,612 +2020-06-29,King,Washington,53033,10071,612 +2020-06-30,King,Washington,53033,10198,612 +2020-07-01,King,Washington,53033,10358,614 +2020-07-02,King,Washington,53033,10598,617 +2020-07-03,King,Washington,53033,10721,620 +2020-07-04,King,Washington,53033,10786,621 +2020-07-05,King,Washington,53033,11016,622 +2020-07-06,King,Washington,53033,11142,624 +2020-07-07,King,Washington,53033,11208,628 +2020-07-08,King,Washington,53033,11321,630 +2020-07-09,King,Washington,53033,11488,634 +2020-03-08,Kitsap,Washington,53035,1,0 +2020-03-09,Kitsap,Washington,53035,1,0 +2020-03-10,Kitsap,Washington,53035,2,0 +2020-03-11,Kitsap,Washington,53035,2,0 +2020-03-12,Kitsap,Washington,53035,2,0 +2020-03-13,Kitsap,Washington,53035,3,0 +2020-03-14,Kitsap,Washington,53035,3,0 +2020-03-15,Kitsap,Washington,53035,5,0 +2020-03-16,Kitsap,Washington,53035,7,0 +2020-03-17,Kitsap,Washington,53035,7,0 +2020-03-18,Kitsap,Washington,53035,9,0 +2020-03-19,Kitsap,Washington,53035,12,0 +2020-03-20,Kitsap,Washington,53035,12,0 +2020-03-21,Kitsap,Washington,53035,15,0 +2020-03-22,Kitsap,Washington,53035,20,0 +2020-03-23,Kitsap,Washington,53035,20,0 +2020-03-24,Kitsap,Washington,53035,20,0 +2020-03-25,Kitsap,Washington,53035,27,0 +2020-03-26,Kitsap,Washington,53035,33,0 +2020-03-27,Kitsap,Washington,53035,42,1 +2020-03-28,Kitsap,Washington,53035,49,1 +2020-03-29,Kitsap,Washington,53035,56,1 +2020-03-30,Kitsap,Washington,53035,63,1 +2020-03-31,Kitsap,Washington,53035,63,1 +2020-04-01,Kitsap,Washington,53035,74,1 +2020-04-02,Kitsap,Washington,53035,85,0 +2020-04-03,Kitsap,Washington,53035,95,0 +2020-04-04,Kitsap,Washington,53035,95,0 +2020-04-05,Kitsap,Washington,53035,102,0 +2020-04-06,Kitsap,Washington,53035,111,1 +2020-04-07,Kitsap,Washington,53035,119,1 +2020-04-08,Kitsap,Washington,53035,119,1 +2020-04-09,Kitsap,Washington,53035,123,1 +2020-04-10,Kitsap,Washington,53035,128,1 +2020-04-11,Kitsap,Washington,53035,132,1 +2020-04-12,Kitsap,Washington,53035,132,1 +2020-04-13,Kitsap,Washington,53035,132,1 +2020-04-14,Kitsap,Washington,53035,132,1 +2020-04-15,Kitsap,Washington,53035,132,1 +2020-04-16,Kitsap,Washington,53035,132,1 +2020-04-17,Kitsap,Washington,53035,135,1 +2020-04-18,Kitsap,Washington,53035,136,1 +2020-04-19,Kitsap,Washington,53035,138,1 +2020-04-20,Kitsap,Washington,53035,139,1 +2020-04-21,Kitsap,Washington,53035,140,2 +2020-04-22,Kitsap,Washington,53035,140,2 +2020-04-23,Kitsap,Washington,53035,144,2 +2020-04-24,Kitsap,Washington,53035,144,2 +2020-04-25,Kitsap,Washington,53035,146,2 +2020-04-26,Kitsap,Washington,53035,146,2 +2020-04-27,Kitsap,Washington,53035,148,2 +2020-04-28,Kitsap,Washington,53035,148,2 +2020-04-29,Kitsap,Washington,53035,148,2 +2020-04-30,Kitsap,Washington,53035,151,2 +2020-05-01,Kitsap,Washington,53035,152,2 +2020-05-02,Kitsap,Washington,53035,152,2 +2020-05-03,Kitsap,Washington,53035,152,2 +2020-05-04,Kitsap,Washington,53035,152,2 +2020-05-05,Kitsap,Washington,53035,152,2 +2020-05-06,Kitsap,Washington,53035,152,2 +2020-05-07,Kitsap,Washington,53035,154,2 +2020-05-08,Kitsap,Washington,53035,154,2 +2020-05-09,Kitsap,Washington,53035,155,2 +2020-05-10,Kitsap,Washington,53035,155,2 +2020-05-11,Kitsap,Washington,53035,156,2 +2020-05-12,Kitsap,Washington,53035,156,2 +2020-05-13,Kitsap,Washington,53035,157,2 +2020-05-14,Kitsap,Washington,53035,157,2 +2020-05-15,Kitsap,Washington,53035,157,2 +2020-05-16,Kitsap,Washington,53035,159,2 +2020-05-17,Kitsap,Washington,53035,159,2 +2020-05-18,Kitsap,Washington,53035,160,2 +2020-05-19,Kitsap,Washington,53035,161,2 +2020-05-20,Kitsap,Washington,53035,161,2 +2020-05-21,Kitsap,Washington,53035,161,2 +2020-05-22,Kitsap,Washington,53035,160,2 +2020-05-23,Kitsap,Washington,53035,161,2 +2020-05-24,Kitsap,Washington,53035,161,2 +2020-05-25,Kitsap,Washington,53035,161,2 +2020-05-26,Kitsap,Washington,53035,161,2 +2020-05-27,Kitsap,Washington,53035,161,2 +2020-05-28,Kitsap,Washington,53035,161,2 +2020-05-29,Kitsap,Washington,53035,161,2 +2020-05-30,Kitsap,Washington,53035,161,2 +2020-05-31,Kitsap,Washington,53035,161,2 +2020-06-01,Kitsap,Washington,53035,162,2 +2020-06-02,Kitsap,Washington,53035,162,2 +2020-06-03,Kitsap,Washington,53035,163,2 +2020-06-04,Kitsap,Washington,53035,163,2 +2020-06-05,Kitsap,Washington,53035,164,2 +2020-06-06,Kitsap,Washington,53035,165,2 +2020-06-07,Kitsap,Washington,53035,165,2 +2020-06-08,Kitsap,Washington,53035,165,2 +2020-06-09,Kitsap,Washington,53035,170,2 +2020-06-10,Kitsap,Washington,53035,172,2 +2020-06-11,Kitsap,Washington,53035,172,2 +2020-06-12,Kitsap,Washington,53035,173,2 +2020-06-13,Kitsap,Washington,53035,176,2 +2020-06-14,Kitsap,Washington,53035,176,2 +2020-06-15,Kitsap,Washington,53035,178,2 +2020-06-16,Kitsap,Washington,53035,178,2 +2020-06-17,Kitsap,Washington,53035,180,2 +2020-06-18,Kitsap,Washington,53035,182,2 +2020-06-19,Kitsap,Washington,53035,185,2 +2020-06-20,Kitsap,Washington,53035,189,2 +2020-06-21,Kitsap,Washington,53035,190,2 +2020-06-22,Kitsap,Washington,53035,191,2 +2020-06-23,Kitsap,Washington,53035,195,2 +2020-06-24,Kitsap,Washington,53035,198,2 +2020-06-25,Kitsap,Washington,53035,200,2 +2020-06-26,Kitsap,Washington,53035,205,2 +2020-06-27,Kitsap,Washington,53035,211,2 +2020-06-28,Kitsap,Washington,53035,213,2 +2020-06-29,Kitsap,Washington,53035,212,2 +2020-06-30,Kitsap,Washington,53035,221,2 +2020-07-01,Kitsap,Washington,53035,225,2 +2020-07-02,Kitsap,Washington,53035,230,2 +2020-07-03,Kitsap,Washington,53035,239,2 +2020-07-04,Kitsap,Washington,53035,241,2 +2020-07-05,Kitsap,Washington,53035,243,2 +2020-07-06,Kitsap,Washington,53035,248,2 +2020-07-07,Kitsap,Washington,53035,251,2 +2020-07-08,Kitsap,Washington,53035,261,2 +2020-07-09,Kitsap,Washington,53035,269,2 +2020-03-07,Kittitas,Washington,53037,1,0 +2020-03-08,Kittitas,Washington,53037,1,0 +2020-03-09,Kittitas,Washington,53037,1,0 +2020-03-10,Kittitas,Washington,53037,1,0 +2020-03-11,Kittitas,Washington,53037,3,0 +2020-03-12,Kittitas,Washington,53037,3,0 +2020-03-13,Kittitas,Washington,53037,3,0 +2020-03-14,Kittitas,Washington,53037,3,0 +2020-03-15,Kittitas,Washington,53037,3,0 +2020-03-16,Kittitas,Washington,53037,3,0 +2020-03-17,Kittitas,Washington,53037,3,0 +2020-03-18,Kittitas,Washington,53037,4,0 +2020-03-19,Kittitas,Washington,53037,4,0 +2020-03-20,Kittitas,Washington,53037,4,0 +2020-03-21,Kittitas,Washington,53037,4,0 +2020-03-22,Kittitas,Washington,53037,4,0 +2020-03-23,Kittitas,Washington,53037,5,0 +2020-03-24,Kittitas,Washington,53037,6,0 +2020-03-25,Kittitas,Washington,53037,6,0 +2020-03-26,Kittitas,Washington,53037,8,0 +2020-03-27,Kittitas,Washington,53037,8,0 +2020-03-28,Kittitas,Washington,53037,8,0 +2020-03-29,Kittitas,Washington,53037,8,0 +2020-03-30,Kittitas,Washington,53037,8,0 +2020-03-31,Kittitas,Washington,53037,8,0 +2020-04-01,Kittitas,Washington,53037,10,0 +2020-04-02,Kittitas,Washington,53037,10,0 +2020-04-03,Kittitas,Washington,53037,10,0 +2020-04-04,Kittitas,Washington,53037,10,0 +2020-04-05,Kittitas,Washington,53037,11,0 +2020-04-06,Kittitas,Washington,53037,13,0 +2020-04-07,Kittitas,Washington,53037,13,0 +2020-04-08,Kittitas,Washington,53037,15,0 +2020-04-09,Kittitas,Washington,53037,15,0 +2020-04-10,Kittitas,Washington,53037,15,0 +2020-04-11,Kittitas,Washington,53037,15,0 +2020-04-12,Kittitas,Washington,53037,15,0 +2020-04-13,Kittitas,Washington,53037,14,0 +2020-04-14,Kittitas,Washington,53037,14,0 +2020-04-15,Kittitas,Washington,53037,14,0 +2020-04-16,Kittitas,Washington,53037,14,0 +2020-04-17,Kittitas,Washington,53037,14,0 +2020-04-18,Kittitas,Washington,53037,14,0 +2020-04-19,Kittitas,Washington,53037,14,0 +2020-04-20,Kittitas,Washington,53037,14,0 +2020-04-21,Kittitas,Washington,53037,14,0 +2020-04-22,Kittitas,Washington,53037,14,0 +2020-04-23,Kittitas,Washington,53037,14,0 +2020-04-24,Kittitas,Washington,53037,14,0 +2020-04-25,Kittitas,Washington,53037,14,0 +2020-04-26,Kittitas,Washington,53037,14,0 +2020-04-27,Kittitas,Washington,53037,14,0 +2020-04-28,Kittitas,Washington,53037,15,0 +2020-04-29,Kittitas,Washington,53037,14,0 +2020-04-30,Kittitas,Washington,53037,14,0 +2020-05-01,Kittitas,Washington,53037,15,0 +2020-05-02,Kittitas,Washington,53037,15,0 +2020-05-03,Kittitas,Washington,53037,15,0 +2020-05-04,Kittitas,Washington,53037,14,0 +2020-05-05,Kittitas,Washington,53037,14,0 +2020-05-06,Kittitas,Washington,53037,15,0 +2020-05-07,Kittitas,Washington,53037,15,0 +2020-05-08,Kittitas,Washington,53037,15,0 +2020-05-09,Kittitas,Washington,53037,17,0 +2020-05-10,Kittitas,Washington,53037,18,0 +2020-05-11,Kittitas,Washington,53037,40,0 +2020-05-12,Kittitas,Washington,53037,40,0 +2020-05-13,Kittitas,Washington,53037,44,0 +2020-05-14,Kittitas,Washington,53037,44,0 +2020-05-15,Kittitas,Washington,53037,47,0 +2020-05-16,Kittitas,Washington,53037,51,0 +2020-05-17,Kittitas,Washington,53037,51,0 +2020-05-18,Kittitas,Washington,53037,57,0 +2020-05-19,Kittitas,Washington,53037,61,0 +2020-05-20,Kittitas,Washington,53037,61,0 +2020-05-21,Kittitas,Washington,53037,61,0 +2020-05-22,Kittitas,Washington,53037,66,0 +2020-05-23,Kittitas,Washington,53037,73,0 +2020-05-24,Kittitas,Washington,53037,73,0 +2020-05-25,Kittitas,Washington,53037,73,0 +2020-05-26,Kittitas,Washington,53037,75,0 +2020-05-27,Kittitas,Washington,53037,80,0 +2020-05-28,Kittitas,Washington,53037,80,0 +2020-05-29,Kittitas,Washington,53037,83,0 +2020-05-30,Kittitas,Washington,53037,87,0 +2020-05-31,Kittitas,Washington,53037,88,0 +2020-06-01,Kittitas,Washington,53037,88,0 +2020-06-02,Kittitas,Washington,53037,89,0 +2020-06-03,Kittitas,Washington,53037,89,0 +2020-06-04,Kittitas,Washington,53037,88,0 +2020-06-05,Kittitas,Washington,53037,88,0 +2020-06-06,Kittitas,Washington,53037,88,0 +2020-06-07,Kittitas,Washington,53037,89,0 +2020-06-08,Kittitas,Washington,53037,90,0 +2020-06-09,Kittitas,Washington,53037,90,0 +2020-06-10,Kittitas,Washington,53037,91,0 +2020-06-11,Kittitas,Washington,53037,91,0 +2020-06-12,Kittitas,Washington,53037,92,0 +2020-06-13,Kittitas,Washington,53037,92,0 +2020-06-14,Kittitas,Washington,53037,92,0 +2020-06-15,Kittitas,Washington,53037,92,0 +2020-06-16,Kittitas,Washington,53037,92,0 +2020-06-17,Kittitas,Washington,53037,92,0 +2020-06-18,Kittitas,Washington,53037,92,0 +2020-06-19,Kittitas,Washington,53037,94,0 +2020-06-20,Kittitas,Washington,53037,95,0 +2020-06-21,Kittitas,Washington,53037,98,0 +2020-06-22,Kittitas,Washington,53037,99,0 +2020-06-23,Kittitas,Washington,53037,100,0 +2020-06-24,Kittitas,Washington,53037,109,0 +2020-06-25,Kittitas,Washington,53037,112,0 +2020-06-26,Kittitas,Washington,53037,113,0 +2020-06-27,Kittitas,Washington,53037,117,0 +2020-06-28,Kittitas,Washington,53037,122,0 +2020-06-29,Kittitas,Washington,53037,127,0 +2020-06-30,Kittitas,Washington,53037,128,0 +2020-07-01,Kittitas,Washington,53037,131,0 +2020-07-02,Kittitas,Washington,53037,140,0 +2020-07-03,Kittitas,Washington,53037,140,0 +2020-07-04,Kittitas,Washington,53037,140,0 +2020-07-05,Kittitas,Washington,53037,146,0 +2020-07-06,Kittitas,Washington,53037,158,0 +2020-07-07,Kittitas,Washington,53037,160,0 +2020-07-08,Kittitas,Washington,53037,162,0 +2020-07-09,Kittitas,Washington,53037,165,0 +2020-03-14,Klickitat,Washington,53039,1,0 +2020-03-15,Klickitat,Washington,53039,1,0 +2020-03-16,Klickitat,Washington,53039,1,0 +2020-03-17,Klickitat,Washington,53039,1,0 +2020-03-18,Klickitat,Washington,53039,1,0 +2020-03-19,Klickitat,Washington,53039,2,0 +2020-03-20,Klickitat,Washington,53039,2,0 +2020-03-21,Klickitat,Washington,53039,4,0 +2020-03-22,Klickitat,Washington,53039,4,0 +2020-03-23,Klickitat,Washington,53039,4,0 +2020-03-24,Klickitat,Washington,53039,6,0 +2020-03-25,Klickitat,Washington,53039,6,0 +2020-03-26,Klickitat,Washington,53039,7,0 +2020-03-27,Klickitat,Washington,53039,7,0 +2020-03-28,Klickitat,Washington,53039,7,0 +2020-03-29,Klickitat,Washington,53039,7,1 +2020-03-30,Klickitat,Washington,53039,7,1 +2020-03-31,Klickitat,Washington,53039,7,1 +2020-04-01,Klickitat,Washington,53039,9,1 +2020-04-02,Klickitat,Washington,53039,9,1 +2020-04-03,Klickitat,Washington,53039,9,1 +2020-04-04,Klickitat,Washington,53039,9,1 +2020-04-05,Klickitat,Washington,53039,9,1 +2020-04-06,Klickitat,Washington,53039,11,1 +2020-04-07,Klickitat,Washington,53039,11,1 +2020-04-08,Klickitat,Washington,53039,11,1 +2020-04-09,Klickitat,Washington,53039,11,1 +2020-04-10,Klickitat,Washington,53039,12,1 +2020-04-11,Klickitat,Washington,53039,12,1 +2020-04-12,Klickitat,Washington,53039,14,1 +2020-04-13,Klickitat,Washington,53039,14,1 +2020-04-14,Klickitat,Washington,53039,14,2 +2020-04-15,Klickitat,Washington,53039,16,2 +2020-04-16,Klickitat,Washington,53039,16,2 +2020-04-17,Klickitat,Washington,53039,16,3 +2020-04-18,Klickitat,Washington,53039,16,3 +2020-04-19,Klickitat,Washington,53039,16,3 +2020-04-20,Klickitat,Washington,53039,16,3 +2020-04-21,Klickitat,Washington,53039,16,3 +2020-04-22,Klickitat,Washington,53039,16,3 +2020-04-23,Klickitat,Washington,53039,16,3 +2020-04-24,Klickitat,Washington,53039,16,3 +2020-04-25,Klickitat,Washington,53039,16,3 +2020-04-26,Klickitat,Washington,53039,16,3 +2020-04-27,Klickitat,Washington,53039,16,3 +2020-04-28,Klickitat,Washington,53039,16,3 +2020-04-29,Klickitat,Washington,53039,16,3 +2020-04-30,Klickitat,Washington,53039,17,3 +2020-05-01,Klickitat,Washington,53039,17,3 +2020-05-02,Klickitat,Washington,53039,17,3 +2020-05-03,Klickitat,Washington,53039,18,3 +2020-05-04,Klickitat,Washington,53039,18,3 +2020-05-05,Klickitat,Washington,53039,17,3 +2020-05-06,Klickitat,Washington,53039,18,3 +2020-05-07,Klickitat,Washington,53039,19,3 +2020-05-08,Klickitat,Washington,53039,19,3 +2020-05-09,Klickitat,Washington,53039,19,3 +2020-05-10,Klickitat,Washington,53039,19,3 +2020-05-11,Klickitat,Washington,53039,20,3 +2020-05-12,Klickitat,Washington,53039,21,3 +2020-05-13,Klickitat,Washington,53039,22,3 +2020-05-14,Klickitat,Washington,53039,22,3 +2020-05-15,Klickitat,Washington,53039,22,3 +2020-05-16,Klickitat,Washington,53039,22,3 +2020-05-17,Klickitat,Washington,53039,22,3 +2020-05-18,Klickitat,Washington,53039,24,3 +2020-05-19,Klickitat,Washington,53039,25,3 +2020-05-20,Klickitat,Washington,53039,25,3 +2020-05-21,Klickitat,Washington,53039,25,3 +2020-05-22,Klickitat,Washington,53039,24,3 +2020-05-23,Klickitat,Washington,53039,24,3 +2020-05-24,Klickitat,Washington,53039,24,3 +2020-05-25,Klickitat,Washington,53039,24,3 +2020-05-26,Klickitat,Washington,53039,24,3 +2020-05-27,Klickitat,Washington,53039,24,3 +2020-05-28,Klickitat,Washington,53039,24,3 +2020-05-29,Klickitat,Washington,53039,24,3 +2020-05-30,Klickitat,Washington,53039,24,3 +2020-05-31,Klickitat,Washington,53039,25,3 +2020-06-01,Klickitat,Washington,53039,25,3 +2020-06-02,Klickitat,Washington,53039,28,3 +2020-06-03,Klickitat,Washington,53039,28,3 +2020-06-04,Klickitat,Washington,53039,29,3 +2020-06-05,Klickitat,Washington,53039,30,3 +2020-06-06,Klickitat,Washington,53039,33,3 +2020-06-07,Klickitat,Washington,53039,33,3 +2020-06-08,Klickitat,Washington,53039,35,3 +2020-06-09,Klickitat,Washington,53039,37,3 +2020-06-10,Klickitat,Washington,53039,44,3 +2020-06-11,Klickitat,Washington,53039,44,3 +2020-06-12,Klickitat,Washington,53039,44,3 +2020-06-13,Klickitat,Washington,53039,45,3 +2020-06-14,Klickitat,Washington,53039,45,3 +2020-06-15,Klickitat,Washington,53039,46,3 +2020-06-16,Klickitat,Washington,53039,49,3 +2020-06-17,Klickitat,Washington,53039,49,3 +2020-06-18,Klickitat,Washington,53039,52,3 +2020-06-19,Klickitat,Washington,53039,51,3 +2020-06-20,Klickitat,Washington,53039,51,3 +2020-06-21,Klickitat,Washington,53039,51,3 +2020-06-22,Klickitat,Washington,53039,52,3 +2020-06-23,Klickitat,Washington,53039,53,3 +2020-06-24,Klickitat,Washington,53039,55,3 +2020-06-25,Klickitat,Washington,53039,55,3 +2020-06-26,Klickitat,Washington,53039,56,3 +2020-06-27,Klickitat,Washington,53039,57,3 +2020-06-28,Klickitat,Washington,53039,59,3 +2020-06-29,Klickitat,Washington,53039,60,3 +2020-06-30,Klickitat,Washington,53039,59,3 +2020-07-01,Klickitat,Washington,53039,59,3 +2020-07-02,Klickitat,Washington,53039,66,3 +2020-07-03,Klickitat,Washington,53039,66,3 +2020-07-04,Klickitat,Washington,53039,67,3 +2020-07-05,Klickitat,Washington,53039,67,3 +2020-07-06,Klickitat,Washington,53039,67,3 +2020-07-07,Klickitat,Washington,53039,70,3 +2020-07-08,Klickitat,Washington,53039,73,3 +2020-07-09,Klickitat,Washington,53039,76,3 +2020-03-15,Lewis,Washington,53041,1,0 +2020-03-16,Lewis,Washington,53041,1,0 +2020-03-17,Lewis,Washington,53041,1,0 +2020-03-18,Lewis,Washington,53041,1,0 +2020-03-19,Lewis,Washington,53041,1,0 +2020-03-20,Lewis,Washington,53041,2,0 +2020-03-21,Lewis,Washington,53041,2,0 +2020-03-22,Lewis,Washington,53041,2,0 +2020-03-23,Lewis,Washington,53041,2,0 +2020-03-24,Lewis,Washington,53041,2,0 +2020-03-25,Lewis,Washington,53041,5,0 +2020-03-26,Lewis,Washington,53041,5,0 +2020-03-27,Lewis,Washington,53041,7,0 +2020-03-28,Lewis,Washington,53041,7,0 +2020-03-29,Lewis,Washington,53041,10,0 +2020-03-30,Lewis,Washington,53041,10,0 +2020-03-31,Lewis,Washington,53041,10,0 +2020-04-01,Lewis,Washington,53041,10,0 +2020-04-02,Lewis,Washington,53041,12,0 +2020-04-03,Lewis,Washington,53041,12,0 +2020-04-04,Lewis,Washington,53041,12,0 +2020-04-05,Lewis,Washington,53041,16,0 +2020-04-06,Lewis,Washington,53041,16,1 +2020-04-07,Lewis,Washington,53041,16,1 +2020-04-08,Lewis,Washington,53041,17,2 +2020-04-09,Lewis,Washington,53041,18,2 +2020-04-10,Lewis,Washington,53041,18,2 +2020-04-11,Lewis,Washington,53041,18,2 +2020-04-12,Lewis,Washington,53041,18,2 +2020-04-13,Lewis,Washington,53041,17,2 +2020-04-14,Lewis,Washington,53041,19,2 +2020-04-15,Lewis,Washington,53041,19,2 +2020-04-16,Lewis,Washington,53041,19,2 +2020-04-17,Lewis,Washington,53041,21,2 +2020-04-18,Lewis,Washington,53041,21,2 +2020-04-19,Lewis,Washington,53041,21,2 +2020-04-20,Lewis,Washington,53041,21,2 +2020-04-21,Lewis,Washington,53041,21,3 +2020-04-22,Lewis,Washington,53041,22,3 +2020-04-23,Lewis,Washington,53041,25,3 +2020-04-24,Lewis,Washington,53041,25,3 +2020-04-25,Lewis,Washington,53041,29,3 +2020-04-26,Lewis,Washington,53041,29,3 +2020-04-27,Lewis,Washington,53041,29,3 +2020-04-28,Lewis,Washington,53041,29,3 +2020-04-29,Lewis,Washington,53041,29,3 +2020-04-30,Lewis,Washington,53041,29,3 +2020-05-01,Lewis,Washington,53041,29,3 +2020-05-02,Lewis,Washington,53041,29,3 +2020-05-03,Lewis,Washington,53041,29,3 +2020-05-04,Lewis,Washington,53041,29,3 +2020-05-05,Lewis,Washington,53041,29,3 +2020-05-06,Lewis,Washington,53041,29,3 +2020-05-07,Lewis,Washington,53041,30,3 +2020-05-08,Lewis,Washington,53041,30,3 +2020-05-09,Lewis,Washington,53041,30,3 +2020-05-10,Lewis,Washington,53041,30,3 +2020-05-11,Lewis,Washington,53041,30,3 +2020-05-12,Lewis,Washington,53041,32,3 +2020-05-13,Lewis,Washington,53041,32,3 +2020-05-14,Lewis,Washington,53041,32,3 +2020-05-15,Lewis,Washington,53041,32,3 +2020-05-16,Lewis,Washington,53041,34,3 +2020-05-17,Lewis,Washington,53041,34,3 +2020-05-18,Lewis,Washington,53041,35,3 +2020-05-19,Lewis,Washington,53041,35,3 +2020-05-20,Lewis,Washington,53041,35,3 +2020-05-21,Lewis,Washington,53041,35,3 +2020-05-22,Lewis,Washington,53041,35,3 +2020-05-23,Lewis,Washington,53041,35,3 +2020-05-24,Lewis,Washington,53041,35,3 +2020-05-25,Lewis,Washington,53041,35,3 +2020-05-26,Lewis,Washington,53041,35,3 +2020-05-27,Lewis,Washington,53041,35,3 +2020-05-28,Lewis,Washington,53041,35,3 +2020-05-29,Lewis,Washington,53041,35,3 +2020-05-30,Lewis,Washington,53041,36,3 +2020-05-31,Lewis,Washington,53041,37,3 +2020-06-01,Lewis,Washington,53041,37,3 +2020-06-02,Lewis,Washington,53041,37,3 +2020-06-03,Lewis,Washington,53041,37,3 +2020-06-04,Lewis,Washington,53041,37,3 +2020-06-05,Lewis,Washington,53041,37,3 +2020-06-06,Lewis,Washington,53041,37,3 +2020-06-07,Lewis,Washington,53041,37,3 +2020-06-08,Lewis,Washington,53041,37,3 +2020-06-09,Lewis,Washington,53041,37,3 +2020-06-10,Lewis,Washington,53041,37,3 +2020-06-11,Lewis,Washington,53041,37,3 +2020-06-12,Lewis,Washington,53041,38,3 +2020-06-13,Lewis,Washington,53041,38,3 +2020-06-14,Lewis,Washington,53041,38,3 +2020-06-15,Lewis,Washington,53041,39,3 +2020-06-16,Lewis,Washington,53041,40,3 +2020-06-17,Lewis,Washington,53041,41,3 +2020-06-18,Lewis,Washington,53041,43,3 +2020-06-19,Lewis,Washington,53041,47,3 +2020-06-20,Lewis,Washington,53041,47,3 +2020-06-21,Lewis,Washington,53041,49,3 +2020-06-22,Lewis,Washington,53041,49,3 +2020-06-23,Lewis,Washington,53041,50,3 +2020-06-24,Lewis,Washington,53041,52,3 +2020-06-25,Lewis,Washington,53041,53,3 +2020-06-26,Lewis,Washington,53041,57,3 +2020-06-27,Lewis,Washington,53041,60,3 +2020-06-28,Lewis,Washington,53041,64,3 +2020-06-29,Lewis,Washington,53041,64,3 +2020-06-30,Lewis,Washington,53041,65,3 +2020-07-01,Lewis,Washington,53041,68,3 +2020-07-02,Lewis,Washington,53041,71,3 +2020-07-03,Lewis,Washington,53041,70,3 +2020-07-04,Lewis,Washington,53041,75,3 +2020-07-05,Lewis,Washington,53041,75,3 +2020-07-06,Lewis,Washington,53041,77,3 +2020-07-07,Lewis,Washington,53041,78,3 +2020-07-08,Lewis,Washington,53041,79,3 +2020-07-09,Lewis,Washington,53041,85,3 +2020-03-15,Lincoln,Washington,53043,1,0 +2020-03-16,Lincoln,Washington,53043,1,0 +2020-03-17,Lincoln,Washington,53043,1,0 +2020-03-18,Lincoln,Washington,53043,1,0 +2020-03-19,Lincoln,Washington,53043,1,0 +2020-03-20,Lincoln,Washington,53043,1,0 +2020-03-21,Lincoln,Washington,53043,1,0 +2020-03-22,Lincoln,Washington,53043,1,0 +2020-03-23,Lincoln,Washington,53043,1,0 +2020-03-24,Lincoln,Washington,53043,1,0 +2020-03-25,Lincoln,Washington,53043,1,0 +2020-03-26,Lincoln,Washington,53043,1,0 +2020-03-27,Lincoln,Washington,53043,1,0 +2020-03-28,Lincoln,Washington,53043,1,0 +2020-03-29,Lincoln,Washington,53043,1,0 +2020-03-30,Lincoln,Washington,53043,1,0 +2020-03-31,Lincoln,Washington,53043,1,0 +2020-04-01,Lincoln,Washington,53043,1,0 +2020-04-02,Lincoln,Washington,53043,1,0 +2020-04-03,Lincoln,Washington,53043,1,0 +2020-04-04,Lincoln,Washington,53043,1,0 +2020-04-05,Lincoln,Washington,53043,1,0 +2020-04-06,Lincoln,Washington,53043,1,0 +2020-04-07,Lincoln,Washington,53043,1,0 +2020-04-08,Lincoln,Washington,53043,1,0 +2020-04-09,Lincoln,Washington,53043,1,0 +2020-04-10,Lincoln,Washington,53043,1,0 +2020-04-11,Lincoln,Washington,53043,2,0 +2020-04-12,Lincoln,Washington,53043,2,0 +2020-04-13,Lincoln,Washington,53043,2,0 +2020-04-14,Lincoln,Washington,53043,2,0 +2020-04-15,Lincoln,Washington,53043,2,0 +2020-04-16,Lincoln,Washington,53043,2,0 +2020-04-17,Lincoln,Washington,53043,2,0 +2020-04-18,Lincoln,Washington,53043,2,0 +2020-04-19,Lincoln,Washington,53043,2,0 +2020-04-20,Lincoln,Washington,53043,2,0 +2020-04-21,Lincoln,Washington,53043,2,0 +2020-04-22,Lincoln,Washington,53043,2,0 +2020-04-23,Lincoln,Washington,53043,2,0 +2020-04-24,Lincoln,Washington,53043,2,0 +2020-04-25,Lincoln,Washington,53043,2,0 +2020-04-26,Lincoln,Washington,53043,2,0 +2020-04-27,Lincoln,Washington,53043,2,0 +2020-04-28,Lincoln,Washington,53043,2,0 +2020-04-29,Lincoln,Washington,53043,2,0 +2020-04-30,Lincoln,Washington,53043,2,0 +2020-05-01,Lincoln,Washington,53043,2,0 +2020-05-02,Lincoln,Washington,53043,2,0 +2020-05-03,Lincoln,Washington,53043,2,0 +2020-05-04,Lincoln,Washington,53043,2,0 +2020-05-05,Lincoln,Washington,53043,2,0 +2020-05-06,Lincoln,Washington,53043,2,0 +2020-05-07,Lincoln,Washington,53043,2,0 +2020-05-08,Lincoln,Washington,53043,2,0 +2020-05-09,Lincoln,Washington,53043,2,0 +2020-05-10,Lincoln,Washington,53043,2,0 +2020-05-11,Lincoln,Washington,53043,2,0 +2020-05-12,Lincoln,Washington,53043,2,0 +2020-05-13,Lincoln,Washington,53043,2,0 +2020-05-14,Lincoln,Washington,53043,2,0 +2020-05-15,Lincoln,Washington,53043,2,0 +2020-05-16,Lincoln,Washington,53043,2,0 +2020-05-17,Lincoln,Washington,53043,2,0 +2020-05-18,Lincoln,Washington,53043,2,0 +2020-05-19,Lincoln,Washington,53043,2,0 +2020-05-20,Lincoln,Washington,53043,2,0 +2020-05-21,Lincoln,Washington,53043,2,0 +2020-05-22,Lincoln,Washington,53043,2,0 +2020-05-23,Lincoln,Washington,53043,2,0 +2020-05-24,Lincoln,Washington,53043,2,0 +2020-05-25,Lincoln,Washington,53043,2,0 +2020-05-26,Lincoln,Washington,53043,2,0 +2020-05-27,Lincoln,Washington,53043,2,0 +2020-05-28,Lincoln,Washington,53043,2,0 +2020-05-29,Lincoln,Washington,53043,2,0 +2020-05-30,Lincoln,Washington,53043,2,0 +2020-05-31,Lincoln,Washington,53043,2,0 +2020-06-01,Lincoln,Washington,53043,2,0 +2020-06-02,Lincoln,Washington,53043,2,0 +2020-06-03,Lincoln,Washington,53043,2,0 +2020-06-04,Lincoln,Washington,53043,2,0 +2020-06-05,Lincoln,Washington,53043,2,0 +2020-06-06,Lincoln,Washington,53043,2,0 +2020-06-07,Lincoln,Washington,53043,2,0 +2020-06-08,Lincoln,Washington,53043,2,0 +2020-06-09,Lincoln,Washington,53043,2,0 +2020-06-10,Lincoln,Washington,53043,2,0 +2020-06-11,Lincoln,Washington,53043,2,0 +2020-06-12,Lincoln,Washington,53043,2,0 +2020-06-13,Lincoln,Washington,53043,2,0 +2020-06-14,Lincoln,Washington,53043,2,0 +2020-06-15,Lincoln,Washington,53043,2,0 +2020-06-16,Lincoln,Washington,53043,2,0 +2020-06-17,Lincoln,Washington,53043,2,0 +2020-06-18,Lincoln,Washington,53043,2,0 +2020-06-19,Lincoln,Washington,53043,2,0 +2020-06-20,Lincoln,Washington,53043,2,0 +2020-06-21,Lincoln,Washington,53043,2,0 +2020-06-22,Lincoln,Washington,53043,2,0 +2020-06-23,Lincoln,Washington,53043,2,0 +2020-06-24,Lincoln,Washington,53043,2,0 +2020-06-25,Lincoln,Washington,53043,2,0 +2020-06-26,Lincoln,Washington,53043,2,0 +2020-06-27,Lincoln,Washington,53043,3,0 +2020-06-28,Lincoln,Washington,53043,3,0 +2020-06-29,Lincoln,Washington,53043,3,0 +2020-06-30,Lincoln,Washington,53043,4,0 +2020-07-01,Lincoln,Washington,53043,4,0 +2020-07-02,Lincoln,Washington,53043,4,0 +2020-07-03,Lincoln,Washington,53043,4,0 +2020-07-04,Lincoln,Washington,53043,4,0 +2020-07-05,Lincoln,Washington,53043,4,0 +2020-07-06,Lincoln,Washington,53043,4,0 +2020-07-07,Lincoln,Washington,53043,4,0 +2020-07-08,Lincoln,Washington,53043,4,0 +2020-07-09,Lincoln,Washington,53043,4,0 +2020-03-17,Mason,Washington,53045,1,0 +2020-03-18,Mason,Washington,53045,1,0 +2020-03-19,Mason,Washington,53045,1,0 +2020-03-20,Mason,Washington,53045,1,0 +2020-03-21,Mason,Washington,53045,1,0 +2020-03-22,Mason,Washington,53045,1,0 +2020-03-23,Mason,Washington,53045,1,0 +2020-03-24,Mason,Washington,53045,2,0 +2020-03-25,Mason,Washington,53045,2,0 +2020-03-26,Mason,Washington,53045,2,0 +2020-03-27,Mason,Washington,53045,2,0 +2020-03-28,Mason,Washington,53045,2,0 +2020-03-29,Mason,Washington,53045,2,0 +2020-03-30,Mason,Washington,53045,2,0 +2020-03-31,Mason,Washington,53045,2,0 +2020-04-01,Mason,Washington,53045,6,0 +2020-04-02,Mason,Washington,53045,13,0 +2020-04-03,Mason,Washington,53045,13,0 +2020-04-04,Mason,Washington,53045,13,0 +2020-04-05,Mason,Washington,53045,14,0 +2020-04-06,Mason,Washington,53045,15,0 +2020-04-07,Mason,Washington,53045,17,0 +2020-04-08,Mason,Washington,53045,17,0 +2020-04-09,Mason,Washington,53045,18,0 +2020-04-10,Mason,Washington,53045,18,0 +2020-04-11,Mason,Washington,53045,19,0 +2020-04-12,Mason,Washington,53045,19,0 +2020-04-13,Mason,Washington,53045,19,0 +2020-04-14,Mason,Washington,53045,19,0 +2020-04-15,Mason,Washington,53045,20,0 +2020-04-16,Mason,Washington,53045,21,0 +2020-04-17,Mason,Washington,53045,22,0 +2020-04-18,Mason,Washington,53045,22,0 +2020-04-19,Mason,Washington,53045,22,0 +2020-04-20,Mason,Washington,53045,22,0 +2020-04-21,Mason,Washington,53045,22,0 +2020-04-22,Mason,Washington,53045,22,0 +2020-04-23,Mason,Washington,53045,22,0 +2020-04-24,Mason,Washington,53045,22,0 +2020-04-25,Mason,Washington,53045,22,0 +2020-04-26,Mason,Washington,53045,22,1 +2020-04-27,Mason,Washington,53045,23,1 +2020-04-28,Mason,Washington,53045,23,1 +2020-04-29,Mason,Washington,53045,23,1 +2020-04-30,Mason,Washington,53045,23,1 +2020-05-01,Mason,Washington,53045,25,1 +2020-05-02,Mason,Washington,53045,25,1 +2020-05-03,Mason,Washington,53045,26,1 +2020-05-04,Mason,Washington,53045,26,1 +2020-05-05,Mason,Washington,53045,26,1 +2020-05-06,Mason,Washington,53045,26,1 +2020-05-07,Mason,Washington,53045,28,1 +2020-05-08,Mason,Washington,53045,28,1 +2020-05-09,Mason,Washington,53045,28,1 +2020-05-10,Mason,Washington,53045,28,1 +2020-05-11,Mason,Washington,53045,28,1 +2020-05-12,Mason,Washington,53045,29,1 +2020-05-13,Mason,Washington,53045,30,1 +2020-05-14,Mason,Washington,53045,30,1 +2020-05-15,Mason,Washington,53045,30,1 +2020-05-16,Mason,Washington,53045,30,1 +2020-05-17,Mason,Washington,53045,30,1 +2020-05-18,Mason,Washington,53045,33,1 +2020-05-19,Mason,Washington,53045,33,1 +2020-05-20,Mason,Washington,53045,33,1 +2020-05-21,Mason,Washington,53045,33,1 +2020-05-22,Mason,Washington,53045,34,1 +2020-05-23,Mason,Washington,53045,34,1 +2020-05-24,Mason,Washington,53045,34,1 +2020-05-25,Mason,Washington,53045,34,1 +2020-05-26,Mason,Washington,53045,34,1 +2020-05-27,Mason,Washington,53045,34,1 +2020-05-28,Mason,Washington,53045,34,1 +2020-05-29,Mason,Washington,53045,35,1 +2020-05-30,Mason,Washington,53045,35,1 +2020-05-31,Mason,Washington,53045,36,1 +2020-06-01,Mason,Washington,53045,36,1 +2020-06-02,Mason,Washington,53045,36,1 +2020-06-03,Mason,Washington,53045,36,1 +2020-06-04,Mason,Washington,53045,36,1 +2020-06-05,Mason,Washington,53045,37,1 +2020-06-06,Mason,Washington,53045,37,1 +2020-06-07,Mason,Washington,53045,38,1 +2020-06-08,Mason,Washington,53045,38,1 +2020-06-09,Mason,Washington,53045,39,1 +2020-06-10,Mason,Washington,53045,39,1 +2020-06-11,Mason,Washington,53045,39,1 +2020-06-12,Mason,Washington,53045,39,1 +2020-06-13,Mason,Washington,53045,39,1 +2020-06-14,Mason,Washington,53045,40,1 +2020-06-15,Mason,Washington,53045,40,1 +2020-06-16,Mason,Washington,53045,40,1 +2020-06-17,Mason,Washington,53045,41,1 +2020-06-18,Mason,Washington,53045,41,1 +2020-06-19,Mason,Washington,53045,41,1 +2020-06-20,Mason,Washington,53045,42,1 +2020-06-21,Mason,Washington,53045,42,1 +2020-06-22,Mason,Washington,53045,43,1 +2020-06-23,Mason,Washington,53045,43,1 +2020-06-24,Mason,Washington,53045,43,1 +2020-06-25,Mason,Washington,53045,46,1 +2020-06-26,Mason,Washington,53045,45,1 +2020-06-27,Mason,Washington,53045,46,1 +2020-06-28,Mason,Washington,53045,47,1 +2020-06-29,Mason,Washington,53045,47,1 +2020-06-30,Mason,Washington,53045,50,1 +2020-07-01,Mason,Washington,53045,51,1 +2020-07-02,Mason,Washington,53045,52,1 +2020-07-03,Mason,Washington,53045,53,1 +2020-07-04,Mason,Washington,53045,53,1 +2020-07-05,Mason,Washington,53045,53,1 +2020-07-06,Mason,Washington,53045,54,1 +2020-07-07,Mason,Washington,53045,55,1 +2020-07-08,Mason,Washington,53045,55,1 +2020-07-09,Mason,Washington,53045,55,1 +2020-03-25,Okanogan,Washington,53047,1,0 +2020-03-26,Okanogan,Washington,53047,1,0 +2020-03-27,Okanogan,Washington,53047,2,0 +2020-03-28,Okanogan,Washington,53047,3,0 +2020-03-29,Okanogan,Washington,53047,3,0 +2020-03-30,Okanogan,Washington,53047,3,0 +2020-03-31,Okanogan,Washington,53047,3,0 +2020-04-01,Okanogan,Washington,53047,3,0 +2020-04-02,Okanogan,Washington,53047,4,0 +2020-04-03,Okanogan,Washington,53047,4,0 +2020-04-04,Okanogan,Washington,53047,7,0 +2020-04-05,Okanogan,Washington,53047,9,0 +2020-04-06,Okanogan,Washington,53047,9,0 +2020-04-07,Okanogan,Washington,53047,10,0 +2020-04-08,Okanogan,Washington,53047,12,0 +2020-04-09,Okanogan,Washington,53047,12,0 +2020-04-10,Okanogan,Washington,53047,14,0 +2020-04-11,Okanogan,Washington,53047,14,0 +2020-04-12,Okanogan,Washington,53047,14,0 +2020-04-13,Okanogan,Washington,53047,15,0 +2020-04-14,Okanogan,Washington,53047,15,0 +2020-04-15,Okanogan,Washington,53047,15,0 +2020-04-16,Okanogan,Washington,53047,14,0 +2020-04-17,Okanogan,Washington,53047,14,0 +2020-04-18,Okanogan,Washington,53047,14,0 +2020-04-19,Okanogan,Washington,53047,14,0 +2020-04-20,Okanogan,Washington,53047,14,0 +2020-04-21,Okanogan,Washington,53047,14,0 +2020-04-22,Okanogan,Washington,53047,14,1 +2020-04-23,Okanogan,Washington,53047,18,1 +2020-04-24,Okanogan,Washington,53047,18,1 +2020-04-25,Okanogan,Washington,53047,19,1 +2020-04-26,Okanogan,Washington,53047,19,1 +2020-04-27,Okanogan,Washington,53047,20,1 +2020-04-28,Okanogan,Washington,53047,21,1 +2020-04-29,Okanogan,Washington,53047,26,1 +2020-04-30,Okanogan,Washington,53047,26,1 +2020-05-01,Okanogan,Washington,53047,25,1 +2020-05-02,Okanogan,Washington,53047,25,1 +2020-05-03,Okanogan,Washington,53047,25,1 +2020-05-04,Okanogan,Washington,53047,25,1 +2020-05-05,Okanogan,Washington,53047,25,1 +2020-05-06,Okanogan,Washington,53047,25,2 +2020-05-07,Okanogan,Washington,53047,25,2 +2020-05-08,Okanogan,Washington,53047,25,2 +2020-05-09,Okanogan,Washington,53047,27,2 +2020-05-10,Okanogan,Washington,53047,27,2 +2020-05-11,Okanogan,Washington,53047,27,2 +2020-05-12,Okanogan,Washington,53047,31,2 +2020-05-13,Okanogan,Washington,53047,31,2 +2020-05-14,Okanogan,Washington,53047,33,2 +2020-05-15,Okanogan,Washington,53047,35,2 +2020-05-16,Okanogan,Washington,53047,39,2 +2020-05-17,Okanogan,Washington,53047,40,2 +2020-05-18,Okanogan,Washington,53047,40,2 +2020-05-19,Okanogan,Washington,53047,42,2 +2020-05-20,Okanogan,Washington,53047,44,2 +2020-05-21,Okanogan,Washington,53047,44,2 +2020-05-22,Okanogan,Washington,53047,44,2 +2020-05-23,Okanogan,Washington,53047,44,2 +2020-05-24,Okanogan,Washington,53047,44,2 +2020-05-25,Okanogan,Washington,53047,44,2 +2020-05-26,Okanogan,Washington,53047,46,2 +2020-05-27,Okanogan,Washington,53047,46,2 +2020-05-28,Okanogan,Washington,53047,49,2 +2020-05-29,Okanogan,Washington,53047,49,2 +2020-05-30,Okanogan,Washington,53047,49,2 +2020-05-31,Okanogan,Washington,53047,49,2 +2020-06-01,Okanogan,Washington,53047,50,2 +2020-06-02,Okanogan,Washington,53047,53,2 +2020-06-03,Okanogan,Washington,53047,53,2 +2020-06-04,Okanogan,Washington,53047,61,2 +2020-06-05,Okanogan,Washington,53047,66,2 +2020-06-06,Okanogan,Washington,53047,66,2 +2020-06-07,Okanogan,Washington,53047,66,2 +2020-06-08,Okanogan,Washington,53047,67,2 +2020-06-09,Okanogan,Washington,53047,67,2 +2020-06-10,Okanogan,Washington,53047,68,2 +2020-06-11,Okanogan,Washington,53047,68,2 +2020-06-12,Okanogan,Washington,53047,74,2 +2020-06-13,Okanogan,Washington,53047,74,2 +2020-06-14,Okanogan,Washington,53047,74,2 +2020-06-15,Okanogan,Washington,53047,74,2 +2020-06-16,Okanogan,Washington,53047,74,2 +2020-06-17,Okanogan,Washington,53047,79,2 +2020-06-18,Okanogan,Washington,53047,79,2 +2020-06-19,Okanogan,Washington,53047,82,2 +2020-06-20,Okanogan,Washington,53047,82,2 +2020-06-21,Okanogan,Washington,53047,82,2 +2020-06-22,Okanogan,Washington,53047,82,2 +2020-06-23,Okanogan,Washington,53047,82,2 +2020-06-24,Okanogan,Washington,53047,88,2 +2020-06-25,Okanogan,Washington,53047,88,2 +2020-06-26,Okanogan,Washington,53047,90,2 +2020-06-27,Okanogan,Washington,53047,93,2 +2020-06-28,Okanogan,Washington,53047,93,2 +2020-06-29,Okanogan,Washington,53047,93,2 +2020-06-30,Okanogan,Washington,53047,115,2 +2020-07-01,Okanogan,Washington,53047,116,2 +2020-07-02,Okanogan,Washington,53047,118,2 +2020-07-03,Okanogan,Washington,53047,118,2 +2020-07-04,Okanogan,Washington,53047,118,2 +2020-07-05,Okanogan,Washington,53047,134,2 +2020-07-06,Okanogan,Washington,53047,152,2 +2020-07-07,Okanogan,Washington,53047,159,2 +2020-07-08,Okanogan,Washington,53047,160,2 +2020-07-09,Okanogan,Washington,53047,161,2 +2020-04-10,Pacific,Washington,53049,1,0 +2020-04-11,Pacific,Washington,53049,1,0 +2020-04-12,Pacific,Washington,53049,1,0 +2020-04-13,Pacific,Washington,53049,1,0 +2020-04-14,Pacific,Washington,53049,1,0 +2020-04-15,Pacific,Washington,53049,1,0 +2020-04-16,Pacific,Washington,53049,1,0 +2020-04-17,Pacific,Washington,53049,1,0 +2020-04-18,Pacific,Washington,53049,1,0 +2020-04-19,Pacific,Washington,53049,2,0 +2020-04-20,Pacific,Washington,53049,3,0 +2020-04-21,Pacific,Washington,53049,3,0 +2020-04-22,Pacific,Washington,53049,3,0 +2020-04-23,Pacific,Washington,53049,4,0 +2020-04-24,Pacific,Washington,53049,4,0 +2020-04-25,Pacific,Washington,53049,4,0 +2020-04-26,Pacific,Washington,53049,4,0 +2020-04-27,Pacific,Washington,53049,4,0 +2020-04-28,Pacific,Washington,53049,4,0 +2020-04-29,Pacific,Washington,53049,4,0 +2020-04-30,Pacific,Washington,53049,4,0 +2020-05-01,Pacific,Washington,53049,4,0 +2020-05-02,Pacific,Washington,53049,4,0 +2020-05-03,Pacific,Washington,53049,4,0 +2020-05-04,Pacific,Washington,53049,4,0 +2020-05-05,Pacific,Washington,53049,4,0 +2020-05-06,Pacific,Washington,53049,4,0 +2020-05-07,Pacific,Washington,53049,4,0 +2020-05-08,Pacific,Washington,53049,8,0 +2020-05-09,Pacific,Washington,53049,9,0 +2020-05-10,Pacific,Washington,53049,9,0 +2020-05-11,Pacific,Washington,53049,9,0 +2020-05-12,Pacific,Washington,53049,9,1 +2020-05-13,Pacific,Washington,53049,9,1 +2020-05-14,Pacific,Washington,53049,9,1 +2020-05-15,Pacific,Washington,53049,9,1 +2020-05-16,Pacific,Washington,53049,9,1 +2020-05-17,Pacific,Washington,53049,9,1 +2020-05-18,Pacific,Washington,53049,9,1 +2020-05-19,Pacific,Washington,53049,9,1 +2020-05-20,Pacific,Washington,53049,9,1 +2020-05-21,Pacific,Washington,53049,9,1 +2020-05-22,Pacific,Washington,53049,9,1 +2020-05-23,Pacific,Washington,53049,9,1 +2020-05-24,Pacific,Washington,53049,9,1 +2020-05-25,Pacific,Washington,53049,9,1 +2020-05-26,Pacific,Washington,53049,9,1 +2020-05-27,Pacific,Washington,53049,9,1 +2020-05-28,Pacific,Washington,53049,9,1 +2020-05-29,Pacific,Washington,53049,9,1 +2020-05-30,Pacific,Washington,53049,9,1 +2020-05-31,Pacific,Washington,53049,9,1 +2020-06-01,Pacific,Washington,53049,9,1 +2020-06-02,Pacific,Washington,53049,9,1 +2020-06-03,Pacific,Washington,53049,9,1 +2020-06-04,Pacific,Washington,53049,9,1 +2020-06-05,Pacific,Washington,53049,9,1 +2020-06-06,Pacific,Washington,53049,9,1 +2020-06-07,Pacific,Washington,53049,9,1 +2020-06-08,Pacific,Washington,53049,9,1 +2020-06-09,Pacific,Washington,53049,10,1 +2020-06-10,Pacific,Washington,53049,10,1 +2020-06-11,Pacific,Washington,53049,10,1 +2020-06-12,Pacific,Washington,53049,11,1 +2020-06-13,Pacific,Washington,53049,11,1 +2020-06-14,Pacific,Washington,53049,12,1 +2020-06-15,Pacific,Washington,53049,12,1 +2020-06-16,Pacific,Washington,53049,12,1 +2020-06-17,Pacific,Washington,53049,12,1 +2020-06-18,Pacific,Washington,53049,12,1 +2020-06-19,Pacific,Washington,53049,12,1 +2020-06-20,Pacific,Washington,53049,12,1 +2020-06-21,Pacific,Washington,53049,12,1 +2020-06-22,Pacific,Washington,53049,13,1 +2020-06-23,Pacific,Washington,53049,13,1 +2020-06-24,Pacific,Washington,53049,13,1 +2020-06-25,Pacific,Washington,53049,12,1 +2020-06-26,Pacific,Washington,53049,12,1 +2020-06-27,Pacific,Washington,53049,12,1 +2020-06-28,Pacific,Washington,53049,13,1 +2020-06-29,Pacific,Washington,53049,13,1 +2020-06-30,Pacific,Washington,53049,17,1 +2020-07-01,Pacific,Washington,53049,17,1 +2020-07-02,Pacific,Washington,53049,18,1 +2020-07-03,Pacific,Washington,53049,18,1 +2020-07-04,Pacific,Washington,53049,18,1 +2020-07-05,Pacific,Washington,53049,18,1 +2020-07-06,Pacific,Washington,53049,18,1 +2020-07-07,Pacific,Washington,53049,18,1 +2020-07-08,Pacific,Washington,53049,18,1 +2020-07-09,Pacific,Washington,53049,18,1 +2020-04-02,Pend Oreille,Washington,53051,1,0 +2020-04-03,Pend Oreille,Washington,53051,1,0 +2020-04-04,Pend Oreille,Washington,53051,1,0 +2020-04-05,Pend Oreille,Washington,53051,1,0 +2020-04-06,Pend Oreille,Washington,53051,1,0 +2020-04-07,Pend Oreille,Washington,53051,1,0 +2020-04-08,Pend Oreille,Washington,53051,1,0 +2020-04-09,Pend Oreille,Washington,53051,1,0 +2020-04-10,Pend Oreille,Washington,53051,1,0 +2020-04-11,Pend Oreille,Washington,53051,1,0 +2020-04-12,Pend Oreille,Washington,53051,1,0 +2020-04-13,Pend Oreille,Washington,53051,1,0 +2020-04-14,Pend Oreille,Washington,53051,1,0 +2020-04-15,Pend Oreille,Washington,53051,1,0 +2020-04-16,Pend Oreille,Washington,53051,1,0 +2020-04-17,Pend Oreille,Washington,53051,2,0 +2020-04-18,Pend Oreille,Washington,53051,2,0 +2020-04-19,Pend Oreille,Washington,53051,2,0 +2020-04-20,Pend Oreille,Washington,53051,2,0 +2020-04-21,Pend Oreille,Washington,53051,2,0 +2020-04-22,Pend Oreille,Washington,53051,2,0 +2020-04-23,Pend Oreille,Washington,53051,2,0 +2020-04-24,Pend Oreille,Washington,53051,2,0 +2020-04-25,Pend Oreille,Washington,53051,2,0 +2020-04-26,Pend Oreille,Washington,53051,2,0 +2020-04-27,Pend Oreille,Washington,53051,2,0 +2020-04-28,Pend Oreille,Washington,53051,2,0 +2020-04-29,Pend Oreille,Washington,53051,2,0 +2020-04-30,Pend Oreille,Washington,53051,2,0 +2020-05-01,Pend Oreille,Washington,53051,2,0 +2020-05-02,Pend Oreille,Washington,53051,2,0 +2020-05-03,Pend Oreille,Washington,53051,2,0 +2020-05-04,Pend Oreille,Washington,53051,2,0 +2020-05-05,Pend Oreille,Washington,53051,2,0 +2020-05-06,Pend Oreille,Washington,53051,2,0 +2020-05-07,Pend Oreille,Washington,53051,2,0 +2020-05-08,Pend Oreille,Washington,53051,2,0 +2020-05-09,Pend Oreille,Washington,53051,2,0 +2020-05-10,Pend Oreille,Washington,53051,2,0 +2020-05-11,Pend Oreille,Washington,53051,2,0 +2020-05-12,Pend Oreille,Washington,53051,2,0 +2020-05-13,Pend Oreille,Washington,53051,2,0 +2020-05-14,Pend Oreille,Washington,53051,2,0 +2020-05-15,Pend Oreille,Washington,53051,2,0 +2020-05-16,Pend Oreille,Washington,53051,2,0 +2020-05-17,Pend Oreille,Washington,53051,2,0 +2020-05-18,Pend Oreille,Washington,53051,2,0 +2020-05-19,Pend Oreille,Washington,53051,2,0 +2020-05-20,Pend Oreille,Washington,53051,2,0 +2020-05-21,Pend Oreille,Washington,53051,2,0 +2020-05-22,Pend Oreille,Washington,53051,2,0 +2020-05-23,Pend Oreille,Washington,53051,4,0 +2020-05-24,Pend Oreille,Washington,53051,3,0 +2020-05-25,Pend Oreille,Washington,53051,3,0 +2020-05-26,Pend Oreille,Washington,53051,3,0 +2020-05-27,Pend Oreille,Washington,53051,3,0 +2020-05-28,Pend Oreille,Washington,53051,3,0 +2020-05-29,Pend Oreille,Washington,53051,3,0 +2020-05-30,Pend Oreille,Washington,53051,3,0 +2020-05-31,Pend Oreille,Washington,53051,3,0 +2020-06-01,Pend Oreille,Washington,53051,3,0 +2020-06-02,Pend Oreille,Washington,53051,3,0 +2020-06-03,Pend Oreille,Washington,53051,3,0 +2020-06-04,Pend Oreille,Washington,53051,3,0 +2020-06-05,Pend Oreille,Washington,53051,3,0 +2020-06-06,Pend Oreille,Washington,53051,3,0 +2020-06-07,Pend Oreille,Washington,53051,3,0 +2020-06-08,Pend Oreille,Washington,53051,3,0 +2020-06-09,Pend Oreille,Washington,53051,3,0 +2020-06-10,Pend Oreille,Washington,53051,3,0 +2020-06-11,Pend Oreille,Washington,53051,3,0 +2020-06-12,Pend Oreille,Washington,53051,3,0 +2020-06-13,Pend Oreille,Washington,53051,3,0 +2020-06-14,Pend Oreille,Washington,53051,3,0 +2020-06-15,Pend Oreille,Washington,53051,3,0 +2020-06-16,Pend Oreille,Washington,53051,3,0 +2020-06-17,Pend Oreille,Washington,53051,3,0 +2020-06-18,Pend Oreille,Washington,53051,3,0 +2020-06-19,Pend Oreille,Washington,53051,3,0 +2020-06-20,Pend Oreille,Washington,53051,3,0 +2020-06-21,Pend Oreille,Washington,53051,3,0 +2020-06-22,Pend Oreille,Washington,53051,3,0 +2020-06-23,Pend Oreille,Washington,53051,3,0 +2020-06-24,Pend Oreille,Washington,53051,3,0 +2020-06-25,Pend Oreille,Washington,53051,3,0 +2020-06-26,Pend Oreille,Washington,53051,3,0 +2020-06-27,Pend Oreille,Washington,53051,3,0 +2020-06-28,Pend Oreille,Washington,53051,3,0 +2020-06-29,Pend Oreille,Washington,53051,4,0 +2020-06-30,Pend Oreille,Washington,53051,4,0 +2020-07-01,Pend Oreille,Washington,53051,4,0 +2020-07-02,Pend Oreille,Washington,53051,4,0 +2020-07-03,Pend Oreille,Washington,53051,4,0 +2020-07-04,Pend Oreille,Washington,53051,5,0 +2020-07-05,Pend Oreille,Washington,53051,5,0 +2020-07-06,Pend Oreille,Washington,53051,5,0 +2020-07-07,Pend Oreille,Washington,53051,7,0 +2020-07-08,Pend Oreille,Washington,53051,7,0 +2020-07-09,Pend Oreille,Washington,53051,7,0 +2020-03-06,Pierce,Washington,53053,1,0 +2020-03-07,Pierce,Washington,53053,3,0 +2020-03-08,Pierce,Washington,53053,4,0 +2020-03-09,Pierce,Washington,53053,7,0 +2020-03-10,Pierce,Washington,53053,14,0 +2020-03-11,Pierce,Washington,53053,17,0 +2020-03-12,Pierce,Washington,53053,17,0 +2020-03-13,Pierce,Washington,53053,19,0 +2020-03-14,Pierce,Washington,53053,26,0 +2020-03-15,Pierce,Washington,53053,29,0 +2020-03-16,Pierce,Washington,53053,44,0 +2020-03-17,Pierce,Washington,53053,44,0 +2020-03-18,Pierce,Washington,53053,56,1 +2020-03-19,Pierce,Washington,53053,75,1 +2020-03-20,Pierce,Washington,53053,83,1 +2020-03-21,Pierce,Washington,53053,95,1 +2020-03-22,Pierce,Washington,53053,107,1 +2020-03-23,Pierce,Washington,53053,126,1 +2020-03-24,Pierce,Washington,53053,138,1 +2020-03-25,Pierce,Washington,53053,155,2 +2020-03-26,Pierce,Washington,53053,186,4 +2020-03-27,Pierce,Washington,53053,231,5 +2020-03-28,Pierce,Washington,53053,282,5 +2020-03-29,Pierce,Washington,53053,318,6 +2020-03-30,Pierce,Washington,53053,353,6 +2020-03-31,Pierce,Washington,53053,353,6 +2020-04-01,Pierce,Washington,53053,424,7 +2020-04-02,Pierce,Washington,53053,499,7 +2020-04-03,Pierce,Washington,53053,578,7 +2020-04-04,Pierce,Washington,53053,627,8 +2020-04-05,Pierce,Washington,53053,695,10 +2020-04-06,Pierce,Washington,53053,724,12 +2020-04-07,Pierce,Washington,53053,767,14 +2020-04-08,Pierce,Washington,53053,802,16 +2020-04-09,Pierce,Washington,53053,845,17 +2020-04-10,Pierce,Washington,53053,882,19 +2020-04-11,Pierce,Washington,53053,931,19 +2020-04-12,Pierce,Washington,53053,940,20 +2020-04-13,Pierce,Washington,53053,984,20 +2020-04-14,Pierce,Washington,53053,1023,23 +2020-04-15,Pierce,Washington,53053,1051,28 +2020-04-16,Pierce,Washington,53053,1092,30 +2020-04-17,Pierce,Washington,53053,1126,30 +2020-04-18,Pierce,Washington,53053,1197,32 +2020-04-19,Pierce,Washington,53053,1229,32 +2020-04-20,Pierce,Washington,53053,1258,34 +2020-04-21,Pierce,Washington,53053,1290,36 +2020-04-22,Pierce,Washington,53053,1315,40 +2020-04-23,Pierce,Washington,53053,1343,44 +2020-04-24,Pierce,Washington,53053,1370,47 +2020-04-25,Pierce,Washington,53053,1394,47 +2020-04-26,Pierce,Washington,53053,1408,48 +2020-04-27,Pierce,Washington,53053,1449,49 +2020-04-28,Pierce,Washington,53053,1494,51 +2020-04-29,Pierce,Washington,53053,1519,51 +2020-04-30,Pierce,Washington,53053,1554,51 +2020-05-01,Pierce,Washington,53053,1587,51 +2020-05-02,Pierce,Washington,53053,1620,52 +2020-05-03,Pierce,Washington,53053,1640,52 +2020-05-04,Pierce,Washington,53053,1673,52 +2020-05-05,Pierce,Washington,53053,1711,54 +2020-05-06,Pierce,Washington,53053,1757,54 +2020-05-07,Pierce,Washington,53053,1801,57 +2020-05-08,Pierce,Washington,53053,1820,58 +2020-05-09,Pierce,Washington,53053,1857,60 +2020-05-10,Pierce,Washington,53053,1883,60 +2020-05-11,Pierce,Washington,53053,1907,62 +2020-05-12,Pierce,Washington,53053,1927,63 +2020-05-13,Pierce,Washington,53053,1941,63 +2020-05-14,Pierce,Washington,53053,1966,65 +2020-05-15,Pierce,Washington,53053,1990,66 +2020-05-16,Pierce,Washington,53053,2020,68 +2020-05-17,Pierce,Washington,53053,2034,68 +2020-05-18,Pierce,Washington,53053,2043,68 +2020-05-19,Pierce,Washington,53053,2069,70 +2020-05-20,Pierce,Washington,53053,2082,71 +2020-05-21,Pierce,Washington,53053,2086,72 +2020-05-22,Pierce,Washington,53053,2098,73 +2020-05-23,Pierce,Washington,53053,2110,73 +2020-05-24,Pierce,Washington,53053,2130,74 +2020-05-25,Pierce,Washington,53053,2140,74 +2020-05-26,Pierce,Washington,53053,2143,75 +2020-05-27,Pierce,Washington,53053,2159,76 +2020-05-28,Pierce,Washington,53053,2179,78 +2020-05-29,Pierce,Washington,53053,2191,78 +2020-05-30,Pierce,Washington,53053,2205,79 +2020-05-31,Pierce,Washington,53053,2224,79 +2020-06-01,Pierce,Washington,53053,2232,79 +2020-06-02,Pierce,Washington,53053,2245,81 +2020-06-03,Pierce,Washington,53053,2270,82 +2020-06-04,Pierce,Washington,53053,2286,83 +2020-06-05,Pierce,Washington,53053,2303,84 +2020-06-06,Pierce,Washington,53053,2323,85 +2020-06-07,Pierce,Washington,53053,2332,85 +2020-06-08,Pierce,Washington,53053,2345,85 +2020-06-09,Pierce,Washington,53053,2357,87 +2020-06-10,Pierce,Washington,53053,2364,87 +2020-06-11,Pierce,Washington,53053,2369,87 +2020-06-12,Pierce,Washington,53053,2383,88 +2020-06-13,Pierce,Washington,53053,2404,88 +2020-06-14,Pierce,Washington,53053,2423,89 +2020-06-15,Pierce,Washington,53053,2435,89 +2020-06-16,Pierce,Washington,53053,2458,89 +2020-06-17,Pierce,Washington,53053,2478,89 +2020-06-18,Pierce,Washington,53053,2504,89 +2020-06-19,Pierce,Washington,53053,2532,90 +2020-06-20,Pierce,Washington,53053,2532,92 +2020-06-21,Pierce,Washington,53053,2591,93 +2020-06-22,Pierce,Washington,53053,2600,92 +2020-06-23,Pierce,Washington,53053,2625,93 +2020-06-24,Pierce,Washington,53053,2672,96 +2020-06-25,Pierce,Washington,53053,2709,97 +2020-06-26,Pierce,Washington,53053,2739,97 +2020-06-27,Pierce,Washington,53053,2797,97 +2020-06-28,Pierce,Washington,53053,2820,97 +2020-06-29,Pierce,Washington,53053,2841,98 +2020-06-30,Pierce,Washington,53053,2887,101 +2020-07-01,Pierce,Washington,53053,2928,104 +2020-07-02,Pierce,Washington,53053,2984,104 +2020-07-03,Pierce,Washington,53053,3048,105 +2020-07-04,Pierce,Washington,53053,3097,105 +2020-07-05,Pierce,Washington,53053,3149,107 +2020-07-06,Pierce,Washington,53053,3212,108 +2020-07-07,Pierce,Washington,53053,3242,110 +2020-07-08,Pierce,Washington,53053,3304,111 +2020-07-09,Pierce,Washington,53053,3366,111 +2020-03-20,San Juan,Washington,53055,1,0 +2020-03-21,San Juan,Washington,53055,1,0 +2020-03-22,San Juan,Washington,53055,1,0 +2020-03-23,San Juan,Washington,53055,1,0 +2020-03-24,San Juan,Washington,53055,1,0 +2020-03-25,San Juan,Washington,53055,2,0 +2020-03-26,San Juan,Washington,53055,3,0 +2020-03-27,San Juan,Washington,53055,3,0 +2020-03-28,San Juan,Washington,53055,4,0 +2020-03-29,San Juan,Washington,53055,4,0 +2020-03-30,San Juan,Washington,53055,4,0 +2020-03-31,San Juan,Washington,53055,4,0 +2020-04-01,San Juan,Washington,53055,6,0 +2020-04-02,San Juan,Washington,53055,6,0 +2020-04-03,San Juan,Washington,53055,6,0 +2020-04-04,San Juan,Washington,53055,7,0 +2020-04-05,San Juan,Washington,53055,7,0 +2020-04-06,San Juan,Washington,53055,10,0 +2020-04-07,San Juan,Washington,53055,11,0 +2020-04-08,San Juan,Washington,53055,12,0 +2020-04-09,San Juan,Washington,53055,12,0 +2020-04-10,San Juan,Washington,53055,12,0 +2020-04-11,San Juan,Washington,53055,13,0 +2020-04-12,San Juan,Washington,53055,13,0 +2020-04-13,San Juan,Washington,53055,13,0 +2020-04-14,San Juan,Washington,53055,13,0 +2020-04-15,San Juan,Washington,53055,13,0 +2020-04-16,San Juan,Washington,53055,13,0 +2020-04-17,San Juan,Washington,53055,15,0 +2020-04-18,San Juan,Washington,53055,15,0 +2020-04-19,San Juan,Washington,53055,15,0 +2020-04-20,San Juan,Washington,53055,14,0 +2020-04-21,San Juan,Washington,53055,14,0 +2020-04-22,San Juan,Washington,53055,16,0 +2020-04-23,San Juan,Washington,53055,14,0 +2020-04-24,San Juan,Washington,53055,14,0 +2020-04-25,San Juan,Washington,53055,14,0 +2020-04-26,San Juan,Washington,53055,14,0 +2020-04-27,San Juan,Washington,53055,14,0 +2020-04-28,San Juan,Washington,53055,14,0 +2020-04-29,San Juan,Washington,53055,14,0 +2020-04-30,San Juan,Washington,53055,14,0 +2020-05-01,San Juan,Washington,53055,14,0 +2020-05-02,San Juan,Washington,53055,14,0 +2020-05-03,San Juan,Washington,53055,14,0 +2020-05-04,San Juan,Washington,53055,14,0 +2020-05-05,San Juan,Washington,53055,14,0 +2020-05-06,San Juan,Washington,53055,14,0 +2020-05-07,San Juan,Washington,53055,14,0 +2020-05-08,San Juan,Washington,53055,14,0 +2020-05-09,San Juan,Washington,53055,15,0 +2020-05-10,San Juan,Washington,53055,15,0 +2020-05-11,San Juan,Washington,53055,15,0 +2020-05-12,San Juan,Washington,53055,15,0 +2020-05-13,San Juan,Washington,53055,15,0 +2020-05-14,San Juan,Washington,53055,15,0 +2020-05-15,San Juan,Washington,53055,15,0 +2020-05-16,San Juan,Washington,53055,15,0 +2020-05-17,San Juan,Washington,53055,15,0 +2020-05-18,San Juan,Washington,53055,15,0 +2020-05-19,San Juan,Washington,53055,15,0 +2020-05-20,San Juan,Washington,53055,15,0 +2020-05-21,San Juan,Washington,53055,15,0 +2020-05-22,San Juan,Washington,53055,15,0 +2020-05-23,San Juan,Washington,53055,15,0 +2020-05-24,San Juan,Washington,53055,15,0 +2020-05-25,San Juan,Washington,53055,15,0 +2020-05-26,San Juan,Washington,53055,15,0 +2020-05-27,San Juan,Washington,53055,15,0 +2020-05-28,San Juan,Washington,53055,15,0 +2020-05-29,San Juan,Washington,53055,15,0 +2020-05-30,San Juan,Washington,53055,15,0 +2020-05-31,San Juan,Washington,53055,15,0 +2020-06-01,San Juan,Washington,53055,15,0 +2020-06-02,San Juan,Washington,53055,15,0 +2020-06-03,San Juan,Washington,53055,15,0 +2020-06-04,San Juan,Washington,53055,15,0 +2020-06-05,San Juan,Washington,53055,15,0 +2020-06-06,San Juan,Washington,53055,15,0 +2020-06-07,San Juan,Washington,53055,15,0 +2020-06-08,San Juan,Washington,53055,15,0 +2020-06-09,San Juan,Washington,53055,15,0 +2020-06-10,San Juan,Washington,53055,15,0 +2020-06-11,San Juan,Washington,53055,15,0 +2020-06-12,San Juan,Washington,53055,15,0 +2020-06-13,San Juan,Washington,53055,15,0 +2020-06-14,San Juan,Washington,53055,15,0 +2020-06-15,San Juan,Washington,53055,15,0 +2020-06-16,San Juan,Washington,53055,16,0 +2020-06-17,San Juan,Washington,53055,16,0 +2020-06-18,San Juan,Washington,53055,16,0 +2020-06-19,San Juan,Washington,53055,16,0 +2020-06-20,San Juan,Washington,53055,17,0 +2020-06-21,San Juan,Washington,53055,18,0 +2020-06-22,San Juan,Washington,53055,19,0 +2020-06-23,San Juan,Washington,53055,19,0 +2020-06-24,San Juan,Washington,53055,20,0 +2020-06-25,San Juan,Washington,53055,19,0 +2020-06-26,San Juan,Washington,53055,19,0 +2020-06-27,San Juan,Washington,53055,19,0 +2020-06-28,San Juan,Washington,53055,19,0 +2020-06-29,San Juan,Washington,53055,19,0 +2020-06-30,San Juan,Washington,53055,19,0 +2020-07-01,San Juan,Washington,53055,19,0 +2020-07-02,San Juan,Washington,53055,19,0 +2020-07-03,San Juan,Washington,53055,19,0 +2020-07-04,San Juan,Washington,53055,19,0 +2020-07-05,San Juan,Washington,53055,19,0 +2020-07-06,San Juan,Washington,53055,20,0 +2020-07-07,San Juan,Washington,53055,20,0 +2020-07-08,San Juan,Washington,53055,20,0 +2020-07-09,San Juan,Washington,53055,20,0 +2020-03-10,Skagit,Washington,53057,1,0 +2020-03-11,Skagit,Washington,53057,1,0 +2020-03-12,Skagit,Washington,53057,2,0 +2020-03-13,Skagit,Washington,53057,3,0 +2020-03-14,Skagit,Washington,53057,3,0 +2020-03-15,Skagit,Washington,53057,4,0 +2020-03-16,Skagit,Washington,53057,7,0 +2020-03-17,Skagit,Washington,53057,9,0 +2020-03-18,Skagit,Washington,53057,14,0 +2020-03-19,Skagit,Washington,53057,18,0 +2020-03-20,Skagit,Washington,53057,26,0 +2020-03-21,Skagit,Washington,53057,28,0 +2020-03-22,Skagit,Washington,53057,34,0 +2020-03-23,Skagit,Washington,53057,45,1 +2020-03-24,Skagit,Washington,53057,48,1 +2020-03-25,Skagit,Washington,53057,63,1 +2020-03-26,Skagit,Washington,53057,78,1 +2020-03-27,Skagit,Washington,53057,91,1 +2020-03-28,Skagit,Washington,53057,97,3 +2020-03-29,Skagit,Washington,53057,101,3 +2020-03-30,Skagit,Washington,53057,101,3 +2020-03-31,Skagit,Washington,53057,101,3 +2020-04-01,Skagit,Washington,53057,143,4 +2020-04-02,Skagit,Washington,53057,153,4 +2020-04-03,Skagit,Washington,53057,160,4 +2020-04-04,Skagit,Washington,53057,161,4 +2020-04-05,Skagit,Washington,53057,161,4 +2020-04-06,Skagit,Washington,53057,166,4 +2020-04-07,Skagit,Washington,53057,169,5 +2020-04-08,Skagit,Washington,53057,169,5 +2020-04-09,Skagit,Washington,53057,178,5 +2020-04-10,Skagit,Washington,53057,178,5 +2020-04-11,Skagit,Washington,53057,187,6 +2020-04-12,Skagit,Washington,53057,191,6 +2020-04-13,Skagit,Washington,53057,195,6 +2020-04-14,Skagit,Washington,53057,203,6 +2020-04-15,Skagit,Washington,53057,209,6 +2020-04-16,Skagit,Washington,53057,218,6 +2020-04-17,Skagit,Washington,53057,226,6 +2020-04-18,Skagit,Washington,53057,230,7 +2020-04-19,Skagit,Washington,53057,238,8 +2020-04-20,Skagit,Washington,53057,255,8 +2020-04-21,Skagit,Washington,53057,255,9 +2020-04-22,Skagit,Washington,53057,271,9 +2020-04-23,Skagit,Washington,53057,281,10 +2020-04-24,Skagit,Washington,53057,283,10 +2020-04-25,Skagit,Washington,53057,287,10 +2020-04-26,Skagit,Washington,53057,299,11 +2020-04-27,Skagit,Washington,53057,309,11 +2020-04-28,Skagit,Washington,53057,309,11 +2020-04-29,Skagit,Washington,53057,322,12 +2020-04-30,Skagit,Washington,53057,338,13 +2020-05-01,Skagit,Washington,53057,345,13 +2020-05-02,Skagit,Washington,53057,345,13 +2020-05-03,Skagit,Washington,53057,354,13 +2020-05-04,Skagit,Washington,53057,357,13 +2020-05-05,Skagit,Washington,53057,364,13 +2020-05-06,Skagit,Washington,53057,379,13 +2020-05-07,Skagit,Washington,53057,389,13 +2020-05-08,Skagit,Washington,53057,391,13 +2020-05-09,Skagit,Washington,53057,397,14 +2020-05-10,Skagit,Washington,53057,401,14 +2020-05-11,Skagit,Washington,53057,402,14 +2020-05-12,Skagit,Washington,53057,406,14 +2020-05-13,Skagit,Washington,53057,411,14 +2020-05-14,Skagit,Washington,53057,411,14 +2020-05-15,Skagit,Washington,53057,423,14 +2020-05-16,Skagit,Washington,53057,425,14 +2020-05-17,Skagit,Washington,53057,425,14 +2020-05-18,Skagit,Washington,53057,426,14 +2020-05-19,Skagit,Washington,53057,426,15 +2020-05-20,Skagit,Washington,53057,426,15 +2020-05-21,Skagit,Washington,53057,426,15 +2020-05-22,Skagit,Washington,53057,426,15 +2020-05-23,Skagit,Washington,53057,426,15 +2020-05-24,Skagit,Washington,53057,426,15 +2020-05-25,Skagit,Washington,53057,426,15 +2020-05-26,Skagit,Washington,53057,427,15 +2020-05-27,Skagit,Washington,53057,428,15 +2020-05-28,Skagit,Washington,53057,428,15 +2020-05-29,Skagit,Washington,53057,430,15 +2020-05-30,Skagit,Washington,53057,432,15 +2020-05-31,Skagit,Washington,53057,434,15 +2020-06-01,Skagit,Washington,53057,435,15 +2020-06-02,Skagit,Washington,53057,438,15 +2020-06-03,Skagit,Washington,53057,443,15 +2020-06-04,Skagit,Washington,53057,446,15 +2020-06-05,Skagit,Washington,53057,450,15 +2020-06-06,Skagit,Washington,53057,449,15 +2020-06-07,Skagit,Washington,53057,449,15 +2020-06-08,Skagit,Washington,53057,450,15 +2020-06-09,Skagit,Washington,53057,450,15 +2020-06-10,Skagit,Washington,53057,450,15 +2020-06-11,Skagit,Washington,53057,452,15 +2020-06-12,Skagit,Washington,53057,454,15 +2020-06-13,Skagit,Washington,53057,457,15 +2020-06-14,Skagit,Washington,53057,461,15 +2020-06-15,Skagit,Washington,53057,463,15 +2020-06-16,Skagit,Washington,53057,464,15 +2020-06-17,Skagit,Washington,53057,469,15 +2020-06-18,Skagit,Washington,53057,474,15 +2020-06-19,Skagit,Washington,53057,479,15 +2020-06-20,Skagit,Washington,53057,482,15 +2020-06-21,Skagit,Washington,53057,485,15 +2020-06-22,Skagit,Washington,53057,485,15 +2020-06-23,Skagit,Washington,53057,486,15 +2020-06-24,Skagit,Washington,53057,488,15 +2020-06-25,Skagit,Washington,53057,491,15 +2020-06-26,Skagit,Washington,53057,493,15 +2020-06-27,Skagit,Washington,53057,502,15 +2020-06-28,Skagit,Washington,53057,503,15 +2020-06-29,Skagit,Washington,53057,512,15 +2020-06-30,Skagit,Washington,53057,519,15 +2020-07-01,Skagit,Washington,53057,527,15 +2020-07-02,Skagit,Washington,53057,528,15 +2020-07-03,Skagit,Washington,53057,532,15 +2020-07-04,Skagit,Washington,53057,549,15 +2020-07-05,Skagit,Washington,53057,549,15 +2020-07-06,Skagit,Washington,53057,557,15 +2020-07-07,Skagit,Washington,53057,558,16 +2020-07-08,Skagit,Washington,53057,567,16 +2020-07-09,Skagit,Washington,53057,571,16 +2020-03-27,Skamania,Washington,53059,1,0 +2020-03-28,Skamania,Washington,53059,1,0 +2020-03-29,Skamania,Washington,53059,1,0 +2020-03-30,Skamania,Washington,53059,1,0 +2020-03-31,Skamania,Washington,53059,1,0 +2020-04-01,Skamania,Washington,53059,1,0 +2020-04-02,Skamania,Washington,53059,1,0 +2020-04-03,Skamania,Washington,53059,1,0 +2020-04-04,Skamania,Washington,53059,1,0 +2020-04-05,Skamania,Washington,53059,1,0 +2020-04-06,Skamania,Washington,53059,2,0 +2020-04-07,Skamania,Washington,53059,2,0 +2020-04-08,Skamania,Washington,53059,2,0 +2020-04-09,Skamania,Washington,53059,2,0 +2020-04-10,Skamania,Washington,53059,2,0 +2020-04-11,Skamania,Washington,53059,3,0 +2020-04-12,Skamania,Washington,53059,3,0 +2020-04-13,Skamania,Washington,53059,3,0 +2020-04-14,Skamania,Washington,53059,3,0 +2020-04-15,Skamania,Washington,53059,3,0 +2020-04-16,Skamania,Washington,53059,3,0 +2020-04-17,Skamania,Washington,53059,3,0 +2020-04-18,Skamania,Washington,53059,3,0 +2020-04-19,Skamania,Washington,53059,3,0 +2020-04-20,Skamania,Washington,53059,3,0 +2020-04-21,Skamania,Washington,53059,3,0 +2020-04-22,Skamania,Washington,53059,3,0 +2020-04-23,Skamania,Washington,53059,3,0 +2020-04-24,Skamania,Washington,53059,3,0 +2020-04-25,Skamania,Washington,53059,3,0 +2020-04-26,Skamania,Washington,53059,3,0 +2020-04-27,Skamania,Washington,53059,3,0 +2020-04-28,Skamania,Washington,53059,3,0 +2020-04-29,Skamania,Washington,53059,3,0 +2020-04-30,Skamania,Washington,53059,3,0 +2020-05-01,Skamania,Washington,53059,3,0 +2020-05-02,Skamania,Washington,53059,3,0 +2020-05-03,Skamania,Washington,53059,3,0 +2020-05-04,Skamania,Washington,53059,3,0 +2020-05-05,Skamania,Washington,53059,3,0 +2020-05-06,Skamania,Washington,53059,3,0 +2020-05-07,Skamania,Washington,53059,3,0 +2020-05-08,Skamania,Washington,53059,3,0 +2020-05-09,Skamania,Washington,53059,3,0 +2020-05-10,Skamania,Washington,53059,3,0 +2020-05-11,Skamania,Washington,53059,3,0 +2020-05-12,Skamania,Washington,53059,3,0 +2020-05-13,Skamania,Washington,53059,3,0 +2020-05-14,Skamania,Washington,53059,3,0 +2020-05-15,Skamania,Washington,53059,3,0 +2020-05-16,Skamania,Washington,53059,3,0 +2020-05-17,Skamania,Washington,53059,3,0 +2020-05-18,Skamania,Washington,53059,3,0 +2020-05-19,Skamania,Washington,53059,3,0 +2020-05-20,Skamania,Washington,53059,3,0 +2020-05-21,Skamania,Washington,53059,3,0 +2020-05-22,Skamania,Washington,53059,3,0 +2020-05-23,Skamania,Washington,53059,3,0 +2020-05-24,Skamania,Washington,53059,3,0 +2020-05-25,Skamania,Washington,53059,3,0 +2020-05-26,Skamania,Washington,53059,3,0 +2020-05-27,Skamania,Washington,53059,3,0 +2020-05-28,Skamania,Washington,53059,3,0 +2020-05-29,Skamania,Washington,53059,3,0 +2020-05-30,Skamania,Washington,53059,3,0 +2020-05-31,Skamania,Washington,53059,3,0 +2020-06-01,Skamania,Washington,53059,3,0 +2020-06-02,Skamania,Washington,53059,3,0 +2020-06-03,Skamania,Washington,53059,4,0 +2020-06-04,Skamania,Washington,53059,3,0 +2020-06-05,Skamania,Washington,53059,3,0 +2020-06-06,Skamania,Washington,53059,3,0 +2020-06-07,Skamania,Washington,53059,3,0 +2020-06-08,Skamania,Washington,53059,3,0 +2020-06-09,Skamania,Washington,53059,3,0 +2020-06-10,Skamania,Washington,53059,3,0 +2020-06-11,Skamania,Washington,53059,3,0 +2020-06-12,Skamania,Washington,53059,3,0 +2020-06-13,Skamania,Washington,53059,3,0 +2020-06-14,Skamania,Washington,53059,3,0 +2020-06-15,Skamania,Washington,53059,3,0 +2020-06-16,Skamania,Washington,53059,3,0 +2020-06-17,Skamania,Washington,53059,3,0 +2020-06-18,Skamania,Washington,53059,3,0 +2020-06-19,Skamania,Washington,53059,5,0 +2020-06-20,Skamania,Washington,53059,5,0 +2020-06-21,Skamania,Washington,53059,5,0 +2020-06-22,Skamania,Washington,53059,3,0 +2020-06-23,Skamania,Washington,53059,4,0 +2020-06-24,Skamania,Washington,53059,3,0 +2020-06-25,Skamania,Washington,53059,3,0 +2020-06-26,Skamania,Washington,53059,4,0 +2020-06-27,Skamania,Washington,53059,4,0 +2020-06-28,Skamania,Washington,53059,4,0 +2020-06-29,Skamania,Washington,53059,4,0 +2020-06-30,Skamania,Washington,53059,5,0 +2020-07-01,Skamania,Washington,53059,5,0 +2020-07-02,Skamania,Washington,53059,6,0 +2020-07-03,Skamania,Washington,53059,7,0 +2020-07-04,Skamania,Washington,53059,7,0 +2020-07-05,Skamania,Washington,53059,9,0 +2020-07-06,Skamania,Washington,53059,10,0 +2020-07-07,Skamania,Washington,53059,14,0 +2020-07-08,Skamania,Washington,53059,18,0 +2020-07-09,Skamania,Washington,53059,19,0 +2020-01-21,Snohomish,Washington,53061,1,0 +2020-01-22,Snohomish,Washington,53061,1,0 +2020-01-23,Snohomish,Washington,53061,1,0 +2020-01-24,Snohomish,Washington,53061,1,0 +2020-01-25,Snohomish,Washington,53061,1,0 +2020-01-26,Snohomish,Washington,53061,1,0 +2020-01-27,Snohomish,Washington,53061,1,0 +2020-01-28,Snohomish,Washington,53061,1,0 +2020-01-29,Snohomish,Washington,53061,1,0 +2020-01-30,Snohomish,Washington,53061,1,0 +2020-01-31,Snohomish,Washington,53061,1,0 +2020-02-01,Snohomish,Washington,53061,1,0 +2020-02-02,Snohomish,Washington,53061,1,0 +2020-02-03,Snohomish,Washington,53061,1,0 +2020-02-04,Snohomish,Washington,53061,1,0 +2020-02-05,Snohomish,Washington,53061,1,0 +2020-02-06,Snohomish,Washington,53061,1,0 +2020-02-07,Snohomish,Washington,53061,1,0 +2020-02-08,Snohomish,Washington,53061,1,0 +2020-02-09,Snohomish,Washington,53061,1,0 +2020-02-10,Snohomish,Washington,53061,1,0 +2020-02-11,Snohomish,Washington,53061,1,0 +2020-02-12,Snohomish,Washington,53061,1,0 +2020-02-13,Snohomish,Washington,53061,1,0 +2020-02-14,Snohomish,Washington,53061,1,0 +2020-02-15,Snohomish,Washington,53061,1,0 +2020-02-16,Snohomish,Washington,53061,1,0 +2020-02-17,Snohomish,Washington,53061,1,0 +2020-02-18,Snohomish,Washington,53061,1,0 +2020-02-19,Snohomish,Washington,53061,1,0 +2020-02-20,Snohomish,Washington,53061,1,0 +2020-02-21,Snohomish,Washington,53061,1,0 +2020-02-22,Snohomish,Washington,53061,1,0 +2020-02-23,Snohomish,Washington,53061,1,0 +2020-02-24,Snohomish,Washington,53061,1,0 +2020-02-25,Snohomish,Washington,53061,1,0 +2020-02-26,Snohomish,Washington,53061,1,0 +2020-02-27,Snohomish,Washington,53061,1,0 +2020-02-28,Snohomish,Washington,53061,2,0 +2020-02-29,Snohomish,Washington,53061,2,0 +2020-03-01,Snohomish,Washington,53061,2,0 +2020-03-02,Snohomish,Washington,53061,3,0 +2020-03-03,Snohomish,Washington,53061,5,0 +2020-03-04,Snohomish,Washington,53061,8,0 +2020-03-05,Snohomish,Washington,53061,17,0 +2020-03-06,Snohomish,Washington,53061,18,0 +2020-03-07,Snohomish,Washington,53061,26,0 +2020-03-08,Snohomish,Washington,53061,36,0 +2020-03-09,Snohomish,Washington,53061,45,0 +2020-03-10,Snohomish,Washington,53061,61,0 +2020-03-11,Snohomish,Washington,53061,69,1 +2020-03-12,Snohomish,Washington,53061,107,3 +2020-03-13,Snohomish,Washington,53061,132,3 +2020-03-14,Snohomish,Washington,53061,154,3 +2020-03-15,Snohomish,Washington,53061,175,3 +2020-03-16,Snohomish,Washington,53061,199,3 +2020-03-17,Snohomish,Washington,53061,265,4 +2020-03-18,Snohomish,Washington,53061,309,5 +2020-03-19,Snohomish,Washington,53061,347,6 +2020-03-20,Snohomish,Washington,53061,384,7 +2020-03-21,Snohomish,Washington,53061,446,9 +2020-03-22,Snohomish,Washington,53061,480,10 +2020-03-23,Snohomish,Washington,53061,518,10 +2020-03-24,Snohomish,Washington,53061,613,15 +2020-03-25,Snohomish,Washington,53061,633,15 +2020-03-26,Snohomish,Washington,53061,778,18 +2020-03-27,Snohomish,Washington,53061,913,23 +2020-03-28,Snohomish,Washington,53061,912,23 +2020-03-29,Snohomish,Washington,53061,1067,23 +2020-03-30,Snohomish,Washington,53061,1126,30 +2020-03-31,Snohomish,Washington,53061,1228,32 +2020-04-01,Snohomish,Washington,53061,1304,39 +2020-04-02,Snohomish,Washington,53061,1375,39 +2020-04-03,Snohomish,Washington,53061,1449,41 +2020-04-04,Snohomish,Washington,53061,1502,44 +2020-04-05,Snohomish,Washington,53061,1558,48 +2020-04-06,Snohomish,Washington,53061,1602,57 +2020-04-07,Snohomish,Washington,53061,1658,60 +2020-04-08,Snohomish,Washington,53061,1694,61 +2020-04-09,Snohomish,Washington,53061,1701,63 +2020-04-10,Snohomish,Washington,53061,1801,66 +2020-04-11,Snohomish,Washington,53061,1834,67 +2020-04-12,Snohomish,Washington,53061,1866,69 +2020-04-13,Snohomish,Washington,53061,1907,73 +2020-04-14,Snohomish,Washington,53061,1949,77 +2020-04-15,Snohomish,Washington,53061,1987,80 +2020-04-16,Snohomish,Washington,53061,2031,85 +2020-04-17,Snohomish,Washington,53061,2055,87 +2020-04-18,Snohomish,Washington,53061,2092,92 +2020-04-19,Snohomish,Washington,53061,2142,92 +2020-04-20,Snohomish,Washington,53061,2162,96 +2020-04-21,Snohomish,Washington,53061,2162,98 +2020-04-22,Snohomish,Washington,53061,2208,98 +2020-04-23,Snohomish,Washington,53061,2239,99 +2020-04-24,Snohomish,Washington,53061,2267,102 +2020-04-25,Snohomish,Washington,53061,2297,103 +2020-04-26,Snohomish,Washington,53061,2311,104 +2020-04-27,Snohomish,Washington,53061,2355,106 +2020-04-28,Snohomish,Washington,53061,2370,106 +2020-04-29,Snohomish,Washington,53061,2416,106 +2020-04-30,Snohomish,Washington,53061,2446,108 +2020-05-01,Snohomish,Washington,53061,2466,108 +2020-05-02,Snohomish,Washington,53061,2492,108 +2020-05-03,Snohomish,Washington,53061,2737,108 +2020-05-04,Snohomish,Washington,53061,2784,110 +2020-05-05,Snohomish,Washington,53061,2807,110 +2020-05-06,Snohomish,Washington,53061,2830,112 +2020-05-07,Snohomish,Washington,53061,2889,114 +2020-05-08,Snohomish,Washington,53061,2917,114 +2020-05-09,Snohomish,Washington,53061,2917,114 +2020-05-10,Snohomish,Washington,53061,2932,116 +2020-05-11,Snohomish,Washington,53061,2970,118 +2020-05-12,Snohomish,Washington,53061,2998,119 +2020-05-13,Snohomish,Washington,53061,3009,119 +2020-05-14,Snohomish,Washington,53061,3048,121 +2020-05-15,Snohomish,Washington,53061,3065,125 +2020-05-16,Snohomish,Washington,53061,3071,125 +2020-05-17,Snohomish,Washington,53061,3082,125 +2020-05-18,Snohomish,Washington,53061,3125,125 +2020-05-19,Snohomish,Washington,53061,3153,131 +2020-05-20,Snohomish,Washington,53061,3162,131 +2020-05-21,Snohomish,Washington,53061,3198,132 +2020-05-22,Snohomish,Washington,53061,3212,134 +2020-05-23,Snohomish,Washington,53061,3212,134 +2020-05-24,Snohomish,Washington,53061,3240,134 +2020-05-25,Snohomish,Washington,53061,3249,135 +2020-05-26,Snohomish,Washington,53061,3297,143 +2020-05-27,Snohomish,Washington,53061,3318,145 +2020-05-28,Snohomish,Washington,53061,3323,147 +2020-05-29,Snohomish,Washington,53061,3341,147 +2020-05-30,Snohomish,Washington,53061,3341,147 +2020-05-31,Snohomish,Washington,53061,3349,147 +2020-06-01,Snohomish,Washington,53061,3379,148 +2020-06-02,Snohomish,Washington,53061,3412,149 +2020-06-03,Snohomish,Washington,53061,3427,150 +2020-06-04,Snohomish,Washington,53061,3442,152 +2020-06-05,Snohomish,Washington,53061,3471,151 +2020-06-06,Snohomish,Washington,53061,3472,152 +2020-06-07,Snohomish,Washington,53061,3471,151 +2020-06-08,Snohomish,Washington,53061,3504,152 +2020-06-09,Snohomish,Washington,53061,3524,154 +2020-06-10,Snohomish,Washington,53061,3532,154 +2020-06-11,Snohomish,Washington,53061,3541,155 +2020-06-12,Snohomish,Washington,53061,3566,155 +2020-06-13,Snohomish,Washington,53061,3566,155 +2020-06-14,Snohomish,Washington,53061,3566,155 +2020-06-15,Snohomish,Washington,53061,3595,155 +2020-06-16,Snohomish,Washington,53061,3614,157 +2020-06-17,Snohomish,Washington,53061,3641,158 +2020-06-18,Snohomish,Washington,53061,3656,159 +2020-06-19,Snohomish,Washington,53061,3678,161 +2020-06-20,Snohomish,Washington,53061,3678,162 +2020-06-21,Snohomish,Washington,53061,3678,162 +2020-06-22,Snohomish,Washington,53061,3747,163 +2020-06-23,Snohomish,Washington,53061,3813,163 +2020-06-24,Snohomish,Washington,53061,3833,164 +2020-06-25,Snohomish,Washington,53061,3862,164 +2020-06-26,Snohomish,Washington,53061,3893,166 +2020-06-27,Snohomish,Washington,53061,3893,167 +2020-06-28,Snohomish,Washington,53061,3903,167 +2020-06-29,Snohomish,Washington,53061,3996,169 +2020-06-30,Snohomish,Washington,53061,4018,170 +2020-07-01,Snohomish,Washington,53061,4063,170 +2020-07-02,Snohomish,Washington,53061,4112,170 +2020-07-03,Snohomish,Washington,53061,4112,172 +2020-07-04,Snohomish,Washington,53061,4143,172 +2020-07-05,Snohomish,Washington,53061,4178,174 +2020-07-06,Snohomish,Washington,53061,4273,175 +2020-07-07,Snohomish,Washington,53061,4318,175 +2020-07-08,Snohomish,Washington,53061,4339,177 +2020-07-09,Snohomish,Washington,53061,4386,177 +2020-02-24,Spokane,Washington,53063,4,0 +2020-02-25,Spokane,Washington,53063,4,0 +2020-02-26,Spokane,Washington,53063,4,0 +2020-02-27,Spokane,Washington,53063,4,0 +2020-02-28,Spokane,Washington,53063,4,0 +2020-02-29,Spokane,Washington,53063,4,0 +2020-03-01,Spokane,Washington,53063,4,0 +2020-03-02,Spokane,Washington,53063,4,0 +2020-03-03,Spokane,Washington,53063,4,0 +2020-03-04,Spokane,Washington,53063,4,0 +2020-03-05,Spokane,Washington,53063,4,0 +2020-03-06,Spokane,Washington,53063,4,0 +2020-03-07,Spokane,Washington,53063,4,0 +2020-03-08,Spokane,Washington,53063,4,0 +2020-03-09,Spokane,Washington,53063,4,0 +2020-03-10,Spokane,Washington,53063,4,0 +2020-03-11,Spokane,Washington,53063,4,0 +2020-03-12,Spokane,Washington,53063,4,0 +2020-03-13,Spokane,Washington,53063,4,0 +2020-03-14,Spokane,Washington,53063,7,0 +2020-03-15,Spokane,Washington,53063,7,0 +2020-03-16,Spokane,Washington,53063,7,0 +2020-03-17,Spokane,Washington,53063,7,0 +2020-03-18,Spokane,Washington,53063,7,0 +2020-03-19,Spokane,Washington,53063,9,0 +2020-03-20,Spokane,Washington,53063,11,0 +2020-03-21,Spokane,Washington,53063,16,0 +2020-03-22,Spokane,Washington,53063,20,0 +2020-03-23,Spokane,Washington,53063,29,0 +2020-03-24,Spokane,Washington,53063,33,0 +2020-03-25,Spokane,Washington,53063,55,0 +2020-03-26,Spokane,Washington,53063,67,0 +2020-03-27,Spokane,Washington,53063,86,1 +2020-03-28,Spokane,Washington,53063,108,2 +2020-03-29,Spokane,Washington,53063,140,4 +2020-03-30,Spokane,Washington,53063,140,4 +2020-03-31,Spokane,Washington,53063,140,4 +2020-04-01,Spokane,Washington,53063,145,4 +2020-04-02,Spokane,Washington,53063,186,5 +2020-04-03,Spokane,Washington,53063,194,7 +2020-04-04,Spokane,Washington,53063,209,10 +2020-04-05,Spokane,Washington,53063,219,11 +2020-04-06,Spokane,Washington,53063,226,12 +2020-04-07,Spokane,Washington,53063,231,13 +2020-04-08,Spokane,Washington,53063,231,13 +2020-04-09,Spokane,Washington,53063,246,14 +2020-04-10,Spokane,Washington,53063,255,14 +2020-04-11,Spokane,Washington,53063,255,14 +2020-04-12,Spokane,Washington,53063,278,14 +2020-04-13,Spokane,Washington,53063,280,15 +2020-04-14,Spokane,Washington,53063,282,17 +2020-04-15,Spokane,Washington,53063,290,17 +2020-04-16,Spokane,Washington,53063,297,17 +2020-04-17,Spokane,Washington,53063,302,17 +2020-04-18,Spokane,Washington,53063,306,17 +2020-04-19,Spokane,Washington,53063,311,17 +2020-04-20,Spokane,Washington,53063,317,17 +2020-04-21,Spokane,Washington,53063,319,19 +2020-04-22,Spokane,Washington,53063,321,19 +2020-04-23,Spokane,Washington,53063,326,19 +2020-04-24,Spokane,Washington,53063,330,19 +2020-04-25,Spokane,Washington,53063,345,19 +2020-04-26,Spokane,Washington,53063,351,19 +2020-04-27,Spokane,Washington,53063,353,19 +2020-04-28,Spokane,Washington,53063,354,20 +2020-04-29,Spokane,Washington,53063,357,20 +2020-04-30,Spokane,Washington,53063,366,22 +2020-05-01,Spokane,Washington,53063,371,22 +2020-05-02,Spokane,Washington,53063,371,22 +2020-05-03,Spokane,Washington,53063,373,22 +2020-05-04,Spokane,Washington,53063,378,22 +2020-05-05,Spokane,Washington,53063,379,23 +2020-05-06,Spokane,Washington,53063,384,23 +2020-05-07,Spokane,Washington,53063,386,25 +2020-05-08,Spokane,Washington,53063,386,28 +2020-05-09,Spokane,Washington,53063,386,28 +2020-05-10,Spokane,Washington,53063,386,28 +2020-05-11,Spokane,Washington,53063,390,29 +2020-05-12,Spokane,Washington,53063,390,29 +2020-05-13,Spokane,Washington,53063,390,29 +2020-05-14,Spokane,Washington,53063,398,30 +2020-05-15,Spokane,Washington,53063,400,30 +2020-05-16,Spokane,Washington,53063,400,30 +2020-05-17,Spokane,Washington,53063,404,30 +2020-05-18,Spokane,Washington,53063,412,30 +2020-05-19,Spokane,Washington,53063,416,31 +2020-05-20,Spokane,Washington,53063,423,31 +2020-05-21,Spokane,Washington,53063,436,31 +2020-05-22,Spokane,Washington,53063,454,31 +2020-05-23,Spokane,Washington,53063,467,31 +2020-05-24,Spokane,Washington,53063,481,31 +2020-05-25,Spokane,Washington,53063,498,31 +2020-05-26,Spokane,Washington,53063,507,31 +2020-05-27,Spokane,Washington,53063,530,31 +2020-05-28,Spokane,Washington,53063,544,31 +2020-05-29,Spokane,Washington,53063,574,32 +2020-05-30,Spokane,Washington,53063,586,32 +2020-05-31,Spokane,Washington,53063,600,32 +2020-06-01,Spokane,Washington,53063,606,33 +2020-06-02,Spokane,Washington,53063,619,34 +2020-06-03,Spokane,Washington,53063,633,34 +2020-06-04,Spokane,Washington,53063,652,34 +2020-06-05,Spokane,Washington,53063,711,35 +2020-06-06,Spokane,Washington,53063,717,35 +2020-06-07,Spokane,Washington,53063,740,35 +2020-06-08,Spokane,Washington,53063,767,35 +2020-06-09,Spokane,Washington,53063,778,37 +2020-06-10,Spokane,Washington,53063,792,37 +2020-06-11,Spokane,Washington,53063,796,37 +2020-06-12,Spokane,Washington,53063,806,37 +2020-06-13,Spokane,Washington,53063,808,37 +2020-06-14,Spokane,Washington,53063,824,37 +2020-06-15,Spokane,Washington,53063,846,37 +2020-06-16,Spokane,Washington,53063,864,37 +2020-06-17,Spokane,Washington,53063,881,37 +2020-06-18,Spokane,Washington,53063,897,37 +2020-06-19,Spokane,Washington,53063,940,37 +2020-06-20,Spokane,Washington,53063,958,38 +2020-06-21,Spokane,Washington,53063,978,38 +2020-06-22,Spokane,Washington,53063,1002,39 +2020-06-23,Spokane,Washington,53063,1055,38 +2020-06-24,Spokane,Washington,53063,1085,38 +2020-06-25,Spokane,Washington,53063,1126,38 +2020-06-26,Spokane,Washington,53063,1171,39 +2020-06-27,Spokane,Washington,53063,1183,39 +2020-06-28,Spokane,Washington,53063,1197,39 +2020-06-29,Spokane,Washington,53063,1306,39 +2020-06-30,Spokane,Washington,53063,1385,40 +2020-07-01,Spokane,Washington,53063,1420,41 +2020-07-02,Spokane,Washington,53063,1489,41 +2020-07-03,Spokane,Washington,53063,1533,41 +2020-07-04,Spokane,Washington,53063,1555,41 +2020-07-05,Spokane,Washington,53063,1606,41 +2020-07-06,Spokane,Washington,53063,1741,41 +2020-07-07,Spokane,Washington,53063,1792,42 +2020-07-08,Spokane,Washington,53063,1850,42 +2020-07-09,Spokane,Washington,53063,1902,43 +2020-03-20,Stevens,Washington,53065,1,0 +2020-03-21,Stevens,Washington,53065,1,0 +2020-03-22,Stevens,Washington,53065,1,0 +2020-03-23,Stevens,Washington,53065,1,0 +2020-03-24,Stevens,Washington,53065,1,0 +2020-03-25,Stevens,Washington,53065,2,0 +2020-03-26,Stevens,Washington,53065,2,0 +2020-03-27,Stevens,Washington,53065,3,0 +2020-03-28,Stevens,Washington,53065,3,0 +2020-03-29,Stevens,Washington,53065,3,0 +2020-03-30,Stevens,Washington,53065,4,0 +2020-03-31,Stevens,Washington,53065,4,0 +2020-04-01,Stevens,Washington,53065,4,0 +2020-04-02,Stevens,Washington,53065,5,0 +2020-04-03,Stevens,Washington,53065,5,0 +2020-04-04,Stevens,Washington,53065,5,0 +2020-04-05,Stevens,Washington,53065,5,0 +2020-04-06,Stevens,Washington,53065,5,0 +2020-04-07,Stevens,Washington,53065,5,0 +2020-04-08,Stevens,Washington,53065,6,0 +2020-04-09,Stevens,Washington,53065,6,0 +2020-04-10,Stevens,Washington,53065,6,0 +2020-04-11,Stevens,Washington,53065,6,0 +2020-04-12,Stevens,Washington,53065,7,0 +2020-04-13,Stevens,Washington,53065,7,1 +2020-04-14,Stevens,Washington,53065,7,1 +2020-04-15,Stevens,Washington,53065,7,1 +2020-04-16,Stevens,Washington,53065,7,1 +2020-04-17,Stevens,Washington,53065,8,1 +2020-04-18,Stevens,Washington,53065,8,1 +2020-04-19,Stevens,Washington,53065,8,1 +2020-04-20,Stevens,Washington,53065,8,1 +2020-04-21,Stevens,Washington,53065,8,1 +2020-04-22,Stevens,Washington,53065,8,1 +2020-04-23,Stevens,Washington,53065,9,1 +2020-04-24,Stevens,Washington,53065,9,1 +2020-04-25,Stevens,Washington,53065,10,1 +2020-04-26,Stevens,Washington,53065,9,1 +2020-04-27,Stevens,Washington,53065,9,1 +2020-04-28,Stevens,Washington,53065,9,1 +2020-04-29,Stevens,Washington,53065,9,1 +2020-04-30,Stevens,Washington,53065,9,1 +2020-05-01,Stevens,Washington,53065,9,1 +2020-05-02,Stevens,Washington,53065,9,1 +2020-05-03,Stevens,Washington,53065,9,1 +2020-05-04,Stevens,Washington,53065,9,1 +2020-05-05,Stevens,Washington,53065,9,1 +2020-05-06,Stevens,Washington,53065,9,1 +2020-05-07,Stevens,Washington,53065,9,1 +2020-05-08,Stevens,Washington,53065,9,1 +2020-05-09,Stevens,Washington,53065,9,1 +2020-05-10,Stevens,Washington,53065,9,1 +2020-05-11,Stevens,Washington,53065,9,1 +2020-05-12,Stevens,Washington,53065,9,1 +2020-05-13,Stevens,Washington,53065,9,1 +2020-05-14,Stevens,Washington,53065,9,1 +2020-05-15,Stevens,Washington,53065,9,1 +2020-05-16,Stevens,Washington,53065,9,1 +2020-05-17,Stevens,Washington,53065,9,1 +2020-05-18,Stevens,Washington,53065,9,1 +2020-05-19,Stevens,Washington,53065,10,1 +2020-05-20,Stevens,Washington,53065,10,1 +2020-05-21,Stevens,Washington,53065,10,1 +2020-05-22,Stevens,Washington,53065,10,1 +2020-05-23,Stevens,Washington,53065,10,1 +2020-05-24,Stevens,Washington,53065,10,1 +2020-05-25,Stevens,Washington,53065,10,1 +2020-05-26,Stevens,Washington,53065,10,1 +2020-05-27,Stevens,Washington,53065,10,1 +2020-05-28,Stevens,Washington,53065,11,1 +2020-05-29,Stevens,Washington,53065,11,1 +2020-05-30,Stevens,Washington,53065,11,1 +2020-05-31,Stevens,Washington,53065,11,1 +2020-06-01,Stevens,Washington,53065,11,1 +2020-06-02,Stevens,Washington,53065,11,1 +2020-06-03,Stevens,Washington,53065,13,1 +2020-06-04,Stevens,Washington,53065,13,1 +2020-06-05,Stevens,Washington,53065,13,1 +2020-06-06,Stevens,Washington,53065,13,1 +2020-06-07,Stevens,Washington,53065,13,1 +2020-06-08,Stevens,Washington,53065,13,1 +2020-06-09,Stevens,Washington,53065,13,1 +2020-06-10,Stevens,Washington,53065,14,1 +2020-06-11,Stevens,Washington,53065,15,1 +2020-06-12,Stevens,Washington,53065,15,1 +2020-06-13,Stevens,Washington,53065,15,1 +2020-06-14,Stevens,Washington,53065,15,1 +2020-06-15,Stevens,Washington,53065,15,1 +2020-06-16,Stevens,Washington,53065,15,1 +2020-06-17,Stevens,Washington,53065,16,1 +2020-06-18,Stevens,Washington,53065,16,1 +2020-06-19,Stevens,Washington,53065,16,1 +2020-06-20,Stevens,Washington,53065,16,1 +2020-06-21,Stevens,Washington,53065,17,1 +2020-06-22,Stevens,Washington,53065,17,1 +2020-06-23,Stevens,Washington,53065,16,1 +2020-06-24,Stevens,Washington,53065,16,1 +2020-06-25,Stevens,Washington,53065,16,1 +2020-06-26,Stevens,Washington,53065,16,1 +2020-06-27,Stevens,Washington,53065,16,1 +2020-06-28,Stevens,Washington,53065,17,1 +2020-06-29,Stevens,Washington,53065,17,1 +2020-06-30,Stevens,Washington,53065,18,1 +2020-07-01,Stevens,Washington,53065,18,1 +2020-07-02,Stevens,Washington,53065,18,1 +2020-07-03,Stevens,Washington,53065,19,1 +2020-07-04,Stevens,Washington,53065,19,1 +2020-07-05,Stevens,Washington,53065,20,1 +2020-07-06,Stevens,Washington,53065,20,1 +2020-07-07,Stevens,Washington,53065,20,1 +2020-07-08,Stevens,Washington,53065,20,1 +2020-07-09,Stevens,Washington,53065,21,1 +2020-03-11,Thurston,Washington,53067,1,0 +2020-03-12,Thurston,Washington,53067,1,0 +2020-03-13,Thurston,Washington,53067,3,0 +2020-03-14,Thurston,Washington,53067,3,0 +2020-03-15,Thurston,Washington,53067,4,0 +2020-03-16,Thurston,Washington,53067,4,0 +2020-03-17,Thurston,Washington,53067,5,0 +2020-03-18,Thurston,Washington,53067,6,0 +2020-03-19,Thurston,Washington,53067,6,0 +2020-03-20,Thurston,Washington,53067,8,0 +2020-03-21,Thurston,Washington,53067,10,0 +2020-03-22,Thurston,Washington,53067,11,0 +2020-03-23,Thurston,Washington,53067,11,0 +2020-03-24,Thurston,Washington,53067,14,0 +2020-03-25,Thurston,Washington,53067,14,0 +2020-03-26,Thurston,Washington,53067,24,0 +2020-03-27,Thurston,Washington,53067,27,0 +2020-03-28,Thurston,Washington,53067,33,0 +2020-03-29,Thurston,Washington,53067,36,0 +2020-03-30,Thurston,Washington,53067,43,0 +2020-03-31,Thurston,Washington,53067,48,0 +2020-04-01,Thurston,Washington,53067,51,0 +2020-04-02,Thurston,Washington,53067,55,0 +2020-04-03,Thurston,Washington,53067,58,0 +2020-04-04,Thurston,Washington,53067,64,1 +2020-04-05,Thurston,Washington,53067,67,1 +2020-04-06,Thurston,Washington,53067,72,1 +2020-04-07,Thurston,Washington,53067,74,1 +2020-04-08,Thurston,Washington,53067,77,1 +2020-04-09,Thurston,Washington,53067,81,1 +2020-04-10,Thurston,Washington,53067,81,1 +2020-04-11,Thurston,Washington,53067,81,1 +2020-04-12,Thurston,Washington,53067,81,1 +2020-04-13,Thurston,Washington,53067,81,1 +2020-04-14,Thurston,Washington,53067,82,1 +2020-04-15,Thurston,Washington,53067,82,1 +2020-04-16,Thurston,Washington,53067,86,1 +2020-04-17,Thurston,Washington,53067,89,1 +2020-04-18,Thurston,Washington,53067,93,1 +2020-04-19,Thurston,Washington,53067,94,1 +2020-04-20,Thurston,Washington,53067,94,1 +2020-04-21,Thurston,Washington,53067,94,1 +2020-04-22,Thurston,Washington,53067,95,1 +2020-04-23,Thurston,Washington,53067,96,1 +2020-04-24,Thurston,Washington,53067,98,1 +2020-04-25,Thurston,Washington,53067,101,1 +2020-04-26,Thurston,Washington,53067,100,1 +2020-04-27,Thurston,Washington,53067,100,1 +2020-04-28,Thurston,Washington,53067,100,1 +2020-04-29,Thurston,Washington,53067,104,1 +2020-04-30,Thurston,Washington,53067,105,1 +2020-05-01,Thurston,Washington,53067,110,1 +2020-05-02,Thurston,Washington,53067,111,1 +2020-05-03,Thurston,Washington,53067,111,1 +2020-05-04,Thurston,Washington,53067,113,1 +2020-05-05,Thurston,Washington,53067,113,1 +2020-05-06,Thurston,Washington,53067,116,1 +2020-05-07,Thurston,Washington,53067,117,1 +2020-05-08,Thurston,Washington,53067,118,1 +2020-05-09,Thurston,Washington,53067,120,1 +2020-05-10,Thurston,Washington,53067,123,1 +2020-05-11,Thurston,Washington,53067,123,1 +2020-05-12,Thurston,Washington,53067,124,1 +2020-05-13,Thurston,Washington,53067,124,1 +2020-05-14,Thurston,Washington,53067,125,1 +2020-05-15,Thurston,Washington,53067,126,1 +2020-05-16,Thurston,Washington,53067,127,1 +2020-05-17,Thurston,Washington,53067,127,1 +2020-05-18,Thurston,Washington,53067,127,1 +2020-05-19,Thurston,Washington,53067,127,1 +2020-05-20,Thurston,Washington,53067,127,1 +2020-05-21,Thurston,Washington,53067,127,1 +2020-05-22,Thurston,Washington,53067,127,1 +2020-05-23,Thurston,Washington,53067,127,1 +2020-05-24,Thurston,Washington,53067,131,1 +2020-05-25,Thurston,Washington,53067,132,1 +2020-05-26,Thurston,Washington,53067,132,1 +2020-05-27,Thurston,Washington,53067,135,1 +2020-05-28,Thurston,Washington,53067,135,1 +2020-05-29,Thurston,Washington,53067,136,1 +2020-05-30,Thurston,Washington,53067,148,2 +2020-05-31,Thurston,Washington,53067,154,2 +2020-06-01,Thurston,Washington,53067,155,2 +2020-06-02,Thurston,Washington,53067,157,2 +2020-06-03,Thurston,Washington,53067,157,2 +2020-06-04,Thurston,Washington,53067,160,2 +2020-06-05,Thurston,Washington,53067,165,2 +2020-06-06,Thurston,Washington,53067,170,2 +2020-06-07,Thurston,Washington,53067,170,2 +2020-06-08,Thurston,Washington,53067,173,3 +2020-06-09,Thurston,Washington,53067,174,4 +2020-06-10,Thurston,Washington,53067,179,4 +2020-06-11,Thurston,Washington,53067,179,4 +2020-06-12,Thurston,Washington,53067,187,4 +2020-06-13,Thurston,Washington,53067,192,4 +2020-06-14,Thurston,Washington,53067,193,4 +2020-06-15,Thurston,Washington,53067,197,4 +2020-06-16,Thurston,Washington,53067,198,5 +2020-06-17,Thurston,Washington,53067,201,5 +2020-06-18,Thurston,Washington,53067,205,5 +2020-06-19,Thurston,Washington,53067,210,6 +2020-06-20,Thurston,Washington,53067,214,5 +2020-06-21,Thurston,Washington,53067,219,5 +2020-06-22,Thurston,Washington,53067,219,7 +2020-06-23,Thurston,Washington,53067,221,7 +2020-06-24,Thurston,Washington,53067,226,7 +2020-06-25,Thurston,Washington,53067,229,7 +2020-06-26,Thurston,Washington,53067,232,7 +2020-06-27,Thurston,Washington,53067,238,7 +2020-06-28,Thurston,Washington,53067,244,7 +2020-06-29,Thurston,Washington,53067,251,7 +2020-06-30,Thurston,Washington,53067,263,7 +2020-07-01,Thurston,Washington,53067,273,7 +2020-07-02,Thurston,Washington,53067,282,7 +2020-07-03,Thurston,Washington,53067,288,7 +2020-07-04,Thurston,Washington,53067,292,7 +2020-07-05,Thurston,Washington,53067,298,7 +2020-07-06,Thurston,Washington,53067,303,8 +2020-07-07,Thurston,Washington,53067,312,8 +2020-07-08,Thurston,Washington,53067,317,8 +2020-07-09,Thurston,Washington,53067,321,8 +2020-04-04,Wahkiakum,Washington,53069,1,0 +2020-04-05,Wahkiakum,Washington,53069,2,0 +2020-04-06,Wahkiakum,Washington,53069,2,0 +2020-04-07,Wahkiakum,Washington,53069,2,0 +2020-04-08,Wahkiakum,Washington,53069,2,0 +2020-04-09,Wahkiakum,Washington,53069,2,0 +2020-04-10,Wahkiakum,Washington,53069,2,0 +2020-04-11,Wahkiakum,Washington,53069,2,0 +2020-04-12,Wahkiakum,Washington,53069,2,0 +2020-04-13,Wahkiakum,Washington,53069,2,0 +2020-04-14,Wahkiakum,Washington,53069,2,0 +2020-04-15,Wahkiakum,Washington,53069,2,0 +2020-04-16,Wahkiakum,Washington,53069,2,0 +2020-04-17,Wahkiakum,Washington,53069,2,0 +2020-04-18,Wahkiakum,Washington,53069,2,0 +2020-04-19,Wahkiakum,Washington,53069,2,0 +2020-04-20,Wahkiakum,Washington,53069,2,0 +2020-04-21,Wahkiakum,Washington,53069,2,0 +2020-04-22,Wahkiakum,Washington,53069,2,0 +2020-04-23,Wahkiakum,Washington,53069,2,0 +2020-04-24,Wahkiakum,Washington,53069,2,0 +2020-04-25,Wahkiakum,Washington,53069,2,0 +2020-04-26,Wahkiakum,Washington,53069,2,0 +2020-04-27,Wahkiakum,Washington,53069,2,0 +2020-04-28,Wahkiakum,Washington,53069,2,0 +2020-04-29,Wahkiakum,Washington,53069,2,0 +2020-04-30,Wahkiakum,Washington,53069,2,0 +2020-05-01,Wahkiakum,Washington,53069,2,0 +2020-05-02,Wahkiakum,Washington,53069,2,0 +2020-05-03,Wahkiakum,Washington,53069,2,0 +2020-05-04,Wahkiakum,Washington,53069,2,0 +2020-05-05,Wahkiakum,Washington,53069,2,0 +2020-05-06,Wahkiakum,Washington,53069,2,0 +2020-05-07,Wahkiakum,Washington,53069,2,0 +2020-05-08,Wahkiakum,Washington,53069,3,0 +2020-05-09,Wahkiakum,Washington,53069,3,0 +2020-05-10,Wahkiakum,Washington,53069,3,0 +2020-05-11,Wahkiakum,Washington,53069,4,0 +2020-05-12,Wahkiakum,Washington,53069,4,0 +2020-05-13,Wahkiakum,Washington,53069,4,0 +2020-05-14,Wahkiakum,Washington,53069,4,0 +2020-05-15,Wahkiakum,Washington,53069,4,0 +2020-05-16,Wahkiakum,Washington,53069,4,0 +2020-05-17,Wahkiakum,Washington,53069,4,0 +2020-05-18,Wahkiakum,Washington,53069,4,0 +2020-05-19,Wahkiakum,Washington,53069,4,0 +2020-05-20,Wahkiakum,Washington,53069,4,0 +2020-05-21,Wahkiakum,Washington,53069,4,0 +2020-05-22,Wahkiakum,Washington,53069,4,0 +2020-05-23,Wahkiakum,Washington,53069,4,0 +2020-05-24,Wahkiakum,Washington,53069,4,0 +2020-05-25,Wahkiakum,Washington,53069,4,0 +2020-05-26,Wahkiakum,Washington,53069,4,0 +2020-05-27,Wahkiakum,Washington,53069,4,0 +2020-05-28,Wahkiakum,Washington,53069,4,0 +2020-05-29,Wahkiakum,Washington,53069,4,0 +2020-05-30,Wahkiakum,Washington,53069,4,0 +2020-05-31,Wahkiakum,Washington,53069,4,0 +2020-06-01,Wahkiakum,Washington,53069,4,0 +2020-06-02,Wahkiakum,Washington,53069,4,0 +2020-06-03,Wahkiakum,Washington,53069,4,0 +2020-06-04,Wahkiakum,Washington,53069,4,0 +2020-06-05,Wahkiakum,Washington,53069,4,0 +2020-06-06,Wahkiakum,Washington,53069,4,0 +2020-06-07,Wahkiakum,Washington,53069,4,0 +2020-06-08,Wahkiakum,Washington,53069,4,0 +2020-06-09,Wahkiakum,Washington,53069,4,0 +2020-06-10,Wahkiakum,Washington,53069,4,0 +2020-06-11,Wahkiakum,Washington,53069,4,0 +2020-06-12,Wahkiakum,Washington,53069,4,0 +2020-06-13,Wahkiakum,Washington,53069,4,0 +2020-06-14,Wahkiakum,Washington,53069,4,0 +2020-06-15,Wahkiakum,Washington,53069,4,0 +2020-06-16,Wahkiakum,Washington,53069,4,0 +2020-06-17,Wahkiakum,Washington,53069,4,0 +2020-06-18,Wahkiakum,Washington,53069,4,0 +2020-06-19,Wahkiakum,Washington,53069,4,0 +2020-06-20,Wahkiakum,Washington,53069,4,0 +2020-06-21,Wahkiakum,Washington,53069,4,0 +2020-06-22,Wahkiakum,Washington,53069,4,0 +2020-06-23,Wahkiakum,Washington,53069,4,0 +2020-06-24,Wahkiakum,Washington,53069,4,0 +2020-06-25,Wahkiakum,Washington,53069,5,0 +2020-06-26,Wahkiakum,Washington,53069,5,0 +2020-06-27,Wahkiakum,Washington,53069,5,0 +2020-06-28,Wahkiakum,Washington,53069,5,0 +2020-06-29,Wahkiakum,Washington,53069,5,0 +2020-06-30,Wahkiakum,Washington,53069,5,0 +2020-07-01,Wahkiakum,Washington,53069,5,0 +2020-07-02,Wahkiakum,Washington,53069,5,0 +2020-07-03,Wahkiakum,Washington,53069,5,0 +2020-07-04,Wahkiakum,Washington,53069,5,0 +2020-07-05,Wahkiakum,Washington,53069,5,0 +2020-07-06,Wahkiakum,Washington,53069,5,0 +2020-07-07,Wahkiakum,Washington,53069,5,0 +2020-07-08,Wahkiakum,Washington,53069,5,0 +2020-07-09,Wahkiakum,Washington,53069,5,0 +2020-03-02,Walla Walla,Washington,53071,1,0 +2020-03-03,Walla Walla,Washington,53071,1,0 +2020-03-04,Walla Walla,Washington,53071,1,0 +2020-03-05,Walla Walla,Washington,53071,1,0 +2020-03-06,Walla Walla,Washington,53071,1,0 +2020-03-07,Walla Walla,Washington,53071,1,0 +2020-03-08,Walla Walla,Washington,53071,1,0 +2020-03-09,Walla Walla,Washington,53071,1,0 +2020-03-10,Walla Walla,Washington,53071,1,0 +2020-03-11,Walla Walla,Washington,53071,1,0 +2020-03-12,Walla Walla,Washington,53071,1,0 +2020-03-13,Walla Walla,Washington,53071,1,0 +2020-03-14,Walla Walla,Washington,53071,1,0 +2020-03-15,Walla Walla,Washington,53071,1,0 +2020-03-16,Walla Walla,Washington,53071,1,0 +2020-03-17,Walla Walla,Washington,53071,1,0 +2020-03-18,Walla Walla,Washington,53071,1,0 +2020-03-19,Walla Walla,Washington,53071,1,0 +2020-03-20,Walla Walla,Washington,53071,1,0 +2020-03-21,Walla Walla,Washington,53071,1,0 +2020-03-22,Walla Walla,Washington,53071,1,0 +2020-03-23,Walla Walla,Washington,53071,1,0 +2020-03-24,Walla Walla,Washington,53071,2,0 +2020-03-25,Walla Walla,Washington,53071,3,0 +2020-03-26,Walla Walla,Washington,53071,3,0 +2020-03-27,Walla Walla,Washington,53071,3,0 +2020-03-28,Walla Walla,Washington,53071,4,0 +2020-03-29,Walla Walla,Washington,53071,7,0 +2020-03-30,Walla Walla,Washington,53071,7,0 +2020-03-31,Walla Walla,Washington,53071,7,0 +2020-04-01,Walla Walla,Washington,53071,8,0 +2020-04-02,Walla Walla,Washington,53071,9,0 +2020-04-03,Walla Walla,Washington,53071,9,0 +2020-04-04,Walla Walla,Washington,53071,9,0 +2020-04-05,Walla Walla,Washington,53071,12,0 +2020-04-06,Walla Walla,Washington,53071,14,0 +2020-04-07,Walla Walla,Washington,53071,17,0 +2020-04-08,Walla Walla,Washington,53071,17,0 +2020-04-09,Walla Walla,Washington,53071,17,0 +2020-04-10,Walla Walla,Washington,53071,21,0 +2020-04-11,Walla Walla,Washington,53071,21,0 +2020-04-12,Walla Walla,Washington,53071,21,0 +2020-04-13,Walla Walla,Washington,53071,22,0 +2020-04-14,Walla Walla,Washington,53071,25,0 +2020-04-15,Walla Walla,Washington,53071,26,0 +2020-04-16,Walla Walla,Washington,53071,27,0 +2020-04-17,Walla Walla,Washington,53071,28,0 +2020-04-18,Walla Walla,Washington,53071,28,0 +2020-04-19,Walla Walla,Washington,53071,28,0 +2020-04-20,Walla Walla,Washington,53071,36,0 +2020-04-21,Walla Walla,Washington,53071,36,0 +2020-04-22,Walla Walla,Washington,53071,36,0 +2020-04-23,Walla Walla,Washington,53071,52,0 +2020-04-24,Walla Walla,Washington,53071,52,0 +2020-04-25,Walla Walla,Washington,53071,57,0 +2020-04-26,Walla Walla,Washington,53071,57,0 +2020-04-27,Walla Walla,Washington,53071,57,0 +2020-04-28,Walla Walla,Washington,53071,62,0 +2020-04-29,Walla Walla,Washington,53071,68,0 +2020-04-30,Walla Walla,Washington,53071,77,0 +2020-05-01,Walla Walla,Washington,53071,86,0 +2020-05-02,Walla Walla,Washington,53071,88,0 +2020-05-03,Walla Walla,Washington,53071,88,0 +2020-05-04,Walla Walla,Washington,53071,92,0 +2020-05-05,Walla Walla,Washington,53071,93,0 +2020-05-06,Walla Walla,Washington,53071,96,0 +2020-05-07,Walla Walla,Washington,53071,97,0 +2020-05-08,Walla Walla,Washington,53071,97,0 +2020-05-09,Walla Walla,Washington,53071,99,2 +2020-05-10,Walla Walla,Washington,53071,99,2 +2020-05-11,Walla Walla,Washington,53071,104,2 +2020-05-12,Walla Walla,Washington,53071,106,2 +2020-05-13,Walla Walla,Washington,53071,107,2 +2020-05-14,Walla Walla,Washington,53071,106,2 +2020-05-15,Walla Walla,Washington,53071,106,2 +2020-05-16,Walla Walla,Washington,53071,107,2 +2020-05-17,Walla Walla,Washington,53071,108,2 +2020-05-18,Walla Walla,Washington,53071,107,2 +2020-05-19,Walla Walla,Washington,53071,106,2 +2020-05-20,Walla Walla,Washington,53071,106,2 +2020-05-21,Walla Walla,Washington,53071,106,2 +2020-05-22,Walla Walla,Washington,53071,106,2 +2020-05-23,Walla Walla,Washington,53071,106,2 +2020-05-24,Walla Walla,Washington,53071,107,2 +2020-05-25,Walla Walla,Washington,53071,108,2 +2020-05-26,Walla Walla,Washington,53071,108,2 +2020-05-27,Walla Walla,Washington,53071,108,2 +2020-05-28,Walla Walla,Washington,53071,108,2 +2020-05-29,Walla Walla,Washington,53071,109,2 +2020-05-30,Walla Walla,Washington,53071,109,2 +2020-05-31,Walla Walla,Washington,53071,109,2 +2020-06-01,Walla Walla,Washington,53071,110,2 +2020-06-02,Walla Walla,Washington,53071,110,2 +2020-06-03,Walla Walla,Washington,53071,111,2 +2020-06-04,Walla Walla,Washington,53071,111,2 +2020-06-05,Walla Walla,Washington,53071,113,2 +2020-06-06,Walla Walla,Washington,53071,113,2 +2020-06-07,Walla Walla,Washington,53071,116,2 +2020-06-08,Walla Walla,Washington,53071,117,2 +2020-06-09,Walla Walla,Washington,53071,119,2 +2020-06-10,Walla Walla,Washington,53071,118,2 +2020-06-11,Walla Walla,Washington,53071,118,2 +2020-06-12,Walla Walla,Washington,53071,118,3 +2020-06-13,Walla Walla,Washington,53071,118,3 +2020-06-14,Walla Walla,Washington,53071,118,3 +2020-06-15,Walla Walla,Washington,53071,122,3 +2020-06-16,Walla Walla,Washington,53071,125,3 +2020-06-17,Walla Walla,Washington,53071,127,3 +2020-06-18,Walla Walla,Washington,53071,129,3 +2020-06-19,Walla Walla,Washington,53071,131,3 +2020-06-20,Walla Walla,Washington,53071,132,3 +2020-06-21,Walla Walla,Washington,53071,141,3 +2020-06-22,Walla Walla,Washington,53071,143,3 +2020-06-23,Walla Walla,Washington,53071,144,3 +2020-06-24,Walla Walla,Washington,53071,147,3 +2020-06-25,Walla Walla,Washington,53071,148,3 +2020-06-26,Walla Walla,Washington,53071,152,3 +2020-06-27,Walla Walla,Washington,53071,152,3 +2020-06-28,Walla Walla,Washington,53071,158,3 +2020-06-29,Walla Walla,Washington,53071,164,3 +2020-06-30,Walla Walla,Washington,53071,169,3 +2020-07-01,Walla Walla,Washington,53071,171,3 +2020-07-02,Walla Walla,Washington,53071,176,3 +2020-07-03,Walla Walla,Washington,53071,176,3 +2020-07-04,Walla Walla,Washington,53071,177,3 +2020-07-05,Walla Walla,Washington,53071,187,3 +2020-07-06,Walla Walla,Washington,53071,192,3 +2020-07-07,Walla Walla,Washington,53071,196,3 +2020-07-08,Walla Walla,Washington,53071,201,3 +2020-07-09,Walla Walla,Washington,53071,205,3 +2020-03-10,Whatcom,Washington,53073,1,0 +2020-03-11,Whatcom,Washington,53073,1,0 +2020-03-12,Whatcom,Washington,53073,1,0 +2020-03-13,Whatcom,Washington,53073,1,0 +2020-03-14,Whatcom,Washington,53073,2,0 +2020-03-15,Whatcom,Washington,53073,3,0 +2020-03-16,Whatcom,Washington,53073,3,0 +2020-03-17,Whatcom,Washington,53073,6,0 +2020-03-18,Whatcom,Washington,53073,7,0 +2020-03-19,Whatcom,Washington,53073,7,1 +2020-03-20,Whatcom,Washington,53073,11,1 +2020-03-21,Whatcom,Washington,53073,14,2 +2020-03-22,Whatcom,Washington,53073,19,2 +2020-03-23,Whatcom,Washington,53073,48,2 +2020-03-24,Whatcom,Washington,53073,64,2 +2020-03-25,Whatcom,Washington,53073,66,2 +2020-03-26,Whatcom,Washington,53073,86,4 +2020-03-27,Whatcom,Washington,53073,92,4 +2020-03-28,Whatcom,Washington,53073,102,4 +2020-03-29,Whatcom,Washington,53073,116,7 +2020-03-30,Whatcom,Washington,53073,116,7 +2020-03-31,Whatcom,Washington,53073,116,7 +2020-04-01,Whatcom,Washington,53073,144,8 +2020-04-02,Whatcom,Washington,53073,175,9 +2020-04-03,Whatcom,Washington,53073,182,9 +2020-04-04,Whatcom,Washington,53073,199,9 +2020-04-05,Whatcom,Washington,53073,224,15 +2020-04-06,Whatcom,Washington,53073,228,19 +2020-04-07,Whatcom,Washington,53073,238,19 +2020-04-08,Whatcom,Washington,53073,238,20 +2020-04-09,Whatcom,Washington,53073,243,21 +2020-04-10,Whatcom,Washington,53073,250,23 +2020-04-11,Whatcom,Washington,53073,252,23 +2020-04-12,Whatcom,Washington,53073,263,23 +2020-04-13,Whatcom,Washington,53073,263,23 +2020-04-14,Whatcom,Washington,53073,265,25 +2020-04-15,Whatcom,Washington,53073,269,25 +2020-04-16,Whatcom,Washington,53073,271,25 +2020-04-17,Whatcom,Washington,53073,271,25 +2020-04-18,Whatcom,Washington,53073,273,26 +2020-04-19,Whatcom,Washington,53073,277,26 +2020-04-20,Whatcom,Washington,53073,278,27 +2020-04-21,Whatcom,Washington,53073,280,27 +2020-04-22,Whatcom,Washington,53073,280,27 +2020-04-23,Whatcom,Washington,53073,282,27 +2020-04-24,Whatcom,Washington,53073,282,27 +2020-04-25,Whatcom,Washington,53073,284,27 +2020-04-26,Whatcom,Washington,53073,288,27 +2020-04-27,Whatcom,Washington,53073,290,27 +2020-04-28,Whatcom,Washington,53073,293,28 +2020-04-29,Whatcom,Washington,53073,294,28 +2020-04-30,Whatcom,Washington,53073,304,28 +2020-05-01,Whatcom,Washington,53073,311,28 +2020-05-02,Whatcom,Washington,53073,311,28 +2020-05-03,Whatcom,Washington,53073,316,28 +2020-05-04,Whatcom,Washington,53073,317,28 +2020-05-05,Whatcom,Washington,53073,318,29 +2020-05-06,Whatcom,Washington,53073,324,30 +2020-05-07,Whatcom,Washington,53073,328,33 +2020-05-08,Whatcom,Washington,53073,329,33 +2020-05-09,Whatcom,Washington,53073,330,33 +2020-05-10,Whatcom,Washington,53073,333,34 +2020-05-11,Whatcom,Washington,53073,338,34 +2020-05-12,Whatcom,Washington,53073,340,34 +2020-05-13,Whatcom,Washington,53073,344,35 +2020-05-14,Whatcom,Washington,53073,344,35 +2020-05-15,Whatcom,Washington,53073,344,35 +2020-05-16,Whatcom,Washington,53073,347,35 +2020-05-17,Whatcom,Washington,53073,347,35 +2020-05-18,Whatcom,Washington,53073,358,35 +2020-05-19,Whatcom,Washington,53073,359,36 +2020-05-20,Whatcom,Washington,53073,359,36 +2020-05-21,Whatcom,Washington,53073,359,36 +2020-05-22,Whatcom,Washington,53073,363,36 +2020-05-23,Whatcom,Washington,53073,368,36 +2020-05-24,Whatcom,Washington,53073,368,36 +2020-05-25,Whatcom,Washington,53073,368,36 +2020-05-26,Whatcom,Washington,53073,378,36 +2020-05-27,Whatcom,Washington,53073,380,36 +2020-05-28,Whatcom,Washington,53073,383,36 +2020-05-29,Whatcom,Washington,53073,383,36 +2020-05-30,Whatcom,Washington,53073,392,36 +2020-05-31,Whatcom,Washington,53073,396,36 +2020-06-01,Whatcom,Washington,53073,398,37 +2020-06-02,Whatcom,Washington,53073,401,37 +2020-06-03,Whatcom,Washington,53073,402,37 +2020-06-04,Whatcom,Washington,53073,404,37 +2020-06-05,Whatcom,Washington,53073,405,37 +2020-06-06,Whatcom,Washington,53073,409,37 +2020-06-07,Whatcom,Washington,53073,410,37 +2020-06-08,Whatcom,Washington,53073,419,37 +2020-06-09,Whatcom,Washington,53073,420,38 +2020-06-10,Whatcom,Washington,53073,420,38 +2020-06-11,Whatcom,Washington,53073,428,38 +2020-06-12,Whatcom,Washington,53073,436,38 +2020-06-13,Whatcom,Washington,53073,440,38 +2020-06-14,Whatcom,Washington,53073,448,38 +2020-06-15,Whatcom,Washington,53073,453,38 +2020-06-16,Whatcom,Washington,53073,455,39 +2020-06-17,Whatcom,Washington,53073,457,39 +2020-06-18,Whatcom,Washington,53073,467,39 +2020-06-19,Whatcom,Washington,53073,474,39 +2020-06-20,Whatcom,Washington,53073,486,39 +2020-06-21,Whatcom,Washington,53073,499,39 +2020-06-22,Whatcom,Washington,53073,499,40 +2020-06-23,Whatcom,Washington,53073,521,40 +2020-06-24,Whatcom,Washington,53073,554,40 +2020-06-25,Whatcom,Washington,53073,574,40 +2020-06-26,Whatcom,Washington,53073,588,40 +2020-06-27,Whatcom,Washington,53073,599,40 +2020-06-28,Whatcom,Washington,53073,600,40 +2020-06-29,Whatcom,Washington,53073,615,40 +2020-06-30,Whatcom,Washington,53073,622,40 +2020-07-01,Whatcom,Washington,53073,635,40 +2020-07-02,Whatcom,Washington,53073,649,40 +2020-07-03,Whatcom,Washington,53073,659,41 +2020-07-04,Whatcom,Washington,53073,663,41 +2020-07-05,Whatcom,Washington,53073,667,41 +2020-07-06,Whatcom,Washington,53073,673,41 +2020-07-07,Whatcom,Washington,53073,681,41 +2020-07-08,Whatcom,Washington,53073,685,40 +2020-07-09,Whatcom,Washington,53073,689,40 +2020-03-22,Whitman,Washington,53075,1,0 +2020-03-23,Whitman,Washington,53075,2,0 +2020-03-24,Whitman,Washington,53075,2,0 +2020-03-25,Whitman,Washington,53075,2,0 +2020-03-26,Whitman,Washington,53075,3,0 +2020-03-27,Whitman,Washington,53075,5,0 +2020-03-28,Whitman,Washington,53075,6,0 +2020-03-29,Whitman,Washington,53075,6,0 +2020-03-30,Whitman,Washington,53075,6,0 +2020-03-31,Whitman,Washington,53075,6,0 +2020-04-01,Whitman,Washington,53075,10,0 +2020-04-02,Whitman,Washington,53075,11,0 +2020-04-03,Whitman,Washington,53075,11,0 +2020-04-04,Whitman,Washington,53075,11,0 +2020-04-05,Whitman,Washington,53075,11,0 +2020-04-06,Whitman,Washington,53075,13,0 +2020-04-07,Whitman,Washington,53075,13,0 +2020-04-08,Whitman,Washington,53075,13,0 +2020-04-09,Whitman,Washington,53075,13,0 +2020-04-10,Whitman,Washington,53075,13,0 +2020-04-11,Whitman,Washington,53075,13,0 +2020-04-12,Whitman,Washington,53075,13,0 +2020-04-13,Whitman,Washington,53075,12,0 +2020-04-14,Whitman,Washington,53075,13,0 +2020-04-15,Whitman,Washington,53075,13,0 +2020-04-16,Whitman,Washington,53075,13,0 +2020-04-17,Whitman,Washington,53075,14,0 +2020-04-18,Whitman,Washington,53075,15,0 +2020-04-19,Whitman,Washington,53075,15,0 +2020-04-20,Whitman,Washington,53075,15,0 +2020-04-21,Whitman,Washington,53075,15,0 +2020-04-22,Whitman,Washington,53075,15,0 +2020-04-23,Whitman,Washington,53075,16,0 +2020-04-24,Whitman,Washington,53075,16,0 +2020-04-25,Whitman,Washington,53075,16,0 +2020-04-26,Whitman,Washington,53075,16,0 +2020-04-27,Whitman,Washington,53075,16,0 +2020-04-28,Whitman,Washington,53075,16,0 +2020-04-29,Whitman,Washington,53075,16,0 +2020-04-30,Whitman,Washington,53075,16,0 +2020-05-01,Whitman,Washington,53075,16,0 +2020-05-02,Whitman,Washington,53075,16,0 +2020-05-03,Whitman,Washington,53075,16,0 +2020-05-04,Whitman,Washington,53075,16,0 +2020-05-05,Whitman,Washington,53075,16,0 +2020-05-06,Whitman,Washington,53075,16,0 +2020-05-07,Whitman,Washington,53075,16,0 +2020-05-08,Whitman,Washington,53075,16,0 +2020-05-09,Whitman,Washington,53075,16,0 +2020-05-10,Whitman,Washington,53075,16,0 +2020-05-11,Whitman,Washington,53075,16,0 +2020-05-12,Whitman,Washington,53075,16,0 +2020-05-13,Whitman,Washington,53075,16,0 +2020-05-14,Whitman,Washington,53075,17,0 +2020-05-15,Whitman,Washington,53075,18,0 +2020-05-16,Whitman,Washington,53075,18,0 +2020-05-17,Whitman,Washington,53075,18,0 +2020-05-18,Whitman,Washington,53075,18,0 +2020-05-19,Whitman,Washington,53075,18,0 +2020-05-20,Whitman,Washington,53075,19,0 +2020-05-21,Whitman,Washington,53075,19,0 +2020-05-22,Whitman,Washington,53075,19,0 +2020-05-23,Whitman,Washington,53075,19,0 +2020-05-24,Whitman,Washington,53075,19,0 +2020-05-25,Whitman,Washington,53075,19,0 +2020-05-26,Whitman,Washington,53075,20,0 +2020-05-27,Whitman,Washington,53075,20,0 +2020-05-28,Whitman,Washington,53075,20,0 +2020-05-29,Whitman,Washington,53075,20,0 +2020-05-30,Whitman,Washington,53075,20,0 +2020-05-31,Whitman,Washington,53075,20,0 +2020-06-01,Whitman,Washington,53075,20,0 +2020-06-02,Whitman,Washington,53075,20,0 +2020-06-03,Whitman,Washington,53075,20,0 +2020-06-04,Whitman,Washington,53075,20,0 +2020-06-05,Whitman,Washington,53075,20,0 +2020-06-06,Whitman,Washington,53075,20,0 +2020-06-07,Whitman,Washington,53075,26,0 +2020-06-08,Whitman,Washington,53075,26,0 +2020-06-09,Whitman,Washington,53075,26,0 +2020-06-10,Whitman,Washington,53075,27,0 +2020-06-11,Whitman,Washington,53075,28,0 +2020-06-12,Whitman,Washington,53075,29,0 +2020-06-13,Whitman,Washington,53075,29,0 +2020-06-14,Whitman,Washington,53075,29,0 +2020-06-15,Whitman,Washington,53075,29,0 +2020-06-16,Whitman,Washington,53075,29,0 +2020-06-17,Whitman,Washington,53075,30,0 +2020-06-18,Whitman,Washington,53075,31,0 +2020-06-19,Whitman,Washington,53075,32,0 +2020-06-20,Whitman,Washington,53075,32,0 +2020-06-21,Whitman,Washington,53075,32,0 +2020-06-22,Whitman,Washington,53075,34,0 +2020-06-23,Whitman,Washington,53075,33,0 +2020-06-24,Whitman,Washington,53075,34,0 +2020-06-25,Whitman,Washington,53075,35,0 +2020-06-26,Whitman,Washington,53075,36,0 +2020-06-27,Whitman,Washington,53075,37,0 +2020-06-28,Whitman,Washington,53075,37,0 +2020-06-29,Whitman,Washington,53075,38,0 +2020-06-30,Whitman,Washington,53075,39,0 +2020-07-01,Whitman,Washington,53075,41,0 +2020-07-02,Whitman,Washington,53075,41,0 +2020-07-03,Whitman,Washington,53075,43,0 +2020-07-04,Whitman,Washington,53075,43,0 +2020-07-05,Whitman,Washington,53075,43,0 +2020-07-06,Whitman,Washington,53075,46,0 +2020-07-07,Whitman,Washington,53075,47,0 +2020-07-08,Whitman,Washington,53075,49,0 +2020-07-09,Whitman,Washington,53075,49,0 +2020-03-12,Yakima,Washington,53077,2,0 +2020-03-13,Yakima,Washington,53077,2,0 +2020-03-14,Yakima,Washington,53077,3,0 +2020-03-15,Yakima,Washington,53077,4,0 +2020-03-16,Yakima,Washington,53077,4,0 +2020-03-17,Yakima,Washington,53077,5,0 +2020-03-18,Yakima,Washington,53077,9,0 +2020-03-19,Yakima,Washington,53077,9,0 +2020-03-20,Yakima,Washington,53077,10,0 +2020-03-21,Yakima,Washington,53077,20,0 +2020-03-22,Yakima,Washington,53077,24,0 +2020-03-23,Yakima,Washington,53077,25,0 +2020-03-24,Yakima,Washington,53077,44,1 +2020-03-25,Yakima,Washington,53077,51,1 +2020-03-26,Yakima,Washington,53077,61,2 +2020-03-27,Yakima,Washington,53077,72,2 +2020-03-28,Yakima,Washington,53077,100,2 +2020-03-29,Yakima,Washington,53077,147,3 +2020-03-30,Yakima,Washington,53077,147,3 +2020-03-31,Yakima,Washington,53077,147,3 +2020-04-01,Yakima,Washington,53077,200,3 +2020-04-02,Yakima,Washington,53077,216,6 +2020-04-03,Yakima,Washington,53077,289,7 +2020-04-04,Yakima,Washington,53077,289,7 +2020-04-05,Yakima,Washington,53077,363,12 +2020-04-06,Yakima,Washington,53077,380,12 +2020-04-07,Yakima,Washington,53077,400,17 +2020-04-08,Yakima,Washington,53077,400,18 +2020-04-09,Yakima,Washington,53077,447,19 +2020-04-10,Yakima,Washington,53077,447,19 +2020-04-11,Yakima,Washington,53077,535,21 +2020-04-12,Yakima,Washington,53077,535,21 +2020-04-13,Yakima,Washington,53077,573,23 +2020-04-14,Yakima,Washington,53077,635,29 +2020-04-15,Yakima,Washington,53077,674,29 +2020-04-16,Yakima,Washington,53077,707,29 +2020-04-17,Yakima,Washington,53077,759,34 +2020-04-18,Yakima,Washington,53077,759,35 +2020-04-19,Yakima,Washington,53077,771,36 +2020-04-20,Yakima,Washington,53077,868,38 +2020-04-21,Yakima,Washington,53077,868,38 +2020-04-22,Yakima,Washington,53077,868,38 +2020-04-23,Yakima,Washington,53077,952,42 +2020-04-24,Yakima,Washington,53077,952,43 +2020-04-25,Yakima,Washington,53077,1066,44 +2020-04-26,Yakima,Washington,53077,1085,45 +2020-04-27,Yakima,Washington,53077,1085,45 +2020-04-28,Yakima,Washington,53077,1135,48 +2020-04-29,Yakima,Washington,53077,1197,48 +2020-04-30,Yakima,Washington,53077,1237,49 +2020-05-01,Yakima,Washington,53077,1293,48 +2020-05-02,Yakima,Washington,53077,1293,48 +2020-05-03,Yakima,Washington,53077,1411,48 +2020-05-04,Yakima,Washington,53077,1411,48 +2020-05-05,Yakima,Washington,53077,1440,49 +2020-05-06,Yakima,Washington,53077,1597,52 +2020-05-07,Yakima,Washington,53077,1658,57 +2020-05-08,Yakima,Washington,53077,1756,58 +2020-05-09,Yakima,Washington,53077,1756,58 +2020-05-10,Yakima,Washington,53077,1781,59 +2020-05-11,Yakima,Washington,53077,1966,63 +2020-05-12,Yakima,Washington,53077,2025,67 +2020-05-13,Yakima,Washington,53077,2025,67 +2020-05-14,Yakima,Washington,53077,2186,73 +2020-05-15,Yakima,Washington,53077,2308,76 +2020-05-16,Yakima,Washington,53077,2349,76 +2020-05-17,Yakima,Washington,53077,2443,76 +2020-05-18,Yakima,Washington,53077,2517,77 +2020-05-19,Yakima,Washington,53077,2598,81 +2020-05-20,Yakima,Washington,53077,2637,81 +2020-05-21,Yakima,Washington,53077,2684,83 +2020-05-22,Yakima,Washington,53077,2775,83 +2020-05-23,Yakima,Washington,53077,2858,83 +2020-05-24,Yakima,Washington,53077,2965,84 +2020-05-25,Yakima,Washington,53077,3066,87 +2020-05-26,Yakima,Washington,53077,3123,91 +2020-05-27,Yakima,Washington,53077,3252,91 +2020-05-28,Yakima,Washington,53077,3380,93 +2020-05-29,Yakima,Washington,53077,3502,94 +2020-05-30,Yakima,Washington,53077,3615,95 +2020-05-31,Yakima,Washington,53077,3615,95 +2020-06-01,Yakima,Washington,53077,3891,95 +2020-06-02,Yakima,Washington,53077,4057,96 +2020-06-03,Yakima,Washington,53077,4057,97 +2020-06-04,Yakima,Washington,53077,4103,97 +2020-06-05,Yakima,Washington,53077,4392,99 +2020-06-06,Yakima,Washington,53077,4539,100 +2020-06-07,Yakima,Washington,53077,4714,100 +2020-06-08,Yakima,Washington,53077,4929,101 +2020-06-09,Yakima,Washington,53077,5009,104 +2020-06-10,Yakima,Washington,53077,5009,104 +2020-06-11,Yakima,Washington,53077,5092,112 +2020-06-12,Yakima,Washington,53077,5259,114 +2020-06-13,Yakima,Washington,53077,5504,117 +2020-06-14,Yakima,Washington,53077,5611,120 +2020-06-15,Yakima,Washington,53077,5727,121 +2020-06-16,Yakima,Washington,53077,5830,124 +2020-06-17,Yakima,Washington,53077,5939,122 +2020-06-18,Yakima,Washington,53077,6062,128 +2020-06-19,Yakima,Washington,53077,6062,131 +2020-06-20,Yakima,Washington,53077,6359,136 +2020-06-21,Yakima,Washington,53077,6476,138 +2020-06-22,Yakima,Washington,53077,6596,138 +2020-06-23,Yakima,Washington,53077,6596,142 +2020-06-24,Yakima,Washington,53077,6736,146 +2020-06-25,Yakima,Washington,53077,6940,149 +2020-06-26,Yakima,Washington,53077,7040,150 +2020-06-27,Yakima,Washington,53077,7170,152 +2020-06-28,Yakima,Washington,53077,7241,152 +2020-06-29,Yakima,Washington,53077,7316,154 +2020-06-30,Yakima,Washington,53077,7385,158 +2020-07-01,Yakima,Washington,53077,7476,159 +2020-07-02,Yakima,Washington,53077,7556,159 +2020-07-03,Yakima,Washington,53077,7667,160 +2020-07-04,Yakima,Washington,53077,7742,160 +2020-07-05,Yakima,Washington,53077,7855,160 +2020-07-06,Yakima,Washington,53077,7935,165 +2020-07-07,Yakima,Washington,53077,8018,168 +2020-07-08,Yakima,Washington,53077,8138,174 +2020-07-09,Yakima,Washington,53077,8242,178 +2020-04-01,Barbour,West Virginia,54001,1,0 +2020-04-02,Barbour,West Virginia,54001,1,0 +2020-04-03,Barbour,West Virginia,54001,1,0 +2020-04-04,Barbour,West Virginia,54001,2,0 +2020-04-05,Barbour,West Virginia,54001,3,0 +2020-04-06,Barbour,West Virginia,54001,4,0 +2020-04-07,Barbour,West Virginia,54001,4,0 +2020-04-08,Barbour,West Virginia,54001,4,0 +2020-04-09,Barbour,West Virginia,54001,5,0 +2020-04-10,Barbour,West Virginia,54001,5,0 +2020-04-11,Barbour,West Virginia,54001,4,0 +2020-04-12,Barbour,West Virginia,54001,8,0 +2020-04-13,Barbour,West Virginia,54001,9,0 +2020-04-14,Barbour,West Virginia,54001,4,0 +2020-04-15,Barbour,West Virginia,54001,4,0 +2020-04-16,Barbour,West Virginia,54001,4,0 +2020-04-17,Barbour,West Virginia,54001,4,0 +2020-04-18,Barbour,West Virginia,54001,4,0 +2020-04-19,Barbour,West Virginia,54001,4,0 +2020-04-20,Barbour,West Virginia,54001,4,0 +2020-04-21,Barbour,West Virginia,54001,4,0 +2020-04-22,Barbour,West Virginia,54001,4,0 +2020-04-23,Barbour,West Virginia,54001,4,1 +2020-04-24,Barbour,West Virginia,54001,4,1 +2020-04-25,Barbour,West Virginia,54001,4,1 +2020-04-26,Barbour,West Virginia,54001,4,1 +2020-04-27,Barbour,West Virginia,54001,4,1 +2020-04-28,Barbour,West Virginia,54001,4,1 +2020-04-29,Barbour,West Virginia,54001,4,1 +2020-04-30,Barbour,West Virginia,54001,5,1 +2020-05-01,Barbour,West Virginia,54001,5,1 +2020-05-02,Barbour,West Virginia,54001,5,1 +2020-05-03,Barbour,West Virginia,54001,5,1 +2020-05-04,Barbour,West Virginia,54001,5,1 +2020-05-05,Barbour,West Virginia,54001,6,1 +2020-05-06,Barbour,West Virginia,54001,6,1 +2020-05-07,Barbour,West Virginia,54001,6,1 +2020-05-08,Barbour,West Virginia,54001,7,1 +2020-05-09,Barbour,West Virginia,54001,7,1 +2020-05-10,Barbour,West Virginia,54001,7,1 +2020-05-11,Barbour,West Virginia,54001,7,1 +2020-05-12,Barbour,West Virginia,54001,7,1 +2020-05-13,Barbour,West Virginia,54001,7,1 +2020-05-14,Barbour,West Virginia,54001,7,1 +2020-05-15,Barbour,West Virginia,54001,7,1 +2020-05-16,Barbour,West Virginia,54001,7,1 +2020-05-17,Barbour,West Virginia,54001,7,1 +2020-05-18,Barbour,West Virginia,54001,7,1 +2020-05-19,Barbour,West Virginia,54001,7,1 +2020-05-20,Barbour,West Virginia,54001,7,1 +2020-05-21,Barbour,West Virginia,54001,7,1 +2020-05-22,Barbour,West Virginia,54001,7,1 +2020-05-23,Barbour,West Virginia,54001,7,1 +2020-05-24,Barbour,West Virginia,54001,7,1 +2020-05-25,Barbour,West Virginia,54001,7,1 +2020-05-26,Barbour,West Virginia,54001,9,1 +2020-05-27,Barbour,West Virginia,54001,9,1 +2020-05-28,Barbour,West Virginia,54001,9,1 +2020-05-29,Barbour,West Virginia,54001,9,1 +2020-05-30,Barbour,West Virginia,54001,9,1 +2020-05-31,Barbour,West Virginia,54001,9,1 +2020-06-01,Barbour,West Virginia,54001,9,1 +2020-06-02,Barbour,West Virginia,54001,9,1 +2020-06-03,Barbour,West Virginia,54001,8,1 +2020-06-04,Barbour,West Virginia,54001,8,1 +2020-06-05,Barbour,West Virginia,54001,8,1 +2020-06-06,Barbour,West Virginia,54001,8,1 +2020-06-07,Barbour,West Virginia,54001,8,1 +2020-06-08,Barbour,West Virginia,54001,8,1 +2020-06-09,Barbour,West Virginia,54001,9,1 +2020-06-10,Barbour,West Virginia,54001,9,1 +2020-06-11,Barbour,West Virginia,54001,10,1 +2020-06-12,Barbour,West Virginia,54001,10,1 +2020-06-13,Barbour,West Virginia,54001,10,1 +2020-06-14,Barbour,West Virginia,54001,10,1 +2020-06-15,Barbour,West Virginia,54001,10,1 +2020-06-16,Barbour,West Virginia,54001,10,1 +2020-06-17,Barbour,West Virginia,54001,11,1 +2020-06-18,Barbour,West Virginia,54001,11,1 +2020-06-19,Barbour,West Virginia,54001,11,1 +2020-06-20,Barbour,West Virginia,54001,11,1 +2020-06-21,Barbour,West Virginia,54001,12,1 +2020-06-22,Barbour,West Virginia,54001,13,1 +2020-06-23,Barbour,West Virginia,54001,15,1 +2020-06-24,Barbour,West Virginia,54001,15,1 +2020-06-25,Barbour,West Virginia,54001,15,1 +2020-06-26,Barbour,West Virginia,54001,15,1 +2020-06-27,Barbour,West Virginia,54001,15,1 +2020-06-28,Barbour,West Virginia,54001,15,1 +2020-06-29,Barbour,West Virginia,54001,15,1 +2020-06-30,Barbour,West Virginia,54001,15,1 +2020-07-01,Barbour,West Virginia,54001,15,1 +2020-07-02,Barbour,West Virginia,54001,15,1 +2020-07-03,Barbour,West Virginia,54001,15,1 +2020-07-04,Barbour,West Virginia,54001,15,1 +2020-07-05,Barbour,West Virginia,54001,16,1 +2020-07-06,Barbour,West Virginia,54001,17,1 +2020-07-07,Barbour,West Virginia,54001,17,1 +2020-07-08,Barbour,West Virginia,54001,17,1 +2020-07-09,Barbour,West Virginia,54001,17,1 +2020-03-24,Berkeley,West Virginia,54003,2,0 +2020-03-25,Berkeley,West Virginia,54003,2,0 +2020-03-26,Berkeley,West Virginia,54003,4,0 +2020-03-27,Berkeley,West Virginia,54003,9,0 +2020-03-28,Berkeley,West Virginia,54003,10,0 +2020-03-29,Berkeley,West Virginia,54003,10,0 +2020-03-30,Berkeley,West Virginia,54003,14,0 +2020-03-31,Berkeley,West Virginia,54003,16,0 +2020-04-01,Berkeley,West Virginia,54003,21,0 +2020-04-02,Berkeley,West Virginia,54003,27,0 +2020-04-03,Berkeley,West Virginia,54003,37,0 +2020-04-04,Berkeley,West Virginia,54003,49,0 +2020-04-05,Berkeley,West Virginia,54003,54,0 +2020-04-06,Berkeley,West Virginia,54003,54,0 +2020-04-07,Berkeley,West Virginia,54003,57,0 +2020-04-08,Berkeley,West Virginia,54003,73,0 +2020-04-09,Berkeley,West Virginia,54003,82,0 +2020-04-10,Berkeley,West Virginia,54003,83,0 +2020-04-11,Berkeley,West Virginia,54003,91,0 +2020-04-12,Berkeley,West Virginia,54003,92,0 +2020-04-13,Berkeley,West Virginia,54003,98,0 +2020-04-14,Berkeley,West Virginia,54003,100,0 +2020-04-15,Berkeley,West Virginia,54003,101,0 +2020-04-16,Berkeley,West Virginia,54003,105,1 +2020-04-17,Berkeley,West Virginia,54003,106,1 +2020-04-18,Berkeley,West Virginia,54003,107,1 +2020-04-19,Berkeley,West Virginia,54003,109,1 +2020-04-20,Berkeley,West Virginia,54003,113,1 +2020-04-21,Berkeley,West Virginia,54003,118,1 +2020-04-22,Berkeley,West Virginia,54003,121,1 +2020-04-23,Berkeley,West Virginia,54003,127,1 +2020-04-24,Berkeley,West Virginia,54003,129,1 +2020-04-25,Berkeley,West Virginia,54003,130,1 +2020-04-26,Berkeley,West Virginia,54003,131,1 +2020-04-27,Berkeley,West Virginia,54003,139,1 +2020-04-28,Berkeley,West Virginia,54003,141,1 +2020-04-29,Berkeley,West Virginia,54003,143,1 +2020-04-30,Berkeley,West Virginia,54003,145,2 +2020-05-01,Berkeley,West Virginia,54003,153,2 +2020-05-02,Berkeley,West Virginia,54003,156,2 +2020-05-03,Berkeley,West Virginia,54003,159,2 +2020-05-04,Berkeley,West Virginia,54003,166,2 +2020-05-05,Berkeley,West Virginia,54003,166,2 +2020-05-06,Berkeley,West Virginia,54003,171,3 +2020-05-07,Berkeley,West Virginia,54003,177,3 +2020-05-08,Berkeley,West Virginia,54003,184,4 +2020-05-09,Berkeley,West Virginia,54003,187,4 +2020-05-10,Berkeley,West Virginia,54003,189,5 +2020-05-11,Berkeley,West Virginia,54003,191,5 +2020-05-12,Berkeley,West Virginia,54003,191,6 +2020-05-13,Berkeley,West Virginia,54003,196,6 +2020-05-14,Berkeley,West Virginia,54003,200,6 +2020-05-15,Berkeley,West Virginia,54003,205,6 +2020-05-16,Berkeley,West Virginia,54003,207,6 +2020-05-17,Berkeley,West Virginia,54003,210,6 +2020-05-18,Berkeley,West Virginia,54003,215,6 +2020-05-19,Berkeley,West Virginia,54003,223,6 +2020-05-20,Berkeley,West Virginia,54003,245,6 +2020-05-21,Berkeley,West Virginia,54003,251,6 +2020-05-22,Berkeley,West Virginia,54003,264,6 +2020-05-23,Berkeley,West Virginia,54003,270,6 +2020-05-24,Berkeley,West Virginia,54003,286,6 +2020-05-25,Berkeley,West Virginia,54003,287,6 +2020-05-26,Berkeley,West Virginia,54003,290,6 +2020-05-27,Berkeley,West Virginia,54003,297,6 +2020-05-28,Berkeley,West Virginia,54003,298,6 +2020-05-29,Berkeley,West Virginia,54003,304,6 +2020-05-30,Berkeley,West Virginia,54003,307,6 +2020-05-31,Berkeley,West Virginia,54003,308,6 +2020-06-01,Berkeley,West Virginia,54003,314,6 +2020-06-02,Berkeley,West Virginia,54003,319,7 +2020-06-03,Berkeley,West Virginia,54003,326,7 +2020-06-04,Berkeley,West Virginia,54003,336,7 +2020-06-05,Berkeley,West Virginia,54003,340,8 +2020-06-06,Berkeley,West Virginia,54003,343,8 +2020-06-07,Berkeley,West Virginia,54003,344,8 +2020-06-08,Berkeley,West Virginia,54003,347,8 +2020-06-09,Berkeley,West Virginia,54003,353,8 +2020-06-10,Berkeley,West Virginia,54003,361,8 +2020-06-11,Berkeley,West Virginia,54003,369,8 +2020-06-12,Berkeley,West Virginia,54003,376,9 +2020-06-13,Berkeley,West Virginia,54003,386,9 +2020-06-14,Berkeley,West Virginia,54003,386,9 +2020-06-15,Berkeley,West Virginia,54003,395,9 +2020-06-16,Berkeley,West Virginia,54003,399,9 +2020-06-17,Berkeley,West Virginia,54003,407,9 +2020-06-18,Berkeley,West Virginia,54003,415,9 +2020-06-19,Berkeley,West Virginia,54003,427,9 +2020-06-20,Berkeley,West Virginia,54003,429,9 +2020-06-21,Berkeley,West Virginia,54003,432,10 +2020-06-22,Berkeley,West Virginia,54003,433,10 +2020-06-23,Berkeley,West Virginia,54003,438,10 +2020-06-24,Berkeley,West Virginia,54003,440,10 +2020-06-25,Berkeley,West Virginia,54003,441,10 +2020-06-26,Berkeley,West Virginia,54003,446,10 +2020-06-27,Berkeley,West Virginia,54003,449,10 +2020-06-28,Berkeley,West Virginia,54003,450,10 +2020-06-29,Berkeley,West Virginia,54003,454,10 +2020-06-30,Berkeley,West Virginia,54003,458,10 +2020-07-01,Berkeley,West Virginia,54003,460,10 +2020-07-02,Berkeley,West Virginia,54003,461,10 +2020-07-03,Berkeley,West Virginia,54003,468,10 +2020-07-04,Berkeley,West Virginia,54003,478,10 +2020-07-05,Berkeley,West Virginia,54003,482,10 +2020-07-06,Berkeley,West Virginia,54003,492,10 +2020-07-07,Berkeley,West Virginia,54003,500,10 +2020-07-08,Berkeley,West Virginia,54003,508,10 +2020-07-09,Berkeley,West Virginia,54003,517,10 +2020-04-08,Boone,West Virginia,54005,1,0 +2020-04-09,Boone,West Virginia,54005,1,0 +2020-04-10,Boone,West Virginia,54005,1,0 +2020-04-11,Boone,West Virginia,54005,1,0 +2020-04-12,Boone,West Virginia,54005,1,0 +2020-04-13,Boone,West Virginia,54005,1,0 +2020-04-14,Boone,West Virginia,54005,1,0 +2020-04-15,Boone,West Virginia,54005,1,0 +2020-04-16,Boone,West Virginia,54005,2,0 +2020-04-17,Boone,West Virginia,54005,2,0 +2020-04-18,Boone,West Virginia,54005,2,0 +2020-04-19,Boone,West Virginia,54005,2,0 +2020-04-20,Boone,West Virginia,54005,2,0 +2020-04-21,Boone,West Virginia,54005,2,0 +2020-04-22,Boone,West Virginia,54005,2,0 +2020-04-23,Boone,West Virginia,54005,2,0 +2020-04-24,Boone,West Virginia,54005,2,0 +2020-04-25,Boone,West Virginia,54005,2,0 +2020-04-26,Boone,West Virginia,54005,2,0 +2020-04-27,Boone,West Virginia,54005,2,0 +2020-04-28,Boone,West Virginia,54005,2,0 +2020-04-29,Boone,West Virginia,54005,3,0 +2020-04-30,Boone,West Virginia,54005,3,0 +2020-05-01,Boone,West Virginia,54005,6,0 +2020-05-02,Boone,West Virginia,54005,6,0 +2020-05-03,Boone,West Virginia,54005,6,0 +2020-05-04,Boone,West Virginia,54005,6,0 +2020-05-05,Boone,West Virginia,54005,6,0 +2020-05-06,Boone,West Virginia,54005,6,0 +2020-05-07,Boone,West Virginia,54005,6,0 +2020-05-08,Boone,West Virginia,54005,8,0 +2020-05-09,Boone,West Virginia,54005,8,0 +2020-05-10,Boone,West Virginia,54005,9,0 +2020-05-11,Boone,West Virginia,54005,9,0 +2020-05-12,Boone,West Virginia,54005,9,0 +2020-05-13,Boone,West Virginia,54005,9,0 +2020-05-14,Boone,West Virginia,54005,9,0 +2020-05-15,Boone,West Virginia,54005,9,0 +2020-05-16,Boone,West Virginia,54005,9,0 +2020-05-17,Boone,West Virginia,54005,9,0 +2020-05-18,Boone,West Virginia,54005,9,0 +2020-05-19,Boone,West Virginia,54005,9,0 +2020-05-20,Boone,West Virginia,54005,9,0 +2020-05-21,Boone,West Virginia,54005,9,0 +2020-05-22,Boone,West Virginia,54005,9,0 +2020-05-23,Boone,West Virginia,54005,9,0 +2020-05-24,Boone,West Virginia,54005,9,0 +2020-05-25,Boone,West Virginia,54005,9,0 +2020-05-26,Boone,West Virginia,54005,9,0 +2020-05-27,Boone,West Virginia,54005,9,0 +2020-05-28,Boone,West Virginia,54005,10,0 +2020-05-29,Boone,West Virginia,54005,9,0 +2020-05-30,Boone,West Virginia,54005,9,0 +2020-05-31,Boone,West Virginia,54005,9,0 +2020-06-01,Boone,West Virginia,54005,9,0 +2020-06-02,Boone,West Virginia,54005,9,0 +2020-06-03,Boone,West Virginia,54005,9,0 +2020-06-04,Boone,West Virginia,54005,11,0 +2020-06-05,Boone,West Virginia,54005,11,0 +2020-06-06,Boone,West Virginia,54005,11,0 +2020-06-07,Boone,West Virginia,54005,15,0 +2020-06-08,Boone,West Virginia,54005,15,0 +2020-06-09,Boone,West Virginia,54005,16,0 +2020-06-10,Boone,West Virginia,54005,15,0 +2020-06-11,Boone,West Virginia,54005,17,0 +2020-06-12,Boone,West Virginia,54005,17,0 +2020-06-13,Boone,West Virginia,54005,17,0 +2020-06-14,Boone,West Virginia,54005,17,0 +2020-06-15,Boone,West Virginia,54005,18,0 +2020-06-16,Boone,West Virginia,54005,19,0 +2020-06-17,Boone,West Virginia,54005,20,0 +2020-06-18,Boone,West Virginia,54005,20,0 +2020-06-19,Boone,West Virginia,54005,20,0 +2020-06-20,Boone,West Virginia,54005,20,0 +2020-06-21,Boone,West Virginia,54005,20,0 +2020-06-22,Boone,West Virginia,54005,19,0 +2020-06-23,Boone,West Virginia,54005,19,0 +2020-06-24,Boone,West Virginia,54005,19,0 +2020-06-25,Boone,West Virginia,54005,19,0 +2020-06-26,Boone,West Virginia,54005,20,0 +2020-06-27,Boone,West Virginia,54005,20,0 +2020-06-28,Boone,West Virginia,54005,20,0 +2020-06-29,Boone,West Virginia,54005,20,0 +2020-06-30,Boone,West Virginia,54005,21,0 +2020-07-01,Boone,West Virginia,54005,21,0 +2020-07-02,Boone,West Virginia,54005,20,0 +2020-07-03,Boone,West Virginia,54005,23,0 +2020-07-04,Boone,West Virginia,54005,23,0 +2020-07-05,Boone,West Virginia,54005,23,0 +2020-07-06,Boone,West Virginia,54005,24,0 +2020-07-07,Boone,West Virginia,54005,28,0 +2020-07-08,Boone,West Virginia,54005,27,0 +2020-07-09,Boone,West Virginia,54005,29,0 +2020-04-08,Braxton,West Virginia,54007,1,0 +2020-04-09,Braxton,West Virginia,54007,1,0 +2020-04-10,Braxton,West Virginia,54007,1,0 +2020-04-11,Braxton,West Virginia,54007,1,0 +2020-04-12,Braxton,West Virginia,54007,1,0 +2020-04-13,Braxton,West Virginia,54007,1,0 +2020-04-14,Braxton,West Virginia,54007,1,0 +2020-04-15,Braxton,West Virginia,54007,1,0 +2020-04-16,Braxton,West Virginia,54007,1,0 +2020-04-17,Braxton,West Virginia,54007,1,0 +2020-04-18,Braxton,West Virginia,54007,1,0 +2020-04-19,Braxton,West Virginia,54007,1,0 +2020-04-20,Braxton,West Virginia,54007,1,0 +2020-04-21,Braxton,West Virginia,54007,1,0 +2020-04-22,Braxton,West Virginia,54007,1,0 +2020-04-23,Braxton,West Virginia,54007,1,0 +2020-04-24,Braxton,West Virginia,54007,1,0 +2020-04-25,Braxton,West Virginia,54007,2,0 +2020-04-26,Braxton,West Virginia,54007,2,0 +2020-04-27,Braxton,West Virginia,54007,2,0 +2020-04-28,Braxton,West Virginia,54007,2,0 +2020-04-29,Braxton,West Virginia,54007,2,0 +2020-04-30,Braxton,West Virginia,54007,2,0 +2020-05-01,Braxton,West Virginia,54007,2,0 +2020-05-02,Braxton,West Virginia,54007,2,0 +2020-05-03,Braxton,West Virginia,54007,2,0 +2020-05-04,Braxton,West Virginia,54007,2,0 +2020-05-05,Braxton,West Virginia,54007,2,0 +2020-05-06,Braxton,West Virginia,54007,2,0 +2020-05-07,Braxton,West Virginia,54007,2,0 +2020-05-08,Braxton,West Virginia,54007,2,0 +2020-05-09,Braxton,West Virginia,54007,2,0 +2020-05-10,Braxton,West Virginia,54007,2,0 +2020-05-11,Braxton,West Virginia,54007,2,0 +2020-05-12,Braxton,West Virginia,54007,2,0 +2020-05-13,Braxton,West Virginia,54007,2,0 +2020-05-14,Braxton,West Virginia,54007,2,0 +2020-05-15,Braxton,West Virginia,54007,2,0 +2020-05-16,Braxton,West Virginia,54007,2,0 +2020-05-17,Braxton,West Virginia,54007,2,0 +2020-05-18,Braxton,West Virginia,54007,2,0 +2020-05-19,Braxton,West Virginia,54007,2,0 +2020-05-20,Braxton,West Virginia,54007,2,0 +2020-05-21,Braxton,West Virginia,54007,2,0 +2020-05-22,Braxton,West Virginia,54007,2,0 +2020-05-23,Braxton,West Virginia,54007,2,0 +2020-05-24,Braxton,West Virginia,54007,2,0 +2020-05-25,Braxton,West Virginia,54007,2,0 +2020-05-26,Braxton,West Virginia,54007,2,0 +2020-05-27,Braxton,West Virginia,54007,2,0 +2020-05-28,Braxton,West Virginia,54007,2,0 +2020-05-29,Braxton,West Virginia,54007,2,0 +2020-05-30,Braxton,West Virginia,54007,2,0 +2020-05-31,Braxton,West Virginia,54007,2,0 +2020-06-01,Braxton,West Virginia,54007,2,0 +2020-06-02,Braxton,West Virginia,54007,2,0 +2020-06-03,Braxton,West Virginia,54007,2,0 +2020-06-04,Braxton,West Virginia,54007,2,0 +2020-06-05,Braxton,West Virginia,54007,2,0 +2020-06-06,Braxton,West Virginia,54007,2,0 +2020-06-07,Braxton,West Virginia,54007,2,0 +2020-06-08,Braxton,West Virginia,54007,2,0 +2020-06-09,Braxton,West Virginia,54007,2,0 +2020-06-10,Braxton,West Virginia,54007,2,0 +2020-06-11,Braxton,West Virginia,54007,3,0 +2020-06-12,Braxton,West Virginia,54007,3,0 +2020-06-13,Braxton,West Virginia,54007,3,0 +2020-06-14,Braxton,West Virginia,54007,3,0 +2020-06-15,Braxton,West Virginia,54007,3,0 +2020-06-16,Braxton,West Virginia,54007,3,0 +2020-06-17,Braxton,West Virginia,54007,3,0 +2020-06-18,Braxton,West Virginia,54007,3,0 +2020-06-19,Braxton,West Virginia,54007,3,0 +2020-06-20,Braxton,West Virginia,54007,3,0 +2020-06-21,Braxton,West Virginia,54007,3,0 +2020-06-22,Braxton,West Virginia,54007,3,0 +2020-06-23,Braxton,West Virginia,54007,3,0 +2020-06-24,Braxton,West Virginia,54007,3,0 +2020-06-25,Braxton,West Virginia,54007,3,0 +2020-06-26,Braxton,West Virginia,54007,3,0 +2020-06-27,Braxton,West Virginia,54007,3,0 +2020-06-28,Braxton,West Virginia,54007,4,0 +2020-06-29,Braxton,West Virginia,54007,4,0 +2020-06-30,Braxton,West Virginia,54007,3,0 +2020-07-01,Braxton,West Virginia,54007,3,0 +2020-07-02,Braxton,West Virginia,54007,3,0 +2020-07-03,Braxton,West Virginia,54007,3,0 +2020-07-04,Braxton,West Virginia,54007,3,0 +2020-07-05,Braxton,West Virginia,54007,3,0 +2020-07-06,Braxton,West Virginia,54007,3,0 +2020-07-07,Braxton,West Virginia,54007,3,0 +2020-07-08,Braxton,West Virginia,54007,3,0 +2020-07-09,Braxton,West Virginia,54007,3,0 +2020-04-07,Brooke,West Virginia,54009,1,0 +2020-04-08,Brooke,West Virginia,54009,1,0 +2020-04-09,Brooke,West Virginia,54009,2,0 +2020-04-10,Brooke,West Virginia,54009,2,0 +2020-04-11,Brooke,West Virginia,54009,3,0 +2020-04-12,Brooke,West Virginia,54009,3,0 +2020-04-13,Brooke,West Virginia,54009,3,0 +2020-04-14,Brooke,West Virginia,54009,3,0 +2020-04-15,Brooke,West Virginia,54009,3,0 +2020-04-16,Brooke,West Virginia,54009,3,0 +2020-04-17,Brooke,West Virginia,54009,3,0 +2020-04-18,Brooke,West Virginia,54009,3,0 +2020-04-19,Brooke,West Virginia,54009,3,0 +2020-04-20,Brooke,West Virginia,54009,3,0 +2020-04-21,Brooke,West Virginia,54009,3,0 +2020-04-22,Brooke,West Virginia,54009,3,0 +2020-04-23,Brooke,West Virginia,54009,3,0 +2020-04-24,Brooke,West Virginia,54009,3,0 +2020-04-25,Brooke,West Virginia,54009,3,0 +2020-04-26,Brooke,West Virginia,54009,4,0 +2020-04-27,Brooke,West Virginia,54009,3,0 +2020-04-28,Brooke,West Virginia,54009,3,0 +2020-04-29,Brooke,West Virginia,54009,3,0 +2020-04-30,Brooke,West Virginia,54009,3,0 +2020-05-01,Brooke,West Virginia,54009,3,0 +2020-05-02,Brooke,West Virginia,54009,3,0 +2020-05-03,Brooke,West Virginia,54009,3,0 +2020-05-04,Brooke,West Virginia,54009,3,0 +2020-05-05,Brooke,West Virginia,54009,3,0 +2020-05-06,Brooke,West Virginia,54009,3,0 +2020-05-07,Brooke,West Virginia,54009,3,0 +2020-05-08,Brooke,West Virginia,54009,3,0 +2020-05-09,Brooke,West Virginia,54009,3,0 +2020-05-10,Brooke,West Virginia,54009,3,0 +2020-05-11,Brooke,West Virginia,54009,3,0 +2020-05-12,Brooke,West Virginia,54009,3,0 +2020-05-13,Brooke,West Virginia,54009,3,0 +2020-05-14,Brooke,West Virginia,54009,3,0 +2020-05-15,Brooke,West Virginia,54009,3,0 +2020-05-16,Brooke,West Virginia,54009,3,0 +2020-05-17,Brooke,West Virginia,54009,3,0 +2020-05-18,Brooke,West Virginia,54009,3,0 +2020-05-19,Brooke,West Virginia,54009,3,0 +2020-05-20,Brooke,West Virginia,54009,3,0 +2020-05-21,Brooke,West Virginia,54009,3,0 +2020-05-22,Brooke,West Virginia,54009,3,0 +2020-05-23,Brooke,West Virginia,54009,3,0 +2020-05-24,Brooke,West Virginia,54009,3,0 +2020-05-25,Brooke,West Virginia,54009,3,0 +2020-05-26,Brooke,West Virginia,54009,3,0 +2020-05-27,Brooke,West Virginia,54009,4,0 +2020-05-28,Brooke,West Virginia,54009,4,0 +2020-05-29,Brooke,West Virginia,54009,5,0 +2020-05-30,Brooke,West Virginia,54009,5,0 +2020-05-31,Brooke,West Virginia,54009,5,0 +2020-06-01,Brooke,West Virginia,54009,5,0 +2020-06-02,Brooke,West Virginia,54009,5,0 +2020-06-03,Brooke,West Virginia,54009,5,0 +2020-06-04,Brooke,West Virginia,54009,5,0 +2020-06-05,Brooke,West Virginia,54009,5,0 +2020-06-06,Brooke,West Virginia,54009,5,0 +2020-06-07,Brooke,West Virginia,54009,5,0 +2020-06-08,Brooke,West Virginia,54009,5,0 +2020-06-09,Brooke,West Virginia,54009,5,0 +2020-06-10,Brooke,West Virginia,54009,5,0 +2020-06-11,Brooke,West Virginia,54009,5,0 +2020-06-12,Brooke,West Virginia,54009,5,0 +2020-06-13,Brooke,West Virginia,54009,5,0 +2020-06-14,Brooke,West Virginia,54009,5,0 +2020-06-15,Brooke,West Virginia,54009,6,0 +2020-06-16,Brooke,West Virginia,54009,6,0 +2020-06-17,Brooke,West Virginia,54009,6,0 +2020-06-18,Brooke,West Virginia,54009,6,0 +2020-06-19,Brooke,West Virginia,54009,6,0 +2020-06-20,Brooke,West Virginia,54009,6,0 +2020-06-21,Brooke,West Virginia,54009,6,0 +2020-06-22,Brooke,West Virginia,54009,7,0 +2020-06-23,Brooke,West Virginia,54009,7,0 +2020-06-24,Brooke,West Virginia,54009,11,0 +2020-06-25,Brooke,West Virginia,54009,9,0 +2020-06-26,Brooke,West Virginia,54009,9,0 +2020-06-27,Brooke,West Virginia,54009,9,0 +2020-06-28,Brooke,West Virginia,54009,9,0 +2020-06-29,Brooke,West Virginia,54009,9,0 +2020-06-30,Brooke,West Virginia,54009,9,0 +2020-07-01,Brooke,West Virginia,54009,9,0 +2020-07-02,Brooke,West Virginia,54009,9,0 +2020-07-03,Brooke,West Virginia,54009,9,0 +2020-07-04,Brooke,West Virginia,54009,10,0 +2020-07-05,Brooke,West Virginia,54009,10,0 +2020-07-06,Brooke,West Virginia,54009,15,0 +2020-07-07,Brooke,West Virginia,54009,15,0 +2020-07-08,Brooke,West Virginia,54009,15,0 +2020-07-09,Brooke,West Virginia,54009,19,0 +2020-03-29,Cabell,West Virginia,54011,1,0 +2020-03-30,Cabell,West Virginia,54011,1,0 +2020-03-31,Cabell,West Virginia,54011,1,0 +2020-04-01,Cabell,West Virginia,54011,1,0 +2020-04-02,Cabell,West Virginia,54011,3,0 +2020-04-03,Cabell,West Virginia,54011,5,0 +2020-04-04,Cabell,West Virginia,54011,5,0 +2020-04-05,Cabell,West Virginia,54011,5,0 +2020-04-06,Cabell,West Virginia,54011,7,0 +2020-04-07,Cabell,West Virginia,54011,11,0 +2020-04-08,Cabell,West Virginia,54011,13,0 +2020-04-09,Cabell,West Virginia,54011,17,0 +2020-04-10,Cabell,West Virginia,54011,17,0 +2020-04-11,Cabell,West Virginia,54011,22,0 +2020-04-12,Cabell,West Virginia,54011,23,0 +2020-04-13,Cabell,West Virginia,54011,24,0 +2020-04-14,Cabell,West Virginia,54011,29,0 +2020-04-15,Cabell,West Virginia,54011,28,0 +2020-04-16,Cabell,West Virginia,54011,28,0 +2020-04-17,Cabell,West Virginia,54011,28,0 +2020-04-18,Cabell,West Virginia,54011,30,0 +2020-04-19,Cabell,West Virginia,54011,34,0 +2020-04-20,Cabell,West Virginia,54011,34,0 +2020-04-21,Cabell,West Virginia,54011,34,0 +2020-04-22,Cabell,West Virginia,54011,35,0 +2020-04-23,Cabell,West Virginia,54011,38,0 +2020-04-24,Cabell,West Virginia,54011,38,0 +2020-04-25,Cabell,West Virginia,54011,38,0 +2020-04-26,Cabell,West Virginia,54011,40,0 +2020-04-27,Cabell,West Virginia,54011,40,0 +2020-04-28,Cabell,West Virginia,54011,41,0 +2020-04-29,Cabell,West Virginia,54011,42,0 +2020-04-30,Cabell,West Virginia,54011,42,0 +2020-05-01,Cabell,West Virginia,54011,43,0 +2020-05-02,Cabell,West Virginia,54011,44,0 +2020-05-03,Cabell,West Virginia,54011,44,0 +2020-05-04,Cabell,West Virginia,54011,44,0 +2020-05-05,Cabell,West Virginia,54011,44,0 +2020-05-06,Cabell,West Virginia,54011,47,0 +2020-05-07,Cabell,West Virginia,54011,48,0 +2020-05-08,Cabell,West Virginia,54011,48,0 +2020-05-09,Cabell,West Virginia,54011,52,0 +2020-05-10,Cabell,West Virginia,54011,52,0 +2020-05-11,Cabell,West Virginia,54011,53,0 +2020-05-12,Cabell,West Virginia,54011,53,0 +2020-05-13,Cabell,West Virginia,54011,52,0 +2020-05-14,Cabell,West Virginia,54011,53,0 +2020-05-15,Cabell,West Virginia,54011,55,0 +2020-05-16,Cabell,West Virginia,54011,56,0 +2020-05-17,Cabell,West Virginia,54011,56,0 +2020-05-18,Cabell,West Virginia,54011,56,0 +2020-05-19,Cabell,West Virginia,54011,55,0 +2020-05-20,Cabell,West Virginia,54011,55,0 +2020-05-21,Cabell,West Virginia,54011,56,0 +2020-05-22,Cabell,West Virginia,54011,59,0 +2020-05-23,Cabell,West Virginia,54011,59,0 +2020-05-24,Cabell,West Virginia,54011,59,0 +2020-05-25,Cabell,West Virginia,54011,59,0 +2020-05-26,Cabell,West Virginia,54011,59,0 +2020-05-27,Cabell,West Virginia,54011,60,0 +2020-05-28,Cabell,West Virginia,54011,61,0 +2020-05-29,Cabell,West Virginia,54011,61,0 +2020-05-30,Cabell,West Virginia,54011,64,0 +2020-05-31,Cabell,West Virginia,54011,66,0 +2020-06-01,Cabell,West Virginia,54011,66,0 +2020-06-02,Cabell,West Virginia,54011,67,0 +2020-06-03,Cabell,West Virginia,54011,67,0 +2020-06-04,Cabell,West Virginia,54011,69,0 +2020-06-05,Cabell,West Virginia,54011,69,0 +2020-06-06,Cabell,West Virginia,54011,70,0 +2020-06-07,Cabell,West Virginia,54011,70,0 +2020-06-08,Cabell,West Virginia,54011,70,0 +2020-06-09,Cabell,West Virginia,54011,71,0 +2020-06-10,Cabell,West Virginia,54011,71,0 +2020-06-11,Cabell,West Virginia,54011,71,0 +2020-06-12,Cabell,West Virginia,54011,72,0 +2020-06-13,Cabell,West Virginia,54011,71,0 +2020-06-14,Cabell,West Virginia,54011,71,0 +2020-06-15,Cabell,West Virginia,54011,75,0 +2020-06-16,Cabell,West Virginia,54011,75,0 +2020-06-17,Cabell,West Virginia,54011,77,0 +2020-06-18,Cabell,West Virginia,54011,79,0 +2020-06-19,Cabell,West Virginia,54011,80,0 +2020-06-20,Cabell,West Virginia,54011,81,0 +2020-06-21,Cabell,West Virginia,54011,84,0 +2020-06-22,Cabell,West Virginia,54011,86,0 +2020-06-23,Cabell,West Virginia,54011,91,0 +2020-06-24,Cabell,West Virginia,54011,100,0 +2020-06-25,Cabell,West Virginia,54011,105,0 +2020-06-26,Cabell,West Virginia,54011,110,0 +2020-06-27,Cabell,West Virginia,54011,116,0 +2020-06-28,Cabell,West Virginia,54011,118,0 +2020-06-29,Cabell,West Virginia,54011,122,0 +2020-06-30,Cabell,West Virginia,54011,124,0 +2020-07-01,Cabell,West Virginia,54011,130,0 +2020-07-02,Cabell,West Virginia,54011,142,0 +2020-07-03,Cabell,West Virginia,54011,149,0 +2020-07-04,Cabell,West Virginia,54011,153,0 +2020-07-05,Cabell,West Virginia,54011,155,0 +2020-07-06,Cabell,West Virginia,54011,167,0 +2020-07-07,Cabell,West Virginia,54011,172,0 +2020-07-08,Cabell,West Virginia,54011,184,0 +2020-07-09,Cabell,West Virginia,54011,186,0 +2020-04-26,Calhoun,West Virginia,54013,1,0 +2020-04-27,Calhoun,West Virginia,54013,1,0 +2020-04-28,Calhoun,West Virginia,54013,1,0 +2020-04-29,Calhoun,West Virginia,54013,1,0 +2020-04-30,Calhoun,West Virginia,54013,1,0 +2020-05-01,Calhoun,West Virginia,54013,1,0 +2020-05-02,Calhoun,West Virginia,54013,1,0 +2020-05-03,Calhoun,West Virginia,54013,1,0 +2020-05-04,Calhoun,West Virginia,54013,1,0 +2020-05-05,Calhoun,West Virginia,54013,1,0 +2020-05-06,Calhoun,West Virginia,54013,1,0 +2020-05-07,Calhoun,West Virginia,54013,1,0 +2020-05-08,Calhoun,West Virginia,54013,1,0 +2020-05-09,Calhoun,West Virginia,54013,1,0 +2020-05-10,Calhoun,West Virginia,54013,1,0 +2020-05-11,Calhoun,West Virginia,54013,1,0 +2020-05-12,Calhoun,West Virginia,54013,1,0 +2020-05-13,Calhoun,West Virginia,54013,1,0 +2020-05-14,Calhoun,West Virginia,54013,1,0 +2020-05-15,Calhoun,West Virginia,54013,1,0 +2020-05-16,Calhoun,West Virginia,54013,1,0 +2020-05-17,Calhoun,West Virginia,54013,2,0 +2020-05-18,Calhoun,West Virginia,54013,2,0 +2020-05-19,Calhoun,West Virginia,54013,2,0 +2020-05-20,Calhoun,West Virginia,54013,2,0 +2020-05-21,Calhoun,West Virginia,54013,2,0 +2020-05-22,Calhoun,West Virginia,54013,2,0 +2020-05-23,Calhoun,West Virginia,54013,2,0 +2020-05-24,Calhoun,West Virginia,54013,2,0 +2020-05-25,Calhoun,West Virginia,54013,2,0 +2020-05-26,Calhoun,West Virginia,54013,2,0 +2020-05-27,Calhoun,West Virginia,54013,2,0 +2020-05-28,Calhoun,West Virginia,54013,2,0 +2020-05-29,Calhoun,West Virginia,54013,2,0 +2020-05-30,Calhoun,West Virginia,54013,2,0 +2020-05-31,Calhoun,West Virginia,54013,2,0 +2020-06-01,Calhoun,West Virginia,54013,2,0 +2020-06-02,Calhoun,West Virginia,54013,2,0 +2020-06-03,Calhoun,West Virginia,54013,2,0 +2020-06-04,Calhoun,West Virginia,54013,2,0 +2020-06-05,Calhoun,West Virginia,54013,2,0 +2020-06-06,Calhoun,West Virginia,54013,2,0 +2020-06-07,Calhoun,West Virginia,54013,2,0 +2020-06-08,Calhoun,West Virginia,54013,2,0 +2020-06-09,Calhoun,West Virginia,54013,2,0 +2020-06-10,Calhoun,West Virginia,54013,2,0 +2020-06-11,Calhoun,West Virginia,54013,2,0 +2020-06-12,Calhoun,West Virginia,54013,2,0 +2020-06-13,Calhoun,West Virginia,54013,2,0 +2020-06-14,Calhoun,West Virginia,54013,2,0 +2020-06-15,Calhoun,West Virginia,54013,2,0 +2020-06-16,Calhoun,West Virginia,54013,2,0 +2020-06-17,Calhoun,West Virginia,54013,2,0 +2020-06-18,Calhoun,West Virginia,54013,2,0 +2020-06-19,Calhoun,West Virginia,54013,2,0 +2020-06-20,Calhoun,West Virginia,54013,2,0 +2020-06-21,Calhoun,West Virginia,54013,2,0 +2020-06-22,Calhoun,West Virginia,54013,2,0 +2020-06-23,Calhoun,West Virginia,54013,2,0 +2020-06-24,Calhoun,West Virginia,54013,2,0 +2020-06-25,Calhoun,West Virginia,54013,2,0 +2020-06-26,Calhoun,West Virginia,54013,2,0 +2020-06-27,Calhoun,West Virginia,54013,2,0 +2020-06-28,Calhoun,West Virginia,54013,2,0 +2020-06-29,Calhoun,West Virginia,54013,2,0 +2020-06-30,Calhoun,West Virginia,54013,2,0 +2020-07-01,Calhoun,West Virginia,54013,2,0 +2020-07-02,Calhoun,West Virginia,54013,2,0 +2020-07-03,Calhoun,West Virginia,54013,2,0 +2020-07-04,Calhoun,West Virginia,54013,2,0 +2020-07-05,Calhoun,West Virginia,54013,2,0 +2020-07-06,Calhoun,West Virginia,54013,2,0 +2020-07-07,Calhoun,West Virginia,54013,2,0 +2020-07-08,Calhoun,West Virginia,54013,4,0 +2020-07-09,Calhoun,West Virginia,54013,4,0 +2020-05-06,Clay,West Virginia,54015,1,0 +2020-05-07,Clay,West Virginia,54015,1,0 +2020-05-08,Clay,West Virginia,54015,2,0 +2020-05-09,Clay,West Virginia,54015,2,0 +2020-05-10,Clay,West Virginia,54015,2,0 +2020-05-11,Clay,West Virginia,54015,2,0 +2020-05-12,Clay,West Virginia,54015,2,0 +2020-05-13,Clay,West Virginia,54015,2,0 +2020-05-14,Clay,West Virginia,54015,2,0 +2020-05-15,Clay,West Virginia,54015,2,0 +2020-05-16,Clay,West Virginia,54015,2,0 +2020-05-17,Clay,West Virginia,54015,2,0 +2020-05-18,Clay,West Virginia,54015,2,0 +2020-05-19,Clay,West Virginia,54015,2,0 +2020-05-20,Clay,West Virginia,54015,2,0 +2020-05-21,Clay,West Virginia,54015,2,0 +2020-05-22,Clay,West Virginia,54015,2,0 +2020-05-23,Clay,West Virginia,54015,2,0 +2020-05-24,Clay,West Virginia,54015,2,0 +2020-05-25,Clay,West Virginia,54015,2,0 +2020-05-26,Clay,West Virginia,54015,2,0 +2020-05-27,Clay,West Virginia,54015,2,0 +2020-05-28,Clay,West Virginia,54015,2,0 +2020-05-29,Clay,West Virginia,54015,2,0 +2020-05-30,Clay,West Virginia,54015,4,0 +2020-05-31,Clay,West Virginia,54015,4,0 +2020-06-01,Clay,West Virginia,54015,5,0 +2020-06-02,Clay,West Virginia,54015,5,0 +2020-06-03,Clay,West Virginia,54015,6,0 +2020-06-04,Clay,West Virginia,54015,6,0 +2020-06-05,Clay,West Virginia,54015,7,0 +2020-06-06,Clay,West Virginia,54015,7,0 +2020-06-07,Clay,West Virginia,54015,7,0 +2020-06-08,Clay,West Virginia,54015,7,0 +2020-06-09,Clay,West Virginia,54015,7,0 +2020-06-10,Clay,West Virginia,54015,7,0 +2020-06-11,Clay,West Virginia,54015,7,0 +2020-06-12,Clay,West Virginia,54015,8,0 +2020-06-13,Clay,West Virginia,54015,10,0 +2020-06-14,Clay,West Virginia,54015,10,0 +2020-06-15,Clay,West Virginia,54015,10,0 +2020-06-16,Clay,West Virginia,54015,10,0 +2020-06-17,Clay,West Virginia,54015,10,0 +2020-06-18,Clay,West Virginia,54015,10,0 +2020-06-19,Clay,West Virginia,54015,10,0 +2020-06-20,Clay,West Virginia,54015,10,0 +2020-06-21,Clay,West Virginia,54015,10,0 +2020-06-22,Clay,West Virginia,54015,10,0 +2020-06-23,Clay,West Virginia,54015,10,1 +2020-06-24,Clay,West Virginia,54015,10,1 +2020-06-25,Clay,West Virginia,54015,10,1 +2020-06-26,Clay,West Virginia,54015,10,1 +2020-06-27,Clay,West Virginia,54015,10,1 +2020-06-28,Clay,West Virginia,54015,10,1 +2020-06-29,Clay,West Virginia,54015,10,1 +2020-06-30,Clay,West Virginia,54015,10,1 +2020-07-01,Clay,West Virginia,54015,10,1 +2020-07-02,Clay,West Virginia,54015,10,1 +2020-07-03,Clay,West Virginia,54015,10,1 +2020-07-04,Clay,West Virginia,54015,10,1 +2020-07-05,Clay,West Virginia,54015,11,1 +2020-07-06,Clay,West Virginia,54015,11,1 +2020-07-07,Clay,West Virginia,54015,11,1 +2020-07-08,Clay,West Virginia,54015,11,1 +2020-07-09,Clay,West Virginia,54015,11,1 +2020-04-07,Fayette,West Virginia,54019,1,0 +2020-04-08,Fayette,West Virginia,54019,1,0 +2020-04-09,Fayette,West Virginia,54019,1,0 +2020-04-10,Fayette,West Virginia,54019,1,0 +2020-04-11,Fayette,West Virginia,54019,2,0 +2020-04-12,Fayette,West Virginia,54019,2,0 +2020-04-13,Fayette,West Virginia,54019,2,0 +2020-04-14,Fayette,West Virginia,54019,2,0 +2020-04-15,Fayette,West Virginia,54019,2,0 +2020-04-16,Fayette,West Virginia,54019,2,0 +2020-04-17,Fayette,West Virginia,54019,4,0 +2020-04-18,Fayette,West Virginia,54019,4,0 +2020-04-19,Fayette,West Virginia,54019,5,0 +2020-04-20,Fayette,West Virginia,54019,5,0 +2020-04-21,Fayette,West Virginia,54019,5,0 +2020-04-22,Fayette,West Virginia,54019,5,0 +2020-04-23,Fayette,West Virginia,54019,8,0 +2020-04-24,Fayette,West Virginia,54019,9,0 +2020-04-25,Fayette,West Virginia,54019,9,0 +2020-04-26,Fayette,West Virginia,54019,9,0 +2020-04-27,Fayette,West Virginia,54019,10,0 +2020-04-28,Fayette,West Virginia,54019,12,0 +2020-04-29,Fayette,West Virginia,54019,12,0 +2020-04-30,Fayette,West Virginia,54019,13,0 +2020-05-01,Fayette,West Virginia,54019,14,0 +2020-05-02,Fayette,West Virginia,54019,14,0 +2020-05-03,Fayette,West Virginia,54019,15,0 +2020-05-04,Fayette,West Virginia,54019,16,0 +2020-05-05,Fayette,West Virginia,54019,20,0 +2020-05-06,Fayette,West Virginia,54019,27,0 +2020-05-07,Fayette,West Virginia,54019,27,0 +2020-05-08,Fayette,West Virginia,54019,30,0 +2020-05-09,Fayette,West Virginia,54019,34,0 +2020-05-10,Fayette,West Virginia,54019,35,0 +2020-05-11,Fayette,West Virginia,54019,34,0 +2020-05-12,Fayette,West Virginia,54019,34,0 +2020-05-13,Fayette,West Virginia,54019,36,0 +2020-05-14,Fayette,West Virginia,54019,36,0 +2020-05-15,Fayette,West Virginia,54019,38,0 +2020-05-16,Fayette,West Virginia,54019,38,1 +2020-05-17,Fayette,West Virginia,54019,38,3 +2020-05-18,Fayette,West Virginia,54019,38,3 +2020-05-19,Fayette,West Virginia,54019,38,3 +2020-05-20,Fayette,West Virginia,54019,39,3 +2020-05-21,Fayette,West Virginia,54019,39,3 +2020-05-22,Fayette,West Virginia,54019,43,3 +2020-05-23,Fayette,West Virginia,54019,44,3 +2020-05-24,Fayette,West Virginia,54019,46,3 +2020-05-25,Fayette,West Virginia,54019,45,3 +2020-05-26,Fayette,West Virginia,54019,46,3 +2020-05-27,Fayette,West Virginia,54019,47,3 +2020-05-28,Fayette,West Virginia,54019,46,3 +2020-05-29,Fayette,West Virginia,54019,46,3 +2020-05-30,Fayette,West Virginia,54019,46,4 +2020-05-31,Fayette,West Virginia,54019,48,4 +2020-06-01,Fayette,West Virginia,54019,50,4 +2020-06-02,Fayette,West Virginia,54019,50,4 +2020-06-03,Fayette,West Virginia,54019,52,4 +2020-06-04,Fayette,West Virginia,54019,52,4 +2020-06-05,Fayette,West Virginia,54019,54,4 +2020-06-06,Fayette,West Virginia,54019,54,4 +2020-06-07,Fayette,West Virginia,54019,54,4 +2020-06-08,Fayette,West Virginia,54019,54,4 +2020-06-09,Fayette,West Virginia,54019,54,4 +2020-06-10,Fayette,West Virginia,54019,54,4 +2020-06-11,Fayette,West Virginia,54019,54,4 +2020-06-12,Fayette,West Virginia,54019,54,4 +2020-06-13,Fayette,West Virginia,54019,54,4 +2020-06-14,Fayette,West Virginia,54019,54,4 +2020-06-15,Fayette,West Virginia,54019,54,4 +2020-06-16,Fayette,West Virginia,54019,54,4 +2020-06-17,Fayette,West Virginia,54019,54,4 +2020-06-18,Fayette,West Virginia,54019,56,4 +2020-06-19,Fayette,West Virginia,54019,56,4 +2020-06-20,Fayette,West Virginia,54019,57,4 +2020-06-21,Fayette,West Virginia,54019,58,4 +2020-06-22,Fayette,West Virginia,54019,59,4 +2020-06-23,Fayette,West Virginia,54019,59,4 +2020-06-24,Fayette,West Virginia,54019,62,4 +2020-06-25,Fayette,West Virginia,54019,64,4 +2020-06-26,Fayette,West Virginia,54019,62,4 +2020-06-27,Fayette,West Virginia,54019,64,4 +2020-06-28,Fayette,West Virginia,54019,67,4 +2020-06-29,Fayette,West Virginia,54019,66,4 +2020-06-30,Fayette,West Virginia,54019,66,4 +2020-07-01,Fayette,West Virginia,54019,66,4 +2020-07-02,Fayette,West Virginia,54019,67,4 +2020-07-03,Fayette,West Virginia,54019,67,4 +2020-07-04,Fayette,West Virginia,54019,67,4 +2020-07-05,Fayette,West Virginia,54019,69,4 +2020-07-06,Fayette,West Virginia,54019,72,4 +2020-07-07,Fayette,West Virginia,54019,75,4 +2020-07-08,Fayette,West Virginia,54019,78,4 +2020-07-09,Fayette,West Virginia,54019,79,4 +2020-04-25,Gilmer,West Virginia,54021,1,0 +2020-04-26,Gilmer,West Virginia,54021,2,0 +2020-04-27,Gilmer,West Virginia,54021,2,0 +2020-04-28,Gilmer,West Virginia,54021,2,0 +2020-04-29,Gilmer,West Virginia,54021,2,0 +2020-04-30,Gilmer,West Virginia,54021,2,0 +2020-05-01,Gilmer,West Virginia,54021,2,0 +2020-05-02,Gilmer,West Virginia,54021,2,0 +2020-05-03,Gilmer,West Virginia,54021,2,0 +2020-05-04,Gilmer,West Virginia,54021,3,0 +2020-05-05,Gilmer,West Virginia,54021,3,0 +2020-05-06,Gilmer,West Virginia,54021,3,0 +2020-05-07,Gilmer,West Virginia,54021,4,0 +2020-05-08,Gilmer,West Virginia,54021,4,0 +2020-05-09,Gilmer,West Virginia,54021,8,0 +2020-05-10,Gilmer,West Virginia,54021,8,0 +2020-05-11,Gilmer,West Virginia,54021,8,0 +2020-05-12,Gilmer,West Virginia,54021,8,0 +2020-05-13,Gilmer,West Virginia,54021,8,0 +2020-05-14,Gilmer,West Virginia,54021,8,0 +2020-05-15,Gilmer,West Virginia,54021,8,0 +2020-05-16,Gilmer,West Virginia,54021,8,0 +2020-05-17,Gilmer,West Virginia,54021,8,0 +2020-05-18,Gilmer,West Virginia,54021,8,0 +2020-05-19,Gilmer,West Virginia,54021,8,0 +2020-05-20,Gilmer,West Virginia,54021,9,0 +2020-05-21,Gilmer,West Virginia,54021,9,0 +2020-05-22,Gilmer,West Virginia,54021,9,0 +2020-05-23,Gilmer,West Virginia,54021,9,0 +2020-05-24,Gilmer,West Virginia,54021,10,0 +2020-05-25,Gilmer,West Virginia,54021,10,0 +2020-05-26,Gilmer,West Virginia,54021,10,0 +2020-05-27,Gilmer,West Virginia,54021,10,0 +2020-05-28,Gilmer,West Virginia,54021,10,0 +2020-05-29,Gilmer,West Virginia,54021,10,0 +2020-05-30,Gilmer,West Virginia,54021,10,0 +2020-05-31,Gilmer,West Virginia,54021,10,0 +2020-06-01,Gilmer,West Virginia,54021,10,0 +2020-06-02,Gilmer,West Virginia,54021,10,0 +2020-06-03,Gilmer,West Virginia,54021,10,0 +2020-06-04,Gilmer,West Virginia,54021,10,0 +2020-06-05,Gilmer,West Virginia,54021,10,0 +2020-06-06,Gilmer,West Virginia,54021,10,0 +2020-06-07,Gilmer,West Virginia,54021,10,0 +2020-06-08,Gilmer,West Virginia,54021,10,0 +2020-06-09,Gilmer,West Virginia,54021,10,0 +2020-06-10,Gilmer,West Virginia,54021,10,0 +2020-06-11,Gilmer,West Virginia,54021,10,0 +2020-06-12,Gilmer,West Virginia,54021,10,0 +2020-06-13,Gilmer,West Virginia,54021,10,0 +2020-06-14,Gilmer,West Virginia,54021,10,0 +2020-06-15,Gilmer,West Virginia,54021,10,0 +2020-06-16,Gilmer,West Virginia,54021,10,0 +2020-06-17,Gilmer,West Virginia,54021,10,0 +2020-06-18,Gilmer,West Virginia,54021,10,0 +2020-06-19,Gilmer,West Virginia,54021,10,0 +2020-06-20,Gilmer,West Virginia,54021,10,0 +2020-06-21,Gilmer,West Virginia,54021,10,0 +2020-06-22,Gilmer,West Virginia,54021,10,0 +2020-06-23,Gilmer,West Virginia,54021,10,0 +2020-06-24,Gilmer,West Virginia,54021,10,0 +2020-06-25,Gilmer,West Virginia,54021,11,0 +2020-06-26,Gilmer,West Virginia,54021,12,0 +2020-06-27,Gilmer,West Virginia,54021,12,0 +2020-06-28,Gilmer,West Virginia,54021,12,0 +2020-06-29,Gilmer,West Virginia,54021,12,0 +2020-06-30,Gilmer,West Virginia,54021,13,0 +2020-07-01,Gilmer,West Virginia,54021,13,0 +2020-07-02,Gilmer,West Virginia,54021,13,0 +2020-07-03,Gilmer,West Virginia,54021,13,0 +2020-07-04,Gilmer,West Virginia,54021,13,0 +2020-07-05,Gilmer,West Virginia,54021,13,0 +2020-07-06,Gilmer,West Virginia,54021,13,0 +2020-07-07,Gilmer,West Virginia,54021,13,0 +2020-07-08,Gilmer,West Virginia,54021,13,0 +2020-07-09,Gilmer,West Virginia,54021,13,0 +2020-04-12,Grant,West Virginia,54023,1,0 +2020-04-13,Grant,West Virginia,54023,1,0 +2020-04-14,Grant,West Virginia,54023,1,0 +2020-04-15,Grant,West Virginia,54023,1,0 +2020-04-16,Grant,West Virginia,54023,1,0 +2020-04-17,Grant,West Virginia,54023,1,0 +2020-04-18,Grant,West Virginia,54023,1,0 +2020-04-19,Grant,West Virginia,54023,1,0 +2020-04-20,Grant,West Virginia,54023,1,0 +2020-04-21,Grant,West Virginia,54023,1,0 +2020-04-22,Grant,West Virginia,54023,1,0 +2020-04-23,Grant,West Virginia,54023,1,0 +2020-04-24,Grant,West Virginia,54023,1,0 +2020-04-25,Grant,West Virginia,54023,1,0 +2020-04-26,Grant,West Virginia,54023,1,0 +2020-04-27,Grant,West Virginia,54023,1,0 +2020-04-28,Grant,West Virginia,54023,1,0 +2020-04-29,Grant,West Virginia,54023,1,0 +2020-04-30,Grant,West Virginia,54023,1,0 +2020-05-01,Grant,West Virginia,54023,1,0 +2020-05-02,Grant,West Virginia,54023,1,0 +2020-05-03,Grant,West Virginia,54023,1,0 +2020-05-04,Grant,West Virginia,54023,3,0 +2020-05-05,Grant,West Virginia,54023,3,0 +2020-05-06,Grant,West Virginia,54023,3,0 +2020-05-07,Grant,West Virginia,54023,3,0 +2020-05-08,Grant,West Virginia,54023,3,0 +2020-05-09,Grant,West Virginia,54023,3,0 +2020-05-10,Grant,West Virginia,54023,3,0 +2020-05-11,Grant,West Virginia,54023,3,0 +2020-05-12,Grant,West Virginia,54023,3,0 +2020-05-13,Grant,West Virginia,54023,6,0 +2020-05-14,Grant,West Virginia,54023,6,0 +2020-05-15,Grant,West Virginia,54023,6,0 +2020-05-16,Grant,West Virginia,54023,6,0 +2020-05-17,Grant,West Virginia,54023,6,0 +2020-05-18,Grant,West Virginia,54023,6,0 +2020-05-19,Grant,West Virginia,54023,6,0 +2020-05-20,Grant,West Virginia,54023,6,0 +2020-05-21,Grant,West Virginia,54023,6,0 +2020-05-22,Grant,West Virginia,54023,7,0 +2020-05-23,Grant,West Virginia,54023,9,0 +2020-05-24,Grant,West Virginia,54023,11,0 +2020-05-25,Grant,West Virginia,54023,11,0 +2020-05-26,Grant,West Virginia,54023,11,0 +2020-05-27,Grant,West Virginia,54023,11,0 +2020-05-28,Grant,West Virginia,54023,11,0 +2020-05-29,Grant,West Virginia,54023,12,0 +2020-05-30,Grant,West Virginia,54023,12,0 +2020-05-31,Grant,West Virginia,54023,12,0 +2020-06-01,Grant,West Virginia,54023,12,0 +2020-06-02,Grant,West Virginia,54023,12,0 +2020-06-03,Grant,West Virginia,54023,12,0 +2020-06-04,Grant,West Virginia,54023,12,0 +2020-06-05,Grant,West Virginia,54023,12,0 +2020-06-06,Grant,West Virginia,54023,12,0 +2020-06-07,Grant,West Virginia,54023,12,0 +2020-06-08,Grant,West Virginia,54023,14,0 +2020-06-09,Grant,West Virginia,54023,14,0 +2020-06-10,Grant,West Virginia,54023,14,0 +2020-06-11,Grant,West Virginia,54023,16,0 +2020-06-12,Grant,West Virginia,54023,16,0 +2020-06-13,Grant,West Virginia,54023,16,0 +2020-06-14,Grant,West Virginia,54023,16,0 +2020-06-15,Grant,West Virginia,54023,16,0 +2020-06-16,Grant,West Virginia,54023,16,0 +2020-06-17,Grant,West Virginia,54023,16,0 +2020-06-18,Grant,West Virginia,54023,16,0 +2020-06-19,Grant,West Virginia,54023,16,0 +2020-06-20,Grant,West Virginia,54023,16,0 +2020-06-21,Grant,West Virginia,54023,16,0 +2020-06-22,Grant,West Virginia,54023,16,0 +2020-06-23,Grant,West Virginia,54023,16,0 +2020-06-24,Grant,West Virginia,54023,16,0 +2020-06-25,Grant,West Virginia,54023,16,0 +2020-06-26,Grant,West Virginia,54023,16,0 +2020-06-27,Grant,West Virginia,54023,16,0 +2020-06-28,Grant,West Virginia,54023,16,0 +2020-06-29,Grant,West Virginia,54023,16,0 +2020-06-30,Grant,West Virginia,54023,16,0 +2020-07-01,Grant,West Virginia,54023,16,0 +2020-07-02,Grant,West Virginia,54023,16,0 +2020-07-03,Grant,West Virginia,54023,16,0 +2020-07-04,Grant,West Virginia,54023,16,0 +2020-07-05,Grant,West Virginia,54023,16,0 +2020-07-06,Grant,West Virginia,54023,16,0 +2020-07-07,Grant,West Virginia,54023,16,0 +2020-07-08,Grant,West Virginia,54023,16,0 +2020-07-09,Grant,West Virginia,54023,16,0 +2020-03-27,Greenbrier,West Virginia,54025,1,0 +2020-03-28,Greenbrier,West Virginia,54025,2,0 +2020-03-29,Greenbrier,West Virginia,54025,2,0 +2020-03-30,Greenbrier,West Virginia,54025,3,0 +2020-03-31,Greenbrier,West Virginia,54025,3,0 +2020-04-01,Greenbrier,West Virginia,54025,3,0 +2020-04-02,Greenbrier,West Virginia,54025,3,0 +2020-04-03,Greenbrier,West Virginia,54025,3,0 +2020-04-04,Greenbrier,West Virginia,54025,3,0 +2020-04-05,Greenbrier,West Virginia,54025,3,0 +2020-04-06,Greenbrier,West Virginia,54025,3,0 +2020-04-07,Greenbrier,West Virginia,54025,3,0 +2020-04-08,Greenbrier,West Virginia,54025,3,0 +2020-04-09,Greenbrier,West Virginia,54025,3,0 +2020-04-10,Greenbrier,West Virginia,54025,3,0 +2020-04-11,Greenbrier,West Virginia,54025,3,0 +2020-04-12,Greenbrier,West Virginia,54025,3,0 +2020-04-13,Greenbrier,West Virginia,54025,3,0 +2020-04-14,Greenbrier,West Virginia,54025,3,0 +2020-04-15,Greenbrier,West Virginia,54025,3,0 +2020-04-16,Greenbrier,West Virginia,54025,3,0 +2020-04-17,Greenbrier,West Virginia,54025,3,0 +2020-04-18,Greenbrier,West Virginia,54025,3,0 +2020-04-19,Greenbrier,West Virginia,54025,3,0 +2020-04-20,Greenbrier,West Virginia,54025,3,0 +2020-04-21,Greenbrier,West Virginia,54025,3,0 +2020-04-22,Greenbrier,West Virginia,54025,3,0 +2020-04-23,Greenbrier,West Virginia,54025,3,0 +2020-04-24,Greenbrier,West Virginia,54025,3,0 +2020-04-25,Greenbrier,West Virginia,54025,3,0 +2020-04-26,Greenbrier,West Virginia,54025,3,0 +2020-04-27,Greenbrier,West Virginia,54025,3,0 +2020-04-28,Greenbrier,West Virginia,54025,3,0 +2020-04-29,Greenbrier,West Virginia,54025,3,0 +2020-04-30,Greenbrier,West Virginia,54025,3,0 +2020-05-01,Greenbrier,West Virginia,54025,3,0 +2020-05-02,Greenbrier,West Virginia,54025,5,0 +2020-05-03,Greenbrier,West Virginia,54025,6,0 +2020-05-04,Greenbrier,West Virginia,54025,7,0 +2020-05-05,Greenbrier,West Virginia,54025,7,0 +2020-05-06,Greenbrier,West Virginia,54025,8,0 +2020-05-07,Greenbrier,West Virginia,54025,8,0 +2020-05-08,Greenbrier,West Virginia,54025,8,0 +2020-05-09,Greenbrier,West Virginia,54025,8,0 +2020-05-10,Greenbrier,West Virginia,54025,8,0 +2020-05-11,Greenbrier,West Virginia,54025,8,0 +2020-05-12,Greenbrier,West Virginia,54025,8,0 +2020-05-13,Greenbrier,West Virginia,54025,8,0 +2020-05-14,Greenbrier,West Virginia,54025,8,0 +2020-05-15,Greenbrier,West Virginia,54025,8,0 +2020-05-16,Greenbrier,West Virginia,54025,8,0 +2020-05-17,Greenbrier,West Virginia,54025,9,0 +2020-05-18,Greenbrier,West Virginia,54025,9,0 +2020-05-19,Greenbrier,West Virginia,54025,9,0 +2020-05-20,Greenbrier,West Virginia,54025,9,0 +2020-05-21,Greenbrier,West Virginia,54025,9,0 +2020-05-22,Greenbrier,West Virginia,54025,9,0 +2020-05-23,Greenbrier,West Virginia,54025,9,0 +2020-05-24,Greenbrier,West Virginia,54025,9,0 +2020-05-25,Greenbrier,West Virginia,54025,9,0 +2020-05-26,Greenbrier,West Virginia,54025,9,0 +2020-05-27,Greenbrier,West Virginia,54025,9,0 +2020-05-28,Greenbrier,West Virginia,54025,9,0 +2020-05-29,Greenbrier,West Virginia,54025,9,0 +2020-05-30,Greenbrier,West Virginia,54025,9,0 +2020-05-31,Greenbrier,West Virginia,54025,9,0 +2020-06-01,Greenbrier,West Virginia,54025,9,0 +2020-06-02,Greenbrier,West Virginia,54025,9,0 +2020-06-03,Greenbrier,West Virginia,54025,9,0 +2020-06-04,Greenbrier,West Virginia,54025,9,0 +2020-06-05,Greenbrier,West Virginia,54025,9,0 +2020-06-06,Greenbrier,West Virginia,54025,9,0 +2020-06-07,Greenbrier,West Virginia,54025,9,0 +2020-06-08,Greenbrier,West Virginia,54025,9,0 +2020-06-09,Greenbrier,West Virginia,54025,9,0 +2020-06-10,Greenbrier,West Virginia,54025,9,0 +2020-06-11,Greenbrier,West Virginia,54025,9,0 +2020-06-12,Greenbrier,West Virginia,54025,11,0 +2020-06-13,Greenbrier,West Virginia,54025,13,0 +2020-06-14,Greenbrier,West Virginia,54025,21,0 +2020-06-15,Greenbrier,West Virginia,54025,30,0 +2020-06-16,Greenbrier,West Virginia,54025,37,0 +2020-06-17,Greenbrier,West Virginia,54025,37,0 +2020-06-18,Greenbrier,West Virginia,54025,42,0 +2020-06-19,Greenbrier,West Virginia,54025,42,0 +2020-06-20,Greenbrier,West Virginia,54025,48,0 +2020-06-21,Greenbrier,West Virginia,54025,50,0 +2020-06-22,Greenbrier,West Virginia,54025,51,0 +2020-06-23,Greenbrier,West Virginia,54025,51,0 +2020-06-24,Greenbrier,West Virginia,54025,52,0 +2020-06-25,Greenbrier,West Virginia,54025,57,0 +2020-06-26,Greenbrier,West Virginia,54025,57,0 +2020-06-27,Greenbrier,West Virginia,54025,58,1 +2020-06-28,Greenbrier,West Virginia,54025,59,1 +2020-06-29,Greenbrier,West Virginia,54025,58,1 +2020-06-30,Greenbrier,West Virginia,54025,58,1 +2020-07-01,Greenbrier,West Virginia,54025,59,1 +2020-07-02,Greenbrier,West Virginia,54025,60,1 +2020-07-03,Greenbrier,West Virginia,54025,60,1 +2020-07-04,Greenbrier,West Virginia,54025,63,2 +2020-07-05,Greenbrier,West Virginia,54025,64,3 +2020-07-06,Greenbrier,West Virginia,54025,66,3 +2020-07-07,Greenbrier,West Virginia,54025,67,3 +2020-07-08,Greenbrier,West Virginia,54025,67,3 +2020-07-09,Greenbrier,West Virginia,54025,68,3 +2020-04-08,Hampshire,West Virginia,54027,2,0 +2020-04-09,Hampshire,West Virginia,54027,2,0 +2020-04-10,Hampshire,West Virginia,54027,2,0 +2020-04-11,Hampshire,West Virginia,54027,4,0 +2020-04-12,Hampshire,West Virginia,54027,4,0 +2020-04-13,Hampshire,West Virginia,54027,5,0 +2020-04-14,Hampshire,West Virginia,54027,7,0 +2020-04-15,Hampshire,West Virginia,54027,7,0 +2020-04-16,Hampshire,West Virginia,54027,6,0 +2020-04-17,Hampshire,West Virginia,54027,6,0 +2020-04-18,Hampshire,West Virginia,54027,6,0 +2020-04-19,Hampshire,West Virginia,54027,6,1 +2020-04-20,Hampshire,West Virginia,54027,6,1 +2020-04-21,Hampshire,West Virginia,54027,7,1 +2020-04-22,Hampshire,West Virginia,54027,7,1 +2020-04-23,Hampshire,West Virginia,54027,7,1 +2020-04-24,Hampshire,West Virginia,54027,7,1 +2020-04-25,Hampshire,West Virginia,54027,7,1 +2020-04-26,Hampshire,West Virginia,54027,7,1 +2020-04-27,Hampshire,West Virginia,54027,7,1 +2020-04-28,Hampshire,West Virginia,54027,7,1 +2020-04-29,Hampshire,West Virginia,54027,7,1 +2020-04-30,Hampshire,West Virginia,54027,7,1 +2020-05-01,Hampshire,West Virginia,54027,7,1 +2020-05-02,Hampshire,West Virginia,54027,7,1 +2020-05-03,Hampshire,West Virginia,54027,7,1 +2020-05-04,Hampshire,West Virginia,54027,8,1 +2020-05-05,Hampshire,West Virginia,54027,8,1 +2020-05-06,Hampshire,West Virginia,54027,8,1 +2020-05-07,Hampshire,West Virginia,54027,8,1 +2020-05-08,Hampshire,West Virginia,54027,8,1 +2020-05-09,Hampshire,West Virginia,54027,8,1 +2020-05-10,Hampshire,West Virginia,54027,9,1 +2020-05-11,Hampshire,West Virginia,54027,9,1 +2020-05-12,Hampshire,West Virginia,54027,10,1 +2020-05-13,Hampshire,West Virginia,54027,10,1 +2020-05-14,Hampshire,West Virginia,54027,11,1 +2020-05-15,Hampshire,West Virginia,54027,12,1 +2020-05-16,Hampshire,West Virginia,54027,12,1 +2020-05-17,Hampshire,West Virginia,54027,12,1 +2020-05-18,Hampshire,West Virginia,54027,12,1 +2020-05-19,Hampshire,West Virginia,54027,12,1 +2020-05-20,Hampshire,West Virginia,54027,12,1 +2020-05-21,Hampshire,West Virginia,54027,13,1 +2020-05-22,Hampshire,West Virginia,54027,13,1 +2020-05-23,Hampshire,West Virginia,54027,15,1 +2020-05-24,Hampshire,West Virginia,54027,17,1 +2020-05-25,Hampshire,West Virginia,54027,21,1 +2020-05-26,Hampshire,West Virginia,54027,21,1 +2020-05-27,Hampshire,West Virginia,54027,23,1 +2020-05-28,Hampshire,West Virginia,54027,29,1 +2020-05-29,Hampshire,West Virginia,54027,28,1 +2020-05-30,Hampshire,West Virginia,54027,28,1 +2020-05-31,Hampshire,West Virginia,54027,29,1 +2020-06-01,Hampshire,West Virginia,54027,31,1 +2020-06-02,Hampshire,West Virginia,54027,31,1 +2020-06-03,Hampshire,West Virginia,54027,31,1 +2020-06-04,Hampshire,West Virginia,54027,31,1 +2020-06-05,Hampshire,West Virginia,54027,33,1 +2020-06-06,Hampshire,West Virginia,54027,34,1 +2020-06-07,Hampshire,West Virginia,54027,33,1 +2020-06-08,Hampshire,West Virginia,54027,33,1 +2020-06-09,Hampshire,West Virginia,54027,33,1 +2020-06-10,Hampshire,West Virginia,54027,35,1 +2020-06-11,Hampshire,West Virginia,54027,35,1 +2020-06-12,Hampshire,West Virginia,54027,35,1 +2020-06-13,Hampshire,West Virginia,54027,39,1 +2020-06-14,Hampshire,West Virginia,54027,39,1 +2020-06-15,Hampshire,West Virginia,54027,39,1 +2020-06-16,Hampshire,West Virginia,54027,40,1 +2020-06-17,Hampshire,West Virginia,54027,40,1 +2020-06-18,Hampshire,West Virginia,54027,40,1 +2020-06-19,Hampshire,West Virginia,54027,40,1 +2020-06-20,Hampshire,West Virginia,54027,40,1 +2020-06-21,Hampshire,West Virginia,54027,40,1 +2020-06-22,Hampshire,West Virginia,54027,40,1 +2020-06-23,Hampshire,West Virginia,54027,40,1 +2020-06-24,Hampshire,West Virginia,54027,40,1 +2020-06-25,Hampshire,West Virginia,54027,40,1 +2020-06-26,Hampshire,West Virginia,54027,40,1 +2020-06-27,Hampshire,West Virginia,54027,40,1 +2020-06-28,Hampshire,West Virginia,54027,41,1 +2020-06-29,Hampshire,West Virginia,54027,41,1 +2020-06-30,Hampshire,West Virginia,54027,41,1 +2020-07-01,Hampshire,West Virginia,54027,42,1 +2020-07-02,Hampshire,West Virginia,54027,42,1 +2020-07-03,Hampshire,West Virginia,54027,42,1 +2020-07-04,Hampshire,West Virginia,54027,42,1 +2020-07-05,Hampshire,West Virginia,54027,42,1 +2020-07-06,Hampshire,West Virginia,54027,42,1 +2020-07-07,Hampshire,West Virginia,54027,42,1 +2020-07-08,Hampshire,West Virginia,54027,42,1 +2020-07-09,Hampshire,West Virginia,54027,42,1 +2020-03-27,Hancock,West Virginia,54029,1,0 +2020-03-28,Hancock,West Virginia,54029,3,0 +2020-03-29,Hancock,West Virginia,54029,3,0 +2020-03-30,Hancock,West Virginia,54029,3,0 +2020-03-31,Hancock,West Virginia,54029,3,0 +2020-04-01,Hancock,West Virginia,54029,6,0 +2020-04-02,Hancock,West Virginia,54029,5,0 +2020-04-03,Hancock,West Virginia,54029,5,0 +2020-04-04,Hancock,West Virginia,54029,6,0 +2020-04-05,Hancock,West Virginia,54029,6,0 +2020-04-06,Hancock,West Virginia,54029,6,0 +2020-04-07,Hancock,West Virginia,54029,7,0 +2020-04-08,Hancock,West Virginia,54029,7,0 +2020-04-09,Hancock,West Virginia,54029,7,0 +2020-04-10,Hancock,West Virginia,54029,7,0 +2020-04-11,Hancock,West Virginia,54029,7,0 +2020-04-12,Hancock,West Virginia,54029,7,0 +2020-04-13,Hancock,West Virginia,54029,7,0 +2020-04-14,Hancock,West Virginia,54029,7,0 +2020-04-15,Hancock,West Virginia,54029,7,0 +2020-04-16,Hancock,West Virginia,54029,7,0 +2020-04-17,Hancock,West Virginia,54029,7,0 +2020-04-18,Hancock,West Virginia,54029,7,0 +2020-04-19,Hancock,West Virginia,54029,7,0 +2020-04-20,Hancock,West Virginia,54029,7,0 +2020-04-21,Hancock,West Virginia,54029,7,0 +2020-04-22,Hancock,West Virginia,54029,7,0 +2020-04-23,Hancock,West Virginia,54029,7,0 +2020-04-24,Hancock,West Virginia,54029,7,0 +2020-04-25,Hancock,West Virginia,54029,7,0 +2020-04-26,Hancock,West Virginia,54029,8,0 +2020-04-27,Hancock,West Virginia,54029,7,0 +2020-04-28,Hancock,West Virginia,54029,8,0 +2020-04-29,Hancock,West Virginia,54029,9,0 +2020-04-30,Hancock,West Virginia,54029,10,0 +2020-05-01,Hancock,West Virginia,54029,10,0 +2020-05-02,Hancock,West Virginia,54029,11,0 +2020-05-03,Hancock,West Virginia,54029,11,0 +2020-05-04,Hancock,West Virginia,54029,11,0 +2020-05-05,Hancock,West Virginia,54029,11,0 +2020-05-06,Hancock,West Virginia,54029,11,0 +2020-05-07,Hancock,West Virginia,54029,11,0 +2020-05-08,Hancock,West Virginia,54029,12,0 +2020-05-09,Hancock,West Virginia,54029,12,0 +2020-05-10,Hancock,West Virginia,54029,12,0 +2020-05-11,Hancock,West Virginia,54029,12,0 +2020-05-12,Hancock,West Virginia,54029,12,0 +2020-05-13,Hancock,West Virginia,54029,12,0 +2020-05-14,Hancock,West Virginia,54029,12,0 +2020-05-15,Hancock,West Virginia,54029,12,0 +2020-05-16,Hancock,West Virginia,54029,12,0 +2020-05-17,Hancock,West Virginia,54029,12,0 +2020-05-18,Hancock,West Virginia,54029,12,0 +2020-05-19,Hancock,West Virginia,54029,12,0 +2020-05-20,Hancock,West Virginia,54029,12,0 +2020-05-21,Hancock,West Virginia,54029,13,0 +2020-05-22,Hancock,West Virginia,54029,17,0 +2020-05-23,Hancock,West Virginia,54029,18,0 +2020-05-24,Hancock,West Virginia,54029,18,0 +2020-05-25,Hancock,West Virginia,54029,18,0 +2020-05-26,Hancock,West Virginia,54029,18,0 +2020-05-27,Hancock,West Virginia,54029,17,0 +2020-05-28,Hancock,West Virginia,54029,17,0 +2020-05-29,Hancock,West Virginia,54029,18,0 +2020-05-30,Hancock,West Virginia,54029,18,0 +2020-05-31,Hancock,West Virginia,54029,18,0 +2020-06-01,Hancock,West Virginia,54029,19,0 +2020-06-02,Hancock,West Virginia,54029,19,0 +2020-06-03,Hancock,West Virginia,54029,19,0 +2020-06-04,Hancock,West Virginia,54029,20,0 +2020-06-05,Hancock,West Virginia,54029,20,0 +2020-06-06,Hancock,West Virginia,54029,20,0 +2020-06-07,Hancock,West Virginia,54029,20,0 +2020-06-08,Hancock,West Virginia,54029,20,0 +2020-06-09,Hancock,West Virginia,54029,20,0 +2020-06-10,Hancock,West Virginia,54029,20,0 +2020-06-11,Hancock,West Virginia,54029,20,0 +2020-06-12,Hancock,West Virginia,54029,20,0 +2020-06-13,Hancock,West Virginia,54029,20,0 +2020-06-14,Hancock,West Virginia,54029,20,0 +2020-06-15,Hancock,West Virginia,54029,20,0 +2020-06-16,Hancock,West Virginia,54029,20,0 +2020-06-17,Hancock,West Virginia,54029,20,0 +2020-06-18,Hancock,West Virginia,54029,21,0 +2020-06-19,Hancock,West Virginia,54029,21,0 +2020-06-20,Hancock,West Virginia,54029,21,0 +2020-06-21,Hancock,West Virginia,54029,21,0 +2020-06-22,Hancock,West Virginia,54029,20,0 +2020-06-23,Hancock,West Virginia,54029,20,0 +2020-06-24,Hancock,West Virginia,54029,20,0 +2020-06-25,Hancock,West Virginia,54029,20,0 +2020-06-26,Hancock,West Virginia,54029,21,0 +2020-06-27,Hancock,West Virginia,54029,22,0 +2020-06-28,Hancock,West Virginia,54029,22,0 +2020-06-29,Hancock,West Virginia,54029,22,0 +2020-06-30,Hancock,West Virginia,54029,22,0 +2020-07-01,Hancock,West Virginia,54029,23,0 +2020-07-02,Hancock,West Virginia,54029,23,0 +2020-07-03,Hancock,West Virginia,54029,26,0 +2020-07-04,Hancock,West Virginia,54029,26,0 +2020-07-05,Hancock,West Virginia,54029,28,0 +2020-07-06,Hancock,West Virginia,54029,32,0 +2020-07-07,Hancock,West Virginia,54029,32,0 +2020-07-08,Hancock,West Virginia,54029,34,0 +2020-07-09,Hancock,West Virginia,54029,35,0 +2020-03-31,Hardy,West Virginia,54031,1,0 +2020-04-01,Hardy,West Virginia,54031,1,0 +2020-04-02,Hardy,West Virginia,54031,2,0 +2020-04-03,Hardy,West Virginia,54031,2,0 +2020-04-04,Hardy,West Virginia,54031,2,0 +2020-04-05,Hardy,West Virginia,54031,2,0 +2020-04-06,Hardy,West Virginia,54031,2,0 +2020-04-07,Hardy,West Virginia,54031,2,0 +2020-04-08,Hardy,West Virginia,54031,2,0 +2020-04-09,Hardy,West Virginia,54031,2,0 +2020-04-10,Hardy,West Virginia,54031,2,0 +2020-04-11,Hardy,West Virginia,54031,2,0 +2020-04-12,Hardy,West Virginia,54031,2,0 +2020-04-13,Hardy,West Virginia,54031,2,0 +2020-04-14,Hardy,West Virginia,54031,2,0 +2020-04-15,Hardy,West Virginia,54031,3,0 +2020-04-16,Hardy,West Virginia,54031,3,0 +2020-04-17,Hardy,West Virginia,54031,3,0 +2020-04-18,Hardy,West Virginia,54031,3,0 +2020-04-19,Hardy,West Virginia,54031,3,0 +2020-04-20,Hardy,West Virginia,54031,3,0 +2020-04-21,Hardy,West Virginia,54031,3,0 +2020-04-22,Hardy,West Virginia,54031,3,0 +2020-04-23,Hardy,West Virginia,54031,3,0 +2020-04-24,Hardy,West Virginia,54031,3,0 +2020-04-25,Hardy,West Virginia,54031,3,0 +2020-04-26,Hardy,West Virginia,54031,3,0 +2020-04-27,Hardy,West Virginia,54031,3,0 +2020-04-28,Hardy,West Virginia,54031,4,0 +2020-04-29,Hardy,West Virginia,54031,5,0 +2020-04-30,Hardy,West Virginia,54031,5,0 +2020-05-01,Hardy,West Virginia,54031,6,0 +2020-05-02,Hardy,West Virginia,54031,7,0 +2020-05-03,Hardy,West Virginia,54031,7,0 +2020-05-04,Hardy,West Virginia,54031,9,0 +2020-05-05,Hardy,West Virginia,54031,9,0 +2020-05-06,Hardy,West Virginia,54031,11,0 +2020-05-07,Hardy,West Virginia,54031,12,0 +2020-05-08,Hardy,West Virginia,54031,15,0 +2020-05-09,Hardy,West Virginia,54031,16,0 +2020-05-10,Hardy,West Virginia,54031,16,0 +2020-05-11,Hardy,West Virginia,54031,17,0 +2020-05-12,Hardy,West Virginia,54031,17,0 +2020-05-13,Hardy,West Virginia,54031,23,0 +2020-05-14,Hardy,West Virginia,54031,25,0 +2020-05-15,Hardy,West Virginia,54031,25,0 +2020-05-16,Hardy,West Virginia,54031,25,0 +2020-05-17,Hardy,West Virginia,54031,25,0 +2020-05-18,Hardy,West Virginia,54031,31,0 +2020-05-19,Hardy,West Virginia,54031,32,0 +2020-05-20,Hardy,West Virginia,54031,33,0 +2020-05-21,Hardy,West Virginia,54031,34,0 +2020-05-22,Hardy,West Virginia,54031,35,0 +2020-05-23,Hardy,West Virginia,54031,36,0 +2020-05-24,Hardy,West Virginia,54031,37,0 +2020-05-25,Hardy,West Virginia,54031,37,0 +2020-05-26,Hardy,West Virginia,54031,38,0 +2020-05-27,Hardy,West Virginia,54031,38,0 +2020-05-28,Hardy,West Virginia,54031,38,0 +2020-05-29,Hardy,West Virginia,54031,39,0 +2020-05-30,Hardy,West Virginia,54031,39,0 +2020-05-31,Hardy,West Virginia,54031,39,0 +2020-06-01,Hardy,West Virginia,54031,39,0 +2020-06-02,Hardy,West Virginia,54031,39,0 +2020-06-03,Hardy,West Virginia,54031,39,0 +2020-06-04,Hardy,West Virginia,54031,39,0 +2020-06-05,Hardy,West Virginia,54031,40,0 +2020-06-06,Hardy,West Virginia,54031,40,0 +2020-06-07,Hardy,West Virginia,54031,40,0 +2020-06-08,Hardy,West Virginia,54031,40,0 +2020-06-09,Hardy,West Virginia,54031,40,0 +2020-06-10,Hardy,West Virginia,54031,40,0 +2020-06-11,Hardy,West Virginia,54031,40,0 +2020-06-12,Hardy,West Virginia,54031,40,0 +2020-06-13,Hardy,West Virginia,54031,40,0 +2020-06-14,Hardy,West Virginia,54031,40,0 +2020-06-15,Hardy,West Virginia,54031,40,0 +2020-06-16,Hardy,West Virginia,54031,41,0 +2020-06-17,Hardy,West Virginia,54031,41,0 +2020-06-18,Hardy,West Virginia,54031,41,0 +2020-06-19,Hardy,West Virginia,54031,41,0 +2020-06-20,Hardy,West Virginia,54031,41,0 +2020-06-21,Hardy,West Virginia,54031,42,0 +2020-06-22,Hardy,West Virginia,54031,42,0 +2020-06-23,Hardy,West Virginia,54031,42,0 +2020-06-24,Hardy,West Virginia,54031,42,0 +2020-06-25,Hardy,West Virginia,54031,42,0 +2020-06-26,Hardy,West Virginia,54031,42,0 +2020-06-27,Hardy,West Virginia,54031,43,0 +2020-06-28,Hardy,West Virginia,54031,43,0 +2020-06-29,Hardy,West Virginia,54031,43,0 +2020-06-30,Hardy,West Virginia,54031,44,0 +2020-07-01,Hardy,West Virginia,54031,44,0 +2020-07-02,Hardy,West Virginia,54031,45,0 +2020-07-03,Hardy,West Virginia,54031,45,0 +2020-07-04,Hardy,West Virginia,54031,45,0 +2020-07-05,Hardy,West Virginia,54031,45,0 +2020-07-06,Hardy,West Virginia,54031,45,0 +2020-07-07,Hardy,West Virginia,54031,45,0 +2020-07-08,Hardy,West Virginia,54031,46,0 +2020-07-09,Hardy,West Virginia,54031,46,0 +2020-03-24,Harrison,West Virginia,54033,3,0 +2020-03-25,Harrison,West Virginia,54033,3,0 +2020-03-26,Harrison,West Virginia,54033,4,0 +2020-03-27,Harrison,West Virginia,54033,4,0 +2020-03-28,Harrison,West Virginia,54033,5,0 +2020-03-29,Harrison,West Virginia,54033,7,0 +2020-03-30,Harrison,West Virginia,54033,10,0 +2020-03-31,Harrison,West Virginia,54033,11,0 +2020-04-01,Harrison,West Virginia,54033,14,0 +2020-04-02,Harrison,West Virginia,54033,17,0 +2020-04-03,Harrison,West Virginia,54033,17,0 +2020-04-04,Harrison,West Virginia,54033,19,0 +2020-04-05,Harrison,West Virginia,54033,24,0 +2020-04-06,Harrison,West Virginia,54033,25,1 +2020-04-07,Harrison,West Virginia,54033,25,1 +2020-04-08,Harrison,West Virginia,54033,29,1 +2020-04-09,Harrison,West Virginia,54033,29,1 +2020-04-10,Harrison,West Virginia,54033,28,1 +2020-04-11,Harrison,West Virginia,54033,28,1 +2020-04-12,Harrison,West Virginia,54033,28,1 +2020-04-13,Harrison,West Virginia,54033,28,1 +2020-04-14,Harrison,West Virginia,54033,28,1 +2020-04-15,Harrison,West Virginia,54033,28,1 +2020-04-16,Harrison,West Virginia,54033,29,1 +2020-04-17,Harrison,West Virginia,54033,29,1 +2020-04-18,Harrison,West Virginia,54033,29,1 +2020-04-19,Harrison,West Virginia,54033,30,1 +2020-04-20,Harrison,West Virginia,54033,30,1 +2020-04-21,Harrison,West Virginia,54033,30,1 +2020-04-22,Harrison,West Virginia,54033,30,1 +2020-04-23,Harrison,West Virginia,54033,30,1 +2020-04-24,Harrison,West Virginia,54033,30,1 +2020-04-25,Harrison,West Virginia,54033,30,1 +2020-04-26,Harrison,West Virginia,54033,30,1 +2020-04-27,Harrison,West Virginia,54033,30,1 +2020-04-28,Harrison,West Virginia,54033,30,1 +2020-04-29,Harrison,West Virginia,54033,30,1 +2020-04-30,Harrison,West Virginia,54033,30,1 +2020-05-01,Harrison,West Virginia,54033,30,1 +2020-05-02,Harrison,West Virginia,54033,30,1 +2020-05-03,Harrison,West Virginia,54033,31,1 +2020-05-04,Harrison,West Virginia,54033,31,1 +2020-05-05,Harrison,West Virginia,54033,31,1 +2020-05-06,Harrison,West Virginia,54033,32,1 +2020-05-07,Harrison,West Virginia,54033,34,1 +2020-05-08,Harrison,West Virginia,54033,33,1 +2020-05-09,Harrison,West Virginia,54033,33,1 +2020-05-10,Harrison,West Virginia,54033,33,1 +2020-05-11,Harrison,West Virginia,54033,34,1 +2020-05-12,Harrison,West Virginia,54033,34,1 +2020-05-13,Harrison,West Virginia,54033,34,1 +2020-05-14,Harrison,West Virginia,54033,34,1 +2020-05-15,Harrison,West Virginia,54033,34,1 +2020-05-16,Harrison,West Virginia,54033,35,1 +2020-05-17,Harrison,West Virginia,54033,35,1 +2020-05-18,Harrison,West Virginia,54033,35,1 +2020-05-19,Harrison,West Virginia,54033,36,1 +2020-05-20,Harrison,West Virginia,54033,37,1 +2020-05-21,Harrison,West Virginia,54033,37,1 +2020-05-22,Harrison,West Virginia,54033,39,1 +2020-05-23,Harrison,West Virginia,54033,39,1 +2020-05-24,Harrison,West Virginia,54033,40,1 +2020-05-25,Harrison,West Virginia,54033,39,1 +2020-05-26,Harrison,West Virginia,54033,40,1 +2020-05-27,Harrison,West Virginia,54033,40,1 +2020-05-28,Harrison,West Virginia,54033,40,1 +2020-05-29,Harrison,West Virginia,54033,40,1 +2020-05-30,Harrison,West Virginia,54033,40,1 +2020-05-31,Harrison,West Virginia,54033,41,1 +2020-06-01,Harrison,West Virginia,54033,40,1 +2020-06-02,Harrison,West Virginia,54033,40,1 +2020-06-03,Harrison,West Virginia,54033,40,1 +2020-06-04,Harrison,West Virginia,54033,40,1 +2020-06-05,Harrison,West Virginia,54033,40,1 +2020-06-06,Harrison,West Virginia,54033,40,1 +2020-06-07,Harrison,West Virginia,54033,40,1 +2020-06-08,Harrison,West Virginia,54033,40,1 +2020-06-09,Harrison,West Virginia,54033,41,1 +2020-06-10,Harrison,West Virginia,54033,41,1 +2020-06-11,Harrison,West Virginia,54033,43,1 +2020-06-12,Harrison,West Virginia,54033,43,1 +2020-06-13,Harrison,West Virginia,54033,46,1 +2020-06-14,Harrison,West Virginia,54033,46,1 +2020-06-15,Harrison,West Virginia,54033,49,1 +2020-06-16,Harrison,West Virginia,54033,49,1 +2020-06-17,Harrison,West Virginia,54033,49,1 +2020-06-18,Harrison,West Virginia,54033,49,1 +2020-06-19,Harrison,West Virginia,54033,49,1 +2020-06-20,Harrison,West Virginia,54033,49,1 +2020-06-21,Harrison,West Virginia,54033,50,1 +2020-06-22,Harrison,West Virginia,54033,50,1 +2020-06-23,Harrison,West Virginia,54033,50,1 +2020-06-24,Harrison,West Virginia,54033,53,1 +2020-06-25,Harrison,West Virginia,54033,56,1 +2020-06-26,Harrison,West Virginia,54033,56,1 +2020-06-27,Harrison,West Virginia,54033,60,1 +2020-06-28,Harrison,West Virginia,54033,61,1 +2020-06-29,Harrison,West Virginia,54033,60,1 +2020-06-30,Harrison,West Virginia,54033,61,1 +2020-07-01,Harrison,West Virginia,54033,65,1 +2020-07-02,Harrison,West Virginia,54033,66,1 +2020-07-03,Harrison,West Virginia,54033,69,1 +2020-07-04,Harrison,West Virginia,54033,70,1 +2020-07-05,Harrison,West Virginia,54033,76,1 +2020-07-06,Harrison,West Virginia,54033,79,1 +2020-07-07,Harrison,West Virginia,54033,84,1 +2020-07-08,Harrison,West Virginia,54033,91,1 +2020-07-09,Harrison,West Virginia,54033,104,1 +2020-03-20,Jackson,West Virginia,54035,1,0 +2020-03-21,Jackson,West Virginia,54035,1,0 +2020-03-22,Jackson,West Virginia,54035,1,0 +2020-03-23,Jackson,West Virginia,54035,1,0 +2020-03-24,Jackson,West Virginia,54035,2,0 +2020-03-25,Jackson,West Virginia,54035,4,0 +2020-03-26,Jackson,West Virginia,54035,5,0 +2020-03-27,Jackson,West Virginia,54035,6,0 +2020-03-28,Jackson,West Virginia,54035,7,0 +2020-03-29,Jackson,West Virginia,54035,8,0 +2020-03-30,Jackson,West Virginia,54035,8,0 +2020-03-31,Jackson,West Virginia,54035,9,0 +2020-04-01,Jackson,West Virginia,54035,11,0 +2020-04-02,Jackson,West Virginia,54035,11,1 +2020-04-03,Jackson,West Virginia,54035,11,1 +2020-04-04,Jackson,West Virginia,54035,13,1 +2020-04-05,Jackson,West Virginia,54035,14,1 +2020-04-06,Jackson,West Virginia,54035,16,1 +2020-04-07,Jackson,West Virginia,54035,19,1 +2020-04-08,Jackson,West Virginia,54035,19,1 +2020-04-09,Jackson,West Virginia,54035,20,1 +2020-04-10,Jackson,West Virginia,54035,20,1 +2020-04-11,Jackson,West Virginia,54035,23,1 +2020-04-12,Jackson,West Virginia,54035,27,1 +2020-04-13,Jackson,West Virginia,54035,30,1 +2020-04-14,Jackson,West Virginia,54035,31,1 +2020-04-15,Jackson,West Virginia,54035,34,1 +2020-04-16,Jackson,West Virginia,54035,37,1 +2020-04-17,Jackson,West Virginia,54035,40,1 +2020-04-18,Jackson,West Virginia,54035,70,3 +2020-04-19,Jackson,West Virginia,54035,100,3 +2020-04-20,Jackson,West Virginia,54035,101,6 +2020-04-21,Jackson,West Virginia,54035,103,6 +2020-04-22,Jackson,West Virginia,54035,103,7 +2020-04-23,Jackson,West Virginia,54035,112,7 +2020-04-24,Jackson,West Virginia,54035,116,8 +2020-04-25,Jackson,West Virginia,54035,124,8 +2020-04-26,Jackson,West Virginia,54035,127,9 +2020-04-27,Jackson,West Virginia,54035,127,12 +2020-04-28,Jackson,West Virginia,54035,129,12 +2020-04-29,Jackson,West Virginia,54035,129,12 +2020-04-30,Jackson,West Virginia,54035,130,13 +2020-05-01,Jackson,West Virginia,54035,130,15 +2020-05-02,Jackson,West Virginia,54035,130,15 +2020-05-03,Jackson,West Virginia,54035,130,15 +2020-05-04,Jackson,West Virginia,54035,135,15 +2020-05-05,Jackson,West Virginia,54035,134,15 +2020-05-06,Jackson,West Virginia,54035,136,15 +2020-05-07,Jackson,West Virginia,54035,136,15 +2020-05-08,Jackson,West Virginia,54035,136,15 +2020-05-09,Jackson,West Virginia,54035,136,15 +2020-05-10,Jackson,West Virginia,54035,136,15 +2020-05-11,Jackson,West Virginia,54035,136,16 +2020-05-12,Jackson,West Virginia,54035,136,16 +2020-05-13,Jackson,West Virginia,54035,136,16 +2020-05-14,Jackson,West Virginia,54035,137,17 +2020-05-15,Jackson,West Virginia,54035,138,17 +2020-05-16,Jackson,West Virginia,54035,136,17 +2020-05-17,Jackson,West Virginia,54035,136,17 +2020-05-18,Jackson,West Virginia,54035,135,17 +2020-05-19,Jackson,West Virginia,54035,135,17 +2020-05-20,Jackson,West Virginia,54035,135,17 +2020-05-21,Jackson,West Virginia,54035,135,18 +2020-05-22,Jackson,West Virginia,54035,135,18 +2020-05-23,Jackson,West Virginia,54035,135,18 +2020-05-24,Jackson,West Virginia,54035,135,18 +2020-05-25,Jackson,West Virginia,54035,135,18 +2020-05-26,Jackson,West Virginia,54035,135,18 +2020-05-27,Jackson,West Virginia,54035,135,18 +2020-05-28,Jackson,West Virginia,54035,135,18 +2020-05-29,Jackson,West Virginia,54035,136,18 +2020-05-30,Jackson,West Virginia,54035,137,18 +2020-05-31,Jackson,West Virginia,54035,137,18 +2020-06-01,Jackson,West Virginia,54035,137,18 +2020-06-02,Jackson,West Virginia,54035,137,18 +2020-06-03,Jackson,West Virginia,54035,137,18 +2020-06-04,Jackson,West Virginia,54035,138,18 +2020-06-05,Jackson,West Virginia,54035,138,18 +2020-06-06,Jackson,West Virginia,54035,138,18 +2020-06-07,Jackson,West Virginia,54035,138,18 +2020-06-08,Jackson,West Virginia,54035,140,18 +2020-06-09,Jackson,West Virginia,54035,141,18 +2020-06-10,Jackson,West Virginia,54035,141,18 +2020-06-11,Jackson,West Virginia,54035,141,18 +2020-06-12,Jackson,West Virginia,54035,141,18 +2020-06-13,Jackson,West Virginia,54035,141,18 +2020-06-14,Jackson,West Virginia,54035,141,18 +2020-06-15,Jackson,West Virginia,54035,141,18 +2020-06-16,Jackson,West Virginia,54035,141,18 +2020-06-17,Jackson,West Virginia,54035,141,18 +2020-06-18,Jackson,West Virginia,54035,141,18 +2020-06-19,Jackson,West Virginia,54035,141,18 +2020-06-20,Jackson,West Virginia,54035,141,18 +2020-06-21,Jackson,West Virginia,54035,141,18 +2020-06-22,Jackson,West Virginia,54035,141,18 +2020-06-23,Jackson,West Virginia,54035,141,18 +2020-06-24,Jackson,West Virginia,54035,142,18 +2020-06-25,Jackson,West Virginia,54035,142,18 +2020-06-26,Jackson,West Virginia,54035,142,18 +2020-06-27,Jackson,West Virginia,54035,142,18 +2020-06-28,Jackson,West Virginia,54035,142,18 +2020-06-29,Jackson,West Virginia,54035,143,18 +2020-06-30,Jackson,West Virginia,54035,143,18 +2020-07-01,Jackson,West Virginia,54035,143,18 +2020-07-02,Jackson,West Virginia,54035,143,18 +2020-07-03,Jackson,West Virginia,54035,143,18 +2020-07-04,Jackson,West Virginia,54035,143,18 +2020-07-05,Jackson,West Virginia,54035,144,18 +2020-07-06,Jackson,West Virginia,54035,145,18 +2020-07-07,Jackson,West Virginia,54035,145,18 +2020-07-08,Jackson,West Virginia,54035,148,18 +2020-07-09,Jackson,West Virginia,54035,149,18 +2020-03-17,Jefferson,West Virginia,54037,1,0 +2020-03-18,Jefferson,West Virginia,54037,1,0 +2020-03-19,Jefferson,West Virginia,54037,1,0 +2020-03-20,Jefferson,West Virginia,54037,2,0 +2020-03-21,Jefferson,West Virginia,54037,2,0 +2020-03-22,Jefferson,West Virginia,54037,3,0 +2020-03-23,Jefferson,West Virginia,54037,3,0 +2020-03-24,Jefferson,West Virginia,54037,3,0 +2020-03-25,Jefferson,West Virginia,54037,3,0 +2020-03-26,Jefferson,West Virginia,54037,4,0 +2020-03-27,Jefferson,West Virginia,54037,4,0 +2020-03-28,Jefferson,West Virginia,54037,4,0 +2020-03-29,Jefferson,West Virginia,54037,5,0 +2020-03-30,Jefferson,West Virginia,54037,6,0 +2020-03-31,Jefferson,West Virginia,54037,8,0 +2020-04-01,Jefferson,West Virginia,54037,9,0 +2020-04-02,Jefferson,West Virginia,54037,12,0 +2020-04-03,Jefferson,West Virginia,54037,12,0 +2020-04-04,Jefferson,West Virginia,54037,17,0 +2020-04-05,Jefferson,West Virginia,54037,21,0 +2020-04-06,Jefferson,West Virginia,54037,22,0 +2020-04-07,Jefferson,West Virginia,54037,31,0 +2020-04-08,Jefferson,West Virginia,54037,40,0 +2020-04-09,Jefferson,West Virginia,54037,45,0 +2020-04-10,Jefferson,West Virginia,54037,44,0 +2020-04-11,Jefferson,West Virginia,54037,48,0 +2020-04-12,Jefferson,West Virginia,54037,49,0 +2020-04-13,Jefferson,West Virginia,54037,51,0 +2020-04-14,Jefferson,West Virginia,54037,54,0 +2020-04-15,Jefferson,West Virginia,54037,56,0 +2020-04-16,Jefferson,West Virginia,54037,57,0 +2020-04-17,Jefferson,West Virginia,54037,60,0 +2020-04-18,Jefferson,West Virginia,54037,60,0 +2020-04-19,Jefferson,West Virginia,54037,60,0 +2020-04-20,Jefferson,West Virginia,54037,61,0 +2020-04-21,Jefferson,West Virginia,54037,65,0 +2020-04-22,Jefferson,West Virginia,54037,65,0 +2020-04-23,Jefferson,West Virginia,54037,67,0 +2020-04-24,Jefferson,West Virginia,54037,70,0 +2020-04-25,Jefferson,West Virginia,54037,71,0 +2020-04-26,Jefferson,West Virginia,54037,71,0 +2020-04-27,Jefferson,West Virginia,54037,75,0 +2020-04-28,Jefferson,West Virginia,54037,77,1 +2020-04-29,Jefferson,West Virginia,54037,77,1 +2020-04-30,Jefferson,West Virginia,54037,79,1 +2020-05-01,Jefferson,West Virginia,54037,79,1 +2020-05-02,Jefferson,West Virginia,54037,79,1 +2020-05-03,Jefferson,West Virginia,54037,81,1 +2020-05-04,Jefferson,West Virginia,54037,82,1 +2020-05-05,Jefferson,West Virginia,54037,83,1 +2020-05-06,Jefferson,West Virginia,54037,84,1 +2020-05-07,Jefferson,West Virginia,54037,85,1 +2020-05-08,Jefferson,West Virginia,54037,87,1 +2020-05-09,Jefferson,West Virginia,54037,88,1 +2020-05-10,Jefferson,West Virginia,54037,88,1 +2020-05-11,Jefferson,West Virginia,54037,88,1 +2020-05-12,Jefferson,West Virginia,54037,88,1 +2020-05-13,Jefferson,West Virginia,54037,92,1 +2020-05-14,Jefferson,West Virginia,54037,96,1 +2020-05-15,Jefferson,West Virginia,54037,96,1 +2020-05-16,Jefferson,West Virginia,54037,98,1 +2020-05-17,Jefferson,West Virginia,54037,100,1 +2020-05-18,Jefferson,West Virginia,54037,101,1 +2020-05-19,Jefferson,West Virginia,54037,102,1 +2020-05-20,Jefferson,West Virginia,54037,115,1 +2020-05-21,Jefferson,West Virginia,54037,132,1 +2020-05-22,Jefferson,West Virginia,54037,143,1 +2020-05-23,Jefferson,West Virginia,54037,146,1 +2020-05-24,Jefferson,West Virginia,54037,153,1 +2020-05-25,Jefferson,West Virginia,54037,157,1 +2020-05-26,Jefferson,West Virginia,54037,161,1 +2020-05-27,Jefferson,West Virginia,54037,167,1 +2020-05-28,Jefferson,West Virginia,54037,168,1 +2020-05-29,Jefferson,West Virginia,54037,177,1 +2020-05-30,Jefferson,West Virginia,54037,180,1 +2020-05-31,Jefferson,West Virginia,54037,182,1 +2020-06-01,Jefferson,West Virginia,54037,184,1 +2020-06-02,Jefferson,West Virginia,54037,197,1 +2020-06-03,Jefferson,West Virginia,54037,199,1 +2020-06-04,Jefferson,West Virginia,54037,204,1 +2020-06-05,Jefferson,West Virginia,54037,203,4 +2020-06-06,Jefferson,West Virginia,54037,204,4 +2020-06-07,Jefferson,West Virginia,54037,204,4 +2020-06-08,Jefferson,West Virginia,54037,204,4 +2020-06-09,Jefferson,West Virginia,54037,204,4 +2020-06-10,Jefferson,West Virginia,54037,204,4 +2020-06-11,Jefferson,West Virginia,54037,205,4 +2020-06-12,Jefferson,West Virginia,54037,205,4 +2020-06-13,Jefferson,West Virginia,54037,207,4 +2020-06-14,Jefferson,West Virginia,54037,207,4 +2020-06-15,Jefferson,West Virginia,54037,209,4 +2020-06-16,Jefferson,West Virginia,54037,211,4 +2020-06-17,Jefferson,West Virginia,54037,213,4 +2020-06-18,Jefferson,West Virginia,54037,213,4 +2020-06-19,Jefferson,West Virginia,54037,215,4 +2020-06-20,Jefferson,West Virginia,54037,215,4 +2020-06-21,Jefferson,West Virginia,54037,216,4 +2020-06-22,Jefferson,West Virginia,54037,216,4 +2020-06-23,Jefferson,West Virginia,54037,216,4 +2020-06-24,Jefferson,West Virginia,54037,217,4 +2020-06-25,Jefferson,West Virginia,54037,219,4 +2020-06-26,Jefferson,West Virginia,54037,219,4 +2020-06-27,Jefferson,West Virginia,54037,222,4 +2020-06-28,Jefferson,West Virginia,54037,224,4 +2020-06-29,Jefferson,West Virginia,54037,224,4 +2020-06-30,Jefferson,West Virginia,54037,229,4 +2020-07-01,Jefferson,West Virginia,54037,232,4 +2020-07-02,Jefferson,West Virginia,54037,234,4 +2020-07-03,Jefferson,West Virginia,54037,238,4 +2020-07-04,Jefferson,West Virginia,54037,241,4 +2020-07-05,Jefferson,West Virginia,54037,243,4 +2020-07-06,Jefferson,West Virginia,54037,245,4 +2020-07-07,Jefferson,West Virginia,54037,249,4 +2020-07-08,Jefferson,West Virginia,54037,249,4 +2020-07-09,Jefferson,West Virginia,54037,252,4 +2020-03-20,Kanawha,West Virginia,54039,1,0 +2020-03-21,Kanawha,West Virginia,54039,1,0 +2020-03-22,Kanawha,West Virginia,54039,3,0 +2020-03-23,Kanawha,West Virginia,54039,3,0 +2020-03-24,Kanawha,West Virginia,54039,4,0 +2020-03-25,Kanawha,West Virginia,54039,5,0 +2020-03-26,Kanawha,West Virginia,54039,15,0 +2020-03-27,Kanawha,West Virginia,54039,17,0 +2020-03-28,Kanawha,West Virginia,54039,19,0 +2020-03-29,Kanawha,West Virginia,54039,19,0 +2020-03-30,Kanawha,West Virginia,54039,23,0 +2020-03-31,Kanawha,West Virginia,54039,31,0 +2020-04-01,Kanawha,West Virginia,54039,37,0 +2020-04-02,Kanawha,West Virginia,54039,39,0 +2020-04-03,Kanawha,West Virginia,54039,40,0 +2020-04-04,Kanawha,West Virginia,54039,48,0 +2020-04-05,Kanawha,West Virginia,54039,51,0 +2020-04-06,Kanawha,West Virginia,54039,56,0 +2020-04-07,Kanawha,West Virginia,54039,61,0 +2020-04-08,Kanawha,West Virginia,54039,70,0 +2020-04-09,Kanawha,West Virginia,54039,73,0 +2020-04-10,Kanawha,West Virginia,54039,74,0 +2020-04-11,Kanawha,West Virginia,54039,83,0 +2020-04-12,Kanawha,West Virginia,54039,86,0 +2020-04-13,Kanawha,West Virginia,54039,85,0 +2020-04-14,Kanawha,West Virginia,54039,86,0 +2020-04-15,Kanawha,West Virginia,54039,91,0 +2020-04-16,Kanawha,West Virginia,54039,91,0 +2020-04-17,Kanawha,West Virginia,54039,104,0 +2020-04-18,Kanawha,West Virginia,54039,111,0 +2020-04-19,Kanawha,West Virginia,54039,127,1 +2020-04-20,Kanawha,West Virginia,54039,133,1 +2020-04-21,Kanawha,West Virginia,54039,136,1 +2020-04-22,Kanawha,West Virginia,54039,138,2 +2020-04-23,Kanawha,West Virginia,54039,142,3 +2020-04-24,Kanawha,West Virginia,54039,147,3 +2020-04-25,Kanawha,West Virginia,54039,148,4 +2020-04-26,Kanawha,West Virginia,54039,153,4 +2020-04-27,Kanawha,West Virginia,54039,156,4 +2020-04-28,Kanawha,West Virginia,54039,157,4 +2020-04-29,Kanawha,West Virginia,54039,157,5 +2020-04-30,Kanawha,West Virginia,54039,160,7 +2020-05-01,Kanawha,West Virginia,54039,161,7 +2020-05-02,Kanawha,West Virginia,54039,168,10 +2020-05-03,Kanawha,West Virginia,54039,167,10 +2020-05-04,Kanawha,West Virginia,54039,168,10 +2020-05-05,Kanawha,West Virginia,54039,170,10 +2020-05-06,Kanawha,West Virginia,54039,172,10 +2020-05-07,Kanawha,West Virginia,54039,175,10 +2020-05-08,Kanawha,West Virginia,54039,180,10 +2020-05-09,Kanawha,West Virginia,54039,182,11 +2020-05-10,Kanawha,West Virginia,54039,183,11 +2020-05-11,Kanawha,West Virginia,54039,186,12 +2020-05-12,Kanawha,West Virginia,54039,186,12 +2020-05-13,Kanawha,West Virginia,54039,188,13 +2020-05-14,Kanawha,West Virginia,54039,201,14 +2020-05-15,Kanawha,West Virginia,54039,197,15 +2020-05-16,Kanawha,West Virginia,54039,206,15 +2020-05-17,Kanawha,West Virginia,54039,206,15 +2020-05-18,Kanawha,West Virginia,54039,203,16 +2020-05-19,Kanawha,West Virginia,54039,203,16 +2020-05-20,Kanawha,West Virginia,54039,205,17 +2020-05-21,Kanawha,West Virginia,54039,203,18 +2020-05-22,Kanawha,West Virginia,54039,214,18 +2020-05-23,Kanawha,West Virginia,54039,210,18 +2020-05-24,Kanawha,West Virginia,54039,211,18 +2020-05-25,Kanawha,West Virginia,54039,212,18 +2020-05-26,Kanawha,West Virginia,54039,215,18 +2020-05-27,Kanawha,West Virginia,54039,216,17 +2020-05-28,Kanawha,West Virginia,54039,218,17 +2020-05-29,Kanawha,West Virginia,54039,223,18 +2020-05-30,Kanawha,West Virginia,54039,226,18 +2020-05-31,Kanawha,West Virginia,54039,229,18 +2020-06-01,Kanawha,West Virginia,54039,229,18 +2020-06-02,Kanawha,West Virginia,54039,230,19 +2020-06-03,Kanawha,West Virginia,54039,230,19 +2020-06-04,Kanawha,West Virginia,54039,231,19 +2020-06-05,Kanawha,West Virginia,54039,233,19 +2020-06-06,Kanawha,West Virginia,54039,236,19 +2020-06-07,Kanawha,West Virginia,54039,237,19 +2020-06-08,Kanawha,West Virginia,54039,242,19 +2020-06-09,Kanawha,West Virginia,54039,241,19 +2020-06-10,Kanawha,West Virginia,54039,241,20 +2020-06-11,Kanawha,West Virginia,54039,244,20 +2020-06-12,Kanawha,West Virginia,54039,247,20 +2020-06-13,Kanawha,West Virginia,54039,245,20 +2020-06-14,Kanawha,West Virginia,54039,246,20 +2020-06-15,Kanawha,West Virginia,54039,247,20 +2020-06-16,Kanawha,West Virginia,54039,249,20 +2020-06-17,Kanawha,West Virginia,54039,253,20 +2020-06-18,Kanawha,West Virginia,54039,256,20 +2020-06-19,Kanawha,West Virginia,54039,261,20 +2020-06-20,Kanawha,West Virginia,54039,264,20 +2020-06-21,Kanawha,West Virginia,54039,266,20 +2020-06-22,Kanawha,West Virginia,54039,270,20 +2020-06-23,Kanawha,West Virginia,54039,270,20 +2020-06-24,Kanawha,West Virginia,54039,271,20 +2020-06-25,Kanawha,West Virginia,54039,286,20 +2020-06-26,Kanawha,West Virginia,54039,288,20 +2020-06-27,Kanawha,West Virginia,54039,292,20 +2020-06-28,Kanawha,West Virginia,54039,301,20 +2020-06-29,Kanawha,West Virginia,54039,309,20 +2020-06-30,Kanawha,West Virginia,54039,316,20 +2020-07-01,Kanawha,West Virginia,54039,328,20 +2020-07-02,Kanawha,West Virginia,54039,333,20 +2020-07-03,Kanawha,West Virginia,54039,333,20 +2020-07-04,Kanawha,West Virginia,54039,336,20 +2020-07-05,Kanawha,West Virginia,54039,350,20 +2020-07-06,Kanawha,West Virginia,54039,355,20 +2020-07-07,Kanawha,West Virginia,54039,360,20 +2020-07-08,Kanawha,West Virginia,54039,376,20 +2020-07-09,Kanawha,West Virginia,54039,384,20 +2020-04-06,Lewis,West Virginia,54041,1,0 +2020-04-07,Lewis,West Virginia,54041,1,0 +2020-04-08,Lewis,West Virginia,54041,1,0 +2020-04-09,Lewis,West Virginia,54041,1,0 +2020-04-10,Lewis,West Virginia,54041,2,0 +2020-04-11,Lewis,West Virginia,54041,2,0 +2020-04-12,Lewis,West Virginia,54041,2,0 +2020-04-13,Lewis,West Virginia,54041,2,0 +2020-04-14,Lewis,West Virginia,54041,2,0 +2020-04-15,Lewis,West Virginia,54041,2,0 +2020-04-16,Lewis,West Virginia,54041,2,0 +2020-04-17,Lewis,West Virginia,54041,2,0 +2020-04-18,Lewis,West Virginia,54041,2,0 +2020-04-19,Lewis,West Virginia,54041,2,0 +2020-04-20,Lewis,West Virginia,54041,2,0 +2020-04-21,Lewis,West Virginia,54041,2,0 +2020-04-22,Lewis,West Virginia,54041,2,0 +2020-04-23,Lewis,West Virginia,54041,3,0 +2020-04-24,Lewis,West Virginia,54041,3,0 +2020-04-25,Lewis,West Virginia,54041,3,0 +2020-04-26,Lewis,West Virginia,54041,3,0 +2020-04-27,Lewis,West Virginia,54041,4,0 +2020-04-28,Lewis,West Virginia,54041,4,0 +2020-04-29,Lewis,West Virginia,54041,4,0 +2020-04-30,Lewis,West Virginia,54041,4,0 +2020-05-01,Lewis,West Virginia,54041,4,0 +2020-05-02,Lewis,West Virginia,54041,4,0 +2020-05-03,Lewis,West Virginia,54041,4,0 +2020-05-04,Lewis,West Virginia,54041,4,0 +2020-05-05,Lewis,West Virginia,54041,4,0 +2020-05-06,Lewis,West Virginia,54041,4,0 +2020-05-07,Lewis,West Virginia,54041,4,0 +2020-05-08,Lewis,West Virginia,54041,4,0 +2020-05-09,Lewis,West Virginia,54041,4,0 +2020-05-10,Lewis,West Virginia,54041,4,0 +2020-05-11,Lewis,West Virginia,54041,4,0 +2020-05-12,Lewis,West Virginia,54041,4,0 +2020-05-13,Lewis,West Virginia,54041,4,0 +2020-05-14,Lewis,West Virginia,54041,4,0 +2020-05-15,Lewis,West Virginia,54041,4,0 +2020-05-16,Lewis,West Virginia,54041,4,0 +2020-05-17,Lewis,West Virginia,54041,5,0 +2020-05-18,Lewis,West Virginia,54041,5,0 +2020-05-19,Lewis,West Virginia,54041,5,0 +2020-05-20,Lewis,West Virginia,54041,5,0 +2020-05-21,Lewis,West Virginia,54041,5,0 +2020-05-22,Lewis,West Virginia,54041,5,1 +2020-05-23,Lewis,West Virginia,54041,5,1 +2020-05-24,Lewis,West Virginia,54041,5,1 +2020-05-25,Lewis,West Virginia,54041,5,1 +2020-05-26,Lewis,West Virginia,54041,5,1 +2020-05-27,Lewis,West Virginia,54041,6,1 +2020-05-28,Lewis,West Virginia,54041,6,1 +2020-05-29,Lewis,West Virginia,54041,8,1 +2020-05-30,Lewis,West Virginia,54041,8,1 +2020-05-31,Lewis,West Virginia,54041,9,1 +2020-06-01,Lewis,West Virginia,54041,9,1 +2020-06-02,Lewis,West Virginia,54041,9,1 +2020-06-03,Lewis,West Virginia,54041,9,1 +2020-06-04,Lewis,West Virginia,54041,9,1 +2020-06-05,Lewis,West Virginia,54041,9,1 +2020-06-06,Lewis,West Virginia,54041,8,1 +2020-06-07,Lewis,West Virginia,54041,8,1 +2020-06-08,Lewis,West Virginia,54041,8,1 +2020-06-09,Lewis,West Virginia,54041,8,1 +2020-06-10,Lewis,West Virginia,54041,8,1 +2020-06-11,Lewis,West Virginia,54041,8,1 +2020-06-12,Lewis,West Virginia,54041,8,1 +2020-06-13,Lewis,West Virginia,54041,8,1 +2020-06-14,Lewis,West Virginia,54041,8,1 +2020-06-15,Lewis,West Virginia,54041,8,1 +2020-06-16,Lewis,West Virginia,54041,8,1 +2020-06-17,Lewis,West Virginia,54041,8,1 +2020-06-18,Lewis,West Virginia,54041,14,1 +2020-06-19,Lewis,West Virginia,54041,15,1 +2020-06-20,Lewis,West Virginia,54041,15,1 +2020-06-21,Lewis,West Virginia,54041,15,1 +2020-06-22,Lewis,West Virginia,54041,15,1 +2020-06-23,Lewis,West Virginia,54041,15,2 +2020-06-24,Lewis,West Virginia,54041,15,2 +2020-06-25,Lewis,West Virginia,54041,15,2 +2020-06-26,Lewis,West Virginia,54041,15,2 +2020-06-27,Lewis,West Virginia,54041,16,2 +2020-06-28,Lewis,West Virginia,54041,17,2 +2020-06-29,Lewis,West Virginia,54041,17,2 +2020-06-30,Lewis,West Virginia,54041,19,2 +2020-07-01,Lewis,West Virginia,54041,19,2 +2020-07-02,Lewis,West Virginia,54041,20,2 +2020-07-03,Lewis,West Virginia,54041,20,2 +2020-07-04,Lewis,West Virginia,54041,20,2 +2020-07-05,Lewis,West Virginia,54041,20,2 +2020-07-06,Lewis,West Virginia,54041,20,2 +2020-07-07,Lewis,West Virginia,54041,20,2 +2020-07-08,Lewis,West Virginia,54041,20,2 +2020-07-09,Lewis,West Virginia,54041,20,2 +2020-04-14,Lincoln,West Virginia,54043,1,0 +2020-04-15,Lincoln,West Virginia,54043,1,0 +2020-04-16,Lincoln,West Virginia,54043,1,0 +2020-04-17,Lincoln,West Virginia,54043,1,0 +2020-04-18,Lincoln,West Virginia,54043,1,0 +2020-04-19,Lincoln,West Virginia,54043,1,0 +2020-04-20,Lincoln,West Virginia,54043,1,0 +2020-04-21,Lincoln,West Virginia,54043,1,0 +2020-04-22,Lincoln,West Virginia,54043,1,0 +2020-04-23,Lincoln,West Virginia,54043,1,0 +2020-04-24,Lincoln,West Virginia,54043,1,0 +2020-04-25,Lincoln,West Virginia,54043,1,0 +2020-04-26,Lincoln,West Virginia,54043,1,0 +2020-04-27,Lincoln,West Virginia,54043,1,0 +2020-04-28,Lincoln,West Virginia,54043,1,0 +2020-04-29,Lincoln,West Virginia,54043,1,0 +2020-04-30,Lincoln,West Virginia,54043,2,0 +2020-05-01,Lincoln,West Virginia,54043,2,0 +2020-05-02,Lincoln,West Virginia,54043,2,0 +2020-05-03,Lincoln,West Virginia,54043,2,0 +2020-05-04,Lincoln,West Virginia,54043,2,0 +2020-05-05,Lincoln,West Virginia,54043,2,0 +2020-05-06,Lincoln,West Virginia,54043,3,0 +2020-05-07,Lincoln,West Virginia,54043,3,0 +2020-05-08,Lincoln,West Virginia,54043,4,0 +2020-05-09,Lincoln,West Virginia,54043,5,0 +2020-05-10,Lincoln,West Virginia,54043,5,0 +2020-05-11,Lincoln,West Virginia,54043,5,0 +2020-05-12,Lincoln,West Virginia,54043,5,0 +2020-05-13,Lincoln,West Virginia,54043,5,0 +2020-05-14,Lincoln,West Virginia,54043,5,0 +2020-05-15,Lincoln,West Virginia,54043,5,0 +2020-05-16,Lincoln,West Virginia,54043,5,0 +2020-05-17,Lincoln,West Virginia,54043,5,0 +2020-05-18,Lincoln,West Virginia,54043,5,0 +2020-05-19,Lincoln,West Virginia,54043,5,0 +2020-05-20,Lincoln,West Virginia,54043,5,0 +2020-05-21,Lincoln,West Virginia,54043,5,0 +2020-05-22,Lincoln,West Virginia,54043,5,0 +2020-05-23,Lincoln,West Virginia,54043,5,0 +2020-05-24,Lincoln,West Virginia,54043,5,0 +2020-05-25,Lincoln,West Virginia,54043,5,0 +2020-05-26,Lincoln,West Virginia,54043,5,0 +2020-05-27,Lincoln,West Virginia,54043,5,0 +2020-05-28,Lincoln,West Virginia,54043,5,0 +2020-05-29,Lincoln,West Virginia,54043,5,0 +2020-05-30,Lincoln,West Virginia,54043,6,0 +2020-05-31,Lincoln,West Virginia,54043,6,0 +2020-06-01,Lincoln,West Virginia,54043,6,0 +2020-06-02,Lincoln,West Virginia,54043,5,0 +2020-06-03,Lincoln,West Virginia,54043,5,0 +2020-06-04,Lincoln,West Virginia,54043,5,0 +2020-06-05,Lincoln,West Virginia,54043,5,0 +2020-06-06,Lincoln,West Virginia,54043,5,0 +2020-06-07,Lincoln,West Virginia,54043,5,0 +2020-06-08,Lincoln,West Virginia,54043,5,0 +2020-06-09,Lincoln,West Virginia,54043,5,0 +2020-06-10,Lincoln,West Virginia,54043,5,0 +2020-06-11,Lincoln,West Virginia,54043,5,0 +2020-06-12,Lincoln,West Virginia,54043,5,0 +2020-06-13,Lincoln,West Virginia,54043,5,0 +2020-06-14,Lincoln,West Virginia,54043,5,0 +2020-06-15,Lincoln,West Virginia,54043,5,0 +2020-06-16,Lincoln,West Virginia,54043,5,0 +2020-06-17,Lincoln,West Virginia,54043,5,0 +2020-06-18,Lincoln,West Virginia,54043,5,0 +2020-06-19,Lincoln,West Virginia,54043,5,0 +2020-06-20,Lincoln,West Virginia,54043,5,0 +2020-06-21,Lincoln,West Virginia,54043,5,0 +2020-06-22,Lincoln,West Virginia,54043,5,0 +2020-06-23,Lincoln,West Virginia,54043,5,0 +2020-06-24,Lincoln,West Virginia,54043,5,0 +2020-06-25,Lincoln,West Virginia,54043,5,0 +2020-06-26,Lincoln,West Virginia,54043,5,0 +2020-06-27,Lincoln,West Virginia,54043,5,0 +2020-06-28,Lincoln,West Virginia,54043,7,0 +2020-06-29,Lincoln,West Virginia,54043,8,0 +2020-06-30,Lincoln,West Virginia,54043,8,0 +2020-07-01,Lincoln,West Virginia,54043,8,0 +2020-07-02,Lincoln,West Virginia,54043,8,0 +2020-07-03,Lincoln,West Virginia,54043,8,0 +2020-07-04,Lincoln,West Virginia,54043,8,0 +2020-07-05,Lincoln,West Virginia,54043,8,0 +2020-07-06,Lincoln,West Virginia,54043,9,0 +2020-07-07,Lincoln,West Virginia,54043,9,0 +2020-07-08,Lincoln,West Virginia,54043,10,0 +2020-07-09,Lincoln,West Virginia,54043,10,0 +2020-03-25,Logan,West Virginia,54045,1,0 +2020-03-26,Logan,West Virginia,54045,1,0 +2020-03-27,Logan,West Virginia,54045,1,0 +2020-03-28,Logan,West Virginia,54045,1,0 +2020-03-29,Logan,West Virginia,54045,1,0 +2020-03-30,Logan,West Virginia,54045,2,0 +2020-03-31,Logan,West Virginia,54045,2,0 +2020-04-01,Logan,West Virginia,54045,3,0 +2020-04-02,Logan,West Virginia,54045,4,0 +2020-04-03,Logan,West Virginia,54045,4,0 +2020-04-04,Logan,West Virginia,54045,5,0 +2020-04-05,Logan,West Virginia,54045,5,0 +2020-04-06,Logan,West Virginia,54045,6,0 +2020-04-07,Logan,West Virginia,54045,7,0 +2020-04-08,Logan,West Virginia,54045,8,0 +2020-04-09,Logan,West Virginia,54045,8,0 +2020-04-10,Logan,West Virginia,54045,8,0 +2020-04-11,Logan,West Virginia,54045,8,0 +2020-04-12,Logan,West Virginia,54045,8,1 +2020-04-13,Logan,West Virginia,54045,8,1 +2020-04-14,Logan,West Virginia,54045,8,1 +2020-04-15,Logan,West Virginia,54045,8,1 +2020-04-16,Logan,West Virginia,54045,8,1 +2020-04-17,Logan,West Virginia,54045,8,1 +2020-04-18,Logan,West Virginia,54045,8,1 +2020-04-19,Logan,West Virginia,54045,8,1 +2020-04-20,Logan,West Virginia,54045,8,1 +2020-04-21,Logan,West Virginia,54045,8,1 +2020-04-22,Logan,West Virginia,54045,9,1 +2020-04-23,Logan,West Virginia,54045,11,1 +2020-04-24,Logan,West Virginia,54045,11,1 +2020-04-25,Logan,West Virginia,54045,11,1 +2020-04-26,Logan,West Virginia,54045,12,1 +2020-04-27,Logan,West Virginia,54045,12,1 +2020-04-28,Logan,West Virginia,54045,12,1 +2020-04-29,Logan,West Virginia,54045,12,1 +2020-04-30,Logan,West Virginia,54045,13,1 +2020-05-01,Logan,West Virginia,54045,13,1 +2020-05-02,Logan,West Virginia,54045,13,1 +2020-05-03,Logan,West Virginia,54045,13,1 +2020-05-04,Logan,West Virginia,54045,13,1 +2020-05-05,Logan,West Virginia,54045,14,1 +2020-05-06,Logan,West Virginia,54045,15,1 +2020-05-07,Logan,West Virginia,54045,13,1 +2020-05-08,Logan,West Virginia,54045,13,1 +2020-05-09,Logan,West Virginia,54045,13,1 +2020-05-10,Logan,West Virginia,54045,13,1 +2020-05-11,Logan,West Virginia,54045,13,1 +2020-05-12,Logan,West Virginia,54045,14,1 +2020-05-13,Logan,West Virginia,54045,14,1 +2020-05-14,Logan,West Virginia,54045,14,1 +2020-05-15,Logan,West Virginia,54045,14,1 +2020-05-16,Logan,West Virginia,54045,14,1 +2020-05-17,Logan,West Virginia,54045,15,1 +2020-05-18,Logan,West Virginia,54045,15,1 +2020-05-19,Logan,West Virginia,54045,15,1 +2020-05-20,Logan,West Virginia,54045,15,1 +2020-05-21,Logan,West Virginia,54045,15,1 +2020-05-22,Logan,West Virginia,54045,16,1 +2020-05-23,Logan,West Virginia,54045,16,1 +2020-05-24,Logan,West Virginia,54045,16,1 +2020-05-25,Logan,West Virginia,54045,16,1 +2020-05-26,Logan,West Virginia,54045,16,1 +2020-05-27,Logan,West Virginia,54045,16,1 +2020-05-28,Logan,West Virginia,54045,17,1 +2020-05-29,Logan,West Virginia,54045,17,1 +2020-05-30,Logan,West Virginia,54045,17,1 +2020-05-31,Logan,West Virginia,54045,17,1 +2020-06-01,Logan,West Virginia,54045,17,1 +2020-06-02,Logan,West Virginia,54045,17,1 +2020-06-03,Logan,West Virginia,54045,19,1 +2020-06-04,Logan,West Virginia,54045,19,1 +2020-06-05,Logan,West Virginia,54045,20,1 +2020-06-06,Logan,West Virginia,54045,20,1 +2020-06-07,Logan,West Virginia,54045,20,1 +2020-06-08,Logan,West Virginia,54045,20,1 +2020-06-09,Logan,West Virginia,54045,20,1 +2020-06-10,Logan,West Virginia,54045,20,1 +2020-06-11,Logan,West Virginia,54045,21,1 +2020-06-12,Logan,West Virginia,54045,21,1 +2020-06-13,Logan,West Virginia,54045,21,1 +2020-06-14,Logan,West Virginia,54045,21,1 +2020-06-15,Logan,West Virginia,54045,21,1 +2020-06-16,Logan,West Virginia,54045,21,1 +2020-06-17,Logan,West Virginia,54045,21,1 +2020-06-18,Logan,West Virginia,54045,21,1 +2020-06-19,Logan,West Virginia,54045,21,1 +2020-06-20,Logan,West Virginia,54045,21,1 +2020-06-21,Logan,West Virginia,54045,21,1 +2020-06-22,Logan,West Virginia,54045,21,1 +2020-06-23,Logan,West Virginia,54045,21,1 +2020-06-24,Logan,West Virginia,54045,21,1 +2020-06-25,Logan,West Virginia,54045,21,1 +2020-06-26,Logan,West Virginia,54045,22,1 +2020-06-27,Logan,West Virginia,54045,22,1 +2020-06-28,Logan,West Virginia,54045,23,1 +2020-06-29,Logan,West Virginia,54045,23,1 +2020-06-30,Logan,West Virginia,54045,22,1 +2020-07-01,Logan,West Virginia,54045,24,1 +2020-07-02,Logan,West Virginia,54045,25,1 +2020-07-03,Logan,West Virginia,54045,26,1 +2020-07-04,Logan,West Virginia,54045,26,1 +2020-07-05,Logan,West Virginia,54045,26,1 +2020-07-06,Logan,West Virginia,54045,26,1 +2020-07-07,Logan,West Virginia,54045,28,1 +2020-07-08,Logan,West Virginia,54045,30,1 +2020-07-09,Logan,West Virginia,54045,31,1 +2020-04-07,McDowell,West Virginia,54047,2,0 +2020-04-08,McDowell,West Virginia,54047,3,0 +2020-04-09,McDowell,West Virginia,54047,4,0 +2020-04-10,McDowell,West Virginia,54047,4,0 +2020-04-11,McDowell,West Virginia,54047,5,0 +2020-04-12,McDowell,West Virginia,54047,5,0 +2020-04-13,McDowell,West Virginia,54047,6,0 +2020-04-14,McDowell,West Virginia,54047,6,0 +2020-04-15,McDowell,West Virginia,54047,6,0 +2020-04-16,McDowell,West Virginia,54047,6,0 +2020-04-17,McDowell,West Virginia,54047,6,0 +2020-04-18,McDowell,West Virginia,54047,6,0 +2020-04-19,McDowell,West Virginia,54047,6,0 +2020-04-20,McDowell,West Virginia,54047,6,0 +2020-04-21,McDowell,West Virginia,54047,6,0 +2020-04-22,McDowell,West Virginia,54047,6,0 +2020-04-23,McDowell,West Virginia,54047,6,0 +2020-04-24,McDowell,West Virginia,54047,6,0 +2020-04-25,McDowell,West Virginia,54047,6,0 +2020-04-26,McDowell,West Virginia,54047,6,0 +2020-04-27,McDowell,West Virginia,54047,6,0 +2020-04-28,McDowell,West Virginia,54047,6,0 +2020-04-29,McDowell,West Virginia,54047,6,0 +2020-04-30,McDowell,West Virginia,54047,6,0 +2020-05-01,McDowell,West Virginia,54047,6,0 +2020-05-02,McDowell,West Virginia,54047,6,0 +2020-05-03,McDowell,West Virginia,54047,6,0 +2020-05-04,McDowell,West Virginia,54047,6,0 +2020-05-05,McDowell,West Virginia,54047,6,0 +2020-05-06,McDowell,West Virginia,54047,6,0 +2020-05-07,McDowell,West Virginia,54047,6,0 +2020-05-08,McDowell,West Virginia,54047,6,0 +2020-05-09,McDowell,West Virginia,54047,6,0 +2020-05-10,McDowell,West Virginia,54047,6,0 +2020-05-11,McDowell,West Virginia,54047,6,0 +2020-05-12,McDowell,West Virginia,54047,6,0 +2020-05-13,McDowell,West Virginia,54047,6,0 +2020-05-14,McDowell,West Virginia,54047,6,0 +2020-05-15,McDowell,West Virginia,54047,6,0 +2020-05-16,McDowell,West Virginia,54047,6,0 +2020-05-17,McDowell,West Virginia,54047,6,0 +2020-05-18,McDowell,West Virginia,54047,6,0 +2020-05-19,McDowell,West Virginia,54047,6,0 +2020-05-20,McDowell,West Virginia,54047,6,0 +2020-05-21,McDowell,West Virginia,54047,6,0 +2020-05-22,McDowell,West Virginia,54047,6,0 +2020-05-23,McDowell,West Virginia,54047,6,0 +2020-05-24,McDowell,West Virginia,54047,6,0 +2020-05-25,McDowell,West Virginia,54047,6,0 +2020-05-26,McDowell,West Virginia,54047,6,0 +2020-05-27,McDowell,West Virginia,54047,6,0 +2020-05-28,McDowell,West Virginia,54047,6,0 +2020-05-29,McDowell,West Virginia,54047,6,0 +2020-05-30,McDowell,West Virginia,54047,6,0 +2020-05-31,McDowell,West Virginia,54047,6,0 +2020-06-01,McDowell,West Virginia,54047,6,0 +2020-06-02,McDowell,West Virginia,54047,6,0 +2020-06-03,McDowell,West Virginia,54047,6,0 +2020-06-04,McDowell,West Virginia,54047,6,0 +2020-06-05,McDowell,West Virginia,54047,6,0 +2020-06-06,McDowell,West Virginia,54047,6,0 +2020-06-07,McDowell,West Virginia,54047,6,0 +2020-06-08,McDowell,West Virginia,54047,6,0 +2020-06-09,McDowell,West Virginia,54047,6,0 +2020-06-10,McDowell,West Virginia,54047,6,0 +2020-06-11,McDowell,West Virginia,54047,6,0 +2020-06-12,McDowell,West Virginia,54047,6,0 +2020-06-13,McDowell,West Virginia,54047,6,0 +2020-06-14,McDowell,West Virginia,54047,6,0 +2020-06-15,McDowell,West Virginia,54047,6,0 +2020-06-16,McDowell,West Virginia,54047,6,0 +2020-06-17,McDowell,West Virginia,54047,6,0 +2020-06-18,McDowell,West Virginia,54047,6,0 +2020-06-19,McDowell,West Virginia,54047,6,0 +2020-06-20,McDowell,West Virginia,54047,6,0 +2020-06-21,McDowell,West Virginia,54047,6,0 +2020-06-22,McDowell,West Virginia,54047,6,0 +2020-06-23,McDowell,West Virginia,54047,6,0 +2020-06-24,McDowell,West Virginia,54047,6,0 +2020-06-25,McDowell,West Virginia,54047,6,0 +2020-06-26,McDowell,West Virginia,54047,6,0 +2020-06-27,McDowell,West Virginia,54047,6,0 +2020-06-28,McDowell,West Virginia,54047,6,0 +2020-06-29,McDowell,West Virginia,54047,6,0 +2020-06-30,McDowell,West Virginia,54047,6,0 +2020-07-01,McDowell,West Virginia,54047,6,0 +2020-07-02,McDowell,West Virginia,54047,6,0 +2020-07-03,McDowell,West Virginia,54047,6,0 +2020-07-04,McDowell,West Virginia,54047,6,0 +2020-07-05,McDowell,West Virginia,54047,6,0 +2020-07-06,McDowell,West Virginia,54047,6,0 +2020-07-07,McDowell,West Virginia,54047,6,0 +2020-07-08,McDowell,West Virginia,54047,6,0 +2020-07-09,McDowell,West Virginia,54047,8,0 +2020-03-25,Marion,West Virginia,54049,1,0 +2020-03-26,Marion,West Virginia,54049,2,0 +2020-03-27,Marion,West Virginia,54049,3,0 +2020-03-28,Marion,West Virginia,54049,5,0 +2020-03-29,Marion,West Virginia,54049,5,1 +2020-03-30,Marion,West Virginia,54049,5,1 +2020-03-31,Marion,West Virginia,54049,5,1 +2020-04-01,Marion,West Virginia,54049,8,1 +2020-04-02,Marion,West Virginia,54049,10,1 +2020-04-03,Marion,West Virginia,54049,11,1 +2020-04-04,Marion,West Virginia,54049,13,1 +2020-04-05,Marion,West Virginia,54049,14,1 +2020-04-06,Marion,West Virginia,54049,17,1 +2020-04-07,Marion,West Virginia,54049,25,1 +2020-04-08,Marion,West Virginia,54049,29,1 +2020-04-09,Marion,West Virginia,54049,31,1 +2020-04-10,Marion,West Virginia,54049,31,1 +2020-04-11,Marion,West Virginia,54049,32,1 +2020-04-12,Marion,West Virginia,54049,34,1 +2020-04-13,Marion,West Virginia,54049,38,1 +2020-04-14,Marion,West Virginia,54049,39,2 +2020-04-15,Marion,West Virginia,54049,41,2 +2020-04-16,Marion,West Virginia,54049,39,2 +2020-04-17,Marion,West Virginia,54049,42,2 +2020-04-18,Marion,West Virginia,54049,42,2 +2020-04-19,Marion,West Virginia,54049,42,2 +2020-04-20,Marion,West Virginia,54049,43,2 +2020-04-21,Marion,West Virginia,54049,43,2 +2020-04-22,Marion,West Virginia,54049,43,2 +2020-04-23,Marion,West Virginia,54049,44,2 +2020-04-24,Marion,West Virginia,54049,44,2 +2020-04-25,Marion,West Virginia,54049,45,2 +2020-04-26,Marion,West Virginia,54049,45,2 +2020-04-27,Marion,West Virginia,54049,45,2 +2020-04-28,Marion,West Virginia,54049,45,2 +2020-04-29,Marion,West Virginia,54049,45,2 +2020-04-30,Marion,West Virginia,54049,45,2 +2020-05-01,Marion,West Virginia,54049,46,2 +2020-05-02,Marion,West Virginia,54049,46,2 +2020-05-03,Marion,West Virginia,54049,46,2 +2020-05-04,Marion,West Virginia,54049,46,2 +2020-05-05,Marion,West Virginia,54049,46,2 +2020-05-06,Marion,West Virginia,54049,46,2 +2020-05-07,Marion,West Virginia,54049,46,2 +2020-05-08,Marion,West Virginia,54049,46,2 +2020-05-09,Marion,West Virginia,54049,46,2 +2020-05-10,Marion,West Virginia,54049,46,2 +2020-05-11,Marion,West Virginia,54049,46,2 +2020-05-12,Marion,West Virginia,54049,46,2 +2020-05-13,Marion,West Virginia,54049,46,2 +2020-05-14,Marion,West Virginia,54049,46,2 +2020-05-15,Marion,West Virginia,54049,46,2 +2020-05-16,Marion,West Virginia,54049,47,2 +2020-05-17,Marion,West Virginia,54049,48,2 +2020-05-18,Marion,West Virginia,54049,48,2 +2020-05-19,Marion,West Virginia,54049,48,2 +2020-05-20,Marion,West Virginia,54049,48,2 +2020-05-21,Marion,West Virginia,54049,48,2 +2020-05-22,Marion,West Virginia,54049,48,2 +2020-05-23,Marion,West Virginia,54049,48,2 +2020-05-24,Marion,West Virginia,54049,50,2 +2020-05-25,Marion,West Virginia,54049,50,2 +2020-05-26,Marion,West Virginia,54049,50,2 +2020-05-27,Marion,West Virginia,54049,51,2 +2020-05-28,Marion,West Virginia,54049,51,2 +2020-05-29,Marion,West Virginia,54049,50,2 +2020-05-30,Marion,West Virginia,54049,50,2 +2020-05-31,Marion,West Virginia,54049,51,2 +2020-06-01,Marion,West Virginia,54049,51,2 +2020-06-02,Marion,West Virginia,54049,51,2 +2020-06-03,Marion,West Virginia,54049,51,2 +2020-06-04,Marion,West Virginia,54049,51,2 +2020-06-05,Marion,West Virginia,54049,52,2 +2020-06-06,Marion,West Virginia,54049,53,2 +2020-06-07,Marion,West Virginia,54049,53,2 +2020-06-08,Marion,West Virginia,54049,53,2 +2020-06-09,Marion,West Virginia,54049,53,2 +2020-06-10,Marion,West Virginia,54049,53,2 +2020-06-11,Marion,West Virginia,54049,53,2 +2020-06-12,Marion,West Virginia,54049,53,2 +2020-06-13,Marion,West Virginia,54049,54,2 +2020-06-14,Marion,West Virginia,54049,54,2 +2020-06-15,Marion,West Virginia,54049,53,2 +2020-06-16,Marion,West Virginia,54049,53,2 +2020-06-17,Marion,West Virginia,54049,53,2 +2020-06-18,Marion,West Virginia,54049,53,2 +2020-06-19,Marion,West Virginia,54049,53,2 +2020-06-20,Marion,West Virginia,54049,53,2 +2020-06-21,Marion,West Virginia,54049,55,2 +2020-06-22,Marion,West Virginia,54049,55,2 +2020-06-23,Marion,West Virginia,54049,55,2 +2020-06-24,Marion,West Virginia,54049,54,2 +2020-06-25,Marion,West Virginia,54049,55,2 +2020-06-26,Marion,West Virginia,54049,55,2 +2020-06-27,Marion,West Virginia,54049,56,2 +2020-06-28,Marion,West Virginia,54049,56,2 +2020-06-29,Marion,West Virginia,54049,55,2 +2020-06-30,Marion,West Virginia,54049,59,2 +2020-07-01,Marion,West Virginia,54049,61,2 +2020-07-02,Marion,West Virginia,54049,63,2 +2020-07-03,Marion,West Virginia,54049,66,2 +2020-07-04,Marion,West Virginia,54049,70,2 +2020-07-05,Marion,West Virginia,54049,82,2 +2020-07-06,Marion,West Virginia,54049,88,2 +2020-07-07,Marion,West Virginia,54049,90,2 +2020-07-08,Marion,West Virginia,54049,95,2 +2020-07-09,Marion,West Virginia,54049,96,2 +2020-03-21,Marshall,West Virginia,54051,2,0 +2020-03-22,Marshall,West Virginia,54051,2,0 +2020-03-23,Marshall,West Virginia,54051,2,0 +2020-03-24,Marshall,West Virginia,54051,2,0 +2020-03-25,Marshall,West Virginia,54051,2,0 +2020-03-26,Marshall,West Virginia,54051,3,0 +2020-03-27,Marshall,West Virginia,54051,3,0 +2020-03-28,Marshall,West Virginia,54051,4,0 +2020-03-29,Marshall,West Virginia,54051,4,0 +2020-03-30,Marshall,West Virginia,54051,4,0 +2020-03-31,Marshall,West Virginia,54051,4,0 +2020-04-01,Marshall,West Virginia,54051,4,0 +2020-04-02,Marshall,West Virginia,54051,4,0 +2020-04-03,Marshall,West Virginia,54051,4,0 +2020-04-04,Marshall,West Virginia,54051,4,0 +2020-04-05,Marshall,West Virginia,54051,5,0 +2020-04-06,Marshall,West Virginia,54051,5,0 +2020-04-07,Marshall,West Virginia,54051,5,0 +2020-04-08,Marshall,West Virginia,54051,5,0 +2020-04-09,Marshall,West Virginia,54051,5,0 +2020-04-10,Marshall,West Virginia,54051,6,0 +2020-04-11,Marshall,West Virginia,54051,6,0 +2020-04-12,Marshall,West Virginia,54051,6,0 +2020-04-13,Marshall,West Virginia,54051,6,0 +2020-04-14,Marshall,West Virginia,54051,7,0 +2020-04-15,Marshall,West Virginia,54051,7,0 +2020-04-16,Marshall,West Virginia,54051,7,0 +2020-04-17,Marshall,West Virginia,54051,8,0 +2020-04-18,Marshall,West Virginia,54051,8,0 +2020-04-19,Marshall,West Virginia,54051,8,0 +2020-04-20,Marshall,West Virginia,54051,8,0 +2020-04-21,Marshall,West Virginia,54051,8,0 +2020-04-22,Marshall,West Virginia,54051,8,0 +2020-04-23,Marshall,West Virginia,54051,8,0 +2020-04-24,Marshall,West Virginia,54051,9,0 +2020-04-25,Marshall,West Virginia,54051,9,0 +2020-04-26,Marshall,West Virginia,54051,11,0 +2020-04-27,Marshall,West Virginia,54051,11,0 +2020-04-28,Marshall,West Virginia,54051,11,0 +2020-04-29,Marshall,West Virginia,54051,11,0 +2020-04-30,Marshall,West Virginia,54051,12,0 +2020-05-01,Marshall,West Virginia,54051,13,0 +2020-05-02,Marshall,West Virginia,54051,15,0 +2020-05-03,Marshall,West Virginia,54051,16,0 +2020-05-04,Marshall,West Virginia,54051,19,0 +2020-05-05,Marshall,West Virginia,54051,19,0 +2020-05-06,Marshall,West Virginia,54051,20,0 +2020-05-07,Marshall,West Virginia,54051,20,0 +2020-05-08,Marshall,West Virginia,54051,20,0 +2020-05-09,Marshall,West Virginia,54051,20,0 +2020-05-10,Marshall,West Virginia,54051,22,0 +2020-05-11,Marshall,West Virginia,54051,22,0 +2020-05-12,Marshall,West Virginia,54051,22,0 +2020-05-13,Marshall,West Virginia,54051,23,0 +2020-05-14,Marshall,West Virginia,54051,23,0 +2020-05-15,Marshall,West Virginia,54051,23,0 +2020-05-16,Marshall,West Virginia,54051,23,0 +2020-05-17,Marshall,West Virginia,54051,24,0 +2020-05-18,Marshall,West Virginia,54051,25,0 +2020-05-19,Marshall,West Virginia,54051,25,0 +2020-05-20,Marshall,West Virginia,54051,25,0 +2020-05-21,Marshall,West Virginia,54051,27,0 +2020-05-22,Marshall,West Virginia,54051,27,0 +2020-05-23,Marshall,West Virginia,54051,27,0 +2020-05-24,Marshall,West Virginia,54051,27,0 +2020-05-25,Marshall,West Virginia,54051,27,0 +2020-05-26,Marshall,West Virginia,54051,28,0 +2020-05-27,Marshall,West Virginia,54051,28,0 +2020-05-28,Marshall,West Virginia,54051,28,0 +2020-05-29,Marshall,West Virginia,54051,28,0 +2020-05-30,Marshall,West Virginia,54051,29,0 +2020-05-31,Marshall,West Virginia,54051,30,0 +2020-06-01,Marshall,West Virginia,54051,30,0 +2020-06-02,Marshall,West Virginia,54051,30,0 +2020-06-03,Marshall,West Virginia,54051,30,0 +2020-06-04,Marshall,West Virginia,54051,30,0 +2020-06-05,Marshall,West Virginia,54051,30,0 +2020-06-06,Marshall,West Virginia,54051,31,0 +2020-06-07,Marshall,West Virginia,54051,31,0 +2020-06-08,Marshall,West Virginia,54051,32,0 +2020-06-09,Marshall,West Virginia,54051,33,0 +2020-06-10,Marshall,West Virginia,54051,33,0 +2020-06-11,Marshall,West Virginia,54051,34,0 +2020-06-12,Marshall,West Virginia,54051,37,0 +2020-06-13,Marshall,West Virginia,54051,38,0 +2020-06-14,Marshall,West Virginia,54051,38,0 +2020-06-15,Marshall,West Virginia,54051,37,0 +2020-06-16,Marshall,West Virginia,54051,38,0 +2020-06-17,Marshall,West Virginia,54051,38,0 +2020-06-18,Marshall,West Virginia,54051,37,0 +2020-06-19,Marshall,West Virginia,54051,37,0 +2020-06-20,Marshall,West Virginia,54051,37,0 +2020-06-21,Marshall,West Virginia,54051,37,0 +2020-06-22,Marshall,West Virginia,54051,39,0 +2020-06-23,Marshall,West Virginia,54051,39,0 +2020-06-24,Marshall,West Virginia,54051,39,0 +2020-06-25,Marshall,West Virginia,54051,39,0 +2020-06-26,Marshall,West Virginia,54051,41,0 +2020-06-27,Marshall,West Virginia,54051,43,0 +2020-06-28,Marshall,West Virginia,54051,42,0 +2020-06-29,Marshall,West Virginia,54051,42,0 +2020-06-30,Marshall,West Virginia,54051,40,0 +2020-07-01,Marshall,West Virginia,54051,41,0 +2020-07-02,Marshall,West Virginia,54051,41,0 +2020-07-03,Marshall,West Virginia,54051,42,0 +2020-07-04,Marshall,West Virginia,54051,42,0 +2020-07-05,Marshall,West Virginia,54051,44,0 +2020-07-06,Marshall,West Virginia,54051,44,0 +2020-07-07,Marshall,West Virginia,54051,45,0 +2020-07-08,Marshall,West Virginia,54051,49,0 +2020-07-09,Marshall,West Virginia,54051,55,0 +2020-03-26,Mason,West Virginia,54053,1,0 +2020-03-27,Mason,West Virginia,54053,3,0 +2020-03-28,Mason,West Virginia,54053,3,0 +2020-03-29,Mason,West Virginia,54053,3,0 +2020-03-30,Mason,West Virginia,54053,3,0 +2020-03-31,Mason,West Virginia,54053,3,0 +2020-04-01,Mason,West Virginia,54053,3,0 +2020-04-02,Mason,West Virginia,54053,3,0 +2020-04-03,Mason,West Virginia,54053,3,0 +2020-04-04,Mason,West Virginia,54053,4,0 +2020-04-05,Mason,West Virginia,54053,4,0 +2020-04-06,Mason,West Virginia,54053,4,0 +2020-04-07,Mason,West Virginia,54053,6,0 +2020-04-08,Mason,West Virginia,54053,6,0 +2020-04-09,Mason,West Virginia,54053,7,0 +2020-04-10,Mason,West Virginia,54053,6,0 +2020-04-11,Mason,West Virginia,54053,8,0 +2020-04-12,Mason,West Virginia,54053,8,0 +2020-04-13,Mason,West Virginia,54053,10,0 +2020-04-14,Mason,West Virginia,54053,10,0 +2020-04-15,Mason,West Virginia,54053,10,0 +2020-04-16,Mason,West Virginia,54053,10,0 +2020-04-17,Mason,West Virginia,54053,10,0 +2020-04-18,Mason,West Virginia,54053,11,0 +2020-04-19,Mason,West Virginia,54053,11,0 +2020-04-20,Mason,West Virginia,54053,10,0 +2020-04-21,Mason,West Virginia,54053,10,0 +2020-04-22,Mason,West Virginia,54053,10,0 +2020-04-23,Mason,West Virginia,54053,11,0 +2020-04-24,Mason,West Virginia,54053,11,0 +2020-04-25,Mason,West Virginia,54053,11,0 +2020-04-26,Mason,West Virginia,54053,11,0 +2020-04-27,Mason,West Virginia,54053,12,0 +2020-04-28,Mason,West Virginia,54053,12,0 +2020-04-29,Mason,West Virginia,54053,12,0 +2020-04-30,Mason,West Virginia,54053,12,0 +2020-05-01,Mason,West Virginia,54053,12,0 +2020-05-02,Mason,West Virginia,54053,12,0 +2020-05-03,Mason,West Virginia,54053,12,0 +2020-05-04,Mason,West Virginia,54053,12,0 +2020-05-05,Mason,West Virginia,54053,12,0 +2020-05-06,Mason,West Virginia,54053,12,0 +2020-05-07,Mason,West Virginia,54053,13,0 +2020-05-08,Mason,West Virginia,54053,13,0 +2020-05-09,Mason,West Virginia,54053,13,0 +2020-05-10,Mason,West Virginia,54053,13,0 +2020-05-11,Mason,West Virginia,54053,13,0 +2020-05-12,Mason,West Virginia,54053,14,0 +2020-05-13,Mason,West Virginia,54053,14,0 +2020-05-14,Mason,West Virginia,54053,14,0 +2020-05-15,Mason,West Virginia,54053,15,0 +2020-05-16,Mason,West Virginia,54053,15,0 +2020-05-17,Mason,West Virginia,54053,15,0 +2020-05-18,Mason,West Virginia,54053,15,0 +2020-05-19,Mason,West Virginia,54053,15,0 +2020-05-20,Mason,West Virginia,54053,15,0 +2020-05-21,Mason,West Virginia,54053,15,0 +2020-05-22,Mason,West Virginia,54053,15,0 +2020-05-23,Mason,West Virginia,54053,16,0 +2020-05-24,Mason,West Virginia,54053,16,0 +2020-05-25,Mason,West Virginia,54053,16,0 +2020-05-26,Mason,West Virginia,54053,15,0 +2020-05-27,Mason,West Virginia,54053,15,0 +2020-05-28,Mason,West Virginia,54053,15,0 +2020-05-29,Mason,West Virginia,54053,15,0 +2020-05-30,Mason,West Virginia,54053,15,0 +2020-05-31,Mason,West Virginia,54053,15,0 +2020-06-01,Mason,West Virginia,54053,15,0 +2020-06-02,Mason,West Virginia,54053,15,0 +2020-06-03,Mason,West Virginia,54053,15,0 +2020-06-04,Mason,West Virginia,54053,15,0 +2020-06-05,Mason,West Virginia,54053,15,0 +2020-06-06,Mason,West Virginia,54053,15,0 +2020-06-07,Mason,West Virginia,54053,15,0 +2020-06-08,Mason,West Virginia,54053,15,0 +2020-06-09,Mason,West Virginia,54053,15,0 +2020-06-10,Mason,West Virginia,54053,15,0 +2020-06-11,Mason,West Virginia,54053,15,0 +2020-06-12,Mason,West Virginia,54053,15,0 +2020-06-13,Mason,West Virginia,54053,15,0 +2020-06-14,Mason,West Virginia,54053,15,0 +2020-06-15,Mason,West Virginia,54053,15,0 +2020-06-16,Mason,West Virginia,54053,15,0 +2020-06-17,Mason,West Virginia,54053,15,0 +2020-06-18,Mason,West Virginia,54053,15,0 +2020-06-19,Mason,West Virginia,54053,15,0 +2020-06-20,Mason,West Virginia,54053,15,0 +2020-06-21,Mason,West Virginia,54053,15,0 +2020-06-22,Mason,West Virginia,54053,16,0 +2020-06-23,Mason,West Virginia,54053,16,0 +2020-06-24,Mason,West Virginia,54053,16,0 +2020-06-25,Mason,West Virginia,54053,16,0 +2020-06-26,Mason,West Virginia,54053,16,0 +2020-06-27,Mason,West Virginia,54053,16,0 +2020-06-28,Mason,West Virginia,54053,16,0 +2020-06-29,Mason,West Virginia,54053,17,0 +2020-06-30,Mason,West Virginia,54053,18,0 +2020-07-01,Mason,West Virginia,54053,19,0 +2020-07-02,Mason,West Virginia,54053,19,0 +2020-07-03,Mason,West Virginia,54053,19,0 +2020-07-04,Mason,West Virginia,54053,20,0 +2020-07-05,Mason,West Virginia,54053,22,0 +2020-07-06,Mason,West Virginia,54053,21,0 +2020-07-07,Mason,West Virginia,54053,21,0 +2020-07-08,Mason,West Virginia,54053,21,0 +2020-07-09,Mason,West Virginia,54053,23,0 +2020-03-18,Mercer,West Virginia,54055,1,0 +2020-03-19,Mercer,West Virginia,54055,1,0 +2020-03-20,Mercer,West Virginia,54055,1,0 +2020-03-21,Mercer,West Virginia,54055,2,0 +2020-03-22,Mercer,West Virginia,54055,2,0 +2020-03-23,Mercer,West Virginia,54055,2,0 +2020-03-24,Mercer,West Virginia,54055,2,0 +2020-03-25,Mercer,West Virginia,54055,2,0 +2020-03-26,Mercer,West Virginia,54055,2,0 +2020-03-27,Mercer,West Virginia,54055,2,0 +2020-03-28,Mercer,West Virginia,54055,2,0 +2020-03-29,Mercer,West Virginia,54055,2,0 +2020-03-30,Mercer,West Virginia,54055,2,0 +2020-03-31,Mercer,West Virginia,54055,2,0 +2020-04-01,Mercer,West Virginia,54055,2,0 +2020-04-02,Mercer,West Virginia,54055,3,0 +2020-04-03,Mercer,West Virginia,54055,3,0 +2020-04-04,Mercer,West Virginia,54055,3,0 +2020-04-05,Mercer,West Virginia,54055,3,0 +2020-04-06,Mercer,West Virginia,54055,4,0 +2020-04-07,Mercer,West Virginia,54055,5,0 +2020-04-08,Mercer,West Virginia,54055,6,0 +2020-04-09,Mercer,West Virginia,54055,7,0 +2020-04-10,Mercer,West Virginia,54055,7,0 +2020-04-11,Mercer,West Virginia,54055,8,0 +2020-04-12,Mercer,West Virginia,54055,8,0 +2020-04-13,Mercer,West Virginia,54055,8,0 +2020-04-14,Mercer,West Virginia,54055,8,0 +2020-04-15,Mercer,West Virginia,54055,8,0 +2020-04-16,Mercer,West Virginia,54055,8,0 +2020-04-17,Mercer,West Virginia,54055,8,0 +2020-04-18,Mercer,West Virginia,54055,8,0 +2020-04-19,Mercer,West Virginia,54055,8,0 +2020-04-20,Mercer,West Virginia,54055,8,0 +2020-04-21,Mercer,West Virginia,54055,9,0 +2020-04-22,Mercer,West Virginia,54055,9,0 +2020-04-23,Mercer,West Virginia,54055,9,0 +2020-04-24,Mercer,West Virginia,54055,9,0 +2020-04-25,Mercer,West Virginia,54055,9,0 +2020-04-26,Mercer,West Virginia,54055,9,0 +2020-04-27,Mercer,West Virginia,54055,9,0 +2020-04-28,Mercer,West Virginia,54055,9,0 +2020-04-29,Mercer,West Virginia,54055,10,0 +2020-04-30,Mercer,West Virginia,54055,10,0 +2020-05-01,Mercer,West Virginia,54055,10,0 +2020-05-02,Mercer,West Virginia,54055,10,0 +2020-05-03,Mercer,West Virginia,54055,10,0 +2020-05-04,Mercer,West Virginia,54055,11,0 +2020-05-05,Mercer,West Virginia,54055,11,0 +2020-05-06,Mercer,West Virginia,54055,11,0 +2020-05-07,Mercer,West Virginia,54055,11,0 +2020-05-08,Mercer,West Virginia,54055,11,0 +2020-05-09,Mercer,West Virginia,54055,11,0 +2020-05-10,Mercer,West Virginia,54055,11,0 +2020-05-11,Mercer,West Virginia,54055,11,0 +2020-05-12,Mercer,West Virginia,54055,12,0 +2020-05-13,Mercer,West Virginia,54055,12,0 +2020-05-14,Mercer,West Virginia,54055,12,0 +2020-05-15,Mercer,West Virginia,54055,12,0 +2020-05-16,Mercer,West Virginia,54055,12,0 +2020-05-17,Mercer,West Virginia,54055,12,0 +2020-05-18,Mercer,West Virginia,54055,13,0 +2020-05-19,Mercer,West Virginia,54055,13,0 +2020-05-20,Mercer,West Virginia,54055,13,0 +2020-05-21,Mercer,West Virginia,54055,13,0 +2020-05-22,Mercer,West Virginia,54055,13,0 +2020-05-23,Mercer,West Virginia,54055,13,0 +2020-05-24,Mercer,West Virginia,54055,13,0 +2020-05-25,Mercer,West Virginia,54055,13,0 +2020-05-26,Mercer,West Virginia,54055,13,0 +2020-05-27,Mercer,West Virginia,54055,13,0 +2020-05-28,Mercer,West Virginia,54055,13,0 +2020-05-29,Mercer,West Virginia,54055,13,0 +2020-05-30,Mercer,West Virginia,54055,13,0 +2020-05-31,Mercer,West Virginia,54055,13,0 +2020-06-01,Mercer,West Virginia,54055,13,0 +2020-06-02,Mercer,West Virginia,54055,13,0 +2020-06-03,Mercer,West Virginia,54055,13,0 +2020-06-04,Mercer,West Virginia,54055,13,0 +2020-06-05,Mercer,West Virginia,54055,13,0 +2020-06-06,Mercer,West Virginia,54055,13,0 +2020-06-07,Mercer,West Virginia,54055,13,0 +2020-06-08,Mercer,West Virginia,54055,13,0 +2020-06-09,Mercer,West Virginia,54055,13,0 +2020-06-10,Mercer,West Virginia,54055,13,0 +2020-06-11,Mercer,West Virginia,54055,13,0 +2020-06-12,Mercer,West Virginia,54055,13,0 +2020-06-13,Mercer,West Virginia,54055,14,0 +2020-06-14,Mercer,West Virginia,54055,14,0 +2020-06-15,Mercer,West Virginia,54055,14,0 +2020-06-16,Mercer,West Virginia,54055,14,0 +2020-06-17,Mercer,West Virginia,54055,15,0 +2020-06-18,Mercer,West Virginia,54055,16,0 +2020-06-19,Mercer,West Virginia,54055,16,0 +2020-06-20,Mercer,West Virginia,54055,19,0 +2020-06-21,Mercer,West Virginia,54055,22,0 +2020-06-22,Mercer,West Virginia,54055,22,0 +2020-06-23,Mercer,West Virginia,54055,23,0 +2020-06-24,Mercer,West Virginia,54055,27,0 +2020-06-25,Mercer,West Virginia,54055,30,0 +2020-06-26,Mercer,West Virginia,54055,31,0 +2020-06-27,Mercer,West Virginia,54055,33,0 +2020-06-28,Mercer,West Virginia,54055,36,0 +2020-06-29,Mercer,West Virginia,54055,37,0 +2020-06-30,Mercer,West Virginia,54055,39,0 +2020-07-01,Mercer,West Virginia,54055,44,0 +2020-07-02,Mercer,West Virginia,54055,45,0 +2020-07-03,Mercer,West Virginia,54055,45,0 +2020-07-04,Mercer,West Virginia,54055,48,0 +2020-07-05,Mercer,West Virginia,54055,50,0 +2020-07-06,Mercer,West Virginia,54055,57,0 +2020-07-07,Mercer,West Virginia,54055,57,0 +2020-07-08,Mercer,West Virginia,54055,59,0 +2020-07-09,Mercer,West Virginia,54055,61,0 +2020-04-03,Mineral,West Virginia,54057,2,0 +2020-04-04,Mineral,West Virginia,54057,2,0 +2020-04-05,Mineral,West Virginia,54057,2,0 +2020-04-06,Mineral,West Virginia,54057,2,0 +2020-04-07,Mineral,West Virginia,54057,3,0 +2020-04-08,Mineral,West Virginia,54057,3,0 +2020-04-09,Mineral,West Virginia,54057,3,0 +2020-04-10,Mineral,West Virginia,54057,3,0 +2020-04-11,Mineral,West Virginia,54057,4,0 +2020-04-12,Mineral,West Virginia,54057,4,0 +2020-04-13,Mineral,West Virginia,54057,5,0 +2020-04-14,Mineral,West Virginia,54057,5,0 +2020-04-15,Mineral,West Virginia,54057,6,0 +2020-04-16,Mineral,West Virginia,54057,7,0 +2020-04-17,Mineral,West Virginia,54057,8,0 +2020-04-18,Mineral,West Virginia,54057,8,0 +2020-04-19,Mineral,West Virginia,54057,8,0 +2020-04-20,Mineral,West Virginia,54057,9,0 +2020-04-21,Mineral,West Virginia,54057,10,0 +2020-04-22,Mineral,West Virginia,54057,10,0 +2020-04-23,Mineral,West Virginia,54057,11,0 +2020-04-24,Mineral,West Virginia,54057,12,0 +2020-04-25,Mineral,West Virginia,54057,12,0 +2020-04-26,Mineral,West Virginia,54057,15,0 +2020-04-27,Mineral,West Virginia,54057,14,0 +2020-04-28,Mineral,West Virginia,54057,15,0 +2020-04-29,Mineral,West Virginia,54057,15,0 +2020-04-30,Mineral,West Virginia,54057,17,0 +2020-05-01,Mineral,West Virginia,54057,18,0 +2020-05-02,Mineral,West Virginia,54057,18,0 +2020-05-03,Mineral,West Virginia,54057,18,0 +2020-05-04,Mineral,West Virginia,54057,18,0 +2020-05-05,Mineral,West Virginia,54057,18,0 +2020-05-06,Mineral,West Virginia,54057,20,0 +2020-05-07,Mineral,West Virginia,54057,20,0 +2020-05-08,Mineral,West Virginia,54057,20,0 +2020-05-09,Mineral,West Virginia,54057,20,0 +2020-05-10,Mineral,West Virginia,54057,23,0 +2020-05-11,Mineral,West Virginia,54057,22,0 +2020-05-12,Mineral,West Virginia,54057,23,0 +2020-05-13,Mineral,West Virginia,54057,26,0 +2020-05-14,Mineral,West Virginia,54057,26,0 +2020-05-15,Mineral,West Virginia,54057,26,0 +2020-05-16,Mineral,West Virginia,54057,27,0 +2020-05-17,Mineral,West Virginia,54057,28,0 +2020-05-18,Mineral,West Virginia,54057,29,0 +2020-05-19,Mineral,West Virginia,54057,29,0 +2020-05-20,Mineral,West Virginia,54057,34,0 +2020-05-21,Mineral,West Virginia,54057,35,0 +2020-05-22,Mineral,West Virginia,54057,38,0 +2020-05-23,Mineral,West Virginia,54057,38,0 +2020-05-24,Mineral,West Virginia,54057,38,0 +2020-05-25,Mineral,West Virginia,54057,38,1 +2020-05-26,Mineral,West Virginia,54057,40,1 +2020-05-27,Mineral,West Virginia,54057,41,1 +2020-05-28,Mineral,West Virginia,54057,44,1 +2020-05-29,Mineral,West Virginia,54057,44,1 +2020-05-30,Mineral,West Virginia,54057,44,1 +2020-05-31,Mineral,West Virginia,54057,46,1 +2020-06-01,Mineral,West Virginia,54057,47,1 +2020-06-02,Mineral,West Virginia,54057,47,1 +2020-06-03,Mineral,West Virginia,54057,47,1 +2020-06-04,Mineral,West Virginia,54057,48,1 +2020-06-05,Mineral,West Virginia,54057,50,1 +2020-06-06,Mineral,West Virginia,54057,51,1 +2020-06-07,Mineral,West Virginia,54057,50,1 +2020-06-08,Mineral,West Virginia,54057,50,1 +2020-06-09,Mineral,West Virginia,54057,51,1 +2020-06-10,Mineral,West Virginia,54057,51,1 +2020-06-11,Mineral,West Virginia,54057,51,2 +2020-06-12,Mineral,West Virginia,54057,51,2 +2020-06-13,Mineral,West Virginia,54057,51,2 +2020-06-14,Mineral,West Virginia,54057,51,2 +2020-06-15,Mineral,West Virginia,54057,51,2 +2020-06-16,Mineral,West Virginia,54057,51,2 +2020-06-17,Mineral,West Virginia,54057,52,2 +2020-06-18,Mineral,West Virginia,54057,52,2 +2020-06-19,Mineral,West Virginia,54057,53,2 +2020-06-20,Mineral,West Virginia,54057,53,2 +2020-06-21,Mineral,West Virginia,54057,53,2 +2020-06-22,Mineral,West Virginia,54057,53,3 +2020-06-23,Mineral,West Virginia,54057,54,3 +2020-06-24,Mineral,West Virginia,54057,54,3 +2020-06-25,Mineral,West Virginia,54057,54,3 +2020-06-26,Mineral,West Virginia,54057,54,3 +2020-06-27,Mineral,West Virginia,54057,55,3 +2020-06-28,Mineral,West Virginia,54057,55,3 +2020-06-29,Mineral,West Virginia,54057,56,3 +2020-06-30,Mineral,West Virginia,54057,56,3 +2020-07-01,Mineral,West Virginia,54057,57,3 +2020-07-02,Mineral,West Virginia,54057,57,3 +2020-07-03,Mineral,West Virginia,54057,57,3 +2020-07-04,Mineral,West Virginia,54057,57,3 +2020-07-05,Mineral,West Virginia,54057,58,3 +2020-07-06,Mineral,West Virginia,54057,58,3 +2020-07-07,Mineral,West Virginia,54057,58,3 +2020-07-08,Mineral,West Virginia,54057,61,3 +2020-07-09,Mineral,West Virginia,54057,62,3 +2020-04-12,Mingo,West Virginia,54059,1,0 +2020-04-13,Mingo,West Virginia,54059,1,0 +2020-04-14,Mingo,West Virginia,54059,1,0 +2020-04-15,Mingo,West Virginia,54059,1,1 +2020-04-16,Mingo,West Virginia,54059,2,1 +2020-04-17,Mingo,West Virginia,54059,2,1 +2020-04-18,Mingo,West Virginia,54059,2,1 +2020-04-19,Mingo,West Virginia,54059,2,1 +2020-04-20,Mingo,West Virginia,54059,2,1 +2020-04-21,Mingo,West Virginia,54059,2,1 +2020-04-22,Mingo,West Virginia,54059,2,1 +2020-04-23,Mingo,West Virginia,54059,2,1 +2020-04-24,Mingo,West Virginia,54059,2,1 +2020-04-25,Mingo,West Virginia,54059,2,1 +2020-04-26,Mingo,West Virginia,54059,2,1 +2020-04-27,Mingo,West Virginia,54059,2,1 +2020-04-28,Mingo,West Virginia,54059,2,1 +2020-04-29,Mingo,West Virginia,54059,2,1 +2020-04-30,Mingo,West Virginia,54059,2,1 +2020-05-01,Mingo,West Virginia,54059,2,1 +2020-05-02,Mingo,West Virginia,54059,2,1 +2020-05-03,Mingo,West Virginia,54059,2,1 +2020-05-04,Mingo,West Virginia,54059,2,1 +2020-05-05,Mingo,West Virginia,54059,2,1 +2020-05-06,Mingo,West Virginia,54059,2,1 +2020-05-07,Mingo,West Virginia,54059,2,1 +2020-05-08,Mingo,West Virginia,54059,2,1 +2020-05-09,Mingo,West Virginia,54059,2,1 +2020-05-10,Mingo,West Virginia,54059,2,1 +2020-05-11,Mingo,West Virginia,54059,3,1 +2020-05-12,Mingo,West Virginia,54059,3,1 +2020-05-13,Mingo,West Virginia,54059,3,1 +2020-05-14,Mingo,West Virginia,54059,3,1 +2020-05-15,Mingo,West Virginia,54059,3,1 +2020-05-16,Mingo,West Virginia,54059,4,1 +2020-05-17,Mingo,West Virginia,54059,4,1 +2020-05-18,Mingo,West Virginia,54059,3,1 +2020-05-19,Mingo,West Virginia,54059,3,1 +2020-05-20,Mingo,West Virginia,54059,3,1 +2020-05-21,Mingo,West Virginia,54059,3,1 +2020-05-22,Mingo,West Virginia,54059,4,1 +2020-05-23,Mingo,West Virginia,54059,5,1 +2020-05-24,Mingo,West Virginia,54059,5,1 +2020-05-25,Mingo,West Virginia,54059,5,1 +2020-05-26,Mingo,West Virginia,54059,5,1 +2020-05-27,Mingo,West Virginia,54059,6,1 +2020-05-28,Mingo,West Virginia,54059,6,1 +2020-05-29,Mingo,West Virginia,54059,6,1 +2020-05-30,Mingo,West Virginia,54059,6,1 +2020-05-31,Mingo,West Virginia,54059,7,1 +2020-06-01,Mingo,West Virginia,54059,7,1 +2020-06-02,Mingo,West Virginia,54059,7,1 +2020-06-03,Mingo,West Virginia,54059,8,1 +2020-06-04,Mingo,West Virginia,54059,8,1 +2020-06-05,Mingo,West Virginia,54059,8,1 +2020-06-06,Mingo,West Virginia,54059,8,1 +2020-06-07,Mingo,West Virginia,54059,8,1 +2020-06-08,Mingo,West Virginia,54059,9,1 +2020-06-09,Mingo,West Virginia,54059,9,1 +2020-06-10,Mingo,West Virginia,54059,10,1 +2020-06-11,Mingo,West Virginia,54059,11,1 +2020-06-12,Mingo,West Virginia,54059,12,2 +2020-06-13,Mingo,West Virginia,54059,12,2 +2020-06-14,Mingo,West Virginia,54059,12,2 +2020-06-15,Mingo,West Virginia,54059,12,2 +2020-06-16,Mingo,West Virginia,54059,12,2 +2020-06-17,Mingo,West Virginia,54059,12,2 +2020-06-18,Mingo,West Virginia,54059,12,2 +2020-06-19,Mingo,West Virginia,54059,14,2 +2020-06-20,Mingo,West Virginia,54059,14,2 +2020-06-21,Mingo,West Virginia,54059,14,2 +2020-06-22,Mingo,West Virginia,54059,15,2 +2020-06-23,Mingo,West Virginia,54059,15,2 +2020-06-24,Mingo,West Virginia,54059,15,2 +2020-06-25,Mingo,West Virginia,54059,16,2 +2020-06-26,Mingo,West Virginia,54059,16,2 +2020-06-27,Mingo,West Virginia,54059,17,2 +2020-06-28,Mingo,West Virginia,54059,17,2 +2020-06-29,Mingo,West Virginia,54059,18,2 +2020-06-30,Mingo,West Virginia,54059,20,2 +2020-07-01,Mingo,West Virginia,54059,23,2 +2020-07-02,Mingo,West Virginia,54059,22,2 +2020-07-03,Mingo,West Virginia,54059,22,2 +2020-07-04,Mingo,West Virginia,54059,23,2 +2020-07-05,Mingo,West Virginia,54059,23,2 +2020-07-06,Mingo,West Virginia,54059,23,2 +2020-07-07,Mingo,West Virginia,54059,22,2 +2020-07-08,Mingo,West Virginia,54059,26,2 +2020-07-09,Mingo,West Virginia,54059,27,2 +2020-03-19,Monongalia,West Virginia,54061,1,0 +2020-03-20,Monongalia,West Virginia,54061,1,0 +2020-03-21,Monongalia,West Virginia,54061,1,0 +2020-03-22,Monongalia,West Virginia,54061,2,0 +2020-03-23,Monongalia,West Virginia,54061,2,0 +2020-03-24,Monongalia,West Virginia,54061,16,0 +2020-03-25,Monongalia,West Virginia,54061,18,0 +2020-03-26,Monongalia,West Virginia,54061,24,0 +2020-03-27,Monongalia,West Virginia,54061,23,0 +2020-03-28,Monongalia,West Virginia,54061,29,0 +2020-03-29,Monongalia,West Virginia,54061,30,0 +2020-03-30,Monongalia,West Virginia,54061,31,0 +2020-03-31,Monongalia,West Virginia,54061,31,0 +2020-04-01,Monongalia,West Virginia,54061,32,0 +2020-04-02,Monongalia,West Virginia,54061,35,0 +2020-04-03,Monongalia,West Virginia,54061,40,0 +2020-04-04,Monongalia,West Virginia,54061,40,0 +2020-04-05,Monongalia,West Virginia,54061,49,1 +2020-04-06,Monongalia,West Virginia,54061,53,1 +2020-04-07,Monongalia,West Virginia,54061,60,1 +2020-04-08,Monongalia,West Virginia,54061,73,1 +2020-04-09,Monongalia,West Virginia,54061,76,2 +2020-04-10,Monongalia,West Virginia,54061,76,2 +2020-04-11,Monongalia,West Virginia,54061,83,3 +2020-04-12,Monongalia,West Virginia,54061,83,4 +2020-04-13,Monongalia,West Virginia,54061,81,4 +2020-04-14,Monongalia,West Virginia,54061,82,4 +2020-04-15,Monongalia,West Virginia,54061,83,4 +2020-04-16,Monongalia,West Virginia,54061,83,4 +2020-04-17,Monongalia,West Virginia,54061,83,4 +2020-04-18,Monongalia,West Virginia,54061,84,4 +2020-04-19,Monongalia,West Virginia,54061,87,4 +2020-04-20,Monongalia,West Virginia,54061,89,5 +2020-04-21,Monongalia,West Virginia,54061,89,5 +2020-04-22,Monongalia,West Virginia,54061,90,5 +2020-04-23,Monongalia,West Virginia,54061,89,4 +2020-04-24,Monongalia,West Virginia,54061,97,4 +2020-04-25,Monongalia,West Virginia,54061,97,4 +2020-04-26,Monongalia,West Virginia,54061,101,4 +2020-04-27,Monongalia,West Virginia,54061,102,4 +2020-04-28,Monongalia,West Virginia,54061,103,4 +2020-04-29,Monongalia,West Virginia,54061,102,4 +2020-04-30,Monongalia,West Virginia,54061,102,4 +2020-05-01,Monongalia,West Virginia,54061,101,4 +2020-05-02,Monongalia,West Virginia,54061,105,5 +2020-05-03,Monongalia,West Virginia,54061,105,5 +2020-05-04,Monongalia,West Virginia,54061,107,5 +2020-05-05,Monongalia,West Virginia,54061,108,5 +2020-05-06,Monongalia,West Virginia,54061,111,5 +2020-05-07,Monongalia,West Virginia,54061,111,5 +2020-05-08,Monongalia,West Virginia,54061,111,5 +2020-05-09,Monongalia,West Virginia,54061,112,5 +2020-05-10,Monongalia,West Virginia,54061,114,5 +2020-05-11,Monongalia,West Virginia,54061,113,5 +2020-05-12,Monongalia,West Virginia,54061,114,5 +2020-05-13,Monongalia,West Virginia,54061,114,5 +2020-05-14,Monongalia,West Virginia,54061,114,5 +2020-05-15,Monongalia,West Virginia,54061,114,5 +2020-05-16,Monongalia,West Virginia,54061,115,5 +2020-05-17,Monongalia,West Virginia,54061,116,5 +2020-05-18,Monongalia,West Virginia,54061,116,5 +2020-05-19,Monongalia,West Virginia,54061,116,5 +2020-05-20,Monongalia,West Virginia,54061,118,5 +2020-05-21,Monongalia,West Virginia,54061,119,5 +2020-05-22,Monongalia,West Virginia,54061,120,5 +2020-05-23,Monongalia,West Virginia,54061,121,5 +2020-05-24,Monongalia,West Virginia,54061,124,5 +2020-05-25,Monongalia,West Virginia,54061,122,5 +2020-05-26,Monongalia,West Virginia,54061,128,5 +2020-05-27,Monongalia,West Virginia,54061,129,4 +2020-05-28,Monongalia,West Virginia,54061,131,4 +2020-05-29,Monongalia,West Virginia,54061,133,5 +2020-05-30,Monongalia,West Virginia,54061,133,5 +2020-05-31,Monongalia,West Virginia,54061,133,5 +2020-06-01,Monongalia,West Virginia,54061,133,4 +2020-06-02,Monongalia,West Virginia,54061,137,5 +2020-06-03,Monongalia,West Virginia,54061,135,5 +2020-06-04,Monongalia,West Virginia,54061,135,5 +2020-06-05,Monongalia,West Virginia,54061,138,5 +2020-06-06,Monongalia,West Virginia,54061,140,5 +2020-06-07,Monongalia,West Virginia,54061,141,5 +2020-06-08,Monongalia,West Virginia,54061,141,5 +2020-06-09,Monongalia,West Virginia,54061,142,5 +2020-06-10,Monongalia,West Virginia,54061,142,5 +2020-06-11,Monongalia,West Virginia,54061,142,5 +2020-06-12,Monongalia,West Virginia,54061,142,5 +2020-06-13,Monongalia,West Virginia,54061,143,5 +2020-06-14,Monongalia,West Virginia,54061,145,5 +2020-06-15,Monongalia,West Virginia,54061,145,5 +2020-06-16,Monongalia,West Virginia,54061,145,5 +2020-06-17,Monongalia,West Virginia,54061,147,5 +2020-06-18,Monongalia,West Virginia,54061,147,5 +2020-06-19,Monongalia,West Virginia,54061,149,5 +2020-06-20,Monongalia,West Virginia,54061,150,5 +2020-06-21,Monongalia,West Virginia,54061,151,5 +2020-06-22,Monongalia,West Virginia,54061,158,5 +2020-06-23,Monongalia,West Virginia,54061,160,5 +2020-06-24,Monongalia,West Virginia,54061,159,5 +2020-06-25,Monongalia,West Virginia,54061,161,5 +2020-06-26,Monongalia,West Virginia,54061,164,5 +2020-06-27,Monongalia,West Virginia,54061,166,5 +2020-06-28,Monongalia,West Virginia,54061,167,5 +2020-06-29,Monongalia,West Virginia,54061,171,5 +2020-06-30,Monongalia,West Virginia,54061,171,5 +2020-07-01,Monongalia,West Virginia,54061,180,5 +2020-07-02,Monongalia,West Virginia,54061,193,5 +2020-07-03,Monongalia,West Virginia,54061,207,5 +2020-07-04,Monongalia,West Virginia,54061,230,5 +2020-07-05,Monongalia,West Virginia,54061,270,5 +2020-07-06,Monongalia,West Virginia,54061,299,5 +2020-07-07,Monongalia,West Virginia,54061,309,5 +2020-07-08,Monongalia,West Virginia,54061,395,5 +2020-07-09,Monongalia,West Virginia,54061,419,5 +2020-04-11,Monroe,West Virginia,54063,1,0 +2020-04-12,Monroe,West Virginia,54063,1,0 +2020-04-13,Monroe,West Virginia,54063,1,0 +2020-04-14,Monroe,West Virginia,54063,1,0 +2020-04-15,Monroe,West Virginia,54063,1,0 +2020-04-16,Monroe,West Virginia,54063,2,0 +2020-04-17,Monroe,West Virginia,54063,2,0 +2020-04-18,Monroe,West Virginia,54063,4,0 +2020-04-19,Monroe,West Virginia,54063,5,0 +2020-04-20,Monroe,West Virginia,54063,5,0 +2020-04-21,Monroe,West Virginia,54063,5,0 +2020-04-22,Monroe,West Virginia,54063,5,0 +2020-04-23,Monroe,West Virginia,54063,5,0 +2020-04-24,Monroe,West Virginia,54063,5,0 +2020-04-25,Monroe,West Virginia,54063,5,0 +2020-04-26,Monroe,West Virginia,54063,5,0 +2020-04-27,Monroe,West Virginia,54063,5,0 +2020-04-28,Monroe,West Virginia,54063,5,0 +2020-04-29,Monroe,West Virginia,54063,5,0 +2020-04-30,Monroe,West Virginia,54063,5,0 +2020-05-01,Monroe,West Virginia,54063,5,0 +2020-05-02,Monroe,West Virginia,54063,5,0 +2020-05-03,Monroe,West Virginia,54063,5,0 +2020-05-04,Monroe,West Virginia,54063,5,0 +2020-05-05,Monroe,West Virginia,54063,6,0 +2020-05-06,Monroe,West Virginia,54063,6,0 +2020-05-07,Monroe,West Virginia,54063,6,0 +2020-05-08,Monroe,West Virginia,54063,6,0 +2020-05-09,Monroe,West Virginia,54063,6,0 +2020-05-10,Monroe,West Virginia,54063,6,0 +2020-05-11,Monroe,West Virginia,54063,6,0 +2020-05-12,Monroe,West Virginia,54063,6,0 +2020-05-13,Monroe,West Virginia,54063,6,0 +2020-05-14,Monroe,West Virginia,54063,6,0 +2020-05-15,Monroe,West Virginia,54063,6,0 +2020-05-16,Monroe,West Virginia,54063,6,0 +2020-05-17,Monroe,West Virginia,54063,6,0 +2020-05-18,Monroe,West Virginia,54063,6,0 +2020-05-19,Monroe,West Virginia,54063,6,0 +2020-05-20,Monroe,West Virginia,54063,6,0 +2020-05-21,Monroe,West Virginia,54063,6,0 +2020-05-22,Monroe,West Virginia,54063,7,0 +2020-05-23,Monroe,West Virginia,54063,7,0 +2020-05-24,Monroe,West Virginia,54063,7,0 +2020-05-25,Monroe,West Virginia,54063,7,0 +2020-05-26,Monroe,West Virginia,54063,7,0 +2020-05-27,Monroe,West Virginia,54063,7,0 +2020-05-28,Monroe,West Virginia,54063,7,0 +2020-05-29,Monroe,West Virginia,54063,7,0 +2020-05-30,Monroe,West Virginia,54063,7,0 +2020-05-31,Monroe,West Virginia,54063,7,0 +2020-06-01,Monroe,West Virginia,54063,7,0 +2020-06-02,Monroe,West Virginia,54063,8,0 +2020-06-03,Monroe,West Virginia,54063,8,0 +2020-06-04,Monroe,West Virginia,54063,8,0 +2020-06-05,Monroe,West Virginia,54063,8,0 +2020-06-06,Monroe,West Virginia,54063,8,0 +2020-06-07,Monroe,West Virginia,54063,8,0 +2020-06-08,Monroe,West Virginia,54063,8,0 +2020-06-09,Monroe,West Virginia,54063,8,0 +2020-06-10,Monroe,West Virginia,54063,8,0 +2020-06-11,Monroe,West Virginia,54063,8,0 +2020-06-12,Monroe,West Virginia,54063,9,0 +2020-06-13,Monroe,West Virginia,54063,9,0 +2020-06-14,Monroe,West Virginia,54063,9,0 +2020-06-15,Monroe,West Virginia,54063,9,0 +2020-06-16,Monroe,West Virginia,54063,9,0 +2020-06-17,Monroe,West Virginia,54063,9,0 +2020-06-18,Monroe,West Virginia,54063,9,0 +2020-06-19,Monroe,West Virginia,54063,9,0 +2020-06-20,Monroe,West Virginia,54063,9,0 +2020-06-21,Monroe,West Virginia,54063,9,0 +2020-06-22,Monroe,West Virginia,54063,9,0 +2020-06-23,Monroe,West Virginia,54063,9,0 +2020-06-24,Monroe,West Virginia,54063,9,0 +2020-06-25,Monroe,West Virginia,54063,9,0 +2020-06-26,Monroe,West Virginia,54063,10,0 +2020-06-27,Monroe,West Virginia,54063,11,0 +2020-06-28,Monroe,West Virginia,54063,11,0 +2020-06-29,Monroe,West Virginia,54063,12,0 +2020-06-30,Monroe,West Virginia,54063,12,0 +2020-07-01,Monroe,West Virginia,54063,12,0 +2020-07-02,Monroe,West Virginia,54063,14,0 +2020-07-03,Monroe,West Virginia,54063,14,0 +2020-07-04,Monroe,West Virginia,54063,15,0 +2020-07-05,Monroe,West Virginia,54063,16,0 +2020-07-06,Monroe,West Virginia,54063,16,0 +2020-07-07,Monroe,West Virginia,54063,15,0 +2020-07-08,Monroe,West Virginia,54063,15,0 +2020-07-09,Monroe,West Virginia,54063,15,0 +2020-03-29,Morgan,West Virginia,54065,1,0 +2020-03-30,Morgan,West Virginia,54065,1,0 +2020-03-31,Morgan,West Virginia,54065,1,0 +2020-04-01,Morgan,West Virginia,54065,1,0 +2020-04-02,Morgan,West Virginia,54065,1,0 +2020-04-03,Morgan,West Virginia,54065,1,0 +2020-04-04,Morgan,West Virginia,54065,1,0 +2020-04-05,Morgan,West Virginia,54065,3,0 +2020-04-06,Morgan,West Virginia,54065,3,0 +2020-04-07,Morgan,West Virginia,54065,4,0 +2020-04-08,Morgan,West Virginia,54065,4,0 +2020-04-09,Morgan,West Virginia,54065,4,0 +2020-04-10,Morgan,West Virginia,54065,4,0 +2020-04-11,Morgan,West Virginia,54065,6,0 +2020-04-12,Morgan,West Virginia,54065,6,0 +2020-04-13,Morgan,West Virginia,54065,6,0 +2020-04-14,Morgan,West Virginia,54065,6,0 +2020-04-15,Morgan,West Virginia,54065,7,0 +2020-04-16,Morgan,West Virginia,54065,7,0 +2020-04-17,Morgan,West Virginia,54065,8,0 +2020-04-18,Morgan,West Virginia,54065,8,0 +2020-04-19,Morgan,West Virginia,54065,8,0 +2020-04-20,Morgan,West Virginia,54065,8,0 +2020-04-21,Morgan,West Virginia,54065,7,0 +2020-04-22,Morgan,West Virginia,54065,7,0 +2020-04-23,Morgan,West Virginia,54065,7,0 +2020-04-24,Morgan,West Virginia,54065,9,0 +2020-04-25,Morgan,West Virginia,54065,9,0 +2020-04-26,Morgan,West Virginia,54065,9,0 +2020-04-27,Morgan,West Virginia,54065,9,0 +2020-04-28,Morgan,West Virginia,54065,9,0 +2020-04-29,Morgan,West Virginia,54065,10,0 +2020-04-30,Morgan,West Virginia,54065,11,0 +2020-05-01,Morgan,West Virginia,54065,12,0 +2020-05-02,Morgan,West Virginia,54065,13,0 +2020-05-03,Morgan,West Virginia,54065,13,0 +2020-05-04,Morgan,West Virginia,54065,13,0 +2020-05-05,Morgan,West Virginia,54065,14,0 +2020-05-06,Morgan,West Virginia,54065,14,0 +2020-05-07,Morgan,West Virginia,54065,17,0 +2020-05-08,Morgan,West Virginia,54065,16,0 +2020-05-09,Morgan,West Virginia,54065,16,0 +2020-05-10,Morgan,West Virginia,54065,16,0 +2020-05-11,Morgan,West Virginia,54065,17,0 +2020-05-12,Morgan,West Virginia,54065,17,0 +2020-05-13,Morgan,West Virginia,54065,17,0 +2020-05-14,Morgan,West Virginia,54065,17,0 +2020-05-15,Morgan,West Virginia,54065,17,0 +2020-05-16,Morgan,West Virginia,54065,17,0 +2020-05-17,Morgan,West Virginia,54065,17,0 +2020-05-18,Morgan,West Virginia,54065,17,0 +2020-05-19,Morgan,West Virginia,54065,17,0 +2020-05-20,Morgan,West Virginia,54065,17,0 +2020-05-21,Morgan,West Virginia,54065,17,0 +2020-05-22,Morgan,West Virginia,54065,17,0 +2020-05-23,Morgan,West Virginia,54065,17,0 +2020-05-24,Morgan,West Virginia,54065,17,0 +2020-05-25,Morgan,West Virginia,54065,18,0 +2020-05-26,Morgan,West Virginia,54065,18,0 +2020-05-27,Morgan,West Virginia,54065,18,0 +2020-05-28,Morgan,West Virginia,54065,18,0 +2020-05-29,Morgan,West Virginia,54065,18,0 +2020-05-30,Morgan,West Virginia,54065,18,0 +2020-05-31,Morgan,West Virginia,54065,18,0 +2020-06-01,Morgan,West Virginia,54065,18,0 +2020-06-02,Morgan,West Virginia,54065,19,0 +2020-06-03,Morgan,West Virginia,54065,19,0 +2020-06-04,Morgan,West Virginia,54065,19,0 +2020-06-05,Morgan,West Virginia,54065,19,0 +2020-06-06,Morgan,West Virginia,54065,19,0 +2020-06-07,Morgan,West Virginia,54065,19,0 +2020-06-08,Morgan,West Virginia,54065,19,0 +2020-06-09,Morgan,West Virginia,54065,19,0 +2020-06-10,Morgan,West Virginia,54065,19,0 +2020-06-11,Morgan,West Virginia,54065,19,0 +2020-06-12,Morgan,West Virginia,54065,19,0 +2020-06-13,Morgan,West Virginia,54065,19,0 +2020-06-14,Morgan,West Virginia,54065,19,0 +2020-06-15,Morgan,West Virginia,54065,19,0 +2020-06-16,Morgan,West Virginia,54065,19,0 +2020-06-17,Morgan,West Virginia,54065,19,0 +2020-06-18,Morgan,West Virginia,54065,19,0 +2020-06-19,Morgan,West Virginia,54065,20,0 +2020-06-20,Morgan,West Virginia,54065,20,0 +2020-06-21,Morgan,West Virginia,54065,20,0 +2020-06-22,Morgan,West Virginia,54065,20,0 +2020-06-23,Morgan,West Virginia,54065,20,0 +2020-06-24,Morgan,West Virginia,54065,20,0 +2020-06-25,Morgan,West Virginia,54065,20,0 +2020-06-26,Morgan,West Virginia,54065,20,0 +2020-06-27,Morgan,West Virginia,54065,20,0 +2020-06-28,Morgan,West Virginia,54065,20,0 +2020-06-29,Morgan,West Virginia,54065,20,0 +2020-06-30,Morgan,West Virginia,54065,20,0 +2020-07-01,Morgan,West Virginia,54065,20,0 +2020-07-02,Morgan,West Virginia,54065,20,0 +2020-07-03,Morgan,West Virginia,54065,20,0 +2020-07-04,Morgan,West Virginia,54065,20,0 +2020-07-05,Morgan,West Virginia,54065,20,0 +2020-07-06,Morgan,West Virginia,54065,20,0 +2020-07-07,Morgan,West Virginia,54065,20,0 +2020-07-08,Morgan,West Virginia,54065,20,0 +2020-07-09,Morgan,West Virginia,54065,20,0 +2020-04-07,Nicholas,West Virginia,54067,2,0 +2020-04-08,Nicholas,West Virginia,54067,2,0 +2020-04-09,Nicholas,West Virginia,54067,2,0 +2020-04-10,Nicholas,West Virginia,54067,2,0 +2020-04-11,Nicholas,West Virginia,54067,2,0 +2020-04-12,Nicholas,West Virginia,54067,2,0 +2020-04-13,Nicholas,West Virginia,54067,2,0 +2020-04-14,Nicholas,West Virginia,54067,3,0 +2020-04-15,Nicholas,West Virginia,54067,3,0 +2020-04-16,Nicholas,West Virginia,54067,3,0 +2020-04-17,Nicholas,West Virginia,54067,3,0 +2020-04-18,Nicholas,West Virginia,54067,3,0 +2020-04-19,Nicholas,West Virginia,54067,4,0 +2020-04-20,Nicholas,West Virginia,54067,4,0 +2020-04-21,Nicholas,West Virginia,54067,4,0 +2020-04-22,Nicholas,West Virginia,54067,4,0 +2020-04-23,Nicholas,West Virginia,54067,5,0 +2020-04-24,Nicholas,West Virginia,54067,6,0 +2020-04-25,Nicholas,West Virginia,54067,6,0 +2020-04-26,Nicholas,West Virginia,54067,6,0 +2020-04-27,Nicholas,West Virginia,54067,6,0 +2020-04-28,Nicholas,West Virginia,54067,6,0 +2020-04-29,Nicholas,West Virginia,54067,6,0 +2020-04-30,Nicholas,West Virginia,54067,6,0 +2020-05-01,Nicholas,West Virginia,54067,6,0 +2020-05-02,Nicholas,West Virginia,54067,6,0 +2020-05-03,Nicholas,West Virginia,54067,6,0 +2020-05-04,Nicholas,West Virginia,54067,6,0 +2020-05-05,Nicholas,West Virginia,54067,8,0 +2020-05-06,Nicholas,West Virginia,54067,8,0 +2020-05-07,Nicholas,West Virginia,54067,8,0 +2020-05-08,Nicholas,West Virginia,54067,8,0 +2020-05-09,Nicholas,West Virginia,54067,8,0 +2020-05-10,Nicholas,West Virginia,54067,8,0 +2020-05-11,Nicholas,West Virginia,54067,8,1 +2020-05-12,Nicholas,West Virginia,54067,8,1 +2020-05-13,Nicholas,West Virginia,54067,8,1 +2020-05-14,Nicholas,West Virginia,54067,9,1 +2020-05-15,Nicholas,West Virginia,54067,9,1 +2020-05-16,Nicholas,West Virginia,54067,9,1 +2020-05-17,Nicholas,West Virginia,54067,9,1 +2020-05-18,Nicholas,West Virginia,54067,9,1 +2020-05-19,Nicholas,West Virginia,54067,9,1 +2020-05-20,Nicholas,West Virginia,54067,9,1 +2020-05-21,Nicholas,West Virginia,54067,9,1 +2020-05-22,Nicholas,West Virginia,54067,10,1 +2020-05-23,Nicholas,West Virginia,54067,10,1 +2020-05-24,Nicholas,West Virginia,54067,10,1 +2020-05-25,Nicholas,West Virginia,54067,10,1 +2020-05-26,Nicholas,West Virginia,54067,10,1 +2020-05-27,Nicholas,West Virginia,54067,10,1 +2020-05-28,Nicholas,West Virginia,54067,8,1 +2020-05-29,Nicholas,West Virginia,54067,8,1 +2020-05-30,Nicholas,West Virginia,54067,8,1 +2020-05-31,Nicholas,West Virginia,54067,8,1 +2020-06-01,Nicholas,West Virginia,54067,8,1 +2020-06-02,Nicholas,West Virginia,54067,8,1 +2020-06-03,Nicholas,West Virginia,54067,9,1 +2020-06-04,Nicholas,West Virginia,54067,9,1 +2020-06-05,Nicholas,West Virginia,54067,8,1 +2020-06-06,Nicholas,West Virginia,54067,8,1 +2020-06-07,Nicholas,West Virginia,54067,8,1 +2020-06-08,Nicholas,West Virginia,54067,7,1 +2020-06-09,Nicholas,West Virginia,54067,7,1 +2020-06-10,Nicholas,West Virginia,54067,7,1 +2020-06-11,Nicholas,West Virginia,54067,7,1 +2020-06-12,Nicholas,West Virginia,54067,7,1 +2020-06-13,Nicholas,West Virginia,54067,7,1 +2020-06-14,Nicholas,West Virginia,54067,7,1 +2020-06-15,Nicholas,West Virginia,54067,7,1 +2020-06-16,Nicholas,West Virginia,54067,7,1 +2020-06-17,Nicholas,West Virginia,54067,7,1 +2020-06-18,Nicholas,West Virginia,54067,7,1 +2020-06-19,Nicholas,West Virginia,54067,7,1 +2020-06-20,Nicholas,West Virginia,54067,7,1 +2020-06-21,Nicholas,West Virginia,54067,7,1 +2020-06-22,Nicholas,West Virginia,54067,7,1 +2020-06-23,Nicholas,West Virginia,54067,7,1 +2020-06-24,Nicholas,West Virginia,54067,8,1 +2020-06-25,Nicholas,West Virginia,54067,8,1 +2020-06-26,Nicholas,West Virginia,54067,8,1 +2020-06-27,Nicholas,West Virginia,54067,8,1 +2020-06-28,Nicholas,West Virginia,54067,8,1 +2020-06-29,Nicholas,West Virginia,54067,10,1 +2020-06-30,Nicholas,West Virginia,54067,10,1 +2020-07-01,Nicholas,West Virginia,54067,11,1 +2020-07-02,Nicholas,West Virginia,54067,12,1 +2020-07-03,Nicholas,West Virginia,54067,13,1 +2020-07-04,Nicholas,West Virginia,54067,14,1 +2020-07-05,Nicholas,West Virginia,54067,15,1 +2020-07-06,Nicholas,West Virginia,54067,15,1 +2020-07-07,Nicholas,West Virginia,54067,15,1 +2020-07-08,Nicholas,West Virginia,54067,15,1 +2020-07-09,Nicholas,West Virginia,54067,16,1 +2020-03-25,Ohio,West Virginia,54069,2,0 +2020-03-26,Ohio,West Virginia,54069,1,0 +2020-03-27,Ohio,West Virginia,54069,6,0 +2020-03-28,Ohio,West Virginia,54069,6,0 +2020-03-29,Ohio,West Virginia,54069,7,0 +2020-03-30,Ohio,West Virginia,54069,9,0 +2020-03-31,Ohio,West Virginia,54069,10,0 +2020-04-01,Ohio,West Virginia,54069,11,0 +2020-04-02,Ohio,West Virginia,54069,10,0 +2020-04-03,Ohio,West Virginia,54069,11,0 +2020-04-04,Ohio,West Virginia,54069,11,0 +2020-04-05,Ohio,West Virginia,54069,18,0 +2020-04-06,Ohio,West Virginia,54069,15,0 +2020-04-07,Ohio,West Virginia,54069,19,0 +2020-04-08,Ohio,West Virginia,54069,19,0 +2020-04-09,Ohio,West Virginia,54069,20,0 +2020-04-10,Ohio,West Virginia,54069,21,0 +2020-04-11,Ohio,West Virginia,54069,21,0 +2020-04-12,Ohio,West Virginia,54069,25,0 +2020-04-13,Ohio,West Virginia,54069,23,1 +2020-04-14,Ohio,West Virginia,54069,23,1 +2020-04-15,Ohio,West Virginia,54069,23,1 +2020-04-16,Ohio,West Virginia,54069,22,1 +2020-04-17,Ohio,West Virginia,54069,22,1 +2020-04-18,Ohio,West Virginia,54069,22,1 +2020-04-19,Ohio,West Virginia,54069,22,1 +2020-04-20,Ohio,West Virginia,54069,23,1 +2020-04-21,Ohio,West Virginia,54069,23,1 +2020-04-22,Ohio,West Virginia,54069,23,1 +2020-04-23,Ohio,West Virginia,54069,24,1 +2020-04-24,Ohio,West Virginia,54069,25,1 +2020-04-25,Ohio,West Virginia,54069,26,1 +2020-04-26,Ohio,West Virginia,54069,26,1 +2020-04-27,Ohio,West Virginia,54069,26,1 +2020-04-28,Ohio,West Virginia,54069,26,1 +2020-04-29,Ohio,West Virginia,54069,27,1 +2020-04-30,Ohio,West Virginia,54069,27,1 +2020-05-01,Ohio,West Virginia,54069,29,1 +2020-05-02,Ohio,West Virginia,54069,33,1 +2020-05-03,Ohio,West Virginia,54069,33,1 +2020-05-04,Ohio,West Virginia,54069,33,1 +2020-05-05,Ohio,West Virginia,54069,34,1 +2020-05-06,Ohio,West Virginia,54069,33,1 +2020-05-07,Ohio,West Virginia,54069,34,1 +2020-05-08,Ohio,West Virginia,54069,35,1 +2020-05-09,Ohio,West Virginia,54069,36,1 +2020-05-10,Ohio,West Virginia,54069,38,1 +2020-05-11,Ohio,West Virginia,54069,36,1 +2020-05-12,Ohio,West Virginia,54069,37,1 +2020-05-13,Ohio,West Virginia,54069,37,1 +2020-05-14,Ohio,West Virginia,54069,37,1 +2020-05-15,Ohio,West Virginia,54069,38,1 +2020-05-16,Ohio,West Virginia,54069,38,1 +2020-05-17,Ohio,West Virginia,54069,38,1 +2020-05-18,Ohio,West Virginia,54069,37,1 +2020-05-19,Ohio,West Virginia,54069,37,1 +2020-05-20,Ohio,West Virginia,54069,37,1 +2020-05-21,Ohio,West Virginia,54069,38,1 +2020-05-22,Ohio,West Virginia,54069,38,1 +2020-05-23,Ohio,West Virginia,54069,38,1 +2020-05-24,Ohio,West Virginia,54069,39,1 +2020-05-25,Ohio,West Virginia,54069,40,1 +2020-05-26,Ohio,West Virginia,54069,40,1 +2020-05-27,Ohio,West Virginia,54069,41,1 +2020-05-28,Ohio,West Virginia,54069,41,1 +2020-05-29,Ohio,West Virginia,54069,41,1 +2020-05-30,Ohio,West Virginia,54069,41,1 +2020-05-31,Ohio,West Virginia,54069,42,1 +2020-06-01,Ohio,West Virginia,54069,42,1 +2020-06-02,Ohio,West Virginia,54069,42,1 +2020-06-03,Ohio,West Virginia,54069,47,1 +2020-06-04,Ohio,West Virginia,54069,48,1 +2020-06-05,Ohio,West Virginia,54069,48,1 +2020-06-06,Ohio,West Virginia,54069,48,1 +2020-06-07,Ohio,West Virginia,54069,48,1 +2020-06-08,Ohio,West Virginia,54069,50,1 +2020-06-09,Ohio,West Virginia,54069,51,1 +2020-06-10,Ohio,West Virginia,54069,52,1 +2020-06-11,Ohio,West Virginia,54069,53,1 +2020-06-12,Ohio,West Virginia,54069,53,1 +2020-06-13,Ohio,West Virginia,54069,54,1 +2020-06-14,Ohio,West Virginia,54069,55,1 +2020-06-15,Ohio,West Virginia,54069,57,1 +2020-06-16,Ohio,West Virginia,54069,56,1 +2020-06-17,Ohio,West Virginia,54069,58,1 +2020-06-18,Ohio,West Virginia,54069,60,1 +2020-06-19,Ohio,West Virginia,54069,67,1 +2020-06-20,Ohio,West Virginia,54069,70,1 +2020-06-21,Ohio,West Virginia,54069,72,1 +2020-06-22,Ohio,West Virginia,54069,73,1 +2020-06-23,Ohio,West Virginia,54069,74,1 +2020-06-24,Ohio,West Virginia,54069,76,1 +2020-06-25,Ohio,West Virginia,54069,78,1 +2020-06-26,Ohio,West Virginia,54069,78,1 +2020-06-27,Ohio,West Virginia,54069,84,1 +2020-06-28,Ohio,West Virginia,54069,87,1 +2020-06-29,Ohio,West Virginia,54069,89,1 +2020-06-30,Ohio,West Virginia,54069,91,1 +2020-07-01,Ohio,West Virginia,54069,96,1 +2020-07-02,Ohio,West Virginia,54069,100,1 +2020-07-03,Ohio,West Virginia,54069,103,1 +2020-07-04,Ohio,West Virginia,54069,105,1 +2020-07-05,Ohio,West Virginia,54069,110,1 +2020-07-06,Ohio,West Virginia,54069,110,1 +2020-07-07,Ohio,West Virginia,54069,110,1 +2020-07-08,Ohio,West Virginia,54069,113,1 +2020-07-09,Ohio,West Virginia,54069,122,1 +2020-04-02,Pendleton,West Virginia,54071,1,0 +2020-04-03,Pendleton,West Virginia,54071,1,0 +2020-04-04,Pendleton,West Virginia,54071,1,0 +2020-04-05,Pendleton,West Virginia,54071,1,0 +2020-04-06,Pendleton,West Virginia,54071,1,0 +2020-04-07,Pendleton,West Virginia,54071,1,0 +2020-04-08,Pendleton,West Virginia,54071,1,0 +2020-04-09,Pendleton,West Virginia,54071,1,0 +2020-04-10,Pendleton,West Virginia,54071,1,0 +2020-04-11,Pendleton,West Virginia,54071,1,0 +2020-04-12,Pendleton,West Virginia,54071,1,0 +2020-04-13,Pendleton,West Virginia,54071,1,0 +2020-04-14,Pendleton,West Virginia,54071,1,0 +2020-04-15,Pendleton,West Virginia,54071,1,0 +2020-04-16,Pendleton,West Virginia,54071,1,0 +2020-04-17,Pendleton,West Virginia,54071,2,0 +2020-04-18,Pendleton,West Virginia,54071,2,0 +2020-04-19,Pendleton,West Virginia,54071,2,0 +2020-04-20,Pendleton,West Virginia,54071,2,0 +2020-04-21,Pendleton,West Virginia,54071,1,0 +2020-04-22,Pendleton,West Virginia,54071,1,0 +2020-04-23,Pendleton,West Virginia,54071,3,0 +2020-04-24,Pendleton,West Virginia,54071,3,0 +2020-04-25,Pendleton,West Virginia,54071,3,0 +2020-04-26,Pendleton,West Virginia,54071,3,0 +2020-04-27,Pendleton,West Virginia,54071,3,0 +2020-04-28,Pendleton,West Virginia,54071,3,0 +2020-04-29,Pendleton,West Virginia,54071,3,0 +2020-04-30,Pendleton,West Virginia,54071,3,0 +2020-05-01,Pendleton,West Virginia,54071,3,0 +2020-05-02,Pendleton,West Virginia,54071,3,0 +2020-05-03,Pendleton,West Virginia,54071,3,0 +2020-05-04,Pendleton,West Virginia,54071,3,0 +2020-05-05,Pendleton,West Virginia,54071,5,0 +2020-05-06,Pendleton,West Virginia,54071,5,0 +2020-05-07,Pendleton,West Virginia,54071,5,0 +2020-05-08,Pendleton,West Virginia,54071,5,0 +2020-05-09,Pendleton,West Virginia,54071,5,0 +2020-05-10,Pendleton,West Virginia,54071,5,0 +2020-05-11,Pendleton,West Virginia,54071,5,0 +2020-05-12,Pendleton,West Virginia,54071,5,0 +2020-05-13,Pendleton,West Virginia,54071,5,0 +2020-05-14,Pendleton,West Virginia,54071,5,0 +2020-05-15,Pendleton,West Virginia,54071,5,0 +2020-05-16,Pendleton,West Virginia,54071,5,0 +2020-05-17,Pendleton,West Virginia,54071,5,0 +2020-05-18,Pendleton,West Virginia,54071,5,0 +2020-05-19,Pendleton,West Virginia,54071,5,0 +2020-05-20,Pendleton,West Virginia,54071,5,0 +2020-05-21,Pendleton,West Virginia,54071,5,0 +2020-05-22,Pendleton,West Virginia,54071,7,0 +2020-05-23,Pendleton,West Virginia,54071,9,0 +2020-05-24,Pendleton,West Virginia,54071,9,0 +2020-05-25,Pendleton,West Virginia,54071,9,0 +2020-05-26,Pendleton,West Virginia,54071,9,0 +2020-05-27,Pendleton,West Virginia,54071,10,0 +2020-05-28,Pendleton,West Virginia,54071,11,0 +2020-05-29,Pendleton,West Virginia,54071,12,0 +2020-05-30,Pendleton,West Virginia,54071,12,0 +2020-05-31,Pendleton,West Virginia,54071,12,0 +2020-06-01,Pendleton,West Virginia,54071,13,0 +2020-06-02,Pendleton,West Virginia,54071,13,0 +2020-06-03,Pendleton,West Virginia,54071,13,0 +2020-06-04,Pendleton,West Virginia,54071,13,0 +2020-06-05,Pendleton,West Virginia,54071,13,1 +2020-06-06,Pendleton,West Virginia,54071,13,1 +2020-06-07,Pendleton,West Virginia,54071,13,1 +2020-06-08,Pendleton,West Virginia,54071,13,1 +2020-06-09,Pendleton,West Virginia,54071,13,1 +2020-06-10,Pendleton,West Virginia,54071,13,1 +2020-06-11,Pendleton,West Virginia,54071,13,1 +2020-06-12,Pendleton,West Virginia,54071,13,1 +2020-06-13,Pendleton,West Virginia,54071,13,1 +2020-06-14,Pendleton,West Virginia,54071,13,1 +2020-06-15,Pendleton,West Virginia,54071,13,1 +2020-06-16,Pendleton,West Virginia,54071,13,1 +2020-06-17,Pendleton,West Virginia,54071,13,1 +2020-06-18,Pendleton,West Virginia,54071,13,1 +2020-06-19,Pendleton,West Virginia,54071,13,1 +2020-06-20,Pendleton,West Virginia,54071,13,1 +2020-06-21,Pendleton,West Virginia,54071,13,1 +2020-06-22,Pendleton,West Virginia,54071,13,1 +2020-06-23,Pendleton,West Virginia,54071,13,1 +2020-06-24,Pendleton,West Virginia,54071,13,1 +2020-06-25,Pendleton,West Virginia,54071,13,1 +2020-06-26,Pendleton,West Virginia,54071,13,1 +2020-06-27,Pendleton,West Virginia,54071,13,1 +2020-06-28,Pendleton,West Virginia,54071,13,1 +2020-06-29,Pendleton,West Virginia,54071,13,1 +2020-06-30,Pendleton,West Virginia,54071,13,1 +2020-07-01,Pendleton,West Virginia,54071,13,1 +2020-07-02,Pendleton,West Virginia,54071,13,1 +2020-07-03,Pendleton,West Virginia,54071,13,1 +2020-07-04,Pendleton,West Virginia,54071,13,1 +2020-07-05,Pendleton,West Virginia,54071,14,1 +2020-07-06,Pendleton,West Virginia,54071,14,1 +2020-07-07,Pendleton,West Virginia,54071,14,1 +2020-07-08,Pendleton,West Virginia,54071,14,1 +2020-07-09,Pendleton,West Virginia,54071,14,1 +2020-03-27,Pleasants,West Virginia,54073,1,0 +2020-03-28,Pleasants,West Virginia,54073,1,0 +2020-03-29,Pleasants,West Virginia,54073,1,0 +2020-03-30,Pleasants,West Virginia,54073,1,0 +2020-03-31,Pleasants,West Virginia,54073,1,0 +2020-04-01,Pleasants,West Virginia,54073,1,0 +2020-04-02,Pleasants,West Virginia,54073,1,0 +2020-04-03,Pleasants,West Virginia,54073,1,0 +2020-04-04,Pleasants,West Virginia,54073,1,0 +2020-04-05,Pleasants,West Virginia,54073,1,0 +2020-04-06,Pleasants,West Virginia,54073,1,0 +2020-04-07,Pleasants,West Virginia,54073,1,0 +2020-04-08,Pleasants,West Virginia,54073,1,0 +2020-04-09,Pleasants,West Virginia,54073,1,0 +2020-04-10,Pleasants,West Virginia,54073,1,0 +2020-04-11,Pleasants,West Virginia,54073,1,0 +2020-04-12,Pleasants,West Virginia,54073,1,0 +2020-04-13,Pleasants,West Virginia,54073,1,0 +2020-04-14,Pleasants,West Virginia,54073,1,0 +2020-04-15,Pleasants,West Virginia,54073,1,0 +2020-04-16,Pleasants,West Virginia,54073,1,0 +2020-04-17,Pleasants,West Virginia,54073,1,0 +2020-04-18,Pleasants,West Virginia,54073,1,0 +2020-04-19,Pleasants,West Virginia,54073,1,0 +2020-04-20,Pleasants,West Virginia,54073,2,0 +2020-04-21,Pleasants,West Virginia,54073,2,0 +2020-04-22,Pleasants,West Virginia,54073,2,0 +2020-04-23,Pleasants,West Virginia,54073,2,0 +2020-04-24,Pleasants,West Virginia,54073,2,0 +2020-04-25,Pleasants,West Virginia,54073,2,0 +2020-04-26,Pleasants,West Virginia,54073,2,0 +2020-04-27,Pleasants,West Virginia,54073,2,0 +2020-04-28,Pleasants,West Virginia,54073,2,0 +2020-04-29,Pleasants,West Virginia,54073,2,0 +2020-04-30,Pleasants,West Virginia,54073,2,0 +2020-05-01,Pleasants,West Virginia,54073,2,0 +2020-05-02,Pleasants,West Virginia,54073,2,0 +2020-05-03,Pleasants,West Virginia,54073,2,0 +2020-05-04,Pleasants,West Virginia,54073,2,0 +2020-05-05,Pleasants,West Virginia,54073,2,0 +2020-05-06,Pleasants,West Virginia,54073,2,0 +2020-05-07,Pleasants,West Virginia,54073,2,0 +2020-05-08,Pleasants,West Virginia,54073,2,0 +2020-05-09,Pleasants,West Virginia,54073,2,0 +2020-05-10,Pleasants,West Virginia,54073,2,0 +2020-05-11,Pleasants,West Virginia,54073,2,0 +2020-05-12,Pleasants,West Virginia,54073,2,0 +2020-05-13,Pleasants,West Virginia,54073,2,0 +2020-05-14,Pleasants,West Virginia,54073,2,0 +2020-05-15,Pleasants,West Virginia,54073,2,0 +2020-05-16,Pleasants,West Virginia,54073,2,0 +2020-05-17,Pleasants,West Virginia,54073,2,0 +2020-05-18,Pleasants,West Virginia,54073,2,0 +2020-05-19,Pleasants,West Virginia,54073,2,0 +2020-05-20,Pleasants,West Virginia,54073,2,0 +2020-05-21,Pleasants,West Virginia,54073,2,0 +2020-05-22,Pleasants,West Virginia,54073,4,0 +2020-05-23,Pleasants,West Virginia,54073,4,0 +2020-05-24,Pleasants,West Virginia,54073,4,0 +2020-05-25,Pleasants,West Virginia,54073,4,0 +2020-05-26,Pleasants,West Virginia,54073,5,0 +2020-05-27,Pleasants,West Virginia,54073,5,0 +2020-05-28,Pleasants,West Virginia,54073,4,0 +2020-05-29,Pleasants,West Virginia,54073,4,0 +2020-05-30,Pleasants,West Virginia,54073,4,0 +2020-05-31,Pleasants,West Virginia,54073,4,0 +2020-06-01,Pleasants,West Virginia,54073,4,0 +2020-06-02,Pleasants,West Virginia,54073,4,0 +2020-06-03,Pleasants,West Virginia,54073,4,0 +2020-06-04,Pleasants,West Virginia,54073,4,0 +2020-06-05,Pleasants,West Virginia,54073,4,0 +2020-06-06,Pleasants,West Virginia,54073,4,0 +2020-06-07,Pleasants,West Virginia,54073,4,0 +2020-06-08,Pleasants,West Virginia,54073,4,0 +2020-06-09,Pleasants,West Virginia,54073,4,0 +2020-06-10,Pleasants,West Virginia,54073,4,0 +2020-06-11,Pleasants,West Virginia,54073,4,0 +2020-06-12,Pleasants,West Virginia,54073,4,0 +2020-06-13,Pleasants,West Virginia,54073,4,0 +2020-06-14,Pleasants,West Virginia,54073,4,0 +2020-06-15,Pleasants,West Virginia,54073,4,0 +2020-06-16,Pleasants,West Virginia,54073,4,0 +2020-06-17,Pleasants,West Virginia,54073,4,0 +2020-06-18,Pleasants,West Virginia,54073,4,0 +2020-06-19,Pleasants,West Virginia,54073,4,0 +2020-06-20,Pleasants,West Virginia,54073,4,0 +2020-06-21,Pleasants,West Virginia,54073,4,0 +2020-06-22,Pleasants,West Virginia,54073,5,0 +2020-06-23,Pleasants,West Virginia,54073,5,0 +2020-06-24,Pleasants,West Virginia,54073,5,0 +2020-06-25,Pleasants,West Virginia,54073,5,0 +2020-06-26,Pleasants,West Virginia,54073,5,0 +2020-06-27,Pleasants,West Virginia,54073,5,0 +2020-06-28,Pleasants,West Virginia,54073,5,0 +2020-06-29,Pleasants,West Virginia,54073,5,0 +2020-06-30,Pleasants,West Virginia,54073,5,0 +2020-07-01,Pleasants,West Virginia,54073,5,0 +2020-07-02,Pleasants,West Virginia,54073,5,0 +2020-07-03,Pleasants,West Virginia,54073,5,0 +2020-07-04,Pleasants,West Virginia,54073,5,0 +2020-07-05,Pleasants,West Virginia,54073,5,0 +2020-07-06,Pleasants,West Virginia,54073,5,0 +2020-07-07,Pleasants,West Virginia,54073,5,0 +2020-07-08,Pleasants,West Virginia,54073,5,0 +2020-07-09,Pleasants,West Virginia,54073,6,0 +2020-04-27,Pocahontas,West Virginia,54075,1,0 +2020-04-28,Pocahontas,West Virginia,54075,2,0 +2020-04-29,Pocahontas,West Virginia,54075,2,0 +2020-04-30,Pocahontas,West Virginia,54075,2,0 +2020-05-01,Pocahontas,West Virginia,54075,2,0 +2020-05-02,Pocahontas,West Virginia,54075,2,0 +2020-05-03,Pocahontas,West Virginia,54075,2,0 +2020-05-04,Pocahontas,West Virginia,54075,2,0 +2020-05-05,Pocahontas,West Virginia,54075,2,0 +2020-05-06,Pocahontas,West Virginia,54075,2,0 +2020-05-07,Pocahontas,West Virginia,54075,2,0 +2020-05-08,Pocahontas,West Virginia,54075,2,0 +2020-05-09,Pocahontas,West Virginia,54075,2,0 +2020-05-10,Pocahontas,West Virginia,54075,2,0 +2020-05-11,Pocahontas,West Virginia,54075,2,0 +2020-05-12,Pocahontas,West Virginia,54075,2,0 +2020-05-13,Pocahontas,West Virginia,54075,2,0 +2020-05-14,Pocahontas,West Virginia,54075,2,0 +2020-05-15,Pocahontas,West Virginia,54075,2,0 +2020-05-16,Pocahontas,West Virginia,54075,4,0 +2020-05-17,Pocahontas,West Virginia,54075,9,0 +2020-05-18,Pocahontas,West Virginia,54075,8,0 +2020-05-19,Pocahontas,West Virginia,54075,8,0 +2020-05-20,Pocahontas,West Virginia,54075,10,0 +2020-05-21,Pocahontas,West Virginia,54075,15,0 +2020-05-22,Pocahontas,West Virginia,54075,24,0 +2020-05-23,Pocahontas,West Virginia,54075,23,0 +2020-05-24,Pocahontas,West Virginia,54075,24,0 +2020-05-25,Pocahontas,West Virginia,54075,24,0 +2020-05-26,Pocahontas,West Virginia,54075,24,0 +2020-05-27,Pocahontas,West Virginia,54075,17,0 +2020-05-28,Pocahontas,West Virginia,54075,18,0 +2020-05-29,Pocahontas,West Virginia,54075,21,0 +2020-05-30,Pocahontas,West Virginia,54075,21,0 +2020-05-31,Pocahontas,West Virginia,54075,21,0 +2020-06-01,Pocahontas,West Virginia,54075,21,0 +2020-06-02,Pocahontas,West Virginia,54075,21,0 +2020-06-03,Pocahontas,West Virginia,54075,21,0 +2020-06-04,Pocahontas,West Virginia,54075,21,0 +2020-06-05,Pocahontas,West Virginia,54075,21,0 +2020-06-06,Pocahontas,West Virginia,54075,21,0 +2020-06-07,Pocahontas,West Virginia,54075,21,0 +2020-06-08,Pocahontas,West Virginia,54075,21,0 +2020-06-09,Pocahontas,West Virginia,54075,21,0 +2020-06-10,Pocahontas,West Virginia,54075,21,0 +2020-06-11,Pocahontas,West Virginia,54075,21,0 +2020-06-12,Pocahontas,West Virginia,54075,21,0 +2020-06-13,Pocahontas,West Virginia,54075,21,0 +2020-06-14,Pocahontas,West Virginia,54075,21,0 +2020-06-15,Pocahontas,West Virginia,54075,21,0 +2020-06-16,Pocahontas,West Virginia,54075,21,0 +2020-06-17,Pocahontas,West Virginia,54075,21,0 +2020-06-18,Pocahontas,West Virginia,54075,22,0 +2020-06-19,Pocahontas,West Virginia,54075,22,0 +2020-06-20,Pocahontas,West Virginia,54075,24,0 +2020-06-21,Pocahontas,West Virginia,54075,24,0 +2020-06-22,Pocahontas,West Virginia,54075,24,0 +2020-06-23,Pocahontas,West Virginia,54075,24,0 +2020-06-24,Pocahontas,West Virginia,54075,24,0 +2020-06-25,Pocahontas,West Virginia,54075,24,0 +2020-06-26,Pocahontas,West Virginia,54075,24,0 +2020-06-27,Pocahontas,West Virginia,54075,24,0 +2020-06-28,Pocahontas,West Virginia,54075,24,0 +2020-06-29,Pocahontas,West Virginia,54075,24,0 +2020-06-30,Pocahontas,West Virginia,54075,25,0 +2020-07-01,Pocahontas,West Virginia,54075,25,0 +2020-07-02,Pocahontas,West Virginia,54075,28,0 +2020-07-03,Pocahontas,West Virginia,54075,29,0 +2020-07-04,Pocahontas,West Virginia,54075,31,0 +2020-07-05,Pocahontas,West Virginia,54075,31,0 +2020-07-06,Pocahontas,West Virginia,54075,31,0 +2020-07-07,Pocahontas,West Virginia,54075,37,0 +2020-07-08,Pocahontas,West Virginia,54075,37,0 +2020-07-09,Pocahontas,West Virginia,54075,37,0 +2020-03-24,Preston,West Virginia,54077,1,0 +2020-03-25,Preston,West Virginia,54077,2,0 +2020-03-26,Preston,West Virginia,54077,1,0 +2020-03-27,Preston,West Virginia,54077,1,0 +2020-03-28,Preston,West Virginia,54077,1,0 +2020-03-29,Preston,West Virginia,54077,1,0 +2020-03-30,Preston,West Virginia,54077,2,0 +2020-03-31,Preston,West Virginia,54077,3,0 +2020-04-01,Preston,West Virginia,54077,3,0 +2020-04-02,Preston,West Virginia,54077,3,0 +2020-04-03,Preston,West Virginia,54077,4,0 +2020-04-04,Preston,West Virginia,54077,5,0 +2020-04-05,Preston,West Virginia,54077,5,0 +2020-04-06,Preston,West Virginia,54077,4,0 +2020-04-07,Preston,West Virginia,54077,6,0 +2020-04-08,Preston,West Virginia,54077,6,0 +2020-04-09,Preston,West Virginia,54077,6,0 +2020-04-10,Preston,West Virginia,54077,6,0 +2020-04-11,Preston,West Virginia,54077,6,0 +2020-04-12,Preston,West Virginia,54077,6,0 +2020-04-13,Preston,West Virginia,54077,6,0 +2020-04-14,Preston,West Virginia,54077,6,0 +2020-04-15,Preston,West Virginia,54077,6,0 +2020-04-16,Preston,West Virginia,54077,6,0 +2020-04-17,Preston,West Virginia,54077,6,0 +2020-04-18,Preston,West Virginia,54077,10,0 +2020-04-19,Preston,West Virginia,54077,10,0 +2020-04-20,Preston,West Virginia,54077,10,0 +2020-04-21,Preston,West Virginia,54077,12,0 +2020-04-22,Preston,West Virginia,54077,12,0 +2020-04-23,Preston,West Virginia,54077,12,0 +2020-04-24,Preston,West Virginia,54077,12,0 +2020-04-25,Preston,West Virginia,54077,12,0 +2020-04-26,Preston,West Virginia,54077,13,0 +2020-04-27,Preston,West Virginia,54077,13,0 +2020-04-28,Preston,West Virginia,54077,13,0 +2020-04-29,Preston,West Virginia,54077,13,0 +2020-04-30,Preston,West Virginia,54077,13,0 +2020-05-01,Preston,West Virginia,54077,13,0 +2020-05-02,Preston,West Virginia,54077,13,0 +2020-05-03,Preston,West Virginia,54077,13,0 +2020-05-04,Preston,West Virginia,54077,13,0 +2020-05-05,Preston,West Virginia,54077,13,0 +2020-05-06,Preston,West Virginia,54077,14,0 +2020-05-07,Preston,West Virginia,54077,14,0 +2020-05-08,Preston,West Virginia,54077,14,0 +2020-05-09,Preston,West Virginia,54077,14,0 +2020-05-10,Preston,West Virginia,54077,14,0 +2020-05-11,Preston,West Virginia,54077,14,0 +2020-05-12,Preston,West Virginia,54077,14,0 +2020-05-13,Preston,West Virginia,54077,14,0 +2020-05-14,Preston,West Virginia,54077,15,0 +2020-05-15,Preston,West Virginia,54077,15,0 +2020-05-16,Preston,West Virginia,54077,15,0 +2020-05-17,Preston,West Virginia,54077,15,0 +2020-05-18,Preston,West Virginia,54077,15,0 +2020-05-19,Preston,West Virginia,54077,15,0 +2020-05-20,Preston,West Virginia,54077,15,0 +2020-05-21,Preston,West Virginia,54077,15,0 +2020-05-22,Preston,West Virginia,54077,19,0 +2020-05-23,Preston,West Virginia,54077,19,0 +2020-05-24,Preston,West Virginia,54077,20,0 +2020-05-25,Preston,West Virginia,54077,22,0 +2020-05-26,Preston,West Virginia,54077,22,1 +2020-05-27,Preston,West Virginia,54077,22,2 +2020-05-28,Preston,West Virginia,54077,22,2 +2020-05-29,Preston,West Virginia,54077,25,1 +2020-05-30,Preston,West Virginia,54077,25,1 +2020-05-31,Preston,West Virginia,54077,25,1 +2020-06-01,Preston,West Virginia,54077,25,3 +2020-06-02,Preston,West Virginia,54077,24,2 +2020-06-03,Preston,West Virginia,54077,24,2 +2020-06-04,Preston,West Virginia,54077,24,2 +2020-06-05,Preston,West Virginia,54077,24,2 +2020-06-06,Preston,West Virginia,54077,24,2 +2020-06-07,Preston,West Virginia,54077,24,2 +2020-06-08,Preston,West Virginia,54077,24,2 +2020-06-09,Preston,West Virginia,54077,24,2 +2020-06-10,Preston,West Virginia,54077,24,2 +2020-06-11,Preston,West Virginia,54077,24,2 +2020-06-12,Preston,West Virginia,54077,24,2 +2020-06-13,Preston,West Virginia,54077,24,2 +2020-06-14,Preston,West Virginia,54077,24,2 +2020-06-15,Preston,West Virginia,54077,24,2 +2020-06-16,Preston,West Virginia,54077,25,2 +2020-06-17,Preston,West Virginia,54077,29,2 +2020-06-18,Preston,West Virginia,54077,36,2 +2020-06-19,Preston,West Virginia,54077,43,2 +2020-06-20,Preston,West Virginia,54077,48,2 +2020-06-21,Preston,West Virginia,54077,64,2 +2020-06-22,Preston,West Virginia,54077,63,2 +2020-06-23,Preston,West Virginia,54077,64,2 +2020-06-24,Preston,West Virginia,54077,64,2 +2020-06-25,Preston,West Virginia,54077,70,2 +2020-06-26,Preston,West Virginia,54077,74,2 +2020-06-27,Preston,West Virginia,54077,74,2 +2020-06-28,Preston,West Virginia,54077,75,2 +2020-06-29,Preston,West Virginia,54077,77,2 +2020-06-30,Preston,West Virginia,54077,78,2 +2020-07-01,Preston,West Virginia,54077,79,2 +2020-07-02,Preston,West Virginia,54077,82,2 +2020-07-03,Preston,West Virginia,54077,84,2 +2020-07-04,Preston,West Virginia,54077,86,2 +2020-07-05,Preston,West Virginia,54077,88,2 +2020-07-06,Preston,West Virginia,54077,89,2 +2020-07-07,Preston,West Virginia,54077,89,2 +2020-07-08,Preston,West Virginia,54077,91,2 +2020-07-09,Preston,West Virginia,54077,94,2 +2020-03-21,Putnam,West Virginia,54079,1,0 +2020-03-22,Putnam,West Virginia,54079,1,0 +2020-03-23,Putnam,West Virginia,54079,1,0 +2020-03-24,Putnam,West Virginia,54079,1,0 +2020-03-25,Putnam,West Virginia,54079,2,0 +2020-03-26,Putnam,West Virginia,54079,2,0 +2020-03-27,Putnam,West Virginia,54079,3,0 +2020-03-28,Putnam,West Virginia,54079,3,0 +2020-03-29,Putnam,West Virginia,54079,3,0 +2020-03-30,Putnam,West Virginia,54079,4,0 +2020-03-31,Putnam,West Virginia,54079,4,0 +2020-04-01,Putnam,West Virginia,54079,5,0 +2020-04-02,Putnam,West Virginia,54079,5,0 +2020-04-03,Putnam,West Virginia,54079,5,0 +2020-04-04,Putnam,West Virginia,54079,5,0 +2020-04-05,Putnam,West Virginia,54079,6,0 +2020-04-06,Putnam,West Virginia,54079,8,0 +2020-04-07,Putnam,West Virginia,54079,10,0 +2020-04-08,Putnam,West Virginia,54079,10,0 +2020-04-09,Putnam,West Virginia,54079,11,0 +2020-04-10,Putnam,West Virginia,54079,11,0 +2020-04-11,Putnam,West Virginia,54079,11,0 +2020-04-12,Putnam,West Virginia,54079,11,0 +2020-04-13,Putnam,West Virginia,54079,12,0 +2020-04-14,Putnam,West Virginia,54079,13,0 +2020-04-15,Putnam,West Virginia,54079,13,0 +2020-04-16,Putnam,West Virginia,54079,13,0 +2020-04-17,Putnam,West Virginia,54079,14,0 +2020-04-18,Putnam,West Virginia,54079,14,0 +2020-04-19,Putnam,West Virginia,54079,14,0 +2020-04-20,Putnam,West Virginia,54079,15,0 +2020-04-21,Putnam,West Virginia,54079,16,0 +2020-04-22,Putnam,West Virginia,54079,16,0 +2020-04-23,Putnam,West Virginia,54079,17,0 +2020-04-24,Putnam,West Virginia,54079,16,0 +2020-04-25,Putnam,West Virginia,54079,17,0 +2020-04-26,Putnam,West Virginia,54079,18,0 +2020-04-27,Putnam,West Virginia,54079,21,0 +2020-04-28,Putnam,West Virginia,54079,22,0 +2020-04-29,Putnam,West Virginia,54079,25,0 +2020-04-30,Putnam,West Virginia,54079,25,0 +2020-05-01,Putnam,West Virginia,54079,27,1 +2020-05-02,Putnam,West Virginia,54079,27,0 +2020-05-03,Putnam,West Virginia,54079,28,0 +2020-05-04,Putnam,West Virginia,54079,29,0 +2020-05-05,Putnam,West Virginia,54079,27,0 +2020-05-06,Putnam,West Virginia,54079,27,0 +2020-05-07,Putnam,West Virginia,54079,27,0 +2020-05-08,Putnam,West Virginia,54079,27,0 +2020-05-09,Putnam,West Virginia,54079,27,0 +2020-05-10,Putnam,West Virginia,54079,27,0 +2020-05-11,Putnam,West Virginia,54079,28,0 +2020-05-12,Putnam,West Virginia,54079,28,0 +2020-05-13,Putnam,West Virginia,54079,29,0 +2020-05-14,Putnam,West Virginia,54079,29,0 +2020-05-15,Putnam,West Virginia,54079,29,0 +2020-05-16,Putnam,West Virginia,54079,29,0 +2020-05-17,Putnam,West Virginia,54079,29,0 +2020-05-18,Putnam,West Virginia,54079,29,0 +2020-05-19,Putnam,West Virginia,54079,29,0 +2020-05-20,Putnam,West Virginia,54079,30,0 +2020-05-21,Putnam,West Virginia,54079,31,0 +2020-05-22,Putnam,West Virginia,54079,31,0 +2020-05-23,Putnam,West Virginia,54079,31,0 +2020-05-24,Putnam,West Virginia,54079,32,0 +2020-05-25,Putnam,West Virginia,54079,32,0 +2020-05-26,Putnam,West Virginia,54079,33,0 +2020-05-27,Putnam,West Virginia,54079,33,1 +2020-05-28,Putnam,West Virginia,54079,35,1 +2020-05-29,Putnam,West Virginia,54079,35,0 +2020-05-30,Putnam,West Virginia,54079,35,0 +2020-05-31,Putnam,West Virginia,54079,34,0 +2020-06-01,Putnam,West Virginia,54079,34,0 +2020-06-02,Putnam,West Virginia,54079,37,0 +2020-06-03,Putnam,West Virginia,54079,38,0 +2020-06-04,Putnam,West Virginia,54079,38,0 +2020-06-05,Putnam,West Virginia,54079,38,0 +2020-06-06,Putnam,West Virginia,54079,39,0 +2020-06-07,Putnam,West Virginia,54079,39,0 +2020-06-08,Putnam,West Virginia,54079,40,0 +2020-06-09,Putnam,West Virginia,54079,40,0 +2020-06-10,Putnam,West Virginia,54079,41,0 +2020-06-11,Putnam,West Virginia,54079,41,0 +2020-06-12,Putnam,West Virginia,54079,42,0 +2020-06-13,Putnam,West Virginia,54079,42,0 +2020-06-14,Putnam,West Virginia,54079,42,0 +2020-06-15,Putnam,West Virginia,54079,42,0 +2020-06-16,Putnam,West Virginia,54079,42,0 +2020-06-17,Putnam,West Virginia,54079,40,0 +2020-06-18,Putnam,West Virginia,54079,40,0 +2020-06-19,Putnam,West Virginia,54079,41,0 +2020-06-20,Putnam,West Virginia,54079,44,0 +2020-06-21,Putnam,West Virginia,54079,44,0 +2020-06-22,Putnam,West Virginia,54079,45,0 +2020-06-23,Putnam,West Virginia,54079,44,0 +2020-06-24,Putnam,West Virginia,54079,45,0 +2020-06-25,Putnam,West Virginia,54079,50,0 +2020-06-26,Putnam,West Virginia,54079,51,0 +2020-06-27,Putnam,West Virginia,54079,51,0 +2020-06-28,Putnam,West Virginia,54079,52,0 +2020-06-29,Putnam,West Virginia,54079,53,0 +2020-06-30,Putnam,West Virginia,54079,55,0 +2020-07-01,Putnam,West Virginia,54079,58,0 +2020-07-02,Putnam,West Virginia,54079,60,0 +2020-07-03,Putnam,West Virginia,54079,61,0 +2020-07-04,Putnam,West Virginia,54079,64,0 +2020-07-05,Putnam,West Virginia,54079,66,0 +2020-07-06,Putnam,West Virginia,54079,69,0 +2020-07-07,Putnam,West Virginia,54079,70,0 +2020-07-08,Putnam,West Virginia,54079,75,0 +2020-07-09,Putnam,West Virginia,54079,78,0 +2020-03-25,Raleigh,West Virginia,54081,1,0 +2020-03-26,Raleigh,West Virginia,54081,2,0 +2020-03-27,Raleigh,West Virginia,54081,3,0 +2020-03-28,Raleigh,West Virginia,54081,3,0 +2020-03-29,Raleigh,West Virginia,54081,4,0 +2020-03-30,Raleigh,West Virginia,54081,3,0 +2020-03-31,Raleigh,West Virginia,54081,3,0 +2020-04-01,Raleigh,West Virginia,54081,3,0 +2020-04-02,Raleigh,West Virginia,54081,3,0 +2020-04-03,Raleigh,West Virginia,54081,3,0 +2020-04-04,Raleigh,West Virginia,54081,4,0 +2020-04-05,Raleigh,West Virginia,54081,4,0 +2020-04-06,Raleigh,West Virginia,54081,4,0 +2020-04-07,Raleigh,West Virginia,54081,4,0 +2020-04-08,Raleigh,West Virginia,54081,5,0 +2020-04-09,Raleigh,West Virginia,54081,5,0 +2020-04-10,Raleigh,West Virginia,54081,5,0 +2020-04-11,Raleigh,West Virginia,54081,5,0 +2020-04-12,Raleigh,West Virginia,54081,5,0 +2020-04-13,Raleigh,West Virginia,54081,6,0 +2020-04-14,Raleigh,West Virginia,54081,6,0 +2020-04-15,Raleigh,West Virginia,54081,6,0 +2020-04-16,Raleigh,West Virginia,54081,6,0 +2020-04-17,Raleigh,West Virginia,54081,7,0 +2020-04-18,Raleigh,West Virginia,54081,7,0 +2020-04-19,Raleigh,West Virginia,54081,7,0 +2020-04-20,Raleigh,West Virginia,54081,7,0 +2020-04-21,Raleigh,West Virginia,54081,7,0 +2020-04-22,Raleigh,West Virginia,54081,7,0 +2020-04-23,Raleigh,West Virginia,54081,8,0 +2020-04-24,Raleigh,West Virginia,54081,9,0 +2020-04-25,Raleigh,West Virginia,54081,8,0 +2020-04-26,Raleigh,West Virginia,54081,8,0 +2020-04-27,Raleigh,West Virginia,54081,8,0 +2020-04-28,Raleigh,West Virginia,54081,8,0 +2020-04-29,Raleigh,West Virginia,54081,8,0 +2020-04-30,Raleigh,West Virginia,54081,8,0 +2020-05-01,Raleigh,West Virginia,54081,9,0 +2020-05-02,Raleigh,West Virginia,54081,10,0 +2020-05-03,Raleigh,West Virginia,54081,11,0 +2020-05-04,Raleigh,West Virginia,54081,10,0 +2020-05-05,Raleigh,West Virginia,54081,9,0 +2020-05-06,Raleigh,West Virginia,54081,9,0 +2020-05-07,Raleigh,West Virginia,54081,9,0 +2020-05-08,Raleigh,West Virginia,54081,9,0 +2020-05-09,Raleigh,West Virginia,54081,9,0 +2020-05-10,Raleigh,West Virginia,54081,9,0 +2020-05-11,Raleigh,West Virginia,54081,10,0 +2020-05-12,Raleigh,West Virginia,54081,10,0 +2020-05-13,Raleigh,West Virginia,54081,10,0 +2020-05-14,Raleigh,West Virginia,54081,10,0 +2020-05-15,Raleigh,West Virginia,54081,10,0 +2020-05-16,Raleigh,West Virginia,54081,10,0 +2020-05-17,Raleigh,West Virginia,54081,10,0 +2020-05-18,Raleigh,West Virginia,54081,12,0 +2020-05-19,Raleigh,West Virginia,54081,13,0 +2020-05-20,Raleigh,West Virginia,54081,14,0 +2020-05-21,Raleigh,West Virginia,54081,14,0 +2020-05-22,Raleigh,West Virginia,54081,15,0 +2020-05-23,Raleigh,West Virginia,54081,15,0 +2020-05-24,Raleigh,West Virginia,54081,15,0 +2020-05-25,Raleigh,West Virginia,54081,16,0 +2020-05-26,Raleigh,West Virginia,54081,16,0 +2020-05-27,Raleigh,West Virginia,54081,16,0 +2020-05-28,Raleigh,West Virginia,54081,16,0 +2020-05-29,Raleigh,West Virginia,54081,16,0 +2020-05-30,Raleigh,West Virginia,54081,16,0 +2020-05-31,Raleigh,West Virginia,54081,16,0 +2020-06-01,Raleigh,West Virginia,54081,16,0 +2020-06-02,Raleigh,West Virginia,54081,16,0 +2020-06-03,Raleigh,West Virginia,54081,17,0 +2020-06-04,Raleigh,West Virginia,54081,17,0 +2020-06-05,Raleigh,West Virginia,54081,17,0 +2020-06-06,Raleigh,West Virginia,54081,17,0 +2020-06-07,Raleigh,West Virginia,54081,18,0 +2020-06-08,Raleigh,West Virginia,54081,18,0 +2020-06-09,Raleigh,West Virginia,54081,18,0 +2020-06-10,Raleigh,West Virginia,54081,18,0 +2020-06-11,Raleigh,West Virginia,54081,19,0 +2020-06-12,Raleigh,West Virginia,54081,23,0 +2020-06-13,Raleigh,West Virginia,54081,23,0 +2020-06-14,Raleigh,West Virginia,54081,26,0 +2020-06-15,Raleigh,West Virginia,54081,26,0 +2020-06-16,Raleigh,West Virginia,54081,25,0 +2020-06-17,Raleigh,West Virginia,54081,27,0 +2020-06-18,Raleigh,West Virginia,54081,27,0 +2020-06-19,Raleigh,West Virginia,54081,29,0 +2020-06-20,Raleigh,West Virginia,54081,30,0 +2020-06-21,Raleigh,West Virginia,54081,32,0 +2020-06-22,Raleigh,West Virginia,54081,34,0 +2020-06-23,Raleigh,West Virginia,54081,34,0 +2020-06-24,Raleigh,West Virginia,54081,35,0 +2020-06-25,Raleigh,West Virginia,54081,43,0 +2020-06-26,Raleigh,West Virginia,54081,47,0 +2020-06-27,Raleigh,West Virginia,54081,47,0 +2020-06-28,Raleigh,West Virginia,54081,51,0 +2020-06-29,Raleigh,West Virginia,54081,52,0 +2020-06-30,Raleigh,West Virginia,54081,52,0 +2020-07-01,Raleigh,West Virginia,54081,53,0 +2020-07-02,Raleigh,West Virginia,54081,54,0 +2020-07-03,Raleigh,West Virginia,54081,56,0 +2020-07-04,Raleigh,West Virginia,54081,56,0 +2020-07-05,Raleigh,West Virginia,54081,62,0 +2020-07-06,Raleigh,West Virginia,54081,63,0 +2020-07-07,Raleigh,West Virginia,54081,65,0 +2020-07-08,Raleigh,West Virginia,54081,65,0 +2020-07-09,Raleigh,West Virginia,54081,68,0 +2020-03-30,Randolph,West Virginia,54083,1,0 +2020-03-31,Randolph,West Virginia,54083,1,0 +2020-04-01,Randolph,West Virginia,54083,1,0 +2020-04-02,Randolph,West Virginia,54083,2,0 +2020-04-03,Randolph,West Virginia,54083,2,0 +2020-04-04,Randolph,West Virginia,54083,3,0 +2020-04-05,Randolph,West Virginia,54083,3,0 +2020-04-06,Randolph,West Virginia,54083,3,0 +2020-04-07,Randolph,West Virginia,54083,3,0 +2020-04-08,Randolph,West Virginia,54083,3,0 +2020-04-09,Randolph,West Virginia,54083,3,0 +2020-04-10,Randolph,West Virginia,54083,3,0 +2020-04-11,Randolph,West Virginia,54083,4,0 +2020-04-12,Randolph,West Virginia,54083,4,0 +2020-04-13,Randolph,West Virginia,54083,4,0 +2020-04-14,Randolph,West Virginia,54083,4,0 +2020-04-15,Randolph,West Virginia,54083,4,0 +2020-04-16,Randolph,West Virginia,54083,4,0 +2020-04-17,Randolph,West Virginia,54083,4,0 +2020-04-18,Randolph,West Virginia,54083,4,0 +2020-04-19,Randolph,West Virginia,54083,4,0 +2020-04-20,Randolph,West Virginia,54083,4,0 +2020-04-21,Randolph,West Virginia,54083,4,0 +2020-04-22,Randolph,West Virginia,54083,4,0 +2020-04-23,Randolph,West Virginia,54083,4,0 +2020-04-24,Randolph,West Virginia,54083,4,0 +2020-04-25,Randolph,West Virginia,54083,4,0 +2020-04-26,Randolph,West Virginia,54083,4,0 +2020-04-27,Randolph,West Virginia,54083,4,0 +2020-04-28,Randolph,West Virginia,54083,4,0 +2020-04-29,Randolph,West Virginia,54083,4,0 +2020-04-30,Randolph,West Virginia,54083,4,0 +2020-05-01,Randolph,West Virginia,54083,4,0 +2020-05-02,Randolph,West Virginia,54083,4,0 +2020-05-03,Randolph,West Virginia,54083,4,0 +2020-05-04,Randolph,West Virginia,54083,4,0 +2020-05-05,Randolph,West Virginia,54083,5,0 +2020-05-06,Randolph,West Virginia,54083,5,0 +2020-05-07,Randolph,West Virginia,54083,5,0 +2020-05-08,Randolph,West Virginia,54083,5,0 +2020-05-09,Randolph,West Virginia,54083,5,0 +2020-05-10,Randolph,West Virginia,54083,5,0 +2020-05-11,Randolph,West Virginia,54083,5,0 +2020-05-12,Randolph,West Virginia,54083,5,0 +2020-05-13,Randolph,West Virginia,54083,5,0 +2020-05-14,Randolph,West Virginia,54083,5,0 +2020-05-15,Randolph,West Virginia,54083,5,0 +2020-05-16,Randolph,West Virginia,54083,5,0 +2020-05-17,Randolph,West Virginia,54083,7,0 +2020-05-18,Randolph,West Virginia,54083,7,0 +2020-05-19,Randolph,West Virginia,54083,8,0 +2020-05-20,Randolph,West Virginia,54083,9,0 +2020-05-21,Randolph,West Virginia,54083,9,0 +2020-05-22,Randolph,West Virginia,54083,28,0 +2020-05-23,Randolph,West Virginia,54083,36,0 +2020-05-24,Randolph,West Virginia,54083,36,0 +2020-05-25,Randolph,West Virginia,54083,36,0 +2020-05-26,Randolph,West Virginia,54083,82,0 +2020-05-27,Randolph,West Virginia,54083,104,0 +2020-05-28,Randolph,West Virginia,54083,124,0 +2020-05-29,Randolph,West Virginia,54083,129,0 +2020-05-30,Randolph,West Virginia,54083,129,0 +2020-05-31,Randolph,West Virginia,54083,131,0 +2020-06-01,Randolph,West Virginia,54083,131,0 +2020-06-02,Randolph,West Virginia,54083,131,0 +2020-06-03,Randolph,West Virginia,54083,132,0 +2020-06-04,Randolph,West Virginia,54083,132,0 +2020-06-05,Randolph,West Virginia,54083,132,0 +2020-06-06,Randolph,West Virginia,54083,132,0 +2020-06-07,Randolph,West Virginia,54083,132,0 +2020-06-08,Randolph,West Virginia,54083,134,0 +2020-06-09,Randolph,West Virginia,54083,137,0 +2020-06-10,Randolph,West Virginia,54083,140,0 +2020-06-11,Randolph,West Virginia,54083,138,0 +2020-06-12,Randolph,West Virginia,54083,141,0 +2020-06-13,Randolph,West Virginia,54083,141,0 +2020-06-14,Randolph,West Virginia,54083,141,0 +2020-06-15,Randolph,West Virginia,54083,140,0 +2020-06-16,Randolph,West Virginia,54083,141,0 +2020-06-17,Randolph,West Virginia,54083,144,0 +2020-06-18,Randolph,West Virginia,54083,146,0 +2020-06-19,Randolph,West Virginia,54083,148,0 +2020-06-20,Randolph,West Virginia,54083,149,0 +2020-06-21,Randolph,West Virginia,54083,150,0 +2020-06-22,Randolph,West Virginia,54083,152,0 +2020-06-23,Randolph,West Virginia,54083,154,0 +2020-06-24,Randolph,West Virginia,54083,154,0 +2020-06-25,Randolph,West Virginia,54083,155,0 +2020-06-26,Randolph,West Virginia,54083,155,0 +2020-06-27,Randolph,West Virginia,54083,155,0 +2020-06-28,Randolph,West Virginia,54083,155,0 +2020-06-29,Randolph,West Virginia,54083,156,0 +2020-06-30,Randolph,West Virginia,54083,156,0 +2020-07-01,Randolph,West Virginia,54083,162,0 +2020-07-02,Randolph,West Virginia,54083,162,0 +2020-07-03,Randolph,West Virginia,54083,167,0 +2020-07-04,Randolph,West Virginia,54083,169,0 +2020-07-05,Randolph,West Virginia,54083,171,0 +2020-07-06,Randolph,West Virginia,54083,171,0 +2020-07-07,Randolph,West Virginia,54083,171,0 +2020-07-08,Randolph,West Virginia,54083,172,0 +2020-07-09,Randolph,West Virginia,54083,176,0 +2020-05-03,Ritchie,West Virginia,54085,1,0 +2020-05-04,Ritchie,West Virginia,54085,1,0 +2020-05-05,Ritchie,West Virginia,54085,1,0 +2020-05-06,Ritchie,West Virginia,54085,1,0 +2020-05-07,Ritchie,West Virginia,54085,1,0 +2020-05-08,Ritchie,West Virginia,54085,1,0 +2020-05-09,Ritchie,West Virginia,54085,1,0 +2020-05-10,Ritchie,West Virginia,54085,1,0 +2020-05-11,Ritchie,West Virginia,54085,1,0 +2020-05-12,Ritchie,West Virginia,54085,1,0 +2020-05-13,Ritchie,West Virginia,54085,1,0 +2020-05-14,Ritchie,West Virginia,54085,1,0 +2020-05-15,Ritchie,West Virginia,54085,1,0 +2020-05-16,Ritchie,West Virginia,54085,1,0 +2020-05-17,Ritchie,West Virginia,54085,1,0 +2020-05-18,Ritchie,West Virginia,54085,1,0 +2020-05-19,Ritchie,West Virginia,54085,1,0 +2020-05-20,Ritchie,West Virginia,54085,1,0 +2020-05-21,Ritchie,West Virginia,54085,1,0 +2020-05-22,Ritchie,West Virginia,54085,1,0 +2020-05-23,Ritchie,West Virginia,54085,1,0 +2020-05-24,Ritchie,West Virginia,54085,1,0 +2020-05-25,Ritchie,West Virginia,54085,1,0 +2020-05-26,Ritchie,West Virginia,54085,1,0 +2020-05-27,Ritchie,West Virginia,54085,1,0 +2020-05-28,Ritchie,West Virginia,54085,1,0 +2020-05-29,Ritchie,West Virginia,54085,1,0 +2020-05-30,Ritchie,West Virginia,54085,1,0 +2020-05-31,Ritchie,West Virginia,54085,1,0 +2020-06-01,Ritchie,West Virginia,54085,1,0 +2020-06-02,Ritchie,West Virginia,54085,1,0 +2020-06-03,Ritchie,West Virginia,54085,1,0 +2020-06-04,Ritchie,West Virginia,54085,1,0 +2020-06-05,Ritchie,West Virginia,54085,1,0 +2020-06-06,Ritchie,West Virginia,54085,1,0 +2020-06-07,Ritchie,West Virginia,54085,1,0 +2020-06-08,Ritchie,West Virginia,54085,1,0 +2020-06-09,Ritchie,West Virginia,54085,1,0 +2020-06-10,Ritchie,West Virginia,54085,2,0 +2020-06-11,Ritchie,West Virginia,54085,2,0 +2020-06-12,Ritchie,West Virginia,54085,2,0 +2020-06-13,Ritchie,West Virginia,54085,2,0 +2020-06-14,Ritchie,West Virginia,54085,2,0 +2020-06-15,Ritchie,West Virginia,54085,2,0 +2020-06-16,Ritchie,West Virginia,54085,2,0 +2020-06-17,Ritchie,West Virginia,54085,2,0 +2020-06-18,Ritchie,West Virginia,54085,2,0 +2020-06-19,Ritchie,West Virginia,54085,2,0 +2020-06-20,Ritchie,West Virginia,54085,3,0 +2020-06-21,Ritchie,West Virginia,54085,3,0 +2020-06-22,Ritchie,West Virginia,54085,3,0 +2020-06-23,Ritchie,West Virginia,54085,3,0 +2020-06-24,Ritchie,West Virginia,54085,2,0 +2020-06-25,Ritchie,West Virginia,54085,2,0 +2020-06-26,Ritchie,West Virginia,54085,2,0 +2020-06-27,Ritchie,West Virginia,54085,2,0 +2020-06-28,Ritchie,West Virginia,54085,2,0 +2020-06-29,Ritchie,West Virginia,54085,2,0 +2020-06-30,Ritchie,West Virginia,54085,2,0 +2020-07-01,Ritchie,West Virginia,54085,2,0 +2020-07-02,Ritchie,West Virginia,54085,2,0 +2020-07-03,Ritchie,West Virginia,54085,2,0 +2020-07-04,Ritchie,West Virginia,54085,2,0 +2020-07-05,Ritchie,West Virginia,54085,2,0 +2020-07-06,Ritchie,West Virginia,54085,2,0 +2020-07-07,Ritchie,West Virginia,54085,2,0 +2020-07-08,Ritchie,West Virginia,54085,2,0 +2020-07-09,Ritchie,West Virginia,54085,2,0 +2020-03-30,Roane,West Virginia,54087,2,0 +2020-03-31,Roane,West Virginia,54087,2,0 +2020-04-01,Roane,West Virginia,54087,2,0 +2020-04-02,Roane,West Virginia,54087,2,0 +2020-04-03,Roane,West Virginia,54087,2,0 +2020-04-04,Roane,West Virginia,54087,2,0 +2020-04-05,Roane,West Virginia,54087,2,0 +2020-04-06,Roane,West Virginia,54087,2,0 +2020-04-07,Roane,West Virginia,54087,2,0 +2020-04-08,Roane,West Virginia,54087,2,0 +2020-04-09,Roane,West Virginia,54087,3,0 +2020-04-10,Roane,West Virginia,54087,3,0 +2020-04-11,Roane,West Virginia,54087,2,0 +2020-04-12,Roane,West Virginia,54087,2,0 +2020-04-13,Roane,West Virginia,54087,2,0 +2020-04-14,Roane,West Virginia,54087,2,0 +2020-04-15,Roane,West Virginia,54087,2,0 +2020-04-16,Roane,West Virginia,54087,2,0 +2020-04-17,Roane,West Virginia,54087,2,0 +2020-04-18,Roane,West Virginia,54087,2,0 +2020-04-19,Roane,West Virginia,54087,3,0 +2020-04-20,Roane,West Virginia,54087,3,0 +2020-04-21,Roane,West Virginia,54087,4,0 +2020-04-22,Roane,West Virginia,54087,5,0 +2020-04-23,Roane,West Virginia,54087,4,0 +2020-04-24,Roane,West Virginia,54087,3,0 +2020-04-25,Roane,West Virginia,54087,3,0 +2020-04-26,Roane,West Virginia,54087,4,0 +2020-04-27,Roane,West Virginia,54087,4,0 +2020-04-28,Roane,West Virginia,54087,4,0 +2020-04-29,Roane,West Virginia,54087,6,0 +2020-04-30,Roane,West Virginia,54087,6,0 +2020-05-01,Roane,West Virginia,54087,6,0 +2020-05-02,Roane,West Virginia,54087,7,0 +2020-05-03,Roane,West Virginia,54087,7,0 +2020-05-04,Roane,West Virginia,54087,6,0 +2020-05-05,Roane,West Virginia,54087,6,0 +2020-05-06,Roane,West Virginia,54087,7,0 +2020-05-07,Roane,West Virginia,54087,8,0 +2020-05-08,Roane,West Virginia,54087,8,0 +2020-05-09,Roane,West Virginia,54087,8,0 +2020-05-10,Roane,West Virginia,54087,8,0 +2020-05-11,Roane,West Virginia,54087,8,0 +2020-05-12,Roane,West Virginia,54087,8,0 +2020-05-13,Roane,West Virginia,54087,8,0 +2020-05-14,Roane,West Virginia,54087,8,0 +2020-05-15,Roane,West Virginia,54087,8,0 +2020-05-16,Roane,West Virginia,54087,9,0 +2020-05-17,Roane,West Virginia,54087,9,0 +2020-05-18,Roane,West Virginia,54087,9,0 +2020-05-19,Roane,West Virginia,54087,9,0 +2020-05-20,Roane,West Virginia,54087,8,0 +2020-05-21,Roane,West Virginia,54087,8,0 +2020-05-22,Roane,West Virginia,54087,8,0 +2020-05-23,Roane,West Virginia,54087,8,0 +2020-05-24,Roane,West Virginia,54087,8,0 +2020-05-25,Roane,West Virginia,54087,8,0 +2020-05-26,Roane,West Virginia,54087,8,0 +2020-05-27,Roane,West Virginia,54087,10,0 +2020-05-28,Roane,West Virginia,54087,9,0 +2020-05-29,Roane,West Virginia,54087,9,0 +2020-05-30,Roane,West Virginia,54087,9,0 +2020-05-31,Roane,West Virginia,54087,9,0 +2020-06-01,Roane,West Virginia,54087,9,0 +2020-06-02,Roane,West Virginia,54087,9,0 +2020-06-03,Roane,West Virginia,54087,9,0 +2020-06-04,Roane,West Virginia,54087,9,1 +2020-06-05,Roane,West Virginia,54087,9,1 +2020-06-06,Roane,West Virginia,54087,9,1 +2020-06-07,Roane,West Virginia,54087,10,1 +2020-06-08,Roane,West Virginia,54087,10,1 +2020-06-09,Roane,West Virginia,54087,10,1 +2020-06-10,Roane,West Virginia,54087,10,1 +2020-06-11,Roane,West Virginia,54087,9,1 +2020-06-12,Roane,West Virginia,54087,10,1 +2020-06-13,Roane,West Virginia,54087,10,1 +2020-06-14,Roane,West Virginia,54087,10,1 +2020-06-15,Roane,West Virginia,54087,11,1 +2020-06-16,Roane,West Virginia,54087,11,1 +2020-06-17,Roane,West Virginia,54087,11,1 +2020-06-18,Roane,West Virginia,54087,11,1 +2020-06-19,Roane,West Virginia,54087,11,1 +2020-06-20,Roane,West Virginia,54087,12,1 +2020-06-21,Roane,West Virginia,54087,12,1 +2020-06-22,Roane,West Virginia,54087,12,1 +2020-06-23,Roane,West Virginia,54087,11,1 +2020-06-24,Roane,West Virginia,54087,11,1 +2020-06-25,Roane,West Virginia,54087,11,1 +2020-06-26,Roane,West Virginia,54087,11,1 +2020-06-27,Roane,West Virginia,54087,11,1 +2020-06-28,Roane,West Virginia,54087,11,1 +2020-06-29,Roane,West Virginia,54087,11,1 +2020-06-30,Roane,West Virginia,54087,11,1 +2020-07-01,Roane,West Virginia,54087,11,1 +2020-07-02,Roane,West Virginia,54087,11,1 +2020-07-03,Roane,West Virginia,54087,11,1 +2020-07-04,Roane,West Virginia,54087,11,1 +2020-07-05,Roane,West Virginia,54087,11,1 +2020-07-06,Roane,West Virginia,54087,11,1 +2020-07-07,Roane,West Virginia,54087,11,1 +2020-07-08,Roane,West Virginia,54087,11,1 +2020-07-09,Roane,West Virginia,54087,12,1 +2020-04-11,Summers,West Virginia,54089,1,0 +2020-04-12,Summers,West Virginia,54089,1,0 +2020-04-13,Summers,West Virginia,54089,1,0 +2020-04-14,Summers,West Virginia,54089,1,0 +2020-04-15,Summers,West Virginia,54089,1,0 +2020-04-16,Summers,West Virginia,54089,1,0 +2020-04-17,Summers,West Virginia,54089,1,0 +2020-04-18,Summers,West Virginia,54089,1,0 +2020-04-19,Summers,West Virginia,54089,1,0 +2020-04-20,Summers,West Virginia,54089,1,0 +2020-04-21,Summers,West Virginia,54089,1,0 +2020-04-22,Summers,West Virginia,54089,1,0 +2020-04-23,Summers,West Virginia,54089,1,0 +2020-04-24,Summers,West Virginia,54089,1,0 +2020-04-25,Summers,West Virginia,54089,1,0 +2020-04-26,Summers,West Virginia,54089,1,0 +2020-04-27,Summers,West Virginia,54089,1,0 +2020-04-28,Summers,West Virginia,54089,1,0 +2020-04-29,Summers,West Virginia,54089,1,0 +2020-04-30,Summers,West Virginia,54089,1,0 +2020-05-01,Summers,West Virginia,54089,1,0 +2020-05-02,Summers,West Virginia,54089,1,0 +2020-05-03,Summers,West Virginia,54089,1,0 +2020-05-04,Summers,West Virginia,54089,1,0 +2020-05-05,Summers,West Virginia,54089,1,0 +2020-05-06,Summers,West Virginia,54089,1,0 +2020-05-07,Summers,West Virginia,54089,1,0 +2020-05-08,Summers,West Virginia,54089,1,0 +2020-05-09,Summers,West Virginia,54089,1,0 +2020-05-10,Summers,West Virginia,54089,1,0 +2020-05-11,Summers,West Virginia,54089,1,0 +2020-05-12,Summers,West Virginia,54089,1,0 +2020-05-13,Summers,West Virginia,54089,1,0 +2020-05-14,Summers,West Virginia,54089,1,0 +2020-05-15,Summers,West Virginia,54089,1,0 +2020-05-16,Summers,West Virginia,54089,1,0 +2020-05-17,Summers,West Virginia,54089,1,0 +2020-05-18,Summers,West Virginia,54089,1,0 +2020-05-19,Summers,West Virginia,54089,1,0 +2020-05-20,Summers,West Virginia,54089,1,0 +2020-05-21,Summers,West Virginia,54089,1,0 +2020-05-22,Summers,West Virginia,54089,2,0 +2020-05-23,Summers,West Virginia,54089,2,0 +2020-05-24,Summers,West Virginia,54089,2,0 +2020-05-25,Summers,West Virginia,54089,1,0 +2020-05-26,Summers,West Virginia,54089,1,0 +2020-05-27,Summers,West Virginia,54089,1,0 +2020-05-28,Summers,West Virginia,54089,1,0 +2020-05-29,Summers,West Virginia,54089,1,0 +2020-05-30,Summers,West Virginia,54089,1,0 +2020-05-31,Summers,West Virginia,54089,1,0 +2020-06-01,Summers,West Virginia,54089,1,0 +2020-06-02,Summers,West Virginia,54089,1,0 +2020-06-03,Summers,West Virginia,54089,1,0 +2020-06-04,Summers,West Virginia,54089,1,0 +2020-06-05,Summers,West Virginia,54089,1,0 +2020-06-06,Summers,West Virginia,54089,1,0 +2020-06-07,Summers,West Virginia,54089,1,0 +2020-06-08,Summers,West Virginia,54089,1,0 +2020-06-09,Summers,West Virginia,54089,1,0 +2020-06-10,Summers,West Virginia,54089,1,0 +2020-06-11,Summers,West Virginia,54089,1,0 +2020-06-12,Summers,West Virginia,54089,1,0 +2020-06-13,Summers,West Virginia,54089,1,0 +2020-06-14,Summers,West Virginia,54089,1,0 +2020-06-15,Summers,West Virginia,54089,1,0 +2020-06-16,Summers,West Virginia,54089,1,0 +2020-06-17,Summers,West Virginia,54089,1,0 +2020-06-18,Summers,West Virginia,54089,1,0 +2020-06-19,Summers,West Virginia,54089,1,0 +2020-06-20,Summers,West Virginia,54089,1,0 +2020-06-21,Summers,West Virginia,54089,1,0 +2020-06-22,Summers,West Virginia,54089,1,0 +2020-06-23,Summers,West Virginia,54089,1,0 +2020-06-24,Summers,West Virginia,54089,1,0 +2020-06-25,Summers,West Virginia,54089,1,0 +2020-06-26,Summers,West Virginia,54089,1,0 +2020-06-27,Summers,West Virginia,54089,1,0 +2020-06-28,Summers,West Virginia,54089,2,0 +2020-06-29,Summers,West Virginia,54089,2,0 +2020-06-30,Summers,West Virginia,54089,2,0 +2020-07-01,Summers,West Virginia,54089,2,0 +2020-07-02,Summers,West Virginia,54089,2,0 +2020-07-03,Summers,West Virginia,54089,2,0 +2020-07-04,Summers,West Virginia,54089,2,0 +2020-07-05,Summers,West Virginia,54089,2,0 +2020-07-06,Summers,West Virginia,54089,2,0 +2020-07-07,Summers,West Virginia,54089,2,0 +2020-07-08,Summers,West Virginia,54089,2,0 +2020-07-09,Summers,West Virginia,54089,2,0 +2020-04-06,Taylor,West Virginia,54091,1,0 +2020-04-07,Taylor,West Virginia,54091,3,0 +2020-04-08,Taylor,West Virginia,54091,5,0 +2020-04-09,Taylor,West Virginia,54091,3,0 +2020-04-10,Taylor,West Virginia,54091,3,0 +2020-04-11,Taylor,West Virginia,54091,3,0 +2020-04-12,Taylor,West Virginia,54091,3,0 +2020-04-13,Taylor,West Virginia,54091,4,0 +2020-04-14,Taylor,West Virginia,54091,4,0 +2020-04-15,Taylor,West Virginia,54091,4,0 +2020-04-16,Taylor,West Virginia,54091,4,0 +2020-04-17,Taylor,West Virginia,54091,5,0 +2020-04-18,Taylor,West Virginia,54091,5,0 +2020-04-19,Taylor,West Virginia,54091,5,0 +2020-04-20,Taylor,West Virginia,54091,5,0 +2020-04-21,Taylor,West Virginia,54091,5,0 +2020-04-22,Taylor,West Virginia,54091,5,0 +2020-04-23,Taylor,West Virginia,54091,5,0 +2020-04-24,Taylor,West Virginia,54091,5,0 +2020-04-25,Taylor,West Virginia,54091,5,0 +2020-04-26,Taylor,West Virginia,54091,6,0 +2020-04-27,Taylor,West Virginia,54091,6,0 +2020-04-28,Taylor,West Virginia,54091,6,0 +2020-04-29,Taylor,West Virginia,54091,6,0 +2020-04-30,Taylor,West Virginia,54091,6,0 +2020-05-01,Taylor,West Virginia,54091,6,0 +2020-05-02,Taylor,West Virginia,54091,7,0 +2020-05-03,Taylor,West Virginia,54091,7,0 +2020-05-04,Taylor,West Virginia,54091,7,0 +2020-05-05,Taylor,West Virginia,54091,9,0 +2020-05-06,Taylor,West Virginia,54091,8,0 +2020-05-07,Taylor,West Virginia,54091,8,0 +2020-05-08,Taylor,West Virginia,54091,8,0 +2020-05-09,Taylor,West Virginia,54091,8,0 +2020-05-10,Taylor,West Virginia,54091,8,0 +2020-05-11,Taylor,West Virginia,54091,8,0 +2020-05-12,Taylor,West Virginia,54091,8,0 +2020-05-13,Taylor,West Virginia,54091,8,0 +2020-05-14,Taylor,West Virginia,54091,8,0 +2020-05-15,Taylor,West Virginia,54091,8,0 +2020-05-16,Taylor,West Virginia,54091,8,0 +2020-05-17,Taylor,West Virginia,54091,8,0 +2020-05-18,Taylor,West Virginia,54091,8,0 +2020-05-19,Taylor,West Virginia,54091,8,0 +2020-05-20,Taylor,West Virginia,54091,8,0 +2020-05-21,Taylor,West Virginia,54091,8,0 +2020-05-22,Taylor,West Virginia,54091,8,0 +2020-05-23,Taylor,West Virginia,54091,8,0 +2020-05-24,Taylor,West Virginia,54091,8,0 +2020-05-25,Taylor,West Virginia,54091,8,0 +2020-05-26,Taylor,West Virginia,54091,8,0 +2020-05-27,Taylor,West Virginia,54091,9,0 +2020-05-28,Taylor,West Virginia,54091,8,0 +2020-05-29,Taylor,West Virginia,54091,8,0 +2020-05-30,Taylor,West Virginia,54091,8,0 +2020-05-31,Taylor,West Virginia,54091,8,0 +2020-06-01,Taylor,West Virginia,54091,9,0 +2020-06-02,Taylor,West Virginia,54091,9,0 +2020-06-03,Taylor,West Virginia,54091,9,0 +2020-06-04,Taylor,West Virginia,54091,9,0 +2020-06-05,Taylor,West Virginia,54091,9,0 +2020-06-06,Taylor,West Virginia,54091,9,0 +2020-06-07,Taylor,West Virginia,54091,9,0 +2020-06-08,Taylor,West Virginia,54091,9,0 +2020-06-09,Taylor,West Virginia,54091,9,0 +2020-06-10,Taylor,West Virginia,54091,9,0 +2020-06-11,Taylor,West Virginia,54091,10,0 +2020-06-12,Taylor,West Virginia,54091,10,0 +2020-06-13,Taylor,West Virginia,54091,10,0 +2020-06-14,Taylor,West Virginia,54091,10,0 +2020-06-15,Taylor,West Virginia,54091,10,0 +2020-06-16,Taylor,West Virginia,54091,10,0 +2020-06-17,Taylor,West Virginia,54091,12,0 +2020-06-18,Taylor,West Virginia,54091,12,0 +2020-06-19,Taylor,West Virginia,54091,13,0 +2020-06-20,Taylor,West Virginia,54091,13,0 +2020-06-21,Taylor,West Virginia,54091,13,0 +2020-06-22,Taylor,West Virginia,54091,14,0 +2020-06-23,Taylor,West Virginia,54091,14,0 +2020-06-24,Taylor,West Virginia,54091,14,0 +2020-06-25,Taylor,West Virginia,54091,14,0 +2020-06-26,Taylor,West Virginia,54091,14,0 +2020-06-27,Taylor,West Virginia,54091,16,0 +2020-06-28,Taylor,West Virginia,54091,16,0 +2020-06-29,Taylor,West Virginia,54091,16,0 +2020-06-30,Taylor,West Virginia,54091,16,0 +2020-07-01,Taylor,West Virginia,54091,16,0 +2020-07-02,Taylor,West Virginia,54091,16,0 +2020-07-03,Taylor,West Virginia,54091,17,0 +2020-07-04,Taylor,West Virginia,54091,18,0 +2020-07-05,Taylor,West Virginia,54091,17,0 +2020-07-06,Taylor,West Virginia,54091,17,0 +2020-07-07,Taylor,West Virginia,54091,18,0 +2020-07-08,Taylor,West Virginia,54091,19,0 +2020-07-09,Taylor,West Virginia,54091,20,0 +2020-03-19,Tucker,West Virginia,54093,2,0 +2020-03-20,Tucker,West Virginia,54093,2,0 +2020-03-21,Tucker,West Virginia,54093,2,0 +2020-03-22,Tucker,West Virginia,54093,2,0 +2020-03-23,Tucker,West Virginia,54093,2,0 +2020-03-24,Tucker,West Virginia,54093,2,0 +2020-03-25,Tucker,West Virginia,54093,2,0 +2020-03-26,Tucker,West Virginia,54093,2,0 +2020-03-27,Tucker,West Virginia,54093,2,0 +2020-03-28,Tucker,West Virginia,54093,2,0 +2020-03-29,Tucker,West Virginia,54093,2,0 +2020-03-30,Tucker,West Virginia,54093,2,0 +2020-03-31,Tucker,West Virginia,54093,2,0 +2020-04-01,Tucker,West Virginia,54093,2,0 +2020-04-02,Tucker,West Virginia,54093,3,0 +2020-04-03,Tucker,West Virginia,54093,3,0 +2020-04-04,Tucker,West Virginia,54093,3,0 +2020-04-05,Tucker,West Virginia,54093,3,0 +2020-04-06,Tucker,West Virginia,54093,3,0 +2020-04-07,Tucker,West Virginia,54093,3,0 +2020-04-08,Tucker,West Virginia,54093,3,0 +2020-04-09,Tucker,West Virginia,54093,3,0 +2020-04-10,Tucker,West Virginia,54093,3,0 +2020-04-11,Tucker,West Virginia,54093,4,0 +2020-04-12,Tucker,West Virginia,54093,4,0 +2020-04-13,Tucker,West Virginia,54093,4,0 +2020-04-14,Tucker,West Virginia,54093,4,0 +2020-04-15,Tucker,West Virginia,54093,4,0 +2020-04-16,Tucker,West Virginia,54093,4,0 +2020-04-17,Tucker,West Virginia,54093,4,0 +2020-04-18,Tucker,West Virginia,54093,4,0 +2020-04-19,Tucker,West Virginia,54093,4,0 +2020-04-20,Tucker,West Virginia,54093,4,0 +2020-04-21,Tucker,West Virginia,54093,4,0 +2020-04-22,Tucker,West Virginia,54093,4,0 +2020-04-23,Tucker,West Virginia,54093,4,0 +2020-04-24,Tucker,West Virginia,54093,4,0 +2020-04-25,Tucker,West Virginia,54093,4,0 +2020-04-26,Tucker,West Virginia,54093,4,0 +2020-04-27,Tucker,West Virginia,54093,4,0 +2020-04-28,Tucker,West Virginia,54093,4,0 +2020-04-29,Tucker,West Virginia,54093,4,0 +2020-04-30,Tucker,West Virginia,54093,4,0 +2020-05-01,Tucker,West Virginia,54093,4,0 +2020-05-02,Tucker,West Virginia,54093,4,0 +2020-05-03,Tucker,West Virginia,54093,4,0 +2020-05-04,Tucker,West Virginia,54093,4,0 +2020-05-05,Tucker,West Virginia,54093,4,0 +2020-05-06,Tucker,West Virginia,54093,4,0 +2020-05-07,Tucker,West Virginia,54093,4,0 +2020-05-08,Tucker,West Virginia,54093,4,0 +2020-05-09,Tucker,West Virginia,54093,4,0 +2020-05-10,Tucker,West Virginia,54093,4,0 +2020-05-11,Tucker,West Virginia,54093,4,0 +2020-05-12,Tucker,West Virginia,54093,4,0 +2020-05-13,Tucker,West Virginia,54093,4,0 +2020-05-14,Tucker,West Virginia,54093,4,0 +2020-05-15,Tucker,West Virginia,54093,4,0 +2020-05-16,Tucker,West Virginia,54093,4,0 +2020-05-17,Tucker,West Virginia,54093,4,0 +2020-05-18,Tucker,West Virginia,54093,4,0 +2020-05-19,Tucker,West Virginia,54093,4,0 +2020-05-20,Tucker,West Virginia,54093,4,0 +2020-05-21,Tucker,West Virginia,54093,4,0 +2020-05-22,Tucker,West Virginia,54093,4,0 +2020-05-23,Tucker,West Virginia,54093,4,0 +2020-05-24,Tucker,West Virginia,54093,4,0 +2020-05-25,Tucker,West Virginia,54093,4,0 +2020-05-26,Tucker,West Virginia,54093,4,0 +2020-05-27,Tucker,West Virginia,54093,4,0 +2020-05-28,Tucker,West Virginia,54093,4,0 +2020-05-29,Tucker,West Virginia,54093,4,0 +2020-05-30,Tucker,West Virginia,54093,4,0 +2020-05-31,Tucker,West Virginia,54093,4,0 +2020-06-01,Tucker,West Virginia,54093,4,0 +2020-06-02,Tucker,West Virginia,54093,4,0 +2020-06-03,Tucker,West Virginia,54093,4,0 +2020-06-04,Tucker,West Virginia,54093,4,0 +2020-06-05,Tucker,West Virginia,54093,4,0 +2020-06-06,Tucker,West Virginia,54093,6,0 +2020-06-07,Tucker,West Virginia,54093,6,0 +2020-06-08,Tucker,West Virginia,54093,6,0 +2020-06-09,Tucker,West Virginia,54093,6,0 +2020-06-10,Tucker,West Virginia,54093,4,0 +2020-06-11,Tucker,West Virginia,54093,4,0 +2020-06-12,Tucker,West Virginia,54093,5,0 +2020-06-13,Tucker,West Virginia,54093,5,0 +2020-06-14,Tucker,West Virginia,54093,5,0 +2020-06-15,Tucker,West Virginia,54093,5,0 +2020-06-16,Tucker,West Virginia,54093,5,0 +2020-06-17,Tucker,West Virginia,54093,5,0 +2020-06-18,Tucker,West Virginia,54093,5,0 +2020-06-19,Tucker,West Virginia,54093,5,0 +2020-06-20,Tucker,West Virginia,54093,5,0 +2020-06-21,Tucker,West Virginia,54093,5,0 +2020-06-22,Tucker,West Virginia,54093,5,0 +2020-06-23,Tucker,West Virginia,54093,6,0 +2020-06-24,Tucker,West Virginia,54093,6,0 +2020-06-25,Tucker,West Virginia,54093,6,0 +2020-06-26,Tucker,West Virginia,54093,6,0 +2020-06-27,Tucker,West Virginia,54093,6,0 +2020-06-28,Tucker,West Virginia,54093,6,0 +2020-06-29,Tucker,West Virginia,54093,6,0 +2020-06-30,Tucker,West Virginia,54093,6,0 +2020-07-01,Tucker,West Virginia,54093,6,0 +2020-07-02,Tucker,West Virginia,54093,6,0 +2020-07-03,Tucker,West Virginia,54093,6,0 +2020-07-04,Tucker,West Virginia,54093,6,0 +2020-07-05,Tucker,West Virginia,54093,6,0 +2020-07-06,Tucker,West Virginia,54093,6,0 +2020-07-07,Tucker,West Virginia,54093,6,0 +2020-07-08,Tucker,West Virginia,54093,6,0 +2020-07-09,Tucker,West Virginia,54093,6,0 +2020-04-07,Tyler,West Virginia,54095,1,0 +2020-04-08,Tyler,West Virginia,54095,1,0 +2020-04-09,Tyler,West Virginia,54095,2,0 +2020-04-10,Tyler,West Virginia,54095,2,0 +2020-04-11,Tyler,West Virginia,54095,3,0 +2020-04-12,Tyler,West Virginia,54095,3,0 +2020-04-13,Tyler,West Virginia,54095,3,0 +2020-04-14,Tyler,West Virginia,54095,3,0 +2020-04-15,Tyler,West Virginia,54095,3,0 +2020-04-16,Tyler,West Virginia,54095,3,0 +2020-04-17,Tyler,West Virginia,54095,3,0 +2020-04-18,Tyler,West Virginia,54095,3,0 +2020-04-19,Tyler,West Virginia,54095,3,0 +2020-04-20,Tyler,West Virginia,54095,3,0 +2020-04-21,Tyler,West Virginia,54095,3,0 +2020-04-22,Tyler,West Virginia,54095,3,0 +2020-04-23,Tyler,West Virginia,54095,3,0 +2020-04-24,Tyler,West Virginia,54095,3,0 +2020-04-25,Tyler,West Virginia,54095,3,0 +2020-04-26,Tyler,West Virginia,54095,3,0 +2020-04-27,Tyler,West Virginia,54095,3,0 +2020-04-28,Tyler,West Virginia,54095,3,0 +2020-04-29,Tyler,West Virginia,54095,3,0 +2020-04-30,Tyler,West Virginia,54095,3,0 +2020-05-01,Tyler,West Virginia,54095,3,0 +2020-05-02,Tyler,West Virginia,54095,3,0 +2020-05-03,Tyler,West Virginia,54095,3,0 +2020-05-04,Tyler,West Virginia,54095,3,0 +2020-05-05,Tyler,West Virginia,54095,3,0 +2020-05-06,Tyler,West Virginia,54095,3,0 +2020-05-07,Tyler,West Virginia,54095,3,0 +2020-05-08,Tyler,West Virginia,54095,3,0 +2020-05-09,Tyler,West Virginia,54095,3,0 +2020-05-10,Tyler,West Virginia,54095,3,0 +2020-05-11,Tyler,West Virginia,54095,3,0 +2020-05-12,Tyler,West Virginia,54095,3,0 +2020-05-13,Tyler,West Virginia,54095,3,0 +2020-05-14,Tyler,West Virginia,54095,3,0 +2020-05-15,Tyler,West Virginia,54095,3,0 +2020-05-16,Tyler,West Virginia,54095,3,0 +2020-05-17,Tyler,West Virginia,54095,3,0 +2020-05-18,Tyler,West Virginia,54095,3,0 +2020-05-19,Tyler,West Virginia,54095,3,0 +2020-05-20,Tyler,West Virginia,54095,3,0 +2020-05-21,Tyler,West Virginia,54095,3,0 +2020-05-22,Tyler,West Virginia,54095,3,0 +2020-05-23,Tyler,West Virginia,54095,3,0 +2020-05-24,Tyler,West Virginia,54095,3,0 +2020-05-25,Tyler,West Virginia,54095,3,0 +2020-05-26,Tyler,West Virginia,54095,3,0 +2020-05-27,Tyler,West Virginia,54095,3,0 +2020-05-28,Tyler,West Virginia,54095,3,0 +2020-05-29,Tyler,West Virginia,54095,3,0 +2020-05-30,Tyler,West Virginia,54095,3,0 +2020-05-31,Tyler,West Virginia,54095,3,0 +2020-06-01,Tyler,West Virginia,54095,3,0 +2020-06-02,Tyler,West Virginia,54095,3,0 +2020-06-03,Tyler,West Virginia,54095,3,0 +2020-06-04,Tyler,West Virginia,54095,3,0 +2020-06-05,Tyler,West Virginia,54095,3,0 +2020-06-06,Tyler,West Virginia,54095,3,0 +2020-06-07,Tyler,West Virginia,54095,3,0 +2020-06-08,Tyler,West Virginia,54095,3,0 +2020-06-09,Tyler,West Virginia,54095,3,0 +2020-06-10,Tyler,West Virginia,54095,3,0 +2020-06-11,Tyler,West Virginia,54095,3,0 +2020-06-12,Tyler,West Virginia,54095,3,0 +2020-06-13,Tyler,West Virginia,54095,3,0 +2020-06-14,Tyler,West Virginia,54095,3,0 +2020-06-15,Tyler,West Virginia,54095,3,0 +2020-06-16,Tyler,West Virginia,54095,3,0 +2020-06-17,Tyler,West Virginia,54095,3,0 +2020-06-18,Tyler,West Virginia,54095,3,0 +2020-06-19,Tyler,West Virginia,54095,3,0 +2020-06-20,Tyler,West Virginia,54095,3,0 +2020-06-21,Tyler,West Virginia,54095,3,0 +2020-06-22,Tyler,West Virginia,54095,3,0 +2020-06-23,Tyler,West Virginia,54095,3,0 +2020-06-24,Tyler,West Virginia,54095,3,0 +2020-06-25,Tyler,West Virginia,54095,3,0 +2020-06-26,Tyler,West Virginia,54095,3,0 +2020-06-27,Tyler,West Virginia,54095,4,0 +2020-06-28,Tyler,West Virginia,54095,4,0 +2020-06-29,Tyler,West Virginia,54095,4,0 +2020-06-30,Tyler,West Virginia,54095,4,0 +2020-07-01,Tyler,West Virginia,54095,4,0 +2020-07-02,Tyler,West Virginia,54095,4,0 +2020-07-03,Tyler,West Virginia,54095,4,0 +2020-07-04,Tyler,West Virginia,54095,4,0 +2020-07-05,Tyler,West Virginia,54095,5,0 +2020-07-06,Tyler,West Virginia,54095,5,0 +2020-07-07,Tyler,West Virginia,54095,5,0 +2020-07-08,Tyler,West Virginia,54095,7,0 +2020-07-09,Tyler,West Virginia,54095,7,0 +2020-03-26,Upshur,West Virginia,54097,1,0 +2020-03-27,Upshur,West Virginia,54097,1,0 +2020-03-28,Upshur,West Virginia,54097,1,0 +2020-03-29,Upshur,West Virginia,54097,1,0 +2020-03-30,Upshur,West Virginia,54097,1,0 +2020-03-31,Upshur,West Virginia,54097,1,0 +2020-04-01,Upshur,West Virginia,54097,1,0 +2020-04-02,Upshur,West Virginia,54097,1,0 +2020-04-03,Upshur,West Virginia,54097,1,0 +2020-04-04,Upshur,West Virginia,54097,1,0 +2020-04-05,Upshur,West Virginia,54097,1,0 +2020-04-06,Upshur,West Virginia,54097,1,0 +2020-04-07,Upshur,West Virginia,54097,1,0 +2020-04-08,Upshur,West Virginia,54097,2,0 +2020-04-09,Upshur,West Virginia,54097,2,0 +2020-04-10,Upshur,West Virginia,54097,2,0 +2020-04-11,Upshur,West Virginia,54097,3,0 +2020-04-12,Upshur,West Virginia,54097,3,0 +2020-04-13,Upshur,West Virginia,54097,3,0 +2020-04-14,Upshur,West Virginia,54097,3,0 +2020-04-15,Upshur,West Virginia,54097,3,0 +2020-04-16,Upshur,West Virginia,54097,3,0 +2020-04-17,Upshur,West Virginia,54097,4,0 +2020-04-18,Upshur,West Virginia,54097,4,0 +2020-04-19,Upshur,West Virginia,54097,4,0 +2020-04-20,Upshur,West Virginia,54097,4,0 +2020-04-21,Upshur,West Virginia,54097,4,0 +2020-04-22,Upshur,West Virginia,54097,4,0 +2020-04-23,Upshur,West Virginia,54097,4,0 +2020-04-24,Upshur,West Virginia,54097,4,0 +2020-04-25,Upshur,West Virginia,54097,4,0 +2020-04-26,Upshur,West Virginia,54097,4,0 +2020-04-27,Upshur,West Virginia,54097,4,0 +2020-04-28,Upshur,West Virginia,54097,4,0 +2020-04-29,Upshur,West Virginia,54097,4,0 +2020-04-30,Upshur,West Virginia,54097,4,0 +2020-05-01,Upshur,West Virginia,54097,4,0 +2020-05-02,Upshur,West Virginia,54097,4,0 +2020-05-03,Upshur,West Virginia,54097,4,0 +2020-05-04,Upshur,West Virginia,54097,5,0 +2020-05-05,Upshur,West Virginia,54097,5,0 +2020-05-06,Upshur,West Virginia,54097,5,0 +2020-05-07,Upshur,West Virginia,54097,5,0 +2020-05-08,Upshur,West Virginia,54097,5,0 +2020-05-09,Upshur,West Virginia,54097,5,0 +2020-05-10,Upshur,West Virginia,54097,5,0 +2020-05-11,Upshur,West Virginia,54097,5,0 +2020-05-12,Upshur,West Virginia,54097,6,0 +2020-05-13,Upshur,West Virginia,54097,6,0 +2020-05-14,Upshur,West Virginia,54097,6,0 +2020-05-15,Upshur,West Virginia,54097,6,0 +2020-05-16,Upshur,West Virginia,54097,6,0 +2020-05-17,Upshur,West Virginia,54097,6,0 +2020-05-18,Upshur,West Virginia,54097,6,0 +2020-05-19,Upshur,West Virginia,54097,6,0 +2020-05-20,Upshur,West Virginia,54097,6,0 +2020-05-21,Upshur,West Virginia,54097,6,0 +2020-05-22,Upshur,West Virginia,54097,7,0 +2020-05-23,Upshur,West Virginia,54097,7,0 +2020-05-24,Upshur,West Virginia,54097,7,0 +2020-05-25,Upshur,West Virginia,54097,7,0 +2020-05-26,Upshur,West Virginia,54097,7,0 +2020-05-27,Upshur,West Virginia,54097,7,0 +2020-05-28,Upshur,West Virginia,54097,7,0 +2020-05-29,Upshur,West Virginia,54097,7,0 +2020-05-30,Upshur,West Virginia,54097,7,0 +2020-05-31,Upshur,West Virginia,54097,7,0 +2020-06-01,Upshur,West Virginia,54097,7,0 +2020-06-02,Upshur,West Virginia,54097,7,0 +2020-06-03,Upshur,West Virginia,54097,7,0 +2020-06-04,Upshur,West Virginia,54097,7,0 +2020-06-05,Upshur,West Virginia,54097,7,0 +2020-06-06,Upshur,West Virginia,54097,7,0 +2020-06-07,Upshur,West Virginia,54097,7,0 +2020-06-08,Upshur,West Virginia,54097,7,0 +2020-06-09,Upshur,West Virginia,54097,7,0 +2020-06-10,Upshur,West Virginia,54097,7,0 +2020-06-11,Upshur,West Virginia,54097,7,0 +2020-06-12,Upshur,West Virginia,54097,7,0 +2020-06-13,Upshur,West Virginia,54097,7,0 +2020-06-14,Upshur,West Virginia,54097,7,0 +2020-06-15,Upshur,West Virginia,54097,7,0 +2020-06-16,Upshur,West Virginia,54097,7,0 +2020-06-17,Upshur,West Virginia,54097,9,0 +2020-06-18,Upshur,West Virginia,54097,11,0 +2020-06-19,Upshur,West Virginia,54097,13,0 +2020-06-20,Upshur,West Virginia,54097,11,0 +2020-06-21,Upshur,West Virginia,54097,12,0 +2020-06-22,Upshur,West Virginia,54097,12,0 +2020-06-23,Upshur,West Virginia,54097,12,0 +2020-06-24,Upshur,West Virginia,54097,14,0 +2020-06-25,Upshur,West Virginia,54097,14,0 +2020-06-26,Upshur,West Virginia,54097,14,0 +2020-06-27,Upshur,West Virginia,54097,14,0 +2020-06-28,Upshur,West Virginia,54097,16,0 +2020-06-29,Upshur,West Virginia,54097,19,0 +2020-06-30,Upshur,West Virginia,54097,19,0 +2020-07-01,Upshur,West Virginia,54097,21,0 +2020-07-02,Upshur,West Virginia,54097,21,0 +2020-07-03,Upshur,West Virginia,54097,21,0 +2020-07-04,Upshur,West Virginia,54097,21,0 +2020-07-05,Upshur,West Virginia,54097,21,0 +2020-07-06,Upshur,West Virginia,54097,21,0 +2020-07-07,Upshur,West Virginia,54097,22,0 +2020-07-08,Upshur,West Virginia,54097,22,0 +2020-07-09,Upshur,West Virginia,54097,23,0 +2020-04-09,Wayne,West Virginia,54099,6,0 +2020-04-10,Wayne,West Virginia,54099,16,0 +2020-04-11,Wayne,West Virginia,54099,17,0 +2020-04-12,Wayne,West Virginia,54099,17,0 +2020-04-13,Wayne,West Virginia,54099,19,0 +2020-04-14,Wayne,West Virginia,54099,60,0 +2020-04-15,Wayne,West Virginia,54099,69,1 +2020-04-16,Wayne,West Virginia,54099,72,1 +2020-04-17,Wayne,West Virginia,54099,74,3 +2020-04-18,Wayne,West Virginia,54099,75,3 +2020-04-19,Wayne,West Virginia,54099,78,3 +2020-04-20,Wayne,West Virginia,54099,78,4 +2020-04-21,Wayne,West Virginia,54099,78,4 +2020-04-22,Wayne,West Virginia,54099,79,5 +2020-04-23,Wayne,West Virginia,54099,81,6 +2020-04-24,Wayne,West Virginia,54099,81,6 +2020-04-25,Wayne,West Virginia,54099,82,6 +2020-04-26,Wayne,West Virginia,54099,82,6 +2020-04-27,Wayne,West Virginia,54099,83,6 +2020-04-28,Wayne,West Virginia,54099,84,6 +2020-04-29,Wayne,West Virginia,54099,85,7 +2020-04-30,Wayne,West Virginia,54099,85,7 +2020-05-01,Wayne,West Virginia,54099,86,7 +2020-05-02,Wayne,West Virginia,54099,89,7 +2020-05-03,Wayne,West Virginia,54099,89,7 +2020-05-04,Wayne,West Virginia,54099,90,7 +2020-05-05,Wayne,West Virginia,54099,91,7 +2020-05-06,Wayne,West Virginia,54099,92,7 +2020-05-07,Wayne,West Virginia,54099,93,7 +2020-05-08,Wayne,West Virginia,54099,93,7 +2020-05-09,Wayne,West Virginia,54099,93,7 +2020-05-10,Wayne,West Virginia,54099,93,7 +2020-05-11,Wayne,West Virginia,54099,93,7 +2020-05-12,Wayne,West Virginia,54099,93,7 +2020-05-13,Wayne,West Virginia,54099,93,7 +2020-05-14,Wayne,West Virginia,54099,95,8 +2020-05-15,Wayne,West Virginia,54099,96,9 +2020-05-16,Wayne,West Virginia,54099,96,9 +2020-05-17,Wayne,West Virginia,54099,96,9 +2020-05-18,Wayne,West Virginia,54099,96,9 +2020-05-19,Wayne,West Virginia,54099,96,9 +2020-05-20,Wayne,West Virginia,54099,96,9 +2020-05-21,Wayne,West Virginia,54099,96,9 +2020-05-22,Wayne,West Virginia,54099,97,9 +2020-05-23,Wayne,West Virginia,54099,97,9 +2020-05-24,Wayne,West Virginia,54099,97,9 +2020-05-25,Wayne,West Virginia,54099,97,9 +2020-05-26,Wayne,West Virginia,54099,97,9 +2020-05-27,Wayne,West Virginia,54099,97,9 +2020-05-28,Wayne,West Virginia,54099,98,9 +2020-05-29,Wayne,West Virginia,54099,98,9 +2020-05-30,Wayne,West Virginia,54099,98,9 +2020-05-31,Wayne,West Virginia,54099,99,9 +2020-06-01,Wayne,West Virginia,54099,100,9 +2020-06-02,Wayne,West Virginia,54099,102,9 +2020-06-03,Wayne,West Virginia,54099,102,9 +2020-06-04,Wayne,West Virginia,54099,103,9 +2020-06-05,Wayne,West Virginia,54099,103,9 +2020-06-06,Wayne,West Virginia,54099,103,9 +2020-06-07,Wayne,West Virginia,54099,103,9 +2020-06-08,Wayne,West Virginia,54099,103,9 +2020-06-09,Wayne,West Virginia,54099,103,9 +2020-06-10,Wayne,West Virginia,54099,103,9 +2020-06-11,Wayne,West Virginia,54099,103,9 +2020-06-12,Wayne,West Virginia,54099,104,9 +2020-06-13,Wayne,West Virginia,54099,104,9 +2020-06-14,Wayne,West Virginia,54099,105,9 +2020-06-15,Wayne,West Virginia,54099,106,9 +2020-06-16,Wayne,West Virginia,54099,106,9 +2020-06-17,Wayne,West Virginia,54099,106,9 +2020-06-18,Wayne,West Virginia,54099,106,9 +2020-06-19,Wayne,West Virginia,54099,106,9 +2020-06-20,Wayne,West Virginia,54099,106,9 +2020-06-21,Wayne,West Virginia,54099,106,9 +2020-06-22,Wayne,West Virginia,54099,106,9 +2020-06-23,Wayne,West Virginia,54099,107,9 +2020-06-24,Wayne,West Virginia,54099,108,9 +2020-06-25,Wayne,West Virginia,54099,110,9 +2020-06-26,Wayne,West Virginia,54099,110,9 +2020-06-27,Wayne,West Virginia,54099,110,9 +2020-06-28,Wayne,West Virginia,54099,111,9 +2020-06-29,Wayne,West Virginia,54099,111,9 +2020-06-30,Wayne,West Virginia,54099,111,9 +2020-07-01,Wayne,West Virginia,54099,112,9 +2020-07-02,Wayne,West Virginia,54099,115,9 +2020-07-03,Wayne,West Virginia,54099,115,9 +2020-07-04,Wayne,West Virginia,54099,115,9 +2020-07-05,Wayne,West Virginia,54099,117,9 +2020-07-06,Wayne,West Virginia,54099,120,9 +2020-07-07,Wayne,West Virginia,54099,120,9 +2020-07-08,Wayne,West Virginia,54099,120,9 +2020-07-09,Wayne,West Virginia,54099,121,9 +2020-07-06,Webster,West Virginia,54101,1,0 +2020-07-07,Webster,West Virginia,54101,1,0 +2020-07-08,Webster,West Virginia,54101,1,0 +2020-07-09,Webster,West Virginia,54101,1,0 +2020-03-29,Wetzel,West Virginia,54103,1,0 +2020-03-30,Wetzel,West Virginia,54103,1,0 +2020-03-31,Wetzel,West Virginia,54103,1,0 +2020-04-01,Wetzel,West Virginia,54103,2,0 +2020-04-02,Wetzel,West Virginia,54103,2,0 +2020-04-03,Wetzel,West Virginia,54103,2,0 +2020-04-04,Wetzel,West Virginia,54103,2,0 +2020-04-05,Wetzel,West Virginia,54103,2,0 +2020-04-06,Wetzel,West Virginia,54103,2,0 +2020-04-07,Wetzel,West Virginia,54103,2,0 +2020-04-08,Wetzel,West Virginia,54103,3,0 +2020-04-09,Wetzel,West Virginia,54103,2,0 +2020-04-10,Wetzel,West Virginia,54103,3,0 +2020-04-11,Wetzel,West Virginia,54103,3,0 +2020-04-12,Wetzel,West Virginia,54103,3,0 +2020-04-13,Wetzel,West Virginia,54103,3,0 +2020-04-14,Wetzel,West Virginia,54103,3,0 +2020-04-15,Wetzel,West Virginia,54103,3,0 +2020-04-16,Wetzel,West Virginia,54103,3,0 +2020-04-17,Wetzel,West Virginia,54103,3,0 +2020-04-18,Wetzel,West Virginia,54103,3,0 +2020-04-19,Wetzel,West Virginia,54103,3,0 +2020-04-20,Wetzel,West Virginia,54103,3,0 +2020-04-21,Wetzel,West Virginia,54103,3,0 +2020-04-22,Wetzel,West Virginia,54103,3,0 +2020-04-23,Wetzel,West Virginia,54103,3,0 +2020-04-24,Wetzel,West Virginia,54103,3,0 +2020-04-25,Wetzel,West Virginia,54103,3,0 +2020-04-26,Wetzel,West Virginia,54103,3,0 +2020-04-27,Wetzel,West Virginia,54103,3,0 +2020-04-28,Wetzel,West Virginia,54103,3,0 +2020-04-29,Wetzel,West Virginia,54103,3,0 +2020-04-30,Wetzel,West Virginia,54103,3,0 +2020-05-01,Wetzel,West Virginia,54103,3,0 +2020-05-02,Wetzel,West Virginia,54103,3,0 +2020-05-03,Wetzel,West Virginia,54103,3,0 +2020-05-04,Wetzel,West Virginia,54103,3,0 +2020-05-05,Wetzel,West Virginia,54103,3,0 +2020-05-06,Wetzel,West Virginia,54103,3,0 +2020-05-07,Wetzel,West Virginia,54103,4,0 +2020-05-08,Wetzel,West Virginia,54103,4,0 +2020-05-09,Wetzel,West Virginia,54103,6,0 +2020-05-10,Wetzel,West Virginia,54103,6,0 +2020-05-11,Wetzel,West Virginia,54103,6,0 +2020-05-12,Wetzel,West Virginia,54103,6,0 +2020-05-13,Wetzel,West Virginia,54103,6,0 +2020-05-14,Wetzel,West Virginia,54103,6,0 +2020-05-15,Wetzel,West Virginia,54103,7,0 +2020-05-16,Wetzel,West Virginia,54103,7,0 +2020-05-17,Wetzel,West Virginia,54103,7,0 +2020-05-18,Wetzel,West Virginia,54103,7,0 +2020-05-19,Wetzel,West Virginia,54103,7,0 +2020-05-20,Wetzel,West Virginia,54103,7,0 +2020-05-21,Wetzel,West Virginia,54103,7,0 +2020-05-22,Wetzel,West Virginia,54103,8,0 +2020-05-23,Wetzel,West Virginia,54103,8,0 +2020-05-24,Wetzel,West Virginia,54103,8,0 +2020-05-25,Wetzel,West Virginia,54103,8,0 +2020-05-26,Wetzel,West Virginia,54103,8,0 +2020-05-27,Wetzel,West Virginia,54103,9,0 +2020-05-28,Wetzel,West Virginia,54103,8,0 +2020-05-29,Wetzel,West Virginia,54103,8,0 +2020-05-30,Wetzel,West Virginia,54103,8,0 +2020-05-31,Wetzel,West Virginia,54103,8,0 +2020-06-01,Wetzel,West Virginia,54103,9,0 +2020-06-02,Wetzel,West Virginia,54103,9,0 +2020-06-03,Wetzel,West Virginia,54103,9,0 +2020-06-04,Wetzel,West Virginia,54103,9,0 +2020-06-05,Wetzel,West Virginia,54103,9,0 +2020-06-06,Wetzel,West Virginia,54103,9,0 +2020-06-07,Wetzel,West Virginia,54103,9,0 +2020-06-08,Wetzel,West Virginia,54103,9,0 +2020-06-09,Wetzel,West Virginia,54103,9,0 +2020-06-10,Wetzel,West Virginia,54103,9,0 +2020-06-11,Wetzel,West Virginia,54103,9,0 +2020-06-12,Wetzel,West Virginia,54103,9,0 +2020-06-13,Wetzel,West Virginia,54103,9,0 +2020-06-14,Wetzel,West Virginia,54103,9,0 +2020-06-15,Wetzel,West Virginia,54103,9,0 +2020-06-16,Wetzel,West Virginia,54103,9,0 +2020-06-17,Wetzel,West Virginia,54103,9,0 +2020-06-18,Wetzel,West Virginia,54103,9,0 +2020-06-19,Wetzel,West Virginia,54103,9,0 +2020-06-20,Wetzel,West Virginia,54103,9,0 +2020-06-21,Wetzel,West Virginia,54103,9,0 +2020-06-22,Wetzel,West Virginia,54103,9,0 +2020-06-23,Wetzel,West Virginia,54103,9,0 +2020-06-24,Wetzel,West Virginia,54103,9,0 +2020-06-25,Wetzel,West Virginia,54103,9,0 +2020-06-26,Wetzel,West Virginia,54103,10,0 +2020-06-27,Wetzel,West Virginia,54103,10,0 +2020-06-28,Wetzel,West Virginia,54103,10,0 +2020-06-29,Wetzel,West Virginia,54103,10,0 +2020-06-30,Wetzel,West Virginia,54103,10,0 +2020-07-01,Wetzel,West Virginia,54103,10,0 +2020-07-02,Wetzel,West Virginia,54103,10,0 +2020-07-03,Wetzel,West Virginia,54103,12,0 +2020-07-04,Wetzel,West Virginia,54103,12,0 +2020-07-05,Wetzel,West Virginia,54103,16,0 +2020-07-06,Wetzel,West Virginia,54103,18,0 +2020-07-07,Wetzel,West Virginia,54103,18,0 +2020-07-08,Wetzel,West Virginia,54103,25,0 +2020-07-09,Wetzel,West Virginia,54103,26,0 +2020-03-29,Wirt,West Virginia,54105,1,0 +2020-03-30,Wirt,West Virginia,54105,1,0 +2020-03-31,Wirt,West Virginia,54105,1,0 +2020-04-01,Wirt,West Virginia,54105,1,0 +2020-04-02,Wirt,West Virginia,54105,1,0 +2020-04-03,Wirt,West Virginia,54105,1,0 +2020-04-04,Wirt,West Virginia,54105,1,0 +2020-04-05,Wirt,West Virginia,54105,1,0 +2020-04-06,Wirt,West Virginia,54105,1,0 +2020-04-07,Wirt,West Virginia,54105,1,0 +2020-04-08,Wirt,West Virginia,54105,1,0 +2020-04-09,Wirt,West Virginia,54105,1,0 +2020-04-10,Wirt,West Virginia,54105,1,0 +2020-04-11,Wirt,West Virginia,54105,2,0 +2020-04-12,Wirt,West Virginia,54105,2,0 +2020-04-13,Wirt,West Virginia,54105,2,0 +2020-04-14,Wirt,West Virginia,54105,2,0 +2020-04-15,Wirt,West Virginia,54105,2,0 +2020-04-16,Wirt,West Virginia,54105,2,0 +2020-04-17,Wirt,West Virginia,54105,2,0 +2020-04-18,Wirt,West Virginia,54105,2,0 +2020-04-19,Wirt,West Virginia,54105,2,0 +2020-04-20,Wirt,West Virginia,54105,2,0 +2020-04-21,Wirt,West Virginia,54105,2,0 +2020-04-22,Wirt,West Virginia,54105,2,0 +2020-04-23,Wirt,West Virginia,54105,3,0 +2020-04-24,Wirt,West Virginia,54105,3,0 +2020-04-25,Wirt,West Virginia,54105,3,0 +2020-04-26,Wirt,West Virginia,54105,3,0 +2020-04-27,Wirt,West Virginia,54105,3,0 +2020-04-28,Wirt,West Virginia,54105,3,0 +2020-04-29,Wirt,West Virginia,54105,3,0 +2020-04-30,Wirt,West Virginia,54105,3,0 +2020-05-01,Wirt,West Virginia,54105,3,0 +2020-05-02,Wirt,West Virginia,54105,3,0 +2020-05-03,Wirt,West Virginia,54105,3,0 +2020-05-04,Wirt,West Virginia,54105,3,0 +2020-05-05,Wirt,West Virginia,54105,3,0 +2020-05-06,Wirt,West Virginia,54105,3,0 +2020-05-07,Wirt,West Virginia,54105,3,0 +2020-05-08,Wirt,West Virginia,54105,3,0 +2020-05-09,Wirt,West Virginia,54105,3,0 +2020-05-10,Wirt,West Virginia,54105,3,0 +2020-05-11,Wirt,West Virginia,54105,3,0 +2020-05-12,Wirt,West Virginia,54105,3,0 +2020-05-13,Wirt,West Virginia,54105,3,0 +2020-05-14,Wirt,West Virginia,54105,3,0 +2020-05-15,Wirt,West Virginia,54105,3,0 +2020-05-16,Wirt,West Virginia,54105,3,0 +2020-05-17,Wirt,West Virginia,54105,3,0 +2020-05-18,Wirt,West Virginia,54105,3,0 +2020-05-19,Wirt,West Virginia,54105,4,0 +2020-05-20,Wirt,West Virginia,54105,4,0 +2020-05-21,Wirt,West Virginia,54105,4,0 +2020-05-22,Wirt,West Virginia,54105,4,0 +2020-05-23,Wirt,West Virginia,54105,4,0 +2020-05-24,Wirt,West Virginia,54105,4,0 +2020-05-25,Wirt,West Virginia,54105,4,0 +2020-05-26,Wirt,West Virginia,54105,4,0 +2020-05-27,Wirt,West Virginia,54105,4,0 +2020-05-28,Wirt,West Virginia,54105,4,0 +2020-05-29,Wirt,West Virginia,54105,4,0 +2020-05-30,Wirt,West Virginia,54105,4,0 +2020-05-31,Wirt,West Virginia,54105,4,0 +2020-06-01,Wirt,West Virginia,54105,4,0 +2020-06-02,Wirt,West Virginia,54105,4,0 +2020-06-03,Wirt,West Virginia,54105,4,0 +2020-06-04,Wirt,West Virginia,54105,4,0 +2020-06-05,Wirt,West Virginia,54105,4,0 +2020-06-06,Wirt,West Virginia,54105,4,0 +2020-06-07,Wirt,West Virginia,54105,4,0 +2020-06-08,Wirt,West Virginia,54105,4,0 +2020-06-09,Wirt,West Virginia,54105,4,0 +2020-06-10,Wirt,West Virginia,54105,4,0 +2020-06-11,Wirt,West Virginia,54105,4,0 +2020-06-12,Wirt,West Virginia,54105,4,0 +2020-06-13,Wirt,West Virginia,54105,4,0 +2020-06-14,Wirt,West Virginia,54105,4,0 +2020-06-15,Wirt,West Virginia,54105,4,0 +2020-06-16,Wirt,West Virginia,54105,4,0 +2020-06-17,Wirt,West Virginia,54105,4,0 +2020-06-18,Wirt,West Virginia,54105,4,0 +2020-06-19,Wirt,West Virginia,54105,4,0 +2020-06-20,Wirt,West Virginia,54105,4,0 +2020-06-21,Wirt,West Virginia,54105,4,0 +2020-06-22,Wirt,West Virginia,54105,4,0 +2020-06-23,Wirt,West Virginia,54105,4,0 +2020-06-24,Wirt,West Virginia,54105,4,0 +2020-06-25,Wirt,West Virginia,54105,4,0 +2020-06-26,Wirt,West Virginia,54105,4,0 +2020-06-27,Wirt,West Virginia,54105,4,0 +2020-06-28,Wirt,West Virginia,54105,4,0 +2020-06-29,Wirt,West Virginia,54105,4,0 +2020-06-30,Wirt,West Virginia,54105,4,0 +2020-07-01,Wirt,West Virginia,54105,4,0 +2020-07-02,Wirt,West Virginia,54105,4,0 +2020-07-03,Wirt,West Virginia,54105,4,0 +2020-07-04,Wirt,West Virginia,54105,4,0 +2020-07-05,Wirt,West Virginia,54105,4,0 +2020-07-06,Wirt,West Virginia,54105,5,0 +2020-07-07,Wirt,West Virginia,54105,5,0 +2020-07-08,Wirt,West Virginia,54105,5,0 +2020-07-09,Wirt,West Virginia,54105,5,0 +2020-03-24,Wood,West Virginia,54107,1,0 +2020-03-25,Wood,West Virginia,54107,1,0 +2020-03-26,Wood,West Virginia,54107,2,0 +2020-03-27,Wood,West Virginia,54107,2,0 +2020-03-28,Wood,West Virginia,54107,2,0 +2020-03-29,Wood,West Virginia,54107,2,0 +2020-03-30,Wood,West Virginia,54107,2,0 +2020-03-31,Wood,West Virginia,54107,2,0 +2020-04-01,Wood,West Virginia,54107,2,0 +2020-04-02,Wood,West Virginia,54107,3,0 +2020-04-03,Wood,West Virginia,54107,5,0 +2020-04-04,Wood,West Virginia,54107,7,0 +2020-04-05,Wood,West Virginia,54107,10,0 +2020-04-06,Wood,West Virginia,54107,11,0 +2020-04-07,Wood,West Virginia,54107,13,0 +2020-04-08,Wood,West Virginia,54107,14,0 +2020-04-09,Wood,West Virginia,54107,16,0 +2020-04-10,Wood,West Virginia,54107,16,0 +2020-04-11,Wood,West Virginia,54107,18,0 +2020-04-12,Wood,West Virginia,54107,18,0 +2020-04-13,Wood,West Virginia,54107,19,0 +2020-04-14,Wood,West Virginia,54107,22,0 +2020-04-15,Wood,West Virginia,54107,25,0 +2020-04-16,Wood,West Virginia,54107,27,0 +2020-04-17,Wood,West Virginia,54107,29,1 +2020-04-18,Wood,West Virginia,54107,29,1 +2020-04-19,Wood,West Virginia,54107,31,1 +2020-04-20,Wood,West Virginia,54107,31,2 +2020-04-21,Wood,West Virginia,54107,33,2 +2020-04-22,Wood,West Virginia,54107,33,2 +2020-04-23,Wood,West Virginia,54107,35,2 +2020-04-24,Wood,West Virginia,54107,36,2 +2020-04-25,Wood,West Virginia,54107,35,2 +2020-04-26,Wood,West Virginia,54107,35,2 +2020-04-27,Wood,West Virginia,54107,38,2 +2020-04-28,Wood,West Virginia,54107,39,2 +2020-04-29,Wood,West Virginia,54107,39,2 +2020-04-30,Wood,West Virginia,54107,38,2 +2020-05-01,Wood,West Virginia,54107,40,2 +2020-05-02,Wood,West Virginia,54107,41,2 +2020-05-03,Wood,West Virginia,54107,41,2 +2020-05-04,Wood,West Virginia,54107,41,2 +2020-05-05,Wood,West Virginia,54107,42,2 +2020-05-06,Wood,West Virginia,54107,42,2 +2020-05-07,Wood,West Virginia,54107,42,2 +2020-05-08,Wood,West Virginia,54107,43,2 +2020-05-09,Wood,West Virginia,54107,43,2 +2020-05-10,Wood,West Virginia,54107,43,2 +2020-05-11,Wood,West Virginia,54107,43,2 +2020-05-12,Wood,West Virginia,54107,44,2 +2020-05-13,Wood,West Virginia,54107,44,2 +2020-05-14,Wood,West Virginia,54107,44,2 +2020-05-15,Wood,West Virginia,54107,45,2 +2020-05-16,Wood,West Virginia,54107,47,2 +2020-05-17,Wood,West Virginia,54107,47,2 +2020-05-18,Wood,West Virginia,54107,48,2 +2020-05-19,Wood,West Virginia,54107,47,2 +2020-05-20,Wood,West Virginia,54107,48,2 +2020-05-21,Wood,West Virginia,54107,48,2 +2020-05-22,Wood,West Virginia,54107,51,2 +2020-05-23,Wood,West Virginia,54107,51,2 +2020-05-24,Wood,West Virginia,54107,51,2 +2020-05-25,Wood,West Virginia,54107,52,2 +2020-05-26,Wood,West Virginia,54107,53,2 +2020-05-27,Wood,West Virginia,54107,54,2 +2020-05-28,Wood,West Virginia,54107,54,2 +2020-05-29,Wood,West Virginia,54107,53,2 +2020-05-30,Wood,West Virginia,54107,53,2 +2020-05-31,Wood,West Virginia,54107,53,2 +2020-06-01,Wood,West Virginia,54107,53,2 +2020-06-02,Wood,West Virginia,54107,53,2 +2020-06-03,Wood,West Virginia,54107,53,2 +2020-06-04,Wood,West Virginia,54107,53,2 +2020-06-05,Wood,West Virginia,54107,53,2 +2020-06-06,Wood,West Virginia,54107,54,2 +2020-06-07,Wood,West Virginia,54107,54,2 +2020-06-08,Wood,West Virginia,54107,53,2 +2020-06-09,Wood,West Virginia,54107,54,2 +2020-06-10,Wood,West Virginia,54107,54,2 +2020-06-11,Wood,West Virginia,54107,53,2 +2020-06-12,Wood,West Virginia,54107,55,2 +2020-06-13,Wood,West Virginia,54107,55,2 +2020-06-14,Wood,West Virginia,54107,55,2 +2020-06-15,Wood,West Virginia,54107,56,2 +2020-06-16,Wood,West Virginia,54107,56,2 +2020-06-17,Wood,West Virginia,54107,56,2 +2020-06-18,Wood,West Virginia,54107,56,2 +2020-06-19,Wood,West Virginia,54107,56,2 +2020-06-20,Wood,West Virginia,54107,56,2 +2020-06-21,Wood,West Virginia,54107,56,2 +2020-06-22,Wood,West Virginia,54107,57,2 +2020-06-23,Wood,West Virginia,54107,59,2 +2020-06-24,Wood,West Virginia,54107,61,2 +2020-06-25,Wood,West Virginia,54107,62,2 +2020-06-26,Wood,West Virginia,54107,67,2 +2020-06-27,Wood,West Virginia,54107,74,2 +2020-06-28,Wood,West Virginia,54107,83,2 +2020-06-29,Wood,West Virginia,54107,86,2 +2020-06-30,Wood,West Virginia,54107,86,2 +2020-07-01,Wood,West Virginia,54107,87,2 +2020-07-02,Wood,West Virginia,54107,102,2 +2020-07-03,Wood,West Virginia,54107,111,2 +2020-07-04,Wood,West Virginia,54107,119,2 +2020-07-05,Wood,West Virginia,54107,128,2 +2020-07-06,Wood,West Virginia,54107,132,2 +2020-07-07,Wood,West Virginia,54107,136,2 +2020-07-08,Wood,West Virginia,54107,157,2 +2020-07-09,Wood,West Virginia,54107,162,2 +2020-04-07,Wyoming,West Virginia,54109,1,0 +2020-04-08,Wyoming,West Virginia,54109,1,0 +2020-04-09,Wyoming,West Virginia,54109,1,0 +2020-04-10,Wyoming,West Virginia,54109,1,0 +2020-04-11,Wyoming,West Virginia,54109,1,0 +2020-04-12,Wyoming,West Virginia,54109,1,0 +2020-04-13,Wyoming,West Virginia,54109,1,0 +2020-04-14,Wyoming,West Virginia,54109,1,0 +2020-04-15,Wyoming,West Virginia,54109,1,0 +2020-04-16,Wyoming,West Virginia,54109,1,0 +2020-04-17,Wyoming,West Virginia,54109,1,0 +2020-04-18,Wyoming,West Virginia,54109,1,0 +2020-04-19,Wyoming,West Virginia,54109,1,0 +2020-04-20,Wyoming,West Virginia,54109,1,0 +2020-04-21,Wyoming,West Virginia,54109,1,0 +2020-04-22,Wyoming,West Virginia,54109,1,0 +2020-04-23,Wyoming,West Virginia,54109,1,0 +2020-04-24,Wyoming,West Virginia,54109,1,0 +2020-04-25,Wyoming,West Virginia,54109,1,0 +2020-04-26,Wyoming,West Virginia,54109,1,0 +2020-04-27,Wyoming,West Virginia,54109,1,0 +2020-04-28,Wyoming,West Virginia,54109,1,0 +2020-04-29,Wyoming,West Virginia,54109,1,0 +2020-04-30,Wyoming,West Virginia,54109,1,0 +2020-05-01,Wyoming,West Virginia,54109,1,0 +2020-05-02,Wyoming,West Virginia,54109,1,0 +2020-05-03,Wyoming,West Virginia,54109,1,0 +2020-05-04,Wyoming,West Virginia,54109,1,0 +2020-05-05,Wyoming,West Virginia,54109,1,0 +2020-05-06,Wyoming,West Virginia,54109,1,0 +2020-05-07,Wyoming,West Virginia,54109,1,0 +2020-05-08,Wyoming,West Virginia,54109,1,0 +2020-05-09,Wyoming,West Virginia,54109,1,0 +2020-05-10,Wyoming,West Virginia,54109,1,0 +2020-05-11,Wyoming,West Virginia,54109,1,0 +2020-05-12,Wyoming,West Virginia,54109,1,0 +2020-05-13,Wyoming,West Virginia,54109,1,0 +2020-05-14,Wyoming,West Virginia,54109,1,0 +2020-05-15,Wyoming,West Virginia,54109,2,0 +2020-05-16,Wyoming,West Virginia,54109,2,0 +2020-05-17,Wyoming,West Virginia,54109,2,0 +2020-05-18,Wyoming,West Virginia,54109,3,0 +2020-05-19,Wyoming,West Virginia,54109,3,0 +2020-05-20,Wyoming,West Virginia,54109,3,0 +2020-05-21,Wyoming,West Virginia,54109,3,0 +2020-05-22,Wyoming,West Virginia,54109,3,0 +2020-05-23,Wyoming,West Virginia,54109,3,0 +2020-05-24,Wyoming,West Virginia,54109,3,0 +2020-05-25,Wyoming,West Virginia,54109,3,0 +2020-05-26,Wyoming,West Virginia,54109,3,0 +2020-05-27,Wyoming,West Virginia,54109,3,0 +2020-05-28,Wyoming,West Virginia,54109,3,0 +2020-05-29,Wyoming,West Virginia,54109,3,0 +2020-05-30,Wyoming,West Virginia,54109,3,0 +2020-05-31,Wyoming,West Virginia,54109,3,0 +2020-06-01,Wyoming,West Virginia,54109,3,0 +2020-06-02,Wyoming,West Virginia,54109,2,0 +2020-06-03,Wyoming,West Virginia,54109,2,0 +2020-06-04,Wyoming,West Virginia,54109,2,0 +2020-06-05,Wyoming,West Virginia,54109,2,0 +2020-06-06,Wyoming,West Virginia,54109,2,0 +2020-06-07,Wyoming,West Virginia,54109,3,0 +2020-06-08,Wyoming,West Virginia,54109,3,0 +2020-06-09,Wyoming,West Virginia,54109,3,0 +2020-06-10,Wyoming,West Virginia,54109,3,0 +2020-06-11,Wyoming,West Virginia,54109,5,0 +2020-06-12,Wyoming,West Virginia,54109,5,0 +2020-06-13,Wyoming,West Virginia,54109,5,0 +2020-06-14,Wyoming,West Virginia,54109,5,0 +2020-06-15,Wyoming,West Virginia,54109,5,0 +2020-06-16,Wyoming,West Virginia,54109,5,0 +2020-06-17,Wyoming,West Virginia,54109,5,0 +2020-06-18,Wyoming,West Virginia,54109,6,0 +2020-06-19,Wyoming,West Virginia,54109,7,0 +2020-06-20,Wyoming,West Virginia,54109,7,0 +2020-06-21,Wyoming,West Virginia,54109,7,0 +2020-06-22,Wyoming,West Virginia,54109,7,0 +2020-06-23,Wyoming,West Virginia,54109,7,0 +2020-06-24,Wyoming,West Virginia,54109,7,0 +2020-06-25,Wyoming,West Virginia,54109,7,0 +2020-06-26,Wyoming,West Virginia,54109,7,0 +2020-06-27,Wyoming,West Virginia,54109,7,0 +2020-06-28,Wyoming,West Virginia,54109,7,0 +2020-06-29,Wyoming,West Virginia,54109,7,0 +2020-06-30,Wyoming,West Virginia,54109,7,0 +2020-07-01,Wyoming,West Virginia,54109,7,0 +2020-07-02,Wyoming,West Virginia,54109,7,0 +2020-07-03,Wyoming,West Virginia,54109,7,0 +2020-07-04,Wyoming,West Virginia,54109,7,0 +2020-07-05,Wyoming,West Virginia,54109,7,0 +2020-07-06,Wyoming,West Virginia,54109,7,0 +2020-07-07,Wyoming,West Virginia,54109,7,0 +2020-07-08,Wyoming,West Virginia,54109,7,0 +2020-07-09,Wyoming,West Virginia,54109,7,0 +2020-04-02,Adams,Wisconsin,55001,1,0 +2020-04-03,Adams,Wisconsin,55001,1,0 +2020-04-04,Adams,Wisconsin,55001,1,0 +2020-04-05,Adams,Wisconsin,55001,1,0 +2020-04-06,Adams,Wisconsin,55001,2,0 +2020-04-07,Adams,Wisconsin,55001,2,0 +2020-04-08,Adams,Wisconsin,55001,2,0 +2020-04-09,Adams,Wisconsin,55001,2,0 +2020-04-10,Adams,Wisconsin,55001,2,0 +2020-04-11,Adams,Wisconsin,55001,2,0 +2020-04-12,Adams,Wisconsin,55001,2,0 +2020-04-13,Adams,Wisconsin,55001,3,0 +2020-04-14,Adams,Wisconsin,55001,3,1 +2020-04-15,Adams,Wisconsin,55001,3,1 +2020-04-16,Adams,Wisconsin,55001,3,1 +2020-04-17,Adams,Wisconsin,55001,4,1 +2020-04-18,Adams,Wisconsin,55001,4,1 +2020-04-19,Adams,Wisconsin,55001,4,1 +2020-04-20,Adams,Wisconsin,55001,4,1 +2020-04-21,Adams,Wisconsin,55001,4,1 +2020-04-22,Adams,Wisconsin,55001,4,1 +2020-04-23,Adams,Wisconsin,55001,4,1 +2020-04-24,Adams,Wisconsin,55001,4,1 +2020-04-25,Adams,Wisconsin,55001,4,1 +2020-04-26,Adams,Wisconsin,55001,4,1 +2020-04-27,Adams,Wisconsin,55001,4,1 +2020-04-28,Adams,Wisconsin,55001,4,1 +2020-04-29,Adams,Wisconsin,55001,4,1 +2020-04-30,Adams,Wisconsin,55001,4,1 +2020-05-01,Adams,Wisconsin,55001,4,1 +2020-05-02,Adams,Wisconsin,55001,4,1 +2020-05-03,Adams,Wisconsin,55001,4,1 +2020-05-04,Adams,Wisconsin,55001,4,1 +2020-05-05,Adams,Wisconsin,55001,4,1 +2020-05-06,Adams,Wisconsin,55001,4,1 +2020-05-07,Adams,Wisconsin,55001,4,1 +2020-05-08,Adams,Wisconsin,55001,4,1 +2020-05-09,Adams,Wisconsin,55001,4,1 +2020-05-10,Adams,Wisconsin,55001,4,1 +2020-05-11,Adams,Wisconsin,55001,4,1 +2020-05-12,Adams,Wisconsin,55001,4,1 +2020-05-13,Adams,Wisconsin,55001,4,1 +2020-05-14,Adams,Wisconsin,55001,4,1 +2020-05-15,Adams,Wisconsin,55001,4,1 +2020-05-16,Adams,Wisconsin,55001,4,1 +2020-05-17,Adams,Wisconsin,55001,4,1 +2020-05-18,Adams,Wisconsin,55001,4,1 +2020-05-19,Adams,Wisconsin,55001,4,1 +2020-05-20,Adams,Wisconsin,55001,4,1 +2020-05-21,Adams,Wisconsin,55001,4,1 +2020-05-22,Adams,Wisconsin,55001,4,1 +2020-05-23,Adams,Wisconsin,55001,4,1 +2020-05-24,Adams,Wisconsin,55001,4,1 +2020-05-25,Adams,Wisconsin,55001,4,1 +2020-05-26,Adams,Wisconsin,55001,4,1 +2020-05-27,Adams,Wisconsin,55001,4,1 +2020-05-28,Adams,Wisconsin,55001,4,1 +2020-05-29,Adams,Wisconsin,55001,4,1 +2020-05-30,Adams,Wisconsin,55001,4,1 +2020-05-31,Adams,Wisconsin,55001,4,1 +2020-06-01,Adams,Wisconsin,55001,4,1 +2020-06-02,Adams,Wisconsin,55001,4,1 +2020-06-03,Adams,Wisconsin,55001,4,1 +2020-06-04,Adams,Wisconsin,55001,4,1 +2020-06-05,Adams,Wisconsin,55001,5,1 +2020-06-06,Adams,Wisconsin,55001,5,1 +2020-06-07,Adams,Wisconsin,55001,5,1 +2020-06-08,Adams,Wisconsin,55001,5,1 +2020-06-09,Adams,Wisconsin,55001,6,1 +2020-06-10,Adams,Wisconsin,55001,6,1 +2020-06-11,Adams,Wisconsin,55001,6,1 +2020-06-12,Adams,Wisconsin,55001,7,1 +2020-06-13,Adams,Wisconsin,55001,7,1 +2020-06-14,Adams,Wisconsin,55001,8,1 +2020-06-15,Adams,Wisconsin,55001,8,2 +2020-06-16,Adams,Wisconsin,55001,8,2 +2020-06-17,Adams,Wisconsin,55001,9,2 +2020-06-18,Adams,Wisconsin,55001,10,2 +2020-06-19,Adams,Wisconsin,55001,10,2 +2020-06-20,Adams,Wisconsin,55001,10,2 +2020-06-21,Adams,Wisconsin,55001,10,2 +2020-06-22,Adams,Wisconsin,55001,11,2 +2020-06-23,Adams,Wisconsin,55001,11,2 +2020-06-24,Adams,Wisconsin,55001,11,2 +2020-06-25,Adams,Wisconsin,55001,12,2 +2020-06-26,Adams,Wisconsin,55001,14,2 +2020-06-27,Adams,Wisconsin,55001,15,2 +2020-06-28,Adams,Wisconsin,55001,15,2 +2020-06-29,Adams,Wisconsin,55001,19,2 +2020-06-30,Adams,Wisconsin,55001,19,2 +2020-07-01,Adams,Wisconsin,55001,19,2 +2020-07-02,Adams,Wisconsin,55001,20,2 +2020-07-03,Adams,Wisconsin,55001,23,2 +2020-07-04,Adams,Wisconsin,55001,27,2 +2020-07-05,Adams,Wisconsin,55001,32,2 +2020-07-06,Adams,Wisconsin,55001,33,2 +2020-07-07,Adams,Wisconsin,55001,33,2 +2020-07-08,Adams,Wisconsin,55001,35,2 +2020-07-09,Adams,Wisconsin,55001,35,2 +2020-03-31,Ashland,Wisconsin,55003,1,0 +2020-04-01,Ashland,Wisconsin,55003,1,0 +2020-04-02,Ashland,Wisconsin,55003,1,0 +2020-04-03,Ashland,Wisconsin,55003,1,0 +2020-04-04,Ashland,Wisconsin,55003,1,0 +2020-04-05,Ashland,Wisconsin,55003,1,0 +2020-04-06,Ashland,Wisconsin,55003,1,0 +2020-04-07,Ashland,Wisconsin,55003,1,0 +2020-04-08,Ashland,Wisconsin,55003,1,0 +2020-04-09,Ashland,Wisconsin,55003,1,0 +2020-04-10,Ashland,Wisconsin,55003,1,0 +2020-04-11,Ashland,Wisconsin,55003,1,0 +2020-04-12,Ashland,Wisconsin,55003,2,0 +2020-04-13,Ashland,Wisconsin,55003,2,0 +2020-04-14,Ashland,Wisconsin,55003,2,0 +2020-04-15,Ashland,Wisconsin,55003,2,0 +2020-04-16,Ashland,Wisconsin,55003,2,0 +2020-04-17,Ashland,Wisconsin,55003,2,0 +2020-04-18,Ashland,Wisconsin,55003,2,0 +2020-04-19,Ashland,Wisconsin,55003,2,0 +2020-04-20,Ashland,Wisconsin,55003,2,0 +2020-04-21,Ashland,Wisconsin,55003,2,0 +2020-04-22,Ashland,Wisconsin,55003,2,0 +2020-04-23,Ashland,Wisconsin,55003,2,0 +2020-04-24,Ashland,Wisconsin,55003,2,0 +2020-04-25,Ashland,Wisconsin,55003,2,0 +2020-04-26,Ashland,Wisconsin,55003,2,0 +2020-04-27,Ashland,Wisconsin,55003,2,0 +2020-04-28,Ashland,Wisconsin,55003,2,0 +2020-04-29,Ashland,Wisconsin,55003,2,0 +2020-04-30,Ashland,Wisconsin,55003,2,0 +2020-05-01,Ashland,Wisconsin,55003,2,0 +2020-05-02,Ashland,Wisconsin,55003,2,0 +2020-05-03,Ashland,Wisconsin,55003,2,0 +2020-05-04,Ashland,Wisconsin,55003,2,0 +2020-05-05,Ashland,Wisconsin,55003,2,0 +2020-05-06,Ashland,Wisconsin,55003,2,0 +2020-05-07,Ashland,Wisconsin,55003,2,0 +2020-05-08,Ashland,Wisconsin,55003,2,0 +2020-05-09,Ashland,Wisconsin,55003,2,0 +2020-05-10,Ashland,Wisconsin,55003,2,0 +2020-05-11,Ashland,Wisconsin,55003,2,0 +2020-05-12,Ashland,Wisconsin,55003,2,0 +2020-05-13,Ashland,Wisconsin,55003,2,0 +2020-05-14,Ashland,Wisconsin,55003,2,0 +2020-05-15,Ashland,Wisconsin,55003,2,0 +2020-05-16,Ashland,Wisconsin,55003,2,0 +2020-05-17,Ashland,Wisconsin,55003,2,0 +2020-05-18,Ashland,Wisconsin,55003,2,0 +2020-05-19,Ashland,Wisconsin,55003,2,0 +2020-05-20,Ashland,Wisconsin,55003,2,0 +2020-05-21,Ashland,Wisconsin,55003,2,0 +2020-05-22,Ashland,Wisconsin,55003,2,0 +2020-05-23,Ashland,Wisconsin,55003,2,0 +2020-05-24,Ashland,Wisconsin,55003,2,0 +2020-05-25,Ashland,Wisconsin,55003,2,0 +2020-05-26,Ashland,Wisconsin,55003,2,0 +2020-05-27,Ashland,Wisconsin,55003,2,0 +2020-05-28,Ashland,Wisconsin,55003,2,0 +2020-05-29,Ashland,Wisconsin,55003,2,0 +2020-05-30,Ashland,Wisconsin,55003,2,0 +2020-05-31,Ashland,Wisconsin,55003,2,0 +2020-06-01,Ashland,Wisconsin,55003,2,0 +2020-06-02,Ashland,Wisconsin,55003,2,0 +2020-06-03,Ashland,Wisconsin,55003,2,0 +2020-06-04,Ashland,Wisconsin,55003,2,0 +2020-06-05,Ashland,Wisconsin,55003,3,0 +2020-06-06,Ashland,Wisconsin,55003,3,0 +2020-06-07,Ashland,Wisconsin,55003,3,0 +2020-06-08,Ashland,Wisconsin,55003,3,0 +2020-06-09,Ashland,Wisconsin,55003,3,0 +2020-06-10,Ashland,Wisconsin,55003,3,0 +2020-06-11,Ashland,Wisconsin,55003,3,0 +2020-06-12,Ashland,Wisconsin,55003,3,0 +2020-06-13,Ashland,Wisconsin,55003,3,0 +2020-06-14,Ashland,Wisconsin,55003,3,0 +2020-06-15,Ashland,Wisconsin,55003,3,0 +2020-06-16,Ashland,Wisconsin,55003,3,0 +2020-06-17,Ashland,Wisconsin,55003,3,0 +2020-06-18,Ashland,Wisconsin,55003,3,0 +2020-06-19,Ashland,Wisconsin,55003,3,0 +2020-06-20,Ashland,Wisconsin,55003,3,0 +2020-06-21,Ashland,Wisconsin,55003,3,0 +2020-06-22,Ashland,Wisconsin,55003,3,0 +2020-06-23,Ashland,Wisconsin,55003,3,0 +2020-06-24,Ashland,Wisconsin,55003,3,0 +2020-06-25,Ashland,Wisconsin,55003,3,0 +2020-06-26,Ashland,Wisconsin,55003,3,0 +2020-06-27,Ashland,Wisconsin,55003,3,0 +2020-06-28,Ashland,Wisconsin,55003,3,0 +2020-06-29,Ashland,Wisconsin,55003,3,0 +2020-06-30,Ashland,Wisconsin,55003,3,0 +2020-07-01,Ashland,Wisconsin,55003,3,0 +2020-07-02,Ashland,Wisconsin,55003,3,0 +2020-07-03,Ashland,Wisconsin,55003,3,0 +2020-07-04,Ashland,Wisconsin,55003,3,0 +2020-07-05,Ashland,Wisconsin,55003,3,0 +2020-07-06,Ashland,Wisconsin,55003,3,0 +2020-07-07,Ashland,Wisconsin,55003,3,0 +2020-07-08,Ashland,Wisconsin,55003,3,0 +2020-07-09,Ashland,Wisconsin,55003,3,0 +2020-04-03,Barron,Wisconsin,55005,3,0 +2020-04-04,Barron,Wisconsin,55005,3,0 +2020-04-05,Barron,Wisconsin,55005,4,0 +2020-04-06,Barron,Wisconsin,55005,4,0 +2020-04-07,Barron,Wisconsin,55005,4,0 +2020-04-08,Barron,Wisconsin,55005,5,0 +2020-04-09,Barron,Wisconsin,55005,5,0 +2020-04-10,Barron,Wisconsin,55005,6,0 +2020-04-11,Barron,Wisconsin,55005,6,0 +2020-04-12,Barron,Wisconsin,55005,6,0 +2020-04-13,Barron,Wisconsin,55005,6,0 +2020-04-14,Barron,Wisconsin,55005,6,0 +2020-04-15,Barron,Wisconsin,55005,6,0 +2020-04-16,Barron,Wisconsin,55005,6,0 +2020-04-17,Barron,Wisconsin,55005,6,0 +2020-04-18,Barron,Wisconsin,55005,6,0 +2020-04-19,Barron,Wisconsin,55005,6,0 +2020-04-20,Barron,Wisconsin,55005,6,0 +2020-04-21,Barron,Wisconsin,55005,6,0 +2020-04-22,Barron,Wisconsin,55005,6,0 +2020-04-23,Barron,Wisconsin,55005,6,0 +2020-04-24,Barron,Wisconsin,55005,6,0 +2020-04-25,Barron,Wisconsin,55005,6,0 +2020-04-26,Barron,Wisconsin,55005,6,0 +2020-04-27,Barron,Wisconsin,55005,6,0 +2020-04-28,Barron,Wisconsin,55005,6,0 +2020-04-29,Barron,Wisconsin,55005,6,0 +2020-04-30,Barron,Wisconsin,55005,6,0 +2020-05-01,Barron,Wisconsin,55005,6,0 +2020-05-02,Barron,Wisconsin,55005,7,0 +2020-05-03,Barron,Wisconsin,55005,7,0 +2020-05-04,Barron,Wisconsin,55005,7,0 +2020-05-05,Barron,Wisconsin,55005,7,0 +2020-05-06,Barron,Wisconsin,55005,7,0 +2020-05-07,Barron,Wisconsin,55005,7,0 +2020-05-08,Barron,Wisconsin,55005,10,0 +2020-05-09,Barron,Wisconsin,55005,10,0 +2020-05-10,Barron,Wisconsin,55005,12,0 +2020-05-11,Barron,Wisconsin,55005,11,0 +2020-05-12,Barron,Wisconsin,55005,11,0 +2020-05-13,Barron,Wisconsin,55005,11,0 +2020-05-14,Barron,Wisconsin,55005,11,0 +2020-05-15,Barron,Wisconsin,55005,11,0 +2020-05-16,Barron,Wisconsin,55005,11,0 +2020-05-17,Barron,Wisconsin,55005,11,0 +2020-05-18,Barron,Wisconsin,55005,11,0 +2020-05-19,Barron,Wisconsin,55005,11,0 +2020-05-20,Barron,Wisconsin,55005,11,0 +2020-05-21,Barron,Wisconsin,55005,11,0 +2020-05-22,Barron,Wisconsin,55005,11,0 +2020-05-23,Barron,Wisconsin,55005,12,0 +2020-05-24,Barron,Wisconsin,55005,12,0 +2020-05-25,Barron,Wisconsin,55005,12,0 +2020-05-26,Barron,Wisconsin,55005,12,0 +2020-05-27,Barron,Wisconsin,55005,14,0 +2020-05-28,Barron,Wisconsin,55005,14,0 +2020-05-29,Barron,Wisconsin,55005,15,0 +2020-05-30,Barron,Wisconsin,55005,17,0 +2020-05-31,Barron,Wisconsin,55005,17,0 +2020-06-01,Barron,Wisconsin,55005,20,0 +2020-06-02,Barron,Wisconsin,55005,20,0 +2020-06-03,Barron,Wisconsin,55005,21,0 +2020-06-04,Barron,Wisconsin,55005,20,0 +2020-06-05,Barron,Wisconsin,55005,20,0 +2020-06-06,Barron,Wisconsin,55005,20,0 +2020-06-07,Barron,Wisconsin,55005,20,0 +2020-06-08,Barron,Wisconsin,55005,20,0 +2020-06-09,Barron,Wisconsin,55005,20,0 +2020-06-10,Barron,Wisconsin,55005,21,0 +2020-06-11,Barron,Wisconsin,55005,21,0 +2020-06-12,Barron,Wisconsin,55005,24,0 +2020-06-13,Barron,Wisconsin,55005,24,0 +2020-06-14,Barron,Wisconsin,55005,25,0 +2020-06-15,Barron,Wisconsin,55005,25,0 +2020-06-16,Barron,Wisconsin,55005,26,0 +2020-06-17,Barron,Wisconsin,55005,26,0 +2020-06-18,Barron,Wisconsin,55005,30,0 +2020-06-19,Barron,Wisconsin,55005,30,0 +2020-06-20,Barron,Wisconsin,55005,31,0 +2020-06-21,Barron,Wisconsin,55005,31,0 +2020-06-22,Barron,Wisconsin,55005,31,0 +2020-06-23,Barron,Wisconsin,55005,31,0 +2020-06-24,Barron,Wisconsin,55005,32,0 +2020-06-25,Barron,Wisconsin,55005,32,0 +2020-06-26,Barron,Wisconsin,55005,32,0 +2020-06-27,Barron,Wisconsin,55005,34,0 +2020-06-28,Barron,Wisconsin,55005,34,0 +2020-06-29,Barron,Wisconsin,55005,34,0 +2020-06-30,Barron,Wisconsin,55005,34,1 +2020-07-01,Barron,Wisconsin,55005,34,1 +2020-07-02,Barron,Wisconsin,55005,35,1 +2020-07-03,Barron,Wisconsin,55005,36,1 +2020-07-04,Barron,Wisconsin,55005,36,1 +2020-07-05,Barron,Wisconsin,55005,36,1 +2020-07-06,Barron,Wisconsin,55005,36,1 +2020-07-07,Barron,Wisconsin,55005,36,1 +2020-07-08,Barron,Wisconsin,55005,37,1 +2020-07-09,Barron,Wisconsin,55005,39,1 +2020-03-19,Bayfield,Wisconsin,55007,1,0 +2020-03-20,Bayfield,Wisconsin,55007,1,0 +2020-03-21,Bayfield,Wisconsin,55007,1,0 +2020-03-22,Bayfield,Wisconsin,55007,1,0 +2020-03-23,Bayfield,Wisconsin,55007,1,0 +2020-03-24,Bayfield,Wisconsin,55007,1,0 +2020-03-25,Bayfield,Wisconsin,55007,1,0 +2020-03-26,Bayfield,Wisconsin,55007,1,0 +2020-03-27,Bayfield,Wisconsin,55007,2,0 +2020-03-28,Bayfield,Wisconsin,55007,2,0 +2020-03-29,Bayfield,Wisconsin,55007,2,0 +2020-03-30,Bayfield,Wisconsin,55007,2,0 +2020-03-31,Bayfield,Wisconsin,55007,2,0 +2020-04-01,Bayfield,Wisconsin,55007,3,0 +2020-04-02,Bayfield,Wisconsin,55007,3,0 +2020-04-03,Bayfield,Wisconsin,55007,3,0 +2020-04-04,Bayfield,Wisconsin,55007,3,0 +2020-04-05,Bayfield,Wisconsin,55007,3,0 +2020-04-06,Bayfield,Wisconsin,55007,3,0 +2020-04-07,Bayfield,Wisconsin,55007,3,0 +2020-04-08,Bayfield,Wisconsin,55007,3,0 +2020-04-09,Bayfield,Wisconsin,55007,3,0 +2020-04-10,Bayfield,Wisconsin,55007,3,0 +2020-04-11,Bayfield,Wisconsin,55007,3,0 +2020-04-12,Bayfield,Wisconsin,55007,3,0 +2020-04-13,Bayfield,Wisconsin,55007,3,0 +2020-04-14,Bayfield,Wisconsin,55007,3,0 +2020-04-15,Bayfield,Wisconsin,55007,3,0 +2020-04-16,Bayfield,Wisconsin,55007,3,0 +2020-04-17,Bayfield,Wisconsin,55007,3,0 +2020-04-18,Bayfield,Wisconsin,55007,3,1 +2020-04-19,Bayfield,Wisconsin,55007,3,1 +2020-04-20,Bayfield,Wisconsin,55007,3,1 +2020-04-21,Bayfield,Wisconsin,55007,3,1 +2020-04-22,Bayfield,Wisconsin,55007,3,1 +2020-04-23,Bayfield,Wisconsin,55007,3,1 +2020-04-24,Bayfield,Wisconsin,55007,3,1 +2020-04-25,Bayfield,Wisconsin,55007,3,1 +2020-04-26,Bayfield,Wisconsin,55007,3,1 +2020-04-27,Bayfield,Wisconsin,55007,3,1 +2020-04-28,Bayfield,Wisconsin,55007,3,1 +2020-04-29,Bayfield,Wisconsin,55007,3,1 +2020-04-30,Bayfield,Wisconsin,55007,3,1 +2020-05-01,Bayfield,Wisconsin,55007,3,1 +2020-05-02,Bayfield,Wisconsin,55007,3,1 +2020-05-03,Bayfield,Wisconsin,55007,3,1 +2020-05-04,Bayfield,Wisconsin,55007,3,1 +2020-05-05,Bayfield,Wisconsin,55007,3,1 +2020-05-06,Bayfield,Wisconsin,55007,3,1 +2020-05-07,Bayfield,Wisconsin,55007,3,1 +2020-05-08,Bayfield,Wisconsin,55007,3,1 +2020-05-09,Bayfield,Wisconsin,55007,3,1 +2020-05-10,Bayfield,Wisconsin,55007,3,1 +2020-05-11,Bayfield,Wisconsin,55007,3,1 +2020-05-12,Bayfield,Wisconsin,55007,3,1 +2020-05-13,Bayfield,Wisconsin,55007,3,1 +2020-05-14,Bayfield,Wisconsin,55007,3,1 +2020-05-15,Bayfield,Wisconsin,55007,3,1 +2020-05-16,Bayfield,Wisconsin,55007,3,1 +2020-05-17,Bayfield,Wisconsin,55007,3,1 +2020-05-18,Bayfield,Wisconsin,55007,3,1 +2020-05-19,Bayfield,Wisconsin,55007,3,1 +2020-05-20,Bayfield,Wisconsin,55007,3,1 +2020-05-21,Bayfield,Wisconsin,55007,3,1 +2020-05-22,Bayfield,Wisconsin,55007,3,1 +2020-05-23,Bayfield,Wisconsin,55007,3,1 +2020-05-24,Bayfield,Wisconsin,55007,3,1 +2020-05-25,Bayfield,Wisconsin,55007,3,1 +2020-05-26,Bayfield,Wisconsin,55007,3,1 +2020-05-27,Bayfield,Wisconsin,55007,3,1 +2020-05-28,Bayfield,Wisconsin,55007,3,1 +2020-05-29,Bayfield,Wisconsin,55007,3,1 +2020-05-30,Bayfield,Wisconsin,55007,3,1 +2020-05-31,Bayfield,Wisconsin,55007,3,1 +2020-06-01,Bayfield,Wisconsin,55007,3,1 +2020-06-02,Bayfield,Wisconsin,55007,3,1 +2020-06-03,Bayfield,Wisconsin,55007,3,1 +2020-06-04,Bayfield,Wisconsin,55007,3,1 +2020-06-05,Bayfield,Wisconsin,55007,3,1 +2020-06-06,Bayfield,Wisconsin,55007,3,1 +2020-06-07,Bayfield,Wisconsin,55007,3,1 +2020-06-08,Bayfield,Wisconsin,55007,3,1 +2020-06-09,Bayfield,Wisconsin,55007,3,1 +2020-06-10,Bayfield,Wisconsin,55007,3,1 +2020-06-11,Bayfield,Wisconsin,55007,3,1 +2020-06-12,Bayfield,Wisconsin,55007,3,1 +2020-06-13,Bayfield,Wisconsin,55007,3,1 +2020-06-14,Bayfield,Wisconsin,55007,3,1 +2020-06-15,Bayfield,Wisconsin,55007,3,1 +2020-06-16,Bayfield,Wisconsin,55007,3,1 +2020-06-17,Bayfield,Wisconsin,55007,3,1 +2020-06-18,Bayfield,Wisconsin,55007,3,1 +2020-06-19,Bayfield,Wisconsin,55007,3,1 +2020-06-20,Bayfield,Wisconsin,55007,3,1 +2020-06-21,Bayfield,Wisconsin,55007,3,1 +2020-06-22,Bayfield,Wisconsin,55007,3,1 +2020-06-23,Bayfield,Wisconsin,55007,3,1 +2020-06-24,Bayfield,Wisconsin,55007,3,1 +2020-06-25,Bayfield,Wisconsin,55007,3,1 +2020-06-26,Bayfield,Wisconsin,55007,3,1 +2020-06-27,Bayfield,Wisconsin,55007,3,1 +2020-06-28,Bayfield,Wisconsin,55007,3,1 +2020-06-29,Bayfield,Wisconsin,55007,3,1 +2020-06-30,Bayfield,Wisconsin,55007,3,1 +2020-07-01,Bayfield,Wisconsin,55007,3,1 +2020-07-02,Bayfield,Wisconsin,55007,3,1 +2020-07-03,Bayfield,Wisconsin,55007,3,1 +2020-07-04,Bayfield,Wisconsin,55007,3,1 +2020-07-05,Bayfield,Wisconsin,55007,3,1 +2020-07-06,Bayfield,Wisconsin,55007,3,1 +2020-07-07,Bayfield,Wisconsin,55007,4,1 +2020-07-08,Bayfield,Wisconsin,55007,4,1 +2020-07-09,Bayfield,Wisconsin,55007,4,1 +2020-03-18,Brown,Wisconsin,55009,1,0 +2020-03-19,Brown,Wisconsin,55009,2,0 +2020-03-20,Brown,Wisconsin,55009,2,0 +2020-03-21,Brown,Wisconsin,55009,3,0 +2020-03-22,Brown,Wisconsin,55009,3,0 +2020-03-23,Brown,Wisconsin,55009,3,0 +2020-03-24,Brown,Wisconsin,55009,3,0 +2020-03-25,Brown,Wisconsin,55009,3,0 +2020-03-26,Brown,Wisconsin,55009,4,0 +2020-03-27,Brown,Wisconsin,55009,5,0 +2020-03-28,Brown,Wisconsin,55009,6,0 +2020-03-29,Brown,Wisconsin,55009,6,0 +2020-03-30,Brown,Wisconsin,55009,7,0 +2020-03-31,Brown,Wisconsin,55009,9,0 +2020-04-01,Brown,Wisconsin,55009,11,0 +2020-04-02,Brown,Wisconsin,55009,17,0 +2020-04-03,Brown,Wisconsin,55009,24,0 +2020-04-04,Brown,Wisconsin,55009,27,0 +2020-04-05,Brown,Wisconsin,55009,29,0 +2020-04-06,Brown,Wisconsin,55009,39,0 +2020-04-07,Brown,Wisconsin,55009,41,0 +2020-04-08,Brown,Wisconsin,55009,47,0 +2020-04-09,Brown,Wisconsin,55009,50,1 +2020-04-10,Brown,Wisconsin,55009,55,1 +2020-04-11,Brown,Wisconsin,55009,60,1 +2020-04-12,Brown,Wisconsin,55009,68,1 +2020-04-13,Brown,Wisconsin,55009,77,1 +2020-04-14,Brown,Wisconsin,55009,97,1 +2020-04-15,Brown,Wisconsin,55009,114,1 +2020-04-16,Brown,Wisconsin,55009,139,1 +2020-04-17,Brown,Wisconsin,55009,180,1 +2020-04-18,Brown,Wisconsin,55009,204,1 +2020-04-19,Brown,Wisconsin,55009,215,1 +2020-04-20,Brown,Wisconsin,55009,285,1 +2020-04-21,Brown,Wisconsin,55009,314,2 +2020-04-22,Brown,Wisconsin,55009,402,2 +2020-04-23,Brown,Wisconsin,55009,455,2 +2020-04-24,Brown,Wisconsin,55009,605,2 +2020-04-25,Brown,Wisconsin,55009,720,2 +2020-04-26,Brown,Wisconsin,55009,776,2 +2020-04-27,Brown,Wisconsin,55009,853,2 +2020-04-28,Brown,Wisconsin,55009,920,3 +2020-04-29,Brown,Wisconsin,55009,971,3 +2020-04-30,Brown,Wisconsin,55009,1057,3 +2020-05-01,Brown,Wisconsin,55009,1175,5 +2020-05-02,Brown,Wisconsin,55009,1272,6 +2020-05-03,Brown,Wisconsin,55009,1358,6 +2020-05-04,Brown,Wisconsin,55009,1448,6 +2020-05-05,Brown,Wisconsin,55009,1545,9 +2020-05-06,Brown,Wisconsin,55009,1653,11 +2020-05-07,Brown,Wisconsin,55009,1706,12 +2020-05-08,Brown,Wisconsin,55009,1777,13 +2020-05-09,Brown,Wisconsin,55009,1834,18 +2020-05-10,Brown,Wisconsin,55009,1897,18 +2020-05-11,Brown,Wisconsin,55009,1924,18 +2020-05-12,Brown,Wisconsin,55009,1958,20 +2020-05-13,Brown,Wisconsin,55009,1982,20 +2020-05-14,Brown,Wisconsin,55009,1999,21 +2020-05-15,Brown,Wisconsin,55009,2034,21 +2020-05-16,Brown,Wisconsin,55009,2070,22 +2020-05-17,Brown,Wisconsin,55009,2096,22 +2020-05-18,Brown,Wisconsin,55009,2102,23 +2020-05-19,Brown,Wisconsin,55009,2118,26 +2020-05-20,Brown,Wisconsin,55009,2135,29 +2020-05-21,Brown,Wisconsin,55009,2177,29 +2020-05-22,Brown,Wisconsin,55009,2204,31 +2020-05-23,Brown,Wisconsin,55009,2238,32 +2020-05-24,Brown,Wisconsin,55009,2243,32 +2020-05-25,Brown,Wisconsin,55009,2249,32 +2020-05-26,Brown,Wisconsin,55009,2249,32 +2020-05-27,Brown,Wisconsin,55009,2285,33 +2020-05-28,Brown,Wisconsin,55009,2300,34 +2020-05-29,Brown,Wisconsin,55009,2308,35 +2020-05-30,Brown,Wisconsin,55009,2318,37 +2020-05-31,Brown,Wisconsin,55009,2319,37 +2020-06-01,Brown,Wisconsin,55009,2320,37 +2020-06-02,Brown,Wisconsin,55009,2334,37 +2020-06-03,Brown,Wisconsin,55009,2350,37 +2020-06-04,Brown,Wisconsin,55009,2361,38 +2020-06-05,Brown,Wisconsin,55009,2369,38 +2020-06-06,Brown,Wisconsin,55009,2374,38 +2020-06-07,Brown,Wisconsin,55009,2377,38 +2020-06-08,Brown,Wisconsin,55009,2377,38 +2020-06-09,Brown,Wisconsin,55009,2399,38 +2020-06-10,Brown,Wisconsin,55009,2405,38 +2020-06-11,Brown,Wisconsin,55009,2421,38 +2020-06-12,Brown,Wisconsin,55009,2442,38 +2020-06-13,Brown,Wisconsin,55009,2458,38 +2020-06-14,Brown,Wisconsin,55009,2469,38 +2020-06-15,Brown,Wisconsin,55009,2469,38 +2020-06-16,Brown,Wisconsin,55009,2492,39 +2020-06-17,Brown,Wisconsin,55009,2507,39 +2020-06-18,Brown,Wisconsin,55009,2520,39 +2020-06-19,Brown,Wisconsin,55009,2538,39 +2020-06-20,Brown,Wisconsin,55009,2572,39 +2020-06-21,Brown,Wisconsin,55009,2580,39 +2020-06-22,Brown,Wisconsin,55009,2581,39 +2020-06-23,Brown,Wisconsin,55009,2620,39 +2020-06-24,Brown,Wisconsin,55009,2661,40 +2020-06-25,Brown,Wisconsin,55009,2698,42 +2020-06-26,Brown,Wisconsin,55009,2738,41 +2020-06-27,Brown,Wisconsin,55009,2777,42 +2020-06-28,Brown,Wisconsin,55009,2826,42 +2020-06-29,Brown,Wisconsin,55009,2825,42 +2020-06-30,Brown,Wisconsin,55009,2873,42 +2020-07-01,Brown,Wisconsin,55009,2916,42 +2020-07-02,Brown,Wisconsin,55009,2937,42 +2020-07-03,Brown,Wisconsin,55009,2968,42 +2020-07-04,Brown,Wisconsin,55009,2997,42 +2020-07-05,Brown,Wisconsin,55009,3018,42 +2020-07-06,Brown,Wisconsin,55009,3049,42 +2020-07-07,Brown,Wisconsin,55009,3072,42 +2020-07-08,Brown,Wisconsin,55009,3087,42 +2020-07-09,Brown,Wisconsin,55009,3123,43 +2020-03-31,Buffalo,Wisconsin,55011,1,0 +2020-04-01,Buffalo,Wisconsin,55011,1,0 +2020-04-02,Buffalo,Wisconsin,55011,2,0 +2020-04-03,Buffalo,Wisconsin,55011,2,0 +2020-04-04,Buffalo,Wisconsin,55011,2,0 +2020-04-05,Buffalo,Wisconsin,55011,2,1 +2020-04-06,Buffalo,Wisconsin,55011,2,1 +2020-04-07,Buffalo,Wisconsin,55011,2,1 +2020-04-08,Buffalo,Wisconsin,55011,2,1 +2020-04-09,Buffalo,Wisconsin,55011,2,1 +2020-04-10,Buffalo,Wisconsin,55011,2,1 +2020-04-11,Buffalo,Wisconsin,55011,3,1 +2020-04-12,Buffalo,Wisconsin,55011,3,1 +2020-04-13,Buffalo,Wisconsin,55011,3,1 +2020-04-14,Buffalo,Wisconsin,55011,4,1 +2020-04-15,Buffalo,Wisconsin,55011,4,1 +2020-04-16,Buffalo,Wisconsin,55011,4,1 +2020-04-17,Buffalo,Wisconsin,55011,4,1 +2020-04-18,Buffalo,Wisconsin,55011,4,1 +2020-04-19,Buffalo,Wisconsin,55011,4,1 +2020-04-20,Buffalo,Wisconsin,55011,4,1 +2020-04-21,Buffalo,Wisconsin,55011,4,1 +2020-04-22,Buffalo,Wisconsin,55011,4,1 +2020-04-23,Buffalo,Wisconsin,55011,4,1 +2020-04-24,Buffalo,Wisconsin,55011,4,1 +2020-04-25,Buffalo,Wisconsin,55011,4,1 +2020-04-26,Buffalo,Wisconsin,55011,4,1 +2020-04-27,Buffalo,Wisconsin,55011,4,1 +2020-04-28,Buffalo,Wisconsin,55011,4,1 +2020-04-29,Buffalo,Wisconsin,55011,4,1 +2020-04-30,Buffalo,Wisconsin,55011,4,1 +2020-05-01,Buffalo,Wisconsin,55011,4,1 +2020-05-02,Buffalo,Wisconsin,55011,4,1 +2020-05-03,Buffalo,Wisconsin,55011,4,1 +2020-05-04,Buffalo,Wisconsin,55011,5,1 +2020-05-05,Buffalo,Wisconsin,55011,6,1 +2020-05-06,Buffalo,Wisconsin,55011,6,1 +2020-05-07,Buffalo,Wisconsin,55011,5,1 +2020-05-08,Buffalo,Wisconsin,55011,5,1 +2020-05-09,Buffalo,Wisconsin,55011,5,1 +2020-05-10,Buffalo,Wisconsin,55011,5,1 +2020-05-11,Buffalo,Wisconsin,55011,5,1 +2020-05-12,Buffalo,Wisconsin,55011,5,1 +2020-05-13,Buffalo,Wisconsin,55011,5,1 +2020-05-14,Buffalo,Wisconsin,55011,5,1 +2020-05-15,Buffalo,Wisconsin,55011,5,1 +2020-05-16,Buffalo,Wisconsin,55011,5,1 +2020-05-17,Buffalo,Wisconsin,55011,5,1 +2020-05-18,Buffalo,Wisconsin,55011,5,1 +2020-05-19,Buffalo,Wisconsin,55011,5,1 +2020-05-20,Buffalo,Wisconsin,55011,5,1 +2020-05-21,Buffalo,Wisconsin,55011,5,1 +2020-05-22,Buffalo,Wisconsin,55011,5,1 +2020-05-23,Buffalo,Wisconsin,55011,5,1 +2020-05-24,Buffalo,Wisconsin,55011,5,1 +2020-05-25,Buffalo,Wisconsin,55011,5,1 +2020-05-26,Buffalo,Wisconsin,55011,5,1 +2020-05-27,Buffalo,Wisconsin,55011,5,1 +2020-05-28,Buffalo,Wisconsin,55011,5,1 +2020-05-29,Buffalo,Wisconsin,55011,5,1 +2020-05-30,Buffalo,Wisconsin,55011,6,1 +2020-05-31,Buffalo,Wisconsin,55011,6,1 +2020-06-01,Buffalo,Wisconsin,55011,6,1 +2020-06-02,Buffalo,Wisconsin,55011,6,1 +2020-06-03,Buffalo,Wisconsin,55011,6,1 +2020-06-04,Buffalo,Wisconsin,55011,6,1 +2020-06-05,Buffalo,Wisconsin,55011,6,2 +2020-06-06,Buffalo,Wisconsin,55011,6,2 +2020-06-07,Buffalo,Wisconsin,55011,6,2 +2020-06-08,Buffalo,Wisconsin,55011,6,2 +2020-06-09,Buffalo,Wisconsin,55011,6,2 +2020-06-10,Buffalo,Wisconsin,55011,6,2 +2020-06-11,Buffalo,Wisconsin,55011,7,2 +2020-06-12,Buffalo,Wisconsin,55011,7,2 +2020-06-13,Buffalo,Wisconsin,55011,7,2 +2020-06-14,Buffalo,Wisconsin,55011,7,2 +2020-06-15,Buffalo,Wisconsin,55011,7,2 +2020-06-16,Buffalo,Wisconsin,55011,7,2 +2020-06-17,Buffalo,Wisconsin,55011,7,2 +2020-06-18,Buffalo,Wisconsin,55011,6,2 +2020-06-19,Buffalo,Wisconsin,55011,7,2 +2020-06-20,Buffalo,Wisconsin,55011,6,2 +2020-06-21,Buffalo,Wisconsin,55011,6,2 +2020-06-22,Buffalo,Wisconsin,55011,6,2 +2020-06-23,Buffalo,Wisconsin,55011,7,2 +2020-06-24,Buffalo,Wisconsin,55011,7,2 +2020-06-25,Buffalo,Wisconsin,55011,7,2 +2020-06-26,Buffalo,Wisconsin,55011,7,2 +2020-06-27,Buffalo,Wisconsin,55011,7,2 +2020-06-28,Buffalo,Wisconsin,55011,7,2 +2020-06-29,Buffalo,Wisconsin,55011,7,2 +2020-06-30,Buffalo,Wisconsin,55011,7,2 +2020-07-01,Buffalo,Wisconsin,55011,8,2 +2020-07-02,Buffalo,Wisconsin,55011,7,2 +2020-07-03,Buffalo,Wisconsin,55011,8,2 +2020-07-04,Buffalo,Wisconsin,55011,8,2 +2020-07-05,Buffalo,Wisconsin,55011,8,2 +2020-07-06,Buffalo,Wisconsin,55011,8,2 +2020-07-07,Buffalo,Wisconsin,55011,9,2 +2020-07-08,Buffalo,Wisconsin,55011,10,2 +2020-07-09,Buffalo,Wisconsin,55011,11,2 +2020-05-14,Burnett,Wisconsin,55013,1,1 +2020-05-15,Burnett,Wisconsin,55013,1,1 +2020-05-16,Burnett,Wisconsin,55013,1,1 +2020-05-17,Burnett,Wisconsin,55013,1,1 +2020-05-18,Burnett,Wisconsin,55013,2,1 +2020-05-19,Burnett,Wisconsin,55013,1,1 +2020-05-20,Burnett,Wisconsin,55013,1,1 +2020-05-21,Burnett,Wisconsin,55013,1,1 +2020-05-22,Burnett,Wisconsin,55013,1,1 +2020-05-23,Burnett,Wisconsin,55013,1,1 +2020-05-24,Burnett,Wisconsin,55013,1,1 +2020-05-25,Burnett,Wisconsin,55013,1,1 +2020-05-26,Burnett,Wisconsin,55013,1,1 +2020-05-27,Burnett,Wisconsin,55013,1,1 +2020-05-28,Burnett,Wisconsin,55013,1,1 +2020-05-29,Burnett,Wisconsin,55013,1,1 +2020-05-30,Burnett,Wisconsin,55013,1,1 +2020-05-31,Burnett,Wisconsin,55013,1,1 +2020-06-01,Burnett,Wisconsin,55013,1,1 +2020-06-02,Burnett,Wisconsin,55013,1,1 +2020-06-03,Burnett,Wisconsin,55013,1,1 +2020-06-04,Burnett,Wisconsin,55013,1,1 +2020-06-05,Burnett,Wisconsin,55013,1,1 +2020-06-06,Burnett,Wisconsin,55013,1,1 +2020-06-07,Burnett,Wisconsin,55013,1,1 +2020-06-08,Burnett,Wisconsin,55013,1,1 +2020-06-09,Burnett,Wisconsin,55013,1,1 +2020-06-10,Burnett,Wisconsin,55013,1,1 +2020-06-11,Burnett,Wisconsin,55013,1,1 +2020-06-12,Burnett,Wisconsin,55013,2,1 +2020-06-13,Burnett,Wisconsin,55013,2,1 +2020-06-14,Burnett,Wisconsin,55013,2,1 +2020-06-15,Burnett,Wisconsin,55013,2,1 +2020-06-16,Burnett,Wisconsin,55013,3,1 +2020-06-17,Burnett,Wisconsin,55013,2,1 +2020-06-18,Burnett,Wisconsin,55013,2,1 +2020-06-19,Burnett,Wisconsin,55013,2,1 +2020-06-20,Burnett,Wisconsin,55013,2,1 +2020-06-21,Burnett,Wisconsin,55013,2,1 +2020-06-22,Burnett,Wisconsin,55013,2,1 +2020-06-23,Burnett,Wisconsin,55013,2,1 +2020-06-24,Burnett,Wisconsin,55013,2,1 +2020-06-25,Burnett,Wisconsin,55013,2,1 +2020-06-26,Burnett,Wisconsin,55013,2,1 +2020-06-27,Burnett,Wisconsin,55013,3,1 +2020-06-28,Burnett,Wisconsin,55013,3,1 +2020-06-29,Burnett,Wisconsin,55013,3,1 +2020-06-30,Burnett,Wisconsin,55013,3,1 +2020-07-01,Burnett,Wisconsin,55013,3,1 +2020-07-02,Burnett,Wisconsin,55013,3,1 +2020-07-03,Burnett,Wisconsin,55013,3,1 +2020-07-04,Burnett,Wisconsin,55013,4,1 +2020-07-05,Burnett,Wisconsin,55013,4,1 +2020-07-06,Burnett,Wisconsin,55013,4,1 +2020-07-07,Burnett,Wisconsin,55013,5,1 +2020-07-08,Burnett,Wisconsin,55013,5,1 +2020-07-09,Burnett,Wisconsin,55013,6,1 +2020-03-19,Calumet,Wisconsin,55015,1,0 +2020-03-20,Calumet,Wisconsin,55015,1,0 +2020-03-21,Calumet,Wisconsin,55015,1,0 +2020-03-22,Calumet,Wisconsin,55015,1,0 +2020-03-23,Calumet,Wisconsin,55015,1,0 +2020-03-24,Calumet,Wisconsin,55015,1,0 +2020-03-25,Calumet,Wisconsin,55015,1,0 +2020-03-26,Calumet,Wisconsin,55015,1,0 +2020-03-27,Calumet,Wisconsin,55015,1,0 +2020-03-28,Calumet,Wisconsin,55015,1,0 +2020-03-29,Calumet,Wisconsin,55015,1,0 +2020-03-30,Calumet,Wisconsin,55015,1,0 +2020-03-31,Calumet,Wisconsin,55015,1,0 +2020-04-01,Calumet,Wisconsin,55015,2,0 +2020-04-02,Calumet,Wisconsin,55015,3,0 +2020-04-03,Calumet,Wisconsin,55015,3,0 +2020-04-04,Calumet,Wisconsin,55015,3,0 +2020-04-05,Calumet,Wisconsin,55015,4,0 +2020-04-06,Calumet,Wisconsin,55015,4,0 +2020-04-07,Calumet,Wisconsin,55015,4,0 +2020-04-08,Calumet,Wisconsin,55015,4,0 +2020-04-09,Calumet,Wisconsin,55015,4,0 +2020-04-10,Calumet,Wisconsin,55015,4,0 +2020-04-11,Calumet,Wisconsin,55015,4,0 +2020-04-12,Calumet,Wisconsin,55015,4,0 +2020-04-13,Calumet,Wisconsin,55015,5,0 +2020-04-14,Calumet,Wisconsin,55015,5,0 +2020-04-15,Calumet,Wisconsin,55015,5,0 +2020-04-16,Calumet,Wisconsin,55015,5,0 +2020-04-17,Calumet,Wisconsin,55015,5,0 +2020-04-18,Calumet,Wisconsin,55015,5,0 +2020-04-19,Calumet,Wisconsin,55015,6,0 +2020-04-20,Calumet,Wisconsin,55015,6,0 +2020-04-21,Calumet,Wisconsin,55015,6,0 +2020-04-22,Calumet,Wisconsin,55015,6,0 +2020-04-23,Calumet,Wisconsin,55015,6,0 +2020-04-24,Calumet,Wisconsin,55015,7,0 +2020-04-25,Calumet,Wisconsin,55015,7,0 +2020-04-26,Calumet,Wisconsin,55015,7,0 +2020-04-27,Calumet,Wisconsin,55015,9,0 +2020-04-28,Calumet,Wisconsin,55015,10,0 +2020-04-29,Calumet,Wisconsin,55015,12,0 +2020-04-30,Calumet,Wisconsin,55015,13,0 +2020-05-01,Calumet,Wisconsin,55015,14,0 +2020-05-02,Calumet,Wisconsin,55015,16,0 +2020-05-03,Calumet,Wisconsin,55015,18,0 +2020-05-04,Calumet,Wisconsin,55015,19,0 +2020-05-05,Calumet,Wisconsin,55015,20,0 +2020-05-06,Calumet,Wisconsin,55015,20,0 +2020-05-07,Calumet,Wisconsin,55015,22,0 +2020-05-08,Calumet,Wisconsin,55015,34,0 +2020-05-09,Calumet,Wisconsin,55015,35,0 +2020-05-10,Calumet,Wisconsin,55015,40,1 +2020-05-11,Calumet,Wisconsin,55015,41,1 +2020-05-12,Calumet,Wisconsin,55015,43,1 +2020-05-13,Calumet,Wisconsin,55015,44,1 +2020-05-14,Calumet,Wisconsin,55015,46,1 +2020-05-15,Calumet,Wisconsin,55015,55,1 +2020-05-16,Calumet,Wisconsin,55015,56,1 +2020-05-17,Calumet,Wisconsin,55015,57,1 +2020-05-18,Calumet,Wisconsin,55015,58,1 +2020-05-19,Calumet,Wisconsin,55015,58,1 +2020-05-20,Calumet,Wisconsin,55015,60,1 +2020-05-21,Calumet,Wisconsin,55015,61,1 +2020-05-22,Calumet,Wisconsin,55015,67,1 +2020-05-23,Calumet,Wisconsin,55015,69,1 +2020-05-24,Calumet,Wisconsin,55015,69,1 +2020-05-25,Calumet,Wisconsin,55015,70,1 +2020-05-26,Calumet,Wisconsin,55015,73,1 +2020-05-27,Calumet,Wisconsin,55015,74,1 +2020-05-28,Calumet,Wisconsin,55015,74,1 +2020-05-29,Calumet,Wisconsin,55015,75,1 +2020-05-30,Calumet,Wisconsin,55015,76,1 +2020-05-31,Calumet,Wisconsin,55015,76,1 +2020-06-01,Calumet,Wisconsin,55015,77,1 +2020-06-02,Calumet,Wisconsin,55015,78,1 +2020-06-03,Calumet,Wisconsin,55015,79,1 +2020-06-04,Calumet,Wisconsin,55015,79,1 +2020-06-05,Calumet,Wisconsin,55015,79,1 +2020-06-06,Calumet,Wisconsin,55015,79,1 +2020-06-07,Calumet,Wisconsin,55015,80,1 +2020-06-08,Calumet,Wisconsin,55015,81,1 +2020-06-09,Calumet,Wisconsin,55015,81,1 +2020-06-10,Calumet,Wisconsin,55015,81,2 +2020-06-11,Calumet,Wisconsin,55015,83,2 +2020-06-12,Calumet,Wisconsin,55015,84,2 +2020-06-13,Calumet,Wisconsin,55015,86,2 +2020-06-14,Calumet,Wisconsin,55015,86,2 +2020-06-15,Calumet,Wisconsin,55015,86,2 +2020-06-16,Calumet,Wisconsin,55015,87,2 +2020-06-17,Calumet,Wisconsin,55015,88,2 +2020-06-18,Calumet,Wisconsin,55015,90,2 +2020-06-19,Calumet,Wisconsin,55015,90,2 +2020-06-20,Calumet,Wisconsin,55015,90,2 +2020-06-21,Calumet,Wisconsin,55015,92,2 +2020-06-22,Calumet,Wisconsin,55015,92,2 +2020-06-23,Calumet,Wisconsin,55015,92,2 +2020-06-24,Calumet,Wisconsin,55015,92,2 +2020-06-25,Calumet,Wisconsin,55015,94,2 +2020-06-26,Calumet,Wisconsin,55015,96,2 +2020-06-27,Calumet,Wisconsin,55015,97,2 +2020-06-28,Calumet,Wisconsin,55015,103,2 +2020-06-29,Calumet,Wisconsin,55015,106,2 +2020-06-30,Calumet,Wisconsin,55015,108,2 +2020-07-01,Calumet,Wisconsin,55015,111,2 +2020-07-02,Calumet,Wisconsin,55015,112,2 +2020-07-03,Calumet,Wisconsin,55015,113,2 +2020-07-04,Calumet,Wisconsin,55015,117,2 +2020-07-05,Calumet,Wisconsin,55015,118,2 +2020-07-06,Calumet,Wisconsin,55015,119,2 +2020-07-07,Calumet,Wisconsin,55015,125,2 +2020-07-08,Calumet,Wisconsin,55015,127,2 +2020-07-09,Calumet,Wisconsin,55015,133,2 +2020-03-20,Chippewa,Wisconsin,55017,1,0 +2020-03-21,Chippewa,Wisconsin,55017,1,0 +2020-03-22,Chippewa,Wisconsin,55017,1,0 +2020-03-23,Chippewa,Wisconsin,55017,1,0 +2020-03-24,Chippewa,Wisconsin,55017,2,0 +2020-03-25,Chippewa,Wisconsin,55017,1,0 +2020-03-26,Chippewa,Wisconsin,55017,1,0 +2020-03-27,Chippewa,Wisconsin,55017,3,0 +2020-03-28,Chippewa,Wisconsin,55017,4,0 +2020-03-29,Chippewa,Wisconsin,55017,4,0 +2020-03-30,Chippewa,Wisconsin,55017,7,0 +2020-03-31,Chippewa,Wisconsin,55017,8,0 +2020-04-01,Chippewa,Wisconsin,55017,10,0 +2020-04-02,Chippewa,Wisconsin,55017,11,0 +2020-04-03,Chippewa,Wisconsin,55017,14,0 +2020-04-04,Chippewa,Wisconsin,55017,16,0 +2020-04-05,Chippewa,Wisconsin,55017,16,0 +2020-04-06,Chippewa,Wisconsin,55017,16,0 +2020-04-07,Chippewa,Wisconsin,55017,16,0 +2020-04-08,Chippewa,Wisconsin,55017,17,0 +2020-04-09,Chippewa,Wisconsin,55017,17,0 +2020-04-10,Chippewa,Wisconsin,55017,18,0 +2020-04-11,Chippewa,Wisconsin,55017,18,0 +2020-04-12,Chippewa,Wisconsin,55017,20,0 +2020-04-13,Chippewa,Wisconsin,55017,20,0 +2020-04-14,Chippewa,Wisconsin,55017,20,0 +2020-04-15,Chippewa,Wisconsin,55017,20,0 +2020-04-16,Chippewa,Wisconsin,55017,20,0 +2020-04-17,Chippewa,Wisconsin,55017,20,0 +2020-04-18,Chippewa,Wisconsin,55017,21,0 +2020-04-19,Chippewa,Wisconsin,55017,20,0 +2020-04-20,Chippewa,Wisconsin,55017,20,0 +2020-04-21,Chippewa,Wisconsin,55017,20,0 +2020-04-22,Chippewa,Wisconsin,55017,20,0 +2020-04-23,Chippewa,Wisconsin,55017,20,0 +2020-04-24,Chippewa,Wisconsin,55017,20,0 +2020-04-25,Chippewa,Wisconsin,55017,20,0 +2020-04-26,Chippewa,Wisconsin,55017,20,0 +2020-04-27,Chippewa,Wisconsin,55017,20,0 +2020-04-28,Chippewa,Wisconsin,55017,21,0 +2020-04-29,Chippewa,Wisconsin,55017,21,0 +2020-04-30,Chippewa,Wisconsin,55017,22,0 +2020-05-01,Chippewa,Wisconsin,55017,23,0 +2020-05-02,Chippewa,Wisconsin,55017,23,0 +2020-05-03,Chippewa,Wisconsin,55017,25,0 +2020-05-04,Chippewa,Wisconsin,55017,25,0 +2020-05-05,Chippewa,Wisconsin,55017,25,0 +2020-05-06,Chippewa,Wisconsin,55017,27,0 +2020-05-07,Chippewa,Wisconsin,55017,27,0 +2020-05-08,Chippewa,Wisconsin,55017,27,0 +2020-05-09,Chippewa,Wisconsin,55017,29,0 +2020-05-10,Chippewa,Wisconsin,55017,29,0 +2020-05-11,Chippewa,Wisconsin,55017,30,0 +2020-05-12,Chippewa,Wisconsin,55017,31,0 +2020-05-13,Chippewa,Wisconsin,55017,31,0 +2020-05-14,Chippewa,Wisconsin,55017,33,0 +2020-05-15,Chippewa,Wisconsin,55017,37,0 +2020-05-16,Chippewa,Wisconsin,55017,39,0 +2020-05-17,Chippewa,Wisconsin,55017,39,0 +2020-05-18,Chippewa,Wisconsin,55017,41,0 +2020-05-19,Chippewa,Wisconsin,55017,42,0 +2020-05-20,Chippewa,Wisconsin,55017,43,0 +2020-05-21,Chippewa,Wisconsin,55017,45,0 +2020-05-22,Chippewa,Wisconsin,55017,46,0 +2020-05-23,Chippewa,Wisconsin,55017,48,0 +2020-05-24,Chippewa,Wisconsin,55017,49,0 +2020-05-25,Chippewa,Wisconsin,55017,53,0 +2020-05-26,Chippewa,Wisconsin,55017,54,0 +2020-05-27,Chippewa,Wisconsin,55017,54,0 +2020-05-28,Chippewa,Wisconsin,55017,53,0 +2020-05-29,Chippewa,Wisconsin,55017,55,0 +2020-05-30,Chippewa,Wisconsin,55017,56,0 +2020-05-31,Chippewa,Wisconsin,55017,56,0 +2020-06-01,Chippewa,Wisconsin,55017,56,0 +2020-06-02,Chippewa,Wisconsin,55017,57,0 +2020-06-03,Chippewa,Wisconsin,55017,58,0 +2020-06-04,Chippewa,Wisconsin,55017,58,0 +2020-06-05,Chippewa,Wisconsin,55017,58,0 +2020-06-06,Chippewa,Wisconsin,55017,58,0 +2020-06-07,Chippewa,Wisconsin,55017,59,0 +2020-06-08,Chippewa,Wisconsin,55017,59,0 +2020-06-09,Chippewa,Wisconsin,55017,59,0 +2020-06-10,Chippewa,Wisconsin,55017,60,0 +2020-06-11,Chippewa,Wisconsin,55017,61,0 +2020-06-12,Chippewa,Wisconsin,55017,64,0 +2020-06-13,Chippewa,Wisconsin,55017,63,0 +2020-06-14,Chippewa,Wisconsin,55017,62,0 +2020-06-15,Chippewa,Wisconsin,55017,62,0 +2020-06-16,Chippewa,Wisconsin,55017,63,0 +2020-06-17,Chippewa,Wisconsin,55017,63,0 +2020-06-18,Chippewa,Wisconsin,55017,65,0 +2020-06-19,Chippewa,Wisconsin,55017,65,0 +2020-06-20,Chippewa,Wisconsin,55017,67,0 +2020-06-21,Chippewa,Wisconsin,55017,69,0 +2020-06-22,Chippewa,Wisconsin,55017,70,0 +2020-06-23,Chippewa,Wisconsin,55017,70,0 +2020-06-24,Chippewa,Wisconsin,55017,71,0 +2020-06-25,Chippewa,Wisconsin,55017,76,0 +2020-06-26,Chippewa,Wisconsin,55017,78,0 +2020-06-27,Chippewa,Wisconsin,55017,82,0 +2020-06-28,Chippewa,Wisconsin,55017,82,0 +2020-06-29,Chippewa,Wisconsin,55017,84,0 +2020-06-30,Chippewa,Wisconsin,55017,84,0 +2020-07-01,Chippewa,Wisconsin,55017,88,0 +2020-07-02,Chippewa,Wisconsin,55017,91,0 +2020-07-03,Chippewa,Wisconsin,55017,95,0 +2020-07-04,Chippewa,Wisconsin,55017,99,0 +2020-07-05,Chippewa,Wisconsin,55017,102,0 +2020-07-06,Chippewa,Wisconsin,55017,105,0 +2020-07-07,Chippewa,Wisconsin,55017,118,0 +2020-07-08,Chippewa,Wisconsin,55017,124,0 +2020-07-09,Chippewa,Wisconsin,55017,127,0 +2020-03-26,Clark,Wisconsin,55019,1,0 +2020-03-27,Clark,Wisconsin,55019,3,0 +2020-03-28,Clark,Wisconsin,55019,3,0 +2020-03-29,Clark,Wisconsin,55019,3,0 +2020-03-30,Clark,Wisconsin,55019,3,0 +2020-03-31,Clark,Wisconsin,55019,3,0 +2020-04-01,Clark,Wisconsin,55019,5,0 +2020-04-02,Clark,Wisconsin,55019,6,0 +2020-04-03,Clark,Wisconsin,55019,6,0 +2020-04-04,Clark,Wisconsin,55019,6,0 +2020-04-05,Clark,Wisconsin,55019,6,0 +2020-04-06,Clark,Wisconsin,55019,7,0 +2020-04-07,Clark,Wisconsin,55019,7,0 +2020-04-08,Clark,Wisconsin,55019,7,0 +2020-04-09,Clark,Wisconsin,55019,7,0 +2020-04-10,Clark,Wisconsin,55019,7,0 +2020-04-11,Clark,Wisconsin,55019,7,0 +2020-04-12,Clark,Wisconsin,55019,8,0 +2020-04-13,Clark,Wisconsin,55019,8,0 +2020-04-14,Clark,Wisconsin,55019,8,0 +2020-04-15,Clark,Wisconsin,55019,9,0 +2020-04-16,Clark,Wisconsin,55019,10,0 +2020-04-17,Clark,Wisconsin,55019,12,0 +2020-04-18,Clark,Wisconsin,55019,14,0 +2020-04-19,Clark,Wisconsin,55019,16,1 +2020-04-20,Clark,Wisconsin,55019,16,1 +2020-04-21,Clark,Wisconsin,55019,17,1 +2020-04-22,Clark,Wisconsin,55019,18,1 +2020-04-23,Clark,Wisconsin,55019,18,1 +2020-04-24,Clark,Wisconsin,55019,19,1 +2020-04-25,Clark,Wisconsin,55019,19,1 +2020-04-26,Clark,Wisconsin,55019,19,2 +2020-04-27,Clark,Wisconsin,55019,19,2 +2020-04-28,Clark,Wisconsin,55019,20,3 +2020-04-29,Clark,Wisconsin,55019,20,4 +2020-04-30,Clark,Wisconsin,55019,20,4 +2020-05-01,Clark,Wisconsin,55019,20,4 +2020-05-02,Clark,Wisconsin,55019,20,4 +2020-05-03,Clark,Wisconsin,55019,21,4 +2020-05-04,Clark,Wisconsin,55019,21,4 +2020-05-05,Clark,Wisconsin,55019,21,4 +2020-05-06,Clark,Wisconsin,55019,22,4 +2020-05-07,Clark,Wisconsin,55019,23,4 +2020-05-08,Clark,Wisconsin,55019,23,4 +2020-05-09,Clark,Wisconsin,55019,24,4 +2020-05-10,Clark,Wisconsin,55019,24,4 +2020-05-11,Clark,Wisconsin,55019,24,4 +2020-05-12,Clark,Wisconsin,55019,24,4 +2020-05-13,Clark,Wisconsin,55019,24,4 +2020-05-14,Clark,Wisconsin,55019,25,4 +2020-05-15,Clark,Wisconsin,55019,25,4 +2020-05-16,Clark,Wisconsin,55019,26,4 +2020-05-17,Clark,Wisconsin,55019,28,4 +2020-05-18,Clark,Wisconsin,55019,28,4 +2020-05-19,Clark,Wisconsin,55019,29,4 +2020-05-20,Clark,Wisconsin,55019,30,4 +2020-05-21,Clark,Wisconsin,55019,29,4 +2020-05-22,Clark,Wisconsin,55019,28,4 +2020-05-23,Clark,Wisconsin,55019,28,4 +2020-05-24,Clark,Wisconsin,55019,28,4 +2020-05-25,Clark,Wisconsin,55019,28,4 +2020-05-26,Clark,Wisconsin,55019,28,4 +2020-05-27,Clark,Wisconsin,55019,29,4 +2020-05-28,Clark,Wisconsin,55019,32,4 +2020-05-29,Clark,Wisconsin,55019,32,4 +2020-05-30,Clark,Wisconsin,55019,31,4 +2020-05-31,Clark,Wisconsin,55019,32,4 +2020-06-01,Clark,Wisconsin,55019,33,4 +2020-06-02,Clark,Wisconsin,55019,33,4 +2020-06-03,Clark,Wisconsin,55019,35,4 +2020-06-04,Clark,Wisconsin,55019,37,4 +2020-06-05,Clark,Wisconsin,55019,39,4 +2020-06-06,Clark,Wisconsin,55019,42,4 +2020-06-07,Clark,Wisconsin,55019,42,4 +2020-06-08,Clark,Wisconsin,55019,42,4 +2020-06-09,Clark,Wisconsin,55019,45,4 +2020-06-10,Clark,Wisconsin,55019,45,4 +2020-06-11,Clark,Wisconsin,55019,45,4 +2020-06-12,Clark,Wisconsin,55019,50,4 +2020-06-13,Clark,Wisconsin,55019,50,4 +2020-06-14,Clark,Wisconsin,55019,50,4 +2020-06-15,Clark,Wisconsin,55019,51,4 +2020-06-16,Clark,Wisconsin,55019,51,4 +2020-06-17,Clark,Wisconsin,55019,53,4 +2020-06-18,Clark,Wisconsin,55019,56,5 +2020-06-19,Clark,Wisconsin,55019,56,6 +2020-06-20,Clark,Wisconsin,55019,58,6 +2020-06-21,Clark,Wisconsin,55019,58,6 +2020-06-22,Clark,Wisconsin,55019,60,6 +2020-06-23,Clark,Wisconsin,55019,60,6 +2020-06-24,Clark,Wisconsin,55019,64,6 +2020-06-25,Clark,Wisconsin,55019,64,6 +2020-06-26,Clark,Wisconsin,55019,67,6 +2020-06-27,Clark,Wisconsin,55019,69,6 +2020-06-28,Clark,Wisconsin,55019,70,6 +2020-06-29,Clark,Wisconsin,55019,70,6 +2020-06-30,Clark,Wisconsin,55019,72,6 +2020-07-01,Clark,Wisconsin,55019,77,6 +2020-07-02,Clark,Wisconsin,55019,81,7 +2020-07-03,Clark,Wisconsin,55019,82,7 +2020-07-04,Clark,Wisconsin,55019,86,7 +2020-07-05,Clark,Wisconsin,55019,87,7 +2020-07-06,Clark,Wisconsin,55019,87,7 +2020-07-07,Clark,Wisconsin,55019,87,7 +2020-07-08,Clark,Wisconsin,55019,88,7 +2020-07-09,Clark,Wisconsin,55019,93,7 +2020-03-19,Columbia,Wisconsin,55021,4,0 +2020-03-20,Columbia,Wisconsin,55021,5,0 +2020-03-21,Columbia,Wisconsin,55021,5,0 +2020-03-22,Columbia,Wisconsin,55021,5,0 +2020-03-23,Columbia,Wisconsin,55021,5,0 +2020-03-24,Columbia,Wisconsin,55021,5,0 +2020-03-25,Columbia,Wisconsin,55021,5,0 +2020-03-26,Columbia,Wisconsin,55021,5,0 +2020-03-27,Columbia,Wisconsin,55021,7,0 +2020-03-28,Columbia,Wisconsin,55021,7,0 +2020-03-29,Columbia,Wisconsin,55021,9,0 +2020-03-30,Columbia,Wisconsin,55021,9,0 +2020-03-31,Columbia,Wisconsin,55021,9,0 +2020-04-01,Columbia,Wisconsin,55021,13,0 +2020-04-02,Columbia,Wisconsin,55021,15,0 +2020-04-03,Columbia,Wisconsin,55021,18,0 +2020-04-04,Columbia,Wisconsin,55021,19,0 +2020-04-05,Columbia,Wisconsin,55021,19,0 +2020-04-06,Columbia,Wisconsin,55021,21,1 +2020-04-07,Columbia,Wisconsin,55021,23,1 +2020-04-08,Columbia,Wisconsin,55021,24,1 +2020-04-09,Columbia,Wisconsin,55021,25,1 +2020-04-10,Columbia,Wisconsin,55021,24,1 +2020-04-11,Columbia,Wisconsin,55021,24,1 +2020-04-12,Columbia,Wisconsin,55021,24,1 +2020-04-13,Columbia,Wisconsin,55021,25,1 +2020-04-14,Columbia,Wisconsin,55021,25,1 +2020-04-15,Columbia,Wisconsin,55021,27,1 +2020-04-16,Columbia,Wisconsin,55021,27,1 +2020-04-17,Columbia,Wisconsin,55021,27,1 +2020-04-18,Columbia,Wisconsin,55021,27,1 +2020-04-19,Columbia,Wisconsin,55021,27,1 +2020-04-20,Columbia,Wisconsin,55021,27,1 +2020-04-21,Columbia,Wisconsin,55021,27,1 +2020-04-22,Columbia,Wisconsin,55021,27,1 +2020-04-23,Columbia,Wisconsin,55021,27,1 +2020-04-24,Columbia,Wisconsin,55021,27,1 +2020-04-25,Columbia,Wisconsin,55021,27,1 +2020-04-26,Columbia,Wisconsin,55021,27,1 +2020-04-27,Columbia,Wisconsin,55021,27,1 +2020-04-28,Columbia,Wisconsin,55021,27,1 +2020-04-29,Columbia,Wisconsin,55021,27,1 +2020-04-30,Columbia,Wisconsin,55021,27,1 +2020-05-01,Columbia,Wisconsin,55021,28,1 +2020-05-02,Columbia,Wisconsin,55021,29,1 +2020-05-03,Columbia,Wisconsin,55021,29,1 +2020-05-04,Columbia,Wisconsin,55021,30,1 +2020-05-05,Columbia,Wisconsin,55021,32,1 +2020-05-06,Columbia,Wisconsin,55021,32,1 +2020-05-07,Columbia,Wisconsin,55021,32,1 +2020-05-08,Columbia,Wisconsin,55021,32,1 +2020-05-09,Columbia,Wisconsin,55021,32,1 +2020-05-10,Columbia,Wisconsin,55021,32,1 +2020-05-11,Columbia,Wisconsin,55021,32,1 +2020-05-12,Columbia,Wisconsin,55021,34,1 +2020-05-13,Columbia,Wisconsin,55021,34,1 +2020-05-14,Columbia,Wisconsin,55021,34,1 +2020-05-15,Columbia,Wisconsin,55021,34,1 +2020-05-16,Columbia,Wisconsin,55021,36,1 +2020-05-17,Columbia,Wisconsin,55021,36,1 +2020-05-18,Columbia,Wisconsin,55021,36,1 +2020-05-19,Columbia,Wisconsin,55021,36,1 +2020-05-20,Columbia,Wisconsin,55021,37,1 +2020-05-21,Columbia,Wisconsin,55021,36,1 +2020-05-22,Columbia,Wisconsin,55021,37,1 +2020-05-23,Columbia,Wisconsin,55021,37,1 +2020-05-24,Columbia,Wisconsin,55021,37,1 +2020-05-25,Columbia,Wisconsin,55021,38,1 +2020-05-26,Columbia,Wisconsin,55021,38,1 +2020-05-27,Columbia,Wisconsin,55021,40,1 +2020-05-28,Columbia,Wisconsin,55021,42,1 +2020-05-29,Columbia,Wisconsin,55021,43,1 +2020-05-30,Columbia,Wisconsin,55021,44,1 +2020-05-31,Columbia,Wisconsin,55021,44,1 +2020-06-01,Columbia,Wisconsin,55021,44,1 +2020-06-02,Columbia,Wisconsin,55021,44,1 +2020-06-03,Columbia,Wisconsin,55021,44,1 +2020-06-04,Columbia,Wisconsin,55021,44,1 +2020-06-05,Columbia,Wisconsin,55021,44,1 +2020-06-06,Columbia,Wisconsin,55021,44,1 +2020-06-07,Columbia,Wisconsin,55021,46,1 +2020-06-08,Columbia,Wisconsin,55021,46,1 +2020-06-09,Columbia,Wisconsin,55021,47,1 +2020-06-10,Columbia,Wisconsin,55021,49,1 +2020-06-11,Columbia,Wisconsin,55021,50,1 +2020-06-12,Columbia,Wisconsin,55021,55,1 +2020-06-13,Columbia,Wisconsin,55021,56,1 +2020-06-14,Columbia,Wisconsin,55021,56,1 +2020-06-15,Columbia,Wisconsin,55021,56,1 +2020-06-16,Columbia,Wisconsin,55021,58,1 +2020-06-17,Columbia,Wisconsin,55021,59,1 +2020-06-18,Columbia,Wisconsin,55021,60,1 +2020-06-19,Columbia,Wisconsin,55021,63,1 +2020-06-20,Columbia,Wisconsin,55021,64,1 +2020-06-21,Columbia,Wisconsin,55021,68,1 +2020-06-22,Columbia,Wisconsin,55021,69,1 +2020-06-23,Columbia,Wisconsin,55021,70,1 +2020-06-24,Columbia,Wisconsin,55021,70,1 +2020-06-25,Columbia,Wisconsin,55021,74,1 +2020-06-26,Columbia,Wisconsin,55021,76,1 +2020-06-27,Columbia,Wisconsin,55021,79,1 +2020-06-28,Columbia,Wisconsin,55021,80,1 +2020-06-29,Columbia,Wisconsin,55021,83,1 +2020-06-30,Columbia,Wisconsin,55021,85,1 +2020-07-01,Columbia,Wisconsin,55021,88,1 +2020-07-02,Columbia,Wisconsin,55021,89,1 +2020-07-03,Columbia,Wisconsin,55021,91,1 +2020-07-04,Columbia,Wisconsin,55021,94,1 +2020-07-05,Columbia,Wisconsin,55021,101,1 +2020-07-06,Columbia,Wisconsin,55021,101,1 +2020-07-07,Columbia,Wisconsin,55021,104,1 +2020-07-08,Columbia,Wisconsin,55021,105,1 +2020-07-09,Columbia,Wisconsin,55021,110,1 +2020-04-01,Crawford,Wisconsin,55023,1,0 +2020-04-02,Crawford,Wisconsin,55023,1,0 +2020-04-03,Crawford,Wisconsin,55023,1,0 +2020-04-04,Crawford,Wisconsin,55023,1,0 +2020-04-05,Crawford,Wisconsin,55023,2,0 +2020-04-06,Crawford,Wisconsin,55023,2,0 +2020-04-07,Crawford,Wisconsin,55023,2,0 +2020-04-08,Crawford,Wisconsin,55023,2,0 +2020-04-09,Crawford,Wisconsin,55023,2,0 +2020-04-10,Crawford,Wisconsin,55023,3,0 +2020-04-11,Crawford,Wisconsin,55023,3,0 +2020-04-12,Crawford,Wisconsin,55023,3,0 +2020-04-13,Crawford,Wisconsin,55023,3,0 +2020-04-14,Crawford,Wisconsin,55023,3,0 +2020-04-15,Crawford,Wisconsin,55023,3,0 +2020-04-16,Crawford,Wisconsin,55023,3,0 +2020-04-17,Crawford,Wisconsin,55023,3,0 +2020-04-18,Crawford,Wisconsin,55023,3,0 +2020-04-19,Crawford,Wisconsin,55023,3,0 +2020-04-20,Crawford,Wisconsin,55023,3,0 +2020-04-21,Crawford,Wisconsin,55023,3,0 +2020-04-22,Crawford,Wisconsin,55023,3,0 +2020-04-23,Crawford,Wisconsin,55023,3,0 +2020-04-24,Crawford,Wisconsin,55023,3,0 +2020-04-25,Crawford,Wisconsin,55023,3,0 +2020-04-26,Crawford,Wisconsin,55023,3,0 +2020-04-27,Crawford,Wisconsin,55023,3,0 +2020-04-28,Crawford,Wisconsin,55023,3,0 +2020-04-29,Crawford,Wisconsin,55023,3,0 +2020-04-30,Crawford,Wisconsin,55023,3,0 +2020-05-01,Crawford,Wisconsin,55023,3,0 +2020-05-02,Crawford,Wisconsin,55023,4,0 +2020-05-03,Crawford,Wisconsin,55023,5,0 +2020-05-04,Crawford,Wisconsin,55023,6,0 +2020-05-05,Crawford,Wisconsin,55023,7,0 +2020-05-06,Crawford,Wisconsin,55023,7,0 +2020-05-07,Crawford,Wisconsin,55023,16,0 +2020-05-08,Crawford,Wisconsin,55023,16,0 +2020-05-09,Crawford,Wisconsin,55023,17,0 +2020-05-10,Crawford,Wisconsin,55023,17,0 +2020-05-11,Crawford,Wisconsin,55023,17,0 +2020-05-12,Crawford,Wisconsin,55023,17,0 +2020-05-13,Crawford,Wisconsin,55023,17,0 +2020-05-14,Crawford,Wisconsin,55023,18,0 +2020-05-15,Crawford,Wisconsin,55023,20,0 +2020-05-16,Crawford,Wisconsin,55023,22,0 +2020-05-17,Crawford,Wisconsin,55023,22,0 +2020-05-18,Crawford,Wisconsin,55023,23,0 +2020-05-19,Crawford,Wisconsin,55023,23,0 +2020-05-20,Crawford,Wisconsin,55023,23,0 +2020-05-21,Crawford,Wisconsin,55023,24,0 +2020-05-22,Crawford,Wisconsin,55023,25,0 +2020-05-23,Crawford,Wisconsin,55023,25,0 +2020-05-24,Crawford,Wisconsin,55023,25,0 +2020-05-25,Crawford,Wisconsin,55023,26,0 +2020-05-26,Crawford,Wisconsin,55023,26,0 +2020-05-27,Crawford,Wisconsin,55023,26,0 +2020-05-28,Crawford,Wisconsin,55023,26,0 +2020-05-29,Crawford,Wisconsin,55023,26,0 +2020-05-30,Crawford,Wisconsin,55023,26,0 +2020-05-31,Crawford,Wisconsin,55023,26,0 +2020-06-01,Crawford,Wisconsin,55023,26,0 +2020-06-02,Crawford,Wisconsin,55023,26,0 +2020-06-03,Crawford,Wisconsin,55023,26,0 +2020-06-04,Crawford,Wisconsin,55023,26,0 +2020-06-05,Crawford,Wisconsin,55023,26,0 +2020-06-06,Crawford,Wisconsin,55023,26,0 +2020-06-07,Crawford,Wisconsin,55023,26,0 +2020-06-08,Crawford,Wisconsin,55023,26,0 +2020-06-09,Crawford,Wisconsin,55023,26,0 +2020-06-10,Crawford,Wisconsin,55023,26,0 +2020-06-11,Crawford,Wisconsin,55023,26,0 +2020-06-12,Crawford,Wisconsin,55023,26,0 +2020-06-13,Crawford,Wisconsin,55023,26,0 +2020-06-14,Crawford,Wisconsin,55023,27,0 +2020-06-15,Crawford,Wisconsin,55023,27,0 +2020-06-16,Crawford,Wisconsin,55023,27,0 +2020-06-17,Crawford,Wisconsin,55023,27,0 +2020-06-18,Crawford,Wisconsin,55023,27,0 +2020-06-19,Crawford,Wisconsin,55023,27,0 +2020-06-20,Crawford,Wisconsin,55023,29,0 +2020-06-21,Crawford,Wisconsin,55023,31,0 +2020-06-22,Crawford,Wisconsin,55023,31,0 +2020-06-23,Crawford,Wisconsin,55023,31,0 +2020-06-24,Crawford,Wisconsin,55023,32,0 +2020-06-25,Crawford,Wisconsin,55023,32,0 +2020-06-26,Crawford,Wisconsin,55023,32,0 +2020-06-27,Crawford,Wisconsin,55023,32,0 +2020-06-28,Crawford,Wisconsin,55023,33,0 +2020-06-29,Crawford,Wisconsin,55023,33,0 +2020-06-30,Crawford,Wisconsin,55023,33,0 +2020-07-01,Crawford,Wisconsin,55023,34,0 +2020-07-02,Crawford,Wisconsin,55023,36,0 +2020-07-03,Crawford,Wisconsin,55023,39,0 +2020-07-04,Crawford,Wisconsin,55023,41,0 +2020-07-05,Crawford,Wisconsin,55023,41,0 +2020-07-06,Crawford,Wisconsin,55023,41,0 +2020-07-07,Crawford,Wisconsin,55023,41,0 +2020-07-08,Crawford,Wisconsin,55023,44,0 +2020-07-09,Crawford,Wisconsin,55023,44,0 +2020-02-05,Dane,Wisconsin,55025,1,0 +2020-02-06,Dane,Wisconsin,55025,1,0 +2020-02-07,Dane,Wisconsin,55025,1,0 +2020-02-08,Dane,Wisconsin,55025,1,0 +2020-02-09,Dane,Wisconsin,55025,1,0 +2020-02-10,Dane,Wisconsin,55025,1,0 +2020-02-11,Dane,Wisconsin,55025,1,0 +2020-02-12,Dane,Wisconsin,55025,1,0 +2020-02-13,Dane,Wisconsin,55025,1,0 +2020-02-14,Dane,Wisconsin,55025,1,0 +2020-02-15,Dane,Wisconsin,55025,1,0 +2020-02-16,Dane,Wisconsin,55025,1,0 +2020-02-17,Dane,Wisconsin,55025,1,0 +2020-02-18,Dane,Wisconsin,55025,1,0 +2020-02-19,Dane,Wisconsin,55025,1,0 +2020-02-20,Dane,Wisconsin,55025,1,0 +2020-02-21,Dane,Wisconsin,55025,1,0 +2020-02-22,Dane,Wisconsin,55025,1,0 +2020-02-23,Dane,Wisconsin,55025,1,0 +2020-02-24,Dane,Wisconsin,55025,1,0 +2020-02-25,Dane,Wisconsin,55025,1,0 +2020-02-26,Dane,Wisconsin,55025,1,0 +2020-02-27,Dane,Wisconsin,55025,1,0 +2020-02-28,Dane,Wisconsin,55025,1,0 +2020-02-29,Dane,Wisconsin,55025,1,0 +2020-03-01,Dane,Wisconsin,55025,1,0 +2020-03-02,Dane,Wisconsin,55025,1,0 +2020-03-03,Dane,Wisconsin,55025,1,0 +2020-03-04,Dane,Wisconsin,55025,1,0 +2020-03-05,Dane,Wisconsin,55025,1,0 +2020-03-06,Dane,Wisconsin,55025,1,0 +2020-03-07,Dane,Wisconsin,55025,1,0 +2020-03-08,Dane,Wisconsin,55025,1,0 +2020-03-09,Dane,Wisconsin,55025,1,0 +2020-03-10,Dane,Wisconsin,55025,2,0 +2020-03-11,Dane,Wisconsin,55025,2,0 +2020-03-12,Dane,Wisconsin,55025,4,0 +2020-03-13,Dane,Wisconsin,55025,5,0 +2020-03-14,Dane,Wisconsin,55025,6,0 +2020-03-15,Dane,Wisconsin,55025,6,0 +2020-03-16,Dane,Wisconsin,55025,10,0 +2020-03-17,Dane,Wisconsin,55025,19,0 +2020-03-18,Dane,Wisconsin,55025,23,0 +2020-03-19,Dane,Wisconsin,55025,27,0 +2020-03-20,Dane,Wisconsin,55025,32,0 +2020-03-21,Dane,Wisconsin,55025,49,0 +2020-03-22,Dane,Wisconsin,55025,61,0 +2020-03-23,Dane,Wisconsin,55025,61,0 +2020-03-24,Dane,Wisconsin,55025,72,0 +2020-03-25,Dane,Wisconsin,55025,88,1 +2020-03-26,Dane,Wisconsin,55025,114,1 +2020-03-27,Dane,Wisconsin,55025,158,1 +2020-03-28,Dane,Wisconsin,55025,158,1 +2020-03-29,Dane,Wisconsin,55025,179,1 +2020-03-30,Dane,Wisconsin,55025,183,2 +2020-03-31,Dane,Wisconsin,55025,194,2 +2020-04-01,Dane,Wisconsin,55025,215,2 +2020-04-02,Dane,Wisconsin,55025,228,3 +2020-04-03,Dane,Wisconsin,55025,244,4 +2020-04-04,Dane,Wisconsin,55025,253,8 +2020-04-05,Dane,Wisconsin,55025,269,8 +2020-04-06,Dane,Wisconsin,55025,278,9 +2020-04-07,Dane,Wisconsin,55025,289,11 +2020-04-08,Dane,Wisconsin,55025,302,11 +2020-04-09,Dane,Wisconsin,55025,307,11 +2020-04-10,Dane,Wisconsin,55025,313,12 +2020-04-11,Dane,Wisconsin,55025,327,12 +2020-04-12,Dane,Wisconsin,55025,334,12 +2020-04-13,Dane,Wisconsin,55025,340,12 +2020-04-14,Dane,Wisconsin,55025,344,13 +2020-04-15,Dane,Wisconsin,55025,351,15 +2020-04-16,Dane,Wisconsin,55025,352,16 +2020-04-17,Dane,Wisconsin,55025,351,16 +2020-04-18,Dane,Wisconsin,55025,358,17 +2020-04-19,Dane,Wisconsin,55025,361,20 +2020-04-20,Dane,Wisconsin,55025,364,20 +2020-04-21,Dane,Wisconsin,55025,381,20 +2020-04-22,Dane,Wisconsin,55025,386,20 +2020-04-23,Dane,Wisconsin,55025,387,21 +2020-04-24,Dane,Wisconsin,55025,395,21 +2020-04-25,Dane,Wisconsin,55025,401,21 +2020-04-26,Dane,Wisconsin,55025,405,21 +2020-04-27,Dane,Wisconsin,55025,412,21 +2020-04-28,Dane,Wisconsin,55025,417,22 +2020-04-29,Dane,Wisconsin,55025,424,22 +2020-04-30,Dane,Wisconsin,55025,428,22 +2020-05-01,Dane,Wisconsin,55025,430,23 +2020-05-02,Dane,Wisconsin,55025,433,22 +2020-05-03,Dane,Wisconsin,55025,436,22 +2020-05-04,Dane,Wisconsin,55025,441,22 +2020-05-05,Dane,Wisconsin,55025,443,22 +2020-05-06,Dane,Wisconsin,55025,445,22 +2020-05-07,Dane,Wisconsin,55025,447,22 +2020-05-08,Dane,Wisconsin,55025,455,22 +2020-05-09,Dane,Wisconsin,55025,465,22 +2020-05-10,Dane,Wisconsin,55025,472,22 +2020-05-11,Dane,Wisconsin,55025,474,22 +2020-05-12,Dane,Wisconsin,55025,483,22 +2020-05-13,Dane,Wisconsin,55025,491,22 +2020-05-14,Dane,Wisconsin,55025,499,22 +2020-05-15,Dane,Wisconsin,55025,517,25 +2020-05-16,Dane,Wisconsin,55025,523,25 +2020-05-17,Dane,Wisconsin,55025,537,25 +2020-05-18,Dane,Wisconsin,55025,538,25 +2020-05-19,Dane,Wisconsin,55025,548,25 +2020-05-20,Dane,Wisconsin,55025,566,26 +2020-05-21,Dane,Wisconsin,55025,583,26 +2020-05-22,Dane,Wisconsin,55025,590,26 +2020-05-23,Dane,Wisconsin,55025,597,26 +2020-05-24,Dane,Wisconsin,55025,601,26 +2020-05-25,Dane,Wisconsin,55025,615,26 +2020-05-26,Dane,Wisconsin,55025,630,26 +2020-05-27,Dane,Wisconsin,55025,655,27 +2020-05-28,Dane,Wisconsin,55025,686,27 +2020-05-29,Dane,Wisconsin,55025,713,28 +2020-05-30,Dane,Wisconsin,55025,728,29 +2020-05-31,Dane,Wisconsin,55025,733,29 +2020-06-01,Dane,Wisconsin,55025,737,29 +2020-06-02,Dane,Wisconsin,55025,759,29 +2020-06-03,Dane,Wisconsin,55025,775,29 +2020-06-04,Dane,Wisconsin,55025,791,29 +2020-06-05,Dane,Wisconsin,55025,804,29 +2020-06-06,Dane,Wisconsin,55025,824,29 +2020-06-07,Dane,Wisconsin,55025,844,29 +2020-06-08,Dane,Wisconsin,55025,856,29 +2020-06-09,Dane,Wisconsin,55025,871,30 +2020-06-10,Dane,Wisconsin,55025,884,31 +2020-06-11,Dane,Wisconsin,55025,913,31 +2020-06-12,Dane,Wisconsin,55025,930,31 +2020-06-13,Dane,Wisconsin,55025,933,30 +2020-06-14,Dane,Wisconsin,55025,956,30 +2020-06-15,Dane,Wisconsin,55025,968,30 +2020-06-16,Dane,Wisconsin,55025,985,30 +2020-06-17,Dane,Wisconsin,55025,1001,32 +2020-06-18,Dane,Wisconsin,55025,1022,32 +2020-06-19,Dane,Wisconsin,55025,1039,32 +2020-06-20,Dane,Wisconsin,55025,1069,32 +2020-06-21,Dane,Wisconsin,55025,1101,32 +2020-06-22,Dane,Wisconsin,55025,1141,32 +2020-06-23,Dane,Wisconsin,55025,1174,32 +2020-06-24,Dane,Wisconsin,55025,1245,32 +2020-06-25,Dane,Wisconsin,55025,1350,32 +2020-06-26,Dane,Wisconsin,55025,1446,32 +2020-06-27,Dane,Wisconsin,55025,1530,32 +2020-06-28,Dane,Wisconsin,55025,1650,32 +2020-06-29,Dane,Wisconsin,55025,1751,32 +2020-06-30,Dane,Wisconsin,55025,1876,32 +2020-07-01,Dane,Wisconsin,55025,1953,32 +2020-07-02,Dane,Wisconsin,55025,2075,32 +2020-07-03,Dane,Wisconsin,55025,2192,32 +2020-07-04,Dane,Wisconsin,55025,2303,32 +2020-07-05,Dane,Wisconsin,55025,2386,32 +2020-07-06,Dane,Wisconsin,55025,2475,32 +2020-07-07,Dane,Wisconsin,55025,2510,32 +2020-07-08,Dane,Wisconsin,55025,2597,32 +2020-07-09,Dane,Wisconsin,55025,2657,33 +2020-03-23,Dodge,Wisconsin,55027,2,0 +2020-03-24,Dodge,Wisconsin,55027,2,0 +2020-03-25,Dodge,Wisconsin,55027,3,0 +2020-03-26,Dodge,Wisconsin,55027,3,0 +2020-03-27,Dodge,Wisconsin,55027,6,0 +2020-03-28,Dodge,Wisconsin,55027,6,0 +2020-03-29,Dodge,Wisconsin,55027,8,0 +2020-03-30,Dodge,Wisconsin,55027,8,0 +2020-03-31,Dodge,Wisconsin,55027,10,0 +2020-04-01,Dodge,Wisconsin,55027,13,0 +2020-04-02,Dodge,Wisconsin,55027,13,0 +2020-04-03,Dodge,Wisconsin,55027,14,0 +2020-04-04,Dodge,Wisconsin,55027,14,0 +2020-04-05,Dodge,Wisconsin,55027,14,0 +2020-04-06,Dodge,Wisconsin,55027,15,0 +2020-04-07,Dodge,Wisconsin,55027,15,0 +2020-04-08,Dodge,Wisconsin,55027,16,0 +2020-04-09,Dodge,Wisconsin,55027,16,0 +2020-04-10,Dodge,Wisconsin,55027,18,0 +2020-04-11,Dodge,Wisconsin,55027,18,0 +2020-04-12,Dodge,Wisconsin,55027,19,0 +2020-04-13,Dodge,Wisconsin,55027,19,0 +2020-04-14,Dodge,Wisconsin,55027,19,1 +2020-04-15,Dodge,Wisconsin,55027,19,1 +2020-04-16,Dodge,Wisconsin,55027,19,1 +2020-04-17,Dodge,Wisconsin,55027,20,1 +2020-04-18,Dodge,Wisconsin,55027,19,1 +2020-04-19,Dodge,Wisconsin,55027,19,1 +2020-04-20,Dodge,Wisconsin,55027,19,1 +2020-04-21,Dodge,Wisconsin,55027,19,1 +2020-04-22,Dodge,Wisconsin,55027,20,1 +2020-04-23,Dodge,Wisconsin,55027,20,1 +2020-04-24,Dodge,Wisconsin,55027,21,1 +2020-04-25,Dodge,Wisconsin,55027,23,1 +2020-04-26,Dodge,Wisconsin,55027,29,1 +2020-04-27,Dodge,Wisconsin,55027,30,1 +2020-04-28,Dodge,Wisconsin,55027,32,1 +2020-04-29,Dodge,Wisconsin,55027,33,1 +2020-04-30,Dodge,Wisconsin,55027,33,1 +2020-05-01,Dodge,Wisconsin,55027,36,1 +2020-05-02,Dodge,Wisconsin,55027,38,1 +2020-05-03,Dodge,Wisconsin,55027,38,1 +2020-05-04,Dodge,Wisconsin,55027,39,1 +2020-05-05,Dodge,Wisconsin,55027,40,1 +2020-05-06,Dodge,Wisconsin,55027,42,1 +2020-05-07,Dodge,Wisconsin,55027,46,1 +2020-05-08,Dodge,Wisconsin,55027,51,1 +2020-05-09,Dodge,Wisconsin,55027,55,1 +2020-05-10,Dodge,Wisconsin,55027,67,1 +2020-05-11,Dodge,Wisconsin,55027,74,1 +2020-05-12,Dodge,Wisconsin,55027,75,1 +2020-05-13,Dodge,Wisconsin,55027,79,1 +2020-05-14,Dodge,Wisconsin,55027,83,1 +2020-05-15,Dodge,Wisconsin,55027,87,1 +2020-05-16,Dodge,Wisconsin,55027,93,1 +2020-05-17,Dodge,Wisconsin,55027,105,1 +2020-05-18,Dodge,Wisconsin,55027,108,1 +2020-05-19,Dodge,Wisconsin,55027,109,1 +2020-05-20,Dodge,Wisconsin,55027,112,1 +2020-05-21,Dodge,Wisconsin,55027,121,1 +2020-05-22,Dodge,Wisconsin,55027,137,1 +2020-05-23,Dodge,Wisconsin,55027,149,1 +2020-05-24,Dodge,Wisconsin,55027,152,1 +2020-05-25,Dodge,Wisconsin,55027,161,1 +2020-05-26,Dodge,Wisconsin,55027,162,1 +2020-05-27,Dodge,Wisconsin,55027,166,1 +2020-05-28,Dodge,Wisconsin,55027,172,1 +2020-05-29,Dodge,Wisconsin,55027,180,1 +2020-05-30,Dodge,Wisconsin,55027,215,2 +2020-05-31,Dodge,Wisconsin,55027,221,2 +2020-06-01,Dodge,Wisconsin,55027,228,2 +2020-06-02,Dodge,Wisconsin,55027,226,2 +2020-06-03,Dodge,Wisconsin,55027,383,3 +2020-06-04,Dodge,Wisconsin,55027,386,3 +2020-06-05,Dodge,Wisconsin,55027,394,4 +2020-06-06,Dodge,Wisconsin,55027,395,4 +2020-06-07,Dodge,Wisconsin,55027,400,4 +2020-06-08,Dodge,Wisconsin,55027,400,4 +2020-06-09,Dodge,Wisconsin,55027,406,4 +2020-06-10,Dodge,Wisconsin,55027,410,4 +2020-06-11,Dodge,Wisconsin,55027,414,4 +2020-06-12,Dodge,Wisconsin,55027,415,4 +2020-06-13,Dodge,Wisconsin,55027,423,4 +2020-06-14,Dodge,Wisconsin,55027,423,4 +2020-06-15,Dodge,Wisconsin,55027,424,4 +2020-06-16,Dodge,Wisconsin,55027,424,4 +2020-06-17,Dodge,Wisconsin,55027,425,5 +2020-06-18,Dodge,Wisconsin,55027,426,5 +2020-06-19,Dodge,Wisconsin,55027,429,5 +2020-06-20,Dodge,Wisconsin,55027,434,5 +2020-06-21,Dodge,Wisconsin,55027,434,5 +2020-06-22,Dodge,Wisconsin,55027,437,5 +2020-06-23,Dodge,Wisconsin,55027,440,5 +2020-06-24,Dodge,Wisconsin,55027,444,5 +2020-06-25,Dodge,Wisconsin,55027,445,5 +2020-06-26,Dodge,Wisconsin,55027,447,5 +2020-06-27,Dodge,Wisconsin,55027,450,5 +2020-06-28,Dodge,Wisconsin,55027,453,5 +2020-06-29,Dodge,Wisconsin,55027,456,5 +2020-06-30,Dodge,Wisconsin,55027,459,5 +2020-07-01,Dodge,Wisconsin,55027,461,5 +2020-07-02,Dodge,Wisconsin,55027,467,5 +2020-07-03,Dodge,Wisconsin,55027,476,5 +2020-07-04,Dodge,Wisconsin,55027,478,5 +2020-07-05,Dodge,Wisconsin,55027,483,5 +2020-07-06,Dodge,Wisconsin,55027,484,5 +2020-07-07,Dodge,Wisconsin,55027,487,5 +2020-07-08,Dodge,Wisconsin,55027,488,5 +2020-07-09,Dodge,Wisconsin,55027,492,5 +2020-03-30,Door,Wisconsin,55029,1,0 +2020-03-31,Door,Wisconsin,55029,1,0 +2020-04-01,Door,Wisconsin,55029,1,0 +2020-04-02,Door,Wisconsin,55029,2,0 +2020-04-03,Door,Wisconsin,55029,2,0 +2020-04-04,Door,Wisconsin,55029,2,0 +2020-04-05,Door,Wisconsin,55029,4,0 +2020-04-06,Door,Wisconsin,55029,4,0 +2020-04-07,Door,Wisconsin,55029,7,0 +2020-04-08,Door,Wisconsin,55029,7,0 +2020-04-09,Door,Wisconsin,55029,8,0 +2020-04-10,Door,Wisconsin,55029,8,0 +2020-04-11,Door,Wisconsin,55029,9,0 +2020-04-12,Door,Wisconsin,55029,9,0 +2020-04-13,Door,Wisconsin,55029,9,0 +2020-04-14,Door,Wisconsin,55029,9,1 +2020-04-15,Door,Wisconsin,55029,9,1 +2020-04-16,Door,Wisconsin,55029,9,1 +2020-04-17,Door,Wisconsin,55029,9,1 +2020-04-18,Door,Wisconsin,55029,9,1 +2020-04-19,Door,Wisconsin,55029,9,1 +2020-04-20,Door,Wisconsin,55029,9,1 +2020-04-21,Door,Wisconsin,55029,9,1 +2020-04-22,Door,Wisconsin,55029,9,1 +2020-04-23,Door,Wisconsin,55029,9,1 +2020-04-24,Door,Wisconsin,55029,9,1 +2020-04-25,Door,Wisconsin,55029,10,1 +2020-04-26,Door,Wisconsin,55029,10,1 +2020-04-27,Door,Wisconsin,55029,10,1 +2020-04-28,Door,Wisconsin,55029,12,1 +2020-04-29,Door,Wisconsin,55029,12,2 +2020-04-30,Door,Wisconsin,55029,12,2 +2020-05-01,Door,Wisconsin,55029,12,2 +2020-05-02,Door,Wisconsin,55029,14,3 +2020-05-03,Door,Wisconsin,55029,15,3 +2020-05-04,Door,Wisconsin,55029,15,3 +2020-05-05,Door,Wisconsin,55029,18,3 +2020-05-06,Door,Wisconsin,55029,18,3 +2020-05-07,Door,Wisconsin,55029,18,3 +2020-05-08,Door,Wisconsin,55029,18,3 +2020-05-09,Door,Wisconsin,55029,20,3 +2020-05-10,Door,Wisconsin,55029,21,3 +2020-05-11,Door,Wisconsin,55029,22,3 +2020-05-12,Door,Wisconsin,55029,22,3 +2020-05-13,Door,Wisconsin,55029,23,3 +2020-05-14,Door,Wisconsin,55029,23,3 +2020-05-15,Door,Wisconsin,55029,29,3 +2020-05-16,Door,Wisconsin,55029,33,3 +2020-05-17,Door,Wisconsin,55029,33,3 +2020-05-18,Door,Wisconsin,55029,33,3 +2020-05-19,Door,Wisconsin,55029,33,3 +2020-05-20,Door,Wisconsin,55029,34,3 +2020-05-21,Door,Wisconsin,55029,34,3 +2020-05-22,Door,Wisconsin,55029,35,3 +2020-05-23,Door,Wisconsin,55029,37,3 +2020-05-24,Door,Wisconsin,55029,37,3 +2020-05-25,Door,Wisconsin,55029,37,3 +2020-05-26,Door,Wisconsin,55029,38,3 +2020-05-27,Door,Wisconsin,55029,38,3 +2020-05-28,Door,Wisconsin,55029,38,3 +2020-05-29,Door,Wisconsin,55029,38,3 +2020-05-30,Door,Wisconsin,55029,38,3 +2020-05-31,Door,Wisconsin,55029,38,3 +2020-06-01,Door,Wisconsin,55029,38,3 +2020-06-02,Door,Wisconsin,55029,38,3 +2020-06-03,Door,Wisconsin,55029,38,3 +2020-06-04,Door,Wisconsin,55029,40,3 +2020-06-05,Door,Wisconsin,55029,39,3 +2020-06-06,Door,Wisconsin,55029,39,3 +2020-06-07,Door,Wisconsin,55029,39,3 +2020-06-08,Door,Wisconsin,55029,39,3 +2020-06-09,Door,Wisconsin,55029,39,3 +2020-06-10,Door,Wisconsin,55029,39,3 +2020-06-11,Door,Wisconsin,55029,39,3 +2020-06-12,Door,Wisconsin,55029,41,3 +2020-06-13,Door,Wisconsin,55029,39,3 +2020-06-14,Door,Wisconsin,55029,39,3 +2020-06-15,Door,Wisconsin,55029,39,3 +2020-06-16,Door,Wisconsin,55029,39,3 +2020-06-17,Door,Wisconsin,55029,39,3 +2020-06-18,Door,Wisconsin,55029,39,3 +2020-06-19,Door,Wisconsin,55029,40,3 +2020-06-20,Door,Wisconsin,55029,40,3 +2020-06-21,Door,Wisconsin,55029,40,3 +2020-06-22,Door,Wisconsin,55029,40,3 +2020-06-23,Door,Wisconsin,55029,40,3 +2020-06-24,Door,Wisconsin,55029,40,3 +2020-06-25,Door,Wisconsin,55029,40,3 +2020-06-26,Door,Wisconsin,55029,43,3 +2020-06-27,Door,Wisconsin,55029,43,3 +2020-06-28,Door,Wisconsin,55029,43,3 +2020-06-29,Door,Wisconsin,55029,43,3 +2020-06-30,Door,Wisconsin,55029,44,3 +2020-07-01,Door,Wisconsin,55029,43,3 +2020-07-02,Door,Wisconsin,55029,44,3 +2020-07-03,Door,Wisconsin,55029,45,3 +2020-07-04,Door,Wisconsin,55029,44,3 +2020-07-05,Door,Wisconsin,55029,45,3 +2020-07-06,Door,Wisconsin,55029,45,3 +2020-07-07,Door,Wisconsin,55029,49,3 +2020-07-08,Door,Wisconsin,55029,50,3 +2020-07-09,Door,Wisconsin,55029,52,3 +2020-03-20,Douglas,Wisconsin,55031,1,0 +2020-03-21,Douglas,Wisconsin,55031,1,0 +2020-03-22,Douglas,Wisconsin,55031,1,0 +2020-03-23,Douglas,Wisconsin,55031,2,0 +2020-03-24,Douglas,Wisconsin,55031,4,0 +2020-03-25,Douglas,Wisconsin,55031,4,0 +2020-03-26,Douglas,Wisconsin,55031,4,0 +2020-03-27,Douglas,Wisconsin,55031,5,0 +2020-03-28,Douglas,Wisconsin,55031,6,0 +2020-03-29,Douglas,Wisconsin,55031,6,0 +2020-03-30,Douglas,Wisconsin,55031,6,0 +2020-03-31,Douglas,Wisconsin,55031,6,0 +2020-04-01,Douglas,Wisconsin,55031,7,0 +2020-04-02,Douglas,Wisconsin,55031,6,0 +2020-04-03,Douglas,Wisconsin,55031,6,0 +2020-04-04,Douglas,Wisconsin,55031,7,0 +2020-04-05,Douglas,Wisconsin,55031,7,0 +2020-04-06,Douglas,Wisconsin,55031,7,0 +2020-04-07,Douglas,Wisconsin,55031,7,0 +2020-04-08,Douglas,Wisconsin,55031,7,0 +2020-04-09,Douglas,Wisconsin,55031,7,0 +2020-04-10,Douglas,Wisconsin,55031,7,0 +2020-04-11,Douglas,Wisconsin,55031,7,0 +2020-04-12,Douglas,Wisconsin,55031,7,0 +2020-04-13,Douglas,Wisconsin,55031,7,0 +2020-04-14,Douglas,Wisconsin,55031,7,0 +2020-04-15,Douglas,Wisconsin,55031,7,0 +2020-04-16,Douglas,Wisconsin,55031,7,0 +2020-04-17,Douglas,Wisconsin,55031,7,0 +2020-04-18,Douglas,Wisconsin,55031,8,0 +2020-04-19,Douglas,Wisconsin,55031,8,0 +2020-04-20,Douglas,Wisconsin,55031,8,0 +2020-04-21,Douglas,Wisconsin,55031,8,0 +2020-04-22,Douglas,Wisconsin,55031,8,0 +2020-04-23,Douglas,Wisconsin,55031,9,0 +2020-04-24,Douglas,Wisconsin,55031,9,0 +2020-04-25,Douglas,Wisconsin,55031,9,0 +2020-04-26,Douglas,Wisconsin,55031,9,0 +2020-04-27,Douglas,Wisconsin,55031,9,0 +2020-04-28,Douglas,Wisconsin,55031,9,0 +2020-04-29,Douglas,Wisconsin,55031,9,0 +2020-04-30,Douglas,Wisconsin,55031,9,0 +2020-05-01,Douglas,Wisconsin,55031,9,0 +2020-05-02,Douglas,Wisconsin,55031,9,0 +2020-05-03,Douglas,Wisconsin,55031,9,0 +2020-05-04,Douglas,Wisconsin,55031,9,0 +2020-05-05,Douglas,Wisconsin,55031,9,0 +2020-05-06,Douglas,Wisconsin,55031,10,0 +2020-05-07,Douglas,Wisconsin,55031,10,0 +2020-05-08,Douglas,Wisconsin,55031,10,0 +2020-05-09,Douglas,Wisconsin,55031,11,0 +2020-05-10,Douglas,Wisconsin,55031,11,0 +2020-05-11,Douglas,Wisconsin,55031,11,0 +2020-05-12,Douglas,Wisconsin,55031,11,0 +2020-05-13,Douglas,Wisconsin,55031,11,0 +2020-05-14,Douglas,Wisconsin,55031,12,0 +2020-05-15,Douglas,Wisconsin,55031,12,0 +2020-05-16,Douglas,Wisconsin,55031,12,0 +2020-05-17,Douglas,Wisconsin,55031,12,0 +2020-05-18,Douglas,Wisconsin,55031,13,0 +2020-05-19,Douglas,Wisconsin,55031,15,0 +2020-05-20,Douglas,Wisconsin,55031,15,0 +2020-05-21,Douglas,Wisconsin,55031,15,0 +2020-05-22,Douglas,Wisconsin,55031,16,0 +2020-05-23,Douglas,Wisconsin,55031,17,0 +2020-05-24,Douglas,Wisconsin,55031,17,0 +2020-05-25,Douglas,Wisconsin,55031,18,0 +2020-05-26,Douglas,Wisconsin,55031,19,0 +2020-05-27,Douglas,Wisconsin,55031,19,0 +2020-05-28,Douglas,Wisconsin,55031,19,0 +2020-05-29,Douglas,Wisconsin,55031,19,0 +2020-05-30,Douglas,Wisconsin,55031,19,0 +2020-05-31,Douglas,Wisconsin,55031,19,0 +2020-06-01,Douglas,Wisconsin,55031,19,0 +2020-06-02,Douglas,Wisconsin,55031,19,0 +2020-06-03,Douglas,Wisconsin,55031,19,0 +2020-06-04,Douglas,Wisconsin,55031,19,0 +2020-06-05,Douglas,Wisconsin,55031,19,0 +2020-06-06,Douglas,Wisconsin,55031,20,0 +2020-06-07,Douglas,Wisconsin,55031,20,0 +2020-06-08,Douglas,Wisconsin,55031,20,0 +2020-06-09,Douglas,Wisconsin,55031,20,0 +2020-06-10,Douglas,Wisconsin,55031,20,0 +2020-06-11,Douglas,Wisconsin,55031,20,0 +2020-06-12,Douglas,Wisconsin,55031,20,0 +2020-06-13,Douglas,Wisconsin,55031,20,0 +2020-06-14,Douglas,Wisconsin,55031,20,0 +2020-06-15,Douglas,Wisconsin,55031,20,0 +2020-06-16,Douglas,Wisconsin,55031,20,0 +2020-06-17,Douglas,Wisconsin,55031,20,0 +2020-06-18,Douglas,Wisconsin,55031,20,0 +2020-06-19,Douglas,Wisconsin,55031,20,0 +2020-06-20,Douglas,Wisconsin,55031,20,0 +2020-06-21,Douglas,Wisconsin,55031,20,0 +2020-06-22,Douglas,Wisconsin,55031,20,0 +2020-06-23,Douglas,Wisconsin,55031,20,0 +2020-06-24,Douglas,Wisconsin,55031,20,0 +2020-06-25,Douglas,Wisconsin,55031,20,0 +2020-06-26,Douglas,Wisconsin,55031,22,0 +2020-06-27,Douglas,Wisconsin,55031,22,0 +2020-06-28,Douglas,Wisconsin,55031,24,0 +2020-06-29,Douglas,Wisconsin,55031,24,0 +2020-06-30,Douglas,Wisconsin,55031,25,0 +2020-07-01,Douglas,Wisconsin,55031,30,0 +2020-07-02,Douglas,Wisconsin,55031,31,0 +2020-07-03,Douglas,Wisconsin,55031,39,0 +2020-07-04,Douglas,Wisconsin,55031,39,0 +2020-07-05,Douglas,Wisconsin,55031,41,0 +2020-07-06,Douglas,Wisconsin,55031,41,0 +2020-07-07,Douglas,Wisconsin,55031,46,0 +2020-07-08,Douglas,Wisconsin,55031,47,0 +2020-07-09,Douglas,Wisconsin,55031,48,0 +2020-03-20,Dunn,Wisconsin,55033,1,0 +2020-03-21,Dunn,Wisconsin,55033,1,0 +2020-03-22,Dunn,Wisconsin,55033,1,0 +2020-03-23,Dunn,Wisconsin,55033,1,0 +2020-03-24,Dunn,Wisconsin,55033,1,0 +2020-03-25,Dunn,Wisconsin,55033,1,0 +2020-03-26,Dunn,Wisconsin,55033,1,0 +2020-03-27,Dunn,Wisconsin,55033,2,0 +2020-03-28,Dunn,Wisconsin,55033,2,0 +2020-03-29,Dunn,Wisconsin,55033,3,0 +2020-03-30,Dunn,Wisconsin,55033,3,0 +2020-03-31,Dunn,Wisconsin,55033,3,0 +2020-04-01,Dunn,Wisconsin,55033,3,0 +2020-04-02,Dunn,Wisconsin,55033,3,0 +2020-04-03,Dunn,Wisconsin,55033,5,0 +2020-04-04,Dunn,Wisconsin,55033,5,0 +2020-04-05,Dunn,Wisconsin,55033,5,0 +2020-04-06,Dunn,Wisconsin,55033,5,0 +2020-04-07,Dunn,Wisconsin,55033,5,0 +2020-04-08,Dunn,Wisconsin,55033,6,0 +2020-04-09,Dunn,Wisconsin,55033,7,0 +2020-04-10,Dunn,Wisconsin,55033,8,0 +2020-04-11,Dunn,Wisconsin,55033,9,0 +2020-04-12,Dunn,Wisconsin,55033,9,0 +2020-04-13,Dunn,Wisconsin,55033,9,0 +2020-04-14,Dunn,Wisconsin,55033,9,0 +2020-04-15,Dunn,Wisconsin,55033,9,0 +2020-04-16,Dunn,Wisconsin,55033,9,0 +2020-04-17,Dunn,Wisconsin,55033,9,0 +2020-04-18,Dunn,Wisconsin,55033,9,0 +2020-04-19,Dunn,Wisconsin,55033,9,0 +2020-04-20,Dunn,Wisconsin,55033,9,0 +2020-04-21,Dunn,Wisconsin,55033,9,0 +2020-04-22,Dunn,Wisconsin,55033,9,0 +2020-04-23,Dunn,Wisconsin,55033,9,0 +2020-04-24,Dunn,Wisconsin,55033,9,0 +2020-04-25,Dunn,Wisconsin,55033,9,0 +2020-04-26,Dunn,Wisconsin,55033,9,0 +2020-04-27,Dunn,Wisconsin,55033,9,0 +2020-04-28,Dunn,Wisconsin,55033,9,0 +2020-04-29,Dunn,Wisconsin,55033,9,0 +2020-04-30,Dunn,Wisconsin,55033,9,0 +2020-05-01,Dunn,Wisconsin,55033,9,0 +2020-05-02,Dunn,Wisconsin,55033,10,0 +2020-05-03,Dunn,Wisconsin,55033,12,0 +2020-05-04,Dunn,Wisconsin,55033,12,0 +2020-05-05,Dunn,Wisconsin,55033,13,0 +2020-05-06,Dunn,Wisconsin,55033,13,0 +2020-05-07,Dunn,Wisconsin,55033,14,0 +2020-05-08,Dunn,Wisconsin,55033,14,0 +2020-05-09,Dunn,Wisconsin,55033,14,0 +2020-05-10,Dunn,Wisconsin,55033,14,0 +2020-05-11,Dunn,Wisconsin,55033,14,0 +2020-05-12,Dunn,Wisconsin,55033,14,0 +2020-05-13,Dunn,Wisconsin,55033,19,0 +2020-05-14,Dunn,Wisconsin,55033,20,0 +2020-05-15,Dunn,Wisconsin,55033,20,0 +2020-05-16,Dunn,Wisconsin,55033,21,0 +2020-05-17,Dunn,Wisconsin,55033,21,0 +2020-05-18,Dunn,Wisconsin,55033,20,0 +2020-05-19,Dunn,Wisconsin,55033,20,0 +2020-05-20,Dunn,Wisconsin,55033,20,0 +2020-05-21,Dunn,Wisconsin,55033,20,0 +2020-05-22,Dunn,Wisconsin,55033,21,0 +2020-05-23,Dunn,Wisconsin,55033,21,0 +2020-05-24,Dunn,Wisconsin,55033,22,0 +2020-05-25,Dunn,Wisconsin,55033,23,0 +2020-05-26,Dunn,Wisconsin,55033,23,0 +2020-05-27,Dunn,Wisconsin,55033,24,0 +2020-05-28,Dunn,Wisconsin,55033,24,0 +2020-05-29,Dunn,Wisconsin,55033,24,0 +2020-05-30,Dunn,Wisconsin,55033,24,0 +2020-05-31,Dunn,Wisconsin,55033,24,0 +2020-06-01,Dunn,Wisconsin,55033,24,0 +2020-06-02,Dunn,Wisconsin,55033,24,0 +2020-06-03,Dunn,Wisconsin,55033,25,0 +2020-06-04,Dunn,Wisconsin,55033,26,0 +2020-06-05,Dunn,Wisconsin,55033,26,0 +2020-06-06,Dunn,Wisconsin,55033,27,0 +2020-06-07,Dunn,Wisconsin,55033,27,0 +2020-06-08,Dunn,Wisconsin,55033,29,0 +2020-06-09,Dunn,Wisconsin,55033,29,0 +2020-06-10,Dunn,Wisconsin,55033,29,0 +2020-06-11,Dunn,Wisconsin,55033,29,0 +2020-06-12,Dunn,Wisconsin,55033,29,0 +2020-06-13,Dunn,Wisconsin,55033,29,0 +2020-06-14,Dunn,Wisconsin,55033,29,0 +2020-06-15,Dunn,Wisconsin,55033,29,0 +2020-06-16,Dunn,Wisconsin,55033,29,0 +2020-06-17,Dunn,Wisconsin,55033,29,0 +2020-06-18,Dunn,Wisconsin,55033,29,0 +2020-06-19,Dunn,Wisconsin,55033,29,0 +2020-06-20,Dunn,Wisconsin,55033,29,0 +2020-06-21,Dunn,Wisconsin,55033,29,0 +2020-06-22,Dunn,Wisconsin,55033,29,0 +2020-06-23,Dunn,Wisconsin,55033,29,0 +2020-06-24,Dunn,Wisconsin,55033,29,0 +2020-06-25,Dunn,Wisconsin,55033,33,0 +2020-06-26,Dunn,Wisconsin,55033,34,0 +2020-06-27,Dunn,Wisconsin,55033,36,0 +2020-06-28,Dunn,Wisconsin,55033,38,0 +2020-06-29,Dunn,Wisconsin,55033,37,0 +2020-06-30,Dunn,Wisconsin,55033,37,0 +2020-07-01,Dunn,Wisconsin,55033,38,0 +2020-07-02,Dunn,Wisconsin,55033,41,0 +2020-07-03,Dunn,Wisconsin,55033,41,0 +2020-07-04,Dunn,Wisconsin,55033,42,0 +2020-07-05,Dunn,Wisconsin,55033,43,0 +2020-07-06,Dunn,Wisconsin,55033,46,0 +2020-07-07,Dunn,Wisconsin,55033,47,0 +2020-07-08,Dunn,Wisconsin,55033,48,0 +2020-07-09,Dunn,Wisconsin,55033,50,0 +2020-03-19,Eau Claire,Wisconsin,55035,1,0 +2020-03-20,Eau Claire,Wisconsin,55035,1,0 +2020-03-21,Eau Claire,Wisconsin,55035,2,0 +2020-03-22,Eau Claire,Wisconsin,55035,4,0 +2020-03-23,Eau Claire,Wisconsin,55035,4,0 +2020-03-24,Eau Claire,Wisconsin,55035,4,0 +2020-03-25,Eau Claire,Wisconsin,55035,5,0 +2020-03-26,Eau Claire,Wisconsin,55035,6,0 +2020-03-27,Eau Claire,Wisconsin,55035,8,0 +2020-03-28,Eau Claire,Wisconsin,55035,8,0 +2020-03-29,Eau Claire,Wisconsin,55035,10,0 +2020-03-30,Eau Claire,Wisconsin,55035,10,0 +2020-03-31,Eau Claire,Wisconsin,55035,11,0 +2020-04-01,Eau Claire,Wisconsin,55035,12,0 +2020-04-02,Eau Claire,Wisconsin,55035,14,0 +2020-04-03,Eau Claire,Wisconsin,55035,16,0 +2020-04-04,Eau Claire,Wisconsin,55035,17,0 +2020-04-05,Eau Claire,Wisconsin,55035,21,0 +2020-04-06,Eau Claire,Wisconsin,55035,21,0 +2020-04-07,Eau Claire,Wisconsin,55035,21,0 +2020-04-08,Eau Claire,Wisconsin,55035,21,0 +2020-04-09,Eau Claire,Wisconsin,55035,21,0 +2020-04-10,Eau Claire,Wisconsin,55035,21,0 +2020-04-11,Eau Claire,Wisconsin,55035,21,0 +2020-04-12,Eau Claire,Wisconsin,55035,21,0 +2020-04-13,Eau Claire,Wisconsin,55035,21,0 +2020-04-14,Eau Claire,Wisconsin,55035,21,0 +2020-04-15,Eau Claire,Wisconsin,55035,21,0 +2020-04-16,Eau Claire,Wisconsin,55035,22,0 +2020-04-17,Eau Claire,Wisconsin,55035,22,0 +2020-04-18,Eau Claire,Wisconsin,55035,22,0 +2020-04-19,Eau Claire,Wisconsin,55035,22,0 +2020-04-20,Eau Claire,Wisconsin,55035,22,0 +2020-04-21,Eau Claire,Wisconsin,55035,22,0 +2020-04-22,Eau Claire,Wisconsin,55035,23,0 +2020-04-23,Eau Claire,Wisconsin,55035,23,0 +2020-04-24,Eau Claire,Wisconsin,55035,23,0 +2020-04-25,Eau Claire,Wisconsin,55035,24,0 +2020-04-26,Eau Claire,Wisconsin,55035,25,0 +2020-04-27,Eau Claire,Wisconsin,55035,25,0 +2020-04-28,Eau Claire,Wisconsin,55035,27,0 +2020-04-29,Eau Claire,Wisconsin,55035,27,0 +2020-04-30,Eau Claire,Wisconsin,55035,28,0 +2020-05-01,Eau Claire,Wisconsin,55035,28,0 +2020-05-02,Eau Claire,Wisconsin,55035,34,0 +2020-05-03,Eau Claire,Wisconsin,55035,36,0 +2020-05-04,Eau Claire,Wisconsin,55035,41,0 +2020-05-05,Eau Claire,Wisconsin,55035,42,0 +2020-05-06,Eau Claire,Wisconsin,55035,45,0 +2020-05-07,Eau Claire,Wisconsin,55035,47,0 +2020-05-08,Eau Claire,Wisconsin,55035,50,0 +2020-05-09,Eau Claire,Wisconsin,55035,54,0 +2020-05-10,Eau Claire,Wisconsin,55035,54,0 +2020-05-11,Eau Claire,Wisconsin,55035,57,0 +2020-05-12,Eau Claire,Wisconsin,55035,60,0 +2020-05-13,Eau Claire,Wisconsin,55035,61,0 +2020-05-14,Eau Claire,Wisconsin,55035,63,0 +2020-05-15,Eau Claire,Wisconsin,55035,65,0 +2020-05-16,Eau Claire,Wisconsin,55035,65,0 +2020-05-17,Eau Claire,Wisconsin,55035,66,0 +2020-05-18,Eau Claire,Wisconsin,55035,70,0 +2020-05-19,Eau Claire,Wisconsin,55035,75,0 +2020-05-20,Eau Claire,Wisconsin,55035,78,0 +2020-05-21,Eau Claire,Wisconsin,55035,82,0 +2020-05-22,Eau Claire,Wisconsin,55035,89,0 +2020-05-23,Eau Claire,Wisconsin,55035,93,0 +2020-05-24,Eau Claire,Wisconsin,55035,96,0 +2020-05-25,Eau Claire,Wisconsin,55035,98,0 +2020-05-26,Eau Claire,Wisconsin,55035,100,0 +2020-05-27,Eau Claire,Wisconsin,55035,99,0 +2020-05-28,Eau Claire,Wisconsin,55035,99,0 +2020-05-29,Eau Claire,Wisconsin,55035,107,0 +2020-05-30,Eau Claire,Wisconsin,55035,108,0 +2020-05-31,Eau Claire,Wisconsin,55035,108,0 +2020-06-01,Eau Claire,Wisconsin,55035,113,0 +2020-06-02,Eau Claire,Wisconsin,55035,114,0 +2020-06-03,Eau Claire,Wisconsin,55035,114,0 +2020-06-04,Eau Claire,Wisconsin,55035,116,0 +2020-06-05,Eau Claire,Wisconsin,55035,119,0 +2020-06-06,Eau Claire,Wisconsin,55035,121,0 +2020-06-07,Eau Claire,Wisconsin,55035,123,0 +2020-06-08,Eau Claire,Wisconsin,55035,124,0 +2020-06-09,Eau Claire,Wisconsin,55035,124,0 +2020-06-10,Eau Claire,Wisconsin,55035,126,0 +2020-06-11,Eau Claire,Wisconsin,55035,126,0 +2020-06-12,Eau Claire,Wisconsin,55035,130,0 +2020-06-13,Eau Claire,Wisconsin,55035,132,0 +2020-06-14,Eau Claire,Wisconsin,55035,137,0 +2020-06-15,Eau Claire,Wisconsin,55035,137,0 +2020-06-16,Eau Claire,Wisconsin,55035,138,0 +2020-06-17,Eau Claire,Wisconsin,55035,140,0 +2020-06-18,Eau Claire,Wisconsin,55035,149,0 +2020-06-19,Eau Claire,Wisconsin,55035,151,0 +2020-06-20,Eau Claire,Wisconsin,55035,156,0 +2020-06-21,Eau Claire,Wisconsin,55035,161,0 +2020-06-22,Eau Claire,Wisconsin,55035,163,1 +2020-06-23,Eau Claire,Wisconsin,55035,167,1 +2020-06-24,Eau Claire,Wisconsin,55035,170,1 +2020-06-25,Eau Claire,Wisconsin,55035,176,1 +2020-06-26,Eau Claire,Wisconsin,55035,180,1 +2020-06-27,Eau Claire,Wisconsin,55035,194,1 +2020-06-28,Eau Claire,Wisconsin,55035,208,1 +2020-06-29,Eau Claire,Wisconsin,55035,218,1 +2020-06-30,Eau Claire,Wisconsin,55035,229,1 +2020-07-01,Eau Claire,Wisconsin,55035,240,1 +2020-07-02,Eau Claire,Wisconsin,55035,249,1 +2020-07-03,Eau Claire,Wisconsin,55035,263,1 +2020-07-04,Eau Claire,Wisconsin,55035,279,1 +2020-07-05,Eau Claire,Wisconsin,55035,284,1 +2020-07-06,Eau Claire,Wisconsin,55035,290,1 +2020-07-07,Eau Claire,Wisconsin,55035,300,1 +2020-07-08,Eau Claire,Wisconsin,55035,307,1 +2020-07-09,Eau Claire,Wisconsin,55035,314,1 +2020-04-05,Florence,Wisconsin,55037,1,0 +2020-04-06,Florence,Wisconsin,55037,2,0 +2020-04-07,Florence,Wisconsin,55037,2,0 +2020-04-08,Florence,Wisconsin,55037,2,0 +2020-04-09,Florence,Wisconsin,55037,2,0 +2020-04-10,Florence,Wisconsin,55037,2,0 +2020-04-11,Florence,Wisconsin,55037,2,0 +2020-04-12,Florence,Wisconsin,55037,2,0 +2020-04-13,Florence,Wisconsin,55037,2,0 +2020-04-14,Florence,Wisconsin,55037,2,0 +2020-04-15,Florence,Wisconsin,55037,2,0 +2020-04-16,Florence,Wisconsin,55037,2,0 +2020-04-17,Florence,Wisconsin,55037,2,0 +2020-04-18,Florence,Wisconsin,55037,2,0 +2020-04-19,Florence,Wisconsin,55037,2,0 +2020-04-20,Florence,Wisconsin,55037,2,0 +2020-04-21,Florence,Wisconsin,55037,2,0 +2020-04-22,Florence,Wisconsin,55037,2,0 +2020-04-23,Florence,Wisconsin,55037,2,0 +2020-04-24,Florence,Wisconsin,55037,2,0 +2020-04-25,Florence,Wisconsin,55037,2,0 +2020-04-26,Florence,Wisconsin,55037,2,0 +2020-04-27,Florence,Wisconsin,55037,2,0 +2020-04-28,Florence,Wisconsin,55037,2,0 +2020-04-29,Florence,Wisconsin,55037,2,0 +2020-04-30,Florence,Wisconsin,55037,2,0 +2020-05-01,Florence,Wisconsin,55037,2,0 +2020-05-02,Florence,Wisconsin,55037,2,0 +2020-05-03,Florence,Wisconsin,55037,2,0 +2020-05-04,Florence,Wisconsin,55037,2,0 +2020-05-05,Florence,Wisconsin,55037,2,0 +2020-05-06,Florence,Wisconsin,55037,2,0 +2020-05-07,Florence,Wisconsin,55037,2,0 +2020-05-08,Florence,Wisconsin,55037,2,0 +2020-05-09,Florence,Wisconsin,55037,2,0 +2020-05-10,Florence,Wisconsin,55037,2,0 +2020-05-11,Florence,Wisconsin,55037,2,0 +2020-05-12,Florence,Wisconsin,55037,2,0 +2020-05-13,Florence,Wisconsin,55037,2,0 +2020-05-14,Florence,Wisconsin,55037,2,0 +2020-05-15,Florence,Wisconsin,55037,2,0 +2020-05-16,Florence,Wisconsin,55037,2,0 +2020-05-17,Florence,Wisconsin,55037,2,0 +2020-05-18,Florence,Wisconsin,55037,2,0 +2020-05-19,Florence,Wisconsin,55037,2,0 +2020-05-20,Florence,Wisconsin,55037,2,0 +2020-05-21,Florence,Wisconsin,55037,2,0 +2020-05-22,Florence,Wisconsin,55037,2,0 +2020-05-23,Florence,Wisconsin,55037,2,0 +2020-05-24,Florence,Wisconsin,55037,2,0 +2020-05-25,Florence,Wisconsin,55037,2,0 +2020-05-26,Florence,Wisconsin,55037,2,0 +2020-05-27,Florence,Wisconsin,55037,2,0 +2020-05-28,Florence,Wisconsin,55037,2,0 +2020-05-29,Florence,Wisconsin,55037,2,0 +2020-05-30,Florence,Wisconsin,55037,2,0 +2020-05-31,Florence,Wisconsin,55037,2,0 +2020-06-01,Florence,Wisconsin,55037,2,0 +2020-06-02,Florence,Wisconsin,55037,2,0 +2020-06-03,Florence,Wisconsin,55037,2,0 +2020-06-04,Florence,Wisconsin,55037,2,0 +2020-06-05,Florence,Wisconsin,55037,2,0 +2020-06-06,Florence,Wisconsin,55037,2,0 +2020-06-07,Florence,Wisconsin,55037,2,0 +2020-06-08,Florence,Wisconsin,55037,2,0 +2020-06-09,Florence,Wisconsin,55037,2,0 +2020-06-10,Florence,Wisconsin,55037,2,0 +2020-06-11,Florence,Wisconsin,55037,2,0 +2020-06-12,Florence,Wisconsin,55037,2,0 +2020-06-13,Florence,Wisconsin,55037,2,0 +2020-06-14,Florence,Wisconsin,55037,2,0 +2020-06-15,Florence,Wisconsin,55037,2,0 +2020-06-16,Florence,Wisconsin,55037,2,0 +2020-06-17,Florence,Wisconsin,55037,2,0 +2020-06-18,Florence,Wisconsin,55037,2,0 +2020-06-19,Florence,Wisconsin,55037,2,0 +2020-06-20,Florence,Wisconsin,55037,2,0 +2020-06-21,Florence,Wisconsin,55037,2,0 +2020-06-22,Florence,Wisconsin,55037,2,0 +2020-06-23,Florence,Wisconsin,55037,2,0 +2020-06-24,Florence,Wisconsin,55037,3,0 +2020-06-25,Florence,Wisconsin,55037,3,0 +2020-06-26,Florence,Wisconsin,55037,3,0 +2020-06-27,Florence,Wisconsin,55037,3,0 +2020-06-28,Florence,Wisconsin,55037,3,0 +2020-06-29,Florence,Wisconsin,55037,3,0 +2020-06-30,Florence,Wisconsin,55037,3,0 +2020-07-01,Florence,Wisconsin,55037,3,0 +2020-07-02,Florence,Wisconsin,55037,3,0 +2020-07-03,Florence,Wisconsin,55037,3,0 +2020-07-04,Florence,Wisconsin,55037,4,0 +2020-07-05,Florence,Wisconsin,55037,4,0 +2020-07-06,Florence,Wisconsin,55037,4,0 +2020-07-07,Florence,Wisconsin,55037,4,0 +2020-07-08,Florence,Wisconsin,55037,4,0 +2020-07-09,Florence,Wisconsin,55037,4,0 +2020-03-11,Fond du Lac,Wisconsin,55039,2,0 +2020-03-12,Fond du Lac,Wisconsin,55039,2,0 +2020-03-13,Fond du Lac,Wisconsin,55039,6,0 +2020-03-14,Fond du Lac,Wisconsin,55039,6,0 +2020-03-15,Fond du Lac,Wisconsin,55039,11,0 +2020-03-16,Fond du Lac,Wisconsin,55039,11,0 +2020-03-17,Fond du Lac,Wisconsin,55039,11,0 +2020-03-18,Fond du Lac,Wisconsin,55039,12,0 +2020-03-19,Fond du Lac,Wisconsin,55039,14,1 +2020-03-20,Fond du Lac,Wisconsin,55039,14,1 +2020-03-21,Fond du Lac,Wisconsin,55039,15,1 +2020-03-22,Fond du Lac,Wisconsin,55039,16,1 +2020-03-23,Fond du Lac,Wisconsin,55039,16,1 +2020-03-24,Fond du Lac,Wisconsin,55039,18,1 +2020-03-25,Fond du Lac,Wisconsin,55039,18,1 +2020-03-26,Fond du Lac,Wisconsin,55039,17,1 +2020-03-27,Fond du Lac,Wisconsin,55039,19,1 +2020-03-28,Fond du Lac,Wisconsin,55039,20,1 +2020-03-29,Fond du Lac,Wisconsin,55039,20,1 +2020-03-30,Fond du Lac,Wisconsin,55039,22,2 +2020-03-31,Fond du Lac,Wisconsin,55039,22,2 +2020-04-01,Fond du Lac,Wisconsin,55039,24,2 +2020-04-02,Fond du Lac,Wisconsin,55039,28,2 +2020-04-03,Fond du Lac,Wisconsin,55039,30,2 +2020-04-04,Fond du Lac,Wisconsin,55039,36,2 +2020-04-05,Fond du Lac,Wisconsin,55039,43,2 +2020-04-06,Fond du Lac,Wisconsin,55039,43,2 +2020-04-07,Fond du Lac,Wisconsin,55039,44,2 +2020-04-08,Fond du Lac,Wisconsin,55039,48,2 +2020-04-09,Fond du Lac,Wisconsin,55039,49,2 +2020-04-10,Fond du Lac,Wisconsin,55039,52,2 +2020-04-11,Fond du Lac,Wisconsin,55039,52,2 +2020-04-12,Fond du Lac,Wisconsin,55039,54,2 +2020-04-13,Fond du Lac,Wisconsin,55039,57,2 +2020-04-14,Fond du Lac,Wisconsin,55039,59,2 +2020-04-15,Fond du Lac,Wisconsin,55039,59,3 +2020-04-16,Fond du Lac,Wisconsin,55039,59,3 +2020-04-17,Fond du Lac,Wisconsin,55039,61,3 +2020-04-18,Fond du Lac,Wisconsin,55039,62,3 +2020-04-19,Fond du Lac,Wisconsin,55039,62,3 +2020-04-20,Fond du Lac,Wisconsin,55039,65,3 +2020-04-21,Fond du Lac,Wisconsin,55039,65,3 +2020-04-22,Fond du Lac,Wisconsin,55039,65,3 +2020-04-23,Fond du Lac,Wisconsin,55039,66,3 +2020-04-24,Fond du Lac,Wisconsin,55039,67,3 +2020-04-25,Fond du Lac,Wisconsin,55039,67,3 +2020-04-26,Fond du Lac,Wisconsin,55039,69,3 +2020-04-27,Fond du Lac,Wisconsin,55039,69,3 +2020-04-28,Fond du Lac,Wisconsin,55039,69,3 +2020-04-29,Fond du Lac,Wisconsin,55039,69,3 +2020-04-30,Fond du Lac,Wisconsin,55039,69,3 +2020-05-01,Fond du Lac,Wisconsin,55039,71,3 +2020-05-02,Fond du Lac,Wisconsin,55039,73,3 +2020-05-03,Fond du Lac,Wisconsin,55039,73,3 +2020-05-04,Fond du Lac,Wisconsin,55039,75,3 +2020-05-05,Fond du Lac,Wisconsin,55039,77,3 +2020-05-06,Fond du Lac,Wisconsin,55039,83,3 +2020-05-07,Fond du Lac,Wisconsin,55039,84,3 +2020-05-08,Fond du Lac,Wisconsin,55039,85,3 +2020-05-09,Fond du Lac,Wisconsin,55039,86,3 +2020-05-10,Fond du Lac,Wisconsin,55039,93,3 +2020-05-11,Fond du Lac,Wisconsin,55039,101,3 +2020-05-12,Fond du Lac,Wisconsin,55039,108,3 +2020-05-13,Fond du Lac,Wisconsin,55039,111,3 +2020-05-14,Fond du Lac,Wisconsin,55039,119,3 +2020-05-15,Fond du Lac,Wisconsin,55039,119,3 +2020-05-16,Fond du Lac,Wisconsin,55039,124,3 +2020-05-17,Fond du Lac,Wisconsin,55039,139,3 +2020-05-18,Fond du Lac,Wisconsin,55039,142,3 +2020-05-19,Fond du Lac,Wisconsin,55039,145,3 +2020-05-20,Fond du Lac,Wisconsin,55039,148,3 +2020-05-21,Fond du Lac,Wisconsin,55039,148,4 +2020-05-22,Fond du Lac,Wisconsin,55039,155,4 +2020-05-23,Fond du Lac,Wisconsin,55039,158,4 +2020-05-24,Fond du Lac,Wisconsin,55039,165,4 +2020-05-25,Fond du Lac,Wisconsin,55039,174,5 +2020-05-26,Fond du Lac,Wisconsin,55039,179,5 +2020-05-27,Fond du Lac,Wisconsin,55039,185,4 +2020-05-28,Fond du Lac,Wisconsin,55039,192,5 +2020-05-29,Fond du Lac,Wisconsin,55039,194,5 +2020-05-30,Fond du Lac,Wisconsin,55039,203,5 +2020-05-31,Fond du Lac,Wisconsin,55039,213,5 +2020-06-01,Fond du Lac,Wisconsin,55039,214,5 +2020-06-02,Fond du Lac,Wisconsin,55039,215,5 +2020-06-03,Fond du Lac,Wisconsin,55039,221,5 +2020-06-04,Fond du Lac,Wisconsin,55039,225,5 +2020-06-05,Fond du Lac,Wisconsin,55039,226,5 +2020-06-06,Fond du Lac,Wisconsin,55039,233,6 +2020-06-07,Fond du Lac,Wisconsin,55039,233,6 +2020-06-08,Fond du Lac,Wisconsin,55039,239,6 +2020-06-09,Fond du Lac,Wisconsin,55039,241,6 +2020-06-10,Fond du Lac,Wisconsin,55039,247,6 +2020-06-11,Fond du Lac,Wisconsin,55039,251,6 +2020-06-12,Fond du Lac,Wisconsin,55039,253,6 +2020-06-13,Fond du Lac,Wisconsin,55039,259,6 +2020-06-14,Fond du Lac,Wisconsin,55039,262,6 +2020-06-15,Fond du Lac,Wisconsin,55039,269,6 +2020-06-16,Fond du Lac,Wisconsin,55039,272,6 +2020-06-17,Fond du Lac,Wisconsin,55039,274,6 +2020-06-18,Fond du Lac,Wisconsin,55039,277,6 +2020-06-19,Fond du Lac,Wisconsin,55039,278,6 +2020-06-20,Fond du Lac,Wisconsin,55039,286,6 +2020-06-21,Fond du Lac,Wisconsin,55039,290,6 +2020-06-22,Fond du Lac,Wisconsin,55039,295,6 +2020-06-23,Fond du Lac,Wisconsin,55039,296,6 +2020-06-24,Fond du Lac,Wisconsin,55039,297,6 +2020-06-25,Fond du Lac,Wisconsin,55039,299,6 +2020-06-26,Fond du Lac,Wisconsin,55039,306,6 +2020-06-27,Fond du Lac,Wisconsin,55039,307,6 +2020-06-28,Fond du Lac,Wisconsin,55039,308,6 +2020-06-29,Fond du Lac,Wisconsin,55039,309,6 +2020-06-30,Fond du Lac,Wisconsin,55039,311,6 +2020-07-01,Fond du Lac,Wisconsin,55039,313,6 +2020-07-02,Fond du Lac,Wisconsin,55039,314,6 +2020-07-03,Fond du Lac,Wisconsin,55039,314,6 +2020-07-04,Fond du Lac,Wisconsin,55039,318,6 +2020-07-05,Fond du Lac,Wisconsin,55039,320,6 +2020-07-06,Fond du Lac,Wisconsin,55039,329,6 +2020-07-07,Fond du Lac,Wisconsin,55039,339,6 +2020-07-08,Fond du Lac,Wisconsin,55039,347,6 +2020-07-09,Fond du Lac,Wisconsin,55039,354,6 +2020-05-06,Forest,Wisconsin,55041,1,0 +2020-05-07,Forest,Wisconsin,55041,1,0 +2020-05-08,Forest,Wisconsin,55041,1,0 +2020-05-09,Forest,Wisconsin,55041,1,0 +2020-05-10,Forest,Wisconsin,55041,3,0 +2020-05-11,Forest,Wisconsin,55041,4,0 +2020-05-12,Forest,Wisconsin,55041,4,0 +2020-05-13,Forest,Wisconsin,55041,5,0 +2020-05-14,Forest,Wisconsin,55041,5,0 +2020-05-15,Forest,Wisconsin,55041,5,0 +2020-05-16,Forest,Wisconsin,55041,7,0 +2020-05-17,Forest,Wisconsin,55041,9,0 +2020-05-18,Forest,Wisconsin,55041,9,0 +2020-05-19,Forest,Wisconsin,55041,9,0 +2020-05-20,Forest,Wisconsin,55041,11,0 +2020-05-21,Forest,Wisconsin,55041,11,0 +2020-05-22,Forest,Wisconsin,55041,11,0 +2020-05-23,Forest,Wisconsin,55041,11,0 +2020-05-24,Forest,Wisconsin,55041,11,0 +2020-05-25,Forest,Wisconsin,55041,12,0 +2020-05-26,Forest,Wisconsin,55041,12,0 +2020-05-27,Forest,Wisconsin,55041,24,1 +2020-05-28,Forest,Wisconsin,55041,26,1 +2020-05-29,Forest,Wisconsin,55041,28,1 +2020-05-30,Forest,Wisconsin,55041,28,1 +2020-05-31,Forest,Wisconsin,55041,29,2 +2020-06-01,Forest,Wisconsin,55041,29,2 +2020-06-02,Forest,Wisconsin,55041,28,2 +2020-06-03,Forest,Wisconsin,55041,28,2 +2020-06-04,Forest,Wisconsin,55041,29,2 +2020-06-05,Forest,Wisconsin,55041,34,2 +2020-06-06,Forest,Wisconsin,55041,33,2 +2020-06-07,Forest,Wisconsin,55041,33,2 +2020-06-08,Forest,Wisconsin,55041,33,2 +2020-06-09,Forest,Wisconsin,55041,34,2 +2020-06-10,Forest,Wisconsin,55041,34,2 +2020-06-11,Forest,Wisconsin,55041,34,2 +2020-06-12,Forest,Wisconsin,55041,34,2 +2020-06-13,Forest,Wisconsin,55041,34,2 +2020-06-14,Forest,Wisconsin,55041,34,2 +2020-06-15,Forest,Wisconsin,55041,34,2 +2020-06-16,Forest,Wisconsin,55041,34,2 +2020-06-17,Forest,Wisconsin,55041,34,2 +2020-06-18,Forest,Wisconsin,55041,34,2 +2020-06-19,Forest,Wisconsin,55041,34,2 +2020-06-20,Forest,Wisconsin,55041,35,3 +2020-06-21,Forest,Wisconsin,55041,35,3 +2020-06-22,Forest,Wisconsin,55041,35,3 +2020-06-23,Forest,Wisconsin,55041,35,3 +2020-06-24,Forest,Wisconsin,55041,35,3 +2020-06-25,Forest,Wisconsin,55041,38,3 +2020-06-26,Forest,Wisconsin,55041,38,3 +2020-06-27,Forest,Wisconsin,55041,38,3 +2020-06-28,Forest,Wisconsin,55041,38,3 +2020-06-29,Forest,Wisconsin,55041,38,3 +2020-06-30,Forest,Wisconsin,55041,39,3 +2020-07-01,Forest,Wisconsin,55041,39,3 +2020-07-02,Forest,Wisconsin,55041,39,3 +2020-07-03,Forest,Wisconsin,55041,39,3 +2020-07-04,Forest,Wisconsin,55041,39,3 +2020-07-05,Forest,Wisconsin,55041,39,3 +2020-07-06,Forest,Wisconsin,55041,39,3 +2020-07-07,Forest,Wisconsin,55041,40,3 +2020-07-08,Forest,Wisconsin,55041,41,3 +2020-07-09,Forest,Wisconsin,55041,45,3 +2020-03-25,Grant,Wisconsin,55043,1,0 +2020-03-26,Grant,Wisconsin,55043,1,0 +2020-03-27,Grant,Wisconsin,55043,1,0 +2020-03-28,Grant,Wisconsin,55043,1,0 +2020-03-29,Grant,Wisconsin,55043,1,0 +2020-03-30,Grant,Wisconsin,55043,1,0 +2020-03-31,Grant,Wisconsin,55043,2,0 +2020-04-01,Grant,Wisconsin,55043,2,0 +2020-04-02,Grant,Wisconsin,55043,2,0 +2020-04-03,Grant,Wisconsin,55043,2,0 +2020-04-04,Grant,Wisconsin,55043,2,0 +2020-04-05,Grant,Wisconsin,55043,2,0 +2020-04-06,Grant,Wisconsin,55043,3,0 +2020-04-07,Grant,Wisconsin,55043,3,0 +2020-04-08,Grant,Wisconsin,55043,3,0 +2020-04-09,Grant,Wisconsin,55043,4,1 +2020-04-10,Grant,Wisconsin,55043,4,1 +2020-04-11,Grant,Wisconsin,55043,5,1 +2020-04-12,Grant,Wisconsin,55043,6,1 +2020-04-13,Grant,Wisconsin,55043,6,1 +2020-04-14,Grant,Wisconsin,55043,8,1 +2020-04-15,Grant,Wisconsin,55043,8,1 +2020-04-16,Grant,Wisconsin,55043,10,1 +2020-04-17,Grant,Wisconsin,55043,13,1 +2020-04-18,Grant,Wisconsin,55043,15,2 +2020-04-19,Grant,Wisconsin,55043,18,2 +2020-04-20,Grant,Wisconsin,55043,23,3 +2020-04-21,Grant,Wisconsin,55043,23,3 +2020-04-22,Grant,Wisconsin,55043,25,3 +2020-04-23,Grant,Wisconsin,55043,26,3 +2020-04-24,Grant,Wisconsin,55043,27,3 +2020-04-25,Grant,Wisconsin,55043,28,3 +2020-04-26,Grant,Wisconsin,55043,30,3 +2020-04-27,Grant,Wisconsin,55043,31,4 +2020-04-28,Grant,Wisconsin,55043,32,5 +2020-04-29,Grant,Wisconsin,55043,35,6 +2020-04-30,Grant,Wisconsin,55043,37,6 +2020-05-01,Grant,Wisconsin,55043,41,6 +2020-05-02,Grant,Wisconsin,55043,43,6 +2020-05-03,Grant,Wisconsin,55043,48,6 +2020-05-04,Grant,Wisconsin,55043,48,6 +2020-05-05,Grant,Wisconsin,55043,55,7 +2020-05-06,Grant,Wisconsin,55043,60,7 +2020-05-07,Grant,Wisconsin,55043,66,7 +2020-05-08,Grant,Wisconsin,55043,66,7 +2020-05-09,Grant,Wisconsin,55043,67,7 +2020-05-10,Grant,Wisconsin,55043,68,7 +2020-05-11,Grant,Wisconsin,55043,68,9 +2020-05-12,Grant,Wisconsin,55043,69,9 +2020-05-13,Grant,Wisconsin,55043,70,9 +2020-05-14,Grant,Wisconsin,55043,71,10 +2020-05-15,Grant,Wisconsin,55043,72,10 +2020-05-16,Grant,Wisconsin,55043,72,10 +2020-05-17,Grant,Wisconsin,55043,72,10 +2020-05-18,Grant,Wisconsin,55043,74,10 +2020-05-19,Grant,Wisconsin,55043,75,10 +2020-05-20,Grant,Wisconsin,55043,78,10 +2020-05-21,Grant,Wisconsin,55043,78,10 +2020-05-22,Grant,Wisconsin,55043,81,10 +2020-05-23,Grant,Wisconsin,55043,81,10 +2020-05-24,Grant,Wisconsin,55043,82,11 +2020-05-25,Grant,Wisconsin,55043,87,11 +2020-05-26,Grant,Wisconsin,55043,87,12 +2020-05-27,Grant,Wisconsin,55043,89,12 +2020-05-28,Grant,Wisconsin,55043,93,12 +2020-05-29,Grant,Wisconsin,55043,94,12 +2020-05-30,Grant,Wisconsin,55043,95,12 +2020-05-31,Grant,Wisconsin,55043,95,12 +2020-06-01,Grant,Wisconsin,55043,96,12 +2020-06-02,Grant,Wisconsin,55043,96,12 +2020-06-03,Grant,Wisconsin,55043,98,12 +2020-06-04,Grant,Wisconsin,55043,98,12 +2020-06-05,Grant,Wisconsin,55043,98,12 +2020-06-06,Grant,Wisconsin,55043,98,12 +2020-06-07,Grant,Wisconsin,55043,98,12 +2020-06-08,Grant,Wisconsin,55043,98,12 +2020-06-09,Grant,Wisconsin,55043,99,12 +2020-06-10,Grant,Wisconsin,55043,99,12 +2020-06-11,Grant,Wisconsin,55043,101,12 +2020-06-12,Grant,Wisconsin,55043,103,12 +2020-06-13,Grant,Wisconsin,55043,106,12 +2020-06-14,Grant,Wisconsin,55043,107,12 +2020-06-15,Grant,Wisconsin,55043,107,12 +2020-06-16,Grant,Wisconsin,55043,107,12 +2020-06-17,Grant,Wisconsin,55043,113,12 +2020-06-18,Grant,Wisconsin,55043,113,12 +2020-06-19,Grant,Wisconsin,55043,114,12 +2020-06-20,Grant,Wisconsin,55043,124,12 +2020-06-21,Grant,Wisconsin,55043,125,12 +2020-06-22,Grant,Wisconsin,55043,129,12 +2020-06-23,Grant,Wisconsin,55043,130,12 +2020-06-24,Grant,Wisconsin,55043,134,12 +2020-06-25,Grant,Wisconsin,55043,136,12 +2020-06-26,Grant,Wisconsin,55043,141,12 +2020-06-27,Grant,Wisconsin,55043,145,13 +2020-06-28,Grant,Wisconsin,55043,150,13 +2020-06-29,Grant,Wisconsin,55043,152,13 +2020-06-30,Grant,Wisconsin,55043,154,13 +2020-07-01,Grant,Wisconsin,55043,161,13 +2020-07-02,Grant,Wisconsin,55043,162,13 +2020-07-03,Grant,Wisconsin,55043,165,13 +2020-07-04,Grant,Wisconsin,55043,172,13 +2020-07-05,Grant,Wisconsin,55043,175,13 +2020-07-06,Grant,Wisconsin,55043,177,13 +2020-07-07,Grant,Wisconsin,55043,178,13 +2020-07-08,Grant,Wisconsin,55043,180,13 +2020-07-09,Grant,Wisconsin,55043,185,13 +2020-03-20,Green,Wisconsin,55045,1,0 +2020-03-21,Green,Wisconsin,55045,1,0 +2020-03-22,Green,Wisconsin,55045,1,0 +2020-03-23,Green,Wisconsin,55045,1,0 +2020-03-24,Green,Wisconsin,55045,1,0 +2020-03-25,Green,Wisconsin,55045,1,0 +2020-03-26,Green,Wisconsin,55045,1,0 +2020-03-27,Green,Wisconsin,55045,3,0 +2020-03-28,Green,Wisconsin,55045,4,0 +2020-03-29,Green,Wisconsin,55045,4,0 +2020-03-30,Green,Wisconsin,55045,5,0 +2020-03-31,Green,Wisconsin,55045,6,0 +2020-04-01,Green,Wisconsin,55045,7,0 +2020-04-02,Green,Wisconsin,55045,7,0 +2020-04-03,Green,Wisconsin,55045,8,0 +2020-04-04,Green,Wisconsin,55045,8,0 +2020-04-05,Green,Wisconsin,55045,9,0 +2020-04-06,Green,Wisconsin,55045,9,0 +2020-04-07,Green,Wisconsin,55045,9,0 +2020-04-08,Green,Wisconsin,55045,9,0 +2020-04-09,Green,Wisconsin,55045,9,0 +2020-04-10,Green,Wisconsin,55045,9,0 +2020-04-11,Green,Wisconsin,55045,9,0 +2020-04-12,Green,Wisconsin,55045,9,0 +2020-04-13,Green,Wisconsin,55045,9,0 +2020-04-14,Green,Wisconsin,55045,9,0 +2020-04-15,Green,Wisconsin,55045,9,0 +2020-04-16,Green,Wisconsin,55045,9,0 +2020-04-17,Green,Wisconsin,55045,9,0 +2020-04-18,Green,Wisconsin,55045,9,0 +2020-04-19,Green,Wisconsin,55045,9,0 +2020-04-20,Green,Wisconsin,55045,9,0 +2020-04-21,Green,Wisconsin,55045,9,0 +2020-04-22,Green,Wisconsin,55045,9,0 +2020-04-23,Green,Wisconsin,55045,10,0 +2020-04-24,Green,Wisconsin,55045,10,0 +2020-04-25,Green,Wisconsin,55045,11,0 +2020-04-26,Green,Wisconsin,55045,11,0 +2020-04-27,Green,Wisconsin,55045,11,0 +2020-04-28,Green,Wisconsin,55045,11,0 +2020-04-29,Green,Wisconsin,55045,11,0 +2020-04-30,Green,Wisconsin,55045,12,0 +2020-05-01,Green,Wisconsin,55045,13,0 +2020-05-02,Green,Wisconsin,55045,13,0 +2020-05-03,Green,Wisconsin,55045,15,0 +2020-05-04,Green,Wisconsin,55045,16,0 +2020-05-05,Green,Wisconsin,55045,20,0 +2020-05-06,Green,Wisconsin,55045,20,0 +2020-05-07,Green,Wisconsin,55045,21,0 +2020-05-08,Green,Wisconsin,55045,23,0 +2020-05-09,Green,Wisconsin,55045,33,0 +2020-05-10,Green,Wisconsin,55045,33,0 +2020-05-11,Green,Wisconsin,55045,33,0 +2020-05-12,Green,Wisconsin,55045,34,0 +2020-05-13,Green,Wisconsin,55045,36,0 +2020-05-14,Green,Wisconsin,55045,39,0 +2020-05-15,Green,Wisconsin,55045,39,0 +2020-05-16,Green,Wisconsin,55045,41,0 +2020-05-17,Green,Wisconsin,55045,44,0 +2020-05-18,Green,Wisconsin,55045,45,0 +2020-05-19,Green,Wisconsin,55045,46,0 +2020-05-20,Green,Wisconsin,55045,49,0 +2020-05-21,Green,Wisconsin,55045,49,0 +2020-05-22,Green,Wisconsin,55045,49,0 +2020-05-23,Green,Wisconsin,55045,52,0 +2020-05-24,Green,Wisconsin,55045,53,0 +2020-05-25,Green,Wisconsin,55045,54,0 +2020-05-26,Green,Wisconsin,55045,55,0 +2020-05-27,Green,Wisconsin,55045,58,0 +2020-05-28,Green,Wisconsin,55045,60,0 +2020-05-29,Green,Wisconsin,55045,65,0 +2020-05-30,Green,Wisconsin,55045,66,0 +2020-05-31,Green,Wisconsin,55045,66,0 +2020-06-01,Green,Wisconsin,55045,66,0 +2020-06-02,Green,Wisconsin,55045,68,0 +2020-06-03,Green,Wisconsin,55045,70,0 +2020-06-04,Green,Wisconsin,55045,70,0 +2020-06-05,Green,Wisconsin,55045,70,0 +2020-06-06,Green,Wisconsin,55045,71,0 +2020-06-07,Green,Wisconsin,55045,71,0 +2020-06-08,Green,Wisconsin,55045,71,0 +2020-06-09,Green,Wisconsin,55045,71,0 +2020-06-10,Green,Wisconsin,55045,71,0 +2020-06-11,Green,Wisconsin,55045,72,0 +2020-06-12,Green,Wisconsin,55045,75,0 +2020-06-13,Green,Wisconsin,55045,75,0 +2020-06-14,Green,Wisconsin,55045,75,1 +2020-06-15,Green,Wisconsin,55045,75,1 +2020-06-16,Green,Wisconsin,55045,77,1 +2020-06-17,Green,Wisconsin,55045,78,1 +2020-06-18,Green,Wisconsin,55045,78,1 +2020-06-19,Green,Wisconsin,55045,78,1 +2020-06-20,Green,Wisconsin,55045,79,1 +2020-06-21,Green,Wisconsin,55045,80,1 +2020-06-22,Green,Wisconsin,55045,80,1 +2020-06-23,Green,Wisconsin,55045,80,1 +2020-06-24,Green,Wisconsin,55045,81,1 +2020-06-25,Green,Wisconsin,55045,83,1 +2020-06-26,Green,Wisconsin,55045,84,1 +2020-06-27,Green,Wisconsin,55045,85,1 +2020-06-28,Green,Wisconsin,55045,88,1 +2020-06-29,Green,Wisconsin,55045,88,1 +2020-06-30,Green,Wisconsin,55045,89,1 +2020-07-01,Green,Wisconsin,55045,89,1 +2020-07-02,Green,Wisconsin,55045,90,1 +2020-07-03,Green,Wisconsin,55045,93,1 +2020-07-04,Green,Wisconsin,55045,94,1 +2020-07-05,Green,Wisconsin,55045,96,1 +2020-07-06,Green,Wisconsin,55045,100,1 +2020-07-07,Green,Wisconsin,55045,100,1 +2020-07-08,Green,Wisconsin,55045,101,1 +2020-07-09,Green,Wisconsin,55045,103,1 +2020-04-13,Green Lake,Wisconsin,55047,1,0 +2020-04-14,Green Lake,Wisconsin,55047,1,0 +2020-04-15,Green Lake,Wisconsin,55047,1,0 +2020-04-16,Green Lake,Wisconsin,55047,1,0 +2020-04-17,Green Lake,Wisconsin,55047,1,0 +2020-04-18,Green Lake,Wisconsin,55047,1,0 +2020-04-19,Green Lake,Wisconsin,55047,1,0 +2020-04-20,Green Lake,Wisconsin,55047,1,0 +2020-04-21,Green Lake,Wisconsin,55047,1,0 +2020-04-22,Green Lake,Wisconsin,55047,1,0 +2020-04-23,Green Lake,Wisconsin,55047,1,0 +2020-04-24,Green Lake,Wisconsin,55047,1,0 +2020-04-25,Green Lake,Wisconsin,55047,1,0 +2020-04-26,Green Lake,Wisconsin,55047,1,0 +2020-04-27,Green Lake,Wisconsin,55047,2,0 +2020-04-28,Green Lake,Wisconsin,55047,2,0 +2020-04-29,Green Lake,Wisconsin,55047,2,0 +2020-04-30,Green Lake,Wisconsin,55047,2,0 +2020-05-01,Green Lake,Wisconsin,55047,3,0 +2020-05-02,Green Lake,Wisconsin,55047,3,0 +2020-05-03,Green Lake,Wisconsin,55047,3,0 +2020-05-04,Green Lake,Wisconsin,55047,5,0 +2020-05-05,Green Lake,Wisconsin,55047,5,0 +2020-05-06,Green Lake,Wisconsin,55047,5,0 +2020-05-07,Green Lake,Wisconsin,55047,5,0 +2020-05-08,Green Lake,Wisconsin,55047,6,0 +2020-05-09,Green Lake,Wisconsin,55047,7,0 +2020-05-10,Green Lake,Wisconsin,55047,8,0 +2020-05-11,Green Lake,Wisconsin,55047,8,0 +2020-05-12,Green Lake,Wisconsin,55047,8,0 +2020-05-13,Green Lake,Wisconsin,55047,10,0 +2020-05-14,Green Lake,Wisconsin,55047,10,0 +2020-05-15,Green Lake,Wisconsin,55047,10,0 +2020-05-16,Green Lake,Wisconsin,55047,10,0 +2020-05-17,Green Lake,Wisconsin,55047,11,0 +2020-05-18,Green Lake,Wisconsin,55047,11,0 +2020-05-19,Green Lake,Wisconsin,55047,11,0 +2020-05-20,Green Lake,Wisconsin,55047,11,0 +2020-05-21,Green Lake,Wisconsin,55047,12,0 +2020-05-22,Green Lake,Wisconsin,55047,13,0 +2020-05-23,Green Lake,Wisconsin,55047,14,0 +2020-05-24,Green Lake,Wisconsin,55047,14,0 +2020-05-25,Green Lake,Wisconsin,55047,15,0 +2020-05-26,Green Lake,Wisconsin,55047,15,0 +2020-05-27,Green Lake,Wisconsin,55047,16,0 +2020-05-28,Green Lake,Wisconsin,55047,16,0 +2020-05-29,Green Lake,Wisconsin,55047,18,0 +2020-05-30,Green Lake,Wisconsin,55047,19,0 +2020-05-31,Green Lake,Wisconsin,55047,20,0 +2020-06-01,Green Lake,Wisconsin,55047,20,0 +2020-06-02,Green Lake,Wisconsin,55047,20,0 +2020-06-03,Green Lake,Wisconsin,55047,22,0 +2020-06-04,Green Lake,Wisconsin,55047,22,0 +2020-06-05,Green Lake,Wisconsin,55047,22,0 +2020-06-06,Green Lake,Wisconsin,55047,22,0 +2020-06-07,Green Lake,Wisconsin,55047,22,0 +2020-06-08,Green Lake,Wisconsin,55047,23,0 +2020-06-09,Green Lake,Wisconsin,55047,23,0 +2020-06-10,Green Lake,Wisconsin,55047,23,0 +2020-06-11,Green Lake,Wisconsin,55047,23,0 +2020-06-12,Green Lake,Wisconsin,55047,24,0 +2020-06-13,Green Lake,Wisconsin,55047,24,0 +2020-06-14,Green Lake,Wisconsin,55047,24,0 +2020-06-15,Green Lake,Wisconsin,55047,24,0 +2020-06-16,Green Lake,Wisconsin,55047,24,0 +2020-06-17,Green Lake,Wisconsin,55047,24,0 +2020-06-18,Green Lake,Wisconsin,55047,24,0 +2020-06-19,Green Lake,Wisconsin,55047,24,0 +2020-06-20,Green Lake,Wisconsin,55047,24,0 +2020-06-21,Green Lake,Wisconsin,55047,24,0 +2020-06-22,Green Lake,Wisconsin,55047,24,0 +2020-06-23,Green Lake,Wisconsin,55047,25,0 +2020-06-24,Green Lake,Wisconsin,55047,26,0 +2020-06-25,Green Lake,Wisconsin,55047,26,0 +2020-06-26,Green Lake,Wisconsin,55047,29,0 +2020-06-27,Green Lake,Wisconsin,55047,30,0 +2020-06-28,Green Lake,Wisconsin,55047,32,0 +2020-06-29,Green Lake,Wisconsin,55047,32,0 +2020-06-30,Green Lake,Wisconsin,55047,32,0 +2020-07-01,Green Lake,Wisconsin,55047,33,0 +2020-07-02,Green Lake,Wisconsin,55047,34,0 +2020-07-03,Green Lake,Wisconsin,55047,35,0 +2020-07-04,Green Lake,Wisconsin,55047,37,0 +2020-07-05,Green Lake,Wisconsin,55047,37,0 +2020-07-06,Green Lake,Wisconsin,55047,40,0 +2020-07-07,Green Lake,Wisconsin,55047,40,0 +2020-07-08,Green Lake,Wisconsin,55047,41,0 +2020-07-09,Green Lake,Wisconsin,55047,41,0 +2020-03-25,Iowa,Wisconsin,55049,3,0 +2020-03-26,Iowa,Wisconsin,55049,3,0 +2020-03-27,Iowa,Wisconsin,55049,3,0 +2020-03-28,Iowa,Wisconsin,55049,3,0 +2020-03-29,Iowa,Wisconsin,55049,3,0 +2020-03-30,Iowa,Wisconsin,55049,3,0 +2020-03-31,Iowa,Wisconsin,55049,3,0 +2020-04-01,Iowa,Wisconsin,55049,3,0 +2020-04-02,Iowa,Wisconsin,55049,3,0 +2020-04-03,Iowa,Wisconsin,55049,3,0 +2020-04-04,Iowa,Wisconsin,55049,3,0 +2020-04-05,Iowa,Wisconsin,55049,3,0 +2020-04-06,Iowa,Wisconsin,55049,3,0 +2020-04-07,Iowa,Wisconsin,55049,4,0 +2020-04-08,Iowa,Wisconsin,55049,4,0 +2020-04-09,Iowa,Wisconsin,55049,4,0 +2020-04-10,Iowa,Wisconsin,55049,4,0 +2020-04-11,Iowa,Wisconsin,55049,4,0 +2020-04-12,Iowa,Wisconsin,55049,5,0 +2020-04-13,Iowa,Wisconsin,55049,5,0 +2020-04-14,Iowa,Wisconsin,55049,5,0 +2020-04-15,Iowa,Wisconsin,55049,5,0 +2020-04-16,Iowa,Wisconsin,55049,5,0 +2020-04-17,Iowa,Wisconsin,55049,6,0 +2020-04-18,Iowa,Wisconsin,55049,6,0 +2020-04-19,Iowa,Wisconsin,55049,6,0 +2020-04-20,Iowa,Wisconsin,55049,6,0 +2020-04-21,Iowa,Wisconsin,55049,7,0 +2020-04-22,Iowa,Wisconsin,55049,7,0 +2020-04-23,Iowa,Wisconsin,55049,7,0 +2020-04-24,Iowa,Wisconsin,55049,7,0 +2020-04-25,Iowa,Wisconsin,55049,7,0 +2020-04-26,Iowa,Wisconsin,55049,7,0 +2020-04-27,Iowa,Wisconsin,55049,7,0 +2020-04-28,Iowa,Wisconsin,55049,7,0 +2020-04-29,Iowa,Wisconsin,55049,7,0 +2020-04-30,Iowa,Wisconsin,55049,7,0 +2020-05-01,Iowa,Wisconsin,55049,7,0 +2020-05-02,Iowa,Wisconsin,55049,7,0 +2020-05-03,Iowa,Wisconsin,55049,7,0 +2020-05-04,Iowa,Wisconsin,55049,7,0 +2020-05-05,Iowa,Wisconsin,55049,7,0 +2020-05-06,Iowa,Wisconsin,55049,10,0 +2020-05-07,Iowa,Wisconsin,55049,10,0 +2020-05-08,Iowa,Wisconsin,55049,10,0 +2020-05-09,Iowa,Wisconsin,55049,10,0 +2020-05-10,Iowa,Wisconsin,55049,10,0 +2020-05-11,Iowa,Wisconsin,55049,10,0 +2020-05-12,Iowa,Wisconsin,55049,10,0 +2020-05-13,Iowa,Wisconsin,55049,10,0 +2020-05-14,Iowa,Wisconsin,55049,11,0 +2020-05-15,Iowa,Wisconsin,55049,11,0 +2020-05-16,Iowa,Wisconsin,55049,11,0 +2020-05-17,Iowa,Wisconsin,55049,11,0 +2020-05-18,Iowa,Wisconsin,55049,11,0 +2020-05-19,Iowa,Wisconsin,55049,11,0 +2020-05-20,Iowa,Wisconsin,55049,11,0 +2020-05-21,Iowa,Wisconsin,55049,11,0 +2020-05-22,Iowa,Wisconsin,55049,11,0 +2020-05-23,Iowa,Wisconsin,55049,11,0 +2020-05-24,Iowa,Wisconsin,55049,11,0 +2020-05-25,Iowa,Wisconsin,55049,12,0 +2020-05-26,Iowa,Wisconsin,55049,12,0 +2020-05-27,Iowa,Wisconsin,55049,12,0 +2020-05-28,Iowa,Wisconsin,55049,14,0 +2020-05-29,Iowa,Wisconsin,55049,15,0 +2020-05-30,Iowa,Wisconsin,55049,16,0 +2020-05-31,Iowa,Wisconsin,55049,16,0 +2020-06-01,Iowa,Wisconsin,55049,16,0 +2020-06-02,Iowa,Wisconsin,55049,16,0 +2020-06-03,Iowa,Wisconsin,55049,17,0 +2020-06-04,Iowa,Wisconsin,55049,16,0 +2020-06-05,Iowa,Wisconsin,55049,16,0 +2020-06-06,Iowa,Wisconsin,55049,16,0 +2020-06-07,Iowa,Wisconsin,55049,17,0 +2020-06-08,Iowa,Wisconsin,55049,17,0 +2020-06-09,Iowa,Wisconsin,55049,16,0 +2020-06-10,Iowa,Wisconsin,55049,16,0 +2020-06-11,Iowa,Wisconsin,55049,16,0 +2020-06-12,Iowa,Wisconsin,55049,16,0 +2020-06-13,Iowa,Wisconsin,55049,17,0 +2020-06-14,Iowa,Wisconsin,55049,17,0 +2020-06-15,Iowa,Wisconsin,55049,17,0 +2020-06-16,Iowa,Wisconsin,55049,17,0 +2020-06-17,Iowa,Wisconsin,55049,18,0 +2020-06-18,Iowa,Wisconsin,55049,18,0 +2020-06-19,Iowa,Wisconsin,55049,18,0 +2020-06-20,Iowa,Wisconsin,55049,19,0 +2020-06-21,Iowa,Wisconsin,55049,21,0 +2020-06-22,Iowa,Wisconsin,55049,22,0 +2020-06-23,Iowa,Wisconsin,55049,21,0 +2020-06-24,Iowa,Wisconsin,55049,23,0 +2020-06-25,Iowa,Wisconsin,55049,25,0 +2020-06-26,Iowa,Wisconsin,55049,27,0 +2020-06-27,Iowa,Wisconsin,55049,29,0 +2020-06-28,Iowa,Wisconsin,55049,29,0 +2020-06-29,Iowa,Wisconsin,55049,29,0 +2020-06-30,Iowa,Wisconsin,55049,31,0 +2020-07-01,Iowa,Wisconsin,55049,32,0 +2020-07-02,Iowa,Wisconsin,55049,32,0 +2020-07-03,Iowa,Wisconsin,55049,33,0 +2020-07-04,Iowa,Wisconsin,55049,36,0 +2020-07-05,Iowa,Wisconsin,55049,37,0 +2020-07-06,Iowa,Wisconsin,55049,37,0 +2020-07-07,Iowa,Wisconsin,55049,38,0 +2020-07-08,Iowa,Wisconsin,55049,38,0 +2020-07-09,Iowa,Wisconsin,55049,38,0 +2020-03-27,Iron,Wisconsin,55051,1,1 +2020-03-28,Iron,Wisconsin,55051,1,1 +2020-03-29,Iron,Wisconsin,55051,1,1 +2020-03-30,Iron,Wisconsin,55051,1,1 +2020-03-31,Iron,Wisconsin,55051,1,1 +2020-04-01,Iron,Wisconsin,55051,1,1 +2020-04-02,Iron,Wisconsin,55051,1,1 +2020-04-03,Iron,Wisconsin,55051,1,1 +2020-04-04,Iron,Wisconsin,55051,1,1 +2020-04-05,Iron,Wisconsin,55051,1,1 +2020-04-06,Iron,Wisconsin,55051,1,1 +2020-04-07,Iron,Wisconsin,55051,1,1 +2020-04-08,Iron,Wisconsin,55051,1,1 +2020-04-09,Iron,Wisconsin,55051,1,1 +2020-04-10,Iron,Wisconsin,55051,1,1 +2020-04-11,Iron,Wisconsin,55051,2,1 +2020-04-12,Iron,Wisconsin,55051,2,1 +2020-04-13,Iron,Wisconsin,55051,2,1 +2020-04-14,Iron,Wisconsin,55051,2,1 +2020-04-15,Iron,Wisconsin,55051,2,1 +2020-04-16,Iron,Wisconsin,55051,2,1 +2020-04-17,Iron,Wisconsin,55051,2,1 +2020-04-18,Iron,Wisconsin,55051,2,1 +2020-04-19,Iron,Wisconsin,55051,2,1 +2020-04-20,Iron,Wisconsin,55051,2,1 +2020-04-21,Iron,Wisconsin,55051,2,1 +2020-04-22,Iron,Wisconsin,55051,2,1 +2020-04-23,Iron,Wisconsin,55051,2,1 +2020-04-24,Iron,Wisconsin,55051,2,1 +2020-04-25,Iron,Wisconsin,55051,2,1 +2020-04-26,Iron,Wisconsin,55051,2,1 +2020-04-27,Iron,Wisconsin,55051,2,1 +2020-04-28,Iron,Wisconsin,55051,2,1 +2020-04-29,Iron,Wisconsin,55051,2,1 +2020-04-30,Iron,Wisconsin,55051,2,1 +2020-05-01,Iron,Wisconsin,55051,2,1 +2020-05-02,Iron,Wisconsin,55051,2,1 +2020-05-03,Iron,Wisconsin,55051,2,1 +2020-05-04,Iron,Wisconsin,55051,2,1 +2020-05-05,Iron,Wisconsin,55051,2,1 +2020-05-06,Iron,Wisconsin,55051,2,1 +2020-05-07,Iron,Wisconsin,55051,2,1 +2020-05-08,Iron,Wisconsin,55051,2,1 +2020-05-09,Iron,Wisconsin,55051,2,1 +2020-05-10,Iron,Wisconsin,55051,2,1 +2020-05-11,Iron,Wisconsin,55051,2,1 +2020-05-12,Iron,Wisconsin,55051,2,1 +2020-05-13,Iron,Wisconsin,55051,2,1 +2020-05-14,Iron,Wisconsin,55051,2,1 +2020-05-15,Iron,Wisconsin,55051,2,1 +2020-05-16,Iron,Wisconsin,55051,2,1 +2020-05-17,Iron,Wisconsin,55051,2,1 +2020-05-18,Iron,Wisconsin,55051,2,1 +2020-05-19,Iron,Wisconsin,55051,2,1 +2020-05-20,Iron,Wisconsin,55051,2,1 +2020-05-21,Iron,Wisconsin,55051,2,1 +2020-05-22,Iron,Wisconsin,55051,2,1 +2020-05-23,Iron,Wisconsin,55051,2,1 +2020-05-24,Iron,Wisconsin,55051,2,1 +2020-05-25,Iron,Wisconsin,55051,2,1 +2020-05-26,Iron,Wisconsin,55051,2,1 +2020-05-27,Iron,Wisconsin,55051,2,1 +2020-05-28,Iron,Wisconsin,55051,2,1 +2020-05-29,Iron,Wisconsin,55051,2,1 +2020-05-30,Iron,Wisconsin,55051,2,1 +2020-05-31,Iron,Wisconsin,55051,2,1 +2020-06-01,Iron,Wisconsin,55051,2,1 +2020-06-02,Iron,Wisconsin,55051,2,1 +2020-06-03,Iron,Wisconsin,55051,2,1 +2020-06-04,Iron,Wisconsin,55051,2,1 +2020-06-05,Iron,Wisconsin,55051,2,1 +2020-06-06,Iron,Wisconsin,55051,2,1 +2020-06-07,Iron,Wisconsin,55051,2,1 +2020-06-08,Iron,Wisconsin,55051,2,1 +2020-06-09,Iron,Wisconsin,55051,2,1 +2020-06-10,Iron,Wisconsin,55051,2,1 +2020-06-11,Iron,Wisconsin,55051,2,1 +2020-06-12,Iron,Wisconsin,55051,2,1 +2020-06-13,Iron,Wisconsin,55051,2,1 +2020-06-14,Iron,Wisconsin,55051,2,1 +2020-06-15,Iron,Wisconsin,55051,2,1 +2020-06-16,Iron,Wisconsin,55051,2,1 +2020-06-17,Iron,Wisconsin,55051,2,1 +2020-06-18,Iron,Wisconsin,55051,2,1 +2020-06-19,Iron,Wisconsin,55051,2,1 +2020-06-20,Iron,Wisconsin,55051,2,1 +2020-06-21,Iron,Wisconsin,55051,2,1 +2020-06-22,Iron,Wisconsin,55051,2,1 +2020-06-23,Iron,Wisconsin,55051,2,1 +2020-06-24,Iron,Wisconsin,55051,2,1 +2020-06-25,Iron,Wisconsin,55051,2,1 +2020-06-26,Iron,Wisconsin,55051,3,1 +2020-06-27,Iron,Wisconsin,55051,5,1 +2020-06-28,Iron,Wisconsin,55051,5,1 +2020-06-29,Iron,Wisconsin,55051,6,1 +2020-06-30,Iron,Wisconsin,55051,6,1 +2020-07-01,Iron,Wisconsin,55051,7,1 +2020-07-02,Iron,Wisconsin,55051,7,1 +2020-07-03,Iron,Wisconsin,55051,7,1 +2020-07-04,Iron,Wisconsin,55051,8,1 +2020-07-05,Iron,Wisconsin,55051,8,1 +2020-07-06,Iron,Wisconsin,55051,8,1 +2020-07-07,Iron,Wisconsin,55051,8,1 +2020-07-08,Iron,Wisconsin,55051,8,1 +2020-07-09,Iron,Wisconsin,55051,9,1 +2020-03-30,Jackson,Wisconsin,55053,2,0 +2020-03-31,Jackson,Wisconsin,55053,2,0 +2020-04-01,Jackson,Wisconsin,55053,2,0 +2020-04-02,Jackson,Wisconsin,55053,2,0 +2020-04-03,Jackson,Wisconsin,55053,2,0 +2020-04-04,Jackson,Wisconsin,55053,3,0 +2020-04-05,Jackson,Wisconsin,55053,3,0 +2020-04-06,Jackson,Wisconsin,55053,4,0 +2020-04-07,Jackson,Wisconsin,55053,4,0 +2020-04-08,Jackson,Wisconsin,55053,5,0 +2020-04-09,Jackson,Wisconsin,55053,7,0 +2020-04-10,Jackson,Wisconsin,55053,10,0 +2020-04-11,Jackson,Wisconsin,55053,10,0 +2020-04-12,Jackson,Wisconsin,55053,10,0 +2020-04-13,Jackson,Wisconsin,55053,10,1 +2020-04-14,Jackson,Wisconsin,55053,10,1 +2020-04-15,Jackson,Wisconsin,55053,10,1 +2020-04-16,Jackson,Wisconsin,55053,11,1 +2020-04-17,Jackson,Wisconsin,55053,11,1 +2020-04-18,Jackson,Wisconsin,55053,11,1 +2020-04-19,Jackson,Wisconsin,55053,12,1 +2020-04-20,Jackson,Wisconsin,55053,12,1 +2020-04-21,Jackson,Wisconsin,55053,12,1 +2020-04-22,Jackson,Wisconsin,55053,12,1 +2020-04-23,Jackson,Wisconsin,55053,12,1 +2020-04-24,Jackson,Wisconsin,55053,12,1 +2020-04-25,Jackson,Wisconsin,55053,12,1 +2020-04-26,Jackson,Wisconsin,55053,12,1 +2020-04-27,Jackson,Wisconsin,55053,12,1 +2020-04-28,Jackson,Wisconsin,55053,12,1 +2020-04-29,Jackson,Wisconsin,55053,12,1 +2020-04-30,Jackson,Wisconsin,55053,12,1 +2020-05-01,Jackson,Wisconsin,55053,13,1 +2020-05-02,Jackson,Wisconsin,55053,12,1 +2020-05-03,Jackson,Wisconsin,55053,12,1 +2020-05-04,Jackson,Wisconsin,55053,12,1 +2020-05-05,Jackson,Wisconsin,55053,12,1 +2020-05-06,Jackson,Wisconsin,55053,12,1 +2020-05-07,Jackson,Wisconsin,55053,12,1 +2020-05-08,Jackson,Wisconsin,55053,12,1 +2020-05-09,Jackson,Wisconsin,55053,12,1 +2020-05-10,Jackson,Wisconsin,55053,14,1 +2020-05-11,Jackson,Wisconsin,55053,14,1 +2020-05-12,Jackson,Wisconsin,55053,14,1 +2020-05-13,Jackson,Wisconsin,55053,14,1 +2020-05-14,Jackson,Wisconsin,55053,15,1 +2020-05-15,Jackson,Wisconsin,55053,15,1 +2020-05-16,Jackson,Wisconsin,55053,15,1 +2020-05-17,Jackson,Wisconsin,55053,15,1 +2020-05-18,Jackson,Wisconsin,55053,15,1 +2020-05-19,Jackson,Wisconsin,55053,15,1 +2020-05-20,Jackson,Wisconsin,55053,15,1 +2020-05-21,Jackson,Wisconsin,55053,15,1 +2020-05-22,Jackson,Wisconsin,55053,15,1 +2020-05-23,Jackson,Wisconsin,55053,15,1 +2020-05-24,Jackson,Wisconsin,55053,15,1 +2020-05-25,Jackson,Wisconsin,55053,15,1 +2020-05-26,Jackson,Wisconsin,55053,14,1 +2020-05-27,Jackson,Wisconsin,55053,14,1 +2020-05-28,Jackson,Wisconsin,55053,15,1 +2020-05-29,Jackson,Wisconsin,55053,16,1 +2020-05-30,Jackson,Wisconsin,55053,17,1 +2020-05-31,Jackson,Wisconsin,55053,17,1 +2020-06-01,Jackson,Wisconsin,55053,17,1 +2020-06-02,Jackson,Wisconsin,55053,17,1 +2020-06-03,Jackson,Wisconsin,55053,19,1 +2020-06-04,Jackson,Wisconsin,55053,19,1 +2020-06-05,Jackson,Wisconsin,55053,17,1 +2020-06-06,Jackson,Wisconsin,55053,18,1 +2020-06-07,Jackson,Wisconsin,55053,19,1 +2020-06-08,Jackson,Wisconsin,55053,20,1 +2020-06-09,Jackson,Wisconsin,55053,19,1 +2020-06-10,Jackson,Wisconsin,55053,20,1 +2020-06-11,Jackson,Wisconsin,55053,22,1 +2020-06-12,Jackson,Wisconsin,55053,21,1 +2020-06-13,Jackson,Wisconsin,55053,21,1 +2020-06-14,Jackson,Wisconsin,55053,21,1 +2020-06-15,Jackson,Wisconsin,55053,21,1 +2020-06-16,Jackson,Wisconsin,55053,21,1 +2020-06-17,Jackson,Wisconsin,55053,22,1 +2020-06-18,Jackson,Wisconsin,55053,24,1 +2020-06-19,Jackson,Wisconsin,55053,24,1 +2020-06-20,Jackson,Wisconsin,55053,24,1 +2020-06-21,Jackson,Wisconsin,55053,24,1 +2020-06-22,Jackson,Wisconsin,55053,24,1 +2020-06-23,Jackson,Wisconsin,55053,24,1 +2020-06-24,Jackson,Wisconsin,55053,24,1 +2020-06-25,Jackson,Wisconsin,55053,26,1 +2020-06-26,Jackson,Wisconsin,55053,26,1 +2020-06-27,Jackson,Wisconsin,55053,26,1 +2020-06-28,Jackson,Wisconsin,55053,26,1 +2020-06-29,Jackson,Wisconsin,55053,26,1 +2020-06-30,Jackson,Wisconsin,55053,27,1 +2020-07-01,Jackson,Wisconsin,55053,27,1 +2020-07-02,Jackson,Wisconsin,55053,27,1 +2020-07-03,Jackson,Wisconsin,55053,27,1 +2020-07-04,Jackson,Wisconsin,55053,27,1 +2020-07-05,Jackson,Wisconsin,55053,27,1 +2020-07-06,Jackson,Wisconsin,55053,27,1 +2020-07-07,Jackson,Wisconsin,55053,31,1 +2020-07-08,Jackson,Wisconsin,55053,31,1 +2020-07-09,Jackson,Wisconsin,55053,32,1 +2020-03-20,Jefferson,Wisconsin,55055,1,0 +2020-03-21,Jefferson,Wisconsin,55055,1,0 +2020-03-22,Jefferson,Wisconsin,55055,2,0 +2020-03-23,Jefferson,Wisconsin,55055,2,0 +2020-03-24,Jefferson,Wisconsin,55055,4,0 +2020-03-25,Jefferson,Wisconsin,55055,5,0 +2020-03-26,Jefferson,Wisconsin,55055,5,0 +2020-03-27,Jefferson,Wisconsin,55055,6,0 +2020-03-28,Jefferson,Wisconsin,55055,8,0 +2020-03-29,Jefferson,Wisconsin,55055,8,0 +2020-03-30,Jefferson,Wisconsin,55055,10,0 +2020-03-31,Jefferson,Wisconsin,55055,11,0 +2020-04-01,Jefferson,Wisconsin,55055,12,0 +2020-04-02,Jefferson,Wisconsin,55055,12,0 +2020-04-03,Jefferson,Wisconsin,55055,13,0 +2020-04-04,Jefferson,Wisconsin,55055,13,0 +2020-04-05,Jefferson,Wisconsin,55055,14,0 +2020-04-06,Jefferson,Wisconsin,55055,14,0 +2020-04-07,Jefferson,Wisconsin,55055,15,0 +2020-04-08,Jefferson,Wisconsin,55055,16,0 +2020-04-09,Jefferson,Wisconsin,55055,19,0 +2020-04-10,Jefferson,Wisconsin,55055,21,0 +2020-04-11,Jefferson,Wisconsin,55055,22,0 +2020-04-12,Jefferson,Wisconsin,55055,23,0 +2020-04-13,Jefferson,Wisconsin,55055,24,0 +2020-04-14,Jefferson,Wisconsin,55055,24,0 +2020-04-15,Jefferson,Wisconsin,55055,24,0 +2020-04-16,Jefferson,Wisconsin,55055,24,0 +2020-04-17,Jefferson,Wisconsin,55055,27,0 +2020-04-18,Jefferson,Wisconsin,55055,27,0 +2020-04-19,Jefferson,Wisconsin,55055,32,0 +2020-04-20,Jefferson,Wisconsin,55055,32,0 +2020-04-21,Jefferson,Wisconsin,55055,32,0 +2020-04-22,Jefferson,Wisconsin,55055,35,0 +2020-04-23,Jefferson,Wisconsin,55055,37,0 +2020-04-24,Jefferson,Wisconsin,55055,38,0 +2020-04-25,Jefferson,Wisconsin,55055,39,0 +2020-04-26,Jefferson,Wisconsin,55055,39,0 +2020-04-27,Jefferson,Wisconsin,55055,39,0 +2020-04-28,Jefferson,Wisconsin,55055,42,0 +2020-04-29,Jefferson,Wisconsin,55055,45,0 +2020-04-30,Jefferson,Wisconsin,55055,45,0 +2020-05-01,Jefferson,Wisconsin,55055,46,0 +2020-05-02,Jefferson,Wisconsin,55055,46,0 +2020-05-03,Jefferson,Wisconsin,55055,46,0 +2020-05-04,Jefferson,Wisconsin,55055,46,0 +2020-05-05,Jefferson,Wisconsin,55055,46,0 +2020-05-06,Jefferson,Wisconsin,55055,47,0 +2020-05-07,Jefferson,Wisconsin,55055,50,0 +2020-05-08,Jefferson,Wisconsin,55055,50,0 +2020-05-09,Jefferson,Wisconsin,55055,50,2 +2020-05-10,Jefferson,Wisconsin,55055,50,2 +2020-05-11,Jefferson,Wisconsin,55055,51,2 +2020-05-12,Jefferson,Wisconsin,55055,52,2 +2020-05-13,Jefferson,Wisconsin,55055,54,2 +2020-05-14,Jefferson,Wisconsin,55055,56,2 +2020-05-15,Jefferson,Wisconsin,55055,58,2 +2020-05-16,Jefferson,Wisconsin,55055,58,2 +2020-05-17,Jefferson,Wisconsin,55055,60,2 +2020-05-18,Jefferson,Wisconsin,55055,61,2 +2020-05-19,Jefferson,Wisconsin,55055,62,2 +2020-05-20,Jefferson,Wisconsin,55055,62,2 +2020-05-21,Jefferson,Wisconsin,55055,67,2 +2020-05-22,Jefferson,Wisconsin,55055,75,3 +2020-05-23,Jefferson,Wisconsin,55055,78,3 +2020-05-24,Jefferson,Wisconsin,55055,80,3 +2020-05-25,Jefferson,Wisconsin,55055,84,3 +2020-05-26,Jefferson,Wisconsin,55055,90,3 +2020-05-27,Jefferson,Wisconsin,55055,92,3 +2020-05-28,Jefferson,Wisconsin,55055,96,3 +2020-05-29,Jefferson,Wisconsin,55055,101,3 +2020-05-30,Jefferson,Wisconsin,55055,104,3 +2020-05-31,Jefferson,Wisconsin,55055,106,3 +2020-06-01,Jefferson,Wisconsin,55055,107,3 +2020-06-02,Jefferson,Wisconsin,55055,110,3 +2020-06-03,Jefferson,Wisconsin,55055,114,3 +2020-06-04,Jefferson,Wisconsin,55055,116,3 +2020-06-05,Jefferson,Wisconsin,55055,122,3 +2020-06-06,Jefferson,Wisconsin,55055,124,3 +2020-06-07,Jefferson,Wisconsin,55055,128,3 +2020-06-08,Jefferson,Wisconsin,55055,130,3 +2020-06-09,Jefferson,Wisconsin,55055,134,3 +2020-06-10,Jefferson,Wisconsin,55055,138,4 +2020-06-11,Jefferson,Wisconsin,55055,142,4 +2020-06-12,Jefferson,Wisconsin,55055,152,4 +2020-06-13,Jefferson,Wisconsin,55055,155,4 +2020-06-14,Jefferson,Wisconsin,55055,158,4 +2020-06-15,Jefferson,Wisconsin,55055,160,4 +2020-06-16,Jefferson,Wisconsin,55055,161,4 +2020-06-17,Jefferson,Wisconsin,55055,161,4 +2020-06-18,Jefferson,Wisconsin,55055,164,4 +2020-06-19,Jefferson,Wisconsin,55055,168,4 +2020-06-20,Jefferson,Wisconsin,55055,172,4 +2020-06-21,Jefferson,Wisconsin,55055,177,4 +2020-06-22,Jefferson,Wisconsin,55055,181,4 +2020-06-23,Jefferson,Wisconsin,55055,185,4 +2020-06-24,Jefferson,Wisconsin,55055,194,4 +2020-06-25,Jefferson,Wisconsin,55055,201,4 +2020-06-26,Jefferson,Wisconsin,55055,211,4 +2020-06-27,Jefferson,Wisconsin,55055,222,4 +2020-06-28,Jefferson,Wisconsin,55055,228,4 +2020-06-29,Jefferson,Wisconsin,55055,234,4 +2020-06-30,Jefferson,Wisconsin,55055,236,4 +2020-07-01,Jefferson,Wisconsin,55055,242,4 +2020-07-02,Jefferson,Wisconsin,55055,257,4 +2020-07-03,Jefferson,Wisconsin,55055,260,4 +2020-07-04,Jefferson,Wisconsin,55055,274,4 +2020-07-05,Jefferson,Wisconsin,55055,285,4 +2020-07-06,Jefferson,Wisconsin,55055,291,4 +2020-07-07,Jefferson,Wisconsin,55055,292,4 +2020-07-08,Jefferson,Wisconsin,55055,303,4 +2020-07-09,Jefferson,Wisconsin,55055,315,4 +2020-03-25,Juneau,Wisconsin,55057,1,0 +2020-03-26,Juneau,Wisconsin,55057,1,0 +2020-03-27,Juneau,Wisconsin,55057,2,0 +2020-03-28,Juneau,Wisconsin,55057,2,0 +2020-03-29,Juneau,Wisconsin,55057,3,0 +2020-03-30,Juneau,Wisconsin,55057,3,0 +2020-03-31,Juneau,Wisconsin,55057,3,0 +2020-04-01,Juneau,Wisconsin,55057,4,0 +2020-04-02,Juneau,Wisconsin,55057,4,0 +2020-04-03,Juneau,Wisconsin,55057,4,0 +2020-04-04,Juneau,Wisconsin,55057,5,0 +2020-04-05,Juneau,Wisconsin,55057,5,0 +2020-04-06,Juneau,Wisconsin,55057,5,0 +2020-04-07,Juneau,Wisconsin,55057,5,0 +2020-04-08,Juneau,Wisconsin,55057,5,0 +2020-04-09,Juneau,Wisconsin,55057,5,0 +2020-04-10,Juneau,Wisconsin,55057,5,0 +2020-04-11,Juneau,Wisconsin,55057,5,0 +2020-04-12,Juneau,Wisconsin,55057,6,1 +2020-04-13,Juneau,Wisconsin,55057,7,1 +2020-04-14,Juneau,Wisconsin,55057,7,1 +2020-04-15,Juneau,Wisconsin,55057,7,1 +2020-04-16,Juneau,Wisconsin,55057,7,1 +2020-04-17,Juneau,Wisconsin,55057,7,1 +2020-04-18,Juneau,Wisconsin,55057,10,1 +2020-04-19,Juneau,Wisconsin,55057,10,1 +2020-04-20,Juneau,Wisconsin,55057,10,1 +2020-04-21,Juneau,Wisconsin,55057,10,1 +2020-04-22,Juneau,Wisconsin,55057,11,1 +2020-04-23,Juneau,Wisconsin,55057,11,1 +2020-04-24,Juneau,Wisconsin,55057,11,1 +2020-04-25,Juneau,Wisconsin,55057,12,1 +2020-04-26,Juneau,Wisconsin,55057,12,1 +2020-04-27,Juneau,Wisconsin,55057,13,1 +2020-04-28,Juneau,Wisconsin,55057,13,1 +2020-04-29,Juneau,Wisconsin,55057,14,1 +2020-04-30,Juneau,Wisconsin,55057,17,1 +2020-05-01,Juneau,Wisconsin,55057,17,1 +2020-05-02,Juneau,Wisconsin,55057,18,1 +2020-05-03,Juneau,Wisconsin,55057,18,1 +2020-05-04,Juneau,Wisconsin,55057,18,1 +2020-05-05,Juneau,Wisconsin,55057,18,1 +2020-05-06,Juneau,Wisconsin,55057,19,1 +2020-05-07,Juneau,Wisconsin,55057,20,1 +2020-05-08,Juneau,Wisconsin,55057,21,1 +2020-05-09,Juneau,Wisconsin,55057,21,1 +2020-05-10,Juneau,Wisconsin,55057,21,1 +2020-05-11,Juneau,Wisconsin,55057,21,1 +2020-05-12,Juneau,Wisconsin,55057,21,1 +2020-05-13,Juneau,Wisconsin,55057,21,1 +2020-05-14,Juneau,Wisconsin,55057,21,1 +2020-05-15,Juneau,Wisconsin,55057,21,1 +2020-05-16,Juneau,Wisconsin,55057,21,1 +2020-05-17,Juneau,Wisconsin,55057,21,1 +2020-05-18,Juneau,Wisconsin,55057,22,1 +2020-05-19,Juneau,Wisconsin,55057,22,1 +2020-05-20,Juneau,Wisconsin,55057,22,1 +2020-05-21,Juneau,Wisconsin,55057,22,1 +2020-05-22,Juneau,Wisconsin,55057,22,1 +2020-05-23,Juneau,Wisconsin,55057,22,1 +2020-05-24,Juneau,Wisconsin,55057,22,1 +2020-05-25,Juneau,Wisconsin,55057,22,1 +2020-05-26,Juneau,Wisconsin,55057,22,1 +2020-05-27,Juneau,Wisconsin,55057,22,1 +2020-05-28,Juneau,Wisconsin,55057,22,1 +2020-05-29,Juneau,Wisconsin,55057,23,1 +2020-05-30,Juneau,Wisconsin,55057,23,1 +2020-05-31,Juneau,Wisconsin,55057,23,1 +2020-06-01,Juneau,Wisconsin,55057,23,1 +2020-06-02,Juneau,Wisconsin,55057,22,1 +2020-06-03,Juneau,Wisconsin,55057,22,1 +2020-06-04,Juneau,Wisconsin,55057,22,1 +2020-06-05,Juneau,Wisconsin,55057,22,1 +2020-06-06,Juneau,Wisconsin,55057,23,1 +2020-06-07,Juneau,Wisconsin,55057,23,1 +2020-06-08,Juneau,Wisconsin,55057,23,1 +2020-06-09,Juneau,Wisconsin,55057,23,1 +2020-06-10,Juneau,Wisconsin,55057,23,1 +2020-06-11,Juneau,Wisconsin,55057,24,1 +2020-06-12,Juneau,Wisconsin,55057,24,1 +2020-06-13,Juneau,Wisconsin,55057,24,1 +2020-06-14,Juneau,Wisconsin,55057,25,1 +2020-06-15,Juneau,Wisconsin,55057,25,1 +2020-06-16,Juneau,Wisconsin,55057,25,1 +2020-06-17,Juneau,Wisconsin,55057,25,1 +2020-06-18,Juneau,Wisconsin,55057,27,1 +2020-06-19,Juneau,Wisconsin,55057,27,1 +2020-06-20,Juneau,Wisconsin,55057,27,1 +2020-06-21,Juneau,Wisconsin,55057,28,1 +2020-06-22,Juneau,Wisconsin,55057,29,1 +2020-06-23,Juneau,Wisconsin,55057,29,1 +2020-06-24,Juneau,Wisconsin,55057,31,1 +2020-06-25,Juneau,Wisconsin,55057,31,1 +2020-06-26,Juneau,Wisconsin,55057,31,1 +2020-06-27,Juneau,Wisconsin,55057,32,1 +2020-06-28,Juneau,Wisconsin,55057,32,1 +2020-06-29,Juneau,Wisconsin,55057,35,1 +2020-06-30,Juneau,Wisconsin,55057,36,1 +2020-07-01,Juneau,Wisconsin,55057,39,1 +2020-07-02,Juneau,Wisconsin,55057,40,1 +2020-07-03,Juneau,Wisconsin,55057,42,1 +2020-07-04,Juneau,Wisconsin,55057,43,1 +2020-07-05,Juneau,Wisconsin,55057,43,1 +2020-07-06,Juneau,Wisconsin,55057,43,1 +2020-07-07,Juneau,Wisconsin,55057,43,1 +2020-07-08,Juneau,Wisconsin,55057,44,1 +2020-07-09,Juneau,Wisconsin,55057,47,1 +2020-03-17,Kenosha,Wisconsin,55059,4,0 +2020-03-18,Kenosha,Wisconsin,55059,4,0 +2020-03-19,Kenosha,Wisconsin,55059,4,0 +2020-03-20,Kenosha,Wisconsin,55059,4,0 +2020-03-21,Kenosha,Wisconsin,55059,5,0 +2020-03-22,Kenosha,Wisconsin,55059,10,0 +2020-03-23,Kenosha,Wisconsin,55059,12,0 +2020-03-24,Kenosha,Wisconsin,55059,13,0 +2020-03-25,Kenosha,Wisconsin,55059,14,0 +2020-03-26,Kenosha,Wisconsin,55059,19,0 +2020-03-27,Kenosha,Wisconsin,55059,24,0 +2020-03-28,Kenosha,Wisconsin,55059,24,0 +2020-03-29,Kenosha,Wisconsin,55059,30,0 +2020-03-30,Kenosha,Wisconsin,55059,30,0 +2020-03-31,Kenosha,Wisconsin,55059,37,0 +2020-04-01,Kenosha,Wisconsin,55059,54,0 +2020-04-02,Kenosha,Wisconsin,55059,67,0 +2020-04-03,Kenosha,Wisconsin,55059,81,0 +2020-04-04,Kenosha,Wisconsin,55059,93,1 +2020-04-05,Kenosha,Wisconsin,55059,98,1 +2020-04-06,Kenosha,Wisconsin,55059,104,1 +2020-04-07,Kenosha,Wisconsin,55059,112,1 +2020-04-08,Kenosha,Wisconsin,55059,129,1 +2020-04-09,Kenosha,Wisconsin,55059,135,1 +2020-04-10,Kenosha,Wisconsin,55059,147,1 +2020-04-11,Kenosha,Wisconsin,55059,163,1 +2020-04-12,Kenosha,Wisconsin,55059,173,2 +2020-04-13,Kenosha,Wisconsin,55059,182,4 +2020-04-14,Kenosha,Wisconsin,55059,186,3 +2020-04-15,Kenosha,Wisconsin,55059,204,4 +2020-04-16,Kenosha,Wisconsin,55059,208,5 +2020-04-17,Kenosha,Wisconsin,55059,218,5 +2020-04-18,Kenosha,Wisconsin,55059,236,5 +2020-04-19,Kenosha,Wisconsin,55059,248,5 +2020-04-20,Kenosha,Wisconsin,55059,257,5 +2020-04-21,Kenosha,Wisconsin,55059,264,6 +2020-04-22,Kenosha,Wisconsin,55059,278,6 +2020-04-23,Kenosha,Wisconsin,55059,294,6 +2020-04-24,Kenosha,Wisconsin,55059,314,7 +2020-04-25,Kenosha,Wisconsin,55059,329,7 +2020-04-26,Kenosha,Wisconsin,55059,339,7 +2020-04-27,Kenosha,Wisconsin,55059,340,7 +2020-04-28,Kenosha,Wisconsin,55059,348,9 +2020-04-29,Kenosha,Wisconsin,55059,363,11 +2020-04-30,Kenosha,Wisconsin,55059,391,12 +2020-05-01,Kenosha,Wisconsin,55059,477,13 +2020-05-02,Kenosha,Wisconsin,55059,521,13 +2020-05-03,Kenosha,Wisconsin,55059,534,14 +2020-05-04,Kenosha,Wisconsin,55059,546,14 +2020-05-05,Kenosha,Wisconsin,55059,571,14 +2020-05-06,Kenosha,Wisconsin,55059,580,14 +2020-05-07,Kenosha,Wisconsin,55059,610,14 +2020-05-08,Kenosha,Wisconsin,55059,627,15 +2020-05-09,Kenosha,Wisconsin,55059,651,15 +2020-05-10,Kenosha,Wisconsin,55059,682,15 +2020-05-11,Kenosha,Wisconsin,55059,693,16 +2020-05-12,Kenosha,Wisconsin,55059,716,16 +2020-05-13,Kenosha,Wisconsin,55059,736,17 +2020-05-14,Kenosha,Wisconsin,55059,762,17 +2020-05-15,Kenosha,Wisconsin,55059,780,17 +2020-05-16,Kenosha,Wisconsin,55059,820,18 +2020-05-17,Kenosha,Wisconsin,55059,838,18 +2020-05-18,Kenosha,Wisconsin,55059,848,18 +2020-05-19,Kenosha,Wisconsin,55059,866,19 +2020-05-20,Kenosha,Wisconsin,55059,889,21 +2020-05-21,Kenosha,Wisconsin,55059,921,21 +2020-05-22,Kenosha,Wisconsin,55059,948,22 +2020-05-23,Kenosha,Wisconsin,55059,983,22 +2020-05-24,Kenosha,Wisconsin,55059,998,22 +2020-05-25,Kenosha,Wisconsin,55059,1001,22 +2020-05-26,Kenosha,Wisconsin,55059,1008,22 +2020-05-27,Kenosha,Wisconsin,55059,1033,24 +2020-05-28,Kenosha,Wisconsin,55059,1088,25 +2020-05-29,Kenosha,Wisconsin,55059,1131,27 +2020-05-30,Kenosha,Wisconsin,55059,1165,30 +2020-05-31,Kenosha,Wisconsin,55059,1168,30 +2020-06-01,Kenosha,Wisconsin,55059,1178,30 +2020-06-02,Kenosha,Wisconsin,55059,1201,30 +2020-06-03,Kenosha,Wisconsin,55059,1222,30 +2020-06-04,Kenosha,Wisconsin,55059,1252,33 +2020-06-05,Kenosha,Wisconsin,55059,1267,34 +2020-06-06,Kenosha,Wisconsin,55059,1267,34 +2020-06-07,Kenosha,Wisconsin,55059,1274,34 +2020-06-08,Kenosha,Wisconsin,55059,1290,35 +2020-06-09,Kenosha,Wisconsin,55059,1296,36 +2020-06-10,Kenosha,Wisconsin,55059,1310,36 +2020-06-11,Kenosha,Wisconsin,55059,1319,36 +2020-06-12,Kenosha,Wisconsin,55059,1337,36 +2020-06-13,Kenosha,Wisconsin,55059,1343,36 +2020-06-14,Kenosha,Wisconsin,55059,1356,36 +2020-06-15,Kenosha,Wisconsin,55059,1368,36 +2020-06-16,Kenosha,Wisconsin,55059,1376,37 +2020-06-17,Kenosha,Wisconsin,55059,1385,36 +2020-06-18,Kenosha,Wisconsin,55059,1392,36 +2020-06-19,Kenosha,Wisconsin,55059,1400,37 +2020-06-20,Kenosha,Wisconsin,55059,1406,39 +2020-06-21,Kenosha,Wisconsin,55059,1416,39 +2020-06-22,Kenosha,Wisconsin,55059,1421,39 +2020-06-23,Kenosha,Wisconsin,55059,1425,39 +2020-06-24,Kenosha,Wisconsin,55059,1438,41 +2020-06-25,Kenosha,Wisconsin,55059,1442,41 +2020-06-26,Kenosha,Wisconsin,55059,1455,41 +2020-06-27,Kenosha,Wisconsin,55059,1468,43 +2020-06-28,Kenosha,Wisconsin,55059,1478,43 +2020-06-29,Kenosha,Wisconsin,55059,1492,43 +2020-06-30,Kenosha,Wisconsin,55059,1505,43 +2020-07-01,Kenosha,Wisconsin,55059,1527,43 +2020-07-02,Kenosha,Wisconsin,55059,1535,44 +2020-07-03,Kenosha,Wisconsin,55059,1547,44 +2020-07-04,Kenosha,Wisconsin,55059,1574,44 +2020-07-05,Kenosha,Wisconsin,55059,1586,44 +2020-07-06,Kenosha,Wisconsin,55059,1601,44 +2020-07-07,Kenosha,Wisconsin,55059,1626,44 +2020-07-08,Kenosha,Wisconsin,55059,1628,44 +2020-07-09,Kenosha,Wisconsin,55059,1666,44 +2020-04-06,Kewaunee,Wisconsin,55061,1,0 +2020-04-07,Kewaunee,Wisconsin,55061,1,0 +2020-04-08,Kewaunee,Wisconsin,55061,1,0 +2020-04-09,Kewaunee,Wisconsin,55061,1,0 +2020-04-10,Kewaunee,Wisconsin,55061,1,0 +2020-04-11,Kewaunee,Wisconsin,55061,1,0 +2020-04-12,Kewaunee,Wisconsin,55061,3,0 +2020-04-13,Kewaunee,Wisconsin,55061,4,0 +2020-04-14,Kewaunee,Wisconsin,55061,4,1 +2020-04-15,Kewaunee,Wisconsin,55061,5,1 +2020-04-16,Kewaunee,Wisconsin,55061,6,1 +2020-04-17,Kewaunee,Wisconsin,55061,8,1 +2020-04-18,Kewaunee,Wisconsin,55061,8,1 +2020-04-19,Kewaunee,Wisconsin,55061,8,1 +2020-04-20,Kewaunee,Wisconsin,55061,8,1 +2020-04-21,Kewaunee,Wisconsin,55061,8,1 +2020-04-22,Kewaunee,Wisconsin,55061,8,1 +2020-04-23,Kewaunee,Wisconsin,55061,10,1 +2020-04-24,Kewaunee,Wisconsin,55061,9,1 +2020-04-25,Kewaunee,Wisconsin,55061,10,1 +2020-04-26,Kewaunee,Wisconsin,55061,10,1 +2020-04-27,Kewaunee,Wisconsin,55061,10,1 +2020-04-28,Kewaunee,Wisconsin,55061,11,1 +2020-04-29,Kewaunee,Wisconsin,55061,14,1 +2020-04-30,Kewaunee,Wisconsin,55061,14,1 +2020-05-01,Kewaunee,Wisconsin,55061,13,1 +2020-05-02,Kewaunee,Wisconsin,55061,15,1 +2020-05-03,Kewaunee,Wisconsin,55061,18,1 +2020-05-04,Kewaunee,Wisconsin,55061,22,1 +2020-05-05,Kewaunee,Wisconsin,55061,22,1 +2020-05-06,Kewaunee,Wisconsin,55061,25,1 +2020-05-07,Kewaunee,Wisconsin,55061,25,1 +2020-05-08,Kewaunee,Wisconsin,55061,26,1 +2020-05-09,Kewaunee,Wisconsin,55061,28,1 +2020-05-10,Kewaunee,Wisconsin,55061,29,1 +2020-05-11,Kewaunee,Wisconsin,55061,29,1 +2020-05-12,Kewaunee,Wisconsin,55061,29,1 +2020-05-13,Kewaunee,Wisconsin,55061,29,1 +2020-05-14,Kewaunee,Wisconsin,55061,29,1 +2020-05-15,Kewaunee,Wisconsin,55061,30,1 +2020-05-16,Kewaunee,Wisconsin,55061,30,1 +2020-05-17,Kewaunee,Wisconsin,55061,30,1 +2020-05-18,Kewaunee,Wisconsin,55061,30,1 +2020-05-19,Kewaunee,Wisconsin,55061,31,1 +2020-05-20,Kewaunee,Wisconsin,55061,31,1 +2020-05-21,Kewaunee,Wisconsin,55061,32,1 +2020-05-22,Kewaunee,Wisconsin,55061,32,1 +2020-05-23,Kewaunee,Wisconsin,55061,33,1 +2020-05-24,Kewaunee,Wisconsin,55061,33,1 +2020-05-25,Kewaunee,Wisconsin,55061,33,1 +2020-05-26,Kewaunee,Wisconsin,55061,33,1 +2020-05-27,Kewaunee,Wisconsin,55061,33,1 +2020-05-28,Kewaunee,Wisconsin,55061,34,1 +2020-05-29,Kewaunee,Wisconsin,55061,34,1 +2020-05-30,Kewaunee,Wisconsin,55061,34,1 +2020-05-31,Kewaunee,Wisconsin,55061,35,1 +2020-06-01,Kewaunee,Wisconsin,55061,35,1 +2020-06-02,Kewaunee,Wisconsin,55061,35,1 +2020-06-03,Kewaunee,Wisconsin,55061,36,1 +2020-06-04,Kewaunee,Wisconsin,55061,36,1 +2020-06-05,Kewaunee,Wisconsin,55061,36,1 +2020-06-06,Kewaunee,Wisconsin,55061,36,1 +2020-06-07,Kewaunee,Wisconsin,55061,36,1 +2020-06-08,Kewaunee,Wisconsin,55061,36,1 +2020-06-09,Kewaunee,Wisconsin,55061,37,1 +2020-06-10,Kewaunee,Wisconsin,55061,37,1 +2020-06-11,Kewaunee,Wisconsin,55061,37,1 +2020-06-12,Kewaunee,Wisconsin,55061,37,1 +2020-06-13,Kewaunee,Wisconsin,55061,37,1 +2020-06-14,Kewaunee,Wisconsin,55061,37,1 +2020-06-15,Kewaunee,Wisconsin,55061,37,1 +2020-06-16,Kewaunee,Wisconsin,55061,39,1 +2020-06-17,Kewaunee,Wisconsin,55061,39,1 +2020-06-18,Kewaunee,Wisconsin,55061,40,1 +2020-06-19,Kewaunee,Wisconsin,55061,42,1 +2020-06-20,Kewaunee,Wisconsin,55061,43,1 +2020-06-21,Kewaunee,Wisconsin,55061,44,1 +2020-06-22,Kewaunee,Wisconsin,55061,44,1 +2020-06-23,Kewaunee,Wisconsin,55061,46,1 +2020-06-24,Kewaunee,Wisconsin,55061,46,1 +2020-06-25,Kewaunee,Wisconsin,55061,49,1 +2020-06-26,Kewaunee,Wisconsin,55061,52,1 +2020-06-27,Kewaunee,Wisconsin,55061,54,1 +2020-06-28,Kewaunee,Wisconsin,55061,55,1 +2020-06-29,Kewaunee,Wisconsin,55061,55,1 +2020-06-30,Kewaunee,Wisconsin,55061,56,1 +2020-07-01,Kewaunee,Wisconsin,55061,59,1 +2020-07-02,Kewaunee,Wisconsin,55061,60,1 +2020-07-03,Kewaunee,Wisconsin,55061,61,1 +2020-07-04,Kewaunee,Wisconsin,55061,62,1 +2020-07-05,Kewaunee,Wisconsin,55061,63,1 +2020-07-06,Kewaunee,Wisconsin,55061,64,1 +2020-07-07,Kewaunee,Wisconsin,55061,64,1 +2020-07-08,Kewaunee,Wisconsin,55061,67,1 +2020-07-09,Kewaunee,Wisconsin,55061,69,1 +2020-03-18,La Crosse,Wisconsin,55063,1,0 +2020-03-19,La Crosse,Wisconsin,55063,2,0 +2020-03-20,La Crosse,Wisconsin,55063,4,0 +2020-03-21,La Crosse,Wisconsin,55063,5,0 +2020-03-22,La Crosse,Wisconsin,55063,5,0 +2020-03-23,La Crosse,Wisconsin,55063,5,0 +2020-03-24,La Crosse,Wisconsin,55063,5,0 +2020-03-25,La Crosse,Wisconsin,55063,12,0 +2020-03-26,La Crosse,Wisconsin,55063,12,0 +2020-03-27,La Crosse,Wisconsin,55063,15,0 +2020-03-28,La Crosse,Wisconsin,55063,15,0 +2020-03-29,La Crosse,Wisconsin,55063,15,0 +2020-03-30,La Crosse,Wisconsin,55063,16,0 +2020-03-31,La Crosse,Wisconsin,55063,19,0 +2020-04-01,La Crosse,Wisconsin,55063,19,0 +2020-04-02,La Crosse,Wisconsin,55063,19,0 +2020-04-03,La Crosse,Wisconsin,55063,19,0 +2020-04-04,La Crosse,Wisconsin,55063,21,0 +2020-04-05,La Crosse,Wisconsin,55063,21,0 +2020-04-06,La Crosse,Wisconsin,55063,22,0 +2020-04-07,La Crosse,Wisconsin,55063,22,0 +2020-04-08,La Crosse,Wisconsin,55063,22,0 +2020-04-09,La Crosse,Wisconsin,55063,23,0 +2020-04-10,La Crosse,Wisconsin,55063,25,0 +2020-04-11,La Crosse,Wisconsin,55063,25,0 +2020-04-12,La Crosse,Wisconsin,55063,25,0 +2020-04-13,La Crosse,Wisconsin,55063,25,0 +2020-04-14,La Crosse,Wisconsin,55063,25,0 +2020-04-15,La Crosse,Wisconsin,55063,25,0 +2020-04-16,La Crosse,Wisconsin,55063,25,0 +2020-04-17,La Crosse,Wisconsin,55063,25,0 +2020-04-18,La Crosse,Wisconsin,55063,25,0 +2020-04-19,La Crosse,Wisconsin,55063,25,0 +2020-04-20,La Crosse,Wisconsin,55063,25,0 +2020-04-21,La Crosse,Wisconsin,55063,25,0 +2020-04-22,La Crosse,Wisconsin,55063,25,0 +2020-04-23,La Crosse,Wisconsin,55063,25,0 +2020-04-24,La Crosse,Wisconsin,55063,25,0 +2020-04-25,La Crosse,Wisconsin,55063,26,0 +2020-04-26,La Crosse,Wisconsin,55063,26,0 +2020-04-27,La Crosse,Wisconsin,55063,26,0 +2020-04-28,La Crosse,Wisconsin,55063,27,0 +2020-04-29,La Crosse,Wisconsin,55063,27,0 +2020-04-30,La Crosse,Wisconsin,55063,28,0 +2020-05-01,La Crosse,Wisconsin,55063,28,0 +2020-05-02,La Crosse,Wisconsin,55063,29,0 +2020-05-03,La Crosse,Wisconsin,55063,29,0 +2020-05-04,La Crosse,Wisconsin,55063,31,0 +2020-05-05,La Crosse,Wisconsin,55063,32,0 +2020-05-06,La Crosse,Wisconsin,55063,32,0 +2020-05-07,La Crosse,Wisconsin,55063,32,0 +2020-05-08,La Crosse,Wisconsin,55063,32,0 +2020-05-09,La Crosse,Wisconsin,55063,32,0 +2020-05-10,La Crosse,Wisconsin,55063,33,0 +2020-05-11,La Crosse,Wisconsin,55063,32,0 +2020-05-12,La Crosse,Wisconsin,55063,34,0 +2020-05-13,La Crosse,Wisconsin,55063,34,0 +2020-05-14,La Crosse,Wisconsin,55063,37,0 +2020-05-15,La Crosse,Wisconsin,55063,42,0 +2020-05-16,La Crosse,Wisconsin,55063,44,0 +2020-05-17,La Crosse,Wisconsin,55063,45,0 +2020-05-18,La Crosse,Wisconsin,55063,45,0 +2020-05-19,La Crosse,Wisconsin,55063,47,0 +2020-05-20,La Crosse,Wisconsin,55063,47,0 +2020-05-21,La Crosse,Wisconsin,55063,47,0 +2020-05-22,La Crosse,Wisconsin,55063,48,0 +2020-05-23,La Crosse,Wisconsin,55063,48,0 +2020-05-24,La Crosse,Wisconsin,55063,47,0 +2020-05-25,La Crosse,Wisconsin,55063,48,0 +2020-05-26,La Crosse,Wisconsin,55063,51,0 +2020-05-27,La Crosse,Wisconsin,55063,51,0 +2020-05-28,La Crosse,Wisconsin,55063,51,0 +2020-05-29,La Crosse,Wisconsin,55063,53,0 +2020-05-30,La Crosse,Wisconsin,55063,53,0 +2020-05-31,La Crosse,Wisconsin,55063,53,0 +2020-06-01,La Crosse,Wisconsin,55063,53,0 +2020-06-02,La Crosse,Wisconsin,55063,55,0 +2020-06-03,La Crosse,Wisconsin,55063,58,0 +2020-06-04,La Crosse,Wisconsin,55063,64,0 +2020-06-05,La Crosse,Wisconsin,55063,68,0 +2020-06-06,La Crosse,Wisconsin,55063,68,0 +2020-06-07,La Crosse,Wisconsin,55063,69,0 +2020-06-08,La Crosse,Wisconsin,55063,70,0 +2020-06-09,La Crosse,Wisconsin,55063,77,0 +2020-06-10,La Crosse,Wisconsin,55063,81,0 +2020-06-11,La Crosse,Wisconsin,55063,94,0 +2020-06-12,La Crosse,Wisconsin,55063,100,0 +2020-06-13,La Crosse,Wisconsin,55063,110,0 +2020-06-14,La Crosse,Wisconsin,55063,116,0 +2020-06-15,La Crosse,Wisconsin,55063,123,0 +2020-06-16,La Crosse,Wisconsin,55063,132,0 +2020-06-17,La Crosse,Wisconsin,55063,152,0 +2020-06-18,La Crosse,Wisconsin,55063,179,0 +2020-06-19,La Crosse,Wisconsin,55063,203,0 +2020-06-20,La Crosse,Wisconsin,55063,229,0 +2020-06-21,La Crosse,Wisconsin,55063,250,0 +2020-06-22,La Crosse,Wisconsin,55063,274,0 +2020-06-23,La Crosse,Wisconsin,55063,294,0 +2020-06-24,La Crosse,Wisconsin,55063,316,0 +2020-06-25,La Crosse,Wisconsin,55063,343,0 +2020-06-26,La Crosse,Wisconsin,55063,371,0 +2020-06-27,La Crosse,Wisconsin,55063,396,0 +2020-06-28,La Crosse,Wisconsin,55063,403,0 +2020-06-29,La Crosse,Wisconsin,55063,404,0 +2020-06-30,La Crosse,Wisconsin,55063,432,0 +2020-07-01,La Crosse,Wisconsin,55063,455,0 +2020-07-02,La Crosse,Wisconsin,55063,492,0 +2020-07-03,La Crosse,Wisconsin,55063,497,0 +2020-07-04,La Crosse,Wisconsin,55063,510,0 +2020-07-05,La Crosse,Wisconsin,55063,515,0 +2020-07-06,La Crosse,Wisconsin,55063,519,0 +2020-07-07,La Crosse,Wisconsin,55063,524,0 +2020-07-08,La Crosse,Wisconsin,55063,540,0 +2020-07-09,La Crosse,Wisconsin,55063,556,0 +2020-04-07,Lafayette,Wisconsin,55065,1,0 +2020-04-08,Lafayette,Wisconsin,55065,1,0 +2020-04-09,Lafayette,Wisconsin,55065,2,0 +2020-04-10,Lafayette,Wisconsin,55065,2,0 +2020-04-11,Lafayette,Wisconsin,55065,3,0 +2020-04-12,Lafayette,Wisconsin,55065,3,0 +2020-04-13,Lafayette,Wisconsin,55065,3,0 +2020-04-14,Lafayette,Wisconsin,55065,3,0 +2020-04-15,Lafayette,Wisconsin,55065,3,0 +2020-04-16,Lafayette,Wisconsin,55065,3,0 +2020-04-17,Lafayette,Wisconsin,55065,3,0 +2020-04-18,Lafayette,Wisconsin,55065,3,0 +2020-04-19,Lafayette,Wisconsin,55065,3,0 +2020-04-20,Lafayette,Wisconsin,55065,3,0 +2020-04-21,Lafayette,Wisconsin,55065,3,0 +2020-04-22,Lafayette,Wisconsin,55065,4,0 +2020-04-23,Lafayette,Wisconsin,55065,4,0 +2020-04-24,Lafayette,Wisconsin,55065,4,0 +2020-04-25,Lafayette,Wisconsin,55065,4,0 +2020-04-26,Lafayette,Wisconsin,55065,4,0 +2020-04-27,Lafayette,Wisconsin,55065,4,0 +2020-04-28,Lafayette,Wisconsin,55065,4,0 +2020-04-29,Lafayette,Wisconsin,55065,4,0 +2020-04-30,Lafayette,Wisconsin,55065,4,0 +2020-05-01,Lafayette,Wisconsin,55065,6,0 +2020-05-02,Lafayette,Wisconsin,55065,6,0 +2020-05-03,Lafayette,Wisconsin,55065,6,0 +2020-05-04,Lafayette,Wisconsin,55065,6,0 +2020-05-05,Lafayette,Wisconsin,55065,6,0 +2020-05-06,Lafayette,Wisconsin,55065,8,0 +2020-05-07,Lafayette,Wisconsin,55065,9,0 +2020-05-08,Lafayette,Wisconsin,55065,9,0 +2020-05-09,Lafayette,Wisconsin,55065,13,0 +2020-05-10,Lafayette,Wisconsin,55065,13,0 +2020-05-11,Lafayette,Wisconsin,55065,13,0 +2020-05-12,Lafayette,Wisconsin,55065,13,0 +2020-05-13,Lafayette,Wisconsin,55065,14,0 +2020-05-14,Lafayette,Wisconsin,55065,15,0 +2020-05-15,Lafayette,Wisconsin,55065,16,0 +2020-05-16,Lafayette,Wisconsin,55065,16,0 +2020-05-17,Lafayette,Wisconsin,55065,16,0 +2020-05-18,Lafayette,Wisconsin,55065,16,0 +2020-05-19,Lafayette,Wisconsin,55065,16,0 +2020-05-20,Lafayette,Wisconsin,55065,17,0 +2020-05-21,Lafayette,Wisconsin,55065,16,0 +2020-05-22,Lafayette,Wisconsin,55065,17,0 +2020-05-23,Lafayette,Wisconsin,55065,18,0 +2020-05-24,Lafayette,Wisconsin,55065,20,0 +2020-05-25,Lafayette,Wisconsin,55065,22,0 +2020-05-26,Lafayette,Wisconsin,55065,25,0 +2020-05-27,Lafayette,Wisconsin,55065,25,0 +2020-05-28,Lafayette,Wisconsin,55065,26,0 +2020-05-29,Lafayette,Wisconsin,55065,27,0 +2020-05-30,Lafayette,Wisconsin,55065,27,0 +2020-05-31,Lafayette,Wisconsin,55065,27,0 +2020-06-01,Lafayette,Wisconsin,55065,27,0 +2020-06-02,Lafayette,Wisconsin,55065,27,0 +2020-06-03,Lafayette,Wisconsin,55065,27,0 +2020-06-04,Lafayette,Wisconsin,55065,28,0 +2020-06-05,Lafayette,Wisconsin,55065,29,0 +2020-06-06,Lafayette,Wisconsin,55065,30,0 +2020-06-07,Lafayette,Wisconsin,55065,33,0 +2020-06-08,Lafayette,Wisconsin,55065,33,0 +2020-06-09,Lafayette,Wisconsin,55065,35,0 +2020-06-10,Lafayette,Wisconsin,55065,36,0 +2020-06-11,Lafayette,Wisconsin,55065,36,0 +2020-06-12,Lafayette,Wisconsin,55065,38,0 +2020-06-13,Lafayette,Wisconsin,55065,41,0 +2020-06-14,Lafayette,Wisconsin,55065,41,0 +2020-06-15,Lafayette,Wisconsin,55065,43,0 +2020-06-16,Lafayette,Wisconsin,55065,43,0 +2020-06-17,Lafayette,Wisconsin,55065,43,0 +2020-06-18,Lafayette,Wisconsin,55065,48,0 +2020-06-19,Lafayette,Wisconsin,55065,49,0 +2020-06-20,Lafayette,Wisconsin,55065,53,0 +2020-06-21,Lafayette,Wisconsin,55065,54,0 +2020-06-22,Lafayette,Wisconsin,55065,56,0 +2020-06-23,Lafayette,Wisconsin,55065,60,0 +2020-06-24,Lafayette,Wisconsin,55065,61,0 +2020-06-25,Lafayette,Wisconsin,55065,62,0 +2020-06-26,Lafayette,Wisconsin,55065,66,0 +2020-06-27,Lafayette,Wisconsin,55065,68,0 +2020-06-28,Lafayette,Wisconsin,55065,70,0 +2020-06-29,Lafayette,Wisconsin,55065,70,0 +2020-06-30,Lafayette,Wisconsin,55065,74,0 +2020-07-01,Lafayette,Wisconsin,55065,74,0 +2020-07-02,Lafayette,Wisconsin,55065,74,0 +2020-07-03,Lafayette,Wisconsin,55065,74,0 +2020-07-04,Lafayette,Wisconsin,55065,76,0 +2020-07-05,Lafayette,Wisconsin,55065,76,0 +2020-07-06,Lafayette,Wisconsin,55065,76,0 +2020-07-07,Lafayette,Wisconsin,55065,76,0 +2020-07-08,Lafayette,Wisconsin,55065,76,0 +2020-07-09,Lafayette,Wisconsin,55065,76,0 +2020-05-21,Langlade,Wisconsin,55067,1,0 +2020-05-22,Langlade,Wisconsin,55067,1,0 +2020-05-23,Langlade,Wisconsin,55067,1,0 +2020-05-24,Langlade,Wisconsin,55067,1,0 +2020-05-25,Langlade,Wisconsin,55067,1,0 +2020-05-26,Langlade,Wisconsin,55067,3,0 +2020-05-27,Langlade,Wisconsin,55067,2,0 +2020-05-28,Langlade,Wisconsin,55067,2,0 +2020-05-29,Langlade,Wisconsin,55067,2,0 +2020-05-30,Langlade,Wisconsin,55067,2,0 +2020-05-31,Langlade,Wisconsin,55067,3,0 +2020-06-01,Langlade,Wisconsin,55067,3,0 +2020-06-02,Langlade,Wisconsin,55067,3,0 +2020-06-03,Langlade,Wisconsin,55067,3,0 +2020-06-04,Langlade,Wisconsin,55067,4,0 +2020-06-05,Langlade,Wisconsin,55067,4,0 +2020-06-06,Langlade,Wisconsin,55067,4,0 +2020-06-07,Langlade,Wisconsin,55067,4,0 +2020-06-08,Langlade,Wisconsin,55067,8,0 +2020-06-09,Langlade,Wisconsin,55067,5,0 +2020-06-10,Langlade,Wisconsin,55067,5,0 +2020-06-11,Langlade,Wisconsin,55067,6,0 +2020-06-12,Langlade,Wisconsin,55067,5,0 +2020-06-13,Langlade,Wisconsin,55067,5,0 +2020-06-14,Langlade,Wisconsin,55067,5,0 +2020-06-15,Langlade,Wisconsin,55067,6,0 +2020-06-16,Langlade,Wisconsin,55067,6,0 +2020-06-17,Langlade,Wisconsin,55067,6,0 +2020-06-18,Langlade,Wisconsin,55067,7,0 +2020-06-19,Langlade,Wisconsin,55067,7,0 +2020-06-20,Langlade,Wisconsin,55067,7,0 +2020-06-21,Langlade,Wisconsin,55067,7,0 +2020-06-22,Langlade,Wisconsin,55067,7,0 +2020-06-23,Langlade,Wisconsin,55067,7,0 +2020-06-24,Langlade,Wisconsin,55067,7,0 +2020-06-25,Langlade,Wisconsin,55067,8,0 +2020-06-26,Langlade,Wisconsin,55067,7,0 +2020-06-27,Langlade,Wisconsin,55067,7,0 +2020-06-28,Langlade,Wisconsin,55067,7,0 +2020-06-29,Langlade,Wisconsin,55067,8,0 +2020-06-30,Langlade,Wisconsin,55067,8,0 +2020-07-01,Langlade,Wisconsin,55067,10,0 +2020-07-02,Langlade,Wisconsin,55067,10,0 +2020-07-03,Langlade,Wisconsin,55067,11,0 +2020-07-04,Langlade,Wisconsin,55067,11,0 +2020-07-05,Langlade,Wisconsin,55067,11,0 +2020-07-06,Langlade,Wisconsin,55067,11,0 +2020-07-07,Langlade,Wisconsin,55067,11,0 +2020-07-08,Langlade,Wisconsin,55067,11,1 +2020-07-09,Langlade,Wisconsin,55067,10,1 +2020-05-01,Lincoln,Wisconsin,55069,1,0 +2020-05-02,Lincoln,Wisconsin,55069,1,0 +2020-05-03,Lincoln,Wisconsin,55069,1,0 +2020-05-04,Lincoln,Wisconsin,55069,1,0 +2020-05-05,Lincoln,Wisconsin,55069,1,0 +2020-05-06,Lincoln,Wisconsin,55069,1,0 +2020-05-07,Lincoln,Wisconsin,55069,1,0 +2020-05-08,Lincoln,Wisconsin,55069,1,0 +2020-05-09,Lincoln,Wisconsin,55069,1,0 +2020-05-10,Lincoln,Wisconsin,55069,1,0 +2020-05-11,Lincoln,Wisconsin,55069,1,0 +2020-05-12,Lincoln,Wisconsin,55069,1,0 +2020-05-13,Lincoln,Wisconsin,55069,1,0 +2020-05-14,Lincoln,Wisconsin,55069,2,0 +2020-05-15,Lincoln,Wisconsin,55069,2,0 +2020-05-16,Lincoln,Wisconsin,55069,3,0 +2020-05-17,Lincoln,Wisconsin,55069,3,0 +2020-05-18,Lincoln,Wisconsin,55069,3,0 +2020-05-19,Lincoln,Wisconsin,55069,3,0 +2020-05-20,Lincoln,Wisconsin,55069,3,0 +2020-05-21,Lincoln,Wisconsin,55069,3,0 +2020-05-22,Lincoln,Wisconsin,55069,3,0 +2020-05-23,Lincoln,Wisconsin,55069,3,0 +2020-05-24,Lincoln,Wisconsin,55069,4,0 +2020-05-25,Lincoln,Wisconsin,55069,4,0 +2020-05-26,Lincoln,Wisconsin,55069,5,0 +2020-05-27,Lincoln,Wisconsin,55069,5,0 +2020-05-28,Lincoln,Wisconsin,55069,7,0 +2020-05-29,Lincoln,Wisconsin,55069,7,0 +2020-05-30,Lincoln,Wisconsin,55069,7,0 +2020-05-31,Lincoln,Wisconsin,55069,7,0 +2020-06-01,Lincoln,Wisconsin,55069,7,0 +2020-06-02,Lincoln,Wisconsin,55069,7,0 +2020-06-03,Lincoln,Wisconsin,55069,7,0 +2020-06-04,Lincoln,Wisconsin,55069,7,0 +2020-06-05,Lincoln,Wisconsin,55069,7,0 +2020-06-06,Lincoln,Wisconsin,55069,7,0 +2020-06-07,Lincoln,Wisconsin,55069,7,0 +2020-06-08,Lincoln,Wisconsin,55069,7,0 +2020-06-09,Lincoln,Wisconsin,55069,7,0 +2020-06-10,Lincoln,Wisconsin,55069,7,0 +2020-06-11,Lincoln,Wisconsin,55069,7,0 +2020-06-12,Lincoln,Wisconsin,55069,7,0 +2020-06-13,Lincoln,Wisconsin,55069,7,0 +2020-06-14,Lincoln,Wisconsin,55069,8,0 +2020-06-15,Lincoln,Wisconsin,55069,8,0 +2020-06-16,Lincoln,Wisconsin,55069,7,0 +2020-06-17,Lincoln,Wisconsin,55069,8,0 +2020-06-18,Lincoln,Wisconsin,55069,8,0 +2020-06-19,Lincoln,Wisconsin,55069,8,0 +2020-06-20,Lincoln,Wisconsin,55069,8,0 +2020-06-21,Lincoln,Wisconsin,55069,8,0 +2020-06-22,Lincoln,Wisconsin,55069,8,0 +2020-06-23,Lincoln,Wisconsin,55069,8,0 +2020-06-24,Lincoln,Wisconsin,55069,8,0 +2020-06-25,Lincoln,Wisconsin,55069,8,0 +2020-06-26,Lincoln,Wisconsin,55069,9,0 +2020-06-27,Lincoln,Wisconsin,55069,9,0 +2020-06-28,Lincoln,Wisconsin,55069,9,0 +2020-06-29,Lincoln,Wisconsin,55069,9,0 +2020-06-30,Lincoln,Wisconsin,55069,10,0 +2020-07-01,Lincoln,Wisconsin,55069,10,0 +2020-07-02,Lincoln,Wisconsin,55069,11,0 +2020-07-03,Lincoln,Wisconsin,55069,12,0 +2020-07-04,Lincoln,Wisconsin,55069,14,0 +2020-07-05,Lincoln,Wisconsin,55069,15,0 +2020-07-06,Lincoln,Wisconsin,55069,15,0 +2020-07-07,Lincoln,Wisconsin,55069,17,0 +2020-07-08,Lincoln,Wisconsin,55069,18,0 +2020-07-09,Lincoln,Wisconsin,55069,21,0 +2020-04-04,Manitowoc,Wisconsin,55071,1,0 +2020-04-05,Manitowoc,Wisconsin,55071,3,0 +2020-04-06,Manitowoc,Wisconsin,55071,3,0 +2020-04-07,Manitowoc,Wisconsin,55071,3,0 +2020-04-08,Manitowoc,Wisconsin,55071,4,0 +2020-04-09,Manitowoc,Wisconsin,55071,3,0 +2020-04-10,Manitowoc,Wisconsin,55071,3,0 +2020-04-11,Manitowoc,Wisconsin,55071,3,0 +2020-04-12,Manitowoc,Wisconsin,55071,3,0 +2020-04-13,Manitowoc,Wisconsin,55071,3,0 +2020-04-14,Manitowoc,Wisconsin,55071,4,0 +2020-04-15,Manitowoc,Wisconsin,55071,4,0 +2020-04-16,Manitowoc,Wisconsin,55071,5,0 +2020-04-17,Manitowoc,Wisconsin,55071,5,0 +2020-04-18,Manitowoc,Wisconsin,55071,6,0 +2020-04-19,Manitowoc,Wisconsin,55071,6,0 +2020-04-20,Manitowoc,Wisconsin,55071,7,0 +2020-04-21,Manitowoc,Wisconsin,55071,7,0 +2020-04-22,Manitowoc,Wisconsin,55071,7,0 +2020-04-23,Manitowoc,Wisconsin,55071,7,0 +2020-04-24,Manitowoc,Wisconsin,55071,9,0 +2020-04-25,Manitowoc,Wisconsin,55071,9,0 +2020-04-26,Manitowoc,Wisconsin,55071,10,1 +2020-04-27,Manitowoc,Wisconsin,55071,11,1 +2020-04-28,Manitowoc,Wisconsin,55071,11,1 +2020-04-29,Manitowoc,Wisconsin,55071,11,1 +2020-04-30,Manitowoc,Wisconsin,55071,11,1 +2020-05-01,Manitowoc,Wisconsin,55071,11,1 +2020-05-02,Manitowoc,Wisconsin,55071,13,1 +2020-05-03,Manitowoc,Wisconsin,55071,13,1 +2020-05-04,Manitowoc,Wisconsin,55071,14,1 +2020-05-05,Manitowoc,Wisconsin,55071,16,1 +2020-05-06,Manitowoc,Wisconsin,55071,17,1 +2020-05-07,Manitowoc,Wisconsin,55071,17,1 +2020-05-08,Manitowoc,Wisconsin,55071,17,1 +2020-05-09,Manitowoc,Wisconsin,55071,19,1 +2020-05-10,Manitowoc,Wisconsin,55071,19,1 +2020-05-11,Manitowoc,Wisconsin,55071,19,1 +2020-05-12,Manitowoc,Wisconsin,55071,20,1 +2020-05-13,Manitowoc,Wisconsin,55071,20,1 +2020-05-14,Manitowoc,Wisconsin,55071,20,1 +2020-05-15,Manitowoc,Wisconsin,55071,21,1 +2020-05-16,Manitowoc,Wisconsin,55071,21,1 +2020-05-17,Manitowoc,Wisconsin,55071,22,1 +2020-05-18,Manitowoc,Wisconsin,55071,22,1 +2020-05-19,Manitowoc,Wisconsin,55071,25,1 +2020-05-20,Manitowoc,Wisconsin,55071,26,1 +2020-05-21,Manitowoc,Wisconsin,55071,28,1 +2020-05-22,Manitowoc,Wisconsin,55071,28,1 +2020-05-23,Manitowoc,Wisconsin,55071,28,1 +2020-05-24,Manitowoc,Wisconsin,55071,29,1 +2020-05-25,Manitowoc,Wisconsin,55071,29,1 +2020-05-26,Manitowoc,Wisconsin,55071,31,1 +2020-05-27,Manitowoc,Wisconsin,55071,32,1 +2020-05-28,Manitowoc,Wisconsin,55071,36,1 +2020-05-29,Manitowoc,Wisconsin,55071,36,1 +2020-05-30,Manitowoc,Wisconsin,55071,36,1 +2020-05-31,Manitowoc,Wisconsin,55071,36,1 +2020-06-01,Manitowoc,Wisconsin,55071,36,1 +2020-06-02,Manitowoc,Wisconsin,55071,36,1 +2020-06-03,Manitowoc,Wisconsin,55071,38,1 +2020-06-04,Manitowoc,Wisconsin,55071,38,1 +2020-06-05,Manitowoc,Wisconsin,55071,39,1 +2020-06-06,Manitowoc,Wisconsin,55071,39,1 +2020-06-07,Manitowoc,Wisconsin,55071,39,1 +2020-06-08,Manitowoc,Wisconsin,55071,40,1 +2020-06-09,Manitowoc,Wisconsin,55071,40,1 +2020-06-10,Manitowoc,Wisconsin,55071,40,1 +2020-06-11,Manitowoc,Wisconsin,55071,40,1 +2020-06-12,Manitowoc,Wisconsin,55071,42,1 +2020-06-13,Manitowoc,Wisconsin,55071,42,1 +2020-06-14,Manitowoc,Wisconsin,55071,45,1 +2020-06-15,Manitowoc,Wisconsin,55071,47,1 +2020-06-16,Manitowoc,Wisconsin,55071,48,1 +2020-06-17,Manitowoc,Wisconsin,55071,50,1 +2020-06-18,Manitowoc,Wisconsin,55071,56,1 +2020-06-19,Manitowoc,Wisconsin,55071,58,1 +2020-06-20,Manitowoc,Wisconsin,55071,63,1 +2020-06-21,Manitowoc,Wisconsin,55071,68,1 +2020-06-22,Manitowoc,Wisconsin,55071,70,1 +2020-06-23,Manitowoc,Wisconsin,55071,76,1 +2020-06-24,Manitowoc,Wisconsin,55071,81,1 +2020-06-25,Manitowoc,Wisconsin,55071,81,1 +2020-06-26,Manitowoc,Wisconsin,55071,83,1 +2020-06-27,Manitowoc,Wisconsin,55071,87,1 +2020-06-28,Manitowoc,Wisconsin,55071,91,1 +2020-06-29,Manitowoc,Wisconsin,55071,92,1 +2020-06-30,Manitowoc,Wisconsin,55071,94,1 +2020-07-01,Manitowoc,Wisconsin,55071,99,1 +2020-07-02,Manitowoc,Wisconsin,55071,100,1 +2020-07-03,Manitowoc,Wisconsin,55071,104,1 +2020-07-04,Manitowoc,Wisconsin,55071,108,1 +2020-07-05,Manitowoc,Wisconsin,55071,114,1 +2020-07-06,Manitowoc,Wisconsin,55071,116,1 +2020-07-07,Manitowoc,Wisconsin,55071,122,1 +2020-07-08,Manitowoc,Wisconsin,55071,128,1 +2020-07-09,Manitowoc,Wisconsin,55071,132,1 +2020-03-20,Marathon,Wisconsin,55073,1,0 +2020-03-21,Marathon,Wisconsin,55073,1,0 +2020-03-22,Marathon,Wisconsin,55073,1,0 +2020-03-23,Marathon,Wisconsin,55073,1,0 +2020-03-24,Marathon,Wisconsin,55073,1,0 +2020-03-25,Marathon,Wisconsin,55073,1,0 +2020-03-26,Marathon,Wisconsin,55073,1,0 +2020-03-27,Marathon,Wisconsin,55073,1,0 +2020-03-28,Marathon,Wisconsin,55073,1,0 +2020-03-29,Marathon,Wisconsin,55073,1,0 +2020-03-30,Marathon,Wisconsin,55073,2,0 +2020-03-31,Marathon,Wisconsin,55073,3,0 +2020-04-01,Marathon,Wisconsin,55073,5,0 +2020-04-02,Marathon,Wisconsin,55073,8,0 +2020-04-03,Marathon,Wisconsin,55073,9,0 +2020-04-04,Marathon,Wisconsin,55073,11,0 +2020-04-05,Marathon,Wisconsin,55073,12,0 +2020-04-06,Marathon,Wisconsin,55073,12,0 +2020-04-07,Marathon,Wisconsin,55073,12,0 +2020-04-08,Marathon,Wisconsin,55073,12,0 +2020-04-09,Marathon,Wisconsin,55073,12,0 +2020-04-10,Marathon,Wisconsin,55073,12,0 +2020-04-11,Marathon,Wisconsin,55073,13,1 +2020-04-12,Marathon,Wisconsin,55073,13,1 +2020-04-13,Marathon,Wisconsin,55073,14,1 +2020-04-14,Marathon,Wisconsin,55073,14,1 +2020-04-15,Marathon,Wisconsin,55073,14,1 +2020-04-16,Marathon,Wisconsin,55073,14,1 +2020-04-17,Marathon,Wisconsin,55073,16,1 +2020-04-18,Marathon,Wisconsin,55073,17,1 +2020-04-19,Marathon,Wisconsin,55073,17,1 +2020-04-20,Marathon,Wisconsin,55073,17,1 +2020-04-21,Marathon,Wisconsin,55073,17,1 +2020-04-22,Marathon,Wisconsin,55073,17,1 +2020-04-23,Marathon,Wisconsin,55073,17,1 +2020-04-24,Marathon,Wisconsin,55073,17,1 +2020-04-25,Marathon,Wisconsin,55073,18,1 +2020-04-26,Marathon,Wisconsin,55073,17,1 +2020-04-27,Marathon,Wisconsin,55073,17,1 +2020-04-28,Marathon,Wisconsin,55073,17,1 +2020-04-29,Marathon,Wisconsin,55073,17,1 +2020-04-30,Marathon,Wisconsin,55073,18,1 +2020-05-01,Marathon,Wisconsin,55073,18,1 +2020-05-02,Marathon,Wisconsin,55073,19,1 +2020-05-03,Marathon,Wisconsin,55073,19,1 +2020-05-04,Marathon,Wisconsin,55073,19,1 +2020-05-05,Marathon,Wisconsin,55073,21,1 +2020-05-06,Marathon,Wisconsin,55073,21,1 +2020-05-07,Marathon,Wisconsin,55073,21,1 +2020-05-08,Marathon,Wisconsin,55073,22,1 +2020-05-09,Marathon,Wisconsin,55073,24,1 +2020-05-10,Marathon,Wisconsin,55073,24,1 +2020-05-11,Marathon,Wisconsin,55073,25,1 +2020-05-12,Marathon,Wisconsin,55073,25,1 +2020-05-13,Marathon,Wisconsin,55073,28,1 +2020-05-14,Marathon,Wisconsin,55073,29,1 +2020-05-15,Marathon,Wisconsin,55073,31,1 +2020-05-16,Marathon,Wisconsin,55073,32,1 +2020-05-17,Marathon,Wisconsin,55073,33,1 +2020-05-18,Marathon,Wisconsin,55073,33,1 +2020-05-19,Marathon,Wisconsin,55073,34,1 +2020-05-20,Marathon,Wisconsin,55073,35,1 +2020-05-21,Marathon,Wisconsin,55073,35,1 +2020-05-22,Marathon,Wisconsin,55073,36,1 +2020-05-23,Marathon,Wisconsin,55073,38,1 +2020-05-24,Marathon,Wisconsin,55073,41,1 +2020-05-25,Marathon,Wisconsin,55073,42,1 +2020-05-26,Marathon,Wisconsin,55073,42,1 +2020-05-27,Marathon,Wisconsin,55073,43,1 +2020-05-28,Marathon,Wisconsin,55073,43,1 +2020-05-29,Marathon,Wisconsin,55073,46,1 +2020-05-30,Marathon,Wisconsin,55073,51,1 +2020-05-31,Marathon,Wisconsin,55073,50,1 +2020-06-01,Marathon,Wisconsin,55073,50,1 +2020-06-02,Marathon,Wisconsin,55073,52,1 +2020-06-03,Marathon,Wisconsin,55073,55,1 +2020-06-04,Marathon,Wisconsin,55073,55,1 +2020-06-05,Marathon,Wisconsin,55073,57,1 +2020-06-06,Marathon,Wisconsin,55073,63,1 +2020-06-07,Marathon,Wisconsin,55073,64,1 +2020-06-08,Marathon,Wisconsin,55073,64,1 +2020-06-09,Marathon,Wisconsin,55073,66,1 +2020-06-10,Marathon,Wisconsin,55073,69,1 +2020-06-11,Marathon,Wisconsin,55073,70,1 +2020-06-12,Marathon,Wisconsin,55073,80,1 +2020-06-13,Marathon,Wisconsin,55073,79,1 +2020-06-14,Marathon,Wisconsin,55073,82,1 +2020-06-15,Marathon,Wisconsin,55073,82,1 +2020-06-16,Marathon,Wisconsin,55073,83,1 +2020-06-17,Marathon,Wisconsin,55073,88,1 +2020-06-18,Marathon,Wisconsin,55073,95,1 +2020-06-19,Marathon,Wisconsin,55073,101,1 +2020-06-20,Marathon,Wisconsin,55073,107,1 +2020-06-21,Marathon,Wisconsin,55073,111,1 +2020-06-22,Marathon,Wisconsin,55073,115,1 +2020-06-23,Marathon,Wisconsin,55073,121,1 +2020-06-24,Marathon,Wisconsin,55073,130,1 +2020-06-25,Marathon,Wisconsin,55073,137,1 +2020-06-26,Marathon,Wisconsin,55073,140,1 +2020-06-27,Marathon,Wisconsin,55073,148,1 +2020-06-28,Marathon,Wisconsin,55073,150,1 +2020-06-29,Marathon,Wisconsin,55073,158,1 +2020-06-30,Marathon,Wisconsin,55073,168,1 +2020-07-01,Marathon,Wisconsin,55073,174,1 +2020-07-02,Marathon,Wisconsin,55073,186,1 +2020-07-03,Marathon,Wisconsin,55073,189,1 +2020-07-04,Marathon,Wisconsin,55073,201,1 +2020-07-05,Marathon,Wisconsin,55073,210,1 +2020-07-06,Marathon,Wisconsin,55073,225,1 +2020-07-07,Marathon,Wisconsin,55073,226,1 +2020-07-08,Marathon,Wisconsin,55073,233,1 +2020-07-09,Marathon,Wisconsin,55073,240,1 +2020-03-27,Marinette,Wisconsin,55075,1,0 +2020-03-28,Marinette,Wisconsin,55075,1,0 +2020-03-29,Marinette,Wisconsin,55075,1,0 +2020-03-30,Marinette,Wisconsin,55075,1,0 +2020-03-31,Marinette,Wisconsin,55075,1,0 +2020-04-01,Marinette,Wisconsin,55075,2,0 +2020-04-02,Marinette,Wisconsin,55075,2,0 +2020-04-03,Marinette,Wisconsin,55075,2,0 +2020-04-04,Marinette,Wisconsin,55075,2,0 +2020-04-05,Marinette,Wisconsin,55075,2,0 +2020-04-06,Marinette,Wisconsin,55075,3,0 +2020-04-07,Marinette,Wisconsin,55075,3,0 +2020-04-08,Marinette,Wisconsin,55075,3,0 +2020-04-09,Marinette,Wisconsin,55075,3,0 +2020-04-10,Marinette,Wisconsin,55075,3,0 +2020-04-11,Marinette,Wisconsin,55075,3,0 +2020-04-12,Marinette,Wisconsin,55075,3,0 +2020-04-13,Marinette,Wisconsin,55075,3,0 +2020-04-14,Marinette,Wisconsin,55075,4,0 +2020-04-15,Marinette,Wisconsin,55075,4,1 +2020-04-16,Marinette,Wisconsin,55075,4,1 +2020-04-17,Marinette,Wisconsin,55075,4,1 +2020-04-18,Marinette,Wisconsin,55075,5,1 +2020-04-19,Marinette,Wisconsin,55075,5,1 +2020-04-20,Marinette,Wisconsin,55075,5,1 +2020-04-21,Marinette,Wisconsin,55075,6,1 +2020-04-22,Marinette,Wisconsin,55075,6,1 +2020-04-23,Marinette,Wisconsin,55075,8,1 +2020-04-24,Marinette,Wisconsin,55075,8,1 +2020-04-25,Marinette,Wisconsin,55075,7,1 +2020-04-26,Marinette,Wisconsin,55075,7,1 +2020-04-27,Marinette,Wisconsin,55075,7,1 +2020-04-28,Marinette,Wisconsin,55075,7,1 +2020-04-29,Marinette,Wisconsin,55075,7,1 +2020-04-30,Marinette,Wisconsin,55075,8,1 +2020-05-01,Marinette,Wisconsin,55075,10,1 +2020-05-02,Marinette,Wisconsin,55075,10,1 +2020-05-03,Marinette,Wisconsin,55075,11,1 +2020-05-04,Marinette,Wisconsin,55075,11,1 +2020-05-05,Marinette,Wisconsin,55075,11,1 +2020-05-06,Marinette,Wisconsin,55075,13,1 +2020-05-07,Marinette,Wisconsin,55075,13,1 +2020-05-08,Marinette,Wisconsin,55075,15,1 +2020-05-09,Marinette,Wisconsin,55075,16,1 +2020-05-10,Marinette,Wisconsin,55075,16,1 +2020-05-11,Marinette,Wisconsin,55075,21,1 +2020-05-12,Marinette,Wisconsin,55075,21,1 +2020-05-13,Marinette,Wisconsin,55075,21,1 +2020-05-14,Marinette,Wisconsin,55075,21,2 +2020-05-15,Marinette,Wisconsin,55075,21,2 +2020-05-16,Marinette,Wisconsin,55075,23,2 +2020-05-17,Marinette,Wisconsin,55075,24,2 +2020-05-18,Marinette,Wisconsin,55075,25,2 +2020-05-19,Marinette,Wisconsin,55075,25,2 +2020-05-20,Marinette,Wisconsin,55075,28,2 +2020-05-21,Marinette,Wisconsin,55075,28,2 +2020-05-22,Marinette,Wisconsin,55075,30,2 +2020-05-23,Marinette,Wisconsin,55075,31,2 +2020-05-24,Marinette,Wisconsin,55075,31,2 +2020-05-25,Marinette,Wisconsin,55075,32,2 +2020-05-26,Marinette,Wisconsin,55075,32,2 +2020-05-27,Marinette,Wisconsin,55075,32,2 +2020-05-28,Marinette,Wisconsin,55075,33,2 +2020-05-29,Marinette,Wisconsin,55075,33,2 +2020-05-30,Marinette,Wisconsin,55075,33,2 +2020-05-31,Marinette,Wisconsin,55075,33,2 +2020-06-01,Marinette,Wisconsin,55075,33,2 +2020-06-02,Marinette,Wisconsin,55075,32,2 +2020-06-03,Marinette,Wisconsin,55075,32,2 +2020-06-04,Marinette,Wisconsin,55075,33,2 +2020-06-05,Marinette,Wisconsin,55075,33,2 +2020-06-06,Marinette,Wisconsin,55075,33,3 +2020-06-07,Marinette,Wisconsin,55075,36,3 +2020-06-08,Marinette,Wisconsin,55075,36,3 +2020-06-09,Marinette,Wisconsin,55075,37,3 +2020-06-10,Marinette,Wisconsin,55075,37,3 +2020-06-11,Marinette,Wisconsin,55075,37,3 +2020-06-12,Marinette,Wisconsin,55075,37,3 +2020-06-13,Marinette,Wisconsin,55075,39,3 +2020-06-14,Marinette,Wisconsin,55075,39,3 +2020-06-15,Marinette,Wisconsin,55075,40,3 +2020-06-16,Marinette,Wisconsin,55075,40,3 +2020-06-17,Marinette,Wisconsin,55075,40,3 +2020-06-18,Marinette,Wisconsin,55075,40,3 +2020-06-19,Marinette,Wisconsin,55075,42,3 +2020-06-20,Marinette,Wisconsin,55075,42,3 +2020-06-21,Marinette,Wisconsin,55075,42,3 +2020-06-22,Marinette,Wisconsin,55075,42,3 +2020-06-23,Marinette,Wisconsin,55075,45,3 +2020-06-24,Marinette,Wisconsin,55075,45,3 +2020-06-25,Marinette,Wisconsin,55075,48,3 +2020-06-26,Marinette,Wisconsin,55075,49,3 +2020-06-27,Marinette,Wisconsin,55075,50,3 +2020-06-28,Marinette,Wisconsin,55075,53,3 +2020-06-29,Marinette,Wisconsin,55075,53,3 +2020-06-30,Marinette,Wisconsin,55075,56,3 +2020-07-01,Marinette,Wisconsin,55075,60,3 +2020-07-02,Marinette,Wisconsin,55075,60,3 +2020-07-03,Marinette,Wisconsin,55075,64,3 +2020-07-04,Marinette,Wisconsin,55075,65,3 +2020-07-05,Marinette,Wisconsin,55075,65,3 +2020-07-06,Marinette,Wisconsin,55075,68,3 +2020-07-07,Marinette,Wisconsin,55075,71,3 +2020-07-08,Marinette,Wisconsin,55075,73,3 +2020-07-09,Marinette,Wisconsin,55075,75,3 +2020-03-30,Marquette,Wisconsin,55077,2,0 +2020-03-31,Marquette,Wisconsin,55077,2,0 +2020-04-01,Marquette,Wisconsin,55077,2,0 +2020-04-02,Marquette,Wisconsin,55077,2,0 +2020-04-03,Marquette,Wisconsin,55077,2,0 +2020-04-04,Marquette,Wisconsin,55077,2,0 +2020-04-05,Marquette,Wisconsin,55077,2,0 +2020-04-06,Marquette,Wisconsin,55077,2,0 +2020-04-07,Marquette,Wisconsin,55077,2,0 +2020-04-08,Marquette,Wisconsin,55077,2,0 +2020-04-09,Marquette,Wisconsin,55077,2,0 +2020-04-10,Marquette,Wisconsin,55077,2,0 +2020-04-11,Marquette,Wisconsin,55077,2,0 +2020-04-12,Marquette,Wisconsin,55077,2,0 +2020-04-13,Marquette,Wisconsin,55077,2,0 +2020-04-14,Marquette,Wisconsin,55077,2,0 +2020-04-15,Marquette,Wisconsin,55077,3,0 +2020-04-16,Marquette,Wisconsin,55077,3,0 +2020-04-17,Marquette,Wisconsin,55077,3,0 +2020-04-18,Marquette,Wisconsin,55077,3,1 +2020-04-19,Marquette,Wisconsin,55077,3,1 +2020-04-20,Marquette,Wisconsin,55077,3,1 +2020-04-21,Marquette,Wisconsin,55077,3,1 +2020-04-22,Marquette,Wisconsin,55077,3,1 +2020-04-23,Marquette,Wisconsin,55077,3,1 +2020-04-24,Marquette,Wisconsin,55077,3,1 +2020-04-25,Marquette,Wisconsin,55077,3,1 +2020-04-26,Marquette,Wisconsin,55077,3,1 +2020-04-27,Marquette,Wisconsin,55077,3,1 +2020-04-28,Marquette,Wisconsin,55077,3,1 +2020-04-29,Marquette,Wisconsin,55077,3,1 +2020-04-30,Marquette,Wisconsin,55077,3,1 +2020-05-01,Marquette,Wisconsin,55077,3,1 +2020-05-02,Marquette,Wisconsin,55077,3,1 +2020-05-03,Marquette,Wisconsin,55077,3,1 +2020-05-04,Marquette,Wisconsin,55077,3,1 +2020-05-05,Marquette,Wisconsin,55077,3,1 +2020-05-06,Marquette,Wisconsin,55077,3,1 +2020-05-07,Marquette,Wisconsin,55077,3,1 +2020-05-08,Marquette,Wisconsin,55077,3,1 +2020-05-09,Marquette,Wisconsin,55077,3,1 +2020-05-10,Marquette,Wisconsin,55077,3,1 +2020-05-11,Marquette,Wisconsin,55077,3,1 +2020-05-12,Marquette,Wisconsin,55077,3,1 +2020-05-13,Marquette,Wisconsin,55077,3,1 +2020-05-14,Marquette,Wisconsin,55077,3,1 +2020-05-15,Marquette,Wisconsin,55077,3,1 +2020-05-16,Marquette,Wisconsin,55077,3,1 +2020-05-17,Marquette,Wisconsin,55077,3,1 +2020-05-18,Marquette,Wisconsin,55077,3,1 +2020-05-19,Marquette,Wisconsin,55077,3,1 +2020-05-20,Marquette,Wisconsin,55077,3,1 +2020-05-21,Marquette,Wisconsin,55077,3,1 +2020-05-22,Marquette,Wisconsin,55077,3,1 +2020-05-23,Marquette,Wisconsin,55077,3,1 +2020-05-24,Marquette,Wisconsin,55077,3,1 +2020-05-25,Marquette,Wisconsin,55077,3,1 +2020-05-26,Marquette,Wisconsin,55077,3,1 +2020-05-27,Marquette,Wisconsin,55077,3,1 +2020-05-28,Marquette,Wisconsin,55077,3,1 +2020-05-29,Marquette,Wisconsin,55077,3,1 +2020-05-30,Marquette,Wisconsin,55077,4,1 +2020-05-31,Marquette,Wisconsin,55077,4,1 +2020-06-01,Marquette,Wisconsin,55077,4,1 +2020-06-02,Marquette,Wisconsin,55077,4,1 +2020-06-03,Marquette,Wisconsin,55077,6,1 +2020-06-04,Marquette,Wisconsin,55077,5,1 +2020-06-05,Marquette,Wisconsin,55077,5,1 +2020-06-06,Marquette,Wisconsin,55077,5,1 +2020-06-07,Marquette,Wisconsin,55077,5,1 +2020-06-08,Marquette,Wisconsin,55077,5,1 +2020-06-09,Marquette,Wisconsin,55077,6,1 +2020-06-10,Marquette,Wisconsin,55077,7,1 +2020-06-11,Marquette,Wisconsin,55077,9,1 +2020-06-12,Marquette,Wisconsin,55077,9,1 +2020-06-13,Marquette,Wisconsin,55077,9,1 +2020-06-14,Marquette,Wisconsin,55077,9,1 +2020-06-15,Marquette,Wisconsin,55077,9,1 +2020-06-16,Marquette,Wisconsin,55077,9,1 +2020-06-17,Marquette,Wisconsin,55077,9,1 +2020-06-18,Marquette,Wisconsin,55077,9,1 +2020-06-19,Marquette,Wisconsin,55077,9,1 +2020-06-20,Marquette,Wisconsin,55077,9,1 +2020-06-21,Marquette,Wisconsin,55077,9,1 +2020-06-22,Marquette,Wisconsin,55077,10,1 +2020-06-23,Marquette,Wisconsin,55077,10,1 +2020-06-24,Marquette,Wisconsin,55077,10,1 +2020-06-25,Marquette,Wisconsin,55077,10,1 +2020-06-26,Marquette,Wisconsin,55077,12,1 +2020-06-27,Marquette,Wisconsin,55077,12,1 +2020-06-28,Marquette,Wisconsin,55077,13,1 +2020-06-29,Marquette,Wisconsin,55077,13,1 +2020-06-30,Marquette,Wisconsin,55077,13,1 +2020-07-01,Marquette,Wisconsin,55077,16,1 +2020-07-02,Marquette,Wisconsin,55077,17,1 +2020-07-03,Marquette,Wisconsin,55077,17,1 +2020-07-04,Marquette,Wisconsin,55077,23,1 +2020-07-05,Marquette,Wisconsin,55077,24,1 +2020-07-06,Marquette,Wisconsin,55077,24,1 +2020-07-07,Marquette,Wisconsin,55077,31,1 +2020-07-08,Marquette,Wisconsin,55077,35,1 +2020-07-09,Marquette,Wisconsin,55077,44,1 +2020-04-01,Menominee,Wisconsin,55078,1,0 +2020-04-02,Menominee,Wisconsin,55078,1,0 +2020-04-03,Menominee,Wisconsin,55078,1,0 +2020-04-04,Menominee,Wisconsin,55078,1,0 +2020-04-05,Menominee,Wisconsin,55078,1,0 +2020-04-06,Menominee,Wisconsin,55078,1,0 +2020-04-07,Menominee,Wisconsin,55078,1,0 +2020-04-08,Menominee,Wisconsin,55078,1,0 +2020-04-09,Menominee,Wisconsin,55078,1,0 +2020-04-10,Menominee,Wisconsin,55078,1,0 +2020-04-11,Menominee,Wisconsin,55078,1,0 +2020-04-12,Menominee,Wisconsin,55078,1,0 +2020-04-13,Menominee,Wisconsin,55078,1,0 +2020-04-14,Menominee,Wisconsin,55078,1,0 +2020-04-15,Menominee,Wisconsin,55078,1,0 +2020-04-16,Menominee,Wisconsin,55078,1,0 +2020-04-17,Menominee,Wisconsin,55078,1,0 +2020-04-18,Menominee,Wisconsin,55078,1,0 +2020-04-19,Menominee,Wisconsin,55078,1,0 +2020-04-20,Menominee,Wisconsin,55078,1,0 +2020-04-21,Menominee,Wisconsin,55078,1,0 +2020-04-22,Menominee,Wisconsin,55078,1,0 +2020-04-23,Menominee,Wisconsin,55078,1,0 +2020-04-24,Menominee,Wisconsin,55078,1,0 +2020-04-25,Menominee,Wisconsin,55078,1,0 +2020-04-26,Menominee,Wisconsin,55078,1,0 +2020-04-27,Menominee,Wisconsin,55078,1,0 +2020-04-28,Menominee,Wisconsin,55078,1,0 +2020-04-29,Menominee,Wisconsin,55078,1,0 +2020-04-30,Menominee,Wisconsin,55078,1,0 +2020-05-01,Menominee,Wisconsin,55078,1,0 +2020-05-02,Menominee,Wisconsin,55078,1,0 +2020-05-03,Menominee,Wisconsin,55078,1,0 +2020-05-04,Menominee,Wisconsin,55078,1,0 +2020-05-05,Menominee,Wisconsin,55078,1,0 +2020-05-06,Menominee,Wisconsin,55078,1,0 +2020-05-07,Menominee,Wisconsin,55078,2,0 +2020-05-08,Menominee,Wisconsin,55078,2,0 +2020-05-09,Menominee,Wisconsin,55078,2,0 +2020-05-10,Menominee,Wisconsin,55078,2,0 +2020-05-11,Menominee,Wisconsin,55078,2,0 +2020-05-12,Menominee,Wisconsin,55078,2,0 +2020-05-13,Menominee,Wisconsin,55078,2,0 +2020-05-14,Menominee,Wisconsin,55078,2,0 +2020-05-15,Menominee,Wisconsin,55078,2,0 +2020-05-16,Menominee,Wisconsin,55078,2,0 +2020-05-17,Menominee,Wisconsin,55078,2,0 +2020-05-18,Menominee,Wisconsin,55078,2,0 +2020-05-19,Menominee,Wisconsin,55078,2,0 +2020-05-20,Menominee,Wisconsin,55078,2,0 +2020-05-21,Menominee,Wisconsin,55078,2,0 +2020-05-22,Menominee,Wisconsin,55078,2,0 +2020-05-23,Menominee,Wisconsin,55078,2,0 +2020-05-24,Menominee,Wisconsin,55078,3,0 +2020-05-25,Menominee,Wisconsin,55078,3,0 +2020-05-26,Menominee,Wisconsin,55078,3,0 +2020-05-27,Menominee,Wisconsin,55078,3,0 +2020-05-28,Menominee,Wisconsin,55078,3,0 +2020-05-29,Menominee,Wisconsin,55078,3,0 +2020-05-30,Menominee,Wisconsin,55078,3,0 +2020-05-31,Menominee,Wisconsin,55078,3,0 +2020-06-01,Menominee,Wisconsin,55078,3,0 +2020-06-02,Menominee,Wisconsin,55078,3,0 +2020-06-03,Menominee,Wisconsin,55078,3,0 +2020-06-04,Menominee,Wisconsin,55078,3,0 +2020-06-05,Menominee,Wisconsin,55078,3,0 +2020-06-06,Menominee,Wisconsin,55078,3,0 +2020-06-07,Menominee,Wisconsin,55078,3,0 +2020-06-08,Menominee,Wisconsin,55078,3,0 +2020-06-09,Menominee,Wisconsin,55078,3,0 +2020-06-10,Menominee,Wisconsin,55078,3,0 +2020-06-11,Menominee,Wisconsin,55078,4,0 +2020-06-12,Menominee,Wisconsin,55078,3,0 +2020-06-13,Menominee,Wisconsin,55078,3,0 +2020-06-14,Menominee,Wisconsin,55078,4,0 +2020-06-15,Menominee,Wisconsin,55078,4,0 +2020-06-16,Menominee,Wisconsin,55078,4,0 +2020-06-17,Menominee,Wisconsin,55078,4,0 +2020-06-18,Menominee,Wisconsin,55078,4,0 +2020-06-19,Menominee,Wisconsin,55078,4,0 +2020-06-20,Menominee,Wisconsin,55078,4,0 +2020-06-21,Menominee,Wisconsin,55078,4,0 +2020-06-22,Menominee,Wisconsin,55078,4,0 +2020-06-23,Menominee,Wisconsin,55078,4,0 +2020-06-24,Menominee,Wisconsin,55078,4,0 +2020-06-25,Menominee,Wisconsin,55078,4,0 +2020-06-26,Menominee,Wisconsin,55078,5,0 +2020-06-27,Menominee,Wisconsin,55078,6,0 +2020-06-28,Menominee,Wisconsin,55078,6,0 +2020-06-29,Menominee,Wisconsin,55078,6,0 +2020-06-30,Menominee,Wisconsin,55078,7,0 +2020-07-01,Menominee,Wisconsin,55078,7,0 +2020-07-02,Menominee,Wisconsin,55078,7,0 +2020-07-03,Menominee,Wisconsin,55078,7,0 +2020-07-04,Menominee,Wisconsin,55078,7,0 +2020-07-05,Menominee,Wisconsin,55078,7,0 +2020-07-06,Menominee,Wisconsin,55078,7,0 +2020-07-07,Menominee,Wisconsin,55078,7,0 +2020-07-08,Menominee,Wisconsin,55078,9,0 +2020-07-09,Menominee,Wisconsin,55078,9,0 +2020-03-13,Milwaukee,Wisconsin,55079,2,0 +2020-03-14,Milwaukee,Wisconsin,55079,6,0 +2020-03-15,Milwaukee,Wisconsin,55079,7,0 +2020-03-16,Milwaukee,Wisconsin,55079,13,0 +2020-03-17,Milwaukee,Wisconsin,55079,24,0 +2020-03-18,Milwaukee,Wisconsin,55079,47,0 +2020-03-19,Milwaukee,Wisconsin,55079,62,0 +2020-03-20,Milwaukee,Wisconsin,55079,95,1 +2020-03-21,Milwaukee,Wisconsin,55079,126,2 +2020-03-22,Milwaukee,Wisconsin,55079,183,2 +2020-03-23,Milwaukee,Wisconsin,55079,206,3 +2020-03-24,Milwaukee,Wisconsin,55079,243,3 +2020-03-25,Milwaukee,Wisconsin,55079,325,4 +2020-03-26,Milwaukee,Wisconsin,55079,393,7 +2020-03-27,Milwaukee,Wisconsin,55079,468,9 +2020-03-28,Milwaukee,Wisconsin,55079,541,9 +2020-03-29,Milwaukee,Wisconsin,55079,565,9 +2020-03-30,Milwaukee,Wisconsin,55079,663,10 +2020-03-31,Milwaukee,Wisconsin,55079,674,11 +2020-04-01,Milwaukee,Wisconsin,55079,780,16 +2020-04-02,Milwaukee,Wisconsin,55079,869,18 +2020-04-03,Milwaukee,Wisconsin,55079,955,28 +2020-04-04,Milwaukee,Wisconsin,55079,1069,29 +2020-04-05,Milwaukee,Wisconsin,55079,1148,39 +2020-04-06,Milwaukee,Wisconsin,55079,1256,45 +2020-04-07,Milwaukee,Wisconsin,55079,1323,49 +2020-04-08,Milwaukee,Wisconsin,55079,1417,59 +2020-04-09,Milwaukee,Wisconsin,55079,1484,67 +2020-04-10,Milwaukee,Wisconsin,55079,1575,77 +2020-04-11,Milwaukee,Wisconsin,55079,1653,85 +2020-04-12,Milwaukee,Wisconsin,55079,1710,88 +2020-04-13,Milwaukee,Wisconsin,55079,1743,94 +2020-04-14,Milwaukee,Wisconsin,55079,1795,101 +2020-04-15,Milwaukee,Wisconsin,55079,1870,105 +2020-04-16,Milwaukee,Wisconsin,55079,1947,114 +2020-04-17,Milwaukee,Wisconsin,55079,2013,120 +2020-04-18,Milwaukee,Wisconsin,55079,2065,122 +2020-04-19,Milwaukee,Wisconsin,55079,2150,125 +2020-04-20,Milwaukee,Wisconsin,55079,2191,132 +2020-04-21,Milwaukee,Wisconsin,55079,2234,139 +2020-04-22,Milwaukee,Wisconsin,55079,2304,142 +2020-04-23,Milwaukee,Wisconsin,55079,2382,150 +2020-04-24,Milwaukee,Wisconsin,55079,2431,154 +2020-04-25,Milwaukee,Wisconsin,55079,2525,157 +2020-04-26,Milwaukee,Wisconsin,55079,2629,162 +2020-04-27,Milwaukee,Wisconsin,55079,2674,167 +2020-04-28,Milwaukee,Wisconsin,55079,2722,174 +2020-04-29,Milwaukee,Wisconsin,55079,2815,177 +2020-04-30,Milwaukee,Wisconsin,55079,2940,181 +2020-05-01,Milwaukee,Wisconsin,55079,3044,186 +2020-05-02,Milwaukee,Wisconsin,55079,3147,191 +2020-05-03,Milwaukee,Wisconsin,55079,3244,195 +2020-05-04,Milwaukee,Wisconsin,55079,3296,195 +2020-05-05,Milwaukee,Wisconsin,55079,3353,201 +2020-05-06,Milwaukee,Wisconsin,55079,3469,204 +2020-05-07,Milwaukee,Wisconsin,55079,3573,212 +2020-05-08,Milwaukee,Wisconsin,55079,3722,219 +2020-05-09,Milwaukee,Wisconsin,55079,3854,224 +2020-05-10,Milwaukee,Wisconsin,55079,3952,225 +2020-05-11,Milwaukee,Wisconsin,55079,4022,231 +2020-05-12,Milwaukee,Wisconsin,55079,4069,235 +2020-05-13,Milwaukee,Wisconsin,55079,4215,236 +2020-05-14,Milwaukee,Wisconsin,55079,4387,242 +2020-05-15,Milwaukee,Wisconsin,55079,4694,249 +2020-05-16,Milwaukee,Wisconsin,55079,4936,252 +2020-05-17,Milwaukee,Wisconsin,55079,4973,252 +2020-05-18,Milwaukee,Wisconsin,55079,5040,256 +2020-05-19,Milwaukee,Wisconsin,55079,5185,260 +2020-05-20,Milwaukee,Wisconsin,55079,5531,265 +2020-05-21,Milwaukee,Wisconsin,55079,5631,269 +2020-05-22,Milwaukee,Wisconsin,55079,5893,270 +2020-05-23,Milwaukee,Wisconsin,55079,6092,276 +2020-05-24,Milwaukee,Wisconsin,55079,6265,276 +2020-05-25,Milwaukee,Wisconsin,55079,6403,276 +2020-05-26,Milwaukee,Wisconsin,55079,6577,277 +2020-05-27,Milwaukee,Wisconsin,55079,6848,282 +2020-05-28,Milwaukee,Wisconsin,55079,7182,285 +2020-05-29,Milwaukee,Wisconsin,55079,7498,294 +2020-05-30,Milwaukee,Wisconsin,55079,7672,299 +2020-05-31,Milwaukee,Wisconsin,55079,7750,299 +2020-06-01,Milwaukee,Wisconsin,55079,7800,299 +2020-06-02,Milwaukee,Wisconsin,55079,8016,309 +2020-06-03,Milwaukee,Wisconsin,55079,8206,315 +2020-06-04,Milwaukee,Wisconsin,55079,8463,316 +2020-06-05,Milwaukee,Wisconsin,55079,8608,317 +2020-06-06,Milwaukee,Wisconsin,55079,8709,325 +2020-06-07,Milwaukee,Wisconsin,55079,8827,326 +2020-06-08,Milwaukee,Wisconsin,55079,8925,325 +2020-06-09,Milwaukee,Wisconsin,55079,9001,331 +2020-06-10,Milwaukee,Wisconsin,55079,9161,336 +2020-06-11,Milwaukee,Wisconsin,55079,9220,346 +2020-06-12,Milwaukee,Wisconsin,55079,9310,349 +2020-06-13,Milwaukee,Wisconsin,55079,9438,350 +2020-06-14,Milwaukee,Wisconsin,55079,9511,350 +2020-06-15,Milwaukee,Wisconsin,55079,9610,350 +2020-06-16,Milwaukee,Wisconsin,55079,9678,352 +2020-06-17,Milwaukee,Wisconsin,55079,9818,356 +2020-06-18,Milwaukee,Wisconsin,55079,9995,360 +2020-06-19,Milwaukee,Wisconsin,55079,10087,362 +2020-06-20,Milwaukee,Wisconsin,55079,10167,371 +2020-06-21,Milwaukee,Wisconsin,55079,10267,371 +2020-06-22,Milwaukee,Wisconsin,55079,10358,371 +2020-06-23,Milwaukee,Wisconsin,55079,10438,373 +2020-06-24,Milwaukee,Wisconsin,55079,10582,377 +2020-06-25,Milwaukee,Wisconsin,55079,10736,381 +2020-06-26,Milwaukee,Wisconsin,55079,10818,382 +2020-06-27,Milwaukee,Wisconsin,55079,10983,389 +2020-06-28,Milwaukee,Wisconsin,55079,11110,389 +2020-06-29,Milwaukee,Wisconsin,55079,11232,389 +2020-06-30,Milwaukee,Wisconsin,55079,11397,390 +2020-07-01,Milwaukee,Wisconsin,55079,11553,390 +2020-07-02,Milwaukee,Wisconsin,55079,11672,391 +2020-07-03,Milwaukee,Wisconsin,55079,11899,391 +2020-07-04,Milwaukee,Wisconsin,55079,12083,391 +2020-07-05,Milwaukee,Wisconsin,55079,12233,391 +2020-07-06,Milwaukee,Wisconsin,55079,12436,391 +2020-07-07,Milwaukee,Wisconsin,55079,12577,398 +2020-07-08,Milwaukee,Wisconsin,55079,12834,397 +2020-07-09,Milwaukee,Wisconsin,55079,13096,397 +2020-03-25,Monroe,Wisconsin,55081,1,0 +2020-03-26,Monroe,Wisconsin,55081,1,0 +2020-03-27,Monroe,Wisconsin,55081,1,0 +2020-03-28,Monroe,Wisconsin,55081,1,0 +2020-03-29,Monroe,Wisconsin,55081,1,0 +2020-03-30,Monroe,Wisconsin,55081,1,0 +2020-03-31,Monroe,Wisconsin,55081,2,0 +2020-04-01,Monroe,Wisconsin,55081,2,0 +2020-04-02,Monroe,Wisconsin,55081,3,0 +2020-04-03,Monroe,Wisconsin,55081,3,0 +2020-04-04,Monroe,Wisconsin,55081,5,0 +2020-04-05,Monroe,Wisconsin,55081,6,0 +2020-04-06,Monroe,Wisconsin,55081,7,0 +2020-04-07,Monroe,Wisconsin,55081,5,0 +2020-04-08,Monroe,Wisconsin,55081,5,0 +2020-04-09,Monroe,Wisconsin,55081,6,0 +2020-04-10,Monroe,Wisconsin,55081,8,0 +2020-04-11,Monroe,Wisconsin,55081,8,0 +2020-04-12,Monroe,Wisconsin,55081,8,0 +2020-04-13,Monroe,Wisconsin,55081,8,0 +2020-04-14,Monroe,Wisconsin,55081,8,0 +2020-04-15,Monroe,Wisconsin,55081,10,0 +2020-04-16,Monroe,Wisconsin,55081,12,0 +2020-04-17,Monroe,Wisconsin,55081,13,0 +2020-04-18,Monroe,Wisconsin,55081,13,0 +2020-04-19,Monroe,Wisconsin,55081,13,0 +2020-04-20,Monroe,Wisconsin,55081,13,0 +2020-04-21,Monroe,Wisconsin,55081,13,0 +2020-04-22,Monroe,Wisconsin,55081,13,0 +2020-04-23,Monroe,Wisconsin,55081,14,0 +2020-04-24,Monroe,Wisconsin,55081,14,0 +2020-04-25,Monroe,Wisconsin,55081,14,0 +2020-04-26,Monroe,Wisconsin,55081,14,0 +2020-04-27,Monroe,Wisconsin,55081,14,0 +2020-04-28,Monroe,Wisconsin,55081,14,1 +2020-04-29,Monroe,Wisconsin,55081,14,1 +2020-04-30,Monroe,Wisconsin,55081,14,1 +2020-05-01,Monroe,Wisconsin,55081,14,1 +2020-05-02,Monroe,Wisconsin,55081,14,1 +2020-05-03,Monroe,Wisconsin,55081,14,1 +2020-05-04,Monroe,Wisconsin,55081,14,1 +2020-05-05,Monroe,Wisconsin,55081,14,1 +2020-05-06,Monroe,Wisconsin,55081,14,1 +2020-05-07,Monroe,Wisconsin,55081,14,1 +2020-05-08,Monroe,Wisconsin,55081,14,1 +2020-05-09,Monroe,Wisconsin,55081,14,1 +2020-05-10,Monroe,Wisconsin,55081,14,1 +2020-05-11,Monroe,Wisconsin,55081,15,1 +2020-05-12,Monroe,Wisconsin,55081,15,1 +2020-05-13,Monroe,Wisconsin,55081,15,1 +2020-05-14,Monroe,Wisconsin,55081,15,1 +2020-05-15,Monroe,Wisconsin,55081,15,1 +2020-05-16,Monroe,Wisconsin,55081,15,1 +2020-05-17,Monroe,Wisconsin,55081,15,1 +2020-05-18,Monroe,Wisconsin,55081,15,1 +2020-05-19,Monroe,Wisconsin,55081,15,1 +2020-05-20,Monroe,Wisconsin,55081,15,1 +2020-05-21,Monroe,Wisconsin,55081,16,1 +2020-05-22,Monroe,Wisconsin,55081,16,1 +2020-05-23,Monroe,Wisconsin,55081,16,1 +2020-05-24,Monroe,Wisconsin,55081,16,1 +2020-05-25,Monroe,Wisconsin,55081,16,1 +2020-05-26,Monroe,Wisconsin,55081,16,1 +2020-05-27,Monroe,Wisconsin,55081,16,1 +2020-05-28,Monroe,Wisconsin,55081,16,1 +2020-05-29,Monroe,Wisconsin,55081,16,1 +2020-05-30,Monroe,Wisconsin,55081,16,1 +2020-05-31,Monroe,Wisconsin,55081,17,1 +2020-06-01,Monroe,Wisconsin,55081,17,1 +2020-06-02,Monroe,Wisconsin,55081,18,1 +2020-06-03,Monroe,Wisconsin,55081,18,1 +2020-06-04,Monroe,Wisconsin,55081,18,1 +2020-06-05,Monroe,Wisconsin,55081,18,1 +2020-06-06,Monroe,Wisconsin,55081,18,1 +2020-06-07,Monroe,Wisconsin,55081,19,1 +2020-06-08,Monroe,Wisconsin,55081,19,1 +2020-06-09,Monroe,Wisconsin,55081,19,1 +2020-06-10,Monroe,Wisconsin,55081,23,1 +2020-06-11,Monroe,Wisconsin,55081,26,1 +2020-06-12,Monroe,Wisconsin,55081,29,1 +2020-06-13,Monroe,Wisconsin,55081,30,1 +2020-06-14,Monroe,Wisconsin,55081,32,1 +2020-06-15,Monroe,Wisconsin,55081,33,1 +2020-06-16,Monroe,Wisconsin,55081,36,1 +2020-06-17,Monroe,Wisconsin,55081,38,1 +2020-06-18,Monroe,Wisconsin,55081,39,1 +2020-06-19,Monroe,Wisconsin,55081,40,1 +2020-06-20,Monroe,Wisconsin,55081,45,1 +2020-06-21,Monroe,Wisconsin,55081,46,1 +2020-06-22,Monroe,Wisconsin,55081,50,1 +2020-06-23,Monroe,Wisconsin,55081,49,1 +2020-06-24,Monroe,Wisconsin,55081,51,1 +2020-06-25,Monroe,Wisconsin,55081,57,1 +2020-06-26,Monroe,Wisconsin,55081,59,1 +2020-06-27,Monroe,Wisconsin,55081,61,1 +2020-06-28,Monroe,Wisconsin,55081,61,1 +2020-06-29,Monroe,Wisconsin,55081,63,1 +2020-06-30,Monroe,Wisconsin,55081,66,1 +2020-07-01,Monroe,Wisconsin,55081,65,1 +2020-07-02,Monroe,Wisconsin,55081,66,1 +2020-07-03,Monroe,Wisconsin,55081,73,1 +2020-07-04,Monroe,Wisconsin,55081,79,1 +2020-07-05,Monroe,Wisconsin,55081,81,1 +2020-07-06,Monroe,Wisconsin,55081,88,1 +2020-07-07,Monroe,Wisconsin,55081,90,1 +2020-07-08,Monroe,Wisconsin,55081,103,1 +2020-07-09,Monroe,Wisconsin,55081,110,1 +2020-03-31,Oconto,Wisconsin,55083,1,0 +2020-04-01,Oconto,Wisconsin,55083,1,0 +2020-04-02,Oconto,Wisconsin,55083,1,0 +2020-04-03,Oconto,Wisconsin,55083,1,0 +2020-04-04,Oconto,Wisconsin,55083,1,0 +2020-04-05,Oconto,Wisconsin,55083,1,0 +2020-04-06,Oconto,Wisconsin,55083,1,0 +2020-04-07,Oconto,Wisconsin,55083,1,0 +2020-04-08,Oconto,Wisconsin,55083,2,0 +2020-04-09,Oconto,Wisconsin,55083,3,0 +2020-04-10,Oconto,Wisconsin,55083,3,0 +2020-04-11,Oconto,Wisconsin,55083,3,0 +2020-04-12,Oconto,Wisconsin,55083,3,0 +2020-04-13,Oconto,Wisconsin,55083,3,0 +2020-04-14,Oconto,Wisconsin,55083,4,0 +2020-04-15,Oconto,Wisconsin,55083,4,0 +2020-04-16,Oconto,Wisconsin,55083,4,0 +2020-04-17,Oconto,Wisconsin,55083,4,0 +2020-04-18,Oconto,Wisconsin,55083,4,0 +2020-04-19,Oconto,Wisconsin,55083,4,0 +2020-04-20,Oconto,Wisconsin,55083,5,0 +2020-04-21,Oconto,Wisconsin,55083,5,0 +2020-04-22,Oconto,Wisconsin,55083,5,0 +2020-04-23,Oconto,Wisconsin,55083,5,0 +2020-04-24,Oconto,Wisconsin,55083,5,0 +2020-04-25,Oconto,Wisconsin,55083,6,0 +2020-04-26,Oconto,Wisconsin,55083,7,0 +2020-04-27,Oconto,Wisconsin,55083,8,0 +2020-04-28,Oconto,Wisconsin,55083,8,0 +2020-04-29,Oconto,Wisconsin,55083,8,0 +2020-04-30,Oconto,Wisconsin,55083,10,0 +2020-05-01,Oconto,Wisconsin,55083,14,0 +2020-05-02,Oconto,Wisconsin,55083,15,0 +2020-05-03,Oconto,Wisconsin,55083,18,0 +2020-05-04,Oconto,Wisconsin,55083,18,0 +2020-05-05,Oconto,Wisconsin,55083,20,0 +2020-05-06,Oconto,Wisconsin,55083,23,0 +2020-05-07,Oconto,Wisconsin,55083,26,0 +2020-05-08,Oconto,Wisconsin,55083,27,0 +2020-05-09,Oconto,Wisconsin,55083,28,0 +2020-05-10,Oconto,Wisconsin,55083,27,0 +2020-05-11,Oconto,Wisconsin,55083,28,0 +2020-05-12,Oconto,Wisconsin,55083,28,0 +2020-05-13,Oconto,Wisconsin,55083,28,0 +2020-05-14,Oconto,Wisconsin,55083,28,0 +2020-05-15,Oconto,Wisconsin,55083,30,0 +2020-05-16,Oconto,Wisconsin,55083,30,0 +2020-05-17,Oconto,Wisconsin,55083,30,0 +2020-05-18,Oconto,Wisconsin,55083,30,0 +2020-05-19,Oconto,Wisconsin,55083,30,0 +2020-05-20,Oconto,Wisconsin,55083,31,0 +2020-05-21,Oconto,Wisconsin,55083,31,0 +2020-05-22,Oconto,Wisconsin,55083,32,0 +2020-05-23,Oconto,Wisconsin,55083,34,0 +2020-05-24,Oconto,Wisconsin,55083,34,0 +2020-05-25,Oconto,Wisconsin,55083,34,0 +2020-05-26,Oconto,Wisconsin,55083,34,0 +2020-05-27,Oconto,Wisconsin,55083,35,0 +2020-05-28,Oconto,Wisconsin,55083,35,0 +2020-05-29,Oconto,Wisconsin,55083,35,0 +2020-05-30,Oconto,Wisconsin,55083,37,0 +2020-05-31,Oconto,Wisconsin,55083,37,0 +2020-06-01,Oconto,Wisconsin,55083,37,0 +2020-06-02,Oconto,Wisconsin,55083,38,0 +2020-06-03,Oconto,Wisconsin,55083,39,0 +2020-06-04,Oconto,Wisconsin,55083,39,0 +2020-06-05,Oconto,Wisconsin,55083,39,0 +2020-06-06,Oconto,Wisconsin,55083,41,0 +2020-06-07,Oconto,Wisconsin,55083,42,0 +2020-06-08,Oconto,Wisconsin,55083,42,0 +2020-06-09,Oconto,Wisconsin,55083,42,0 +2020-06-10,Oconto,Wisconsin,55083,42,0 +2020-06-11,Oconto,Wisconsin,55083,43,0 +2020-06-12,Oconto,Wisconsin,55083,43,0 +2020-06-13,Oconto,Wisconsin,55083,44,0 +2020-06-14,Oconto,Wisconsin,55083,44,0 +2020-06-15,Oconto,Wisconsin,55083,45,0 +2020-06-16,Oconto,Wisconsin,55083,45,0 +2020-06-17,Oconto,Wisconsin,55083,45,0 +2020-06-18,Oconto,Wisconsin,55083,46,0 +2020-06-19,Oconto,Wisconsin,55083,46,0 +2020-06-20,Oconto,Wisconsin,55083,46,0 +2020-06-21,Oconto,Wisconsin,55083,46,0 +2020-06-22,Oconto,Wisconsin,55083,49,0 +2020-06-23,Oconto,Wisconsin,55083,49,0 +2020-06-24,Oconto,Wisconsin,55083,50,0 +2020-06-25,Oconto,Wisconsin,55083,51,0 +2020-06-26,Oconto,Wisconsin,55083,52,0 +2020-06-27,Oconto,Wisconsin,55083,53,0 +2020-06-28,Oconto,Wisconsin,55083,56,0 +2020-06-29,Oconto,Wisconsin,55083,56,0 +2020-06-30,Oconto,Wisconsin,55083,59,0 +2020-07-01,Oconto,Wisconsin,55083,61,0 +2020-07-02,Oconto,Wisconsin,55083,61,0 +2020-07-03,Oconto,Wisconsin,55083,62,0 +2020-07-04,Oconto,Wisconsin,55083,63,0 +2020-07-05,Oconto,Wisconsin,55083,65,0 +2020-07-06,Oconto,Wisconsin,55083,67,0 +2020-07-07,Oconto,Wisconsin,55083,69,0 +2020-07-08,Oconto,Wisconsin,55083,69,0 +2020-07-09,Oconto,Wisconsin,55083,73,0 +2020-03-28,Oneida,Wisconsin,55085,1,0 +2020-03-29,Oneida,Wisconsin,55085,1,0 +2020-03-30,Oneida,Wisconsin,55085,3,0 +2020-03-31,Oneida,Wisconsin,55085,3,0 +2020-04-01,Oneida,Wisconsin,55085,3,0 +2020-04-02,Oneida,Wisconsin,55085,3,0 +2020-04-03,Oneida,Wisconsin,55085,3,0 +2020-04-04,Oneida,Wisconsin,55085,3,0 +2020-04-05,Oneida,Wisconsin,55085,3,0 +2020-04-06,Oneida,Wisconsin,55085,3,0 +2020-04-07,Oneida,Wisconsin,55085,5,0 +2020-04-08,Oneida,Wisconsin,55085,5,0 +2020-04-09,Oneida,Wisconsin,55085,5,0 +2020-04-10,Oneida,Wisconsin,55085,5,0 +2020-04-11,Oneida,Wisconsin,55085,5,0 +2020-04-12,Oneida,Wisconsin,55085,6,0 +2020-04-13,Oneida,Wisconsin,55085,6,0 +2020-04-14,Oneida,Wisconsin,55085,6,0 +2020-04-15,Oneida,Wisconsin,55085,6,0 +2020-04-16,Oneida,Wisconsin,55085,6,0 +2020-04-17,Oneida,Wisconsin,55085,6,0 +2020-04-18,Oneida,Wisconsin,55085,6,0 +2020-04-19,Oneida,Wisconsin,55085,6,0 +2020-04-20,Oneida,Wisconsin,55085,6,0 +2020-04-21,Oneida,Wisconsin,55085,6,0 +2020-04-22,Oneida,Wisconsin,55085,6,0 +2020-04-23,Oneida,Wisconsin,55085,6,0 +2020-04-24,Oneida,Wisconsin,55085,6,0 +2020-04-25,Oneida,Wisconsin,55085,6,0 +2020-04-26,Oneida,Wisconsin,55085,6,0 +2020-04-27,Oneida,Wisconsin,55085,6,0 +2020-04-28,Oneida,Wisconsin,55085,6,0 +2020-04-29,Oneida,Wisconsin,55085,6,0 +2020-04-30,Oneida,Wisconsin,55085,6,0 +2020-05-01,Oneida,Wisconsin,55085,6,0 +2020-05-02,Oneida,Wisconsin,55085,6,0 +2020-05-03,Oneida,Wisconsin,55085,6,0 +2020-05-04,Oneida,Wisconsin,55085,6,0 +2020-05-05,Oneida,Wisconsin,55085,6,0 +2020-05-06,Oneida,Wisconsin,55085,6,0 +2020-05-07,Oneida,Wisconsin,55085,6,0 +2020-05-08,Oneida,Wisconsin,55085,7,0 +2020-05-09,Oneida,Wisconsin,55085,7,0 +2020-05-10,Oneida,Wisconsin,55085,7,0 +2020-05-11,Oneida,Wisconsin,55085,7,0 +2020-05-12,Oneida,Wisconsin,55085,7,0 +2020-05-13,Oneida,Wisconsin,55085,7,0 +2020-05-14,Oneida,Wisconsin,55085,7,0 +2020-05-15,Oneida,Wisconsin,55085,7,0 +2020-05-16,Oneida,Wisconsin,55085,7,0 +2020-05-17,Oneida,Wisconsin,55085,7,0 +2020-05-18,Oneida,Wisconsin,55085,7,0 +2020-05-19,Oneida,Wisconsin,55085,7,0 +2020-05-20,Oneida,Wisconsin,55085,7,0 +2020-05-21,Oneida,Wisconsin,55085,7,0 +2020-05-22,Oneida,Wisconsin,55085,7,0 +2020-05-23,Oneida,Wisconsin,55085,7,0 +2020-05-24,Oneida,Wisconsin,55085,7,0 +2020-05-25,Oneida,Wisconsin,55085,7,0 +2020-05-26,Oneida,Wisconsin,55085,7,0 +2020-05-27,Oneida,Wisconsin,55085,8,0 +2020-05-28,Oneida,Wisconsin,55085,9,0 +2020-05-29,Oneida,Wisconsin,55085,9,0 +2020-05-30,Oneida,Wisconsin,55085,9,0 +2020-05-31,Oneida,Wisconsin,55085,9,0 +2020-06-01,Oneida,Wisconsin,55085,9,0 +2020-06-02,Oneida,Wisconsin,55085,9,0 +2020-06-03,Oneida,Wisconsin,55085,11,0 +2020-06-04,Oneida,Wisconsin,55085,11,0 +2020-06-05,Oneida,Wisconsin,55085,12,0 +2020-06-06,Oneida,Wisconsin,55085,12,0 +2020-06-07,Oneida,Wisconsin,55085,12,0 +2020-06-08,Oneida,Wisconsin,55085,13,0 +2020-06-09,Oneida,Wisconsin,55085,13,0 +2020-06-10,Oneida,Wisconsin,55085,13,0 +2020-06-11,Oneida,Wisconsin,55085,14,0 +2020-06-12,Oneida,Wisconsin,55085,14,0 +2020-06-13,Oneida,Wisconsin,55085,14,0 +2020-06-14,Oneida,Wisconsin,55085,16,0 +2020-06-15,Oneida,Wisconsin,55085,16,0 +2020-06-16,Oneida,Wisconsin,55085,17,0 +2020-06-17,Oneida,Wisconsin,55085,17,0 +2020-06-18,Oneida,Wisconsin,55085,17,0 +2020-06-19,Oneida,Wisconsin,55085,17,0 +2020-06-20,Oneida,Wisconsin,55085,17,0 +2020-06-21,Oneida,Wisconsin,55085,17,0 +2020-06-22,Oneida,Wisconsin,55085,17,0 +2020-06-23,Oneida,Wisconsin,55085,17,0 +2020-06-24,Oneida,Wisconsin,55085,17,0 +2020-06-25,Oneida,Wisconsin,55085,17,0 +2020-06-26,Oneida,Wisconsin,55085,18,0 +2020-06-27,Oneida,Wisconsin,55085,19,0 +2020-06-28,Oneida,Wisconsin,55085,19,0 +2020-06-29,Oneida,Wisconsin,55085,19,0 +2020-06-30,Oneida,Wisconsin,55085,19,0 +2020-07-01,Oneida,Wisconsin,55085,20,0 +2020-07-02,Oneida,Wisconsin,55085,20,0 +2020-07-03,Oneida,Wisconsin,55085,20,0 +2020-07-04,Oneida,Wisconsin,55085,20,0 +2020-07-05,Oneida,Wisconsin,55085,20,0 +2020-07-06,Oneida,Wisconsin,55085,20,0 +2020-07-07,Oneida,Wisconsin,55085,21,0 +2020-07-08,Oneida,Wisconsin,55085,22,0 +2020-07-09,Oneida,Wisconsin,55085,24,0 +2020-03-16,Outagamie,Wisconsin,55087,1,0 +2020-03-17,Outagamie,Wisconsin,55087,1,0 +2020-03-18,Outagamie,Wisconsin,55087,1,0 +2020-03-19,Outagamie,Wisconsin,55087,1,0 +2020-03-20,Outagamie,Wisconsin,55087,2,0 +2020-03-21,Outagamie,Wisconsin,55087,2,0 +2020-03-22,Outagamie,Wisconsin,55087,2,0 +2020-03-23,Outagamie,Wisconsin,55087,2,0 +2020-03-24,Outagamie,Wisconsin,55087,2,0 +2020-03-25,Outagamie,Wisconsin,55087,4,0 +2020-03-26,Outagamie,Wisconsin,55087,4,0 +2020-03-27,Outagamie,Wisconsin,55087,4,0 +2020-03-28,Outagamie,Wisconsin,55087,4,0 +2020-03-29,Outagamie,Wisconsin,55087,6,0 +2020-03-30,Outagamie,Wisconsin,55087,9,0 +2020-03-31,Outagamie,Wisconsin,55087,12,0 +2020-04-01,Outagamie,Wisconsin,55087,12,0 +2020-04-02,Outagamie,Wisconsin,55087,14,0 +2020-04-03,Outagamie,Wisconsin,55087,19,1 +2020-04-04,Outagamie,Wisconsin,55087,20,1 +2020-04-05,Outagamie,Wisconsin,55087,21,1 +2020-04-06,Outagamie,Wisconsin,55087,22,1 +2020-04-07,Outagamie,Wisconsin,55087,25,1 +2020-04-08,Outagamie,Wisconsin,55087,25,2 +2020-04-09,Outagamie,Wisconsin,55087,26,2 +2020-04-10,Outagamie,Wisconsin,55087,29,2 +2020-04-11,Outagamie,Wisconsin,55087,29,2 +2020-04-12,Outagamie,Wisconsin,55087,29,2 +2020-04-13,Outagamie,Wisconsin,55087,29,2 +2020-04-14,Outagamie,Wisconsin,55087,29,2 +2020-04-15,Outagamie,Wisconsin,55087,31,2 +2020-04-16,Outagamie,Wisconsin,55087,31,2 +2020-04-17,Outagamie,Wisconsin,55087,31,2 +2020-04-18,Outagamie,Wisconsin,55087,33,2 +2020-04-19,Outagamie,Wisconsin,55087,35,2 +2020-04-20,Outagamie,Wisconsin,55087,35,2 +2020-04-21,Outagamie,Wisconsin,55087,35,2 +2020-04-22,Outagamie,Wisconsin,55087,37,2 +2020-04-23,Outagamie,Wisconsin,55087,38,2 +2020-04-24,Outagamie,Wisconsin,55087,43,2 +2020-04-25,Outagamie,Wisconsin,55087,43,2 +2020-04-26,Outagamie,Wisconsin,55087,46,2 +2020-04-27,Outagamie,Wisconsin,55087,47,2 +2020-04-28,Outagamie,Wisconsin,55087,50,2 +2020-04-29,Outagamie,Wisconsin,55087,54,2 +2020-04-30,Outagamie,Wisconsin,55087,54,2 +2020-05-01,Outagamie,Wisconsin,55087,62,2 +2020-05-02,Outagamie,Wisconsin,55087,63,2 +2020-05-03,Outagamie,Wisconsin,55087,68,2 +2020-05-04,Outagamie,Wisconsin,55087,73,2 +2020-05-05,Outagamie,Wisconsin,55087,77,2 +2020-05-06,Outagamie,Wisconsin,55087,83,2 +2020-05-07,Outagamie,Wisconsin,55087,93,2 +2020-05-08,Outagamie,Wisconsin,55087,105,2 +2020-05-09,Outagamie,Wisconsin,55087,111,2 +2020-05-10,Outagamie,Wisconsin,55087,112,2 +2020-05-11,Outagamie,Wisconsin,55087,117,2 +2020-05-12,Outagamie,Wisconsin,55087,117,2 +2020-05-13,Outagamie,Wisconsin,55087,122,2 +2020-05-14,Outagamie,Wisconsin,55087,124,4 +2020-05-15,Outagamie,Wisconsin,55087,128,4 +2020-05-16,Outagamie,Wisconsin,55087,135,4 +2020-05-17,Outagamie,Wisconsin,55087,139,4 +2020-05-18,Outagamie,Wisconsin,55087,142,5 +2020-05-19,Outagamie,Wisconsin,55087,146,5 +2020-05-20,Outagamie,Wisconsin,55087,153,5 +2020-05-21,Outagamie,Wisconsin,55087,161,5 +2020-05-22,Outagamie,Wisconsin,55087,174,5 +2020-05-23,Outagamie,Wisconsin,55087,181,6 +2020-05-24,Outagamie,Wisconsin,55087,184,7 +2020-05-25,Outagamie,Wisconsin,55087,193,7 +2020-05-26,Outagamie,Wisconsin,55087,196,7 +2020-05-27,Outagamie,Wisconsin,55087,198,8 +2020-05-28,Outagamie,Wisconsin,55087,204,8 +2020-05-29,Outagamie,Wisconsin,55087,213,8 +2020-05-30,Outagamie,Wisconsin,55087,223,8 +2020-05-31,Outagamie,Wisconsin,55087,227,8 +2020-06-01,Outagamie,Wisconsin,55087,230,8 +2020-06-02,Outagamie,Wisconsin,55087,232,8 +2020-06-03,Outagamie,Wisconsin,55087,239,8 +2020-06-04,Outagamie,Wisconsin,55087,246,8 +2020-06-05,Outagamie,Wisconsin,55087,253,8 +2020-06-06,Outagamie,Wisconsin,55087,263,8 +2020-06-07,Outagamie,Wisconsin,55087,270,8 +2020-06-08,Outagamie,Wisconsin,55087,277,8 +2020-06-09,Outagamie,Wisconsin,55087,289,8 +2020-06-10,Outagamie,Wisconsin,55087,294,8 +2020-06-11,Outagamie,Wisconsin,55087,306,8 +2020-06-12,Outagamie,Wisconsin,55087,318,8 +2020-06-13,Outagamie,Wisconsin,55087,331,8 +2020-06-14,Outagamie,Wisconsin,55087,337,8 +2020-06-15,Outagamie,Wisconsin,55087,343,8 +2020-06-16,Outagamie,Wisconsin,55087,345,8 +2020-06-17,Outagamie,Wisconsin,55087,354,8 +2020-06-18,Outagamie,Wisconsin,55087,366,8 +2020-06-19,Outagamie,Wisconsin,55087,377,8 +2020-06-20,Outagamie,Wisconsin,55087,387,8 +2020-06-21,Outagamie,Wisconsin,55087,396,8 +2020-06-22,Outagamie,Wisconsin,55087,402,8 +2020-06-23,Outagamie,Wisconsin,55087,412,8 +2020-06-24,Outagamie,Wisconsin,55087,415,8 +2020-06-25,Outagamie,Wisconsin,55087,428,8 +2020-06-26,Outagamie,Wisconsin,55087,436,8 +2020-06-27,Outagamie,Wisconsin,55087,447,8 +2020-06-28,Outagamie,Wisconsin,55087,454,8 +2020-06-29,Outagamie,Wisconsin,55087,463,8 +2020-06-30,Outagamie,Wisconsin,55087,476,9 +2020-07-01,Outagamie,Wisconsin,55087,491,9 +2020-07-02,Outagamie,Wisconsin,55087,500,9 +2020-07-03,Outagamie,Wisconsin,55087,508,9 +2020-07-04,Outagamie,Wisconsin,55087,524,9 +2020-07-05,Outagamie,Wisconsin,55087,540,9 +2020-07-06,Outagamie,Wisconsin,55087,552,9 +2020-07-07,Outagamie,Wisconsin,55087,577,9 +2020-07-08,Outagamie,Wisconsin,55087,581,9 +2020-07-09,Outagamie,Wisconsin,55087,597,9 +2020-03-19,Ozaukee,Wisconsin,55089,3,1 +2020-03-20,Ozaukee,Wisconsin,55089,7,1 +2020-03-21,Ozaukee,Wisconsin,55089,11,1 +2020-03-22,Ozaukee,Wisconsin,55089,13,1 +2020-03-23,Ozaukee,Wisconsin,55089,14,1 +2020-03-24,Ozaukee,Wisconsin,55089,16,1 +2020-03-25,Ozaukee,Wisconsin,55089,20,1 +2020-03-26,Ozaukee,Wisconsin,55089,22,1 +2020-03-27,Ozaukee,Wisconsin,55089,30,3 +2020-03-28,Ozaukee,Wisconsin,55089,33,3 +2020-03-29,Ozaukee,Wisconsin,55089,34,3 +2020-03-30,Ozaukee,Wisconsin,55089,36,3 +2020-03-31,Ozaukee,Wisconsin,55089,43,5 +2020-04-01,Ozaukee,Wisconsin,55089,46,5 +2020-04-02,Ozaukee,Wisconsin,55089,47,5 +2020-04-03,Ozaukee,Wisconsin,55089,50,5 +2020-04-04,Ozaukee,Wisconsin,55089,53,6 +2020-04-05,Ozaukee,Wisconsin,55089,56,6 +2020-04-06,Ozaukee,Wisconsin,55089,62,6 +2020-04-07,Ozaukee,Wisconsin,55089,66,9 +2020-04-08,Ozaukee,Wisconsin,55089,70,11 +2020-04-09,Ozaukee,Wisconsin,55089,71,9 +2020-04-10,Ozaukee,Wisconsin,55089,71,12 +2020-04-11,Ozaukee,Wisconsin,55089,72,12 +2020-04-12,Ozaukee,Wisconsin,55089,72,9 +2020-04-13,Ozaukee,Wisconsin,55089,72,9 +2020-04-14,Ozaukee,Wisconsin,55089,73,9 +2020-04-15,Ozaukee,Wisconsin,55089,77,9 +2020-04-16,Ozaukee,Wisconsin,55089,77,9 +2020-04-17,Ozaukee,Wisconsin,55089,78,9 +2020-04-18,Ozaukee,Wisconsin,55089,79,9 +2020-04-19,Ozaukee,Wisconsin,55089,79,9 +2020-04-20,Ozaukee,Wisconsin,55089,80,9 +2020-04-21,Ozaukee,Wisconsin,55089,80,9 +2020-04-22,Ozaukee,Wisconsin,55089,80,9 +2020-04-23,Ozaukee,Wisconsin,55089,80,9 +2020-04-24,Ozaukee,Wisconsin,55089,80,9 +2020-04-25,Ozaukee,Wisconsin,55089,82,9 +2020-04-26,Ozaukee,Wisconsin,55089,85,9 +2020-04-27,Ozaukee,Wisconsin,55089,86,9 +2020-04-28,Ozaukee,Wisconsin,55089,86,9 +2020-04-29,Ozaukee,Wisconsin,55089,86,9 +2020-04-30,Ozaukee,Wisconsin,55089,88,9 +2020-05-01,Ozaukee,Wisconsin,55089,88,9 +2020-05-02,Ozaukee,Wisconsin,55089,89,9 +2020-05-03,Ozaukee,Wisconsin,55089,92,9 +2020-05-04,Ozaukee,Wisconsin,55089,94,9 +2020-05-05,Ozaukee,Wisconsin,55089,95,9 +2020-05-06,Ozaukee,Wisconsin,55089,95,9 +2020-05-07,Ozaukee,Wisconsin,55089,99,9 +2020-05-08,Ozaukee,Wisconsin,55089,101,9 +2020-05-09,Ozaukee,Wisconsin,55089,104,9 +2020-05-10,Ozaukee,Wisconsin,55089,105,9 +2020-05-11,Ozaukee,Wisconsin,55089,107,9 +2020-05-12,Ozaukee,Wisconsin,55089,107,10 +2020-05-13,Ozaukee,Wisconsin,55089,110,10 +2020-05-14,Ozaukee,Wisconsin,55089,113,10 +2020-05-15,Ozaukee,Wisconsin,55089,119,10 +2020-05-16,Ozaukee,Wisconsin,55089,120,11 +2020-05-17,Ozaukee,Wisconsin,55089,122,11 +2020-05-18,Ozaukee,Wisconsin,55089,122,11 +2020-05-19,Ozaukee,Wisconsin,55089,125,11 +2020-05-20,Ozaukee,Wisconsin,55089,130,11 +2020-05-21,Ozaukee,Wisconsin,55089,131,11 +2020-05-22,Ozaukee,Wisconsin,55089,133,11 +2020-05-23,Ozaukee,Wisconsin,55089,134,11 +2020-05-24,Ozaukee,Wisconsin,55089,137,11 +2020-05-25,Ozaukee,Wisconsin,55089,138,11 +2020-05-26,Ozaukee,Wisconsin,55089,138,11 +2020-05-27,Ozaukee,Wisconsin,55089,144,11 +2020-05-28,Ozaukee,Wisconsin,55089,156,11 +2020-05-29,Ozaukee,Wisconsin,55089,159,11 +2020-05-30,Ozaukee,Wisconsin,55089,160,11 +2020-05-31,Ozaukee,Wisconsin,55089,174,14 +2020-06-01,Ozaukee,Wisconsin,55089,175,14 +2020-06-02,Ozaukee,Wisconsin,55089,178,14 +2020-06-03,Ozaukee,Wisconsin,55089,181,14 +2020-06-04,Ozaukee,Wisconsin,55089,184,14 +2020-06-05,Ozaukee,Wisconsin,55089,188,14 +2020-06-06,Ozaukee,Wisconsin,55089,190,14 +2020-06-07,Ozaukee,Wisconsin,55089,192,14 +2020-06-08,Ozaukee,Wisconsin,55089,193,14 +2020-06-09,Ozaukee,Wisconsin,55089,193,14 +2020-06-10,Ozaukee,Wisconsin,55089,195,14 +2020-06-11,Ozaukee,Wisconsin,55089,197,14 +2020-06-12,Ozaukee,Wisconsin,55089,198,15 +2020-06-13,Ozaukee,Wisconsin,55089,202,15 +2020-06-14,Ozaukee,Wisconsin,55089,203,15 +2020-06-15,Ozaukee,Wisconsin,55089,206,15 +2020-06-16,Ozaukee,Wisconsin,55089,207,15 +2020-06-17,Ozaukee,Wisconsin,55089,208,15 +2020-06-18,Ozaukee,Wisconsin,55089,209,15 +2020-06-19,Ozaukee,Wisconsin,55089,211,15 +2020-06-20,Ozaukee,Wisconsin,55089,213,15 +2020-06-21,Ozaukee,Wisconsin,55089,215,15 +2020-06-22,Ozaukee,Wisconsin,55089,214,15 +2020-06-23,Ozaukee,Wisconsin,55089,216,15 +2020-06-24,Ozaukee,Wisconsin,55089,218,16 +2020-06-25,Ozaukee,Wisconsin,55089,219,16 +2020-06-26,Ozaukee,Wisconsin,55089,222,16 +2020-06-27,Ozaukee,Wisconsin,55089,222,16 +2020-06-28,Ozaukee,Wisconsin,55089,222,16 +2020-06-29,Ozaukee,Wisconsin,55089,237,16 +2020-06-30,Ozaukee,Wisconsin,55089,245,16 +2020-07-01,Ozaukee,Wisconsin,55089,247,16 +2020-07-02,Ozaukee,Wisconsin,55089,251,16 +2020-07-03,Ozaukee,Wisconsin,55089,251,16 +2020-07-04,Ozaukee,Wisconsin,55089,253,16 +2020-07-05,Ozaukee,Wisconsin,55089,260,16 +2020-07-06,Ozaukee,Wisconsin,55089,280,16 +2020-07-07,Ozaukee,Wisconsin,55089,282,17 +2020-07-08,Ozaukee,Wisconsin,55089,289,17 +2020-07-09,Ozaukee,Wisconsin,55089,302,17 +2020-05-14,Pepin,Wisconsin,55091,1,0 +2020-05-15,Pepin,Wisconsin,55091,1,0 +2020-05-16,Pepin,Wisconsin,55091,1,0 +2020-05-17,Pepin,Wisconsin,55091,1,0 +2020-05-18,Pepin,Wisconsin,55091,1,0 +2020-05-19,Pepin,Wisconsin,55091,1,0 +2020-05-20,Pepin,Wisconsin,55091,1,0 +2020-05-21,Pepin,Wisconsin,55091,1,0 +2020-05-22,Pepin,Wisconsin,55091,1,0 +2020-05-23,Pepin,Wisconsin,55091,1,0 +2020-05-24,Pepin,Wisconsin,55091,1,0 +2020-05-25,Pepin,Wisconsin,55091,1,0 +2020-05-26,Pepin,Wisconsin,55091,1,0 +2020-05-27,Pepin,Wisconsin,55091,1,0 +2020-05-28,Pepin,Wisconsin,55091,1,0 +2020-05-29,Pepin,Wisconsin,55091,1,0 +2020-05-30,Pepin,Wisconsin,55091,1,0 +2020-05-31,Pepin,Wisconsin,55091,1,0 +2020-06-01,Pepin,Wisconsin,55091,1,0 +2020-06-02,Pepin,Wisconsin,55091,1,0 +2020-06-03,Pepin,Wisconsin,55091,1,0 +2020-06-04,Pepin,Wisconsin,55091,1,0 +2020-06-05,Pepin,Wisconsin,55091,1,0 +2020-06-06,Pepin,Wisconsin,55091,1,0 +2020-06-07,Pepin,Wisconsin,55091,1,0 +2020-06-08,Pepin,Wisconsin,55091,1,0 +2020-06-09,Pepin,Wisconsin,55091,1,0 +2020-06-10,Pepin,Wisconsin,55091,1,0 +2020-06-11,Pepin,Wisconsin,55091,1,0 +2020-06-12,Pepin,Wisconsin,55091,1,0 +2020-06-13,Pepin,Wisconsin,55091,1,0 +2020-06-14,Pepin,Wisconsin,55091,1,0 +2020-06-15,Pepin,Wisconsin,55091,1,0 +2020-06-16,Pepin,Wisconsin,55091,1,0 +2020-06-17,Pepin,Wisconsin,55091,1,0 +2020-06-18,Pepin,Wisconsin,55091,1,0 +2020-06-19,Pepin,Wisconsin,55091,1,0 +2020-06-20,Pepin,Wisconsin,55091,1,0 +2020-06-21,Pepin,Wisconsin,55091,1,0 +2020-06-22,Pepin,Wisconsin,55091,1,0 +2020-06-23,Pepin,Wisconsin,55091,1,0 +2020-06-24,Pepin,Wisconsin,55091,1,0 +2020-06-25,Pepin,Wisconsin,55091,1,0 +2020-06-26,Pepin,Wisconsin,55091,1,0 +2020-06-27,Pepin,Wisconsin,55091,1,0 +2020-06-28,Pepin,Wisconsin,55091,1,0 +2020-06-29,Pepin,Wisconsin,55091,1,0 +2020-06-30,Pepin,Wisconsin,55091,1,0 +2020-07-01,Pepin,Wisconsin,55091,1,0 +2020-07-02,Pepin,Wisconsin,55091,1,0 +2020-07-03,Pepin,Wisconsin,55091,1,0 +2020-07-04,Pepin,Wisconsin,55091,1,0 +2020-07-05,Pepin,Wisconsin,55091,1,0 +2020-07-06,Pepin,Wisconsin,55091,1,0 +2020-07-07,Pepin,Wisconsin,55091,1,0 +2020-07-08,Pepin,Wisconsin,55091,2,0 +2020-07-09,Pepin,Wisconsin,55091,4,0 +2020-03-09,Pierce,Wisconsin,55093,1,0 +2020-03-10,Pierce,Wisconsin,55093,1,0 +2020-03-11,Pierce,Wisconsin,55093,1,0 +2020-03-12,Pierce,Wisconsin,55093,1,0 +2020-03-13,Pierce,Wisconsin,55093,1,0 +2020-03-14,Pierce,Wisconsin,55093,1,0 +2020-03-15,Pierce,Wisconsin,55093,1,0 +2020-03-16,Pierce,Wisconsin,55093,1,0 +2020-03-17,Pierce,Wisconsin,55093,1,0 +2020-03-18,Pierce,Wisconsin,55093,1,0 +2020-03-19,Pierce,Wisconsin,55093,1,0 +2020-03-20,Pierce,Wisconsin,55093,1,0 +2020-03-21,Pierce,Wisconsin,55093,1,0 +2020-03-22,Pierce,Wisconsin,55093,1,0 +2020-03-23,Pierce,Wisconsin,55093,3,0 +2020-03-24,Pierce,Wisconsin,55093,3,0 +2020-03-25,Pierce,Wisconsin,55093,3,0 +2020-03-26,Pierce,Wisconsin,55093,3,0 +2020-03-27,Pierce,Wisconsin,55093,4,0 +2020-03-28,Pierce,Wisconsin,55093,4,0 +2020-03-29,Pierce,Wisconsin,55093,4,0 +2020-03-30,Pierce,Wisconsin,55093,6,0 +2020-03-31,Pierce,Wisconsin,55093,7,0 +2020-04-01,Pierce,Wisconsin,55093,7,0 +2020-04-02,Pierce,Wisconsin,55093,7,0 +2020-04-03,Pierce,Wisconsin,55093,7,0 +2020-04-04,Pierce,Wisconsin,55093,7,0 +2020-04-05,Pierce,Wisconsin,55093,7,0 +2020-04-06,Pierce,Wisconsin,55093,7,0 +2020-04-07,Pierce,Wisconsin,55093,7,0 +2020-04-08,Pierce,Wisconsin,55093,7,0 +2020-04-09,Pierce,Wisconsin,55093,7,0 +2020-04-10,Pierce,Wisconsin,55093,7,0 +2020-04-11,Pierce,Wisconsin,55093,7,0 +2020-04-12,Pierce,Wisconsin,55093,7,0 +2020-04-13,Pierce,Wisconsin,55093,7,0 +2020-04-14,Pierce,Wisconsin,55093,7,0 +2020-04-15,Pierce,Wisconsin,55093,7,0 +2020-04-16,Pierce,Wisconsin,55093,7,0 +2020-04-17,Pierce,Wisconsin,55093,7,0 +2020-04-18,Pierce,Wisconsin,55093,7,0 +2020-04-19,Pierce,Wisconsin,55093,7,0 +2020-04-20,Pierce,Wisconsin,55093,7,0 +2020-04-21,Pierce,Wisconsin,55093,8,0 +2020-04-22,Pierce,Wisconsin,55093,8,0 +2020-04-23,Pierce,Wisconsin,55093,8,0 +2020-04-24,Pierce,Wisconsin,55093,8,0 +2020-04-25,Pierce,Wisconsin,55093,8,0 +2020-04-26,Pierce,Wisconsin,55093,9,0 +2020-04-27,Pierce,Wisconsin,55093,9,0 +2020-04-28,Pierce,Wisconsin,55093,9,0 +2020-04-29,Pierce,Wisconsin,55093,10,0 +2020-04-30,Pierce,Wisconsin,55093,10,0 +2020-05-01,Pierce,Wisconsin,55093,10,0 +2020-05-02,Pierce,Wisconsin,55093,10,0 +2020-05-03,Pierce,Wisconsin,55093,10,0 +2020-05-04,Pierce,Wisconsin,55093,10,0 +2020-05-05,Pierce,Wisconsin,55093,11,0 +2020-05-06,Pierce,Wisconsin,55093,11,0 +2020-05-07,Pierce,Wisconsin,55093,12,0 +2020-05-08,Pierce,Wisconsin,55093,12,0 +2020-05-09,Pierce,Wisconsin,55093,12,0 +2020-05-10,Pierce,Wisconsin,55093,12,0 +2020-05-11,Pierce,Wisconsin,55093,13,0 +2020-05-12,Pierce,Wisconsin,55093,14,0 +2020-05-13,Pierce,Wisconsin,55093,14,0 +2020-05-14,Pierce,Wisconsin,55093,15,0 +2020-05-15,Pierce,Wisconsin,55093,16,0 +2020-05-16,Pierce,Wisconsin,55093,17,0 +2020-05-17,Pierce,Wisconsin,55093,20,0 +2020-05-18,Pierce,Wisconsin,55093,21,0 +2020-05-19,Pierce,Wisconsin,55093,22,0 +2020-05-20,Pierce,Wisconsin,55093,26,0 +2020-05-21,Pierce,Wisconsin,55093,30,0 +2020-05-22,Pierce,Wisconsin,55093,34,0 +2020-05-23,Pierce,Wisconsin,55093,36,0 +2020-05-24,Pierce,Wisconsin,55093,42,0 +2020-05-25,Pierce,Wisconsin,55093,42,0 +2020-05-26,Pierce,Wisconsin,55093,43,0 +2020-05-27,Pierce,Wisconsin,55093,43,0 +2020-05-28,Pierce,Wisconsin,55093,44,0 +2020-05-29,Pierce,Wisconsin,55093,45,0 +2020-05-30,Pierce,Wisconsin,55093,45,0 +2020-05-31,Pierce,Wisconsin,55093,45,0 +2020-06-01,Pierce,Wisconsin,55093,45,0 +2020-06-02,Pierce,Wisconsin,55093,47,0 +2020-06-03,Pierce,Wisconsin,55093,47,0 +2020-06-04,Pierce,Wisconsin,55093,49,0 +2020-06-05,Pierce,Wisconsin,55093,50,0 +2020-06-06,Pierce,Wisconsin,55093,50,0 +2020-06-07,Pierce,Wisconsin,55093,50,0 +2020-06-08,Pierce,Wisconsin,55093,50,0 +2020-06-09,Pierce,Wisconsin,55093,51,0 +2020-06-10,Pierce,Wisconsin,55093,51,0 +2020-06-11,Pierce,Wisconsin,55093,51,0 +2020-06-12,Pierce,Wisconsin,55093,51,0 +2020-06-13,Pierce,Wisconsin,55093,52,0 +2020-06-14,Pierce,Wisconsin,55093,54,0 +2020-06-15,Pierce,Wisconsin,55093,57,0 +2020-06-16,Pierce,Wisconsin,55093,57,0 +2020-06-17,Pierce,Wisconsin,55093,57,0 +2020-06-18,Pierce,Wisconsin,55093,57,0 +2020-06-19,Pierce,Wisconsin,55093,57,0 +2020-06-20,Pierce,Wisconsin,55093,57,0 +2020-06-21,Pierce,Wisconsin,55093,57,0 +2020-06-22,Pierce,Wisconsin,55093,57,0 +2020-06-23,Pierce,Wisconsin,55093,57,0 +2020-06-24,Pierce,Wisconsin,55093,57,0 +2020-06-25,Pierce,Wisconsin,55093,60,0 +2020-06-26,Pierce,Wisconsin,55093,64,0 +2020-06-27,Pierce,Wisconsin,55093,65,0 +2020-06-28,Pierce,Wisconsin,55093,66,0 +2020-06-29,Pierce,Wisconsin,55093,68,0 +2020-06-30,Pierce,Wisconsin,55093,68,0 +2020-07-01,Pierce,Wisconsin,55093,68,0 +2020-07-02,Pierce,Wisconsin,55093,68,0 +2020-07-03,Pierce,Wisconsin,55093,72,0 +2020-07-04,Pierce,Wisconsin,55093,73,0 +2020-07-05,Pierce,Wisconsin,55093,75,0 +2020-07-06,Pierce,Wisconsin,55093,76,0 +2020-07-07,Pierce,Wisconsin,55093,77,0 +2020-07-08,Pierce,Wisconsin,55093,80,0 +2020-07-09,Pierce,Wisconsin,55093,83,0 +2020-04-10,Polk,Wisconsin,55095,1,0 +2020-04-11,Polk,Wisconsin,55095,1,0 +2020-04-12,Polk,Wisconsin,55095,3,0 +2020-04-13,Polk,Wisconsin,55095,3,0 +2020-04-14,Polk,Wisconsin,55095,3,0 +2020-04-15,Polk,Wisconsin,55095,3,0 +2020-04-16,Polk,Wisconsin,55095,3,0 +2020-04-17,Polk,Wisconsin,55095,4,0 +2020-04-18,Polk,Wisconsin,55095,4,0 +2020-04-19,Polk,Wisconsin,55095,4,0 +2020-04-20,Polk,Wisconsin,55095,4,0 +2020-04-21,Polk,Wisconsin,55095,4,0 +2020-04-22,Polk,Wisconsin,55095,4,0 +2020-04-23,Polk,Wisconsin,55095,4,0 +2020-04-24,Polk,Wisconsin,55095,4,0 +2020-04-25,Polk,Wisconsin,55095,4,0 +2020-04-26,Polk,Wisconsin,55095,4,0 +2020-04-27,Polk,Wisconsin,55095,4,0 +2020-04-28,Polk,Wisconsin,55095,4,0 +2020-04-29,Polk,Wisconsin,55095,4,0 +2020-04-30,Polk,Wisconsin,55095,4,0 +2020-05-01,Polk,Wisconsin,55095,4,0 +2020-05-02,Polk,Wisconsin,55095,4,0 +2020-05-03,Polk,Wisconsin,55095,4,0 +2020-05-04,Polk,Wisconsin,55095,4,0 +2020-05-05,Polk,Wisconsin,55095,4,0 +2020-05-06,Polk,Wisconsin,55095,5,0 +2020-05-07,Polk,Wisconsin,55095,5,0 +2020-05-08,Polk,Wisconsin,55095,5,0 +2020-05-09,Polk,Wisconsin,55095,5,0 +2020-05-10,Polk,Wisconsin,55095,5,0 +2020-05-11,Polk,Wisconsin,55095,5,0 +2020-05-12,Polk,Wisconsin,55095,5,0 +2020-05-13,Polk,Wisconsin,55095,5,0 +2020-05-14,Polk,Wisconsin,55095,6,0 +2020-05-15,Polk,Wisconsin,55095,6,0 +2020-05-16,Polk,Wisconsin,55095,6,0 +2020-05-17,Polk,Wisconsin,55095,6,0 +2020-05-18,Polk,Wisconsin,55095,6,0 +2020-05-19,Polk,Wisconsin,55095,7,0 +2020-05-20,Polk,Wisconsin,55095,7,1 +2020-05-21,Polk,Wisconsin,55095,9,1 +2020-05-22,Polk,Wisconsin,55095,13,1 +2020-05-23,Polk,Wisconsin,55095,15,1 +2020-05-24,Polk,Wisconsin,55095,16,1 +2020-05-25,Polk,Wisconsin,55095,16,1 +2020-05-26,Polk,Wisconsin,55095,16,1 +2020-05-27,Polk,Wisconsin,55095,17,1 +2020-05-28,Polk,Wisconsin,55095,18,1 +2020-05-29,Polk,Wisconsin,55095,18,1 +2020-05-30,Polk,Wisconsin,55095,19,1 +2020-05-31,Polk,Wisconsin,55095,19,1 +2020-06-01,Polk,Wisconsin,55095,19,1 +2020-06-02,Polk,Wisconsin,55095,22,1 +2020-06-03,Polk,Wisconsin,55095,24,1 +2020-06-04,Polk,Wisconsin,55095,28,1 +2020-06-05,Polk,Wisconsin,55095,31,1 +2020-06-06,Polk,Wisconsin,55095,33,1 +2020-06-07,Polk,Wisconsin,55095,33,1 +2020-06-08,Polk,Wisconsin,55095,33,1 +2020-06-09,Polk,Wisconsin,55095,34,1 +2020-06-10,Polk,Wisconsin,55095,36,1 +2020-06-11,Polk,Wisconsin,55095,37,1 +2020-06-12,Polk,Wisconsin,55095,36,1 +2020-06-13,Polk,Wisconsin,55095,36,1 +2020-06-14,Polk,Wisconsin,55095,37,1 +2020-06-15,Polk,Wisconsin,55095,37,1 +2020-06-16,Polk,Wisconsin,55095,36,1 +2020-06-17,Polk,Wisconsin,55095,37,1 +2020-06-18,Polk,Wisconsin,55095,37,1 +2020-06-19,Polk,Wisconsin,55095,39,1 +2020-06-20,Polk,Wisconsin,55095,40,1 +2020-06-21,Polk,Wisconsin,55095,40,1 +2020-06-22,Polk,Wisconsin,55095,40,1 +2020-06-23,Polk,Wisconsin,55095,40,1 +2020-06-24,Polk,Wisconsin,55095,41,1 +2020-06-25,Polk,Wisconsin,55095,41,1 +2020-06-26,Polk,Wisconsin,55095,43,1 +2020-06-27,Polk,Wisconsin,55095,43,1 +2020-06-28,Polk,Wisconsin,55095,46,1 +2020-06-29,Polk,Wisconsin,55095,48,1 +2020-06-30,Polk,Wisconsin,55095,48,1 +2020-07-01,Polk,Wisconsin,55095,52,1 +2020-07-02,Polk,Wisconsin,55095,57,1 +2020-07-03,Polk,Wisconsin,55095,59,1 +2020-07-04,Polk,Wisconsin,55095,59,1 +2020-07-05,Polk,Wisconsin,55095,60,1 +2020-07-06,Polk,Wisconsin,55095,60,1 +2020-07-07,Polk,Wisconsin,55095,61,2 +2020-07-08,Polk,Wisconsin,55095,63,2 +2020-07-09,Polk,Wisconsin,55095,63,2 +2020-03-26,Portage,Wisconsin,55097,1,0 +2020-03-27,Portage,Wisconsin,55097,1,0 +2020-03-28,Portage,Wisconsin,55097,1,0 +2020-03-29,Portage,Wisconsin,55097,1,0 +2020-03-30,Portage,Wisconsin,55097,1,0 +2020-03-31,Portage,Wisconsin,55097,1,0 +2020-04-01,Portage,Wisconsin,55097,1,0 +2020-04-02,Portage,Wisconsin,55097,2,0 +2020-04-03,Portage,Wisconsin,55097,3,0 +2020-04-04,Portage,Wisconsin,55097,3,0 +2020-04-05,Portage,Wisconsin,55097,3,0 +2020-04-06,Portage,Wisconsin,55097,3,0 +2020-04-07,Portage,Wisconsin,55097,4,0 +2020-04-08,Portage,Wisconsin,55097,4,0 +2020-04-09,Portage,Wisconsin,55097,4,0 +2020-04-10,Portage,Wisconsin,55097,4,0 +2020-04-11,Portage,Wisconsin,55097,4,0 +2020-04-12,Portage,Wisconsin,55097,4,0 +2020-04-13,Portage,Wisconsin,55097,4,0 +2020-04-14,Portage,Wisconsin,55097,4,0 +2020-04-15,Portage,Wisconsin,55097,4,0 +2020-04-16,Portage,Wisconsin,55097,4,0 +2020-04-17,Portage,Wisconsin,55097,4,0 +2020-04-18,Portage,Wisconsin,55097,4,0 +2020-04-19,Portage,Wisconsin,55097,4,0 +2020-04-20,Portage,Wisconsin,55097,4,0 +2020-04-21,Portage,Wisconsin,55097,4,0 +2020-04-22,Portage,Wisconsin,55097,4,0 +2020-04-23,Portage,Wisconsin,55097,4,0 +2020-04-24,Portage,Wisconsin,55097,4,0 +2020-04-25,Portage,Wisconsin,55097,4,0 +2020-04-26,Portage,Wisconsin,55097,4,0 +2020-04-27,Portage,Wisconsin,55097,4,0 +2020-04-28,Portage,Wisconsin,55097,4,0 +2020-04-29,Portage,Wisconsin,55097,5,0 +2020-04-30,Portage,Wisconsin,55097,5,0 +2020-05-01,Portage,Wisconsin,55097,5,0 +2020-05-02,Portage,Wisconsin,55097,6,0 +2020-05-03,Portage,Wisconsin,55097,6,0 +2020-05-04,Portage,Wisconsin,55097,7,0 +2020-05-05,Portage,Wisconsin,55097,7,0 +2020-05-06,Portage,Wisconsin,55097,7,0 +2020-05-07,Portage,Wisconsin,55097,7,0 +2020-05-08,Portage,Wisconsin,55097,7,0 +2020-05-09,Portage,Wisconsin,55097,7,0 +2020-05-10,Portage,Wisconsin,55097,7,0 +2020-05-11,Portage,Wisconsin,55097,7,0 +2020-05-12,Portage,Wisconsin,55097,7,0 +2020-05-13,Portage,Wisconsin,55097,7,0 +2020-05-14,Portage,Wisconsin,55097,7,0 +2020-05-15,Portage,Wisconsin,55097,7,0 +2020-05-16,Portage,Wisconsin,55097,7,0 +2020-05-17,Portage,Wisconsin,55097,7,0 +2020-05-18,Portage,Wisconsin,55097,7,0 +2020-05-19,Portage,Wisconsin,55097,7,0 +2020-05-20,Portage,Wisconsin,55097,7,0 +2020-05-21,Portage,Wisconsin,55097,8,0 +2020-05-22,Portage,Wisconsin,55097,8,0 +2020-05-23,Portage,Wisconsin,55097,9,0 +2020-05-24,Portage,Wisconsin,55097,10,0 +2020-05-25,Portage,Wisconsin,55097,10,0 +2020-05-26,Portage,Wisconsin,55097,10,0 +2020-05-27,Portage,Wisconsin,55097,10,0 +2020-05-28,Portage,Wisconsin,55097,11,0 +2020-05-29,Portage,Wisconsin,55097,11,0 +2020-05-30,Portage,Wisconsin,55097,11,0 +2020-05-31,Portage,Wisconsin,55097,11,0 +2020-06-01,Portage,Wisconsin,55097,12,0 +2020-06-02,Portage,Wisconsin,55097,14,0 +2020-06-03,Portage,Wisconsin,55097,14,0 +2020-06-04,Portage,Wisconsin,55097,14,0 +2020-06-05,Portage,Wisconsin,55097,23,0 +2020-06-06,Portage,Wisconsin,55097,33,0 +2020-06-07,Portage,Wisconsin,55097,35,0 +2020-06-08,Portage,Wisconsin,55097,35,0 +2020-06-09,Portage,Wisconsin,55097,39,0 +2020-06-10,Portage,Wisconsin,55097,51,0 +2020-06-11,Portage,Wisconsin,55097,66,0 +2020-06-12,Portage,Wisconsin,55097,68,0 +2020-06-13,Portage,Wisconsin,55097,71,0 +2020-06-14,Portage,Wisconsin,55097,75,0 +2020-06-15,Portage,Wisconsin,55097,79,0 +2020-06-16,Portage,Wisconsin,55097,82,0 +2020-06-17,Portage,Wisconsin,55097,82,0 +2020-06-18,Portage,Wisconsin,55097,86,0 +2020-06-19,Portage,Wisconsin,55097,87,0 +2020-06-20,Portage,Wisconsin,55097,90,0 +2020-06-21,Portage,Wisconsin,55097,91,0 +2020-06-22,Portage,Wisconsin,55097,96,0 +2020-06-23,Portage,Wisconsin,55097,99,0 +2020-06-24,Portage,Wisconsin,55097,101,0 +2020-06-25,Portage,Wisconsin,55097,107,0 +2020-06-26,Portage,Wisconsin,55097,117,0 +2020-06-27,Portage,Wisconsin,55097,128,0 +2020-06-28,Portage,Wisconsin,55097,130,0 +2020-06-29,Portage,Wisconsin,55097,135,0 +2020-06-30,Portage,Wisconsin,55097,142,0 +2020-07-01,Portage,Wisconsin,55097,147,0 +2020-07-02,Portage,Wisconsin,55097,162,0 +2020-07-03,Portage,Wisconsin,55097,168,0 +2020-07-04,Portage,Wisconsin,55097,181,0 +2020-07-05,Portage,Wisconsin,55097,192,0 +2020-07-06,Portage,Wisconsin,55097,196,0 +2020-07-07,Portage,Wisconsin,55097,200,0 +2020-07-08,Portage,Wisconsin,55097,204,0 +2020-07-09,Portage,Wisconsin,55097,211,0 +2020-04-11,Price,Wisconsin,55099,1,0 +2020-04-12,Price,Wisconsin,55099,1,0 +2020-04-13,Price,Wisconsin,55099,1,0 +2020-04-14,Price,Wisconsin,55099,1,0 +2020-04-15,Price,Wisconsin,55099,1,0 +2020-04-16,Price,Wisconsin,55099,1,0 +2020-04-17,Price,Wisconsin,55099,1,0 +2020-04-18,Price,Wisconsin,55099,1,0 +2020-04-19,Price,Wisconsin,55099,1,0 +2020-04-20,Price,Wisconsin,55099,1,0 +2020-04-21,Price,Wisconsin,55099,1,0 +2020-04-22,Price,Wisconsin,55099,1,0 +2020-04-23,Price,Wisconsin,55099,1,0 +2020-04-24,Price,Wisconsin,55099,1,0 +2020-04-25,Price,Wisconsin,55099,1,0 +2020-04-26,Price,Wisconsin,55099,1,0 +2020-04-27,Price,Wisconsin,55099,1,0 +2020-04-28,Price,Wisconsin,55099,1,0 +2020-04-29,Price,Wisconsin,55099,1,0 +2020-04-30,Price,Wisconsin,55099,1,0 +2020-05-01,Price,Wisconsin,55099,1,0 +2020-05-02,Price,Wisconsin,55099,1,0 +2020-05-03,Price,Wisconsin,55099,1,0 +2020-05-04,Price,Wisconsin,55099,1,0 +2020-05-05,Price,Wisconsin,55099,1,0 +2020-05-06,Price,Wisconsin,55099,1,0 +2020-05-07,Price,Wisconsin,55099,1,0 +2020-05-08,Price,Wisconsin,55099,1,0 +2020-05-09,Price,Wisconsin,55099,1,0 +2020-05-10,Price,Wisconsin,55099,1,0 +2020-05-11,Price,Wisconsin,55099,1,0 +2020-05-12,Price,Wisconsin,55099,1,0 +2020-05-13,Price,Wisconsin,55099,1,0 +2020-05-14,Price,Wisconsin,55099,1,0 +2020-05-15,Price,Wisconsin,55099,1,0 +2020-05-16,Price,Wisconsin,55099,1,0 +2020-05-17,Price,Wisconsin,55099,1,0 +2020-05-18,Price,Wisconsin,55099,1,0 +2020-05-19,Price,Wisconsin,55099,1,0 +2020-05-20,Price,Wisconsin,55099,1,0 +2020-05-21,Price,Wisconsin,55099,2,0 +2020-05-22,Price,Wisconsin,55099,2,0 +2020-05-23,Price,Wisconsin,55099,2,0 +2020-05-24,Price,Wisconsin,55099,2,0 +2020-05-25,Price,Wisconsin,55099,2,0 +2020-05-26,Price,Wisconsin,55099,2,0 +2020-05-27,Price,Wisconsin,55099,2,0 +2020-05-28,Price,Wisconsin,55099,2,0 +2020-05-29,Price,Wisconsin,55099,2,0 +2020-05-30,Price,Wisconsin,55099,2,0 +2020-05-31,Price,Wisconsin,55099,2,0 +2020-06-01,Price,Wisconsin,55099,2,0 +2020-06-02,Price,Wisconsin,55099,2,0 +2020-06-03,Price,Wisconsin,55099,2,0 +2020-06-04,Price,Wisconsin,55099,2,0 +2020-06-05,Price,Wisconsin,55099,2,0 +2020-06-06,Price,Wisconsin,55099,2,0 +2020-06-07,Price,Wisconsin,55099,2,0 +2020-06-08,Price,Wisconsin,55099,2,0 +2020-06-09,Price,Wisconsin,55099,2,0 +2020-06-10,Price,Wisconsin,55099,2,0 +2020-06-11,Price,Wisconsin,55099,2,0 +2020-06-12,Price,Wisconsin,55099,2,0 +2020-06-13,Price,Wisconsin,55099,2,0 +2020-06-14,Price,Wisconsin,55099,2,0 +2020-06-15,Price,Wisconsin,55099,2,0 +2020-06-16,Price,Wisconsin,55099,2,0 +2020-06-17,Price,Wisconsin,55099,2,0 +2020-06-18,Price,Wisconsin,55099,2,0 +2020-06-19,Price,Wisconsin,55099,2,0 +2020-06-20,Price,Wisconsin,55099,2,0 +2020-06-21,Price,Wisconsin,55099,2,0 +2020-06-22,Price,Wisconsin,55099,2,0 +2020-06-23,Price,Wisconsin,55099,2,0 +2020-06-24,Price,Wisconsin,55099,2,0 +2020-06-25,Price,Wisconsin,55099,2,0 +2020-06-26,Price,Wisconsin,55099,2,0 +2020-06-27,Price,Wisconsin,55099,2,0 +2020-06-28,Price,Wisconsin,55099,2,0 +2020-06-29,Price,Wisconsin,55099,2,0 +2020-06-30,Price,Wisconsin,55099,2,0 +2020-07-01,Price,Wisconsin,55099,2,0 +2020-07-02,Price,Wisconsin,55099,2,0 +2020-07-03,Price,Wisconsin,55099,2,0 +2020-07-04,Price,Wisconsin,55099,2,0 +2020-07-05,Price,Wisconsin,55099,2,0 +2020-07-06,Price,Wisconsin,55099,2,0 +2020-07-07,Price,Wisconsin,55099,2,0 +2020-07-08,Price,Wisconsin,55099,2,0 +2020-07-09,Price,Wisconsin,55099,4,0 +2020-03-13,Racine,Wisconsin,55101,1,0 +2020-03-14,Racine,Wisconsin,55101,1,0 +2020-03-15,Racine,Wisconsin,55101,1,0 +2020-03-16,Racine,Wisconsin,55101,1,0 +2020-03-17,Racine,Wisconsin,55101,1,0 +2020-03-18,Racine,Wisconsin,55101,1,0 +2020-03-19,Racine,Wisconsin,55101,3,0 +2020-03-20,Racine,Wisconsin,55101,3,0 +2020-03-21,Racine,Wisconsin,55101,4,0 +2020-03-22,Racine,Wisconsin,55101,4,0 +2020-03-23,Racine,Wisconsin,55101,5,0 +2020-03-24,Racine,Wisconsin,55101,5,0 +2020-03-25,Racine,Wisconsin,55101,7,0 +2020-03-26,Racine,Wisconsin,55101,8,0 +2020-03-27,Racine,Wisconsin,55101,9,0 +2020-03-28,Racine,Wisconsin,55101,16,0 +2020-03-29,Racine,Wisconsin,55101,17,0 +2020-03-30,Racine,Wisconsin,55101,21,0 +2020-03-31,Racine,Wisconsin,55101,26,0 +2020-04-01,Racine,Wisconsin,55101,28,0 +2020-04-02,Racine,Wisconsin,55101,35,0 +2020-04-03,Racine,Wisconsin,55101,41,1 +2020-04-04,Racine,Wisconsin,55101,48,1 +2020-04-05,Racine,Wisconsin,55101,54,1 +2020-04-06,Racine,Wisconsin,55101,57,2 +2020-04-07,Racine,Wisconsin,55101,66,2 +2020-04-08,Racine,Wisconsin,55101,77,2 +2020-04-09,Racine,Wisconsin,55101,84,2 +2020-04-10,Racine,Wisconsin,55101,100,3 +2020-04-11,Racine,Wisconsin,55101,105,3 +2020-04-12,Racine,Wisconsin,55101,117,4 +2020-04-13,Racine,Wisconsin,55101,117,5 +2020-04-14,Racine,Wisconsin,55101,135,5 +2020-04-15,Racine,Wisconsin,55101,138,6 +2020-04-16,Racine,Wisconsin,55101,143,6 +2020-04-17,Racine,Wisconsin,55101,157,8 +2020-04-18,Racine,Wisconsin,55101,164,8 +2020-04-19,Racine,Wisconsin,55101,168,9 +2020-04-20,Racine,Wisconsin,55101,174,10 +2020-04-21,Racine,Wisconsin,55101,185,10 +2020-04-22,Racine,Wisconsin,55101,198,10 +2020-04-23,Racine,Wisconsin,55101,215,10 +2020-04-24,Racine,Wisconsin,55101,229,10 +2020-04-25,Racine,Wisconsin,55101,255,10 +2020-04-26,Racine,Wisconsin,55101,270,10 +2020-04-27,Racine,Wisconsin,55101,273,10 +2020-04-28,Racine,Wisconsin,55101,308,12 +2020-04-29,Racine,Wisconsin,55101,317,12 +2020-04-30,Racine,Wisconsin,55101,355,12 +2020-05-01,Racine,Wisconsin,55101,393,13 +2020-05-02,Racine,Wisconsin,55101,408,13 +2020-05-03,Racine,Wisconsin,55101,435,13 +2020-05-04,Racine,Wisconsin,55101,457,14 +2020-05-05,Racine,Wisconsin,55101,535,15 +2020-05-06,Racine,Wisconsin,55101,559,15 +2020-05-07,Racine,Wisconsin,55101,590,16 +2020-05-08,Racine,Wisconsin,55101,634,16 +2020-05-09,Racine,Wisconsin,55101,680,16 +2020-05-10,Racine,Wisconsin,55101,704,16 +2020-05-11,Racine,Wisconsin,55101,724,16 +2020-05-12,Racine,Wisconsin,55101,763,17 +2020-05-13,Racine,Wisconsin,55101,785,17 +2020-05-14,Racine,Wisconsin,55101,833,17 +2020-05-15,Racine,Wisconsin,55101,920,18 +2020-05-16,Racine,Wisconsin,55101,1004,18 +2020-05-17,Racine,Wisconsin,55101,1017,18 +2020-05-18,Racine,Wisconsin,55101,1034,18 +2020-05-19,Racine,Wisconsin,55101,1061,19 +2020-05-20,Racine,Wisconsin,55101,1115,20 +2020-05-21,Racine,Wisconsin,55101,1166,20 +2020-05-22,Racine,Wisconsin,55101,1269,22 +2020-05-23,Racine,Wisconsin,55101,1311,22 +2020-05-24,Racine,Wisconsin,55101,1387,22 +2020-05-25,Racine,Wisconsin,55101,1394,25 +2020-05-26,Racine,Wisconsin,55101,1395,25 +2020-05-27,Racine,Wisconsin,55101,1579,28 +2020-05-28,Racine,Wisconsin,55101,1605,33 +2020-05-29,Racine,Wisconsin,55101,1652,35 +2020-05-30,Racine,Wisconsin,55101,1714,36 +2020-05-31,Racine,Wisconsin,55101,1722,37 +2020-06-01,Racine,Wisconsin,55101,1733,40 +2020-06-02,Racine,Wisconsin,55101,1762,41 +2020-06-03,Racine,Wisconsin,55101,1797,41 +2020-06-04,Racine,Wisconsin,55101,1838,44 +2020-06-05,Racine,Wisconsin,55101,1878,46 +2020-06-06,Racine,Wisconsin,55101,1906,47 +2020-06-07,Racine,Wisconsin,55101,1910,47 +2020-06-08,Racine,Wisconsin,55101,1911,47 +2020-06-09,Racine,Wisconsin,55101,1939,51 +2020-06-10,Racine,Wisconsin,55101,1952,51 +2020-06-11,Racine,Wisconsin,55101,1966,51 +2020-06-12,Racine,Wisconsin,55101,1975,52 +2020-06-13,Racine,Wisconsin,55101,1986,54 +2020-06-14,Racine,Wisconsin,55101,1989,54 +2020-06-15,Racine,Wisconsin,55101,1991,54 +2020-06-16,Racine,Wisconsin,55101,2033,55 +2020-06-17,Racine,Wisconsin,55101,2039,56 +2020-06-18,Racine,Wisconsin,55101,2053,56 +2020-06-19,Racine,Wisconsin,55101,2066,57 +2020-06-20,Racine,Wisconsin,55101,2079,58 +2020-06-21,Racine,Wisconsin,55101,2081,58 +2020-06-22,Racine,Wisconsin,55101,2090,58 +2020-06-23,Racine,Wisconsin,55101,2107,60 +2020-06-24,Racine,Wisconsin,55101,2114,61 +2020-06-25,Racine,Wisconsin,55101,2124,61 +2020-06-26,Racine,Wisconsin,55101,2144,61 +2020-06-27,Racine,Wisconsin,55101,2148,61 +2020-06-28,Racine,Wisconsin,55101,2151,61 +2020-06-29,Racine,Wisconsin,55101,2155,61 +2020-06-30,Racine,Wisconsin,55101,2171,63 +2020-07-01,Racine,Wisconsin,55101,2176,63 +2020-07-02,Racine,Wisconsin,55101,2187,64 +2020-07-03,Racine,Wisconsin,55101,2194,65 +2020-07-04,Racine,Wisconsin,55101,2196,65 +2020-07-05,Racine,Wisconsin,55101,2217,65 +2020-07-06,Racine,Wisconsin,55101,2218,65 +2020-07-07,Racine,Wisconsin,55101,2253,65 +2020-07-08,Racine,Wisconsin,55101,2272,65 +2020-07-09,Racine,Wisconsin,55101,2294,65 +2020-03-27,Richland,Wisconsin,55103,2,0 +2020-03-28,Richland,Wisconsin,55103,2,0 +2020-03-29,Richland,Wisconsin,55103,2,0 +2020-03-30,Richland,Wisconsin,55103,2,0 +2020-03-31,Richland,Wisconsin,55103,2,0 +2020-04-01,Richland,Wisconsin,55103,2,0 +2020-04-02,Richland,Wisconsin,55103,2,0 +2020-04-03,Richland,Wisconsin,55103,2,0 +2020-04-04,Richland,Wisconsin,55103,3,0 +2020-04-05,Richland,Wisconsin,55103,3,0 +2020-04-06,Richland,Wisconsin,55103,3,0 +2020-04-07,Richland,Wisconsin,55103,3,0 +2020-04-08,Richland,Wisconsin,55103,3,0 +2020-04-09,Richland,Wisconsin,55103,3,0 +2020-04-10,Richland,Wisconsin,55103,4,0 +2020-04-11,Richland,Wisconsin,55103,5,0 +2020-04-12,Richland,Wisconsin,55103,5,0 +2020-04-13,Richland,Wisconsin,55103,5,0 +2020-04-14,Richland,Wisconsin,55103,6,0 +2020-04-15,Richland,Wisconsin,55103,7,0 +2020-04-16,Richland,Wisconsin,55103,7,1 +2020-04-17,Richland,Wisconsin,55103,8,1 +2020-04-18,Richland,Wisconsin,55103,8,1 +2020-04-19,Richland,Wisconsin,55103,8,1 +2020-04-20,Richland,Wisconsin,55103,8,1 +2020-04-21,Richland,Wisconsin,55103,8,1 +2020-04-22,Richland,Wisconsin,55103,9,1 +2020-04-23,Richland,Wisconsin,55103,10,1 +2020-04-24,Richland,Wisconsin,55103,10,1 +2020-04-25,Richland,Wisconsin,55103,10,1 +2020-04-26,Richland,Wisconsin,55103,11,1 +2020-04-27,Richland,Wisconsin,55103,11,1 +2020-04-28,Richland,Wisconsin,55103,11,2 +2020-04-29,Richland,Wisconsin,55103,11,2 +2020-04-30,Richland,Wisconsin,55103,12,2 +2020-05-01,Richland,Wisconsin,55103,12,2 +2020-05-02,Richland,Wisconsin,55103,12,2 +2020-05-03,Richland,Wisconsin,55103,13,2 +2020-05-04,Richland,Wisconsin,55103,13,2 +2020-05-05,Richland,Wisconsin,55103,13,2 +2020-05-06,Richland,Wisconsin,55103,13,2 +2020-05-07,Richland,Wisconsin,55103,13,2 +2020-05-08,Richland,Wisconsin,55103,13,2 +2020-05-09,Richland,Wisconsin,55103,13,2 +2020-05-10,Richland,Wisconsin,55103,13,2 +2020-05-11,Richland,Wisconsin,55103,13,2 +2020-05-12,Richland,Wisconsin,55103,13,2 +2020-05-13,Richland,Wisconsin,55103,13,2 +2020-05-14,Richland,Wisconsin,55103,13,2 +2020-05-15,Richland,Wisconsin,55103,13,2 +2020-05-16,Richland,Wisconsin,55103,14,3 +2020-05-17,Richland,Wisconsin,55103,14,3 +2020-05-18,Richland,Wisconsin,55103,14,3 +2020-05-19,Richland,Wisconsin,55103,14,3 +2020-05-20,Richland,Wisconsin,55103,14,3 +2020-05-21,Richland,Wisconsin,55103,14,4 +2020-05-22,Richland,Wisconsin,55103,14,4 +2020-05-23,Richland,Wisconsin,55103,14,4 +2020-05-24,Richland,Wisconsin,55103,14,4 +2020-05-25,Richland,Wisconsin,55103,14,4 +2020-05-26,Richland,Wisconsin,55103,14,4 +2020-05-27,Richland,Wisconsin,55103,14,4 +2020-05-28,Richland,Wisconsin,55103,14,4 +2020-05-29,Richland,Wisconsin,55103,14,4 +2020-05-30,Richland,Wisconsin,55103,14,4 +2020-05-31,Richland,Wisconsin,55103,14,4 +2020-06-01,Richland,Wisconsin,55103,14,4 +2020-06-02,Richland,Wisconsin,55103,14,4 +2020-06-03,Richland,Wisconsin,55103,14,4 +2020-06-04,Richland,Wisconsin,55103,14,4 +2020-06-05,Richland,Wisconsin,55103,14,4 +2020-06-06,Richland,Wisconsin,55103,14,4 +2020-06-07,Richland,Wisconsin,55103,14,4 +2020-06-08,Richland,Wisconsin,55103,14,4 +2020-06-09,Richland,Wisconsin,55103,14,4 +2020-06-10,Richland,Wisconsin,55103,14,4 +2020-06-11,Richland,Wisconsin,55103,14,4 +2020-06-12,Richland,Wisconsin,55103,14,4 +2020-06-13,Richland,Wisconsin,55103,14,4 +2020-06-14,Richland,Wisconsin,55103,14,4 +2020-06-15,Richland,Wisconsin,55103,14,4 +2020-06-16,Richland,Wisconsin,55103,14,4 +2020-06-17,Richland,Wisconsin,55103,14,4 +2020-06-18,Richland,Wisconsin,55103,14,4 +2020-06-19,Richland,Wisconsin,55103,15,4 +2020-06-20,Richland,Wisconsin,55103,15,4 +2020-06-21,Richland,Wisconsin,55103,15,4 +2020-06-22,Richland,Wisconsin,55103,15,4 +2020-06-23,Richland,Wisconsin,55103,15,4 +2020-06-24,Richland,Wisconsin,55103,15,4 +2020-06-25,Richland,Wisconsin,55103,15,4 +2020-06-26,Richland,Wisconsin,55103,15,4 +2020-06-27,Richland,Wisconsin,55103,15,4 +2020-06-28,Richland,Wisconsin,55103,15,4 +2020-06-29,Richland,Wisconsin,55103,15,4 +2020-06-30,Richland,Wisconsin,55103,15,4 +2020-07-01,Richland,Wisconsin,55103,15,4 +2020-07-02,Richland,Wisconsin,55103,15,4 +2020-07-03,Richland,Wisconsin,55103,15,4 +2020-07-04,Richland,Wisconsin,55103,15,4 +2020-07-05,Richland,Wisconsin,55103,15,4 +2020-07-06,Richland,Wisconsin,55103,15,4 +2020-07-07,Richland,Wisconsin,55103,15,4 +2020-07-08,Richland,Wisconsin,55103,15,4 +2020-07-09,Richland,Wisconsin,55103,15,4 +2020-03-20,Rock,Wisconsin,55105,1,0 +2020-03-21,Rock,Wisconsin,55105,3,0 +2020-03-22,Rock,Wisconsin,55105,3,0 +2020-03-23,Rock,Wisconsin,55105,3,0 +2020-03-24,Rock,Wisconsin,55105,3,0 +2020-03-25,Rock,Wisconsin,55105,4,0 +2020-03-26,Rock,Wisconsin,55105,8,0 +2020-03-27,Rock,Wisconsin,55105,12,0 +2020-03-28,Rock,Wisconsin,55105,12,0 +2020-03-29,Rock,Wisconsin,55105,14,0 +2020-03-30,Rock,Wisconsin,55105,15,0 +2020-03-31,Rock,Wisconsin,55105,16,0 +2020-04-01,Rock,Wisconsin,55105,17,1 +2020-04-02,Rock,Wisconsin,55105,19,1 +2020-04-03,Rock,Wisconsin,55105,20,1 +2020-04-04,Rock,Wisconsin,55105,26,1 +2020-04-05,Rock,Wisconsin,55105,28,2 +2020-04-06,Rock,Wisconsin,55105,34,2 +2020-04-07,Rock,Wisconsin,55105,37,2 +2020-04-08,Rock,Wisconsin,55105,42,2 +2020-04-09,Rock,Wisconsin,55105,47,2 +2020-04-10,Rock,Wisconsin,55105,51,2 +2020-04-11,Rock,Wisconsin,55105,53,3 +2020-04-12,Rock,Wisconsin,55105,56,3 +2020-04-13,Rock,Wisconsin,55105,60,3 +2020-04-14,Rock,Wisconsin,55105,59,4 +2020-04-15,Rock,Wisconsin,55105,62,4 +2020-04-16,Rock,Wisconsin,55105,63,4 +2020-04-17,Rock,Wisconsin,55105,63,4 +2020-04-18,Rock,Wisconsin,55105,68,4 +2020-04-19,Rock,Wisconsin,55105,74,4 +2020-04-20,Rock,Wisconsin,55105,80,4 +2020-04-21,Rock,Wisconsin,55105,83,4 +2020-04-22,Rock,Wisconsin,55105,86,4 +2020-04-23,Rock,Wisconsin,55105,99,4 +2020-04-24,Rock,Wisconsin,55105,120,4 +2020-04-25,Rock,Wisconsin,55105,151,4 +2020-04-26,Rock,Wisconsin,55105,151,5 +2020-04-27,Rock,Wisconsin,55105,164,5 +2020-04-28,Rock,Wisconsin,55105,178,6 +2020-04-29,Rock,Wisconsin,55105,183,6 +2020-04-30,Rock,Wisconsin,55105,198,6 +2020-05-01,Rock,Wisconsin,55105,222,6 +2020-05-02,Rock,Wisconsin,55105,243,7 +2020-05-03,Rock,Wisconsin,55105,262,7 +2020-05-04,Rock,Wisconsin,55105,289,7 +2020-05-05,Rock,Wisconsin,55105,301,9 +2020-05-06,Rock,Wisconsin,55105,311,10 +2020-05-07,Rock,Wisconsin,55105,324,12 +2020-05-08,Rock,Wisconsin,55105,343,12 +2020-05-09,Rock,Wisconsin,55105,347,13 +2020-05-10,Rock,Wisconsin,55105,354,13 +2020-05-11,Rock,Wisconsin,55105,361,13 +2020-05-12,Rock,Wisconsin,55105,369,13 +2020-05-13,Rock,Wisconsin,55105,380,13 +2020-05-14,Rock,Wisconsin,55105,393,14 +2020-05-15,Rock,Wisconsin,55105,406,14 +2020-05-16,Rock,Wisconsin,55105,422,14 +2020-05-17,Rock,Wisconsin,55105,429,14 +2020-05-18,Rock,Wisconsin,55105,432,14 +2020-05-19,Rock,Wisconsin,55105,438,14 +2020-05-20,Rock,Wisconsin,55105,452,14 +2020-05-21,Rock,Wisconsin,55105,493,14 +2020-05-22,Rock,Wisconsin,55105,520,15 +2020-05-23,Rock,Wisconsin,55105,529,16 +2020-05-24,Rock,Wisconsin,55105,545,16 +2020-05-25,Rock,Wisconsin,55105,569,16 +2020-05-26,Rock,Wisconsin,55105,583,16 +2020-05-27,Rock,Wisconsin,55105,588,18 +2020-05-28,Rock,Wisconsin,55105,607,18 +2020-05-29,Rock,Wisconsin,55105,620,18 +2020-05-30,Rock,Wisconsin,55105,632,19 +2020-05-31,Rock,Wisconsin,55105,636,19 +2020-06-01,Rock,Wisconsin,55105,639,19 +2020-06-02,Rock,Wisconsin,55105,646,19 +2020-06-03,Rock,Wisconsin,55105,744,19 +2020-06-04,Rock,Wisconsin,55105,757,20 +2020-06-05,Rock,Wisconsin,55105,767,20 +2020-06-06,Rock,Wisconsin,55105,770,21 +2020-06-07,Rock,Wisconsin,55105,770,21 +2020-06-08,Rock,Wisconsin,55105,792,21 +2020-06-09,Rock,Wisconsin,55105,799,21 +2020-06-10,Rock,Wisconsin,55105,812,21 +2020-06-11,Rock,Wisconsin,55105,817,21 +2020-06-12,Rock,Wisconsin,55105,832,21 +2020-06-13,Rock,Wisconsin,55105,840,21 +2020-06-14,Rock,Wisconsin,55105,842,21 +2020-06-15,Rock,Wisconsin,55105,844,21 +2020-06-16,Rock,Wisconsin,55105,851,22 +2020-06-17,Rock,Wisconsin,55105,857,22 +2020-06-18,Rock,Wisconsin,55105,871,22 +2020-06-19,Rock,Wisconsin,55105,875,23 +2020-06-20,Rock,Wisconsin,55105,881,23 +2020-06-21,Rock,Wisconsin,55105,881,23 +2020-06-22,Rock,Wisconsin,55105,893,23 +2020-06-23,Rock,Wisconsin,55105,905,23 +2020-06-24,Rock,Wisconsin,55105,916,23 +2020-06-25,Rock,Wisconsin,55105,924,23 +2020-06-26,Rock,Wisconsin,55105,932,23 +2020-06-27,Rock,Wisconsin,55105,932,23 +2020-06-28,Rock,Wisconsin,55105,953,23 +2020-06-29,Rock,Wisconsin,55105,957,23 +2020-06-30,Rock,Wisconsin,55105,968,24 +2020-07-01,Rock,Wisconsin,55105,978,24 +2020-07-02,Rock,Wisconsin,55105,987,24 +2020-07-03,Rock,Wisconsin,55105,1002,24 +2020-07-04,Rock,Wisconsin,55105,1003,24 +2020-07-05,Rock,Wisconsin,55105,1005,24 +2020-07-06,Rock,Wisconsin,55105,1046,24 +2020-07-07,Rock,Wisconsin,55105,1053,24 +2020-07-08,Rock,Wisconsin,55105,1070,24 +2020-07-09,Rock,Wisconsin,55105,1088,24 +2020-04-03,Rusk,Wisconsin,55107,1,0 +2020-04-04,Rusk,Wisconsin,55107,1,0 +2020-04-05,Rusk,Wisconsin,55107,3,0 +2020-04-06,Rusk,Wisconsin,55107,3,0 +2020-04-07,Rusk,Wisconsin,55107,3,0 +2020-04-08,Rusk,Wisconsin,55107,3,0 +2020-04-09,Rusk,Wisconsin,55107,3,0 +2020-04-10,Rusk,Wisconsin,55107,3,0 +2020-04-11,Rusk,Wisconsin,55107,3,0 +2020-04-12,Rusk,Wisconsin,55107,3,0 +2020-04-13,Rusk,Wisconsin,55107,3,0 +2020-04-14,Rusk,Wisconsin,55107,3,0 +2020-04-15,Rusk,Wisconsin,55107,3,0 +2020-04-16,Rusk,Wisconsin,55107,3,0 +2020-04-17,Rusk,Wisconsin,55107,3,0 +2020-04-18,Rusk,Wisconsin,55107,4,0 +2020-04-19,Rusk,Wisconsin,55107,4,0 +2020-04-20,Rusk,Wisconsin,55107,4,0 +2020-04-21,Rusk,Wisconsin,55107,4,0 +2020-04-22,Rusk,Wisconsin,55107,4,0 +2020-04-23,Rusk,Wisconsin,55107,4,0 +2020-04-24,Rusk,Wisconsin,55107,4,0 +2020-04-25,Rusk,Wisconsin,55107,4,0 +2020-04-26,Rusk,Wisconsin,55107,4,0 +2020-04-27,Rusk,Wisconsin,55107,4,0 +2020-04-28,Rusk,Wisconsin,55107,4,0 +2020-04-29,Rusk,Wisconsin,55107,4,0 +2020-04-30,Rusk,Wisconsin,55107,4,0 +2020-05-01,Rusk,Wisconsin,55107,4,0 +2020-05-02,Rusk,Wisconsin,55107,4,0 +2020-05-03,Rusk,Wisconsin,55107,4,0 +2020-05-04,Rusk,Wisconsin,55107,4,0 +2020-05-05,Rusk,Wisconsin,55107,4,0 +2020-05-06,Rusk,Wisconsin,55107,4,0 +2020-05-07,Rusk,Wisconsin,55107,4,0 +2020-05-08,Rusk,Wisconsin,55107,4,0 +2020-05-09,Rusk,Wisconsin,55107,4,0 +2020-05-10,Rusk,Wisconsin,55107,4,0 +2020-05-11,Rusk,Wisconsin,55107,4,0 +2020-05-12,Rusk,Wisconsin,55107,4,0 +2020-05-13,Rusk,Wisconsin,55107,4,0 +2020-05-14,Rusk,Wisconsin,55107,4,0 +2020-05-15,Rusk,Wisconsin,55107,4,0 +2020-05-16,Rusk,Wisconsin,55107,4,0 +2020-05-17,Rusk,Wisconsin,55107,4,0 +2020-05-18,Rusk,Wisconsin,55107,4,0 +2020-05-19,Rusk,Wisconsin,55107,4,0 +2020-05-20,Rusk,Wisconsin,55107,4,0 +2020-05-21,Rusk,Wisconsin,55107,4,0 +2020-05-22,Rusk,Wisconsin,55107,4,0 +2020-05-23,Rusk,Wisconsin,55107,4,0 +2020-05-24,Rusk,Wisconsin,55107,4,0 +2020-05-25,Rusk,Wisconsin,55107,4,0 +2020-05-26,Rusk,Wisconsin,55107,4,0 +2020-05-27,Rusk,Wisconsin,55107,5,0 +2020-05-28,Rusk,Wisconsin,55107,5,0 +2020-05-29,Rusk,Wisconsin,55107,5,0 +2020-05-30,Rusk,Wisconsin,55107,5,0 +2020-05-31,Rusk,Wisconsin,55107,5,0 +2020-06-01,Rusk,Wisconsin,55107,5,0 +2020-06-02,Rusk,Wisconsin,55107,5,0 +2020-06-03,Rusk,Wisconsin,55107,5,0 +2020-06-04,Rusk,Wisconsin,55107,5,0 +2020-06-05,Rusk,Wisconsin,55107,5,0 +2020-06-06,Rusk,Wisconsin,55107,5,0 +2020-06-07,Rusk,Wisconsin,55107,5,0 +2020-06-08,Rusk,Wisconsin,55107,5,0 +2020-06-09,Rusk,Wisconsin,55107,5,0 +2020-06-10,Rusk,Wisconsin,55107,5,0 +2020-06-11,Rusk,Wisconsin,55107,7,0 +2020-06-12,Rusk,Wisconsin,55107,9,0 +2020-06-13,Rusk,Wisconsin,55107,9,0 +2020-06-14,Rusk,Wisconsin,55107,10,0 +2020-06-15,Rusk,Wisconsin,55107,10,0 +2020-06-16,Rusk,Wisconsin,55107,10,0 +2020-06-17,Rusk,Wisconsin,55107,10,0 +2020-06-18,Rusk,Wisconsin,55107,10,0 +2020-06-19,Rusk,Wisconsin,55107,10,0 +2020-06-20,Rusk,Wisconsin,55107,11,0 +2020-06-21,Rusk,Wisconsin,55107,11,0 +2020-06-22,Rusk,Wisconsin,55107,11,0 +2020-06-23,Rusk,Wisconsin,55107,11,0 +2020-06-24,Rusk,Wisconsin,55107,11,0 +2020-06-25,Rusk,Wisconsin,55107,11,0 +2020-06-26,Rusk,Wisconsin,55107,11,0 +2020-06-27,Rusk,Wisconsin,55107,11,0 +2020-06-28,Rusk,Wisconsin,55107,11,0 +2020-06-29,Rusk,Wisconsin,55107,11,0 +2020-06-30,Rusk,Wisconsin,55107,11,0 +2020-07-01,Rusk,Wisconsin,55107,11,0 +2020-07-02,Rusk,Wisconsin,55107,11,0 +2020-07-03,Rusk,Wisconsin,55107,11,0 +2020-07-04,Rusk,Wisconsin,55107,11,0 +2020-07-05,Rusk,Wisconsin,55107,11,0 +2020-07-06,Rusk,Wisconsin,55107,11,0 +2020-07-07,Rusk,Wisconsin,55107,11,1 +2020-07-08,Rusk,Wisconsin,55107,11,1 +2020-07-09,Rusk,Wisconsin,55107,11,1 +2020-03-20,St. Croix,Wisconsin,55109,2,0 +2020-03-21,St. Croix,Wisconsin,55109,2,0 +2020-03-22,St. Croix,Wisconsin,55109,2,0 +2020-03-23,St. Croix,Wisconsin,55109,3,0 +2020-03-24,St. Croix,Wisconsin,55109,4,0 +2020-03-25,St. Croix,Wisconsin,55109,4,0 +2020-03-26,St. Croix,Wisconsin,55109,4,0 +2020-03-27,St. Croix,Wisconsin,55109,4,0 +2020-03-28,St. Croix,Wisconsin,55109,4,0 +2020-03-29,St. Croix,Wisconsin,55109,4,0 +2020-03-30,St. Croix,Wisconsin,55109,4,0 +2020-03-31,St. Croix,Wisconsin,55109,5,0 +2020-04-01,St. Croix,Wisconsin,55109,6,0 +2020-04-02,St. Croix,Wisconsin,55109,6,0 +2020-04-03,St. Croix,Wisconsin,55109,7,0 +2020-04-04,St. Croix,Wisconsin,55109,7,0 +2020-04-05,St. Croix,Wisconsin,55109,7,0 +2020-04-06,St. Croix,Wisconsin,55109,7,0 +2020-04-07,St. Croix,Wisconsin,55109,7,0 +2020-04-08,St. Croix,Wisconsin,55109,7,0 +2020-04-09,St. Croix,Wisconsin,55109,7,0 +2020-04-10,St. Croix,Wisconsin,55109,7,0 +2020-04-11,St. Croix,Wisconsin,55109,8,0 +2020-04-12,St. Croix,Wisconsin,55109,9,0 +2020-04-13,St. Croix,Wisconsin,55109,10,0 +2020-04-14,St. Croix,Wisconsin,55109,10,0 +2020-04-15,St. Croix,Wisconsin,55109,10,0 +2020-04-16,St. Croix,Wisconsin,55109,11,0 +2020-04-17,St. Croix,Wisconsin,55109,11,0 +2020-04-18,St. Croix,Wisconsin,55109,11,0 +2020-04-19,St. Croix,Wisconsin,55109,11,0 +2020-04-20,St. Croix,Wisconsin,55109,11,0 +2020-04-21,St. Croix,Wisconsin,55109,11,0 +2020-04-22,St. Croix,Wisconsin,55109,12,0 +2020-04-23,St. Croix,Wisconsin,55109,13,0 +2020-04-24,St. Croix,Wisconsin,55109,13,0 +2020-04-25,St. Croix,Wisconsin,55109,13,0 +2020-04-26,St. Croix,Wisconsin,55109,13,0 +2020-04-27,St. Croix,Wisconsin,55109,13,0 +2020-04-28,St. Croix,Wisconsin,55109,13,0 +2020-04-29,St. Croix,Wisconsin,55109,13,0 +2020-04-30,St. Croix,Wisconsin,55109,16,0 +2020-05-01,St. Croix,Wisconsin,55109,16,0 +2020-05-02,St. Croix,Wisconsin,55109,16,0 +2020-05-03,St. Croix,Wisconsin,55109,18,0 +2020-05-04,St. Croix,Wisconsin,55109,20,0 +2020-05-05,St. Croix,Wisconsin,55109,21,0 +2020-05-06,St. Croix,Wisconsin,55109,23,0 +2020-05-07,St. Croix,Wisconsin,55109,23,0 +2020-05-08,St. Croix,Wisconsin,55109,26,0 +2020-05-09,St. Croix,Wisconsin,55109,27,0 +2020-05-10,St. Croix,Wisconsin,55109,27,0 +2020-05-11,St. Croix,Wisconsin,55109,29,0 +2020-05-12,St. Croix,Wisconsin,55109,31,0 +2020-05-13,St. Croix,Wisconsin,55109,36,0 +2020-05-14,St. Croix,Wisconsin,55109,37,0 +2020-05-15,St. Croix,Wisconsin,55109,37,0 +2020-05-16,St. Croix,Wisconsin,55109,39,0 +2020-05-17,St. Croix,Wisconsin,55109,44,0 +2020-05-18,St. Croix,Wisconsin,55109,48,0 +2020-05-19,St. Croix,Wisconsin,55109,48,0 +2020-05-20,St. Croix,Wisconsin,55109,52,0 +2020-05-21,St. Croix,Wisconsin,55109,57,0 +2020-05-22,St. Croix,Wisconsin,55109,58,0 +2020-05-23,St. Croix,Wisconsin,55109,65,0 +2020-05-24,St. Croix,Wisconsin,55109,67,0 +2020-05-25,St. Croix,Wisconsin,55109,68,0 +2020-05-26,St. Croix,Wisconsin,55109,70,0 +2020-05-27,St. Croix,Wisconsin,55109,71,0 +2020-05-28,St. Croix,Wisconsin,55109,74,0 +2020-05-29,St. Croix,Wisconsin,55109,77,0 +2020-05-30,St. Croix,Wisconsin,55109,81,0 +2020-05-31,St. Croix,Wisconsin,55109,86,0 +2020-06-01,St. Croix,Wisconsin,55109,92,0 +2020-06-02,St. Croix,Wisconsin,55109,95,0 +2020-06-03,St. Croix,Wisconsin,55109,97,0 +2020-06-04,St. Croix,Wisconsin,55109,100,0 +2020-06-05,St. Croix,Wisconsin,55109,102,0 +2020-06-06,St. Croix,Wisconsin,55109,105,0 +2020-06-07,St. Croix,Wisconsin,55109,105,0 +2020-06-08,St. Croix,Wisconsin,55109,106,0 +2020-06-09,St. Croix,Wisconsin,55109,107,0 +2020-06-10,St. Croix,Wisconsin,55109,108,0 +2020-06-11,St. Croix,Wisconsin,55109,108,0 +2020-06-12,St. Croix,Wisconsin,55109,110,0 +2020-06-13,St. Croix,Wisconsin,55109,111,0 +2020-06-14,St. Croix,Wisconsin,55109,111,0 +2020-06-15,St. Croix,Wisconsin,55109,111,0 +2020-06-16,St. Croix,Wisconsin,55109,116,0 +2020-06-17,St. Croix,Wisconsin,55109,116,0 +2020-06-18,St. Croix,Wisconsin,55109,119,0 +2020-06-19,St. Croix,Wisconsin,55109,122,1 +2020-06-20,St. Croix,Wisconsin,55109,126,1 +2020-06-21,St. Croix,Wisconsin,55109,128,1 +2020-06-22,St. Croix,Wisconsin,55109,131,1 +2020-06-23,St. Croix,Wisconsin,55109,134,1 +2020-06-24,St. Croix,Wisconsin,55109,135,1 +2020-06-25,St. Croix,Wisconsin,55109,141,1 +2020-06-26,St. Croix,Wisconsin,55109,150,1 +2020-06-27,St. Croix,Wisconsin,55109,155,1 +2020-06-28,St. Croix,Wisconsin,55109,158,1 +2020-06-29,St. Croix,Wisconsin,55109,159,1 +2020-06-30,St. Croix,Wisconsin,55109,164,1 +2020-07-01,St. Croix,Wisconsin,55109,171,1 +2020-07-02,St. Croix,Wisconsin,55109,179,1 +2020-07-03,St. Croix,Wisconsin,55109,191,1 +2020-07-04,St. Croix,Wisconsin,55109,202,1 +2020-07-05,St. Croix,Wisconsin,55109,205,1 +2020-07-06,St. Croix,Wisconsin,55109,218,1 +2020-07-07,St. Croix,Wisconsin,55109,231,1 +2020-07-08,St. Croix,Wisconsin,55109,238,1 +2020-07-09,St. Croix,Wisconsin,55109,243,1 +2020-03-19,Sauk,Wisconsin,55111,1,0 +2020-03-20,Sauk,Wisconsin,55111,2,0 +2020-03-21,Sauk,Wisconsin,55111,2,0 +2020-03-22,Sauk,Wisconsin,55111,2,0 +2020-03-23,Sauk,Wisconsin,55111,3,0 +2020-03-24,Sauk,Wisconsin,55111,4,0 +2020-03-25,Sauk,Wisconsin,55111,6,0 +2020-03-26,Sauk,Wisconsin,55111,7,0 +2020-03-27,Sauk,Wisconsin,55111,8,1 +2020-03-28,Sauk,Wisconsin,55111,11,1 +2020-03-29,Sauk,Wisconsin,55111,12,1 +2020-03-30,Sauk,Wisconsin,55111,13,1 +2020-03-31,Sauk,Wisconsin,55111,13,1 +2020-04-01,Sauk,Wisconsin,55111,14,2 +2020-04-02,Sauk,Wisconsin,55111,16,2 +2020-04-03,Sauk,Wisconsin,55111,18,2 +2020-04-04,Sauk,Wisconsin,55111,18,2 +2020-04-05,Sauk,Wisconsin,55111,18,2 +2020-04-06,Sauk,Wisconsin,55111,18,2 +2020-04-07,Sauk,Wisconsin,55111,20,2 +2020-04-08,Sauk,Wisconsin,55111,20,2 +2020-04-09,Sauk,Wisconsin,55111,21,2 +2020-04-10,Sauk,Wisconsin,55111,25,2 +2020-04-11,Sauk,Wisconsin,55111,25,2 +2020-04-12,Sauk,Wisconsin,55111,26,2 +2020-04-13,Sauk,Wisconsin,55111,26,2 +2020-04-14,Sauk,Wisconsin,55111,28,4 +2020-04-15,Sauk,Wisconsin,55111,31,4 +2020-04-16,Sauk,Wisconsin,55111,31,3 +2020-04-17,Sauk,Wisconsin,55111,31,3 +2020-04-18,Sauk,Wisconsin,55111,32,3 +2020-04-19,Sauk,Wisconsin,55111,33,3 +2020-04-20,Sauk,Wisconsin,55111,34,3 +2020-04-21,Sauk,Wisconsin,55111,34,3 +2020-04-22,Sauk,Wisconsin,55111,36,3 +2020-04-23,Sauk,Wisconsin,55111,37,3 +2020-04-24,Sauk,Wisconsin,55111,38,3 +2020-04-25,Sauk,Wisconsin,55111,38,3 +2020-04-26,Sauk,Wisconsin,55111,40,3 +2020-04-27,Sauk,Wisconsin,55111,42,3 +2020-04-28,Sauk,Wisconsin,55111,44,3 +2020-04-29,Sauk,Wisconsin,55111,44,3 +2020-04-30,Sauk,Wisconsin,55111,45,3 +2020-05-01,Sauk,Wisconsin,55111,58,3 +2020-05-02,Sauk,Wisconsin,55111,64,3 +2020-05-03,Sauk,Wisconsin,55111,65,3 +2020-05-04,Sauk,Wisconsin,55111,66,3 +2020-05-05,Sauk,Wisconsin,55111,67,3 +2020-05-06,Sauk,Wisconsin,55111,70,3 +2020-05-07,Sauk,Wisconsin,55111,69,3 +2020-05-08,Sauk,Wisconsin,55111,69,3 +2020-05-09,Sauk,Wisconsin,55111,71,3 +2020-05-10,Sauk,Wisconsin,55111,71,3 +2020-05-11,Sauk,Wisconsin,55111,72,3 +2020-05-12,Sauk,Wisconsin,55111,73,3 +2020-05-13,Sauk,Wisconsin,55111,73,3 +2020-05-14,Sauk,Wisconsin,55111,74,3 +2020-05-15,Sauk,Wisconsin,55111,76,3 +2020-05-16,Sauk,Wisconsin,55111,77,3 +2020-05-17,Sauk,Wisconsin,55111,77,3 +2020-05-18,Sauk,Wisconsin,55111,77,3 +2020-05-19,Sauk,Wisconsin,55111,77,3 +2020-05-20,Sauk,Wisconsin,55111,77,3 +2020-05-21,Sauk,Wisconsin,55111,77,3 +2020-05-22,Sauk,Wisconsin,55111,77,3 +2020-05-23,Sauk,Wisconsin,55111,77,3 +2020-05-24,Sauk,Wisconsin,55111,77,3 +2020-05-25,Sauk,Wisconsin,55111,77,3 +2020-05-26,Sauk,Wisconsin,55111,77,3 +2020-05-27,Sauk,Wisconsin,55111,78,3 +2020-05-28,Sauk,Wisconsin,55111,78,3 +2020-05-29,Sauk,Wisconsin,55111,78,3 +2020-05-30,Sauk,Wisconsin,55111,78,3 +2020-05-31,Sauk,Wisconsin,55111,78,3 +2020-06-01,Sauk,Wisconsin,55111,78,3 +2020-06-02,Sauk,Wisconsin,55111,79,3 +2020-06-03,Sauk,Wisconsin,55111,81,3 +2020-06-04,Sauk,Wisconsin,55111,81,3 +2020-06-05,Sauk,Wisconsin,55111,81,3 +2020-06-06,Sauk,Wisconsin,55111,81,3 +2020-06-07,Sauk,Wisconsin,55111,83,3 +2020-06-08,Sauk,Wisconsin,55111,83,3 +2020-06-09,Sauk,Wisconsin,55111,84,3 +2020-06-10,Sauk,Wisconsin,55111,84,3 +2020-06-11,Sauk,Wisconsin,55111,84,3 +2020-06-12,Sauk,Wisconsin,55111,84,3 +2020-06-13,Sauk,Wisconsin,55111,86,3 +2020-06-14,Sauk,Wisconsin,55111,85,3 +2020-06-15,Sauk,Wisconsin,55111,85,3 +2020-06-16,Sauk,Wisconsin,55111,87,3 +2020-06-17,Sauk,Wisconsin,55111,87,3 +2020-06-18,Sauk,Wisconsin,55111,88,3 +2020-06-19,Sauk,Wisconsin,55111,90,3 +2020-06-20,Sauk,Wisconsin,55111,94,3 +2020-06-21,Sauk,Wisconsin,55111,96,3 +2020-06-22,Sauk,Wisconsin,55111,96,3 +2020-06-23,Sauk,Wisconsin,55111,97,3 +2020-06-24,Sauk,Wisconsin,55111,97,3 +2020-06-25,Sauk,Wisconsin,55111,98,3 +2020-06-26,Sauk,Wisconsin,55111,98,3 +2020-06-27,Sauk,Wisconsin,55111,100,3 +2020-06-28,Sauk,Wisconsin,55111,102,3 +2020-06-29,Sauk,Wisconsin,55111,105,3 +2020-06-30,Sauk,Wisconsin,55111,107,3 +2020-07-01,Sauk,Wisconsin,55111,108,3 +2020-07-02,Sauk,Wisconsin,55111,109,3 +2020-07-03,Sauk,Wisconsin,55111,117,3 +2020-07-04,Sauk,Wisconsin,55111,119,3 +2020-07-05,Sauk,Wisconsin,55111,123,3 +2020-07-06,Sauk,Wisconsin,55111,123,3 +2020-07-07,Sauk,Wisconsin,55111,123,3 +2020-07-08,Sauk,Wisconsin,55111,130,3 +2020-07-09,Sauk,Wisconsin,55111,137,3 +2020-04-09,Sawyer,Wisconsin,55113,1,0 +2020-04-10,Sawyer,Wisconsin,55113,1,0 +2020-04-11,Sawyer,Wisconsin,55113,1,0 +2020-04-12,Sawyer,Wisconsin,55113,1,0 +2020-04-13,Sawyer,Wisconsin,55113,1,0 +2020-04-14,Sawyer,Wisconsin,55113,2,0 +2020-04-15,Sawyer,Wisconsin,55113,2,0 +2020-04-16,Sawyer,Wisconsin,55113,2,0 +2020-04-17,Sawyer,Wisconsin,55113,2,0 +2020-04-18,Sawyer,Wisconsin,55113,2,0 +2020-04-19,Sawyer,Wisconsin,55113,2,0 +2020-04-20,Sawyer,Wisconsin,55113,2,0 +2020-04-21,Sawyer,Wisconsin,55113,2,0 +2020-04-22,Sawyer,Wisconsin,55113,2,0 +2020-04-23,Sawyer,Wisconsin,55113,2,0 +2020-04-24,Sawyer,Wisconsin,55113,2,0 +2020-04-25,Sawyer,Wisconsin,55113,2,0 +2020-04-26,Sawyer,Wisconsin,55113,3,0 +2020-04-27,Sawyer,Wisconsin,55113,3,0 +2020-04-28,Sawyer,Wisconsin,55113,3,0 +2020-04-29,Sawyer,Wisconsin,55113,3,0 +2020-04-30,Sawyer,Wisconsin,55113,3,0 +2020-05-01,Sawyer,Wisconsin,55113,3,0 +2020-05-02,Sawyer,Wisconsin,55113,3,0 +2020-05-03,Sawyer,Wisconsin,55113,3,0 +2020-05-04,Sawyer,Wisconsin,55113,4,0 +2020-05-05,Sawyer,Wisconsin,55113,4,0 +2020-05-06,Sawyer,Wisconsin,55113,4,0 +2020-05-07,Sawyer,Wisconsin,55113,4,0 +2020-05-08,Sawyer,Wisconsin,55113,4,0 +2020-05-09,Sawyer,Wisconsin,55113,4,0 +2020-05-10,Sawyer,Wisconsin,55113,4,0 +2020-05-11,Sawyer,Wisconsin,55113,4,0 +2020-05-12,Sawyer,Wisconsin,55113,4,0 +2020-05-13,Sawyer,Wisconsin,55113,4,0 +2020-05-14,Sawyer,Wisconsin,55113,4,0 +2020-05-15,Sawyer,Wisconsin,55113,4,0 +2020-05-16,Sawyer,Wisconsin,55113,4,0 +2020-05-17,Sawyer,Wisconsin,55113,4,0 +2020-05-18,Sawyer,Wisconsin,55113,4,0 +2020-05-19,Sawyer,Wisconsin,55113,4,0 +2020-05-20,Sawyer,Wisconsin,55113,4,0 +2020-05-21,Sawyer,Wisconsin,55113,7,0 +2020-05-22,Sawyer,Wisconsin,55113,7,0 +2020-05-23,Sawyer,Wisconsin,55113,7,0 +2020-05-24,Sawyer,Wisconsin,55113,7,0 +2020-05-25,Sawyer,Wisconsin,55113,7,0 +2020-05-26,Sawyer,Wisconsin,55113,7,0 +2020-05-27,Sawyer,Wisconsin,55113,7,0 +2020-05-28,Sawyer,Wisconsin,55113,8,0 +2020-05-29,Sawyer,Wisconsin,55113,8,0 +2020-05-30,Sawyer,Wisconsin,55113,8,0 +2020-05-31,Sawyer,Wisconsin,55113,8,0 +2020-06-01,Sawyer,Wisconsin,55113,8,0 +2020-06-02,Sawyer,Wisconsin,55113,8,0 +2020-06-03,Sawyer,Wisconsin,55113,8,0 +2020-06-04,Sawyer,Wisconsin,55113,8,0 +2020-06-05,Sawyer,Wisconsin,55113,8,0 +2020-06-06,Sawyer,Wisconsin,55113,8,0 +2020-06-07,Sawyer,Wisconsin,55113,8,0 +2020-06-08,Sawyer,Wisconsin,55113,8,0 +2020-06-09,Sawyer,Wisconsin,55113,9,0 +2020-06-10,Sawyer,Wisconsin,55113,9,0 +2020-06-11,Sawyer,Wisconsin,55113,9,0 +2020-06-12,Sawyer,Wisconsin,55113,9,0 +2020-06-13,Sawyer,Wisconsin,55113,9,0 +2020-06-14,Sawyer,Wisconsin,55113,9,0 +2020-06-15,Sawyer,Wisconsin,55113,9,0 +2020-06-16,Sawyer,Wisconsin,55113,9,0 +2020-06-17,Sawyer,Wisconsin,55113,9,0 +2020-06-18,Sawyer,Wisconsin,55113,9,0 +2020-06-19,Sawyer,Wisconsin,55113,9,0 +2020-06-20,Sawyer,Wisconsin,55113,9,0 +2020-06-21,Sawyer,Wisconsin,55113,9,0 +2020-06-22,Sawyer,Wisconsin,55113,9,0 +2020-06-23,Sawyer,Wisconsin,55113,9,0 +2020-06-24,Sawyer,Wisconsin,55113,9,0 +2020-06-25,Sawyer,Wisconsin,55113,10,0 +2020-06-26,Sawyer,Wisconsin,55113,12,0 +2020-06-27,Sawyer,Wisconsin,55113,12,0 +2020-06-28,Sawyer,Wisconsin,55113,12,0 +2020-06-29,Sawyer,Wisconsin,55113,12,0 +2020-06-30,Sawyer,Wisconsin,55113,12,0 +2020-07-01,Sawyer,Wisconsin,55113,12,0 +2020-07-02,Sawyer,Wisconsin,55113,12,0 +2020-07-03,Sawyer,Wisconsin,55113,12,0 +2020-07-04,Sawyer,Wisconsin,55113,12,0 +2020-07-05,Sawyer,Wisconsin,55113,12,0 +2020-07-06,Sawyer,Wisconsin,55113,12,0 +2020-07-07,Sawyer,Wisconsin,55113,13,0 +2020-07-08,Sawyer,Wisconsin,55113,14,0 +2020-07-09,Sawyer,Wisconsin,55113,15,0 +2020-04-04,Shawano,Wisconsin,55115,1,0 +2020-04-05,Shawano,Wisconsin,55115,1,0 +2020-04-06,Shawano,Wisconsin,55115,2,0 +2020-04-07,Shawano,Wisconsin,55115,3,0 +2020-04-08,Shawano,Wisconsin,55115,4,0 +2020-04-09,Shawano,Wisconsin,55115,4,0 +2020-04-10,Shawano,Wisconsin,55115,5,0 +2020-04-11,Shawano,Wisconsin,55115,5,0 +2020-04-12,Shawano,Wisconsin,55115,5,0 +2020-04-13,Shawano,Wisconsin,55115,5,0 +2020-04-14,Shawano,Wisconsin,55115,6,0 +2020-04-15,Shawano,Wisconsin,55115,6,0 +2020-04-16,Shawano,Wisconsin,55115,6,0 +2020-04-17,Shawano,Wisconsin,55115,6,0 +2020-04-18,Shawano,Wisconsin,55115,6,0 +2020-04-19,Shawano,Wisconsin,55115,6,0 +2020-04-20,Shawano,Wisconsin,55115,6,0 +2020-04-21,Shawano,Wisconsin,55115,6,0 +2020-04-22,Shawano,Wisconsin,55115,6,0 +2020-04-23,Shawano,Wisconsin,55115,6,0 +2020-04-24,Shawano,Wisconsin,55115,8,0 +2020-04-25,Shawano,Wisconsin,55115,8,0 +2020-04-26,Shawano,Wisconsin,55115,8,0 +2020-04-27,Shawano,Wisconsin,55115,8,0 +2020-04-28,Shawano,Wisconsin,55115,8,0 +2020-04-29,Shawano,Wisconsin,55115,10,0 +2020-04-30,Shawano,Wisconsin,55115,10,0 +2020-05-01,Shawano,Wisconsin,55115,15,0 +2020-05-02,Shawano,Wisconsin,55115,16,0 +2020-05-03,Shawano,Wisconsin,55115,16,0 +2020-05-04,Shawano,Wisconsin,55115,16,0 +2020-05-05,Shawano,Wisconsin,55115,17,0 +2020-05-06,Shawano,Wisconsin,55115,17,0 +2020-05-07,Shawano,Wisconsin,55115,17,0 +2020-05-08,Shawano,Wisconsin,55115,20,0 +2020-05-09,Shawano,Wisconsin,55115,20,0 +2020-05-10,Shawano,Wisconsin,55115,22,0 +2020-05-11,Shawano,Wisconsin,55115,25,0 +2020-05-12,Shawano,Wisconsin,55115,25,0 +2020-05-13,Shawano,Wisconsin,55115,27,0 +2020-05-14,Shawano,Wisconsin,55115,28,0 +2020-05-15,Shawano,Wisconsin,55115,29,0 +2020-05-16,Shawano,Wisconsin,55115,31,0 +2020-05-17,Shawano,Wisconsin,55115,31,0 +2020-05-18,Shawano,Wisconsin,55115,33,0 +2020-05-19,Shawano,Wisconsin,55115,33,0 +2020-05-20,Shawano,Wisconsin,55115,34,0 +2020-05-21,Shawano,Wisconsin,55115,36,0 +2020-05-22,Shawano,Wisconsin,55115,36,0 +2020-05-23,Shawano,Wisconsin,55115,37,0 +2020-05-24,Shawano,Wisconsin,55115,38,0 +2020-05-25,Shawano,Wisconsin,55115,38,0 +2020-05-26,Shawano,Wisconsin,55115,38,0 +2020-05-27,Shawano,Wisconsin,55115,41,0 +2020-05-28,Shawano,Wisconsin,55115,43,0 +2020-05-29,Shawano,Wisconsin,55115,45,0 +2020-05-30,Shawano,Wisconsin,55115,46,0 +2020-05-31,Shawano,Wisconsin,55115,47,0 +2020-06-01,Shawano,Wisconsin,55115,48,0 +2020-06-02,Shawano,Wisconsin,55115,50,0 +2020-06-03,Shawano,Wisconsin,55115,51,0 +2020-06-04,Shawano,Wisconsin,55115,53,0 +2020-06-05,Shawano,Wisconsin,55115,53,0 +2020-06-06,Shawano,Wisconsin,55115,56,0 +2020-06-07,Shawano,Wisconsin,55115,56,0 +2020-06-08,Shawano,Wisconsin,55115,57,0 +2020-06-09,Shawano,Wisconsin,55115,60,0 +2020-06-10,Shawano,Wisconsin,55115,60,0 +2020-06-11,Shawano,Wisconsin,55115,60,0 +2020-06-12,Shawano,Wisconsin,55115,62,0 +2020-06-13,Shawano,Wisconsin,55115,62,0 +2020-06-14,Shawano,Wisconsin,55115,63,0 +2020-06-15,Shawano,Wisconsin,55115,64,0 +2020-06-16,Shawano,Wisconsin,55115,64,0 +2020-06-17,Shawano,Wisconsin,55115,64,0 +2020-06-18,Shawano,Wisconsin,55115,66,0 +2020-06-19,Shawano,Wisconsin,55115,66,0 +2020-06-20,Shawano,Wisconsin,55115,68,0 +2020-06-21,Shawano,Wisconsin,55115,68,0 +2020-06-22,Shawano,Wisconsin,55115,70,0 +2020-06-23,Shawano,Wisconsin,55115,70,0 +2020-06-24,Shawano,Wisconsin,55115,70,0 +2020-06-25,Shawano,Wisconsin,55115,73,0 +2020-06-26,Shawano,Wisconsin,55115,74,0 +2020-06-27,Shawano,Wisconsin,55115,75,0 +2020-06-28,Shawano,Wisconsin,55115,75,0 +2020-06-29,Shawano,Wisconsin,55115,76,0 +2020-06-30,Shawano,Wisconsin,55115,78,0 +2020-07-01,Shawano,Wisconsin,55115,78,0 +2020-07-02,Shawano,Wisconsin,55115,78,0 +2020-07-03,Shawano,Wisconsin,55115,81,0 +2020-07-04,Shawano,Wisconsin,55115,83,0 +2020-07-05,Shawano,Wisconsin,55115,86,0 +2020-07-06,Shawano,Wisconsin,55115,86,0 +2020-07-07,Shawano,Wisconsin,55115,86,0 +2020-07-08,Shawano,Wisconsin,55115,87,0 +2020-07-09,Shawano,Wisconsin,55115,89,0 +2020-03-13,Sheboygan,Wisconsin,55117,3,0 +2020-03-14,Sheboygan,Wisconsin,55117,3,0 +2020-03-15,Sheboygan,Wisconsin,55117,3,0 +2020-03-16,Sheboygan,Wisconsin,55117,3,0 +2020-03-17,Sheboygan,Wisconsin,55117,3,0 +2020-03-18,Sheboygan,Wisconsin,55117,4,0 +2020-03-19,Sheboygan,Wisconsin,55117,6,0 +2020-03-20,Sheboygan,Wisconsin,55117,6,0 +2020-03-21,Sheboygan,Wisconsin,55117,6,0 +2020-03-22,Sheboygan,Wisconsin,55117,6,0 +2020-03-23,Sheboygan,Wisconsin,55117,6,0 +2020-03-24,Sheboygan,Wisconsin,55117,6,0 +2020-03-25,Sheboygan,Wisconsin,55117,7,0 +2020-03-26,Sheboygan,Wisconsin,55117,7,0 +2020-03-27,Sheboygan,Wisconsin,55117,7,0 +2020-03-28,Sheboygan,Wisconsin,55117,8,0 +2020-03-29,Sheboygan,Wisconsin,55117,8,0 +2020-03-30,Sheboygan,Wisconsin,55117,8,0 +2020-03-31,Sheboygan,Wisconsin,55117,11,0 +2020-04-01,Sheboygan,Wisconsin,55117,14,1 +2020-04-02,Sheboygan,Wisconsin,55117,16,1 +2020-04-03,Sheboygan,Wisconsin,55117,20,1 +2020-04-04,Sheboygan,Wisconsin,55117,21,1 +2020-04-05,Sheboygan,Wisconsin,55117,21,1 +2020-04-06,Sheboygan,Wisconsin,55117,21,1 +2020-04-07,Sheboygan,Wisconsin,55117,30,2 +2020-04-08,Sheboygan,Wisconsin,55117,31,2 +2020-04-09,Sheboygan,Wisconsin,55117,31,2 +2020-04-10,Sheboygan,Wisconsin,55117,33,2 +2020-04-11,Sheboygan,Wisconsin,55117,34,2 +2020-04-12,Sheboygan,Wisconsin,55117,34,2 +2020-04-13,Sheboygan,Wisconsin,55117,36,2 +2020-04-14,Sheboygan,Wisconsin,55117,36,2 +2020-04-15,Sheboygan,Wisconsin,55117,37,2 +2020-04-16,Sheboygan,Wisconsin,55117,37,2 +2020-04-17,Sheboygan,Wisconsin,55117,38,2 +2020-04-18,Sheboygan,Wisconsin,55117,39,2 +2020-04-19,Sheboygan,Wisconsin,55117,40,2 +2020-04-20,Sheboygan,Wisconsin,55117,43,2 +2020-04-21,Sheboygan,Wisconsin,55117,43,2 +2020-04-22,Sheboygan,Wisconsin,55117,44,2 +2020-04-23,Sheboygan,Wisconsin,55117,44,2 +2020-04-24,Sheboygan,Wisconsin,55117,45,2 +2020-04-25,Sheboygan,Wisconsin,55117,44,2 +2020-04-26,Sheboygan,Wisconsin,55117,45,2 +2020-04-27,Sheboygan,Wisconsin,55117,46,2 +2020-04-28,Sheboygan,Wisconsin,55117,46,2 +2020-04-29,Sheboygan,Wisconsin,55117,46,2 +2020-04-30,Sheboygan,Wisconsin,55117,47,2 +2020-05-01,Sheboygan,Wisconsin,55117,49,2 +2020-05-02,Sheboygan,Wisconsin,55117,51,2 +2020-05-03,Sheboygan,Wisconsin,55117,52,2 +2020-05-04,Sheboygan,Wisconsin,55117,53,2 +2020-05-05,Sheboygan,Wisconsin,55117,55,2 +2020-05-06,Sheboygan,Wisconsin,55117,59,2 +2020-05-07,Sheboygan,Wisconsin,55117,65,2 +2020-05-08,Sheboygan,Wisconsin,55117,65,2 +2020-05-09,Sheboygan,Wisconsin,55117,65,2 +2020-05-10,Sheboygan,Wisconsin,55117,66,2 +2020-05-11,Sheboygan,Wisconsin,55117,66,2 +2020-05-12,Sheboygan,Wisconsin,55117,66,2 +2020-05-13,Sheboygan,Wisconsin,55117,66,3 +2020-05-14,Sheboygan,Wisconsin,55117,67,3 +2020-05-15,Sheboygan,Wisconsin,55117,68,3 +2020-05-16,Sheboygan,Wisconsin,55117,68,3 +2020-05-17,Sheboygan,Wisconsin,55117,69,3 +2020-05-18,Sheboygan,Wisconsin,55117,69,3 +2020-05-19,Sheboygan,Wisconsin,55117,70,3 +2020-05-20,Sheboygan,Wisconsin,55117,73,3 +2020-05-21,Sheboygan,Wisconsin,55117,76,3 +2020-05-22,Sheboygan,Wisconsin,55117,78,3 +2020-05-23,Sheboygan,Wisconsin,55117,82,3 +2020-05-24,Sheboygan,Wisconsin,55117,82,3 +2020-05-25,Sheboygan,Wisconsin,55117,82,3 +2020-05-26,Sheboygan,Wisconsin,55117,83,3 +2020-05-27,Sheboygan,Wisconsin,55117,83,3 +2020-05-28,Sheboygan,Wisconsin,55117,84,3 +2020-05-29,Sheboygan,Wisconsin,55117,87,3 +2020-05-30,Sheboygan,Wisconsin,55117,88,3 +2020-05-31,Sheboygan,Wisconsin,55117,90,3 +2020-06-01,Sheboygan,Wisconsin,55117,90,3 +2020-06-02,Sheboygan,Wisconsin,55117,95,3 +2020-06-03,Sheboygan,Wisconsin,55117,98,3 +2020-06-04,Sheboygan,Wisconsin,55117,101,3 +2020-06-05,Sheboygan,Wisconsin,55117,105,3 +2020-06-06,Sheboygan,Wisconsin,55117,111,3 +2020-06-07,Sheboygan,Wisconsin,55117,114,3 +2020-06-08,Sheboygan,Wisconsin,55117,114,3 +2020-06-09,Sheboygan,Wisconsin,55117,118,3 +2020-06-10,Sheboygan,Wisconsin,55117,120,4 +2020-06-11,Sheboygan,Wisconsin,55117,129,4 +2020-06-12,Sheboygan,Wisconsin,55117,137,4 +2020-06-13,Sheboygan,Wisconsin,55117,147,4 +2020-06-14,Sheboygan,Wisconsin,55117,157,4 +2020-06-15,Sheboygan,Wisconsin,55117,158,4 +2020-06-16,Sheboygan,Wisconsin,55117,166,4 +2020-06-17,Sheboygan,Wisconsin,55117,171,4 +2020-06-18,Sheboygan,Wisconsin,55117,177,4 +2020-06-19,Sheboygan,Wisconsin,55117,176,4 +2020-06-20,Sheboygan,Wisconsin,55117,179,4 +2020-06-21,Sheboygan,Wisconsin,55117,185,4 +2020-06-22,Sheboygan,Wisconsin,55117,185,4 +2020-06-23,Sheboygan,Wisconsin,55117,186,4 +2020-06-24,Sheboygan,Wisconsin,55117,187,4 +2020-06-25,Sheboygan,Wisconsin,55117,189,4 +2020-06-26,Sheboygan,Wisconsin,55117,190,4 +2020-06-27,Sheboygan,Wisconsin,55117,195,4 +2020-06-28,Sheboygan,Wisconsin,55117,198,4 +2020-06-29,Sheboygan,Wisconsin,55117,201,4 +2020-06-30,Sheboygan,Wisconsin,55117,208,4 +2020-07-01,Sheboygan,Wisconsin,55117,208,4 +2020-07-02,Sheboygan,Wisconsin,55117,214,4 +2020-07-03,Sheboygan,Wisconsin,55117,223,4 +2020-07-04,Sheboygan,Wisconsin,55117,224,4 +2020-07-05,Sheboygan,Wisconsin,55117,229,4 +2020-07-06,Sheboygan,Wisconsin,55117,236,4 +2020-07-07,Sheboygan,Wisconsin,55117,245,4 +2020-07-08,Sheboygan,Wisconsin,55117,255,4 +2020-07-09,Sheboygan,Wisconsin,55117,265,4 +2020-05-21,Taylor,Wisconsin,55119,1,0 +2020-05-22,Taylor,Wisconsin,55119,1,0 +2020-05-23,Taylor,Wisconsin,55119,1,0 +2020-05-24,Taylor,Wisconsin,55119,1,0 +2020-05-25,Taylor,Wisconsin,55119,1,0 +2020-05-26,Taylor,Wisconsin,55119,1,0 +2020-05-27,Taylor,Wisconsin,55119,1,0 +2020-05-28,Taylor,Wisconsin,55119,1,0 +2020-05-29,Taylor,Wisconsin,55119,2,0 +2020-05-30,Taylor,Wisconsin,55119,2,0 +2020-05-31,Taylor,Wisconsin,55119,2,0 +2020-06-01,Taylor,Wisconsin,55119,2,0 +2020-06-02,Taylor,Wisconsin,55119,2,0 +2020-06-03,Taylor,Wisconsin,55119,2,0 +2020-06-04,Taylor,Wisconsin,55119,2,0 +2020-06-05,Taylor,Wisconsin,55119,2,0 +2020-06-06,Taylor,Wisconsin,55119,2,0 +2020-06-07,Taylor,Wisconsin,55119,2,0 +2020-06-08,Taylor,Wisconsin,55119,2,0 +2020-06-09,Taylor,Wisconsin,55119,2,0 +2020-06-10,Taylor,Wisconsin,55119,2,0 +2020-06-11,Taylor,Wisconsin,55119,2,0 +2020-06-12,Taylor,Wisconsin,55119,2,0 +2020-06-13,Taylor,Wisconsin,55119,2,0 +2020-06-14,Taylor,Wisconsin,55119,3,0 +2020-06-15,Taylor,Wisconsin,55119,5,0 +2020-06-16,Taylor,Wisconsin,55119,5,0 +2020-06-17,Taylor,Wisconsin,55119,5,0 +2020-06-18,Taylor,Wisconsin,55119,6,0 +2020-06-19,Taylor,Wisconsin,55119,8,0 +2020-06-20,Taylor,Wisconsin,55119,9,0 +2020-06-21,Taylor,Wisconsin,55119,9,0 +2020-06-22,Taylor,Wisconsin,55119,8,0 +2020-06-23,Taylor,Wisconsin,55119,9,0 +2020-06-24,Taylor,Wisconsin,55119,10,0 +2020-06-25,Taylor,Wisconsin,55119,10,0 +2020-06-26,Taylor,Wisconsin,55119,10,0 +2020-06-27,Taylor,Wisconsin,55119,11,0 +2020-06-28,Taylor,Wisconsin,55119,12,0 +2020-06-29,Taylor,Wisconsin,55119,12,0 +2020-06-30,Taylor,Wisconsin,55119,12,0 +2020-07-01,Taylor,Wisconsin,55119,13,0 +2020-07-02,Taylor,Wisconsin,55119,14,0 +2020-07-03,Taylor,Wisconsin,55119,16,0 +2020-07-04,Taylor,Wisconsin,55119,16,0 +2020-07-05,Taylor,Wisconsin,55119,15,0 +2020-07-06,Taylor,Wisconsin,55119,15,0 +2020-07-07,Taylor,Wisconsin,55119,16,0 +2020-07-08,Taylor,Wisconsin,55119,17,0 +2020-07-09,Taylor,Wisconsin,55119,18,0 +2020-04-02,Trempealeau,Wisconsin,55121,1,0 +2020-04-03,Trempealeau,Wisconsin,55121,1,0 +2020-04-04,Trempealeau,Wisconsin,55121,1,0 +2020-04-05,Trempealeau,Wisconsin,55121,1,0 +2020-04-06,Trempealeau,Wisconsin,55121,1,0 +2020-04-07,Trempealeau,Wisconsin,55121,1,0 +2020-04-08,Trempealeau,Wisconsin,55121,1,0 +2020-04-09,Trempealeau,Wisconsin,55121,1,0 +2020-04-10,Trempealeau,Wisconsin,55121,1,0 +2020-04-11,Trempealeau,Wisconsin,55121,1,0 +2020-04-12,Trempealeau,Wisconsin,55121,1,0 +2020-04-13,Trempealeau,Wisconsin,55121,1,0 +2020-04-14,Trempealeau,Wisconsin,55121,1,0 +2020-04-15,Trempealeau,Wisconsin,55121,1,0 +2020-04-16,Trempealeau,Wisconsin,55121,1,0 +2020-04-17,Trempealeau,Wisconsin,55121,1,0 +2020-04-18,Trempealeau,Wisconsin,55121,1,0 +2020-04-19,Trempealeau,Wisconsin,55121,1,0 +2020-04-20,Trempealeau,Wisconsin,55121,1,0 +2020-04-21,Trempealeau,Wisconsin,55121,1,0 +2020-04-22,Trempealeau,Wisconsin,55121,1,0 +2020-04-23,Trempealeau,Wisconsin,55121,1,0 +2020-04-24,Trempealeau,Wisconsin,55121,2,0 +2020-04-25,Trempealeau,Wisconsin,55121,2,0 +2020-04-26,Trempealeau,Wisconsin,55121,2,0 +2020-04-27,Trempealeau,Wisconsin,55121,2,0 +2020-04-28,Trempealeau,Wisconsin,55121,2,0 +2020-04-29,Trempealeau,Wisconsin,55121,2,0 +2020-04-30,Trempealeau,Wisconsin,55121,3,0 +2020-05-01,Trempealeau,Wisconsin,55121,3,0 +2020-05-02,Trempealeau,Wisconsin,55121,3,0 +2020-05-03,Trempealeau,Wisconsin,55121,3,0 +2020-05-04,Trempealeau,Wisconsin,55121,4,0 +2020-05-05,Trempealeau,Wisconsin,55121,4,0 +2020-05-06,Trempealeau,Wisconsin,55121,5,0 +2020-05-07,Trempealeau,Wisconsin,55121,5,0 +2020-05-08,Trempealeau,Wisconsin,55121,5,0 +2020-05-09,Trempealeau,Wisconsin,55121,5,0 +2020-05-10,Trempealeau,Wisconsin,55121,5,0 +2020-05-11,Trempealeau,Wisconsin,55121,5,0 +2020-05-12,Trempealeau,Wisconsin,55121,6,0 +2020-05-13,Trempealeau,Wisconsin,55121,6,0 +2020-05-14,Trempealeau,Wisconsin,55121,7,0 +2020-05-15,Trempealeau,Wisconsin,55121,7,0 +2020-05-16,Trempealeau,Wisconsin,55121,7,0 +2020-05-17,Trempealeau,Wisconsin,55121,10,0 +2020-05-18,Trempealeau,Wisconsin,55121,11,0 +2020-05-19,Trempealeau,Wisconsin,55121,11,0 +2020-05-20,Trempealeau,Wisconsin,55121,11,0 +2020-05-21,Trempealeau,Wisconsin,55121,13,0 +2020-05-22,Trempealeau,Wisconsin,55121,13,0 +2020-05-23,Trempealeau,Wisconsin,55121,14,0 +2020-05-24,Trempealeau,Wisconsin,55121,18,0 +2020-05-25,Trempealeau,Wisconsin,55121,20,0 +2020-05-26,Trempealeau,Wisconsin,55121,21,0 +2020-05-27,Trempealeau,Wisconsin,55121,22,0 +2020-05-28,Trempealeau,Wisconsin,55121,23,0 +2020-05-29,Trempealeau,Wisconsin,55121,24,0 +2020-05-30,Trempealeau,Wisconsin,55121,25,0 +2020-05-31,Trempealeau,Wisconsin,55121,25,0 +2020-06-01,Trempealeau,Wisconsin,55121,25,0 +2020-06-02,Trempealeau,Wisconsin,55121,26,0 +2020-06-03,Trempealeau,Wisconsin,55121,29,0 +2020-06-04,Trempealeau,Wisconsin,55121,30,0 +2020-06-05,Trempealeau,Wisconsin,55121,32,0 +2020-06-06,Trempealeau,Wisconsin,55121,38,0 +2020-06-07,Trempealeau,Wisconsin,55121,40,0 +2020-06-08,Trempealeau,Wisconsin,55121,42,0 +2020-06-09,Trempealeau,Wisconsin,55121,43,0 +2020-06-10,Trempealeau,Wisconsin,55121,44,0 +2020-06-11,Trempealeau,Wisconsin,55121,49,0 +2020-06-12,Trempealeau,Wisconsin,55121,49,0 +2020-06-13,Trempealeau,Wisconsin,55121,56,0 +2020-06-14,Trempealeau,Wisconsin,55121,57,0 +2020-06-15,Trempealeau,Wisconsin,55121,64,0 +2020-06-16,Trempealeau,Wisconsin,55121,71,0 +2020-06-17,Trempealeau,Wisconsin,55121,80,0 +2020-06-18,Trempealeau,Wisconsin,55121,85,0 +2020-06-19,Trempealeau,Wisconsin,55121,86,0 +2020-06-20,Trempealeau,Wisconsin,55121,91,0 +2020-06-21,Trempealeau,Wisconsin,55121,91,0 +2020-06-22,Trempealeau,Wisconsin,55121,92,0 +2020-06-23,Trempealeau,Wisconsin,55121,92,0 +2020-06-24,Trempealeau,Wisconsin,55121,98,0 +2020-06-25,Trempealeau,Wisconsin,55121,104,0 +2020-06-26,Trempealeau,Wisconsin,55121,106,0 +2020-06-27,Trempealeau,Wisconsin,55121,111,0 +2020-06-28,Trempealeau,Wisconsin,55121,112,0 +2020-06-29,Trempealeau,Wisconsin,55121,111,0 +2020-06-30,Trempealeau,Wisconsin,55121,116,0 +2020-07-01,Trempealeau,Wisconsin,55121,118,0 +2020-07-02,Trempealeau,Wisconsin,55121,122,0 +2020-07-03,Trempealeau,Wisconsin,55121,126,0 +2020-07-04,Trempealeau,Wisconsin,55121,129,0 +2020-07-05,Trempealeau,Wisconsin,55121,131,0 +2020-07-06,Trempealeau,Wisconsin,55121,137,0 +2020-07-07,Trempealeau,Wisconsin,55121,140,0 +2020-07-08,Trempealeau,Wisconsin,55121,158,0 +2020-07-09,Trempealeau,Wisconsin,55121,168,0 +2020-04-24,Vernon,Wisconsin,55123,1,0 +2020-04-25,Vernon,Wisconsin,55123,1,0 +2020-04-26,Vernon,Wisconsin,55123,1,0 +2020-04-27,Vernon,Wisconsin,55123,1,0 +2020-04-28,Vernon,Wisconsin,55123,1,0 +2020-04-29,Vernon,Wisconsin,55123,1,0 +2020-04-30,Vernon,Wisconsin,55123,1,0 +2020-05-01,Vernon,Wisconsin,55123,1,0 +2020-05-02,Vernon,Wisconsin,55123,1,0 +2020-05-03,Vernon,Wisconsin,55123,1,0 +2020-05-04,Vernon,Wisconsin,55123,2,0 +2020-05-05,Vernon,Wisconsin,55123,2,0 +2020-05-06,Vernon,Wisconsin,55123,2,0 +2020-05-07,Vernon,Wisconsin,55123,2,0 +2020-05-08,Vernon,Wisconsin,55123,3,0 +2020-05-09,Vernon,Wisconsin,55123,3,0 +2020-05-10,Vernon,Wisconsin,55123,3,0 +2020-05-11,Vernon,Wisconsin,55123,3,0 +2020-05-12,Vernon,Wisconsin,55123,4,0 +2020-05-13,Vernon,Wisconsin,55123,6,0 +2020-05-14,Vernon,Wisconsin,55123,7,0 +2020-05-15,Vernon,Wisconsin,55123,8,0 +2020-05-16,Vernon,Wisconsin,55123,10,0 +2020-05-17,Vernon,Wisconsin,55123,11,0 +2020-05-18,Vernon,Wisconsin,55123,11,0 +2020-05-19,Vernon,Wisconsin,55123,12,0 +2020-05-20,Vernon,Wisconsin,55123,12,0 +2020-05-21,Vernon,Wisconsin,55123,13,0 +2020-05-22,Vernon,Wisconsin,55123,14,0 +2020-05-23,Vernon,Wisconsin,55123,14,0 +2020-05-24,Vernon,Wisconsin,55123,16,0 +2020-05-25,Vernon,Wisconsin,55123,16,0 +2020-05-26,Vernon,Wisconsin,55123,17,0 +2020-05-27,Vernon,Wisconsin,55123,19,0 +2020-05-28,Vernon,Wisconsin,55123,20,0 +2020-05-29,Vernon,Wisconsin,55123,21,0 +2020-05-30,Vernon,Wisconsin,55123,21,0 +2020-05-31,Vernon,Wisconsin,55123,21,0 +2020-06-01,Vernon,Wisconsin,55123,21,0 +2020-06-02,Vernon,Wisconsin,55123,21,0 +2020-06-03,Vernon,Wisconsin,55123,21,0 +2020-06-04,Vernon,Wisconsin,55123,21,0 +2020-06-05,Vernon,Wisconsin,55123,21,0 +2020-06-06,Vernon,Wisconsin,55123,21,0 +2020-06-07,Vernon,Wisconsin,55123,21,0 +2020-06-08,Vernon,Wisconsin,55123,21,0 +2020-06-09,Vernon,Wisconsin,55123,22,0 +2020-06-10,Vernon,Wisconsin,55123,22,0 +2020-06-11,Vernon,Wisconsin,55123,23,0 +2020-06-12,Vernon,Wisconsin,55123,23,0 +2020-06-13,Vernon,Wisconsin,55123,24,0 +2020-06-14,Vernon,Wisconsin,55123,24,0 +2020-06-15,Vernon,Wisconsin,55123,24,0 +2020-06-16,Vernon,Wisconsin,55123,24,0 +2020-06-17,Vernon,Wisconsin,55123,26,0 +2020-06-18,Vernon,Wisconsin,55123,28,0 +2020-06-19,Vernon,Wisconsin,55123,29,0 +2020-06-20,Vernon,Wisconsin,55123,29,0 +2020-06-21,Vernon,Wisconsin,55123,29,0 +2020-06-22,Vernon,Wisconsin,55123,30,0 +2020-06-23,Vernon,Wisconsin,55123,31,0 +2020-06-24,Vernon,Wisconsin,55123,31,0 +2020-06-25,Vernon,Wisconsin,55123,32,0 +2020-06-26,Vernon,Wisconsin,55123,32,0 +2020-06-27,Vernon,Wisconsin,55123,32,0 +2020-06-28,Vernon,Wisconsin,55123,32,0 +2020-06-29,Vernon,Wisconsin,55123,32,0 +2020-06-30,Vernon,Wisconsin,55123,35,0 +2020-07-01,Vernon,Wisconsin,55123,36,0 +2020-07-02,Vernon,Wisconsin,55123,37,0 +2020-07-03,Vernon,Wisconsin,55123,38,0 +2020-07-04,Vernon,Wisconsin,55123,38,0 +2020-07-05,Vernon,Wisconsin,55123,38,0 +2020-07-06,Vernon,Wisconsin,55123,38,0 +2020-07-07,Vernon,Wisconsin,55123,38,0 +2020-07-08,Vernon,Wisconsin,55123,39,0 +2020-07-09,Vernon,Wisconsin,55123,40,0 +2020-03-26,Vilas,Wisconsin,55125,1,0 +2020-03-27,Vilas,Wisconsin,55125,2,0 +2020-03-28,Vilas,Wisconsin,55125,2,0 +2020-03-29,Vilas,Wisconsin,55125,2,0 +2020-03-30,Vilas,Wisconsin,55125,3,0 +2020-03-31,Vilas,Wisconsin,55125,3,0 +2020-04-01,Vilas,Wisconsin,55125,3,0 +2020-04-02,Vilas,Wisconsin,55125,3,0 +2020-04-03,Vilas,Wisconsin,55125,3,0 +2020-04-04,Vilas,Wisconsin,55125,3,0 +2020-04-05,Vilas,Wisconsin,55125,4,0 +2020-04-06,Vilas,Wisconsin,55125,4,0 +2020-04-07,Vilas,Wisconsin,55125,4,0 +2020-04-08,Vilas,Wisconsin,55125,4,0 +2020-04-09,Vilas,Wisconsin,55125,4,0 +2020-04-10,Vilas,Wisconsin,55125,4,0 +2020-04-11,Vilas,Wisconsin,55125,4,0 +2020-04-12,Vilas,Wisconsin,55125,4,0 +2020-04-13,Vilas,Wisconsin,55125,4,0 +2020-04-14,Vilas,Wisconsin,55125,4,0 +2020-04-15,Vilas,Wisconsin,55125,4,0 +2020-04-16,Vilas,Wisconsin,55125,4,0 +2020-04-17,Vilas,Wisconsin,55125,4,0 +2020-04-18,Vilas,Wisconsin,55125,4,0 +2020-04-19,Vilas,Wisconsin,55125,4,0 +2020-04-20,Vilas,Wisconsin,55125,4,0 +2020-04-21,Vilas,Wisconsin,55125,4,0 +2020-04-22,Vilas,Wisconsin,55125,4,0 +2020-04-23,Vilas,Wisconsin,55125,4,0 +2020-04-24,Vilas,Wisconsin,55125,4,0 +2020-04-25,Vilas,Wisconsin,55125,4,0 +2020-04-26,Vilas,Wisconsin,55125,4,0 +2020-04-27,Vilas,Wisconsin,55125,4,0 +2020-04-28,Vilas,Wisconsin,55125,4,0 +2020-04-29,Vilas,Wisconsin,55125,4,0 +2020-04-30,Vilas,Wisconsin,55125,4,0 +2020-05-01,Vilas,Wisconsin,55125,4,0 +2020-05-02,Vilas,Wisconsin,55125,4,0 +2020-05-03,Vilas,Wisconsin,55125,4,0 +2020-05-04,Vilas,Wisconsin,55125,4,0 +2020-05-05,Vilas,Wisconsin,55125,4,0 +2020-05-06,Vilas,Wisconsin,55125,4,0 +2020-05-07,Vilas,Wisconsin,55125,4,0 +2020-05-08,Vilas,Wisconsin,55125,4,0 +2020-05-09,Vilas,Wisconsin,55125,4,0 +2020-05-10,Vilas,Wisconsin,55125,4,0 +2020-05-11,Vilas,Wisconsin,55125,4,0 +2020-05-12,Vilas,Wisconsin,55125,4,0 +2020-05-13,Vilas,Wisconsin,55125,4,0 +2020-05-14,Vilas,Wisconsin,55125,4,0 +2020-05-15,Vilas,Wisconsin,55125,4,0 +2020-05-16,Vilas,Wisconsin,55125,4,0 +2020-05-17,Vilas,Wisconsin,55125,4,0 +2020-05-18,Vilas,Wisconsin,55125,4,0 +2020-05-19,Vilas,Wisconsin,55125,4,0 +2020-05-20,Vilas,Wisconsin,55125,4,0 +2020-05-21,Vilas,Wisconsin,55125,5,0 +2020-05-22,Vilas,Wisconsin,55125,6,0 +2020-05-23,Vilas,Wisconsin,55125,6,0 +2020-05-24,Vilas,Wisconsin,55125,6,0 +2020-05-25,Vilas,Wisconsin,55125,6,0 +2020-05-26,Vilas,Wisconsin,55125,6,0 +2020-05-27,Vilas,Wisconsin,55125,6,0 +2020-05-28,Vilas,Wisconsin,55125,6,0 +2020-05-29,Vilas,Wisconsin,55125,6,0 +2020-05-30,Vilas,Wisconsin,55125,7,0 +2020-05-31,Vilas,Wisconsin,55125,7,0 +2020-06-01,Vilas,Wisconsin,55125,8,0 +2020-06-02,Vilas,Wisconsin,55125,8,0 +2020-06-03,Vilas,Wisconsin,55125,8,0 +2020-06-04,Vilas,Wisconsin,55125,8,0 +2020-06-05,Vilas,Wisconsin,55125,8,0 +2020-06-06,Vilas,Wisconsin,55125,8,0 +2020-06-07,Vilas,Wisconsin,55125,8,0 +2020-06-08,Vilas,Wisconsin,55125,8,0 +2020-06-09,Vilas,Wisconsin,55125,8,0 +2020-06-10,Vilas,Wisconsin,55125,8,0 +2020-06-11,Vilas,Wisconsin,55125,8,0 +2020-06-12,Vilas,Wisconsin,55125,8,0 +2020-06-13,Vilas,Wisconsin,55125,8,0 +2020-06-14,Vilas,Wisconsin,55125,8,0 +2020-06-15,Vilas,Wisconsin,55125,8,0 +2020-06-16,Vilas,Wisconsin,55125,8,0 +2020-06-17,Vilas,Wisconsin,55125,8,0 +2020-06-18,Vilas,Wisconsin,55125,10,0 +2020-06-19,Vilas,Wisconsin,55125,10,0 +2020-06-20,Vilas,Wisconsin,55125,10,0 +2020-06-21,Vilas,Wisconsin,55125,10,0 +2020-06-22,Vilas,Wisconsin,55125,10,0 +2020-06-23,Vilas,Wisconsin,55125,11,0 +2020-06-24,Vilas,Wisconsin,55125,10,0 +2020-06-25,Vilas,Wisconsin,55125,10,0 +2020-06-26,Vilas,Wisconsin,55125,10,0 +2020-06-27,Vilas,Wisconsin,55125,10,0 +2020-06-28,Vilas,Wisconsin,55125,10,0 +2020-06-29,Vilas,Wisconsin,55125,10,0 +2020-06-30,Vilas,Wisconsin,55125,10,0 +2020-07-01,Vilas,Wisconsin,55125,10,0 +2020-07-02,Vilas,Wisconsin,55125,10,0 +2020-07-03,Vilas,Wisconsin,55125,10,0 +2020-07-04,Vilas,Wisconsin,55125,10,0 +2020-07-05,Vilas,Wisconsin,55125,10,0 +2020-07-06,Vilas,Wisconsin,55125,11,0 +2020-07-07,Vilas,Wisconsin,55125,14,0 +2020-07-08,Vilas,Wisconsin,55125,14,0 +2020-07-09,Vilas,Wisconsin,55125,14,0 +2020-03-19,Walworth,Wisconsin,55127,2,0 +2020-03-20,Walworth,Wisconsin,55127,3,0 +2020-03-21,Walworth,Wisconsin,55127,3,0 +2020-03-22,Walworth,Wisconsin,55127,3,0 +2020-03-23,Walworth,Wisconsin,55127,3,0 +2020-03-24,Walworth,Wisconsin,55127,4,0 +2020-03-25,Walworth,Wisconsin,55127,5,0 +2020-03-26,Walworth,Wisconsin,55127,5,0 +2020-03-27,Walworth,Wisconsin,55127,5,0 +2020-03-28,Walworth,Wisconsin,55127,6,0 +2020-03-29,Walworth,Wisconsin,55127,6,0 +2020-03-30,Walworth,Wisconsin,55127,6,0 +2020-03-31,Walworth,Wisconsin,55127,6,0 +2020-04-01,Walworth,Wisconsin,55127,12,0 +2020-04-02,Walworth,Wisconsin,55127,15,0 +2020-04-03,Walworth,Wisconsin,55127,15,0 +2020-04-04,Walworth,Wisconsin,55127,16,0 +2020-04-05,Walworth,Wisconsin,55127,20,0 +2020-04-06,Walworth,Wisconsin,55127,20,0 +2020-04-07,Walworth,Wisconsin,55127,21,0 +2020-04-08,Walworth,Wisconsin,55127,23,0 +2020-04-09,Walworth,Wisconsin,55127,28,0 +2020-04-10,Walworth,Wisconsin,55127,35,0 +2020-04-11,Walworth,Wisconsin,55127,35,0 +2020-04-12,Walworth,Wisconsin,55127,37,0 +2020-04-13,Walworth,Wisconsin,55127,38,0 +2020-04-14,Walworth,Wisconsin,55127,45,1 +2020-04-15,Walworth,Wisconsin,55127,49,2 +2020-04-16,Walworth,Wisconsin,55127,71,3 +2020-04-17,Walworth,Wisconsin,55127,75,3 +2020-04-18,Walworth,Wisconsin,55127,89,4 +2020-04-19,Walworth,Wisconsin,55127,89,6 +2020-04-20,Walworth,Wisconsin,55127,86,6 +2020-04-21,Walworth,Wisconsin,55127,90,7 +2020-04-22,Walworth,Wisconsin,55127,94,7 +2020-04-23,Walworth,Wisconsin,55127,100,7 +2020-04-24,Walworth,Wisconsin,55127,113,7 +2020-04-25,Walworth,Wisconsin,55127,132,8 +2020-04-26,Walworth,Wisconsin,55127,135,8 +2020-04-27,Walworth,Wisconsin,55127,138,8 +2020-04-28,Walworth,Wisconsin,55127,139,8 +2020-04-29,Walworth,Wisconsin,55127,156,8 +2020-04-30,Walworth,Wisconsin,55127,161,8 +2020-05-01,Walworth,Wisconsin,55127,171,8 +2020-05-02,Walworth,Wisconsin,55127,183,8 +2020-05-03,Walworth,Wisconsin,55127,197,8 +2020-05-04,Walworth,Wisconsin,55127,211,8 +2020-05-05,Walworth,Wisconsin,55127,212,8 +2020-05-06,Walworth,Wisconsin,55127,215,9 +2020-05-07,Walworth,Wisconsin,55127,226,9 +2020-05-08,Walworth,Wisconsin,55127,226,10 +2020-05-09,Walworth,Wisconsin,55127,229,10 +2020-05-10,Walworth,Wisconsin,55127,235,10 +2020-05-11,Walworth,Wisconsin,55127,240,10 +2020-05-12,Walworth,Wisconsin,55127,244,11 +2020-05-13,Walworth,Wisconsin,55127,243,11 +2020-05-14,Walworth,Wisconsin,55127,251,11 +2020-05-15,Walworth,Wisconsin,55127,269,11 +2020-05-16,Walworth,Wisconsin,55127,277,12 +2020-05-17,Walworth,Wisconsin,55127,280,12 +2020-05-18,Walworth,Wisconsin,55127,284,12 +2020-05-19,Walworth,Wisconsin,55127,287,11 +2020-05-20,Walworth,Wisconsin,55127,296,11 +2020-05-21,Walworth,Wisconsin,55127,316,11 +2020-05-22,Walworth,Wisconsin,55127,329,11 +2020-05-23,Walworth,Wisconsin,55127,339,12 +2020-05-24,Walworth,Wisconsin,55127,348,13 +2020-05-25,Walworth,Wisconsin,55127,351,13 +2020-05-26,Walworth,Wisconsin,55127,351,13 +2020-05-27,Walworth,Wisconsin,55127,363,16 +2020-05-28,Walworth,Wisconsin,55127,372,16 +2020-05-29,Walworth,Wisconsin,55127,379,17 +2020-05-30,Walworth,Wisconsin,55127,392,17 +2020-05-31,Walworth,Wisconsin,55127,395,17 +2020-06-01,Walworth,Wisconsin,55127,397,17 +2020-06-02,Walworth,Wisconsin,55127,398,17 +2020-06-03,Walworth,Wisconsin,55127,424,17 +2020-06-04,Walworth,Wisconsin,55127,424,17 +2020-06-05,Walworth,Wisconsin,55127,428,17 +2020-06-06,Walworth,Wisconsin,55127,435,17 +2020-06-07,Walworth,Wisconsin,55127,435,17 +2020-06-08,Walworth,Wisconsin,55127,440,17 +2020-06-09,Walworth,Wisconsin,55127,452,17 +2020-06-10,Walworth,Wisconsin,55127,456,17 +2020-06-11,Walworth,Wisconsin,55127,468,17 +2020-06-12,Walworth,Wisconsin,55127,469,17 +2020-06-13,Walworth,Wisconsin,55127,471,17 +2020-06-14,Walworth,Wisconsin,55127,471,17 +2020-06-15,Walworth,Wisconsin,55127,471,17 +2020-06-16,Walworth,Wisconsin,55127,480,17 +2020-06-17,Walworth,Wisconsin,55127,481,17 +2020-06-18,Walworth,Wisconsin,55127,487,17 +2020-06-19,Walworth,Wisconsin,55127,488,18 +2020-06-20,Walworth,Wisconsin,55127,497,18 +2020-06-21,Walworth,Wisconsin,55127,498,18 +2020-06-22,Walworth,Wisconsin,55127,498,18 +2020-06-23,Walworth,Wisconsin,55127,509,18 +2020-06-24,Walworth,Wisconsin,55127,522,18 +2020-06-25,Walworth,Wisconsin,55127,546,18 +2020-06-26,Walworth,Wisconsin,55127,559,18 +2020-06-27,Walworth,Wisconsin,55127,570,18 +2020-06-28,Walworth,Wisconsin,55127,572,18 +2020-06-29,Walworth,Wisconsin,55127,574,18 +2020-06-30,Walworth,Wisconsin,55127,607,18 +2020-07-01,Walworth,Wisconsin,55127,612,18 +2020-07-02,Walworth,Wisconsin,55127,622,18 +2020-07-03,Walworth,Wisconsin,55127,650,18 +2020-07-04,Walworth,Wisconsin,55127,677,18 +2020-07-05,Walworth,Wisconsin,55127,689,18 +2020-07-06,Walworth,Wisconsin,55127,691,18 +2020-07-07,Walworth,Wisconsin,55127,701,18 +2020-07-08,Walworth,Wisconsin,55127,713,18 +2020-07-09,Walworth,Wisconsin,55127,723,18 +2020-04-14,Washburn,Wisconsin,55129,1,0 +2020-04-15,Washburn,Wisconsin,55129,1,0 +2020-04-16,Washburn,Wisconsin,55129,1,0 +2020-04-17,Washburn,Wisconsin,55129,1,0 +2020-04-18,Washburn,Wisconsin,55129,1,0 +2020-04-19,Washburn,Wisconsin,55129,1,0 +2020-04-20,Washburn,Wisconsin,55129,1,0 +2020-04-21,Washburn,Wisconsin,55129,1,0 +2020-04-22,Washburn,Wisconsin,55129,1,0 +2020-04-23,Washburn,Wisconsin,55129,1,0 +2020-04-24,Washburn,Wisconsin,55129,1,0 +2020-04-25,Washburn,Wisconsin,55129,1,0 +2020-04-26,Washburn,Wisconsin,55129,1,0 +2020-04-27,Washburn,Wisconsin,55129,1,0 +2020-04-28,Washburn,Wisconsin,55129,1,0 +2020-04-29,Washburn,Wisconsin,55129,1,0 +2020-04-30,Washburn,Wisconsin,55129,1,0 +2020-05-01,Washburn,Wisconsin,55129,1,0 +2020-05-02,Washburn,Wisconsin,55129,1,0 +2020-05-03,Washburn,Wisconsin,55129,1,0 +2020-05-04,Washburn,Wisconsin,55129,1,0 +2020-05-05,Washburn,Wisconsin,55129,1,0 +2020-05-06,Washburn,Wisconsin,55129,1,0 +2020-05-07,Washburn,Wisconsin,55129,1,0 +2020-05-08,Washburn,Wisconsin,55129,1,0 +2020-05-09,Washburn,Wisconsin,55129,1,0 +2020-05-10,Washburn,Wisconsin,55129,1,0 +2020-05-11,Washburn,Wisconsin,55129,1,0 +2020-05-12,Washburn,Wisconsin,55129,1,0 +2020-05-13,Washburn,Wisconsin,55129,1,0 +2020-05-14,Washburn,Wisconsin,55129,1,0 +2020-05-15,Washburn,Wisconsin,55129,1,0 +2020-05-16,Washburn,Wisconsin,55129,1,0 +2020-05-17,Washburn,Wisconsin,55129,1,0 +2020-05-18,Washburn,Wisconsin,55129,1,0 +2020-05-19,Washburn,Wisconsin,55129,1,0 +2020-05-20,Washburn,Wisconsin,55129,1,0 +2020-05-21,Washburn,Wisconsin,55129,2,0 +2020-05-22,Washburn,Wisconsin,55129,2,0 +2020-05-23,Washburn,Wisconsin,55129,2,0 +2020-05-24,Washburn,Wisconsin,55129,2,0 +2020-05-25,Washburn,Wisconsin,55129,2,0 +2020-05-26,Washburn,Wisconsin,55129,2,0 +2020-05-27,Washburn,Wisconsin,55129,2,0 +2020-05-28,Washburn,Wisconsin,55129,2,0 +2020-05-29,Washburn,Wisconsin,55129,2,0 +2020-05-30,Washburn,Wisconsin,55129,2,0 +2020-05-31,Washburn,Wisconsin,55129,2,0 +2020-06-01,Washburn,Wisconsin,55129,2,0 +2020-06-02,Washburn,Wisconsin,55129,2,0 +2020-06-03,Washburn,Wisconsin,55129,2,0 +2020-06-04,Washburn,Wisconsin,55129,2,0 +2020-06-05,Washburn,Wisconsin,55129,2,0 +2020-06-06,Washburn,Wisconsin,55129,3,0 +2020-06-07,Washburn,Wisconsin,55129,3,0 +2020-06-08,Washburn,Wisconsin,55129,3,0 +2020-06-09,Washburn,Wisconsin,55129,3,0 +2020-06-10,Washburn,Wisconsin,55129,3,0 +2020-06-11,Washburn,Wisconsin,55129,3,0 +2020-06-12,Washburn,Wisconsin,55129,3,0 +2020-06-13,Washburn,Wisconsin,55129,3,0 +2020-06-14,Washburn,Wisconsin,55129,3,0 +2020-06-15,Washburn,Wisconsin,55129,3,0 +2020-06-16,Washburn,Wisconsin,55129,3,0 +2020-06-17,Washburn,Wisconsin,55129,3,0 +2020-06-18,Washburn,Wisconsin,55129,3,0 +2020-06-19,Washburn,Wisconsin,55129,4,0 +2020-06-20,Washburn,Wisconsin,55129,4,0 +2020-06-21,Washburn,Wisconsin,55129,4,0 +2020-06-22,Washburn,Wisconsin,55129,4,0 +2020-06-23,Washburn,Wisconsin,55129,4,0 +2020-06-24,Washburn,Wisconsin,55129,4,0 +2020-06-25,Washburn,Wisconsin,55129,4,0 +2020-06-26,Washburn,Wisconsin,55129,4,0 +2020-06-27,Washburn,Wisconsin,55129,4,0 +2020-06-28,Washburn,Wisconsin,55129,4,0 +2020-06-29,Washburn,Wisconsin,55129,4,0 +2020-06-30,Washburn,Wisconsin,55129,4,0 +2020-07-01,Washburn,Wisconsin,55129,4,0 +2020-07-02,Washburn,Wisconsin,55129,4,0 +2020-07-03,Washburn,Wisconsin,55129,4,0 +2020-07-04,Washburn,Wisconsin,55129,4,0 +2020-07-05,Washburn,Wisconsin,55129,4,0 +2020-07-06,Washburn,Wisconsin,55129,4,0 +2020-07-07,Washburn,Wisconsin,55129,5,0 +2020-07-08,Washburn,Wisconsin,55129,5,0 +2020-07-09,Washburn,Wisconsin,55129,5,0 +2020-03-18,Washington,Wisconsin,55131,2,0 +2020-03-19,Washington,Wisconsin,55131,2,0 +2020-03-20,Washington,Wisconsin,55131,3,0 +2020-03-21,Washington,Wisconsin,55131,3,0 +2020-03-22,Washington,Wisconsin,55131,14,0 +2020-03-23,Washington,Wisconsin,55131,15,0 +2020-03-24,Washington,Wisconsin,55131,17,0 +2020-03-25,Washington,Wisconsin,55131,21,0 +2020-03-26,Washington,Wisconsin,55131,25,0 +2020-03-27,Washington,Wisconsin,55131,27,0 +2020-03-28,Washington,Wisconsin,55131,31,0 +2020-03-29,Washington,Wisconsin,55131,31,0 +2020-03-30,Washington,Wisconsin,55131,34,0 +2020-03-31,Washington,Wisconsin,55131,40,1 +2020-04-01,Washington,Wisconsin,55131,44,1 +2020-04-02,Washington,Wisconsin,55131,46,2 +2020-04-03,Washington,Wisconsin,55131,52,2 +2020-04-04,Washington,Wisconsin,55131,55,3 +2020-04-05,Washington,Wisconsin,55131,57,3 +2020-04-06,Washington,Wisconsin,55131,57,3 +2020-04-07,Washington,Wisconsin,55131,59,3 +2020-04-08,Washington,Wisconsin,55131,62,3 +2020-04-09,Washington,Wisconsin,55131,63,3 +2020-04-10,Washington,Wisconsin,55131,67,3 +2020-04-11,Washington,Wisconsin,55131,71,3 +2020-04-12,Washington,Wisconsin,55131,71,3 +2020-04-13,Washington,Wisconsin,55131,73,3 +2020-04-14,Washington,Wisconsin,55131,73,3 +2020-04-15,Washington,Wisconsin,55131,78,3 +2020-04-16,Washington,Wisconsin,55131,79,3 +2020-04-17,Washington,Wisconsin,55131,81,3 +2020-04-18,Washington,Wisconsin,55131,82,3 +2020-04-19,Washington,Wisconsin,55131,84,3 +2020-04-20,Washington,Wisconsin,55131,86,3 +2020-04-21,Washington,Wisconsin,55131,87,3 +2020-04-22,Washington,Wisconsin,55131,88,4 +2020-04-23,Washington,Wisconsin,55131,90,4 +2020-04-24,Washington,Wisconsin,55131,91,4 +2020-04-25,Washington,Wisconsin,55131,92,4 +2020-04-26,Washington,Wisconsin,55131,92,4 +2020-04-27,Washington,Wisconsin,55131,94,4 +2020-04-28,Washington,Wisconsin,55131,96,4 +2020-04-29,Washington,Wisconsin,55131,97,4 +2020-04-30,Washington,Wisconsin,55131,98,4 +2020-05-01,Washington,Wisconsin,55131,99,4 +2020-05-02,Washington,Wisconsin,55131,100,4 +2020-05-03,Washington,Wisconsin,55131,101,4 +2020-05-04,Washington,Wisconsin,55131,104,4 +2020-05-05,Washington,Wisconsin,55131,106,4 +2020-05-06,Washington,Wisconsin,55131,107,4 +2020-05-07,Washington,Wisconsin,55131,113,4 +2020-05-08,Washington,Wisconsin,55131,114,4 +2020-05-09,Washington,Wisconsin,55131,116,4 +2020-05-10,Washington,Wisconsin,55131,117,4 +2020-05-11,Washington,Wisconsin,55131,118,4 +2020-05-12,Washington,Wisconsin,55131,119,4 +2020-05-13,Washington,Wisconsin,55131,122,4 +2020-05-14,Washington,Wisconsin,55131,125,4 +2020-05-15,Washington,Wisconsin,55131,129,4 +2020-05-16,Washington,Wisconsin,55131,140,4 +2020-05-17,Washington,Wisconsin,55131,148,4 +2020-05-18,Washington,Wisconsin,55131,149,4 +2020-05-19,Washington,Wisconsin,55131,155,4 +2020-05-20,Washington,Wisconsin,55131,163,4 +2020-05-21,Washington,Wisconsin,55131,171,4 +2020-05-22,Washington,Wisconsin,55131,178,4 +2020-05-23,Washington,Wisconsin,55131,181,4 +2020-05-24,Washington,Wisconsin,55131,193,4 +2020-05-25,Washington,Wisconsin,55131,206,4 +2020-05-26,Washington,Wisconsin,55131,209,4 +2020-05-27,Washington,Wisconsin,55131,212,4 +2020-05-28,Washington,Wisconsin,55131,233,4 +2020-05-29,Washington,Wisconsin,55131,238,6 +2020-05-30,Washington,Wisconsin,55131,248,7 +2020-05-31,Washington,Wisconsin,55131,252,7 +2020-06-01,Washington,Wisconsin,55131,257,7 +2020-06-02,Washington,Wisconsin,55131,260,8 +2020-06-03,Washington,Wisconsin,55131,261,9 +2020-06-04,Washington,Wisconsin,55131,267,9 +2020-06-05,Washington,Wisconsin,55131,272,9 +2020-06-06,Washington,Wisconsin,55131,277,9 +2020-06-07,Washington,Wisconsin,55131,277,9 +2020-06-08,Washington,Wisconsin,55131,279,10 +2020-06-09,Washington,Wisconsin,55131,281,10 +2020-06-10,Washington,Wisconsin,55131,283,11 +2020-06-11,Washington,Wisconsin,55131,287,12 +2020-06-12,Washington,Wisconsin,55131,289,12 +2020-06-13,Washington,Wisconsin,55131,290,12 +2020-06-14,Washington,Wisconsin,55131,292,12 +2020-06-15,Washington,Wisconsin,55131,294,12 +2020-06-16,Washington,Wisconsin,55131,296,12 +2020-06-17,Washington,Wisconsin,55131,301,12 +2020-06-18,Washington,Wisconsin,55131,304,12 +2020-06-19,Washington,Wisconsin,55131,311,13 +2020-06-20,Washington,Wisconsin,55131,318,13 +2020-06-21,Washington,Wisconsin,55131,321,13 +2020-06-22,Washington,Wisconsin,55131,323,13 +2020-06-23,Washington,Wisconsin,55131,327,14 +2020-06-24,Washington,Wisconsin,55131,331,16 +2020-06-25,Washington,Wisconsin,55131,335,16 +2020-06-26,Washington,Wisconsin,55131,344,16 +2020-06-27,Washington,Wisconsin,55131,348,16 +2020-06-28,Washington,Wisconsin,55131,354,16 +2020-06-29,Washington,Wisconsin,55131,366,16 +2020-06-30,Washington,Wisconsin,55131,373,16 +2020-07-01,Washington,Wisconsin,55131,388,16 +2020-07-02,Washington,Wisconsin,55131,403,16 +2020-07-03,Washington,Wisconsin,55131,411,16 +2020-07-04,Washington,Wisconsin,55131,422,16 +2020-07-05,Washington,Wisconsin,55131,430,16 +2020-07-06,Washington,Wisconsin,55131,440,17 +2020-07-07,Washington,Wisconsin,55131,449,19 +2020-07-08,Washington,Wisconsin,55131,461,19 +2020-07-09,Washington,Wisconsin,55131,470,19 +2020-03-11,Waukesha,Wisconsin,55133,1,0 +2020-03-12,Waukesha,Wisconsin,55133,1,0 +2020-03-13,Waukesha,Wisconsin,55133,1,0 +2020-03-14,Waukesha,Wisconsin,55133,3,0 +2020-03-15,Waukesha,Wisconsin,55133,3,0 +2020-03-16,Waukesha,Wisconsin,55133,3,0 +2020-03-17,Waukesha,Wisconsin,55133,4,0 +2020-03-18,Waukesha,Wisconsin,55133,5,0 +2020-03-19,Waukesha,Wisconsin,55133,12,0 +2020-03-20,Waukesha,Wisconsin,55133,15,0 +2020-03-21,Waukesha,Wisconsin,55133,20,0 +2020-03-22,Waukesha,Wisconsin,55133,30,0 +2020-03-23,Waukesha,Wisconsin,55133,31,0 +2020-03-24,Waukesha,Wisconsin,55133,31,0 +2020-03-25,Waukesha,Wisconsin,55133,42,0 +2020-03-26,Waukesha,Wisconsin,55133,56,0 +2020-03-27,Waukesha,Wisconsin,55133,61,0 +2020-03-28,Waukesha,Wisconsin,55133,72,0 +2020-03-29,Waukesha,Wisconsin,55133,83,0 +2020-03-30,Waukesha,Wisconsin,55133,93,0 +2020-03-31,Waukesha,Wisconsin,55133,101,1 +2020-04-01,Waukesha,Wisconsin,55133,107,1 +2020-04-02,Waukesha,Wisconsin,55133,120,1 +2020-04-03,Waukesha,Wisconsin,55133,133,1 +2020-04-04,Waukesha,Wisconsin,55133,147,3 +2020-04-05,Waukesha,Wisconsin,55133,154,4 +2020-04-06,Waukesha,Wisconsin,55133,160,4 +2020-04-07,Waukesha,Wisconsin,55133,166,5 +2020-04-08,Waukesha,Wisconsin,55133,174,5 +2020-04-09,Waukesha,Wisconsin,55133,184,6 +2020-04-10,Waukesha,Wisconsin,55133,193,6 +2020-04-11,Waukesha,Wisconsin,55133,201,6 +2020-04-12,Waukesha,Wisconsin,55133,209,7 +2020-04-13,Waukesha,Wisconsin,55133,218,7 +2020-04-14,Waukesha,Wisconsin,55133,224,9 +2020-04-15,Waukesha,Wisconsin,55133,238,10 +2020-04-16,Waukesha,Wisconsin,55133,245,11 +2020-04-17,Waukesha,Wisconsin,55133,255,11 +2020-04-18,Waukesha,Wisconsin,55133,259,11 +2020-04-19,Waukesha,Wisconsin,55133,265,11 +2020-04-20,Waukesha,Wisconsin,55133,269,11 +2020-04-21,Waukesha,Wisconsin,55133,272,13 +2020-04-22,Waukesha,Wisconsin,55133,278,13 +2020-04-23,Waukesha,Wisconsin,55133,280,14 +2020-04-24,Waukesha,Wisconsin,55133,289,14 +2020-04-25,Waukesha,Wisconsin,55133,299,14 +2020-04-26,Waukesha,Wisconsin,55133,307,14 +2020-04-27,Waukesha,Wisconsin,55133,313,15 +2020-04-28,Waukesha,Wisconsin,55133,321,16 +2020-04-29,Waukesha,Wisconsin,55133,329,16 +2020-04-30,Waukesha,Wisconsin,55133,336,19 +2020-05-01,Waukesha,Wisconsin,55133,350,20 +2020-05-02,Waukesha,Wisconsin,55133,356,20 +2020-05-03,Waukesha,Wisconsin,55133,360,20 +2020-05-04,Waukesha,Wisconsin,55133,367,20 +2020-05-05,Waukesha,Wisconsin,55133,368,20 +2020-05-06,Waukesha,Wisconsin,55133,374,22 +2020-05-07,Waukesha,Wisconsin,55133,380,22 +2020-05-08,Waukesha,Wisconsin,55133,387,22 +2020-05-09,Waukesha,Wisconsin,55133,396,23 +2020-05-10,Waukesha,Wisconsin,55133,400,23 +2020-05-11,Waukesha,Wisconsin,55133,409,23 +2020-05-12,Waukesha,Wisconsin,55133,414,23 +2020-05-13,Waukesha,Wisconsin,55133,421,23 +2020-05-14,Waukesha,Wisconsin,55133,444,23 +2020-05-15,Waukesha,Wisconsin,55133,454,23 +2020-05-16,Waukesha,Wisconsin,55133,467,23 +2020-05-17,Waukesha,Wisconsin,55133,476,23 +2020-05-18,Waukesha,Wisconsin,55133,482,23 +2020-05-19,Waukesha,Wisconsin,55133,492,23 +2020-05-20,Waukesha,Wisconsin,55133,514,24 +2020-05-21,Waukesha,Wisconsin,55133,527,24 +2020-05-22,Waukesha,Wisconsin,55133,537,25 +2020-05-23,Waukesha,Wisconsin,55133,553,25 +2020-05-24,Waukesha,Wisconsin,55133,561,25 +2020-05-25,Waukesha,Wisconsin,55133,567,25 +2020-05-26,Waukesha,Wisconsin,55133,578,26 +2020-05-27,Waukesha,Wisconsin,55133,593,28 +2020-05-28,Waukesha,Wisconsin,55133,650,28 +2020-05-29,Waukesha,Wisconsin,55133,665,28 +2020-05-30,Waukesha,Wisconsin,55133,690,30 +2020-05-31,Waukesha,Wisconsin,55133,696,30 +2020-06-01,Waukesha,Wisconsin,55133,709,30 +2020-06-02,Waukesha,Wisconsin,55133,729,31 +2020-06-03,Waukesha,Wisconsin,55133,756,31 +2020-06-04,Waukesha,Wisconsin,55133,768,31 +2020-06-05,Waukesha,Wisconsin,55133,787,32 +2020-06-06,Waukesha,Wisconsin,55133,799,32 +2020-06-07,Waukesha,Wisconsin,55133,814,33 +2020-06-08,Waukesha,Wisconsin,55133,823,34 +2020-06-09,Waukesha,Wisconsin,55133,833,34 +2020-06-10,Waukesha,Wisconsin,55133,856,34 +2020-06-11,Waukesha,Wisconsin,55133,871,34 +2020-06-12,Waukesha,Wisconsin,55133,884,34 +2020-06-13,Waukesha,Wisconsin,55133,894,34 +2020-06-14,Waukesha,Wisconsin,55133,904,35 +2020-06-15,Waukesha,Wisconsin,55133,919,35 +2020-06-16,Waukesha,Wisconsin,55133,933,35 +2020-06-17,Waukesha,Wisconsin,55133,947,35 +2020-06-18,Waukesha,Wisconsin,55133,961,36 +2020-06-19,Waukesha,Wisconsin,55133,976,38 +2020-06-20,Waukesha,Wisconsin,55133,991,38 +2020-06-21,Waukesha,Wisconsin,55133,1003,38 +2020-06-22,Waukesha,Wisconsin,55133,1015,38 +2020-06-23,Waukesha,Wisconsin,55133,1036,38 +2020-06-24,Waukesha,Wisconsin,55133,1056,38 +2020-06-25,Waukesha,Wisconsin,55133,1071,38 +2020-06-26,Waukesha,Wisconsin,55133,1109,38 +2020-06-27,Waukesha,Wisconsin,55133,1119,38 +2020-06-28,Waukesha,Wisconsin,55133,1139,38 +2020-06-29,Waukesha,Wisconsin,55133,1157,38 +2020-06-30,Waukesha,Wisconsin,55133,1199,38 +2020-07-01,Waukesha,Wisconsin,55133,1227,39 +2020-07-02,Waukesha,Wisconsin,55133,1258,39 +2020-07-03,Waukesha,Wisconsin,55133,1304,39 +2020-07-04,Waukesha,Wisconsin,55133,1353,39 +2020-07-05,Waukesha,Wisconsin,55133,1389,39 +2020-07-06,Waukesha,Wisconsin,55133,1412,39 +2020-07-07,Waukesha,Wisconsin,55133,1429,39 +2020-07-08,Waukesha,Wisconsin,55133,1506,39 +2020-07-09,Waukesha,Wisconsin,55133,1547,40 +2020-03-27,Waupaca,Wisconsin,55135,1,0 +2020-03-28,Waupaca,Wisconsin,55135,1,1 +2020-03-29,Waupaca,Wisconsin,55135,1,1 +2020-03-30,Waupaca,Wisconsin,55135,1,1 +2020-03-31,Waupaca,Wisconsin,55135,1,1 +2020-04-01,Waupaca,Wisconsin,55135,2,1 +2020-04-02,Waupaca,Wisconsin,55135,2,1 +2020-04-03,Waupaca,Wisconsin,55135,2,1 +2020-04-04,Waupaca,Wisconsin,55135,2,1 +2020-04-05,Waupaca,Wisconsin,55135,2,1 +2020-04-06,Waupaca,Wisconsin,55135,2,1 +2020-04-07,Waupaca,Wisconsin,55135,2,1 +2020-04-08,Waupaca,Wisconsin,55135,2,1 +2020-04-09,Waupaca,Wisconsin,55135,3,1 +2020-04-10,Waupaca,Wisconsin,55135,3,1 +2020-04-11,Waupaca,Wisconsin,55135,3,1 +2020-04-12,Waupaca,Wisconsin,55135,4,1 +2020-04-13,Waupaca,Wisconsin,55135,4,1 +2020-04-14,Waupaca,Wisconsin,55135,4,1 +2020-04-15,Waupaca,Wisconsin,55135,4,1 +2020-04-16,Waupaca,Wisconsin,55135,4,1 +2020-04-17,Waupaca,Wisconsin,55135,4,1 +2020-04-18,Waupaca,Wisconsin,55135,4,1 +2020-04-19,Waupaca,Wisconsin,55135,4,1 +2020-04-20,Waupaca,Wisconsin,55135,4,1 +2020-04-21,Waupaca,Wisconsin,55135,4,1 +2020-04-22,Waupaca,Wisconsin,55135,5,1 +2020-04-23,Waupaca,Wisconsin,55135,6,1 +2020-04-24,Waupaca,Wisconsin,55135,7,1 +2020-04-25,Waupaca,Wisconsin,55135,7,1 +2020-04-26,Waupaca,Wisconsin,55135,7,1 +2020-04-27,Waupaca,Wisconsin,55135,7,1 +2020-04-28,Waupaca,Wisconsin,55135,7,1 +2020-04-29,Waupaca,Wisconsin,55135,8,1 +2020-04-30,Waupaca,Wisconsin,55135,8,1 +2020-05-01,Waupaca,Wisconsin,55135,10,1 +2020-05-02,Waupaca,Wisconsin,55135,10,1 +2020-05-03,Waupaca,Wisconsin,55135,10,1 +2020-05-04,Waupaca,Wisconsin,55135,10,1 +2020-05-05,Waupaca,Wisconsin,55135,10,1 +2020-05-06,Waupaca,Wisconsin,55135,10,1 +2020-05-07,Waupaca,Wisconsin,55135,10,1 +2020-05-08,Waupaca,Wisconsin,55135,11,1 +2020-05-09,Waupaca,Wisconsin,55135,13,1 +2020-05-10,Waupaca,Wisconsin,55135,13,1 +2020-05-11,Waupaca,Wisconsin,55135,13,1 +2020-05-12,Waupaca,Wisconsin,55135,13,1 +2020-05-13,Waupaca,Wisconsin,55135,14,1 +2020-05-14,Waupaca,Wisconsin,55135,15,1 +2020-05-15,Waupaca,Wisconsin,55135,16,1 +2020-05-16,Waupaca,Wisconsin,55135,17,1 +2020-05-17,Waupaca,Wisconsin,55135,17,1 +2020-05-18,Waupaca,Wisconsin,55135,17,1 +2020-05-19,Waupaca,Wisconsin,55135,19,1 +2020-05-20,Waupaca,Wisconsin,55135,19,1 +2020-05-21,Waupaca,Wisconsin,55135,19,1 +2020-05-22,Waupaca,Wisconsin,55135,20,1 +2020-05-23,Waupaca,Wisconsin,55135,20,1 +2020-05-24,Waupaca,Wisconsin,55135,23,1 +2020-05-25,Waupaca,Wisconsin,55135,23,1 +2020-05-26,Waupaca,Wisconsin,55135,26,1 +2020-05-27,Waupaca,Wisconsin,55135,27,1 +2020-05-28,Waupaca,Wisconsin,55135,27,1 +2020-05-29,Waupaca,Wisconsin,55135,29,1 +2020-05-30,Waupaca,Wisconsin,55135,39,1 +2020-05-31,Waupaca,Wisconsin,55135,41,1 +2020-06-01,Waupaca,Wisconsin,55135,42,1 +2020-06-02,Waupaca,Wisconsin,55135,45,1 +2020-06-03,Waupaca,Wisconsin,55135,45,1 +2020-06-04,Waupaca,Wisconsin,55135,47,1 +2020-06-05,Waupaca,Wisconsin,55135,49,1 +2020-06-06,Waupaca,Wisconsin,55135,51,1 +2020-06-07,Waupaca,Wisconsin,55135,57,1 +2020-06-08,Waupaca,Wisconsin,55135,58,1 +2020-06-09,Waupaca,Wisconsin,55135,58,1 +2020-06-10,Waupaca,Wisconsin,55135,61,1 +2020-06-11,Waupaca,Wisconsin,55135,63,2 +2020-06-12,Waupaca,Wisconsin,55135,66,3 +2020-06-13,Waupaca,Wisconsin,55135,71,3 +2020-06-14,Waupaca,Wisconsin,55135,78,3 +2020-06-15,Waupaca,Wisconsin,55135,79,3 +2020-06-16,Waupaca,Wisconsin,55135,80,4 +2020-06-17,Waupaca,Wisconsin,55135,82,5 +2020-06-18,Waupaca,Wisconsin,55135,84,5 +2020-06-19,Waupaca,Wisconsin,55135,87,5 +2020-06-20,Waupaca,Wisconsin,55135,89,5 +2020-06-21,Waupaca,Wisconsin,55135,91,5 +2020-06-22,Waupaca,Wisconsin,55135,91,5 +2020-06-23,Waupaca,Wisconsin,55135,95,6 +2020-06-24,Waupaca,Wisconsin,55135,96,6 +2020-06-25,Waupaca,Wisconsin,55135,101,6 +2020-06-26,Waupaca,Wisconsin,55135,104,6 +2020-06-27,Waupaca,Wisconsin,55135,106,6 +2020-06-28,Waupaca,Wisconsin,55135,106,6 +2020-06-29,Waupaca,Wisconsin,55135,106,6 +2020-06-30,Waupaca,Wisconsin,55135,113,7 +2020-07-01,Waupaca,Wisconsin,55135,116,7 +2020-07-02,Waupaca,Wisconsin,55135,121,10 +2020-07-03,Waupaca,Wisconsin,55135,122,10 +2020-07-04,Waupaca,Wisconsin,55135,128,10 +2020-07-05,Waupaca,Wisconsin,55135,135,10 +2020-07-06,Waupaca,Wisconsin,55135,139,10 +2020-07-07,Waupaca,Wisconsin,55135,145,10 +2020-07-08,Waupaca,Wisconsin,55135,152,11 +2020-07-09,Waupaca,Wisconsin,55135,157,11 +2020-04-06,Waushara,Wisconsin,55137,1,0 +2020-04-07,Waushara,Wisconsin,55137,1,0 +2020-04-08,Waushara,Wisconsin,55137,1,0 +2020-04-09,Waushara,Wisconsin,55137,2,0 +2020-04-10,Waushara,Wisconsin,55137,2,0 +2020-04-11,Waushara,Wisconsin,55137,2,0 +2020-04-12,Waushara,Wisconsin,55137,2,0 +2020-04-13,Waushara,Wisconsin,55137,2,0 +2020-04-14,Waushara,Wisconsin,55137,2,0 +2020-04-15,Waushara,Wisconsin,55137,2,0 +2020-04-16,Waushara,Wisconsin,55137,2,0 +2020-04-17,Waushara,Wisconsin,55137,2,0 +2020-04-18,Waushara,Wisconsin,55137,2,0 +2020-04-19,Waushara,Wisconsin,55137,2,0 +2020-04-20,Waushara,Wisconsin,55137,2,0 +2020-04-21,Waushara,Wisconsin,55137,2,0 +2020-04-22,Waushara,Wisconsin,55137,2,0 +2020-04-23,Waushara,Wisconsin,55137,2,0 +2020-04-24,Waushara,Wisconsin,55137,2,0 +2020-04-25,Waushara,Wisconsin,55137,2,0 +2020-04-26,Waushara,Wisconsin,55137,2,0 +2020-04-27,Waushara,Wisconsin,55137,2,0 +2020-04-28,Waushara,Wisconsin,55137,2,0 +2020-04-29,Waushara,Wisconsin,55137,2,0 +2020-04-30,Waushara,Wisconsin,55137,2,0 +2020-05-01,Waushara,Wisconsin,55137,2,0 +2020-05-02,Waushara,Wisconsin,55137,2,0 +2020-05-03,Waushara,Wisconsin,55137,2,0 +2020-05-04,Waushara,Wisconsin,55137,2,0 +2020-05-05,Waushara,Wisconsin,55137,4,0 +2020-05-06,Waushara,Wisconsin,55137,4,0 +2020-05-07,Waushara,Wisconsin,55137,4,0 +2020-05-08,Waushara,Wisconsin,55137,4,0 +2020-05-09,Waushara,Wisconsin,55137,4,0 +2020-05-10,Waushara,Wisconsin,55137,4,0 +2020-05-11,Waushara,Wisconsin,55137,4,0 +2020-05-12,Waushara,Wisconsin,55137,4,0 +2020-05-13,Waushara,Wisconsin,55137,4,0 +2020-05-14,Waushara,Wisconsin,55137,4,0 +2020-05-15,Waushara,Wisconsin,55137,5,0 +2020-05-16,Waushara,Wisconsin,55137,5,0 +2020-05-17,Waushara,Wisconsin,55137,5,0 +2020-05-18,Waushara,Wisconsin,55137,7,0 +2020-05-19,Waushara,Wisconsin,55137,7,0 +2020-05-20,Waushara,Wisconsin,55137,7,0 +2020-05-21,Waushara,Wisconsin,55137,7,0 +2020-05-22,Waushara,Wisconsin,55137,7,0 +2020-05-23,Waushara,Wisconsin,55137,7,0 +2020-05-24,Waushara,Wisconsin,55137,8,0 +2020-05-25,Waushara,Wisconsin,55137,8,0 +2020-05-26,Waushara,Wisconsin,55137,8,0 +2020-05-27,Waushara,Wisconsin,55137,8,0 +2020-05-28,Waushara,Wisconsin,55137,8,0 +2020-05-29,Waushara,Wisconsin,55137,8,0 +2020-05-30,Waushara,Wisconsin,55137,8,0 +2020-05-31,Waushara,Wisconsin,55137,8,0 +2020-06-01,Waushara,Wisconsin,55137,8,0 +2020-06-02,Waushara,Wisconsin,55137,8,0 +2020-06-03,Waushara,Wisconsin,55137,10,0 +2020-06-04,Waushara,Wisconsin,55137,9,0 +2020-06-05,Waushara,Wisconsin,55137,10,0 +2020-06-06,Waushara,Wisconsin,55137,10,0 +2020-06-07,Waushara,Wisconsin,55137,10,0 +2020-06-08,Waushara,Wisconsin,55137,10,0 +2020-06-09,Waushara,Wisconsin,55137,13,0 +2020-06-10,Waushara,Wisconsin,55137,13,0 +2020-06-11,Waushara,Wisconsin,55137,14,0 +2020-06-12,Waushara,Wisconsin,55137,16,0 +2020-06-13,Waushara,Wisconsin,55137,16,0 +2020-06-14,Waushara,Wisconsin,55137,16,0 +2020-06-15,Waushara,Wisconsin,55137,16,0 +2020-06-16,Waushara,Wisconsin,55137,20,0 +2020-06-17,Waushara,Wisconsin,55137,19,0 +2020-06-18,Waushara,Wisconsin,55137,18,0 +2020-06-19,Waushara,Wisconsin,55137,19,0 +2020-06-20,Waushara,Wisconsin,55137,20,0 +2020-06-21,Waushara,Wisconsin,55137,20,0 +2020-06-22,Waushara,Wisconsin,55137,20,0 +2020-06-23,Waushara,Wisconsin,55137,20,0 +2020-06-24,Waushara,Wisconsin,55137,20,0 +2020-06-25,Waushara,Wisconsin,55137,20,0 +2020-06-26,Waushara,Wisconsin,55137,20,0 +2020-06-27,Waushara,Wisconsin,55137,21,0 +2020-06-28,Waushara,Wisconsin,55137,23,0 +2020-06-29,Waushara,Wisconsin,55137,23,0 +2020-06-30,Waushara,Wisconsin,55137,25,0 +2020-07-01,Waushara,Wisconsin,55137,29,0 +2020-07-02,Waushara,Wisconsin,55137,31,0 +2020-07-03,Waushara,Wisconsin,55137,32,0 +2020-07-04,Waushara,Wisconsin,55137,34,0 +2020-07-05,Waushara,Wisconsin,55137,33,0 +2020-07-06,Waushara,Wisconsin,55137,33,0 +2020-07-07,Waushara,Wisconsin,55137,34,0 +2020-07-08,Waushara,Wisconsin,55137,36,0 +2020-07-09,Waushara,Wisconsin,55137,38,0 +2020-03-14,Winnebago,Wisconsin,55139,1,0 +2020-03-15,Winnebago,Wisconsin,55139,1,0 +2020-03-16,Winnebago,Wisconsin,55139,3,0 +2020-03-17,Winnebago,Wisconsin,55139,3,0 +2020-03-18,Winnebago,Wisconsin,55139,3,0 +2020-03-19,Winnebago,Wisconsin,55139,5,0 +2020-03-20,Winnebago,Wisconsin,55139,5,0 +2020-03-21,Winnebago,Wisconsin,55139,5,0 +2020-03-22,Winnebago,Wisconsin,55139,5,0 +2020-03-23,Winnebago,Wisconsin,55139,5,0 +2020-03-24,Winnebago,Wisconsin,55139,5,0 +2020-03-25,Winnebago,Wisconsin,55139,5,0 +2020-03-26,Winnebago,Wisconsin,55139,6,0 +2020-03-27,Winnebago,Wisconsin,55139,6,0 +2020-03-28,Winnebago,Wisconsin,55139,7,0 +2020-03-29,Winnebago,Wisconsin,55139,8,0 +2020-03-30,Winnebago,Wisconsin,55139,10,0 +2020-03-31,Winnebago,Wisconsin,55139,11,0 +2020-04-01,Winnebago,Wisconsin,55139,13,0 +2020-04-02,Winnebago,Wisconsin,55139,17,0 +2020-04-03,Winnebago,Wisconsin,55139,18,0 +2020-04-04,Winnebago,Wisconsin,55139,18,0 +2020-04-05,Winnebago,Wisconsin,55139,20,0 +2020-04-06,Winnebago,Wisconsin,55139,24,1 +2020-04-07,Winnebago,Wisconsin,55139,24,1 +2020-04-08,Winnebago,Wisconsin,55139,24,1 +2020-04-09,Winnebago,Wisconsin,55139,25,1 +2020-04-10,Winnebago,Wisconsin,55139,25,1 +2020-04-11,Winnebago,Wisconsin,55139,25,1 +2020-04-12,Winnebago,Wisconsin,55139,27,1 +2020-04-13,Winnebago,Wisconsin,55139,27,1 +2020-04-14,Winnebago,Wisconsin,55139,29,1 +2020-04-15,Winnebago,Wisconsin,55139,31,1 +2020-04-16,Winnebago,Wisconsin,55139,32,1 +2020-04-17,Winnebago,Wisconsin,55139,34,1 +2020-04-18,Winnebago,Wisconsin,55139,38,1 +2020-04-19,Winnebago,Wisconsin,55139,41,1 +2020-04-20,Winnebago,Wisconsin,55139,41,1 +2020-04-21,Winnebago,Wisconsin,55139,40,1 +2020-04-22,Winnebago,Wisconsin,55139,43,1 +2020-04-23,Winnebago,Wisconsin,55139,46,1 +2020-04-24,Winnebago,Wisconsin,55139,46,1 +2020-04-25,Winnebago,Wisconsin,55139,48,1 +2020-04-26,Winnebago,Wisconsin,55139,48,1 +2020-04-27,Winnebago,Wisconsin,55139,48,1 +2020-04-28,Winnebago,Wisconsin,55139,48,1 +2020-04-29,Winnebago,Wisconsin,55139,51,1 +2020-04-30,Winnebago,Wisconsin,55139,53,1 +2020-05-01,Winnebago,Wisconsin,55139,62,1 +2020-05-02,Winnebago,Wisconsin,55139,67,1 +2020-05-03,Winnebago,Wisconsin,55139,69,1 +2020-05-04,Winnebago,Wisconsin,55139,72,1 +2020-05-05,Winnebago,Wisconsin,55139,83,1 +2020-05-06,Winnebago,Wisconsin,55139,85,1 +2020-05-07,Winnebago,Wisconsin,55139,88,1 +2020-05-08,Winnebago,Wisconsin,55139,91,1 +2020-05-09,Winnebago,Wisconsin,55139,98,1 +2020-05-10,Winnebago,Wisconsin,55139,98,1 +2020-05-11,Winnebago,Wisconsin,55139,100,1 +2020-05-12,Winnebago,Wisconsin,55139,101,1 +2020-05-13,Winnebago,Wisconsin,55139,102,1 +2020-05-14,Winnebago,Wisconsin,55139,108,1 +2020-05-15,Winnebago,Wisconsin,55139,112,1 +2020-05-16,Winnebago,Wisconsin,55139,117,1 +2020-05-17,Winnebago,Wisconsin,55139,123,1 +2020-05-18,Winnebago,Wisconsin,55139,124,1 +2020-05-19,Winnebago,Wisconsin,55139,126,1 +2020-05-20,Winnebago,Wisconsin,55139,134,1 +2020-05-21,Winnebago,Wisconsin,55139,141,1 +2020-05-22,Winnebago,Wisconsin,55139,160,1 +2020-05-23,Winnebago,Wisconsin,55139,166,1 +2020-05-24,Winnebago,Wisconsin,55139,172,1 +2020-05-25,Winnebago,Wisconsin,55139,182,1 +2020-05-26,Winnebago,Wisconsin,55139,191,1 +2020-05-27,Winnebago,Wisconsin,55139,199,3 +2020-05-28,Winnebago,Wisconsin,55139,205,3 +2020-05-29,Winnebago,Wisconsin,55139,224,4 +2020-05-30,Winnebago,Wisconsin,55139,238,6 +2020-05-31,Winnebago,Wisconsin,55139,244,7 +2020-06-01,Winnebago,Wisconsin,55139,249,7 +2020-06-02,Winnebago,Wisconsin,55139,270,7 +2020-06-03,Winnebago,Wisconsin,55139,284,7 +2020-06-04,Winnebago,Wisconsin,55139,309,7 +2020-06-05,Winnebago,Wisconsin,55139,334,7 +2020-06-06,Winnebago,Wisconsin,55139,354,7 +2020-06-07,Winnebago,Wisconsin,55139,385,7 +2020-06-08,Winnebago,Wisconsin,55139,397,7 +2020-06-09,Winnebago,Wisconsin,55139,431,7 +2020-06-10,Winnebago,Wisconsin,55139,457,8 +2020-06-11,Winnebago,Wisconsin,55139,473,8 +2020-06-12,Winnebago,Wisconsin,55139,485,9 +2020-06-13,Winnebago,Wisconsin,55139,506,9 +2020-06-14,Winnebago,Wisconsin,55139,518,9 +2020-06-15,Winnebago,Wisconsin,55139,532,9 +2020-06-16,Winnebago,Wisconsin,55139,537,9 +2020-06-17,Winnebago,Wisconsin,55139,551,10 +2020-06-18,Winnebago,Wisconsin,55139,569,10 +2020-06-19,Winnebago,Wisconsin,55139,579,10 +2020-06-20,Winnebago,Wisconsin,55139,593,11 +2020-06-21,Winnebago,Wisconsin,55139,601,11 +2020-06-22,Winnebago,Wisconsin,55139,608,11 +2020-06-23,Winnebago,Wisconsin,55139,619,11 +2020-06-24,Winnebago,Wisconsin,55139,626,11 +2020-06-25,Winnebago,Wisconsin,55139,634,11 +2020-06-26,Winnebago,Wisconsin,55139,639,11 +2020-06-27,Winnebago,Wisconsin,55139,643,11 +2020-06-28,Winnebago,Wisconsin,55139,655,11 +2020-06-29,Winnebago,Wisconsin,55139,662,11 +2020-06-30,Winnebago,Wisconsin,55139,669,11 +2020-07-01,Winnebago,Wisconsin,55139,683,11 +2020-07-02,Winnebago,Wisconsin,55139,692,11 +2020-07-03,Winnebago,Wisconsin,55139,692,13 +2020-07-04,Winnebago,Wisconsin,55139,701,13 +2020-07-05,Winnebago,Wisconsin,55139,711,13 +2020-07-06,Winnebago,Wisconsin,55139,715,13 +2020-07-07,Winnebago,Wisconsin,55139,723,13 +2020-07-08,Winnebago,Wisconsin,55139,726,13 +2020-07-09,Winnebago,Wisconsin,55139,747,13 +2020-03-16,Wood,Wisconsin,55141,1,0 +2020-03-17,Wood,Wisconsin,55141,1,0 +2020-03-18,Wood,Wisconsin,55141,1,0 +2020-03-19,Wood,Wisconsin,55141,1,0 +2020-03-20,Wood,Wisconsin,55141,1,0 +2020-03-21,Wood,Wisconsin,55141,1,0 +2020-03-22,Wood,Wisconsin,55141,1,0 +2020-03-23,Wood,Wisconsin,55141,1,0 +2020-03-24,Wood,Wisconsin,55141,1,0 +2020-03-25,Wood,Wisconsin,55141,1,0 +2020-03-26,Wood,Wisconsin,55141,2,0 +2020-03-27,Wood,Wisconsin,55141,2,0 +2020-03-28,Wood,Wisconsin,55141,2,0 +2020-03-29,Wood,Wisconsin,55141,2,0 +2020-03-30,Wood,Wisconsin,55141,2,0 +2020-03-31,Wood,Wisconsin,55141,2,0 +2020-04-01,Wood,Wisconsin,55141,2,0 +2020-04-02,Wood,Wisconsin,55141,2,0 +2020-04-03,Wood,Wisconsin,55141,2,0 +2020-04-04,Wood,Wisconsin,55141,2,0 +2020-04-05,Wood,Wisconsin,55141,2,0 +2020-04-06,Wood,Wisconsin,55141,2,0 +2020-04-07,Wood,Wisconsin,55141,2,0 +2020-04-08,Wood,Wisconsin,55141,2,0 +2020-04-09,Wood,Wisconsin,55141,2,0 +2020-04-10,Wood,Wisconsin,55141,2,0 +2020-04-11,Wood,Wisconsin,55141,2,0 +2020-04-12,Wood,Wisconsin,55141,2,0 +2020-04-13,Wood,Wisconsin,55141,2,0 +2020-04-14,Wood,Wisconsin,55141,2,0 +2020-04-15,Wood,Wisconsin,55141,2,0 +2020-04-16,Wood,Wisconsin,55141,2,0 +2020-04-17,Wood,Wisconsin,55141,2,0 +2020-04-18,Wood,Wisconsin,55141,2,0 +2020-04-19,Wood,Wisconsin,55141,2,0 +2020-04-20,Wood,Wisconsin,55141,2,0 +2020-04-21,Wood,Wisconsin,55141,2,0 +2020-04-22,Wood,Wisconsin,55141,2,0 +2020-04-23,Wood,Wisconsin,55141,2,0 +2020-04-24,Wood,Wisconsin,55141,2,0 +2020-04-25,Wood,Wisconsin,55141,2,0 +2020-04-26,Wood,Wisconsin,55141,2,0 +2020-04-27,Wood,Wisconsin,55141,2,0 +2020-04-28,Wood,Wisconsin,55141,2,0 +2020-04-29,Wood,Wisconsin,55141,2,0 +2020-04-30,Wood,Wisconsin,55141,2,0 +2020-05-01,Wood,Wisconsin,55141,2,0 +2020-05-02,Wood,Wisconsin,55141,2,0 +2020-05-03,Wood,Wisconsin,55141,2,0 +2020-05-04,Wood,Wisconsin,55141,2,0 +2020-05-05,Wood,Wisconsin,55141,2,0 +2020-05-06,Wood,Wisconsin,55141,2,0 +2020-05-07,Wood,Wisconsin,55141,2,0 +2020-05-08,Wood,Wisconsin,55141,2,0 +2020-05-09,Wood,Wisconsin,55141,2,0 +2020-05-10,Wood,Wisconsin,55141,2,0 +2020-05-11,Wood,Wisconsin,55141,4,0 +2020-05-12,Wood,Wisconsin,55141,4,0 +2020-05-13,Wood,Wisconsin,55141,4,0 +2020-05-14,Wood,Wisconsin,55141,5,0 +2020-05-15,Wood,Wisconsin,55141,5,0 +2020-05-16,Wood,Wisconsin,55141,6,0 +2020-05-17,Wood,Wisconsin,55141,6,0 +2020-05-18,Wood,Wisconsin,55141,7,0 +2020-05-19,Wood,Wisconsin,55141,8,0 +2020-05-20,Wood,Wisconsin,55141,8,0 +2020-05-21,Wood,Wisconsin,55141,9,0 +2020-05-22,Wood,Wisconsin,55141,9,0 +2020-05-23,Wood,Wisconsin,55141,9,1 +2020-05-24,Wood,Wisconsin,55141,9,1 +2020-05-25,Wood,Wisconsin,55141,9,1 +2020-05-26,Wood,Wisconsin,55141,9,1 +2020-05-27,Wood,Wisconsin,55141,9,1 +2020-05-28,Wood,Wisconsin,55141,10,1 +2020-05-29,Wood,Wisconsin,55141,10,1 +2020-05-30,Wood,Wisconsin,55141,10,1 +2020-05-31,Wood,Wisconsin,55141,10,1 +2020-06-01,Wood,Wisconsin,55141,10,1 +2020-06-02,Wood,Wisconsin,55141,10,1 +2020-06-03,Wood,Wisconsin,55141,10,1 +2020-06-04,Wood,Wisconsin,55141,11,1 +2020-06-05,Wood,Wisconsin,55141,11,1 +2020-06-06,Wood,Wisconsin,55141,11,1 +2020-06-07,Wood,Wisconsin,55141,11,1 +2020-06-08,Wood,Wisconsin,55141,11,1 +2020-06-09,Wood,Wisconsin,55141,12,1 +2020-06-10,Wood,Wisconsin,55141,13,1 +2020-06-11,Wood,Wisconsin,55141,15,1 +2020-06-12,Wood,Wisconsin,55141,16,1 +2020-06-13,Wood,Wisconsin,55141,17,1 +2020-06-14,Wood,Wisconsin,55141,21,1 +2020-06-15,Wood,Wisconsin,55141,23,1 +2020-06-16,Wood,Wisconsin,55141,23,1 +2020-06-17,Wood,Wisconsin,55141,25,1 +2020-06-18,Wood,Wisconsin,55141,28,1 +2020-06-19,Wood,Wisconsin,55141,29,1 +2020-06-20,Wood,Wisconsin,55141,31,1 +2020-06-21,Wood,Wisconsin,55141,32,1 +2020-06-22,Wood,Wisconsin,55141,33,1 +2020-06-23,Wood,Wisconsin,55141,34,1 +2020-06-24,Wood,Wisconsin,55141,37,1 +2020-06-25,Wood,Wisconsin,55141,37,1 +2020-06-26,Wood,Wisconsin,55141,39,1 +2020-06-27,Wood,Wisconsin,55141,42,1 +2020-06-28,Wood,Wisconsin,55141,47,1 +2020-06-29,Wood,Wisconsin,55141,49,1 +2020-06-30,Wood,Wisconsin,55141,51,1 +2020-07-01,Wood,Wisconsin,55141,61,1 +2020-07-02,Wood,Wisconsin,55141,63,1 +2020-07-03,Wood,Wisconsin,55141,69,1 +2020-07-04,Wood,Wisconsin,55141,79,1 +2020-07-05,Wood,Wisconsin,55141,84,1 +2020-07-06,Wood,Wisconsin,55141,86,1 +2020-07-07,Wood,Wisconsin,55141,86,1 +2020-07-08,Wood,Wisconsin,55141,93,1 +2020-07-09,Wood,Wisconsin,55141,99,1 +2020-03-25,Albany,Wyoming,56001,1,0 +2020-03-26,Albany,Wyoming,56001,1,0 +2020-03-27,Albany,Wyoming,56001,1,0 +2020-03-28,Albany,Wyoming,56001,1,0 +2020-03-29,Albany,Wyoming,56001,1,0 +2020-03-30,Albany,Wyoming,56001,1,0 +2020-03-31,Albany,Wyoming,56001,3,0 +2020-04-01,Albany,Wyoming,56001,3,0 +2020-04-02,Albany,Wyoming,56001,3,0 +2020-04-03,Albany,Wyoming,56001,4,0 +2020-04-04,Albany,Wyoming,56001,4,0 +2020-04-05,Albany,Wyoming,56001,4,0 +2020-04-06,Albany,Wyoming,56001,4,0 +2020-04-07,Albany,Wyoming,56001,4,0 +2020-04-08,Albany,Wyoming,56001,4,0 +2020-04-09,Albany,Wyoming,56001,4,0 +2020-04-10,Albany,Wyoming,56001,4,0 +2020-04-11,Albany,Wyoming,56001,5,0 +2020-04-12,Albany,Wyoming,56001,5,0 +2020-04-13,Albany,Wyoming,56001,5,0 +2020-04-14,Albany,Wyoming,56001,5,0 +2020-04-15,Albany,Wyoming,56001,5,0 +2020-04-16,Albany,Wyoming,56001,5,0 +2020-04-17,Albany,Wyoming,56001,7,0 +2020-04-18,Albany,Wyoming,56001,7,0 +2020-04-19,Albany,Wyoming,56001,7,0 +2020-04-20,Albany,Wyoming,56001,7,0 +2020-04-21,Albany,Wyoming,56001,6,0 +2020-04-22,Albany,Wyoming,56001,6,0 +2020-04-23,Albany,Wyoming,56001,6,0 +2020-04-24,Albany,Wyoming,56001,6,0 +2020-04-25,Albany,Wyoming,56001,6,0 +2020-04-26,Albany,Wyoming,56001,6,0 +2020-04-27,Albany,Wyoming,56001,7,0 +2020-04-28,Albany,Wyoming,56001,8,0 +2020-04-29,Albany,Wyoming,56001,8,0 +2020-04-30,Albany,Wyoming,56001,8,0 +2020-05-01,Albany,Wyoming,56001,8,0 +2020-05-02,Albany,Wyoming,56001,8,0 +2020-05-03,Albany,Wyoming,56001,8,0 +2020-05-04,Albany,Wyoming,56001,8,0 +2020-05-05,Albany,Wyoming,56001,8,0 +2020-05-06,Albany,Wyoming,56001,8,0 +2020-05-07,Albany,Wyoming,56001,8,0 +2020-05-08,Albany,Wyoming,56001,8,0 +2020-05-09,Albany,Wyoming,56001,8,0 +2020-05-10,Albany,Wyoming,56001,8,0 +2020-05-11,Albany,Wyoming,56001,8,0 +2020-05-12,Albany,Wyoming,56001,8,0 +2020-05-13,Albany,Wyoming,56001,8,0 +2020-05-14,Albany,Wyoming,56001,8,0 +2020-05-15,Albany,Wyoming,56001,8,0 +2020-05-16,Albany,Wyoming,56001,9,0 +2020-05-17,Albany,Wyoming,56001,9,0 +2020-05-18,Albany,Wyoming,56001,10,0 +2020-05-19,Albany,Wyoming,56001,10,0 +2020-05-20,Albany,Wyoming,56001,10,0 +2020-05-21,Albany,Wyoming,56001,10,0 +2020-05-22,Albany,Wyoming,56001,10,0 +2020-05-23,Albany,Wyoming,56001,14,0 +2020-05-24,Albany,Wyoming,56001,14,0 +2020-05-25,Albany,Wyoming,56001,20,0 +2020-05-26,Albany,Wyoming,56001,23,0 +2020-05-27,Albany,Wyoming,56001,23,0 +2020-05-28,Albany,Wyoming,56001,24,0 +2020-05-29,Albany,Wyoming,56001,25,0 +2020-05-30,Albany,Wyoming,56001,25,0 +2020-05-31,Albany,Wyoming,56001,25,0 +2020-06-01,Albany,Wyoming,56001,25,0 +2020-06-02,Albany,Wyoming,56001,25,0 +2020-06-03,Albany,Wyoming,56001,25,0 +2020-06-04,Albany,Wyoming,56001,25,0 +2020-06-05,Albany,Wyoming,56001,26,0 +2020-06-06,Albany,Wyoming,56001,26,0 +2020-06-07,Albany,Wyoming,56001,26,0 +2020-06-08,Albany,Wyoming,56001,26,0 +2020-06-09,Albany,Wyoming,56001,26,0 +2020-06-10,Albany,Wyoming,56001,26,0 +2020-06-11,Albany,Wyoming,56001,26,0 +2020-06-12,Albany,Wyoming,56001,25,0 +2020-06-13,Albany,Wyoming,56001,26,0 +2020-06-14,Albany,Wyoming,56001,26,0 +2020-06-15,Albany,Wyoming,56001,27,0 +2020-06-16,Albany,Wyoming,56001,28,0 +2020-06-17,Albany,Wyoming,56001,28,0 +2020-06-18,Albany,Wyoming,56001,28,0 +2020-06-19,Albany,Wyoming,56001,28,0 +2020-06-20,Albany,Wyoming,56001,28,0 +2020-06-21,Albany,Wyoming,56001,28,0 +2020-06-22,Albany,Wyoming,56001,29,0 +2020-06-23,Albany,Wyoming,56001,29,0 +2020-06-24,Albany,Wyoming,56001,31,0 +2020-06-25,Albany,Wyoming,56001,31,0 +2020-06-26,Albany,Wyoming,56001,32,0 +2020-06-27,Albany,Wyoming,56001,32,0 +2020-06-28,Albany,Wyoming,56001,32,0 +2020-06-29,Albany,Wyoming,56001,34,0 +2020-06-30,Albany,Wyoming,56001,34,0 +2020-07-01,Albany,Wyoming,56001,34,0 +2020-07-02,Albany,Wyoming,56001,34,0 +2020-07-03,Albany,Wyoming,56001,35,0 +2020-07-04,Albany,Wyoming,56001,36,0 +2020-07-05,Albany,Wyoming,56001,37,0 +2020-07-06,Albany,Wyoming,56001,38,0 +2020-07-07,Albany,Wyoming,56001,43,0 +2020-07-08,Albany,Wyoming,56001,45,0 +2020-07-09,Albany,Wyoming,56001,45,0 +2020-04-12,Big Horn,Wyoming,56003,1,0 +2020-04-13,Big Horn,Wyoming,56003,2,0 +2020-04-14,Big Horn,Wyoming,56003,2,0 +2020-04-15,Big Horn,Wyoming,56003,2,0 +2020-04-16,Big Horn,Wyoming,56003,2,0 +2020-04-17,Big Horn,Wyoming,56003,2,0 +2020-04-18,Big Horn,Wyoming,56003,2,0 +2020-04-19,Big Horn,Wyoming,56003,2,0 +2020-04-20,Big Horn,Wyoming,56003,3,0 +2020-04-21,Big Horn,Wyoming,56003,3,0 +2020-04-22,Big Horn,Wyoming,56003,2,0 +2020-04-23,Big Horn,Wyoming,56003,2,0 +2020-04-24,Big Horn,Wyoming,56003,2,0 +2020-04-25,Big Horn,Wyoming,56003,2,0 +2020-04-26,Big Horn,Wyoming,56003,2,0 +2020-04-27,Big Horn,Wyoming,56003,2,0 +2020-04-28,Big Horn,Wyoming,56003,2,0 +2020-04-29,Big Horn,Wyoming,56003,3,0 +2020-04-30,Big Horn,Wyoming,56003,3,0 +2020-05-01,Big Horn,Wyoming,56003,3,0 +2020-05-02,Big Horn,Wyoming,56003,3,0 +2020-05-03,Big Horn,Wyoming,56003,3,0 +2020-05-04,Big Horn,Wyoming,56003,3,0 +2020-05-05,Big Horn,Wyoming,56003,3,0 +2020-05-06,Big Horn,Wyoming,56003,3,0 +2020-05-07,Big Horn,Wyoming,56003,3,0 +2020-05-08,Big Horn,Wyoming,56003,3,0 +2020-05-09,Big Horn,Wyoming,56003,3,0 +2020-05-10,Big Horn,Wyoming,56003,3,0 +2020-05-11,Big Horn,Wyoming,56003,3,0 +2020-05-12,Big Horn,Wyoming,56003,3,0 +2020-05-13,Big Horn,Wyoming,56003,3,0 +2020-05-14,Big Horn,Wyoming,56003,3,0 +2020-05-15,Big Horn,Wyoming,56003,3,0 +2020-05-16,Big Horn,Wyoming,56003,3,0 +2020-05-17,Big Horn,Wyoming,56003,3,0 +2020-05-18,Big Horn,Wyoming,56003,3,0 +2020-05-19,Big Horn,Wyoming,56003,3,0 +2020-05-20,Big Horn,Wyoming,56003,3,0 +2020-05-21,Big Horn,Wyoming,56003,3,0 +2020-05-22,Big Horn,Wyoming,56003,3,0 +2020-05-23,Big Horn,Wyoming,56003,3,0 +2020-05-24,Big Horn,Wyoming,56003,3,0 +2020-05-25,Big Horn,Wyoming,56003,5,0 +2020-05-26,Big Horn,Wyoming,56003,5,0 +2020-05-27,Big Horn,Wyoming,56003,5,0 +2020-05-28,Big Horn,Wyoming,56003,5,0 +2020-05-29,Big Horn,Wyoming,56003,5,0 +2020-05-30,Big Horn,Wyoming,56003,5,0 +2020-05-31,Big Horn,Wyoming,56003,6,0 +2020-06-01,Big Horn,Wyoming,56003,6,0 +2020-06-02,Big Horn,Wyoming,56003,6,0 +2020-06-03,Big Horn,Wyoming,56003,6,0 +2020-06-04,Big Horn,Wyoming,56003,6,0 +2020-06-05,Big Horn,Wyoming,56003,6,0 +2020-06-06,Big Horn,Wyoming,56003,6,0 +2020-06-07,Big Horn,Wyoming,56003,8,0 +2020-06-08,Big Horn,Wyoming,56003,8,0 +2020-06-09,Big Horn,Wyoming,56003,9,0 +2020-06-10,Big Horn,Wyoming,56003,9,0 +2020-06-11,Big Horn,Wyoming,56003,10,0 +2020-06-12,Big Horn,Wyoming,56003,10,0 +2020-06-13,Big Horn,Wyoming,56003,11,0 +2020-06-14,Big Horn,Wyoming,56003,11,0 +2020-06-15,Big Horn,Wyoming,56003,11,0 +2020-06-16,Big Horn,Wyoming,56003,11,0 +2020-06-17,Big Horn,Wyoming,56003,11,0 +2020-06-18,Big Horn,Wyoming,56003,11,0 +2020-06-19,Big Horn,Wyoming,56003,11,0 +2020-06-20,Big Horn,Wyoming,56003,11,0 +2020-06-21,Big Horn,Wyoming,56003,11,0 +2020-06-22,Big Horn,Wyoming,56003,11,0 +2020-06-23,Big Horn,Wyoming,56003,11,0 +2020-06-24,Big Horn,Wyoming,56003,11,0 +2020-06-25,Big Horn,Wyoming,56003,11,0 +2020-06-26,Big Horn,Wyoming,56003,12,0 +2020-06-27,Big Horn,Wyoming,56003,12,0 +2020-06-28,Big Horn,Wyoming,56003,12,0 +2020-06-29,Big Horn,Wyoming,56003,14,0 +2020-06-30,Big Horn,Wyoming,56003,20,0 +2020-07-01,Big Horn,Wyoming,56003,20,0 +2020-07-02,Big Horn,Wyoming,56003,20,0 +2020-07-03,Big Horn,Wyoming,56003,21,0 +2020-07-04,Big Horn,Wyoming,56003,23,0 +2020-07-05,Big Horn,Wyoming,56003,23,0 +2020-07-06,Big Horn,Wyoming,56003,23,0 +2020-07-07,Big Horn,Wyoming,56003,24,0 +2020-07-08,Big Horn,Wyoming,56003,25,0 +2020-07-09,Big Horn,Wyoming,56003,26,0 +2020-03-20,Campbell,Wyoming,56005,1,0 +2020-03-21,Campbell,Wyoming,56005,1,0 +2020-03-22,Campbell,Wyoming,56005,1,0 +2020-03-23,Campbell,Wyoming,56005,1,0 +2020-03-24,Campbell,Wyoming,56005,1,0 +2020-03-25,Campbell,Wyoming,56005,1,0 +2020-03-26,Campbell,Wyoming,56005,1,0 +2020-03-27,Campbell,Wyoming,56005,1,0 +2020-03-28,Campbell,Wyoming,56005,1,0 +2020-03-29,Campbell,Wyoming,56005,1,0 +2020-03-30,Campbell,Wyoming,56005,1,0 +2020-03-31,Campbell,Wyoming,56005,3,0 +2020-04-01,Campbell,Wyoming,56005,5,0 +2020-04-02,Campbell,Wyoming,56005,6,0 +2020-04-03,Campbell,Wyoming,56005,6,0 +2020-04-04,Campbell,Wyoming,56005,7,0 +2020-04-05,Campbell,Wyoming,56005,6,0 +2020-04-06,Campbell,Wyoming,56005,9,0 +2020-04-07,Campbell,Wyoming,56005,9,0 +2020-04-08,Campbell,Wyoming,56005,6,0 +2020-04-09,Campbell,Wyoming,56005,14,0 +2020-04-10,Campbell,Wyoming,56005,12,0 +2020-04-11,Campbell,Wyoming,56005,15,0 +2020-04-12,Campbell,Wyoming,56005,15,0 +2020-04-13,Campbell,Wyoming,56005,15,0 +2020-04-14,Campbell,Wyoming,56005,15,0 +2020-04-15,Campbell,Wyoming,56005,17,0 +2020-04-16,Campbell,Wyoming,56005,17,0 +2020-04-17,Campbell,Wyoming,56005,17,0 +2020-04-18,Campbell,Wyoming,56005,17,0 +2020-04-19,Campbell,Wyoming,56005,17,0 +2020-04-20,Campbell,Wyoming,56005,17,0 +2020-04-21,Campbell,Wyoming,56005,18,0 +2020-04-22,Campbell,Wyoming,56005,18,0 +2020-04-23,Campbell,Wyoming,56005,18,0 +2020-04-24,Campbell,Wyoming,56005,20,0 +2020-04-25,Campbell,Wyoming,56005,20,0 +2020-04-26,Campbell,Wyoming,56005,23,0 +2020-04-27,Campbell,Wyoming,56005,23,0 +2020-04-28,Campbell,Wyoming,56005,23,0 +2020-04-29,Campbell,Wyoming,56005,23,0 +2020-04-30,Campbell,Wyoming,56005,24,0 +2020-05-01,Campbell,Wyoming,56005,24,0 +2020-05-02,Campbell,Wyoming,56005,24,0 +2020-05-03,Campbell,Wyoming,56005,24,0 +2020-05-04,Campbell,Wyoming,56005,24,0 +2020-05-05,Campbell,Wyoming,56005,24,0 +2020-05-06,Campbell,Wyoming,56005,25,0 +2020-05-07,Campbell,Wyoming,56005,25,0 +2020-05-08,Campbell,Wyoming,56005,25,0 +2020-05-09,Campbell,Wyoming,56005,29,0 +2020-05-10,Campbell,Wyoming,56005,29,0 +2020-05-11,Campbell,Wyoming,56005,29,0 +2020-05-12,Campbell,Wyoming,56005,30,0 +2020-05-13,Campbell,Wyoming,56005,29,0 +2020-05-14,Campbell,Wyoming,56005,29,0 +2020-05-15,Campbell,Wyoming,56005,29,0 +2020-05-16,Campbell,Wyoming,56005,29,0 +2020-05-17,Campbell,Wyoming,56005,29,0 +2020-05-18,Campbell,Wyoming,56005,29,0 +2020-05-19,Campbell,Wyoming,56005,29,0 +2020-05-20,Campbell,Wyoming,56005,30,0 +2020-05-21,Campbell,Wyoming,56005,30,0 +2020-05-22,Campbell,Wyoming,56005,30,0 +2020-05-23,Campbell,Wyoming,56005,30,0 +2020-05-24,Campbell,Wyoming,56005,30,0 +2020-05-25,Campbell,Wyoming,56005,30,0 +2020-05-26,Campbell,Wyoming,56005,30,0 +2020-05-27,Campbell,Wyoming,56005,30,0 +2020-05-28,Campbell,Wyoming,56005,30,0 +2020-05-29,Campbell,Wyoming,56005,31,0 +2020-05-30,Campbell,Wyoming,56005,31,0 +2020-05-31,Campbell,Wyoming,56005,31,0 +2020-06-01,Campbell,Wyoming,56005,31,0 +2020-06-02,Campbell,Wyoming,56005,31,0 +2020-06-03,Campbell,Wyoming,56005,31,0 +2020-06-04,Campbell,Wyoming,56005,32,0 +2020-06-05,Campbell,Wyoming,56005,32,0 +2020-06-06,Campbell,Wyoming,56005,32,0 +2020-06-07,Campbell,Wyoming,56005,32,0 +2020-06-08,Campbell,Wyoming,56005,35,0 +2020-06-09,Campbell,Wyoming,56005,35,0 +2020-06-10,Campbell,Wyoming,56005,37,0 +2020-06-11,Campbell,Wyoming,56005,39,0 +2020-06-12,Campbell,Wyoming,56005,40,0 +2020-06-13,Campbell,Wyoming,56005,41,0 +2020-06-14,Campbell,Wyoming,56005,44,0 +2020-06-15,Campbell,Wyoming,56005,45,0 +2020-06-16,Campbell,Wyoming,56005,46,0 +2020-06-17,Campbell,Wyoming,56005,46,0 +2020-06-18,Campbell,Wyoming,56005,46,0 +2020-06-19,Campbell,Wyoming,56005,46,0 +2020-06-20,Campbell,Wyoming,56005,46,0 +2020-06-21,Campbell,Wyoming,56005,47,0 +2020-06-22,Campbell,Wyoming,56005,47,0 +2020-06-23,Campbell,Wyoming,56005,50,0 +2020-06-24,Campbell,Wyoming,56005,54,0 +2020-06-25,Campbell,Wyoming,56005,55,0 +2020-06-26,Campbell,Wyoming,56005,55,0 +2020-06-27,Campbell,Wyoming,56005,55,0 +2020-06-28,Campbell,Wyoming,56005,55,0 +2020-06-29,Campbell,Wyoming,56005,55,0 +2020-06-30,Campbell,Wyoming,56005,56,0 +2020-07-01,Campbell,Wyoming,56005,56,0 +2020-07-02,Campbell,Wyoming,56005,57,0 +2020-07-03,Campbell,Wyoming,56005,58,0 +2020-07-04,Campbell,Wyoming,56005,63,0 +2020-07-05,Campbell,Wyoming,56005,70,0 +2020-07-06,Campbell,Wyoming,56005,74,0 +2020-07-07,Campbell,Wyoming,56005,75,0 +2020-07-08,Campbell,Wyoming,56005,75,0 +2020-07-09,Campbell,Wyoming,56005,80,0 +2020-03-21,Carbon,Wyoming,56007,1,0 +2020-03-22,Carbon,Wyoming,56007,1,0 +2020-03-23,Carbon,Wyoming,56007,2,0 +2020-03-24,Carbon,Wyoming,56007,3,0 +2020-03-25,Carbon,Wyoming,56007,3,0 +2020-03-26,Carbon,Wyoming,56007,3,0 +2020-03-27,Carbon,Wyoming,56007,3,0 +2020-03-28,Carbon,Wyoming,56007,3,0 +2020-03-29,Carbon,Wyoming,56007,3,0 +2020-03-30,Carbon,Wyoming,56007,3,0 +2020-03-31,Carbon,Wyoming,56007,3,0 +2020-04-01,Carbon,Wyoming,56007,3,0 +2020-04-02,Carbon,Wyoming,56007,3,0 +2020-04-03,Carbon,Wyoming,56007,4,0 +2020-04-04,Carbon,Wyoming,56007,4,0 +2020-04-05,Carbon,Wyoming,56007,4,0 +2020-04-06,Carbon,Wyoming,56007,4,0 +2020-04-07,Carbon,Wyoming,56007,4,0 +2020-04-08,Carbon,Wyoming,56007,4,0 +2020-04-09,Carbon,Wyoming,56007,4,0 +2020-04-10,Carbon,Wyoming,56007,4,0 +2020-04-11,Carbon,Wyoming,56007,4,0 +2020-04-12,Carbon,Wyoming,56007,4,0 +2020-04-13,Carbon,Wyoming,56007,4,0 +2020-04-14,Carbon,Wyoming,56007,4,0 +2020-04-15,Carbon,Wyoming,56007,4,0 +2020-04-16,Carbon,Wyoming,56007,4,0 +2020-04-17,Carbon,Wyoming,56007,4,0 +2020-04-18,Carbon,Wyoming,56007,4,0 +2020-04-19,Carbon,Wyoming,56007,4,0 +2020-04-20,Carbon,Wyoming,56007,4,0 +2020-04-21,Carbon,Wyoming,56007,4,0 +2020-04-22,Carbon,Wyoming,56007,4,0 +2020-04-23,Carbon,Wyoming,56007,4,0 +2020-04-24,Carbon,Wyoming,56007,4,0 +2020-04-25,Carbon,Wyoming,56007,4,0 +2020-04-26,Carbon,Wyoming,56007,6,0 +2020-04-27,Carbon,Wyoming,56007,4,0 +2020-04-28,Carbon,Wyoming,56007,4,0 +2020-04-29,Carbon,Wyoming,56007,4,0 +2020-04-30,Carbon,Wyoming,56007,4,0 +2020-05-01,Carbon,Wyoming,56007,5,0 +2020-05-02,Carbon,Wyoming,56007,5,0 +2020-05-03,Carbon,Wyoming,56007,5,0 +2020-05-04,Carbon,Wyoming,56007,5,0 +2020-05-05,Carbon,Wyoming,56007,5,0 +2020-05-06,Carbon,Wyoming,56007,5,0 +2020-05-07,Carbon,Wyoming,56007,5,0 +2020-05-08,Carbon,Wyoming,56007,5,0 +2020-05-09,Carbon,Wyoming,56007,5,0 +2020-05-10,Carbon,Wyoming,56007,5,0 +2020-05-11,Carbon,Wyoming,56007,5,0 +2020-05-12,Carbon,Wyoming,56007,5,0 +2020-05-13,Carbon,Wyoming,56007,5,0 +2020-05-14,Carbon,Wyoming,56007,7,0 +2020-05-15,Carbon,Wyoming,56007,8,0 +2020-05-16,Carbon,Wyoming,56007,14,0 +2020-05-17,Carbon,Wyoming,56007,14,0 +2020-05-18,Carbon,Wyoming,56007,14,1 +2020-05-19,Carbon,Wyoming,56007,15,1 +2020-05-20,Carbon,Wyoming,56007,16,1 +2020-05-21,Carbon,Wyoming,56007,16,1 +2020-05-22,Carbon,Wyoming,56007,16,1 +2020-05-23,Carbon,Wyoming,56007,16,1 +2020-05-24,Carbon,Wyoming,56007,16,1 +2020-05-25,Carbon,Wyoming,56007,16,1 +2020-05-26,Carbon,Wyoming,56007,16,1 +2020-05-27,Carbon,Wyoming,56007,16,1 +2020-05-28,Carbon,Wyoming,56007,16,1 +2020-05-29,Carbon,Wyoming,56007,16,1 +2020-05-30,Carbon,Wyoming,56007,16,1 +2020-05-31,Carbon,Wyoming,56007,16,1 +2020-06-01,Carbon,Wyoming,56007,16,1 +2020-06-02,Carbon,Wyoming,56007,16,1 +2020-06-03,Carbon,Wyoming,56007,16,1 +2020-06-04,Carbon,Wyoming,56007,16,1 +2020-06-05,Carbon,Wyoming,56007,16,1 +2020-06-06,Carbon,Wyoming,56007,16,1 +2020-06-07,Carbon,Wyoming,56007,16,1 +2020-06-08,Carbon,Wyoming,56007,16,1 +2020-06-09,Carbon,Wyoming,56007,16,1 +2020-06-10,Carbon,Wyoming,56007,16,1 +2020-06-11,Carbon,Wyoming,56007,20,1 +2020-06-12,Carbon,Wyoming,56007,20,1 +2020-06-13,Carbon,Wyoming,56007,22,1 +2020-06-14,Carbon,Wyoming,56007,24,1 +2020-06-15,Carbon,Wyoming,56007,22,1 +2020-06-16,Carbon,Wyoming,56007,22,1 +2020-06-17,Carbon,Wyoming,56007,21,1 +2020-06-18,Carbon,Wyoming,56007,22,1 +2020-06-19,Carbon,Wyoming,56007,22,1 +2020-06-20,Carbon,Wyoming,56007,22,1 +2020-06-21,Carbon,Wyoming,56007,22,1 +2020-06-22,Carbon,Wyoming,56007,22,1 +2020-06-23,Carbon,Wyoming,56007,22,1 +2020-06-24,Carbon,Wyoming,56007,22,1 +2020-06-25,Carbon,Wyoming,56007,22,1 +2020-06-26,Carbon,Wyoming,56007,22,1 +2020-06-27,Carbon,Wyoming,56007,22,1 +2020-06-28,Carbon,Wyoming,56007,22,1 +2020-06-29,Carbon,Wyoming,56007,22,1 +2020-06-30,Carbon,Wyoming,56007,23,1 +2020-07-01,Carbon,Wyoming,56007,23,1 +2020-07-02,Carbon,Wyoming,56007,23,1 +2020-07-03,Carbon,Wyoming,56007,24,1 +2020-07-04,Carbon,Wyoming,56007,26,1 +2020-07-05,Carbon,Wyoming,56007,26,1 +2020-07-06,Carbon,Wyoming,56007,26,1 +2020-07-07,Carbon,Wyoming,56007,29,1 +2020-07-08,Carbon,Wyoming,56007,29,1 +2020-07-09,Carbon,Wyoming,56007,29,1 +2020-03-28,Converse,Wyoming,56009,1,0 +2020-03-29,Converse,Wyoming,56009,1,0 +2020-03-30,Converse,Wyoming,56009,1,0 +2020-03-31,Converse,Wyoming,56009,1,0 +2020-04-01,Converse,Wyoming,56009,2,0 +2020-04-02,Converse,Wyoming,56009,3,0 +2020-04-03,Converse,Wyoming,56009,3,0 +2020-04-04,Converse,Wyoming,56009,3,0 +2020-04-05,Converse,Wyoming,56009,3,0 +2020-04-06,Converse,Wyoming,56009,4,0 +2020-04-07,Converse,Wyoming,56009,4,0 +2020-04-08,Converse,Wyoming,56009,3,0 +2020-04-09,Converse,Wyoming,56009,9,0 +2020-04-10,Converse,Wyoming,56009,12,0 +2020-04-11,Converse,Wyoming,56009,12,0 +2020-04-12,Converse,Wyoming,56009,14,0 +2020-04-13,Converse,Wyoming,56009,13,0 +2020-04-14,Converse,Wyoming,56009,13,0 +2020-04-15,Converse,Wyoming,56009,14,0 +2020-04-16,Converse,Wyoming,56009,14,0 +2020-04-17,Converse,Wyoming,56009,14,0 +2020-04-18,Converse,Wyoming,56009,14,0 +2020-04-19,Converse,Wyoming,56009,14,0 +2020-04-20,Converse,Wyoming,56009,15,0 +2020-04-21,Converse,Wyoming,56009,15,0 +2020-04-22,Converse,Wyoming,56009,16,0 +2020-04-23,Converse,Wyoming,56009,16,0 +2020-04-24,Converse,Wyoming,56009,16,0 +2020-04-25,Converse,Wyoming,56009,16,0 +2020-04-26,Converse,Wyoming,56009,16,0 +2020-04-27,Converse,Wyoming,56009,17,0 +2020-04-28,Converse,Wyoming,56009,21,0 +2020-04-29,Converse,Wyoming,56009,22,0 +2020-04-30,Converse,Wyoming,56009,22,0 +2020-05-01,Converse,Wyoming,56009,22,0 +2020-05-02,Converse,Wyoming,56009,23,0 +2020-05-03,Converse,Wyoming,56009,23,0 +2020-05-04,Converse,Wyoming,56009,23,0 +2020-05-05,Converse,Wyoming,56009,23,0 +2020-05-06,Converse,Wyoming,56009,23,0 +2020-05-07,Converse,Wyoming,56009,23,0 +2020-05-08,Converse,Wyoming,56009,23,0 +2020-05-09,Converse,Wyoming,56009,23,0 +2020-05-10,Converse,Wyoming,56009,23,0 +2020-05-11,Converse,Wyoming,56009,23,0 +2020-05-12,Converse,Wyoming,56009,23,0 +2020-05-13,Converse,Wyoming,56009,23,0 +2020-05-14,Converse,Wyoming,56009,23,0 +2020-05-15,Converse,Wyoming,56009,23,0 +2020-05-16,Converse,Wyoming,56009,23,0 +2020-05-17,Converse,Wyoming,56009,23,0 +2020-05-18,Converse,Wyoming,56009,23,0 +2020-05-19,Converse,Wyoming,56009,24,0 +2020-05-20,Converse,Wyoming,56009,24,0 +2020-05-21,Converse,Wyoming,56009,24,0 +2020-05-22,Converse,Wyoming,56009,24,0 +2020-05-23,Converse,Wyoming,56009,24,0 +2020-05-24,Converse,Wyoming,56009,24,0 +2020-05-25,Converse,Wyoming,56009,24,0 +2020-05-26,Converse,Wyoming,56009,24,0 +2020-05-27,Converse,Wyoming,56009,24,0 +2020-05-28,Converse,Wyoming,56009,24,0 +2020-05-29,Converse,Wyoming,56009,24,0 +2020-05-30,Converse,Wyoming,56009,24,0 +2020-05-31,Converse,Wyoming,56009,24,0 +2020-06-01,Converse,Wyoming,56009,24,0 +2020-06-02,Converse,Wyoming,56009,24,0 +2020-06-03,Converse,Wyoming,56009,24,0 +2020-06-04,Converse,Wyoming,56009,24,0 +2020-06-05,Converse,Wyoming,56009,24,0 +2020-06-06,Converse,Wyoming,56009,24,0 +2020-06-07,Converse,Wyoming,56009,24,0 +2020-06-08,Converse,Wyoming,56009,24,0 +2020-06-09,Converse,Wyoming,56009,24,0 +2020-06-10,Converse,Wyoming,56009,24,0 +2020-06-11,Converse,Wyoming,56009,24,0 +2020-06-12,Converse,Wyoming,56009,24,0 +2020-06-13,Converse,Wyoming,56009,24,0 +2020-06-14,Converse,Wyoming,56009,24,0 +2020-06-15,Converse,Wyoming,56009,24,0 +2020-06-16,Converse,Wyoming,56009,24,0 +2020-06-17,Converse,Wyoming,56009,24,0 +2020-06-18,Converse,Wyoming,56009,24,0 +2020-06-19,Converse,Wyoming,56009,24,0 +2020-06-20,Converse,Wyoming,56009,24,0 +2020-06-21,Converse,Wyoming,56009,24,0 +2020-06-22,Converse,Wyoming,56009,25,0 +2020-06-23,Converse,Wyoming,56009,25,0 +2020-06-24,Converse,Wyoming,56009,25,0 +2020-06-25,Converse,Wyoming,56009,25,0 +2020-06-26,Converse,Wyoming,56009,25,0 +2020-06-27,Converse,Wyoming,56009,26,0 +2020-06-28,Converse,Wyoming,56009,26,0 +2020-06-29,Converse,Wyoming,56009,26,0 +2020-06-30,Converse,Wyoming,56009,26,0 +2020-07-01,Converse,Wyoming,56009,26,0 +2020-07-02,Converse,Wyoming,56009,26,0 +2020-07-03,Converse,Wyoming,56009,26,0 +2020-07-04,Converse,Wyoming,56009,26,0 +2020-07-05,Converse,Wyoming,56009,26,0 +2020-07-06,Converse,Wyoming,56009,27,0 +2020-07-07,Converse,Wyoming,56009,27,0 +2020-07-08,Converse,Wyoming,56009,27,0 +2020-07-09,Converse,Wyoming,56009,27,0 +2020-04-04,Crook,Wyoming,56011,1,0 +2020-04-05,Crook,Wyoming,56011,1,0 +2020-04-06,Crook,Wyoming,56011,1,0 +2020-04-07,Crook,Wyoming,56011,1,0 +2020-04-08,Crook,Wyoming,56011,1,0 +2020-04-09,Crook,Wyoming,56011,5,0 +2020-04-10,Crook,Wyoming,56011,3,0 +2020-04-11,Crook,Wyoming,56011,3,0 +2020-04-12,Crook,Wyoming,56011,3,0 +2020-04-13,Crook,Wyoming,56011,3,0 +2020-04-14,Crook,Wyoming,56011,3,0 +2020-04-15,Crook,Wyoming,56011,4,0 +2020-04-16,Crook,Wyoming,56011,4,0 +2020-04-17,Crook,Wyoming,56011,4,0 +2020-04-18,Crook,Wyoming,56011,4,0 +2020-04-19,Crook,Wyoming,56011,4,0 +2020-04-20,Crook,Wyoming,56011,4,0 +2020-04-21,Crook,Wyoming,56011,5,0 +2020-04-22,Crook,Wyoming,56011,5,0 +2020-04-23,Crook,Wyoming,56011,5,0 +2020-04-24,Crook,Wyoming,56011,5,0 +2020-04-25,Crook,Wyoming,56011,5,0 +2020-04-26,Crook,Wyoming,56011,5,0 +2020-04-27,Crook,Wyoming,56011,5,0 +2020-04-28,Crook,Wyoming,56011,5,0 +2020-04-29,Crook,Wyoming,56011,5,0 +2020-04-30,Crook,Wyoming,56011,5,0 +2020-05-01,Crook,Wyoming,56011,5,0 +2020-05-02,Crook,Wyoming,56011,5,0 +2020-05-03,Crook,Wyoming,56011,5,0 +2020-05-04,Crook,Wyoming,56011,5,0 +2020-05-05,Crook,Wyoming,56011,5,0 +2020-05-06,Crook,Wyoming,56011,5,0 +2020-05-07,Crook,Wyoming,56011,5,0 +2020-05-08,Crook,Wyoming,56011,5,0 +2020-05-09,Crook,Wyoming,56011,5,0 +2020-05-10,Crook,Wyoming,56011,5,0 +2020-05-11,Crook,Wyoming,56011,5,0 +2020-05-12,Crook,Wyoming,56011,5,0 +2020-05-13,Crook,Wyoming,56011,5,0 +2020-05-14,Crook,Wyoming,56011,5,0 +2020-05-15,Crook,Wyoming,56011,5,0 +2020-05-16,Crook,Wyoming,56011,5,0 +2020-05-17,Crook,Wyoming,56011,5,0 +2020-05-18,Crook,Wyoming,56011,5,0 +2020-05-19,Crook,Wyoming,56011,5,0 +2020-05-20,Crook,Wyoming,56011,5,0 +2020-05-21,Crook,Wyoming,56011,5,0 +2020-05-22,Crook,Wyoming,56011,5,0 +2020-05-23,Crook,Wyoming,56011,5,0 +2020-05-24,Crook,Wyoming,56011,5,0 +2020-05-25,Crook,Wyoming,56011,5,0 +2020-05-26,Crook,Wyoming,56011,5,0 +2020-05-27,Crook,Wyoming,56011,5,0 +2020-05-28,Crook,Wyoming,56011,5,0 +2020-05-29,Crook,Wyoming,56011,5,0 +2020-05-30,Crook,Wyoming,56011,5,0 +2020-05-31,Crook,Wyoming,56011,5,0 +2020-06-01,Crook,Wyoming,56011,5,0 +2020-06-02,Crook,Wyoming,56011,5,0 +2020-06-03,Crook,Wyoming,56011,5,0 +2020-06-04,Crook,Wyoming,56011,5,0 +2020-06-05,Crook,Wyoming,56011,5,0 +2020-06-06,Crook,Wyoming,56011,5,0 +2020-06-07,Crook,Wyoming,56011,5,0 +2020-06-08,Crook,Wyoming,56011,5,0 +2020-06-09,Crook,Wyoming,56011,5,0 +2020-06-10,Crook,Wyoming,56011,5,0 +2020-06-11,Crook,Wyoming,56011,5,0 +2020-06-12,Crook,Wyoming,56011,5,0 +2020-06-13,Crook,Wyoming,56011,5,0 +2020-06-14,Crook,Wyoming,56011,6,0 +2020-06-15,Crook,Wyoming,56011,6,0 +2020-06-16,Crook,Wyoming,56011,6,0 +2020-06-17,Crook,Wyoming,56011,6,0 +2020-06-18,Crook,Wyoming,56011,6,0 +2020-06-19,Crook,Wyoming,56011,6,0 +2020-06-20,Crook,Wyoming,56011,6,0 +2020-06-21,Crook,Wyoming,56011,6,0 +2020-06-22,Crook,Wyoming,56011,6,0 +2020-06-23,Crook,Wyoming,56011,7,0 +2020-06-24,Crook,Wyoming,56011,7,0 +2020-06-25,Crook,Wyoming,56011,7,0 +2020-06-26,Crook,Wyoming,56011,7,0 +2020-06-27,Crook,Wyoming,56011,7,0 +2020-06-28,Crook,Wyoming,56011,7,0 +2020-06-29,Crook,Wyoming,56011,7,0 +2020-06-30,Crook,Wyoming,56011,7,0 +2020-07-01,Crook,Wyoming,56011,7,0 +2020-07-02,Crook,Wyoming,56011,7,0 +2020-07-03,Crook,Wyoming,56011,7,0 +2020-07-04,Crook,Wyoming,56011,7,0 +2020-07-05,Crook,Wyoming,56011,7,0 +2020-07-06,Crook,Wyoming,56011,7,0 +2020-07-07,Crook,Wyoming,56011,7,0 +2020-07-08,Crook,Wyoming,56011,7,0 +2020-07-09,Crook,Wyoming,56011,7,0 +2020-03-13,Fremont,Wyoming,56013,1,0 +2020-03-14,Fremont,Wyoming,56013,1,0 +2020-03-15,Fremont,Wyoming,56013,1,0 +2020-03-16,Fremont,Wyoming,56013,8,0 +2020-03-17,Fremont,Wyoming,56013,8,0 +2020-03-18,Fremont,Wyoming,56013,8,0 +2020-03-19,Fremont,Wyoming,56013,8,0 +2020-03-20,Fremont,Wyoming,56013,9,0 +2020-03-21,Fremont,Wyoming,56013,9,0 +2020-03-22,Fremont,Wyoming,56013,10,0 +2020-03-23,Fremont,Wyoming,56013,10,0 +2020-03-24,Fremont,Wyoming,56013,12,0 +2020-03-25,Fremont,Wyoming,56013,14,0 +2020-03-26,Fremont,Wyoming,56013,14,0 +2020-03-27,Fremont,Wyoming,56013,17,0 +2020-03-28,Fremont,Wyoming,56013,21,0 +2020-03-29,Fremont,Wyoming,56013,23,0 +2020-03-30,Fremont,Wyoming,56013,24,0 +2020-03-31,Fremont,Wyoming,56013,25,0 +2020-04-01,Fremont,Wyoming,56013,25,0 +2020-04-02,Fremont,Wyoming,56013,26,0 +2020-04-03,Fremont,Wyoming,56013,27,0 +2020-04-04,Fremont,Wyoming,56013,36,0 +2020-04-05,Fremont,Wyoming,56013,37,0 +2020-04-06,Fremont,Wyoming,56013,38,0 +2020-04-07,Fremont,Wyoming,56013,38,0 +2020-04-08,Fremont,Wyoming,56013,37,0 +2020-04-09,Fremont,Wyoming,56013,45,0 +2020-04-10,Fremont,Wyoming,56013,45,0 +2020-04-11,Fremont,Wyoming,56013,46,0 +2020-04-12,Fremont,Wyoming,56013,47,0 +2020-04-13,Fremont,Wyoming,56013,48,0 +2020-04-14,Fremont,Wyoming,56013,48,0 +2020-04-15,Fremont,Wyoming,56013,50,0 +2020-04-16,Fremont,Wyoming,56013,50,0 +2020-04-17,Fremont,Wyoming,56013,50,0 +2020-04-18,Fremont,Wyoming,56013,52,0 +2020-04-19,Fremont,Wyoming,56013,54,0 +2020-04-20,Fremont,Wyoming,56013,56,0 +2020-04-21,Fremont,Wyoming,56013,57,4 +2020-04-22,Fremont,Wyoming,56013,57,4 +2020-04-23,Fremont,Wyoming,56013,59,4 +2020-04-24,Fremont,Wyoming,56013,72,4 +2020-04-25,Fremont,Wyoming,56013,76,4 +2020-04-26,Fremont,Wyoming,56013,91,4 +2020-04-27,Fremont,Wyoming,56013,106,4 +2020-04-28,Fremont,Wyoming,56013,109,4 +2020-04-29,Fremont,Wyoming,56013,110,4 +2020-04-30,Fremont,Wyoming,56013,116,4 +2020-05-01,Fremont,Wyoming,56013,120,4 +2020-05-02,Fremont,Wyoming,56013,128,4 +2020-05-03,Fremont,Wyoming,56013,131,4 +2020-05-04,Fremont,Wyoming,56013,137,4 +2020-05-05,Fremont,Wyoming,56013,140,4 +2020-05-06,Fremont,Wyoming,56013,164,4 +2020-05-07,Fremont,Wyoming,56013,168,4 +2020-05-08,Fremont,Wyoming,56013,175,4 +2020-05-09,Fremont,Wyoming,56013,180,4 +2020-05-10,Fremont,Wyoming,56013,187,4 +2020-05-11,Fremont,Wyoming,56013,191,4 +2020-05-12,Fremont,Wyoming,56013,193,4 +2020-05-13,Fremont,Wyoming,56013,202,4 +2020-05-14,Fremont,Wyoming,56013,208,4 +2020-05-15,Fremont,Wyoming,56013,214,4 +2020-05-16,Fremont,Wyoming,56013,220,4 +2020-05-17,Fremont,Wyoming,56013,223,5 +2020-05-18,Fremont,Wyoming,56013,224,5 +2020-05-19,Fremont,Wyoming,56013,228,5 +2020-05-20,Fremont,Wyoming,56013,233,6 +2020-05-21,Fremont,Wyoming,56013,237,6 +2020-05-22,Fremont,Wyoming,56013,238,6 +2020-05-23,Fremont,Wyoming,56013,244,6 +2020-05-24,Fremont,Wyoming,56013,244,6 +2020-05-25,Fremont,Wyoming,56013,249,6 +2020-05-26,Fremont,Wyoming,56013,250,6 +2020-05-27,Fremont,Wyoming,56013,255,6 +2020-05-28,Fremont,Wyoming,56013,261,6 +2020-05-29,Fremont,Wyoming,56013,273,6 +2020-05-30,Fremont,Wyoming,56013,277,7 +2020-05-31,Fremont,Wyoming,56013,278,7 +2020-06-01,Fremont,Wyoming,56013,282,8 +2020-06-02,Fremont,Wyoming,56013,283,8 +2020-06-03,Fremont,Wyoming,56013,285,8 +2020-06-04,Fremont,Wyoming,56013,287,8 +2020-06-05,Fremont,Wyoming,56013,289,8 +2020-06-06,Fremont,Wyoming,56013,295,8 +2020-06-07,Fremont,Wyoming,56013,295,8 +2020-06-08,Fremont,Wyoming,56013,297,8 +2020-06-09,Fremont,Wyoming,56013,295,8 +2020-06-10,Fremont,Wyoming,56013,296,9 +2020-06-11,Fremont,Wyoming,56013,302,9 +2020-06-12,Fremont,Wyoming,56013,303,9 +2020-06-13,Fremont,Wyoming,56013,304,9 +2020-06-14,Fremont,Wyoming,56013,305,9 +2020-06-15,Fremont,Wyoming,56013,308,9 +2020-06-16,Fremont,Wyoming,56013,310,9 +2020-06-17,Fremont,Wyoming,56013,315,9 +2020-06-18,Fremont,Wyoming,56013,319,9 +2020-06-19,Fremont,Wyoming,56013,326,9 +2020-06-20,Fremont,Wyoming,56013,327,9 +2020-06-21,Fremont,Wyoming,56013,329,9 +2020-06-22,Fremont,Wyoming,56013,335,9 +2020-06-23,Fremont,Wyoming,56013,339,9 +2020-06-24,Fremont,Wyoming,56013,340,9 +2020-06-25,Fremont,Wyoming,56013,345,9 +2020-06-26,Fremont,Wyoming,56013,349,9 +2020-06-27,Fremont,Wyoming,56013,352,9 +2020-06-28,Fremont,Wyoming,56013,355,9 +2020-06-29,Fremont,Wyoming,56013,356,9 +2020-06-30,Fremont,Wyoming,56013,355,9 +2020-07-01,Fremont,Wyoming,56013,358,9 +2020-07-02,Fremont,Wyoming,56013,361,9 +2020-07-03,Fremont,Wyoming,56013,362,9 +2020-07-04,Fremont,Wyoming,56013,366,9 +2020-07-05,Fremont,Wyoming,56013,370,9 +2020-07-06,Fremont,Wyoming,56013,370,9 +2020-07-07,Fremont,Wyoming,56013,370,9 +2020-07-08,Fremont,Wyoming,56013,373,9 +2020-07-09,Fremont,Wyoming,56013,379,9 +2020-03-27,Goshen,Wyoming,56015,1,0 +2020-03-28,Goshen,Wyoming,56015,1,0 +2020-03-29,Goshen,Wyoming,56015,1,0 +2020-03-30,Goshen,Wyoming,56015,1,0 +2020-03-31,Goshen,Wyoming,56015,1,0 +2020-04-01,Goshen,Wyoming,56015,1,0 +2020-04-02,Goshen,Wyoming,56015,1,0 +2020-04-03,Goshen,Wyoming,56015,2,0 +2020-04-04,Goshen,Wyoming,56015,2,0 +2020-04-05,Goshen,Wyoming,56015,2,0 +2020-04-06,Goshen,Wyoming,56015,3,0 +2020-04-07,Goshen,Wyoming,56015,3,0 +2020-04-08,Goshen,Wyoming,56015,2,0 +2020-04-09,Goshen,Wyoming,56015,4,0 +2020-04-10,Goshen,Wyoming,56015,4,0 +2020-04-11,Goshen,Wyoming,56015,4,0 +2020-04-12,Goshen,Wyoming,56015,4,0 +2020-04-13,Goshen,Wyoming,56015,4,0 +2020-04-14,Goshen,Wyoming,56015,4,0 +2020-04-15,Goshen,Wyoming,56015,4,0 +2020-04-16,Goshen,Wyoming,56015,4,0 +2020-04-17,Goshen,Wyoming,56015,4,0 +2020-04-18,Goshen,Wyoming,56015,4,0 +2020-04-19,Goshen,Wyoming,56015,4,0 +2020-04-20,Goshen,Wyoming,56015,4,0 +2020-04-21,Goshen,Wyoming,56015,4,0 +2020-04-22,Goshen,Wyoming,56015,4,0 +2020-04-23,Goshen,Wyoming,56015,4,0 +2020-04-24,Goshen,Wyoming,56015,4,0 +2020-04-25,Goshen,Wyoming,56015,4,0 +2020-04-26,Goshen,Wyoming,56015,4,0 +2020-04-27,Goshen,Wyoming,56015,4,0 +2020-04-28,Goshen,Wyoming,56015,4,0 +2020-04-29,Goshen,Wyoming,56015,4,0 +2020-04-30,Goshen,Wyoming,56015,4,0 +2020-05-01,Goshen,Wyoming,56015,4,0 +2020-05-02,Goshen,Wyoming,56015,4,0 +2020-05-03,Goshen,Wyoming,56015,4,0 +2020-05-04,Goshen,Wyoming,56015,4,0 +2020-05-05,Goshen,Wyoming,56015,4,0 +2020-05-06,Goshen,Wyoming,56015,4,0 +2020-05-07,Goshen,Wyoming,56015,4,0 +2020-05-08,Goshen,Wyoming,56015,5,0 +2020-05-09,Goshen,Wyoming,56015,5,0 +2020-05-10,Goshen,Wyoming,56015,5,0 +2020-05-11,Goshen,Wyoming,56015,5,0 +2020-05-12,Goshen,Wyoming,56015,5,0 +2020-05-13,Goshen,Wyoming,56015,5,0 +2020-05-14,Goshen,Wyoming,56015,5,0 +2020-05-15,Goshen,Wyoming,56015,5,0 +2020-05-16,Goshen,Wyoming,56015,5,0 +2020-05-17,Goshen,Wyoming,56015,5,0 +2020-05-18,Goshen,Wyoming,56015,5,0 +2020-05-19,Goshen,Wyoming,56015,5,0 +2020-05-20,Goshen,Wyoming,56015,5,0 +2020-05-21,Goshen,Wyoming,56015,5,0 +2020-05-22,Goshen,Wyoming,56015,5,0 +2020-05-23,Goshen,Wyoming,56015,5,0 +2020-05-24,Goshen,Wyoming,56015,5,0 +2020-05-25,Goshen,Wyoming,56015,5,0 +2020-05-26,Goshen,Wyoming,56015,5,0 +2020-05-27,Goshen,Wyoming,56015,5,0 +2020-05-28,Goshen,Wyoming,56015,5,0 +2020-05-29,Goshen,Wyoming,56015,5,0 +2020-05-30,Goshen,Wyoming,56015,5,0 +2020-05-31,Goshen,Wyoming,56015,5,0 +2020-06-01,Goshen,Wyoming,56015,5,0 +2020-06-02,Goshen,Wyoming,56015,5,0 +2020-06-03,Goshen,Wyoming,56015,5,0 +2020-06-04,Goshen,Wyoming,56015,5,0 +2020-06-05,Goshen,Wyoming,56015,5,0 +2020-06-06,Goshen,Wyoming,56015,5,0 +2020-06-07,Goshen,Wyoming,56015,5,0 +2020-06-08,Goshen,Wyoming,56015,5,0 +2020-06-09,Goshen,Wyoming,56015,5,0 +2020-06-10,Goshen,Wyoming,56015,5,0 +2020-06-11,Goshen,Wyoming,56015,5,0 +2020-06-12,Goshen,Wyoming,56015,5,0 +2020-06-13,Goshen,Wyoming,56015,5,0 +2020-06-14,Goshen,Wyoming,56015,5,0 +2020-06-15,Goshen,Wyoming,56015,5,0 +2020-06-16,Goshen,Wyoming,56015,5,0 +2020-06-17,Goshen,Wyoming,56015,5,0 +2020-06-18,Goshen,Wyoming,56015,5,0 +2020-06-19,Goshen,Wyoming,56015,5,0 +2020-06-20,Goshen,Wyoming,56015,5,0 +2020-06-21,Goshen,Wyoming,56015,5,0 +2020-06-22,Goshen,Wyoming,56015,5,0 +2020-06-23,Goshen,Wyoming,56015,5,0 +2020-06-24,Goshen,Wyoming,56015,5,0 +2020-06-25,Goshen,Wyoming,56015,5,0 +2020-06-26,Goshen,Wyoming,56015,5,0 +2020-06-27,Goshen,Wyoming,56015,5,0 +2020-06-28,Goshen,Wyoming,56015,5,0 +2020-06-29,Goshen,Wyoming,56015,5,0 +2020-06-30,Goshen,Wyoming,56015,5,0 +2020-07-01,Goshen,Wyoming,56015,5,0 +2020-07-02,Goshen,Wyoming,56015,5,0 +2020-07-03,Goshen,Wyoming,56015,6,0 +2020-07-04,Goshen,Wyoming,56015,7,0 +2020-07-05,Goshen,Wyoming,56015,8,0 +2020-07-06,Goshen,Wyoming,56015,8,0 +2020-07-07,Goshen,Wyoming,56015,8,0 +2020-07-08,Goshen,Wyoming,56015,9,0 +2020-07-09,Goshen,Wyoming,56015,9,0 +2020-03-26,Hot Springs,Wyoming,56017,1,0 +2020-03-27,Hot Springs,Wyoming,56017,1,0 +2020-03-28,Hot Springs,Wyoming,56017,1,0 +2020-03-29,Hot Springs,Wyoming,56017,1,0 +2020-03-30,Hot Springs,Wyoming,56017,1,0 +2020-03-31,Hot Springs,Wyoming,56017,1,0 +2020-04-01,Hot Springs,Wyoming,56017,1,0 +2020-04-02,Hot Springs,Wyoming,56017,1,0 +2020-04-03,Hot Springs,Wyoming,56017,1,0 +2020-04-04,Hot Springs,Wyoming,56017,1,0 +2020-04-05,Hot Springs,Wyoming,56017,1,0 +2020-04-06,Hot Springs,Wyoming,56017,1,0 +2020-04-07,Hot Springs,Wyoming,56017,1,0 +2020-04-08,Hot Springs,Wyoming,56017,1,0 +2020-04-09,Hot Springs,Wyoming,56017,1,0 +2020-04-10,Hot Springs,Wyoming,56017,1,0 +2020-04-11,Hot Springs,Wyoming,56017,2,0 +2020-04-12,Hot Springs,Wyoming,56017,2,0 +2020-04-13,Hot Springs,Wyoming,56017,2,0 +2020-04-14,Hot Springs,Wyoming,56017,2,0 +2020-04-15,Hot Springs,Wyoming,56017,2,0 +2020-04-16,Hot Springs,Wyoming,56017,2,0 +2020-04-17,Hot Springs,Wyoming,56017,2,0 +2020-04-18,Hot Springs,Wyoming,56017,2,0 +2020-04-19,Hot Springs,Wyoming,56017,4,0 +2020-04-20,Hot Springs,Wyoming,56017,4,0 +2020-04-21,Hot Springs,Wyoming,56017,4,0 +2020-04-22,Hot Springs,Wyoming,56017,4,0 +2020-04-23,Hot Springs,Wyoming,56017,4,0 +2020-04-24,Hot Springs,Wyoming,56017,4,0 +2020-04-25,Hot Springs,Wyoming,56017,4,0 +2020-04-26,Hot Springs,Wyoming,56017,4,0 +2020-04-27,Hot Springs,Wyoming,56017,4,0 +2020-04-28,Hot Springs,Wyoming,56017,4,0 +2020-04-29,Hot Springs,Wyoming,56017,4,0 +2020-04-30,Hot Springs,Wyoming,56017,4,0 +2020-05-01,Hot Springs,Wyoming,56017,4,0 +2020-05-02,Hot Springs,Wyoming,56017,4,0 +2020-05-03,Hot Springs,Wyoming,56017,4,0 +2020-05-04,Hot Springs,Wyoming,56017,4,0 +2020-05-05,Hot Springs,Wyoming,56017,4,0 +2020-05-06,Hot Springs,Wyoming,56017,4,0 +2020-05-07,Hot Springs,Wyoming,56017,4,0 +2020-05-08,Hot Springs,Wyoming,56017,4,0 +2020-05-09,Hot Springs,Wyoming,56017,4,0 +2020-05-10,Hot Springs,Wyoming,56017,4,0 +2020-05-11,Hot Springs,Wyoming,56017,4,0 +2020-05-12,Hot Springs,Wyoming,56017,4,0 +2020-05-13,Hot Springs,Wyoming,56017,4,0 +2020-05-14,Hot Springs,Wyoming,56017,4,0 +2020-05-15,Hot Springs,Wyoming,56017,4,0 +2020-05-16,Hot Springs,Wyoming,56017,7,0 +2020-05-17,Hot Springs,Wyoming,56017,7,0 +2020-05-18,Hot Springs,Wyoming,56017,8,0 +2020-05-19,Hot Springs,Wyoming,56017,8,0 +2020-05-20,Hot Springs,Wyoming,56017,9,0 +2020-05-21,Hot Springs,Wyoming,56017,10,0 +2020-05-22,Hot Springs,Wyoming,56017,10,0 +2020-05-23,Hot Springs,Wyoming,56017,10,0 +2020-05-24,Hot Springs,Wyoming,56017,10,0 +2020-05-25,Hot Springs,Wyoming,56017,11,0 +2020-05-26,Hot Springs,Wyoming,56017,11,0 +2020-05-27,Hot Springs,Wyoming,56017,13,0 +2020-05-28,Hot Springs,Wyoming,56017,13,0 +2020-05-29,Hot Springs,Wyoming,56017,13,0 +2020-05-30,Hot Springs,Wyoming,56017,13,0 +2020-05-31,Hot Springs,Wyoming,56017,13,0 +2020-06-01,Hot Springs,Wyoming,56017,13,0 +2020-06-02,Hot Springs,Wyoming,56017,13,0 +2020-06-03,Hot Springs,Wyoming,56017,13,0 +2020-06-04,Hot Springs,Wyoming,56017,13,0 +2020-06-05,Hot Springs,Wyoming,56017,13,0 +2020-06-06,Hot Springs,Wyoming,56017,13,0 +2020-06-07,Hot Springs,Wyoming,56017,13,0 +2020-06-08,Hot Springs,Wyoming,56017,13,0 +2020-06-09,Hot Springs,Wyoming,56017,13,0 +2020-06-10,Hot Springs,Wyoming,56017,13,0 +2020-06-11,Hot Springs,Wyoming,56017,13,0 +2020-06-12,Hot Springs,Wyoming,56017,13,0 +2020-06-13,Hot Springs,Wyoming,56017,13,0 +2020-06-14,Hot Springs,Wyoming,56017,13,0 +2020-06-15,Hot Springs,Wyoming,56017,13,0 +2020-06-16,Hot Springs,Wyoming,56017,13,0 +2020-06-17,Hot Springs,Wyoming,56017,13,0 +2020-06-18,Hot Springs,Wyoming,56017,13,0 +2020-06-19,Hot Springs,Wyoming,56017,13,0 +2020-06-20,Hot Springs,Wyoming,56017,13,0 +2020-06-21,Hot Springs,Wyoming,56017,13,0 +2020-06-22,Hot Springs,Wyoming,56017,13,0 +2020-06-23,Hot Springs,Wyoming,56017,13,0 +2020-06-24,Hot Springs,Wyoming,56017,13,0 +2020-06-25,Hot Springs,Wyoming,56017,13,0 +2020-06-26,Hot Springs,Wyoming,56017,13,0 +2020-06-27,Hot Springs,Wyoming,56017,13,0 +2020-06-28,Hot Springs,Wyoming,56017,13,0 +2020-06-29,Hot Springs,Wyoming,56017,13,0 +2020-06-30,Hot Springs,Wyoming,56017,13,0 +2020-07-01,Hot Springs,Wyoming,56017,13,0 +2020-07-02,Hot Springs,Wyoming,56017,13,0 +2020-07-03,Hot Springs,Wyoming,56017,13,0 +2020-07-04,Hot Springs,Wyoming,56017,13,0 +2020-07-05,Hot Springs,Wyoming,56017,13,0 +2020-07-06,Hot Springs,Wyoming,56017,13,0 +2020-07-07,Hot Springs,Wyoming,56017,13,0 +2020-07-08,Hot Springs,Wyoming,56017,13,0 +2020-07-09,Hot Springs,Wyoming,56017,13,0 +2020-03-26,Johnson,Wyoming,56019,1,0 +2020-03-27,Johnson,Wyoming,56019,4,0 +2020-03-28,Johnson,Wyoming,56019,5,0 +2020-03-29,Johnson,Wyoming,56019,5,0 +2020-03-30,Johnson,Wyoming,56019,5,0 +2020-03-31,Johnson,Wyoming,56019,7,0 +2020-04-01,Johnson,Wyoming,56019,7,0 +2020-04-02,Johnson,Wyoming,56019,8,0 +2020-04-03,Johnson,Wyoming,56019,8,0 +2020-04-04,Johnson,Wyoming,56019,8,0 +2020-04-05,Johnson,Wyoming,56019,8,0 +2020-04-06,Johnson,Wyoming,56019,8,0 +2020-04-07,Johnson,Wyoming,56019,8,0 +2020-04-08,Johnson,Wyoming,56019,8,0 +2020-04-09,Johnson,Wyoming,56019,10,0 +2020-04-10,Johnson,Wyoming,56019,11,0 +2020-04-11,Johnson,Wyoming,56019,12,0 +2020-04-12,Johnson,Wyoming,56019,13,0 +2020-04-13,Johnson,Wyoming,56019,13,1 +2020-04-14,Johnson,Wyoming,56019,13,1 +2020-04-15,Johnson,Wyoming,56019,14,1 +2020-04-16,Johnson,Wyoming,56019,14,1 +2020-04-17,Johnson,Wyoming,56019,14,1 +2020-04-18,Johnson,Wyoming,56019,15,1 +2020-04-19,Johnson,Wyoming,56019,15,1 +2020-04-20,Johnson,Wyoming,56019,15,1 +2020-04-21,Johnson,Wyoming,56019,15,1 +2020-04-22,Johnson,Wyoming,56019,15,1 +2020-04-23,Johnson,Wyoming,56019,15,1 +2020-04-24,Johnson,Wyoming,56019,15,1 +2020-04-25,Johnson,Wyoming,56019,15,1 +2020-04-26,Johnson,Wyoming,56019,15,1 +2020-04-27,Johnson,Wyoming,56019,15,1 +2020-04-28,Johnson,Wyoming,56019,15,1 +2020-04-29,Johnson,Wyoming,56019,15,1 +2020-04-30,Johnson,Wyoming,56019,15,1 +2020-05-01,Johnson,Wyoming,56019,15,1 +2020-05-02,Johnson,Wyoming,56019,15,1 +2020-05-03,Johnson,Wyoming,56019,15,1 +2020-05-04,Johnson,Wyoming,56019,15,1 +2020-05-05,Johnson,Wyoming,56019,15,1 +2020-05-06,Johnson,Wyoming,56019,15,1 +2020-05-07,Johnson,Wyoming,56019,15,1 +2020-05-08,Johnson,Wyoming,56019,15,1 +2020-05-09,Johnson,Wyoming,56019,15,1 +2020-05-10,Johnson,Wyoming,56019,15,1 +2020-05-11,Johnson,Wyoming,56019,15,1 +2020-05-12,Johnson,Wyoming,56019,15,1 +2020-05-13,Johnson,Wyoming,56019,15,1 +2020-05-14,Johnson,Wyoming,56019,15,1 +2020-05-15,Johnson,Wyoming,56019,15,1 +2020-05-16,Johnson,Wyoming,56019,15,1 +2020-05-17,Johnson,Wyoming,56019,15,1 +2020-05-18,Johnson,Wyoming,56019,16,1 +2020-05-19,Johnson,Wyoming,56019,16,1 +2020-05-20,Johnson,Wyoming,56019,16,1 +2020-05-21,Johnson,Wyoming,56019,16,1 +2020-05-22,Johnson,Wyoming,56019,16,1 +2020-05-23,Johnson,Wyoming,56019,16,1 +2020-05-24,Johnson,Wyoming,56019,16,1 +2020-05-25,Johnson,Wyoming,56019,18,1 +2020-05-26,Johnson,Wyoming,56019,18,1 +2020-05-27,Johnson,Wyoming,56019,18,1 +2020-05-28,Johnson,Wyoming,56019,18,1 +2020-05-29,Johnson,Wyoming,56019,18,1 +2020-05-30,Johnson,Wyoming,56019,18,1 +2020-05-31,Johnson,Wyoming,56019,18,1 +2020-06-01,Johnson,Wyoming,56019,18,1 +2020-06-02,Johnson,Wyoming,56019,18,1 +2020-06-03,Johnson,Wyoming,56019,18,1 +2020-06-04,Johnson,Wyoming,56019,18,1 +2020-06-05,Johnson,Wyoming,56019,18,1 +2020-06-06,Johnson,Wyoming,56019,18,1 +2020-06-07,Johnson,Wyoming,56019,18,1 +2020-06-08,Johnson,Wyoming,56019,18,1 +2020-06-09,Johnson,Wyoming,56019,18,1 +2020-06-10,Johnson,Wyoming,56019,18,1 +2020-06-11,Johnson,Wyoming,56019,18,1 +2020-06-12,Johnson,Wyoming,56019,18,1 +2020-06-13,Johnson,Wyoming,56019,18,1 +2020-06-14,Johnson,Wyoming,56019,18,1 +2020-06-15,Johnson,Wyoming,56019,18,1 +2020-06-16,Johnson,Wyoming,56019,18,1 +2020-06-17,Johnson,Wyoming,56019,19,1 +2020-06-18,Johnson,Wyoming,56019,19,1 +2020-06-19,Johnson,Wyoming,56019,19,1 +2020-06-20,Johnson,Wyoming,56019,19,1 +2020-06-21,Johnson,Wyoming,56019,19,1 +2020-06-22,Johnson,Wyoming,56019,19,1 +2020-06-23,Johnson,Wyoming,56019,19,1 +2020-06-24,Johnson,Wyoming,56019,19,1 +2020-06-25,Johnson,Wyoming,56019,19,1 +2020-06-26,Johnson,Wyoming,56019,20,1 +2020-06-27,Johnson,Wyoming,56019,20,1 +2020-06-28,Johnson,Wyoming,56019,20,1 +2020-06-29,Johnson,Wyoming,56019,20,1 +2020-06-30,Johnson,Wyoming,56019,20,1 +2020-07-01,Johnson,Wyoming,56019,20,1 +2020-07-02,Johnson,Wyoming,56019,20,1 +2020-07-03,Johnson,Wyoming,56019,20,1 +2020-07-04,Johnson,Wyoming,56019,20,1 +2020-07-05,Johnson,Wyoming,56019,20,1 +2020-07-06,Johnson,Wyoming,56019,20,1 +2020-07-07,Johnson,Wyoming,56019,20,1 +2020-07-08,Johnson,Wyoming,56019,20,1 +2020-07-09,Johnson,Wyoming,56019,20,1 +2020-03-17,Laramie,Wyoming,56021,2,0 +2020-03-18,Laramie,Wyoming,56021,3,0 +2020-03-19,Laramie,Wyoming,56021,4,0 +2020-03-20,Laramie,Wyoming,56021,4,0 +2020-03-21,Laramie,Wyoming,56021,5,0 +2020-03-22,Laramie,Wyoming,56021,6,0 +2020-03-23,Laramie,Wyoming,56021,7,0 +2020-03-24,Laramie,Wyoming,56021,8,0 +2020-03-25,Laramie,Wyoming,56021,12,0 +2020-03-26,Laramie,Wyoming,56021,15,0 +2020-03-27,Laramie,Wyoming,56021,18,0 +2020-03-28,Laramie,Wyoming,56021,19,0 +2020-03-29,Laramie,Wyoming,56021,19,0 +2020-03-30,Laramie,Wyoming,56021,20,0 +2020-03-31,Laramie,Wyoming,56021,27,0 +2020-04-01,Laramie,Wyoming,56021,35,0 +2020-04-02,Laramie,Wyoming,56021,37,0 +2020-04-03,Laramie,Wyoming,56021,40,0 +2020-04-04,Laramie,Wyoming,56021,42,0 +2020-04-05,Laramie,Wyoming,56021,44,0 +2020-04-06,Laramie,Wyoming,56021,45,0 +2020-04-07,Laramie,Wyoming,56021,48,0 +2020-04-08,Laramie,Wyoming,56021,44,0 +2020-04-09,Laramie,Wyoming,56021,69,0 +2020-04-10,Laramie,Wyoming,56021,74,0 +2020-04-11,Laramie,Wyoming,56021,77,0 +2020-04-12,Laramie,Wyoming,56021,84,0 +2020-04-13,Laramie,Wyoming,56021,86,0 +2020-04-14,Laramie,Wyoming,56021,86,0 +2020-04-15,Laramie,Wyoming,56021,90,1 +2020-04-16,Laramie,Wyoming,56021,90,1 +2020-04-17,Laramie,Wyoming,56021,93,1 +2020-04-18,Laramie,Wyoming,56021,95,1 +2020-04-19,Laramie,Wyoming,56021,99,1 +2020-04-20,Laramie,Wyoming,56021,100,1 +2020-04-21,Laramie,Wyoming,56021,110,1 +2020-04-22,Laramie,Wyoming,56021,114,1 +2020-04-23,Laramie,Wyoming,56021,117,1 +2020-04-24,Laramie,Wyoming,56021,120,1 +2020-04-25,Laramie,Wyoming,56021,120,1 +2020-04-26,Laramie,Wyoming,56021,125,1 +2020-04-27,Laramie,Wyoming,56021,128,1 +2020-04-28,Laramie,Wyoming,56021,134,1 +2020-04-29,Laramie,Wyoming,56021,139,1 +2020-04-30,Laramie,Wyoming,56021,145,1 +2020-05-01,Laramie,Wyoming,56021,147,1 +2020-05-02,Laramie,Wyoming,56021,151,1 +2020-05-03,Laramie,Wyoming,56021,154,1 +2020-05-04,Laramie,Wyoming,56021,158,1 +2020-05-05,Laramie,Wyoming,56021,162,1 +2020-05-06,Laramie,Wyoming,56021,163,1 +2020-05-07,Laramie,Wyoming,56021,163,1 +2020-05-08,Laramie,Wyoming,56021,163,1 +2020-05-09,Laramie,Wyoming,56021,163,1 +2020-05-10,Laramie,Wyoming,56021,164,1 +2020-05-11,Laramie,Wyoming,56021,166,1 +2020-05-12,Laramie,Wyoming,56021,170,1 +2020-05-13,Laramie,Wyoming,56021,173,1 +2020-05-14,Laramie,Wyoming,56021,173,1 +2020-05-15,Laramie,Wyoming,56021,178,1 +2020-05-16,Laramie,Wyoming,56021,181,1 +2020-05-17,Laramie,Wyoming,56021,181,1 +2020-05-18,Laramie,Wyoming,56021,181,2 +2020-05-19,Laramie,Wyoming,56021,183,2 +2020-05-20,Laramie,Wyoming,56021,182,2 +2020-05-21,Laramie,Wyoming,56021,182,2 +2020-05-22,Laramie,Wyoming,56021,182,2 +2020-05-23,Laramie,Wyoming,56021,182,2 +2020-05-24,Laramie,Wyoming,56021,182,2 +2020-05-25,Laramie,Wyoming,56021,183,2 +2020-05-26,Laramie,Wyoming,56021,183,2 +2020-05-27,Laramie,Wyoming,56021,185,2 +2020-05-28,Laramie,Wyoming,56021,188,2 +2020-05-29,Laramie,Wyoming,56021,188,2 +2020-05-30,Laramie,Wyoming,56021,188,2 +2020-05-31,Laramie,Wyoming,56021,188,2 +2020-06-01,Laramie,Wyoming,56021,188,2 +2020-06-02,Laramie,Wyoming,56021,188,2 +2020-06-03,Laramie,Wyoming,56021,188,2 +2020-06-04,Laramie,Wyoming,56021,188,2 +2020-06-05,Laramie,Wyoming,56021,188,2 +2020-06-06,Laramie,Wyoming,56021,188,2 +2020-06-07,Laramie,Wyoming,56021,188,2 +2020-06-08,Laramie,Wyoming,56021,188,2 +2020-06-09,Laramie,Wyoming,56021,188,2 +2020-06-10,Laramie,Wyoming,56021,188,2 +2020-06-11,Laramie,Wyoming,56021,188,2 +2020-06-12,Laramie,Wyoming,56021,191,2 +2020-06-13,Laramie,Wyoming,56021,195,2 +2020-06-14,Laramie,Wyoming,56021,195,2 +2020-06-15,Laramie,Wyoming,56021,196,2 +2020-06-16,Laramie,Wyoming,56021,196,2 +2020-06-17,Laramie,Wyoming,56021,197,2 +2020-06-18,Laramie,Wyoming,56021,203,2 +2020-06-19,Laramie,Wyoming,56021,204,2 +2020-06-20,Laramie,Wyoming,56021,204,2 +2020-06-21,Laramie,Wyoming,56021,204,2 +2020-06-22,Laramie,Wyoming,56021,211,2 +2020-06-23,Laramie,Wyoming,56021,215,2 +2020-06-24,Laramie,Wyoming,56021,219,2 +2020-06-25,Laramie,Wyoming,56021,225,2 +2020-06-26,Laramie,Wyoming,56021,240,2 +2020-06-27,Laramie,Wyoming,56021,246,2 +2020-06-28,Laramie,Wyoming,56021,250,2 +2020-06-29,Laramie,Wyoming,56021,256,2 +2020-06-30,Laramie,Wyoming,56021,261,2 +2020-07-01,Laramie,Wyoming,56021,270,2 +2020-07-02,Laramie,Wyoming,56021,282,2 +2020-07-03,Laramie,Wyoming,56021,286,2 +2020-07-04,Laramie,Wyoming,56021,287,2 +2020-07-05,Laramie,Wyoming,56021,288,2 +2020-07-06,Laramie,Wyoming,56021,292,2 +2020-07-07,Laramie,Wyoming,56021,298,3 +2020-07-08,Laramie,Wyoming,56021,302,3 +2020-07-09,Laramie,Wyoming,56021,307,3 +2020-04-03,Lincoln,Wyoming,56023,1,0 +2020-04-04,Lincoln,Wyoming,56023,1,0 +2020-04-05,Lincoln,Wyoming,56023,3,0 +2020-04-06,Lincoln,Wyoming,56023,4,0 +2020-04-07,Lincoln,Wyoming,56023,4,0 +2020-04-08,Lincoln,Wyoming,56023,3,0 +2020-04-09,Lincoln,Wyoming,56023,8,0 +2020-04-10,Lincoln,Wyoming,56023,8,0 +2020-04-11,Lincoln,Wyoming,56023,9,0 +2020-04-12,Lincoln,Wyoming,56023,9,0 +2020-04-13,Lincoln,Wyoming,56023,9,0 +2020-04-14,Lincoln,Wyoming,56023,9,0 +2020-04-15,Lincoln,Wyoming,56023,9,0 +2020-04-16,Lincoln,Wyoming,56023,9,0 +2020-04-17,Lincoln,Wyoming,56023,9,0 +2020-04-18,Lincoln,Wyoming,56023,9,0 +2020-04-19,Lincoln,Wyoming,56023,9,0 +2020-04-20,Lincoln,Wyoming,56023,9,0 +2020-04-21,Lincoln,Wyoming,56023,9,0 +2020-04-22,Lincoln,Wyoming,56023,9,0 +2020-04-23,Lincoln,Wyoming,56023,9,0 +2020-04-24,Lincoln,Wyoming,56023,9,0 +2020-04-25,Lincoln,Wyoming,56023,9,0 +2020-04-26,Lincoln,Wyoming,56023,9,0 +2020-04-27,Lincoln,Wyoming,56023,9,0 +2020-04-28,Lincoln,Wyoming,56023,9,0 +2020-04-29,Lincoln,Wyoming,56023,9,0 +2020-04-30,Lincoln,Wyoming,56023,9,0 +2020-05-01,Lincoln,Wyoming,56023,9,0 +2020-05-02,Lincoln,Wyoming,56023,9,0 +2020-05-03,Lincoln,Wyoming,56023,9,0 +2020-05-04,Lincoln,Wyoming,56023,9,0 +2020-05-05,Lincoln,Wyoming,56023,10,0 +2020-05-06,Lincoln,Wyoming,56023,10,0 +2020-05-07,Lincoln,Wyoming,56023,10,0 +2020-05-08,Lincoln,Wyoming,56023,10,0 +2020-05-09,Lincoln,Wyoming,56023,10,0 +2020-05-10,Lincoln,Wyoming,56023,11,0 +2020-05-11,Lincoln,Wyoming,56023,11,0 +2020-05-12,Lincoln,Wyoming,56023,11,0 +2020-05-13,Lincoln,Wyoming,56023,11,0 +2020-05-14,Lincoln,Wyoming,56023,14,0 +2020-05-15,Lincoln,Wyoming,56023,14,0 +2020-05-16,Lincoln,Wyoming,56023,14,0 +2020-05-17,Lincoln,Wyoming,56023,14,0 +2020-05-18,Lincoln,Wyoming,56023,14,0 +2020-05-19,Lincoln,Wyoming,56023,14,0 +2020-05-20,Lincoln,Wyoming,56023,14,0 +2020-05-21,Lincoln,Wyoming,56023,15,0 +2020-05-22,Lincoln,Wyoming,56023,15,0 +2020-05-23,Lincoln,Wyoming,56023,15,0 +2020-05-24,Lincoln,Wyoming,56023,15,0 +2020-05-25,Lincoln,Wyoming,56023,15,0 +2020-05-26,Lincoln,Wyoming,56023,15,0 +2020-05-27,Lincoln,Wyoming,56023,15,0 +2020-05-28,Lincoln,Wyoming,56023,15,0 +2020-05-29,Lincoln,Wyoming,56023,15,0 +2020-05-30,Lincoln,Wyoming,56023,15,0 +2020-05-31,Lincoln,Wyoming,56023,15,0 +2020-06-01,Lincoln,Wyoming,56023,15,0 +2020-06-02,Lincoln,Wyoming,56023,15,0 +2020-06-03,Lincoln,Wyoming,56023,15,0 +2020-06-04,Lincoln,Wyoming,56023,15,0 +2020-06-05,Lincoln,Wyoming,56023,15,0 +2020-06-06,Lincoln,Wyoming,56023,15,0 +2020-06-07,Lincoln,Wyoming,56023,15,0 +2020-06-08,Lincoln,Wyoming,56023,15,0 +2020-06-09,Lincoln,Wyoming,56023,15,0 +2020-06-10,Lincoln,Wyoming,56023,15,0 +2020-06-11,Lincoln,Wyoming,56023,15,0 +2020-06-12,Lincoln,Wyoming,56023,15,0 +2020-06-13,Lincoln,Wyoming,56023,15,0 +2020-06-14,Lincoln,Wyoming,56023,15,0 +2020-06-15,Lincoln,Wyoming,56023,15,0 +2020-06-16,Lincoln,Wyoming,56023,15,0 +2020-06-17,Lincoln,Wyoming,56023,15,0 +2020-06-18,Lincoln,Wyoming,56023,15,0 +2020-06-19,Lincoln,Wyoming,56023,15,0 +2020-06-20,Lincoln,Wyoming,56023,15,0 +2020-06-21,Lincoln,Wyoming,56023,16,0 +2020-06-22,Lincoln,Wyoming,56023,15,0 +2020-06-23,Lincoln,Wyoming,56023,15,0 +2020-06-24,Lincoln,Wyoming,56023,15,0 +2020-06-25,Lincoln,Wyoming,56023,16,0 +2020-06-26,Lincoln,Wyoming,56023,17,0 +2020-06-27,Lincoln,Wyoming,56023,17,0 +2020-06-28,Lincoln,Wyoming,56023,17,0 +2020-06-29,Lincoln,Wyoming,56023,18,0 +2020-06-30,Lincoln,Wyoming,56023,23,0 +2020-07-01,Lincoln,Wyoming,56023,24,0 +2020-07-02,Lincoln,Wyoming,56023,27,0 +2020-07-03,Lincoln,Wyoming,56023,33,0 +2020-07-04,Lincoln,Wyoming,56023,34,0 +2020-07-05,Lincoln,Wyoming,56023,35,0 +2020-07-06,Lincoln,Wyoming,56023,36,0 +2020-07-07,Lincoln,Wyoming,56023,37,0 +2020-07-08,Lincoln,Wyoming,56023,37,0 +2020-07-09,Lincoln,Wyoming,56023,39,0 +2020-03-20,Natrona,Wyoming,56025,1,0 +2020-03-21,Natrona,Wyoming,56025,1,0 +2020-03-22,Natrona,Wyoming,56025,1,0 +2020-03-23,Natrona,Wyoming,56025,1,0 +2020-03-24,Natrona,Wyoming,56025,4,0 +2020-03-25,Natrona,Wyoming,56025,6,0 +2020-03-26,Natrona,Wyoming,56025,6,0 +2020-03-27,Natrona,Wyoming,56025,8,0 +2020-03-28,Natrona,Wyoming,56025,8,0 +2020-03-29,Natrona,Wyoming,56025,9,0 +2020-03-30,Natrona,Wyoming,56025,9,0 +2020-03-31,Natrona,Wyoming,56025,12,0 +2020-04-01,Natrona,Wyoming,56025,14,0 +2020-04-02,Natrona,Wyoming,56025,19,0 +2020-04-03,Natrona,Wyoming,56025,21,0 +2020-04-04,Natrona,Wyoming,56025,23,0 +2020-04-05,Natrona,Wyoming,56025,23,0 +2020-04-06,Natrona,Wyoming,56025,26,0 +2020-04-07,Natrona,Wyoming,56025,26,0 +2020-04-08,Natrona,Wyoming,56025,23,0 +2020-04-09,Natrona,Wyoming,56025,29,0 +2020-04-10,Natrona,Wyoming,56025,35,0 +2020-04-11,Natrona,Wyoming,56025,40,0 +2020-04-12,Natrona,Wyoming,56025,41,0 +2020-04-13,Natrona,Wyoming,56025,41,0 +2020-04-14,Natrona,Wyoming,56025,41,0 +2020-04-15,Natrona,Wyoming,56025,44,0 +2020-04-16,Natrona,Wyoming,56025,44,0 +2020-04-17,Natrona,Wyoming,56025,47,0 +2020-04-18,Natrona,Wyoming,56025,48,0 +2020-04-19,Natrona,Wyoming,56025,48,0 +2020-04-20,Natrona,Wyoming,56025,48,0 +2020-04-21,Natrona,Wyoming,56025,48,0 +2020-04-22,Natrona,Wyoming,56025,48,0 +2020-04-23,Natrona,Wyoming,56025,49,0 +2020-04-24,Natrona,Wyoming,56025,49,0 +2020-04-25,Natrona,Wyoming,56025,49,0 +2020-04-26,Natrona,Wyoming,56025,49,0 +2020-04-27,Natrona,Wyoming,56025,49,0 +2020-04-28,Natrona,Wyoming,56025,49,0 +2020-04-29,Natrona,Wyoming,56025,49,0 +2020-04-30,Natrona,Wyoming,56025,49,0 +2020-05-01,Natrona,Wyoming,56025,49,0 +2020-05-02,Natrona,Wyoming,56025,48,0 +2020-05-03,Natrona,Wyoming,56025,48,0 +2020-05-04,Natrona,Wyoming,56025,48,0 +2020-05-05,Natrona,Wyoming,56025,48,0 +2020-05-06,Natrona,Wyoming,56025,48,0 +2020-05-07,Natrona,Wyoming,56025,48,0 +2020-05-08,Natrona,Wyoming,56025,48,0 +2020-05-09,Natrona,Wyoming,56025,48,0 +2020-05-10,Natrona,Wyoming,56025,48,0 +2020-05-11,Natrona,Wyoming,56025,48,0 +2020-05-12,Natrona,Wyoming,56025,47,0 +2020-05-13,Natrona,Wyoming,56025,48,0 +2020-05-14,Natrona,Wyoming,56025,49,0 +2020-05-15,Natrona,Wyoming,56025,50,0 +2020-05-16,Natrona,Wyoming,56025,53,0 +2020-05-17,Natrona,Wyoming,56025,56,0 +2020-05-18,Natrona,Wyoming,56025,62,0 +2020-05-19,Natrona,Wyoming,56025,64,0 +2020-05-20,Natrona,Wyoming,56025,66,0 +2020-05-21,Natrona,Wyoming,56025,67,0 +2020-05-22,Natrona,Wyoming,56025,68,0 +2020-05-23,Natrona,Wyoming,56025,68,0 +2020-05-24,Natrona,Wyoming,56025,68,0 +2020-05-25,Natrona,Wyoming,56025,71,0 +2020-05-26,Natrona,Wyoming,56025,72,0 +2020-05-27,Natrona,Wyoming,56025,72,0 +2020-05-28,Natrona,Wyoming,56025,75,1 +2020-05-29,Natrona,Wyoming,56025,76,1 +2020-05-30,Natrona,Wyoming,56025,76,1 +2020-05-31,Natrona,Wyoming,56025,77,1 +2020-06-01,Natrona,Wyoming,56025,79,1 +2020-06-02,Natrona,Wyoming,56025,79,1 +2020-06-03,Natrona,Wyoming,56025,79,1 +2020-06-04,Natrona,Wyoming,56025,79,1 +2020-06-05,Natrona,Wyoming,56025,82,1 +2020-06-06,Natrona,Wyoming,56025,82,1 +2020-06-07,Natrona,Wyoming,56025,82,1 +2020-06-08,Natrona,Wyoming,56025,87,1 +2020-06-09,Natrona,Wyoming,56025,87,1 +2020-06-10,Natrona,Wyoming,56025,87,1 +2020-06-11,Natrona,Wyoming,56025,87,1 +2020-06-12,Natrona,Wyoming,56025,87,1 +2020-06-13,Natrona,Wyoming,56025,87,1 +2020-06-14,Natrona,Wyoming,56025,87,1 +2020-06-15,Natrona,Wyoming,56025,87,1 +2020-06-16,Natrona,Wyoming,56025,88,1 +2020-06-17,Natrona,Wyoming,56025,88,1 +2020-06-18,Natrona,Wyoming,56025,90,1 +2020-06-19,Natrona,Wyoming,56025,95,1 +2020-06-20,Natrona,Wyoming,56025,95,1 +2020-06-21,Natrona,Wyoming,56025,96,1 +2020-06-22,Natrona,Wyoming,56025,98,1 +2020-06-23,Natrona,Wyoming,56025,98,1 +2020-06-24,Natrona,Wyoming,56025,102,1 +2020-06-25,Natrona,Wyoming,56025,107,1 +2020-06-26,Natrona,Wyoming,56025,109,1 +2020-06-27,Natrona,Wyoming,56025,114,1 +2020-06-28,Natrona,Wyoming,56025,118,1 +2020-06-29,Natrona,Wyoming,56025,120,1 +2020-06-30,Natrona,Wyoming,56025,121,1 +2020-07-01,Natrona,Wyoming,56025,126,1 +2020-07-02,Natrona,Wyoming,56025,131,1 +2020-07-03,Natrona,Wyoming,56025,134,1 +2020-07-04,Natrona,Wyoming,56025,136,1 +2020-07-05,Natrona,Wyoming,56025,140,1 +2020-07-06,Natrona,Wyoming,56025,149,1 +2020-07-07,Natrona,Wyoming,56025,153,1 +2020-07-08,Natrona,Wyoming,56025,155,1 +2020-07-09,Natrona,Wyoming,56025,158,1 +2020-04-10,Niobrara,Wyoming,56027,2,0 +2020-04-11,Niobrara,Wyoming,56027,2,0 +2020-04-12,Niobrara,Wyoming,56027,2,0 +2020-04-13,Niobrara,Wyoming,56027,2,0 +2020-04-14,Niobrara,Wyoming,56027,2,0 +2020-04-15,Niobrara,Wyoming,56027,2,0 +2020-04-16,Niobrara,Wyoming,56027,2,0 +2020-04-17,Niobrara,Wyoming,56027,2,0 +2020-04-18,Niobrara,Wyoming,56027,2,0 +2020-04-19,Niobrara,Wyoming,56027,2,0 +2020-04-20,Niobrara,Wyoming,56027,2,0 +2020-04-21,Niobrara,Wyoming,56027,2,0 +2020-04-22,Niobrara,Wyoming,56027,2,0 +2020-04-23,Niobrara,Wyoming,56027,2,0 +2020-04-24,Niobrara,Wyoming,56027,2,0 +2020-04-25,Niobrara,Wyoming,56027,2,0 +2020-04-26,Niobrara,Wyoming,56027,2,0 +2020-04-27,Niobrara,Wyoming,56027,2,0 +2020-04-28,Niobrara,Wyoming,56027,2,0 +2020-04-29,Niobrara,Wyoming,56027,2,0 +2020-04-30,Niobrara,Wyoming,56027,2,0 +2020-05-01,Niobrara,Wyoming,56027,2,0 +2020-05-02,Niobrara,Wyoming,56027,2,0 +2020-05-03,Niobrara,Wyoming,56027,2,0 +2020-05-04,Niobrara,Wyoming,56027,2,0 +2020-05-05,Niobrara,Wyoming,56027,2,0 +2020-05-06,Niobrara,Wyoming,56027,2,0 +2020-05-07,Niobrara,Wyoming,56027,2,0 +2020-05-08,Niobrara,Wyoming,56027,2,0 +2020-05-09,Niobrara,Wyoming,56027,2,0 +2020-05-10,Niobrara,Wyoming,56027,2,0 +2020-05-11,Niobrara,Wyoming,56027,2,0 +2020-05-12,Niobrara,Wyoming,56027,2,0 +2020-05-13,Niobrara,Wyoming,56027,2,0 +2020-05-14,Niobrara,Wyoming,56027,2,0 +2020-05-15,Niobrara,Wyoming,56027,2,0 +2020-05-16,Niobrara,Wyoming,56027,2,0 +2020-05-17,Niobrara,Wyoming,56027,2,0 +2020-05-18,Niobrara,Wyoming,56027,2,0 +2020-05-19,Niobrara,Wyoming,56027,2,0 +2020-05-20,Niobrara,Wyoming,56027,2,0 +2020-05-21,Niobrara,Wyoming,56027,2,0 +2020-05-22,Niobrara,Wyoming,56027,2,0 +2020-05-23,Niobrara,Wyoming,56027,2,0 +2020-05-24,Niobrara,Wyoming,56027,2,0 +2020-05-25,Niobrara,Wyoming,56027,2,0 +2020-05-26,Niobrara,Wyoming,56027,2,0 +2020-05-27,Niobrara,Wyoming,56027,2,0 +2020-05-28,Niobrara,Wyoming,56027,2,0 +2020-05-29,Niobrara,Wyoming,56027,2,0 +2020-05-30,Niobrara,Wyoming,56027,2,0 +2020-05-31,Niobrara,Wyoming,56027,2,0 +2020-06-01,Niobrara,Wyoming,56027,2,0 +2020-06-02,Niobrara,Wyoming,56027,2,0 +2020-06-03,Niobrara,Wyoming,56027,2,0 +2020-06-04,Niobrara,Wyoming,56027,2,0 +2020-06-05,Niobrara,Wyoming,56027,2,0 +2020-06-06,Niobrara,Wyoming,56027,2,0 +2020-06-07,Niobrara,Wyoming,56027,2,0 +2020-06-08,Niobrara,Wyoming,56027,2,0 +2020-06-09,Niobrara,Wyoming,56027,2,0 +2020-06-10,Niobrara,Wyoming,56027,2,0 +2020-06-11,Niobrara,Wyoming,56027,2,0 +2020-06-12,Niobrara,Wyoming,56027,2,0 +2020-06-13,Niobrara,Wyoming,56027,2,0 +2020-06-14,Niobrara,Wyoming,56027,2,0 +2020-06-15,Niobrara,Wyoming,56027,2,0 +2020-06-16,Niobrara,Wyoming,56027,2,0 +2020-06-17,Niobrara,Wyoming,56027,2,0 +2020-06-18,Niobrara,Wyoming,56027,2,0 +2020-06-19,Niobrara,Wyoming,56027,2,0 +2020-06-20,Niobrara,Wyoming,56027,2,0 +2020-06-21,Niobrara,Wyoming,56027,2,0 +2020-06-22,Niobrara,Wyoming,56027,2,0 +2020-06-23,Niobrara,Wyoming,56027,2,0 +2020-06-24,Niobrara,Wyoming,56027,2,0 +2020-06-25,Niobrara,Wyoming,56027,2,0 +2020-06-26,Niobrara,Wyoming,56027,2,0 +2020-06-27,Niobrara,Wyoming,56027,2,0 +2020-06-28,Niobrara,Wyoming,56027,2,0 +2020-06-29,Niobrara,Wyoming,56027,2,0 +2020-06-30,Niobrara,Wyoming,56027,2,0 +2020-07-01,Niobrara,Wyoming,56027,2,0 +2020-07-02,Niobrara,Wyoming,56027,2,0 +2020-07-03,Niobrara,Wyoming,56027,2,0 +2020-07-04,Niobrara,Wyoming,56027,2,0 +2020-07-05,Niobrara,Wyoming,56027,2,0 +2020-07-06,Niobrara,Wyoming,56027,2,0 +2020-07-07,Niobrara,Wyoming,56027,2,0 +2020-07-08,Niobrara,Wyoming,56027,2,0 +2020-07-09,Niobrara,Wyoming,56027,2,0 +2020-03-17,Park,Wyoming,56029,1,0 +2020-03-18,Park,Wyoming,56029,1,0 +2020-03-19,Park,Wyoming,56029,1,0 +2020-03-20,Park,Wyoming,56029,1,0 +2020-03-21,Park,Wyoming,56029,1,0 +2020-03-22,Park,Wyoming,56029,1,0 +2020-03-23,Park,Wyoming,56029,1,0 +2020-03-24,Park,Wyoming,56029,1,0 +2020-03-25,Park,Wyoming,56029,1,0 +2020-03-26,Park,Wyoming,56029,1,0 +2020-03-27,Park,Wyoming,56029,1,0 +2020-03-28,Park,Wyoming,56029,1,0 +2020-03-29,Park,Wyoming,56029,1,0 +2020-03-30,Park,Wyoming,56029,1,0 +2020-03-31,Park,Wyoming,56029,1,0 +2020-04-01,Park,Wyoming,56029,1,0 +2020-04-02,Park,Wyoming,56029,1,0 +2020-04-03,Park,Wyoming,56029,1,0 +2020-04-04,Park,Wyoming,56029,1,0 +2020-04-05,Park,Wyoming,56029,1,0 +2020-04-06,Park,Wyoming,56029,1,0 +2020-04-07,Park,Wyoming,56029,1,0 +2020-04-08,Park,Wyoming,56029,1,0 +2020-04-09,Park,Wyoming,56029,1,0 +2020-04-10,Park,Wyoming,56029,1,0 +2020-04-11,Park,Wyoming,56029,1,0 +2020-04-12,Park,Wyoming,56029,1,0 +2020-04-13,Park,Wyoming,56029,1,0 +2020-04-14,Park,Wyoming,56029,1,0 +2020-04-15,Park,Wyoming,56029,1,0 +2020-04-16,Park,Wyoming,56029,1,0 +2020-04-17,Park,Wyoming,56029,1,0 +2020-04-18,Park,Wyoming,56029,1,0 +2020-04-19,Park,Wyoming,56029,1,0 +2020-04-20,Park,Wyoming,56029,1,0 +2020-04-21,Park,Wyoming,56029,1,0 +2020-04-22,Park,Wyoming,56029,1,0 +2020-04-23,Park,Wyoming,56029,1,0 +2020-04-24,Park,Wyoming,56029,1,0 +2020-04-25,Park,Wyoming,56029,1,0 +2020-04-26,Park,Wyoming,56029,1,0 +2020-04-27,Park,Wyoming,56029,1,0 +2020-04-28,Park,Wyoming,56029,1,0 +2020-04-29,Park,Wyoming,56029,1,0 +2020-04-30,Park,Wyoming,56029,1,0 +2020-05-01,Park,Wyoming,56029,1,0 +2020-05-02,Park,Wyoming,56029,1,0 +2020-05-03,Park,Wyoming,56029,1,0 +2020-05-04,Park,Wyoming,56029,1,0 +2020-05-05,Park,Wyoming,56029,1,0 +2020-05-06,Park,Wyoming,56029,1,0 +2020-05-07,Park,Wyoming,56029,1,0 +2020-05-08,Park,Wyoming,56029,1,0 +2020-05-09,Park,Wyoming,56029,1,0 +2020-05-10,Park,Wyoming,56029,1,0 +2020-05-11,Park,Wyoming,56029,1,0 +2020-05-12,Park,Wyoming,56029,1,0 +2020-05-13,Park,Wyoming,56029,1,0 +2020-05-14,Park,Wyoming,56029,1,0 +2020-05-15,Park,Wyoming,56029,1,0 +2020-05-16,Park,Wyoming,56029,1,0 +2020-05-17,Park,Wyoming,56029,1,0 +2020-05-18,Park,Wyoming,56029,1,0 +2020-05-19,Park,Wyoming,56029,1,0 +2020-05-20,Park,Wyoming,56029,2,0 +2020-05-21,Park,Wyoming,56029,2,0 +2020-05-22,Park,Wyoming,56029,2,0 +2020-05-23,Park,Wyoming,56029,2,0 +2020-05-24,Park,Wyoming,56029,2,0 +2020-05-25,Park,Wyoming,56029,2,0 +2020-05-26,Park,Wyoming,56029,2,0 +2020-05-27,Park,Wyoming,56029,2,0 +2020-05-28,Park,Wyoming,56029,2,0 +2020-05-29,Park,Wyoming,56029,2,0 +2020-05-30,Park,Wyoming,56029,2,0 +2020-05-31,Park,Wyoming,56029,2,0 +2020-06-01,Park,Wyoming,56029,2,0 +2020-06-02,Park,Wyoming,56029,2,0 +2020-06-03,Park,Wyoming,56029,2,0 +2020-06-04,Park,Wyoming,56029,2,0 +2020-06-05,Park,Wyoming,56029,2,0 +2020-06-06,Park,Wyoming,56029,2,0 +2020-06-07,Park,Wyoming,56029,2,0 +2020-06-08,Park,Wyoming,56029,2,0 +2020-06-09,Park,Wyoming,56029,2,0 +2020-06-10,Park,Wyoming,56029,2,0 +2020-06-11,Park,Wyoming,56029,2,0 +2020-06-12,Park,Wyoming,56029,3,0 +2020-06-13,Park,Wyoming,56029,5,0 +2020-06-14,Park,Wyoming,56029,5,0 +2020-06-15,Park,Wyoming,56029,5,0 +2020-06-16,Park,Wyoming,56029,7,0 +2020-06-17,Park,Wyoming,56029,8,0 +2020-06-18,Park,Wyoming,56029,10,0 +2020-06-19,Park,Wyoming,56029,9,0 +2020-06-20,Park,Wyoming,56029,11,0 +2020-06-21,Park,Wyoming,56029,11,0 +2020-06-22,Park,Wyoming,56029,12,0 +2020-06-23,Park,Wyoming,56029,16,0 +2020-06-24,Park,Wyoming,56029,17,0 +2020-06-25,Park,Wyoming,56029,22,0 +2020-06-26,Park,Wyoming,56029,25,0 +2020-06-27,Park,Wyoming,56029,31,0 +2020-06-28,Park,Wyoming,56029,37,0 +2020-06-29,Park,Wyoming,56029,40,0 +2020-06-30,Park,Wyoming,56029,50,0 +2020-07-01,Park,Wyoming,56029,56,0 +2020-07-02,Park,Wyoming,56029,57,0 +2020-07-03,Park,Wyoming,56029,61,0 +2020-07-04,Park,Wyoming,56029,61,0 +2020-07-05,Park,Wyoming,56029,62,0 +2020-07-06,Park,Wyoming,56029,66,0 +2020-07-07,Park,Wyoming,56029,70,0 +2020-07-08,Park,Wyoming,56029,76,0 +2020-07-09,Park,Wyoming,56029,80,0 +2020-05-21,Platte,Wyoming,56031,1,0 +2020-05-22,Platte,Wyoming,56031,1,0 +2020-05-23,Platte,Wyoming,56031,1,0 +2020-05-24,Platte,Wyoming,56031,1,0 +2020-05-25,Platte,Wyoming,56031,1,0 +2020-05-26,Platte,Wyoming,56031,1,0 +2020-05-27,Platte,Wyoming,56031,1,0 +2020-05-28,Platte,Wyoming,56031,1,0 +2020-05-29,Platte,Wyoming,56031,1,0 +2020-05-30,Platte,Wyoming,56031,1,0 +2020-05-31,Platte,Wyoming,56031,1,0 +2020-06-01,Platte,Wyoming,56031,1,0 +2020-06-02,Platte,Wyoming,56031,1,0 +2020-06-03,Platte,Wyoming,56031,1,0 +2020-06-04,Platte,Wyoming,56031,1,0 +2020-06-05,Platte,Wyoming,56031,1,0 +2020-06-06,Platte,Wyoming,56031,1,0 +2020-06-07,Platte,Wyoming,56031,1,0 +2020-06-08,Platte,Wyoming,56031,1,0 +2020-06-09,Platte,Wyoming,56031,1,0 +2020-06-10,Platte,Wyoming,56031,1,0 +2020-06-11,Platte,Wyoming,56031,1,0 +2020-06-12,Platte,Wyoming,56031,1,0 +2020-06-13,Platte,Wyoming,56031,1,0 +2020-06-14,Platte,Wyoming,56031,1,0 +2020-06-15,Platte,Wyoming,56031,1,0 +2020-06-16,Platte,Wyoming,56031,1,0 +2020-06-17,Platte,Wyoming,56031,1,0 +2020-06-18,Platte,Wyoming,56031,1,0 +2020-06-19,Platte,Wyoming,56031,1,0 +2020-06-20,Platte,Wyoming,56031,1,0 +2020-06-21,Platte,Wyoming,56031,1,0 +2020-06-22,Platte,Wyoming,56031,2,0 +2020-06-23,Platte,Wyoming,56031,2,0 +2020-06-24,Platte,Wyoming,56031,2,0 +2020-06-25,Platte,Wyoming,56031,2,0 +2020-06-26,Platte,Wyoming,56031,2,0 +2020-06-27,Platte,Wyoming,56031,2,0 +2020-06-28,Platte,Wyoming,56031,2,0 +2020-06-29,Platte,Wyoming,56031,2,0 +2020-06-30,Platte,Wyoming,56031,3,0 +2020-07-01,Platte,Wyoming,56031,4,0 +2020-07-02,Platte,Wyoming,56031,4,0 +2020-07-03,Platte,Wyoming,56031,4,0 +2020-07-04,Platte,Wyoming,56031,4,0 +2020-07-05,Platte,Wyoming,56031,4,0 +2020-07-06,Platte,Wyoming,56031,4,0 +2020-07-07,Platte,Wyoming,56031,4,0 +2020-07-08,Platte,Wyoming,56031,4,0 +2020-07-09,Platte,Wyoming,56031,4,0 +2020-03-11,Sheridan,Wyoming,56033,1,0 +2020-03-12,Sheridan,Wyoming,56033,1,0 +2020-03-13,Sheridan,Wyoming,56033,1,0 +2020-03-14,Sheridan,Wyoming,56033,2,0 +2020-03-15,Sheridan,Wyoming,56033,2,0 +2020-03-16,Sheridan,Wyoming,56033,2,0 +2020-03-17,Sheridan,Wyoming,56033,4,0 +2020-03-18,Sheridan,Wyoming,56033,4,0 +2020-03-19,Sheridan,Wyoming,56033,4,0 +2020-03-20,Sheridan,Wyoming,56033,4,0 +2020-03-21,Sheridan,Wyoming,56033,4,0 +2020-03-22,Sheridan,Wyoming,56033,4,0 +2020-03-23,Sheridan,Wyoming,56033,4,0 +2020-03-24,Sheridan,Wyoming,56033,4,0 +2020-03-25,Sheridan,Wyoming,56033,4,0 +2020-03-26,Sheridan,Wyoming,56033,4,0 +2020-03-27,Sheridan,Wyoming,56033,5,0 +2020-03-28,Sheridan,Wyoming,56033,6,0 +2020-03-29,Sheridan,Wyoming,56033,6,0 +2020-03-30,Sheridan,Wyoming,56033,8,0 +2020-03-31,Sheridan,Wyoming,56033,10,0 +2020-04-01,Sheridan,Wyoming,56033,10,0 +2020-04-02,Sheridan,Wyoming,56033,10,0 +2020-04-03,Sheridan,Wyoming,56033,10,0 +2020-04-04,Sheridan,Wyoming,56033,11,0 +2020-04-05,Sheridan,Wyoming,56033,12,0 +2020-04-06,Sheridan,Wyoming,56033,12,0 +2020-04-07,Sheridan,Wyoming,56033,12,0 +2020-04-08,Sheridan,Wyoming,56033,12,0 +2020-04-09,Sheridan,Wyoming,56033,15,0 +2020-04-10,Sheridan,Wyoming,56033,15,0 +2020-04-11,Sheridan,Wyoming,56033,15,0 +2020-04-12,Sheridan,Wyoming,56033,15,0 +2020-04-13,Sheridan,Wyoming,56033,15,0 +2020-04-14,Sheridan,Wyoming,56033,15,0 +2020-04-15,Sheridan,Wyoming,56033,16,0 +2020-04-16,Sheridan,Wyoming,56033,16,0 +2020-04-17,Sheridan,Wyoming,56033,16,0 +2020-04-18,Sheridan,Wyoming,56033,16,0 +2020-04-19,Sheridan,Wyoming,56033,16,0 +2020-04-20,Sheridan,Wyoming,56033,16,0 +2020-04-21,Sheridan,Wyoming,56033,16,0 +2020-04-22,Sheridan,Wyoming,56033,16,0 +2020-04-23,Sheridan,Wyoming,56033,16,0 +2020-04-24,Sheridan,Wyoming,56033,16,0 +2020-04-25,Sheridan,Wyoming,56033,16,0 +2020-04-26,Sheridan,Wyoming,56033,16,0 +2020-04-27,Sheridan,Wyoming,56033,16,0 +2020-04-28,Sheridan,Wyoming,56033,16,0 +2020-04-29,Sheridan,Wyoming,56033,16,0 +2020-04-30,Sheridan,Wyoming,56033,16,0 +2020-05-01,Sheridan,Wyoming,56033,16,0 +2020-05-02,Sheridan,Wyoming,56033,16,0 +2020-05-03,Sheridan,Wyoming,56033,16,0 +2020-05-04,Sheridan,Wyoming,56033,16,0 +2020-05-05,Sheridan,Wyoming,56033,16,0 +2020-05-06,Sheridan,Wyoming,56033,16,0 +2020-05-07,Sheridan,Wyoming,56033,16,0 +2020-05-08,Sheridan,Wyoming,56033,16,0 +2020-05-09,Sheridan,Wyoming,56033,16,0 +2020-05-10,Sheridan,Wyoming,56033,16,0 +2020-05-11,Sheridan,Wyoming,56033,16,0 +2020-05-12,Sheridan,Wyoming,56033,16,0 +2020-05-13,Sheridan,Wyoming,56033,16,0 +2020-05-14,Sheridan,Wyoming,56033,16,0 +2020-05-15,Sheridan,Wyoming,56033,16,0 +2020-05-16,Sheridan,Wyoming,56033,16,0 +2020-05-17,Sheridan,Wyoming,56033,16,0 +2020-05-18,Sheridan,Wyoming,56033,16,0 +2020-05-19,Sheridan,Wyoming,56033,16,0 +2020-05-20,Sheridan,Wyoming,56033,16,0 +2020-05-21,Sheridan,Wyoming,56033,16,0 +2020-05-22,Sheridan,Wyoming,56033,16,0 +2020-05-23,Sheridan,Wyoming,56033,16,0 +2020-05-24,Sheridan,Wyoming,56033,16,0 +2020-05-25,Sheridan,Wyoming,56033,16,0 +2020-05-26,Sheridan,Wyoming,56033,16,0 +2020-05-27,Sheridan,Wyoming,56033,16,0 +2020-05-28,Sheridan,Wyoming,56033,16,0 +2020-05-29,Sheridan,Wyoming,56033,16,0 +2020-05-30,Sheridan,Wyoming,56033,16,0 +2020-05-31,Sheridan,Wyoming,56033,16,0 +2020-06-01,Sheridan,Wyoming,56033,16,0 +2020-06-02,Sheridan,Wyoming,56033,16,0 +2020-06-03,Sheridan,Wyoming,56033,16,0 +2020-06-04,Sheridan,Wyoming,56033,16,0 +2020-06-05,Sheridan,Wyoming,56033,16,0 +2020-06-06,Sheridan,Wyoming,56033,16,0 +2020-06-07,Sheridan,Wyoming,56033,18,0 +2020-06-08,Sheridan,Wyoming,56033,18,0 +2020-06-09,Sheridan,Wyoming,56033,18,0 +2020-06-10,Sheridan,Wyoming,56033,19,0 +2020-06-11,Sheridan,Wyoming,56033,19,0 +2020-06-12,Sheridan,Wyoming,56033,19,0 +2020-06-13,Sheridan,Wyoming,56033,19,0 +2020-06-14,Sheridan,Wyoming,56033,19,0 +2020-06-15,Sheridan,Wyoming,56033,19,0 +2020-06-16,Sheridan,Wyoming,56033,19,0 +2020-06-17,Sheridan,Wyoming,56033,19,0 +2020-06-18,Sheridan,Wyoming,56033,19,0 +2020-06-19,Sheridan,Wyoming,56033,19,0 +2020-06-20,Sheridan,Wyoming,56033,19,0 +2020-06-21,Sheridan,Wyoming,56033,19,0 +2020-06-22,Sheridan,Wyoming,56033,19,0 +2020-06-23,Sheridan,Wyoming,56033,19,0 +2020-06-24,Sheridan,Wyoming,56033,19,0 +2020-06-25,Sheridan,Wyoming,56033,22,0 +2020-06-26,Sheridan,Wyoming,56033,24,0 +2020-06-27,Sheridan,Wyoming,56033,24,0 +2020-06-28,Sheridan,Wyoming,56033,26,0 +2020-06-29,Sheridan,Wyoming,56033,26,0 +2020-06-30,Sheridan,Wyoming,56033,27,0 +2020-07-01,Sheridan,Wyoming,56033,27,0 +2020-07-02,Sheridan,Wyoming,56033,27,0 +2020-07-03,Sheridan,Wyoming,56033,27,0 +2020-07-04,Sheridan,Wyoming,56033,27,0 +2020-07-05,Sheridan,Wyoming,56033,27,0 +2020-07-06,Sheridan,Wyoming,56033,27,0 +2020-07-07,Sheridan,Wyoming,56033,27,0 +2020-07-08,Sheridan,Wyoming,56033,27,0 +2020-07-09,Sheridan,Wyoming,56033,27,0 +2020-03-28,Sublette,Wyoming,56035,1,0 +2020-03-29,Sublette,Wyoming,56035,1,0 +2020-03-30,Sublette,Wyoming,56035,1,0 +2020-03-31,Sublette,Wyoming,56035,1,0 +2020-04-01,Sublette,Wyoming,56035,1,0 +2020-04-02,Sublette,Wyoming,56035,1,0 +2020-04-03,Sublette,Wyoming,56035,1,0 +2020-04-04,Sublette,Wyoming,56035,1,0 +2020-04-05,Sublette,Wyoming,56035,1,0 +2020-04-06,Sublette,Wyoming,56035,1,0 +2020-04-07,Sublette,Wyoming,56035,1,0 +2020-04-08,Sublette,Wyoming,56035,1,0 +2020-04-09,Sublette,Wyoming,56035,2,0 +2020-04-10,Sublette,Wyoming,56035,3,0 +2020-04-11,Sublette,Wyoming,56035,3,0 +2020-04-12,Sublette,Wyoming,56035,3,0 +2020-04-13,Sublette,Wyoming,56035,3,0 +2020-04-14,Sublette,Wyoming,56035,3,0 +2020-04-15,Sublette,Wyoming,56035,3,0 +2020-04-16,Sublette,Wyoming,56035,3,0 +2020-04-17,Sublette,Wyoming,56035,3,0 +2020-04-18,Sublette,Wyoming,56035,3,0 +2020-04-19,Sublette,Wyoming,56035,3,0 +2020-04-20,Sublette,Wyoming,56035,3,0 +2020-04-21,Sublette,Wyoming,56035,3,0 +2020-04-22,Sublette,Wyoming,56035,3,0 +2020-04-23,Sublette,Wyoming,56035,3,0 +2020-04-24,Sublette,Wyoming,56035,3,0 +2020-04-25,Sublette,Wyoming,56035,3,0 +2020-04-26,Sublette,Wyoming,56035,3,0 +2020-04-27,Sublette,Wyoming,56035,3,0 +2020-04-28,Sublette,Wyoming,56035,3,0 +2020-04-29,Sublette,Wyoming,56035,3,0 +2020-04-30,Sublette,Wyoming,56035,3,0 +2020-05-01,Sublette,Wyoming,56035,3,0 +2020-05-02,Sublette,Wyoming,56035,3,0 +2020-05-03,Sublette,Wyoming,56035,3,0 +2020-05-04,Sublette,Wyoming,56035,3,0 +2020-05-05,Sublette,Wyoming,56035,3,0 +2020-05-06,Sublette,Wyoming,56035,3,0 +2020-05-07,Sublette,Wyoming,56035,3,0 +2020-05-08,Sublette,Wyoming,56035,3,0 +2020-05-09,Sublette,Wyoming,56035,3,0 +2020-05-10,Sublette,Wyoming,56035,3,0 +2020-05-11,Sublette,Wyoming,56035,3,0 +2020-05-12,Sublette,Wyoming,56035,3,0 +2020-05-13,Sublette,Wyoming,56035,3,0 +2020-05-14,Sublette,Wyoming,56035,3,0 +2020-05-15,Sublette,Wyoming,56035,3,0 +2020-05-16,Sublette,Wyoming,56035,3,0 +2020-05-17,Sublette,Wyoming,56035,3,0 +2020-05-18,Sublette,Wyoming,56035,3,0 +2020-05-19,Sublette,Wyoming,56035,3,0 +2020-05-20,Sublette,Wyoming,56035,3,0 +2020-05-21,Sublette,Wyoming,56035,3,0 +2020-05-22,Sublette,Wyoming,56035,3,0 +2020-05-23,Sublette,Wyoming,56035,3,0 +2020-05-24,Sublette,Wyoming,56035,3,0 +2020-05-25,Sublette,Wyoming,56035,3,0 +2020-05-26,Sublette,Wyoming,56035,3,0 +2020-05-27,Sublette,Wyoming,56035,3,0 +2020-05-28,Sublette,Wyoming,56035,3,0 +2020-05-29,Sublette,Wyoming,56035,3,0 +2020-05-30,Sublette,Wyoming,56035,3,0 +2020-05-31,Sublette,Wyoming,56035,3,0 +2020-06-01,Sublette,Wyoming,56035,3,0 +2020-06-02,Sublette,Wyoming,56035,3,0 +2020-06-03,Sublette,Wyoming,56035,3,0 +2020-06-04,Sublette,Wyoming,56035,3,0 +2020-06-05,Sublette,Wyoming,56035,3,0 +2020-06-06,Sublette,Wyoming,56035,3,0 +2020-06-07,Sublette,Wyoming,56035,3,0 +2020-06-08,Sublette,Wyoming,56035,3,0 +2020-06-09,Sublette,Wyoming,56035,3,0 +2020-06-10,Sublette,Wyoming,56035,3,0 +2020-06-11,Sublette,Wyoming,56035,3,0 +2020-06-12,Sublette,Wyoming,56035,3,0 +2020-06-13,Sublette,Wyoming,56035,3,0 +2020-06-14,Sublette,Wyoming,56035,3,0 +2020-06-15,Sublette,Wyoming,56035,3,0 +2020-06-16,Sublette,Wyoming,56035,3,0 +2020-06-17,Sublette,Wyoming,56035,3,0 +2020-06-18,Sublette,Wyoming,56035,4,0 +2020-06-19,Sublette,Wyoming,56035,4,0 +2020-06-20,Sublette,Wyoming,56035,4,0 +2020-06-21,Sublette,Wyoming,56035,4,0 +2020-06-22,Sublette,Wyoming,56035,5,0 +2020-06-23,Sublette,Wyoming,56035,5,0 +2020-06-24,Sublette,Wyoming,56035,5,0 +2020-06-25,Sublette,Wyoming,56035,5,0 +2020-06-26,Sublette,Wyoming,56035,5,0 +2020-06-27,Sublette,Wyoming,56035,6,0 +2020-06-28,Sublette,Wyoming,56035,6,0 +2020-06-29,Sublette,Wyoming,56035,6,0 +2020-06-30,Sublette,Wyoming,56035,6,0 +2020-07-01,Sublette,Wyoming,56035,6,0 +2020-07-02,Sublette,Wyoming,56035,6,0 +2020-07-03,Sublette,Wyoming,56035,6,0 +2020-07-04,Sublette,Wyoming,56035,6,0 +2020-07-05,Sublette,Wyoming,56035,6,0 +2020-07-06,Sublette,Wyoming,56035,6,0 +2020-07-07,Sublette,Wyoming,56035,6,0 +2020-07-08,Sublette,Wyoming,56035,6,0 +2020-07-09,Sublette,Wyoming,56035,6,0 +2020-03-24,Sweetwater,Wyoming,56037,1,0 +2020-03-25,Sweetwater,Wyoming,56037,1,0 +2020-03-26,Sweetwater,Wyoming,56037,1,0 +2020-03-27,Sweetwater,Wyoming,56037,1,0 +2020-03-28,Sweetwater,Wyoming,56037,1,0 +2020-03-29,Sweetwater,Wyoming,56037,1,0 +2020-03-30,Sweetwater,Wyoming,56037,2,0 +2020-03-31,Sweetwater,Wyoming,56037,2,0 +2020-04-01,Sweetwater,Wyoming,56037,3,0 +2020-04-02,Sweetwater,Wyoming,56037,3,0 +2020-04-03,Sweetwater,Wyoming,56037,3,0 +2020-04-04,Sweetwater,Wyoming,56037,4,0 +2020-04-05,Sweetwater,Wyoming,56037,5,0 +2020-04-06,Sweetwater,Wyoming,56037,5,0 +2020-04-07,Sweetwater,Wyoming,56037,6,0 +2020-04-08,Sweetwater,Wyoming,56037,5,0 +2020-04-09,Sweetwater,Wyoming,56037,9,0 +2020-04-10,Sweetwater,Wyoming,56037,9,0 +2020-04-11,Sweetwater,Wyoming,56037,10,0 +2020-04-12,Sweetwater,Wyoming,56037,11,0 +2020-04-13,Sweetwater,Wyoming,56037,13,0 +2020-04-14,Sweetwater,Wyoming,56037,13,0 +2020-04-15,Sweetwater,Wyoming,56037,14,0 +2020-04-16,Sweetwater,Wyoming,56037,14,0 +2020-04-17,Sweetwater,Wyoming,56037,14,0 +2020-04-18,Sweetwater,Wyoming,56037,15,0 +2020-04-19,Sweetwater,Wyoming,56037,16,0 +2020-04-20,Sweetwater,Wyoming,56037,16,0 +2020-04-21,Sweetwater,Wyoming,56037,16,0 +2020-04-22,Sweetwater,Wyoming,56037,16,0 +2020-04-23,Sweetwater,Wyoming,56037,16,0 +2020-04-24,Sweetwater,Wyoming,56037,16,0 +2020-04-25,Sweetwater,Wyoming,56037,16,0 +2020-04-26,Sweetwater,Wyoming,56037,16,0 +2020-04-27,Sweetwater,Wyoming,56037,16,0 +2020-04-28,Sweetwater,Wyoming,56037,16,0 +2020-04-29,Sweetwater,Wyoming,56037,17,0 +2020-04-30,Sweetwater,Wyoming,56037,18,0 +2020-05-01,Sweetwater,Wyoming,56037,18,0 +2020-05-02,Sweetwater,Wyoming,56037,18,0 +2020-05-03,Sweetwater,Wyoming,56037,18,0 +2020-05-04,Sweetwater,Wyoming,56037,18,0 +2020-05-05,Sweetwater,Wyoming,56037,18,0 +2020-05-06,Sweetwater,Wyoming,56037,19,0 +2020-05-07,Sweetwater,Wyoming,56037,19,0 +2020-05-08,Sweetwater,Wyoming,56037,19,0 +2020-05-09,Sweetwater,Wyoming,56037,19,0 +2020-05-10,Sweetwater,Wyoming,56037,19,0 +2020-05-11,Sweetwater,Wyoming,56037,20,0 +2020-05-12,Sweetwater,Wyoming,56037,20,0 +2020-05-13,Sweetwater,Wyoming,56037,20,0 +2020-05-14,Sweetwater,Wyoming,56037,21,0 +2020-05-15,Sweetwater,Wyoming,56037,22,0 +2020-05-16,Sweetwater,Wyoming,56037,23,0 +2020-05-17,Sweetwater,Wyoming,56037,23,0 +2020-05-18,Sweetwater,Wyoming,56037,23,0 +2020-05-19,Sweetwater,Wyoming,56037,24,0 +2020-05-20,Sweetwater,Wyoming,56037,25,0 +2020-05-21,Sweetwater,Wyoming,56037,25,0 +2020-05-22,Sweetwater,Wyoming,56037,25,0 +2020-05-23,Sweetwater,Wyoming,56037,25,0 +2020-05-24,Sweetwater,Wyoming,56037,25,0 +2020-05-25,Sweetwater,Wyoming,56037,25,0 +2020-05-26,Sweetwater,Wyoming,56037,25,0 +2020-05-27,Sweetwater,Wyoming,56037,25,0 +2020-05-28,Sweetwater,Wyoming,56037,26,0 +2020-05-29,Sweetwater,Wyoming,56037,26,0 +2020-05-30,Sweetwater,Wyoming,56037,27,0 +2020-05-31,Sweetwater,Wyoming,56037,30,0 +2020-06-01,Sweetwater,Wyoming,56037,30,0 +2020-06-02,Sweetwater,Wyoming,56037,30,0 +2020-06-03,Sweetwater,Wyoming,56037,31,0 +2020-06-04,Sweetwater,Wyoming,56037,32,0 +2020-06-05,Sweetwater,Wyoming,56037,32,0 +2020-06-06,Sweetwater,Wyoming,56037,32,0 +2020-06-07,Sweetwater,Wyoming,56037,32,0 +2020-06-08,Sweetwater,Wyoming,56037,33,0 +2020-06-09,Sweetwater,Wyoming,56037,34,0 +2020-06-10,Sweetwater,Wyoming,56037,35,0 +2020-06-11,Sweetwater,Wyoming,56037,36,0 +2020-06-12,Sweetwater,Wyoming,56037,38,0 +2020-06-13,Sweetwater,Wyoming,56037,40,0 +2020-06-14,Sweetwater,Wyoming,56037,40,0 +2020-06-15,Sweetwater,Wyoming,56037,40,0 +2020-06-16,Sweetwater,Wyoming,56037,40,0 +2020-06-17,Sweetwater,Wyoming,56037,43,0 +2020-06-18,Sweetwater,Wyoming,56037,44,0 +2020-06-19,Sweetwater,Wyoming,56037,48,0 +2020-06-20,Sweetwater,Wyoming,56037,49,0 +2020-06-21,Sweetwater,Wyoming,56037,53,0 +2020-06-22,Sweetwater,Wyoming,56037,56,0 +2020-06-23,Sweetwater,Wyoming,56037,58,0 +2020-06-24,Sweetwater,Wyoming,56037,65,0 +2020-06-25,Sweetwater,Wyoming,56037,73,0 +2020-06-26,Sweetwater,Wyoming,56037,80,0 +2020-06-27,Sweetwater,Wyoming,56037,81,0 +2020-06-28,Sweetwater,Wyoming,56037,82,0 +2020-06-29,Sweetwater,Wyoming,56037,86,0 +2020-06-30,Sweetwater,Wyoming,56037,90,0 +2020-07-01,Sweetwater,Wyoming,56037,89,0 +2020-07-02,Sweetwater,Wyoming,56037,92,0 +2020-07-03,Sweetwater,Wyoming,56037,100,0 +2020-07-04,Sweetwater,Wyoming,56037,102,0 +2020-07-05,Sweetwater,Wyoming,56037,106,0 +2020-07-06,Sweetwater,Wyoming,56037,113,0 +2020-07-07,Sweetwater,Wyoming,56037,122,0 +2020-07-08,Sweetwater,Wyoming,56037,124,0 +2020-07-09,Sweetwater,Wyoming,56037,126,0 +2020-03-18,Teton,Wyoming,56039,1,0 +2020-03-19,Teton,Wyoming,56039,1,0 +2020-03-20,Teton,Wyoming,56039,2,0 +2020-03-21,Teton,Wyoming,56039,2,0 +2020-03-22,Teton,Wyoming,56039,2,0 +2020-03-23,Teton,Wyoming,56039,2,0 +2020-03-24,Teton,Wyoming,56039,3,0 +2020-03-25,Teton,Wyoming,56039,6,0 +2020-03-26,Teton,Wyoming,56039,8,0 +2020-03-27,Teton,Wyoming,56039,12,0 +2020-03-28,Teton,Wyoming,56039,14,0 +2020-03-29,Teton,Wyoming,56039,14,0 +2020-03-30,Teton,Wyoming,56039,17,0 +2020-03-31,Teton,Wyoming,56039,23,0 +2020-04-01,Teton,Wyoming,56039,26,0 +2020-04-02,Teton,Wyoming,56039,29,0 +2020-04-03,Teton,Wyoming,56039,32,0 +2020-04-04,Teton,Wyoming,56039,36,0 +2020-04-05,Teton,Wyoming,56039,39,0 +2020-04-06,Teton,Wyoming,56039,40,0 +2020-04-07,Teton,Wyoming,56039,44,0 +2020-04-08,Teton,Wyoming,56039,39,0 +2020-04-09,Teton,Wyoming,56039,59,0 +2020-04-10,Teton,Wyoming,56039,66,0 +2020-04-11,Teton,Wyoming,56039,72,0 +2020-04-12,Teton,Wyoming,56039,79,0 +2020-04-13,Teton,Wyoming,56039,82,0 +2020-04-14,Teton,Wyoming,56039,82,0 +2020-04-15,Teton,Wyoming,56039,86,0 +2020-04-16,Teton,Wyoming,56039,87,0 +2020-04-17,Teton,Wyoming,56039,87,0 +2020-04-18,Teton,Wyoming,56039,89,0 +2020-04-19,Teton,Wyoming,56039,90,0 +2020-04-20,Teton,Wyoming,56039,89,0 +2020-04-21,Teton,Wyoming,56039,92,0 +2020-04-22,Teton,Wyoming,56039,93,0 +2020-04-23,Teton,Wyoming,56039,93,1 +2020-04-24,Teton,Wyoming,56039,95,1 +2020-04-25,Teton,Wyoming,56039,95,1 +2020-04-26,Teton,Wyoming,56039,95,1 +2020-04-27,Teton,Wyoming,56039,95,1 +2020-04-28,Teton,Wyoming,56039,96,1 +2020-04-29,Teton,Wyoming,56039,95,1 +2020-04-30,Teton,Wyoming,56039,96,1 +2020-05-01,Teton,Wyoming,56039,96,1 +2020-05-02,Teton,Wyoming,56039,97,1 +2020-05-03,Teton,Wyoming,56039,98,1 +2020-05-04,Teton,Wyoming,56039,98,1 +2020-05-05,Teton,Wyoming,56039,98,1 +2020-05-06,Teton,Wyoming,56039,98,1 +2020-05-07,Teton,Wyoming,56039,98,1 +2020-05-08,Teton,Wyoming,56039,98,1 +2020-05-09,Teton,Wyoming,56039,98,1 +2020-05-10,Teton,Wyoming,56039,98,1 +2020-05-11,Teton,Wyoming,56039,98,1 +2020-05-12,Teton,Wyoming,56039,98,1 +2020-05-13,Teton,Wyoming,56039,99,1 +2020-05-14,Teton,Wyoming,56039,99,1 +2020-05-15,Teton,Wyoming,56039,99,1 +2020-05-16,Teton,Wyoming,56039,100,1 +2020-05-17,Teton,Wyoming,56039,100,1 +2020-05-18,Teton,Wyoming,56039,100,1 +2020-05-19,Teton,Wyoming,56039,100,1 +2020-05-20,Teton,Wyoming,56039,100,1 +2020-05-21,Teton,Wyoming,56039,100,1 +2020-05-22,Teton,Wyoming,56039,100,1 +2020-05-23,Teton,Wyoming,56039,100,1 +2020-05-24,Teton,Wyoming,56039,100,1 +2020-05-25,Teton,Wyoming,56039,100,1 +2020-05-26,Teton,Wyoming,56039,100,1 +2020-05-27,Teton,Wyoming,56039,100,1 +2020-05-28,Teton,Wyoming,56039,100,1 +2020-05-29,Teton,Wyoming,56039,100,1 +2020-05-30,Teton,Wyoming,56039,100,1 +2020-05-31,Teton,Wyoming,56039,100,1 +2020-06-01,Teton,Wyoming,56039,100,1 +2020-06-02,Teton,Wyoming,56039,100,1 +2020-06-03,Teton,Wyoming,56039,100,1 +2020-06-04,Teton,Wyoming,56039,100,1 +2020-06-05,Teton,Wyoming,56039,100,1 +2020-06-06,Teton,Wyoming,56039,100,1 +2020-06-07,Teton,Wyoming,56039,100,1 +2020-06-08,Teton,Wyoming,56039,100,1 +2020-06-09,Teton,Wyoming,56039,100,1 +2020-06-10,Teton,Wyoming,56039,101,1 +2020-06-11,Teton,Wyoming,56039,102,1 +2020-06-12,Teton,Wyoming,56039,104,1 +2020-06-13,Teton,Wyoming,56039,104,1 +2020-06-14,Teton,Wyoming,56039,105,1 +2020-06-15,Teton,Wyoming,56039,105,1 +2020-06-16,Teton,Wyoming,56039,105,1 +2020-06-17,Teton,Wyoming,56039,107,1 +2020-06-18,Teton,Wyoming,56039,108,1 +2020-06-19,Teton,Wyoming,56039,109,1 +2020-06-20,Teton,Wyoming,56039,109,1 +2020-06-21,Teton,Wyoming,56039,110,1 +2020-06-22,Teton,Wyoming,56039,111,1 +2020-06-23,Teton,Wyoming,56039,113,1 +2020-06-24,Teton,Wyoming,56039,113,1 +2020-06-25,Teton,Wyoming,56039,118,1 +2020-06-26,Teton,Wyoming,56039,119,1 +2020-06-27,Teton,Wyoming,56039,119,1 +2020-06-28,Teton,Wyoming,56039,123,1 +2020-06-29,Teton,Wyoming,56039,128,1 +2020-06-30,Teton,Wyoming,56039,129,1 +2020-07-01,Teton,Wyoming,56039,131,1 +2020-07-02,Teton,Wyoming,56039,136,1 +2020-07-03,Teton,Wyoming,56039,135,1 +2020-07-04,Teton,Wyoming,56039,137,1 +2020-07-05,Teton,Wyoming,56039,140,1 +2020-07-06,Teton,Wyoming,56039,145,1 +2020-07-07,Teton,Wyoming,56039,146,1 +2020-07-08,Teton,Wyoming,56039,149,1 +2020-07-09,Teton,Wyoming,56039,149,1 +2020-04-02,Uinta,Wyoming,56041,1,0 +2020-04-03,Uinta,Wyoming,56041,1,0 +2020-04-04,Uinta,Wyoming,56041,2,0 +2020-04-05,Uinta,Wyoming,56041,2,0 +2020-04-06,Uinta,Wyoming,56041,3,0 +2020-04-07,Uinta,Wyoming,56041,3,0 +2020-04-08,Uinta,Wyoming,56041,2,0 +2020-04-09,Uinta,Wyoming,56041,3,0 +2020-04-10,Uinta,Wyoming,56041,4,0 +2020-04-11,Uinta,Wyoming,56041,4,0 +2020-04-12,Uinta,Wyoming,56041,4,0 +2020-04-13,Uinta,Wyoming,56041,4,0 +2020-04-14,Uinta,Wyoming,56041,4,0 +2020-04-15,Uinta,Wyoming,56041,4,0 +2020-04-16,Uinta,Wyoming,56041,4,0 +2020-04-17,Uinta,Wyoming,56041,4,0 +2020-04-18,Uinta,Wyoming,56041,6,0 +2020-04-19,Uinta,Wyoming,56041,6,0 +2020-04-20,Uinta,Wyoming,56041,6,0 +2020-04-21,Uinta,Wyoming,56041,7,0 +2020-04-22,Uinta,Wyoming,56041,7,0 +2020-04-23,Uinta,Wyoming,56041,7,0 +2020-04-24,Uinta,Wyoming,56041,7,0 +2020-04-25,Uinta,Wyoming,56041,7,0 +2020-04-26,Uinta,Wyoming,56041,7,0 +2020-04-27,Uinta,Wyoming,56041,7,0 +2020-04-28,Uinta,Wyoming,56041,8,0 +2020-04-29,Uinta,Wyoming,56041,8,0 +2020-04-30,Uinta,Wyoming,56041,8,0 +2020-05-01,Uinta,Wyoming,56041,8,0 +2020-05-02,Uinta,Wyoming,56041,8,0 +2020-05-03,Uinta,Wyoming,56041,8,0 +2020-05-04,Uinta,Wyoming,56041,8,0 +2020-05-05,Uinta,Wyoming,56041,8,0 +2020-05-06,Uinta,Wyoming,56041,8,0 +2020-05-07,Uinta,Wyoming,56041,8,0 +2020-05-08,Uinta,Wyoming,56041,9,0 +2020-05-09,Uinta,Wyoming,56041,9,0 +2020-05-10,Uinta,Wyoming,56041,9,0 +2020-05-11,Uinta,Wyoming,56041,9,0 +2020-05-12,Uinta,Wyoming,56041,9,0 +2020-05-13,Uinta,Wyoming,56041,9,0 +2020-05-14,Uinta,Wyoming,56041,9,0 +2020-05-15,Uinta,Wyoming,56041,9,0 +2020-05-16,Uinta,Wyoming,56041,10,0 +2020-05-17,Uinta,Wyoming,56041,10,0 +2020-05-18,Uinta,Wyoming,56041,12,0 +2020-05-19,Uinta,Wyoming,56041,11,0 +2020-05-20,Uinta,Wyoming,56041,11,0 +2020-05-21,Uinta,Wyoming,56041,13,0 +2020-05-22,Uinta,Wyoming,56041,13,0 +2020-05-23,Uinta,Wyoming,56041,12,0 +2020-05-24,Uinta,Wyoming,56041,12,0 +2020-05-25,Uinta,Wyoming,56041,12,0 +2020-05-26,Uinta,Wyoming,56041,12,0 +2020-05-27,Uinta,Wyoming,56041,12,0 +2020-05-28,Uinta,Wyoming,56041,12,0 +2020-05-29,Uinta,Wyoming,56041,12,0 +2020-05-30,Uinta,Wyoming,56041,12,0 +2020-05-31,Uinta,Wyoming,56041,12,0 +2020-06-01,Uinta,Wyoming,56041,12,0 +2020-06-02,Uinta,Wyoming,56041,13,0 +2020-06-03,Uinta,Wyoming,56041,13,0 +2020-06-04,Uinta,Wyoming,56041,13,0 +2020-06-05,Uinta,Wyoming,56041,19,0 +2020-06-06,Uinta,Wyoming,56041,19,0 +2020-06-07,Uinta,Wyoming,56041,23,0 +2020-06-08,Uinta,Wyoming,56041,25,0 +2020-06-09,Uinta,Wyoming,56041,35,0 +2020-06-10,Uinta,Wyoming,56041,39,0 +2020-06-11,Uinta,Wyoming,56041,53,0 +2020-06-12,Uinta,Wyoming,56041,62,0 +2020-06-13,Uinta,Wyoming,56041,71,0 +2020-06-14,Uinta,Wyoming,56041,73,0 +2020-06-15,Uinta,Wyoming,56041,88,0 +2020-06-16,Uinta,Wyoming,56041,91,0 +2020-06-17,Uinta,Wyoming,56041,104,0 +2020-06-18,Uinta,Wyoming,56041,116,0 +2020-06-19,Uinta,Wyoming,56041,128,0 +2020-06-20,Uinta,Wyoming,56041,130,0 +2020-06-21,Uinta,Wyoming,56041,138,0 +2020-06-22,Uinta,Wyoming,56041,148,0 +2020-06-23,Uinta,Wyoming,56041,152,0 +2020-06-24,Uinta,Wyoming,56041,157,0 +2020-06-25,Uinta,Wyoming,56041,162,0 +2020-06-26,Uinta,Wyoming,56041,166,0 +2020-06-27,Uinta,Wyoming,56041,167,0 +2020-06-28,Uinta,Wyoming,56041,168,0 +2020-06-29,Uinta,Wyoming,56041,174,0 +2020-06-30,Uinta,Wyoming,56041,176,0 +2020-07-01,Uinta,Wyoming,56041,177,0 +2020-07-02,Uinta,Wyoming,56041,180,0 +2020-07-03,Uinta,Wyoming,56041,182,0 +2020-07-04,Uinta,Wyoming,56041,183,0 +2020-07-05,Uinta,Wyoming,56041,184,0 +2020-07-06,Uinta,Wyoming,56041,190,0 +2020-07-07,Uinta,Wyoming,56041,190,0 +2020-07-08,Uinta,Wyoming,56041,192,0 +2020-07-09,Uinta,Wyoming,56041,198,0 +2020-03-27,Washakie,Wyoming,56043,1,0 +2020-03-28,Washakie,Wyoming,56043,1,0 +2020-03-29,Washakie,Wyoming,56043,1,0 +2020-03-30,Washakie,Wyoming,56043,1,0 +2020-03-31,Washakie,Wyoming,56043,1,0 +2020-04-01,Washakie,Wyoming,56043,1,0 +2020-04-02,Washakie,Wyoming,56043,2,0 +2020-04-03,Washakie,Wyoming,56043,2,0 +2020-04-04,Washakie,Wyoming,56043,2,0 +2020-04-05,Washakie,Wyoming,56043,4,0 +2020-04-06,Washakie,Wyoming,56043,4,0 +2020-04-07,Washakie,Wyoming,56043,4,0 +2020-04-08,Washakie,Wyoming,56043,4,0 +2020-04-09,Washakie,Wyoming,56043,7,0 +2020-04-10,Washakie,Wyoming,56043,7,0 +2020-04-11,Washakie,Wyoming,56043,7,0 +2020-04-12,Washakie,Wyoming,56043,7,0 +2020-04-13,Washakie,Wyoming,56043,7,0 +2020-04-14,Washakie,Wyoming,56043,7,0 +2020-04-15,Washakie,Wyoming,56043,7,0 +2020-04-16,Washakie,Wyoming,56043,7,0 +2020-04-17,Washakie,Wyoming,56043,7,0 +2020-04-18,Washakie,Wyoming,56043,7,0 +2020-04-19,Washakie,Wyoming,56043,7,0 +2020-04-20,Washakie,Wyoming,56043,7,0 +2020-04-21,Washakie,Wyoming,56043,7,0 +2020-04-22,Washakie,Wyoming,56043,7,0 +2020-04-23,Washakie,Wyoming,56043,7,0 +2020-04-24,Washakie,Wyoming,56043,7,0 +2020-04-25,Washakie,Wyoming,56043,7,0 +2020-04-26,Washakie,Wyoming,56043,7,0 +2020-04-27,Washakie,Wyoming,56043,7,0 +2020-04-28,Washakie,Wyoming,56043,7,0 +2020-04-29,Washakie,Wyoming,56043,7,0 +2020-04-30,Washakie,Wyoming,56043,7,0 +2020-05-01,Washakie,Wyoming,56043,7,0 +2020-05-02,Washakie,Wyoming,56043,7,0 +2020-05-03,Washakie,Wyoming,56043,7,0 +2020-05-04,Washakie,Wyoming,56043,7,0 +2020-05-05,Washakie,Wyoming,56043,7,0 +2020-05-06,Washakie,Wyoming,56043,7,0 +2020-05-07,Washakie,Wyoming,56043,7,0 +2020-05-08,Washakie,Wyoming,56043,7,0 +2020-05-09,Washakie,Wyoming,56043,7,0 +2020-05-10,Washakie,Wyoming,56043,7,0 +2020-05-11,Washakie,Wyoming,56043,7,0 +2020-05-12,Washakie,Wyoming,56043,7,0 +2020-05-13,Washakie,Wyoming,56043,7,0 +2020-05-14,Washakie,Wyoming,56043,7,0 +2020-05-15,Washakie,Wyoming,56043,8,0 +2020-05-16,Washakie,Wyoming,56043,8,0 +2020-05-17,Washakie,Wyoming,56043,15,0 +2020-05-18,Washakie,Wyoming,56043,15,0 +2020-05-19,Washakie,Wyoming,56043,15,0 +2020-05-20,Washakie,Wyoming,56043,15,0 +2020-05-21,Washakie,Wyoming,56043,19,1 +2020-05-22,Washakie,Wyoming,56043,19,1 +2020-05-23,Washakie,Wyoming,56043,20,1 +2020-05-24,Washakie,Wyoming,56043,20,1 +2020-05-25,Washakie,Wyoming,56043,30,1 +2020-05-26,Washakie,Wyoming,56043,32,2 +2020-05-27,Washakie,Wyoming,56043,32,3 +2020-05-28,Washakie,Wyoming,56043,34,3 +2020-05-29,Washakie,Wyoming,56043,34,3 +2020-05-30,Washakie,Wyoming,56043,36,3 +2020-05-31,Washakie,Wyoming,56043,35,3 +2020-06-01,Washakie,Wyoming,56043,36,3 +2020-06-02,Washakie,Wyoming,56043,36,3 +2020-06-03,Washakie,Wyoming,56043,36,3 +2020-06-04,Washakie,Wyoming,56043,38,3 +2020-06-05,Washakie,Wyoming,56043,38,3 +2020-06-06,Washakie,Wyoming,56043,38,3 +2020-06-07,Washakie,Wyoming,56043,38,3 +2020-06-08,Washakie,Wyoming,56043,38,3 +2020-06-09,Washakie,Wyoming,56043,38,3 +2020-06-10,Washakie,Wyoming,56043,38,3 +2020-06-11,Washakie,Wyoming,56043,38,3 +2020-06-12,Washakie,Wyoming,56043,38,3 +2020-06-13,Washakie,Wyoming,56043,38,3 +2020-06-14,Washakie,Wyoming,56043,38,3 +2020-06-15,Washakie,Wyoming,56043,38,3 +2020-06-16,Washakie,Wyoming,56043,38,3 +2020-06-17,Washakie,Wyoming,56043,38,3 +2020-06-18,Washakie,Wyoming,56043,38,3 +2020-06-19,Washakie,Wyoming,56043,38,5 +2020-06-20,Washakie,Wyoming,56043,38,5 +2020-06-21,Washakie,Wyoming,56043,38,5 +2020-06-22,Washakie,Wyoming,56043,38,5 +2020-06-23,Washakie,Wyoming,56043,38,5 +2020-06-24,Washakie,Wyoming,56043,38,5 +2020-06-25,Washakie,Wyoming,56043,38,5 +2020-06-26,Washakie,Wyoming,56043,38,5 +2020-06-27,Washakie,Wyoming,56043,38,5 +2020-06-28,Washakie,Wyoming,56043,38,5 +2020-06-29,Washakie,Wyoming,56043,38,5 +2020-06-30,Washakie,Wyoming,56043,38,5 +2020-07-01,Washakie,Wyoming,56043,38,5 +2020-07-02,Washakie,Wyoming,56043,38,5 +2020-07-03,Washakie,Wyoming,56043,38,5 +2020-07-04,Washakie,Wyoming,56043,38,5 +2020-07-05,Washakie,Wyoming,56043,38,5 +2020-07-06,Washakie,Wyoming,56043,38,5 +2020-07-07,Washakie,Wyoming,56043,39,5 +2020-07-08,Washakie,Wyoming,56043,42,5 +2020-07-09,Washakie,Wyoming,56043,42,5 +2020-05-27,Weston,Wyoming,56045,1,0 +2020-05-28,Weston,Wyoming,56045,1,0 +2020-05-29,Weston,Wyoming,56045,1,0 +2020-05-30,Weston,Wyoming,56045,1,0 +2020-05-31,Weston,Wyoming,56045,1,0 +2020-06-01,Weston,Wyoming,56045,1,0 +2020-06-02,Weston,Wyoming,56045,1,0 +2020-06-03,Weston,Wyoming,56045,1,0 +2020-06-04,Weston,Wyoming,56045,1,0 +2020-06-05,Weston,Wyoming,56045,1,0 +2020-06-06,Weston,Wyoming,56045,1,0 +2020-06-07,Weston,Wyoming,56045,1,0 +2020-06-08,Weston,Wyoming,56045,1,0 +2020-06-09,Weston,Wyoming,56045,1,0 +2020-06-10,Weston,Wyoming,56045,1,0 +2020-06-11,Weston,Wyoming,56045,1,0 +2020-06-12,Weston,Wyoming,56045,1,0 +2020-06-13,Weston,Wyoming,56045,1,0 +2020-06-14,Weston,Wyoming,56045,1,0 +2020-06-15,Weston,Wyoming,56045,1,0 +2020-06-16,Weston,Wyoming,56045,1,0 +2020-06-17,Weston,Wyoming,56045,1,0 +2020-06-18,Weston,Wyoming,56045,1,0 +2020-06-19,Weston,Wyoming,56045,1,0 +2020-06-20,Weston,Wyoming,56045,1,0 +2020-06-21,Weston,Wyoming,56045,1,0 +2020-06-22,Weston,Wyoming,56045,1,0 +2020-06-23,Weston,Wyoming,56045,1,0 +2020-06-24,Weston,Wyoming,56045,1,0 +2020-06-25,Weston,Wyoming,56045,1,0 +2020-06-26,Weston,Wyoming,56045,1,0 +2020-06-27,Weston,Wyoming,56045,1,0 +2020-06-28,Weston,Wyoming,56045,1,0 +2020-06-29,Weston,Wyoming,56045,2,0 +2020-06-30,Weston,Wyoming,56045,2,0 +2020-07-01,Weston,Wyoming,56045,2,0 +2020-07-02,Weston,Wyoming,56045,2,0 +2020-07-03,Weston,Wyoming,56045,2,0 +2020-07-04,Weston,Wyoming,56045,2,0 +2020-07-05,Weston,Wyoming,56045,2,0 +2020-07-06,Weston,Wyoming,56045,1,0 +2020-07-07,Weston,Wyoming,56045,1,0 +2020-07-08,Weston,Wyoming,56045,1,0 +2020-07-09,Weston,Wyoming,56045,1,0 \ No newline at end of file From e7c2b0f6393d2d82f33aa71c7ce02e5ec471f199 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 22 Sep 2020 16:34:05 +0000 Subject: [PATCH 0807/3441] chore: release 1.120.0 (#747) :robot: I have created a release \*beep\* \*boop\* --- ## [1.120.0](https://www.github.com/googleapis/java-bigquery/compare/v1.119.0...v1.120.0) (2020-09-22) ### Features * sql fast path impl ([#509](https://www.github.com/googleapis/java-bigquery/issues/509)) ([64a7d65](https://www.github.com/googleapis/java-bigquery/commit/64a7d65ff97152c49194f507562266c1ba6f0f3b)), closes [google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java#L69-L71](https://www.github.com/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java/issues/L69-L71) [#L69](https://www.github.com/googleapis/java-bigquery/issues/L69) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 7 +++++++ README.md | 4 ++-- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 359b93c25c83..96f1ae413a9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.120.0](https://www.github.com/googleapis/java-bigquery/compare/v1.119.0...v1.120.0) (2020-09-22) + + +### Features + +* sql fast path impl ([#509](https://www.github.com/googleapis/java-bigquery/issues/509)) ([64a7d65](https://www.github.com/googleapis/java-bigquery/commit/64a7d65ff97152c49194f507562266c1ba6f0f3b)), closes [google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java#L69-L71](https://www.github.com/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java/issues/L69-L71) [#L69](https://www.github.com/googleapis/java-bigquery/issues/L69) + ## [1.119.0](https://www.github.com/googleapis/java-bigquery/compare/v1.118.0...v1.119.0) (2020-09-17) diff --git a/README.md b/README.md index 583de967a899..f663f5807bca 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.119.0' +compile 'com.google.cloud:google-cloud-bigquery:1.120.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.119.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.120.0" ``` [//]: # ({x-version-update-end}) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index eef41a0cbe9d..2c3361128296 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.119.1-SNAPSHOT + 1.120.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1acc7c26b68b..2c103c37cc70 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.119.1-SNAPSHOT + 1.120.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.119.1-SNAPSHOT + 1.120.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f2cdc4428a30..7b13417f89dc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.119.1-SNAPSHOT + 1.120.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.119.1-SNAPSHOT + 1.120.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0572539804fa..11ef844caa45 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.119.1-SNAPSHOT + 1.120.0 diff --git a/versions.txt b/versions.txt index 7e000e3adee7..6c57129b70ac 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.119.0:1.119.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.120.0:1.120.0 \ No newline at end of file From 8003928b218da4a43865ea6c1581307affa918a3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2020 08:14:02 +0000 Subject: [PATCH 0808/3441] chore: release 1.120.1-SNAPSHOT (#748) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2c3361128296..55e2ab73782e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.120.0 + 1.120.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2c103c37cc70..bbe0bfcfe729 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.120.0 + 1.120.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.120.0 + 1.120.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7b13417f89dc..c1d6f8176de3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.120.0 + 1.120.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.120.0 + 1.120.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 11ef844caa45..f7fdc2dd5849 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.120.0 + 1.120.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 6c57129b70ac..148de789ed42 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.120.0:1.120.0 \ No newline at end of file +google-cloud-bigquery:1.120.0:1.120.1-SNAPSHOT \ No newline at end of file From 84d6632dbbdb9ccaf4afba545ec94a1156a989a2 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 23 Sep 2020 18:14:16 +0530 Subject: [PATCH 0809/3441] feat: use bigquery exception (#749) --- .../src/main/java/com/google/cloud/bigquery/Job.java | 4 +--- .../test/java/com/google/cloud/bigquery/JobTest.java | 6 +++--- .../com/google/cloud/bigquery/it/ITBigQueryTest.java | 12 +++++------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index 1a8c27ccdbeb..181370d74876 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -403,9 +403,7 @@ public Job reload(JobOption... options) { checkNotDryRun("reload"); Job job = bigquery.getJob(getJobId(), options); if (job != null && job.getStatus().getError() != null) { - // TODO(pmakani): change to BigQueryException when fast query path change is merged - throw new JobException( - getJobId(), + throw new BigQueryException( job.getStatus().getExecutionErrors() == null ? ImmutableList.of(job.getStatus().getError()) : ImmutableList.copyOf(job.getStatus().getExecutionErrors())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index 370b5d6d1753..1f3cbe57ea12 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -447,12 +447,12 @@ public void testReloadJobException() { expectedJob = expectedJob.toBuilder().setStatus(new JobStatus(State.DONE, bigQueryError, null)).build(); ImmutableList bigQueryErrorList = ImmutableList.of(bigQueryError); - JobException jobException = new JobException(expectedJob.getJobId(), bigQueryErrorList); - when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(expectedJob).thenThrow(jobException); + BigQueryException bigQueryException = new BigQueryException(bigQueryErrorList); + when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(expectedJob).thenThrow(bigQueryException); try { job.reload(); fail("JobException expected"); - } catch (JobException e) { + } catch (BigQueryException e) { assertNotNull(e.getErrors()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 795e70fcadf0..a12bd59d2c73 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -65,7 +65,6 @@ import com.google.cloud.bigquery.InsertAllRequest; import com.google.cloud.bigquery.InsertAllResponse; import com.google.cloud.bigquery.Job; -import com.google.cloud.bigquery.JobException; import com.google.cloud.bigquery.JobId; import com.google.cloud.bigquery.JobInfo; import com.google.cloud.bigquery.JobStatistics; @@ -1493,12 +1492,11 @@ public void testMultipleStatementsQueryException() throws InterruptedException { try { bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor(); fail("JobException was expected"); - } catch (JobException e) { - for (BigQueryError error : e.getErrors()) { - assertNotNull(error); - assertEquals("invalidQuery", error.getReason()); - assertNotNull(error.getMessage()); - } + } catch (BigQueryException e) { + BigQueryError error = e.getError(); + assertNotNull(error); + assertEquals("invalidQuery", error.getReason()); + assertNotNull(error.getMessage()); } } From 2be88bc85240c384aa90854b748dd64f28a338be Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 23 Sep 2020 15:46:15 -0700 Subject: [PATCH 0810/3441] build(java): use yoshi-approver token for auto-approve (#751) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/0e2e6824-ef36-4bb7-b9c7-5e4ddf71d571/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/916c10e8581804df2b48a0f0457d848f3faa582e --- .github/workflows/auto-release.yaml | 4 ++-- synth.metadata | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index d26427e468a4..c8494910553a 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -7,7 +7,7 @@ jobs: steps: - uses: actions/github-script@v3.0.0 with: - github-token: ${{secrets.GITHUB_TOKEN}} + github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} debug: true script: | // only approve PRs from release-please[bot] @@ -66,4 +66,4 @@ jobs: repo: context.repo.repo, issue_number: context.payload.pull_request.number, labels: ['kokoro:force-run', 'automerge'] - }); \ No newline at end of file + }); diff --git a/synth.metadata b/synth.metadata index c314b7f946a1..8903d3c0ff9f 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "4c29f7a92933d3e03247802a6e967ce7fac5fa3d" + "sha": "84d6632dbbdb9ccaf4afba545ec94a1156a989a2" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "80003a3de2d8a75f5b47cb2e77e018f7f0f776cc" + "sha": "916c10e8581804df2b48a0f0457d848f3faa582e" } } ], From 7258adafb6fa6803290476520d654cb9a5e7b720 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 24 Sep 2020 21:01:03 +0530 Subject: [PATCH 0811/3441] chore: remove clir (#752) --- .../clirr-ignored-differences.xml | 40 ------------------- 1 file changed, 40 deletions(-) delete mode 100644 google-cloud-bigquery/clirr-ignored-differences.xml diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml deleted file mode 100644 index 3f238e1625e4..000000000000 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - 7012 - com/google/cloud/bigquery/BigQuery - com.google.cloud.Policy getIamPolicy(com.google.cloud.bigquery.TableId, com.google.cloud.bigquery.BigQuery$IAMOption[]) - - - 7012 - com/google/cloud/bigquery/BigQuery - com.google.cloud.Policy setIamPolicy(com.google.cloud.bigquery.TableId, com.google.cloud.Policy, com.google.cloud.bigquery.BigQuery$IAMOption[]) - - - 7012 - com/google/cloud/bigquery/BigQuery - java.util.List testIamPermissions(com.google.cloud.bigquery.TableId, java.util.List, com.google.cloud.bigquery.BigQuery$IAMOption[]) - - - 7012 - com/google/cloud/bigquery/spi/v2/BigQueryRpc - com.google.api.services.bigquery.model.Policy getIamPolicy(java.lang.String, java.util.Map) - - - 7012 - com/google/cloud/bigquery/spi/v2/BigQueryRpc - com.google.api.services.bigquery.model.Policy setIamPolicy(java.lang.String, com.google.api.services.bigquery.model.Policy, java.util.Map) - - - 7012 - com/google/cloud/bigquery/spi/v2/BigQueryRpc - com.google.api.services.bigquery.model.TestIamPermissionsResponse testIamPermissions(java.lang.String, java.util.List, java.util.Map) - - - com/google/cloud/bigquery/spi/v2/BigQueryRpc - com.google.api.services.bigquery.model.QueryResponse queryRpc(java.lang.String, com.google.api.services.bigquery.model.QueryRequest) - 7012 - - From 03bda1bf79169bf0fca3ee12c1c3dfeb19c2e102 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 24 Sep 2020 21:04:41 +0530 Subject: [PATCH 0812/3441] fix: nullpointer exception when executionerror is null (#754) --- .../src/main/java/com/google/cloud/bigquery/Job.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index 181370d74876..6ef7eb9061b8 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -297,8 +297,10 @@ public TableResult getQueryResults(QueryResultsOption... options) job = reload(); } if (job.getStatus() != null && job.getStatus().getError() != null) { - throw new JobException( - getJobId(), ImmutableList.copyOf(job.getStatus().getExecutionErrors())); + throw new BigQueryException( + job.getStatus().getExecutionErrors() == null + ? ImmutableList.of(job.getStatus().getError()) + : ImmutableList.copyOf(job.getStatus().getExecutionErrors())); } // If there are no rows in the result, this may have been a DDL query. From 99e5c1f3559e6ac4f550e80bf76a47f9a191e1a2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 24 Sep 2020 21:08:02 -0700 Subject: [PATCH 0813/3441] chore(ci): skip autorelease workflow on non-release PRs (#756) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/5ae39cfb-c9e2-4c0d-9bdc-85a69a45c240/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/95dbe1bee3c7f7e52ddb24a54c37080620e0d1a2 --- .github/workflows/auto-release.yaml | 1 + synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index c8494910553a..3ce51eeea78d 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -4,6 +4,7 @@ name: auto-release jobs: approve: runs-on: ubuntu-latest + if: contains(github.head_ref, 'release-v') steps: - uses: actions/github-script@v3.0.0 with: diff --git a/synth.metadata b/synth.metadata index 8903d3c0ff9f..55db3df3d192 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "84d6632dbbdb9ccaf4afba545ec94a1156a989a2" + "sha": "03bda1bf79169bf0fca3ee12c1c3dfeb19c2e102" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "916c10e8581804df2b48a0f0457d848f3faa582e" + "sha": "95dbe1bee3c7f7e52ddb24a54c37080620e0d1a2" } } ], From 85b70691cc380beeafa839be4f10ec513342389f Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 25 Sep 2020 20:05:12 +0530 Subject: [PATCH 0814/3441] docs(samples): fix flaky test case for undelete table (#757) * docs(samples): fix flaky test case for undelete table * docs(samples): lint --- .../com/example/bigquery/UndeleteTable.java | 22 ++++++++++++++----- .../com/example/bigquery/UndeleteTableIT.java | 5 ++--- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java b/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java index 17deac76221c..cc09afbcbd54 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java @@ -23,7 +23,9 @@ import com.google.cloud.bigquery.CopyJobConfiguration; import com.google.cloud.bigquery.Job; import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.Table; import com.google.cloud.bigquery.TableId; +import org.threeten.bp.Instant; // Sample to undeleting a table public class UndeleteTable { @@ -42,15 +44,25 @@ public static void undeleteTable(String datasetName, String tableName, String re // once, and can be reused for multiple requests. BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - // "Accidentally" delete the table. - bigquery.delete(TableId.of(datasetName, tableName)); - // Record the current time. We'll use this as the snapshot time // for recovering the table. - long snapTime = System.currentTimeMillis(); + long snapshotEpoch = Instant.now().toEpochMilli(); + + // [START_EXCLUDE] + // Due to very short lifecycle of the table, ensure we're not picking a time + // prior to the table creation due to time drift between backend and client. + Table table = bigquery.getTable(TableId.of(datasetName, tableName)); + Long createdEpoch = table.getCreationTime(); + if (createdEpoch > snapshotEpoch) { + snapshotEpoch = createdEpoch; + } + // [END_EXCLUDE] + + // "Accidentally" delete the table. + bigquery.delete(TableId.of(datasetName, tableName)); // Construct the restore-from tableID using a snapshot decorator. - String snapshotTableId = String.format("%s@%d", tableName, snapTime); + String snapshotTableId = String.format("%s@%d", tableName, snapshotEpoch); // Construct and run a copy job. CopyJobConfiguration configuration = diff --git a/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java index 61a91341f5fa..f6c725db6b28 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java @@ -77,8 +77,7 @@ public void tearDown() { @Test public void testUndeleteTable() { - // TODO(pmakani): revisit this in the future due to recent flakiness - // UndeleteTable.undeleteTable(BIGQUERY_DATASET_NAME, tableName, recoverTableName); - // assertThat(bout.toString()).contains("Undelete table recovered successfully."); + UndeleteTable.undeleteTable(BIGQUERY_DATASET_NAME, tableName, recoverTableName); + assertThat(bout.toString()).contains("Undelete table recovered successfully."); } } From 37b1af286921c14b421d8b74bf1c380b5cd8888c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 25 Sep 2020 08:52:21 -0700 Subject: [PATCH 0815/3441] chore(ci): verify autorelease release PR content has changes (#758) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/7acf2b79-fc3a-48fa-86c7-e4b07ab2cb76/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/da29da32b3a988457b49ae290112b74f14b713cc --- .github/workflows/auto-release.yaml | 18 ++++++++++++++++++ synth.metadata | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 3ce51eeea78d..bc1554aecba2 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -21,6 +21,24 @@ jobs: return; } + // only approve PRs with pom.xml and versions.txt changes + const filesPromise = github.pulls.listFiles.endpoint({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.payload.pull_request.number, + }); + const changed_files = await github.paginate(filesPromise) + + if ( changed_files.length < 1 ) { + console.log( "Not proceeding since PR is empty!" ) + return; + } + + if ( !changed_files.some(v => v.filename.includes("pom")) || !changed_files.some(v => v.filename.includes("versions.txt")) ) { + console.log( "PR file changes do not have pom.xml or versions.txt -- something is wrong. PTAL!" ) + return; + } + // trigger auto-release when // 1) it is a SNAPSHOT release (auto-generated post regular release) // 2) there are dependency updates only diff --git a/synth.metadata b/synth.metadata index 55db3df3d192..195c9aca35fa 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "03bda1bf79169bf0fca3ee12c1c3dfeb19c2e102" + "sha": "99e5c1f3559e6ac4f550e80bf76a47f9a191e1a2" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "95dbe1bee3c7f7e52ddb24a54c37080620e0d1a2" + "sha": "da29da32b3a988457b49ae290112b74f14b713cc" } } ], From 060167456579ea7616bf7bf4a2e030d8e31f8971 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 25 Sep 2020 21:36:11 +0530 Subject: [PATCH 0816/3441] test: use pages empty (#753) --- .../com/google/cloud/bigquery/JobTest.java | 32 ++----------------- 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index 1f3cbe57ea12..b4b17b7d9659 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -35,12 +35,12 @@ import com.google.api.core.CurrentMillisClock; import com.google.api.gax.paging.Page; +import com.google.api.gax.paging.Pages; import com.google.cloud.RetryOption; import com.google.cloud.bigquery.JobStatistics.CopyStatistics; import com.google.cloud.bigquery.JobStatistics.QueryStatistics; import com.google.cloud.bigquery.JobStatus.State; import com.google.common.collect.ImmutableList; -import java.util.Collections; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; @@ -304,39 +304,11 @@ public void testWaitForAndGetQueryResults() throws InterruptedException { .setStatus(JOB_STATUS) .build(); - JobStatus status = mock(JobStatus.class); when(bigquery.getOptions()).thenReturn(mockOptions); when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); Job completedJob = expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); - // TODO(pongad): remove when we bump gax to 1.15. - Page singlePage = - new Page() { - @Override - public boolean hasNextPage() { - return false; - } - - @Override - public String getNextPageToken() { - return ""; - } - - @Override - public Page getNextPage() { - return null; - } - - @Override - public Iterable iterateAll() { - return Collections.emptyList(); - } - - @Override - public Iterable getValues() { - return Collections.emptyList(); - } - }; + Page singlePage = Pages.empty(); TableResult result = new TableResult(Schema.of(), 1, singlePage); QueryResponse completedQuery = QueryResponse.newBuilder() From 9709c9e401a512b6ab8e3ded52420597e30c7b0c Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 28 Sep 2020 17:40:22 -0400 Subject: [PATCH 0817/3441] docs(samples): add region tag for auth snippet (#760) --- .../main/java/com/example/bigquery/QueryExternalSheetsTemp.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java index ce9866e12525..79d3d8d20d62 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java @@ -54,6 +54,7 @@ public static void queryExternalSheetsTemp( // Create credentials with Drive & BigQuery API scopes. // Both APIs must be enabled for your project before running this code. + // [START bigquery_auth_drive_scope] GoogleCredentials credentials = ServiceAccountCredentials.getApplicationDefault() .createScoped( @@ -65,6 +66,7 @@ public static void queryExternalSheetsTemp( // once, and can be reused for multiple requests. BigQuery bigquery = BigQueryOptions.newBuilder().setCredentials(credentials).build().getService(); + // [END bigquery_auth_drive_scope] // Skip header row in the file. GoogleSheetsOptions sheetsOptions = From 4c5bdadabcdb9b851e1fb7d718824409d39a2915 Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Tue, 29 Sep 2020 16:25:31 -0700 Subject: [PATCH 0818/3441] build: remove maintainer permission from repo config (#761) --- .github/sync-repo-settings.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 25ba59a0f828..d72318bf65db 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -43,7 +43,7 @@ permissionRules: # Team slug to add to repository permissions - team: api-bigquery # Access level required, one of push|pull|admin|maintain|triage - permission: maintain + permission: admin - team: yoshi-java permission: push - team: yoshi-admins From cfbe918e3b3ae03d90f2480ecf30a67362d75f9e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 30 Sep 2020 09:12:11 -0700 Subject: [PATCH 0819/3441] chore(java): use separate autosynth job for README (#762) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/eb84dd73-4363-4c22-9f5e-0e8909f49079/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/e6168630be3e31eede633ba2c6f1cd64248dec1c --- .github/readme/synth.py | 19 ++++++++++++ .kokoro/continuous/readme.cfg | 55 +++++++++++++++++++++++++++++++++++ .kokoro/readme.sh | 36 +++++++++++++++++++++++ synth.metadata | 8 +++-- 4 files changed, 115 insertions(+), 3 deletions(-) create mode 100644 .github/readme/synth.py create mode 100644 .kokoro/continuous/readme.cfg create mode 100644 .kokoro/readme.sh diff --git a/.github/readme/synth.py b/.github/readme/synth.py new file mode 100644 index 000000000000..7b48cc28d361 --- /dev/null +++ b/.github/readme/synth.py @@ -0,0 +1,19 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""This script is used to synthesize generated the README for this library.""" + +from synthtool.languages import java + +java.custom_templates(["java_library/README.md"]) diff --git a/.kokoro/continuous/readme.cfg b/.kokoro/continuous/readme.cfg new file mode 100644 index 000000000000..e99978cc71ed --- /dev/null +++ b/.kokoro/continuous/readme.cfg @@ -0,0 +1,55 @@ +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Format: //devtools/kokoro/config/proto/build.proto + +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/python-multi" +} + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/readme.sh" +} + +# Build logs will be here +action { + define_artifacts { + regex: "**/*sponge_log.xml" + regex: "**/*sponge_log.log" + } +} + +# The github token is stored here. +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "yoshi-automation-github-key" + # TODO(theacodes): remove this after secrets have globally propagated + backend_type: FASTCONFIGPUSH + } + } +} + +# Common env vars for all repositories and builds. +env_vars: { + key: "GITHUB_USER" + value: "yoshi-automation" +} +env_vars: { + key: "GITHUB_EMAIL" + value: "yoshi-automation@google.com" +} diff --git a/.kokoro/readme.sh b/.kokoro/readme.sh new file mode 100644 index 000000000000..d1cdf509db7a --- /dev/null +++ b/.kokoro/readme.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# Copyright 2020 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +cd ${KOKORO_ARTIFACTS_DIR}/github/java-bigquery + +# Disable buffering, so that the logs stream through. +export PYTHONUNBUFFERED=1 + +# Kokoro exposes this as a file, but the scripts expect just a plain variable. +export GITHUB_TOKEN=$(cat ${KOKORO_KEYSTORE_DIR}/73713_yoshi-automation-github-key) + +# Setup git credentials +echo "https://${GITHUB_TOKEN}:@github.com" >> ~/.git-credentials +git config --global credential.helper 'store --file ~/.git-credentials' + +python3.6 -m pip install git+https://github.com/googleapis/synthtool.git#egg=gcp-synthtool +python3.6 -m autosynth.synth \ + --repository=googleapis/java-bigquery \ + --synth-file-name=.github/readme/synth.py \ + --metadata-path=.github/readme/synth.metadata \ + --pr-title="chore: regenerate README" \ + --branch-suffix="readme" \ No newline at end of file diff --git a/synth.metadata b/synth.metadata index 195c9aca35fa..05dd4944feb8 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "99e5c1f3559e6ac4f550e80bf76a47f9a191e1a2" + "sha": "4c5bdadabcdb9b851e1fb7d718824409d39a2915" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "da29da32b3a988457b49ae290112b74f14b713cc" + "sha": "e6168630be3e31eede633ba2c6f1cd64248dec1c" } } ], @@ -21,6 +21,7 @@ ".github/ISSUE_TEMPLATE/feature_request.md", ".github/ISSUE_TEMPLATE/support_request.md", ".github/PULL_REQUEST_TEMPLATE.md", + ".github/readme/synth.py", ".github/release-please.yml", ".github/trusted-contribution.yml", ".github/workflows/auto-release.yaml", @@ -33,6 +34,7 @@ ".kokoro/common.sh", ".kokoro/continuous/common.cfg", ".kokoro/continuous/java8.cfg", + ".kokoro/continuous/readme.cfg", ".kokoro/dependencies.sh", ".kokoro/linkage-monitor.sh", ".kokoro/nightly/common.cfg", @@ -56,6 +58,7 @@ ".kokoro/presubmit/linkage-monitor.cfg", ".kokoro/presubmit/lint.cfg", ".kokoro/presubmit/samples.cfg", + ".kokoro/readme.sh", ".kokoro/release/bump_snapshot.cfg", ".kokoro/release/common.cfg", ".kokoro/release/common.sh", @@ -73,7 +76,6 @@ "CODE_OF_CONDUCT.md", "CONTRIBUTING.md", "LICENSE", - "README.md", "java.header", "license-checks.xml", "renovate.json", From 6f8911a356daf3dec79431491e40b1bfa1c20d4d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 30 Sep 2020 20:20:25 +0200 Subject: [PATCH 0820/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20200916-1.30.10 (#768) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c1d6f8176de3..9f85197e2be3 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20200827-1.30.10 + v2-rev20200916-1.30.10 From 49dbbba8d1726e7277eb0ad8e168ff0a480daf0e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 30 Sep 2020 20:20:54 +0200 Subject: [PATCH 0821/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.10.0 (#769) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9f85197e2be3..eb15ed00ae08 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.9.0 + 0.10.0 pom import From 3d3a60c8a995c07638bec686d2b6df83b49b64d1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 30 Sep 2020 20:22:03 +0200 Subject: [PATCH 0822/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v10.1.0 (#767) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `10.0.0` -> `10.1.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a5bc167f06ee..e12ae09e85d2 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 10.0.0 + 10.1.0 pom import From 5b76afd2cb11573d80b7a7d19fefd2995844169c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 30 Sep 2020 20:28:10 +0200 Subject: [PATCH 0823/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.120.0 (#766) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | minor | `1.117.1` -> `1.120.0` | --- ### Release Notes

    googleapis/java-bigquery ### [`v1.120.0`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​11200-httpswwwgithubcomgoogleapisjava-bigquerycomparev11190v11200-2020-09-22) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.119.0...v1.120.0) ##### Features - sql fast path impl ([#​509](https://www.github.com/googleapis/java-bigquery/issues/509)) ([64a7d65](https://www.github.com/googleapis/java-bigquery/commit/64a7d65ff97152c49194f507562266c1ba6f0f3b)), closes [google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java#L69-L71](https://www.github.com/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java/issues/L69-L71) [#L69](https://www.github.com/googleapis/java-bigquery/issues/L69) ### [`v1.119.0`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​11190-httpswwwgithubcomgoogleapisjava-bigquerycomparev11180v11190-2020-09-17) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.118.0...v1.119.0) ##### Features - add additional time partitioning intervals ([#​737](https://www.github.com/googleapis/java-bigquery/issues/737)) ([a57dbdf](https://www.github.com/googleapis/java-bigquery/commit/a57dbdf96440bc7e51443efb99b007ac42cd481b)) ### [`v1.118.0`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​11180-httpswwwgithubcomgoogleapisjava-bigquerycomparev11172v11180-2020-09-17) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.117.2...v1.118.0) ##### Features - **bigquery:** explicitly ask for dense responses from HTTP backend ([#​739](https://www.github.com/googleapis/java-bigquery/issues/739)) ([8c92c99](https://www.github.com/googleapis/java-bigquery/commit/8c92c9919b278bdb128be963391fc1870e69e343)) ##### Bug Fixes - throw jobexception for invalid multiple statements query ([#​732](https://www.github.com/googleapis/java-bigquery/issues/732)) ([2a0d86d](https://www.github.com/googleapis/java-bigquery/commit/2a0d86d2d07dd706fb7d943da6ebd5c9ac98dfca)) ##### [1.117.2](https://www.github.com/googleapis/java-bigquery/compare/v1.117.1...v1.117.2) (2020-09-15) ##### Bug Fixes - get recordvalue by field name ([#​718](https://www.github.com/googleapis/java-bigquery/issues/718)) ([b3f59b1](https://www.github.com/googleapis/java-bigquery/commit/b3f59b1e1215d93a3b7048149c88318f2a074f79)) ##### Dependencies - update dependency com.google.apis:google-api-services-bigquery to v2-rev20200827-1.30.10 ([#​722](https://www.github.com/googleapis/java-bigquery/issues/722)) ([dcb8671](https://www.github.com/googleapis/java-bigquery/commit/dcb86719f11fe2b75113974ada13bae20150aa49)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.9.0 ([#​715](https://www.github.com/googleapis/java-bigquery/issues/715)) ([b75b95b](https://www.github.com/googleapis/java-bigquery/commit/b75b95b7ca338da0900c53856c280c9acc140cd5)) - update dependency com.google.cloud:google-cloud-storage to v1.113.0 ([#​723](https://www.github.com/googleapis/java-bigquery/issues/723)) ([fb6d543](https://www.github.com/googleapis/java-bigquery/commit/fb6d5430b9f6e1285e7fa0102c78d9c4dd07c599)) - update jmh.version to v1.25.2 ([#​720](https://www.github.com/googleapis/java-bigquery/issues/720)) ([9afba31](https://www.github.com/googleapis/java-bigquery/commit/9afba319a62f54ee766d2476f5bd2ee91b3ba762)) ##### [1.117.1](https://www.github.com/googleapis/java-bigquery/compare/v1.117.0...v1.117.1) (2020-08-28) ##### Bug Fixes - npe for destination table ([#​699](https://www.github.com/googleapis/java-bigquery/issues/699)) ([863c9e1](https://www.github.com/googleapis/java-bigquery/commit/863c9e1d7da8a63154677fb32954e2048dd48e9e)) ##### Dependencies - update dependency com.google.apis:google-api-services-bigquery to v2-rev20200818-1.30.10 ([#​705](https://www.github.com/googleapis/java-bigquery/issues/705)) ([127414c](https://www.github.com/googleapis/java-bigquery/commit/127414c4f2cb7ea50dfc0f5cbfcb7f581cf67e63)) - update dependency com.google.cloud:google-cloud-storage to v1.112.0 ([#​708](https://www.github.com/googleapis/java-bigquery/issues/708)) ([0be6a2b](https://www.github.com/googleapis/java-bigquery/commit/0be6a2b8ba47a912d8af7326ebc910d02393f6f5)) - update jmh.version to v1.25.1 ([#​698](https://www.github.com/googleapis/java-bigquery/issues/698)) ([e3a021b](https://www.github.com/googleapis/java-bigquery/commit/e3a021b24cbcdfe23617da1662f438fb2d8699fb)) ### [`v1.117.2`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​11172-httpswwwgithubcomgoogleapisjava-bigquerycomparev11171v11172-2020-09-15) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.117.1...v1.117.2)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0df8439e2091..aedd211689ea 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.117.1 + 1.120.0 From 34f30ec2fea28e053fdb32d766749c8d6d0e115c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 30 Sep 2020 20:30:06 +0200 Subject: [PATCH 0824/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.1 (#770) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | patch | `1.113.0` -> `1.113.1` | --- ### Release Notes
    googleapis/java-storage ### [`v1.113.1`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​11131-httpswwwgithubcomgoogleapisjava-storagecomparev11130v11131-2020-09-17) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v1.113.0...v1.113.1)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eb15ed00ae08..93bb0cfa08e0 100644 --- a/pom.xml +++ b/pom.xml @@ -117,7 +117,7 @@ com.google.cloud google-cloud-storage - 1.113.0 + 1.113.1 test From 647a7d4be965562a711d8db031c004a86f1dec8f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 30 Sep 2020 20:32:02 +0200 Subject: [PATCH 0825/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v11 (#771) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | major | `10.1.0` -> `11.1.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e12ae09e85d2..c3341ca8d194 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 10.1.0 + 11.1.0 pom import From 4a80a74097f8433fb1fb8184759cb3e2adb58847 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 30 Sep 2020 16:54:12 -0700 Subject: [PATCH 0826/3441] build: rename samples lint workflow to checkstyle to disambiguate branch protection with unit lint (#772) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/107a98b5-a9c9-4567-bd84-56cf4d34e4d2/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/8a7a3021fe97aa0a3641db642fe2b767f1c8110f --- .github/workflows/samples.yaml | 2 +- synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/samples.yaml b/.github/workflows/samples.yaml index a1d50073069d..c46230a78c38 100644 --- a/.github/workflows/samples.yaml +++ b/.github/workflows/samples.yaml @@ -2,7 +2,7 @@ on: pull_request: name: samples jobs: - lint: + checkstyle: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 diff --git a/synth.metadata b/synth.metadata index 05dd4944feb8..2d59e6a3c93c 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "4c5bdadabcdb9b851e1fb7d718824409d39a2915" + "sha": "647a7d4be965562a711d8db031c004a86f1dec8f" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "e6168630be3e31eede633ba2c6f1cd64248dec1c" + "sha": "8a7a3021fe97aa0a3641db642fe2b767f1c8110f" } } ], From 58e2e4ee8c4f3bf8391bbc1e2ff07b63e6247c69 Mon Sep 17 00:00:00 2001 From: Ryan Yuan Date: Thu, 1 Oct 2020 17:20:50 +1000 Subject: [PATCH 0827/3441] docs: update clustering field docstrings (#774) --- .../java/com/google/cloud/bigquery/StandardTableDefinition.java | 2 +- .../main/java/com/example/bigquery/CreateClusteredTable.java | 2 +- .../src/main/java/com/example/bigquery/LoadTableClustered.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index 9a76b71009eb..4b09fe3c4043 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -157,7 +157,7 @@ public abstract static class Builder /** * Set the clustering configuration for the table. If not set, the table is not clustered. - * Clustering is only available for partitioned tables. + * BigQuery supports clustering for both partitioned and non-partitioned tables. */ public abstract Builder setClustering(Clustering clustering); diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java b/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java index 3ea3318b7e8e..dd36385c707e 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java @@ -55,7 +55,7 @@ public static void createClusteredTable( TimePartitioning partitioning = TimePartitioning.of(TimePartitioning.Type.DAY); // Clustering fields will be consisted of fields mentioned in the schema. - // As of now, another condition is that the table should be partitioned. + // BigQuery supports clustering for both partitioned and non-partitioned tables. Clustering clustering = Clustering.newBuilder().setFields(clusteringFields).build(); StandardTableDefinition tableDefinition = diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java b/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java index 118e356e5bfb..86b8afc7a9a5 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java @@ -65,7 +65,7 @@ public static void loadTableClustered( TimePartitioning partitioning = TimePartitioning.of(TimePartitioning.Type.DAY); // Clustering fields will be consisted of fields mentioned in the schema. - // As of now, another condition is that the table should be partitioned. + // BigQuery supports clustering for both partitioned and non-partitioned tables. Clustering clustering = Clustering.newBuilder().setFields(clusteringFields).build(); LoadJobConfiguration loadJobConfig = From fcea66290c2079a6b5f7f9fc340ad706ca30cabd Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 1 Oct 2020 21:26:36 +0530 Subject: [PATCH 0828/3441] feat: add case insensitive for fields get by name (#775) --- .../com/google/cloud/bigquery/FieldList.java | 20 ++++++++++--- .../google/cloud/bigquery/FieldListTest.java | 20 +++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 28 +++++++++++++++++++ 3 files changed, 64 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java index d3472562afe6..c18d2514293a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java @@ -18,10 +18,10 @@ import com.google.api.services.bigquery.model.TableFieldSchema; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import java.io.Serializable; import java.util.AbstractList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -36,16 +36,28 @@ public final class FieldList extends AbstractList implements Serializable private final List fields; private final Map nameIndex; + private static class CaseInsensitiveMap extends HashMap { + @Override + public Integer put(String key, Integer value) { + return super.put(key.toLowerCase(), value); + } + + @Override + public Integer get(Object key) { + return super.get(key.toString().toLowerCase()); + } + } + private FieldList(Iterable fields) { this.fields = ImmutableList.copyOf(fields); - ImmutableMap.Builder nameIndexBuilder = ImmutableMap.builder(); + Map caseInsensitiveMap = new CaseInsensitiveMap(); int index = 0; for (Field field : fields) { - nameIndexBuilder.put(field.getName(), index); + caseInsensitiveMap.put(field.getName(), index); index++; } - this.nameIndex = nameIndexBuilder.build(); + this.nameIndex = caseInsensitiveMap; } /** diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java index f7995ae2a7ed..999bbf1b0223 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java @@ -26,6 +26,12 @@ public class FieldListTest { private static final String FIELD_NAME1 = "StringField"; private static final String FIELD_NAME2 = "IntegerField"; private static final String FIELD_NAME3 = "RecordField"; + private static final String FIELD_NAME_CASE_INSENSITIVE1 = "stringfield"; + private static final String FIELD_NAME_CASE_INSENSITIVE2 = "integerfield"; + private static final String FIELD_NAME_CASE_INSENSITIVE3 = "recordfield"; + private static final String FIELD_NAME_CASE_INSENSITIVE4 = "stRingfiEld"; + private static final String FIELD_NAME_CASE_INSENSITIVE5 = "inTeGerField"; + private static final String FIELD_NAME_CASE_INSENSITIVE6 = "recOrdfieLd"; private static final String FIELD_NAME4 = "NonExistentField"; private static final LegacySQLTypeName FIELD_TYPE1 = LegacySQLTypeName.STRING; private static final LegacySQLTypeName FIELD_TYPE2 = LegacySQLTypeName.INTEGER; @@ -61,6 +67,12 @@ public void testGetByName() { assertEquals(fieldSchema1, fieldsSchema.get(FIELD_NAME1)); assertEquals(fieldSchema2, fieldsSchema.get(FIELD_NAME2)); assertEquals(fieldSchema3, fieldsSchema.get(FIELD_NAME3)); + assertEquals(fieldSchema1, fieldsSchema.get(FIELD_NAME_CASE_INSENSITIVE1)); + assertEquals(fieldSchema2, fieldsSchema.get(FIELD_NAME_CASE_INSENSITIVE2)); + assertEquals(fieldSchema3, fieldsSchema.get(FIELD_NAME_CASE_INSENSITIVE3)); + assertEquals(fieldSchema1, fieldsSchema.get(FIELD_NAME_CASE_INSENSITIVE4)); + assertEquals(fieldSchema2, fieldsSchema.get(FIELD_NAME_CASE_INSENSITIVE5)); + assertEquals(fieldSchema3, fieldsSchema.get(FIELD_NAME_CASE_INSENSITIVE6)); assertEquals(3, fieldsSchema.size()); @@ -95,8 +107,16 @@ public void testGetRecordSchema() { assertEquals(2, fieldSchema3.getSubFields().size()); assertEquals(fieldSchema1, fieldSchema3.getSubFields().get(FIELD_NAME1)); assertEquals(fieldSchema2, fieldSchema3.getSubFields().get(FIELD_NAME2)); + assertEquals(fieldSchema1, fieldSchema3.getSubFields().get(FIELD_NAME_CASE_INSENSITIVE1)); + assertEquals(fieldSchema2, fieldSchema3.getSubFields().get(FIELD_NAME_CASE_INSENSITIVE2)); + assertEquals(fieldSchema1, fieldSchema3.getSubFields().get(FIELD_NAME_CASE_INSENSITIVE4)); + assertEquals(fieldSchema2, fieldSchema3.getSubFields().get(FIELD_NAME_CASE_INSENSITIVE5)); assertEquals(0, fieldSchema3.getSubFields().getIndex(FIELD_NAME1)); assertEquals(1, fieldSchema3.getSubFields().getIndex(FIELD_NAME2)); + assertEquals(0, fieldSchema3.getSubFields().getIndex(FIELD_NAME_CASE_INSENSITIVE1)); + assertEquals(1, fieldSchema3.getSubFields().getIndex(FIELD_NAME_CASE_INSENSITIVE2)); + assertEquals(0, fieldSchema3.getSubFields().getIndex(FIELD_NAME_CASE_INSENSITIVE4)); + assertEquals(1, fieldSchema3.getSubFields().getIndex(FIELD_NAME_CASE_INSENSITIVE5)); assertEquals(fieldSchema1, fieldSchema3.getSubFields().get(0)); assertEquals(fieldSchema2, fieldSchema3.getSubFields().get(1)); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index a12bd59d2c73..d7497b91891a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1532,6 +1532,34 @@ public void testQuery() throws InterruptedException { assertNotNull(statistics.getQueryPlan()); } + @Test + public void testQueryCaseInsensitiveSchemaFieldByGetName() throws InterruptedException { + String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); + Job job = bigquery.create(JobInfo.of(JobId.of(), config)); + + TableResult result = job.getQueryResults(); + assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); + int rowCount = 0; + for (FieldValueList row : result.getValues()) { + FieldValue timestampCell = row.get(0); + assertEquals(timestampCell, row.get("TimestampField")); + assertEquals(timestampCell, row.get("timestampfield")); + assertEquals(timestampCell, row.get("timeStampfIeld")); + FieldValue stringCell = row.get(1); + assertEquals(stringCell, row.get("StringField")); + assertEquals(stringCell, row.get("stringfield")); + assertEquals(stringCell, row.get("sTrinGfield")); + FieldValue booleanCell = row.get(2); + assertEquals(booleanCell, row.get("BooleanField")); + assertEquals(booleanCell, row.get("booleanfield")); + assertEquals(booleanCell, row.get("booLeanfielD")); + rowCount++; + } + assertEquals(2, rowCount); + } + @Test public void testFastSQLQuery() throws InterruptedException { String query = From 7ce695fd754ec379bef43fff6104b9f7daadbfdc Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2020 16:10:07 +0000 Subject: [PATCH 0829/3441] chore: release 1.121.0 (#750) :robot: I have created a release \*beep\* \*boop\* --- ## [1.121.0](https://www.github.com/googleapis/java-bigquery/compare/v1.120.0...v1.121.0) (2020-10-01) ### Features * add case insensitive for fields get by name ([#775](https://www.github.com/googleapis/java-bigquery/issues/775)) ([fcea662](https://www.github.com/googleapis/java-bigquery/commit/fcea66290c2079a6b5f7f9fc340ad706ca30cabd)) * use bigquery exception ([#749](https://www.github.com/googleapis/java-bigquery/issues/749)) ([84d6632](https://www.github.com/googleapis/java-bigquery/commit/84d6632dbbdb9ccaf4afba545ec94a1156a989a2)) ### Bug Fixes * nullpointer exception when executionerror is null ([#754](https://www.github.com/googleapis/java-bigquery/issues/754)) ([03bda1b](https://www.github.com/googleapis/java-bigquery/commit/03bda1bf79169bf0fca3ee12c1c3dfeb19c2e102)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20200916-1.30.10 ([#768](https://www.github.com/googleapis/java-bigquery/issues/768)) ([6f8911a](https://www.github.com/googleapis/java-bigquery/commit/6f8911a356daf3dec79431491e40b1bfa1c20d4d)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.10.0 ([#769](https://www.github.com/googleapis/java-bigquery/issues/769)) ([49dbbba](https://www.github.com/googleapis/java-bigquery/commit/49dbbba8d1726e7277eb0ad8e168ff0a480daf0e)) * update dependency com.google.cloud:google-cloud-storage to v1.113.1 ([#770](https://www.github.com/googleapis/java-bigquery/issues/770)) ([34f30ec](https://www.github.com/googleapis/java-bigquery/commit/34f30ec2fea28e053fdb32d766749c8d6d0e115c)) ### Documentation * update clustering field docstrings ([#774](https://www.github.com/googleapis/java-bigquery/issues/774)) ([58e2e4e](https://www.github.com/googleapis/java-bigquery/commit/58e2e4ee8c4f3bf8391bbc1e2ff07b63e6247c69)) * **samples:** add region tag for auth snippet ([#760](https://www.github.com/googleapis/java-bigquery/issues/760)) ([9709c9e](https://www.github.com/googleapis/java-bigquery/commit/9709c9e401a512b6ab8e3ded52420597e30c7b0c)) * **samples:** fix flaky test case for undelete table ([#757](https://www.github.com/googleapis/java-bigquery/issues/757)) ([85b7069](https://www.github.com/googleapis/java-bigquery/commit/85b70691cc380beeafa839be4f10ec513342389f)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ README.md | 4 ++-- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 36 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96f1ae413a9e..10ffa59c9ade 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ # Changelog +## [1.121.0](https://www.github.com/googleapis/java-bigquery/compare/v1.120.0...v1.121.0) (2020-10-01) + + +### Features + +* add case insensitive for fields get by name ([#775](https://www.github.com/googleapis/java-bigquery/issues/775)) ([fcea662](https://www.github.com/googleapis/java-bigquery/commit/fcea66290c2079a6b5f7f9fc340ad706ca30cabd)) +* use bigquery exception ([#749](https://www.github.com/googleapis/java-bigquery/issues/749)) ([84d6632](https://www.github.com/googleapis/java-bigquery/commit/84d6632dbbdb9ccaf4afba545ec94a1156a989a2)) + + +### Bug Fixes + +* nullpointer exception when executionerror is null ([#754](https://www.github.com/googleapis/java-bigquery/issues/754)) ([03bda1b](https://www.github.com/googleapis/java-bigquery/commit/03bda1bf79169bf0fca3ee12c1c3dfeb19c2e102)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20200916-1.30.10 ([#768](https://www.github.com/googleapis/java-bigquery/issues/768)) ([6f8911a](https://www.github.com/googleapis/java-bigquery/commit/6f8911a356daf3dec79431491e40b1bfa1c20d4d)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.10.0 ([#769](https://www.github.com/googleapis/java-bigquery/issues/769)) ([49dbbba](https://www.github.com/googleapis/java-bigquery/commit/49dbbba8d1726e7277eb0ad8e168ff0a480daf0e)) +* update dependency com.google.cloud:google-cloud-storage to v1.113.1 ([#770](https://www.github.com/googleapis/java-bigquery/issues/770)) ([34f30ec](https://www.github.com/googleapis/java-bigquery/commit/34f30ec2fea28e053fdb32d766749c8d6d0e115c)) + + +### Documentation + +* update clustering field docstrings ([#774](https://www.github.com/googleapis/java-bigquery/issues/774)) ([58e2e4e](https://www.github.com/googleapis/java-bigquery/commit/58e2e4ee8c4f3bf8391bbc1e2ff07b63e6247c69)) +* **samples:** add region tag for auth snippet ([#760](https://www.github.com/googleapis/java-bigquery/issues/760)) ([9709c9e](https://www.github.com/googleapis/java-bigquery/commit/9709c9e401a512b6ab8e3ded52420597e30c7b0c)) +* **samples:** fix flaky test case for undelete table ([#757](https://www.github.com/googleapis/java-bigquery/issues/757)) ([85b7069](https://www.github.com/googleapis/java-bigquery/commit/85b70691cc380beeafa839be4f10ec513342389f)) + ## [1.120.0](https://www.github.com/googleapis/java-bigquery/compare/v1.119.0...v1.120.0) (2020-09-22) diff --git a/README.md b/README.md index f663f5807bca..0032d58c85ee 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.120.0' +compile 'com.google.cloud:google-cloud-bigquery:1.121.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.120.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.121.0" ``` [//]: # ({x-version-update-end}) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 55e2ab73782e..a619639aa13b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.120.1-SNAPSHOT + 1.121.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bbe0bfcfe729..81d2dc8b4949 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.120.1-SNAPSHOT + 1.121.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.120.1-SNAPSHOT + 1.121.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 93bb0cfa08e0..62136d496d12 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.120.1-SNAPSHOT + 1.121.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.120.1-SNAPSHOT + 1.121.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f7fdc2dd5849..82b83f30bd5b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.120.1-SNAPSHOT + 1.121.0 diff --git a/versions.txt b/versions.txt index 148de789ed42..312153196560 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.120.0:1.120.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.121.0:1.121.0 \ No newline at end of file From dcd7daa15d8f820affc9c155ba6d7a9a4c15066d Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 1 Oct 2020 15:42:02 -0400 Subject: [PATCH 0830/3441] feat: add connectionId support for external data sources (#776) Add connecitonId to ExternalTableDefinition to allow external data source query through the BigQuery client. --- .../clirr-ignored-differences.xml | 15 +++++++++++ .../bigquery/ExternalTableDefinition.java | 25 +++++++++++++++++++ .../bigquery/ExternalTableDefinitionTest.java | 17 +++++++++++-- 3 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 google-cloud-bigquery/clirr-ignored-differences.xml diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml new file mode 100644 index 000000000000..bfd3ee754662 --- /dev/null +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -0,0 +1,15 @@ + + + + + + 7013 + com/google/cloud/bigquery/ExternalTableDefinition + java.lang.String getConnectionId() + + + 7013 + com/google/cloud/bigquery/ExternalTableDefinition$Builder + com.google.cloud.bigquery.ExternalTableDefinition$Builder setConnectionId(java.lang.String) + + \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index 8165b96529f0..5eb0f4c5753a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -124,6 +124,12 @@ public Builder setFormatOptions(FormatOptions formatOptions) { */ public abstract Builder setCompression(String compression); + /** + * [Optional, Trusted Tester] connectionId for external data source. The value may be {@code + * null}. + */ + public abstract Builder setConnectionId(String connectionId); + /** * [Experimental] Sets detection of schema and format options automatically. Any option * specified explicitly will be honored. @@ -158,6 +164,16 @@ abstract Builder setHivePartitioningOptionsInner( @Nullable public abstract String getCompression(); + /** + * Returns the connection ID used to connect to external data source. + * + * @see + * ConnectionId + */ + @Nullable + public abstract String getConnectionId(); + /** * Returns whether BigQuery should allow extra values that are not represented in the table * schema. If true, the extra values are ignored. If false, records with extra columns are treated @@ -249,6 +265,9 @@ com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataC if (getCompression() != null) { externalConfigurationPb.setCompression(getCompression()); } + if (getConnectionId() != null) { + externalConfigurationPb.setConnectionId(getConnectionId()); + } if (ignoreUnknownValues() != null) { externalConfigurationPb.setIgnoreUnknownValues(ignoreUnknownValues()); } @@ -415,6 +434,9 @@ static ExternalTableDefinition fromPb(Table tablePb) { builder.setFormatOptions(FormatOptions.of(externalDataConfiguration.getSourceFormat())); } builder.setCompression(externalDataConfiguration.getCompression()); + if (externalDataConfiguration.getConnectionId() != null) { + builder.setConnectionId(externalDataConfiguration.getConnectionId()); + } builder.setIgnoreUnknownValues(externalDataConfiguration.getIgnoreUnknownValues()); if (externalDataConfiguration.getCsvOptions() != null) { builder.setFormatOptions(CsvOptions.fromPb(externalDataConfiguration.getCsvOptions())); @@ -452,6 +474,9 @@ static ExternalTableDefinition fromExternalDataConfiguration( if (externalDataConfiguration.getCompression() != null) { builder.setCompression(externalDataConfiguration.getCompression()); } + if (externalDataConfiguration.getConnectionId() != null) { + builder.setConnectionId(externalDataConfiguration.getConnectionId()); + } if (externalDataConfiguration.getIgnoreUnknownValues() != null) { builder.setIgnoreUnknownValues(externalDataConfiguration.getIgnoreUnknownValues()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index ea8ca1ada4e4..23a095cb65cc 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -46,6 +46,7 @@ public class ExternalTableDefinitionTest { private static final Integer MAX_BAD_RECORDS = 42; private static final Boolean IGNORE_UNKNOWN_VALUES = true; private static final String COMPRESSION = "GZIP"; + private static final String CONNECTION_ID = "123456789"; private static final Boolean AUTODETECT = true; private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder().build(); private static final HivePartitioningOptions HIVE_PARTITIONING_OPTIONS = @@ -56,6 +57,7 @@ public class ExternalTableDefinitionTest { private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION = ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) .setCompression(COMPRESSION) + .setConnectionId(CONNECTION_ID) .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) .setMaxBadRecords(MAX_BAD_RECORDS) .setAutodetect(AUTODETECT) @@ -67,10 +69,19 @@ public void testToBuilder() { compareExternalTableDefinition( EXTERNAL_TABLE_DEFINITION, EXTERNAL_TABLE_DEFINITION.toBuilder().build()); ExternalTableDefinition externalTableDefinition = - EXTERNAL_TABLE_DEFINITION.toBuilder().setCompression("NONE").build(); + EXTERNAL_TABLE_DEFINITION + .toBuilder() + .setCompression("NONE") + .setConnectionId("00000") + .build(); assertEquals("NONE", externalTableDefinition.getCompression()); + assertEquals("00000", externalTableDefinition.getConnectionId()); externalTableDefinition = - externalTableDefinition.toBuilder().setCompression(COMPRESSION).build(); + externalTableDefinition + .toBuilder() + .setCompression(COMPRESSION) + .setConnectionId(CONNECTION_ID) + .build(); compareExternalTableDefinition(EXTERNAL_TABLE_DEFINITION, externalTableDefinition); } @@ -94,6 +105,7 @@ public void testTypeNullPointerException() { public void testBuilder() { assertEquals(TableDefinition.Type.EXTERNAL, EXTERNAL_TABLE_DEFINITION.getType()); assertEquals(COMPRESSION, EXTERNAL_TABLE_DEFINITION.getCompression()); + assertEquals(CONNECTION_ID, EXTERNAL_TABLE_DEFINITION.getConnectionId()); assertEquals(CSV_OPTIONS, EXTERNAL_TABLE_DEFINITION.getFormatOptions()); assertEquals(IGNORE_UNKNOWN_VALUES, EXTERNAL_TABLE_DEFINITION.ignoreUnknownValues()); assertEquals(MAX_BAD_RECORDS, EXTERNAL_TABLE_DEFINITION.getMaxBadRecords()); @@ -119,6 +131,7 @@ private void compareExternalTableDefinition( ExternalTableDefinition expected, ExternalTableDefinition value) { assertEquals(expected, value); assertEquals(expected.getCompression(), value.getCompression()); + assertEquals(expected.getConnectionId(), value.getConnectionId()); assertEquals(expected.getFormatOptions(), value.getFormatOptions()); assertEquals(expected.ignoreUnknownValues(), value.ignoreUnknownValues()); assertEquals(expected.getMaxBadRecords(), value.getMaxBadRecords()); From f03535947cfb88bda5bc4b0d3e8935d15d54c16a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2020 19:52:04 +0000 Subject: [PATCH 0831/3441] chore: release 1.121.1-SNAPSHOT (#777) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a619639aa13b..4318cec7e0f4 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.121.0 + 1.121.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 81d2dc8b4949..f8016a12a2f5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.121.0 + 1.121.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.121.0 + 1.121.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 62136d496d12..1381cf9acc89 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.121.0 + 1.121.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.121.0 + 1.121.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 82b83f30bd5b..fbd9ee0828ca 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.121.0 + 1.121.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 312153196560..1c336644a11b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.121.0:1.121.0 \ No newline at end of file +google-cloud-bigquery:1.121.0:1.121.1-SNAPSHOT \ No newline at end of file From 76b71d15ff582dee6457a8caac30d30ba297bf8e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2020 20:04:02 +0000 Subject: [PATCH 0832/3441] chore: release 1.122.0 (#778) :robot: I have created a release \*beep\* \*boop\* --- ## [1.122.0](https://www.github.com/googleapis/java-bigquery/compare/v1.121.0...v1.122.0) (2020-10-01) ### Features * add connectionId support for external data sources ([#776](https://www.github.com/googleapis/java-bigquery/issues/776)) ([dcd7daa](https://www.github.com/googleapis/java-bigquery/commit/dcd7daa15d8f820affc9c155ba6d7a9a4c15066d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 7 +++++++ README.md | 4 ++-- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10ffa59c9ade..6898972a8f66 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.122.0](https://www.github.com/googleapis/java-bigquery/compare/v1.121.0...v1.122.0) (2020-10-01) + + +### Features + +* add connectionId support for external data sources ([#776](https://www.github.com/googleapis/java-bigquery/issues/776)) ([dcd7daa](https://www.github.com/googleapis/java-bigquery/commit/dcd7daa15d8f820affc9c155ba6d7a9a4c15066d)) + ## [1.121.0](https://www.github.com/googleapis/java-bigquery/compare/v1.120.0...v1.121.0) (2020-10-01) diff --git a/README.md b/README.md index 0032d58c85ee..61df77651036 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.121.0' +compile 'com.google.cloud:google-cloud-bigquery:1.122.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.121.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.122.0" ``` [//]: # ({x-version-update-end}) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4318cec7e0f4..69a0d74c0d0f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.121.1-SNAPSHOT + 1.122.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f8016a12a2f5..0c5c8115b28d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.121.1-SNAPSHOT + 1.122.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.121.1-SNAPSHOT + 1.122.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1381cf9acc89..82033e0e0d87 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.121.1-SNAPSHOT + 1.122.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.121.1-SNAPSHOT + 1.122.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index fbd9ee0828ca..66f2ca25872c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.121.1-SNAPSHOT + 1.122.0 diff --git a/versions.txt b/versions.txt index 1c336644a11b..33fc760d8319 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.121.0:1.121.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.122.0:1.122.0 \ No newline at end of file From 1778e745d56999b62358f2047ebbbc020acf18db Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 2 Oct 2020 15:52:07 +0000 Subject: [PATCH 0833/3441] chore: release 1.122.1-SNAPSHOT (#779) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 69a0d74c0d0f..87a043faf589 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.122.0 + 1.122.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0c5c8115b28d..aff881ee2f15 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.122.0 + 1.122.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.122.0 + 1.122.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 82033e0e0d87..9881dfef845d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.122.0 + 1.122.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.122.0 + 1.122.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 66f2ca25872c..591d8afdf7b0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.122.0 + 1.122.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 33fc760d8319..bae7455b5ab6 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.122.0:1.122.0 \ No newline at end of file +google-cloud-bigquery:1.122.0:1.122.1-SNAPSHOT \ No newline at end of file From 15dc9f0a95ebe3d97f8cbc5413f6c740f5f20241 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 6 Oct 2020 21:15:28 +0530 Subject: [PATCH 0834/3441] fix: request id for fast query path (#781) --- .../cloud/bigquery/QueryJobConfiguration.java | 16 ++++++++++++- .../cloud/bigquery/QueryRequestInfo.java | 10 ++++---- .../cloud/bigquery/it/ITBigQueryTest.java | 23 +++++++++++++++++++ 3 files changed, 43 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index 927ae846cd90..88ca5aa44022 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -35,6 +35,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.UUID; /** * Google BigQuery Query Job configuration. A Query Job runs a query against BigQuery data. Query @@ -71,6 +72,7 @@ public final class QueryJobConfiguration extends JobConfiguration { private final List connectionProperties; // maxResults is only used for fast query path private final Long maxResults; + private final String requestId; /** * Priority levels for a query. If not specified the priority is assumed to be {@link @@ -121,6 +123,7 @@ public static final class Builder private RangePartitioning rangePartitioning; private List connectionProperties; private Long maxResults; + private String requestId; private Builder() { super(Type.QUERY); @@ -154,6 +157,7 @@ private Builder(QueryJobConfiguration jobConfiguration) { this.rangePartitioning = jobConfiguration.rangePartitioning; this.connectionProperties = jobConfiguration.connectionProperties; this.maxResults = jobConfiguration.maxResults; + this.requestId = jobConfiguration.requestId; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -621,6 +625,11 @@ public Builder setMaxResults(Long maxResults) { return this; } + Builder setRequestId(String requestId) { + this.requestId = requestId; + return this; + } + public QueryJobConfiguration build() { return new QueryJobConfiguration(this); } @@ -663,6 +672,7 @@ private QueryJobConfiguration(Builder builder) { this.rangePartitioning = builder.rangePartitioning; this.connectionProperties = builder.connectionProperties; this.maxResults = builder.maxResults; + this.requestId = builder.requestId; } /** @@ -865,6 +875,10 @@ public Long getMaxResults() { return maxResults; } + String getRequestId() { + return requestId; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -1043,7 +1057,7 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { /** Creates a builder for a BigQuery Query Job given the query to be run. */ public static Builder newBuilder(String query) { checkArgument(!isNullOrEmpty(query), "Provided query is null or empty"); - return new Builder().setQuery(query); + return new Builder().setQuery(query).setRequestId(UUID.randomUUID().toString()); } /** diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java index 2882e788bcc3..602404cc0dd7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java @@ -23,11 +23,9 @@ import com.google.common.collect.Lists; import java.util.List; import java.util.Map; -import java.util.UUID; final class QueryRequestInfo { - private static final String REQUEST_ID = UUID.randomUUID().toString(); private QueryJobConfiguration config; private final List connectionProperties; private final DatasetId defaultDataset; @@ -39,6 +37,7 @@ final class QueryRequestInfo { private final List queryParameters; private final Boolean useQueryCache; private final Boolean useLegacySql; + private final String requestId; QueryRequestInfo(QueryJobConfiguration config) { this.config = config; @@ -52,6 +51,7 @@ final class QueryRequestInfo { this.queryParameters = config.toPb().getQuery().getQueryParameters(); this.useLegacySql = config.useLegacySql(); this.useQueryCache = config.useQueryCache(); + this.requestId = config.getRequestId(); } boolean isFastQuerySupported() { @@ -92,7 +92,7 @@ QueryRequest toPb() { request.setMaxResults(maxResults); } request.setQuery(query); - request.setRequestId(REQUEST_ID); + request.setRequestId(requestId); if (queryParameters != null) { request.setQueryParameters(queryParameters); } @@ -115,7 +115,7 @@ public String toString() { .add("maximumBytesBilled", maximumBytesBilled) .add("maxResults", maxResults) .add("query", query) - .add("requestId", REQUEST_ID) + .add("requestId", requestId) .add("queryParameters", queryParameters) .add("useQueryCache", useQueryCache) .add("useLegacySql", useLegacySql) @@ -133,7 +133,7 @@ public int hashCode() { maxResults, query, queryParameters, - REQUEST_ID, + requestId, useQueryCache, useLegacySql); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index d7497b91891a..14b4f7a88999 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1560,6 +1560,29 @@ public void testQueryCaseInsensitiveSchemaFieldByGetName() throws InterruptedExc assertEquals(2, rowCount); } + @Test + public void testFastQueryMultipleRuns() throws InterruptedException { + String query = + "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FASTQUERY.getTable(); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); + TableResult result = bigquery.query(config); + assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); + assertEquals(2, result.getTotalRows()); + assertNull(result.getNextPage()); + assertNull(result.getNextPageToken()); + assertFalse(result.hasNextPage()); + + QueryJobConfiguration config2 = + QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); + TableResult result2 = bigquery.query(config2); + assertEquals(QUERY_RESULT_SCHEMA, result2.getSchema()); + assertEquals(2, result2.getTotalRows()); + assertNull(result2.getNextPage()); + assertNull(result2.getNextPageToken()); + assertFalse(result2.hasNextPage()); + } + @Test public void testFastSQLQuery() throws InterruptedException { String query = From 85ee12f14be6430c1474f272da3f7779f0e650c5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 6 Oct 2020 16:02:08 +0000 Subject: [PATCH 0835/3441] chore: release 1.122.1 (#782) :robot: I have created a release \*beep\* \*boop\* --- ### [1.122.1](https://www.github.com/googleapis/java-bigquery/compare/v1.122.0...v1.122.1) (2020-10-06) ### Bug Fixes * request id for fast query path ([#781](https://www.github.com/googleapis/java-bigquery/issues/781)) ([15dc9f0](https://www.github.com/googleapis/java-bigquery/commit/15dc9f0a95ebe3d97f8cbc5413f6c740f5f20241)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 7 +++++++ README.md | 4 ++-- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6898972a8f66..1436daf2227a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.122.1](https://www.github.com/googleapis/java-bigquery/compare/v1.122.0...v1.122.1) (2020-10-06) + + +### Bug Fixes + +* request id for fast query path ([#781](https://www.github.com/googleapis/java-bigquery/issues/781)) ([15dc9f0](https://www.github.com/googleapis/java-bigquery/commit/15dc9f0a95ebe3d97f8cbc5413f6c740f5f20241)) + ## [1.122.0](https://www.github.com/googleapis/java-bigquery/compare/v1.121.0...v1.122.0) (2020-10-01) diff --git a/README.md b/README.md index 61df77651036..4441444a9db3 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.122.0' +compile 'com.google.cloud:google-cloud-bigquery:1.122.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.122.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.122.1" ``` [//]: # ({x-version-update-end}) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 87a043faf589..af40a3178a30 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.122.1-SNAPSHOT + 1.122.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index aff881ee2f15..2a8c11f7e12d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.122.1-SNAPSHOT + 1.122.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.122.1-SNAPSHOT + 1.122.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9881dfef845d..46a0c74c0765 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.122.1-SNAPSHOT + 1.122.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.122.1-SNAPSHOT + 1.122.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 591d8afdf7b0..354bc7c6f326 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.122.1-SNAPSHOT + 1.122.1 diff --git a/versions.txt b/versions.txt index bae7455b5ab6..4c86c82787e5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.122.0:1.122.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.122.1:1.122.1 \ No newline at end of file From fed28c78ca4b70569d5148e67522b0f39321b306 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 6 Oct 2020 22:35:22 +0530 Subject: [PATCH 0836/3441] docs(samples): add query external bigtable using temp table (#763) * docs(samples): add query external bigtable using temp table * docs(samples): address feedback * nit * docs(samples): address comments * update projectId Co-authored-by: Stephanie Wang --- samples/install-without-bom/pom.xml | 6 + samples/snapshot/pom.xml | 6 + samples/snippets/pom.xml | 6 + .../bigquery/QueryExternalBigtableTemp.java | 118 +++++++++++ .../bigquery/QueryExternalBigtableTempIT.java | 186 ++++++++++++++++++ 5 files changed, 322 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtableTempIT.java diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index aedd211689ea..1bead2970c6d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -60,6 +60,12 @@ 1.31.0 + + com.google.cloud + google-cloud-bigtable + 1.15.0 + test + junit junit diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 354bc7c6f326..9e30c09962d4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -58,6 +58,12 @@ 1.31.0 + + com.google.cloud + google-cloud-bigtable + 1.15.0 + test + junit junit diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c3341ca8d194..0ea02a0c4d31 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -73,6 +73,12 @@ + + com.google.cloud + google-cloud-bigtable + 1.15.0 + test + junit junit diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java new file mode 100644 index 000000000000..51646fcb67f8 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java @@ -0,0 +1,118 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_external_bigtable_temp] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.BigtableColumn; +import com.google.cloud.bigquery.BigtableColumnFamily; +import com.google.cloud.bigquery.BigtableOptions; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; +import com.google.common.collect.ImmutableList; +import org.apache.commons.codec.binary.Base64; + +// Sample to queries an external bigtable data source using a temporary table +public class QueryExternalBigtableTemp { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String bigtableInstanceId = "MY_INSTANCE_ID"; + String bigtableTableName = "MY_BIGTABLE_NAME"; + String bigqueryTableName = "MY_TABLE_NAME"; + String sourceUri = + String.format( + "https://googleapis.com/bigtable/projects/%s/instances/%s/tables/%s", + projectId, bigtableInstanceId, bigtableTableName); + String query = String.format("SELECT * FROM %s ", bigqueryTableName); + queryExternalBigtableTemp(bigqueryTableName, sourceUri, query); + } + + public static void queryExternalBigtableTemp(String tableName, String sourceUri, String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + BigtableColumnFamily.Builder statsSummary = BigtableColumnFamily.newBuilder(); + + // Configuring Columns + BigtableColumn connectedCell = + BigtableColumn.newBuilder() + .setQualifierEncoded(Base64.encodeBase64String("connected_cell".getBytes())) + .setFieldName("connected_cell") + .setType("STRING") + .setEncoding("TEXT") + .build(); + BigtableColumn connectedWifi = + BigtableColumn.newBuilder() + .setQualifierEncoded(Base64.encodeBase64String("connected_wifi".getBytes())) + .setFieldName("connected_wifi") + .setType("STRING") + .setEncoding("TEXT") + .build(); + BigtableColumn osBuild = + BigtableColumn.newBuilder() + .setQualifierEncoded(Base64.encodeBase64String("os_build".getBytes())) + .setFieldName("os_build") + .setType("STRING") + .setEncoding("TEXT") + .build(); + + // Configuring column family and columns + statsSummary + .setColumns(ImmutableList.of(connectedCell, connectedWifi, osBuild)) + .setFamilyID("stats_summary") + .setOnlyReadLatest(true) + .setEncoding("TEXT") + .setType("STRING") + .build(); + + // Configuring BigtableOptions is optional. + BigtableOptions options = + BigtableOptions.newBuilder() + .setIgnoreUnspecifiedColumnFamilies(true) + .setReadRowkeyAsString(true) + .setColumnFamilies(ImmutableList.of(statsSummary.build())) + .build(); + + // Configure the external data source and query job. + ExternalTableDefinition externalTable = + ExternalTableDefinition.newBuilder(sourceUri, options).build(); + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .addTableDefinition(tableName, externalTable) + .build(); + + // Example query + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query on external temporary table performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_external_bigtable_temp] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtableTempIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtableTempIT.java new file mode 100644 index 000000000000..27208b196e0e --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtableTempIT.java @@ -0,0 +1,186 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigtable.admin.v2.BigtableTableAdminClient; +import com.google.cloud.bigtable.admin.v2.models.CreateTableRequest; +import com.google.cloud.bigtable.data.v2.BigtableDataClient; +import com.google.cloud.bigtable.data.v2.models.BulkMutation; +import com.google.cloud.bigtable.data.v2.models.Mutation; +import com.google.protobuf.ByteString; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class QueryExternalBigtableTempIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private static final String ID = UUID.randomUUID().toString().substring(0, 8); + private static final String TABLE_ID = "bigquery-samples-test" + ID; + private static final String COLUMN_FAMILY_NAME = "stats_summary"; + private static final long TIMESTAMP = System.currentTimeMillis() * 1000; + private static final String CONNECTED_CELL = "connected_cell"; + private static final String CONNECTED_WIFI = "connected_wifi"; + private static final String OS_BUILD = "os_build"; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String INSTANCE = requireEnvVar("BIGTABLE_TESTING_INSTANCE"); + private static final String PROJECT = requireEnvVar("SAMPLES_TESTING_PROJECT"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + requireEnvVar("BIGTABLE_TESTING_INSTANCE"); + } + + @Before + public void setUp() throws IOException { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + + // create a temporary bigtable table. + try (BigtableTableAdminClient client = BigtableTableAdminClient.create(PROJECT, INSTANCE)) { + CreateTableRequest createTableRequest = + CreateTableRequest.of(TABLE_ID).addFamily(COLUMN_FAMILY_NAME); + client.createTable(createTableRequest); + } + // inserting temporary rows. + try (BigtableDataClient client = BigtableDataClient.create(PROJECT, INSTANCE)) { + BulkMutation bulkMutation = + BulkMutation.create(TABLE_ID) + .add( + "phone#4c410523#20190501", + Mutation.create() + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_CELL.getBytes()), + TIMESTAMP, + 1) + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_WIFI.getBytes()), + TIMESTAMP, + 1) + .setCell(COLUMN_FAMILY_NAME, OS_BUILD, TIMESTAMP, "PQ2A.190405.003")) + .add( + "phone#4c410523#20190502", + Mutation.create() + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_CELL.getBytes()), + TIMESTAMP, + 1) + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_WIFI.getBytes()), + TIMESTAMP, + 1) + .setCell(COLUMN_FAMILY_NAME, OS_BUILD, TIMESTAMP, "PQ2A.190405.004")) + .add( + "phone#4c410523#20190505", + Mutation.create() + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_CELL.getBytes()), + TIMESTAMP, + 0) + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_WIFI.getBytes()), + TIMESTAMP, + 1) + .setCell(COLUMN_FAMILY_NAME, OS_BUILD, TIMESTAMP, "PQ2A.190406.000")) + .add( + "phone#5c10102#20190501", + Mutation.create() + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_CELL.getBytes()), + TIMESTAMP, + 1) + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_WIFI.getBytes()), + TIMESTAMP, + 1) + .setCell(COLUMN_FAMILY_NAME, OS_BUILD, TIMESTAMP, "PQ2A.190401.002")) + .add( + "phone#5c10102#20190502", + Mutation.create() + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_CELL.getBytes()), + TIMESTAMP, + 1) + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_WIFI.getBytes()), + TIMESTAMP, + 0) + .setCell(COLUMN_FAMILY_NAME, OS_BUILD, TIMESTAMP, "PQ2A.190406.000")); + + client.bulkMutateRows(bulkMutation); + } + } + + @After + public void tearDown() throws IOException { + // Clean up + try (BigtableTableAdminClient client = BigtableTableAdminClient.create(PROJECT, INSTANCE)) { + client.deleteTable(TABLE_ID); + } + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testQueryExternalBigtableTemp() { + String tableName = "EXTERNAL_TEMP_TABLE_FROM_BIGTABLE_TEST_" + ID; + String query = String.format("SELECT * FROM %s ", tableName); + String sourceUri = + String.format( + "https://googleapis.com/bigtable/projects/%s/instances/%s/tables/%s", + PROJECT, INSTANCE, TABLE_ID); + QueryExternalBigtableTemp.queryExternalBigtableTemp(tableName, sourceUri, query); + assertThat(bout.toString()) + .contains("Query on external temporary table performed successfully."); + } +} From afadff94bc9a769a2fb3b44ce423cec7c6b029fb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 6 Oct 2020 17:16:05 +0000 Subject: [PATCH 0837/3441] chore: release 1.122.2-SNAPSHOT (#783) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index af40a3178a30..83728f245522 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.122.1 + 1.122.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2a8c11f7e12d..60d337124dd0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.122.1 + 1.122.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.122.1 + 1.122.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 46a0c74c0765..1636d9a0d19f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.122.1 + 1.122.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.122.1 + 1.122.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9e30c09962d4..79fbfda281cd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.122.1 + 1.122.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4c86c82787e5..0d88e99cf380 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.122.1:1.122.1 \ No newline at end of file +google-cloud-bigquery:1.122.1:1.122.2-SNAPSHOT \ No newline at end of file From 038e55d860a1a9c4ce1b77dbd06fae8468ab4897 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 6 Oct 2020 15:12:11 -0700 Subject: [PATCH 0838/3441] build(java): readme.sh should be executable (#785) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/1577a69f-b958-44c5-b4b6-e43d046b326e/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/0762e8ee2ec21cdfc4d82020b985a104feb0453b --- .kokoro/readme.sh | 0 synth.metadata | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 .kokoro/readme.sh diff --git a/.kokoro/readme.sh b/.kokoro/readme.sh old mode 100644 new mode 100755 diff --git a/synth.metadata b/synth.metadata index 2d59e6a3c93c..a84971382182 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "647a7d4be965562a711d8db031c004a86f1dec8f" + "sha": "afadff94bc9a769a2fb3b44ce423cec7c6b029fb" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "8a7a3021fe97aa0a3641db642fe2b767f1c8110f" + "sha": "0762e8ee2ec21cdfc4d82020b985a104feb0453b" } } ], From a5573d1f0faead641294b7bc05b55ec4e2f7603d Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 6 Oct 2020 22:48:02 -0700 Subject: [PATCH 0839/3441] chore: regenerate README (#786) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-06 22:16:04,080 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-06 22:16:05,141 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/c26ebe34-013c-45a3-b042-08c9367790b2/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 18 ++++++++++++++++++ README.md | 5 +++-- 2 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 .github/readme/synth.metadata/synth.metadata diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata new file mode 100644 index 000000000000..c2534da239dc --- /dev/null +++ b/.github/readme/synth.metadata/synth.metadata @@ -0,0 +1,18 @@ +{ + "sources": [ + { + "git": { + "name": ".", + "remote": "https://github.com/googleapis/java-bigquery.git", + "sha": "038e55d860a1a9c4ce1b77dbd06fae8468ab4897" + } + }, + { + "git": { + "name": "synthtool", + "remote": "https://github.com/googleapis/synthtool.git", + "sha": "487eba79f8260e34205d8ceb1ebcc65685085e19" + } + } + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 4441444a9db3..ca76f01b65cd 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 10.0.0 + 11.1.0 pom import @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.117.1 + 1.120.0 ``` @@ -174,6 +174,7 @@ has instructions for running the samples. | Query Destination Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java) | | Query Disable Cache | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java) | | Query Dry Run | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | +| Query External Bigtable Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java) | | Query External Gcs Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java) | | Query External Gcs Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java) | | Query External Sheets Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java) | From 257edfc14ef09efc4474eb5aba08ccf4d7c199c0 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 7 Oct 2020 21:05:24 +0530 Subject: [PATCH 0840/3441] docs(samples): add query external bigtable using permanent table (#764) * docs(samples): add query external bigtable using permanent table * docs(samples): address feedback * docs(samples): address comments --- .../bigquery/QueryExternalBigtablePerm.java | 120 +++++++++++ .../bigquery/QueryExternalBigtablePermIT.java | 192 ++++++++++++++++++ 2 files changed, 312 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtablePermIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java new file mode 100644 index 000000000000..916269707564 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java @@ -0,0 +1,120 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_external_bigtable_perm] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.BigtableColumn; +import com.google.cloud.bigquery.BigtableColumnFamily; +import com.google.cloud.bigquery.BigtableOptions; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.TableResult; +import com.google.common.collect.ImmutableList; +import org.apache.commons.codec.binary.Base64; + +// Sample to queries an external bigtable data source using a permanent table +public class QueryExternalBigtablePerm { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String bigtableInstanceId = "MY_INSTANCE_ID"; + String bigtableTableName = "MY_BIGTABLE_NAME"; + String bigqueryDatasetName = "MY_DATASET_NAME"; + String bigqueryTableName = "MY_TABLE_NAME"; + String sourceUri = + String.format( + "https://googleapis.com/bigtable/projects/%s/instances/%s/tables/%s", + projectId, bigtableInstanceId, bigtableTableName); + String query = String.format("SELECT * FROM %s ", bigqueryTableName); + queryExternalBigtablePerm(bigqueryDatasetName, bigqueryTableName, sourceUri, query); + } + + public static void queryExternalBigtablePerm( + String datasetName, String tableName, String sourceUri, String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + BigtableColumnFamily.Builder statsSummary = BigtableColumnFamily.newBuilder(); + + // Configuring Columns + BigtableColumn connectedCell = + BigtableColumn.newBuilder() + .setQualifierEncoded(Base64.encodeBase64String("connected_cell".getBytes())) + .setFieldName("connected_cell") + .setType("STRING") + .setEncoding("TEXT") + .build(); + BigtableColumn connectedWifi = + BigtableColumn.newBuilder() + .setQualifierEncoded(Base64.encodeBase64String("connected_wifi".getBytes())) + .setFieldName("connected_wifi") + .setType("STRING") + .setEncoding("TEXT") + .build(); + BigtableColumn osBuild = + BigtableColumn.newBuilder() + .setQualifierEncoded(Base64.encodeBase64String("os_build".getBytes())) + .setFieldName("os_build") + .setType("STRING") + .setEncoding("TEXT") + .build(); + + // Configuring column family and columns + statsSummary + .setColumns(ImmutableList.of(connectedCell, connectedWifi, osBuild)) + .setFamilyID("stats_summary") + .setOnlyReadLatest(true) + .setEncoding("TEXT") + .setType("STRING") + .build(); + + // Configuring BigtableOptions is optional. + BigtableOptions options = + BigtableOptions.newBuilder() + .setIgnoreUnspecifiedColumnFamilies(true) + .setReadRowkeyAsString(true) + .setColumnFamilies(ImmutableList.of(statsSummary.build())) + .build(); + + TableId tableId = TableId.of(datasetName, tableName); + // Create a permanent table linked to the Bigtable table + ExternalTableDefinition externalTable = + ExternalTableDefinition.newBuilder(sourceUri, options).build(); + bigquery.create(TableInfo.of(tableId, externalTable)); + + // Example query + TableResult results = bigquery.query(QueryJobConfiguration.of(query)); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query on external permanent table performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_external_bigtable_perm] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtablePermIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtablePermIT.java new file mode 100644 index 000000000000..5e0fd3caba37 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtablePermIT.java @@ -0,0 +1,192 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigtable.admin.v2.BigtableTableAdminClient; +import com.google.cloud.bigtable.admin.v2.models.CreateTableRequest; +import com.google.cloud.bigtable.data.v2.BigtableDataClient; +import com.google.cloud.bigtable.data.v2.models.BulkMutation; +import com.google.cloud.bigtable.data.v2.models.Mutation; +import com.google.protobuf.ByteString; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class QueryExternalBigtablePermIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private static final String ID = UUID.randomUUID().toString().substring(0, 8); + private static final String TABLE_ID = "bigquery-samples-test" + ID; + private static final String COLUMN_FAMILY_NAME = "stats_summary"; + private static final long TIMESTAMP = System.currentTimeMillis() * 1000; + private static final String CONNECTED_CELL = "connected_cell"; + private static final String CONNECTED_WIFI = "connected_wifi"; + private static final String OS_BUILD = "os_build"; + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String INSTANCE = requireEnvVar("BIGTABLE_TESTING_INSTANCE"); + private static final String PROJECT = requireEnvVar("SAMPLES_TESTING_PROJECT"); + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + requireEnvVar("BIGTABLE_TESTING_INSTANCE"); + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() throws IOException { + // Create a test table + tableName = "EXTERNAL_TABLE_FROM_BIGTABLE_TEST_" + ID; + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + + // create a temporary bigtable table. + try (BigtableTableAdminClient client = BigtableTableAdminClient.create(PROJECT, INSTANCE)) { + CreateTableRequest createTableRequest = + CreateTableRequest.of(TABLE_ID).addFamily(COLUMN_FAMILY_NAME); + client.createTable(createTableRequest); + } + // inserting temporary rows. + try (BigtableDataClient client = BigtableDataClient.create(PROJECT, INSTANCE)) { + BulkMutation bulkMutation = + BulkMutation.create(TABLE_ID) + .add( + "phone#4c410523#20190501", + Mutation.create() + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_CELL.getBytes()), + TIMESTAMP, + 1) + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_WIFI.getBytes()), + TIMESTAMP, + 1) + .setCell(COLUMN_FAMILY_NAME, OS_BUILD, TIMESTAMP, "PQ2A.190405.003")) + .add( + "phone#4c410523#20190502", + Mutation.create() + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_CELL.getBytes()), + TIMESTAMP, + 1) + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_WIFI.getBytes()), + TIMESTAMP, + 1) + .setCell(COLUMN_FAMILY_NAME, OS_BUILD, TIMESTAMP, "PQ2A.190405.004")) + .add( + "phone#4c410523#20190505", + Mutation.create() + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_CELL.getBytes()), + TIMESTAMP, + 0) + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_WIFI.getBytes()), + TIMESTAMP, + 1) + .setCell(COLUMN_FAMILY_NAME, OS_BUILD, TIMESTAMP, "PQ2A.190406.000")) + .add( + "phone#5c10102#20190501", + Mutation.create() + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_CELL.getBytes()), + TIMESTAMP, + 1) + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_WIFI.getBytes()), + TIMESTAMP, + 1) + .setCell(COLUMN_FAMILY_NAME, OS_BUILD, TIMESTAMP, "PQ2A.190401.002")) + .add( + "phone#5c10102#20190502", + Mutation.create() + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_CELL.getBytes()), + TIMESTAMP, + 1) + .setCell( + COLUMN_FAMILY_NAME, + ByteString.copyFrom(CONNECTED_WIFI.getBytes()), + TIMESTAMP, + 0) + .setCell(COLUMN_FAMILY_NAME, OS_BUILD, TIMESTAMP, "PQ2A.190406.000")); + + client.bulkMutateRows(bulkMutation); + } + } + + @After + public void tearDown() throws IOException { + // Clean up + try (BigtableTableAdminClient client = BigtableTableAdminClient.create(PROJECT, INSTANCE)) { + client.deleteTable(TABLE_ID); + } + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testQueryExternalBigtablePerm() { + String query = String.format("SELECT * FROM %s.%s ", BIGQUERY_DATASET_NAME, tableName); + String sourceUri = + String.format( + "https://googleapis.com/bigtable/projects/%s/instances/%s/tables/%s", + PROJECT, INSTANCE, TABLE_ID); + QueryExternalBigtablePerm.queryExternalBigtablePerm( + BIGQUERY_DATASET_NAME, tableName, sourceUri, query); + assertThat(bout.toString()) + .contains("Query on external permanent table performed successfully."); + } +} From f36b5586d63d91d984297de557b931f907a22fb2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 7 Oct 2020 09:05:38 -0700 Subject: [PATCH 0841/3441] chore: regenerate README (#787) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index c2534da239dc..325808ff0d12 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "038e55d860a1a9c4ce1b77dbd06fae8468ab4897" + "sha": "257edfc14ef09efc4474eb5aba08ccf4d7c199c0" } }, { diff --git a/README.md b/README.md index ca76f01b65cd..6bd7bd37a90d 100644 --- a/README.md +++ b/README.md @@ -174,6 +174,7 @@ has instructions for running the samples. | Query Destination Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java) | | Query Disable Cache | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java) | | Query Dry Run | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | +| Query External Bigtable Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java) | | Query External Bigtable Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java) | | Query External Gcs Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java) | | Query External Gcs Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java) | From d783c3a2baf80da2aa48c6be555904bd3c33bb1a Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 8 Oct 2020 21:32:53 +0530 Subject: [PATCH 0842/3441] fix: bigquery exception get reason and message (#788) --- .../google/cloud/bigquery/BigQueryException.java | 7 ++++++- .../google/cloud/bigquery/it/ITBigQueryTest.java | 16 +++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java index 4f93c42bb7aa..8d6da0b4e9d9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java @@ -58,7 +58,12 @@ public BigQueryException(int code, String message, BigQueryError error) { } public BigQueryException(List errors) { - super(0, null, null, false, RETRYABLE_ERRORS, null); + super( + 0, + errors != null ? errors.get(0).getMessage() : null, + errors != null ? errors.get(0).getReason() : null, + true, + RETRYABLE_ERRORS); this.errors = errors; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 14b4f7a88999..82be88617252 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1475,9 +1475,10 @@ public void testSingleStatementsQueryException() throws InterruptedException { try { bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor(); fail("BigQueryException was expected"); - } catch (BigQueryException e) { - BigQueryError error = e.getError(); - assertNotNull(error); + } catch (BigQueryException ex) { + assertEquals("invalidQuery", ex.getReason()); + assertNotNull(ex.getMessage()); + BigQueryError error = ex.getError(); assertEquals("invalidQuery", error.getReason()); assertNotNull(error.getMessage()); } @@ -1491,10 +1492,11 @@ public void testMultipleStatementsQueryException() throws InterruptedException { DATASET, TABLE_ID.getTable(), DATASET, TABLE_ID.getTable()); try { bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor(); - fail("JobException was expected"); - } catch (BigQueryException e) { - BigQueryError error = e.getError(); - assertNotNull(error); + fail("BigQueryException was expected"); + } catch (BigQueryException ex) { + assertEquals("invalidQuery", ex.getReason()); + assertNotNull(ex.getMessage()); + BigQueryError error = ex.getError(); assertEquals("invalidQuery", error.getReason()); assertNotNull(error.getMessage()); } From 8469d311144a44d0fd75413bb4ac838968f99126 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 9 Oct 2020 15:46:10 +0000 Subject: [PATCH 0843/3441] chore: release 1.122.2 (#784) :robot: I have created a release \*beep\* \*boop\* --- ### [1.122.2](https://www.github.com/googleapis/java-bigquery/compare/v1.122.1...v1.122.2) (2020-10-08) ### Bug Fixes * bigquery exception get reason and message ([#788](https://www.github.com/googleapis/java-bigquery/issues/788)) ([d783c3a](https://www.github.com/googleapis/java-bigquery/commit/d783c3a2baf80da2aa48c6be555904bd3c33bb1a)) ### Documentation * **samples:** add query external bigtable using permanent table ([#764](https://www.github.com/googleapis/java-bigquery/issues/764)) ([257edfc](https://www.github.com/googleapis/java-bigquery/commit/257edfc14ef09efc4474eb5aba08ccf4d7c199c0)) * **samples:** add query external bigtable using temp table ([#763](https://www.github.com/googleapis/java-bigquery/issues/763)) ([fed28c7](https://www.github.com/googleapis/java-bigquery/commit/fed28c78ca4b70569d5148e67522b0f39321b306)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 13 +++++++++++++ README.md | 4 ++-- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 22 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1436daf2227a..1797d4577f1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +### [1.122.2](https://www.github.com/googleapis/java-bigquery/compare/v1.122.1...v1.122.2) (2020-10-08) + + +### Bug Fixes + +* bigquery exception get reason and message ([#788](https://www.github.com/googleapis/java-bigquery/issues/788)) ([d783c3a](https://www.github.com/googleapis/java-bigquery/commit/d783c3a2baf80da2aa48c6be555904bd3c33bb1a)) + + +### Documentation + +* **samples:** add query external bigtable using permanent table ([#764](https://www.github.com/googleapis/java-bigquery/issues/764)) ([257edfc](https://www.github.com/googleapis/java-bigquery/commit/257edfc14ef09efc4474eb5aba08ccf4d7c199c0)) +* **samples:** add query external bigtable using temp table ([#763](https://www.github.com/googleapis/java-bigquery/issues/763)) ([fed28c7](https://www.github.com/googleapis/java-bigquery/commit/fed28c78ca4b70569d5148e67522b0f39321b306)) + ### [1.122.1](https://www.github.com/googleapis/java-bigquery/compare/v1.122.0...v1.122.1) (2020-10-06) diff --git a/README.md b/README.md index 6bd7bd37a90d..edda4b8c27e2 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.122.1' +compile 'com.google.cloud:google-cloud-bigquery:1.122.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.122.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.122.2" ``` [//]: # ({x-version-update-end}) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 83728f245522..adca58f76803 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.122.2-SNAPSHOT + 1.122.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 60d337124dd0..302dc7e27268 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.122.2-SNAPSHOT + 1.122.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.122.2-SNAPSHOT + 1.122.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1636d9a0d19f..6a603dd1d60c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.122.2-SNAPSHOT + 1.122.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.122.2-SNAPSHOT + 1.122.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 79fbfda281cd..9015ce6f13c3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.122.2-SNAPSHOT + 1.122.2 diff --git a/versions.txt b/versions.txt index 0d88e99cf380..e2c31f056f14 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.122.1:1.122.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.122.2:1.122.2 \ No newline at end of file From 71d93414c5e37c8cb757cf3acaaf907a4ea13df0 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 10 Oct 2020 08:14:02 +0000 Subject: [PATCH 0844/3441] chore: release 1.122.3-SNAPSHOT (#791) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index adca58f76803..dfdd3bf04fb8 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.122.2 + 1.122.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 302dc7e27268..7d3d6389897a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.122.2 + 1.122.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.122.2 + 1.122.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 6a603dd1d60c..7ef3b3a3fb72 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.122.2 + 1.122.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -86,7 +86,7 @@ com.google.cloud google-cloud-bigquery - 1.122.2 + 1.122.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9015ce6f13c3..033961dbbc24 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.122.2 + 1.122.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index e2c31f056f14..7f15384229b2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.122.2:1.122.2 \ No newline at end of file +google-cloud-bigquery:1.122.2:1.122.3-SNAPSHOT \ No newline at end of file From d7861944273d6860304ef0691e565f1ebb3f6b98 Mon Sep 17 00:00:00 2001 From: twinkle-kadia <70891596+twinkle-kadia@users.noreply.github.com> Date: Mon, 12 Oct 2020 20:39:11 +0530 Subject: [PATCH 0845/3441] test: fix testCancelJob failed (#792) --- .../test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 82be88617252..44125ce77206 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2392,7 +2392,6 @@ public void testCancelJob() throws InterruptedException, TimeoutException { .build(); Job remoteJob = bigquery.create(JobInfo.of(configuration)); assertTrue(remoteJob.cancel()); - remoteJob = remoteJob.waitFor(); } @Test From 71e7d4804e1facfb921892dc702adaec35e47cd0 Mon Sep 17 00:00:00 2001 From: Suraj Dhamecha <48670070+suraj-qlogic@users.noreply.github.com> Date: Wed, 14 Oct 2020 01:33:12 +0530 Subject: [PATCH 0846/3441] fix: fix start index with page size for list rows (#793) --- .../google/cloud/bigquery/BigQueryImpl.java | 4 ++- .../cloud/bigquery/BigQueryImplTest.java | 35 +++++++++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 23 ++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index d53f459090a2..76067be0db23 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1089,9 +1089,11 @@ public TableDataList call() { EXCEPTION_HANDLER, serviceOptions.getClock()); String cursor = result.getPageToken(); + Map pageOptionMap = + Strings.isNullOrEmpty(cursor) ? optionsMap : optionMap(TableDataListOption.startIndex(0)); return Tuple.of( new PageImpl<>( - new TableDataPageFetcher(tableId, schema, serviceOptions, cursor, optionsMap), + new TableDataPageFetcher(tableId, schema, serviceOptions, cursor, pageOptionMap), cursor, transformTableData(result.getRows(), schema)), result.getTotalRows()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 9ed0edbae00c..a9b2293fa0b9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -26,6 +26,7 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.Mockito.any; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; @@ -1470,6 +1471,40 @@ public void testListTableDataWithOptions() { verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS); } + @Test + public void testListTableDataWithNextPage() { + doReturn(TABLE_DATA_PB) + .when(bigqueryRpcMock) + .listTableData(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS); + bigquery = options.getService(); + TableResult page = + bigquery.listTableData( + DATASET, + TABLE, + TABLE_DATA_LIST_PAGE_SIZE, + TABLE_DATA_LIST_PAGE_TOKEN, + TABLE_DATA_LIST_START_INDEX); + assertEquals(CURSOR, page.getNextPageToken()); + verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS); + assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); + Map SECOND_TABLE_DATA_LIST_OPTIONS = + ImmutableMap.of(BigQueryRpc.Option.PAGE_TOKEN, CURSOR, BigQueryRpc.Option.START_INDEX, 0L); + doReturn( + new TableDataList() + .setPageToken(null) + .setTotalRows(1L) + .setRows( + ImmutableList.of( + new TableRow().setF(ImmutableList.of(new TableCell().setV("Value3"))), + new TableRow().setF(ImmutableList.of(new TableCell().setV("Value4")))))) + .when(bigqueryRpcMock) + .listTableData(PROJECT, DATASET, TABLE, SECOND_TABLE_DATA_LIST_OPTIONS); + assertTrue(page.hasNextPage()); + page = page.getNextPage(); + assertNull(page.getNextPageToken()); + verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, SECOND_TABLE_DATA_LIST_OPTIONS); + } + // The "minimally initialized" Job that lets Job.fromPb run without throwing. private static com.google.api.services.bigquery.model.Job newJobPb() { return new com.google.api.services.bigquery.model.Job() diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 44125ce77206..05332ba6ae35 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -112,6 +112,7 @@ import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.nio.file.FileSystems; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -365,6 +366,9 @@ public class ITBigQueryTest { private static final Set PUBLIC_DATASETS = ImmutableSet.of("github_repos", "hacker_news", "noaa_gsod", "samples", "usa_names"); + private static final String PUBLIC_PROJECT = "bigquery-public-data"; + private static final String PUBLIC_DATASET = "census_bureau_international"; + private static BigQuery bigquery; private static Storage storage; @@ -1342,6 +1346,25 @@ public void testListAllTableData() { assertEquals(2, rowCount); } + @Test + public void testListPageWithStartIndex() { + String tableName = "midyear_population_agespecific"; + TableId tableId = TableId.of(PUBLIC_PROJECT, PUBLIC_DATASET, tableName); + Table table = bigquery.getTable(tableId); + long numRows = table.getNumRows().longValue(); + Page tableResult = + bigquery.listTableData( + tableId, + BigQuery.TableDataListOption.startIndex(numRows - 300_000L), + BigQuery.TableDataListOption.pageSize(600_000L)); + assertNotNull(tableResult.getNextPageToken()); + long totalRows = ((Collection) tableResult.getValues()).size(); + tableResult = tableResult.getNextPage(); + totalRows = totalRows + ((Collection) tableResult.getValues()).size(); + assertNull(tableResult.getNextPageToken()); + assertEquals(300_000L, totalRows); + } + @Test public void testModelLifecycle() throws InterruptedException { From 4ea34b55d43d3e58215bc7019ff86d56864feacd Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 13 Oct 2020 14:04:23 -0700 Subject: [PATCH 0847/3441] chore: regenerate README (#796) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 3 --- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 325808ff0d12..a3f49e710a5c 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "257edfc14ef09efc4474eb5aba08ccf4d7c199c0" + "sha": "71e7d4804e1facfb921892dc702adaec35e47cd0" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "487eba79f8260e34205d8ceb1ebcc65685085e19" + "sha": "3c1fd09ba8d1c7b7092662f6f8330f521d4e7739" } } ] diff --git a/README.md b/README.md index edda4b8c27e2..5ed4380a4157 100644 --- a/README.md +++ b/README.md @@ -45,8 +45,6 @@ If you are using Maven without BOM, add this to your dependencies: ``` -[//]: # ({x-version-update-start:google-cloud-bigquery:released}) - If you are using Gradle, add this to your dependencies ```Groovy compile 'com.google.cloud:google-cloud-bigquery:1.122.2' @@ -55,7 +53,6 @@ If you are using SBT, add this to your dependencies ```Scala libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.122.2" ``` -[//]: # ({x-version-update-end}) ## Authentication From f2fa96a77a83017a2967e6d6a9aaff91a053841f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 14 Oct 2020 07:50:20 -0700 Subject: [PATCH 0848/3441] ci(java): suggest formatting fixes (#800) GitHub action config to run the java formatter and suggest inline fixes on the pull request. This was tested in java-asset: [example PR](https://github.com/googleapis/java-asset/pull/392). Source-Author: Jeff Ching Source-Date: Tue Oct 13 09:04:08 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: b65ef07d99946d23e900ef2cc490274a16edd336 Source-Link: https://github.com/googleapis/synthtool/commit/b65ef07d99946d23e900ef2cc490274a16edd336 --- .github/workflows/formatting.yaml | 25 +++++++++++++++++++++++++ synth.metadata | 5 +++-- 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/formatting.yaml diff --git a/.github/workflows/formatting.yaml b/.github/workflows/formatting.yaml new file mode 100644 index 000000000000..d4d367cfce03 --- /dev/null +++ b/.github/workflows/formatting.yaml @@ -0,0 +1,25 @@ +on: + pull_request_target: + types: [opened, synchronize] + branches: + - master +name: format +jobs: + format-code: + runs-on: ubuntu-latest + env: + ACCESS_TOKEN: ${{ secrets.YOSHI_CODE_BOT_TOKEN }} + steps: + - uses: actions/checkout@v2 + with: + ref: ${{github.event.pull_request.head.ref}} + repository: ${{github.event.pull_request.head.repo.full_name}} + - uses: actions/setup-java@v1 + with: + java-version: 11 + - run: "mvn com.coveo:fmt-maven-plugin:format" + - uses: googleapis/code-suggester@v1.8.0 + with: + command: review + pull_number: ${{ github.event.pull_request.number }} + git_dir: '.' diff --git a/synth.metadata b/synth.metadata index a84971382182..7318209edc80 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "afadff94bc9a769a2fb3b44ce423cec7c6b029fb" + "sha": "4ea34b55d43d3e58215bc7019ff86d56864feacd" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "0762e8ee2ec21cdfc4d82020b985a104feb0453b" + "sha": "b65ef07d99946d23e900ef2cc490274a16edd336" } } ], @@ -26,6 +26,7 @@ ".github/trusted-contribution.yml", ".github/workflows/auto-release.yaml", ".github/workflows/ci.yaml", + ".github/workflows/formatting.yaml", ".github/workflows/samples.yaml", ".kokoro/build.bat", ".kokoro/build.sh", From 81aa9a0db8f26cc28c1e2354f1ef6e0d3a07de35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2020 10:52:26 -0400 Subject: [PATCH 0849/3441] build(deps): bump junit from 4.13 to 4.13.1 (#794) Bumps [junit](https://github.com/junit-team/junit4) from 4.13 to 4.13.1. - [Release notes](https://github.com/junit-team/junit4/releases) - [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.13.1.md) - [Commits](https://github.com/junit-team/junit4/compare/r4.13...r4.13.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 7ef3b3a3fb72..b2b916977e4b 100644 --- a/pom.xml +++ b/pom.xml @@ -99,7 +99,7 @@ junit junit - 4.13 + 4.13.1 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 1bead2970c6d..33c6988f922a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ junit junit - 4.13 + 4.13.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 033961dbbc24..86edfb50170d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ junit junit - 4.13 + 4.13.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0ea02a0c4d31..79792b64307f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ junit junit - 4.13 + 4.13.1 test From 193c8860d3a21e56b6ebe77240bd4eee3d19ee72 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 15 Oct 2020 20:23:17 +0530 Subject: [PATCH 0850/3441] feat: add requirePartitionFilter field in HivePartitioningOptions (#803) --- .../bigquery/HivePartitioningOptions.java | 30 +++++++++++++++++++ .../bigquery/HivePartitioningOptionsTest.java | 5 ++++ pom.xml | 2 +- 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java index 08694285a839..db6e434ce6a9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java @@ -23,17 +23,20 @@ public final class HivePartitioningOptions { private final String mode; + private final Boolean requirePartitionFilter; private final String sourceUriPrefix; public static final class Builder { private String mode; + private Boolean requirePartitionFilter; private String sourceUriPrefix; private Builder() {} private Builder(HivePartitioningOptions options) { this.mode = options.mode; + this.requirePartitionFilter = options.requirePartitionFilter; this.sourceUriPrefix = options.sourceUriPrefix; } @@ -50,6 +53,17 @@ public Builder setMode(String mode) { return this; } + /** + * [Optional] If set to true, queries over this table require a partition filter that can be + * used for partition elimination to be specified. Note that this field should only be true when + * creating a permanent external table or querying a temporary external table. Hive-partitioned + * loads with requirePartitionFilter explicitly set to true will fail. + */ + public Builder setRequirePartitionFilter(Boolean requirePartitionFilter) { + this.requirePartitionFilter = requirePartitionFilter; + return this; + } + /** * [Optional] When hive partition detection is requested, a common prefix for all source uris * should be supplied. The prefix must end immediately before the partition key encoding begins. @@ -72,6 +86,7 @@ public HivePartitioningOptions build() { private HivePartitioningOptions(Builder builder) { this.mode = builder.mode; + this.requirePartitionFilter = builder.requirePartitionFilter; this.sourceUriPrefix = builder.sourceUriPrefix; } @@ -80,6 +95,14 @@ public String getMode() { return mode; } + /** + * Returns true if a partition filter (that can be used for partition elimination) is required for + * queries over this table. + */ + public Boolean getRequirePartitionFilter() { + return requirePartitionFilter; + } + /* Returns the sourceUriPrefix of hive partitioning */ public String getSourceUriPrefix() { return sourceUriPrefix; @@ -99,6 +122,7 @@ public static Builder newBuilder() { public String toString() { return MoreObjects.toStringHelper(this) .add("mode", mode) + .add("requirePartitionFilter", requirePartitionFilter) .add("sourceUriPrefix", sourceUriPrefix) .toString(); } @@ -109,6 +133,8 @@ public boolean equals(Object obj) { || obj != null && obj.getClass().equals(HivePartitioningOptions.class) && Objects.equals(mode, ((HivePartitioningOptions) obj).getMode()) + && Objects.equals( + requirePartitionFilter, ((HivePartitioningOptions) obj).getRequirePartitionFilter()) && Objects.equals( sourceUriPrefix, ((HivePartitioningOptions) obj).getSourceUriPrefix()); } @@ -122,6 +148,7 @@ com.google.api.services.bigquery.model.HivePartitioningOptions toPb() { com.google.api.services.bigquery.model.HivePartitioningOptions options = new com.google.api.services.bigquery.model.HivePartitioningOptions(); options.setMode(mode); + options.setRequirePartitionFilter(requirePartitionFilter); options.setSourceUriPrefix(sourceUriPrefix); return options; } @@ -132,6 +159,9 @@ static HivePartitioningOptions fromPb( if (options.getMode() != null) { builder.setMode(options.getMode()); } + if (options.getRequirePartitionFilter() != null) { + builder.setRequirePartitionFilter(options.getRequirePartitionFilter()); + } if (options.getSourceUriPrefix() != null) { builder.setSourceUriPrefix(options.getSourceUriPrefix()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java index 6c2aa5427f68..05bf05b9a194 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java @@ -24,9 +24,11 @@ public class HivePartitioningOptionsTest { private static final String MODE = "STRING"; private static final String SOURCE_URI_PREFIX = "gs://bucket/path_to_table"; + private static final Boolean REQUIRE_PARTITION_FILTER = true; private static final HivePartitioningOptions HIVE_PARTITIONING_OPTIONS = HivePartitioningOptions.newBuilder() .setMode(MODE) + .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) .setSourceUriPrefix(SOURCE_URI_PREFIX) .build(); @@ -49,6 +51,8 @@ public void testToBuilderIncomplete() { @Test public void testBuilder() { assertThat(HIVE_PARTITIONING_OPTIONS.getMode()).isEqualTo(MODE); + assertThat(HIVE_PARTITIONING_OPTIONS.getRequirePartitionFilter()) + .isEqualTo(REQUIRE_PARTITION_FILTER); assertThat(HIVE_PARTITIONING_OPTIONS.getSourceUriPrefix()).isEqualTo(SOURCE_URI_PREFIX); } @@ -62,6 +66,7 @@ public void testToAndFromPb() { private void compareHivePartitioningOptions( HivePartitioningOptions expected, HivePartitioningOptions value) { assertThat(value.getMode()).isEqualTo(expected.getMode()); + assertThat(value.getRequirePartitionFilter()).isEqualTo(expected.getRequirePartitionFilter()); assertThat(value.getSourceUriPrefix()).isEqualTo(expected.getSourceUriPrefix()); assertThat(value.toString()).isEqualTo(expected.toString()); assertThat(value.hashCode()).isEqualTo(expected.hashCode()); diff --git a/pom.xml b/pom.xml index b2b916977e4b..c9b580e9da07 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20200916-1.30.10 + v2-rev20200925-1.30.10 From 8563f8f1835d420b88ea451939d5991f0501aaca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2020 14:54:02 +0000 Subject: [PATCH 0851/3441] build(deps-dev): bump junit from 4.13 to 4.13.1 in /samples/snippets (#797) Bumps [junit](https://github.com/junit-team/junit4) from 4.13 to 4.13.1.
    Release notes

    Sourced from junit's releases.

    JUnit 4.13.1

    Please refer to the release notes for details.

    Changelog

    Sourced from junit's changelog.

    Summary of changes in version 4.13.1

    Rules

    Security fix: TemporaryFolder now limits access to temporary folders on Java 1.7 or later

    A local information disclosure vulnerability in TemporaryFolder has been fixed. See the published security advisory for details.

    Test Runners

    [Pull request #1669:](junit-team/junit#1669) Make FrameworkField constructor public

    Prior to this change, custom runners could make FrameworkMethod instances, but not FrameworkField instances. This small change allows for both now, because FrameworkField's constructor has been promoted from package-private to public.

    Commits
    • 1b683f4 [maven-release-plugin] prepare release r4.13.1
    • ce6ce3a Draft 4.13.1 release notes
    • c29dd82 Change version to 4.13.1-SNAPSHOT
    • 1d17486 Add a link to assertThrows in exception testing
    • 543905d Use separate line for annotation in Javadoc
    • 510e906 Add sub headlines to class Javadoc
    • 610155b Merge pull request from GHSA-269g-pwp5-87pp
    • b6cfd1e Explicitly wrap float parameter for consistency (#1671)
    • a5d205c Fix GitHub link in FAQ (#1672)
    • 3a5c6b4 Deprecated since jdk9 replacing constructor instance of Double and Float (#1660)
    • Additional commits viewable in compare view

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=junit:junit&package-manager=maven&previous-version=4.13&new-version=4.13.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/configuring-github-dependabot-security-updates) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/googleapis/java-bigquery/network/alerts).
    From 7a7a5b9465b50d7fc1d5b12bbd1cb535e1b3dd9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2020 14:54:08 +0000 Subject: [PATCH 0852/3441] build(deps-dev): bump junit from 4.13 to 4.13.1 in /samples/install-without-bom (#798) Bumps [junit](https://github.com/junit-team/junit4) from 4.13 to 4.13.1.
    Release notes

    Sourced from junit's releases.

    JUnit 4.13.1

    Please refer to the release notes for details.

    Changelog

    Sourced from junit's changelog.

    Summary of changes in version 4.13.1

    Rules

    Security fix: TemporaryFolder now limits access to temporary folders on Java 1.7 or later

    A local information disclosure vulnerability in TemporaryFolder has been fixed. See the published security advisory for details.

    Test Runners

    [Pull request #1669:](junit-team/junit#1669) Make FrameworkField constructor public

    Prior to this change, custom runners could make FrameworkMethod instances, but not FrameworkField instances. This small change allows for both now, because FrameworkField's constructor has been promoted from package-private to public.

    Commits
    • 1b683f4 [maven-release-plugin] prepare release r4.13.1
    • ce6ce3a Draft 4.13.1 release notes
    • c29dd82 Change version to 4.13.1-SNAPSHOT
    • 1d17486 Add a link to assertThrows in exception testing
    • 543905d Use separate line for annotation in Javadoc
    • 510e906 Add sub headlines to class Javadoc
    • 610155b Merge pull request from GHSA-269g-pwp5-87pp
    • b6cfd1e Explicitly wrap float parameter for consistency (#1671)
    • a5d205c Fix GitHub link in FAQ (#1672)
    • 3a5c6b4 Deprecated since jdk9 replacing constructor instance of Double and Float (#1660)
    • Additional commits viewable in compare view

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=junit:junit&package-manager=maven&previous-version=4.13&new-version=4.13.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/configuring-github-dependabot-security-updates) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/googleapis/java-bigquery/network/alerts).
    From 446baf7191dfd4560f68d90c280ec17be4f2d460 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2020 12:01:57 -0400 Subject: [PATCH 0853/3441] build(deps-dev): bump junit from 4.13 to 4.13.1 in /samples/snapshot (#799) Bumps [junit](https://github.com/junit-team/junit4) from 4.13 to 4.13.1. - [Release notes](https://github.com/junit-team/junit4/releases) - [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.13.1.md) - [Commits](https://github.com/junit-team/junit4/compare/r4.13...r4.13.1) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 467896a890e6934506a7ca06a49d1d888118305f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 15 Oct 2020 15:38:28 -0700 Subject: [PATCH 0854/3441] ci(java): restrict presubmit samples ITs to only snapshot (#806) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/ec8d771f-8e30-4cce-b0a7-d7d1da4dbcbc/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/27e0e916cbfdb3d5ff6639b686cc04f78a0b0386 --- .kokoro/build.sh | 11 +++++++++-- synth.metadata | 4 ++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 22c0237b166c..93d8a97705b5 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -69,9 +69,16 @@ integration) RETURN_CODE=$? ;; samples) - if [[ -f samples/pom.xml ]] + SAMPLES_DIR=samples + # only run ITs in snapshot/ on presubmit PRs. run ITs in all 3 samples/ subdirectories otherwise. + if [[ ! -z ${KOKORO_GITHUB_PULL_REQUEST_NUMBER} ]] then - pushd samples + SAMPLES_DIR=samples/snapshot + fi + + if [[ -f ${SAMPLES_DIR}/pom.xml ]] + then + pushd {SAMPLES_DIR} mvn -B \ -Penable-samples \ -DtrimStackTrace=false \ diff --git a/synth.metadata b/synth.metadata index 7318209edc80..b94e6cfcf951 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "4ea34b55d43d3e58215bc7019ff86d56864feacd" + "sha": "446baf7191dfd4560f68d90c280ec17be4f2d460" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "b65ef07d99946d23e900ef2cc490274a16edd336" + "sha": "27e0e916cbfdb3d5ff6639b686cc04f78a0b0386" } } ], From d0392421bb9a7f4a8e9b3d2cc29ce4f09ca422e8 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 16 Oct 2020 07:36:18 -0700 Subject: [PATCH 0855/3441] build(java): auto-approve README regeneration (#807) Source-Author: Jeff Ching Source-Date: Thu Oct 15 16:04:06 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 7c5370937dd9ba9dcf9cd7d2af880a58b389b4f1 Source-Link: https://github.com/googleapis/synthtool/commit/7c5370937dd9ba9dcf9cd7d2af880a58b389b4f1 --- .github/workflows/approve-readme.yaml | 54 +++++++++++++++++++++++++++ synth.metadata | 5 ++- 2 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/approve-readme.yaml diff --git a/.github/workflows/approve-readme.yaml b/.github/workflows/approve-readme.yaml new file mode 100644 index 000000000000..e2d841d6c5a0 --- /dev/null +++ b/.github/workflows/approve-readme.yaml @@ -0,0 +1,54 @@ +on: + pull_request: +name: auto-merge-readme +jobs: + approve: + runs-on: ubuntu-latest + if: github.repository_owner == 'googleapis' && github.head_ref == 'autosynth-readme' + steps: + - uses: actions/github-script@v3.0.0 + with: + github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} + script: | + // only approve PRs from yoshi-automation + if (context.payload.pull_request.user.login !== "yoshi-automation") { + return; + } + + // only approve PRs like "chore: release " + if (!context.payload.pull_request.title === "chore: regenerate README") { + return; + } + + // only approve PRs with README.md and synth.metadata changes + const files = new Set( + ( + await github.paginate( + github.pulls.listFiles.endpoint({ + owner: context.repo.owner, + repo: context.repo.repo, + pull_number: context.payload.pull_request.number, + }) + ) + ).map(file => file.filename) + ); + if (files.size != 2 || !files.has("README.md") || !files.has(".github/readme/synth.metadata/synth.metadata")) { + return; + } + + // approve README regeneration PR + await github.pulls.createReview({ + owner: context.repo.owner, + repo: context.repo.repo, + body: 'Rubber stamped PR!', + pull_number: context.payload.pull_request.number, + event: 'APPROVE' + }); + + // attach automerge label + await github.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.payload.pull_request.number, + labels: ['automerge'] + }); diff --git a/synth.metadata b/synth.metadata index b94e6cfcf951..e55bf20a6513 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "446baf7191dfd4560f68d90c280ec17be4f2d460" + "sha": "467896a890e6934506a7ca06a49d1d888118305f" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "27e0e916cbfdb3d5ff6639b686cc04f78a0b0386" + "sha": "7c5370937dd9ba9dcf9cd7d2af880a58b389b4f1" } } ], @@ -24,6 +24,7 @@ ".github/readme/synth.py", ".github/release-please.yml", ".github/trusted-contribution.yml", + ".github/workflows/approve-readme.yaml", ".github/workflows/auto-release.yaml", ".github/workflows/ci.yaml", ".github/workflows/formatting.yaml", From c0f171406ef4f924b82c9c128d5a296c6614ce20 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 16 Oct 2020 20:46:52 +0200 Subject: [PATCH 0856/3441] chore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.21 (#809) --- samples/install-without-bom/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 33c6988f922a..edb7ebdb2332 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.18 + 1.0.21 diff --git a/samples/pom.xml b/samples/pom.xml index ce09b2f3ab10..b2e32cf3fd1f 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -34,7 +34,7 @@ com.google.cloud.samples shared-configuration - 1.0.18 + 1.0.21 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 86edfb50170d..7a61fa13a3b4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.18 + 1.0.21 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 79792b64307f..88e4a0eddd01 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -26,7 +26,7 @@ com.google.cloud.samples shared-configuration - 1.0.18 + 1.0.21 From 3830151b063c0719ecdddd5d89338a92d52b0ad1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 16 Oct 2020 20:47:12 +0200 Subject: [PATCH 0857/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.122.2 (#810) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index edb7ebdb2332..1c76c1ec0833 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.120.0 + 1.122.2 From 27a86a06de63fef62b63307e0e01060e91efe0f6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 16 Oct 2020 20:47:40 +0200 Subject: [PATCH 0858/3441] deps: update core transport dependencies to v1.31.1 (#811) --- samples/install-without-bom/pom.xml | 4 ++-- samples/snapshot/pom.xml | 4 ++-- samples/snippets/pom.xml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 1c76c1ec0833..17f47e02e129 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,12 +52,12 @@ com.google.oauth-client google-oauth-client-java6 - 1.31.0 + 1.31.1 com.google.oauth-client google-oauth-client-jetty - 1.31.0 + 1.31.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7a61fa13a3b4..9fb269fab67f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,12 +50,12 @@ com.google.oauth-client google-oauth-client-java6 - 1.31.0 + 1.31.1 com.google.oauth-client google-oauth-client-jetty - 1.31.0 + 1.31.1 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 88e4a0eddd01..e9ea7562e565 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -63,12 +63,12 @@ com.google.oauth-client google-oauth-client-java6 - 1.31.0 + 1.31.1 com.google.oauth-client google-oauth-client-jetty - 1.31.0 + 1.31.1 From 89f34c6cd282d402a64e87614953491df3f1cdbe Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 16 Oct 2020 20:47:56 +0200 Subject: [PATCH 0859/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20201007-1.30.10 (#812) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c9b580e9da07..07be6db1e78f 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20200925-1.30.10 + v2-rev20201007-1.30.10 From 791bf253c7828daaf04fe5bec0ae8798e12dc2bc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 16 Oct 2020 20:48:22 +0200 Subject: [PATCH 0860/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.16.2 (#813) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 17f47e02e129..c794ee79f7b9 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.15.0 + 1.16.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9fb269fab67f..111ba022d0d8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.15.0 + 1.16.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e9ea7562e565..063383dc1534 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.15.0 + 1.16.2 test From e5fd40fdc6de483a0f063cde83af1a6e23173c29 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 16 Oct 2020 20:48:57 +0200 Subject: [PATCH 0861/3441] deps: update jmh.version to v1.26 (#815) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index dfdd3bf04fb8..edcc284f60d7 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.25.2 + 1.26 benchmark From 8082ff231001c76f97077df25308859c5dfbfc80 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 16 Oct 2020 20:49:16 +0200 Subject: [PATCH 0862/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v12 (#816) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 063383dc1534..8b7bc6589a14 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 11.1.0 + 12.1.0 pom import From 32fad742ada2ec26905e65e88a1cc4ee7a5e6425 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 16 Oct 2020 14:54:06 -0400 Subject: [PATCH 0863/3441] chore: add version property tag (#817) --- pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 07be6db1e78f..3fde6b655773 100644 --- a/pom.xml +++ b/pom.xml @@ -65,6 +65,7 @@ google-cloud-bigquery-parent v2-rev20201007-1.30.10 + 0.10.0 @@ -72,7 +73,7 @@ com.google.cloud google-cloud-shared-dependencies - 0.10.0 + ${google.cloud.shared-dependencies.version} pom import From 43cf389c042a63ecc6f4bda57b0873c95a7459a9 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 16 Oct 2020 12:02:11 -0700 Subject: [PATCH 0864/3441] chore: regenerate README (#818) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-16 18:50:48,612 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-16 18:50:49,633 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/ddf6b66a-2ca8-4e96-9a24-4e8b6454ff0f/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index a3f49e710a5c..bd24e9c5a1c8 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "71e7d4804e1facfb921892dc702adaec35e47cd0" + "sha": "8082ff231001c76f97077df25308859c5dfbfc80" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "3c1fd09ba8d1c7b7092662f6f8330f521d4e7739" + "sha": "da5c6050d13b4950c82666a81d8acd25157664ae" } } ] diff --git a/README.md b/README.md index 5ed4380a4157..a080428b720e 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 11.1.0 + 12.1.0 pom import @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.120.0 + 1.122.2 ``` From 477a8e39ce85408c745ebcc72a136b31edf66f05 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 19 Oct 2020 21:28:02 +0530 Subject: [PATCH 0865/3441] docs(samples): add omni create aws dataset (#821) --- .../example/bigquery/CreateDatasetAws.java | 53 ++++++++++++ .../example/bigquery/CreateDatasetAwsIT.java | 81 +++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java b/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java new file mode 100644 index 000000000000..cd4aa8544b23 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java @@ -0,0 +1,53 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_omni_create_dataset] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetInfo; + +// Sample to create a aws dataset +public class CreateDatasetAws { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + // Note: As of now location only supports aws-us-east-1 + String location = "aws-us-east-1"; + createDatasetAws(datasetName, location); + } + + public static void createDatasetAws(String datasetName, String location) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).setLocation(location).build(); + + Dataset dataset = bigquery.create(datasetInfo); + System.out.println( + "Aws dataset created successfully :" + dataset.getDatasetId().getDataset()); + } catch (BigQueryException e) { + System.out.println("Aws dataset was not created. \n" + e.toString()); + } + } +} +// [END bigquery_omni_create_dataset] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java new file mode 100644 index 000000000000..bc315872c5f7 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java @@ -0,0 +1,81 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateDatasetAwsIT { + + private static final String ID = UUID.randomUUID().toString().substring(0, 8); + private static final String LOCATION = "aws-us-east-1"; + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String datasetName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String GOOGLE_CLOUD_PROJECT = requireEnvVar("OMNI_PROJECT_ID"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + datasetName = "CREATE_DATASET_AWS_TEST_" + ID; + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, datasetName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testCreateDatasetAws() { + CreateDatasetAws.createDatasetAws(datasetName, LOCATION); + assertThat(bout.toString()).contains("Aws dataset created successfully :"); + } +} From 137eeaa83a855cdb1009a9ac775e2e18a2e6f36f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 19 Oct 2020 09:14:02 -0700 Subject: [PATCH 0866/3441] chore: regenerate README (#822) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-19 16:00:17,280 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-19 16:00:18,293 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/990d3f1c-df25-4d06-a9e0-cc22c68d7a0a/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index bd24e9c5a1c8..0a69277390b8 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "8082ff231001c76f97077df25308859c5dfbfc80" + "sha": "477a8e39ce85408c745ebcc72a136b31edf66f05" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "da5c6050d13b4950c82666a81d8acd25157664ae" + "sha": "77c5ba85e05950f5b19ce8a553c1c0db2fba9896" } } ] diff --git a/README.md b/README.md index a080428b720e..942a65cdb563 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,7 @@ has instructions for running the samples. | Copy Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java) | | Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | | Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | +| Create Dataset Aws | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | | Create Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | | Create Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | | Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | From f2799dd9a4323460843aa6df7ac7c2f092c7f1b3 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 19 Oct 2020 22:44:57 +0530 Subject: [PATCH 0867/3441] fix: schema and totalRows for duplicate request ids (#804) * fix: schema and totalRows for duplicate request ids * fix: modify code and test case * fix: address comment --- .../google/cloud/bigquery/BigQueryImpl.java | 25 +++++++---- .../cloud/bigquery/it/ITBigQueryTest.java | 44 +++++++++++++++++++ 2 files changed, 61 insertions(+), 8 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 76067be0db23..a19c65e63473 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1239,7 +1239,8 @@ public TableResult query(QueryJobConfiguration configuration, JobOption... optio } private TableResult queryRpc( - final String projectId, final QueryRequest content, JobOption... options) { + final String projectId, final QueryRequest content, JobOption... options) + throws InterruptedException { com.google.api.services.bigquery.model.QueryResponse results; try { results = @@ -1265,14 +1266,22 @@ public com.google.api.services.bigquery.model.QueryResponse call() { throw new BigQueryException(bigQueryErrors); } - Schema schema = results.getSchema() == null ? null : Schema.fromPb(results.getSchema()); - Long numRows; - if (results.getNumDmlAffectedRows() == null && results.getTotalRows() == null) { - numRows = 0L; - } else if (results.getNumDmlAffectedRows() != null) { - numRows = results.getNumDmlAffectedRows(); + long numRows; + Schema schema; + if (results.getSchema() == null && results.getJobComplete()) { + JobId jobId = JobId.fromPb(results.getJobReference()); + Job job = getJob(jobId, options); + TableResult tableResult = job.getQueryResults(); + return tableResult; } else { - numRows = results.getTotalRows().longValue(); + schema = results.getSchema() == null ? null : Schema.fromPb(results.getSchema()); + if (results.getNumDmlAffectedRows() == null && results.getTotalRows() == null) { + numRows = 0L; + } else if (results.getNumDmlAffectedRows() != null) { + numRows = results.getNumDmlAffectedRows(); + } else { + numRows = results.getTotalRows().longValue(); + } } if (results.getPageToken() != null) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 05332ba6ae35..36ad12d687e3 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1608,6 +1608,35 @@ public void testFastQueryMultipleRuns() throws InterruptedException { assertFalse(result2.hasNextPage()); } + @Test + public void testFastQuerySinglePageDuplicateRequestIds() throws InterruptedException { + String query = + "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FASTQUERY.getTable(); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); + TableResult result = bigquery.query(config); + assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); + assertEquals(2, result.getTotalRows()); + assertNull(result.getNextPage()); + assertNull(result.getNextPageToken()); + assertFalse(result.hasNextPage()); + + TableResult result1 = bigquery.query(config); + assertEquals(QUERY_RESULT_SCHEMA, result1.getSchema()); + assertEquals(2, result1.getTotalRows()); + assertNull(result1.getNextPage()); + assertNull(result1.getNextPageToken()); + assertFalse(result1.hasNextPage()); + + config.toBuilder().setQuery(query).build(); + TableResult result2 = bigquery.query(config); + assertEquals(QUERY_RESULT_SCHEMA, result2.getSchema()); + assertEquals(2, result2.getTotalRows()); + assertNull(result2.getNextPage()); + assertNull(result2.getNextPageToken()); + assertFalse(result2.hasNextPage()); + } + @Test public void testFastSQLQuery() throws InterruptedException { String query = @@ -1650,6 +1679,21 @@ public void testFastSQLQueryMultiPage() throws InterruptedException { assertNotNull(result.getNextPage()); assertNotNull(result.getNextPageToken()); assertTrue(result.hasNextPage()); + + TableResult result1 = bigquery.query(config); + assertEquals(LARGE_TABLE_SCHEMA, result.getSchema()); + assertEquals(313348, result.getTotalRows()); + assertNotNull(result1.getNextPage()); + assertNotNull(result1.getNextPageToken()); + assertTrue(result1.hasNextPage()); + + config.toBuilder().setQuery(query).build(); + TableResult result2 = bigquery.query(config); + assertEquals(LARGE_TABLE_SCHEMA, result2.getSchema()); + assertEquals(313348, result2.getTotalRows()); + assertNotNull(result2.getNextPage()); + assertNotNull(result2.getNextPageToken()); + assertTrue(result2.hasNextPage()); } @Test From 395de8d1d2523d42ee8ba535f6dc664a41752436 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 19 Oct 2020 22:06:03 +0200 Subject: [PATCH 0868/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.9.3 (#808) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | patch | `0.9.2` -> `0.9.3` | --- ### Release Notes
    googleapis/java-shared-config ### [`v0.9.3`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​093-httpswwwgithubcomgoogleapisjava-shared-configcomparev092v093-2020-10-15) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v0.9.2...v0.9.3)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- google-cloud-bigquery/pom.xml | 6 ++++++ pom.xml | 13 +------------ 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7d3d6389897a..a6b5ccfc2962 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -82,6 +82,12 @@ threetenbp
    + + + com.google.errorprone + error_prone_annotations + + junit diff --git a/pom.xml b/pom.xml index 3fde6b655773..87902da1719d 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.9.2 + 0.9.3 @@ -124,17 +124,6 @@ - - - - - org.apache.maven.plugins - maven-dependency-plugin - - - - - google-cloud-bigquery From fc3cf2a4151e154e5240938579b50183242db1d8 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 20 Oct 2020 02:06:03 +0530 Subject: [PATCH 0869/3441] docs(samples): add omni create external table (#823) --- samples/install-without-bom/pom.xml | 6 + samples/snapshot/pom.xml | 6 + samples/snippets/pom.xml | 6 + .../example/bigquery/CreateDatasetAws.java | 8 +- .../bigquery/CreateExternalTableAws.java | 61 ++++++++ .../example/bigquery/CreateDatasetAwsIT.java | 6 +- .../bigquery/CreateExternalTableAwsIT.java | 137 ++++++++++++++++++ 7 files changed, 224 insertions(+), 6 deletions(-) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c794ee79f7b9..f19763fda218 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -66,6 +66,12 @@ 1.16.2 test + + com.google.cloud + google-cloud-bigqueryconnection + 0.4.0 + test + junit junit diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 111ba022d0d8..b9be2df99b92 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -64,6 +64,12 @@ 1.16.2 test + + com.google.cloud + google-cloud-bigqueryconnection + 0.4.0 + test + junit junit diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 8b7bc6589a14..4552bace1f0c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,6 +79,12 @@ 1.16.2 test + + com.google.cloud + google-cloud-bigqueryconnection + 0.4.0 + test + junit junit diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java b/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java index cd4aa8544b23..f5b4f0cdc844 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java @@ -28,19 +28,21 @@ public class CreateDatasetAws { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; String datasetName = "MY_DATASET_NAME"; // Note: As of now location only supports aws-us-east-1 String location = "aws-us-east-1"; - createDatasetAws(datasetName, location); + createDatasetAws(projectId, datasetName, location); } - public static void createDatasetAws(String datasetName, String location) { + public static void createDatasetAws(String projectId, String datasetName, String location) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).setLocation(location).build(); + DatasetInfo datasetInfo = + DatasetInfo.newBuilder(projectId, datasetName).setLocation(location).build(); Dataset dataset = bigquery.create(datasetInfo); System.out.println( diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java b/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java new file mode 100644 index 000000000000..02dd669c8df9 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java @@ -0,0 +1,61 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.CsvOptions; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; + +public class CreateExternalTableAws { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + // Create a aws connection + // projects/{project_id}/locations/{location_id}/connections/{connection_id} + String connectionId = "MY_CONNECTION_NAME"; + String sourceUri = "s3://your-bucket-name/"; + CsvOptions options = CsvOptions.newBuilder().setSkipLeadingRows(1).build(); + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.newBuilder(sourceUri, options) + .setConnectionId(connectionId) + .build(); + createExternalTableAws(datasetName, tableName, externalTableDefinition); + } + + public static void createExternalTableAws( + String datasetName, String tableName, ExternalTableDefinition externalTableDefinition) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + TableInfo tableInfo = TableInfo.newBuilder(tableId, externalTableDefinition).build(); + + bigquery.create(tableInfo); + System.out.println("Aws external table created successfully"); + } catch (BigQueryException e) { + System.out.println("Aws external was not created." + e.toString()); + } + } +} diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java index bc315872c5f7..6adb601f36f9 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java @@ -39,7 +39,7 @@ public class CreateDatasetAwsIT { private PrintStream out; private PrintStream originalPrintStream; - private static final String GOOGLE_CLOUD_PROJECT = requireEnvVar("OMNI_PROJECT_ID"); + private static final String PROJECT_ID = requireEnvVar("OMNI_PROJECT_ID"); private static String requireEnvVar(String varName) { String value = System.getenv(varName); @@ -66,7 +66,7 @@ public void setUp() { @After public void tearDown() { // Clean up - DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, datasetName); + DeleteDataset.deleteDataset(PROJECT_ID, datasetName); // restores print statements in the original method System.out.flush(); System.setOut(originalPrintStream); @@ -75,7 +75,7 @@ public void tearDown() { @Test public void testCreateDatasetAws() { - CreateDatasetAws.createDatasetAws(datasetName, LOCATION); + CreateDatasetAws.createDatasetAws(PROJECT_ID, datasetName, LOCATION); assertThat(bout.toString()).contains("Aws dataset created successfully :"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java new file mode 100644 index 000000000000..16b047398da3 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java @@ -0,0 +1,137 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.CsvOptions; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.connection.v1.AwsCrossAccountRole; +import com.google.cloud.bigquery.connection.v1.AwsProperties; +import com.google.cloud.bigquery.connection.v1.Connection; +import com.google.cloud.bigquery.connection.v1.CreateConnectionRequest; +import com.google.cloud.bigquery.connection.v1.DeleteConnectionRequest; +import com.google.cloud.bigquery.connection.v1.LocationName; +import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateExternalTableAwsIT { + + private static final String ID = UUID.randomUUID().toString().substring(0, 8); + private static final String LOCATION = "aws-us-east-1"; + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String datasetName; + private String tableName; + private String connectionName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String PROJECT_ID = requireEnvVar("OMNI_PROJECT_ID"); + private static final String AWS_ACCOUNT_ID = requireEnvVar("AWS_ACCOUNT_ID"); + private static final String AWS_ROLE_ID = requireEnvVar("AWS_ROLE_ID"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("OMNI_PROJECT_ID"); + requireEnvVar("AWS_ACCOUNT_ID"); + requireEnvVar("AWS_ROLE_ID"); + } + + @Before + public void setUp() throws IOException { + datasetName = "CREATE_EXTERNAL_TABLE_AWS_TEST_" + ID; + tableName = "CREATE_EXTERNAL_TABLE_AWS_TEST_" + ID; + connectionName = "CREATE_EXTERNAL_TABLE_AWS_TEST_" + ID; + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + // create a temporary aws connection + try (ConnectionServiceClient client = ConnectionServiceClient.create()) { + LocationName parent = LocationName.of(PROJECT_ID, LOCATION); + String iamRoleId = String.format("arn:aws:iam::%s:role/%s", AWS_ACCOUNT_ID, AWS_ROLE_ID); + AwsCrossAccountRole role = AwsCrossAccountRole.newBuilder().setIamRoleId(iamRoleId).build(); + AwsProperties awsProperties = AwsProperties.newBuilder().setCrossAccountRole(role).build(); + Connection connection = Connection.newBuilder().setAws(awsProperties).build(); + CreateConnectionRequest request = + CreateConnectionRequest.newBuilder() + .setParent(parent.toString()) + .setConnection(connection) + .setConnectionId(connectionName) + .build(); + connectionName = client.createConnection(request).getName(); + } + // create a temporary dataset + CreateDatasetAws.createDatasetAws(PROJECT_ID, datasetName, LOCATION); + } + + @After + public void tearDown() throws IOException { + // delete a temporary aws connection + try (ConnectionServiceClient client = ConnectionServiceClient.create()) { + DeleteConnectionRequest request = + DeleteConnectionRequest.newBuilder().setName(connectionName).build(); + client.deleteConnection(request); + } + // Clean up + DeleteTable.deleteTable(datasetName, tableName); + DeleteDataset.deleteDataset(PROJECT_ID, datasetName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testCreateExternalTableAws() { + String sourceUri = "s3://cloud-samples-tests/us-states.csv"; + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); + CsvOptions options = CsvOptions.newBuilder().setSkipLeadingRows(1).build(); + ExternalTableDefinition externalTable = + ExternalTableDefinition.newBuilder(sourceUri, options) + .setConnectionId(connectionName) + .setSchema(schema) + .build(); + CreateExternalTableAws.createExternalTableAws(datasetName, tableName, externalTable); + assertThat(bout.toString()).contains("Aws external table created successfully"); + } +} From b57198299b6ad04e5ecb387239dc772ad015953d Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 19 Oct 2020 13:48:02 -0700 Subject: [PATCH 0870/3441] chore: regenerate README (#824) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-19 20:38:12,955 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-19 20:38:14,065 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/28a5a0d9-be75-491c-b1b0-caa177964bf7/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 0a69277390b8..7e31e4550ae1 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "477a8e39ce85408c745ebcc72a136b31edf66f05" + "sha": "fc3cf2a4151e154e5240938579b50183242db1d8" } }, { diff --git a/README.md b/README.md index 942a65cdb563..ae07dce4595d 100644 --- a/README.md +++ b/README.md @@ -109,6 +109,7 @@ has instructions for running the samples. | Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | | Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | | Create Dataset Aws | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | +| Create External Table Aws | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java) | | Create Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | | Create Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | | Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | From db24731d910dfa81eba4120a7f631123fd02e4bd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 19 Oct 2020 23:00:04 +0200 Subject: [PATCH 0871/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v0.4.1 (#825) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | patch | `0.4.0` -> `0.4.1` | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v0.4.1`](https://togithub.com/googleapis/java-bigqueryconnection/blob/master/CHANGELOG.md#​041-httpswwwgithubcomgoogleapisjava-bigqueryconnectioncomparev040v041-2020-10-16) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v0.4.0...v0.4.1)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f19763fda218..acd549c1ec71 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 0.4.0 + 0.4.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b9be2df99b92..7cd6715fb469 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 0.4.0 + 0.4.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4552bace1f0c..9e7fb977af01 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 0.4.0 + 0.4.1 test From 02c3a7aa8f0020b1e1918724d5f358a80f86e996 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Mon, 19 Oct 2020 15:13:56 -0700 Subject: [PATCH 0872/3441] chore(deps): reorder dependencies so http-client is before storage (#826) --- google-cloud-bigquery/pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a6b5ccfc2962..c3ad795b3b9f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -25,14 +25,14 @@ com.google.cloud google-cloud-core-http - - com.google.cloud - google-cloud-storage - com.google.http-client google-http-client-jackson2 + + com.google.cloud + google-cloud-storage + com.google.auto.value auto-value-annotations From afe3b185f26b1755b8c46bfb344b9041ee9641e7 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 19 Oct 2020 18:43:00 -0400 Subject: [PATCH 0873/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.12.1 (#827) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 87902da1719d..f1c430829b47 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20201007-1.30.10 - 0.10.0 + 0.12.1
    From 55d5d15853ef21d54da819fd8b816b5af6202b93 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 20 Oct 2020 08:15:33 -0700 Subject: [PATCH 0874/3441] build(java): enable snippet-bot (#829) Source-Author: Jeff Ching Source-Date: Mon Oct 19 16:13:57 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 5a506ec8765cc04f7e29f888b8e9b257d9a7ae11 Source-Link: https://github.com/googleapis/synthtool/commit/5a506ec8765cc04f7e29f888b8e9b257d9a7ae11 --- .github/snippet-bot.yml | 0 synth.metadata | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 .github/snippet-bot.yml diff --git a/.github/snippet-bot.yml b/.github/snippet-bot.yml new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/synth.metadata b/synth.metadata index e55bf20a6513..4c1967571935 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "467896a890e6934506a7ca06a49d1d888118305f" + "sha": "afe3b185f26b1755b8c46bfb344b9041ee9641e7" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7c5370937dd9ba9dcf9cd7d2af880a58b389b4f1" + "sha": "5a506ec8765cc04f7e29f888b8e9b257d9a7ae11" } } ], @@ -23,6 +23,7 @@ ".github/PULL_REQUEST_TEMPLATE.md", ".github/readme/synth.py", ".github/release-please.yml", + ".github/snippet-bot.yml", ".github/trusted-contribution.yml", ".github/workflows/approve-readme.yaml", ".github/workflows/auto-release.yaml", From b2ec44c893093c65153a59ac01e0f42d188e1a60 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 20 Oct 2020 13:56:30 -0400 Subject: [PATCH 0875/3441] chore: release 1.123.0 (#805) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 35 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1797d4577f1e..f7196dc867b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,33 @@ # Changelog +## [1.123.0](https://www.github.com/googleapis/java-bigquery/compare/v1.122.2...v1.123.0) (2020-10-20) + + +### Features + +* add requirePartitionFilter field in HivePartitioningOptions ([#803](https://www.github.com/googleapis/java-bigquery/issues/803)) ([193c886](https://www.github.com/googleapis/java-bigquery/commit/193c8860d3a21e56b6ebe77240bd4eee3d19ee72)) + + +### Bug Fixes + +* fix start index with page size for list rows ([#793](https://www.github.com/googleapis/java-bigquery/issues/793)) ([71e7d48](https://www.github.com/googleapis/java-bigquery/commit/71e7d4804e1facfb921892dc702adaec35e47cd0)) +* schema and totalRows for duplicate request ids ([#804](https://www.github.com/googleapis/java-bigquery/issues/804)) ([f2799dd](https://www.github.com/googleapis/java-bigquery/commit/f2799dd9a4323460843aa6df7ac7c2f092c7f1b3)) + + +### Documentation + +* **samples:** add omni create aws dataset ([#821](https://www.github.com/googleapis/java-bigquery/issues/821)) ([477a8e3](https://www.github.com/googleapis/java-bigquery/commit/477a8e39ce85408c745ebcc72a136b31edf66f05)) +* **samples:** add omni create external table ([#823](https://www.github.com/googleapis/java-bigquery/issues/823)) ([fc3cf2a](https://www.github.com/googleapis/java-bigquery/commit/fc3cf2a4151e154e5240938579b50183242db1d8)) + + +### Dependencies + +* update core transport dependencies to v1.31.1 ([#811](https://www.github.com/googleapis/java-bigquery/issues/811)) ([27a86a0](https://www.github.com/googleapis/java-bigquery/commit/27a86a06de63fef62b63307e0e01060e91efe0f6)) +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20201007-1.30.10 ([#812](https://www.github.com/googleapis/java-bigquery/issues/812)) ([89f34c6](https://www.github.com/googleapis/java-bigquery/commit/89f34c6cd282d402a64e87614953491df3f1cdbe)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.16.2 ([#813](https://www.github.com/googleapis/java-bigquery/issues/813)) ([791bf25](https://www.github.com/googleapis/java-bigquery/commit/791bf253c7828daaf04fe5bec0ae8798e12dc2bc)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.12.1 ([#827](https://www.github.com/googleapis/java-bigquery/issues/827)) ([afe3b18](https://www.github.com/googleapis/java-bigquery/commit/afe3b185f26b1755b8c46bfb344b9041ee9641e7)) +* update jmh.version to v1.26 ([#815](https://www.github.com/googleapis/java-bigquery/issues/815)) ([e5fd40f](https://www.github.com/googleapis/java-bigquery/commit/e5fd40fdc6de483a0f063cde83af1a6e23173c29)) + ### [1.122.2](https://www.github.com/googleapis/java-bigquery/compare/v1.122.1...v1.122.2) (2020-10-08) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index edcc284f60d7..c287c3442157 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.122.3-SNAPSHOT + 1.123.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c3ad795b3b9f..6f2c83422a24 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.122.3-SNAPSHOT + 1.123.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.122.3-SNAPSHOT + 1.123.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f1c430829b47..1515e71018da 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.122.3-SNAPSHOT + 1.123.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.122.3-SNAPSHOT + 1.123.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7cd6715fb469..5f0daa641da2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.122.3-SNAPSHOT + 1.123.0 diff --git a/versions.txt b/versions.txt index 7f15384229b2..db1f5d1dfe03 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.122.2:1.122.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.123.0:1.123.0 \ No newline at end of file From 16a105bdcfbe61e78d79743aa216f281cf57040a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 21 Oct 2020 00:10:41 +0200 Subject: [PATCH 0876/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.13.0 (#834) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1515e71018da..b1d37e35a58c 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20201007-1.30.10 - 0.12.1 + 0.13.0 From 544b0d9a15a08c7e0b2ccbd5ffe29a6d88060524 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 21 Oct 2020 00:11:47 +0200 Subject: [PATCH 0877/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.123.0 (#833) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index acd549c1ec71..b0390b5fc2d2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.122.2 + 1.123.0 From 8ea17132521587769356aeea07b26fa4e54ce7e6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 21 Oct 2020 00:12:01 +0200 Subject: [PATCH 0878/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v13 (#831) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9e7fb977af01..3ac0c7b53640 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 12.1.0 + 13.0.0 pom import From 9b0fd04fced0ebbbfe4747245d6c1e8d2ab76e28 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 20 Oct 2020 22:22:02 +0000 Subject: [PATCH 0879/3441] chore: release 1.123.1-SNAPSHOT (#836) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c287c3442157..671b743d3594 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.123.0 + 1.123.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6f2c83422a24..721dcaa6fd45 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.123.0 + 1.123.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.123.0 + 1.123.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b1d37e35a58c..c75a0589c432 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.123.0 + 1.123.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.123.0 + 1.123.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5f0daa641da2..703f5221364f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.123.0 + 1.123.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index db1f5d1dfe03..64d57af43dbb 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.123.0:1.123.0 \ No newline at end of file +google-cloud-bigquery:1.123.0:1.123.1-SNAPSHOT \ No newline at end of file From 3e3e1a79b954c7a58882608d8a7014e1994254aa Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 20 Oct 2020 15:24:02 -0700 Subject: [PATCH 0880/3441] chore: regenerate README (#837) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-20 22:12:55,223 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-20 22:12:56,296 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/9c04d38f-4d4f-4b0e-a829-fc829930e6ec/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 7e31e4550ae1..fcbc81008ed1 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "fc3cf2a4151e154e5240938579b50183242db1d8" + "sha": "8ea17132521587769356aeea07b26fa4e54ce7e6" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "77c5ba85e05950f5b19ce8a553c1c0db2fba9896" + "sha": "5a506ec8765cc04f7e29f888b8e9b257d9a7ae11" } } ] diff --git a/README.md b/README.md index ae07dce4595d..e0cc80017018 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 12.1.0 + 13.0.0 pom import @@ -40,18 +40,18 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.122.2 + 1.123.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.122.2' +compile 'com.google.cloud:google-cloud-bigquery:1.123.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.122.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.123.0" ``` ## Authentication From 36b5f06dfdbd7a078da6aa075208430e656443c1 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 20 Oct 2020 20:08:09 -0400 Subject: [PATCH 0881/3441] test(deps): update dependency com.google.truth:truth to v1.1 (#839) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index c75a0589c432..4e2e5fd7dd64 100644 --- a/pom.xml +++ b/pom.xml @@ -106,7 +106,7 @@ com.google.truth truth - 1.0.1 + 1.1 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b0390b5fc2d2..34a1da2f8900 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -81,7 +81,7 @@ com.google.truth truth - 1.0.1 + 1.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 703f5221364f..dedc879638a8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -79,7 +79,7 @@ com.google.truth truth - 1.0.1 + 1.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3ac0c7b53640..4b9979b0e19c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -94,7 +94,7 @@ com.google.truth truth - 1.0.1 + 1.1 test From 53a56be8b0878edbc4bc5dd67ed63b48c96d3899 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 20 Oct 2020 20:15:23 -0400 Subject: [PATCH 0882/3441] docs(samples): create and query Amazon s3 data using external table (#835) * docs(samples): add omni query on external table aws * docs(samples): update code * docs(samples): add user id and external id * docs(samples): fix connection name * docs(samples): update create external table AWS sample * update create dataset AWS sample * nit clean up * update query external table sample * fix checkstyle errors * update based on comments Co-authored-by: Praful Makani --- .../bigquery/CreateExternalTableAws.java | 28 ++++-- .../bigquery/QueryExternalTableAws.java | 68 +++++++++++++ .../example/bigquery/CreateDatasetAwsIT.java | 8 +- .../bigquery/CreateExternalTableAwsIT.java | 53 +++------- .../bigquery/QueryExternalTableAwsIT.java | 97 +++++++++++++++++++ 5 files changed, 203 insertions(+), 51 deletions(-) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java b/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java index 02dd669c8df9..25a749211f6f 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java @@ -16,46 +16,62 @@ package com.example.bigquery; +// [START bigquery_omni_create_external_table] import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.CsvOptions; import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; import com.google.cloud.bigquery.TableId; import com.google.cloud.bigquery.TableInfo; +// Sample to create an external aws table public class CreateExternalTableAws { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; - // Create a aws connection - // projects/{project_id}/locations/{location_id}/connections/{connection_id} - String connectionId = "MY_CONNECTION_NAME"; + String connectionId = "MY_CONNECTION_ID"; String sourceUri = "s3://your-bucket-name/"; CsvOptions options = CsvOptions.newBuilder().setSkipLeadingRows(1).build(); + Schema schema = + Schema.of( + Field.of("name", StandardSQLTypeName.STRING), + Field.of("post_abbr", StandardSQLTypeName.STRING)); ExternalTableDefinition externalTableDefinition = ExternalTableDefinition.newBuilder(sourceUri, options) .setConnectionId(connectionId) + .setSchema(schema) .build(); - createExternalTableAws(datasetName, tableName, externalTableDefinition); + createExternalTableAws(projectId, datasetName, tableName, externalTableDefinition); } public static void createExternalTableAws( - String datasetName, String tableName, ExternalTableDefinition externalTableDefinition) { + String projectId, + String datasetName, + String tableName, + ExternalTableDefinition externalTableDefinition) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - TableId tableId = TableId.of(datasetName, tableName); + TableId tableId = TableId.of(projectId, datasetName, tableName); TableInfo tableInfo = TableInfo.newBuilder(tableId, externalTableDefinition).build(); bigquery.create(tableInfo); System.out.println("Aws external table created successfully"); + + // Clean up + bigquery.delete(TableId.of(projectId, datasetName, tableName)); } catch (BigQueryException e) { System.out.println("Aws external was not created." + e.toString()); } } } +// [END bigquery_omni_create_external_table] diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java new file mode 100644 index 000000000000..0881e5e0601e --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java @@ -0,0 +1,68 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_omni_query_external_aws_s3] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.CsvOptions; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.TableResult; + +// Sample to queries an external data source aws s3 using a permanent table +public class QueryExternalTableAws { + + public static void main(String[] args) throws InterruptedException { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String datasetName = "MY_DATASET_NAME"; + String externalTableName = "MY_EXTERNAL_TABLE_NAME"; + // Query to find states starting with 'W' + String query = + String.format( + "SELECT * FROM s%.%s.%s WHERE name LIKE 'W%%'", + projectId, datasetName, externalTableName); + queryExternalTableAws(query); + } + + public static void queryExternalTableAws(String query) throws InterruptedException { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableResult results = bigquery.query(QueryJobConfiguration.of(query)); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query on aws external permanent table performed successfully."); + } catch (BigQueryException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_omni_query_external_aws_s3] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java index 6adb601f36f9..f4b5cf0f6b99 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java @@ -39,7 +39,7 @@ public class CreateDatasetAwsIT { private PrintStream out; private PrintStream originalPrintStream; - private static final String PROJECT_ID = requireEnvVar("OMNI_PROJECT_ID"); + private static final String OMNI_PROJECT_ID = requireEnvVar("OMNI_PROJECT_ID"); private static String requireEnvVar(String varName) { String value = System.getenv(varName); @@ -51,7 +51,7 @@ private static String requireEnvVar(String varName) { @BeforeClass public static void checkRequirements() { - requireEnvVar("GOOGLE_CLOUD_PROJECT"); + requireEnvVar("OMNI_PROJECT_ID"); } @Before @@ -66,7 +66,7 @@ public void setUp() { @After public void tearDown() { // Clean up - DeleteDataset.deleteDataset(PROJECT_ID, datasetName); + DeleteDataset.deleteDataset(OMNI_PROJECT_ID, datasetName); // restores print statements in the original method System.out.flush(); System.setOut(originalPrintStream); @@ -75,7 +75,7 @@ public void tearDown() { @Test public void testCreateDatasetAws() { - CreateDatasetAws.createDatasetAws(PROJECT_ID, datasetName, LOCATION); + CreateDatasetAws.createDatasetAws(OMNI_PROJECT_ID, datasetName, LOCATION); assertThat(bout.toString()).contains("Aws dataset created successfully :"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java index 16b047398da3..47a9fa7a8a89 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java @@ -47,16 +47,14 @@ public class CreateExternalTableAwsIT { private static final String ID = UUID.randomUUID().toString().substring(0, 8); private static final String LOCATION = "aws-us-east-1"; private final Logger log = Logger.getLogger(this.getClass().getName()); - private String datasetName; private String tableName; - private String connectionName; private ByteArrayOutputStream bout; private PrintStream out; private PrintStream originalPrintStream; - private static final String PROJECT_ID = requireEnvVar("OMNI_PROJECT_ID"); - private static final String AWS_ACCOUNT_ID = requireEnvVar("AWS_ACCOUNT_ID"); - private static final String AWS_ROLE_ID = requireEnvVar("AWS_ROLE_ID"); + private static final String OMNI_PROJECT_ID = requireEnvVar("OMNI_PROJECT_ID"); + private static final String OMNI_DATASET_NAME = requireEnvVar("OMNI_DATASET_NAME"); + private static final String AWS_READ_CONNECTION_ID = requireEnvVar("AWS_READ_CONNECTION_ID"); private static String requireEnvVar(String varName) { String value = System.getenv(varName); @@ -69,49 +67,21 @@ private static String requireEnvVar(String varName) { @BeforeClass public static void checkRequirements() { requireEnvVar("OMNI_PROJECT_ID"); - requireEnvVar("AWS_ACCOUNT_ID"); - requireEnvVar("AWS_ROLE_ID"); + requireEnvVar("OMNI_DATASET_NAME"); + requireEnvVar("AWS_READ_CONNECTION_ID"); } @Before - public void setUp() throws IOException { - datasetName = "CREATE_EXTERNAL_TABLE_AWS_TEST_" + ID; + public void setUp() { tableName = "CREATE_EXTERNAL_TABLE_AWS_TEST_" + ID; - connectionName = "CREATE_EXTERNAL_TABLE_AWS_TEST_" + ID; bout = new ByteArrayOutputStream(); out = new PrintStream(bout); originalPrintStream = System.out; System.setOut(out); - // create a temporary aws connection - try (ConnectionServiceClient client = ConnectionServiceClient.create()) { - LocationName parent = LocationName.of(PROJECT_ID, LOCATION); - String iamRoleId = String.format("arn:aws:iam::%s:role/%s", AWS_ACCOUNT_ID, AWS_ROLE_ID); - AwsCrossAccountRole role = AwsCrossAccountRole.newBuilder().setIamRoleId(iamRoleId).build(); - AwsProperties awsProperties = AwsProperties.newBuilder().setCrossAccountRole(role).build(); - Connection connection = Connection.newBuilder().setAws(awsProperties).build(); - CreateConnectionRequest request = - CreateConnectionRequest.newBuilder() - .setParent(parent.toString()) - .setConnection(connection) - .setConnectionId(connectionName) - .build(); - connectionName = client.createConnection(request).getName(); - } - // create a temporary dataset - CreateDatasetAws.createDatasetAws(PROJECT_ID, datasetName, LOCATION); } @After - public void tearDown() throws IOException { - // delete a temporary aws connection - try (ConnectionServiceClient client = ConnectionServiceClient.create()) { - DeleteConnectionRequest request = - DeleteConnectionRequest.newBuilder().setName(connectionName).build(); - client.deleteConnection(request); - } - // Clean up - DeleteTable.deleteTable(datasetName, tableName); - DeleteDataset.deleteDataset(PROJECT_ID, datasetName); + public void tearDown() { // restores print statements in the original method System.out.flush(); System.setOut(originalPrintStream); @@ -120,18 +90,19 @@ public void tearDown() throws IOException { @Test public void testCreateExternalTableAws() { - String sourceUri = "s3://cloud-samples-tests/us-states.csv"; + String sourceUri = "s3://omni-samples-test-bucket/us-states.csv"; Schema schema = Schema.of( Field.of("name", StandardSQLTypeName.STRING), Field.of("post_abbr", StandardSQLTypeName.STRING)); CsvOptions options = CsvOptions.newBuilder().setSkipLeadingRows(1).build(); - ExternalTableDefinition externalTable = + ExternalTableDefinition externalTableDefinition = ExternalTableDefinition.newBuilder(sourceUri, options) - .setConnectionId(connectionName) + .setConnectionId(AWS_READ_CONNECTION_ID) .setSchema(schema) .build(); - CreateExternalTableAws.createExternalTableAws(datasetName, tableName, externalTable); + CreateExternalTableAws.createExternalTableAws( + OMNI_PROJECT_ID, OMNI_DATASET_NAME, tableName, externalTableDefinition); assertThat(bout.toString()).contains("Aws external table created successfully"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java new file mode 100644 index 000000000000..3ef76ebd7fa2 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java @@ -0,0 +1,97 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.CsvOptions; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.connection.v1.AwsCrossAccountRole; +import com.google.cloud.bigquery.connection.v1.AwsProperties; +import com.google.cloud.bigquery.connection.v1.Connection; +import com.google.cloud.bigquery.connection.v1.CreateConnectionRequest; +import com.google.cloud.bigquery.connection.v1.DeleteConnectionRequest; +import com.google.cloud.bigquery.connection.v1.LocationName; +import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class QueryExternalTableAwsIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String OMNI_PROJECT_ID = requireEnvVar("OMNI_PROJECT_ID"); + private static final String OMNI_DATASET_NAME = requireEnvVar("OMNI_DATASET_NAME"); + private static final String OMNI_EXTERNAL_TABLE_NAME = requireEnvVar("OMNI_EXTERNAL_TABLE_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("OMNI_PROJECT_ID"); + requireEnvVar("OMNI_DATASET_NAME"); + requireEnvVar("OMNI_EXTERNAL_TABLE_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testQueryExternalTableAws() throws InterruptedException { + String query = + String.format( + "SELECT * FROM %s.%s.%s WHERE name LIKE 'W%%'", + OMNI_PROJECT_ID, OMNI_DATASET_NAME, OMNI_EXTERNAL_TABLE_NAME); + QueryExternalTableAws.queryExternalTableAws(query); + assertThat(bout.toString()) + .contains("Query on aws external permanent table performed successfully."); + } +} From 41170330ddda55143fe03cb0ec718f89e3176f7a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 20 Oct 2020 17:28:10 -0700 Subject: [PATCH 0883/3441] chore: regenerate README (#840) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-21 00:17:46,431 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-21 00:17:47,444 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/ee453e81-bad1-41bc-86c1-ab24461c938f/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index fcbc81008ed1..527f4521397e 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "8ea17132521587769356aeea07b26fa4e54ce7e6" + "sha": "53a56be8b0878edbc4bc5dd67ed63b48c96d3899" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5a506ec8765cc04f7e29f888b8e9b257d9a7ae11" + "sha": "6abb59097be84599a1d6091fe534a49e5c5cf948" } } ] diff --git a/README.md b/README.md index e0cc80017018..b0327414a375 100644 --- a/README.md +++ b/README.md @@ -179,6 +179,7 @@ has instructions for running the samples. | Query External Gcs Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java) | | Query External Sheets Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java) | | Query External Sheets Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java) | +| Query External Table Aws | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java) | | Query Large Results | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | | Query Pagination | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | | Query Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | From ab716c8ae71bd11b52bde7225423b9dd6a01a5a3 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 21 Oct 2020 11:18:19 -0700 Subject: [PATCH 0884/3441] chore: clean up and update renovate.json (#841) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/8b245cb7-0092-4b33-a08f-59e0fbf8b345/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/6abb59097be84599a1d6091fe534a49e5c5cf948 --- renovate.json | 30 +++++++++++------------------- synth.metadata | 4 ++-- 2 files changed, 13 insertions(+), 21 deletions(-) diff --git a/renovate.json b/renovate.json index 034f3c099a53..af11317e230e 100644 --- a/renovate.json +++ b/renovate.json @@ -17,24 +17,6 @@ ], "versionScheme": "docker" }, - { - "packagePatterns": [ - "^com.google.api:gax", - "^com.google.auth:", - "^com.google.cloud:google-cloud-core", - "^io.grpc:", - "^com.google.guava:" - ], - "groupName": "core dependencies" - }, - { - "packagePatterns": [ - "^com.google.http-client:", - "^com.google.oauth-client:", - "^com.google.api-client:" - ], - "groupName": "core transport dependencies" - }, { "packagePatterns": [ "*" @@ -63,6 +45,16 @@ "semanticCommitType": "chore", "semanticCommitScope": "deps" }, + { + "packagePatterns": [ + "^junit:junit", + "^com.google.truth:truth", + "^org.mockito:mockito-core", + "^org.objenesis:objenesis" + ], + "semanticCommitType": "test", + "semanticCommitScope": "deps" + }, { "packagePatterns": [ "^com.google.cloud:google-cloud-" @@ -78,4 +70,4 @@ ], "semanticCommits": true, "masterIssue": true -} \ No newline at end of file +} diff --git a/synth.metadata b/synth.metadata index 4c1967571935..8a24d36bea32 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "afe3b185f26b1755b8c46bfb344b9041ee9641e7" + "sha": "41170330ddda55143fe03cb0ec718f89e3176f7a" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5a506ec8765cc04f7e29f888b8e9b257d9a7ae11" + "sha": "6abb59097be84599a1d6091fe534a49e5c5cf948" } } ], From 5e9376c0e9728bf37bc3bcd49cc955cdfcd09c16 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 21 Oct 2020 20:30:13 +0200 Subject: [PATCH 0885/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v13.1.0 (#842) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `13.0.0` -> `13.1.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4b9979b0e19c..7fbb91cdf169 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 13.0.0 + 13.1.0 pom import From b1bbddcb87ef5742949e4ec069a4a49b12f9536a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 21 Oct 2020 12:22:13 -0700 Subject: [PATCH 0886/3441] chore: regenerate README (#844) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-21 18:34:51,260 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-21 18:34:52,296 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/4ac0170a-d6c7-4fe9-b87f-0930826c3597/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 527f4521397e..78156bd74a23 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "53a56be8b0878edbc4bc5dd67ed63b48c96d3899" + "sha": "5e9376c0e9728bf37bc3bcd49cc955cdfcd09c16" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "6abb59097be84599a1d6091fe534a49e5c5cf948" + "sha": "901ddd44e9ef7887ee681b9183bbdea99437fdcc" } } ] diff --git a/README.md b/README.md index b0327414a375..13d632786cf2 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 13.0.0 + 13.1.0 pom import From a4d7543934d09c77744fc493c7ca2e490f02a446 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 21 Oct 2020 20:17:43 -0400 Subject: [PATCH 0887/3441] ci(samples): add nightly resource cleanup (#845) * ci(samples): add nightly resource cleanup * nit updates * exclude from synth template generation * nit --- .kokoro/nightly/samples.cfg | 6 ++ .kokoro/run_samples_resource_cleanup.sh | 47 +++++++++++ .../com/example/bigquery/ResourceCleanUp.java | 78 +++++++++++++++++++ synth.py | 1 + 4 files changed, 132 insertions(+) create mode 100755 .kokoro/run_samples_resource_cleanup.sh create mode 100644 samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java diff --git a/.kokoro/nightly/samples.cfg b/.kokoro/nightly/samples.cfg index f25429314f4d..8c014b575da6 100644 --- a/.kokoro/nightly/samples.cfg +++ b/.kokoro/nightly/samples.cfg @@ -36,3 +36,9 @@ env_vars: { key: "ENABLE_BUILD_COP" value: "true" } + +# Tell the trampoline which tests to run. +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-bigquery/.kokoro/run_samples_resource_cleanup.sh" +} \ No newline at end of file diff --git a/.kokoro/run_samples_resource_cleanup.sh b/.kokoro/run_samples_resource_cleanup.sh new file mode 100755 index 000000000000..3bed76532d58 --- /dev/null +++ b/.kokoro/run_samples_resource_cleanup.sh @@ -0,0 +1,47 @@ +````#!/bin/bash +# Copyright 2020 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# `-e` enables the script to automatically fail when a command fails +# `-o pipefail` sets the exit code to the rightmost comment to exit with a non-zero`` +set -eo pipefail + +echo "********** MAVEN INFO ***********" +mvn -v + +# Get the directory of the build script +scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) +## cd to the parent directory, i.e. the root of the git repo +cd ${scriptDir}/.. + +# include common functions +source ${scriptDir}/common.sh + +# Setup required env variables +source ${KOKORO_GFILE_DIR}/bigquery_secrets.txt +echo "********** Successfully Set All Environment Variables **********" + +# Activate service account +gcloud auth activate-service-account \ + --key-file="$GOOGLE_APPLICATION_CREDENTIALS" \ + --project="$GOOGLE_CLOUD_PROJECT" + +mvn clean install -DskipTests=true + +# Move into the samples directory +cd samples/snippets + +echo -e "\n******************** NIGHTLY RESOURCE CLEAN UP ********************" + +mvn compile exec:java -Dexec.mainClass=com.example.bigquery.ResourceCleanUp \ No newline at end of file diff --git a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java new file mode 100644 index 000000000000..8c289e63301b --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java @@ -0,0 +1,78 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import com.google.api.gax.paging.Page; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.DatasetListOption; +import com.google.cloud.bigquery.BigQuery.ModelListOption; +import com.google.cloud.bigquery.BigQuery.TableListOption; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.Model; +import com.google.cloud.bigquery.ModelId; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; + +public class ResourceCleanUp { + private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT"); + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + public static void main(String[] args) { + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // clean up stale test datasets + Page datasets = bigquery.listDatasets(PROJECT_ID, DatasetListOption.pageSize(1000)); + for (Dataset dataset : datasets.getValues()) { + String datasetName = dataset.getDatasetId().getDataset(); + if (datasetName.contains("CREATE_DATASET_AWS_TEST_") + || datasetName.contains("MY_DATASET_NAME_TEST_") + || datasetName.contains("gcloud_test_") + || datasetName.contains("SHARED_DATASET_TEST_")) { + System.out.format("\tDeleting Dataset: %s\n", datasetName); + bigquery.delete(DatasetId.of(PROJECT_ID, datasetName)); + } + } + + // clean up stale test tables in the test dataset + Page
    tables = + bigquery.listTables(BIGQUERY_DATASET_NAME, TableListOption.pageSize(10000)); + for (Table table : tables.getValues()) { + String tableName = table.getTableId().getTable(); + if (tableName.contains("TestTable_") + || tableName.contains("_TEST") + || tableName.contains("MY_") + || tableName.contains("gcloud_test_")) { + System.out.format("\tDeleting Table: %s\n", tableName); + bigquery.delete(TableId.of(PROJECT_ID, BIGQUERY_DATASET_NAME, tableName)); + } + } + + // clean up stale test models in the test dataset + Page models = bigquery.listModels(BIGQUERY_DATASET_NAME, ModelListOption.pageSize(1000)); + for (Model model : models.getValues()) { + String modelName = model.getModelId().getModel(); + if (modelName.contains("MY_MODEL_NAME_")) { + System.out.format("\tDeleting Model: %s\n", modelName); + bigquery.delete(ModelId.of(PROJECT_ID, BIGQUERY_DATASET_NAME, modelName)); + } + } + + System.out.println("*************** All done! Squeaky clean now :) ***************"); + } +} diff --git a/synth.py b/synth.py index 00317b7e5237..8d5aa0e5b79d 100644 --- a/synth.py +++ b/synth.py @@ -23,6 +23,7 @@ '.kokoro/continuous/java11-samples.cfg', '.kokoro/nightly/java8-samples.cfg', '.kokoro/nightly/java11-samples.cfg', + '.kokoro/nightly/samples.cfg', '.kokoro/presubmit/java8-samples.cfg', '.kokoro/presubmit/java11-samples.cfg', 'codecov.yaml' From 797a8a9729e27d1db0eca4436d41dd267b459b15 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 21 Oct 2020 17:30:12 -0700 Subject: [PATCH 0888/3441] chore: regenerate README (#846) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-22 00:19:53,422 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-22 00:19:54,409 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/0c2e88a8-b94d-465a-9432-aa08c7b41507/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 78156bd74a23..cd20e1ddc469 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "5e9376c0e9728bf37bc3bcd49cc955cdfcd09c16" + "sha": "a4d7543934d09c77744fc493c7ca2e490f02a446" } }, { diff --git a/README.md b/README.md index 13d632786cf2..45298fd8fd3e 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,7 @@ has instructions for running the samples. | Relax Column Load Append | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java) | | Relax Column Mode | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | | Relax Table Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | +| Resource Clean Up | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java) | | Run Legacy Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | | Save Query To Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | | Simple App | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | From 43d676edb3ed2aa77c774bfba451fe3b3bc013ac Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Thu, 22 Oct 2020 17:19:21 +0530 Subject: [PATCH 0889/3441] refactor(samples): add clean up routines and time (#847) --- .../bigquery/QueryExternalTableAws.java | 8 ---- .../com/example/bigquery/ResourceCleanUp.java | 42 ++++++++++++++----- .../bigquery/CreateExternalTableAwsIT.java | 8 ---- .../bigquery/QueryExternalTableAwsIT.java | 14 ------- 4 files changed, 32 insertions(+), 40 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java index 0881e5e0601e..bd709d78c0c9 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java @@ -20,15 +20,7 @@ import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; -import com.google.cloud.bigquery.CsvOptions; -import com.google.cloud.bigquery.DatasetId; -import com.google.cloud.bigquery.ExternalTableDefinition; -import com.google.cloud.bigquery.Field; import com.google.cloud.bigquery.QueryJobConfiguration; -import com.google.cloud.bigquery.Schema; -import com.google.cloud.bigquery.StandardSQLTypeName; -import com.google.cloud.bigquery.TableId; -import com.google.cloud.bigquery.TableInfo; import com.google.cloud.bigquery.TableResult; // Sample to queries an external data source aws s3 using a permanent table diff --git a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java index 8c289e63301b..363b50afdd0b 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java @@ -26,8 +26,13 @@ import com.google.cloud.bigquery.DatasetId; import com.google.cloud.bigquery.Model; import com.google.cloud.bigquery.ModelId; +import com.google.cloud.bigquery.Routine; +import com.google.cloud.bigquery.RoutineId; import com.google.cloud.bigquery.Table; import com.google.cloud.bigquery.TableId; +import org.threeten.bp.Clock; +import org.threeten.bp.Instant; +import org.threeten.bp.temporal.ChronoUnit; public class ResourceCleanUp { private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT"); @@ -35,17 +40,22 @@ public class ResourceCleanUp { public static void main(String[] args) { BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + Clock clock = Clock.systemDefaultZone(); + Instant instant = clock.instant().minus(6, ChronoUnit.HOURS); + long sixHourAgo = instant.getEpochSecond(); // clean up stale test datasets Page datasets = bigquery.listDatasets(PROJECT_ID, DatasetListOption.pageSize(1000)); for (Dataset dataset : datasets.getValues()) { String datasetName = dataset.getDatasetId().getDataset(); - if (datasetName.contains("CREATE_DATASET_AWS_TEST_") - || datasetName.contains("MY_DATASET_NAME_TEST_") - || datasetName.contains("gcloud_test_") - || datasetName.contains("SHARED_DATASET_TEST_")) { + if ((datasetName.contains("CREATE_DATASET_AWS_TEST_") + || datasetName.contains("MY_DATASET_NAME_TEST_") + || datasetName.contains("gcloud_test_") + || datasetName.contains("SHARED_DATASET_TEST_")) + && dataset.getCreationTime() > sixHourAgo) { System.out.format("\tDeleting Dataset: %s\n", datasetName); - bigquery.delete(DatasetId.of(PROJECT_ID, datasetName)); + bigquery.delete( + DatasetId.of(PROJECT_ID, datasetName), BigQuery.DatasetDeleteOption.deleteContents()); } } @@ -54,10 +64,11 @@ public static void main(String[] args) { bigquery.listTables(BIGQUERY_DATASET_NAME, TableListOption.pageSize(10000)); for (Table table : tables.getValues()) { String tableName = table.getTableId().getTable(); - if (tableName.contains("TestTable_") - || tableName.contains("_TEST") - || tableName.contains("MY_") - || tableName.contains("gcloud_test_")) { + if ((tableName.contains("TestTable_") + || tableName.contains("_TEST") + || tableName.contains("MY_") + || tableName.contains("gcloud_test_")) + && table.getCreationTime() > sixHourAgo) { System.out.format("\tDeleting Table: %s\n", tableName); bigquery.delete(TableId.of(PROJECT_ID, BIGQUERY_DATASET_NAME, tableName)); } @@ -67,12 +78,23 @@ public static void main(String[] args) { Page models = bigquery.listModels(BIGQUERY_DATASET_NAME, ModelListOption.pageSize(1000)); for (Model model : models.getValues()) { String modelName = model.getModelId().getModel(); - if (modelName.contains("MY_MODEL_NAME_")) { + if (modelName.contains("MY_MODEL_NAME_") && model.getCreationTime() > sixHourAgo) { System.out.format("\tDeleting Model: %s\n", modelName); bigquery.delete(ModelId.of(PROJECT_ID, BIGQUERY_DATASET_NAME, modelName)); } } + // clean up stale test routines in the test dataset + Page routines = + bigquery.listRoutines(BIGQUERY_DATASET_NAME, BigQuery.RoutineListOption.pageSize(1000)); + for (Routine routine : routines.getValues()) { + String routineName = routine.getRoutineId().getRoutine(); + if (routineName.contains("MY_ROUTINE_NAME_TEST_") && routine.getCreationTime() > sixHourAgo) { + System.out.format("\tDeleting Routine: %s\n", routineName); + bigquery.delete(RoutineId.of(PROJECT_ID, BIGQUERY_DATASET_NAME, routineName)); + } + } + System.out.println("*************** All done! Squeaky clean now :) ***************"); } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java index 47a9fa7a8a89..8aefdd8875e6 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java @@ -24,15 +24,7 @@ import com.google.cloud.bigquery.Field; import com.google.cloud.bigquery.Schema; import com.google.cloud.bigquery.StandardSQLTypeName; -import com.google.cloud.bigquery.connection.v1.AwsCrossAccountRole; -import com.google.cloud.bigquery.connection.v1.AwsProperties; -import com.google.cloud.bigquery.connection.v1.Connection; -import com.google.cloud.bigquery.connection.v1.CreateConnectionRequest; -import com.google.cloud.bigquery.connection.v1.DeleteConnectionRequest; -import com.google.cloud.bigquery.connection.v1.LocationName; -import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient; import java.io.ByteArrayOutputStream; -import java.io.IOException; import java.io.PrintStream; import java.util.UUID; import java.util.logging.Level; diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java index 3ef76ebd7fa2..4759a4eb6da2 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java @@ -19,22 +19,8 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.TestCase.assertNotNull; -import com.google.cloud.bigquery.CsvOptions; -import com.google.cloud.bigquery.ExternalTableDefinition; -import com.google.cloud.bigquery.Field; -import com.google.cloud.bigquery.Schema; -import com.google.cloud.bigquery.StandardSQLTypeName; -import com.google.cloud.bigquery.connection.v1.AwsCrossAccountRole; -import com.google.cloud.bigquery.connection.v1.AwsProperties; -import com.google.cloud.bigquery.connection.v1.Connection; -import com.google.cloud.bigquery.connection.v1.CreateConnectionRequest; -import com.google.cloud.bigquery.connection.v1.DeleteConnectionRequest; -import com.google.cloud.bigquery.connection.v1.LocationName; -import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient; import java.io.ByteArrayOutputStream; -import java.io.IOException; import java.io.PrintStream; -import java.util.UUID; import java.util.logging.Level; import java.util.logging.Logger; import org.junit.After; From 4f44f74e967a5986962d9b457a33da9ccf0eea1e Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 22 Oct 2020 14:53:16 -0400 Subject: [PATCH 0890/3441] ci(chore): comment out dataset.getCreationTime method (#850) * ci(chore): comment out dataset.getCreationTime method since it is returning null * nit * nit --- .../main/java/com/example/bigquery/ResourceCleanUp.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java index 363b50afdd0b..777176c73684 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java @@ -49,10 +49,11 @@ public static void main(String[] args) { for (Dataset dataset : datasets.getValues()) { String datasetName = dataset.getDatasetId().getDataset(); if ((datasetName.contains("CREATE_DATASET_AWS_TEST_") - || datasetName.contains("MY_DATASET_NAME_TEST_") + || datasetName.contains("MY_DATASET_") || datasetName.contains("gcloud_test_") || datasetName.contains("SHARED_DATASET_TEST_")) - && dataset.getCreationTime() > sixHourAgo) { + // && dataset.getCreationTime() > sixHourAgo + ) { System.out.format("\tDeleting Dataset: %s\n", datasetName); bigquery.delete( DatasetId.of(PROJECT_ID, datasetName), BigQuery.DatasetDeleteOption.deleteContents()); @@ -67,7 +68,8 @@ public static void main(String[] args) { if ((tableName.contains("TestTable_") || tableName.contains("_TEST") || tableName.contains("MY_") - || tableName.contains("gcloud_test_")) + || tableName.contains("gcloud_test_") + || tableName.contains("TESTTABLE_")) && table.getCreationTime() > sixHourAgo) { System.out.format("\tDeleting Table: %s\n", tableName); bigquery.delete(TableId.of(PROJECT_ID, BIGQUERY_DATASET_NAME, tableName)); From 439eea95390b72e5aa84ddd9c208475074cf821c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 23 Oct 2020 02:03:19 +0200 Subject: [PATCH 0891/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20201015-1.30.10 (#851) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4e2e5fd7dd64..c18ec55011e4 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20201007-1.30.10 + v2-rev20201015-1.30.10 0.13.0 From 6dbbae4f2d6e2c3b84aaaf102ab5e4e578fa6c07 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 22 Oct 2020 17:04:14 -0700 Subject: [PATCH 0892/3441] chore: regen common templates (#852) * Update publish_javadoc.sh We don't want quite as much and need to be in `target/devsite/reference`. Source-Author: Les Vogel Source-Date: Thu Oct 22 14:10:05 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 9593c3b5b714cc9b17c445aee8834ac2b4b9348b Source-Link: https://github.com/googleapis/synthtool/commit/9593c3b5b714cc9b17c445aee8834ac2b4b9348b * chore(docs): update code of conduct of synthtool and templates Source-Author: Christopher Wilcox Source-Date: Thu Oct 22 14:22:01 2020 -0700 Source-Repo: googleapis/synthtool Source-Sha: 5f6ef0ec5501d33c4667885b37a7685a30d41a76 Source-Link: https://github.com/googleapis/synthtool/commit/5f6ef0ec5501d33c4667885b37a7685a30d41a76 --- .kokoro/release/publish_javadoc.sh | 2 +- CODE_OF_CONDUCT.md | 7 ++++--- synth.metadata | 5 ++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.kokoro/release/publish_javadoc.sh b/.kokoro/release/publish_javadoc.sh index 8aa3449bc62b..b109a4aa7324 100755 --- a/.kokoro/release/publish_javadoc.sh +++ b/.kokoro/release/publish_javadoc.sh @@ -62,7 +62,7 @@ popd # V2 mvn clean site -B -q -Ddevsite.template="${KOKORO_GFILE_DIR}/java/" -pushd target/devsite +pushd target/devsite/reference # create metadata python3 -m docuploader create-metadata \ diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 6b2238bb75e0..2add2547a812 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,3 +1,4 @@ + # Code of Conduct ## Our Pledge @@ -69,12 +70,12 @@ dispute. If you are unable to resolve the matter for any reason, or if the behavior is threatening or harassing, report it. We are dedicated to providing an environment where participants feel welcome and safe. -Reports should be directed to *[PROJECT STEWARD NAME(s) AND EMAIL(s)]*, the -Project Steward(s) for *[PROJECT NAME]*. It is the Project Steward’s duty to +Reports should be directed to *googleapis-stewards@google.com*, the +Project Steward(s) for *Google Cloud Client Libraries*. It is the Project Steward’s duty to receive and address reported violations of the code of conduct. They will then work with a committee consisting of representatives from the Open Source Programs Office and the Google Open Source Strategy team. If for any reason you -are uncomfortable reaching out the Project Steward, please email +are uncomfortable reaching out to the Project Steward, please email opensource@google.com. We will investigate every complaint, but you may not receive a direct response. diff --git a/synth.metadata b/synth.metadata index 8a24d36bea32..75a8f4048b27 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "41170330ddda55143fe03cb0ec718f89e3176f7a" + "sha": "4f44f74e967a5986962d9b457a33da9ccf0eea1e" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "6abb59097be84599a1d6091fe534a49e5c5cf948" + "sha": "5f6ef0ec5501d33c4667885b37a7685a30d41a76" } } ], @@ -47,7 +47,6 @@ ".kokoro/nightly/java8-osx.cfg", ".kokoro/nightly/java8-win.cfg", ".kokoro/nightly/java8.cfg", - ".kokoro/nightly/samples.cfg", ".kokoro/populate-secrets.sh", ".kokoro/presubmit/clirr.cfg", ".kokoro/presubmit/common.cfg", From fc2c3bbc140ed841703e1dcddf1471c6ea2662c8 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 23 Oct 2020 12:36:04 -0400 Subject: [PATCH 0893/3441] ci: fix shell script "exec format error" (#854) Nightly samples cleanup job failed due to below error: ``` Executing: docker run --rm --interactive --network=host --privileged --volume=/var/run/docker.sock:/var/run/docker.sock --workdir=/tmpfs/src --entrypoint=github/java-bigquery/.kokoro/run_samples_resource_cleanup.sh --env-file=/tmpfs/tmp/tmpccr95nk7/envfile --volume=/tmpfs:/tmpfs gcr.io/cloud-devrel-kokoro-resources/java8 standard_init_linux.go:190: exec user process caused "exec format error" ``` This PR is to fix the above. --- .kokoro/run_samples_resource_cleanup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.kokoro/run_samples_resource_cleanup.sh b/.kokoro/run_samples_resource_cleanup.sh index 3bed76532d58..f0b97549a8de 100755 --- a/.kokoro/run_samples_resource_cleanup.sh +++ b/.kokoro/run_samples_resource_cleanup.sh @@ -1,4 +1,4 @@ -````#!/bin/bash +#!/bin/bash # Copyright 2020 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); From b3f845667b1c43bda1d4275c0b43a225057b5dbb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 23 Oct 2020 19:58:24 +0200 Subject: [PATCH 0894/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v13.2.0 (#855) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `13.1.0` -> `13.2.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 7fbb91cdf169..89c3277dab75 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 13.1.0 + 13.2.0 pom import From 725c93f832090e02a6aa98447ecc530bbd0436bd Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 23 Oct 2020 11:24:07 -0700 Subject: [PATCH 0895/3441] chore: regenerate README (#856) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-23 18:00:53,336 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-23 18:00:54,370 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/ad000a6d-0bfb-4709-ba4a-4b7da7e227ff/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index cd20e1ddc469..1352be432bce 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "a4d7543934d09c77744fc493c7ca2e490f02a446" + "sha": "b3f845667b1c43bda1d4275c0b43a225057b5dbb" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "901ddd44e9ef7887ee681b9183bbdea99437fdcc" + "sha": "721a7d2abb129029eca9d85a40da6eb7b8b1739a" } } ] diff --git a/README.md b/README.md index 45298fd8fd3e..fe752c1fe7ee 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 13.1.0 + 13.2.0 pom import From 53586207c300002f6bbad3d67f4441729b109f8a Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 23 Oct 2020 14:38:39 -0400 Subject: [PATCH 0896/3441] docs(samples): add export query results to Amazon S3 sample and IT (#853) * docs(samples): add export query results to Amazon S3 sample and IT * update based on comments --- .../bigquery/ExportQueryResultsToS3.java | 69 ++++++++++++++ .../com/example/bigquery/ResourceCleanUp.java | 6 +- .../bigquery/CreateExternalTableAwsIT.java | 1 - .../bigquery/ExportQueryResultsToS3IT.java | 91 +++++++++++++++++++ 4 files changed, 163 insertions(+), 4 deletions(-) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/ExportQueryResultsToS3IT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java b/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java new file mode 100644 index 000000000000..4b895f9956e5 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java @@ -0,0 +1,69 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_omni_export_query_result_to_s3] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; + +// Sample to export query results to Amazon S3 bucket +public class ExportQueryResultsToS3 { + + public static void main(String[] args) throws InterruptedException { + // TODO(developer): Replace these variables before running the sample. + String projectId = "MY_PROJECT_ID"; + String datasetName = "MY_DATASET_NAME"; + String externalTableName = "MY_EXTERNAL_TABLE_NAME"; + // connectionName should be in the format of connection_region.connection_name. e.g. + // aws-us-east-1.s3-write-conn + String connectionName = "MY_CONNECTION_REGION.MY_CONNECTION_NAME"; + // destinationUri must contain exactly one * anywhere in the leaf directory of the path string + // e.g. ../aa/*, ../aa/b*c, ../aa/*bc, and ../aa/bc* + // BigQuery replaces * with 0000..N depending on the number of files exported. + // BigQuery determines the file count and sizes. + String destinationUri = "s3://your-bucket-name/*"; + String format = "EXPORT_FORMAT"; + // Export result of query to find states starting with 'W' + String query = + String.format( + "EXPORT DATA WITH CONNECTION %s AS SELECT * FROM %s.%s.%s WHERE name LIKE 'W%%'", + connectionName, destinationUri, format, projectId, datasetName, externalTableName); + exportQueryResultsToS3(query); + } + + public static void exportQueryResultsToS3(String query) throws InterruptedException { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableResult results = bigquery.query(QueryJobConfiguration.of(query)); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + + System.out.println("Query results exported to Amazon S3 successfully."); + } catch (BigQueryException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_omni_export_query_result_to_s3] diff --git a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java index 777176c73684..247c42b9dbfd 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java @@ -49,9 +49,9 @@ public static void main(String[] args) { for (Dataset dataset : datasets.getValues()) { String datasetName = dataset.getDatasetId().getDataset(); if ((datasetName.contains("CREATE_DATASET_AWS_TEST_") - || datasetName.contains("MY_DATASET_") - || datasetName.contains("gcloud_test_") - || datasetName.contains("SHARED_DATASET_TEST_")) + || datasetName.contains("MY_DATASET_") + || datasetName.contains("gcloud_test_") + || datasetName.contains("SHARED_DATASET_TEST_")) // && dataset.getCreationTime() > sixHourAgo ) { System.out.format("\tDeleting Dataset: %s\n", datasetName); diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java index 8aefdd8875e6..8aac2716e79a 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java @@ -37,7 +37,6 @@ public class CreateExternalTableAwsIT { private static final String ID = UUID.randomUUID().toString().substring(0, 8); - private static final String LOCATION = "aws-us-east-1"; private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExportQueryResultsToS3IT.java b/samples/snippets/src/test/java/com/example/bigquery/ExportQueryResultsToS3IT.java new file mode 100644 index 000000000000..61a543812020 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/ExportQueryResultsToS3IT.java @@ -0,0 +1,91 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ExportQueryResultsToS3IT { + private final Logger log = Logger.getLogger(this.getClass().getName()); + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String OMNI_PROJECT_ID = requireEnvVar("OMNI_PROJECT_ID"); + private static final String OMNI_DATASET_NAME = requireEnvVar("OMNI_DATASET_NAME"); + private static final String OMNI_EXTERNAL_TABLE_NAME = requireEnvVar("OMNI_EXTERNAL_TABLE_NAME"); + private static final String AWS_WRITE_CONNECTION_ID = requireEnvVar("AWS_WRITE_CONNECTION_ID"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("OMNI_PROJECT_ID"); + requireEnvVar("OMNI_DATASET_NAME"); + requireEnvVar("OMNI_EXTERNAL_TABLE_NAME"); + requireEnvVar("AWS_WRITE_CONNECTION_ID"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testQueryExternalTableAws() throws InterruptedException { + String destinationUri = "s3://omni-samples-test-bucket/client-lib-test*"; + String format = "CSV"; + String query = + String.format( + "EXPORT DATA WITH CONNECTION `%s` OPTIONS(uri='%s', format='%s') " + + "AS SELECT * FROM %s.%s.%s WHERE name LIKE 'W%%'", + AWS_WRITE_CONNECTION_ID, + destinationUri, + format, + OMNI_PROJECT_ID, + OMNI_DATASET_NAME, + OMNI_EXTERNAL_TABLE_NAME); + ExportQueryResultsToS3.exportQueryResultsToS3(query); + assertThat(bout.toString()).contains("Query results exported to Amazon S3 successfully."); + } +} From 7f30c15e20c5ccd332bfb38a452f265682c57f68 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2020 18:50:05 +0000 Subject: [PATCH 0897/3441] chore: release 1.123.1 (#838) :robot: I have created a release \*beep\* \*boop\* --- ### [1.123.1](https://www.github.com/googleapis/java-bigquery/compare/v1.123.0...v1.123.1) (2020-10-23) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20201015-1.30.10 ([#851](https://www.github.com/googleapis/java-bigquery/issues/851)) ([439eea9](https://www.github.com/googleapis/java-bigquery/commit/439eea95390b72e5aa84ddd9c208475074cf821c)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.13.0 ([#834](https://www.github.com/googleapis/java-bigquery/issues/834)) ([16a105b](https://www.github.com/googleapis/java-bigquery/commit/16a105bdcfbe61e78d79743aa216f281cf57040a)) ### Documentation * **samples:** add export query results to Amazon S3 sample and IT ([#853](https://www.github.com/googleapis/java-bigquery/issues/853)) ([5358620](https://www.github.com/googleapis/java-bigquery/commit/53586207c300002f6bbad3d67f4441729b109f8a)) * **samples:** create and query Amazon s3 data using external table ([#835](https://www.github.com/googleapis/java-bigquery/issues/835)) ([53a56be](https://www.github.com/googleapis/java-bigquery/commit/53a56be8b0878edbc4bc5dd67ed63b48c96d3899)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 14 ++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 21 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7196dc867b0..0f5052bb47a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +### [1.123.1](https://www.github.com/googleapis/java-bigquery/compare/v1.123.0...v1.123.1) (2020-10-23) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20201015-1.30.10 ([#851](https://www.github.com/googleapis/java-bigquery/issues/851)) ([439eea9](https://www.github.com/googleapis/java-bigquery/commit/439eea95390b72e5aa84ddd9c208475074cf821c)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.13.0 ([#834](https://www.github.com/googleapis/java-bigquery/issues/834)) ([16a105b](https://www.github.com/googleapis/java-bigquery/commit/16a105bdcfbe61e78d79743aa216f281cf57040a)) + + +### Documentation + +* **samples:** add export query results to Amazon S3 sample and IT ([#853](https://www.github.com/googleapis/java-bigquery/issues/853)) ([5358620](https://www.github.com/googleapis/java-bigquery/commit/53586207c300002f6bbad3d67f4441729b109f8a)) +* **samples:** create and query Amazon s3 data using external table ([#835](https://www.github.com/googleapis/java-bigquery/issues/835)) ([53a56be](https://www.github.com/googleapis/java-bigquery/commit/53a56be8b0878edbc4bc5dd67ed63b48c96d3899)) + ## [1.123.0](https://www.github.com/googleapis/java-bigquery/compare/v1.122.2...v1.123.0) (2020-10-20) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 671b743d3594..b8a4d7da4bbe 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.123.1-SNAPSHOT + 1.123.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 721dcaa6fd45..ce05483d6d60 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.123.1-SNAPSHOT + 1.123.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.123.1-SNAPSHOT + 1.123.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c18ec55011e4..7599454c838f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.123.1-SNAPSHOT + 1.123.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.123.1-SNAPSHOT + 1.123.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index dedc879638a8..a106ad582a54 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.123.1-SNAPSHOT + 1.123.1 diff --git a/versions.txt b/versions.txt index 64d57af43dbb..bbfb7512eb2e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.123.0:1.123.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.123.1:1.123.1 \ No newline at end of file From 6c30274a47c97bbd303ce1d93a737688946d0364 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 23 Oct 2020 11:52:05 -0700 Subject: [PATCH 0898/3441] chore: regenerate README (#857) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-23 18:41:25,750 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-23 18:41:26,798 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/0f2d085d-7766-4398-a702-3c95d8ec101a/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 1352be432bce..d67b9df99964 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b3f845667b1c43bda1d4275c0b43a225057b5dbb" + "sha": "53586207c300002f6bbad3d67f4441729b109f8a" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "721a7d2abb129029eca9d85a40da6eb7b8b1739a" + "sha": "1085e9cf6394ca68f6f690844a7ef3622777e8c8" } } ] diff --git a/README.md b/README.md index fe752c1fe7ee..b6b1277c2b30 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,7 @@ has instructions for running the samples. | Delete Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | | Delete Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | | Delete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | +| Export Query Results To S3 | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java) | | Extract Table Compressed | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java) | | Extract Table To Csv | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | | Extract Table To Json | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | From 9736186a026ceb10cdee2c63cfa50a8ddec0f736 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 23 Oct 2020 23:40:15 +0200 Subject: [PATCH 0899/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.123.1 (#858) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 34a1da2f8900..4734c652b72f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.123.0 + 1.123.1 From e324eb49e922c828db2801ad94f4368acb5ab0b4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2020 22:02:05 +0000 Subject: [PATCH 0900/3441] chore: release 1.123.2-SNAPSHOT (#859) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b8a4d7da4bbe..8ce04e42399a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.123.1 + 1.123.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ce05483d6d60..db6204223bda 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.123.1 + 1.123.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.123.1 + 1.123.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7599454c838f..15cb34ee6cc1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.123.1 + 1.123.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.123.1 + 1.123.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a106ad582a54..1f9e836fd293 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.123.1 + 1.123.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index bbfb7512eb2e..2e945a9d238f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.123.1:1.123.1 \ No newline at end of file +google-cloud-bigquery:1.123.1:1.123.2-SNAPSHOT \ No newline at end of file From 7347732a73bc4650d41c55640e2a3a8e93b18ff2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 23 Oct 2020 15:04:06 -0700 Subject: [PATCH 0901/3441] chore: regenerate README (#861) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-23 21:42:28,900 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-23 21:42:29,944 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/c60b5461-b2d5-4888-9ede-aca5f3e66435/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index d67b9df99964..38617034edf2 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "53586207c300002f6bbad3d67f4441729b109f8a" + "sha": "9736186a026ceb10cdee2c63cfa50a8ddec0f736" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1085e9cf6394ca68f6f690844a7ef3622777e8c8" + "sha": "a783321fd55f010709294455584a553f4b24b944" } } ] diff --git a/README.md b/README.md index b6b1277c2b30..214ff359588f 100644 --- a/README.md +++ b/README.md @@ -40,18 +40,18 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.123.0 + 1.123.1 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.123.0' +compile 'com.google.cloud:google-cloud-bigquery:1.123.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.123.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.123.1" ``` ## Authentication From 825575eed83312e94d1417cf5e1d286bd843c347 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 24 Oct 2020 00:17:02 +0200 Subject: [PATCH 0902/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.17.0 (#860) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4734c652b72f..0db1a94264b1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.16.2 + 1.17.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1f9e836fd293..8a215fd8204f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.16.2 + 1.17.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 89c3277dab75..c036406823dc 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.16.2 + 1.17.0 test From 23464f9596cca8396e60133ab64eb5c803a7c792 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 23 Oct 2020 22:48:05 +0000 Subject: [PATCH 0903/3441] chore: release 1.123.2 (#862) :robot: I have created a release \*beep\* \*boop\* --- ### [1.123.2](https://www.github.com/googleapis/java-bigquery/compare/v1.123.1...v1.123.2) (2020-10-23) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.17.0 ([#860](https://www.github.com/googleapis/java-bigquery/issues/860)) ([825575e](https://www.github.com/googleapis/java-bigquery/commit/825575eed83312e94d1417cf5e1d286bd843c347)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f5052bb47a6..af54fbc83691 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.123.2](https://www.github.com/googleapis/java-bigquery/compare/v1.123.1...v1.123.2) (2020-10-23) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.17.0 ([#860](https://www.github.com/googleapis/java-bigquery/issues/860)) ([825575e](https://www.github.com/googleapis/java-bigquery/commit/825575eed83312e94d1417cf5e1d286bd843c347)) + ### [1.123.1](https://www.github.com/googleapis/java-bigquery/compare/v1.123.0...v1.123.1) (2020-10-23) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8ce04e42399a..cbacf023e60d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.123.2-SNAPSHOT + 1.123.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index db6204223bda..1065f497cd15 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.123.2-SNAPSHOT + 1.123.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.123.2-SNAPSHOT + 1.123.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 15cb34ee6cc1..789110c732f9 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.123.2-SNAPSHOT + 1.123.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.123.2-SNAPSHOT + 1.123.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8a215fd8204f..3c44b8a8664a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.123.2-SNAPSHOT + 1.123.2 diff --git a/versions.txt b/versions.txt index 2e945a9d238f..76f913441aa0 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.123.1:1.123.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.123.2:1.123.2 \ No newline at end of file From 80ef0072687a8f107768c65c8788b70a8a002dfd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 24 Oct 2020 08:12:02 +0000 Subject: [PATCH 0904/3441] chore: release 1.123.3-SNAPSHOT (#864) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index cbacf023e60d..34bba1ef23ed 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.123.2 + 1.123.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1065f497cd15..f630f4ccd87f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.123.2 + 1.123.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.123.2 + 1.123.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 789110c732f9..e10eeea8d31f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.123.2 + 1.123.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.123.2 + 1.123.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3c44b8a8664a..94810013daf4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.123.2 + 1.123.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 76f913441aa0..d89e8ee44a14 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.123.2:1.123.2 \ No newline at end of file +google-cloud-bigquery:1.123.2:1.123.3-SNAPSHOT \ No newline at end of file From 44b9e92064cc79dbe41b9f40c39749de65513dd4 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 24 Oct 2020 01:24:02 -0700 Subject: [PATCH 0905/3441] chore: regenerate README (#865) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-24 08:14:08,419 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-24 08:14:09,474 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/19239ff3-4728-4145-9711-9da5288ae272/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 38617034edf2..b7a015d3a686 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "9736186a026ceb10cdee2c63cfa50a8ddec0f736" + "sha": "80ef0072687a8f107768c65c8788b70a8a002dfd" } }, { diff --git a/README.md b/README.md index 214ff359588f..97926b8c2e22 100644 --- a/README.md +++ b/README.md @@ -47,11 +47,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.123.1' +compile 'com.google.cloud:google-cloud-bigquery:1.123.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.123.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.123.2" ``` ## Authentication From 730c023ccf78575162fb7bc2cb1820e6bb7c5449 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 26 Oct 2020 09:26:02 +0100 Subject: [PATCH 0906/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.123.2 (#863) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | patch | `1.123.1` -> `1.123.2` | --- ### Release Notes
    googleapis/java-bigquery ### [`v1.123.2`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​11232-httpswwwgithubcomgoogleapisjava-bigquerycomparev11231v11232-2020-10-23) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.123.1...v1.123.2)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0db1a94264b1..9c8ae33f6bcf 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.123.1 + 1.123.2 From 9045defed7a40629e9f47abff84ab5eb355cd8f2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 26 Oct 2020 01:46:03 -0700 Subject: [PATCH 0907/3441] chore: regenerate README (#869) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-26 08:35:47,512 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-26 08:35:48,520 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/670ebb44-b396-4c53-84ea-6ab95062680a/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index b7a015d3a686..757a8fe378b9 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "80ef0072687a8f107768c65c8788b70a8a002dfd" + "sha": "730c023ccf78575162fb7bc2cb1820e6bb7c5449" } }, { diff --git a/README.md b/README.md index 97926b8c2e22..f973bfef2e36 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.123.1 + 1.123.2 ``` From d1d72ed90041833788632c135422212d3f7750d0 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 26 Oct 2020 23:12:08 +0530 Subject: [PATCH 0908/3441] refactor: remove duplicate page token field from listdatasets (#868) --- .../java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java | 1 - 1 file changed, 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 60cb57d8a22d..d620f50cce03 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -145,7 +145,6 @@ public Tuple> listDatasets(String projectId, Map datasets = datasetsList.getDatasets(); return Tuple.of( From 992baaf85ae2904bb5900cfdfce6b447fd301b3b Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Mon, 26 Oct 2020 23:13:40 +0530 Subject: [PATCH 0909/3441] fix(samples): dataset getcreatetime (#866) --- .../java/com/example/bigquery/ResourceCleanUp.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java index 247c42b9dbfd..bebc7d1027f7 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java @@ -47,13 +47,13 @@ public static void main(String[] args) { // clean up stale test datasets Page datasets = bigquery.listDatasets(PROJECT_ID, DatasetListOption.pageSize(1000)); for (Dataset dataset : datasets.getValues()) { + dataset = dataset.reload(); String datasetName = dataset.getDatasetId().getDataset(); if ((datasetName.contains("CREATE_DATASET_AWS_TEST_") - || datasetName.contains("MY_DATASET_") - || datasetName.contains("gcloud_test_") - || datasetName.contains("SHARED_DATASET_TEST_")) - // && dataset.getCreationTime() > sixHourAgo - ) { + || datasetName.contains("MY_DATASET_") + || datasetName.contains("gcloud_test_") + || datasetName.contains("SHARED_DATASET_TEST_")) + && dataset.getCreationTime() > sixHourAgo) { System.out.format("\tDeleting Dataset: %s\n", datasetName); bigquery.delete( DatasetId.of(PROJECT_ID, datasetName), BigQuery.DatasetDeleteOption.deleteContents()); From 66551c3955ec9ba58e5b7b3204539ff4cde07298 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 26 Oct 2020 20:11:34 +0100 Subject: [PATCH 0910/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.2 (#871) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e10eeea8d31f..50c8a206173d 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.1 + 1.113.2 test From 9f5fe9fb0cc632360893f0a684f87b4186d29f24 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 26 Oct 2020 15:58:04 -0400 Subject: [PATCH 0911/3441] ci: enable secrete manager for nightly resource cleanup (#872) Fixes `github/java-bigquery/.kokoro/run_samples_resource_cleanup.sh: line 32: /tmpfs/src/gfile/bigquery_secrets.txt: No such file or directory` seen in Fusion build logs: https://g3c.corp.google.com/results/invocations/55fae1ae-eb61-4308-90e6-c2b17d08ccd5/targets/cloud-devrel%2Fclient-libraries%2Fjava%2Fjava-bigquery%2Fnightly%2Fsamples/log --- .kokoro/nightly/samples.cfg | 2 +- .kokoro/run_samples_resource_cleanup.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.kokoro/nightly/samples.cfg b/.kokoro/nightly/samples.cfg index 8c014b575da6..747690f20cb1 100644 --- a/.kokoro/nightly/samples.cfg +++ b/.kokoro/nightly/samples.cfg @@ -29,7 +29,7 @@ env_vars: { env_vars: { key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account" + value: "java-docs-samples-service-account, java-bigquery-samples-secrets" } env_vars: { diff --git a/.kokoro/run_samples_resource_cleanup.sh b/.kokoro/run_samples_resource_cleanup.sh index f0b97549a8de..1e0523a26779 100755 --- a/.kokoro/run_samples_resource_cleanup.sh +++ b/.kokoro/run_samples_resource_cleanup.sh @@ -29,7 +29,7 @@ cd ${scriptDir}/.. source ${scriptDir}/common.sh # Setup required env variables -source ${KOKORO_GFILE_DIR}/bigquery_secrets.txt +source ${KOKORO_GFILE_DIR}/secret_manager/java-bigquery-samples-secrets echo "********** Successfully Set All Environment Variables **********" # Activate service account From 8642cec33d4abbd0f02f27bfbe16eff36aae9778 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 26 Oct 2020 16:56:08 -0700 Subject: [PATCH 0912/3441] chore(ci): fix typo in restrict presubmit samples ITs to only snapshot (#874) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/22b8daf4-a0db-476e-b345-2cc3e8438c6b/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/f68649c5f26bcff6817c6d21e90dac0fc71fef8e --- .kokoro/build.sh | 2 +- synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 93d8a97705b5..5365c12cf810 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -78,7 +78,7 @@ samples) if [[ -f ${SAMPLES_DIR}/pom.xml ]] then - pushd {SAMPLES_DIR} + pushd ${SAMPLES_DIR} mvn -B \ -Penable-samples \ -DtrimStackTrace=false \ diff --git a/synth.metadata b/synth.metadata index 75a8f4048b27..064d763e5b7c 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "4f44f74e967a5986962d9b457a33da9ccf0eea1e" + "sha": "9f5fe9fb0cc632360893f0a684f87b4186d29f24" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5f6ef0ec5501d33c4667885b37a7685a30d41a76" + "sha": "f68649c5f26bcff6817c6d21e90dac0fc71fef8e" } } ], From ce6fd556428fc775b04d14b0937dd2b5f02f6dde Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 27 Oct 2020 01:00:04 +0100 Subject: [PATCH 0913/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v13.3.0 (#873) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `13.2.0` -> `13.3.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c036406823dc..70394c29dfd9 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 13.2.0 + 13.3.0 pom import From b031447d691de51678a0654c27b0f621672dd52a Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 27 Oct 2020 22:28:49 +0530 Subject: [PATCH 0914/3441] feat: add acl for routine (#875) --- .../java/com/google/cloud/bigquery/Acl.java | 63 ++++++++++++++++++- .../google/cloud/bigquery/DatasetInfo.java | 8 +++ .../com/google/cloud/bigquery/AclTest.java | 14 +++++ .../cloud/bigquery/DatasetInfoTest.java | 6 +- .../google/cloud/bigquery/DatasetTest.java | 3 +- .../cloud/bigquery/SerializationTest.java | 5 +- .../cloud/bigquery/it/ITBigQueryTest.java | 27 ++++++++ 7 files changed, 121 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java index b55bae228d55..48ff86342027 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java @@ -104,7 +104,8 @@ public enum Type { GROUP, USER, VIEW, - IAM_MEMBER + IAM_MEMBER, + ROUTINE } Entity(Type type) { @@ -136,6 +137,9 @@ static Entity fromPb(Access access) { if (access.getIamMember() != null) { return new IamMember(access.getIamMember()); } + if (access.getRoutine() != null) { + return new Routine(RoutineId.fromPb(access.getRoutine())); + } // Unreachable throw new BigQueryException( BigQueryException.UNKNOWN_CODE, "Unrecognized access configuration"); @@ -387,6 +391,58 @@ Access toPb() { } } + /** + * Class for a BigQuery Routine entity. Objects of this class represent a routine from a different + * dataset to grant access to. Queries executed against that routine will have read access to + * views/tables/routines in this dataset. Only UDF is supported for now. The role field is not + * required when this field is set. If that routine is updated by any user, access to the routine + * needs to be granted again via an update operation. + */ + public static final class Routine extends Entity { + + private static final long serialVersionUID = -8392885851733136262L; + + private final RoutineId id; + + /** Creates a Routine entity given the routine's id. */ + public Routine(RoutineId id) { + super(Type.ROUTINE); + this.id = id; + } + + /** Returns routine's identity. */ + public RoutineId getId() { + return id; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + Routine routine = (Routine) obj; + return Objects.equals(getType(), routine.getType()) && Objects.equals(id, routine.id); + } + + @Override + public int hashCode() { + return Objects.hash(getType(), id); + } + + @Override + public String toString() { + return toPb().toString(); + } + + @Override + Access toPb() { + return new Access().setRoutine(id.toPb()); + } + } + /** * Class for a BigQuery IamMember entity. Objects of this class represent a iamMember to grant * access to given the IAM Policy. @@ -465,6 +521,11 @@ public static Acl of(View view) { return new Acl(view, null); } + /** Returns an Acl object for a routine entity. */ + public static Acl of(Routine routine) { + return new Acl(routine, null); + } + @Override public int hashCode() { return Objects.hash(entity, role); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java index dbd71d828987..c7c6d0c19fcf 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java @@ -21,6 +21,7 @@ import com.google.api.client.util.Data; import com.google.api.services.bigquery.model.Dataset; +import com.google.api.services.bigquery.model.RoutineReference; import com.google.api.services.bigquery.model.TableReference; import com.google.common.base.Function; import com.google.common.base.MoreObjects; @@ -509,6 +510,13 @@ DatasetInfo setProjectId(String projectId) { viewReferencePb.setProjectId(projectId); } acls.add(Acl.of(new Acl.View(TableId.fromPb(viewReferencePb)))); + } else if (acl.getEntity().getType() == Acl.Entity.Type.ROUTINE) { + Dataset.Access accessPb = acl.toPb(); + RoutineReference routineReferencePb = accessPb.getRoutine(); + if (routineReferencePb.getProjectId() == null) { + routineReferencePb.setProjectId(projectId); + } + acls.add(Acl.of(new Acl.Routine(RoutineId.fromPb(routineReferencePb)))); } else { acls.add(acl); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java index c63599af2c22..736803391873 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java @@ -88,6 +88,16 @@ public void testViewEntity() { assertEquals(entity, Entity.fromPb(pb)); } + @Test + public void testRoutineEntity() { + RoutineId routineId = RoutineId.of("project", "dataset", "routine"); + Acl.Routine entity = new Acl.Routine(routineId); + assertEquals(routineId, entity.getId()); + assertEquals(Type.ROUTINE, entity.getType()); + Dataset.Access pb = entity.toPb(); + assertEquals(entity, Entity.fromPb(pb)); + } + @Test public void testIamMemberEntity() { IamMember entity = new IamMember("member1"); @@ -107,5 +117,9 @@ public void testOf() { acl = Acl.of(view); assertEquals(view, acl.getEntity()); assertEquals(null, acl.getRole()); + Acl.Routine routine = new Acl.Routine(RoutineId.of("project", "dataset", "routine")); + acl = Acl.of(routine); + assertEquals(routine, acl.getEntity()); + assertEquals(null, acl.getRole()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java index da190cf21599..453701e3a8cf 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -31,11 +31,13 @@ public class DatasetInfoTest { private static final List ACCESS_RULES = ImmutableList.of( Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), - Acl.of(new Acl.View(TableId.of("dataset", "table")))); + Acl.of(new Acl.View(TableId.of("dataset", "table"))), + Acl.of(new Acl.Routine(RoutineId.of("dataset", "routine")))); private static final List ACCESS_RULES_COMPLETE = ImmutableList.of( Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), - Acl.of(new Acl.View(TableId.of("project", "dataset", "table")))); + Acl.of(new Acl.View(TableId.of("project", "dataset", "table"))), + Acl.of(new Acl.Routine(RoutineId.of("project", "dataset", "routine")))); private static final List ACCESS_RULES_IAM_MEMBER = ImmutableList.of(Acl.of(new Acl.IamMember("allUsers"), Acl.Role.READER)); private static final Map LABELS = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java index 8e783d396eed..ae710a9fc99b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java @@ -49,7 +49,8 @@ public class DatasetTest { private static final List ACCESS_RULES = ImmutableList.of( Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), - Acl.of(new Acl.View(TableId.of("dataset", "table")))); + Acl.of(new Acl.View(TableId.of("dataset", "table"))), + Acl.of(new Acl.Routine(RoutineId.of("dataset", "routine")))); private static final Map LABELS = ImmutableMap.of( "example-label1", "example-value1", diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java index 2afdefc67bd2..30bb0db0b806 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java @@ -36,8 +36,10 @@ public class SerializationTest extends BaseSerializationTest { private static final Acl USER_ACCESS = Acl.of(new Acl.User("user"), Acl.Role.OWNER); private static final Acl VIEW_ACCESS = Acl.of(new Acl.View(TableId.of("project", "dataset", "table")), Acl.Role.WRITER); + private static final Acl ROUTINE_ACCESS = + Acl.of(new Acl.Routine(RoutineId.of("project", "dataset", "routine")), Acl.Role.WRITER); private static final List ACCESS_RULES = - ImmutableList.of(DOMAIN_ACCESS, GROUP_ACCESS, VIEW_ACCESS, USER_ACCESS); + ImmutableList.of(DOMAIN_ACCESS, GROUP_ACCESS, VIEW_ACCESS, ROUTINE_ACCESS, USER_ACCESS); private static final Long CREATION_TIME = System.currentTimeMillis() - 10; private static final Long DEFAULT_TABLE_EXPIRATION = 100L; private static final String DESCRIPTION = "Description"; @@ -225,6 +227,7 @@ protected Serializable[] serializableObjects() { GROUP_ACCESS, USER_ACCESS, VIEW_ACCESS, + ROUTINE_ACCESS, DATASET_ID, DATASET_INFO, TABLE_ID, diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 36ad12d687e3..0338d3505f29 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -112,6 +112,7 @@ import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.nio.file.FileSystems; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -1491,6 +1492,32 @@ public void testRoutineAPICreation() { assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); } + @Test + public void testAuthorizeRoutine() { + String routineName = RemoteBigQueryHelper.generateRoutineName(); + RoutineId routineId = RoutineId.of(PROJECT_ID, ROUTINE_DATASET, routineName); + RoutineInfo routineInfo = + RoutineInfo.newBuilder(routineId) + .setRoutineType("SCALAR_FUNCTION") + .setBody("x * 3") + .setLanguage("SQL") + .setArguments( + ImmutableList.of( + RoutineArgument.newBuilder() + .setName("x") + .setDataType(StandardSQLDataType.newBuilder("INT64").build()) + .build())) + .build(); + Routine routine = bigquery.create(routineInfo); + assertNotNull(routine); + assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); + Dataset routineDataset = bigquery.getDataset(ROUTINE_DATASET); + List routineAcl = new ArrayList<>(routineDataset.getAcl()); + routineAcl.add(Acl.of(new Acl.Routine(routineId))); + routineDataset = routineDataset.toBuilder().setAcl(routineAcl).build().update(); + assertEquals(routineAcl, routineDataset.getAcl()); + } + @Test public void testSingleStatementsQueryException() throws InterruptedException { String invalidQuery = From 30bb4ed3162541c1c2d8df523fc0dbc70651bdee Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 27 Oct 2020 10:20:09 -0700 Subject: [PATCH 0915/3441] chore: regenerate README (#877) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-27 17:01:02,782 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-27 17:01:03,848 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/40a701af-c66a-4198-b76d-a51354a8f0c4/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 757a8fe378b9..83a1e7e2e96a 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "730c023ccf78575162fb7bc2cb1820e6bb7c5449" + "sha": "b031447d691de51678a0654c27b0f621672dd52a" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "a783321fd55f010709294455584a553f4b24b944" + "sha": "fd3584b01cedd6c9f79d08be4e2365085f955aa5" } } ] diff --git a/README.md b/README.md index f973bfef2e36..78fcd31ff13a 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 13.2.0 + 13.3.0 pom import From d12a2569a1ad99c1f20dc86e7362d0f44401f1c0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 27 Oct 2020 18:29:56 +0100 Subject: [PATCH 0916/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v0.4.2 (#878) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 9c8ae33f6bcf..46c2a5a9a064 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 0.4.1 + 0.4.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 94810013daf4..158bedd2f4c0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 0.4.1 + 0.4.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 70394c29dfd9..752fc04f7915 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 0.4.1 + 0.4.2 test From 0517ebd9643c1dadc45035fdf13b1eeca9a1681a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 27 Oct 2020 20:30:20 +0100 Subject: [PATCH 0917/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.9.4 (#880) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | patch | `0.9.3` -> `0.9.4` | --- ### Release Notes
    googleapis/java-shared-config ### [`v0.9.4`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​094-httpswwwgithubcomgoogleapisjava-shared-configcomparev093v094-2020-10-21) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v0.9.3...v0.9.4)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 50c8a206173d..e877f4f6931d 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.9.3 + 0.9.4 From 89cb654bffab75822c75b15f364d04f72c6b1c91 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 27 Oct 2020 15:49:55 -0400 Subject: [PATCH 0918/3441] ci: prepend kokoro root directory to the path to service-acct.json (#879) --- .kokoro/run_samples_resource_cleanup.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.kokoro/run_samples_resource_cleanup.sh b/.kokoro/run_samples_resource_cleanup.sh index 1e0523a26779..93be9d728615 100755 --- a/.kokoro/run_samples_resource_cleanup.sh +++ b/.kokoro/run_samples_resource_cleanup.sh @@ -32,6 +32,11 @@ source ${scriptDir}/common.sh source ${KOKORO_GFILE_DIR}/secret_manager/java-bigquery-samples-secrets echo "********** Successfully Set All Environment Variables **********" +# if GOOGLE_APPLICATION_CREDIENTIALS is specified as a relative path prepend Kokoro root directory onto it +if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTIALS}" != /* ]]; then + export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_GFILE_DIR}/${GOOGLE_APPLICATION_CREDENTIALS}) +fi + # Activate service account gcloud auth activate-service-account \ --key-file="$GOOGLE_APPLICATION_CREDENTIALS" \ From 9f48a91fdaa4bed55410ce492bac11d448ce8c4b Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 28 Oct 2020 12:50:05 -0400 Subject: [PATCH 0919/3441] ci: update Kokoro root directory (#882) To run nightly samples resource cleanup jobs. Still observing: ``` ERROR: (gcloud.auth.activate-service-account) Unable to read file [/tmpfs/src/gfile/service-acct.json]: [Errno 2] No such file or directory: '/tmpfs/src/gfile/service-acct.json' ``` https://g3c.corp.google.com/results/invocations/cc95e6ae-5986-430d-b69e-ef87696ba02c/targets/cloud-devrel%2Fclient-libraries%2Fjava%2Fjava-bigquery%2Fnightly%2Fsamples/log --- .kokoro/run_samples_resource_cleanup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.kokoro/run_samples_resource_cleanup.sh b/.kokoro/run_samples_resource_cleanup.sh index 93be9d728615..47fc206ecaed 100755 --- a/.kokoro/run_samples_resource_cleanup.sh +++ b/.kokoro/run_samples_resource_cleanup.sh @@ -34,7 +34,7 @@ echo "********** Successfully Set All Environment Variables **********" # if GOOGLE_APPLICATION_CREDIENTIALS is specified as a relative path prepend Kokoro root directory onto it if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTIALS}" != /* ]]; then - export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_GFILE_DIR}/${GOOGLE_APPLICATION_CREDENTIALS}) + export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_GFILE_DIR}/secret_manager/${GOOGLE_APPLICATION_CREDENTIALS}) fi # Activate service account @@ -49,4 +49,4 @@ cd samples/snippets echo -e "\n******************** NIGHTLY RESOURCE CLEAN UP ********************" -mvn compile exec:java -Dexec.mainClass=com.example.bigquery.ResourceCleanUp \ No newline at end of file +mvn compile exec:java -Dexec.mainClass=com.example.bigquery.ResourceCleanUp From 97573b574a84a1504baf3ad0fb0d30a321842a14 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 28 Oct 2020 18:40:39 -0400 Subject: [PATCH 0920/3441] docs(samples): fix typo (#884) * docs(samples): fix typo * nit --- .../main/java/com/example/bigquery/ExportQueryResultsToS3.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java b/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java index 4b895f9956e5..2bb6c79fe2db 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java @@ -43,7 +43,8 @@ public static void main(String[] args) throws InterruptedException { // Export result of query to find states starting with 'W' String query = String.format( - "EXPORT DATA WITH CONNECTION %s AS SELECT * FROM %s.%s.%s WHERE name LIKE 'W%%'", + "EXPORT DATA WITH CONNECTION `%s` OPTIONS(uri='%s', format='%s') " + + "AS SELECT * FROM %s.%s.%s WHERE name LIKE 'W%%'", connectionName, destinationUri, format, projectId, datasetName, externalTableName); exportQueryResultsToS3(query); } From bf5b5844097af75e53b4857cc29ca30977ef06fe Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 29 Oct 2020 16:00:36 +0100 Subject: [PATCH 0921/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1 (#883) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 46c2a5a9a064..01719fb2150e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 0.4.2 + 1.0.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 158bedd2f4c0..03d32da96212 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 0.4.2 + 1.0.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 752fc04f7915..89bbd058c30f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 0.4.2 + 1.0.0 test From 1b932269b5bf16dbddb5bff9c7574641c36751dc Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 29 Oct 2020 13:34:02 -0400 Subject: [PATCH 0922/3441] ci: add one more type of table to clean up (#885) --- .../src/main/java/com/example/bigquery/ResourceCleanUp.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java index bebc7d1027f7..3ce8b6426f14 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java @@ -69,7 +69,8 @@ public static void main(String[] args) { || tableName.contains("_TEST") || tableName.contains("MY_") || tableName.contains("gcloud_test_") - || tableName.contains("TESTTABLE_")) + || tableName.contains("TESTTABLE_") + || tableName.contains("NESTED_REPEATED_")) && table.getCreationTime() > sixHourAgo) { System.out.format("\tDeleting Table: %s\n", tableName); bigquery.delete(TableId.of(PROJECT_ID, BIGQUERY_DATASET_NAME, tableName)); From 0711ae07d63e8f1bb6b4e31dc11b2b21e3496374 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2020 13:42:52 -0400 Subject: [PATCH 0923/3441] chore: release 1.124.0 (#876) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 22 ++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index af54fbc83691..329f3dac7b9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## [1.124.0](https://www.github.com/googleapis/java-bigquery/compare/v1.123.2...v1.124.0) (2020-10-29) + + +### Features + +* add acl for routine ([#875](https://www.github.com/googleapis/java-bigquery/issues/875)) ([b031447](https://www.github.com/googleapis/java-bigquery/commit/b031447d691de51678a0654c27b0f621672dd52a)) + + +### Bug Fixes + +* **samples:** dataset getcreatetime ([#866](https://www.github.com/googleapis/java-bigquery/issues/866)) ([992baaf](https://www.github.com/googleapis/java-bigquery/commit/992baaf85ae2904bb5900cfdfce6b447fd301b3b)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v1.113.2 ([#871](https://www.github.com/googleapis/java-bigquery/issues/871)) ([66551c3](https://www.github.com/googleapis/java-bigquery/commit/66551c3955ec9ba58e5b7b3204539ff4cde07298)) + + +### Documentation + +* **samples:** fix typo ([#884](https://www.github.com/googleapis/java-bigquery/issues/884)) ([97573b5](https://www.github.com/googleapis/java-bigquery/commit/97573b574a84a1504baf3ad0fb0d30a321842a14)) + ### [1.123.2](https://www.github.com/googleapis/java-bigquery/compare/v1.123.1...v1.123.2) (2020-10-23) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 34bba1ef23ed..b0ac8ce97a74 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.123.3-SNAPSHOT + 1.124.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f630f4ccd87f..c93eb72beb81 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.123.3-SNAPSHOT + 1.124.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.123.3-SNAPSHOT + 1.124.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e877f4f6931d..1d5aa8f3f0d1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.123.3-SNAPSHOT + 1.124.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.123.3-SNAPSHOT + 1.124.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 03d32da96212..d7bf803a92b2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.123.3-SNAPSHOT + 1.124.0 diff --git a/versions.txt b/versions.txt index d89e8ee44a14..529be1856945 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.123.2:1.123.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.124.0:1.124.0 \ No newline at end of file From a9e45f83c0344886037939a04333194de1413bfc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 29 Oct 2020 20:50:10 +0100 Subject: [PATCH 0924/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.124.0 (#887) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 01719fb2150e..4a611a41d174 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.123.2 + 1.124.0 From f2877a2e7feb6993371b44af9d884dfb8f913266 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 29 Oct 2020 20:06:02 +0000 Subject: [PATCH 0925/3441] chore: release 1.124.1-SNAPSHOT (#888) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b0ac8ce97a74..609a55e9a864 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.0 + 1.124.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c93eb72beb81..6e15246c4c76 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.0 + 1.124.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.0 + 1.124.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1d5aa8f3f0d1..a188e29b1b9b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.0 + 1.124.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.0 + 1.124.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d7bf803a92b2..2496427f532a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.0 + 1.124.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 529be1856945..4da41847bad2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.0:1.124.0 \ No newline at end of file +google-cloud-bigquery:1.124.0:1.124.1-SNAPSHOT \ No newline at end of file From 4598f6dfabc08d490ea032a74544956d0912dbeb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 29 Oct 2020 22:32:03 -0700 Subject: [PATCH 0926/3441] chore: regenerate README (#889) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-29 19:52:31,453 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-29 19:52:32,470 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/9a152f72-b02d-4a15-9583-9f6b2d36c07d/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 83a1e7e2e96a..77607aab0adc 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b031447d691de51678a0654c27b0f621672dd52a" + "sha": "a9e45f83c0344886037939a04333194de1413bfc" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "fd3584b01cedd6c9f79d08be4e2365085f955aa5" + "sha": "ea52b8a0bd560f72f376efcf45197fb7c8869120" } } ] diff --git a/README.md b/README.md index 78fcd31ff13a..3bcad70e4dc9 100644 --- a/README.md +++ b/README.md @@ -40,18 +40,18 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.123.2 + 1.124.0 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.123.2' +compile 'com.google.cloud:google-cloud-bigquery:1.124.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.123.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.0" ``` ## Authentication From 9e5c7c7a6a0e32ce145a727bcdc1493e149f3b14 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Fri, 30 Oct 2020 20:45:43 +0530 Subject: [PATCH 0927/3441] fix: nullpointerexception for listroutines and listmodels (#890) --- .../bigquery/spi/v2/HttpBigQueryRpc.java | 8 +++++-- .../cloud/bigquery/it/ITBigQueryTest.java | 24 +++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index d620f50cce03..4d9558454df8 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -388,7 +388,8 @@ public Tuple> listModels( .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)) .execute(); - Iterable models = modelList.getModels(); + Iterable models = + modelList.getModels() != null ? modelList.getModels() : ImmutableList.of(); return Tuple.of(modelList.getNextPageToken(), models); } catch (IOException ex) { throw translate(ex); @@ -456,7 +457,10 @@ public Tuple> listRoutines( .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)) .execute(); - Iterable routines = routineList.getRoutines(); + Iterable routines = + routineList.getRoutines() != null + ? routineList.getRoutines() + : ImmutableList.of(); return Tuple.of(routineList.getNextPageToken(), routines); } catch (IOException ex) { throw translate(ex); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 0338d3505f29..29f19f3f4025 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -146,6 +146,7 @@ public class ITBigQueryTest { private static final String MODEL_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String ROUTINE_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); + private static final String RANDOM_ID = UUID.randomUUID().toString().substring(0, 8); private static final Map LABELS = ImmutableMap.of( "example-label1", "example-value1", @@ -1425,6 +1426,29 @@ public void testModelLifecycle() throws InterruptedException { assertTrue(bigquery.delete(modelId)); } + @Test + public void testEmptyListModels() { + String datasetId = "test_empty_dataset_list_models_" + RANDOM_ID; + assertNotNull(bigquery.create(DatasetInfo.of(datasetId))); + Page models = bigquery.listModels(datasetId, BigQuery.ModelListOption.pageSize(100)); + assertEquals(0, Iterables.size(models.getValues())); + assertFalse(models.hasNextPage()); + assertNull(models.getNextPageToken()); + assertTrue(bigquery.delete(datasetId)); + } + + @Test + public void testEmptyListRoutines() { + String datasetId = "test_empty_dataset_list_routines_" + RANDOM_ID; + assertNotNull(bigquery.create(DatasetInfo.of(datasetId))); + Page routines = + bigquery.listRoutines(datasetId, BigQuery.RoutineListOption.pageSize(100)); + assertEquals(0, Iterables.size(routines.getValues())); + assertFalse(routines.hasNextPage()); + assertNull(routines.getNextPageToken()); + assertTrue(bigquery.delete(datasetId)); + } + @Test public void testRoutineLifecycle() throws InterruptedException { From ea4f45e00de6f8da8352f5a85513996475960f7c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 30 Oct 2020 22:56:10 +0100 Subject: [PATCH 0928/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20201022-1.30.10 (#892) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a188e29b1b9b..4a7b7b010902 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20201015-1.30.10 + v2-rev20201022-1.30.10 0.13.0
    From 41d4f442d5dca0b7912f080ea8bb77775192c8b6 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 30 Oct 2020 17:58:40 -0400 Subject: [PATCH 0929/3441] ci: nightly cleanup cleanup (#886) * ci: nightly cleanup cleanup * missing credentials * nit * Update run_samples_resource_cleanup.sh * Update run_samples_resource_cleanup.sh * Update run_samples_resource_cleanup.sh * Update run_samples_resource_cleanup.sh * try again * try again * nit --- .kokoro/nightly/samples.cfg | 3 +++ .kokoro/run_samples_resource_cleanup.sh | 12 ------------ 2 files changed, 3 insertions(+), 12 deletions(-) diff --git a/.kokoro/nightly/samples.cfg b/.kokoro/nightly/samples.cfg index 747690f20cb1..af090aff6834 100644 --- a/.kokoro/nightly/samples.cfg +++ b/.kokoro/nightly/samples.cfg @@ -1,5 +1,8 @@ # Format: //devtools/kokoro/config/proto/build.proto +# Download secrets from Cloud Storage. +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" + # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" diff --git a/.kokoro/run_samples_resource_cleanup.sh b/.kokoro/run_samples_resource_cleanup.sh index 47fc206ecaed..e04daf3c646f 100755 --- a/.kokoro/run_samples_resource_cleanup.sh +++ b/.kokoro/run_samples_resource_cleanup.sh @@ -32,18 +32,6 @@ source ${scriptDir}/common.sh source ${KOKORO_GFILE_DIR}/secret_manager/java-bigquery-samples-secrets echo "********** Successfully Set All Environment Variables **********" -# if GOOGLE_APPLICATION_CREDIENTIALS is specified as a relative path prepend Kokoro root directory onto it -if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTIALS}" != /* ]]; then - export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_GFILE_DIR}/secret_manager/${GOOGLE_APPLICATION_CREDENTIALS}) -fi - -# Activate service account -gcloud auth activate-service-account \ - --key-file="$GOOGLE_APPLICATION_CREDENTIALS" \ - --project="$GOOGLE_CLOUD_PROJECT" - -mvn clean install -DskipTests=true - # Move into the samples directory cd samples/snippets From c310a4dda2c1f999d0156ab6ce8d230ae80c2875 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 30 Oct 2020 22:10:03 +0000 Subject: [PATCH 0930/3441] chore: release 1.124.1 (#891) :robot: I have created a release \*beep\* \*boop\* --- ### [1.124.1](https://www.github.com/googleapis/java-bigquery/compare/v1.124.0...v1.124.1) (2020-10-30) ### Bug Fixes * nullpointerexception for listroutines and listmodels ([#890](https://www.github.com/googleapis/java-bigquery/issues/890)) ([9e5c7c7](https://www.github.com/googleapis/java-bigquery/commit/9e5c7c7a6a0e32ce145a727bcdc1493e149f3b14)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20201022-1.30.10 ([#892](https://www.github.com/googleapis/java-bigquery/issues/892)) ([ea4f45e](https://www.github.com/googleapis/java-bigquery/commit/ea4f45e00de6f8da8352f5a85513996475960f7c)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 329f3dac7b9d..6c33fff4d24f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### [1.124.1](https://www.github.com/googleapis/java-bigquery/compare/v1.124.0...v1.124.1) (2020-10-30) + + +### Bug Fixes + +* nullpointerexception for listroutines and listmodels ([#890](https://www.github.com/googleapis/java-bigquery/issues/890)) ([9e5c7c7](https://www.github.com/googleapis/java-bigquery/commit/9e5c7c7a6a0e32ce145a727bcdc1493e149f3b14)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20201022-1.30.10 ([#892](https://www.github.com/googleapis/java-bigquery/issues/892)) ([ea4f45e](https://www.github.com/googleapis/java-bigquery/commit/ea4f45e00de6f8da8352f5a85513996475960f7c)) + ## [1.124.0](https://www.github.com/googleapis/java-bigquery/compare/v1.123.2...v1.124.0) (2020-10-29) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 609a55e9a864..f47b9cc96ca6 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.1-SNAPSHOT + 1.124.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6e15246c4c76..1c664585abb7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.1-SNAPSHOT + 1.124.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.1-SNAPSHOT + 1.124.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4a7b7b010902..eb9ba34b5fcb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.1-SNAPSHOT + 1.124.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.1-SNAPSHOT + 1.124.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2496427f532a..197435ef2764 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.1-SNAPSHOT + 1.124.1 diff --git a/versions.txt b/versions.txt index 4da41847bad2..02d440e68226 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.0:1.124.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.124.1:1.124.1 \ No newline at end of file From e9a34a30ed37c5d548de60c9f44cec22d426134e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 31 Oct 2020 00:34:21 +0100 Subject: [PATCH 0931/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v13.4.0 (#894) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `13.3.0` -> `13.4.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 89bbd058c30f..94e97ea448fa 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 13.3.0 + 13.4.0 pom import From ea391ce3f930b6d38dede62a640324a5f5d3c4eb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 30 Oct 2020 23:54:08 +0000 Subject: [PATCH 0932/3441] chore: release 1.124.2-SNAPSHOT (#895) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f47b9cc96ca6..2859f6e6c077 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.1 + 1.124.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1c664585abb7..430cada96602 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.1 + 1.124.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.1 + 1.124.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index eb9ba34b5fcb..546e653bef2e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.1 + 1.124.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.1 + 1.124.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 197435ef2764..4c0a1de6edb4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.1 + 1.124.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 02d440e68226..914f2c762488 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.1:1.124.1 \ No newline at end of file +google-cloud-bigquery:1.124.1:1.124.2-SNAPSHOT \ No newline at end of file From a634ed0dbcd6daa064f8323fb45d0434144fa821 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 30 Oct 2020 16:54:19 -0700 Subject: [PATCH 0933/3441] chore: regenerate README (#896) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-10-30 23:36:45,239 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-10-30 23:36:46,342 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/bb523f87-a8d7-4e91-8a51-793fc7f6043d/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 77607aab0adc..a77bf929bce3 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "a9e45f83c0344886037939a04333194de1413bfc" + "sha": "e9a34a30ed37c5d548de60c9f44cec22d426134e" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "ea52b8a0bd560f72f376efcf45197fb7c8869120" + "sha": "b19b401571e77192f8dd38eab5fb2300a0de9324" } } ] diff --git a/README.md b/README.md index 3bcad70e4dc9..bf4cb563e9b0 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 13.3.0 + 13.4.0 pom import @@ -47,11 +47,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.124.0' +compile 'com.google.cloud:google-cloud-bigquery:1.124.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.1" ``` ## Authentication From b2cc174640d227d617c7671ec4d074b3facf735e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 31 Oct 2020 17:08:03 +0100 Subject: [PATCH 0934/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.14.1 (#897) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | minor | `0.13.0` -> `0.14.1` | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v0.14.1`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​0141-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare0140v0141-2020-10-31) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v0.14.0...v0.14.1) ### [`v0.14.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​0140-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare0130v0140-2020-10-31) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v0.13.0...v0.14.0) ##### Dependencies - update dependency io.grpc:grpc-bom to v1.33.1 ([#​192](https://www.github.com/googleapis/java-shared-dependencies/issues/192)) ([b29384d](https://www.github.com/googleapis/java-shared-dependencies/commit/b29384dc40c812f1848f00695228d5437556f029)) - update dependency org.threeten:threetenbp to v1.5.0 ([#​196](https://www.github.com/googleapis/java-shared-dependencies/issues/196)) ([825a6fa](https://www.github.com/googleapis/java-shared-dependencies/commit/825a6fa375d12f1caa0a515b784ffde182bac98d)) - update iam.version to v1.0.2 ([#​194](https://www.github.com/googleapis/java-shared-dependencies/issues/194)) ([5c57239](https://www.github.com/googleapis/java-shared-dependencies/commit/5c572399a1b453f4dc5f6ef8d8850a35be2aef75))
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 546e653bef2e..392dcf9113fc 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20201022-1.30.10 - 0.13.0 + 0.14.1
    From a92633c471aa9ef894a2c59356675c84bc45b1ab Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 31 Oct 2020 16:24:04 +0000 Subject: [PATCH 0935/3441] chore: release 1.124.2 (#899) :robot: I have created a release \*beep\* \*boop\* --- ### [1.124.2](https://www.github.com/googleapis/java-bigquery/compare/v1.124.1...v1.124.2) (2020-10-31) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.14.1 ([#897](https://www.github.com/googleapis/java-bigquery/issues/897)) ([b2cc174](https://www.github.com/googleapis/java-bigquery/commit/b2cc174640d227d617c7671ec4d074b3facf735e)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c33fff4d24f..51881a3c7fdc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.124.2](https://www.github.com/googleapis/java-bigquery/compare/v1.124.1...v1.124.2) (2020-10-31) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.14.1 ([#897](https://www.github.com/googleapis/java-bigquery/issues/897)) ([b2cc174](https://www.github.com/googleapis/java-bigquery/commit/b2cc174640d227d617c7671ec4d074b3facf735e)) + ### [1.124.1](https://www.github.com/googleapis/java-bigquery/compare/v1.124.0...v1.124.1) (2020-10-30) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2859f6e6c077..20b0cc153c37 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.2-SNAPSHOT + 1.124.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 430cada96602..93e4e65a7099 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.2-SNAPSHOT + 1.124.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.2-SNAPSHOT + 1.124.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 392dcf9113fc..b1c085b17f2b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.2-SNAPSHOT + 1.124.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.2-SNAPSHOT + 1.124.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4c0a1de6edb4..ed23b984a44c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.2-SNAPSHOT + 1.124.2 diff --git a/versions.txt b/versions.txt index 914f2c762488..0ae51ccfb93d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.1:1.124.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.124.2:1.124.2 \ No newline at end of file From e67d4328882a11f4e38ffbd9e4ffc458a1568b9c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sun, 1 Nov 2020 01:02:02 -0800 Subject: [PATCH 0936/3441] chore(java): enable generated-files-bot (#898) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/144f0dc1-363d-4512-9d09-acba1f17f7e5/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/b19b401571e77192f8dd38eab5fb2300a0de9324 --- .github/generated-files-bot.yml | 7 +++++++ synth.metadata | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 .github/generated-files-bot.yml diff --git a/.github/generated-files-bot.yml b/.github/generated-files-bot.yml new file mode 100644 index 000000000000..20f3acc28172 --- /dev/null +++ b/.github/generated-files-bot.yml @@ -0,0 +1,7 @@ +externalManifests: +- type: json + file: 'synth.metadata' + jsonpath: '$.generatedFiles[*]' +- type: json + file: '.github/readme/synth.metadata/synth.metadata' + jsonpath: '$.generatedFiles[*]' diff --git a/synth.metadata b/synth.metadata index 064d763e5b7c..8865aa292548 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "9f5fe9fb0cc632360893f0a684f87b4186d29f24" + "sha": "a634ed0dbcd6daa064f8323fb45d0434144fa821" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "f68649c5f26bcff6817c6d21e90dac0fc71fef8e" + "sha": "b19b401571e77192f8dd38eab5fb2300a0de9324" } } ], @@ -21,6 +21,7 @@ ".github/ISSUE_TEMPLATE/feature_request.md", ".github/ISSUE_TEMPLATE/support_request.md", ".github/PULL_REQUEST_TEMPLATE.md", + ".github/generated-files-bot.yml", ".github/readme/synth.py", ".github/release-please.yml", ".github/snippet-bot.yml", From 61d7428fa7d2770aa900c11b58d2b3b4c30d9626 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 1 Nov 2020 17:05:39 +0100 Subject: [PATCH 0937/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.124.1 (#893) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4a611a41d174..089adfbc4ea3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.124.0 + 1.124.1 From 7774d327310cf3a03b71698b938f51ffd97a7960 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 2 Nov 2020 09:16:04 +0000 Subject: [PATCH 0938/3441] chore: release 1.124.3-SNAPSHOT (#902) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 20b0cc153c37..d92584cb00e9 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.2 + 1.124.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 93e4e65a7099..40cd588f6630 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.2 + 1.124.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.2 + 1.124.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b1c085b17f2b..a9246a3d1cb4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.2 + 1.124.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.2 + 1.124.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ed23b984a44c..7bf72383b44c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.2 + 1.124.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0ae51ccfb93d..2bfb6245c173 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.2:1.124.2 \ No newline at end of file +google-cloud-bigquery:1.124.2:1.124.3-SNAPSHOT \ No newline at end of file From ae4a8bd5cb7d1842ad8e677f332bdaaee58bc164 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 2 Nov 2020 17:08:44 +0100 Subject: [PATCH 0939/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.124.2 (#903) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 089adfbc4ea3..310940ece257 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.124.1 + 1.124.2 From 57ea3665c21ce1167d27904116584fc30eb5e981 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 2 Nov 2020 09:46:03 -0800 Subject: [PATCH 0940/3441] chore: regenerate README (#901) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-01 16:08:01,514 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-01 16:08:02,863 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/540681ea-4f23-48d3-af72-bf8e75e566cb/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index a77bf929bce3..7b453dddddcb 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "e9a34a30ed37c5d548de60c9f44cec22d426134e" + "sha": "61d7428fa7d2770aa900c11b58d2b3b4c30d9626" } }, { diff --git a/README.md b/README.md index bf4cb563e9b0..091d55222883 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.124.0 + 1.124.1 ``` From 3f0b600ad2df0b695eaf03a7f96503a81d556a01 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 2 Nov 2020 09:58:12 -0800 Subject: [PATCH 0941/3441] chore: regenerate README (#905) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-02 17:48:07,215 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-02 17:48:08,311 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/7d64d4af-0829-4479-8ddf-26ba4c6ec496/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 7b453dddddcb..d8281eab3a7c 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "61d7428fa7d2770aa900c11b58d2b3b4c30d9626" + "sha": "57ea3665c21ce1167d27904116584fc30eb5e981" } }, { diff --git a/README.md b/README.md index 091d55222883..35cd8f351b25 100644 --- a/README.md +++ b/README.md @@ -40,18 +40,18 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.124.1 + 1.124.2 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.124.1' +compile 'com.google.cloud:google-cloud-bigquery:1.124.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.2" ``` ## Authentication From 27766e0ea74e8c7aaf5644f26fddbf8b6debae4c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 2 Nov 2020 19:18:09 +0100 Subject: [PATCH 0942/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.1 (#904) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | patch | `1.0.0` -> `1.0.1` | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v1.0.1`](https://togithub.com/googleapis/java-bigqueryconnection/blob/master/CHANGELOG.md#​101-httpswwwgithubcomgoogleapisjava-bigqueryconnectioncomparev100v101-2020-10-31) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v1.0.0...v1.0.1)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 310940ece257..432a05383caa 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.0 + 1.0.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7bf72383b44c..da712344aa24 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.0 + 1.0.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 94e97ea448fa..a48f14eead17 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.0 + 1.0.1 test From 07a8e2812ed4d1b6bde2fba55462f8df5c7993ef Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 2 Nov 2020 23:16:27 +0100 Subject: [PATCH 0943/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.17.1 (#906) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 432a05383caa..d6ab03e236ab 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.17.0 + 1.17.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index da712344aa24..b295fa308b5b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.17.0 + 1.17.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a48f14eead17..6e26eb66af86 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.17.0 + 1.17.1 test From 77be64fc0084608e56d3b87e3e397506e36f455a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 4 Nov 2020 01:26:06 +0100 Subject: [PATCH 0944/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v14 (#910) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | major | `13.4.0` -> `14.4.1` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6e26eb66af86..a43e5be2e242 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 13.4.0 + 14.4.1 pom import From 45a343df0b3f7b18fd0b735e0f9e9750e162a8db Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 3 Nov 2020 16:50:09 -0800 Subject: [PATCH 0945/3441] chore: regenerate README (#911) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-04 00:28:23,906 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-04 00:28:24,947 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/b8eb91ec-8048-4dcb-8a32-43388b292b9c/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index d8281eab3a7c..de5fdc14014d 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "57ea3665c21ce1167d27904116584fc30eb5e981" + "sha": "77be64fc0084608e56d3b87e3e397506e36f455a" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "b19b401571e77192f8dd38eab5fb2300a0de9324" + "sha": "ba9918cd22874245b55734f57470c719b577e591" } } ] diff --git a/README.md b/README.md index 35cd8f351b25..08ac3be67218 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 13.4.0 + 14.4.1 pom import From dc2c79b9a8fdc21bf51d7af5a2b933bff540fd35 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 5 Nov 2020 14:56:17 -0800 Subject: [PATCH 0946/3441] chore(java): use production staging bucket (#914) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/e0d9282d-d831-4000-9f64-2322c410cd59/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/c7824ea48ff6d4d42dfae0849aec8a85acd90bd9 --- .kokoro/release/publish_javadoc.cfg | 2 +- synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.kokoro/release/publish_javadoc.cfg b/.kokoro/release/publish_javadoc.cfg index cb5db99470e8..853b2e4018d6 100644 --- a/.kokoro/release/publish_javadoc.cfg +++ b/.kokoro/release/publish_javadoc.cfg @@ -9,7 +9,7 @@ env_vars: { env_vars: { key: "STAGING_BUCKET_V2" - value: "docs-staging-v2-staging" + value: "docs-staging-v2" # Production will be at: docs-staging-v2 } diff --git a/synth.metadata b/synth.metadata index 8865aa292548..99cc1d059c26 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "a634ed0dbcd6daa064f8323fb45d0434144fa821" + "sha": "45a343df0b3f7b18fd0b735e0f9e9750e162a8db" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "b19b401571e77192f8dd38eab5fb2300a0de9324" + "sha": "c7824ea48ff6d4d42dfae0849aec8a85acd90bd9" } } ], From 47c749f3e3ee6458d1cba7bde1a2c670bf35b9f6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 6 Nov 2020 00:02:11 +0100 Subject: [PATCH 0947/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v15 (#915) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | major | `14.4.1` -> `15.0.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a43e5be2e242..a40c0820d516 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 14.4.1 + 15.0.0 pom import From 518571d63171a36bab4ff6831ad27860e485ce01 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 5 Nov 2020 17:08:08 -0800 Subject: [PATCH 0948/3441] chore: regenerate README (#916) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-05 23:02:58,892 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-05 23:02:59,875 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/ab5a6234-7f62-4655-ad05-b0a7f1d1ba6e/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index de5fdc14014d..11d278802fc6 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "77be64fc0084608e56d3b87e3e397506e36f455a" + "sha": "47c749f3e3ee6458d1cba7bde1a2c670bf35b9f6" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "ba9918cd22874245b55734f57470c719b577e591" + "sha": "2c8aecedd55b0480fb4e123b6e07fa5b12953862" } } ] diff --git a/README.md b/README.md index 08ac3be67218..abe40a9aa4aa 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 14.4.1 + 15.0.0 pom import From fd584e3f84b1d726850e098ad509cab1e6735191 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 6 Nov 2020 19:06:04 +0100 Subject: [PATCH 0949/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.31.2 (#912) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.oauth-client:google-oauth-client-java6](com/google/oauth-client/google-oauth-client-java6) | patch | `1.31.1` -> `1.31.2` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d6ab03e236ab..2b2ff82d520d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.31.1 + 1.31.2 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b295fa308b5b..e959bb429895 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.31.1 + 1.31.2 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a40c0820d516..94c3adcc95b0 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -63,7 +63,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.31.1 + 1.31.2 com.google.oauth-client From 3d55b365d3b737290b4e9b2c11e69ae67711a1d3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 6 Nov 2020 23:38:05 +0100 Subject: [PATCH 0950/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20201030-1.30.10 (#917) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.apis:google-api-services-bigquery](com/google/apis/google-api-services-bigquery) | patch | `v2-rev20201022-1.30.10` -> `v2-rev20201030-1.30.10` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a9246a3d1cb4..ae6fbbab982d 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20201022-1.30.10 + v2-rev20201030-1.30.10 0.14.1
    From 1ca3e9022354f2f5c96df004208979eabace90df Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 10 Nov 2020 09:43:08 +0100 Subject: [PATCH 0951/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.31.2 (#913) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2b2ff82d520d..bf8bfc4f85b7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.31.1 + 1.31.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e959bb429895..19e5e08474f2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.31.1 + 1.31.2 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 94c3adcc95b0..49ba93e9ae0d 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -68,7 +68,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.31.1 + 1.31.2 From e041a0396c0e755b3b9dcb79b88ab62d2eeb4431 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 10 Nov 2020 08:58:04 +0000 Subject: [PATCH 0952/3441] chore: release 1.124.3 (#907) :robot: I have created a release \*beep\* \*boop\* --- ### [1.124.3](https://www.github.com/googleapis/java-bigquery/compare/v1.124.2...v1.124.3) (2020-11-10) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20201030-1.30.10 ([#917](https://www.github.com/googleapis/java-bigquery/issues/917)) ([3d55b36](https://www.github.com/googleapis/java-bigquery/commit/3d55b365d3b737290b4e9b2c11e69ae67711a1d3)) * update dependency com.google.cloud:google-cloud-bigtable to v1.17.1 ([#906](https://www.github.com/googleapis/java-bigquery/issues/906)) ([07a8e28](https://www.github.com/googleapis/java-bigquery/commit/07a8e2812ed4d1b6bde2fba55462f8df5c7993ef)) * update dependency com.google.oauth-client:google-oauth-client-java6 to v1.31.2 ([#912](https://www.github.com/googleapis/java-bigquery/issues/912)) ([fd584e3](https://www.github.com/googleapis/java-bigquery/commit/fd584e3f84b1d726850e098ad509cab1e6735191)) * update dependency com.google.oauth-client:google-oauth-client-jetty to v1.31.2 ([#913](https://www.github.com/googleapis/java-bigquery/issues/913)) ([1ca3e90](https://www.github.com/googleapis/java-bigquery/commit/1ca3e9022354f2f5c96df004208979eabace90df)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 10 ++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51881a3c7fdc..247d3e92bc6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +### [1.124.3](https://www.github.com/googleapis/java-bigquery/compare/v1.124.2...v1.124.3) (2020-11-10) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20201030-1.30.10 ([#917](https://www.github.com/googleapis/java-bigquery/issues/917)) ([3d55b36](https://www.github.com/googleapis/java-bigquery/commit/3d55b365d3b737290b4e9b2c11e69ae67711a1d3)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.17.1 ([#906](https://www.github.com/googleapis/java-bigquery/issues/906)) ([07a8e28](https://www.github.com/googleapis/java-bigquery/commit/07a8e2812ed4d1b6bde2fba55462f8df5c7993ef)) +* update dependency com.google.oauth-client:google-oauth-client-java6 to v1.31.2 ([#912](https://www.github.com/googleapis/java-bigquery/issues/912)) ([fd584e3](https://www.github.com/googleapis/java-bigquery/commit/fd584e3f84b1d726850e098ad509cab1e6735191)) +* update dependency com.google.oauth-client:google-oauth-client-jetty to v1.31.2 ([#913](https://www.github.com/googleapis/java-bigquery/issues/913)) ([1ca3e90](https://www.github.com/googleapis/java-bigquery/commit/1ca3e9022354f2f5c96df004208979eabace90df)) + ### [1.124.2](https://www.github.com/googleapis/java-bigquery/compare/v1.124.1...v1.124.2) (2020-10-31) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d92584cb00e9..4b415731485b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.3-SNAPSHOT + 1.124.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 40cd588f6630..b65e08f837b8 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.3-SNAPSHOT + 1.124.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.3-SNAPSHOT + 1.124.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ae6fbbab982d..bda18821591a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.3-SNAPSHOT + 1.124.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.3-SNAPSHOT + 1.124.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 19e5e08474f2..d60e83d10780 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.3-SNAPSHOT + 1.124.3 diff --git a/versions.txt b/versions.txt index 2bfb6245c173..ef586d6d4d76 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.2:1.124.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.124.3:1.124.3 \ No newline at end of file From 38f493b847eea7ac50e277ed46941b74e878b7c0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 10 Nov 2020 07:37:35 -0800 Subject: [PATCH 0953/3441] chore(java): ignore return code 28 in README autosynth job (#918) Exit code 28 is returned if no changes are required and should not be considered a failure. Source-Author: Jeff Ching Source-Date: Mon Nov 9 14:51:28 2020 -0800 Source-Repo: googleapis/synthtool Source-Sha: 7db8a6c5ffb12a6e4c2f799c18f00f7f3d60e279 Source-Link: https://github.com/googleapis/synthtool/commit/7db8a6c5ffb12a6e4c2f799c18f00f7f3d60e279 --- .kokoro/readme.sh | 11 ++++++++++- synth.metadata | 4 ++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.kokoro/readme.sh b/.kokoro/readme.sh index d1cdf509db7a..dcce5b9bf51c 100755 --- a/.kokoro/readme.sh +++ b/.kokoro/readme.sh @@ -28,9 +28,18 @@ echo "https://${GITHUB_TOKEN}:@github.com" >> ~/.git-credentials git config --global credential.helper 'store --file ~/.git-credentials' python3.6 -m pip install git+https://github.com/googleapis/synthtool.git#egg=gcp-synthtool + +set +e python3.6 -m autosynth.synth \ --repository=googleapis/java-bigquery \ --synth-file-name=.github/readme/synth.py \ --metadata-path=.github/readme/synth.metadata \ --pr-title="chore: regenerate README" \ - --branch-suffix="readme" \ No newline at end of file + --branch-suffix="readme" + +# autosynth returns 28 to signal there are no changes +RETURN_CODE=$? +if [[ ${RETURN_CODE} -ne 0 && ${RETURN_CODE} -ne 28 ]] +then + exit ${RETURN_CODE} +fi diff --git a/synth.metadata b/synth.metadata index 99cc1d059c26..10597b64401a 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "45a343df0b3f7b18fd0b735e0f9e9750e162a8db" + "sha": "e041a0396c0e755b3b9dcb79b88ab62d2eeb4431" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "c7824ea48ff6d4d42dfae0849aec8a85acd90bd9" + "sha": "7db8a6c5ffb12a6e4c2f799c18f00f7f3d60e279" } } ], From 800996f45eb0ce436dee4dfc0b379902bf8ce46a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 10 Nov 2020 15:48:06 +0000 Subject: [PATCH 0954/3441] chore: release 1.124.4-SNAPSHOT (#921) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4b415731485b..e45db8687e92 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.3 + 1.124.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b65e08f837b8..bc275dcad78c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.3 + 1.124.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.3 + 1.124.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bda18821591a..e766ef1b3b4f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.3 + 1.124.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.3 + 1.124.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d60e83d10780..fbd8ef6d1dd3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.3 + 1.124.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index ef586d6d4d76..862c148fe252 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.3:1.124.3 \ No newline at end of file +google-cloud-bigquery:1.124.3:1.124.4-SNAPSHOT \ No newline at end of file From f0f8701741d5d5f0637bf4a305a4b35269ac726d Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 10 Nov 2020 07:48:10 -0800 Subject: [PATCH 0955/3441] chore: regenerate README (#922) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-10 15:39:48,443 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-10 15:39:49,470 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/ce41c3be-12ff-4f45-8725-c8881d2d308c/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 11d278802fc6..fab8025209e9 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "47c749f3e3ee6458d1cba7bde1a2c670bf35b9f6" + "sha": "38f493b847eea7ac50e277ed46941b74e878b7c0" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "2c8aecedd55b0480fb4e123b6e07fa5b12953862" + "sha": "7db8a6c5ffb12a6e4c2f799c18f00f7f3d60e279" } } ] diff --git a/README.md b/README.md index abe40a9aa4aa..a44f7725a410 100644 --- a/README.md +++ b/README.md @@ -47,11 +47,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.124.2' +compile 'com.google.cloud:google-cloud-bigquery:1.124.3' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.3" ``` ## Authentication From 4a32716186c726106d4fbdb9b6d39fe2b2c89dbc Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 11 Nov 2020 00:16:34 +0530 Subject: [PATCH 0956/3441] refactor(samples): add nested fields (#920) * refactor(samples): add nested fields * refactor(samples): update IT --- .../bigquery/ExportQueryResultsToS3.java | 2 +- .../java/com/example/bigquery/SimpleApp.java | 23 +++++++++++-------- .../com/example/bigquery/SimpleAppIT.java | 2 +- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java b/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java index 2bb6c79fe2db..09e622fe442d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java @@ -44,7 +44,7 @@ public static void main(String[] args) throws InterruptedException { String query = String.format( "EXPORT DATA WITH CONNECTION `%s` OPTIONS(uri='%s', format='%s') " - + "AS SELECT * FROM %s.%s.%s WHERE name LIKE 'W%%'", + + "AS SELECT * FROM %s.%s.%s WHERE name LIKE 'W%%'", connectionName, destinationUri, format, projectId, datasetName, externalTableName); exportQueryResultsToS3(query); } diff --git a/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java b/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java index 867e6397993f..dfabf71f30b1 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java @@ -39,12 +39,10 @@ public static void main(String... args) throws Exception { // [START bigquery_simple_app_query] QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder( - "SELECT " - + "CONCAT('https://stackoverflow.com/questions/', CAST(id as STRING)) as url, " - + "view_count " - + "FROM `bigquery-public-data.stackoverflow.posts_questions` " - + "WHERE tags like '%google-bigquery%' " - + "ORDER BY favorite_count DESC LIMIT 10") + "SELECT commit, author, repo_name " + + "FROM `bigquery-public-data.github_repos.commits` " + + "WHERE subject like '%bigquery%' " + + "ORDER BY subject DESC LIMIT 10") // Use standard SQL syntax for queries. // See: https://cloud.google.com/bigquery/sql-reference/ .setUseLegacySql(false) @@ -73,9 +71,16 @@ public static void main(String... args) throws Exception { // Print all pages of the results. for (FieldValueList row : result.iterateAll()) { - String url = row.get("url").getStringValue(); - long viewCount = row.get("view_count").getLongValue(); - System.out.printf("url: %s views: %d%n", url, viewCount); + // String type + String commit = row.get("commit").getStringValue(); + // Record type + FieldValueList author = row.get("author").getRecordValue(); + String name = author.get("name").getStringValue(); + String email = author.get("email").getStringValue(); + // String Repeated type + String repoName = row.get("repo_name").getRecordValue().get(0).getStringValue(); + System.out.printf( + "Repo name: %s Author name: %s email: %s commit: %s\n", repoName, name, email, commit); } // [END bigquery_simple_app_print] } diff --git a/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java b/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java index 65ccab328565..5ac54beebb1e 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java @@ -58,6 +58,6 @@ public void tearDown() { public void testQuickstart() throws Exception { SimpleApp.main(); String got = bout.toString(); - assertThat(got).contains("views:"); + assertThat(got).contains("Repo name:"); } } From 74b7d5d88cbc5a77818550426185583b17e61373 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 10 Nov 2020 19:47:39 +0100 Subject: [PATCH 0957/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.124.3 (#919) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index bf8bfc4f85b7..da89ad75b05c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.124.2 + 1.124.3 From ececddf32294f7884350d7e99f4eb3d493744ed2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 10 Nov 2020 19:48:01 +0100 Subject: [PATCH 0958/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.3 (#923) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e766ef1b3b4f..0027dc411f93 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.2 + 1.113.3 test From 8b68ab2a06dea3da95d7c8baa345f15feb0f2198 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 10 Nov 2020 10:58:04 -0800 Subject: [PATCH 0959/3441] chore: regenerate README (#925) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-10 18:48:43,923 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-10 18:48:44,897 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/422c2ede-aa94-45b6-bf38-f499bf5e5719/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index fab8025209e9..4e1bb9c4cb73 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "38f493b847eea7ac50e277ed46941b74e878b7c0" + "sha": "ececddf32294f7884350d7e99f4eb3d493744ed2" } }, { diff --git a/README.md b/README.md index a44f7725a410..e7f404ee84cd 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.124.2 + 1.124.3 ``` From 31e53dd0327287cff17ac6f7cbfbf2e7647a658d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 10 Nov 2020 18:58:08 +0000 Subject: [PATCH 0960/3441] chore: release 1.124.4 (#924) :robot: I have created a release \*beep\* \*boop\* --- ### [1.124.4](https://www.github.com/googleapis/java-bigquery/compare/v1.124.3...v1.124.4) (2020-11-10) ### Dependencies * update dependency com.google.cloud:google-cloud-storage to v1.113.3 ([#923](https://www.github.com/googleapis/java-bigquery/issues/923)) ([ececddf](https://www.github.com/googleapis/java-bigquery/commit/ececddf32294f7884350d7e99f4eb3d493744ed2)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 247d3e92bc6a..d929b75595f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.124.4](https://www.github.com/googleapis/java-bigquery/compare/v1.124.3...v1.124.4) (2020-11-10) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v1.113.3 ([#923](https://www.github.com/googleapis/java-bigquery/issues/923)) ([ececddf](https://www.github.com/googleapis/java-bigquery/commit/ececddf32294f7884350d7e99f4eb3d493744ed2)) + ### [1.124.3](https://www.github.com/googleapis/java-bigquery/compare/v1.124.2...v1.124.3) (2020-11-10) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index e45db8687e92..9bd016ed9526 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.4-SNAPSHOT + 1.124.4 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bc275dcad78c..0f9362594eb1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.4-SNAPSHOT + 1.124.4 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.4-SNAPSHOT + 1.124.4 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0027dc411f93..c2d44285e020 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.4-SNAPSHOT + 1.124.4 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.4-SNAPSHOT + 1.124.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index fbd8ef6d1dd3..241fc8d11aac 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.4-SNAPSHOT + 1.124.4 diff --git a/versions.txt b/versions.txt index 862c148fe252..f081a573d647 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.3:1.124.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.124.4:1.124.4 \ No newline at end of file From 3150b99f3691a2ca5ef7a33926ee6e78b6817880 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 10 Nov 2020 19:10:11 +0000 Subject: [PATCH 0961/3441] chore: release 1.124.5-SNAPSHOT (#926) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9bd016ed9526..46e7102ea515 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.4 + 1.124.5-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0f9362594eb1..63222bae00e6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.4 + 1.124.5-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.4 + 1.124.5-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c2d44285e020..fcd0e17646f6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.4 + 1.124.5-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.4 + 1.124.5-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 241fc8d11aac..c4d411c94524 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.4 + 1.124.5-SNAPSHOT diff --git a/versions.txt b/versions.txt index f081a573d647..8668e4769d1d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.4:1.124.4 \ No newline at end of file +google-cloud-bigquery:1.124.4:1.124.5-SNAPSHOT \ No newline at end of file From 33ea7e6d78eea92965ead1777c21e39db72b6df2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 10 Nov 2020 21:47:09 +0100 Subject: [PATCH 0962/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.124.4 (#927) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index da89ad75b05c..8805e7c82a21 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.124.3 + 1.124.4 From 321357ce41bc67be3009c27b4999b1d7cb4ecfee Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 11 Nov 2020 16:12:57 +0100 Subject: [PATCH 0963/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.15.0 (#929) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fcd0e17646f6..8aacbb1d4f2a 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20201030-1.30.10 - 0.14.1 + 0.15.0 From eab190f4f68e9d2a33b203d35d0d064c6c755f2f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 11 Nov 2020 16:20:08 +0100 Subject: [PATCH 0964/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.17.2 (#930) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | patch | `1.17.1` -> `1.17.2` | --- ### Release Notes
    googleapis/java-bigtable ### [`v1.17.2`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​1172-httpswwwgithubcomgoogleapisjava-bigtablecomparev1171v1172-2020-11-10) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v1.17.1...v1.17.2)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8805e7c82a21..cb367b36584e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.17.1 + 1.17.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c4d411c94524..b3e214f73b09 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.17.1 + 1.17.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 49ba93e9ae0d..fa0db97bacbb 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.17.1 + 1.17.2 test From 5c8733a50185ad5dc594a40074a5731962263be4 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 11 Nov 2020 07:24:07 -0800 Subject: [PATCH 0965/3441] chore: regenerate README (#928) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-10 20:54:40,139 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-10 20:54:41,184 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/b21e7a1a-3a6e-485d-8338-e4ba9756ee6a/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 4e1bb9c4cb73..e52a5c12a996 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "ececddf32294f7884350d7e99f4eb3d493744ed2" + "sha": "33ea7e6d78eea92965ead1777c21e39db72b6df2" } }, { diff --git a/README.md b/README.md index e7f404ee84cd..7e2e7ba092f3 100644 --- a/README.md +++ b/README.md @@ -40,18 +40,18 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.124.3 + 1.124.4 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.124.3' +compile 'com.google.cloud:google-cloud-bigquery:1.124.4' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.4" ``` ## Authentication From c05766c892260808e2845acce4896fa68a0aec0b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 11 Nov 2020 15:30:10 +0000 Subject: [PATCH 0966/3441] chore: release 1.124.5 (#931) :robot: I have created a release \*beep\* \*boop\* --- ### [1.124.5](https://www.github.com/googleapis/java-bigquery/compare/v1.124.4...v1.124.5) (2020-11-11) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.17.2 ([#930](https://www.github.com/googleapis/java-bigquery/issues/930)) ([eab190f](https://www.github.com/googleapis/java-bigquery/commit/eab190f4f68e9d2a33b203d35d0d064c6c755f2f)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.15.0 ([#929](https://www.github.com/googleapis/java-bigquery/issues/929)) ([321357c](https://www.github.com/googleapis/java-bigquery/commit/321357ce41bc67be3009c27b4999b1d7cb4ecfee)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d929b75595f4..741d35da4321 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.124.5](https://www.github.com/googleapis/java-bigquery/compare/v1.124.4...v1.124.5) (2020-11-11) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.17.2 ([#930](https://www.github.com/googleapis/java-bigquery/issues/930)) ([eab190f](https://www.github.com/googleapis/java-bigquery/commit/eab190f4f68e9d2a33b203d35d0d064c6c755f2f)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.15.0 ([#929](https://www.github.com/googleapis/java-bigquery/issues/929)) ([321357c](https://www.github.com/googleapis/java-bigquery/commit/321357ce41bc67be3009c27b4999b1d7cb4ecfee)) + ### [1.124.4](https://www.github.com/googleapis/java-bigquery/compare/v1.124.3...v1.124.4) (2020-11-10) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 46e7102ea515..fa997f839096 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.5-SNAPSHOT + 1.124.5 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 63222bae00e6..a28ccb3b878f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.5-SNAPSHOT + 1.124.5 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.5-SNAPSHOT + 1.124.5 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8aacbb1d4f2a..cb992dcfd11d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.5-SNAPSHOT + 1.124.5 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.5-SNAPSHOT + 1.124.5 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b3e214f73b09..3ee072436444 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.5-SNAPSHOT + 1.124.5 diff --git a/versions.txt b/versions.txt index 8668e4769d1d..f497e2fd1a04 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.4:1.124.5-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.124.5:1.124.5 \ No newline at end of file From e7c9d5a925b73541fb6551299e5976fbd2b27fbe Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 12 Nov 2020 09:14:07 +0000 Subject: [PATCH 0967/3441] chore: release 1.124.6-SNAPSHOT (#937) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index fa997f839096..803f4bf2db6e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.5 + 1.124.6-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a28ccb3b878f..ff7f99361cc6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.5 + 1.124.6-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.5 + 1.124.6-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index cb992dcfd11d..1a1a043cf059 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.5 + 1.124.6-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.5 + 1.124.6-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3ee072436444..69fc502f4eee 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.5 + 1.124.6-SNAPSHOT diff --git a/versions.txt b/versions.txt index f497e2fd1a04..3f6f904e7978 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.5:1.124.5 \ No newline at end of file +google-cloud-bigquery:1.124.5:1.124.6-SNAPSHOT \ No newline at end of file From da052ba2c8546c073e655051d3501eef8ab00403 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 12 Nov 2020 01:26:08 -0800 Subject: [PATCH 0968/3441] chore: regenerate README (#938) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-12 09:16:24,151 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-12 09:16:25,250 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/2859ef00-065c-4206-b5ce-b4ccee4dc238/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index e52a5c12a996..bd114f3fc352 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "33ea7e6d78eea92965ead1777c21e39db72b6df2" + "sha": "e7c9d5a925b73541fb6551299e5976fbd2b27fbe" } }, { diff --git a/README.md b/README.md index 7e2e7ba092f3..a6761ec92dd7 100644 --- a/README.md +++ b/README.md @@ -47,11 +47,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.124.4' +compile 'com.google.cloud:google-cloud-bigquery:1.124.5' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.4" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.5" ``` ## Authentication From fa5c8e874abaa086eebc72cd595ad28b359d75d5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 12 Nov 2020 18:28:07 +0100 Subject: [PATCH 0969/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v15.1.0 (#939) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `15.0.0` -> `15.1.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index fa0db97bacbb..f57ec7c784f0 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 15.0.0 + 15.1.0 pom import From 22e8bd763063b7ced26fd617cfeb152cd1175f12 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 12 Nov 2020 09:40:06 -0800 Subject: [PATCH 0970/3441] chore: regenerate README (#940) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-12 17:30:21,471 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-12 17:30:22,518 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/1fe88b45-0b26-4d62-b8dc-a40f3b95338a/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index bd114f3fc352..e036e98c30e2 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "e7c9d5a925b73541fb6551299e5976fbd2b27fbe" + "sha": "fa5c8e874abaa086eebc72cd595ad28b359d75d5" } }, { diff --git a/README.md b/README.md index a6761ec92dd7..65d443af5e7a 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 15.0.0 + 15.1.0 pom import From 85b1e0ddea5bb622798037637e01ea43c7c6ea22 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 13 Nov 2020 00:48:17 +0100 Subject: [PATCH 0971/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.2 (#934) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index cb367b36584e..7403455233f5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.1 + 1.0.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 69fc502f4eee..6ca5f1a3bd5b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.1 + 1.0.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f57ec7c784f0..569188da43f8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.1 + 1.0.2 test From 21bb3536dd7fce1d9bce915e6d2010033163b4d3 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 12 Nov 2020 15:48:37 -0800 Subject: [PATCH 0972/3441] build(java): use code-suggester v1 tag rather than full semver (#942) Source-Author: Jeff Ching Source-Date: Thu Nov 12 10:07:08 2020 -0800 Source-Repo: googleapis/synthtool Source-Sha: 7d652819519dfa24da9e14548232e4aaba71a11c Source-Link: https://github.com/googleapis/synthtool/commit/7d652819519dfa24da9e14548232e4aaba71a11c --- .github/workflows/formatting.yaml | 2 +- synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/formatting.yaml b/.github/workflows/formatting.yaml index d4d367cfce03..6844407b4d97 100644 --- a/.github/workflows/formatting.yaml +++ b/.github/workflows/formatting.yaml @@ -18,7 +18,7 @@ jobs: with: java-version: 11 - run: "mvn com.coveo:fmt-maven-plugin:format" - - uses: googleapis/code-suggester@v1.8.0 + - uses: googleapis/code-suggester@v1 with: command: review pull_number: ${{ github.event.pull_request.number }} diff --git a/synth.metadata b/synth.metadata index 10597b64401a..b45a72a4d3dc 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "e041a0396c0e755b3b9dcb79b88ab62d2eeb4431" + "sha": "22e8bd763063b7ced26fd617cfeb152cd1175f12" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7db8a6c5ffb12a6e4c2f799c18f00f7f3d60e279" + "sha": "7d652819519dfa24da9e14548232e4aaba71a11c" } } ], From 242082c06c1ef39fbf2229713e8816d7279e0d9d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 13 Nov 2020 17:47:41 +0100 Subject: [PATCH 0973/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.124.5 (#933) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7403455233f5..bfb7f6f2a596 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.124.4 + 1.124.5 From 7843755a4521d21fa1aee0e8169ba5081b0882b6 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 13 Nov 2020 09:00:07 -0800 Subject: [PATCH 0974/3441] chore: regenerate README (#943) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-13 16:50:00,250 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-13 16:50:01,340 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/2f040949-739d-41a5-995b-c1aff66fbd54/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index e036e98c30e2..7c97cd02dd2b 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "fa5c8e874abaa086eebc72cd595ad28b359d75d5" + "sha": "242082c06c1ef39fbf2229713e8816d7279e0d9d" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7db8a6c5ffb12a6e4c2f799c18f00f7f3d60e279" + "sha": "d5fc0bcf9ea9789c5b0e3154a9e3b29e5cea6116" } } ] diff --git a/README.md b/README.md index 65d443af5e7a..89fb65a5d1e0 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.124.4 + 1.124.5 ``` From bd7d85c489cd260feeabbdc9ecbb8dcdc8d9ae77 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 13 Nov 2020 14:40:07 -0500 Subject: [PATCH 0975/3441] fix: make sure to fall back to old query path when query job is incomplete (#941) * fix: make sure to fall back to old query path when query job is incomplete (takes more than 10s) * nit * address comments * add comment * nit update --- .../google/cloud/bigquery/BigQueryImpl.java | 16 +++--- .../cloud/bigquery/BigQueryImplTest.java | 57 +++++++++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 30 ++++++++++ 3 files changed, 96 insertions(+), 7 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index a19c65e63473..0ed1ca68cb2f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1268,13 +1268,8 @@ public com.google.api.services.bigquery.model.QueryResponse call() { long numRows; Schema schema; - if (results.getSchema() == null && results.getJobComplete()) { - JobId jobId = JobId.fromPb(results.getJobReference()); - Job job = getJob(jobId, options); - TableResult tableResult = job.getQueryResults(); - return tableResult; - } else { - schema = results.getSchema() == null ? null : Schema.fromPb(results.getSchema()); + if (results.getJobComplete() && results.getSchema() != null) { + schema = Schema.fromPb(results.getSchema()); if (results.getNumDmlAffectedRows() == null && results.getTotalRows() == null) { numRows = 0L; } else if (results.getNumDmlAffectedRows() != null) { @@ -1282,6 +1277,13 @@ public com.google.api.services.bigquery.model.QueryResponse call() { } else { numRows = results.getTotalRows().longValue(); } + } else { + // Query is long running (> 10s) and hasn't completed yet, or query completed but didn't + // return the schema, fallback. Some operations don't return the schema and can be optimized + // here, but this is left as future work. + JobId jobId = JobId.fromPb(results.getJobReference()); + Job job = getJob(jobId, options); + return job.getQueryResults(); } if (results.getPageToken() != null) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index a9b2293fa0b9..e1a48f620499 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -1955,6 +1955,63 @@ public void testFastQueryMultiplePages() throws InterruptedException { verify(bigqueryRpcMock).queryRpc(PROJECT, requestInfo.toPb()); } + @Test + public void testFastQuerySlowDdl() throws InterruptedException { + // mock new fast query path response when running a query that takes more than 10s + JobId queryJob = JobId.of(PROJECT, JOB); + com.google.api.services.bigquery.model.QueryResponse queryResponsePb = + new com.google.api.services.bigquery.model.QueryResponse() + .setJobComplete(false) // false when query does not complete in 10s + .setJobReference(queryJob.toPb()) // backend sends back a jobReference + .setRows(ImmutableList.of(TABLE_ROW)) + .setSchema(TABLE_SCHEMA.toPb()); + + // mock job response from backend + com.google.api.services.bigquery.model.Job responseJob = + new com.google.api.services.bigquery.model.Job() + .setConfiguration(QUERY_JOB_CONFIGURATION_FOR_QUERY.toPb()) + .setJobReference(queryJob.toPb()) + .setId(JOB) + .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")); + + // mock old query path response when falling back + GetQueryResultsResponse queryResultsResponsePb = + new GetQueryResultsResponse() + .setJobReference(responseJob.getJobReference()) + .setRows(ImmutableList.of(TABLE_ROW)) + .setJobComplete(true) + .setTotalRows(BigInteger.valueOf(1L)) + .setSchema(TABLE_SCHEMA.toPb()); + + QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_QUERY); + QueryRequest requestPb = requestInfo.toPb(); + + when(bigqueryRpcMock.queryRpc(PROJECT, requestPb)).thenReturn(queryResponsePb); + responseJob.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); + when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)).thenReturn(responseJob); + when(bigqueryRpcMock.getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + .thenReturn(queryResultsResponsePb); + when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + .thenReturn(new TableDataList().setRows(ImmutableList.of(TABLE_ROW)).setTotalRows(1L)); + + bigquery = options.getService(); + TableResult result = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY); + assertThat(result.getSchema()).isEqualTo(TABLE_SCHEMA); + assertThat(result.getTotalRows()).isEqualTo(1); + for (FieldValueList row : result.getValues()) { + assertThat(row.get(0).getBooleanValue()).isFalse(); + assertThat(row.get(1).getLongValue()).isEqualTo(1); + } + + verify(bigqueryRpcMock).queryRpc(PROJECT, requestInfo.toPb()); + verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getQueryResults( + PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); + } + @Test public void testQueryRequestCompletedOptions() throws InterruptedException { JobId queryJob = JobId.of(PROJECT, JOB); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 29f19f3f4025..ab25534a771b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1813,6 +1813,36 @@ public void testFastDDLQuery() throws InterruptedException { } } + @Test + public void testFastQuerySlowDDL() throws InterruptedException { + String tableName = + "test_table_fast_query_ddl_slow_" + UUID.randomUUID().toString().substring(0, 8); + // This query take more than 10s to run and should fall back on the old query path + String slowDdlQuery = + String.format( + "CREATE OR REPLACE TABLE %s AS SELECT unique_key, agency, complaint_type, descriptor, street_name, city, landmark FROM `bigquery-public-data.new_york.311_service_requests`", + tableName); + QueryJobConfiguration ddlConfig = + QueryJobConfiguration.newBuilder(slowDdlQuery) + .setDefaultDataset(DatasetId.of(DATASET)) + .build(); + TableResult result = bigquery.query(ddlConfig); + assertEquals(0, result.getTotalRows()); + assertNotNull(result.getSchema()); + // Verify correctness of table content + String sqlQuery = String.format("SELECT * FROM %s.%s", DATASET, tableName); + QueryJobConfiguration sqlConfig = QueryJobConfiguration.newBuilder(sqlQuery).build(); + TableResult resultAfterDDL = bigquery.query(sqlConfig); + for (FieldValueList row : resultAfterDDL.getValues()) { + FieldValue unique_key = row.get(0); + assertEquals(unique_key, row.get("unique_key")); + FieldValue agency = row.get(1); + assertEquals(agency, row.get("agency")); + FieldValue complaint_type = row.get(2); + assertEquals(complaint_type, row.get("complaint_type")); + } + } + @Test public void testFastQueryHTTPException() throws InterruptedException { String queryInvalid = From 0b34a5095b2bad4ac02b3d40937dd1a3ab3f2154 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 13 Nov 2020 20:40:32 +0100 Subject: [PATCH 0976/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.17.3 (#936) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index bfb7f6f2a596..38c97423f299 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.17.2 + 1.17.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6ca5f1a3bd5b..4d57ad9189a2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.17.2 + 1.17.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 569188da43f8..21bb457c116e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.17.2 + 1.17.3 test From baba95b8e86c51b0b1a44428cd9bcf803ef3cf66 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 13 Nov 2020 20:00:08 +0000 Subject: [PATCH 0977/3441] chore: release 1.124.6 (#944) :robot: I have created a release \*beep\* \*boop\* --- ### [1.124.6](https://www.github.com/googleapis/java-bigquery/compare/v1.124.5...v1.124.6) (2020-11-13) ### Bug Fixes * make sure to fall back to old query path when query job is incomplete ([#941](https://www.github.com/googleapis/java-bigquery/issues/941)) ([bd7d85c](https://www.github.com/googleapis/java-bigquery/commit/bd7d85c489cd260feeabbdc9ecbb8dcdc8d9ae77)) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.17.3 ([#936](https://www.github.com/googleapis/java-bigquery/issues/936)) ([0b34a50](https://www.github.com/googleapis/java-bigquery/commit/0b34a5095b2bad4ac02b3d40937dd1a3ab3f2154)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 741d35da4321..c66b45c608f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### [1.124.6](https://www.github.com/googleapis/java-bigquery/compare/v1.124.5...v1.124.6) (2020-11-13) + + +### Bug Fixes + +* make sure to fall back to old query path when query job is incomplete ([#941](https://www.github.com/googleapis/java-bigquery/issues/941)) ([bd7d85c](https://www.github.com/googleapis/java-bigquery/commit/bd7d85c489cd260feeabbdc9ecbb8dcdc8d9ae77)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.17.3 ([#936](https://www.github.com/googleapis/java-bigquery/issues/936)) ([0b34a50](https://www.github.com/googleapis/java-bigquery/commit/0b34a5095b2bad4ac02b3d40937dd1a3ab3f2154)) + ### [1.124.5](https://www.github.com/googleapis/java-bigquery/compare/v1.124.4...v1.124.5) (2020-11-11) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 803f4bf2db6e..0127ebea5f24 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.6-SNAPSHOT + 1.124.6 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ff7f99361cc6..58756792483f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.6-SNAPSHOT + 1.124.6 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.6-SNAPSHOT + 1.124.6 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1a1a043cf059..4b0d4ffa61bd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.6-SNAPSHOT + 1.124.6 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.6-SNAPSHOT + 1.124.6 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4d57ad9189a2..3990fc196a96 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.6-SNAPSHOT + 1.124.6 diff --git a/versions.txt b/versions.txt index 3f6f904e7978..42d1fb4b3e1c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.5:1.124.6-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.124.6:1.124.6 \ No newline at end of file From fdfaaff2328e791a624fa2de4097dff39cd4950b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 14 Nov 2020 02:15:07 +0100 Subject: [PATCH 0978/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.124.6 (#945) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 38c97423f299..51ad1eb05cef 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.124.5 + 1.124.6 From 079260613dce30c880ce77426bb87b1e461882aa Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 14 Nov 2020 01:26:03 +0000 Subject: [PATCH 0979/3441] chore: release 1.124.7-SNAPSHOT (#946) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 0127ebea5f24..4e7cea34f657 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.6 + 1.124.7-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 58756792483f..f3e768e1be8c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.6 + 1.124.7-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.6 + 1.124.7-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4b0d4ffa61bd..b24d62dc78f5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.6 + 1.124.7-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.6 + 1.124.7-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3990fc196a96..5bdb18443675 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.6 + 1.124.7-SNAPSHOT diff --git a/versions.txt b/versions.txt index 42d1fb4b3e1c..ace71f974f4d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.6:1.124.6 \ No newline at end of file +google-cloud-bigquery:1.124.6:1.124.7-SNAPSHOT \ No newline at end of file From f1ade4ece97bac62d9afe2f1f97ddf15dbef5b21 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 13 Nov 2020 17:28:03 -0800 Subject: [PATCH 0980/3441] chore: regenerate README (#947) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-14 01:17:14,982 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-14 01:17:16,030 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/15cc9edc-80af-4477-a3a9-f60c98b52e91/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 7c97cd02dd2b..64d4e479a15f 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "242082c06c1ef39fbf2229713e8816d7279e0d9d" + "sha": "fdfaaff2328e791a624fa2de4097dff39cd4950b" } }, { diff --git a/README.md b/README.md index 89fb65a5d1e0..1cc8ee57a22a 100644 --- a/README.md +++ b/README.md @@ -40,18 +40,18 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.124.5 + 1.124.6 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.124.5' +compile 'com.google.cloud:google-cloud-bigquery:1.124.6' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.5" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.6" ``` ## Authentication From 6cf0c77601518f5c03a34adb6feaa4120a97cb37 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 16 Nov 2020 17:02:04 +0100 Subject: [PATCH 0981/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.3 (#948) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 51ad1eb05cef..5d9107e67c30 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.2 + 1.0.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5bdb18443675..883d27d64c85 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.2 + 1.0.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 21bb457c116e..c59f395c9549 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.2 + 1.0.3 test From 6adc55f1f3277cc3bdac8d98069dc0dab8744d39 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 16 Nov 2020 20:11:41 +0100 Subject: [PATCH 0982/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.18.0 (#949) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5d9107e67c30..80628e589b80 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.17.3 + 1.18.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 883d27d64c85..f96fd7bf3dc9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.17.3 + 1.18.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c59f395c9549..eb9ebb5e7e73 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.17.3 + 1.18.0 test From 5fddfad89049c706b5c1b2bc092da498f8c5e5a6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 17 Nov 2020 00:14:03 +0100 Subject: [PATCH 0983/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.4 (#951) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | patch | `1.113.3` -> `1.113.4` | --- ### Release Notes
    googleapis/java-storage ### [`v1.113.4`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​11134-httpswwwgithubcomgoogleapisjava-storagecomparev11133v11134-2020-11-13) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v1.113.3...v1.113.4)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b24d62dc78f5..c13ebedf8c87 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.3 + 1.113.4 test From 8f67c7eebc5e7ecbaf345f6eef757545f4464357 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 16 Nov 2020 23:24:03 +0000 Subject: [PATCH 0984/3441] chore: release 1.124.7 (#950) :robot: I have created a release \*beep\* \*boop\* --- ### [1.124.7](https://www.github.com/googleapis/java-bigquery/compare/v1.124.6...v1.124.7) (2020-11-16) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.18.0 ([#949](https://www.github.com/googleapis/java-bigquery/issues/949)) ([6adc55f](https://www.github.com/googleapis/java-bigquery/commit/6adc55f1f3277cc3bdac8d98069dc0dab8744d39)) * update dependency com.google.cloud:google-cloud-storage to v1.113.4 ([#951](https://www.github.com/googleapis/java-bigquery/issues/951)) ([5fddfad](https://www.github.com/googleapis/java-bigquery/commit/5fddfad89049c706b5c1b2bc092da498f8c5e5a6)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c66b45c608f9..fa44964a55f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.124.7](https://www.github.com/googleapis/java-bigquery/compare/v1.124.6...v1.124.7) (2020-11-16) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.18.0 ([#949](https://www.github.com/googleapis/java-bigquery/issues/949)) ([6adc55f](https://www.github.com/googleapis/java-bigquery/commit/6adc55f1f3277cc3bdac8d98069dc0dab8744d39)) +* update dependency com.google.cloud:google-cloud-storage to v1.113.4 ([#951](https://www.github.com/googleapis/java-bigquery/issues/951)) ([5fddfad](https://www.github.com/googleapis/java-bigquery/commit/5fddfad89049c706b5c1b2bc092da498f8c5e5a6)) + ### [1.124.6](https://www.github.com/googleapis/java-bigquery/compare/v1.124.5...v1.124.6) (2020-11-13) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4e7cea34f657..9a78effa4eb3 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.7-SNAPSHOT + 1.124.7 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f3e768e1be8c..bbe6c99525ef 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.7-SNAPSHOT + 1.124.7 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.7-SNAPSHOT + 1.124.7 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c13ebedf8c87..8d52cedb8ee8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.7-SNAPSHOT + 1.124.7 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.7-SNAPSHOT + 1.124.7 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f96fd7bf3dc9..c2df9232e821 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.7-SNAPSHOT + 1.124.7 diff --git a/versions.txt b/versions.txt index ace71f974f4d..76c10c1f0015 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.6:1.124.7-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.124.7:1.124.7 \ No newline at end of file From 2f397311c1430e2cc975f67f562c4f79002aef85 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 17 Nov 2020 09:16:02 +0000 Subject: [PATCH 0985/3441] chore: release 1.124.8-SNAPSHOT (#953) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9a78effa4eb3..f46dc4e6bd58 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.7 + 1.124.8-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bbe6c99525ef..4c7ee131752a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.7 + 1.124.8-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.7 + 1.124.8-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8d52cedb8ee8..4e907fb799a5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.7 + 1.124.8-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.7 + 1.124.8-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c2df9232e821..10826db0e947 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.7 + 1.124.8-SNAPSHOT diff --git a/versions.txt b/versions.txt index 76c10c1f0015..f6f9b113a5f2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.7:1.124.7 \ No newline at end of file +google-cloud-bigquery:1.124.7:1.124.8-SNAPSHOT \ No newline at end of file From 7af85d6a82d56d66ba3bdae98af042ac9d53af6c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 17 Nov 2020 01:30:02 -0800 Subject: [PATCH 0986/3441] chore: regenerate README (#954) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-17 09:18:24,576 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-17 09:18:25,831 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/9bbe74fc-25fb-4c1e-b459-1992745195dd/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 64d4e479a15f..ffb5ebeb0bfb 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "fdfaaff2328e791a624fa2de4097dff39cd4950b" + "sha": "2f397311c1430e2cc975f67f562c4f79002aef85" } }, { diff --git a/README.md b/README.md index 1cc8ee57a22a..4f1e3e68bd5c 100644 --- a/README.md +++ b/README.md @@ -47,11 +47,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.124.6' +compile 'com.google.cloud:google-cloud-bigquery:1.124.7' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.6" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.7" ``` ## Authentication From 33aa0aa62aa8c5688446d3b7d3e6b12a8fc6a601 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 17 Nov 2020 18:07:43 +0100 Subject: [PATCH 0987/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.124.7 (#952) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 80628e589b80..165501077c63 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.124.6 + 1.124.7 From 449d27ab1a2cf0ab3ee5c10bb5843d648c7ea5f2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 17 Nov 2020 09:22:02 -0800 Subject: [PATCH 0988/3441] chore: regenerate README (#956) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-17 17:09:56,685 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-17 17:09:57,730 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/76b600be-2c96-49dc-9dbe-af056978686f/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index ffb5ebeb0bfb..1dc121a48755 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "2f397311c1430e2cc975f67f562c4f79002aef85" + "sha": "33aa0aa62aa8c5688446d3b7d3e6b12a8fc6a601" } }, { diff --git a/README.md b/README.md index 4f1e3e68bd5c..a300177aa5a5 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.124.6 + 1.124.7 ``` From 4ce40b94507920f28f1e1c78721f8425ce3ef2e0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 18 Nov 2020 19:55:22 +0100 Subject: [PATCH 0989/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v16 (#958) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index eb9ebb5e7e73..2edf7f78b1a3 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 15.1.0 + 16.0.0 pom import From 64bb068d90cabd59a5b608ff1016e1722e16a8d0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 18 Nov 2020 11:32:31 -0800 Subject: [PATCH 0990/3441] build(java): use actions/github-script v3 tag rather than full semver (#957) So that renovate-bot stops proposing PRs like [this](https://github.com/googleapis/java-bigquerydatatransfer/pull/515/files)! Source-Author: Stephanie Wang Source-Date: Tue Nov 17 13:02:02 2020 -0500 Source-Repo: googleapis/synthtool Source-Sha: 7fcc405a579d5d53a726ff3da1b7c8c08f0f2d58 Source-Link: https://github.com/googleapis/synthtool/commit/7fcc405a579d5d53a726ff3da1b7c8c08f0f2d58 --- .github/workflows/approve-readme.yaml | 2 +- .github/workflows/auto-release.yaml | 2 +- synth.metadata | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/approve-readme.yaml b/.github/workflows/approve-readme.yaml index e2d841d6c5a0..7513acaebcc2 100644 --- a/.github/workflows/approve-readme.yaml +++ b/.github/workflows/approve-readme.yaml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest if: github.repository_owner == 'googleapis' && github.head_ref == 'autosynth-readme' steps: - - uses: actions/github-script@v3.0.0 + - uses: actions/github-script@v3 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} script: | diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index bc1554aecba2..2b6cdbc976c4 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest if: contains(github.head_ref, 'release-v') steps: - - uses: actions/github-script@v3.0.0 + - uses: actions/github-script@v3 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} debug: true diff --git a/synth.metadata b/synth.metadata index b45a72a4d3dc..04a15b2392ed 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "22e8bd763063b7ced26fd617cfeb152cd1175f12" + "sha": "449d27ab1a2cf0ab3ee5c10bb5843d648c7ea5f2" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7d652819519dfa24da9e14548232e4aaba71a11c" + "sha": "7fcc405a579d5d53a726ff3da1b7c8c08f0f2d58" } } ], From d7c2c3e09d596d21f1b4d4aad6f0062c6412c415 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 18 Nov 2020 11:42:10 -0800 Subject: [PATCH 0991/3441] chore: regenerate README (#959) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-18 18:57:39,500 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-18 18:57:40,506 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/fb3e916d-a88c-46ef-a68c-ecb85a8201fc/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 1dc121a48755..6c392c283917 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "33aa0aa62aa8c5688446d3b7d3e6b12a8fc6a601" + "sha": "4ce40b94507920f28f1e1c78721f8425ce3ef2e0" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "d5fc0bcf9ea9789c5b0e3154a9e3b29e5cea6116" + "sha": "7fcc405a579d5d53a726ff3da1b7c8c08f0f2d58" } } ] diff --git a/README.md b/README.md index a300177aa5a5..1f8c8c9fe309 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 15.1.0 + 16.0.0 pom import From 211e67373865483d166f8b3ce0f07ba50de5fc5e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 19 Nov 2020 17:58:09 +0100 Subject: [PATCH 0992/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v16.1.0 (#960) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `16.0.0` -> `16.1.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 2edf7f78b1a3..8e2dbc772f32 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 16.0.0 + 16.1.0 pom import From f59241bf614d1ab659474ecd7b440253990d2809 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 19 Nov 2020 09:16:17 -0800 Subject: [PATCH 0993/3441] chore: regenerate README (#961) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-19 17:00:38,351 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-19 17:00:39,397 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/67c91266-7187-4a39-922c-c8210cf061eb/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 6c392c283917..b19ffd1e84ae 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "4ce40b94507920f28f1e1c78721f8425ce3ef2e0" + "sha": "211e67373865483d166f8b3ce0f07ba50de5fc5e" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7fcc405a579d5d53a726ff3da1b7c8c08f0f2d58" + "sha": "39b7149da4026765385403632db3c6f63db96b2c" } } ] diff --git a/README.md b/README.md index 1f8c8c9fe309..ae82760e5c1e 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 16.0.0 + 16.1.0 pom import From 718ec2ae25150dceef8fb9bc3e2fcf6238fc2220 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 19 Nov 2020 15:58:07 -0500 Subject: [PATCH 0994/3441] feat: add BIGNUMERIC support (#703) Expose BIGNUMERIC type in the client cc: @mingyuzhong --- .../cloud/bigquery/LegacySQLTypeName.java | 5 + .../cloud/bigquery/QueryParameterValue.java | 12 +- .../cloud/bigquery/StandardSQLTypeName.java | 4 + .../cloud/bigquery/FieldValueListTest.java | 25 +++- .../bigquery/QueryJobConfigurationTest.java | 5 +- .../bigquery/QueryParameterValueTest.java | 43 +++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 113 +++++++++++++++++- 7 files changed, 193 insertions(+), 14 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java index e5a46f5e72b7..56d66cb1a154 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java @@ -61,6 +61,11 @@ public LegacySQLTypeName apply(String constant) { */ public static final LegacySQLTypeName NUMERIC = type.createAndRegister("NUMERIC").setStandardType(StandardSQLTypeName.NUMERIC); + /** + * A decimal value with 76+ digits of precision (the 77th digit is partial) and 38 digits of scale + */ + public static final LegacySQLTypeName BIGNUMERIC = + type.createAndRegister("BIGNUMERIC").setStandardType(StandardSQLTypeName.BIGNUMERIC); /** A Boolean value (true or false). */ public static final LegacySQLTypeName BOOLEAN = type.createAndRegister("BOOLEAN").setStandardType(StandardSQLTypeName.BOOL); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index e9c21674f615..76e521d561bd 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -60,6 +60,7 @@ *
  • Double: StandardSQLTypeName.FLOAT64 *
  • Float: StandardSQLTypeName.FLOAT64 *
  • BigDecimal: StandardSQLTypeName.NUMERIC + *
  • BigNumeric: StandardSQLTypeName.BIGNUMERIC * * *

    No other types are supported through that entry point. The other types can be created by @@ -197,7 +198,10 @@ public Map getStructTypes() { @Nullable abstract Map getStructTypesInner(); - /** Creates a {@code QueryParameterValue} object with the given value and type. */ + /** + * Creates a {@code QueryParameterValue} object with the given value and type. Note: this does not + * support BigNumeric + */ public static QueryParameterValue of(T value, Class type) { return of(value, classToType(type)); } @@ -240,6 +244,11 @@ public static QueryParameterValue numeric(BigDecimal value) { return of(value, StandardSQLTypeName.NUMERIC); } + /** Creates a {@code QueryParameterValue} object with a type of BIGNUMERIC. */ + public static QueryParameterValue bigNumeric(BigDecimal value) { + return of(value, StandardSQLTypeName.BIGNUMERIC); + } + /** Creates a {@code QueryParameterValue} object with a type of STRING. */ public static QueryParameterValue string(String value) { return of(value, StandardSQLTypeName.STRING); @@ -363,6 +372,7 @@ private static String valueToStringOrNull(T value, StandardSQLTypeName type) } break; case NUMERIC: + case BIGNUMERIC: if (value instanceof BigDecimal) { return value.toString(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java index aa156df760da..d618b76568ec 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java @@ -32,6 +32,10 @@ public enum StandardSQLTypeName { FLOAT64, /** A decimal value with 38 digits of precision and 9 digits of scale. */ NUMERIC, + /** + * A decimal value with 76+ digits of precision (the 77th digit is partial) and 38 digits of scale + */ + BIGNUMERIC, /** Variable-length character (Unicode) data. */ STRING, /** Variable-length binary data. */ diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java index 779fd85a1091..7d10a9750421 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java @@ -49,7 +49,8 @@ public class FieldValueListTest { LegacySQLTypeName.RECORD, Field.of("first", LegacySQLTypeName.FLOAT), Field.of("second", LegacySQLTypeName.TIMESTAMP)), - Field.of("tenth", LegacySQLTypeName.NUMERIC)); + Field.of("tenth", LegacySQLTypeName.NUMERIC), + Field.of("eleventh", LegacySQLTypeName.BIGNUMERIC)); private final Map integerPb = ImmutableMap.of("v", "1"); private final Map floatPb = ImmutableMap.of("v", "1.5"); @@ -62,6 +63,9 @@ public class FieldValueListTest { private final Map recordPb = ImmutableMap.of("f", ImmutableList.of(floatPb, timestampPb)); private final Map numericPb = ImmutableMap.of("v", "123456789.123456789"); + private final Map bigNumericPb = + ImmutableMap.of( + "v", "99999999999999999999999999999999999999.99999999999999999999999999999999999999"); private final FieldValue booleanFv = FieldValue.of(Attribute.PRIMITIVE, "false"); private final FieldValue integerFv = FieldValue.of(Attribute.PRIMITIVE, "1"); @@ -78,6 +82,10 @@ public class FieldValueListTest { FieldValueList.of( ImmutableList.of(floatFv, timestampFv), schema.get("ninth").getSubFields())); private final FieldValue numericFv = FieldValue.of(Attribute.PRIMITIVE, "123456789.123456789"); + private final FieldValue bigNumericFv = + FieldValue.of( + Attribute.PRIMITIVE, + "99999999999999999999999999999999999999.99999999999999999999999999999999999999"); private final List fieldValuesPb = ImmutableList.of( @@ -90,7 +98,8 @@ public class FieldValueListTest { nullPb, repeatedPb, recordPb, - numericPb); + numericPb, + bigNumericPb); private final FieldValueList fieldValues = FieldValueList.of( @@ -104,7 +113,8 @@ public class FieldValueListTest { nullFv, repeatedFv, recordFv, - numericFv), + numericFv, + bigNumericFv), schema); @Test @@ -116,7 +126,7 @@ public void testFromPb() { @Test public void testGetByIndex() { - assertEquals(10, fieldValues.size()); + assertEquals(11, fieldValues.size()); assertEquals(booleanFv, fieldValues.get(0)); assertEquals(integerFv, fieldValues.get(1)); assertEquals(floatFv, fieldValues.get(2)); @@ -133,11 +143,12 @@ public void testGetByIndex() { assertEquals(floatFv, fieldValues.get(8).getRecordValue().get(0)); assertEquals(timestampFv, fieldValues.get(8).getRecordValue().get(1)); assertEquals(numericFv, fieldValues.get(9)); + assertEquals(bigNumericFv, fieldValues.get(10)); } @Test public void testGetByName() { - assertEquals(10, fieldValues.size()); + assertEquals(11, fieldValues.size()); assertEquals(booleanFv, fieldValues.get("first")); assertEquals(integerFv, fieldValues.get("second")); assertEquals(floatFv, fieldValues.get("third")); @@ -154,6 +165,7 @@ public void testGetByName() { assertEquals(floatFv, fieldValues.get("ninth").getRecordValue().get("first")); assertEquals(timestampFv, fieldValues.get("ninth").getRecordValue().get("second")); assertEquals(numericFv, fieldValues.get("tenth")); + assertEquals(bigNumericFv, fieldValues.get("eleventh")); } @Test @@ -170,7 +182,8 @@ public void testNullSchema() { nullFv, repeatedFv, recordFv, - numericFv)); + numericFv, + bigNumericFv)); assertEquals(fieldValues, fieldValuesNoSchema); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index 0e892b6e1f4a..3cd4182049a1 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -27,6 +27,7 @@ import com.google.cloud.bigquery.TimePartitioning.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import java.math.BigDecimal; import java.util.List; import java.util.Map; import org.junit.Test; @@ -101,8 +102,10 @@ public class QueryJobConfigurationTest { QueryParameterValue.string("stringValue"); private static final QueryParameterValue TIMESTAMP_PARAMETER = QueryParameterValue.timestamp("2014-01-01 07:00:00.000000+00:00"); + private static final QueryParameterValue BIGNUMERIC_PARAMETER = + QueryParameterValue.bigNumeric(new BigDecimal(1 / 3)); private static final List POSITIONAL_PARAMETER = - ImmutableList.of(STRING_PARAMETER, TIMESTAMP_PARAMETER); + ImmutableList.of(STRING_PARAMETER, TIMESTAMP_PARAMETER, BIGNUMERIC_PARAMETER); private static final Map NAME_PARAMETER = ImmutableMap.of("string", STRING_PARAMETER, "timestamp", TIMESTAMP_PARAMETER); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index 09421565c2ff..b643ae580878 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -141,6 +141,49 @@ public void testNumeric() { assertThat(value.getArrayValues()).isNull(); } + @Test + public void testBigNumeric() { + QueryParameterValue value = + QueryParameterValue.bigNumeric(new BigDecimal("0.33333333333333333333333333333333333333")); + QueryParameterValue value1 = + QueryParameterValue.bigNumeric(new BigDecimal("0.50000000000000000000000000000000000000")); + QueryParameterValue value2 = + QueryParameterValue.bigNumeric(new BigDecimal("0.00000000500000000000000000000000000000")); + QueryParameterValue value3 = + QueryParameterValue.bigNumeric(new BigDecimal("-0.00000000500000000000000000000000000000")); + QueryParameterValue value4 = + QueryParameterValue.bigNumeric( + new BigDecimal("0.33333333333333333333333333333333333333888888888888888")); + QueryParameterValue value5 = QueryParameterValue.bigNumeric(new BigDecimal("1e-38")); + QueryParameterValue value6 = QueryParameterValue.bigNumeric(new BigDecimal("-1e38")); + QueryParameterValue value7 = + QueryParameterValue.bigNumeric( + new BigDecimal( + "578960446186580977117854925043439539266.34992332820282019728792003956564819967")); + QueryParameterValue value8 = + QueryParameterValue.bigNumeric( + new BigDecimal( + "-578960446186580977117854925043439539266.34992332820282019728792003956564819968")); + + assertThat(value.getValue()).isEqualTo("0.33333333333333333333333333333333333333"); + assertThat(value1.getValue()).isEqualTo("0.50000000000000000000000000000000000000"); + assertThat(value2.getValue()).isEqualTo("5.00000000000000000000000000000E-9"); + assertThat(value3.getValue()).isEqualTo("-5.00000000000000000000000000000E-9"); + assertThat(value4.getValue()) + .isEqualTo("0.33333333333333333333333333333333333333888888888888888"); + assertThat(value5.getValue()).isEqualTo("1E-38"); + assertThat(value6.getValue()).isEqualTo("-1E+38"); + assertThat(value7.getValue()) + .isEqualTo( + "578960446186580977117854925043439539266.34992332820282019728792003956564819967"); + assertThat(value8.getValue()) + .isEqualTo( + "-578960446186580977117854925043439539266.34992332820282019728792003956564819968"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.BIGNUMERIC); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } + @Test public void testString() { QueryParameterValue value = QueryParameterValue.string("foo"); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index ab25534a771b..3a3af4898eb0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -212,6 +212,31 @@ public class ITBigQueryTest { .setMode(Field.Mode.NULLABLE) .setDescription("NumericDescription") .build(); + private static final Field BIGNUMERIC_FIELD_SCHEMA = + Field.newBuilder("BigNumericField", LegacySQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("BigNumericDescription") + .build(); + private static final Field BIGNUMERIC_FIELD_SCHEMA1 = + Field.newBuilder("BigNumericField1", LegacySQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("BigNumeric1Description") + .build(); + private static final Field BIGNUMERIC_FIELD_SCHEMA2 = + Field.newBuilder("BigNumericField2", LegacySQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("BigNumeric2Description") + .build(); + private static final Field BIGNUMERIC_FIELD_SCHEMA3 = + Field.newBuilder("BigNumericField3", LegacySQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("BigNumeric3Description") + .build(); + private static final Field BIGNUMERIC_FIELD_SCHEMA4 = + Field.newBuilder("BigNumericField4", LegacySQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("BigNumeric4Description") + .build(); private static final Field STRING_FIELD_SCHEMA_WITH_POLICY = Field.newBuilder("StringFieldWithPolicy", LegacySQLTypeName.STRING) .setMode(Field.Mode.NULLABLE) @@ -229,7 +254,12 @@ public class ITBigQueryTest { INTEGER_FIELD_SCHEMA, FLOAT_FIELD_SCHEMA, GEOGRAPHY_FIELD_SCHEMA, - NUMERIC_FIELD_SCHEMA); + NUMERIC_FIELD_SCHEMA, + BIGNUMERIC_FIELD_SCHEMA, + BIGNUMERIC_FIELD_SCHEMA1, + BIGNUMERIC_FIELD_SCHEMA2, + BIGNUMERIC_FIELD_SCHEMA3, + BIGNUMERIC_FIELD_SCHEMA4); private static final Field DDL_TIMESTAMP_FIELD_SCHEMA = Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) @@ -261,6 +291,7 @@ public class ITBigQueryTest { Field.newBuilder("deaths", LegacySQLTypeName.INTEGER) .setMode(Field.Mode.NULLABLE) .build()); + private static final Schema SIMPLE_SCHEMA = Schema.of(STRING_FIELD_SCHEMA); private static final Schema POLICY_SCHEMA = Schema.of(STRING_FIELD_SCHEMA, STRING_FIELD_SCHEMA_WITH_POLICY, INTEGER_FIELD_SCHEMA); @@ -275,6 +306,32 @@ public class ITBigQueryTest { Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) .setMode(Field.Mode.NULLABLE) .build()); + private static final Schema QUERY_RESULT_SCHEMA_BIGNUMERIC = + Schema.of( + Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("StringField", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BigNumericField", LegacySQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BigNumericField1", LegacySQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BigNumericField2", LegacySQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BigNumericField3", LegacySQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BigNumericField4", LegacySQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .build()); private static final Schema VIEW_SCHEMA = Schema.of( Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) @@ -323,7 +380,12 @@ public class ITBigQueryTest { + " \"IntegerField\": \"3\"," + " \"FloatField\": \"1.2\"," + " \"GeographyField\": \"POINT(-122.35022 47.649154)\"," - + " \"NumericField\": \"123456.789012345\"" + + " \"NumericField\": \"123456.789012345\"," + + " \"BigNumericField\": \"0.33333333333333333333333333333333333333\"," + + " \"BigNumericField1\": \"1e-38\"," + + " \"BigNumericField2\": \"-1e38\"," + + " \"BigNumericField3\": \"578960446186580977117854925043439539266.34992332820282019728792003956564819967\"," + + " \"BigNumericField4\": \"-578960446186580977117854925043439539266.34992332820282019728792003956564819968\"" + "}\n" + "{" + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," @@ -345,7 +407,12 @@ public class ITBigQueryTest { + " \"IntegerField\": \"3\"," + " \"FloatField\": \"1.2\"," + " \"GeographyField\": \"POINT(-122.35022 47.649154)\"," - + " \"NumericField\": \"123456.789012345\"" + + " \"NumericField\": \"123456.789012345\"," + + " \"BigNumericField\": \"0.33333333333333333333333333333333333333\"," + + " \"BigNumericField1\": \"1e-38\"," + + " \"BigNumericField2\": \"-1e38\"," + + " \"BigNumericField3\": \"578960446186580977117854925043439539266.34992332820282019728792003956564819967\"," + + " \"BigNumericField4\": \"-578960446186580977117854925043439539266.34992332820282019728792003956564819968\"" + "}"; private static final String JSON_CONTENT_SIMPLE = "{" @@ -1932,14 +1999,15 @@ public void testScriptStatistics() throws InterruptedException { @Test public void testPositionalQueryParameters() throws InterruptedException { String query = - "SELECT TimestampField, StringField, BooleanField FROM " + "SELECT TimestampField, StringField, BooleanField, BigNumericField, BigNumericField1, BigNumericField2, BigNumericField3, BigNumericField4 FROM " + TABLE_ID.getTable() + " WHERE StringField = ?" + " AND TimestampField > ?" + " AND IntegerField IN UNNEST(?)" + " AND IntegerField < ?" + " AND FloatField > ?" - + " AND NumericField < ?"; + + " AND NumericField < ?" + + " AND BigNumericField = ?"; QueryParameterValue stringParameter = QueryParameterValue.string("stringValue"); QueryParameterValue timestampParameter = QueryParameterValue.timestamp("2014-01-01 07:00:00.000000+00:00"); @@ -1949,6 +2017,20 @@ public void testPositionalQueryParameters() throws InterruptedException { QueryParameterValue float64Parameter = QueryParameterValue.float64(0.5); QueryParameterValue numericParameter = QueryParameterValue.numeric(new BigDecimal("234567890.123456")); + QueryParameterValue bigNumericParameter = + QueryParameterValue.bigNumeric(new BigDecimal("0.33333333333333333333333333333333333333")); + QueryParameterValue bigNumericParameter1 = + QueryParameterValue.bigNumeric(new BigDecimal("1e-38")); + QueryParameterValue bigNumericParameter2 = + QueryParameterValue.bigNumeric(new BigDecimal("-1e38")); + QueryParameterValue bigNumericParameter3 = + QueryParameterValue.bigNumeric( + new BigDecimal( + "578960446186580977117854925043439539266.34992332820282019728792003956564819967")); + QueryParameterValue bigNumericParameter4 = + QueryParameterValue.bigNumeric( + new BigDecimal( + "-578960446186580977117854925043439539266.34992332820282019728792003956564819968")); QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query) .setDefaultDataset(DatasetId.of(DATASET)) @@ -1959,10 +2041,29 @@ public void testPositionalQueryParameters() throws InterruptedException { .addPositionalParameter(int64Parameter) .addPositionalParameter(float64Parameter) .addPositionalParameter(numericParameter) + .addPositionalParameter(bigNumericParameter) + .addPositionalParameter(bigNumericParameter1) + .addPositionalParameter(bigNumericParameter2) + .addPositionalParameter(bigNumericParameter3) + .addPositionalParameter(bigNumericParameter4) .build(); TableResult result = bigquery.query(config); - assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); + assertEquals(QUERY_RESULT_SCHEMA_BIGNUMERIC, result.getSchema()); assertEquals(2, Iterables.size(result.getValues())); + for (FieldValueList values : result.iterateAll()) { + assertEquals("1.40845209522E9", values.get(0).getValue()); + assertEquals("stringValue", values.get(1).getValue()); + assertEquals(false, values.get(2).getBooleanValue()); + assertEquals("0.33333333333333333333333333333333333333", values.get(3).getValue()); + assertEquals("0.00000000000000000000000000000000000001", values.get(4).getValue()); + assertEquals("-100000000000000000000000000000000000000", values.get(5).getValue()); + assertEquals( + "578960446186580977117854925043439539266.34992332820282019728792003956564819967", + values.get(6).getValue()); + assertEquals( + "-578960446186580977117854925043439539266.34992332820282019728792003956564819968", + values.get(7).getValue()); + } } @Test From cc1db9077aa0422c7d224a0e4fa15186b2ea5e08 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 19 Nov 2020 21:10:16 +0000 Subject: [PATCH 0995/3441] chore: release 1.125.0 (#962) :robot: I have created a release \*beep\* \*boop\* --- ## [1.125.0](https://www.github.com/googleapis/java-bigquery/compare/v1.124.7...v1.125.0) (2020-11-19) ### Features * add BIGNUMERIC support ([#703](https://www.github.com/googleapis/java-bigquery/issues/703)) ([718ec2a](https://www.github.com/googleapis/java-bigquery/commit/718ec2ae25150dceef8fb9bc3e2fcf6238fc2220)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fa44964a55f0..4db52034ee47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.125.0](https://www.github.com/googleapis/java-bigquery/compare/v1.124.7...v1.125.0) (2020-11-19) + + +### Features + +* add BIGNUMERIC support ([#703](https://www.github.com/googleapis/java-bigquery/issues/703)) ([718ec2a](https://www.github.com/googleapis/java-bigquery/commit/718ec2ae25150dceef8fb9bc3e2fcf6238fc2220)) + ### [1.124.7](https://www.github.com/googleapis/java-bigquery/compare/v1.124.6...v1.124.7) (2020-11-16) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f46dc4e6bd58..c72ef5401f4e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.124.8-SNAPSHOT + 1.125.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4c7ee131752a..d23891740240 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.124.8-SNAPSHOT + 1.125.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.124.8-SNAPSHOT + 1.125.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4e907fb799a5..9a0256a9f2ae 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.124.8-SNAPSHOT + 1.125.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.124.8-SNAPSHOT + 1.125.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 10826db0e947..b1c50926107c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.124.8-SNAPSHOT + 1.125.0 diff --git a/versions.txt b/versions.txt index f6f9b113a5f2..87095dc8bc3e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.124.7:1.124.8-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.125.0:1.125.0 \ No newline at end of file From b2d68c0aa0219a8c60bbd532c3fea5d0aeced716 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 19 Nov 2020 15:00:06 -0800 Subject: [PATCH 0996/3441] chore(java): retry staging portion of the release with backoff (#963) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/47723bad-582c-43dd-9712-b89133a40f21/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/68742c6016bf0d16948a572633d17955a8737414 --- .kokoro/common.sh | 1 - .kokoro/release/stage.sh | 17 ++++++++++------- synth.metadata | 4 ++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.kokoro/common.sh b/.kokoro/common.sh index a8d0ea04d37d..ace89f45a9de 100644 --- a/.kokoro/common.sh +++ b/.kokoro/common.sh @@ -25,7 +25,6 @@ function retry_with_backoff { # allow a failures to continue set +e - echo "${command}" ${command} exit_code=$? diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh index 3c482cbc55f1..16126d2eb53f 100755 --- a/.kokoro/release/stage.sh +++ b/.kokoro/release/stage.sh @@ -20,19 +20,22 @@ python3 -m pip install gcp-releasetool python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script source $(dirname "$0")/common.sh +source $(dirname "$0")/../common.sh MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml pushd $(dirname "$0")/../../ setup_environment_secrets create_settings_xml_file "settings.xml" -mvn clean install deploy -B \ - --settings ${MAVEN_SETTINGS_FILE} \ - -DskipTests=true \ - -DperformRelease=true \ - -Dgpg.executable=gpg \ - -Dgpg.passphrase=${GPG_PASSPHRASE} \ - -Dgpg.homedir=${GPG_HOMEDIR} +# attempt to stage 3 times with exponential backoff (starting with 10 seconds) +retry_with_backoff 3 10 \ + mvn clean install deploy -B \ + --settings ${MAVEN_SETTINGS_FILE} \ + -DskipTests=true \ + -DperformRelease=true \ + -Dgpg.executable=gpg \ + -Dgpg.passphrase=${GPG_PASSPHRASE} \ + -Dgpg.homedir=${GPG_HOMEDIR} if [[ -n "${AUTORELEASE_PR}" ]] then diff --git a/synth.metadata b/synth.metadata index 04a15b2392ed..a7e17021d2eb 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "449d27ab1a2cf0ab3ee5c10bb5843d648c7ea5f2" + "sha": "cc1db9077aa0422c7d224a0e4fa15186b2ea5e08" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7fcc405a579d5d53a726ff3da1b7c8c08f0f2d58" + "sha": "68742c6016bf0d16948a572633d17955a8737414" } } ], From ae540905348fbd7653707c865e2c4320f2bff5bf Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 19 Nov 2020 15:16:05 -0800 Subject: [PATCH 0997/3441] chore: regenerate README (#966) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-19 23:04:12,502 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-19 23:04:13,469 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/c3a69205-ad04-4828-9934-a21390c4bbc8/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index b19ffd1e84ae..48577b36ab14 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "211e67373865483d166f8b3ce0f07ba50de5fc5e" + "sha": "b2d68c0aa0219a8c60bbd532c3fea5d0aeced716" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "39b7149da4026765385403632db3c6f63db96b2c" + "sha": "68742c6016bf0d16948a572633d17955a8737414" } } ] diff --git a/README.md b/README.md index ae82760e5c1e..13e0e729e1a4 100644 --- a/README.md +++ b/README.md @@ -47,11 +47,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.124.7' +compile 'com.google.cloud:google-cloud-bigquery:1.125.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.124.7" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.125.0" ``` ## Authentication From dd4876316f325b1319b5f4e1df478eead08064dd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 19 Nov 2020 23:18:11 +0000 Subject: [PATCH 0998/3441] chore: release 1.125.1-SNAPSHOT (#965) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c72ef5401f4e..edebf7205e54 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.125.0 + 1.125.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d23891740240..c8d70ec7c1cc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.125.0 + 1.125.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.125.0 + 1.125.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9a0256a9f2ae..bcba98036819 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.125.0 + 1.125.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.125.0 + 1.125.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b1c50926107c..945cb36f3b2b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.125.0 + 1.125.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 87095dc8bc3e..bbaa41b161d5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.125.0:1.125.0 \ No newline at end of file +google-cloud-bigquery:1.125.0:1.125.1-SNAPSHOT \ No newline at end of file From db1968bc3310c3a4a2da24f65a1299f1c6a9acec Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 20 Nov 2020 16:57:42 +0100 Subject: [PATCH 0999/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.125.0 (#964) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 165501077c63..fd3f35aaa633 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.124.7 + 1.125.0 From aa6c8e3d3c27589e4707cb80e9ba8e40d25ebd3b Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 20 Nov 2020 08:12:09 -0800 Subject: [PATCH 1000/3441] chore: regenerate README (#967) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-20 16:00:16,074 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-20 16:00:17,110 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/3125844a-6712-4ffc-a521-02d46c3b6cd8/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 48577b36ab14..e647e91aaca8 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b2d68c0aa0219a8c60bbd532c3fea5d0aeced716" + "sha": "db1968bc3310c3a4a2da24f65a1299f1c6a9acec" } }, { diff --git a/README.md b/README.md index 13e0e729e1a4..c442de2bf6fa 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.124.7 + 1.125.0 ``` From 08249bc556f5d9d0528f5440b4a615aebf5c8ec8 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 24 Nov 2020 13:12:12 -0800 Subject: [PATCH 1001/3441] build(java): enable blunderbuss for samples (#968) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/1f6fa2e1-d179-415f-ad3f-5e09e4a26806/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/943bb78606d035001123030067dffcc34f4645f2 --- .github/blunderbuss.yml | 7 +++++++ synth.metadata | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 .github/blunderbuss.yml diff --git a/.github/blunderbuss.yml b/.github/blunderbuss.yml new file mode 100644 index 000000000000..1a23ea42b141 --- /dev/null +++ b/.github/blunderbuss.yml @@ -0,0 +1,7 @@ +# Configuration for the Blunderbuss GitHub app. For more info see +# https://github.com/googleapis/repo-automation-bots/tree/master/packages/blunderbuss +assign_prs_by: +- labels: + - samples + to: + - googleapis/java-samples-reviewers \ No newline at end of file diff --git a/synth.metadata b/synth.metadata index a7e17021d2eb..142ab86c45c9 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "cc1db9077aa0422c7d224a0e4fa15186b2ea5e08" + "sha": "aa6c8e3d3c27589e4707cb80e9ba8e40d25ebd3b" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "68742c6016bf0d16948a572633d17955a8737414" + "sha": "943bb78606d035001123030067dffcc34f4645f2" } } ], @@ -21,6 +21,7 @@ ".github/ISSUE_TEMPLATE/feature_request.md", ".github/ISSUE_TEMPLATE/support_request.md", ".github/PULL_REQUEST_TEMPLATE.md", + ".github/blunderbuss.yml", ".github/generated-files-bot.yml", ".github/readme/synth.py", ".github/release-please.yml", From 3994be62b63b4b56944499c10b42d77ced4ab33c Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 25 Nov 2020 04:08:42 +0530 Subject: [PATCH 1002/3441] docs(samples): add create external table using hivepartitioningoptions (#969) --- .../bigquery/SetHivePartitioningOptions.java | 70 +++++++++++++++ .../SetHivePartitioningOptionsIT.java | 85 +++++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/SetHivePartitioningOptions.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/SetHivePartitioningOptionsIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/SetHivePartitioningOptions.java b/samples/snippets/src/main/java/com/example/bigquery/SetHivePartitioningOptions.java new file mode 100644 index 000000000000..0263c3905368 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/SetHivePartitioningOptions.java @@ -0,0 +1,70 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_set_hivepartitioningoptions] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.HivePartitioningOptions; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; + +// Sample to create external table using hive partitioning +public class SetHivePartitioningOptions { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String sourceUri = "gs://cloud-samples-data/bigquery/hive-partitioning-samples/customlayout/*"; + String sourceUriPrefix = + "gs://cloud-samples-data/bigquery/hive-partitioning-samples/customlayout/{pkey:STRING}/"; + setHivePartitioningOptions(datasetName, tableName, sourceUriPrefix, sourceUri); + } + + public static void setHivePartitioningOptions( + String datasetName, String tableName, String sourceUriPrefix, String sourceUri) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Configuring partitioning options + HivePartitioningOptions hivePartitioningOptions = + HivePartitioningOptions.newBuilder() + .setMode("CUSTOM") + .setRequirePartitionFilter(true) + .setSourceUriPrefix(sourceUriPrefix) + .build(); + + TableId tableId = TableId.of(datasetName, tableName); + ExternalTableDefinition customTable = + ExternalTableDefinition.newBuilder(sourceUri, FormatOptions.parquet()) + .setAutodetect(true) + .setHivePartitioningOptions(hivePartitioningOptions) + .build(); + bigquery.create(TableInfo.of(tableId, customTable)); + System.out.println("External table created using hivepartitioningoptions"); + } catch (BigQueryException e) { + System.out.println("External table was not created" + e.toString()); + } + } +} +// [END bigquery_set_hivepartitioningoptions] diff --git a/samples/snippets/src/test/java/com/example/bigquery/SetHivePartitioningOptionsIT.java b/samples/snippets/src/test/java/com/example/bigquery/SetHivePartitioningOptionsIT.java new file mode 100644 index 000000000000..bc01e3861e9e --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/SetHivePartitioningOptionsIT.java @@ -0,0 +1,85 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class SetHivePartitioningOptionsIT { + + private static final String ID = UUID.randomUUID().toString().substring(0, 8); + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + // Create a test table + tableName = "SET_HIVEPARTITIONINGOPTIONS_FROM_GCS_TEST_" + ID; + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testSetHivePartitioningOptions() { + String sourceUri = "gs://cloud-samples-data/bigquery/hive-partitioning-samples/customlayout/*"; + String sourceUriPrefix = + "gs://cloud-samples-data/bigquery/hive-partitioning-samples/customlayout/{pkey:STRING}/"; + SetHivePartitioningOptions.setHivePartitioningOptions( + BIGQUERY_DATASET_NAME, tableName, sourceUriPrefix, sourceUri); + assertThat(bout.toString()).contains("External table created using hivepartitioningoptions"); + } +} From 2edad15764f144268f1bd3052d1d0ac069a2f377 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 25 Nov 2020 04:09:42 +0530 Subject: [PATCH 1003/3441] docs(samples): add export model (#970) --- .../com/example/bigquery/ExtractModel.java | 72 +++++++++++++++++ .../com/example/bigquery/ExtractModelIT.java | 77 +++++++++++++++++++ 2 files changed, 149 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/ExtractModelIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java b/samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java new file mode 100644 index 000000000000..9f5086330bfc --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java @@ -0,0 +1,72 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_export_model] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.ExtractJobConfiguration; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.ModelId; + +// Sample to extract model to GCS bucket +public class ExtractModel { + + public static void main(String[] args) throws InterruptedException { + // TODO(developer): Replace these variables before running the sample. + String projectName = "bigquery-public-data"; + String datasetName = "samples"; + String modelName = "model"; + String bucketName = "MY-BUCKET-NAME"; + String destinationUri = "gs://" + bucketName + "/path/to/file"; + extractModel(projectName, datasetName, modelName, destinationUri); + } + + public static void extractModel( + String projectName, String datasetName, String modelName, String destinationUri) + throws InterruptedException { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + ModelId modelId = ModelId.of(projectName, datasetName, modelName); + + ExtractJobConfiguration extractConfig = + ExtractJobConfiguration.newBuilder(modelId, destinationUri).build(); + + Job job = bigquery.create(JobInfo.of(extractConfig)); + + // Blocks until this job completes its execution, either failing or succeeding. + Job completedJob = job.waitFor(); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to extract due to an error: \n" + job.getStatus().getError()); + return; + } + System.out.println("Model extract successful"); + } catch (BigQueryException ex) { + System.out.println("Model extraction job was interrupted. \n" + ex.toString()); + } + } +} +// [END bigquery_export_model] diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractModelIT.java new file mode 100644 index 000000000000..3e13e78167b5 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractModelIT.java @@ -0,0 +1,77 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ExtractModelIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String GCS_BUCKET = System.getenv("GCS_BUCKET"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GCS_BUCKET"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testExtractModel() throws InterruptedException { + String projectId = "bigquery-public-data"; + String datasetName = "samples"; + String modelName = "model"; + String destinationUri = "gs://" + GCS_BUCKET + "/extractModel"; + // Extract model content to GCS + ExtractModel.extractModel(projectId, datasetName, modelName, destinationUri); + assertThat(bout.toString()).contains("Model extract successful"); + } +} From 9028ee4a0b70180b5dd1eb182aadaac319332009 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 24 Nov 2020 14:52:02 -0800 Subject: [PATCH 1004/3441] chore: regenerate README (#973) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-24 22:41:03,520 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-24 22:41:04,490 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/0a1ea985-3581-47e9-a701-5894d322dfea/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index e647e91aaca8..adc5cdd74117 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "db1968bc3310c3a4a2da24f65a1299f1c6a9acec" + "sha": "2edad15764f144268f1bd3052d1d0ac069a2f377" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "68742c6016bf0d16948a572633d17955a8737414" + "sha": "c2de32114ec484aa708d32012d1fa8d75232daf5" } } ] diff --git a/README.md b/README.md index c442de2bf6fa..a43988537fd5 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,7 @@ has instructions for running the samples. | Delete Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | | Delete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | | Export Query Results To S3 | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java) | +| Extract Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java) | | Extract Table Compressed | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java) | | Extract Table To Csv | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | | Extract Table To Json | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | @@ -200,6 +201,7 @@ has instructions for running the samples. | Resource Clean Up | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java) | | Run Legacy Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | | Save Query To Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | +| Set Hive Partitioning Options | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SetHivePartitioningOptions.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SetHivePartitioningOptions.java) | | Simple App | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | | Simple Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | | Table Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | From 1739d57c59cfb6b90ccf3fcc9c07d1449fc17238 Mon Sep 17 00:00:00 2001 From: David Rabinowitz Date: Wed, 25 Nov 2020 06:26:53 -0800 Subject: [PATCH 1005/3441] fix: update listPartitions() to support tables from other projects (#974) * fix: update listPartitions() to support tables from other projects * code format Co-authored-by: yoshi-code-bot <70984784+yoshi-code-bot@users.noreply.github.com> Co-authored-by: yoshi-code-bot <70984784+yoshi-code-bot@users.noreply.github.com> --- .../main/java/com/google/cloud/bigquery/BigQueryImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 0ed1ca68cb2f..d402ce549a0e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -848,8 +848,12 @@ public Page listRoutines(DatasetId datasetId, RoutineListOption... opti @Override public List listPartitions(TableId tableId) { List partitions = new ArrayList(); - Table metaTable = - getTable(TableId.of(tableId.getDataset(), tableId.getTable() + "$__PARTITIONS_SUMMARY__")); + String partitionsTable = tableId.getTable() + "$__PARTITIONS_SUMMARY__"; + TableId metaTableId = + tableId.getProject() == null + ? TableId.of(tableId.getDataset(), partitionsTable) + : TableId.of(tableId.getProject(), tableId.getDataset(), partitionsTable); + Table metaTable = getTable(metaTableId); Schema metaSchema = metaTable.getDefinition().getSchema(); String partition_id = null; for (Field field : metaSchema.getFields()) { From 07ff507295495ea1b4612957dbe2c4fd80850e25 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 1 Dec 2020 00:22:57 +0530 Subject: [PATCH 1006/3441] test: add IT for HivePartitioningOptions (#981) --- .../cloud/bigquery/it/ITBigQueryTest.java | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 3a3af4898eb0..07eeb9f3ada4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -62,6 +62,7 @@ import com.google.cloud.bigquery.FieldValue; import com.google.cloud.bigquery.FieldValueList; import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.HivePartitioningOptions; import com.google.cloud.bigquery.InsertAllRequest; import com.google.cloud.bigquery.InsertAllResponse; import com.google.cloud.bigquery.Job; @@ -1703,6 +1704,65 @@ public void testQueryCaseInsensitiveSchemaFieldByGetName() throws InterruptedExc assertEquals(2, rowCount); } + @Test + public void testQueryExternalHivePartitioningOptionAutoLayout() throws InterruptedException { + String tableName = "test_queryexternalhivepartition_autolayout_table"; + String sourceUri = "gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout/*"; + String sourceUriPrefix = + "gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout/"; + HivePartitioningOptions hivePartitioningOptions = + HivePartitioningOptions.newBuilder() + .setMode("AUTO") + .setRequirePartitionFilter(true) + .setSourceUriPrefix(sourceUriPrefix) + .build(); + TableId tableId = TableId.of(DATASET, tableName); + ExternalTableDefinition externalTable = + ExternalTableDefinition.newBuilder(sourceUri, FormatOptions.parquet()) + .setAutodetect(true) + .setHivePartitioningOptions(hivePartitioningOptions) + .build(); + assertNotNull(bigquery.create(TableInfo.of(tableId, externalTable))); + String query = + String.format( + "SELECT COUNT(*) as ct FROM %s.%s WHERE dt=\"2020-11-15\"", DATASET, tableName); + TableResult result = bigquery.query(QueryJobConfiguration.of(query)); + for (FieldValueList fieldValues : result.iterateAll()) { + assertEquals(50, fieldValues.get("ct").getLongValue()); + } + assertEquals(1, result.getTotalRows()); + assertTrue(bigquery.delete(tableId)); + } + + @Test + public void testQueryExternalHivePartitioningOptionCustomLayout() throws InterruptedException { + String tableName = "test_queryexternalhivepartition_customlayout_table"; + String sourceUri = "gs://cloud-samples-data/bigquery/hive-partitioning-samples/customlayout/*"; + String sourceUriPrefix = + "gs://cloud-samples-data/bigquery/hive-partitioning-samples/customlayout/{pkey:STRING}/"; + HivePartitioningOptions hivePartitioningOptions = + HivePartitioningOptions.newBuilder() + .setMode("CUSTOM") + .setRequirePartitionFilter(true) + .setSourceUriPrefix(sourceUriPrefix) + .build(); + TableId tableId = TableId.of(DATASET, tableName); + ExternalTableDefinition externalTable = + ExternalTableDefinition.newBuilder(sourceUri, FormatOptions.parquet()) + .setAutodetect(true) + .setHivePartitioningOptions(hivePartitioningOptions) + .build(); + assertNotNull(bigquery.create(TableInfo.of(tableId, externalTable))); + String query = + String.format("SELECT COUNT(*) as ct FROM %s.%s WHERE pkey=\"foo\"", DATASET, tableName); + TableResult result = bigquery.query(QueryJobConfiguration.of(query)); + for (FieldValueList fieldValues : result.iterateAll()) { + assertEquals(50, fieldValues.get("ct").getLongValue()); + } + assertEquals(1, result.getTotalRows()); + assertTrue(bigquery.delete(tableId)); + } + @Test public void testFastQueryMultipleRuns() throws InterruptedException { String query = From 0cfc98bffc9970d3275cc233d59c621ddbb6aea6 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 1 Dec 2020 00:23:17 +0530 Subject: [PATCH 1007/3441] docs(samples): add create iam policy for table (#975) --- .../com/example/bigquery/CreateIamPolicy.java | 58 +++++++++++++ .../example/bigquery/CreateIamPolicyIT.java | 83 +++++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateIamPolicyIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java b/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java new file mode 100644 index 000000000000..960f2807178e --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java @@ -0,0 +1,58 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_iam_policy] +import com.google.cloud.Identity; +import com.google.cloud.Policy; +import com.google.cloud.Role; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.TableId; + +// Sample to create iam policy for table +public class CreateIamPolicy { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + createIamPolicy(datasetName, tableName); + } + + public static void createIamPolicy(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + + Policy policy = bigquery.getIamPolicy(tableId); + policy + .toBuilder() + .addIdentity(Role.of("roles/bigquery.dataViewer"), Identity.allUsers()) + .build(); + bigquery.setIamPolicy(tableId, policy); + System.out.println("Iam policy created successfully"); + } catch (BigQueryException e) { + System.out.println("Iam policy was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_iam_policy] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateIamPolicyIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateIamPolicyIT.java new file mode 100644 index 000000000000..420d81e40582 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateIamPolicyIT.java @@ -0,0 +1,83 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateIamPolicyIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + + // create a temporary table + tableName = "CREATE_POLICY_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testCreateIamPolicy() { + CreateIamPolicy.createIamPolicy(BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Iam policy created successfully"); + } +} From 155e6882aebdb4ac93e1e78baac0579ca7e11bd1 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 1 Dec 2020 00:26:38 +0530 Subject: [PATCH 1008/3441] docs(samples): add create materialized view (#977) --- .../bigquery/CreateMaterializedView.java | 63 +++++++++++ .../bigquery/CreateMaterializedViewIT.java | 101 ++++++++++++++++++ 2 files changed, 164 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateMaterializedViewIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java b/samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java new file mode 100644 index 000000000000..0781cf151817 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java @@ -0,0 +1,63 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_materialized_view] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.MaterializedViewDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; + +// Sample to create materialized view +public class CreateMaterializedView { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + String materializedViewName = "MY_MATERIALIZED_VIEW_NAME"; + String query = + String.format( + "SELECT MAX(TimestampField) AS TimestampField, StringField, " + + "MAX(BooleanField) AS BooleanField " + + "FROM %s.%s GROUP BY StringField", + datasetName, tableName); + createMaterializedView(datasetName, materializedViewName, query); + } + + public static void createMaterializedView( + String datasetName, String materializedViewName, String query) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, materializedViewName); + + MaterializedViewDefinition materializedViewDefinition = + MaterializedViewDefinition.newBuilder(query).build(); + + bigquery.create(TableInfo.of(tableId, materializedViewDefinition)); + System.out.println("Materialized view created successfully"); + } catch (BigQueryException e) { + System.out.println("Materialized view was not created. \n" + e.toString()); + } + } +} +// [END bigquery_create_materialized_view] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateMaterializedViewIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateMaterializedViewIT.java new file mode 100644 index 000000000000..7d4ec84b2432 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateMaterializedViewIT.java @@ -0,0 +1,101 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateMaterializedViewIT { + + private static final String ID = UUID.randomUUID().toString().substring(0, 8); + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; + private String materializedViewName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + + tableName = "MY_TABLE_NAME_TEST_" + ID; + materializedViewName = "MY_MATERIALIZED_VIEW_NAME_TEST_" + ID; + + Schema schema = + Schema.of( + Field.of("timestampField", StandardSQLTypeName.TIMESTAMP), + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, materializedViewName); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testCreateMaterializedView() { + String query = + String.format( + "SELECT MAX(TimestampField) AS TimestampField, StringField, " + + "MAX(BooleanField) AS BooleanField " + + "FROM %s.%s GROUP BY StringField", + BIGQUERY_DATASET_NAME, tableName); + CreateMaterializedView.createMaterializedView( + BIGQUERY_DATASET_NAME, materializedViewName, query); + assertThat(bout.toString()).contains("Materialized view created successfully"); + } +} From d1189e5afece0d2aa57b84181ad8e097b36b4cd7 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 30 Nov 2020 11:06:02 -0800 Subject: [PATCH 1009/3441] chore: regenerate README (#982) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-30 18:55:02,649 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-30 18:55:04,346 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/58f9afd4-0bc2-4f0c-b2e4-981bbd72657a/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index adc5cdd74117..d1d3786d8d3e 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "2edad15764f144268f1bd3052d1d0ac069a2f377" + "sha": "0cfc98bffc9970d3275cc233d59c621ddbb6aea6" } }, { diff --git a/README.md b/README.md index a43988537fd5..7a290b8f2463 100644 --- a/README.md +++ b/README.md @@ -110,6 +110,7 @@ has instructions for running the samples. | Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | | Create Dataset Aws | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | | Create External Table Aws | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java) | +| Create Iam Policy | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java) | | Create Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | | Create Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | | Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | From 890098ae0492cd90c96418238482972f81895a1a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 30 Nov 2020 11:20:03 -0800 Subject: [PATCH 1010/3441] chore: regenerate README (#983) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-30 19:08:23,642 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-30 19:08:24,696 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/91b9c857-dfe1-4348-aa1d-d09406e7a535/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index d1d3786d8d3e..0a32b6debb9a 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "0cfc98bffc9970d3275cc233d59c621ddbb6aea6" + "sha": "d1189e5afece0d2aa57b84181ad8e097b36b4cd7" } }, { diff --git a/README.md b/README.md index 7a290b8f2463..a82371bdcb1d 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,7 @@ has instructions for running the samples. | Create External Table Aws | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java) | | Create Iam Policy | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java) | | Create Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | +| Create Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java) | | Create Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | | Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | | Create Range Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | From 37c0632500366006aecab18b21a10bf8956c4b6c Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 1 Dec 2020 01:21:37 +0530 Subject: [PATCH 1011/3441] docs(samples): add alter materialized view (#979) --- .../bigquery/AlterMaterializedView.java | 61 +++++++++++ .../bigquery/AlterMaterializedViewIT.java | 102 ++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/AlterMaterializedViewIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java b/samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java new file mode 100644 index 000000000000..8ce25196f361 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java @@ -0,0 +1,61 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_alter_materialized_view] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.MaterializedViewDefinition; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; + +// Sample to alter materialized view +public class AlterMaterializedView { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String materializedViewName = "MY_MATERIALIZED_VIEW_NAME"; + alterMaterializedView(datasetName, materializedViewName); + } + + public static void alterMaterializedView(String datasetName, String materializedViewName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, materializedViewName); + + // Get existing materialized view + Table table = bigquery.getTable(tableId); + MaterializedViewDefinition materializedViewDefinition = table.getDefinition(); + // Alter materialized view + materializedViewDefinition + .toBuilder() + .setEnableRefresh(true) + .setRefreshIntervalMs(1000L) + .build(); + table.toBuilder().setDefinition(materializedViewDefinition).build().update(); + System.out.println("Materialized view altered successfully"); + } catch (BigQueryException e) { + System.out.println("Materialized view was not altered. \n" + e.toString()); + } + } +} +// [END bigquery_alter_materialized_view] diff --git a/samples/snippets/src/test/java/com/example/bigquery/AlterMaterializedViewIT.java b/samples/snippets/src/test/java/com/example/bigquery/AlterMaterializedViewIT.java new file mode 100644 index 000000000000..3cc5dfa7c415 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/AlterMaterializedViewIT.java @@ -0,0 +1,102 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class AlterMaterializedViewIT { + + private static final String ID = UUID.randomUUID().toString().substring(0, 8); + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; + private String materializedViewName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + + tableName = "MY_TABLE_NAME_TEST_" + ID; + materializedViewName = "MY_ALTER_MATERIALIZED_VIEW_NAME_TEST_" + ID; + + Schema schema = + Schema.of( + Field.of("timestampField", StandardSQLTypeName.TIMESTAMP), + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + String query = + String.format( + "SELECT MAX(TimestampField) AS TimestampField, StringField, " + + "MAX(BooleanField) AS BooleanField " + + "FROM %s.%s GROUP BY StringField", + BIGQUERY_DATASET_NAME, tableName); + CreateMaterializedView.createMaterializedView( + BIGQUERY_DATASET_NAME, materializedViewName, query); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, materializedViewName); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testAlterMaterializedView() { + AlterMaterializedView.alterMaterializedView(BIGQUERY_DATASET_NAME, materializedViewName); + assertThat(bout.toString()).contains("Materialized view altered successfully"); + } +} From 022cb99b486d27c91f478353ab47df4b8e184e4a Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 1 Dec 2020 01:24:09 +0530 Subject: [PATCH 1012/3441] docs(samples): add delete materialized view (#980) --- .../bigquery/DeleteMaterializedView.java | 54 ++++++++++ .../bigquery/DeleteMaterializedViewIT.java | 101 ++++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/DeleteMaterializedViewIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java b/samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java new file mode 100644 index 000000000000..5433bec3bb53 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java @@ -0,0 +1,54 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_delete_materialized_view] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.TableId; + +// Sample to delete materialized view +public class DeleteMaterializedView { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String materializedViewName = "MY_MATERIALIZED_VIEW_NAME"; + deleteMaterializedView(datasetName, materializedViewName); + } + + public static void deleteMaterializedView(String datasetName, String materializedViewName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, materializedViewName); + + boolean success = bigquery.delete(tableId); + if (success) { + System.out.println("Materialized view deleted successfully"); + } else { + System.out.println("Materialized view was not found"); + } + } catch (BigQueryException e) { + System.out.println("Materialized view was not found. \n" + e.toString()); + } + } +} +// [END bigquery_delete_materialized_view] diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteMaterializedViewIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteMaterializedViewIT.java new file mode 100644 index 000000000000..bd5be8fe91b1 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteMaterializedViewIT.java @@ -0,0 +1,101 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class DeleteMaterializedViewIT { + + private static final String ID = UUID.randomUUID().toString().substring(0, 8); + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; + private String materializedViewName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + + tableName = "MY_TABLE_NAME_TEST_" + ID; + materializedViewName = "MY_ALTER_MATERIALIZED_VIEW_NAME_TEST_" + ID; + + Schema schema = + Schema.of( + Field.of("timestampField", StandardSQLTypeName.TIMESTAMP), + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + String query = + String.format( + "SELECT MAX(TimestampField) AS TimestampField, StringField, " + + "MAX(BooleanField) AS BooleanField " + + "FROM %s.%s GROUP BY StringField", + BIGQUERY_DATASET_NAME, tableName); + CreateMaterializedView.createMaterializedView( + BIGQUERY_DATASET_NAME, materializedViewName, query); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testDeleteMaterializedView() { + DeleteMaterializedView.deleteMaterializedView(BIGQUERY_DATASET_NAME, materializedViewName); + assertThat(bout.toString()).contains("Materialized view deleted successfully"); + } +} From 5b0c7a2fd80f571b3b128b158c403673cca722cb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 30 Nov 2020 12:06:03 -0800 Subject: [PATCH 1013/3441] chore: regenerate README (#984) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-30 19:53:57,593 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-30 19:53:58,629 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/5046f6ba-f07a-41da-ac00-e8ab54b3c150/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 0a32b6debb9a..be0b1ea06ff2 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "d1189e5afece0d2aa57b84181ad8e097b36b4cd7" + "sha": "37c0632500366006aecab18b21a10bf8956c4b6c" } }, { diff --git a/README.md b/README.md index a82371bdcb1d..4bb561ad4659 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,7 @@ has instructions for running the samples. | --------------------------- | --------------------------------- | ------ | | Add Column Load Append | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | | Add Empty Column | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | +| Alter Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java) | | Auth Drive Scope | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | | Auth Snippets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | | Auth User Flow | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | From 8be3b77bfeceeb95dc950b66523fe516cff27fd0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 30 Nov 2020 12:20:03 -0800 Subject: [PATCH 1014/3441] chore: regenerate README (#985) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-11-30 20:08:11,353 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working directory clean 2020-11-30 20:08:12,370 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/d00c74f6-b386-4587-96c9-9624c9611fc9/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index be0b1ea06ff2..3f25aaa0ca22 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "37c0632500366006aecab18b21a10bf8956c4b6c" + "sha": "5b0c7a2fd80f571b3b128b158c403673cca722cb" } }, { diff --git a/README.md b/README.md index 4bb561ad4659..ff1599006cf0 100644 --- a/README.md +++ b/README.md @@ -129,6 +129,7 @@ has instructions for running the samples. | Delete Dataset And Contents | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java) | | Delete Label Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | | Delete Label Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java) | +| Delete Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java) | | Delete Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | | Delete Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | | Delete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | From aeecac905911dbe1ee534f0e5eeef2705a0cb6b3 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 1 Dec 2020 22:34:39 +0530 Subject: [PATCH 1015/3441] docs(samples): add update iam policy for table (#976) * docs(samples): add update iam policy for table * docs(samples): fix format --- .../com/example/bigquery/UpdateIamPolicy.java | 62 ++++++++++++++ .../example/bigquery/UpdateIamPolicyIT.java | 84 +++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/UpdateIamPolicyIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java new file mode 100644 index 000000000000..6956b2d92916 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java @@ -0,0 +1,62 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_update_iam_policy] +import com.google.cloud.Identity; +import com.google.cloud.Policy; +import com.google.cloud.Role; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.TableId; +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +// Sample to update iam policy in table +public class UpdateIamPolicy { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + updateIamPolicy(datasetName, tableName); + } + + public static void updateIamPolicy(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + + Policy policy = bigquery.getIamPolicy(tableId); + Map> binding = new HashMap<>(policy.getBindings()); + binding.remove(Role.of("roles/bigquery.dataViewer")); + + policy.toBuilder().setBindings(binding).build(); + bigquery.setIamPolicy(tableId, policy); + + System.out.println("Iam policy updated successfully"); + } catch (BigQueryException e) { + System.out.println("Iam policy was not updated. \n" + e.toString()); + } + } +} +// [END bigquery_update_iam_policy] diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateIamPolicyIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateIamPolicyIT.java new file mode 100644 index 000000000000..196fcd4ef1a9 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateIamPolicyIT.java @@ -0,0 +1,84 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class UpdateIamPolicyIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + + // create a temporary table + tableName = "UPDATE_POLICY_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + CreateIamPolicy.createIamPolicy(BIGQUERY_DATASET_NAME, tableName); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testUpdateIamPolicy() { + UpdateIamPolicy.updateIamPolicy(BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Iam policy updated successfully"); + } +} From cf36b82ef9bc0849a87b717c099321915a76b967 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Tue, 1 Dec 2020 22:35:21 +0530 Subject: [PATCH 1016/3441] docs(samples): add query materialized view (#978) * docs(samples): add query materialized view * docs(samples): address feedback --- .../bigquery/QueryMaterializedView.java | 51 +++++++++ .../bigquery/QueryMaterializedViewIT.java | 104 ++++++++++++++++++ 2 files changed, 155 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryMaterializedViewIT.java diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java b/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java new file mode 100644 index 000000000000..22876c40d497 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java @@ -0,0 +1,51 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; + +public class QueryMaterializedView { + + public static void main(String[] args) throws InterruptedException { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String materializedViewName = "MY_MATERIALIZED_VIEW_NAME"; + String query = String.format("SELECT * FROM %s.%s", datasetName, materializedViewName); + queryMaterializedView(query); + } + + public static void queryMaterializedView(String query) throws InterruptedException { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableResult results = bigquery.query(QueryJobConfiguration.of(query)); + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s\n", val.toString()))); + + System.out.println("Query performed successfully."); + } catch (BigQueryException e) { + System.out.println("Query was not performed. \n" + e.toString()); + } + } +} diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryMaterializedViewIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryMaterializedViewIT.java new file mode 100644 index 000000000000..7e84daf28a0e --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryMaterializedViewIT.java @@ -0,0 +1,104 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class QueryMaterializedViewIT { + + private static final String ID = UUID.randomUUID().toString().substring(0, 8); + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; + private String materializedViewName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + + tableName = "MY_TABLE_NAME_TEST_" + ID; + materializedViewName = "MY_QUERY_MATERIALIZED_VIEW_NAME_TEST_" + ID; + + Schema schema = + Schema.of( + Field.of("timestampField", StandardSQLTypeName.TIMESTAMP), + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + String query = + String.format( + "SELECT MAX(TimestampField) AS TimestampField, StringField, " + + "MAX(BooleanField) AS BooleanField " + + "FROM %s.%s GROUP BY StringField", + BIGQUERY_DATASET_NAME, tableName); + CreateMaterializedView.createMaterializedView( + BIGQUERY_DATASET_NAME, materializedViewName, query); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, materializedViewName); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, bout.toString()); + } + + @Test + public void testQueryMaterializedView() throws InterruptedException { + String query = + String.format("SELECT * FROM %s.%s", BIGQUERY_DATASET_NAME, materializedViewName); + QueryMaterializedView.queryMaterializedView(query); + assertThat(bout.toString()).contains("Query performed successfully."); + } +} From 713f59750502439661f302cd20313a54b6793162 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 1 Dec 2020 13:46:04 -0800 Subject: [PATCH 1017/3441] chore: regenerate README (#986) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-12-01 17:06:57,202 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2020-12-01 17:06:58,236 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/304c654b-d069-4a1a-b811-83912b153365/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 3f25aaa0ca22..252a5f81a482 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "5b0c7a2fd80f571b3b128b158c403673cca722cb" + "sha": "cf36b82ef9bc0849a87b717c099321915a76b967" } }, { diff --git a/README.md b/README.md index ff1599006cf0..01706882d23f 100644 --- a/README.md +++ b/README.md @@ -187,6 +187,7 @@ has instructions for running the samples. | Query External Sheets Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java) | | Query External Table Aws | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java) | | Query Large Results | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | +| Query Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java) | | Query Pagination | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | | Query Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | | Query Script | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | @@ -216,6 +217,7 @@ has instructions for running the samples. | Update Dataset Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | | Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | | Update Dataset Partition Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | +| Update Iam Policy | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java) | | Update Model Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | | Update Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java) | | Update Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java) | From 3cc0d94888f649a16495f66e80ebf95093730b1a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 2 Dec 2020 22:24:09 +0100 Subject: [PATCH 1018/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.16.0 (#988) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | minor | `0.15.0` -> `0.16.0` | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v0.16.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​0160-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare0150v0160-2020-12-02) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v0.15.0...v0.16.0) ##### Dependencies - update dependency com.fasterxml.jackson:jackson-bom to v2.12.0 ([#​225](https://www.github.com/googleapis/java-shared-dependencies/issues/225)) ([b78a1ef](https://www.github.com/googleapis/java-shared-dependencies/commit/b78a1ef83ad946b0d29cd0dff46e48fbde44d120)) - update dependency com.google.api-client:google-api-client-bom to v1.31.1 ([#​215](https://www.github.com/googleapis/java-shared-dependencies/issues/215)) ([08d643a](https://www.github.com/googleapis/java-shared-dependencies/commit/08d643aaf289984b87d734274830712af82585b6)) - update dependency com.google.protobuf:protobuf-bom to v3.14.0 ([#​217](https://www.github.com/googleapis/java-shared-dependencies/issues/217)) ([01a9c64](https://www.github.com/googleapis/java-shared-dependencies/commit/01a9c6442906e8482a53712eba95ccc6f7040928)) - update dependency io.grpc:grpc-bom to v1.34.0 ([#​228](https://www.github.com/googleapis/java-shared-dependencies/issues/228)) ([425d1ea](https://www.github.com/googleapis/java-shared-dependencies/commit/425d1eab2a046c365f816f946576e4030e7c3696)) - update gax.version to v1.60.1 ([#​223](https://www.github.com/googleapis/java-shared-dependencies/issues/223)) ([84c75bd](https://www.github.com/googleapis/java-shared-dependencies/commit/84c75bdbd3f86ef7187373289ee08ad3a0c24719)) - update google.core.version to v1.94.0 ([#​212](https://www.github.com/googleapis/java-shared-dependencies/issues/212)) ([764ef5e](https://www.github.com/googleapis/java-shared-dependencies/commit/764ef5e9a2272cd9244a8fc5cc107ffacf9e9d5b))
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bcba98036819..0a598d9f875e 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20201030-1.30.10 - 0.15.0 + 0.16.0
    From bbf4fe2565b1676567f28d720b255696328c08cc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 2 Dec 2020 23:44:31 +0100 Subject: [PATCH 1019/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.18.1 (#989) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fd3f35aaa633..6cbd065cf27c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.18.0 + 1.18.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 945cb36f3b2b..b65cdc6766db 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.18.0 + 1.18.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 8e2dbc772f32..02d62c95aadb 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.18.0 + 1.18.1 test From 178907f65bd4162cb0172bf17439f108cafe9601 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 2 Dec 2020 22:56:08 +0000 Subject: [PATCH 1020/3441] chore: release 1.125.1 (#972) :robot: I have created a release \*beep\* \*boop\* --- ### [1.125.1](https://www.github.com/googleapis/java-bigquery/compare/v1.125.0...v1.125.1) (2020-12-02) ### Bug Fixes * update listPartitions() to support tables from other projects ([#974](https://www.github.com/googleapis/java-bigquery/issues/974)) ([1739d57](https://www.github.com/googleapis/java-bigquery/commit/1739d57c59cfb6b90ccf3fcc9c07d1449fc17238)) ### Documentation * **samples:** add alter materialized view ([#979](https://www.github.com/googleapis/java-bigquery/issues/979)) ([37c0632](https://www.github.com/googleapis/java-bigquery/commit/37c0632500366006aecab18b21a10bf8956c4b6c)) * **samples:** add create external table using hivepartitioningoptions ([#969](https://www.github.com/googleapis/java-bigquery/issues/969)) ([3994be6](https://www.github.com/googleapis/java-bigquery/commit/3994be62b63b4b56944499c10b42d77ced4ab33c)) * **samples:** add create iam policy for table ([#975](https://www.github.com/googleapis/java-bigquery/issues/975)) ([0cfc98b](https://www.github.com/googleapis/java-bigquery/commit/0cfc98bffc9970d3275cc233d59c621ddbb6aea6)) * **samples:** add create materialized view ([#977](https://www.github.com/googleapis/java-bigquery/issues/977)) ([155e688](https://www.github.com/googleapis/java-bigquery/commit/155e6882aebdb4ac93e1e78baac0579ca7e11bd1)) * **samples:** add delete materialized view ([#980](https://www.github.com/googleapis/java-bigquery/issues/980)) ([022cb99](https://www.github.com/googleapis/java-bigquery/commit/022cb99b486d27c91f478353ab47df4b8e184e4a)) * **samples:** add export model ([#970](https://www.github.com/googleapis/java-bigquery/issues/970)) ([2edad15](https://www.github.com/googleapis/java-bigquery/commit/2edad15764f144268f1bd3052d1d0ac069a2f377)) * **samples:** add query materialized view ([#978](https://www.github.com/googleapis/java-bigquery/issues/978)) ([cf36b82](https://www.github.com/googleapis/java-bigquery/commit/cf36b82ef9bc0849a87b717c099321915a76b967)) * **samples:** add update iam policy for table ([#976](https://www.github.com/googleapis/java-bigquery/issues/976)) ([aeecac9](https://www.github.com/googleapis/java-bigquery/commit/aeecac905911dbe1ee534f0e5eeef2705a0cb6b3)) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.18.1 ([#989](https://www.github.com/googleapis/java-bigquery/issues/989)) ([bbf4fe2](https://www.github.com/googleapis/java-bigquery/commit/bbf4fe2565b1676567f28d720b255696328c08cc)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.16.0 ([#988](https://www.github.com/googleapis/java-bigquery/issues/988)) ([3cc0d94](https://www.github.com/googleapis/java-bigquery/commit/3cc0d94888f649a16495f66e80ebf95093730b1a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 25 +++++++++++++++++++++++++ versions.txt | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4db52034ee47..7516a4a0c0df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,30 @@ # Changelog +### [1.125.1](https://www.github.com/googleapis/java-bigquery/compare/v1.125.0...v1.125.1) (2020-12-02) + + +### Bug Fixes + +* update listPartitions() to support tables from other projects ([#974](https://www.github.com/googleapis/java-bigquery/issues/974)) ([1739d57](https://www.github.com/googleapis/java-bigquery/commit/1739d57c59cfb6b90ccf3fcc9c07d1449fc17238)) + + +### Documentation + +* **samples:** add alter materialized view ([#979](https://www.github.com/googleapis/java-bigquery/issues/979)) ([37c0632](https://www.github.com/googleapis/java-bigquery/commit/37c0632500366006aecab18b21a10bf8956c4b6c)) +* **samples:** add create external table using hivepartitioningoptions ([#969](https://www.github.com/googleapis/java-bigquery/issues/969)) ([3994be6](https://www.github.com/googleapis/java-bigquery/commit/3994be62b63b4b56944499c10b42d77ced4ab33c)) +* **samples:** add create iam policy for table ([#975](https://www.github.com/googleapis/java-bigquery/issues/975)) ([0cfc98b](https://www.github.com/googleapis/java-bigquery/commit/0cfc98bffc9970d3275cc233d59c621ddbb6aea6)) +* **samples:** add create materialized view ([#977](https://www.github.com/googleapis/java-bigquery/issues/977)) ([155e688](https://www.github.com/googleapis/java-bigquery/commit/155e6882aebdb4ac93e1e78baac0579ca7e11bd1)) +* **samples:** add delete materialized view ([#980](https://www.github.com/googleapis/java-bigquery/issues/980)) ([022cb99](https://www.github.com/googleapis/java-bigquery/commit/022cb99b486d27c91f478353ab47df4b8e184e4a)) +* **samples:** add export model ([#970](https://www.github.com/googleapis/java-bigquery/issues/970)) ([2edad15](https://www.github.com/googleapis/java-bigquery/commit/2edad15764f144268f1bd3052d1d0ac069a2f377)) +* **samples:** add query materialized view ([#978](https://www.github.com/googleapis/java-bigquery/issues/978)) ([cf36b82](https://www.github.com/googleapis/java-bigquery/commit/cf36b82ef9bc0849a87b717c099321915a76b967)) +* **samples:** add update iam policy for table ([#976](https://www.github.com/googleapis/java-bigquery/issues/976)) ([aeecac9](https://www.github.com/googleapis/java-bigquery/commit/aeecac905911dbe1ee534f0e5eeef2705a0cb6b3)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.18.1 ([#989](https://www.github.com/googleapis/java-bigquery/issues/989)) ([bbf4fe2](https://www.github.com/googleapis/java-bigquery/commit/bbf4fe2565b1676567f28d720b255696328c08cc)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.16.0 ([#988](https://www.github.com/googleapis/java-bigquery/issues/988)) ([3cc0d94](https://www.github.com/googleapis/java-bigquery/commit/3cc0d94888f649a16495f66e80ebf95093730b1a)) + ## [1.125.0](https://www.github.com/googleapis/java-bigquery/compare/v1.124.7...v1.125.0) (2020-11-19) diff --git a/versions.txt b/versions.txt index bbaa41b161d5..c9165863ce02 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.125.0:1.125.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.125.1:1.125.1 \ No newline at end of file From 120a48d0fb464d258adda5d3c5bd0464212a9c89 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 3 Dec 2020 09:32:02 +0000 Subject: [PATCH 1021/3441] chore: release 1.125.2-SNAPSHOT (#991) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index edebf7205e54..c3bf7d7241ba 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.125.1-SNAPSHOT + 1.125.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c8d70ec7c1cc..0d2925fbf7eb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.125.1-SNAPSHOT + 1.125.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.125.1-SNAPSHOT + 1.125.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0a598d9f875e..3dcbff5d7d31 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.125.1-SNAPSHOT + 1.125.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.125.1-SNAPSHOT + 1.125.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b65cdc6766db..02f4425dfb34 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.125.1-SNAPSHOT + 1.125.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index c9165863ce02..f43ea6fd9cd8 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.125.1:1.125.1 \ No newline at end of file +google-cloud-bigquery:1.125.1:1.125.2-SNAPSHOT \ No newline at end of file From fc8774698be60ea567a4d0be5cc3c2a57a75bd99 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 4 Dec 2020 20:25:48 +0100 Subject: [PATCH 1022/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.19.0 (#993) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6cbd065cf27c..71219c672a8a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.18.1 + 1.19.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 02f4425dfb34..c88171b918cd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.18.1 + 1.19.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 02d62c95aadb..c9f01391cbf3 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.18.1 + 1.19.0 test From 8968b44ceb9fa9a199257a5cb8434069d4fdc4b6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 4 Dec 2020 23:46:10 +0100 Subject: [PATCH 1023/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20201030-1.31.0 (#995) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3dcbff5d7d31..7e79d268a3bb 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20201030-1.30.10 + v2-rev20201030-1.31.0 0.16.0 From 968e72f657a190232dd67ddc668b7666b94f18bb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 4 Dec 2020 22:58:03 +0000 Subject: [PATCH 1024/3441] chore: release 1.125.2 (#994) :robot: I have created a release \*beep\* \*boop\* --- ### [1.125.2](https://www.github.com/googleapis/java-bigquery/compare/v1.125.1...v1.125.2) (2020-12-04) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20201030-1.31.0 ([#995](https://www.github.com/googleapis/java-bigquery/issues/995)) ([8968b44](https://www.github.com/googleapis/java-bigquery/commit/8968b44ceb9fa9a199257a5cb8434069d4fdc4b6)) * update dependency com.google.cloud:google-cloud-bigtable to v1.19.0 ([#993](https://www.github.com/googleapis/java-bigquery/issues/993)) ([fc87746](https://www.github.com/googleapis/java-bigquery/commit/fc8774698be60ea567a4d0be5cc3c2a57a75bd99)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7516a4a0c0df..51fffe056543 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.125.2](https://www.github.com/googleapis/java-bigquery/compare/v1.125.1...v1.125.2) (2020-12-04) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20201030-1.31.0 ([#995](https://www.github.com/googleapis/java-bigquery/issues/995)) ([8968b44](https://www.github.com/googleapis/java-bigquery/commit/8968b44ceb9fa9a199257a5cb8434069d4fdc4b6)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.19.0 ([#993](https://www.github.com/googleapis/java-bigquery/issues/993)) ([fc87746](https://www.github.com/googleapis/java-bigquery/commit/fc8774698be60ea567a4d0be5cc3c2a57a75bd99)) + ### [1.125.1](https://www.github.com/googleapis/java-bigquery/compare/v1.125.0...v1.125.1) (2020-12-02) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c3bf7d7241ba..c19ef31790e0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.125.2-SNAPSHOT + 1.125.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0d2925fbf7eb..6102375d8523 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.125.2-SNAPSHOT + 1.125.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.125.2-SNAPSHOT + 1.125.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7e79d268a3bb..cd1be261c673 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.125.2-SNAPSHOT + 1.125.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.125.2-SNAPSHOT + 1.125.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c88171b918cd..6676e7223391 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.125.2-SNAPSHOT + 1.125.2 diff --git a/versions.txt b/versions.txt index f43ea6fd9cd8..40fa442b2164 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.125.1:1.125.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.125.2:1.125.2 \ No newline at end of file From 6de06aa721d63a8f4972cfcec6afa4ec5b068bc9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 5 Dec 2020 01:14:05 +0100 Subject: [PATCH 1025/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.125.2 (#996) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | patch | `1.125.0` -> `1.125.2` | --- ### Release Notes
    googleapis/java-bigquery ### [`v1.125.2`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​11252-httpswwwgithubcomgoogleapisjava-bigquerycomparev11251v11252-2020-12-04) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.125.0...v1.125.2)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 71219c672a8a..358264627d70 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.125.0 + 1.125.2 From c0a55564cac7ee6ff19e895e366776ac2201e77a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 5 Dec 2020 00:20:03 +0000 Subject: [PATCH 1026/3441] chore: release 1.125.3-SNAPSHOT (#997) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c19ef31790e0..6c25859dfb8c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.125.2 + 1.125.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6102375d8523..4b64bc7dfc02 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.125.2 + 1.125.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.125.2 + 1.125.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index cd1be261c673..be7b1df65c12 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.125.2 + 1.125.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.125.2 + 1.125.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6676e7223391..d8db30b30534 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.125.2 + 1.125.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 40fa442b2164..42364221d3ef 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.125.2:1.125.2 \ No newline at end of file +google-cloud-bigquery:1.125.2:1.125.3-SNAPSHOT \ No newline at end of file From a692fe1bcd3415a1a98abd088030844c36fcc487 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 4 Dec 2020 16:28:03 -0800 Subject: [PATCH 1027/3441] chore: regenerate README (#998) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-12-05 00:16:21,423 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2020-12-05 00:16:22,330 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/63af523f-a9a8-4c04-a925-63f6b4b2c546/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 252a5f81a482..0e9e6ffdbf9c 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "cf36b82ef9bc0849a87b717c099321915a76b967" + "sha": "6de06aa721d63a8f4972cfcec6afa4ec5b068bc9" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "c2de32114ec484aa708d32012d1fa8d75232daf5" + "sha": "18c5dbdb4ac8cf75d4d8174e7b4558f48e76f8a1" } } ] diff --git a/README.md b/README.md index 01706882d23f..456684d39899 100644 --- a/README.md +++ b/README.md @@ -40,18 +40,18 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.125.0 + 1.125.2 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.125.0' +compile 'com.google.cloud:google-cloud-bigquery:1.125.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.125.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.125.2" ``` ## Authentication From e2cd4f63ccc543e144f90e06eaadb2e96ce94943 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 4 Dec 2020 19:42:04 -0500 Subject: [PATCH 1028/3441] feat: set requestId for fast query path in QueryRequestInfo instead of QueryJobConfiguration (#987) As requested @epavan --- google-cloud-bigquery/pom.xml | 5 ++ .../cloud/bigquery/QueryJobConfiguration.java | 16 +--- .../cloud/bigquery/QueryRequestInfo.java | 5 +- .../cloud/bigquery/BigQueryImplTest.java | 85 +++++++++++-------- .../cloud/bigquery/QueryRequestInfoTest.java | 7 +- .../cloud/bigquery/it/ITBigQueryTest.java | 9 ++ pom.xml | 7 ++ 7 files changed, 78 insertions(+), 56 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4b64bc7dfc02..9128c564b31b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -103,6 +103,11 @@ mockito-core test
    + + org.assertj + assertj-core + test + diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index 88ca5aa44022..927ae846cd90 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -35,7 +35,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.UUID; /** * Google BigQuery Query Job configuration. A Query Job runs a query against BigQuery data. Query @@ -72,7 +71,6 @@ public final class QueryJobConfiguration extends JobConfiguration { private final List connectionProperties; // maxResults is only used for fast query path private final Long maxResults; - private final String requestId; /** * Priority levels for a query. If not specified the priority is assumed to be {@link @@ -123,7 +121,6 @@ public static final class Builder private RangePartitioning rangePartitioning; private List connectionProperties; private Long maxResults; - private String requestId; private Builder() { super(Type.QUERY); @@ -157,7 +154,6 @@ private Builder(QueryJobConfiguration jobConfiguration) { this.rangePartitioning = jobConfiguration.rangePartitioning; this.connectionProperties = jobConfiguration.connectionProperties; this.maxResults = jobConfiguration.maxResults; - this.requestId = jobConfiguration.requestId; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -625,11 +621,6 @@ public Builder setMaxResults(Long maxResults) { return this; } - Builder setRequestId(String requestId) { - this.requestId = requestId; - return this; - } - public QueryJobConfiguration build() { return new QueryJobConfiguration(this); } @@ -672,7 +663,6 @@ private QueryJobConfiguration(Builder builder) { this.rangePartitioning = builder.rangePartitioning; this.connectionProperties = builder.connectionProperties; this.maxResults = builder.maxResults; - this.requestId = builder.requestId; } /** @@ -875,10 +865,6 @@ public Long getMaxResults() { return maxResults; } - String getRequestId() { - return requestId; - } - @Override public Builder toBuilder() { return new Builder(this); @@ -1057,7 +1043,7 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { /** Creates a builder for a BigQuery Query Job given the query to be run. */ public static Builder newBuilder(String query) { checkArgument(!isNullOrEmpty(query), "Provided query is null or empty"); - return new Builder().setQuery(query).setRequestId(UUID.randomUUID().toString()); + return new Builder().setQuery(query); } /** diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java index 602404cc0dd7..7492809d6107 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java @@ -23,6 +23,7 @@ import com.google.common.collect.Lists; import java.util.List; import java.util.Map; +import java.util.UUID; final class QueryRequestInfo { @@ -35,9 +36,9 @@ final class QueryRequestInfo { private final Long maxResults; private final String query; private final List queryParameters; + private final String requestId; private final Boolean useQueryCache; private final Boolean useLegacySql; - private final String requestId; QueryRequestInfo(QueryJobConfiguration config) { this.config = config; @@ -49,9 +50,9 @@ final class QueryRequestInfo { this.maxResults = config.getMaxResults(); this.query = config.getQuery(); this.queryParameters = config.toPb().getQuery().getQueryParameters(); + this.requestId = UUID.randomUUID().toString(); this.useLegacySql = config.useLegacySql(); this.useQueryCache = config.useQueryCache(); - this.requestId = config.getRequestId(); } boolean isFastQuerySupported() { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index e1a48f620499..7c970313fb67 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -1885,9 +1885,8 @@ public void testFastQueryRequestCompleted() throws InterruptedException { .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)); - QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_QUERY); - - when(bigqueryRpcMock.queryRpc(PROJECT, requestInfo.toPb())).thenReturn(queryResponsePb); + when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + .thenReturn(queryResponsePb); bigquery = options.getService(); TableResult result = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY); @@ -1900,7 +1899,15 @@ public void testFastQueryRequestCompleted() throws InterruptedException { assertThat(row.get(0).getBooleanValue()).isFalse(); assertThat(row.get(1).getLongValue()).isEqualTo(1); } - verify(bigqueryRpcMock).queryRpc(PROJECT, requestInfo.toPb()); + + QueryRequest requestPb = requestPbCapture.getValue(); + assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.getQuery(), requestPb.getQuery()); + assertEquals( + QUERY_JOB_CONFIGURATION_FOR_QUERY.getDefaultDataset().getDataset(), + requestPb.getDefaultDataset().getDatasetId()); + assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.useQueryCache(), requestPb.getUseQueryCache()); + + verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); } @Test @@ -1937,14 +1944,22 @@ public void testFastQueryMultiplePages() throws InterruptedException { .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)); - QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_QUERY); - when(bigqueryRpcMock.queryRpc(PROJECT, requestInfo.toPb())).thenReturn(queryResponsePb); + when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + .thenReturn(queryResponsePb); bigquery = options.getService(); TableResult result = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY); assertTrue(result.hasNextPage()); assertNotNull(result.getNextPageToken()); assertNotNull(result.getNextPage()); + + QueryRequest requestPb = requestPbCapture.getValue(); + assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.getQuery(), requestPb.getQuery()); + assertEquals( + QUERY_JOB_CONFIGURATION_FOR_QUERY.getDefaultDataset().getDataset(), + requestPb.getDefaultDataset().getDatasetId()); + assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.useQueryCache(), requestPb.getUseQueryCache()); + verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); verify(bigqueryRpcMock) .listTableData( @@ -1952,7 +1967,7 @@ public void testFastQueryMultiplePages() throws InterruptedException { DATASET, TABLE, BigQueryImpl.optionMap(BigQuery.TableDataListOption.pageToken(CURSOR))); - verify(bigqueryRpcMock).queryRpc(PROJECT, requestInfo.toPb()); + verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); } @Test @@ -1983,10 +1998,8 @@ public void testFastQuerySlowDdl() throws InterruptedException { .setTotalRows(BigInteger.valueOf(1L)) .setSchema(TABLE_SCHEMA.toPb()); - QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_QUERY); - QueryRequest requestPb = requestInfo.toPb(); - - when(bigqueryRpcMock.queryRpc(PROJECT, requestPb)).thenReturn(queryResponsePb); + when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + .thenReturn(queryResponsePb); responseJob.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)).thenReturn(responseJob); when(bigqueryRpcMock.getQueryResults( @@ -2004,7 +2017,14 @@ public void testFastQuerySlowDdl() throws InterruptedException { assertThat(row.get(1).getLongValue()).isEqualTo(1); } - verify(bigqueryRpcMock).queryRpc(PROJECT, requestInfo.toPb()); + QueryRequest requestPb = requestPbCapture.getValue(); + assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.getQuery(), requestPb.getQuery()); + assertEquals( + QUERY_JOB_CONFIGURATION_FOR_QUERY.getDefaultDataset().getDataset(), + requestPb.getDefaultDataset().getDatasetId()); + assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.useQueryCache(), requestPb.getUseQueryCache()); + + verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); verify(bigqueryRpcMock) .getQueryResults( @@ -2287,9 +2307,6 @@ public void testFastQuerySQLShouldRetry() throws Exception { .setTotalRows(BigInteger.valueOf(1L)) .setSchema(TABLE_SCHEMA.toPb()); - QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_QUERY); - QueryRequest requestPb = requestInfo.toPb(); - when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) .thenThrow(new BigQueryException(500, "InternalError")) .thenThrow(new BigQueryException(502, "Bad Gateway")) @@ -2310,13 +2327,13 @@ public void testFastQuerySQLShouldRetry() throws Exception { List allRequests = requestPbCapture.getAllValues(); boolean idempotent = true; - String requestId = requestPb.getRequestId(); + String firstRequestId = allRequests.get(0).getRequestId(); for (QueryRequest request : allRequests) { - idempotent = request.getRequestId().equals(requestId); + idempotent = request.getRequestId().equals(firstRequestId); } assertTrue(idempotent); - verify(bigqueryRpcMock, times(5)).queryRpc(PROJECT, requestPb); + verify(bigqueryRpcMock, times(5)).queryRpc(eq(PROJECT), requestPbCapture.capture()); } @Test @@ -2331,9 +2348,6 @@ public void testFastQueryDMLShouldRetry() throws Exception { .setNumDmlAffectedRows(1L) .setSchema(TABLE_SCHEMA.toPb()); - QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY); - QueryRequest requestPb = requestInfo.toPb(); - when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) .thenThrow(new BigQueryException(500, "InternalError")) .thenThrow(new BigQueryException(502, "Bad Gateway")) @@ -2354,13 +2368,13 @@ public void testFastQueryDMLShouldRetry() throws Exception { List allRequests = requestPbCapture.getAllValues(); boolean idempotent = true; - String requestId = requestPb.getRequestId(); + String firstRequestId = allRequests.get(0).getRequestId(); for (QueryRequest request : allRequests) { - idempotent = request.getRequestId().equals(requestId); + idempotent = request.getRequestId().equals(firstRequestId); } assertTrue(idempotent); - verify(bigqueryRpcMock, times(5)).queryRpc(PROJECT, requestPb); + verify(bigqueryRpcMock, times(5)).queryRpc(eq(PROJECT), requestPbCapture.capture()); } @Test @@ -2374,9 +2388,6 @@ public void testFastQueryDDLShouldRetry() throws Exception { .setTotalBytesProcessed(42L) .setSchema(TABLE_SCHEMA.toPb()); - QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_DDLQUERY); - QueryRequest requestPb = requestInfo.toPb(); - when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) .thenThrow(new BigQueryException(500, "InternalError")) .thenThrow(new BigQueryException(502, "Bad Gateway")) @@ -2397,13 +2408,13 @@ public void testFastQueryDDLShouldRetry() throws Exception { List allRequests = requestPbCapture.getAllValues(); boolean idempotent = true; - String requestId = requestPb.getRequestId(); + String firstRequestId = allRequests.get(0).getRequestId(); for (QueryRequest request : allRequests) { - idempotent = request.getRequestId().equals(requestId); + idempotent = request.getRequestId().equals(firstRequestId); } assertTrue(idempotent); - verify(bigqueryRpcMock, times(5)).queryRpc(PROJECT, requestPb); + verify(bigqueryRpcMock, times(5)).queryRpc(eq(PROJECT), requestPbCapture.capture()); } @Test @@ -2424,10 +2435,7 @@ public void testFastQueryBigQueryException() throws InterruptedException { .setPageToken(null) .setErrors(errorProtoList); - QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_FOR_QUERY); - QueryRequest requestPb = requestInfo.toPb(); - - when(bigqueryRpcMock.queryRpc(PROJECT, requestPb)).thenReturn(responsePb); + when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())).thenReturn(responsePb); bigquery = options.getService(); try { @@ -2436,7 +2444,14 @@ public void testFastQueryBigQueryException() throws InterruptedException { } catch (BigQueryException ex) { assertEquals(Lists.transform(errorProtoList, BigQueryError.FROM_PB_FUNCTION), ex.getErrors()); } - verify(bigqueryRpcMock).queryRpc(PROJECT, requestPb); + + QueryRequest requestPb = requestPbCapture.getValue(); + assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.getQuery(), requestPb.getQuery()); + assertEquals( + QUERY_JOB_CONFIGURATION_FOR_QUERY.getDefaultDataset().getDataset(), + requestPb.getDefaultDataset().getDatasetId()); + assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.useQueryCache(), requestPb.getUseQueryCache()); + verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java index 48fb2dbc4235..4adeeaf0066b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java @@ -16,6 +16,7 @@ package com.google.cloud.bigquery; +import static org.assertj.core.api.Assertions.*; import static org.junit.Assert.assertEquals; import com.google.api.services.bigquery.model.QueryRequest; @@ -31,7 +32,6 @@ public class QueryRequestInfoTest { - private static final String TEST_PROJECT_ID = "test-project-id"; private static final String QUERY = "BigQuery SQL"; private static final DatasetId DATASET_ID = DatasetId.of("dataset"); private static final TableId TABLE_ID = TableId.of("dataset", "table"); @@ -166,8 +166,7 @@ public void equalTo() { } private void compareQueryRequestInfo(QueryRequestInfo expected, QueryRequestInfo actual) { - assertEquals(expected, actual); - assertEquals(expected.hashCode(), actual.hashCode()); - assertEquals(expected.toString(), actual.toString()); + // requestId are expected to be different + assertThat(actual).isEqualToIgnoringGivenFields(expected, "requestId"); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 07eeb9f3ada4..155de03662e1 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1776,6 +1776,15 @@ public void testFastQueryMultipleRuns() throws InterruptedException { assertNull(result.getNextPageToken()); assertFalse(result.hasNextPage()); + // running the same QueryJobConfiguration with the same query again + TableResult result1Duplicate = bigquery.query(config); + assertEquals(QUERY_RESULT_SCHEMA, result1Duplicate.getSchema()); + assertEquals(2, result.getTotalRows()); + assertNull(result1Duplicate.getNextPage()); + assertNull(result1Duplicate.getNextPageToken()); + assertFalse(result1Duplicate.hasNextPage()); + + // running a new QueryJobConfiguration with the same query QueryJobConfiguration config2 = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); TableResult result2 = bigquery.query(config2); diff --git a/pom.xml b/pom.xml index be7b1df65c12..d190e81c3796 100644 --- a/pom.xml +++ b/pom.xml @@ -121,6 +121,13 @@ 1.113.4 test
    + + org.assertj + assertj-core + + 2.9.1 + test +
    From 22703553c43b2fd7d096b2bc6b4a4337f16cfe68 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 4 Dec 2020 19:55:27 -0500 Subject: [PATCH 1029/3441] chore: release 1.126.0 (#999) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51fffe056543..bc8ef293463e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.126.0](https://www.github.com/googleapis/java-bigquery/compare/v1.125.2...v1.126.0) (2020-12-05) + + +### Features + +* set requestId for fast query path in QueryRequestInfo instead of QueryJobConfiguration ([#987](https://www.github.com/googleapis/java-bigquery/issues/987)) ([e2cd4f6](https://www.github.com/googleapis/java-bigquery/commit/e2cd4f63ccc543e144f90e06eaadb2e96ce94943)) + ### [1.125.2](https://www.github.com/googleapis/java-bigquery/compare/v1.125.1...v1.125.2) (2020-12-04) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 6c25859dfb8c..5cc40be48c07 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.125.3-SNAPSHOT + 1.126.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9128c564b31b..c64178e644e6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.125.3-SNAPSHOT + 1.126.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.125.3-SNAPSHOT + 1.126.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d190e81c3796..697a52349ecd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.125.3-SNAPSHOT + 1.126.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.125.3-SNAPSHOT + 1.126.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d8db30b30534..065295876666 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.125.3-SNAPSHOT + 1.126.0 diff --git a/versions.txt b/versions.txt index 42364221d3ef..e580d3ba1da4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.125.2:1.125.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.126.0:1.126.0 \ No newline at end of file From 552ad430390a15b89dfb4e90c9ec30204c907a3b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 5 Dec 2020 09:16:02 +0000 Subject: [PATCH 1030/3441] chore: release 1.126.1-SNAPSHOT (#1003) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5cc40be48c07..9ebe86dfb315 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.0 + 1.126.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c64178e644e6..e8db4fc26f02 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.0 + 1.126.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.0 + 1.126.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 697a52349ecd..bf9ee9d7d72a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.0 + 1.126.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.0 + 1.126.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 065295876666..8dccee95db33 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.0 + 1.126.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index e580d3ba1da4..e3a2729ab83f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.0:1.126.0 \ No newline at end of file +google-cloud-bigquery:1.126.0:1.126.1-SNAPSHOT \ No newline at end of file From 645b345aa7abf0d3cdca282dbebba4a10eab3584 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 5 Dec 2020 01:28:03 -0800 Subject: [PATCH 1031/3441] chore: regenerate README (#1004) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-12-05 09:18:20,468 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2020-12-05 09:18:21,414 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/614c28d5-2a06-4a3e-8144-04ff4d9cb94b/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 0e9e6ffdbf9c..99975bb72a6c 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "6de06aa721d63a8f4972cfcec6afa4ec5b068bc9" + "sha": "552ad430390a15b89dfb4e90c9ec30204c907a3b" } }, { diff --git a/README.md b/README.md index 456684d39899..e4b34186cb90 100644 --- a/README.md +++ b/README.md @@ -47,11 +47,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.125.2' +compile 'com.google.cloud:google-cloud-bigquery:1.126.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.125.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.0" ``` ## Authentication From 1be9340bcd301d16468d4ca72e528be65bebfd8b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 5 Dec 2020 16:21:58 +0100 Subject: [PATCH 1032/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.126.0 (#1001) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 358264627d70..0e22341d9e69 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.125.2 + 1.126.0 From 40aef35b7db91eae11a9aa994db648615d6382aa Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 5 Dec 2020 16:22:14 +0100 Subject: [PATCH 1033/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.4 (#1002) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0e22341d9e69..84ff77267a62 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.3 + 1.0.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8dccee95db33..97063a75884b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.3 + 1.0.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c9f01391cbf3..55f49ed05224 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.3 + 1.0.4 test From 6ddd5994127d69fd97083752c929a800cd4bbaec Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 5 Dec 2020 07:36:03 -0800 Subject: [PATCH 1034/3441] chore: regenerate README (#1005) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-12-05 15:24:39,099 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2020-12-05 15:24:40,120 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/f3b73fde-bef0-4758-96b1-04c79a80a1c8/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 99975bb72a6c..b3c411aff2bf 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "552ad430390a15b89dfb4e90c9ec30204c907a3b" + "sha": "40aef35b7db91eae11a9aa994db648615d6382aa" } }, { diff --git a/README.md b/README.md index e4b34186cb90..c632a3a1d142 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.125.2 + 1.126.0 ``` From 9c97f4a6efa42b4efd6692dc31ca3f1799010df1 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 8 Dec 2020 09:09:31 -0800 Subject: [PATCH 1035/3441] chore: Update publish_javadoc.sh (#1006) * (chore) Update publish_javadoc.sh * add `export` to the envVar's to make sure maven knows about them. * report the Java version * chore: update script * remove `java -version` Co-authored-by: Jeffrey Rennie Source-Author: Les Vogel Source-Date: Mon Dec 7 09:37:58 2020 -0800 Source-Repo: googleapis/synthtool Source-Sha: 5d11bd2888c38ce1fb6fa6bf25494a4219a73928 Source-Link: https://github.com/googleapis/synthtool/commit/5d11bd2888c38ce1fb6fa6bf25494a4219a73928 --- .kokoro/release/publish_javadoc.sh | 7 ++++--- synth.metadata | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.kokoro/release/publish_javadoc.sh b/.kokoro/release/publish_javadoc.sh index b109a4aa7324..c4da069e9d77 100755 --- a/.kokoro/release/publish_javadoc.sh +++ b/.kokoro/release/publish_javadoc.sh @@ -38,8 +38,8 @@ python3 -m pip install gcp-docuploader # compile all packages mvn clean install -B -q -DskipTests=true -NAME=google-cloud-bigquery -VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) +export NAME=google-cloud-bigquery +export VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) # build the docs mvn site -B -q @@ -59,7 +59,8 @@ python3 -m docuploader upload . \ popd -# V2 +# V2 due to problems w/ the released javadoc plugin doclava, Java 8 is required. Beware of accidental updates. + mvn clean site -B -q -Ddevsite.template="${KOKORO_GFILE_DIR}/java/" pushd target/devsite/reference diff --git a/synth.metadata b/synth.metadata index 142ab86c45c9..eb2e7163e36a 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "aa6c8e3d3c27589e4707cb80e9ba8e40d25ebd3b" + "sha": "6ddd5994127d69fd97083752c929a800cd4bbaec" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "943bb78606d035001123030067dffcc34f4645f2" + "sha": "5d11bd2888c38ce1fb6fa6bf25494a4219a73928" } } ], From 7f2e5ca7610aaa52fd5de06a1500c65dbc663f20 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Wed, 9 Dec 2020 23:08:34 +0530 Subject: [PATCH 1036/3441] refactor(samples): query pagination (#1008) --- .../java/com/example/bigquery/QueryPagination.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java b/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java index 6c442865af75..190c9bcdef52 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java @@ -57,11 +57,19 @@ public static void queryPagination(String datasetName, String tableName, String TableResult results = bigquery.listTableData(tableId, BigQuery.TableDataListOption.pageSize(20)); + // First Page results - .getNextPage() .iterateAll() .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + if (results.hasNextPage()) { + // Next Page + results + .getNextPage() + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + } + System.out.println("Query pagination performed successfully."); } catch (BigQueryException | InterruptedException e) { System.out.println("Query not performed \n" + e.toString()); From 479ae98a22df32d257d13ef7d9aad4888ddacfdf Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 9 Dec 2020 18:45:58 +0100 Subject: [PATCH 1037/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.5 (#1007) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bf9ee9d7d72a..5b1a17e80d60 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.4 + 1.113.5 test From 1a5155c76d1dcf4062d6eb7fc2a7305fcbcc97a4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 9 Dec 2020 17:58:04 +0000 Subject: [PATCH 1038/3441] chore: release 1.126.1 (#1010) :robot: I have created a release \*beep\* \*boop\* --- ### [1.126.1](https://www.github.com/googleapis/java-bigquery/compare/v1.126.0...v1.126.1) (2020-12-09) ### Dependencies * update dependency com.google.cloud:google-cloud-storage to v1.113.5 ([#1007](https://www.github.com/googleapis/java-bigquery/issues/1007)) ([479ae98](https://www.github.com/googleapis/java-bigquery/commit/479ae98a22df32d257d13ef7d9aad4888ddacfdf)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc8ef293463e..b631f86e87a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.126.1](https://www.github.com/googleapis/java-bigquery/compare/v1.126.0...v1.126.1) (2020-12-09) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v1.113.5 ([#1007](https://www.github.com/googleapis/java-bigquery/issues/1007)) ([479ae98](https://www.github.com/googleapis/java-bigquery/commit/479ae98a22df32d257d13ef7d9aad4888ddacfdf)) + ## [1.126.0](https://www.github.com/googleapis/java-bigquery/compare/v1.125.2...v1.126.0) (2020-12-05) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9ebe86dfb315..79c3ec7af5d9 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.1-SNAPSHOT + 1.126.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e8db4fc26f02..c3e5004de9d8 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.1-SNAPSHOT + 1.126.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.1-SNAPSHOT + 1.126.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5b1a17e80d60..e8413529aeeb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.1-SNAPSHOT + 1.126.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.1-SNAPSHOT + 1.126.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 97063a75884b..c34906ae95e7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.1-SNAPSHOT + 1.126.1 diff --git a/versions.txt b/versions.txt index e3a2729ab83f..9da0a6befc19 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.0:1.126.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.126.1:1.126.1 \ No newline at end of file From bb4039d7f89d4fc31f24567213b45d9ef7703de5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 9 Dec 2020 21:22:40 +0100 Subject: [PATCH 1039/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.126.1 (#1011) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 84ff77267a62..2117e8f01518 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.126.0 + 1.126.1 From fb01a08e2d3308074c04e604a681b46cb2ef9948 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 9 Dec 2020 20:34:04 +0000 Subject: [PATCH 1040/3441] chore: release 1.126.2-SNAPSHOT (#1012) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 79c3ec7af5d9..02dc27539387 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.1 + 1.126.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c3e5004de9d8..ea556ab695b0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.1 + 1.126.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.1 + 1.126.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e8413529aeeb..9d714b0b4a53 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.1 + 1.126.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.1 + 1.126.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c34906ae95e7..39902669bacd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.1 + 1.126.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 9da0a6befc19..0710bff2f1e9 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.1:1.126.1 \ No newline at end of file +google-cloud-bigquery:1.126.1:1.126.2-SNAPSHOT \ No newline at end of file From 5e96884c37be8d3228e8ec9a99f827b48f889741 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 9 Dec 2020 12:36:06 -0800 Subject: [PATCH 1041/3441] chore: regenerate README (#1013) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-12-09 20:25:06,444 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2020-12-09 20:25:07,382 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/a1f883d2-937e-4d7f-9edf-5b376705428b/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index b3c411aff2bf..491dcc90e339 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "40aef35b7db91eae11a9aa994db648615d6382aa" + "sha": "bb4039d7f89d4fc31f24567213b45d9ef7703de5" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "18c5dbdb4ac8cf75d4d8174e7b4558f48e76f8a1" + "sha": "7d1ee3207371ef72a1ca931a0964c4007e687280" } } ] diff --git a/README.md b/README.md index c632a3a1d142..ed6739c135b7 100644 --- a/README.md +++ b/README.md @@ -40,18 +40,18 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.126.0 + 1.126.1 ``` If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.126.0' +compile 'com.google.cloud:google-cloud-bigquery:1.126.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.1" ``` ## Authentication From 1999950da0e784b72c4dbe749ceb56d750cea1b3 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 10 Dec 2020 12:12:03 -0500 Subject: [PATCH 1042/3441] docs(samples): add missing region tag (#1014) --- .../main/java/com/example/bigquery/QueryMaterializedView.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java b/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java index 22876c40d497..45ac23e672a2 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java @@ -16,6 +16,7 @@ package com.example.bigquery; +// [START bigquery_query_materialized_view] import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; @@ -49,3 +50,4 @@ public static void queryMaterializedView(String query) throws InterruptedExcepti } } } +// [END bigquery_query_materialized_view] From 93ea6fbdb41557b7a97f3818112761b9665052d2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 10 Dec 2020 09:26:02 -0800 Subject: [PATCH 1043/3441] chore: regenerate README (#1016) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-12-10 17:14:21,657 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2020-12-10 17:14:22,714 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/19fd8794-32fa-465f-8573-f14e4c6fe880/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 491dcc90e339..9fa99b0e2fef 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "bb4039d7f89d4fc31f24567213b45d9ef7703de5" + "sha": "1999950da0e784b72c4dbe749ceb56d750cea1b3" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7d1ee3207371ef72a1ca931a0964c4007e687280" + "sha": "352f25621c28d2fa0784984ea0ed5ea697aa1525" } } ] diff --git a/README.md b/README.md index ed6739c135b7..c545417e2dd9 100644 --- a/README.md +++ b/README.md @@ -268,6 +268,8 @@ Java 8 OSX | [![Kokoro CI][kokoro-badge-image-3]][kokoro-badge-link-3] Java 8 Windows | [![Kokoro CI][kokoro-badge-image-4]][kokoro-badge-link-4] Java 11 | [![Kokoro CI][kokoro-badge-image-5]][kokoro-badge-link-5] +Java is a registered trademark of Oracle and/or its affiliates. + [product-docs]: https://cloud.google.com/bigquery [javadocs]: https://googleapis.dev/java/google-cloud-bigquery/latest [kokoro-badge-image-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java7.svg From b62e8f208ae4741e7ba6df41c6c90a8192f84aee Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 14 Dec 2020 21:27:03 +0100 Subject: [PATCH 1044/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.6 (#1017) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9d714b0b4a53..50fa13e83913 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.5 + 1.113.6 test From aa5292844fc64642b32a4a823338acf8e61549b0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 14 Dec 2020 22:36:43 +0100 Subject: [PATCH 1045/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.16.1 (#1020) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 50fa13e83913..79e97f1891cb 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20201030-1.31.0 - 0.16.0 + 0.16.1
    From 0736016f5c96f7137ad31f0a89923ae3644e055a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 14 Dec 2020 22:20:14 +0000 Subject: [PATCH 1046/3441] chore: release 1.126.2 (#1015) :robot: I have created a release \*beep\* \*boop\* --- ### [1.126.2](https://www.github.com/googleapis/java-bigquery/compare/v1.126.1...v1.126.2) (2020-12-14) ### Documentation * **samples:** add missing region tag ([#1014](https://www.github.com/googleapis/java-bigquery/issues/1014)) ([1999950](https://www.github.com/googleapis/java-bigquery/commit/1999950da0e784b72c4dbe749ceb56d750cea1b3)) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.16.1 ([#1020](https://www.github.com/googleapis/java-bigquery/issues/1020)) ([aa52928](https://www.github.com/googleapis/java-bigquery/commit/aa5292844fc64642b32a4a823338acf8e61549b0)) * update dependency com.google.cloud:google-cloud-storage to v1.113.6 ([#1017](https://www.github.com/googleapis/java-bigquery/issues/1017)) ([b62e8f2](https://www.github.com/googleapis/java-bigquery/commit/b62e8f208ae4741e7ba6df41c6c90a8192f84aee)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 13 +++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b631f86e87a8..10206d583efe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +### [1.126.2](https://www.github.com/googleapis/java-bigquery/compare/v1.126.1...v1.126.2) (2020-12-14) + + +### Documentation + +* **samples:** add missing region tag ([#1014](https://www.github.com/googleapis/java-bigquery/issues/1014)) ([1999950](https://www.github.com/googleapis/java-bigquery/commit/1999950da0e784b72c4dbe749ceb56d750cea1b3)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.16.1 ([#1020](https://www.github.com/googleapis/java-bigquery/issues/1020)) ([aa52928](https://www.github.com/googleapis/java-bigquery/commit/aa5292844fc64642b32a4a823338acf8e61549b0)) +* update dependency com.google.cloud:google-cloud-storage to v1.113.6 ([#1017](https://www.github.com/googleapis/java-bigquery/issues/1017)) ([b62e8f2](https://www.github.com/googleapis/java-bigquery/commit/b62e8f208ae4741e7ba6df41c6c90a8192f84aee)) + ### [1.126.1](https://www.github.com/googleapis/java-bigquery/compare/v1.126.0...v1.126.1) (2020-12-09) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 02dc27539387..c5a973c65404 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.2-SNAPSHOT + 1.126.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ea556ab695b0..f14a2f406000 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.2-SNAPSHOT + 1.126.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.2-SNAPSHOT + 1.126.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 79e97f1891cb..2bc43d87e272 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.2-SNAPSHOT + 1.126.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.2-SNAPSHOT + 1.126.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 39902669bacd..539451f54e39 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.2-SNAPSHOT + 1.126.2 diff --git a/versions.txt b/versions.txt index 0710bff2f1e9..0c9ea2a83d0e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.1:1.126.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.126.2:1.126.2 \ No newline at end of file From da0b96cda8277b535b87ad1fdda77618a5a51efd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 15 Dec 2020 11:37:40 -0500 Subject: [PATCH 1047/3441] chore: release 1.126.3-SNAPSHOT (#1024) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c5a973c65404..f7f747077464 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.2 + 1.126.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f14a2f406000..50a93a2505c6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.2 + 1.126.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.2 + 1.126.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2bc43d87e272..c816c2131ee2 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.2 + 1.126.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.2 + 1.126.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 539451f54e39..4118b49adcab 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.2 + 1.126.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0c9ea2a83d0e..6059884e83da 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.2:1.126.2 \ No newline at end of file +google-cloud-bigquery:1.126.2:1.126.3-SNAPSHOT \ No newline at end of file From 6576517b85ac3a666ee07bb6736042fb3662afe8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 15 Dec 2020 17:44:14 +0100 Subject: [PATCH 1048/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.5 (#1022) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2117e8f01518..b3eb87babf0c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.4 + 1.0.5 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4118b49adcab..3e9be2a38a21 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.4 + 1.0.5 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 55f49ed05224..2965b93efc93 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.4 + 1.0.5 test From 12e2c382f6749c3baa54119e404725eea58da907 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 15 Dec 2020 19:32:02 +0100 Subject: [PATCH 1049/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.17.0 (#1026) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | minor | `0.16.1` -> `0.17.0` | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v0.17.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​0170-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare0161v0170-2020-12-15) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v0.16.1...v0.17.0) ##### Dependencies - update dependency com.google.guava:guava-bom to v30.1-android ([#​236](https://www.github.com/googleapis/java-shared-dependencies/issues/236)) ([78ebf7f](https://www.github.com/googleapis/java-shared-dependencies/commit/78ebf7fcec3ec0308ccd5103b719f02dde7ec6d8)) - update dependency io.grpc:grpc-bom to v1.34.1 ([#​238](https://www.github.com/googleapis/java-shared-dependencies/issues/238)) ([ee7e020](https://www.github.com/googleapis/java-shared-dependencies/commit/ee7e020a4631f2b288d1c6f5d681423d156e3c2d)) - update iam.version to v1.0.5 ([#​237](https://www.github.com/googleapis/java-shared-dependencies/issues/237)) ([bbe6be6](https://www.github.com/googleapis/java-shared-dependencies/commit/bbe6be650a93cf365f2439ae9c8bebf2ade83ddd)) ##### [0.16.1](https://www.github.com/googleapis/java-shared-dependencies/compare/0.16.0...v0.16.1) (2020-12-14) ##### Dependencies - rollback gRPC to 1.33.1 ([#​234](https://www.github.com/googleapis/java-shared-dependencies/issues/234)) ([67cc384](https://www.github.com/googleapis/java-shared-dependencies/commit/67cc384bacab8592d5bbc92db2469affee473eb7)) - update dependency com.google.auth:google-auth-library-bom to v0.22.1 ([#​229](https://www.github.com/googleapis/java-shared-dependencies/issues/229)) ([1c13161](https://www.github.com/googleapis/java-shared-dependencies/commit/1c13161fa289cd5f3923f389fd5b14f3b7b4a84d)) - update dependency com.google.auth:google-auth-library-bom to v0.22.2 ([#​235](https://www.github.com/googleapis/java-shared-dependencies/issues/235)) ([67434eb](https://www.github.com/googleapis/java-shared-dependencies/commit/67434eb4bb0789abcabb3055155672b2c2e70125)) - update iam.version to v1.0.4 ([#​231](https://www.github.com/googleapis/java-shared-dependencies/issues/231)) ([5edf99e](https://www.github.com/googleapis/java-shared-dependencies/commit/5edf99e0149a1b70eb52b8921e9eb04fb84d9160))
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c816c2131ee2..efb301561625 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20201030-1.31.0 - 0.16.1 + 0.17.0
    From 1c6e90d9e2fe13d99ab7fe1c9999c6050371a5d9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 15 Dec 2020 20:16:02 +0100 Subject: [PATCH 1050/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.19.1 (#1025) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | patch | `1.19.0` -> `1.19.1` | --- ### Release Notes
    googleapis/java-bigtable ### [`v1.19.1`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​1191-httpswwwgithubcomgoogleapisjava-bigtablecomparev1190v1191-2020-12-14) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v1.19.0...v1.19.1)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b3eb87babf0c..e166db7c7867 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.19.0 + 1.19.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3e9be2a38a21..9a7a4a0a1c9a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.19.0 + 1.19.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 2965b93efc93..07fc65376939 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.19.0 + 1.19.1 test From d05f81a64d136303294037a1d71f212d069683bb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 15 Dec 2020 19:30:04 +0000 Subject: [PATCH 1051/3441] chore: release 1.126.3 (#1027) :robot: I have created a release \*beep\* \*boop\* --- ### [1.126.3](https://www.github.com/googleapis/java-bigquery/compare/v1.126.2...v1.126.3) (2020-12-15) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.19.1 ([#1025](https://www.github.com/googleapis/java-bigquery/issues/1025)) ([1c6e90d](https://www.github.com/googleapis/java-bigquery/commit/1c6e90d9e2fe13d99ab7fe1c9999c6050371a5d9)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.17.0 ([#1026](https://www.github.com/googleapis/java-bigquery/issues/1026)) ([12e2c38](https://www.github.com/googleapis/java-bigquery/commit/12e2c382f6749c3baa54119e404725eea58da907)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10206d583efe..68be660b97d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.126.3](https://www.github.com/googleapis/java-bigquery/compare/v1.126.2...v1.126.3) (2020-12-15) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.19.1 ([#1025](https://www.github.com/googleapis/java-bigquery/issues/1025)) ([1c6e90d](https://www.github.com/googleapis/java-bigquery/commit/1c6e90d9e2fe13d99ab7fe1c9999c6050371a5d9)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.17.0 ([#1026](https://www.github.com/googleapis/java-bigquery/issues/1026)) ([12e2c38](https://www.github.com/googleapis/java-bigquery/commit/12e2c382f6749c3baa54119e404725eea58da907)) + ### [1.126.2](https://www.github.com/googleapis/java-bigquery/compare/v1.126.1...v1.126.2) (2020-12-14) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f7f747077464..2726571119f1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.3-SNAPSHOT + 1.126.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 50a93a2505c6..290a05bd9aa0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.3-SNAPSHOT + 1.126.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.3-SNAPSHOT + 1.126.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index efb301561625..f99a11bcb859 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.3-SNAPSHOT + 1.126.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.3-SNAPSHOT + 1.126.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9a7a4a0a1c9a..6dff4b7abc51 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.3-SNAPSHOT + 1.126.3 diff --git a/versions.txt b/versions.txt index 6059884e83da..42df9680e169 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.2:1.126.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.126.3:1.126.3 \ No newline at end of file From 46708f73bc7f112b2cf3bf673d38188035b589bd Mon Sep 17 00:00:00 2001 From: Brian McCutchon <8671821+bmccutchon@users.noreply.github.com> Date: Tue, 15 Dec 2020 15:44:01 -0600 Subject: [PATCH 1052/3441] chore: add env var for changing cloud-samples-data bucket (#1021) * Add env var for changing cloud-samples-data bucket * Change line breaking per suggestion Co-authored-by: yoshi-code-bot <70984784+yoshi-code-bot@users.noreply.github.com> * Use Guava Optional instead of Java 8 Optional This allows the tests to compile and run under Java 7. Co-authored-by: yoshi-code-bot <70984784+yoshi-code-bot@users.noreply.github.com> --- .../google/cloud/bigquery/it/ITBigQueryTest.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 155de03662e1..b15e59f5e436 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -102,6 +102,7 @@ import com.google.cloud.storage.BucketInfo; import com.google.cloud.storage.Storage; import com.google.cloud.storage.testing.RemoteStorageHelper; +import com.google.common.base.Optional; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -148,6 +149,8 @@ public class ITBigQueryTest { private static final String ROUTINE_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); private static final String RANDOM_ID = UUID.randomUUID().toString().substring(0, 8); + private static final String CLOUD_SAMPLES_DATA = + Optional.fromNullable(System.getenv("CLOUD_SAMPLES_DATA_BUCKET")).or("cloud-samples-data"); private static final Map LABELS = ImmutableMap.of( "example-label1", "example-value1", @@ -1707,9 +1710,10 @@ public void testQueryCaseInsensitiveSchemaFieldByGetName() throws InterruptedExc @Test public void testQueryExternalHivePartitioningOptionAutoLayout() throws InterruptedException { String tableName = "test_queryexternalhivepartition_autolayout_table"; - String sourceUri = "gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout/*"; + String sourceUri = + "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/hive-partitioning-samples/autolayout/*"; String sourceUriPrefix = - "gs://cloud-samples-data/bigquery/hive-partitioning-samples/autolayout/"; + "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/hive-partitioning-samples/autolayout/"; HivePartitioningOptions hivePartitioningOptions = HivePartitioningOptions.newBuilder() .setMode("AUTO") @@ -1737,9 +1741,12 @@ public void testQueryExternalHivePartitioningOptionAutoLayout() throws Interrupt @Test public void testQueryExternalHivePartitioningOptionCustomLayout() throws InterruptedException { String tableName = "test_queryexternalhivepartition_customlayout_table"; - String sourceUri = "gs://cloud-samples-data/bigquery/hive-partitioning-samples/customlayout/*"; + String sourceUri = + "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/hive-partitioning-samples/customlayout/*"; String sourceUriPrefix = - "gs://cloud-samples-data/bigquery/hive-partitioning-samples/customlayout/{pkey:STRING}/"; + "gs://" + + CLOUD_SAMPLES_DATA + + "/bigquery/hive-partitioning-samples/customlayout/{pkey:STRING}/"; HivePartitioningOptions hivePartitioningOptions = HivePartitioningOptions.newBuilder() .setMode("CUSTOM") From 4a4e15b8949025a32585b7c033f9fbdbeb712725 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 15 Dec 2020 21:56:05 +0000 Subject: [PATCH 1053/3441] chore: release 1.126.4-SNAPSHOT (#1028) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2726571119f1..5188de561c88 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.3 + 1.126.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 290a05bd9aa0..3ac1153ca331 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.3 + 1.126.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.3 + 1.126.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f99a11bcb859..2751c153629e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.3 + 1.126.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.3 + 1.126.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6dff4b7abc51..0fb9d9967bd7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.3 + 1.126.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 42df9680e169..6c28c7272a5a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.3:1.126.3 \ No newline at end of file +google-cloud-bigquery:1.126.3:1.126.4-SNAPSHOT \ No newline at end of file From 24b5872ef38cff4697e2c5edd96f48d4979e0021 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 15 Dec 2020 14:10:10 -0800 Subject: [PATCH 1054/3441] chore: regenerate README (#1029) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-12-15 21:58:23,991 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2020-12-15 21:58:25,041 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/f33e97aa-0608-41e2-a14e-bc215d94739f/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 9fa99b0e2fef..3ccf500ec95b 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "1999950da0e784b72c4dbe749ceb56d750cea1b3" + "sha": "4a4e15b8949025a32585b7c033f9fbdbeb712725" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "352f25621c28d2fa0784984ea0ed5ea697aa1525" + "sha": "996775eca5fd934edac3c2ae34b80ff0395b1717" } } ] diff --git a/README.md b/README.md index c545417e2dd9..62eac38c2c17 100644 --- a/README.md +++ b/README.md @@ -47,11 +47,11 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.126.1' +compile 'com.google.cloud:google-cloud-bigquery:1.126.3' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.3" ``` ## Authentication From 2973b909a2c537ae0a493eee31664f9da686de43 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 15 Dec 2020 23:22:05 +0100 Subject: [PATCH 1055/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.6 (#1030) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | patch | `1.0.5` -> `1.0.6` | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v1.0.6`](https://togithub.com/googleapis/java-bigqueryconnection/blob/master/CHANGELOG.md#​106-httpswwwgithubcomgoogleapisjava-bigqueryconnectioncomparev105v106-2020-12-15) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v1.0.5...v1.0.6)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e166db7c7867..ce8b5c0695a4 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.5 + 1.0.6 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0fb9d9967bd7..f9dd097b4dbd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.5 + 1.0.6 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 07fc65376939..1b2efc4762fd 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.5 + 1.0.6 test From 89062dfc8065f1963126ade406efe3d58113de37 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 16 Dec 2020 01:22:04 +0100 Subject: [PATCH 1056/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v16.2.0 (#1031) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | minor | `16.1.0` -> `16.2.0` | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 1b2efc4762fd..cf89d2e253a6 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 16.1.0 + 16.2.0 pom import From 451a7b4d03c414b1aa237b75a46059e10fc0ec20 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 15 Dec 2020 16:36:06 -0800 Subject: [PATCH 1057/3441] chore: regenerate README (#1033) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-12-16 00:24:17,956 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2020-12-16 00:24:19,010 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/fb053583-52c8-4332-88da-9ce7594febd9/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 3ccf500ec95b..7c2c7fb41aeb 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "4a4e15b8949025a32585b7c033f9fbdbeb712725" + "sha": "89062dfc8065f1963126ade406efe3d58113de37" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "996775eca5fd934edac3c2ae34b80ff0395b1717" + "sha": "3f67ceece7e797a5736a25488aae35405649b90b" } } ] diff --git a/README.md b/README.md index 62eac38c2c17..083fcadf9851 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 16.1.0 + 16.2.0 pom import From c5b08bb167c302a6090ef12a6be2921cf1da4ede Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 16 Dec 2020 08:42:02 -0800 Subject: [PATCH 1058/3441] ci(java): ignore bot users for generate-files-bot (#1034) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/4111c5f4-24d7-4653-8efb-3dcc7e0c712a/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/3f67ceece7e797a5736a25488aae35405649b90b --- .github/generated-files-bot.yml | 4 ++++ synth.metadata | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/generated-files-bot.yml b/.github/generated-files-bot.yml index 20f3acc28172..47c2ba132e01 100644 --- a/.github/generated-files-bot.yml +++ b/.github/generated-files-bot.yml @@ -5,3 +5,7 @@ externalManifests: - type: json file: '.github/readme/synth.metadata/synth.metadata' jsonpath: '$.generatedFiles[*]' +ignoreAuthors: +- 'renovate-bot' +- 'yoshi-automation' +- 'release-please[bot]' diff --git a/synth.metadata b/synth.metadata index eb2e7163e36a..bf92e56f00b4 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "6ddd5994127d69fd97083752c929a800cd4bbaec" + "sha": "451a7b4d03c414b1aa237b75a46059e10fc0ec20" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5d11bd2888c38ce1fb6fa6bf25494a4219a73928" + "sha": "3f67ceece7e797a5736a25488aae35405649b90b" } } ], From 82c8dab9832f06c9ed44869769b98846a39eeb6a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 16 Dec 2020 17:42:08 +0100 Subject: [PATCH 1059/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.126.3 (#1032) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ce8b5c0695a4..7a3c6042592f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.126.1 + 1.126.3 From 50f0aaabeb032679936905a13f801a98a3adaac3 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 16 Dec 2020 09:16:02 -0800 Subject: [PATCH 1060/3441] chore: regenerate README (#1036) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2020-12-16 16:44:12,953 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2020-12-16 16:44:13,953 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/93204a0f-7b79-461c-95ab-15b8bf972713/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 7c2c7fb41aeb..32d3d7929831 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "89062dfc8065f1963126ade406efe3d58113de37" + "sha": "82c8dab9832f06c9ed44869769b98846a39eeb6a" } }, { diff --git a/README.md b/README.md index 083fcadf9851..4e3c2b2a5418 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.126.1 + 1.126.3 ``` From 73a32f54baff3ed90172bb7ba7ca26b63e56a879 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 16 Dec 2020 17:11:32 -0500 Subject: [PATCH 1061/3441] samples: fix sample (#1037) * docs(samples): fix sample Fixes: b/175010601 * nit --- .../src/main/java/com/example/bigquery/DatasetExists.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java b/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java index 0b644083ea65..1475845c4007 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java +++ b/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java @@ -39,13 +39,13 @@ public static void datasetExists(String datasetName) { BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); Dataset dataset = bigquery.getDataset(DatasetId.of(datasetName)); - if (dataset.exists()) { - System.out.println("Dataset already exist"); + if (dataset != null) { + System.out.println("Dataset already exists."); } else { - System.out.println("Dataset not found"); + System.out.println("Dataset not found."); } } catch (BigQueryException e) { - System.out.println("Dataset not found. \n" + e.toString()); + System.out.println("Something went wrong. \n" + e.toString()); } } } From 9945ca699eb7e439da387c40ac338a473dd9cb81 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 29 Dec 2020 14:37:50 -0800 Subject: [PATCH 1062/3441] chore(java): remove formatter action Source-Author: Jeff Ching Source-Date: Tue Dec 29 10:50:17 2020 -0800 Source-Repo: googleapis/synthtool Source-Sha: 6133907dbb3ddab204a17a15d5c53ec0aae9b033 Source-Link: https://github.com/googleapis/synthtool/commit/6133907dbb3ddab204a17a15d5c53ec0aae9b033 --- .github/workflows/formatting.yaml | 25 ------------------------- synth.metadata | 5 ++--- 2 files changed, 2 insertions(+), 28 deletions(-) delete mode 100644 .github/workflows/formatting.yaml diff --git a/.github/workflows/formatting.yaml b/.github/workflows/formatting.yaml deleted file mode 100644 index 6844407b4d97..000000000000 --- a/.github/workflows/formatting.yaml +++ /dev/null @@ -1,25 +0,0 @@ -on: - pull_request_target: - types: [opened, synchronize] - branches: - - master -name: format -jobs: - format-code: - runs-on: ubuntu-latest - env: - ACCESS_TOKEN: ${{ secrets.YOSHI_CODE_BOT_TOKEN }} - steps: - - uses: actions/checkout@v2 - with: - ref: ${{github.event.pull_request.head.ref}} - repository: ${{github.event.pull_request.head.repo.full_name}} - - uses: actions/setup-java@v1 - with: - java-version: 11 - - run: "mvn com.coveo:fmt-maven-plugin:format" - - uses: googleapis/code-suggester@v1 - with: - command: review - pull_number: ${{ github.event.pull_request.number }} - git_dir: '.' diff --git a/synth.metadata b/synth.metadata index bf92e56f00b4..deef652b8e8e 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "451a7b4d03c414b1aa237b75a46059e10fc0ec20" + "sha": "73a32f54baff3ed90172bb7ba7ca26b63e56a879" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "3f67ceece7e797a5736a25488aae35405649b90b" + "sha": "6133907dbb3ddab204a17a15d5c53ec0aae9b033" } } ], @@ -30,7 +30,6 @@ ".github/workflows/approve-readme.yaml", ".github/workflows/auto-release.yaml", ".github/workflows/ci.yaml", - ".github/workflows/formatting.yaml", ".github/workflows/samples.yaml", ".kokoro/build.bat", ".kokoro/build.sh", From 239975b318e513c93fdf42a2699bb019089459ed Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 6 Jan 2021 18:56:09 +0100 Subject: [PATCH 1063/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.19.2 (#1035) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7a3c6042592f..2ecc1f2f5ea7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.19.1 + 1.19.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f9dd097b4dbd..e22bc47fa6e4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.19.1 + 1.19.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index cf89d2e253a6..c3ec5258496c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.19.1 + 1.19.2 test From c3e934809eddfdf6e191f50acf97e8670a80865b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 6 Jan 2021 18:56:22 +0100 Subject: [PATCH 1064/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.8 (#1046) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2751c153629e..193e3a0eb647 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.6 + 1.113.8 test From b06719e6f1a4b891c1d13461293fbe18c5036b0b Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 6 Jan 2021 11:27:59 -0800 Subject: [PATCH 1065/3441] chore: regenerate README (#1048) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 9 ++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 32d3d7929831..29cd54aa70c6 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "82c8dab9832f06c9ed44869769b98846a39eeb6a" + "sha": "c3e934809eddfdf6e191f50acf97e8670a80865b" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "3f67ceece7e797a5736a25488aae35405649b90b" + "sha": "a3e990f3545dc8ccd384a75d20ce9cb185ca6a28" } } ] diff --git a/README.md b/README.md index 4e3c2b2a5418..65cadf36e8ef 100644 --- a/README.md +++ b/README.md @@ -45,10 +45,17 @@ If you are using Maven without BOM, add this to your dependencies: ``` -If you are using Gradle, add this to your dependencies +If you are using Gradle 5.x or later, add this to your dependencies +```Groovy +implementation platform('com.google.cloud:libraries-bom:16.2.0') + +compile 'com.google.cloud:google-cloud-bigquery' +``` +If you are using Gradle without BOM, add this to your dependencies ```Groovy compile 'com.google.cloud:google-cloud-bigquery:1.126.3' ``` + If you are using SBT, add this to your dependencies ```Scala libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.3" From 66fe6396f56dff76143b0eae78409fe1b3f81c69 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 7 Jan 2021 17:17:39 +0100 Subject: [PATCH 1066/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v16.2.1 (#1049) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c3ec5258496c..846c59b352a3 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 16.2.0 + 16.2.1 pom import From 36404f285615e07bd4f2551e74f4a8ffd2b314a7 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 7 Jan 2021 08:36:07 -0800 Subject: [PATCH 1067/3441] chore: regenerate README (#1050) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-01-07 16:20:01,589 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-01-07 16:20:02,716 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/11a45d83-8172-4cc5-8fd7-402a6a5ec530/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 29cd54aa70c6..2acea9beb4a4 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "c3e934809eddfdf6e191f50acf97e8670a80865b" + "sha": "66fe6396f56dff76143b0eae78409fe1b3f81c69" } }, { diff --git a/README.md b/README.md index 65cadf36e8ef..5cb89cfcaa9f 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 16.2.0 + 16.2.1 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:16.2.0') +implementation platform('com.google.cloud:libraries-bom:16.2.1') compile 'com.google.cloud:google-cloud-bigquery' ``` From 8dd66e69c78febb00aa2f8f9028817f6d4735e79 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 11 Jan 2021 17:14:10 +0100 Subject: [PATCH 1068/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.31.4 (#1055) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2ecc1f2f5ea7..7fa3eeb79829 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.31.2 + 1.31.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e22bc47fa6e4..bbff239c472a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.31.2 + 1.31.4 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 846c59b352a3..87279fadb8fd 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -68,7 +68,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.31.2 + 1.31.4 From 66f3168036cf7d9df324400c99a30f0f7599f7d8 Mon Sep 17 00:00:00 2001 From: Dinesh Raj Date: Mon, 11 Jan 2021 21:54:03 +0530 Subject: [PATCH 1069/3441] samples: Fixes #1051 (#1053) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Passed updated view definition to bigquery.update() method. Fixes #1051 ☕️ --- .../src/main/java/com/example/bigquery/UpdateViewQuery.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java index 03b5d2c977e6..e30241059c2f 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java @@ -48,10 +48,10 @@ public static void updateViewQuery(String datasetName, String viewName, String q // Update view query ViewDefinition viewDefinition = viewMetadata.getDefinition(); - viewDefinition.toBuilder().setQuery(query).build(); + ViewDefinition updatedViewDefinition = viewDefinition.toBuilder().setQuery(query).build(); // Set metadata - bigquery.update(viewMetadata.toBuilder().setDefinition(viewDefinition).build()); + bigquery.update(viewMetadata.toBuilder().setDefinition(updatedViewDefinition).build()); System.out.println("View query updated successfully"); } catch (BigQueryException e) { From be89a1bffcd59d0b171dde86f118714a4ba31d08 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 12 Jan 2021 17:46:25 +0100 Subject: [PATCH 1070/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.17.1 (#1056) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 193e3a0eb647..5f546f2da825 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20201030-1.31.0 - 0.17.0 + 0.17.1
    From 2b502adc22a27c133c6db477567c66a315831094 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 12 Jan 2021 16:58:03 +0000 Subject: [PATCH 1071/3441] chore: release 1.126.4 (#1047) :robot: I have created a release \*beep\* \*boop\* --- ### [1.126.4](https://www.github.com/googleapis/java-bigquery/compare/v1.126.3...v1.126.4) (2021-01-12) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.19.2 ([#1035](https://www.github.com/googleapis/java-bigquery/issues/1035)) ([239975b](https://www.github.com/googleapis/java-bigquery/commit/239975b318e513c93fdf42a2699bb019089459ed)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.17.1 ([#1056](https://www.github.com/googleapis/java-bigquery/issues/1056)) ([be89a1b](https://www.github.com/googleapis/java-bigquery/commit/be89a1bffcd59d0b171dde86f118714a4ba31d08)) * update dependency com.google.cloud:google-cloud-storage to v1.113.8 ([#1046](https://www.github.com/googleapis/java-bigquery/issues/1046)) ([c3e9348](https://www.github.com/googleapis/java-bigquery/commit/c3e934809eddfdf6e191f50acf97e8670a80865b)) * update dependency com.google.oauth-client:google-oauth-client-jetty to v1.31.4 ([#1055](https://www.github.com/googleapis/java-bigquery/issues/1055)) ([8dd66e6](https://www.github.com/googleapis/java-bigquery/commit/8dd66e69c78febb00aa2f8f9028817f6d4735e79)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 10 ++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68be660b97d8..c3c75ebcbffc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +### [1.126.4](https://www.github.com/googleapis/java-bigquery/compare/v1.126.3...v1.126.4) (2021-01-12) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.19.2 ([#1035](https://www.github.com/googleapis/java-bigquery/issues/1035)) ([239975b](https://www.github.com/googleapis/java-bigquery/commit/239975b318e513c93fdf42a2699bb019089459ed)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.17.1 ([#1056](https://www.github.com/googleapis/java-bigquery/issues/1056)) ([be89a1b](https://www.github.com/googleapis/java-bigquery/commit/be89a1bffcd59d0b171dde86f118714a4ba31d08)) +* update dependency com.google.cloud:google-cloud-storage to v1.113.8 ([#1046](https://www.github.com/googleapis/java-bigquery/issues/1046)) ([c3e9348](https://www.github.com/googleapis/java-bigquery/commit/c3e934809eddfdf6e191f50acf97e8670a80865b)) +* update dependency com.google.oauth-client:google-oauth-client-jetty to v1.31.4 ([#1055](https://www.github.com/googleapis/java-bigquery/issues/1055)) ([8dd66e6](https://www.github.com/googleapis/java-bigquery/commit/8dd66e69c78febb00aa2f8f9028817f6d4735e79)) + ### [1.126.3](https://www.github.com/googleapis/java-bigquery/compare/v1.126.2...v1.126.3) (2020-12-15) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5188de561c88..f8261d1e262b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.4-SNAPSHOT + 1.126.4 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3ac1153ca331..3a8316c82fd9 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.4-SNAPSHOT + 1.126.4 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.4-SNAPSHOT + 1.126.4 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5f546f2da825..345b27148419 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.4-SNAPSHOT + 1.126.4 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.4-SNAPSHOT + 1.126.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bbff239c472a..040704e6b5e8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.4-SNAPSHOT + 1.126.4 diff --git a/versions.txt b/versions.txt index 6c28c7272a5a..11efb5cf32d3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.3:1.126.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.126.4:1.126.4 \ No newline at end of file From 1040efcfd69b28e13783fbe74a283ed755257840 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 12 Jan 2021 21:05:28 +0100 Subject: [PATCH 1072/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.126.4 (#1057) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7fa3eeb79829..2addd7d86964 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.126.3 + 1.126.4 From fcd79be52fea2df5f026d027bcc57d697d3600d9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 12 Jan 2021 21:11:11 +0100 Subject: [PATCH 1073/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.7 (#1058) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2addd7d86964..503dbca6065a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.6 + 1.0.7 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 040704e6b5e8..6ccc928a2886 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.6 + 1.0.7 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 87279fadb8fd..1caa03b872cf 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.6 + 1.0.7 test From c665e6c57bae112b853abae1c4528e43f80430f3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 12 Jan 2021 20:22:04 +0000 Subject: [PATCH 1074/3441] chore: release 1.126.5-SNAPSHOT (#1059) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f8261d1e262b..f4c25e6d15ab 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.4 + 1.126.5-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3a8316c82fd9..15aad4cdabb0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.4 + 1.126.5-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.4 + 1.126.5-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 345b27148419..93bd6ab34830 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.4 + 1.126.5-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.4 + 1.126.5-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6ccc928a2886..a24454d0f13b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.4 + 1.126.5-SNAPSHOT diff --git a/versions.txt b/versions.txt index 11efb5cf32d3..c75a85dc7f68 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.4:1.126.4 \ No newline at end of file +google-cloud-bigquery:1.126.4:1.126.5-SNAPSHOT \ No newline at end of file From bd741713d1c5183a429684ff4b38d03e1d4c5b70 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 12 Jan 2021 12:26:05 -0800 Subject: [PATCH 1075/3441] chore: regenerate README (#1060) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-01-12 20:13:31,657 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-01-12 20:13:32,655 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/207deec7-8fbf-4ce2-b15c-0c4cbc836b16/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 2acea9beb4a4..ab208e9b6ef9 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "66fe6396f56dff76143b0eae78409fe1b3f81c69" + "sha": "fcd79be52fea2df5f026d027bcc57d697d3600d9" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "a3e990f3545dc8ccd384a75d20ce9cb185ca6a28" + "sha": "16ec872dd898d7de6e1822badfac32484b5d9031" } } ] diff --git a/README.md b/README.md index 5cb89cfcaa9f..b0c56aaeb808 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.126.3 + 1.126.4 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.126.3' +compile 'com.google.cloud:google-cloud-bigquery:1.126.4' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.4" ``` ## Authentication From 0644f408d4d0a80c54e78aeef8169b0e18aa8256 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 13 Jan 2021 21:57:41 +0100 Subject: [PATCH 1076/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.9 (#1061) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 93bd6ab34830..dc99a1e27ad9 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.8 + 1.113.9 test From b9fe5a7eda38945abf58f7618746687503bf0102 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 13 Jan 2021 21:10:02 +0000 Subject: [PATCH 1077/3441] chore: release 1.126.5 (#1062) :robot: I have created a release \*beep\* \*boop\* --- ### [1.126.5](https://www.github.com/googleapis/java-bigquery/compare/v1.126.4...v1.126.5) (2021-01-13) ### Dependencies * update dependency com.google.cloud:google-cloud-storage to v1.113.9 ([#1061](https://www.github.com/googleapis/java-bigquery/issues/1061)) ([0644f40](https://www.github.com/googleapis/java-bigquery/commit/0644f408d4d0a80c54e78aeef8169b0e18aa8256)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3c75ebcbffc..a44645749876 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.126.5](https://www.github.com/googleapis/java-bigquery/compare/v1.126.4...v1.126.5) (2021-01-13) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v1.113.9 ([#1061](https://www.github.com/googleapis/java-bigquery/issues/1061)) ([0644f40](https://www.github.com/googleapis/java-bigquery/commit/0644f408d4d0a80c54e78aeef8169b0e18aa8256)) + ### [1.126.4](https://www.github.com/googleapis/java-bigquery/compare/v1.126.3...v1.126.4) (2021-01-12) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f4c25e6d15ab..4c5afd836afb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.5-SNAPSHOT + 1.126.5 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 15aad4cdabb0..99db108b5e15 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.5-SNAPSHOT + 1.126.5 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.5-SNAPSHOT + 1.126.5 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index dc99a1e27ad9..05628f033284 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.5-SNAPSHOT + 1.126.5 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.5-SNAPSHOT + 1.126.5 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a24454d0f13b..50f9583580cf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.5-SNAPSHOT + 1.126.5 diff --git a/versions.txt b/versions.txt index c75a85dc7f68..4359b32fc524 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.4:1.126.5-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.126.5:1.126.5 \ No newline at end of file From b0293b9c76b3071116e74ecfd854541dfd19abfe Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 14 Jan 2021 00:16:45 +0100 Subject: [PATCH 1078/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.126.5 (#1063) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 503dbca6065a..59a188b5ba65 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.126.4 + 1.126.5 From 0b7925ef311808293f2ed9969a71414520fdd8d3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 14 Jan 2021 00:17:06 +0100 Subject: [PATCH 1079/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.18.0 (#1064) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 05628f033284..c5b14c2d51d2 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20201030-1.31.0 - 0.17.1 + 0.18.0 From 5f382396989e29d974899bc1355479bc53deec7e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 13 Jan 2021 15:34:03 -0800 Subject: [PATCH 1080/3441] chore: regenerate README (#1066) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-01-13 23:19:02,723 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-01-13 23:19:03,671 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/13513da8-682d-4738-ac33-86d9fc19a225/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index ab208e9b6ef9..0eef1f856725 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "fcd79be52fea2df5f026d027bcc57d697d3600d9" + "sha": "0b7925ef311808293f2ed9969a71414520fdd8d3" } }, { diff --git a/README.md b/README.md index b0c56aaeb808..bebfe14285c2 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.126.4 + 1.126.5 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.126.4' +compile 'com.google.cloud:google-cloud-bigquery:1.126.5' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.4" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.5" ``` ## Authentication From b52000586cb8e4bca51177d228ff34a179cda13f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 13 Jan 2021 23:44:06 +0000 Subject: [PATCH 1081/3441] chore: release 1.126.6-SNAPSHOT (#1065) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4c5afd836afb..db2644442a57 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.5 + 1.126.6-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 99db108b5e15..668bde21018f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.5 + 1.126.6-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.5 + 1.126.6-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c5b14c2d51d2..59a6e8f4f085 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.5 + 1.126.6-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.5 + 1.126.6-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 50f9583580cf..024d01702ec2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.5 + 1.126.6-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4359b32fc524..a22fe4649eb9 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.5:1.126.5 \ No newline at end of file +google-cloud-bigquery:1.126.5:1.126.6-SNAPSHOT \ No newline at end of file From 38ae1db2922678ba6b002b235d1b98eee2d4fd6c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 14 Jan 2021 00:36:03 +0000 Subject: [PATCH 1082/3441] chore: release 1.126.6 (#1067) :robot: I have created a release \*beep\* \*boop\* --- ### [1.126.6](https://www.github.com/googleapis/java-bigquery/compare/v1.126.5...v1.126.6) (2021-01-13) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.18.0 ([#1064](https://www.github.com/googleapis/java-bigquery/issues/1064)) ([0b7925e](https://www.github.com/googleapis/java-bigquery/commit/0b7925ef311808293f2ed9969a71414520fdd8d3)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a44645749876..6a543f80b0d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.126.6](https://www.github.com/googleapis/java-bigquery/compare/v1.126.5...v1.126.6) (2021-01-13) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.18.0 ([#1064](https://www.github.com/googleapis/java-bigquery/issues/1064)) ([0b7925e](https://www.github.com/googleapis/java-bigquery/commit/0b7925ef311808293f2ed9969a71414520fdd8d3)) + ### [1.126.5](https://www.github.com/googleapis/java-bigquery/compare/v1.126.4...v1.126.5) (2021-01-13) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index db2644442a57..29d722c329b0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.6-SNAPSHOT + 1.126.6 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 668bde21018f..91b36baf9b73 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.6-SNAPSHOT + 1.126.6 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.6-SNAPSHOT + 1.126.6 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 59a6e8f4f085..9ea07288d971 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.6-SNAPSHOT + 1.126.6 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.6-SNAPSHOT + 1.126.6 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 024d01702ec2..3edc5cc4ded1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.6-SNAPSHOT + 1.126.6 diff --git a/versions.txt b/versions.txt index a22fe4649eb9..2fe6173a9006 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.5:1.126.6-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.126.6:1.126.6 \ No newline at end of file From 5e3fa441bc759ad822ea567ea8f8eaa11843f812 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 14 Jan 2021 03:16:04 +0100 Subject: [PATCH 1083/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.126.6 (#1068) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | patch | `1.126.5` -> `1.126.6` | --- ### Release Notes
    googleapis/java-bigquery ### [`v1.126.6`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​11266-httpswwwgithubcomgoogleapisjava-bigquerycomparev11265v11266-2021-01-13) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.126.5...v1.126.6)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 59a188b5ba65..fc5f03b8d856 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.126.5 + 1.126.6 From 80ae7db24370827d9154c29973d21998fd898edd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 14 Jan 2021 03:18:05 +0100 Subject: [PATCH 1084/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.8 (#1069) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | patch | `1.0.7` -> `1.0.8` | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v1.0.8`](https://togithub.com/googleapis/java-bigqueryconnection/blob/master/CHANGELOG.md#​108-httpswwwgithubcomgoogleapisjava-bigqueryconnectioncomparev107v108-2021-01-14) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v1.0.7...v1.0.8)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fc5f03b8d856..b4449c2912c9 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.7 + 1.0.8 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3edc5cc4ded1..0229aad7fa92 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.7 + 1.0.8 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 1caa03b872cf..e6a3672e9871 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.7 + 1.0.8 test From 52f4195b9bb1eaffc370fef9a17b5705f6896fcc Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 14 Jan 2021 02:28:05 +0000 Subject: [PATCH 1085/3441] chore: release 1.126.7-SNAPSHOT (#1070) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 29d722c329b0..175c26688243 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.6 + 1.126.7-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 91b36baf9b73..c6c386ff704b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.6 + 1.126.7-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.6 + 1.126.7-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9ea07288d971..201b11af3069 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.6 + 1.126.7-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.6 + 1.126.7-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0229aad7fa92..b3efbd95c2cb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.6 + 1.126.7-SNAPSHOT diff --git a/versions.txt b/versions.txt index 2fe6173a9006..2e19c5277405 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.6:1.126.6 \ No newline at end of file +google-cloud-bigquery:1.126.6:1.126.7-SNAPSHOT \ No newline at end of file From a7e3b84dfa364b4af3fcd27a2be24a59d0c04b21 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 13 Jan 2021 18:30:05 -0800 Subject: [PATCH 1086/3441] chore: regenerate README (#1071) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-01-14 02:18:17,341 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-01-14 02:18:18,373 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/df9561c7-92ae-4905-b49c-6935abd43329/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 0eef1f856725..94d4305c1285 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "0b7925ef311808293f2ed9969a71414520fdd8d3" + "sha": "80ae7db24370827d9154c29973d21998fd898edd" } }, { diff --git a/README.md b/README.md index bebfe14285c2..2540d3d5c5c1 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.126.5 + 1.126.6 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.126.5' +compile 'com.google.cloud:google-cloud-bigquery:1.126.6' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.5" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.6" ``` ## Authentication From b8f10d4e70f0bf7bc1b5f0be70bddd567b1f94b7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 15 Jan 2021 00:44:50 +0100 Subject: [PATCH 1087/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v16.3.0 (#1072) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e6a3672e9871..1f3816c99a60 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 16.2.1 + 16.3.0 pom import From 5df9f9112f4992d2e6779a72b1192b081d12f56c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 14 Jan 2021 15:58:02 -0800 Subject: [PATCH 1088/3441] chore: regenerate README (#1073) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-01-14 23:47:09,013 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-01-14 23:47:10,080 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/81f1af4b-9473-4a25-b472-6ba354344911/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 94d4305c1285..271b372da4df 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "80ae7db24370827d9154c29973d21998fd898edd" + "sha": "b8f10d4e70f0bf7bc1b5f0be70bddd567b1f94b7" } }, { diff --git a/README.md b/README.md index 2540d3d5c5c1..0204c61baefd 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 16.2.1 + 16.3.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:16.2.1') +implementation platform('com.google.cloud:libraries-bom:16.3.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From 22882a0f4a19cf998d10c200ec4992a442c0b8c3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 26 Jan 2021 19:30:18 +0100 Subject: [PATCH 1089/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.10.0 (#1077) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `0.9.4` -> `0.10.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.10.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.10.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.10.0/compatibility-slim/0.9.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.10.0/confidence-slim/0.9.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v0.10.0`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​0100-httpswwwgithubcomgoogleapisjava-shared-configcomparev094v0100-2021-01-21) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v0.9.4...v0.10.0) ##### Features - adding pom profile to generate docfx yml from javadoc ([#​213](https://www.github.com/googleapis/java-shared-config/issues/213)) ([3527c47](https://www.github.com/googleapis/java-shared-config/commit/3527c47ff413d415f87fccca84358da2c837841d)) ##### Dependencies - update dependency com.puppycrawl.tools:checkstyle to v8.39 ([#​209](https://www.github.com/googleapis/java-shared-config/issues/209)) ([fb53922](https://www.github.com/googleapis/java-shared-config/commit/fb539226d407001822a56c7fff792922cd85d1fe)) ##### [0.9.4](https://www.github.com/googleapis/java-shared-config/compare/v0.9.3...v0.9.4) (2020-10-21) ##### Documentation - Latest for Cloud-RAD ([#​199](https://www.github.com/googleapis/java-shared-config/issues/199)) ([34712af](https://www.github.com/googleapis/java-shared-config/commit/34712afac58aa0d148f0843026b3ff770ee030c2)) ##### [0.9.3](https://www.github.com/googleapis/java-shared-config/compare/v0.9.2...v0.9.3) (2020-10-15) ##### Dependencies - update auto-value-annotation.version to v1.7.4 ([#​157](https://www.github.com/googleapis/java-shared-config/issues/157)) ([5d7e394](https://www.github.com/googleapis/java-shared-config/commit/5d7e394d964010a3e32af492cec4be85aabc3ebf)) ##### [0.9.2](https://www.github.com/googleapis/java-shared-config/compare/v0.9.1...v0.9.2) (2020-07-02) ##### Dependencies - update dependency org.apache.maven.surefire:surefire-junit47 to v3.0.0-M5 ([#​180](https://www.github.com/googleapis/java-shared-config/issues/180)) ([802d9c5](https://www.github.com/googleapis/java-shared-config/commit/802d9c528d34b386face69ca75a014ce57fc3ac1)) ##### [0.9.1](https://www.github.com/googleapis/java-shared-config/compare/v0.9.0...v0.9.1) (2020-07-01) ##### Bug Fixes - maven-dependency-plugin configuration breaking downstream config ([#​174](https://www.github.com/googleapis/java-shared-config/issues/174)) ([507217f](https://www.github.com/googleapis/java-shared-config/commit/507217fe509cd4f16eb50c8075ab43229238e08d)) ##### Documentation - change Devsite output path to /java/docs/reference ([#​176](https://www.github.com/googleapis/java-shared-config/issues/176)) ([8b98af5](https://www.github.com/googleapis/java-shared-config/commit/8b98af54bf503d97bb86b6d02a5c4301b39384e1))
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 201b11af3069..c2f9fe090b52 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.9.4 + 0.10.0 From 3560cf02b0433bc9c24081a2cc07fa7df1b0744e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 26 Jan 2021 11:14:04 -0800 Subject: [PATCH 1090/3441] chore: adding docfx doclet resource (#1078) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/0682260c-cab8-4c72-936d-852570cd9d26/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/3816b080296d4d52975079fd26c110dd26ba25af --- .kokoro/release/publish_javadoc.cfg | 3 +++ synth.metadata | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.kokoro/release/publish_javadoc.cfg b/.kokoro/release/publish_javadoc.cfg index 853b2e4018d6..66eab3f52d7b 100644 --- a/.kokoro/release/publish_javadoc.cfg +++ b/.kokoro/release/publish_javadoc.cfg @@ -27,3 +27,6 @@ before_action { } } } + +# Downloads docfx doclet resource. This will be in ${KOKORO_GFILE_DIR}/ +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/docfx" \ No newline at end of file diff --git a/synth.metadata b/synth.metadata index deef652b8e8e..882a2a09cc94 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "73a32f54baff3ed90172bb7ba7ca26b63e56a879" + "sha": "5df9f9112f4992d2e6779a72b1192b081d12f56c" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "6133907dbb3ddab204a17a15d5c53ec0aae9b033" + "sha": "3816b080296d4d52975079fd26c110dd26ba25af" } } ], From 2890c80ee22755673ba18ba0a114076304a67cdb Mon Sep 17 00:00:00 2001 From: Justin Beckwith Date: Thu, 28 Jan 2021 22:16:26 -0800 Subject: [PATCH 1091/3441] build: migrate to flakybot (#1080) --- .kokoro/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 5365c12cf810..14466ba43901 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -110,8 +110,8 @@ bash .kokoro/coerce_logs.sh if [[ "${ENABLE_BUILD_COP}" == "true" ]] then - chmod +x ${KOKORO_GFILE_DIR}/linux_amd64/buildcop - ${KOKORO_GFILE_DIR}/linux_amd64/buildcop -repo=googleapis/java-bigquery + chmod +x ${KOKORO_GFILE_DIR}/linux_amd64/flakybot + ${KOKORO_GFILE_DIR}/linux_amd64/flakybot -repo=googleapis/java-bigquery fi echo "exiting with ${RETURN_CODE}" From 50bf7831d9a7fe40ae08894d50fd2c8ae974f05a Mon Sep 17 00:00:00 2001 From: Steffany Brown <30247553+steffnay@users.noreply.github.com> Date: Fri, 29 Jan 2021 10:10:22 -0800 Subject: [PATCH 1092/3441] docs(samples): Update region tag for create table external hive partitioning (#1079) * docs(samples): updates region tag and file name * docs(samples): updates region tag and file name * docs(samples): updates class name --- ...tions.java => CreateTableExternalHivePartitioned.java} | 8 +++++--- ...sIT.java => CreateTableExternalHivePartitionedIT.java} | 6 +++--- 2 files changed, 8 insertions(+), 6 deletions(-) rename samples/snippets/src/main/java/com/example/bigquery/{SetHivePartitioningOptions.java => CreateTableExternalHivePartitioned.java} (89%) rename samples/snippets/src/test/java/com/example/bigquery/{SetHivePartitioningOptionsIT.java => CreateTableExternalHivePartitionedIT.java} (93%) diff --git a/samples/snippets/src/main/java/com/example/bigquery/SetHivePartitioningOptions.java b/samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java similarity index 89% rename from samples/snippets/src/main/java/com/example/bigquery/SetHivePartitioningOptions.java rename to samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java index 0263c3905368..7f5f349a7604 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/SetHivePartitioningOptions.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java @@ -16,6 +16,7 @@ package com.example.bigquery; +// [START bigquery_create_table_external_hivepartitioned] // [START bigquery_set_hivepartitioningoptions] import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; @@ -27,7 +28,7 @@ import com.google.cloud.bigquery.TableInfo; // Sample to create external table using hive partitioning -public class SetHivePartitioningOptions { +public class CreateTableExternalHivePartitioned { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. @@ -36,10 +37,10 @@ public static void main(String[] args) { String sourceUri = "gs://cloud-samples-data/bigquery/hive-partitioning-samples/customlayout/*"; String sourceUriPrefix = "gs://cloud-samples-data/bigquery/hive-partitioning-samples/customlayout/{pkey:STRING}/"; - setHivePartitioningOptions(datasetName, tableName, sourceUriPrefix, sourceUri); + createTableExternalHivePartitioned(datasetName, tableName, sourceUriPrefix, sourceUri); } - public static void setHivePartitioningOptions( + public static void createTableExternalHivePartitioned( String datasetName, String tableName, String sourceUriPrefix, String sourceUri) { try { // Initialize client that will be used to send requests. This client only needs to be created @@ -68,3 +69,4 @@ public static void setHivePartitioningOptions( } } // [END bigquery_set_hivepartitioningoptions] +// [END bigquery_create_table_external_hivepartitioned] diff --git a/samples/snippets/src/test/java/com/example/bigquery/SetHivePartitioningOptionsIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateTableExternalHivePartitionedIT.java similarity index 93% rename from samples/snippets/src/test/java/com/example/bigquery/SetHivePartitioningOptionsIT.java rename to samples/snippets/src/test/java/com/example/bigquery/CreateTableExternalHivePartitionedIT.java index bc01e3861e9e..b460dec9b4c5 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/SetHivePartitioningOptionsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateTableExternalHivePartitionedIT.java @@ -29,7 +29,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class SetHivePartitioningOptionsIT { +public class CreateTableExternalHivePartitionedIT { private static final String ID = UUID.randomUUID().toString().substring(0, 8); private final Logger log = Logger.getLogger(this.getClass().getName()); @@ -74,11 +74,11 @@ public void tearDown() { } @Test - public void testSetHivePartitioningOptions() { + public void testCreateTableExternalHivePartitioned() { String sourceUri = "gs://cloud-samples-data/bigquery/hive-partitioning-samples/customlayout/*"; String sourceUriPrefix = "gs://cloud-samples-data/bigquery/hive-partitioning-samples/customlayout/{pkey:STRING}/"; - SetHivePartitioningOptions.setHivePartitioningOptions( + CreateTableExternalHivePartitioned.createTableExternalHivePartitioned( BIGQUERY_DATASET_NAME, tableName, sourceUriPrefix, sourceUri); assertThat(bout.toString()).contains("External table created using hivepartitioningoptions"); } From 242cce97d37a5e88d9bfa396f27db62c151e66b4 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 29 Jan 2021 10:32:02 -0800 Subject: [PATCH 1093/3441] chore: regenerate README (#1082) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-01-29 18:12:42,495 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-01-29 18:12:43,565 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/b95364d9-a2e4-426f-8691-963362f5aacb/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 271b372da4df..95b162ffa3e0 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b8f10d4e70f0bf7bc1b5f0be70bddd567b1f94b7" + "sha": "50bf7831d9a7fe40ae08894d50fd2c8ae974f05a" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "16ec872dd898d7de6e1822badfac32484b5d9031" + "sha": "d1bb9173100f62c0cfc8f3138b62241e7f47ca6a" } } ] diff --git a/README.md b/README.md index 0204c61baefd..3f898bcbe0fe 100644 --- a/README.md +++ b/README.md @@ -128,6 +128,7 @@ has instructions for running the samples. | Create Routine Ddl | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java) | | Create Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | | Create Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java) | +| Create Table External Hive Partitioned | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java) | | Create Table Without Schema | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | | Create View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | | Dataset Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | @@ -213,7 +214,6 @@ has instructions for running the samples. | Resource Clean Up | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java) | | Run Legacy Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | | Save Query To Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | -| Set Hive Partitioning Options | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SetHivePartitioningOptions.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SetHivePartitioningOptions.java) | | Simple App | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | | Simple Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | | Table Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | From 2c5715d0331a8302f27a201f730d1191e29c7ad6 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 2 Feb 2021 09:33:38 -0800 Subject: [PATCH 1094/3441] chore: regen common templates (#1084) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- .kokoro/build.sh | 4 ++-- synth.metadata | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 14466ba43901..5365c12cf810 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -110,8 +110,8 @@ bash .kokoro/coerce_logs.sh if [[ "${ENABLE_BUILD_COP}" == "true" ]] then - chmod +x ${KOKORO_GFILE_DIR}/linux_amd64/flakybot - ${KOKORO_GFILE_DIR}/linux_amd64/flakybot -repo=googleapis/java-bigquery + chmod +x ${KOKORO_GFILE_DIR}/linux_amd64/buildcop + ${KOKORO_GFILE_DIR}/linux_amd64/buildcop -repo=googleapis/java-bigquery fi echo "exiting with ${RETURN_CODE}" diff --git a/synth.metadata b/synth.metadata index 882a2a09cc94..5765f1abddeb 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "5df9f9112f4992d2e6779a72b1192b081d12f56c" + "sha": "242cce97d37a5e88d9bfa396f27db62c151e66b4" } }, { From 40e016bf0fc4a0944d8ffa7b01f9a8df7b891b81 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 2 Feb 2021 09:34:05 -0800 Subject: [PATCH 1095/3441] chore: regen common templates (#1085) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * build: migrate to flakybot Source-Author: Justin Beckwith Source-Date: Thu Jan 28 22:22:38 2021 -0800 Source-Repo: googleapis/synthtool Source-Sha: d1bb9173100f62c0cfc8f3138b62241e7f47ca6a Source-Link: https://github.com/googleapis/synthtool/commit/d1bb9173100f62c0cfc8f3138b62241e7f47ca6a * build(java): generate docfx yml on release * feat: generate docfx yml on release * fix: updates name variable * fix: remove non needed resource * fix: update date Source-Author: Emily Ball Source-Date: Mon Feb 1 15:24:59 2021 -0800 Source-Repo: googleapis/synthtool Source-Sha: 5de29e9434b63ea6d7e46dc348521c62969af1a1 Source-Link: https://github.com/googleapis/synthtool/commit/5de29e9434b63ea6d7e46dc348521c62969af1a1 --- .kokoro/release/publish_javadoc.cfg | 5 +-- .kokoro/release/publish_javadoc11.cfg | 30 +++++++++++++++ .kokoro/release/publish_javadoc11.sh | 55 +++++++++++++++++++++++++++ synth.metadata | 4 +- 4 files changed, 89 insertions(+), 5 deletions(-) create mode 100644 .kokoro/release/publish_javadoc11.cfg create mode 100755 .kokoro/release/publish_javadoc11.sh diff --git a/.kokoro/release/publish_javadoc.cfg b/.kokoro/release/publish_javadoc.cfg index 66eab3f52d7b..cd46c5459157 100644 --- a/.kokoro/release/publish_javadoc.cfg +++ b/.kokoro/release/publish_javadoc.cfg @@ -26,7 +26,4 @@ before_action { keyname: "docuploader_service_account" } } -} - -# Downloads docfx doclet resource. This will be in ${KOKORO_GFILE_DIR}/ -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/docfx" \ No newline at end of file +} \ No newline at end of file diff --git a/.kokoro/release/publish_javadoc11.cfg b/.kokoro/release/publish_javadoc11.cfg new file mode 100644 index 000000000000..2ddd71ce63ec --- /dev/null +++ b/.kokoro/release/publish_javadoc11.cfg @@ -0,0 +1,30 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +env_vars: { + key: "STAGING_BUCKET_V2" + value: "docs-staging-v2" + # Production will be at: docs-staging-v2 +} + +# Configure the docker image for kokoro-trampoline +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java11" +} + +env_vars: { + key: "TRAMPOLINE_BUILD_FILE" + value: "github/java-memcache/.kokoro/release/publish_javadoc11.sh" +} + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "docuploader_service_account" + } + } +} + +# Downloads docfx doclet resource. This will be in ${KOKORO_GFILE_DIR}/ +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/docfx" \ No newline at end of file diff --git a/.kokoro/release/publish_javadoc11.sh b/.kokoro/release/publish_javadoc11.sh new file mode 100755 index 000000000000..650605600748 --- /dev/null +++ b/.kokoro/release/publish_javadoc11.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# Copyright 2021 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +if [[ -z "${CREDENTIALS}" ]]; then + CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account +fi + +if [[ -z "${STAGING_BUCKET_V2}" ]]; then + echo "Need to set STAGING_BUCKET_V2 environment variable" + exit 1 +fi + +# work from the git root directory +pushd $(dirname "$0")/../../ + +# install docuploader package +python3 -m pip install gcp-docuploader + +# compile all packages +mvn clean install -B -q -DskipTests=true + +export NAME=google-cloud-bigquery +export VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) + +# V3 generates docfx yml from javadoc +# generate yml +mvn clean site -B -q -P docFX + +pushd target/docfx-yml + +# create metadata +python3 -m docuploader create-metadata \ + --name ${NAME} \ + --version ${VERSION} \ + --language java + +# upload yml +python3 -m docuploader upload . \ + --credentials ${CREDENTIALS} \ + --staging-bucket ${STAGING_BUCKET_V2} \ + --destination-prefix docfx- diff --git a/synth.metadata b/synth.metadata index 5765f1abddeb..2ec8001a7b57 100644 --- a/synth.metadata +++ b/synth.metadata @@ -11,7 +11,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "3816b080296d4d52975079fd26c110dd26ba25af" + "sha": "5de29e9434b63ea6d7e46dc348521c62969af1a1" } } ], @@ -71,6 +71,8 @@ ".kokoro/release/promote.sh", ".kokoro/release/publish_javadoc.cfg", ".kokoro/release/publish_javadoc.sh", + ".kokoro/release/publish_javadoc11.cfg", + ".kokoro/release/publish_javadoc11.sh", ".kokoro/release/snapshot.cfg", ".kokoro/release/snapshot.sh", ".kokoro/release/stage.cfg", From ef669df3c97981664615f0d752f8d988d08c00c9 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 2 Feb 2021 14:06:03 -0500 Subject: [PATCH 1096/3441] docs(samples): fix sample issue (#1086) Fixes b/177938551 --- .../src/main/java/com/example/bigquery/ExtractTableToJson.java | 2 +- .../test/java/com/example/bigquery/ExtractTableToJsonIT.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java index 764113c9b7b3..cdb98218293e 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java @@ -43,7 +43,7 @@ public static void main(String[] args) { // Note that FormatOptions.json().toString() is not "JSON" but "NEWLINE_DELIMITED_JSON" // Using FormatOptions Enum for this will prevent problems with unexpected format names. - String dataFormat = FormatOptions.json().toString(); + String dataFormat = FormatOptions.json().getType(); extractTableToJson(projectId, datasetName, tableName, destinationUri, dataFormat); } diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java index 05bd5f609a11..68f7903838a6 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java @@ -72,7 +72,7 @@ public void testExtractTableToJson() { String tableName = "shakespeare"; String destinationUri = "gs://" + GCS_BUCKET + "/extractTest.json"; // FormatOptions.json() is not "JSON" but "NEWLINE_DELIMITED_JSON" - String dataFormat = FormatOptions.json().toString(); + String dataFormat = FormatOptions.json().getType(); // Extract table content to GCS in JSON format ExtractTableToJson.extractTableToJson( From 44145fc887dba0a816f8d57050e060fe09988162 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 3 Feb 2021 09:24:01 -0800 Subject: [PATCH 1097/3441] chore: Re-generated to pick up changes from synthtool. (#1089) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * build(java): run linkage monitor as GitHub action Source-Author: Tomo Suzuki Source-Date: Tue Feb 2 16:20:26 2021 -0500 Source-Repo: googleapis/synthtool Source-Sha: e935c9ecb47da0f2e054f5f1845f7cf7c95fa625 Source-Link: https://github.com/googleapis/synthtool/commit/e935c9ecb47da0f2e054f5f1845f7cf7c95fa625 --- .github/workflows/ci.yaml | 13 ++++++++++- .kokoro/build.sh | 4 ++-- .kokoro/linkage-monitor.sh | 46 -------------------------------------- synth.metadata | 5 ++--- 4 files changed, 16 insertions(+), 52 deletions(-) delete mode 100755 .kokoro/linkage-monitor.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 683022075665..98a472e132d6 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -54,7 +54,18 @@ jobs: with: java-version: 8 - run: java -version - - run: .kokoro/linkage-monitor.sh + - name: Install artifacts to local Maven repository + run: | + source .kokoro/common.sh + retry_with_backoff 3 10 \ + mvn install -B -V \ + -Dmaven.test.skip -DskipTests=true \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -Dmaven.javadoc.skip=true \ + -Dgcloud.download.skip=true + shell: bash + - uses: GoogleCloudPlatform/cloud-opensource-java/linkage-monitor@v1-linkagemonitor lint: runs-on: ubuntu-latest steps: diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 5365c12cf810..14466ba43901 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -110,8 +110,8 @@ bash .kokoro/coerce_logs.sh if [[ "${ENABLE_BUILD_COP}" == "true" ]] then - chmod +x ${KOKORO_GFILE_DIR}/linux_amd64/buildcop - ${KOKORO_GFILE_DIR}/linux_amd64/buildcop -repo=googleapis/java-bigquery + chmod +x ${KOKORO_GFILE_DIR}/linux_amd64/flakybot + ${KOKORO_GFILE_DIR}/linux_amd64/flakybot -repo=googleapis/java-bigquery fi echo "exiting with ${RETURN_CODE}" diff --git a/.kokoro/linkage-monitor.sh b/.kokoro/linkage-monitor.sh deleted file mode 100755 index 759ab4e2c220..000000000000 --- a/.kokoro/linkage-monitor.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail -# Display commands being run. -set -x - -## Get the directory of the build script -scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) -## cd to the parent directory, i.e. the root of the git repo -cd ${scriptDir}/.. - -# include common functions -source ${scriptDir}/common.sh - -# Print out Java version -java -version -echo ${JOB_TYPE} - -# attempt to install 3 times with exponential backoff (starting with 10 seconds) -retry_with_backoff 3 10 \ - mvn install -B -V \ - -DskipTests=true \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -Dmaven.javadoc.skip=true \ - -Dgcloud.download.skip=true - -# Kokoro job cloud-opensource-java/ubuntu/linkage-monitor-gcs creates this JAR -JAR=linkage-monitor-latest-all-deps.jar -curl -v -O "https://storage.googleapis.com/cloud-opensource-java-linkage-monitor/${JAR}" - -# Fails if there's new linkage errors compared with baseline -java -jar ${JAR} com.google.cloud:libraries-bom diff --git a/synth.metadata b/synth.metadata index 2ec8001a7b57..44ebd0e86b78 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "242cce97d37a5e88d9bfa396f27db62c151e66b4" + "sha": "ef669df3c97981664615f0d752f8d988d08c00c9" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5de29e9434b63ea6d7e46dc348521c62969af1a1" + "sha": "e935c9ecb47da0f2e054f5f1845f7cf7c95fa625" } } ], @@ -40,7 +40,6 @@ ".kokoro/continuous/java8.cfg", ".kokoro/continuous/readme.cfg", ".kokoro/dependencies.sh", - ".kokoro/linkage-monitor.sh", ".kokoro/nightly/common.cfg", ".kokoro/nightly/integration.cfg", ".kokoro/nightly/java11.cfg", From edaf32cb4c4055fa1ac4588cadf17a7b79f102c8 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 3 Feb 2021 09:58:16 -0800 Subject: [PATCH 1098/3441] chore: regen common templates (#1088) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. From 0fd2ed4feff416fd5fe7284e4a609b0e0e460fa0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 4 Feb 2021 09:04:02 -0800 Subject: [PATCH 1099/3441] build(java): update autorelease branch name check (#1091) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/f83a1787-8e7f-4e63-8cd7-669254653c34/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/140ba24a136c63e7f10a998a63e7898aed63ea7d --- .github/workflows/auto-release.yaml | 2 +- synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 2b6cdbc976c4..76e6404b4e09 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -17,7 +17,7 @@ jobs: } // only approve PRs like "chore: release " - if ( !context.payload.pull_request.title.startsWith("chore: release") ) { + if ( !context.payload.pull_request.title.startsWith("chore(master): release") ) { return; } diff --git a/synth.metadata b/synth.metadata index 44ebd0e86b78..053ba9e4e2e5 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "ef669df3c97981664615f0d752f8d988d08c00c9" + "sha": "edaf32cb4c4055fa1ac4588cadf17a7b79f102c8" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "e935c9ecb47da0f2e054f5f1845f7cf7c95fa625" + "sha": "140ba24a136c63e7f10a998a63e7898aed63ea7d" } } ], From 24a6a3bf46fa528ca233413e47a858bb14d38f8d Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 4 Feb 2021 15:36:06 -0800 Subject: [PATCH 1100/3441] chore: Re-generated to pick up changes from synthtool. (#1092) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/fb5ed929-07a6-4b9c-9c01-20c1d4125a75/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/692715c0f23a7bb3bfbbaa300f7620ddfa8c47e5 Source-Link: https://github.com/googleapis/synthtool/commit/27b2d4f4674840628d0b75c5941e89c12af4764f --- .kokoro/release/publish_javadoc11.cfg | 4 ++-- LICENSE | 1 - synth.metadata | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.kokoro/release/publish_javadoc11.cfg b/.kokoro/release/publish_javadoc11.cfg index 2ddd71ce63ec..2255c89897f2 100644 --- a/.kokoro/release/publish_javadoc11.cfg +++ b/.kokoro/release/publish_javadoc11.cfg @@ -14,7 +14,7 @@ env_vars: { env_vars: { key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-memcache/.kokoro/release/publish_javadoc11.sh" + value: "github/java-bigquery/.kokoro/release/publish_javadoc11.sh" } before_action { @@ -27,4 +27,4 @@ before_action { } # Downloads docfx doclet resource. This will be in ${KOKORO_GFILE_DIR}/ -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/docfx" \ No newline at end of file +gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/docfx" diff --git a/LICENSE b/LICENSE index d64569567334..261eeb9e9f8b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,3 @@ - Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ diff --git a/synth.metadata b/synth.metadata index 053ba9e4e2e5..f3873805c7a0 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "edaf32cb4c4055fa1ac4588cadf17a7b79f102c8" + "sha": "0fd2ed4feff416fd5fe7284e4a609b0e0e460fa0" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "140ba24a136c63e7f10a998a63e7898aed63ea7d" + "sha": "692715c0f23a7bb3bfbbaa300f7620ddfa8c47e5" } } ], From 49cbb0f16ac3236e2f87b44570994d7235485902 Mon Sep 17 00:00:00 2001 From: Praful Makani Date: Sat, 6 Feb 2021 00:20:40 +0530 Subject: [PATCH 1101/3441] feat: add reservation usage in job statistics (#1018) --- .../google/cloud/bigquery/JobStatistics.java | 139 +++++++++++++++++- .../cloud/bigquery/JobStatisticsTest.java | 17 +++ 2 files changed, 154 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 45cdc74498e8..d971a6fb27f8 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -43,6 +43,7 @@ public abstract class JobStatistics implements Serializable { private final Long numChildJobs; private final String parentJobId; private final ScriptStatistics scriptStatistics; + private final List reservationUsage; /** A Google BigQuery Copy Job statistics. */ public static class CopyStatistics extends JobStatistics { @@ -1047,6 +1048,118 @@ static ScriptStatistics fromPb( } } + /** ReservationUsage contains information about a job's usage of a single reservation. */ + public static class ReservationUsage { + + static final Function< + com.google.api.services.bigquery.model.JobStatistics.ReservationUsage, ReservationUsage> + FROM_PB_FUNCTION = + new Function< + com.google.api.services.bigquery.model.JobStatistics.ReservationUsage, + ReservationUsage>() { + @Override + public ReservationUsage apply( + com.google.api.services.bigquery.model.JobStatistics.ReservationUsage usage) { + return ReservationUsage.fromPb(usage); + } + }; + + static final Function< + ReservationUsage, com.google.api.services.bigquery.model.JobStatistics.ReservationUsage> + TO_PB_FUNCTION = + new Function< + ReservationUsage, + com.google.api.services.bigquery.model.JobStatistics.ReservationUsage>() { + @Override + public com.google.api.services.bigquery.model.JobStatistics.ReservationUsage apply( + ReservationUsage usage) { + return usage.toPb(); + } + }; + + private final String name; + private final Long slotMs; + + public static class Builder { + + private String name; + private Long slotMs; + + private Builder() {}; + + Builder setName(String name) { + this.name = name; + return this; + } + + Builder setSlotMs(Long slotMs) { + this.slotMs = slotMs; + return this; + } + + ReservationUsage build() { + return new ReservationUsage(this); + } + } + + private ReservationUsage(Builder builder) { + this.name = builder.name; + this.slotMs = builder.slotMs; + } + + // Return mame indicates the utilized reservation name, or "unreserved" for ondemand usage. + public String getName() { + return name; + } + + // Returns slotMs reports the slot milliseconds utilized within in the given reservation. + public Long getSlotMs() { + return slotMs; + } + + static Builder newBuilder() { + return new Builder(); + } + + ToStringHelper toStringHelper() { + return MoreObjects.toStringHelper(this).add("name", name).add("slotMs", slotMs); + } + + @Override + public String toString() { + return toStringHelper().toString(); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(ReservationUsage.class) + && Objects.equals(toPb(), ((ReservationUsage) obj).toPb()); + } + + @Override + public int hashCode() { + return Objects.hash(name, slotMs); + } + + com.google.api.services.bigquery.model.JobStatistics.ReservationUsage toPb() { + com.google.api.services.bigquery.model.JobStatistics.ReservationUsage usage = + new com.google.api.services.bigquery.model.JobStatistics.ReservationUsage(); + usage.setName(name); + usage.setSlotMs(slotMs); + return usage; + } + + static ReservationUsage fromPb( + com.google.api.services.bigquery.model.JobStatistics.ReservationUsage usage) { + Builder builder = newBuilder(); + builder.setName(usage.getName()); + builder.setSlotMs(usage.getSlotMs()); + return builder.build(); + } + } + abstract static class Builder> { private Long creationTime; @@ -1055,6 +1168,7 @@ abstract static class Builder> private Long numChildJobs; private String parentJobId; private ScriptStatistics scriptStatistics; + private List reservationUsage; protected Builder() {} @@ -1067,6 +1181,10 @@ protected Builder(com.google.api.services.bigquery.model.JobStatistics statistic if (statisticsPb.getScriptStatistics() != null) { this.scriptStatistics = ScriptStatistics.fromPb(statisticsPb.getScriptStatistics()); } + if (reservationUsage != null) { + this.reservationUsage = + Lists.transform(statisticsPb.getReservationUsage(), ReservationUsage.FROM_PB_FUNCTION); + } } @SuppressWarnings("unchecked") @@ -1099,6 +1217,7 @@ protected JobStatistics(Builder builder) { this.numChildJobs = builder.numChildJobs; this.parentJobId = builder.parentJobId; this.scriptStatistics = builder.scriptStatistics; + this.reservationUsage = builder.reservationUsage; } /** Returns the creation time of the job in milliseconds since epoch. */ @@ -1137,6 +1256,11 @@ public ScriptStatistics getScriptStatistics() { return scriptStatistics; } + /** ReservationUsage contains information about a job's usage of a single reservation. */ + public List getReservationUsage() { + return reservationUsage; + } + ToStringHelper toStringHelper() { return MoreObjects.toStringHelper(this) .add("creationTime", creationTime) @@ -1144,7 +1268,8 @@ ToStringHelper toStringHelper() { .add("startTime", startTime) .add("numChildJobs", numChildJobs) .add("parentJobId", parentJobId) - .add("scriptStatistics", scriptStatistics); + .add("scriptStatistics", scriptStatistics) + .add("reservationUsage", reservationUsage); } @Override @@ -1154,7 +1279,13 @@ public String toString() { final int baseHashCode() { return Objects.hash( - creationTime, endTime, startTime, numChildJobs, parentJobId, scriptStatistics); + creationTime, + endTime, + startTime, + numChildJobs, + parentJobId, + scriptStatistics, + reservationUsage); } final boolean baseEquals(JobStatistics jobStatistics) { @@ -1172,6 +1303,10 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { if (scriptStatistics != null) { statistics.setScriptStatistics(scriptStatistics.toPb()); } + if (reservationUsage != null) { + statistics.setReservationUsage( + Lists.transform(reservationUsage, ReservationUsage.TO_PB_FUNCTION)); + } return statistics; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index 052df43254b1..96bfa3f084e2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -23,6 +23,7 @@ import com.google.cloud.bigquery.JobStatistics.ExtractStatistics; import com.google.cloud.bigquery.JobStatistics.LoadStatistics; import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.JobStatistics.ReservationUsage; import com.google.cloud.bigquery.JobStatistics.ScriptStatistics; import com.google.cloud.bigquery.JobStatistics.ScriptStatistics.ScriptStackFrame; import com.google.cloud.bigquery.QueryStage.QueryStep; @@ -58,6 +59,8 @@ public class JobStatisticsTest { private static final Long CREATION_TIME = 10L; private static final Long END_TIME = 20L; private static final Long START_TIME = 15L; + private static final String NAME = "reservation-name"; + private static final Long SLOTMS = 12545L; private static final CopyStatistics COPY_STATISTICS = CopyStatistics.newBuilder() .setCreationTimestamp(CREATION_TIME) @@ -200,6 +203,8 @@ public class JobStatisticsTest { .setEvaluationKind(EVALUATIONKIND_TYPE_EXPRESSION) .setStackFrames(ImmutableList.of(EXPRESSION_STACK_FRAME)) .build(); + private static final ReservationUsage RESERVATION_USAGE = + ReservationUsage.newBuilder().setName(NAME).setSlotMs(SLOTMS).build(); @Test public void testBuilder() { @@ -268,6 +273,8 @@ public void testBuilder() { assertEquals(EVALUATIONKIND_TYPE_EXPRESSION, EXPRESSION_SCRIPT_STATISTICS.getEvaluationKind()); assertEquals( ImmutableList.of(EXPRESSION_STACK_FRAME), EXPRESSION_SCRIPT_STATISTICS.getStackFrames()); + assertEquals(NAME, RESERVATION_USAGE.getName()); + assertEquals(SLOTMS, RESERVATION_USAGE.getSlotMs()); } @Test @@ -292,6 +299,7 @@ public void testToPbAndFromPb() { for (ScriptStackFrame stackFrame : EXPRESSION_SCRIPT_STATISTICS.getStackFrames()) { compareStackFrames(stackFrame, ScriptStackFrame.fromPb(stackFrame.toPb())); } + compareReservation(RESERVATION_USAGE, ReservationUsage.fromPb(RESERVATION_USAGE.toPb())); } @Test @@ -392,4 +400,13 @@ private void compareStackFrames( assertEquals(expected.getStartLine(), value.getStartLine()); assertEquals(expected.getText(), value.getText()); } + + private void compareReservation(ReservationUsage expected, ReservationUsage value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.toPb(), value.toPb()); + assertEquals(expected.getName(), value.getName()); + assertEquals(expected.getSlotMs(), value.getSlotMs()); + } } From 2e7bd9df075bc850d818dafd4439245f11eb34ee Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 9 Feb 2021 21:16:07 +0100 Subject: [PATCH 1102/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v16.4.0 (#1096) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 1f3816c99a60..5e2e73811070 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 16.3.0 + 16.4.0 pom import From 86cba8b3252cc9f2bb470bd73bb83245cff733fb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 9 Feb 2021 12:30:06 -0800 Subject: [PATCH 1103/3441] chore: regenerate README (#1097) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-02-09 20:18:35,801 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-02-09 20:18:36,888 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/0a897e4a-b595-47b0-bd09-7deeaf714ce7/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 95b162ffa3e0..5b9990bb0e77 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "50bf7831d9a7fe40ae08894d50fd2c8ae974f05a" + "sha": "2e7bd9df075bc850d818dafd4439245f11eb34ee" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "d1bb9173100f62c0cfc8f3138b62241e7f47ca6a" + "sha": "4679e7e415221f03ff2a71e3ffad75b9ec41d87e" } } ] diff --git a/README.md b/README.md index 3f898bcbe0fe..392118299145 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 16.3.0 + 16.4.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:16.3.0') +implementation platform('com.google.cloud:libraries-bom:16.4.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From cf68d8dc6bf421ea9c82c27760af03dd64b24a29 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 9 Feb 2021 15:50:06 -0500 Subject: [PATCH 1104/3441] feat: add support for javascript UDFs determinism level (#1094) Fixes #1083 --- .../clirr-ignored-differences.xml | 11 ++----- .../com/google/cloud/bigquery/Routine.java | 6 ++++ .../google/cloud/bigquery/RoutineInfo.java | 28 ++++++++++++++++++ .../cloud/bigquery/RoutineInfoTest.java | 5 ++++ .../google/cloud/bigquery/RoutineTest.java | 5 ++++ .../cloud/bigquery/it/ITBigQueryTest.java | 29 ++++++++++++++++++- 6 files changed, 75 insertions(+), 9 deletions(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index bfd3ee754662..6c1fd8cd6c0b 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -1,15 +1,10 @@ - + 7013 - com/google/cloud/bigquery/ExternalTableDefinition - java.lang.String getConnectionId() - - - 7013 - com/google/cloud/bigquery/ExternalTableDefinition$Builder - com.google.cloud.bigquery.ExternalTableDefinition$Builder setConnectionId(java.lang.String) + com/google/cloud/bigquery/RoutineInfo$Builder + com.google.cloud.bigquery.RoutineInfo$Builder setDeterminismLevel(java.lang.String) \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java index f324f9d508f6..2fbf1d67d8b4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java @@ -87,6 +87,12 @@ Builder setLastModifiedTime(Long lastModifiedMillis) { return this; } + @Override + public Builder setDeterminismLevel(String determinismLevel) { + infoBuilder.setDeterminismLevel(determinismLevel); + return this; + } + @Override public Builder setLanguage(String language) { infoBuilder.setLanguage(language); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java index ba93b3d83694..1f9c252d2ce9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java @@ -62,6 +62,7 @@ public Routine apply(RoutineInfo routineInfo) { private final String routineType; private final Long creationTime; private final String description; + private final String determinismLevel; private final Long lastModifiedTime; private final String language; private final List argumentList; @@ -89,6 +90,12 @@ public abstract static class Builder { abstract Builder setLastModifiedTime(Long lastModifiedMillis); + /** + * Sets the JavaScript UDF determinism levels (e.g. DETERMINISM_LEVEL_UNSPECIFIED, + * DETERMINISTIC, NOT_DETERMINISTIC) only applicable to Javascript UDFs. + */ + public abstract Builder setDeterminismLevel(String determinismLevel); + /** Sets the language for the routine (e.g. SQL or JAVASCRIPT) */ public abstract Builder setLanguage(String language); @@ -147,6 +154,7 @@ static class BuilderImpl extends Builder { private String routineType; private Long creationTime; private String description; + private String determinismLevel; private Long lastModifiedTime; private String language; private List argumentList; @@ -162,6 +170,7 @@ static class BuilderImpl extends Builder { this.routineType = routineInfo.routineType; this.creationTime = routineInfo.creationTime; this.description = routineInfo.description; + this.determinismLevel = routineInfo.determinismLevel; this.lastModifiedTime = routineInfo.lastModifiedTime; this.language = routineInfo.language; this.argumentList = routineInfo.argumentList; @@ -176,6 +185,7 @@ static class BuilderImpl extends Builder { this.routineType = routinePb.getRoutineType(); this.creationTime = routinePb.getCreationTime(); this.description = routinePb.getDescription(); + this.determinismLevel = routinePb.getDeterminismLevel(); this.lastModifiedTime = routinePb.getLastModifiedTime(); this.language = routinePb.getLanguage(); if (routinePb.getArguments() != null) { @@ -223,6 +233,12 @@ public Builder setDescription(String description) { return this; } + @Override + public Builder setDeterminismLevel(String determinismLevel) { + this.determinismLevel = determinismLevel; + return this; + } + @Override Builder setLastModifiedTime(Long lastModifiedMillis) { this.lastModifiedTime = lastModifiedMillis; @@ -271,6 +287,7 @@ public RoutineInfo build() { this.routineType = builder.routineType; this.creationTime = builder.creationTime; this.description = builder.description; + this.determinismLevel = builder.determinismLevel; this.lastModifiedTime = builder.lastModifiedTime; this.language = builder.language; this.argumentList = builder.argumentList; @@ -304,6 +321,11 @@ public String getDescription() { return description; } + /** Returns the determinism level of the JavaScript UDF if defined. */ + public String getDeterminismLevel() { + return determinismLevel; + } + /** * Returns the last modification time of the routine, represented as milliseconds since the epoch. */ @@ -354,6 +376,7 @@ public String toString() { .add("routineType", routineType) .add("creationTime", creationTime) .add("description", description) + .add("determinismLevel", determinismLevel) .add("lastModifiedTime", lastModifiedTime) .add("language", language) .add("arguments", argumentList) @@ -371,6 +394,7 @@ public int hashCode() { routineType, creationTime, description, + determinismLevel, lastModifiedTime, language, argumentList, @@ -412,6 +436,7 @@ Routine toPb() { .setDefinitionBody(getBody()) .setCreationTime(getCreationTime()) .setDescription(getDescription()) + .setDeterminismLevel(getDeterminismLevel()) .setLastModifiedTime(getLastModifiedTime()) .setLanguage(getLanguage()); if (getRoutineId() != null) { @@ -420,6 +445,9 @@ Routine toPb() { if (getArguments() != null) { routinePb.setArguments(Lists.transform(getArguments(), RoutineArgument.TO_PB_FUNCTION)); } + if (getReturnType() != null) { + routinePb.setReturnType(getReturnType().toPb()); + } return routinePb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java index ce613193c325..1f1181433bc3 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java @@ -29,6 +29,7 @@ public class RoutineInfoTest { private static final String ROUTINE_TYPE = "SCALAR_FUNCTION"; private static final Long CREATION_TIME = 10L; private static final String DESCRIPTION = "description"; + private static final String DETERMINISM = "DETERMINISTIC"; private static final Long LAST_MODIFIED_TIME = 20L; private static final String LANGUAGE = "SQL"; @@ -55,6 +56,7 @@ public class RoutineInfoTest { .setRoutineType(ROUTINE_TYPE) .setCreationTime(CREATION_TIME) .setDescription(DESCRIPTION) + .setDeterminismLevel(DETERMINISM) .setLastModifiedTime(LAST_MODIFIED_TIME) .setLanguage(LANGUAGE) .setArguments(ARGUMENT_LIST) @@ -81,6 +83,7 @@ public void testBuilder() { assertEquals(ROUTINE_TYPE, ROUTINE_INFO.getRoutineType()); assertEquals(CREATION_TIME, ROUTINE_INFO.getCreationTime()); assertEquals(DESCRIPTION, ROUTINE_INFO.getDescription()); + assertEquals(DETERMINISM, ROUTINE_INFO.getDeterminismLevel()); assertEquals(LAST_MODIFIED_TIME, ROUTINE_INFO.getLastModifiedTime()); assertEquals(LANGUAGE, ROUTINE_INFO.getLanguage()); assertEquals(ARGUMENT_LIST, ROUTINE_INFO.getArguments()); @@ -97,6 +100,7 @@ public void testOf() { assertNull(routineInfo.getRoutineType()); assertNull(routineInfo.getCreationTime()); assertNull(routineInfo.getDescription()); + assertNull(routineInfo.getDeterminismLevel()); assertNull(routineInfo.getLastModifiedTime()); assertNull(routineInfo.getLanguage()); assertNull(routineInfo.getArguments()); @@ -121,6 +125,7 @@ public void compareRoutineInfo(RoutineInfo expected, RoutineInfo value) { assertEquals(expected.getRoutineType(), value.getRoutineType()); assertEquals(expected.getCreationTime(), value.getCreationTime()); assertEquals(expected.getDescription(), value.getDescription()); + assertEquals(expected.getDeterminismLevel(), value.getDeterminismLevel()); assertEquals(expected.getLastModifiedTime(), value.getLastModifiedTime()); assertEquals(expected.getLanguage(), value.getLanguage()); assertEquals(expected.getArguments(), value.getArguments()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java index c51c77193e9d..f0e29410dbd6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java @@ -38,6 +38,7 @@ public class RoutineTest { private static final RoutineId ROUTINE_ID = RoutineId.of("dataset", "routine"); + private static final String DETERMINISM_LEVEL = "DETERMINISTIC"; private static final String ETAG = "etag"; private static final String ROUTINE_TYPE = "SCALAR_FUNCTION"; private static final Long CREATION_TIME = 10L; @@ -65,6 +66,7 @@ public class RoutineTest { .setEtag(ETAG) .setRoutineType(ROUTINE_TYPE) .setCreationTime(CREATION_TIME) + .setDeterminismLevel(DETERMINISM_LEVEL) .setLastModifiedTime(LAST_MODIFIED_TIME) .setLanguage(LANGUAGE) .setArguments(ARGUMENT_LIST) @@ -96,6 +98,7 @@ public void testBuilder() { .setEtag(ETAG) .setRoutineType(ROUTINE_TYPE) .setCreationTime(CREATION_TIME) + .setDeterminismLevel(DETERMINISM_LEVEL) .setLastModifiedTime(LAST_MODIFIED_TIME) .setLanguage(LANGUAGE) .setArguments(ARGUMENT_LIST) @@ -104,6 +107,7 @@ public void testBuilder() { .setBody(BODY) .build(); assertEquals(ETAG, builtRoutine.getEtag()); + assertEquals(DETERMINISM_LEVEL, builtRoutine.getDeterminismLevel()); assertSame(bigquery, builtRoutine.getBigQuery()); } @@ -191,6 +195,7 @@ public void compareRoutineInfo(RoutineInfo expected, RoutineInfo value) { assertEquals(expected.getEtag(), value.getEtag()); assertEquals(expected.getRoutineType(), value.getRoutineType()); assertEquals(expected.getCreationTime(), value.getCreationTime()); + assertEquals(expected.getDeterminismLevel(), value.getDeterminismLevel()); assertEquals(expected.getLastModifiedTime(), value.getLastModifiedTime()); assertEquals(expected.getLanguage(), value.getLanguage()); assertEquals(expected.getArguments(), value.getArguments()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b15e59f5e436..dc8b3c355440 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1522,7 +1522,6 @@ public void testEmptyListRoutines() { @Test public void testRoutineLifecycle() throws InterruptedException { - String routineName = RemoteBigQueryHelper.generateRoutineName(); // Create a routine using SQL. String sql = @@ -1587,6 +1586,34 @@ public void testRoutineAPICreation() { assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); } + @Test + public void testRoutineAPICreationJavascriptUDF() { + String routineName = RemoteBigQueryHelper.generateRoutineName(); + RoutineId routineId = RoutineId.of(ROUTINE_DATASET, routineName); + RoutineInfo routineInfo = + RoutineInfo.newBuilder(routineId) + .setLanguage("JAVASCRIPT") + .setRoutineType("SCALAR_FUNCTION") + .setDeterminismLevel("DETERMINISTIC") + .setArguments( + ImmutableList.of( + RoutineArgument.newBuilder() + .setName("instr") + .setKind("FIXED_TYPE") + .setDataType(StandardSQLDataType.newBuilder("STRING").build()) + .build())) + .setReturnType(StandardSQLDataType.newBuilder("STRING").build()) + .setBody("return instr.toUpperCase();") + .build(); + + Routine routine = bigquery.create(routineInfo); + assertNotNull(routine); + assertEquals(routine.getLanguage(), "JAVASCRIPT"); + assertEquals(routine.getDeterminismLevel(), "DETERMINISTIC"); + assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); + assertEquals(routine.getReturnType(), StandardSQLDataType.newBuilder("STRING").build()); + } + @Test public void testAuthorizeRoutine() { String routineName = RemoteBigQueryHelper.generateRoutineName(); From 9d8f923eedb2c02456d3f73fccca6d2e87137979 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 9 Feb 2021 16:32:31 -0500 Subject: [PATCH 1105/3441] chore(master): release 1.127.0 (#1090) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 14 ++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 21 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a543f80b0d5..9a787b84bf06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [1.127.0](https://www.github.com/googleapis/java-bigquery/compare/v1.126.6...v1.127.0) (2021-02-09) + + +### Features + +* add reservation usage in job statistics ([#1018](https://www.github.com/googleapis/java-bigquery/issues/1018)) ([49cbb0f](https://www.github.com/googleapis/java-bigquery/commit/49cbb0f16ac3236e2f87b44570994d7235485902)) +* add support for javascript UDFs determinism level ([#1094](https://www.github.com/googleapis/java-bigquery/issues/1094)) ([cf68d8d](https://www.github.com/googleapis/java-bigquery/commit/cf68d8dc6bf421ea9c82c27760af03dd64b24a29)), closes [#1083](https://www.github.com/googleapis/java-bigquery/issues/1083) + + +### Documentation + +* **samples:** fix sample issue ([#1086](https://www.github.com/googleapis/java-bigquery/issues/1086)) ([ef669df](https://www.github.com/googleapis/java-bigquery/commit/ef669df3c97981664615f0d752f8d988d08c00c9)) +* **samples:** Update region tag for create table external hive partitioning ([#1079](https://www.github.com/googleapis/java-bigquery/issues/1079)) ([50bf783](https://www.github.com/googleapis/java-bigquery/commit/50bf7831d9a7fe40ae08894d50fd2c8ae974f05a)) + ### [1.126.6](https://www.github.com/googleapis/java-bigquery/compare/v1.126.5...v1.126.6) (2021-01-13) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 175c26688243..a88f17225d70 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.126.7-SNAPSHOT + 1.127.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c6c386ff704b..2acdda0dce07 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.126.7-SNAPSHOT + 1.127.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.126.7-SNAPSHOT + 1.127.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c2f9fe090b52..01838adb9e41 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.126.7-SNAPSHOT + 1.127.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.126.7-SNAPSHOT + 1.127.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b3efbd95c2cb..e98509b2f1f8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.126.7-SNAPSHOT + 1.127.0 diff --git a/versions.txt b/versions.txt index 2e19c5277405..52b52a57ee58 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.126.6:1.126.7-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.0:1.127.0 \ No newline at end of file From b98c978c0f8a484f9c4cff823dc8361b2678dc0d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 10 Feb 2021 00:38:27 +0100 Subject: [PATCH 1106/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.0 (#1099) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b4449c2912c9..2935c2d420d8 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.126.6 + 1.127.0 From 82ff3695c8f5811e3b1f52dd52ab6d743475e40c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 10 Feb 2021 00:38:35 +0100 Subject: [PATCH 1107/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.20.0 (#1095) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2935c2d420d8..c0c61d8777e6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.19.2 + 1.20.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e98509b2f1f8..848efba758ee 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.19.2 + 1.20.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 5e2e73811070..dc42baba594e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.19.2 + 1.20.0 test From 5573e5a01443af412224e1baf0dc281d4e4242d9 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 9 Feb 2021 15:54:04 -0800 Subject: [PATCH 1108/3441] chore: regenerate README (#1100) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-02-09 23:43:01,019 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-02-09 23:43:02,240 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/018ca47c-890f-44fa-be83-c39023919e5d/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 5b9990bb0e77..28aafade5b75 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "2e7bd9df075bc850d818dafd4439245f11eb34ee" + "sha": "82ff3695c8f5811e3b1f52dd52ab6d743475e40c" } }, { diff --git a/README.md b/README.md index 392118299145..c878f2167a60 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.126.6 + 1.127.0 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.126.6' +compile 'com.google.cloud:google-cloud-bigquery:1.127.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.126.6" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.0" ``` ## Authentication From 7b3dd6bd71b13b2b56de9ec3d11cc07677719823 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 10 Feb 2021 00:14:04 +0000 Subject: [PATCH 1109/3441] chore(master): release 1.126.7-SNAPSHOT (#1098) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- .github/workflows/auto-release.yaml | 4 ++-- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 76e6404b4e09..7c8816a7d7b1 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -4,7 +4,7 @@ name: auto-release jobs: approve: runs-on: ubuntu-latest - if: contains(github.head_ref, 'release-v') + if: contains(github.head_ref, 'release-please') steps: - uses: actions/github-script@v3 with: @@ -16,7 +16,7 @@ jobs: return; } - // only approve PRs like "chore: release " + // only approve PRs like "chore(master): release " if ( !context.payload.pull_request.title.startsWith("chore(master): release") ) { return; } diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a88f17225d70..d1c6c7ac9b98 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.0 + 1.127.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2acdda0dce07..9c79e527ac6d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.0 + 1.127.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.0 + 1.127.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 01838adb9e41..0105db9f84ed 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.0 + 1.127.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.0 + 1.127.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 848efba758ee..a8b2556a077a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.0 + 1.127.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 52b52a57ee58..8b0a3cb3012f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.0:1.127.0 \ No newline at end of file +google-cloud-bigquery:1.127.0:1.127.1-SNAPSHOT \ No newline at end of file From f227eb4a5eac1ddf8adf45d6cb093d51da56df6a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 11 Feb 2021 20:48:46 +0100 Subject: [PATCH 1110/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210118-1.31.0 (#1102) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0105db9f84ed..cf822b880a9e 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20201030-1.31.0 + v2-rev20210118-1.31.0 0.18.0 From c0bd910ec39f71d32692109269fb1ebbbd6b7a8f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 11 Feb 2021 20:06:02 +0000 Subject: [PATCH 1111/3441] chore(master): release 1.127.1 (#1103) :robot: I have created a release \*beep\* \*boop\* --- ### [1.127.1](https://www.github.com/googleapis/java-bigquery/compare/v1.127.0...v1.127.1) (2021-02-11) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210118-1.31.0 ([#1102](https://www.github.com/googleapis/java-bigquery/issues/1102)) ([f227eb4](https://www.github.com/googleapis/java-bigquery/commit/f227eb4a5eac1ddf8adf45d6cb093d51da56df6a)) * update dependency com.google.cloud:google-cloud-bigtable to v1.20.0 ([#1095](https://www.github.com/googleapis/java-bigquery/issues/1095)) ([82ff369](https://www.github.com/googleapis/java-bigquery/commit/82ff3695c8f5811e3b1f52dd52ab6d743475e40c)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a787b84bf06..d390c6608f3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.127.1](https://www.github.com/googleapis/java-bigquery/compare/v1.127.0...v1.127.1) (2021-02-11) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210118-1.31.0 ([#1102](https://www.github.com/googleapis/java-bigquery/issues/1102)) ([f227eb4](https://www.github.com/googleapis/java-bigquery/commit/f227eb4a5eac1ddf8adf45d6cb093d51da56df6a)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.20.0 ([#1095](https://www.github.com/googleapis/java-bigquery/issues/1095)) ([82ff369](https://www.github.com/googleapis/java-bigquery/commit/82ff3695c8f5811e3b1f52dd52ab6d743475e40c)) + ## [1.127.0](https://www.github.com/googleapis/java-bigquery/compare/v1.126.6...v1.127.0) (2021-02-09) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d1c6c7ac9b98..6605558d12ff 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.1-SNAPSHOT + 1.127.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9c79e527ac6d..5058e66543ac 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.1-SNAPSHOT + 1.127.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.1-SNAPSHOT + 1.127.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index cf822b880a9e..a6bbab552ff3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.1-SNAPSHOT + 1.127.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.1-SNAPSHOT + 1.127.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a8b2556a077a..26446360f5fb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.1-SNAPSHOT + 1.127.1 diff --git a/versions.txt b/versions.txt index 8b0a3cb3012f..19231470cd95 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.0:1.127.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.1:1.127.1 \ No newline at end of file From 6da517ed5327a083eb6a3c0b20d9795fbeb0cff7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 11 Feb 2021 20:20:04 +0000 Subject: [PATCH 1112/3441] chore(master): release 1.127.2-SNAPSHOT (#1104) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 6605558d12ff..b43f0e1cff6c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.1 + 1.127.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5058e66543ac..08ec500cb97c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.1 + 1.127.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.1 + 1.127.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a6bbab552ff3..3adb53afb410 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.1 + 1.127.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.1 + 1.127.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 26446360f5fb..e882d32cf78d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.1 + 1.127.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 19231470cd95..60c3e04aca00 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.1:1.127.1 \ No newline at end of file +google-cloud-bigquery:1.127.1:1.127.2-SNAPSHOT \ No newline at end of file From d9b01749a21df6b697e611e5f3c20e56ed87313b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 12 Feb 2021 23:06:08 +0100 Subject: [PATCH 1113/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.1 (#1105) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c0c61d8777e6..8ce97f76ccad 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.0 + 1.127.1 From 26cafe4a5aff0d36ceee6e42e29e94ea2f0d1b88 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 12 Feb 2021 14:20:02 -0800 Subject: [PATCH 1114/3441] chore: regenerate README (#1107) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-02-12 22:08:31,725 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-02-12 22:08:33,396 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/0f406099-7a83-48ac-9c0a-0a7153dbbb2f/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 28aafade5b75..3b692fa4e4a7 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "82ff3695c8f5811e3b1f52dd52ab6d743475e40c" + "sha": "d9b01749a21df6b697e611e5f3c20e56ed87313b" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "4679e7e415221f03ff2a71e3ffad75b9ec41d87e" + "sha": "b32c87d2c087fb2a841acc623ab540105de821af" } } ] diff --git a/README.md b/README.md index c878f2167a60..ca1caba4eebb 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.0 + 1.127.1 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.0' +compile 'com.google.cloud:google-cloud-bigquery:1.127.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.1" ``` ## Authentication From 3a8a373f7e0998568b71fece4d3a4b264d3bf869 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 15 Feb 2021 18:03:26 +0100 Subject: [PATCH 1115/3441] test(deps): update dependency junit:junit to v4.13.2 (#1108) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 3adb53afb410..9fd9cae77780 100644 --- a/pom.xml +++ b/pom.xml @@ -100,7 +100,7 @@ junit junit - 4.13.1 + 4.13.2 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8ce97f76ccad..264ea19c1cc2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -75,7 +75,7 @@ junit junit - 4.13.1 + 4.13.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e882d32cf78d..5bd7ca8bfb70 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -73,7 +73,7 @@ junit junit - 4.13.1 + 4.13.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index dc42baba594e..7c1d4323fd41 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -88,7 +88,7 @@ junit junit - 4.13.1 + 4.13.2 test From fbc11d70f1ca824b3e1359426c972c38fd2a3b76 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 15 Feb 2021 18:03:41 +0100 Subject: [PATCH 1116/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210204-1.31.0 (#1109) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9fd9cae77780..0e3fcc4e8abe 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210118-1.31.0 + v2-rev20210204-1.31.0 0.18.0
    From 7ff149c7dde2a7960a598a75559fa5815e44b8a7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 15 Feb 2021 17:16:02 +0000 Subject: [PATCH 1117/3441] chore(master): release 1.127.2 (#1110) :robot: I have created a release \*beep\* \*boop\* --- ### [1.127.2](https://www.github.com/googleapis/java-bigquery/compare/v1.127.1...v1.127.2) (2021-02-15) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210204-1.31.0 ([#1109](https://www.github.com/googleapis/java-bigquery/issues/1109)) ([fbc11d7](https://www.github.com/googleapis/java-bigquery/commit/fbc11d70f1ca824b3e1359426c972c38fd2a3b76)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d390c6608f3d..dc2d71c869fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.127.2](https://www.github.com/googleapis/java-bigquery/compare/v1.127.1...v1.127.2) (2021-02-15) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210204-1.31.0 ([#1109](https://www.github.com/googleapis/java-bigquery/issues/1109)) ([fbc11d7](https://www.github.com/googleapis/java-bigquery/commit/fbc11d70f1ca824b3e1359426c972c38fd2a3b76)) + ### [1.127.1](https://www.github.com/googleapis/java-bigquery/compare/v1.127.0...v1.127.1) (2021-02-11) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b43f0e1cff6c..bdd33fe7eb9c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.2-SNAPSHOT + 1.127.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 08ec500cb97c..41bb9aca1cfb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.2-SNAPSHOT + 1.127.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.2-SNAPSHOT + 1.127.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0e3fcc4e8abe..bfc4379331e0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.2-SNAPSHOT + 1.127.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.2-SNAPSHOT + 1.127.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5bd7ca8bfb70..07c80263257b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.2-SNAPSHOT + 1.127.2 diff --git a/versions.txt b/versions.txt index 60c3e04aca00..73dbc1099bb2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.1:1.127.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.2:1.127.2 \ No newline at end of file From 8fb1290bf7049d7947ac2d6d591b1a1e1a2d37ea Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 15 Feb 2021 17:28:02 +0000 Subject: [PATCH 1118/3441] chore(master): release 1.127.3-SNAPSHOT (#1111) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index bdd33fe7eb9c..d5375a2d25b8 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.2 + 1.127.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 41bb9aca1cfb..f682a024023c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.2 + 1.127.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.2 + 1.127.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bfc4379331e0..59c7e6ddb60e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.2 + 1.127.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.2 + 1.127.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 07c80263257b..9470cef5e7de 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.2 + 1.127.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 73dbc1099bb2..0767b008b70f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.2:1.127.2 \ No newline at end of file +google-cloud-bigquery:1.127.2:1.127.3-SNAPSHOT \ No newline at end of file From 399bfc37559c3e7783a57ce3eac60840b999f6ef Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 15 Feb 2021 21:55:05 +0100 Subject: [PATCH 1119/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.2 (#1112) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 264ea19c1cc2..84b6091b4382 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.1 + 1.127.2 From aa716bc9dac89c429341a302c7c52a698a4c9938 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 15 Feb 2021 13:08:02 -0800 Subject: [PATCH 1120/3441] chore: regenerate README (#1113) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-02-15 20:57:22,346 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-02-15 20:57:24,050 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/41cb4865-88d2-4ce3-88d4-1f25e75627a4/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 3b692fa4e4a7..9a8b9f510a74 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "d9b01749a21df6b697e611e5f3c20e56ed87313b" + "sha": "399bfc37559c3e7783a57ce3eac60840b999f6ef" } }, { diff --git a/README.md b/README.md index ca1caba4eebb..0c4471611dbe 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.1 + 1.127.2 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.1' +compile 'com.google.cloud:google-cloud-bigquery:1.127.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.2" ``` ## Authentication From 3157f69902aa8ee00711bebc2cd1090d3af3d912 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 16 Feb 2021 16:51:39 -0800 Subject: [PATCH 1121/3441] chore: regen common template (#1114) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- .github/workflows/auto-release.yaml | 4 ++-- synth.metadata | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 7c8816a7d7b1..76e6404b4e09 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -4,7 +4,7 @@ name: auto-release jobs: approve: runs-on: ubuntu-latest - if: contains(github.head_ref, 'release-please') + if: contains(github.head_ref, 'release-v') steps: - uses: actions/github-script@v3 with: @@ -16,7 +16,7 @@ jobs: return; } - // only approve PRs like "chore(master): release " + // only approve PRs like "chore: release " if ( !context.payload.pull_request.title.startsWith("chore(master): release") ) { return; } diff --git a/synth.metadata b/synth.metadata index f3873805c7a0..c2df4d2b7218 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "0fd2ed4feff416fd5fe7284e4a609b0e0e460fa0" + "sha": "aa716bc9dac89c429341a302c7c52a698a4c9938" } }, { From 1a41924fcb906c1f5ebd62089237f63392b002ef Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 16 Feb 2021 16:58:02 -0800 Subject: [PATCH 1122/3441] chore: regen common templates (#1115) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * build(java): update autorelease script Noticed the workflow was getting skipped on all the release PRs. Updating due to recent update in release-please branch name. Source-Author: Stephanie Wang Source-Date: Tue Feb 9 19:10:03 2021 -0500 Source-Repo: googleapis/synthtool Source-Sha: 2414b817065726eae0bc525346c7e874f969369d Source-Link: https://github.com/googleapis/synthtool/commit/2414b817065726eae0bc525346c7e874f969369d * ci: linkage monitor CI job to use build.sh This PR updates the GitHub Actions configuration for Linkage Monitor. Before this change, the CI configuration has "mvn install" command with 6 options. It turned out that a slight difference in the command line option from "build.sh" fails the build in google-auth-library-java repository (https://github.com/GoogleCloudPlatform/cloud-opensource-java/issues/1941). (@Neenu1995 found the build failure. Thanks!) Therefore, this change updates the configuration so that Linkage Monitor job just uses "build.sh" to install the artifacts into local Maven repository. # How did I test? I tested this change in java-spanner repository with this draft PR: https://github.com/googleapis/java-spanner/pull/868 Screen Shot 2021-02-12 at 16 54 18 It succeeded. Source-Author: Tomo Suzuki Source-Date: Tue Feb 16 15:56:09 2021 -0500 Source-Repo: googleapis/synthtool Source-Sha: f327d3b657a63ae4a8efd7f011a15eacae36b59c Source-Link: https://github.com/googleapis/synthtool/commit/f327d3b657a63ae4a8efd7f011a15eacae36b59c --- .github/workflows/ci.yaml | 13 +++---------- synth.metadata | 2 +- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 98a472e132d6..def8b3a2c84d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -55,17 +55,10 @@ jobs: java-version: 8 - run: java -version - name: Install artifacts to local Maven repository - run: | - source .kokoro/common.sh - retry_with_backoff 3 10 \ - mvn install -B -V \ - -Dmaven.test.skip -DskipTests=true \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -Dmaven.javadoc.skip=true \ - -Dgcloud.download.skip=true + run: .kokoro/build.sh shell: bash - - uses: GoogleCloudPlatform/cloud-opensource-java/linkage-monitor@v1-linkagemonitor + - name: Validate any conflicts with regard to com.google.cloud:libraries-bom (latest release) + uses: GoogleCloudPlatform/cloud-opensource-java/linkage-monitor@v1-linkagemonitor lint: runs-on: ubuntu-latest steps: diff --git a/synth.metadata b/synth.metadata index c2df4d2b7218..39e2d76971c0 100644 --- a/synth.metadata +++ b/synth.metadata @@ -11,7 +11,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "692715c0f23a7bb3bfbbaa300f7620ddfa8c47e5" + "sha": "f327d3b657a63ae4a8efd7f011a15eacae36b59c" } } ], From 239b32caa91062b97615921c4948438628f71a3a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 17 Feb 2021 07:42:14 -0800 Subject: [PATCH 1123/3441] chore: regen common templates (#1117) autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. --- .github/workflows/auto-release.yaml | 4 ++-- synth.metadata | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 76e6404b4e09..7c8816a7d7b1 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -4,7 +4,7 @@ name: auto-release jobs: approve: runs-on: ubuntu-latest - if: contains(github.head_ref, 'release-v') + if: contains(github.head_ref, 'release-please') steps: - uses: actions/github-script@v3 with: @@ -16,7 +16,7 @@ jobs: return; } - // only approve PRs like "chore: release " + // only approve PRs like "chore(master): release " if ( !context.payload.pull_request.title.startsWith("chore(master): release") ) { return; } diff --git a/synth.metadata b/synth.metadata index 39e2d76971c0..5a8cc8302494 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "aa716bc9dac89c429341a302c7c52a698a4c9938" + "sha": "1a41924fcb906c1f5ebd62089237f63392b002ef" } }, { From 60a6c4f63e5a755677ea0d3811207ee151ea07ba Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 17 Feb 2021 07:42:32 -0800 Subject: [PATCH 1124/3441] chore: regen common templates (#1118) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * chore: update cloud-rad buckets doclava v2 => staging docFX v3 => prod Source-Author: Emily Ball Source-Date: Tue Feb 16 17:02:08 2021 -0800 Source-Repo: googleapis/synthtool Source-Sha: b416a7befcdbc42de41cf387dcf428f894fb812b Source-Link: https://github.com/googleapis/synthtool/commit/b416a7befcdbc42de41cf387dcf428f894fb812b --- .kokoro/release/publish_javadoc.cfg | 4 ++-- .kokoro/release/publish_javadoc.sh | 2 +- .kokoro/release/publish_javadoc11.cfg | 2 +- .kokoro/release/publish_javadoc11.sh | 2 +- synth.metadata | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.kokoro/release/publish_javadoc.cfg b/.kokoro/release/publish_javadoc.cfg index cd46c5459157..31a55281915b 100644 --- a/.kokoro/release/publish_javadoc.cfg +++ b/.kokoro/release/publish_javadoc.cfg @@ -7,10 +7,10 @@ env_vars: { value: "docs-staging" } +# cloud-rad staging env_vars: { key: "STAGING_BUCKET_V2" - value: "docs-staging-v2" - # Production will be at: docs-staging-v2 + value: "docs-staging-v2-staging" } env_vars: { diff --git a/.kokoro/release/publish_javadoc.sh b/.kokoro/release/publish_javadoc.sh index c4da069e9d77..f0be47d2240e 100755 --- a/.kokoro/release/publish_javadoc.sh +++ b/.kokoro/release/publish_javadoc.sh @@ -71,7 +71,7 @@ python3 -m docuploader create-metadata \ --version ${VERSION} \ --language java -# upload docs +# upload docs to staging bucket python3 -m docuploader upload . \ --credentials ${CREDENTIALS} \ --staging-bucket ${STAGING_BUCKET_V2} diff --git a/.kokoro/release/publish_javadoc11.cfg b/.kokoro/release/publish_javadoc11.cfg index 2255c89897f2..60a846c10a95 100644 --- a/.kokoro/release/publish_javadoc11.cfg +++ b/.kokoro/release/publish_javadoc11.cfg @@ -1,9 +1,9 @@ # Format: //devtools/kokoro/config/proto/build.proto +# cloud-rad production env_vars: { key: "STAGING_BUCKET_V2" value: "docs-staging-v2" - # Production will be at: docs-staging-v2 } # Configure the docker image for kokoro-trampoline diff --git a/.kokoro/release/publish_javadoc11.sh b/.kokoro/release/publish_javadoc11.sh index 650605600748..7e59c0f9ca2f 100755 --- a/.kokoro/release/publish_javadoc11.sh +++ b/.kokoro/release/publish_javadoc11.sh @@ -48,7 +48,7 @@ python3 -m docuploader create-metadata \ --version ${VERSION} \ --language java -# upload yml +# upload yml to production bucket python3 -m docuploader upload . \ --credentials ${CREDENTIALS} \ --staging-bucket ${STAGING_BUCKET_V2} \ diff --git a/synth.metadata b/synth.metadata index 5a8cc8302494..a4a4790ddd84 100644 --- a/synth.metadata +++ b/synth.metadata @@ -11,7 +11,7 @@ "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "f327d3b657a63ae4a8efd7f011a15eacae36b59c" + "sha": "b416a7befcdbc42de41cf387dcf428f894fb812b" } } ], From 5ab251eed173bd3554c444c394d088923255b29a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 18 Feb 2021 16:18:18 -0800 Subject: [PATCH 1125/3441] build: skip Maven download logs (#1120) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/a6b7617f-b194-4419-a5c2-38ceb3c55e68/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/1aeca92e4a38f47134cb955f52ea76f84f09ff88 --- .kokoro/build.sh | 2 ++ synth.metadata | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 14466ba43901..020216e4868b 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -60,6 +60,7 @@ javadoc) ;; integration) mvn -B ${INTEGRATION_TEST_ARGS} \ + -ntp \ -Penable-integration-tests \ -DtrimStackTrace=false \ -Dclirr.skip=true \ @@ -81,6 +82,7 @@ samples) pushd ${SAMPLES_DIR} mvn -B \ -Penable-samples \ + -ntp \ -DtrimStackTrace=false \ -Dclirr.skip=true \ -Denforcer.skip=true \ diff --git a/synth.metadata b/synth.metadata index a4a4790ddd84..accc342f29b6 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "1a41924fcb906c1f5ebd62089237f63392b002ef" + "sha": "60a6c4f63e5a755677ea0d3811207ee151ea07ba" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "b416a7befcdbc42de41cf387dcf428f894fb812b" + "sha": "1aeca92e4a38f47134cb955f52ea76f84f09ff88" } } ], From ab400c0330c8860153798f255b6b36e6e6482925 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 19 Feb 2021 07:46:18 -0800 Subject: [PATCH 1126/3441] build: reduce download junk in log files (#1121) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/3fc7c8a6-fbba-4d19-9ef9-7d740e5ce776/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/6946fd71ae9215b0e7ae188f5057df765ee6d7d2 --- .kokoro/build.sh | 2 +- .kokoro/dependencies.sh | 4 ++-- synth.metadata | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 020216e4868b..6569c9dd6267 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -29,7 +29,7 @@ echo ${JOB_TYPE} # attempt to install 3 times with exponential backoff (starting with 10 seconds) retry_with_backoff 3 10 \ - mvn install -B -V \ + mvn install -B -V -ntp \ -DskipTests=true \ -Dclirr.skip=true \ -Denforcer.skip=true \ diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index c91e5a56937a..0fb8c8436ccc 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -31,7 +31,7 @@ export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m" # this should run maven enforcer retry_with_backoff 3 10 \ - mvn install -B -V \ + mvn install -B -V -ntp \ -DskipTests=true \ -Dclirr.skip=true @@ -86,4 +86,4 @@ then else msg "Errors found. See log statements above." exit 1 -fi \ No newline at end of file +fi diff --git a/synth.metadata b/synth.metadata index accc342f29b6..f445777bbebe 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "60a6c4f63e5a755677ea0d3811207ee151ea07ba" + "sha": "5ab251eed173bd3554c444c394d088923255b29a" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1aeca92e4a38f47134cb955f52ea76f84f09ff88" + "sha": "6946fd71ae9215b0e7ae188f5057df765ee6d7d2" } } ], From c1ed29fe92df1737688c4e1edfd9a8301fc861c2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 19 Feb 2021 21:01:31 +0100 Subject: [PATCH 1127/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.10 (#1119) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 59c7e6ddb60e..78651bf7bc63 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.9 + 1.113.10 test From 54c59154e2ee3174ca7dfd2d371e821eff4dc4fc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 19 Feb 2021 21:04:16 +0100 Subject: [PATCH 1128/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.19.0 (#1122) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 78651bf7bc63..07aeeb3bb200 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20210204-1.31.0 - 0.18.0 + 0.19.0
    From 918061900ea75ba91d9939eaadf3707d5fd00581 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 19 Feb 2021 15:12:04 -0500 Subject: [PATCH 1129/3441] chore: resource cleanup for new bigquerystorage samples testing (#1123) --- .../src/main/java/com/example/bigquery/ResourceCleanUp.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java index 3ce8b6426f14..cc294f7a5f16 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java @@ -52,7 +52,8 @@ public static void main(String[] args) { if ((datasetName.contains("CREATE_DATASET_AWS_TEST_") || datasetName.contains("MY_DATASET_") || datasetName.contains("gcloud_test_") - || datasetName.contains("SHARED_DATASET_TEST_")) + || datasetName.contains("SHARED_DATASET_TEST_") + || datasetName.contains("WRITE_STREAM_TEST")) && dataset.getCreationTime() > sixHourAgo) { System.out.format("\tDeleting Dataset: %s\n", datasetName); bigquery.delete( From d2257521f83cb560f5a56acbd795c51fbd9f6a17 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 19 Feb 2021 20:16:05 +0000 Subject: [PATCH 1130/3441] chore(master): release 1.127.3 (#1124) :robot: I have created a release \*beep\* \*boop\* --- ### [1.127.3](https://www.github.com/googleapis/java-bigquery/compare/v1.127.2...v1.127.3) (2021-02-19) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.19.0 ([#1122](https://www.github.com/googleapis/java-bigquery/issues/1122)) ([54c5915](https://www.github.com/googleapis/java-bigquery/commit/54c59154e2ee3174ca7dfd2d371e821eff4dc4fc)) * update dependency com.google.cloud:google-cloud-storage to v1.113.10 ([#1119](https://www.github.com/googleapis/java-bigquery/issues/1119)) ([c1ed29f](https://www.github.com/googleapis/java-bigquery/commit/c1ed29fe92df1737688c4e1edfd9a8301fc861c2)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc2d71c869fd..f7d1d728f8c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.127.3](https://www.github.com/googleapis/java-bigquery/compare/v1.127.2...v1.127.3) (2021-02-19) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.19.0 ([#1122](https://www.github.com/googleapis/java-bigquery/issues/1122)) ([54c5915](https://www.github.com/googleapis/java-bigquery/commit/54c59154e2ee3174ca7dfd2d371e821eff4dc4fc)) +* update dependency com.google.cloud:google-cloud-storage to v1.113.10 ([#1119](https://www.github.com/googleapis/java-bigquery/issues/1119)) ([c1ed29f](https://www.github.com/googleapis/java-bigquery/commit/c1ed29fe92df1737688c4e1edfd9a8301fc861c2)) + ### [1.127.2](https://www.github.com/googleapis/java-bigquery/compare/v1.127.1...v1.127.2) (2021-02-15) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d5375a2d25b8..222d0ddd0871 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.3-SNAPSHOT + 1.127.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f682a024023c..a248f7871887 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.3-SNAPSHOT + 1.127.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.3-SNAPSHOT + 1.127.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 07aeeb3bb200..2eeb9cb31beb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.3-SNAPSHOT + 1.127.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.3-SNAPSHOT + 1.127.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9470cef5e7de..e4c3dda06212 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.3-SNAPSHOT + 1.127.3 diff --git a/versions.txt b/versions.txt index 0767b008b70f..4e65111ee10a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.2:1.127.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.3:1.127.3 \ No newline at end of file From b29f0ab8ba1b246c85804f4a15884fd1a3de71d8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 19 Feb 2021 20:28:04 +0000 Subject: [PATCH 1131/3441] chore(master): release 1.127.4-SNAPSHOT (#1125) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 222d0ddd0871..3a1f35e6a1dd 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.3 + 1.127.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a248f7871887..b369bfb76c25 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.3 + 1.127.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.3 + 1.127.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2eeb9cb31beb..8f4a64df51a1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.3 + 1.127.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.3 + 1.127.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e4c3dda06212..1f60f5c455df 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.3 + 1.127.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4e65111ee10a..26ac86828d9d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.3:1.127.3 \ No newline at end of file +google-cloud-bigquery:1.127.3:1.127.4-SNAPSHOT \ No newline at end of file From 41240a57ec81d8c59ca8fb468f84ee2ccfb6e827 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 20 Feb 2021 01:10:54 +0100 Subject: [PATCH 1132/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.3 (#1126) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 84b6091b4382..4948dc5f6c67 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.2 + 1.127.3 From f44af9736705727ce2b5e8d6ad2d4b9d19875d39 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 19 Feb 2021 16:24:08 -0800 Subject: [PATCH 1133/3441] chore: regenerate README (#1127) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-02-20 00:13:15,091 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-02-20 00:13:16,752 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/a0b0abf6-a4d1-4d17-907b-c6a17d10e414/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 9a8b9f510a74..7a491d178817 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "399bfc37559c3e7783a57ce3eac60840b999f6ef" + "sha": "41240a57ec81d8c59ca8fb468f84ee2ccfb6e827" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "b32c87d2c087fb2a841acc623ab540105de821af" + "sha": "79ab0b44a2cc7d803d07c107f9faf07729fc4012" } } ] diff --git a/README.md b/README.md index 0c4471611dbe..f67d4f9ed477 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.2 + 1.127.3 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.2' +compile 'com.google.cloud:google-cloud-bigquery:1.127.3' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.3" ``` ## Authentication From b042da754c99eacf31d37a69fbd39762dc75174b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 23 Feb 2021 17:34:34 +0100 Subject: [PATCH 1134/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210215-1.31.0 (#1128) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8f4a64df51a1..9c0897dd4bb5 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210204-1.31.0 + v2-rev20210215-1.31.0 0.19.0
    From 8ae422eff5d7bae29673cba810b3ab0409175495 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 23 Feb 2021 17:34:47 +0100 Subject: [PATCH 1135/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.20.1 (#1129) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4948dc5f6c67..91c5a8cc6cea 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.20.0 + 1.20.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1f60f5c455df..8bed03bf9271 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.20.0 + 1.20.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 7c1d4323fd41..abcac60766cb 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.20.0 + 1.20.1 test From aadb23fb149464289d835f337772393ff282c23a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 23 Feb 2021 17:35:01 +0100 Subject: [PATCH 1136/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.11 (#1130) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9c0897dd4bb5..3d636b1752ba 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.10 + 1.113.11 test From dbfd0bc991b7fe2b2a8daca9dfdbb060856cbeaf Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 23 Feb 2021 16:46:03 +0000 Subject: [PATCH 1137/3441] chore(master): release 1.127.4 (#1131) :robot: I have created a release \*beep\* \*boop\* --- ### [1.127.4](https://www.github.com/googleapis/java-bigquery/compare/v1.127.3...v1.127.4) (2021-02-23) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210215-1.31.0 ([#1128](https://www.github.com/googleapis/java-bigquery/issues/1128)) ([b042da7](https://www.github.com/googleapis/java-bigquery/commit/b042da754c99eacf31d37a69fbd39762dc75174b)) * update dependency com.google.cloud:google-cloud-bigtable to v1.20.1 ([#1129](https://www.github.com/googleapis/java-bigquery/issues/1129)) ([8ae422e](https://www.github.com/googleapis/java-bigquery/commit/8ae422eff5d7bae29673cba810b3ab0409175495)) * update dependency com.google.cloud:google-cloud-storage to v1.113.11 ([#1130](https://www.github.com/googleapis/java-bigquery/issues/1130)) ([aadb23f](https://www.github.com/googleapis/java-bigquery/commit/aadb23fb149464289d835f337772393ff282c23a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 9 +++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7d1d728f8c3..6088cfe2e9a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### [1.127.4](https://www.github.com/googleapis/java-bigquery/compare/v1.127.3...v1.127.4) (2021-02-23) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210215-1.31.0 ([#1128](https://www.github.com/googleapis/java-bigquery/issues/1128)) ([b042da7](https://www.github.com/googleapis/java-bigquery/commit/b042da754c99eacf31d37a69fbd39762dc75174b)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.20.1 ([#1129](https://www.github.com/googleapis/java-bigquery/issues/1129)) ([8ae422e](https://www.github.com/googleapis/java-bigquery/commit/8ae422eff5d7bae29673cba810b3ab0409175495)) +* update dependency com.google.cloud:google-cloud-storage to v1.113.11 ([#1130](https://www.github.com/googleapis/java-bigquery/issues/1130)) ([aadb23f](https://www.github.com/googleapis/java-bigquery/commit/aadb23fb149464289d835f337772393ff282c23a)) + ### [1.127.3](https://www.github.com/googleapis/java-bigquery/compare/v1.127.2...v1.127.3) (2021-02-19) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3a1f35e6a1dd..b8037646f512 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.4-SNAPSHOT + 1.127.4 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b369bfb76c25..3c073473371b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.4-SNAPSHOT + 1.127.4 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.4-SNAPSHOT + 1.127.4 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3d636b1752ba..f326d2c9fb29 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.4-SNAPSHOT + 1.127.4 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.4-SNAPSHOT + 1.127.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8bed03bf9271..010416badceb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.4-SNAPSHOT + 1.127.4 diff --git a/versions.txt b/versions.txt index 26ac86828d9d..1d75fd36ab98 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.3:1.127.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.4:1.127.4 \ No newline at end of file From e2fa4f6e1b2b72d41245c8803128187c986cd92c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 23 Feb 2021 16:58:03 +0000 Subject: [PATCH 1138/3441] chore(master): release 1.127.5-SNAPSHOT (#1132) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b8037646f512..43262bd161b3 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.4 + 1.127.5-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3c073473371b..1e5b15057643 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.4 + 1.127.5-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.4 + 1.127.5-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f326d2c9fb29..4cd778c24a85 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.4 + 1.127.5-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.4 + 1.127.5-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 010416badceb..fe95500118db 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.4 + 1.127.5-SNAPSHOT diff --git a/versions.txt b/versions.txt index 1d75fd36ab98..3089393371c7 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.4:1.127.4 \ No newline at end of file +google-cloud-bigquery:1.127.4:1.127.5-SNAPSHOT \ No newline at end of file From d2f01444ed274250cc4f42f1c95ffff13254ab66 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 23 Feb 2021 21:46:00 +0100 Subject: [PATCH 1139/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.4 (#1133) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 91c5a8cc6cea..9500926fa129 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.3 + 1.127.4 From 3c8f000ec0f8d04eeff6ddd1b66217dd24530e60 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 23 Feb 2021 21:58:05 +0100 Subject: [PATCH 1140/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.9 (#1134) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | `1.0.8` -> `1.0.9` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/1.0.9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/1.0.9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/1.0.9/compatibility-slim/1.0.8)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/1.0.9/confidence-slim/1.0.8)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v1.0.9`](https://togithub.com/googleapis/java-bigqueryconnection/blob/master/CHANGELOG.md#​109-httpswwwgithubcomgoogleapisjava-bigqueryconnectioncomparev108v109-2021-02-23) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v1.0.8...v1.0.9)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 9500926fa129..2033fca532f5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.8 + 1.0.9 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index fe95500118db..fb193c9b5264 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.8 + 1.0.9 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index abcac60766cb..17eba8d21cae 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.8 + 1.0.9 test From c6c9cf314990ff44473bffa09abe3c093f3baa31 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 23 Feb 2021 13:00:04 -0800 Subject: [PATCH 1141/3441] chore: regenerate README (#1135) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-02-23 20:48:25,353 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-02-23 20:48:27,013 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/329b974b-f252-4de9-941c-762c4a861986/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 7a491d178817..5c2e2fa6eed5 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "41240a57ec81d8c59ca8fb468f84ee2ccfb6e827" + "sha": "d2f01444ed274250cc4f42f1c95ffff13254ab66" } }, { diff --git a/README.md b/README.md index f67d4f9ed477..6786ec50ae21 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.3 + 1.127.4 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.3' +compile 'com.google.cloud:google-cloud-bigquery:1.127.4' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.4" ``` ## Authentication From e9c12d44f067a8408a4d62ec11bfa8a9d09c9298 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 24 Feb 2021 19:12:12 +0100 Subject: [PATCH 1142/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v17 (#1136) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 17eba8d21cae..2e115259e29e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 16.4.0 + 17.0.0 pom import From 2290aa9e62a3b82d911dce7cb5fae98d89125b15 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 24 Feb 2021 10:26:02 -0800 Subject: [PATCH 1143/3441] chore: regenerate README (#1137) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-02-24 18:14:54,653 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-02-24 18:14:56,283 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/21fc3959-607d-49a3-8a0d-57f70e717c06/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 5c2e2fa6eed5..90fe604638d2 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "d2f01444ed274250cc4f42f1c95ffff13254ab66" + "sha": "e9c12d44f067a8408a4d62ec11bfa8a9d09c9298" } }, { diff --git a/README.md b/README.md index 6786ec50ae21..7e05f887eebe 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 16.4.0 + 17.0.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:16.4.0') +implementation platform('com.google.cloud:libraries-bom:17.0.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From 512994faf521e8374da743406e0cb5e366a9d57c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 25 Feb 2021 01:16:08 +0100 Subject: [PATCH 1144/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v18 (#1138) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | `17.0.0` -> `18.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/18.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/18.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/18.0.0/compatibility-slim/17.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/18.0.0/confidence-slim/17.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 2e115259e29e..95f303a00de9 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 17.0.0 + 18.0.0 pom import From 21b8543ebd370f13e24561513679b9ab6ac5060e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 24 Feb 2021 16:30:09 -0800 Subject: [PATCH 1145/3441] chore: regenerate README (#1139) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-02-25 00:19:55,334 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-02-25 00:19:56,997 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/4ad48122-e8d2-4f1b-a440-867b8ab7303a/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 90fe604638d2..c8dc51757a7a 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "e9c12d44f067a8408a4d62ec11bfa8a9d09c9298" + "sha": "512994faf521e8374da743406e0cb5e366a9d57c" } }, { diff --git a/README.md b/README.md index 7e05f887eebe..92b0437ea654 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 17.0.0 + 18.0.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:17.0.0') +implementation platform('com.google.cloud:libraries-bom:18.0.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From 13e7a115015570375528574b058c846d469fd3a1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 25 Feb 2021 20:52:09 +0100 Subject: [PATCH 1146/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.11.0 (#1140) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `0.10.0` -> `0.11.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.11.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.11.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.11.0/compatibility-slim/0.10.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.11.0/confidence-slim/0.10.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v0.11.0`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​0110-httpswwwgithubcomgoogleapisjava-shared-configcomparev0100v0110-2021-02-25) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v0.10.0...v0.11.0) ##### Features - migrate releases to the new Google Sonatype endpoint to address Sonatype errors. ([#​230](https://www.github.com/googleapis/java-shared-config/issues/230)) ([ff6a95f](https://www.github.com/googleapis/java-shared-config/commit/ff6a95f7b0d24a1c37c38ba8ac6c6624ee97cc15)) ##### Dependencies - update dependency com.puppycrawl.tools:checkstyle to v8.40 ([#​221](https://www.github.com/googleapis/java-shared-config/issues/221)) ([d9b2d4a](https://www.github.com/googleapis/java-shared-config/commit/d9b2d4aab9a9bba1c2df6fcb52ac96ee8b001ad6)) - update dependency org.apache.maven.plugins:maven-checkstyle-plugin to v3.1.2 ([#​219](https://www.github.com/googleapis/java-shared-config/issues/219)) ([f7c3f79](https://www.github.com/googleapis/java-shared-config/commit/f7c3f798ef8ad1bc59ae673c84fbdd9f93ee2413))
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4cd778c24a85..2b7c8afbf379 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.10.0 + 0.11.0 From b5c90db802d19d1d3426cc4228061f7b6aafa28e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 25 Feb 2021 23:14:39 +0100 Subject: [PATCH 1147/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.20.0 (#1141) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `0.19.0` -> `0.20.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.20.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.20.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.20.0/compatibility-slim/0.19.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.20.0/confidence-slim/0.19.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v0.20.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​0200-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare0190v0200-2021-02-25) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v0.19.0...v0.20.0) ##### Dependencies - update dependency com.google.auth:google-auth-library-bom to v0.24.0 ([#​284](https://www.github.com/googleapis/java-shared-dependencies/issues/284)) ([5e4914c](https://www.github.com/googleapis/java-shared-dependencies/commit/5e4914cc4a8ccd41a219f150a7455da116d1594b)) - update dependency com.google.http-client:google-http-client-bom to v1.39.0 ([#​288](https://www.github.com/googleapis/java-shared-dependencies/issues/288)) ([70bb862](https://www.github.com/googleapis/java-shared-dependencies/commit/70bb862029b840fbd99ba0109fa2b8f585812793)) - update dependency com.google.protobuf:protobuf-bom to v3.15.1 ([#​282](https://www.github.com/googleapis/java-shared-dependencies/issues/282)) ([44283bd](https://www.github.com/googleapis/java-shared-dependencies/commit/44283bdfdc9288b4a8d16b6ed3a61541792d147e)) - update dependency com.google.protobuf:protobuf-bom to v3.15.2 ([#​287](https://www.github.com/googleapis/java-shared-dependencies/issues/287)) ([bdae560](https://www.github.com/googleapis/java-shared-dependencies/commit/bdae5600f9033219ef8beb6c4d1c521fb062eaec)) - update dependency io.grpc:grpc-bom to v1.36.0 ([#​285](https://www.github.com/googleapis/java-shared-dependencies/issues/285)) ([c59771b](https://www.github.com/googleapis/java-shared-dependencies/commit/c59771b2436ac1a4fbc92b48049900472dd6d3ff)) - update gax.version to v1.62.0 ([#​291](https://www.github.com/googleapis/java-shared-dependencies/issues/291)) ([66bd070](https://www.github.com/googleapis/java-shared-dependencies/commit/66bd0702bd3deb64e0f6c73635e0ffd51a4d637e)) - update google.common-protos.version to v2.1.0 ([#​289](https://www.github.com/googleapis/java-shared-dependencies/issues/289)) ([43c9f02](https://www.github.com/googleapis/java-shared-dependencies/commit/43c9f026b1fa82f38dcb93b902281c2559e82d8e)) - update iam.version to v1.0.9 ([#​281](https://www.github.com/googleapis/java-shared-dependencies/issues/281)) ([ee44d0b](https://www.github.com/googleapis/java-shared-dependencies/commit/ee44d0b41e101931ccf5de2561dfcfcc9ff88b88))
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2b7c8afbf379..0c17330028fa 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20210215-1.31.0 - 0.19.0 + 0.20.0
    From 7007482e72d301d5c44b6c8c58e04c725f340c09 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 25 Feb 2021 22:40:11 +0000 Subject: [PATCH 1148/3441] chore(master): release 1.127.5 (#1142) :robot: I have created a release \*beep\* \*boop\* --- ### [1.127.5](https://www.github.com/googleapis/java-bigquery/compare/v1.127.4...v1.127.5) (2021-02-25) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.20.0 ([#1141](https://www.github.com/googleapis/java-bigquery/issues/1141)) ([b5c90db](https://www.github.com/googleapis/java-bigquery/commit/b5c90db802d19d1d3426cc4228061f7b6aafa28e)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6088cfe2e9a4..03d2a7717a04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.127.5](https://www.github.com/googleapis/java-bigquery/compare/v1.127.4...v1.127.5) (2021-02-25) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.20.0 ([#1141](https://www.github.com/googleapis/java-bigquery/issues/1141)) ([b5c90db](https://www.github.com/googleapis/java-bigquery/commit/b5c90db802d19d1d3426cc4228061f7b6aafa28e)) + ### [1.127.4](https://www.github.com/googleapis/java-bigquery/compare/v1.127.3...v1.127.4) (2021-02-23) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 43262bd161b3..268c1e3b9cd0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.5-SNAPSHOT + 1.127.5 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1e5b15057643..065ee0b38793 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.5-SNAPSHOT + 1.127.5 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.5-SNAPSHOT + 1.127.5 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0c17330028fa..23bcf209253a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.5-SNAPSHOT + 1.127.5 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.5-SNAPSHOT + 1.127.5 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index fb193c9b5264..69e687aa9316 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.5-SNAPSHOT + 1.127.5 diff --git a/versions.txt b/versions.txt index 3089393371c7..4e25d163df57 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.4:1.127.5-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.5:1.127.5 \ No newline at end of file From bbac808dd26a2c3ce219265f740eff62db3e295e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 25 Feb 2021 22:56:10 +0000 Subject: [PATCH 1149/3441] chore(master): release 1.127.6-SNAPSHOT (#1143) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 268c1e3b9cd0..5fe82cee309b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.5 + 1.127.6-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 065ee0b38793..7d3d80aecfb2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.5 + 1.127.6-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.5 + 1.127.6-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 23bcf209253a..5d78029406da 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.5 + 1.127.6-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.5 + 1.127.6-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 69e687aa9316..cd6835f33c44 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.5 + 1.127.6-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4e25d163df57..bf333665a346 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.5:1.127.5 \ No newline at end of file +google-cloud-bigquery:1.127.5:1.127.6-SNAPSHOT \ No newline at end of file From fdf865ef13541d4bc6ed7f4f1393506f31ae494d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 26 Feb 2021 02:18:25 +0100 Subject: [PATCH 1150/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.10 (#1144) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | `1.0.9` -> `1.0.10` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/1.0.10/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/1.0.10/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/1.0.10/compatibility-slim/1.0.9)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/1.0.10/confidence-slim/1.0.9)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v1.0.10`](https://togithub.com/googleapis/java-bigqueryconnection/blob/master/CHANGELOG.md#​1010-httpswwwgithubcomgoogleapisjava-bigqueryconnectioncomparev109v1010-2021-02-25) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v1.0.9...v1.0.10)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2033fca532f5..1334f17a5d40 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.9 + 1.0.10 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index cd6835f33c44..33f5ed815313 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.9 + 1.0.10 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 95f303a00de9..95729daf8f9f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.9 + 1.0.10 test From 77790cda6941624eae0d56e1933f445c615193f9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 26 Feb 2021 02:20:09 +0100 Subject: [PATCH 1151/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.5 (#1145) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `1.127.4` -> `1.127.5` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.127.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.127.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.127.5/compatibility-slim/1.127.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.127.5/confidence-slim/1.127.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 1334f17a5d40..bcf06f96f836 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.4 + 1.127.5 From a66aae1d6712d5b67f7d34e81ecddc51c3a68b04 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 25 Feb 2021 17:36:10 -0800 Subject: [PATCH 1152/3441] chore: regenerate README (#1146) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-02-26 01:22:04,870 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-02-26 01:22:06,494 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/7f00400f-3e73-4526-9ce5-d2a6e8d0e07a/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index c8dc51757a7a..fe59aa2762dc 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "512994faf521e8374da743406e0cb5e366a9d57c" + "sha": "77790cda6941624eae0d56e1933f445c615193f9" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "79ab0b44a2cc7d803d07c107f9faf07729fc4012" + "sha": "8c5628b86cfa8386de7b8fc1675e6b528b552d57" } } ] diff --git a/README.md b/README.md index 92b0437ea654..7717c93e6a10 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.4 + 1.127.5 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.4' +compile 'com.google.cloud:google-cloud-bigquery:1.127.5' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.4" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.5" ``` ## Authentication From 2c46002011405de68cdbd84c4eb99b8014e1fb82 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 26 Feb 2021 23:16:33 +0100 Subject: [PATCH 1153/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.11 (#1148) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index bcf06f96f836..5e3519149a48 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.10 + 1.0.11 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 33f5ed815313..7ebe9509ecd2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.10 + 1.0.11 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 95729daf8f9f..dd4e001c4ae0 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.10 + 1.0.11 test From 4cafa863f2bcc1ae36c493c616aea6c699242015 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 1 Mar 2021 19:26:31 +0100 Subject: [PATCH 1154/3441] deps: update jmh.version to v1.28 (#1151) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5fe82cee309b..3152e833c249 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.26 + 1.28 benchmark From 5c7e32f890bb1fa5cc25641f8a73afb775eeb0a8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 1 Mar 2021 23:54:44 +0100 Subject: [PATCH 1155/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210219-1.31.0 (#1149) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5d78029406da..60537c6e5ec9 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210215-1.31.0 + v2-rev20210219-1.31.0 0.20.0
    From 9a058a746a27d34829e12e4e3ff4a838560181b1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 2 Mar 2021 21:37:23 +0100 Subject: [PATCH 1156/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.12 (#1153) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 60537c6e5ec9..75413c5a06e7 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.11 + 1.113.12 test From 60c78e3ed43f33867442589932cbb48dd5de50d6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 2 Mar 2021 20:50:03 +0000 Subject: [PATCH 1157/3441] chore(master): release 1.127.6 (#1152) :robot: I have created a release \*beep\* \*boop\* --- ### [1.127.6](https://www.github.com/googleapis/java-bigquery/compare/v1.127.5...v1.127.6) (2021-03-02) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210219-1.31.0 ([#1149](https://www.github.com/googleapis/java-bigquery/issues/1149)) ([5c7e32f](https://www.github.com/googleapis/java-bigquery/commit/5c7e32f890bb1fa5cc25641f8a73afb775eeb0a8)) * update dependency com.google.cloud:google-cloud-storage to v1.113.12 ([#1153](https://www.github.com/googleapis/java-bigquery/issues/1153)) ([9a058a7](https://www.github.com/googleapis/java-bigquery/commit/9a058a746a27d34829e12e4e3ff4a838560181b1)) * update jmh.version to v1.28 ([#1151](https://www.github.com/googleapis/java-bigquery/issues/1151)) ([4cafa86](https://www.github.com/googleapis/java-bigquery/commit/4cafa863f2bcc1ae36c493c616aea6c699242015)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 9 +++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03d2a7717a04..6bcb97384f56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### [1.127.6](https://www.github.com/googleapis/java-bigquery/compare/v1.127.5...v1.127.6) (2021-03-02) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210219-1.31.0 ([#1149](https://www.github.com/googleapis/java-bigquery/issues/1149)) ([5c7e32f](https://www.github.com/googleapis/java-bigquery/commit/5c7e32f890bb1fa5cc25641f8a73afb775eeb0a8)) +* update dependency com.google.cloud:google-cloud-storage to v1.113.12 ([#1153](https://www.github.com/googleapis/java-bigquery/issues/1153)) ([9a058a7](https://www.github.com/googleapis/java-bigquery/commit/9a058a746a27d34829e12e4e3ff4a838560181b1)) +* update jmh.version to v1.28 ([#1151](https://www.github.com/googleapis/java-bigquery/issues/1151)) ([4cafa86](https://www.github.com/googleapis/java-bigquery/commit/4cafa863f2bcc1ae36c493c616aea6c699242015)) + ### [1.127.5](https://www.github.com/googleapis/java-bigquery/compare/v1.127.4...v1.127.5) (2021-02-25) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3152e833c249..1092364c2416 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.6-SNAPSHOT + 1.127.6 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7d3d80aecfb2..9d7e2490f8cb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.6-SNAPSHOT + 1.127.6 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.6-SNAPSHOT + 1.127.6 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 75413c5a06e7..8f48c2a625bc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.6-SNAPSHOT + 1.127.6 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.6-SNAPSHOT + 1.127.6 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7ebe9509ecd2..91d9175f5c05 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.6-SNAPSHOT + 1.127.6 diff --git a/versions.txt b/versions.txt index bf333665a346..fb4db57838bf 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.5:1.127.6-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.6:1.127.6 \ No newline at end of file From 7cb21503b44b2225d52c298d6cc698a1335542fa Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 2 Mar 2021 21:02:03 +0000 Subject: [PATCH 1158/3441] chore(master): release 1.127.7-SNAPSHOT (#1154) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1092364c2416..62391aaa20d0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.6 + 1.127.7-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9d7e2490f8cb..9805cc6de5c7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.6 + 1.127.7-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.6 + 1.127.7-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8f48c2a625bc..7a008e8686a0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.6 + 1.127.7-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.6 + 1.127.7-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 91d9175f5c05..d90ff09e742d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.6 + 1.127.7-SNAPSHOT diff --git a/versions.txt b/versions.txt index fb4db57838bf..b1741c22b36c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.6:1.127.6 \ No newline at end of file +google-cloud-bigquery:1.127.6:1.127.7-SNAPSHOT \ No newline at end of file From efe50ecf78fc1a3abc41f2f5ffa935b3f7406342 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 2 Mar 2021 15:28:10 -0800 Subject: [PATCH 1159/3441] chore: remove docLava v2 doc generation (#1155) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/0d794d04-cd8c-4499-82a0-751efac2bdce/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/21da7d9fa02f6916d9f87cf4072b3547b5c72eb5 --- .kokoro/release/publish_javadoc.cfg | 8 +------- .kokoro/release/publish_javadoc.sh | 19 ------------------- synth.metadata | 4 ++-- 3 files changed, 3 insertions(+), 28 deletions(-) diff --git a/.kokoro/release/publish_javadoc.cfg b/.kokoro/release/publish_javadoc.cfg index 31a55281915b..eedb45d5917f 100644 --- a/.kokoro/release/publish_javadoc.cfg +++ b/.kokoro/release/publish_javadoc.cfg @@ -7,12 +7,6 @@ env_vars: { value: "docs-staging" } -# cloud-rad staging -env_vars: { - key: "STAGING_BUCKET_V2" - value: "docs-staging-v2-staging" -} - env_vars: { key: "TRAMPOLINE_BUILD_FILE" value: "github/java-bigquery/.kokoro/release/publish_javadoc.sh" @@ -26,4 +20,4 @@ before_action { keyname: "docuploader_service_account" } } -} \ No newline at end of file +} diff --git a/.kokoro/release/publish_javadoc.sh b/.kokoro/release/publish_javadoc.sh index f0be47d2240e..0a093ea597bc 100755 --- a/.kokoro/release/publish_javadoc.sh +++ b/.kokoro/release/publish_javadoc.sh @@ -56,22 +56,3 @@ python3 -m docuploader create-metadata \ python3 -m docuploader upload . \ --credentials ${CREDENTIALS} \ --staging-bucket ${STAGING_BUCKET} - -popd - -# V2 due to problems w/ the released javadoc plugin doclava, Java 8 is required. Beware of accidental updates. - -mvn clean site -B -q -Ddevsite.template="${KOKORO_GFILE_DIR}/java/" - -pushd target/devsite/reference - -# create metadata -python3 -m docuploader create-metadata \ - --name ${NAME} \ - --version ${VERSION} \ - --language java - -# upload docs to staging bucket -python3 -m docuploader upload . \ - --credentials ${CREDENTIALS} \ - --staging-bucket ${STAGING_BUCKET_V2} diff --git a/synth.metadata b/synth.metadata index f445777bbebe..100a226277db 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "5ab251eed173bd3554c444c394d088923255b29a" + "sha": "7cb21503b44b2225d52c298d6cc698a1335542fa" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "6946fd71ae9215b0e7ae188f5057df765ee6d7d2" + "sha": "21da7d9fa02f6916d9f87cf4072b3547b5c72eb5" } } ], From 4dbcc0e362cd65a45cf5b2cfb63ed9db5ad0cac2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 3 Mar 2021 20:36:28 +0100 Subject: [PATCH 1160/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v18.1.0 (#1157) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | `18.0.0` -> `18.1.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/18.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/18.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/18.1.0/compatibility-slim/18.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/18.1.0/confidence-slim/18.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index dd4e001c4ae0..f90083b710f9 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 18.0.0 + 18.1.0 pom import From 894d081d9ba61101cc55b1e4e484d84e20891c4b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 3 Mar 2021 20:38:21 +0100 Subject: [PATCH 1161/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.6 (#1156) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `1.127.5` -> `1.127.6` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.127.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.127.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.127.6/compatibility-slim/1.127.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.127.6/confidence-slim/1.127.5)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v1.127.6`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​11276-httpswwwgithubcomgoogleapisjava-bigquerycomparev11275v11276-2021-03-02) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.127.5...v1.127.6)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5e3519149a48..a1993084fb19 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.5 + 1.127.6 From a53a6857807975c645d339f80a1c84ff3a8d5b9e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 3 Mar 2021 12:16:11 -0800 Subject: [PATCH 1162/3441] chore: regenerate README (#1158) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-03-03 19:41:47,780 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-03-03 19:41:48,894 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/e6de9a8c-c364-40ad-a6e5-f62ca0624a37/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index fe59aa2762dc..d484d39369f6 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "77790cda6941624eae0d56e1933f445c615193f9" + "sha": "894d081d9ba61101cc55b1e4e484d84e20891c4b" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "8c5628b86cfa8386de7b8fc1675e6b528b552d57" + "sha": "2e7bd5cc66a3f0b90ce1c150eb35c89eeb9872d6" } } ] diff --git a/README.md b/README.md index 7717c93e6a10..5fc284ec8428 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 18.0.0 + 18.1.0 pom import @@ -40,25 +40,25 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.5 + 1.127.6 ``` If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:18.0.0') +implementation platform('com.google.cloud:libraries-bom:18.1.0') compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.5' +compile 'com.google.cloud:google-cloud-bigquery:1.127.6' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.5" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.6" ``` ## Authentication From 8ab0a071cb076baaf59069ca4d31e13feb28a2dd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 4 Mar 2021 20:36:21 +0100 Subject: [PATCH 1163/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v19 (#1160) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | `18.1.0` -> `19.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/19.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/19.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/19.0.0/compatibility-slim/18.1.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/19.0.0/confidence-slim/18.1.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f90083b710f9..73db6149c648 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 18.1.0 + 19.0.0 pom import From 4e781017adc4f4ce574250baba3e30349aaf5d75 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 4 Mar 2021 11:56:14 -0800 Subject: [PATCH 1164/3441] chore: regenerate README (#1162) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-03-04 19:39:22,261 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-03-04 19:39:23,268 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/8951d3c1-8c47-4c29-8339-6334f9eda8b8/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index d484d39369f6..7d6c25a7c56d 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "894d081d9ba61101cc55b1e4e484d84e20891c4b" + "sha": "8ab0a071cb076baaf59069ca4d31e13feb28a2dd" } }, { diff --git a/README.md b/README.md index 5fc284ec8428..6dd5b17d588b 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 18.1.0 + 19.0.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:18.1.0') +implementation platform('com.google.cloud:libraries-bom:19.0.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From b7b9fc4622f74dab9f985fedfc53e6f46caac90a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 5 Mar 2021 08:55:02 -0800 Subject: [PATCH 1165/3441] chore: copy README to docfx-yml dir (#1163) * chore: copy README to docfx-yml dir - also cleaning up uneccessary dash in destination_prefix * chore: update path Source-Author: Emily Ball Source-Date: Thu Mar 4 11:56:04 2021 -0800 Source-Repo: googleapis/synthtool Source-Sha: d0bdade9a962042dc0f770cf631086f3db59b5b0 Source-Link: https://github.com/googleapis/synthtool/commit/d0bdade9a962042dc0f770cf631086f3db59b5b0 --- .kokoro/release/publish_javadoc11.sh | 5 ++++- synth.metadata | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.kokoro/release/publish_javadoc11.sh b/.kokoro/release/publish_javadoc11.sh index 7e59c0f9ca2f..b519341e0e1e 100755 --- a/.kokoro/release/publish_javadoc11.sh +++ b/.kokoro/release/publish_javadoc11.sh @@ -40,6 +40,9 @@ export VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) # generate yml mvn clean site -B -q -P docFX +# copy README to docfx-yml dir and rename index.md +cp README.md target/docfx-yml/index.md + pushd target/docfx-yml # create metadata @@ -52,4 +55,4 @@ python3 -m docuploader create-metadata \ python3 -m docuploader upload . \ --credentials ${CREDENTIALS} \ --staging-bucket ${STAGING_BUCKET_V2} \ - --destination-prefix docfx- + --destination-prefix docfx diff --git a/synth.metadata b/synth.metadata index 100a226277db..f99025f540de 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "7cb21503b44b2225d52c298d6cc698a1335542fa" + "sha": "4e781017adc4f4ce574250baba3e30349aaf5d75" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "21da7d9fa02f6916d9f87cf4072b3547b5c72eb5" + "sha": "d0bdade9a962042dc0f770cf631086f3db59b5b0" } } ], From 624cefc8e658f5fc47c4a29d1dd71a76c46edfa9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 9 Mar 2021 17:10:16 +0100 Subject: [PATCH 1166/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.21.0 (#1159) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a1993084fb19..b2d654a80ed4 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.20.1 + 1.21.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d90ff09e742d..d0088a7d5769 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.20.1 + 1.21.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 73db6149c648..463f18e3316a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.20.1 + 1.21.0 test From 58e2ddf2250d135a8e16afc98bbed9bb62ba38cf Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 9 Mar 2021 21:42:27 +0100 Subject: [PATCH 1167/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.20.1 (#1166) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `0.20.0` -> `0.20.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.20.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.20.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.20.1/compatibility-slim/0.20.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.20.1/confidence-slim/0.20.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v0.20.1`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​0201-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare0200v0201-2021-03-09) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v0.20.0...v0.20.1)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7a008e8686a0..a96d5160bec4 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20210219-1.31.0 - 0.20.0 + 0.20.1
    From 34c684397cf4ddb1fb2e7b7cac68ef5c12dc8b92 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 10 Mar 2021 19:08:03 +0100 Subject: [PATCH 1168/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.13 (#1164) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `1.113.12` -> `1.113.13` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.113.13/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.113.13/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.113.13/compatibility-slim/1.113.12)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.113.13/confidence-slim/1.113.12)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v1.113.13`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​111313-httpswwwgithubcomgoogleapisjava-storagecomparev111312v111313-2021-03-08) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v1.113.12...v1.113.13)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a96d5160bec4..4c091a037fbf 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.12 + 1.113.13 test From b7857788302e176b646ea21b3c55d1bcc01a08c8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 10 Mar 2021 18:24:03 +0000 Subject: [PATCH 1169/3441] chore: release 1.127.7 (#1165) :robot: I have created a release \*beep\* \*boop\* --- ### [1.127.7](https://www.github.com/googleapis/java-bigquery/compare/v1.127.6...v1.127.7) (2021-03-10) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.21.0 ([#1159](https://www.github.com/googleapis/java-bigquery/issues/1159)) ([624cefc](https://www.github.com/googleapis/java-bigquery/commit/624cefc8e658f5fc47c4a29d1dd71a76c46edfa9)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.20.1 ([#1166](https://www.github.com/googleapis/java-bigquery/issues/1166)) ([58e2ddf](https://www.github.com/googleapis/java-bigquery/commit/58e2ddf2250d135a8e16afc98bbed9bb62ba38cf)) * update dependency com.google.cloud:google-cloud-storage to v1.113.13 ([#1164](https://www.github.com/googleapis/java-bigquery/issues/1164)) ([34c6843](https://www.github.com/googleapis/java-bigquery/commit/34c684397cf4ddb1fb2e7b7cac68ef5c12dc8b92)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 9 +++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bcb97384f56..fbf83919ae49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### [1.127.7](https://www.github.com/googleapis/java-bigquery/compare/v1.127.6...v1.127.7) (2021-03-10) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.21.0 ([#1159](https://www.github.com/googleapis/java-bigquery/issues/1159)) ([624cefc](https://www.github.com/googleapis/java-bigquery/commit/624cefc8e658f5fc47c4a29d1dd71a76c46edfa9)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.20.1 ([#1166](https://www.github.com/googleapis/java-bigquery/issues/1166)) ([58e2ddf](https://www.github.com/googleapis/java-bigquery/commit/58e2ddf2250d135a8e16afc98bbed9bb62ba38cf)) +* update dependency com.google.cloud:google-cloud-storage to v1.113.13 ([#1164](https://www.github.com/googleapis/java-bigquery/issues/1164)) ([34c6843](https://www.github.com/googleapis/java-bigquery/commit/34c684397cf4ddb1fb2e7b7cac68ef5c12dc8b92)) + ### [1.127.6](https://www.github.com/googleapis/java-bigquery/compare/v1.127.5...v1.127.6) (2021-03-02) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 62391aaa20d0..bc40d62d51bd 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.7-SNAPSHOT + 1.127.7 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9805cc6de5c7..d02d96828fd1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.7-SNAPSHOT + 1.127.7 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.7-SNAPSHOT + 1.127.7 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4c091a037fbf..2ed68da5f7f8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.7-SNAPSHOT + 1.127.7 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.7-SNAPSHOT + 1.127.7 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d0088a7d5769..c5a49f8ca1bd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.7-SNAPSHOT + 1.127.7 diff --git a/versions.txt b/versions.txt index b1741c22b36c..686acae516ad 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.6:1.127.7-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.7:1.127.7 \ No newline at end of file From 4ffc66836bab9b3a3fd88222bec778e6bcec81cd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 10 Mar 2021 20:52:50 +0100 Subject: [PATCH 1170/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.12 (#1169) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b2d654a80ed4..37a889745ee2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.11 + 1.0.12 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c5a49f8ca1bd..e79ad95511d5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.11 + 1.0.12 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 463f18e3316a..5c750b4810bb 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.11 + 1.0.12 test From e4d801d92a9dacaeddfc16211b0b762ab36f49cc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 10 Mar 2021 20:53:00 +0100 Subject: [PATCH 1171/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.7 (#1168) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 37a889745ee2..cbe067f5db56 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.6 + 1.127.7 From 1ba4890539059c944c3b49d21faa7c7c829979c2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 10 Mar 2021 20:04:04 +0000 Subject: [PATCH 1172/3441] chore: release 1.127.8-SNAPSHOT (#1167) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index bc40d62d51bd..0f2888dc6d0e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.7 + 1.127.8-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d02d96828fd1..24d84212b2c2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.7 + 1.127.8-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.7 + 1.127.8-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2ed68da5f7f8..3152324b1c45 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.7 + 1.127.8-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.7 + 1.127.8-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e79ad95511d5..00192fe4e1bb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.7 + 1.127.8-SNAPSHOT diff --git a/versions.txt b/versions.txt index 686acae516ad..e0654cae1042 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.7:1.127.7 \ No newline at end of file +google-cloud-bigquery:1.127.7:1.127.8-SNAPSHOT \ No newline at end of file From 9f2a4f1904a43910ec8a7286a58ad260da749111 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 10 Mar 2021 12:06:03 -0800 Subject: [PATCH 1173/3441] chore: regenerate README (#1170) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-03-10 19:55:03,219 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-03-10 19:55:04,290 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/6c58ff73-302c-40ad-ac50-aa278b23f3d9/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 7d6c25a7c56d..b2e09276808e 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "8ab0a071cb076baaf59069ca4d31e13feb28a2dd" + "sha": "e4d801d92a9dacaeddfc16211b0b762ab36f49cc" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "2e7bd5cc66a3f0b90ce1c150eb35c89eeb9872d6" + "sha": "0b064d767537e0675fc053e53fca473c5c701fb8" } } ] diff --git a/README.md b/README.md index 6dd5b17d588b..fc623c9ee47e 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.6 + 1.127.7 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.6' +compile 'com.google.cloud:google-cloud-bigquery:1.127.7' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.6" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.7" ``` ## Authentication From 7e521a83b5613060aaa15e78506b4ac46ba477c9 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 10 Mar 2021 16:10:35 -0800 Subject: [PATCH 1174/3441] build(java): update autorelease title check in response to the new multi release branch changes (#1172) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/bb67d652-85f5-42a7-8b9c-b92117ee6252/targets - [ ] To automatically regenerate this PR, check this box. Source-Link: https://github.com/googleapis/synthtool/commit/0b064d767537e0675fc053e53fca473c5c701fb8 --- .github/workflows/auto-release.yaml | 4 ++-- synth.metadata | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 7c8816a7d7b1..9b4fd4d8348d 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -16,8 +16,8 @@ jobs: return; } - // only approve PRs like "chore(master): release " - if ( !context.payload.pull_request.title.startsWith("chore(master): release") ) { + // only approve PRs like "chore: release " + if ( !context.payload.pull_request.title.startsWith("chore: release") ) { return; } diff --git a/synth.metadata b/synth.metadata index f99025f540de..d8a19c075e35 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "4e781017adc4f4ce574250baba3e30349aaf5d75" + "sha": "9f2a4f1904a43910ec8a7286a58ad260da749111" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "d0bdade9a962042dc0f770cf631086f3db59b5b0" + "sha": "0b064d767537e0675fc053e53fca473c5c701fb8" } } ], From ba27951225418b49635607a7e9a913f6b2328575 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 11 Mar 2021 18:31:56 +0100 Subject: [PATCH 1175/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210303-1.31.0 (#1171) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3152324b1c45..32911e0ff64a 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210219-1.31.0 + v2-rev20210303-1.31.0 0.20.1
    From 0c05faa2bbf34595b78a45f564960baf006536ac Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 11 Mar 2021 17:48:03 +0000 Subject: [PATCH 1176/3441] chore: release 1.127.8 (#1173) :robot: I have created a release \*beep\* \*boop\* --- ### [1.127.8](https://www.github.com/googleapis/java-bigquery/compare/v1.127.7...v1.127.8) (2021-03-11) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210303-1.31.0 ([#1171](https://www.github.com/googleapis/java-bigquery/issues/1171)) ([ba27951](https://www.github.com/googleapis/java-bigquery/commit/ba27951225418b49635607a7e9a913f6b2328575)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fbf83919ae49..055bfe8a3c5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.127.8](https://www.github.com/googleapis/java-bigquery/compare/v1.127.7...v1.127.8) (2021-03-11) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210303-1.31.0 ([#1171](https://www.github.com/googleapis/java-bigquery/issues/1171)) ([ba27951](https://www.github.com/googleapis/java-bigquery/commit/ba27951225418b49635607a7e9a913f6b2328575)) + ### [1.127.7](https://www.github.com/googleapis/java-bigquery/compare/v1.127.6...v1.127.7) (2021-03-10) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 0f2888dc6d0e..d1bdf6246222 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.8-SNAPSHOT + 1.127.8 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 24d84212b2c2..3e29a6546642 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.8-SNAPSHOT + 1.127.8 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.8-SNAPSHOT + 1.127.8 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 32911e0ff64a..14ad5d179a54 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.8-SNAPSHOT + 1.127.8 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.8-SNAPSHOT + 1.127.8 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 00192fe4e1bb..62aeb46a5523 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.8-SNAPSHOT + 1.127.8 diff --git a/versions.txt b/versions.txt index e0654cae1042..81e82cadbd4c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.7:1.127.8-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.8:1.127.8 \ No newline at end of file From 0e33a56bae86c1b2295f5dc540170fd51e2d089d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 11 Mar 2021 18:00:06 +0000 Subject: [PATCH 1177/3441] chore: release 1.127.9-SNAPSHOT (#1174) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d1bdf6246222..69ff1dcc3d8a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.8 + 1.127.9-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3e29a6546642..886d6efa2fd7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.8 + 1.127.9-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.8 + 1.127.9-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 14ad5d179a54..1aafb3915f25 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.8 + 1.127.9-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.8 + 1.127.9-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 62aeb46a5523..e8133a9a7c75 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.8 + 1.127.9-SNAPSHOT diff --git a/versions.txt b/versions.txt index 81e82cadbd4c..b2e7d4210d6f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.8:1.127.8 \ No newline at end of file +google-cloud-bigquery:1.127.8:1.127.9-SNAPSHOT \ No newline at end of file From 6cbbb4824fa64da23a9a60413f1407e563f3276f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 15 Mar 2021 17:55:37 +0100 Subject: [PATCH 1178/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.8 (#1175) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index cbe067f5db56..40d93e4dcd0a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.7 + 1.127.8 From c84fc5c5f7f9b5d30e0dae921542a53cb20b8f37 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 15 Mar 2021 17:56:24 +0100 Subject: [PATCH 1179/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.14 (#1176) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1aafb3915f25..436e3bd0ccf0 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.13 + 1.113.14 test From ba0cfc2cf76d9fa16c2b75870338414d38e1722b Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 15 Mar 2021 10:16:03 -0700 Subject: [PATCH 1180/3441] chore: regenerate README (#1179) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-03-15 17:02:27,799 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-03-15 17:02:28,809 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/8f394944-784f-42eb-af28-9c325481c0d5/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index b2e09276808e..184ce3ef3ba5 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "e4d801d92a9dacaeddfc16211b0b762ab36f49cc" + "sha": "c84fc5c5f7f9b5d30e0dae921542a53cb20b8f37" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "0b064d767537e0675fc053e53fca473c5c701fb8" + "sha": "2c54c473779ea731128cea61a3a6c975a08a5378" } } ] diff --git a/README.md b/README.md index fc623c9ee47e..5a77761c80c4 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.7 + 1.127.8 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.7' +compile 'com.google.cloud:google-cloud-bigquery:1.127.8' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.7" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.8" ``` ## Authentication From 3a8c51c70755932c478d6a39a736bd84270dfaf9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 16 Mar 2021 17:25:07 +0100 Subject: [PATCH 1181/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.13 (#1180) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 40d93e4dcd0a..8e8aed3fd214 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.12 + 1.0.13 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e8133a9a7c75..9e74516837da 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.12 + 1.0.13 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 5c750b4810bb..3ffdd42f5f32 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -82,7 +82,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.12 + 1.0.13 test From fbbf96aecd3b49adb1d180652eff02a562449cce Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 16 Mar 2021 21:28:39 +0100 Subject: [PATCH 1182/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.21.1 (#1181) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8e8aed3fd214..3a1c5a49e69c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.21.0 + 1.21.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9e74516837da..2f9b268c95d6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.21.0 + 1.21.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3ffdd42f5f32..ed9f7960da49 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigtable - 1.21.0 + 1.21.1 test From 4c1a2453648312809d6ba415f7a8df76e2e93cbb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 17 Mar 2021 19:30:33 +0100 Subject: [PATCH 1183/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v19.1.0 (#1182) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ed9f7960da49..f8164586ec9c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 19.0.0 + 19.1.0 pom import From ba9fb0585e0a83cc3e93b8f3c5577de36b29547c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 17 Mar 2021 18:56:04 +0000 Subject: [PATCH 1184/3441] chore: release 1.127.9 (#1178) :robot: I have created a release \*beep\* \*boop\* --- ### [1.127.9](https://www.github.com/googleapis/java-bigquery/compare/v1.127.8...v1.127.9) (2021-03-17) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.21.1 ([#1181](https://www.github.com/googleapis/java-bigquery/issues/1181)) ([fbbf96a](https://www.github.com/googleapis/java-bigquery/commit/fbbf96aecd3b49adb1d180652eff02a562449cce)) * update dependency com.google.cloud:google-cloud-storage to v1.113.14 ([#1176](https://www.github.com/googleapis/java-bigquery/issues/1176)) ([c84fc5c](https://www.github.com/googleapis/java-bigquery/commit/c84fc5c5f7f9b5d30e0dae921542a53cb20b8f37)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 055bfe8a3c5f..c88a3d28a3ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.127.9](https://www.github.com/googleapis/java-bigquery/compare/v1.127.8...v1.127.9) (2021-03-17) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.21.1 ([#1181](https://www.github.com/googleapis/java-bigquery/issues/1181)) ([fbbf96a](https://www.github.com/googleapis/java-bigquery/commit/fbbf96aecd3b49adb1d180652eff02a562449cce)) +* update dependency com.google.cloud:google-cloud-storage to v1.113.14 ([#1176](https://www.github.com/googleapis/java-bigquery/issues/1176)) ([c84fc5c](https://www.github.com/googleapis/java-bigquery/commit/c84fc5c5f7f9b5d30e0dae921542a53cb20b8f37)) + ### [1.127.8](https://www.github.com/googleapis/java-bigquery/compare/v1.127.7...v1.127.8) (2021-03-11) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 69ff1dcc3d8a..c1a54ebacfe1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.9-SNAPSHOT + 1.127.9 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 886d6efa2fd7..84fb5f790380 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.9-SNAPSHOT + 1.127.9 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.9-SNAPSHOT + 1.127.9 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 436e3bd0ccf0..a591535acb18 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.9-SNAPSHOT + 1.127.9 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.9-SNAPSHOT + 1.127.9 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2f9b268c95d6..d013e7029784 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.9-SNAPSHOT + 1.127.9 diff --git a/versions.txt b/versions.txt index b2e7d4210d6f..78721fc258a6 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.8:1.127.9-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.9:1.127.9 \ No newline at end of file From ee8e457d7cb20d164ff369cea689169475a42762 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 17 Mar 2021 12:02:05 -0700 Subject: [PATCH 1185/3441] chore: regenerate README (#1183) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-03-17 18:32:50,121 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-03-17 18:32:51,357 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/0517871e-17df-4609-bea4-116c5a324c0e/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 184ce3ef3ba5..5d6fa67ca2d0 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "c84fc5c5f7f9b5d30e0dae921542a53cb20b8f37" + "sha": "4c1a2453648312809d6ba415f7a8df76e2e93cbb" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "2c54c473779ea731128cea61a3a6c975a08a5378" + "sha": "78437c732a60c64895778697b078497b0988346c" } } ] diff --git a/README.md b/README.md index 5a77761c80c4..52036cd62381 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 19.0.0 + 19.1.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:19.0.0') +implementation platform('com.google.cloud:libraries-bom:19.1.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From 866b2da1ab57d5a6ccf1581890ff5102f288ad78 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 17 Mar 2021 19:32:04 +0000 Subject: [PATCH 1186/3441] chore: release 1.127.10-SNAPSHOT (#1184) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c1a54ebacfe1..1dcdd8949503 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.9 + 1.127.10-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 84fb5f790380..00e95c6a7923 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.9 + 1.127.10-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.9 + 1.127.10-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a591535acb18..974ee9d60c3c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.9 + 1.127.10-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.9 + 1.127.10-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d013e7029784..3950912dbab0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.9 + 1.127.10-SNAPSHOT diff --git a/versions.txt b/versions.txt index 78721fc258a6..c94a22c69cb0 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.9:1.127.9 \ No newline at end of file +google-cloud-bigquery:1.127.9:1.127.10-SNAPSHOT \ No newline at end of file From bba71f2f475f6dd8bf2a9d567aaed26377543abe Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 18 Mar 2021 23:34:36 +0100 Subject: [PATCH 1187/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210313-1.31.0 (#1187) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 974ee9d60c3c..89bbf85f03c3 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210303-1.31.0 + v2-rev20210313-1.31.0 0.20.1 From 93402b903bb20bf436359fe3a6e034536bf812ae Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 18 Mar 2021 23:35:27 +0100 Subject: [PATCH 1188/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v19.2.0 (#1186) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f8164586ec9c..8fb4dfb36a18 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 19.1.0 + 19.2.0 pom import From dbdad37d11dbcad998a35133b6e36321486023fb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 18 Mar 2021 23:36:08 +0100 Subject: [PATCH 1189/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.9 (#1185) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3a1c5a49e69c..634c3e9d7ed5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.8 + 1.127.9 From fda8a73e96d0afd2f2c2ab6d7fd6cd6d69808211 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 18 Mar 2021 15:48:03 -0700 Subject: [PATCH 1190/3441] chore: regenerate README (#1189) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-03-18 22:36:46,865 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-03-18 22:36:47,837 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/94e54c49-9325-4c8d-b511-a3a6d7332e3b/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 5d6fa67ca2d0..b620776ce8f5 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "4c1a2453648312809d6ba415f7a8df76e2e93cbb" + "sha": "dbdad37d11dbcad998a35133b6e36321486023fb" } }, { diff --git a/README.md b/README.md index 52036cd62381..74fc6e20d761 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 19.1.0 + 19.2.0 pom import @@ -40,25 +40,25 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.8 + 1.127.9 ``` If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:19.1.0') +implementation platform('com.google.cloud:libraries-bom:19.2.0') compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.8' +compile 'com.google.cloud:google-cloud-bigquery:1.127.9' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.8" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.9" ``` ## Authentication From 1648d5c1f30d0050f4103afcba9373e67efd347e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 19 Mar 2021 19:04:02 +0100 Subject: [PATCH 1191/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v19.2.1 (#1190) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | `19.2.0` -> `19.2.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/19.2.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/19.2.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/19.2.1/compatibility-slim/19.2.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/19.2.1/confidence-slim/19.2.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 8fb4dfb36a18..12d7c35d6caf 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -44,7 +44,7 @@ com.google.cloud libraries-bom - 19.2.0 + 19.2.1 pom import From 4d387569eda20dce13f858e98c399a28fa85a770 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 19 Mar 2021 18:42:03 +0000 Subject: [PATCH 1192/3441] chore: release 1.127.10 (#1188) :robot: I have created a release \*beep\* \*boop\* --- ### [1.127.10](https://www.github.com/googleapis/java-bigquery/compare/v1.127.9...v1.127.10) (2021-03-19) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210313-1.31.0 ([#1187](https://www.github.com/googleapis/java-bigquery/issues/1187)) ([bba71f2](https://www.github.com/googleapis/java-bigquery/commit/bba71f2f475f6dd8bf2a9d567aaed26377543abe)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c88a3d28a3ee..26cd1622d3d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.127.10](https://www.github.com/googleapis/java-bigquery/compare/v1.127.9...v1.127.10) (2021-03-19) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210313-1.31.0 ([#1187](https://www.github.com/googleapis/java-bigquery/issues/1187)) ([bba71f2](https://www.github.com/googleapis/java-bigquery/commit/bba71f2f475f6dd8bf2a9d567aaed26377543abe)) + ### [1.127.9](https://www.github.com/googleapis/java-bigquery/compare/v1.127.8...v1.127.9) (2021-03-17) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1dcdd8949503..858666323ecb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.10-SNAPSHOT + 1.127.10 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 00e95c6a7923..a604e903e669 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.10-SNAPSHOT + 1.127.10 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.10-SNAPSHOT + 1.127.10 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 89bbf85f03c3..af14a47858c9 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.10-SNAPSHOT + 1.127.10 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.10-SNAPSHOT + 1.127.10 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3950912dbab0..cd29682df4d8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.10-SNAPSHOT + 1.127.10 diff --git a/versions.txt b/versions.txt index c94a22c69cb0..ac0078a6cbca 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.9:1.127.10-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.10:1.127.10 \ No newline at end of file From 9b5de7c8bff82312186c86017f879f2f82fe1d9c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 19 Mar 2021 12:00:07 -0700 Subject: [PATCH 1193/3441] chore: regenerate README (#1191) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-03-19 18:06:15,376 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-03-19 18:06:16,403 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/ffcd156c-4bb2-450b-8388-713ec5ba2593/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index b620776ce8f5..5ebc107bcbb9 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "dbdad37d11dbcad998a35133b6e36321486023fb" + "sha": "1648d5c1f30d0050f4103afcba9373e67efd347e" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "78437c732a60c64895778697b078497b0988346c" + "sha": "8b13da943497f75c5303700bff5aabdd85d939e0" } } ] diff --git a/README.md b/README.md index 74fc6e20d761..b2e5f957b540 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 19.2.0 + 19.2.1 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:19.2.0') +implementation platform('com.google.cloud:libraries-bom:19.2.1') compile 'com.google.cloud:google-cloud-bigquery' ``` From 6a57dd65a8ca51bf4e1a62fe3df7e67abd014b6b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 19 Mar 2021 19:20:06 +0000 Subject: [PATCH 1194/3441] chore: release 1.127.11-SNAPSHOT (#1192) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 858666323ecb..9d228bde72be 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.10 + 1.127.11-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a604e903e669..8eb48b6f1318 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.10 + 1.127.11-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.10 + 1.127.11-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index af14a47858c9..7343688d76b1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.10 + 1.127.11-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.10 + 1.127.11-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index cd29682df4d8..1307bb9c51f9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.10 + 1.127.11-SNAPSHOT diff --git a/versions.txt b/versions.txt index ac0078a6cbca..24db48ddadb8 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.10:1.127.10 \ No newline at end of file +google-cloud-bigquery:1.127.10:1.127.11-SNAPSHOT \ No newline at end of file From 9cc06838e2eaca5aa6c2a525aa42b8efde31e492 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 22 Mar 2021 16:14:49 +0100 Subject: [PATCH 1195/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.10 (#1193) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 634c3e9d7ed5..887468ae9e87 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.9 + 1.127.10 From 87572409767a6d69c1791d4c80a8d948b67c5997 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 22 Mar 2021 08:36:04 -0700 Subject: [PATCH 1196/3441] chore: regenerate README (#1194) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-03-22 15:17:17,485 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-03-22 15:17:18,453 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/262011c9-5600-47e4-9c80-83faf6a58c89/targets - [ ] To automatically regenerate this PR, check this box. --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 5ebc107bcbb9..c704d05ca01c 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "1648d5c1f30d0050f4103afcba9373e67efd347e" + "sha": "9cc06838e2eaca5aa6c2a525aa42b8efde31e492" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "8b13da943497f75c5303700bff5aabdd85d939e0" + "sha": "79c8dd7ee768292f933012d3a69a5b4676404cda" } } ] diff --git a/README.md b/README.md index b2e5f957b540..26ab15b508b0 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.9 + 1.127.10 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.9' +compile 'com.google.cloud:google-cloud-bigquery:1.127.10' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.9" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.10" ``` ## Authentication From 9b9d3787c99bc6ca57da557e558cf215ce94e820 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 24 Mar 2021 16:08:06 -0700 Subject: [PATCH 1197/3441] chore(java): detect sample-secrets in build.sh (#1198) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/da4ff212-b599-4184-9bb9-741b5a34fe24/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/bb854b6c048619e3be4e8b8ce8ed10aa74ea78ef --- .kokoro/build.sh | 5 +++++ synth.metadata | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 6569c9dd6267..8c8119e6a541 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -79,6 +79,11 @@ samples) if [[ -f ${SAMPLES_DIR}/pom.xml ]] then + for FILE in ${KOKORO_GFILE_DIR}/secret_manager/*-samples-secrets; do + [[ -f "$FILE" ]] || continue + source "$FILE" + done + pushd ${SAMPLES_DIR} mvn -B \ -Penable-samples \ diff --git a/synth.metadata b/synth.metadata index d8a19c075e35..619cd386d56f 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "9f2a4f1904a43910ec8a7286a58ad260da749111" + "sha": "87572409767a6d69c1791d4c80a8d948b67c5997" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "0b064d767537e0675fc053e53fca473c5c701fb8" + "sha": "bb854b6c048619e3be4e8b8ce8ed10aa74ea78ef" } } ], From a62ee9f769f31f83290835bdb132d93495f63401 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Thu, 25 Mar 2021 13:02:42 -0400 Subject: [PATCH 1198/3441] chore(ci): xml namespace declaration in samples/snippets/pom.xml (#1199) * xml namespace declaration in samples/snippets/pom.xml * format --- samples/snippets/pom.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 12d7c35d6caf..4dc2bda986c5 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -1,3 +1,4 @@ + - + 4.0.0 com.example.bigquery bigquery-google-cloud-samples From 8e3618ec69009712c2616a52efdca4eb0dfbc5d8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 25 Mar 2021 18:03:37 +0100 Subject: [PATCH 1199/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.21.2 (#1195) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 887468ae9e87..71610d6165e2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.21.1 + 1.21.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1307bb9c51f9..fe0c0ad8eb8d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.21.1 + 1.21.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4dc2bda986c5..ab017157e6c1 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.21.1 + 1.21.2 test From ae00627d1e2812722ebcb1764832b47d9910d204 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 25 Mar 2021 17:16:03 +0000 Subject: [PATCH 1200/3441] chore: release 1.127.11 (#1201) :robot: I have created a release \*beep\* \*boop\* --- ### [1.127.11](https://www.github.com/googleapis/java-bigquery/compare/v1.127.10...v1.127.11) (2021-03-25) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.21.2 ([#1195](https://www.github.com/googleapis/java-bigquery/issues/1195)) ([8e3618e](https://www.github.com/googleapis/java-bigquery/commit/8e3618ec69009712c2616a52efdca4eb0dfbc5d8)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26cd1622d3d3..0b13f594c5a4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.127.11](https://www.github.com/googleapis/java-bigquery/compare/v1.127.10...v1.127.11) (2021-03-25) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.21.2 ([#1195](https://www.github.com/googleapis/java-bigquery/issues/1195)) ([8e3618e](https://www.github.com/googleapis/java-bigquery/commit/8e3618ec69009712c2616a52efdca4eb0dfbc5d8)) + ### [1.127.10](https://www.github.com/googleapis/java-bigquery/compare/v1.127.9...v1.127.10) (2021-03-19) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9d228bde72be..e1073ef01bfa 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.11-SNAPSHOT + 1.127.11 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8eb48b6f1318..db8b2f163ea1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.11-SNAPSHOT + 1.127.11 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.11-SNAPSHOT + 1.127.11 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7343688d76b1..bc1b9265a60d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.11-SNAPSHOT + 1.127.11 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.11-SNAPSHOT + 1.127.11 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index fe0c0ad8eb8d..666915ced620 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.11-SNAPSHOT + 1.127.11 diff --git a/versions.txt b/versions.txt index 24db48ddadb8..9686e8e5eb88 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.10:1.127.11-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.11:1.127.11 \ No newline at end of file From 1aab5d13ebd0908ab733a7e773b5db4276a9074c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 25 Mar 2021 17:34:02 +0000 Subject: [PATCH 1201/3441] chore: release 1.127.12-SNAPSHOT (#1202) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index e1073ef01bfa..3e9669ea22b5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.11 + 1.127.12-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index db8b2f163ea1..902ec2067e2c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.11 + 1.127.12-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.11 + 1.127.12-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bc1b9265a60d..e3132ded0b6d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.11 + 1.127.12-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.11 + 1.127.12-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 666915ced620..046c93591648 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.11 + 1.127.12-SNAPSHOT diff --git a/versions.txt b/versions.txt index 9686e8e5eb88..a268632ac2a9 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.11:1.127.11 \ No newline at end of file +google-cloud-bigquery:1.127.11:1.127.12-SNAPSHOT \ No newline at end of file From 4135e4f1a11eb55139fab1008edad803064aefb7 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 25 Mar 2021 11:04:02 -0700 Subject: [PATCH 1202/3441] chore: regenerate README (#1203) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-03-25 17:53:22,220 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-03-25 17:53:23,506 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/befec425-5b6d-4019-9f51-6f30166a31a7/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index c704d05ca01c..ec21e5abf944 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "9cc06838e2eaca5aa6c2a525aa42b8efde31e492" + "sha": "1aab5d13ebd0908ab733a7e773b5db4276a9074c" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "79c8dd7ee768292f933012d3a69a5b4676404cda" + "sha": "bb854b6c048619e3be4e8b8ce8ed10aa74ea78ef" } } ] diff --git a/README.md b/README.md index 26ab15b508b0..88c749786cca 100644 --- a/README.md +++ b/README.md @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.10' +compile 'com.google.cloud:google-cloud-bigquery:1.127.11' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.10" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.11" ``` ## Authentication From 32cdb8e0180de13adbc78743ed9e6ac50b254223 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 29 Mar 2021 17:54:04 +0200 Subject: [PATCH 1203/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.11 (#1204) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `1.127.10` -> `1.127.11` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.127.11/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.127.11/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.127.11/compatibility-slim/1.127.10)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.127.11/confidence-slim/1.127.10)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v1.127.11`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​112711-httpswwwgithubcomgoogleapisjava-bigquerycomparev112710v112711-2021-03-25) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.127.10...v1.127.11)
    --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 71610d6165e2..b48722d93e1b 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.10 + 1.127.11 From b69258136bba3481030596107185b846d7a5c0a7 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 29 Mar 2021 09:10:04 -0700 Subject: [PATCH 1204/3441] chore: regenerate README (#1205) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-03-29 15:56:23,316 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-03-29 15:56:24,942 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/6cfceb5b-1e08-48d7-8f6e-7f67bcf646b5/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index ec21e5abf944..4fdac01e4fd6 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "1aab5d13ebd0908ab733a7e773b5db4276a9074c" + "sha": "32cdb8e0180de13adbc78743ed9e6ac50b254223" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "bb854b6c048619e3be4e8b8ce8ed10aa74ea78ef" + "sha": "60fc32cc950c20cfdd774b846a4a7dc5d1e4d0ef" } } ] diff --git a/README.md b/README.md index 88c749786cca..374ca44d0732 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.10 + 1.127.11 ``` From 2918a5beb5f74bb5fbbfc5b22c24bbad322fd76c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 30 Mar 2021 07:54:16 -0700 Subject: [PATCH 1205/3441] chore: remove staging bucket v2 (#1206) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/05354245-d810-47bd-87b4-aab9376595ae/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/572ef8f70edd9041f5bcfa71511aed6aecfc2098 --- .kokoro/release/publish_javadoc.sh | 5 ----- synth.metadata | 4 ++-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.kokoro/release/publish_javadoc.sh b/.kokoro/release/publish_javadoc.sh index 0a093ea597bc..ab106db96635 100755 --- a/.kokoro/release/publish_javadoc.sh +++ b/.kokoro/release/publish_javadoc.sh @@ -24,11 +24,6 @@ if [[ -z "${STAGING_BUCKET}" ]]; then exit 1 fi -if [[ -z "${STAGING_BUCKET_V2}" ]]; then - echo "Need to set STAGING_BUCKET_V2 environment variable" - exit 1 -fi - # work from the git root directory pushd $(dirname "$0")/../../ diff --git a/synth.metadata b/synth.metadata index 619cd386d56f..11e1664b6aac 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "87572409767a6d69c1791d4c80a8d948b67c5997" + "sha": "b69258136bba3481030596107185b846d7a5c0a7" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "bb854b6c048619e3be4e8b8ce8ed10aa74ea78ef" + "sha": "572ef8f70edd9041f5bcfa71511aed6aecfc2098" } } ], From 9b4f3ecc248fd6fac2b9542b14d6f343bcb8463c Mon Sep 17 00:00:00 2001 From: ShyamShah11 <33843392+ShyamShah11@users.noreply.github.com> Date: Wed, 31 Mar 2021 18:10:02 -0400 Subject: [PATCH 1206/3441] docs(samples): update querypagination sample (#1209) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Based on feedback from a support case, I've made some changes to make this more clear and more accurate to what the comments indicate Created #1207 to track this Fixes #1207 ☕️ --- .../java/com/example/bigquery/QueryPagination.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java b/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java index 190c9bcdef52..dc9a6a24f178 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java @@ -59,15 +59,23 @@ public static void queryPagination(String datasetName, String tableName, String // First Page results - .iterateAll() - .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + .getValues() + .forEach(row -> row.forEach(val -> System.out.printf("%s,\n", val.toString()))); if (results.hasNextPage()) { // Next Page + results + .getNextPage() + .getValues() + .forEach(row -> row.forEach(val -> System.out.printf("%s,\n", val.toString()))); + } + + if (results.hasNextPage()) { + // Remaining Pages results .getNextPage() .iterateAll() - .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); + .forEach(row -> row.forEach(val -> System.out.printf("%s,\n", val.toString()))); } System.out.println("Query pagination performed successfully."); From bf5d444103f5e6dc3db1751a9e3fd382cf42cb5d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 5 Apr 2021 19:13:09 +0200 Subject: [PATCH 1207/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210327-1.31.0 (#1214) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e3132ded0b6d..7b8ad8fa5086 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210313-1.31.0 + v2-rev20210327-1.31.0 0.20.1
    From 6b85ab3daddeb490ccb2877a0ce22d1e1c403a07 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 5 Apr 2021 19:24:02 +0200 Subject: [PATCH 1208/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.21.3 (#1211) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `1.21.2` -> `1.21.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.21.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.21.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.21.3/compatibility-slim/1.21.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.21.3/confidence-slim/1.21.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v1.21.3`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​1213-httpswwwgithubcomgoogleapisjava-bigtablecomparev1212v1213-2021-04-01) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v1.21.2...v1.21.3)
    --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b48722d93e1b..a89eeb93d34c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.21.2 + 1.21.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 046c93591648..6adbcf921521 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.21.2 + 1.21.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ab017157e6c1..31fd25473f43 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.21.2 + 1.21.3 test From ada9d828442d00433ea615bc3aeed6c2db71035b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 6 Apr 2021 17:17:42 +0200 Subject: [PATCH 1209/3441] chore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.22 (#1216) --- samples/install-without-bom/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a89eeb93d34c..a2e8c3161282 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.21 + 1.0.22 diff --git a/samples/pom.xml b/samples/pom.xml index b2e32cf3fd1f..835a13ac220d 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -34,7 +34,7 @@ com.google.cloud.samples shared-configuration - 1.0.21 + 1.0.22 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6adbcf921521..9972ba9c309e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.21 + 1.0.22 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 31fd25473f43..f33097f33a5c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -29,7 +29,7 @@ com.google.cloud.samples shared-configuration - 1.0.21 + 1.0.22 From 503d32bdaede96207203d79eebbf6964a199b8f8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 7 Apr 2021 19:44:03 +0200 Subject: [PATCH 1210/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.22.0 (#1217) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `1.21.3` -> `1.22.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.22.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.22.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.22.0/compatibility-slim/1.21.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.22.0/confidence-slim/1.21.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v1.22.0`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​1220-httpswwwgithubcomgoogleapisjava-bigtablecomparev1213v1220-2021-04-06) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v1.21.3...v1.22.0) ##### Features - add CMEK Support ([#​656](https://www.github.com/googleapis/java-bigtable/issues/656)) ([2821902](https://www.github.com/googleapis/java-bigtable/commit/2821902b34ae04596771a9fc5e2b62d5c24a7253)) ##### Dependencies - update autovalue.version to v1.8 ([#​703](https://www.github.com/googleapis/java-bigtable/issues/703)) ([13e7796](https://www.github.com/googleapis/java-bigtable/commit/13e7796d96222fe0181771d160d12a3da7f0a7a7)) - update dependency com.google.truth.extensions:truth-proto-extension to v1.1.2 ([#​704](https://www.github.com/googleapis/java-bigtable/issues/704)) ([3fa8b00](https://www.github.com/googleapis/java-bigtable/commit/3fa8b0069d58a5705f11fac481ddcd4ad7d447f4)) ##### [1.21.3](https://www.github.com/googleapis/java-bigtable/compare/v1.21.2...v1.21.3) (2021-04-01) ##### Dependencies - update dependency com.google.errorprone:error_prone_annotations to v2.6.0 ([#​693](https://www.github.com/googleapis/java-bigtable/issues/693)) ([831d044](https://www.github.com/googleapis/java-bigtable/commit/831d044f31c7643b34df4f23765d521e8f68035d)) ##### [1.21.2](https://www.github.com/googleapis/java-bigtable/compare/v1.21.1...v1.21.2) (2021-03-22) ##### Dependencies - update autovalue.version to v1.7.5 ([#​684](https://www.github.com/googleapis/java-bigtable/issues/684)) ([75baa79](https://www.github.com/googleapis/java-bigtable/commit/75baa79e94c31e1694c3e29ea2f1ed42dbc60eb8)) ##### [1.21.1](https://www.github.com/googleapis/java-bigtable/compare/v1.21.0...v1.21.1) (2021-03-15) ##### Bug Fixes - **retry:** restore grpc_service_config for CreateBackup and {Restore,Snapshot}Table ([#​667](https://www.github.com/googleapis/java-bigtable/issues/667)) ([121f071](https://www.github.com/googleapis/java-bigtable/commit/121f07159c2715368cb53753ba39d70d1d25efb8)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.20.1 ([#​671](https://www.github.com/googleapis/java-bigtable/issues/671)) ([6ba3bf3](https://www.github.com/googleapis/java-bigtable/commit/6ba3bf3a642bd5b7ecf2a86a821ede0f2bae084f))
    --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a2e8c3161282..8cf73a311994 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.21.3 + 1.22.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9972ba9c309e..ad51e83161db 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.21.3 + 1.22.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f33097f33a5c..2331da6d7323 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.21.3 + 1.22.0 test From 2aae90b431fc20c8e57e9bf0a56fe03471ef8574 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 8 Apr 2021 15:38:05 +0000 Subject: [PATCH 1211/3441] chore: release 1.127.12 (#1210) :robot: I have created a release \*beep\* \*boop\* --- ### [1.127.12](https://www.github.com/googleapis/java-bigquery/compare/v1.127.11...v1.127.12) (2021-04-07) ### Documentation * **samples:** update querypagination sample ([#1209](https://www.github.com/googleapis/java-bigquery/issues/1209)) ([9b4f3ec](https://www.github.com/googleapis/java-bigquery/commit/9b4f3ecc248fd6fac2b9542b14d6f343bcb8463c)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210327-1.31.0 ([#1214](https://www.github.com/googleapis/java-bigquery/issues/1214)) ([bf5d444](https://www.github.com/googleapis/java-bigquery/commit/bf5d444103f5e6dc3db1751a9e3fd382cf42cb5d)) * update dependency com.google.cloud:google-cloud-bigtable to v1.21.3 ([#1211](https://www.github.com/googleapis/java-bigquery/issues/1211)) ([6b85ab3](https://www.github.com/googleapis/java-bigquery/commit/6b85ab3daddeb490ccb2877a0ce22d1e1c403a07)) * update dependency com.google.cloud:google-cloud-bigtable to v1.22.0 ([#1217](https://www.github.com/googleapis/java-bigquery/issues/1217)) ([503d32b](https://www.github.com/googleapis/java-bigquery/commit/503d32bdaede96207203d79eebbf6964a199b8f8)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 14 ++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 21 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b13f594c5a4..ae6a358677e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +### [1.127.12](https://www.github.com/googleapis/java-bigquery/compare/v1.127.11...v1.127.12) (2021-04-07) + + +### Documentation + +* **samples:** update querypagination sample ([#1209](https://www.github.com/googleapis/java-bigquery/issues/1209)) ([9b4f3ec](https://www.github.com/googleapis/java-bigquery/commit/9b4f3ecc248fd6fac2b9542b14d6f343bcb8463c)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210327-1.31.0 ([#1214](https://www.github.com/googleapis/java-bigquery/issues/1214)) ([bf5d444](https://www.github.com/googleapis/java-bigquery/commit/bf5d444103f5e6dc3db1751a9e3fd382cf42cb5d)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.21.3 ([#1211](https://www.github.com/googleapis/java-bigquery/issues/1211)) ([6b85ab3](https://www.github.com/googleapis/java-bigquery/commit/6b85ab3daddeb490ccb2877a0ce22d1e1c403a07)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.22.0 ([#1217](https://www.github.com/googleapis/java-bigquery/issues/1217)) ([503d32b](https://www.github.com/googleapis/java-bigquery/commit/503d32bdaede96207203d79eebbf6964a199b8f8)) + ### [1.127.11](https://www.github.com/googleapis/java-bigquery/compare/v1.127.10...v1.127.11) (2021-03-25) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3e9669ea22b5..6b1b2ea18878 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.12-SNAPSHOT + 1.127.12 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 902ec2067e2c..f7cbe49048b7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.12-SNAPSHOT + 1.127.12 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.12-SNAPSHOT + 1.127.12 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7b8ad8fa5086..6df52807e9cc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.12-SNAPSHOT + 1.127.12 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.12-SNAPSHOT + 1.127.12 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ad51e83161db..f83ee6b73682 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.12-SNAPSHOT + 1.127.12 diff --git a/versions.txt b/versions.txt index a268632ac2a9..e4b26e425ff1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.11:1.127.12-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.127.12:1.127.12 \ No newline at end of file From ae8375c9787cd3dd9b39af804c152466a0dabb83 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 8 Apr 2021 23:35:13 +0200 Subject: [PATCH 1212/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.127.12 (#1219) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8cf73a311994..78e4e7ce3b10 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.11 + 1.127.12 From 8ddddc1bb876ebc77893f5e2b9bc2646274be4d1 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 8 Apr 2021 21:46:04 +0000 Subject: [PATCH 1213/3441] chore: release 1.127.13-SNAPSHOT (#1218) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 6b1b2ea18878..009cdb466d65 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.12 + 1.127.13-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f7cbe49048b7..c29e4973b2b2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.12 + 1.127.13-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.12 + 1.127.13-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 6df52807e9cc..927ffa5dec5b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.12 + 1.127.13-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.12 + 1.127.13-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f83ee6b73682..777f6ef0abbd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.12 + 1.127.13-SNAPSHOT diff --git a/versions.txt b/versions.txt index e4b26e425ff1..b055919db81d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.12:1.127.12 \ No newline at end of file +google-cloud-bigquery:1.127.12:1.127.13-SNAPSHOT \ No newline at end of file From aaffd73db9ff8a49a9c4724804653b5266a59765 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 8 Apr 2021 14:48:03 -0700 Subject: [PATCH 1214/3441] chore: regenerate README (#1220) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-04-08 21:37:40,916 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-04-08 21:37:42,272 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/a052e6a0-8dba-49f1-92b1-413fe6d757e3/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 4fdac01e4fd6..6c01fbe88836 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "32cdb8e0180de13adbc78743ed9e6ac50b254223" + "sha": "ae8375c9787cd3dd9b39af804c152466a0dabb83" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "60fc32cc950c20cfdd774b846a4a7dc5d1e4d0ef" + "sha": "0f3469e88a4be9af4d9b1c4b6cf6fd3f8ac15588" } } ] diff --git a/README.md b/README.md index 374ca44d0732..0e8f4fb5d9d4 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.11 + 1.127.12 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.11' +compile 'com.google.cloud:google-cloud-bigquery:1.127.12' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.11" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.12" ``` ## Authentication From d5c5747e74d8c2e1ca0901eea0d82fd94460a639 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 9 Apr 2021 22:54:09 +0200 Subject: [PATCH 1215/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.21.0 (#1224) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `0.20.1` -> `0.21.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.21.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.21.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.21.0/compatibility-slim/0.20.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.21.0/confidence-slim/0.20.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v0.21.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​0210-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare0201v0210-2021-04-09) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v0.20.1...v0.21.0) ##### Dependencies - update dependency com.google.auth:google-auth-library-bom to v0.25.0 ([#​310](https://www.github.com/googleapis/java-shared-dependencies/issues/310)) ([8f3a0f0](https://www.github.com/googleapis/java-shared-dependencies/commit/8f3a0f002b787f7b27cfe031654fa20bf342f839)) - update dependency com.google.auth:google-auth-library-bom to v0.25.2 ([#​311](https://www.github.com/googleapis/java-shared-dependencies/issues/311)) ([6c47a3e](https://www.github.com/googleapis/java-shared-dependencies/commit/6c47a3edbd9da04ba255487a66c0f3a41393217d)) - update dependency com.google.errorprone:error_prone_annotations to v2.6.0 ([#​315](https://www.github.com/googleapis/java-shared-dependencies/issues/315)) ([dc254ca](https://www.github.com/googleapis/java-shared-dependencies/commit/dc254ca7359b68fe9411f7b96130ffb416b45c6f)) - update dependency com.google.http-client:google-http-client-bom to v1.39.1 ([#​309](https://www.github.com/googleapis/java-shared-dependencies/issues/309)) ([37225e2](https://www.github.com/googleapis/java-shared-dependencies/commit/37225e2d1b32a618765391720b57ff29e7b8f7f9)) - update dependency com.google.http-client:google-http-client-bom to v1.39.2 ([#​321](https://www.github.com/googleapis/java-shared-dependencies/issues/321)) ([273c66d](https://www.github.com/googleapis/java-shared-dependencies/commit/273c66d374f7cd6040aac2f302fd1c1dc0f4a1c0)) - update dependency com.google.protobuf:protobuf-bom to v3.15.6 ([#​308](https://www.github.com/googleapis/java-shared-dependencies/issues/308)) ([b29dd05](https://www.github.com/googleapis/java-shared-dependencies/commit/b29dd0535f02b56607f64ba69e85d4d468902789)) - update dependency com.google.protobuf:protobuf-bom to v3.15.7 ([#​316](https://www.github.com/googleapis/java-shared-dependencies/issues/316)) ([9c00d77](https://www.github.com/googleapis/java-shared-dependencies/commit/9c00d7753c1f7b963deb9ad69dcfe24ba28da5a2)) - update dependency com.google.protobuf:protobuf-bom to v3.15.8 ([#​319](https://www.github.com/googleapis/java-shared-dependencies/issues/319)) ([15e5ae2](https://www.github.com/googleapis/java-shared-dependencies/commit/15e5ae2ef46eedcd790ffd8644677d36db5c63f9)) - update dependency io.grpc:grpc-bom to v1.37.0 ([#​313](https://www.github.com/googleapis/java-shared-dependencies/issues/313)) ([c599351](https://www.github.com/googleapis/java-shared-dependencies/commit/c5993511c7305e1ced42d73552a93a25dc5e1ac1)) - update gax.version to v1.63.0 ([#​318](https://www.github.com/googleapis/java-shared-dependencies/issues/318)) ([ba709da](https://www.github.com/googleapis/java-shared-dependencies/commit/ba709da6fb0e9bcfc83e663588336598737b46e4)) - update google.core.version to v1.94.4 ([#​305](https://www.github.com/googleapis/java-shared-dependencies/issues/305)) ([0d38f4c](https://www.github.com/googleapis/java-shared-dependencies/commit/0d38f4c9ffadcfd9446712b8bf0729399b0c9e91)) - update google.core.version to v1.94.5 ([#​320](https://www.github.com/googleapis/java-shared-dependencies/issues/320)) ([3439721](https://www.github.com/googleapis/java-shared-dependencies/commit/3439721da83a8b92d9c4b6ecfd158cfb1e1a0503)) - update guava to 30.1.1-android ([#​322](https://www.github.com/googleapis/java-shared-dependencies/issues/322)) ([a6b5d3b](https://www.github.com/googleapis/java-shared-dependencies/commit/a6b5d3b8ccfc352bf0d1678952ce3cd8b7a8361e)) - update iam.version to v1.0.11 ([#​304](https://www.github.com/googleapis/java-shared-dependencies/issues/304)) ([95a5264](https://www.github.com/googleapis/java-shared-dependencies/commit/95a526442b3d24c83782523d38dd3931e828d757)) ##### [0.20.1](https://www.github.com/googleapis/java-shared-dependencies/compare/0.20.0...v0.20.1) (2021-03-09) ##### Dependencies - update dependency com.fasterxml.jackson:jackson-bom to v2.12.2 ([#​301](https://www.github.com/googleapis/java-shared-dependencies/issues/301)) ([7c01eba](https://www.github.com/googleapis/java-shared-dependencies/commit/7c01ebabb6fd65b7404e56651b0ba27f505bb033)) - update dependency com.google.api-client:google-api-client-bom to v1.31.3 ([#​295](https://www.github.com/googleapis/java-shared-dependencies/issues/295)) ([a0774e9](https://www.github.com/googleapis/java-shared-dependencies/commit/a0774e9d62d00614142bc4c14214a83dda66d4ad)) - update dependency com.google.api.grpc:grpc-google-iam-v1 to v1.0.10 ([#​292](https://www.github.com/googleapis/java-shared-dependencies/issues/292)) ([b629789](https://www.github.com/googleapis/java-shared-dependencies/commit/b629789e3a1cc9a7308b829c034b09b06e24fc07)) - update dependency com.google.auth:google-auth-library-bom to v0.24.1 ([#​293](https://www.github.com/googleapis/java-shared-dependencies/issues/293)) ([d85ec34](https://www.github.com/googleapis/java-shared-dependencies/commit/d85ec347ccdd14dfdab10d365d2c2f8df3035e4d)) - update dependency com.google.protobuf:protobuf-bom to v3.15.3 ([#​294](https://www.github.com/googleapis/java-shared-dependencies/issues/294)) ([58c01aa](https://www.github.com/googleapis/java-shared-dependencies/commit/58c01aa076e2c4954986185f913bac2c51a1e6fb)) - update dependency com.google.protobuf:protobuf-bom to v3.15.5 ([#​302](https://www.github.com/googleapis/java-shared-dependencies/issues/302)) ([e9d5e6e](https://www.github.com/googleapis/java-shared-dependencies/commit/e9d5e6ee6039915da186315ceada673ac37b88d3)) - update google.core.version to v1.94.2 ([#​296](https://www.github.com/googleapis/java-shared-dependencies/issues/296)) ([af83b90](https://www.github.com/googleapis/java-shared-dependencies/commit/af83b901be0c03d507189999215d35345602fad7)) - update google.core.version to v1.94.3 ([#​300](https://www.github.com/googleapis/java-shared-dependencies/issues/300)) ([3e73176](https://www.github.com/googleapis/java-shared-dependencies/commit/3e73176af0b07dfe621163b301174b5b5820dfa2))
    --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 927ffa5dec5b..eb01ccc0ff9f 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20210327-1.31.0 - 0.20.1 + 0.21.0
    From 0a271cb363180a093385ed6c5c68e12c6fde6502 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 9 Apr 2021 23:13:45 +0200 Subject: [PATCH 1216/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.31.5 (#1222) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 78e4e7ce3b10..eae7982a9b1d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.31.4 + 1.31.5 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 777f6ef0abbd..c57288a196ca 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.31.4 + 1.31.5 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 2331da6d7323..958609f85aeb 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.31.4 + 1.31.5 From 3ce49334478dc0905cdcb476c739a49d296de922 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 9 Apr 2021 17:48:05 -0400 Subject: [PATCH 1217/3441] feat: add support for parameterMode in QueryJobConfiguration to unblock JDBC migration to the Java client library (#1223) --- .../cloud/bigquery/QueryJobConfiguration.java | 21 +++++++++++++++ .../bigquery/QueryJobConfigurationTest.java | 2 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 27 +++++++++++++++++++ 3 files changed, 50 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index 927ae846cd90..7733e48e6f35 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -47,6 +47,7 @@ public final class QueryJobConfiguration extends JobConfiguration { private final String query; private final ImmutableList positionalParameters; private final ImmutableMap namedParameters; + private final String parameterMode; private final TableId destinationTable; private final Map tableDefinitions; private final List userDefinedFunctions; @@ -98,6 +99,7 @@ public static final class Builder private String query; private List positionalParameters = Lists.newArrayList(); private Map namedParameters = Maps.newHashMap(); + private String parameterMode; private TableId destinationTable; private Map tableDefinitions; private List userDefinedFunctions; @@ -131,6 +133,7 @@ private Builder(QueryJobConfiguration jobConfiguration) { this.query = jobConfiguration.query; this.namedParameters = jobConfiguration.namedParameters; this.positionalParameters = jobConfiguration.positionalParameters; + this.parameterMode = jobConfiguration.parameterMode; this.destinationTable = jobConfiguration.destinationTable; this.tableDefinitions = jobConfiguration.tableDefinitions; this.userDefinedFunctions = jobConfiguration.userDefinedFunctions; @@ -163,11 +166,13 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (queryConfigurationPb.getQueryParameters() != null && !queryConfigurationPb.getQueryParameters().isEmpty()) { if (queryConfigurationPb.getQueryParameters().get(0).getName() == null) { + parameterMode = "POSITIONAL"; setPositionalParameters( Lists.transform( queryConfigurationPb.getQueryParameters(), POSITIONAL_PARAMETER_FROM_PB_FUNCTION)); } else { + parameterMode = "NAMED"; Map values = Maps.newHashMap(); for (QueryParameter queryParameterPb : queryConfigurationPb.getQueryParameters()) { checkNotNull(queryParameterPb.getName()); @@ -277,6 +282,16 @@ public Builder addPositionalParameter(QueryParameterValue value) { return this; } + /** + * Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to + * use named (@myparam) query parameters in this query. + */ + public Builder setParameterMode(String parameterMode) { + checkNotNull(parameterMode); + this.parameterMode = parameterMode; + return this; + } + /** * Sets the query parameters to a list of positional query parameters to use in the query. * @@ -639,6 +654,7 @@ private QueryJobConfiguration(Builder builder) { } positionalParameters = ImmutableList.copyOf(builder.positionalParameters); namedParameters = ImmutableMap.copyOf(builder.namedParameters); + this.parameterMode = builder.parameterMode; this.allowLargeResults = builder.allowLargeResults; this.createDisposition = builder.createDisposition; this.defaultDataset = builder.defaultDataset; @@ -876,6 +892,7 @@ ToStringHelper toStringHelper() { .add("query", query) .add("positionalParameters", positionalParameters) .add("namedParameters", namedParameters) + .add("parameterMode", parameterMode) .add("destinationTable", destinationTable) .add("destinationEncryptionConfiguration", destinationEncryptionConfiguration) .add("defaultDataset", defaultDataset) @@ -919,6 +936,7 @@ public int hashCode() { query, positionalParameters, namedParameters, + parameterMode, tableDefinitions, useQueryCache, userDefinedFunctions, @@ -963,6 +981,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { Lists.transform(namedParameters.entrySet().asList(), NAMED_PARAMETER_TO_PB_FUNCTION); queryConfigurationPb.setQueryParameters(queryParametersPb); } + if (parameterMode != null) { + queryConfigurationPb.setParameterMode(parameterMode); + } configurationPb.setDryRun(dryRun()); if (allowLargeResults != null) { queryConfigurationPb.setAllowLargeResults(allowLargeResults); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index 3cd4182049a1..bcfc723568c0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -108,6 +108,7 @@ public class QueryJobConfigurationTest { ImmutableList.of(STRING_PARAMETER, TIMESTAMP_PARAMETER, BIGNUMERIC_PARAMETER); private static final Map NAME_PARAMETER = ImmutableMap.of("string", STRING_PARAMETER, "timestamp", TIMESTAMP_PARAMETER); + private static final String PARAMETER_MODE = "POSITIONAL"; private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -133,6 +134,7 @@ public class QueryJobConfigurationTest { .setRangePartitioning(RANGE_PARTITIONING) .setConnectionProperties(CONNECTION_PROPERTIES) .setPositionalParameters(POSITIONAL_PARAMETER) + .setParameterMode(PARAMETER_MODE) .build(); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_ADD_POSITIONAL_PARAMETER = QUERY_JOB_CONFIGURATION diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index dc8b3c355440..4e8e600f7971 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2099,6 +2099,33 @@ public void testScriptStatistics() throws InterruptedException { } } + @Test + public void testQueryParameterModeWithDryRun() { + String query = + "SELECT TimestampField, StringField, BooleanField, BigNumericField, BigNumericField1, BigNumericField2, BigNumericField3, BigNumericField4 FROM " + + TABLE_ID.getTable() + + " WHERE StringField = ?" + + " AND TimestampField > ?" + + " AND IntegerField IN UNNEST(?)" + + " AND IntegerField < ?" + + " AND FloatField > ?" + + " AND NumericField < ?" + + " AND BigNumericField = ?"; + + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setParameterMode("POSITIONAL") + .setUseLegacySql(false) + .setDryRun(true) + .build(); + + Job job = bigquery.create(JobInfo.of(queryConfig)); + JobStatistics.QueryStatistics statistics = job.getStatistics(); + + assertNotNull(statistics.getTotalBytesProcessed()); + } + @Test public void testPositionalQueryParameters() throws InterruptedException { String query = From f7cdb36c1f9e513e78e390ae5319c70f7c454536 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 9 Apr 2021 23:48:48 +0200 Subject: [PATCH 1218/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.31.5 (#1221) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index eae7982a9b1d..7afa132a1845 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.31.2 + 1.31.5 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c57288a196ca..f66fc5611d58 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.31.2 + 1.31.5 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 958609f85aeb..37fa527d8c25 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.31.2 + 1.31.5 com.google.oauth-client From 8ea26fcedf1f34565d287daab388c2a93d7ac6ea Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 9 Apr 2021 23:54:07 +0200 Subject: [PATCH 1219/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210404-1.31.0 (#1226) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.google.apis:google-api-services-bigquery | `v2-rev20210327-1.31.0` -> `v2-rev20210404-1.31.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20210404-1.31.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20210404-1.31.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20210404-1.31.0/compatibility-slim/v2-rev20210327-1.31.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20210404-1.31.0/confidence-slim/v2-rev20210327-1.31.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eb01ccc0ff9f..71a2ff6ff10d 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210327-1.31.0 + v2-rev20210404-1.31.0 0.21.0
    From 112a384307ce6b6773d1b1a1f191e65e9cca951a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 10 Apr 2021 02:58:03 +0000 Subject: [PATCH 1220/3441] chore: release 1.128.0 (#1225) :robot: I have created a release \*beep\* \*boop\* --- ## [1.128.0](https://www.github.com/googleapis/java-bigquery/compare/v1.127.12...v1.128.0) (2021-04-09) ### Features * add support for parameterMode in QueryJobConfiguration to unblock JDBC migration to the Java client library ([#1223](https://www.github.com/googleapis/java-bigquery/issues/1223)) ([3ce4933](https://www.github.com/googleapis/java-bigquery/commit/3ce49334478dc0905cdcb476c739a49d296de922)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210404-1.31.0 ([#1226](https://www.github.com/googleapis/java-bigquery/issues/1226)) ([8ea26fc](https://www.github.com/googleapis/java-bigquery/commit/8ea26fcedf1f34565d287daab388c2a93d7ac6ea)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.21.0 ([#1224](https://www.github.com/googleapis/java-bigquery/issues/1224)) ([d5c5747](https://www.github.com/googleapis/java-bigquery/commit/d5c5747e74d8c2e1ca0901eea0d82fd94460a639)) * update dependency com.google.oauth-client:google-oauth-client-java6 to v1.31.5 ([#1221](https://www.github.com/googleapis/java-bigquery/issues/1221)) ([f7cdb36](https://www.github.com/googleapis/java-bigquery/commit/f7cdb36c1f9e513e78e390ae5319c70f7c454536)) * update dependency com.google.oauth-client:google-oauth-client-jetty to v1.31.5 ([#1222](https://www.github.com/googleapis/java-bigquery/issues/1222)) ([0a271cb](https://www.github.com/googleapis/java-bigquery/commit/0a271cb363180a093385ed6c5c68e12c6fde6502)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 15 +++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 22 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae6a358677e6..b1edede75dd4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [1.128.0](https://www.github.com/googleapis/java-bigquery/compare/v1.127.12...v1.128.0) (2021-04-09) + + +### Features + +* add support for parameterMode in QueryJobConfiguration to unblock JDBC migration to the Java client library ([#1223](https://www.github.com/googleapis/java-bigquery/issues/1223)) ([3ce4933](https://www.github.com/googleapis/java-bigquery/commit/3ce49334478dc0905cdcb476c739a49d296de922)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210404-1.31.0 ([#1226](https://www.github.com/googleapis/java-bigquery/issues/1226)) ([8ea26fc](https://www.github.com/googleapis/java-bigquery/commit/8ea26fcedf1f34565d287daab388c2a93d7ac6ea)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.21.0 ([#1224](https://www.github.com/googleapis/java-bigquery/issues/1224)) ([d5c5747](https://www.github.com/googleapis/java-bigquery/commit/d5c5747e74d8c2e1ca0901eea0d82fd94460a639)) +* update dependency com.google.oauth-client:google-oauth-client-java6 to v1.31.5 ([#1221](https://www.github.com/googleapis/java-bigquery/issues/1221)) ([f7cdb36](https://www.github.com/googleapis/java-bigquery/commit/f7cdb36c1f9e513e78e390ae5319c70f7c454536)) +* update dependency com.google.oauth-client:google-oauth-client-jetty to v1.31.5 ([#1222](https://www.github.com/googleapis/java-bigquery/issues/1222)) ([0a271cb](https://www.github.com/googleapis/java-bigquery/commit/0a271cb363180a093385ed6c5c68e12c6fde6502)) + ### [1.127.12](https://www.github.com/googleapis/java-bigquery/compare/v1.127.11...v1.127.12) (2021-04-07) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 009cdb466d65..50855414ac1b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.127.13-SNAPSHOT + 1.128.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c29e4973b2b2..34ca24d09e21 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.127.13-SNAPSHOT + 1.128.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.127.13-SNAPSHOT + 1.128.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 71a2ff6ff10d..c8ca49bc8332 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.127.13-SNAPSHOT + 1.128.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.127.13-SNAPSHOT + 1.128.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f66fc5611d58..422a3c8d0376 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.127.13-SNAPSHOT + 1.128.0 diff --git a/versions.txt b/versions.txt index b055919db81d..cde9017e3c95 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.127.12:1.127.13-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.128.0:1.128.0 \ No newline at end of file From 93b486eb4751f602aaf55e49313152f2e8c5fb09 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 9 Apr 2021 19:58:07 -0700 Subject: [PATCH 1221/3441] build(java): skip javadoc tests during dependencies test (#1229) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/dd324abd-aeaa-4d76-b929-9d570ba79778/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/5b0e1592dd7d70b485e157ea4b3eb1704ecbd015 --- .kokoro/dependencies.sh | 1 + synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index 0fb8c8436ccc..59d2aafc790f 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -33,6 +33,7 @@ export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m" retry_with_backoff 3 10 \ mvn install -B -V -ntp \ -DskipTests=true \ + -Dmaven.javadoc.skip=true \ -Dclirr.skip=true mvn -B dependency:analyze -DfailOnWarning=true diff --git a/synth.metadata b/synth.metadata index 11e1664b6aac..fcb9ef30d039 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b69258136bba3481030596107185b846d7a5c0a7" + "sha": "8ea26fcedf1f34565d287daab388c2a93d7ac6ea" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "572ef8f70edd9041f5bcfa71511aed6aecfc2098" + "sha": "5b0e1592dd7d70b485e157ea4b3eb1704ecbd015" } } ], From aaa9adbe359f0eb2b44b635bb888ce55d4ebf82c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 10 Apr 2021 03:08:04 +0000 Subject: [PATCH 1222/3441] chore: release 1.128.1-SNAPSHOT (#1230) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 50855414ac1b..4323bc623b3d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.128.0 + 1.128.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 34ca24d09e21..113c8c0644c4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.128.0 + 1.128.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.128.0 + 1.128.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c8ca49bc8332..fde1a0617fed 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.128.0 + 1.128.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.128.0 + 1.128.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 422a3c8d0376..fa14464f568a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.128.0 + 1.128.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index cde9017e3c95..4642c4fc5b0c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.128.0:1.128.0 \ No newline at end of file +google-cloud-bigquery:1.128.0:1.128.1-SNAPSHOT \ No newline at end of file From 21f922128419da78a8be765b45ce6bdd0f9c2472 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 10 Apr 2021 16:06:50 +0200 Subject: [PATCH 1223/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.128.0 (#1231) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7afa132a1845..3c40a898bfe8 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.127.12 + 1.128.0 From cb0579f39926514ad11bdd49af92504d7b94f2e6 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 10 Apr 2021 07:20:02 -0700 Subject: [PATCH 1224/3441] chore: regenerate README (#1232) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-04-10 14:09:07,556 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-04-10 14:09:08,839 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/89aad432-ded3-46bd-bb08-782612180906/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 6c01fbe88836..f174e845166c 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "ae8375c9787cd3dd9b39af804c152466a0dabb83" + "sha": "21f922128419da78a8be765b45ce6bdd0f9c2472" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "0f3469e88a4be9af4d9b1c4b6cf6fd3f8ac15588" + "sha": "0a071b3460344886297a304253bf924aa68ddb7e" } } ] diff --git a/README.md b/README.md index 0e8f4fb5d9d4..da1710eb3b3f 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.127.12 + 1.128.0 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.127.12' +compile 'com.google.cloud:google-cloud-bigquery:1.128.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.127.12" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.128.0" ``` ## Authentication From f082628ea36eb90d0fac31336499da003b89f30a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 12 Apr 2021 17:28:20 +0200 Subject: [PATCH 1225/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v20 (#1233) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | `19.2.1` -> `20.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/20.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/20.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/20.0.0/compatibility-slim/19.2.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/20.0.0/confidence-slim/19.2.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 37fa527d8c25..213f0edf916f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 19.2.1 + 20.0.0 pom import From c668f09d065a82538ac025c189f213b28f2bc3ea Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 12 Apr 2021 08:48:38 -0700 Subject: [PATCH 1226/3441] chore: regenerate README (#1234) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-04-12 15:30:42,513 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-04-12 15:30:43,819 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/997306e0-3d44-4e2d-ba32-9da6f2aa536e/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index f174e845166c..79a58c3a9b5f 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "21f922128419da78a8be765b45ce6bdd0f9c2472" + "sha": "f082628ea36eb90d0fac31336499da003b89f30a" } }, { diff --git a/README.md b/README.md index da1710eb3b3f..df8649d810d5 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 19.2.1 + 20.0.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:19.2.1') +implementation platform('com.google.cloud:libraries-bom:20.0.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From e2e7f900db11c513818339208eee28cccc5aa76f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 13 Apr 2021 08:38:17 -0700 Subject: [PATCH 1227/3441] fix: typo (#1236) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/188dabe1-9388-4624-88b8-fe2e7ac2d961/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/082e1ca0863b13ada8594fe91845380765da5b70 --- .kokoro/build.sh | 2 +- synth.metadata | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 8c8119e6a541..0f37b1e0209b 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -37,7 +37,7 @@ retry_with_backoff 3 10 \ -Dgcloud.download.skip=true \ -T 1C -# if GOOGLE_APPLICATION_CREDIENTIALS is specified as a relative path prepend Kokoro root directory onto it +# if GOOGLE_APPLICATION_CREDENTIALS is specified as a relative path, prepend Kokoro root directory onto it if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTIALS}" != /* ]]; then export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_GFILE_DIR}/${GOOGLE_APPLICATION_CREDENTIALS}) fi diff --git a/synth.metadata b/synth.metadata index fcb9ef30d039..e8764cd55127 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "8ea26fcedf1f34565d287daab388c2a93d7ac6ea" + "sha": "c668f09d065a82538ac025c189f213b28f2bc3ea" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5b0e1592dd7d70b485e157ea4b3eb1704ecbd015" + "sha": "082e1ca0863b13ada8594fe91845380765da5b70" } } ], @@ -26,6 +26,7 @@ ".github/readme/synth.py", ".github/release-please.yml", ".github/snippet-bot.yml", + ".github/sync-repo-settings.yaml", ".github/trusted-contribution.yml", ".github/workflows/approve-readme.yaml", ".github/workflows/auto-release.yaml", From 9e1a873c3b29afa733ac0f6abf8363f73c5a3419 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 13 Apr 2021 18:13:43 +0200 Subject: [PATCH 1228/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.14 (#1235) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3c40a898bfe8..6e7ccd4843f5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.13 + 1.0.14 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index fa14464f568a..601035622fc4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.13 + 1.0.14 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 213f0edf916f..8b6dba48fc9f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.13 + 1.0.14 test From 18c17ab30e893763d4075f40242aceec4c1d14d4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 14 Apr 2021 14:01:24 +0200 Subject: [PATCH 1229/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.23.0 (#1239) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6e7ccd4843f5..6778499148a6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.22.0 + 1.23.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 601035622fc4..6af022f82bfd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.22.0 + 1.23.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 8b6dba48fc9f..67a0a79ca79c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.22.0 + 1.23.0 test From b9fd26f2a887ed371c7974d6a48e36d03a95e088 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 14 Apr 2021 23:12:19 +0200 Subject: [PATCH 1230/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.11.1 (#1240) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `0.11.0` -> `0.11.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.11.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.11.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.11.1/compatibility-slim/0.11.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.11.1/confidence-slim/0.11.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v0.11.1`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​0111-httpswwwgithubcomgoogleapisjava-shared-configcomparev0110v0111-2021-04-14) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v0.11.0...v0.11.1)
    --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fde1a0617fed..b24d84d0da5c 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.11.0 + 0.11.1 From b2bbc90d968573e4e2e7c0785da3b5ae4c1ac0d7 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 15 Apr 2021 08:32:28 -0700 Subject: [PATCH 1231/3441] fix: release scripts from issuing overlapping phases (#1241) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/f801d6e1-7607-45e4-94e5-d42084e06fc7/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/8285c2b4cdbc3771d031ad91e1c4ec9e55fff45d --- .kokoro/release/snapshot.sh | 2 +- .kokoro/release/stage.sh | 2 +- synth.metadata | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.kokoro/release/snapshot.sh b/.kokoro/release/snapshot.sh index 098168a7373c..1f55b77024d8 100755 --- a/.kokoro/release/snapshot.sh +++ b/.kokoro/release/snapshot.sh @@ -25,7 +25,7 @@ grep SNAPSHOT versions.txt setup_environment_secrets create_settings_xml_file "settings.xml" -mvn clean install deploy -B \ +mvn clean deploy -B \ --settings ${MAVEN_SETTINGS_FILE} \ -DperformRelease=true \ -Dgpg.executable=gpg \ diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh index 16126d2eb53f..8a1033843cb1 100755 --- a/.kokoro/release/stage.sh +++ b/.kokoro/release/stage.sh @@ -29,7 +29,7 @@ create_settings_xml_file "settings.xml" # attempt to stage 3 times with exponential backoff (starting with 10 seconds) retry_with_backoff 3 10 \ - mvn clean install deploy -B \ + mvn clean deploy -B \ --settings ${MAVEN_SETTINGS_FILE} \ -DskipTests=true \ -DperformRelease=true \ diff --git a/synth.metadata b/synth.metadata index e8764cd55127..834585a7fbb5 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "c668f09d065a82538ac025c189f213b28f2bc3ea" + "sha": "b9fd26f2a887ed371c7974d6a48e36d03a95e088" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "082e1ca0863b13ada8594fe91845380765da5b70" + "sha": "8285c2b4cdbc3771d031ad91e1c4ec9e55fff45d" } } ], From 9b445423a213309ad8dea9b149c3511c82174f6d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 15 Apr 2021 20:17:39 +0200 Subject: [PATCH 1232/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v20.1.0 (#1242) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 67a0a79ca79c..de361183aa0e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 20.0.0 + 20.1.0 pom import From ba37b69be1e54b53d395fa5925afd67873e7e888 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 15 Apr 2021 11:30:06 -0700 Subject: [PATCH 1233/3441] chore: regenerate README (#1243) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-04-15 18:20:00,355 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-04-15 18:20:01,878 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/65a4b277-8d55-4f74-bc78-aa7b1e5f0fcd/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 79a58c3a9b5f..cd30688c3507 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "f082628ea36eb90d0fac31336499da003b89f30a" + "sha": "9b445423a213309ad8dea9b149c3511c82174f6d" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "0a071b3460344886297a304253bf924aa68ddb7e" + "sha": "043cc620d6a6111816d9e09f2a97208565fde958" } } ] diff --git a/README.md b/README.md index df8649d810d5..1808b5c8f239 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 20.0.0 + 20.1.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:20.0.0') +implementation platform('com.google.cloud:libraries-bom:20.1.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From b00ded92dfe553f9cf06624606717729f1103d6b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 17 Apr 2021 18:36:45 +0200 Subject: [PATCH 1234/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210410-1.31.0 (#1245) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b24d84d0da5c..e9828611200e 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210404-1.31.0 + v2-rev20210410-1.31.0 0.21.0
    From 119a378d6619098b4e123475c2ac7657e26c52e3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 20 Apr 2021 17:28:23 +0200 Subject: [PATCH 1235/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v0.21.1 (#1246) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `0.21.0` -> `0.21.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.21.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.21.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.21.1/compatibility-slim/0.21.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/0.21.1/confidence-slim/0.21.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v0.21.1`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​0211-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare0210v0211-2021-04-19) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v0.21.0...v0.21.1)
    --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e9828611200e..094887cb6f05 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20210410-1.31.0 - 0.21.0 + 0.21.1
    From 69974342628d1718ae79d810f9a89c264f77b878 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 20 Apr 2021 21:10:12 +0200 Subject: [PATCH 1236/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.15 (#1238) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `1.113.14` -> `1.113.15` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.113.15/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.113.15/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.113.15/compatibility-slim/1.113.14)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.113.15/confidence-slim/1.113.14)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v1.113.15`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​111315-httpswwwgithubcomgoogleapisjava-storagecomparev111314v111315-2021-04-13) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v1.113.14...v1.113.15)
    --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 094887cb6f05..b63eca285477 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.14 + 1.113.15 test From 7b97233f3645deb52d6db2e63c50ad2349b1e46b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 23 Apr 2021 03:48:06 +0200 Subject: [PATCH 1237/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.11.2 (#1251) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `0.11.1` -> `0.11.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.11.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.11.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.11.2/compatibility-slim/0.11.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.11.2/confidence-slim/0.11.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v0.11.2`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​0112-httpswwwgithubcomgoogleapisjava-shared-configcomparev0111v0112-2021-04-22) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v0.11.1...v0.11.2)
    --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b63eca285477..693c500c3b39 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.11.1 + 0.11.2 From 80e63b4bec2eaf3d53f900b8b226c156d095f262 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 23 Apr 2021 23:10:20 +0200 Subject: [PATCH 1238/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v1 (#1252) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `0.21.1` -> `1.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/1.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/1.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/1.0.0/compatibility-slim/0.21.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/1.0.0/confidence-slim/0.21.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v1.0.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​100-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare0211v100-2021-04-23) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v0.21.1...v1.0.0) ##### Features - promote to 1.0.0 ([#​341](https://www.github.com/googleapis/java-shared-dependencies/issues/341)) ([eddce7b](https://www.github.com/googleapis/java-shared-dependencies/commit/eddce7bda196d757c0bb93a05574cc742e3d7ff6)) ##### Dependencies - update dependency com.google.api:api-common to v1.10.3 ([#​340](https://www.github.com/googleapis/java-shared-dependencies/issues/340)) ([6a7fc33](https://www.github.com/googleapis/java-shared-dependencies/commit/6a7fc33548c199d5f310b3ee5024907882d22726)) - update dependency com.google.auth:google-auth-library-bom to v0.25.4 ([#​334](https://www.github.com/googleapis/java-shared-dependencies/issues/334)) ([e5c747d](https://www.github.com/googleapis/java-shared-dependencies/commit/e5c747d245194effc258ae706e7764153010cd53)) - update dependency com.google.auth:google-auth-library-bom to v0.25.5 ([#​338](https://www.github.com/googleapis/java-shared-dependencies/issues/338)) ([ffa1df5](https://www.github.com/googleapis/java-shared-dependencies/commit/ffa1df5497b5365f520b665a202b8caf6521fc9d)) - update dependency org.threeten:threetenbp to v1.5.1 ([#​335](https://www.github.com/googleapis/java-shared-dependencies/issues/335)) ([c8c6df4](https://www.github.com/googleapis/java-shared-dependencies/commit/c8c6df48e7f80944544939e502f4f08543af2631)) - update google.core.version to v1.94.8 ([#​342](https://www.github.com/googleapis/java-shared-dependencies/issues/342)) ([d946dd2](https://www.github.com/googleapis/java-shared-dependencies/commit/d946dd2299aac32f969a2226a1391e1e73f00e62)) ##### [0.21.1](https://www.github.com/googleapis/java-shared-dependencies/compare/0.21.0...v0.21.1) (2021-04-19) ##### Bug Fixes - release scripts from issuing overlapping phases ([#​332](https://www.github.com/googleapis/java-shared-dependencies/issues/332)) ([e289825](https://www.github.com/googleapis/java-shared-dependencies/commit/e289825a3bc45b4796db7ce4347f8d9d9251a410)) ##### Dependencies - update dependency com.fasterxml.jackson:jackson-bom to v2.12.3 ([#​329](https://www.github.com/googleapis/java-shared-dependencies/issues/329)) ([a77b4fc](https://www.github.com/googleapis/java-shared-dependencies/commit/a77b4fcc2ea5caf366c76a4698bac6d4c9abc92e)) - update dependency com.google.api-client:google-api-client-bom to v1.31.4 ([#​326](https://www.github.com/googleapis/java-shared-dependencies/issues/326)) ([409d24f](https://www.github.com/googleapis/java-shared-dependencies/commit/409d24f8a0cac30e41ca45eb2711aecb335d70dd)) - update dependency com.google.auth:google-auth-library-bom to v0.25.3 ([#​328](https://www.github.com/googleapis/java-shared-dependencies/issues/328)) ([88cfc08](https://www.github.com/googleapis/java-shared-dependencies/commit/88cfc08952881200e23ed95cfa2eebad85ec7ab3)) - update google.core.version to v1.94.7 ([#​324](https://www.github.com/googleapis/java-shared-dependencies/issues/324)) ([0412c88](https://www.github.com/googleapis/java-shared-dependencies/commit/0412c88468940c1182bc0761bfe269a6688fe7b7)) - update iam.version to v1.0.12 ([#​327](https://www.github.com/googleapis/java-shared-dependencies/issues/327)) ([548d5f5](https://www.github.com/googleapis/java-shared-dependencies/commit/548d5f53c4f264f1cbb9ca72fdfe4608ab16b480))
    --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 693c500c3b39..a1893eb3a716 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20210410-1.31.0 - 0.21.1 + 1.0.0
    From 5306bf1cd86c6e6bc71374f1a33dcd54b8bcd578 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 26 Apr 2021 17:26:34 +0200 Subject: [PATCH 1239/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.23.1 (#1248) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6778499148a6..ccd3309e71b7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.23.0 + 1.23.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6af022f82bfd..0708f49a67c0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.23.0 + 1.23.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index de361183aa0e..9d1b9ec212e4 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.23.0 + 1.23.1 test From 74a8677e22e4f8e446cbd7cab0439c3d6a22f4ba Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 26 Apr 2021 20:00:11 +0000 Subject: [PATCH 1240/3441] chore: release 1.128.1 (#1237) :robot: I have created a release \*beep\* \*boop\* --- ### [1.128.1](https://www.github.com/googleapis/java-bigquery/compare/v1.128.0...v1.128.1) (2021-04-26) ### Bug Fixes * release scripts from issuing overlapping phases ([#1241](https://www.github.com/googleapis/java-bigquery/issues/1241)) ([b2bbc90](https://www.github.com/googleapis/java-bigquery/commit/b2bbc90d968573e4e2e7c0785da3b5ae4c1ac0d7)) * typo ([#1236](https://www.github.com/googleapis/java-bigquery/issues/1236)) ([e2e7f90](https://www.github.com/googleapis/java-bigquery/commit/e2e7f900db11c513818339208eee28cccc5aa76f)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210410-1.31.0 ([#1245](https://www.github.com/googleapis/java-bigquery/issues/1245)) ([b00ded9](https://www.github.com/googleapis/java-bigquery/commit/b00ded92dfe553f9cf06624606717729f1103d6b)) * update dependency com.google.cloud:google-cloud-bigtable to v1.23.0 ([#1239](https://www.github.com/googleapis/java-bigquery/issues/1239)) ([18c17ab](https://www.github.com/googleapis/java-bigquery/commit/18c17ab30e893763d4075f40242aceec4c1d14d4)) * update dependency com.google.cloud:google-cloud-bigtable to v1.23.1 ([#1248](https://www.github.com/googleapis/java-bigquery/issues/1248)) ([5306bf1](https://www.github.com/googleapis/java-bigquery/commit/5306bf1cd86c6e6bc71374f1a33dcd54b8bcd578)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v0.21.1 ([#1246](https://www.github.com/googleapis/java-bigquery/issues/1246)) ([119a378](https://www.github.com/googleapis/java-bigquery/commit/119a378d6619098b4e123475c2ac7657e26c52e3)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v1 ([#1252](https://www.github.com/googleapis/java-bigquery/issues/1252)) ([80e63b4](https://www.github.com/googleapis/java-bigquery/commit/80e63b4bec2eaf3d53f900b8b226c156d095f262)) * update dependency com.google.cloud:google-cloud-storage to v1.113.15 ([#1238](https://www.github.com/googleapis/java-bigquery/issues/1238)) ([6997434](https://www.github.com/googleapis/java-bigquery/commit/69974342628d1718ae79d810f9a89c264f77b878)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 18 ++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 25 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b1edede75dd4..cdc26ec21d39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +### [1.128.1](https://www.github.com/googleapis/java-bigquery/compare/v1.128.0...v1.128.1) (2021-04-26) + + +### Bug Fixes + +* release scripts from issuing overlapping phases ([#1241](https://www.github.com/googleapis/java-bigquery/issues/1241)) ([b2bbc90](https://www.github.com/googleapis/java-bigquery/commit/b2bbc90d968573e4e2e7c0785da3b5ae4c1ac0d7)) +* typo ([#1236](https://www.github.com/googleapis/java-bigquery/issues/1236)) ([e2e7f90](https://www.github.com/googleapis/java-bigquery/commit/e2e7f900db11c513818339208eee28cccc5aa76f)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210410-1.31.0 ([#1245](https://www.github.com/googleapis/java-bigquery/issues/1245)) ([b00ded9](https://www.github.com/googleapis/java-bigquery/commit/b00ded92dfe553f9cf06624606717729f1103d6b)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.23.0 ([#1239](https://www.github.com/googleapis/java-bigquery/issues/1239)) ([18c17ab](https://www.github.com/googleapis/java-bigquery/commit/18c17ab30e893763d4075f40242aceec4c1d14d4)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.23.1 ([#1248](https://www.github.com/googleapis/java-bigquery/issues/1248)) ([5306bf1](https://www.github.com/googleapis/java-bigquery/commit/5306bf1cd86c6e6bc71374f1a33dcd54b8bcd578)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v0.21.1 ([#1246](https://www.github.com/googleapis/java-bigquery/issues/1246)) ([119a378](https://www.github.com/googleapis/java-bigquery/commit/119a378d6619098b4e123475c2ac7657e26c52e3)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v1 ([#1252](https://www.github.com/googleapis/java-bigquery/issues/1252)) ([80e63b4](https://www.github.com/googleapis/java-bigquery/commit/80e63b4bec2eaf3d53f900b8b226c156d095f262)) +* update dependency com.google.cloud:google-cloud-storage to v1.113.15 ([#1238](https://www.github.com/googleapis/java-bigquery/issues/1238)) ([6997434](https://www.github.com/googleapis/java-bigquery/commit/69974342628d1718ae79d810f9a89c264f77b878)) + ## [1.128.0](https://www.github.com/googleapis/java-bigquery/compare/v1.127.12...v1.128.0) (2021-04-09) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4323bc623b3d..f77964c108ca 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.128.1-SNAPSHOT + 1.128.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 113c8c0644c4..8c512d929e6d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.128.1-SNAPSHOT + 1.128.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.128.1-SNAPSHOT + 1.128.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a1893eb3a716..d5a619c90853 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.128.1-SNAPSHOT + 1.128.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.128.1-SNAPSHOT + 1.128.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0708f49a67c0..d2920f482f41 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.128.1-SNAPSHOT + 1.128.1 diff --git a/versions.txt b/versions.txt index 4642c4fc5b0c..809ef9037a82 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.128.0:1.128.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.128.1:1.128.1 \ No newline at end of file From a8cd1270f5feb63382e430623238ee0bd272ca6d Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 26 Apr 2021 16:00:56 -0400 Subject: [PATCH 1241/3441] build: configure branch 1.127.12-sp as a release branch (#1253) * build: configure branch 1.127.12-sp as a release branch * add synth.py exclusions * remove synth.py exclusions since autosynth only runs on master branch * revert back rebaseMergeAllowed setting --- .github/release-please.yml | 6 +++++- .github/sync-repo-settings.yaml | 16 ++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/release-please.yml b/.github/release-please.yml index dce2c8450921..807174cce1e4 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -1,2 +1,6 @@ releaseType: java-yoshi -bumpMinorPreMajor: true \ No newline at end of file +bumpMinorPreMajor: true +branches: +- releaseType: java-lts + bumpMinorPreMajor: true + branch: 1.127.12-sp \ No newline at end of file diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index d72318bf65db..ba8ff8a8dc8a 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -38,6 +38,22 @@ branchProtectionRules: - "units (11)" - "Kokoro - Test: Integration" - "cla/google" +- pattern: 1.127.12-sp + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - "dependencies (8)" + - "dependencies (11)" + - "linkage-monitor" + - "lint" + - "clirr" + - "units (7)" + - "units (8)" + - "units (11)" + - "Kokoro - Test: Integration" + - "cla/google" # List of explicit permissions to add (additive only) permissionRules: # Team slug to add to repository permissions From 5ca5e980788cbf8a4094eb678f236536263c3bc1 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 26 Apr 2021 20:12:07 +0000 Subject: [PATCH 1242/3441] chore: release 1.128.2-SNAPSHOT (#1256) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f77964c108ca..56e1c442edc0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.128.1 + 1.128.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8c512d929e6d..26f103f79264 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.128.1 + 1.128.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.128.1 + 1.128.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d5a619c90853..792eeed908cf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.128.1 + 1.128.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.128.1 + 1.128.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d2920f482f41..d9cd4c7e80c5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.128.1 + 1.128.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 809ef9037a82..14db5c605147 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.128.1:1.128.1 \ No newline at end of file +google-cloud-bigquery:1.128.1:1.128.2-SNAPSHOT \ No newline at end of file From ca7fdc3669afa5a8175847d45e405b684d542f3f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 27 Apr 2021 01:03:58 +0200 Subject: [PATCH 1243/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.128.1 (#1258) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ccd3309e71b7..f1152ef3ebe9 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.128.0 + 1.128.1 From bc6075b1eefaf9a65fc5f4d27ab8a7b76d499d35 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 27 Apr 2021 01:14:09 +0200 Subject: [PATCH 1244/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.23.2 (#1255) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `1.23.1` -> `1.23.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.23.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.23.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.23.2/compatibility-slim/1.23.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.23.2/confidence-slim/1.23.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v1.23.2`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​1232-httpswwwgithubcomgoogleapisjava-bigtablecomparev1231v1232-2021-04-23) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v1.23.1...v1.23.2)
    --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f1152ef3ebe9..30587c5ef4fc 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.23.1 + 1.23.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d9cd4c7e80c5..247fb1d6f051 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.23.1 + 1.23.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9d1b9ec212e4..e1d9b0319309 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.23.1 + 1.23.2 test From 8c0b85b5b9a9661b10181587c29e819ee5b6a708 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 27 Apr 2021 01:24:20 +0200 Subject: [PATCH 1245/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.113.16 (#1259) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `1.113.15` -> `1.113.16` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.113.16/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.113.16/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.113.16/compatibility-slim/1.113.15)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.113.16/confidence-slim/1.113.15)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v1.113.16`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​111316-httpswwwgithubcomgoogleapisjava-storagecomparev111315v111316-2021-04-23) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v1.113.15...v1.113.16)
    --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 792eeed908cf..1d916af47486 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.15 + 1.113.16 test From c4fd120ad3c4b64f8f680f9446d79ec08d9a770f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 26 Apr 2021 16:28:10 -0700 Subject: [PATCH 1246/3441] chore: regenerate README (#1262) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-04-26 23:16:23,258 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-04-26 23:16:24,680 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/5b42685b-42b6-4e72-85bc-9ea516bfe3ad/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index cd30688c3507..22b57b8baeed 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "9b445423a213309ad8dea9b149c3511c82174f6d" + "sha": "bc6075b1eefaf9a65fc5f4d27ab8a7b76d499d35" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "043cc620d6a6111816d9e09f2a97208565fde958" + "sha": "a648ce0ca3fe122b3186d7e6861cb641437e485e" } } ] diff --git a/README.md b/README.md index 1808b5c8f239..89fe693fe18a 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.128.0 + 1.128.1 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.128.0' +compile 'com.google.cloud:google-cloud-bigquery:1.128.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.128.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.128.1" ``` ## Authentication From 85761ccbf19c0be2dcd293756f43d3e682dae68c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 27 Apr 2021 19:20:28 +0200 Subject: [PATCH 1247/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.15 (#1260) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 30587c5ef4fc..fa88de1478ff 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.14 + 1.0.15 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 247fb1d6f051..c50ea5d7cf22 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.14 + 1.0.15 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e1d9b0319309..00b6f0920da0 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.14 + 1.0.15 test From b7ca9cad0ec8af4e65e49593ea57b02aa31bb8be Mon Sep 17 00:00:00 2001 From: "google-cloud-policy-bot[bot]" <80869356+google-cloud-policy-bot[bot]@users.noreply.github.com> Date: Tue, 27 Apr 2021 17:34:40 +0000 Subject: [PATCH 1248/3441] chore: add SECURITY.md (#1263) add a security policy --- SECURITY.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 000000000000..8b58ae9c01ae --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,7 @@ +# Security Policy + +To report a security issue, please use [g.co/vulnz](https://g.co/vulnz). + +The Google Security Team will respond within 5 working days of your report on g.co/vulnz. + +We use g.co/vulnz for our intake, and do coordination and disclosure here using GitHub Security Advisory to privately discuss and fix the issue. From 45f4a39139c88c3367192920ef774586369afdb4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 29 Apr 2021 16:42:07 +0200 Subject: [PATCH 1249/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v20.2.0 (#1265) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | `20.1.0` -> `20.2.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/20.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/20.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/20.2.0/compatibility-slim/20.1.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/20.2.0/confidence-slim/20.1.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 00b6f0920da0..a673300c1de1 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 20.1.0 + 20.2.0 pom import From fc3059eaecde25932cf2154affa8cea80a7824ee Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 30 Apr 2021 12:38:02 -0400 Subject: [PATCH 1250/3441] test: add integration test for Column ACLs (#1266) Fixes: #1244 --- .kokoro/dependencies.sh | 4 +- google-cloud-bigquery/pom.xml | 8 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 100 ++++++++++++++---- pom.xml | 12 +++ synth.py | 1 + 5 files changed, 105 insertions(+), 20 deletions(-) diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index 59d2aafc790f..12f1088d8da1 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -50,7 +50,9 @@ function completenessCheck() { # Output dep list generated using the flattened pom (only 'compile' and 'runtime' scopes) msg "Generating dependency list using flattened pom..." - mvn dependency:list -f .flattened-pom.xml -DincludeScope=runtime -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' >.new-list.txt + # Excluding commons-codec,commons-logging from the comparison as a temp fix + # Explanation and issue filed in maven-dependency-plugin: https://issues.apache.org/jira/browse/MDEP-737 + mvn dependency:list -f .flattened-pom.xml -DexcludeArtifactIds=commons-codec,commons-logging -DincludeScope=runtime -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' >.new-list.txt # Compare two dependency lists msg "Comparing dependency lists..." diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 26f103f79264..5d939a1115b4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -29,6 +29,14 @@ com.google.http-client google-http-client-jackson2 + + com.google.cloud + google-cloud-datacatalog + + + com.google.api.grpc + proto-google-cloud-datacatalog-v1 + com.google.cloud google-cloud-storage diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 4e8e600f7971..e123fa446708 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -59,6 +59,7 @@ import com.google.cloud.bigquery.ExternalTableDefinition; import com.google.cloud.bigquery.ExtractJobConfiguration; import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldList; import com.google.cloud.bigquery.FieldValue; import com.google.cloud.bigquery.FieldValueList; import com.google.cloud.bigquery.FormatOptions; @@ -98,6 +99,12 @@ import com.google.cloud.bigquery.ViewDefinition; import com.google.cloud.bigquery.WriteChannelConfiguration; import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import com.google.cloud.datacatalog.v1.CreatePolicyTagRequest; +import com.google.cloud.datacatalog.v1.CreateTaxonomyRequest; +import com.google.cloud.datacatalog.v1.PolicyTag; +import com.google.cloud.datacatalog.v1.PolicyTagManagerClient; +import com.google.cloud.datacatalog.v1.Taxonomy; +import com.google.cloud.datacatalog.v1.Taxonomy.PolicyType; import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.BucketInfo; import com.google.cloud.storage.Storage; @@ -155,10 +162,6 @@ public class ITBigQueryTest { ImmutableMap.of( "example-label1", "example-value1", "example-label2", "example-value2"); - private static final String sampleTag = - String.format("projects/%s/locations/us/taxonomies/1/policyTags/2", PROJECT_ID); - private static final PolicyTags POLICY_TAGS = - PolicyTags.newBuilder().setNames(ImmutableList.of(sampleTag)).build(); private static final Field TIMESTAMP_FIELD_SCHEMA = Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) .setMode(Field.Mode.NULLABLE) @@ -241,12 +244,6 @@ public class ITBigQueryTest { .setMode(Field.Mode.NULLABLE) .setDescription("BigNumeric4Description") .build(); - private static final Field STRING_FIELD_SCHEMA_WITH_POLICY = - Field.newBuilder("StringFieldWithPolicy", LegacySQLTypeName.STRING) - .setMode(Field.Mode.NULLABLE) - .setDescription("field has a policy") - .setPolicyTags(POLICY_TAGS) - .build(); private static final Schema TABLE_SCHEMA = Schema.of( TIMESTAMP_FIELD_SCHEMA, @@ -297,8 +294,6 @@ public class ITBigQueryTest { .build()); private static final Schema SIMPLE_SCHEMA = Schema.of(STRING_FIELD_SCHEMA); - private static final Schema POLICY_SCHEMA = - Schema.of(STRING_FIELD_SCHEMA, STRING_FIELD_SCHEMA_WITH_POLICY, INTEGER_FIELD_SCHEMA); private static final Schema QUERY_RESULT_SCHEMA = Schema.of( Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) @@ -705,18 +700,85 @@ public void testCreateTableWithRangePartitioning() { } } - public void testCreateTableWithPolicyTags() { - String tableName = "test_create_table_policytags"; - TableId tableId = TableId.of(DATASET, tableName); - try { + @Test + public void testCreateAndUpdateTableWithPolicyTags() throws IOException { + // Set up policy tags in the datacatalog service + try (PolicyTagManagerClient policyTagManagerClient = PolicyTagManagerClient.create()) { + CreateTaxonomyRequest createTaxonomyRequest = + CreateTaxonomyRequest.newBuilder() + .setParent(String.format("projects/%s/locations/%s", PROJECT_ID, "us")) + .setTaxonomy( + Taxonomy.newBuilder() + .setDisplayName("testing taxonomy") + .setDescription("taxonomy created for integration tests") + .addActivatedPolicyTypes(PolicyType.FINE_GRAINED_ACCESS_CONTROL) + .build()) + .build(); + Taxonomy taxonomyResponse = policyTagManagerClient.createTaxonomy(createTaxonomyRequest); + String taxonomyId = taxonomyResponse.getName(); + + CreatePolicyTagRequest createPolicyTagRequest = + CreatePolicyTagRequest.newBuilder() + .setParent(taxonomyId) + .setPolicyTag(PolicyTag.newBuilder().setDisplayName("ExamplePolicyTag").build()) + .build(); + PolicyTag policyTagResponse = policyTagManagerClient.createPolicyTag(createPolicyTagRequest); + String policyTagId = policyTagResponse.getName(); + PolicyTags policyTags = + PolicyTags.newBuilder().setNames(ImmutableList.of(policyTagId)).build(); + Field stringFieldWithPolicy = + Field.newBuilder("StringFieldWithPolicy", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("field has a policy") + .setPolicyTags(policyTags) + .build(); + Schema policySchema = + Schema.of(STRING_FIELD_SCHEMA, stringFieldWithPolicy, INTEGER_FIELD_SCHEMA); + + // Test: Amend an existing schema with a policy tag. + String tableNameForUpdate = "test_update_table_policytags"; + TableId tableIdForUpdate = TableId.of(DATASET, tableNameForUpdate); + TableInfo tableInfo = + TableInfo.newBuilder(tableIdForUpdate, StandardTableDefinition.of(TABLE_SCHEMA)) + .setDescription("policy tag update test table") + .build(); + Table createdTableForUpdate = bigquery.create(tableInfo); + assertNotNull(createdTableForUpdate); + Schema schema = createdTableForUpdate.getDefinition().getSchema(); + FieldList fields = schema.getFields(); + // Create a new schema adding the current fields, plus the new policy tag field + List fieldList = new ArrayList<>(); + for (Field field : fields) { + fieldList.add(field); + } + fieldList.add(stringFieldWithPolicy); + Schema updatedSchemaWithPolicyTag = Schema.of(fieldList); + Table updatedTable = + createdTableForUpdate + .toBuilder() + .setDefinition(StandardTableDefinition.of(updatedSchemaWithPolicyTag)) + .build(); + updatedTable.update(); + Table remoteUpdatedTable = bigquery.getTable(DATASET, tableNameForUpdate); + assertEquals( + updatedSchemaWithPolicyTag, + remoteUpdatedTable.getDefinition().getSchema()); + bigquery.delete(tableIdForUpdate); + + // Test: Create a new table with a policy tag defined. + String tableName = "test_create_table_policytags"; + TableId tableId = TableId.of(DATASET, tableName); StandardTableDefinition tableDefinition = - StandardTableDefinition.newBuilder().setSchema(POLICY_SCHEMA).build(); + StandardTableDefinition.newBuilder().setSchema(policySchema).build(); Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); assertNotNull(createdTable); Table remoteTable = bigquery.getTable(DATASET, tableName); - assertEquals(POLICY_SCHEMA, remoteTable.getDefinition().getSchema()); - } finally { + assertEquals(policySchema, remoteTable.getDefinition().getSchema()); bigquery.delete(tableId); + + // Clean up policy tags + policyTagManagerClient.deletePolicyTag(policyTagId); + policyTagManagerClient.deleteTaxonomy(taxonomyId); } } diff --git a/pom.xml b/pom.xml index 1d916af47486..6b4813fea2f8 100644 --- a/pom.xml +++ b/pom.xml @@ -121,6 +121,18 @@ 1.113.16 test + + com.google.cloud + google-cloud-datacatalog + 1.3.2 + test + + + com.google.api.grpc + proto-google-cloud-datacatalog-v1 + 1.3.2 + test + org.assertj assertj-core diff --git a/synth.py b/synth.py index 8d5aa0e5b79d..381c973f7634 100644 --- a/synth.py +++ b/synth.py @@ -26,5 +26,6 @@ '.kokoro/nightly/samples.cfg', '.kokoro/presubmit/java8-samples.cfg', '.kokoro/presubmit/java11-samples.cfg', + '.kokoro/dependencies.sh', 'codecov.yaml' ]) From 956447c4ccd01db382d9b1983d8f63f6c87e9265 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 30 Apr 2021 16:48:06 +0000 Subject: [PATCH 1251/3441] chore: release 1.128.2 (#1261) :robot: I have created a release \*beep\* \*boop\* --- ### [1.128.2](https://www.github.com/googleapis/java-bigquery/compare/v1.128.1...v1.128.2) (2021-04-30) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.23.2 ([#1255](https://www.github.com/googleapis/java-bigquery/issues/1255)) ([bc6075b](https://www.github.com/googleapis/java-bigquery/commit/bc6075b1eefaf9a65fc5f4d27ab8a7b76d499d35)) * update dependency com.google.cloud:google-cloud-storage to v1.113.16 ([#1259](https://www.github.com/googleapis/java-bigquery/issues/1259)) ([8c0b85b](https://www.github.com/googleapis/java-bigquery/commit/8c0b85b5b9a9661b10181587c29e819ee5b6a708)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cdc26ec21d39..d04399caf609 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.128.2](https://www.github.com/googleapis/java-bigquery/compare/v1.128.1...v1.128.2) (2021-04-30) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.23.2 ([#1255](https://www.github.com/googleapis/java-bigquery/issues/1255)) ([bc6075b](https://www.github.com/googleapis/java-bigquery/commit/bc6075b1eefaf9a65fc5f4d27ab8a7b76d499d35)) +* update dependency com.google.cloud:google-cloud-storage to v1.113.16 ([#1259](https://www.github.com/googleapis/java-bigquery/issues/1259)) ([8c0b85b](https://www.github.com/googleapis/java-bigquery/commit/8c0b85b5b9a9661b10181587c29e819ee5b6a708)) + ### [1.128.1](https://www.github.com/googleapis/java-bigquery/compare/v1.128.0...v1.128.1) (2021-04-26) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 56e1c442edc0..21b212b143bc 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.128.2-SNAPSHOT + 1.128.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5d939a1115b4..bae500efd743 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.128.2-SNAPSHOT + 1.128.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.128.2-SNAPSHOT + 1.128.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 6b4813fea2f8..a07e6e888187 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.128.2-SNAPSHOT + 1.128.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.128.2-SNAPSHOT + 1.128.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c50ea5d7cf22..0d561eb4d873 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.128.2-SNAPSHOT + 1.128.2 diff --git a/versions.txt b/versions.txt index 14db5c605147..c0a859f4220b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.128.1:1.128.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.128.2:1.128.2 \ No newline at end of file From df30af3b2a7b831f77e8c6f3e984460f2b023f70 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 30 Apr 2021 09:52:03 -0700 Subject: [PATCH 1252/3441] chore: regenerate README (#1267) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-04-30 16:40:12,952 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-04-30 16:40:14,628 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/f910b79d-d081-435c-b7b6-5b16f1edd814/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 22b57b8baeed..110f51e6ad4d 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "bc6075b1eefaf9a65fc5f4d27ab8a7b76d499d35" + "sha": "fc3059eaecde25932cf2154affa8cea80a7824ee" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "a648ce0ca3fe122b3186d7e6861cb641437e485e" + "sha": "06a8cd0ff7e81b05e6c503eab510ec622384caa7" } } ] diff --git a/README.md b/README.md index 89fe693fe18a..8e743a4c8b55 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 20.1.0 + 20.2.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:20.1.0') +implementation platform('com.google.cloud:libraries-bom:20.2.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From 3a413cd9f680fbfb68a6f2dc45b28f7cb8098a1c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 30 Apr 2021 17:02:04 +0000 Subject: [PATCH 1253/3441] chore: release 1.128.3-SNAPSHOT (#1268) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 21b212b143bc..046f3f56d8cd 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.128.2 + 1.128.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bae500efd743..6b7f97588b95 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.128.2 + 1.128.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.128.2 + 1.128.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a07e6e888187..06ac51ba8025 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.128.2 + 1.128.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.128.2 + 1.128.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0d561eb4d873..2a175d5d2c43 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.128.2 + 1.128.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index c0a859f4220b..ba8d6839e400 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.128.2:1.128.2 \ No newline at end of file +google-cloud-bigquery:1.128.2:1.128.3-SNAPSHOT \ No newline at end of file From f006fa9b4e5029c6eaa0440308c33f7c6b963b50 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 30 Apr 2021 19:47:54 +0200 Subject: [PATCH 1254/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.24.0 (#1269) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fa88de1478ff..2ba3364212eb 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.23.2 + 1.24.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2a175d5d2c43..15b55e208b3f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.23.2 + 1.24.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a673300c1de1..02d82b0d0329 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.23.2 + 1.24.0 test From 52b7627c906c4ca438c1f72489fa0193ca2a4c8a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 30 Apr 2021 18:00:04 +0000 Subject: [PATCH 1255/3441] chore: release 1.128.3 (#1270) :robot: I have created a release \*beep\* \*boop\* --- ### [1.128.3](https://www.github.com/googleapis/java-bigquery/compare/v1.128.2...v1.128.3) (2021-04-30) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.24.0 ([#1269](https://www.github.com/googleapis/java-bigquery/issues/1269)) ([f006fa9](https://www.github.com/googleapis/java-bigquery/commit/f006fa9b4e5029c6eaa0440308c33f7c6b963b50)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d04399caf609..00675d5be0c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.128.3](https://www.github.com/googleapis/java-bigquery/compare/v1.128.2...v1.128.3) (2021-04-30) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.24.0 ([#1269](https://www.github.com/googleapis/java-bigquery/issues/1269)) ([f006fa9](https://www.github.com/googleapis/java-bigquery/commit/f006fa9b4e5029c6eaa0440308c33f7c6b963b50)) + ### [1.128.2](https://www.github.com/googleapis/java-bigquery/compare/v1.128.1...v1.128.2) (2021-04-30) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 046f3f56d8cd..307a9718cd77 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.128.3-SNAPSHOT + 1.128.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6b7f97588b95..3e3c23feec55 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.128.3-SNAPSHOT + 1.128.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.128.3-SNAPSHOT + 1.128.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 06ac51ba8025..2edc07466485 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.128.3-SNAPSHOT + 1.128.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.128.3-SNAPSHOT + 1.128.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 15b55e208b3f..43a7a4a2baf7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.128.3-SNAPSHOT + 1.128.3 diff --git a/versions.txt b/versions.txt index ba8d6839e400..bb467c486902 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.128.2:1.128.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.128.3:1.128.3 \ No newline at end of file From 380e187e342a124c689ec826a020f4314e086172 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 30 Apr 2021 11:02:04 -0700 Subject: [PATCH 1256/3441] chore: regenerate README (#1271) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-04-30 17:50:05,966 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-04-30 17:50:07,407 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/2855025d-e963-4a23-94bf-a0645fe78cae/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 110f51e6ad4d..f195d564e4af 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "fc3059eaecde25932cf2154affa8cea80a7824ee" + "sha": "f006fa9b4e5029c6eaa0440308c33f7c6b963b50" } }, { diff --git a/README.md b/README.md index 8e743a4c8b55..470a3a9f37d5 100644 --- a/README.md +++ b/README.md @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.128.1' +compile 'com.google.cloud:google-cloud-bigquery:1.128.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.128.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.128.2" ``` ## Authentication From 3beb7f7ecbca3945c7dfbee930326a4bef0d2a45 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 30 Apr 2021 18:12:04 +0000 Subject: [PATCH 1257/3441] chore: release 1.128.4-SNAPSHOT (#1272) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 307a9718cd77..140992cb19ed 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.128.3 + 1.128.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3e3c23feec55..5e3a566e3cad 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.128.3 + 1.128.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.128.3 + 1.128.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2edc07466485..0d5110c798c4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.128.3 + 1.128.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.128.3 + 1.128.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 43a7a4a2baf7..d513ead76b49 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.128.3 + 1.128.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index bb467c486902..d9e9a4af7bcf 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.128.3:1.128.3 \ No newline at end of file +google-cloud-bigquery:1.128.3:1.128.4-SNAPSHOT \ No newline at end of file From ec2c634f1ea23e72b331852d1ec73b4f72087bc4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 1 May 2021 03:58:03 +0200 Subject: [PATCH 1258/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.1.2 (#1273) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.apache.maven.plugins:maven-project-info-reports-plugin | `3.1.1` -> `3.1.2` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-project-info-reports-plugin/3.1.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-project-info-reports-plugin/3.1.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-project-info-reports-plugin/3.1.2/compatibility-slim/3.1.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-project-info-reports-plugin/3.1.2/confidence-slim/3.1.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0d5110c798c4..8173f971590c 100644 --- a/pom.xml +++ b/pom.xml @@ -152,7 +152,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.1.1 + 3.1.2 From b5eaf35914c590148fb9a1bef99bee94af4b727a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 30 Apr 2021 19:12:03 -0700 Subject: [PATCH 1259/3441] chore: regenerate README (#1276) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-05-01 02:00:22,770 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-05-01 02:00:24,189 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/181be0c3-4475-450e-8cb8-7f03b9e27579/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index f195d564e4af..df1add319ab2 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "f006fa9b4e5029c6eaa0440308c33f7c6b963b50" + "sha": "ec2c634f1ea23e72b331852d1ec73b4f72087bc4" } }, { diff --git a/README.md b/README.md index 470a3a9f37d5..084512e523bd 100644 --- a/README.md +++ b/README.md @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.128.2' +compile 'com.google.cloud:google-cloud-bigquery:1.128.3' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.128.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.128.3" ``` ## Authentication From 70ca2652fd5843d9c8107d2317fa699bd0c9fca3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 2 May 2021 01:49:10 +0200 Subject: [PATCH 1260/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.128.3 (#1274) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2ba3364212eb..b9263fd9abb0 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.128.1 + 1.128.3 From 2a9c29b9bf4375dfa280e682908c32a13c3394b0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 1 May 2021 17:02:02 -0700 Subject: [PATCH 1261/3441] chore: regenerate README (#1277) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-05-01 23:51:21,863 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-05-01 23:51:23,255 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/38bbbe88-fe9d-491a-bbde-1a8833099c5e/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index df1add319ab2..64bf08ba2f18 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "ec2c634f1ea23e72b331852d1ec73b4f72087bc4" + "sha": "70ca2652fd5843d9c8107d2317fa699bd0c9fca3" } }, { diff --git a/README.md b/README.md index 084512e523bd..f8d02882d2e3 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.128.1 + 1.128.3 ``` From a58dd7cd8c78104372429563ed35528666b817d7 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 3 May 2021 16:36:45 -0700 Subject: [PATCH 1262/3441] build(java): switch to release-please for release tagging (#1279) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/02640c73-50fd-4b43-859f-63635b704c9d/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/release-please.yml | 10 ++++++---- synth.metadata | 3 +-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/release-please.yml b/.github/release-please.yml index 807174cce1e4..c7b756e1bf13 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -1,6 +1,8 @@ -releaseType: java-yoshi -bumpMinorPreMajor: true branches: -- releaseType: java-lts +- branch: 1.127.12-sp bumpMinorPreMajor: true - branch: 1.127.12-sp \ No newline at end of file + handleGHRelease: true + releaseType: java-lts +bumpMinorPreMajor: true +handleGHRelease: true +releaseType: java-yoshi diff --git a/synth.metadata b/synth.metadata index 834585a7fbb5..c6c84502bf7e 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b9fd26f2a887ed371c7974d6a48e36d03a95e088" + "sha": "2a9c29b9bf4375dfa280e682908c32a13c3394b0" } }, { @@ -40,7 +40,6 @@ ".kokoro/continuous/common.cfg", ".kokoro/continuous/java8.cfg", ".kokoro/continuous/readme.cfg", - ".kokoro/dependencies.sh", ".kokoro/nightly/common.cfg", ".kokoro/nightly/integration.cfg", ".kokoro/nightly/java11.cfg", From 89958e9b5e4330b31878aa31b90569d2fd0310f2 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 4 May 2021 11:14:02 -0400 Subject: [PATCH 1263/3441] feat: add support for user defined TVFs (#1278) Allow BigQuery client library users to define table-valued functions (TVFs) that return table data. --- .../clirr-ignored-differences.xml | 2 +- .../com/google/cloud/bigquery/Routine.java | 6 ++ .../google/cloud/bigquery/RoutineInfo.java | 26 +++++++ .../cloud/bigquery/StandardSQLTableType.java | 70 +++++++++++++++++++ .../google/cloud/bigquery/RoutineTest.java | 25 +++++++ .../bigquery/StandardSQLTableTypeTest.java | 60 ++++++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 30 ++++++++ 7 files changed, 218 insertions(+), 1 deletion(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTableType.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLTableTypeTest.java diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 6c1fd8cd6c0b..bebc7e25ca05 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -5,6 +5,6 @@ 7013 com/google/cloud/bigquery/RoutineInfo$Builder - com.google.cloud.bigquery.RoutineInfo$Builder setDeterminismLevel(java.lang.String) + com.google.cloud.bigquery.RoutineInfo$Builder setReturnTableType(com.google.cloud.bigquery.StandardSQLTableType) \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java index 2fbf1d67d8b4..a5232c3f916b 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java @@ -111,6 +111,12 @@ public Builder setReturnType(StandardSQLDataType returnType) { return this; } + @Override + public Builder setReturnTableType(StandardSQLTableType returnTableType) { + infoBuilder.setReturnTableType(returnTableType); + return this; + } + @Override public Builder setImportedLibraries(List libraries) { infoBuilder.setImportedLibraries(libraries); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java index 1f9c252d2ce9..daa745577745 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java @@ -67,6 +67,7 @@ public Routine apply(RoutineInfo routineInfo) { private final String language; private final List argumentList; private final StandardSQLDataType returnType; + private final StandardSQLTableType returnTableType; private final List importedLibrariesList; private final String body; @@ -113,6 +114,9 @@ public abstract static class Builder { */ public abstract Builder setReturnType(StandardSQLDataType returnType); + /** Optional. Set only if Routine is a "TABLE_VALUED_FUNCTION". */ + public abstract Builder setReturnTableType(StandardSQLTableType returnTableType); + /** * Optional. If language = "JAVASCRIPT", this field stores the path of the imported JAVASCRIPT * libraries as a list of gs:// URLs. @@ -159,6 +163,7 @@ static class BuilderImpl extends Builder { private String language; private List argumentList; private StandardSQLDataType returnType; + private StandardSQLTableType returnTableType; private List importedLibrariesList; private String body; @@ -175,6 +180,7 @@ static class BuilderImpl extends Builder { this.language = routineInfo.language; this.argumentList = routineInfo.argumentList; this.returnType = routineInfo.returnType; + this.returnTableType = routineInfo.returnTableType; this.importedLibrariesList = routineInfo.importedLibrariesList; this.body = routineInfo.body; } @@ -195,6 +201,9 @@ static class BuilderImpl extends Builder { if (routinePb.getReturnType() != null) { this.returnType = StandardSQLDataType.fromPb(routinePb.getReturnType()); } + if (routinePb.getReturnTableType() != null) { + this.returnTableType = StandardSQLTableType.fromPb(routinePb.getReturnTableType()); + } if (routinePb.getImportedLibraries() == null) { this.importedLibrariesList = Collections.emptyList(); } else { @@ -263,6 +272,12 @@ public Builder setReturnType(StandardSQLDataType returnType) { return this; } + @Override + public Builder setReturnTableType(StandardSQLTableType returnTableType) { + this.returnTableType = returnTableType; + return this; + } + @Override public Builder setImportedLibraries(List importedLibrariesList) { this.importedLibrariesList = importedLibrariesList; @@ -292,6 +307,7 @@ public RoutineInfo build() { this.language = builder.language; this.argumentList = builder.argumentList; this.returnType = builder.returnType; + this.returnTableType = builder.returnTableType; this.importedLibrariesList = builder.importedLibrariesList; this.body = builder.body; } @@ -350,6 +366,11 @@ public StandardSQLDataType getReturnType() { return returnType; } + /** If specified, returns the table type returned from the routine. */ + public StandardSQLTableType getReturnTableType() { + return returnTableType; + } + /** * Returns the list of imported libraries for the routine. Only relevant for routines implemented * using the JAVASCRIPT language. @@ -381,6 +402,7 @@ public String toString() { .add("language", language) .add("arguments", argumentList) .add("returnType", returnType) + .add("returnTableType", returnTableType) .add("importedLibrariesList", importedLibrariesList) .add("body", body) .toString(); @@ -399,6 +421,7 @@ public int hashCode() { language, argumentList, returnType, + returnTableType, importedLibrariesList, body); } @@ -448,6 +471,9 @@ Routine toPb() { if (getReturnType() != null) { routinePb.setReturnType(getReturnType().toPb()); } + if (getReturnTableType() != null) { + routinePb.setReturnTableType(getReturnTableType().toPb()); + } return routinePb; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTableType.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTableType.java new file mode 100644 index 000000000000..d44f89f922b1 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTableType.java @@ -0,0 +1,70 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.StandardSqlTableType; +import com.google.auto.value.AutoValue; +import com.google.common.collect.Lists; +import java.io.Serializable; +import java.util.List; + +/** Represents Standard SQL table type information. */ +@AutoValue +public abstract class StandardSQLTableType implements Serializable { + + @AutoValue.Builder + public abstract static class Builder { + + /** Sets the columns in this table type. */ + public abstract Builder setColumns(List columns); + + /** Creates a {@code StandardSQLTableType} object. */ + public abstract StandardSQLTableType build(); + } + + /** Returns the columns in this table type. */ + public abstract List getColumns(); + + public abstract Builder toBuilder(); + + /** Returns a builder for a {@code StandardSQLTableType} object. */ + public static Builder newBuilder() { + return new AutoValue_StandardSQLTableType.Builder(); + } + + /** Returns a builder for a {@code StandardSQLTableType} object with the specified columns. */ + public static StandardSQLTableType.Builder newBuilder(List columns) { + return newBuilder().setColumns(columns); + } + + static StandardSQLTableType fromPb( + com.google.api.services.bigquery.model.StandardSqlTableType tableTypePb) { + StandardSQLTableType.Builder builder = newBuilder(); + if (tableTypePb.getColumns() != null) { + builder.setColumns( + Lists.transform(tableTypePb.getColumns(), StandardSQLField.FROM_PB_FUNCTION)); + } + return builder.build(); + } + + StandardSqlTableType toPb() { + StandardSqlTableType tableType = new StandardSqlTableType(); + if (getColumns() != null) { + tableType.setColumns(Lists.transform(getColumns(), StandardSQLField.TO_PB_FUNCTION)); + } + return tableType; + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java index f0e29410dbd6..89bed602eeaf 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java @@ -38,9 +38,11 @@ public class RoutineTest { private static final RoutineId ROUTINE_ID = RoutineId.of("dataset", "routine"); + private static final RoutineId ROUTINE_ID_TVF = RoutineId.of("dataset", "tvf_routine"); private static final String DETERMINISM_LEVEL = "DETERMINISTIC"; private static final String ETAG = "etag"; private static final String ROUTINE_TYPE = "SCALAR_FUNCTION"; + private static final String ROUTINE_TYPE_TVF = "TABLE_VALUED_FUNCTION"; private static final Long CREATION_TIME = 10L; private static final Long LAST_MODIFIED_TIME = 20L; private static final String LANGUAGE = "SQL"; @@ -56,6 +58,18 @@ public class RoutineTest { private static final StandardSQLDataType RETURN_TYPE = StandardSQLDataType.newBuilder("FLOAT64").build(); + private static final StandardSQLField COLUMN_1 = + StandardSQLField.newBuilder("COLUMN_1", StandardSQLDataType.newBuilder("STRING").build()) + .build(); + private static final StandardSQLField COLUMN_2 = + StandardSQLField.newBuilder("COLUMN_2", StandardSQLDataType.newBuilder("FLOAT64").build()) + .build(); + + private static final List COLUMN_LIST = ImmutableList.of(COLUMN_1, COLUMN_2); + + private static final StandardSQLTableType RETURN_TABLE_TYPE = + StandardSQLTableType.newBuilder(COLUMN_LIST).build(); + private static final List IMPORTED_LIBRARIES = ImmutableList.of("gs://foo", "gs://bar", "gs://baz"); @@ -75,11 +89,19 @@ public class RoutineTest { .setBody(BODY) .build(); + private static final RoutineInfo ROUTINE_INFO_TVF = + RoutineInfo.newBuilder(ROUTINE_ID_TVF) + .setBody(BODY) + .setRoutineType(ROUTINE_TYPE_TVF) + .setReturnTableType(RETURN_TABLE_TYPE) + .build(); + @Rule public MockitoRule rule; private BigQuery bigquery; private BigQueryOptions mockOptions; private Routine expectedRoutine; + private Routine expectedRoutineTvf; private Routine routine; @Before @@ -88,6 +110,7 @@ public void setUp() { mockOptions = mock(BigQueryOptions.class); when(bigquery.getOptions()).thenReturn(mockOptions); expectedRoutine = new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO)); + expectedRoutineTvf = new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO_TVF)); routine = new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO)); } @@ -114,6 +137,7 @@ public void testBuilder() { @Test public void testToBuilder() { compareRoutineInfo(expectedRoutine, expectedRoutine.toBuilder().build()); + compareRoutineInfo(expectedRoutineTvf, expectedRoutineTvf.toBuilder().build()); } @Test @@ -200,6 +224,7 @@ public void compareRoutineInfo(RoutineInfo expected, RoutineInfo value) { assertEquals(expected.getLanguage(), value.getLanguage()); assertEquals(expected.getArguments(), value.getArguments()); assertEquals(expected.getReturnType(), value.getReturnType()); + assertEquals(expected.getReturnTableType(), value.getReturnTableType()); assertEquals(expected.getImportedLibraries(), value.getImportedLibraries()); assertEquals(expected.getBody(), value.getBody()); assertEquals(expected.hashCode(), value.hashCode()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLTableTypeTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLTableTypeTest.java new file mode 100644 index 000000000000..2ed6e353543f --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLTableTypeTest.java @@ -0,0 +1,60 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.*; + +import com.google.common.collect.ImmutableList; +import java.util.List; +import org.junit.Test; + +public class StandardSQLTableTypeTest { + + private static final StandardSQLField COLUMN_1 = + StandardSQLField.newBuilder("COLUMN_1", StandardSQLDataType.newBuilder("STRING").build()) + .build(); + private static final StandardSQLField COLUMN_2 = + StandardSQLField.newBuilder("COLUMN_2", StandardSQLDataType.newBuilder("FLOAT64").build()) + .build(); + + private static final List COLUMN_LIST = ImmutableList.of(COLUMN_1, COLUMN_2); + private static final StandardSQLTableType TABLE_TYPE = + StandardSQLTableType.newBuilder(COLUMN_LIST).build(); + + @Test + public void testToBuilder() { + compareStandardSQLTableType(TABLE_TYPE, TABLE_TYPE.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(COLUMN_1, TABLE_TYPE.getColumns().get(0)); + assertEquals(COLUMN_2, TABLE_TYPE.getColumns().get(1)); + } + + @Test + public void testToAndFromPb() { + compareStandardSQLTableType(TABLE_TYPE, StandardSQLTableType.fromPb(TABLE_TYPE.toPb())); + } + + private void compareStandardSQLTableType( + StandardSQLTableType expected, StandardSQLTableType value) { + assertEquals(expected, value); + assertEquals(expected.getColumns(), value.getColumns()); + assertEquals(expected.hashCode(), value.hashCode()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index e123fa446708..9b1374bc1572 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -87,6 +87,8 @@ import com.google.cloud.bigquery.RoutineInfo; import com.google.cloud.bigquery.Schema; import com.google.cloud.bigquery.StandardSQLDataType; +import com.google.cloud.bigquery.StandardSQLField; +import com.google.cloud.bigquery.StandardSQLTableType; import com.google.cloud.bigquery.StandardTableDefinition; import com.google.cloud.bigquery.Table; import com.google.cloud.bigquery.TableDataWriteChannel; @@ -1676,6 +1678,34 @@ public void testRoutineAPICreationJavascriptUDF() { assertEquals(routine.getReturnType(), StandardSQLDataType.newBuilder("STRING").build()); } + @Test + public void testRoutineAPICreationTVF() { + String routineName = RemoteBigQueryHelper.generateRoutineName(); + RoutineId routineId = RoutineId.of(ROUTINE_DATASET, routineName); + List columns = + ImmutableList.of( + StandardSQLField.newBuilder("x", StandardSQLDataType.newBuilder("INT64").build()) + .build()); + StandardSQLTableType returnTableType = StandardSQLTableType.newBuilder(columns).build(); + RoutineInfo routineInfo = + RoutineInfo.newBuilder(routineId) + .setRoutineType("TABLE_VALUED_FUNCTION") + .setLanguage("SQL") + .setArguments( + ImmutableList.of( + RoutineArgument.newBuilder() + .setName("filter") + .setDataType(StandardSQLDataType.newBuilder("INT64").build()) + .build())) + .setReturnTableType(returnTableType) + .setBody("SELECT x FROM UNNEST([1,2,3]) x WHERE x = filter") + .build(); + Routine routine = bigquery.create(routineInfo); + assertNotNull(routine); + assertEquals(routine.getRoutineType(), "TABLE_VALUED_FUNCTION"); + assertEquals(routine.getReturnTableType(), returnTableType); + } + @Test public void testAuthorizeRoutine() { String routineName = RemoteBigQueryHelper.generateRoutineName(); From acc88c5de445d166055825bf51d56a031e642675 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 4 May 2021 17:15:34 +0200 Subject: [PATCH 1264/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210422-1.31.0 (#1275) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8173f971590c..6ffe0c35927c 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210410-1.31.0 + v2-rev20210422-1.31.0 1.0.0
    From 3704a6cc46b84ce3b5ba01466ba39333f1b16886 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 5 May 2021 19:08:07 +0200 Subject: [PATCH 1265/3441] deps: update jmh.version to v1.30 (#1281) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 140992cb19ed..db571bd4ef7f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.28 + 1.30 benchmark From 690d80872650ba7f581123ecd7de0ad280bccc50 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 7 May 2021 08:50:06 -0700 Subject: [PATCH 1266/3441] chore: adding cloud-rad java xrefs (#1284) Source-Author: Emily Ball Source-Date: Thu May 6 11:48:47 2021 -0700 Source-Repo: googleapis/synthtool Source-Sha: 046994f491c02806aea60118e214a9edd67f5ab7 Source-Link: https://github.com/googleapis/synthtool/commit/046994f491c02806aea60118e214a9edd67f5ab7 --- .kokoro/release/publish_javadoc11.sh | 7 +++++++ synth.metadata | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.kokoro/release/publish_javadoc11.sh b/.kokoro/release/publish_javadoc11.sh index b519341e0e1e..f3031aadf23f 100755 --- a/.kokoro/release/publish_javadoc11.sh +++ b/.kokoro/release/publish_javadoc11.sh @@ -49,6 +49,13 @@ pushd target/docfx-yml python3 -m docuploader create-metadata \ --name ${NAME} \ --version ${VERSION} \ + --xrefs devsite://java/gax \ + --xrefs devsite://java/google-cloud-core \ + --xrefs devsite://java/api-common \ + --xrefs devsite://java/proto-google-common-protos \ + --xrefs devsite://java/google-api-client \ + --xrefs devsite://java/google-http-client \ + --xrefs devsite://java/protobuf \ --language java # upload yml to production bucket diff --git a/synth.metadata b/synth.metadata index c6c84502bf7e..589e6cb36d59 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "2a9c29b9bf4375dfa280e682908c32a13c3394b0" + "sha": "3704a6cc46b84ce3b5ba01466ba39333f1b16886" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "8285c2b4cdbc3771d031ad91e1c4ec9e55fff45d" + "sha": "046994f491c02806aea60118e214a9edd67f5ab7" } } ], From e74ae1c180c8ce27c9c8985c1935a894889b6375 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 10 May 2021 04:17:44 +0200 Subject: [PATCH 1267/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210430-1.31.0 (#1285) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6ffe0c35927c..f1d927b7d1bf 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210422-1.31.0 + v2-rev20210430-1.31.0 1.0.0
    From 0fdaab4c8c65cf62e222f3c1bdac5e24049c37ad Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 10 May 2021 19:49:47 +0200 Subject: [PATCH 1268/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v20.3.0 (#1286) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 02d82b0d0329..36b4c9a54ace 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 20.2.0 + 20.3.0 pom import From 64b00d8998fd31f5e7dff2d075b93af0a00ff3aa Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 10 May 2021 11:06:05 -0700 Subject: [PATCH 1269/3441] chore: regenerate README (#1287) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-05-10 17:51:57,320 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-05-10 17:51:58,637 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/cc61bd79-d786-4237-a791-d0e60a08c582/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 64bf08ba2f18..e92490e06927 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "70ca2652fd5843d9c8107d2317fa699bd0c9fca3" + "sha": "0fdaab4c8c65cf62e222f3c1bdac5e24049c37ad" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "06a8cd0ff7e81b05e6c503eab510ec622384caa7" + "sha": "6726988c677bb78385868bfc48dbfa2fe981d44a" } } ] diff --git a/README.md b/README.md index f8d02882d2e3..b3ccf6fadc0f 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 20.2.0 + 20.3.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:20.2.0') +implementation platform('com.google.cloud:libraries-bom:20.3.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From e60f2cd823b1551e43154f87a5157acca51b346c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 11 May 2021 03:19:21 +0200 Subject: [PATCH 1270/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v1.1.0 (#1290) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f1d927b7d1bf..9dc6df26229a 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20210430-1.31.0 - 1.0.0 + 1.1.0
    From 52f0781c101b5c327b352892b7027157ba7705f0 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 11 May 2021 01:32:20 +0000 Subject: [PATCH 1271/3441] chore: release 1.129.0 (#1280) :robot: I have created a release \*beep\* \*boop\* --- ## [1.129.0](https://www.github.com/googleapis/java-bigquery/compare/v1.128.3...v1.129.0) (2021-05-11) ### Features * add support for user defined TVFs ([#1278](https://www.github.com/googleapis/java-bigquery/issues/1278)) ([89958e9](https://www.github.com/googleapis/java-bigquery/commit/89958e9b5e4330b31878aa31b90569d2fd0310f2)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210422-1.31.0 ([#1275](https://www.github.com/googleapis/java-bigquery/issues/1275)) ([acc88c5](https://www.github.com/googleapis/java-bigquery/commit/acc88c5de445d166055825bf51d56a031e642675)) * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210430-1.31.0 ([#1285](https://www.github.com/googleapis/java-bigquery/issues/1285)) ([e74ae1c](https://www.github.com/googleapis/java-bigquery/commit/e74ae1c180c8ce27c9c8985c1935a894889b6375)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v1.1.0 ([#1290](https://www.github.com/googleapis/java-bigquery/issues/1290)) ([e60f2cd](https://www.github.com/googleapis/java-bigquery/commit/e60f2cd823b1551e43154f87a5157acca51b346c)) * update jmh.version to v1.30 ([#1281](https://www.github.com/googleapis/java-bigquery/issues/1281)) ([3704a6c](https://www.github.com/googleapis/java-bigquery/commit/3704a6cc46b84ce3b5ba01466ba39333f1b16886)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 15 +++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 22 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00675d5be0c9..8b430e73125e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [1.129.0](https://www.github.com/googleapis/java-bigquery/compare/v1.128.3...v1.129.0) (2021-05-11) + + +### Features + +* add support for user defined TVFs ([#1278](https://www.github.com/googleapis/java-bigquery/issues/1278)) ([89958e9](https://www.github.com/googleapis/java-bigquery/commit/89958e9b5e4330b31878aa31b90569d2fd0310f2)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210422-1.31.0 ([#1275](https://www.github.com/googleapis/java-bigquery/issues/1275)) ([acc88c5](https://www.github.com/googleapis/java-bigquery/commit/acc88c5de445d166055825bf51d56a031e642675)) +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210430-1.31.0 ([#1285](https://www.github.com/googleapis/java-bigquery/issues/1285)) ([e74ae1c](https://www.github.com/googleapis/java-bigquery/commit/e74ae1c180c8ce27c9c8985c1935a894889b6375)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v1.1.0 ([#1290](https://www.github.com/googleapis/java-bigquery/issues/1290)) ([e60f2cd](https://www.github.com/googleapis/java-bigquery/commit/e60f2cd823b1551e43154f87a5157acca51b346c)) +* update jmh.version to v1.30 ([#1281](https://www.github.com/googleapis/java-bigquery/issues/1281)) ([3704a6c](https://www.github.com/googleapis/java-bigquery/commit/3704a6cc46b84ce3b5ba01466ba39333f1b16886)) + ### [1.128.3](https://www.github.com/googleapis/java-bigquery/compare/v1.128.2...v1.128.3) (2021-04-30) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index db571bd4ef7f..d77b5d700a72 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.128.4-SNAPSHOT + 1.129.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5e3a566e3cad..e3e8796aa0e0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.128.4-SNAPSHOT + 1.129.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.128.4-SNAPSHOT + 1.129.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9dc6df26229a..4b3e5c5b02c5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.128.4-SNAPSHOT + 1.129.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.128.4-SNAPSHOT + 1.129.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d513ead76b49..4bbc539b02ff 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.128.4-SNAPSHOT + 1.129.0 diff --git a/versions.txt b/versions.txt index d9e9a4af7bcf..2342fef0c896 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.128.3:1.128.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.129.0:1.129.0 \ No newline at end of file From 9b1a2c8c6a0df3ae5cfd7881c2510e779b58e448 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 11 May 2021 01:50:05 +0000 Subject: [PATCH 1272/3441] chore: release 1.129.1-SNAPSHOT (#1291) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d77b5d700a72..967dcb1ac34c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.129.0 + 1.129.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e3e8796aa0e0..eb6742bc751a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.129.0 + 1.129.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.129.0 + 1.129.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4b3e5c5b02c5..129fd4db7c3a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.129.0 + 1.129.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.129.0 + 1.129.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4bbc539b02ff..443faed03ff9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.129.0 + 1.129.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 2342fef0c896..ed9c6aa1bb6b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.129.0:1.129.0 \ No newline at end of file +google-cloud-bigquery:1.129.0:1.129.1-SNAPSHOT \ No newline at end of file From 0ced50f56c8a3cdf0ffaf49da0046af9e57be52b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 11 May 2021 05:54:23 +0200 Subject: [PATCH 1273/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.129.0 (#1295) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b9263fd9abb0..558f4d7bba90 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.128.3 + 1.129.0 From aa32938f22e1252e898f339af12b9f6dbbeabdc0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 10 May 2021 21:08:03 -0700 Subject: [PATCH 1274/3441] chore: regenerate README (#1298) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-05-11 03:56:38,311 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-05-11 03:56:40,045 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/324297b9-0cbe-4a7d-9324-696dbe23a2db/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index e92490e06927..b044d00c3db3 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "0fdaab4c8c65cf62e222f3c1bdac5e24049c37ad" + "sha": "0ced50f56c8a3cdf0ffaf49da0046af9e57be52b" } }, { diff --git a/README.md b/README.md index b3ccf6fadc0f..fa85ab0d63ec 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.128.3 + 1.129.0 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.128.3' +compile 'com.google.cloud:google-cloud-bigquery:1.129.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.128.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.129.0" ``` ## Authentication From 558cb14a4091c9e44dea766b967ecb78132a46c5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 11 May 2021 06:23:21 +0200 Subject: [PATCH 1275/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-datacatalog-v1 to v1.3.3 (#1296) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 129fd4db7c3a..c9abc0839102 100644 --- a/pom.xml +++ b/pom.xml @@ -130,7 +130,7 @@ com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.3.2 + 1.3.3 test From b6ebd144d25284838447e00e20e7d1d0ca83c76a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 11 May 2021 18:05:18 +0200 Subject: [PATCH 1276/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.16 (#1294) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 558f4d7bba90..5ba89eadaa05 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.15 + 1.0.16 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 443faed03ff9..626e0ba35a21 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.15 + 1.0.16 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 36b4c9a54ace..c8a2877aa4ff 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.15 + 1.0.16 test From c49e697086f6aaf8271daf799b985b468496c382 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 11 May 2021 20:06:02 +0200 Subject: [PATCH 1277/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog to v1.3.3 (#1297) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-datacatalog](https://togithub.com/googleapis/java-datacatalog) | `1.3.2` -> `1.3.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog/1.3.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog/1.3.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog/1.3.3/compatibility-slim/1.3.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog/1.3.3/confidence-slim/1.3.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-datacatalog ### [`v1.3.3`](https://togithub.com/googleapis/java-datacatalog/blob/master/CHANGELOG.md#​133-httpswwwgithubcomgoogleapisjava-datacatalogcomparev132v133-2021-05-11) [Compare Source](https://togithub.com/googleapis/java-datacatalog/compare/v1.3.2...v1.3.3)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c9abc0839102..7262c0e12736 100644 --- a/pom.xml +++ b/pom.xml @@ -124,7 +124,7 @@ com.google.cloud google-cloud-datacatalog - 1.3.2 + 1.3.3 test From 817cf7bbecc920e9866cd85f2b1689926933c4da Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 12 May 2021 17:58:00 +0200 Subject: [PATCH 1278/3441] deps: update jmh.version to v1.31 (#1303) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 967dcb1ac34c..407bf693045a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.30 + 1.31 benchmark From f5ffd94d37e6de994cf73b20727b27f8d16d67b0 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 12 May 2021 14:37:06 -0400 Subject: [PATCH 1279/3441] chore: group data-catalog test dependencies together (#1304) * chore: group data-catalog test dependencies together To avoid upperbounddependency errors when data-catalog updates come in * Update renovate.json * Update synth.py --- renovate.json | 9 +++++++++ synth.py | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index af11317e230e..cc3338a4d27d 100644 --- a/renovate.json +++ b/renovate.json @@ -66,6 +66,15 @@ "^com.fasterxml.jackson.core" ], "groupName": "jackson dependencies" + }, + { + "packagePatterns": [ + "^com.google.api.grpc:proto-google-cloud-datacatalog", + "^com.google.cloud:google-cloud-datacatalog" + ], + "groupName": "datacatalog dependencies", + "semanticCommitType": "test", + "semanticCommitScope": "deps" } ], "semanticCommits": true, diff --git a/synth.py b/synth.py index 381c973f7634..19fbf6010c62 100644 --- a/synth.py +++ b/synth.py @@ -27,5 +27,6 @@ '.kokoro/presubmit/java8-samples.cfg', '.kokoro/presubmit/java11-samples.cfg', '.kokoro/dependencies.sh', - 'codecov.yaml' + 'codecov.yaml', + 'renovate.json', ]) From 96363a969f8ac8ffb3627e8a0da69c030dc9f862 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 13 May 2021 20:46:37 +0200 Subject: [PATCH 1280/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.24.1 (#1305) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5ba89eadaa05..673bc3508ab2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.24.0 + 1.24.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 626e0ba35a21..4efe45e239f7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.24.0 + 1.24.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c8a2877aa4ff..4010361cb7ac 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.24.0 + 1.24.1 test From 793e4a9d562d4293102983f78913f18dfe488c2d Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 13 May 2021 16:38:33 -0700 Subject: [PATCH 1281/3441] build(java): remove codecov action (#1307) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/a594ce1c-ecb5-4461-8158-ae9fa7d522af/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/4f4b1b9b8d8b52f1e9e4a76165896debce5ab7f1 --- .github/workflows/ci.yaml | 6 +----- synth.metadata | 5 ++--- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index def8b3a2c84d..0195b32f00b4 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,10 +19,6 @@ jobs: - run: .kokoro/build.sh env: JOB_TYPE: test - - name: coverage - uses: codecov/codecov-action@v1 - with: - name: actions ${{matrix.java}} windows: runs-on: windows-latest steps: @@ -80,4 +76,4 @@ jobs: - run: java -version - run: .kokoro/build.sh env: - JOB_TYPE: clirr \ No newline at end of file + JOB_TYPE: clirr diff --git a/synth.metadata b/synth.metadata index 589e6cb36d59..59145c39990f 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "3704a6cc46b84ce3b5ba01466ba39333f1b16886" + "sha": "96363a969f8ac8ffb3627e8a0da69c030dc9f862" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "046994f491c02806aea60118e214a9edd67f5ab7" + "sha": "4f4b1b9b8d8b52f1e9e4a76165896debce5ab7f1" } } ], @@ -82,7 +82,6 @@ "LICENSE", "java.header", "license-checks.xml", - "renovate.json", "samples/install-without-bom/pom.xml", "samples/pom.xml", "samples/snapshot/pom.xml", From 901b18a6ca271f991f7b19951edbe02a0eb267a3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 14 May 2021 16:58:55 +0200 Subject: [PATCH 1282/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.17 (#1308) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 673bc3508ab2..e319ac2f6cc3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.16 + 1.0.17 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4efe45e239f7..d90d1a89c5d6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.16 + 1.0.17 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4010361cb7ac..c8449170b87e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.16 + 1.0.17 test From b909754b4c828871c8b360d0ddf69cc488b1d33c Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 14 May 2021 15:06:07 -0400 Subject: [PATCH 1283/3441] feat: add support for partitioning and clustering in MaterializedViewDefinition (#1301) Towards #1300 --- .../clirr-ignored-differences.xml | 29 +++++++++- .../bigquery/MaterializedViewDefinition.java | 58 +++++++++++++++++++ .../MaterializedViewDefinitionTest.java | 11 ++++ 3 files changed, 96 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index bebc7e25ca05..d8b1ba813b91 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -4,7 +4,32 @@ 7013 - com/google/cloud/bigquery/RoutineInfo$Builder - com.google.cloud.bigquery.RoutineInfo$Builder setReturnTableType(com.google.cloud.bigquery.StandardSQLTableType) + com/google/cloud/bigquery/MaterializedViewDefinition + com.google.cloud.bigquery.Clustering getClustering() + + + 7013 + com/google/cloud/bigquery/MaterializedViewDefinition + com.google.cloud.bigquery.RangePartitioning getRangePartitioning() + + + 7013 + com/google/cloud/bigquery/MaterializedViewDefinition + com.google.cloud.bigquery.TimePartitioning getTimePartitioning() + + + 7013 + com/google/cloud/bigquery/MaterializedViewDefinition$Builder + com.google.cloud.bigquery.MaterializedViewDefinition$Builder setClustering(com.google.cloud.bigquery.Clustering) + + + 7013 + com/google/cloud/bigquery/MaterializedViewDefinition$Builder + com.google.cloud.bigquery.MaterializedViewDefinition$Builder setRangePartitioning(com.google.cloud.bigquery.RangePartitioning) + + + 7013 + com/google/cloud/bigquery/MaterializedViewDefinition$Builder + com.google.cloud.bigquery.MaterializedViewDefinition$Builder setTimePartitioning(com.google.cloud.bigquery.TimePartitioning) \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MaterializedViewDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MaterializedViewDefinition.java index bf3a913a9c42..69712bb3dd18 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MaterializedViewDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MaterializedViewDefinition.java @@ -57,6 +57,25 @@ public abstract static class Builder @Override public abstract Builder setType(Type type); + /** + * Sets the time partitioning configuration for the materialized view. If not set, the + * materialized view is not time-partitioned. + */ + public abstract Builder setTimePartitioning(TimePartitioning timePartitioning); + + /** + * Sets the range partitioning configuration for the materialized view. Only one of + * timePartitioning and rangePartitioning should be specified. + */ + public abstract Builder setRangePartitioning(RangePartitioning rangePartitioning); + + /** + * Set the clustering configuration for the materialized view. If not set, the materialized view + * is not clustered. BigQuery supports clustering for both partitioned and non-partitioned + * materialized views. + */ + public abstract Builder setClustering(Clustering clustering); + /** Creates a {@code MaterializedViewDefinition} object. */ @Override public abstract MaterializedViewDefinition build(); @@ -86,6 +105,27 @@ public abstract static class Builder @Nullable public abstract Long getRefreshIntervalMs(); + /** + * Returns the time partitioning configuration for this table. If {@code null}, the table is not + * time-partitioned. + */ + @Nullable + public abstract TimePartitioning getTimePartitioning(); + + /** + * Returns the range partitioning configuration for this table. If {@code null}, the table is not + * range-partitioned. + */ + @Nullable + public abstract RangePartitioning getRangePartitioning(); + + /** + * Returns the clustering configuration for this table. If {@code null}, the table is not + * clustered. + */ + @Nullable + public abstract Clustering getClustering(); + /** Returns a builder for the {@code MaterializedViewDefinition} object. */ public abstract Builder toBuilder(); @@ -107,6 +147,15 @@ Table toPb() { materializedViewDefinition.setRefreshIntervalMs(getRefreshIntervalMs()); } tablePb.setMaterializedView(materializedViewDefinition); + if (getTimePartitioning() != null) { + tablePb.setTimePartitioning(getTimePartitioning().toPb()); + } + if (getRangePartitioning() != null) { + tablePb.setRangePartitioning(getRangePartitioning().toPb()); + } + if (getClustering() != null) { + tablePb.setClustering(getClustering().toPb()); + } return tablePb; } @@ -149,6 +198,15 @@ static MaterializedViewDefinition fromPb(Table tablePb) { if (materializedViewDefinition.getRefreshIntervalMs() != null) { builder.setRefreshIntervalMs(materializedViewDefinition.getRefreshIntervalMs()); } + if (tablePb.getTimePartitioning() != null) { + builder.setTimePartitioning(TimePartitioning.fromPb(tablePb.getTimePartitioning())); + } + if (tablePb.getRangePartitioning() != null) { + builder.setRangePartitioning(RangePartitioning.fromPb(tablePb.getRangePartitioning())); + } + if (tablePb.getClustering() != null) { + builder.setClustering(Clustering.fromPb(tablePb.getClustering())); + } } return builder.build(); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java index ab1caab07eac..eef4324a0e33 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java @@ -19,6 +19,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import com.google.common.collect.ImmutableList; import org.junit.Test; public class MaterializedViewDefinitionTest { @@ -28,6 +29,10 @@ public class MaterializedViewDefinitionTest { private static final Boolean ENABLE_REFRESH = false; private static final Long REFRESH_INTERVAL_MS = 60000L; private static final Schema SCHEMA = Schema.of(); + private static final TimePartitioning TIME_PARTITIONING = + TimePartitioning.of(TimePartitioning.Type.DAY, 42); + private static final Clustering CLUSTERING = + Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); private static final MaterializedViewDefinition MATERIALIZED_VIEW_DEFINITION = MaterializedViewDefinition.newBuilder() .setSchema(SCHEMA) @@ -35,6 +40,8 @@ public class MaterializedViewDefinitionTest { .setLastRefreshTime(LAST_REFRESH_TIME) .setEnableRefresh(ENABLE_REFRESH) .setRefreshIntervalMs(REFRESH_INTERVAL_MS) + .setClustering(CLUSTERING) + .setTimePartitioning(TIME_PARTITIONING) .build(); @Test @@ -68,6 +75,8 @@ public void testBuilder() { .setLastRefreshTime(LAST_REFRESH_TIME) .setEnableRefresh(ENABLE_REFRESH) .setRefreshIntervalMs(REFRESH_INTERVAL_MS) + .setClustering(CLUSTERING) + .setTimePartitioning(TIME_PARTITIONING) .build(); assertEquals(MATERIALIZED_VIEW_DEFINITION, materializedViewDefinition); } @@ -92,6 +101,8 @@ private void compareMaterializedView( assertEquals(expected.getLastRefreshTime(), actual.getLastRefreshTime()); assertEquals(expected.getEnableRefresh(), actual.getEnableRefresh()); assertEquals(expected.getRefreshIntervalMs(), actual.getRefreshIntervalMs()); + assertEquals(expected.getClustering(), actual.getClustering()); + assertEquals(expected.getTimePartitioning(), actual.getTimePartitioning()); assertEquals(expected.toString(), actual.toString()); assertEquals(expected.hashCode(), actual.hashCode()); assertEquals(expected, actual); From 2d32778f1127d98b3ed25dc229c684fff7530187 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 16 May 2021 00:16:02 +0200 Subject: [PATCH 1284/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v20.4.0 (#1311) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | `20.3.0` -> `20.4.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/20.4.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/20.4.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/20.4.0/compatibility-slim/20.3.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/20.4.0/confidence-slim/20.3.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c8449170b87e..9d8e61396129 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 20.3.0 + 20.4.0 pom import From e8e9b22f4931610bbc3bf2e4ff84f5d6aaea951f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 15 May 2021 15:28:02 -0700 Subject: [PATCH 1285/3441] chore: regenerate README (#1312) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-05-15 22:18:15,574 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-05-15 22:18:16,886 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/376c2ab0-593d-48b9-aac5-12ae81449219/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index b044d00c3db3..9b557a9344a1 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "0ced50f56c8a3cdf0ffaf49da0046af9e57be52b" + "sha": "2d32778f1127d98b3ed25dc229c684fff7530187" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "6726988c677bb78385868bfc48dbfa2fe981d44a" + "sha": "4f4b1b9b8d8b52f1e9e4a76165896debce5ab7f1" } } ] diff --git a/README.md b/README.md index fa85ab0d63ec..071a2083cf83 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 20.3.0 + 20.4.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:20.3.0') +implementation platform('com.google.cloud:libraries-bom:20.4.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From b390c7d78d6f53e834d1a63b995c94ad6bffe843 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 15 May 2021 20:23:04 -0400 Subject: [PATCH 1286/3441] chore: release 1.130.0 (#1299) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 15 +++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 22 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8b430e73125e..804e745a3a58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [1.130.0](https://www.github.com/googleapis/java-bigquery/compare/v1.129.0...v1.130.0) (2021-05-15) + + +### Features + +* add support for partitioning and clustering in MaterializedViewDefinition ([#1301](https://www.github.com/googleapis/java-bigquery/issues/1301)) ([b909754](https://www.github.com/googleapis/java-bigquery/commit/b909754b4c828871c8b360d0ddf69cc488b1d33c)), closes [#1300](https://www.github.com/googleapis/java-bigquery/issues/1300) + + +### Dependencies + +* update dependency com.google.api.grpc:proto-google-cloud-datacatalog-v1 to v1.3.3 ([#1296](https://www.github.com/googleapis/java-bigquery/issues/1296)) ([558cb14](https://www.github.com/googleapis/java-bigquery/commit/558cb14a4091c9e44dea766b967ecb78132a46c5)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.24.1 ([#1305](https://www.github.com/googleapis/java-bigquery/issues/1305)) ([96363a9](https://www.github.com/googleapis/java-bigquery/commit/96363a969f8ac8ffb3627e8a0da69c030dc9f862)) +* update dependency com.google.cloud:google-cloud-datacatalog to v1.3.3 ([#1297](https://www.github.com/googleapis/java-bigquery/issues/1297)) ([c49e697](https://www.github.com/googleapis/java-bigquery/commit/c49e697086f6aaf8271daf799b985b468496c382)) +* update jmh.version to v1.31 ([#1303](https://www.github.com/googleapis/java-bigquery/issues/1303)) ([817cf7b](https://www.github.com/googleapis/java-bigquery/commit/817cf7bbecc920e9866cd85f2b1689926933c4da)) + ## [1.129.0](https://www.github.com/googleapis/java-bigquery/compare/v1.128.3...v1.129.0) (2021-05-11) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 407bf693045a..58e584c5943a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.129.1-SNAPSHOT + 1.130.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index eb6742bc751a..ebc492e4ae8e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.129.1-SNAPSHOT + 1.130.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.129.1-SNAPSHOT + 1.130.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7262c0e12736..64d0675b6e12 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.129.1-SNAPSHOT + 1.130.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.129.1-SNAPSHOT + 1.130.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d90d1a89c5d6..d79b9922b257 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.129.1-SNAPSHOT + 1.130.0 diff --git a/versions.txt b/versions.txt index ed9c6aa1bb6b..f2233d704b2f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.129.0:1.129.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.130.0:1.130.0 \ No newline at end of file From 85a9cfb287a12561b8e38c838bb6f20ab0a8e51e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sun, 16 May 2021 00:34:02 +0000 Subject: [PATCH 1287/3441] chore: release 1.130.1-SNAPSHOT (#1313) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 58e584c5943a..ad56c26aabbc 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.130.0 + 1.130.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ebc492e4ae8e..c15b390d882d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.130.0 + 1.130.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.130.0 + 1.130.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 64d0675b6e12..c816b3b6a5c6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.130.0 + 1.130.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.130.0 + 1.130.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d79b9922b257..b16cea7c0a91 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.130.0 + 1.130.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index f2233d704b2f..a164b9c42003 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.130.0:1.130.0 \ No newline at end of file +google-cloud-bigquery:1.130.0:1.130.1-SNAPSHOT \ No newline at end of file From 0c7a566ee6e88381821bfe0ee195d12b131b0147 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 17 May 2021 17:12:08 +0200 Subject: [PATCH 1288/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.130.0 (#1315) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e319ac2f6cc3..23eb110de0cb 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.129.0 + 1.130.0 From 72568a031768207a28f5b5727f7af752b4e2a373 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 17 May 2021 08:24:02 -0700 Subject: [PATCH 1289/3441] chore: regenerate README (#1316) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-05-17 15:14:22,774 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-05-17 15:14:24,204 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/f2184ffb-5979-4302-a748-5912ceaef803/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 9b557a9344a1..6061373ff1be 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "2d32778f1127d98b3ed25dc229c684fff7530187" + "sha": "0c7a566ee6e88381821bfe0ee195d12b131b0147" } }, { diff --git a/README.md b/README.md index 071a2083cf83..8eb1b7d43967 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.129.0 + 1.130.0 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.129.0' +compile 'com.google.cloud:google-cloud-bigquery:1.130.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.129.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.130.0" ``` ## Authentication From 1586b02bce57c599e4db615f131befe0630f3b86 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 17 May 2021 15:16:41 -0700 Subject: [PATCH 1290/3441] chore: add changelog to cloud-rad (#1317) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/5ec6b1c0-22fb-4828-9bc0-9523eb988bb2/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/c86c7a60985644eab557949363a38301d40d78d2 --- .kokoro/release/publish_javadoc11.sh | 2 ++ synth.metadata | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.kokoro/release/publish_javadoc11.sh b/.kokoro/release/publish_javadoc11.sh index f3031aadf23f..10fe72d41170 100755 --- a/.kokoro/release/publish_javadoc11.sh +++ b/.kokoro/release/publish_javadoc11.sh @@ -42,6 +42,8 @@ mvn clean site -B -q -P docFX # copy README to docfx-yml dir and rename index.md cp README.md target/docfx-yml/index.md +# copy CHANGELOG to docfx-yml dir and rename history.md +cp CHANGELOG.md target/docfx-yml/history.md pushd target/docfx-yml diff --git a/synth.metadata b/synth.metadata index 59145c39990f..4761d127af73 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "96363a969f8ac8ffb3627e8a0da69c030dc9f862" + "sha": "72568a031768207a28f5b5727f7af752b4e2a373" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "4f4b1b9b8d8b52f1e9e4a76165896debce5ab7f1" + "sha": "c86c7a60985644eab557949363a38301d40d78d2" } } ], From 72b17151c4f3c4a3d298d3791e58c3112a14b4f5 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 18 May 2021 14:06:34 -0400 Subject: [PATCH 1291/3441] feat: add ParquetOptions support and expose it in LoadJobConfiguration and ExternalTableDefinition classes (#1318) * feat: add ParquetOptions support and expose it in LoadJobConfiguration and ExternalTableDefinition classes Fixes #1302 * update IT --- .../bigquery/ExternalTableDefinition.java | 8 ++ .../google/cloud/bigquery/FormatOptions.java | 2 + .../cloud/bigquery/LoadJobConfiguration.java | 8 ++ .../google/cloud/bigquery/ParquetOptions.java | 127 ++++++++++++++++++ .../cloud/bigquery/ParquetOptionsTest.java | 67 +++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 7 + 6 files changed, 219 insertions(+) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index 5eb0f4c5753a..1d2cfa2939f6 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -449,6 +449,10 @@ static ExternalTableDefinition fromPb(Table tablePb) { builder.setFormatOptions( BigtableOptions.fromPb(externalDataConfiguration.getBigtableOptions())); } + if (externalDataConfiguration.getParquetOptions() != null) { + builder.setFormatOptions( + ParquetOptions.fromPb(externalDataConfiguration.getParquetOptions())); + } builder.setMaxBadRecords(externalDataConfiguration.getMaxBadRecords()); builder.setAutodetect(externalDataConfiguration.getAutodetect()); if (externalDataConfiguration.getHivePartitioningOptions() != null) { @@ -491,6 +495,10 @@ static ExternalTableDefinition fromExternalDataConfiguration( builder.setFormatOptions( BigtableOptions.fromPb(externalDataConfiguration.getBigtableOptions())); } + if (externalDataConfiguration.getParquetOptions() != null) { + builder.setFormatOptions( + ParquetOptions.fromPb(externalDataConfiguration.getParquetOptions())); + } if (externalDataConfiguration.getMaxBadRecords() != null) { builder.setMaxBadRecords(externalDataConfiguration.getMaxBadRecords()); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java index af1878455cfa..92a57fc8f06f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java @@ -126,6 +126,8 @@ public static FormatOptions of(String format) { return googleSheets(); } else if (format.equals(BIGTABLE)) { return bigtable(); + } else if (format.equals(PARQUET)) { + return parquet(); } return new FormatOptions(format); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index 0eae67bd6620..a317f1285f94 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -390,6 +390,10 @@ public CsvOptions getCsvOptions() { return formatOptions instanceof CsvOptions ? (CsvOptions) formatOptions : null; } + public ParquetOptions getParquetOptions() { + return formatOptions instanceof ParquetOptions ? (ParquetOptions) formatOptions : null; + } + @Override public DatastoreBackupOptions getDatastoreBackupOptions() { return formatOptions instanceof DatastoreBackupOptions @@ -545,6 +549,10 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { loadConfigurationPb.setSkipLeadingRows(Ints.checkedCast(csvOptions.getSkipLeadingRows())); } } + if (getParquetOptions() != null) { + ParquetOptions parquetOptions = getParquetOptions(); + loadConfigurationPb.setParquetOptions(parquetOptions.toPb()); + } if (schema != null) { loadConfigurationPb.setSchema(schema.toPb()); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java new file mode 100644 index 000000000000..174da41d860d --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java @@ -0,0 +1,127 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.common.base.MoreObjects; +import java.util.Objects; + +public class ParquetOptions extends FormatOptions { + + private static final long serialVersionUID = 1992L; + + private final Boolean enableListInference; + private final Boolean enumAsString; + + public Boolean getEnableListInference() { + return enableListInference; + } + + public Boolean getEnumAsString() { + return enumAsString; + } + + /** A builder for {@code ParquetOptions} objects. */ + public static final class Builder { + private Boolean enableListInference; + private Boolean enumAsString; + + private Builder() {} + + private Builder(ParquetOptions parquetOptions) { + this.enableListInference = parquetOptions.enableListInference; + this.enumAsString = parquetOptions.enumAsString; + } + + public Builder setEnableListInference(Boolean enableListInference) { + this.enableListInference = enableListInference; + return this; + } + + public Builder setEnumAsString(Boolean enumAsString) { + this.enumAsString = enumAsString; + return this; + } + + public ParquetOptions build() { + return new ParquetOptions(this); + } + } + /** Returns a builder for the {@link ParquetOptions} object. */ + public Builder toBuilder() { + return new Builder(this); + } + + ParquetOptions(Builder builder) { + super(FormatOptions.PARQUET); + enableListInference = builder.enableListInference; + enumAsString = builder.enumAsString; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("enableListInference", enableListInference) + .add("enumAsString", enumAsString) + .toString(); + } + + @Override + public final int hashCode() { + return Objects.hash(enableListInference, enumAsString); + } + + @Override + public final boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj == null || !obj.getClass().equals(ParquetOptions.class)) { + return false; + } + ParquetOptions other = (ParquetOptions) obj; + return enableListInference == other.enableListInference && enumAsString == other.enumAsString; + } + + /** Returns a builder for a {@link ParquetOptions} object. */ + public static ParquetOptions.Builder newBuilder() { + return new ParquetOptions.Builder(); + } + + static ParquetOptions fromPb( + com.google.api.services.bigquery.model.ParquetOptions parquetOptions) { + Builder builder = newBuilder(); + if (parquetOptions.getEnableListInference() != null) { + builder.setEnableListInference(parquetOptions.getEnableListInference()); + } + if (parquetOptions.getEnumAsString() != null) { + builder.setEnumAsString(parquetOptions.getEnumAsString()); + } + return builder.build(); + } + + com.google.api.services.bigquery.model.ParquetOptions toPb() { + com.google.api.services.bigquery.model.ParquetOptions parquetOptions = + new com.google.api.services.bigquery.model.ParquetOptions(); + if (enableListInference != null) { + parquetOptions.setEnableListInference(enableListInference); + } + if (enumAsString != null) { + parquetOptions.setEnumAsString(enumAsString); + } + return parquetOptions; + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java new file mode 100644 index 000000000000..8812b2e274dc --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java @@ -0,0 +1,67 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class ParquetOptionsTest { + + private static final ParquetOptions OPTIONS = + ParquetOptions.newBuilder().setEnableListInference(true).setEnumAsString(true).build(); + + @Test + public void testToBuilder() { + compareParquetOptions(OPTIONS, OPTIONS.toBuilder().build()); + ParquetOptions parquetOptions = OPTIONS.toBuilder().setEnableListInference(true).build(); + assertEquals(true, parquetOptions.getEnableListInference()); + parquetOptions = parquetOptions.toBuilder().setEnumAsString(true).build(); + compareParquetOptions(OPTIONS, parquetOptions); + } + + @Test + public void testToBuilderIncomplete() { + ParquetOptions parquetOptions = + ParquetOptions.newBuilder().setEnableListInference(true).build(); + assertEquals(parquetOptions, parquetOptions.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(FormatOptions.PARQUET, OPTIONS.getType()); + assertEquals(true, OPTIONS.getEnableListInference()); + assertEquals(true, OPTIONS.getEnumAsString()); + } + + @Test + public void testToAndFromPb() { + compareParquetOptions(OPTIONS, ParquetOptions.fromPb(OPTIONS.toPb())); + ParquetOptions parquetOptions = + ParquetOptions.newBuilder().setEnableListInference(true).build(); + compareParquetOptions(parquetOptions, ParquetOptions.fromPb(parquetOptions.toPb())); + } + + private void compareParquetOptions(ParquetOptions expected, ParquetOptions actual) { + assertThat(expected).isEqualTo(actual); + assertThat(expected.getEnableListInference()).isEqualTo(actual.getEnableListInference()); + assertThat(expected.getEnumAsString()).isEqualTo(actual.getEnumAsString()); + assertThat(expected.hashCode()).isEqualTo(actual.hashCode()); + assertThat(expected.toString()).isEqualTo(actual.toString()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 9b1374bc1572..eae807bf748f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -77,6 +77,7 @@ import com.google.cloud.bigquery.Model; import com.google.cloud.bigquery.ModelId; import com.google.cloud.bigquery.ModelInfo; +import com.google.cloud.bigquery.ParquetOptions; import com.google.cloud.bigquery.PolicyTags; import com.google.cloud.bigquery.QueryJobConfiguration; import com.google.cloud.bigquery.QueryParameterValue; @@ -1840,10 +1841,13 @@ public void testQueryExternalHivePartitioningOptionAutoLayout() throws Interrupt .setSourceUriPrefix(sourceUriPrefix) .build(); TableId tableId = TableId.of(DATASET, tableName); + ParquetOptions parquetOptions = + ParquetOptions.newBuilder().setEnableListInference(true).setEnumAsString(true).build(); ExternalTableDefinition externalTable = ExternalTableDefinition.newBuilder(sourceUri, FormatOptions.parquet()) .setAutodetect(true) .setHivePartitioningOptions(hivePartitioningOptions) + .setFormatOptions(parquetOptions) .build(); assertNotNull(bigquery.create(TableInfo.of(tableId, externalTable))); String query = @@ -1866,6 +1870,8 @@ public void testQueryExternalHivePartitioningOptionCustomLayout() throws Interru "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/hive-partitioning-samples/customlayout/{pkey:STRING}/"; + ParquetOptions parquetOptions = + ParquetOptions.newBuilder().setEnableListInference(true).setEnumAsString(true).build(); HivePartitioningOptions hivePartitioningOptions = HivePartitioningOptions.newBuilder() .setMode("CUSTOM") @@ -1877,6 +1883,7 @@ public void testQueryExternalHivePartitioningOptionCustomLayout() throws Interru ExternalTableDefinition.newBuilder(sourceUri, FormatOptions.parquet()) .setAutodetect(true) .setHivePartitioningOptions(hivePartitioningOptions) + .setFormatOptions(parquetOptions) .build(); assertNotNull(bigquery.create(TableInfo.of(tableId, externalTable))); String query = From ac429995f7d142bdf5fef605bb1788df91df0084 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 18 May 2021 23:30:07 +0000 Subject: [PATCH 1292/3441] chore: release 1.131.0 (#1319) :robot: I have created a release \*beep\* \*boop\* --- ## [1.131.0](https://www.github.com/googleapis/java-bigquery/compare/v1.130.0...v1.131.0) (2021-05-18) ### Features * add ParquetOptions support and expose it in LoadJobConfiguration and ExternalTableDefinition classes ([#1318](https://www.github.com/googleapis/java-bigquery/issues/1318)) ([72b1715](https://www.github.com/googleapis/java-bigquery/commit/72b17151c4f3c4a3d298d3791e58c3112a14b4f5)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 804e745a3a58..0f72ddbb902b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.131.0](https://www.github.com/googleapis/java-bigquery/compare/v1.130.0...v1.131.0) (2021-05-18) + + +### Features + +* add ParquetOptions support and expose it in LoadJobConfiguration and ExternalTableDefinition classes ([#1318](https://www.github.com/googleapis/java-bigquery/issues/1318)) ([72b1715](https://www.github.com/googleapis/java-bigquery/commit/72b17151c4f3c4a3d298d3791e58c3112a14b4f5)) + ## [1.130.0](https://www.github.com/googleapis/java-bigquery/compare/v1.129.0...v1.130.0) (2021-05-15) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ad56c26aabbc..aa9d8e18e000 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.130.1-SNAPSHOT + 1.131.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c15b390d882d..5dc25db8025e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.130.1-SNAPSHOT + 1.131.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.130.1-SNAPSHOT + 1.131.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c816b3b6a5c6..63498fa20b9e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.130.1-SNAPSHOT + 1.131.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.130.1-SNAPSHOT + 1.131.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b16cea7c0a91..2bf2307f7b78 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.130.1-SNAPSHOT + 1.131.0 diff --git a/versions.txt b/versions.txt index a164b9c42003..072d6096a20c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.130.0:1.130.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.131.0:1.131.0 \ No newline at end of file From 2da5ed9ff86e9d1fbc135b3fc244b5dbcf78b8ae Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 18 May 2021 23:42:04 +0000 Subject: [PATCH 1293/3441] chore: release 1.131.1-SNAPSHOT (#1322) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index aa9d8e18e000..c120b150d93c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.131.0 + 1.131.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5dc25db8025e..c47f3361ab2b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.131.0 + 1.131.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.131.0 + 1.131.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 63498fa20b9e..cce48175f6ca 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.131.0 + 1.131.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.131.0 + 1.131.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2bf2307f7b78..c9b3530abba7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.131.0 + 1.131.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 072d6096a20c..0ac6e26afe40 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.131.0:1.131.0 \ No newline at end of file +google-cloud-bigquery:1.131.0:1.131.1-SNAPSHOT \ No newline at end of file From 8e45a5ac0cf1053d7cf9e3f40efe49f68678a287 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 19 May 2021 03:14:04 +0200 Subject: [PATCH 1294/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.131.0 (#1323) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `1.130.0` -> `1.131.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.131.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.131.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.131.0/compatibility-slim/1.130.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.131.0/confidence-slim/1.130.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v1.131.0`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​11310-httpswwwgithubcomgoogleapisjava-bigquerycomparev11300v11310-2021-05-18) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.130.0...v1.131.0) ##### Features - add ParquetOptions support and expose it in LoadJobConfiguration and ExternalTableDefinition classes ([#​1318](https://www.github.com/googleapis/java-bigquery/issues/1318)) ([72b1715](https://www.github.com/googleapis/java-bigquery/commit/72b17151c4f3c4a3d298d3791e58c3112a14b4f5))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 23eb110de0cb..0e54a5606427 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.130.0 + 1.131.0 From dd238db05664e588aca00e4f10e368d3a574d605 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 19 May 2021 03:31:31 +0200 Subject: [PATCH 1295/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v1.2.0 (#1324) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cce48175f6ca..35d191227766 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20210430-1.31.0 - 1.1.0 + 1.2.0
    From 8a804753e0a44abe7e504cccdedcad82dbc4e36a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 18 May 2021 18:44:08 -0700 Subject: [PATCH 1296/3441] chore: regenerate README (#1325) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-05-19 01:17:42,767 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-05-19 01:17:44,112 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/277031e4-31c7-450c-9fba-18c262b8da9c/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 6061373ff1be..eb58f0236b1e 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "0c7a566ee6e88381821bfe0ee195d12b131b0147" + "sha": "8e45a5ac0cf1053d7cf9e3f40efe49f68678a287" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "4f4b1b9b8d8b52f1e9e4a76165896debce5ab7f1" + "sha": "7332178a11ddddc91188dc0f25bca1ccadcaa6c6" } } ] diff --git a/README.md b/README.md index 8eb1b7d43967..b7fc8fac8560 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.130.0 + 1.131.0 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.130.0' +compile 'com.google.cloud:google-cloud-bigquery:1.131.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.130.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.131.0" ``` ## Authentication From a2cb66a60a44748e7aa8d4f4b5386e46191557b7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 19 May 2021 03:46:04 +0200 Subject: [PATCH 1297/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.114.0 (#1306) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `1.113.16` -> `1.114.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.114.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.114.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.114.0/compatibility-slim/1.113.16)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.114.0/confidence-slim/1.113.16)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v1.114.0`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​11140-httpswwwgithubcomgoogleapisjava-storagecomparev111316v11140-2021-05-13) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v1.113.16...v1.114.0) ##### Features - Remove client side vaildation for lifecycle conditions ([#​816](https://www.github.com/googleapis/java-storage/issues/816)) ([5ec84cc](https://www.github.com/googleapis/java-storage/commit/5ec84cc2935a4787dd14a207d27501878f5849d5)) ##### Bug Fixes - **test:** update blob paths used in storage.it.ITStorageTest#testDownloadPublicBlobWithoutAuthentication ([#​759](https://www.github.com/googleapis/java-storage/issues/759)) ([#​817](https://www.github.com/googleapis/java-storage/issues/817)) ([1a576ca](https://www.github.com/googleapis/java-storage/commit/1a576ca3945b51d7a678aa2414be91b3c6b2d55e)) ##### Dependencies - update dependency com.google.api-client:google-api-client to v1.31.5 ([#​820](https://www.github.com/googleapis/java-storage/issues/820)) ([9e1bc0b](https://www.github.com/googleapis/java-storage/commit/9e1bc0b42abdaab0b11d761ecdbb92f6116aacd2)) - update dependency com.google.api.grpc:grpc-google-cloud-kms-v1 to v0.88.3 ([#​797](https://www.github.com/googleapis/java-storage/issues/797)) ([747e7e4](https://www.github.com/googleapis/java-storage/commit/747e7e463c028b9cf8a406b7536b1916c1d52c01)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v1.1.0 ([#​815](https://www.github.com/googleapis/java-storage/issues/815)) ([e210de9](https://www.github.com/googleapis/java-storage/commit/e210de93452243242be7d3d719d00da723632335)) ##### [1.113.16](https://www.github.com/googleapis/java-storage/compare/v1.113.15...v1.113.16) (2021-04-23) ##### Bug Fixes - release scripts from issuing overlapping phases ([#​784](https://www.github.com/googleapis/java-storage/issues/784)) ([36751f5](https://www.github.com/googleapis/java-storage/commit/36751f5de9708ac9e23550f67256fb05ebf1f69e)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.21.1 ([#​789](https://www.github.com/googleapis/java-storage/issues/789)) ([c005e87](https://www.github.com/googleapis/java-storage/commit/c005e877a7d64c4bbd2ed267526d8025ea29a9ad)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v1 ([#​794](https://www.github.com/googleapis/java-storage/issues/794)) ([195fead](https://www.github.com/googleapis/java-storage/commit/195fead94dea4c50f7e285e0a7a1578fa5b6265d)) ##### [1.113.15](https://www.github.com/googleapis/java-storage/compare/v1.113.14...v1.113.15) (2021-04-13) ##### Bug Fixes - **test:** update blob paths used in storage.it.ITStorageTest#testDownloadPublicBlobWithoutAuthentication ([#​759](https://www.github.com/googleapis/java-storage/issues/759)) ([9a6619c](https://www.github.com/googleapis/java-storage/commit/9a6619c39a89e2c2ee8d0000d595d09ac7b7825f)) - typo ([#​779](https://www.github.com/googleapis/java-storage/issues/779)) ([3c3d6b4](https://www.github.com/googleapis/java-storage/commit/3c3d6b487648fde4eb956ce8912cd680a4440f8d)) ##### Dependencies - update dependency com.google.api-client:google-api-client to v1.31.4 ([#​774](https://www.github.com/googleapis/java-storage/issues/774)) ([ad9ff7b](https://www.github.com/googleapis/java-storage/commit/ad9ff7b801d0c5fb39f72c7118c319f4e45084a0)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.21.0 ([#​771](https://www.github.com/googleapis/java-storage/issues/771)) ([5605095](https://www.github.com/googleapis/java-storage/commit/5605095ed796327879a930c12526b3c5b1409b17)) - update kms.version to v0.88.1 ([#​758](https://www.github.com/googleapis/java-storage/issues/758)) ([3e57ea9](https://www.github.com/googleapis/java-storage/commit/3e57ea9a2f5f7013e997469c5ca32be8cef2a4a4)) - update kms.version to v0.88.2 ([#​778](https://www.github.com/googleapis/java-storage/issues/778)) ([6edfc4c](https://www.github.com/googleapis/java-storage/commit/6edfc4ced2bdae9878ecdbc5ef636ac39bdb5881)) - update truth ([#​767](https://www.github.com/googleapis/java-storage/issues/767)) ([4e5ee03](https://www.github.com/googleapis/java-storage/commit/4e5ee0398e700baf4f88224f66309e426f9532d7)) ##### [1.113.14](https://www.github.com/googleapis/java-storage/compare/v1.113.13...v1.113.14) (2021-03-11) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.20.1 ([#​749](https://www.github.com/googleapis/java-storage/issues/749)) ([bb42107](https://www.github.com/googleapis/java-storage/commit/bb42107ff10148e14e112ff78534753f2ebc7dd9)) - update kms.version to v0.88.0 ([#​753](https://www.github.com/googleapis/java-storage/issues/753)) ([eaedb64](https://www.github.com/googleapis/java-storage/commit/eaedb6456f2f427a7f2f3f3d6bd13d0d49fd269b)) ##### [1.113.13](https://www.github.com/googleapis/java-storage/compare/v1.113.12...v1.113.13) (2021-03-08) ##### Bug Fixes - npe in createFrom ([#​746](https://www.github.com/googleapis/java-storage/issues/746)) ([9ed9d13](https://www.github.com/googleapis/java-storage/commit/9ed9d1389e92766b66e2b8b4fb78b44d96d98803)) ##### Dependencies - update dependency com.google.api-client:google-api-client to v1.31.3 ([#​737](https://www.github.com/googleapis/java-storage/issues/737)) ([71b3842](https://www.github.com/googleapis/java-storage/commit/71b384233226531eabc1bd8eebf716ec53708afc)) ##### [1.113.12](https://www.github.com/googleapis/java-storage/compare/v1.113.11...v1.113.12) (2021-02-26) ##### Bug Fixes - retrying get remote offset and recover from last chunk failures. ([#​726](https://www.github.com/googleapis/java-storage/issues/726)) ([b41b881](https://www.github.com/googleapis/java-storage/commit/b41b88109e13b5ebbd0393d1f264225c12876be6)) ##### Dependencies - update dependency com.google.api-client:google-api-client to v1.31.2 ([#​686](https://www.github.com/googleapis/java-storage/issues/686)) ([6b1f036](https://www.github.com/googleapis/java-storage/commit/6b1f0361376167719ec5456181134136d27d1d3c)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.20.0 ([#​732](https://www.github.com/googleapis/java-storage/issues/732)) ([c98413d](https://www.github.com/googleapis/java-storage/commit/c98413df9d9514340aed78b5a4d5e596760bb616)) - update kms.version to v0.87.7 ([#​724](https://www.github.com/googleapis/java-storage/issues/724)) ([3229bd8](https://www.github.com/googleapis/java-storage/commit/3229bd860f3a4d700a969aa9e922bbf6b5c1ca10)) - update kms.version to v0.87.8 ([#​733](https://www.github.com/googleapis/java-storage/issues/733)) ([a21b75f](https://www.github.com/googleapis/java-storage/commit/a21b75fa846f373970298dd98f8f3520fc2b3c97)) ##### [1.113.11](https://www.github.com/googleapis/java-storage/compare/v1.113.10...v1.113.11) (2021-02-19) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.19.0 ([#​719](https://www.github.com/googleapis/java-storage/issues/719)) ([5831bfa](https://www.github.com/googleapis/java-storage/commit/5831bfae3afeab9b044c8d53ebf6a2ce79bc9950)) ##### [1.113.10](https://www.github.com/googleapis/java-storage/compare/v1.113.9...v1.113.10) (2021-02-17) ##### Dependencies - update dependency com.google.apis:google-api-services-storage to v1-rev20210127-1.31.0 ([#​706](https://www.github.com/googleapis/java-storage/issues/706)) ([04db8f7](https://www.github.com/googleapis/java-storage/commit/04db8f7b87644559685d4c05a67a74e4c8bea364)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.18.0 ([#​683](https://www.github.com/googleapis/java-storage/issues/683)) ([6f172eb](https://www.github.com/googleapis/java-storage/commit/6f172eba6fd6e9c11a1f49569249ea6e714ea91f)) - update kms.version to v0.87.6 ([#​702](https://www.github.com/googleapis/java-storage/issues/702)) ([a50c333](https://www.github.com/googleapis/java-storage/commit/a50c333f6e944fa4c6bdf9613cddca7c4fe79652)) ##### [1.113.9](https://www.github.com/googleapis/java-storage/compare/v1.113.8...v1.113.9) (2021-01-12) ##### Bug Fixes - last chunk is retriable ([#​677](https://www.github.com/googleapis/java-storage/issues/677)) ([44f49e0](https://www.github.com/googleapis/java-storage/commit/44f49e0a33c3e541d9f8b22622ffff17cc8b8eaa)) - unnecessary options in resumable upload URL ([#​679](https://www.github.com/googleapis/java-storage/issues/679)) ([d31a39b](https://www.github.com/googleapis/java-storage/commit/d31a39b88b2d8adb04549330f9b8ff1c1a516b69)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.17.1 ([#​678](https://www.github.com/googleapis/java-storage/issues/678)) ([d4a237f](https://www.github.com/googleapis/java-storage/commit/d4a237f4dff9dd870a69d5da9d690c14d4e88610)) - update kms.version to v0.87.5 ([#​662](https://www.github.com/googleapis/java-storage/issues/662)) ([20e7c1f](https://www.github.com/googleapis/java-storage/commit/20e7c1f10a233df6d4660b31d26cd95a6d4002e9)) ##### [1.113.8](https://www.github.com/googleapis/java-storage/compare/v1.113.7...v1.113.8) (2020-12-16) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.17.0 ([#​659](https://www.github.com/googleapis/java-storage/issues/659)) ([5fa03fa](https://www.github.com/googleapis/java-storage/commit/5fa03fa14aa9ee29e7b1b27b783ab873052b97c6)) ##### [1.113.7](https://www.github.com/googleapis/java-storage/compare/v1.113.6...v1.113.7) (2020-12-14) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.16.1 ([f1fc884](https://www.github.com/googleapis/java-storage/commit/f1fc884851ee602d737f3e4191acb1f8450c8f2c)) ##### [1.113.6](https://www.github.com/googleapis/java-storage/compare/v1.113.5...v1.113.6) (2020-12-10) ##### Bug Fixes - content-length missing in offset request ([#​647](https://www.github.com/googleapis/java-storage/issues/647)) ([3cd3815](https://www.github.com/googleapis/java-storage/commit/3cd3815c62603d05d4c571ba1affeaf91e4d8040)) ##### Dependencies - update kms.version to v0.87.3 ([#​646](https://www.github.com/googleapis/java-storage/issues/646)) ([c93896a](https://www.github.com/googleapis/java-storage/commit/c93896a5007b48753809de806ddaf6c8df6e9d56)) ##### [1.113.5](https://www.github.com/googleapis/java-storage/compare/v1.113.4...v1.113.5) (2020-12-07) ##### Dependencies - update dependency com.google.api-client:google-api-client to v1.31.1 ([#​611](https://www.github.com/googleapis/java-storage/issues/611)) ([7c4c759](https://www.github.com/googleapis/java-storage/commit/7c4c759d8bca9c20252e06e02eb8ead3bd9f88d6)) - update dependency com.google.api.grpc:grpc-google-cloud-kms-v1 to v0.87.2 ([#​625](https://www.github.com/googleapis/java-storage/issues/625)) ([243a3cb](https://www.github.com/googleapis/java-storage/commit/243a3cb1506b2e2d609210dc4e9608637c06d7f3)) - update dependency com.google.apis:google-api-services-storage to v1-rev20201112-1.30.10 ([#​613](https://www.github.com/googleapis/java-storage/issues/613)) ([b0e24db](https://www.github.com/googleapis/java-storage/commit/b0e24db88c784fd05988a813bd8b29aeff0739f2)) - update dependency com.google.apis:google-api-services-storage to v1-rev20201112-1.31.0 ([#​641](https://www.github.com/googleapis/java-storage/issues/641)) ([11da9c7](https://www.github.com/googleapis/java-storage/commit/11da9c7e9058c508423e7b2f84c897ab3e9ab3f3)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.16.0 ([#​639](https://www.github.com/googleapis/java-storage/issues/639)) ([68a3af9](https://www.github.com/googleapis/java-storage/commit/68a3af9b12c0e05d2cf59fb58aceab15323e29b1)) - update dependency org.apache.httpcomponents:httpcore to v4.4.14 ([#​637](https://www.github.com/googleapis/java-storage/issues/637)) ([af53902](https://www.github.com/googleapis/java-storage/commit/af5390239ffd1e157f066a1009b7bb18fa6264ec)) ##### [1.113.4](https://www.github.com/googleapis/java-storage/compare/v1.113.3...v1.113.4) (2020-11-13) ##### Bug Fixes - retry using remote offset ([#​604](https://www.github.com/googleapis/java-storage/issues/604)) ([216b52c](https://www.github.com/googleapis/java-storage/commit/216b52c54d34eaf1307788809a3512c461adf381)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.15.0 ([#​610](https://www.github.com/googleapis/java-storage/issues/610)) ([ac65e5b](https://www.github.com/googleapis/java-storage/commit/ac65e5b0bd324d5726504bb3405c758675a56ddc)) ##### [1.113.3](https://www.github.com/googleapis/java-storage/compare/v1.113.2...v1.113.3) (2020-11-06) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.14.1 ([#​592](https://www.github.com/googleapis/java-storage/issues/592)) ([25e8e6a](https://www.github.com/googleapis/java-storage/commit/25e8e6a01dde517fd42cfc8ae59b8555ea0a2831)) - update kms.version to v0.87.1 ([#​595](https://www.github.com/googleapis/java-storage/issues/595)) ([1e399cd](https://www.github.com/googleapis/java-storage/commit/1e399cd33755e647bf08f4a82af932320cab655d)) ##### [1.113.2](https://www.github.com/googleapis/java-storage/compare/v1.113.1...v1.113.2) (2020-10-26) ##### Documentation - update libraries-bom ([#​540](https://www.github.com/googleapis/java-storage/issues/540)) ([54987e1](https://www.github.com/googleapis/java-storage/commit/54987e1ba35d99db680ab2ad6ac86a6b74c7c705)) - update libraries-bom ([#​552](https://www.github.com/googleapis/java-storage/issues/552)) ([c4df018](https://www.github.com/googleapis/java-storage/commit/c4df01875b8f088bd65bcd0353e1b74a18b9582c)) ##### Dependencies - update dependency com.google.api-client:google-api-client to v1.30.11 ([#​575](https://www.github.com/googleapis/java-storage/issues/575)) ([99838e6](https://www.github.com/googleapis/java-storage/commit/99838e63f9a71095c4d8f6c99622a9aee2e5d26d)) - update dependency com.google.apis:google-api-services-storage to v1-rev20200927-1.30.10 ([#​539](https://www.github.com/googleapis/java-storage/issues/539)) ([5e49013](https://www.github.com/googleapis/java-storage/commit/5e49013add340e4d8287e00b8d4a9c499df80205)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.10.0 ([#​529](https://www.github.com/googleapis/java-storage/issues/529)) ([dc58856](https://www.github.com/googleapis/java-storage/commit/dc58856c2548013a495b62cc6bb696ada24d2557)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.10.2 ([#​549](https://www.github.com/googleapis/java-storage/issues/549)) ([c59c28d](https://www.github.com/googleapis/java-storage/commit/c59c28d97a9eb4e811921c7cad637d67c2be16be)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.12.1 ([#​566](https://www.github.com/googleapis/java-storage/issues/566)) ([f1dedfb](https://www.github.com/googleapis/java-storage/commit/f1dedfbf9f47c87c7f7fea5e6c1c7c1af35b060e)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v0.13.0 ([#​570](https://www.github.com/googleapis/java-storage/issues/570)) ([ef55f49](https://www.github.com/googleapis/java-storage/commit/ef55f49230f58863195782b5fe0f84285a316aef)) ##### [1.113.1](https://www.github.com/googleapis/java-storage/compare/v1.113.0...v1.113.1) (2020-09-17) ##### Bug Fixes - KMS Bad Key error when using existing Blob context to overwrite object ([#​507](https://www.github.com/googleapis/java-storage/issues/507)) ([4d9c490](https://www.github.com/googleapis/java-storage/commit/4d9c49027e4746ee273902694441886c2f43188d)) - When passing a sub-array (offset, length) to the Storage#create method the array is needlessly cloned ([#​506](https://www.github.com/googleapis/java-storage/issues/506)) ([9415bb7](https://www.github.com/googleapis/java-storage/commit/9415bb7bdb42d8012ca457a90070b616e6bbec19)), closes [#​505](https://www.github.com/googleapis/java-storage/issues/505) ##### Dependencies - update dependency com.google.apis:google-api-services-storage to v1-rev20200814-1.30.10 ([#​499](https://www.github.com/googleapis/java-storage/issues/499)) ([af91d7d](https://www.github.com/googleapis/java-storage/commit/af91d7da4117fb22992d6a860af61f72906e0aa1)) ##### Documentation - update libraries-bom ([#​504](https://www.github.com/googleapis/java-storage/issues/504)) ([0e58c1c](https://www.github.com/googleapis/java-storage/commit/0e58c1cb2b6a890e567b043188613021592f2bc8))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 35d191227766..fa0e75d96037 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.113.16 + 1.114.0 test From f7e30f0c3a6e71dd929bbe3b7e33a88ce7baaf13 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 19 May 2021 01:56:04 +0000 Subject: [PATCH 1298/3441] chore: release 1.131.1 (#1326) :robot: I have created a release \*beep\* \*boop\* --- ### [1.131.1](https://www.github.com/googleapis/java-bigquery/compare/v1.131.0...v1.131.1) (2021-05-19) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v1.2.0 ([#1324](https://www.github.com/googleapis/java-bigquery/issues/1324)) ([dd238db](https://www.github.com/googleapis/java-bigquery/commit/dd238db05664e588aca00e4f10e368d3a574d605)) * update dependency com.google.cloud:google-cloud-storage to v1.114.0 ([#1306](https://www.github.com/googleapis/java-bigquery/issues/1306)) ([a2cb66a](https://www.github.com/googleapis/java-bigquery/commit/a2cb66a60a44748e7aa8d4f4b5386e46191557b7)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f72ddbb902b..81a98f7035e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.131.1](https://www.github.com/googleapis/java-bigquery/compare/v1.131.0...v1.131.1) (2021-05-19) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v1.2.0 ([#1324](https://www.github.com/googleapis/java-bigquery/issues/1324)) ([dd238db](https://www.github.com/googleapis/java-bigquery/commit/dd238db05664e588aca00e4f10e368d3a574d605)) +* update dependency com.google.cloud:google-cloud-storage to v1.114.0 ([#1306](https://www.github.com/googleapis/java-bigquery/issues/1306)) ([a2cb66a](https://www.github.com/googleapis/java-bigquery/commit/a2cb66a60a44748e7aa8d4f4b5386e46191557b7)) + ## [1.131.0](https://www.github.com/googleapis/java-bigquery/compare/v1.130.0...v1.131.0) (2021-05-18) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c120b150d93c..68ffab6084af 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.131.1-SNAPSHOT + 1.131.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c47f3361ab2b..ba88ca24d45e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.131.1-SNAPSHOT + 1.131.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.131.1-SNAPSHOT + 1.131.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index fa0e75d96037..916acbb9771e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.131.1-SNAPSHOT + 1.131.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.131.1-SNAPSHOT + 1.131.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c9b3530abba7..cdc365509b62 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.131.1-SNAPSHOT + 1.131.1 diff --git a/versions.txt b/versions.txt index 0ac6e26afe40..b4d40e03ce9b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.131.0:1.131.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.131.1:1.131.1 \ No newline at end of file From c0700ea4060c5e4331bb0f0f639097fac6263192 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 19 May 2021 02:08:03 +0000 Subject: [PATCH 1299/3441] chore: release 1.131.2-SNAPSHOT (#1327) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 68ffab6084af..7eb9a06e0913 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.131.1 + 1.131.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ba88ca24d45e..ab19ed9fda99 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.131.1 + 1.131.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.131.1 + 1.131.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 916acbb9771e..6a626996527c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.131.1 + 1.131.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.131.1 + 1.131.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index cdc365509b62..40d0dbbb6ecb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.131.1 + 1.131.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index b4d40e03ce9b..4fcde2e46fb1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.131.1:1.131.1 \ No newline at end of file +google-cloud-bigquery:1.131.1:1.131.2-SNAPSHOT \ No newline at end of file From beebb5c8feb78e3c32b606bcb151b06c9e94faf0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 19 May 2021 07:15:28 +0200 Subject: [PATCH 1300/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.131.1 (#1329) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0e54a5606427..67c7b66dc757 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.131.0 + 1.131.1 From fa78fc1c0c8a7c001e8a896792c2c0751b4393bc Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 18 May 2021 22:28:02 -0700 Subject: [PATCH 1301/3441] chore: regenerate README (#1330) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-05-19 05:17:35,360 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-05-19 05:17:36,603 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/1fdc6908-c58a-48fe-a983-76cb64d05e32/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index eb58f0236b1e..474f25902b0f 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "8e45a5ac0cf1053d7cf9e3f40efe49f68678a287" + "sha": "beebb5c8feb78e3c32b606bcb151b06c9e94faf0" } }, { diff --git a/README.md b/README.md index b7fc8fac8560..380cecac19ca 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.131.0 + 1.131.1 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.131.0' +compile 'com.google.cloud:google-cloud-bigquery:1.131.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.131.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.131.1" ``` ## Authentication From 3c741a91dc721484907c8778b5c666724f534ead Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 19 May 2021 16:22:37 +0200 Subject: [PATCH 1302/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.0.18 (#1328) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 67c7b66dc757..7570863e772f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.17 + 1.0.18 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 40d0dbbb6ecb..1c6338250811 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.17 + 1.0.18 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9d8e61396129..858ecb0f7405 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.17 + 1.0.18 test From 1f19362ad5527a12e4fadc1df42523857b6e709a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 19 May 2021 07:38:04 -0700 Subject: [PATCH 1303/3441] feat: add `gcf-owl-bot[bot]` to `ignoreAuthors` (#1331) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/d9040141-c544-42d1-82e1-e841ec7c983d/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/7332178a11ddddc91188dc0f25bca1ccadcaa6c6 --- .github/generated-files-bot.yml | 1 + synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/generated-files-bot.yml b/.github/generated-files-bot.yml index 47c2ba132e01..c644a24e1129 100644 --- a/.github/generated-files-bot.yml +++ b/.github/generated-files-bot.yml @@ -9,3 +9,4 @@ ignoreAuthors: - 'renovate-bot' - 'yoshi-automation' - 'release-please[bot]' +- 'gcf-owl-bot[bot]' diff --git a/synth.metadata b/synth.metadata index 4761d127af73..a995e978b54f 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "72568a031768207a28f5b5727f7af752b4e2a373" + "sha": "fa78fc1c0c8a7c001e8a896792c2c0751b4393bc" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "c86c7a60985644eab557949363a38301d40d78d2" + "sha": "7332178a11ddddc91188dc0f25bca1ccadcaa6c6" } } ], From 225cc67741126a532e47f3a9544d7fb3e67e10ae Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 19 May 2021 23:02:32 +0200 Subject: [PATCH 1304/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.12.0 (#1333) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `0.11.2` -> `0.12.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.12.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.12.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.12.0/compatibility-slim/0.11.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/0.12.0/confidence-slim/0.11.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6a626996527c..d18c66d0bc3f 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.11.2 + 0.12.0 From f7be534a5a7fb79232bcd3d082365033262f6dcb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 20 May 2021 18:52:02 +0200 Subject: [PATCH 1305/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.25.0 (#1334) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `1.24.1` -> `1.25.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.25.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.25.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.25.0/compatibility-slim/1.24.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.25.0/confidence-slim/1.24.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v1.25.0`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​1250-httpswwwgithubcomgoogleapisjava-bigtablecomparev1241v1250-2021-05-19) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v1.24.1...v1.25.0) ##### Features - add `gcf-owl-bot[bot]` to `ignoreAuthors` ([#​815](https://www.github.com/googleapis/java-bigtable/issues/815)) ([ea558b0](https://www.github.com/googleapis/java-bigtable/commit/ea558b05b369c6131f94e471e5652866a037b948)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v1.2.0 ([#​814](https://www.github.com/googleapis/java-bigtable/issues/814)) ([1299d72](https://www.github.com/googleapis/java-bigtable/commit/1299d727066e0aa24319b99d438503ea0cf60d86)) ##### [1.24.1](https://www.github.com/googleapis/java-bigtable/compare/v1.24.0...v1.24.1) (2021-05-11) ##### Bug Fixes - filter limit constant ([#​787](https://www.github.com/googleapis/java-bigtable/issues/787)) ([04f8ad4](https://www.github.com/googleapis/java-bigtable/commit/04f8ad463d1fa9efe0ab941ee5f3d0794baed814)) - fix flaky test ([#​798](https://www.github.com/googleapis/java-bigtable/issues/798)) ([83e0e8c](https://www.github.com/googleapis/java-bigtable/commit/83e0e8cf2cdbc143c10ce0f8b053096d61d5686f)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v1.1.0 ([#​805](https://www.github.com/googleapis/java-bigtable/issues/805)) ([a498687](https://www.github.com/googleapis/java-bigtable/commit/a498687d15dd9af35c57b0df6d08c87ef36833da)) ##### Documentation - update the comments in Cloud Bigtable RestoreTable API to reflect the new API capability ([#​804](https://www.github.com/googleapis/java-bigtable/issues/804)) ([f5e5d5a](https://www.github.com/googleapis/java-bigtable/commit/f5e5d5ac196529d5b070ef5fd8118038fec2e2de))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7570863e772f..93671d28f2ef 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.24.1 + 1.25.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1c6338250811..410170bfa59e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.24.1 + 1.25.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 858ecb0f7405..08443351fabc 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.24.1 + 1.25.0 test From ed20000118ff59c0881ca1e4f20056f48adc13e0 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 20 May 2021 15:32:19 -0700 Subject: [PATCH 1306/3441] chore: dump maven version along with java (#1335) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/17ca336b-fa2b-4537-8cfb-b72192e5b930/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/8eae0234a16b26c2ff616d305dbd9786c8b10a47 --- .kokoro/build.sh | 4 ++-- synth.metadata | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 0f37b1e0209b..1a024be85fb0 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -23,8 +23,8 @@ cd ${scriptDir}/.. # include common functions source ${scriptDir}/common.sh -# Print out Java version -java -version +# Print out Maven & Java version +mvn -version echo ${JOB_TYPE} # attempt to install 3 times with exponential backoff (starting with 10 seconds) diff --git a/synth.metadata b/synth.metadata index a995e978b54f..c36d006ae162 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "fa78fc1c0c8a7c001e8a896792c2c0751b4393bc" + "sha": "f7be534a5a7fb79232bcd3d082365033262f6dcb" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7332178a11ddddc91188dc0f25bca1ccadcaa6c6" + "sha": "8eae0234a16b26c2ff616d305dbd9786c8b10a47" } } ], From e2e9a5f941a2a21b79dfdeefac667f0b3627cb78 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 24 May 2021 04:12:34 +0200 Subject: [PATCH 1307/3441] build(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.3.0 (#1336) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d18c66d0bc3f..dafdd623f8c7 100644 --- a/pom.xml +++ b/pom.xml @@ -179,7 +179,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.2.0 + 3.3.0 html From 6f0a9dafcb54c99394ad9a8aaa769dcb8f551aae Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 25 May 2021 00:52:06 +0200 Subject: [PATCH 1308/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v20.5.0 (#1337) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 08443351fabc..ae1d4ef4da8a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 20.4.0 + 20.5.0 pom import From 760e34f976e4b3d2c5622648bc45193767166aeb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 24 May 2021 16:06:02 -0700 Subject: [PATCH 1309/3441] chore: regenerate README (#1338) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-05-24 22:54:22,166 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-05-24 22:54:23,552 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/e1af13ed-83cf-4c1d-a5f6-53d1522efd32/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 474f25902b0f..4564b60366d1 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "beebb5c8feb78e3c32b606bcb151b06c9e94faf0" + "sha": "6f0a9dafcb54c99394ad9a8aaa769dcb8f551aae" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "7332178a11ddddc91188dc0f25bca1ccadcaa6c6" + "sha": "a2de127f90799cd5bace653b1dcc5dd2ca8b19c9" } } ] diff --git a/README.md b/README.md index 380cecac19ca..e9dd64914b49 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 20.4.0 + 20.5.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:20.4.0') +implementation platform('com.google.cloud:libraries-bom:20.5.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From 5fcdb5cd7060fdd27a911cf1feb633a5d8cb1cbb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 26 May 2021 04:53:43 +0200 Subject: [PATCH 1310/3441] test(deps): update dependency com.google.truth:truth to v1.1.3 (#1339) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index dafdd623f8c7..d749d2f3ba54 100644 --- a/pom.xml +++ b/pom.xml @@ -106,7 +106,7 @@ com.google.truth truth - 1.1 + 1.1.3 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 93671d28f2ef..dc751116026c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -81,7 +81,7 @@ com.google.truth truth - 1.1 + 1.1.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 410170bfa59e..b2547ac521ae 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -79,7 +79,7 @@ com.google.truth truth - 1.1 + 1.1.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ae1d4ef4da8a..d8ef9148c667 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -97,7 +97,7 @@ com.google.truth truth - 1.1 + 1.1.3 test From dfaa49e06715198a012385fad4a37160403b54f4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 26 May 2021 21:56:11 +0200 Subject: [PATCH 1311/3441] deps: update jmh.version to v1.32 (#1340) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.openjdk.jmh:jmh-generator-annprocess | `1.31` -> `1.32` | [![age](https://badges.renovateapi.com/packages/maven/org.openjdk.jmh:jmh-generator-annprocess/1.32/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.openjdk.jmh:jmh-generator-annprocess/1.32/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.openjdk.jmh:jmh-generator-annprocess/1.32/compatibility-slim/1.31)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.openjdk.jmh:jmh-generator-annprocess/1.32/confidence-slim/1.31)](https://docs.renovatebot.com/merge-confidence/) | | org.openjdk.jmh:jmh-core | `1.31` -> `1.32` | [![age](https://badges.renovateapi.com/packages/maven/org.openjdk.jmh:jmh-core/1.32/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.openjdk.jmh:jmh-core/1.32/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.openjdk.jmh:jmh-core/1.32/compatibility-slim/1.31)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.openjdk.jmh:jmh-core/1.32/confidence-slim/1.31)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 7eb9a06e0913..553cd97fb3d5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.31 + 1.32 benchmark From a37a2f5240bb7b0681b8e5e70801d96b4a5675e5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 30 May 2021 23:12:28 +0200 Subject: [PATCH 1312/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210518-1.31.0 (#1341) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d749d2f3ba54..1a95296e3c2d 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210430-1.31.0 + v2-rev20210518-1.31.0 1.2.0
    From f72f1b50ca38c96d85d9e614e159db487cb0cbf2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 1 Jun 2021 18:13:48 +0200 Subject: [PATCH 1313/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.1.0 (#1342) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index dc751116026c..0244d79ef6fa 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.18 + 1.1.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b2547ac521ae..5588da842be9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.18 + 1.1.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d8ef9148c667..acdfd5fe2f9c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.0.18 + 1.1.0 test From 6fa2ea32fe8bd0d0de4903538c4f1d302781a7de Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 1 Jun 2021 18:14:03 +0200 Subject: [PATCH 1314/3441] test(deps): update datacatalog dependencies to v1.4.0 (#1343) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 1a95296e3c2d..ad0fa7548c92 100644 --- a/pom.xml +++ b/pom.xml @@ -124,13 +124,13 @@ com.google.cloud google-cloud-datacatalog - 1.3.3 + 1.4.0 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.3.3 + 1.4.0 test From 0ee09f779c116c000be1cc99c6b1d52a14b33403 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 2 Jun 2021 16:04:23 +0200 Subject: [PATCH 1315/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.115.0 (#1344) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ad0fa7548c92..ae6092055657 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.114.0 + 1.115.0 test From e6695c0bc0e3d4e758ef75c0a8fe13c0c390b771 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 3 Jun 2021 18:21:12 +0200 Subject: [PATCH 1316/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.1.1 (#1346) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0244d79ef6fa..fc280da04b98 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.0 + 1.1.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5588da842be9..c56e8d0fd2d8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.0 + 1.1.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index acdfd5fe2f9c..13d12b284814 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.0 + 1.1.1 test From ab41045628a6735de3223bb22285f0affc269c75 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 4 Jun 2021 14:48:37 +0200 Subject: [PATCH 1317/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v1.3.0 (#1348) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ae6092055657..7873b5ed3ce9 100644 --- a/pom.xml +++ b/pom.xml @@ -65,7 +65,7 @@ google-cloud-bigquery-parent v2-rev20210518-1.31.0 - 1.2.0 + 1.3.0
    From 55f3e7b359cc197767e75f026f572110649c2ba7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 4 Jun 2021 14:49:02 +0200 Subject: [PATCH 1318/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.26.0 (#1347) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fc280da04b98..a96be2fd9d4c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.25.0 + 1.26.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c56e8d0fd2d8..0eea7c3cab01 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.25.0 + 1.26.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 13d12b284814..202ff7c92a6d 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.25.0 + 1.26.0 test From cc70853dad3955815a0820aa411b1e5cd9b65722 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 4 Jun 2021 13:04:03 +0000 Subject: [PATCH 1319/3441] chore: release 1.132.0 (#1332) :robot: I have created a release \*beep\* \*boop\* --- ## [1.132.0](https://www.github.com/googleapis/java-bigquery/compare/v1.131.1...v1.132.0) (2021-06-04) ### Features * add `gcf-owl-bot[bot]` to `ignoreAuthors` ([#1331](https://www.github.com/googleapis/java-bigquery/issues/1331)) ([1f19362](https://www.github.com/googleapis/java-bigquery/commit/1f19362ad5527a12e4fadc1df42523857b6e709a)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210518-1.31.0 ([#1341](https://www.github.com/googleapis/java-bigquery/issues/1341)) ([a37a2f5](https://www.github.com/googleapis/java-bigquery/commit/a37a2f5240bb7b0681b8e5e70801d96b4a5675e5)) * update dependency com.google.cloud:google-cloud-bigtable to v1.25.0 ([#1334](https://www.github.com/googleapis/java-bigquery/issues/1334)) ([f7be534](https://www.github.com/googleapis/java-bigquery/commit/f7be534a5a7fb79232bcd3d082365033262f6dcb)) * update dependency com.google.cloud:google-cloud-bigtable to v1.26.0 ([#1347](https://www.github.com/googleapis/java-bigquery/issues/1347)) ([55f3e7b](https://www.github.com/googleapis/java-bigquery/commit/55f3e7b359cc197767e75f026f572110649c2ba7)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v1.3.0 ([#1348](https://www.github.com/googleapis/java-bigquery/issues/1348)) ([ab41045](https://www.github.com/googleapis/java-bigquery/commit/ab41045628a6735de3223bb22285f0affc269c75)) * update dependency com.google.cloud:google-cloud-storage to v1.115.0 ([#1344](https://www.github.com/googleapis/java-bigquery/issues/1344)) ([0ee09f7](https://www.github.com/googleapis/java-bigquery/commit/0ee09f779c116c000be1cc99c6b1d52a14b33403)) * update jmh.version to v1.32 ([#1340](https://www.github.com/googleapis/java-bigquery/issues/1340)) ([dfaa49e](https://www.github.com/googleapis/java-bigquery/commit/dfaa49e06715198a012385fad4a37160403b54f4)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 17 +++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 24 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 81a98f7035e4..0d526df96a73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [1.132.0](https://www.github.com/googleapis/java-bigquery/compare/v1.131.1...v1.132.0) (2021-06-04) + + +### Features + +* add `gcf-owl-bot[bot]` to `ignoreAuthors` ([#1331](https://www.github.com/googleapis/java-bigquery/issues/1331)) ([1f19362](https://www.github.com/googleapis/java-bigquery/commit/1f19362ad5527a12e4fadc1df42523857b6e709a)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210518-1.31.0 ([#1341](https://www.github.com/googleapis/java-bigquery/issues/1341)) ([a37a2f5](https://www.github.com/googleapis/java-bigquery/commit/a37a2f5240bb7b0681b8e5e70801d96b4a5675e5)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.25.0 ([#1334](https://www.github.com/googleapis/java-bigquery/issues/1334)) ([f7be534](https://www.github.com/googleapis/java-bigquery/commit/f7be534a5a7fb79232bcd3d082365033262f6dcb)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.26.0 ([#1347](https://www.github.com/googleapis/java-bigquery/issues/1347)) ([55f3e7b](https://www.github.com/googleapis/java-bigquery/commit/55f3e7b359cc197767e75f026f572110649c2ba7)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v1.3.0 ([#1348](https://www.github.com/googleapis/java-bigquery/issues/1348)) ([ab41045](https://www.github.com/googleapis/java-bigquery/commit/ab41045628a6735de3223bb22285f0affc269c75)) +* update dependency com.google.cloud:google-cloud-storage to v1.115.0 ([#1344](https://www.github.com/googleapis/java-bigquery/issues/1344)) ([0ee09f7](https://www.github.com/googleapis/java-bigquery/commit/0ee09f779c116c000be1cc99c6b1d52a14b33403)) +* update jmh.version to v1.32 ([#1340](https://www.github.com/googleapis/java-bigquery/issues/1340)) ([dfaa49e](https://www.github.com/googleapis/java-bigquery/commit/dfaa49e06715198a012385fad4a37160403b54f4)) + ### [1.131.1](https://www.github.com/googleapis/java-bigquery/compare/v1.131.0...v1.131.1) (2021-05-19) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 553cd97fb3d5..3bd17e49ee7b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.131.2-SNAPSHOT + 1.132.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ab19ed9fda99..bc7ed0873530 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.131.2-SNAPSHOT + 1.132.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.131.2-SNAPSHOT + 1.132.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7873b5ed3ce9..a9e0af8f2941 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.131.2-SNAPSHOT + 1.132.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.131.2-SNAPSHOT + 1.132.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0eea7c3cab01..4543b287314f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.131.2-SNAPSHOT + 1.132.0 diff --git a/versions.txt b/versions.txt index 4fcde2e46fb1..d249bfe554bb 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.131.1:1.131.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.132.0:1.132.0 \ No newline at end of file From 043d377a3932c3810b795b611709d355f7606941 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 4 Jun 2021 13:14:03 +0000 Subject: [PATCH 1320/3441] chore: release 1.132.1-SNAPSHOT (#1349) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3bd17e49ee7b..8c658fcd0172 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.132.0 + 1.132.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bc7ed0873530..15a737f97d0f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.132.0 + 1.132.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.132.0 + 1.132.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a9e0af8f2941..ae275409f124 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.132.0 + 1.132.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.132.0 + 1.132.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4543b287314f..478bd9fcc9ab 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.132.0 + 1.132.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index d249bfe554bb..927d6fd11cdb 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.132.0:1.132.0 \ No newline at end of file +google-cloud-bigquery:1.132.0:1.132.1-SNAPSHOT \ No newline at end of file From cfc5fc9d210bb9fdfe3ec12b40541fd8a7044fef Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 4 Jun 2021 16:56:49 +0200 Subject: [PATCH 1321/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.1.2 (#1350) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a96be2fd9d4c..e4b154669b1c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.1 + 1.1.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 478bd9fcc9ab..6d25ea9e35f6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.1 + 1.1.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 202ff7c92a6d..0269f7a09a7b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.1 + 1.1.2 test From 2e08019e2312995995af3261350586fa59002b60 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 4 Jun 2021 16:57:08 +0200 Subject: [PATCH 1322/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.132.0 (#1351) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e4b154669b1c..5d4be02d2bed 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.131.1 + 1.132.0 From b6b23dcc6dd408c94313e533d03b1cbfc0b7ab9f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 4 Jun 2021 08:10:03 -0700 Subject: [PATCH 1323/3441] chore: regenerate README (#1352) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-04 14:58:59,298 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-04 14:59:00,669 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/c8c4259c-a230-49c2-b64d-b4303db73367/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 4564b60366d1..83a5a51b0dbf 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "6f0a9dafcb54c99394ad9a8aaa769dcb8f551aae" + "sha": "2e08019e2312995995af3261350586fa59002b60" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "a2de127f90799cd5bace653b1dcc5dd2ca8b19c9" + "sha": "8da7927493739fa36130360019ca21258242f73a" } } ] diff --git a/README.md b/README.md index e9dd64914b49..4e0289083f6c 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.131.1 + 1.132.0 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.131.1' +compile 'com.google.cloud:google-cloud-bigquery:1.132.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.131.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.132.0" ``` ## Authentication From 475d61efdd4b194da79ca5190f2ad06876339a72 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 5 Jun 2021 16:35:20 +0200 Subject: [PATCH 1324/3441] chore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.23 (#1354) --- samples/install-without-bom/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5d4be02d2bed..16447990f600 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.22 + 1.0.23 diff --git a/samples/pom.xml b/samples/pom.xml index 835a13ac220d..f2bb68bedb83 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -34,7 +34,7 @@ com.google.cloud.samples shared-configuration - 1.0.22 + 1.0.23 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6d25ea9e35f6..3099382ed138 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.22 + 1.0.23 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0269f7a09a7b..80b7acb09feb 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -29,7 +29,7 @@ com.google.cloud.samples shared-configuration - 1.0.22 + 1.0.23 From 1e0827e04a23c5d53327dd32ae7f5d6877756f22 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 5 Jun 2021 16:36:03 +0200 Subject: [PATCH 1325/3441] test(deps): update datacatalog dependencies to v1.4.1 (#1353) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index ae275409f124..56bbadd6fb07 100644 --- a/pom.xml +++ b/pom.xml @@ -124,13 +124,13 @@ com.google.cloud google-cloud-datacatalog - 1.4.0 + 1.4.1 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.4.0 + 1.4.1 test From bc7744e5570c2990231a680fb9cda9acebb3d7ca Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 5 Jun 2021 16:36:20 +0200 Subject: [PATCH 1326/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210529-1.31.0 (#1355) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 56bbadd6fb07..679efca3adfb 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210518-1.31.0 + v2-rev20210529-1.31.0 1.3.0 From 384dcc5fb9907ea9ff26a53d42c7033bd336bc73 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 7 Jun 2021 17:40:18 +0200 Subject: [PATCH 1327/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v20.6.0 (#1357) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 80b7acb09feb..75414a3a6a36 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 20.5.0 + 20.6.0 pom import From c31d82606fba1890211b34c3c9e65e17ab1e7af0 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 7 Jun 2021 15:50:02 +0000 Subject: [PATCH 1328/3441] chore: release 1.132.1 (#1356) :robot: I have created a release \*beep\* \*boop\* --- ### [1.132.1](https://www.github.com/googleapis/java-bigquery/compare/v1.132.0...v1.132.1) (2021-06-07) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210529-1.31.0 ([#1355](https://www.github.com/googleapis/java-bigquery/issues/1355)) ([bc7744e](https://www.github.com/googleapis/java-bigquery/commit/bc7744e5570c2990231a680fb9cda9acebb3d7ca)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d526df96a73..2d028a6fedbe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.132.1](https://www.github.com/googleapis/java-bigquery/compare/v1.132.0...v1.132.1) (2021-06-07) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210529-1.31.0 ([#1355](https://www.github.com/googleapis/java-bigquery/issues/1355)) ([bc7744e](https://www.github.com/googleapis/java-bigquery/commit/bc7744e5570c2990231a680fb9cda9acebb3d7ca)) + ## [1.132.0](https://www.github.com/googleapis/java-bigquery/compare/v1.131.1...v1.132.0) (2021-06-04) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8c658fcd0172..9137e7d53502 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.132.1-SNAPSHOT + 1.132.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 15a737f97d0f..4b88f59ccdee 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.132.1-SNAPSHOT + 1.132.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.132.1-SNAPSHOT + 1.132.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 679efca3adfb..50681b33103f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.132.1-SNAPSHOT + 1.132.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.132.1-SNAPSHOT + 1.132.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3099382ed138..32204cb426f9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.132.1-SNAPSHOT + 1.132.1 diff --git a/versions.txt b/versions.txt index 927d6fd11cdb..0fef4ec61173 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.132.0:1.132.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.132.1:1.132.1 \ No newline at end of file From 9b1b4876be0941531da707a33228e16ec290acc8 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 7 Jun 2021 08:52:02 -0700 Subject: [PATCH 1329/3441] chore: regenerate README (#1358) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-07 15:42:36,422 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-07 15:42:37,763 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/8f04d138-d1c2-417b-a75f-ac65163cd477/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 83a5a51b0dbf..f2a00f876b7d 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "2e08019e2312995995af3261350586fa59002b60" + "sha": "384dcc5fb9907ea9ff26a53d42c7033bd336bc73" } }, { diff --git a/README.md b/README.md index 4e0289083f6c..6aa15f98627c 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 20.5.0 + 20.6.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:20.5.0') +implementation platform('com.google.cloud:libraries-bom:20.6.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From fa6f6fec1dc0c99a2e2927e144b8f01de5ca2a6b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 7 Jun 2021 16:02:03 +0000 Subject: [PATCH 1330/3441] chore: release 1.132.2-SNAPSHOT (#1359) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9137e7d53502..52a24ad252e2 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.132.1 + 1.132.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4b88f59ccdee..b485b5fba2f0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.132.1 + 1.132.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.132.1 + 1.132.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 50681b33103f..0a95d98a37ca 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.132.1 + 1.132.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.132.1 + 1.132.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 32204cb426f9..3ab3813224cf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.132.1 + 1.132.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0fef4ec61173..f0291dc5327c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.132.1:1.132.1 \ No newline at end of file +google-cloud-bigquery:1.132.1:1.132.2-SNAPSHOT \ No newline at end of file From bf55699d849de7e873577de04e44fbfe0f078ab1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 7 Jun 2021 18:52:02 +0200 Subject: [PATCH 1331/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.26.1 (#1360) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `1.26.0` -> `1.26.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.26.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.26.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.26.1/compatibility-slim/1.26.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.26.1/confidence-slim/1.26.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v1.26.1`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​1261-httpswwwgithubcomgoogleapisjava-bigtablecomparev1260v1261-2021-06-07) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v1.26.0...v1.26.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 16447990f600..c14351ceaf67 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.26.0 + 1.26.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3ab3813224cf..84ebb2b0fe4f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.26.0 + 1.26.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 75414a3a6a36..6682efa6c1d8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.26.0 + 1.26.1 test From d8b7a564e681e36dbb0f187a73dc1ddbc539f157 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 7 Jun 2021 10:04:02 -0700 Subject: [PATCH 1332/3441] chore: regenerate README (#1363) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-07 16:54:19,937 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-07 16:54:21,178 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/efe658b6-75ab-496c-ad8a-4bd12c9101c5/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index f2a00f876b7d..24ee14bc06de 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "384dcc5fb9907ea9ff26a53d42c7033bd336bc73" + "sha": "bf55699d849de7e873577de04e44fbfe0f078ab1" } }, { diff --git a/README.md b/README.md index 6aa15f98627c..c1a55874e0a4 100644 --- a/README.md +++ b/README.md @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.132.0' +compile 'com.google.cloud:google-cloud-bigquery:1.132.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.132.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.132.1" ``` ## Authentication From 44c1a5d0083521b260bfa490c91b72051885eb4d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 7 Jun 2021 19:04:06 +0200 Subject: [PATCH 1333/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.132.1 (#1362) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `1.132.0` -> `1.132.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.132.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.132.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.132.1/compatibility-slim/1.132.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.132.1/confidence-slim/1.132.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v1.132.1`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​11321-httpswwwgithubcomgoogleapisjava-bigquerycomparev11320v11321-2021-06-07) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.132.0...v1.132.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c14351ceaf67..6608f9aa5b22 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.132.0 + 1.132.1 From 5f6307f9e788bdd3d860a7a89aa9dc043c67e609 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 7 Jun 2021 10:16:02 -0700 Subject: [PATCH 1334/3441] chore: regenerate README (#1364) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-07 17:06:17,435 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-07 17:06:18,718 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/8dff48cf-f7c0-4178-8110-8832472656a8/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 24ee14bc06de..c316b69a1c92 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "bf55699d849de7e873577de04e44fbfe0f078ab1" + "sha": "44c1a5d0083521b260bfa490c91b72051885eb4d" } }, { diff --git a/README.md b/README.md index c1a55874e0a4..a15eb421a78d 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.132.0 + 1.132.1 ``` From ba528df03def71907e2811cf267718f090605d95 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 8 Jun 2021 12:49:07 -0400 Subject: [PATCH 1335/3441] feat: add support for DecimalTargetTypes (#1345) * feat: add support for DecimalTargetType Towards b/188414733 Implemented in LoadJobConfiguration * update test to verify that the destination table's decimal column is loaded as BIGNUMERIC type * add decimalTargetTypes support in ExternalTableDefinition.java * add decimalTargetTypes support in ExternalTableDefinition.java --- .../clirr-ignored-differences.xml | 28 ++--------- .../bigquery/ExternalTableDefinition.java | 24 ++++++++++ .../cloud/bigquery/LoadJobConfiguration.java | 29 +++++++++++ .../bigquery/ExternalTableDefinitionTest.java | 5 ++ .../bigquery/LoadJobConfigurationTest.java | 4 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 48 +++++++++++++++++++ 6 files changed, 114 insertions(+), 24 deletions(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index d8b1ba813b91..2801782f4d91 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -4,32 +4,12 @@ 7013 - com/google/cloud/bigquery/MaterializedViewDefinition - com.google.cloud.bigquery.Clustering getClustering() + com/google/cloud/bigquery/ExternalTableDefinition + com.google.common.collect.ImmutableList getDecimalTargetTypes() 7013 - com/google/cloud/bigquery/MaterializedViewDefinition - com.google.cloud.bigquery.RangePartitioning getRangePartitioning() - - - 7013 - com/google/cloud/bigquery/MaterializedViewDefinition - com.google.cloud.bigquery.TimePartitioning getTimePartitioning() - - - 7013 - com/google/cloud/bigquery/MaterializedViewDefinition$Builder - com.google.cloud.bigquery.MaterializedViewDefinition$Builder setClustering(com.google.cloud.bigquery.Clustering) - - - 7013 - com/google/cloud/bigquery/MaterializedViewDefinition$Builder - com.google.cloud.bigquery.MaterializedViewDefinition$Builder setRangePartitioning(com.google.cloud.bigquery.RangePartitioning) - - - 7013 - com/google/cloud/bigquery/MaterializedViewDefinition$Builder - com.google.cloud.bigquery.MaterializedViewDefinition$Builder setTimePartitioning(com.google.cloud.bigquery.TimePartitioning) + com/google/cloud/bigquery/ExternalTableDefinition$Builder + com.google.cloud.bigquery.ExternalTableDefinition$Builder setDecimalTargetTypes(java.util.List) \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index 1d2cfa2939f6..2b68a7ff2262 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -93,6 +93,17 @@ public Builder setFormatOptions(FormatOptions formatOptions) { return setFormatOptionsInner(formatOptions); } + /** + * Defines the list of possible SQL data types to which the source decimal values are converted. + * This list and the precision and the scale parameters of the decimal field determine the + * target type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in + * the specified list and if it supports the precision and the scale. STRING supports all + * precision and scale values. + * + * @param decimalTargetTypes decimalTargetType or {@code null} for none + */ + public abstract Builder setDecimalTargetTypes(List decimalTargetTypes); + abstract Builder setFormatOptionsInner(FormatOptions formatOptions); /** @@ -229,6 +240,9 @@ public F getFormatOptions() { @Nullable abstract FormatOptions getFormatOptionsInner(); + @Nullable + public abstract ImmutableList getDecimalTargetTypes(); + /** * [Experimental] Returns whether automatic detection of schema and format options should be * performed. @@ -283,6 +297,9 @@ com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataC if (getSourceUris() != null) { externalConfigurationPb.setSourceUris(getSourceUris()); } + if (getDecimalTargetTypes() != null) { + externalConfigurationPb.setDecimalTargetTypes(getDecimalTargetTypes()); + } if (getFormatOptions() != null && FormatOptions.CSV.equals(getFormatOptions().getType())) { externalConfigurationPb.setCsvOptions(((CsvOptions) getFormatOptions()).toPb()); } @@ -430,6 +447,10 @@ static ExternalTableDefinition fromPb(Table tablePb) { if (externalDataConfiguration.getSourceUris() != null) { builder.setSourceUris(ImmutableList.copyOf(externalDataConfiguration.getSourceUris())); } + if (externalDataConfiguration.getDecimalTargetTypes() != null) { + builder.setDecimalTargetTypes( + ImmutableList.copyOf(externalDataConfiguration.getDecimalTargetTypes())); + } if (externalDataConfiguration.getSourceFormat() != null) { builder.setFormatOptions(FormatOptions.of(externalDataConfiguration.getSourceFormat())); } @@ -469,6 +490,9 @@ static ExternalTableDefinition fromExternalDataConfiguration( if (externalDataConfiguration.getSourceUris() != null) { builder.setSourceUris(externalDataConfiguration.getSourceUris()); } + if (externalDataConfiguration.getDecimalTargetTypes() != null) { + builder.setDecimalTargetTypes(externalDataConfiguration.getDecimalTargetTypes()); + } if (externalDataConfiguration.getSchema() != null) { builder.setSchema(Schema.fromPb(externalDataConfiguration.getSchema())); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index a317f1285f94..2f625acf547f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -38,6 +38,7 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private final List sourceUris; private final TableId destinationTable; + private final List decimalTargetTypes; private final EncryptionConfiguration destinationEncryptionConfiguration; private final JobInfo.CreateDisposition createDisposition; private final JobInfo.WriteDisposition writeDisposition; @@ -61,6 +62,7 @@ public static final class Builder extends JobConfiguration.Builder sourceUris; private TableId destinationTable; + private List decimalTargetTypes; private EncryptionConfiguration destinationEncryptionConfiguration; private JobInfo.CreateDisposition createDisposition; private JobInfo.WriteDisposition writeDisposition; @@ -87,6 +89,7 @@ private Builder() { private Builder(LoadJobConfiguration loadConfiguration) { this(); this.destinationTable = loadConfiguration.destinationTable; + this.decimalTargetTypes = loadConfiguration.decimalTargetTypes; this.createDisposition = loadConfiguration.createDisposition; this.writeDisposition = loadConfiguration.writeDisposition; this.formatOptions = loadConfiguration.formatOptions; @@ -112,6 +115,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this(); JobConfigurationLoad loadConfigurationPb = configurationPb.getLoad(); this.destinationTable = TableId.fromPb(loadConfigurationPb.getDestinationTable()); + if (loadConfigurationPb.getDecimalTargetTypes() != null) { + this.decimalTargetTypes = ImmutableList.copyOf(loadConfigurationPb.getDecimalTargetTypes()); + } if (loadConfigurationPb.getCreateDisposition() != null) { this.createDisposition = JobInfo.CreateDisposition.valueOf(loadConfigurationPb.getCreateDisposition()); @@ -278,6 +284,20 @@ public Builder setSourceUris(List sourceUris) { return this; } + /** + * Defines the list of possible SQL data types to which the source decimal values are converted. + * This list and the precision and the scale parameters of the decimal field determine the + * target type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in + * the specified list and if it supports the precision and the scale. STRING supports all + * precision and scale values. + * + * @param decimalTargetTypes decimalTargetType or {@code null} for none + */ + public Builder setDecimalTargetTypes(List decimalTargetTypes) { + this.decimalTargetTypes = decimalTargetTypes; + return this; + } + public Builder setAutodetect(Boolean autodetect) { this.autodetect = autodetect; return this; @@ -341,6 +361,7 @@ private LoadJobConfiguration(Builder builder) { super(builder); this.sourceUris = builder.sourceUris; this.destinationTable = builder.destinationTable; + this.decimalTargetTypes = builder.decimalTargetTypes; this.createDisposition = builder.createDisposition; this.writeDisposition = builder.writeDisposition; this.formatOptions = builder.formatOptions; @@ -430,6 +451,10 @@ public List getSourceUris() { return sourceUris; } + public List getDecimalTargetTypes() { + return decimalTargetTypes; + } + public Boolean getAutodetect() { return autodetect; } @@ -482,6 +507,7 @@ public Builder toBuilder() { ToStringHelper toStringHelper() { return super.toStringHelper() .add("destinationTable", destinationTable) + .add("decimalTargetTypes", decimalTargetTypes) .add("destinationEncryptionConfiguration", destinationEncryptionConfiguration) .add("createDisposition", createDisposition) .add("writeDisposition", writeDisposition) @@ -568,6 +594,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (sourceUris != null) { loadConfigurationPb.setSourceUris(ImmutableList.copyOf(sourceUris)); } + if (decimalTargetTypes != null) { + loadConfigurationPb.setDecimalTargetTypes(ImmutableList.copyOf(decimalTargetTypes)); + } if (schemaUpdateOptions != null) { ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); for (JobInfo.SchemaUpdateOption schemaUpdateOption : schemaUpdateOptions) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index 23a095cb65cc..38dcd27142df 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -27,6 +27,8 @@ public class ExternalTableDefinitionTest { private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); + private static final List DECIMAL_TARGET_TYPES = + ImmutableList.of("NUMERIC", "BIGNUMERIC", "STRING"); private static final Field FIELD_SCHEMA1 = Field.newBuilder("StringField", LegacySQLTypeName.STRING) .setMode(Field.Mode.NULLABLE) @@ -56,6 +58,7 @@ public class ExternalTableDefinitionTest { .build(); private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION = ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) + .setDecimalTargetTypes(DECIMAL_TARGET_TYPES) .setCompression(COMPRESSION) .setConnectionId(CONNECTION_ID) .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) @@ -111,6 +114,7 @@ public void testBuilder() { assertEquals(MAX_BAD_RECORDS, EXTERNAL_TABLE_DEFINITION.getMaxBadRecords()); assertEquals(TABLE_SCHEMA, EXTERNAL_TABLE_DEFINITION.getSchema()); assertEquals(SOURCE_URIS, EXTERNAL_TABLE_DEFINITION.getSourceUris()); + assertEquals(DECIMAL_TARGET_TYPES, EXTERNAL_TABLE_DEFINITION.getDecimalTargetTypes()); assertEquals(AUTODETECT, EXTERNAL_TABLE_DEFINITION.getAutodetect()); assertEquals(HIVE_PARTITIONING_OPTIONS, EXTERNAL_TABLE_DEFINITION.getHivePartitioningOptions()); assertNotEquals(EXTERNAL_TABLE_DEFINITION, TableDefinition.Type.EXTERNAL); @@ -130,6 +134,7 @@ public void testToAndFromPb() { private void compareExternalTableDefinition( ExternalTableDefinition expected, ExternalTableDefinition value) { assertEquals(expected, value); + assertEquals(expected.getDecimalTargetTypes(), value.getDecimalTargetTypes()); assertEquals(expected.getCompression(), value.getCompression()); assertEquals(expected.getConnectionId(), value.getConnectionId()); assertEquals(expected.getFormatOptions(), value.getFormatOptions()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index 9f42d62b7285..a2f164f8af52 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -50,6 +50,8 @@ public class LoadJobConfigurationTest { .setDescription("FieldDescription") .build(); private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); + private static final List DECIMAL_TARGET_TYPES = + ImmutableList.of("NUMERIC", "BIGNUMERIC", "STRING"); private static final List SCHEMA_UPDATE_OPTIONS = ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_ADDITION); private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA); @@ -76,6 +78,7 @@ public class LoadJobConfigurationTest { .build(); private static final LoadJobConfiguration LOAD_CONFIGURATION_CSV = LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) + .setDecimalTargetTypes(DECIMAL_TARGET_TYPES) .setCreateDisposition(CREATE_DISPOSITION) .setWriteDisposition(WRITE_DISPOSITION) .setFormatOptions(CSV_OPTIONS) @@ -228,6 +231,7 @@ private void compareLoadJobConfiguration( assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.toString(), value.toString()); assertEquals(expected.getDestinationTable(), value.getDestinationTable()); + assertEquals(expected.getDecimalTargetTypes(), value.getDecimalTargetTypes()); assertEquals(expected.getCreateDisposition(), value.getCreateDisposition()); assertEquals(expected.getWriteDisposition(), value.getWriteDisposition()); assertEquals(expected.getCsvOptions(), value.getCsvOptions()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index eae807bf748f..b151ad22c079 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2747,6 +2747,54 @@ public void testLoadJobWithRangePartitioning() throws InterruptedException { } } + @Test + public void testLoadJobWithDecimalTargetTypes() throws InterruptedException { + String tableName = "test_load_job_table_parquet_decimalTargetTypes"; + TableId destinationTable = TableId.of(DATASET, tableName); + String sourceUri = "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/numeric/numeric_38_12.parquet"; + try { + LoadJobConfiguration configuration = + LoadJobConfiguration.newBuilder(destinationTable, sourceUri, FormatOptions.parquet()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setDecimalTargetTypes(ImmutableList.of("NUMERIC", "BIGNUMERIC", "STRING")) + .build(); + Job job = bigquery.create(JobInfo.of(configuration)); + job = job.waitFor(); + assertNull(job.getStatus().getError()); + LoadJobConfiguration loadJobConfiguration = job.getConfiguration(); + assertEquals( + ImmutableList.of("NUMERIC", "BIGNUMERIC", "STRING"), + loadJobConfiguration.getDecimalTargetTypes()); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertNotNull(remoteTable); + assertEquals( + remoteTable.getDefinition().getSchema().getFields().get(0).getType().toString(), + "BIGNUMERIC"); + } finally { + bigquery.delete(destinationTable); + } + } + + @Test + public void testExternalTableWithDecimalTargetTypes() throws InterruptedException { + String tableName = "test_create_external_table_parquet_decimalTargetTypes"; + TableId destinationTable = TableId.of(DATASET, tableName); + String sourceUri = "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/numeric/numeric_38_12.parquet"; + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.newBuilder(sourceUri, FormatOptions.parquet()) + .setDecimalTargetTypes(ImmutableList.of("NUMERIC", "BIGNUMERIC", "STRING")) + .build(); + TableInfo tableInfo = TableInfo.of(destinationTable, externalTableDefinition); + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertNotNull(remoteTable); + assertEquals( + remoteTable.getDefinition().getSchema().getFields().get(0).getType().toString(), + "BIGNUMERIC"); + assertTrue(remoteTable.delete()); + } + @Test public void testQueryJobWithDryRun() throws InterruptedException, TimeoutException { String tableName = "test_query_job_table"; From 5399d0fe858443d9b4cbca0847122ffaed711b2d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 8 Jun 2021 17:00:06 +0000 Subject: [PATCH 1336/3441] chore: release 1.133.0 (#1361) :robot: I have created a release \*beep\* \*boop\* --- ## [1.133.0](https://www.github.com/googleapis/java-bigquery/compare/v1.132.1...v1.133.0) (2021-06-08) ### Features * add support for DecimalTargetTypes ([#1345](https://www.github.com/googleapis/java-bigquery/issues/1345)) ([ba528df](https://www.github.com/googleapis/java-bigquery/commit/ba528df03def71907e2811cf267718f090605d95)) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.26.1 ([#1360](https://www.github.com/googleapis/java-bigquery/issues/1360)) ([bf55699](https://www.github.com/googleapis/java-bigquery/commit/bf55699d849de7e873577de04e44fbfe0f078ab1)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d028a6fedbe..f04d03d8447a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [1.133.0](https://www.github.com/googleapis/java-bigquery/compare/v1.132.1...v1.133.0) (2021-06-08) + + +### Features + +* add support for DecimalTargetTypes ([#1345](https://www.github.com/googleapis/java-bigquery/issues/1345)) ([ba528df](https://www.github.com/googleapis/java-bigquery/commit/ba528df03def71907e2811cf267718f090605d95)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.26.1 ([#1360](https://www.github.com/googleapis/java-bigquery/issues/1360)) ([bf55699](https://www.github.com/googleapis/java-bigquery/commit/bf55699d849de7e873577de04e44fbfe0f078ab1)) + ### [1.132.1](https://www.github.com/googleapis/java-bigquery/compare/v1.132.0...v1.132.1) (2021-06-07) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 52a24ad252e2..67260984db11 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.132.2-SNAPSHOT + 1.133.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b485b5fba2f0..d7e5074bc421 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.132.2-SNAPSHOT + 1.133.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.132.2-SNAPSHOT + 1.133.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0a95d98a37ca..6422aadc6088 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.132.2-SNAPSHOT + 1.133.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.132.2-SNAPSHOT + 1.133.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 84ebb2b0fe4f..e4b9f94c39af 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.132.2-SNAPSHOT + 1.133.0 diff --git a/versions.txt b/versions.txt index f0291dc5327c..4834b9a2a5a2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.132.1:1.132.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.133.0:1.133.0 \ No newline at end of file From f7eb31988137eef84b4d1a6cccc2daf3c65743b3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 8 Jun 2021 17:12:03 +0000 Subject: [PATCH 1337/3441] chore: release 1.133.1-SNAPSHOT (#1365) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 67260984db11..bd3dead6212e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.133.0 + 1.133.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d7e5074bc421..b031beaf3ea1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.133.0 + 1.133.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.133.0 + 1.133.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 6422aadc6088..48fee4056b4e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.133.0 + 1.133.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.133.0 + 1.133.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e4b9f94c39af..0e345790b62b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.133.0 + 1.133.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4834b9a2a5a2..7813dd812174 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.133.0:1.133.0 \ No newline at end of file +google-cloud-bigquery:1.133.0:1.133.1-SNAPSHOT \ No newline at end of file From ac8e8989fce16ab32bfefda489651a521c699570 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 8 Jun 2021 21:33:16 +0200 Subject: [PATCH 1338/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.133.0 (#1366) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6608f9aa5b22..ce62adf8c06c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.132.1 + 1.133.0 From 16580cb2bd1b50ef1d7fd91fb92719845101222e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 8 Jun 2021 12:46:04 -0700 Subject: [PATCH 1339/3441] chore: regenerate README (#1367) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-08 19:35:39,135 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-08 19:35:40,678 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/5d253c17-a368-49f7-90c2-51ab60246653/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index c316b69a1c92..9c541bc1db1b 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "44c1a5d0083521b260bfa490c91b72051885eb4d" + "sha": "ac8e8989fce16ab32bfefda489651a521c699570" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "8da7927493739fa36130360019ca21258242f73a" + "sha": "2430f8d90ed8a508e8422a3a7191e656d5a6bf53" } } ] diff --git a/README.md b/README.md index a15eb421a78d..0bc040c91d4f 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.132.1 + 1.133.0 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.132.1' +compile 'com.google.cloud:google-cloud-bigquery:1.133.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.132.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.133.0" ``` ## Authentication From dab6e48519928f32ca106fc738083284787e032d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 10 Jun 2021 23:11:42 +0200 Subject: [PATCH 1340/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.1.3 (#1368) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ce62adf8c06c..3e46031f7887 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.2 + 1.1.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0e345790b62b..456f7f2c8bd0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.2 + 1.1.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6682efa6c1d8..9d0ad9dc6af1 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.2 + 1.1.3 test From 68808e9f47c07af598324f3f07dd996bc1e5297b Mon Sep 17 00:00:00 2001 From: Prashant Mishra Date: Tue, 15 Jun 2021 22:11:10 +0530 Subject: [PATCH 1341/3441] fix: handle specific exceptions (#1370) * Extending BaseService to create BIGQUERY_EXCEPTION_HANDLER with retry * Replacing EXCEPTION_HANDLER with BIGQUERY_EXCEPTION_HANDLER with retry logic * Adding retryOn java.net.UnknownHostException * Adding License Information * Reverting to EXCEPTION_HANDLER for create method, using BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER for listDataset * Using BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER for query method * Reverting back to EXCEPTION_HANDLER for create method * Updating to "Copyright 2021" * Fixed formatting * Fixed formatting --- .../cloud/bigquery/BigQueryBaseService.java | 36 +++++++++++++++++++ .../google/cloud/bigquery/BigQueryImpl.java | 5 ++- 2 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java new file mode 100644 index 000000000000..aefb4329b6aa --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java @@ -0,0 +1,36 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import com.google.cloud.BaseService; +import com.google.cloud.ExceptionHandler; +import com.google.cloud.ServiceOptions; + +abstract class BigQueryBaseService> + extends BaseService { + + protected BigQueryBaseService(ServiceOptions options) { + super(options); + } + + public static final ExceptionHandler BIGQUERY_EXCEPTION_HANDLER = + ExceptionHandler.newBuilder() + .abortOn(RuntimeException.class) + .retryOn(java.net.ConnectException.class) // retry on Connection Exception + .retryOn(java.net.UnknownHostException.class) // retry on UnknownHostException + .addInterceptors(EXCEPTION_HANDLER_INTERCEPTOR) + .build(); +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index d402ce549a0e..12eb09c5a6d3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package com.google.cloud.bigquery; import static com.google.cloud.RetryHelper.runWithRetries; @@ -458,7 +457,7 @@ private static Page listDatasets( } }, serviceOptions.getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock()); String cursor = result.x(); return new PageImpl<>( @@ -1256,7 +1255,7 @@ public com.google.api.services.bigquery.model.QueryResponse call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); } catch (RetryHelperException e) { throw BigQueryException.translateAndThrow(e); From d064b7b363508d1a958b92563c5df1d1c429c69d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 16 Jun 2021 02:16:47 +0200 Subject: [PATCH 1342/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.116.0 (#1375) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 48fee4056b4e..e12f13e51662 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.115.0 + 1.116.0 test From 8da5ba9e0f3ffc42f201e328ebf5c4c185cab862 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 16 Jun 2021 14:26:02 +0000 Subject: [PATCH 1343/3441] chore: release 1.133.1 (#1372) :robot: I have created a release \*beep\* \*boop\* --- ### [1.133.1](https://www.github.com/googleapis/java-bigquery/compare/v1.133.0...v1.133.1) (2021-06-16) ### Bug Fixes * handle specific exceptions ([#1370](https://www.github.com/googleapis/java-bigquery/issues/1370)) ([68808e9](https://www.github.com/googleapis/java-bigquery/commit/68808e9f47c07af598324f3f07dd996bc1e5297b)) ### Dependencies * update dependency com.google.cloud:google-cloud-storage to v1.116.0 ([#1375](https://www.github.com/googleapis/java-bigquery/issues/1375)) ([d064b7b](https://www.github.com/googleapis/java-bigquery/commit/d064b7b363508d1a958b92563c5df1d1c429c69d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f04d03d8447a..dc606a11d2e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### [1.133.1](https://www.github.com/googleapis/java-bigquery/compare/v1.133.0...v1.133.1) (2021-06-16) + + +### Bug Fixes + +* handle specific exceptions ([#1370](https://www.github.com/googleapis/java-bigquery/issues/1370)) ([68808e9](https://www.github.com/googleapis/java-bigquery/commit/68808e9f47c07af598324f3f07dd996bc1e5297b)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v1.116.0 ([#1375](https://www.github.com/googleapis/java-bigquery/issues/1375)) ([d064b7b](https://www.github.com/googleapis/java-bigquery/commit/d064b7b363508d1a958b92563c5df1d1c429c69d)) + ## [1.133.0](https://www.github.com/googleapis/java-bigquery/compare/v1.132.1...v1.133.0) (2021-06-08) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index bd3dead6212e..70e1004af54d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.133.1-SNAPSHOT + 1.133.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b031beaf3ea1..8f5940353c59 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.133.1-SNAPSHOT + 1.133.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.133.1-SNAPSHOT + 1.133.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e12f13e51662..3c7079eecf04 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.133.1-SNAPSHOT + 1.133.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.133.1-SNAPSHOT + 1.133.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 456f7f2c8bd0..30110b3c4165 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.133.1-SNAPSHOT + 1.133.1 diff --git a/versions.txt b/versions.txt index 7813dd812174..cbb4bf1b05c7 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.133.0:1.133.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.133.1:1.133.1 \ No newline at end of file From 74d31342fcfcd28cca333e0dacc0c5bb8a3d2190 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 16 Jun 2021 14:36:03 +0000 Subject: [PATCH 1344/3441] chore: release 1.133.2-SNAPSHOT (#1376) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 70e1004af54d..05a82c6f9241 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.133.1 + 1.133.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8f5940353c59..901f2ded09a8 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.133.1 + 1.133.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.133.1 + 1.133.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3c7079eecf04..7cc66d63f70e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.133.1 + 1.133.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.133.1 + 1.133.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 30110b3c4165..9955f4699caa 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.133.1 + 1.133.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index cbb4bf1b05c7..09ad0c956c76 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.133.1:1.133.1 \ No newline at end of file +google-cloud-bigquery:1.133.1:1.133.2-SNAPSHOT \ No newline at end of file From b5a8f5b77694ac291145db926abd4f82a054ef50 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 16 Jun 2021 19:31:20 +0200 Subject: [PATCH 1345/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.133.1 (#1377) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3e46031f7887..03ef39bfc6df 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.133.0 + 1.133.1 From c9c948127fa7a07661809698c18b1850207a3479 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 16 Jun 2021 10:44:02 -0700 Subject: [PATCH 1346/3441] chore: regenerate README (#1378) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-16 17:33:37,842 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-16 17:33:39,194 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/318fa6ad-659a-42b1-95fc-669893c2a0a5/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 9c541bc1db1b..596e11b3cb15 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "ac8e8989fce16ab32bfefda489651a521c699570" + "sha": "b5a8f5b77694ac291145db926abd4f82a054ef50" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "2430f8d90ed8a508e8422a3a7191e656d5a6bf53" + "sha": "8f76a885deaaf2fe234daeba4a8cc4d1b3de8086" } } ] diff --git a/README.md b/README.md index 0bc040c91d4f..ec75117f462b 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.133.0 + 1.133.1 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.133.0' +compile 'com.google.cloud:google-cloud-bigquery:1.133.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.133.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.133.1" ``` ## Authentication From 4a6906aa1e3ac139973823bdf142e5c280f6ab68 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 20 Jun 2021 00:48:43 +0200 Subject: [PATCH 1347/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210529-1.31.5 (#1380) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7cc66d63f70e..5c796283f3d8 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210529-1.31.0 + v2-rev20210529-1.31.5 1.3.0
    From f034a99806613fc6abb5587c56362fe38d60bebc Mon Sep 17 00:00:00 2001 From: Prashant Mishra Date: Sun, 20 Jun 2021 04:19:08 +0530 Subject: [PATCH 1348/3441] fix: bug fix for get method of Bigquery Dataset (#1379) * Adding the projectId used of getting the DataSet as a parameter for the issue: https://github.com/googleapis/java-bigquery/issues/1369 * Adding the projectId used of getting the DataSet as a parameter for the issue: https://github.com/googleapis/java-bigquery/issues/1369 * Added testcase for getTable with projectId. --- .../java/com/google/cloud/bigquery/Dataset.java | 9 ++++++++- .../com/google/cloud/bigquery/DatasetTest.java | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java index 05a7e85662ce..48ccd4314216 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java @@ -23,6 +23,7 @@ import com.google.cloud.bigquery.BigQuery.DatasetOption; import com.google.cloud.bigquery.BigQuery.TableListOption; import com.google.cloud.bigquery.BigQuery.TableOption; +import com.google.common.base.Strings; import java.io.IOException; import java.io.ObjectInputStream; import java.util.List; @@ -275,7 +276,13 @@ public Page

  • list(TableListOption... options) { * @throws BigQueryException upon failure */ public Table get(String tableId, TableOption... options) { - return bigquery.getTable(TableId.of(getDatasetId().getDataset(), tableId), options); + // Adding the projectId used of getting the DataSet as a parameter for the issue: + // https://github.com/googleapis/java-bigquery/issues/1369 + TableId tabId = + Strings.isNullOrEmpty(getDatasetId().getProject()) + ? TableId.of(getDatasetId().getDataset(), tableId) + : TableId.of(getDatasetId().getProject(), getDatasetId().getDataset(), tableId); + return bigquery.getTable(tabId, options); } /** diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java index ae710a9fc99b..d1c97a6940a9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java @@ -77,6 +77,12 @@ public class DatasetTest { TableInfo.newBuilder(TableId.of("dataset", "table2"), VIEW_DEFINITION).build(); private static final TableInfo TABLE_INFO3 = TableInfo.newBuilder(TableId.of("dataset", "table3"), EXTERNAL_TABLE_DEFINITION).build(); + private static final String NEW_PROJECT_ID = "projectId2"; + private static final TableId TABLE_ID1 = TableId.of(NEW_PROJECT_ID, "dataset", "table3"); + private static final TableInfo TABLE_INFO4 = + TableInfo.newBuilder( + TableId.of(NEW_PROJECT_ID, "dataset", "table3"), EXTERNAL_TABLE_DEFINITION) + .build(); @Rule public MockitoRule rule; @@ -255,6 +261,16 @@ public void testGet() { verify(bigquery).getTable(TABLE_INFO1.getTableId()); } + @Test + public void testGetTableWithNewProjectId() { + Table expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO4)); + when(bigquery.getTable(TABLE_ID1, null)).thenReturn(expectedTable); + Table table = bigquery.getTable(TABLE_ID1, null); + assertNotNull(table); + assertEquals(table.getTableId().getProject(), NEW_PROJECT_ID); + verify(bigquery).getTable(TABLE_ID1, null); + } + @Test public void testGetNull() { when(bigquery.getTable(TABLE_INFO1.getTableId())).thenReturn(null); From 4059a8b778e86fca3a39a153f4368531ef89936c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sat, 19 Jun 2021 15:59:53 -0700 Subject: [PATCH 1349/3441] chore: minimize noise from build scripts (#1381) This should limit the amount of scrolling client devs have to do when debugging a test failure Co-authored-by: Elliotte Rusty Harold Co-authored-by: Neenu Shaji Source-Author: Igor Bernstein Source-Date: Fri Jun 18 17:28:07 2021 -0400 Source-Repo: googleapis/synthtool Source-Sha: 1c0c698705e668ccb3d68556ae7260f16ce63a6e Source-Link: https://github.com/googleapis/synthtool/commit/1c0c698705e668ccb3d68556ae7260f16ce63a6e --- .kokoro/coerce_logs.sh | 1 - synth.metadata | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.kokoro/coerce_logs.sh b/.kokoro/coerce_logs.sh index 5cf7ba49e6bb..46edbf7f2fcd 100755 --- a/.kokoro/coerce_logs.sh +++ b/.kokoro/coerce_logs.sh @@ -28,7 +28,6 @@ job=$(basename ${KOKORO_JOB_NAME}) echo "coercing sponge logs..." for xml in `find . -name *-sponge_log.xml` do - echo "processing ${xml}" class=$(basename ${xml} | cut -d- -f2) dir=$(dirname ${xml})/${job}/${class} text=$(dirname ${xml})/${class}-sponge_log.txt diff --git a/synth.metadata b/synth.metadata index c36d006ae162..c7077792b612 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "f7be534a5a7fb79232bcd3d082365033262f6dcb" + "sha": "c9c948127fa7a07661809698c18b1850207a3479" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "8eae0234a16b26c2ff616d305dbd9786c8b10a47" + "sha": "1c0c698705e668ccb3d68556ae7260f16ce63a6e" } } ], @@ -80,6 +80,7 @@ "CODE_OF_CONDUCT.md", "CONTRIBUTING.md", "LICENSE", + "SECURITY.md", "java.header", "license-checks.xml", "samples/install-without-bom/pom.xml", From b09f951d9debe783c5f67c3e9479fb640722a8bd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 21 Jun 2021 23:42:24 +0200 Subject: [PATCH 1350/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210611-1.31.5 (#1383) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5c796283f3d8..e876968fa78b 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210529-1.31.5 + v2-rev20210611-1.31.5 1.3.0 From 6c4d886a3875eaed5d7c10b82f6c064c1995b6ca Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 22 Jun 2021 23:40:07 +0200 Subject: [PATCH 1351/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.27.0 (#1384) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 03ef39bfc6df..453ad5484264 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.26.1 + 1.27.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9955f4699caa..d4f9961db1a6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.26.1 + 1.27.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9d0ad9dc6af1..ef77627836ae 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.26.1 + 1.27.0 test From d7bb8300f66edf6900c0ab27d046b0fb753a2222 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 23 Jun 2021 17:32:28 +0200 Subject: [PATCH 1352/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v20.7.0 (#1385) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ef77627836ae..23f3117c5e71 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 20.6.0 + 20.7.0 pom import From 9a552eb94684fd6b8b11013790f17bf13cdc50d7 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 23 Jun 2021 08:46:30 -0700 Subject: [PATCH 1353/3441] chore: regenerate README (#1386) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-23 15:34:43,339 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-23 15:34:44,704 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/2bc88ac7-ef0e-481f-8300-def1cd51d674/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 596e11b3cb15..aa07f22ba298 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b5a8f5b77694ac291145db926abd4f82a054ef50" + "sha": "d7bb8300f66edf6900c0ab27d046b0fb753a2222" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "8f76a885deaaf2fe234daeba4a8cc4d1b3de8086" + "sha": "9763f20e4b7bb1091082462b2f7970e965d0d414" } } ] diff --git a/README.md b/README.md index ec75117f462b..a6b3bd6218e8 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 20.6.0 + 20.7.0 pom import @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:20.6.0') +implementation platform('com.google.cloud:libraries-bom:20.7.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From ac854c42fa4339f688c03d121e25df6030eabd3f Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 24 Jun 2021 13:06:13 -0400 Subject: [PATCH 1354/3441] docs(sample): update UpdateTableExpiration sample (#1389) Fixes #1371 --- .../main/java/com/example/bigquery/UpdateTableExpiration.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java index e66353741e30..a0a1ebd77066 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java @@ -30,7 +30,8 @@ public static void main(String[] args) { String datasetName = "MY_DATASET_NAME"; String tableName = "MY_TABLE_NAME"; // Update table expiration to one day. - Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); + Long newExpiration = + TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS) + System.currentTimeMillis(); updateTableExpiration(datasetName, tableName, newExpiration); } From 95f1a6c2e3281d61d38660749cf31fa504ddf8e0 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 24 Jun 2021 17:48:15 -0400 Subject: [PATCH 1355/3441] feat: add support for jobs.delete (#1387) * feat: add support for jobs.delete * update IT * lint * updates --- .../clirr-ignored-differences.xml | 12 +++++----- .../com/google/cloud/bigquery/BigQuery.java | 8 +++++++ .../google/cloud/bigquery/BigQueryImpl.java | 24 +++++++++++++++++++ .../cloud/bigquery/spi/v2/BigQueryRpc.java | 8 +++++++ .../bigquery/spi/v2/HttpBigQueryRpc.java | 15 ++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 14 +++++++++++ 6 files changed, 75 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 2801782f4d91..4d66f0620ea5 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -3,13 +3,13 @@ - 7013 - com/google/cloud/bigquery/ExternalTableDefinition - com.google.common.collect.ImmutableList getDecimalTargetTypes() + 7012 + com/google/cloud/bigquery/BigQuery + boolean delete(com.google.cloud.bigquery.JobId) - 7013 - com/google/cloud/bigquery/ExternalTableDefinition$Builder - com.google.cloud.bigquery.ExternalTableDefinition$Builder setDecimalTargetTypes(java.util.List) + 7012 + com/google/cloud/bigquery/spi/v2/BigQueryRpc + boolean deleteJob(java.lang.String, java.lang.String, java.lang.String) \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 70a29fd9ff64..4e88f000f5fb 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -982,6 +982,14 @@ public int hashCode() { */ boolean delete(RoutineId routineId); + /** + * Deletes the requested job. + * + * @return {@code true} if job was deleted, {@code false} if it was not found + * @throws BigQueryException upon failure + */ + boolean delete(JobId jobId); + /** * Updates dataset information. * diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 12eb09c5a6d3..4086c6a7356c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -585,6 +585,30 @@ public Boolean call() { } } + @Override + public boolean delete(JobId jobId) { + final JobId completeJobId = + jobId.setProjectId( + Strings.isNullOrEmpty(jobId.getProject()) + ? getOptions().getProjectId() + : jobId.getProject()); + try { + return runWithRetries( + new Callable() { + @Override + public Boolean call() { + return bigQueryRpc.deleteJob( + completeJobId.getProject(), completeJobId.getJob(), completeJobId.getLocation()); + } + }, + getOptions().getRetrySettings(), + EXCEPTION_HANDLER, + getOptions().getClock()); + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + @Override public Dataset update(DatasetInfo datasetInfo, DatasetOption... options) { final com.google.api.services.bigquery.model.Dataset datasetPb = diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index c9b0f0a21de7..06488c5b4fac 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -270,6 +270,14 @@ TableDataList listTableData( */ boolean cancel(String projectId, String jobId, String location); + /** + * Sends a job delete request. + * + * @return {@code true} if delete was successful, {@code false} if the job was not found + * @throws BigQueryException upon failure + */ + boolean deleteJob(String projectId, String jobName, String location); + /** * Returns results of the query associated with the provided job. * diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 4d9558454df8..24d7dd6b0b6e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -607,6 +607,21 @@ public boolean cancel(String projectId, String jobId, String location) { } } + @Override + public boolean deleteJob(String projectId, String jobName, String location) { + try { + bigquery + .jobs() + .delete(projectId, jobName) + .setLocation(location) + .setPrettyPrint(false) + .execute(); + return true; + } catch (IOException ex) { + throw translate(ex); + } + } + @Override public GetQueryResultsResponse getQueryResults( String projectId, String jobId, String location, Map options) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b151ad22c079..e072cf0f7d2a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1243,6 +1243,20 @@ public void testDeleteNonExistingTable() { assertFalse(bigquery.delete("test_delete_non_existing_table")); } + @Test + public void testDeleteJob() { + String query = "SELECT 17 as foo"; + QueryJobConfiguration config = QueryJobConfiguration.of(query); + String jobName = "jobId_" + UUID.randomUUID().toString(); + JobId jobId = + JobId.newBuilder().setLocation("us-east1").setJob(jobName).setProject(PROJECT_ID).build(); + Job createdJob = bigquery.create(JobInfo.of(jobId, config)); + Job remoteJob = bigquery.getJob(createdJob.getJobId()); + assertEquals(createdJob.getJobId(), remoteJob.getJobId()); + assertTrue(bigquery.delete(jobId)); + assertNull(bigquery.getJob(jobId)); + } + @Test public void testInsertAll() throws IOException { String tableName = "test_insert_all_table"; From b1fb57c0b43f4bdc9e32b821b32e95bb1ca8df3b Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 24 Jun 2021 20:36:30 -0400 Subject: [PATCH 1356/3441] feat: add support for parameterized type (#1390) Fixes #1309 --- .../java/com/google/cloud/bigquery/Field.java | 88 +++++++++++++++++++ .../com/google/cloud/bigquery/SchemaTest.java | 3 + .../cloud/bigquery/it/ITBigQueryTest.java | 45 ++++++++++ 3 files changed, 136 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index 1213bc4e8bc0..20c5acd3fabb 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -59,6 +59,9 @@ public TableFieldSchema apply(Field field) { private final String mode; private final String description; private final PolicyTags policyTags; + private final Long maxLength; + private final Long scale; + private final Long precision; /** * Mode for a BigQuery Table field. {@link Mode#NULLABLE} fields can be set to {@code null}, @@ -79,6 +82,9 @@ public static final class Builder { private String mode; private String description; private PolicyTags policyTags; + private Long maxLength; + private Long scale; + private Long precision; private Builder() {} @@ -89,6 +95,9 @@ private Builder(Field field) { this.mode = field.mode; this.description = field.description; this.policyTags = field.policyTags; + this.maxLength = field.maxLength; + this.scale = field.scale; + this.precision = field.precision; } /** @@ -199,6 +208,43 @@ public Builder setPolicyTags(PolicyTags policyTags) { return this; } + /** + * Sets the maximum length of the field for STRING or BYTES type. + * + *

    It is invalid to set value for types other than STRING or BYTES. + * + *

    For STRING type, this represents the maximum UTF-8 length of strings allowed in the field. + * For BYTES type, this represents the maximum number of bytes in the field. + */ + public Builder setMaxLength(Long maxLength) { + this.maxLength = maxLength; + return this; + } + + /** + * Scale can be used to constrain the maximum number of digits in the fractional part of a + * NUMERIC or BIGNUMERIC type. If the Scale value is set, the Precision value must be set as + * well. It is invalid to set values for Scale for types other than NUMERIC or BIGNUMERIC. See + * the Precision field for additional guidance about valid values. + */ + public Builder setScale(Long scale) { + this.scale = scale; + return this; + } + + /** + * Precision can be used to constrain the maximum number of total digits allowed for NUMERIC or + * BIGNUMERIC types. It is invalid to set values for Precision for types other than // NUMERIC + * or BIGNUMERIC. For NUMERIC type, acceptable values for Precision must be: 1 ≤ (Precision - + * Scale) ≤ 29. Values for Scale must be: 0 ≤ Scale ≤ 9. For BIGNUMERIC type, acceptable values + * for Precision must be: 1 ≤ (Precision - Scale) ≤ 38. Values for Scale must be: 0 ≤ Scale ≤ + * 38. + */ + public Builder setPrecision(Long precision) { + this.precision = precision; + return this; + } + /** Creates a {@code Field} object. */ public Field build() { return new Field(this); @@ -212,6 +258,9 @@ private Field(Builder builder) { this.mode = builder.mode; this.description = builder.description; this.policyTags = builder.policyTags; + this.maxLength = builder.maxLength; + this.scale = builder.scale; + this.precision = builder.precision; } /** Returns the field name. */ @@ -244,6 +293,24 @@ public PolicyTags getPolicyTags() { return policyTags; } + /** Returns the maximum length of the field for STRING or BYTES type. */ + public Long getMaxLength() { + return maxLength; + } + + /** + * Returns the maximum number of digits set in the fractional part of a NUMERIC or BIGNUMERIC + * type. + */ + public Long getScale() { + return scale; + } + + /** Returns the maximum number of total digits allowed for NUMERIC or BIGNUMERIC types. */ + public Long getPrecision() { + return precision; + } + /** * Returns the list of sub-fields if {@link #getType()} is a {@link LegacySQLTypeName#RECORD}. * Returns {@code null} otherwise. @@ -265,6 +332,9 @@ public String toString() { .add("mode", mode) .add("description", description) .add("policyTags", policyTags) + .add("maxLength", maxLength) + .add("scale", scale) + .add("precision", precision) .toString(); } @@ -335,6 +405,15 @@ TableFieldSchema toPb() { if (policyTags != null) { fieldSchemaPb.setPolicyTags(policyTags.toPb()); } + if (maxLength != null) { + fieldSchemaPb.setMaxLength(maxLength); + } + if (scale != null) { + fieldSchemaPb.setScale(scale); + } + if (precision != null) { + fieldSchemaPb.setPrecision(precision); + } if (getSubFields() != null) { List fieldsPb = Lists.transform(getSubFields(), TO_PB_FUNCTION); fieldSchemaPb.setFields(fieldsPb); @@ -354,6 +433,15 @@ static Field fromPb(TableFieldSchema fieldSchemaPb) { if (fieldSchemaPb.getPolicyTags() != null) { fieldBuilder.setPolicyTags(PolicyTags.fromPb(fieldSchemaPb.getPolicyTags())); } + if (fieldSchemaPb.getMaxLength() != null) { + fieldBuilder.setMaxLength(fieldSchemaPb.getMaxLength()); + } + if (fieldSchemaPb.getScale() != null) { + fieldBuilder.setScale(fieldSchemaPb.getScale()); + } + if (fieldSchemaPb.getPrecision() != null) { + fieldBuilder.setPrecision(fieldSchemaPb.getPrecision()); + } FieldList subFields = fieldSchemaPb.getFields() != null ? FieldList.of(Lists.transform(fieldSchemaPb.getFields(), FROM_PB_FUNCTION)) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java index 63c6752d733c..7f53680e627b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java @@ -32,6 +32,9 @@ public class SchemaTest { Field.newBuilder("StringField", LegacySQLTypeName.STRING) .setMode(Field.Mode.NULLABLE) .setDescription("FieldDescription1") + .setPrecision(20L) + .setScale(20L) + .setMaxLength(10L) .build(); private static final Field FIELD_SCHEMA2 = Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index e072cf0f7d2a..4d7b30bef6bf 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -90,6 +90,7 @@ import com.google.cloud.bigquery.StandardSQLDataType; import com.google.cloud.bigquery.StandardSQLField; import com.google.cloud.bigquery.StandardSQLTableType; +import com.google.cloud.bigquery.StandardSQLTypeName; import com.google.cloud.bigquery.StandardTableDefinition; import com.google.cloud.bigquery.Table; import com.google.cloud.bigquery.TableDataWriteChannel; @@ -703,6 +704,50 @@ public void testCreateTableWithRangePartitioning() { } } + @Test + public void testCreateTableWithConstraints() { + String tableName = "test_create_table_with_constraints"; + TableId tableId = TableId.of(DATASET, tableName); + Field stringFieldWithConstraint = + Field.newBuilder("stringFieldWithConstraint", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("field has a constraint") + .setMaxLength(10L) + .build(); + Field byteFieldWithConstraint = + Field.newBuilder("byteFieldWithConstraint", StandardSQLTypeName.BYTES) + .setMode(Field.Mode.NULLABLE) + .setDescription("field has a constraint") + .setMaxLength(150L) + .build(); + Field numericFieldWithConstraint = + Field.newBuilder("numericFieldWithConstraint", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("field has a constraint") + .setPrecision(20L) + .build(); + Field bigNumericFieldWithConstraint = + Field.newBuilder("bigNumericFieldWithConstraint", StandardSQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("field has a constraint") + .setPrecision(30L) + .setScale(5L) + .build(); + Schema schema = + Schema.of( + stringFieldWithConstraint, + byteFieldWithConstraint, + numericFieldWithConstraint, + bigNumericFieldWithConstraint); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder().setSchema(schema).build(); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertEquals(schema, remoteTable.getDefinition().getSchema()); + bigquery.delete(tableId); + } + @Test public void testCreateAndUpdateTableWithPolicyTags() throws IOException { // Set up policy tags in the datacatalog service From 51efc8308817fe4300188d149625af067b1707ba Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 25 Jun 2021 01:14:23 +0000 Subject: [PATCH 1357/3441] chore: release 1.134.0 (#1382) :robot: I have created a release \*beep\* \*boop\* --- ## [1.134.0](https://www.github.com/googleapis/java-bigquery/compare/v1.133.1...v1.134.0) (2021-06-25) ### Features * add support for jobs.delete ([#1387](https://www.github.com/googleapis/java-bigquery/issues/1387)) ([95f1a6c](https://www.github.com/googleapis/java-bigquery/commit/95f1a6c2e3281d61d38660749cf31fa504ddf8e0)) * add support for parameterized type ([#1390](https://www.github.com/googleapis/java-bigquery/issues/1390)) ([b1fb57c](https://www.github.com/googleapis/java-bigquery/commit/b1fb57c0b43f4bdc9e32b821b32e95bb1ca8df3b)), closes [#1309](https://www.github.com/googleapis/java-bigquery/issues/1309) ### Bug Fixes * bug fix for get method of Bigquery Dataset ([#1379](https://www.github.com/googleapis/java-bigquery/issues/1379)) ([f034a99](https://www.github.com/googleapis/java-bigquery/commit/f034a99806613fc6abb5587c56362fe38d60bebc)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210529-1.31.5 ([#1380](https://www.github.com/googleapis/java-bigquery/issues/1380)) ([4a6906a](https://www.github.com/googleapis/java-bigquery/commit/4a6906aa1e3ac139973823bdf142e5c280f6ab68)) * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210611-1.31.5 ([#1383](https://www.github.com/googleapis/java-bigquery/issues/1383)) ([b09f951](https://www.github.com/googleapis/java-bigquery/commit/b09f951d9debe783c5f67c3e9479fb640722a8bd)) * update dependency com.google.cloud:google-cloud-bigtable to v1.27.0 ([#1384](https://www.github.com/googleapis/java-bigquery/issues/1384)) ([6c4d886](https://www.github.com/googleapis/java-bigquery/commit/6c4d886a3875eaed5d7c10b82f6c064c1995b6ca)) ### Documentation * **sample:** update UpdateTableExpiration sample ([#1389](https://www.github.com/googleapis/java-bigquery/issues/1389)) ([ac854c4](https://www.github.com/googleapis/java-bigquery/commit/ac854c42fa4339f688c03d121e25df6030eabd3f)), closes [#1371](https://www.github.com/googleapis/java-bigquery/issues/1371) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 25 +++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 32 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc606a11d2e2..158be91a9726 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,30 @@ # Changelog +## [1.134.0](https://www.github.com/googleapis/java-bigquery/compare/v1.133.1...v1.134.0) (2021-06-25) + + +### Features + +* add support for jobs.delete ([#1387](https://www.github.com/googleapis/java-bigquery/issues/1387)) ([95f1a6c](https://www.github.com/googleapis/java-bigquery/commit/95f1a6c2e3281d61d38660749cf31fa504ddf8e0)) +* add support for parameterized type ([#1390](https://www.github.com/googleapis/java-bigquery/issues/1390)) ([b1fb57c](https://www.github.com/googleapis/java-bigquery/commit/b1fb57c0b43f4bdc9e32b821b32e95bb1ca8df3b)), closes [#1309](https://www.github.com/googleapis/java-bigquery/issues/1309) + + +### Bug Fixes + +* bug fix for get method of Bigquery Dataset ([#1379](https://www.github.com/googleapis/java-bigquery/issues/1379)) ([f034a99](https://www.github.com/googleapis/java-bigquery/commit/f034a99806613fc6abb5587c56362fe38d60bebc)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210529-1.31.5 ([#1380](https://www.github.com/googleapis/java-bigquery/issues/1380)) ([4a6906a](https://www.github.com/googleapis/java-bigquery/commit/4a6906aa1e3ac139973823bdf142e5c280f6ab68)) +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210611-1.31.5 ([#1383](https://www.github.com/googleapis/java-bigquery/issues/1383)) ([b09f951](https://www.github.com/googleapis/java-bigquery/commit/b09f951d9debe783c5f67c3e9479fb640722a8bd)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.27.0 ([#1384](https://www.github.com/googleapis/java-bigquery/issues/1384)) ([6c4d886](https://www.github.com/googleapis/java-bigquery/commit/6c4d886a3875eaed5d7c10b82f6c064c1995b6ca)) + + +### Documentation + +* **sample:** update UpdateTableExpiration sample ([#1389](https://www.github.com/googleapis/java-bigquery/issues/1389)) ([ac854c4](https://www.github.com/googleapis/java-bigquery/commit/ac854c42fa4339f688c03d121e25df6030eabd3f)), closes [#1371](https://www.github.com/googleapis/java-bigquery/issues/1371) + ### [1.133.1](https://www.github.com/googleapis/java-bigquery/compare/v1.133.0...v1.133.1) (2021-06-16) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 05a82c6f9241..b1825df0a377 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.133.2-SNAPSHOT + 1.134.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 901f2ded09a8..f15ba62daf1c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.133.2-SNAPSHOT + 1.134.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.133.2-SNAPSHOT + 1.134.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e876968fa78b..76495928e33c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.133.2-SNAPSHOT + 1.134.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.133.2-SNAPSHOT + 1.134.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d4f9961db1a6..23fe7e6ca238 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.133.2-SNAPSHOT + 1.134.0 diff --git a/versions.txt b/versions.txt index 09ad0c956c76..b3f320e2a057 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.133.1:1.133.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.134.0:1.134.0 \ No newline at end of file From e30a3b0ebd683a4b332307e288d27c84abb3f5c2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 25 Jun 2021 01:26:10 +0000 Subject: [PATCH 1358/3441] chore: release 1.134.1-SNAPSHOT (#1391) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b1825df0a377..db93ba62b348 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.134.0 + 1.134.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f15ba62daf1c..328cbbf0cac7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.134.0 + 1.134.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.134.0 + 1.134.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 76495928e33c..f4c32ecbaaf4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.134.0 + 1.134.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.134.0 + 1.134.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 23fe7e6ca238..ae9dd541ce0d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.134.0 + 1.134.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index b3f320e2a057..8fac321f3480 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.134.0:1.134.0 \ No newline at end of file +google-cloud-bigquery:1.134.0:1.134.1-SNAPSHOT \ No newline at end of file From 05662f3d96ee26d74b8524f1b84e0bd1ec5d0716 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 25 Jun 2021 13:21:01 +0200 Subject: [PATCH 1359/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.134.0 (#1392) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 453ad5484264..d209b43758f8 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.133.1 + 1.134.0 From fda1e5a973d930772c432a4b9f8c0be9549dec6e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 25 Jun 2021 09:36:13 -0700 Subject: [PATCH 1360/3441] chore: regenerate README (#1393) This PR was generated using Autosynth. :rainbow:

    Log from Synthtool ``` 2021-06-25 11:23:24,857 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-25 11:23:26,201 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/15600613-ef07-4a28-9a19-6ebcd335a026/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index aa07f22ba298..0cffa91738ad 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "d7bb8300f66edf6900c0ab27d046b0fb753a2222" + "sha": "05662f3d96ee26d74b8524f1b84e0bd1ec5d0716" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "9763f20e4b7bb1091082462b2f7970e965d0d414" + "sha": "e934b93402284f834b510ebbf421864e881dce02" } } ] diff --git a/README.md b/README.md index a6b3bd6218e8..9fc98244be9a 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.133.1 + 1.134.0 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.133.1' +compile 'com.google.cloud:google-cloud-bigquery:1.134.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.133.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.134.0" ``` ## Authentication From 580ac64e98167db7a57ca7e196e792a48822dce1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 28 Jun 2021 19:20:02 +0200 Subject: [PATCH 1361/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210617-1.31.5 (#1394) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f4c32ecbaaf4..61e785d178a6 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210611-1.31.5 + v2-rev20210617-1.31.5 1.3.0 From 9bd442addfd44ba29ada37d7747d2661ce27dd41 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 28 Jun 2021 17:30:25 +0000 Subject: [PATCH 1362/3441] chore: release 1.134.1 (#1395) :robot: I have created a release \*beep\* \*boop\* --- ### [1.134.1](https://www.github.com/googleapis/java-bigquery/compare/v1.134.0...v1.134.1) (2021-06-28) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210617-1.31.5 ([#1394](https://www.github.com/googleapis/java-bigquery/issues/1394)) ([580ac64](https://www.github.com/googleapis/java-bigquery/commit/580ac64e98167db7a57ca7e196e792a48822dce1)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 158be91a9726..ee5dee8cca94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.134.1](https://www.github.com/googleapis/java-bigquery/compare/v1.134.0...v1.134.1) (2021-06-28) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210617-1.31.5 ([#1394](https://www.github.com/googleapis/java-bigquery/issues/1394)) ([580ac64](https://www.github.com/googleapis/java-bigquery/commit/580ac64e98167db7a57ca7e196e792a48822dce1)) + ## [1.134.0](https://www.github.com/googleapis/java-bigquery/compare/v1.133.1...v1.134.0) (2021-06-25) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index db93ba62b348..17d47a34429f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.134.1-SNAPSHOT + 1.134.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 328cbbf0cac7..32cfda8d60e9 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.134.1-SNAPSHOT + 1.134.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.134.1-SNAPSHOT + 1.134.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 61e785d178a6..5e4f80d520f7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.134.1-SNAPSHOT + 1.134.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.134.1-SNAPSHOT + 1.134.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ae9dd541ce0d..1ce02d6a74e1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.134.1-SNAPSHOT + 1.134.1 diff --git a/versions.txt b/versions.txt index 8fac321f3480..a3bbd974dc70 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.134.0:1.134.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.134.1:1.134.1 \ No newline at end of file From d783292f4bd2d971235d8afa6318976856529cb5 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 28 Jun 2021 14:53:45 -0400 Subject: [PATCH 1363/3441] feat: add support for table snapshot (#1320) * feat: add table snapshot support Allows users to generate a persistent copy of an existing table as it were at a given point in time within the same project. * feat: add support for table snapshot * add comment on operationType * lint update and remove extraneous update table snapshot IT * add cleanup for restoredTable * update base on comments * update based on comments --- .../cloud/bigquery/CopyJobConfiguration.java | 30 ++++- .../bigquery/SnapshotTableDefinition.java | 112 ++++++++++++++++++ .../cloud/bigquery/TableDefinition.java | 4 + .../bigquery/CopyJobConfigurationTest.java | 3 +- .../bigquery/SnapshotTableDefinitionTest.java | 72 +++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 84 +++++++++++++ 6 files changed, 301 insertions(+), 4 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SnapshotTableDefinition.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SnapshotTableDefinitionTest.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java index d0e15e49eed2..0b11bf7bea55 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java @@ -38,6 +38,7 @@ public final class CopyJobConfiguration extends JobConfiguration { private final List sourceTables; private final TableId destinationTable; + private final String operationType; private final JobInfo.CreateDisposition createDisposition; private final JobInfo.WriteDisposition writeDisposition; private final EncryptionConfiguration destinationEncryptionConfiguration; @@ -49,6 +50,7 @@ public static final class Builder private List sourceTables; private TableId destinationTable; + private String operationType; private JobInfo.CreateDisposition createDisposition; private JobInfo.WriteDisposition writeDisposition; private EncryptionConfiguration destinationEncryptionConfiguration; @@ -63,6 +65,7 @@ private Builder(CopyJobConfiguration jobConfiguration) { this(); this.sourceTables = jobConfiguration.sourceTables; this.destinationTable = jobConfiguration.destinationTable; + this.operationType = jobConfiguration.operationType; this.createDisposition = jobConfiguration.createDisposition; this.writeDisposition = jobConfiguration.writeDisposition; this.destinationEncryptionConfiguration = jobConfiguration.destinationEncryptionConfiguration; @@ -74,6 +77,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this(); JobConfigurationTableCopy copyConfigurationPb = configurationPb.getCopy(); this.destinationTable = TableId.fromPb(copyConfigurationPb.getDestinationTable()); + if (copyConfigurationPb.getOperationType() != null) { + this.operationType = copyConfigurationPb.getOperationType(); + } if (copyConfigurationPb.getSourceTables() != null) { this.sourceTables = Lists.transform(copyConfigurationPb.getSourceTables(), TableId.FROM_PB_FUNCTION); @@ -114,6 +120,15 @@ public Builder setDestinationTable(TableId destinationTable) { return this; } + /** + * Sets the supported operation types (COPY, SNAPSHOT or RESTORE) in table copy job. More info: + * https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#operationtype + */ + public Builder setOperationType(String operationType) { + this.operationType = operationType; + return this; + } + public Builder setDestinationEncryptionConfiguration( EncryptionConfiguration encryptionConfiguration) { this.destinationEncryptionConfiguration = encryptionConfiguration; @@ -178,6 +193,7 @@ private CopyJobConfiguration(Builder builder) { super(builder); this.sourceTables = checkNotNull(builder.sourceTables); this.destinationTable = checkNotNull(builder.destinationTable); + this.operationType = builder.operationType; this.createDisposition = builder.createDisposition; this.writeDisposition = builder.writeDisposition; this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; @@ -195,6 +211,11 @@ public TableId getDestinationTable() { return destinationTable; } + /** Returns the table copy job type */ + public String getOperationType() { + return operationType; + } + public EncryptionConfiguration getDestinationEncryptionConfiguration() { return destinationEncryptionConfiguration; } @@ -241,6 +262,7 @@ ToStringHelper toStringHelper() { return super.toStringHelper() .add("sourceTables", sourceTables) .add("destinationTable", destinationTable) + .add("operationType", operationType) .add("destinationEncryptionConfiguration", destinationEncryptionConfiguration) .add("createDisposition", createDisposition) .add("writeDisposition", writeDisposition) @@ -260,6 +282,7 @@ public int hashCode() { baseHashCode(), sourceTables, destinationTable, + operationType, createDisposition, writeDisposition, labels, @@ -293,11 +316,12 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { com.google.api.services.bigquery.model.JobConfiguration jobConfiguration = new com.google.api.services.bigquery.model.JobConfiguration(); configurationPb.setDestinationTable(destinationTable.toPb()); - if (sourceTables.size() == 1) { - configurationPb.setSourceTable(sourceTables.get(0).toPb()); - } else { + if (sourceTables != null) { configurationPb.setSourceTables(Lists.transform(sourceTables, TableId.TO_PB_FUNCTION)); } + if (operationType != null) { + configurationPb.setOperationType(operationType); + } if (createDisposition != null) { configurationPb.setCreateDisposition(createDisposition.toString()); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SnapshotTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SnapshotTableDefinition.java new file mode 100644 index 000000000000..ad0aeb0ce583 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SnapshotTableDefinition.java @@ -0,0 +1,112 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.client.util.DateTime; +import com.google.api.core.BetaApi; +import com.google.api.services.bigquery.model.Table; +import com.google.auto.value.AutoValue; +import com.google.common.annotations.VisibleForTesting; +import javax.annotation.Nullable; + +@AutoValue +@BetaApi +public abstract class SnapshotTableDefinition extends TableDefinition { + + private static final long serialVersionUID = 2113445776046717526L; + + @AutoValue.Builder + public abstract static class Builder + extends TableDefinition.Builder { + + /** Reference describing the ID of the table that was snapshot. * */ + public abstract Builder setBaseTableId(TableId baseTableId); + + /** + * The time at which the base table was snapshot. This value is reported in the JSON response + * using RFC3339 format. * + */ + public abstract Builder setSnapshotTime(String dateTime); + + public abstract Builder setTimePartitioning(TimePartitioning timePartitioning); + + public abstract Builder setRangePartitioning(RangePartitioning rangePartitioning); + + public abstract Builder setClustering(Clustering clustering); + + /** Creates a {@code SnapshotTableDefinition} object. */ + public abstract SnapshotTableDefinition build(); + } + + @Nullable + public abstract TableId getBaseTableId(); + + @Nullable + public abstract String getSnapshotTime(); + + @Nullable + public abstract TimePartitioning getTimePartitioning(); + + @Nullable + public abstract RangePartitioning getRangePartitioning(); + + @Nullable + public abstract Clustering getClustering(); + + /** Returns a builder for a snapshot table definition. */ + public static SnapshotTableDefinition.Builder newBuilder() { + return new AutoValue_SnapshotTableDefinition.Builder().setType(Type.SNAPSHOT); + } + + @VisibleForTesting + public abstract SnapshotTableDefinition.Builder toBuilder(); + + @Override + Table toPb() { + Table tablePb = super.toPb(); + com.google.api.services.bigquery.model.SnapshotDefinition snapshotDefinition = + new com.google.api.services.bigquery.model.SnapshotDefinition(); + snapshotDefinition.setBaseTableReference(getBaseTableId().toPb()); + snapshotDefinition.setSnapshotTime(DateTime.parseRfc3339(getSnapshotTime())); + tablePb.setSnapshotDefinition(snapshotDefinition); + if (getTimePartitioning() != null) { + tablePb.setTimePartitioning(getTimePartitioning().toPb()); + } + if (getRangePartitioning() != null) { + tablePb.setRangePartitioning(getRangePartitioning().toPb()); + } + if (getClustering() != null) { + tablePb.setClustering(getClustering().toPb()); + } + return tablePb; + } + + static SnapshotTableDefinition fromPb(Table tablePb) { + Builder builder = newBuilder().table(tablePb); + com.google.api.services.bigquery.model.SnapshotDefinition snapshotDefinition = + tablePb.getSnapshotDefinition(); + if (snapshotDefinition != null) { + if (snapshotDefinition.getBaseTableReference() != null) { + builder.setBaseTableId(TableId.fromPb(snapshotDefinition.getBaseTableReference())); + } + if (snapshotDefinition.getSnapshotTime() != null) { + builder.setSnapshotTime(snapshotDefinition.getSnapshotTime().toStringRfc3339()); + } + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java index 6babd4e6f4e2..1fa902498795 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java @@ -83,6 +83,8 @@ public Type apply(String constant) { */ public static final Type MODEL = type.createAndRegister("MODEL"); + public static final Type SNAPSHOT = type.createAndRegister("SNAPSHOT"); + private Type(String constant) { super(constant); } @@ -165,6 +167,8 @@ static T fromPb(Table tablePb) { return (T) ExternalTableDefinition.fromPb(tablePb); case "MODEL": return (T) ModelTableDefinition.fromPb(tablePb); + case "SNAPSHOT": + return (T) SnapshotTableDefinition.fromPb(tablePb); default: // never reached throw new IllegalArgumentException("Format " + tablePb.getType() + " is not supported"); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java index be62bc1d687d..dfe76adafeba 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java @@ -113,7 +113,8 @@ public void testToPbAndFromPb() { assertNull(COPY_JOB_CONFIGURATION.toPb().getExtract()); assertNull(COPY_JOB_CONFIGURATION.toPb().getLoad()); assertNull(COPY_JOB_CONFIGURATION.toPb().getQuery()); - assertNull(COPY_JOB_CONFIGURATION.toPb().getCopy().getSourceTables()); + assertNull(COPY_JOB_CONFIGURATION.toPb().getCopy().getSourceTable()); + assertNotNull(COPY_JOB_CONFIGURATION.toPb().getCopy().getSourceTables()); assertNull(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.toPb().getCopy().getSourceTable()); assertNotNull(COPY_JOB_CONFIGURATION.getLabels()); assertNotNull(COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getLabels()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SnapshotTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SnapshotTableDefinitionTest.java new file mode 100644 index 000000000000..c739bcf5a5c5 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SnapshotTableDefinitionTest.java @@ -0,0 +1,72 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class SnapshotTableDefinitionTest { + + private static final TableId BASE_TABLE_ID = TableId.of("DATASET_NAME", "BASE_TABLE_NAME"); + private static final String SNAPSHOT_TIME = "2021-05-19T11:32:26.553Z"; + private static final SnapshotTableDefinition SNAPSHOTTABLE_DEFINITION = + SnapshotTableDefinition.newBuilder() + .setBaseTableId(BASE_TABLE_ID) + .setSnapshotTime(SNAPSHOT_TIME) + .build(); + + @Test + public void testToBuilder() { + compareSnapshotTableDefinition( + SNAPSHOTTABLE_DEFINITION, SNAPSHOTTABLE_DEFINITION.toBuilder().build()); + SnapshotTableDefinition snapshotTableDefinition = + SNAPSHOTTABLE_DEFINITION.toBuilder().setSnapshotTime("2021-05-20T11:32:26.553Z").build(); + assertEquals("2021-05-20T11:32:26.553Z", snapshotTableDefinition.getSnapshotTime()); + } + + @Test + public void testBuilder() { + assertEquals(TableDefinition.Type.SNAPSHOT, SNAPSHOTTABLE_DEFINITION.getType()); + assertEquals(BASE_TABLE_ID, SNAPSHOTTABLE_DEFINITION.getBaseTableId()); + assertEquals(SNAPSHOT_TIME, SNAPSHOTTABLE_DEFINITION.getSnapshotTime()); + SnapshotTableDefinition snapshotTableDefinition = + SnapshotTableDefinition.newBuilder() + .setBaseTableId(BASE_TABLE_ID) + .setSnapshotTime(SNAPSHOT_TIME) + .build(); + assertEquals(SNAPSHOTTABLE_DEFINITION, snapshotTableDefinition); + } + + @Test + public void testToAndFromPb() { + SnapshotTableDefinition snapshotTableDefinition = SNAPSHOTTABLE_DEFINITION.toBuilder().build(); + assertTrue( + TableDefinition.fromPb(snapshotTableDefinition.toPb()) instanceof SnapshotTableDefinition); + compareSnapshotTableDefinition( + snapshotTableDefinition, + TableDefinition.fromPb(snapshotTableDefinition.toPb())); + } + + private void compareSnapshotTableDefinition( + SnapshotTableDefinition expected, SnapshotTableDefinition value) { + assertEquals(expected, value); + assertEquals(expected.getBaseTableId(), value.getBaseTableId()); + assertEquals(expected.getSnapshotTime(), value.getSnapshotTime()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 4d7b30bef6bf..a0135fb9eb39 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -87,6 +87,7 @@ import com.google.cloud.bigquery.RoutineId; import com.google.cloud.bigquery.RoutineInfo; import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.SnapshotTableDefinition; import com.google.cloud.bigquery.StandardSQLDataType; import com.google.cloud.bigquery.StandardSQLField; import com.google.cloud.bigquery.StandardSQLTableType; @@ -2655,6 +2656,89 @@ public void testCopyJob() throws InterruptedException, TimeoutException { assertTrue(remoteTable.delete()); } + @Test + public void testSnapshotTableCopyJob() throws InterruptedException { + String sourceTableName = "test_copy_job_base_table"; + String ddlTableName = TABLE_ID_DDL.getTable(); + // this creates a snapshot table at specified snapshotTime + String snapshotTableName = String.format("test_snapshot_table"); + // Create source table with some data in it + String ddlQuery = + String.format( + "CREATE OR REPLACE TABLE %s (" + + "TimestampField TIMESTAMP OPTIONS(description='TimestampDescription'), " + + "StringField STRING OPTIONS(description='StringDescription'), " + + "BooleanField BOOLEAN OPTIONS(description='BooleanDescription') " + + ") AS SELECT * FROM %s", + sourceTableName, ddlTableName); + QueryJobConfiguration ddlConfig = + QueryJobConfiguration.newBuilder(ddlQuery).setDefaultDataset(DatasetId.of(DATASET)).build(); + TableId sourceTableId = TableId.of(DATASET, sourceTableName); + TableResult result = bigquery.query(ddlConfig); + assertEquals(DDL_TABLE_SCHEMA, result.getSchema()); + Table remoteTable = bigquery.getTable(DATASET, sourceTableName); + assertNotNull(remoteTable); + // StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + // TableInfo tableInfo = TableInfo.of(sourceTableId, tableDefinition); + // Table createdTable = bigquery.create(tableInfo); + + // Create snapshot table using source table as the base table + TableId snapshotTableId = TableId.of(DATASET, snapshotTableName); + CopyJobConfiguration snapshotConfiguration = + CopyJobConfiguration.newBuilder(snapshotTableId, sourceTableId) + .setOperationType("SNAPSHOT") + .build(); + Job createdJob = bigquery.create(JobInfo.of(snapshotConfiguration)); + CopyJobConfiguration createdConfiguration = createdJob.getConfiguration(); + assertNotNull(createdConfiguration.getSourceTables()); + assertNotNull(createdConfiguration.getOperationType()); + assertNotNull(createdConfiguration.getDestinationTable()); + Job completedJob = createdJob.waitFor(); + assertNull(completedJob.getStatus().getError()); + Table snapshotTable = bigquery.getTable(DATASET, snapshotTableName); + assertNotNull(snapshotTable); + assertEquals(snapshotTableId.getDataset(), snapshotTable.getTableId().getDataset()); + assertEquals(snapshotTableName, snapshotTable.getTableId().getTable()); + assertTrue(snapshotTable.getDefinition() instanceof SnapshotTableDefinition); + assertEquals(DDL_TABLE_SCHEMA, snapshotTable.getDefinition().getSchema()); + assertNotNull(((SnapshotTableDefinition) snapshotTable.getDefinition()).getSnapshotTime()); + assertEquals( + sourceTableName, + ((SnapshotTableDefinition) snapshotTable.getDefinition()).getBaseTableId().getTable()); + + // Restore base table to a new table + String restoredTableName = "test_restore_table"; + TableId restoredTableId = TableId.of(DATASET, restoredTableName); + CopyJobConfiguration restoreConfiguration = + CopyJobConfiguration.newBuilder(restoredTableId, snapshotTableId) + .setOperationType("RESTORE") + .build(); + Job createdRestoreJob = bigquery.create(JobInfo.of(restoreConfiguration)); + CopyJobConfiguration createdRestoreConfiguration = createdRestoreJob.getConfiguration(); + assertEquals( + restoreConfiguration.getSourceTables().get(0).getTable(), + createdRestoreConfiguration.getSourceTables().get(0).getTable()); + assertEquals( + restoreConfiguration.getOperationType(), createdRestoreConfiguration.getOperationType()); + assertEquals( + restoreConfiguration.getDestinationTable().getTable(), + createdRestoreConfiguration.getDestinationTable().getTable()); + Job completedRestoreJob = createdRestoreJob.waitFor(); + assertNull(completedRestoreJob.getStatus().getError()); + Table restoredTable = bigquery.getTable(DATASET, restoredTableName); + assertNotNull(restoredTable); + assertEquals(restoredTableId.getDataset(), restoredTable.getTableId().getDataset()); + assertEquals(restoredTableName, restoredTable.getTableId().getTable()); + assertEquals(DDL_TABLE_SCHEMA, restoredTable.getDefinition().getSchema()); + assertEquals(snapshotTable.getNumBytes(), restoredTable.getNumBytes()); + assertEquals(snapshotTable.getNumRows(), restoredTable.getNumRows()); + + // Clean up + assertTrue(remoteTable.delete()); + assertTrue(restoredTable.delete()); + assertTrue(snapshotTable.delete()); + } + @Test public void testCopyJobWithLabels() throws InterruptedException { String sourceTableName = "test_copy_job_source_table_label"; From 3c0e7c6ee42f10aa2b528fcf81937ff58cc8136f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 28 Jun 2021 19:00:09 +0000 Subject: [PATCH 1364/3441] chore: release 1.134.2-SNAPSHOT (#1396) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 17d47a34429f..b311f98d1506 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.134.1 + 1.134.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 32cfda8d60e9..1dcbcddc01e5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.134.1 + 1.134.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.134.1 + 1.134.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5e4f80d520f7..4e4c4f9da061 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.134.1 + 1.134.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.134.1 + 1.134.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1ce02d6a74e1..244b99fc2559 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.134.1 + 1.134.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index a3bbd974dc70..a0c358e865e2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.134.1:1.134.1 \ No newline at end of file +google-cloud-bigquery:1.134.1:1.134.2-SNAPSHOT \ No newline at end of file From 06c07c1055deb594097448f3034c282ff565aa77 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 28 Jun 2021 12:06:17 -0700 Subject: [PATCH 1365/3441] chore: regenerate README (#1397) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-28 18:56:01,685 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-28 18:56:03,973 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/cf31ae60-53d3-48a6-b743-2942c506906b/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 0cffa91738ad..140b5d5da0e4 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "05662f3d96ee26d74b8524f1b84e0bd1ec5d0716" + "sha": "d783292f4bd2d971235d8afa6318976856529cb5" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "e934b93402284f834b510ebbf421864e881dce02" + "sha": "1f9ceba741b6b4a60ce09ab98423e941f5bd47f2" } } ] diff --git a/README.md b/README.md index 9fc98244be9a..079a6ad44934 100644 --- a/README.md +++ b/README.md @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.134.0' +compile 'com.google.cloud:google-cloud-bigquery:1.134.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.134.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.134.1" ``` ## Authentication From 4d1742ab0b85e6f3129a44bf460181e3590b248f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 28 Jun 2021 21:45:24 +0200 Subject: [PATCH 1366/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.134.1 (#1399) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d209b43758f8..967441699ccb 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.134.0 + 1.134.1 From 2fe77ae9d123260cc98cc85394a8c10f5cab6326 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 28 Jun 2021 19:56:18 +0000 Subject: [PATCH 1367/3441] chore: release 1.135.0 (#1398) :robot: I have created a release \*beep\* \*boop\* --- ## [1.135.0](https://www.github.com/googleapis/java-bigquery/compare/v1.134.1...v1.135.0) (2021-06-28) ### Features * add support for table snapshot ([#1320](https://www.github.com/googleapis/java-bigquery/issues/1320)) ([d783292](https://www.github.com/googleapis/java-bigquery/commit/d783292f4bd2d971235d8afa6318976856529cb5)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ee5dee8cca94..220731e14a87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.135.0](https://www.github.com/googleapis/java-bigquery/compare/v1.134.1...v1.135.0) (2021-06-28) + + +### Features + +* add support for table snapshot ([#1320](https://www.github.com/googleapis/java-bigquery/issues/1320)) ([d783292](https://www.github.com/googleapis/java-bigquery/commit/d783292f4bd2d971235d8afa6318976856529cb5)) + ### [1.134.1](https://www.github.com/googleapis/java-bigquery/compare/v1.134.0...v1.134.1) (2021-06-28) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b311f98d1506..561e4f129d0d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.134.2-SNAPSHOT + 1.135.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1dcbcddc01e5..f3dd2518541d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.134.2-SNAPSHOT + 1.135.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.134.2-SNAPSHOT + 1.135.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4e4c4f9da061..3d15667f74b6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.134.2-SNAPSHOT + 1.135.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.134.2-SNAPSHOT + 1.135.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 244b99fc2559..1237c4612fc1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.134.2-SNAPSHOT + 1.135.0 diff --git a/versions.txt b/versions.txt index a0c358e865e2..1a360aa9d100 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.134.1:1.134.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.135.0:1.135.0 \ No newline at end of file From 02e9a6cd23869f05e6fde52ff0f35211a97727e9 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 28 Jun 2021 13:00:10 -0700 Subject: [PATCH 1368/3441] chore: regenerate README (#1400) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-28 19:47:43,922 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-28 19:47:45,424 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/ea7c752e-ea7d-4536-9842-5e221e67ade2/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 140b5d5da0e4..302b899e9867 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "d783292f4bd2d971235d8afa6318976856529cb5" + "sha": "4d1742ab0b85e6f3129a44bf460181e3590b248f" } }, { diff --git a/README.md b/README.md index 079a6ad44934..ad2824afaa00 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.134.0 + 1.134.1 ``` From b1ea77e37f1d80691b017e3246290b2276dcb20d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 28 Jun 2021 20:08:31 +0000 Subject: [PATCH 1369/3441] chore: release 1.135.1-SNAPSHOT (#1401) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 561e4f129d0d..3695b9918b57 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.135.0 + 1.135.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f3dd2518541d..5bf4ce4220c9 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.135.0 + 1.135.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.135.0 + 1.135.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3d15667f74b6..2bdbba443323 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.135.0 + 1.135.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.135.0 + 1.135.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1237c4612fc1..27b9ca8a68ec 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.135.0 + 1.135.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 1a360aa9d100..741778b8cb37 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.135.0:1.135.0 \ No newline at end of file +google-cloud-bigquery:1.135.0:1.135.1-SNAPSHOT \ No newline at end of file From 530d44e857983ba7928914d8aa532bc71b798bfb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 29 Jun 2021 01:45:10 +0200 Subject: [PATCH 1370/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.135.0 (#1402) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 967441699ccb..aff6345b7819 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.134.1 + 1.135.0 From c8cd3d72b5456a69bb01d66f322e08aa216f30b6 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 28 Jun 2021 16:58:41 -0700 Subject: [PATCH 1371/3441] chore: regenerate README (#1404) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-28 23:47:51,426 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-28 23:47:52,714 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/cae35229-1644-47e9-b41e-55f56c52e976/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 302b899e9867..e67b91843053 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "4d1742ab0b85e6f3129a44bf460181e3590b248f" + "sha": "530d44e857983ba7928914d8aa532bc71b798bfb" } }, { diff --git a/README.md b/README.md index ad2824afaa00..f230970e5936 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.134.1 + 1.135.0 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.134.1' +compile 'com.google.cloud:google-cloud-bigquery:1.135.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.134.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.135.0" ``` ## Authentication From 0cfcab02e7d80317b19062937677dbe07d3b3bd5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 29 Jun 2021 06:33:04 +0200 Subject: [PATCH 1372/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.117.0 (#1403) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2bdbba443323..c3def4059135 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ com.google.cloud google-cloud-storage - 1.116.0 + 1.117.0 test From 4bc8a6dc84d824edec1c89b1710a99415a93372b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 29 Jun 2021 04:44:24 +0000 Subject: [PATCH 1373/3441] chore: release 1.135.1 (#1405) :robot: I have created a release \*beep\* \*boop\* --- ### [1.135.1](https://www.github.com/googleapis/java-bigquery/compare/v1.135.0...v1.135.1) (2021-06-29) ### Dependencies * update dependency com.google.cloud:google-cloud-storage to v1.117.0 ([#1403](https://www.github.com/googleapis/java-bigquery/issues/1403)) ([0cfcab0](https://www.github.com/googleapis/java-bigquery/commit/0cfcab02e7d80317b19062937677dbe07d3b3bd5)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 220731e14a87..5346ea9365e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.135.1](https://www.github.com/googleapis/java-bigquery/compare/v1.135.0...v1.135.1) (2021-06-29) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v1.117.0 ([#1403](https://www.github.com/googleapis/java-bigquery/issues/1403)) ([0cfcab0](https://www.github.com/googleapis/java-bigquery/commit/0cfcab02e7d80317b19062937677dbe07d3b3bd5)) + ## [1.135.0](https://www.github.com/googleapis/java-bigquery/compare/v1.134.1...v1.135.0) (2021-06-28) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3695b9918b57..c0d867bc0e69 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.135.1-SNAPSHOT + 1.135.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5bf4ce4220c9..f8e321e439f3 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.135.1-SNAPSHOT + 1.135.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.135.1-SNAPSHOT + 1.135.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c3def4059135..96f71b65ca3c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.135.1-SNAPSHOT + 1.135.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.135.1-SNAPSHOT + 1.135.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 27b9ca8a68ec..6710048fcb17 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.135.1-SNAPSHOT + 1.135.1 diff --git a/versions.txt b/versions.txt index 741778b8cb37..323f0326001a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.135.0:1.135.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.135.1:1.135.1 \ No newline at end of file From d4c530889dc78bbc95f9acf09d2a0e9aaf4bb2d2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 29 Jun 2021 04:54:25 +0000 Subject: [PATCH 1374/3441] chore: release 1.135.2-SNAPSHOT (#1406) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c0d867bc0e69..134c2227347c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.135.1 + 1.135.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f8e321e439f3..99251c8884ae 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.135.1 + 1.135.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.135.1 + 1.135.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 96f71b65ca3c..6466a26a1cb2 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.135.1 + 1.135.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -87,7 +87,7 @@ com.google.cloud google-cloud-bigquery - 1.135.1 + 1.135.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6710048fcb17..69e2fc7c4a23 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.135.1 + 1.135.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 323f0326001a..0fb7afe0dc70 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.135.1:1.135.1 \ No newline at end of file +google-cloud-bigquery:1.135.1:1.135.2-SNAPSHOT \ No newline at end of file From 8479fd32c3136618ad1dea2cbcb6b7ee78cf8861 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 29 Jun 2021 16:12:32 +0200 Subject: [PATCH 1375/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.135.1 (#1407) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index aff6345b7819..6769e0a55f19 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.135.0 + 1.135.1 From f26ca9fca475f1533686ea66cf4606990e21e483 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 29 Jun 2021 07:28:24 -0700 Subject: [PATCH 1376/3441] chore: regenerate README (#1408) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-29 14:14:46,136 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-29 14:14:48,094 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/7343c34a-d04f-4aef-a1e9-1bb2f13ee63f/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index e67b91843053..712dfe187a5a 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "530d44e857983ba7928914d8aa532bc71b798bfb" + "sha": "8479fd32c3136618ad1dea2cbcb6b7ee78cf8861" } }, { diff --git a/README.md b/README.md index f230970e5936..3bcf6b67c5a7 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.135.0 + 1.135.1 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.135.0' +compile 'com.google.cloud:google-cloud-bigquery:1.135.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.135.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.135.1" ``` ## Authentication From 221439b55e0d42404e7d3bf4b8603a38158763ee Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 30 Jun 2021 12:18:21 -0400 Subject: [PATCH 1377/3441] ci: remove self-managed distributionManagement (#1410) --- pom.xml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/pom.xml b/pom.xml index 6466a26a1cb2..a323f7c1f2c7 100644 --- a/pom.xml +++ b/pom.xml @@ -41,16 +41,6 @@ https://github.com/googleapis/java-bigquery/issues GitHub Issues - - - sonatype-nexus-snapshots - https://oss.sonatype.org/content/repositories/snapshots - - - sonatype-nexus-staging - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - Apache-2.0 From e626c4aec7b7796fe5c888d7f726cd957469b4ad Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 30 Jun 2021 23:03:34 +0200 Subject: [PATCH 1378/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v1.4.0 (#1411) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a323f7c1f2c7..001a34fb4d32 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ google-cloud-bigquery-parent v2-rev20210617-1.31.5 - 1.3.0 + 1.4.0
    From 0234190d4fb0d22bc3c5359d9840f459bf048787 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 30 Jun 2021 21:14:30 +0000 Subject: [PATCH 1379/3441] chore: release 1.135.2 (#1412) :robot: I have created a release \*beep\* \*boop\* --- ### [1.135.2](https://www.github.com/googleapis/java-bigquery/compare/v1.135.1...v1.135.2) (2021-06-30) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v1.4.0 ([#1411](https://www.github.com/googleapis/java-bigquery/issues/1411)) ([e626c4a](https://www.github.com/googleapis/java-bigquery/commit/e626c4aec7b7796fe5c888d7f726cd957469b4ad)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5346ea9365e6..8f9b29f31681 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.135.2](https://www.github.com/googleapis/java-bigquery/compare/v1.135.1...v1.135.2) (2021-06-30) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v1.4.0 ([#1411](https://www.github.com/googleapis/java-bigquery/issues/1411)) ([e626c4a](https://www.github.com/googleapis/java-bigquery/commit/e626c4aec7b7796fe5c888d7f726cd957469b4ad)) + ### [1.135.1](https://www.github.com/googleapis/java-bigquery/compare/v1.135.0...v1.135.1) (2021-06-29) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 134c2227347c..532be0caca3c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.135.2-SNAPSHOT + 1.135.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 99251c8884ae..66de465d7a00 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.135.2-SNAPSHOT + 1.135.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.135.2-SNAPSHOT + 1.135.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 001a34fb4d32..2ce1994b37e4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.135.2-SNAPSHOT + 1.135.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.135.2-SNAPSHOT + 1.135.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 69e2fc7c4a23..9dd2d6ddfacc 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.135.2-SNAPSHOT + 1.135.2 diff --git a/versions.txt b/versions.txt index 0fb7afe0dc70..f58b650876a1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.135.1:1.135.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.135.2:1.135.2 \ No newline at end of file From 457165fb1c055a4ef0484a86760819d75103ff50 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 30 Jun 2021 21:24:21 +0000 Subject: [PATCH 1380/3441] chore: release 1.135.3-SNAPSHOT (#1413) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 532be0caca3c..2e467441b824 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.135.2 + 1.135.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 66de465d7a00..cd76b0a4cfea 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.135.2 + 1.135.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.135.2 + 1.135.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2ce1994b37e4..efe3cbf739a1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.135.2 + 1.135.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.135.2 + 1.135.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9dd2d6ddfacc..2e0b7fc5d7a4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.135.2 + 1.135.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index f58b650876a1..d13474403921 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.135.2:1.135.2 \ No newline at end of file +google-cloud-bigquery:1.135.2:1.135.3-SNAPSHOT \ No newline at end of file From 6d6d27699cc36984c2138beaf377906f8555d52a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 1 Jul 2021 01:02:28 +0200 Subject: [PATCH 1381/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.27.1 (#1414) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6769e0a55f19..6afe5bb03737 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.27.0 + 1.27.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2e0b7fc5d7a4..64c78316643b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.27.0 + 1.27.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 23f3117c5e71..99ebb0e2a07a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.27.0 + 1.27.1 test From d0789ade20cae1aee0d34b1fbca927f64403bfc9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 1 Jul 2021 01:06:13 +0200 Subject: [PATCH 1382/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.1.4 (#1416) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | `1.1.3` -> `1.1.4` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/1.1.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/1.1.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/1.1.4/compatibility-slim/1.1.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/1.1.4/confidence-slim/1.1.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v1.1.4`](https://togithub.com/googleapis/java-bigqueryconnection/blob/master/CHANGELOG.md#​114-httpswwwgithubcomgoogleapisjava-bigqueryconnectioncomparev113v114-2021-06-24) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v1.1.3...v1.1.4)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6afe5bb03737..bbc0a222caf2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.3 + 1.1.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 64c78316643b..f87fb67bce0b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.3 + 1.1.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 99ebb0e2a07a..4dca1858d553 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.3 + 1.1.4 test From b8a697dd1a574b3def982c5b7d78be82f5c6bcf1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 1 Jul 2021 01:08:13 +0200 Subject: [PATCH 1383/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.135.2 (#1415) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `1.135.1` -> `1.135.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.135.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.135.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.135.2/compatibility-slim/1.135.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/1.135.2/confidence-slim/1.135.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v1.135.2`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​11352-httpswwwgithubcomgoogleapisjava-bigquerycomparev11351v11352-2021-06-30) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.135.1...v1.135.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index bbc0a222caf2..21fa561b6050 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.135.1 + 1.135.2 From 42823bed79f736f40ab73e5c872346761baf6c89 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 30 Jun 2021 16:16:18 -0700 Subject: [PATCH 1384/3441] chore: regenerate README (#1419) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-30 23:04:38,981 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-30 23:04:40,354 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/9be924df-2ad0-4dc8-9d2b-cd810f5a8019/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 712dfe187a5a..191814be23b5 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "8479fd32c3136618ad1dea2cbcb6b7ee78cf8861" + "sha": "6d6d27699cc36984c2138beaf377906f8555d52a" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1f9ceba741b6b4a60ce09ab98423e941f5bd47f2" + "sha": "39652e3948f455fd0b77535a0145eeec561a3706" } } ] diff --git a/README.md b/README.md index 3bcf6b67c5a7..e1f51f179148 100644 --- a/README.md +++ b/README.md @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.135.1' +compile 'com.google.cloud:google-cloud-bigquery:1.135.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.135.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.135.2" ``` ## Authentication From 5483d881d64c19a60b53d930b943a42af2d5f735 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 30 Jun 2021 16:30:25 -0700 Subject: [PATCH 1385/3441] chore: regenerate README (#1420) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-06-30 23:18:32,758 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-06-30 23:18:34,084 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/b86ba535-ccba-4fea-85ca-887d2d78521b/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 191814be23b5..bbfabe3bd81b 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "6d6d27699cc36984c2138beaf377906f8555d52a" + "sha": "42823bed79f736f40ab73e5c872346761baf6c89" } }, { diff --git a/README.md b/README.md index e1f51f179148..48aacb4d9857 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.135.1 + 1.135.2 ``` From a746a1647db3b39c8f1bb68d97fb71bc477ad678 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 2 Jul 2021 22:40:25 +0200 Subject: [PATCH 1386/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.117.1 (#1417) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `1.117.0` -> `1.117.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.117.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.117.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.117.1/compatibility-slim/1.117.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/1.117.1/confidence-slim/1.117.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v1.117.1`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​11171-httpswwwgithubcomgoogleapisjava-storagecomparev11170v11171-2021-06-30) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v1.117.0...v1.117.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index efe3cbf739a1..a9b7bb88b920 100644 --- a/pom.xml +++ b/pom.xml @@ -108,7 +108,7 @@ com.google.cloud google-cloud-storage - 1.117.0 + 1.117.1 test From 53c6cf14b96289ff2291a0dec1327e5b98d32910 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 2 Jul 2021 22:40:29 +0200 Subject: [PATCH 1387/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.27.2 (#1422) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `1.27.1` -> `1.27.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.27.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.27.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.27.2/compatibility-slim/1.27.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/1.27.2/confidence-slim/1.27.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v1.27.2`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​1272-httpswwwgithubcomgoogleapisjava-bigtablecomparev1271v1272-2021-07-01) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v1.27.1...v1.27.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 21fa561b6050..0aa281a12318 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.27.1 + 1.27.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f87fb67bce0b..1da392d56d0a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.27.1 + 1.27.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4dca1858d553..996e1fa1c529 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.27.1 + 1.27.2 test From 1d20b48addb0d1855db1d645966233822e375474 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 2 Jul 2021 20:52:39 +0000 Subject: [PATCH 1388/3441] chore: release 1.135.3 (#1418) :robot: I have created a release \*beep\* \*boop\* --- ### [1.135.3](https://www.github.com/googleapis/java-bigquery/compare/v1.135.2...v1.135.3) (2021-07-02) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.27.1 ([#1414](https://www.github.com/googleapis/java-bigquery/issues/1414)) ([6d6d276](https://www.github.com/googleapis/java-bigquery/commit/6d6d27699cc36984c2138beaf377906f8555d52a)) * update dependency com.google.cloud:google-cloud-bigtable to v1.27.2 ([#1422](https://www.github.com/googleapis/java-bigquery/issues/1422)) ([53c6cf1](https://www.github.com/googleapis/java-bigquery/commit/53c6cf14b96289ff2291a0dec1327e5b98d32910)) * update dependency com.google.cloud:google-cloud-storage to v1.117.1 ([#1417](https://www.github.com/googleapis/java-bigquery/issues/1417)) ([a746a16](https://www.github.com/googleapis/java-bigquery/commit/a746a1647db3b39c8f1bb68d97fb71bc477ad678)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 9 +++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f9b29f31681..73fa37c81ac5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### [1.135.3](https://www.github.com/googleapis/java-bigquery/compare/v1.135.2...v1.135.3) (2021-07-02) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.27.1 ([#1414](https://www.github.com/googleapis/java-bigquery/issues/1414)) ([6d6d276](https://www.github.com/googleapis/java-bigquery/commit/6d6d27699cc36984c2138beaf377906f8555d52a)) +* update dependency com.google.cloud:google-cloud-bigtable to v1.27.2 ([#1422](https://www.github.com/googleapis/java-bigquery/issues/1422)) ([53c6cf1](https://www.github.com/googleapis/java-bigquery/commit/53c6cf14b96289ff2291a0dec1327e5b98d32910)) +* update dependency com.google.cloud:google-cloud-storage to v1.117.1 ([#1417](https://www.github.com/googleapis/java-bigquery/issues/1417)) ([a746a16](https://www.github.com/googleapis/java-bigquery/commit/a746a1647db3b39c8f1bb68d97fb71bc477ad678)) + ### [1.135.2](https://www.github.com/googleapis/java-bigquery/compare/v1.135.1...v1.135.2) (2021-06-30) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2e467441b824..52ffda842736 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.135.3-SNAPSHOT + 1.135.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index cd76b0a4cfea..c1697769025c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.135.3-SNAPSHOT + 1.135.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.135.3-SNAPSHOT + 1.135.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a9b7bb88b920..e1f04c5856e4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.135.3-SNAPSHOT + 1.135.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.135.3-SNAPSHOT + 1.135.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1da392d56d0a..1bf234aff635 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.135.3-SNAPSHOT + 1.135.3 diff --git a/versions.txt b/versions.txt index d13474403921..d68ff18b7e88 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.135.2:1.135.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.135.3:1.135.3 \ No newline at end of file From 567f7b41f0305d2a18c4930435947dfb1a343646 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 2 Jul 2021 21:04:21 +0000 Subject: [PATCH 1389/3441] chore: release 1.135.4-SNAPSHOT (#1423) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 52ffda842736..af017660fc20 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.135.3 + 1.135.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c1697769025c..0231d76e1ec4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.135.3 + 1.135.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.135.3 + 1.135.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e1f04c5856e4..eeb24943441f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.135.3 + 1.135.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.135.3 + 1.135.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1bf234aff635..29e53bb47ba4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.135.3 + 1.135.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index d68ff18b7e88..128276accb15 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.135.3:1.135.3 \ No newline at end of file +google-cloud-bigquery:1.135.3:1.135.4-SNAPSHOT \ No newline at end of file From 9e943599b629d01bddcaeb69dde1f58f331e8987 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 4 Jul 2021 22:52:05 +0200 Subject: [PATCH 1390/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.135.3 (#1424) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0aa281a12318..ec117827210b 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.135.2 + 1.135.3 From ed54050096b9cfc65e015c43cc486984c0ff0970 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sun, 4 Jul 2021 14:04:22 -0700 Subject: [PATCH 1391/3441] chore: regenerate README (#1427) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-07-04 20:54:11,177 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-07-04 20:54:12,496 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/c4f587de-8ee6-4659-8ae9-9dca2a730ac0/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index bbfabe3bd81b..82441057f345 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "42823bed79f736f40ab73e5c872346761baf6c89" + "sha": "9e943599b629d01bddcaeb69dde1f58f331e8987" } }, { diff --git a/README.md b/README.md index 48aacb4d9857..3ce0b13922f2 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.135.2 + 1.135.3 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.135.2' +compile 'com.google.cloud:google-cloud-bigquery:1.135.3' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.135.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.135.3" ``` ## Authentication From 7daaeff1294fb7c4ec27de60266b7e988791ba22 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 6 Jul 2021 17:50:24 +0200 Subject: [PATCH 1392/3441] test(deps): update datacatalog dependencies to v1.4.2 (#1428) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index eeb24943441f..8c6d119d3a80 100644 --- a/pom.xml +++ b/pom.xml @@ -114,13 +114,13 @@ com.google.cloud google-cloud-datacatalog - 1.4.1 + 1.4.2 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.4.1 + 1.4.2 test From 82467ed4d8435e33a6496663a5dd6ae9377d4212 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 7 Jul 2021 20:47:54 +0200 Subject: [PATCH 1393/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210617-1.32.1 (#1425) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8c6d119d3a80..a8b19da9f890 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210617-1.31.5 + v2-rev20210617-1.32.1 1.4.0
    From ee4209421449deba488879923cd31f81c1c4376e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 8 Jul 2021 13:35:42 +0200 Subject: [PATCH 1394/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.1.5 (#1430) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ec117827210b..664eea2267a7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.4 + 1.1.5 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 29e53bb47ba4..0a90d6e2a9d7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.4 + 1.1.5 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 996e1fa1c529..17e7692639be 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.4 + 1.1.5 test From afa73af2a0912a25ee1e63f6fbb6b9453fdd1287 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 8 Jul 2021 11:46:09 +0000 Subject: [PATCH 1395/3441] chore: release 1.135.4 (#1429) :robot: I have created a release \*beep\* \*boop\* --- ### [1.135.4](https://www.github.com/googleapis/java-bigquery/compare/v1.135.3...v1.135.4) (2021-07-08) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210617-1.32.1 ([#1425](https://www.github.com/googleapis/java-bigquery/issues/1425)) ([82467ed](https://www.github.com/googleapis/java-bigquery/commit/82467ed4d8435e33a6496663a5dd6ae9377d4212)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 73fa37c81ac5..e4789162d150 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.135.4](https://www.github.com/googleapis/java-bigquery/compare/v1.135.3...v1.135.4) (2021-07-08) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210617-1.32.1 ([#1425](https://www.github.com/googleapis/java-bigquery/issues/1425)) ([82467ed](https://www.github.com/googleapis/java-bigquery/commit/82467ed4d8435e33a6496663a5dd6ae9377d4212)) + ### [1.135.3](https://www.github.com/googleapis/java-bigquery/compare/v1.135.2...v1.135.3) (2021-07-02) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index af017660fc20..7f6831c4286b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.135.4-SNAPSHOT + 1.135.4 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0231d76e1ec4..00ac8a2ed690 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.135.4-SNAPSHOT + 1.135.4 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.135.4-SNAPSHOT + 1.135.4 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a8b19da9f890..a3c19d6e4632 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.135.4-SNAPSHOT + 1.135.4 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.135.4-SNAPSHOT + 1.135.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0a90d6e2a9d7..1a1d7b1e12cb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.135.4-SNAPSHOT + 1.135.4 diff --git a/versions.txt b/versions.txt index 128276accb15..a6adcf254568 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.135.3:1.135.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.135.4:1.135.4 \ No newline at end of file From e755470ad3699eee8816f55cdec4dd995cf85d52 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 8 Jul 2021 11:56:22 +0000 Subject: [PATCH 1396/3441] chore: release 1.135.5-SNAPSHOT (#1432) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 7f6831c4286b..f6f7bb18c717 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.135.4 + 1.135.5-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 00ac8a2ed690..682de7512888 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.135.4 + 1.135.5-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.135.4 + 1.135.5-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a3c19d6e4632..d611bdef0787 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.135.4 + 1.135.5-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.135.4 + 1.135.5-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1a1d7b1e12cb..d978209e05d0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.135.4 + 1.135.5-SNAPSHOT diff --git a/versions.txt b/versions.txt index a6adcf254568..417a2a8dd0e3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.135.4:1.135.4 \ No newline at end of file +google-cloud-bigquery:1.135.4:1.135.5-SNAPSHOT \ No newline at end of file From e4dcd1a0a8b7e38ef8e366f4fe0e3ef306c3889f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 8 Jul 2021 18:55:20 +0200 Subject: [PATCH 1397/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.135.4 (#1433) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 664eea2267a7..4697089debea 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.135.3 + 1.135.4 From 94ce14fef44ea082925e621f6939db00d703c008 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 8 Jul 2021 10:08:23 -0700 Subject: [PATCH 1398/3441] chore: regenerate README (#1434) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-07-08 16:57:21,103 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-07-08 16:57:22,339 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/b228950a-4d07-413b-94e8-8a87c7613bc7/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 82441057f345..dc41041e8bac 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "9e943599b629d01bddcaeb69dde1f58f331e8987" + "sha": "e4dcd1a0a8b7e38ef8e366f4fe0e3ef306c3889f" } }, { diff --git a/README.md b/README.md index 3ce0b13922f2..7edcbab0c7cc 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.135.3 + 1.135.4 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.135.3' +compile 'com.google.cloud:google-cloud-bigquery:1.135.4' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.135.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.135.4" ``` ## Authentication From 9d67e05d2a6fab0c9e6017dec33b0d74ad821825 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 8 Jul 2021 14:32:07 -0400 Subject: [PATCH 1399/3441] feat: add dmlStatistics support (#1431) Provides detailed statistics for DML statements Present only for DML statements INSERT, UPDATE, DELETE or TRUNCATE. Towards b/186432630 --- .../com/google/cloud/bigquery/DmlStats.java | 112 ++++++++++++++++++ .../google/cloud/bigquery/JobStatistics.java | 20 +++- .../google/cloud/bigquery/DmlStatsTest.java | 55 +++++++++ .../cloud/bigquery/JobStatisticsTest.java | 11 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 20 ++++ 5 files changed, 217 insertions(+), 1 deletion(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DmlStats.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DmlStatsTest.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DmlStats.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DmlStats.java new file mode 100644 index 000000000000..0ce97dc0cb79 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DmlStats.java @@ -0,0 +1,112 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.DmlStatistics; +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import javax.annotation.Nullable; + +/** Represents DML statistics information. */ +@AutoValue +public abstract class DmlStats implements Serializable { + + @AutoValue.Builder + public abstract static class Builder { + /** + * Number of deleted Rows. populated by DML DELETE, MERGE and TRUNCATE statements. + * + * @param deletedRowCount deletedRowCount or {@code null} for none + */ + public abstract Builder setDeletedRowCount(Long deletedRowCount); + + /** + * Number of inserted Rows. Populated by DML INSERT and MERGE statements. + * + * @param insertedRowCount insertedRowCount or {@code null} for none + */ + public abstract Builder setInsertedRowCount(Long insertedRowCount); + + /** + * Number of updated Rows. Populated by DML UPDATE and MERGE statements. + * + * @param updatedRowCount updatedRowCount or {@code null} for none + */ + public abstract Builder setUpdatedRowCount(Long updatedRowCount); + + /** Creates a {@code DmlStats} object. */ + public abstract DmlStats build(); + } + + /** + * Returns number of deleted Rows. populated by DML DELETE, MERGE and TRUNCATE statements. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract Long getDeletedRowCount(); + + /** + * Returns number of inserted Rows. Populated by DML INSERT and MERGE statements. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract Long getInsertedRowCount(); + + /** + * Returns number of updated Rows. Populated by DML UPDATE and MERGE statements. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract Long getUpdatedRowCount(); + + public abstract Builder toBuilder(); + + public static Builder newBuilder() { + return new AutoValue_DmlStats.Builder(); + } + + DmlStatistics toPb() { + DmlStatistics dmlStatisticsPb = new DmlStatistics(); + if (getDeletedRowCount() != null) { + dmlStatisticsPb.setDeletedRowCount(getDeletedRowCount()); + } + if (getInsertedRowCount() != null) { + dmlStatisticsPb.setInsertedRowCount(getInsertedRowCount()); + } + if (getUpdatedRowCount() != null) { + dmlStatisticsPb.setUpdatedRowCount(getUpdatedRowCount()); + } + return dmlStatisticsPb; + } + + static DmlStats fromPb(DmlStatistics dmlStatisticsPb) { + Builder builder = newBuilder(); + if (dmlStatisticsPb.getDeletedRowCount() != null) { + builder.setDeletedRowCount(dmlStatisticsPb.getDeletedRowCount()); + } + if (dmlStatisticsPb.getInsertedRowCount() != null) { + builder.setInsertedRowCount(dmlStatisticsPb.getInsertedRowCount()); + } + if (dmlStatisticsPb.getUpdatedRowCount() != null) { + builder.setUpdatedRowCount(dmlStatisticsPb.getUpdatedRowCount()); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index d971a6fb27f8..ea5555b9bffd 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -326,6 +326,7 @@ public static class QueryStatistics extends JobStatistics { private final RoutineId ddlTargetRoutine; private final Long estimatedBytesProcessed; private final Long numDmlAffectedRows; + private final DmlStats dmlStats; private final List referencedTables; private final StatementType statementType; private final Long totalBytesBilled; @@ -406,6 +407,7 @@ static final class Builder extends JobStatistics.Builder referencedTables; private StatementType statementType; private Long totalBytesBilled; @@ -458,6 +460,9 @@ private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsP if (statisticsPb.getQuery().getSchema() != null) { this.schema = Schema.fromPb(statisticsPb.getQuery().getSchema()); } + if (statisticsPb.getQuery().getDmlStats() != null) { + this.dmlStats = DmlStats.fromPb(statisticsPb.getQuery().getDmlStats()); + } } } @@ -496,6 +501,11 @@ Builder setNumDmlAffectedRows(Long numDmlAffectedRows) { return self(); } + Builder setDmlStats(DmlStats dmlStats) { + this.dmlStats = dmlStats; + return self(); + } + Builder setReferenceTables(List referencedTables) { this.referencedTables = referencedTables; return self(); @@ -561,6 +571,7 @@ private QueryStatistics(Builder builder) { this.ddlTargetRoutine = builder.ddlTargetRoutine; this.estimatedBytesProcessed = builder.estimatedBytesProcessed; this.numDmlAffectedRows = builder.numDmlAffectedRows; + this.dmlStats = builder.dmlStats; this.referencedTables = builder.referencedTables; this.statementType = builder.statementType; this.totalBytesBilled = builder.totalBytesBilled; @@ -614,6 +625,11 @@ public Long getNumDmlAffectedRows() { return numDmlAffectedRows; } + /** Detailed statistics for DML statements. */ + public DmlStats getDmlStats() { + return dmlStats; + } + /** * Referenced tables for the job. Queries that reference more than 50 tables will not have a * complete list. @@ -729,7 +745,9 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { if (ddlTargetRoutine != null) { queryStatisticsPb.setDdlTargetRoutine(ddlTargetRoutine.toPb()); } - + if (dmlStats != null) { + queryStatisticsPb.setDmlStats(dmlStats.toPb()); + } if (referencedTables != null) { queryStatisticsPb.setReferencedTables( Lists.transform(referencedTables, TableId.TO_PB_FUNCTION)); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DmlStatsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DmlStatsTest.java new file mode 100644 index 000000000000..48950831a46e --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DmlStatsTest.java @@ -0,0 +1,55 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class DmlStatsTest { + + private static final Long DELETED_ROW_COUNT = 10L; + private static final Long INSERTED_ROW_COUNT = 20L; + private static final Long UPDATED_ROW_COUNT = 30L; + private static final DmlStats DML_STATS = + DmlStats.newBuilder() + .setDeletedRowCount(DELETED_ROW_COUNT) + .setInsertedRowCount(INSERTED_ROW_COUNT) + .setUpdatedRowCount(UPDATED_ROW_COUNT) + .build(); + + @Test + public void testBuilder() { + assertEquals(DELETED_ROW_COUNT, DML_STATS.getDeletedRowCount()); + assertEquals(UPDATED_ROW_COUNT, DML_STATS.getUpdatedRowCount()); + assertEquals(INSERTED_ROW_COUNT, DML_STATS.getInsertedRowCount()); + } + + @Test + public void testToPbAndFromPb() { + compareDmlStats(DML_STATS, DmlStats.fromPb(DML_STATS.toPb())); + } + + private void compareDmlStats(DmlStats expected, DmlStats actual) { + assertEquals(expected, actual); + assertEquals(expected.hashCode(), actual.hashCode()); + assertEquals(expected.toString(), actual.toString()); + assertEquals(expected.getDeletedRowCount(), actual.getDeletedRowCount()); + assertEquals(expected.getInsertedRowCount(), actual.getInsertedRowCount()); + assertEquals(expected.getUpdatedRowCount(), actual.getUpdatedRowCount()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index 96bfa3f084e2..a28eae26b911 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -42,6 +42,15 @@ public class JobStatisticsTest { private static final RoutineId DDL_TARGET_ROUTINE = RoutineId.of("alpha", "beta", "gamma"); private static final Long ESTIMATE_BYTES_PROCESSED = 101L; private static final Long NUM_DML_AFFECTED_ROWS = 88L; + private static final Long DELETED_ROW_COUNT = 10L; + private static final Long INSERTED_ROW_COUNT = 20L; + private static final Long UPDATED_ROW_COUNT = 30L; + private static final DmlStats DML_STATS = + DmlStats.newBuilder() + .setDeletedRowCount(DELETED_ROW_COUNT) + .setInsertedRowCount(INSERTED_ROW_COUNT) + .setUpdatedRowCount(UPDATED_ROW_COUNT) + .build(); private static final QueryStatistics.StatementType STATEMENT_TYPE = QueryStatistics.StatementType.SELECT; private static final Long TOTAL_BYTES_BILLED = 24L; @@ -147,6 +156,7 @@ public class JobStatisticsTest { .setDDLTargetRoutine(DDL_TARGET_ROUTINE) .setEstimatedBytesProcessed(ESTIMATE_BYTES_PROCESSED) .setNumDmlAffectedRows(NUM_DML_AFFECTED_ROWS) + .setDmlStats(DML_STATS) .setReferenceTables(REFERENCED_TABLES) .setStatementType(STATEMENT_TYPE) .setTotalBytesBilled(TOTAL_BYTES_BILLED) @@ -232,6 +242,7 @@ public void testBuilder() { assertEquals(DDL_TARGET_ROUTINE, QUERY_STATISTICS.getDdlTargetRoutine()); assertEquals(ESTIMATE_BYTES_PROCESSED, QUERY_STATISTICS.getEstimatedBytesProcessed()); assertEquals(NUM_DML_AFFECTED_ROWS, QUERY_STATISTICS.getNumDmlAffectedRows()); + assertEquals(DML_STATS, QUERY_STATISTICS.getDmlStats()); assertEquals(REFERENCED_TABLES, QUERY_STATISTICS.getReferencedTables()); assertEquals(STATEMENT_TYPE, QUERY_STATISTICS.getStatementType()); assertEquals(TOTAL_BYTES_BILLED, QUERY_STATISTICS.getTotalBytesBilled()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index a0135fb9eb39..1669343fb2c0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2205,6 +2205,26 @@ public void testFastQueryHTTPException() throws InterruptedException { } } + @Test + public void testDmlStatistics() throws InterruptedException { + String tableName = TABLE_ID_FASTQUERY.getTable(); + // Run a DML statement to UPDATE 2 rows of data + String dmlQuery = + String.format("UPDATE %s.%s SET StringField = 'hello' WHERE TRUE", DATASET, tableName); + QueryJobConfiguration dmlConfig = QueryJobConfiguration.newBuilder(dmlQuery).build(); + Job remoteJob = bigquery.create(JobInfo.of(dmlConfig)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + + TableResult result = remoteJob.getQueryResults(); + assertEquals(TABLE_SCHEMA, result.getSchema()); + + Job queryJob = bigquery.getJob(remoteJob.getJobId()); + JobStatistics.QueryStatistics statistics = queryJob.getStatistics(); + assertEquals(2L, statistics.getNumDmlAffectedRows().longValue()); + assertEquals(2L, statistics.getDmlStats().getUpdatedRowCount().longValue()); + } + @Test public void testScriptStatistics() throws InterruptedException { String script = From 80c0748eae58b44a3244933cf12a5d1832bc070e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 8 Jul 2021 11:44:12 -0700 Subject: [PATCH 1400/3441] chore: regenerate README (#1436) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-07-08 18:34:28,544 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-07-08 18:34:29,847 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/81d2ea6c-8e20-4fbf-9fdc-40a1d9147e9d/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index dc41041e8bac..85260c62ef88 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "e4dcd1a0a8b7e38ef8e366f4fe0e3ef306c3889f" + "sha": "9d67e05d2a6fab0c9e6017dec33b0d74ad821825" } }, { diff --git a/README.md b/README.md index 7edcbab0c7cc..11b0176157e8 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:20.7.0') +implementation platform('com.google.cloud:libraries-bom:20.8.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From df8e146749591807ae5fe9694e32b02ea24dc7db Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 8 Jul 2021 19:20:23 +0000 Subject: [PATCH 1401/3441] chore: release 1.136.0 (#1435) :robot: I have created a release \*beep\* \*boop\* --- ## [1.136.0](https://www.github.com/googleapis/java-bigquery/compare/v1.135.4...v1.136.0) (2021-07-08) ### Features * add dmlStatistics support ([#1431](https://www.github.com/googleapis/java-bigquery/issues/1431)) ([9d67e05](https://www.github.com/googleapis/java-bigquery/commit/9d67e05d2a6fab0c9e6017dec33b0d74ad821825)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e4789162d150..37703e4d1387 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [1.136.0](https://www.github.com/googleapis/java-bigquery/compare/v1.135.4...v1.136.0) (2021-07-08) + + +### Features + +* add dmlStatistics support ([#1431](https://www.github.com/googleapis/java-bigquery/issues/1431)) ([9d67e05](https://www.github.com/googleapis/java-bigquery/commit/9d67e05d2a6fab0c9e6017dec33b0d74ad821825)) + ### [1.135.4](https://www.github.com/googleapis/java-bigquery/compare/v1.135.3...v1.135.4) (2021-07-08) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f6f7bb18c717..2d2aa79784a9 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.135.5-SNAPSHOT + 1.136.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 682de7512888..9f474ba17de1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.135.5-SNAPSHOT + 1.136.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.135.5-SNAPSHOT + 1.136.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d611bdef0787..3db6cddb023e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.135.5-SNAPSHOT + 1.136.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.135.5-SNAPSHOT + 1.136.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d978209e05d0..ad6018b83051 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.135.5-SNAPSHOT + 1.136.0 diff --git a/versions.txt b/versions.txt index 417a2a8dd0e3..b630ecfe341a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.135.4:1.135.5-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.136.0:1.136.0 \ No newline at end of file From d658bce1820279e9a6fb22570c9092283810633a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 8 Jul 2021 19:32:23 +0000 Subject: [PATCH 1402/3441] chore: release 1.136.1-SNAPSHOT (#1438) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2d2aa79784a9..e020261d5d29 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.136.0 + 1.136.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9f474ba17de1..3d27c9c455f7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.136.0 + 1.136.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.136.0 + 1.136.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3db6cddb023e..a246db86b0bf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.136.0 + 1.136.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.136.0 + 1.136.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ad6018b83051..e4f7217814ad 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.136.0 + 1.136.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index b630ecfe341a..1e049cff6d8a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.136.0:1.136.0 \ No newline at end of file +google-cloud-bigquery:1.136.0:1.136.1-SNAPSHOT \ No newline at end of file From 3d17e181472b60805a12e446463c13e1788416ec Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 8 Jul 2021 22:51:08 +0200 Subject: [PATCH 1403/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v20.8.0 (#1437) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 17e7692639be..75dcec18d913 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 20.7.0 + 20.8.0 pom import From 526c517f1940007e532c7e1f7e1fa01a985f30e2 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 8 Jul 2021 14:04:08 -0700 Subject: [PATCH 1404/3441] chore: regenerate README (#1440) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-07-08 20:53:20,676 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-07-08 20:53:22,072 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/4926a2b2-9b00-4061-9c12-b8f03ce3b96b/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 85260c62ef88..aae983ab728b 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "9d67e05d2a6fab0c9e6017dec33b0d74ad821825" + "sha": "3d17e181472b60805a12e446463c13e1788416ec" } }, { diff --git a/README.md b/README.md index 11b0176157e8..46d660b105d3 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 20.7.0 + 20.8.0 pom import @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.135.4' +compile 'com.google.cloud:google-cloud-bigquery:1.136.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.135.4" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.136.0" ``` ## Authentication From f8c8eab97a431abef442e9622b8ecce851f052d9 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 9 Jul 2021 04:11:26 -0700 Subject: [PATCH 1405/3441] chore: remove All rights reserved clause from java.header (#1441) After discussion with OSPO, it has been decided to remove "All rights reserved" clause from the java.header file to better reflect the [correct license header](https://g3doc.corp.google.com/company/teams/opensource/releasing/preparing.md?cl=head#Apache-header). Source-Author: Neenu Shaji Source-Date: Thu Jul 8 18:00:44 2021 -0400 Source-Repo: googleapis/synthtool Source-Sha: 09c59c20a4bf0daed1665af59035ff240fe356df Source-Link: https://github.com/googleapis/synthtool/commit/09c59c20a4bf0daed1665af59035ff240fe356df --- java.header | 2 +- synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/java.header b/java.header index 3a9b503aa24f..d0970ba7d375 100644 --- a/java.header +++ b/java.header @@ -1,5 +1,5 @@ ^/\*$ -^ \* Copyright \d\d\d\d,? Google (Inc\.|LLC)( All [rR]ights [rR]eserved\.)?$ +^ \* Copyright \d\d\d\d,? Google (Inc\.|LLC)$ ^ \*$ ^ \* Licensed under the Apache License, Version 2\.0 \(the "License"\);$ ^ \* you may not use this file except in compliance with the License\.$ diff --git a/synth.metadata b/synth.metadata index c7077792b612..efc71a09893f 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "c9c948127fa7a07661809698c18b1850207a3479" + "sha": "526c517f1940007e532c7e1f7e1fa01a985f30e2" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1c0c698705e668ccb3d68556ae7260f16ce63a6e" + "sha": "09c59c20a4bf0daed1665af59035ff240fe356df" } } ], From b7aef82248b7fe6bf672bd7394d69745c9fd3335 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 9 Jul 2021 13:11:41 +0200 Subject: [PATCH 1406/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.136.0 (#1439) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4697089debea..5900c73f633c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.135.4 + 1.136.0 From 5bee58910bb1725d46eaffb04a3451d8223f7c18 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 9 Jul 2021 04:24:08 -0700 Subject: [PATCH 1407/3441] chore: regenerate README (#1442) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-07-09 11:13:38,134 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-07-09 11:13:39,510 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/aac7f7e0-f599-4f64-b2ca-acc23b4c7490/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index aae983ab728b..4047572e2ef1 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "3d17e181472b60805a12e446463c13e1788416ec" + "sha": "b7aef82248b7fe6bf672bd7394d69745c9fd3335" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "39652e3948f455fd0b77535a0145eeec561a3706" + "sha": "09c59c20a4bf0daed1665af59035ff240fe356df" } } ] diff --git a/README.md b/README.md index 46d660b105d3..e3649f5251da 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.135.4 + 1.136.0 ``` From 44d97953febac11c9167efe6781c779f486355d0 Mon Sep 17 00:00:00 2001 From: Prashant Mishra Date: Wed, 14 Jul 2021 19:28:29 +0530 Subject: [PATCH 1408/3441] feat: Implemented BigQueryRetryAlgorithm to retry on the basis of the configured re-triable error messages (#1426) * Updated BigQueryImpl * Initial Commit * Using BigQueryRetryAlgorithm as the retry algorithm * Created BigQueryRetryAlgorithm as a subclass of RetryAlgorithm * BigQueryErrorMessages property file * Implemented Builder Logic for BigQueryRetryConfig * Using BigQueryRetryConfig for getQueryResults * Updated shouldRetry with the logic to retry based on error messages * Implemented null checks on shouldRetryBasedOnBigQueryRetryConfig * Removed `Status` from shouldRetryBasedOnBigQueryRetryConfig implementation * Removed unused imports * created DEFAULT_RATE_LIMIT_EXCEEDED_RETRY_CONFIG for getQueryResults * Added testGetQueryResultsRetry test for testing getQueryResults Retry * Overriding createNextAttempt method so that it generates an attempt based on the error message * Linted BigQueryRetryHelper * Linted testGetQueryResultsRetry * Linted BigQueryRetryAlgorithm * Linted BigQueryErrorMessages * Linted BigQueryRetryConfig * Fixed Linting * Fixed Linting * Fixed Linting * Created translateAndThrow(BigQueryRetryHelper.BigQueryRetryHelperException ex) method to handle BigQueryRetryHelperException * Handling BigQueryRetryHelper.BigQueryRetryHelperException for getQueryResults * Implementing BigQueryRetryHelper.runWithRetries from TableResult.queryRPC method * Implementing testFastQueryRateLimitIdempotency Method to test Idempotency of the BigQueryRetryHelper.runWithRetries for TableResult.query(...) * Changed DEFAULT_RATE_LIMIT_EXCEEDED_RETRY_CONFIG to DEFAULT_RETRY_CONFIG * Implemented `BigQueryRetryHelper.runWithRetries` on `QueryResponse waitForQueryResults` method, which is used by `TableResult getQueryResults` method * Revert "Implemented `BigQueryRetryHelper.runWithRetries` on `QueryResponse waitForQueryResults` method, which is used by `TableResult getQueryResults` method" This reverts commit 84a3418cb5d14111d3d9d48fbd925c2ba7c10420. * Revert "Changed DEFAULT_RATE_LIMIT_EXCEEDED_RETRY_CONFIG to DEFAULT_RETRY_CONFIG" This reverts commit 22b17062788be5f8d8cd20a4b0d6804ad1c54463. * Renamed DEFAULT_RATE_LIMIT_EXCEEDED_RETRY_CONFIG to DEFAULT_RETRY_CONFIG * Revert "Renamed DEFAULT_RATE_LIMIT_EXCEEDED_RETRY_CONFIG to DEFAULT_RETRY_CONFIG" This reverts commit 2d21e116c4384402d6362937e61f4de51936b06c. * Renamed DEFAULT_RATE_LIMIT_EXCEEDED_RETRY_CONFIG to DEFAULT_RETRY_CONFIG * Implemented BigQueryRetryHelper.runWithRetries on `QueryResponse waitForQueryResults` method, which is used by `TableResult getQueryResults` method --- .../cloud/bigquery/BigQueryErrorMessages.java | 22 +++ .../cloud/bigquery/BigQueryException.java | 8 + .../google/cloud/bigquery/BigQueryImpl.java | 21 ++- .../bigquery/BigQueryRetryAlgorithm.java | 152 ++++++++++++++++++ .../cloud/bigquery/BigQueryRetryConfig.java | 54 +++++++ .../cloud/bigquery/BigQueryRetryHelper.java | 76 +++++++++ .../java/com/google/cloud/bigquery/Job.java | 20 ++- .../cloud/bigquery/BigQueryImplTest.java | 93 +++++++++++ 8 files changed, 433 insertions(+), 13 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryErrorMessages.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryConfig.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryErrorMessages.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryErrorMessages.java new file mode 100644 index 000000000000..04cabfc67e3a --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryErrorMessages.java @@ -0,0 +1,22 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +public class BigQueryErrorMessages { + public static final String RATE_LIMIT_EXCEEDED_MSG = + "Exceeded rate limits:"; // Error Message for RateLimitExceeded Error +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java index 8d6da0b4e9d9..06cbf344c9e0 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java @@ -122,6 +122,14 @@ static BaseServiceException translateAndThrow(RetryHelperException ex) { throw new BigQueryException(UNKNOWN_CODE, ex.getMessage(), ex.getCause()); } + static BaseServiceException translateAndThrow( + BigQueryRetryHelper.BigQueryRetryHelperException ex) { + if (ex.getCause() instanceof BaseServiceException) { + throw (BaseServiceException) ex.getCause(); + } + throw new BigQueryException(UNKNOWN_CODE, ex.getMessage(), ex.getCause()); + } + static BaseServiceException translateAndThrow(ExecutionException ex) { BaseServiceException.translate(ex); throw new BigQueryException(UNKNOWN_CODE, ex.getMessage(), ex.getCause()); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 4086c6a7356c..c871eb551e29 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -237,6 +237,10 @@ public Page getNextPage() { } private final BigQueryRpc bigQueryRpc; + private static final BigQueryRetryConfig DEFAULT_RETRY_CONFIG = + BigQueryRetryConfig.newBuilder() + .retryOnMessage(BigQueryErrorMessages.RATE_LIMIT_EXCEEDED_MSG) + .build(); // retry config with Error Message for RateLimitExceeded Error BigQueryImpl(BigQueryOptions options) { super(options); @@ -1271,7 +1275,7 @@ private TableResult queryRpc( com.google.api.services.bigquery.model.QueryResponse results; try { results = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override public com.google.api.services.bigquery.model.QueryResponse call() { @@ -1280,8 +1284,9 @@ public com.google.api.services.bigquery.model.QueryResponse call() { }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - } catch (RetryHelperException e) { + getOptions().getClock(), + DEFAULT_RETRY_CONFIG); + } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -1362,7 +1367,7 @@ private static QueryResponse getQueryResults( : jobId.getLocation()); try { GetQueryResultsResponse results = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override public GetQueryResultsResponse call() { @@ -1376,8 +1381,10 @@ public GetQueryResultsResponse call() { } }, serviceOptions.getRetrySettings(), - EXCEPTION_HANDLER, - serviceOptions.getClock()); + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + serviceOptions.getClock(), + DEFAULT_RETRY_CONFIG); + TableSchema schemaPb = results.getSchema(); ImmutableList.Builder errors = ImmutableList.builder(); @@ -1393,7 +1400,7 @@ public GetQueryResultsResponse call() { .setTotalRows(results.getTotalRows() == null ? 0 : results.getTotalRows().longValue()) .setErrors(errors.build()) .build(); - } catch (RetryHelper.RetryHelperException e) { + } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java new file mode 100644 index 000000000000..1a75a9c08b06 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java @@ -0,0 +1,152 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.api.gax.retrying.ResultRetryAlgorithm; +import com.google.api.gax.retrying.ResultRetryAlgorithmWithContext; +import com.google.api.gax.retrying.RetryAlgorithm; +import com.google.api.gax.retrying.RetryingContext; +import com.google.api.gax.retrying.TimedAttemptSettings; +import com.google.api.gax.retrying.TimedRetryAlgorithm; +import com.google.api.gax.retrying.TimedRetryAlgorithmWithContext; +import java.util.Iterator; +import java.util.concurrent.CancellationException; + +public class BigQueryRetryAlgorithm extends RetryAlgorithm { + private final BigQueryRetryConfig bigQueryRetryConfig; + private final ResultRetryAlgorithm resultAlgorithm; + private final TimedRetryAlgorithm timedAlgorithm; + private final ResultRetryAlgorithmWithContext resultAlgorithmWithContext; + private final TimedRetryAlgorithmWithContext timedAlgorithmWithContext; + + public BigQueryRetryAlgorithm( + ResultRetryAlgorithm resultAlgorithm, + TimedRetryAlgorithm timedAlgorithm, + BigQueryRetryConfig bigQueryRetryConfig) { + super(resultAlgorithm, timedAlgorithm); + this.bigQueryRetryConfig = checkNotNull(bigQueryRetryConfig); + this.resultAlgorithm = checkNotNull(resultAlgorithm); + this.timedAlgorithm = checkNotNull(timedAlgorithm); + this.resultAlgorithmWithContext = null; + this.timedAlgorithmWithContext = null; + } + + @Override + public boolean shouldRetry( + RetryingContext context, + Throwable previousThrowable, + ResponseT previousResponse, + TimedAttemptSettings nextAttemptSettings) + throws CancellationException { + // Implementing shouldRetryBasedOnBigQueryRetryConfig so that we can retry exceptions based on + // the exception messages + return (shouldRetryBasedOnResult(context, previousThrowable, previousResponse) + || shouldRetryBasedOnBigQueryRetryConfig(previousThrowable, bigQueryRetryConfig)) + && shouldRetryBasedOnTiming(context, nextAttemptSettings); + } + + private boolean shouldRetryBasedOnBigQueryRetryConfig( + Throwable previousThrowable, BigQueryRetryConfig bigQueryRetryConfig) { + /* + We are deciding if a given error should be retried on the basis of error message. + Cannot rely on Error/Status code as for example error code 400 (which is not retriable) could be thrown due to rateLimitExceed, which is retriable + */ + String errorDesc; + if (previousThrowable != null && (errorDesc = previousThrowable.getMessage()) != null) { + for (Iterator retriableMessages = + bigQueryRetryConfig.getRetriableErrorMessages().iterator(); + retriableMessages.hasNext(); ) { + if (errorDesc.contains(retriableMessages.next())) { // Error message should be retried + return true; + } + } + } + return false; + } + + /*Duplicating this method as it can not be inherited from the RetryAlgorithm due to the default access modifier*/ + boolean shouldRetryBasedOnResult( + RetryingContext context, Throwable previousThrowable, ResponseT previousResponse) { + if (resultAlgorithmWithContext != null && context != null) { + return resultAlgorithmWithContext.shouldRetry(context, previousThrowable, previousResponse); + } + return getResultAlgorithm().shouldRetry(previousThrowable, previousResponse); + } + + /*Duplicating this method as it can not be inherited from the RetryAlgorithm due to the private access modifier*/ + private boolean shouldRetryBasedOnTiming( + RetryingContext context, TimedAttemptSettings nextAttemptSettings) { + if (nextAttemptSettings == null) { + return false; + } + if (timedAlgorithmWithContext != null && context != null) { + return timedAlgorithmWithContext.shouldRetry(context, nextAttemptSettings); + } + return getTimedAlgorithm().shouldRetry(nextAttemptSettings); + } + + @Override + public TimedAttemptSettings createNextAttempt( + RetryingContext context, + Throwable previousThrowable, + ResponseT previousResponse, + TimedAttemptSettings previousSettings) { + // a small optimization that avoids calling relatively heavy methods + // like timedAlgorithm.createNextAttempt(), when it is not necessary. + + if (!((shouldRetryBasedOnResult(context, previousThrowable, previousResponse) + || shouldRetryBasedOnBigQueryRetryConfig( + previousThrowable, + bigQueryRetryConfig)))) { // Calling shouldRetryBasedOnBigQueryRetryConfig to check if + // the error message could be retried + return null; + } + + TimedAttemptSettings newSettings = + createNextAttemptBasedOnResult( + context, previousThrowable, previousResponse, previousSettings); + if (newSettings == null) { + newSettings = createNextAttemptBasedOnTiming(context, previousSettings); + } + return newSettings; + } + + /*Duplicating this method as it can not be inherited from the RetryAlgorithm due to the private access modifier*/ + private TimedAttemptSettings createNextAttemptBasedOnResult( + RetryingContext context, + Throwable previousThrowable, + ResponseT previousResponse, + TimedAttemptSettings previousSettings) { + if (resultAlgorithmWithContext != null && context != null) { + return resultAlgorithmWithContext.createNextAttempt( + context, previousThrowable, previousResponse, previousSettings); + } + return getResultAlgorithm() + .createNextAttempt(previousThrowable, previousResponse, previousSettings); + } + + /*Duplicating this method as it can not be inherited from the RetryAlgorithm due to the private access modifier*/ + private TimedAttemptSettings createNextAttemptBasedOnTiming( + RetryingContext context, TimedAttemptSettings previousSettings) { + if (timedAlgorithmWithContext != null && context != null) { + return timedAlgorithmWithContext.createNextAttempt(context, previousSettings); + } + return getTimedAlgorithm().createNextAttempt(previousSettings); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryConfig.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryConfig.java new file mode 100644 index 000000000000..7e28e570730c --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryConfig.java @@ -0,0 +1,54 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.common.collect.ImmutableSet; + +public class BigQueryRetryConfig { + private final ImmutableSet retriableErrorMessages; + + private BigQueryRetryConfig(Builder builder) { + retriableErrorMessages = builder.retriableErrorMessages.build(); + } + + public ImmutableSet getRetriableErrorMessages() { + return retriableErrorMessages; + } + + // BigQueryRetryConfig builder + public static class Builder { + private final ImmutableSet.Builder retriableErrorMessages = ImmutableSet.builder(); + + private Builder() {} + + public final Builder retryOnMessage(String... errorMessages) { + for (String errorMessage : errorMessages) { + retriableErrorMessages.add(checkNotNull(errorMessage)); + } + return this; + } + + public BigQueryRetryConfig build() { + return new BigQueryRetryConfig(this); + } + } + + public static Builder newBuilder() { + return new Builder(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java new file mode 100644 index 000000000000..7c1e0e5927e9 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java @@ -0,0 +1,76 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import com.google.api.core.ApiClock; +import com.google.api.gax.retrying.*; +import com.google.cloud.RetryHelper; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; + +public class BigQueryRetryHelper extends RetryHelper { + + public static V runWithRetries( + Callable callable, + RetrySettings retrySettings, + ResultRetryAlgorithm resultRetryAlgorithm, + ApiClock clock, + BigQueryRetryConfig bigQueryRetryConfig) + throws RetryHelperException { + try { + // Suppressing should be ok as a workaraund. Current and only ResultRetryAlgorithm + // implementation does not use response at all, so ignoring its type is ok. + @SuppressWarnings("unchecked") + ResultRetryAlgorithm algorithm = (ResultRetryAlgorithm) resultRetryAlgorithm; + return run( + callable, + new ExponentialRetryAlgorithm(retrySettings, clock), + algorithm, + bigQueryRetryConfig); + } catch (Exception e) { + throw new BigQueryRetryHelperException(e.getCause()); + } + } + + private static V run( + Callable callable, + TimedRetryAlgorithm timedAlgorithm, + ResultRetryAlgorithm resultAlgorithm, + BigQueryRetryConfig bigQueryRetryConfig) + throws ExecutionException, InterruptedException { + RetryAlgorithm retryAlgorithm = + new BigQueryRetryAlgorithm<>( + resultAlgorithm, + timedAlgorithm, + bigQueryRetryConfig); // using BigQueryRetryAlgorithm in place of + // com.google.api.gax.retrying.RetryAlgorithm, as + // BigQueryRetryAlgorithm retries considering bigQueryRetryConfig + RetryingExecutor executor = new DirectRetryingExecutor<>(retryAlgorithm); + + RetryingFuture retryingFuture = executor.createFuture(callable); + executor.submit(retryingFuture); + return retryingFuture.get(); + } + + public static class BigQueryRetryHelperException extends RuntimeException { + + private static final long serialVersionUID = -8519852520090965314L; + + BigQueryRetryHelperException(Throwable cause) { + super(cause); + } + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index 6ef7eb9061b8..7ed27676ce69 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -73,6 +73,10 @@ public class Job extends JobInfo { private final BigQueryOptions options; private transient BigQuery bigquery; + private static final BigQueryRetryConfig DEFAULT_RETRY_CONFIG = + BigQueryRetryConfig.newBuilder() + .retryOnMessage(BigQueryErrorMessages.RATE_LIMIT_EXCEEDED_MSG) + .build(); // retry config with Error Message for RateLimitExceeded Error /** A builder for {@code Job} objects. */ public static final class Builder extends JobInfo.Builder { @@ -319,7 +323,7 @@ public TableResult getQueryResults(QueryResultsOption... options) } private QueryResponse waitForQueryResults( - RetrySettings waitSettings, final QueryResultsOption... resultsOptions) + RetrySettings retrySettings, final QueryResultsOption... resultsOptions) throws InterruptedException { if (getConfiguration().getType() != Type.QUERY) { throw new UnsupportedOperationException( @@ -327,22 +331,26 @@ private QueryResponse waitForQueryResults( } try { - return RetryHelper.poll( + return BigQueryRetryHelper.runWithRetries( new Callable() { @Override public QueryResponse call() { return bigquery.getQueryResults(getJobId(), resultsOptions); } }, - waitSettings, + retrySettings, new BasicResultRetryAlgorithm() { @Override - public boolean shouldRetry(Throwable prevThrowable, QueryResponse prevResponse) { + public boolean shouldRetry( + Throwable prevThrowable, + QueryResponse + prevResponse) { // Used by BigQueryRetryAlgorithm.shouldRetryBasedOnResult return prevResponse != null && !prevResponse.getCompleted(); } }, - options.getClock()); - } catch (ExecutionException e) { + options.getClock(), + DEFAULT_RETRY_CONFIG); + } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 7c970313fb67..654cc0266814 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -2173,6 +2173,49 @@ public void testGetQueryResults() { verify(bigqueryRpcMock).getQueryResults(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } + @Test + public void testGetQueryResultsRetry() { + JobId queryJob = JobId.of(JOB); + GetQueryResultsResponse responsePb = + new GetQueryResultsResponse() + .setEtag("etag") + .setJobReference(queryJob.toPb()) + .setRows(ImmutableList.of(TABLE_ROW)) + .setJobComplete(true) + .setCacheHit(false) + .setPageToken(CURSOR) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)); + + when(bigqueryRpcMock.getQueryResults(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .thenThrow(new BigQueryException(500, "InternalError")) + .thenThrow(new BigQueryException(502, "Bad Gateway")) + .thenThrow(new BigQueryException(503, "Service Unavailable")) + .thenThrow(new BigQueryException(504, "Gateway Timeout")) + .thenThrow( + new BigQueryException( + 400, + BigQueryErrorMessages + .RATE_LIMIT_EXCEEDED_MSG)) // retrial on based on RATE_LIMIT_EXCEEDED_MSG + .thenReturn(responsePb); + + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + + QueryResponse response = bigquery.getQueryResults(queryJob); + assertEquals(true, response.getCompleted()); + assertEquals(null, response.getSchema()); + // IMP: Unable to test for idempotency of the requests using getQueryResults(PROJECT, JOB, null, + // EMPTY_RPC_OPTIONS) as there is no + // identifier in this method which will can potentially differ and which can be used to + // establish idempotency + verify(bigqueryRpcMock, times(6)).getQueryResults(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); + } + @Test public void testGetQueryResultsWithProject() { JobId queryJob = JobId.of(OTHER_PROJECT, JOB); @@ -2377,6 +2420,56 @@ public void testFastQueryDMLShouldRetry() throws Exception { verify(bigqueryRpcMock, times(5)).queryRpc(eq(PROJECT), requestPbCapture.capture()); } + @Test + public void testFastQueryRateLimitIdempotency() throws Exception { + com.google.api.services.bigquery.model.QueryResponse responsePb = + new com.google.api.services.bigquery.model.QueryResponse() + .setCacheHit(false) + .setJobComplete(true) + .setRows(ImmutableList.of(TABLE_ROW)) + .setPageToken(null) + .setTotalBytesProcessed(42L) + .setNumDmlAffectedRows(1L) + .setSchema(TABLE_SCHEMA.toPb()); + + when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + .thenThrow(new BigQueryException(500, "InternalError")) + .thenThrow(new BigQueryException(502, "Bad Gateway")) + .thenThrow(new BigQueryException(503, "Service Unavailable")) + .thenThrow(new BigQueryException(504, "Gateway Timeout")) + .thenThrow( + new BigQueryException( + 400, + BigQueryErrorMessages + .RATE_LIMIT_EXCEEDED_MSG)) // retrial on based on RATE_LIMIT_EXCEEDED_MSG + .thenReturn(responsePb); + + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + + TableResult response = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY); + assertEquals(TABLE_SCHEMA, response.getSchema()); + assertEquals(1, response.getTotalRows()); + + List allRequests = requestPbCapture.getAllValues(); + boolean idempotent = true; + String firstRequestId = allRequests.get(0).getRequestId(); + for (QueryRequest request : allRequests) { + idempotent = + idempotent + && request + .getRequestId() + .equals(firstRequestId); // all the requestIds should be the same + } + + assertTrue(idempotent); + verify(bigqueryRpcMock, times(6)).queryRpc(eq(PROJECT), requestPbCapture.capture()); + } + @Test public void testFastQueryDDLShouldRetry() throws Exception { com.google.api.services.bigquery.model.QueryResponse responsePb = From 271b8612da64e5216ac6dc5a39493b0593b23320 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 14 Jul 2021 16:35:24 +0200 Subject: [PATCH 1409/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.118.0 (#1445) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a246db86b0bf..f8098e0e8028 100644 --- a/pom.xml +++ b/pom.xml @@ -108,7 +108,7 @@ com.google.cloud google-cloud-storage - 1.117.1 + 1.118.0 test From 152fcbc6ed1c1fa15882f47bc9fb18e67c6064da Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 14 Jul 2021 14:49:22 -0400 Subject: [PATCH 1410/3441] chore: release 1.137.0 (#1446) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37703e4d1387..61a928803616 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [1.137.0](https://www.github.com/googleapis/java-bigquery/compare/v1.136.0...v1.137.0) (2021-07-14) + + +### Features + +* Implemented BigQueryRetryAlgorithm to retry on the basis of the configured re-triable error messages ([#1426](https://www.github.com/googleapis/java-bigquery/issues/1426)) ([44d9795](https://www.github.com/googleapis/java-bigquery/commit/44d97953febac11c9167efe6781c779f486355d0)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v1.118.0 ([#1445](https://www.github.com/googleapis/java-bigquery/issues/1445)) ([271b861](https://www.github.com/googleapis/java-bigquery/commit/271b8612da64e5216ac6dc5a39493b0593b23320)) + ## [1.136.0](https://www.github.com/googleapis/java-bigquery/compare/v1.135.4...v1.136.0) (2021-07-08) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index e020261d5d29..73c531d1e5ed 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.136.1-SNAPSHOT + 1.137.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3d27c9c455f7..3962853ead4c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.136.1-SNAPSHOT + 1.137.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.136.1-SNAPSHOT + 1.137.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f8098e0e8028..a26524e47e7c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.136.1-SNAPSHOT + 1.137.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.136.1-SNAPSHOT + 1.137.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e4f7217814ad..34e15c6977cc 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.136.1-SNAPSHOT + 1.137.0 diff --git a/versions.txt b/versions.txt index 1e049cff6d8a..0d84de13f0b9 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.136.0:1.136.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.137.0:1.137.0 \ No newline at end of file From 0580c93cb0260c872a4f8378c687a85cb398ed3a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 15 Jul 2021 00:15:29 +0200 Subject: [PATCH 1411/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.137.0 (#1449) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5900c73f633c..5599ed758b94 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.136.0 + 1.137.0 From c4684d295b7e0a8e360ccaf56ad595d87a0ad7b5 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 15 Jul 2021 12:47:23 -0400 Subject: [PATCH 1412/3441] chore: update dependencyDashboard labels (#1450) --- renovate.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index cc3338a4d27d..2b19d40fdf0c 100644 --- a/renovate.json +++ b/renovate.json @@ -78,5 +78,8 @@ } ], "semanticCommits": true, - "masterIssue": true + "dependencyDashboard": true, + "dependencyDashboardLabels": [ + "type: process" + ] } From 1649761866b8a81e6ff6f77a5040c0f54b49720a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 15 Jul 2021 10:38:11 -0700 Subject: [PATCH 1413/3441] chore: regenerate README (#1447) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-07-14 14:00:36,442 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-07-14 14:00:38,032 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/f091cf98-ac21-47fe-84f4-e8de387b2a31/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 6 +-- README.md | 48 +++++++++++++++++++- 2 files changed, 50 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 4047572e2ef1..feb26e69b8fc 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,15 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b7aef82248b7fe6bf672bd7394d69745c9fd3335" + "sha": "44d97953febac11c9167efe6781c779f486355d0" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "09c59c20a4bf0daed1665af59035ff240fe356df" + "sha": "959d4f81f2d1397297ebda90212df92aa0ef3a6a" } } ] -} \ No newline at end of file +} diff --git a/README.md b/README.md index e3649f5251da..fa0455d5b5b5 100644 --- a/README.md +++ b/README.md @@ -240,10 +240,50 @@ has instructions for running the samples. To get help, follow the instructions in the [shared Troubleshooting document][troubleshooting]. -## Java Versions +## Supported Java Versions Java 7 or above is required for using this client. +Google's Java client libraries, +[Google Cloud Client Libraries][cloudlibs] +and +[Google Cloud API Libraries][apilibs], +follow the +[Oracle Java SE support roadmap][oracle] +(see the Oracle Java SE Product Releases section). + +### For new development + +In general, new feature development occurs with support for the lowest Java +LTS version covered by Oracle's Premier Support (which typically lasts 5 years +from initial General Availability). If the minimum required JVM for a given +library is changed, it is accompanied by a [semver][semver] major release. + +Java 11 and (in September 2021) Java 17 are the best choices for new +development. + +### Keeping production systems current + +Google tests its client libraries with all current LTS versions covered by +Oracle's Extended Support (which typically lasts 8 years from initial +General Availability). + +#### Legacy support + +Google's client libraries support legacy versions of Java runtimes with long +term stable libraries that don't receive feature updates on a best efforts basis +as it may not be possible to backport all patches. + +Google provides updates on a best efforts basis to apps that continue to use +Java 7, though apps might need to upgrade to current versions of the library +that supports their JVM. + +#### Where to find specific information + +The latest versions and the supported Java versions are identified on +the individual GitHub repository `github.com/GoogleAPIs/java-SERVICENAME` +and on [google-cloud-java][g-c-j]. + ## Versioning @@ -304,3 +344,9 @@ Java is a registered trademark of Oracle and/or its affiliates. [enable-api]: https://console.cloud.google.com/flows/enableapi?apiid=bigquery.googleapis.com [libraries-bom]: https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google-Cloud-Platform-Libraries-BOM [shell_img]: https://gstatic.com/cloudssh/images/open-btn.png + +[semver]: https://semver.org/ +[cloudlibs]: https://cloud.google.com/apis/docs/client-libraries-explained +[apilibs]: https://cloud.google.com/apis/docs/client-libraries-explained#google_api_client_libraries +[oracle]: https://www.oracle.com/java/technologies/java-se-support-roadmap.html +[g-c-j]: http://github.com/googleapis/google-cloud-java From 5130cd0c6ed1ef32b071b64448fa061328628bb9 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 15 Jul 2021 17:56:24 +0000 Subject: [PATCH 1414/3441] chore: release 1.137.1-SNAPSHOT (#1448) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 73c531d1e5ed..529dac04bd7a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.137.0 + 1.137.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3962853ead4c..780847d3b7ce 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.137.0 + 1.137.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.137.0 + 1.137.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a26524e47e7c..2e3e2089fa08 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.137.0 + 1.137.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.137.0 + 1.137.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 34e15c6977cc..376efb1c3d7e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.137.0 + 1.137.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0d84de13f0b9..0fbef41b6b53 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.137.0:1.137.0 \ No newline at end of file +google-cloud-bigquery:1.137.0:1.137.1-SNAPSHOT \ No newline at end of file From ea962e5fe8ab8b1247f47d9256c79e9291021dfb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 15 Jul 2021 12:48:28 -0700 Subject: [PATCH 1415/3441] chore: regenerate README (#1451) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-07-15 17:40:24,538 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-07-15 17:40:26,878 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/5fef9a31-e50d-446f-9f08-89e25341cfe1/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index feb26e69b8fc..bafc7ea1c6a6 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "44d97953febac11c9167efe6781c779f486355d0" + "sha": "1649761866b8a81e6ff6f77a5040c0f54b49720a" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "959d4f81f2d1397297ebda90212df92aa0ef3a6a" + "sha": "4124d245133c0f740ac5e6fa2e7daeba327f1297" } } ] diff --git a/README.md b/README.md index fa0455d5b5b5..0c50bf1f95ae 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.136.0 + 1.137.0 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.136.0' +compile 'com.google.cloud:google-cloud-bigquery:1.137.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.136.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.137.0" ``` ## Authentication From fea5eca733d501b72b8713e555f54dc86bbde85f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 20 Jul 2021 20:17:22 +0200 Subject: [PATCH 1416/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v1.27.3 (#1452) * deps: update dependency com.google.cloud:google-cloud-bigtable to v1.27.3 * Update ITBigQueryTest.java Co-authored-by: Stephanie Wang --- .../test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 1 - samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 1669343fb2c0..1e0291757ad6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3118,7 +3118,6 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo assertEquals(2L, statistics.getOutputRows().longValue()); LoadJobConfiguration jobConfiguration = job.getConfiguration(); assertEquals(TABLE_SCHEMA, jobConfiguration.getSchema()); - assertNull(jobConfiguration.getSourceUris()); assertNull(job.getStatus().getError()); Page rows = bigquery.listTableData(tableId); int rowCount = 0; diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5599ed758b94..7b8db0bb127a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.27.2 + 1.27.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 376efb1c3d7e..c3ee223cacf1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.27.2 + 1.27.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 75dcec18d913..0b87f947dd43 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.27.2 + 1.27.3 test From 53d832d741e21a985e90c98796cde4311a8e8c49 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 20 Jul 2021 18:30:26 +0000 Subject: [PATCH 1417/3441] chore: release 1.137.1 (#1453) :robot: I have created a release \*beep\* \*boop\* --- ### [1.137.1](https://www.github.com/googleapis/java-bigquery/compare/v1.137.0...v1.137.1) (2021-07-20) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v1.27.3 ([#1452](https://www.github.com/googleapis/java-bigquery/issues/1452)) ([fea5eca](https://www.github.com/googleapis/java-bigquery/commit/fea5eca733d501b72b8713e555f54dc86bbde85f)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 61a928803616..1fd4c8bcdb79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [1.137.1](https://www.github.com/googleapis/java-bigquery/compare/v1.137.0...v1.137.1) (2021-07-20) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v1.27.3 ([#1452](https://www.github.com/googleapis/java-bigquery/issues/1452)) ([fea5eca](https://www.github.com/googleapis/java-bigquery/commit/fea5eca733d501b72b8713e555f54dc86bbde85f)) + ## [1.137.0](https://www.github.com/googleapis/java-bigquery/compare/v1.136.0...v1.137.0) (2021-07-14) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 529dac04bd7a..498feacd90a5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.137.1-SNAPSHOT + 1.137.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 780847d3b7ce..791daeb241aa 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.137.1-SNAPSHOT + 1.137.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.137.1-SNAPSHOT + 1.137.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2e3e2089fa08..c532a3415260 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.137.1-SNAPSHOT + 1.137.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.137.1-SNAPSHOT + 1.137.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c3ee223cacf1..491c439fff09 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.137.1-SNAPSHOT + 1.137.1 diff --git a/versions.txt b/versions.txt index 0fbef41b6b53..a686574b76c4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.137.0:1.137.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.137.1:1.137.1 \ No newline at end of file From a4534276647ef4959e8d3bf1f8ddd2a44756e3eb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 20 Jul 2021 18:42:24 +0000 Subject: [PATCH 1418/3441] chore: release 1.137.2-SNAPSHOT (#1454) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 498feacd90a5..dd5e1957a60d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.137.1 + 1.137.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 791daeb241aa..8de9d97f6b43 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.137.1 + 1.137.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.137.1 + 1.137.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c532a3415260..4fb2fc618dcd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.137.1 + 1.137.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.137.1 + 1.137.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 491c439fff09..3f09a7025ef0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.137.1 + 1.137.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index a686574b76c4..0a55f63e4e08 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.137.1:1.137.1 \ No newline at end of file +google-cloud-bigquery:1.137.1:1.137.2-SNAPSHOT \ No newline at end of file From d9a644b9321b3eabc2b19630d52a543f3f55e120 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 21 Jul 2021 19:04:49 +0200 Subject: [PATCH 1419/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v1.2.0 (#1456) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7b8db0bb127a..35cb93c97575 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.5 + 1.2.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3f09a7025ef0..91e4f4b1f95b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.5 + 1.2.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0b87f947dd43..3e09136ee58c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.1.5 + 1.2.0 test From 8aebe3d57b2bfe3b9fb521d790d816025cd6f51a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 21 Jul 2021 19:05:08 +0200 Subject: [PATCH 1420/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.137.1 (#1455) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 35cb93c97575..a658c0fbd849 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.137.0 + 1.137.1 From 7da9066e3dcf4ca324bf6e7c27646a5d79d1cd26 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 21 Jul 2021 10:18:26 -0700 Subject: [PATCH 1421/3441] chore: regenerate README (#1457) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-07-21 17:07:06,311 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-07-21 17:07:08,743 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/c96f6af5-b304-4409-a21d-c2c8aa43b2dd/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 6 +++--- README.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index bafc7ea1c6a6..ee1e7a7162c8 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,15 +4,15 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "1649761866b8a81e6ff6f77a5040c0f54b49720a" + "sha": "8aebe3d57b2bfe3b9fb521d790d816025cd6f51a" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "4124d245133c0f740ac5e6fa2e7daeba327f1297" + "sha": "1563597d28eca099d6411bbc29ecd09314a80746" } } ] -} +} \ No newline at end of file diff --git a/README.md b/README.md index 0c50bf1f95ae..b5d6856f0782 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.137.0 + 1.137.1 ``` @@ -53,12 +53,12 @@ compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.137.0' +compile 'com.google.cloud:google-cloud-bigquery:1.137.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.137.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.137.1" ``` ## Authentication From 6089e6a98c8e85538f330502ba278e8cc730f58d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 27 Jul 2021 18:19:27 +0200 Subject: [PATCH 1422/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v20.9.0 (#1460) * chore(deps): update dependency com.google.cloud:libraries-bom to v20.9.0 * Update pom.xml Co-authored-by: Stephanie Wang --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3e09136ee58c..1d7f01ba8ede 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 20.8.0 + 20.9.0 pom import From 4cc796e90272b284716494e337e92ddde561771b Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 27 Jul 2021 09:32:13 -0700 Subject: [PATCH 1423/3441] chore: regenerate README (#1463) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-07-27 16:21:44,428 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-07-27 16:21:45,704 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/3ae0c958-02c5-446d-9a4a-590df8bc91be/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 22 ++++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index ee1e7a7162c8..3bbb3a6a2d72 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "8aebe3d57b2bfe3b9fb521d790d816025cd6f51a" + "sha": "6089e6a98c8e85538f330502ba278e8cc730f58d" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1563597d28eca099d6411bbc29ecd09314a80746" + "sha": "3d32990b6f4b57be77455e3ca89e6e21cd0c06b3" } } ] diff --git a/README.md b/README.md index b5d6856f0782..c10a62e81d09 100644 --- a/README.md +++ b/README.md @@ -8,9 +8,11 @@ Java idiomatic client for [Cloud BigQuery][product-docs]. - [Product Documentation][product-docs] - [Client Library Documentation][javadocs] + ## Quickstart If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file + ```xml @@ -19,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 20.8.0 + 20.9.0 pom import @@ -36,6 +38,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google If you are using Maven without BOM, add this to your dependencies: + ```xml com.google.cloud @@ -46,17 +49,20 @@ If you are using Maven without BOM, add this to your dependencies: ``` If you are using Gradle 5.x or later, add this to your dependencies + ```Groovy -implementation platform('com.google.cloud:libraries-bom:20.8.0') +implementation platform('com.google.cloud:libraries-bom:20.9.0') compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies + ```Groovy compile 'com.google.cloud:google-cloud-bigquery:1.137.1' ``` If you are using SBT, add this to your dependencies + ```Scala libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.137.1" ``` @@ -65,6 +71,10 @@ libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.137.1" See the [Authentication][authentication] section in the base directory's README. +## Authorization + +The client application making API calls must be granted [authorization scopes][auth-scopes] required for the desired Cloud BigQuery APIs, and the authenticated principal must have the [IAM role(s)][predefined-iam-roles] required to access GCP resources using the Cloud BigQuery API calls. + ## Getting Started ### Prerequisites @@ -96,8 +106,7 @@ use this Cloud BigQuery Client Library. ## Samples -Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree/master/samples) directory. The samples' `README.md` -has instructions for running the samples. +Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree/master/samples) directory. | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | @@ -290,6 +299,7 @@ and on [google-cloud-java][g-c-j]. This library follows [Semantic Versioning](http://semver.org/). + ## Contributing @@ -301,6 +311,7 @@ Please note that this project is released with a Contributor Code of Conduct. By this project you agree to abide by its terms. See [Code of Conduct][code-of-conduct] for more information. + ## License Apache 2.0 - See [LICENSE][license] for more information. @@ -333,6 +344,9 @@ Java is a registered trademark of Oracle and/or its affiliates. [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg [maven-version-link]: https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigquery&core=gav [authentication]: https://github.com/googleapis/google-cloud-java#authentication +[auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes +[predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles +[iam-policy]: https://cloud.google.com/iam/docs/overview#cloud-iam-policy [developer-console]: https://console.developers.google.com/ [create-project]: https://cloud.google.com/resource-manager/docs/creating-managing-projects [cloud-sdk]: https://cloud.google.com/sdk/ From 0a8eac2b679cf3e330e7325452a09f99e352a380 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Jul 2021 23:54:25 +0200 Subject: [PATCH 1424/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.13.1 (#1464) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4fb2fc618dcd..efbae908e0a9 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.12.0 + 0.13.1 From 06df9a65bfd58794a0898b0919cd3706a2dddd31 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Tue, 3 Aug 2021 14:16:10 -0400 Subject: [PATCH 1425/3441] chore: fix checker-qual dependency issue (#1468) --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index efbae908e0a9..8b3e23a1e273 100644 --- a/pom.xml +++ b/pom.xml @@ -98,6 +98,12 @@ truth 1.1.3 test + + + org.checkerframework + checker-qual + + org.mockito From 079c6cd29950b0b9526507cc6da57e7d3de76049 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Tue, 3 Aug 2021 18:48:27 -0400 Subject: [PATCH 1426/3441] build: configure branch java7 as a release branch (#1470) enable releases --- .github/release-please.yml | 12 ++-- .github/sync-repo-settings.yaml | 119 +++++++++++++++----------------- 2 files changed, 64 insertions(+), 67 deletions(-) diff --git a/.github/release-please.yml b/.github/release-please.yml index c7b756e1bf13..e44bbbd7ecba 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -1,8 +1,12 @@ branches: -- branch: 1.127.12-sp - bumpMinorPreMajor: true - handleGHRelease: true - releaseType: java-lts + - branch: 1.127.12-sp + bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-lts + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-yoshi + branch: java7 bumpMinorPreMajor: true handleGHRelease: true releaseType: java-yoshi diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index ba8ff8a8dc8a..65592909d66f 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -1,68 +1,61 @@ -# Whether or not rebase-merging is enabled on this repository. -# Defaults to `true` rebaseMergeAllowed: true - -# Whether or not squash-merging is enabled on this repository. -# Defaults to `true` squashMergeAllowed: true - -# Whether or not PRs are merged with a merge commit on this repository. -# Defaults to `false` mergeCommitAllowed: false - -# Rules for master branch protection branchProtectionRules: -# Identifies the protection rule pattern. Name of the branch to be protected. -# Defaults to `master` -- pattern: master - # Can admins overwrite branch protection. - # Defaults to `true` - isAdminEnforced: true - # Number of approving reviews required to update matching branches. - # Defaults to `1` - requiredApprovingReviewCount: 1 - # Are reviews from code owners required to update matching branches. - # Defaults to `false` - requiresCodeOwnerReviews: true - # Require up to date branches - requiresStrictStatusChecks: false - # List of required status check contexts that must pass for commits to be accepted to matching branches. - requiredStatusCheckContexts: - - "dependencies (8)" - - "dependencies (11)" - - "linkage-monitor" - - "lint" - - "clirr" - - "units (7)" - - "units (8)" - - "units (11)" - - "Kokoro - Test: Integration" - - "cla/google" -- pattern: 1.127.12-sp - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - "dependencies (8)" - - "dependencies (11)" - - "linkage-monitor" - - "lint" - - "clirr" - - "units (7)" - - "units (8)" - - "units (11)" - - "Kokoro - Test: Integration" - - "cla/google" -# List of explicit permissions to add (additive only) + - pattern: master + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (8) + - dependencies (11) + - linkage-monitor + - lint + - clirr + - units (7) + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - pattern: 1.127.12-sp + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (8) + - dependencies (11) + - linkage-monitor + - lint + - clirr + - units (7) + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - pattern: java7 + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (8) + - dependencies (11) + - linkage-monitor + - lint + - clirr + - units (7) + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google permissionRules: -# Team slug to add to repository permissions -- team: api-bigquery - # Access level required, one of push|pull|admin|maintain|triage - permission: admin -- team: yoshi-java - permission: push -- team: yoshi-admins - permission: admin -- team: yoshi-java-admins - permission: admin + - team: api-bigquery + permission: admin + - team: yoshi-java + permission: push + - team: yoshi-admins + permission: admin + - team: yoshi-java-admins + permission: admin From 9df5ac2525e3aa9b52512d59cab0fc8b998f0bc9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 4 Aug 2021 17:40:05 +0200 Subject: [PATCH 1427/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210726-1.32.1 (#1469) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8b3e23a1e273..14d8e6840900 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210617-1.32.1 + v2-rev20210726-1.32.1 1.4.0
    From 4ae1be7b26fa1a3e84a47872b1b0ebaf0a7b885e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 4 Aug 2021 09:18:17 -0700 Subject: [PATCH 1428/3441] chore: remove java 7 units check (#1465) Source-Author: Neenu Shaji Source-Date: Wed Jul 28 18:18:26 2021 -0400 Source-Repo: googleapis/synthtool Source-Sha: 1a2878d6909dd10ca4e3c1b5943d6622e996054e Source-Link: https://github.com/googleapis/synthtool/commit/1a2878d6909dd10ca4e3c1b5943d6622e996054e --- .github/workflows/ci.yaml | 2 +- synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0195b32f00b4..65ae6ecdda77 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [7, 8, 11] + java: [8, 11] steps: - uses: actions/checkout@v2 - uses: actions/setup-java@v1 diff --git a/synth.metadata b/synth.metadata index efc71a09893f..04f29b61f94c 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "526c517f1940007e532c7e1f7e1fa01a985f30e2" + "sha": "0a8eac2b679cf3e330e7325452a09f99e352a380" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "09c59c20a4bf0daed1665af59035ff240fe356df" + "sha": "1a2878d6909dd10ca4e3c1b5943d6622e996054e" } } ], From 120343fc8f398f2a913106a9c1cdbd5cc70053af Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 4 Aug 2021 12:20:13 -0400 Subject: [PATCH 1429/3441] ci: remove Java 7 branch protection (#1476) --- .github/sync-repo-settings.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 65592909d66f..60fc43347a27 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -13,7 +13,6 @@ branchProtectionRules: - linkage-monitor - lint - clirr - - units (7) - units (8) - units (11) - 'Kokoro - Test: Integration' From 227983e2c69dfdd5001f9c951f086daadb937578 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 5 Aug 2021 18:47:33 +0200 Subject: [PATCH 1430/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2 (#1472) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 14d8e6840900..05532fd94787 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ google-cloud-bigquery-parent v2-rev20210726-1.32.1 - 1.4.0 + 2.0.0
    From f92cda6581ab29201f1df248e1d1425278414c74 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 5 Aug 2021 17:32:18 +0000 Subject: [PATCH 1431/3441] chore: release 1.137.2 (#1474) :robot: I have created a release \*beep\* \*boop\* --- ### [1.137.2](https://www.github.com/googleapis/java-bigquery/compare/v1.137.1...v1.137.2) (2021-08-05) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210726-1.32.1 ([#1469](https://www.github.com/googleapis/java-bigquery/issues/1469)) ([9df5ac2](https://www.github.com/googleapis/java-bigquery/commit/9df5ac2525e3aa9b52512d59cab0fc8b998f0bc9)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v2 ([#1472](https://www.github.com/googleapis/java-bigquery/issues/1472)) ([227983e](https://www.github.com/googleapis/java-bigquery/commit/227983e2c69dfdd5001f9c951f086daadb937578)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1fd4c8bcdb79..50faf1dfd170 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [1.137.2](https://www.github.com/googleapis/java-bigquery/compare/v1.137.1...v1.137.2) (2021-08-05) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210726-1.32.1 ([#1469](https://www.github.com/googleapis/java-bigquery/issues/1469)) ([9df5ac2](https://www.github.com/googleapis/java-bigquery/commit/9df5ac2525e3aa9b52512d59cab0fc8b998f0bc9)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2 ([#1472](https://www.github.com/googleapis/java-bigquery/issues/1472)) ([227983e](https://www.github.com/googleapis/java-bigquery/commit/227983e2c69dfdd5001f9c951f086daadb937578)) + ### [1.137.1](https://www.github.com/googleapis/java-bigquery/compare/v1.137.0...v1.137.1) (2021-07-20) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index dd5e1957a60d..93e734c51c15 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.137.2-SNAPSHOT + 1.137.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8de9d97f6b43..53193af39ccb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.137.2-SNAPSHOT + 1.137.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.137.2-SNAPSHOT + 1.137.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 05532fd94787..efa91627a1e0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.137.2-SNAPSHOT + 1.137.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.137.2-SNAPSHOT + 1.137.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 91e4f4b1f95b..ea2a871b5dc6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.137.2-SNAPSHOT + 1.137.2 diff --git a/versions.txt b/versions.txt index 0a55f63e4e08..78aacc2fe6ed 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.137.1:1.137.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:1.137.2:1.137.2 \ No newline at end of file From 563c30f2ed5db906b03ceffcc2c4e1c9cd8e8d20 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 5 Aug 2021 17:48:17 +0000 Subject: [PATCH 1432/3441] chore: release 1.137.3-SNAPSHOT (#1477) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 93e734c51c15..fd7b78612aa5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.137.2 + 1.137.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 53193af39ccb..daa06a95ca29 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.137.2 + 1.137.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.137.2 + 1.137.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index efa91627a1e0..f1c180150585 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.137.2 + 1.137.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.137.2 + 1.137.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ea2a871b5dc6..ee9332c71ad5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.137.2 + 1.137.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 78aacc2fe6ed..54035a102a01 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.137.2:1.137.2 \ No newline at end of file +google-cloud-bigquery:1.137.2:1.137.3-SNAPSHOT \ No newline at end of file From 3db013eeb01f255e1bc40af21370241761f2b519 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 5 Aug 2021 19:52:17 +0200 Subject: [PATCH 1433/3441] feat!: update dependency com.google.cloud:google-cloud-shared-config to v1 (#1466) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `0.13.1` -> `1.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.0.0/compatibility-slim/0.13.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.0.0/confidence-slim/0.13.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v1.0.0`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​100-httpswwwgithubcomgoogleapisjava-shared-configcomparev0131v100-2021-07-29) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v0.13.1...v1.0.0) ##### ⚠ BREAKING CHANGES - update shared-config to java 1.8 ([#​277](https://togithub.com/googleapis/java-shared-config/issues/277)) ##### Features - update shared-config to java 1.8 ([#​277](https://www.github.com/googleapis/java-shared-config/issues/277)) ([9c297a2](https://www.github.com/googleapis/java-shared-config/commit/9c297a27bc236092aab3ae292c7bed206293bc51)) ##### [0.13.1](https://www.github.com/googleapis/java-shared-config/compare/v0.13.0...v0.13.1) (2021-07-27) ##### Bug Fixes - revert update dependency org.apache.maven.plugins:maven-dependency-plugin to v3.2.0 ([#​280](https://www.github.com/googleapis/java-shared-config/issues/280)) ([bdbbb9c](https://www.github.com/googleapis/java-shared-config/commit/bdbbb9c13571d0ef06009ebf03bc25c6e6fcbc17))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- .../cloud/bigquery/JobStatisticsTest.java | 13 +++++++++---- .../cloud/bigquery/it/ITBigQueryTest.java | 18 ++++++------------ pom.xml | 2 +- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index a28eae26b911..edd76f821de0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -322,26 +322,31 @@ public void testIncomplete() { new com.google.api.services.bigquery.model.JobStatistics() .setCreationTime(1234L) .setStartTime(5678L)); + JobStatistics jobStatistics; job.setConfiguration( new com.google.api.services.bigquery.model.JobConfiguration() .setCopy(new com.google.api.services.bigquery.model.JobConfigurationTableCopy())); - assertThat(JobStatistics.fromPb(job)).isInstanceOf(CopyStatistics.class); + jobStatistics = JobStatistics.fromPb(job); + assertThat(jobStatistics).isInstanceOf(CopyStatistics.class); job.setConfiguration( new com.google.api.services.bigquery.model.JobConfiguration() .setLoad(new com.google.api.services.bigquery.model.JobConfigurationLoad())); - assertThat(JobStatistics.fromPb(job)).isInstanceOf(LoadStatistics.class); + jobStatistics = JobStatistics.fromPb(job); + assertThat(jobStatistics).isInstanceOf(LoadStatistics.class); job.setConfiguration( new com.google.api.services.bigquery.model.JobConfiguration() .setExtract(new com.google.api.services.bigquery.model.JobConfigurationExtract())); - assertThat(JobStatistics.fromPb(job)).isInstanceOf(ExtractStatistics.class); + jobStatistics = JobStatistics.fromPb(job); + assertThat(jobStatistics).isInstanceOf(ExtractStatistics.class); job.setConfiguration( new com.google.api.services.bigquery.model.JobConfiguration() .setQuery(new com.google.api.services.bigquery.model.JobConfigurationQuery())); - assertThat(JobStatistics.fromPb(job)).isInstanceOf(QueryStatistics.class); + jobStatistics = JobStatistics.fromPb(job); + assertThat(jobStatistics).isInstanceOf(QueryStatistics.class); } private void compareExtractStatistics(ExtractStatistics expected, ExtractStatistics value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 1e0291757ad6..ff4068940a99 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1202,11 +1202,9 @@ public void testUpdateTimePartitioning() { .build(); Table table = bigquery.create(TableInfo.of(tableId, tableDefinition)); - assertThat(table.getDefinition()).isInstanceOf(StandardTableDefinition.class); - assertThat( - ((StandardTableDefinition) table.getDefinition()) - .getTimePartitioning() - .getExpirationMs()) + TableDefinition definition = table.getDefinition(); + assertThat(definition).isInstanceOf(StandardTableDefinition.class); + assertThat(((StandardTableDefinition) definition).getTimePartitioning().getExpirationMs()) .isNull(); table = @@ -1219,10 +1217,9 @@ public void testUpdateTimePartitioning() { .build()) .build() .update(BigQuery.TableOption.fields(BigQuery.TableField.TIME_PARTITIONING)); + TableDefinition updatedDefinition = table.getDefinition(); assertThat( - ((StandardTableDefinition) table.getDefinition()) - .getTimePartitioning() - .getExpirationMs()) + ((StandardTableDefinition) updatedDefinition).getTimePartitioning().getExpirationMs()) .isEqualTo(42L); table = @@ -1235,10 +1232,7 @@ public void testUpdateTimePartitioning() { .build()) .build() .update(BigQuery.TableOption.fields(BigQuery.TableField.TIME_PARTITIONING)); - assertThat( - ((StandardTableDefinition) table.getDefinition()) - .getTimePartitioning() - .getExpirationMs()) + assertThat(((StandardTableDefinition) definition).getTimePartitioning().getExpirationMs()) .isNull(); table.delete(); diff --git a/pom.xml b/pom.xml index f1c180150585..e4eb0b2791e8 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 0.13.1 + 1.0.0 From d4b595f3f4b4df37923fae5f0bc55c5f43224780 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 5 Aug 2021 18:30:21 +0000 Subject: [PATCH 1434/3441] chore: release 2.0.0 (#1478) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit :robot: I have created a release \*beep\* \*boop\* --- ## [2.0.0](https://www.github.com/googleapis/java-bigquery/compare/v1.137.2...v2.0.0) (2021-08-05) ### ⚠ BREAKING CHANGES * update dependency com.google.cloud:google-cloud-shared-config to v1 (#1466) ### Features * update dependency com.google.cloud:google-cloud-shared-config to v1 ([#1466](https://www.github.com/googleapis/java-bigquery/issues/1466)) ([3db013e](https://www.github.com/googleapis/java-bigquery/commit/3db013eeb01f255e1bc40af21370241761f2b519)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 11 +++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 18 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 50faf1dfd170..b94c054ac8b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [2.0.0](https://www.github.com/googleapis/java-bigquery/compare/v1.137.2...v2.0.0) (2021-08-05) + + +### ⚠ BREAKING CHANGES + +* update dependency com.google.cloud:google-cloud-shared-config to v1 (#1466) + +### Features + +* update dependency com.google.cloud:google-cloud-shared-config to v1 ([#1466](https://www.github.com/googleapis/java-bigquery/issues/1466)) ([3db013e](https://www.github.com/googleapis/java-bigquery/commit/3db013eeb01f255e1bc40af21370241761f2b519)) + ### [1.137.2](https://www.github.com/googleapis/java-bigquery/compare/v1.137.1...v1.137.2) (2021-08-05) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index fd7b78612aa5..2ace43851c76 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 1.137.3-SNAPSHOT + 2.0.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index daa06a95ca29..ad18c7f8b2d3 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 1.137.3-SNAPSHOT + 2.0.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 1.137.3-SNAPSHOT + 2.0.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e4eb0b2791e8..66c0206dc414 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 1.137.3-SNAPSHOT + 2.0.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 1.137.3-SNAPSHOT + 2.0.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ee9332c71ad5..0710d6ff48cf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 1.137.3-SNAPSHOT + 2.0.0 diff --git a/versions.txt b/versions.txt index 54035a102a01..19e967262e06 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:1.137.2:1.137.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.0.0:2.0.0 \ No newline at end of file From 2a45523feae0dcbfdc3ef72ef4b18ba1956fbc66 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 5 Aug 2021 11:44:18 -0700 Subject: [PATCH 1435/3441] chore: regenerate README (#1480) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-05 18:32:45,071 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-05 18:32:46,508 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/0e457f36-36f7-4db7-ae99-2372f2ca1054/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 3bbb3a6a2d72..e60e8b657078 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "6089e6a98c8e85538f330502ba278e8cc730f58d" + "sha": "d4b595f3f4b4df37923fae5f0bc55c5f43224780" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "3d32990b6f4b57be77455e3ca89e6e21cd0c06b3" + "sha": "df7fc1e3a6df4316920ab221431945cdf9aa7217" } } ] diff --git a/README.md b/README.md index c10a62e81d09..52a2ac6a43da 100644 --- a/README.md +++ b/README.md @@ -58,13 +58,13 @@ compile 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.137.1' +compile 'com.google.cloud:google-cloud-bigquery:1.137.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.137.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.137.2" ``` ## Authentication From 6715073e6969c200107af70068796a3629e0a855 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 5 Aug 2021 18:46:17 +0000 Subject: [PATCH 1436/3441] chore: release 2.0.1-SNAPSHOT (#1479) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2ace43851c76..2b33cddef712 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.0.0 + 2.0.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ad18c7f8b2d3..48c5d92aad50 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.0.0 + 2.0.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.0.0 + 2.0.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 66c0206dc414..0966f147aa72 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.0.0 + 2.0.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.0.0 + 2.0.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0710d6ff48cf..4fbc5e7f3f11 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.0.0 + 2.0.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 19e967262e06..d896d74df654 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.0.0:2.0.0 \ No newline at end of file +google-cloud-bigquery:2.0.0:2.0.1-SNAPSHOT \ No newline at end of file From af599a865b988191bb45182063c5fd9403b50f4c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 5 Aug 2021 22:14:15 +0200 Subject: [PATCH 1437/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v1.137.2 (#1481) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a658c0fbd849..0beba8eb119f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.137.1 + 1.137.2 From dc454811a31d616e1b5de02789e9aee8b117e34a Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 5 Aug 2021 13:30:37 -0700 Subject: [PATCH 1438/3441] chore: regenerate README (#1484) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-05 20:16:31,467 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-05 20:16:32,834 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/4b6ab7a2-490a-4134-8e1e-2c073130ac20/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index e60e8b657078..1c50a13f25b4 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "d4b595f3f4b4df37923fae5f0bc55c5f43224780" + "sha": "af599a865b988191bb45182063c5fd9403b50f4c" } }, { diff --git a/README.md b/README.md index 52a2ac6a43da..ab0cb6943a05 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.137.1 + 1.137.2 ``` @@ -58,13 +58,13 @@ compile 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:1.137.2' +compile 'com.google.cloud:google-cloud-bigquery:2.0.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.137.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.0.0" ``` ## Authentication From 92ff3932e5ae93623851a2db9d941316b4ecc3ae Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 5 Aug 2021 22:44:11 +0200 Subject: [PATCH 1439/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2 (#1483) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0beba8eb119f..a2cb4693c652 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.2.0 + 2.0.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4fbc5e7f3f11..0b3aad383e3d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.2.0 + 2.0.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 1d7f01ba8ede..268b25d232e5 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 1.2.0 + 2.0.0 test From 6caf046d7504b0c21c15993152e4ae38c15f5edf Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 5 Aug 2021 22:54:51 +0200 Subject: [PATCH 1440/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2 (#1482) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `1.137.2` -> `2.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.0.0/compatibility-slim/1.137.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.0.0/confidence-slim/1.137.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.0.0`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​200-httpswwwgithubcomgoogleapisjava-bigquerycomparev11372v200-2021-08-05) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v1.137.2...v2.0.0) ##### ⚠ BREAKING CHANGES - update dependency com.google.cloud:google-cloud-shared-config to v1 ([#​1466](https://togithub.com/googleapis/java-bigquery/issues/1466)) ##### Features - update dependency com.google.cloud:google-cloud-shared-config to v1 ([#​1466](https://www.github.com/googleapis/java-bigquery/issues/1466)) ([3db013e](https://www.github.com/googleapis/java-bigquery/commit/3db013eeb01f255e1bc40af21370241761f2b519)) ##### [1.137.2](https://www.github.com/googleapis/java-bigquery/compare/v1.137.1...v1.137.2) (2021-08-05) ##### Dependencies - update dependency com.google.apis:google-api-services-bigquery to v2-rev20210726-1.32.1 ([#​1469](https://www.github.com/googleapis/java-bigquery/issues/1469)) ([9df5ac2](https://www.github.com/googleapis/java-bigquery/commit/9df5ac2525e3aa9b52512d59cab0fc8b998f0bc9)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v2 ([#​1472](https://www.github.com/googleapis/java-bigquery/issues/1472)) ([227983e](https://www.github.com/googleapis/java-bigquery/commit/227983e2c69dfdd5001f9c951f086daadb937578)) ##### [1.137.1](https://www.github.com/googleapis/java-bigquery/compare/v1.137.0...v1.137.1) (2021-07-20) ##### Dependencies - update dependency com.google.cloud:google-cloud-bigtable to v1.27.3 ([#​1452](https://www.github.com/googleapis/java-bigquery/issues/1452)) ([fea5eca](https://www.github.com/googleapis/java-bigquery/commit/fea5eca733d501b72b8713e555f54dc86bbde85f))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a2cb4693c652..dbc3fb4a3564 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 1.137.2 + 2.0.0 From 8304924c4c66186aba27402ae32931cbb20fba8e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 5 Aug 2021 14:08:33 -0700 Subject: [PATCH 1441/3441] chore: regenerate README (#1485) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-05 20:57:10,116 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-05 20:57:11,580 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/b0c41e37-9ebf-4dc3-8c47-d274948c81f0/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 1c50a13f25b4..0b4019b5d187 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "af599a865b988191bb45182063c5fd9403b50f4c" + "sha": "6caf046d7504b0c21c15993152e4ae38c15f5edf" } }, { diff --git a/README.md b/README.md index ab0cb6943a05..ed0e0760ba7c 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 1.137.2 + 2.0.0 ``` From 3ba6e1f8548b5518076187a65b214c79195d86ac Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 9 Aug 2021 17:50:51 +0200 Subject: [PATCH 1442/3441] deps: update dependency com.google.cloud:google-cloud-storage to v1.118.1 (#1486) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0966f147aa72..97057d564a29 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ com.google.cloud google-cloud-storage - 1.118.0 + 1.118.1 test From 3eedfbe208897c6ee45b480ff81a90a4dba9bdd4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 9 Aug 2021 17:51:11 +0200 Subject: [PATCH 1443/3441] deps: update jmh.version to v1.33 (#1487) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2b33cddef712..1e535ba16105 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.32 + 1.33 benchmark From 212c3840e17a87d6d5e08bd255beead1102984af Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 9 Aug 2021 16:06:11 +0000 Subject: [PATCH 1444/3441] chore: release 2.0.1 (#1488) :robot: I have created a release \*beep\* \*boop\* --- ### [2.0.1](https://www.github.com/googleapis/java-bigquery/compare/v2.0.0...v2.0.1) (2021-08-09) ### Dependencies * update dependency com.google.cloud:google-cloud-storage to v1.118.1 ([#1486](https://www.github.com/googleapis/java-bigquery/issues/1486)) ([3ba6e1f](https://www.github.com/googleapis/java-bigquery/commit/3ba6e1f8548b5518076187a65b214c79195d86ac)) * update jmh.version to v1.33 ([#1487](https://www.github.com/googleapis/java-bigquery/issues/1487)) ([3eedfbe](https://www.github.com/googleapis/java-bigquery/commit/3eedfbe208897c6ee45b480ff81a90a4dba9bdd4)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b94c054ac8b4..aafed6ea19fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.0.1](https://www.github.com/googleapis/java-bigquery/compare/v2.0.0...v2.0.1) (2021-08-09) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v1.118.1 ([#1486](https://www.github.com/googleapis/java-bigquery/issues/1486)) ([3ba6e1f](https://www.github.com/googleapis/java-bigquery/commit/3ba6e1f8548b5518076187a65b214c79195d86ac)) +* update jmh.version to v1.33 ([#1487](https://www.github.com/googleapis/java-bigquery/issues/1487)) ([3eedfbe](https://www.github.com/googleapis/java-bigquery/commit/3eedfbe208897c6ee45b480ff81a90a4dba9bdd4)) + ## [2.0.0](https://www.github.com/googleapis/java-bigquery/compare/v1.137.2...v2.0.0) (2021-08-05) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1e535ba16105..2f4b233b30d5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.0.1-SNAPSHOT + 2.0.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 48c5d92aad50..65393ac76d26 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.0.1-SNAPSHOT + 2.0.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.0.1-SNAPSHOT + 2.0.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 97057d564a29..295a080f67ed 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.0.1-SNAPSHOT + 2.0.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.0.1-SNAPSHOT + 2.0.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0b3aad383e3d..8a97443c556c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.0.1-SNAPSHOT + 2.0.1 diff --git a/versions.txt b/versions.txt index d896d74df654..ec70c3385222 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.0.0:2.0.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.0.1:2.0.1 \ No newline at end of file From a91cb7a5a340a73bec5e0495bcb0ceaa84f915ab Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 9 Aug 2021 16:18:16 +0000 Subject: [PATCH 1445/3441] chore: release 2.0.2-SNAPSHOT (#1489) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2f4b233b30d5..b78221c11dae 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.0.1 + 2.0.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 65393ac76d26..376ef0799f0a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.0.1 + 2.0.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.0.1 + 2.0.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 295a080f67ed..dc34b2edd3d2 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.0.1 + 2.0.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.0.1 + 2.0.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8a97443c556c..5751d63555ad 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.0.1 + 2.0.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index ec70c3385222..6552160d5cd0 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.0.1:2.0.1 \ No newline at end of file +google-cloud-bigquery:2.0.1:2.0.2-SNAPSHOT \ No newline at end of file From c8e77fa8c16db8fb08f5ccb5b373e5b9efc6e120 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 9 Aug 2021 23:04:31 +0200 Subject: [PATCH 1446/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.0.1 (#1490) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index dbc3fb4a3564..91f952521b0d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.0.0 + 2.0.1 From 70abb812b3ebfa47d70dccd936a65c10f35b4817 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 9 Aug 2021 23:04:53 +0200 Subject: [PATCH 1447/3441] test(deps): update datacatalog dependencies to v1.5.0 (#1492) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index dc34b2edd3d2..9ce232f60578 100644 --- a/pom.xml +++ b/pom.xml @@ -120,13 +120,13 @@ com.google.cloud google-cloud-datacatalog - 1.4.2 + 1.5.0 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.4.2 + 1.5.0 test From cdb6acbd1272fd27aefc5bd9edb3fefcdb64f987 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Mon, 9 Aug 2021 14:20:15 -0700 Subject: [PATCH 1448/3441] chore: regenerate README (#1493) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-09 21:06:37,198 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-09 21:06:38,548 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/9683894a-a2f7-4f09-ae80-aaee0855a778/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 0b4019b5d187..fc4efc8265f7 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "6caf046d7504b0c21c15993152e4ae38c15f5edf" + "sha": "70abb812b3ebfa47d70dccd936a65c10f35b4817" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "df7fc1e3a6df4316920ab221431945cdf9aa7217" + "sha": "5605f38f153e7627ba4441a2c5181060b664d224" } } ] diff --git a/README.md b/README.md index ed0e0760ba7c..2d1d958eec12 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.0.0 + 2.0.1 ``` @@ -58,13 +58,13 @@ compile 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:2.0.0' +compile 'com.google.cloud:google-cloud-bigquery:2.0.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.0.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.0.1" ``` ## Authentication From 7c66e284e31875fcdd9575cfe145124a3454e29c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 10 Aug 2021 01:02:55 +0200 Subject: [PATCH 1449/3441] test(deps): update datacatalog dependencies to v1.5.1 (#1494) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9ce232f60578..4fa0082f733f 100644 --- a/pom.xml +++ b/pom.xml @@ -120,13 +120,13 @@ com.google.cloud google-cloud-datacatalog - 1.5.0 + 1.5.1 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.5.0 + 1.5.1 test From cf265347e5e650670d19a1122f69497272854ebe Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 10 Aug 2021 19:38:58 +0200 Subject: [PATCH 1450/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2 (#1495) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 91f952521b0d..4f0e9cb6b945 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 1.27.3 + 2.0.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5751d63555ad..e5dd163cd2f2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 1.27.3 + 2.0.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 268b25d232e5..435ce8995ceb 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 1.27.3 + 2.0.0 test From b705052475899512c7981d3893b7d630f1488c99 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 10 Aug 2021 19:40:10 +0200 Subject: [PATCH 1451/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2 (#1491) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4fa0082f733f..9a1efe733d92 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ com.google.cloud google-cloud-storage - 1.118.1 + 2.0.0 test From ec68c1145a89753e7d42458bbea86737cad6090f Mon Sep 17 00:00:00 2001 From: Prashant Mishra Date: Wed, 11 Aug 2021 21:38:08 +0530 Subject: [PATCH 1452/3441] feat: Updated `BigQueryRetryAlgorithm` so that it can retry on RateLimit Errors using RegEx (#1499) * Modified RATE_LIMIT_ERROR_MSG and added testRateLimitRegEx for testing regex matching * Added JOB_RATE_LIMIT_EXCEEDED_MSG and RATE_LIMIT_EXCEEDED_REGEX pattern * Implemented retryOnRegEx to include retry on RegEx patterns * Updated DEFAULT_RETRY_CONFIG to include retry on JOB_RATE_LIMIT_EXCEEDED_MSG and RATE_LIMIT_EXCEEDED_REGEX * Modified shouldRetryBasedOnBigQueryRetryConfig method to try RegEx matching if all the contains checks fail --- .../cloud/bigquery/BigQueryErrorMessages.java | 5 +++ .../google/cloud/bigquery/BigQueryImpl.java | 4 ++- .../bigquery/BigQueryRetryAlgorithm.java | 21 ++++++++++++- .../cloud/bigquery/BigQueryRetryConfig.java | 14 +++++++++ .../cloud/bigquery/BigQueryImplTest.java | 31 ++++++++++++++++--- 5 files changed, 69 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryErrorMessages.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryErrorMessages.java index 04cabfc67e3a..5c86e080600e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryErrorMessages.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryErrorMessages.java @@ -19,4 +19,9 @@ public class BigQueryErrorMessages { public static final String RATE_LIMIT_EXCEEDED_MSG = "Exceeded rate limits:"; // Error Message for RateLimitExceeded Error + public static final String JOB_RATE_LIMIT_EXCEEDED_MSG = "Job exceeded rate limits:"; + + public class RetryRegExPatterns { + public static final String RATE_LIMIT_EXCEEDED_REGEX = ".*exceed.*rate.*limit.*"; + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index c871eb551e29..03635a89ed23 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -240,7 +240,9 @@ public Page getNextPage() { private static final BigQueryRetryConfig DEFAULT_RETRY_CONFIG = BigQueryRetryConfig.newBuilder() .retryOnMessage(BigQueryErrorMessages.RATE_LIMIT_EXCEEDED_MSG) - .build(); // retry config with Error Message for RateLimitExceeded Error + .retryOnMessage(BigQueryErrorMessages.JOB_RATE_LIMIT_EXCEEDED_MSG) + .retryOnRegEx(BigQueryErrorMessages.RetryRegExPatterns.RATE_LIMIT_EXCEEDED_REGEX) + .build(); // retry config with Error Messages and RegEx for RateLimitExceeded Error BigQueryImpl(BigQueryOptions options) { super(options); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java index 1a75a9c08b06..c694e2c06c38 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java @@ -27,6 +27,7 @@ import com.google.api.gax.retrying.TimedRetryAlgorithmWithContext; import java.util.Iterator; import java.util.concurrent.CancellationException; +import java.util.regex.Pattern; public class BigQueryRetryAlgorithm extends RetryAlgorithm { private final BigQueryRetryConfig bigQueryRetryConfig; @@ -69,10 +70,23 @@ private boolean shouldRetryBasedOnBigQueryRetryConfig( */ String errorDesc; if (previousThrowable != null && (errorDesc = previousThrowable.getMessage()) != null) { + errorDesc = errorDesc.toLowerCase(); // for case insensitive comparison for (Iterator retriableMessages = bigQueryRetryConfig.getRetriableErrorMessages().iterator(); retriableMessages.hasNext(); ) { - if (errorDesc.contains(retriableMessages.next())) { // Error message should be retried + if (errorDesc.contains( + retriableMessages + .next() + .toLowerCase())) { // Error message should be retried, implementing cases + // insensitive match + return true; + } + } + // Check if there's a regex which matches the error message. This avoids too many regex + // matches which is expensive + for (Iterator retriableRegExes = bigQueryRetryConfig.getRetriableRegExes().iterator(); + retriableRegExes.hasNext(); ) { + if (matchRegEx(retriableRegExes.next(), errorDesc)) { return true; } } @@ -80,6 +94,11 @@ private boolean shouldRetryBasedOnBigQueryRetryConfig( return false; } + public static boolean matchRegEx( + String retriableRegEx, String errorDesc) { // cases insensitive match regex matching + return Pattern.matches(retriableRegEx.toLowerCase(), errorDesc.toLowerCase()); + } + /*Duplicating this method as it can not be inherited from the RetryAlgorithm due to the default access modifier*/ boolean shouldRetryBasedOnResult( RetryingContext context, Throwable previousThrowable, ResponseT previousResponse) { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryConfig.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryConfig.java index 7e28e570730c..2e1f7c0bdaa8 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryConfig.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryConfig.java @@ -21,18 +21,25 @@ public class BigQueryRetryConfig { private final ImmutableSet retriableErrorMessages; + private final ImmutableSet retriableRegExes; private BigQueryRetryConfig(Builder builder) { retriableErrorMessages = builder.retriableErrorMessages.build(); + retriableRegExes = builder.retriableRegExes.build(); } public ImmutableSet getRetriableErrorMessages() { return retriableErrorMessages; } + public ImmutableSet getRetriableRegExes() { + return retriableRegExes; + } + // BigQueryRetryConfig builder public static class Builder { private final ImmutableSet.Builder retriableErrorMessages = ImmutableSet.builder(); + private final ImmutableSet.Builder retriableRegExes = ImmutableSet.builder(); private Builder() {} @@ -43,6 +50,13 @@ public final Builder retryOnMessage(String... errorMessages) { return this; } + public final Builder retryOnRegEx(String... regExPatterns) { + for (String regExPattern : regExPatterns) { + retriableRegExes.add(checkNotNull(regExPattern)); + } + return this; + } + public BigQueryRetryConfig build() { return new BigQueryRetryConfig(this); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 654cc0266814..a12800c8792a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -508,11 +508,12 @@ public class BigQueryImplTest { .setEtag(ETAG) .setVersion(1) .build(); - private BigQueryOptions options; private BigQueryRpcFactory rpcFactoryMock; private BigQueryRpc bigqueryRpcMock; private BigQuery bigquery; + private static final String RATE_LIMIT_ERROR_MSG = + "Job exceeded rate limits: Your table exceeded quota for table update operations. For more information, see https://cloud.google.com/bigquery/docs/troubleshoot-quotas"; @Captor private ArgumentCaptor> capturedOptions; @Captor private ArgumentCaptor jobCapture; @@ -2439,9 +2440,7 @@ public void testFastQueryRateLimitIdempotency() throws Exception { .thenThrow(new BigQueryException(504, "Gateway Timeout")) .thenThrow( new BigQueryException( - 400, - BigQueryErrorMessages - .RATE_LIMIT_EXCEEDED_MSG)) // retrial on based on RATE_LIMIT_EXCEEDED_MSG + 400, RATE_LIMIT_ERROR_MSG)) // retrial on based on RATE_LIMIT_EXCEEDED_MSG .thenReturn(responsePb); bigquery = @@ -2470,6 +2469,30 @@ public void testFastQueryRateLimitIdempotency() throws Exception { verify(bigqueryRpcMock, times(6)).queryRpc(eq(PROJECT), requestPbCapture.capture()); } + @Test + public void testRateLimitRegEx() throws Exception { + String msg2 = + "Job eceeded rate limits: Your table exceeded quota for table update operations. For more information, see https://cloud.google.com/bigquery/docs/troubleshoot-quotas"; + String msg3 = "exceeded rate exceeded quota for table update"; + String msg4 = "exceeded rate limits"; + assertTrue( + BigQueryRetryAlgorithm.matchRegEx( + BigQueryErrorMessages.RetryRegExPatterns.RATE_LIMIT_EXCEEDED_REGEX, + RATE_LIMIT_ERROR_MSG)); + assertFalse( + BigQueryRetryAlgorithm.matchRegEx( + BigQueryErrorMessages.RetryRegExPatterns.RATE_LIMIT_EXCEEDED_REGEX, + msg2.toLowerCase())); + assertFalse( + BigQueryRetryAlgorithm.matchRegEx( + BigQueryErrorMessages.RetryRegExPatterns.RATE_LIMIT_EXCEEDED_REGEX, + msg3.toLowerCase())); + assertTrue( + BigQueryRetryAlgorithm.matchRegEx( + BigQueryErrorMessages.RetryRegExPatterns.RATE_LIMIT_EXCEEDED_REGEX, + msg4.toLowerCase())); + } + @Test public void testFastQueryDDLShouldRetry() throws Exception { com.google.api.services.bigquery.model.QueryResponse responsePb = From 4c3b2de16584b9079dd4afd5a33aa8c00bc75f20 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 11 Aug 2021 12:20:36 -0400 Subject: [PATCH 1453/3441] feat: add support for transactioninfo in query statistics (#1497) Fixes #1467 --- .../google/cloud/bigquery/JobStatistics.java | 92 ++++++++++++++++++- .../cloud/bigquery/JobStatisticsTest.java | 16 ++++ .../cloud/bigquery/it/ITBigQueryTest.java | 22 +++++ 3 files changed, 128 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index ea5555b9bffd..a3d04c0179ef 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -44,6 +44,7 @@ public abstract class JobStatistics implements Serializable { private final String parentJobId; private final ScriptStatistics scriptStatistics; private final List reservationUsage; + private final TransactionInfo transactionInfo; /** A Google BigQuery Copy Job statistics. */ public static class CopyStatistics extends JobStatistics { @@ -1178,6 +1179,78 @@ static ReservationUsage fromPb( } } + // TransactionInfo contains information about a multi-statement transaction that may have + // associated with a job. + public static class TransactionInfo { + + // TransactionID is the system-generated identifier for the transaction. + private final String transactionId; + + public static class Builder { + + private String transactionId; + + private Builder() {}; + + Builder setTransactionId(String transactionId) { + this.transactionId = transactionId; + return this; + } + + TransactionInfo build() { + return new TransactionInfo(this); + } + } + + private TransactionInfo(Builder builder) { + this.transactionId = builder.transactionId; + } + + public String getTransactionId() { + return transactionId; + } + + static Builder newbuilder() { + return new Builder(); + } + + ToStringHelper toStringHelper() { + return MoreObjects.toStringHelper(this).add("transactionId", transactionId); + } + + @Override + public String toString() { + return toStringHelper().toString(); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(TransactionInfo.class) + && Objects.equals(toPb(), ((TransactionInfo) obj).toPb()); + } + + @Override + public int hashCode() { + return Objects.hash(transactionId); + } + + com.google.api.services.bigquery.model.TransactionInfo toPb() { + com.google.api.services.bigquery.model.TransactionInfo transactionInfo = + new com.google.api.services.bigquery.model.TransactionInfo(); + transactionInfo.setTransactionId(transactionId); + return transactionInfo; + } + + static TransactionInfo fromPb( + com.google.api.services.bigquery.model.TransactionInfo transactionInfo) { + Builder builder = newbuilder(); + builder.setTransactionId(transactionInfo.getTransactionId()); + return builder.build(); + } + } + abstract static class Builder> { private Long creationTime; @@ -1187,6 +1260,7 @@ abstract static class Builder> private String parentJobId; private ScriptStatistics scriptStatistics; private List reservationUsage; + private TransactionInfo transactionInfo; protected Builder() {} @@ -1203,6 +1277,9 @@ protected Builder(com.google.api.services.bigquery.model.JobStatistics statistic this.reservationUsage = Lists.transform(statisticsPb.getReservationUsage(), ReservationUsage.FROM_PB_FUNCTION); } + if (statisticsPb.getTransactionInfo() != null) { + this.transactionInfo = TransactionInfo.fromPb(statisticsPb.getTransactionInfo()); + } } @SuppressWarnings("unchecked") @@ -1236,6 +1313,7 @@ protected JobStatistics(Builder builder) { this.parentJobId = builder.parentJobId; this.scriptStatistics = builder.scriptStatistics; this.reservationUsage = builder.reservationUsage; + this.transactionInfo = builder.transactionInfo; } /** Returns the creation time of the job in milliseconds since epoch. */ @@ -1279,6 +1357,11 @@ public List getReservationUsage() { return reservationUsage; } + /** Info indicates the transaction ID associated with the job, if any. */ + public TransactionInfo getTransactionInfo() { + return transactionInfo; + } + ToStringHelper toStringHelper() { return MoreObjects.toStringHelper(this) .add("creationTime", creationTime) @@ -1287,7 +1370,8 @@ ToStringHelper toStringHelper() { .add("numChildJobs", numChildJobs) .add("parentJobId", parentJobId) .add("scriptStatistics", scriptStatistics) - .add("reservationUsage", reservationUsage); + .add("reservationUsage", reservationUsage) + .add("transactionInfo", transactionInfo); } @Override @@ -1303,7 +1387,8 @@ final int baseHashCode() { numChildJobs, parentJobId, scriptStatistics, - reservationUsage); + reservationUsage, + transactionInfo); } final boolean baseEquals(JobStatistics jobStatistics) { @@ -1325,6 +1410,9 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { statistics.setReservationUsage( Lists.transform(reservationUsage, ReservationUsage.TO_PB_FUNCTION)); } + if (transactionInfo != null) { + statistics.setTransactionInfo(transactionInfo.toPb()); + } return statistics; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index edd76f821de0..c421c0370fbd 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -26,9 +26,11 @@ import com.google.cloud.bigquery.JobStatistics.ReservationUsage; import com.google.cloud.bigquery.JobStatistics.ScriptStatistics; import com.google.cloud.bigquery.JobStatistics.ScriptStatistics.ScriptStackFrame; +import com.google.cloud.bigquery.JobStatistics.TransactionInfo; import com.google.cloud.bigquery.QueryStage.QueryStep; import com.google.common.collect.ImmutableList; import java.util.List; +import java.util.UUID; import org.junit.Test; public class JobStatisticsTest { @@ -70,6 +72,7 @@ public class JobStatisticsTest { private static final Long START_TIME = 15L; private static final String NAME = "reservation-name"; private static final Long SLOTMS = 12545L; + private static final String TRANSACTION_ID = UUID.randomUUID().toString().substring(0, 8); private static final CopyStatistics COPY_STATISTICS = CopyStatistics.newBuilder() .setCreationTimestamp(CREATION_TIME) @@ -216,6 +219,9 @@ public class JobStatisticsTest { private static final ReservationUsage RESERVATION_USAGE = ReservationUsage.newBuilder().setName(NAME).setSlotMs(SLOTMS).build(); + private static final TransactionInfo TRANSACTION_INFO = + TransactionInfo.newbuilder().setTransactionId(TRANSACTION_ID).build(); + @Test public void testBuilder() { assertEquals(CREATION_TIME, EXTRACT_STATISTICS.getCreationTime()); @@ -286,6 +292,7 @@ public void testBuilder() { ImmutableList.of(EXPRESSION_STACK_FRAME), EXPRESSION_SCRIPT_STATISTICS.getStackFrames()); assertEquals(NAME, RESERVATION_USAGE.getName()); assertEquals(SLOTMS, RESERVATION_USAGE.getSlotMs()); + assertEquals(TRANSACTION_ID, TRANSACTION_INFO.getTransactionId()); } @Test @@ -311,6 +318,7 @@ public void testToPbAndFromPb() { compareStackFrames(stackFrame, ScriptStackFrame.fromPb(stackFrame.toPb())); } compareReservation(RESERVATION_USAGE, ReservationUsage.fromPb(RESERVATION_USAGE.toPb())); + compareTransactionInfo(TRANSACTION_INFO, TransactionInfo.fromPb(TRANSACTION_INFO.toPb())); } @Test @@ -425,4 +433,12 @@ private void compareReservation(ReservationUsage expected, ReservationUsage valu assertEquals(expected.getName(), value.getName()); assertEquals(expected.getSlotMs(), value.getSlotMs()); } + + private void compareTransactionInfo(TransactionInfo expected, TransactionInfo value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.toPb(), value.toPb()); + assertEquals(expected.getTransactionId(), value.getTransactionId()); + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index ff4068940a99..484e4c0f5556 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -71,6 +71,7 @@ import com.google.cloud.bigquery.JobInfo; import com.google.cloud.bigquery.JobStatistics; import com.google.cloud.bigquery.JobStatistics.LoadStatistics; +import com.google.cloud.bigquery.JobStatistics.TransactionInfo; import com.google.cloud.bigquery.LegacySQLTypeName; import com.google.cloud.bigquery.LoadJobConfiguration; import com.google.cloud.bigquery.MaterializedViewDefinition; @@ -2219,6 +2220,27 @@ public void testDmlStatistics() throws InterruptedException { assertEquals(2L, statistics.getDmlStats().getUpdatedRowCount().longValue()); } + @Test + public void testTransactionInfo() throws InterruptedException { + String tableName = TABLE_ID_FASTQUERY.getTable(); + String transaction = + String.format( + "BEGIN TRANSACTION;\n" + + " UPDATE %s.%s SET StringField = 'hello' WHERE TRUE;\n" + + " COMMIT TRANSACTION;\n", + DATASET, tableName); + QueryJobConfiguration config = QueryJobConfiguration.of(transaction); + Job remoteJob = bigquery.create(JobInfo.of(config)); + JobInfo parentJobInfo = remoteJob.waitFor(); + String parentJobId = parentJobInfo.getJobId().getJob(); + Page childJobs = bigquery.listJobs(JobListOption.parentJobId(parentJobId)); + for (Job job : childJobs.iterateAll()) { + // only those child jobs inside the transaction would have transactionInfo populated + TransactionInfo transactionInfo = job.getStatistics().getTransactionInfo(); + assertNotNull(transactionInfo.getTransactionId()); + } + } + @Test public void testScriptStatistics() throws InterruptedException { String script = From 32d10f6a50cf5db7db6542b884c8eca6a0e0ee05 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 11 Aug 2021 12:45:50 -0400 Subject: [PATCH 1454/3441] chore: release 2.1.0 (#1496) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 14 ++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 21 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aafed6ea19fd..6fb188d1a414 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [2.1.0](https://www.github.com/googleapis/java-bigquery/compare/v2.0.1...v2.1.0) (2021-08-11) + + +### Features + +* add support for transactioninfo in query statistics ([#1497](https://www.github.com/googleapis/java-bigquery/issues/1497)) ([4c3b2de](https://www.github.com/googleapis/java-bigquery/commit/4c3b2de16584b9079dd4afd5a33aa8c00bc75f20)), closes [#1467](https://www.github.com/googleapis/java-bigquery/issues/1467) +* Updated `BigQueryRetryAlgorithm` so that it can retry on RateLimit Errors using RegEx ([#1499](https://www.github.com/googleapis/java-bigquery/issues/1499)) ([ec68c11](https://www.github.com/googleapis/java-bigquery/commit/ec68c1145a89753e7d42458bbea86737cad6090f)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v2 ([#1495](https://www.github.com/googleapis/java-bigquery/issues/1495)) ([cf26534](https://www.github.com/googleapis/java-bigquery/commit/cf265347e5e650670d19a1122f69497272854ebe)) +* update dependency com.google.cloud:google-cloud-storage to v2 ([#1491](https://www.github.com/googleapis/java-bigquery/issues/1491)) ([b705052](https://www.github.com/googleapis/java-bigquery/commit/b705052475899512c7981d3893b7d630f1488c99)) + ### [2.0.1](https://www.github.com/googleapis/java-bigquery/compare/v2.0.0...v2.0.1) (2021-08-09) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b78221c11dae..e8355baa937c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.0.2-SNAPSHOT + 2.1.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 376ef0799f0a..3982e6aa2703 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.0.2-SNAPSHOT + 2.1.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.0.2-SNAPSHOT + 2.1.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9a1efe733d92..d39727b0d2aa 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.0.2-SNAPSHOT + 2.1.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.0.2-SNAPSHOT + 2.1.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e5dd163cd2f2..f2b6ec823f0d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.0.2-SNAPSHOT + 2.1.0 diff --git a/versions.txt b/versions.txt index 6552160d5cd0..f16b3e50d7d1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.0.1:2.0.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.0:2.1.0 \ No newline at end of file From 7fc2fb848ecc6eca46fc2996bf0f301f0d08722b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 11 Aug 2021 17:04:13 +0000 Subject: [PATCH 1455/3441] chore: release 2.1.1-SNAPSHOT (#1500) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index e8355baa937c..a49d916ab024 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.0 + 2.1.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3982e6aa2703..41b0aa7b2a42 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.0 + 2.1.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.0 + 2.1.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d39727b0d2aa..c8ce82db0c01 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.0 + 2.1.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.0 + 2.1.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f2b6ec823f0d..c796193fe242 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.0 + 2.1.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index f16b3e50d7d1..ac2ee1e32e8f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.0:2.1.0 \ No newline at end of file +google-cloud-bigquery:2.1.0:2.1.1-SNAPSHOT \ No newline at end of file From 855faeb5c220ae951735fc340242f187be35dc6f Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 12 Aug 2021 15:25:51 -0700 Subject: [PATCH 1456/3441] build(java): use ENABLE_FLAKYBOT env variable (#1501) Kokoro job config now supports both environment variables during this migration period. Source-Author: Jeff Ching Source-Date: Thu Aug 12 10:10:27 2021 -0700 Source-Repo: googleapis/synthtool Source-Sha: ff01716e16d2c6e87eaf87197b753ac9fcbbed5d Source-Link: https://github.com/googleapis/synthtool/commit/ff01716e16d2c6e87eaf87197b753ac9fcbbed5d --- .kokoro/build.sh | 2 +- .kokoro/nightly/integration.cfg | 2 +- synth.metadata | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 1a024be85fb0..2d4c91705be0 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -115,7 +115,7 @@ fi # fix output location of logs bash .kokoro/coerce_logs.sh -if [[ "${ENABLE_BUILD_COP}" == "true" ]] +if [[ "${ENABLE_FLAKYBOT}" == "true" ]] then chmod +x ${KOKORO_GFILE_DIR}/linux_amd64/flakybot ${KOKORO_GFILE_DIR}/linux_amd64/flakybot -repo=googleapis/java-bigquery diff --git a/.kokoro/nightly/integration.cfg b/.kokoro/nightly/integration.cfg index 0048c8ece7e5..e51c7b4c6c11 100644 --- a/.kokoro/nightly/integration.cfg +++ b/.kokoro/nightly/integration.cfg @@ -22,7 +22,7 @@ env_vars: { } env_vars: { - key: "ENABLE_BUILD_COP" + key: "ENABLE_FLAKYBOT" value: "true" } diff --git a/synth.metadata b/synth.metadata index 04f29b61f94c..2e644ef323c5 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "0a8eac2b679cf3e330e7325452a09f99e352a380" + "sha": "7fc2fb848ecc6eca46fc2996bf0f301f0d08722b" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "1a2878d6909dd10ca4e3c1b5943d6622e996054e" + "sha": "ff01716e16d2c6e87eaf87197b753ac9fcbbed5d" } } ], From da6b6072673583577374c8c84d23311165a00059 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 12 Aug 2021 15:42:33 -0700 Subject: [PATCH 1457/3441] chore: regenerate README (#1502) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-12 22:28:59,302 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-12 22:29:00,947 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/b6043864-4086-4be6-aae5-78530bd566d0/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index fc4efc8265f7..09fe510f4b65 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "70abb812b3ebfa47d70dccd936a65c10f35b4817" + "sha": "855faeb5c220ae951735fc340242f187be35dc6f" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "5605f38f153e7627ba4441a2c5181060b664d224" + "sha": "ff01716e16d2c6e87eaf87197b753ac9fcbbed5d" } } ] diff --git a/README.md b/README.md index 2d1d958eec12..c1fa789fc316 100644 --- a/README.md +++ b/README.md @@ -58,13 +58,13 @@ compile 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:2.0.1' +compile 'com.google.cloud:google-cloud-bigquery:2.1.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.0.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.0" ``` ## Authentication From 3f6f6ef4d67b2ef01dac7f5aa2ed2eea862157e8 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 12 Aug 2021 18:56:18 -0400 Subject: [PATCH 1458/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.0.1 (#1503) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c8ce82db0c01..106404972b64 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ google-cloud-bigquery-parent v2-rev20210726-1.32.1 - 2.0.0 + 2.0.1
    From c5add380333ac5d1b6f425a4ecb20cd12ca2b869 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 13 Aug 2021 17:18:29 +0000 Subject: [PATCH 1459/3441] chore: release 2.1.1 (#1504) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.1](https://www.github.com/googleapis/java-bigquery/compare/v2.1.0...v2.1.1) (2021-08-12) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.0.1 ([#1503](https://www.github.com/googleapis/java-bigquery/issues/1503)) ([3f6f6ef](https://www.github.com/googleapis/java-bigquery/commit/3f6f6ef4d67b2ef01dac7f5aa2ed2eea862157e8)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6fb188d1a414..31e196137ab5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.1.1](https://www.github.com/googleapis/java-bigquery/compare/v2.1.0...v2.1.1) (2021-08-12) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.0.1 ([#1503](https://www.github.com/googleapis/java-bigquery/issues/1503)) ([3f6f6ef](https://www.github.com/googleapis/java-bigquery/commit/3f6f6ef4d67b2ef01dac7f5aa2ed2eea862157e8)) + ## [2.1.0](https://www.github.com/googleapis/java-bigquery/compare/v2.0.1...v2.1.0) (2021-08-11) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a49d916ab024..249c05c64926 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.1-SNAPSHOT + 2.1.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 41b0aa7b2a42..d71861498548 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.1-SNAPSHOT + 2.1.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.1-SNAPSHOT + 2.1.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 106404972b64..90af56382384 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.1-SNAPSHOT + 2.1.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.1-SNAPSHOT + 2.1.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c796193fe242..4a3212e4e1fe 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.1-SNAPSHOT + 2.1.1 diff --git a/versions.txt b/versions.txt index ac2ee1e32e8f..c181a3c200c2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.0:2.1.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.1:2.1.1 \ No newline at end of file From 8e21a1246ed1c183632679c8ff3a0ce78cb89353 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 13 Aug 2021 17:30:29 +0000 Subject: [PATCH 1460/3441] chore: release 2.1.2-SNAPSHOT (#1505) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 249c05c64926..818f2b2d0810 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.1 + 2.1.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d71861498548..ef5e46c4e7f8 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.1 + 2.1.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.1 + 2.1.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 90af56382384..8104c467e5bf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.1 + 2.1.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.1 + 2.1.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4a3212e4e1fe..d34a53ecc857 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.1 + 2.1.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index c181a3c200c2..fa6249f3efca 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.1:2.1.1 \ No newline at end of file +google-cloud-bigquery:2.1.1:2.1.2-SNAPSHOT \ No newline at end of file From f5982794fb5f9c13c3e328efcb8ab852682b4466 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 17 Aug 2021 16:06:51 -0400 Subject: [PATCH 1461/3441] fix: add retry logging for BigQueryRetryAlgorithm.java (#1506) * fix: add retry logging for BigQueryRetryAlgorithm.java * Added shouldRetry and Error Message to Logging * Added shouldRetry and Error Message to Logging * update based on comments - to add in retried method (enclosingMethod) * set log level to FINEST Co-authored-by: Prashant Mishra --- .../bigquery/BigQueryRetryAlgorithm.java | 32 +++++++++++++++++-- .../cloud/bigquery/BigQueryRetryHelper.java | 23 ++++++++++++- 2 files changed, 51 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java index c694e2c06c38..756377d21011 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java @@ -27,7 +27,10 @@ import com.google.api.gax.retrying.TimedRetryAlgorithmWithContext; import java.util.Iterator; import java.util.concurrent.CancellationException; +import java.util.logging.Level; +import java.util.logging.Logger; import java.util.regex.Pattern; +import org.threeten.bp.Duration; public class BigQueryRetryAlgorithm extends RetryAlgorithm { private final BigQueryRetryConfig bigQueryRetryConfig; @@ -36,6 +39,8 @@ public class BigQueryRetryAlgorithm extends RetryAlgorithm private final ResultRetryAlgorithmWithContext resultAlgorithmWithContext; private final TimedRetryAlgorithmWithContext timedAlgorithmWithContext; + private static final Logger LOG = Logger.getLogger(BigQueryRetryAlgorithm.class.getName()); + public BigQueryRetryAlgorithm( ResultRetryAlgorithm resultAlgorithm, TimedRetryAlgorithm timedAlgorithm, @@ -55,11 +60,32 @@ public boolean shouldRetry( ResponseT previousResponse, TimedAttemptSettings nextAttemptSettings) throws CancellationException { + // Log retry info + int attemptCount = nextAttemptSettings == null ? 0 : nextAttemptSettings.getAttemptCount(); + Duration retryDelay = + nextAttemptSettings == null ? Duration.ZERO : nextAttemptSettings.getRetryDelay(); + String errorMessage = previousThrowable != null ? previousThrowable.getMessage() : ""; + // Implementing shouldRetryBasedOnBigQueryRetryConfig so that we can retry exceptions based on // the exception messages - return (shouldRetryBasedOnResult(context, previousThrowable, previousResponse) - || shouldRetryBasedOnBigQueryRetryConfig(previousThrowable, bigQueryRetryConfig)) - && shouldRetryBasedOnTiming(context, nextAttemptSettings); + boolean shouldRetry = + (shouldRetryBasedOnResult(context, previousThrowable, previousResponse) + || shouldRetryBasedOnBigQueryRetryConfig(previousThrowable, bigQueryRetryConfig)) + && shouldRetryBasedOnTiming(context, nextAttemptSettings); + + if (LOG.isLoggable(Level.FINEST)) { + LOG.log( + Level.FINEST, + "Retrying with:\n{0}\n{1}\n{2}\n{3}\n{4}", + new Object[] { + "BigQuery attemptCount: " + attemptCount, + "BigQuery delay: " + retryDelay, + "BigQuery retriableException: " + previousThrowable, + "BigQuery shouldRetry: " + shouldRetry, + "BigQuery previousThrowable.getMessage: " + errorMessage + }); + } + return shouldRetry; } private boolean shouldRetryBasedOnBigQueryRetryConfig( diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java index 7c1e0e5927e9..623228d6c654 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java @@ -16,13 +16,24 @@ package com.google.cloud.bigquery; import com.google.api.core.ApiClock; -import com.google.api.gax.retrying.*; +import com.google.api.gax.retrying.DirectRetryingExecutor; +import com.google.api.gax.retrying.ExponentialRetryAlgorithm; +import com.google.api.gax.retrying.ResultRetryAlgorithm; +import com.google.api.gax.retrying.RetryAlgorithm; +import com.google.api.gax.retrying.RetrySettings; +import com.google.api.gax.retrying.RetryingExecutor; +import com.google.api.gax.retrying.RetryingFuture; +import com.google.api.gax.retrying.TimedRetryAlgorithm; import com.google.cloud.RetryHelper; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; +import java.util.logging.Level; +import java.util.logging.Logger; public class BigQueryRetryHelper extends RetryHelper { + private static final Logger LOG = Logger.getLogger(BigQueryRetryHelper.class.getName()); + public static V runWithRetries( Callable callable, RetrySettings retrySettings, @@ -60,6 +71,16 @@ private static V run( // BigQueryRetryAlgorithm retries considering bigQueryRetryConfig RetryingExecutor executor = new DirectRetryingExecutor<>(retryAlgorithm); + // Log retry info + if (LOG.isLoggable(Level.FINEST)) { + LOG.log( + Level.FINEST, + "Retrying with:\n{0}", + new Object[] { + "BigQuery retried method: " + callable.getClass().getEnclosingMethod().getName(), + }); + } + RetryingFuture retryingFuture = executor.createFuture(callable); executor.submit(retryingFuture); return retryingFuture.get(); From 2c63e88bc000e58423d7bf96e29a8ec7fa954460 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 17 Aug 2021 13:20:37 -0700 Subject: [PATCH 1462/3441] chore: regenerate README (#1508) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-17 20:09:04,584 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-17 20:09:06,091 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/2a0139d3-2c62-45ee-af03-60c5b21067b9/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 09fe510f4b65..84d90c7870b4 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "855faeb5c220ae951735fc340242f187be35dc6f" + "sha": "f5982794fb5f9c13c3e328efcb8ab852682b4466" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "ff01716e16d2c6e87eaf87197b753ac9fcbbed5d" + "sha": "a01e1a0bf70754f51450958b966bd673945d1e6e" } } ] diff --git a/README.md b/README.md index c1fa789fc316..52f051dc31f3 100644 --- a/README.md +++ b/README.md @@ -51,20 +51,20 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:20.9.0') +implementation platform('com.google.cloud:libraries-bom:21.0.0') compile 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:2.1.0' +compile 'com.google.cloud:google-cloud-bigquery:2.1.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.1" ``` ## Authentication From 6d47b66722af4ea8be3921b68f117d38c07d00e9 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 17 Aug 2021 20:24:37 +0000 Subject: [PATCH 1463/3441] chore: release 2.1.2 (#1507) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.2](https://www.github.com/googleapis/java-bigquery/compare/v2.1.1...v2.1.2) (2021-08-17) ### Bug Fixes * add retry logging for BigQueryRetryAlgorithm.java ([#1506](https://www.github.com/googleapis/java-bigquery/issues/1506)) ([f598279](https://www.github.com/googleapis/java-bigquery/commit/f5982794fb5f9c13c3e328efcb8ab852682b4466)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 31e196137ab5..8a6214f54f18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.1.2](https://www.github.com/googleapis/java-bigquery/compare/v2.1.1...v2.1.2) (2021-08-17) + + +### Bug Fixes + +* add retry logging for BigQueryRetryAlgorithm.java ([#1506](https://www.github.com/googleapis/java-bigquery/issues/1506)) ([f598279](https://www.github.com/googleapis/java-bigquery/commit/f5982794fb5f9c13c3e328efcb8ab852682b4466)) + ### [2.1.1](https://www.github.com/googleapis/java-bigquery/compare/v2.1.0...v2.1.1) (2021-08-12) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 818f2b2d0810..3542e62248e5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.2-SNAPSHOT + 2.1.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ef5e46c4e7f8..5aca148b4787 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.2-SNAPSHOT + 2.1.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.2-SNAPSHOT + 2.1.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8104c467e5bf..b808250d8c2b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.2-SNAPSHOT + 2.1.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.2-SNAPSHOT + 2.1.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d34a53ecc857..c00d9b986f3b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.2-SNAPSHOT + 2.1.2 diff --git a/versions.txt b/versions.txt index fa6249f3efca..0b0f25a904cc 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.1:2.1.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.2:2.1.2 \ No newline at end of file From 8c0e6c20c6e56d66f2f00da55fc67f74091e9ae3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 17 Aug 2021 20:38:37 +0000 Subject: [PATCH 1464/3441] chore: release 2.1.3-SNAPSHOT (#1509) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3542e62248e5..03a5bfdcafe5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.2 + 2.1.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5aca148b4787..f21ce8fe78eb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.2 + 2.1.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.2 + 2.1.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b808250d8c2b..ca2bfa7f68eb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.2 + 2.1.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.2 + 2.1.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c00d9b986f3b..56a1fe621daa 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.2 + 2.1.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0b0f25a904cc..1cd0baaf1757 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.2:2.1.2 \ No newline at end of file +google-cloud-bigquery:2.1.2:2.1.3-SNAPSHOT \ No newline at end of file From e1713f2cf04349cd0336cd3aca7ca2870bfa96d4 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Tue, 24 Aug 2021 12:40:08 -0400 Subject: [PATCH 1465/3441] ci: removing linkage-monitor from the required checks (#1513) Linkage Monitor is no longer needed, because the Libraries BOM synchronizes with Google Cloud BOM and the shared dependencies BOM https://github.com/GoogleCloudPlatform/cloud-opensource-java/issues/2137 --- .github/sync-repo-settings.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 60fc43347a27..ab4807cbe09e 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -10,7 +10,6 @@ branchProtectionRules: requiredStatusCheckContexts: - dependencies (8) - dependencies (11) - - linkage-monitor - lint - clirr - units (8) @@ -25,7 +24,6 @@ branchProtectionRules: requiredStatusCheckContexts: - dependencies (8) - dependencies (11) - - linkage-monitor - lint - clirr - units (7) @@ -41,7 +39,6 @@ branchProtectionRules: requiredStatusCheckContexts: - dependencies (8) - dependencies (11) - - linkage-monitor - lint - clirr - units (7) From 0dde21c66d3e4eecf44faefc78428ec40726e013 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 24 Aug 2021 09:56:10 -0700 Subject: [PATCH 1466/3441] chore: regenerate README (#1514) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-24 16:42:22,732 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-24 16:42:24,160 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/a7cf7262-7e16-4d7a-99fe-24a1f05aad4f/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 84d90c7870b4..592fcf91a7fb 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "f5982794fb5f9c13c3e328efcb8ab852682b4466" + "sha": "e1713f2cf04349cd0336cd3aca7ca2870bfa96d4" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "a01e1a0bf70754f51450958b966bd673945d1e6e" + "sha": "8032ab5a32471d85ece8fc261df16cc40fbfa4fb" } } ] diff --git a/README.md b/README.md index 52f051dc31f3..e46d895daf80 100644 --- a/README.md +++ b/README.md @@ -58,13 +58,13 @@ compile 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:2.1.1' +compile 'com.google.cloud:google-cloud-bigquery:2.1.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.2" ``` ## Authentication From 2fc3bcc4f6a708b3a7eb8811c6dc87cb1c84633d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 01:28:03 +0200 Subject: [PATCH 1467/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v21 (#1528) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 435ce8995ceb..53421b8c1b8c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 20.9.0 + 21.0.0 pom import From 5709319c3959b3a504aab57e80ec693b3c27d0c7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 01:28:27 +0200 Subject: [PATCH 1468/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.0.1 (#1518) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ca2bfa7f68eb..9e3423c17812 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.0.0 + 1.0.1 From 75aef641f48bec0ae549385146432725e7a6c58c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 01:28:54 +0200 Subject: [PATCH 1469/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.0.2 (#1519) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4f0e9cb6b945..17b45ac733da 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.0.0 + 2.0.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 56a1fe621daa..bdf77a641408 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.0.0 + 2.0.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 53421b8c1b8c..f5a197935033 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.0.0 + 2.0.2 test From da09e53bbdd18693c182d7945506b0531bb445e4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 01:29:13 +0200 Subject: [PATCH 1470/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210813-1.32.1 (#1520) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9e3423c17812..7447ec91bddf 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210726-1.32.1 + v2-rev20210813-1.32.1 2.0.1
    From 6be4f2473ecf1b710e7142da27616b374b3cca12 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 01:30:44 +0200 Subject: [PATCH 1471/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.0.2 (#1522) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.0.0` -> `2.0.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.0.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.0.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.0.2/compatibility-slim/2.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.0.2/confidence-slim/2.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.0.2`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​202-httpswwwgithubcomgoogleapisjava-storagecomparev201v202-2021-08-19) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.0.1...v2.0.2) ### [`v2.0.1`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​201-httpswwwgithubcomgoogleapisjava-storagecomparev200v201-2021-08-11) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.0.0...v2.0.1) ##### Features - generate storage v2 gapic client ([#​960](https://www.togithub.com/googleapis/java-storage/issues/960)) ([fb2f9d4](https://www.github.com/googleapis/java-storage/commit/fb2f9d489e42b57f61642ce9e0c1a65fe91c9c45)) ##### Bug Fixes - incorrectly labeled span list(String,Map) ([#​946](https://www.togithub.com/googleapis/java-storage/issues/946)) ([0c1fdcf](https://www.github.com/googleapis/java-storage/commit/0c1fdcfe89609b10c148f0dc6026084d2f49b1b7)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.0.1 ([#​961](https://www.togithub.com/googleapis/java-storage/issues/961)) ([69543dc](https://www.github.com/googleapis/java-storage/commit/69543dcba2fce1028e5fac25a59e1defe6465f06))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7447ec91bddf..f36e84d5a06f 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ com.google.cloud google-cloud-storage - 2.0.0 + 2.0.2 test From a36fc45329b9a73aa6ee1316b2d348276f30d25c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 01:31:42 +0200 Subject: [PATCH 1472/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.32.1 (#1527) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 17b45ac733da..b494cd00b303 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.31.5 + 1.32.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bdf77a641408..d531a798e0ac 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.31.5 + 1.32.1 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f5a197935033..a345c06285be 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.31.5 + 1.32.1 From c31f18b6dc9e02adcf72dc8ae8526d4ab766797c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 01:32:06 +0200 Subject: [PATCH 1473/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.32.1 (#1526) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b494cd00b303..56bf5acea37a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.31.5 + 1.32.1 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d531a798e0ac..a79a4bba3d91 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.31.5 + 1.32.1 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a345c06285be..166866e31b4c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.31.5 + 1.32.1 com.google.oauth-client From 11da456eb42f8b86d4ec64d192cd580f9e219aeb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 01:32:43 +0200 Subject: [PATCH 1474/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.0.1 (#1521) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.0.0` -> `2.0.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.0.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.0.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.0.1/compatibility-slim/2.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.0.1/confidence-slim/2.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.0.1`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​201-httpswwwgithubcomgoogleapisjava-bigtablecomparev200v201-2021-08-11) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.0.0...v2.0.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 56bf5acea37a..664def9a02cf 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.0.0 + 2.0.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a79a4bba3d91..9a77f881a886 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.0.0 + 2.0.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 166866e31b4c..82875f9d7a7b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.0.0 + 2.0.1 test From 0d180694c95e1101d91a6cc4eb8aaddf27494192 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 01:32:47 +0200 Subject: [PATCH 1475/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.1.2 (#1524) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.0.1` -> `2.1.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.1.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.1.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.1.2/compatibility-slim/2.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.1.2/confidence-slim/2.0.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.1.2`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​212-httpswwwgithubcomgoogleapisjava-bigquerycomparev211v212-2021-08-17) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.1.1...v2.1.2) ### [`v2.1.1`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​211-httpswwwgithubcomgoogleapisjava-bigquerycomparev210v211-2021-08-12) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.1.0...v2.1.1) ### [`v2.1.0`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​210-httpswwwgithubcomgoogleapisjava-bigquerycomparev201v210-2021-08-11) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.0.1...v2.1.0) ##### Features - add support for transactioninfo in query statistics ([#​1497](https://www.togithub.com/googleapis/java-bigquery/issues/1497)) ([4c3b2de](https://www.github.com/googleapis/java-bigquery/commit/4c3b2de16584b9079dd4afd5a33aa8c00bc75f20)), closes [#​1467](https://www.togithub.com/googleapis/java-bigquery/issues/1467) - Updated `BigQueryRetryAlgorithm` so that it can retry on RateLimit Errors using RegEx ([#​1499](https://www.togithub.com/googleapis/java-bigquery/issues/1499)) ([ec68c11](https://www.github.com/googleapis/java-bigquery/commit/ec68c1145a89753e7d42458bbea86737cad6090f)) ##### Dependencies - update dependency com.google.cloud:google-cloud-bigtable to v2 ([#​1495](https://www.togithub.com/googleapis/java-bigquery/issues/1495)) ([cf26534](https://www.github.com/googleapis/java-bigquery/commit/cf265347e5e650670d19a1122f69497272854ebe)) - update dependency com.google.cloud:google-cloud-storage to v2 ([#​1491](https://www.togithub.com/googleapis/java-bigquery/issues/1491)) ([b705052](https://www.github.com/googleapis/java-bigquery/commit/b705052475899512c7981d3893b7d630f1488c99)) ##### [2.0.1](https://www.github.com/googleapis/java-bigquery/compare/v2.0.0...v2.0.1) (2021-08-09) ##### Dependencies - update dependency com.google.cloud:google-cloud-storage to v1.118.1 ([#​1486](https://www.togithub.com/googleapis/java-bigquery/issues/1486)) ([3ba6e1f](https://www.github.com/googleapis/java-bigquery/commit/3ba6e1f8548b5518076187a65b214c79195d86ac)) - update jmh.version to v1.33 ([#​1487](https://www.togithub.com/googleapis/java-bigquery/issues/1487)) ([3eedfbe](https://www.github.com/googleapis/java-bigquery/commit/3eedfbe208897c6ee45b480ff81a90a4dba9bdd4))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 664def9a02cf..7e63cd74ade0 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.0.1 + 2.1.2 From a05491fdc3434013b37f80b32b04296df3813cd5 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 24 Aug 2021 16:42:26 -0700 Subject: [PATCH 1476/3441] chore: regenerate README (#1530) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-24 23:30:16,489 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-24 23:30:17,732 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/a2bd1d2d-d8a7-46fd-ad1f-a2ff282ddbaf/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 592fcf91a7fb..c4f165f1737f 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "e1713f2cf04349cd0336cd3aca7ca2870bfa96d4" + "sha": "da09e53bbdd18693c182d7945506b0531bb445e4" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "8032ab5a32471d85ece8fc261df16cc40fbfa4fb" + "sha": "63cff634aabb85854caa511c5837ea6b45f42b4b" } } ] diff --git a/README.md b/README.md index e46d895daf80..45a977e13677 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 20.9.0 + 21.0.0 pom import From cd7e46b6a7e78937a59c0a3aee0c81e51a342ce3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 01:44:42 +0200 Subject: [PATCH 1477/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.1.0 (#1525) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `2.0.1` -> `2.1.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.1.0/compatibility-slim/2.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.1.0/confidence-slim/2.0.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v2.1.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​210-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare201v210-2021-08-23) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v2.0.1...v2.1.0) ##### Dependencies - update dependency com.google.auth:google-auth-library-bom to v1.1.0 ([#​439](https://www.togithub.com/googleapis/java-shared-dependencies/issues/439)) ([ca52bd9](https://www.github.com/googleapis/java-shared-dependencies/commit/ca52bd9c099c96bf7b5a57aa85d39b58a610c875)) - update dependency com.google.cloud:google-cloud-core-bom to v2.1.0 ([#​444](https://www.togithub.com/googleapis/java-shared-dependencies/issues/444)) ([ff914c6](https://www.github.com/googleapis/java-shared-dependencies/commit/ff914c6de9e3e7fa6ba75591d3d5077c5421827d)) - update dependency com.google.code.gson:gson to v2.8.8 ([#​442](https://www.togithub.com/googleapis/java-shared-dependencies/issues/442)) ([79a093f](https://www.github.com/googleapis/java-shared-dependencies/commit/79a093f9ccea4d47cf8b678570a1c9699029a8b2)) - update dependency com.google.errorprone:error_prone_annotations to v2.9.0 ([#​441](https://www.togithub.com/googleapis/java-shared-dependencies/issues/441)) ([e644a4b](https://www.github.com/googleapis/java-shared-dependencies/commit/e644a4b504ab8aa5771f9be36861d1730ea9bcc9)) - update dependency io.grpc:grpc-bom to v1.40.0 ([#​438](https://www.togithub.com/googleapis/java-shared-dependencies/issues/438)) ([c3f8fb4](https://www.github.com/googleapis/java-shared-dependencies/commit/c3f8fb4408f5dc6c7f7dc0e14f0c24fa755433a5)) - update gax.version to v2.3.0 ([#​437](https://www.togithub.com/googleapis/java-shared-dependencies/issues/437)) ([e59aaad](https://www.github.com/googleapis/java-shared-dependencies/commit/e59aaadd76e40ab5ea31c3e812686a4ba0471a49)) ##### [2.0.1](https://www.github.com/googleapis/java-shared-dependencies/compare/2.0.0...v2.0.1) (2021-08-11) ##### Dependencies - update dependency com.google.api:api-common to v2.0.1 ([#​431](https://www.togithub.com/googleapis/java-shared-dependencies/issues/431)) ([b1a52c8](https://www.github.com/googleapis/java-shared-dependencies/commit/b1a52c83e19be7be80086f2010e928171b046f62)) - update gax.version to v2.1.0 ([#​432](https://www.togithub.com/googleapis/java-shared-dependencies/issues/432)) ([7f53006](https://www.github.com/googleapis/java-shared-dependencies/commit/7f53006d021e839f52325a87d7c4715eff88818d)) - update google.core.version to v2.0.4 ([#​430](https://www.togithub.com/googleapis/java-shared-dependencies/issues/430)) ([d0465ad](https://www.github.com/googleapis/java-shared-dependencies/commit/d0465ad3a79993d4e854078ea992e53ab9add07f)) - update google.core.version to v2.0.5 ([#​434](https://www.togithub.com/googleapis/java-shared-dependencies/issues/434)) ([af00753](https://www.github.com/googleapis/java-shared-dependencies/commit/af0075390034cba5cefede8260ab03f728d525a8))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f36e84d5a06f..1cb9b98ea9b7 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ google-cloud-bigquery-parent v2-rev20210813-1.32.1 - 2.0.1 + 2.1.0
    From a5044fce36802d2503a14633780aab33ee5e3ed6 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 24 Aug 2021 16:56:45 -0700 Subject: [PATCH 1478/3441] chore: regenerate README (#1531) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-24 23:44:46,090 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-24 23:44:47,238 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/fe5c2df8-e14c-4d63-b55e-42777a4d506d/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index c4f165f1737f..f1684c216578 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "da09e53bbdd18693c182d7945506b0531bb445e4" + "sha": "cd7e46b6a7e78937a59c0a3aee0c81e51a342ce3" } }, { diff --git a/README.md b/README.md index 45a977e13677..778fb155488f 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.0.1 + 2.1.2 ``` From 0d4c6c9f307c96654c603253a76619125bb29563 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 24 Aug 2021 23:58:29 +0000 Subject: [PATCH 1479/3441] chore: release 2.1.3 (#1529) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.3](https://www.github.com/googleapis/java-bigquery/compare/v2.1.2...v2.1.3) (2021-08-24) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210813-1.32.1 ([#1520](https://www.github.com/googleapis/java-bigquery/issues/1520)) ([da09e53](https://www.github.com/googleapis/java-bigquery/commit/da09e53bbdd18693c182d7945506b0531bb445e4)) * update dependency com.google.cloud:google-cloud-bigtable to v2.0.1 ([#1521](https://www.github.com/googleapis/java-bigquery/issues/1521)) ([11da456](https://www.github.com/googleapis/java-bigquery/commit/11da456eb42f8b86d4ec64d192cd580f9e219aeb)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.1.0 ([#1525](https://www.github.com/googleapis/java-bigquery/issues/1525)) ([cd7e46b](https://www.github.com/googleapis/java-bigquery/commit/cd7e46b6a7e78937a59c0a3aee0c81e51a342ce3)) * update dependency com.google.cloud:google-cloud-storage to v2.0.2 ([#1522](https://www.github.com/googleapis/java-bigquery/issues/1522)) ([6be4f24](https://www.github.com/googleapis/java-bigquery/commit/6be4f2473ecf1b710e7142da27616b374b3cca12)) * update dependency com.google.oauth-client:google-oauth-client-java6 to v1.32.1 ([#1526](https://www.github.com/googleapis/java-bigquery/issues/1526)) ([c31f18b](https://www.github.com/googleapis/java-bigquery/commit/c31f18b6dc9e02adcf72dc8ae8526d4ab766797c)) * update dependency com.google.oauth-client:google-oauth-client-jetty to v1.32.1 ([#1527](https://www.github.com/googleapis/java-bigquery/issues/1527)) ([a36fc45](https://www.github.com/googleapis/java-bigquery/commit/a36fc45329b9a73aa6ee1316b2d348276f30d25c)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a6214f54f18..769ccadb5b13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### [2.1.3](https://www.github.com/googleapis/java-bigquery/compare/v2.1.2...v2.1.3) (2021-08-24) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210813-1.32.1 ([#1520](https://www.github.com/googleapis/java-bigquery/issues/1520)) ([da09e53](https://www.github.com/googleapis/java-bigquery/commit/da09e53bbdd18693c182d7945506b0531bb445e4)) +* update dependency com.google.cloud:google-cloud-bigtable to v2.0.1 ([#1521](https://www.github.com/googleapis/java-bigquery/issues/1521)) ([11da456](https://www.github.com/googleapis/java-bigquery/commit/11da456eb42f8b86d4ec64d192cd580f9e219aeb)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.1.0 ([#1525](https://www.github.com/googleapis/java-bigquery/issues/1525)) ([cd7e46b](https://www.github.com/googleapis/java-bigquery/commit/cd7e46b6a7e78937a59c0a3aee0c81e51a342ce3)) +* update dependency com.google.cloud:google-cloud-storage to v2.0.2 ([#1522](https://www.github.com/googleapis/java-bigquery/issues/1522)) ([6be4f24](https://www.github.com/googleapis/java-bigquery/commit/6be4f2473ecf1b710e7142da27616b374b3cca12)) +* update dependency com.google.oauth-client:google-oauth-client-java6 to v1.32.1 ([#1526](https://www.github.com/googleapis/java-bigquery/issues/1526)) ([c31f18b](https://www.github.com/googleapis/java-bigquery/commit/c31f18b6dc9e02adcf72dc8ae8526d4ab766797c)) +* update dependency com.google.oauth-client:google-oauth-client-jetty to v1.32.1 ([#1527](https://www.github.com/googleapis/java-bigquery/issues/1527)) ([a36fc45](https://www.github.com/googleapis/java-bigquery/commit/a36fc45329b9a73aa6ee1316b2d348276f30d25c)) + ### [2.1.2](https://www.github.com/googleapis/java-bigquery/compare/v2.1.1...v2.1.2) (2021-08-17) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 03a5bfdcafe5..fbc32e0d7061 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.3-SNAPSHOT + 2.1.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f21ce8fe78eb..2f38cd6d1048 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.3-SNAPSHOT + 2.1.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.3-SNAPSHOT + 2.1.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1cb9b98ea9b7..10a662c382ae 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.3-SNAPSHOT + 2.1.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.3-SNAPSHOT + 2.1.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9a77f881a886..e5dce8a6ddb3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.3-SNAPSHOT + 2.1.3 diff --git a/versions.txt b/versions.txt index 1cd0baaf1757..20ee2efe7cb2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.2:2.1.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.3:2.1.3 \ No newline at end of file From 45728a699b4076f606f44eb56ae3de90ae91742e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 25 Aug 2021 00:10:43 +0000 Subject: [PATCH 1480/3441] chore: release 2.1.4-SNAPSHOT (#1532) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index fbc32e0d7061..fc85dfb31470 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.3 + 2.1.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2f38cd6d1048..715ca51f3e67 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.3 + 2.1.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.3 + 2.1.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 10a662c382ae..9e6c9ce73772 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.3 + 2.1.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.3 + 2.1.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e5dce8a6ddb3..b18a4a915b6e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.3 + 2.1.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 20ee2efe7cb2..146c6ea400f4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.3:2.1.3 \ No newline at end of file +google-cloud-bigquery:2.1.3:2.1.4-SNAPSHOT \ No newline at end of file From 804221c521bae5e90e4e896cdcd2ea2144be8922 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 20:11:22 +0200 Subject: [PATCH 1481/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.1.3 (#1533) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7e63cd74ade0..6353e7bd9d36 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.1.2 + 2.1.3 From 7884f5d4a281b37ea3ef61a03d3b6f94163d3486 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 21:30:50 +0200 Subject: [PATCH 1482/3441] test(deps): update datacatalog dependencies to v1.5.3 (#1523) * test(deps): update datacatalog dependencies to v1.5.3 * Update pom.xml Co-authored-by: Stephanie Wang --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9e6c9ce73772..dc4a09e7b409 100644 --- a/pom.xml +++ b/pom.xml @@ -120,13 +120,13 @@ com.google.cloud google-cloud-datacatalog - 1.5.1 + 1.5.3 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.5.1 + 1.5.3 test From d998cf65c653eff3322547662b7e88b51ec21c15 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 Aug 2021 21:42:32 +0200 Subject: [PATCH 1483/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.1.0 (#1534) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.0.2` -> `2.1.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.0/compatibility-slim/2.0.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.0/confidence-slim/2.0.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.1.0`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​210-httpswwwgithubcomgoogleapisjava-storagecomparev202v210-2021-08-24) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.0.2...v2.1.0) ##### Features - fix post policy escape bug, update conformance tests ([#​924](https://www.togithub.com/googleapis/java-storage/issues/924)) ([d8329c3](https://www.github.com/googleapis/java-storage/commit/d8329c34fe19fd8c6bba5579aa3c55490c1d4e6f)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.1.0 ([#​976](https://www.togithub.com/googleapis/java-storage/issues/976)) ([5cac14d](https://www.github.com/googleapis/java-storage/commit/5cac14d7785ef3798c379d17cd44500958d9cc6a)) - update kms.version to v0.91.2 ([#​977](https://www.togithub.com/googleapis/java-storage/issues/977)) ([1c60e6e](https://www.github.com/googleapis/java-storage/commit/1c60e6e6a34f662478043989b5b0bddea32cc5bf)) ##### [2.0.2](https://www.github.com/googleapis/java-storage/compare/v2.0.1...v2.0.2) (2021-08-19) ##### Dependencies - update kms.version to v0.91.1 ([#​956](https://www.togithub.com/googleapis/java-storage/issues/956)) ([53d24e9](https://www.github.com/googleapis/java-storage/commit/53d24e9d3e27c0319fa3b6837c926484b1bd56a4))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dc4a09e7b409..3b5200258052 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ com.google.cloud google-cloud-storage - 2.0.2 + 2.1.0 test From 96fc84456f81e5cd978dcb5be9f3b6e8edbeceb5 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 25 Aug 2021 12:52:15 -0700 Subject: [PATCH 1484/3441] chore: regenerate README (#1537) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-25 18:13:40,951 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-25 18:13:42,093 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/64346b6e-7f7e-4a04-89d6-3745bb818f90/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index f1684c216578..9578b9082342 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "cd7e46b6a7e78937a59c0a3aee0c81e51a342ce3" + "sha": "804221c521bae5e90e4e896cdcd2ea2144be8922" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "63cff634aabb85854caa511c5837ea6b45f42b4b" + "sha": "e2aa5bcc3356d9e3b8b53de3b5c86226447d3a22" } } ] diff --git a/README.md b/README.md index 778fb155488f..94fba87f496b 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.1.2 + 2.1.3 ``` @@ -58,13 +58,13 @@ compile 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:2.1.2' +compile 'com.google.cloud:google-cloud-bigquery:2.1.3' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.3" ``` ## Authentication From 0fc6199f470b6214ee75f35afa8b6cc480e1da80 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 25 Aug 2021 19:56:27 +0000 Subject: [PATCH 1485/3441] chore: release 2.1.4 (#1538) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.4](https://www.github.com/googleapis/java-bigquery/compare/v2.1.3...v2.1.4) (2021-08-25) ### Dependencies * update dependency com.google.cloud:google-cloud-storage to v2.1.0 ([#1534](https://www.github.com/googleapis/java-bigquery/issues/1534)) ([d998cf6](https://www.github.com/googleapis/java-bigquery/commit/d998cf65c653eff3322547662b7e88b51ec21c15)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 769ccadb5b13..658f54fd4881 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.1.4](https://www.github.com/googleapis/java-bigquery/compare/v2.1.3...v2.1.4) (2021-08-25) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v2.1.0 ([#1534](https://www.github.com/googleapis/java-bigquery/issues/1534)) ([d998cf6](https://www.github.com/googleapis/java-bigquery/commit/d998cf65c653eff3322547662b7e88b51ec21c15)) + ### [2.1.3](https://www.github.com/googleapis/java-bigquery/compare/v2.1.2...v2.1.3) (2021-08-24) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index fc85dfb31470..310470e571a4 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.4-SNAPSHOT + 2.1.4 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 715ca51f3e67..f78ebf03cdca 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.4-SNAPSHOT + 2.1.4 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.4-SNAPSHOT + 2.1.4 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3b5200258052..53b39f185244 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.4-SNAPSHOT + 2.1.4 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.4-SNAPSHOT + 2.1.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b18a4a915b6e..596908eeb4fa 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.4-SNAPSHOT + 2.1.4 diff --git a/versions.txt b/versions.txt index 146c6ea400f4..64551abe5ccd 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.3:2.1.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.4:2.1.4 \ No newline at end of file From 983fa87bbf235668e9920cbcdbd48640a12f0488 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 25 Aug 2021 20:10:29 +0000 Subject: [PATCH 1486/3441] chore: release 2.1.5-SNAPSHOT (#1539) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 310470e571a4..f0d2bf80e11e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.4 + 2.1.5-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f78ebf03cdca..56d28e53bb8e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.4 + 2.1.5-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.4 + 2.1.5-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 53b39f185244..9707602e0bf5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.4 + 2.1.5-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.4 + 2.1.5-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 596908eeb4fa..c1dbd7f805ef 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.4 + 2.1.5-SNAPSHOT diff --git a/versions.txt b/versions.txt index 64551abe5ccd..3526a2ba8b9c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.4:2.1.4 \ No newline at end of file +google-cloud-bigquery:2.1.4:2.1.5-SNAPSHOT \ No newline at end of file From 64ceb01cc928679bc5e306a349aafd24caa1424b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 26 Aug 2021 00:51:58 +0200 Subject: [PATCH 1487/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.1.4 (#1540) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6353e7bd9d36..046d7ab5ab4b 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.1.3 + 2.1.4 From cd855e24e540fa141825f00b629c966a1efe7cdd Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 25 Aug 2021 16:08:25 -0700 Subject: [PATCH 1488/3441] chore: regenerate README (#1541) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-25 22:54:07,936 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-25 22:54:09,128 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/8bce8f5c-585a-48ce-9c4d-a986e30cd8db/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 9578b9082342..0603a23ae9e9 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "804221c521bae5e90e4e896cdcd2ea2144be8922" + "sha": "64ceb01cc928679bc5e306a349aafd24caa1424b" } }, { diff --git a/README.md b/README.md index 94fba87f496b..d29575db5f91 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.1.3 + 2.1.4 ``` @@ -58,13 +58,13 @@ compile 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:2.1.3' +compile 'com.google.cloud:google-cloud-bigquery:2.1.4' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.4" ``` ## Authentication From 56e82d104be9d277c54afa2db6c91f4fc61b5382 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 25 Aug 2021 16:30:10 -0700 Subject: [PATCH 1489/3441] chore: enable release-trigger bot (#1535) This PR was generated using Autosynth. :rainbow: Synth log will be available here: https://source.cloud.google.com/results/invocations/9d9d6f88-75f1-4d18-994b-3ba385348050/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) Source-Link: https://github.com/googleapis/synthtool/commit/63cff634aabb85854caa511c5837ea6b45f42b4b --- .github/release-trigger.yml | 1 + synth.metadata | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 .github/release-trigger.yml diff --git a/.github/release-trigger.yml b/.github/release-trigger.yml new file mode 100644 index 000000000000..d4ca94189e16 --- /dev/null +++ b/.github/release-trigger.yml @@ -0,0 +1 @@ +enabled: true diff --git a/synth.metadata b/synth.metadata index 2e644ef323c5..b554797cc844 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "7fc2fb848ecc6eca46fc2996bf0f301f0d08722b" + "sha": "45728a699b4076f606f44eb56ae3de90ae91742e" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "ff01716e16d2c6e87eaf87197b753ac9fcbbed5d" + "sha": "63cff634aabb85854caa511c5837ea6b45f42b4b" } } ], @@ -25,6 +25,7 @@ ".github/generated-files-bot.yml", ".github/readme/synth.py", ".github/release-please.yml", + ".github/release-trigger.yml", ".github/snippet-bot.yml", ".github/sync-repo-settings.yaml", ".github/trusted-contribution.yml", From 345481081b3ca78e43aebfbc5ad1033b52349beb Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 26 Aug 2021 09:06:20 -0700 Subject: [PATCH 1490/3441] ci: removing linkage-monitor from the required checks (#1542) Source-Author: Tomo Suzuki Source-Date: Wed Aug 25 13:18:10 2021 -0400 Source-Repo: googleapis/synthtool Source-Sha: e2aa5bcc3356d9e3b8b53de3b5c86226447d3a22 Source-Link: https://github.com/googleapis/synthtool/commit/e2aa5bcc3356d9e3b8b53de3b5c86226447d3a22 --- .github/workflows/ci.yaml | 13 ------------- synth.metadata | 4 ++-- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 65ae6ecdda77..d510359d97df 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -42,19 +42,6 @@ jobs: java-version: ${{matrix.java}} - run: java -version - run: .kokoro/dependencies.sh - linkage-monitor: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v1 - with: - java-version: 8 - - run: java -version - - name: Install artifacts to local Maven repository - run: .kokoro/build.sh - shell: bash - - name: Validate any conflicts with regard to com.google.cloud:libraries-bom (latest release) - uses: GoogleCloudPlatform/cloud-opensource-java/linkage-monitor@v1-linkagemonitor lint: runs-on: ubuntu-latest steps: diff --git a/synth.metadata b/synth.metadata index b554797cc844..882974a4dc13 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "45728a699b4076f606f44eb56ae3de90ae91742e" + "sha": "56e82d104be9d277c54afa2db6c91f4fc61b5382" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "63cff634aabb85854caa511c5837ea6b45f42b4b" + "sha": "e2aa5bcc3356d9e3b8b53de3b5c86226447d3a22" } } ], From 336a861e2e0a80bfc43a96844219ec2d0493a967 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 27 Aug 2021 17:01:23 +0200 Subject: [PATCH 1491/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v22 (#1544) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 82875f9d7a7b..6b246da467e9 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 21.0.0 + 22.0.0 pom import From 0c501c8d42641316853e2cde995e70723596dc88 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 27 Aug 2021 08:18:24 -0700 Subject: [PATCH 1492/3441] chore: regenerate README (#1545) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-27 15:06:24,732 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-27 15:06:25,843 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/a41b5798-95ef-4460-8578-b04583195c43/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 0603a23ae9e9..b79f06c3c13e 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "64ceb01cc928679bc5e306a349aafd24caa1424b" + "sha": "336a861e2e0a80bfc43a96844219ec2d0493a967" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "e2aa5bcc3356d9e3b8b53de3b5c86226447d3a22" + "sha": "31728d872f50e439ded2f67fa8d67955b26a4e35" } } ] diff --git a/README.md b/README.md index d29575db5f91..ecf30d98a150 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 21.0.0 + 22.0.0 pom import @@ -51,7 +51,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:21.0.0') +implementation platform('com.google.cloud:libraries-bom:22.0.0') compile 'com.google.cloud:google-cloud-bigquery' ``` From c00e6b663b983e6ec030323d9da6829416065be5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 29 Aug 2021 18:14:28 +0200 Subject: [PATCH 1493/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210819-1.32.1 (#1546) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9707602e0bf5..5ea37d362e53 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210813-1.32.1 + v2-rev20210819-1.32.1 2.1.0
    From 246605fd16bc29565dea4657f7d9d5a22555ce3c Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Sun, 29 Aug 2021 09:28:23 -0700 Subject: [PATCH 1494/3441] chore: regenerate README (#1548) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-08-29 16:16:46,823 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-08-29 16:16:48,027 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/ce17b2cb-d7f7-462d-8c2a-e609ff1a043f/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index b79f06c3c13e..7593bdf8de39 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "336a861e2e0a80bfc43a96844219ec2d0493a967" + "sha": "c00e6b663b983e6ec030323d9da6829416065be5" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "31728d872f50e439ded2f67fa8d67955b26a4e35" + "sha": "e770c12f2a9a5f84566fe04b16a4ceec1c8c109b" } } ] diff --git a/README.md b/README.md index ecf30d98a150..571cee84bcb3 100644 --- a/README.md +++ b/README.md @@ -53,12 +53,12 @@ If you are using Gradle 5.x or later, add this to your dependencies ```Groovy implementation platform('com.google.cloud:libraries-bom:22.0.0') -compile 'com.google.cloud:google-cloud-bigquery' +implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -compile 'com.google.cloud:google-cloud-bigquery:2.1.4' +implementation 'com.google.cloud:google-cloud-bigquery:2.1.4' ``` If you are using SBT, add this to your dependencies From 69889f08b830ea47de66410cc45e9be3248c8154 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 31 Aug 2021 22:44:41 +0200 Subject: [PATCH 1495/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.2.0 (#1549) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `2.1.0` -> `2.2.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.2.0/compatibility-slim/2.1.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.2.0/confidence-slim/2.1.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v2.2.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​220-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare210v220-2021-08-31) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v2.1.0...v2.2.0) ##### Dependencies - update dependency com.fasterxml.jackson:jackson-bom to v2.12.5 ([#​456](https://www.togithub.com/googleapis/java-shared-dependencies/issues/456)) ([05b58e8](https://www.github.com/googleapis/java-shared-dependencies/commit/05b58e84ff6617bdcbb1ea644aa6e061bdea0319)) - update dependency com.google.api:api-common to v2.0.2 ([#​450](https://www.togithub.com/googleapis/java-shared-dependencies/issues/450)) ([51caebe](https://www.github.com/googleapis/java-shared-dependencies/commit/51caebe89bfade98866f63952bf82bc663a0179a)) - update dependency com.google.http-client:google-http-client-bom to v1.40.0 ([#​455](https://www.togithub.com/googleapis/java-shared-dependencies/issues/455)) ([82a5e42](https://www.github.com/googleapis/java-shared-dependencies/commit/82a5e42b06570a2c7c9d53b03161b110a44487a1)) - update dependency com.google.oauth-client:google-oauth-client-bom to v1.32.1 ([#​447](https://www.togithub.com/googleapis/java-shared-dependencies/issues/447)) ([9d2b895](https://www.github.com/googleapis/java-shared-dependencies/commit/9d2b8958f62daa6a3015a8ac052762fb3d79b35b)) - update dependency io.grpc:grpc-bom to v1.40.1 ([#​451](https://www.togithub.com/googleapis/java-shared-dependencies/issues/451)) ([df668ea](https://www.github.com/googleapis/java-shared-dependencies/commit/df668ead8830a40acf9d5605d47f93c465b779c0)) - update gax.version to v2.4.0 ([#​458](https://www.togithub.com/googleapis/java-shared-dependencies/issues/458)) ([a797d9e](https://www.github.com/googleapis/java-shared-dependencies/commit/a797d9eb8a4bcb3025a9511eae61271278a4a5c9)) - update google.common-protos.version to v2.5.0 ([#​457](https://www.togithub.com/googleapis/java-shared-dependencies/issues/457)) ([38c7bb9](https://www.github.com/googleapis/java-shared-dependencies/commit/38c7bb925414d90ff3065650d06589f79bcab9b6)) - update google.core.version to v2.1.1 ([#​449](https://www.togithub.com/googleapis/java-shared-dependencies/issues/449)) ([b28723a](https://www.github.com/googleapis/java-shared-dependencies/commit/b28723ace0c27ebc73f23a2d094e0fe9ba8a9075)) - update google.core.version to v2.1.2 ([#​459](https://www.togithub.com/googleapis/java-shared-dependencies/issues/459)) ([df4d5b7](https://www.github.com/googleapis/java-shared-dependencies/commit/df4d5b7717386f5e0e2cca87bd9afc56b2c7aee8)) - update iam.version to v1.1.0 ([#​448](https://www.togithub.com/googleapis/java-shared-dependencies/issues/448)) ([3967928](https://www.github.com/googleapis/java-shared-dependencies/commit/39679287f3ef8c1cbca5dfc8aca3f69cfee3d4a6))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5ea37d362e53..f855ddf00ac0 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ google-cloud-bigquery-parent v2-rev20210819-1.32.1 - 2.1.0 + 2.2.0
    From 1079fd1f8e259ac4b54270b9e32a5aa9007facb3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 31 Aug 2021 20:56:31 +0000 Subject: [PATCH 1496/3441] chore: release 2.1.5 (#1547) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.5](https://www.github.com/googleapis/java-bigquery/compare/v2.1.4...v2.1.5) (2021-08-31) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210819-1.32.1 ([#1546](https://www.github.com/googleapis/java-bigquery/issues/1546)) ([c00e6b6](https://www.github.com/googleapis/java-bigquery/commit/c00e6b663b983e6ec030323d9da6829416065be5)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.2.0 ([#1549](https://www.github.com/googleapis/java-bigquery/issues/1549)) ([69889f0](https://www.github.com/googleapis/java-bigquery/commit/69889f08b830ea47de66410cc45e9be3248c8154)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 658f54fd4881..142e7013aac5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.1.5](https://www.github.com/googleapis/java-bigquery/compare/v2.1.4...v2.1.5) (2021-08-31) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210819-1.32.1 ([#1546](https://www.github.com/googleapis/java-bigquery/issues/1546)) ([c00e6b6](https://www.github.com/googleapis/java-bigquery/commit/c00e6b663b983e6ec030323d9da6829416065be5)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.2.0 ([#1549](https://www.github.com/googleapis/java-bigquery/issues/1549)) ([69889f0](https://www.github.com/googleapis/java-bigquery/commit/69889f08b830ea47de66410cc45e9be3248c8154)) + ### [2.1.4](https://www.github.com/googleapis/java-bigquery/compare/v2.1.3...v2.1.4) (2021-08-25) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f0d2bf80e11e..35f022972fc8 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.5-SNAPSHOT + 2.1.5 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 56d28e53bb8e..4452c58b06f7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.5-SNAPSHOT + 2.1.5 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.5-SNAPSHOT + 2.1.5 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f855ddf00ac0..f3dc4478ce1b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.5-SNAPSHOT + 2.1.5 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.5-SNAPSHOT + 2.1.5 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c1dbd7f805ef..894477cfef1e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.5-SNAPSHOT + 2.1.5 diff --git a/versions.txt b/versions.txt index 3526a2ba8b9c..7d5a47b0f9e5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.4:2.1.5-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.5:2.1.5 \ No newline at end of file From 772a61337ef6f4579429ceb842f85d0dfbdd331d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 31 Aug 2021 21:10:34 +0000 Subject: [PATCH 1497/3441] chore: release 2.1.6-SNAPSHOT (#1550) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 35f022972fc8..de8bef8ff7c8 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.5 + 2.1.6-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4452c58b06f7..ddda13e03fd0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.5 + 2.1.6-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.5 + 2.1.6-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f3dc4478ce1b..8fd89f10400d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.5 + 2.1.6-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.5 + 2.1.6-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 894477cfef1e..751f11042ce7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.5 + 2.1.6-SNAPSHOT diff --git a/versions.txt b/versions.txt index 7d5a47b0f9e5..050c8d78cb7d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.5:2.1.5 \ No newline at end of file +google-cloud-bigquery:2.1.5:2.1.6-SNAPSHOT \ No newline at end of file From a08300427ae74b8de14c64f195766dd7d9dcd66a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 1 Sep 2021 02:12:42 +0200 Subject: [PATCH 1498/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.1.5 (#1551) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 046d7ab5ab4b..336853eeca77 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.1.4 + 2.1.5 From 80568caa3f0d7e3960952356223c9446619632b1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 1 Sep 2021 02:12:56 +0200 Subject: [PATCH 1499/3441] test(deps): update datacatalog dependencies to v1.5.4 (#1552) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 8fd89f10400d..eb90fea1fbcc 100644 --- a/pom.xml +++ b/pom.xml @@ -120,13 +120,13 @@ com.google.cloud google-cloud-datacatalog - 1.5.3 + 1.5.4 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.5.3 + 1.5.4 test From bac17666c1d8852e976ed2e3a81b9a73dae36c84 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 31 Aug 2021 17:26:44 -0700 Subject: [PATCH 1500/3441] chore: regenerate README (#1553) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-09-01 00:14:52,673 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-09-01 00:14:53,788 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/0162d0b5-cb69-4ccc-835d-75d1987508c0/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 7593bdf8de39..c9965ffce19b 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "c00e6b663b983e6ec030323d9da6829416065be5" + "sha": "80568caa3f0d7e3960952356223c9446619632b1" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "e770c12f2a9a5f84566fe04b16a4ceec1c8c109b" + "sha": "9a238a0623879c3de129a376c6085d4a862f6eb9" } } ] diff --git a/README.md b/README.md index 571cee84bcb3..c4069b058058 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.1.4 + 2.1.5 ``` @@ -58,13 +58,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.1.4' +implementation 'com.google.cloud:google-cloud-bigquery:2.1.5' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.4" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.5" ``` ## Authentication From 4ab08f5c175f6d09614da4c01959abbb1f2190d9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 1 Sep 2021 23:25:48 +0200 Subject: [PATCH 1501/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.0 (#1555) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 336853eeca77..141adffaabd6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.0.2 + 2.1.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 751f11042ce7..c1a153dc6114 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.0.2 + 2.1.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6b246da467e9..8e7316e78986 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.0.2 + 2.1.0 test From a88f662a1fc1c21f59e5847670dbb3f559e754f2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 2 Sep 2021 19:18:46 +0200 Subject: [PATCH 1502/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.1.1 (#1554) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.0.1` -> `2.1.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.1.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.1.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.1.1/compatibility-slim/2.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.1.1/confidence-slim/2.0.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.1.1`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​211-httpswwwgithubcomgoogleapisjava-bigtablecomparev210v211-2021-09-01) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.1.0...v2.1.1) ### [`v2.1.0`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​210-httpswwwgithubcomgoogleapisjava-bigtablecomparev201v210-2021-08-25) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.0.1...v2.1.0) ##### Features - publish new fields to support cluster group routing ([#​958](https://www.togithub.com/googleapis/java-bigtable/issues/958)) ([09b31bd](https://www.github.com/googleapis/java-bigtable/commit/09b31bd9032dc36071cb8d32fc5cb6d4d85878e1)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.1.0 ([#​962](https://www.togithub.com/googleapis/java-bigtable/issues/962)) ([a013e77](https://www.github.com/googleapis/java-bigtable/commit/a013e777af0fb2945099c178832fccd14b33398f)) ##### [2.0.1](https://www.github.com/googleapis/java-bigtable/compare/v2.0.0...v2.0.1) (2021-08-11) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.0.1 ([#​948](https://www.togithub.com/googleapis/java-bigtable/issues/948)) ([31a7cb6](https://www.github.com/googleapis/java-bigtable/commit/31a7cb60321429497ca29f02119e7a2c1b0d614f))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 141adffaabd6..ea2108994a7f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.0.1 + 2.1.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c1a153dc6114..e8f64fd70297 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.0.1 + 2.1.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 8e7316e78986..ba58b1d2627a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.0.1 + 2.1.1 test From 333c0f89ae36143b81ff24a78d3c23d5a49f8929 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 2 Sep 2021 19:32:45 +0000 Subject: [PATCH 1503/3441] chore: release 2.1.6 (#1556) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.6](https://www.github.com/googleapis/java-bigquery/compare/v2.1.5...v2.1.6) (2021-09-02) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v2.1.1 ([#1554](https://www.github.com/googleapis/java-bigquery/issues/1554)) ([a88f662](https://www.github.com/googleapis/java-bigquery/commit/a88f662a1fc1c21f59e5847670dbb3f559e754f2)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- .github/workflows/ci.yaml | 12 ++++++++++++ CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 26 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d510359d97df..12890848c64f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,6 +12,9 @@ jobs: java: [8, 11] steps: - uses: actions/checkout@v2 + - uses: stCarolas/setup-maven@v4 + with: + maven-version: 3.8.1 - uses: actions/setup-java@v1 with: java-version: ${{matrix.java}} @@ -37,6 +40,9 @@ jobs: java: [8, 11] steps: - uses: actions/checkout@v2 + - uses: stCarolas/setup-maven@v4 + with: + maven-version: 3.8.1 - uses: actions/setup-java@v1 with: java-version: ${{matrix.java}} @@ -46,6 +52,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - uses: stCarolas/setup-maven@v4 + with: + maven-version: 3.8.1 - uses: actions/setup-java@v1 with: java-version: 8 @@ -57,6 +66,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - uses: stCarolas/setup-maven@v4 + with: + maven-version: 3.8.1 - uses: actions/setup-java@v1 with: java-version: 8 diff --git a/CHANGELOG.md b/CHANGELOG.md index 142e7013aac5..ca0983fbf846 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.1.6](https://www.github.com/googleapis/java-bigquery/compare/v2.1.5...v2.1.6) (2021-09-02) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v2.1.1 ([#1554](https://www.github.com/googleapis/java-bigquery/issues/1554)) ([a88f662](https://www.github.com/googleapis/java-bigquery/commit/a88f662a1fc1c21f59e5847670dbb3f559e754f2)) + ### [2.1.5](https://www.github.com/googleapis/java-bigquery/compare/v2.1.4...v2.1.5) (2021-08-31) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index de8bef8ff7c8..a98b6873dc93 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.6-SNAPSHOT + 2.1.6 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ddda13e03fd0..ada24c272682 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.6-SNAPSHOT + 2.1.6 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.6-SNAPSHOT + 2.1.6 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index eb90fea1fbcc..f3c558ceb562 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.6-SNAPSHOT + 2.1.6 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.6-SNAPSHOT + 2.1.6 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e8f64fd70297..ed7ceed724c3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.6-SNAPSHOT + 2.1.6 diff --git a/versions.txt b/versions.txt index 050c8d78cb7d..c924e4f1ab00 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.5:2.1.6-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.6:2.1.6 \ No newline at end of file From 2234aa70902212965d2e2f006efdfc7cccb84132 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 2 Sep 2021 19:46:46 +0000 Subject: [PATCH 1504/3441] chore: release 2.1.7-SNAPSHOT (#1557) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a98b6873dc93..9e47dc2fcb6e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.6 + 2.1.7-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ada24c272682..54b53fb9271e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.6 + 2.1.7-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.6 + 2.1.7-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f3c558ceb562..a38215a15fde 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.6 + 2.1.7-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.6 + 2.1.7-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ed7ceed724c3..df3f8542bc0b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.6 + 2.1.7-SNAPSHOT diff --git a/versions.txt b/versions.txt index c924e4f1ab00..e23a818f90a3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.6:2.1.6 \ No newline at end of file +google-cloud-bigquery:2.1.6:2.1.7-SNAPSHOT \ No newline at end of file From 2d68bd2233b54cce8abdbf569dd3d3890e0fefdc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 3 Sep 2021 00:37:59 +0200 Subject: [PATCH 1505/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.1.6 (#1560) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ea2108994a7f..b332ef8cb381 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.1.5 + 2.1.6 From c0dc007d47719f0ed43d21ba8af4d75f054e74d1 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 2 Sep 2021 15:52:11 -0700 Subject: [PATCH 1506/3441] chore: regenerate README (#1562) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-09-02 22:40:49,599 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-09-02 22:40:50,773 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/36e511db-b6c6-4f0d-aa9f-8269f3080bf7/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index c9965ffce19b..b490214d185c 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "80568caa3f0d7e3960952356223c9446619632b1" + "sha": "2d68bd2233b54cce8abdbf569dd3d3890e0fefdc" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "9a238a0623879c3de129a376c6085d4a862f6eb9" + "sha": "ad7fd76e17bf9494a3e47ff9cf445f61564432e0" } } ] diff --git a/README.md b/README.md index c4069b058058..68e878c795c4 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.1.5 + 2.1.6 ``` @@ -58,13 +58,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.1.5' +implementation 'com.google.cloud:google-cloud-bigquery:2.1.6' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.5" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.6" ``` ## Authentication From addfae7442f9cda0d9ed9f243a532b18f2be8138 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Fri, 3 Sep 2021 09:17:40 -0700 Subject: [PATCH 1507/3441] chore(java): install maven 3.8.1 at runtime (#1564) * changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * chore(java): install maven 3.8.1 at runtime * chore: pin github action runner at ubuntu-16.04 * chore: install maven 3.8.1 at runtime * chore: fix typo Source-Author: Neenu Shaji Source-Date: Thu Sep 2 15:46:06 2021 -0400 Source-Repo: googleapis/synthtool Source-Sha: ad7fd76e17bf9494a3e47ff9cf445f61564432e0 Source-Link: https://github.com/googleapis/synthtool/commit/ad7fd76e17bf9494a3e47ff9cf445f61564432e0 --- .github/workflows/ci.yaml | 2 +- synth.metadata | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 12890848c64f..e23d923e1e72 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -75,4 +75,4 @@ jobs: - run: java -version - run: .kokoro/build.sh env: - JOB_TYPE: clirr + JOB_TYPE: clirr \ No newline at end of file diff --git a/synth.metadata b/synth.metadata index 882974a4dc13..5fe0d4e937a4 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "56e82d104be9d277c54afa2db6c91f4fc61b5382" + "sha": "c0dc007d47719f0ed43d21ba8af4d75f054e74d1" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "e2aa5bcc3356d9e3b8b53de3b5c86226447d3a22" + "sha": "ad7fd76e17bf9494a3e47ff9cf445f61564432e0" } } ], From cd6b3e2c663e626fd3769813fd50f66a0a3231df Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 4 Sep 2021 20:08:15 +0200 Subject: [PATCH 1508/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210828-1.32.1 (#1561) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a38215a15fde..de92133beda0 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210819-1.32.1 + v2-rev20210828-1.32.1 2.2.0
    From b0e5d7ade8a82680cb02050586b758b83b80632e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 6 Sep 2021 01:16:29 +0200 Subject: [PATCH 1509/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.1.1 (#1565) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index de92133beda0..4199165e0821 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ com.google.cloud google-cloud-storage - 2.1.0 + 2.1.1 test From bbe2c39d3ec78eb18aadbd3edd691d8151fa0dda Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 7 Sep 2021 15:02:56 -0700 Subject: [PATCH 1510/3441] chore(java): update windows build (#1569) to install maven 3.8.1 at runtime too (related to #1202) Tested in [java-bigquerystorage](https://github.com/googleapis/java-bigquerystorage/pull/1291/commits/7834f4ff86858f6ed0b8068ea66dadf6365e399a) Source-Author: Stephanie Wang Source-Date: Tue Sep 7 13:04:27 2021 -0400 Source-Repo: googleapis/synthtool Source-Sha: 17ee6e5c08f2eb47029beee4776ce990e56b3925 Source-Link: https://github.com/googleapis/synthtool/commit/17ee6e5c08f2eb47029beee4776ce990e56b3925 --- .github/workflows/ci.yaml | 5 ++++- synth.metadata | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e23d923e1e72..3becb5c022a3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -26,6 +26,9 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v2 + - uses: stCarolas/setup-maven@v4 + with: + maven-version: 3.8.1 - uses: actions/setup-java@v1 with: java-version: 8 @@ -75,4 +78,4 @@ jobs: - run: java -version - run: .kokoro/build.sh env: - JOB_TYPE: clirr \ No newline at end of file + JOB_TYPE: clirr diff --git a/synth.metadata b/synth.metadata index 5fe0d4e937a4..9a1a30bf153c 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "c0dc007d47719f0ed43d21ba8af4d75f054e74d1" + "sha": "b0e5d7ade8a82680cb02050586b758b83b80632e" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "ad7fd76e17bf9494a3e47ff9cf445f61564432e0" + "sha": "17ee6e5c08f2eb47029beee4776ce990e56b3925" } } ], From 24b103591660c14584b96e32cde10c135b68d7a1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 8 Sep 2021 00:03:19 +0200 Subject: [PATCH 1511/3441] build(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.3.1 (#1567) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4199165e0821..f39d9922c7d5 100644 --- a/pom.xml +++ b/pom.xml @@ -175,7 +175,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.3.0 + 3.3.1 html From dc6e2f8191488bcaee21bd6c0b71ee5730ed103e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 8 Sep 2021 00:03:32 +0200 Subject: [PATCH 1512/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v23 (#1568) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ba58b1d2627a..3f626991e8f9 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 22.0.0 + 23.0.0 pom import From 01695f965d8ccd84ae9bc45982958edbf1214664 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 7 Sep 2021 22:18:10 +0000 Subject: [PATCH 1513/3441] chore: release 2.1.7 (#1566) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.7](https://www.github.com/googleapis/java-bigquery/compare/v2.1.6...v2.1.7) (2021-09-07) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210828-1.32.1 ([#1561](https://www.github.com/googleapis/java-bigquery/issues/1561)) ([cd6b3e2](https://www.github.com/googleapis/java-bigquery/commit/cd6b3e2c663e626fd3769813fd50f66a0a3231df)) * update dependency com.google.cloud:google-cloud-storage to v2.1.1 ([#1565](https://www.github.com/googleapis/java-bigquery/issues/1565)) ([b0e5d7a](https://www.github.com/googleapis/java-bigquery/commit/b0e5d7ade8a82680cb02050586b758b83b80632e)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca0983fbf846..88a1ca6308ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.1.7](https://www.github.com/googleapis/java-bigquery/compare/v2.1.6...v2.1.7) (2021-09-07) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210828-1.32.1 ([#1561](https://www.github.com/googleapis/java-bigquery/issues/1561)) ([cd6b3e2](https://www.github.com/googleapis/java-bigquery/commit/cd6b3e2c663e626fd3769813fd50f66a0a3231df)) +* update dependency com.google.cloud:google-cloud-storage to v2.1.1 ([#1565](https://www.github.com/googleapis/java-bigquery/issues/1565)) ([b0e5d7a](https://www.github.com/googleapis/java-bigquery/commit/b0e5d7ade8a82680cb02050586b758b83b80632e)) + ### [2.1.6](https://www.github.com/googleapis/java-bigquery/compare/v2.1.5...v2.1.6) (2021-09-02) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9e47dc2fcb6e..723b09d5ad53 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.7-SNAPSHOT + 2.1.7 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 54b53fb9271e..45e6dfa52049 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.7-SNAPSHOT + 2.1.7 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.7-SNAPSHOT + 2.1.7 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f39d9922c7d5..3cc8cbb0ee23 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.7-SNAPSHOT + 2.1.7 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.7-SNAPSHOT + 2.1.7 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index df3f8542bc0b..a15a8be07d1d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.7-SNAPSHOT + 2.1.7 diff --git a/versions.txt b/versions.txt index e23a818f90a3..ebc51c321f07 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.6:2.1.7-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.7:2.1.7 \ No newline at end of file From b5fa76ac4477e1835ae35c5e9c2a6902ad0949c5 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Tue, 7 Sep 2021 15:18:25 -0700 Subject: [PATCH 1514/3441] chore: regenerate README (#1570) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-09-07 22:05:59,057 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-09-07 22:06:00,497 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/82f7f839-4cd7-4baf-962c-14403510f99d/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index b490214d185c..99c8325460fb 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "2d68bd2233b54cce8abdbf569dd3d3890e0fefdc" + "sha": "dc6e2f8191488bcaee21bd6c0b71ee5730ed103e" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "ad7fd76e17bf9494a3e47ff9cf445f61564432e0" + "sha": "17ee6e5c08f2eb47029beee4776ce990e56b3925" } } ] diff --git a/README.md b/README.md index 68e878c795c4..99626b3ca606 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 22.0.0 + 23.0.0 pom import @@ -51,7 +51,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:22.0.0') +implementation platform('com.google.cloud:libraries-bom:23.0.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` From 42c6f634b2d8002cd48890afbe6862c998308c94 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 7 Sep 2021 22:34:33 +0000 Subject: [PATCH 1515/3441] chore: release 2.1.8-SNAPSHOT (#1571) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 723b09d5ad53..abf5a72c3c68 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.7 + 2.1.8-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 45e6dfa52049..e8dda9df74ae 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.7 + 2.1.8-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.7 + 2.1.8-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3cc8cbb0ee23..2ade3c4cf598 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.7 + 2.1.8-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.7 + 2.1.8-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a15a8be07d1d..9c094621ea83 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.7 + 2.1.8-SNAPSHOT diff --git a/versions.txt b/versions.txt index ebc51c321f07..1a9b1813a911 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.7:2.1.7 \ No newline at end of file +google-cloud-bigquery:2.1.7:2.1.8-SNAPSHOT \ No newline at end of file From fc25036de8fe4cc99dffe5d307baebc6d1b88117 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 8 Sep 2021 15:58:26 +0200 Subject: [PATCH 1516/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.1.7 (#1572) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b332ef8cb381..a4e1751333bf 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.1.6 + 2.1.7 From 466c2953a38071d47abaa25e4a5b7470e6c38f8e Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Wed, 8 Sep 2021 07:12:27 -0700 Subject: [PATCH 1517/3441] chore: regenerate README (#1573) This PR was generated using Autosynth. :rainbow:
    Log from Synthtool ``` 2021-09-08 14:00:32,092 synthtool [DEBUG] > Executing /root/.cache/synthtool/java-bigquery/.github/readme/synth.py. On branch autosynth-readme nothing to commit, working tree clean 2021-09-08 14:00:33,230 synthtool [DEBUG] > Wrote metadata to .github/readme/synth.metadata/synth.metadata. ```
    Full log will be available here: https://source.cloud.google.com/results/invocations/2b932daf-9114-4d9e-953d-7fc7f6e4b594/targets - [ ] To automatically regenerate this PR, check this box. (May take up to 24 hours.) --- .github/readme/synth.metadata/synth.metadata | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata index 99c8325460fb..e9cf55f55d01 100644 --- a/.github/readme/synth.metadata/synth.metadata +++ b/.github/readme/synth.metadata/synth.metadata @@ -4,7 +4,7 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "dc6e2f8191488bcaee21bd6c0b71ee5730ed103e" + "sha": "fc25036de8fe4cc99dffe5d307baebc6d1b88117" } }, { diff --git a/README.md b/README.md index 99626b3ca606..7067b3ade555 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.1.6 + 2.1.7 ``` @@ -58,13 +58,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.1.6' +implementation 'com.google.cloud:google-cloud-bigquery:2.1.7' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.6" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.7" ``` ## Authentication From 9cf29fbb220ce3ff1de0d3e2d6a25b22058cbaa8 Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 8 Sep 2021 15:10:46 -0700 Subject: [PATCH 1518/3441] chore: remove readme autosynth config (#1576) --- .github/readme/synth.metadata/synth.metadata | 18 ------- .github/readme/synth.py | 19 ------- .kokoro/continuous/readme.cfg | 55 -------------------- 3 files changed, 92 deletions(-) delete mode 100644 .github/readme/synth.metadata/synth.metadata delete mode 100644 .github/readme/synth.py delete mode 100644 .kokoro/continuous/readme.cfg diff --git a/.github/readme/synth.metadata/synth.metadata b/.github/readme/synth.metadata/synth.metadata deleted file mode 100644 index e9cf55f55d01..000000000000 --- a/.github/readme/synth.metadata/synth.metadata +++ /dev/null @@ -1,18 +0,0 @@ -{ - "sources": [ - { - "git": { - "name": ".", - "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "fc25036de8fe4cc99dffe5d307baebc6d1b88117" - } - }, - { - "git": { - "name": "synthtool", - "remote": "https://github.com/googleapis/synthtool.git", - "sha": "17ee6e5c08f2eb47029beee4776ce990e56b3925" - } - } - ] -} \ No newline at end of file diff --git a/.github/readme/synth.py b/.github/readme/synth.py deleted file mode 100644 index 7b48cc28d361..000000000000 --- a/.github/readme/synth.py +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright 2020 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""This script is used to synthesize generated the README for this library.""" - -from synthtool.languages import java - -java.custom_templates(["java_library/README.md"]) diff --git a/.kokoro/continuous/readme.cfg b/.kokoro/continuous/readme.cfg deleted file mode 100644 index e99978cc71ed..000000000000 --- a/.kokoro/continuous/readme.cfg +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright 2020 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/python-multi" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/readme.sh" -} - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - regex: "**/*sponge_log.log" - } -} - -# The github token is stored here. -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "yoshi-automation-github-key" - # TODO(theacodes): remove this after secrets have globally propagated - backend_type: FASTCONFIGPUSH - } - } -} - -# Common env vars for all repositories and builds. -env_vars: { - key: "GITHUB_USER" - value: "yoshi-automation" -} -env_vars: { - key: "GITHUB_EMAIL" - value: "yoshi-automation@google.com" -} From 611689c0bd72c789e7e1adf9451e8abfcd143983 Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 9 Sep 2021 06:34:07 -0700 Subject: [PATCH 1519/3441] chore: pick up changes from synthtool. (#1575) * chore(java): remove readme autosynth job config README generation is now handled by owlbot Source-Author: Jeff Ching Source-Date: Wed Sep 8 12:11:28 2021 -0700 Source-Repo: googleapis/synthtool Source-Sha: df5093b950d4aafd49a4c7758d74c44485263ada Source-Link: https://github.com/googleapis/synthtool/commit/df5093b950d4aafd49a4c7758d74c44485263ada * chore: remove readme synth.py config Source-Author: Jeff Ching Source-Date: Wed Sep 8 13:23:41 2021 -0700 Source-Repo: googleapis/synthtool Source-Sha: 2d31a9243781b282202b4f76dc7bbc8b45803196 Source-Link: https://github.com/googleapis/synthtool/commit/2d31a9243781b282202b4f76dc7bbc8b45803196 * chore: add gcf-owl-bot to list of trusted contributors Source-Author: Jeff Ching Source-Date: Wed Sep 8 13:42:12 2021 -0700 Source-Repo: googleapis/synthtool Source-Sha: a6b97202771f89a4b76873d43ea9a07d7fc95f91 Source-Link: https://github.com/googleapis/synthtool/commit/a6b97202771f89a4b76873d43ea9a07d7fc95f91 --- .github/trusted-contribution.yml | 3 ++- synth.metadata | 6 ++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/trusted-contribution.yml b/.github/trusted-contribution.yml index f247d5c78934..a0ba1f7d9078 100644 --- a/.github/trusted-contribution.yml +++ b/.github/trusted-contribution.yml @@ -1,2 +1,3 @@ trustedContributors: -- renovate-bot \ No newline at end of file +- renovate-bot +- gcf-owl-bot[bot] diff --git a/synth.metadata b/synth.metadata index 9a1a30bf153c..037bb2122f87 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "b0e5d7ade8a82680cb02050586b758b83b80632e" + "sha": "466c2953a38071d47abaa25e4a5b7470e6c38f8e" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "17ee6e5c08f2eb47029beee4776ce990e56b3925" + "sha": "a6b97202771f89a4b76873d43ea9a07d7fc95f91" } } ], @@ -23,7 +23,6 @@ ".github/PULL_REQUEST_TEMPLATE.md", ".github/blunderbuss.yml", ".github/generated-files-bot.yml", - ".github/readme/synth.py", ".github/release-please.yml", ".github/release-trigger.yml", ".github/snippet-bot.yml", @@ -40,7 +39,6 @@ ".kokoro/common.sh", ".kokoro/continuous/common.cfg", ".kokoro/continuous/java8.cfg", - ".kokoro/continuous/readme.cfg", ".kokoro/nightly/common.cfg", ".kokoro/nightly/integration.cfg", ".kokoro/nightly/java11.cfg", From 0b0a670d743a77512cb888d3b0341a1b230d37ab Mon Sep 17 00:00:00 2001 From: Yoshi Automation Bot Date: Thu, 9 Sep 2021 16:38:48 -0700 Subject: [PATCH 1520/3441] chore(java): update shared-config and shared-dependencies version in pom template (#1578) Source-Author: Neenu Shaji Source-Date: Wed Sep 8 17:28:48 2021 -0400 Source-Repo: googleapis/synthtool Source-Sha: 396d9b84a1e93880f5bf88b59ecd38a0a6dffc5e Source-Link: https://github.com/googleapis/synthtool/commit/396d9b84a1e93880f5bf88b59ecd38a0a6dffc5e --- .kokoro/release/common.sh | 2 +- .kokoro/release/drop.sh | 2 +- .kokoro/release/promote.sh | 2 +- .kokoro/release/publish_javadoc.sh | 2 +- .kokoro/release/publish_javadoc11.sh | 2 +- .kokoro/release/stage.sh | 2 +- .kokoro/trampoline.sh | 2 +- synth.metadata | 4 ++-- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.kokoro/release/common.sh b/.kokoro/release/common.sh index 6e3f65999b3d..7f78ee414faf 100755 --- a/.kokoro/release/common.sh +++ b/.kokoro/release/common.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2018 Google Inc. +# Copyright 2018 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/.kokoro/release/drop.sh b/.kokoro/release/drop.sh index 5c4551efa2c0..742ec1a88600 100755 --- a/.kokoro/release/drop.sh +++ b/.kokoro/release/drop.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2018 Google Inc. +# Copyright 2018 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/.kokoro/release/promote.sh b/.kokoro/release/promote.sh index 1fa95fa537a3..3cac3d8a97d7 100755 --- a/.kokoro/release/promote.sh +++ b/.kokoro/release/promote.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2018 Google Inc. +# Copyright 2018 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/.kokoro/release/publish_javadoc.sh b/.kokoro/release/publish_javadoc.sh index ab106db96635..2acd135afe40 100755 --- a/.kokoro/release/publish_javadoc.sh +++ b/.kokoro/release/publish_javadoc.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2019 Google Inc. +# Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/.kokoro/release/publish_javadoc11.sh b/.kokoro/release/publish_javadoc11.sh index 10fe72d41170..d596527c8ec3 100755 --- a/.kokoro/release/publish_javadoc11.sh +++ b/.kokoro/release/publish_javadoc11.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2021 Google Inc. +# Copyright 2021 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh index 8a1033843cb1..77dc4e8f0f3a 100755 --- a/.kokoro/release/stage.sh +++ b/.kokoro/release/stage.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2018 Google Inc. +# Copyright 2018 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/.kokoro/trampoline.sh b/.kokoro/trampoline.sh index 9da0f8398773..8b69b793c9ec 100644 --- a/.kokoro/trampoline.sh +++ b/.kokoro/trampoline.sh @@ -1,5 +1,5 @@ #!/bin/bash -# Copyright 2018 Google Inc. +# Copyright 2018 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/synth.metadata b/synth.metadata index 037bb2122f87..db25ea1e360b 100644 --- a/synth.metadata +++ b/synth.metadata @@ -4,14 +4,14 @@ "git": { "name": ".", "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "466c2953a38071d47abaa25e4a5b7470e6c38f8e" + "sha": "611689c0bd72c789e7e1adf9451e8abfcd143983" } }, { "git": { "name": "synthtool", "remote": "https://github.com/googleapis/synthtool.git", - "sha": "a6b97202771f89a4b76873d43ea9a07d7fc95f91" + "sha": "396d9b84a1e93880f5bf88b59ecd38a0a6dffc5e" } } ], From 747890305f503a8b8e2406d3c51b4b7e0fae0741 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 17 Sep 2021 00:06:12 +0200 Subject: [PATCH 1521/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.2.1 (#1586) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `2.2.0` -> `2.2.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.2.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.2.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.2.1/compatibility-slim/2.2.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.2.1/confidence-slim/2.2.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v2.2.1`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​221-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare220v221-2021-09-13) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v2.2.0...v2.2.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2ade3c4cf598..89a295ddb9ab 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ google-cloud-bigquery-parent v2-rev20210828-1.32.1 - 2.2.0 + 2.2.1
    From 84f32b18947e90a389ddfa6c7ea52048132366e6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 17 Sep 2021 00:18:14 +0200 Subject: [PATCH 1522/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.2 (#1583) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | `2.1.0` -> `2.1.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.1.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.1.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.1.2/compatibility-slim/2.1.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.1.2/confidence-slim/2.1.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v2.1.2`](https://togithub.com/googleapis/java-bigqueryconnection/blob/master/CHANGELOG.md#​212-httpswwwgithubcomgoogleapisjava-bigqueryconnectioncomparev211v212-2021-09-15) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.1.1...v2.1.2) ### [`v2.1.1`](https://togithub.com/googleapis/java-bigqueryconnection/blob/master/CHANGELOG.md#​211-httpswwwgithubcomgoogleapisjava-bigqueryconnectioncomparev210v211-2021-09-14) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.1.0...v2.1.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a4e1751333bf..81a4f5e3b726 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.0 + 2.1.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9c094621ea83..22e982af1add 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.0 + 2.1.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3f626991e8f9..3094589ca735 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.0 + 2.1.2 test From 9b42705e670e095cfd48b239e814d6608f4748c7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 17 Sep 2021 00:21:45 +0200 Subject: [PATCH 1523/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210904-1.32.1 (#1584) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 89a295ddb9ab..d0ee1edfda52 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210828-1.32.1 + v2-rev20210904-1.32.1 2.2.1
    From 114d587e4b6bf25df3a33a7d9bfc2d22cb929812 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 17 Sep 2021 00:42:12 +0200 Subject: [PATCH 1524/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.1.2 (#1585) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.1.1` -> `2.1.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.1.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.1.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.1.2/compatibility-slim/2.1.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.1.2/confidence-slim/2.1.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.1.2`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​212-httpswwwgithubcomgoogleapisjava-bigtablecomparev211v212-2021-09-13) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.1.1...v2.1.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 81a4f5e3b726..4dc5b709d01e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.1.1 + 2.1.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 22e982af1add..43f9d3488c38 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.1.1 + 2.1.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3094589ca735..5d5c8d3e1ddf 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.1.1 + 2.1.2 test From f006fd02d2966e358d53af7da4a86901ad64e4e9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 17 Sep 2021 00:44:12 +0200 Subject: [PATCH 1525/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.1.3 (#1587) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.1.1` -> `2.1.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.3/compatibility-slim/2.1.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.3/confidence-slim/2.1.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.1.3`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​213-httpswwwgithubcomgoogleapisjava-storagecomparev212v213-2021-09-15) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.1.2...v2.1.3) ### [`v2.1.2`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​212-httpswwwgithubcomgoogleapisjava-storagecomparev211v212-2021-09-14) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.1.1...v2.1.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d0ee1edfda52..506c85b55e1a 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ com.google.cloud google-cloud-storage - 2.1.1 + 2.1.3 test From 466a51b9d1be90fbb9f4b01cf7add1237f51d4bd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 16 Sep 2021 22:58:12 +0000 Subject: [PATCH 1526/3441] chore: release 2.1.8 (#1589) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.8](https://www.github.com/googleapis/java-bigquery/compare/v2.1.7...v2.1.8) (2021-09-16) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210904-1.32.1 ([#1584](https://www.github.com/googleapis/java-bigquery/issues/1584)) ([9b42705](https://www.github.com/googleapis/java-bigquery/commit/9b42705e670e095cfd48b239e814d6608f4748c7)) * update dependency com.google.cloud:google-cloud-bigtable to v2.1.2 ([#1585](https://www.github.com/googleapis/java-bigquery/issues/1585)) ([114d587](https://www.github.com/googleapis/java-bigquery/commit/114d587e4b6bf25df3a33a7d9bfc2d22cb929812)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.2.1 ([#1586](https://www.github.com/googleapis/java-bigquery/issues/1586)) ([7478903](https://www.github.com/googleapis/java-bigquery/commit/747890305f503a8b8e2406d3c51b4b7e0fae0741)) * update dependency com.google.cloud:google-cloud-storage to v2.1.3 ([#1587](https://www.github.com/googleapis/java-bigquery/issues/1587)) ([f006fd0](https://www.github.com/googleapis/java-bigquery/commit/f006fd02d2966e358d53af7da4a86901ad64e4e9)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 10 ++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88a1ca6308ca..951367d5fba9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +### [2.1.8](https://www.github.com/googleapis/java-bigquery/compare/v2.1.7...v2.1.8) (2021-09-16) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210904-1.32.1 ([#1584](https://www.github.com/googleapis/java-bigquery/issues/1584)) ([9b42705](https://www.github.com/googleapis/java-bigquery/commit/9b42705e670e095cfd48b239e814d6608f4748c7)) +* update dependency com.google.cloud:google-cloud-bigtable to v2.1.2 ([#1585](https://www.github.com/googleapis/java-bigquery/issues/1585)) ([114d587](https://www.github.com/googleapis/java-bigquery/commit/114d587e4b6bf25df3a33a7d9bfc2d22cb929812)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.2.1 ([#1586](https://www.github.com/googleapis/java-bigquery/issues/1586)) ([7478903](https://www.github.com/googleapis/java-bigquery/commit/747890305f503a8b8e2406d3c51b4b7e0fae0741)) +* update dependency com.google.cloud:google-cloud-storage to v2.1.3 ([#1587](https://www.github.com/googleapis/java-bigquery/issues/1587)) ([f006fd0](https://www.github.com/googleapis/java-bigquery/commit/f006fd02d2966e358d53af7da4a86901ad64e4e9)) + ### [2.1.7](https://www.github.com/googleapis/java-bigquery/compare/v2.1.6...v2.1.7) (2021-09-07) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index abf5a72c3c68..d8361b98b3b9 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.8-SNAPSHOT + 2.1.8 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e8dda9df74ae..2ffe24d657b4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.8-SNAPSHOT + 2.1.8 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.8-SNAPSHOT + 2.1.8 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 506c85b55e1a..efb78fb8ffe0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.8-SNAPSHOT + 2.1.8 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.8-SNAPSHOT + 2.1.8 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 43f9d3488c38..1869f04782ff 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.8-SNAPSHOT + 2.1.8 diff --git a/versions.txt b/versions.txt index 1a9b1813a911..0085cc038044 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.7:2.1.8-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.8:2.1.8 \ No newline at end of file From e6a88a44727f9ccaed5ec375b215b87dc3444f52 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 16 Sep 2021 23:10:14 +0000 Subject: [PATCH 1527/3441] chore: release 2.1.9-SNAPSHOT (#1590) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d8361b98b3b9..0b3dab0fe60b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.8 + 2.1.9-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2ffe24d657b4..b83bcf572364 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.8 + 2.1.9-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.8 + 2.1.9-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index efb78fb8ffe0..9baf2aae8b35 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.8 + 2.1.9-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.8 + 2.1.9-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1869f04782ff..7031dfde24d1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.8 + 2.1.9-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0085cc038044..d6b3d1aa2f69 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.8:2.1.8 \ No newline at end of file +google-cloud-bigquery:2.1.8:2.1.9-SNAPSHOT \ No newline at end of file From 1318cb690b018640052e67bf936849967607cb01 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Fri, 17 Sep 2021 09:30:52 -0400 Subject: [PATCH 1528/3441] chore: migrate to owlbot (#1579) --- .github/.OwlBot.lock.yaml | 3 +++ .github/.OwlBot.yaml | 16 ++++++++++++++++ synth.py => owlbot.py.py | 2 -- 3 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 .github/.OwlBot.lock.yaml create mode 100644 .github/.OwlBot.yaml rename synth.py => owlbot.py.py (96%) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml new file mode 100644 index 000000000000..5607b418e74c --- /dev/null +++ b/.github/.OwlBot.lock.yaml @@ -0,0 +1,3 @@ +docker: + image: gcr.io/repo-automation-bots/owlbot-java:latest + digest: sha256:b328758e5113c392d3eccad613c2b18097eaebcb4d8bf77fab0326a6cad90bc7 \ No newline at end of file diff --git a/.github/.OwlBot.yaml b/.github/.OwlBot.yaml new file mode 100644 index 000000000000..8c5f03b4de89 --- /dev/null +++ b/.github/.OwlBot.yaml @@ -0,0 +1,16 @@ +# Copyright 2021 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +docker: + image: "gcr.io/repo-automation-bots/owlbot-java:latest" diff --git a/synth.py b/owlbot.py.py similarity index 96% rename from synth.py rename to owlbot.py.py index 19fbf6010c62..f514ca823d0d 100644 --- a/synth.py +++ b/owlbot.py.py @@ -16,8 +16,6 @@ import synthtool.languages.java as java -AUTOSYNTH_MULTIPLE_COMMITS = True - java.common_templates(excludes=[ '.kokoro/continuous/java8-samples.cfg', '.kokoro/continuous/java11-samples.cfg', From 66ff49859bc53601ff30d911d25351565b6ab9e8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 17 Sep 2021 15:32:10 +0200 Subject: [PATCH 1529/3441] test(deps): update datacatalog dependencies to v1.5.6 (#1588) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9baf2aae8b35..68e1848e9904 100644 --- a/pom.xml +++ b/pom.xml @@ -120,13 +120,13 @@ com.google.cloud google-cloud-datacatalog - 1.5.4 + 1.5.6 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.5.4 + 1.5.6 test From 4fb3c2e6b23c3892f8570a2e9ccdc643b6c3fdef Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 17 Sep 2021 15:32:23 +0200 Subject: [PATCH 1530/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.1.8 (#1591) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4dc5b709d01e..c4d65c0ca0a1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.1.7 + 2.1.8 From e788510b667b897d10fa8b246db3e54233216dd2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 17 Sep 2021 15:42:26 +0200 Subject: [PATCH 1531/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.0.2 (#1582) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `1.0.1` -> `1.0.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.0.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.0.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.0.2/compatibility-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.0.2/confidence-slim/1.0.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v1.0.2`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​102-httpswwwgithubcomgoogleapisjava-shared-configcomparev101v102-2021-09-13) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.0.1...v1.0.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 68e1848e9904..153a339dd2ca 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.0.1 + 1.0.2 From e384f5a2fa238d17458bbe26176e2508bd8d4796 Mon Sep 17 00:00:00 2001 From: Franklin Whaite <70151215+franklinWhaite@users.noreply.github.com> Date: Fri, 17 Sep 2021 13:56:25 -0500 Subject: [PATCH 1532/3441] chore: add UUID to retry logging (#1581) --- .../com/google/cloud/bigquery/BigQueryRetryAlgorithm.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java index 756377d21011..a4e642191ce3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java @@ -26,6 +26,7 @@ import com.google.api.gax.retrying.TimedRetryAlgorithm; import com.google.api.gax.retrying.TimedRetryAlgorithmWithContext; import java.util.Iterator; +import java.util.UUID; import java.util.concurrent.CancellationException; import java.util.logging.Level; import java.util.logging.Logger; @@ -40,6 +41,7 @@ public class BigQueryRetryAlgorithm extends RetryAlgorithm private final TimedRetryAlgorithmWithContext timedAlgorithmWithContext; private static final Logger LOG = Logger.getLogger(BigQueryRetryAlgorithm.class.getName()); + private static final UUID RETRY_UUID = UUID.randomUUID(); public BigQueryRetryAlgorithm( ResultRetryAlgorithm resultAlgorithm, @@ -76,13 +78,14 @@ public boolean shouldRetry( if (LOG.isLoggable(Level.FINEST)) { LOG.log( Level.FINEST, - "Retrying with:\n{0}\n{1}\n{2}\n{3}\n{4}", + "Retrying with:\n{0}\n{1}\n{2}\n{3}\n{4}\n{5}", new Object[] { "BigQuery attemptCount: " + attemptCount, "BigQuery delay: " + retryDelay, "BigQuery retriableException: " + previousThrowable, "BigQuery shouldRetry: " + shouldRetry, - "BigQuery previousThrowable.getMessage: " + errorMessage + "BigQuery previousThrowable.getMessage: " + errorMessage, + "BigQuery retry identifier: " + RETRY_UUID }); } return shouldRetry; From 4251b19f5b240b907aa5fc6d0cc64026245714cf Mon Sep 17 00:00:00 2001 From: Ryan Culbertson Date: Mon, 20 Sep 2021 18:58:51 -0400 Subject: [PATCH 1533/3441] fix: do not throw NPE from BigQueryImpl.testIamPermissions (#1596) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix for issue where `BigQueryImpl.testIamPermissions` will throw a NullPointerException if the caller does not have any of the permissions being checked. Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [X] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [X] Ensure the tests and linter pass - [X] Code coverage does not decrease (if any source code was changed) - [X] Appropriate docs were updated (if necessary) Fixes #1595 ☕️ --- .../com/google/cloud/bigquery/BigQueryImpl.java | 4 +++- .../google/cloud/bigquery/BigQueryImplTest.java | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 03635a89ed23..fd9160f40e9f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1495,7 +1495,9 @@ public com.google.api.services.bigquery.model.TestIamPermissionsResponse call() getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock()); - return ImmutableList.copyOf(response.getPermissions()); + return response.getPermissions() == null + ? ImmutableList.of() + : ImmutableList.copyOf(response.getPermissions()); } catch (RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index a12800c8792a..760c84f32a73 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -2766,4 +2766,21 @@ public void testTestIamPermissions() { assertEquals(perms, grantedPermissions); verify(bigqueryRpcMock).testIamPermissions(resourceId, checkedPermissions, EMPTY_RPC_OPTIONS); } + + @Test + public void testTestIamPermissionsWhenNoPermissionsGranted() { + final String resourceId = + String.format("projects/%s/datasets/%s/tables/%s", PROJECT, DATASET, TABLE); + final List checkedPermissions = ImmutableList.of("foo", "bar", "baz"); + // If caller has no permissions, TestIamPermissionsResponse.permissions will be null + final com.google.api.services.bigquery.model.TestIamPermissionsResponse response = + new com.google.api.services.bigquery.model.TestIamPermissionsResponse() + .setPermissions(null); + when(bigqueryRpcMock.testIamPermissions(resourceId, checkedPermissions, EMPTY_RPC_OPTIONS)) + .thenReturn(response); + bigquery = options.getService(); + List perms = bigquery.testIamPermissions(TABLE_ID, checkedPermissions); + assertEquals(perms, ImmutableList.of()); + verify(bigqueryRpcMock).testIamPermissions(resourceId, checkedPermissions, EMPTY_RPC_OPTIONS); + } } From 354cf7f3a8dd8cf24d9a5f7e3377591a13b60863 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 21 Sep 2021 01:12:56 +0200 Subject: [PATCH 1534/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.1.4 (#1597) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.1.3` -> `2.1.4` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.4/compatibility-slim/2.1.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.4/confidence-slim/2.1.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.1.4`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​214-httpswwwgithubcomgoogleapisjava-storagecomparev213v214-2021-09-20) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.1.3...v2.1.4)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 153a339dd2ca..478bb7dec529 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ com.google.cloud google-cloud-storage - 2.1.3 + 2.1.4 test From 7a715c71ae0ba1e17129949f078ccbd8ca1afeab Mon Sep 17 00:00:00 2001 From: Jeffrey Rennie Date: Tue, 21 Sep 2021 08:30:16 -0700 Subject: [PATCH 1535/3441] chore: relocate owl bot post processor (#1599) * chore: relocate owl bot post processor * chore: relocate owl bot post processor --- .github/.OwlBot.lock.yaml | 2 +- .github/.OwlBot.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 5607b418e74c..942f78aec421 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: - image: gcr.io/repo-automation-bots/owlbot-java:latest + image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest digest: sha256:b328758e5113c392d3eccad613c2b18097eaebcb4d8bf77fab0326a6cad90bc7 \ No newline at end of file diff --git a/.github/.OwlBot.yaml b/.github/.OwlBot.yaml index 8c5f03b4de89..5d9a9d8b5607 100644 --- a/.github/.OwlBot.yaml +++ b/.github/.OwlBot.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: - image: "gcr.io/repo-automation-bots/owlbot-java:latest" + image: "gcr.io/cloud-devrel-public-resources/owlbot-java:latest" From b3c2ec3449cd72efb087ca851c3a808275786022 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 21 Sep 2021 19:42:09 +0000 Subject: [PATCH 1536/3441] chore: release 2.1.9 (#1598) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.9](https://www.github.com/googleapis/java-bigquery/compare/v2.1.8...v2.1.9) (2021-09-21) ### Bug Fixes * do not throw NPE from BigQueryImpl.testIamPermissions ([#1596](https://www.github.com/googleapis/java-bigquery/issues/1596)) ([4251b19](https://www.github.com/googleapis/java-bigquery/commit/4251b19f5b240b907aa5fc6d0cc64026245714cf)) ### Dependencies * update dependency com.google.cloud:google-cloud-storage to v2.1.4 ([#1597](https://www.github.com/googleapis/java-bigquery/issues/1597)) ([354cf7f](https://www.github.com/googleapis/java-bigquery/commit/354cf7f3a8dd8cf24d9a5f7e3377591a13b60863)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 951367d5fba9..471fdbe6630d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### [2.1.9](https://www.github.com/googleapis/java-bigquery/compare/v2.1.8...v2.1.9) (2021-09-21) + + +### Bug Fixes + +* do not throw NPE from BigQueryImpl.testIamPermissions ([#1596](https://www.github.com/googleapis/java-bigquery/issues/1596)) ([4251b19](https://www.github.com/googleapis/java-bigquery/commit/4251b19f5b240b907aa5fc6d0cc64026245714cf)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v2.1.4 ([#1597](https://www.github.com/googleapis/java-bigquery/issues/1597)) ([354cf7f](https://www.github.com/googleapis/java-bigquery/commit/354cf7f3a8dd8cf24d9a5f7e3377591a13b60863)) + ### [2.1.8](https://www.github.com/googleapis/java-bigquery/compare/v2.1.7...v2.1.8) (2021-09-16) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 0b3dab0fe60b..02a0bf134ade 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.9-SNAPSHOT + 2.1.9 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b83bcf572364..8d5946a15721 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.9-SNAPSHOT + 2.1.9 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.9-SNAPSHOT + 2.1.9 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 478bb7dec529..2f0f884ed3f5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.9-SNAPSHOT + 2.1.9 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.9-SNAPSHOT + 2.1.9 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7031dfde24d1..cb4062666150 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.9-SNAPSHOT + 2.1.9 diff --git a/versions.txt b/versions.txt index d6b3d1aa2f69..921e3131b4f0 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.8:2.1.9-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.9:2.1.9 \ No newline at end of file From 0d0e4fde605bc3162764d58eeb864cded6771270 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 21 Sep 2021 20:44:10 +0000 Subject: [PATCH 1537/3441] chore: release 2.1.10-SNAPSHOT (#1600) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- .../clirr-ignored-differences.xml | 15 --------------- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 7 insertions(+), 22 deletions(-) delete mode 100644 google-cloud-bigquery/clirr-ignored-differences.xml diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 02a0bf134ade..40c88dd2af89 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.9 + 2.1.10-SNAPSHOT diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml deleted file mode 100644 index 4d66f0620ea5..000000000000 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - 7012 - com/google/cloud/bigquery/BigQuery - boolean delete(com.google.cloud.bigquery.JobId) - - - 7012 - com/google/cloud/bigquery/spi/v2/BigQueryRpc - boolean deleteJob(java.lang.String, java.lang.String, java.lang.String) - - \ No newline at end of file diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8d5946a15721..ca235f674640 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.9 + 2.1.10-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.9 + 2.1.10-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2f0f884ed3f5..6a43944f6762 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.9 + 2.1.10-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.9 + 2.1.10-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index cb4062666150..3c05f34879a4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.9 + 2.1.10-SNAPSHOT diff --git a/versions.txt b/versions.txt index 921e3131b4f0..b8cc97f5f338 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.9:2.1.9 \ No newline at end of file +google-cloud-bigquery:2.1.9:2.1.10-SNAPSHOT \ No newline at end of file From c18254aa732b72287e53ae3ce9d8529a2a85b436 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 22 Sep 2021 01:26:13 +0200 Subject: [PATCH 1538/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.0.3 (#1603) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `1.0.2` -> `1.0.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.0.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.0.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.0.3/compatibility-slim/1.0.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.0.3/confidence-slim/1.0.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v1.0.3`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​103-httpswwwgithubcomgoogleapisjava-shared-configcomparev102v103-2021-09-21) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.0.2...v1.0.3)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6a43944f6762..09b150afb0f5 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.0.2 + 1.0.3 From 8c94050623f770e7238e3f33d732f4cb54cd8f35 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 22 Sep 2021 16:02:40 +0200 Subject: [PATCH 1539/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.1.9 (#1601) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c4d65c0ca0a1..c894cb3fa5cd 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.1.8 + 2.1.9 From 1a96cb076ded8eae8c34962aa00e914ba197b516 Mon Sep 17 00:00:00 2001 From: Franklin Whaite <70151215+franklinWhaite@users.noreply.github.com> Date: Wed, 22 Sep 2021 09:40:28 -0500 Subject: [PATCH 1540/3441] fix: add retrySetting in logging (#1604) --- .../java/com/google/cloud/bigquery/BigQueryRetryHelper.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java index 623228d6c654..405a2371ed3f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java @@ -75,9 +75,10 @@ private static V run( if (LOG.isLoggable(Level.FINEST)) { LOG.log( Level.FINEST, - "Retrying with:\n{0}", + "Retrying with:\n{0}\n{1}", new Object[] { "BigQuery retried method: " + callable.getClass().getEnclosingMethod().getName(), + "BigQuery retry settings: " + timedAlgorithm.createFirstAttempt().getGlobalSettings() }); } From 1ccac9a6ca891fd160911de524e8227414b29e75 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 22 Sep 2021 16:42:29 +0200 Subject: [PATCH 1541/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210910-1.32.1 (#1602) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 09b150afb0f5..fc8da038bab8 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210904-1.32.1 + v2-rev20210910-1.32.1 2.2.1
    From 3714360299ff1d120e76f65f059f8566a5a3c367 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Sep 2021 15:02:11 +0000 Subject: [PATCH 1542/3441] chore: release 2.1.10 (#1606) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.10](https://www.github.com/googleapis/java-bigquery/compare/v2.1.9...v2.1.10) (2021-09-22) ### Bug Fixes * add retrySetting in logging ([#1604](https://www.github.com/googleapis/java-bigquery/issues/1604)) ([1a96cb0](https://www.github.com/googleapis/java-bigquery/commit/1a96cb076ded8eae8c34962aa00e914ba197b516)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210910-1.32.1 ([#1602](https://www.github.com/googleapis/java-bigquery/issues/1602)) ([1ccac9a](https://www.github.com/googleapis/java-bigquery/commit/1ccac9a6ca891fd160911de524e8227414b29e75)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 471fdbe6630d..a3edd9ecfabb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### [2.1.10](https://www.github.com/googleapis/java-bigquery/compare/v2.1.9...v2.1.10) (2021-09-22) + + +### Bug Fixes + +* add retrySetting in logging ([#1604](https://www.github.com/googleapis/java-bigquery/issues/1604)) ([1a96cb0](https://www.github.com/googleapis/java-bigquery/commit/1a96cb076ded8eae8c34962aa00e914ba197b516)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210910-1.32.1 ([#1602](https://www.github.com/googleapis/java-bigquery/issues/1602)) ([1ccac9a](https://www.github.com/googleapis/java-bigquery/commit/1ccac9a6ca891fd160911de524e8227414b29e75)) + ### [2.1.9](https://www.github.com/googleapis/java-bigquery/compare/v2.1.8...v2.1.9) (2021-09-21) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 40c88dd2af89..dcf365913c47 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.10-SNAPSHOT + 2.1.10 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ca235f674640..64abf796b172 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.10-SNAPSHOT + 2.1.10 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.10-SNAPSHOT + 2.1.10 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index fc8da038bab8..ff6c3abe4c1f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.10-SNAPSHOT + 2.1.10 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.10-SNAPSHOT + 2.1.10 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3c05f34879a4..bc4e8fe9fb4b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.10-SNAPSHOT + 2.1.10 diff --git a/versions.txt b/versions.txt index b8cc97f5f338..e1dfe8cd9390 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.9:2.1.10-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.10:2.1.10 \ No newline at end of file From 9d13792f8a6bda064816f5fdc921948959dd0743 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Sep 2021 15:16:27 +0000 Subject: [PATCH 1543/3441] chore: release 2.1.11-SNAPSHOT (#1607) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index dcf365913c47..c6f46db20071 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.10 + 2.1.11-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 64abf796b172..40ef08b4bd9b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.10 + 2.1.11-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.10 + 2.1.11-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ff6c3abe4c1f..4d02e7427707 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.10 + 2.1.11-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.10 + 2.1.11-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bc4e8fe9fb4b..34cc278338cd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.10 + 2.1.11-SNAPSHOT diff --git a/versions.txt b/versions.txt index e1dfe8cd9390..ba8cc64a235a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.10:2.1.10 \ No newline at end of file +google-cloud-bigquery:2.1.10:2.1.11-SNAPSHOT \ No newline at end of file From 967768c724c2342afa01b7222ef03a9e1385b31b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 22 Sep 2021 19:51:05 +0200 Subject: [PATCH 1544/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.1.10 (#1608) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c894cb3fa5cd..d3d51a5fccce 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.1.9 + 2.1.10 From fb3895e811cdec46b05f2188cd054788fcb03a1d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 22 Sep 2021 19:52:06 +0200 Subject: [PATCH 1545/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.3.0 (#1610) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4d02e7427707..9a3ed5613a42 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ google-cloud-bigquery-parent v2-rev20210910-1.32.1 - 2.2.1 + 2.3.0 From cab62e8b47f9e20704ad47beb2787223ed3340b8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 22 Sep 2021 21:15:21 +0200 Subject: [PATCH 1546/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.3 (#1612) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d3d51a5fccce..e45650b35db1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.2 + 2.1.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 34cc278338cd..555ec3a61d90 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.2 + 2.1.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 5d5c8d3e1ddf..a8e3e36613b4 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.2 + 2.1.3 test From 6b04f769ad5fb2eaa0eec57a5e937b81413c95e3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 22 Sep 2021 21:26:53 +0200 Subject: [PATCH 1547/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.1.3 (#1609) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.1.2` -> `2.1.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.1.3/compatibility-slim/2.1.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.1.3/confidence-slim/2.1.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.1.3`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​213-httpswwwgithubcomgoogleapisjava-bigtablecomparev212v213-2021-09-21) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.1.2...v2.1.3)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e45650b35db1..d7e44f89854d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.1.2 + 2.1.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 555ec3a61d90..dddf4d846e1e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.1.2 + 2.1.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a8e3e36613b4..5b310aa228c0 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.1.2 + 2.1.3 test From c1322c574d9b151478ff762f272cd78e9c2a9b68 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Sep 2021 19:40:54 +0000 Subject: [PATCH 1548/3441] chore: release 2.1.11 (#1611) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.11](https://www.github.com/googleapis/java-bigquery/compare/v2.1.10...v2.1.11) (2021-09-22) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v2.1.3 ([#1609](https://www.github.com/googleapis/java-bigquery/issues/1609)) ([6b04f76](https://www.github.com/googleapis/java-bigquery/commit/6b04f769ad5fb2eaa0eec57a5e937b81413c95e3)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.3.0 ([#1610](https://www.github.com/googleapis/java-bigquery/issues/1610)) ([fb3895e](https://www.github.com/googleapis/java-bigquery/commit/fb3895e811cdec46b05f2188cd054788fcb03a1d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3edd9ecfabb..b59ddb8e4db0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.1.11](https://www.github.com/googleapis/java-bigquery/compare/v2.1.10...v2.1.11) (2021-09-22) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v2.1.3 ([#1609](https://www.github.com/googleapis/java-bigquery/issues/1609)) ([6b04f76](https://www.github.com/googleapis/java-bigquery/commit/6b04f769ad5fb2eaa0eec57a5e937b81413c95e3)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.3.0 ([#1610](https://www.github.com/googleapis/java-bigquery/issues/1610)) ([fb3895e](https://www.github.com/googleapis/java-bigquery/commit/fb3895e811cdec46b05f2188cd054788fcb03a1d)) + ### [2.1.10](https://www.github.com/googleapis/java-bigquery/compare/v2.1.9...v2.1.10) (2021-09-22) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c6f46db20071..14cac30b9548 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.11-SNAPSHOT + 2.1.11 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 40ef08b4bd9b..d77a8a8c2ef7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.11-SNAPSHOT + 2.1.11 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.11-SNAPSHOT + 2.1.11 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9a3ed5613a42..8c3f83616854 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.11-SNAPSHOT + 2.1.11 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.11-SNAPSHOT + 2.1.11 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index dddf4d846e1e..b8563626c9f2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.11-SNAPSHOT + 2.1.11 diff --git a/versions.txt b/versions.txt index ba8cc64a235a..3608fd6e2b43 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.10:2.1.11-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.11:2.1.11 \ No newline at end of file From 1db04fc7eef0405f36a0e2bc2c1c9b60ff9229eb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Sep 2021 19:52:53 +0000 Subject: [PATCH 1549/3441] chore: release 2.1.12-SNAPSHOT (#1613) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 14cac30b9548..955713625862 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.11 + 2.1.12-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d77a8a8c2ef7..621c9cf89d8d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.11 + 2.1.12-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.11 + 2.1.12-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8c3f83616854..0fb0101675b3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.11 + 2.1.12-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.11 + 2.1.12-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b8563626c9f2..a7ad8a4aaf65 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.11 + 2.1.12-SNAPSHOT diff --git a/versions.txt b/versions.txt index 3608fd6e2b43..de6e3337c35c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.11:2.1.11 \ No newline at end of file +google-cloud-bigquery:2.1.11:2.1.12-SNAPSHOT \ No newline at end of file From 3e3b1da0f9e4006a83ed824f8ed67a9798219bee Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 23 Sep 2021 01:56:07 +0200 Subject: [PATCH 1550/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.1.4 (#1616) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d7e44f89854d..c1d4cf013176 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.1.3 + 2.1.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a7ad8a4aaf65..1eb75aef4b75 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.1.3 + 2.1.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 5b310aa228c0..06629d9976df 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.1.3 + 2.1.4 test From 9401e362cd0957b34b6c2044fbd94405f50e83b4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 24 Sep 2021 17:33:38 +0200 Subject: [PATCH 1551/3441] test(deps): update datacatalog dependencies to v1.5.7 (#1617) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 0fb0101675b3..ba706c0dd036 100644 --- a/pom.xml +++ b/pom.xml @@ -120,13 +120,13 @@ com.google.cloud google-cloud-datacatalog - 1.5.6 + 1.5.7 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.5.6 + 1.5.7 test From 828779d5de27d1b0f16be0a82753f9156a18c5df Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 24 Sep 2021 18:26:59 +0200 Subject: [PATCH 1552/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.1.11 (#1614) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.1.10` -> `2.1.11` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.1.11/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.1.11/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.1.11/compatibility-slim/2.1.10)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.1.11/confidence-slim/2.1.10)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.1.11`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​2111-httpswwwgithubcomgoogleapisjava-bigquerycomparev2110v2111-2021-09-22) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.1.10...v2.1.11)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c1d4cf013176..7d5dbc67e15a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.1.10 + 2.1.11 From 00cc0682b694bcdad927e0ec1770b99896402563 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 24 Sep 2021 22:40:23 +0200 Subject: [PATCH 1553/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.1.5 (#1615) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.1.4` -> `2.1.5` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.5/compatibility-slim/2.1.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.5/confidence-slim/2.1.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.1.5`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​215-httpswwwgithubcomgoogleapisjava-storagecomparev214v215-2021-09-22) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.1.4...v2.1.5)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ba706c0dd036..76ca126f2a7c 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ com.google.cloud google-cloud-storage - 2.1.4 + 2.1.5 test From 945131044c1ee32d7e9e63cab14f699ca229c21a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 24 Sep 2021 20:52:48 +0000 Subject: [PATCH 1554/3441] chore: release 2.1.12 (#1618) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.12](https://www.github.com/googleapis/java-bigquery/compare/v2.1.11...v2.1.12) (2021-09-24) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v2.1.4 ([#1616](https://www.github.com/googleapis/java-bigquery/issues/1616)) ([3e3b1da](https://www.github.com/googleapis/java-bigquery/commit/3e3b1da0f9e4006a83ed824f8ed67a9798219bee)) * update dependency com.google.cloud:google-cloud-storage to v2.1.5 ([#1615](https://www.github.com/googleapis/java-bigquery/issues/1615)) ([00cc068](https://www.github.com/googleapis/java-bigquery/commit/00cc0682b694bcdad927e0ec1770b99896402563)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b59ddb8e4db0..982359490a35 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.1.12](https://www.github.com/googleapis/java-bigquery/compare/v2.1.11...v2.1.12) (2021-09-24) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v2.1.4 ([#1616](https://www.github.com/googleapis/java-bigquery/issues/1616)) ([3e3b1da](https://www.github.com/googleapis/java-bigquery/commit/3e3b1da0f9e4006a83ed824f8ed67a9798219bee)) +* update dependency com.google.cloud:google-cloud-storage to v2.1.5 ([#1615](https://www.github.com/googleapis/java-bigquery/issues/1615)) ([00cc068](https://www.github.com/googleapis/java-bigquery/commit/00cc0682b694bcdad927e0ec1770b99896402563)) + ### [2.1.11](https://www.github.com/googleapis/java-bigquery/compare/v2.1.10...v2.1.11) (2021-09-22) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 955713625862..2520002e7191 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.12-SNAPSHOT + 2.1.12 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 621c9cf89d8d..4f9584cac2fc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.12-SNAPSHOT + 2.1.12 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.12-SNAPSHOT + 2.1.12 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 76ca126f2a7c..0297006629ca 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.12-SNAPSHOT + 2.1.12 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.12-SNAPSHOT + 2.1.12 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1eb75aef4b75..442ea2608140 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.12-SNAPSHOT + 2.1.12 diff --git a/versions.txt b/versions.txt index de6e3337c35c..e5f3a2d4f77a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.11:2.1.12-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.12:2.1.12 \ No newline at end of file From 6c227f07998d2eefdd7897753c5179d8375fc882 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 24 Sep 2021 21:12:50 +0000 Subject: [PATCH 1555/3441] chore: release 2.1.13-SNAPSHOT (#1619) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2520002e7191..e924c2a93e35 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.12 + 2.1.13-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4f9584cac2fc..ae351e1853d4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.12 + 2.1.13-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.12 + 2.1.13-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0297006629ca..4398e2a92c95 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.12 + 2.1.13-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.12 + 2.1.13-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 442ea2608140..d4a2ca50dfa3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.12 + 2.1.13-SNAPSHOT diff --git a/versions.txt b/versions.txt index e5f3a2d4f77a..e297625bf196 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.12:2.1.12 \ No newline at end of file +google-cloud-bigquery:2.1.12:2.1.13-SNAPSHOT \ No newline at end of file From fb439d7647074524c966250cd029dc34f45cb6e3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 25 Sep 2021 23:23:56 +0200 Subject: [PATCH 1556/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.1.12 (#1620) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7d5dbc67e15a..7145c55743d0 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.1.11 + 2.1.12 From dfa15e5ca08a3227f015a389c4c08732178a73e7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 27 Sep 2021 21:22:56 +0200 Subject: [PATCH 1557/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.1.6 (#1621) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.1.5` -> `2.1.6` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.6/compatibility-slim/2.1.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.6/confidence-slim/2.1.5)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.1.6`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​216-httpswwwgithubcomgoogleapisjava-storagecomparev215v216-2021-09-24) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.1.5...v2.1.6)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4398e2a92c95..c1b038073ff5 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ com.google.cloud google-cloud-storage - 2.1.5 + 2.1.6 test From cd4ff07866d1673f5c1344c5508ebe57cb0d1041 Mon Sep 17 00:00:00 2001 From: Emily Ball Date: Tue, 28 Sep 2021 12:42:16 -0700 Subject: [PATCH 1558/3441] chore: change branch master to main (#1623) --- .github/sync-repo-settings.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index ab4807cbe09e..b595a8a2c9ef 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -2,7 +2,7 @@ rebaseMergeAllowed: true squashMergeAllowed: true mergeCommitAllowed: false branchProtectionRules: - - pattern: master + - pattern: main isAdminEnforced: true requiredApprovingReviewCount: 1 requiresCodeOwnerReviews: true From 874bf09a3c04495d0f4ef985b3ef1a56a3415493 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Wed, 29 Sep 2021 10:32:09 -0400 Subject: [PATCH 1559/3441] chore: change branch master to main in github configurations (#1625) --- .github/blunderbuss.yml | 2 +- .github/workflows/ci.yaml | 2 +- README.md | 274 +++++++++++++++++++------------------- 3 files changed, 139 insertions(+), 139 deletions(-) diff --git a/.github/blunderbuss.yml b/.github/blunderbuss.yml index 1a23ea42b141..2176b0543214 100644 --- a/.github/blunderbuss.yml +++ b/.github/blunderbuss.yml @@ -1,5 +1,5 @@ # Configuration for the Blunderbuss GitHub app. For more info see -# https://github.com/googleapis/repo-automation-bots/tree/master/packages/blunderbuss +# https://github.com/googleapis/repo-automation-bots/tree/main/packages/blunderbuss assign_prs_by: - labels: - samples diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3becb5c022a3..3932a70d4e14 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,7 +1,7 @@ on: push: branches: - - master + - main pull_request: name: ci jobs: diff --git a/README.md b/README.md index 7067b3ade555..b428027cc037 100644 --- a/README.md +++ b/README.md @@ -106,142 +106,142 @@ use this Cloud BigQuery Client Library. ## Samples -Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree/master/samples) directory. +Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree/main/samples) directory. | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | -| Add Column Load Append | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | -| Add Empty Column | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | -| Alter Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java) | -| Auth Drive Scope | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | -| Auth Snippets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | -| Auth User Flow | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | -| Auth User Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java) | -| Authorized View Tutorial | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java) | -| Browse Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | -| Cancel Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | -| Copy Multiple Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | -| Copy Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | -| Copy Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java) | -| Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | -| Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | -| Create Dataset Aws | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | -| Create External Table Aws | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java) | -| Create Iam Policy | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java) | -| Create Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | -| Create Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java) | -| Create Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | -| Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | -| Create Range Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | -| Create Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java) | -| Create Routine Ddl | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java) | -| Create Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | -| Create Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java) | -| Create Table External Hive Partitioned | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java) | -| Create Table Without Schema | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | -| Create View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | -| Dataset Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | -| Ddl Create View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java) | -| Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | -| Delete Dataset And Contents | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java) | -| Delete Label Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | -| Delete Label Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java) | -| Delete Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java) | -| Delete Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | -| Delete Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | -| Delete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | -| Export Query Results To S3 | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java) | -| Extract Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java) | -| Extract Table Compressed | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java) | -| Extract Table To Csv | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | -| Extract Table To Json | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | -| Get Dataset Info | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | -| Get Dataset Labels | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java) | -| Get Job | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetJob.java) | -| Get Model | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | -| Get Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java) | -| Get Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | -| Get Table Labels | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java) | -| Get View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GetView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetView.java) | -| Grant View Access | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java) | -| Inserting Data Types | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | -| Label Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java) | -| Label Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LabelTable.java) | -| List Datasets | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | -| List Datasets By Label | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java) | -| List Jobs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListJobs.java) | -| List Models | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | -| List Routines | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | -| List Tables | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | -| Load Avro From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java) | -| Load Avro From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java) | -| Load Csv From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | -| Load Csv From Gcs Autodetect | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java) | -| Load Csv From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | -| Load Json From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java) | -| Load Json From Gcs Autodetect | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java) | -| Load Json From Gcs Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java) | -| Load Json From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java) | -| Load Local File | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | -| Load Orc From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java) | -| Load Orc From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java) | -| Load Parquet | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | -| Load Parquet Replace Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | -| Load Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java) | -| Load Table Clustered | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java) | -| Nested Repeated Schema | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java) | -| Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/Query.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/Query.java) | -| Query Batch | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | -| Query Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | -| Query Destination Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java) | -| Query Disable Cache | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java) | -| Query Dry Run | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | -| Query External Bigtable Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java) | -| Query External Bigtable Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java) | -| Query External Gcs Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java) | -| Query External Gcs Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java) | -| Query External Sheets Perm | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java) | -| Query External Sheets Temp | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java) | -| Query External Table Aws | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java) | -| Query Large Results | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | -| Query Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java) | -| Query Pagination | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | -| Query Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | -| Query Script | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | -| Query Total Rows | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java) | -| Query With Array Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | -| Query With Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | -| Query With Named Types Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java) | -| Query With Positional Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | -| Query With Positional Types Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java) | -| Query With Structs Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | -| Query With Timestamp Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java) | -| Quickstart Sample | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java) | -| Relax Column Load Append | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java) | -| Relax Column Mode | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | -| Relax Table Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | -| Resource Clean Up | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java) | -| Run Legacy Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | -| Save Query To Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | -| Simple App | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | -| Simple Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | -| Table Exists | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | -| Table Insert Rows | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | -| Table Insert Rows Without Row Ids | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | -| Undelete Table | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java) | -| Update Dataset Access | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | -| Update Dataset Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | -| Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | -| Update Dataset Partition Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | -| Update Iam Policy | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java) | -| Update Model Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | -| Update Routine | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java) | -| Update Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java) | -| Update Table Description | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | -| Update Table Dml | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java) | -| Update Table Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | -| Update Table Require Partition Filter | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java) | -| Update View Query | [source code](https://github.com/googleapis/java-bigquery/blob/master/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java) | +| Add Column Load Append | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | +| Add Empty Column | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | +| Alter Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java) | +| Auth Drive Scope | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | +| Auth Snippets | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | +| Auth User Flow | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | +| Auth User Query | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java) | +| Authorized View Tutorial | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java) | +| Browse Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | +| Cancel Job | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | +| Copy Multiple Tables | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | +| Copy Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | +| Copy Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java) | +| Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | +| Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | +| Create Dataset Aws | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | +| Create External Table Aws | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java) | +| Create Iam Policy | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java) | +| Create Job | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | +| Create Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java) | +| Create Model | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateModel.java) | +| Create Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java) | +| Create Range Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java) | +| Create Routine | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java) | +| Create Routine Ddl | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java) | +| Create Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTable.java) | +| Create Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java) | +| Create Table External Hive Partitioned | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java) | +| Create Table Without Schema | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | +| Create View | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | +| Dataset Exists | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | +| Ddl Create View | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java) | +| Delete Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java) | +| Delete Dataset And Contents | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java) | +| Delete Label Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java) | +| Delete Label Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java) | +| Delete Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java) | +| Delete Model | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java) | +| Delete Routine | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java) | +| Delete Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java) | +| Export Query Results To S3 | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java) | +| Extract Model | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java) | +| Extract Table Compressed | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java) | +| Extract Table To Csv | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java) | +| Extract Table To Json | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java) | +| Get Dataset Info | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java) | +| Get Dataset Labels | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java) | +| Get Job | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/GetJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetJob.java) | +| Get Model | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetModel.java) | +| Get Routine | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java) | +| Get Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetTable.java) | +| Get Table Labels | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java) | +| Get View | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/GetView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GetView.java) | +| Grant View Access | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java) | +| Inserting Data Types | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java) | +| Label Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java) | +| Label Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LabelTable.java) | +| List Datasets | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java) | +| List Datasets By Label | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java) | +| List Jobs | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListJobs.java) | +| List Models | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListModels.java) | +| List Routines | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java) | +| List Tables | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ListTables.java) | +| Load Avro From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java) | +| Load Avro From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java) | +| Load Csv From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java) | +| Load Csv From Gcs Autodetect | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java) | +| Load Csv From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java) | +| Load Json From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java) | +| Load Json From Gcs Autodetect | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java) | +| Load Json From Gcs Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java) | +| Load Json From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java) | +| Load Local File | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | +| Load Orc From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java) | +| Load Orc From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java) | +| Load Parquet | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | +| Load Parquet Replace Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java) | +| Load Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java) | +| Load Table Clustered | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java) | +| Nested Repeated Schema | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java) | +| Query | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/Query.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/Query.java) | +| Query Batch | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | +| Query Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | +| Query Destination Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java) | +| Query Disable Cache | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java) | +| Query Dry Run | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java) | +| Query External Bigtable Perm | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java) | +| Query External Bigtable Temp | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java) | +| Query External Gcs Perm | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java) | +| Query External Gcs Temp | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java) | +| Query External Sheets Perm | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java) | +| Query External Sheets Temp | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java) | +| Query External Table Aws | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java) | +| Query Large Results | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java) | +| Query Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java) | +| Query Pagination | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | +| Query Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | +| Query Script | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | +| Query Total Rows | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java) | +| Query With Array Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | +| Query With Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | +| Query With Named Types Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java) | +| Query With Positional Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java) | +| Query With Positional Types Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java) | +| Query With Structs Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java) | +| Query With Timestamp Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java) | +| Quickstart Sample | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java) | +| Relax Column Load Append | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java) | +| Relax Column Mode | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java) | +| Relax Table Query | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java) | +| Resource Clean Up | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java) | +| Run Legacy Query | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | +| Save Query To Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | +| Simple App | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | +| Simple Query | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | +| Table Exists | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | +| Table Insert Rows | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | +| Table Insert Rows Without Row Ids | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | +| Undelete Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java) | +| Update Dataset Access | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java) | +| Update Dataset Description | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java) | +| Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | +| Update Dataset Partition Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | +| Update Iam Policy | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java) | +| Update Model Description | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | +| Update Routine | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java) | +| Update Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java) | +| Update Table Description | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java) | +| Update Table Dml | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java) | +| Update Table Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java) | +| Update Table Require Partition Filter | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java) | +| Update View Query | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java) | @@ -350,10 +350,10 @@ Java is a registered trademark of Oracle and/or its affiliates. [developer-console]: https://console.developers.google.com/ [create-project]: https://cloud.google.com/resource-manager/docs/creating-managing-projects [cloud-sdk]: https://cloud.google.com/sdk/ -[troubleshooting]: https://github.com/googleapis/google-cloud-common/blob/master/troubleshooting/readme.md#troubleshooting -[contributing]: https://github.com/googleapis/java-bigquery/blob/master/CONTRIBUTING.md -[code-of-conduct]: https://github.com/googleapis/java-bigquery/blob/master/CODE_OF_CONDUCT.md#contributor-code-of-conduct -[license]: https://github.com/googleapis/java-bigquery/blob/master/LICENSE +[troubleshooting]: https://github.com/googleapis/google-cloud-common/blob/main/troubleshooting/readme.md#troubleshooting +[contributing]: https://github.com/googleapis/java-bigquery/blob/main/CONTRIBUTING.md +[code-of-conduct]: https://github.com/googleapis/java-bigquery/blob/main/CODE_OF_CONDUCT.md#contributor-code-of-conduct +[license]: https://github.com/googleapis/java-bigquery/blob/main/LICENSE [enable-billing]: https://cloud.google.com/apis/docs/getting-started#enabling_billing [enable-api]: https://console.cloud.google.com/flows/enableapi?apiid=bigquery.googleapis.com [libraries-bom]: https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google-Cloud-Platform-Libraries-BOM From 70218db884dc876f9dc80a4130a384c23644bfe2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 29 Sep 2021 14:44:31 +0000 Subject: [PATCH 1560/3441] chore: release 2.1.13 (#1624) :robot: I have created a release \*beep\* \*boop\* --- ### [2.1.13](https://www.github.com/googleapis/java-bigquery/compare/v2.1.12...v2.1.13) (2021-09-29) ### Dependencies * update dependency com.google.cloud:google-cloud-storage to v2.1.6 ([#1621](https://www.github.com/googleapis/java-bigquery/issues/1621)) ([dfa15e5](https://www.github.com/googleapis/java-bigquery/commit/dfa15e5ca08a3227f015a389c4c08732178a73e7)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 982359490a35..c8507d308da0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.1.13](https://www.github.com/googleapis/java-bigquery/compare/v2.1.12...v2.1.13) (2021-09-29) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v2.1.6 ([#1621](https://www.github.com/googleapis/java-bigquery/issues/1621)) ([dfa15e5](https://www.github.com/googleapis/java-bigquery/commit/dfa15e5ca08a3227f015a389c4c08732178a73e7)) + ### [2.1.12](https://www.github.com/googleapis/java-bigquery/compare/v2.1.11...v2.1.12) (2021-09-24) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index e924c2a93e35..414b622825eb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.13-SNAPSHOT + 2.1.13 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ae351e1853d4..5a05701f2fcb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.13-SNAPSHOT + 2.1.13 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.13-SNAPSHOT + 2.1.13 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c1b038073ff5..4d28453688f2 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.13-SNAPSHOT + 2.1.13 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.13-SNAPSHOT + 2.1.13 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d4a2ca50dfa3..8f574ae87ac5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.13-SNAPSHOT + 2.1.13 diff --git a/versions.txt b/versions.txt index e297625bf196..1646b28f874e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.12:2.1.13-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.1.13:2.1.13 \ No newline at end of file From db37f8bf4684b27e800833ac5914eabd9271870a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 29 Sep 2021 14:56:12 +0000 Subject: [PATCH 1561/3441] chore: release 2.1.14-SNAPSHOT (#1626) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 414b622825eb..5f7f822bc5be 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.13 + 2.1.14-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5a05701f2fcb..345ffbfaf2e5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.13 + 2.1.14-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.13 + 2.1.14-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4d28453688f2..b3fa536fd715 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.13 + 2.1.14-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.13 + 2.1.14-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8f574ae87ac5..dc7e16a70f5d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.13 + 2.1.14-SNAPSHOT diff --git a/versions.txt b/versions.txt index 1646b28f874e..51d5180d66cd 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.13:2.1.13 \ No newline at end of file +google-cloud-bigquery:2.1.13:2.1.14-SNAPSHOT \ No newline at end of file From 0a6738191dd73d304edd52391be8c947fee7fb08 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 29 Sep 2021 19:48:23 +0200 Subject: [PATCH 1562/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.1.13 (#1627) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7145c55743d0..367196a0d5e1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.1.12 + 2.1.13 From 6bdbc2d62eb5937cfd8a373bf8180ef8b0428a82 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 30 Sep 2021 21:22:22 +0200 Subject: [PATCH 1563/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v23.1.0 (#1629) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 06629d9976df..7ddea439d8b6 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 23.0.0 + 23.1.0 pom import From 10c1961f53ab6ba1b71ead9c51a369bf14389c49 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 1 Oct 2021 14:30:55 -0400 Subject: [PATCH 1564/3441] feat: add support for AvroOptions (#1630) New AvroOptions class and wired into ExternalTableDefinition --- .../clirr-ignored-differences.xml | 10 ++ .../google/cloud/bigquery/AvroOptions.java | 112 ++++++++++++++++++ .../bigquery/ExternalTableDefinition.java | 9 ++ .../google/cloud/bigquery/FormatOptions.java | 6 +- .../cloud/bigquery/AvroOptionsTest.java | 56 +++++++++ .../bigquery/ExternalTableDefinitionTest.java | 5 + .../bigquery/LoadJobConfigurationTest.java | 4 +- 7 files changed, 198 insertions(+), 4 deletions(-) create mode 100644 google-cloud-bigquery/clirr-ignored-differences.xml create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AvroOptions.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AvroOptionsTest.java diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml new file mode 100644 index 000000000000..5dba6ab7a79d --- /dev/null +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -0,0 +1,10 @@ + + + + + 7006 + com/google/cloud/bigquery/FormatOptions + com.google.cloud.bigquery.FormatOptions avro() + com.google.cloud.bigquery.AvroOptions + + diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AvroOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AvroOptions.java new file mode 100644 index 000000000000..dd5964f2db96 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AvroOptions.java @@ -0,0 +1,112 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.common.base.MoreObjects; +import java.util.Objects; + +/** + * Google BigQuery options for AVRO format. This class wraps some properties of AVRO files used by + * BigQuery to parse external data. + */ +public final class AvroOptions extends FormatOptions { + + private static final long serialVersionUID = 2293570529308612712L; + + private final Boolean useAvroLogicalTypes; + + public static final class Builder { + + private Boolean useAvroLogicalTypes; + + private Builder() {} + + private Builder(AvroOptions avroOptions) { + this.useAvroLogicalTypes = avroOptions.useAvroLogicalTypes; + } + + /** + * [Optional] Sets whether BigQuery should interpret logical types as the corresponding BigQuery + * data type (for example, TIMESTAMP), instead of using the raw type (for example, INTEGER). + */ + public Builder setUseAvroLogicalTypes(boolean useAvroLogicalTypes) { + this.useAvroLogicalTypes = useAvroLogicalTypes; + return this; + } + + /** Creates a {@code AvroOptions} object. */ + public AvroOptions build() { + return new AvroOptions(this); + } + } + + private AvroOptions(Builder builder) { + super(FormatOptions.AVRO); + this.useAvroLogicalTypes = builder.useAvroLogicalTypes; + } + + /** + * Returns whether BigQuery should interpret logical types as the corresponding BigQuery data type + * (for example, TIMESTAMP), instead of using the raw type (for example, INTEGER). + */ + public Boolean useAvroLogicalTypes() { + return useAvroLogicalTypes; + } + + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("type", getType()) + .add("useAvroLogicalTypes", useAvroLogicalTypes) + .toString(); + } + + @Override + public int hashCode() { + return Objects.hash(getType(), useAvroLogicalTypes); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj instanceof AvroOptions && Objects.equals(toPb(), ((AvroOptions) obj).toPb()); + } + + com.google.api.services.bigquery.model.AvroOptions toPb() { + com.google.api.services.bigquery.model.AvroOptions avroOptions = + new com.google.api.services.bigquery.model.AvroOptions(); + avroOptions.setUseAvroLogicalTypes(useAvroLogicalTypes); + return avroOptions; + } + + /** Returns a builder for a AvroOptions object. */ + public static AvroOptions.Builder newBuilder() { + return new AvroOptions.Builder(); + } + + static AvroOptions fromPb(com.google.api.services.bigquery.model.AvroOptions avroOptions) { + Builder builder = newBuilder(); + if (avroOptions.getUseAvroLogicalTypes() != null) { + builder.setUseAvroLogicalTypes(avroOptions.getUseAvroLogicalTypes()); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index 2b68a7ff2262..6ca64a8d78d4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -300,6 +300,9 @@ com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataC if (getDecimalTargetTypes() != null) { externalConfigurationPb.setDecimalTargetTypes(getDecimalTargetTypes()); } + if (getFormatOptions() != null && FormatOptions.AVRO.equals(getFormatOptions().getType())) { + externalConfigurationPb.setAvroOptions(((AvroOptions) getFormatOptions()).toPb()); + } if (getFormatOptions() != null && FormatOptions.CSV.equals(getFormatOptions().getType())) { externalConfigurationPb.setCsvOptions(((CsvOptions) getFormatOptions()).toPb()); } @@ -459,6 +462,9 @@ static ExternalTableDefinition fromPb(Table tablePb) { builder.setConnectionId(externalDataConfiguration.getConnectionId()); } builder.setIgnoreUnknownValues(externalDataConfiguration.getIgnoreUnknownValues()); + if (externalDataConfiguration.getAvroOptions() != null) { + builder.setFormatOptions(AvroOptions.fromPb(externalDataConfiguration.getAvroOptions())); + } if (externalDataConfiguration.getCsvOptions() != null) { builder.setFormatOptions(CsvOptions.fromPb(externalDataConfiguration.getCsvOptions())); } @@ -508,6 +514,9 @@ static ExternalTableDefinition fromExternalDataConfiguration( if (externalDataConfiguration.getIgnoreUnknownValues() != null) { builder.setIgnoreUnknownValues(externalDataConfiguration.getIgnoreUnknownValues()); } + if (externalDataConfiguration.getAvroOptions() != null) { + builder.setFormatOptions(AvroOptions.fromPb(externalDataConfiguration.getAvroOptions())); + } if (externalDataConfiguration.getCsvOptions() != null) { builder.setFormatOptions(CsvOptions.fromPb(externalDataConfiguration.getCsvOptions())); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java index 92a57fc8f06f..c4f411175219 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java @@ -91,8 +91,8 @@ public static FormatOptions datastoreBackup() { } /** Default options for AVRO format. */ - public static FormatOptions avro() { - return new FormatOptions(AVRO); + public static AvroOptions avro() { + return AvroOptions.newBuilder().build(); } /** Default options for BIGTABLE format. */ @@ -120,6 +120,8 @@ public static FormatOptions of(String format) { checkArgument(!isNullOrEmpty(format), "Provided format is null or empty"); if (format.equals(CSV)) { return csv(); + } else if (format.equals(AVRO)) { + return avro(); } else if (format.equals(DATASTORE_BACKUP)) { return datastoreBackup(); } else if (format.equals(GOOGLE_SHEETS)) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AvroOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AvroOptionsTest.java new file mode 100644 index 000000000000..f40660fd7baa --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AvroOptionsTest.java @@ -0,0 +1,56 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class AvroOptionsTest { + + private static final Boolean USE_AVRO_LOGICAL_TYPES = true; + private static final AvroOptions AVRO_OPTIONS = + AvroOptions.newBuilder().setUseAvroLogicalTypes(USE_AVRO_LOGICAL_TYPES).build(); + + @Test + public void testToBuilder() { + compareAvroOptions(AVRO_OPTIONS, AVRO_OPTIONS.toBuilder().build()); + AvroOptions avroOptions = AVRO_OPTIONS.toBuilder().setUseAvroLogicalTypes(false).build(); + assertEquals(false, avroOptions.useAvroLogicalTypes()); + avroOptions = avroOptions.toBuilder().setUseAvroLogicalTypes(true).build(); + compareAvroOptions(AVRO_OPTIONS, avroOptions); + } + + @Test + public void testBuilder() { + assertEquals(FormatOptions.AVRO, AVRO_OPTIONS.getType()); + assertEquals(USE_AVRO_LOGICAL_TYPES, AVRO_OPTIONS.useAvroLogicalTypes()); + } + + @Test + public void testToAndFromPb() { + compareAvroOptions(AVRO_OPTIONS, AvroOptions.fromPb(AVRO_OPTIONS.toPb())); + AvroOptions avroOptions = + AvroOptions.newBuilder().setUseAvroLogicalTypes(USE_AVRO_LOGICAL_TYPES).build(); + compareAvroOptions(avroOptions, AvroOptions.fromPb(avroOptions.toPb())); + } + + private void compareAvroOptions(AvroOptions expected, AvroOptions value) { + assertEquals(expected, value); + assertEquals(expected.useAvroLogicalTypes(), value.useAvroLogicalTypes()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index 38dcd27142df..b7b9531e559e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -50,6 +50,7 @@ public class ExternalTableDefinitionTest { private static final String COMPRESSION = "GZIP"; private static final String CONNECTION_ID = "123456789"; private static final Boolean AUTODETECT = true; + private static final AvroOptions AVRO_OPTIONS = AvroOptions.newBuilder().build(); private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder().build(); private static final HivePartitioningOptions HIVE_PARTITIONING_OPTIONS = HivePartitioningOptions.newBuilder() @@ -67,6 +68,9 @@ public class ExternalTableDefinitionTest { .setHivePartitioningOptions(HIVE_PARTITIONING_OPTIONS) .build(); + private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION_AVRO = + ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, AVRO_OPTIONS).build(); + @Test public void testToBuilder() { compareExternalTableDefinition( @@ -109,6 +113,7 @@ public void testBuilder() { assertEquals(TableDefinition.Type.EXTERNAL, EXTERNAL_TABLE_DEFINITION.getType()); assertEquals(COMPRESSION, EXTERNAL_TABLE_DEFINITION.getCompression()); assertEquals(CONNECTION_ID, EXTERNAL_TABLE_DEFINITION.getConnectionId()); + assertEquals(AVRO_OPTIONS, EXTERNAL_TABLE_DEFINITION_AVRO.getFormatOptions()); assertEquals(CSV_OPTIONS, EXTERNAL_TABLE_DEFINITION.getFormatOptions()); assertEquals(IGNORE_UNKNOWN_VALUES, EXTERNAL_TABLE_DEFINITION.ignoreUnknownValues()); assertEquals(MAX_BAD_RECORDS, EXTERNAL_TABLE_DEFINITION.getMaxBadRecords()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index a2f164f8af52..deed2f11b45d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -56,7 +56,7 @@ public class LoadJobConfigurationTest { ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_ADDITION); private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA); private static final Boolean AUTODETECT = true; - private static final Boolean USERAVROLOGICALTYPES = true; + private static final Boolean USE_AVRO_LOGICAL_TYPES = true; private static final EncryptionConfiguration JOB_ENCRYPTION_CONFIGURATION = EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY); @@ -128,7 +128,7 @@ public class LoadJobConfigurationTest { .setDestinationEncryptionConfiguration(JOB_ENCRYPTION_CONFIGURATION) .setTimePartitioning(TIME_PARTITIONING) .setClustering(CLUSTERING) - .setUseAvroLogicalTypes(USERAVROLOGICALTYPES) + .setUseAvroLogicalTypes(USE_AVRO_LOGICAL_TYPES) .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) .setRangePartitioning(RANGE_PARTITIONING) From 5dc972cef61f9d49ebe15eb4bc36a91cbe3a6280 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 1 Oct 2021 19:46:32 +0000 Subject: [PATCH 1565/3441] chore: release 2.2.0 (#1631) :robot: I have created a release \*beep\* \*boop\* --- ## [2.2.0](https://www.github.com/googleapis/java-bigquery/compare/v2.1.13...v2.2.0) (2021-10-01) ### Features * add support for AvroOptions ([#1630](https://www.github.com/googleapis/java-bigquery/issues/1630)) ([10c1961](https://www.github.com/googleapis/java-bigquery/commit/10c1961f53ab6ba1b71ead9c51a369bf14389c49)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8507d308da0..30c39f5ecc13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.2.0](https://www.github.com/googleapis/java-bigquery/compare/v2.1.13...v2.2.0) (2021-10-01) + + +### Features + +* add support for AvroOptions ([#1630](https://www.github.com/googleapis/java-bigquery/issues/1630)) ([10c1961](https://www.github.com/googleapis/java-bigquery/commit/10c1961f53ab6ba1b71ead9c51a369bf14389c49)) + ### [2.1.13](https://www.github.com/googleapis/java-bigquery/compare/v2.1.12...v2.1.13) (2021-09-29) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5f7f822bc5be..56645dd93368 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.1.14-SNAPSHOT + 2.2.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 345ffbfaf2e5..b88bb19a5792 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.1.14-SNAPSHOT + 2.2.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.1.14-SNAPSHOT + 2.2.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b3fa536fd715..b46a240f80b0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.1.14-SNAPSHOT + 2.2.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.1.14-SNAPSHOT + 2.2.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index dc7e16a70f5d..b43dea32e0d7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.1.14-SNAPSHOT + 2.2.0 diff --git a/versions.txt b/versions.txt index 51d5180d66cd..bc8d5d4cce0f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.1.13:2.1.14-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.2.0:2.2.0 \ No newline at end of file From 6736735d8c5f05575ac611485011b701d7d12728 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 4 Oct 2021 16:04:36 +0200 Subject: [PATCH 1566/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.2.0 (#1633) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 367196a0d5e1..11b3f28c8e78 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.1.13 + 2.2.0 From a929e9212398098ea07e909a16b33b6bd85ad2dd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 4 Oct 2021 10:18:21 -0400 Subject: [PATCH 1567/3441] chore: release 2.2.1-SNAPSHOT (#1632) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: release 2.2.1-SNAPSHOT * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Owl Bot --- benchmark/pom.xml | 2 +- google-cloud-bigquery/clirr-ignored-differences.xml | 10 ---------- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 7 insertions(+), 17 deletions(-) delete mode 100644 google-cloud-bigquery/clirr-ignored-differences.xml diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 56645dd93368..86bd33d78845 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.2.0 + 2.2.1-SNAPSHOT diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml deleted file mode 100644 index 5dba6ab7a79d..000000000000 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - 7006 - com/google/cloud/bigquery/FormatOptions - com.google.cloud.bigquery.FormatOptions avro() - com.google.cloud.bigquery.AvroOptions - - diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b88bb19a5792..93f9cbc69126 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.2.0 + 2.2.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.2.0 + 2.2.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b46a240f80b0..eb5f19d6e0a3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.2.0 + 2.2.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.2.0 + 2.2.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b43dea32e0d7..89c35a15589a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.2.0 + 2.2.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index bc8d5d4cce0f..29d25a9bf4dc 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.2.0:2.2.0 \ No newline at end of file +google-cloud-bigquery:2.2.0:2.2.1-SNAPSHOT \ No newline at end of file From 13f45230a6f8ef888a6afafc02a270fb012e962f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 5 Oct 2021 17:15:00 +0200 Subject: [PATCH 1568/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20210927-1.32.1 (#1634) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eb5f19d6e0a3..01771bb47f67 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210910-1.32.1 + v2-rev20210927-1.32.1 2.3.0 From abb64dccd569632c2de5cc20b3f8d34642dab98f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 5 Oct 2021 20:36:02 +0200 Subject: [PATCH 1569/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.1.7 (#1635) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 01771bb47f67..bc201f016f82 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ com.google.cloud google-cloud-storage - 2.1.6 + 2.1.7 test From 2527c8242eaf4100e1009fecd4a3d4635351686f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 5 Oct 2021 18:48:12 +0000 Subject: [PATCH 1570/3441] chore: release 2.2.1 (#1636) :robot: I have created a release \*beep\* \*boop\* --- ### [2.2.1](https://www.github.com/googleapis/java-bigquery/compare/v2.2.0...v2.2.1) (2021-10-05) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20210927-1.32.1 ([#1634](https://www.github.com/googleapis/java-bigquery/issues/1634)) ([13f4523](https://www.github.com/googleapis/java-bigquery/commit/13f45230a6f8ef888a6afafc02a270fb012e962f)) * update dependency com.google.cloud:google-cloud-storage to v2.1.7 ([#1635](https://www.github.com/googleapis/java-bigquery/issues/1635)) ([abb64dc](https://www.github.com/googleapis/java-bigquery/commit/abb64dccd569632c2de5cc20b3f8d34642dab98f)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 30c39f5ecc13..ecd216e7ebe5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.2.1](https://www.github.com/googleapis/java-bigquery/compare/v2.2.0...v2.2.1) (2021-10-05) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20210927-1.32.1 ([#1634](https://www.github.com/googleapis/java-bigquery/issues/1634)) ([13f4523](https://www.github.com/googleapis/java-bigquery/commit/13f45230a6f8ef888a6afafc02a270fb012e962f)) +* update dependency com.google.cloud:google-cloud-storage to v2.1.7 ([#1635](https://www.github.com/googleapis/java-bigquery/issues/1635)) ([abb64dc](https://www.github.com/googleapis/java-bigquery/commit/abb64dccd569632c2de5cc20b3f8d34642dab98f)) + ## [2.2.0](https://www.github.com/googleapis/java-bigquery/compare/v2.1.13...v2.2.0) (2021-10-01) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 86bd33d78845..d422b31e5991 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.2.1-SNAPSHOT + 2.2.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 93f9cbc69126..4fb48f52fee6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.2.1-SNAPSHOT + 2.2.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.2.1-SNAPSHOT + 2.2.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bc201f016f82..3a6e003ac450 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.2.1-SNAPSHOT + 2.2.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.2.1-SNAPSHOT + 2.2.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 89c35a15589a..47a935ce518e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.2.1-SNAPSHOT + 2.2.1 diff --git a/versions.txt b/versions.txt index 29d25a9bf4dc..dbb14682480d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.2.0:2.2.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.2.1:2.2.1 \ No newline at end of file From 4b990c40007a26143a61a89a865c49428066959d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 6 Oct 2021 00:11:04 +0200 Subject: [PATCH 1571/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.2.1 (#1638) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 11b3f28c8e78..a528afdc3609 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.2.0 + 2.2.1 From efb733e12a72ae22f9be43ff17e6fc760e8c4ba7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 6 Oct 2021 07:06:34 +0200 Subject: [PATCH 1572/3441] test(deps): update datacatalog dependencies to v1.5.8 (#1640) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 3a6e003ac450..b0af752e8719 100644 --- a/pom.xml +++ b/pom.xml @@ -120,13 +120,13 @@ com.google.cloud google-cloud-datacatalog - 1.5.7 + 1.5.8 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.5.7 + 1.5.8 test From 99e0ab22fa2019b9559a3a8de8e8dd8c5b7cce74 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 6 Oct 2021 16:59:58 +0200 Subject: [PATCH 1573/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.4 (#1639) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a528afdc3609..de968e4341c6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.3 + 2.1.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 47a935ce518e..df91e8020558 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.3 + 2.1.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 7ddea439d8b6..f0666a60cecc 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.3 + 2.1.4 test From d7005778ed9ae9fd2ba84ba48eb613c6c59cdd1b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 6 Oct 2021 15:14:15 +0000 Subject: [PATCH 1574/3441] chore: release 2.2.2-SNAPSHOT (#1637) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d422b31e5991..451a55ec0beb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.2.1 + 2.2.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4fb48f52fee6..2032c657c03b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.2.1 + 2.2.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.2.1 + 2.2.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b0af752e8719..5ba2e766452b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.2.1 + 2.2.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.2.1 + 2.2.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index df91e8020558..4d338439b65e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.2.1 + 2.2.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index dbb14682480d..6064c38c223f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.2.1:2.2.1 \ No newline at end of file +google-cloud-bigquery:2.2.1:2.2.2-SNAPSHOT \ No newline at end of file From 2b942da269742b21feae6e00a20f96b9967d678d Mon Sep 17 00:00:00 2001 From: Emily Ball Date: Thu, 7 Oct 2021 10:51:03 -0700 Subject: [PATCH 1575/3441] chore: update repo-metadata.json client_documentation link (#1641) * chore: updating doc link * chore: fix missing comma --- .repo-metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.repo-metadata.json b/.repo-metadata.json index cc60147c9d9c..1305be96ff16 100644 --- a/.repo-metadata.json +++ b/.repo-metadata.json @@ -2,7 +2,7 @@ "name": "bigquery", "name_pretty": "Cloud BigQuery", "product_documentation": "https://cloud.google.com/bigquery", - "client_documentation": "https://googleapis.dev/java/google-cloud-bigquery/latest", + "client_documentation": "https://cloud.google.com/java/docs/reference/google-cloud-bigquery/latest/history", "api_description": "is a fully managed, NoOps, low cost data analytics service.\nData can be streamed into BigQuery at millions of rows per second to enable real-time analysis.\nWith BigQuery you can easily deploy Petabyte-scale Databases.", "issue_tracker": "https://issuetracker.google.com/savedsearches/559654", "release_level": "ga", From 96bba389b43ead98f84d644b4cf788669c032dc3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 8 Oct 2021 20:44:20 +0200 Subject: [PATCH 1576/3441] test(deps): update dependency org.mockito:mockito-core to v4 (#1642) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.mockito:mockito-core](https://togithub.com/mockito/mockito) | `2.28.2` -> `4.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.0.0/compatibility-slim/2.28.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.0.0/confidence-slim/2.28.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    mockito/mockito ### [`v4.0.0`](https://togithub.com/mockito/mockito/releases/v4.0.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.12.4...v4.0.0) ### Mockito 4: Removing deprecated APIs. All of these APIs have been marked as deprecated and have been present in Mockito for quite a while. An overview of now-deleted classes/methods: - `org.mockito.Matchers` which was an alias for `org.mockito.ArgumentMatchers` - `org.mockito.ArgumentMatchers#{anyObject,anyVararg}` both which were aliases for `org.mockito.ArgumentMatchers#any` - `org.mockito.ArgumentMatchers#any*Of`, which were aliases for the same method name without the Of and the generic parameters (which were ignored) - `org.mockito.ArgumentMatchers#{is}{Not}Null(Class)` which took a class which was ignored. Aliases for the same methods without the parameter - `org.mockito.MockedStatic#verify` which had the parameter types reversed - `org.mockito.Mockito#verifyZeroInteractions` an alias of `verifyNoMoreInteractions` - `org.mockito.Mockito#debug` framework integration API that we later refactored - `org.mockito.configuration.AnnotationEngine` which was leaking internal APIs and instead users should use `org.mockito.plugins.AnnotationEngine` - `org.mockito.exceptions.verification.TooLittleActualInvocations` fixed the grammar from "Little" to "Few" - Numerous internal APIs that we never officially supported and can now remove - `org.mockito.plugins.InstantiatorProvider` which was leaking internal APIs and instead users should use InstantiatorProvider2 (we should probably rename back to remove the number in a future major release) - `org.mockito.runners` a package that hosted several old JUnit runners which were no longer supported. Users should instead use `org.mockito.junit.MockitoJUnitRunner` which is our official JUnit4 runner. ### [`v3.12.4`](https://togithub.com/mockito/mockito/releases/v3.12.4) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.12.3...v3.12.4) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.12.4 - 2021-08-25 - [1 commit(s)](https://togithub.com/mockito/mockito/compare/v3.12.3...v3.12.4) by Rafael Winterhalter - No notable improvements. No pull requests (issues) were referenced from commits. ### [`v3.12.3`](https://togithub.com/mockito/mockito/releases/v3.12.3) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.12.2...v3.12.3) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.12.3 - 2021-08-24 - [9 commit(s)](https://togithub.com/mockito/mockito/compare/v3.12.2...v3.12.3) by Rafael Winterhalter - Fix implementation of proxy mock maker for toString and add additional unit tests. [(#​2405)](https://togithub.com/mockito/mockito/pull/2405) - Avoid cache breakage [(#​2402)](https://togithub.com/mockito/mockito/pull/2402) - Add a limited mock maker that is based only on the java.lang.reflect.Proxy utility [(#​2397)](https://togithub.com/mockito/mockito/pull/2397) ### [`v3.12.2`](https://togithub.com/mockito/mockito/releases/v3.12.2) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.12.1...v3.12.2) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.12.2 - 2021-08-24 - [2 commit(s)](https://togithub.com/mockito/mockito/compare/v3.12.1...v3.12.2) by Dmitry Vyazelenko, dependabot\[bot] - Fixes [#​2399](https://togithub.com/mockito/mockito/issues/2399) : Adds defaultAnswer to the MockitoMockKey to distinguish the mock types, i.e. to separate mocks from spies otherwise spy type is reused for a mock or vice versa. [(#​2400)](https://togithub.com/mockito/mockito/pull/2400) - Sporadic mock verification failures related to hashCode/equals on 3.12.1 [(#​2399)](https://togithub.com/mockito/mockito/issues/2399) - Bump versions.errorprone from 2.8.1 to 2.9.0 [(#​2396)](https://togithub.com/mockito/mockito/pull/2396) ### [`v3.12.1`](https://togithub.com/mockito/mockito/releases/v3.12.1) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.12.0...v3.12.1) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.12.1 - 2021-08-20 - [2 commit(s)](https://togithub.com/mockito/mockito/compare/v3.12.0...v3.12.1) by Tim van der Lippe, dependabot\[bot] - Fix verifyNoMoreInteractions inOrder invocations for spies [(#​2395)](https://togithub.com/mockito/mockito/pull/2395) - Regression with InOrder verification after [#​2369](https://togithub.com/mockito/mockito/issues/2369) [(#​2394)](https://togithub.com/mockito/mockito/issues/2394) - Bump versions.bytebuddy from 1.11.12 to 1.11.13 [(#​2393)](https://togithub.com/mockito/mockito/pull/2393) ### [`v3.12.0`](https://togithub.com/mockito/mockito/releases/v3.12.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.11.2...v3.12.0) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.12.0 - 2021-08-19 - [31 commit(s)](https://togithub.com/mockito/mockito/compare/v3.11.2...v3.12.0) by EugeneLesnov, Lars Vogel, Logan Rosen, Rafael Winterhalter, Rob Pridham, Tim van der Lippe, dependabot\[bot], saurabh7248 - Add checks for sealed types [(#​2392)](https://togithub.com/mockito/mockito/pull/2392) - Bump versions.bytebuddy from 1.11.10 to 1.11.12 [(#​2388)](https://togithub.com/mockito/mockito/pull/2388) - Bump versions.bytebuddy from 1.11.9 to 1.11.10 [(#​2387)](https://togithub.com/mockito/mockito/pull/2387) - Bump versions.errorprone from 2.8.0 to 2.8.1 [(#​2386)](https://togithub.com/mockito/mockito/pull/2386) - Update StaticMockTest to use unified verify method [(#​2385)](https://togithub.com/mockito/mockito/pull/2385) - Reorder InjectMock Javadoc to fit the order of injection [(#​2383)](https://togithub.com/mockito/mockito/pull/2383) - Bump core-ktx from 1.5.0 to 1.6.0 [(#​2382)](https://togithub.com/mockito/mockito/pull/2382) - Bump google-java-format from 1.10.0 to 1.11.0 [(#​2381)](https://togithub.com/mockito/mockito/pull/2381) - Downgrade Android gradle plugin [(#​2380)](https://togithub.com/mockito/mockito/pull/2380) - Applied [@​CheckReturnValue](https://togithub.com/CheckReturnValue) to some classes [(#​2379)](https://togithub.com/mockito/mockito/pull/2379) - how to solve gradle sync failed after 'Add basic Android instrumented and unit tests' [(#​2378)](https://togithub.com/mockito/mockito/issues/2378) - Bump junit from 1.1.2 to 1.1.3 [(#​2377)](https://togithub.com/mockito/mockito/pull/2377) - Bump appcompat from 1.3.0 to 1.3.1 [(#​2376)](https://togithub.com/mockito/mockito/pull/2376) - Bump kotlin-gradle-plugin from 1.5.20 to 1.5.21 [(#​2374)](https://togithub.com/mockito/mockito/pull/2374) - Bump material from 1.3.0 to 1.4.0 [(#​2373)](https://togithub.com/mockito/mockito/pull/2373) - Bump espresso-core from 3.3.0 to 3.4.0 [(#​2372)](https://togithub.com/mockito/mockito/pull/2372) - Fixes [#​2331](https://togithub.com/mockito/mockito/issues/2331) [(#​2369)](https://togithub.com/mockito/mockito/pull/2369) - Fix typo in exception [(#​2368)](https://togithub.com/mockito/mockito/pull/2368) - Bump versions.bytebuddy from 1.11.8 to 1.11.9 [(#​2367)](https://togithub.com/mockito/mockito/pull/2367) - Bump versions.errorprone from 2.7.1 to 2.8.0 [(#​2365)](https://togithub.com/mockito/mockito/pull/2365) - Bump versions.bytebuddy from 1.11.7 to 1.11.8 [(#​2361)](https://togithub.com/mockito/mockito/pull/2361) - Basic Android instrumented and unit tests (closes [#​2341](https://togithub.com/mockito/mockito/issues/2341)) [(#​2360)](https://togithub.com/mockito/mockito/pull/2360) - Bump versions.bytebuddy from 1.11.6 to 1.11.7 [(#​2359)](https://togithub.com/mockito/mockito/pull/2359) - Bump kotlin-stdlib from 1.5.20 to 1.5.21 [(#​2356)](https://togithub.com/mockito/mockito/pull/2356) - Bump kotlinx-coroutines-core from 1.5.1 to 1.5.1-native-mt [(#​2354)](https://togithub.com/mockito/mockito/pull/2354) - Bump kotlinx-coroutines-core from 1.5.0-native-mt to 1.5.1 [(#​2353)](https://togithub.com/mockito/mockito/pull/2353) - Bump versions.bytebuddy from 1.11.5 to 1.11.6 [(#​2351)](https://togithub.com/mockito/mockito/pull/2351) - Bump gradle-errorprone-plugin from 2.0.1 to 2.0.2 [(#​2347)](https://togithub.com/mockito/mockito/pull/2347) - Bump kotlin-stdlib from 1.5.10 to 1.5.20 [(#​2343)](https://togithub.com/mockito/mockito/pull/2343) - Bump versions.bytebuddy from 1.11.3 to 1.11.5 [(#​2337)](https://togithub.com/mockito/mockito/pull/2337) - Bump assertj-core from 3.20.1 to 3.20.2 [(#​2336)](https://togithub.com/mockito/mockito/pull/2336) - Spy doesn't forward hashcode/equals to actual object [(#​2331)](https://togithub.com/mockito/mockito/issues/2331) - Fixes [#​2311](https://togithub.com/mockito/mockito/issues/2311) [(#​2320)](https://togithub.com/mockito/mockito/pull/2320) ### [`v3.11.2`](https://togithub.com/mockito/mockito/releases/v3.11.2) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.11.1...v3.11.2) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.11.2 - 2021-06-21 - [5 commit(s)](https://togithub.com/mockito/mockito/compare/v3.11.1...v3.11.2) by dependabot\[bot] - Bump versions.bytebuddy from 1.11.2 to 1.11.3 [(#​2333)](https://togithub.com/mockito/mockito/pull/2333) - Bump assertj-core from 3.20.0 to 3.20.1 [(#​2332)](https://togithub.com/mockito/mockito/pull/2332) - Bump org.eclipse.osgi from 3.16.200 to 3.16.300 [(#​2330)](https://togithub.com/mockito/mockito/pull/2330) - Bump assertj-core from 3.19.0 to 3.20.0 [(#​2329)](https://togithub.com/mockito/mockito/pull/2329) - Bump shipkit-auto-version from 1.1.17 to 1.1.19 [(#​2328)](https://togithub.com/mockito/mockito/pull/2328) ### [`v3.11.1`](https://togithub.com/mockito/mockito/releases/v3.11.1) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.11.0...v3.11.1) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.11.1 - 2021-06-11 - [3 commit(s)](https://togithub.com/mockito/mockito/compare/v3.11.0...v3.11.1) by Charles Munger, dependabot\[bot] - Bump versions.bytebuddy from 1.11.1 to 1.11.2 [(#​2322)](https://togithub.com/mockito/mockito/pull/2322) - Check package-privacy of method params [(#​2318)](https://togithub.com/mockito/mockito/pull/2318) - Bump shipkit-auto-version from 1.1.16 to 1.1.17 [(#​2317)](https://togithub.com/mockito/mockito/pull/2317) ### [`v3.11.0`](https://togithub.com/mockito/mockito/releases/v3.11.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.10.0...v3.11.0) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.11.0 - 2021-06-03 - [18 commit(s)](https://togithub.com/mockito/mockito/compare/v3.10.0...v3.11.0) by Charles Munger, Szczepan Faber, dependabot\[bot] - Bump versions.bytebuddy from 1.11.0 to 1.11.1 [(#​2313)](https://togithub.com/mockito/mockito/pull/2313) - Undo parent for MultipleParentsClassLoader [(#​2312)](https://togithub.com/mockito/mockito/pull/2312) - Bump shipkit-auto-version from 1.1.14 to 1.1.16 [(#​2310)](https://togithub.com/mockito/mockito/pull/2310) - Bump gradle/wrapper-validation-action from 1.0.3 to 1.0.4 [(#​2309)](https://togithub.com/mockito/mockito/pull/2309) - Bump com.github.ben-manes.versions from 0.38.0 to 0.39.0 [(#​2308)](https://togithub.com/mockito/mockito/pull/2308) - Bump shipkit-auto-version from 1.1.11 to 1.1.14 [(#​2307)](https://togithub.com/mockito/mockito/pull/2307) - Use the parent classloader if the context classloader is a child of it. [(#​2306)](https://togithub.com/mockito/mockito/pull/2306) - Bump kotlin-stdlib from 1.5.0 to 1.5.10 [(#​2305)](https://togithub.com/mockito/mockito/pull/2305) - "The type is not public and its mock class is loaded by a different class loader" with a context classloader that delegates [(#​2303)](https://togithub.com/mockito/mockito/issues/2303) - Enabled automated changelog [(#​2301)](https://togithub.com/mockito/mockito/pull/2301) - Bump kotlinx-coroutines-core from 1.4.3-native-mt to 1.5.0-native-mt [(#​2299)](https://togithub.com/mockito/mockito/pull/2299) - Bump versions.errorprone from 2.6.0 to 2.7.1 [(#​2298)](https://togithub.com/mockito/mockito/pull/2298) - Bump junit-platform-launcher from 1.7.1 to 1.7.2 [(#​2297)](https://togithub.com/mockito/mockito/pull/2297) - Bump versions.junitJupiter from 5.7.1 to 5.7.2 [(#​2296)](https://togithub.com/mockito/mockito/pull/2296) - Renamed main dev branch [(#​2295)](https://togithub.com/mockito/mockito/pull/2295) - Bump gradle/wrapper-validation-action from 1 to 1.0.3 [(#​2294)](https://togithub.com/mockito/mockito/pull/2294) - Bump actions/checkout from 2 to 2.3.4 [(#​2293)](https://togithub.com/mockito/mockito/pull/2293) - 'this' is not available - when enabling mock-maker-inline [(#​2082)](https://togithub.com/mockito/mockito/issues/2082) ### [`v3.10.0`](https://togithub.com/mockito/mockito/releases/v3.10.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.8.0...v3.10.0) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.10.0 - 2021-05-12 - [0 commit(s)](https://togithub.com/mockito/mockito/compare/HEAD...v3.10.0) by - No notable improvements. No pull requests (issues) were referenced from commits. ### [`v3.8.0`](https://togithub.com/mockito/mockito/releases/v3.8.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.7.7...v3.8.0) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.8.0 - 2021-02-22 - [1 commit(s)](https://togithub.com/mockito/mockito/compare/v3.7.18...v3.8.0) by Tim van der Lippe - Publish new minor version to Maven central [(#​2213)](https://togithub.com/mockito/mockito/pull/2213) ### [`v3.7.7`](https://togithub.com/mockito/mockito/releases/v3.7.7) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.7.0...v3.7.7) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.7.7 - 2021-01-16 - [1 commit(s)](https://togithub.com/mockito/mockito/compare/v3.7.6...v3.7.7) by Stefan Bohn - Fix reversed order of verify parameters [(#​2179)](https://togithub.com/mockito/mockito/pull/2179) - Feature request: Unify order of parameters [(#​2173)](https://togithub.com/mockito/mockito/issues/2173) ### [`v3.7.0`](https://togithub.com/mockito/mockito/releases/v3.7.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.6.28...v3.7.0) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.7.0 - 2021-01-04 - [2 commit(s)](https://togithub.com/mockito/mockito/compare/v3.6.54...v3.7.0) by Szczepan Faber, Tim van der Lippe - Publish new minor version to Maven central [(#​2165)](https://togithub.com/mockito/mockito/pull/2165) ### [`v3.6.28`](https://togithub.com/mockito/mockito/releases/v3.6.28) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.6.0...v3.6.28) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 3.6.28 - 2020-11-25 - [1 commit(s)](https://togithub.com/mockito/mockito/compare/v3.6.27...v3.6.28) by Szczepan Faber - No notable improvements. No pull requests (issues) were referenced from commits. ### [`v3.6.0`](https://togithub.com/mockito/mockito/releases/v3.6.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.5.15...v3.6.0) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.6.0 - 2020-10-27 - [7 commits](https://togithub.com/mockito/mockito/compare/v3.5.15...v3.6.0) by [Szczepan Faber](https://togithub.com/mockitoguy) (4), [shipkit-org](https://togithub.com/shipkit-org) (2), [Tim van der Lippe](https://togithub.com/TimvdLippe) (1) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.6.0-green.svg)](https://bintray.com/mockito/maven/mockito/3.6.0) - Retry the release [(#​2078)](https://togithub.com/mockito/mockito/pull/2078) - Retry 3.6.0 release [(#​2077)](https://togithub.com/mockito/mockito/pull/2077) ### [`v3.5.15`](https://togithub.com/mockito/mockito/releases/v3.5.15) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.5.13...v3.5.15) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.5.15 - 2020-10-19 - [4 commits](https://togithub.com/mockito/mockito/compare/v3.5.14...v3.5.15) by [Rafael Winterhalter](https://togithub.com/raphw) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.5.15-green.svg)](https://bintray.com/mockito/maven/mockito/3.5.15) - Mock resolver plugin [(#​2042)](https://togithub.com/mockito/mockito/pull/2042) ### [`v3.5.13`](https://togithub.com/mockito/mockito/releases/v3.5.13) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.5.11...v3.5.13) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.5.13 - 2020-09-24 - [1 commit](https://togithub.com/mockito/mockito/compare/v3.5.12...v3.5.13) by [Sinan Kozak](https://togithub.com/kozaxinan) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.5.13-green.svg)](https://bintray.com/mockito/maven/mockito/3.5.13) - Use single version for strictly in mockito-android [(#​2053)](https://togithub.com/mockito/mockito/pull/2053) ### [`v3.5.11`](https://togithub.com/mockito/mockito/releases/v3.5.11) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.5.10...v3.5.11) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.5.11 - 2020-09-17 - [2 commits](https://togithub.com/mockito/mockito/compare/v3.5.10...v3.5.11) by [Rafael Winterhalter](https://togithub.com/raphw) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.5.11-green.svg)](https://bintray.com/mockito/maven/mockito/3.5.11) - Do not exclude synthetic constructors from instrumentation. Fixes [#​2040](https://togithub.com/mockito/mockito/issues/2040). [(#​2046)](https://togithub.com/mockito/mockito/pull/2046) - Mockito.spy(Activity).getBaseContext() returns null on Robolectric 4.4 and Java8 [(#​2040)](https://togithub.com/mockito/mockito/issues/2040) ### [`v3.5.10`](https://togithub.com/mockito/mockito/releases/v3.5.10) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.5.9...v3.5.10) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.5.10 - 2020-09-03 - [2 commits](https://togithub.com/mockito/mockito/compare/v3.5.9...v3.5.10) by [Rafael Winterhalter](https://togithub.com/raphw) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.5.10-green.svg)](https://bintray.com/mockito/maven/mockito/3.5.10) - Escape mock during method dispatch on mock to avoid premature garbage collection. [(#​2034)](https://togithub.com/mockito/mockito/pull/2034) - Exception "The mock object was garbage collected." [(#​1802)](https://togithub.com/mockito/mockito/issues/1802) ### [`v3.5.9`](https://togithub.com/mockito/mockito/releases/v3.5.9) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.5.7...v3.5.9) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.5.9 - 2020-09-01 - [1 commit](https://togithub.com/mockito/mockito/compare/v3.5.8...v3.5.9) by [Sinan Kozak](https://togithub.com/kozaxinan) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.5.9-green.svg)](https://bintray.com/mockito/maven/mockito/3.5.9) - Fixes [#​2007](https://togithub.com/mockito/mockito/issues/2007) : Downgrade objenesis version for mockito-android [(#​2024)](https://togithub.com/mockito/mockito/pull/2024) - Android instrumentation test packaging fails for mockito-android 3.5.0 with minSdk < 26 [(#​2007)](https://togithub.com/mockito/mockito/issues/2007) ### [`v3.5.7`](https://togithub.com/mockito/mockito/releases/v3.5.7) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.5.6...v3.5.7) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.5.7 - 2020-08-25 - [2 commits](https://togithub.com/mockito/mockito/compare/v3.5.6...v3.5.7) by [Rafael Winterhalter](https://togithub.com/raphw) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.5.7-green.svg)](https://bintray.com/mockito/maven/mockito/3.5.7) - Initializes classes prior to instrumentation to avoid uncontrolled code execution. [(#​2023)](https://togithub.com/mockito/mockito/pull/2023) - Stackoverflow error when upgrading to v3.5.2 [(#​2011)](https://togithub.com/mockito/mockito/issues/2011) ### [`v3.5.6`](https://togithub.com/mockito/mockito/releases/v3.5.6) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.5.5...v3.5.6) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.5.6 - 2020-08-24 - [5 commits](https://togithub.com/mockito/mockito/compare/v3.5.5...v3.5.6) by [Rafael Winterhalter](https://togithub.com/raphw) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.5.6-green.svg)](https://bintray.com/mockito/maven/mockito/3.5.6) - Only apply argument on illegal module access for inline tests if Java version is at least 9. [(#​2022)](https://togithub.com/mockito/mockito/pull/2022) - Constructor dispatch [(#​2021)](https://togithub.com/mockito/mockito/pull/2021) ### [`v3.5.5`](https://togithub.com/mockito/mockito/releases/v3.5.5) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.5.2...v3.5.5) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.5.5 - 2020-08-22 - [3 commits](https://togithub.com/mockito/mockito/compare/v3.5.4...v3.5.5) by [Rafael Winterhalter](https://togithub.com/raphw) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.5.5-green.svg)](https://bintray.com/mockito/maven/mockito/3.5.5) - Constructor dispatch [(#​2020)](https://togithub.com/mockito/mockito/pull/2020) ### [`v3.5.2`](https://togithub.com/mockito/mockito/releases/v3.5.2) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.5.0...v3.5.2) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.5.2 - 2020-08-18 - [1 commit](https://togithub.com/mockito/mockito/compare/v3.5.1...v3.5.2) by [Tim van der Lippe](https://togithub.com/TimvdLippe) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.5.2-green.svg)](https://bintray.com/mockito/maven/mockito/3.5.2) - No pull requests referenced in commit messages. ### [`v3.5.0`](https://togithub.com/mockito/mockito/releases/v3.5.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.4.6...v3.5.0) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.5.0 - 2020-08-15 - [9 commits](https://togithub.com/mockito/mockito/compare/v3.4.8...v3.5.0) by [Rafael Winterhalter](https://togithub.com/raphw) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.5.0-green.svg)](https://bintray.com/mockito/maven/mockito/3.5.0) - Pre release 3.5.0 [(#​2004)](https://togithub.com/mockito/mockito/pull/2004) ### [`v3.4.6`](https://togithub.com/mockito/mockito/releases/v3.4.6) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.4.4...v3.4.6) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.4.6 - 2020-07-29 - [3 commits](https://togithub.com/mockito/mockito/compare/v3.4.5...v3.4.6) by [Rafael Winterhalter](https://togithub.com/raphw) (2), [Valery Yatsynovich](https://togithub.com/valfirst) (1) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.4.6-green.svg)](https://bintray.com/mockito/maven/mockito/3.4.6) - \[Bugfixes] Do not pass static mocks to regular listener callback. [(#​1989)](https://togithub.com/mockito/mockito/pull/1989) - MockitoJUnitRunner causes NPE when using [@​Mock](https://togithub.com/Mock) on MockedStatic fields [(#​1988)](https://togithub.com/mockito/mockito/issues/1988) - Fixes [#​1985](https://togithub.com/mockito/mockito/issues/1985) : Update README to refer the latest documentation [(#​1986)](https://togithub.com/mockito/mockito/pull/1986) - README should refer the latest available documentation [(#​1985)](https://togithub.com/mockito/mockito/issues/1985) ### [`v3.4.4`](https://togithub.com/mockito/mockito/releases/v3.4.4) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.4.3...v3.4.4) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.4.4 - 2020-07-18 - [2 commits](https://togithub.com/mockito/mockito/compare/v3.4.3...v3.4.4) by [Rafael Winterhalter](https://togithub.com/raphw) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.4.4-green.svg)](https://bintray.com/mockito/maven/mockito/3.4.4) - Fixes [#​1855](https://togithub.com/mockito/mockito/issues/1855) and [#​939](https://togithub.com/mockito/mockito/issues/939): improve error message when the inline mock maker cannot be used. [(#​1974)](https://togithub.com/mockito/mockito/pull/1974) - javax.tools.ToolProvider could not be found in InlineByteBuddyMockMaker [(#​1855)](https://togithub.com/mockito/mockito/issues/1855) ### [`v3.4.3`](https://togithub.com/mockito/mockito/releases/v3.4.3) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.4.2...v3.4.3) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.4.3 - 2020-07-17 - [1 commit](https://togithub.com/mockito/mockito/compare/v3.4.2...v3.4.3) by [Robert Chmielowiec](https://togithub.com/chmielowiec) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.4.3-green.svg)](https://bintray.com/mockito/maven/mockito/3.4.3) - Fix Javadoc invalid syntax [(#​1978)](https://togithub.com/mockito/mockito/pull/1978) - Broken documentation [(#​1977)](https://togithub.com/mockito/mockito/issues/1977) ### [`v3.4.2`](https://togithub.com/mockito/mockito/releases/v3.4.2) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.4.0...v3.4.2) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.4.2 - 2020-07-16 - [2 commits](https://togithub.com/mockito/mockito/compare/v3.4.1...v3.4.2) by [Rafael Winterhalter](https://togithub.com/raphw) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.4.2-green.svg)](https://bintray.com/mockito/maven/mockito/3.4.2) - Fixes [#​1967](https://togithub.com/mockito/mockito/issues/1967): Correctly handle mocks with limited life-cycle in listeners. [(#​1968)](https://togithub.com/mockito/mockito/pull/1968) - Static method mocks incompatible with MockitoExtension (NotAMockException) [(#​1967)](https://togithub.com/mockito/mockito/issues/1967) ### [`v3.4.0`](https://togithub.com/mockito/mockito/releases/v3.4.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.3.3...v3.4.0) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.4.0 - 2020-07-10 - [19 commits](https://togithub.com/mockito/mockito/compare/v3.3.12...v3.4.0) by 9 authors - published to [![Bintray](https://img.shields.io/badge/Bintray-3.4.0-green.svg)](https://bintray.com/mockito/maven/mockito/3.4.0) - Commits: [Tim van der Lippe](https://togithub.com/TimvdLippe) (5), [Erhard Pointl](https://togithub.com/epeee) (4), [Rafael Winterhalter](https://togithub.com/raphw) (3), [Eitan Adler](https://togithub.com/grimreaper) (2), adrianriley (1), akluball (1), [Artem Prigoda](https://togithub.com/arteam) (1), [Jamie Tanna](https://togithub.com/jamietanna) (1), [Naoki Takezoe](https://togithub.com/takezoe) (1) - \[Android support] Enable mocking static methods in Mockito [(#​1013)](https://togithub.com/mockito/mockito/issues/1013) - Document using `@Mock` with method parameters [(#​1961)](https://togithub.com/mockito/mockito/pull/1961) - Documentation: `@Mock` on method parameters [(#​1960)](https://togithub.com/mockito/mockito/issues/1960) - Update errorprone gradle plugin to v1.2.1 [(#​1958)](https://togithub.com/mockito/mockito/pull/1958) - Update spotless Travis job name to be more descriptive [(#​1957)](https://togithub.com/mockito/mockito/pull/1957) - Fix a confusing typo in subclassing error message [(#​1953)](https://togithub.com/mockito/mockito/pull/1953) - Update bnd gradle plugin to v5.1.1 [(#​1952)](https://togithub.com/mockito/mockito/pull/1952) - Use errorprone 2.4.0 [(#​1951)](https://togithub.com/mockito/mockito/pull/1951) - Use jacoco v0.8.5 [(#​1950)](https://togithub.com/mockito/mockito/pull/1950) - Fixes [#​1712](https://togithub.com/mockito/mockito/issues/1712) : prepend description to AssertionError thrown in verification [(#​1949)](https://togithub.com/mockito/mockito/pull/1949) - Update gradle 6 [(#​1948)](https://togithub.com/mockito/mockito/pull/1948) - Move spotless check to separate build task [(#​1946)](https://togithub.com/mockito/mockito/pull/1946) - \[Travis] Replace JDK 9/10 with 14 [(#​1945)](https://togithub.com/mockito/mockito/pull/1945) - Fixes [#​1898](https://togithub.com/mockito/mockito/issues/1898) : Return mock name from toString method for deep stub mocks [(#​1942)](https://togithub.com/mockito/mockito/pull/1942) - \[checkstyle] switch to new DTD [(#​1940)](https://togithub.com/mockito/mockito/pull/1940) - Use google-java-format in spotless [(#​1934)](https://togithub.com/mockito/mockito/pull/1934) - Update report message to use any() instead of anyObject() [(#​1931)](https://togithub.com/mockito/mockito/pull/1931) - \[build] bump gradle to latest 5.x release [(#​1923)](https://togithub.com/mockito/mockito/pull/1923) - \[build] update gradle-errorprone-plugin to 1.1.0 [(#​1908)](https://togithub.com/mockito/mockito/pull/1908) - RETURNS_DEEP_STUBS override a mock's toString to `null` [(#​1898)](https://togithub.com/mockito/mockito/issues/1898) - "description" not printing when verify args don't match [(#​1712)](https://togithub.com/mockito/mockito/issues/1712) ### [`v3.3.3`](https://togithub.com/mockito/mockito/releases/v3.3.3) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.3.0...v3.3.3) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.3.3 - 2020-03-13 - [1 commit](https://togithub.com/mockito/mockito/compare/v3.3.2...v3.3.3) by [Tim van der Lippe](https://togithub.com/TimvdLippe) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.3.3-green.svg)](https://bintray.com/mockito/maven/mockito/3.3.3) - No pull requests referenced in commit messages. ### [`v3.3.0`](https://togithub.com/mockito/mockito/releases/v3.3.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.2.4...v3.3.0) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.3.0 - 2020-02-21 - [1 commit](https://togithub.com/mockito/mockito/compare/v3.2.11...v3.3.0) by [Tim van der Lippe](https://togithub.com/TimvdLippe) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.3.0-green.svg)](https://bintray.com/mockito/maven/mockito/3.3.0) - No pull requests referenced in commit messages. ### [`v3.2.4`](https://togithub.com/mockito/mockito/releases/v3.2.4) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.2.0...v3.2.4) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.2.4 - 2019-12-16 - [1 commit](https://togithub.com/mockito/mockito/compare/v3.2.3...v3.2.4) by [Tim van der Lippe](https://togithub.com/TimvdLippe) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.2.4-green.svg)](https://bintray.com/mockito/maven/mockito/3.2.4) - No pull requests referenced in commit messages. ### [`v3.2.0`](https://togithub.com/mockito/mockito/releases/v3.2.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.1.0...v3.2.0) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.2.0 - 2019-11-29 - [1 commit](https://togithub.com/mockito/mockito/compare/v3.1.13...v3.2.0) by [Tim van der Lippe](https://togithub.com/TimvdLippe) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.2.0-green.svg)](https://bintray.com/mockito/maven/mockito/3.2.0) - No pull requests referenced in commit messages. ### [`v3.1.0`](https://togithub.com/mockito/mockito/releases/v3.1.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v3.0.0...v3.1.0) *Release notes were automatically generated by [Shipkit](http://shipkit.org/)* ##### 3.1.0 - 2019-10-01 - [1 commit](https://togithub.com/mockito/mockito/compare/v3.0.12...v3.1.0) by [Tim van der Lippe](https://togithub.com/TimvdLippe) - published to [![Bintray](https://img.shields.io/badge/Bintray-3.1.0-green.svg)](https://bintray.com/mockito/maven/mockito/3.1.0) - No pull requests referenced in commit messages. ### [`v3.0.0`](https://togithub.com/mockito/mockito/releases/v3.0.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v2.28.2...v3.0.0) Mockito 3.0.0 is equivalent to Mockito 2, but now requires Java 8. No API changes were made.
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5ba2e766452b..7bd2470da275 100644 --- a/pom.xml +++ b/pom.xml @@ -108,7 +108,7 @@ org.mockito mockito-core - 2.28.2 + 4.0.0 test From e60bdff9e196a618a59a0544ec93f87b2ec5fc82 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 11 Oct 2021 11:22:36 -0400 Subject: [PATCH 1577/3441] fix: fix timestamp rounding issue (#1645) * fix: fix timestamp ronuding issue Fixes #1644 remove unrelated test case update test case * add comment --- .../com/google/cloud/bigquery/FieldValue.java | 6 +++- .../cloud/bigquery/it/ITBigQueryTest.java | 35 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java index a2ce187678e3..aef47281940a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java @@ -25,6 +25,7 @@ import com.google.common.io.BaseEncoding; import java.io.Serializable; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.List; import java.util.Map; import java.util.Objects; @@ -183,7 +184,10 @@ public long getTimestampValue() { // timestamps are encoded in the format 1408452095.22 where the integer part is seconds since // epoch (e.g. 1408452095.22 == 2014-08-19 07:41:35.220 -05:00) BigDecimal secondsWithMicro = new BigDecimal(getStringValue()); - BigDecimal scaled = secondsWithMicro.scaleByPowerOfTen(6); + // Rounding the BigDecimal to the nearest whole number before setting the longValue in order to + // address TimeStamp rounding issue described in + // https://github.com/googleapis/java-bigquery/issues/1644 + BigDecimal scaled = secondsWithMicro.scaleByPowerOfTen(6).setScale(0, RoundingMode.HALF_UP); return scaled.longValue(); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 484e4c0f5556..8ef74458fdf0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -127,6 +127,7 @@ import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; import java.nio.file.FileSystems; +import java.time.Instant; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -1854,6 +1855,40 @@ public void testQuery() throws InterruptedException { assertNotNull(statistics.getQueryPlan()); } + @Test + public void testQueryTimeStamp() throws InterruptedException { + String query = "SELECT TIMESTAMP '2022-01-24T23:54:25.095574Z'"; + Instant beforeQueryInstant = Instant.parse("2022-01-24T23:54:25.095574Z"); + long microsBeforeQuery = + TimeUnit.SECONDS.toMicros(beforeQueryInstant.getEpochSecond()) + + TimeUnit.NANOSECONDS.toMicros(beforeQueryInstant.getNano()); + + // Verify that timestamp remains the same when priority is set to INTERACTIVE + TableResult result = + bigquery.query( + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setPriority(QueryJobConfiguration.Priority.INTERACTIVE) + .build()); + for (FieldValueList row : result.getValues()) { + FieldValue timeStampCell = row.get(0); + long microsAfterQuery = timeStampCell.getTimestampValue(); + assertEquals(microsBeforeQuery, microsAfterQuery); + } + + // Verify that timestamp remains the same without priority set to INTERACTIVE + TableResult resultInteractive = + bigquery.query( + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .build()); + for (FieldValueList row : resultInteractive.getValues()) { + FieldValue timeStampCell = row.get(0); + long microsAfterQuery = timeStampCell.getTimestampValue(); + assertEquals(microsBeforeQuery, microsAfterQuery); + } + } + @Test public void testQueryCaseInsensitiveSchemaFieldByGetName() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); From fa3b477c78b20d4dca4174069c0a45d661aa0dc5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 13 Oct 2021 17:30:22 +0200 Subject: [PATCH 1578/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.1.0 (#1651) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `1.0.3` -> `1.1.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.1.0/compatibility-slim/1.0.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.1.0/confidence-slim/1.0.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v1.1.0`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​110-httpswwwgithubcomgoogleapisjava-shared-configcomparev103v110-2021-10-12) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.0.3...v1.1.0) ##### Features - introduce Maven configuration for GraalVM testing ([#​314](https://www.togithub.com/googleapis/java-shared-config/issues/314)) ([28fbeb8](https://www.github.com/googleapis/java-shared-config/commit/28fbeb86c4466a58a05d6933584564dbf3352e79)) ##### Bug Fixes - update doclet version ([#​332](https://www.togithub.com/googleapis/java-shared-config/issues/332)) ([3fd0350](https://www.github.com/googleapis/java-shared-config/commit/3fd035030e4f0954dd1f62f7b8ea62583685880c)) ##### Dependencies - update dependency com.puppycrawl.tools:checkstyle to v9.0.1 ([#​327](https://www.togithub.com/googleapis/java-shared-config/issues/327)) ([b6c9b65](https://www.github.com/googleapis/java-shared-config/commit/b6c9b657550db2dee6b36edbb9a6084baee125e2)) - update dependency org.graalvm.buildtools:junit-platform-native to v0.9.6 ([#​330](https://www.togithub.com/googleapis/java-shared-config/issues/330)) ([271ed7d](https://www.github.com/googleapis/java-shared-config/commit/271ed7dba35623e22fc8a7f7d477e6043e772014)) - update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.6 ([#​331](https://www.togithub.com/googleapis/java-shared-config/issues/331)) ([4f9ba15](https://www.github.com/googleapis/java-shared-config/commit/4f9ba1551df0a2d4fc8c9acca8a951afbe8cb78a)) - update dependency org.junit.vintage:junit-vintage-engine to v5.8.1 ([#​329](https://www.togithub.com/googleapis/java-shared-config/issues/329)) ([4a8789e](https://www.github.com/googleapis/java-shared-config/commit/4a8789ee814ba8a3480beecc76c16fd1cb4e5f12)) ##### [1.0.3](https://www.github.com/googleapis/java-shared-config/compare/v1.0.2...v1.0.3) (2021-09-21) ##### Bug Fixes - update java-docfx-doclet version ([#​315](https://www.togithub.com/googleapis/java-shared-config/issues/315)) ([07af07c](https://www.github.com/googleapis/java-shared-config/commit/07af07c188447ea5728ecd2700121ff477d1c58a)) ##### [1.0.2](https://www.github.com/googleapis/java-shared-config/compare/v1.0.1...v1.0.2) (2021-09-13) ##### Bug Fixes - specify animal-sniffer-maven-plugin version ([#​308](https://www.togithub.com/googleapis/java-shared-config/issues/308)) ([378bf43](https://www.github.com/googleapis/java-shared-config/commit/378bf431383306c1cdd0a4f922956c87edf321b5)) - update java docfx doclet version ([#​312](https://www.togithub.com/googleapis/java-shared-config/issues/312)) ([dd7f6e0](https://www.github.com/googleapis/java-shared-config/commit/dd7f6e0c1a7cc73831b74b4475457611a8c097d3)) ##### Dependencies - update dependency com.puppycrawl.tools:checkstyle to v9 ([#​303](https://www.togithub.com/googleapis/java-shared-config/issues/303)) ([71faea3](https://www.github.com/googleapis/java-shared-config/commit/71faea38d4132407598550e2bb4c77f9d4a4d83d)) ##### [1.0.1](https://www.github.com/googleapis/java-shared-config/compare/v1.0.0...v1.0.1) (2021-08-18) ##### Dependencies - update dependency com.puppycrawl.tools:checkstyle to v8.45.1 ([#​292](https://www.togithub.com/googleapis/java-shared-config/issues/292)) ([66bf6e6](https://www.github.com/googleapis/java-shared-config/commit/66bf6e6fb95997b9eb4b34268b8d20c2fbe9ed5a))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7bd2470da275..0a531ca7b5ad 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.0.3 + 1.1.0 From acc6cb8ad318ae41a9a3a00a5942025c14cbe681 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 15 Oct 2021 15:09:25 -0400 Subject: [PATCH 1579/3441] feat: add session support (#1652) Adds: - CreateSession to Query config - SessionInfo in JobStatistics to record session stats --- .../google/cloud/bigquery/JobStatistics.java | 90 ++++++++++++++++++- .../cloud/bigquery/QueryJobConfiguration.java | 29 ++++++ .../cloud/bigquery/QueryRequestInfo.java | 7 ++ .../cloud/bigquery/JobStatisticsTest.java | 15 ++++ .../bigquery/QueryJobConfigurationTest.java | 3 + .../cloud/bigquery/QueryRequestInfoTest.java | 2 + .../cloud/bigquery/it/ITBigQueryTest.java | 33 +++++++ 7 files changed, 177 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index a3d04c0179ef..999f8d2fe3e3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -45,6 +45,7 @@ public abstract class JobStatistics implements Serializable { private final ScriptStatistics scriptStatistics; private final List reservationUsage; private final TransactionInfo transactionInfo; + private final SessionInfo sessionInfo; /** A Google BigQuery Copy Job statistics. */ public static class CopyStatistics extends JobStatistics { @@ -1251,6 +1252,76 @@ static TransactionInfo fromPb( } } + // SessionInfo contains information about the session if this job is part of one. + public static class SessionInfo { + + // Id of the session + private final String sessionId; + + public static class Builder { + + private String sessionId; + + private Builder() {}; + + Builder setSessionId(String sessionId) { + this.sessionId = sessionId; + return this; + } + + SessionInfo build() { + return new SessionInfo(this); + } + } + + private SessionInfo(Builder builder) { + this.sessionId = builder.sessionId; + } + + public String getSessionId() { + return sessionId; + } + + static Builder newBuilder() { + return new Builder(); + } + + ToStringHelper toStringHelper() { + return MoreObjects.toStringHelper(this).add("sessionId", sessionId); + } + + @Override + public String toString() { + return toStringHelper().toString(); + } + + @Override + public boolean equals(Object obj) { + return obj == this + || obj != null + && obj.getClass().equals(SessionInfo.class) + && Objects.equals(toPb(), ((SessionInfo) obj).toPb()); + } + + @Override + public int hashCode() { + return Objects.hash(sessionId); + } + + com.google.api.services.bigquery.model.SessionInfo toPb() { + com.google.api.services.bigquery.model.SessionInfo sessionInfo = + new com.google.api.services.bigquery.model.SessionInfo(); + sessionInfo.setSessionId(sessionId); + return sessionInfo; + } + + static SessionInfo fromPb(com.google.api.services.bigquery.model.SessionInfo sessionInfo) { + SessionInfo.Builder builder = newBuilder(); + builder.setSessionId(sessionInfo.getSessionId()); + return builder.build(); + } + } + abstract static class Builder> { private Long creationTime; @@ -1261,6 +1332,7 @@ abstract static class Builder> private ScriptStatistics scriptStatistics; private List reservationUsage; private TransactionInfo transactionInfo; + private SessionInfo sessionInfo; protected Builder() {} @@ -1280,6 +1352,9 @@ protected Builder(com.google.api.services.bigquery.model.JobStatistics statistic if (statisticsPb.getTransactionInfo() != null) { this.transactionInfo = TransactionInfo.fromPb(statisticsPb.getTransactionInfo()); } + if (statisticsPb.getSessionInfo() != null) { + this.sessionInfo = SessionInfo.fromPb(statisticsPb.getSessionInfo()); + } } @SuppressWarnings("unchecked") @@ -1314,6 +1389,7 @@ protected JobStatistics(Builder builder) { this.scriptStatistics = builder.scriptStatistics; this.reservationUsage = builder.reservationUsage; this.transactionInfo = builder.transactionInfo; + this.sessionInfo = builder.sessionInfo; } /** Returns the creation time of the job in milliseconds since epoch. */ @@ -1362,6 +1438,11 @@ public TransactionInfo getTransactionInfo() { return transactionInfo; } + /** Info of the session if this job is part of one. */ + public SessionInfo getSessionInfo() { + return sessionInfo; + } + ToStringHelper toStringHelper() { return MoreObjects.toStringHelper(this) .add("creationTime", creationTime) @@ -1371,7 +1452,8 @@ ToStringHelper toStringHelper() { .add("parentJobId", parentJobId) .add("scriptStatistics", scriptStatistics) .add("reservationUsage", reservationUsage) - .add("transactionInfo", transactionInfo); + .add("transactionInfo", transactionInfo) + .add("sessionInfo", sessionInfo); } @Override @@ -1388,7 +1470,8 @@ final int baseHashCode() { parentJobId, scriptStatistics, reservationUsage, - transactionInfo); + transactionInfo, + sessionInfo); } final boolean baseEquals(JobStatistics jobStatistics) { @@ -1413,6 +1496,9 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { if (transactionInfo != null) { statistics.setTransactionInfo(transactionInfo.toPb()); } + if (sessionInfo != null) { + statistics.setSessionInfo(sessionInfo.toPb()); + } return statistics; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index 7733e48e6f35..48ec22cafa10 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -56,6 +56,7 @@ public final class QueryJobConfiguration extends JobConfiguration { private final DatasetId defaultDataset; private final Priority priority; private final Boolean allowLargeResults; + private final Boolean createSession; private final Boolean useQueryCache; private final Boolean flattenResults; private final Boolean dryRun; @@ -108,6 +109,7 @@ public static final class Builder private DatasetId defaultDataset; private Priority priority; private Boolean allowLargeResults; + private Boolean createSession; private Boolean useQueryCache; private Boolean flattenResults; private Boolean dryRun; @@ -142,6 +144,7 @@ private Builder(QueryJobConfiguration jobConfiguration) { this.defaultDataset = jobConfiguration.defaultDataset; this.priority = jobConfiguration.priority; this.allowLargeResults = jobConfiguration.allowLargeResults; + this.createSession = jobConfiguration.createSession; this.useQueryCache = jobConfiguration.useQueryCache; this.flattenResults = jobConfiguration.flattenResults; this.dryRun = jobConfiguration.dryRun; @@ -185,6 +188,7 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur } } allowLargeResults = queryConfigurationPb.getAllowLargeResults(); + createSession = queryConfigurationPb.getCreateSession(); useQueryCache = queryConfigurationPb.getUseQueryCache(); flattenResults = queryConfigurationPb.getFlattenResults(); useLegacySql = queryConfigurationPb.getUseLegacySql(); @@ -460,6 +464,16 @@ public Builder setPriority(Priority priority) { return this; } + /** + * Sets whether to create a new session. If {@code true} a random session id will be generated + * by BigQuery. If false, runs query with an existing session_id passed in ConnectionProperty, + * otherwise runs query in non-session mode." + */ + public Builder setCreateSession(Boolean createSession) { + this.createSession = createSession; + return this; + } + /** * Sets whether the job is enabled to create arbitrarily large results. If {@code true} the * query is allowed to create large results at a slight cost in performance. If {@code true} @@ -656,6 +670,7 @@ private QueryJobConfiguration(Builder builder) { namedParameters = ImmutableMap.copyOf(builder.namedParameters); this.parameterMode = builder.parameterMode; this.allowLargeResults = builder.allowLargeResults; + this.createSession = builder.createSession; this.createDisposition = builder.createDisposition; this.defaultDataset = builder.defaultDataset; this.destinationTable = builder.destinationTable; @@ -693,6 +708,15 @@ public Boolean allowLargeResults() { return allowLargeResults; } + /** + * Returns whether to create a new session. + * + * @see Create Sessions + */ + public Boolean createSession() { + return createSession; + } + /** * Returns whether the job is allowed to create new tables. * @@ -897,6 +921,7 @@ ToStringHelper toStringHelper() { .add("destinationEncryptionConfiguration", destinationEncryptionConfiguration) .add("defaultDataset", defaultDataset) .add("allowLargeResults", allowLargeResults) + .add("createSession", createSession) .add("flattenResults", flattenResults) .add("priority", priority) .add("tableDefinitions", tableDefinitions) @@ -928,6 +953,7 @@ public int hashCode() { return Objects.hash( baseHashCode(), allowLargeResults, + createSession, createDisposition, destinationTable, defaultDataset, @@ -988,6 +1014,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (allowLargeResults != null) { queryConfigurationPb.setAllowLargeResults(allowLargeResults); } + if (createSession != null) { + queryConfigurationPb.setCreateSession(createSession); + } if (createDisposition != null) { queryConfigurationPb.setCreateDisposition(createDisposition.toString()); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java index 7492809d6107..ccde465af4bf 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java @@ -37,6 +37,7 @@ final class QueryRequestInfo { private final String query; private final List queryParameters; private final String requestId; + private final Boolean createSession; private final Boolean useQueryCache; private final Boolean useLegacySql; @@ -51,6 +52,7 @@ final class QueryRequestInfo { this.query = config.getQuery(); this.queryParameters = config.toPb().getQuery().getQueryParameters(); this.requestId = UUID.randomUUID().toString(); + this.createSession = config.createSession(); this.useLegacySql = config.useLegacySql(); this.useQueryCache = config.useQueryCache(); } @@ -97,6 +99,9 @@ QueryRequest toPb() { if (queryParameters != null) { request.setQueryParameters(queryParameters); } + if (createSession != null) { + request.setCreateSession(createSession); + } if (useLegacySql != null) { request.setUseLegacySql(useLegacySql); } @@ -118,6 +123,7 @@ public String toString() { .add("query", query) .add("requestId", requestId) .add("queryParameters", queryParameters) + .add("createSession", createSession) .add("useQueryCache", useQueryCache) .add("useLegacySql", useLegacySql) .toString(); @@ -135,6 +141,7 @@ public int hashCode() { query, queryParameters, requestId, + createSession, useQueryCache, useLegacySql); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index c421c0370fbd..87fae41b58a2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -26,6 +26,7 @@ import com.google.cloud.bigquery.JobStatistics.ReservationUsage; import com.google.cloud.bigquery.JobStatistics.ScriptStatistics; import com.google.cloud.bigquery.JobStatistics.ScriptStatistics.ScriptStackFrame; +import com.google.cloud.bigquery.JobStatistics.SessionInfo; import com.google.cloud.bigquery.JobStatistics.TransactionInfo; import com.google.cloud.bigquery.QueryStage.QueryStep; import com.google.common.collect.ImmutableList; @@ -73,6 +74,7 @@ public class JobStatisticsTest { private static final String NAME = "reservation-name"; private static final Long SLOTMS = 12545L; private static final String TRANSACTION_ID = UUID.randomUUID().toString().substring(0, 8); + private static final String SESSION_ID = UUID.randomUUID().toString().substring(0, 8); private static final CopyStatistics COPY_STATISTICS = CopyStatistics.newBuilder() .setCreationTimestamp(CREATION_TIME) @@ -222,6 +224,9 @@ public class JobStatisticsTest { private static final TransactionInfo TRANSACTION_INFO = TransactionInfo.newbuilder().setTransactionId(TRANSACTION_ID).build(); + private static final SessionInfo SESSION_INFO = + SessionInfo.newBuilder().setSessionId(SESSION_ID).build(); + @Test public void testBuilder() { assertEquals(CREATION_TIME, EXTRACT_STATISTICS.getCreationTime()); @@ -293,6 +298,7 @@ public void testBuilder() { assertEquals(NAME, RESERVATION_USAGE.getName()); assertEquals(SLOTMS, RESERVATION_USAGE.getSlotMs()); assertEquals(TRANSACTION_ID, TRANSACTION_INFO.getTransactionId()); + assertEquals(SESSION_ID, SESSION_INFO.getSessionId()); } @Test @@ -319,6 +325,7 @@ public void testToPbAndFromPb() { } compareReservation(RESERVATION_USAGE, ReservationUsage.fromPb(RESERVATION_USAGE.toPb())); compareTransactionInfo(TRANSACTION_INFO, TransactionInfo.fromPb(TRANSACTION_INFO.toPb())); + compareSessionInfo(SESSION_INFO, SessionInfo.fromPb(SESSION_INFO.toPb())); } @Test @@ -441,4 +448,12 @@ private void compareTransactionInfo(TransactionInfo expected, TransactionInfo va assertEquals(expected.toPb(), value.toPb()); assertEquals(expected.getTransactionId(), value.getTransactionId()); } + + private void compareSessionInfo(SessionInfo expected, SessionInfo value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.toPb(), value.toPb()); + assertEquals(expected.getSessionId(), value.getSessionId()); + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index bcfc723568c0..9a20219d66a7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -78,6 +78,7 @@ public class QueryJobConfigurationTest { private static final Priority PRIORITY = Priority.BATCH; private static final boolean ALLOW_LARGE_RESULTS = true; private static final boolean USE_QUERY_CACHE = false; + private static final boolean CREATE_SESSION = true; private static final boolean FLATTEN_RESULTS = true; private static final boolean USE_LEGACY_SQL = true; private static final Integer MAX_BILLING_TIER = 123; @@ -119,6 +120,7 @@ public class QueryJobConfigurationTest { .setDestinationTable(TABLE_ID) .setWriteDisposition(WRITE_DISPOSITION) .setPriority(PRIORITY) + .setCreateSession(CREATE_SESSION) .setFlattenResults(FLATTEN_RESULTS) .setUserDefinedFunctions(USER_DEFINED_FUNCTIONS) .setDryRun(true) @@ -238,6 +240,7 @@ private void compareQueryJobConfiguration( assertEquals(expected.getCreateDisposition(), value.getCreateDisposition()); assertEquals(expected.getDefaultDataset(), value.getDefaultDataset()); assertEquals(expected.getDestinationTable(), value.getDestinationTable()); + assertEquals(expected.createSession(), value.createSession()); assertEquals(expected.flattenResults(), value.flattenResults()); assertEquals(expected.getPriority(), value.getPriority()); assertEquals(expected.getQuery(), value.getQuery()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java index 4adeeaf0066b..5c224af8090f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java @@ -74,6 +74,7 @@ public class QueryRequestInfoTest { private static final WriteDisposition WRITE_DISPOSITION = WriteDisposition.WRITE_APPEND; private static final Priority PRIORITY = Priority.BATCH; private static final boolean ALLOW_LARGE_RESULTS = true; + private static final boolean CREATE_SESSION = true; private static final boolean USE_QUERY_CACHE = false; private static final boolean FLATTEN_RESULTS = true; private static final boolean USE_LEGACY_SQL = true; @@ -142,6 +143,7 @@ public class QueryRequestInfoTest { .setLabels(LABELS) .setConnectionProperties(CONNECTION_PROPERTIES) .setPositionalParameters(POSITIONAL_PARAMETER) + .setCreateSession(CREATE_SESSION) .setMaxResults(100L) .build(); QueryRequestInfo REQUEST_INFO_SUPPORTED = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_SUPPORTED); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 8ef74458fdf0..88695f8733d8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2235,6 +2235,39 @@ public void testFastQueryHTTPException() throws InterruptedException { } } + @Test + public void testQuerySessionSupport() throws InterruptedException { + String query = "CREATE TEMPORARY TABLE temptable AS SELECT 17 as foo"; + QueryJobConfiguration queryJobConfiguration = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setCreateSession(true) + .build(); + Job remoteJob = bigquery.create(JobInfo.of(queryJobConfiguration)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + + Job queryJob = bigquery.getJob(remoteJob.getJobId()); + JobStatistics.QueryStatistics statistics = queryJob.getStatistics(); + String sessionId = statistics.getSessionInfo().getSessionId(); + assertNotNull(sessionId); + + String queryTempTable = "SELECT * FROM temptable"; + ConnectionProperty connectionProperty = + ConnectionProperty.newBuilder().setKey("session_id").setValue(sessionId).build(); + QueryJobConfiguration queryJobConfigurationWithSession = + QueryJobConfiguration.newBuilder(queryTempTable) + .setDefaultDataset(DatasetId.of(DATASET)) + .setConnectionProperties(ImmutableList.of(connectionProperty)) + .build(); + Job remoteJobWithSession = bigquery.create(JobInfo.of(queryJobConfigurationWithSession)); + remoteJobWithSession = remoteJobWithSession.waitFor(); + assertNull(remoteJobWithSession.getStatus().getError()); + Job queryJobWithSession = bigquery.getJob(remoteJobWithSession.getJobId()); + JobStatistics.QueryStatistics statisticsWithSession = queryJobWithSession.getStatistics(); + assertEquals(sessionId, statisticsWithSession.getSessionInfo().getSessionId()); + } + @Test public void testDmlStatistics() throws InterruptedException { String tableName = TABLE_ID_FASTQUERY.getTable(); From 8378014739766a36664e6a61ed495d5d10028ce2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 15 Oct 2021 19:22:14 +0000 Subject: [PATCH 1580/3441] chore: release 2.3.0 (#1646) :robot: I have created a release \*beep\* \*boop\* --- ## [2.3.0](https://www.github.com/googleapis/java-bigquery/compare/v2.2.1...v2.3.0) (2021-10-15) ### Features * add session support ([#1652](https://www.github.com/googleapis/java-bigquery/issues/1652)) ([acc6cb8](https://www.github.com/googleapis/java-bigquery/commit/acc6cb8ad318ae41a9a3a00a5942025c14cbe681)) ### Bug Fixes * fix timestamp rounding issue ([#1645](https://www.github.com/googleapis/java-bigquery/issues/1645)) ([e60bdff](https://www.github.com/googleapis/java-bigquery/commit/e60bdff9e196a618a59a0544ec93f87b2ec5fc82)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ecd216e7ebe5..b5680dfeff6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [2.3.0](https://www.github.com/googleapis/java-bigquery/compare/v2.2.1...v2.3.0) (2021-10-15) + + +### Features + +* add session support ([#1652](https://www.github.com/googleapis/java-bigquery/issues/1652)) ([acc6cb8](https://www.github.com/googleapis/java-bigquery/commit/acc6cb8ad318ae41a9a3a00a5942025c14cbe681)) + + +### Bug Fixes + +* fix timestamp rounding issue ([#1645](https://www.github.com/googleapis/java-bigquery/issues/1645)) ([e60bdff](https://www.github.com/googleapis/java-bigquery/commit/e60bdff9e196a618a59a0544ec93f87b2ec5fc82)) + ### [2.2.1](https://www.github.com/googleapis/java-bigquery/compare/v2.2.0...v2.2.1) (2021-10-05) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 451a55ec0beb..14694682d70d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.2.2-SNAPSHOT + 2.3.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2032c657c03b..9b9156d65f9d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.2.2-SNAPSHOT + 2.3.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.2.2-SNAPSHOT + 2.3.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0a531ca7b5ad..5332226d909d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.2.2-SNAPSHOT + 2.3.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.2.2-SNAPSHOT + 2.3.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4d338439b65e..75f378e06ff7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.2.2-SNAPSHOT + 2.3.0 diff --git a/versions.txt b/versions.txt index 6064c38c223f..835e6063888c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.2.1:2.2.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.3.0:2.3.0 \ No newline at end of file From 0a1589348ecbc7aebf49fa40efd369114aa718aa Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 15 Oct 2021 19:36:11 +0000 Subject: [PATCH 1581/3441] chore: release 2.3.1-SNAPSHOT (#1653) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 14694682d70d..b90f95e5b57e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.3.0 + 2.3.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9b9156d65f9d..c35c11e63b29 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.3.0 + 2.3.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.3.0 + 2.3.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5332226d909d..e6030380514b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.3.0 + 2.3.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.3.0 + 2.3.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 75f378e06ff7..b63681a1a8fd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.3.0 + 2.3.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 835e6063888c..f8e04d3c5a11 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.3.0:2.3.0 \ No newline at end of file +google-cloud-bigquery:2.3.0:2.3.1-SNAPSHOT \ No newline at end of file From bb9129ed63bb903c97ad25897e1d7ef7ba8a52f1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 18 Oct 2021 20:45:14 +0200 Subject: [PATCH 1582/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.3.0 (#1654) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index de968e4341c6..ef53c3b2946a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.2.1 + 2.3.0 From 97a04ba1228f65e7045da2446f53d6dbd574552e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 19 Oct 2021 22:07:59 +0200 Subject: [PATCH 1583/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.5 (#1658) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ef53c3b2946a..fff7caa5fad9 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.4 + 2.1.5 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b63681a1a8fd..170cd55cf72a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.4 + 2.1.5 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f0666a60cecc..b913d6d1ab05 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.4 + 2.1.5 test From a499bbc526da6a2e7f289ba2a86d9d206659d88c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 19 Oct 2021 22:08:24 +0200 Subject: [PATCH 1584/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.4.0 (#1661) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e6030380514b..8030207c1ea6 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ google-cloud-bigquery-parent v2-rev20210927-1.32.1 - 2.3.0 + 2.4.0 From f9ffd3f59d9774e3931619182f4522a1041e70bd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 19 Oct 2021 22:20:25 +0200 Subject: [PATCH 1585/3441] test(deps): update datacatalog dependencies to v1.5.9 (#1660) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-cloud-datacatalog-v1](https://togithub.com/googleapis/java-datacatalog) | `1.5.8` -> `1.5.9` | [![age](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-datacatalog-v1/1.5.9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-datacatalog-v1/1.5.9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-datacatalog-v1/1.5.9/compatibility-slim/1.5.8)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-datacatalog-v1/1.5.9/confidence-slim/1.5.8)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.cloud:google-cloud-datacatalog](https://togithub.com/googleapis/java-datacatalog) | `1.5.8` -> `1.5.9` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog/1.5.9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog/1.5.9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog/1.5.9/compatibility-slim/1.5.8)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog/1.5.9/confidence-slim/1.5.8)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-datacatalog ### [`v1.5.9`](https://togithub.com/googleapis/java-datacatalog/blob/master/CHANGELOG.md#​159-httpswwwgithubcomgoogleapisjava-datacatalogcomparev158v159-2021-10-19) [Compare Source](https://togithub.com/googleapis/java-datacatalog/compare/v1.5.8...v1.5.9)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 8030207c1ea6..c3dc0019bc03 100644 --- a/pom.xml +++ b/pom.xml @@ -120,13 +120,13 @@ com.google.cloud google-cloud-datacatalog - 1.5.8 + 1.5.9 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.5.8 + 1.5.9 test From 16c2d22550812e908f19969c27bcaf9dd5f861e1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 19 Oct 2021 22:50:41 +0200 Subject: [PATCH 1586/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.1.9 (#1659) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.1.7` -> `2.1.9` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.9/compatibility-slim/2.1.7)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.1.9/confidence-slim/2.1.7)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.1.9`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​219-httpswwwgithubcomgoogleapisjava-storagecomparev218v219-2021-10-19) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.1.8...v2.1.9) ### [`v2.1.8`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​218-httpswwwgithubcomgoogleapisjava-storagecomparev217v218-2021-10-18) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.1.7...v2.1.8)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c3dc0019bc03..9b257de4182f 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ com.google.cloud google-cloud-storage - 2.1.7 + 2.1.9 test From 84584344a5fc2e498449cbeb39995b07d60d011c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 19 Oct 2021 21:04:21 +0000 Subject: [PATCH 1587/3441] chore: release 2.3.1 (#1662) :robot: I have created a release \*beep\* \*boop\* --- ### [2.3.1](https://www.github.com/googleapis/java-bigquery/compare/v2.3.0...v2.3.1) (2021-10-19) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.4.0 ([#1661](https://www.github.com/googleapis/java-bigquery/issues/1661)) ([a499bbc](https://www.github.com/googleapis/java-bigquery/commit/a499bbc526da6a2e7f289ba2a86d9d206659d88c)) * update dependency com.google.cloud:google-cloud-storage to v2.1.9 ([#1659](https://www.github.com/googleapis/java-bigquery/issues/1659)) ([16c2d22](https://www.github.com/googleapis/java-bigquery/commit/16c2d22550812e908f19969c27bcaf9dd5f861e1)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5680dfeff6e..d49f4e90a00b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.3.1](https://www.github.com/googleapis/java-bigquery/compare/v2.3.0...v2.3.1) (2021-10-19) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.4.0 ([#1661](https://www.github.com/googleapis/java-bigquery/issues/1661)) ([a499bbc](https://www.github.com/googleapis/java-bigquery/commit/a499bbc526da6a2e7f289ba2a86d9d206659d88c)) +* update dependency com.google.cloud:google-cloud-storage to v2.1.9 ([#1659](https://www.github.com/googleapis/java-bigquery/issues/1659)) ([16c2d22](https://www.github.com/googleapis/java-bigquery/commit/16c2d22550812e908f19969c27bcaf9dd5f861e1)) + ## [2.3.0](https://www.github.com/googleapis/java-bigquery/compare/v2.2.1...v2.3.0) (2021-10-15) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b90f95e5b57e..c7c1109afb72 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.3.1-SNAPSHOT + 2.3.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c35c11e63b29..cd66c878f9ee 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.3.1-SNAPSHOT + 2.3.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.3.1-SNAPSHOT + 2.3.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9b257de4182f..b4258f0cd763 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.3.1-SNAPSHOT + 2.3.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.3.1-SNAPSHOT + 2.3.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 170cd55cf72a..00c0ee711e55 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.3.1-SNAPSHOT + 2.3.1 diff --git a/versions.txt b/versions.txt index f8e04d3c5a11..bdfa0c618a88 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.3.0:2.3.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.3.1:2.3.1 \ No newline at end of file From 64f6bf3ecce0caa96fd7d48fd13abfa9a27f3a16 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 19 Oct 2021 21:16:39 +0000 Subject: [PATCH 1588/3441] chore: release 2.3.2-SNAPSHOT (#1663) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c7c1109afb72..40019ad5235a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.3.1 + 2.3.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index cd66c878f9ee..98ccab22a834 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.3.1 + 2.3.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.3.1 + 2.3.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b4258f0cd763..fe7c4e3b8d99 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.3.1 + 2.3.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.3.1 + 2.3.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 00c0ee711e55..4cd9c2a97b0c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.3.1 + 2.3.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index bdfa0c618a88..5928a29966f0 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.3.1:2.3.1 \ No newline at end of file +google-cloud-bigquery:2.3.1:2.3.2-SNAPSHOT \ No newline at end of file From 36a822c419c8c14f55c1b0e985ddbc5ed40dbb72 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 20 Oct 2021 17:31:27 +0200 Subject: [PATCH 1589/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.3.1 (#1664) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fff7caa5fad9..11e54f6d83be 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.3.0 + 2.3.1 From 201852fa3f9947da54bf4c4ec79d1b2630d76f2f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 20 Oct 2021 19:52:21 +0200 Subject: [PATCH 1590/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.2.0 (#1667) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.1.4` -> `2.2.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.2.0/compatibility-slim/2.1.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.2.0/confidence-slim/2.1.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.2.0`](https://togithub.com/googleapis/java-bigtable/blob/master/CHANGELOG.md#​220-httpswwwgithubcomgoogleapisjava-bigtablecomparev214v220-2021-10-20) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.1.4...v2.2.0) ##### Features - app profile multi cluster routing support with specified cluster ids ([#​961](https://www.togithub.com/googleapis/java-bigtable/issues/961)) ([f4c5c32](https://www.github.com/googleapis/java-bigtable/commit/f4c5c32c05d244a9ce7c3a4386ba9396c65f227e)) ##### Bug Fixes - fix typo in rst stream message ([#​1029](https://www.togithub.com/googleapis/java-bigtable/issues/1029)) ([50e6860](https://www.github.com/googleapis/java-bigtable/commit/50e686094c316560864c30a0295b3ed3f655c765)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.4.0 ([#​1038](https://www.togithub.com/googleapis/java-bigtable/issues/1038)) ([d3efb29](https://www.github.com/googleapis/java-bigtable/commit/d3efb29df8461caddd3917fc42afa50961723a7d)) ##### [2.1.4](https://www.github.com/googleapis/java-bigtable/compare/v2.1.3...v2.1.4) (2021-09-22) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.3.0 ([#​1020](https://www.togithub.com/googleapis/java-bigtable/issues/1020)) ([272f044](https://www.github.com/googleapis/java-bigtable/commit/272f0443501c502abf1b061414fb2435a9ad7952)) ##### [2.1.3](https://www.github.com/googleapis/java-bigtable/compare/v2.1.2...v2.1.3) (2021-09-21) ##### Dependencies - migrate to mockito-core 3.12.4 ([#​1008](https://www.togithub.com/googleapis/java-bigtable/issues/1008)) ([d9f19db](https://www.github.com/googleapis/java-bigtable/commit/d9f19db82f82615e4476462f9c34da7841169838)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.2.1 ([#​1010](https://www.togithub.com/googleapis/java-bigtable/issues/1010)) ([a54a021](https://www.github.com/googleapis/java-bigtable/commit/a54a02135f30e3337812938f5794b293ee6535c6)) ##### [2.1.2](https://www.github.com/googleapis/java-bigtable/compare/v2.1.1...v2.1.2) (2021-09-13) ##### Bug Fixes - parallel execution and verbose grpc logs ([#​1004](https://www.togithub.com/googleapis/java-bigtable/issues/1004)) ([dd5164d](https://www.github.com/googleapis/java-bigtable/commit/dd5164dc9de7f060bb0dab79820cb43ac434d703)) ##### Reverts - temporary workaround for maven wildcard excludes ([#​989](https://www.togithub.com/googleapis/java-bigtable/issues/989)) ([148a928](https://www.github.com/googleapis/java-bigtable/commit/148a928e3f8f6d1e2ee1d1b119ca820d676802fd)) ##### [2.1.1](https://www.github.com/googleapis/java-bigtable/compare/v2.1.0...v2.1.1) (2021-09-01) ##### Dependencies - update dependency com.google.cloud:google-cloud-conformance-tests to v0.2.0 ([#​971](https://www.togithub.com/googleapis/java-bigtable/issues/971)) ([5c614d5](https://www.github.com/googleapis/java-bigtable/commit/5c614d58dd527a7fd36d32f201138a35e95a0577)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.2.0 ([#​975](https://www.togithub.com/googleapis/java-bigtable/issues/975)) ([e5bb52e](https://www.github.com/googleapis/java-bigtable/commit/e5bb52eead42e8b351a7469529837d8b509b8332))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 11e54f6d83be..49c8350bf138 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.1.4 + 2.2.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4cd9c2a97b0c..b73a459d8fa9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.1.4 + 2.2.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index b913d6d1ab05..727b3dbc07fc 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.1.4 + 2.2.0 test From 92317d44ec93aa2fb620e81d5314501d7b0c9fc9 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 20 Oct 2021 18:06:17 +0000 Subject: [PATCH 1591/3441] chore: release 2.3.2 (#1668) :robot: I have created a release \*beep\* \*boop\* --- ### [2.3.2](https://www.github.com/googleapis/java-bigquery/compare/v2.3.1...v2.3.2) (2021-10-20) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v2.2.0 ([#1667](https://www.github.com/googleapis/java-bigquery/issues/1667)) ([201852f](https://www.github.com/googleapis/java-bigquery/commit/201852fa3f9947da54bf4c4ec79d1b2630d76f2f)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d49f4e90a00b..d83fdb4ce4b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.3.2](https://www.github.com/googleapis/java-bigquery/compare/v2.3.1...v2.3.2) (2021-10-20) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v2.2.0 ([#1667](https://www.github.com/googleapis/java-bigquery/issues/1667)) ([201852f](https://www.github.com/googleapis/java-bigquery/commit/201852fa3f9947da54bf4c4ec79d1b2630d76f2f)) + ### [2.3.1](https://www.github.com/googleapis/java-bigquery/compare/v2.3.0...v2.3.1) (2021-10-19) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 40019ad5235a..ebe8ef1ca8ce 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.3.2-SNAPSHOT + 2.3.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 98ccab22a834..6d6d3f857711 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.3.2-SNAPSHOT + 2.3.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.3.2-SNAPSHOT + 2.3.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index fe7c4e3b8d99..e120fc65b8be 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.3.2-SNAPSHOT + 2.3.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.3.2-SNAPSHOT + 2.3.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b73a459d8fa9..3ba93e6ed129 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.3.2-SNAPSHOT + 2.3.2 diff --git a/versions.txt b/versions.txt index 5928a29966f0..0794eb78d252 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.3.1:2.3.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.3.2:2.3.2 \ No newline at end of file From f0a69ae371d022c780b3667647d3c86084468be1 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 20 Oct 2021 18:22:41 +0000 Subject: [PATCH 1592/3441] chore: release 2.3.3-SNAPSHOT (#1669) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ebe8ef1ca8ce..7a099a25d5a0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6d6d3f857711..6f6b0dffcb58 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.3.2 + 2.3.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.3.2 + 2.3.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e120fc65b8be..2f8122eac417 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.3.2 + 2.3.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3ba93e6ed129..6746be514b21 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.3.2 + 2.3.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0794eb78d252..cc5803b705cc 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.3.2:2.3.2 \ No newline at end of file +google-cloud-bigquery:2.3.2:2.3.3-SNAPSHOT \ No newline at end of file From f97d6bf07081881c7a4e5487fc1a2ca30d5663aa Mon Sep 17 00:00:00 2001 From: Jeff Ching Date: Wed, 20 Oct 2021 12:22:58 -0700 Subject: [PATCH 1593/3441] test: test if tooling works (#1670) Co-authored-by: Stephanie Wang --- .github/release-please.yml | 4 ++++ .github/sync-repo-settings.yaml | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/.github/release-please.yml b/.github/release-please.yml index e44bbbd7ecba..473d7f07c429 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -7,6 +7,10 @@ branches: handleGHRelease: true releaseType: java-yoshi branch: java7 + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 2.3.x bumpMinorPreMajor: true handleGHRelease: true releaseType: java-yoshi diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index b595a8a2c9ef..583a840c4db8 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -46,6 +46,20 @@ branchProtectionRules: - units (11) - 'Kokoro - Test: Integration' - cla/google + - pattern: 2.3.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (8) + - dependencies (11) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google permissionRules: - team: api-bigquery permission: admin From 7f1cc7a7a6a711bdf136679f11dec296768057c9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 20 Oct 2021 21:50:16 +0200 Subject: [PATCH 1594/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.3.2 (#1674) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.3.1` -> `2.3.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.3.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.3.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.3.2/compatibility-slim/2.3.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.3.2/confidence-slim/2.3.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.3.2`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​232-httpswwwgithubcomgoogleapisjava-bigquerycomparev231v232-2021-10-20) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.3.1...v2.3.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 49c8350bf138..5361a5f150f9 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.3.1 + 2.3.2 From 66878c365fa50d54a9f1acefe2c9ff7f45335510 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 21 Oct 2021 12:49:39 -0400 Subject: [PATCH 1595/3441] chore: fix owlbot.py filename typo (#1675) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: fix owlbot.py filename typo * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: update owlbot image * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: add dependencies.sh script for java17 check Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .github/workflows/ci.yaml | 19 ++++++++++------ .kokoro/build.sh | 5 +++++ .kokoro/dependencies.sh | 23 ++++++++++++++++++- .kokoro/presubmit/graalvm-native.cfg | 33 ++++++++++++++++++++++++++++ README.md | 8 +++---- owlbot.py.py => owlbot.py | 0 7 files changed, 77 insertions(+), 13 deletions(-) create mode 100644 .kokoro/presubmit/graalvm-native.cfg rename owlbot.py.py => owlbot.py (100%) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 942f78aec421..859cc6b7a26b 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:b328758e5113c392d3eccad613c2b18097eaebcb4d8bf77fab0326a6cad90bc7 \ No newline at end of file + digest: sha256:d4b2141d65566523dfd523f63c6e6899ab1281463bce182a9f600e74b0511875 \ No newline at end of file diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3932a70d4e14..2425d7234f42 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -9,14 +9,15 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [8, 11] + java: [8, 11, 17] steps: - uses: actions/checkout@v2 - uses: stCarolas/setup-maven@v4 with: maven-version: 3.8.1 - - uses: actions/setup-java@v1 + - uses: actions/setup-java@v2 with: + distribution: zulu java-version: ${{matrix.java}} - run: java -version - run: .kokoro/build.sh @@ -29,8 +30,9 @@ jobs: - uses: stCarolas/setup-maven@v4 with: maven-version: 3.8.1 - - uses: actions/setup-java@v1 + - uses: actions/setup-java@v2 with: + distribution: zulu java-version: 8 - run: java -version - run: .kokoro/build.bat @@ -40,14 +42,15 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [8, 11] + java: [8, 11, 17] steps: - uses: actions/checkout@v2 - uses: stCarolas/setup-maven@v4 with: maven-version: 3.8.1 - - uses: actions/setup-java@v1 + - uses: actions/setup-java@v2 with: + distribution: zulu java-version: ${{matrix.java}} - run: java -version - run: .kokoro/dependencies.sh @@ -58,8 +61,9 @@ jobs: - uses: stCarolas/setup-maven@v4 with: maven-version: 3.8.1 - - uses: actions/setup-java@v1 + - uses: actions/setup-java@v2 with: + distribution: zulu java-version: 8 - run: java -version - run: .kokoro/build.sh @@ -72,8 +76,9 @@ jobs: - uses: stCarolas/setup-maven@v4 with: maven-version: 3.8.1 - - uses: actions/setup-java@v1 + - uses: actions/setup-java@v2 with: + distribution: zulu java-version: 8 - run: java -version - run: .kokoro/build.sh diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 2d4c91705be0..5454c3fc5dc3 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -69,6 +69,11 @@ integration) verify RETURN_CODE=$? ;; +graalvm) + # Run Unit and Integration Tests with Native Image + mvn test -Pnative -Penable-integration-tests + RETURN_CODE=$? + ;; samples) SAMPLES_DIR=samples # only run ITs in snapshot/ on presubmit PRs. run ITs in all 3 samples/ subdirectories otherwise. diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index 12f1088d8da1..78fed6d6e37b 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -27,7 +27,28 @@ source ${scriptDir}/common.sh java -version echo $JOB_TYPE -export MAVEN_OPTS="-Xmx1024m -XX:MaxPermSize=128m" +function determineMavenOpts() { + local javaVersion=$( + # filter down to the version line, then pull out the version between quotes, + # then trim the version number down to its minimal number (removing any + # update or suffix number). + java -version 2>&1 | grep "version" \ + | sed -E 's/^.*"(.*?)".*$/\1/g' \ + | sed -E 's/^(1\.[0-9]\.0).*$/\1/g' + ) + + case $javaVersion in + "17") + # MaxPermSize is no longer supported as of jdk 17 + echo -n "-Xmx1024m" + ;; + *) + echo -n "-Xmx1024m -XX:MaxPermSize=128m" + ;; + esac +} + +export MAVEN_OPTS=$(determineMavenOpts) # this should run maven enforcer retry_with_backoff 3 10 \ diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg new file mode 100644 index 000000000000..4c7225ec924e --- /dev/null +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -0,0 +1,33 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm" +} + +env_vars: { + key: "JOB_TYPE" + value: "graalvm" +} + +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} diff --git a/README.md b/README.md index b428027cc037..aee18110ec88 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.1.7 + 2.1.13 ``` @@ -51,20 +51,20 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:23.0.0') +implementation platform('com.google.cloud:libraries-bom:23.1.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.1.7' +implementation 'com.google.cloud:google-cloud-bigquery:2.3.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.1.7" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.3.2" ``` ## Authentication diff --git a/owlbot.py.py b/owlbot.py similarity index 100% rename from owlbot.py.py rename to owlbot.py From fd06ad2728e52eac2e8570b0ba15830ad79470ad Mon Sep 17 00:00:00 2001 From: Martin Vanek Date: Thu, 21 Oct 2021 19:46:12 +0100 Subject: [PATCH 1596/3441] fix: allow retry on connection establishing exceptions (#1666) --- .../google/cloud/bigquery/BigQueryImpl.java | 56 +++++++++---------- .../cloud/bigquery/TableDataWriteChannel.java | 4 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index fd9160f40e9f..7d0e4c5550ef 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -270,7 +270,7 @@ public com.google.api.services.bigquery.model.Dataset call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -298,7 +298,7 @@ public com.google.api.services.bigquery.model.Table call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -326,7 +326,7 @@ public com.google.api.services.bigquery.model.Routine call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -375,7 +375,7 @@ public com.google.api.services.bigquery.model.Job call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -426,7 +426,7 @@ public com.google.api.services.bigquery.model.Dataset call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); if (getOptions().getThrowNotFound() && answer == null) { throw new BigQueryException(HTTP_NOT_FOUND, "Dataset not found"); @@ -501,7 +501,7 @@ public Boolean call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -532,7 +532,7 @@ public Boolean call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -558,7 +558,7 @@ public Boolean call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -584,7 +584,7 @@ public Boolean call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -608,7 +608,7 @@ public Boolean call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -631,7 +631,7 @@ public com.google.api.services.bigquery.model.Dataset call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -659,7 +659,7 @@ public com.google.api.services.bigquery.model.Table call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -687,7 +687,7 @@ public com.google.api.services.bigquery.model.Model call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -715,7 +715,7 @@ public com.google.api.services.bigquery.model.Routine call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -751,7 +751,7 @@ public com.google.api.services.bigquery.model.Table call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); if (getOptions().getThrowNotFound() && answer == null) { throw new BigQueryException(HTTP_NOT_FOUND, "Table not found"); @@ -789,7 +789,7 @@ public com.google.api.services.bigquery.model.Model call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); if (getOptions().getThrowNotFound() && answer == null) { throw new BigQueryException(HTTP_NOT_FOUND, "Model not found"); @@ -827,7 +827,7 @@ public com.google.api.services.bigquery.model.Routine call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); if (getOptions().getThrowNotFound() && answer == null) { throw new BigQueryException(HTTP_NOT_FOUND, "Routine not found"); @@ -916,7 +916,7 @@ private static Page
    listTables( } }, serviceOptions.getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock()); String cursor = result.x(); Iterable
    tables = @@ -953,7 +953,7 @@ private static Page listModels( } }, serviceOptions.getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock()); String cursor = result.x(); Iterable models = @@ -990,7 +990,7 @@ private static Page listRoutines( } }, serviceOptions.getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock()); String cursor = result.x(); Iterable routines = @@ -1055,7 +1055,7 @@ public TableDataInsertAllResponse call() throws Exception { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); } catch (RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -1119,7 +1119,7 @@ public TableDataList call() { } }, serviceOptions.getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock()); String cursor = result.getPageToken(); Map pageOptionMap = @@ -1179,7 +1179,7 @@ public com.google.api.services.bigquery.model.Job call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); if (getOptions().getThrowNotFound() && answer == null) { throw new BigQueryException(HTTP_NOT_FOUND, "Job not found"); @@ -1208,7 +1208,7 @@ public Tuple> call( } }, serviceOptions.getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock()); String cursor = result.x(); Iterable jobs = @@ -1247,7 +1247,7 @@ public Boolean call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -1440,7 +1440,7 @@ public com.google.api.services.bigquery.model.Policy call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -1466,7 +1466,7 @@ public com.google.api.services.bigquery.model.Policy call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -1493,7 +1493,7 @@ public com.google.api.services.bigquery.model.TestIamPermissionsResponse call() } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); return response.getPermissions() == null ? ImmutableList.of() diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java index f96f7892c914..0f9632aea875 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java @@ -60,7 +60,7 @@ public com.google.api.services.bigquery.model.Job call() { } }, getOptions().getRetrySettings(), - BigQueryImpl.EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock()); job = jobPb != null ? Job.fromPb(getOptions().getService(), jobPb) : null; } catch (RetryHelper.RetryHelperException e) { @@ -91,7 +91,7 @@ public String call() { } }, options.getRetrySettings(), - BigQueryImpl.EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, options.getClock()); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); From 591361f1722acf23abf4af4ea9d72f40a0659ff3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 25 Oct 2021 16:51:38 +0200 Subject: [PATCH 1597/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.2.0 (#1678) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.2.0 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index aee18110ec88..9db97d6b8b56 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 23.0.0 + 23.1.0 pom import @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.1.13 + 2.3.2 ``` @@ -329,7 +329,7 @@ Java 11 | [![Kokoro CI][kokoro-badge-image-5]][kokoro-badge-link-5] Java is a registered trademark of Oracle and/or its affiliates. [product-docs]: https://cloud.google.com/bigquery -[javadocs]: https://googleapis.dev/java/google-cloud-bigquery/latest +[javadocs]: https://cloud.google.com/java/docs/reference/google-cloud-bigquery/latest/history [kokoro-badge-image-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java7.svg [kokoro-badge-link-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java7.html [kokoro-badge-image-2]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8.svg diff --git a/pom.xml b/pom.xml index 2f8122eac417..ce99ee790ed4 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.1.0 + 1.2.0 From 5e46e5c59f58efb996364edb394b149f4ead8428 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 25 Oct 2021 16:53:32 +0200 Subject: [PATCH 1598/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20211017-1.32.1 (#1679) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20211017-1.32.1 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ce99ee790ed4..bb8fdca2c82e 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20210927-1.32.1 + v2-rev20211017-1.32.1 2.4.0 From f88665b8d3d012e79dde7a4983be794371a7446f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 25 Oct 2021 16:08:13 +0000 Subject: [PATCH 1599/3441] chore: release 2.3.3 (#1677) :robot: I have created a release \*beep\* \*boop\* --- ### [2.3.3](https://www.github.com/googleapis/java-bigquery/compare/v2.3.2...v2.3.3) (2021-10-25) ### Bug Fixes * allow retry on connection establishing exceptions ([#1666](https://www.github.com/googleapis/java-bigquery/issues/1666)) ([fd06ad2](https://www.github.com/googleapis/java-bigquery/commit/fd06ad2728e52eac2e8570b0ba15830ad79470ad)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20211017-1.32.1 ([#1679](https://www.github.com/googleapis/java-bigquery/issues/1679)) ([5e46e5c](https://www.github.com/googleapis/java-bigquery/commit/5e46e5c59f58efb996364edb394b149f4ead8428)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d83fdb4ce4b1..7a316d02bed5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +### [2.3.3](https://www.github.com/googleapis/java-bigquery/compare/v2.3.2...v2.3.3) (2021-10-25) + + +### Bug Fixes + +* allow retry on connection establishing exceptions ([#1666](https://www.github.com/googleapis/java-bigquery/issues/1666)) ([fd06ad2](https://www.github.com/googleapis/java-bigquery/commit/fd06ad2728e52eac2e8570b0ba15830ad79470ad)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20211017-1.32.1 ([#1679](https://www.github.com/googleapis/java-bigquery/issues/1679)) ([5e46e5c](https://www.github.com/googleapis/java-bigquery/commit/5e46e5c59f58efb996364edb394b149f4ead8428)) + ### [2.3.2](https://www.github.com/googleapis/java-bigquery/compare/v2.3.1...v2.3.2) (2021-10-20) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 7a099a25d5a0..548ba5f7285f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.3.3-SNAPSHOT + 2.3.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6f6b0dffcb58..1c14dfbdf0d2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.3.3-SNAPSHOT + 2.3.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.3.3-SNAPSHOT + 2.3.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bb8fdca2c82e..ae7148f4ba4a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.3.3-SNAPSHOT + 2.3.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.3.3-SNAPSHOT + 2.3.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6746be514b21..a0edd819c7f5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.3.3-SNAPSHOT + 2.3.3 diff --git a/versions.txt b/versions.txt index cc5803b705cc..585b3ce8dc04 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.3.2:2.3.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.3.3:2.3.3 \ No newline at end of file From 974ccd480afc9b8e3eaa8523e5f6223ff94dbb87 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 25 Oct 2021 16:20:11 +0000 Subject: [PATCH 1600/3441] chore: release 2.3.4-SNAPSHOT (#1680) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 548ba5f7285f..cbcee6bf1c67 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.3.3 + 2.3.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1c14dfbdf0d2..88ea25fa47fa 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.3.3 + 2.3.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.3.3 + 2.3.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ae7148f4ba4a..59d92fc63876 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.3.3 + 2.3.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -77,7 +77,7 @@ com.google.cloud google-cloud-bigquery - 2.3.3 + 2.3.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a0edd819c7f5..3394b8eb4129 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.3.3 + 2.3.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 585b3ce8dc04..faefa49f5468 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.3.3:2.3.3 \ No newline at end of file +google-cloud-bigquery:2.3.3:2.3.4-SNAPSHOT \ No newline at end of file From c1a5d7357fe4a56aaf4b55b105f3dc77402c75f2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 25 Oct 2021 21:01:52 +0200 Subject: [PATCH 1601/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.3.3 (#1681) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.3.3 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9db97d6b8b56..e97b1a04bb6b 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.3.2 + 2.3.3 ``` @@ -58,13 +58,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.3.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.3.3' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.3.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.3.3" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5361a5f150f9..df372f3aab17 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.3.2 + 2.3.3 From bef2705208abfc837d16f01758c802d817420dd4 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 26 Oct 2021 11:56:15 -0400 Subject: [PATCH 1602/3441] fix(java): java 17 dependency arguments (#1683) --- .kokoro/dependencies.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index 78fed6d6e37b..4e4085d680bd 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -37,15 +37,13 @@ function determineMavenOpts() { | sed -E 's/^(1\.[0-9]\.0).*$/\1/g' ) - case $javaVersion in - "17") + if [[ $javaVersion == 17* ]] + then # MaxPermSize is no longer supported as of jdk 17 echo -n "-Xmx1024m" - ;; - *) + else echo -n "-Xmx1024m -XX:MaxPermSize=128m" - ;; - esac + fi } export MAVEN_OPTS=$(determineMavenOpts) From 4025a5ff824d84a898391425abe55bd14fe51b60 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 26 Oct 2021 14:26:24 -0400 Subject: [PATCH 1603/3441] chore(ci): remove dependencies.sh exclusions (#1685) --- .kokoro/dependencies.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index 4e4085d680bd..586b78bb9bf1 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -65,7 +65,9 @@ function completenessCheck() { # This is stripped from the output as it is not present in the flattened pom. # Only dependencies with 'compile' or 'runtime' scope are included from original dependency list. msg "Generating dependency list using original pom..." - mvn dependency:list -f pom.xml -DincludeScope=runtime -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' | sed -e s/\\s--\\smodule.*// >.org-list.txt + # Excluding commons-codec,commons-logging from the comparison as a temp fix + # Explanation and issue filed in maven-dependency-plugin: https://issues.apache.org/jira/browse/MDEP-737 + mvn dependency:list -f pom.xml -DexcludeArtifactIds=commons-codec,commons-logging -DincludeScope=runtime -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' | sed -e s/\\s--\\smodule.*// >.org-list.txt # Output dep list generated using the flattened pom (only 'compile' and 'runtime' scopes) msg "Generating dependency list using flattened pom..." From f3c78d620c248d7c7fb153deb12d7e254e4772a4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 27 Oct 2021 00:58:25 +0200 Subject: [PATCH 1604/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v24 (#1686) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | `23.1.0` -> `24.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.0.0/compatibility-slim/23.1.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.0.0/confidence-slim/23.1.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- samples/snippets/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e97b1a04bb6b..061d58faab8c 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 23.1.0 + 24.0.0 pom import @@ -51,7 +51,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:23.1.0') +implementation platform('com.google.cloud:libraries-bom:24.0.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 727b3dbc07fc..9c273a6f8787 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 23.1.0 + 24.0.0 pom import From 6cb11db5f15e7d617bc5aa4a3ac5fdacbe515b77 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 27 Oct 2021 11:46:33 -0400 Subject: [PATCH 1605/3441] feat: induce minor version bump for lts (#1688) From ab9fcc75fd1c75fa494b795165a09f7c3895f631 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 4 Nov 2021 21:06:16 +0000 Subject: [PATCH 1606/3441] chore(java): remove pin on Apache Maven 3.8.1 from github actions (#1268) (#1692) --- .github/.OwlBot.lock.yaml | 2 +- .github/workflows/ci.yaml | 17 +---------------- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 859cc6b7a26b..5a79fcd57b79 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:d4b2141d65566523dfd523f63c6e6899ab1281463bce182a9f600e74b0511875 \ No newline at end of file + digest: sha256:ed012741acaae5d03e011244585a1f0625a596d31568967d77772aa5a0a51d5e diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 2425d7234f42..d95a11a26273 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -12,9 +12,6 @@ jobs: java: [8, 11, 17] steps: - uses: actions/checkout@v2 - - uses: stCarolas/setup-maven@v4 - with: - maven-version: 3.8.1 - uses: actions/setup-java@v2 with: distribution: zulu @@ -27,9 +24,6 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v2 - - uses: stCarolas/setup-maven@v4 - with: - maven-version: 3.8.1 - uses: actions/setup-java@v2 with: distribution: zulu @@ -45,9 +39,6 @@ jobs: java: [8, 11, 17] steps: - uses: actions/checkout@v2 - - uses: stCarolas/setup-maven@v4 - with: - maven-version: 3.8.1 - uses: actions/setup-java@v2 with: distribution: zulu @@ -58,9 +49,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: stCarolas/setup-maven@v4 - with: - maven-version: 3.8.1 - uses: actions/setup-java@v2 with: distribution: zulu @@ -73,9 +61,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: stCarolas/setup-maven@v4 - with: - maven-version: 3.8.1 - uses: actions/setup-java@v2 with: distribution: zulu @@ -83,4 +68,4 @@ jobs: - run: java -version - run: .kokoro/build.sh env: - JOB_TYPE: clirr + JOB_TYPE: clirr \ No newline at end of file From 1f46d8dd316f1c8df392f749428986d4d9c7fa07 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 5 Nov 2021 17:26:00 +0100 Subject: [PATCH 1607/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.2.0 (#1691) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 59d92fc63876..aa67ee4eb612 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ com.google.cloud google-cloud-storage - 2.1.9 + 2.2.0 test From f8f2e5e17d6542c8a3e4c7e412f6d25c61678834 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 5 Nov 2021 15:56:15 -0400 Subject: [PATCH 1608/3441] chore(test): add back test condition (#1693) Backend fix is in. Fixes #1443 --- .../test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 88695f8733d8..8460bccb786a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3202,6 +3202,7 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo assertEquals(2L, statistics.getOutputRows().longValue()); LoadJobConfiguration jobConfiguration = job.getConfiguration(); assertEquals(TABLE_SCHEMA, jobConfiguration.getSchema()); + assertNull(jobConfiguration.getSourceUris()); assertNull(job.getStatus().getError()); Page rows = bigquery.listTableData(tableId); int rowCount = 0; From e25dabb8720d46dcbc07d904b9cf81652e18367e Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Sat, 6 Nov 2021 00:36:16 +0000 Subject: [PATCH 1609/3441] Update ci.yaml (#1275) (#1694) --- .github/.OwlBot.lock.yaml | 2 +- .github/workflows/ci.yaml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 5a79fcd57b79..994dd04bfe64 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:ed012741acaae5d03e011244585a1f0625a596d31568967d77772aa5a0a51d5e + digest: sha256:fecf6bd85f19eb046d913982ea36f6d434f9a49ab0545d25e31186aa64367c0c diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index d95a11a26273..93b337c62839 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -8,6 +8,7 @@ jobs: units: runs-on: ubuntu-latest strategy: + fail-fast: false matrix: java: [8, 11, 17] steps: @@ -68,4 +69,4 @@ jobs: - run: java -version - run: .kokoro/build.sh env: - JOB_TYPE: clirr \ No newline at end of file + JOB_TYPE: clirr From 1de58e851c3e04ed29de9000d3f80459bc3bfd73 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 8 Nov 2021 21:44:26 +0000 Subject: [PATCH 1610/3441] chore: cleanup cloud RAD generation (#1269) (#1695) --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/release/publish_javadoc11.sh | 10 +++------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 994dd04bfe64..325daaa4b5a2 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:fecf6bd85f19eb046d913982ea36f6d434f9a49ab0545d25e31186aa64367c0c + digest: sha256:204b7af96e6d481f19b0ff377aa379d46bc56dd06e1cc7c523f361dd9cbfeeaa diff --git a/.kokoro/release/publish_javadoc11.sh b/.kokoro/release/publish_javadoc11.sh index d596527c8ec3..aab97234559a 100755 --- a/.kokoro/release/publish_javadoc11.sh +++ b/.kokoro/release/publish_javadoc11.sh @@ -36,13 +36,9 @@ mvn clean install -B -q -DskipTests=true export NAME=google-cloud-bigquery export VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) -# V3 generates docfx yml from javadoc -# generate yml -mvn clean site -B -q -P docFX - -# copy README to docfx-yml dir and rename index.md -cp README.md target/docfx-yml/index.md -# copy CHANGELOG to docfx-yml dir and rename history.md +# cloud RAD generation +mvn clean javadoc:aggregate -B -q -P docFX +# include CHANGELOG cp CHANGELOG.md target/docfx-yml/history.md pushd target/docfx-yml From baf3a3c7a74808343c48df4afebfbf268c937940 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 9 Nov 2021 14:46:26 +0000 Subject: [PATCH 1611/3441] chore: update jre to 11 for linter (#1278) (#1697) --- .github/.OwlBot.lock.yaml | 2 +- .github/workflows/ci.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 325daaa4b5a2..886d09496d14 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:204b7af96e6d481f19b0ff377aa379d46bc56dd06e1cc7c523f361dd9cbfeeaa + digest: sha256:14ecf64ec36f67c7bf04e3dc0f68eafcc01df3955121c38862b695e2ae7515d8 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 93b337c62839..05de1f60dcf0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -53,7 +53,7 @@ jobs: - uses: actions/setup-java@v2 with: distribution: zulu - java-version: 8 + java-version: 11 - run: java -version - run: .kokoro/build.sh env: From f34c11b3ab7c86b26751758f171bc2002e877918 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 9 Nov 2021 17:10:55 +0100 Subject: [PATCH 1612/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.2.1 (#1696) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index aa67ee4eb612..e96de64427a1 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.2.0 + 1.2.1 From e36a965bddd835eba7d6e81cd0f796fb73cc527e Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 11 Nov 2021 21:30:13 +0000 Subject: [PATCH 1613/3441] chore: update minimum java version to java 8 (#1281) (#1698) --- .github/.OwlBot.lock.yaml | 2 +- README.md | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 886d09496d14..5d788be0b547 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:14ecf64ec36f67c7bf04e3dc0f68eafcc01df3955121c38862b695e2ae7515d8 + digest: sha256:a744afda1956beb7bd6dc8d0b740a7839bbe402e34e2f4ef24589074db53ceb0 diff --git a/README.md b/README.md index 061d58faab8c..9f0ac2232a59 100644 --- a/README.md +++ b/README.md @@ -251,7 +251,7 @@ To get help, follow the instructions in the [shared Troubleshooting document][tr ## Supported Java Versions -Java 7 or above is required for using this client. +Java 8 or above is required for using this client. Google's Java client libraries, [Google Cloud Client Libraries][cloudlibs] @@ -320,7 +320,6 @@ Apache 2.0 - See [LICENSE][license] for more information. Java Version | Status ------------ | ------ -Java 7 | [![Kokoro CI][kokoro-badge-image-1]][kokoro-badge-link-1] Java 8 | [![Kokoro CI][kokoro-badge-image-2]][kokoro-badge-link-2] Java 8 OSX | [![Kokoro CI][kokoro-badge-image-3]][kokoro-badge-link-3] Java 8 Windows | [![Kokoro CI][kokoro-badge-image-4]][kokoro-badge-link-4] From 5185801797c620dba9de7e72b7dea8ddc600ed58 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Fri, 12 Nov 2021 15:57:21 -0500 Subject: [PATCH 1614/3441] fix: removing a new line character in a property (#1700) --- pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e96de64427a1..d52f96540e43 100644 --- a/pom.xml +++ b/pom.xml @@ -53,8 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20211017-1.32.1 - + v2-rev20211017-1.32.1 2.4.0 From 33ab54f1559f903ec78f6d568c0aee666b2ad804 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 12 Nov 2021 23:46:30 +0100 Subject: [PATCH 1615/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.5.0 (#1702) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d52f96540e43..403835291961 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20211017-1.32.1 - 2.4.0 + 2.5.0 From 8987086469ff3ce6320332353744b0adfbb2aefd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 15 Nov 2021 16:59:26 +0100 Subject: [PATCH 1616/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20211106-1.32.1 (#1703) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 403835291961..08f84fb6f08f 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20211017-1.32.1 + v2-rev20211106-1.32.1 2.5.0 From c0f48f89967a4d0c409790b253fcc236242f8152 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 15 Nov 2021 20:54:14 +0000 Subject: [PATCH 1617/3441] chore: release 2.4.0 (#1684) :robot: I have created a release \*beep\* \*boop\* --- ## [2.4.0](https://www.github.com/googleapis/java-bigquery/compare/v2.3.3...v2.4.0) (2021-11-15) ### Features * induce minor version bump for lts ([#1688](https://www.github.com/googleapis/java-bigquery/issues/1688)) ([6cb11db](https://www.github.com/googleapis/java-bigquery/commit/6cb11db5f15e7d617bc5aa4a3ac5fdacbe515b77)) ### Bug Fixes * **java:** java 17 dependency arguments ([#1683](https://www.github.com/googleapis/java-bigquery/issues/1683)) ([bef2705](https://www.github.com/googleapis/java-bigquery/commit/bef2705208abfc837d16f01758c802d817420dd4)) * removing a new line character in a property ([#1700](https://www.github.com/googleapis/java-bigquery/issues/1700)) ([5185801](https://www.github.com/googleapis/java-bigquery/commit/5185801797c620dba9de7e72b7dea8ddc600ed58)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20211106-1.32.1 ([#1703](https://www.github.com/googleapis/java-bigquery/issues/1703)) ([8987086](https://www.github.com/googleapis/java-bigquery/commit/8987086469ff3ce6320332353744b0adfbb2aefd)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.5.0 ([#1702](https://www.github.com/googleapis/java-bigquery/issues/1702)) ([33ab54f](https://www.github.com/googleapis/java-bigquery/commit/33ab54f1559f903ec78f6d568c0aee666b2ad804)) * update dependency com.google.cloud:google-cloud-storage to v2.2.0 ([#1691](https://www.github.com/googleapis/java-bigquery/issues/1691)) ([1f46d8d](https://www.github.com/googleapis/java-bigquery/commit/1f46d8dd316f1c8df392f749428986d4d9c7fa07)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 20 ++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 27 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a316d02bed5..1b4ca17eb5cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## [2.4.0](https://www.github.com/googleapis/java-bigquery/compare/v2.3.3...v2.4.0) (2021-11-15) + + +### Features + +* induce minor version bump for lts ([#1688](https://www.github.com/googleapis/java-bigquery/issues/1688)) ([6cb11db](https://www.github.com/googleapis/java-bigquery/commit/6cb11db5f15e7d617bc5aa4a3ac5fdacbe515b77)) + + +### Bug Fixes + +* **java:** java 17 dependency arguments ([#1683](https://www.github.com/googleapis/java-bigquery/issues/1683)) ([bef2705](https://www.github.com/googleapis/java-bigquery/commit/bef2705208abfc837d16f01758c802d817420dd4)) +* removing a new line character in a property ([#1700](https://www.github.com/googleapis/java-bigquery/issues/1700)) ([5185801](https://www.github.com/googleapis/java-bigquery/commit/5185801797c620dba9de7e72b7dea8ddc600ed58)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20211106-1.32.1 ([#1703](https://www.github.com/googleapis/java-bigquery/issues/1703)) ([8987086](https://www.github.com/googleapis/java-bigquery/commit/8987086469ff3ce6320332353744b0adfbb2aefd)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.5.0 ([#1702](https://www.github.com/googleapis/java-bigquery/issues/1702)) ([33ab54f](https://www.github.com/googleapis/java-bigquery/commit/33ab54f1559f903ec78f6d568c0aee666b2ad804)) +* update dependency com.google.cloud:google-cloud-storage to v2.2.0 ([#1691](https://www.github.com/googleapis/java-bigquery/issues/1691)) ([1f46d8d](https://www.github.com/googleapis/java-bigquery/commit/1f46d8dd316f1c8df392f749428986d4d9c7fa07)) + ### [2.3.3](https://www.github.com/googleapis/java-bigquery/compare/v2.3.2...v2.3.3) (2021-10-25) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index cbcee6bf1c67..d8c446032269 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.3.4-SNAPSHOT + 2.4.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 88ea25fa47fa..94f7bafe69e6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.3.4-SNAPSHOT + 2.4.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.3.4-SNAPSHOT + 2.4.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 08f84fb6f08f..88c3c581f34c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.3.4-SNAPSHOT + 2.4.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigquery - 2.3.4-SNAPSHOT + 2.4.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3394b8eb4129..121cc3691c41 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.3.4-SNAPSHOT + 2.4.0 diff --git a/versions.txt b/versions.txt index faefa49f5468..64215b915b92 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.3.3:2.3.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.4.0:2.4.0 \ No newline at end of file From d6f092e83034489719158a2fcc8f9f00bb885813 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 15 Nov 2021 21:06:20 +0000 Subject: [PATCH 1618/3441] chore: release 2.4.1-SNAPSHOT (#1705) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d8c446032269..75a7667d9507 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.4.0 + 2.4.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 94f7bafe69e6..4158b9b2fe8f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.4.0 + 2.4.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.4.0 + 2.4.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 88c3c581f34c..0f3a3f13336b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.4.0 + 2.4.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigquery - 2.4.0 + 2.4.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 121cc3691c41..5e429991c013 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.4.0 + 2.4.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 64215b915b92..8053328d9b5c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.4.0:2.4.0 \ No newline at end of file +google-cloud-bigquery:2.4.0:2.4.1-SNAPSHOT \ No newline at end of file From 32c34ab52641ff16ad14884f53f67848bbdee0f0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 16 Nov 2021 18:21:32 +0100 Subject: [PATCH 1619/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.6 (#1708) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.6 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 9f0ac2232a59..936d261ff31f 100644 --- a/README.md +++ b/README.md @@ -58,13 +58,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.3.3' +implementation 'com.google.cloud:google-cloud-bigquery:2.4.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.3.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.4.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index df372f3aab17..c0151a973336 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.5 + 2.1.6 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5e429991c013..62c3b271a155 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.5 + 2.1.6 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9c273a6f8787..709143ab2a19 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.5 + 2.1.6 test From a7899539d3a676861848814afec7596d2de326d4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 16 Nov 2021 23:35:37 +0100 Subject: [PATCH 1620/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.4.0 (#1710) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.4.0 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 936d261ff31f..8bfe942c1841 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.3.3 + 2.4.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c0151a973336..b94051f03e5c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.3.3 + 2.4.0 From 3e6ac614a92b492407a920601781ed654b8523c6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 16 Nov 2021 23:35:54 +0100 Subject: [PATCH 1621/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.2.1 (#1709) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-storage to v2.2.1 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0f3a3f13336b..574acd9171eb 100644 --- a/pom.xml +++ b/pom.xml @@ -113,7 +113,7 @@ com.google.cloud google-cloud-storage - 2.2.0 + 2.2.1 test From f604ea8ba93bfd3791f8993930a5f8fdcb9c333f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 16 Nov 2021 22:48:19 +0000 Subject: [PATCH 1622/3441] chore: release 2.4.1 (#1711) :robot: I have created a release \*beep\* \*boop\* --- ### [2.4.1](https://www.github.com/googleapis/java-bigquery/compare/v2.4.0...v2.4.1) (2021-11-16) ### Dependencies * update dependency com.google.cloud:google-cloud-storage to v2.2.1 ([#1709](https://www.github.com/googleapis/java-bigquery/issues/1709)) ([3e6ac61](https://www.github.com/googleapis/java-bigquery/commit/3e6ac614a92b492407a920601781ed654b8523c6)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b4ca17eb5cd..50caea76ae6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.4.1](https://www.github.com/googleapis/java-bigquery/compare/v2.4.0...v2.4.1) (2021-11-16) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v2.2.1 ([#1709](https://www.github.com/googleapis/java-bigquery/issues/1709)) ([3e6ac61](https://www.github.com/googleapis/java-bigquery/commit/3e6ac614a92b492407a920601781ed654b8523c6)) + ## [2.4.0](https://www.github.com/googleapis/java-bigquery/compare/v2.3.3...v2.4.0) (2021-11-15) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 75a7667d9507..5ca5bc86e3f9 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.4.1-SNAPSHOT + 2.4.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4158b9b2fe8f..3e4ec56c6743 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.4.1-SNAPSHOT + 2.4.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.4.1-SNAPSHOT + 2.4.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 574acd9171eb..eda32fe3142d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.4.1-SNAPSHOT + 2.4.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigquery - 2.4.1-SNAPSHOT + 2.4.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 62c3b271a155..f073aaab25dc 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.4.1-SNAPSHOT + 2.4.1 diff --git a/versions.txt b/versions.txt index 8053328d9b5c..5e60b03b8767 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.4.0:2.4.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.4.1:2.4.1 \ No newline at end of file From 496f33e13fdc6853a28e5c4ba0b50a127fa9fbeb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 16 Nov 2021 23:00:19 +0000 Subject: [PATCH 1623/3441] chore: release 2.4.2-SNAPSHOT (#1712) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5ca5bc86e3f9..00d70d0d70e2 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.4.1 + 2.4.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3e4ec56c6743..c7ca6ceef927 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.4.1 + 2.4.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.4.1 + 2.4.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index eda32fe3142d..6259be06efe4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.4.1 + 2.4.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigquery - 2.4.1 + 2.4.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f073aaab25dc..87346484e463 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.4.1 + 2.4.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 5e60b03b8767..9ff5a8c4924a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.4.1:2.4.1 \ No newline at end of file +google-cloud-bigquery:2.4.1:2.4.2-SNAPSHOT \ No newline at end of file From 63fa2bfa2357dd153527437f1769ac527e25ecd1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 17 Nov 2021 18:42:28 +0100 Subject: [PATCH 1624/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.2.2 (#1714) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `1.2.1` -> `1.2.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.2.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.2.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.2.2/compatibility-slim/1.2.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.2.2/confidence-slim/1.2.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v1.2.2`](https://togithub.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#​122-httpswwwgithubcomgoogleapisjava-shared-configcomparev121v122-2021-11-16) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.2.1...v1.2.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8bfe942c1841..ad9fa6f09bed 100644 --- a/README.md +++ b/README.md @@ -58,13 +58,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.4.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.4.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.4.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.4.1" ``` ## Authentication diff --git a/pom.xml b/pom.xml index 6259be06efe4..08adc08b5d34 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.2.1 + 1.2.2 From 6d555d57ee2d86c7fe835ded74d9931c7d7807cc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 17 Nov 2021 20:02:37 +0100 Subject: [PATCH 1625/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.4.1 (#1713) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.4.0` -> `2.4.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.4.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.4.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.4.1/compatibility-slim/2.4.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.4.1/confidence-slim/2.4.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.4.1`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​241-httpswwwgithubcomgoogleapisjava-bigquerycomparev240v241-2021-11-16) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.4.0...v2.4.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ad9fa6f09bed..b7643a88dcd2 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.4.0 + 2.4.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b94051f03e5c..81a4d65e814b 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.4.0 + 2.4.1 From 58b1bfd494a559923d31daefc22ade96aa335c6b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 19 Nov 2021 20:26:55 +0100 Subject: [PATCH 1626/3441] test(deps): update dependency org.mockito:mockito-core to v4.1.0 (#1716) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 08adc08b5d34..72dda825eceb 100644 --- a/pom.xml +++ b/pom.xml @@ -107,7 +107,7 @@ org.mockito mockito-core - 4.0.0 + 4.1.0 test From d9bbb277a6d13305fd8fc6c5ce7bd67a951c8f08 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 19 Nov 2021 20:27:08 +0100 Subject: [PATCH 1627/3441] test(deps): update datacatalog dependencies to v1.6.0 (#1715) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 72dda825eceb..1cd0886d3092 100644 --- a/pom.xml +++ b/pom.xml @@ -119,13 +119,13 @@ com.google.cloud google-cloud-datacatalog - 1.5.9 + 1.6.0 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.5.9 + 1.6.0 test From e7f1cf82449b0d7c62db5f753892c9a042da9f8f Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 22 Nov 2021 18:26:11 +0000 Subject: [PATCH 1628/3441] chore: remove enable-samples profile (#1284) (#1718) --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/build.sh | 1 - CONTRIBUTING.md | 61 +++++---------------------------------- 3 files changed, 8 insertions(+), 56 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 5d788be0b547..88d9b926c155 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:a744afda1956beb7bd6dc8d0b740a7839bbe402e34e2f4ef24589074db53ceb0 + digest: sha256:5b8c790f57cca57e6b37ba25f79291265c218cea3e6ba9714b001910ab3f1419 diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 5454c3fc5dc3..e490e6cd703b 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -91,7 +91,6 @@ samples) pushd ${SAMPLES_DIR} mvn -B \ - -Penable-samples \ -ntp \ -DtrimStackTrace=false \ -Dclirr.skip=true \ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f2dbdee06bc3..b65dd279c946 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,12 +53,12 @@ mvn -Penable-integration-tests clean verify ## Code Samples -Code Samples must be bundled in separate Maven modules, and guarded by a -Maven profile with the name `enable-samples`. +All code samples must be in compliance with the [java sample formatting guide][3]. +Code Samples must be bundled in separate Maven modules. The samples must be separate from the primary project for a few reasons: -1. Primary projects have a minimum Java version of Java 7 whereas samples have - a minimum Java version of Java 8. Due to this we need the ability to +1. Primary projects have a minimum Java version of Java 8 whereas samples can have + Java version of Java 11. Due to this we need the ability to selectively exclude samples from a build run. 2. Many code samples depend on external GCP services and need credentials to access the service. @@ -68,39 +68,16 @@ The samples must be separate from the primary project for a few reasons: ### Building ```bash -mvn -Penable-samples clean verify +mvn clean verify ``` Some samples require access to GCP services and require a service account: ```bash export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account.json -mvn -Penable-samples clean verify +mvn clean verify ``` -### Profile Config - -1. To add samples in a profile to your Maven project, add the following to your -`pom.xml` - - ```xml - - [...] - - - enable-samples - - sample - - - - [...] - - ``` - -2. [Activate](#profile-activation) the profile. -3. Define your samples in a normal Maven project in the `samples/` directory. - ### Code Formatting Code in this repo is formatted with @@ -110,30 +87,6 @@ To run formatting on your project, you can run: mvn com.coveo:fmt-maven-plugin:format ``` -### Profile Activation - -To include code samples when building and testing the project, enable the -`enable-samples` Maven profile. - -#### Command line - -To activate the Maven profile on the command line add `-Penable-samples` to your -Maven command. - -#### Maven `settings.xml` - -To activate the Maven profile in your `~/.m2/settings.xml` add an entry of -`enable-samples` following the instructions in [Active Profiles][2]. - -This method has the benefit of applying to all projects you build (and is -respected by IntelliJ IDEA) and is recommended if you are going to be -contributing samples to several projects. - -#### IntelliJ IDEA - -To activate the Maven Profile inside IntelliJ IDEA, follow the instructions in -[Activate Maven profiles][3] to activate `enable-samples`. - [1]: https://cloud.google.com/docs/authentication/getting-started#creating_a_service_account [2]: https://maven.apache.org/settings.html#Active_Profiles -[3]: https://www.jetbrains.com/help/idea/work-with-maven-profiles.html#activate_maven_profiles +[3]: https://github.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md \ No newline at end of file From 13cc6e608fd501067f7c5dcd2f5b9a03c078b065 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 1 Dec 2021 14:02:18 -0500 Subject: [PATCH 1629/3441] feat: add support for BI Engine Statistics (#1723) fixes b/205146044 --- .../google/cloud/bigquery/BiEngineReason.java | 92 ++++++++++++++++ .../google/cloud/bigquery/BiEngineStats.java | 101 ++++++++++++++++++ .../google/cloud/bigquery/JobStatistics.java | 22 ++++ .../cloud/bigquery/JobStatisticsTest.java | 12 +++ .../cloud/bigquery/it/ITBigQueryTest.java | 8 ++ 5 files changed, 235 insertions(+) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineReason.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineStats.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineReason.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineReason.java new file mode 100644 index 000000000000..e682ba24611d --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineReason.java @@ -0,0 +1,92 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import javax.annotation.Nullable; + +@AutoValue +public abstract class BiEngineReason implements Serializable { + + @AutoValue.Builder + public abstract static class Builder { + + /** + * High-level BI Engine reason for partial or disabled acceleration. + * + * @param code code or {@code null} for none + */ + public abstract Builder setCode(String code); + + /** + * Free form human-readable reason for partial or disabled acceleration. + * + * @param message message or {@code null} for none + */ + public abstract Builder setMessage(String message); + + /** Creates a {@code BiEngineReason} object. */ + public abstract BiEngineReason build(); + } + + /** + * High-level BI Engine reason for partial or disabled acceleration. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract String getCode(); + + /** + * Free form human-readable reason for partial or disabled acceleration. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract String getMessage(); + + public abstract Builder toBuilder(); + + public static Builder newBuilder() { + return new AutoValue_BiEngineReason.Builder(); + } + + com.google.api.services.bigquery.model.BiEngineReason toPb() { + com.google.api.services.bigquery.model.BiEngineReason biEngineReasonPb = + new com.google.api.services.bigquery.model.BiEngineReason(); + if (getCode() != null) { + biEngineReasonPb.setCode(getCode()); + } + if (getMessage() != null) { + biEngineReasonPb.setMessage(getMessage()); + } + return biEngineReasonPb; + } + + static BiEngineReason fromPb( + com.google.api.services.bigquery.model.BiEngineReason biEngineReasonPb) { + Builder builder = newBuilder(); + if (biEngineReasonPb.getCode() != null) { + builder.setCode(biEngineReasonPb.getCode()); + } + if (biEngineReasonPb.getMessage() != null) { + builder.setMessage(biEngineReasonPb.getMessage()); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineStats.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineStats.java new file mode 100644 index 000000000000..34d6c43268e2 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineStats.java @@ -0,0 +1,101 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.BiEngineStatistics; +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; +import javax.annotation.Nullable; + +/** BIEngineStatistics contains query statistics specific to the use of BI Engine. */ +@AutoValue +public abstract class BiEngineStats implements Serializable { + + @AutoValue.Builder + public abstract static class Builder { + /** + * Specifies which mode of BI Engine acceleration was performed (if any). + * + * @param biEngineMode biEngineMode or {@code null} for none + */ + public abstract Builder setBiEngineMode(String biEngineMode); + + /** + * In case of DISABLED or PARTIAL bi_engine_mode, these contain the explanatory reasons as to + * why BI Engine could not accelerate. In case the full query was accelerated, this field is not + * populated. + * + * @param biEngineReasons biEngineReasons or {@code null} for none + */ + public abstract Builder setBiEngineReasons(List biEngineReasons); + + /** Creates a @code BiEngineStats} object. */ + public abstract BiEngineStats build(); + } + + /** + * Specifies which mode of BI Engine acceleration was performed (if any). + * + * @return value or {@code null} for none + */ + @Nullable + public abstract String getBiEngineMode(); + + /** + * In case of DISABLED or PARTIAL bi_engine_mode, these contain the explanatory reasons as to why + * BI Engine could not accelerate. In case the full query was accelerated, this field is not + * populated. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract List getBiEngineReasons(); + + public abstract Builder toBuilder(); + + public static Builder newBuilder() { + return new AutoValue_BiEngineStats.Builder(); + } + + BiEngineStatistics toPb() { + BiEngineStatistics biEngineStatisticsPb = new BiEngineStatistics(); + if (getBiEngineMode() != null) { + biEngineStatisticsPb.setBiEngineMode(getBiEngineMode()); + } + if (getBiEngineReasons() != null) { + biEngineStatisticsPb.setBiEngineReasons( + getBiEngineReasons().stream().map(BiEngineReason::toPb).collect(Collectors.toList())); + } + return biEngineStatisticsPb; + } + + static BiEngineStats fromPb(BiEngineStatistics biEngineStatisticsPb) { + Builder builder = newBuilder(); + if (biEngineStatisticsPb.getBiEngineMode() != null) { + builder.setBiEngineMode(biEngineStatisticsPb.getBiEngineMode()); + } + if (biEngineStatisticsPb.getBiEngineReasons() != null) { + builder.setBiEngineReasons( + biEngineStatisticsPb.getBiEngineReasons().stream() + .map(BiEngineReason::fromPb) + .collect(Collectors.toList())); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 999f8d2fe3e3..ab9fdabb39d4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -321,6 +321,7 @@ public static class QueryStatistics extends JobStatistics { private static final long serialVersionUID = 7539354109226732353L; + private final BiEngineStats biEngineStats; private final Integer billingTier; private final Boolean cacheHit; private final String ddlOperationPerformed; @@ -402,6 +403,7 @@ public static StatementType[] values() { static final class Builder extends JobStatistics.Builder { + private BiEngineStats biEngineStats; private Integer billingTier; private Boolean cacheHit; private String ddlOperationPerformed; @@ -425,6 +427,10 @@ private Builder() {} private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsPb) { super(statisticsPb); if (statisticsPb.getQuery() != null) { + if (statisticsPb.getQuery().getBiEngineStatistics() != null) { + this.biEngineStats = + BiEngineStats.fromPb(statisticsPb.getQuery().getBiEngineStatistics()); + } this.billingTier = statisticsPb.getQuery().getBillingTier(); this.cacheHit = statisticsPb.getQuery().getCacheHit(); this.ddlOperationPerformed = statisticsPb.getQuery().getDdlOperationPerformed(); @@ -468,6 +474,11 @@ private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsP } } + Builder setBiEngineStats(BiEngineStats biEngineStats) { + this.biEngineStats = biEngineStats; + return self(); + } + Builder setBillingTier(Integer billingTier) { this.billingTier = billingTier; return self(); @@ -566,6 +577,7 @@ QueryStatistics build() { private QueryStatistics(Builder builder) { super(builder); + this.biEngineStats = builder.biEngineStats; this.billingTier = builder.billingTier; this.cacheHit = builder.cacheHit; this.ddlOperationPerformed = builder.ddlOperationPerformed; @@ -585,6 +597,11 @@ private QueryStatistics(Builder builder) { this.schema = builder.schema; } + /** Returns query statistics specific to the use of BI Engine. */ + public BiEngineStats getBiEngineStats() { + return biEngineStats; + } + /** Returns the billing tier for the job. */ public Integer getBillingTier() { return billingTier; @@ -701,6 +718,7 @@ public Schema getSchema() { @Override ToStringHelper toStringHelper() { return super.toStringHelper() + .add("biEngineStats", biEngineStats) .add("billingTier", billingTier) .add("cacheHit", cacheHit) .add("totalBytesBilled", totalBytesBilled) @@ -722,6 +740,7 @@ public final boolean equals(Object obj) { public final int hashCode() { return Objects.hash( baseHashCode(), + biEngineStats, billingTier, cacheHit, totalBytesBilled, @@ -733,6 +752,9 @@ public final int hashCode() { @Override com.google.api.services.bigquery.model.JobStatistics toPb() { JobStatistics2 queryStatisticsPb = new JobStatistics2(); + if (biEngineStats != null) { + queryStatisticsPb.setBiEngineStatistics(biEngineStats.toPb()); + } queryStatisticsPb.setBillingTier(billingTier); queryStatisticsPb.setCacheHit(cacheHit); queryStatisticsPb.setDdlOperationPerformed(ddlOperationPerformed); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index 87fae41b58a2..0dad46e9e8db 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -36,6 +36,16 @@ public class JobStatisticsTest { + private static final BiEngineReason BI_ENGINE_REASON = + BiEngineReason.newBuilder() + .setMessage("Detected unsupported join type") + .setCode("UNSUPPORTED_SQL_TEXT") + .build(); + private static final BiEngineStats BI_ENGINE_STATS = + BiEngineStats.newBuilder() + .setBiEngineReasons(ImmutableList.of(BI_ENGINE_REASON)) + .setBiEngineMode("DISABLED") + .build(); private static final Integer BILLING_TIER = 42; private static final Boolean CACHE_HIT = true; private static final String DDL_OPERATION_PERFORMED = "SKIP"; @@ -154,6 +164,7 @@ public class JobStatisticsTest { .setCreationTimestamp(CREATION_TIME) .setEndTime(END_TIME) .setStartTime(START_TIME) + .setBiEngineStats(BI_ENGINE_STATS) .setBillingTier(BILLING_TIER) .setCacheHit(CACHE_HIT) .setDDLOperationPerformed(DDL_OPERATION_PERFORMED) @@ -246,6 +257,7 @@ public void testBuilder() { assertEquals(CREATION_TIME, QUERY_STATISTICS.getCreationTime()); assertEquals(START_TIME, QUERY_STATISTICS.getStartTime()); assertEquals(END_TIME, QUERY_STATISTICS.getEndTime()); + assertEquals(BI_ENGINE_STATS, QUERY_STATISTICS.getBiEngineStats()); assertEquals(BILLING_TIER, QUERY_STATISTICS.getBillingTier()); assertEquals(CACHE_HIT, QUERY_STATISTICS.getCacheHit()); assertEquals(DDL_OPERATION_PERFORMED, QUERY_STATISTICS.getDdlOperationPerformed()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 8460bccb786a..479a80e89fd2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2900,6 +2900,14 @@ public void testQueryJob() throws InterruptedException, TimeoutException { assertTrue(bigquery.delete(destinationTable)); Job queryJob = bigquery.getJob(remoteJob.getJobId()); JobStatistics.QueryStatistics statistics = queryJob.getStatistics(); + if (statistics.getBiEngineStats() != null) { + assertEquals(statistics.getBiEngineStats().getBiEngineMode(), "DISABLED"); + assertEquals( + statistics.getBiEngineStats().getBiEngineReasons().get(0).getCode(), "OTHER_REASON"); + assertEquals( + statistics.getBiEngineStats().getBiEngineReasons().get(0).getMessage(), + "Query output to destination table is not supported."); + } assertNotNull(statistics.getQueryPlan()); } From b07d12eb8894e62726e30b35fa6720fbd3c420af Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 2 Dec 2021 02:46:17 +0000 Subject: [PATCH 1630/3441] chore: release 2.5.0 (#1724) :robot: I have created a release \*beep\* \*boop\* --- ## [2.5.0](https://www.github.com/googleapis/java-bigquery/compare/v2.4.1...v2.5.0) (2021-12-01) ### Features * add support for BI Engine Statistics ([#1723](https://www.github.com/googleapis/java-bigquery/issues/1723)) ([13cc6e6](https://www.github.com/googleapis/java-bigquery/commit/13cc6e608fd501067f7c5dcd2f5b9a03c078b065)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 50caea76ae6c..4e23ce49a0ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.5.0](https://www.github.com/googleapis/java-bigquery/compare/v2.4.1...v2.5.0) (2021-12-01) + + +### Features + +* add support for BI Engine Statistics ([#1723](https://www.github.com/googleapis/java-bigquery/issues/1723)) ([13cc6e6](https://www.github.com/googleapis/java-bigquery/commit/13cc6e608fd501067f7c5dcd2f5b9a03c078b065)) + ### [2.4.1](https://www.github.com/googleapis/java-bigquery/compare/v2.4.0...v2.4.1) (2021-11-16) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 00d70d0d70e2..9ca71411f751 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.4.2-SNAPSHOT + 2.5.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c7ca6ceef927..4eeeae45db39 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.4.2-SNAPSHOT + 2.5.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.4.2-SNAPSHOT + 2.5.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1cd0886d3092..f8ed583ed598 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.4.2-SNAPSHOT + 2.5.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigquery - 2.4.2-SNAPSHOT + 2.5.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 87346484e463..897db4586e3b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.4.2-SNAPSHOT + 2.5.0 diff --git a/versions.txt b/versions.txt index 9ff5a8c4924a..0b56dac06b27 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.4.1:2.4.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.5.0:2.5.0 \ No newline at end of file From bbf2915a70e2d358b25eb631b34e33ec18917ed8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 2 Dec 2021 03:00:44 +0000 Subject: [PATCH 1631/3441] chore: release 2.5.1-SNAPSHOT (#1725) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9ca71411f751..2757f58db5ea 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.5.0 + 2.5.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4eeeae45db39..19aef0b1db1c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.5.0 + 2.5.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.5.0 + 2.5.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f8ed583ed598..c37d4f343076 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.5.0 + 2.5.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigquery - 2.5.0 + 2.5.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 897db4586e3b..33798b73c551 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.5.0 + 2.5.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0b56dac06b27..c8c300aeff78 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.5.0:2.5.0 \ No newline at end of file +google-cloud-bigquery:2.5.0:2.5.1-SNAPSHOT \ No newline at end of file From a3ba13decd8e6bb329b0ab1d85704d48409a1820 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 2 Dec 2021 20:50:04 +0100 Subject: [PATCH 1632/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.5.0 (#1726) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.5.0 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b7643a88dcd2..5be608437b1e 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.4.1 + 2.5.0 ``` @@ -58,13 +58,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.4.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.5.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.4.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.5.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 81a4d65e814b..8287c43e9962 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.4.1 + 2.5.0 From cc8d2e0da885983e86edb1071ae5b8ddbebbbaf7 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 2 Dec 2021 14:50:29 -0500 Subject: [PATCH 1633/3441] chore: fix regex in formatter to match string (#1296) (#1728) Source-Link: https://github.com/googleapis/synthtool/commit/a14177060a552462b9642baad132bd17f47ecd6f Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:0ab8611cd29e7aba8413c6f83ed1734b60fddf845b4a37808b742302d32dd043 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 88d9b926c155..fd19c5541fa5 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:5b8c790f57cca57e6b37ba25f79291265c218cea3e6ba9714b001910ab3f1419 + digest: sha256:0ab8611cd29e7aba8413c6f83ed1734b60fddf845b4a37808b742302d32dd043 From 3b4b0755eea06f8d1e5c290fc9aae500676e7213 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 3 Dec 2021 17:18:37 +0100 Subject: [PATCH 1634/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.5.1 (#1731) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `2.5.0` -> `2.5.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.5.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.5.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.5.1/compatibility-slim/2.5.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.5.1/confidence-slim/2.5.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v2.5.1`](https://togithub.com/googleapis/java-shared-dependencies/blob/master/CHANGELOG.md#​251-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare250v251-2021-12-03) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v2.5.0...v2.5.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c37d4f343076..266f43b95464 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20211106-1.32.1 - 2.5.0 + 2.5.1
    From 6d503e887d44d76a10fee6c9eaad69ae926b2489 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 3 Dec 2021 18:06:12 +0100 Subject: [PATCH 1635/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.3.0 (#1730) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8287c43e9962..903a7915b8a0 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.2.0 + 2.3.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 33798b73c551..1252d7bbce93 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.2.0 + 2.3.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 709143ab2a19..69d68ada6bf9 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.2.0 + 2.3.0 test From 4b3102126b0fca64ed90d46004fb387f48f0ca6c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 3 Dec 2021 17:32:22 +0000 Subject: [PATCH 1636/3441] chore: release 2.5.1 (#1732) :robot: I have created a release \*beep\* \*boop\* --- ### [2.5.1](https://www.github.com/googleapis/java-bigquery/compare/v2.5.0...v2.5.1) (2021-12-03) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v2.3.0 ([#1730](https://www.github.com/googleapis/java-bigquery/issues/1730)) ([6d503e8](https://www.github.com/googleapis/java-bigquery/commit/6d503e887d44d76a10fee6c9eaad69ae926b2489)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.5.1 ([#1731](https://www.github.com/googleapis/java-bigquery/issues/1731)) ([3b4b075](https://www.github.com/googleapis/java-bigquery/commit/3b4b0755eea06f8d1e5c290fc9aae500676e7213)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e23ce49a0ad..3afff959c27b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.5.1](https://www.github.com/googleapis/java-bigquery/compare/v2.5.0...v2.5.1) (2021-12-03) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v2.3.0 ([#1730](https://www.github.com/googleapis/java-bigquery/issues/1730)) ([6d503e8](https://www.github.com/googleapis/java-bigquery/commit/6d503e887d44d76a10fee6c9eaad69ae926b2489)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.5.1 ([#1731](https://www.github.com/googleapis/java-bigquery/issues/1731)) ([3b4b075](https://www.github.com/googleapis/java-bigquery/commit/3b4b0755eea06f8d1e5c290fc9aae500676e7213)) + ## [2.5.0](https://www.github.com/googleapis/java-bigquery/compare/v2.4.1...v2.5.0) (2021-12-01) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2757f58db5ea..11702beed637 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.5.1-SNAPSHOT + 2.5.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 19aef0b1db1c..5e4fd42fb569 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.5.1-SNAPSHOT + 2.5.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.5.1-SNAPSHOT + 2.5.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 266f43b95464..267afdb5c72f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.5.1-SNAPSHOT + 2.5.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigquery - 2.5.1-SNAPSHOT + 2.5.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1252d7bbce93..04da45ef81bb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.5.1-SNAPSHOT + 2.5.1 diff --git a/versions.txt b/versions.txt index c8c300aeff78..1b2ae277d4c4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.5.0:2.5.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.5.1:2.5.1 \ No newline at end of file From d5f67240c73c7cb0a2f559f1399fa5e0479eddb4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 3 Dec 2021 17:52:22 +0000 Subject: [PATCH 1637/3441] chore: release 2.5.2-SNAPSHOT (#1733) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 11702beed637..f5f80664e982 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.5.1 + 2.5.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5e4fd42fb569..fd3826200515 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.5.1 + 2.5.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.5.1 + 2.5.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 267afdb5c72f..12e616bf3efa 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.5.1 + 2.5.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -76,7 +76,7 @@ com.google.cloud google-cloud-bigquery - 2.5.1 + 2.5.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 04da45ef81bb..4b918bade33f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.5.1 + 2.5.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 1b2ae277d4c4..d55ef60c2f60 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.5.1:2.5.1 \ No newline at end of file +google-cloud-bigquery:2.5.1:2.5.2-SNAPSHOT \ No newline at end of file From 2db8a1e68bef904c2855826a64fa21ab0408e1ef Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 3 Dec 2021 20:41:06 +0100 Subject: [PATCH 1638/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.7 (#1734) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.7 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 5be608437b1e..e9e938e13bb2 100644 --- a/README.md +++ b/README.md @@ -58,13 +58,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.5.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.5.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.5.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.5.1" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 903a7915b8a0..7be83fac1b8e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.6 + 2.1.7 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4b918bade33f..1ec96921cfb8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.6 + 2.1.7 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 69d68ada6bf9..aac0235b650a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.6 + 2.1.7 test From 585875e776e17660c58f9f8fe8385f13833bca57 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 6 Dec 2021 18:04:20 +0000 Subject: [PATCH 1639/3441] fix(java): add -ntp flag to native image testing command (#1299) (#1738) --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/build.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index fd19c5541fa5..3d2f8282468e 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:0ab8611cd29e7aba8413c6f83ed1734b60fddf845b4a37808b742302d32dd043 + digest: sha256:a4d7b2cfc6a9d6b378a6b2458740eae15fcab28854bd23dad3a15102d2e47c87 diff --git a/.kokoro/build.sh b/.kokoro/build.sh index e490e6cd703b..d01df07d4bc0 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -71,7 +71,7 @@ integration) ;; graalvm) # Run Unit and Integration Tests with Native Image - mvn test -Pnative -Penable-integration-tests + mvn -ntp -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; samples) From 8438282fff6f722c77a48374455d41c3a9ae8f84 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 6 Dec 2021 23:26:10 +0100 Subject: [PATCH 1640/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.5.1 (#1736) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.5.0` -> `2.5.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.5.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.5.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.5.1/compatibility-slim/2.5.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.5.1/confidence-slim/2.5.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.5.1`](https://togithub.com/googleapis/java-bigquery/blob/master/CHANGELOG.md#​251-httpswwwgithubcomgoogleapisjava-bigquerycomparev250v251-2021-12-03) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.5.0...v2.5.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e9e938e13bb2..0db82955b89a 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.5.0 + 2.5.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7be83fac1b8e..2ad44ea93d7f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.5.0 + 2.5.1 From 2022301b39390f20796b8c5b3d6ee0e82aa127aa Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 6 Dec 2021 23:28:20 +0100 Subject: [PATCH 1641/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.2.2 (#1740) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.2.1` -> `2.2.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.2.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.2.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.2.2/compatibility-slim/2.2.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.2.2/confidence-slim/2.2.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.2.2`](https://togithub.com/googleapis/java-storage/blob/master/CHANGELOG.md#​222-httpswwwgithubcomgoogleapisjava-storagecomparev221v222-2021-12-06) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.2.1...v2.2.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 12e616bf3efa..94f9662560ef 100644 --- a/pom.xml +++ b/pom.xml @@ -113,7 +113,7 @@ com.google.cloud google-cloud-storage - 2.2.1 + 2.2.2 test From 776ff1004592f62799ff0244a448d6911bcca5be Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 7 Dec 2021 00:02:02 +0100 Subject: [PATCH 1642/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20211129-1.32.1 (#1737) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 94f9662560ef..8a885c4cb584 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20211106-1.32.1 + v2-rev20211129-1.32.1 2.5.1
    From b2720805f4e092ba2f1b258f3b7ded3eabea5bae Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 7 Dec 2021 00:22:10 +0100 Subject: [PATCH 1643/3441] chore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.2.0 (#1729) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud.samples:shared-configuration](https://togithub.com/GoogleCloudPlatform/java-repo-tools) | `1.0.23` -> `1.2.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud.samples:shared-configuration/1.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud.samples:shared-configuration/1.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud.samples:shared-configuration/1.2.0/compatibility-slim/1.0.23)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud.samples:shared-configuration/1.2.0/confidence-slim/1.0.23)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    GoogleCloudPlatform/java-repo-tools ### [`v1.2.0`](https://togithub.com/GoogleCloudPlatform/java-repo-tools/compare/v1.0.24...v1.2.0) [Compare Source](https://togithub.com/GoogleCloudPlatform/java-repo-tools/compare/v1.0.24...v1.2.0) ### [`v1.0.24`](https://togithub.com/GoogleCloudPlatform/java-repo-tools/compare/v1.0.23...v1.0.24) [Compare Source](https://togithub.com/GoogleCloudPlatform/java-repo-tools/compare/v1.0.23...v1.0.24)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2ad44ea93d7f..265ae2881d32 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.23 + 1.2.0 diff --git a/samples/pom.xml b/samples/pom.xml index f2bb68bedb83..4e9299af44da 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -34,7 +34,7 @@ com.google.cloud.samples shared-configuration - 1.0.23 + 1.2.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1ec96921cfb8..b0e519aedae5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.0.23 + 1.2.0 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index aac0235b650a..cb277cd1b666 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -29,7 +29,7 @@ com.google.cloud.samples shared-configuration - 1.0.23 + 1.2.0 From 2f31a0a4f491eca25cbd3992e48f94214bfd605b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 7 Dec 2021 17:43:56 +0100 Subject: [PATCH 1644/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.3.1 (#1741) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 265ae2881d32..5a3766eb5d7e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.3.0 + 2.3.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b0e519aedae5..42120f0cbcba 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.3.0 + 2.3.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index cb277cd1b666..e0f8c13df2e9 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.3.0 + 2.3.1 test From 5212417b856520a17f601c4c6e36db8becce9669 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Tue, 7 Dec 2021 12:24:19 -0500 Subject: [PATCH 1645/3441] chore: make owlbot check required (#1743) --- .github/sync-repo-settings.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 583a840c4db8..960ae2ba055c 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -16,6 +16,7 @@ branchProtectionRules: - units (11) - 'Kokoro - Test: Integration' - cla/google + - OwlBot Post Processor - pattern: 1.127.12-sp isAdminEnforced: true requiredApprovingReviewCount: 1 @@ -60,6 +61,7 @@ branchProtectionRules: - units (11) - 'Kokoro - Test: Integration' - cla/google + - OwlBot Post Processor permissionRules: - team: api-bigquery permission: admin From 3b9e90b74d2fee4c3f490a536c48625dde433594 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 7 Dec 2021 19:23:08 +0100 Subject: [PATCH 1646/3441] test(deps): update dependency com.google.cloud:google-cloud-datacatalog to v1.6.1 (#1735) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(deps): update dependency com.google.cloud:google-cloud-datacatalog to v1.6.1 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Update README.md * update version of proto-google-cloud-datacatalog-v1 to 1.6.1 too Strange that renovate-bot did not propose this change too. Co-authored-by: Owl Bot Co-authored-by: Stephanie Wang --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 8a885c4cb584..7f00e1175b6e 100644 --- a/pom.xml +++ b/pom.xml @@ -119,13 +119,13 @@ com.google.cloud google-cloud-datacatalog - 1.6.0 + 1.6.1 test com.google.api.grpc proto-google-cloud-datacatalog-v1 - 1.6.0 + 1.6.1 test From 92e5d02ff25511233b15f07844bb8b13de2dc72f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 8 Dec 2021 17:05:34 +0100 Subject: [PATCH 1647/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.4.0 (#1746) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5a3766eb5d7e..092fd82b2318 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.3.1 + 2.4.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 42120f0cbcba..a4d95e2203af 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.3.1 + 2.4.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e0f8c13df2e9..1ae73891e08b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.3.1 + 2.4.0 test From faf5897d8fa3b32ddad38eee88886edb031b2a26 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 11 Dec 2021 00:34:16 +0100 Subject: [PATCH 1648/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v24.1.0 (#1748) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | `24.0.0` -> `24.1.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.1.0/compatibility-slim/24.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.1.0/confidence-slim/24.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- samples/snippets/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 0db82955b89a..939da9572e51 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 24.0.0 + 24.1.0 pom import @@ -51,7 +51,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:24.0.0') +implementation platform('com.google.cloud:libraries-bom:24.1.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 1ae73891e08b..bd9ece0d55b6 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 24.0.0 + 24.1.0 pom import From 97a61dc90fb701986a51a12c9c83b7138894307a Mon Sep 17 00:00:00 2001 From: Franklin Whaite <70151215+franklinWhaite@users.noreply.github.com> Date: Tue, 14 Dec 2021 15:00:09 -0500 Subject: [PATCH 1649/3441] feat: create Job retry for rate limit exceeded with status code 200 (#1744) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * retrying job create with new job id each time * retrying for rate limit exceeded on create Job regardless of the status code 200 * removing flattened pom * refactoring, removing unnecesary variables, adding comments * linting code * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * refactoring, removing comments Co-authored-by: Owl Bot --- .../google/cloud/bigquery/BigQueryImpl.java | 37 ++++++++++++------- .../bigquery/BigQueryRetryAlgorithm.java | 25 ++++++++++--- .../cloud/bigquery/BigQueryImplTest.java | 24 ++++++++++++ 3 files changed, 67 insertions(+), 19 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 7d0e4c5550ef..16814e99a395 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -347,15 +347,9 @@ public JobId get() { @InternalApi("visible for testing") Job create(JobInfo jobInfo, Supplier idProvider, JobOption... options) { - boolean idRandom = false; - if (jobInfo.getJobId() == null) { - jobInfo = jobInfo.toBuilder().setJobId(idProvider.get()).build(); - idRandom = true; - } - final com.google.api.services.bigquery.model.Job jobPb = - jobInfo.setProjectId(getOptions().getProjectId()).toPb(); - final Map optionsMap = optionMap(options); + final boolean idRandom = (jobInfo.getJobId() == null); + final Map optionsMap = optionMap(options); BigQueryException createException; // NOTE(pongad): This double-try structure is admittedly odd. // translateAndThrow itself throws, and pretends to return an exception only @@ -363,21 +357,36 @@ Job create(JobInfo jobInfo, Supplier idProvider, JobOption... options) { // This makes it difficult to translate without throwing. // Fixing this entails some work on BaseServiceException.translate. // Since that affects a bunch of APIs, we should fix this as a separate change. + final JobId[] finalJobId = new JobId[1]; try { try { return Job.fromPb( this, - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override public com.google.api.services.bigquery.model.Job call() { - return bigQueryRpc.create(jobPb, optionsMap); + if (idRandom) { + // re-generate a new random job with the same jobInfo when jobId is not + // provided by the user + JobInfo recreatedJobInfo = + jobInfo.toBuilder().setJobId(idProvider.get()).build(); + com.google.api.services.bigquery.model.Job newJobPb = + recreatedJobInfo.setProjectId(getOptions().getProjectId()).toPb(); + finalJobId[0] = recreatedJobInfo.getJobId(); + return bigQueryRpc.create(newJobPb, optionsMap); + } else { + com.google.api.services.bigquery.model.Job jobPb = + jobInfo.setProjectId(getOptions().getProjectId()).toPb(); + return bigQueryRpc.create(jobPb, optionsMap); + } } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock())); - } catch (RetryHelper.RetryHelperException e) { + EXCEPTION_HANDLER, + getOptions().getClock(), + DEFAULT_RETRY_CONFIG)); + } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } catch (BigQueryException e) { @@ -396,7 +405,7 @@ public com.google.api.services.bigquery.model.Job call() { // fetch a job created by someone else. Job job; try { - job = getJob(jobInfo.getJobId()); + job = getJob(finalJobId[0]); } catch (BigQueryException e) { throw createException; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java index a4e642191ce3..af472430fcf1 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java @@ -72,7 +72,8 @@ public boolean shouldRetry( // the exception messages boolean shouldRetry = (shouldRetryBasedOnResult(context, previousThrowable, previousResponse) - || shouldRetryBasedOnBigQueryRetryConfig(previousThrowable, bigQueryRetryConfig)) + || shouldRetryBasedOnBigQueryRetryConfig( + previousThrowable, bigQueryRetryConfig, previousResponse)) && shouldRetryBasedOnTiming(context, nextAttemptSettings); if (LOG.isLoggable(Level.FINEST)) { @@ -92,13 +93,26 @@ public boolean shouldRetry( } private boolean shouldRetryBasedOnBigQueryRetryConfig( - Throwable previousThrowable, BigQueryRetryConfig bigQueryRetryConfig) { + Throwable previousThrowable, + BigQueryRetryConfig bigQueryRetryConfig, + ResponseT previousResponse) { /* We are deciding if a given error should be retried on the basis of error message. Cannot rely on Error/Status code as for example error code 400 (which is not retriable) could be thrown due to rateLimitExceed, which is retriable */ - String errorDesc; - if (previousThrowable != null && (errorDesc = previousThrowable.getMessage()) != null) { + String errorDesc = null; + if (previousThrowable != null) { + errorDesc = previousThrowable.getMessage(); + } else if (previousResponse != null) { + /* + In some cases error messages may come without an exception + e.g. status code 200 with a rate limit exceeded for job create + in these cases there is now previousThrowable so we need to check previousResponse + */ + errorDesc = previousResponse.toString(); + } + + if (errorDesc != null) { errorDesc = errorDesc.toLowerCase(); // for case insensitive comparison for (Iterator retriableMessages = bigQueryRetryConfig.getRetriableErrorMessages().iterator(); @@ -161,7 +175,8 @@ public TimedAttemptSettings createNextAttempt( if (!((shouldRetryBasedOnResult(context, previousThrowable, previousResponse) || shouldRetryBasedOnBigQueryRetryConfig( previousThrowable, - bigQueryRetryConfig)))) { // Calling shouldRetryBasedOnBigQueryRetryConfig to check if + bigQueryRetryConfig, + previousResponse)))) { // Calling shouldRetryBasedOnBigQueryRetryConfig to check if // the error message could be retried return null; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 760c84f32a73..b00d4b86073b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -1529,6 +1529,30 @@ public void testCreateJobSuccess() { verify(bigqueryRpcMock).create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); } + @Test + public void testCreateJobFailureShouldRetry() { + when(bigqueryRpcMock.create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) + .thenThrow(new BigQueryException(500, "InternalError")) + .thenThrow(new BigQueryException(502, "Bad Gateway")) + .thenThrow(new BigQueryException(503, "Service Unavailable")) + .thenThrow( + new BigQueryException( + 400, RATE_LIMIT_ERROR_MSG)) // retrial on based on RATE_LIMIT_EXCEEDED_MSG + .thenThrow(new BigQueryException(200, RATE_LIMIT_ERROR_MSG)) + .thenReturn(newJobPb()); + + bigquery = options.getService(); + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + + ((BigQueryImpl) bigquery).create(JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY)); + verify(bigqueryRpcMock, times(6)).create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); + } + @Test public void testCreateJobWithSelectedFields() { when(bigqueryRpcMock.create( From 7509e1c5ae202def5e9ce130d5af55ad39f40c6b Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 15 Dec 2021 16:16:10 -0500 Subject: [PATCH 1650/3441] chore: update README to add missing closing tag (#1749) Related to #1745 --- README.md | 1 + samples/snippets/pom.xml | 2 ++ 2 files changed, 3 insertions(+) diff --git a/README.md b/README.md index 939da9572e51..131446e042e1 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud google-cloud-bigquery + ``` diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index bd9ece0d55b6..a0e99f44ab6a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -100,7 +100,9 @@ 1.1.3 test + + From a87ac462b83cc0cc76f81ddf409f494c9a29185b Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 16 Dec 2021 10:34:51 -0500 Subject: [PATCH 1651/3441] chore: import datacatalog BOM to avoid renovate-bot issues (#1751) Towards #1747 --- google-cloud-bigquery/pom.xml | 18 ++++++++++-------- pom.xml | 20 ++++++++------------ 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index fd3826200515..576ec66e9e6b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -29,14 +29,6 @@ com.google.http-client google-http-client-jackson2 - - com.google.cloud - google-cloud-datacatalog - - - com.google.api.grpc - proto-google-cloud-datacatalog-v1 - com.google.cloud google-cloud-storage @@ -116,6 +108,16 @@ assertj-core test + + com.google.cloud + google-cloud-datacatalog + test + + + com.google.api.grpc + proto-google-cloud-datacatalog-v1 + test + diff --git a/pom.xml b/pom.xml index 7f00e1175b6e..764177002436 100644 --- a/pom.xml +++ b/pom.xml @@ -67,6 +67,14 @@ import + + com.google.cloud + google-cloud-datacatalog-bom + 1.6.1 + pom + import + + org.checkerframework checker-compat-qual @@ -116,18 +124,6 @@ 2.2.2 test - - com.google.cloud - google-cloud-datacatalog - 1.6.1 - test - - - com.google.api.grpc - proto-google-cloud-datacatalog-v1 - 1.6.1 - test - org.assertj assertj-core From 22a9e4c5183289696aa624378461b8e5c1b2954c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 16 Dec 2021 18:09:40 +0100 Subject: [PATCH 1652/3441] test(deps): update dependency org.mockito:mockito-core to v4.2.0 (#1752) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 764177002436..9c6aba59e410 100644 --- a/pom.xml +++ b/pom.xml @@ -115,7 +115,7 @@ org.mockito mockito-core - 4.1.0 + 4.2.0 test From a62a9f4fdda465b8c9e2f67f111d1b1b4a067903 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 16 Dec 2021 13:53:11 -0500 Subject: [PATCH 1653/3441] docs(samples): update UpdateTableExpirationIT to fix failing IT. (#1753) --- .../java/com/example/bigquery/UpdateTableExpirationIT.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java index e9f03e87e501..1e3b8980f9cf 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java @@ -24,8 +24,9 @@ import com.google.cloud.bigquery.StandardSQLTypeName; import java.io.ByteArrayOutputStream; import java.io.PrintStream; +import java.time.Instant; +import java.time.temporal.ChronoUnit; import java.util.UUID; -import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; import org.junit.After; @@ -81,7 +82,8 @@ public void tearDown() { @Test public void testUpdateTableExpiration() { - Long newExpiration = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); + // Set new expiration to a week from Now + Long newExpiration = Instant.now().plus(7, ChronoUnit.DAYS).toEpochMilli(); UpdateTableExpiration.updateTableExpiration(BIGQUERY_DATASET_NAME, tableName, newExpiration); assertThat(bout.toString()).contains("Table expiration updated successfully"); } From 0b7d91135222505f0eb01e8b40095156a073b62e Mon Sep 17 00:00:00 2001 From: shollyman Date: Mon, 20 Dec 2021 08:08:30 -0800 Subject: [PATCH 1654/3441] docs: rename alter materialized view to update (#1754) Alter implies a DDL sql ALTER MATERIALIZED VIEW statement, the code sample is purely an API update example. --- README.md | 2 +- ...edView.java => UpdateMaterializedView.java} | 18 +++++++++--------- ...ewIT.java => UpdateMaterializedViewIT.java} | 10 +++++----- 3 files changed, 15 insertions(+), 15 deletions(-) rename samples/snippets/src/main/java/com/example/bigquery/{AlterMaterializedView.java => UpdateMaterializedView.java} (79%) rename samples/snippets/src/test/java/com/example/bigquery/{AlterMaterializedViewIT.java => UpdateMaterializedViewIT.java} (90%) diff --git a/README.md b/README.md index 131446e042e1..cb2c2394876f 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,6 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | --------------------------- | --------------------------------- | ------ | | Add Column Load Append | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | | Add Empty Column | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | -| Alter Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java) | | Auth Drive Scope | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | | Auth Snippets | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | | Auth User Flow | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | @@ -235,6 +234,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Update Dataset Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java) | | Update Dataset Partition Expiration | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java) | | Update Iam Policy | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java) | +| Update Materialized View | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateMaterializedView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateMaterializedView.java) | | Update Model Description | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java) | | Update Routine | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java) | | Update Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java) | diff --git a/samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java b/samples/snippets/src/main/java/com/example/bigquery/UpdateMaterializedView.java similarity index 79% rename from samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java rename to samples/snippets/src/main/java/com/example/bigquery/UpdateMaterializedView.java index 8ce25196f361..4de127344386 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AlterMaterializedView.java +++ b/samples/snippets/src/main/java/com/example/bigquery/UpdateMaterializedView.java @@ -16,7 +16,7 @@ package com.example.bigquery; -// [START bigquery_alter_materialized_view] +// [START bigquery_update_materialized_view] import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; @@ -24,17 +24,17 @@ import com.google.cloud.bigquery.Table; import com.google.cloud.bigquery.TableId; -// Sample to alter materialized view -public class AlterMaterializedView { +// Sample to update materialized view +public class UpdateMaterializedView { public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String datasetName = "MY_DATASET_NAME"; String materializedViewName = "MY_MATERIALIZED_VIEW_NAME"; - alterMaterializedView(datasetName, materializedViewName); + updateMaterializedView(datasetName, materializedViewName); } - public static void alterMaterializedView(String datasetName, String materializedViewName) { + public static void updateMaterializedView(String datasetName, String materializedViewName) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -45,17 +45,17 @@ public static void alterMaterializedView(String datasetName, String materialized // Get existing materialized view Table table = bigquery.getTable(tableId); MaterializedViewDefinition materializedViewDefinition = table.getDefinition(); - // Alter materialized view + // Update materialized view materializedViewDefinition .toBuilder() .setEnableRefresh(true) .setRefreshIntervalMs(1000L) .build(); table.toBuilder().setDefinition(materializedViewDefinition).build().update(); - System.out.println("Materialized view altered successfully"); + System.out.println("Materialized view updated successfully"); } catch (BigQueryException e) { - System.out.println("Materialized view was not altered. \n" + e.toString()); + System.out.println("Materialized view was not updated. \n" + e.toString()); } } } -// [END bigquery_alter_materialized_view] +// [END bigquery_update_materialized_view] diff --git a/samples/snippets/src/test/java/com/example/bigquery/AlterMaterializedViewIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateMaterializedViewIT.java similarity index 90% rename from samples/snippets/src/test/java/com/example/bigquery/AlterMaterializedViewIT.java rename to samples/snippets/src/test/java/com/example/bigquery/UpdateMaterializedViewIT.java index 3cc5dfa7c415..54ed2194a432 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/AlterMaterializedViewIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateMaterializedViewIT.java @@ -32,7 +32,7 @@ import org.junit.BeforeClass; import org.junit.Test; -public class AlterMaterializedViewIT { +public class UpdateMaterializedViewIT { private static final String ID = UUID.randomUUID().toString().substring(0, 8); private final Logger log = Logger.getLogger(this.getClass().getName()); @@ -65,7 +65,7 @@ public void setUp() { System.setOut(out); tableName = "MY_TABLE_NAME_TEST_" + ID; - materializedViewName = "MY_ALTER_MATERIALIZED_VIEW_NAME_TEST_" + ID; + materializedViewName = "MY_UPDATE_MATERIALIZED_VIEW_NAME_TEST_" + ID; Schema schema = Schema.of( @@ -95,8 +95,8 @@ public void tearDown() { } @Test - public void testAlterMaterializedView() { - AlterMaterializedView.alterMaterializedView(BIGQUERY_DATASET_NAME, materializedViewName); - assertThat(bout.toString()).contains("Materialized view altered successfully"); + public void testUpdateMaterializedView() { + UpdateMaterializedView.updateMaterializedView(BIGQUERY_DATASET_NAME, materializedViewName); + assertThat(bout.toString()).contains("Materialized view updated successfully"); } } From 51e89710d60faea4826235fd7e887217f67ec2f4 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Tue, 21 Dec 2021 14:40:32 -0500 Subject: [PATCH 1655/3441] chore: add enumeration type of library (#1756) --- .repo-metadata.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.repo-metadata.json b/.repo-metadata.json index 1305be96ff16..7ca892467f7a 100644 --- a/.repo-metadata.json +++ b/.repo-metadata.json @@ -12,5 +12,6 @@ "distribution_name": "com.google.cloud:google-cloud-bigquery", "codeowner_team": "@googleapis/api-bigquery", "api_id": "bigquery.googleapis.com", + "library_type": "REST", "requires_billing": true } From 5a2bcbc7197fa75a464ed62d3e3df3bd43652b9d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 27 Dec 2021 19:56:26 +0100 Subject: [PATCH 1656/3441] deps: update jmh.version to v1.34 (#1758) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update jmh.version to v1.34 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- benchmark/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cb2c2394876f..34a849280ccc 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:24.1.0') +implementation platform('com.google.cloud:libraries-bom:24.1.1') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f5f80664e982..f1bb430f13fb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.33 + 1.34 benchmark From ad6ba29e28830116a1349897259b96426f0dadb2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 27 Dec 2021 20:10:11 +0100 Subject: [PATCH 1657/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v24.1.1 (#1757) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | `24.1.0` -> `24.1.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.1.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.1.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.1.1/compatibility-slim/24.1.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.1.1/confidence-slim/24.1.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/snippets/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 34a849280ccc..3f53801ceeff 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 24.1.0 + 24.1.1 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a0e99f44ab6a..be5a9645eafe 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 24.1.0 + 24.1.1 pom import From 629123fd10ead24d4365caf3974e19a506aa7a8e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 4 Jan 2022 15:58:12 +0000 Subject: [PATCH 1658/3441] chore: release 2.6.0 (#1739) :robot: I have created a release \*beep\* \*boop\* --- ## [2.6.0](https://www.github.com/googleapis/java-bigquery/compare/v2.5.1...v2.6.0) (2021-12-27) ### Features * create Job retry for rate limit exceeded with status code 200 ([#1744](https://www.github.com/googleapis/java-bigquery/issues/1744)) ([97a61dc](https://www.github.com/googleapis/java-bigquery/commit/97a61dc90fb701986a51a12c9c83b7138894307a)) ### Bug Fixes * **java:** add -ntp flag to native image testing command ([#1299](https://www.github.com/googleapis/java-bigquery/issues/1299)) ([#1738](https://www.github.com/googleapis/java-bigquery/issues/1738)) ([585875e](https://www.github.com/googleapis/java-bigquery/commit/585875e776e17660c58f9f8fe8385f13833bca57)) ### Documentation * rename alter materialized view to update ([#1754](https://www.github.com/googleapis/java-bigquery/issues/1754)) ([0b7d911](https://www.github.com/googleapis/java-bigquery/commit/0b7d91135222505f0eb01e8b40095156a073b62e)) * **samples:** update UpdateTableExpirationIT to fix failing IT. ([#1753](https://www.github.com/googleapis/java-bigquery/issues/1753)) ([a62a9f4](https://www.github.com/googleapis/java-bigquery/commit/a62a9f4fdda465b8c9e2f67f111d1b1b4a067903)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20211129-1.32.1 ([#1737](https://www.github.com/googleapis/java-bigquery/issues/1737)) ([776ff10](https://www.github.com/googleapis/java-bigquery/commit/776ff1004592f62799ff0244a448d6911bcca5be)) * update dependency com.google.cloud:google-cloud-bigtable to v2.3.1 ([#1741](https://www.github.com/googleapis/java-bigquery/issues/1741)) ([2f31a0a](https://www.github.com/googleapis/java-bigquery/commit/2f31a0a4f491eca25cbd3992e48f94214bfd605b)) * update dependency com.google.cloud:google-cloud-bigtable to v2.4.0 ([#1746](https://www.github.com/googleapis/java-bigquery/issues/1746)) ([92e5d02](https://www.github.com/googleapis/java-bigquery/commit/92e5d02ff25511233b15f07844bb8b13de2dc72f)) * update dependency com.google.cloud:google-cloud-storage to v2.2.2 ([#1740](https://www.github.com/googleapis/java-bigquery/issues/1740)) ([2022301](https://www.github.com/googleapis/java-bigquery/commit/2022301b39390f20796b8c5b3d6ee0e82aa127aa)) * update jmh.version to v1.34 ([#1758](https://www.github.com/googleapis/java-bigquery/issues/1758)) ([5a2bcbc](https://www.github.com/googleapis/java-bigquery/commit/5a2bcbc7197fa75a464ed62d3e3df3bd43652b9d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 34 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3afff959c27b..2aef61767a4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ # Changelog +## [2.6.0](https://www.github.com/googleapis/java-bigquery/compare/v2.5.1...v2.6.0) (2021-12-27) + + +### Features + +* create Job retry for rate limit exceeded with status code 200 ([#1744](https://www.github.com/googleapis/java-bigquery/issues/1744)) ([97a61dc](https://www.github.com/googleapis/java-bigquery/commit/97a61dc90fb701986a51a12c9c83b7138894307a)) + + +### Bug Fixes + +* **java:** add -ntp flag to native image testing command ([#1299](https://www.github.com/googleapis/java-bigquery/issues/1299)) ([#1738](https://www.github.com/googleapis/java-bigquery/issues/1738)) ([585875e](https://www.github.com/googleapis/java-bigquery/commit/585875e776e17660c58f9f8fe8385f13833bca57)) + + +### Documentation + +* rename alter materialized view to update ([#1754](https://www.github.com/googleapis/java-bigquery/issues/1754)) ([0b7d911](https://www.github.com/googleapis/java-bigquery/commit/0b7d91135222505f0eb01e8b40095156a073b62e)) +* **samples:** update UpdateTableExpirationIT to fix failing IT. ([#1753](https://www.github.com/googleapis/java-bigquery/issues/1753)) ([a62a9f4](https://www.github.com/googleapis/java-bigquery/commit/a62a9f4fdda465b8c9e2f67f111d1b1b4a067903)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20211129-1.32.1 ([#1737](https://www.github.com/googleapis/java-bigquery/issues/1737)) ([776ff10](https://www.github.com/googleapis/java-bigquery/commit/776ff1004592f62799ff0244a448d6911bcca5be)) +* update dependency com.google.cloud:google-cloud-bigtable to v2.3.1 ([#1741](https://www.github.com/googleapis/java-bigquery/issues/1741)) ([2f31a0a](https://www.github.com/googleapis/java-bigquery/commit/2f31a0a4f491eca25cbd3992e48f94214bfd605b)) +* update dependency com.google.cloud:google-cloud-bigtable to v2.4.0 ([#1746](https://www.github.com/googleapis/java-bigquery/issues/1746)) ([92e5d02](https://www.github.com/googleapis/java-bigquery/commit/92e5d02ff25511233b15f07844bb8b13de2dc72f)) +* update dependency com.google.cloud:google-cloud-storage to v2.2.2 ([#1740](https://www.github.com/googleapis/java-bigquery/issues/1740)) ([2022301](https://www.github.com/googleapis/java-bigquery/commit/2022301b39390f20796b8c5b3d6ee0e82aa127aa)) +* update jmh.version to v1.34 ([#1758](https://www.github.com/googleapis/java-bigquery/issues/1758)) ([5a2bcbc](https://www.github.com/googleapis/java-bigquery/commit/5a2bcbc7197fa75a464ed62d3e3df3bd43652b9d)) + ### [2.5.1](https://www.github.com/googleapis/java-bigquery/compare/v2.5.0...v2.5.1) (2021-12-03) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f1bb430f13fb..aff3a530e600 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.5.2-SNAPSHOT + 2.6.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 576ec66e9e6b..62bd66425cfd 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.5.2-SNAPSHOT + 2.6.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.5.2-SNAPSHOT + 2.6.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9c6aba59e410..8a7dd43003d6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.5.2-SNAPSHOT + 2.6.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.5.2-SNAPSHOT + 2.6.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a4d95e2203af..a733801707bb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.5.2-SNAPSHOT + 2.6.0 diff --git a/versions.txt b/versions.txt index d55ef60c2f60..b8903da9c1ff 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.5.1:2.5.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.6.0:2.6.0 \ No newline at end of file From 11584ed798704e89fecabc5cf49f846baceea821 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 4 Jan 2022 16:12:11 +0000 Subject: [PATCH 1659/3441] chore: release 2.6.1-SNAPSHOT (#1764) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index aff3a530e600..112c9d317944 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.6.0 + 2.6.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 62bd66425cfd..21ca1c86ae37 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.6.0 + 2.6.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.6.0 + 2.6.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8a7dd43003d6..91aa6ecfb6f7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.6.0 + 2.6.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.6.0 + 2.6.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a733801707bb..ad84ee43e463 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.6.0 + 2.6.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index b8903da9c1ff..a67820d0c3e9 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.6.0:2.6.0 \ No newline at end of file +google-cloud-bigquery:2.6.0:2.6.1-SNAPSHOT \ No newline at end of file From 1f530ea4d140d929318f8cebed0864010b6b07e4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 4 Jan 2022 18:29:17 +0100 Subject: [PATCH 1660/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.6.0 (#1765) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.6.0 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3f53801ceeff..776d50cde71e 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.5.1 + 2.6.0 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.5.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.6.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.5.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.6.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 092fd82b2318..1dc831fafd08 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.5.1 + 2.6.0 From 536398115b5567f09b32de00f64f712ce811ae6c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 4 Jan 2022 17:34:53 -0500 Subject: [PATCH 1661/3441] fix(java): Pass missing integration test flags to native image test commands (#1309) (#1766) Source-Link: https://github.com/googleapis/synthtool/commit/21f4a8daa6419908a002eeaf5e42525cb8d16d1d Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:b5ce87328633e27aa3e65d42e84cc722519859349760cdad48c7b5051b519a7d Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/build.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 3d2f8282468e..2b0252c5b268 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:a4d7b2cfc6a9d6b378a6b2458740eae15fcab28854bd23dad3a15102d2e47c87 + digest: sha256:b5ce87328633e27aa3e65d42e84cc722519859349760cdad48c7b5051b519a7d diff --git a/.kokoro/build.sh b/.kokoro/build.sh index d01df07d4bc0..c8676f15c5a0 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -71,7 +71,7 @@ integration) ;; graalvm) # Run Unit and Integration Tests with Native Image - mvn -ntp -Pnative -Penable-integration-tests test + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; samples) From 5ef85b2009abe42ef822a67497da1a9718346c89 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 6 Jan 2022 16:36:49 +0100 Subject: [PATCH 1662/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.2.4 (#1769) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.2.4 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 776d50cde71e..228d31b01607 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:24.1.1') +implementation platform('com.google.cloud:libraries-bom:24.1.2') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/pom.xml b/pom.xml index 91aa6ecfb6f7..d55df99a8e40 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.2.2 + 1.2.4 From d4ae6e720c5f38bdf71e1bb1ecf949d3a3a5747a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 6 Jan 2022 16:37:07 +0100 Subject: [PATCH 1663/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.5.0 (#1770) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 1dc831fafd08..e155fb597e6d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.4.0 + 2.5.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ad84ee43e463..e5b94edd40ce 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.4.0 + 2.5.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index be5a9645eafe..33b091cc94f8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.4.0 + 2.5.0 test From 40b87cddbb51b343d28ddf1aab92cb85b46cc712 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 7 Jan 2022 02:46:42 +0100 Subject: [PATCH 1664/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v24.1.2 (#1773) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | `24.1.1` -> `24.1.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.1.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.1.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.1.2/compatibility-slim/24.1.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.1.2/confidence-slim/24.1.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/snippets/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 228d31b01607..0d030bc1e39c 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 24.1.1 + 24.1.2 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 33b091cc94f8..7e8d7205c2c6 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 24.1.1 + 24.1.2 pom import From 53db89d6d20aa29480b1583393c28749875001f5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 7 Jan 2022 16:08:31 +0100 Subject: [PATCH 1665/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.6.0 (#1774) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `2.5.1` -> `2.6.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.6.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.6.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.6.0/compatibility-slim/2.5.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.6.0/confidence-slim/2.5.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v2.6.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/HEAD/CHANGELOG.md#​260-httpswwwgithubcomgoogleapisjava-shared-dependenciescompare251v260-2022-01-07) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v2.5.1...v2.6.0) ##### Bug Fixes - **java:** add -ntp flag to native image testing command ([#​1299](https://www.togithub.com/googleapis/java-shared-dependencies/issues/1299)) ([#​546](https://www.togithub.com/googleapis/java-shared-dependencies/issues/546)) ([d8bb8d9](https://www.github.com/googleapis/java-shared-dependencies/commit/d8bb8d9d8e3b8c582f768cd3164e8580ec334511)) - **java:** run Maven in plain console-friendly mode ([#​1301](https://www.togithub.com/googleapis/java-shared-dependencies/issues/1301)) ([#​557](https://www.togithub.com/googleapis/java-shared-dependencies/issues/557)) ([6b57d08](https://www.github.com/googleapis/java-shared-dependencies/commit/6b57d08816ec6c1dfb637cae022624e896930ad8)) ##### Dependencies - gRPC upgrade to 1.43.2 ([#​567](https://www.togithub.com/googleapis/java-shared-dependencies/issues/567)) ([c946655](https://www.github.com/googleapis/java-shared-dependencies/commit/c94665571f26d24fbbb3f89ef5a3db99663bfdba)) - update dependency com.google.api-client:google-api-client-bom to v1.33.0 ([#​563](https://www.togithub.com/googleapis/java-shared-dependencies/issues/563)) ([0aedddb](https://www.github.com/googleapis/java-shared-dependencies/commit/0aedddb9a535753767d56f5910f355c7a1c8509c)) - update dependency com.google.api:api-common to v2.1.2 ([2f154a3](https://www.github.com/googleapis/java-shared-dependencies/commit/2f154a3ff759211438c72859e98b314c7ff8405f)) - update dependency com.google.http-client:google-http-client-bom to v1.41.0 ([#​562](https://www.togithub.com/googleapis/java-shared-dependencies/issues/562)) ([6da0735](https://www.github.com/googleapis/java-shared-dependencies/commit/6da0735d4db9df998d11c549488a024b800bed65)) - update dependency io.grpc:grpc-bom to v1.43.1 ([#​553](https://www.togithub.com/googleapis/java-shared-dependencies/issues/553)) ([b787c8f](https://www.github.com/googleapis/java-shared-dependencies/commit/b787c8f2032b7ffc9797158c3ff214b7813f34b7)) - update dependency org.apache.httpcomponents:httpcore to v4.4.15 ([#​550](https://www.togithub.com/googleapis/java-shared-dependencies/issues/550)) ([e2d3dba](https://www.github.com/googleapis/java-shared-dependencies/commit/e2d3dbad6dd54c117abb5ab1b6137cfee4e5a32b)) - update dependency org.checkerframework:checker-qual to v3.20.0 ([#​549](https://www.togithub.com/googleapis/java-shared-dependencies/issues/549)) ([586df59](https://www.github.com/googleapis/java-shared-dependencies/commit/586df5949d4ddca11d0705d696882c32d8436c31)) - update gax.version to v2.8.0 ([#​564](https://www.togithub.com/googleapis/java-shared-dependencies/issues/564)) ([9ad5d4f](https://www.github.com/googleapis/java-shared-dependencies/commit/9ad5d4f5385753a0c5739ef400f5d346e3342b84)) - update gax.version to v2.8.1 ([2f154a3](https://www.github.com/googleapis/java-shared-dependencies/commit/2f154a3ff759211438c72859e98b314c7ff8405f)) - update google.common-protos.version to v2.7.1 ([#​561](https://www.togithub.com/googleapis/java-shared-dependencies/issues/561)) ([9aa860d](https://www.github.com/googleapis/java-shared-dependencies/commit/9aa860d92f745f1d4382eb16439bf17ac6ca8ae9)) - update google.core.version to v2.3.5 ([#​565](https://www.togithub.com/googleapis/java-shared-dependencies/issues/565)) ([2f154a3](https://www.github.com/googleapis/java-shared-dependencies/commit/2f154a3ff759211438c72859e98b314c7ff8405f)) - update iam.version to v1.2.0 ([#​547](https://www.togithub.com/googleapis/java-shared-dependencies/issues/547)) ([3232c82](https://www.github.com/googleapis/java-shared-dependencies/commit/3232c828b628cb604a200b3e569e56e758e5e11d)) - upgrading protobuf to 3.19.2 ([#​560](https://www.togithub.com/googleapis/java-shared-dependencies/issues/560)) ([7ef3325](https://www.github.com/googleapis/java-shared-dependencies/commit/7ef33250f5473348d3546210b7a534360f476101)) ##### [2.5.1](https://www.github.com/googleapis/java-shared-dependencies/compare/2.5.0...v2.5.1) (2021-12-03) ##### Dependencies - update dependency com.google.api:api-common to v2.1.1 ([#​533](https://www.togithub.com/googleapis/java-shared-dependencies/issues/533)) ([4e23adb](https://www.github.com/googleapis/java-shared-dependencies/commit/4e23adb666dfaa18ae8bf869aca030153de16d62)) - update gax.version to v2.7.1 ([#​544](https://www.togithub.com/googleapis/java-shared-dependencies/issues/544)) ([5a0c480](https://www.github.com/googleapis/java-shared-dependencies/commit/5a0c480671fa834e600edc6ac6fe77967d1b79b3)) - update google.common-protos.version to v2.7.0 ([#​542](https://www.togithub.com/googleapis/java-shared-dependencies/issues/542)) ([af97eb5](https://www.github.com/googleapis/java-shared-dependencies/commit/af97eb5d9cff397080fdb3d4a6dbf7c2692e0358)) - update google.core.version to v2.3.3 ([#​534](https://www.togithub.com/googleapis/java-shared-dependencies/issues/534)) ([885acef](https://www.github.com/googleapis/java-shared-dependencies/commit/885acefe4ff5313eb53dc43b4825ca597b97dcfd))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d55df99a8e40..4d83da174266 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20211129-1.32.1 - 2.5.1 + 2.6.0
    From 20dba8301927800528476748fd6a6e8de0dc0e18 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 7 Jan 2022 17:48:16 +0000 Subject: [PATCH 1666/3441] chore: release 2.6.1 (#1772) :robot: I have created a release \*beep\* \*boop\* --- ### [2.6.1](https://www.github.com/googleapis/java-bigquery/compare/v2.6.0...v2.6.1) (2022-01-07) ### Bug Fixes * **java:** Pass missing integration test flags to native image test commands ([#1309](https://www.github.com/googleapis/java-bigquery/issues/1309)) ([#1766](https://www.github.com/googleapis/java-bigquery/issues/1766)) ([5363981](https://www.github.com/googleapis/java-bigquery/commit/536398115b5567f09b32de00f64f712ce811ae6c)) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v2.5.0 ([#1770](https://www.github.com/googleapis/java-bigquery/issues/1770)) ([d4ae6e7](https://www.github.com/googleapis/java-bigquery/commit/d4ae6e720c5f38bdf71e1bb1ecf949d3a3a5747a)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.6.0 ([#1774](https://www.github.com/googleapis/java-bigquery/issues/1774)) ([53db89d](https://www.github.com/googleapis/java-bigquery/commit/53db89d6d20aa29480b1583393c28749875001f5)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 13 +++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2aef61767a4a..a023e72fba4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +### [2.6.1](https://www.github.com/googleapis/java-bigquery/compare/v2.6.0...v2.6.1) (2022-01-07) + + +### Bug Fixes + +* **java:** Pass missing integration test flags to native image test commands ([#1309](https://www.github.com/googleapis/java-bigquery/issues/1309)) ([#1766](https://www.github.com/googleapis/java-bigquery/issues/1766)) ([5363981](https://www.github.com/googleapis/java-bigquery/commit/536398115b5567f09b32de00f64f712ce811ae6c)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v2.5.0 ([#1770](https://www.github.com/googleapis/java-bigquery/issues/1770)) ([d4ae6e7](https://www.github.com/googleapis/java-bigquery/commit/d4ae6e720c5f38bdf71e1bb1ecf949d3a3a5747a)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.6.0 ([#1774](https://www.github.com/googleapis/java-bigquery/issues/1774)) ([53db89d](https://www.github.com/googleapis/java-bigquery/commit/53db89d6d20aa29480b1583393c28749875001f5)) + ## [2.6.0](https://www.github.com/googleapis/java-bigquery/compare/v2.5.1...v2.6.0) (2021-12-27) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 112c9d317944..166f8ed3e37d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.6.1-SNAPSHOT + 2.6.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 21ca1c86ae37..6bda68ee0b8c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.6.1-SNAPSHOT + 2.6.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.6.1-SNAPSHOT + 2.6.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4d83da174266..c47c85d060ef 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.6.1-SNAPSHOT + 2.6.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.6.1-SNAPSHOT + 2.6.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e5b94edd40ce..fc16ee3102ea 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.6.1-SNAPSHOT + 2.6.1 diff --git a/versions.txt b/versions.txt index a67820d0c3e9..a5519e67de66 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.6.0:2.6.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.6.1:2.6.1 \ No newline at end of file From 863d61cf7e24ca2f46bd08e12cc649be933d23b9 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 7 Jan 2022 18:08:21 +0000 Subject: [PATCH 1667/3441] chore: release 2.6.2-SNAPSHOT (#1776) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 166f8ed3e37d..ca2dbeeeceb2 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.6.1 + 2.6.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6bda68ee0b8c..88141a427f81 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.6.1 + 2.6.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.6.1 + 2.6.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c47c85d060ef..74ecd9eeb4c6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.6.1 + 2.6.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.6.1 + 2.6.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index fc16ee3102ea..f7d703c0dc6a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.6.1 + 2.6.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index a5519e67de66..0340d54194be 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.6.1:2.6.1 \ No newline at end of file +google-cloud-bigquery:2.6.1:2.6.2-SNAPSHOT \ No newline at end of file From a898e718ac5deed699abf1f5e5e7b8c97a317c77 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 7 Jan 2022 20:50:00 +0100 Subject: [PATCH 1668/3441] build(deps): update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.3.0 (#1775) --- google-cloud-bigquery/pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 88141a427f81..7e4a2bdcabb9 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -134,7 +134,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.2.0 + 3.3.0 add-source diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e155fb597e6d..00086823ef35 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -92,7 +92,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.2.0 + 3.3.0 add-snippets-source diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f7d703c0dc6a..9649bbfe2929 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -90,7 +90,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.2.0 + 3.3.0 add-snippets-source From 536be1a41769a39855cd401f227ab61b9b6eb75a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 9 Jan 2022 02:42:19 +0100 Subject: [PATCH 1669/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.8 (#1777) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.8 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 0d030bc1e39c..f8215abeea09 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.6.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.6.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.6.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.6.1" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 00086823ef35..8796c2a10fce 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.7 + 2.1.8 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9649bbfe2929..54612ef075d9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.7 + 2.1.8 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 7e8d7205c2c6..dd62c87bd97a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.7 + 2.1.8 test From b7b34b1f20c2486dfc855aa6be5ec76eb3ac79e8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 9 Jan 2022 02:42:34 +0100 Subject: [PATCH 1670/3441] test(deps): update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.6.2 (#1778) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(deps): update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.6.2 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 74ecd9eeb4c6..5deaa92ecd61 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.6.1 + 1.6.2 pom import From 925d22f8e142d7d19d40d229147e777c94b2c293 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 9 Jan 2022 02:42:49 +0100 Subject: [PATCH 1671/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.2.3 (#1779) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-storage to v2.2.3 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5deaa92ecd61..a457254fbbe4 100644 --- a/pom.xml +++ b/pom.xml @@ -121,7 +121,7 @@ com.google.cloud google-cloud-storage - 2.2.2 + 2.2.3 test From 60c4c4470d77467f68e876c6d841df1f4e98dc20 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 9 Jan 2022 02:43:03 +0100 Subject: [PATCH 1672/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.5.1 (#1780) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-bigtable to v2.5.1 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8796c2a10fce..6928463840c7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.5.0 + 2.5.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 54612ef075d9..4c7f129ce394 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.5.0 + 2.5.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index dd62c87bd97a..6f3c794a9236 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.5.0 + 2.5.1 test From 3cdb082aac261da0564d30f8e16e12c1b5ea46c0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 9 Jan 2022 02:43:16 +0100 Subject: [PATCH 1673/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.6.1 (#1781) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.6.1 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f8215abeea09..64ce005bf28a 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.6.0 + 2.6.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6928463840c7..4ea8fd0bc76e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.6.0 + 2.6.1 From 6c292dddba117ee0d4b18d8af9f4e4802214a4c4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sun, 9 Jan 2022 01:56:22 +0000 Subject: [PATCH 1674/3441] chore: release 2.6.2 (#1782) :robot: I have created a release \*beep\* \*boop\* --- ### [2.6.2](https://www.github.com/googleapis/java-bigquery/compare/v2.6.1...v2.6.2) (2022-01-09) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v2.5.1 ([#1780](https://www.github.com/googleapis/java-bigquery/issues/1780)) ([60c4c44](https://www.github.com/googleapis/java-bigquery/commit/60c4c4470d77467f68e876c6d841df1f4e98dc20)) * update dependency com.google.cloud:google-cloud-storage to v2.2.3 ([#1779](https://www.github.com/googleapis/java-bigquery/issues/1779)) ([925d22f](https://www.github.com/googleapis/java-bigquery/commit/925d22f8e142d7d19d40d229147e777c94b2c293)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ README.md | 2 +- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 8 files changed, 17 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a023e72fba4a..eda95ce17434 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.6.2](https://www.github.com/googleapis/java-bigquery/compare/v2.6.1...v2.6.2) (2022-01-09) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v2.5.1 ([#1780](https://www.github.com/googleapis/java-bigquery/issues/1780)) ([60c4c44](https://www.github.com/googleapis/java-bigquery/commit/60c4c4470d77467f68e876c6d841df1f4e98dc20)) +* update dependency com.google.cloud:google-cloud-storage to v2.2.3 ([#1779](https://www.github.com/googleapis/java-bigquery/issues/1779)) ([925d22f](https://www.github.com/googleapis/java-bigquery/commit/925d22f8e142d7d19d40d229147e777c94b2c293)) + ### [2.6.1](https://www.github.com/googleapis/java-bigquery/compare/v2.6.0...v2.6.1) (2022-01-07) diff --git a/README.md b/README.md index 64ce005bf28a..f8215abeea09 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.6.1 + 2.6.0 ``` diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ca2dbeeeceb2..1ecbd8236874 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.6.2-SNAPSHOT + 2.6.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7e4a2bdcabb9..948b87671e4a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.6.2-SNAPSHOT + 2.6.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.6.2-SNAPSHOT + 2.6.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a457254fbbe4..df1183cee764 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.6.2-SNAPSHOT + 2.6.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.6.2-SNAPSHOT + 2.6.2 diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4ea8fd0bc76e..6928463840c7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.6.1 + 2.6.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4c7f129ce394..411763a3b25c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.6.2-SNAPSHOT + 2.6.2 diff --git a/versions.txt b/versions.txt index 0340d54194be..9a4015d7e272 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.6.1:2.6.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.6.2:2.6.2 \ No newline at end of file From 103e1bc5631b349c4396928e85a6f3967609576a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sun, 9 Jan 2022 02:10:22 +0000 Subject: [PATCH 1675/3441] chore: release 2.6.3-SNAPSHOT (#1783) :robot: I have created a release \*beep\* \*boop\* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1ecbd8236874..9b9a7fc81e08 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.6.2 + 2.6.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 948b87671e4a..6796b91c8b23 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.6.2 + 2.6.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.6.2 + 2.6.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index df1183cee764..f27e2b424d2b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.6.2 + 2.6.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.6.2 + 2.6.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 411763a3b25c..371cd008df93 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.6.2 + 2.6.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 9a4015d7e272..6baef69bb667 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.6.2:2.6.2 \ No newline at end of file +google-cloud-bigquery:2.6.2:2.6.3-SNAPSHOT \ No newline at end of file From 29667f9b5d0c97a21b8d3d4bfab33c5ad9cbe81b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 9 Jan 2022 21:58:19 +0100 Subject: [PATCH 1676/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.6.2 (#1784) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.6.2 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f8215abeea09..f3f05f044a86 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.6.0 + 2.6.2 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.6.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.6.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.6.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.6.2" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6928463840c7..4fc33bfbcab5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.6.0 + 2.6.2 From e7bf122010026f5347cb9b6dda867c4fc87c201c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 10 Jan 2022 19:20:24 +0000 Subject: [PATCH 1677/3441] chore(owlbot-java): disable re-writing clirr file in owlbot java post-processor (#1320) (#1787) --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/build.sh | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 2b0252c5b268..20c6ee3c30ca 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:b5ce87328633e27aa3e65d42e84cc722519859349760cdad48c7b5051b519a7d + digest: sha256:efbfc5e9ff713005a037941f8ebcc0c69cc630e3ad934675ee26868705a30897 diff --git a/.kokoro/build.sh b/.kokoro/build.sh index c8676f15c5a0..f5a684ca35db 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -47,15 +47,15 @@ set +e case ${JOB_TYPE} in test) - mvn test -B -Dclirr.skip=true -Denforcer.skip=true + mvn test -B -ntp -Dclirr.skip=true -Denforcer.skip=true RETURN_CODE=$? ;; lint) - mvn com.coveo:fmt-maven-plugin:check + mvn com.coveo:fmt-maven-plugin:check -B -ntp RETURN_CODE=$? ;; javadoc) - mvn javadoc:javadoc javadoc:test-javadoc + mvn javadoc:javadoc javadoc:test-javadoc -B -ntp RETURN_CODE=$? ;; integration) @@ -104,7 +104,7 @@ samples) fi ;; clirr) - mvn -B -Denforcer.skip=true clirr:check + mvn -B -ntp -Denforcer.skip=true clirr:check RETURN_CODE=$? ;; *) From 69fcabf478c6fab23c4da3fcc516f820cc178a5b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 11 Jan 2022 00:40:04 +0100 Subject: [PATCH 1678/3441] deps: update dependency org.assertj:assertj-core to v3 (#1786) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f27e2b424d2b..30898a62df84 100644 --- a/pom.xml +++ b/pom.xml @@ -128,7 +128,7 @@ org.assertj assertj-core - 2.9.1 + 3.22.0 test From da3c1815bd74394e84397b65af0d2318b527b8ae Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Mon, 10 Jan 2022 18:58:21 -0500 Subject: [PATCH 1679/3441] chore: change name to api_shortname in .repo-metadata.json (#1788) --- .repo-metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.repo-metadata.json b/.repo-metadata.json index 7ca892467f7a..7f15ca25609d 100644 --- a/.repo-metadata.json +++ b/.repo-metadata.json @@ -1,5 +1,5 @@ { - "name": "bigquery", + "api_shortname": "bigquery", "name_pretty": "Cloud BigQuery", "product_documentation": "https://cloud.google.com/bigquery", "client_documentation": "https://cloud.google.com/java/docs/reference/google-cloud-bigquery/latest/history", From 7d75f4583573c171cab3aecf967058823eeac319 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 11 Jan 2022 18:58:16 +0000 Subject: [PATCH 1680/3441] chore(java): update variable name to api_shortname in README template (#1323) (#1790) --- .github/.OwlBot.lock.yaml | 2 +- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 20c6ee3c30ca..dddb13b8458b 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:efbfc5e9ff713005a037941f8ebcc0c69cc630e3ad934675ee26868705a30897 + digest: sha256:7f737996c88586c499f7b0c25294c760f9f5eec092289a0e08d2d3f42a069ebb diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 93f1b513304c..c49cd2b61827 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -21,7 +21,7 @@ If you are still having issues, please include as much information as possible: General, Core, and Other are also allowed as types 2. OS type and version: 3. Java version: -4. bigquery version(s): +4. version(s): #### Steps to reproduce diff --git a/README.md b/README.md index f3f05f044a86..c06118d4a979 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:24.1.2') +implementation platform('com.google.cloud:libraries-bom:24.2.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` From e5a316b7889f490516e118f09f8669e2fb703681 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 12 Jan 2022 18:02:17 +0100 Subject: [PATCH 1681/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.2.5 (#1791) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `1.2.4` -> `1.2.5` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.2.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.2.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.2.5/compatibility-slim/1.2.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.2.5/confidence-slim/1.2.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v1.2.5`](https://togithub.com/googleapis/java-shared-config/blob/HEAD/CHANGELOG.md#​125-httpsgithubcomgoogleapisjava-shared-configcomparev124v125-2022-01-11) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.2.4...v1.2.5)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 30898a62df84..d74b3de5a629 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.2.4 + 1.2.5 From d2a77e7a275f3c5b4e74f9d58350f403e8845498 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 12 Jan 2022 18:02:27 +0100 Subject: [PATCH 1682/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v24.2.0 (#1792) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java) | `24.1.2` -> `24.2.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.2.0/compatibility-slim/24.1.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.2.0/confidence-slim/24.1.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/snippets/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c06118d4a979..dc351ce33517 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 24.1.2 + 24.2.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6f3c794a9236..21290488a34e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 24.1.2 + 24.2.0 pom import From b26dbc2f36452c3bf8ef66ddd05d39b9883a4696 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 12 Jan 2022 21:30:33 +0100 Subject: [PATCH 1683/3441] build(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.9.0 (#1793) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9b9a7fc81e08..1f924b9431c1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -37,7 +37,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.1 + 3.9.0 org.apache.maven.plugins From 53b5ef3c8ba195ca81cef648b94c81f9539defc8 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 13 Jan 2022 15:22:26 -0500 Subject: [PATCH 1684/3441] chore: update release-level in .repo-metadata.json (#1795) --- .repo-metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.repo-metadata.json b/.repo-metadata.json index 7f15ca25609d..a2f378081f2f 100644 --- a/.repo-metadata.json +++ b/.repo-metadata.json @@ -5,7 +5,7 @@ "client_documentation": "https://cloud.google.com/java/docs/reference/google-cloud-bigquery/latest/history", "api_description": "is a fully managed, NoOps, low cost data analytics service.\nData can be streamed into BigQuery at millions of rows per second to enable real-time analysis.\nWith BigQuery you can easily deploy Petabyte-scale Databases.", "issue_tracker": "https://issuetracker.google.com/savedsearches/559654", - "release_level": "ga", + "release_level": "stable", "language": "java", "repo": "googleapis/java-bigquery", "repo_short": "java-bigquery", From 2d9572b65c6c0df5e9bdfa6e2d6b24f2c6c86cdb Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 17 Jan 2022 21:20:26 +0000 Subject: [PATCH 1685/3441] chore(java): update release_type choices to stable and preview (#1331) (#1798) --- .github/.OwlBot.lock.yaml | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index dddb13b8458b..dcdda8c6d920 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:7f737996c88586c499f7b0c25294c760f9f5eec092289a0e08d2d3f42a069ebb + digest: sha256:9669c169d0582f13d6b2d319a43a78fc49f296a883aa48519bd0e5c7d34087c4 diff --git a/README.md b/README.md index dc351ce33517..dc6d2b7ee8ee 100644 --- a/README.md +++ b/README.md @@ -340,7 +340,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-4]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8-win.html [kokoro-badge-image-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.svg [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html -[stability-image]: https://img.shields.io/badge/stability-ga-green +[stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg [maven-version-link]: https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigquery&core=gav [authentication]: https://github.com/googleapis/google-cloud-java#authentication From 8b77d9b207b96dcbb4afc2e8f06fb9c147ce6a90 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 19 Jan 2022 00:06:28 +0100 Subject: [PATCH 1686/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.3.0 (#1796) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.2.3` -> `2.3.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.3.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.3.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.3.0/compatibility-slim/2.2.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.3.0/confidence-slim/2.2.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.3.0`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​230-httpsgithubcomgoogleapisjava-storagecomparev223v230-2022-01-12) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.2.3...v2.3.0) ##### Features - Add RPO metadata settings ([#​1105](https://togithub.com/googleapis/java-storage/issues/1105)) ([6f9dfdf](https://togithub.com/googleapis/java-storage/commit/6f9dfdfdbf9f1466839a17ef97489f207f18bec6)) ##### Bug Fixes - **java:** run Maven in plain console-friendly mode ([#​1301](https://togithub.com/googleapis/java-storage/issues/1301)) ([#​1186](https://togithub.com/googleapis/java-storage/issues/1186)) ([1e55dba](https://togithub.com/googleapis/java-storage/commit/1e55dba4cd5111472b9bb05db08ba7e47fafe762)) - Remove all client side validation for OLM, allow nonspecific lif… ([#​1160](https://togithub.com/googleapis/java-storage/issues/1160)) ([5a160ee](https://togithub.com/googleapis/java-storage/commit/5a160eee2b80e3d392df9d73dfc30ca9cd665764)) ##### Dependencies - update dependency org.easymock:easymock to v4 ([#​1198](https://togithub.com/googleapis/java-storage/issues/1198)) ([558520f](https://togithub.com/googleapis/java-storage/commit/558520f35ed64f0b36f7f8ada4491023a0fb759e)) - update kms.version to v0.94.1 ([#​1195](https://togithub.com/googleapis/java-storage/issues/1195)) ([cc999b1](https://togithub.com/googleapis/java-storage/commit/cc999b1ebaba051524ce6131052c824232ccb79a)) ##### [2.2.3](https://www.github.com/googleapis/java-storage/compare/v2.2.2...v2.2.3) (2022-01-07) ##### Bug Fixes - do not cause a failure when encountering no bindings ([#​1177](https://www.togithub.com/googleapis/java-storage/issues/1177)) ([16c2aef](https://www.github.com/googleapis/java-storage/commit/16c2aef4f09eccee59d1028e3bbf01c65b5982d6)) - **java:** add -ntp flag to native image testing command ([#​1169](https://www.togithub.com/googleapis/java-storage/issues/1169)) ([b8a6395](https://www.github.com/googleapis/java-storage/commit/b8a6395fcaa34423d42a90bd42f71809f89a6c3b)) - update retry handling to retry idempotent requests that encounter unexpected EOF while parsing json responses ([#​1155](https://www.togithub.com/googleapis/java-storage/issues/1155)) ([8fbe6ef](https://www.github.com/googleapis/java-storage/commit/8fbe6efab969d699e9ba9e5448db7a6ee10c0572)) ##### Documentation - add new sample storage_configure_retries ([#​1152](https://www.togithub.com/googleapis/java-storage/issues/1152)) ([8634c4b](https://www.github.com/googleapis/java-storage/commit/8634c4b5cb88d2818378558427170ecf6c403df5)) - update comments ([#​1188](https://www.togithub.com/googleapis/java-storage/issues/1188)) ([d58e67c](https://www.github.com/googleapis/java-storage/commit/d58e67c217f38ca7b1926882ec48bd7b0c351ea7)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.6.0 ([#​1191](https://www.togithub.com/googleapis/java-storage/issues/1191)) ([3b384cf](https://www.github.com/googleapis/java-storage/commit/3b384cf46876610ce33f2842ee8e9fc13e08443c)) - update dependency org.apache.httpcomponents:httpcore to v4.4.15 ([#​1171](https://www.togithub.com/googleapis/java-storage/issues/1171)) ([57f7a74](https://www.github.com/googleapis/java-storage/commit/57f7a743ee042c52261cd388fb0aec48c84e5d32)) ##### [2.2.2](https://www.github.com/googleapis/java-storage/compare/v2.2.1...v2.2.2) (2021-12-06) ##### Bug Fixes - update StorageOptions to not overwrite any previously set host ([#​1142](https://www.togithub.com/googleapis/java-storage/issues/1142)) ([05375c0](https://www.github.com/googleapis/java-storage/commit/05375c0b9b6f9fde2e6cefb1af6a695aa3b01732)) ##### Documentation - Add comments to GCS gRPC API proto spec to describe how naming work ([#​1139](https://www.togithub.com/googleapis/java-storage/issues/1139)) ([417c525](https://www.github.com/googleapis/java-storage/commit/417c5250eb7ad1a7b04a055a39d72e6536a63e18)) ##### Dependencies - update dependency com.google.apis:google-api-services-storage to v1-rev20211201-1.32.1 ([#​1165](https://www.togithub.com/googleapis/java-storage/issues/1165)) ([9031836](https://www.github.com/googleapis/java-storage/commit/90318368e69d7677c49e985eb58ff1b61d878ec9)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.5.1 ([#​1163](https://www.togithub.com/googleapis/java-storage/issues/1163)) ([feca2c6](https://www.github.com/googleapis/java-storage/commit/feca2c6342786ef3fb699c459067c015bd374a13)) - update kms.version to v0.94.0 ([#​1164](https://www.togithub.com/googleapis/java-storage/issues/1164)) ([8653783](https://www.github.com/googleapis/java-storage/commit/86537836a3b96f369e1cad59c692d350047414f7)) ##### [2.2.1](https://www.github.com/googleapis/java-storage/compare/v2.2.0...v2.2.1) (2021-11-15) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.5.0 ([#​1146](https://www.togithub.com/googleapis/java-storage/issues/1146)) ([a5d13a9](https://www.github.com/googleapis/java-storage/commit/a5d13a97bae50b4ee8a2fcef180ddc26b77e3d16))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d74b3de5a629..549464ff126a 100644 --- a/pom.xml +++ b/pom.xml @@ -121,7 +121,7 @@ com.google.cloud google-cloud-storage - 2.2.3 + 2.3.0 test From efa029c4c6cc28d5cee983ab159dae3596420bcc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 21 Jan 2022 21:30:11 +0100 Subject: [PATCH 1687/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.2.6 (#1801) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `1.2.5` -> `1.2.6` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.2.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.2.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.2.6/compatibility-slim/1.2.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.2.6/confidence-slim/1.2.5)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v1.2.6`](https://togithub.com/googleapis/java-shared-config/blob/HEAD/CHANGELOG.md#​126-httpsgithubcomgoogleapisjava-shared-configcomparev125v126-2022-01-19) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.2.5...v1.2.6)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 549464ff126a..a8c7adc2bcc1 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.2.5 + 1.2.6 From c78fc775fb5278e7925a1d473d40e3a801eb4acf Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 21 Jan 2022 22:05:10 +0100 Subject: [PATCH 1688/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.0 (#1802) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4fc33bfbcab5..180ece39c1fc 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.32.1 + 1.33.0 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 371cd008df93..4523244cd868 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.32.1 + 1.33.0 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 21290488a34e..f997ba7056c5 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.32.1 + 1.33.0 com.google.oauth-client From 8e34e59f13d289bcc9ea42d954c16db9eed1a423 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 21 Jan 2022 22:05:29 +0100 Subject: [PATCH 1689/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.0 (#1803) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 180ece39c1fc..72c5dc009196 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.32.1 + 1.33.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4523244cd868..5a5cf6733498 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.32.1 + 1.33.0 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f997ba7056c5..ebc1260a63af 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.32.1 + 1.33.0 From ff3d6e58ba50fa06e099dbc2d15fe07c439b2581 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 24 Jan 2022 17:12:45 +0100 Subject: [PATCH 1690/3441] test(deps): update dependency org.mockito:mockito-core to v4.3.0 (#1804) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a8c7adc2bcc1..e2cf1f4c7ba5 100644 --- a/pom.xml +++ b/pom.xml @@ -115,7 +115,7 @@ org.mockito mockito-core - 4.2.0 + 4.3.0 test From 8e5f58552e83abf309e314bddbfdc9ab3527181e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 26 Jan 2022 00:02:28 +0100 Subject: [PATCH 1691/3441] deps: update actions/github-script action to v5 (#1808) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/github-script](https://togithub.com/actions/github-script) | action | major | `v3` -> `v5` | --- ### Release Notes
    actions/github-script ### [`v5`](https://togithub.com/actions/github-script/compare/v4...v5) [Compare Source](https://togithub.com/actions/github-script/compare/v4...v5) ### [`v4`](https://togithub.com/actions/github-script/compare/v3...v4) [Compare Source](https://togithub.com/actions/github-script/compare/v3...v4)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 90afea5d50218c89d350fbb572072f2d75710072 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 26 Jan 2022 11:20:42 -0500 Subject: [PATCH 1692/3441] deps(java): update actions/github-script action to v5 (#1339) (#1809) Source-Link: https://github.com/googleapis/synthtool/commit/466412a75d636d69bcf8a42d9a5f956e73ac421d Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:7062473f423f339256346ddbee3d81fb1de6b784fabc2a4d959d7df2c720e375 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 15 ++++++++++++++- .github/workflows/approve-readme.yaml | 2 +- .github/workflows/auto-release.yaml | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index dcdda8c6d920..be3b9bde4fce 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,3 +1,16 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:9669c169d0582f13d6b2d319a43a78fc49f296a883aa48519bd0e5c7d34087c4 + digest: sha256:7062473f423f339256346ddbee3d81fb1de6b784fabc2a4d959d7df2c720e375 diff --git a/.github/workflows/approve-readme.yaml b/.github/workflows/approve-readme.yaml index 7513acaebcc2..c5132427982f 100644 --- a/.github/workflows/approve-readme.yaml +++ b/.github/workflows/approve-readme.yaml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest if: github.repository_owner == 'googleapis' && github.head_ref == 'autosynth-readme' steps: - - uses: actions/github-script@v3 + - uses: actions/github-script@v5 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} script: | diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 9b4fd4d8348d..59c7cadde314 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest if: contains(github.head_ref, 'release-please') steps: - - uses: actions/github-script@v3 + - uses: actions/github-script@v5 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} debug: true From ca344f532ce0677450c8b0d6c11f9413f1b65bcd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 26 Jan 2022 17:22:39 +0100 Subject: [PATCH 1693/3441] test(deps): update dependency org.mockito:mockito-core to v4.3.1 (#1810) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e2cf1f4c7ba5..d5ac4bcbed0f 100644 --- a/pom.xml +++ b/pom.xml @@ -115,7 +115,7 @@ org.mockito mockito-core - 4.3.0 + 4.3.1 test From 73c4a7330b717416fb0c9ce21215460f25faa930 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 27 Jan 2022 15:50:16 -0500 Subject: [PATCH 1694/3441] feat: add JSON type support (#1799) Fixes b/213373577 cc @nageshs --- google-cloud-bigquery/pom.xml | 4 + .../cloud/bigquery/LegacySQLTypeName.java | 3 + .../cloud/bigquery/QueryParameterValue.java | 25 ++++ .../cloud/bigquery/StandardSQLTypeName.java | 4 +- .../bigquery/QueryParameterValueTest.java | 19 +++ .../cloud/bigquery/it/ITBigQueryTest.java | 108 ++++++++++++++++++ pom.xml | 6 + 7 files changed, 168 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6796b91c8b23..1c3f4a9bac9d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -81,6 +81,10 @@ org.threeten threetenbp + + com.google.code.gson + gson + diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java index 56d66cb1a154..1c2a3d884a8d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java @@ -93,6 +93,9 @@ public LegacySQLTypeName apply(String constant) { /** A record type with a nested schema. */ public static final LegacySQLTypeName RECORD = type.createAndRegister("RECORD").setStandardType(StandardSQLTypeName.STRUCT); + /** Represents JSON data */ + public static final LegacySQLTypeName JSON = + type.createAndRegister("JSON").setStandardType(StandardSQLTypeName.JSON); private static Map standardToLegacyMap = new HashMap<>(); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index 76e521d561bd..f7f7e384f690 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -29,6 +29,7 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.io.BaseEncoding; +import com.google.gson.JsonObject; import java.io.Serializable; import java.math.BigDecimal; import java.util.ArrayList; @@ -61,6 +62,7 @@ *
  • Float: StandardSQLTypeName.FLOAT64 *
  • BigDecimal: StandardSQLTypeName.NUMERIC *
  • BigNumeric: StandardSQLTypeName.BIGNUMERIC + *
  • JSON: StandardSQLTypeName.JSON * * *

    No other types are supported through that entry point. The other types can be created by @@ -254,6 +256,22 @@ public static QueryParameterValue string(String value) { return of(value, StandardSQLTypeName.STRING); } + /** + * Creates a {@code QueryParameterValue} object with a type of JSON. Currently, this is only + * supported in INSERT, not in query as a filter + */ + public static QueryParameterValue json(String value) { + return of(value, StandardSQLTypeName.JSON); + } + + /** + * Creates a {@code QueryParameterValue} object with a type of JSON. Currently, this is only + * supported in INSERT, not in query as a filter + */ + public static QueryParameterValue json(JsonObject value) { + return of(value, StandardSQLTypeName.JSON); + } + /** Creates a {@code QueryParameterValue} object with a type of BYTES. */ public static QueryParameterValue bytes(byte[] value) { return of(value, StandardSQLTypeName.BYTES); @@ -347,6 +365,10 @@ private static StandardSQLTypeName classToType(Class type) { return StandardSQLTypeName.NUMERIC; } else if (Date.class.isAssignableFrom(type)) { return StandardSQLTypeName.DATE; + } else if (String.class.isAssignableFrom(type)) { + return StandardSQLTypeName.JSON; + } else if (JsonObject.class.isAssignableFrom(type)) { + return StandardSQLTypeName.JSON; } throw new IllegalArgumentException("Unsupported object type for QueryParameter: " + type); } @@ -384,6 +406,9 @@ private static String valueToStringOrNull(T value, StandardSQLTypeName type) break; case STRING: return value.toString(); + case JSON: + if (value instanceof String || value instanceof JsonObject) return value.toString(); + break; case STRUCT: throw new IllegalArgumentException("Cannot convert STRUCT to String value"); case ARRAY: diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java index d618b76568ec..57152a2a6c2a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java @@ -56,5 +56,7 @@ public enum StandardSQLTypeName { /** Represents a year, month, day, hour, minute, second, and subsecond (microsecond precision). */ DATETIME, /** Represents a set of geographic points, represented as a Well Known Text (WKT) string. */ - GEOGRAPHY + GEOGRAPHY, + /** Represents JSON data */ + JSON } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index b643ae580878..679b6ec5c968 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -24,6 +24,7 @@ import com.google.api.services.bigquery.model.QueryParameterType; import com.google.common.collect.ImmutableMap; +import com.google.gson.JsonObject; import java.math.BigDecimal; import java.text.ParseException; import java.util.Date; @@ -193,6 +194,24 @@ public void testString() { assertThat(value.getArrayValues()).isNull(); } + @Test + public void testJson() { + QueryParameterValue value = + QueryParameterValue.json("{\"class\" : {\"students\" : [{\"name\" : \"Jane\"}]}}"); + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("class", "student"); + QueryParameterValue value1 = QueryParameterValue.json(jsonObject); + assertThat(value.getValue()) + .isEqualTo("{\"class\" : {\"students\" : [{\"name\" : \"Jane\"}]}}"); + assertThat(value1.getValue()).isEqualTo("{\"class\":\"student\"}"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.JSON); + assertThat(value1.getType()).isEqualTo(StandardSQLTypeName.JSON); + assertThat(value.getArrayType()).isNull(); + assertThat(value1.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + assertThat(value1.getArrayType()).isNull(); + } + @Test public void testBytes() { QueryParameterValue value = QueryParameterValue.bytes(new byte[] {1, 3}); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 479a80e89fd2..09c9b7a7b703 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -122,6 +122,7 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import com.google.common.io.BaseEncoding; +import com.google.gson.JsonObject; import java.io.IOException; import java.math.BigDecimal; import java.nio.ByteBuffer; @@ -707,6 +708,113 @@ public void testCreateTableWithRangePartitioning() { } } + @Test + public void testJsonType() throws InterruptedException { + String tableName = "test_create_table_jsontype"; + TableId tableId = TableId.of(DATASET, tableName); + Schema schema = Schema.of(Field.of("jsonField", StandardSQLTypeName.JSON)); + StandardTableDefinition standardTableDefinition = StandardTableDefinition.of(schema); + try { + // Create a table with a JSON column + Table createdTable = bigquery.create(TableInfo.of(tableId, standardTableDefinition)); + assertNotNull(createdTable); + + // Insert 4 rows of JSON data into the JSON column + Map jsonRow1 = + Collections.singletonMap( + "jsonField", "{\"student\" : {\"name\" : \"Jane\", \"id\": 10}}"); + Map jsonRow2 = + Collections.singletonMap("jsonField", "{\"student\" : {\"name\" : \"Joy\", \"id\": 11}}"); + Map jsonRow3 = + Collections.singletonMap( + "jsonField", "{\"student\" : {\"name\" : \"Alice\", \"id\": 12}}"); + Map jsonRow4 = + Collections.singletonMap( + "jsonField", "{\"student\" : {\"name\" : \"Bijoy\", \"id\": 14}}"); + InsertAllRequest request = + InsertAllRequest.newBuilder(tableId) + .addRow(jsonRow1) + .addRow(jsonRow2) + .addRow(jsonRow3) + .addRow(jsonRow4) + .build(); + InsertAllResponse response = bigquery.insertAll(request); + assertFalse(response.hasErrors()); + assertEquals(0, response.getInsertErrors().size()); + + // Query the JSON column with string positional query parameter + String sql = + "SELECT jsonField.class.student.id FROM " + + tableId.getTable() + + " WHERE JSON_VALUE(jsonField, \"$.class.student.name\") = ? "; + QueryParameterValue stringParameter = QueryParameterValue.string("Jane"); + QueryJobConfiguration queryJobConfiguration = + QueryJobConfiguration.newBuilder(sql) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addPositionalParameter(stringParameter) + .build(); + TableResult result = bigquery.query(queryJobConfiguration); + for (FieldValueList values : result.iterateAll()) { + assertEquals("10", values.get(0).getValue()); + } + + // Insert another JSON row parsed from a String with json positional query parameter + String dml = "INSERT INTO " + tableId.getTable() + " (jsonField) VALUES(?)"; + QueryParameterValue jsonParameter = + QueryParameterValue.json("{\"class\" : {\"student\" : [{\"name\" : \"Amy\"}]}}"); + QueryJobConfiguration dmlQueryJobConfiguration = + QueryJobConfiguration.newBuilder(dml) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addPositionalParameter(jsonParameter) + .build(); + bigquery.query(dmlQueryJobConfiguration); + Page rows = bigquery.listTableData(tableId); + assertEquals(5, Iterables.size(rows.getValues())); + + // Insert another JSON row parsed from a JsonObject with json positional query parameter + JsonObject jsonObject = new JsonObject(); + jsonObject.addProperty("class", "student"); + QueryParameterValue jsonParameter1 = QueryParameterValue.json(jsonObject); + QueryJobConfiguration dmlQueryJobConfiguration1 = + QueryJobConfiguration.newBuilder(dml) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addPositionalParameter(jsonParameter1) + .build(); + bigquery.query(dmlQueryJobConfiguration1); + Page rows1 = bigquery.listTableData(tableId); + assertEquals(6, Iterables.size(rows1.getValues())); + int rowCount = 0; + for (FieldValueList row : rows1.iterateAll()) { + FieldValue jsonCell = row.get(0); + if (rowCount == 1) assertEquals("{\"class\":\"student\"}", jsonCell.getStringValue()); + rowCount++; + } + + // Try inserting a malformed JSON + QueryParameterValue badJsonParameter = + QueryParameterValue.json("{\"class\" : {\"student\" : [{\"name\" : \"BadBoy\"}}"); + QueryJobConfiguration dmlQueryJobConfiguration2 = + QueryJobConfiguration.newBuilder(dml) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addPositionalParameter(badJsonParameter) + .build(); + try { + bigquery.query(dmlQueryJobConfiguration2); + fail("Querying with malformed JSON shouldn't work"); + } catch (BigQueryException e) { + BigQueryError error = e.getError(); + assertNotNull(error); + assertEquals("invalidQuery", error.getReason()); + } + } finally { + assertTrue(bigquery.delete(tableId)); + } + } + @Test public void testCreateTableWithConstraints() { String tableName = "test_create_table_with_constraints"; diff --git a/pom.xml b/pom.xml index d5ac4bcbed0f..c6a3e2fedc67 100644 --- a/pom.xml +++ b/pom.xml @@ -93,6 +93,12 @@ ${google-api-services-bigquery.version} + + com.google.code.gson + gson + 2.8.9 + + junit From 00b58ce326268c822ab0a9fb5c180f7f66f2164d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 27 Jan 2022 21:12:16 +0000 Subject: [PATCH 1695/3441] chore(main): release 2.7.0 (#1789) :robot: I have created a release *beep* *boop* --- ## [2.7.0](https://github.com/googleapis/java-bigquery/compare/v2.6.2...v2.7.0) (2022-01-27) ### Features * add JSON type support ([#1799](https://github.com/googleapis/java-bigquery/issues/1799)) ([73c4a73](https://github.com/googleapis/java-bigquery/commit/73c4a7330b717416fb0c9ce21215460f25faa930)) ### Dependencies * **java:** update actions/github-script action to v5 ([#1339](https://github.com/googleapis/java-bigquery/issues/1339)) ([#1809](https://github.com/googleapis/java-bigquery/issues/1809)) ([90afea5](https://github.com/googleapis/java-bigquery/commit/90afea5d50218c89d350fbb572072f2d75710072)) * update actions/github-script action to v5 ([#1808](https://github.com/googleapis/java-bigquery/issues/1808)) ([8e5f585](https://github.com/googleapis/java-bigquery/commit/8e5f58552e83abf309e314bddbfdc9ab3527181e)) * update dependency com.google.cloud:google-cloud-storage to v2.3.0 ([#1796](https://github.com/googleapis/java-bigquery/issues/1796)) ([8b77d9b](https://github.com/googleapis/java-bigquery/commit/8b77d9b207b96dcbb4afc2e8f06fb9c147ce6a90)) * update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.0 ([#1802](https://github.com/googleapis/java-bigquery/issues/1802)) ([c78fc77](https://github.com/googleapis/java-bigquery/commit/c78fc775fb5278e7925a1d473d40e3a801eb4acf)) * update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.0 ([#1803](https://github.com/googleapis/java-bigquery/issues/1803)) ([8e34e59](https://github.com/googleapis/java-bigquery/commit/8e34e59f13d289bcc9ea42d954c16db9eed1a423)) * update dependency org.assertj:assertj-core to v3 ([#1786](https://github.com/googleapis/java-bigquery/issues/1786)) ([69fcabf](https://github.com/googleapis/java-bigquery/commit/69fcabf478c6fab23c4da3fcc516f820cc178a5b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 17 +++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 24 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eda95ce17434..641189bf200a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [2.7.0](https://github.com/googleapis/java-bigquery/compare/v2.6.2...v2.7.0) (2022-01-27) + + +### Features + +* add JSON type support ([#1799](https://github.com/googleapis/java-bigquery/issues/1799)) ([73c4a73](https://github.com/googleapis/java-bigquery/commit/73c4a7330b717416fb0c9ce21215460f25faa930)) + + +### Dependencies + +* **java:** update actions/github-script action to v5 ([#1339](https://github.com/googleapis/java-bigquery/issues/1339)) ([#1809](https://github.com/googleapis/java-bigquery/issues/1809)) ([90afea5](https://github.com/googleapis/java-bigquery/commit/90afea5d50218c89d350fbb572072f2d75710072)) +* update actions/github-script action to v5 ([#1808](https://github.com/googleapis/java-bigquery/issues/1808)) ([8e5f585](https://github.com/googleapis/java-bigquery/commit/8e5f58552e83abf309e314bddbfdc9ab3527181e)) +* update dependency com.google.cloud:google-cloud-storage to v2.3.0 ([#1796](https://github.com/googleapis/java-bigquery/issues/1796)) ([8b77d9b](https://github.com/googleapis/java-bigquery/commit/8b77d9b207b96dcbb4afc2e8f06fb9c147ce6a90)) +* update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.0 ([#1802](https://github.com/googleapis/java-bigquery/issues/1802)) ([c78fc77](https://github.com/googleapis/java-bigquery/commit/c78fc775fb5278e7925a1d473d40e3a801eb4acf)) +* update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.0 ([#1803](https://github.com/googleapis/java-bigquery/issues/1803)) ([8e34e59](https://github.com/googleapis/java-bigquery/commit/8e34e59f13d289bcc9ea42d954c16db9eed1a423)) +* update dependency org.assertj:assertj-core to v3 ([#1786](https://github.com/googleapis/java-bigquery/issues/1786)) ([69fcabf](https://github.com/googleapis/java-bigquery/commit/69fcabf478c6fab23c4da3fcc516f820cc178a5b)) + ### [2.6.2](https://www.github.com/googleapis/java-bigquery/compare/v2.6.1...v2.6.2) (2022-01-09) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1f924b9431c1..0192855ee9ed 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.6.3-SNAPSHOT + 2.7.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1c3f4a9bac9d..4a78f2985d2f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.6.3-SNAPSHOT + 2.7.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.6.3-SNAPSHOT + 2.7.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c6a3e2fedc67..3860c978e1b8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.6.3-SNAPSHOT + 2.7.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.6.3-SNAPSHOT + 2.7.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5a5cf6733498..834fceabda8f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.6.3-SNAPSHOT + 2.7.0 diff --git a/versions.txt b/versions.txt index 6baef69bb667..19cca9733d64 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.6.2:2.6.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.7.0:2.7.0 \ No newline at end of file From 3c0d0f62e917490726e881ba4d80194173f811dd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 27 Jan 2022 23:42:10 +0000 Subject: [PATCH 1696/3441] chore(main): release 2.7.1-SNAPSHOT (#1811) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 0192855ee9ed..d8832ca20718 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.7.0 + 2.7.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4a78f2985d2f..fe0bc18eb4c0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.7.0 + 2.7.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.7.0 + 2.7.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3860c978e1b8..969232060783 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.7.0 + 2.7.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.7.0 + 2.7.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 834fceabda8f..f67ba8fdc13d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.7.0 + 2.7.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 19cca9733d64..4ef37ff19135 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.7.0:2.7.0 \ No newline at end of file +google-cloud-bigquery:2.7.0:2.7.1-SNAPSHOT \ No newline at end of file From 94fe0bf11ef9b5b0f2bb7766835d38bd33002fe1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 28 Jan 2022 17:43:03 +0100 Subject: [PATCH 1697/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.7.0 (#1812) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.7.0 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index dc6d2b7ee8ee..c4d97a156773 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.6.2 + 2.7.0 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.6.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.7.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.6.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.7.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 72c5dc009196..e19fa839dde2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.6.2 + 2.7.0 From f2cfc8bc5f97359a69ac3647919670bd714ac953 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 31 Jan 2022 21:16:26 +0100 Subject: [PATCH 1698/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.7.0 (#1813) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 969232060783..a5cc0825dafc 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20211129-1.32.1 - 2.6.0 + 2.7.0 From d48ae41d1437bd9246d973a9f0b56f230a1eea68 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 31 Jan 2022 17:22:52 -0500 Subject: [PATCH 1699/3441] docs(samples): fix GrantViewAccess sample IT failure (#1816) Fixes issue: https://github.com/googleapis/java-bigquery/issues/1806 --- .../com/example/bigquery/GrantViewAccess.java | 5 ++--- .../com/example/bigquery/GrantViewAccessIT.java | 17 +++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java b/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java index 4a989f024748..00f5ccb1c4db 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java +++ b/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java @@ -22,7 +22,6 @@ import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.Dataset; -import com.google.cloud.bigquery.DatasetId; import com.google.cloud.bigquery.Table; import java.util.ArrayList; import java.util.List; @@ -44,8 +43,8 @@ public static void grantViewAccess(String srcDatasetId, String viewDatasetId, St // once, and can be reused for multiple requests. BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - Dataset srcDataset = bigquery.getDataset(DatasetId.of(srcDatasetId)); - Dataset viewDataset = bigquery.getDataset(DatasetId.of(viewDatasetId)); + Dataset srcDataset = bigquery.getDataset(srcDatasetId); + Dataset viewDataset = bigquery.getDataset(viewDatasetId); Table view = viewDataset.get(viewId); // First, we'll add a group to the ACL for the dataset containing the view. This will allow // users within that group to query the view, but they must have direct access to any tables diff --git a/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java b/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java index f620c781e871..11b1215ff69d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java @@ -36,6 +36,7 @@ public class GrantViewAccessIT { private final Logger log = Logger.getLogger(this.getClass().getName()); private String datasetName; + private String viewDatasetName; private String tableName; private String viewName; private ByteArrayOutputStream bout; @@ -43,7 +44,6 @@ public class GrantViewAccessIT { private PrintStream originalPrintStream; private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); - private static final String BIGQUERY_DATASET_NAME = requireEnvVar("BIGQUERY_DATASET_NAME"); private static String requireEnvVar(String varName) { String value = System.getenv(varName); @@ -56,7 +56,6 @@ private static String requireEnvVar(String varName) { @BeforeClass public static void checkRequirements() { requireEnvVar("GOOGLE_CLOUD_PROJECT"); - requireEnvVar("BIGQUERY_DATASET_NAME"); } @Before @@ -68,30 +67,32 @@ public void setUp() { // create a temporary dataset, table and view to be deleted. datasetName = "MY_DATASET_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); + viewDatasetName = "MY_VIEW_DATASET_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); viewName = "MY_VIEW_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); CreateDataset.createDataset(datasetName); + CreateDataset.createDataset(viewDatasetName); Schema schema = Schema.of( Field.of("timestampField", StandardSQLTypeName.TIMESTAMP), Field.of("stringField", StandardSQLTypeName.STRING), Field.of("booleanField", StandardSQLTypeName.BOOL)); - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + CreateTable.createTable(viewDatasetName, tableName, schema); String query = String.format( "SELECT timestampField, stringField, booleanField FROM %s.%s", - BIGQUERY_DATASET_NAME, tableName); - CreateView.createView(BIGQUERY_DATASET_NAME, viewName, query); + viewDatasetName, tableName); + CreateView.createView(viewDatasetName, viewName, query); } @After public void tearDown() { // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, viewName); - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + DeleteTable.deleteTable(viewDatasetName, viewName); + DeleteTable.deleteTable(viewDatasetName, tableName); DeleteDataset.deleteDataset(PROJECT_ID, datasetName); // restores print statements in the original method System.out.flush(); @@ -101,7 +102,7 @@ public void tearDown() { @Test public void testGrantViewAccess() { - GrantViewAccess.grantViewAccess(datasetName, BIGQUERY_DATASET_NAME, viewName); + GrantViewAccess.grantViewAccess(datasetName, viewDatasetName, viewName); assertThat(bout.toString()).contains("Grant view access successfully"); } } From e12122c4472ed4c3d00fc8c7515be210bbf68df3 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 1 Feb 2022 12:03:32 -0500 Subject: [PATCH 1700/3441] docs(samples): fix CopyMultipleTables sample IT failure and improve a few other samples (#1817) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs(samples): fix CopyMultipleTables sample IT failure and improve a few other samples Fixes issue: https://github.com/googleapis/java-bigquery/issues/1805 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../example/bigquery/CopyMultipleTables.java | 17 +++++---- .../bigquery/QueryExternalBigtablePerm.java | 3 +- .../bigquery/QueryExternalBigtableTemp.java | 3 +- .../bigquery/CopyMultipleTablesIT.java | 36 +++++++++++++++---- 4 files changed, 45 insertions(+), 14 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java b/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java index 9c3c736fc35a..2a7e02344804 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java @@ -32,25 +32,30 @@ public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String destinationDatasetName = "MY_DATASET_NAME"; String destinationTableId = "MY_TABLE_NAME"; - copyMultipleTables(destinationDatasetName, destinationTableId); + String sourceTable1Id = "MY_SOURCE_TABLE_1"; + String sourceTable2Id = "MY_SOURCE_TABLE_2"; + copyMultipleTables(destinationDatasetName, destinationTableId, sourceTable1Id, sourceTable2Id); } - public static void copyMultipleTables(String destinationDatasetName, String destinationTableId) { + public static void copyMultipleTables( + String destinationDatasetName, + String destinationTableId, + String sourceTable1Id, + String sourceTable2Id) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); TableId destinationTable = TableId.of(destinationDatasetName, destinationTableId); + TableId sourceTable1 = TableId.of(destinationDatasetName, sourceTable1Id); + TableId sourceTable2 = TableId.of(destinationDatasetName, sourceTable2Id); // For more information on CopyJobConfiguration see: // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/bigquery/JobConfiguration.html CopyJobConfiguration configuration = CopyJobConfiguration.newBuilder( - destinationTable, - Arrays.asList( - TableId.of(destinationDatasetName, "table1"), - TableId.of(destinationDatasetName, "table2"))) + destinationTable, Arrays.asList(sourceTable1, sourceTable2)) .build(); // For more information on Job see: diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java index 916269707564..fa5c30c16b4f 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java @@ -17,6 +17,8 @@ package com.example.bigquery; // [START bigquery_query_external_bigtable_perm] + +import com.google.api.client.util.Base64; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; @@ -29,7 +31,6 @@ import com.google.cloud.bigquery.TableInfo; import com.google.cloud.bigquery.TableResult; import com.google.common.collect.ImmutableList; -import org.apache.commons.codec.binary.Base64; // Sample to queries an external bigtable data source using a permanent table public class QueryExternalBigtablePerm { diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java index 51646fcb67f8..6a0463107480 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java @@ -17,6 +17,8 @@ package com.example.bigquery; // [START bigquery_query_external_bigtable_temp] + +import com.google.api.client.util.Base64; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; @@ -27,7 +29,6 @@ import com.google.cloud.bigquery.QueryJobConfiguration; import com.google.cloud.bigquery.TableResult; import com.google.common.collect.ImmutableList; -import org.apache.commons.codec.binary.Base64; // Sample to queries an external bigtable data source using a temporary table public class QueryExternalBigtableTemp { diff --git a/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java b/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java index 685db52d1d8f..e0d175c86ef4 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java @@ -19,6 +19,9 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.TestCase.assertNotNull; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; @@ -32,22 +35,27 @@ public class CopyMultipleTablesIT { private final Logger log = Logger.getLogger(this.getClass().getName()); + private String datasetName; private String tableName; + private String sourceTable1Name; + private String sourceTable2Name; private ByteArrayOutputStream bout; private PrintStream out; private PrintStream originalPrintStream; - private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); - private static void requireEnvVar(String varName) { + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); assertNotNull( "Environment variable " + varName + " is required to perform these tests.", System.getenv(varName)); + return value; } @BeforeClass public static void checkRequirements() { - requireEnvVar("BIGQUERY_DATASET_NAME"); + requireEnvVar("GOOGLE_CLOUD_PROJECT"); } @Before @@ -56,15 +64,30 @@ public void setUp() throws Exception { out = new PrintStream(bout); originalPrintStream = System.out; System.setOut(out); + // Create a new destination table for each test since existing table cannot be overwritten + datasetName = "MY_DATASET_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); tableName = "COPY_MULTIPLE_TABLE_TEST" + UUID.randomUUID().toString().substring(0, 8); - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, null); + sourceTable1Name = + "COPY_MULTIPLE_TABLE_SOURCE1_TEST" + UUID.randomUUID().toString().substring(0, 8); + sourceTable2Name = + "COPY_MULTIPLE_TABLE_SOURCE2_TEST" + UUID.randomUUID().toString().substring(0, 8); + CreateDataset.createDataset(datasetName); + + Schema schema = + Schema.of( + Field.of("timestampField", StandardSQLTypeName.TIMESTAMP), + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + CreateTable.createTable(datasetName, tableName, schema); + CreateTable.createTable(datasetName, sourceTable1Name, schema); + CreateTable.createTable(datasetName, sourceTable2Name, schema); } @After public void tearDown() { // Clean up - DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + DeleteDataset.deleteDataset(PROJECT_ID, datasetName); // restores print statements in the original method System.out.flush(); System.setOut(originalPrintStream); @@ -73,7 +96,8 @@ public void tearDown() { @Test public void testCopyMultipleTables() { - CopyMultipleTables.copyMultipleTables(BIGQUERY_DATASET_NAME, tableName); + CopyMultipleTables.copyMultipleTables( + datasetName, tableName, sourceTable1Name, sourceTable2Name); assertThat(bout.toString()).contains("Table copied successfully."); } } From 659fc796decd14d0d54abef7badfd68a38e0b302 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 1 Feb 2022 17:20:51 +0000 Subject: [PATCH 1701/3441] chore(main): release 2.7.1 (#1815) :robot: I have created a release *beep* *boop* --- ### [2.7.1](https://github.com/googleapis/java-bigquery/compare/v2.7.0...v2.7.1) (2022-02-01) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.7.0 ([#1813](https://github.com/googleapis/java-bigquery/issues/1813)) ([f2cfc8b](https://github.com/googleapis/java-bigquery/commit/f2cfc8bc5f97359a69ac3647919670bd714ac953)) ### Documentation * **samples:** fix CopyMultipleTables sample IT failure and improve a few other samples ([#1817](https://github.com/googleapis/java-bigquery/issues/1817)) ([e12122c](https://github.com/googleapis/java-bigquery/commit/e12122c4472ed4c3d00fc8c7515be210bbf68df3)) * **samples:** fix GrantViewAccess sample IT failure ([#1816](https://github.com/googleapis/java-bigquery/issues/1816)) ([d48ae41](https://github.com/googleapis/java-bigquery/commit/d48ae41d1437bd9246d973a9f0b56f230a1eea68)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 13 +++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 641189bf200a..1b34e2ec70d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +### [2.7.1](https://github.com/googleapis/java-bigquery/compare/v2.7.0...v2.7.1) (2022-02-01) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.7.0 ([#1813](https://github.com/googleapis/java-bigquery/issues/1813)) ([f2cfc8b](https://github.com/googleapis/java-bigquery/commit/f2cfc8bc5f97359a69ac3647919670bd714ac953)) + + +### Documentation + +* **samples:** fix CopyMultipleTables sample IT failure and improve a few other samples ([#1817](https://github.com/googleapis/java-bigquery/issues/1817)) ([e12122c](https://github.com/googleapis/java-bigquery/commit/e12122c4472ed4c3d00fc8c7515be210bbf68df3)) +* **samples:** fix GrantViewAccess sample IT failure ([#1816](https://github.com/googleapis/java-bigquery/issues/1816)) ([d48ae41](https://github.com/googleapis/java-bigquery/commit/d48ae41d1437bd9246d973a9f0b56f230a1eea68)) + ## [2.7.0](https://github.com/googleapis/java-bigquery/compare/v2.6.2...v2.7.0) (2022-01-27) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d8832ca20718..80e947d5c06b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.7.1-SNAPSHOT + 2.7.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index fe0bc18eb4c0..011c2b8eb6ef 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.7.1-SNAPSHOT + 2.7.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.7.1-SNAPSHOT + 2.7.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a5cc0825dafc..d4ac902e1941 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.7.1-SNAPSHOT + 2.7.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.7.1-SNAPSHOT + 2.7.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f67ba8fdc13d..7faba98a128a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.7.1-SNAPSHOT + 2.7.1 diff --git a/versions.txt b/versions.txt index 4ef37ff19135..81ff40aa6b96 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.7.0:2.7.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.7.1:2.7.1 \ No newline at end of file From 81d832d56f594cf4c6b9dbc3f26df6dcfc86a6d2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 1 Feb 2022 13:44:08 -0500 Subject: [PATCH 1702/3441] chore(main): release 2.7.2-SNAPSHOT (#1818) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 80e947d5c06b..b1a8f6f3f410 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.7.1 + 2.7.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 011c2b8eb6ef..859c535ec83e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.7.1 + 2.7.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.7.1 + 2.7.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d4ac902e1941..22491cbc48d1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.7.1 + 2.7.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.7.1 + 2.7.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7faba98a128a..feca4fe7efdc 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.7.1 + 2.7.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 81ff40aa6b96..b7da590b2d10 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.7.1:2.7.1 \ No newline at end of file +google-cloud-bigquery:2.7.1:2.7.2-SNAPSHOT \ No newline at end of file From 82175f19634550f8b16c830362798396cd28e79d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 1 Feb 2022 23:58:43 +0100 Subject: [PATCH 1703/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220123-1.32.1 (#1819) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20211129-1.32.1` -> `v2-rev20220123-1.32.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220123-1.32.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220123-1.32.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220123-1.32.1/compatibility-slim/v2-rev20211129-1.32.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220123-1.32.1/confidence-slim/v2-rev20211129-1.32.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c4d97a156773..9d084caa07a3 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.7.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.7.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.7.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.7.1" ``` ## Authentication diff --git a/pom.xml b/pom.xml index 22491cbc48d1..3dd34572842c 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20211129-1.32.1 + v2-rev20220123-1.32.1 2.7.0 From 8c50fb51bcb3116bf037c30997563b67ba077945 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 2 Feb 2022 16:04:41 +0100 Subject: [PATCH 1704/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.7.1 (#1822) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.7.0` -> `2.7.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.7.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.7.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.7.1/compatibility-slim/2.7.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.7.1/confidence-slim/2.7.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes

    googleapis/java-bigquery ### [`v2.7.1`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​271-httpsgithubcomgoogleapisjava-bigquerycomparev270v271-2022-02-01) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.7.0...v2.7.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9d084caa07a3..0b3f49656a6d 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.7.0 + 2.7.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e19fa839dde2..87ef5fb42b9b 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.7.0 + 2.7.1 From 0fe0a78db110794f9d2797bd74792d361acef96c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 2 Feb 2022 16:04:46 +0100 Subject: [PATCH 1705/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.5.2 (#1821) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.5.1` -> `2.5.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.5.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.5.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.5.2/compatibility-slim/2.5.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.5.2/confidence-slim/2.5.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.5.2`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​252-httpsgithubcomgoogleapisjava-bigtablecomparev251v252-2022-01-31) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.5.1...v2.5.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 87ef5fb42b9b..9cb96538f0f3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.5.1 + 2.5.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index feca4fe7efdc..1b50734e3cb0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.5.1 + 2.5.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ebc1260a63af..1be592b8792b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.5.1 + 2.5.2 test From 18a11e88c0be5c0d5cf89d498439d5f8347e589d Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 2 Feb 2022 11:47:12 -0500 Subject: [PATCH 1706/3441] feat: add Dataset ACL support (#1763) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add Dataset ACL support * some lint updates * add back interface that was causing IDE issues * fix recursive import issue * debug * update code based on pending discovery doc changes (cl/421673680) * update code to reflect more changes (target_types should be List) based on pending discovery doc changes (cl/421673680) * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * rename to address feedback Co-authored-by: Owl Bot --- .../java/com/google/cloud/bigquery/Acl.java | 89 +++++++++++++++++-- .../com/google/cloud/bigquery/AclTest.java | 14 +++ .../cloud/bigquery/SerializationTest.java | 9 +- .../cloud/bigquery/it/ITBigQueryTest.java | 42 +++++++++ 4 files changed, 144 insertions(+), 10 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java index 48ff86342027..115e001bd3f7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java @@ -20,9 +20,11 @@ import com.google.api.core.ApiFunction; import com.google.api.services.bigquery.model.Dataset.Access; +import com.google.api.services.bigquery.model.DatasetAccessEntry; import com.google.cloud.StringEnumType; import com.google.cloud.StringEnumValue; import java.io.Serializable; +import java.util.List; import java.util.Objects; /** @@ -105,7 +107,8 @@ public enum Type { USER, VIEW, IAM_MEMBER, - ROUTINE + ROUTINE, + DATASET } Entity(Type type) { @@ -119,6 +122,11 @@ public Type getType() { abstract Access toPb(); static Entity fromPb(Access access) { + if (access.getDataset() != null) { + return new DatasetAclEntity( + DatasetId.fromPb(access.getDataset().getDataset()), + access.getDataset().getTargetTypes()); + } if (access.getDomain() != null) { return new Domain(access.getDomain()); } @@ -146,6 +154,65 @@ static Entity fromPb(Access access) { } } + /** + * Class for a BigQuery DatasetAclEntity ACL entity. Objects of this class represent a + * DatasetAclEntity from a different DatasetAclEntity to grant access to. Only views are supported + * for now. The role field is not required when this field is set. If that DatasetAclEntity is + * deleted and re-created, its access needs to be granted again via an update operation. + */ + public static final class DatasetAclEntity extends Entity { + + private static final long serialVersionUID = -8392885851733136526L; + + private final DatasetId id; + private final List targetTypes; + + /** Creates a DatasetAclEntity given the DatasetAclEntity's id. */ + public DatasetAclEntity(DatasetId id, List targetTypes) { + super(Type.DATASET); + this.id = id; + this.targetTypes = targetTypes; + } + + /** Returns DatasetAclEntity's identity. */ + public DatasetId getId() { + return id; + } + + public List getTargetTypes() { + return targetTypes; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + DatasetAclEntity datasetAclEntity = (DatasetAclEntity) obj; + return Objects.equals(getType(), datasetAclEntity.getType()) + && Objects.equals(id, datasetAclEntity.id); + } + + @Override + public int hashCode() { + return Objects.hash(getType(), id); + } + + @Override + public String toString() { + return toPb().toString(); + } + + @Override + Access toPb() { + return new Access() + .setDataset(new DatasetAccessEntry().setDataset(id.toPb()).setTargetTypes(targetTypes)); + } + } + /** * Class for a BigQuery Domain entity. Objects of this class represent a domain to grant access * to. Any users signed in with the domain specified will be granted the specified access. @@ -342,9 +409,10 @@ Access toPb() { /** * Class for a BigQuery View entity. Objects of this class represent a view from a different - * dataset to grant access to. Queries executed against that view will have read access to tables - * in this dataset. The role field is not required when this field is set. If that view is updated - * by any user, access to the view needs to be granted again via an update operation. + * datasetAclEntity to grant access to. Queries executed against that view will have read access + * to tables in this datasetAclEntity. The role field is not required when this field is set. If + * that view is updated by any user, access to the view needs to be granted again via an update + * operation. */ public static final class View extends Entity { @@ -393,10 +461,10 @@ Access toPb() { /** * Class for a BigQuery Routine entity. Objects of this class represent a routine from a different - * dataset to grant access to. Queries executed against that routine will have read access to - * views/tables/routines in this dataset. Only UDF is supported for now. The role field is not - * required when this field is set. If that routine is updated by any user, access to the routine - * needs to be granted again via an update operation. + * datasetAclEntity to grant access to. Queries executed against that routine will have read + * access to views/tables/routines in this datasetAclEntity. Only UDF is supported for now. The + * role field is not required when this field is set. If that routine is updated by any user, + * access to the routine needs to be granted again via an update operation. */ public static final class Routine extends Entity { @@ -516,6 +584,11 @@ public static Acl of(Entity entity, Role role) { return new Acl(entity, role); } + /** Returns an Acl object for a datasetAclEntity. */ + public static Acl of(DatasetAclEntity datasetAclEntity) { + return new Acl(datasetAclEntity, null); + } + /** Returns an Acl object for a view entity. */ public static Acl of(View view) { return new Acl(view, null); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java index 736803391873..30866c2b60a4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java @@ -19,6 +19,7 @@ import static org.junit.Assert.assertEquals; import com.google.api.services.bigquery.model.Dataset; +import com.google.cloud.bigquery.Acl.DatasetAclEntity; import com.google.cloud.bigquery.Acl.Domain; import com.google.cloud.bigquery.Acl.Entity; import com.google.cloud.bigquery.Acl.Entity.Type; @@ -27,10 +28,23 @@ import com.google.cloud.bigquery.Acl.Role; import com.google.cloud.bigquery.Acl.User; import com.google.cloud.bigquery.Acl.View; +import com.google.common.collect.ImmutableList; +import java.util.List; import org.junit.Test; public class AclTest { + @Test + public void testDatasetEntity() { + DatasetId datasetId = DatasetId.of("dataset"); + List targetTypes = ImmutableList.of("VIEWS"); + DatasetAclEntity entity = new DatasetAclEntity(datasetId, targetTypes); + assertEquals(datasetId, entity.getId()); + assertEquals(targetTypes, entity.getTargetTypes()); + Dataset.Access pb = entity.toPb(); + assertEquals(entity, Entity.fromPb(pb)); + } + @Test public void testDomainEntity() { Domain entity = new Domain("d1"); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java index 30bb0db0b806..0b0cd0207a70 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java @@ -20,6 +20,7 @@ import com.google.cloud.NoCredentials; import com.google.cloud.PageImpl; import com.google.cloud.Restorable; +import com.google.cloud.bigquery.Acl.DatasetAclEntity; import com.google.cloud.bigquery.StandardTableDefinition.StreamingBuffer; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -38,8 +39,6 @@ public class SerializationTest extends BaseSerializationTest { Acl.of(new Acl.View(TableId.of("project", "dataset", "table")), Acl.Role.WRITER); private static final Acl ROUTINE_ACCESS = Acl.of(new Acl.Routine(RoutineId.of("project", "dataset", "routine")), Acl.Role.WRITER); - private static final List ACCESS_RULES = - ImmutableList.of(DOMAIN_ACCESS, GROUP_ACCESS, VIEW_ACCESS, ROUTINE_ACCESS, USER_ACCESS); private static final Long CREATION_TIME = System.currentTimeMillis() - 10; private static final Long DEFAULT_TABLE_EXPIRATION = 100L; private static final String DESCRIPTION = "Description"; @@ -50,6 +49,11 @@ public class SerializationTest extends BaseSerializationTest { private static final String LOCATION = ""; private static final String SELF_LINK = "http://bigquery/p/d"; private static final DatasetId DATASET_ID = DatasetId.of("project", "dataset"); + private static final List TARGET_TYPES = ImmutableList.of("VIEWS"); + private static final Acl DATASET_ACCESS = Acl.of(new DatasetAclEntity(DATASET_ID, TARGET_TYPES)); + private static final List ACCESS_RULES = + ImmutableList.of( + DOMAIN_ACCESS, GROUP_ACCESS, VIEW_ACCESS, ROUTINE_ACCESS, USER_ACCESS, DATASET_ACCESS); private static final DatasetInfo DATASET_INFO = DatasetInfo.newBuilder(DATASET_ID) .setAcl(ACCESS_RULES) @@ -228,6 +232,7 @@ protected Serializable[] serializableObjects() { USER_ACCESS, VIEW_ACCESS, ROUTINE_ACCESS, + DATASET_ACCESS, DATASET_ID, DATASET_INFO, TABLE_ID, diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 09c9b7a7b703..b8051122f7a4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -38,6 +38,7 @@ import com.google.cloud.Role; import com.google.cloud.ServiceOptions; import com.google.cloud.bigquery.Acl; +import com.google.cloud.bigquery.Acl.DatasetAclEntity; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; import com.google.cloud.bigquery.BigQuery.DatasetField; @@ -1897,6 +1898,47 @@ public void testAuthorizeRoutine() { assertEquals(routineAcl, routineDataset.getAcl()); } + @Test + public void testAuthorizeDataset() { + String datasetName = RemoteBigQueryHelper.generateDatasetName(); + DatasetId datasetId = DatasetId.of(PROJECT_ID, datasetName); + List targetTypes = ImmutableList.of("VIEWS"); + // Specify the acl which will be shared to the authorized dataset + List acl = + ImmutableList.of( + Acl.of(new Acl.Group("projectOwners"), Acl.Role.OWNER), + Acl.of(new Acl.IamMember("allUsers"), Acl.Role.READER)); + DatasetInfo datasetInfo = + DatasetInfo.newBuilder(datasetId).setAcl(acl).setDescription("shared Dataset").build(); + Dataset sharedDataset = bigquery.create(datasetInfo); + assertNotNull(sharedDataset); + assertEquals(sharedDataset.getDescription(), "shared Dataset"); + // Get the current metadata for the dataset you want to share by calling the datasets.get method + List sharedDatasetAcl = new ArrayList<>(sharedDataset.getAcl()); + + // Create a new dataset to be authorized + String authorizedDatasetName = RemoteBigQueryHelper.generateDatasetName(); + DatasetId authorizedDatasetId = DatasetId.of(PROJECT_ID, authorizedDatasetName); + DatasetInfo authorizedDatasetInfo = + DatasetInfo.newBuilder(authorizedDatasetId) + .setDescription("new Dataset to be authorized by the sharedDataset") + .build(); + Dataset authorizedDataset = bigquery.create(authorizedDatasetInfo); + assertNotNull(authorizedDataset); + assertEquals( + authorizedDataset.getDescription(), "new Dataset to be authorized by the sharedDataset"); + + // Add the new DatasetAccessEntry object to the existing sharedDatasetAcl list + DatasetAclEntity datasetEntity = new DatasetAclEntity(authorizedDatasetId, targetTypes); + sharedDatasetAcl.add(Acl.of(datasetEntity)); + + // Update the dataset with the added authorization + Dataset updatedDataset = sharedDataset.toBuilder().setAcl(sharedDatasetAcl).build().update(); + + // Verify that the authorized dataset has been added + assertEquals(sharedDatasetAcl, updatedDataset.getAcl()); + } + @Test public void testSingleStatementsQueryException() throws InterruptedException { String invalidQuery = From b3b8d174121da24b7305060cf23f5e85dddee9a4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 2 Feb 2022 19:12:50 +0000 Subject: [PATCH 1707/3441] chore(main): release 2.8.0 (#1820) :robot: I have created a release *beep* *boop* --- ## [2.8.0](https://github.com/googleapis/java-bigquery/compare/v2.7.1...v2.8.0) (2022-02-02) ### Features * add Dataset ACL support ([#1763](https://github.com/googleapis/java-bigquery/issues/1763)) ([18a11e8](https://github.com/googleapis/java-bigquery/commit/18a11e88c0be5c0d5cf89d498439d5f8347e589d)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220123-1.32.1 ([#1819](https://github.com/googleapis/java-bigquery/issues/1819)) ([82175f1](https://github.com/googleapis/java-bigquery/commit/82175f19634550f8b16c830362798396cd28e79d)) * update dependency com.google.cloud:google-cloud-bigtable to v2.5.2 ([#1821](https://github.com/googleapis/java-bigquery/issues/1821)) ([0fe0a78](https://github.com/googleapis/java-bigquery/commit/0fe0a78db110794f9d2797bd74792d361acef96c)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 13 +++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b34e2ec70d2..20c9d3e50833 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [2.8.0](https://github.com/googleapis/java-bigquery/compare/v2.7.1...v2.8.0) (2022-02-02) + + +### Features + +* add Dataset ACL support ([#1763](https://github.com/googleapis/java-bigquery/issues/1763)) ([18a11e8](https://github.com/googleapis/java-bigquery/commit/18a11e88c0be5c0d5cf89d498439d5f8347e589d)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220123-1.32.1 ([#1819](https://github.com/googleapis/java-bigquery/issues/1819)) ([82175f1](https://github.com/googleapis/java-bigquery/commit/82175f19634550f8b16c830362798396cd28e79d)) +* update dependency com.google.cloud:google-cloud-bigtable to v2.5.2 ([#1821](https://github.com/googleapis/java-bigquery/issues/1821)) ([0fe0a78](https://github.com/googleapis/java-bigquery/commit/0fe0a78db110794f9d2797bd74792d361acef96c)) + ### [2.7.1](https://github.com/googleapis/java-bigquery/compare/v2.7.0...v2.7.1) (2022-02-01) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b1a8f6f3f410..c20b9eb519df 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.7.2-SNAPSHOT + 2.8.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 859c535ec83e..5eee1ea2f97d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.7.2-SNAPSHOT + 2.8.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.7.2-SNAPSHOT + 2.8.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3dd34572842c..07ad8b6b727e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.7.2-SNAPSHOT + 2.8.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.7.2-SNAPSHOT + 2.8.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1b50734e3cb0..143ca6acd0a7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.7.2-SNAPSHOT + 2.8.0 diff --git a/versions.txt b/versions.txt index b7da590b2d10..9e9df81f2eb5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.7.1:2.7.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.8.0:2.8.0 \ No newline at end of file From 8b94d484f8ca0d2ecfee0203560268daae6053f8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 2 Feb 2022 15:28:41 -0500 Subject: [PATCH 1708/3441] chore(main): release 2.8.1-SNAPSHOT (#1823) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c20b9eb519df..4cdb68ba170c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.8.0 + 2.8.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5eee1ea2f97d..ba2a040e64d3 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.8.0 + 2.8.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.8.0 + 2.8.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 07ad8b6b727e..1e9908b1915f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.8.0 + 2.8.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.8.0 + 2.8.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 143ca6acd0a7..b9d36340782a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.8.0 + 2.8.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 9e9df81f2eb5..ed75b039a385 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.8.0:2.8.0 \ No newline at end of file +google-cloud-bigquery:2.8.0:2.8.1-SNAPSHOT \ No newline at end of file From 9685318d46dc832dbd9907f2227b5f8b3fc0a934 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 3 Feb 2022 16:00:56 +0100 Subject: [PATCH 1709/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.8.0 (#1824) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.7.1` -> `2.8.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.8.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.8.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.8.0/compatibility-slim/2.7.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.8.0/confidence-slim/2.7.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.8.0`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​280-httpsgithubcomgoogleapisjava-bigquerycomparev271v280-2022-02-02) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.7.1...v2.8.0) ##### Features - add Dataset ACL support ([#​1763](https://togithub.com/googleapis/java-bigquery/issues/1763)) ([18a11e8](https://togithub.com/googleapis/java-bigquery/commit/18a11e88c0be5c0d5cf89d498439d5f8347e589d)) ##### Dependencies - update dependency com.google.apis:google-api-services-bigquery to v2-rev20220123-1.32.1 ([#​1819](https://togithub.com/googleapis/java-bigquery/issues/1819)) ([82175f1](https://togithub.com/googleapis/java-bigquery/commit/82175f19634550f8b16c830362798396cd28e79d)) - update dependency com.google.cloud:google-cloud-bigtable to v2.5.2 ([#​1821](https://togithub.com/googleapis/java-bigquery/issues/1821)) ([0fe0a78](https://togithub.com/googleapis/java-bigquery/commit/0fe0a78db110794f9d2797bd74792d361acef96c)) ##### [2.7.1](https://togithub.com/googleapis/java-bigquery/compare/v2.7.0...v2.7.1) (2022-02-01) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.7.0 ([#​1813](https://togithub.com/googleapis/java-bigquery/issues/1813)) ([f2cfc8b](https://togithub.com/googleapis/java-bigquery/commit/f2cfc8bc5f97359a69ac3647919670bd714ac953)) ##### Documentation - **samples:** fix CopyMultipleTables sample IT failure and improve a few other samples ([#​1817](https://togithub.com/googleapis/java-bigquery/issues/1817)) ([e12122c](https://togithub.com/googleapis/java-bigquery/commit/e12122c4472ed4c3d00fc8c7515be210bbf68df3)) - **samples:** fix GrantViewAccess sample IT failure ([#​1816](https://togithub.com/googleapis/java-bigquery/issues/1816)) ([d48ae41](https://togithub.com/googleapis/java-bigquery/commit/d48ae41d1437bd9246d973a9f0b56f230a1eea68))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0b3f49656a6d..e61c8713df3d 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.7.1 + 2.8.0 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.7.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.8.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.7.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.8.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 9cb96538f0f3..f4073794a76a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.7.1 + 2.8.0 From bcccf585cc09cdaea1d5aac7ac00cad23260ffd1 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 3 Feb 2022 19:46:39 +0000 Subject: [PATCH 1710/3441] chore: add kokoro config to run nightly integration test on java11.0.14 (#1347) (#1825) --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/nightly/java11-integration.cfg | 37 ++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 .kokoro/nightly/java11-integration.cfg diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index be3b9bde4fce..8807efcad4be 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:7062473f423f339256346ddbee3d81fb1de6b784fabc2a4d959d7df2c720e375 + digest: sha256:7c853edc4136ae8f19f9d46d4569d38de2e446db2eea057f32e412bdba255846 diff --git a/.kokoro/nightly/java11-integration.cfg b/.kokoro/nightly/java11-integration.cfg new file mode 100644 index 000000000000..58049cc38f11 --- /dev/null +++ b/.kokoro/nightly/java11-integration.cfg @@ -0,0 +1,37 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-public-resources/java11014" +} + +env_vars: { + key: "JOB_TYPE" + value: "integration" +} +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "ENABLE_FLAKYBOT" + value: "true" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} From b9a6f7352c632d7d4fb8767bb93d4dfd2f692bbb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 7 Feb 2022 16:50:57 +0100 Subject: [PATCH 1711/3441] test(deps): update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.6.3 (#1826) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1e9908b1915f..a2aa639499e3 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.6.2 + 1.6.3 pom import From bb4dd403eb1a94120bc73d22cb1da587ea2dd179 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 7 Feb 2022 16:52:40 +0100 Subject: [PATCH 1712/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.2.1 (#1830) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a2aa639499e3..eb819d9a7d85 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.1.2 + 3.2.1 From 7bb6c79e4839f183dda021ddf81a3961efd752d6 Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Mon, 7 Feb 2022 11:01:42 -0500 Subject: [PATCH 1713/3441] docs(sample): Add sample for native image support in Bigquery (#1829) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc(java): add sample for native image support * rename test; remove unused deps * fix readme * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 1 + samples/native-image-sample/README.md | 47 +++++ samples/native-image-sample/pom.xml | 161 +++++++++++++++++ .../bigquery/NativeImageBigquerySample.java | 170 ++++++++++++++++++ .../bigquery/NativeImageBigquerySampleIT.java | 67 +++++++ samples/pom.xml | 1 + 6 files changed, 447 insertions(+) create mode 100644 samples/native-image-sample/README.md create mode 100644 samples/native-image-sample/pom.xml create mode 100644 samples/native-image-sample/src/main/java/com/example/bigquery/NativeImageBigquerySample.java create mode 100644 samples/native-image-sample/src/test/java/com/example/bigquery/NativeImageBigquerySampleIT.java diff --git a/README.md b/README.md index e61c8713df3d..9ec60a4f3542 100644 --- a/README.md +++ b/README.md @@ -111,6 +111,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | +| Native Image Bigquery Sample | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/native-image-sample/src/main/java/com/example/bigquery/NativeImageBigquerySample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/native-image-sample/src/main/java/com/example/bigquery/NativeImageBigquerySample.java) | | Add Column Load Append | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | | Add Empty Column | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | | Auth Drive Scope | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | diff --git a/samples/native-image-sample/README.md b/samples/native-image-sample/README.md new file mode 100644 index 000000000000..e4e4b52eeba0 --- /dev/null +++ b/samples/native-image-sample/README.md @@ -0,0 +1,47 @@ +# BigQuery Sample Application with Native Image + +The BigQuery sample application demonstrates some common operations with [Google Cloud BigQuery](https://cloud.google.com/bigquery) and is compatible with Native Image compilation. + +## Setup Instructions + +1. Follow the [GCP Project Authentication and Native Image Setup Instructions](../../README.md). + +2. [Enable the BigQuery APIs](https://console.cloud.google.com/apis/api/bigquery.googleapis.com). + +### Run with Native Image Support + +Navigate to this directory in a new terminal. + +1. Compile the application using the Native Image Compiler. This step may take a few minutes. + + ``` + mvn package -P native -DskipTests + ``` + +2. Run the application: + + ``` + ./target/native-image-sample + ``` + +3. The application will create a sample BigQuery dataset in your GCP project called `nativeimage_test_dataset` and perform some simple operations like creating a table, inserting data, and running a query. + + If you would like to delete the BigQuery dataset later, you can manage your BigQuery resources through [Google Cloud Console](https://console.cloud.google.com/bigquery) to clean up BigQuery resources under your project. + + When you run the application, you'll see output like this in the terminal: + + ``` + Created new table: nativeimage_test_table_2351b0891d2f48af9309bd289c3bad13 + Successfully inserted test row. + Queried the following records: + User id: TestUser-2f39e3ec-d81a-483f-9ec0-b9bd54155710 | age: 40 + Deleted table: nativeimage_test_table_2351b0891d2f48af9309bd289c3bad13 + ``` + +### Sample Integration test with Native Image Support + +In order to run the sample integration test, call the following command: + +``` +mvn test -Pnative +``` \ No newline at end of file diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml new file mode 100644 index 000000000000..225e3ea2083f --- /dev/null +++ b/samples/native-image-sample/pom.xml @@ -0,0 +1,161 @@ + + + + 4.0.0 + com.example.bigquery + native-image-sample + Native Image Sample + + + com.google.cloud.samples + shared-configuration + 1.2.0 + + + + 1.8 + 1.8 + UTF-8 + + + + + + com.google.cloud + libraries-bom + 24.2.0 + pom + import + + + + + + + com.google.cloud + google-cloud-bigquery + + + + + junit + junit + 4.13.2 + test + + + com.google.truth + truth + 1.1.3 + test + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + com.example.bigquery.NativeImageBigquerySample + + + + + + + + + + + + native + + + + com.google.cloud + native-image-support + 0.10.0 + + + org.junit.vintage + junit-vintage-engine + 5.8.2 + test + + + org.graalvm.buildtools + junit-platform-native + 0.9.9 + test + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + 2.22.2 + + + **/*IT + + + + + org.graalvm.buildtools + native-maven-plugin + 0.9.9 + true + + com.example.bigquery.NativeImageBigquerySample + + + --no-fallback + --no-server + + + + + build-native + + build + test + + package + + + test-native + + test + + test + + + + + + + + diff --git a/samples/native-image-sample/src/main/java/com/example/bigquery/NativeImageBigquerySample.java b/samples/native-image-sample/src/main/java/com/example/bigquery/NativeImageBigquerySample.java new file mode 100644 index 000000000000..e7f1b35c5d33 --- /dev/null +++ b/samples/native-image-sample/src/main/java/com/example/bigquery/NativeImageBigquerySample.java @@ -0,0 +1,170 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import com.google.api.gax.paging.Page; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryError; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetInfo; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldValueList; +import com.google.cloud.bigquery.InsertAllRequest; +import com.google.cloud.bigquery.InsertAllResponse; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.TableResult; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +/** + * Sample application demonstrating BigQuery operations. + * + *

    Note: This application will create a BigQuery dataset in your GCP project. You can delete this + * by viewing BigQuery in Cloud Console https://console.cloud.google.com/bigquery or by uncommenting + * the call to `deleteDataset(..)` made in main(). + */ +public class NativeImageBigquerySample { + + private static final String DATASET_ID = "nativeimage_test_dataset"; + + private static final String TABLE_ID = "nativeimage_test_table"; + + private static final Schema TABLE_SCHEMA = + Schema.of( + Field.of("id", StandardSQLTypeName.STRING), Field.of("age", StandardSQLTypeName.INT64)); + + /** Entrypoint to the application. */ + public static void main(String[] args) throws InterruptedException { + BigQuery bigQuery = BigQueryOptions.getDefaultInstance().getService(); + + if (!hasDataset(bigQuery, DATASET_ID)) { + createDataset(bigQuery, DATASET_ID); + } + + String tableName = TABLE_ID + "_" + UUID.randomUUID().toString().replace("-", ""); + createTable(bigQuery, DATASET_ID, tableName, TABLE_SCHEMA); + String testId = "TestUser-" + UUID.randomUUID().toString(); + int testAge = 40; + insertTestRecord(bigQuery, DATASET_ID, tableName, testId, testAge); + queryTable(bigQuery, DATASET_ID, tableName); + + // Clean up resources. + deleteTable(bigQuery, DATASET_ID, tableName); + + // Uncomment this to delete the created dataset. + // deleteDataset(bigQuery, DATASET_ID); + } + + static String queryTable(BigQuery bigQuery, String datasetName, String tableName) + throws InterruptedException { + String fullyQualifiedTable = datasetName + "." + tableName; + String query = "SELECT * FROM " + fullyQualifiedTable; + + QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build(); + TableResult results = bigQuery.query(queryConfig); + + String result = ""; + System.out.println("Queried the following records: "); + for (FieldValueList row : results.iterateAll()) { + String rowStatement = + String.format( + "User id: %s | age: %d\n", + row.get("id").getStringValue(), row.get("age").getLongValue()); + result += rowStatement; + System.out.println(row); + } + return result; + } + + static void insertTestRecord( + BigQuery bigQuery, String datasetName, String tableName, String id, int age) { + + Map rowContent = new HashMap<>(); + rowContent.put("id", id); + rowContent.put("age", age); + + InsertAllRequest request = + InsertAllRequest.newBuilder(datasetName, tableName).addRow(rowContent).build(); + + InsertAllResponse response = bigQuery.insertAll(request); + + if (response.hasErrors()) { + System.out.println("Insert resulted in errors:"); + for (Map.Entry> entry : response.getInsertErrors().entrySet()) { + System.out.println("Response error: \n" + entry.getValue()); + } + } else { + System.out.println("Successfully inserted test row."); + } + } + + static void createTable(BigQuery bigQuery, String datasetName, String tableName, Schema schema) { + + TableId tableId = TableId.of(datasetName, tableName); + TableDefinition tableDefinition = StandardTableDefinition.of(schema); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + bigQuery.create(tableInfo); + System.out.println("Created new table: " + tableName); + } + + static boolean hasTable(BigQuery bigQuery, String datasetName, String tableName) { + + Page

  • tables = bigQuery.listTables(datasetName); + for (Table table : tables.iterateAll()) { + if (tableName.equals(table.getTableId().getTable())) { + return true; + } + } + return false; + } + + static void createDataset(BigQuery bigQuery, String datasetName) { + DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build(); + Dataset newDataset = bigQuery.create(datasetInfo); + System.out.println("Created new dataset: " + newDataset.getDatasetId().getDataset()); + } + + static boolean hasDataset(BigQuery bigQuery, String datasetName) { + Page datasets = bigQuery.listDatasets(); + for (Dataset dataset : datasets.iterateAll()) { + if (datasetName.equals(dataset.getDatasetId().getDataset())) { + return true; + } + } + return false; + } + + static void deleteTable(BigQuery bigQuery, String datasetName, String tableName) { + bigQuery.getTable(datasetName, tableName).delete(); + System.out.println("Deleted table: " + tableName); + } + + static void deleteDataset(BigQuery bigQuery, String datasetName) { + bigQuery.getDataset(datasetName).delete(); + System.out.println("Deleting dataset " + datasetName); + } +} diff --git a/samples/native-image-sample/src/test/java/com/example/bigquery/NativeImageBigquerySampleIT.java b/samples/native-image-sample/src/test/java/com/example/bigquery/NativeImageBigquerySampleIT.java new file mode 100644 index 000000000000..a65bc5aa87ad --- /dev/null +++ b/samples/native-image-sample/src/test/java/com/example/bigquery/NativeImageBigquerySampleIT.java @@ -0,0 +1,67 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.util.UUID; +import org.junit.Before; +import org.junit.Test; + +/** Tests for {@link NativeImageBigquerySample} */ +public class NativeImageBigquerySampleIT { + + private static final String DATASET_ID = "nativeimage_it_dataset"; + + private static final String TABLE_ID = "nativeimage_it_table"; + + private static final Schema TABLE_SCHEMA = + Schema.of( + Field.of("id", StandardSQLTypeName.STRING), Field.of("age", StandardSQLTypeName.INT64)); + + private BigQuery bigQuery; + + private String tableName; + + @Before + public void setUp() { + bigQuery = BigQueryOptions.getDefaultInstance().getService(); + tableName = TABLE_ID + "_" + UUID.randomUUID().toString().replace("-", ""); + if (!NativeImageBigquerySample.hasDataset(bigQuery, DATASET_ID)) { + NativeImageBigquerySample.createDataset(bigQuery, DATASET_ID); + } + NativeImageBigquerySample.createTable(bigQuery, DATASET_ID, tableName, TABLE_SCHEMA); + } + + @Test + public void testQueryTable() throws InterruptedException { + String testId = "TestUser-" + UUID.randomUUID(); + NativeImageBigquerySample.insertTestRecord(bigQuery, DATASET_ID, tableName, testId, 40); + + String result = NativeImageBigquerySample.queryTable(bigQuery, DATASET_ID, tableName); + + assertThat(result).isEqualTo("User id: " + testId + " | age: 40\n"); + + // Clean up + NativeImageBigquerySample.deleteTable(bigQuery, DATASET_ID, tableName); + } +} diff --git a/samples/pom.xml b/samples/pom.xml index 4e9299af44da..a02b0b6c468b 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -47,6 +47,7 @@ install-without-bom snapshot snippets + native-image-sample From d3704016ae603b86d265ae5abe31defc6444c3cc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 7 Feb 2022 23:08:09 +0100 Subject: [PATCH 1714/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.9 (#1827) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f4073794a76a..ad5a30df3d90 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.8 + 2.1.9 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b9d36340782a..048b6febfd6e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.8 + 2.1.9 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 1be592b8792b..de49cf79a6c8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.8 + 2.1.9 test From 94d838a96d123b20388ac40b241831bdd086a2d1 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 7 Feb 2022 17:08:24 -0500 Subject: [PATCH 1715/3441] chore: enable auto release in java (#1349) (#1833) * chore: fix auto-release * chore: remove codecov.yml * chore: update license headers for yaml files Source-Link: https://github.com/googleapis/synthtool/commit/5b777277a01a93e7f10c9279521e807b934e78d4 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:ebc2104854c5b81c6fd72ca79400a2e20e0d510c5e0654fd1a19e5c9be160ca6 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .github/workflows/approve-readme.yaml | 15 +++++++++++++++ .github/workflows/auto-release.yaml | 19 +++++++++++++++++-- .github/workflows/ci.yaml | 15 +++++++++++++++ .github/workflows/samples.yaml | 15 +++++++++++++++ .kokoro/build.bat | 15 +++++++++++++++ 6 files changed, 78 insertions(+), 3 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 8807efcad4be..a8ddd81ae949 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:7c853edc4136ae8f19f9d46d4569d38de2e446db2eea057f32e412bdba255846 + digest: sha256:ebc2104854c5b81c6fd72ca79400a2e20e0d510c5e0654fd1a19e5c9be160ca6 diff --git a/.github/workflows/approve-readme.yaml b/.github/workflows/approve-readme.yaml index c5132427982f..1bb182327612 100644 --- a/.github/workflows/approve-readme.yaml +++ b/.github/workflows/approve-readme.yaml @@ -1,3 +1,18 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# Github action job to test core java library features on +# downstream client libraries before they are released. on: pull_request: name: auto-merge-readme diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 59c7cadde314..2ba3082bee20 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -1,3 +1,18 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# Github action job to test core java library features on +# downstream client libraries before they are released. on: pull_request: name: auto-release @@ -16,8 +31,8 @@ jobs: return; } - // only approve PRs like "chore: release " - if ( !context.payload.pull_request.title.startsWith("chore: release") ) { + // only approve PRs like "chore(main): release " + if ( !context.payload.pull_request.title.startsWith("chore(main): release") ) { return; } diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 05de1f60dcf0..6b5e56aaacd1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,3 +1,18 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# Github action job to test core java library features on +# downstream client libraries before they are released. on: push: branches: diff --git a/.github/workflows/samples.yaml b/.github/workflows/samples.yaml index c46230a78c38..d5d964df15fa 100644 --- a/.github/workflows/samples.yaml +++ b/.github/workflows/samples.yaml @@ -1,3 +1,18 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# Github action job to test core java library features on +# downstream client libraries before they are released. on: pull_request: name: samples diff --git a/.kokoro/build.bat b/.kokoro/build.bat index 05826ad93fe8..cc602c9eba80 100644 --- a/.kokoro/build.bat +++ b/.kokoro/build.bat @@ -1,3 +1,18 @@ :: See documentation in type-shell-output.bat +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# Github action job to test core java library features on +# downstream client libraries before they are released. "C:\Program Files\Git\bin\bash.exe" %~dp0build.sh From d628fff9b899e13c75aaf26d42bfc553c48a3c4e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 7 Feb 2022 23:10:52 +0100 Subject: [PATCH 1716/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.4.0 (#1828) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eb819d9a7d85..15d25e3a2e1c 100644 --- a/pom.xml +++ b/pom.xml @@ -127,7 +127,7 @@ com.google.cloud google-cloud-storage - 2.3.0 + 2.4.0 test From 1d27b309e2fa6cdc99fc08234390a065d7ca1098 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 7 Feb 2022 23:11:05 +0100 Subject: [PATCH 1717/3441] deps: update dependency com.google.cloud:native-image-support to v0.12.0 (#1832) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 225e3ea2083f..dc7e8910fe05 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.10.0 + 0.12.0 org.junit.vintage From b7c2ee12fd93471be4c95e0a990af2feac892bbb Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 00:46:45 +0000 Subject: [PATCH 1718/3441] chore: update auto-release script to fix breaking changes in v5 (#1350) (#1834) Source-Link: https://github.com/googleapis/synthtool/commit/53a58c23eb4decb3a17fab07388d42799e158b5f Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:3c950ed12391ebaffd1ee66d0374766a1c50144ebe6a7a0042300b2e6bb5856b --- .github/.OwlBot.lock.yaml | 2 +- .github/workflows/auto-release.yaml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index a8ddd81ae949..9786771c434b 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:ebc2104854c5b81c6fd72ca79400a2e20e0d510c5e0654fd1a19e5c9be160ca6 + digest: sha256:3c950ed12391ebaffd1ee66d0374766a1c50144ebe6a7a0042300b2e6bb5856b diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 2ba3082bee20..18e23230d98f 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -37,7 +37,7 @@ jobs: } // only approve PRs with pom.xml and versions.txt changes - const filesPromise = github.pulls.listFiles.endpoint({ + const filesPromise = github.rest.pulls.listFiles.endpoint({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.payload.pull_request.number, @@ -69,7 +69,7 @@ jobs: return; } - const promise = github.pulls.list.endpoint({ + const promise = github.rest.pulls.list.endpoint({ owner: context.repo.owner, repo: context.repo.repo, state: 'open' @@ -86,7 +86,7 @@ jobs: } // approve release PR - await github.pulls.createReview({ + await github.rest.pulls.createReview({ owner: context.repo.owner, repo: context.repo.repo, body: 'Rubber stamped release!', @@ -95,7 +95,7 @@ jobs: }); // attach kokoro:force-run and automerge labels - await github.issues.addLabels({ + await github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.payload.pull_request.number, From 7680714f4a2d0da798ec3ea613701251cba859ff Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 8 Feb 2022 17:09:38 +0100 Subject: [PATCH 1719/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.1 (#1835) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ad5a30df3d90..3c04414a204d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.33.0 + 1.33.1 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 048b6febfd6e..a4dd24173465 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.33.0 + 1.33.1 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index de49cf79a6c8..056622b34798 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.33.0 + 1.33.1 com.google.oauth-client From 950f3cdb3be2571f0519848aa167e67949e06f1e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 8 Feb 2022 17:09:49 +0100 Subject: [PATCH 1720/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.1 (#1836) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3c04414a204d..27edaf5f7df9 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.33.0 + 1.33.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a4dd24173465..09a7c7f76282 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.33.0 + 1.33.1 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 056622b34798..f51e08595827 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.33.0 + 1.33.1 From 7418e6fdb48a3b30f3ce41081141af2999dc8edf Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 8 Feb 2022 17:10:00 +0100 Subject: [PATCH 1721/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.2.7 (#1837) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 15d25e3a2e1c..e4c64c4c6864 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.2.6 + 1.2.7 From 727a07a4c6e62d9a2317bd47af81c877eed419e3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 8 Feb 2022 20:14:52 +0100 Subject: [PATCH 1722/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v24.3.0 (#1838) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java)) | `24.2.0` -> `24.3.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.3.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.3.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.3.0/compatibility-slim/24.2.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/24.3.0/confidence-slim/24.2.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9ec60a4f3542..82c393b42fb4 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 24.2.0 + 24.3.0 pom import @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:24.2.0') +implementation platform('com.google.cloud:libraries-bom:24.3.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index dc7e8910fe05..c60891617f70 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 24.2.0 + 24.3.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f51e08595827..0edf7d48534d 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 24.2.0 + 24.3.0 pom import From e8ebd5c2ed29f26aa004e1bdf59ab2e7afb2963c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 9 Feb 2022 18:06:26 +0100 Subject: [PATCH 1723/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.4.1 (#1839) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e4c64c4c6864..b93e271236b4 100644 --- a/pom.xml +++ b/pom.xml @@ -127,7 +127,7 @@ com.google.cloud google-cloud-storage - 2.4.0 + 2.4.1 test From 88fc05f3233e4e3a9cdfa73eff9856e4fd6fb1c7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 9 Feb 2022 18:06:43 +0100 Subject: [PATCH 1724/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.5.3 (#1840) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 27edaf5f7df9..4b3ba9df969d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.5.2 + 2.5.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 09a7c7f76282..e3a9c6b5dd07 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.5.2 + 2.5.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0edf7d48534d..8a7caea9d936 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.5.2 + 2.5.3 test From 15918a1fa006734ee265ccc569facb8958a1d0bb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 9 Feb 2022 18:06:52 +0100 Subject: [PATCH 1725/3441] deps: update dependency com.google.cloud:native-image-support to v0.12.1 (#1841) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index c60891617f70..e846e5692c13 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.12.0 + 0.12.1 org.junit.vintage From 56e6acf4def66c4c298fa7bb6b38025db9faee68 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 10 Feb 2022 18:02:42 +0100 Subject: [PATCH 1726/3441] deps: update dependency com.google.cloud:native-image-support to v0.12.2 (#1843) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:native-image-support](https://togithub.com/googleapis/java-core) | `0.12.1` -> `0.12.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.12.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.12.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.12.2/compatibility-slim/0.12.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.12.2/confidence-slim/0.12.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index e846e5692c13..2af27fd1eaf9 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.12.1 + 0.12.2 org.junit.vintage From a79d802a0514aaf1a48c6d8462087c9cbeb6046a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 11 Feb 2022 16:46:52 +0100 Subject: [PATCH 1727/3441] build(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.3.2 (#1846) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b93e271236b4..40574d0934cc 100644 --- a/pom.xml +++ b/pom.xml @@ -176,7 +176,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.3.1 + 3.3.2 html From b64b441bf4d0e79434e556f1fdb9ec0083d5baec Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 11 Feb 2022 17:16:06 +0100 Subject: [PATCH 1728/3441] deps: update dependency com.google.cloud:native-image-support to v0.12.3 (#1845) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 2af27fd1eaf9..6e3fced6bdb6 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.12.2 + 0.12.3 org.junit.vintage From 7ffe963043ae8b243f1e351a5fffd992f3fcbbb5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 11 Feb 2022 18:42:51 +0100 Subject: [PATCH 1729/3441] deps: update actions/github-script action to v6 (#1847) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [actions/github-script](https://togithub.com/actions/github-script) | action | major | `v5` -> `v6` | --- ### Release Notes
    actions/github-script ### [`v6`](https://togithub.com/actions/github-script/compare/v5...v6) [Compare Source](https://togithub.com/actions/github-script/compare/v5...v6)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From fd3751a44be8f6401ea4b13684f862177ee9e976 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 11 Feb 2022 15:47:33 -0500 Subject: [PATCH 1730/3441] feat: add Interval type support (#1844) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add Interval type support Fixes b/208051516 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * add threeten-extra PeriodDuration support * add unit test coverage Co-authored-by: Owl Bot --- google-cloud-bigquery/pom.xml | 4 + .../cloud/bigquery/LegacySQLTypeName.java | 3 + .../cloud/bigquery/QueryParameterValue.java | 20 ++++- .../cloud/bigquery/StandardSQLTypeName.java | 6 +- .../bigquery/QueryParameterValueTest.java | 20 +++++ .../cloud/bigquery/it/ITBigQueryTest.java | 73 +++++++++++++++++++ pom.xml | 8 ++ 7 files changed, 131 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ba2a040e64d3..acc436d43a6b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -85,6 +85,10 @@ com.google.code.gson gson
    + + org.threeten + threeten-extra + diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java index 1c2a3d884a8d..944df2fb0616 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java @@ -96,6 +96,9 @@ public LegacySQLTypeName apply(String constant) { /** Represents JSON data */ public static final LegacySQLTypeName JSON = type.createAndRegister("JSON").setStandardType(StandardSQLTypeName.JSON); + /** Represents duration or amount of time. */ + public static final LegacySQLTypeName INTERVAL = + type.createAndRegister("INTERVAL").setStandardType(StandardSQLTypeName.INTERVAL); private static Map standardToLegacyMap = new HashMap<>(); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index f7f7e384f690..227597bb13c6 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -43,6 +43,7 @@ import org.threeten.bp.format.DateTimeFormatter; import org.threeten.bp.format.DateTimeFormatterBuilder; import org.threeten.bp.format.DateTimeParseException; +import org.threeten.extra.PeriodDuration; /** * A value for a QueryParameter along with its type. @@ -63,6 +64,7 @@ *
  • BigDecimal: StandardSQLTypeName.NUMERIC *
  • BigNumeric: StandardSQLTypeName.BIGNUMERIC *
  • JSON: StandardSQLTypeName.JSON + *
  • INTERVAL: StandardSQLTypeName.INTERVAL * * *

    No other types are supported through that entry point. The other types can be created by @@ -308,12 +310,26 @@ public static QueryParameterValue time(String value) { /** * Creates a {@code QueryParameterValue} object with a type of DATETIME. Must be in the format - * "yyyy-MM-dd HH:mm:ss.SSSSSS", e.g. ""2014-08-19 12:41:35.220000". + * "yyyy-MM-dd HH:mm:ss.SSSSSS", e.g. "2014-08-19 12:41:35.220000". */ public static QueryParameterValue dateTime(String value) { return of(value, StandardSQLTypeName.DATETIME); } + /** + * Creates a {@code QueryParameterValue} object with a type of INTERVAL. Must be in the canonical + * format "[sign]Y-M [sign]D [sign]H:M:S[.F]", e.g. "123-7 -19 0:24:12.000006" or ISO 8601 + * duration format, e.g. "P123Y7M-19DT0H24M12.000006S" + */ + public static QueryParameterValue interval(String value) { + return of(value, StandardSQLTypeName.INTERVAL); + } + + /** Creates a {@code QueryParameterValue} object with a type of INTERVAL. */ + public static QueryParameterValue interval(PeriodDuration value) { + return of(value, StandardSQLTypeName.INTERVAL); + } + /** * Creates a {@code QueryParameterValue} object with a type of ARRAY, and an array element type * based on the given class. @@ -408,6 +424,8 @@ private static String valueToStringOrNull(T value, StandardSQLTypeName type) return value.toString(); case JSON: if (value instanceof String || value instanceof JsonObject) return value.toString(); + case INTERVAL: + if (value instanceof String || value instanceof PeriodDuration) return value.toString(); break; case STRUCT: throw new IllegalArgumentException("Cannot convert STRUCT to String value"); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java index 57152a2a6c2a..1081fc5d6074 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java @@ -57,6 +57,8 @@ public enum StandardSQLTypeName { DATETIME, /** Represents a set of geographic points, represented as a Well Known Text (WKT) string. */ GEOGRAPHY, - /** Represents JSON data */ - JSON + /** Represents JSON data. */ + JSON, + /** Represents duration or amount of time. */ + INTERVAL } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index 679b6ec5c968..6b5368003b71 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -27,6 +27,7 @@ import com.google.gson.JsonObject; import java.math.BigDecimal; import java.text.ParseException; +import java.time.Period; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -38,6 +39,7 @@ import org.threeten.bp.format.DateTimeFormatter; import org.threeten.bp.format.DateTimeFormatterBuilder; import org.threeten.bp.jdk8.Jdk8Methods; +import org.threeten.extra.PeriodDuration; public class QueryParameterValueTest { @@ -212,6 +214,24 @@ public void testJson() { assertThat(value1.getArrayType()).isNull(); } + @Test + public void testInterval() { + QueryParameterValue value = QueryParameterValue.interval("123-7 -19 0:24:12.000006"); + QueryParameterValue value1 = QueryParameterValue.interval("P123Y7M-19DT0H24M12.000006S"); + QueryParameterValue value2 = + QueryParameterValue.interval( + PeriodDuration.of(Period.of(1, 2, 25), java.time.Duration.ofHours(8))); + assertThat(value.getValue()).isEqualTo("123-7 -19 0:24:12.000006"); + assertThat(value1.getValue()).isEqualTo("P123Y7M-19DT0H24M12.000006S"); + assertThat(value2.getValue()).isEqualTo("P1Y2M25DT8H"); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.INTERVAL); + assertThat(value1.getType()).isEqualTo(StandardSQLTypeName.INTERVAL); + assertThat(value2.getType()).isEqualTo(StandardSQLTypeName.INTERVAL); + assertThat(value.getArrayType()).isNull(); + assertThat(value1.getArrayType()).isNull(); + assertThat(value2.getArrayType()).isNull(); + } + @Test public void testBytes() { QueryParameterValue value = QueryParameterValue.bytes(new byte[] {1, 3}); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b8051122f7a4..282bef986c2c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -130,6 +130,7 @@ import java.nio.charset.StandardCharsets; import java.nio.file.FileSystems; import java.time.Instant; +import java.time.Period; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -151,6 +152,7 @@ import org.junit.Test; import org.junit.rules.Timeout; import org.threeten.bp.Duration; +import org.threeten.extra.PeriodDuration; public class ITBigQueryTest { @@ -816,6 +818,77 @@ public void testJsonType() throws InterruptedException { } } + @Test + public void testIntervalType() throws InterruptedException { + String tableName = "test_create_table_intervaltype"; + TableId tableId = TableId.of(DATASET, tableName); + Schema schema = Schema.of(Field.of("intervalField", StandardSQLTypeName.INTERVAL)); + StandardTableDefinition standardTableDefinition = StandardTableDefinition.of(schema); + try { + // Create a table with a JSON column + Table createdTable = bigquery.create(TableInfo.of(tableId, standardTableDefinition)); + assertNotNull(createdTable); + + // Insert 3 rows of Interval data into the Interval column + Map intervalRow1 = + Collections.singletonMap("intervalField", "123-7 -19 0:24:12.000006"); + Map intervalRow2 = + Collections.singletonMap("intervalField", "P123Y7M-19DT0H24M12.000006S"); + + InsertAllRequest request = + InsertAllRequest.newBuilder(tableId).addRow(intervalRow1).addRow(intervalRow2).build(); + InsertAllResponse response = bigquery.insertAll(request); + assertFalse(response.hasErrors()); + assertEquals(0, response.getInsertErrors().size()); + + // Insert another Interval row parsed from a String with Interval positional query parameter + String dml = "INSERT INTO " + tableId.getTable() + " (intervalField) VALUES(?)"; + // Parsing from ISO 8610 format String + QueryParameterValue intervalParameter = + QueryParameterValue.interval("P125Y7M-19DT0H24M12.000006S"); + QueryJobConfiguration dmlQueryJobConfiguration = + QueryJobConfiguration.newBuilder(dml) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addPositionalParameter(intervalParameter) + .build(); + bigquery.query(dmlQueryJobConfiguration); + Page rows = bigquery.listTableData(tableId); + assertEquals(3, Iterables.size(rows.getValues())); + + // Parsing from threeten-extra PeriodDuration + QueryParameterValue intervalParameter1 = + QueryParameterValue.interval( + PeriodDuration.of(Period.of(1, 2, 25), java.time.Duration.ofHours(8))); + QueryJobConfiguration dmlQueryJobConfiguration1 = + QueryJobConfiguration.newBuilder(dml) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addPositionalParameter(intervalParameter1) + .build(); + bigquery.query(dmlQueryJobConfiguration1); + Page rows1 = bigquery.listTableData(tableId); + assertEquals(4, Iterables.size(rows1.getValues())); + + // Query the Interval column with Interval positional query parameter + String sql = "SELECT intervalField FROM " + tableId.getTable() + " WHERE intervalField = ? "; + QueryParameterValue intervalParameter2 = + QueryParameterValue.interval("P125Y7M-19DT0H24M12.000006S"); + QueryJobConfiguration queryJobConfiguration = + QueryJobConfiguration.newBuilder(sql) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .addPositionalParameter(intervalParameter2) + .build(); + TableResult result = bigquery.query(queryJobConfiguration); + for (FieldValueList values : result.iterateAll()) { + assertEquals("125-7 -19 0:24:12.000006", values.get(0).getValue()); + } + } finally { + assertTrue(bigquery.delete(tableId)); + } + } + @Test public void testCreateTableWithConstraints() { String tableName = "test_create_table_with_constraints"; diff --git a/pom.xml b/pom.xml index 40574d0934cc..d34ff12442bd 100644 --- a/pom.xml +++ b/pom.xml @@ -93,12 +93,20 @@ ${google-api-services-bigquery.version} + com.google.code.gson gson 2.8.9 + + + org.threeten + threeten-extra + 1.7.0 + + junit From 93b0d3e3f13d223e6a4ec6184e33959f9e83a27c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 11 Feb 2022 22:07:05 +0000 Subject: [PATCH 1731/3441] chore(main): release 2.9.0 (#1831) :robot: I have created a release *beep* *boop* --- ## [2.9.0](https://github.com/googleapis/java-bigquery/compare/v2.8.0...v2.9.0) (2022-02-11) ### Features * add Interval type support ([#1844](https://github.com/googleapis/java-bigquery/issues/1844)) ([fd3751a](https://github.com/googleapis/java-bigquery/commit/fd3751a44be8f6401ea4b13684f862177ee9e976)) ### Documentation * **sample:** Add sample for native image support in Bigquery ([#1829](https://github.com/googleapis/java-bigquery/issues/1829)) ([7bb6c79](https://github.com/googleapis/java-bigquery/commit/7bb6c79e4839f183dda021ddf81a3961efd752d6)) ### Dependencies * update actions/github-script action to v6 ([#1847](https://github.com/googleapis/java-bigquery/issues/1847)) ([7ffe963](https://github.com/googleapis/java-bigquery/commit/7ffe963043ae8b243f1e351a5fffd992f3fcbbb5)) * update dependency com.google.cloud:google-cloud-bigtable to v2.5.3 ([#1840](https://github.com/googleapis/java-bigquery/issues/1840)) ([88fc05f](https://github.com/googleapis/java-bigquery/commit/88fc05f3233e4e3a9cdfa73eff9856e4fd6fb1c7)) * update dependency com.google.cloud:google-cloud-storage to v2.4.0 ([#1828](https://github.com/googleapis/java-bigquery/issues/1828)) ([d628fff](https://github.com/googleapis/java-bigquery/commit/d628fff9b899e13c75aaf26d42bfc553c48a3c4e)) * update dependency com.google.cloud:google-cloud-storage to v2.4.1 ([#1839](https://github.com/googleapis/java-bigquery/issues/1839)) ([e8ebd5c](https://github.com/googleapis/java-bigquery/commit/e8ebd5c2ed29f26aa004e1bdf59ab2e7afb2963c)) * update dependency com.google.cloud:native-image-support to v0.12.0 ([#1832](https://github.com/googleapis/java-bigquery/issues/1832)) ([1d27b30](https://github.com/googleapis/java-bigquery/commit/1d27b309e2fa6cdc99fc08234390a065d7ca1098)) * update dependency com.google.cloud:native-image-support to v0.12.1 ([#1841](https://github.com/googleapis/java-bigquery/issues/1841)) ([15918a1](https://github.com/googleapis/java-bigquery/commit/15918a1fa006734ee265ccc569facb8958a1d0bb)) * update dependency com.google.cloud:native-image-support to v0.12.2 ([#1843](https://github.com/googleapis/java-bigquery/issues/1843)) ([56e6acf](https://github.com/googleapis/java-bigquery/commit/56e6acf4def66c4c298fa7bb6b38025db9faee68)) * update dependency com.google.cloud:native-image-support to v0.12.3 ([#1845](https://github.com/googleapis/java-bigquery/issues/1845)) ([b64b441](https://github.com/googleapis/java-bigquery/commit/b64b441bf4d0e79434e556f1fdb9ec0083d5baec)) * update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.1 ([#1835](https://github.com/googleapis/java-bigquery/issues/1835)) ([7680714](https://github.com/googleapis/java-bigquery/commit/7680714f4a2d0da798ec3ea613701251cba859ff)) * update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.1 ([#1836](https://github.com/googleapis/java-bigquery/issues/1836)) ([950f3cd](https://github.com/googleapis/java-bigquery/commit/950f3cdb3be2571f0519848aa167e67949e06f1e)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 33 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 20c9d3e50833..8e9adc2177ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,31 @@ # Changelog +## [2.9.0](https://github.com/googleapis/java-bigquery/compare/v2.8.0...v2.9.0) (2022-02-11) + + +### Features + +* add Interval type support ([#1844](https://github.com/googleapis/java-bigquery/issues/1844)) ([fd3751a](https://github.com/googleapis/java-bigquery/commit/fd3751a44be8f6401ea4b13684f862177ee9e976)) + + +### Documentation + +* **sample:** Add sample for native image support in Bigquery ([#1829](https://github.com/googleapis/java-bigquery/issues/1829)) ([7bb6c79](https://github.com/googleapis/java-bigquery/commit/7bb6c79e4839f183dda021ddf81a3961efd752d6)) + + +### Dependencies + +* update actions/github-script action to v6 ([#1847](https://github.com/googleapis/java-bigquery/issues/1847)) ([7ffe963](https://github.com/googleapis/java-bigquery/commit/7ffe963043ae8b243f1e351a5fffd992f3fcbbb5)) +* update dependency com.google.cloud:google-cloud-bigtable to v2.5.3 ([#1840](https://github.com/googleapis/java-bigquery/issues/1840)) ([88fc05f](https://github.com/googleapis/java-bigquery/commit/88fc05f3233e4e3a9cdfa73eff9856e4fd6fb1c7)) +* update dependency com.google.cloud:google-cloud-storage to v2.4.0 ([#1828](https://github.com/googleapis/java-bigquery/issues/1828)) ([d628fff](https://github.com/googleapis/java-bigquery/commit/d628fff9b899e13c75aaf26d42bfc553c48a3c4e)) +* update dependency com.google.cloud:google-cloud-storage to v2.4.1 ([#1839](https://github.com/googleapis/java-bigquery/issues/1839)) ([e8ebd5c](https://github.com/googleapis/java-bigquery/commit/e8ebd5c2ed29f26aa004e1bdf59ab2e7afb2963c)) +* update dependency com.google.cloud:native-image-support to v0.12.0 ([#1832](https://github.com/googleapis/java-bigquery/issues/1832)) ([1d27b30](https://github.com/googleapis/java-bigquery/commit/1d27b309e2fa6cdc99fc08234390a065d7ca1098)) +* update dependency com.google.cloud:native-image-support to v0.12.1 ([#1841](https://github.com/googleapis/java-bigquery/issues/1841)) ([15918a1](https://github.com/googleapis/java-bigquery/commit/15918a1fa006734ee265ccc569facb8958a1d0bb)) +* update dependency com.google.cloud:native-image-support to v0.12.2 ([#1843](https://github.com/googleapis/java-bigquery/issues/1843)) ([56e6acf](https://github.com/googleapis/java-bigquery/commit/56e6acf4def66c4c298fa7bb6b38025db9faee68)) +* update dependency com.google.cloud:native-image-support to v0.12.3 ([#1845](https://github.com/googleapis/java-bigquery/issues/1845)) ([b64b441](https://github.com/googleapis/java-bigquery/commit/b64b441bf4d0e79434e556f1fdb9ec0083d5baec)) +* update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.1 ([#1835](https://github.com/googleapis/java-bigquery/issues/1835)) ([7680714](https://github.com/googleapis/java-bigquery/commit/7680714f4a2d0da798ec3ea613701251cba859ff)) +* update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.1 ([#1836](https://github.com/googleapis/java-bigquery/issues/1836)) ([950f3cd](https://github.com/googleapis/java-bigquery/commit/950f3cdb3be2571f0519848aa167e67949e06f1e)) + ## [2.8.0](https://github.com/googleapis/java-bigquery/compare/v2.7.1...v2.8.0) (2022-02-02) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4cdb68ba170c..8472c7ebb2ce 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.8.1-SNAPSHOT + 2.9.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index acc436d43a6b..123f95281e18 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.8.1-SNAPSHOT + 2.9.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.8.1-SNAPSHOT + 2.9.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d34ff12442bd..4048b0b992b0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.8.1-SNAPSHOT + 2.9.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.8.1-SNAPSHOT + 2.9.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e3a9c6b5dd07..312c27457673 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.8.1-SNAPSHOT + 2.9.0 diff --git a/versions.txt b/versions.txt index ed75b039a385..8dc052a16ab2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.8.0:2.8.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.9.0:2.9.0 \ No newline at end of file From e2c65e119adc179f8db786cc99551422076e82c4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 11 Feb 2022 23:02:44 +0000 Subject: [PATCH 1732/3441] chore(main): release 2.9.1-SNAPSHOT (#1851) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8472c7ebb2ce..bcdb43dbc65a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.9.0 + 2.9.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 123f95281e18..8c714685b7a2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.9.0 + 2.9.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.9.0 + 2.9.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4048b0b992b0..c458e286f916 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.9.0 + 2.9.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.9.0 + 2.9.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 312c27457673..65665a06f78a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.9.0 + 2.9.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 8dc052a16ab2..509577ad8028 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.9.0:2.9.0 \ No newline at end of file +google-cloud-bigquery:2.9.0:2.9.1-SNAPSHOT \ No newline at end of file From 627da62bd02314c673c345bd8eb87e973a805bc7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 14 Feb 2022 00:33:58 +0100 Subject: [PATCH 1733/3441] deps: update dependency com.google.code.gson:gson to v2.9.0 (#1850) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c458e286f916..a77f773070e4 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.code.gson gson - 2.8.9 + 2.9.0 From ef91109821a702a6b55b4f1265e812578ca881d8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 14 Feb 2022 00:34:37 +0100 Subject: [PATCH 1734/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.4.2 (#1853) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-storage to v2.4.2 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 82c393b42fb4..2557f7117195 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.8.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.9.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.8.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.9.0" ``` ## Authentication diff --git a/pom.xml b/pom.xml index a77f773070e4..2665ea4288d0 100644 --- a/pom.xml +++ b/pom.xml @@ -135,7 +135,7 @@ com.google.cloud google-cloud-storage - 2.4.1 + 2.4.2 test From c979f550bf34d6bf29dadf5b5ed08b52dade3cd6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 14 Feb 2022 00:35:09 +0100 Subject: [PATCH 1735/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.10 (#1854) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.10 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4b3ba9df969d..42371f6ed4d5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.9 + 2.1.10 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 65665a06f78a..35ab225ef497 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.9 + 2.1.10 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 8a7caea9d936..3e913a834644 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.9 + 2.1.10 test From 376738d5fb7253de6e2e9d574aa99e9d7a9e67ad Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 14 Feb 2022 00:35:37 +0100 Subject: [PATCH 1736/3441] deps: update dependency com.google.cloud:native-image-support to v0.12.4 (#1855) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:native-image-support to v0.12.4 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 6e3fced6bdb6..4eeaa7c9a536 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.12.3 + 0.12.4 org.junit.vintage From b3b5398d6ba5473e0a4a2f30cbb76510e0eb7e62 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 14 Feb 2022 00:35:52 +0100 Subject: [PATCH 1737/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.9.0 (#1856) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.9.0 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2557f7117195..d3f20914ee25 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.8.0 + 2.9.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 42371f6ed4d5..115af2736a5a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.8.0 + 2.9.0 From 3e82960f75ced489f9f0e72fe45165ab866f1d8b Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Mon, 14 Feb 2022 11:00:32 -0500 Subject: [PATCH 1738/3441] fix(java): add additional configurations to fix native image tests (#1859) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(java): add configurations to fix native image tests * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../cloud/bigquery/it/ITBigQueryTest.java | 7 +++--- .../META-INF/native-image/reflect-config.json | 23 +++++++++++++++++++ .../native-image/resource-config.json | 3 +++ 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 google-cloud-bigquery/src/test/resources/META-INF/native-image/reflect-config.json create mode 100644 google-cloud-bigquery/src/test/resources/META-INF/native-image/resource-config.json diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 282bef986c2c..9cab253a2179 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -125,10 +125,10 @@ import com.google.common.io.BaseEncoding; import com.google.gson.JsonObject; import java.io.IOException; +import java.io.InputStream; import java.math.BigDecimal; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; -import java.nio.file.FileSystems; import java.time.Instant; import java.time.Period; import java.util.ArrayList; @@ -472,9 +472,10 @@ public static void beforeClass() throws InterruptedException, IOException { .setContentType("application/json") .build(), JSON_CONTENT_SIMPLE.getBytes(StandardCharsets.UTF_8)); + InputStream stream = + ITBigQueryTest.class.getClassLoader().getResourceAsStream("QueryTestData.csv"); storage.createFrom( - BlobInfo.newBuilder(BUCKET, LOAD_FILE_LARGE).setContentType("text/plain").build(), - FileSystems.getDefault().getPath("src/test/resources", "QueryTestData.csv")); + BlobInfo.newBuilder(BUCKET, LOAD_FILE_LARGE).setContentType("text/plain").build(), stream); DatasetInfo info = DatasetInfo.newBuilder(DATASET).setDescription(DESCRIPTION).setLabels(LABELS).build(); bigquery.create(info); diff --git a/google-cloud-bigquery/src/test/resources/META-INF/native-image/reflect-config.json b/google-cloud-bigquery/src/test/resources/META-INF/native-image/reflect-config.json new file mode 100644 index 000000000000..b999445994ae --- /dev/null +++ b/google-cloud-bigquery/src/test/resources/META-INF/native-image/reflect-config.json @@ -0,0 +1,23 @@ +[ + { + "name":"java.lang.Object", + "methods":[{"name":"","parameterTypes":[] }] + }, + { + "name":"com.google.api.client.googleapis.json.GoogleJsonError", + "methods":[ + {"name":"","parameterTypes":[] }] + }, + { + "name":"com.google.api.client.googleapis.json.GoogleJsonError$Details", + "methods":[{"name":"","parameterTypes":[] }] + }, + { + "name":"com.google.api.client.googleapis.json.GoogleJsonError$ErrorInfo", + "methods":[{"name":"","parameterTypes":[]}] + }, + { + "name":"java.util.HashMap", + "methods":[{"name":"","parameterTypes":[] }] + } +] \ No newline at end of file diff --git a/google-cloud-bigquery/src/test/resources/META-INF/native-image/resource-config.json b/google-cloud-bigquery/src/test/resources/META-INF/native-image/resource-config.json new file mode 100644 index 000000000000..e00ed1f1c516 --- /dev/null +++ b/google-cloud-bigquery/src/test/resources/META-INF/native-image/resource-config.json @@ -0,0 +1,3 @@ +{ + "resources":[{"pattern": ".*.csv"}] +} \ No newline at end of file From 5598477db7a0eeddd72795ddb9257ade539597b2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 14 Feb 2022 17:00:55 +0100 Subject: [PATCH 1739/3441] build(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.10.0 (#1858) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index bcdb43dbc65a..92f57952589a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -37,7 +37,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.9.0 + 3.10.0 org.apache.maven.plugins From b31b44c170b1bc948daaae1a9ae6c469370f986c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 14 Feb 2022 19:49:06 +0100 Subject: [PATCH 1740/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.10 (#1860) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 4eeaa7c9a536..7f552bafcf25 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -104,7 +104,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.9 + 0.9.10 test From ae05dfed0e670826f7674dc092b91bd5f634bf97 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 14 Feb 2022 19:49:37 +0100 Subject: [PATCH 1741/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.10 (#1861) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 7f552bafcf25..040ed2f62d34 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -126,7 +126,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.9 + 0.9.10 true com.example.bigquery.NativeImageBigquerySample From 9359e0cd4c13bc9f391310613ebf90015973f39b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 15 Feb 2022 16:51:36 +0100 Subject: [PATCH 1742/3441] build(deps): update dependency org.sonatype.plugins:nexus-staging-maven-plugin to v1.6.10 (#1862) --- benchmark/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 92f57952589a..d7acfdca9e7a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -83,7 +83,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.8 + 1.6.10 true diff --git a/samples/pom.xml b/samples/pom.xml index a02b0b6c468b..1fd03cadb578 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -63,7 +63,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.8 + 1.6.10 true diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3e913a834644..aeb6f0648ff0 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -117,7 +117,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.8 + 1.6.10 true From c37f800941f70d49e3316bd5f4299f3fce654f64 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 16 Feb 2022 17:32:57 +0100 Subject: [PATCH 1743/3441] build(deps): update dependency org.sonatype.plugins:nexus-staging-maven-plugin to v1.6.11 (#1864) --- benchmark/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d7acfdca9e7a..370b42876ee3 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -83,7 +83,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.10 + 1.6.11 true diff --git a/samples/pom.xml b/samples/pom.xml index 1fd03cadb578..5614ef815893 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -63,7 +63,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.10 + 1.6.11 true diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index aeb6f0648ff0..798d431117cf 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -117,7 +117,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.10 + 1.6.11 true From cf9c36ff641dfcb889ee2d2c7da79e4ef95482d3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 24 Feb 2022 01:03:45 +0100 Subject: [PATCH 1744/3441] build(deps): update dependency org.sonatype.plugins:nexus-staging-maven-plugin to v1.6.12 (#1867) --- benchmark/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 370b42876ee3..bbb7694c2839 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -83,7 +83,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.11 + 1.6.12 true diff --git a/samples/pom.xml b/samples/pom.xml index 5614ef815893..4e280e644d71 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -63,7 +63,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.11 + 1.6.12 true diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 798d431117cf..cebeff8a1641 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -117,7 +117,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.11 + 1.6.12 true From 7fa7480774f88bae2ffc2f03ab447381b9b3bf4a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 25 Feb 2022 16:18:25 +0100 Subject: [PATCH 1745/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.2.2 (#1869) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2665ea4288d0..c90c999a460b 100644 --- a/pom.xml +++ b/pom.xml @@ -157,7 +157,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.2.1 + 3.2.2 From bd6dd2a7d8be6df240260d280fa35aa047bbb420 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 25 Feb 2022 22:06:43 +0000 Subject: [PATCH 1746/3441] ci: pull request template includes sample format (#1357) (#1871) Source-Link: https://github.com/googleapis/synthtool/commit/e122cb03ea37652946651346736d99b9dcc4311f Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:387835a1375a0049ec44e02542c844302854c732d8291bdf8e472c0ff70a8f67 --- .github/.OwlBot.lock.yaml | 2 +- .github/PULL_REQUEST_TEMPLATE.md | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 9786771c434b..9351fdfb9ac8 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:3c950ed12391ebaffd1ee66d0374766a1c50144ebe6a7a0042300b2e6bb5856b + digest: sha256:387835a1375a0049ec44e02542c844302854c732d8291bdf8e472c0ff70a8f67 diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 0eddd3d4fc44..51efda31d403 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -5,3 +5,6 @@ Thank you for opening a Pull Request! Before submitting your PR, there are a few - [ ] Appropriate docs were updated (if necessary) Fixes # ☕️ + +If you write sample code, please follow the [samples format]( +https://github.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md). From 698306e480b5f3a180c62b6d9ae0d919e05154d3 Mon Sep 17 00:00:00 2001 From: Prashant Mishra Date: Tue, 1 Mar 2022 04:52:30 +0530 Subject: [PATCH 1747/3441] docs(sample): Table exists sample fix (#1868) Added `null` check in the sample and modified the test case to test for "Table not found" --- .../src/main/java/com/example/bigquery/TableExists.java | 5 ++++- .../src/test/java/com/example/bigquery/TableExistsIT.java | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/TableExists.java b/samples/snippets/src/main/java/com/example/bigquery/TableExists.java index 0775c2548b1c..0447fe3de190 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/TableExists.java +++ b/samples/snippets/src/main/java/com/example/bigquery/TableExists.java @@ -40,7 +40,10 @@ public static void tableExists(String datasetName, String tableName) { BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); Table table = bigquery.getTable(TableId.of(datasetName, tableName)); - if (table.exists()) { + if (table != null + && table + .exists()) { // table will be null if it is not found and setThrowNotFound is not set + // to `true` System.out.println("Table already exist"); } else { System.out.println("Table not found"); diff --git a/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java b/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java index 4ff04e4efa0a..4573648a6141 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java @@ -61,7 +61,6 @@ public void setUp() { System.setOut(out); // create a temporary table tableName = "MY_TABLE_NAME_TEST_" + UUID.randomUUID().toString().substring(0, 8); - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); } @After @@ -76,6 +75,9 @@ public void tearDown() { @Test public void testTableExists() { + TableExists.tableExists(BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()).contains("Table not found"); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); TableExists.tableExists(BIGQUERY_DATASET_NAME, tableName); assertThat(bout.toString()).contains("Table already exist"); } From e67cf65bc044d07ba386f98cf67d2e16144255d0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 1 Mar 2022 01:23:10 +0100 Subject: [PATCH 1748/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220220-1.32.1 (#1872) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c90c999a460b..c1712c9aa85f 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220123-1.32.1 + v2-rev20220220-1.32.1 2.7.0 From a4deb16ed54edf51608f27b47b0846fb23c553fd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 1 Mar 2022 03:48:20 +0100 Subject: [PATCH 1749/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.4.4 (#1873) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.4.2` -> `2.4.4` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.4.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.4.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.4.4/compatibility-slim/2.4.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.4.4/confidence-slim/2.4.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes

    googleapis/java-storage ### [`v2.4.4`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​244-httpsgithubcomgoogleapisjava-storagecomparev243v244-2022-02-28) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.4.3...v2.4.4) ### [`v2.4.3`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​243-httpsgithubcomgoogleapisjava-storagecomparev242v243-2022-02-25) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.4.2...v2.4.3)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c1712c9aa85f..4f6bd87d17ea 100644 --- a/pom.xml +++ b/pom.xml @@ -135,7 +135,7 @@ com.google.cloud google-cloud-storage - 2.4.2 + 2.4.4 test From c68c49a26abdcce8468b5e848cf39c458aba4774 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 1 Mar 2022 18:52:17 +0100 Subject: [PATCH 1750/3441] deps: update dependency com.google.cloud:native-image-support to v0.12.5 (#1874) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:native-image-support](https://togithub.com/googleapis/java-core) | `0.12.4` -> `0.12.5` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.12.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.12.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.12.5/compatibility-slim/0.12.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.12.5/confidence-slim/0.12.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 040ed2f62d34..b8fc2ecf32dd 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.12.4 + 0.12.5 org.junit.vintage From 04a97713ea791b1b48baa8f197e7e9030ac4736e Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 1 Mar 2022 22:36:18 +0000 Subject: [PATCH 1751/3441] chore: update github actions (#1361) (#1875) * chore: update github actions * chore: update Source-Link: https://github.com/googleapis/synthtool/commit/1622741e6877d4b335b137ac7e07f7f32d4e5af7 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:e3746f84955528d0fe24bf2e4df89875d6ce5a036af01b9c326d61a38838523a --- .github/.OwlBot.lock.yaml | 2 +- .github/workflows/approve-readme.yaml | 2 +- .github/workflows/auto-release.yaml | 2 +- .github/workflows/ci.yaml | 20 ++++++++++---------- .github/workflows/samples.yaml | 4 ++-- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 9351fdfb9ac8..53941094cf48 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:387835a1375a0049ec44e02542c844302854c732d8291bdf8e472c0ff70a8f67 + digest: sha256:e3746f84955528d0fe24bf2e4df89875d6ce5a036af01b9c326d61a38838523a diff --git a/.github/workflows/approve-readme.yaml b/.github/workflows/approve-readme.yaml index 1bb182327612..f5fc7d5169eb 100644 --- a/.github/workflows/approve-readme.yaml +++ b/.github/workflows/approve-readme.yaml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest if: github.repository_owner == 'googleapis' && github.head_ref == 'autosynth-readme' steps: - - uses: actions/github-script@v5 + - uses: actions/github-script@v6 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} script: | diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 18e23230d98f..7a106d007edf 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest if: contains(github.head_ref, 'release-please') steps: - - uses: actions/github-script@v5 + - uses: actions/github-script@v6 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} debug: true diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6b5e56aaacd1..83ef7f9c2cf3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -27,8 +27,8 @@ jobs: matrix: java: [8, 11, 17] steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: distribution: zulu java-version: ${{matrix.java}} @@ -39,8 +39,8 @@ jobs: windows: runs-on: windows-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: distribution: zulu java-version: 8 @@ -54,8 +54,8 @@ jobs: matrix: java: [8, 11, 17] steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: distribution: zulu java-version: ${{matrix.java}} @@ -64,8 +64,8 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: distribution: zulu java-version: 11 @@ -76,8 +76,8 @@ jobs: clirr: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: distribution: zulu java-version: 8 diff --git a/.github/workflows/samples.yaml b/.github/workflows/samples.yaml index d5d964df15fa..de737e92a8a2 100644 --- a/.github/workflows/samples.yaml +++ b/.github/workflows/samples.yaml @@ -20,8 +20,8 @@ jobs: checkstyle: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v1 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: java-version: 8 - name: Run checkstyle From a16985f79f5e09ee6567caf3eb502d7e88103f97 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 2 Mar 2022 18:05:34 +0100 Subject: [PATCH 1752/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.8.0 (#1876) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4f6bd87d17ea..36b9ebc66068 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20220220-1.32.1 - 2.7.0 + 2.8.0 From 3749921d6d120ffd79941c9ede64822cea03f1cd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 2 Mar 2022 18:05:52 +0100 Subject: [PATCH 1753/3441] deps: update dependency com.google.cloud:native-image-support to v0.12.6 (#1878) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index b8fc2ecf32dd..defbf2acaa8a 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.12.5 + 0.12.6 org.junit.vintage From cbc9208e105ed9b085a4d239b02f43fa82f03a71 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 2 Mar 2022 18:08:36 +0100 Subject: [PATCH 1754/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v24.4.0 (#1880) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v24.4.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d3f20914ee25..b5057ae0eb88 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 24.3.0 + 24.4.0 pom import @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:24.3.0') +implementation platform('com.google.cloud:libraries-bom:24.4.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index defbf2acaa8a..75cad8958d33 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 24.3.0 + 24.4.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index cebeff8a1641..4c0b2d95f28e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 24.3.0 + 24.4.0 pom import From 62ddb6133115626172458327cd5c104cc6fc7310 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 2 Mar 2022 12:10:24 -0500 Subject: [PATCH 1755/3441] Revert "chore: update github actions (#1361)" (#1881) Due to the fact that it is causing checkstyle failure: https://github.com/googleapis/java-bigquery/pull/1875#issuecomment-1057147095 --- .github/.OwlBot.lock.yaml | 2 +- .github/workflows/approve-readme.yaml | 2 +- .github/workflows/auto-release.yaml | 2 +- .github/workflows/ci.yaml | 20 ++++++++++---------- .github/workflows/samples.yaml | 4 ++-- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 53941094cf48..9351fdfb9ac8 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:e3746f84955528d0fe24bf2e4df89875d6ce5a036af01b9c326d61a38838523a + digest: sha256:387835a1375a0049ec44e02542c844302854c732d8291bdf8e472c0ff70a8f67 diff --git a/.github/workflows/approve-readme.yaml b/.github/workflows/approve-readme.yaml index f5fc7d5169eb..1bb182327612 100644 --- a/.github/workflows/approve-readme.yaml +++ b/.github/workflows/approve-readme.yaml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest if: github.repository_owner == 'googleapis' && github.head_ref == 'autosynth-readme' steps: - - uses: actions/github-script@v6 + - uses: actions/github-script@v5 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} script: | diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 7a106d007edf..18e23230d98f 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest if: contains(github.head_ref, 'release-please') steps: - - uses: actions/github-script@v6 + - uses: actions/github-script@v5 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} debug: true diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 83ef7f9c2cf3..6b5e56aaacd1 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -27,8 +27,8 @@ jobs: matrix: java: [8, 11, 17] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v2 + - uses: actions/setup-java@v2 with: distribution: zulu java-version: ${{matrix.java}} @@ -39,8 +39,8 @@ jobs: windows: runs-on: windows-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v2 + - uses: actions/setup-java@v2 with: distribution: zulu java-version: 8 @@ -54,8 +54,8 @@ jobs: matrix: java: [8, 11, 17] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v2 + - uses: actions/setup-java@v2 with: distribution: zulu java-version: ${{matrix.java}} @@ -64,8 +64,8 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v2 + - uses: actions/setup-java@v2 with: distribution: zulu java-version: 11 @@ -76,8 +76,8 @@ jobs: clirr: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v2 + - uses: actions/setup-java@v2 with: distribution: zulu java-version: 8 diff --git a/.github/workflows/samples.yaml b/.github/workflows/samples.yaml index de737e92a8a2..d5d964df15fa 100644 --- a/.github/workflows/samples.yaml +++ b/.github/workflows/samples.yaml @@ -20,8 +20,8 @@ jobs: checkstyle: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v2 + - uses: actions/setup-java@v1 with: java-version: 8 - name: Run checkstyle From 1bc9188e4f6679b3079d0da153ff4d8af62037a5 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 2 Mar 2022 20:54:23 +0000 Subject: [PATCH 1756/3441] chore: fix license header in build.bat (#1363) (#1883) * chore: fix license header in build.bat * chore: add disctribution field for setup-java action Source-Link: https://github.com/googleapis/synthtool/commit/4fea5f40a9075f3ba205ede0b453010cf080e194 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:df8d7b2cc0dbc65871e7edd86601901a0612b272fa3f7f0eb590c5c53aa5f92e --- .github/.OwlBot.lock.yaml | 2 +- .github/workflows/approve-readme.yaml | 2 +- .github/workflows/auto-release.yaml | 2 +- .github/workflows/ci.yaml | 20 +++++++++--------- .github/workflows/samples.yaml | 5 +++-- .kokoro/build.bat | 30 +++++++++++++-------------- 6 files changed, 31 insertions(+), 30 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 9351fdfb9ac8..3473042c086e 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:387835a1375a0049ec44e02542c844302854c732d8291bdf8e472c0ff70a8f67 + digest: sha256:df8d7b2cc0dbc65871e7edd86601901a0612b272fa3f7f0eb590c5c53aa5f92e diff --git a/.github/workflows/approve-readme.yaml b/.github/workflows/approve-readme.yaml index 1bb182327612..f5fc7d5169eb 100644 --- a/.github/workflows/approve-readme.yaml +++ b/.github/workflows/approve-readme.yaml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest if: github.repository_owner == 'googleapis' && github.head_ref == 'autosynth-readme' steps: - - uses: actions/github-script@v5 + - uses: actions/github-script@v6 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} script: | diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 18e23230d98f..7a106d007edf 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest if: contains(github.head_ref, 'release-please') steps: - - uses: actions/github-script@v5 + - uses: actions/github-script@v6 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} debug: true diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6b5e56aaacd1..83ef7f9c2cf3 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -27,8 +27,8 @@ jobs: matrix: java: [8, 11, 17] steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: distribution: zulu java-version: ${{matrix.java}} @@ -39,8 +39,8 @@ jobs: windows: runs-on: windows-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: distribution: zulu java-version: 8 @@ -54,8 +54,8 @@ jobs: matrix: java: [8, 11, 17] steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: distribution: zulu java-version: ${{matrix.java}} @@ -64,8 +64,8 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: distribution: zulu java-version: 11 @@ -76,8 +76,8 @@ jobs: clirr: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v2 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: distribution: zulu java-version: 8 diff --git a/.github/workflows/samples.yaml b/.github/workflows/samples.yaml index d5d964df15fa..912ed8b2b027 100644 --- a/.github/workflows/samples.yaml +++ b/.github/workflows/samples.yaml @@ -20,9 +20,10 @@ jobs: checkstyle: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v1 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: + distribution: zulu java-version: 8 - name: Run checkstyle run: mvn -P lint --quiet --batch-mode checkstyle:check diff --git a/.kokoro/build.bat b/.kokoro/build.bat index cc602c9eba80..067cf4a4c489 100644 --- a/.kokoro/build.bat +++ b/.kokoro/build.bat @@ -1,18 +1,18 @@ +:: Copyright 2022 Google LLC +:: +:: Licensed under the Apache License, Version 2.0 (the "License"); +:: you may not use this file except in compliance with the License. +:: You may obtain a copy of the License at +:: +:: http://www.apache.org/licenses/LICENSE-2.0 +:: +:: Unless required by applicable law or agreed to in writing, software +:: distributed under the License is distributed on an "AS IS" BASIS, +:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +:: See the License for the specific language governing permissions and +:: limitations under the License. +:: Github action job to test core java library features on +:: downstream client libraries before they are released. :: See documentation in type-shell-output.bat -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Github action job to test core java library features on -# downstream client libraries before they are released. "C:\Program Files\Git\bin\bash.exe" %~dp0build.sh From fd0753338e15965347683345b0e51838baf5d9f6 Mon Sep 17 00:00:00 2001 From: Franklin Whaite <70151215+franklinWhaite@users.noreply.github.com> Date: Thu, 3 Mar 2022 12:16:27 -0500 Subject: [PATCH 1757/3441] Fix: adjusting retry logic to avoid retrying successful job creation (#1879) https://github.com/googleapis/java-bigquery/pull/1744 introduced retrying 200 responses, but the regex that we are using is too broad: [".*exceed.*rate.limit."] and in some cases it may catch a valid response. The issue is that the current logic is scanning the whole response. In this PR the retry logic is modified to specifically check the error message from the response. For this purpose parsing logic was developed to extract error messages from responses. This logic is specifically designed for the [jobs.insert method response](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/insert#response-body) (only case observed so far where a response with status code 200 might also return an error message). --- .../bigquery/BigQueryRetryAlgorithm.java | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java index af472430fcf1..0429b7f005e4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java @@ -25,6 +25,8 @@ import com.google.api.gax.retrying.TimedAttemptSettings; import com.google.api.gax.retrying.TimedRetryAlgorithm; import com.google.api.gax.retrying.TimedRetryAlgorithmWithContext; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import java.util.Iterator; import java.util.UUID; import java.util.concurrent.CancellationException; @@ -107,9 +109,10 @@ private boolean shouldRetryBasedOnBigQueryRetryConfig( /* In some cases error messages may come without an exception e.g. status code 200 with a rate limit exceeded for job create - in these cases there is now previousThrowable so we need to check previousResponse + in these cases there is no previousThrowable so we need + to check for error messages in previousResponse */ - errorDesc = previousResponse.toString(); + errorDesc = getErrorDescFromResponse(previousResponse); } if (errorDesc != null) { @@ -212,4 +215,28 @@ private TimedAttemptSettings createNextAttemptBasedOnTiming( } return getTimedAlgorithm().createNextAttempt(previousSettings); } + + private String getErrorDescFromResponse(ResponseT previousResponse) { + /* + error messages may come without an exception and must be extracted from response + following logic based on response body of jobs.insert method, so far the only + known case where a response with status code 200 may contain an error message + */ + try { + JsonObject responseJson = + JsonParser.parseString(previousResponse.toString()).getAsJsonObject(); + if (responseJson.has("status") && responseJson.getAsJsonObject("status").has("errorResult")) { + return responseJson + .getAsJsonObject("status") + .getAsJsonObject("errorResult") + .get("message") + .toString(); + } else { + return null; + } + } catch (Exception e) { + // exceptions here implies no error message present in response, returning null + return null; + } + } } From 7176c30e2c5c63b1b2875994e0fce9a8a3a68122 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 3 Mar 2022 17:50:27 +0000 Subject: [PATCH 1758/3441] chore(main): release 2.9.1 (#1857) :robot: I have created a release *beep* *boop* --- ### [2.9.1](https://github.com/googleapis/java-bigquery/compare/v2.9.0...v2.9.1) (2022-03-03) ### Bug Fixes * adjusting retry logic to avoid retrying successful job creation ([#1879](https://github.com/googleapis/java-bigquery/issues/1879)) ([fd07533](https://github.com/googleapis/java-bigquery/commit/fd0753338e15965347683345b0e51838baf5d9f6)) * **java:** add additional configurations to fix native image tests ([#1859](https://github.com/googleapis/java-bigquery/issues/1859)) ([3e82960](https://github.com/googleapis/java-bigquery/commit/3e82960f75ced489f9f0e72fe45165ab866f1d8b)) ### Documentation * **sample:** Table exists sample fix ([#1868](https://github.com/googleapis/java-bigquery/issues/1868)) ([698306e](https://github.com/googleapis/java-bigquery/commit/698306e480b5f3a180c62b6d9ae0d919e05154d3)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220220-1.32.1 ([#1872](https://github.com/googleapis/java-bigquery/issues/1872)) ([e67cf65](https://github.com/googleapis/java-bigquery/commit/e67cf65bc044d07ba386f98cf67d2e16144255d0)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.8.0 ([#1876](https://github.com/googleapis/java-bigquery/issues/1876)) ([a16985f](https://github.com/googleapis/java-bigquery/commit/a16985f79f5e09ee6567caf3eb502d7e88103f97)) * update dependency com.google.cloud:google-cloud-storage to v2.4.2 ([#1853](https://github.com/googleapis/java-bigquery/issues/1853)) ([ef91109](https://github.com/googleapis/java-bigquery/commit/ef91109821a702a6b55b4f1265e812578ca881d8)) * update dependency com.google.cloud:google-cloud-storage to v2.4.4 ([#1873](https://github.com/googleapis/java-bigquery/issues/1873)) ([a4deb16](https://github.com/googleapis/java-bigquery/commit/a4deb16ed54edf51608f27b47b0846fb23c553fd)) * update dependency com.google.cloud:native-image-support to v0.12.4 ([#1855](https://github.com/googleapis/java-bigquery/issues/1855)) ([376738d](https://github.com/googleapis/java-bigquery/commit/376738d5fb7253de6e2e9d574aa99e9d7a9e67ad)) * update dependency com.google.cloud:native-image-support to v0.12.5 ([#1874](https://github.com/googleapis/java-bigquery/issues/1874)) ([c68c49a](https://github.com/googleapis/java-bigquery/commit/c68c49a26abdcce8468b5e848cf39c458aba4774)) * update dependency com.google.cloud:native-image-support to v0.12.6 ([#1878](https://github.com/googleapis/java-bigquery/issues/1878)) ([3749921](https://github.com/googleapis/java-bigquery/commit/3749921d6d120ffd79941c9ede64822cea03f1cd)) * update dependency com.google.code.gson:gson to v2.9.0 ([#1850](https://github.com/googleapis/java-bigquery/issues/1850)) ([627da62](https://github.com/googleapis/java-bigquery/commit/627da62bd02314c673c345bd8eb87e973a805bc7)) * update dependency org.graalvm.buildtools:junit-platform-native to v0.9.10 ([#1860](https://github.com/googleapis/java-bigquery/issues/1860)) ([b31b44c](https://github.com/googleapis/java-bigquery/commit/b31b44c170b1bc948daaae1a9ae6c469370f986c)) * update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.10 ([#1861](https://github.com/googleapis/java-bigquery/issues/1861)) ([ae05dfe](https://github.com/googleapis/java-bigquery/commit/ae05dfed0e670826f7674dc092b91bd5f634bf97)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 34 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e9adc2177ec..8af93a8aac02 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ # Changelog +### [2.9.1](https://github.com/googleapis/java-bigquery/compare/v2.9.0...v2.9.1) (2022-03-03) + + +### Bug Fixes + +* adjusting retry logic to avoid retrying successful job creation ([#1879](https://github.com/googleapis/java-bigquery/issues/1879)) ([fd07533](https://github.com/googleapis/java-bigquery/commit/fd0753338e15965347683345b0e51838baf5d9f6)) +* **java:** add additional configurations to fix native image tests ([#1859](https://github.com/googleapis/java-bigquery/issues/1859)) ([3e82960](https://github.com/googleapis/java-bigquery/commit/3e82960f75ced489f9f0e72fe45165ab866f1d8b)) + + +### Documentation + +* **sample:** Table exists sample fix ([#1868](https://github.com/googleapis/java-bigquery/issues/1868)) ([698306e](https://github.com/googleapis/java-bigquery/commit/698306e480b5f3a180c62b6d9ae0d919e05154d3)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220220-1.32.1 ([#1872](https://github.com/googleapis/java-bigquery/issues/1872)) ([e67cf65](https://github.com/googleapis/java-bigquery/commit/e67cf65bc044d07ba386f98cf67d2e16144255d0)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.8.0 ([#1876](https://github.com/googleapis/java-bigquery/issues/1876)) ([a16985f](https://github.com/googleapis/java-bigquery/commit/a16985f79f5e09ee6567caf3eb502d7e88103f97)) +* update dependency com.google.cloud:google-cloud-storage to v2.4.2 ([#1853](https://github.com/googleapis/java-bigquery/issues/1853)) ([ef91109](https://github.com/googleapis/java-bigquery/commit/ef91109821a702a6b55b4f1265e812578ca881d8)) +* update dependency com.google.cloud:google-cloud-storage to v2.4.4 ([#1873](https://github.com/googleapis/java-bigquery/issues/1873)) ([a4deb16](https://github.com/googleapis/java-bigquery/commit/a4deb16ed54edf51608f27b47b0846fb23c553fd)) +* update dependency com.google.cloud:native-image-support to v0.12.4 ([#1855](https://github.com/googleapis/java-bigquery/issues/1855)) ([376738d](https://github.com/googleapis/java-bigquery/commit/376738d5fb7253de6e2e9d574aa99e9d7a9e67ad)) +* update dependency com.google.cloud:native-image-support to v0.12.5 ([#1874](https://github.com/googleapis/java-bigquery/issues/1874)) ([c68c49a](https://github.com/googleapis/java-bigquery/commit/c68c49a26abdcce8468b5e848cf39c458aba4774)) +* update dependency com.google.cloud:native-image-support to v0.12.6 ([#1878](https://github.com/googleapis/java-bigquery/issues/1878)) ([3749921](https://github.com/googleapis/java-bigquery/commit/3749921d6d120ffd79941c9ede64822cea03f1cd)) +* update dependency com.google.code.gson:gson to v2.9.0 ([#1850](https://github.com/googleapis/java-bigquery/issues/1850)) ([627da62](https://github.com/googleapis/java-bigquery/commit/627da62bd02314c673c345bd8eb87e973a805bc7)) +* update dependency org.graalvm.buildtools:junit-platform-native to v0.9.10 ([#1860](https://github.com/googleapis/java-bigquery/issues/1860)) ([b31b44c](https://github.com/googleapis/java-bigquery/commit/b31b44c170b1bc948daaae1a9ae6c469370f986c)) +* update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.10 ([#1861](https://github.com/googleapis/java-bigquery/issues/1861)) ([ae05dfe](https://github.com/googleapis/java-bigquery/commit/ae05dfed0e670826f7674dc092b91bd5f634bf97)) + ## [2.9.0](https://github.com/googleapis/java-bigquery/compare/v2.8.0...v2.9.0) (2022-02-11) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index bbb7694c2839..336b7f398f30 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.9.1-SNAPSHOT + 2.9.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8c714685b7a2..402ae4e29701 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.9.1-SNAPSHOT + 2.9.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.9.1-SNAPSHOT + 2.9.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 36b9ebc66068..bf73724afedf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.9.1-SNAPSHOT + 2.9.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.9.1-SNAPSHOT + 2.9.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 35ab225ef497..c2e0ebb5d0a0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.9.1-SNAPSHOT + 2.9.1 diff --git a/versions.txt b/versions.txt index 509577ad8028..bb05ed50ce8d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.9.0:2.9.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.9.1:2.9.1 \ No newline at end of file From c392f872ed207285e70dea4fc11dfaa2e172300f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 3 Mar 2022 18:06:27 +0000 Subject: [PATCH 1759/3441] chore(main): release 2.9.2-SNAPSHOT (#1884) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 336b7f398f30..2a38f5cb0b96 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.9.1 + 2.9.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 402ae4e29701..07618fc723e6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.9.1 + 2.9.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.9.1 + 2.9.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bf73724afedf..a7856b14098f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.9.1 + 2.9.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.9.1 + 2.9.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c2e0ebb5d0a0..37c945a6cafd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.9.1 + 2.9.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index bb05ed50ce8d..3286c7bc21c2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.9.1:2.9.1 \ No newline at end of file +google-cloud-bigquery:2.9.1:2.9.2-SNAPSHOT \ No newline at end of file From 4bce309ce089fc39843ce01200853fff4da685be Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 4 Mar 2022 00:20:25 +0100 Subject: [PATCH 1760/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.11 (#1885) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.1.11 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b5057ae0eb88..b3040ed60036 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.9.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.9.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.9.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.9.1" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 115af2736a5a..ee37c5510720 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.10 + 2.1.11 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 37c945a6cafd..813da32bc3a2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.10 + 2.1.11 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4c0b2d95f28e..a3dab008561b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.10 + 2.1.11 test From d428185429b0fb914efade903cbfffe5b115ab4e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 4 Mar 2022 00:21:37 +0100 Subject: [PATCH 1761/3441] test(deps): update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.7.0 (#1886) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(deps): update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.7.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a7856b14098f..fa13118c447a 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.6.3 + 1.7.0 pom import From 24fc5cffee52a2756789846904ffbf3ae36d987e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 4 Mar 2022 17:22:50 +0100 Subject: [PATCH 1762/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.9.1 (#1887) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.9.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b3040ed60036..8b986aae0a77 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.9.0 + 2.9.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ee37c5510720..425b80949ccb 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.9.0 + 2.9.1 From c8eb8671e53759e786955dd44fae4867632237e4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 7 Mar 2022 17:12:25 +0100 Subject: [PATCH 1763/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220222-1.32.1 (#1888) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fa13118c447a..f7615e091bce 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220220-1.32.1 + v2-rev20220222-1.32.1 2.8.0 From ca28e2d68901b6c9332f97c7985aaca7f4486e29 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 7 Mar 2022 12:33:03 -0500 Subject: [PATCH 1764/3441] fix: add missing equality check for targetTypes in DatasetAclEntity (#1866) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: add missing equality check for targetTypes in DatasetAclEntity * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../src/main/java/com/google/cloud/bigquery/Acl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java index 115e001bd3f7..3fad68920612 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java @@ -193,7 +193,8 @@ public boolean equals(Object obj) { } DatasetAclEntity datasetAclEntity = (DatasetAclEntity) obj; return Objects.equals(getType(), datasetAclEntity.getType()) - && Objects.equals(id, datasetAclEntity.id); + && Objects.equals(id, datasetAclEntity.id) + && Objects.equals(targetTypes, datasetAclEntity.targetTypes); } @Override From c8c5643d0552f9f28a684514cd192f985e0d711c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 7 Mar 2022 18:33:18 +0100 Subject: [PATCH 1765/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220226-1.32.1 (#1890) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f7615e091bce..4ee37ea5b6a3 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220222-1.32.1 + v2-rev20220226-1.32.1 2.8.0 From d5171e8ffe438811294a89b1c76b6285c810ec11 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 7 Mar 2022 17:50:11 +0000 Subject: [PATCH 1766/3441] chore(main): release 2.9.2 (#1889) :robot: I have created a release *beep* *boop* --- ### [2.9.2](https://github.com/googleapis/java-bigquery/compare/v2.9.1...v2.9.2) (2022-03-07) ### Bug Fixes * add missing equality check for targetTypes in DatasetAclEntity ([#1866](https://github.com/googleapis/java-bigquery/issues/1866)) ([ca28e2d](https://github.com/googleapis/java-bigquery/commit/ca28e2d68901b6c9332f97c7985aaca7f4486e29)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220222-1.32.1 ([#1888](https://github.com/googleapis/java-bigquery/issues/1888)) ([c8eb867](https://github.com/googleapis/java-bigquery/commit/c8eb8671e53759e786955dd44fae4867632237e4)) * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220226-1.32.1 ([#1890](https://github.com/googleapis/java-bigquery/issues/1890)) ([c8c5643](https://github.com/googleapis/java-bigquery/commit/c8c5643d0552f9f28a684514cd192f985e0d711c)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 13 +++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8af93a8aac02..9305864fc222 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +### [2.9.2](https://github.com/googleapis/java-bigquery/compare/v2.9.1...v2.9.2) (2022-03-07) + + +### Bug Fixes + +* add missing equality check for targetTypes in DatasetAclEntity ([#1866](https://github.com/googleapis/java-bigquery/issues/1866)) ([ca28e2d](https://github.com/googleapis/java-bigquery/commit/ca28e2d68901b6c9332f97c7985aaca7f4486e29)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220222-1.32.1 ([#1888](https://github.com/googleapis/java-bigquery/issues/1888)) ([c8eb867](https://github.com/googleapis/java-bigquery/commit/c8eb8671e53759e786955dd44fae4867632237e4)) +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220226-1.32.1 ([#1890](https://github.com/googleapis/java-bigquery/issues/1890)) ([c8c5643](https://github.com/googleapis/java-bigquery/commit/c8c5643d0552f9f28a684514cd192f985e0d711c)) + ### [2.9.1](https://github.com/googleapis/java-bigquery/compare/v2.9.0...v2.9.1) (2022-03-03) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2a38f5cb0b96..148b65a0921a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.9.2-SNAPSHOT + 2.9.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 07618fc723e6..be614cc4b49f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.9.2-SNAPSHOT + 2.9.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.9.2-SNAPSHOT + 2.9.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4ee37ea5b6a3..f3d4000129af 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.9.2-SNAPSHOT + 2.9.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.9.2-SNAPSHOT + 2.9.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 813da32bc3a2..13cb3f5e9566 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.9.2-SNAPSHOT + 2.9.2 diff --git a/versions.txt b/versions.txt index 3286c7bc21c2..0dddc4f88c46 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.9.1:2.9.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.9.2:2.9.2 \ No newline at end of file From 46e9e5c48fa486e9fab1bfb985945eb3c20b2b0e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 7 Mar 2022 18:08:15 +0000 Subject: [PATCH 1767/3441] chore(main): release 2.9.3-SNAPSHOT (#1891) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 148b65a0921a..ba4884e471c5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.9.2 + 2.9.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index be614cc4b49f..90b3b84a4759 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.9.2 + 2.9.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.9.2 + 2.9.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f3d4000129af..59e3ef346257 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.9.2 + 2.9.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.9.2 + 2.9.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 13cb3f5e9566..a47cd5cbc54c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.9.2 + 2.9.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0dddc4f88c46..ab5088609a0a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.9.2:2.9.2 \ No newline at end of file +google-cloud-bigquery:2.9.2:2.9.3-SNAPSHOT \ No newline at end of file From 1b82e1928d9fc5cb13494e7e0e86f7ccd99b125c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 7 Mar 2022 18:21:34 -0500 Subject: [PATCH 1768/3441] chore: update java template (#1367) (#1893) * chore: update java template * chore: fix tests * chore: fix tests * chore: update project Source-Link: https://github.com/googleapis/synthtool/commit/1155a97fed1c195d10ad406d483bc8ac2507f1d7 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:b0b1c1c89570e229b1026372a2b8989ba31495007055b8d30178b7648503eefa Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/nightly/integration.cfg | 4 ++-- README.md | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 3473042c086e..426cf83e2ec6 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:df8d7b2cc0dbc65871e7edd86601901a0612b272fa3f7f0eb590c5c53aa5f92e + digest: sha256:b0b1c1c89570e229b1026372a2b8989ba31495007055b8d30178b7648503eefa diff --git a/.kokoro/nightly/integration.cfg b/.kokoro/nightly/integration.cfg index e51c7b4c6c11..a2907a257b2b 100644 --- a/.kokoro/nightly/integration.cfg +++ b/.kokoro/nightly/integration.cfg @@ -13,12 +13,12 @@ env_vars: { # TODO: remove this after we've migrated all tests and scripts env_vars: { key: "GCLOUD_PROJECT" - value: "gcloud-devel" + value: "java-docs-samples-testing" } env_vars: { key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" + value: "java-docs-samples-testing" } env_vars: { diff --git a/README.md b/README.md index 8b986aae0a77..a754bfc97dbb 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.9.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.9.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.9.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.9.2" ``` ## Authentication From ce06adb5f95704309eaf0ab4b49d2bdb4ceaeb98 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 8 Mar 2022 04:38:14 +0100 Subject: [PATCH 1769/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.6.0 (#1892) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.5.3` -> `2.6.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.0/compatibility-slim/2.5.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.0/confidence-slim/2.5.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.6.0`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​260-httpsgithubcomgoogleapisjava-bigtablecomparev253v260-2022-03-03) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.5.3...v2.6.0) ##### Features - add WarmAndPing request for channel priming ([#​1178](https://togithub.com/googleapis/java-bigtable/issues/1178)) ([385ab33](https://togithub.com/googleapis/java-bigtable/commit/385ab33d12479a9d2b1b66babef9b9b5846b902a)) ##### Documentation - **sample:** Add sample for native image support in Bigtable ([#​1165](https://togithub.com/googleapis/java-bigtable/issues/1165)) ([143aaee](https://togithub.com/googleapis/java-bigtable/commit/143aaee42e1b59d125250982dbeb34a31d906e30)) ##### Dependencies - update actions/github-script action to v6 ([#​1170](https://togithub.com/googleapis/java-bigtable/issues/1170)) ([5790bdf](https://togithub.com/googleapis/java-bigtable/commit/5790bdf875d27e6194f1753ff66d208f65488716)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.8.0 ([#​1186](https://togithub.com/googleapis/java-bigtable/issues/1186)) ([74cafca](https://togithub.com/googleapis/java-bigtable/commit/74cafcae4a562b87f1664b8844794a2e68c97625)) - update dependency com.google.cloud:native-image-support to v0.12.4 ([#​1175](https://togithub.com/googleapis/java-bigtable/issues/1175)) ([9cc6fbc](https://togithub.com/googleapis/java-bigtable/commit/9cc6fbc7de22303e17492824971fcc52fb041254)) - update dependency com.google.cloud:native-image-support to v0.12.5 ([#​1183](https://togithub.com/googleapis/java-bigtable/issues/1183)) ([b025b34](https://togithub.com/googleapis/java-bigtable/commit/b025b343af0b9309558f530dc0765bf2b4c4d588)) - update dependency com.google.cloud:native-image-support to v0.12.6 ([#​1187](https://togithub.com/googleapis/java-bigtable/issues/1187)) ([b110d65](https://togithub.com/googleapis/java-bigtable/commit/b110d650edd38a1866f6c2168c78ec8e31b528c2)) - update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.10 ([#​1174](https://togithub.com/googleapis/java-bigtable/issues/1174)) ([7ff5fa7](https://togithub.com/googleapis/java-bigtable/commit/7ff5fa712b6dcbbd3c721c8babb8ed4e1c7dad17)) ##### [2.5.3](https://togithub.com/googleapis/java-bigtable/compare/v2.5.2...v2.5.3) (2022-02-08) ##### Bug Fixes - integration tests ([#​1161](https://togithub.com/googleapis/java-bigtable/issues/1161)) ([8b00b5f](https://togithub.com/googleapis/java-bigtable/commit/8b00b5fb5b4e3a1ada514b0bdc60fd744833bd01)) ##### [2.5.2](https://togithub.com/googleapis/java-bigtable/compare/v2.5.1...v2.5.2) (2022-01-31) ##### Bug Fixes - UpdateAppProfileRequest equals and hashcode should build proto ([#​1142](https://togithub.com/googleapis/java-bigtable/issues/1142)) ([c9f1ed8](https://togithub.com/googleapis/java-bigtable/commit/c9f1ed8a5fdf44487a8c56388b35067ecfc4daea)) ##### Dependencies - **java:** update actions/github-script action to v5 ([#​1339](https://togithub.com/googleapis/java-bigtable/issues/1339)) ([#​1147](https://togithub.com/googleapis/java-bigtable/issues/1147)) ([9bfcccf](https://togithub.com/googleapis/java-bigtable/commit/9bfcccfd76d2a03412cf9fe8c115874f15a95c57)) - update actions/github-script action to v5 ([#​1146](https://togithub.com/googleapis/java-bigtable/issues/1146)) ([9b2c918](https://togithub.com/googleapis/java-bigtable/commit/9b2c918c3fad38d3b26d141b53f6dc037a23bed7)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.7.0 ([#​1150](https://togithub.com/googleapis/java-bigtable/issues/1150)) ([744e483](https://togithub.com/googleapis/java-bigtable/commit/744e4830238b6ebe7bab6115ff26600b0c150b62)) ##### [2.5.1](https://www.github.com/googleapis/java-bigtable/compare/v2.5.0...v2.5.1) (2022-01-07) ##### Bug Fixes - Revert "fix: remove stats from javadoc" ([#​1118](https://www.togithub.com/googleapis/java-bigtable/issues/1118)) ([ba8f344](https://www.github.com/googleapis/java-bigtable/commit/ba8f344d19163627553a0a268742af2a1a792db5)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.6.0 ([#​1124](https://www.togithub.com/googleapis/java-bigtable/issues/1124)) ([55ebf69](https://www.github.com/googleapis/java-bigtable/commit/55ebf6932bbe93e8b7635a7550320099eb4fbe93))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 425b80949ccb..2ab0f24c94bc 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.5.3 + 2.6.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a47cd5cbc54c..0d7368c93d16 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.5.3 + 2.6.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a3dab008561b..9f023ba9f6ba 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.5.3 + 2.6.0 test From eb84441ce2461d24628bc4da51f2b4d5b727d007 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 04:00:26 +0000 Subject: [PATCH 1770/3441] chore(main): release 2.9.3 (#1894) :robot: I have created a release *beep* *boop* --- ### [2.9.3](https://github.com/googleapis/java-bigquery/compare/v2.9.2...v2.9.3) (2022-03-08) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v2.6.0 ([#1892](https://github.com/googleapis/java-bigquery/issues/1892)) ([ce06adb](https://github.com/googleapis/java-bigquery/commit/ce06adb5f95704309eaf0ab4b49d2bdb4ceaeb98)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9305864fc222..1a72d0024543 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.9.3](https://github.com/googleapis/java-bigquery/compare/v2.9.2...v2.9.3) (2022-03-08) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v2.6.0 ([#1892](https://github.com/googleapis/java-bigquery/issues/1892)) ([ce06adb](https://github.com/googleapis/java-bigquery/commit/ce06adb5f95704309eaf0ab4b49d2bdb4ceaeb98)) + ### [2.9.2](https://github.com/googleapis/java-bigquery/compare/v2.9.1...v2.9.2) (2022-03-07) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ba4884e471c5..52d246fc1194 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.9.3-SNAPSHOT + 2.9.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 90b3b84a4759..b441834e2aaa 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.9.3-SNAPSHOT + 2.9.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.9.3-SNAPSHOT + 2.9.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 59e3ef346257..1dd42dd89d3c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.9.3-SNAPSHOT + 2.9.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.9.3-SNAPSHOT + 2.9.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0d7368c93d16..e6cbc146739c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.9.3-SNAPSHOT + 2.9.3 diff --git a/versions.txt b/versions.txt index ab5088609a0a..307b285da825 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.9.2:2.9.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.9.3:2.9.3 \ No newline at end of file From d068c710b20faba786f8ceaf30012c32a331484a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 04:22:20 +0000 Subject: [PATCH 1771/3441] chore(main): release 2.9.4-SNAPSHOT (#1895) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 52d246fc1194..44cb4bd7f16c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.9.3 + 2.9.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b441834e2aaa..792b0b895eed 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.9.3 + 2.9.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.9.3 + 2.9.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1dd42dd89d3c..fc3646c55f37 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.9.3 + 2.9.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.9.3 + 2.9.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e6cbc146739c..4d8f25d31769 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.9.3 + 2.9.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 307b285da825..f6d23ddd57c2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.9.3:2.9.3 \ No newline at end of file +google-cloud-bigquery:2.9.3:2.9.4-SNAPSHOT \ No newline at end of file From 4145b37ed0f4570fdbd6841dd40ca24995abed6b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 8 Mar 2022 16:14:57 +0100 Subject: [PATCH 1772/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.9.3 (#1901) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.9.3 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a754bfc97dbb..f80dced69f96 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.9.1 + 2.9.3 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.9.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.9.3' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.9.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.9.3" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2ab0f24c94bc..bbc0ece46da5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.9.1 + 2.9.3 From 5dcb02b04f9a87ba39e7cfa72229318926262029 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 8 Mar 2022 16:17:39 +0100 Subject: [PATCH 1773/3441] deps: update dependency com.google.cloud:native-image-support to v0.12.7 (#1896) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:native-image-support to v0.12.7 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 75cad8958d33..41919ac420b0 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.12.6 + 0.12.7 org.junit.vintage From 64b83a85761e0c2a0e2da53946e63cc540223e34 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 8 Mar 2022 16:30:15 +0100 Subject: [PATCH 1774/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.3.0 (#1897) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `1.2.7` -> `1.3.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.3.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.3.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.3.0/compatibility-slim/1.2.7)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.3.0/confidence-slim/1.2.7)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v1.3.0`](https://togithub.com/googleapis/java-shared-config/blob/HEAD/CHANGELOG.md#​130-httpsgithubcomgoogleapisjava-shared-configcomparev127v130-2022-03-07) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.2.7...v1.3.0) ##### Features - increase IT timeout from 20 to 60 mins ([#​440](https://togithub.com/googleapis/java-shared-config/issues/440)) ([a4427bc](https://togithub.com/googleapis/java-shared-config/commit/a4427bceebd0624e23f0b02bb24d7ed46ea4b3a6)) ##### Dependencies - update dependency com.google.cloud:native-image-support to v0.12.6 ([#​423](https://togithub.com/googleapis/java-shared-config/issues/423)) ([9a0cb79](https://togithub.com/googleapis/java-shared-config/commit/9a0cb79896d5c97dc3c5648a6740d53eb9ada673)) - update dependency com.puppycrawl.tools:checkstyle to v9.3 ([#​415](https://togithub.com/googleapis/java-shared-config/issues/415)) ([9e2d3fd](https://togithub.com/googleapis/java-shared-config/commit/9e2d3fd8bd42bc210dae5798f7d5dfe950c29f51)) - update dependency org.graalvm.buildtools:junit-platform-native to v0.9.10 ([#​429](https://togithub.com/googleapis/java-shared-config/issues/429)) ([0355f29](https://togithub.com/googleapis/java-shared-config/commit/0355f2988ebcff19615b72bc65523555e4844523)) - update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.10 ([#​430](https://togithub.com/googleapis/java-shared-config/issues/430)) ([16984d2](https://togithub.com/googleapis/java-shared-config/commit/16984d25a84aa6a8daf2a0925ea57cd0d3f0ee24)) ##### [1.2.7](https://togithub.com/googleapis/java-shared-config/compare/v1.2.6...v1.2.7) (2022-02-04) ##### Dependencies - update dependency com.google.cloud:native-image-support to v0.12.0 ([#​414](https://togithub.com/googleapis/java-shared-config/issues/414)) ([2133cc0](https://togithub.com/googleapis/java-shared-config/commit/2133cc093efd8420e352274f3eab09de819ff796)) ##### [1.2.6](https://togithub.com/googleapis/java-shared-config/compare/v1.2.5...v1.2.6) (2022-01-19) ##### Bug Fixes - library should released as 1.2.6 ([#​408](https://togithub.com/googleapis/java-shared-config/issues/408)) ([4972daa](https://togithub.com/googleapis/java-shared-config/commit/4972daa60467797566c4b043cebd322577b8eb73)) ##### [1.2.5](https://togithub.com/googleapis/java-shared-config/compare/v1.2.4...v1.2.5) (2022-01-11) ##### Bug Fixes - **java:** Enable unit tests in generated libraries for native image testing ([#​394](https://togithub.com/googleapis/java-shared-config/issues/394)) ([a453b9f](https://togithub.com/googleapis/java-shared-config/commit/a453b9f141c7555f2fd5333eb17d223410ab66eb)) ##### [1.2.4](https://www.github.com/googleapis/java-shared-config/compare/v1.2.3...v1.2.4) (2022-01-06) ##### Dependencies - revert dependency com.google.googlejavaformat:google-java-format to v1.7 ([#​391](https://www.togithub.com/googleapis/java-shared-config/issues/391)) ([17077fb](https://www.github.com/googleapis/java-shared-config/commit/17077fb1a58eef7098dc5e1e9b2c78a63c5c11e1)) ##### [1.2.3](https://www.github.com/googleapis/java-shared-config/compare/v1.2.2...v1.2.3) (2022-01-04) ##### Bug Fixes - **java:** add -ntp flag to native image testing command ([#​1299](https://www.togithub.com/googleapis/java-shared-config/issues/1299)) ([#​376](https://www.togithub.com/googleapis/java-shared-config/issues/376)) ([50e7a10](https://www.github.com/googleapis/java-shared-config/commit/50e7a10a8dca0505fd831e3dd929577d2f82b011)) - **java:** Only enable integration tests for native image testing ([#​375](https://www.togithub.com/googleapis/java-shared-config/issues/375)) ([663f421](https://www.github.com/googleapis/java-shared-config/commit/663f421de342afcba24703079f778738045d3ff2)) - **java:** Pass missing integration test flags to native image test commands ([#​1309](https://www.togithub.com/googleapis/java-shared-config/issues/1309)) ([#​383](https://www.togithub.com/googleapis/java-shared-config/issues/383)) ([b17b44e](https://www.github.com/googleapis/java-shared-config/commit/b17b44e37fe44ba61616417189c6b2271f3a4d18)) ##### Dependencies - update auto-value-annotation.version to v1.9 ([#​378](https://www.togithub.com/googleapis/java-shared-config/issues/378)) ([5e1cd0e](https://www.github.com/googleapis/java-shared-config/commit/5e1cd0e39910548ec4eb6639da979c3b66411503)) - update dependency com.google.googlejavaformat:google-java-format to v1.13.0 ([#​361](https://www.togithub.com/googleapis/java-shared-config/issues/361)) ([095d60a](https://www.github.com/googleapis/java-shared-config/commit/095d60a061a574dcf84b9fcf26dff48617a306b1)) - update dependency com.puppycrawl.tools:checkstyle to v9.2 ([#​366](https://www.togithub.com/googleapis/java-shared-config/issues/366)) ([061df67](https://www.github.com/googleapis/java-shared-config/commit/061df676d8b2fef5bbb0ce9661d3c96fcb57e73a)) - update dependency com.puppycrawl.tools:checkstyle to v9.2.1 ([#​382](https://www.togithub.com/googleapis/java-shared-config/issues/382)) ([1a182c5](https://www.github.com/googleapis/java-shared-config/commit/1a182c52e7c5431875296940d68c9bdfcf74be00)) - update dependency org.graalvm.buildtools:junit-platform-native to v0.9.9 ([#​379](https://www.togithub.com/googleapis/java-shared-config/issues/379)) ([0a2b05f](https://www.github.com/googleapis/java-shared-config/commit/0a2b05ff7f649331efbc4dd540705da10691a2f1)) - update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.8 ([#​372](https://www.togithub.com/googleapis/java-shared-config/issues/372)) ([6fe795e](https://www.github.com/googleapis/java-shared-config/commit/6fe795ede39575656ef1609bf7aac28c1d170976)) - update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.9 ([#​380](https://www.togithub.com/googleapis/java-shared-config/issues/380)) ([f2efad5](https://www.github.com/googleapis/java-shared-config/commit/f2efad585b431fe186c7900a8171a999c689405b)) - update dependency org.junit.vintage:junit-vintage-engine to v5.8.2 ([#​365](https://www.togithub.com/googleapis/java-shared-config/issues/365)) ([604058d](https://www.github.com/googleapis/java-shared-config/commit/604058d52dc962db9a506762926576542687285e)) ##### [1.2.2](https://www.github.com/googleapis/java-shared-config/compare/v1.2.1...v1.2.2) (2021-11-16) ##### Bug Fixes - update dependency com.google.cloud:native-image-support to v0.10.0 ([#​358](https://www.togithub.com/googleapis/java-shared-config/issues/358)) ([0441958](https://www.github.com/googleapis/java-shared-config/commit/044195865a1122d419cadae90fddbf8dc5b4a32d)) ##### [1.2.1](https://www.github.com/googleapis/java-shared-config/compare/v1.2.0...v1.2.1) (2021-11-08) ##### Bug Fixes - Add native image feature to register protobuf reflection in tests ([#​347](https://www.togithub.com/googleapis/java-shared-config/issues/347)) ([88c3e3b](https://www.github.com/googleapis/java-shared-config/commit/88c3e3b0ad1e480e0fdbe9f6fe1f9df183066ee6)) ##### Dependencies - update dependency com.google.auto.service:auto-service-annotations to v1.0.1 ([#​346](https://www.togithub.com/googleapis/java-shared-config/issues/346)) ([9c1f943](https://www.github.com/googleapis/java-shared-config/commit/9c1f94345fb47346fe66f901976c2347b8102bc8)) - update dependency com.google.cloud:native-image-support to v0.9.0 ([#​350](https://www.togithub.com/googleapis/java-shared-config/issues/350)) ([3b496b0](https://www.github.com/googleapis/java-shared-config/commit/3b496b03bd95e59fcd1a3a1eb6cc0dfd330db769)) - update dependency com.puppycrawl.tools:checkstyle to v9.1 ([#​345](https://www.togithub.com/googleapis/java-shared-config/issues/345)) ([f5c03d3](https://www.github.com/googleapis/java-shared-config/commit/f5c03d35684ef4e0bb3178ab6056f231f3f4faf6))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fc3646c55f37..fa388cff106e 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.2.7 + 1.3.0 From 4e41eb93fe6fe985dde12f3d12ac0aa1fd65301a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 15:32:14 +0000 Subject: [PATCH 1775/3441] chore(main): release 2.9.4 (#1903) :robot: I have created a release *beep* *boop* --- ### [2.9.4](https://github.com/googleapis/java-bigquery/compare/v2.9.3...v2.9.4) (2022-03-08) ### Dependencies * update dependency com.google.cloud:native-image-support to v0.12.7 ([#1896](https://github.com/googleapis/java-bigquery/issues/1896)) ([5dcb02b](https://github.com/googleapis/java-bigquery/commit/5dcb02b04f9a87ba39e7cfa72229318926262029)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a72d0024543..109738a0b1a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.9.4](https://github.com/googleapis/java-bigquery/compare/v2.9.3...v2.9.4) (2022-03-08) + + +### Dependencies + +* update dependency com.google.cloud:native-image-support to v0.12.7 ([#1896](https://github.com/googleapis/java-bigquery/issues/1896)) ([5dcb02b](https://github.com/googleapis/java-bigquery/commit/5dcb02b04f9a87ba39e7cfa72229318926262029)) + ### [2.9.3](https://github.com/googleapis/java-bigquery/compare/v2.9.2...v2.9.3) (2022-03-08) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 44cb4bd7f16c..5c62e03aa3e5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.9.4-SNAPSHOT + 2.9.4 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 792b0b895eed..0b46fa3b2a3e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.9.4-SNAPSHOT + 2.9.4 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.9.4-SNAPSHOT + 2.9.4 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index fa388cff106e..7a5f9ee5ca08 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.9.4-SNAPSHOT + 2.9.4 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.9.4-SNAPSHOT + 2.9.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4d8f25d31769..8da0be0884f6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.9.4-SNAPSHOT + 2.9.4 diff --git a/versions.txt b/versions.txt index f6d23ddd57c2..d3f450e42db8 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.9.3:2.9.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.9.4:2.9.4 \ No newline at end of file From 2d070ae9a5f4cb50cf0ee51f945634d6aa054938 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 15:44:35 +0000 Subject: [PATCH 1776/3441] chore(main): release 2.9.5-SNAPSHOT (#1904) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5c62e03aa3e5..954017f78c07 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.9.4 + 2.9.5-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0b46fa3b2a3e..7eb723e0f860 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.9.4 + 2.9.5-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.9.4 + 2.9.5-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7a5f9ee5ca08..1b673880cea3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.9.4 + 2.9.5-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.9.4 + 2.9.5-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8da0be0884f6..d1c6c0d3f98e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.9.4 + 2.9.5-SNAPSHOT diff --git a/versions.txt b/versions.txt index d3f450e42db8..4fd0c6208913 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.9.4:2.9.4 \ No newline at end of file +google-cloud-bigquery:2.9.4:2.9.5-SNAPSHOT \ No newline at end of file From b23fc36ca95fdbf3abf864fd9455efeaf01974b5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 8 Mar 2022 21:42:27 +0100 Subject: [PATCH 1777/3441] test(deps): update dependency org.mockito:mockito-core to v4.4.0 (#1905) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.mockito:mockito-core](https://togithub.com/mockito/mockito) | `4.3.1` -> `4.4.0` | [![age](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.4.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.4.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.4.0/compatibility-slim/4.3.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.4.0/confidence-slim/4.3.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    mockito/mockito ### [`v4.4.0`](https://togithub.com/mockito/mockito/releases/v4.4.0) [Compare Source](https://togithub.com/mockito/mockito/compare/v4.3.1...v4.4.0) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 4.4.0 - 2022-03-08 - [16 commit(s)](https://togithub.com/mockito/mockito/compare/v4.3.1...v4.4.0) by Andrew Kozel, Brice Dutheil, Jean-Baptiste Mille, Mirko Alicastro, dependabot\[bot] - Bump groovy from 3.0.9 to 3.0.10 [(#​2586)](https://togithub.com/mockito/mockito/pull/2586) - Bump google-java-format from 1.14.0 to 1.15.0 [(#​2585)](https://togithub.com/mockito/mockito/pull/2585) - Bump actions/checkout from 2.4.0 to 3 [(#​2582)](https://togithub.com/mockito/mockito/pull/2582) - Bump shipkit-auto-version from 1.1.19 to 1.1.20 [(#​2580)](https://togithub.com/mockito/mockito/pull/2580) - Bump biz.aQute.bnd.builder from 6.1.0 to 6.2.0 [(#​2579)](https://togithub.com/mockito/mockito/pull/2579) - Bump biz.aQute.bnd.gradle from 6.1.0 to 6.2.0 [(#​2578)](https://togithub.com/mockito/mockito/pull/2578) - Adds a Google Java Format for JDK17 [(#​2572)](https://togithub.com/mockito/mockito/pull/2572) - Clean up JUnit3 references [(#​2570)](https://togithub.com/mockito/mockito/pull/2570) - Bump com.diffplug.spotless from 6.2.2 to 6.3.0 [(#​2567)](https://togithub.com/mockito/mockito/pull/2567) - Bump google-java-format from 1.13.0 to 1.14.0 [(#​2565)](https://togithub.com/mockito/mockito/pull/2565) - Bump versions.bytebuddy from 1.12.7 to 1.12.8 [(#​2564)](https://togithub.com/mockito/mockito/pull/2564) - Bump com.diffplug.spotless from 6.2.1 to 6.2.2 [(#​2562)](https://togithub.com/mockito/mockito/pull/2562) - Bump com.github.ben-manes.versions from 0.41.0 to 0.42.0 [(#​2559)](https://togithub.com/mockito/mockito/pull/2559) - Bump com.diffplug.spotless from 6.2.0 to 6.2.1 [(#​2556)](https://togithub.com/mockito/mockito/pull/2556) - Fixes [#​2548](https://togithub.com/mockito/mockito/issues/2548) : Makes InOrder able to verify static methods [(#​2549)](https://togithub.com/mockito/mockito/pull/2549) - \[PR open] Add feature to verify static methods calls in order [(#​2548)](https://togithub.com/mockito/mockito/issues/2548) - Fixes [#​2201](https://togithub.com/mockito/mockito/issues/2201) : Fixed checking of declared exceptions. [(#​2547)](https://togithub.com/mockito/mockito/pull/2547) - Calling getExceptionTypes() on concrete object that is used as interface doesn't return exception types from interface [(#​2201)](https://togithub.com/mockito/mockito/issues/2201)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f80dced69f96..42047637485e 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.9.3' +implementation 'com.google.cloud:google-cloud-bigquery:2.9.4' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.9.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.9.4" ``` ## Authentication diff --git a/pom.xml b/pom.xml index 1b673880cea3..4fe047812c4b 100644 --- a/pom.xml +++ b/pom.xml @@ -129,7 +129,7 @@ org.mockito mockito-core - 4.3.1 + 4.4.0 test From a7a196b4ea9cab28448bafe0fdc64f5e3de0412f Mon Sep 17 00:00:00 2001 From: Prashant Mishra Date: Wed, 9 Mar 2022 21:34:53 +0530 Subject: [PATCH 1778/3441] docs(sample): Added AuthorizeDataset Sample (#1909) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added AuthorizeDataset sample * Added AuthorizeDataset IT * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 1 + .../example/bigquery/AuthorizeDataset.java | 73 ++++++++++++++++ .../example/bigquery/AuthorizeDatasetIT.java | 85 +++++++++++++++++++ 3 files changed, 159 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/AuthorizeDatasetIT.java diff --git a/README.md b/README.md index 42047637485e..ae6e80dbe9ba 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Auth Snippets | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java) | | Auth User Flow | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java) | | Auth User Query | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java) | +| Authorize Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java) | | Authorized View Tutorial | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java) | | Browse Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java) | | Cancel Job | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CancelJob.java) | diff --git a/samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java b/samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java new file mode 100644 index 000000000000..f7f28c218242 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java @@ -0,0 +1,73 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_authorized_dataset] +import com.google.cloud.bigquery.Acl; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetId; +import com.google.common.collect.ImmutableList; +import java.util.ArrayList; +import java.util.List; + +public class AuthorizeDataset { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String projectId = "PROJECT_ID"; + String sourceDatasetName = "BIGQUERY_SOURCE_DATASET_NAME"; + String userDatasetName = "BIGQUERY_USER_DATASET_NAME"; + authorizeDataset( + DatasetId.of(projectId, sourceDatasetName), DatasetId.of(projectId, userDatasetName)); + } + + // This method will update userDataset's ACL with sourceDataset's ACL + public static void authorizeDataset(DatasetId sourceDatasetId, DatasetId userDatasetId) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Get both source and user dataset's references + Dataset sourceDataset = bigquery.getDataset(sourceDatasetId); + Dataset userDataset = bigquery.getDataset(userDatasetId); + + // Get the source dataset's ACL + List sourceDatasetAcl = new ArrayList<>(sourceDataset.getAcl()); + + // Add the user dataset's DatasetAccessEntry object to the existing sourceDatasetAcl + List targetTypes = ImmutableList.of("VIEWS"); + Acl.DatasetAclEntity userDatasetAclEntity = + new Acl.DatasetAclEntity(userDatasetId, targetTypes); + sourceDatasetAcl.add(Acl.of(userDatasetAclEntity)); + + // update the user dataset with source dataset's ACL + Dataset updatedUserDataset = + userDataset.toBuilder().setAcl(sourceDatasetAcl).build().update(); + + System.out.printf( + "Dataset %s updated with the added authorization\n", updatedUserDataset.getDatasetId()); + + } catch (BigQueryException e) { + System.out.println("Dataset Authorization failed due to error: \n" + e); + } + } +} +// [END bigquery_authorized_dataset] diff --git a/samples/snippets/src/test/java/com/example/bigquery/AuthorizeDatasetIT.java b/samples/snippets/src/test/java/com/example/bigquery/AuthorizeDatasetIT.java new file mode 100644 index 000000000000..b13c6bb73ac0 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/AuthorizeDatasetIT.java @@ -0,0 +1,85 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class AuthorizeDatasetIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String userDatasetName; + private String srcDatasetName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + private static final String GOOGLE_CLOUD_PROJECT = System.getenv("GOOGLE_CLOUD_PROJECT"); + private DatasetId sourceDatasetId; + private DatasetId userDatasetId; + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + userDatasetName = RemoteBigQueryHelper.generateDatasetName(); + srcDatasetName = RemoteBigQueryHelper.generateDatasetName(); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + CreateDataset.createDataset(userDatasetName); + CreateDataset.createDataset(srcDatasetName); + userDatasetId = DatasetId.of(GOOGLE_CLOUD_PROJECT, userDatasetName); + sourceDatasetId = DatasetId.of(GOOGLE_CLOUD_PROJECT, srcDatasetName); + } + + @After + public void tearDown() { + // Clean up + DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, userDatasetName); + DeleteDataset.deleteDataset(GOOGLE_CLOUD_PROJECT, srcDatasetName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testCreateDataset() { + AuthorizeDataset.authorizeDataset(sourceDatasetId, userDatasetId); + assertThat(bout.toString()).contains(userDatasetId + " updated with the added authorization"); + } +} From b65dff500f0c092cfd6e20b905611731967eba10 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 9 Mar 2022 17:05:08 +0100 Subject: [PATCH 1779/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.9.4 (#1908) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.9.4 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ae6e80dbe9ba..067a3279a7c2 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.9.3 + 2.9.4 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index bbc0ece46da5..6bf3639238b1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.9.3 + 2.9.4 From fddf59346e9635b5f10f94803ca87933337dc337 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 9 Mar 2022 17:13:56 +0100 Subject: [PATCH 1780/3441] deps: update dependency com.google.cloud:native-image-support to v0.12.8 (#1907) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 41919ac420b0..add71b368ec9 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.12.7 + 0.12.8 org.junit.vintage From d35d68963bc6a668d7177ac47d09b65dbefb9b7b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 9 Mar 2022 17:14:08 +0100 Subject: [PATCH 1781/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.4.5 (#1906) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4fe047812c4b..73cdf9354782 100644 --- a/pom.xml +++ b/pom.xml @@ -135,7 +135,7 @@ com.google.cloud google-cloud-storage - 2.4.4 + 2.4.5 test From 7802f16fb24bf29ab93139d8404d4b3c4d80b506 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 9 Mar 2022 18:10:13 -0500 Subject: [PATCH 1782/3441] docs(samples): fix undeleteTable sample IT failure (#1912) Caused by empty table schema Fixes #1911 --- .../test/java/com/example/bigquery/UndeleteTableIT.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java index f6c725db6b28..f53b0e41fe5e 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java @@ -19,7 +19,9 @@ import static com.google.common.truth.Truth.assertThat; import static junit.framework.TestCase.assertNotNull; +import com.google.cloud.bigquery.Field; import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.util.UUID; @@ -62,7 +64,11 @@ public void setUp() { tableName = "UNDELETE_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); recoverTableName = "RECOVER_DELETE_TABLE_TEST_" + UUID.randomUUID().toString().substring(0, 8); // Create table in dataset for testing - CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, Schema.of()); + Schema schema = + Schema.of( + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("booleanField", StandardSQLTypeName.BOOL)); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); } @After From 830dd50ffaf62b398a1325df44e4c92cd0a6ae1b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 10 Mar 2022 16:39:40 +0100 Subject: [PATCH 1783/3441] deps: update dependency com.google.cloud:native-image-support to v0.12.9 (#1913) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index add71b368ec9..2f48de03e624 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.12.8 + 0.12.9 org.junit.vintage From 001302bbfd3d1e071bb48ad2a783183fd48f6059 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 10 Mar 2022 16:39:58 +0100 Subject: [PATCH 1784/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.2.0 (#1914) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6bf3639238b1..4c399e899dfe 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.11 + 2.2.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d1c6c0d3f98e..102139f0dfe4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.11 + 2.2.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9f023ba9f6ba..1a087b7620ee 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.1.11 + 2.2.0 test From 3a54a8e5e1ee0bfd53c15f687ea22a3ed66f07af Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 10 Mar 2022 12:55:36 -0500 Subject: [PATCH 1785/3441] chore: revert nightly integration project (#1915) * chore: revert nightly integration project" * Update integration.cfg --- .kokoro/nightly/integration.cfg | 4 ++-- owlbot.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.kokoro/nightly/integration.cfg b/.kokoro/nightly/integration.cfg index a2907a257b2b..e51c7b4c6c11 100644 --- a/.kokoro/nightly/integration.cfg +++ b/.kokoro/nightly/integration.cfg @@ -13,12 +13,12 @@ env_vars: { # TODO: remove this after we've migrated all tests and scripts env_vars: { key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { diff --git a/owlbot.py b/owlbot.py index f514ca823d0d..cf3742f31bd2 100644 --- a/owlbot.py +++ b/owlbot.py @@ -27,4 +27,5 @@ '.kokoro/dependencies.sh', 'codecov.yaml', 'renovate.json', + '.kokoro/nightly/integration.cfg' ]) From fffdc14ba85d7de2bc24673222474aa7d2e3a65d Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 10 Mar 2022 18:33:35 -0500 Subject: [PATCH 1786/3441] Revert "chore: revert nightly integration project" (#1917) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Revert "chore: revert nightly integration project (#1915)" This reverts commit 3a54a8e5e1ee0bfd53c15f687ea22a3ed66f07af. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .kokoro/nightly/integration.cfg | 4 ++-- README.md | 2 +- owlbot.py | 1 - 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.kokoro/nightly/integration.cfg b/.kokoro/nightly/integration.cfg index e51c7b4c6c11..a2907a257b2b 100644 --- a/.kokoro/nightly/integration.cfg +++ b/.kokoro/nightly/integration.cfg @@ -13,12 +13,12 @@ env_vars: { # TODO: remove this after we've migrated all tests and scripts env_vars: { key: "GCLOUD_PROJECT" - value: "gcloud-devel" + value: "java-docs-samples-testing" } env_vars: { key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" + value: "java-docs-samples-testing" } env_vars: { diff --git a/README.md b/README.md index 067a3279a7c2..97442460b544 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:24.4.0') +implementation platform('com.google.cloud:libraries-bom:25.0.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/owlbot.py b/owlbot.py index cf3742f31bd2..f514ca823d0d 100644 --- a/owlbot.py +++ b/owlbot.py @@ -27,5 +27,4 @@ '.kokoro/dependencies.sh', 'codecov.yaml', 'renovate.json', - '.kokoro/nightly/integration.cfg' ]) From 73e829bad373279b13fb59a56b1dc60eac0835a0 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 10 Mar 2022 21:40:23 -0500 Subject: [PATCH 1787/3441] feat: set Table.Schema for permanent external tables (#1701) Per discussion related to go/bq-external-table-schema --- .../google/cloud/bigquery/BigQueryImpl.java | 6 +++++ .../cloud/bigquery/it/ITBigQueryTest.java | 22 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 16814e99a395..b2e939df09dc 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -286,6 +286,12 @@ public Table create(TableInfo tableInfo, TableOption... options) { ? getOptions().getProjectId() : tableInfo.getTableId().getProject()) .toPb(); + // Set schema on the Table for permanent external table + if (tablePb.getExternalDataConfiguration() != null) { + tablePb.setSchema(tablePb.getExternalDataConfiguration().getSchema()); + // clear table schema on ExternalDataConfiguration + tablePb.getExternalDataConfiguration().setSchema(null); + } final Map optionsMap = optionMap(options); try { return Table.fromPb( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 9cab253a2179..1ca5001dc8fe 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1136,6 +1136,28 @@ public void testCreateExternalTable() throws InterruptedException { assertTrue(remoteTable.delete()); } + @Test + public void testSetPermExternalTableSchema() { + String tableName = "test_create_external_table_perm"; + TableId tableId = TableId.of(DATASET, tableName); + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.newBuilder( + "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) + .setSchema(TABLE_SCHEMA) + .setConnectionId( + "projects/java-docs-samples-testing/locations/us/connections/DEVREL_TEST_CONNECTION") + .build(); + TableInfo tableInfo = TableInfo.of(tableId, externalTableDefinition); + Table createdTable = bigquery.create(tableInfo); + + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertNotNull(remoteTable); + assertTrue(remoteTable.delete()); + } + @Test public void testCreateViewTable() throws InterruptedException { String tableName = "test_create_view_table"; From c3faf1ffa6702c3d42bbf87ab1bc891c4eab34af Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 11 Mar 2022 20:49:08 +0100 Subject: [PATCH 1788/3441] build(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.10.1 (#1918) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 954017f78c07..35be2ab77583 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -37,7 +37,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.10.0 + 3.10.1 org.apache.maven.plugins From 30c5058f6e8a086d53ae4bfbbb25b28404fbcf15 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 11 Mar 2022 20:49:24 +0100 Subject: [PATCH 1789/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v25 (#1920) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v25 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 97442460b544..8f463bbc23db 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 24.4.0 + 25.0.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 2f48de03e624..d4029f6bb9ec 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 24.4.0 + 25.0.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 1a087b7620ee..186e4a656102 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 24.4.0 + 25.0.0 pom import From fcad2091f9a24d667ceefc5a6d9aa57542bed702 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 14 Mar 2022 15:14:43 +0100 Subject: [PATCH 1790/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220307-1.32.1 (#1921) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 73cdf9354782..418d1ff85073 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220226-1.32.1 + v2-rev20220307-1.32.1 2.8.0
    From a59ccf59c5fb1389fc5c5ed42ec8c41182f2e59d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 14 Mar 2022 23:28:18 +0100 Subject: [PATCH 1791/3441] deps: update dependency com.google.cloud:native-image-support to v0.12.10 (#1919) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:native-image-support](https://togithub.com/googleapis/java-core) | `0.12.9` -> `0.12.10` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.12.10/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.12.10/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.12.10/compatibility-slim/0.12.9)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.12.10/confidence-slim/0.12.9)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index d4029f6bb9ec..5a36d5ab5848 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.12.9 + 0.12.10 org.junit.vintage From 1c4ffd87f0ac3be01912116860471c28608191fe Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 15 Mar 2022 01:22:18 +0000 Subject: [PATCH 1792/3441] chore(main): release 2.10.0 (#1910) :robot: I have created a release *beep* *boop* --- ## [2.10.0](https://github.com/googleapis/java-bigquery/compare/v2.9.4...v2.10.0) (2022-03-14) ### Features * set Table.Schema for permanent external tables ([#1701](https://github.com/googleapis/java-bigquery/issues/1701)) ([73e829b](https://github.com/googleapis/java-bigquery/commit/73e829bad373279b13fb59a56b1dc60eac0835a0)) ### Documentation * **sample:** Added AuthorizeDataset Sample ([#1909](https://github.com/googleapis/java-bigquery/issues/1909)) ([a7a196b](https://github.com/googleapis/java-bigquery/commit/a7a196b4ea9cab28448bafe0fdc64f5e3de0412f)) * **samples:** fix undeleteTable sample IT failure ([#1912](https://github.com/googleapis/java-bigquery/issues/1912)) ([7802f16](https://github.com/googleapis/java-bigquery/commit/7802f16fb24bf29ab93139d8404d4b3c4d80b506)), closes [#1911](https://github.com/googleapis/java-bigquery/issues/1911) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220307-1.32.1 ([#1921](https://github.com/googleapis/java-bigquery/issues/1921)) ([fcad209](https://github.com/googleapis/java-bigquery/commit/fcad2091f9a24d667ceefc5a6d9aa57542bed702)) * update dependency com.google.cloud:google-cloud-storage to v2.4.5 ([#1906](https://github.com/googleapis/java-bigquery/issues/1906)) ([d35d689](https://github.com/googleapis/java-bigquery/commit/d35d68963bc6a668d7177ac47d09b65dbefb9b7b)) * update dependency com.google.cloud:native-image-support to v0.12.10 ([#1919](https://github.com/googleapis/java-bigquery/issues/1919)) ([a59ccf5](https://github.com/googleapis/java-bigquery/commit/a59ccf59c5fb1389fc5c5ed42ec8c41182f2e59d)) * update dependency com.google.cloud:native-image-support to v0.12.8 ([#1907](https://github.com/googleapis/java-bigquery/issues/1907)) ([fddf593](https://github.com/googleapis/java-bigquery/commit/fddf59346e9635b5f10f94803ca87933337dc337)) * update dependency com.google.cloud:native-image-support to v0.12.9 ([#1913](https://github.com/googleapis/java-bigquery/issues/1913)) ([830dd50](https://github.com/googleapis/java-bigquery/commit/830dd50ffaf62b398a1325df44e4c92cd0a6ae1b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 22 ++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 109738a0b1a2..43df75900364 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## [2.10.0](https://github.com/googleapis/java-bigquery/compare/v2.9.4...v2.10.0) (2022-03-14) + + +### Features + +* set Table.Schema for permanent external tables ([#1701](https://github.com/googleapis/java-bigquery/issues/1701)) ([73e829b](https://github.com/googleapis/java-bigquery/commit/73e829bad373279b13fb59a56b1dc60eac0835a0)) + + +### Documentation + +* **sample:** Added AuthorizeDataset Sample ([#1909](https://github.com/googleapis/java-bigquery/issues/1909)) ([a7a196b](https://github.com/googleapis/java-bigquery/commit/a7a196b4ea9cab28448bafe0fdc64f5e3de0412f)) +* **samples:** fix undeleteTable sample IT failure ([#1912](https://github.com/googleapis/java-bigquery/issues/1912)) ([7802f16](https://github.com/googleapis/java-bigquery/commit/7802f16fb24bf29ab93139d8404d4b3c4d80b506)), closes [#1911](https://github.com/googleapis/java-bigquery/issues/1911) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220307-1.32.1 ([#1921](https://github.com/googleapis/java-bigquery/issues/1921)) ([fcad209](https://github.com/googleapis/java-bigquery/commit/fcad2091f9a24d667ceefc5a6d9aa57542bed702)) +* update dependency com.google.cloud:google-cloud-storage to v2.4.5 ([#1906](https://github.com/googleapis/java-bigquery/issues/1906)) ([d35d689](https://github.com/googleapis/java-bigquery/commit/d35d68963bc6a668d7177ac47d09b65dbefb9b7b)) +* update dependency com.google.cloud:native-image-support to v0.12.10 ([#1919](https://github.com/googleapis/java-bigquery/issues/1919)) ([a59ccf5](https://github.com/googleapis/java-bigquery/commit/a59ccf59c5fb1389fc5c5ed42ec8c41182f2e59d)) +* update dependency com.google.cloud:native-image-support to v0.12.8 ([#1907](https://github.com/googleapis/java-bigquery/issues/1907)) ([fddf593](https://github.com/googleapis/java-bigquery/commit/fddf59346e9635b5f10f94803ca87933337dc337)) +* update dependency com.google.cloud:native-image-support to v0.12.9 ([#1913](https://github.com/googleapis/java-bigquery/issues/1913)) ([830dd50](https://github.com/googleapis/java-bigquery/commit/830dd50ffaf62b398a1325df44e4c92cd0a6ae1b)) + ### [2.9.4](https://github.com/googleapis/java-bigquery/compare/v2.9.3...v2.9.4) (2022-03-08) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 35be2ab77583..1f0c08dcc8b2 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.9.5-SNAPSHOT + 2.10.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7eb723e0f860..e1a8a989b478 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.9.5-SNAPSHOT + 2.10.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.9.5-SNAPSHOT + 2.10.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 418d1ff85073..37302c347053 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.9.5-SNAPSHOT + 2.10.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.9.5-SNAPSHOT + 2.10.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 102139f0dfe4..718b33dc1235 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.9.5-SNAPSHOT + 2.10.0 diff --git a/versions.txt b/versions.txt index 4fd0c6208913..8e2a3e59ff91 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.9.4:2.9.5-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.10.0:2.10.0 \ No newline at end of file From 1eb6a9d92ebf40b1fc88301569597a2f571fb015 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 15 Mar 2022 14:23:13 +0100 Subject: [PATCH 1793/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.0 (#1923) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8f463bbc23db..836549d1596b 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.9.4 + 2.10.0 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.9.4' +implementation 'com.google.cloud:google-cloud-bigquery:2.10.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.9.4" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4c399e899dfe..252f96dbaee2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.9.4 + 2.10.0 From 1fbf99a8eaf13f813a849e397dc87f6250658022 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 15 Mar 2022 13:40:11 +0000 Subject: [PATCH 1794/3441] chore(main): release 2.10.1-SNAPSHOT (#1922) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1f0c08dcc8b2..a75a5fe3d94a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.0 + 2.10.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e1a8a989b478..c3c7ddb962c1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.0 + 2.10.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.0 + 2.10.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 37302c347053..dbb89687cc64 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.0 + 2.10.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.0 + 2.10.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 718b33dc1235..f77ec9690965 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.0 + 2.10.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 8e2a3e59ff91..c6872a48bb6b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.0:2.10.0 \ No newline at end of file +google-cloud-bigquery:2.10.0:2.10.1-SNAPSHOT \ No newline at end of file From 0e88b930ef4d2581e0d44ba31a0d4b6a05f6cc53 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 21 Mar 2022 06:25:29 +0100 Subject: [PATCH 1795/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220313-1.32.1 (#1925) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dbb89687cc64..5cedd168e594 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220307-1.32.1 + v2-rev20220313-1.32.1 2.8.0 From 832b21e0228f4c9164610c2d823dbc1dfbd08336 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 05:38:12 +0000 Subject: [PATCH 1796/3441] chore(main): release 2.10.1 (#1926) :robot: I have created a release *beep* *boop* --- ### [2.10.1](https://github.com/googleapis/java-bigquery/compare/v2.10.0...v2.10.1) (2022-03-21) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220313-1.32.1 ([#1925](https://github.com/googleapis/java-bigquery/issues/1925)) ([0e88b93](https://github.com/googleapis/java-bigquery/commit/0e88b930ef4d2581e0d44ba31a0d4b6a05f6cc53)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43df75900364..23c7eb69eafa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.10.1](https://github.com/googleapis/java-bigquery/compare/v2.10.0...v2.10.1) (2022-03-21) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220313-1.32.1 ([#1925](https://github.com/googleapis/java-bigquery/issues/1925)) ([0e88b93](https://github.com/googleapis/java-bigquery/commit/0e88b930ef4d2581e0d44ba31a0d4b6a05f6cc53)) + ## [2.10.0](https://github.com/googleapis/java-bigquery/compare/v2.9.4...v2.10.0) (2022-03-14) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a75a5fe3d94a..c701837c29fd 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.1-SNAPSHOT + 2.10.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c3c7ddb962c1..b8e9bddf8431 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.1-SNAPSHOT + 2.10.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.1-SNAPSHOT + 2.10.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5cedd168e594..5c5cb181c377 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.1-SNAPSHOT + 2.10.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.1-SNAPSHOT + 2.10.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f77ec9690965..c8850e5241f9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.1-SNAPSHOT + 2.10.1 diff --git a/versions.txt b/versions.txt index c6872a48bb6b..cd1fee6b5182 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.0:2.10.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.10.1:2.10.1 \ No newline at end of file From 73d8091b481f7950946ee6752f366b6354a9129e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 05:52:37 +0000 Subject: [PATCH 1797/3441] chore(main): release 2.10.2-SNAPSHOT (#1927) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c701837c29fd..b24c423d1535 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.1 + 2.10.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b8e9bddf8431..9da1b2137b31 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.1 + 2.10.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.1 + 2.10.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5c5cb181c377..bc5152e501d8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.1 + 2.10.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.1 + 2.10.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c8850e5241f9..d542af519129 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.1 + 2.10.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index cd1fee6b5182..f4b7d8501423 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.1:2.10.1 \ No newline at end of file +google-cloud-bigquery:2.10.1:2.10.2-SNAPSHOT \ No newline at end of file From 63130e1e6a4db9014aa42e9baa331a867a312a17 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 21 Mar 2022 16:42:12 +0100 Subject: [PATCH 1798/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.1 (#1928) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.10.0` -> `2.10.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.1/compatibility-slim/2.10.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.1/confidence-slim/2.10.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.10.1`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2101-httpsgithubcomgoogleapisjava-bigquerycomparev2100v2101-2022-03-21) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.10.0...v2.10.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 836549d1596b..8c5bd1807e14 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.10.0 + 2.10.1 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.10.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.10.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.1" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 252f96dbaee2..206924382b7c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.10.0 + 2.10.1 From bc444b2cad99b8185a37a226abd2d315c95c6568 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 24 Mar 2022 16:12:13 +0100 Subject: [PATCH 1799/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.11 (#1932) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.graalvm.buildtools:native-maven-plugin](https://togithub.com/graalvm/native-build-tools) | `0.9.10` -> `0.9.11` | [![age](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.11/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.11/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.11/compatibility-slim/0.9.10)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.11/confidence-slim/0.9.10)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    graalvm/native-build-tools ### [`v0.9.11`](https://togithub.com/graalvm/native-build-tools/releases/0.9.11) [Compare Source](https://togithub.com/graalvm/native-build-tools/compare/0.9.10...0.9.11) ##### What's Changed Read what's new in the [documentation](https://graalvm.github.io/native-build-tools/latest/index.html#changelog). - Add issue templates by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/216](https://togithub.com/graalvm/native-build-tools/pull/216) - Fix [@​arg](https://togithub.com/arg) file not being used for tests in Maven by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/212](https://togithub.com/graalvm/native-build-tools/pull/212) - Make it possible to use environment variables in native tests by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/217](https://togithub.com/graalvm/native-build-tools/pull/217) - Fix incorrect declaration of output directory by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/219](https://togithub.com/graalvm/native-build-tools/pull/219) - Refactor build by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/220](https://togithub.com/graalvm/native-build-tools/pull/220) - Integrate native configuration repository with Gradle by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/204](https://togithub.com/graalvm/native-build-tools/pull/204) - Rework argfile generation by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/223](https://togithub.com/graalvm/native-build-tools/pull/223) - Rename `metadataRepository` and document feature by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/225](https://togithub.com/graalvm/native-build-tools/pull/225) - Support applications with custom packaging types by [@​alvarosanchez](https://togithub.com/alvarosanchez) in [https://github.com/graalvm/native-build-tools/pull/226](https://togithub.com/graalvm/native-build-tools/pull/226) ##### New Contributors - [@​alvarosanchez](https://togithub.com/alvarosanchez) made their first contribution in [https://github.com/graalvm/native-build-tools/pull/226](https://togithub.com/graalvm/native-build-tools/pull/226) **Full Changelog**: https://github.com/graalvm/native-build-tools/compare/0.9.10...0.9.11
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 5a36d5ab5848..43f340c5b405 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -126,7 +126,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.10 + 0.9.11 true com.example.bigquery.NativeImageBigquerySample From d6af865bcccbdc3294d2c9442272f2f02bad3f8f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 24 Mar 2022 16:12:17 +0100 Subject: [PATCH 1800/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.11 (#1931) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.graalvm.buildtools:junit-platform-native](https://togithub.com/graalvm/native-build-tools) | `0.9.10` -> `0.9.11` | [![age](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.11/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.11/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.11/compatibility-slim/0.9.10)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.11/confidence-slim/0.9.10)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    graalvm/native-build-tools ### [`v0.9.11`](https://togithub.com/graalvm/native-build-tools/releases/0.9.11) [Compare Source](https://togithub.com/graalvm/native-build-tools/compare/0.9.10...0.9.11) ##### What's Changed Read what's new in the [documentation](https://graalvm.github.io/native-build-tools/latest/index.html#changelog). - Add issue templates by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/216](https://togithub.com/graalvm/native-build-tools/pull/216) - Fix [@​arg](https://togithub.com/arg) file not being used for tests in Maven by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/212](https://togithub.com/graalvm/native-build-tools/pull/212) - Make it possible to use environment variables in native tests by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/217](https://togithub.com/graalvm/native-build-tools/pull/217) - Fix incorrect declaration of output directory by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/219](https://togithub.com/graalvm/native-build-tools/pull/219) - Refactor build by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/220](https://togithub.com/graalvm/native-build-tools/pull/220) - Integrate native configuration repository with Gradle by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/204](https://togithub.com/graalvm/native-build-tools/pull/204) - Rework argfile generation by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/223](https://togithub.com/graalvm/native-build-tools/pull/223) - Rename `metadataRepository` and document feature by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/225](https://togithub.com/graalvm/native-build-tools/pull/225) - Support applications with custom packaging types by [@​alvarosanchez](https://togithub.com/alvarosanchez) in [https://github.com/graalvm/native-build-tools/pull/226](https://togithub.com/graalvm/native-build-tools/pull/226) ##### New Contributors - [@​alvarosanchez](https://togithub.com/alvarosanchez) made their first contribution in [https://github.com/graalvm/native-build-tools/pull/226](https://togithub.com/graalvm/native-build-tools/pull/226) **Full Changelog**: https://github.com/graalvm/native-build-tools/compare/0.9.10...0.9.11
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 43f340c5b405..7652630eb27d 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -104,7 +104,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.10 + 0.9.11 test From ed8d9d52e39709063a180da8845f6bf829e96efb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 24 Mar 2022 15:32:13 +0000 Subject: [PATCH 1801/3441] chore(main): release 2.10.2 (#1933) :robot: I have created a release *beep* *boop* --- ### [2.10.2](https://github.com/googleapis/java-bigquery/compare/v2.10.1...v2.10.2) (2022-03-24) ### Dependencies * update dependency org.graalvm.buildtools:junit-platform-native to v0.9.11 ([#1931](https://github.com/googleapis/java-bigquery/issues/1931)) ([d6af865](https://github.com/googleapis/java-bigquery/commit/d6af865bcccbdc3294d2c9442272f2f02bad3f8f)) * update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.11 ([#1932](https://github.com/googleapis/java-bigquery/issues/1932)) ([bc444b2](https://github.com/googleapis/java-bigquery/commit/bc444b2cad99b8185a37a226abd2d315c95c6568)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23c7eb69eafa..14b49f04becf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.10.2](https://github.com/googleapis/java-bigquery/compare/v2.10.1...v2.10.2) (2022-03-24) + + +### Dependencies + +* update dependency org.graalvm.buildtools:junit-platform-native to v0.9.11 ([#1931](https://github.com/googleapis/java-bigquery/issues/1931)) ([d6af865](https://github.com/googleapis/java-bigquery/commit/d6af865bcccbdc3294d2c9442272f2f02bad3f8f)) +* update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.11 ([#1932](https://github.com/googleapis/java-bigquery/issues/1932)) ([bc444b2](https://github.com/googleapis/java-bigquery/commit/bc444b2cad99b8185a37a226abd2d315c95c6568)) + ### [2.10.1](https://github.com/googleapis/java-bigquery/compare/v2.10.0...v2.10.1) (2022-03-21) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b24c423d1535..4488f7b36afc 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.2-SNAPSHOT + 2.10.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9da1b2137b31..4fcdaeb74602 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.2-SNAPSHOT + 2.10.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.2-SNAPSHOT + 2.10.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bc5152e501d8..dbe07b55ed7e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.2-SNAPSHOT + 2.10.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.2-SNAPSHOT + 2.10.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d542af519129..f331145dbb03 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.2-SNAPSHOT + 2.10.2 diff --git a/versions.txt b/versions.txt index f4b7d8501423..8110e71fea55 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.1:2.10.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.10.2:2.10.2 \ No newline at end of file From 4f003f21dca930fc8fd55e2f7ad34bcd9d2fd415 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 25 Mar 2022 17:42:15 +0100 Subject: [PATCH 1802/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.2 (#1935) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.10.1` -> `2.10.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.2/compatibility-slim/2.10.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.2/confidence-slim/2.10.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.10.2`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2102-httpsgithubcomgoogleapisjava-bigquerycomparev2101v2102-2022-03-24) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.10.1...v2.10.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8c5bd1807e14..5b6aeb294874 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.10.1 + 2.10.2 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.10.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.10.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.2" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 206924382b7c..68d3347ea140 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.10.1 + 2.10.2 From 6c6e76d815c8aed64e3b6a15fad0280670b99b47 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 25 Mar 2022 16:56:16 +0000 Subject: [PATCH 1803/3441] chore(main): release 2.10.3-SNAPSHOT (#1934) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4488f7b36afc..c159076a741f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.2 + 2.10.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4fcdaeb74602..c57fd4dcc2cc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.2 + 2.10.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.2 + 2.10.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index dbe07b55ed7e..0649fe2eddcd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.2 + 2.10.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.2 + 2.10.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f331145dbb03..63c865222ae9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.2 + 2.10.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 8110e71fea55..3a190648f929 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.2:2.10.2 \ No newline at end of file +google-cloud-bigquery:2.10.2:2.10.3-SNAPSHOT \ No newline at end of file From 57e680724a1f6717b183ef48ce039600a6c90b9a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 28 Mar 2022 17:30:42 +0200 Subject: [PATCH 1804/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.5.0 (#1936) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0649fe2eddcd..999ce202dead 100644 --- a/pom.xml +++ b/pom.xml @@ -135,7 +135,7 @@ com.google.cloud google-cloud-storage - 2.4.5 + 2.5.0 test From 85e28a2c5641b7cd0d72d88ef1a6984b93c139d2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 15:44:13 +0000 Subject: [PATCH 1805/3441] chore(main): release 2.10.3 (#1939) :robot: I have created a release *beep* *boop* --- ### [2.10.3](https://github.com/googleapis/java-bigquery/compare/v2.10.2...v2.10.3) (2022-03-28) ### Dependencies * update dependency com.google.cloud:google-cloud-storage to v2.5.0 ([#1936](https://github.com/googleapis/java-bigquery/issues/1936)) ([57e6807](https://github.com/googleapis/java-bigquery/commit/57e680724a1f6717b183ef48ce039600a6c90b9a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 14b49f04becf..a68067d48385 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.10.3](https://github.com/googleapis/java-bigquery/compare/v2.10.2...v2.10.3) (2022-03-28) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v2.5.0 ([#1936](https://github.com/googleapis/java-bigquery/issues/1936)) ([57e6807](https://github.com/googleapis/java-bigquery/commit/57e680724a1f6717b183ef48ce039600a6c90b9a)) + ### [2.10.2](https://github.com/googleapis/java-bigquery/compare/v2.10.1...v2.10.2) (2022-03-24) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c159076a741f..440b546f6491 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.3-SNAPSHOT + 2.10.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c57fd4dcc2cc..0c064857a905 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.3-SNAPSHOT + 2.10.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.3-SNAPSHOT + 2.10.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 999ce202dead..03623954ae4c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.3-SNAPSHOT + 2.10.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.3-SNAPSHOT + 2.10.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 63c865222ae9..dd98f6f3ca1d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.3-SNAPSHOT + 2.10.3 diff --git a/versions.txt b/versions.txt index 3a190648f929..13dfc56ce92d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.2:2.10.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.10.3:2.10.3 \ No newline at end of file From 6b5ce65b247f94ae2d9669fe6a32192f317430d1 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 17:28:12 +0000 Subject: [PATCH 1806/3441] chore(main): release 2.10.4-SNAPSHOT (#1940) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 440b546f6491..6c68d26b068f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.3 + 2.10.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0c064857a905..1af35d8c735e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.3 + 2.10.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.3 + 2.10.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 03623954ae4c..0c5b4ea8c19e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.3 + 2.10.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.3 + 2.10.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index dd98f6f3ca1d..99f9c801a34d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.3 + 2.10.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 13dfc56ce92d..19ddd80ad3a7 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.3:2.10.3 \ No newline at end of file +google-cloud-bigquery:2.10.3:2.10.4-SNAPSHOT \ No newline at end of file From 95471ef6d8e7ca6bc8693106098e830462de3da6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 28 Mar 2022 23:45:14 +0200 Subject: [PATCH 1807/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.3 (#1941) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.3 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5b6aeb294874..818b922912d3 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.10.2 + 2.10.3 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.10.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.10.3' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.3" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 68d3347ea140..2300e2a25a71 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.10.2 + 2.10.3 From c845e802a91bb22918913c3fd501eb80b8eb3c4c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 29 Mar 2022 04:10:11 +0200 Subject: [PATCH 1808/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.5.1 (#1943) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.5.0` -> `2.5.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.5.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.5.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.5.1/compatibility-slim/2.5.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.5.1/confidence-slim/2.5.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.5.1`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​251-httpsgithubcomgoogleapisjava-storagecomparev250v251-2022-03-28) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.5.0...v2.5.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0c5b4ea8c19e..b765124b3454 100644 --- a/pom.xml +++ b/pom.xml @@ -135,7 +135,7 @@ com.google.cloud google-cloud-storage - 2.5.0 + 2.5.1 test From fd54a96f8ccdf7876d914d338cbb2ec7b6cc310a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 29 Mar 2022 17:24:13 +0200 Subject: [PATCH 1809/3441] deps: update dependency com.google.cloud:native-image-support to v0.12.11 (#1944) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 7652630eb27d..fcad43274a0b 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.12.10 + 0.12.11 org.junit.vintage From e6a65024498d5c44000fb982953d063710b7c1d5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 29 Mar 2022 17:24:45 +0200 Subject: [PATCH 1810/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.9.0 (#1945) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b765124b3454..93466f1ca850 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20220313-1.32.1 - 2.8.0 + 2.9.0
    From 77b9a20d2aff95a49e6e1e56a50442e3eb04bf3c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 29 Mar 2022 17:24:58 +0200 Subject: [PATCH 1811/3441] deps: update jmh.version to v1.35 (#1938) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 6c68d26b068f..db44ec6516b3 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.34 + 1.35 benchmark From b3149a9c39c61b35e121059c4a2b1e831b66ec2a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 29 Mar 2022 19:08:22 +0200 Subject: [PATCH 1812/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.3.2 (#1942) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `1.3.0` -> `1.3.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.3.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.3.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.3.2/compatibility-slim/1.3.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-config/1.3.2/confidence-slim/1.3.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-config ### [`v1.3.2`](https://togithub.com/googleapis/java-shared-config/blob/HEAD/CHANGELOG.md#​132-httpsgithubcomgoogleapisjava-shared-configcomparev131v132-2022-03-28) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.3.1...v1.3.2) ### [`v1.3.1`](https://togithub.com/googleapis/java-shared-config/blob/HEAD/CHANGELOG.md#​131-httpsgithubcomgoogleapisjava-shared-configcomparev130v131-2022-03-25) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.3.0...v1.3.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 93466f1ca850..b245593c44f4 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.3.0 + 1.3.2 From 64691da9793b311cb3e80fc0f6c5ccdc1884beee Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 29 Mar 2022 19:54:25 +0200 Subject: [PATCH 1813/3441] build(deps): update dependency org.apache.maven.plugins:maven-shade-plugin to v3.3.0 (#1948) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index db44ec6516b3..1d697dc61547 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -42,7 +42,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.4 + 3.3.0 package From a4683aae06a30704bf526e23fe1daee70f09d548 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 15:22:31 -0400 Subject: [PATCH 1814/3441] chore(main): release 2.10.4 (#1946) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 10 ++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a68067d48385..cd33368d79ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +### [2.10.4](https://github.com/googleapis/java-bigquery/compare/v2.10.3...v2.10.4) (2022-03-29) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.9.0 ([#1945](https://github.com/googleapis/java-bigquery/issues/1945)) ([e6a6502](https://github.com/googleapis/java-bigquery/commit/e6a65024498d5c44000fb982953d063710b7c1d5)) +* update dependency com.google.cloud:google-cloud-storage to v2.5.1 ([#1943](https://github.com/googleapis/java-bigquery/issues/1943)) ([c845e80](https://github.com/googleapis/java-bigquery/commit/c845e802a91bb22918913c3fd501eb80b8eb3c4c)) +* update dependency com.google.cloud:native-image-support to v0.12.11 ([#1944](https://github.com/googleapis/java-bigquery/issues/1944)) ([fd54a96](https://github.com/googleapis/java-bigquery/commit/fd54a96f8ccdf7876d914d338cbb2ec7b6cc310a)) +* update jmh.version to v1.35 ([#1938](https://github.com/googleapis/java-bigquery/issues/1938)) ([77b9a20](https://github.com/googleapis/java-bigquery/commit/77b9a20d2aff95a49e6e1e56a50442e3eb04bf3c)) + ### [2.10.3](https://github.com/googleapis/java-bigquery/compare/v2.10.2...v2.10.3) (2022-03-28) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1d697dc61547..9a0763ffde7b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.4-SNAPSHOT + 2.10.4 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1af35d8c735e..9c746bd3ab5e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.4-SNAPSHOT + 2.10.4 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.4-SNAPSHOT + 2.10.4 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b245593c44f4..751d886258f3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.4-SNAPSHOT + 2.10.4 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.4-SNAPSHOT + 2.10.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 99f9c801a34d..42eea913ae89 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.4-SNAPSHOT + 2.10.4 diff --git a/versions.txt b/versions.txt index 19ddd80ad3a7..da5962d2d78c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.3:2.10.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.10.4:2.10.4 \ No newline at end of file From f5614cc709ed4c28b83ea9a46b04320dd3b24118 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 15:37:11 -0400 Subject: [PATCH 1815/3441] chore(main): release 2.10.5-SNAPSHOT (#1949) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9a0763ffde7b..c50006a5756e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.4 + 2.10.5-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9c746bd3ab5e..d1d9ad8807e0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.4 + 2.10.5-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.4 + 2.10.5-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 751d886258f3..31e4b19ab705 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.4 + 2.10.5-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.4 + 2.10.5-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 42eea913ae89..679a50f3416e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.4 + 2.10.5-SNAPSHOT diff --git a/versions.txt b/versions.txt index da5962d2d78c..1f48d7511354 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.4:2.10.4 \ No newline at end of file +google-cloud-bigquery:2.10.4:2.10.5-SNAPSHOT \ No newline at end of file From 65ddcdbac0bf1407bc19f8c88c8dcae9906bbbab Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 31 Mar 2022 16:50:56 +0200 Subject: [PATCH 1816/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.4 (#1950) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.4 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 818b922912d3..bfc1bf976c2c 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.10.3 + 2.10.4 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.10.3' +implementation 'com.google.cloud:google-cloud-bigquery:2.10.4' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.4" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2300e2a25a71..f07b6b7af683 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.10.3 + 2.10.4 From 426f86e0c88128c12d5591567f24eabc2db17159 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 31 Mar 2022 13:07:05 -0700 Subject: [PATCH 1817/3441] chore: comment out the portion that is causing the failure in testSnapshotTableCopyJob (#1957) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: comment out the portion that is causing the failure in testSnapshotTableCopyJob Will follow up once b/227623980 is answered * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bfc1bf976c2c..7caf2e63ac70 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:25.0.0') +implementation platform('com.google.cloud:libraries-bom:25.1.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 1ca5001dc8fe..9f877cf23cf6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3065,9 +3065,10 @@ public void testSnapshotTableCopyJob() throws InterruptedException { .build(); Job createdRestoreJob = bigquery.create(JobInfo.of(restoreConfiguration)); CopyJobConfiguration createdRestoreConfiguration = createdRestoreJob.getConfiguration(); - assertEquals( - restoreConfiguration.getSourceTables().get(0).getTable(), - createdRestoreConfiguration.getSourceTables().get(0).getTable()); + // TODO: uncomment/modify below when b/227623980 is resolved + // assertEquals( + // restoreConfiguration.getSourceTables().get(0).getTable(), + // createdRestoreConfiguration.getSourceTables().get(0).getTable()); assertEquals( restoreConfiguration.getOperationType(), createdRestoreConfiguration.getOperationType()); assertEquals( From 17ba20c5e243327475c447ff180b9b2eef3f2b79 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 31 Mar 2022 22:22:10 +0200 Subject: [PATCH 1818/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220322-1.32.1 (#1951) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20220313-1.32.1` -> `v2-rev20220322-1.32.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220322-1.32.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220322-1.32.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220322-1.32.1/compatibility-slim/v2-rev20220313-1.32.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220322-1.32.1/confidence-slim/v2-rev20220313-1.32.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 31e4b19ab705..981463f87f32 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220313-1.32.1 + v2-rev20220322-1.32.1 2.9.0 From 78a6ead8882036da5abc41a3c442e76c2a30265f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 31 Mar 2022 22:26:11 +0200 Subject: [PATCH 1819/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.6.1 (#1952) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.6.0` -> `2.6.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.1/compatibility-slim/2.6.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.1/confidence-slim/2.6.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.6.1`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​261-httpsgithubcomgoogleapisjava-bigtablecomparev260v261-2022-03-29) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.6.0...v2.6.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f07b6b7af683..c9afb06e6fb4 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.6.0 + 2.6.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 679a50f3416e..3b220532bb1a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.6.0 + 2.6.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 186e4a656102..0a2807dd054f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.6.0 + 2.6.1 test From 8ae3ab2ea43906880a608dac31c22b2c96c98ef3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 31 Mar 2022 22:30:14 +0200 Subject: [PATCH 1820/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.2.1 (#1954) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | `2.2.0` -> `2.2.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.2.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.2.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.2.1/compatibility-slim/2.2.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.2.1/confidence-slim/2.2.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v2.2.1`](https://togithub.com/googleapis/java-bigqueryconnection/blob/HEAD/CHANGELOG.md#​221-httpsgithubcomgoogleapisjava-bigqueryconnectioncomparev220v221-2022-03-29) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.2.0...v2.2.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c9afb06e6fb4..75bc7917105d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.0 + 2.2.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3b220532bb1a..819d7f28fd1e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.0 + 2.2.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0a2807dd054f..63b2bb4c0381 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.0 + 2.2.1 test From d32e963a63b9a50d71ca399336d49d92fac54a23 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 31 Mar 2022 22:30:20 +0200 Subject: [PATCH 1821/3441] test(deps): update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.7.1 (#1955) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-datacatalog-bom](https://togithub.com/googleapis/java-datacatalog) | `1.7.0` -> `1.7.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.7.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.7.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.7.1/compatibility-slim/1.7.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.7.1/confidence-slim/1.7.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-datacatalog ### [`v1.7.1`](https://togithub.com/googleapis/java-datacatalog/blob/HEAD/CHANGELOG.md#​171-httpsgithubcomgoogleapisjava-datacatalogcomparev170v171-2022-03-29) [Compare Source](https://togithub.com/googleapis/java-datacatalog/compare/v1.7.0...v1.7.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 981463f87f32..a3bd3e7985ed 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.7.0 + 1.7.1 pom import From ee9dfce867900d9eba696aee3ca7bc09e68eccd4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 31 Mar 2022 22:32:10 +0200 Subject: [PATCH 1822/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.6.0 (#1956) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.5.1` -> `2.6.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.6.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.6.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.6.0/compatibility-slim/2.5.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.6.0/confidence-slim/2.5.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.6.0`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​260-httpsgithubcomgoogleapisjava-storagecomparev251v260-2022-03-30) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.5.1...v2.6.0) ##### Features - replace enum with string representation for predefined ACLs and public_access_prevention ([#​1323](https://togithub.com/googleapis/java-storage/issues/1323)) ([4dd1a88](https://togithub.com/googleapis/java-storage/commit/4dd1a8800317343bb0cd575864683e580f9ccd29)) ##### Bug Fixes - **java:** add configurations for Storage tests ([#​1305](https://togithub.com/googleapis/java-storage/issues/1305)) ([2bacf92](https://togithub.com/googleapis/java-storage/commit/2bacf92799e8a0fbdc1b5cfcfc6ef8d806a53fa3)) - update boundary checking of BlobReadChannel when limit() is used ([#​1324](https://togithub.com/googleapis/java-storage/issues/1324)) ([f21f624](https://togithub.com/googleapis/java-storage/commit/f21f624f1645b5ada350c04c774f9f113e76e971)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.9.0 ([#​1321](https://togithub.com/googleapis/java-storage/issues/1321)) ([f48d8dd](https://togithub.com/googleapis/java-storage/commit/f48d8dd09e918ba4a54fccaebf65feaba4f6e206)) ##### Documentation - adjust retry settings for hmac samples ([#​1303](https://togithub.com/googleapis/java-storage/issues/1303)) ([d0c5361](https://togithub.com/googleapis/java-storage/commit/d0c5361e9e4996f8a99754381e5a28a843e6de2a)) ##### [2.5.1](https://togithub.com/googleapis/java-storage/compare/v2.5.0...v2.5.1) (2022-03-28) ##### Dependencies - update dependency com.google.cloud:google-cloud-pubsub to v1.116.2 ([#​1310](https://togithub.com/googleapis/java-storage/issues/1310)) ([fb64493](https://togithub.com/googleapis/java-storage/commit/fb644932d4350b4e33481abda8cc8f498f9da85e))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a3bd3e7985ed..8ea85470148d 100644 --- a/pom.xml +++ b/pom.xml @@ -135,7 +135,7 @@ com.google.cloud google-cloud-storage - 2.5.1 + 2.6.0 test From 829eb8931d1f57719630b8f2cd0ca343688fe563 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 31 Mar 2022 20:46:11 +0000 Subject: [PATCH 1823/3441] chore(main): release 2.10.5 (#1959) :robot: I have created a release *beep* *boop* --- ### [2.10.5](https://github.com/googleapis/java-bigquery/compare/v2.10.4...v2.10.5) (2022-03-31) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220322-1.32.1 ([#1951](https://github.com/googleapis/java-bigquery/issues/1951)) ([17ba20c](https://github.com/googleapis/java-bigquery/commit/17ba20c5e243327475c447ff180b9b2eef3f2b79)) * update dependency com.google.cloud:google-cloud-bigtable to v2.6.1 ([#1952](https://github.com/googleapis/java-bigquery/issues/1952)) ([78a6ead](https://github.com/googleapis/java-bigquery/commit/78a6ead8882036da5abc41a3c442e76c2a30265f)) * update dependency com.google.cloud:google-cloud-storage to v2.6.0 ([#1956](https://github.com/googleapis/java-bigquery/issues/1956)) ([ee9dfce](https://github.com/googleapis/java-bigquery/commit/ee9dfce867900d9eba696aee3ca7bc09e68eccd4)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 9 +++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd33368d79ba..aa6f061c94d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +### [2.10.5](https://github.com/googleapis/java-bigquery/compare/v2.10.4...v2.10.5) (2022-03-31) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220322-1.32.1 ([#1951](https://github.com/googleapis/java-bigquery/issues/1951)) ([17ba20c](https://github.com/googleapis/java-bigquery/commit/17ba20c5e243327475c447ff180b9b2eef3f2b79)) +* update dependency com.google.cloud:google-cloud-bigtable to v2.6.1 ([#1952](https://github.com/googleapis/java-bigquery/issues/1952)) ([78a6ead](https://github.com/googleapis/java-bigquery/commit/78a6ead8882036da5abc41a3c442e76c2a30265f)) +* update dependency com.google.cloud:google-cloud-storage to v2.6.0 ([#1956](https://github.com/googleapis/java-bigquery/issues/1956)) ([ee9dfce](https://github.com/googleapis/java-bigquery/commit/ee9dfce867900d9eba696aee3ca7bc09e68eccd4)) + ### [2.10.4](https://github.com/googleapis/java-bigquery/compare/v2.10.3...v2.10.4) (2022-03-29) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c50006a5756e..bdf789522660 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.5-SNAPSHOT + 2.10.5 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d1d9ad8807e0..2ebb5644dad3 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.5-SNAPSHOT + 2.10.5 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.5-SNAPSHOT + 2.10.5 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8ea85470148d..b4a85eca2513 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.5-SNAPSHOT + 2.10.5 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.5-SNAPSHOT + 2.10.5 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 819d7f28fd1e..db32f08ab644 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.5-SNAPSHOT + 2.10.5 diff --git a/versions.txt b/versions.txt index 1f48d7511354..864c8eede392 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.4:2.10.5-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.10.5:2.10.5 \ No newline at end of file From 0c9ab6e835665bb0bb05572024609e535d958a51 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 31 Mar 2022 21:00:16 +0000 Subject: [PATCH 1824/3441] chore(main): release 2.10.6-SNAPSHOT (#1960) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index bdf789522660..ef7d8eb08d98 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.5 + 2.10.6-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2ebb5644dad3..4d07b7d2b079 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.5 + 2.10.6-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.5 + 2.10.6-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b4a85eca2513..cf1d804d6407 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.5 + 2.10.6-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.5 + 2.10.6-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index db32f08ab644..447f578e18a2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.5 + 2.10.6-SNAPSHOT diff --git a/versions.txt b/versions.txt index 864c8eede392..c67000162728 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.5:2.10.5 \ No newline at end of file +google-cloud-bigquery:2.10.5:2.10.6-SNAPSHOT \ No newline at end of file From 87d1a305737a830194e8aa306078c9bffbcf1b43 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 1 Apr 2022 16:25:08 +0200 Subject: [PATCH 1825/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.5 (#1961) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.5 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7caf2e63ac70..a1624de7f080 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.10.4 + 2.10.5 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.10.4' +implementation 'com.google.cloud:google-cloud-bigquery:2.10.5' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.4" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.5" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 75bc7917105d..db59ee869147 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.10.4 + 2.10.5 From 0f19738e5e4229a52c8cc6b40d3bace40f8df747 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 1 Apr 2022 18:34:16 +0200 Subject: [PATCH 1826/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v25.1.0 (#1958) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/GoogleCloudPlatform/cloud-opensource-java)) | `25.0.0` -> `25.1.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/25.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/25.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/25.1.0/compatibility-slim/25.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/25.1.0/confidence-slim/25.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a1624de7f080..6e5d6cd870a6 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 25.0.0 + 25.1.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index fcad43274a0b..f4893182a93a 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 25.0.0 + 25.1.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 63b2bb4c0381..01e2977f4c0e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 25.0.0 + 25.1.0 pom import From eb9eaea2bbe025ce68d96846c6f9b3b0bad52299 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 5 Apr 2022 12:48:18 -0700 Subject: [PATCH 1827/3441] chore: make policy tag setup use unique display names (#1962) In accordance with https://github.com/googleapis/google-cloud-go/pull/5846 --- .../test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 9f877cf23cf6..c8f7ce4fa397 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -943,7 +943,8 @@ public void testCreateAndUpdateTableWithPolicyTags() throws IOException { .setParent(String.format("projects/%s/locations/%s", PROJECT_ID, "us")) .setTaxonomy( Taxonomy.newBuilder() - .setDisplayName("testing taxonomy") + // DisplayName must be unique across org + .setDisplayName(String.format("testing taxonomy %s", Instant.now().getNano())) .setDescription("taxonomy created for integration tests") .addActivatedPolicyTypes(PolicyType.FINE_GRAINED_ACCESS_CONTROL) .build()) From 2c9bc1bcd263cf9910001ebf259d12fd29f5a70b Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 7 Apr 2022 10:48:41 -0400 Subject: [PATCH 1828/3441] chore: Enable Size-Label bot in all googleapis Java repositories (#1381) (#1963) * chore: Enable Size-Label bot in all googleapis Java repositories Auto-label T-shirt size indicator should be assigned on every new pull request in all googleapis Java repositories * Remove product Remove product since it is by default true * add license header Co-authored-by: Neenu Shaji Source-Link: https://github.com/googleapis/synthtool/commit/54b2c6ac75370a4a3582431b4a3080f777ba1f11 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:fc52b202aa298a50a12c64efd04fea3884d867947effe2fa85382a246c09e813 Co-authored-by: Owl Bot Co-authored-by: Neenu Shaji --- .github/.OwlBot.lock.yaml | 3 ++- .github/auto-label.yaml | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 .github/auto-label.yaml diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 426cf83e2ec6..f60d774937f6 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:b0b1c1c89570e229b1026372a2b8989ba31495007055b8d30178b7648503eefa + digest: sha256:fc52b202aa298a50a12c64efd04fea3884d867947effe2fa85382a246c09e813 +# created: 2022-04-06T16:30:03.627422514Z diff --git a/.github/auto-label.yaml b/.github/auto-label.yaml new file mode 100644 index 000000000000..4caef688b745 --- /dev/null +++ b/.github/auto-label.yaml @@ -0,0 +1,15 @@ +# Copyright 2021 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +requestsize: + enabled: true From 4ff65d6147c4dc4472a8adfb1840a1d5a3e5a044 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 7 Apr 2022 18:10:11 +0200 Subject: [PATCH 1829/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220326-1.32.1 (#1964) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20220322-1.32.1` -> `v2-rev20220326-1.32.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220326-1.32.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220326-1.32.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220326-1.32.1/compatibility-slim/v2-rev20220322-1.32.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220326-1.32.1/confidence-slim/v2-rev20220322-1.32.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cf1d804d6407..cf4016f9ec24 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220322-1.32.1 + v2-rev20220326-1.32.1 2.9.0 From c9fb53889c97234ba665a7b4f3d6ba52d4b787d8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 7 Apr 2022 16:44:13 +0000 Subject: [PATCH 1830/3441] chore(main): release 2.10.6 (#1965) :robot: I have created a release *beep* *boop* --- ### [2.10.6](https://github.com/googleapis/java-bigquery/compare/v2.10.5...v2.10.6) (2022-04-07) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220326-1.32.1 ([#1964](https://github.com/googleapis/java-bigquery/issues/1964)) ([4ff65d6](https://github.com/googleapis/java-bigquery/commit/4ff65d6147c4dc4472a8adfb1840a1d5a3e5a044)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aa6f061c94d0..223308183382 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.10.6](https://github.com/googleapis/java-bigquery/compare/v2.10.5...v2.10.6) (2022-04-07) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220326-1.32.1 ([#1964](https://github.com/googleapis/java-bigquery/issues/1964)) ([4ff65d6](https://github.com/googleapis/java-bigquery/commit/4ff65d6147c4dc4472a8adfb1840a1d5a3e5a044)) + ### [2.10.5](https://github.com/googleapis/java-bigquery/compare/v2.10.4...v2.10.5) (2022-03-31) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ef7d8eb08d98..09db7ee3b79d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.6-SNAPSHOT + 2.10.6 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4d07b7d2b079..8982f70294dd 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.6-SNAPSHOT + 2.10.6 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.6-SNAPSHOT + 2.10.6 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index cf4016f9ec24..1734d40f46ba 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.6-SNAPSHOT + 2.10.6 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.6-SNAPSHOT + 2.10.6 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 447f578e18a2..209529a34024 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.6-SNAPSHOT + 2.10.6 diff --git a/versions.txt b/versions.txt index c67000162728..89d6c4b54a58 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.5:2.10.6-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.10.6:2.10.6 \ No newline at end of file From c527d836d6fe5b46ae8001e55a7ec5dc643cc6ca Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 7 Apr 2022 17:06:19 +0000 Subject: [PATCH 1831/3441] chore(main): release 2.10.7-SNAPSHOT (#1966) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 09db7ee3b79d..a3f400c101e1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.6 + 2.10.7-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8982f70294dd..15b962e09422 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.6 + 2.10.7-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.6 + 2.10.7-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1734d40f46ba..ff8e69827f0a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.6 + 2.10.7-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.6 + 2.10.7-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 209529a34024..9818695423d9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.6 + 2.10.7-SNAPSHOT diff --git a/versions.txt b/versions.txt index 89d6c4b54a58..be069c16af84 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.6:2.10.6 \ No newline at end of file +google-cloud-bigquery:2.10.6:2.10.7-SNAPSHOT \ No newline at end of file From ed8c1a3a22ee064dc50faed51318306170b51cc5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 8 Apr 2022 17:28:17 +0200 Subject: [PATCH 1832/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.6 (#1967) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.6 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6e5d6cd870a6..9220e08bd30b 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.10.5 + 2.10.6 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.10.5' +implementation 'com.google.cloud:google-cloud-bigquery:2.10.6' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.5" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.6" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index db59ee869147..e895c4af5316 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.10.5 + 2.10.6 From 9f8265b452eb8ede6ae4972ea60b5be3df8a2be7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 8 Apr 2022 17:28:30 +0200 Subject: [PATCH 1833/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.2.2 (#1968) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.2.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e895c4af5316..5793354b2065 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.1 + 2.2.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9818695423d9..b86a9fcb188b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.1 + 2.2.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 01e2977f4c0e..57ea7abb3b5e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.1 + 2.2.2 test From f1c4b847a271a86bba7f123945515c721c3b9ae1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 8 Apr 2022 17:28:49 +0200 Subject: [PATCH 1834/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.2 (#1969) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5793354b2065..28a3a619707b 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.33.1 + 1.33.2 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b86a9fcb188b..cbf8f48e0d5d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.33.1 + 1.33.2 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 57ea7abb3b5e..454f4abc85d2 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.33.1 + 1.33.2 com.google.oauth-client From 5e83e35190c29060d77183e832e64247f354d2e4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 8 Apr 2022 17:29:05 +0200 Subject: [PATCH 1835/3441] test(deps): update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.7.2 (#1971) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(deps): update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.7.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ff8e69827f0a..8d16ba6d7b38 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.7.1 + 1.7.2 pom import From 22fede57884f42001b3af91d5152a4da981d4fbc Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 8 Apr 2022 17:29:20 +0200 Subject: [PATCH 1836/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.2 (#1970) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 28a3a619707b..feb33fbe7529 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.33.1 + 1.33.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index cbf8f48e0d5d..9eaa760ad68c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.33.1 + 1.33.2 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 454f4abc85d2..072ac96fedb4 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.33.1 + 1.33.2 From a4e96785895e966ac527481b7ce8837599327db6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 8 Apr 2022 15:44:12 +0000 Subject: [PATCH 1837/3441] chore(main): release 2.10.7 (#1973) :robot: I have created a release *beep* *boop* --- ### [2.10.7](https://github.com/googleapis/java-bigquery/compare/v2.10.6...v2.10.7) (2022-04-08) ### Dependencies * update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.2 ([#1969](https://github.com/googleapis/java-bigquery/issues/1969)) ([f1c4b84](https://github.com/googleapis/java-bigquery/commit/f1c4b847a271a86bba7f123945515c721c3b9ae1)) * update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.2 ([#1970](https://github.com/googleapis/java-bigquery/issues/1970)) ([22fede5](https://github.com/googleapis/java-bigquery/commit/22fede57884f42001b3af91d5152a4da981d4fbc)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 223308183382..15e00891f2ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.10.7](https://github.com/googleapis/java-bigquery/compare/v2.10.6...v2.10.7) (2022-04-08) + + +### Dependencies + +* update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.2 ([#1969](https://github.com/googleapis/java-bigquery/issues/1969)) ([f1c4b84](https://github.com/googleapis/java-bigquery/commit/f1c4b847a271a86bba7f123945515c721c3b9ae1)) +* update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.2 ([#1970](https://github.com/googleapis/java-bigquery/issues/1970)) ([22fede5](https://github.com/googleapis/java-bigquery/commit/22fede57884f42001b3af91d5152a4da981d4fbc)) + ### [2.10.6](https://github.com/googleapis/java-bigquery/compare/v2.10.5...v2.10.6) (2022-04-07) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a3f400c101e1..b7a154740739 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.7-SNAPSHOT + 2.10.7 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 15b962e09422..dc99bec7d522 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.7-SNAPSHOT + 2.10.7 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.7-SNAPSHOT + 2.10.7 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8d16ba6d7b38..70070720ddde 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.7-SNAPSHOT + 2.10.7 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.7-SNAPSHOT + 2.10.7 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9eaa760ad68c..68f6877796a6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.7-SNAPSHOT + 2.10.7 diff --git a/versions.txt b/versions.txt index be069c16af84..18ea6ba95c4e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.6:2.10.7-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.10.7:2.10.7 \ No newline at end of file From 3c4d736234a0549f44a19e2020b32b7db0324248 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 8 Apr 2022 16:04:13 +0000 Subject: [PATCH 1838/3441] chore(main): release 2.10.8-SNAPSHOT (#1974) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b7a154740739..0b59ff743d7f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.7 + 2.10.8-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index dc99bec7d522..b539393d793d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.7 + 2.10.8-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.7 + 2.10.8-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 70070720ddde..a1574dd56d78 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.7 + 2.10.8-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.7 + 2.10.8-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 68f6877796a6..179033a52c77 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.7 + 2.10.8-SNAPSHOT diff --git a/versions.txt b/versions.txt index 18ea6ba95c4e..03fada45b2f5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.7:2.10.7 \ No newline at end of file +google-cloud-bigquery:2.10.7:2.10.8-SNAPSHOT \ No newline at end of file From eab45ff04c3fd6372c13f433d3047fdaff818785 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 8 Apr 2022 21:07:45 +0200 Subject: [PATCH 1839/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.7 (#1975) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.7 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9220e08bd30b..997add9ff3a7 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.10.6 + 2.10.7 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.10.6' +implementation 'com.google.cloud:google-cloud-bigquery:2.10.7' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.6" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.7" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index feb33fbe7529..62c6ecea3272 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.10.6 + 2.10.7 From f9f7abdede91e8f780d5a60b6ee9a26e9316d04d Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Fri, 8 Apr 2022 16:23:03 -0400 Subject: [PATCH 1840/3441] chore: fix nightly samples check (#1976) * chore: fix nighly samples check * chore: test if teh new setup works * chore: add regular presubmit samples check --- .kokoro/continuous/java11-samples.cfg | 30 -------------- .kokoro/continuous/java8-samples.cfg | 33 --------------- .kokoro/nightly/java11-samples.cfg | 30 -------------- .kokoro/nightly/java8-samples.cfg | 33 --------------- .kokoro/presubmit/java11-samples.cfg | 30 -------------- .kokoro/presubmit/java8-samples.cfg | 33 --------------- .kokoro/presubmit/samples.cfg | 2 +- .kokoro/run_samples_resource_cleanup.sh | 4 ++ .kokoro/run_samples_tests.sh | 55 ------------------------- owlbot.py | 9 +--- 10 files changed, 7 insertions(+), 252 deletions(-) delete mode 100644 .kokoro/continuous/java11-samples.cfg delete mode 100644 .kokoro/continuous/java8-samples.cfg delete mode 100644 .kokoro/nightly/java11-samples.cfg delete mode 100644 .kokoro/nightly/java8-samples.cfg delete mode 100644 .kokoro/presubmit/java11-samples.cfg delete mode 100644 .kokoro/presubmit/java8-samples.cfg delete mode 100755 .kokoro/run_samples_tests.sh diff --git a/.kokoro/continuous/java11-samples.cfg b/.kokoro/continuous/java11-samples.cfg deleted file mode 100644 index 0d0a7a3297c6..000000000000 --- a/.kokoro/continuous/java11-samples.cfg +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Format: //devtools/kokoro/config/proto/build.proto - -# Download secrets from Cloud Storage. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java11" -} - -# Tell the trampoline which tests to run. -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/run_samples_tests.sh" -} \ No newline at end of file diff --git a/.kokoro/continuous/java8-samples.cfg b/.kokoro/continuous/java8-samples.cfg deleted file mode 100644 index f3c1f7aaab37..000000000000 --- a/.kokoro/continuous/java8-samples.cfg +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Format: //devtools/kokoro/config/proto/build.proto - -# Download secrets from Cloud Storage. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -# Tell trampoline which tests to run. -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/run_samples_tests.sh" -} - - - diff --git a/.kokoro/nightly/java11-samples.cfg b/.kokoro/nightly/java11-samples.cfg deleted file mode 100644 index 0d0a7a3297c6..000000000000 --- a/.kokoro/nightly/java11-samples.cfg +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Format: //devtools/kokoro/config/proto/build.proto - -# Download secrets from Cloud Storage. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java11" -} - -# Tell the trampoline which tests to run. -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/run_samples_tests.sh" -} \ No newline at end of file diff --git a/.kokoro/nightly/java8-samples.cfg b/.kokoro/nightly/java8-samples.cfg deleted file mode 100644 index f3c1f7aaab37..000000000000 --- a/.kokoro/nightly/java8-samples.cfg +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Format: //devtools/kokoro/config/proto/build.proto - -# Download secrets from Cloud Storage. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -# Tell trampoline which tests to run. -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/run_samples_tests.sh" -} - - - diff --git a/.kokoro/presubmit/java11-samples.cfg b/.kokoro/presubmit/java11-samples.cfg deleted file mode 100644 index 0d0a7a3297c6..000000000000 --- a/.kokoro/presubmit/java11-samples.cfg +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Format: //devtools/kokoro/config/proto/build.proto - -# Download secrets from Cloud Storage. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java11" -} - -# Tell the trampoline which tests to run. -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/run_samples_tests.sh" -} \ No newline at end of file diff --git a/.kokoro/presubmit/java8-samples.cfg b/.kokoro/presubmit/java8-samples.cfg deleted file mode 100644 index f3c1f7aaab37..000000000000 --- a/.kokoro/presubmit/java8-samples.cfg +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Format: //devtools/kokoro/config/proto/build.proto - -# Download secrets from Cloud Storage. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -# Tell trampoline which tests to run. -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/run_samples_tests.sh" -} - - - diff --git a/.kokoro/presubmit/samples.cfg b/.kokoro/presubmit/samples.cfg index 01e0960047b8..b14a33856e77 100644 --- a/.kokoro/presubmit/samples.cfg +++ b/.kokoro/presubmit/samples.cfg @@ -29,5 +29,5 @@ env_vars: { env_vars: { key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account" + value: "java-docs-samples-service-account, java-bigquery-samples-secrets" } \ No newline at end of file diff --git a/.kokoro/run_samples_resource_cleanup.sh b/.kokoro/run_samples_resource_cleanup.sh index e04daf3c646f..4f89485f8ba9 100755 --- a/.kokoro/run_samples_resource_cleanup.sh +++ b/.kokoro/run_samples_resource_cleanup.sh @@ -30,6 +30,10 @@ source ${scriptDir}/common.sh # Setup required env variables source ${KOKORO_GFILE_DIR}/secret_manager/java-bigquery-samples-secrets +# if GOOGLE_APPLICATION_CREDENTIALS is specified as a relative path, prepend Kokoro root directory onto it +if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTIALS}" != /* ]]; then + export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_GFILE_DIR}/${GOOGLE_APPLICATION_CREDENTIALS}) +fi echo "********** Successfully Set All Environment Variables **********" # Move into the samples directory diff --git a/.kokoro/run_samples_tests.sh b/.kokoro/run_samples_tests.sh deleted file mode 100755 index 02038d8f3c6d..000000000000 --- a/.kokoro/run_samples_tests.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -# Copyright 2019 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# `-e` enables the script to automatically fail when a command fails -# `-o pipefail` sets the exit code to the rightmost comment to exit with a non-zero -set -eo pipefail - -echo "********** MAVEN INFO ***********" -mvn -v - -# Get the directory of the build script -scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) -## cd to the parent directory, i.e. the root of the git repo -cd ${scriptDir}/.. - -# include common functions -source ${scriptDir}/common.sh - -# Setup required env variables -source ${KOKORO_GFILE_DIR}/bigquery_secrets.txt -echo "********** Successfully Set All Environment Variables **********" - -# Attempt to install 3 times with exponential backoff (starting with 10 seconds) -retry_with_backoff 3 10 \ - mvn install -B -V \ - -DskipTests=true \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -Dmaven.javadoc.skip=true \ - -Dgcloud.download.skip=true \ - -T 1C - -# Activate service account -gcloud auth activate-service-account \ - --key-file="$GOOGLE_APPLICATION_CREDENTIALS" \ - --project="$GOOGLE_CLOUD_PROJECT" - -# Move into the samples directory -cd samples/ - -echo -e "\n******************** RUNNING SAMPLE TESTS ********************" - -mvn --fail-at-end clean verify \ No newline at end of file diff --git a/owlbot.py b/owlbot.py index f514ca823d0d..106a89a3bda6 100644 --- a/owlbot.py +++ b/owlbot.py @@ -17,14 +17,9 @@ import synthtool.languages.java as java java.common_templates(excludes=[ - '.kokoro/continuous/java8-samples.cfg', - '.kokoro/continuous/java11-samples.cfg', - '.kokoro/nightly/java8-samples.cfg', - '.kokoro/nightly/java11-samples.cfg', '.kokoro/nightly/samples.cfg', - '.kokoro/presubmit/java8-samples.cfg', - '.kokoro/presubmit/java11-samples.cfg', + '.kokoro/presubmit/samples.cfg', '.kokoro/dependencies.sh', 'codecov.yaml', 'renovate.json', -]) +]) \ No newline at end of file From a24ce6ead65f3fceff6573e24c10c324650d907b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 14 Apr 2022 15:10:12 +0200 Subject: [PATCH 1841/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.3 (#1978) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.oauth-client:google-oauth-client-jetty](https://togithub.com/googleapis/google-oauth-java-client) | `1.33.2` -> `1.33.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-jetty/1.33.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-jetty/1.33.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-jetty/1.33.3/compatibility-slim/1.33.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-jetty/1.33.3/confidence-slim/1.33.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/google-oauth-java-client ### [`v1.33.3`](https://togithub.com/googleapis/google-oauth-java-client/blob/HEAD/CHANGELOG.md#​1333-httpsgithubcomgoogleapisgoogle-oauth-java-clientcomparev1332v1333-2022-04-13) [Compare Source](https://togithub.com/googleapis/google-oauth-java-client/compare/v1.33.2...v1.33.3)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 62c6ecea3272..2fbe62d63c6d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.33.2 + 1.33.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 179033a52c77..c74e52ebd088 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.33.2 + 1.33.3 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 072ac96fedb4..875175504b11 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.33.2 + 1.33.3 From b08479180e212bccae166f3a675d46fb658d3ce8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 14 Apr 2022 15:10:16 +0200 Subject: [PATCH 1842/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.3 (#1977) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.oauth-client:google-oauth-client-java6](https://togithub.com/googleapis/google-oauth-java-client) | `1.33.2` -> `1.33.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-java6/1.33.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-java6/1.33.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-java6/1.33.3/compatibility-slim/1.33.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-java6/1.33.3/confidence-slim/1.33.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/google-oauth-java-client ### [`v1.33.3`](https://togithub.com/googleapis/google-oauth-java-client/blob/HEAD/CHANGELOG.md#​1333-httpsgithubcomgoogleapisgoogle-oauth-java-clientcomparev1332v1333-2022-04-13) [Compare Source](https://togithub.com/googleapis/google-oauth-java-client/compare/v1.33.2...v1.33.3)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2fbe62d63c6d..95115402ceb8 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.33.2 + 1.33.3 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c74e52ebd088..7bda0e2dacf1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.33.2 + 1.33.3 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 875175504b11..d75d36445c9c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.33.2 + 1.33.3 com.google.oauth-client From e113120560a2849717e5a3598cb51d6854cd1e1c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 14 Apr 2022 13:26:36 +0000 Subject: [PATCH 1843/3441] chore(main): release 2.10.8 (#1979) :robot: I have created a release *beep* *boop* --- ### [2.10.8](https://github.com/googleapis/java-bigquery/compare/v2.10.7...v2.10.8) (2022-04-14) ### Dependencies * update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.3 ([#1977](https://github.com/googleapis/java-bigquery/issues/1977)) ([b084791](https://github.com/googleapis/java-bigquery/commit/b08479180e212bccae166f3a675d46fb658d3ce8)) * update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.3 ([#1978](https://github.com/googleapis/java-bigquery/issues/1978)) ([a24ce6e](https://github.com/googleapis/java-bigquery/commit/a24ce6ead65f3fceff6573e24c10c324650d907b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 15e00891f2ce..499427191824 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.10.8](https://github.com/googleapis/java-bigquery/compare/v2.10.7...v2.10.8) (2022-04-14) + + +### Dependencies + +* update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.3 ([#1977](https://github.com/googleapis/java-bigquery/issues/1977)) ([b084791](https://github.com/googleapis/java-bigquery/commit/b08479180e212bccae166f3a675d46fb658d3ce8)) +* update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.3 ([#1978](https://github.com/googleapis/java-bigquery/issues/1978)) ([a24ce6e](https://github.com/googleapis/java-bigquery/commit/a24ce6ead65f3fceff6573e24c10c324650d907b)) + ### [2.10.7](https://github.com/googleapis/java-bigquery/compare/v2.10.6...v2.10.7) (2022-04-08) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 0b59ff743d7f..d8722a1e6bcb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.8-SNAPSHOT + 2.10.8 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b539393d793d..5013cc80d2bb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.8-SNAPSHOT + 2.10.8 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.8-SNAPSHOT + 2.10.8 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a1574dd56d78..4625caae25a8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.8-SNAPSHOT + 2.10.8 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.8-SNAPSHOT + 2.10.8 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7bda0e2dacf1..4104c783df4f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.8-SNAPSHOT + 2.10.8 diff --git a/versions.txt b/versions.txt index 03fada45b2f5..1490c8054767 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.7:2.10.8-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.10.8:2.10.8 \ No newline at end of file From 9cefa4b16bb4eb92d4a3bc7ba55b5a837ce328a6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 14 Apr 2022 18:50:26 -0400 Subject: [PATCH 1844/3441] chore(main): release 2.10.9-SNAPSHOT (#1980) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d8722a1e6bcb..e9466fcb9102 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.8 + 2.10.9-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5013cc80d2bb..819df13b389f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.8 + 2.10.9-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.8 + 2.10.9-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4625caae25a8..0ccadebe6615 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.8 + 2.10.9-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.8 + 2.10.9-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4104c783df4f..eb3aa78bde1d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.8 + 2.10.9-SNAPSHOT diff --git a/versions.txt b/versions.txt index 1490c8054767..b771ef888e89 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.8:2.10.8 \ No newline at end of file +google-cloud-bigquery:2.10.8:2.10.9-SNAPSHOT \ No newline at end of file From 04f4679fe376e726b21e313115bfd48adc6cbe6b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 15 Apr 2022 21:32:27 +0200 Subject: [PATCH 1845/3441] deps: update dependency com.google.cloud:native-image-support to v0.13.1 (#1982) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:native-image-support](https://togithub.com/googleapis/java-core) | `0.12.11` -> `0.13.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.13.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.13.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.13.1/compatibility-slim/0.12.11)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.13.1/confidence-slim/0.12.11)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 997add9ff3a7..6b8f45c2041e 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.10.7' +implementation 'com.google.cloud:google-cloud-bigquery:2.10.8' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.7" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.8" ``` ## Authentication diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index f4893182a93a..4d22a0c9927d 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ com.google.cloud native-image-support - 0.12.11 + 0.13.1 org.junit.vintage From ac7e2e8ad59a3026cdf82fc986cc2e2645ae1dff Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 15 Apr 2022 21:40:28 +0200 Subject: [PATCH 1846/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.8 (#1981) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.10.7` -> `2.10.8` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.8/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.8/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.8/compatibility-slim/2.10.7)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.8/confidence-slim/2.10.7)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.10.8`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2108-httpsgithubcomgoogleapisjava-bigquerycomparev2107v2108-2022-04-14) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.10.7...v2.10.8)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6b8f45c2041e..f0e0c105302d 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.10.7 + 2.10.8 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 95115402ceb8..5e342ab797b8 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.10.7 + 2.10.8 From 50ac31c598ae8c5aa4e1f6dcde80da704db904a5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 15 Apr 2022 21:44:30 +0200 Subject: [PATCH 1847/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.10.0 (#1983) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `2.9.0` -> `2.10.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.10.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.10.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.10.0/compatibility-slim/2.9.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.10.0/confidence-slim/2.9.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v2.10.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/HEAD/CHANGELOG.md#​2100-httpsgithubcomgoogleapisjava-shared-dependenciescomparev290v2100-2022-04-15) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v2.9.0...v2.10.0) ##### Dependencies - google-cloud-core 2.6.0 ([#​668](https://togithub.com/googleapis/java-shared-dependencies/issues/668)) ([22f4d18](https://togithub.com/googleapis/java-shared-dependencies/commit/22f4d1809cbb9848174b3569ab527e4bef00d443)) - reverting protobuf to 3.19.4 ([#​657](https://togithub.com/googleapis/java-shared-dependencies/issues/657)) ([8501e6d](https://togithub.com/googleapis/java-shared-dependencies/commit/8501e6d842c10d2370bbd5d5246070134336bddd)) - update dependency com.fasterxml.jackson:jackson-bom to v2.13.2.20220328 ([#​646](https://togithub.com/googleapis/java-shared-dependencies/issues/646)) ([7bfd6d7](https://togithub.com/googleapis/java-shared-dependencies/commit/7bfd6d7073859d1955b91b368c6713a72ffa14b6)) - update dependency com.google.api-client:google-api-client-bom to v1.34.0 ([#​662](https://togithub.com/googleapis/java-shared-dependencies/issues/662)) ([1b8e378](https://togithub.com/googleapis/java-shared-dependencies/commit/1b8e378fe0ccf2a28c759868caaf5ba593a95728)) - update dependency com.google.errorprone:error_prone_annotations to v2.12.1 ([#​652](https://togithub.com/googleapis/java-shared-dependencies/issues/652)) ([1cc80ee](https://togithub.com/googleapis/java-shared-dependencies/commit/1cc80ee984ebcad9bc2a95e2f28c0a49fe924b37)) - update dependency com.google.errorprone:error_prone_annotations to v2.13.0 ([#​669](https://togithub.com/googleapis/java-shared-dependencies/issues/669)) ([61b7834](https://togithub.com/googleapis/java-shared-dependencies/commit/61b78341b34a251722be4805a6bdd895cd64836c)) - update dependency com.google.http-client:google-http-client-bom to v1.41.6 ([#​654](https://togithub.com/googleapis/java-shared-dependencies/issues/654)) ([140ef40](https://togithub.com/googleapis/java-shared-dependencies/commit/140ef405bc17ed83f5ce177df59affca14fbe49c)) - update dependency com.google.http-client:google-http-client-bom to v1.41.7 ([#​658](https://togithub.com/googleapis/java-shared-dependencies/issues/658)) ([f6f93e5](https://togithub.com/googleapis/java-shared-dependencies/commit/f6f93e5b9172c9684623c4c148e4a8fe2fae1e94)) - update dependency com.google.oauth-client:google-oauth-client-bom to v1.33.2 ([#​655](https://togithub.com/googleapis/java-shared-dependencies/issues/655)) ([20cd9ed](https://togithub.com/googleapis/java-shared-dependencies/commit/20cd9eda112c96836a5ab7485a4247ed2bc0edb8)) - update dependency com.google.oauth-client:google-oauth-client-bom to v1.33.3 ([#​663](https://togithub.com/googleapis/java-shared-dependencies/issues/663)) ([f011a46](https://togithub.com/googleapis/java-shared-dependencies/commit/f011a46c551dba16851b4f8c919c40452fc5d5c3)) - update dependency com.google.protobuf:protobuf-bom to v3.20.0 ([#​651](https://togithub.com/googleapis/java-shared-dependencies/issues/651)) ([ad2ff73](https://togithub.com/googleapis/java-shared-dependencies/commit/ad2ff73207dd6493321c77d8eca0022baf13b4ce)) - update dependency io.grpc:grpc-bom to v1.45.1 ([#​647](https://togithub.com/googleapis/java-shared-dependencies/issues/647)) ([38e46fc](https://togithub.com/googleapis/java-shared-dependencies/commit/38e46fc4f03af0a02f30ce4a2fa222c71797ae15)) - update dependency org.checkerframework:checker-qual to v3.21.4 ([#​650](https://togithub.com/googleapis/java-shared-dependencies/issues/650)) ([125e80a](https://togithub.com/googleapis/java-shared-dependencies/commit/125e80ab2c3225a00c03f5ff5de94872ebb94303)) - update gax.version to v2.15.0 ([#​649](https://togithub.com/googleapis/java-shared-dependencies/issues/649)) ([c7f32a6](https://togithub.com/googleapis/java-shared-dependencies/commit/c7f32a68b14520104432282ac9598643700162eb)) - update gax.version to v2.16.0 ([#​664](https://togithub.com/googleapis/java-shared-dependencies/issues/664)) ([caaf941](https://togithub.com/googleapis/java-shared-dependencies/commit/caaf941643af04295f5527a0144587d7bf040862)) - update google.common-protos.version to v2.8.1 ([#​656](https://togithub.com/googleapis/java-shared-dependencies/issues/656)) ([df4a4a2](https://togithub.com/googleapis/java-shared-dependencies/commit/df4a4a2130a3cdb2965ea42962d1ea6a85506ba7)) - update google.common-protos.version to v2.8.2 ([#​659](https://togithub.com/googleapis/java-shared-dependencies/issues/659)) ([b499e2b](https://togithub.com/googleapis/java-shared-dependencies/commit/b499e2bc99506d48d26e35bf6e68c09409ce8b11)) - update google.common-protos.version to v2.8.3 ([#​660](https://togithub.com/googleapis/java-shared-dependencies/issues/660)) ([461081c](https://togithub.com/googleapis/java-shared-dependencies/commit/461081c0cf73057c1f6e07fc573453ad467a60ae)) - update iam.version to v1.3.0 ([#​648](https://togithub.com/googleapis/java-shared-dependencies/issues/648)) ([6670c4f](https://togithub.com/googleapis/java-shared-dependencies/commit/6670c4f61fcf075c543bfd148eea49796e0662ce)) - update iam.version to v1.3.1 ([#​661](https://togithub.com/googleapis/java-shared-dependencies/issues/661)) ([cc8fbe6](https://togithub.com/googleapis/java-shared-dependencies/commit/cc8fbe6eae03341c2ece7d3356febc843a74a812))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0ccadebe6615..bf5fabe353f1 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20220326-1.32.1 - 2.9.0 + 2.10.0
    From b9f75e236228e50964e5943b50d5984d64a477d4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 16 Apr 2022 06:20:10 +0200 Subject: [PATCH 1848/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.2.3 (#1986) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5e342ab797b8..0b58b476e850 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.2 + 2.2.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index eb3aa78bde1d..e86e6d5ec06c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.2 + 2.2.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d75d36445c9c..b95964164f0b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.2 + 2.2.3 test From 2c5646861a13f7c21e872ecb625ae7b0e6fc54b1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 16 Apr 2022 06:21:35 +0200 Subject: [PATCH 1849/3441] test(deps): update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.7.3 (#1987) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bf5fabe353f1..28084fd807d3 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.7.2 + 1.7.3 pom import From d60c137cd86ce1834e9ac47f287b9c93ccf50b42 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 16 Apr 2022 04:36:21 +0000 Subject: [PATCH 1850/3441] chore(main): release 2.10.9 (#1984) :robot: I have created a release *beep* *boop* --- ### [2.10.9](https://github.com/googleapis/java-bigquery/compare/v2.10.8...v2.10.9) (2022-04-16) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.10.0 ([#1983](https://github.com/googleapis/java-bigquery/issues/1983)) ([50ac31c](https://github.com/googleapis/java-bigquery/commit/50ac31c598ae8c5aa4e1f6dcde80da704db904a5)) * update dependency com.google.cloud:native-image-support to v0.13.1 ([#1982](https://github.com/googleapis/java-bigquery/issues/1982)) ([04f4679](https://github.com/googleapis/java-bigquery/commit/04f4679fe376e726b21e313115bfd48adc6cbe6b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 499427191824..d49ced0dc6c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.10.9](https://github.com/googleapis/java-bigquery/compare/v2.10.8...v2.10.9) (2022-04-16) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.10.0 ([#1983](https://github.com/googleapis/java-bigquery/issues/1983)) ([50ac31c](https://github.com/googleapis/java-bigquery/commit/50ac31c598ae8c5aa4e1f6dcde80da704db904a5)) +* update dependency com.google.cloud:native-image-support to v0.13.1 ([#1982](https://github.com/googleapis/java-bigquery/issues/1982)) ([04f4679](https://github.com/googleapis/java-bigquery/commit/04f4679fe376e726b21e313115bfd48adc6cbe6b)) + ### [2.10.8](https://github.com/googleapis/java-bigquery/compare/v2.10.7...v2.10.8) (2022-04-14) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index e9466fcb9102..2829ff763943 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.9-SNAPSHOT + 2.10.9 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 819df13b389f..6f600d768643 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.9-SNAPSHOT + 2.10.9 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.9-SNAPSHOT + 2.10.9 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 28084fd807d3..6cad60a404bc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.9-SNAPSHOT + 2.10.9 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.9-SNAPSHOT + 2.10.9 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e86e6d5ec06c..09c41694cc98 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.9-SNAPSHOT + 2.10.9 diff --git a/versions.txt b/versions.txt index b771ef888e89..aa4bc48eb139 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.8:2.10.9-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.10.9:2.10.9 \ No newline at end of file From 8709c9eb6f689f448412d3a5e1f5bd9d555796c7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 16 Apr 2022 04:50:20 +0000 Subject: [PATCH 1851/3441] chore(main): release 2.10.10-SNAPSHOT (#1988) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2829ff763943..ba3e3e0a1070 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.9 + 2.10.10-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6f600d768643..0652faf8057d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.9 + 2.10.10-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.9 + 2.10.10-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 6cad60a404bc..958753c48d9f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.9 + 2.10.10-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.9 + 2.10.10-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 09c41694cc98..82f7cf3d811a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.9 + 2.10.10-SNAPSHOT diff --git a/versions.txt b/versions.txt index aa4bc48eb139..4f7ca68b919d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.9:2.10.9 \ No newline at end of file +google-cloud-bigquery:2.10.9:2.10.10-SNAPSHOT \ No newline at end of file From d0823c1e1f99f22cbe42f99ed719e88c717e7011 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 18 Apr 2022 17:40:39 +0200 Subject: [PATCH 1852/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.9 (#1989) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.10.8` -> `2.10.9` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.9/compatibility-slim/2.10.8)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.9/confidence-slim/2.10.8)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.10.9`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2109-httpsgithubcomgoogleapisjava-bigquerycomparev2108v2109-2022-04-16) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.10.8...v2.10.9)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f0e0c105302d..0616bfdbd013 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.10.8 + 2.10.9 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.10.8' +implementation 'com.google.cloud:google-cloud-bigquery:2.10.9' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.8" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.9" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0b58b476e850..85acf0b23d97 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.10.8 + 2.10.9 From e02bf315737dba50741c1346af8bde6871cb857a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 18 Apr 2022 23:14:26 +0200 Subject: [PATCH 1853/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.6.1 (#1991) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.6.0` -> `2.6.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.6.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.6.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.6.1/compatibility-slim/2.6.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.6.1/confidence-slim/2.6.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.6.1`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​261-httpsgithubcomgoogleapisjava-storagecomparev260v261-2022-04-15) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.6.0...v2.6.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 958753c48d9f..27aac6fae53e 100644 --- a/pom.xml +++ b/pom.xml @@ -135,7 +135,7 @@ com.google.cloud google-cloud-storage - 2.6.0 + 2.6.1 test From 4c1cb4c13214556b706f1ff8c50a46f881bf2724 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 18 Apr 2022 23:14:30 +0200 Subject: [PATCH 1854/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.6.2 (#1990) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.6.1` -> `2.6.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.2/compatibility-slim/2.6.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.2/confidence-slim/2.6.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.6.2`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​262-httpsgithubcomgoogleapisjava-bigtablecomparev261v262-2022-04-15) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.6.1...v2.6.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 85acf0b23d97..24a0de4729df 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.6.1 + 2.6.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 82f7cf3d811a..1057e8793308 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.6.1 + 2.6.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index b95964164f0b..25edf810da0d 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.6.1 + 2.6.2 test From ef3c321b146ffff09d9f0edadc5823a34d25d15f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 18 Apr 2022 21:36:15 +0000 Subject: [PATCH 1855/3441] chore(main): release 2.10.10 (#1992) :robot: I have created a release *beep* *boop* --- ### [2.10.10](https://github.com/googleapis/java-bigquery/compare/v2.10.9...v2.10.10) (2022-04-18) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v2.6.2 ([#1990](https://github.com/googleapis/java-bigquery/issues/1990)) ([4c1cb4c](https://github.com/googleapis/java-bigquery/commit/4c1cb4c13214556b706f1ff8c50a46f881bf2724)) * update dependency com.google.cloud:google-cloud-storage to v2.6.1 ([#1991](https://github.com/googleapis/java-bigquery/issues/1991)) ([e02bf31](https://github.com/googleapis/java-bigquery/commit/e02bf315737dba50741c1346af8bde6871cb857a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d49ced0dc6c8..f17245708829 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.10.10](https://github.com/googleapis/java-bigquery/compare/v2.10.9...v2.10.10) (2022-04-18) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v2.6.2 ([#1990](https://github.com/googleapis/java-bigquery/issues/1990)) ([4c1cb4c](https://github.com/googleapis/java-bigquery/commit/4c1cb4c13214556b706f1ff8c50a46f881bf2724)) +* update dependency com.google.cloud:google-cloud-storage to v2.6.1 ([#1991](https://github.com/googleapis/java-bigquery/issues/1991)) ([e02bf31](https://github.com/googleapis/java-bigquery/commit/e02bf315737dba50741c1346af8bde6871cb857a)) + ### [2.10.9](https://github.com/googleapis/java-bigquery/compare/v2.10.8...v2.10.9) (2022-04-16) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ba3e3e0a1070..0c2783263f79 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.10-SNAPSHOT + 2.10.10 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0652faf8057d..c963fe70e2a0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.10-SNAPSHOT + 2.10.10 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.10-SNAPSHOT + 2.10.10 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 27aac6fae53e..b81b23d2a86d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.10-SNAPSHOT + 2.10.10 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.10-SNAPSHOT + 2.10.10 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1057e8793308..ba4b018979d7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.10-SNAPSHOT + 2.10.10 diff --git a/versions.txt b/versions.txt index 4f7ca68b919d..f0ae8a52eb53 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.9:2.10.10-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.10.10:2.10.10 \ No newline at end of file From b3825584192e1d7fdbc70a7775fd9b3457469577 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 18 Apr 2022 21:54:12 +0000 Subject: [PATCH 1856/3441] chore(main): release 2.10.11-SNAPSHOT (#1993) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 0c2783263f79..10f47165e2e2 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.10 + 2.10.11-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c963fe70e2a0..93d574784032 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.10 + 2.10.11-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.10 + 2.10.11-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b81b23d2a86d..66d1915f92da 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.10 + 2.10.11-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -84,7 +84,7 @@ com.google.cloud google-cloud-bigquery - 2.10.10 + 2.10.11-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ba4b018979d7..2d7044933cee 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.10 + 2.10.11-SNAPSHOT diff --git a/versions.txt b/versions.txt index f0ae8a52eb53..ad1668e67d3d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.10:2.10.10 \ No newline at end of file +google-cloud-bigquery:2.10.10:2.10.11-SNAPSHOT \ No newline at end of file From 6fe715cb053295ab9dae32bc7369cc28da11b119 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 19 Apr 2022 04:14:40 +0200 Subject: [PATCH 1857/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.10 (#1995) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.10 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0616bfdbd013..cc3ab5f442df 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.10.9 + 2.10.10 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.10.9' +implementation 'com.google.cloud:google-cloud-bigquery:2.10.10' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.9" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.10" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 24a0de4729df..9d69b7909930 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.10.9 + 2.10.10 From f716427490d4b87573669ab4338335c0844e82c0 Mon Sep 17 00:00:00 2001 From: Prashant Mishra Date: Tue, 19 Apr 2022 20:49:54 +0530 Subject: [PATCH 1858/3441] feat: next release from main branch is 2.10.9 (#1996) --- .github/release-please.yml | 4 ++++ .github/sync-repo-settings.yaml | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/.github/release-please.yml b/.github/release-please.yml index 473d7f07c429..c87ad8d73c85 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -11,6 +11,10 @@ branches: handleGHRelease: true releaseType: java-backport branch: 2.3.x + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 2.10.x bumpMinorPreMajor: true handleGHRelease: true releaseType: java-yoshi diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 960ae2ba055c..1bede3ce6841 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -62,6 +62,21 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - cla/google - OwlBot Post Processor + - pattern: 2.10.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (8) + - dependencies (11) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - OwlBot Post Processor permissionRules: - team: api-bigquery permission: admin From 1790ac4b54eca038b32a9e26b42a3df5fc77d4df Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 20 Apr 2022 18:39:26 +0200 Subject: [PATCH 1859/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.3.3 (#2000) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 66d1915f92da..7cf4408ac740 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.3.2 + 1.3.3 From 47d0946fb0c4e9cc5be7d267fd753c019d6e0379 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 20 Apr 2022 22:31:03 +0200 Subject: [PATCH 1860/3441] test(deps): update dependency org.mockito:mockito-core to v4.5.0 (#1999) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7cf4408ac740..052dd3a7771f 100644 --- a/pom.xml +++ b/pom.xml @@ -129,7 +129,7 @@ org.mockito mockito-core - 4.4.0 + 4.5.0 test From 3c4e0e3503260435c3451885d2f5f6f3448c973c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 21 Apr 2022 16:28:57 +0200 Subject: [PATCH 1861/3441] test(deps): update dependency org.mockito:mockito-core to v4.5.1 (#2003) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 052dd3a7771f..2d45998cbe19 100644 --- a/pom.xml +++ b/pom.xml @@ -129,7 +129,7 @@ org.mockito mockito-core - 4.5.0 + 4.5.1 test From ace01e1736a2da6d6c510624cf8cec1e2e4b4bce Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 21 Apr 2022 16:29:12 +0200 Subject: [PATCH 1862/3441] build(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.4.0 (#2002) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2d45998cbe19..1f12a0b69112 100644 --- a/pom.xml +++ b/pom.xml @@ -184,7 +184,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.3.2 + 3.4.0 html From 828f2cd150a207055a76935a302f1b43c5efa29b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 21 Apr 2022 19:42:31 +0200 Subject: [PATCH 1863/3441] build(deps): update dependency org.sonatype.plugins:nexus-staging-maven-plugin to v1.6.13 (#2004) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.sonatype.plugins:nexus-staging-maven-plugin](http://www.sonatype.com/) ([source](https://togithub.com/sonatype/nexus-maven-plugins)) | `1.6.12` -> `1.6.13` | [![age](https://badges.renovateapi.com/packages/maven/org.sonatype.plugins:nexus-staging-maven-plugin/1.6.13/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.sonatype.plugins:nexus-staging-maven-plugin/1.6.13/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.sonatype.plugins:nexus-staging-maven-plugin/1.6.13/compatibility-slim/1.6.12)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.sonatype.plugins:nexus-staging-maven-plugin/1.6.13/confidence-slim/1.6.12)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    sonatype/nexus-maven-plugins ### [`v1.6.13`](https://togithub.com/sonatype/nexus-maven-plugins/compare/release-1.6.12...release-1.6.13) [Compare Source](https://togithub.com/sonatype/nexus-maven-plugins/compare/release-1.6.12...release-1.6.13)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- benchmark/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 10f47165e2e2..db892112cbb2 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -83,7 +83,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.12 + 1.6.13 true diff --git a/samples/pom.xml b/samples/pom.xml index 4e280e644d71..cb1ba7802038 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -63,7 +63,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.12 + 1.6.13 true diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 25edf810da0d..ff98571aaea4 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -117,7 +117,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.12 + 1.6.13 true From 7b2236ee80a4050d0d96933a1a254349b2a40702 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 22 Apr 2022 16:12:21 +0200 Subject: [PATCH 1864/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.2.4 (#2006) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | `2.2.3` -> `2.2.4` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.2.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.2.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.2.4/compatibility-slim/2.2.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.2.4/confidence-slim/2.2.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v2.2.4`](https://togithub.com/googleapis/java-bigqueryconnection/blob/HEAD/CHANGELOG.md#​224-httpsgithubcomgoogleapisjava-bigqueryconnectioncomparev223v224-2022-04-21) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.2.3...v2.2.4)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 9d69b7909930..4b298cce877c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.3 + 2.2.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2d7044933cee..befe43618055 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.3 + 2.2.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ff98571aaea4..de7bbfd7461b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.3 + 2.2.4 test From aa2830d5d5772b0d5f611ca526d7f2ff0972f2a6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 26 Apr 2022 21:07:35 +0200 Subject: [PATCH 1865/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v25.2.0 (#2008) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v25.2.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index cc3ab5f442df..8589bfc2b409 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 25.1.0 + 25.2.0 pom import @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:25.1.0') +implementation platform('com.google.cloud:libraries-bom:25.2.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 4d22a0c9927d..a8955f889ff7 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 25.1.0 + 25.2.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index de7bbfd7461b..26550a1c5b48 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 25.1.0 + 25.2.0 pom import From e2e91133718d41349a94b5d93d66699e84233e64 Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Wed, 27 Apr 2022 15:50:24 -0400 Subject: [PATCH 1866/3441] docs(sample): remove unused dependency and add setup instructions (#2010) --- samples/native-image-sample/README.md | 37 ++++++++++++++++++++++++++- samples/native-image-sample/pom.xml | 5 ---- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/samples/native-image-sample/README.md b/samples/native-image-sample/README.md index e4e4b52eeba0..8d7bce658987 100644 --- a/samples/native-image-sample/README.md +++ b/samples/native-image-sample/README.md @@ -4,7 +4,42 @@ The BigQuery sample application demonstrates some common operations with [Google ## Setup Instructions -1. Follow the [GCP Project Authentication and Native Image Setup Instructions](../../README.md). +## Setup Instructions + +You will need to follow these prerequisite steps in order to run the samples: + +1. If you have not already, [create a Google Cloud Platform Project](https://cloud.google.com/resource-manager/docs/creating-managing-projects#creating_a_project). + +2. Install the [Google Cloud SDK](https://cloud.google.com/sdk/) which will allow you to run the sample with your project's credentials. + + Once installed, log in with Application Default Credentials using the following command: + + ``` + gcloud auth application-default login + ``` + + **Note:** Authenticating with Application Default Credentials is convenient to use during development, but we recommend [alternate methods of authentication](https://cloud.google.com/docs/authentication/production) during production use. + +3. Install the native image compiler. + + You can follow [the installation instructions](https://www.graalvm.org/docs/getting-started/#install-graalvm) from the GraalVM website. + After following the instructions, ensure that you install the native image extension installed by running: + + ``` + gu install native-image + ``` + + Once you finish following the instructions, verify that the default version of Java is set to the GraalVM version by running `java -version` in a terminal. + + You will see something similar to the below output: + + ``` + $ java -version + + openjdk version "11.0.7" 2020-04-14 + OpenJDK Runtime Environment GraalVM CE 20.1.0 (build 11.0.7+10-jvmci-20.1-b02) + OpenJDK 64-Bit Server VM GraalVM CE 20.1.0 (build 11.0.7+10-jvmci-20.1-b02, mixed mode, sharing) + ``` 2. [Enable the BigQuery APIs](https://console.cloud.google.com/apis/api/bigquery.googleapis.com). diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index a8955f889ff7..de1ea6adf7df 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -90,11 +90,6 @@ native - - com.google.cloud - native-image-support - 0.13.1 - org.junit.vintage junit-vintage-engine From 56988a563d9395e405eaa45003c8cf7a1ad94435 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 28 Apr 2022 17:33:10 +0200 Subject: [PATCH 1867/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.3.0 (#2011) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1f12a0b69112..8bde21742f25 100644 --- a/pom.xml +++ b/pom.xml @@ -157,7 +157,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.2.2 + 3.3.0 From a8eb755cda581157bfdd79538c4b256dc0db0238 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Thu, 28 Apr 2022 11:44:40 -0700 Subject: [PATCH 1868/3441] chore: IT clean-up (#2012) Fixes #1924 Per discussion in b/227623980 --- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index c8f7ce4fa397..f3b60cebe72d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3029,9 +3029,6 @@ public void testSnapshotTableCopyJob() throws InterruptedException { assertEquals(DDL_TABLE_SCHEMA, result.getSchema()); Table remoteTable = bigquery.getTable(DATASET, sourceTableName); assertNotNull(remoteTable); - // StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); - // TableInfo tableInfo = TableInfo.of(sourceTableId, tableDefinition); - // Table createdTable = bigquery.create(tableInfo); // Create snapshot table using source table as the base table TableId snapshotTableId = TableId.of(DATASET, snapshotTableName); @@ -3066,10 +3063,6 @@ public void testSnapshotTableCopyJob() throws InterruptedException { .build(); Job createdRestoreJob = bigquery.create(JobInfo.of(restoreConfiguration)); CopyJobConfiguration createdRestoreConfiguration = createdRestoreJob.getConfiguration(); - // TODO: uncomment/modify below when b/227623980 is resolved - // assertEquals( - // restoreConfiguration.getSourceTables().get(0).getTable(), - // createdRestoreConfiguration.getSourceTables().get(0).getTable()); assertEquals( restoreConfiguration.getOperationType(), createdRestoreConfiguration.getOperationType()); assertEquals( From 086e97e519b7db55402a17727ccf87a28bf91dc0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 28 Apr 2022 23:45:47 +0200 Subject: [PATCH 1869/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.4.0 (#2013) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8bde21742f25..d4961f44f089 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.3.3 + 1.4.0 From 06cbe69112e3e0d31e4fb90e43dca6e6dc4f1bdf Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Mon, 2 May 2022 10:51:50 -0400 Subject: [PATCH 1870/3441] fix: add native image configuration for Arrow (#2018) --- .../google-cloud-bigquery/reflect-config.json | 10 ++++++++++ .../google-cloud-bigquery/resource-config.json | 6 ++++++ 2 files changed, 16 insertions(+) create mode 100644 google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/reflect-config.json create mode 100644 google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/resource-config.json diff --git a/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/reflect-config.json b/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/reflect-config.json new file mode 100644 index 000000000000..f2190122d755 --- /dev/null +++ b/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/reflect-config.json @@ -0,0 +1,10 @@ +[ + { + "name":"io.netty.buffer.AbstractByteBufAllocator", + "queryAllDeclaredMethods":true + }, + { + "name":"org.apache.arrow.memory.DefaultAllocationManagerFactory", + "fields":[{"name":"FACTORY"}] + } +] \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/resource-config.json b/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/resource-config.json new file mode 100644 index 000000000000..dfdcc58c44ca --- /dev/null +++ b/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/resource-config.json @@ -0,0 +1,6 @@ +{ + "resources":{ + "includes":[{ + "pattern":"\\Qorg/apache/arrow/memory/DefaultAllocationManagerFactory.class\\E" + }]} +} \ No newline at end of file From b9fa786ad1bca2fb763a146fa3bb431ff6860153 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 2 May 2022 16:52:10 +0200 Subject: [PATCH 1871/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220422-1.32.1 (#2017) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d4961f44f089..ad88672200d1 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220326-1.32.1 + v2-rev20220422-1.32.1 2.10.0
    From 380427511b33938209241f3800bff05914957f2b Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 6 May 2022 05:33:08 -0700 Subject: [PATCH 1872/3441] feat: add Connection interface (#1374) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * manage dependencies * manage dependencies * update pagination logic * Minor cleanup * Updated the bufferSize * Added testBQResultSetPagination * refactored processQueryResponseResults * updated testBQResultSetPagination to use generated table * implemented a child thread for fetching next page * Adding processQueryResponseResults2 (Independent pageFetcher and producer threads) * Adding processQueryResponseResults2 (Independent pageFetcher and producer threads) * nit: correct Javadoc * Added getPageCacheSize for dynamically computing the size of pageCache * Fixed NPE @ getPageCacheSize * Refactored - Renamed processQueryResponseResults methods * Refactored - exception handling for processQueryResponseResults * Added testConnectionCancel for testing ConnectionImpl.cancel * Added ConnectionImpl.cancel implementation and the interrupt logic in processQueryResponseResults * Lint * Commented testConnectionCancel - Need to update the Cancel Method logic * Implemented processQueryResponseResults_thread_pooled * nit: rename a few vars * Uncommented testConnectionCancel * Cleaned processQueryResponseResults. Removed unused methods. Implemented ThreadPool * Cleaned processQueryResponseResults. Removed unused methods. Implemented ThreadPool * add sessions support and BigQueryResultSetStats interface and impl * add BigQueryResultSetStats to getQueryResults path; refactor jobs.get rpc call method * feat: add support for BI Engine Statistics fixes b/205146044 * Updated pageCacheSize and buffer's size between a MIN and MAX bound. * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Refactored processQueryResponseResults to avoid code duplicity. Added upper bound for the buffer size * Implemented processGetQueryResponseResults(results, jobId) & Refactored the code * Implemented BigQueryDryRunResultImpl * implemented dryRun * Implemented execute select logic when the FastQuery is not Supported * added null check at useReadAPI * Added BQResultSet Test cases * code cleanup and refactoring * add import * additional lint * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * add test requirements * add dryRun implementation * Added schema check @ testConnectionImplDryRun * Added schema check @ testConnectionImplDryRun * Added Java Doc, Removed commented code of processGetQueryResults * Added SetUp and testExecuteSelect * Exposing processQueryResponseResults for testing * Exposing processQueryResponseResults for testing * Added testFastQueryMultiplePages and testCancel * Added testQueryDryRun * Exposing Async methods for testing * Exposing Async methods for testing * Exposing tableDataListRpc for testing * Exposed tableDataListRpc for testing * Added testcases for the 3 async methods * Exposing getQueryResultsFirstPage, isFastQuerySupported and getSubsequentQueryResultsWithJob for testing * Exposing getQueryResultsFirstPage, isFastQuerySupported and getSubsequentQueryResultsWithJob for testing * Added testGetQueryResultsFirstPage and testLegacyQuerySinglePage testcases + Minor refactor * Deleted TODO * Exposed getDestinationTable and tableDataList for testing * Exposed getDestinationTable and tableDataList for testing * Added testFastQueryLongRunning testcase * Added testLegacyQueryMultiplePages * Added BigqueryStorage and Arrow's dependencies * Added draft impl for highThroughPutRead * resolve dependency issues * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Added Attribute to for ArrowSchema * updated highThroughPutRead * Revert "Added Attribute to for ArrowSchema" This reverts commit 3297e4d09f12e2f12cd48e2e2927e880342dc1ea. * composed BigQueryResultSetImpl with all the params * Added parsing logic for ArrowVectors * Update processRows * updated next methods and getters for 3 data types * Added translateAndThrow(Exception ex) * Refactored processRows, added exception handling * Added arrow-memory-netty * Updated highThroughPutRead - Code fix and refactoring * clean up Connection.java and remove methods meant only for testing from the public interface. Update ConnectionImplTest.java to test against ConnectionImpl instead of Connection. * Updated to StandardSQLTypeName * Added Arrow specific logic for primitive getters * Added Arrow specific parsing logic for primitive getters * Added Arrow specific parsing logic for additional datatypes * Modified the getter's logic for parsing arrow * Added Interrupt logic for Arrow processing * Added Arrow Support in ResultSet Methods * Removed typecasting from processRows method * Added Json typecasting logic * Updated Arrow dependency to latest * Added UseReadAPI property * Updated useReadAPI * Updated useReadAPI * feat: add Interval type support (#1844) * feat: add Interval type support Fixes b/208051516 * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * add threeten-extra PeriodDuration support * add unit test coverage Co-authored-by: Owl Bot * Reformat * remove unused declacred dependency: org.apache.arrow:arrow-memory-netty:jar:7.0.0:runtime * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * fixed getDate * format * Added containsIntervalType check * Added containsIntervalType check * add back the arrow-netty dependency * add a rule to ignore org.apache.arrow:arrow-memory-netty in maven-dependency-plugin * Fixed getTime * Updated getString * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Added Nightly Integration test for testing Read API integration * Added Nightly Integration test for testing Read API integration * Added Nightly Integration test for testing Read API integration * Modified Nightly Integration test * Fixed NPE during bulk read * Fixed class cast exception @ getLong * Added @BetaApi Annotation * Added @BetaApi Annotation * Exposed methods for unit testing * Added more unit testing * fixed getString to handle LocalDateTime * Added ConnImplBenchmark * Added instructions for running ConnImplBenchmark * Updated Java Docs * add IT TODOs * Fixed getInt for JSONField types (Int returned as Text) * Added JsonType tests * Added test - testForAllDataTypeValues * Added translateAndThrowBigQuerySQLException * Added Exception Handling for executeSelect methods * Added testInvalidQuery * Added testMultipleRuns * Added testPositionalParams * updated positional query * update logic to not use Read API when QueryParameters are passed since it's not supported by the Read API * update support for query parameters deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.3 (#1978) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.oauth-client:google-oauth-client-jetty](https://togithub.com/googleapis/google-oauth-java-client) | `1.33.2` -> `1.33.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-jetty/1.33.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-jetty/1.33.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-jetty/1.33.3/compatibility-slim/1.33.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-jetty/1.33.3/confidence-slim/1.33.2)](https://docs.renovatebot.com/merge-confidence/) | ---
    googleapis/google-oauth-java-client [Compare Source](https://togithub.com/googleapis/google-oauth-java-client/compare/v1.33.2...v1.33.3)
    --- 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.3 (#1977) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.oauth-client:google-oauth-client-java6](https://togithub.com/googleapis/google-oauth-java-client) | `1.33.2` -> `1.33.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-java6/1.33.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-java6/1.33.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-java6/1.33.3/compatibility-slim/1.33.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.oauth-client:google-oauth-client-java6/1.33.3/confidence-slim/1.33.2)](https://docs.renovatebot.com/merge-confidence/) | ---
    googleapis/google-oauth-java-client [Compare Source](https://togithub.com/googleapis/google-oauth-java-client/compare/v1.33.2...v1.33.3)
    --- 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). * chore(main): release 2.10.8 (#1979) :robot: I have created a release *beep* *boop* --- ### [2.10.8](https://github.com/googleapis/java-bigquery/compare/v2.10.7...v2.10.8) (2022-04-14) ### Dependencies * update dependency com.google.oauth-client:google-oauth-client-java6 to v1.33.3 ([#1977](https://github.com/googleapis/java-bigquery/issues/1977)) ([b084791](https://github.com/googleapis/java-bigquery/commit/b08479180e212bccae166f3a675d46fb658d3ce8)) * update dependency com.google.oauth-client:google-oauth-client-jetty to v1.33.3 ([#1978](https://github.com/googleapis/java-bigquery/issues/1978)) ([a24ce6e](https://github.com/googleapis/java-bigquery/commit/a24ce6ead65f3fceff6573e24c10c324650d907b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). * chore(main): release 2.10.9-SNAPSHOT (#1980) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * deps: update dependency com.google.cloud:native-image-support to v0.13.1 (#1982) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:native-image-support](https://togithub.com/googleapis/java-core) | `0.12.11` -> `0.13.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.13.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.13.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.13.1/compatibility-slim/0.12.11)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:native-image-support/0.13.1/confidence-slim/0.12.11)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.8 (#1981) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.10.7` -> `2.10.8` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.8/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.8/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.8/compatibility-slim/2.10.7)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.8/confidence-slim/2.10.7)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.10.8`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2108-httpsgithubcomgoogleapisjava-bigquerycomparev2107v2108-2022-04-14) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.10.7...v2.10.8)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). * deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.10.0 (#1983) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `2.9.0` -> `2.10.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.10.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.10.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.10.0/compatibility-slim/2.9.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.10.0/confidence-slim/2.9.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v2.10.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/HEAD/CHANGELOG.md#​2100-httpsgithubcomgoogleapisjava-shared-dependenciescomparev290v2100-2022-04-15) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v2.9.0...v2.10.0) ##### Dependencies - google-cloud-core 2.6.0 ([#​668](https://togithub.com/googleapis/java-shared-dependencies/issues/668)) ([22f4d18](https://togithub.com/googleapis/java-shared-dependencies/commit/22f4d1809cbb9848174b3569ab527e4bef00d443)) - reverting protobuf to 3.19.4 ([#​657](https://togithub.com/googleapis/java-shared-dependencies/issues/657)) ([8501e6d](https://togithub.com/googleapis/java-shared-dependencies/commit/8501e6d842c10d2370bbd5d5246070134336bddd)) - update dependency com.fasterxml.jackson:jackson-bom to v2.13.2.20220328 ([#​646](https://togithub.com/googleapis/java-shared-dependencies/issues/646)) ([7bfd6d7](https://togithub.com/googleapis/java-shared-dependencies/commit/7bfd6d7073859d1955b91b368c6713a72ffa14b6)) - update dependency com.google.api-client:google-api-client-bom to v1.34.0 ([#​662](https://togithub.com/googleapis/java-shared-dependencies/issues/662)) ([1b8e378](https://togithub.com/googleapis/java-shared-dependencies/commit/1b8e378fe0ccf2a28c759868caaf5ba593a95728)) - update dependency com.google.errorprone:error_prone_annotations to v2.12.1 ([#​652](https://togithub.com/googleapis/java-shared-dependencies/issues/652)) ([1cc80ee](https://togithub.com/googleapis/java-shared-dependencies/commit/1cc80ee984ebcad9bc2a95e2f28c0a49fe924b37)) - update dependency com.google.errorprone:error_prone_annotations to v2.13.0 ([#​669](https://togithub.com/googleapis/java-shared-dependencies/issues/669)) ([61b7834](https://togithub.com/googleapis/java-shared-dependencies/commit/61b78341b34a251722be4805a6bdd895cd64836c)) - update dependency com.google.http-client:google-http-client-bom to v1.41.6 ([#​654](https://togithub.com/googleapis/java-shared-dependencies/issues/654)) ([140ef40](https://togithub.com/googleapis/java-shared-dependencies/commit/140ef405bc17ed83f5ce177df59affca14fbe49c)) - update dependency com.google.http-client:google-http-client-bom to v1.41.7 ([#​658](https://togithub.com/googleapis/java-shared-dependencies/issues/658)) ([f6f93e5](https://togithub.com/googleapis/java-shared-dependencies/commit/f6f93e5b9172c9684623c4c148e4a8fe2fae1e94)) - update dependency com.google.oauth-client:google-oauth-client-bom to v1.33.2 ([#​655](https://togithub.com/googleapis/java-shared-dependencies/issues/655)) ([20cd9ed](https://togithub.com/googleapis/java-shared-dependencies/commit/20cd9eda112c96836a5ab7485a4247ed2bc0edb8)) - update dependency com.google.oauth-client:google-oauth-client-bom to v1.33.3 ([#​663](https://togithub.com/googleapis/java-shared-dependencies/issues/663)) ([f011a46](https://togithub.com/googleapis/java-shared-dependencies/commit/f011a46c551dba16851b4f8c919c40452fc5d5c3)) - update dependency com.google.protobuf:protobuf-bom to v3.20.0 ([#​651](https://togithub.com/googleapis/java-shared-dependencies/issues/651)) ([ad2ff73](https://togithub.com/googleapis/java-shared-dependencies/commit/ad2ff73207dd6493321c77d8eca0022baf13b4ce)) - update dependency io.grpc:grpc-bom to v1.45.1 ([#​647](https://togithub.com/googleapis/java-shared-dependencies/issues/647)) ([38e46fc](https://togithub.com/googleapis/java-shared-dependencies/commit/38e46fc4f03af0a02f30ce4a2fa222c71797ae15)) - update dependency org.checkerframework:checker-qual to v3.21.4 ([#​650](https://togithub.com/googleapis/java-shared-dependencies/issues/650)) ([125e80a](https://togithub.com/googleapis/java-shared-dependencies/commit/125e80ab2c3225a00c03f5ff5de94872ebb94303)) - update gax.version to v2.15.0 ([#​649](https://togithub.com/googleapis/java-shared-dependencies/issues/649)) ([c7f32a6](https://togithub.com/googleapis/java-shared-dependencies/commit/c7f32a68b14520104432282ac9598643700162eb)) - update gax.version to v2.16.0 ([#​664](https://togithub.com/googleapis/java-shared-dependencies/issues/664)) ([caaf941](https://togithub.com/googleapis/java-shared-dependencies/commit/caaf941643af04295f5527a0144587d7bf040862)) - update google.common-protos.version to v2.8.1 ([#​656](https://togithub.com/googleapis/java-shared-dependencies/issues/656)) ([df4a4a2](https://togithub.com/googleapis/java-shared-dependencies/commit/df4a4a2130a3cdb2965ea42962d1ea6a85506ba7)) - update google.common-protos.version to v2.8.2 ([#​659](https://togithub.com/googleapis/java-shared-dependencies/issues/659)) ([b499e2b](https://togithub.com/googleapis/java-shared-dependencies/commit/b499e2bc99506d48d26e35bf6e68c09409ce8b11)) - update google.common-protos.version to v2.8.3 ([#​660](https://togithub.com/googleapis/java-shared-dependencies/issues/660)) ([461081c](https://togithub.com/googleapis/java-shared-dependencies/commit/461081c0cf73057c1f6e07fc573453ad467a60ae)) - update iam.version to v1.3.0 ([#​648](https://togithub.com/googleapis/java-shared-dependencies/issues/648)) ([6670c4f](https://togithub.com/googleapis/java-shared-dependencies/commit/6670c4f61fcf075c543bfd148eea49796e0662ce)) - update iam.version to v1.3.1 ([#​661](https://togithub.com/googleapis/java-shared-dependencies/issues/661)) ([cc8fbe6](https://togithub.com/googleapis/java-shared-dependencies/commit/cc8fbe6eae03341c2ece7d3356febc843a74a812))
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.2.3 (#1986) * test(deps): update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.7.3 (#1987) * chore(main): release 2.10.9 (#1984) :robot: I have created a release *beep* *boop* --- ### [2.10.9](https://github.com/googleapis/java-bigquery/compare/v2.10.8...v2.10.9) (2022-04-16) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.10.0 ([#1983](https://github.com/googleapis/java-bigquery/issues/1983)) ([50ac31c](https://github.com/googleapis/java-bigquery/commit/50ac31c598ae8c5aa4e1f6dcde80da704db904a5)) * update dependency com.google.cloud:native-image-support to v0.13.1 ([#1982](https://github.com/googleapis/java-bigquery/issues/1982)) ([04f4679](https://github.com/googleapis/java-bigquery/commit/04f4679fe376e726b21e313115bfd48adc6cbe6b)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). * chore(main): release 2.10.10-SNAPSHOT (#1988) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.9 (#1989) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.10.8` -> `2.10.9` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.9/compatibility-slim/2.10.8)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.10.9/confidence-slim/2.10.8)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.10.9`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2109-httpsgithubcomgoogleapisjava-bigquerycomparev2108v2109-2022-04-16) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.10.8...v2.10.9)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). * deps: update dependency com.google.cloud:google-cloud-storage to v2.6.1 (#1991) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.6.0` -> `2.6.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.6.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.6.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.6.1/compatibility-slim/2.6.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.6.1/confidence-slim/2.6.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.6.1`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​261-httpsgithubcomgoogleapisjava-storagecomparev260v261-2022-04-15) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.6.0...v2.6.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). * deps: update dependency com.google.cloud:google-cloud-bigtable to v2.6.2 (#1990) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.6.1` -> `2.6.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.2/compatibility-slim/2.6.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.6.2/confidence-slim/2.6.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.6.2`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​262-httpsgithubcomgoogleapisjava-bigtablecomparev261v262-2022-04-15) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.6.1...v2.6.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). * chore(main): release 2.10.10 (#1992) :robot: I have created a release *beep* *boop* --- * update dependency com.google.cloud:google-cloud-bigtable to v2.6.2 ([#1990](https://github.com/googleapis/java-bigquery/issues/1990)) ([4c1cb4c](https://github.com/googleapis/java-bigquery/commit/4c1cb4c13214556b706f1ff8c50a46f881bf2724)) * update dependency com.google.cloud:google-cloud-storage to v2.6.1 ([#1991](https://github.com/googleapis/java-bigquery/issues/1991)) ([e02bf31](https://github.com/googleapis/java-bigquery/commit/e02bf315737dba50741c1346af8bde6871cb857a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). chore(main): release 2.10.11-SNAPSHOT (#1993) :robot: I have created a release *beep* *boop* --- --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). * fix dependencies.sh * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * update query parameters for dryRun * Made Label optional by making it a vararg * Made Label optional by making it a vararg * Removed null labels * Renamed cancel to close * Refactored testConnectionCancel * Renamed cancel() to close() * Renamed testCancel * Added testPositionalParams * Replaced all the shutdownNows with MoreExecutors.shutdownAndAwaitTermination() * Using TimeUnit.DAYS.toMillis for conversion from Days to Millis * deleted outdated comment * nit update * update based on comments * updated to using a public dataset * updated cancel() to close() * using constants for clientConnectionConfiguration * using constants for clientConnectionConfiguration * updated Warmup iterations to 1 * updated dataset * Fix for testConnectionClose IT * update labels and close method 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Made Label optional by making it a vararg Made Label optional by making it a vararg Removed null labels Renamed cancel to close Refactored testConnectionCancel Renamed cancel() to close() Renamed testCancel Added testPositionalParams Replaced all the shutdownNows with MoreExecutors.shutdownAndAwaitTermination() * update based on comments update based on feedback Using TimeUnit.DAYS.toMillis for conversion from Days to Millis deleted outdated comment nit update update based on comments updated to using a public dataset updated cancel() to close() using constants for clientConnectionConfiguration using constants for clientConnectionConfiguration updated Warmup iterations to 1 combine commits updated dataset Fix for testConnectionClose IT update based on comments fix lint * Refactored code - Replaced Tuple, Boolean> with Row * Added class Row and Refactored code - Replaced Tuple, Boolean> with Row * Added overloaded constructor with just message as an argument * refactored and added BigQuerySQLException in next() * refactored and added throwing BigQuerySQLException * Added fieldvalue null checks * modified close * modified close * modified getLong * address feedback deleted outdated comment update based on comments updated to using a public dataset updated cancel() to close() using constants for clientConnectionConfiguration using constants for clientConnectionConfiguration updated Warmup iterations to 1 updated dataset Fix for testConnectionClose IT * update based on comments update based on feedback Using TimeUnit.DAYS.toMillis for conversion from Days to Millis deleted outdated comment nit update update based on comments updated to using a public dataset updated cancel() to close() using constants for clientConnectionConfiguration using constants for clientConnectionConfiguration updated Warmup iterations to 1 combine commits updated dataset Fix for testConnectionClose IT update based on comments fix lint * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.10 (#1995) * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.10.10 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot * feat: next release from main branch is 2.10.9 (#1996) * build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.3.3 (#2000) * test(deps): update dependency org.mockito:mockito-core to v4.5.0 (#1999) * test(deps): update dependency org.mockito:mockito-core to v4.5.1 (#2003) * build(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.4.0 (#2002) * build(deps): update dependency org.sonatype.plugins:nexus-staging-maven-plugin to v1.6.13 (#2004) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.sonatype.plugins:nexus-staging-maven-plugin](http://www.sonatype.com/) ([source](https://togithub.com/sonatype/nexus-maven-plugins)) | `1.6.12` -> `1.6.13` | [![age](https://badges.renovateapi.com/packages/maven/org.sonatype.plugins:nexus-staging-maven-plugin/1.6.13/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.sonatype.plugins:nexus-staging-maven-plugin/1.6.13/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.sonatype.plugins:nexus-staging-maven-plugin/1.6.13/compatibility-slim/1.6.12)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.sonatype.plugins:nexus-staging-maven-plugin/1.6.13/confidence-slim/1.6.12)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    sonatype/nexus-maven-plugins ### [`v1.6.13`](https://togithub.com/sonatype/nexus-maven-plugins/compare/release-1.6.12...release-1.6.13) [Compare Source](https://togithub.com/sonatype/nexus-maven-plugins/compare/release-1.6.12...release-1.6.13)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.2.4 (#2006) [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | `2.2.3` -> `2.2.4` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.2.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.2.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.2.4/compatibility-slim/2.2.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.2.4/confidence-slim/2.2.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v2.2.4`](https://togithub.com/googleapis/java-bigqueryconnection/blob/HEAD/CHANGELOG.md#​224-httpsgithubcomgoogleapisjava-bigqueryconnectioncomparev223v224-2022-04-21) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.2.3...v2.2.4)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). * chore(deps): update dependency com.google.cloud:libraries-bom to v25.2.0 (#2008) * chore(deps): update dependency com.google.cloud:libraries-bom to v25.2.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot * docs(sample): remove unused dependency and add setup instructions (#2010) * build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.3.0 (#2011) * chore: IT clean-up (#2012) Fixes #1924 Per discussion in b/227623980 * build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.4.0 (#2013) * address feedback Refactored code - Replaced Tuple, Boolean> with Row Added class Row and Refactored code - Replaced Tuple, Boolean> with Row Added overloaded constructor with just message as an argument refactored and added BigQuerySQLException in next() address feedback refactored and added throwing BigQuerySQLException Added fieldvalue null checks modified close modified close modified getLong * add clarification to dryRun query params * Fixed BigQuerySQLException in the Integration Tests * Added line comment * Updated getInt to include check for Long * Added testReadAPIIterationAndOrder IT * Add testReadAPIConnectionMultiClose, Removed ReadClientConnectionConfiguration * Refactored for removal of ReadClientConnectionConfiguration * Added more properties and default values * Changed the type of preFetchedRowLimit from Long to Integer * Updated method signature - Changed the type of preFetchedRowLimit from Long to Integer * Refactor - Removed the usage of ReadClientConnectionConfiguration * Refactor - Removed the usage of ReadClientConnectionConfiguration * Changed the type of preFetchedRowLimit to Integer * Refactor due to Change in the type of preFetchedRowLimit to Integer * lint * some cleanup and corrections * nit * mark createConnection as Beta * disable graalvm IT until it works with Apache Arrow * Added instance check for IntegerArrayField * Added Connection createConnection() * Added testIterateAndOrderDefaultConnSettings IT * Added Connection createConnection(). Marked createConnection(@NonNull ConnectionSettings connectionSettings) * Added com.google.cloud.bigquery.Connection createConnection() * add IT and some clean up * add org.checkerframework:checker-qual:jar:3.21.4:compile as a dependency to fix dependency check failure * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * provide BigQueryResultStats in dryRun results * Fixed testQueryDryRun UT failure - Added jobConfigurationQuery Co-authored-by: Prashant Mishra Co-authored-by: Owl Bot Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: WhiteSource Renovate Co-authored-by: Prashant Mishra Co-authored-by: Mridula <66699525+mpeddada1@users.noreply.github.com> --- .gitignore | 6 +- .kokoro/dependencies.sh | 4 +- benchmark/README.md | 7 + .../ConnImplBenchmark.java | 186 +++ .../clirr-ignored-differences.xml | 35 + google-cloud-bigquery/pom.xml | 20 + .../cloud/bigquery/AbstractJdbcResultSet.java | 910 ++++++++++++ .../com/google/cloud/bigquery/BigQuery.java | 49 + .../cloud/bigquery/BigQueryDryRunResult.java | 39 + .../bigquery/BigQueryDryRunResultImpl.java | 49 + .../cloud/bigquery/BigQueryException.java | 9 + .../google/cloud/bigquery/BigQueryImpl.java | 17 + .../google/cloud/bigquery/BigQueryResult.java | 38 + .../cloud/bigquery/BigQueryResultImpl.java | 610 ++++++++ .../cloud/bigquery/BigQueryResultStats.java | 36 + .../bigquery/BigQueryResultStatsImpl.java | 41 + .../cloud/bigquery/BigQuerySQLException.java | 86 ++ .../com/google/cloud/bigquery/Connection.java | 92 ++ .../google/cloud/bigquery/ConnectionImpl.java | 1240 +++++++++++++++++ .../cloud/bigquery/ConnectionSettings.java | 453 ++++++ .../google/cloud/bigquery/JobStatistics.java | 26 +- .../com/google/cloud/bigquery/Parameter.java | 70 + .../cloud/bigquery/QueryJobConfiguration.java | 5 + .../ReadClientConnectionConfiguration.java | 70 + .../cloud/bigquery/spi/v2/BigQueryRpc.java | 31 + .../bigquery/spi/v2/HttpBigQueryRpc.java | 67 + .../cloud/bigquery/ConnectionImplTest.java | 542 +++++++ .../bigquery/ConnectionSettingsTest.java | 166 +++ .../cloud/bigquery/it/ITBigQueryTest.java | 802 ++++++++++- .../bigquery/it/ITNightlyBigQueryTest.java | 610 ++++++++ pom.xml | 71 + 31 files changed, 6381 insertions(+), 6 deletions(-) create mode 100644 benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java create mode 100644 google-cloud-bigquery/clirr-ignored-differences.xml create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AbstractJdbcResultSet.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResult.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResultImpl.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResult.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStats.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStatsImpl.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuerySQLException.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Parameter.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ReadClientConnectionConfiguration.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionSettingsTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java diff --git a/.gitignore b/.gitignore index 8782d86f6ecd..1c7a7e78f8e2 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,8 @@ __pycache__ .settings .classpath .DS_Store - +.diff.txt +.new-list.txt +.org-list.txt +SimpleBenchmarkApp/src/main/java/com/google/cloud/App.java +.flattened-pom.xml \ No newline at end of file diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index 586b78bb9bf1..545820622f4c 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -67,13 +67,13 @@ function completenessCheck() { msg "Generating dependency list using original pom..." # Excluding commons-codec,commons-logging from the comparison as a temp fix # Explanation and issue filed in maven-dependency-plugin: https://issues.apache.org/jira/browse/MDEP-737 - mvn dependency:list -f pom.xml -DexcludeArtifactIds=commons-codec,commons-logging -DincludeScope=runtime -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' | sed -e s/\\s--\\smodule.*// >.org-list.txt + mvn dependency:list -f pom.xml -DexcludeArtifactIds=commons-codec,commons-logging,grpc-googleapis -DincludeScope=runtime -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' | sed -e s/\\s--\\smodule.*// >.org-list.txt # Output dep list generated using the flattened pom (only 'compile' and 'runtime' scopes) msg "Generating dependency list using flattened pom..." # Excluding commons-codec,commons-logging from the comparison as a temp fix # Explanation and issue filed in maven-dependency-plugin: https://issues.apache.org/jira/browse/MDEP-737 - mvn dependency:list -f .flattened-pom.xml -DexcludeArtifactIds=commons-codec,commons-logging -DincludeScope=runtime -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' >.new-list.txt + mvn dependency:list -f .flattened-pom.xml -DexcludeArtifactIds=commons-codec,commons-logging,grpc-googleapis -DincludeScope=runtime -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' >.new-list.txt # Compare two dependency lists msg "Comparing dependency lists..." diff --git a/benchmark/README.md b/benchmark/README.md index 41e9c2fdac9f..d1a1ae15712b 100644 --- a/benchmark/README.md +++ b/benchmark/README.md @@ -19,3 +19,10 @@ To run a benchmark jar, run the following command cd benchmark java -jar target/benchmark.jar ``` + +To run ConnImplBenchmark, run the following command +``` +# Run from benchmark directory + cd benchmark + java -jar target/benchmark.jar com.google.cloud.bigquery.ConnImplBenchmark +``` diff --git a/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java b/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java new file mode 100644 index 000000000000..36c27eb6a9fe --- /dev/null +++ b/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java @@ -0,0 +1,186 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import java.io.IOException; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import org.openjdk.jmh.annotations.Benchmark; +import org.openjdk.jmh.annotations.BenchmarkMode; +import org.openjdk.jmh.annotations.Fork; +import org.openjdk.jmh.annotations.Measurement; +import org.openjdk.jmh.annotations.Mode; +import org.openjdk.jmh.annotations.OutputTimeUnit; +import org.openjdk.jmh.annotations.Param; +import org.openjdk.jmh.annotations.Scope; +import org.openjdk.jmh.annotations.Setup; +import org.openjdk.jmh.annotations.State; +import org.openjdk.jmh.annotations.Warmup; +import org.openjdk.jmh.infra.Blackhole; +import org.openjdk.jmh.runner.Runner; +import org.openjdk.jmh.runner.options.Options; +import org.openjdk.jmh.runner.options.OptionsBuilder; + +@Fork(value = 1) +@BenchmarkMode(Mode.AverageTime) +@Warmup(iterations = 1) +@Measurement(iterations = 3) +@State(Scope.Benchmark) +@OutputTimeUnit(TimeUnit.MILLISECONDS) +public class ConnImplBenchmark { + @Param({"500000", "1000000", "10000000", "100000000"}) // 500K, 1M, 10M, and 100M + public int rowLimit; + + private ConnectionSettings connectionSettingsReadAPIEnabled, connectionSettingsReadAPIDisabled; + private long numBuffRows = 100000L; + private final String DATASET = "new_york_taxi_trips"; + private final String QUERY = + "SELECT * FROM bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2017 LIMIT %s"; + public static final long NUM_PAGE_ROW_CNT_RATIO = + 10; // ratio of [records in the current page :: total rows] to be met to use read API + public static final long NUM_MIN_RESULT_SIZE = + 200000; // min number of records to use to ReadAPI with + + @Setup + public void setUp() throws IOException { + java.util.logging.Logger.getGlobal().setLevel(Level.ALL); + ReadClientConnectionConfiguration clientConnectionConfiguration; + + clientConnectionConfiguration = + ReadClientConnectionConfiguration.newBuilder() + .setTotalToPageRowCountRatio(NUM_PAGE_ROW_CNT_RATIO) + .setMinResultSize(NUM_MIN_RESULT_SIZE) + .setBufferSize(numBuffRows) + .build(); + + connectionSettingsReadAPIEnabled = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setNumBufferedRows(numBuffRows) // page size + .setPriority( + QueryJobConfiguration.Priority + .INTERACTIVE) // DEFAULT VALUE - so that isFastQuerySupported returns false + .setReadClientConnectionConfiguration(clientConnectionConfiguration) + .setUseReadAPI(true) // enable read api + .build(); + connectionSettingsReadAPIDisabled = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setNumBufferedRows(numBuffRows) // page size + .setPriority( + QueryJobConfiguration.Priority + .INTERACTIVE) // so that isFastQuerySupported returns false + .setReadClientConnectionConfiguration(clientConnectionConfiguration) + .setUseReadAPI(false) // disable read api + .build(); + } + + @Benchmark + public void iterateRecordsUsingReadAPI(Blackhole blackhole) + throws InterruptedException, BigQuerySQLException { + Connection connectionReadAPIEnabled = + BigQueryOptions.getDefaultInstance() + .getService() + .createConnection(connectionSettingsReadAPIEnabled); + String selectQuery = String.format(QUERY, rowLimit); + long hash = 0L; + try { + BigQueryResultSet bigQueryResultSet = connectionReadAPIEnabled.executeSelect(selectQuery); + hash = getResultHash(bigQueryResultSet); + } catch (Exception e) { + e.printStackTrace(); + } finally { + connectionReadAPIEnabled.close(); // IMP to kill the bg workers + } + blackhole.consume(hash); + } + + @Benchmark + public void iterateRecordsWithoutUsingReadAPI(Blackhole blackhole) + throws InterruptedException, BigQuerySQLException { + Connection connectionReadAPIDisabled = + BigQueryOptions.getDefaultInstance() + .getService() + .createConnection(connectionSettingsReadAPIDisabled); + String selectQuery = String.format(QUERY, rowLimit); + long hash = 0L; + try { + BigQueryResultSet bigQueryResultSet = connectionReadAPIDisabled.executeSelect(selectQuery); + hash = getResultHash(bigQueryResultSet); + } catch (Exception e) { + e.printStackTrace(); + } finally { + connectionReadAPIDisabled.close(); // IMP to kill the bg workers + } + blackhole.consume(hash); + } + + // Hashes all the 20 columns of all the rows + private long getResultHash(BigQueryResultSet bigQueryResultSet) throws SQLException { + ResultSet rs = bigQueryResultSet.getResultSet(); + long hash = 0L; + int cnt = 0; + System.out.print("\n Running"); + while (rs.next()) { + hash += rs.getString("vendor_id") == null ? 0 : rs.getString("vendor_id").hashCode(); + hash += + rs.getString("pickup_datetime") == null ? 0 : rs.getString("pickup_datetime").hashCode(); + hash += + rs.getString("dropoff_datetime") == null + ? 0 + : rs.getString("dropoff_datetime").hashCode(); + hash += rs.getLong("passenger_count"); + hash += rs.getDouble("trip_distance"); + hash += rs.getDouble("pickup_longitude"); + hash += rs.getDouble("pickup_latitude"); + hash += rs.getString("rate_code") == null ? 0 : rs.getString("rate_code").hashCode(); + hash += + rs.getString("store_and_fwd_flag") == null + ? 0 + : rs.getString("store_and_fwd_flag").hashCode(); + hash += rs.getDouble("dropoff_longitude"); + hash += rs.getDouble("dropoff_latitude"); + hash += rs.getString("payment_type") == null ? 0 : rs.getString("payment_type").hashCode(); + hash += rs.getDouble("fare_amount"); + hash += rs.getDouble("extra"); + hash += rs.getDouble("mta_tax"); + hash += rs.getDouble("tip_amount"); + hash += rs.getDouble("tolls_amount"); + hash += rs.getDouble("imp_surcharge"); + hash += rs.getDouble("total_amount"); + hash += + rs.getString("pickup_location_id") == null + ? 0 + : rs.getString("pickup_location_id").hashCode(); + hash += + rs.getString("dropoff_location_id") == null + ? 0 + : rs.getString("dropoff_location_id").hashCode(); + if (++cnt % 100000 == 0) { // just to indicate the progress while long running benchmarks + System.out.print("."); + } + } + return hash; + } + + public static void main(String[] args) throws Exception { + Options opt = new OptionsBuilder().include(ConnImplBenchmark.class.getSimpleName()).build(); + new Runner(opt).run(); + } +} diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml new file mode 100644 index 000000000000..1dccf5a668ac --- /dev/null +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -0,0 +1,35 @@ + + + + + + 7012 + com/google/cloud/bigquery/BigQuery + com.google.cloud.bigquery.Connection createConnection(com.google.cloud.bigquery.ConnectionSettings) + + + 7012 + com/google/cloud/bigquery/BigQuery + com.google.cloud.bigquery.Connection createConnection() + + + 7012 + com/google/cloud/bigquery/spi/v2/BigQueryRpc + com.google.api.services.bigquery.model.Job createJobForQuery(com.google.api.services.bigquery.model.Job) + + + 7012 + com/google/cloud/bigquery/spi/v2/BigQueryRpc + com.google.api.services.bigquery.model.Job getQueryJob(java.lang.String, java.lang.String, java.lang.String) + + + 7012 + com/google/cloud/bigquery/spi/v2/BigQueryRpc + com.google.api.services.bigquery.model.GetQueryResultsResponse getQueryResultsWithRowLimit(java.lang.String, java.lang.String, java.lang.String, java.lang.Integer) + + + 7012 + com/google/cloud/bigquery/spi/v2/BigQueryRpc + com.google.api.services.bigquery.model.TableDataList listTableDataWithRowLimit(java.lang.String, java.lang.String, java.lang.String, java.lang.Integer, java.lang.String) + + \ No newline at end of file diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 93d574784032..c3abfe1cf7ef 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -46,6 +46,10 @@ org.checkerframework checker-compat-qual
    + + org.checkerframework + checker-qual + com.google.auth google-auth-library-oauth2-http @@ -97,6 +101,21 @@ + + com.google.cloud + google-cloud-datacatalog + test + + + com.google.api.grpc + proto-google-cloud-datacatalog-v1 + test + + + com.google.cloud + google-cloud-storage + test + junit junit @@ -105,6 +124,7 @@ com.google.truth truth + test org.mockito diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AbstractJdbcResultSet.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AbstractJdbcResultSet.java new file mode 100644 index 000000000000..5b8246925013 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AbstractJdbcResultSet.java @@ -0,0 +1,910 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import java.io.InputStream; +import java.io.Reader; +import java.math.BigDecimal; +import java.net.URL; +import java.sql.*; +import java.util.Calendar; +import java.util.Map; + +abstract class AbstractJdbcResultSet implements ResultSet { + + @Override + public BigDecimal getBigDecimal(String columnLabel, int scale) throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public void close() throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public boolean wasNull() throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public byte getByte(int columnIndex) throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public byte getByte(String column) throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public short getShort(int columnIndex) throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public float getFloat(int columnIndex) throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public InputStream getAsciiStream(int columnIndex) throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public InputStream getUnicodeStream(int columnIndex) throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public InputStream getBinaryStream(int columnIndex) throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public int findColumn(String columnLabel) throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public Reader getCharacterStream(int columnIndex) throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public Reader getCharacterStream(String columnLabel) throws SQLException { + // TODO: Implement the logic + throw new RuntimeException("Not implemented"); + } + + @Override + public SQLWarning getWarnings() throws SQLException { + return null; + } + + @Override + public void clearWarnings() throws SQLException {} + + @Override + public String getCursorName() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isLast() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void beforeFirst() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void afterLast() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean first() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean last() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean absolute(int row) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean relative(int rows) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean previous() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setFetchDirection(int direction) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getFetchDirection() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void setFetchSize(int rows) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getFetchSize() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getType() throws SQLException { + return TYPE_FORWARD_ONLY; + } + + @Override + public int getConcurrency() throws SQLException { + return CONCUR_READ_ONLY; + } + + @Override + public boolean rowUpdated() throws SQLException { + return false; + } + + @Override + public boolean rowInserted() throws SQLException { + return false; + } + + @Override + public boolean rowDeleted() throws SQLException { + return false; + } + + @Override + public void updateNull(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBoolean(int columnIndex, boolean x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateByte(int columnIndex, byte x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateShort(int columnIndex, short x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateInt(int columnIndex, int x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateLong(int columnIndex, long x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateFloat(int columnIndex, float x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateDouble(int columnIndex, double x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateString(int columnIndex, String x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBytes(int columnIndex, byte[] x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateDate(int columnIndex, Date x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateTime(int columnIndex, Time x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateAsciiStream(int columnIndex, InputStream x, int length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBinaryStream(int columnIndex, InputStream x, int length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateCharacterStream(int columnIndex, Reader x, int length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateObject(int columnIndex, Object x, int scaleOrLength) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateObject(int columnIndex, Object x, SQLType type, int scaleOrLength) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateObject(int columnIndex, Object x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateObject(int columnIndex, Object x, SQLType type) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNull(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBoolean(String columnLabel, boolean x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateByte(String columnLabel, byte x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateShort(String columnLabel, short x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateInt(String columnLabel, int x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateLong(String columnLabel, long x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateFloat(String columnLabel, float x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateDouble(String columnLabel, double x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBigDecimal(String columnLabel, BigDecimal x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateString(String columnLabel, String x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBytes(String columnLabel, byte[] x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateDate(String columnLabel, Date x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateTime(String columnLabel, Time x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateTimestamp(String columnLabel, Timestamp x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateAsciiStream(String columnLabel, InputStream x, int length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBinaryStream(String columnLabel, InputStream x, int length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateCharacterStream(String columnLabel, Reader reader, int length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateObject(String columnLabel, Object x, int scaleOrLength) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateObject(String columnLabel, Object x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateObject(String columnLabel, Object x, SQLType type) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateObject(String columnLabel, Object x, SQLType type, int scaleOrLength) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void insertRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void deleteRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void refreshRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void cancelRowUpdates() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void moveToInsertRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void moveToCurrentRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Ref getRef(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Ref getRef(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateRef(int columnIndex, Ref x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateRef(String columnLabel, Ref x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBlob(int columnIndex, Blob x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBlob(String columnLabel, Blob x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateClob(int columnIndex, Clob x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateClob(String columnLabel, Clob x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateArray(int columnIndex, Array x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateArray(String columnLabel, Array x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public RowId getRowId(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public RowId getRowId(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateRowId(int columnIndex, RowId x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateRowId(String columnLabel, RowId x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNString(int columnIndex, String nString) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNString(String columnLabel, String nString) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNClob(int columnIndex, NClob nClob) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNClob(String columnLabel, NClob nClob) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public SQLXML getSQLXML(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public SQLXML getSQLXML(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNCharacterStream(String columnLabel, Reader reader, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateAsciiStream(int columnIndex, InputStream x, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateCharacterStream(int columnIndex, Reader x, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateAsciiStream(String columnLabel, InputStream x, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBinaryStream(String columnLabel, InputStream x, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateCharacterStream(String columnLabel, Reader reader, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBlob(int columnIndex, InputStream inputStream, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBlob(String columnLabel, InputStream inputStream, long length) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateClob(int columnIndex, Reader reader, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateClob(String columnLabel, Reader reader, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateCharacterStream(int columnIndex, Reader x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateClob(int columnIndex, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateClob(String columnLabel, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNClob(int columnIndex, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void updateNClob(String columnLabel, Reader reader) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isBeforeFirst() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isAfterLast() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isFirst() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getRow() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Statement getStatement() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Object getObject(int columnIndex, Map> map) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Blob getBlob(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Clob getClob(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Array getArray(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public float getFloat(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Object getObject(String columnLabel, Map> map) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Blob getBlob(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Clob getClob(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Array getArray(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Date getDate(int columnIndex, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Date getDate(String columnLabel, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Time getTime(int columnIndex, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Time getTime(String columnLabel, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Timestamp getTimestamp(String columnLabel, Calendar cal) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public URL getURL(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public URL getURL(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getHoldability() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isClosed() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public NClob getNClob(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public NClob getNClob(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public String getNString(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public String getNString(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Reader getNCharacterStream(int columnIndex) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Reader getNCharacterStream(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public T getObject(int columnIndex, Class type) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public T getObject(String columnLabel, Class type) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public short getShort(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public InputStream getAsciiStream(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public InputStream getUnicodeStream(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public InputStream getBinaryStream(String columnLabel) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public ResultSetMetaData getMetaData() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public T unwrap(Class iface) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public boolean isWrapperFor(Class iface) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 4e88f000f5fb..b574df32daae 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkArgument; +import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.paging.Page; import com.google.cloud.FieldSelector; @@ -32,6 +33,7 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import org.checkerframework.checker.nullness.qual.NonNull; /** * An interface for Google Cloud BigQuery. @@ -760,6 +762,53 @@ public int hashCode() { */ Job create(JobInfo jobInfo, JobOption... options); + /** + * Creates a new BigQuery query connection used for executing queries (not the same as BigQuery + * connection properties). It uses the BigQuery Storage Read API for high throughput queries by + * default. + * + *

    Example of creating a query connection. + * + *

    +   * {
    +   *   @code
    +   *       ConnectionSettings connectionSettings =
    +   *         ConnectionSettings.newBuilder()
    +   *             .setRequestTimeout(10L)
    +   *             .setMaxResults(100L)
    +   *             .setUseQueryCache(true)
    +   *             .build();
    +   *       Connection connection = bigquery.createConnection(connectionSettings);
    +   * }
    +   * 
    + * + * @throws BigQueryException upon failure + * @param connectionSettings + */ + @BetaApi + Connection createConnection(@NonNull ConnectionSettings connectionSettings); + + /** + * Creates a new BigQuery query connection used for executing queries (not the same as BigQuery + * connection properties). It uses the BigQuery Storage Read API for high throughput queries by + * default. This overloaded method creates a Connection with default ConnectionSettings for query + * execution where default values are set for numBufferedRows (20000), useReadApi (true), + * useLegacySql (false). + * + *

    Example of creating a query connection. + * + *

    +   * {
    +   *   @code
    +   *       Connection connection = bigquery.createConnection();
    +   * }
    +   * 
    + * + * @throws BigQueryException upon failure + */ + @BetaApi + Connection createConnection(); + /** * Returns the requested dataset or {@code null} if not found. * diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResult.java new file mode 100644 index 000000000000..0494aa1a97f4 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResult.java @@ -0,0 +1,39 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.core.BetaApi; +import java.util.List; + +public interface BigQueryDryRunResult { + + /** Returns the schema of the results. Null if the schema is not supplied. */ + @BetaApi + Schema getSchema() throws BigQuerySQLException; + + /** + * Returns query parameters for standard SQL queries by extracting undeclare query parameters from + * the dry run job. See more information: + * https://developers.google.com/resources/api-libraries/documentation/bigquery/v2/java/latest/com/google/api/services/bigquery/model/JobStatistics2.html#getUndeclaredQueryParameters-- + */ + @BetaApi + List getQueryParameters() throws BigQuerySQLException; + + /** Returns some processing statistics */ + @BetaApi + BigQueryResultStats getStatistics() throws BigQuerySQLException; +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResultImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResultImpl.java new file mode 100644 index 000000000000..fabb2f2fcb46 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResultImpl.java @@ -0,0 +1,49 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import java.util.List; + +public class BigQueryDryRunResultImpl implements BigQueryDryRunResult { + private Schema schema; + private List queryParameters; + private BigQueryResultStats stats; + + BigQueryDryRunResultImpl( + Schema schema, + List queryParameters, + BigQueryResultStats stats) { // Package-Private access + this.schema = schema; + this.queryParameters = queryParameters; + this.stats = stats; + } + + @Override + public Schema getSchema() throws BigQuerySQLException { + return schema; + } + + @Override + public List getQueryParameters() throws BigQuerySQLException { + return queryParameters; + } + + @Override + public BigQueryResultStats getStatistics() throws BigQuerySQLException { + return stats; + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java index 06cbf344c9e0..c42ff6327527 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java @@ -134,4 +134,13 @@ static BaseServiceException translateAndThrow(ExecutionException ex) { BaseServiceException.translate(ex); throw new BigQueryException(UNKNOWN_CODE, ex.getMessage(), ex.getCause()); } + + static BaseServiceException translateAndThrow(Exception ex) { + throw new BigQueryException(UNKNOWN_CODE, ex.getMessage(), ex.getCause()); + } + + static BaseServiceException translateAndThrowBigQuerySQLException(BigQueryException e) + throws BigQuerySQLException { + throw new BigQuerySQLException(e.getMessage(), e, e.getErrors()); + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index b2e939df09dc..3cfbfd6528c7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -21,6 +21,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static java.net.HttpURLConnection.HTTP_NOT_FOUND; +import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; import com.google.api.gax.paging.Page; import com.google.api.services.bigquery.model.ErrorProto; @@ -54,6 +55,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.Callable; +import org.checkerframework.checker.nullness.qual.NonNull; final class BigQueryImpl extends BaseService implements BigQuery { @@ -351,6 +353,21 @@ public JobId get() { return create(jobInfo, idProvider, options); } + @Override + @BetaApi + public Connection createConnection(@NonNull ConnectionSettings connectionSettings) + throws BigQueryException { + return new ConnectionImpl(connectionSettings, getOptions(), bigQueryRpc, DEFAULT_RETRY_CONFIG); + } + + @Override + @BetaApi + public Connection createConnection() throws BigQueryException { + ConnectionSettings defaultConnectionSettings = ConnectionSettings.newBuilder().build(); + return new ConnectionImpl( + defaultConnectionSettings, getOptions(), bigQueryRpc, DEFAULT_RETRY_CONFIG); + } + @InternalApi("visible for testing") Job create(JobInfo jobInfo, Supplier idProvider, JobOption... options) { final boolean idRandom = (jobInfo.getJobId() == null); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResult.java new file mode 100644 index 000000000000..6b0c35f67c3e --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResult.java @@ -0,0 +1,38 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import java.sql.ResultSet; + +public interface BigQueryResult { + + /** Returns the schema of the results. */ + Schema getSchema(); + + /** + * Returns the total number of rows in the complete result set, which can be more than the number + * of rows in the first page of results. This might return -1 if the query is long running and the + * job is not complete at the time this object is returned. + */ + long getTotalRows(); + + /* Returns the underlying ResultSet Implementation */ + ResultSet getResultSet(); + + /* Returns the query statistics associated with this query. */ + BigQueryResultStats getBigQueryResultStats(); +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java new file mode 100644 index 000000000000..7c24ca0dd431 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java @@ -0,0 +1,610 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import java.math.BigDecimal; +import java.sql.Date; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Time; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; +import java.util.Map; +import java.util.TimeZone; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.TimeUnit; +import org.apache.arrow.vector.util.JsonStringArrayList; +import org.apache.arrow.vector.util.Text; + +public class BigQueryResultImpl implements BigQueryResult { + + private static final String NULL_CURSOR_MSG = + "Error occurred while reading the cursor. This could happen if getters are called after we are done reading all the records"; + + // This class represents a row of records, the columns are represented as a map + // (columnName:columnValue pair) + static class Row { + private Map value; + private boolean isLast; + + public Row(Map value) { + this.value = value; + } + + public Row(Map value, boolean isLast) { + this.value = value; + this.isLast = isLast; + } + + public Map getValue() { + return value; + } + + public boolean isLast() { + return isLast; + } + + public boolean hasField(String fieldName) { + return this.value.containsKey(fieldName); + } + + public Object get(String fieldName) { + return this.value.get(fieldName); + } + } + + private final Schema schema; + private final long totalRows; + private final BlockingQueue buffer; + private T cursor; + private final BigQueryResultSet underlyingResultSet; + private final BigQueryResultStats bigQueryResultStats; + private final FieldList schemaFieldList; + + public BigQueryResultImpl( + Schema schema, + long totalRows, + BlockingQueue buffer, + BigQueryResultStats bigQueryResultStats) { + this.schema = schema; + this.totalRows = totalRows; + this.buffer = buffer; + this.underlyingResultSet = new BigQueryResultSet(); + this.bigQueryResultStats = bigQueryResultStats; + this.schemaFieldList = schema.getFields(); + } + + @Override + public Schema getSchema() { + return schema; + } + + @Override + public long getTotalRows() { + return totalRows; + } + + @Override + public ResultSet getResultSet() { + return underlyingResultSet; + } + + private class BigQueryResultSet extends AbstractJdbcResultSet { + @Override + /*Advances the result set to the next row, returning false if no such row exists. Potentially blocking operation*/ + public boolean next() throws SQLException { + try { + cursor = buffer.take(); // advance the cursor,Potentially blocking operation + if (isEndOfStream(cursor)) { // check for end of stream + cursor = null; + return false; + } else if (cursor instanceof Row) { + Row curTup = (Row) cursor; + if (curTup.isLast()) { // last Tuple + cursor = null; + return false; + } + return true; + } else if (cursor instanceof FieldValueList) { // cursor is advanced, we can return true now + return true; + } else { // this case should never occur as the cursor will either be a Row of EoS + throw new BigQuerySQLException("Could not process the current row"); + } + } catch (InterruptedException e) { + throw new SQLException( + "Error occurred while advancing the cursor. This could happen when connection is closed while we call the next method"); + } + } + + private boolean isEndOfStream(T cursor) { + return cursor instanceof ConnectionImpl.EndOfFieldValueList; + } + + @Override + public Object getObject(String fieldName) throws SQLException { + if (fieldName == null) { + throw new SQLException("fieldName can't be null"); + } + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + return (fieldValue == null || fieldValue.getValue() == null) ? null : fieldValue.getValue(); + } else { // Data received from Read API (Arrow) + Row curRow = (Row) cursor; + if (!curRow.hasField(fieldName)) { + throw new SQLException(String.format("Field %s not found", fieldName)); + } + return curRow.get(fieldName); + } + } + + @Override + public Object getObject(int columnIndex) throws SQLException { + if (cursor == null) { + return null; + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + return (fieldValue == null || fieldValue.getValue() == null) ? null : fieldValue.getValue(); + } else { // Data received from Read API (Arrow) + return getObject(schemaFieldList.get(columnIndex).getName()); + } + } + + @Override + public String getString(String fieldName) throws SQLException { + if (fieldName == null) { + throw new SQLException("fieldName can't be null"); + } + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + if ((fieldValue == null || fieldValue.getValue() == null)) { + return null; + } else if (fieldValue + .getAttribute() + .equals(FieldValue.Attribute.REPEATED)) { // Case for Arrays + return fieldValue.getValue().toString(); + } else { + return fieldValue.getStringValue(); + } + } else { // Data received from Read API (Arrow) + Row curRow = (Row) cursor; + if (!curRow.hasField(fieldName)) { + throw new SQLException(String.format("Field %s not found", fieldName)); + } + Object currentVal = curRow.get(fieldName); + if (currentVal == null) { + return null; + } else if (currentVal instanceof JsonStringArrayList) { // arrays + JsonStringArrayList jsnAry = (JsonStringArrayList) currentVal; + return jsnAry.toString(); + } else if (currentVal instanceof LocalDateTime) { + LocalDateTime dateTime = (LocalDateTime) currentVal; + return dateTime.toString(); + } else { + Text textVal = (Text) currentVal; + return textVal.toString(); + } + } + } + + @Override + public String getString(int columnIndex) throws SQLException { + if (cursor == null) { + return null; + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + return (fieldValue == null || fieldValue.getValue() == null) + ? null + : fieldValue.getStringValue(); + } else { // Data received from Read API (Arrow) + return getString(schemaFieldList.get(columnIndex).getName()); + } + } + + @Override + public int getInt(String fieldName) throws SQLException { + if (fieldName == null) { + throw new SQLException("fieldName can't be null"); + } + if (cursor == null) { + return 0; // the column value; if the value is SQL NULL, the value returned is 0 as per + // java.sql.ResultSet definition + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + return (fieldValue == null || fieldValue.getValue() == null) + ? 0 + : fieldValue.getNumericValue().intValue(); + } else { // Data received from Read API (Arrow) + + Row curRow = (Row) cursor; + if (!curRow.hasField(fieldName)) { + throw new SQLException(String.format("Field %s not found", fieldName)); + } + Object curVal = curRow.get(fieldName); + if (curVal == null) { + return 0; + } + if (curVal instanceof Text) { // parse from text to int + return Integer.parseInt(((Text) curVal).toString()); + } else if (curVal + instanceof + Long) { // incase getInt is called for a Long value. Loss of precision might occur + return ((Long) curVal).intValue(); + } + return ((BigDecimal) curVal).intValue(); + } + } + + @Override + public int getInt(int columnIndex) throws SQLException { + if (cursor == null) { + return 0; // the column value; if the value is SQL NULL, the value returned is 0 as per + // java.sql.ResultSet definition + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + return (fieldValue == null || fieldValue.getValue() == null) + ? 0 + : fieldValue.getNumericValue().intValue(); + } else { // Data received from Read API (Arrow) + return getInt(schemaFieldList.get(columnIndex).getName()); + } + } + + @Override + public long getLong(String fieldName) throws SQLException { + if (fieldName == null) { + throw new SQLException("fieldName can't be null"); + } + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + return (fieldValue == null || fieldValue.getValue() == null) + ? 0L + : fieldValue.getNumericValue().longValue(); + } else { // Data received from Read API (Arrow) + Row curRow = (Row) cursor; + if (!curRow.hasField(fieldName)) { + throw new SQLException(String.format("Field %s not found", fieldName)); + } + Object curVal = curRow.get(fieldName); + if (curVal == null) { + return 0L; + } else { // value will be Long or BigDecimal, but are Number + return ((Number) curVal).longValue(); + } + } + } + + @Override + public long getLong(int columnIndex) throws SQLException { + if (cursor == null) { + return 0L; // the column value; if the value is SQL NULL, the value returned is 0 as per + // java.sql.ResultSet definition + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + return (fieldValue == null || fieldValue.getValue() == null) + ? 0L + : fieldValue.getNumericValue().longValue(); + } else { // Data received from Read API (Arrow) + return getInt(schemaFieldList.get(columnIndex).getName()); + } + } + + @Override + public double getDouble(String fieldName) throws SQLException { + if (fieldName == null) { + throw new SQLException("fieldName can't be null"); + } + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + return (fieldValue == null || fieldValue.getValue() == null) + ? 0d + : fieldValue.getNumericValue().doubleValue(); + } else { // Data received from Read API (Arrow) + Row curRow = (Row) cursor; + if (!curRow.hasField(fieldName)) { + throw new SQLException(String.format("Field %s not found", fieldName)); + } + Object curVal = curRow.get(fieldName); + return curVal == null ? 0.0d : ((BigDecimal) curVal).doubleValue(); + } + } + + @Override + public double getDouble(int columnIndex) throws SQLException { + if (cursor == null) { + return 0d; // the column value; if the value is SQL NULL, the value returned is 0 as per + // java.sql.ResultSet definition + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + return (fieldValue == null || fieldValue.getValue() == null) + ? 0d + : fieldValue.getNumericValue().doubleValue(); + } else { // Data received from Read API (Arrow) + return getDouble(schemaFieldList.get(columnIndex).getName()); + } + } + + @Override + public BigDecimal getBigDecimal(String fieldName) throws SQLException { + if (fieldName == null) { + throw new SQLException("fieldName can't be null"); + } + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + return (fieldValue == null || fieldValue.getValue() == null) + ? null + : BigDecimal.valueOf(fieldValue.getNumericValue().doubleValue()); + } else { // Data received from Read API (Arrow) + return BigDecimal.valueOf(getDouble(fieldName)); + } + } + + @Override + public BigDecimal getBigDecimal(int columnIndex) throws SQLException { + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + return (fieldValue == null || fieldValue.getValue() == null) + ? null + : BigDecimal.valueOf(fieldValue.getNumericValue().doubleValue()); + } else { // Data received from Read API (Arrow) + return getBigDecimal(schemaFieldList.get(columnIndex).getName()); + } + } + + @Override + public boolean getBoolean(String fieldName) throws SQLException { + if (fieldName == null) { + throw new SQLException("fieldName can't be null"); + } + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + return fieldValue.getValue() != null && fieldValue.getBooleanValue(); + } else { // Data received from Read API (Arrow) + Row curRow = (Row) cursor; + if (!curRow.hasField(fieldName)) { + throw new SQLException(String.format("Field %s not found", fieldName)); + } + Object curVal = curRow.get(fieldName); + return curVal != null && (Boolean) curVal; + } + } + + @Override + public boolean getBoolean(int columnIndex) throws SQLException { + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + return fieldValue.getValue() != null && fieldValue.getBooleanValue(); + } else { // Data received from Read API (Arrow) + return getBoolean(schemaFieldList.get(columnIndex).getName()); + } + } + + @Override + public byte[] getBytes(String fieldName) throws SQLException { + if (fieldName == null) { + throw new SQLException("fieldName can't be null"); + } + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + return (fieldValue == null || fieldValue.getValue() == null) + ? null + : fieldValue.getBytesValue(); + } else { // Data received from Read API (Arrow) + Row curRow = (Row) cursor; + if (!curRow.hasField(fieldName)) { + throw new SQLException(String.format("Field %s not found", fieldName)); + } + Object curVal = curRow.get(fieldName); + return curVal == null ? null : (byte[]) curVal; + } + } + + @Override + public byte[] getBytes(int columnIndex) throws SQLException { + if (cursor == null) { + return null; // if the value is SQL NULL, the value returned is null + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + return (fieldValue == null || fieldValue.getValue() == null) + ? null + : fieldValue.getBytesValue(); + } else { // Data received from Read API (Arrow) + return getBytes(schemaFieldList.get(columnIndex).getName()); + } + } + + @Override + public Timestamp getTimestamp(String fieldName) throws SQLException { + if (fieldName == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } + if (cursor == null) { + return null; // if the value is SQL NULL, the value returned is null + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + return (fieldValue == null || fieldValue.getValue() == null) + ? null + : new Timestamp( + fieldValue.getTimestampValue() + / 1000); // getTimestampValue returns time in microseconds, and TimeStamp + // expects it in millis + } else { + Row curRow = (Row) cursor; + if (!curRow.hasField(fieldName)) { + throw new SQLException(String.format("Field %s not found", fieldName)); + } + Object timeStampVal = curRow.get(fieldName); + return timeStampVal == null + ? null + : new Timestamp((Long) timeStampVal / 1000); // Timestamp is represented as a Long + } + } + + @Override + public Timestamp getTimestamp(int columnIndex) throws SQLException { + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + return (fieldValue == null || fieldValue.getValue() == null) + ? null + : new Timestamp( + fieldValue.getTimestampValue() + / 1000); // getTimestampValue returns time in microseconds, and TimeStamp + // expects it in millis + } else { // Data received from Read API (Arrow) + return getTimestamp(schemaFieldList.get(columnIndex).getName()); + } + } + + @Override + public Time getTime(String fieldName) throws SQLException { + if (fieldName == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } + if (cursor == null) { + return null; // if the value is SQL NULL, the value returned is null + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + return getTimeFromFieldVal(fieldValue); + } else { // Data received from Read API (Arrow) + Row curRow = (Row) cursor; + if (!curRow.hasField(fieldName)) { + throw new SQLException(String.format("Field %s not found", fieldName)); + } + Object timeStampObj = curRow.get(fieldName); + return timeStampObj == null + ? null + : new Time( + ((Long) timeStampObj) + / 1000); // Time.toString() will return 12:11:35 in GMT as 17:41:35 in + // (GMT+5:30). This can be offset using getTimeZoneOffset + } + } + + private int getTimeZoneOffset() { + TimeZone timeZone = TimeZone.getTimeZone(ZoneId.systemDefault()); + return timeZone.getOffset(new java.util.Date().getTime()); // offset in seconds + } + + @Override + public Time getTime(int columnIndex) throws SQLException { + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + return getTimeFromFieldVal(fieldValue); + } else { // Data received from Read API (Arrow) + return getTime(schemaFieldList.get(columnIndex).getName()); + } + } + + private Time getTimeFromFieldVal(FieldValue fieldValue) throws SQLException { + if (fieldValue.getValue() != null) { + // Time ranges from 00:00:00 to 23:59:59.99999. in BigQuery. Parsing it to java.sql.Time + String strTime = fieldValue.getStringValue(); + String[] timeSplt = strTime.split(":"); + if (timeSplt.length != 3) { + throw new SQLException("Can not parse the value " + strTime + " to java.sql.Time"); + } + int hr = Integer.parseInt(timeSplt[0]); + int min = Integer.parseInt(timeSplt[1]); + int sec = 0, nanoSec = 0; + if (timeSplt[2].contains(".")) { + String[] secSplt = timeSplt[2].split("\\."); + sec = Integer.parseInt(secSplt[0]); + nanoSec = Integer.parseInt(secSplt[1]); + } else { + sec = Integer.parseInt(timeSplt[2]); + } + return Time.valueOf(LocalTime.of(hr, min, sec, nanoSec)); + } else { + return null; + } + } + + @Override + public Date getDate(String fieldName) throws SQLException { + if (fieldName == null) { + throw new SQLException("fieldName can't be null"); + } + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + return (fieldValue == null || fieldValue.getValue() == null) + ? null + : Date.valueOf(fieldValue.getStringValue()); + } else { // Data received from Read API (Arrow) + Row curRow = (Row) cursor; + if (!curRow.hasField(fieldName)) { + throw new SQLException(String.format("Field %s not found", fieldName)); + } + Object dateObj = curRow.get(fieldName); + if (dateObj == null) { + return null; + } else { + Integer dateInt = (Integer) dateObj; + long dateInMillis = + TimeUnit.DAYS.toMillis( + Long.valueOf( + dateInt)); // For example int 18993 represents 2022-01-01, converting time to + // milli seconds + return new Date(dateInMillis); + } + } + } + + @Override + public Date getDate(int columnIndex) throws SQLException { + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + return (fieldValue == null || fieldValue.getValue() == null) + ? null + : Date.valueOf(fieldValue.getStringValue()); + } else { // Data received from Read API (Arrow) + return getDate(schemaFieldList.get(columnIndex).getName()); + } + } + } + + @Override + public BigQueryResultStats getBigQueryResultStats() { + return bigQueryResultStats; + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStats.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStats.java new file mode 100644 index 000000000000..a4c37a9b6612 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStats.java @@ -0,0 +1,36 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.core.BetaApi; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.JobStatistics.SessionInfo; + +public interface BigQueryResultStats { + + /** Returns query statistics of a query job */ + @BetaApi + QueryStatistics getQueryStatistics(); + + /** + * Returns SessionInfo contains information about the session if this job is part of one. + * JobStatistics2 model class does not allow setSessionInfo so this cannot be set as part of + * QueryStatistics when we use jobs.query API. + */ + @BetaApi + SessionInfo getSessionInfo(); +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStatsImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStatsImpl.java new file mode 100644 index 000000000000..53d67f8f3a13 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStatsImpl.java @@ -0,0 +1,41 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.JobStatistics.SessionInfo; + +public class BigQueryResultStatsImpl implements BigQueryResultStats { + + private final QueryStatistics queryStatistics; + private final SessionInfo sessionInfo; + + public BigQueryResultStatsImpl(QueryStatistics queryStatistics, SessionInfo sessionInfo) { + this.queryStatistics = queryStatistics; + this.sessionInfo = sessionInfo; + } + + @Override + public QueryStatistics getQueryStatistics() { + return queryStatistics; + } + + @Override + public SessionInfo getSessionInfo() { + return sessionInfo; + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuerySQLException.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuerySQLException.java new file mode 100644 index 000000000000..672c6ad3faee --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuerySQLException.java @@ -0,0 +1,86 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import java.sql.SQLException; +import java.util.List; + +/** + * BigQuery service exception. + * + * @see Google Cloud BigQuery + * error codes + */ +public final class BigQuerySQLException extends SQLException { + + private static final long serialVersionUID = -5006625989225438209L; + private final List errors; + + public BigQuerySQLException() { + this.errors = null; + } + + public BigQuerySQLException( + String msg) { // overloaded constructor with just message as an argument + super(msg); + this.errors = null; + } + + public BigQuerySQLException(List errors) { + this.errors = errors; + } + + public BigQuerySQLException(List errors, Throwable cause) { + super(cause != null ? cause.toString() : null); + this.errors = errors; + } + + public BigQuerySQLException(String reason, List errors) { + super(reason); + this.errors = errors; + } + + public BigQuerySQLException(String reason, Throwable cause, List errors) { + super(reason, cause); + this.errors = errors; + } + + public BigQuerySQLException(String reason, String sqlState, List errors) { + super(reason, sqlState); + this.errors = errors; + } + + public BigQuerySQLException( + String reason, String sqlState, int errorCode, List errors) { + super(reason, sqlState, errorCode); + this.errors = errors; + } + + public BigQuerySQLException( + String reason, String sqlState, int errorCode, Throwable cause, List errors) { + super(reason, sqlState, errorCode, cause); + this.errors = errors; + } + + /** + * Returns a list of {@link BigQueryError}s that caused this exception. Returns {@code null} if + * none exists. + */ + public List getErrors() { + return errors; + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java new file mode 100644 index 000000000000..109838d8b23b --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java @@ -0,0 +1,92 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.core.BetaApi; +import java.util.List; +import java.util.Map; + +/** + * A Connection is a session between a Java application and BigQuery. SQL statements are executed + * and results are returned within the context of a connection. + */ +public interface Connection { + + /** Sends a query cancel request. This call will return immediately */ + @BetaApi + boolean close() throws BigQuerySQLException; + + /** + * Execute a query dry run that returns information on the schema and query parameters of the + * query results. + * + * @param sql typically a static SQL SELECT statement + * @exception BigQuerySQLException if a database access error occurs + */ + @BetaApi + BigQueryDryRunResult dryRun(String sql) throws BigQuerySQLException; + + /** + * Execute a SQL statement that returns a single ResultSet. + * + *

    Example of running a query. + * + *

    +   * {
    +   *   @code
    +   *   ConnectionSettings connectionSettings =
    +   *        ConnectionSettings.newBuilder()
    +   *            .setRequestTimeout(10L)
    +   *            .setMaxResults(100L)
    +   *            .setUseQueryCache(true)
    +   *            .build();
    +   *   Connection connection = bigquery.createConnection(connectionSettings);
    +   *   String selectQuery = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
    +   *   BigQueryResult bqResultSet = connection.executeSelect(selectQuery)
    +   *   ResultSet rs = bqResultSet.getResultSet();
    +   *   while (rs.next()) {
    +   *       System.out.printf("%s,", rs.getString("corpus"));
    +   *   }
    +   * 
    + * + * @param sql a static SQL SELECT statement + * @return a ResultSet that contains the data produced by the query + * @exception BigQuerySQLException if a database access error occurs + */ + @BetaApi + BigQueryResult executeSelect(String sql) throws BigQuerySQLException; + + /** + * This method executes a SQL SELECT query + * + * @param sql SQL SELECT query + * @param parameters named or positional parameters. The set of query parameters must either be + * all positional or all named parameters. + * @param labels (optional) the labels associated with this query. You can use these to organize + * and group your query jobs. Label keys and values can be no longer than 63 characters, can + * only contain lowercase letters, numeric characters, underscores and dashes. International + * characters are allowed. Label values are optional and Label is a Varargs. You should pass + * all the Labels in a single Map .Label keys must start with a letter and each label in the + * list must have a different key. + * @return BigQueryResult containing the output of the query + * @throws BigQuerySQLException + */ + @BetaApi + BigQueryResult executeSelect( + String sql, List parameters, Map... labels) + throws BigQuerySQLException; +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java new file mode 100644 index 000000000000..c24a00888d21 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -0,0 +1,1240 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.cloud.RetryHelper.runWithRetries; +import static java.net.HttpURLConnection.HTTP_NOT_FOUND; + +import com.google.api.core.BetaApi; +import com.google.api.services.bigquery.model.GetQueryResultsResponse; +import com.google.api.services.bigquery.model.JobConfigurationQuery; +import com.google.api.services.bigquery.model.QueryParameter; +import com.google.api.services.bigquery.model.QueryRequest; +import com.google.api.services.bigquery.model.TableDataList; +import com.google.api.services.bigquery.model.TableRow; +import com.google.cloud.RetryHelper; +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.JobStatistics.SessionInfo; +import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.cloud.bigquery.storage.v1.ArrowRecordBatch; +import com.google.cloud.bigquery.storage.v1.ArrowSchema; +import com.google.cloud.bigquery.storage.v1.BigQueryReadClient; +import com.google.cloud.bigquery.storage.v1.CreateReadSessionRequest; +import com.google.cloud.bigquery.storage.v1.DataFormat; +import com.google.cloud.bigquery.storage.v1.ReadRowsRequest; +import com.google.cloud.bigquery.storage.v1.ReadRowsResponse; +import com.google.cloud.bigquery.storage.v1.ReadSession; +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Function; +import com.google.common.base.Strings; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import java.io.IOException; +import java.util.AbstractList; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Queue; +import java.util.UUID; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.stream.Collectors; +import org.apache.arrow.memory.BufferAllocator; +import org.apache.arrow.memory.RootAllocator; +import org.apache.arrow.vector.FieldVector; +import org.apache.arrow.vector.VectorLoader; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.ipc.ReadChannel; +import org.apache.arrow.vector.ipc.message.MessageSerializer; +import org.apache.arrow.vector.types.pojo.Field; +import org.apache.arrow.vector.util.ByteArrayReadableSeekableByteChannel; + +/** Implementation for {@link Connection}, the generic BigQuery connection API (not JDBC). */ +class ConnectionImpl implements Connection { + + private final ConnectionSettings connectionSettings; + private final BigQueryOptions bigQueryOptions; + private final BigQueryRpc bigQueryRpc; + private final BigQueryRetryConfig retryConfig; + private final int bufferSize; // buffer size in Producer Thread + private final int MAX_PROCESS_QUERY_THREADS_CNT = 5; + private final ExecutorService queryTaskExecutor = + Executors.newFixedThreadPool(MAX_PROCESS_QUERY_THREADS_CNT); + private final Logger logger = Logger.getLogger(this.getClass().getName()); + private BigQueryReadClient bqReadClient; + private static final long EXECUTOR_TIMEOUT_SEC = 5; + + ConnectionImpl( + ConnectionSettings connectionSettings, + BigQueryOptions bigQueryOptions, + BigQueryRpc bigQueryRpc, + BigQueryRetryConfig retryConfig) { + this.connectionSettings = connectionSettings; + this.bigQueryOptions = bigQueryOptions; + this.bigQueryRpc = bigQueryRpc; + this.retryConfig = retryConfig; + // Sets a reasonable buffer size (a blocking queue) if user input is suboptimal + this.bufferSize = + (connectionSettings == null + || connectionSettings.getNumBufferedRows() == null + || connectionSettings.getNumBufferedRows() < 10000 + ? 20000 + : Math.min(connectionSettings.getNumBufferedRows() * 2, 100000)); + } + + /** + * Cancel method shutdowns the pageFetcher and producerWorker threads gracefully using interrupt. + * The pageFetcher threat will not request for any subsequent threads after interrupting and + * shutdown as soon as any ongoing RPC call returns. The producerWorker will not populate the + * buffer with any further records and clear the buffer, put a EoF marker and shutdown. + * + * @return Boolean value true if the threads were interrupted + * @throws BigQuerySQLException + */ + @BetaApi + @Override + public synchronized boolean close() throws BigQuerySQLException { + queryTaskExecutor.shutdownNow(); + try { + queryTaskExecutor.awaitTermination( + EXECUTOR_TIMEOUT_SEC, TimeUnit.SECONDS); // wait for the executor shutdown + } catch (InterruptedException e) { + e.printStackTrace(); + logger.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Exception while awaitTermination", + e); // Logging InterruptedException instead of throwing the exception back, close method + // will return queryTaskExecutor.isShutdown() + } + return queryTaskExecutor.isShutdown(); // check if the executor has been shutdown + } + + /** + * This method runs a dry run query + * + * @param sql SQL SELECT statement + * @return BigQueryDryRunResult containing List and Schema + * @throws BigQuerySQLException + */ + @BetaApi + @Override + public BigQueryDryRunResult dryRun(String sql) throws BigQuerySQLException { + com.google.api.services.bigquery.model.Job dryRunJob = createDryRunJob(sql); + Schema schema = Schema.fromPb(dryRunJob.getStatistics().getQuery().getSchema()); + List queryParametersPb = + dryRunJob.getStatistics().getQuery().getUndeclaredQueryParameters(); + List queryParameters = + Lists.transform(queryParametersPb, QUERY_PARAMETER_FROM_PB_FUNCTION); + QueryStatistics queryStatistics = JobStatistics.fromPb(dryRunJob); + SessionInfo sessionInfo = + queryStatistics.getSessionInfo() == null ? null : queryStatistics.getSessionInfo(); + BigQueryResultStats bigQueryResultStats = + new BigQueryResultStatsImpl(queryStatistics, sessionInfo); + return new BigQueryDryRunResultImpl(schema, queryParameters, bigQueryResultStats); + } + + /** + * This method executes a SQL SELECT query + * + * @param sql SQL SELECT statement + * @return BigQueryResult containing the output of the query + * @throws BigQuerySQLException + */ + @BetaApi + @Override + public BigQueryResult executeSelect(String sql) throws BigQuerySQLException { + try { + // use jobs.query if all the properties of connectionSettings are supported + if (isFastQuerySupported()) { + String projectId = bigQueryOptions.getProjectId(); + QueryRequest queryRequest = createQueryRequest(connectionSettings, sql, null, null); + return queryRpc(projectId, queryRequest, false); + } + // use jobs.insert otherwise + com.google.api.services.bigquery.model.Job queryJob = + createQueryJob(sql, connectionSettings, null, null); + JobId jobId = JobId.fromPb(queryJob.getJobReference()); + GetQueryResultsResponse firstPage = getQueryResultsFirstPage(jobId); + return getResultSet(firstPage, jobId, sql, false); + } catch (BigQueryException e) { + throw new BigQuerySQLException(e.getMessage(), e, e.getErrors()); + } + } + + /** + * This method executes a SQL SELECT query + * + * @param sql SQL SELECT query + * @param parameters named or positional parameters. The set of query parameters must either be + * all positional or all named parameters. + * @param labels the labels associated with this query. You can use these to organize and group + * your query jobs. Label keys and values can be no longer than 63 characters, can only + * contain lowercase letters, numeric characters, underscores and dashes. International + * characters are allowed. Label values are optional and Label is a Varargs. You should pass + * all the Labels in a single Map .Label keys must start with a letter and each label in the + * list must have a different key. + * @return BigQueryResult containing the output of the query + * @throws BigQuerySQLException + */ + @BetaApi + @Override + public BigQueryResult executeSelect( + String sql, List parameters, Map... labels) + throws BigQuerySQLException { + Map labelMap = null; + if (labels != null + && labels.length == 1) { // We expect label as a key value pair in a single Map + labelMap = labels[0]; + } + try { + // use jobs.query if possible + if (isFastQuerySupported()) { + final String projectId = bigQueryOptions.getProjectId(); + final QueryRequest queryRequest = + createQueryRequest(connectionSettings, sql, parameters, labelMap); + return queryRpc(projectId, queryRequest, parameters != null); + } + // use jobs.insert otherwise + com.google.api.services.bigquery.model.Job queryJob = + createQueryJob(sql, connectionSettings, parameters, labelMap); + JobId jobId = JobId.fromPb(queryJob.getJobReference()); + GetQueryResultsResponse firstPage = getQueryResultsFirstPage(jobId); + return getResultSet(firstPage, jobId, sql, parameters != null); + } catch (BigQueryException e) { + throw new BigQuerySQLException(e.getMessage(), e, e.getErrors()); + } + } + + @VisibleForTesting + BigQueryResult getResultSet( + GetQueryResultsResponse firstPage, JobId jobId, String sql, Boolean hasQueryParameters) { + if (firstPage.getJobComplete() + && firstPage.getTotalRows() + != null) { // firstPage.getTotalRows() is null if job is not complete + return getSubsequentQueryResultsWithJob( + firstPage.getTotalRows().longValue(), + (long) firstPage.getRows().size(), + jobId, + firstPage, + hasQueryParameters); + } else { // job is still running, use dryrun to get Schema + com.google.api.services.bigquery.model.Job dryRunJob = createDryRunJob(sql); + Schema schema = Schema.fromPb(dryRunJob.getStatistics().getQuery().getSchema()); + // TODO: check how can we get totalRows and pageRows while the job is still running. + // `firstPage.getTotalRows()` returns null + return getSubsequentQueryResultsWithJob( + null, null, jobId, firstPage, schema, hasQueryParameters); + } + } + + static class EndOfFieldValueList + extends AbstractList< + FieldValue> { // A reference of this class is used as a token to inform the thread + // consuming `buffer` BigQueryResultImpl that we have run out of records + @Override + public FieldValue get(int index) { + return null; + } + + @Override + public int size() { + return 0; + } + } + + private BigQueryResult queryRpc( + final String projectId, final QueryRequest queryRequest, Boolean hasQueryParameters) { + com.google.api.services.bigquery.model.QueryResponse results; + try { + results = + BigQueryRetryHelper.runWithRetries( + () -> bigQueryRpc.queryRpc(projectId, queryRequest), + bigQueryOptions.getRetrySettings(), + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getClock(), + retryConfig); + } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + + if (results.getErrors() != null) { + List bigQueryErrors = + results.getErrors().stream() + .map(BigQueryError.FROM_PB_FUNCTION) + .collect(Collectors.toList()); + // Throwing BigQueryException since there may be no JobId, and we want to stay consistent + // with the case where there is an HTTP error + throw new BigQueryException(bigQueryErrors); + } + + // Query finished running and we can paginate all the results + if (results.getJobComplete() && results.getSchema() != null) { + return processQueryResponseResults(results); + } else { + // Query is long-running (> 10s) and hasn't completed yet, or query completed but didn't + // return the schema, fallback to jobs.insert path. Some operations don't return the schema + // and can be optimized here, but this is left as future work. + Long totalRows = results.getTotalRows() == null ? null : results.getTotalRows().longValue(); + Long pageRows = results.getRows() == null ? null : (long) (results.getRows().size()); + JobId jobId = JobId.fromPb(results.getJobReference()); + GetQueryResultsResponse firstPage = getQueryResultsFirstPage(jobId); + return getSubsequentQueryResultsWithJob( + totalRows, pageRows, jobId, firstPage, hasQueryParameters); + } + } + + @VisibleForTesting + BigQueryResultStats getBigQueryResultSetStats(JobId jobId) { + // Create GetQueryResultsResponse query statistics + Job queryJob = getQueryJobRpc(jobId); + QueryStatistics queryStatistics = queryJob.getStatistics(); + SessionInfo sessionInfo = + queryStatistics.getSessionInfo() == null ? null : queryStatistics.getSessionInfo(); + return new BigQueryResultStatsImpl(queryStatistics, sessionInfo); + } + /* This method processed the first page of GetQueryResultsResponse and then it uses tabledata.list */ + @VisibleForTesting + BigQueryResult tableDataList(GetQueryResultsResponse firstPage, JobId jobId) { + Schema schema; + long numRows; + schema = Schema.fromPb(firstPage.getSchema()); + numRows = firstPage.getTotalRows().longValue(); + + BigQueryResultStats bigQueryResultStats = getBigQueryResultSetStats(jobId); + + // Keeps the deserialized records at the row level, which is consumed by BigQueryResult + BlockingQueue> buffer = new LinkedBlockingDeque<>(bufferSize); + + // Keeps the parsed FieldValueLists + BlockingQueue, Boolean>> pageCache = + new LinkedBlockingDeque<>( + getPageCacheSize(connectionSettings.getNumBufferedRows(), schema)); + + // Keeps the raw RPC responses + BlockingQueue> rpcResponseQueue = + new LinkedBlockingDeque<>( + getPageCacheSize(connectionSettings.getNumBufferedRows(), schema)); + + runNextPageTaskAsync(firstPage.getPageToken(), getDestinationTable(jobId), rpcResponseQueue); + + parseRpcDataAsync( + firstPage.getRows(), + schema, + pageCache, + rpcResponseQueue); // parses data on a separate thread, thus maximising processing + // throughput + + populateBufferAsync( + rpcResponseQueue, pageCache, buffer); // spawns a thread to populate the buffer + + // This will work for pagination as well, as buffer is getting updated asynchronously + return new BigQueryResultImpl>( + schema, numRows, buffer, bigQueryResultStats); + } + + @VisibleForTesting + BigQueryResult processQueryResponseResults( + com.google.api.services.bigquery.model.QueryResponse results) { + Schema schema; + long numRows; + schema = Schema.fromPb(results.getSchema()); + numRows = + results.getTotalRows() == null + ? 0 + : results.getTotalRows().longValue(); // in case of DML or DDL + // QueryResponse only provides cache hits, dmlStats, and sessionInfo as query processing + // statistics + DmlStats dmlStats = + results.getDmlStats() == null ? null : DmlStats.fromPb(results.getDmlStats()); + Boolean cacheHit = results.getCacheHit(); + QueryStatistics queryStatistics = + QueryStatistics.newBuilder().setDmlStats(dmlStats).setCacheHit(cacheHit).build(); + // We cannot directly set sessionInfo in QueryStatistics + SessionInfo sessionInfo = + results.getSessionInfo() == null + ? null + : JobStatistics.SessionInfo.fromPb(results.getSessionInfo()); + BigQueryResultStats bigQueryResultStats = + new BigQueryResultStatsImpl(queryStatistics, sessionInfo); + + BlockingQueue> buffer = new LinkedBlockingDeque<>(bufferSize); + BlockingQueue, Boolean>> pageCache = + new LinkedBlockingDeque<>( + getPageCacheSize(connectionSettings.getNumBufferedRows(), schema)); + BlockingQueue> rpcResponseQueue = + new LinkedBlockingDeque<>( + getPageCacheSize(connectionSettings.getNumBufferedRows(), schema)); + + JobId jobId = JobId.fromPb(results.getJobReference()); + + // Thread to make rpc calls to fetch data from the server + runNextPageTaskAsync(results.getPageToken(), getDestinationTable(jobId), rpcResponseQueue); + + // Thread to parse data received from the server to client library objects + parseRpcDataAsync(results.getRows(), schema, pageCache, rpcResponseQueue); + + // Thread to populate the buffer (a blocking queue) shared with the consumer + populateBufferAsync(rpcResponseQueue, pageCache, buffer); + + return new BigQueryResultImpl>( + schema, numRows, buffer, bigQueryResultStats); + } + + @VisibleForTesting + void runNextPageTaskAsync( + String firstPageToken, + TableId destinationTable, + BlockingQueue> rpcResponseQueue) { + // This thread makes the RPC calls and paginates + Runnable nextPageTask = + () -> { + String pageToken = firstPageToken; // results.getPageToken(); + try { + while (pageToken != null) { // paginate for non null token + if (Thread.currentThread().isInterrupted() + || queryTaskExecutor.isShutdown()) { // do not process further pages and shutdown + break; + } + TableDataList tabledataList = tableDataListRpc(destinationTable, pageToken); + pageToken = tabledataList.getPageToken(); + rpcResponseQueue.put( + Tuple.of( + tabledataList, + true)); // this will be parsed asynchronously without blocking the current + // thread + } + rpcResponseQueue.put( + Tuple.of( + null, + false)); // this will stop the parseDataTask as well in case of interrupt or + // when the pagination completes + } catch (Exception e) { + throw new BigQueryException(0, e.getMessage(), e); + } + }; + queryTaskExecutor.execute(nextPageTask); + } + + /* + This method takes TableDataList from rpcResponseQueue and populates pageCache with FieldValueList + */ + @VisibleForTesting + void parseRpcDataAsync( + // com.google.api.services.bigquery.model.QueryResponse results, + List tableRows, + Schema schema, + BlockingQueue, Boolean>> pageCache, + BlockingQueue> rpcResponseQueue) { + + // parse and put the first page in the pageCache before the other pages are parsed from the RPC + // calls + Iterable firstFieldValueLists = getIterableFieldValueList(tableRows, schema); + try { + pageCache.put( + Tuple.of(firstFieldValueLists, true)); // this is the first page which we have received. + } catch (InterruptedException e) { + throw new BigQueryException(0, e.getMessage(), e); + } + + // rpcResponseQueue will get null tuple if Cancel method is called, so no need to explicitly use + // thread interrupt here + Runnable parseDataTask = + () -> { + try { + boolean hasMorePages = true; + while (hasMorePages) { + Tuple rpcResponse = rpcResponseQueue.take(); + TableDataList tabledataList = rpcResponse.x(); + hasMorePages = rpcResponse.y(); + if (tabledataList != null) { + Iterable fieldValueLists = + getIterableFieldValueList(tabledataList.getRows(), schema); // Parse + pageCache.put(Tuple.of(fieldValueLists, true)); + } + } + } catch (InterruptedException e) { + logger.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Interrupted", + e); // Thread might get interrupted while calling the Cancel method, which is + // expected, so logging this instead of throwing the exception back + } + try { + pageCache.put(Tuple.of(null, false)); // no further pages + } catch (InterruptedException e) { + logger.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Interrupted", + e); // Thread might get interrupted while calling the Cancel method, which is + // expected, so logging this instead of throwing the exception back + } + }; + queryTaskExecutor.execute(parseDataTask); + } + + @VisibleForTesting + void populateBufferAsync( + BlockingQueue> rpcResponseQueue, + BlockingQueue, Boolean>> pageCache, + BlockingQueue> buffer) { + Runnable populateBufferRunnable = + () -> { // producer thread populating the buffer + Iterable fieldValueLists = null; + boolean hasRows = true; // as we have to process the first page + while (hasRows) { + try { + Tuple, Boolean> nextPageTuple = pageCache.take(); + hasRows = nextPageTuple.y(); + fieldValueLists = nextPageTuple.x(); + } catch (InterruptedException e) { + logger.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Interrupted", + e); // Thread might get interrupted while calling the Cancel method, which is + // expected, so logging this instead of throwing the exception back + } + + if (Thread.currentThread().isInterrupted() + || fieldValueLists + == null) { // do not process further pages and shutdown (outerloop) + break; + } + + for (FieldValueList fieldValueList : fieldValueLists) { + try { + if (Thread.currentThread() + .isInterrupted()) { // do not process further pages and shutdown (inner loop) + break; + } + buffer.put(fieldValueList); + } catch (InterruptedException e) { + throw new BigQueryException(0, e.getMessage(), e); + } + } + } + + if (Thread.currentThread() + .isInterrupted()) { // clear the buffer for any outstanding records + buffer.clear(); + rpcResponseQueue + .clear(); // IMP - so that if it's full then it unblocks and the interrupt logic + // could trigger + } + + try { + buffer.put( + new EndOfFieldValueList()); // All the pages has been processed, put this marker + } catch (InterruptedException e) { + throw new BigQueryException(0, e.getMessage(), e); + } finally { + queryTaskExecutor.shutdownNow(); // Shutdown the thread pool + } + }; + + queryTaskExecutor.execute(populateBufferRunnable); + } + + /* Helper method that parse and populate a page with TableRows */ + private static Iterable getIterableFieldValueList( + Iterable tableDataPb, final Schema schema) { + return ImmutableList.copyOf( + Iterables.transform( + tableDataPb != null ? tableDataPb : ImmutableList.of(), + new Function() { + final FieldList fields = schema != null ? schema.getFields() : null; + + @Override + public FieldValueList apply(TableRow rowPb) { + return FieldValueList.fromPb(rowPb.getF(), fields); + } + })); + } + + /* Helper method that determines the optimal number of caches pages to improve read performance */ + @VisibleForTesting + int getPageCacheSize(Integer numBufferedRows, Schema schema) { + final int MIN_CACHE_SIZE = 3; // Min number of pages to cache + final int MAX_CACHE_SIZE = 20; // //Min number of pages to cache + int numColumns = schema.getFields().size(); + int numCachedPages; + long numCachedRows = numBufferedRows == null ? 0 : numBufferedRows.longValue(); + + // TODO: Further enhance this logic depending on customer feedback on memory consumption + if (numCachedRows > 10000) { + numCachedPages = + 2; // the size of numBufferedRows is quite large and as per our tests we should be able to + // do enough even with low + } else if (numColumns > 15 + && numCachedRows + > 5000) { // too many fields are being read, setting the page size on the lower end + numCachedPages = 3; + } else if (numCachedRows < 2000 + && numColumns < 15) { // low pagesize with fewer number of columns, we can cache more pages + numCachedPages = 20; + } else { // default - under 10K numCachedRows with any number of columns + numCachedPages = 5; + } + return numCachedPages < MIN_CACHE_SIZE + ? MIN_CACHE_SIZE + : (Math.min( + numCachedPages, + MAX_CACHE_SIZE)); // numCachedPages should be between the defined min and max + } + + /* Returns query results using either tabledata.list or the high throughput Read API */ + @VisibleForTesting + BigQueryResult getSubsequentQueryResultsWithJob( + Long totalRows, + Long pageRows, + JobId jobId, + GetQueryResultsResponse firstPage, + Boolean hasQueryParameters) { + TableId destinationTable = getDestinationTable(jobId); + return useReadAPI(totalRows, pageRows, Schema.fromPb(firstPage.getSchema()), hasQueryParameters) + ? highThroughPutRead( + destinationTable, + firstPage.getTotalRows().longValue(), + Schema.fromPb(firstPage.getSchema()), + getBigQueryResultSetStats( + jobId)) // discord first page and stream the entire BigQueryResult using + // the Read API + : tableDataList(firstPage, jobId); + } + + /* Returns query results using either tabledata.list or the high throughput Read API */ + @VisibleForTesting + BigQueryResult getSubsequentQueryResultsWithJob( + Long totalRows, + Long pageRows, + JobId jobId, + GetQueryResultsResponse firstPage, + Schema schema, + Boolean hasQueryParameters) { + TableId destinationTable = getDestinationTable(jobId); + return useReadAPI(totalRows, pageRows, schema, hasQueryParameters) + ? highThroughPutRead( + destinationTable, + totalRows == null + ? -1L + : totalRows, // totalRows is null when the job is still running. TODO: Check if + // any workaround is possible + schema, + getBigQueryResultSetStats( + jobId)) // discord first page and stream the entire BigQueryResult using + // the Read API + : tableDataList(firstPage, jobId); + } + + /* Returns Job from jobId by calling the jobs.get API */ + private Job getQueryJobRpc(JobId jobId) { + final JobId completeJobId = + jobId + .setProjectId(bigQueryOptions.getProjectId()) + .setLocation( + jobId.getLocation() == null && bigQueryOptions.getLocation() != null + ? bigQueryOptions.getLocation() + : jobId.getLocation()); + com.google.api.services.bigquery.model.Job jobPb; + try { + jobPb = + runWithRetries( + () -> + bigQueryRpc.getQueryJob( + completeJobId.getProject(), + completeJobId.getJob(), + completeJobId.getLocation()), + bigQueryOptions.getRetrySettings(), + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getClock()); + if (bigQueryOptions.getThrowNotFound() && jobPb == null) { + throw new BigQueryException(HTTP_NOT_FOUND, "Query job not found"); + } + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + return Job.fromPb(bigQueryOptions.getService(), jobPb); + } + + /* Returns the destinationTable from jobId by calling jobs.get API */ + @VisibleForTesting + TableId getDestinationTable(JobId jobId) { + Job job = getQueryJobRpc(jobId); + return ((QueryJobConfiguration) job.getConfiguration()).getDestinationTable(); + } + + @VisibleForTesting + TableDataList tableDataListRpc(TableId destinationTable, String pageToken) { + try { + final TableId completeTableId = + destinationTable.setProjectId( + Strings.isNullOrEmpty(destinationTable.getProject()) + ? bigQueryOptions.getProjectId() + : destinationTable.getProject()); + TableDataList results = + runWithRetries( + () -> + bigQueryOptions + .getBigQueryRpcV2() + .listTableDataWithRowLimit( + completeTableId.getProject(), + completeTableId.getDataset(), + completeTableId.getTable(), + connectionSettings.getMaxResultPerPage(), + pageToken), + bigQueryOptions.getRetrySettings(), + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getClock()); + + return results; + } catch (RetryHelper.RetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @VisibleForTesting + BigQueryResult highThroughPutRead( + TableId destinationTable, long totalRows, Schema schema, BigQueryResultStats stats) { + + try { + if (bqReadClient == null) { // if the read client isn't already initialized. Not thread safe. + bqReadClient = BigQueryReadClient.create(); + } + String parent = String.format("projects/%s", destinationTable.getProject()); + String srcTable = + String.format( + "projects/%s/datasets/%s/tables/%s", + destinationTable.getProject(), + destinationTable.getDataset(), + destinationTable.getTable()); + + // Read all the columns if the source table (temp table) and stream the data back in Arrow + // format + ReadSession.Builder sessionBuilder = + ReadSession.newBuilder().setTable(srcTable).setDataFormat(DataFormat.ARROW); + + CreateReadSessionRequest.Builder builder = + CreateReadSessionRequest.newBuilder() + .setParent(parent) + .setReadSession(sessionBuilder) + .setMaxStreamCount(1) // Currently just one stream is allowed + // DO a regex check using order by and use multiple streams + ; + + ReadSession readSession = bqReadClient.createReadSession(builder.build()); + BlockingQueue buffer = new LinkedBlockingDeque<>(bufferSize); + Map arrowNameToIndex = new HashMap<>(); + // deserialize and populate the buffer async, so that the client isn't blocked + processArrowStreamAsync( + readSession, + buffer, + new ArrowRowReader(readSession.getArrowSchema(), arrowNameToIndex), + schema); + + logger.log(Level.INFO, "\n Using BigQuery Read API"); + return new BigQueryResultImpl(schema, totalRows, buffer, stats); + + } catch (IOException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + private void processArrowStreamAsync( + ReadSession readSession, + BlockingQueue buffer, + ArrowRowReader reader, + Schema schema) { + + Runnable arrowStreamProcessor = + () -> { + try { + // Use the first stream to perform reading. + String streamName = readSession.getStreams(0).getName(); + ReadRowsRequest readRowsRequest = + ReadRowsRequest.newBuilder().setReadStream(streamName).build(); + + // Process each block of rows as they arrive and decode using our simple row reader. + com.google.api.gax.rpc.ServerStream stream = + bqReadClient.readRowsCallable().call(readRowsRequest); + for (ReadRowsResponse response : stream) { + if (Thread.currentThread().isInterrupted() + || queryTaskExecutor.isShutdown()) { // do not process and shutdown + break; + } + reader.processRows(response.getArrowRecordBatch(), buffer, schema); + } + + } catch (Exception e) { + throw BigQueryException.translateAndThrow(e); + } finally { + try { + buffer.put(new BigQueryResultImpl.Row(null, true)); // marking end of stream + queryTaskExecutor.shutdownNow(); // Shutdown the thread pool + } catch (InterruptedException e) { + logger.log(Level.WARNING, "\n Error occurred ", e); + } + } + }; + + queryTaskExecutor.execute(arrowStreamProcessor); + } + + private class ArrowRowReader + implements AutoCloseable { // TODO: Update to recent version of Arrow to avoid memoryleak + + BufferAllocator allocator = new RootAllocator(Long.MAX_VALUE); + + // Decoder object will be reused to avoid re-allocation and too much garbage collection. + private final VectorSchemaRoot root; + private final VectorLoader loader; + + private ArrowRowReader(ArrowSchema arrowSchema, Map arrowNameToIndex) + throws IOException { + org.apache.arrow.vector.types.pojo.Schema schema = + MessageSerializer.deserializeSchema( + new org.apache.arrow.vector.ipc.ReadChannel( + new ByteArrayReadableSeekableByteChannel( + arrowSchema.getSerializedSchema().toByteArray()))); + List vectors = new ArrayList<>(); + List fields = schema.getFields(); + for (int i = 0; i < fields.size(); i++) { + vectors.add(fields.get(i).createVector(allocator)); + arrowNameToIndex.put( + fields.get(i).getName(), + i); // mapping for getting against the field name in the result set + } + root = new VectorSchemaRoot(vectors); + loader = new VectorLoader(root); + } + + /** @param batch object returned from the ReadRowsResponse. */ + private void processRows( + ArrowRecordBatch batch, BlockingQueue buffer, Schema schema) + throws IOException { // deserialize the values and consume the hash of the values + try { + org.apache.arrow.vector.ipc.message.ArrowRecordBatch deserializedBatch = + MessageSerializer.deserializeRecordBatch( + new ReadChannel( + new ByteArrayReadableSeekableByteChannel( + batch.getSerializedRecordBatch().toByteArray())), + allocator); + + loader.load(deserializedBatch); + // Release buffers from batch (they are still held in the vectors in root). + deserializedBatch.close(); + + // Parse the vectors using BQ Schema. Deserialize the data at the row level and add it to + // the + // buffer + FieldList fields = schema.getFields(); + for (int rowNum = 0; + rowNum < root.getRowCount(); + rowNum++) { // for the given number of rows in the batch + + if (Thread.currentThread().isInterrupted() + || queryTaskExecutor.isShutdown()) { // do not process and shutdown + break; // exit the loop, root will be cleared in the finally block + } + + Map curRow = new HashMap<>(); + for (int col = 0; col < fields.size(); col++) { // iterate all the vectors for a given row + com.google.cloud.bigquery.Field field = fields.get(col); + FieldVector curFieldVec = + root.getVector( + field.getName()); // can be accessed using the index or Vector/column name + curRow.put(field.getName(), curFieldVec.getObject(rowNum)); // Added the raw value + } + buffer.put(new BigQueryResultImpl.Row(curRow)); + } + root.clear(); // TODO: make sure to clear the root while implementing the thread + // interruption logic (Connection.close method) + + } catch (RuntimeException | InterruptedException e) { + throw BigQueryException.translateAndThrow(e); + } finally { + try { + root.clear(); + } catch (RuntimeException e) { + logger.log(Level.WARNING, "\n Error while clearing VectorSchemaRoot ", e); + } + } + } + + @Override + public void close() { + root.close(); + allocator.close(); + } + } + /*Returns just the first page of GetQueryResultsResponse using the jobId*/ + @VisibleForTesting + GetQueryResultsResponse getQueryResultsFirstPage(JobId jobId) { + JobId completeJobId = + jobId + .setProjectId(bigQueryOptions.getProjectId()) + .setLocation( + jobId.getLocation() == null && bigQueryOptions.getLocation() != null + ? bigQueryOptions.getLocation() + : jobId.getLocation()); + try { + GetQueryResultsResponse results = + BigQueryRetryHelper.runWithRetries( + () -> + bigQueryRpc.getQueryResultsWithRowLimit( + completeJobId.getProject(), + completeJobId.getJob(), + completeJobId.getLocation(), + connectionSettings.getMaxResultPerPage()), + bigQueryOptions.getRetrySettings(), + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getClock(), + retryConfig); + + if (results.getErrors() != null) { + List bigQueryErrors = + results.getErrors().stream() + .map(BigQueryError.FROM_PB_FUNCTION) + .collect(Collectors.toList()); + // Throwing BigQueryException since there may be no JobId and we want to stay consistent + // with the case where there there is a HTTP error + throw new BigQueryException(bigQueryErrors); + } + return results; + } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } + + @VisibleForTesting + boolean isFastQuerySupported() { + // TODO: add regex logic to check for scripting + return connectionSettings.getClustering() == null + && connectionSettings.getCreateDisposition() == null + && connectionSettings.getDestinationEncryptionConfiguration() == null + && connectionSettings.getDestinationTable() == null + && connectionSettings.getJobTimeoutMs() == null + && connectionSettings.getMaximumBillingTier() == null + && connectionSettings.getPriority() == null + && connectionSettings.getRangePartitioning() == null + && connectionSettings.getSchemaUpdateOptions() == null + && connectionSettings.getTableDefinitions() == null + && connectionSettings.getTimePartitioning() == null + && connectionSettings.getUserDefinedFunctions() == null + && connectionSettings.getWriteDisposition() == null; + } + + @VisibleForTesting + boolean useReadAPI(Long totalRows, Long pageRows, Schema schema, Boolean hasQueryParameters) { + + // TODO(prasmish) get this logic review - totalRows and pageRows are returned null when the job + // is not complete + if ((totalRows == null || pageRows == null) + && Boolean.TRUE.equals( + connectionSettings + .getUseReadAPI())) { // totalRows and pageRows are returned null when the job is not + // complete + return true; + } + + // Schema schema = Schema.fromPb(tableSchema); + // Read API does not yet support Interval Type or QueryParameters + if (containsIntervalType(schema) || hasQueryParameters) { + logger.log(Level.INFO, "\n Schema has IntervalType, or QueryParameters. Disabling ReadAPI"); + return false; + } + + long resultRatio = totalRows / pageRows; + if (Boolean.TRUE.equals(connectionSettings.getUseReadAPI())) { + return resultRatio >= connectionSettings.getTotalToPageRowCountRatio() + && totalRows > connectionSettings.getMinResultSize(); + } else { + return false; + } + } + + // Does a BFS iteration to find out if there's an interval type in the schema. Implementation to + // be used until ReadAPI supports IntervalType + private boolean containsIntervalType(Schema schema) { + Queue fields = + new LinkedList(schema.getFields()); + while (!fields.isEmpty()) { + com.google.cloud.bigquery.Field curField = fields.poll(); + if (curField.getType().getStandardType() == StandardSQLTypeName.INTERVAL) { + return true; + } else if (curField.getType().getStandardType() == StandardSQLTypeName.STRUCT + || curField.getType().getStandardType() == StandardSQLTypeName.ARRAY) { + fields.addAll(curField.getSubFields()); + } + } + return false; + } + + // Used for job.query API endpoint + @VisibleForTesting + QueryRequest createQueryRequest( + ConnectionSettings connectionSettings, + String sql, + List queryParameters, + Map labels) { + QueryRequest content = new QueryRequest(); + String requestId = UUID.randomUUID().toString(); + + if (connectionSettings.getConnectionProperties() != null) { + content.setConnectionProperties( + connectionSettings.getConnectionProperties().stream() + .map(ConnectionProperty.TO_PB_FUNCTION) + .collect(Collectors.toList())); + } + if (connectionSettings.getDefaultDataset() != null) { + content.setDefaultDataset(connectionSettings.getDefaultDataset().toPb()); + } + if (connectionSettings.getMaximumBytesBilled() != null) { + content.setMaximumBytesBilled(connectionSettings.getMaximumBytesBilled()); + } + if (connectionSettings.getMaxResults() != null) { + content.setMaxResults(connectionSettings.getMaxResults()); + } + if (queryParameters != null) { + // content.setQueryParameters(queryParameters); + if (queryParameters.get(0).getName() == null) { + // If query parameter name is unset, then assume mode is positional + content.setParameterMode("POSITIONAL"); + // pass query parameters + List queryParametersPb = + Lists.transform(queryParameters, POSITIONAL_PARAMETER_TO_PB_FUNCTION); + content.setQueryParameters(queryParametersPb); + } else { + content.setParameterMode("NAMED"); + // pass query parameters + List queryParametersPb = + Lists.transform(queryParameters, NAMED_PARAMETER_TO_PB_FUNCTION); + content.setQueryParameters(queryParametersPb); + } + } + if (connectionSettings.getCreateSession() != null) { + content.setCreateSession(connectionSettings.getCreateSession()); + } + if (labels != null) { + content.setLabels(labels); + } + content.setQuery(sql); + content.setRequestId(requestId); + // The new Connection interface only supports StandardSQL dialect + content.setUseLegacySql(false); + return content; + } + + // Used by jobs.getQueryResults API endpoint + @VisibleForTesting + com.google.api.services.bigquery.model.Job createQueryJob( + String sql, + ConnectionSettings connectionSettings, + List queryParameters, + Map labels) { + com.google.api.services.bigquery.model.JobConfiguration configurationPb = + new com.google.api.services.bigquery.model.JobConfiguration(); + JobConfigurationQuery queryConfigurationPb = new JobConfigurationQuery(); + queryConfigurationPb.setQuery(sql); + if (queryParameters != null) { + if (queryParameters.get(0).getName() == null) { + // If query parameter name is unset, then assume mode is positional + queryConfigurationPb.setParameterMode("POSITIONAL"); + // pass query parameters + List queryParametersPb = + Lists.transform(queryParameters, POSITIONAL_PARAMETER_TO_PB_FUNCTION); + queryConfigurationPb.setQueryParameters(queryParametersPb); + } else { + queryConfigurationPb.setParameterMode("NAMED"); + // pass query parameters + List queryParametersPb = + Lists.transform(queryParameters, NAMED_PARAMETER_TO_PB_FUNCTION); + queryConfigurationPb.setQueryParameters(queryParametersPb); + } + } + if (connectionSettings.getDestinationTable() != null) { + queryConfigurationPb.setDestinationTable(connectionSettings.getDestinationTable().toPb()); + } + if (connectionSettings.getTableDefinitions() != null) { + queryConfigurationPb.setTableDefinitions( + Maps.transformValues( + connectionSettings.getTableDefinitions(), + ExternalTableDefinition.TO_EXTERNAL_DATA_FUNCTION)); + } + if (connectionSettings.getUserDefinedFunctions() != null) { + queryConfigurationPb.setUserDefinedFunctionResources( + connectionSettings.getUserDefinedFunctions().stream() + .map(UserDefinedFunction.TO_PB_FUNCTION) + .collect(Collectors.toList())); + } + if (connectionSettings.getCreateDisposition() != null) { + queryConfigurationPb.setCreateDisposition( + connectionSettings.getCreateDisposition().toString()); + } + if (connectionSettings.getWriteDisposition() != null) { + queryConfigurationPb.setWriteDisposition(connectionSettings.getWriteDisposition().toString()); + } + if (connectionSettings.getDefaultDataset() != null) { + queryConfigurationPb.setDefaultDataset(connectionSettings.getDefaultDataset().toPb()); + } + if (connectionSettings.getPriority() != null) { + queryConfigurationPb.setPriority(connectionSettings.getPriority().toString()); + } + if (connectionSettings.getAllowLargeResults() != null) { + queryConfigurationPb.setAllowLargeResults(connectionSettings.getAllowLargeResults()); + } + if (connectionSettings.getUseQueryCache() != null) { + queryConfigurationPb.setUseQueryCache(connectionSettings.getUseQueryCache()); + } + if (connectionSettings.getFlattenResults() != null) { + queryConfigurationPb.setFlattenResults(connectionSettings.getFlattenResults()); + } + if (connectionSettings.getMaximumBillingTier() != null) { + queryConfigurationPb.setMaximumBillingTier(connectionSettings.getMaximumBillingTier()); + } + if (connectionSettings.getMaximumBytesBilled() != null) { + queryConfigurationPb.setMaximumBytesBilled(connectionSettings.getMaximumBytesBilled()); + } + if (connectionSettings.getSchemaUpdateOptions() != null) { + ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); + for (JobInfo.SchemaUpdateOption schemaUpdateOption : + connectionSettings.getSchemaUpdateOptions()) { + schemaUpdateOptionsBuilder.add(schemaUpdateOption.name()); + } + queryConfigurationPb.setSchemaUpdateOptions(schemaUpdateOptionsBuilder.build()); + } + if (connectionSettings.getDestinationEncryptionConfiguration() != null) { + queryConfigurationPb.setDestinationEncryptionConfiguration( + connectionSettings.getDestinationEncryptionConfiguration().toPb()); + } + if (connectionSettings.getTimePartitioning() != null) { + queryConfigurationPb.setTimePartitioning(connectionSettings.getTimePartitioning().toPb()); + } + if (connectionSettings.getClustering() != null) { + queryConfigurationPb.setClustering(connectionSettings.getClustering().toPb()); + } + if (connectionSettings.getRangePartitioning() != null) { + queryConfigurationPb.setRangePartitioning(connectionSettings.getRangePartitioning().toPb()); + } + if (connectionSettings.getConnectionProperties() != null) { + queryConfigurationPb.setConnectionProperties( + connectionSettings.getConnectionProperties().stream() + .map(ConnectionProperty.TO_PB_FUNCTION) + .collect(Collectors.toList())); + } + if (connectionSettings.getCreateSession() != null) { + queryConfigurationPb.setCreateSession(connectionSettings.getCreateSession()); + } + if (connectionSettings.getJobTimeoutMs() != null) { + configurationPb.setJobTimeoutMs(connectionSettings.getJobTimeoutMs()); + } + if (labels != null) { + configurationPb.setLabels(labels); + } + // The new Connection interface only supports StandardSQL dialect + queryConfigurationPb.setUseLegacySql(false); + configurationPb.setQuery(queryConfigurationPb); + + com.google.api.services.bigquery.model.Job jobPb = + JobInfo.of(QueryJobConfiguration.fromPb(configurationPb)).toPb(); + com.google.api.services.bigquery.model.Job queryJob; + try { + queryJob = + BigQueryRetryHelper.runWithRetries( + () -> bigQueryRpc.createJobForQuery(jobPb), + bigQueryOptions.getRetrySettings(), + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getClock(), + retryConfig); + } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + return queryJob; + } + + // Used by dryRun + private com.google.api.services.bigquery.model.Job createDryRunJob(String sql) { + com.google.api.services.bigquery.model.JobConfiguration configurationPb = + new com.google.api.services.bigquery.model.JobConfiguration(); + configurationPb.setDryRun(true); + JobConfigurationQuery queryConfigurationPb = new JobConfigurationQuery(); + String parameterMode = sql.contains("?") ? "POSITIONAL" : "NAMED"; + queryConfigurationPb.setParameterMode(parameterMode); + queryConfigurationPb.setQuery(sql); + // UndeclaredQueryParameter is only supported in StandardSQL + queryConfigurationPb.setUseLegacySql(false); + if (connectionSettings.getDefaultDataset() != null) { + queryConfigurationPb.setDefaultDataset(connectionSettings.getDefaultDataset().toPb()); + } + if (connectionSettings.getCreateSession() != null) { + queryConfigurationPb.setCreateSession(connectionSettings.getCreateSession()); + } + configurationPb.setQuery(queryConfigurationPb); + + com.google.api.services.bigquery.model.Job jobPb = + JobInfo.of(QueryJobConfiguration.fromPb(configurationPb)).toPb(); + + com.google.api.services.bigquery.model.Job dryRunJob; + try { + dryRunJob = + BigQueryRetryHelper.runWithRetries( + () -> bigQueryRpc.createJobForQuery(jobPb), + bigQueryOptions.getRetrySettings(), + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getClock(), + retryConfig); + } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + return dryRunJob; + } + + // Convert from Parameter wrapper class to positional QueryParameter generated class + private static final Function POSITIONAL_PARAMETER_TO_PB_FUNCTION = + value -> { + QueryParameter queryParameterPb = new QueryParameter(); + queryParameterPb.setParameterValue(value.getValue().toValuePb()); + queryParameterPb.setParameterType(value.getValue().toTypePb()); + return queryParameterPb; + }; + + // Convert from Parameter wrapper class to name QueryParameter generated class + private static final Function NAMED_PARAMETER_TO_PB_FUNCTION = + value -> { + QueryParameter queryParameterPb = new QueryParameter(); + queryParameterPb.setName(value.getName()); + queryParameterPb.setParameterValue(value.getValue().toValuePb()); + queryParameterPb.setParameterType(value.getValue().toTypePb()); + return queryParameterPb; + }; + + // Convert from QueryParameter class to the Parameter wrapper class + private static final Function QUERY_PARAMETER_FROM_PB_FUNCTION = + pb -> + Parameter.newBuilder() + .setName(pb.getName() == null ? "" : pb.getName()) + .setValue(QueryParameterValue.fromPb(pb.getParameterValue(), pb.getParameterType())) + .build(); +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java new file mode 100644 index 000000000000..ac3b1b1e05ad --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java @@ -0,0 +1,453 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import com.google.cloud.bigquery.JobInfo.CreateDisposition; +import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.QueryJobConfiguration.Priority; +import java.util.List; +import java.util.Map; +import javax.annotation.Nullable; + +/** ConnectionSettings for setting up a BigQuery query connection. */ +@AutoValue +public abstract class ConnectionSettings { + ConnectionSettings() { + // Package private so users can't subclass it but AutoValue can. + } + + /** + * Returns useReadAPI flag, enabled by default. Read API will be used if the underlying conditions + * are satisfied and this flag is enabled + */ + @Nullable + public abstract Boolean getUseReadAPI(); + + /** Returns the synchronous response timeoutMs associated with this query */ + @Nullable + public abstract Long getRequestTimeout(); + + /** Returns the connection properties for connection string with this query */ + @Nullable + public abstract List getConnectionProperties(); + + /** Returns the default dataset */ + @Nullable + public abstract DatasetId getDefaultDataset(); + + /** Returns the limits the bytes billed for this job */ + @Nullable + public abstract Long getMaximumBytesBilled(); + + /** Returns the maximum number of rows of data */ + @Nullable + public abstract Long getMaxResults(); + + /** Returns the number of rows of data to pre-fetch */ + @Nullable + public abstract Integer getNumBufferedRows(); + + @Nullable + public abstract Integer getTotalToPageRowCountRatio(); + + @Nullable + public abstract Integer getMinResultSize(); + + @Nullable + public abstract Integer getMaxResultPerPage(); + + /** Returns whether to look for the result in the query cache */ + @Nullable + public abstract Boolean getUseQueryCache(); + + /** + * Returns whether nested and repeated fields should be flattened. If set to {@code false} {@link + * ConnectionSettings.Builder#setAllowLargeResults(Boolean)} must be {@code true}. + * + * @see Flatten + */ + @Nullable + public abstract Boolean getFlattenResults(); + + /** + * Returns the BigQuery Storage read API configuration @Nullable public abstract + * ReadClientConnectionConfiguration getReadClientConnectionConfiguration(); + */ + + /** + * Below properties are only supported by jobs.insert API and not yet supported by jobs.query API + * * + */ + + /** Returns the clustering specification for the destination table. */ + @Nullable + public abstract Clustering getClustering(); + + /** + * Returns whether the job is allowed to create new tables. + * + * @see + * Create Disposition + */ + @Nullable + public abstract CreateDisposition getCreateDisposition(); + + /** Returns the custom encryption configuration (e.g., Cloud KMS keys) */ + @Nullable + public abstract EncryptionConfiguration getDestinationEncryptionConfiguration(); + + /** + * Returns the table where to put query results. If not provided a new table is created. This + * value is required if {@link # allowLargeResults()} is {@code true}. + */ + @Nullable + public abstract TableId getDestinationTable(); + + /** Returns the timeout associated with this job */ + @Nullable + public abstract Long getJobTimeoutMs(); + + /** Returns the optional billing tier limit for this job. */ + @Nullable + public abstract Integer getMaximumBillingTier(); + + /** Returns the query priority. */ + @Nullable + public abstract Priority getPriority(); + + /** + * Returns whether the job is enabled to create arbitrarily large results. If {@code true} the + * query is allowed to create large results at a slight cost in performance. the query is allowed + * to create large results at a slight cost in performance. + * + * @see Returning + * Large Query Results + */ + @Nullable + public abstract Boolean getAllowLargeResults(); + + /** + * Returns whether to create a new session. + * + * @see Create Sessions + */ + @Nullable + public abstract Boolean getCreateSession(); + + /** Returns the range partitioning specification for the table */ + @Nullable + public abstract RangePartitioning getRangePartitioning(); + + /** + * [Experimental] Returns options allowing the schema of the destination table to be updated as a + * side effect of the query job. Schema update options are supported in two cases: when + * writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination + * table is a partition of a table, specified by partition decorators. For normal tables, + * WRITE_TRUNCATE will always overwrite the schema. + */ + @Nullable + public abstract List getSchemaUpdateOptions(); + + /** + * Returns the external tables definitions. If querying external data sources outside of BigQuery, + * this value describes the data format, location and other properties of the data sources. By + * defining these properties, the data sources can be queried as if they were standard BigQuery + * tables. + */ + @Nullable + public abstract Map getTableDefinitions(); + + /** Returns the time partitioning specification for the destination table. */ + @Nullable + public abstract TimePartitioning getTimePartitioning(); + + /** + * Returns user defined function resources that can be used by this query. Function resources can + * either be defined inline ({@link UserDefinedFunction.Type#INLINE}) or loaded from a Google + * Cloud Storage URI ({@link UserDefinedFunction.Type#FROM_URI}. + */ + @Nullable + public abstract List getUserDefinedFunctions(); + + /** + * Returns the action that should occur if the destination table already exists. + * + * @see + * Write Disposition + */ + @Nullable + public abstract WriteDisposition getWriteDisposition(); + + /** Returns a builder pre-populated using the current values of this field. */ + public abstract Builder toBuilder(); + + /** Returns a builder for a {@code ConnectionSettings} object. */ + public static Builder newBuilder() { + return new AutoValue_ConnectionSettings.Builder().withDefaultValues(); + } + + @AutoValue.Builder + public abstract static class Builder { + + Builder withDefaultValues() { + return setUseReadAPI(true) // Read API is enabled by default + .setNumBufferedRows(10000) // 10K records will be kept in the buffer (Blocking Queue) + .setMinResultSize(200000) // Read API will be enabled when there are at least 100K records + .setTotalToPageRowCountRatio(3) // there should be at least 3 pages of records + .setMaxResultPerPage(100000); // page size for pagination + } + + /** + * Sets useReadAPI flag, enabled by default. Read API will be used if the underlying conditions + * are satisfied and this flag is enabled + * + * @param useReadAPI or {@code true} for none + */ + @Nullable + public abstract Builder setUseReadAPI(Boolean useReadAPI); + + /** + * Sets how long to wait for the query to complete, in milliseconds, before the request times + * out and returns. Note that this is only a timeout for the request, not the query. If the + * query takes longer to run than the timeout value, the call returns without any results and + * with the 'jobComplete' flag set to false. You can call GetQueryResults() to wait for the + * query to complete and read the results. The default value is 10000 milliseconds (10 seconds). + * + * @param timeoutMs or {@code null} for none + */ + public abstract Builder setRequestTimeout(Long timeoutMs); + + /** + * Sets a connection-level property to customize query behavior. + * + * @param connectionProperties connectionProperties or {@code null} for none + */ + public abstract Builder setConnectionProperties(List connectionProperties); + + /** + * Sets the default dataset. This dataset is used for all unqualified table names used in the + * query. + */ + public abstract Builder setDefaultDataset(DatasetId datasetId); + + /** + * Limits the bytes billed for this job. Queries that will have bytes billed beyond this limit + * will fail (without incurring a charge). If unspecified, this will be set to your project + * default. + * + * @param maximumBytesBilled maximum bytes billed for this job + */ + public abstract Builder setMaximumBytesBilled(Long maximumBytesBilled); + + /** + * Sets the maximum number of rows of data to return per page of results. Setting this flag to a + * small value such as 1000 and then paging through results might improve reliability when the + * query result set is large. In addition to this limit, responses are also limited to 10 MB. By + * default, there is no maximum row count, and only the byte limit applies. + * + * @param maxResults maxResults or {@code null} for none + */ + public abstract Builder setMaxResults(Long maxResults); + + /** + * Sets the number of rows in the buffer (a blocking queue) that query results are consumed + * from. + * + * @param numBufferedRows numBufferedRows or {@code null} for none + */ + public abstract Builder setNumBufferedRows(Integer numBufferedRows); + + /** + * Sets a ratio of the total number of records and the records returned in the current page. + * This value is checked before calling the Read API + * + * @param totalToPageRowCountRatio totalToPageRowCountRatio + */ + public abstract Builder setTotalToPageRowCountRatio(Integer totalToPageRowCountRatio); + + /** + * Sets the minimum result size for which the Read API will be enabled + * + * @param minResultSize minResultSize + */ + public abstract Builder setMinResultSize(Integer minResultSize); + + /** + * Sets the maximum records per page to be used for pagination. This is used as an input for the + * tabledata.list and jobs.getQueryResults RPC calls + * + * @param maxResultPerPage + */ + public abstract Builder setMaxResultPerPage(Integer maxResultPerPage); + + /** + * Sets whether to look for the result in the query cache. The query cache is a best-effort + * cache that will be flushed whenever tables in the query are modified. Moreover, the query + * cache is only available when {@link ConnectionSettings.Builder#setDestinationTable(TableId)} + * is not set. + * + * @see Query Caching + */ + public abstract Builder setUseQueryCache(Boolean useQueryCache); + + /** + * Sets whether nested and repeated fields should be flattened. If set to {@code false} {@link + * ConnectionSettings.Builder#setAllowLargeResults(Boolean)} must be {@code true}. By default + * results are flattened. + * + * @see Flatten + */ + public abstract Builder setFlattenResults(Boolean flattenResults); + + /* */ + /**/ + /** + * Sets the values necessary to determine whether table result will be read using the BigQuery + * Storage client Read API. The BigQuery Storage client Read API will be used to read the query + * result when the totalToFirstPageSizeRatio (default 3) and minimumTableSize (default 100 rows) + * conditions set are met. A ReadSession will be created using the Apache Arrow data format for + * serialization. + * + *

    It also sets the maximum number of table rows allowed in buffer before streaming them to + * the BigQueryResult. + * + * @param readClientConnectionConfiguration or {@code null} for none + */ + /* + public abstract Builder setReadClientConnectionConfiguration( + ReadClientConnectionConfiguration readClientConnectionConfiguration);*/ + + /** Sets the clustering specification for the destination table. */ + public abstract Builder setClustering(Clustering clustering); + + /** + * Sets whether the job is allowed to create tables. + * + * @see + * Create Disposition + */ + public abstract Builder setCreateDisposition(CreateDisposition createDisposition); + + /** + * Sets the custom encryption configuration (e.g., Cloud KMS keys). + * + * @param destinationEncryptionConfiguration destinationEncryptionConfiguration or {@code null} + * for none + */ + public abstract Builder setDestinationEncryptionConfiguration( + EncryptionConfiguration destinationEncryptionConfiguration); + + /** + * Sets the table where to put query results. If not provided a new table is created. This value + * is required if {@link ConnectionSettings.Builder#setAllowLargeResults(Boolean)} is set to + * {@code true}. + */ + public abstract Builder setDestinationTable(TableId destinationTable); + + /** + * [Optional] Job timeout in milliseconds. If this time limit is exceeded, BigQuery may attempt + * to terminate the job. + * + * @param jobTimeoutMs jobTimeoutMs or {@code null} for none + */ + public abstract Builder setJobTimeoutMs(Long jobTimeoutMs); + + /** + * Limits the billing tier for this job. Queries that have resource usage beyond this tier will + * fail (without incurring a charge). If unspecified, this will be set to your project default. + * + * @param maximumBillingTier maximum billing tier for this job + */ + public abstract Builder setMaximumBillingTier(Integer maximumBillingTier); + + /** + * Sets a priority for the query. If not specified the priority is assumed to be {@link + * Priority#INTERACTIVE}. + */ + public abstract Builder setPriority(Priority priority); + + /** + * Sets whether the job is enabled to create arbitrarily large results. If {@code true} the + * query is allowed to create large results at a slight cost in performance. If {@code true} + * {@link ConnectionSettings.Builder#setDestinationTable(TableId)} must be provided. + * + * @see Returning + * Large Query Results + */ + public abstract Builder setAllowLargeResults(Boolean allowLargeResults); + + /** + * Sets whether to create a new session. If {@code true} a random session id will be generated + * by BigQuery. If false, runs query with an existing session_id passed in ConnectionProperty, + * otherwise runs query in non-session mode." + */ + public abstract Builder setCreateSession(Boolean createSession); + + /** + * Range partitioning specification for this table. Only one of timePartitioning and + * rangePartitioning should be specified. + * + * @param rangePartitioning rangePartitioning or {@code null} for none + */ + public abstract Builder setRangePartitioning(RangePartitioning rangePartitioning); + + /** + * [Experimental] Sets options allowing the schema of the destination table to be updated as a + * side effect of the query job. Schema update options are supported in two cases: when + * writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination + * table is a partition of a table, specified by partition decorators. For normal tables, + * WRITE_TRUNCATE will always overwrite the schema. + */ + public abstract Builder setSchemaUpdateOptions(List schemaUpdateOptions); + + /** + * Sets the external tables definitions. If querying external data sources outside of BigQuery, + * this value describes the data format, location and other properties of the data sources. By + * defining these properties, the data sources can be queried as if they were standard BigQuery + * tables. + */ + public abstract Builder setTableDefinitions( + Map tableDefinitions); + + /** Sets the time partitioning specification for the destination table. */ + public abstract Builder setTimePartitioning(TimePartitioning timePartitioning); + + /** + * Sets user defined function resources that can be used by this query. Function resources can + * either be defined inline ({@link UserDefinedFunction#inline(String)}) or loaded from a Google + * Cloud Storage URI ({@link UserDefinedFunction#fromUri(String)}. + */ + public abstract Builder setUserDefinedFunctions(List userDefinedFunctions); + + /** + * Sets the action that should occur if the destination table already exists. + * + * @see + * Write Disposition + */ + public abstract Builder setWriteDisposition(WriteDisposition writeDisposition); + + /** Creates a {@code ConnectionSettings} object. */ + public abstract ConnectionSettings build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index ab9fdabb39d4..0ef1d1f947b8 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -21,6 +21,7 @@ import com.google.api.services.bigquery.model.JobStatistics2; import com.google.api.services.bigquery.model.JobStatistics3; import com.google.api.services.bigquery.model.JobStatistics4; +import com.google.api.services.bigquery.model.QueryParameter; import com.google.cloud.StringEnumType; import com.google.cloud.StringEnumValue; import com.google.common.base.Function; @@ -339,6 +340,7 @@ public static class QueryStatistics extends JobStatistics { private final List queryPlan; private final List timeline; private final Schema schema; + private final List queryParameters; /** * StatementType represents possible types of SQL statements reported as part of the @@ -421,6 +423,7 @@ static final class Builder extends JobStatistics.Builder queryPlan; private List timeline; private Schema schema; + private List queryParameters; private Builder() {} @@ -569,6 +572,11 @@ Builder setSchema(Schema schema) { return self(); } + Builder setQueryParameters(List queryParameters) { + this.queryParameters = queryParameters; + return self(); + } + @Override QueryStatistics build() { return new QueryStatistics(this); @@ -595,6 +603,7 @@ private QueryStatistics(Builder builder) { this.queryPlan = builder.queryPlan; this.timeline = builder.timeline; this.schema = builder.schema; + this.queryParameters = builder.queryParameters; } /** Returns query statistics specific to the use of BI Engine. */ @@ -715,6 +724,14 @@ public Schema getSchema() { return schema; } + /** + * Standard SQL only: Returns a list of undeclared query parameters detected during a dry run + * validation. + */ + public List getQueryParameters() { + return queryParameters; + } + @Override ToStringHelper toStringHelper() { return super.toStringHelper() @@ -725,7 +742,8 @@ ToStringHelper toStringHelper() { .add("totalBytesProcessed", totalBytesProcessed) .add("queryPlan", queryPlan) .add("timeline", timeline) - .add("schema", schema); + .add("schema", schema) + .add("queryParameters", queryParameters); } @Override @@ -746,7 +764,8 @@ public final int hashCode() { totalBytesBilled, totalBytesProcessed, queryPlan, - schema); + schema, + queryParameters); } @Override @@ -788,6 +807,9 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { if (schema != null) { queryStatisticsPb.setSchema(schema.toPb()); } + if (queryParameters != null) { + queryStatisticsPb.setUndeclaredQueryParameters(queryParameters); + } return super.toPb().setQuery(queryStatisticsPb); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Parameter.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Parameter.java new file mode 100644 index 000000000000..9959feab91e2 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Parameter.java @@ -0,0 +1,70 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import javax.annotation.Nullable; + +/* Wrapper class for query parameters */ +@AutoValue +public abstract class Parameter { + Parameter() { + // Package private so users can't subclass it but AutoValue can. + } + + /** + * Returns the name of the query parameter. If unset, this is a positional parameter. Otherwise, + * should be unique within a query. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract String getName(); + + /** Returns the value for a query parameter along with its type. */ + public abstract QueryParameterValue getValue(); + + /** Returns a builder pre-populated using the current values of this field. */ + public abstract Builder toBuilder(); + + /** Returns a builder for a {@code Parameter} object. */ + public static Builder newBuilder() { + return new AutoValue_Parameter.Builder(); + } + + @AutoValue.Builder + public abstract static class Builder { + + /** + * [Optional] Sets the name of the query parameter. If unset, this is a positional parameter. + * Otherwise, should be unique within a query. + * + * @param name name or {@code null} for none + */ + public abstract Builder setName(String name); + + /** + * Sets the the value for a query parameter along with its type. + * + * @param parameter parameter or {@code null} for none + */ + public abstract Builder setValue(QueryParameterValue parameter); + + /** Creates a {@code Parameter} object. */ + public abstract Parameter build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index 48ec22cafa10..cc726bdd1566 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -166,6 +166,11 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this(); JobConfigurationQuery queryConfigurationPb = configurationPb.getQuery(); this.query = queryConfigurationPb.getQuery(); + // Allows to get undeclaredqueryparameters in jobstatistics2 + if (queryConfigurationPb.getQueryParameters() == null + && queryConfigurationPb.getParameterMode() != null) { + parameterMode = queryConfigurationPb.getParameterMode(); + } if (queryConfigurationPb.getQueryParameters() != null && !queryConfigurationPb.getQueryParameters().isEmpty()) { if (queryConfigurationPb.getQueryParameters().get(0).getName() == null) { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ReadClientConnectionConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ReadClientConnectionConfiguration.java new file mode 100644 index 000000000000..e0805a11e9ed --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ReadClientConnectionConfiguration.java @@ -0,0 +1,70 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import javax.annotation.Nullable; + +/** Represents BigQueryStorage Read client connection information. */ +@AutoValue +public abstract class ReadClientConnectionConfiguration implements Serializable { + + @AutoValue.Builder + public abstract static class Builder { + + /** + * Sets the total row count to page row count ratio used to determine whether to us the + * BigQueryStorage Read client to fetch result sets after the first page. + */ + @Nullable + public abstract Builder setTotalToPageRowCountRatio(Long ratio); + + /** + * Sets the minimum number of table rows in the query results used to determine whether to us + * the BigQueryStorage Read client to fetch result sets after the first page. + */ + @Nullable + public abstract Builder setMinResultSize(Long numRows); + + /** + * Sets the maximum number of table rows allowed in buffer before streaming them to the + * BigQueryResult. + */ + @Nullable + public abstract Builder setBufferSize(Long bufferSize); + + /** Creates a {@code ReadClientConnectionConfiguration} object. */ + public abstract ReadClientConnectionConfiguration build(); + } + + /** Returns the totalToPageRowCountRatio in this configuration. */ + public abstract Long getTotalToPageRowCountRatio(); + + /** Returns the minResultSize in this configuration. */ + public abstract Long getMinResultSize(); + + /** Returns the bufferSize in this configuration. */ + public abstract Long getBufferSize(); + + public abstract Builder toBuilder(); + + /** Returns a builder for a {@code ReadClientConnectionConfiguration} object. */ + public static Builder newBuilder() { + return new AutoValue_ReadClientConnectionConfiguration.Builder(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index 06488c5b4fac..871590ca4b1a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -122,6 +122,13 @@ Boolean getBoolean(Map options) { */ Job create(Job job, Map options); + /** + * Creates a new query job. + * + * @throws BigQueryException upon failure + */ + Job createJobForQuery(Job job); + /** * Delete the requested dataset. * @@ -246,6 +253,14 @@ TableDataInsertAllResponse insertAll( TableDataList listTableData( String projectId, String datasetId, String tableId, Map options); + /** + * Lists the table's rows with a limit on how many rows of data to pre-fetch. + * + * @throws BigQueryException upon failure + */ + TableDataList listTableDataWithRowLimit( + String projectId, String datasetId, String tableId, Integer rowLimit, String pageToken); + /** * Returns the requested job or {@code null} if not found. * @@ -253,6 +268,13 @@ TableDataList listTableData( */ Job getJob(String projectId, String jobId, String location, Map options); + /** + * Returns the requested query job or {@code null} if not found. + * + * @throws BigQueryException upon failure + */ + Job getQueryJob(String projectId, String jobId, String location); + /** * Lists the project's jobs. * @@ -286,6 +308,15 @@ TableDataList listTableData( GetQueryResultsResponse getQueryResults( String projectId, String jobId, String location, Map options); + /** + * Returns results of the query with a limit on how many rows of data to pre-fetch associated with + * the provided job. + * + * @throws BigQueryException upon failure + */ + GetQueryResultsResponse getQueryResultsWithRowLimit( + String projectId, String jobId, String location, Integer preFetchedRowLimit); + /** * Runs a BigQuery SQL query synchronously and returns query results if the query completes within * a specified timeout. diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 24d7dd6b0b6e..d6b57a3daf78 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -221,6 +221,19 @@ public Job create(Job job, Map options) { } } + @Override + public Job createJobForQuery(Job job) { + try { + String projectId = + job.getJobReference() != null + ? job.getJobReference().getProjectId() + : this.options.getProjectId(); + return bigquery.jobs().insert(projectId, job).setPrettyPrint(false).execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + @Override public boolean deleteDataset(String projectId, String datasetId, Map options) { try { @@ -515,6 +528,26 @@ public TableDataList listTableData( } } + @Override + public TableDataList listTableDataWithRowLimit( + String projectId, + String datasetId, + String tableId, + Integer maxResultPerPage, + String pageToken) { + try { + return bigquery + .tabledata() + .list(projectId, datasetId, tableId) + .setPrettyPrint(false) + .setMaxResults(Long.valueOf(maxResultPerPage)) + .setPageToken(pageToken) + .execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + @Override public Job getJob(String projectId, String jobId, String location, Map options) { try { @@ -534,6 +567,24 @@ public Job getJob(String projectId, String jobId, String location, Map> listJobs(String projectId, Map options) { try { @@ -644,6 +695,22 @@ public GetQueryResultsResponse getQueryResults( } } + @Override + public GetQueryResultsResponse getQueryResultsWithRowLimit( + String projectId, String jobId, String location, Integer maxResultPerPage) { + try { + return bigquery + .jobs() + .getQueryResults(projectId, jobId) + .setPrettyPrint(false) + .setLocation(location) + .setMaxResults(Long.valueOf(maxResultPerPage)) + .execute(); + } catch (IOException ex) { + throw translate(ex); + } + } + @Override public QueryResponse queryRpc(String projectId, QueryRequest content) { try { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java new file mode 100644 index 000000000000..e4fdc9731855 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java @@ -0,0 +1,542 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.*; +import static org.mockito.Mockito.verify; + +import com.google.api.services.bigquery.model.*; +import com.google.api.services.bigquery.model.QueryResponse; +import com.google.cloud.ServiceOptions; +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.spi.BigQueryRpcFactory; +import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.common.collect.ImmutableList; +import java.math.BigInteger; +import java.sql.SQLException; +import java.util.AbstractList; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingDeque; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.class) +public class ConnectionImplTest { + private BigQueryOptions options; + private BigQueryRpcFactory rpcFactoryMock; + private BigQueryRpc bigqueryRpcMock; + private Connection connectionMock; + private BigQuery bigquery; + private ConnectionImpl connection; + private static final String PROJECT = "project"; + private static final String JOB = "job"; + private static final String LOCATION = "US"; + private static final String DEFAULT_TEST_DATASET = "bigquery_test_dataset"; + private static final String PAGE_TOKEN = "ABCD123"; + private static final TableId TABLE_NAME = TableId.of(DEFAULT_TEST_DATASET, PROJECT); + private static final TableCell STRING_CELL = new TableCell().setV("Value"); + private static final TableRow TABLE_ROW = new TableRow().setF(ImmutableList.of(STRING_CELL)); + private static final String SQL_QUERY = + "SELECT county, state_name FROM bigquery_test_dataset.large_data_testing_table limit 2"; + private static final String DRY_RUN_SQL = + "SELECT county, state_name FROM bigquery_test_dataset.large_data_testing_table where country = ?"; + private static final int DEFAULT_PAGE_SIZE = 10000; + private ConnectionSettings connectionSettings; + private static final Schema QUERY_SCHEMA = + Schema.of( + Field.newBuilder("country", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("state_name", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + private static final TableSchema FAST_QUERY_TABLESCHEMA = QUERY_SCHEMA.toPb(); + private static final BigQueryResult BQ_RS_MOCK_RES = + new BigQueryResultImpl(QUERY_SCHEMA, 2, null, null); + + private static final BigQueryResult BQ_RS_MOCK_RES_MULTI_PAGE = + new BigQueryResultImpl(QUERY_SCHEMA, 4, null, null); + + private static final JobId QUERY_JOB = JobId.of(PROJECT, JOB).setLocation(LOCATION); + private static final GetQueryResultsResponse GET_QUERY_RESULTS_RESPONSE = + new GetQueryResultsResponse() + .setJobReference(QUERY_JOB.toPb()) + .setRows(ImmutableList.of(TABLE_ROW)) + .setJobComplete(true) + .setCacheHit(false) + .setPageToken(PAGE_TOKEN) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)) + .setSchema(FAST_QUERY_TABLESCHEMA); + + private BigQueryOptions createBigQueryOptionsForProject( + String project, BigQueryRpcFactory rpcFactory) { + return BigQueryOptions.newBuilder() + .setProjectId(project) + .setServiceRpcFactory(rpcFactory) + .setRetrySettings(ServiceOptions.getNoRetrySettings()) + .build(); + } + + @Before + public void setUp() { + rpcFactoryMock = mock(BigQueryRpcFactory.class); + bigqueryRpcMock = mock(BigQueryRpc.class); + connectionMock = mock(Connection.class); + when(rpcFactoryMock.create(any(BigQueryOptions.class))).thenReturn(bigqueryRpcMock); + options = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); + bigquery = options.getService(); + + connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DEFAULT_TEST_DATASET)) + .setNumBufferedRows(DEFAULT_PAGE_SIZE) + .build(); + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + connection = (ConnectionImpl) bigquery.createConnection(connectionSettings); + assertNotNull(connection); + } + + @Test + public void testFastQuerySinglePage() throws BigQuerySQLException { + com.google.api.services.bigquery.model.QueryResponse mockQueryRes = + new QueryResponse().setSchema(FAST_QUERY_TABLESCHEMA).setJobComplete(true); + when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) + .thenReturn(mockQueryRes); + ConnectionImpl connectionSpy = Mockito.spy(connection); + doReturn(BQ_RS_MOCK_RES) + .when(connectionSpy) + .processQueryResponseResults(any(QueryResponse.class)); + + BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); + assertEquals(res.getTotalRows(), 2); + assertEquals(QUERY_SCHEMA, res.getSchema()); + verify(connectionSpy, times(1)) + .processQueryResponseResults( + any(com.google.api.services.bigquery.model.QueryResponse.class)); + } + + @Test + // NOTE: This doesn't truly paginates. Returns a response while mocking + // processQueryResponseResults + public void testFastQueryMultiplePages() throws BigQuerySQLException { + com.google.api.services.bigquery.model.QueryResponse mockQueryRes = + new QueryResponse() + .setSchema(FAST_QUERY_TABLESCHEMA) + .setJobComplete(true) + .setPageToken(PAGE_TOKEN); + when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) + .thenReturn(mockQueryRes); + ConnectionImpl connectionSpy = Mockito.spy(connection); + + doReturn(BQ_RS_MOCK_RES_MULTI_PAGE) + .when(connectionSpy) + .processQueryResponseResults( + any(com.google.api.services.bigquery.model.QueryResponse.class)); + + BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); + assertEquals(res.getTotalRows(), 4); + assertEquals(QUERY_SCHEMA, res.getSchema()); + verify(connectionSpy, times(1)) + .processQueryResponseResults( + any(com.google.api.services.bigquery.model.QueryResponse.class)); + } + + @Test + public void testClose() throws BigQuerySQLException { + boolean cancelled = connection.close(); + assertTrue(cancelled); + } + + @Test + public void testQueryDryRun() throws BigQuerySQLException { + List queryParametersMock = + ImmutableList.of( + new QueryParameter().setParameterType(new QueryParameterType().setType("STRING"))); + com.google.api.services.bigquery.model.JobStatistics2 queryMock = + new com.google.api.services.bigquery.model.JobStatistics2() + .setSchema(FAST_QUERY_TABLESCHEMA) + .setUndeclaredQueryParameters(queryParametersMock); + com.google.api.services.bigquery.model.JobStatistics jobStatsMock = + new com.google.api.services.bigquery.model.JobStatistics() + .setCreationTime(1234L) + .setStartTime(5678L) + .setQuery(queryMock); + com.google.api.services.bigquery.model.JobConfigurationQuery jobConfigurationQuery = + new com.google.api.services.bigquery.model.JobConfigurationQuery(); + com.google.api.services.bigquery.model.JobConfiguration jobConfig = + new com.google.api.services.bigquery.model.JobConfiguration() + .setQuery(jobConfigurationQuery); + com.google.api.services.bigquery.model.Job mockDryRunJob = + new com.google.api.services.bigquery.model.Job() + .setStatistics(jobStatsMock) + .setConfiguration(jobConfig); + when(bigqueryRpcMock.createJobForQuery(any(com.google.api.services.bigquery.model.Job.class))) + .thenReturn(mockDryRunJob); + BigQueryDryRunResult dryRunResult = connection.dryRun(DRY_RUN_SQL); + assertEquals(1, dryRunResult.getQueryParameters().size()); + assertEquals(QUERY_SCHEMA, dryRunResult.getSchema()); + verify(bigqueryRpcMock, times(1)) + .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); + } + + @Test + public void testParseDataTask() throws InterruptedException { + List tableRows = + ImmutableList.of( + new TableRow() + .setF( + ImmutableList.of( + new TableCell().setV("Value1"), new TableCell().setV("Value2"))), + new TableRow() + .setF( + ImmutableList.of( + new TableCell().setV("Value3"), new TableCell().setV("Value4")))); + + BlockingQueue, Boolean>> pageCache = + new LinkedBlockingDeque<>(2); + BlockingQueue> rpcResponseQueue = new LinkedBlockingDeque<>(2); + rpcResponseQueue.offer(Tuple.of(null, false)); + // This call should populate page cache + ConnectionImpl connectionSpy = Mockito.spy(connection); + connectionSpy.parseRpcDataAsync(tableRows, QUERY_SCHEMA, pageCache, rpcResponseQueue); + Tuple, Boolean> fvlTupple = + pageCache.take(); // wait for the parser thread to parse the data + assertNotNull(fvlTupple); + Iterable iterableFvl = fvlTupple.x(); + int rowCnt = 0; + for (FieldValueList fvl : iterableFvl) { + assertEquals(2, fvl.size()); // both the rows should have 2 fields each + rowCnt++; + } + assertEquals(2, rowCnt); // row rows read + + verify(connectionSpy, times(1)) + .parseRpcDataAsync( + any(List.class), any(Schema.class), any(BlockingQueue.class), any(BlockingQueue.class)); + } + + @Test + public void testPopulateBuffer() throws InterruptedException { + List tableRows = + ImmutableList.of( + new TableRow() + .setF( + ImmutableList.of( + new TableCell().setV("Value1"), new TableCell().setV("Value2"))), + new TableRow() + .setF( + ImmutableList.of( + new TableCell().setV("Value3"), new TableCell().setV("Value4")))); + + BlockingQueue, Boolean>> pageCache = + new LinkedBlockingDeque<>(2); + BlockingQueue> rpcResponseQueue = new LinkedBlockingDeque<>(2); + BlockingQueue> buffer = new LinkedBlockingDeque<>(5); + rpcResponseQueue.offer(Tuple.of(null, false)); + // This call should populate page cache + ConnectionImpl connectionSpy = Mockito.spy(connection); + + connectionSpy.parseRpcDataAsync(tableRows, QUERY_SCHEMA, pageCache, rpcResponseQueue); + + verify(connectionSpy, times(1)) + .parseRpcDataAsync( + any(List.class), any(Schema.class), any(BlockingQueue.class), any(BlockingQueue.class)); + + // now pass the pageCache to populateBuffer method + connectionSpy.populateBufferAsync(rpcResponseQueue, pageCache, buffer); + // check if buffer was populated with two rows async by using the blocking take method + AbstractList fvl1 = buffer.take(); + assertNotNull(fvl1); + assertEquals(2, fvl1.size()); + assertEquals("Value1", fvl1.get(0).getValue().toString()); + assertEquals("Value2", fvl1.get(1).getValue().toString()); + AbstractList fvl2 = buffer.take(); + assertNotNull(fvl2); + assertEquals(2, fvl2.size()); + assertEquals("Value3", fvl2.get(0).getValue().toString()); + assertEquals("Value4", fvl2.get(1).getValue().toString()); + verify(connectionSpy, times(1)) + .populateBufferAsync( + any(BlockingQueue.class), any(BlockingQueue.class), any(BlockingQueue.class)); + } + + @Test + public void testNextPageTask() throws InterruptedException { + BlockingQueue> rpcResponseQueue = new LinkedBlockingDeque<>(2); + TableDataList mockTabledataList = + new TableDataList() + .setPageToken(PAGE_TOKEN) + .setRows(ImmutableList.of(TABLE_ROW)) + .setTotalRows(1L); + ConnectionImpl connectionSpy = Mockito.spy(connection); + doReturn(mockTabledataList) + .when(connectionSpy) + .tableDataListRpc(any(TableId.class), any(String.class)); + connectionSpy.runNextPageTaskAsync(PAGE_TOKEN, TABLE_NAME, rpcResponseQueue); + Tuple tableDataListTuple = rpcResponseQueue.take(); + assertNotNull(tableDataListTuple); + TableDataList tableDataList = tableDataListTuple.x(); + assertNotNull(tableDataList); + assertEquals("ABCD123", tableDataList.getPageToken()); + assertEquals(Long.valueOf(1), tableDataList.getTotalRows()); + verify(connectionSpy, times(1)) + .runNextPageTaskAsync(any(String.class), any(TableId.class), any(BlockingQueue.class)); + } + + @Test + public void testGetQueryResultsFirstPage() { + when(bigqueryRpcMock.getQueryResultsWithRowLimit( + any(String.class), any(String.class), any(String.class), any(Integer.class))) + .thenReturn(GET_QUERY_RESULTS_RESPONSE); + GetQueryResultsResponse response = connection.getQueryResultsFirstPage(QUERY_JOB); + assertNotNull(response); + assertEquals(GET_QUERY_RESULTS_RESPONSE, response); + verify(bigqueryRpcMock, times(1)) + .getQueryResultsWithRowLimit( + any(String.class), any(String.class), any(String.class), any(Integer.class)); + } + + // calls executeSelect with a nonFast query and exercises createQueryJob + @Test + public void testLegacyQuerySinglePage() throws BigQuerySQLException { + ConnectionImpl connectionSpy = Mockito.spy(connection); + com.google.api.services.bigquery.model.Job jobResponseMock = + new com.google.api.services.bigquery.model.Job() + // .setConfiguration(QUERY_JOB.g) + .setJobReference(QUERY_JOB.toPb()) + .setId(JOB) + .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")); + // emulating a legacy query + doReturn(false).when(connectionSpy).isFastQuerySupported(); + doReturn(GET_QUERY_RESULTS_RESPONSE) + .when(connectionSpy) + .getQueryResultsFirstPage(any(JobId.class)); + doReturn(BQ_RS_MOCK_RES) + .when(connectionSpy) + .getSubsequentQueryResultsWithJob( + any(Long.class), + any(Long.class), + any(JobId.class), + any(GetQueryResultsResponse.class), + any(Boolean.class)); + when(bigqueryRpcMock.createJobForQuery(any(com.google.api.services.bigquery.model.Job.class))) + .thenReturn(jobResponseMock); // RPC call in createQueryJob + BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); + assertEquals(res.getTotalRows(), 2); + assertEquals(QUERY_SCHEMA, res.getSchema()); + verify(bigqueryRpcMock, times(1)) + .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); + } + + // exercises getSubsequentQueryResultsWithJob for fast running queries + @Test + public void testFastQueryLongRunning() throws SQLException { + List tableRows = + ImmutableList.of( + new TableRow() + .setF( + ImmutableList.of( + new TableCell().setV("Value1"), new TableCell().setV("Value2"))), + new TableRow() + .setF( + ImmutableList.of( + new TableCell().setV("Value3"), new TableCell().setV("Value4")))); + ConnectionImpl connectionSpy = Mockito.spy(connection); + // emulating a fast query + doReturn(true).when(connectionSpy).isFastQuerySupported(); + doReturn(GET_QUERY_RESULTS_RESPONSE) + .when(connectionSpy) + .getQueryResultsFirstPage(any(JobId.class)); + + doReturn(TABLE_NAME).when(connectionSpy).getDestinationTable(any(JobId.class)); + doReturn(BQ_RS_MOCK_RES) + .when(connectionSpy) + .tableDataList(any(GetQueryResultsResponse.class), any(JobId.class)); + + com.google.api.services.bigquery.model.QueryResponse mockQueryRes = + new QueryResponse() + .setSchema(FAST_QUERY_TABLESCHEMA) + .setJobComplete(false) + .setTotalRows(new BigInteger(String.valueOf(4L))) + .setJobReference(QUERY_JOB.toPb()) + .setRows(tableRows); + when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) + .thenReturn(mockQueryRes); + BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); + assertEquals(res.getTotalRows(), 2); + assertEquals(QUERY_SCHEMA, res.getSchema()); + verify(bigqueryRpcMock, times(1)).queryRpc(any(String.class), any(QueryRequest.class)); + } + + @Test + // Emulates first page response using getQueryResultsFirstPage(jobId) and then subsequent pages + // using getQueryResultsFirstPage(jobId) getSubsequentQueryResultsWithJob( + public void testLegacyQueryMultiplePages() throws SQLException { + ConnectionImpl connectionSpy = Mockito.spy(connection); + com.google.api.services.bigquery.model.JobStatistics jobStatistics = + new com.google.api.services.bigquery.model.JobStatistics(); + // emulating a Legacy query + doReturn(false).when(connectionSpy).isFastQuerySupported(); + doReturn(GET_QUERY_RESULTS_RESPONSE) + .when(connectionSpy) + .getQueryResultsFirstPage(any(JobId.class)); + doReturn(TABLE_NAME).when(connectionSpy).getDestinationTable(any(JobId.class)); + doReturn(BQ_RS_MOCK_RES) + .when(connectionSpy) + .tableDataList(any(GetQueryResultsResponse.class), any(JobId.class)); + com.google.api.services.bigquery.model.Job jobResponseMock = + new com.google.api.services.bigquery.model.Job() + .setJobReference(QUERY_JOB.toPb()) + .setId(JOB) + .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")) + .setStatistics(jobStatistics); + when(bigqueryRpcMock.createJobForQuery(any(com.google.api.services.bigquery.model.Job.class))) + .thenReturn(jobResponseMock); // RPC call in createQueryJob + BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); + assertEquals(res.getTotalRows(), 2); + assertEquals(QUERY_SCHEMA, res.getSchema()); + verify(bigqueryRpcMock, times(1)) + .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); + verify(connectionSpy, times(1)) + .tableDataList(any(GetQueryResultsResponse.class), any(JobId.class)); + } + + @Test + public void testExecuteSelectSlow() throws BigQuerySQLException { + ConnectionImpl connectionSpy = Mockito.spy(connection); + doReturn(false).when(connectionSpy).isFastQuerySupported(); + com.google.api.services.bigquery.model.JobStatistics jobStatistics = + new com.google.api.services.bigquery.model.JobStatistics(); + com.google.api.services.bigquery.model.Job jobResponseMock = + new com.google.api.services.bigquery.model.Job() + .setJobReference(QUERY_JOB.toPb()) + .setId(JOB) + .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")) + .setStatistics(jobStatistics); + + doReturn(jobResponseMock) + .when(connectionSpy) + .createQueryJob(SQL_QUERY, connectionSettings, null, null); + doReturn(GET_QUERY_RESULTS_RESPONSE) + .when(connectionSpy) + .getQueryResultsFirstPage(any(JobId.class)); + doReturn(BQ_RS_MOCK_RES) + .when(connectionSpy) + .getResultSet( + any(GetQueryResultsResponse.class), + any(JobId.class), + any(String.class), + any(Boolean.class)); + BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); + assertEquals(res.getTotalRows(), 2); + assertEquals(QUERY_SCHEMA, res.getSchema()); + verify(connectionSpy, times(1)) + .getResultSet( + any(GetQueryResultsResponse.class), + any(JobId.class), + any(String.class), + any(Boolean.class)); + } + + @Test + public void testExecuteSelectSlowWithParams() throws BigQuerySQLException { + ConnectionImpl connectionSpy = Mockito.spy(connection); + List parameters = new ArrayList<>(); + Map labels = new HashMap<>(); + doReturn(false).when(connectionSpy).isFastQuerySupported(); + com.google.api.services.bigquery.model.JobStatistics jobStatistics = + new com.google.api.services.bigquery.model.JobStatistics(); + com.google.api.services.bigquery.model.Job jobResponseMock = + new com.google.api.services.bigquery.model.Job() + .setJobReference(QUERY_JOB.toPb()) + .setId(JOB) + .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")) + .setStatistics(jobStatistics); + + doReturn(jobResponseMock) + .when(connectionSpy) + .createQueryJob(SQL_QUERY, connectionSettings, parameters, labels); + doReturn(GET_QUERY_RESULTS_RESPONSE) + .when(connectionSpy) + .getQueryResultsFirstPage(any(JobId.class)); + doReturn(BQ_RS_MOCK_RES) + .when(connectionSpy) + .getResultSet( + any(GetQueryResultsResponse.class), + any(JobId.class), + any(String.class), + any(Boolean.class)); + BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY, parameters, labels); + assertEquals(res.getTotalRows(), 2); + assertEquals(QUERY_SCHEMA, res.getSchema()); + verify(connectionSpy, times(1)) + .getResultSet( + any(GetQueryResultsResponse.class), + any(JobId.class), + any(String.class), + any(Boolean.class)); + } + + @Test + public void testGetSubsequentQueryResultsWithJob() { + ConnectionImpl connectionSpy = Mockito.spy(connection); + JobId jobId = mock(JobId.class); + BigQueryResultStats bqRsStats = mock(BigQueryResultStats.class); + doReturn(true) + .when(connectionSpy) + .useReadAPI(any(Long.class), any(Long.class), any(Schema.class), any(Boolean.class)); + doReturn(BQ_RS_MOCK_RES) + .when(connectionSpy) + .highThroughPutRead( + any(TableId.class), any(Long.class), any(Schema.class), any(BigQueryResultStats.class)); + + doReturn(TABLE_NAME).when(connectionSpy).getDestinationTable(any(JobId.class)); + doReturn(bqRsStats).when(connectionSpy).getBigQueryResultSetStats(any(JobId.class)); + BigQueryResult res = + connectionSpy.getSubsequentQueryResultsWithJob( + 10000L, 100L, jobId, GET_QUERY_RESULTS_RESPONSE, false); + assertEquals(res.getTotalRows(), 2); + assertEquals(QUERY_SCHEMA, res.getSchema()); + verify(connectionSpy, times(1)) + .getSubsequentQueryResultsWithJob(10000L, 100L, jobId, GET_QUERY_RESULTS_RESPONSE, false); + } + + @Test + public void testGetPageCacheSize() { + ConnectionImpl connectionSpy = Mockito.spy(connection); + // number of cached pages should be within a range + assertTrue(connectionSpy.getPageCacheSize(10000, QUERY_SCHEMA) >= 3); + assertTrue(connectionSpy.getPageCacheSize(100000000, QUERY_SCHEMA) <= 20); + verify(connectionSpy, times(2)).getPageCacheSize(any(Integer.class), any(Schema.class)); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionSettingsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionSettingsTest.java new file mode 100644 index 000000000000..8523825bcabc --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionSettingsTest.java @@ -0,0 +1,166 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.cloud.bigquery.JobInfo.CreateDisposition; +import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; +import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.QueryJobConfiguration.Priority; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import java.util.List; +import java.util.Map; +import org.junit.Test; + +public class ConnectionSettingsTest { + private static final String TEST_PROJECT_ID = "test-project-id"; + private static final DatasetId DATASET_ID = DatasetId.of("dataset"); + private static final TableId TABLE_ID = TableId.of("dataset", "table"); + private static final Long REQUEST_TIMEOUT = 10l; + private static final Integer NUM_BUFFERED_ROWS = 100; + private static final Long MAX_RESULTS = 1000l; + private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); + private static final String KEY = "time_zone"; + private static final String VALUE = "US/Eastern"; + private static final ConnectionProperty CONNECTION_PROPERTY = + ConnectionProperty.newBuilder().setKey(KEY).setValue(VALUE).build(); + private static final List CONNECTION_PROPERTIES = + ImmutableList.of(CONNECTION_PROPERTY); + private static final Field FIELD_SCHEMA1 = + Field.newBuilder("StringField", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("FieldDescription1") + .build(); + private static final Field FIELD_SCHEMA2 = + Field.newBuilder("IntegerField", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REPEATED) + .setDescription("FieldDescription2") + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2); + private static final Integer MAX_BAD_RECORDS = 42; + private static final Boolean IGNORE_UNKNOWN_VALUES = true; + private static final String COMPRESSION = "GZIP"; + private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder().build(); + private static final ExternalTableDefinition TABLE_CONFIGURATION = + ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) + .setCompression(COMPRESSION) + .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) + .setMaxBadRecords(MAX_BAD_RECORDS) + .build(); + private static final Map TABLE_DEFINITIONS = + ImmutableMap.of("tableName", TABLE_CONFIGURATION); + private static final CreateDisposition CREATE_DISPOSITION = CreateDisposition.CREATE_IF_NEEDED; + private static final WriteDisposition WRITE_DISPOSITION = WriteDisposition.WRITE_APPEND; + private static final Priority PRIORITY = Priority.BATCH; + private static final boolean ALLOW_LARGE_RESULTS = true; + private static final boolean USE_QUERY_CACHE = false; + private static final boolean FLATTEN_RESULTS = true; + private static final Integer MAX_BILLING_TIER = 123; + private static final Long MAX_BYTES_BILL = 12345L; + private static final List SCHEMA_UPDATE_OPTIONS = + ImmutableList.of(SchemaUpdateOption.ALLOW_FIELD_RELAXATION); + private static final List USER_DEFINED_FUNCTIONS = + ImmutableList.of(UserDefinedFunction.inline("Function"), UserDefinedFunction.fromUri("URI")); + private static final EncryptionConfiguration JOB_ENCRYPTION_CONFIGURATION = + EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); + private static final TimePartitioning TIME_PARTITIONING = + TimePartitioning.of(TimePartitioning.Type.DAY); + private static final Clustering CLUSTERING = + Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); + private static final Long TIMEOUT = 10L; + private static final RangePartitioning.Range RANGE = + RangePartitioning.Range.newBuilder().setStart(1L).setInterval(2L).setEnd(10L).build(); + private static final RangePartitioning RANGE_PARTITIONING = + RangePartitioning.newBuilder().setField("IntegerField").setRange(RANGE).build(); + + private static final ConnectionSettings CONNECTION_SETTINGS = + ConnectionSettings.newBuilder() + .setRequestTimeout(REQUEST_TIMEOUT) + .setNumBufferedRows(NUM_BUFFERED_ROWS) + .setMaxResults(MAX_RESULTS) + .setUseQueryCache(USE_QUERY_CACHE) + .setTableDefinitions(TABLE_DEFINITIONS) + .setAllowLargeResults(ALLOW_LARGE_RESULTS) + .setCreateDisposition(CREATE_DISPOSITION) + .setDefaultDataset(DATASET_ID) + .setDestinationTable(TABLE_ID) + .setWriteDisposition(WRITE_DISPOSITION) + .setPriority(PRIORITY) + .setFlattenResults(FLATTEN_RESULTS) + .setUserDefinedFunctions(USER_DEFINED_FUNCTIONS) + .setMaximumBillingTier(MAX_BILLING_TIER) + .setMaximumBytesBilled(MAX_BYTES_BILL) + .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) + .setDestinationEncryptionConfiguration(JOB_ENCRYPTION_CONFIGURATION) + .setTimePartitioning(TIME_PARTITIONING) + .setClustering(CLUSTERING) + .setJobTimeoutMs(TIMEOUT) + .setRangePartitioning(RANGE_PARTITIONING) + .setConnectionProperties(CONNECTION_PROPERTIES) + .build(); + + @Test + public void testToBuilder() { + compareConnectionSettings(CONNECTION_SETTINGS, CONNECTION_SETTINGS.toBuilder().build()); + } + + @Test + public void testToBuilderIncomplete() { + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder().setDefaultDataset(DATASET_ID).build(); + compareConnectionSettings(connectionSettings, connectionSettings.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(REQUEST_TIMEOUT, CONNECTION_SETTINGS.getRequestTimeout()); + assertEquals(NUM_BUFFERED_ROWS, CONNECTION_SETTINGS.getNumBufferedRows()); + assertEquals(MAX_RESULTS, CONNECTION_SETTINGS.getMaxResults()); + } + + private void compareConnectionSettings(ConnectionSettings expected, ConnectionSettings value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getRequestTimeout(), value.getRequestTimeout()); + assertEquals(expected.getNumBufferedRows(), value.getNumBufferedRows()); + assertEquals(expected.getMaxResults(), value.getMaxResults()); + assertEquals(expected.getAllowLargeResults(), value.getAllowLargeResults()); + assertEquals(expected.getCreateDisposition(), value.getCreateDisposition()); + assertEquals(expected.getDefaultDataset(), value.getDefaultDataset()); + assertEquals(expected.getDestinationTable(), value.getDestinationTable()); + assertEquals(expected.getFlattenResults(), value.getFlattenResults()); + assertEquals(expected.getPriority(), value.getPriority()); + assertEquals(expected.getTableDefinitions(), value.getTableDefinitions()); + assertEquals(expected.getUseQueryCache(), value.getUseQueryCache()); + assertEquals(expected.getUserDefinedFunctions(), value.getUserDefinedFunctions()); + assertEquals(expected.getWriteDisposition(), value.getWriteDisposition()); + assertEquals(expected.getMaximumBillingTier(), value.getMaximumBillingTier()); + assertEquals(expected.getMaximumBytesBilled(), value.getMaximumBytesBilled()); + assertEquals(expected.getSchemaUpdateOptions(), value.getSchemaUpdateOptions()); + assertEquals( + expected.getDestinationEncryptionConfiguration(), + value.getDestinationEncryptionConfiguration()); + assertEquals(expected.getTimePartitioning(), value.getTimePartitioning()); + assertEquals(expected.getClustering(), value.getClustering()); + assertEquals(expected.getJobTimeoutMs(), value.getJobTimeoutMs()); + assertEquals(expected.getRangePartitioning(), value.getRangePartitioning()); + assertEquals(expected.getConnectionProperties(), value.getConnectionProperties()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index f3b60cebe72d..348749b46783 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -49,10 +49,15 @@ import com.google.cloud.bigquery.BigQuery.JobOption; import com.google.cloud.bigquery.BigQuery.TableField; import com.google.cloud.bigquery.BigQuery.TableOption; +import com.google.cloud.bigquery.BigQueryDryRunResult; import com.google.cloud.bigquery.BigQueryError; import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryResult; +import com.google.cloud.bigquery.BigQuerySQLException; import com.google.cloud.bigquery.Clustering; +import com.google.cloud.bigquery.Connection; import com.google.cloud.bigquery.ConnectionProperty; +import com.google.cloud.bigquery.ConnectionSettings; import com.google.cloud.bigquery.CopyJobConfiguration; import com.google.cloud.bigquery.Dataset; import com.google.cloud.bigquery.DatasetId; @@ -62,6 +67,7 @@ import com.google.cloud.bigquery.Field; import com.google.cloud.bigquery.FieldList; import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.FieldValue.Attribute; import com.google.cloud.bigquery.FieldValueList; import com.google.cloud.bigquery.FormatOptions; import com.google.cloud.bigquery.HivePartitioningOptions; @@ -72,6 +78,9 @@ import com.google.cloud.bigquery.JobInfo; import com.google.cloud.bigquery.JobStatistics; import com.google.cloud.bigquery.JobStatistics.LoadStatistics; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics.StatementType; +import com.google.cloud.bigquery.JobStatistics.SessionInfo; import com.google.cloud.bigquery.JobStatistics.TransactionInfo; import com.google.cloud.bigquery.LegacySQLTypeName; import com.google.cloud.bigquery.LoadJobConfiguration; @@ -79,6 +88,7 @@ import com.google.cloud.bigquery.Model; import com.google.cloud.bigquery.ModelId; import com.google.cloud.bigquery.ModelInfo; +import com.google.cloud.bigquery.Parameter; import com.google.cloud.bigquery.ParquetOptions; import com.google.cloud.bigquery.PolicyTags; import com.google.cloud.bigquery.QueryJobConfiguration; @@ -129,7 +139,11 @@ import java.math.BigDecimal; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Time; import java.time.Instant; +import java.time.LocalTime; import java.time.Period; import java.util.ArrayList; import java.util.Collection; @@ -273,6 +287,103 @@ public class ITBigQueryTest { BIGNUMERIC_FIELD_SCHEMA3, BIGNUMERIC_FIELD_SCHEMA4); + private static final Schema BQ_RESULTSET_SCHEMA = + Schema.of( + Field.newBuilder("TimestampField", StandardSQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .setDescription("TimestampDescription") + .build(), + Field.newBuilder("StringField", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("StringDescription") + .build(), + Field.newBuilder("IntegerArrayField", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.REPEATED) + .setDescription("IntegerArrayDescription") + .build(), + Field.newBuilder("BooleanField", StandardSQLTypeName.BOOL) + .setMode(Field.Mode.NULLABLE) + .setDescription("BooleanDescription") + .build(), + Field.newBuilder("BytesField", StandardSQLTypeName.BYTES) + .setMode(Field.Mode.NULLABLE) + .setDescription("BytesDescription") + .build(), + Field.newBuilder( + "RecordField", + StandardSQLTypeName.STRUCT, + Field.newBuilder("TimestampField", StandardSQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .setDescription("TimestampDescription") + .build(), + Field.newBuilder("StringField", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("StringDescription") + .build(), + Field.newBuilder("IntegerArrayField", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.REPEATED) + .setDescription("IntegerArrayDescription") + .build(), + Field.newBuilder("BooleanField", StandardSQLTypeName.BOOL) + .setMode(Field.Mode.NULLABLE) + .setDescription("BooleanDescription") + .build(), + Field.newBuilder("BytesField", StandardSQLTypeName.BYTES) + .setMode(Field.Mode.NULLABLE) + .setDescription("BytesDescription") + .build()) + .setMode(Field.Mode.REQUIRED) + .setDescription("RecordDescription") + .build(), + Field.newBuilder("IntegerField", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("IntegerDescription") + .build(), + Field.newBuilder("FloatField", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("FloatDescription") + .build(), + Field.newBuilder("GeographyField", StandardSQLTypeName.GEOGRAPHY) + .setMode(Field.Mode.NULLABLE) + .setDescription("GeographyDescription") + .build(), + Field.newBuilder("NumericField", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("NumericDescription") + .build(), + Field.newBuilder("BigNumericField", StandardSQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("BigNumericDescription") + .build(), + Field.newBuilder("BigNumericField1", StandardSQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("BigNumeric1Description") + .build(), + Field.newBuilder("BigNumericField2", StandardSQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("BigNumeric2Description") + .build(), + Field.newBuilder("BigNumericField3", StandardSQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("BigNumeric3Description") + .build(), + Field.newBuilder("BigNumericField4", StandardSQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("BigNumeric4Description") + .build(), + Field.newBuilder("TimeField", StandardSQLTypeName.TIME) + .setMode(Field.Mode.NULLABLE) + .setDescription("TimeDescription") + .build(), + Field.newBuilder("DateField", StandardSQLTypeName.DATE) + .setMode(Field.Mode.NULLABLE) + .setDescription("DateDescription") + .build(), + Field.newBuilder("DateTimeField", StandardSQLTypeName.DATETIME) + .setMode(Field.Mode.NULLABLE) + .setDescription("DateTimeDescription") + .build()); + private static final Field DDL_TIMESTAMP_FIELD_SCHEMA = Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) .setDescription("TimestampDescription") @@ -316,6 +427,55 @@ public class ITBigQueryTest { Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) .setMode(Field.Mode.NULLABLE) .build()); + + private static final Schema BQ_RESULTSET_EXPECTED_SCHEMA = + Schema.of( + Field.newBuilder("StringField", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BigNumericField", StandardSQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BooleanField", StandardSQLTypeName.BOOL) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BytesField", StandardSQLTypeName.BYTES) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("IntegerField", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("TimestampField", StandardSQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("FloatField", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("NumericField", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("TimeField", StandardSQLTypeName.TIME) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("DateField", StandardSQLTypeName.DATE) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("DateTimeField", StandardSQLTypeName.DATETIME) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("GeographyField", StandardSQLTypeName.GEOGRAPHY) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BytesField_1", StandardSQLTypeName.BYTES) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("BooleanField_1", StandardSQLTypeName.BOOL) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("IntegerArrayField", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.REPEATED) + .build()); + private static final Schema QUERY_RESULT_SCHEMA_BIGNUMERIC = Schema.of( Field.newBuilder("TimestampField", LegacySQLTypeName.TIMESTAMP) @@ -360,6 +520,7 @@ public class ITBigQueryTest { private static final String LOAD_FILE = "load.csv"; private static final String LOAD_FILE_LARGE = "load_large.csv"; private static final String JSON_LOAD_FILE = "load.json"; + private static final String JSON_LOAD_FILE_BQ_RESULTSET = "load_bq_resultset.json"; private static final String JSON_LOAD_FILE_SIMPLE = "load_simple.json"; private static final String EXTRACT_FILE = "extract.csv"; private static final String EXTRACT_MODEL_FILE = "extract_model.csv"; @@ -368,7 +529,10 @@ public class ITBigQueryTest { private static final TableId TABLE_ID_DDL = TableId.of(DATASET, "ddl_testing_table"); private static final TableId TABLE_ID_FASTQUERY = TableId.of(DATASET, "fastquery_testing_table"); private static final TableId TABLE_ID_LARGE = TableId.of(DATASET, "large_data_testing_table"); + private static final TableId TABLE_ID_FASTQUERY_BQ_RESULTSET = + TableId.of(DATASET, "fastquery_testing_bq_resultset"); private static final String CSV_CONTENT = "StringValue1\nStringValue2\n"; + private static final String JSON_CONTENT = "{" + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," @@ -424,6 +588,64 @@ public class ITBigQueryTest { + " \"BigNumericField3\": \"578960446186580977117854925043439539266.34992332820282019728792003956564819967\"," + " \"BigNumericField4\": \"-578960446186580977117854925043439539266.34992332820282019728792003956564819968\"" + "}"; + + private static final String JSON_CONTENT_BQ_RESULTSET = + "{" + + " \"TimestampField\": null," + + " \"StringField\": null," + + " \"IntegerArrayField\": null," + + " \"BooleanField\": null," + + " \"BytesField\": null," + + " \"RecordField\": {" + + " \"TimestampField\": null," + + " \"StringField\": null," + + " \"IntegerArrayField\": null," + + " \"BooleanField\": null," + + " \"BytesField\": null" + + " }," + + " \"IntegerField\": null," + + " \"FloatField\": null," + + " \"GeographyField\": null," + + " \"NumericField\": null," + + " \"BigNumericField\": null," + + " \"BigNumericField1\": null," + + " \"BigNumericField2\": null," + + " \"BigNumericField3\": null," + + " \"BigNumericField4\": null," + + " \"TimeField\": null," + + " \"DateField\": null," + + " \"DateTimeField\": null" + + "}\n" + + "{" + + " \"TimestampField\": \"2018-08-19 12:11:35.123456 UTC\"," + + " \"StringField\": \"StringValue1\"," + + " \"IntegerArrayField\": [1,2,3,4]," + + " \"BooleanField\": \"false\"," + + " \"BytesField\": \"" + + BYTES_BASE64 + + "\"," + + " \"RecordField\": {" + + " \"TimestampField\": \"1969-07-20 20:18:04 UTC\"," + + " \"StringField\": null," + + " \"IntegerArrayField\": [1,0]," + + " \"BooleanField\": \"true\"," + + " \"BytesField\": \"" + + BYTES_BASE64 + + "\"" + + " }," + + " \"IntegerField\": \"1\"," + + " \"FloatField\": \"10.1\"," + + " \"GeographyField\": \"POINT(-122.35022 47.649154)\"," + + " \"NumericField\": \"100\"," + + " \"BigNumericField\": \"0.33333333333333333333333333333333333333\"," + + " \"BigNumericField1\": \"1e-38\"," + + " \"BigNumericField2\": \"-1e38\"," + + " \"BigNumericField3\": \"578960446186580977117854925043439539266.34992332820282019728792003956564819967\"," + + " \"BigNumericField4\": \"-578960446186580977117854925043439539266.34992332820282019728792003956564819968\"," + + " \"TimeField\": \"12:11:35.123456\"," + + " \"DateField\": \"2018-08-19\"," + + " \"DateTimeField\": \"2018-08-19 12:11:35.123456\"" + + "}"; private static final String JSON_CONTENT_SIMPLE = "{" + " \"TimestampField\": \"2014-08-19 07:41:35.220 -05:00\"," @@ -476,6 +698,11 @@ public static void beforeClass() throws InterruptedException, IOException { ITBigQueryTest.class.getClassLoader().getResourceAsStream("QueryTestData.csv"); storage.createFrom( BlobInfo.newBuilder(BUCKET, LOAD_FILE_LARGE).setContentType("text/plain").build(), stream); + storage.create( + BlobInfo.newBuilder(BUCKET, JSON_LOAD_FILE_BQ_RESULTSET) + .setContentType("application/json") + .build(), + JSON_CONTENT_BQ_RESULTSET.getBytes(StandardCharsets.UTF_8)); DatasetInfo info = DatasetInfo.newBuilder(DATASET).setDescription(DESCRIPTION).setLabels(LABELS).build(); bigquery.create(info); @@ -509,6 +736,19 @@ public static void beforeClass() throws InterruptedException, IOException { jobFastQuery = jobFastQuery.waitFor(); assertNull(jobFastQuery.getStatus().getError()); + LoadJobConfiguration configFastQueryBQResultset = + LoadJobConfiguration.newBuilder( + TABLE_ID_FASTQUERY_BQ_RESULTSET, + "gs://" + BUCKET + "/" + JSON_LOAD_FILE_BQ_RESULTSET, + FormatOptions.json()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(BQ_RESULTSET_SCHEMA) + .setLabels(labels) + .build(); + Job jobFastQueryBQResultSet = bigquery.create(JobInfo.of(configFastQueryBQResultset)); + jobFastQueryBQResultSet = jobFastQueryBQResultSet.waitFor(); + assertNull(jobFastQueryBQResultSet.getStatus().getError()); + LoadJobConfiguration configurationDDL = LoadJobConfiguration.newBuilder( TABLE_ID_DDL, "gs://" + BUCKET + "/" + JSON_LOAD_FILE_SIMPLE, FormatOptions.json()) @@ -712,6 +952,7 @@ public void testCreateTableWithRangePartitioning() { } } + /* TODO(prasmish): replicate this test case for executeSelect on the relevant part */ @Test public void testJsonType() throws InterruptedException { String tableName = "test_create_table_jsontype"; @@ -819,6 +1060,7 @@ public void testJsonType() throws InterruptedException { } } + /* TODO(prasmish): replicate this test case for executeSelect on the relevant part */ @Test public void testIntervalType() throws InterruptedException { String tableName = "test_create_table_intervaltype"; @@ -1701,6 +1943,7 @@ public void testInsertAllWithErrors() { assertTrue(bigquery.delete(TableId.of(DATASET, tableName))); } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testListAllTableData() { Page rows = bigquery.listTableData(TABLE_ID); @@ -2036,6 +2279,7 @@ public void testAuthorizeDataset() { assertEquals(sharedDatasetAcl, updatedDataset.getAcl()); } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testSingleStatementsQueryException() throws InterruptedException { String invalidQuery = @@ -2052,6 +2296,7 @@ public void testSingleStatementsQueryException() throws InterruptedException { } } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testMultipleStatementsQueryException() throws InterruptedException { String invalidQuery = @@ -2070,6 +2315,7 @@ public void testMultipleStatementsQueryException() throws InterruptedException { } } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testQuery() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); @@ -2102,6 +2348,16 @@ public void testQuery() throws InterruptedException { assertNotNull(statistics.getQueryPlan()); } + @Test + public void testExecuteSelectDefaultConnectionSettings() throws SQLException { + // Use the default connection settings + Connection connection = bigquery.createConnection(); + String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + BigQueryResult bigQueryResult = connection.executeSelect(query); + assertEquals(42, bigQueryResult.getTotalRows()); + } + + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testQueryTimeStamp() throws InterruptedException { String query = "SELECT TIMESTAMP '2022-01-24T23:54:25.095574Z'"; @@ -2136,6 +2392,7 @@ public void testQueryTimeStamp() throws InterruptedException { } } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testQueryCaseInsensitiveSchemaFieldByGetName() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); @@ -2164,6 +2421,7 @@ public void testQueryCaseInsensitiveSchemaFieldByGetName() throws InterruptedExc assertEquals(2, rowCount); } + /* TODO(prasmish): replicate bigquery.query part of the test case for executeSelect - modify this test case */ @Test public void testQueryExternalHivePartitioningOptionAutoLayout() throws InterruptedException { String tableName = "test_queryexternalhivepartition_autolayout_table"; @@ -2198,6 +2456,7 @@ public void testQueryExternalHivePartitioningOptionAutoLayout() throws Interrupt assertTrue(bigquery.delete(tableId)); } + /* TODO(prasmish): replicate bigquery.query part of the test case for executeSelect - modify this test case */ @Test public void testQueryExternalHivePartitioningOptionCustomLayout() throws InterruptedException { String tableName = "test_queryexternalhivepartition_customlayout_table"; @@ -2233,6 +2492,463 @@ public void testQueryExternalHivePartitioningOptionCustomLayout() throws Interru assertTrue(bigquery.delete(tableId)); } + @Test + public void testConnectionImplDryRun() throws SQLException { + String query = + String.format( + "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, TimestampField, FloatField, NumericField, TimeField, DateField, DateTimeField , GeographyField, RecordField.BytesField, RecordField.BooleanField, IntegerArrayField from %s where StringField = ? order by TimestampField", + TABLE_ID_FASTQUERY_BQ_RESULTSET.getTable()); + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setCreateSession(true) + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryDryRunResult bigQueryDryRunResultSet = connection.dryRun(query); + assertNotNull(bigQueryDryRunResultSet.getSchema()); + assertEquals( + BQ_RESULTSET_EXPECTED_SCHEMA, bigQueryDryRunResultSet.getSchema()); // match the schema + List queryParameters = bigQueryDryRunResultSet.getQueryParameters(); + assertEquals(StandardSQLTypeName.STRING, queryParameters.get(0).getValue().getType()); + QueryStatistics queryStatistics = bigQueryDryRunResultSet.getStatistics().getQueryStatistics(); + assertNotNull(queryStatistics); + SessionInfo sessionInfo = bigQueryDryRunResultSet.getStatistics().getSessionInfo(); + assertNotNull(sessionInfo.getSessionId()); + assertEquals(StatementType.SELECT, queryStatistics.getStatementType()); + } + + @Test + // This test case test the order of the records, making sure that the result is not jumbled up due + // to the multithreaded BigQueryResult implementation + public void testBQResultSetMultiThreadedOrder() throws SQLException { + String query = + "SELECT date FROM " + + TABLE_ID_LARGE.getTable() + + " where date is not null order by date asc limit 300000"; + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setNumBufferedRows(10000) // page size + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + assertTrue(rs.next()); + ++cnt; + java.sql.Date lastDate = rs.getDate(0); + while (rs.next()) { + assertNotNull(rs.getDate(0)); + assertTrue(rs.getDate(0).getTime() >= lastDate.getTime()); // sorted order is maintained + lastDate = rs.getDate(0); + ++cnt; + } + assertEquals(300000, cnt); // total 300000 rows should be read + } + + @Test + public void testBQResultSetPaginationSlowQuery() throws SQLException { + String query = + "SELECT date, county, state_name, confirmed_cases, deaths FROM " + + TABLE_ID_LARGE.getTable() + + " where date is not null and county is not null and state_name is not null order by date limit 300000"; + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setNumBufferedRows(10000) // page size + .setJobTimeoutMs( + 15000L) // So that ConnectionImpl.isFastQuerySupported returns false, and the slow + // query route gets executed + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + while (rs.next()) { // pagination starts after approx 120,000 records + assertNotNull(rs.getDate(0)); + assertNotNull(rs.getString(1)); + assertNotNull(rs.getString(2)); + assertTrue(rs.getInt(3) >= 0); + assertTrue(rs.getInt(4) >= 0); + ++cnt; + } + assertEquals(300000, cnt); // total 300000 rows should be read + } + + @Test + public void testExecuteSelectSinglePageTableRow() throws SQLException { + String query = + "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, TimestampField, FloatField, " + + "NumericField, TimeField, DateField, DateTimeField , GeographyField, RecordField.BytesField, RecordField.BooleanField, IntegerArrayField from " + + TABLE_ID_FASTQUERY_BQ_RESULTSET.getTable() + + " order by TimestampField"; + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + ResultSet rs = bigQueryResult.getResultSet(); + Schema sc = bigQueryResult.getSchema(); + + assertEquals(BQ_RESULTSET_EXPECTED_SCHEMA, sc); // match the schema + assertEquals(2, bigQueryResult.getTotalRows()); // Expecting 2 rows + + assertTrue(rs.next()); // first row + // checking for the null or 0 column values + assertNull(rs.getString("StringField")); + assertTrue(rs.getDouble("BigNumericField") == 0.0d); + assertFalse(rs.getBoolean("BooleanField")); + assertNull(rs.getBytes("BytesField")); + assertEquals(rs.getInt("IntegerField"), 0); + assertNull(rs.getTimestamp("TimestampField")); + assertNull(rs.getDate("DateField")); + assertTrue(rs.getDouble("FloatField") == 0.0d); + assertTrue(rs.getDouble("NumericField") == 0.0d); + assertNull(rs.getTime("TimeField")); + assertNull(rs.getString("DateTimeField")); + assertNull(rs.getString("GeographyField")); + assertNull(rs.getBytes("BytesField_1")); + assertFalse(rs.getBoolean("BooleanField_1")); + + assertTrue(rs.next()); // second row + // second row is non null, comparing the values + assertEquals("StringValue1", rs.getString("StringField")); + assertTrue(rs.getDouble("BigNumericField") == 0.3333333333333333d); + assertFalse(rs.getBoolean("BooleanField")); + assertNotNull(rs.getBytes("BytesField")); + assertEquals(1, rs.getInt("IntegerField")); + assertEquals(1534680695123L, rs.getTimestamp("TimestampField").getTime()); + assertEquals(java.sql.Date.valueOf("2018-08-19"), rs.getDate("DateField")); + assertTrue(rs.getDouble("FloatField") == 10.1d); + assertTrue(rs.getDouble("NumericField") == 100.0d); + assertEquals(Time.valueOf(LocalTime.of(12, 11, 35, 123456)), rs.getTime("TimeField")); + assertEquals("2018-08-19T12:11:35.123456", rs.getString("DateTimeField")); + assertEquals("POINT(-122.35022 47.649154)", rs.getString("GeographyField")); + assertNotNull(rs.getBytes("BytesField_1")); + assertTrue(rs.getBoolean("BooleanField_1")); + assertTrue( + rs.getObject("IntegerArrayField") instanceof com.google.cloud.bigquery.FieldValueList); + FieldValueList integerArrayFieldValue = + (com.google.cloud.bigquery.FieldValueList) rs.getObject("IntegerArrayField"); + assertEquals(4, integerArrayFieldValue.size()); // Array has 4 elements + assertEquals(3, (integerArrayFieldValue.get(2).getNumericValue()).intValue()); + + assertFalse(rs.next()); // no 3rd row in the table + } + + @Test + public void testConnectionClose() throws SQLException { + String query = + "SELECT date, county, state_name, confirmed_cases, deaths FROM " + + TABLE_ID_LARGE.getTable() + + " where date is not null and county is not null and state_name is not null order by date limit 300000"; + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setNumBufferedRows(10000) // page size + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + while (rs.next()) { + ++cnt; + if (cnt > 57000) { // breaking at 57K, query reads 300K + assertTrue(connection.close()); // we should be able to cancel the connection + } + } + assertTrue( + cnt < 60000); // Few extra records are still read (generally ~10) even after canceling, as + // the backgrounds threads are still active while the interrupt occurs and the + // buffer and pageCache are cleared + } + + @Test + public void testBQResultSetPagination() throws SQLException { + String query = + "SELECT date, county, state_name, confirmed_cases, deaths FROM " + + TABLE_ID_LARGE.getTable() + + " where date is not null and county is not null and state_name is not null order by date limit 300000"; + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setNumBufferedRows(10000) // page size + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + while (rs.next()) { // pagination starts after approx 120,000 records + assertNotNull(rs.getDate(0)); + assertNotNull(rs.getString(1)); + assertNotNull(rs.getString(2)); + assertTrue(rs.getInt(3) >= 0); + assertTrue(rs.getInt(4) >= 0); + ++cnt; + } + assertEquals(300000, cnt); // total 300000 rows should be read + } + + @Test + public void testReadAPIIterationAndOrder() + throws SQLException { // use read API to read 300K records and check the order + String query = + "SELECT date, county, state_name, confirmed_cases, deaths FROM " + + TABLE_ID_LARGE.getTable() + + " where date is not null and county is not null and state_name is not null order by confirmed_cases asc limit 300000"; + + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setPriority( + QueryJobConfiguration.Priority + .INTERACTIVE) // required for this integration test so that isFastQuerySupported + // returns false + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + int lasConfirmedCases = Integer.MIN_VALUE; + while (rs.next()) { // pagination starts after approx 120,000 records + assertNotNull(rs.getDate(0)); + assertNotNull(rs.getString(1)); + assertNotNull(rs.getString(2)); + assertTrue(rs.getInt(3) >= 0); + assertTrue(rs.getInt(4) >= 0); + + // check if the records are sorted + assertTrue(rs.getInt(3) >= lasConfirmedCases); + lasConfirmedCases = rs.getInt(3); + ++cnt; + } + assertEquals(300000, cnt); // total 300000 rows should be read + connection.close(); + } + + @Test + public void testReadAPIConnectionMultiClose() + throws + SQLException { // use read API to read 300K records, then closes the connection. This test + // repeats it multiple times and assets if the connection was closed + String query = + "SELECT date, county, state_name, confirmed_cases, deaths FROM " + + TABLE_ID_LARGE.getTable() + + " where date is not null and county is not null and state_name is not null order by confirmed_cases asc limit 300000"; + + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setPriority( + QueryJobConfiguration.Priority + .INTERACTIVE) // required for this integration test so that isFastQuerySupported + // returns false + .build(); + int closeCnt = 0, runCnt = 3; + for (int run = 0; run < runCnt; run++) { + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + while (rs.next()) { // pagination starts after approx 120,000 records + assertNotNull(rs.getDate(0)); + ++cnt; + } + assertEquals(300000, cnt); // total 300000 rows should be read + assertTrue(connection.close()); // check if connection closed + closeCnt++; + } + assertEquals( + closeCnt, runCnt); // check if the connection closed for the required number of times + } + + @Test + public void testExecuteSelectSinglePageTableRowColInd() throws SQLException { + String query = + "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, TimestampField, FloatField, " + + "NumericField, TimeField, DateField, DateTimeField , GeographyField, RecordField.BytesField, RecordField.BooleanField, IntegerArrayField from " + + TABLE_ID_FASTQUERY_BQ_RESULTSET.getTable() + + " order by TimestampField"; + /* + Column Index mapping for ref: + StringField, 0 BigNumericField, 1 BooleanField, 2 BytesField, 3 IntegerField, 4 TimestampField, 5 FloatField, " 6 + NumericField, 7 TimeField, 8 DateField, 9 DateTimeField , 10 GeographyField, 11 RecordField.BytesField, 12 RecordField.BooleanField, 13 IntegerArrayField 14 + */ + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + ResultSet rs = bigQueryResult.getResultSet(); + Schema sc = bigQueryResult.getSchema(); + + assertEquals(BQ_RESULTSET_EXPECTED_SCHEMA, sc); // match the schema + assertEquals(2, bigQueryResult.getTotalRows()); // Expecting 2 rows + while (rs.next()) { + assertEquals(rs.getString(0), rs.getString("StringField")); + assertTrue(rs.getDouble(1) == rs.getDouble("BigNumericField")); + assertEquals(rs.getBoolean(2), rs.getBoolean("BooleanField")); + if (rs.getBytes(3) == null) { // both overloads should be null + assertEquals(rs.getBytes(3), rs.getBytes("BytesField")); + } else { // value in String representation should be the same + assertEquals( + new String(rs.getBytes(3), StandardCharsets.UTF_8), + new String(rs.getBytes("BytesField"), StandardCharsets.UTF_8)); + } + assertEquals(rs.getInt(4), rs.getInt("IntegerField")); + assertEquals(rs.getTimestamp(5), rs.getTimestamp("TimestampField")); + assertEquals(rs.getDate(9), rs.getDate("DateField")); + assertTrue(rs.getDouble("FloatField") == rs.getDouble(6)); + assertTrue(rs.getDouble("NumericField") == rs.getDouble(7)); + assertEquals(rs.getTime(8), rs.getTime("TimeField")); + assertEquals(rs.getString(10), rs.getString("DateTimeField")); + assertEquals(rs.getString(11), rs.getString("GeographyField")); + if (rs.getBytes(12) == null) { // both overloads should be null + assertEquals(rs.getBytes(12), rs.getBytes("BytesField_1")); + } else { // value in String representation should be the same + assertEquals( + new String(rs.getBytes(12), StandardCharsets.UTF_8), + new String(rs.getBytes("BytesField_1"), StandardCharsets.UTF_8)); + } + assertEquals(rs.getBoolean(13), rs.getBoolean("BooleanField_1")); + assertTrue( + rs.getObject("IntegerArrayField") instanceof com.google.cloud.bigquery.FieldValueList); + FieldValueList integerArrayFieldValue = + (com.google.cloud.bigquery.FieldValueList) rs.getObject("IntegerArrayField"); + assertTrue(rs.getObject(14) instanceof com.google.cloud.bigquery.FieldValueList); + FieldValueList integerArrayFieldValueColInd = + (com.google.cloud.bigquery.FieldValueList) rs.getObject(14); + assertEquals( + integerArrayFieldValue.size(), + integerArrayFieldValueColInd.size()); // Array has 4 elements + if (integerArrayFieldValue.size() == 4) { // as we are picking the third index + assertEquals( + (integerArrayFieldValue.get(2).getNumericValue()).intValue(), + (integerArrayFieldValueColInd.get(2).getNumericValue()).intValue()); + } + } + } + + @Test + public void testExecuteSelectStruct() throws SQLException { + String query = "select (STRUCT(\"Vancouver\" as city, 5 as years)) as address"; + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + assertEquals(1, bigQueryResult.getTotalRows()); + + Schema schema = bigQueryResult.getSchema(); + assertEquals("address", schema.getFields().get(0).getName()); + assertEquals(Field.Mode.NULLABLE, schema.getFields().get(0).getMode()); + // Backend is currently returning LegacySQLTypeName. Tracking bug: b/202977620 + assertEquals(LegacySQLTypeName.RECORD, schema.getFields().get(0).getType()); + assertEquals("city", schema.getFields().get(0).getSubFields().get(0).getName()); + assertEquals( + LegacySQLTypeName.STRING, schema.getFields().get(0).getSubFields().get(0).getType()); + assertEquals(Field.Mode.NULLABLE, schema.getFields().get(0).getSubFields().get(0).getMode()); + assertEquals("years", schema.getFields().get(0).getSubFields().get(1).getName()); + assertEquals( + LegacySQLTypeName.INTEGER, schema.getFields().get(0).getSubFields().get(1).getType()); + assertEquals(Field.Mode.NULLABLE, schema.getFields().get(0).getSubFields().get(1).getMode()); + + ResultSet rs = bigQueryResult.getResultSet(); + assertTrue(rs.next()); + FieldValueList addressFieldValue = + (com.google.cloud.bigquery.FieldValueList) rs.getObject("address"); + assertEquals(rs.getObject("address"), rs.getObject(0)); + assertEquals("Vancouver", addressFieldValue.get(0).getStringValue()); + assertEquals(5, addressFieldValue.get(1).getLongValue()); + assertFalse(rs.next()); // only 1 row of data + } + + @Test + public void testExecuteSelectStructSubField() throws SQLException { + String query = + "select address.city from (select (STRUCT(\"Vancouver\" as city, 5 as years)) as address)"; + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + assertEquals(1, bigQueryResult.getTotalRows()); + + Schema schema = bigQueryResult.getSchema(); + assertEquals("city", schema.getFields().get(0).getName()); + assertEquals(Field.Mode.NULLABLE, schema.getFields().get(0).getMode()); + // Backend is currently returning LegacySQLTypeName. Tracking bug: b/202977620 + assertEquals(LegacySQLTypeName.STRING, schema.getFields().get(0).getType()); + assertNull( + schema.getFields().get(0).getSubFields()); // this is a String field without any subfields + + ResultSet rs = bigQueryResult.getResultSet(); + assertTrue(rs.next()); + String cityFieldValue = rs.getString("city"); + assertEquals(rs.getString("city"), rs.getObject(0)); + assertEquals("Vancouver", cityFieldValue); + assertFalse(rs.next()); // only 1 row of data + } + + @Test + public void testExecuteSelectArray() throws SQLException { + String query = "SELECT [1,2,3]"; + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + assertEquals(1, bigQueryResult.getTotalRows()); + + Schema schema = bigQueryResult.getSchema(); + assertEquals("f0_", schema.getFields().get(0).getName()); + assertEquals(Field.Mode.REPEATED, schema.getFields().get(0).getMode()); + assertEquals(LegacySQLTypeName.INTEGER, schema.getFields().get(0).getType()); + assertNull(schema.getFields().get(0).getSubFields()); // no subfields for Integers + + ResultSet rs = bigQueryResult.getResultSet(); + assertTrue(rs.next()); + FieldValueList arrayFieldValue = (com.google.cloud.bigquery.FieldValueList) rs.getObject(0); + assertEquals(1, arrayFieldValue.get(0).getLongValue()); + assertEquals(2, arrayFieldValue.get(1).getLongValue()); + assertEquals(3, arrayFieldValue.get(2).getLongValue()); + } + + @Test + public void testExecuteSelectArrayOfStruct() throws SQLException { + String query = + "SELECT [STRUCT(\"Vancouver\" as city, 5 as years), STRUCT(\"Boston\" as city, 10 as years)]"; + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + assertEquals(1, bigQueryResult.getTotalRows()); + + Schema schema = bigQueryResult.getSchema(); + assertEquals("f0_", schema.getFields().get(0).getName()); + assertEquals(Field.Mode.REPEATED, schema.getFields().get(0).getMode()); + // Backend is currently returning LegacySQLTypeName. Tracking bug: b/202977620 + // Verify the field metadata of the two subfields of the struct + assertEquals(LegacySQLTypeName.RECORD, schema.getFields().get(0).getType()); + assertEquals("city", schema.getFields().get(0).getSubFields().get(0).getName()); + assertEquals( + LegacySQLTypeName.STRING, schema.getFields().get(0).getSubFields().get(0).getType()); + assertEquals(Field.Mode.NULLABLE, schema.getFields().get(0).getSubFields().get(0).getMode()); + assertEquals("years", schema.getFields().get(0).getSubFields().get(1).getName()); + assertEquals( + LegacySQLTypeName.INTEGER, schema.getFields().get(0).getSubFields().get(1).getType()); + assertEquals(Field.Mode.NULLABLE, schema.getFields().get(0).getSubFields().get(1).getMode()); + + ResultSet rs = bigQueryResult.getResultSet(); + assertTrue(rs.next()); + FieldValueList arrayOfStructFieldValue = + (com.google.cloud.bigquery.FieldValueList) rs.getObject(0); + // Verify the values of the two structs in the array + assertEquals(Attribute.RECORD, arrayOfStructFieldValue.get(0).getAttribute()); + assertEquals( + "Vancouver", arrayOfStructFieldValue.get(0).getRecordValue().get(0).getStringValue()); + assertEquals(5, arrayOfStructFieldValue.get(0).getRecordValue().get(1).getLongValue()); + assertEquals(Attribute.RECORD, arrayOfStructFieldValue.get(1).getAttribute()); + assertEquals("Boston", arrayOfStructFieldValue.get(1).getRecordValue().get(0).getStringValue()); + assertEquals(10, arrayOfStructFieldValue.get(1).getRecordValue().get(1).getLongValue()); + } + + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testFastQueryMultipleRuns() throws InterruptedException { String query = @@ -2265,6 +2981,7 @@ public void testFastQueryMultipleRuns() throws InterruptedException { assertFalse(result2.hasNextPage()); } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testFastQuerySinglePageDuplicateRequestIds() throws InterruptedException { String query = @@ -2294,6 +3011,7 @@ public void testFastQuerySinglePageDuplicateRequestIds() throws InterruptedExcep assertFalse(result2.hasNextPage()); } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testFastSQLQuery() throws InterruptedException { String query = @@ -2323,6 +3041,7 @@ public void testFastSQLQuery() throws InterruptedException { } } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testFastSQLQueryMultiPage() throws InterruptedException { String query = @@ -2449,6 +3168,7 @@ public void testFastQuerySlowDDL() throws InterruptedException { } } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testFastQueryHTTPException() throws InterruptedException { String queryInvalid = @@ -2511,10 +3231,36 @@ public void testQuerySessionSupport() throws InterruptedException { remoteJobWithSession = remoteJobWithSession.waitFor(); assertNull(remoteJobWithSession.getStatus().getError()); Job queryJobWithSession = bigquery.getJob(remoteJobWithSession.getJobId()); - JobStatistics.QueryStatistics statisticsWithSession = queryJobWithSession.getStatistics(); + QueryStatistics statisticsWithSession = queryJobWithSession.getStatistics(); assertEquals(sessionId, statisticsWithSession.getSessionInfo().getSessionId()); } + // TODO: uncomment this testcase when executeUpdate is implemented + // @Test + // public void testExecuteSelectWithSession() throws BigQuerySQLException { + // String query = "CREATE TEMPORARY TABLE temptable AS SELECT 17 as foo"; + // ConnectionSettings connectionSettings = + // ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).setCreateSession(true).build(); + // Connection connection = bigquery.createConnection(connectionSettings); + // BigQueryResult bigQueryResult = connection.execute(query); + // BigQueryResultStats stats = bigQueryResult.getBigQueryResultStats(); + // assertNotNull(stats.getSessionInfo().getSessionId()); + // } + + @Test + public void testExecuteSelectSessionSupport() throws BigQuerySQLException { + String query = "SELECT 17 as foo"; + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setCreateSession(true) + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + String sessionId = bigQueryResult.getBigQueryResultStats().getSessionInfo().getSessionId(); + assertNotNull(sessionId); + } + @Test public void testDmlStatistics() throws InterruptedException { String tableName = TABLE_ID_FASTQUERY.getTable(); @@ -2535,6 +3281,7 @@ public void testDmlStatistics() throws InterruptedException { assertEquals(2L, statistics.getDmlStats().getUpdatedRowCount().longValue()); } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testTransactionInfo() throws InterruptedException { String tableName = TABLE_ID_FASTQUERY.getTable(); @@ -2556,6 +3303,7 @@ public void testTransactionInfo() throws InterruptedException { } } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testScriptStatistics() throws InterruptedException { String script = @@ -2706,6 +3454,27 @@ public void testPositionalQueryParameters() throws InterruptedException { } } + /* TODO(prasmish): expand below test case with all the fields shown in the above test case */ + @Test + public void testExecuteSelectWithPositionalQueryParameters() throws BigQuerySQLException { + String query = + "SELECT TimestampField, StringField FROM " + + TABLE_ID.getTable() + + " WHERE StringField = ?" + + " AND TimestampField > ?"; + QueryParameterValue stringParameter = QueryParameterValue.string("stringValue"); + QueryParameterValue timestampParameter = + QueryParameterValue.timestamp("2014-01-01 07:00:00.000000+00:00"); + Parameter stringParam = Parameter.newBuilder().setValue(stringParameter).build(); + Parameter timeStampParam = Parameter.newBuilder().setValue(timestampParameter).build(); + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).build(); + Connection connection = bigquery.createConnection(connectionSettings); + List parameters = ImmutableList.of(stringParam, timeStampParam); + BigQueryResult rs = connection.executeSelect(query, parameters); + assertEquals(2, rs.getTotalRows()); + } + @Test public void testNamedQueryParameters() throws InterruptedException { String query = @@ -2728,6 +3497,30 @@ public void testNamedQueryParameters() throws InterruptedException { assertEquals(2, Iterables.size(result.getValues())); } + @Test + public void testExecuteSelectWithNamedQueryParameters() throws BigQuerySQLException { + String query = + "SELECT TimestampField, StringField, BooleanField FROM " + + TABLE_ID.getTable() + + " WHERE StringField = @stringParam" + + " AND IntegerField IN UNNEST(@integerList)"; + QueryParameterValue stringParameter = QueryParameterValue.string("stringValue"); + QueryParameterValue intArrayParameter = + QueryParameterValue.array(new Integer[] {3, 4}, Integer.class); + Parameter stringParam = + Parameter.newBuilder().setName("stringParam").setValue(stringParameter).build(); + Parameter intArrayParam = + Parameter.newBuilder().setName("integerList").setValue(intArrayParameter).build(); + + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).build(); + Connection connection = bigquery.createConnection(connectionSettings); + List parameters = ImmutableList.of(stringParam, intArrayParam); + BigQueryResult rs = connection.executeSelect(query, parameters); + assertEquals(2, rs.getTotalRows()); + } + + /* TODO(prasmish): replicate relevant parts of the test case for executeSelect */ @Test public void testStructNamedQueryParameters() throws InterruptedException { QueryParameterValue booleanValue = QueryParameterValue.bool(true); @@ -2782,6 +3575,7 @@ private static void assertsFieldValue(FieldValue record) { assertEquals("test-stringField", record.getRecordValue().get("stringField").getStringValue()); } + /* TODO(prasmish): replicate relevant parts of the test case for executeSelect */ @Test public void testNestedStructNamedQueryParameters() throws InterruptedException { QueryParameterValue booleanValue = QueryParameterValue.bool(true); @@ -2825,6 +3619,7 @@ public void testNestedStructNamedQueryParameters() throws InterruptedException { } } + /* TODO(prasmish): replicate relevant parts of the test case for executeSelect */ @Test public void testBytesParameter() throws Exception { String query = "SELECT BYTE_LENGTH(@p) AS length"; @@ -3108,6 +3903,7 @@ public void testCopyJobWithLabels() throws InterruptedException { assertTrue(remoteTable.delete()); } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testQueryJob() throws InterruptedException, TimeoutException { String tableName = "test_query_job_table"; @@ -3152,6 +3948,7 @@ public void testQueryJob() throws InterruptedException, TimeoutException { assertNotNull(statistics.getQueryPlan()); } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testQueryJobWithConnectionProperties() throws InterruptedException { String tableName = "test_query_job_table_connection_properties"; @@ -3171,6 +3968,7 @@ public void testQueryJobWithConnectionProperties() throws InterruptedException { assertTrue(bigquery.delete(destinationTable)); } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testQueryJobWithLabels() throws InterruptedException, TimeoutException { String tableName = "test_query_job_table"; @@ -3194,6 +3992,7 @@ public void testQueryJobWithLabels() throws InterruptedException, TimeoutExcepti } } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testQueryJobWithRangePartitioning() throws InterruptedException { String tableName = "test_query_job_table_rangepartitioning"; @@ -3304,6 +4103,7 @@ public void testQueryJobWithDryRun() throws InterruptedException, TimeoutExcepti .build(); Job remoteJob = bigquery.create(JobInfo.of(configuration)); assertNull(remoteJob.getJobId().getJob()); + remoteJob.getStatistics(); assertEquals(DONE, remoteJob.getStatus().getState()); assertNotNull(remoteJob.getConfiguration()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java new file mode 100644 index 000000000000..d672967b14d6 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java @@ -0,0 +1,610 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.it; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryError; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryResult; +import com.google.cloud.bigquery.BigQuerySQLException; +import com.google.cloud.bigquery.Connection; +import com.google.cloud.bigquery.ConnectionSettings; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.DatasetInfo; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.InsertAllRequest; +import com.google.cloud.bigquery.InsertAllResponse; +import com.google.cloud.bigquery.Parameter; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import com.google.common.collect.ImmutableList; +import com.google.common.io.BaseEncoding; +import java.io.IOException; +import java.math.BigDecimal; +import java.nio.charset.StandardCharsets; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Time; +import java.time.LocalTime; +import java.time.ZoneId; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.TimeZone; +import java.util.concurrent.ExecutionException; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.apache.arrow.vector.util.JsonStringArrayList; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.Timeout; + +public class ITNightlyBigQueryTest { + private static final Logger logger = Logger.getLogger(ITNightlyBigQueryTest.class.getName()); + private static final String DATASET = RemoteBigQueryHelper.generateDatasetName(); + private static final String TABLE = "TEMP_RS_TEST_TABLE"; + private static final byte[] BYTES = "TestByteValue".getBytes(StandardCharsets.UTF_8); + private static final String BYTES_BASE64 = BaseEncoding.base64().encode(BYTES); + // Script will populate NUM_BATCHES*REC_PER_BATCHES number of records (eg: 100*10000 = 1M) + private static final int NUM_BATCHES = 55; + private static final int REC_PER_BATCHES = 10000; + private static final int LIMIT_RECS = 500000; // We can plan to read ~ 500K / 1M records + private static final int MULTI_LIMIT_RECS = + 300000; // Used for multiquery testcase, a lower limit like 300K should be fine + private static int rowCnt = 0; + private static BigQuery bigquery; + private static final String BASE_QUERY = + "select StringField, GeographyField, BooleanField, BigNumericField, IntegerField, NumericField, BytesField, " + + "TimestampField, TimeField, DateField, IntegerArrayField, RecordField.BooleanField, RecordField.StringField ," + + " JSONField, JSONField.hello, JSONField.id from %s.%s order by IntegerField asc LIMIT %s"; + private static final String POSITIONAL_QUERY = + String.format( + "select RecordField.BooleanField, RecordField.StringField, StringField, BooleanField, BytesField, IntegerField, GeographyField, NumericField, BigNumericField, TimeField, DateField, TimestampField, JSONField from %s.%s where DateField = ? and BooleanField = ? and IntegerField > ? and NumericField > ? LIMIT %s", + DATASET, TABLE, MULTI_LIMIT_RECS); + private static final String QUERY = String.format(BASE_QUERY, DATASET, TABLE, LIMIT_RECS); + private static final String MULTI_QUERY = + String.format(BASE_QUERY, DATASET, TABLE, MULTI_LIMIT_RECS); + private static final String INVALID_QUERY = + String.format( + "select into %s.%s order by IntegerField asc LIMIT %s", DATASET, TABLE, LIMIT_RECS); + + private static final Schema BQ_SCHEMA = + Schema.of( + Field.newBuilder("TimestampField", StandardSQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .setDescription("TimestampDescription") + .build(), + Field.newBuilder("StringField", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("StringDescription") + .build(), + Field.newBuilder("IntegerArrayField", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.REPEATED) + .setDescription("IntegerArrayDescription") + .build(), + Field.newBuilder("BooleanField", StandardSQLTypeName.BOOL) + .setMode(Field.Mode.NULLABLE) + .setDescription("BooleanDescription") + .build(), + Field.newBuilder("BytesField", StandardSQLTypeName.BYTES) + .setMode(Field.Mode.NULLABLE) + .setDescription("BytesDescription") + .build(), + Field.newBuilder( + "RecordField", + StandardSQLTypeName.STRUCT, + Field.newBuilder("StringField", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("StringDescription") + .build(), + Field.newBuilder("BooleanField", StandardSQLTypeName.BOOL) + .setMode(Field.Mode.NULLABLE) + .setDescription("BooleanDescription") + .build()) + .setMode(Field.Mode.NULLABLE) + .setDescription("RecordDescription") + .build(), + Field.newBuilder("IntegerField", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("IntegerDescription") + .build(), + Field.newBuilder("GeographyField", StandardSQLTypeName.GEOGRAPHY) + .setMode(Field.Mode.NULLABLE) + .setDescription("GeographyDescription") + .build(), + Field.newBuilder("NumericField", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("NumericDescription") + .build(), + Field.newBuilder("BigNumericField", StandardSQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .setDescription("BigNumericDescription") + .build(), + Field.newBuilder("TimeField", StandardSQLTypeName.TIME) + .setMode(Field.Mode.NULLABLE) + .setDescription("TimeDescription") + .build(), + Field.newBuilder("DateField", StandardSQLTypeName.DATE) + .setMode(Field.Mode.NULLABLE) + .setDescription("DateDescription") + .build(), + Field.newBuilder("JSONField", StandardSQLTypeName.JSON) + .setMode(Field.Mode.NULLABLE) + .setDescription("JSONFieldDescription") + .build(), + Field.newBuilder("IntervalField", StandardSQLTypeName.INTERVAL) + .setMode(Field.Mode.NULLABLE) + .setDescription("IntervalFieldDescription") + .build()); + + @Rule public Timeout globalTimeout = Timeout.seconds(1800); // setting 30 mins as the timeout + + @BeforeClass + public static void beforeClass() throws InterruptedException, IOException { + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); + bigquery = bigqueryHelper.getOptions().getService(); + createDataset(DATASET); + createTable(DATASET, TABLE, BQ_SCHEMA); + populateTestRecords(DATASET, TABLE); + } + + @AfterClass + public static void afterClass() throws ExecutionException, InterruptedException { + try { + if (bigquery != null) { + deleteTable(DATASET, TABLE); + RemoteBigQueryHelper.forceDelete(bigquery, DATASET); + } else { + fail("Error clearing the test dataset"); + } + } catch (BigQueryException e) { + fail("Error clearing the test dataset " + e); + } + } + + @Test + public void testInvalidQuery() throws BigQuerySQLException { + Connection connection = getConnection(); + try { + BigQueryResult bigQueryResult = connection.executeSelect(INVALID_QUERY); + fail("BigQuerySQLException was expected"); + } catch (BigQuerySQLException ex) { + assertNotNull(ex.getMessage()); + assertTrue(ex.getMessage().toLowerCase().contains("unexpected keyword into")); + } finally { + connection.close(); + } + } + + /* + This tests for the order of the records as well as the value of the records using testForAllDataTypeValues + */ + @Test + public void testIterateAndOrder() throws SQLException { + Connection connection = getConnection(); + BigQueryResult bigQueryResult = connection.executeSelect(QUERY); + logger.log(Level.INFO, "Query used: {0}", QUERY); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + + int prevIntegerFieldVal = 0; + while (rs.next()) { + if (cnt == 0) { // first row is supposed to be null + assertNull(rs.getString("StringField")); + assertNull(rs.getString("GeographyField")); + Object intAryField = rs.getObject("IntegerArrayField"); + if (intAryField instanceof JsonStringArrayList) { + assertEquals( + new JsonStringArrayList(), + ((JsonStringArrayList) intAryField)); // null array is returned as an empty array + } + assertFalse(rs.getBoolean("BooleanField")); + assertTrue(0.0d == rs.getDouble("BigNumericField")); + assertTrue(0 == rs.getInt("IntegerField")); + assertTrue(0L == rs.getLong("NumericField")); + assertNull(rs.getBytes("BytesField")); + assertNull(rs.getTimestamp("TimestampField")); + assertNull(rs.getTime("TimeField")); + assertNull(rs.getDate("DateField")); + assertNull(rs.getString("JSONField")); + assertFalse(rs.getBoolean("BooleanField_1")); + assertNull(rs.getString("StringField_1")); + assertNull(rs.getString("hello")); // equivalent of testJsonType + assertEquals(0, rs.getInt("id")); + + } else { // remaining rows are supposed to be non null + assertNotNull(rs.getString("StringField")); + assertNotNull(rs.getString("GeographyField")); + assertNotNull(rs.getObject("IntegerArrayField")); + assertTrue(rs.getBoolean("BooleanField")); + assertTrue(0.0d < rs.getDouble("BigNumericField")); + assertTrue(0 < rs.getInt("IntegerField")); + assertTrue(0L < rs.getLong("NumericField")); + assertNotNull(rs.getBytes("BytesField")); + assertNotNull(rs.getTimestamp("TimestampField")); + assertNotNull(rs.getTime("TimeField")); + assertNotNull(rs.getDate("DateField")); + assertNotNull(rs.getString("JSONField")); + assertFalse(rs.getBoolean("BooleanField_1")); + assertNotNull(rs.getString("StringField_1")); + + // check the order of the records + assertTrue(prevIntegerFieldVal < rs.getInt("IntegerField")); + prevIntegerFieldVal = rs.getInt("IntegerField"); + + testForAllDataTypeValues(rs, cnt); // asserts the value of each row + } + ++cnt; + } + assertEquals(LIMIT_RECS, cnt); // all the records were retrieved + connection.close(); + } + + /* + This tests for the order of the records using default connection settings as well as the value of the records using testForAllDataTypeValues + */ + @Test + public void testIterateAndOrderDefaultConnSettings() throws SQLException { + Connection connection = bigquery.createConnection(); + BigQueryResult bigQueryResult = connection.executeSelect(QUERY); + logger.log(Level.INFO, "Query used: {0}", QUERY); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + + int prevIntegerFieldVal = 0; + while (rs.next()) { + if (cnt == 0) { // first row is supposed to be null + assertNull(rs.getString("StringField")); + assertNull(rs.getString("GeographyField")); + Object intAryField = rs.getObject("IntegerArrayField"); + if (intAryField instanceof JsonStringArrayList) { + assertEquals( + new JsonStringArrayList(), + ((JsonStringArrayList) intAryField)); // null array is returned as an empty array + } + assertFalse(rs.getBoolean("BooleanField")); + assertTrue(0.0d == rs.getDouble("BigNumericField")); + assertTrue(0 == rs.getInt("IntegerField")); + assertTrue(0L == rs.getLong("NumericField")); + assertNull(rs.getBytes("BytesField")); + assertNull(rs.getTimestamp("TimestampField")); + assertNull(rs.getTime("TimeField")); + assertNull(rs.getDate("DateField")); + assertNull(rs.getString("JSONField")); + assertFalse(rs.getBoolean("BooleanField_1")); + assertNull(rs.getString("StringField_1")); + assertNull(rs.getString("hello")); // equivalent of testJsonType + assertEquals(0, rs.getInt("id")); + + } else { // remaining rows are supposed to be non null + assertNotNull(rs.getString("StringField")); + assertNotNull(rs.getString("GeographyField")); + assertNotNull(rs.getObject("IntegerArrayField")); + assertTrue(rs.getBoolean("BooleanField")); + assertTrue(0.0d < rs.getDouble("BigNumericField")); + assertTrue(0 < rs.getInt("IntegerField")); + assertTrue(0L < rs.getLong("NumericField")); + assertNotNull(rs.getBytes("BytesField")); + assertNotNull(rs.getTimestamp("TimestampField")); + assertNotNull(rs.getTime("TimeField")); + assertNotNull(rs.getDate("DateField")); + assertNotNull(rs.getString("JSONField")); + assertFalse(rs.getBoolean("BooleanField_1")); + assertNotNull(rs.getString("StringField_1")); + + // check the order of the records + assertTrue(prevIntegerFieldVal < rs.getInt("IntegerField")); + prevIntegerFieldVal = rs.getInt("IntegerField"); + + testForAllDataTypeValues(rs, cnt); // asserts the value of each row + } + ++cnt; + } + assertEquals(LIMIT_RECS, cnt); // all the records were retrieved + connection.close(); + } + + @Test + public void testMultipleRuns() throws SQLException { + + Connection connection = getConnection(); + BigQueryResult bigQueryResult = connection.executeSelect(MULTI_QUERY); + logger.log(Level.INFO, "Query used: {0}", MULTI_QUERY); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + int totalCnt = 0; + + int prevIntegerFieldVal = 0; + while (rs.next()) { + if (cnt == 0) { // first row is supposed to be null + assertNull(rs.getString("StringField")); + assertNull(rs.getString("GeographyField")); + Object intAryField = rs.getObject("IntegerArrayField"); + if (intAryField instanceof JsonStringArrayList) { + assertEquals( + new JsonStringArrayList(), + ((JsonStringArrayList) intAryField)); // null array is returned as an empty array + } + assertFalse(rs.getBoolean("BooleanField")); + assertTrue(0.0d == rs.getDouble("BigNumericField")); + assertTrue(0 == rs.getInt("IntegerField")); + assertTrue(0L == rs.getLong("NumericField")); + assertNull(rs.getBytes("BytesField")); + assertNull(rs.getTimestamp("TimestampField")); + assertNull(rs.getTime("TimeField")); + assertNull(rs.getDate("DateField")); + assertNull(rs.getString("JSONField")); + assertFalse(rs.getBoolean("BooleanField_1")); + assertNull(rs.getString("StringField_1")); + assertNull(rs.getString("hello")); // equivalent of testJsonType + assertEquals(0, rs.getInt("id")); + + } else { // remaining rows are supposed to be non null + // check the order of the records + assertTrue(prevIntegerFieldVal < rs.getInt("IntegerField")); + prevIntegerFieldVal = rs.getInt("IntegerField"); + + testForAllDataTypeValues(rs, cnt); // asserts the value of each row + } + ++cnt; + } + connection.close(); + totalCnt += cnt; + // Repeat the same run + connection = getConnection(); + bigQueryResult = connection.executeSelect(MULTI_QUERY); + rs = bigQueryResult.getResultSet(); + cnt = 0; + prevIntegerFieldVal = 0; + while (rs.next()) { + if (cnt == 0) { // first row is supposed to be null + assertNull(rs.getString("StringField")); + assertNull(rs.getString("GeographyField")); + Object intAryField = rs.getObject("IntegerArrayField"); + if (intAryField instanceof JsonStringArrayList) { + assertEquals( + new JsonStringArrayList(), + ((JsonStringArrayList) intAryField)); // null array is returned as an empty array + } + assertFalse(rs.getBoolean("BooleanField")); + assertTrue(0.0d == rs.getDouble("BigNumericField")); + assertTrue(0 == rs.getInt("IntegerField")); + assertTrue(0L == rs.getLong("NumericField")); + assertNull(rs.getBytes("BytesField")); + assertNull(rs.getTimestamp("TimestampField")); + assertNull(rs.getTime("TimeField")); + assertNull(rs.getDate("DateField")); + assertNull(rs.getString("JSONField")); + assertFalse(rs.getBoolean("BooleanField_1")); + assertNull(rs.getString("StringField_1")); + assertNull(rs.getString("hello")); // equivalent of testJsonType + assertEquals(0, rs.getInt("id")); + + } else { // remaining rows are supposed to be non null + // check the order of the records + assertTrue(prevIntegerFieldVal < rs.getInt("IntegerField")); + prevIntegerFieldVal = rs.getInt("IntegerField"); + + testForAllDataTypeValues(rs, cnt); // asserts the value of each row + } + ++cnt; + } + connection.close(); + totalCnt += cnt; + assertEquals(MULTI_LIMIT_RECS * 2, totalCnt); + } + + @Test + public void testPositionalParams() + throws SQLException { // Bypasses Read API as it doesnt support Positional Params + Connection connection = getConnection(); + Parameter dateParam = + Parameter.newBuilder().setValue(QueryParameterValue.date("2022-01-01")).build(); + Parameter boolParam = Parameter.newBuilder().setValue(QueryParameterValue.bool(true)).build(); + Parameter intParam = Parameter.newBuilder().setValue(QueryParameterValue.int64(1)).build(); + Parameter numericParam = + Parameter.newBuilder().setValue(QueryParameterValue.numeric(new BigDecimal(100))).build(); + List parameters = ImmutableList.of(dateParam, boolParam, intParam, numericParam); + + BigQueryResult bigQueryResult = connection.executeSelect(POSITIONAL_QUERY, parameters); + logger.log(Level.INFO, "Query used: {0}", POSITIONAL_QUERY); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + while (rs.next()) { + assertFalse(rs.getBoolean("BooleanField")); + assertTrue(0.0d <= rs.getDouble("BigNumericField")); + assertTrue(0 <= rs.getInt("IntegerField")); + assertTrue(0L <= rs.getLong("NumericField")); + assertNotNull(rs.getBytes("BytesField")); + assertNotNull(rs.getTimestamp("TimestampField")); + assertNotNull(rs.getTime("TimeField")); + assertNotNull(rs.getDate("DateField")); + assertNotNull(rs.getString("JSONField")); + assertTrue(rs.getBoolean("BooleanField_1")); + assertNotNull(rs.getString("StringField_1")); + ++cnt; + } + connection.close(); + assertEquals(MULTI_LIMIT_RECS, cnt); + } + + // asserts the value of each row + private static void testForAllDataTypeValues(ResultSet rs, int cnt) throws SQLException { + // Testing JSON type + assertEquals("\"world\"", rs.getString("hello")); // BQ stores the value as "world" + assertEquals(100, rs.getInt("id")); + assertEquals("{\"hello\":\"world\",\"id\":100}", rs.getString("JSONField")); + + // String and Geography types + assertEquals(String.format("String Val %s", cnt), rs.getString("StringField")); + assertEquals("POINT(1 2)", rs.getString("GeographyField")); + + // Array type tests + if (rs.getObject("IntegerArrayField") instanceof JsonStringArrayList) { + JsonStringArrayList ary = (JsonStringArrayList) rs.getObject("IntegerArrayField"); + assertEquals(3, ary.size()); + assertEquals(1, ary.get(0).intValue()); + assertEquals(2, ary.get(1).intValue()); + assertEquals(3, ary.get(2).intValue()); + } + + // BigNumeric, int and Numeric + assertTrue(10000000L + cnt == rs.getDouble("BigNumericField")); + assertEquals(1 + cnt, rs.getInt("IntegerField")); + assertEquals(100 + cnt, rs.getLong("NumericField")); + // Test Byte field + assertEquals("TestByteValue", new String(rs.getBytes("BytesField"), StandardCharsets.UTF_8)); + + // Struct Fields + assertFalse(rs.getBoolean("BooleanField_1")); + assertEquals(String.format("Str Val %s", cnt), rs.getString("StringField_1")); + + // Timestamp, Time, DateTime and Date fields + assertEquals(1649064795000L, rs.getTimestamp("TimestampField").getTime()); + assertEquals( + java.sql.Date.valueOf("2022-01-01").toString(), rs.getDate("DateField").toString()); + // Time is represented independent of a specific date and timezone. For example a 12:11:35 (GMT) + // is returned as + // 17:11:35 (GMT+5:30) . So we need to adjust the offset + int offset = + TimeZone.getTimeZone(ZoneId.systemDefault()) + .getOffset(new java.util.Date().getTime()); // offset in seconds + assertEquals( + Time.valueOf(LocalTime.of(12, 11, 35)).getTime() + offset, + rs.getTime("TimeField").getTime()); + } + + private static void populateTestRecords(String datasetName, String tableName) { + TableId tableId = TableId.of(datasetName, tableName); + for (int batchCnt = 1; batchCnt <= NUM_BATCHES; batchCnt++) { + addBatchRecords(tableId); + } + } + + private static void addBatchRecords(TableId tableId) { + Map nullRow = new HashMap<>(); + try { + InsertAllRequest.Builder reqBuilder = InsertAllRequest.newBuilder(tableId); + if (rowCnt == 0) { + reqBuilder.addRow(nullRow); + } + for (int i = 0; i < REC_PER_BATCHES; i++) { + reqBuilder.addRow(getNextRow()); + } + InsertAllResponse response = bigquery.insertAll(reqBuilder.build()); + + if (response.hasErrors()) { + // If any of the insertions failed, this lets you inspect the errors + for (Map.Entry> entry : response.getInsertErrors().entrySet()) { + logger.log(Level.WARNING, "Exception while adding records {0}", entry.getValue()); + } + fail("Response has errors"); + } + } catch (BigQueryException e) { + logger.log(Level.WARNING, "Exception while adding records {0}", e); + fail("Error in addBatchRecords"); + } + } + + private static void createTable(String datasetName, String tableName, Schema schema) { + try { + TableId tableId = TableId.of(datasetName, tableName); + TableDefinition tableDefinition = StandardTableDefinition.of(schema); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + Table table = bigquery.create(tableInfo); + assertTrue(table.exists()); + } catch (BigQueryException e) { + fail("Table was not created. \n" + e); + } + } + + public static void deleteTable(String datasetName, String tableName) { + try { + assertTrue(bigquery.delete(TableId.of(datasetName, tableName))); + } catch (BigQueryException e) { + fail("Table was not deleted. \n" + e); + } + } + + public static void createDataset(String datasetName) { + try { + DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build(); + Dataset newDataset = bigquery.create(datasetInfo); + assertNotNull(newDataset.getDatasetId().getDataset()); + } catch (BigQueryException e) { + fail("Dataset was not created. \n" + e); + } + } + + public static void deleteDataset(String datasetName) { + try { + DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build(); + assertTrue(bigquery.delete(datasetInfo.getDatasetId())); + } catch (BigQueryException e) { + fail("Dataset was not deleted. \n" + e); + } + } + + private Connection getConnection() { + + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .build(); // Read API is enabled by default + return bigquery.createConnection(connectionSettings); + } + + private static Map getNextRow() { + rowCnt++; + Map row = new HashMap<>(); + Map structVal = new HashMap<>(); + structVal.put("StringField", "Str Val " + rowCnt); + structVal.put("BooleanField", false); + row.put("RecordField", structVal); // struct + row.put("TimestampField", "2022-04-04 15:03:15.000 +05:30"); + row.put("StringField", "String Val " + rowCnt); + row.put("IntegerArrayField", new int[] {1, 2, 3}); + row.put("BooleanField", true); + row.put("BytesField", BYTES_BASE64); + row.put("IntegerField", 1 + rowCnt); + row.put("GeographyField", "POINT(1 2)"); + row.put("NumericField", 100 + rowCnt); + row.put("BigNumericField", 10000000L + rowCnt); + row.put("TimeField", "12:11:35"); + row.put("DateField", "2022-01-01"); + row.put("JSONField", "{\"hello\":\"world\",\"id\":100}"); + row.put("IntervalField", "10000-0 3660000 87840000:0:0"); + return row; + } +} diff --git a/pom.xml b/pom.xml index ad88672200d1..5283f06a9d4a 100644 --- a/pom.xml +++ b/pom.xml @@ -66,6 +66,21 @@ pom import + + + + com.google.cloud + google-cloud-datacatalog-bom + 1.6.1 + pom + import + com.google.cloud @@ -107,6 +122,13 @@ 1.7.0 + + + org.threeten + threeten-extra + 1.7.0 + + junit @@ -148,10 +170,59 @@ + + + + com.google.protobuf + protobuf-java + + + com.google.cloud + google-cloud-bigquerystorage + 2.8.3 + + + com.google.api.grpc + proto-google-cloud-bigquerystorage-v1 + 2.8.3 + + + org.apache.arrow + arrow-vector + 7.0.0 + + + org.apache.arrow + arrow-memory-core + 7.0.0 + + + org.apache.arrow + arrow-memory-netty + 7.0.0 + runtime + + + google-cloud-bigquery + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + org.apache.arrow:arrow-memory-netty + + + + + + From 78789a5530679349dbee691bd1907ffaefc617a6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 6 May 2022 14:34:49 +0200 Subject: [PATCH 1873/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220429-1.32.1 (#2020) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5283f06a9d4a..06419ac5eace 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220422-1.32.1 + v2-rev20220429-1.32.1 2.10.0 From 59688ddb69909da4676375512610f487b7c1d458 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 6 May 2022 08:02:50 -0700 Subject: [PATCH 1874/3441] chore: restructure dependencies for the new features related to bigquerystorage Java client (#2024) Relates to https://github.com/googleapis/java-bigquery/pull/1374 --- google-cloud-bigquery/pom.xml | 25 +++++++++++ pom.xml | 82 ++++++++++++++--------------------- 2 files changed, 58 insertions(+), 49 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c3abfe1cf7ef..ab0b4d22a3b3 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -93,6 +93,31 @@ org.threeten threeten-extra + + com.google.protobuf + protobuf-java + + + com.google.cloud + google-cloud-bigquerystorage + + + com.google.api.grpc + proto-google-cloud-bigquerystorage-v1 + + + org.apache.arrow + arrow-vector + + + org.apache.arrow + arrow-memory-core + + + org.apache.arrow + arrow-memory-netty + runtime + diff --git a/pom.xml b/pom.xml index 06419ac5eace..76d1c65e41d7 100644 --- a/pom.xml +++ b/pom.xml @@ -66,21 +66,39 @@ pom import - - - - com.google.cloud - google-cloud-datacatalog-bom - 1.6.1 - pom - import - + + + + com.google.cloud + google-cloud-bigquerystorage-bom + 2.8.3 + pom + import + + + org.apache.arrow + arrow-vector + 7.0.0 + + + org.apache.arrow + arrow-memory-core + 7.0.0 + + + org.apache.arrow + arrow-memory-netty + 7.0.0 + runtime + + + + com.google.cloud + google-cloud-datacatalog-bom + 1.6.1 + pom + import + com.google.cloud @@ -170,40 +188,6 @@ - - - - com.google.protobuf - protobuf-java - - - com.google.cloud - google-cloud-bigquerystorage - 2.8.3 - - - com.google.api.grpc - proto-google-cloud-bigquerystorage-v1 - 2.8.3 - - - org.apache.arrow - arrow-vector - 7.0.0 - - - org.apache.arrow - arrow-memory-core - 7.0.0 - - - org.apache.arrow - arrow-memory-netty - 7.0.0 - runtime - - - google-cloud-bigquery From 1022f2f86027d4fb38d0df92fb70c3f06a2c7208 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Fri, 6 May 2022 08:20:13 -0700 Subject: [PATCH 1875/3441] chore: temporarily disable graalvm IT (#2023) Until https://github.com/googleapis/java-bigquery/issues/2007 is fixed. --- owlbot.py | 1 + 1 file changed, 1 insertion(+) diff --git a/owlbot.py b/owlbot.py index 106a89a3bda6..c14fae8627bc 100644 --- a/owlbot.py +++ b/owlbot.py @@ -22,4 +22,5 @@ '.kokoro/dependencies.sh', 'codecov.yaml', 'renovate.json', + 'build.sh', ]) \ No newline at end of file From 5296465e2a9b253ed9e8faa07be3be1e9d308f9b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 6 May 2022 17:24:11 +0200 Subject: [PATCH 1876/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.13.0 (#2025) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.8.3` -> `2.13.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.13.0/compatibility-slim/2.8.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.13.0/confidence-slim/2.8.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes

    googleapis/java-bigquerystorage ### [`v2.13.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2130-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2122v2130-2022-05-05) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.12.2...v2.13.0) ##### Features - add support to a few more specific StorageErrors for the Write API ([#​1563](https://togithub.com/googleapis/java-bigquerystorage/issues/1563)) ([c26091e](https://togithub.com/googleapis/java-bigquerystorage/commit/c26091e48b6542cf2078d46e2dbfe3220ab031f6)) - next release from main branch is 2.12.2 ([#​1624](https://togithub.com/googleapis/java-bigquerystorage/issues/1624)) ([b2aa2a4](https://togithub.com/googleapis/java-bigquerystorage/commit/b2aa2a43752e5a8a71f7bc434397b73d77d8eb58)) ##### Bug Fixes - A stuck when the client fail to get DoneCallback ([#​1637](https://togithub.com/googleapis/java-bigquerystorage/issues/1637)) ([3baa84e](https://togithub.com/googleapis/java-bigquerystorage/commit/3baa84e96671a14936d1667d0e036a1565fa5b7a)) - Fix a possible NULL PTR after introduced timeout on waitForDone ([#​1638](https://togithub.com/googleapis/java-bigquerystorage/issues/1638)) ([e1c6ded](https://togithub.com/googleapis/java-bigquerystorage/commit/e1c6ded336effbe302eee56df056a56a9dbb6b2f)) ##### Dependencies - update dependency com.google.cloud:google-cloud-bigquery to v2.10.10 ([#​1623](https://togithub.com/googleapis/java-bigquerystorage/issues/1623)) ([54b74b8](https://togithub.com/googleapis/java-bigquerystorage/commit/54b74b80368252b93fb445c481731e0edfe3f5c3)) - update dependency org.apache.avro:avro to v1.11.0 ([#​1632](https://togithub.com/googleapis/java-bigquerystorage/issues/1632)) ([b47eea0](https://togithub.com/googleapis/java-bigquerystorage/commit/b47eea05d4db5acaa7337dc4e1faa018d8b4e40d)) ##### Documentation - **samples:** update WriteComittedStream sample code to match best practices ([#​1628](https://togithub.com/googleapis/java-bigquerystorage/issues/1628)) ([5d4c7e1](https://togithub.com/googleapis/java-bigquerystorage/commit/5d4c7e18b82ab85f7498e34a29920e9af765f918)) - **sample:** update WriteToDefaultStream sample to match best practices ([#​1631](https://togithub.com/googleapis/java-bigquerystorage/issues/1631)) ([73ddd7b](https://togithub.com/googleapis/java-bigquerystorage/commit/73ddd7b4fd44dce4be434726df57ecd84e6e3e6a)) ##### [2.12.2](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.12.1...v2.12.2) (2022-04-18) ##### Dependencies - update dependency com.google.cloud:google-cloud-bigquery to v2.10.7 ([#​1614](https://togithub.com/googleapis/java-bigquerystorage/issues/1614)) ([ccdac87](https://togithub.com/googleapis/java-bigquerystorage/commit/ccdac87cc439b5f765d35af6d247b83122c1f40b)) - update dependency com.google.cloud:google-cloud-bigquery to v2.10.8 ([#​1618](https://togithub.com/googleapis/java-bigquerystorage/issues/1618)) ([b9c50f1](https://togithub.com/googleapis/java-bigquerystorage/commit/b9c50f169d6092647becef5d99174be61b095ca8)) - update dependency com.google.cloud:google-cloud-bigquery to v2.10.9 ([#​1620](https://togithub.com/googleapis/java-bigquerystorage/issues/1620)) ([7e1ae93](https://togithub.com/googleapis/java-bigquerystorage/commit/7e1ae93a1ee54a83d93a7421b438a53455dc89c2)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.10.0 ([#​1619](https://togithub.com/googleapis/java-bigquerystorage/issues/1619)) ([55c4134](https://togithub.com/googleapis/java-bigquerystorage/commit/55c413459d029bf521eadf59f3c9fba9a7e876a1)) ##### [2.12.1](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.12.0...v2.12.1) (2022-04-08) ##### Bug Fixes - even better ISO compilance ([#​1607](https://togithub.com/googleapis/java-bigquerystorage/issues/1607)) ([5701597](https://togithub.com/googleapis/java-bigquerystorage/commit/570159799d8d464fbdb5bd617cc2a51f4f276f98)) ##### Dependencies - update dependency com.google.cloud:google-cloud-bigquery to v2.10.6 ([#​1610](https://togithub.com/googleapis/java-bigquerystorage/issues/1610)) ([20e4225](https://togithub.com/googleapis/java-bigquerystorage/commit/20e4225734358bfce7c872e19c823ac6958d7905)) ### [`v2.12.2`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2122-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2121v2122-2022-04-18) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.12.1...v2.12.2) ### [`v2.12.1`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2121-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2120v2121-2022-04-08) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.12.0...v2.12.1) ### [`v2.12.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2120-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2111v2120-2022-04-01) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.11.1...v2.12.0) ##### Features - Deprecate format specific `row_count` field in Read API ([#​1599](https://togithub.com/googleapis/java-bigquerystorage/issues/1599)) ([6f415f6](https://togithub.com/googleapis/java-bigquerystorage/commit/6f415f62685549f50f7382bc7d896e5f60c5285e)) ##### Bug Fixes - better ISO8601 compliance ([#​1589](https://togithub.com/googleapis/java-bigquerystorage/issues/1589)) ([29fa8b7](https://togithub.com/googleapis/java-bigquerystorage/commit/29fa8b73bc092a7ebe8e3951daf2026057d1d040)) ##### Dependencies - update dependency com.google.cloud:google-cloud-bigquery to v2.10.5 ([#​1602](https://togithub.com/googleapis/java-bigquerystorage/issues/1602)) ([8787b5d](https://togithub.com/googleapis/java-bigquerystorage/commit/8787b5d36849981f9497ac2b0ddf8c5291b07fc8)) ##### [2.11.1](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.11.0...v2.11.1) (2022-03-29) ##### Bug Fixes - Numerics cast from strings ([#​1588](https://togithub.com/googleapis/java-bigquerystorage/issues/1588)) ([085768b](https://togithub.com/googleapis/java-bigquerystorage/commit/085768b41943237f50d5e47fa4ba5f22abff9fc6)) ##### Dependencies - update dependency com.google.cloud:google-cloud-bigquery to v2.10.0 ([#​1578](https://togithub.com/googleapis/java-bigquerystorage/issues/1578)) ([adca54e](https://togithub.com/googleapis/java-bigquerystorage/commit/adca54eb0348d2ba02d3c272e180beebd9feb6c6)) - update dependency com.google.cloud:google-cloud-bigquery to v2.10.1 ([#​1583](https://togithub.com/googleapis/java-bigquerystorage/issues/1583)) ([cc33d0e](https://togithub.com/googleapis/java-bigquerystorage/commit/cc33d0e539cc2ed53bf0ab265c5ebe55a0ac6c6e)) - update dependency com.google.cloud:google-cloud-bigquery to v2.10.2 ([#​1587](https://togithub.com/googleapis/java-bigquerystorage/issues/1587)) ([d4ab7f6](https://togithub.com/googleapis/java-bigquerystorage/commit/d4ab7f64e32e4be8d1047d93b34cdadeccd98d90)) - update dependency com.google.cloud:google-cloud-bigquery to v2.10.3 ([#​1591](https://togithub.com/googleapis/java-bigquerystorage/issues/1591)) ([0c62c85](https://togithub.com/googleapis/java-bigquerystorage/commit/0c62c85cf5fead39c04512c49db79d8e95fd44e6)) - update dependency com.google.cloud:google-cloud-bigquery to v2.10.4 ([#​1594](https://togithub.com/googleapis/java-bigquerystorage/issues/1594)) ([05e9062](https://togithub.com/googleapis/java-bigquerystorage/commit/05e90620192747096854e60047cbca1fa6d81ea5)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.9.0 ([#​1593](https://togithub.com/googleapis/java-bigquerystorage/issues/1593)) ([5234809](https://togithub.com/googleapis/java-bigquerystorage/commit/5234809e0482b05e40cbb6cecbb1154699255a59)) ### [`v2.11.1`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2111-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2110v2111-2022-03-29) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.11.0...v2.11.1) ### [`v2.11.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2110-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2101v2110-2022-03-14) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.10.1...v2.11.0) ##### Features - add JsonToProtoMessage support for TIMESTAMP ([#​1574](https://togithub.com/googleapis/java-bigquerystorage/issues/1574)) ([6412fb2](https://togithub.com/googleapis/java-bigquerystorage/commit/6412fb2c03fc6b2c6d220d72bbd89e47922bf970)), closes [#​1515](https://togithub.com/googleapis/java-bigquerystorage/issues/1515) ##### Bug Fixes - a possible race condition that we used table schema out of the lock. ([#​1575](https://togithub.com/googleapis/java-bigquerystorage/issues/1575)) ([b587638](https://togithub.com/googleapis/java-bigquerystorage/commit/b58763833ad4bd51515c055bbcb8e29d9fea05a9)) ##### Dependencies - update dependency com.google.cloud:google-cloud-bigquery to v2.9.1 ([#​1562](https://togithub.com/googleapis/java-bigquerystorage/issues/1562)) ([7efdbf0](https://togithub.com/googleapis/java-bigquerystorage/commit/7efdbf0df14ccc84409d09b5c93ac1058c95d50e)) - update dependency com.google.cloud:google-cloud-bigquery to v2.9.3 ([#​1570](https://togithub.com/googleapis/java-bigquerystorage/issues/1570)) ([3d281d2](https://togithub.com/googleapis/java-bigquerystorage/commit/3d281d2e01f9170eac92ac51757fbd434d9b6b73)) - update dependency com.google.cloud:google-cloud-bigquery to v2.9.4 ([#​1572](https://togithub.com/googleapis/java-bigquerystorage/issues/1572)) ([d3935cd](https://togithub.com/googleapis/java-bigquerystorage/commit/d3935cd3120f49aaae4c4e6839782bfa05836e90)) ##### [2.10.1](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.10.0...v2.10.1) (2022-03-03) ##### Bug Fixes - change customer StorageException from RuntimeException to StatusRuntimeException ([#​1559](https://togithub.com/googleapis/java-bigquerystorage/issues/1559)) ([523377e](https://togithub.com/googleapis/java-bigquerystorage/commit/523377e0bbfbae33165258b8eeed812c81cfeb82)) ##### Dependencies - update actions/checkout action to v3 ([#​1554](https://togithub.com/googleapis/java-bigquerystorage/issues/1554)) ([1371ac9](https://togithub.com/googleapis/java-bigquerystorage/commit/1371ac91bad55711b66e08ddeed6302598329a46)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.8.0 ([#​1555](https://togithub.com/googleapis/java-bigquerystorage/issues/1555)) ([cc25162](https://togithub.com/googleapis/java-bigquerystorage/commit/cc25162021a2b05e68fd3dd1f98e252a10626f6b)) ##### Documentation - improve documentation for write client ([#​1560](https://togithub.com/googleapis/java-bigquerystorage/issues/1560)) ([fbb5321](https://togithub.com/googleapis/java-bigquerystorage/commit/fbb5321bd35bdd7ba81bcb95278d6cdd9abd3dee)) ### [`v2.10.1`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2101-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2100v2101-2022-03-03) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.10.0...v2.10.1) ### [`v2.10.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2100-httpsgithubcomgoogleapisjava-bigquerystoragecomparev291v2100-2022-02-28) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.9.1...v2.10.0) ##### Features - add trace_id for Read API ([#​1544](https://togithub.com/googleapis/java-bigquerystorage/issues/1544)) ([5a92ade](https://togithub.com/googleapis/java-bigquerystorage/commit/5a92ade809d16e2770c07bd5287fbccb75645b21)) ##### Bug Fixes - Add a e2e test on byte string array and remove a impossible case for byte array conversion ([#​1546](https://togithub.com/googleapis/java-bigquerystorage/issues/1546)) ([adcb9bb](https://togithub.com/googleapis/java-bigquerystorage/commit/adcb9bb699e54d93da320e6a458caff79faa2f9f)) - add more idiomatic way to insert ARRAY data ([#​1550](https://togithub.com/googleapis/java-bigquerystorage/issues/1550)) ([3ae4038](https://togithub.com/googleapis/java-bigquerystorage/commit/3ae40381aeacd21676f2c896216faa26eb1ef960)) - remove bigquery.readonly auth scope ([#​1543](https://togithub.com/googleapis/java-bigquerystorage/issues/1543)) ([a70ae45](https://togithub.com/googleapis/java-bigquerystorage/commit/a70ae45c013a311aaeccd6885a9b9752bbcf57cc)) ##### Dependencies - update actions/github-script action to v6 ([#​1533](https://togithub.com/googleapis/java-bigquerystorage/issues/1533)) ([370c3b5](https://togithub.com/googleapis/java-bigquerystorage/commit/370c3b5bf236ab7853c4cc6d32393f93f5a165e4)) - update dependency com.google.cloud:google-cloud-bigquery to v2.9.0 ([#​1538](https://togithub.com/googleapis/java-bigquerystorage/issues/1538)) ([43446b2](https://togithub.com/googleapis/java-bigquerystorage/commit/43446b24438526cc31542a0181fbed610df4b3c0)) ##### Documentation - **tutorials:** Add STRUCT column to tutorial ([#​1534](https://togithub.com/googleapis/java-bigquerystorage/issues/1534)) ([9595dab](https://togithub.com/googleapis/java-bigquerystorage/commit/9595dab89144cb13e812f4a277bb424d98c6591c)) - **tutorials:** Call append asynchronously instead of blocking ([#​1542](https://togithub.com/googleapis/java-bigquerystorage/issues/1542)) ([c777e23](https://togithub.com/googleapis/java-bigquerystorage/commit/c777e236c21204300231c3d3cbfaa3760da643b8)) ##### [2.9.1](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.9.0...v2.9.1) (2022-02-11) ##### Bug Fixes - rollback the reconnect after 10MB behavior after the fix for omg… ([#​1530](https://togithub.com/googleapis/java-bigquerystorage/issues/1530)) ([737bd0e](https://togithub.com/googleapis/java-bigquerystorage/commit/737bd0e2c21332fd1c0c82a12e31ce5749a078fd)) ##### Dependencies - update arrow.version to v7 (major) ([#​1526](https://togithub.com/googleapis/java-bigquerystorage/issues/1526)) ([b6a4479](https://togithub.com/googleapis/java-bigquerystorage/commit/b6a4479e023c6c05bccd3451e929105a1f7b8b9d)) - update dependency org.apache.arrow:arrow-memory-netty to v7 ([#​1527](https://togithub.com/googleapis/java-bigquerystorage/issues/1527)) ([06e927f](https://togithub.com/googleapis/java-bigquerystorage/commit/06e927f071271c12d7c1904b2d2c3f7f9e8338c7)) - update dependency org.apache.arrow:arrow-vector to v7 ([#​1528](https://togithub.com/googleapis/java-bigquerystorage/issues/1528)) ([70297cc](https://togithub.com/googleapis/java-bigquerystorage/commit/70297ccd4828fc08bdf3b021af103aa01975ccb3)) ### [`v2.9.1`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​291-httpsgithubcomgoogleapisjava-bigquerystoragecomparev290v291-2022-02-11) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.9.0...v2.9.1) ### [`v2.9.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​290-httpsgithubcomgoogleapisjava-bigquerystoragecomparev284v290-2022-02-08) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.8.4...v2.9.0) ##### Features - add a indicator of how much time a request is waiting for inflight limit ([#​1514](https://togithub.com/googleapis/java-bigquerystorage/issues/1514)) ([54874be](https://togithub.com/googleapis/java-bigquerystorage/commit/54874be945c2b88be6be03ae654277445c17741d)) - temp workaround for omg/48020 ([#​1521](https://togithub.com/googleapis/java-bigquerystorage/issues/1521)) ([ff28f65](https://togithub.com/googleapis/java-bigquerystorage/commit/ff28f65328fbd433117a314cdff7510a28160591)) ##### Bug Fixes - add a DATE type e2e test ([#​1511](https://togithub.com/googleapis/java-bigquerystorage/issues/1511)) ([5eaf38e](https://togithub.com/googleapis/java-bigquerystorage/commit/5eaf38ee7fb9f84c454e0e9da5fe9092ff4c456a)) ##### Documentation - **tutorials:** Add IT to JsonWriteDefaultStream tutorial ([#​1522](https://togithub.com/googleapis/java-bigquerystorage/issues/1522)) ([9fd7aca](https://togithub.com/googleapis/java-bigquerystorage/commit/9fd7aca8b6032a2c02d0ea91dd063c9ac9e151aa)) ##### [2.8.4](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.8.3...v2.8.4) (2022-02-03) ##### Dependencies - update dependency com.google.cloud:google-cloud-bigquery to v2.7.1 ([#​1505](https://togithub.com/googleapis/java-bigquerystorage/issues/1505)) ([a700d92](https://togithub.com/googleapis/java-bigquerystorage/commit/a700d92c9f591f2b653aad6d79b2f61c4c44df98)) - update dependency com.google.cloud:google-cloud-bigquery to v2.8.0 ([#​1508](https://togithub.com/googleapis/java-bigquerystorage/issues/1508)) ([b9ab6aa](https://togithub.com/googleapis/java-bigquerystorage/commit/b9ab6aac2f360f9ab541d83ad1f2d921657a56bf)) ##### Documentation - **tutorials:** add integration test file structure for tutorials ([#​1507](https://togithub.com/googleapis/java-bigquerystorage/issues/1507)) ([ecb1fbb](https://togithub.com/googleapis/java-bigquerystorage/commit/ecb1fbb1186a2bb22a2c27ba85ff6ecfab883011)) - **tutorials:** Add README, other small fixes to JsonWriterDefaultStream tutorial ([#​1504](https://togithub.com/googleapis/java-bigquerystorage/issues/1504)) ([691eae5](https://togithub.com/googleapis/java-bigquerystorage/commit/691eae56f80a6751f25ef0db4f1d7b4bd6db2f66)) ##### [2.8.3](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.8.2...v2.8.3) (2022-01-28) ##### Dependencies - **java:** update actions/github-script action to v5 ([#​1339](https://togithub.com/googleapis/java-bigquerystorage/issues/1339)) ([#​1491](https://togithub.com/googleapis/java-bigquerystorage/issues/1491)) ([7eea012](https://togithub.com/googleapis/java-bigquerystorage/commit/7eea012ee49ebba9c97273abd6331a63868bf72e)) - update actions/github-script action to v5 ([#​1492](https://togithub.com/googleapis/java-bigquerystorage/issues/1492)) ([580c033](https://togithub.com/googleapis/java-bigquerystorage/commit/580c03363e5f3b8231e8ef491164badf0b126ca8)) - update dependency com.google.cloud:google-cloud-bigquery to v2.7.0 ([#​1499](https://togithub.com/googleapis/java-bigquerystorage/issues/1499)) ([0d414f8](https://togithub.com/googleapis/java-bigquerystorage/commit/0d414f8eaca6daf89b3f981f2c727b217a59e658)) - upgrade google-cloud-shared-dependencies to v2.7.0 ([#​1501](https://togithub.com/googleapis/java-bigquerystorage/issues/1501)) ([3f75e83](https://togithub.com/googleapis/java-bigquerystorage/commit/3f75e83cb5140f633204374a315831ccd09dfae3)) ##### Documentation - **tutorials:** add a README.md ([#​1500](https://togithub.com/googleapis/java-bigquerystorage/issues/1500)) ([c50c6a0](https://togithub.com/googleapis/java-bigquerystorage/commit/c50c6a039a47cc6e0a1e56966142b21e476074c8)) - **tutorials:** add new tutorials directory and JsonWriterDefaultStream tutorial ([#​1498](https://togithub.com/googleapis/java-bigquerystorage/issues/1498)) ([fd1ecf2](https://togithub.com/googleapis/java-bigquerystorage/commit/fd1ecf2a8e7b96b7edbf5c9b6d12dedee8c9ba49)) ##### [2.8.2](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.8.1...v2.8.2) (2022-01-25) ##### Bug Fixes - **java:** add reflection configuration for native-image testing ([#​1488](https://togithub.com/googleapis/java-bigquerystorage/issues/1488)) ([d87fe28](https://togithub.com/googleapis/java-bigquerystorage/commit/d87fe282800b4ef4a9c5ecf918278a84eb20ce5d)) ##### Documentation - **samples:** add finalize call to our samples ([#​1471](https://togithub.com/googleapis/java-bigquerystorage/issues/1471)) ([47e3654](https://togithub.com/googleapis/java-bigquerystorage/commit/47e36543480bf495f4caea63419bb3b31ac7638c)) - **samples:** update to v1 in doc URls ([#​1489](https://togithub.com/googleapis/java-bigquerystorage/issues/1489)) ([7efe427](https://togithub.com/googleapis/java-bigquerystorage/commit/7efe4273d9afebac6f67ed46763d5896b4b1bbcd)) ##### Dependencies - exclude un-used runtime dependencies brought in by gax-grpc ([#​1490](https://togithub.com/googleapis/java-bigquerystorage/issues/1490)) ([3e7833e](https://togithub.com/googleapis/java-bigquerystorage/commit/3e7833ea33ceac5f3e7cb9696a6e7ef6e914469b)) - update dependency com.google.cloud:google-cloud-bigquery to v2.6.1 ([#​1473](https://togithub.com/googleapis/java-bigquerystorage/issues/1473)) ([f996cdb](https://togithub.com/googleapis/java-bigquerystorage/commit/f996cdbbc6cc9ad7c6a649ebb649ae005054f36e)) - update dependency com.google.cloud:google-cloud-bigquery to v2.6.2 ([#​1475](https://togithub.com/googleapis/java-bigquerystorage/issues/1475)) ([37c1fd8](https://togithub.com/googleapis/java-bigquerystorage/commit/37c1fd887acfc5676ebb55e085b6e3514b6e5ca4)) - update dependency kr.motd.maven:os-maven-plugin to v1.7.0 ([#​1476](https://togithub.com/googleapis/java-bigquerystorage/issues/1476)) ([e038151](https://togithub.com/googleapis/java-bigquerystorage/commit/e038151442c4fd86e94ab7f3d02989c73a23ee91)) ##### [2.8.1](https://www.github.com/googleapis/java-bigquerystorage/compare/v2.8.0...v2.8.1) (2022-01-07) ##### Bug Fixes - **java:** run Maven in plain console-friendly mode ([#​1301](https://www.togithub.com/googleapis/java-bigquerystorage/issues/1301)) ([#​1461](https://www.togithub.com/googleapis/java-bigquerystorage/issues/1461)) ([6b9e08c](https://www.github.com/googleapis/java-bigquerystorage/commit/6b9e08c4736cfdb4d98bf3c8f782a87ab68580ce)) ##### Dependencies - update dependency com.google.cloud:google-cloud-bigquery to v2.6.0 ([#​1459](https://www.togithub.com/googleapis/java-bigquerystorage/issues/1459)) ([323813c](https://www.github.com/googleapis/java-bigquerystorage/commit/323813c88cd673bbf3f8631f03ac1732f7d3ac53)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.6.0 ([#​1467](https://www.togithub.com/googleapis/java-bigquerystorage/issues/1467)) ([8ebb448](https://www.github.com/googleapis/java-bigquerystorage/commit/8ebb448ff0a1188124c1deeebe4bddbfe277e35b)) ### [`v2.8.4`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​284-httpsgithubcomgoogleapisjava-bigquerystoragecomparev283v284-2022-02-03) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.8.3...v2.8.4)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 76d1c65e41d7..c1d8cc97825e 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.8.3 + 2.13.0 pom import From c5c1bb016c9fa26d8dad9437f81bf7c603cf6cec Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 9 May 2022 10:28:12 -0400 Subject: [PATCH 1877/3441] chore(deps): manage arrow version in the parent pom properties (#2029) so that we don't get multiple dependency update PRs for arrow-related dependencies --- pom.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index c1d8cc97825e..ccb4ccc1d679 100644 --- a/pom.xml +++ b/pom.xml @@ -55,6 +55,7 @@ google-cloud-bigquery-parent v2-rev20220429-1.32.1 2.10.0 + 8.0.0
    @@ -78,17 +79,17 @@ org.apache.arrow arrow-vector - 7.0.0 + ${arrow.version} org.apache.arrow arrow-memory-core - 7.0.0 + ${arrow.version} org.apache.arrow arrow-memory-netty - 7.0.0 + ${arrow.version} runtime From aeca04da45b5f92199f0f5e55e757e666d98367d Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Mon, 9 May 2022 12:01:34 -0400 Subject: [PATCH 1878/3441] chore: disable graalvm ITs till #2007 is fixed (#2032) --- .kokoro/build.sh | 10 +++++----- owlbot.py | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index f5a684ca35db..eeaa07835304 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -69,11 +69,11 @@ integration) verify RETURN_CODE=$? ;; -graalvm) - # Run Unit and Integration Tests with Native Image - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test - RETURN_CODE=$? - ;; +#graalvm) +# # Run Unit and Integration Tests with Native Image +# mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test +# RETURN_CODE=$? +# ;; samples) SAMPLES_DIR=samples # only run ITs in snapshot/ on presubmit PRs. run ITs in all 3 samples/ subdirectories otherwise. diff --git a/owlbot.py b/owlbot.py index c14fae8627bc..55f7f4101ee8 100644 --- a/owlbot.py +++ b/owlbot.py @@ -22,5 +22,5 @@ '.kokoro/dependencies.sh', 'codecov.yaml', 'renovate.json', - 'build.sh', + '.kokoro/build.sh', ]) \ No newline at end of file From db3daacea8a91ab80b7e923f1480874b01cbad0c Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Tue, 10 May 2022 19:59:24 +0530 Subject: [PATCH 1879/3441] fix: fix for flaky connection close issue (#2034) * Added hasReachedEnd flag in next() method to avoid blocking * Added and wired markEoS and markLast methods. Minor refactor --- .../cloud/bigquery/BigQueryResultImpl.java | 9 +++ .../google/cloud/bigquery/ConnectionImpl.java | 73 +++++++++++++------ 2 files changed, 61 insertions(+), 21 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java index 7c24ca0dd431..2a2aba7cd2ba 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java @@ -106,18 +106,27 @@ public ResultSet getResultSet() { } private class BigQueryResultSet extends AbstractJdbcResultSet { + private boolean hasReachedEnd = + false; // flag which will be set to true when we have encountered a EndOfStream or when + // curTup.isLast(). Ref: https://github.com/googleapis/java-bigquery/issues/2033 + @Override /*Advances the result set to the next row, returning false if no such row exists. Potentially blocking operation*/ public boolean next() throws SQLException { + if (hasReachedEnd) { // if end of stream is reached then we can simply return false + return false; + } try { cursor = buffer.take(); // advance the cursor,Potentially blocking operation if (isEndOfStream(cursor)) { // check for end of stream cursor = null; + hasReachedEnd = true; return false; } else if (cursor instanceof Row) { Row curTup = (Row) cursor; if (curTup.isLast()) { // last Tuple cursor = null; + hasReachedEnd = true; return false; } return true; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index c24a00888d21..b43615141c9a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -20,6 +20,7 @@ import static java.net.HttpURLConnection.HTTP_NOT_FOUND; import com.google.api.core.BetaApi; +import com.google.api.core.InternalApi; import com.google.api.services.bigquery.model.GetQueryResultsResponse; import com.google.api.services.bigquery.model.JobConfigurationQuery; import com.google.api.services.bigquery.model.QueryParameter; @@ -496,6 +497,38 @@ void parseRpcDataAsync( queryTaskExecutor.execute(parseDataTask); } + /** + * This method is called when the current thread is interrupted, this communicates to ResultSet by + * adding a EoS + * + * @param buffer + */ + @InternalApi + void markEoS(BlockingQueue> buffer) { // package-private + try { + buffer.put(new EndOfFieldValueList()); // All the pages has been processed, put this marker + } catch (InterruptedException e) { + logger.log(Level.WARNING, "\n" + Thread.currentThread().getName() + " Interrupted", e); + } + } + + /** + * This method is called when the current thread is interrupted, this communicates to ResultSet by + * adding a isLast Row + * + * @param buffer + */ + @InternalApi + void markLast(BlockingQueue buffer) { // package-private + try { + buffer.put( + new BigQueryResultImpl.Row( + null, true)); // All the pages has been processed, put this marker + } catch (InterruptedException e) { + logger.log(Level.WARNING, "\n" + Thread.currentThread().getName() + " Interrupted", e); + } + } + @VisibleForTesting void populateBufferAsync( BlockingQueue> rpcResponseQueue, @@ -516,11 +549,15 @@ void populateBufferAsync( "\n" + Thread.currentThread().getName() + " Interrupted", e); // Thread might get interrupted while calling the Cancel method, which is // expected, so logging this instead of throwing the exception back + markEoS( + buffer); // Thread has been interrupted, communicate to ResultSet by adding EoS } if (Thread.currentThread().isInterrupted() || fieldValueLists == null) { // do not process further pages and shutdown (outerloop) + markEoS( + buffer); // Thread has been interrupted, communicate to ResultSet by adding EoS break; } @@ -528,6 +565,9 @@ void populateBufferAsync( try { if (Thread.currentThread() .isInterrupted()) { // do not process further pages and shutdown (inner loop) + markEoS( + buffer); // Thread has been interrupted, communicate to ResultSet by adding + // EoS break; } buffer.put(fieldValueList); @@ -537,19 +577,15 @@ void populateBufferAsync( } } - if (Thread.currentThread() - .isInterrupted()) { // clear the buffer for any outstanding records - buffer.clear(); - rpcResponseQueue - .clear(); // IMP - so that if it's full then it unblocks and the interrupt logic - // could trigger - } - try { - buffer.put( - new EndOfFieldValueList()); // All the pages has been processed, put this marker - } catch (InterruptedException e) { - throw new BigQueryException(0, e.getMessage(), e); + if (Thread.currentThread() + .isInterrupted()) { // clear the buffer for any outstanding records + rpcResponseQueue + .clear(); // IMP - so that if it's full then it unblocks and the interrupt logic + // could trigger + buffer.clear(); + } + markEoS(buffer); // All the pages has been processed, put this marker } finally { queryTaskExecutor.shutdownNow(); // Shutdown the thread pool } @@ -790,12 +826,8 @@ private void processArrowStreamAsync( } catch (Exception e) { throw BigQueryException.translateAndThrow(e); } finally { - try { - buffer.put(new BigQueryResultImpl.Row(null, true)); // marking end of stream - queryTaskExecutor.shutdownNow(); // Shutdown the thread pool - } catch (InterruptedException e) { - logger.log(Level.WARNING, "\n Error occurred ", e); - } + markLast(buffer); // marking end of stream + queryTaskExecutor.shutdownNow(); // Shutdown the thread pool } }; @@ -856,6 +888,7 @@ private void processRows( if (Thread.currentThread().isInterrupted() || queryTaskExecutor.isShutdown()) { // do not process and shutdown + markLast(buffer); // puts an isLast Row in the buffer for ResultSet to process break; // exit the loop, root will be cleared in the finally block } @@ -869,9 +902,7 @@ private void processRows( } buffer.put(new BigQueryResultImpl.Row(curRow)); } - root.clear(); // TODO: make sure to clear the root while implementing the thread - // interruption logic (Connection.close method) - + root.clear(); } catch (RuntimeException | InterruptedException e) { throw BigQueryException.translateAndThrow(e); } finally { From 938c6248424b5f270e6264644d1db8679ae80c44 Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Tue, 10 May 2022 23:41:09 +0530 Subject: [PATCH 1880/3441] Updated initialization logic for ConnectionSettings, and refactored (#2035) --- .../ConnImplBenchmark.java | 26 +++---------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java b/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java index 36c27eb6a9fe..40c5fc11d4a6 100644 --- a/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java +++ b/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java @@ -60,33 +60,13 @@ public class ConnImplBenchmark { @Setup public void setUp() throws IOException { java.util.logging.Logger.getGlobal().setLevel(Level.ALL); - ReadClientConnectionConfiguration clientConnectionConfiguration; - - clientConnectionConfiguration = - ReadClientConnectionConfiguration.newBuilder() - .setTotalToPageRowCountRatio(NUM_PAGE_ROW_CNT_RATIO) - .setMinResultSize(NUM_MIN_RESULT_SIZE) - .setBufferSize(numBuffRows) - .build(); connectionSettingsReadAPIEnabled = ConnectionSettings.newBuilder() - .setDefaultDataset(DatasetId.of(DATASET)) - .setNumBufferedRows(numBuffRows) // page size - .setPriority( - QueryJobConfiguration.Priority - .INTERACTIVE) // DEFAULT VALUE - so that isFastQuerySupported returns false - .setReadClientConnectionConfiguration(clientConnectionConfiguration) .setUseReadAPI(true) // enable read api .build(); connectionSettingsReadAPIDisabled = ConnectionSettings.newBuilder() - .setDefaultDataset(DatasetId.of(DATASET)) - .setNumBufferedRows(numBuffRows) // page size - .setPriority( - QueryJobConfiguration.Priority - .INTERACTIVE) // so that isFastQuerySupported returns false - .setReadClientConnectionConfiguration(clientConnectionConfiguration) .setUseReadAPI(false) // disable read api .build(); } @@ -101,7 +81,7 @@ public void iterateRecordsUsingReadAPI(Blackhole blackhole) String selectQuery = String.format(QUERY, rowLimit); long hash = 0L; try { - BigQueryResultSet bigQueryResultSet = connectionReadAPIEnabled.executeSelect(selectQuery); + BigQueryResult bigQueryResultSet = connectionReadAPIEnabled.executeSelect(selectQuery); hash = getResultHash(bigQueryResultSet); } catch (Exception e) { e.printStackTrace(); @@ -121,7 +101,7 @@ public void iterateRecordsWithoutUsingReadAPI(Blackhole blackhole) String selectQuery = String.format(QUERY, rowLimit); long hash = 0L; try { - BigQueryResultSet bigQueryResultSet = connectionReadAPIDisabled.executeSelect(selectQuery); + BigQueryResult bigQueryResultSet = connectionReadAPIDisabled.executeSelect(selectQuery); hash = getResultHash(bigQueryResultSet); } catch (Exception e) { e.printStackTrace(); @@ -132,7 +112,7 @@ public void iterateRecordsWithoutUsingReadAPI(Blackhole blackhole) } // Hashes all the 20 columns of all the rows - private long getResultHash(BigQueryResultSet bigQueryResultSet) throws SQLException { + private long getResultHash(BigQueryResult bigQueryResultSet) throws SQLException { ResultSet rs = bigQueryResultSet.getResultSet(); long hash = 0L; int cnt = 0; From 7164add624198dc40fedca13c105204a56086c17 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 10 May 2022 18:30:13 +0000 Subject: [PATCH 1881/3441] chore(main): release 2.11.0 (#1998) :robot: I have created a release *beep* *boop* --- ## [2.11.0](https://github.com/googleapis/java-bigquery/compare/v2.10.10...v2.11.0) (2022-05-10) ### Features * add Connection interface ([#1374](https://github.com/googleapis/java-bigquery/issues/1374)) ([3804275](https://github.com/googleapis/java-bigquery/commit/380427511b33938209241f3800bff05914957f2b)) * next release from main branch is 2.10.9 ([#1996](https://github.com/googleapis/java-bigquery/issues/1996)) ([f716427](https://github.com/googleapis/java-bigquery/commit/f716427490d4b87573669ab4338335c0844e82c0)) ### Bug Fixes * add native image configuration for Arrow ([#2018](https://github.com/googleapis/java-bigquery/issues/2018)) ([06cbe69](https://github.com/googleapis/java-bigquery/commit/06cbe69112e3e0d31e4fb90e43dca6e6dc4f1bdf)) * fix for flaky connection close issue ([#2034](https://github.com/googleapis/java-bigquery/issues/2034)) ([db3daac](https://github.com/googleapis/java-bigquery/commit/db3daacea8a91ab80b7e923f1480874b01cbad0c)) ### Documentation * **sample:** remove unused dependency and add setup instructions ([#2010](https://github.com/googleapis/java-bigquery/issues/2010)) ([e2e9113](https://github.com/googleapis/java-bigquery/commit/e2e91133718d41349a94b5d93d66699e84233e64)) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220422-1.32.1 ([#2017](https://github.com/googleapis/java-bigquery/issues/2017)) ([b9fa786](https://github.com/googleapis/java-bigquery/commit/b9fa786ad1bca2fb763a146fa3bb431ff6860153)) * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220429-1.32.1 ([#2020](https://github.com/googleapis/java-bigquery/issues/2020)) ([78789a5](https://github.com/googleapis/java-bigquery/commit/78789a5530679349dbee691bd1907ffaefc617a6)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 25 +++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 32 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f17245708829..9f5d81197b8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,30 @@ # Changelog +## [2.11.0](https://github.com/googleapis/java-bigquery/compare/v2.10.10...v2.11.0) (2022-05-10) + + +### Features + +* add Connection interface ([#1374](https://github.com/googleapis/java-bigquery/issues/1374)) ([3804275](https://github.com/googleapis/java-bigquery/commit/380427511b33938209241f3800bff05914957f2b)) +* next release from main branch is 2.10.9 ([#1996](https://github.com/googleapis/java-bigquery/issues/1996)) ([f716427](https://github.com/googleapis/java-bigquery/commit/f716427490d4b87573669ab4338335c0844e82c0)) + + +### Bug Fixes + +* add native image configuration for Arrow ([#2018](https://github.com/googleapis/java-bigquery/issues/2018)) ([06cbe69](https://github.com/googleapis/java-bigquery/commit/06cbe69112e3e0d31e4fb90e43dca6e6dc4f1bdf)) +* fix for flaky connection close issue ([#2034](https://github.com/googleapis/java-bigquery/issues/2034)) ([db3daac](https://github.com/googleapis/java-bigquery/commit/db3daacea8a91ab80b7e923f1480874b01cbad0c)) + + +### Documentation + +* **sample:** remove unused dependency and add setup instructions ([#2010](https://github.com/googleapis/java-bigquery/issues/2010)) ([e2e9113](https://github.com/googleapis/java-bigquery/commit/e2e91133718d41349a94b5d93d66699e84233e64)) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220422-1.32.1 ([#2017](https://github.com/googleapis/java-bigquery/issues/2017)) ([b9fa786](https://github.com/googleapis/java-bigquery/commit/b9fa786ad1bca2fb763a146fa3bb431ff6860153)) +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220429-1.32.1 ([#2020](https://github.com/googleapis/java-bigquery/issues/2020)) ([78789a5](https://github.com/googleapis/java-bigquery/commit/78789a5530679349dbee691bd1907ffaefc617a6)) + ### [2.10.10](https://github.com/googleapis/java-bigquery/compare/v2.10.9...v2.10.10) (2022-04-18) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index db892112cbb2..f86445f31d4e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.10.11-SNAPSHOT + 2.11.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ab0b4d22a3b3..911ddc9334de 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.10.11-SNAPSHOT + 2.11.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.10.11-SNAPSHOT + 2.11.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ccb4ccc1d679..bfc0b544f5ef 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.10.11-SNAPSHOT + 2.11.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.10.11-SNAPSHOT + 2.11.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index befe43618055..3d45f9834167 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.10.11-SNAPSHOT + 2.11.0 diff --git a/versions.txt b/versions.txt index ad1668e67d3d..0a094a6c6734 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.10.10:2.10.11-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.11.0:2.11.0 \ No newline at end of file From fdb35f9dbc676c4a7ec2f924dd48a84e8de7b923 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 10 May 2022 18:50:16 +0000 Subject: [PATCH 1882/3441] chore(main): release 2.11.1-SNAPSHOT (#2036) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f86445f31d4e..c763a5dce6d0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.11.0 + 2.11.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 911ddc9334de..3af4c1cb8349 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.11.0 + 2.11.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.11.0 + 2.11.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bfc0b544f5ef..9532335f98d5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.11.0 + 2.11.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.11.0 + 2.11.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3d45f9834167..97350f9006e3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.11.0 + 2.11.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0a094a6c6734..54b6871551de 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.11.0:2.11.0 \ No newline at end of file +google-cloud-bigquery:2.11.0:2.11.1-SNAPSHOT \ No newline at end of file From be68b35176634be371f74e50c11785de23027c59 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Wed, 11 May 2022 11:55:09 -0400 Subject: [PATCH 1883/3441] chore: setup nightly integration tests (#2038) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: setup nightly integration tests * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .kokoro/build.sh | 12 +++++++- .kokoro/nightly/nightly-integration.cfg | 37 +++++++++++++++++++++++++ README.md | 4 +-- 3 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 .kokoro/nightly/nightly-integration.cfg diff --git a/.kokoro/build.sh b/.kokoro/build.sh index eeaa07835304..62eaa83a0ddd 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -61,7 +61,7 @@ javadoc) integration) mvn -B ${INTEGRATION_TEST_ARGS} \ -ntp \ - -Penable-integration-tests \ + -Dtest=ITBigQueryTest\ -DtrimStackTrace=false \ -Dclirr.skip=true \ -Denforcer.skip=true \ @@ -69,6 +69,16 @@ integration) verify RETURN_CODE=$? ;; +nightly-it) + mvn -B ${INTEGRATION_TEST_ARGS} \ + -ntp \ + -Dtest=ITNightlyBigQueryTest + -DtrimStackTrace=false \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -fae \ + test + ;; #graalvm) # # Run Unit and Integration Tests with Native Image # mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test diff --git a/.kokoro/nightly/nightly-integration.cfg b/.kokoro/nightly/nightly-integration.cfg new file mode 100644 index 000000000000..675f79918286 --- /dev/null +++ b/.kokoro/nightly/nightly-integration.cfg @@ -0,0 +1,37 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/java8" +} + +env_vars: { + key: "JOB_TYPE" + value: "nightly-it" +} +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "java-docs-samples-testing" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "java-docs-samples-testing" +} + +env_vars: { + key: "ENABLE_FLAKYBOT" + value: "true" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} diff --git a/README.md b/README.md index 8589bfc2b409..9eca24b8c213 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.10.10' +implementation 'com.google.cloud:google-cloud-bigquery:2.11.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.10.10" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.11.0" ``` ## Authentication From dba9fdef6251212cd5bbe016999ed26831a156af Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 11 May 2022 17:55:55 +0200 Subject: [PATCH 1884/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.11.0 (#2037) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.11.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9eca24b8c213..7afce7e97f76 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.10.10 + 2.11.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4b298cce877c..3ce7cebc4f06 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.10.10 + 2.11.0 From ec10547a16a141d7b222f0d34f1b85fcf8b436a0 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 12 May 2022 15:46:12 -0400 Subject: [PATCH 1885/3441] chore: fix nightly integration test (#2041) Fixes #2009 --- .kokoro/build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 62eaa83a0ddd..9a64ef854df1 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -77,7 +77,8 @@ nightly-it) -Dclirr.skip=true \ -Denforcer.skip=true \ -fae \ - test + verify + RETURN_CODE=$? ;; #graalvm) # # Run Unit and Integration Tests with Native Image From 3ab34d2c4c6e5b8c0b20fcf32d807c4d075791a9 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Fri, 13 May 2022 11:12:00 -0400 Subject: [PATCH 1886/3441] chore: fix typo (#2043) --- .kokoro/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 9a64ef854df1..3c45ad23a278 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -61,7 +61,7 @@ javadoc) integration) mvn -B ${INTEGRATION_TEST_ARGS} \ -ntp \ - -Dtest=ITBigQueryTest\ + -Dtest=ITBigQueryTest \ -DtrimStackTrace=false \ -Dclirr.skip=true \ -Denforcer.skip=true \ @@ -72,7 +72,7 @@ integration) nightly-it) mvn -B ${INTEGRATION_TEST_ARGS} \ -ntp \ - -Dtest=ITNightlyBigQueryTest + -Dtest=ITNightlyBigQueryTest \ -DtrimStackTrace=false \ -Dclirr.skip=true \ -Denforcer.skip=true \ From 8c9efa08607be88332c89f4ab417f7d4ab2f3a97 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 16 May 2022 17:47:10 +0200 Subject: [PATCH 1887/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v25.3.0 (#2045) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v25.3.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7afce7e97f76..34a0ae2286a6 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 25.2.0 + 25.3.0 pom import @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:25.2.0') +implementation platform('com.google.cloud:libraries-bom:25.3.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index de1ea6adf7df..ad74463cb686 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 25.2.0 + 25.3.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 26550a1c5b48..1e8dd6ef9e2b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 25.2.0 + 25.3.0 pom import From 081888e9ab9bc2c68e607fb11ff1ee40ac58873a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 16 May 2022 19:38:12 +0200 Subject: [PATCH 1888/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220507-1.32.1 (#2042) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20220429-1.32.1` -> `v2-rev20220507-1.32.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220507-1.32.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220507-1.32.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220507-1.32.1/compatibility-slim/v2-rev20220429-1.32.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220507-1.32.1/confidence-slim/v2-rev20220429-1.32.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9532335f98d5..837b8297a65e 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220429-1.32.1 + v2-rev20220507-1.32.1 2.10.0 8.0.0 From d231fac94fd6f3990963955ec88b63afec97db0d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 16 May 2022 17:56:14 +0000 Subject: [PATCH 1889/3441] chore(main): release 2.11.1 (#2046) :robot: I have created a release *beep* *boop* --- ### [2.11.1](https://github.com/googleapis/java-bigquery/compare/v2.11.0...v2.11.1) (2022-05-16) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220507-1.32.1 ([#2042](https://github.com/googleapis/java-bigquery/issues/2042)) ([081888e](https://github.com/googleapis/java-bigquery/commit/081888e9ab9bc2c68e607fb11ff1ee40ac58873a)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f5d81197b8f..748304184f56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [2.11.1](https://github.com/googleapis/java-bigquery/compare/v2.11.0...v2.11.1) (2022-05-16) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220507-1.32.1 ([#2042](https://github.com/googleapis/java-bigquery/issues/2042)) ([081888e](https://github.com/googleapis/java-bigquery/commit/081888e9ab9bc2c68e607fb11ff1ee40ac58873a)) + ## [2.11.0](https://github.com/googleapis/java-bigquery/compare/v2.10.10...v2.11.0) (2022-05-10) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c763a5dce6d0..f3ac092bbe86 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.11.1-SNAPSHOT + 2.11.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3af4c1cb8349..c110be21153e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.11.1-SNAPSHOT + 2.11.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.11.1-SNAPSHOT + 2.11.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 837b8297a65e..32a041937555 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.11.1-SNAPSHOT + 2.11.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.11.1-SNAPSHOT + 2.11.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 97350f9006e3..3715d2b05fc8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.11.1-SNAPSHOT + 2.11.1 diff --git a/versions.txt b/versions.txt index 54b6871551de..e5caec1bb2a1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.11.0:2.11.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.11.1:2.11.1 \ No newline at end of file From c7e5a91015e6338bbbe3a026621f975ed8c74020 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 16 May 2022 18:10:19 +0000 Subject: [PATCH 1890/3441] chore(main): release 2.11.2-SNAPSHOT (#2047) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f3ac092bbe86..c1e3382e94e7 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.11.1 + 2.11.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c110be21153e..e2707c1e788f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.11.1 + 2.11.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.11.1 + 2.11.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 32a041937555..ebc31870ef53 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.11.1 + 2.11.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.11.1 + 2.11.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3715d2b05fc8..40c892c2bba3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.11.1 + 2.11.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index e5caec1bb2a1..d0677dd3a669 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.11.1:2.11.1 \ No newline at end of file +google-cloud-bigquery:2.11.1:2.11.2-SNAPSHOT \ No newline at end of file From bf77967e006bf699861550fc95205b9f66af6567 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 17 May 2022 16:42:07 +0200 Subject: [PATCH 1891/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.11.1 (#2048) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.11.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 34a0ae2286a6..ef43a359add9 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.11.0 + 2.11.1 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.11.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.11.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.11.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.11.1" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3ce7cebc4f06..906f422e0037 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.11.0 + 2.11.1 From 251d4686d22e0000982bcd891de68491326558fe Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Wed, 18 May 2022 21:06:12 +0530 Subject: [PATCH 1892/3441] fix: NPE issue with testMultipleRuns (#2050) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added a `null` check for `firstPage.getSchema()` as we might get null schema when the job is long running (We get schema using dryRun in such cases) Fixes #2049 ☕️ --- .../main/java/com/google/cloud/bigquery/ConnectionImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index b43615141c9a..cc330a90a072 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -234,8 +234,10 @@ public BigQueryResult executeSelect( BigQueryResult getResultSet( GetQueryResultsResponse firstPage, JobId jobId, String sql, Boolean hasQueryParameters) { if (firstPage.getJobComplete() - && firstPage.getTotalRows() - != null) { // firstPage.getTotalRows() is null if job is not complete + && firstPage.getTotalRows() != null + && firstPage.getSchema() + != null) { // firstPage.getTotalRows() is null if job is not complete. We need to make + // sure that the schema is not null, as it is required for the ResultSet return getSubsequentQueryResultsWithJob( firstPage.getTotalRows().longValue(), (long) firstPage.getRows().size(), From 9993717d546c4039cb8c846787fdd131cc0c113f Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Wed, 18 May 2022 21:08:55 +0530 Subject: [PATCH 1893/3441] fix: Flaky connenction close issue (#2044) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added EoS mark in populate buffer. changed log level to Fine. Minor refactor * Updated count assertion @ testConnectionClose * Updated condition to trigger `connection.close` at testConnectionClose * Added and wired flagEndOfStream. Refactored and improved Thread interrupt logic * Add testConnectionClose for checking connection close while using Read API * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../google/cloud/bigquery/ConnectionImpl.java | 195 +++++++++++------- .../cloud/bigquery/it/ITBigQueryTest.java | 5 +- .../bigquery/it/ITNightlyBigQueryTest.java | 26 ++- 3 files changed, 142 insertions(+), 84 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index cc330a90a072..be5174b260f5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -87,7 +87,11 @@ class ConnectionImpl implements Connection { Executors.newFixedThreadPool(MAX_PROCESS_QUERY_THREADS_CNT); private final Logger logger = Logger.getLogger(this.getClass().getName()); private BigQueryReadClient bqReadClient; - private static final long EXECUTOR_TIMEOUT_SEC = 5; + private static final long EXECUTOR_TIMEOUT_SEC = 10; + private BlockingQueue> + bufferFvl; // initialized lazily iff we end up using the tabledata.list end point + private BlockingQueue + bufferRow; // initialized lazily iff we end up using Read API ConnectionImpl( ConnectionSettings connectionSettings, @@ -107,6 +111,19 @@ class ConnectionImpl implements Connection { : Math.min(connectionSettings.getNumBufferedRows() * 2, 100000)); } + /** + * This method returns the number of records to be stored in the buffer and it ensures that it is + * between a reasonable range + * + * @return The max number of records to be stored in the buffer + */ + private int getBufferSize() { + return (connectionSettings == null + || connectionSettings.getNumBufferedRows() == null + || connectionSettings.getNumBufferedRows() < 10000 + ? 20000 + : Math.min(connectionSettings.getNumBufferedRows() * 2, 100000)); + } /** * Cancel method shutdowns the pageFetcher and producerWorker threads gracefully using interrupt. * The pageFetcher threat will not request for any subsequent threads after interrupting and @@ -119,12 +136,14 @@ class ConnectionImpl implements Connection { @BetaApi @Override public synchronized boolean close() throws BigQuerySQLException { + flagEndOfStream(); // an End of Stream flag in the buffer so that the `ResultSet.next()` stops + // advancing the cursor queryTaskExecutor.shutdownNow(); try { - queryTaskExecutor.awaitTermination( - EXECUTOR_TIMEOUT_SEC, TimeUnit.SECONDS); // wait for the executor shutdown + if (queryTaskExecutor.awaitTermination(EXECUTOR_TIMEOUT_SEC, TimeUnit.SECONDS)) { + return true; + } // else queryTaskExecutor.isShutdown() will be returned outside this try block } catch (InterruptedException e) { - e.printStackTrace(); logger.log( Level.WARNING, "\n" + Thread.currentThread().getName() + " Exception while awaitTermination", @@ -330,7 +349,7 @@ BigQueryResult tableDataList(GetQueryResultsResponse firstPage, JobId jobId) { BigQueryResultStats bigQueryResultStats = getBigQueryResultSetStats(jobId); // Keeps the deserialized records at the row level, which is consumed by BigQueryResult - BlockingQueue> buffer = new LinkedBlockingDeque<>(bufferSize); + bufferFvl = new LinkedBlockingDeque<>(getBufferSize()); // Keeps the parsed FieldValueLists BlockingQueue, Boolean>> pageCache = @@ -352,11 +371,11 @@ BigQueryResult tableDataList(GetQueryResultsResponse firstPage, JobId jobId) { // throughput populateBufferAsync( - rpcResponseQueue, pageCache, buffer); // spawns a thread to populate the buffer + rpcResponseQueue, pageCache, bufferFvl); // spawns a thread to populate the buffer // This will work for pagination as well, as buffer is getting updated asynchronously return new BigQueryResultImpl>( - schema, numRows, buffer, bigQueryResultStats); + schema, numRows, bufferFvl, bigQueryResultStats); } @VisibleForTesting @@ -384,7 +403,7 @@ BigQueryResult processQueryResponseResults( BigQueryResultStats bigQueryResultStats = new BigQueryResultStatsImpl(queryStatistics, sessionInfo); - BlockingQueue> buffer = new LinkedBlockingDeque<>(bufferSize); + bufferFvl = new LinkedBlockingDeque<>(getBufferSize()); BlockingQueue, Boolean>> pageCache = new LinkedBlockingDeque<>( getPageCacheSize(connectionSettings.getNumBufferedRows(), schema)); @@ -401,10 +420,10 @@ BigQueryResult processQueryResponseResults( parseRpcDataAsync(results.getRows(), schema, pageCache, rpcResponseQueue); // Thread to populate the buffer (a blocking queue) shared with the consumer - populateBufferAsync(rpcResponseQueue, pageCache, buffer); + populateBufferAsync(rpcResponseQueue, pageCache, bufferFvl); return new BigQueryResultImpl>( - schema, numRows, buffer, bigQueryResultStats); + schema, numRows, bufferFvl, bigQueryResultStats); } @VisibleForTesting @@ -420,6 +439,11 @@ void runNextPageTaskAsync( while (pageToken != null) { // paginate for non null token if (Thread.currentThread().isInterrupted() || queryTaskExecutor.isShutdown()) { // do not process further pages and shutdown + logger.log( + Level.WARNING, + "\n" + + Thread.currentThread().getName() + + " Interrupted @ runNextPageTaskAsync"); break; } TableDataList tabledataList = tableDataListRpc(destinationTable, pageToken); @@ -432,12 +456,12 @@ void runNextPageTaskAsync( } rpcResponseQueue.put( Tuple.of( - null, - false)); // this will stop the parseDataTask as well in case of interrupt or - // when the pagination completes + null, false)); // this will stop the parseDataTask as well when the pagination + // completes } catch (Exception e) { throw new BigQueryException(0, e.getMessage(), e); - } + } // We cannot do queryTaskExecutor.shutdownNow() here as populate buffer method may not + // have finished processing the records and even that will be interrupted }; queryTaskExecutor.execute(nextPageTask); } @@ -460,7 +484,9 @@ void parseRpcDataAsync( pageCache.put( Tuple.of(firstFieldValueLists, true)); // this is the first page which we have received. } catch (InterruptedException e) { - throw new BigQueryException(0, e.getMessage(), e); + logger.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Interrupted @ parseRpcDataAsync"); } // rpcResponseQueue will get null tuple if Cancel method is called, so no need to explicitly use @@ -470,6 +496,14 @@ void parseRpcDataAsync( try { boolean hasMorePages = true; while (hasMorePages) { + if (Thread.currentThread().isInterrupted() + || queryTaskExecutor.isShutdown()) { // do not process further data and shutdown + logger.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Interrupted @ parseRpcDataAsync"); + break; + } + // no interrupt received till this point, continue processing Tuple rpcResponse = rpcResponseQueue.take(); TableDataList tabledataList = rpcResponse.x(); hasMorePages = rpcResponse.y(); @@ -482,55 +516,24 @@ void parseRpcDataAsync( } catch (InterruptedException e) { logger.log( Level.WARNING, - "\n" + Thread.currentThread().getName() + " Interrupted", + "\n" + Thread.currentThread().getName() + " Interrupted @ parseRpcDataAsync", e); // Thread might get interrupted while calling the Cancel method, which is // expected, so logging this instead of throwing the exception back } try { - pageCache.put(Tuple.of(null, false)); // no further pages + pageCache.put(Tuple.of(null, false)); // no further pages, graceful exit scenario } catch (InterruptedException e) { logger.log( Level.WARNING, - "\n" + Thread.currentThread().getName() + " Interrupted", + "\n" + Thread.currentThread().getName() + " Interrupted @ parseRpcDataAsync", e); // Thread might get interrupted while calling the Cancel method, which is // expected, so logging this instead of throwing the exception back - } + } // We cannot do queryTaskExecutor.shutdownNow() here as populate buffer method may not + // have finished processing the records and even that will be interrupted }; queryTaskExecutor.execute(parseDataTask); } - /** - * This method is called when the current thread is interrupted, this communicates to ResultSet by - * adding a EoS - * - * @param buffer - */ - @InternalApi - void markEoS(BlockingQueue> buffer) { // package-private - try { - buffer.put(new EndOfFieldValueList()); // All the pages has been processed, put this marker - } catch (InterruptedException e) { - logger.log(Level.WARNING, "\n" + Thread.currentThread().getName() + " Interrupted", e); - } - } - - /** - * This method is called when the current thread is interrupted, this communicates to ResultSet by - * adding a isLast Row - * - * @param buffer - */ - @InternalApi - void markLast(BlockingQueue buffer) { // package-private - try { - buffer.put( - new BigQueryResultImpl.Row( - null, true)); // All the pages has been processed, put this marker - } catch (InterruptedException e) { - logger.log(Level.WARNING, "\n" + Thread.currentThread().getName() + " Interrupted", e); - } - } - @VisibleForTesting void populateBufferAsync( BlockingQueue> rpcResponseQueue, @@ -551,25 +554,21 @@ void populateBufferAsync( "\n" + Thread.currentThread().getName() + " Interrupted", e); // Thread might get interrupted while calling the Cancel method, which is // expected, so logging this instead of throwing the exception back - markEoS( - buffer); // Thread has been interrupted, communicate to ResultSet by adding EoS + break; } if (Thread.currentThread().isInterrupted() + || queryTaskExecutor.isShutdown() || fieldValueLists == null) { // do not process further pages and shutdown (outerloop) - markEoS( - buffer); // Thread has been interrupted, communicate to ResultSet by adding EoS break; } for (FieldValueList fieldValueList : fieldValueLists) { try { - if (Thread.currentThread() - .isInterrupted()) { // do not process further pages and shutdown (inner loop) - markEoS( - buffer); // Thread has been interrupted, communicate to ResultSet by adding - // EoS + if (Thread.currentThread().isInterrupted() + || queryTaskExecutor + .isShutdown()) { // do not process further pages and shutdown (inner loop) break; } buffer.put(fieldValueList); @@ -578,24 +577,55 @@ void populateBufferAsync( } } } - try { - if (Thread.currentThread() - .isInterrupted()) { // clear the buffer for any outstanding records - rpcResponseQueue - .clear(); // IMP - so that if it's full then it unblocks and the interrupt logic - // could trigger - buffer.clear(); - } - markEoS(buffer); // All the pages has been processed, put this marker + buffer.put( + new EndOfFieldValueList()); // All the pages has been processed, put this marker + } catch (InterruptedException e) { + logger.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Interrupted @ populateBufferAsync", + e); } finally { - queryTaskExecutor.shutdownNow(); // Shutdown the thread pool + queryTaskExecutor + .shutdownNow(); // Shutdown the thread pool. All the records are now processed } }; queryTaskExecutor.execute(populateBufferRunnable); } + /** + * In an interrupt scenario, like when the background threads are still working and the user calls + * `connection.close() then we need to add an End of Stream flag in the buffer so that the + * `ResultSet.next()` stops advancing the cursor. We cannot rely on the `populateBufferAsync` + * method to do this as the `BlockingQueue.put()` call will error out after the interrupt is + * triggerred + */ + @InternalApi + void flagEndOfStream() { // package-private + try { + if (bufferFvl != null) { // that is tabledata.list endpoint is used + bufferFvl.put( + new EndOfFieldValueList()); // All the pages has been processed, put this marker + } else if (bufferRow != null) { + bufferRow.put( + new BigQueryResultImpl.Row( + null, true)); // All the pages has been processed, put this marker + } else { + logger.log( + Level.WARNING, + "\n" + + Thread.currentThread().getName() + + " Could not flag End of Stream, both the buffer types are null. This might happen when the connection is close without executing a query"); + } + } catch (InterruptedException e) { + logger.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Interrupted @ flagEndOfStream", + e); + } + } + /* Helper method that parse and populate a page with TableRows */ private static Iterable getIterableFieldValueList( Iterable tableDataPb, final Schema schema) { @@ -783,17 +813,17 @@ BigQueryResult highThroughPutRead( ; ReadSession readSession = bqReadClient.createReadSession(builder.build()); - BlockingQueue buffer = new LinkedBlockingDeque<>(bufferSize); + bufferRow = new LinkedBlockingDeque<>(getBufferSize()); Map arrowNameToIndex = new HashMap<>(); // deserialize and populate the buffer async, so that the client isn't blocked processArrowStreamAsync( readSession, - buffer, + bufferRow, new ArrowRowReader(readSession.getArrowSchema(), arrowNameToIndex), schema); logger.log(Level.INFO, "\n Using BigQuery Read API"); - return new BigQueryResultImpl(schema, totalRows, buffer, stats); + return new BigQueryResultImpl(schema, totalRows, bufferRow, stats); } catch (IOException e) { throw BigQueryException.translateAndThrow(e); @@ -827,8 +857,18 @@ private void processArrowStreamAsync( } catch (Exception e) { throw BigQueryException.translateAndThrow(e); - } finally { - markLast(buffer); // marking end of stream + } finally { // logic needed for graceful shutdown + // marking end of stream + try { + buffer.put( + new BigQueryResultImpl.Row( + null, true)); // All the pages has been processed, put this marker + } catch (InterruptedException e) { + logger.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Interrupted @ markLast", + e); + } queryTaskExecutor.shutdownNow(); // Shutdown the thread pool } }; @@ -890,7 +930,6 @@ private void processRows( if (Thread.currentThread().isInterrupted() || queryTaskExecutor.isShutdown()) { // do not process and shutdown - markLast(buffer); // puts an isLast Row in the buffer for ResultSet to process break; // exit the loop, root will be cleared in the finally block } @@ -981,9 +1020,6 @@ boolean isFastQuerySupported() { @VisibleForTesting boolean useReadAPI(Long totalRows, Long pageRows, Schema schema, Boolean hasQueryParameters) { - - // TODO(prasmish) get this logic review - totalRows and pageRows are returned null when the job - // is not complete if ((totalRows == null || pageRows == null) && Boolean.TRUE.equals( connectionSettings @@ -992,7 +1028,6 @@ boolean useReadAPI(Long totalRows, Long pageRows, Schema schema, Boolean hasQuer return true; } - // Schema schema = Schema.fromPb(tableSchema); // Read API does not yet support Interval Type or QueryParameters if (containsIntervalType(schema) || hasQueryParameters) { logger.log(Level.INFO, "\n Schema has IntervalType, or QueryParameters. Disabling ReadAPI"); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 348749b46783..dcfa5265f160 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2652,12 +2652,11 @@ public void testConnectionClose() throws SQLException { int cnt = 0; while (rs.next()) { ++cnt; - if (cnt > 57000) { // breaking at 57K, query reads 300K + if (cnt == 57000) { // breaking at 57000th record, query reads 300K assertTrue(connection.close()); // we should be able to cancel the connection } } - assertTrue( - cnt < 60000); // Few extra records are still read (generally ~10) even after canceling, as + assertTrue(cnt < 100000); // Extra records are still read even after canceling, as // the backgrounds threads are still active while the interrupt occurs and the // buffer and pageCache are cleared } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java index d672967b14d6..deabba59f813 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java @@ -332,7 +332,31 @@ public void testIterateAndOrderDefaultConnSettings() throws SQLException { ++cnt; } assertEquals(LIMIT_RECS, cnt); // all the records were retrieved - connection.close(); + assertTrue(connection.close()); + } + + /* + This tests interrupts the execution in between and checks if it has been interrupted successfully while using ReadAPI + */ + @Test + public void testConnectionClose() throws SQLException { + Connection connection = bigquery.createConnection(); + BigQueryResult bigQueryResult = connection.executeSelect(QUERY); + logger.log(Level.INFO, "Query used: {0}", QUERY); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + while (rs.next()) { + ++cnt; + if (cnt == 50000) { // interrupt at 50K + assertTrue(connection.close()); + } + } + assertTrue( + LIMIT_RECS + > cnt); // we stopped at 50K but still we can expect additional records (typically ~100) + // to be retrieved + // as a number of records should have been already buffered. less than + // LIMIT_RECS should be retrieved } @Test From 51e7a39982886d135390f4bb2b973da9d3cabd38 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 18 May 2022 18:14:14 +0000 Subject: [PATCH 1894/3441] chore(main): release 2.11.2 (#2051) :robot: I have created a release *beep* *boop* --- ### [2.11.2](https://github.com/googleapis/java-bigquery/compare/v2.11.1...v2.11.2) (2022-05-18) ### Bug Fixes * Flaky connenction close issue ([#2044](https://github.com/googleapis/java-bigquery/issues/2044)) ([9993717](https://github.com/googleapis/java-bigquery/commit/9993717d546c4039cb8c846787fdd131cc0c113f)) * NPE issue with testMultipleRuns ([#2050](https://github.com/googleapis/java-bigquery/issues/2050)) ([251d468](https://github.com/googleapis/java-bigquery/commit/251d4686d22e0000982bcd891de68491326558fe)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 748304184f56..28a298be540b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +### [2.11.2](https://github.com/googleapis/java-bigquery/compare/v2.11.1...v2.11.2) (2022-05-18) + + +### Bug Fixes + +* Flaky connenction close issue ([#2044](https://github.com/googleapis/java-bigquery/issues/2044)) ([9993717](https://github.com/googleapis/java-bigquery/commit/9993717d546c4039cb8c846787fdd131cc0c113f)) +* NPE issue with testMultipleRuns ([#2050](https://github.com/googleapis/java-bigquery/issues/2050)) ([251d468](https://github.com/googleapis/java-bigquery/commit/251d4686d22e0000982bcd891de68491326558fe)) + ### [2.11.1](https://github.com/googleapis/java-bigquery/compare/v2.11.0...v2.11.1) (2022-05-16) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c1e3382e94e7..186d89a51e46 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.11.2-SNAPSHOT + 2.11.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e2707c1e788f..049beb224978 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.11.2-SNAPSHOT + 2.11.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.11.2-SNAPSHOT + 2.11.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ebc31870ef53..bae36ea40664 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.11.2-SNAPSHOT + 2.11.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.11.2-SNAPSHOT + 2.11.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 40c892c2bba3..0c35979670f9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.11.2-SNAPSHOT + 2.11.2 diff --git a/versions.txt b/versions.txt index d0677dd3a669..503185ac76ca 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.11.1:2.11.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.11.2:2.11.2 \ No newline at end of file From b2099e6c110c339e6a83bcf4f71dea5976133ab9 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 18 May 2022 18:28:14 +0000 Subject: [PATCH 1895/3441] chore(main): release 2.11.3-SNAPSHOT (#2052) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 186d89a51e46..a1cc3c7dadf0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.11.2 + 2.11.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 049beb224978..4a94c506ccc0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.11.2 + 2.11.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.11.2 + 2.11.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bae36ea40664..7b1f79ab1310 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.11.2 + 2.11.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.11.2 + 2.11.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0c35979670f9..4e89f7c63beb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.11.2 + 2.11.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 503185ac76ca..c7191337ab08 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.11.2:2.11.2 \ No newline at end of file +google-cloud-bigquery:2.11.2:2.11.3-SNAPSHOT \ No newline at end of file From 065ae78ef20052032c245b3fe991808c24ec8077 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 19 May 2022 21:08:18 +0000 Subject: [PATCH 1896/3441] feat: add build scripts for native image testing in Java 17 (#1440) (#2057) Source-Link: https://github.com/googleapis/synthtool/commit/505ce5a7edb58bf6d9d4de10b4bb4e81000ae324 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:2567a120ce90fadb6201999b87d649d9f67459de28815ad239bce9ebfaa18a74 --- .github/.OwlBot.lock.yaml | 4 +-- .kokoro/presubmit/graalvm-native-17.cfg | 33 +++++++++++++++++++++++++ README.md | 4 +-- 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 .kokoro/presubmit/graalvm-native-17.cfg diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index f60d774937f6..a79f06271b60 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:fc52b202aa298a50a12c64efd04fea3884d867947effe2fa85382a246c09e813 -# created: 2022-04-06T16:30:03.627422514Z + digest: sha256:2567a120ce90fadb6201999b87d649d9f67459de28815ad239bce9ebfaa18a74 +# created: 2022-05-19T15:12:45.278246753Z diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg new file mode 100644 index 000000000000..a3f7fb9d4943 --- /dev/null +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -0,0 +1,33 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17" +} + +env_vars: { + key: "JOB_TYPE" + value: "graalvm17" +} + +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} \ No newline at end of file diff --git a/README.md b/README.md index ef43a359add9..8f8f9f0d9054 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.11.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.11.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.11.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.11.2" ``` ## Authentication From 9667663fbec20f262c218f07cce1ada0c9a4bce0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 19 May 2022 23:32:14 +0200 Subject: [PATCH 1897/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.11.0 (#2055) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `2.10.0` -> `2.12.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.12.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.12.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.12.0/compatibility-slim/2.10.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/2.12.0/confidence-slim/2.10.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7b1f79ab1310..566d4be8a32c 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20220507-1.32.1 - 2.10.0 + 2.11.0 8.0.0 From d2d2ebe2547691737a48a8528361d6cc3df3eebd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 20 May 2022 21:58:21 +0200 Subject: [PATCH 1898/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.11.2 (#2054) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.11.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8f8f9f0d9054..0d2537d098d2 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.11.1 + 2.11.2 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 906f422e0037..8e8b8d2b0469 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.11.1 + 2.11.2 From 4571900559ec8689ac3a1bc3b418c879f66a51a5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 24 May 2022 16:52:02 +0200 Subject: [PATCH 1899/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.3.0 (#2062) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8e8b8d2b0469..3f175eb16a2d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.4 + 2.3.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4e89f7c63beb..120198737b90 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.4 + 2.3.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 1e8dd6ef9e2b..6a579c306fdf 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.2.4 + 2.3.0 test From 1c7a0ab157f79772d8da58bfe15f54a7394124e8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 24 May 2022 16:53:04 +0200 Subject: [PATCH 1900/3441] deps: update dependency com.google.cloud:google-cloud-bigtable to v2.7.0 (#2061) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3f175eb16a2d..55cedc6505fa 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.6.2 + 2.7.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 120198737b90..70d2d2c53e72 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.6.2 + 2.7.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6a579c306fdf..821f95718c01 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.6.2 + 2.7.0 test From 3764b5967c694fa34aef75804333e5a6101d912e Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Tue, 24 May 2022 20:26:21 +0530 Subject: [PATCH 1901/3441] fix: Flaky testPositionalQueryParameters (#2059) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit String comparison of values, eg `1.40845209522E9` vs `1408452095.22` seems to be failing, so comparing the values as epoc (Long) instead Fixes #2056 ☕️ --- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index dcfa5265f160..5b2b74ec0bd9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3438,7 +3438,12 @@ public void testPositionalQueryParameters() throws InterruptedException { assertEquals(QUERY_RESULT_SCHEMA_BIGNUMERIC, result.getSchema()); assertEquals(2, Iterables.size(result.getValues())); for (FieldValueList values : result.iterateAll()) { - assertEquals("1.40845209522E9", values.get(0).getValue()); + // https://github.com/googleapis/java-bigquery/issues/2056. String comparison of values, eg + // 1.40845209522E9 vs 1408452095.22 seems to be failing, so comparing the values as epoc + // (Long) instead + assertEquals( + (long) Double.parseDouble("1.40845209522E9"), + (long) Double.parseDouble(values.get(0).getValue().toString())); assertEquals("stringValue", values.get(1).getValue()); assertEquals(false, values.get(2).getBooleanValue()); assertEquals("0.33333333333333333333333333333333333333", values.get(3).getValue()); From 6d3f4bead2315703015bd75711fcbf19428fad6e Mon Sep 17 00:00:00 2001 From: Blake Li Date: Tue, 24 May 2022 16:02:11 +0000 Subject: [PATCH 1902/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.12.0 (#2063) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 566d4be8a32c..a8d434408051 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20220507-1.32.1 - 2.11.0 + 2.12.0 8.0.0 From fd47710afdf32fd535f8e2b430156eb4a659a64d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 24 May 2022 23:27:11 +0200 Subject: [PATCH 1903/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.7.0 (#2064) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a8d434408051..a9ba290e043e 100644 --- a/pom.xml +++ b/pom.xml @@ -176,7 +176,7 @@ com.google.cloud google-cloud-storage - 2.6.1 + 2.7.0 test From c4bafeb29f50588b27bc5a86fe53b3938e0cf164 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 May 2022 17:09:28 +0200 Subject: [PATCH 1904/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.14.0 (#2067) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a9ba290e043e..15fe5b9fedcd 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.13.0 + 2.14.0 pom import From 89962a5e3cec0e5a4334454b1bff83fba3d95d4d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 May 2022 17:09:45 +0200 Subject: [PATCH 1905/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.7.1 (#2066) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 15fe5b9fedcd..c34281311813 100644 --- a/pom.xml +++ b/pom.xml @@ -176,7 +176,7 @@ com.google.cloud google-cloud-storage - 2.7.0 + 2.7.1 test From 7f0bfd4a42c28f3d2a748474e1ec40740311a734 Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Wed, 25 May 2022 11:15:32 -0400 Subject: [PATCH 1906/3441] fix: add more native image configurations for Arrow tests and enable native image tests (#2053) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: add more native image configurations for Arrow tests * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * add more necessary configurations * enable native image tests * empty commit * remove exclusion * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * exclude arrow tests in java 17 * restore nightly-it * restore formatting * more formatting changes * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * include tests for exclusion * restore script changes * bring back nightly-it * include IT* and *ClientTest filter from shared-config Co-authored-by: Owl Bot --- .kokoro/build.sh | 15 +++-- .../google-cloud-bigquery/reflect-config.json | 59 +++++++++++++++++++ owlbot.py | 2 +- 3 files changed, 70 insertions(+), 6 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 3c45ad23a278..089ca0e23ea4 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -80,11 +80,16 @@ nightly-it) verify RETURN_CODE=$? ;; -#graalvm) -# # Run Unit and Integration Tests with Native Image -# mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test -# RETURN_CODE=$? -# ;; +graalvm) + # Run Unit and Integration Tests with Native Image + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test + RETURN_CODE=$? + ;; +graalvm17) + # Run Unit and Integration Tests with Native Image. Skip Arrow tests until https://github.com/googleapis/java-bigquery/issues/2060 is fixed. + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test "-Dtest=!com.google.cloud.bigquery.it.ITBigQueryTest#testBQResultSetPaginationSlowQuery+testReadAPIConnectionMultiClose+testReadAPIIterationAndOrder, !com.google.cloud.bigquery.it.ITNightlyBigQueryTest#testIterateAndOrder+testMultipleRuns+testIterateAndOrderDefaultConnSettings, IT*, *ClientTest" + RETURN_CODE=$? + ;; samples) SAMPLES_DIR=samples # only run ITs in snapshot/ on presubmit PRs. run ITs in all 3 samples/ subdirectories otherwise. diff --git a/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/reflect-config.json b/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/reflect-config.json index f2190122d755..8f6d928da40d 100644 --- a/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/reflect-config.json +++ b/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/reflect-config.json @@ -3,8 +3,67 @@ "name":"io.netty.buffer.AbstractByteBufAllocator", "queryAllDeclaredMethods":true }, + { + "name":"io.netty.buffer.PooledByteBufAllocator", + "fields":[{"name":"directArenas"}] + }, + { + "name":"io.netty.util.internal.shaded.org.jctools.queues.MpscChunkedArrayQueue", + "queryAllDeclaredMethods":true, + "allDeclaredFields":true, + "queryAllDeclaredConstructors":true + }, + { + "name":"io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueConsumerIndexField", + "fields":[{"name":"consumerIndex"}] + }, + { + "name":"io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerIndexField", + "fields":[{"name":"producerIndex"}] + }, + { + "name":"io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerLimitField", + "fields":[{"name":"producerLimit"}] + }, + { + "name":"java.nio.DirectByteBuffer", + "methods":[{"name":"","parameterTypes":["long","int"] }] + }, { "name":"org.apache.arrow.memory.DefaultAllocationManagerFactory", "fields":[{"name":"FACTORY"}] + }, + { + "name":"org.apache.arrow.vector.types.pojo.ArrowType", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true + }, + { + "name":"org.apache.arrow.vector.types.pojo.ArrowType$Int", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true + }, + { + "name":"org.apache.arrow.vector.types.pojo.ArrowType$PrimitiveType", + "allDeclaredFields":true, + "queryAllDeclaredMethods":true + }, + { + "name":"io.netty.buffer.AbstractReferenceCountedByteBuf", + "fields":[{"name":"refCnt"}] + }, + { + "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields", + "fields":[{"name":"producerLimit"}] + }, + { + "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields", + "fields":[{"name":"consumerIndex"}] + }, + { + "name":"io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueProducerFields", + "fields":[{"name":"producerIndex"}] } ] \ No newline at end of file diff --git a/owlbot.py b/owlbot.py index 55f7f4101ee8..54ebff8614f3 100644 --- a/owlbot.py +++ b/owlbot.py @@ -22,5 +22,5 @@ '.kokoro/dependencies.sh', 'codecov.yaml', 'renovate.json', - '.kokoro/build.sh', + '.kokoro/build.sh' ]) \ No newline at end of file From 5d5d4bb0f5232bc5d65a03591f2e02f1b52802e4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 25 May 2022 16:14:13 +0000 Subject: [PATCH 1907/3441] chore(main): release 2.12.0 (#2058) :robot: I have created a release *beep* *boop* --- ## [2.12.0](https://github.com/googleapis/java-bigquery/compare/v2.11.2...v2.12.0) (2022-05-25) ### Features * add build scripts for native image testing in Java 17 ([#1440](https://github.com/googleapis/java-bigquery/issues/1440)) ([#2057](https://github.com/googleapis/java-bigquery/issues/2057)) ([065ae78](https://github.com/googleapis/java-bigquery/commit/065ae78ef20052032c245b3fe991808c24ec8077)) ### Bug Fixes * add more native image configurations for Arrow tests and enable native image tests ([#2053](https://github.com/googleapis/java-bigquery/issues/2053)) ([7f0bfd4](https://github.com/googleapis/java-bigquery/commit/7f0bfd4a42c28f3d2a748474e1ec40740311a734)) * Flaky testPositionalQueryParameters ([#2059](https://github.com/googleapis/java-bigquery/issues/2059)) ([3764b59](https://github.com/googleapis/java-bigquery/commit/3764b5967c694fa34aef75804333e5a6101d912e)) ### Dependencies * update dependency com.google.cloud:google-cloud-bigtable to v2.7.0 ([#2061](https://github.com/googleapis/java-bigquery/issues/2061)) ([1c7a0ab](https://github.com/googleapis/java-bigquery/commit/1c7a0ab157f79772d8da58bfe15f54a7394124e8)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.11.0 ([#2055](https://github.com/googleapis/java-bigquery/issues/2055)) ([9667663](https://github.com/googleapis/java-bigquery/commit/9667663fbec20f262c218f07cce1ada0c9a4bce0)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.12.0 ([#2063](https://github.com/googleapis/java-bigquery/issues/2063)) ([6d3f4be](https://github.com/googleapis/java-bigquery/commit/6d3f4bead2315703015bd75711fcbf19428fad6e)) * update dependency com.google.cloud:google-cloud-storage to v2.7.0 ([#2064](https://github.com/googleapis/java-bigquery/issues/2064)) ([fd47710](https://github.com/googleapis/java-bigquery/commit/fd47710afdf32fd535f8e2b430156eb4a659a64d)) * update dependency com.google.cloud:google-cloud-storage to v2.7.1 ([#2066](https://github.com/googleapis/java-bigquery/issues/2066)) ([89962a5](https://github.com/googleapis/java-bigquery/commit/89962a5e3cec0e5a4334454b1bff83fba3d95d4d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 22 ++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28a298be540b..56c529d656e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## [2.12.0](https://github.com/googleapis/java-bigquery/compare/v2.11.2...v2.12.0) (2022-05-25) + + +### Features + +* add build scripts for native image testing in Java 17 ([#1440](https://github.com/googleapis/java-bigquery/issues/1440)) ([#2057](https://github.com/googleapis/java-bigquery/issues/2057)) ([065ae78](https://github.com/googleapis/java-bigquery/commit/065ae78ef20052032c245b3fe991808c24ec8077)) + + +### Bug Fixes + +* add more native image configurations for Arrow tests and enable native image tests ([#2053](https://github.com/googleapis/java-bigquery/issues/2053)) ([7f0bfd4](https://github.com/googleapis/java-bigquery/commit/7f0bfd4a42c28f3d2a748474e1ec40740311a734)) +* Flaky testPositionalQueryParameters ([#2059](https://github.com/googleapis/java-bigquery/issues/2059)) ([3764b59](https://github.com/googleapis/java-bigquery/commit/3764b5967c694fa34aef75804333e5a6101d912e)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-bigtable to v2.7.0 ([#2061](https://github.com/googleapis/java-bigquery/issues/2061)) ([1c7a0ab](https://github.com/googleapis/java-bigquery/commit/1c7a0ab157f79772d8da58bfe15f54a7394124e8)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.11.0 ([#2055](https://github.com/googleapis/java-bigquery/issues/2055)) ([9667663](https://github.com/googleapis/java-bigquery/commit/9667663fbec20f262c218f07cce1ada0c9a4bce0)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.12.0 ([#2063](https://github.com/googleapis/java-bigquery/issues/2063)) ([6d3f4be](https://github.com/googleapis/java-bigquery/commit/6d3f4bead2315703015bd75711fcbf19428fad6e)) +* update dependency com.google.cloud:google-cloud-storage to v2.7.0 ([#2064](https://github.com/googleapis/java-bigquery/issues/2064)) ([fd47710](https://github.com/googleapis/java-bigquery/commit/fd47710afdf32fd535f8e2b430156eb4a659a64d)) +* update dependency com.google.cloud:google-cloud-storage to v2.7.1 ([#2066](https://github.com/googleapis/java-bigquery/issues/2066)) ([89962a5](https://github.com/googleapis/java-bigquery/commit/89962a5e3cec0e5a4334454b1bff83fba3d95d4d)) + ### [2.11.2](https://github.com/googleapis/java-bigquery/compare/v2.11.1...v2.11.2) (2022-05-18) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a1cc3c7dadf0..b0d1afe97251 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.11.3-SNAPSHOT + 2.12.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4a94c506ccc0..1736ade47ca2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.11.3-SNAPSHOT + 2.12.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.11.3-SNAPSHOT + 2.12.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c34281311813..05a6ce4737d9 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.11.3-SNAPSHOT + 2.12.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.11.3-SNAPSHOT + 2.12.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 70d2d2c53e72..a6c2f43982ba 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.11.3-SNAPSHOT + 2.12.0 diff --git a/versions.txt b/versions.txt index c7191337ab08..026fbb39e5c4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.11.2:2.11.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.12.0:2.12.0 \ No newline at end of file From e3e6514bea627b15263043ec3d6f2ca17f1b9860 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 May 2022 18:23:47 +0200 Subject: [PATCH 1908/3441] test(deps): update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.0 (#2065) * test(deps): update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.0 * Update pom.xml Co-authored-by: Stephanie Wang --- pom.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 05a6ce4737d9..a246059833ee 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.6.1 + 1.8.0 pom import @@ -104,7 +104,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.7.3 + 1.8.0 pom import @@ -293,3 +293,4 @@ + From 9d6b27e5614dd8e3b76bee2da04a1aff87d37ed3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 25 May 2022 16:28:11 +0000 Subject: [PATCH 1909/3441] chore(main): release 2.12.1-SNAPSHOT (#2068) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b0d1afe97251..656ff66fbadf 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.12.0 + 2.12.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1736ade47ca2..2d9981c2f4a6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.12.0 + 2.12.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.12.0 + 2.12.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a246059833ee..28628a5e7762 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.12.0 + 2.12.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.12.0 + 2.12.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a6c2f43982ba..680e99d810a1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.12.0 + 2.12.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 026fbb39e5c4..d251b42db1b4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.12.0:2.12.0 \ No newline at end of file +google-cloud-bigquery:2.12.0:2.12.1-SNAPSHOT \ No newline at end of file From d3d09a4e1c5f864c78c1db920e637b2b8c50cfaf Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Wed, 25 May 2022 14:08:14 -0400 Subject: [PATCH 1910/3441] chore: manage dependency updates from renovate-bot (#2069) to address issues like: image which occurs since shared-dependencies updates take different amount of time to roll out in various cloud clients. [Full trace](https://github.com/googleapis/java-bigquery/runs/6578164174?check_suite_focus=true) In this PR, we group the GCP Java client dependencies together so that their updates will be proposed in one single PR when they get updated: ``` "^com.google.cloud:google-cloud-datacatalog", "^com.google.cloud:google-cloud-bigquerystorage-bom", "^com.google.cloud:google-cloud-storage" ``` In addition, we classify `^com.google.cloud:google-cloud-bigtable` as a `chore` dependency update since it is only used in samples and it should not result in a client library version bump. --- README.md | 4 ++-- renovate.json | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 0d2537d098d2..7d474f6c31d0 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.11.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.12.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.11.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.12.0" ``` ## Authentication diff --git a/renovate.json b/renovate.json index 2b19d40fdf0c..cd5ba279312c 100644 --- a/renovate.json +++ b/renovate.json @@ -39,6 +39,7 @@ { "packagePatterns": [ "^com.google.cloud:google-cloud-bigquery", + "^com.google.cloud:google-cloud-bigtable", "^com.google.cloud:libraries-bom", "^com.google.cloud.samples:shared-configuration" ], @@ -70,10 +71,11 @@ { "packagePatterns": [ "^com.google.api.grpc:proto-google-cloud-datacatalog", - "^com.google.cloud:google-cloud-datacatalog" + "^com.google.cloud:google-cloud-datacatalog", + "^com.google.cloud:google-cloud-bigquerystorage-bom", + "^com.google.cloud:google-cloud-storage" ], - "groupName": "datacatalog dependencies", - "semanticCommitType": "test", + "groupName": "cloud client dependencies", "semanticCommitScope": "deps" } ], From 621d357cc0ed195584f5b49f6f61032d007b2b6f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 25 May 2022 22:12:51 +0200 Subject: [PATCH 1911/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.12.0 (#2071) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.12.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7d474f6c31d0..39d86d4d98f0 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.11.2 + 2.12.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 55cedc6505fa..3f4a19322f00 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.11.2 + 2.12.0 From 4e153f525cc600cecdfabec600b166560ba62607 Mon Sep 17 00:00:00 2001 From: Ayush Walekar Date: Thu, 26 May 2022 20:16:12 +0530 Subject: [PATCH 1912/3441] docs(samples): update querypagination sample (#2074) - Updated example to loop through all remaining pages Changes for the open issue: https://github.com/googleapis/java-bigquery/issues/2073 --- .../java/com/example/bigquery/QueryPagination.java | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java b/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java index dc9a6a24f178..86915bab777c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java @@ -62,19 +62,11 @@ public static void queryPagination(String datasetName, String tableName, String .getValues() .forEach(row -> row.forEach(val -> System.out.printf("%s,\n", val.toString()))); - if (results.hasNextPage()) { - // Next Page - results - .getNextPage() - .getValues() - .forEach(row -> row.forEach(val -> System.out.printf("%s,\n", val.toString()))); - } - - if (results.hasNextPage()) { + while (results.hasNextPage()) { // Remaining Pages + results = results.getNextPage(); results - .getNextPage() - .iterateAll() + .getValues() .forEach(row -> row.forEach(val -> System.out.printf("%s,\n", val.toString()))); } From 51694d8e07f19a5203f613888a4dd1f907ddb382 Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Thu, 26 May 2022 21:01:34 +0530 Subject: [PATCH 1913/3441] chore: NPE in testConnectionClose (#2072) * Added a not null assertion for connection in testConnectionClose * Added testCreateDefaultConnection --- .../com/google/cloud/bigquery/it/ITBigQueryTest.java | 9 +++++++++ .../google/cloud/bigquery/it/ITNightlyBigQueryTest.java | 1 + 2 files changed, 10 insertions(+) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 5b2b74ec0bd9..3ca11c0c6a88 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2724,6 +2724,15 @@ public void testReadAPIIterationAndOrder() connection.close(); } + // Ref: https://github.com/googleapis/java-bigquery/issues/2070. Adding a pre-submit test to see + // if bigquery.createConnection() returns null + @Test + public void testCreateDefaultConnection() throws BigQuerySQLException { + Connection connection = bigquery.createConnection(); + assertNotNull("bigquery.createConnection() returned null", connection); + assertTrue(connection.close()); + } + @Test public void testReadAPIConnectionMultiClose() throws diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java index deabba59f813..73bd21a30ddd 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java @@ -341,6 +341,7 @@ public void testIterateAndOrderDefaultConnSettings() throws SQLException { @Test public void testConnectionClose() throws SQLException { Connection connection = bigquery.createConnection(); + assertNotNull("bigquery.createConnection() returned null", connection); BigQueryResult bigQueryResult = connection.executeSelect(QUERY); logger.log(Level.INFO, "Query used: {0}", QUERY); ResultSet rs = bigQueryResult.getResultSet(); From 38d6baefeebe0dc2858d38f6c44ad727b6beba92 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 26 May 2022 22:10:17 +0200 Subject: [PATCH 1914/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.1 (#2076) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-datacatalog-bom](https://togithub.com/googleapis/java-datacatalog) | `1.8.0` -> `1.8.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.8.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.8.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.8.1/compatibility-slim/1.8.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.8.1/confidence-slim/1.8.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-datacatalog ### [`v1.8.1`](https://togithub.com/googleapis/java-datacatalog/blob/HEAD/CHANGELOG.md#​181-httpsgithubcomgoogleapisjava-datacatalogcomparev180v181-2022-05-26) [Compare Source](https://togithub.com/googleapis/java-datacatalog/compare/v1.8.0...v1.8.1)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 4 ++-- renovate.json | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 28628a5e7762..43f7961143dd 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.8.0 + 1.8.1 pom import @@ -104,7 +104,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.8.0 + 1.8.1 pom import diff --git a/renovate.json b/renovate.json index cd5ba279312c..56fe3f2abf71 100644 --- a/renovate.json +++ b/renovate.json @@ -75,8 +75,7 @@ "^com.google.cloud:google-cloud-bigquerystorage-bom", "^com.google.cloud:google-cloud-storage" ], - "groupName": "cloud client dependencies", - "semanticCommitScope": "deps" + "groupName": "cloud client dependencies" } ], "semanticCommits": true, From eb443dfd5fd26e9c424dcbb1b00af5260a525679 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 27 May 2022 17:42:23 +0200 Subject: [PATCH 1915/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.7.2 (#2077) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.7.1` -> `2.7.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.7.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.7.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.7.2/compatibility-slim/2.7.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.7.2/confidence-slim/2.7.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.7.2`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​272-httpsgithubcomgoogleapisjava-storagecomparev271v272-2022-05-27) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.7.1...v2.7.2)
    --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 43f7961143dd..640b33aa1a6a 100644 --- a/pom.xml +++ b/pom.xml @@ -176,7 +176,7 @@ com.google.cloud google-cloud-storage - 2.7.1 + 2.7.2 test From c6cb5643352aebf892d0f70e0b7d91e46703c759 Mon Sep 17 00:00:00 2001 From: Stephanie Wang Date: Tue, 31 May 2022 11:42:07 -0400 Subject: [PATCH 1916/3441] Revert "deps: update dependency org.assertj:assertj-core to v3 (#1786)" (#2081) This reverts commit 69fcabf478c6fab23c4da3fcc516f820cc178a5b. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 640b33aa1a6a..eb2a82663d9c 100644 --- a/pom.xml +++ b/pom.xml @@ -183,7 +183,7 @@ org.assertj assertj-core - 3.22.0 + 2.9.1 test From 7ec5c041ba405d89cb2c935faa513040dff7c673 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 31 May 2022 18:30:12 +0200 Subject: [PATCH 1917/3441] test(deps): update dependency org.mockito:mockito-core to v4.6.0 (#2078) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eb2a82663d9c..11de361a706b 100644 --- a/pom.xml +++ b/pom.xml @@ -170,7 +170,7 @@ org.mockito mockito-core - 4.5.1 + 4.6.0 test From 7f0901467037240499996a817be0b84d11b18c86 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 31 May 2022 20:09:19 +0200 Subject: [PATCH 1918/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.8.0 (#2082) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3f4a19322f00..2f65088465f7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.7.0 + 2.8.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 680e99d810a1..de3522f6bc00 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.7.0 + 2.8.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 821f95718c01..cda562651043 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.7.0 + 2.8.0 test From 9e0b35136aed6ed489bff4d4ac86c4d5d83274be Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Tue, 31 May 2022 23:39:56 +0530 Subject: [PATCH 1919/3441] feat: add destinationExpirationTime to CopyJobConfiguration (#2031) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add destinationExpirationTime * Added testDestExpTimeTableCopyJob IT * Added testDestExpTimeTableCopyJob IT * Removed testDestExpTimeTableCopyJob IT. Modified testCopyJobWithLabelsAndExpTime to add destinationExpiryTime * Modified Builder to add destinationExpiryTime * Modified testCopyJobWithLabelsAndExpTime. Added assertion for destinationExpiryTime * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../cloud/bigquery/CopyJobConfiguration.java | 28 +++++++++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 10 +++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java index 0b11bf7bea55..fe67986fc619 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java @@ -39,6 +39,7 @@ public final class CopyJobConfiguration extends JobConfiguration { private final List sourceTables; private final TableId destinationTable; private final String operationType; + private final String destinationExpirationTime; private final JobInfo.CreateDisposition createDisposition; private final JobInfo.WriteDisposition writeDisposition; private final EncryptionConfiguration destinationEncryptionConfiguration; @@ -51,6 +52,7 @@ public static final class Builder private List sourceTables; private TableId destinationTable; private String operationType; + private String destinationExpirationTime; private JobInfo.CreateDisposition createDisposition; private JobInfo.WriteDisposition writeDisposition; private EncryptionConfiguration destinationEncryptionConfiguration; @@ -66,6 +68,7 @@ private Builder(CopyJobConfiguration jobConfiguration) { this.sourceTables = jobConfiguration.sourceTables; this.destinationTable = jobConfiguration.destinationTable; this.operationType = jobConfiguration.operationType; + this.destinationExpirationTime = jobConfiguration.destinationExpirationTime; this.createDisposition = jobConfiguration.createDisposition; this.writeDisposition = jobConfiguration.writeDisposition; this.destinationEncryptionConfiguration = jobConfiguration.destinationEncryptionConfiguration; @@ -80,6 +83,10 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (copyConfigurationPb.getOperationType() != null) { this.operationType = copyConfigurationPb.getOperationType(); } + if (copyConfigurationPb.getDestinationExpirationTime() != null) { + this.destinationExpirationTime = + copyConfigurationPb.getDestinationExpirationTime().toString(); + } if (copyConfigurationPb.getSourceTables() != null) { this.sourceTables = Lists.transform(copyConfigurationPb.getSourceTables(), TableId.FROM_PB_FUNCTION); @@ -129,6 +136,16 @@ public Builder setOperationType(String operationType) { return this; } + /** + * Sets the time when the destination table expires. Expired tables will be deleted and their + * storage reclaimed. More info: + * https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#jobconfigurationtablecopy + */ + public Builder setDestinationExpirationTime(String destinationExpirationTime) { + this.destinationExpirationTime = destinationExpirationTime; + return this; + } + public Builder setDestinationEncryptionConfiguration( EncryptionConfiguration encryptionConfiguration) { this.destinationEncryptionConfiguration = encryptionConfiguration; @@ -194,6 +211,7 @@ private CopyJobConfiguration(Builder builder) { this.sourceTables = checkNotNull(builder.sourceTables); this.destinationTable = checkNotNull(builder.destinationTable); this.operationType = builder.operationType; + this.destinationExpirationTime = builder.destinationExpirationTime; this.createDisposition = builder.createDisposition; this.writeDisposition = builder.writeDisposition; this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; @@ -216,6 +234,11 @@ public String getOperationType() { return operationType; } + /** Returns the time when the destination table expires */ + public String getDestinationExpirationTime() { + return destinationExpirationTime; + } + public EncryptionConfiguration getDestinationEncryptionConfiguration() { return destinationEncryptionConfiguration; } @@ -263,6 +286,7 @@ ToStringHelper toStringHelper() { .add("sourceTables", sourceTables) .add("destinationTable", destinationTable) .add("operationType", operationType) + .add("destinationExpirationTime", destinationExpirationTime) .add("destinationEncryptionConfiguration", destinationEncryptionConfiguration) .add("createDisposition", createDisposition) .add("writeDisposition", writeDisposition) @@ -283,6 +307,7 @@ public int hashCode() { sourceTables, destinationTable, operationType, + destinationExpirationTime, createDisposition, writeDisposition, labels, @@ -322,6 +347,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (operationType != null) { configurationPb.setOperationType(operationType); } + if (destinationExpirationTime != null) { + configurationPb.setDestinationExpirationTime(destinationExpirationTime); + } if (createDisposition != null) { configurationPb.setCreateDisposition(createDisposition.toString()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 3ca11c0c6a88..812833d9cbd2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3893,7 +3893,8 @@ public void testSnapshotTableCopyJob() throws InterruptedException { } @Test - public void testCopyJobWithLabels() throws InterruptedException { + public void testCopyJobWithLabelsAndExpTime() throws InterruptedException { + String destExpiryTime = "2025-12-31T23:59:59.999999999Z"; String sourceTableName = "test_copy_job_source_table_label"; String destinationTableName = "test_copy_job_destination_table_label"; Map labels = ImmutableMap.of("test_job_name", "test_copy_job"); @@ -3904,12 +3905,17 @@ public void testCopyJobWithLabels() throws InterruptedException { assertNotNull(createdTable); TableId destinationTable = TableId.of(DATASET, destinationTableName); CopyJobConfiguration configuration = - CopyJobConfiguration.newBuilder(destinationTable, sourceTable).setLabels(labels).build(); + CopyJobConfiguration.newBuilder(destinationTable, sourceTable) + .setLabels(labels) + .setDestinationExpirationTime(destExpiryTime) + .build(); Job remoteJob = bigquery.create(JobInfo.of(configuration)); remoteJob = remoteJob.waitFor(); assertNull(remoteJob.getStatus().getError()); CopyJobConfiguration copyJobConfiguration = remoteJob.getConfiguration(); assertEquals(labels, copyJobConfiguration.getLabels()); + assertNotNull(copyJobConfiguration.getDestinationExpirationTime()); + assertEquals(destExpiryTime, copyJobConfiguration.getDestinationExpirationTime()); Table remoteTable = bigquery.getTable(DATASET, destinationTableName); assertNotNull(remoteTable); assertTrue(createdTable.delete()); From 729e69e51385f2e6604c0c226f8b1839511642c9 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 31 May 2022 18:46:11 +0000 Subject: [PATCH 1920/3441] chore(main): release 2.13.0 (#2075) :robot: I have created a release *beep* *boop* --- ## [2.13.0](https://github.com/googleapis/java-bigquery/compare/v2.12.0...v2.13.0) (2022-05-31) ### Features * add destinationExpirationTime to CopyJobConfiguration ([#2031](https://github.com/googleapis/java-bigquery/issues/2031)) ([9e0b351](https://github.com/googleapis/java-bigquery/commit/9e0b35136aed6ed489bff4d4ac86c4d5d83274be)) ### Documentation * **samples:** update querypagination sample ([#2074](https://github.com/googleapis/java-bigquery/issues/2074)) ([4e153f5](https://github.com/googleapis/java-bigquery/commit/4e153f525cc600cecdfabec600b166560ba62607)) ### Dependencies * update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.1 ([#2076](https://github.com/googleapis/java-bigquery/issues/2076)) ([38d6bae](https://github.com/googleapis/java-bigquery/commit/38d6baefeebe0dc2858d38f6c44ad727b6beba92)) * update dependency com.google.cloud:google-cloud-storage to v2.7.2 ([#2077](https://github.com/googleapis/java-bigquery/issues/2077)) ([eb443df](https://github.com/googleapis/java-bigquery/commit/eb443dfd5fd26e9c424dcbb1b00af5260a525679)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 18 ++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 25 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56c529d656e8..849a6b1196c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [2.13.0](https://github.com/googleapis/java-bigquery/compare/v2.12.0...v2.13.0) (2022-05-31) + + +### Features + +* add destinationExpirationTime to CopyJobConfiguration ([#2031](https://github.com/googleapis/java-bigquery/issues/2031)) ([9e0b351](https://github.com/googleapis/java-bigquery/commit/9e0b35136aed6ed489bff4d4ac86c4d5d83274be)) + + +### Documentation + +* **samples:** update querypagination sample ([#2074](https://github.com/googleapis/java-bigquery/issues/2074)) ([4e153f5](https://github.com/googleapis/java-bigquery/commit/4e153f525cc600cecdfabec600b166560ba62607)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.1 ([#2076](https://github.com/googleapis/java-bigquery/issues/2076)) ([38d6bae](https://github.com/googleapis/java-bigquery/commit/38d6baefeebe0dc2858d38f6c44ad727b6beba92)) +* update dependency com.google.cloud:google-cloud-storage to v2.7.2 ([#2077](https://github.com/googleapis/java-bigquery/issues/2077)) ([eb443df](https://github.com/googleapis/java-bigquery/commit/eb443dfd5fd26e9c424dcbb1b00af5260a525679)) + ## [2.12.0](https://github.com/googleapis/java-bigquery/compare/v2.11.2...v2.12.0) (2022-05-25) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 656ff66fbadf..93a03ee188af 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.12.1-SNAPSHOT + 2.13.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2d9981c2f4a6..ac898f783b2d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.12.1-SNAPSHOT + 2.13.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.12.1-SNAPSHOT + 2.13.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 11de361a706b..7a1b27941f22 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.12.1-SNAPSHOT + 2.13.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.12.1-SNAPSHOT + 2.13.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index de3522f6bc00..6b9ccabbb555 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.12.1-SNAPSHOT + 2.13.0 diff --git a/versions.txt b/versions.txt index d251b42db1b4..fca5ef2183ae 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.12.0:2.12.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.13.0:2.13.0 \ No newline at end of file From 708b1d02236900124fb1bae88a908743596898d9 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 31 May 2022 19:00:57 +0000 Subject: [PATCH 1921/3441] chore(main): release 2.13.1-SNAPSHOT (#2084) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 93a03ee188af..cc6e29fc97d3 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.0 + 2.13.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ac898f783b2d..bbfa00fe17ce 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.0 + 2.13.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.0 + 2.13.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7a1b27941f22..1893be1cf3ac 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.0 + 2.13.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.0 + 2.13.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6b9ccabbb555..c34108c9a20f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.0 + 2.13.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index fca5ef2183ae..0b63a4fd4ef5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.0:2.13.0 \ No newline at end of file +google-cloud-bigquery:2.13.0:2.13.1-SNAPSHOT \ No newline at end of file From f3c0aaefd8f87a08035b6b171d11671224c22612 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 1 Jun 2022 16:47:50 +0200 Subject: [PATCH 1922/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.13.0 (#2085) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.13.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 39d86d4d98f0..662bcfc6f8a7 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.12.0 + 2.13.0 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.12.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.13.0' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.12.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2f65088465f7..f67b205425c5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.12.0 + 2.13.0 From e0b164722ace24b309ceb402eda9578af43e8d22 Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Wed, 1 Jun 2022 20:32:11 +0530 Subject: [PATCH 1923/3441] chore: Added benchmarking logic for bigquery.query (#2087) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added benchmarking logic for bigquery.query Fixes #2086 ☕️ --- .../ConnImplBenchmark.java | 93 ++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java b/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java index 40c5fc11d4a6..f202df666977 100644 --- a/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java +++ b/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java @@ -44,7 +44,7 @@ @State(Scope.Benchmark) @OutputTimeUnit(TimeUnit.MILLISECONDS) public class ConnImplBenchmark { - @Param({"500000", "1000000", "10000000", "100000000"}) // 500K, 1M, 10M, and 100M + @Param({"500000", "1000000", "10000000", "50000000", "100000000"}) // 500K, 1M, 10M, 50M and 100M public int rowLimit; private ConnectionSettings connectionSettingsReadAPIEnabled, connectionSettingsReadAPIDisabled; @@ -71,6 +71,97 @@ public void setUp() throws IOException { .build(); } + @Benchmark + // uses bigquery.query + public void iterateRecordsWithBigQuery_Query(Blackhole blackhole) throws InterruptedException { + String selectQuery = String.format(QUERY, rowLimit); + BigQuery bigQuery = BigQueryOptions.getDefaultInstance().getService(); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(selectQuery).setUseLegacySql(false).build(); + TableResult result = bigQuery.query(config); + long hash = 0L; + int cnt = 0; + System.out.print("\n Running"); + // iterate al the records and compute the hash + for (FieldValueList row : result.iterateAll()) { + hash += + row.get("vendor_id").getStringValue() == null + ? 0 + : row.get("vendor_id").getStringValue().hashCode(); + hash += + row.get("pickup_datetime").getStringValue() == null + ? 0 + : row.get("pickup_datetime").getStringValue().hashCode(); + hash += + row.get("dropoff_datetime").getStringValue() == null + ? 0 + : row.get("dropoff_datetime").getStringValue().hashCode(); + hash += + row.get("passenger_count").getValue() == null + ? 0 + : row.get("passenger_count").getLongValue(); + hash += + row.get("trip_distance").getValue() == null + ? 0 + : row.get("trip_distance").getDoubleValue(); + hash += + row.get("pickup_longitude").getValue() == null + ? 0 + : row.get("pickup_longitude").getDoubleValue(); + hash += + row.get("pickup_latitude").getValue() == null + ? 0 + : row.get("pickup_latitude").getDoubleValue(); + hash += + row.get("rate_code").getStringValue() == null + ? 0 + : row.get("rate_code").getStringValue().hashCode(); + hash += + row.get("store_and_fwd_flag").getStringValue() == null + ? 0 + : row.get("store_and_fwd_flag").getStringValue().hashCode(); + hash += + row.get("payment_type").getStringValue() == null + ? 0 + : row.get("payment_type").getStringValue().hashCode(); + hash += + row.get("pickup_location_id").getStringValue() == null + ? 0 + : row.get("pickup_location_id").getStringValue().hashCode(); + hash += + row.get("dropoff_location_id").getStringValue() == null + ? 0 + : row.get("dropoff_location_id").getStringValue().hashCode(); + hash += + row.get("dropoff_longitude").getValue() == null + ? 0 + : row.get("dropoff_longitude").getDoubleValue(); + hash += + row.get("dropoff_latitude").getValue() == null + ? 0 + : row.get("dropoff_latitude").getDoubleValue(); + hash += + row.get("fare_amount").getValue() == null ? 0 : row.get("fare_amount").getDoubleValue(); + hash += row.get("extra").getValue() == null ? 0 : row.get("extra").getDoubleValue(); + hash += row.get("mta_tax").getValue() == null ? 0 : row.get("mta_tax").getDoubleValue(); + hash += row.get("tip_amount").getValue() == null ? 0 : row.get("tip_amount").getDoubleValue(); + hash += + row.get("tolls_amount").getValue() == null ? 0 : row.get("tolls_amount").getDoubleValue(); + hash += + row.get("imp_surcharge").getValue() == null + ? 0 + : row.get("imp_surcharge").getDoubleValue(); + hash += + row.get("total_amount").getValue() == null ? 0 : row.get("total_amount").getDoubleValue(); + + if (++cnt % 100000 == 0) { // just to indicate the progress while long running benchmarks + System.out.print("."); + } + } + System.out.println(cnt + " records processed using bigquery.query"); + blackhole.consume(hash); + } + @Benchmark public void iterateRecordsUsingReadAPI(Blackhole blackhole) throws InterruptedException, BigQuerySQLException { From ed33496950bb25bb754a7bb71c74d73d99d25209 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 2 Jun 2022 17:08:13 +0200 Subject: [PATCH 1924/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.34.0 (#2088) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f67b205425c5..23b9d15c1a0e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.33.3 + 1.34.0 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c34108c9a20f..7cec28c50b20 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.33.3 + 1.34.0 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index cda562651043..c15cb2fc562e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.33.3 + 1.34.0 com.google.oauth-client From 117d3907fcecaf923d200021ff66503a67dec2a1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 2 Jun 2022 17:08:30 +0200 Subject: [PATCH 1925/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.34.0 (#2089) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 23b9d15c1a0e..af511915ee66 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.33.3 + 1.34.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7cec28c50b20..983a120eb386 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.33.3 + 1.34.0 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c15cb2fc562e..3582da167eca 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.33.3 + 1.34.0 From fdad5ceb16dd5fe4a381690e70b1a1e2ddeee9fe Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 2 Jun 2022 15:24:21 +0000 Subject: [PATCH 1926/3441] chore(main): release 2.13.1 (#2090) :robot: I have created a release *beep* *boop* --- ## [2.13.1](https://github.com/googleapis/java-bigquery/compare/v2.13.0...v2.13.1) (2022-06-02) ### Dependencies * update dependency com.google.oauth-client:google-oauth-client-java6 to v1.34.0 ([#2088](https://github.com/googleapis/java-bigquery/issues/2088)) ([ed33496](https://github.com/googleapis/java-bigquery/commit/ed33496950bb25bb754a7bb71c74d73d99d25209)) * update dependency com.google.oauth-client:google-oauth-client-jetty to v1.34.0 ([#2089](https://github.com/googleapis/java-bigquery/issues/2089)) ([117d390](https://github.com/googleapis/java-bigquery/commit/117d3907fcecaf923d200021ff66503a67dec2a1)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 849a6b1196c8..4ccbce137e2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.13.1](https://github.com/googleapis/java-bigquery/compare/v2.13.0...v2.13.1) (2022-06-02) + + +### Dependencies + +* update dependency com.google.oauth-client:google-oauth-client-java6 to v1.34.0 ([#2088](https://github.com/googleapis/java-bigquery/issues/2088)) ([ed33496](https://github.com/googleapis/java-bigquery/commit/ed33496950bb25bb754a7bb71c74d73d99d25209)) +* update dependency com.google.oauth-client:google-oauth-client-jetty to v1.34.0 ([#2089](https://github.com/googleapis/java-bigquery/issues/2089)) ([117d390](https://github.com/googleapis/java-bigquery/commit/117d3907fcecaf923d200021ff66503a67dec2a1)) + ## [2.13.0](https://github.com/googleapis/java-bigquery/compare/v2.12.0...v2.13.0) (2022-05-31) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index cc6e29fc97d3..5ce32e6582fd 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.1-SNAPSHOT + 2.13.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bbfa00fe17ce..3a9fb29f9eef 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.1-SNAPSHOT + 2.13.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.1-SNAPSHOT + 2.13.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1893be1cf3ac..16648aa51778 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.1-SNAPSHOT + 2.13.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.1-SNAPSHOT + 2.13.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 983a120eb386..700d15668698 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.1-SNAPSHOT + 2.13.1 diff --git a/versions.txt b/versions.txt index 0b63a4fd4ef5..98b9c785df5b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.0:2.13.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.13.1:2.13.1 \ No newline at end of file From 668f9db4e9ff937e44884217e8f21f41c43428d3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 2 Jun 2022 15:38:15 +0000 Subject: [PATCH 1927/3441] chore(main): release 2.13.2-SNAPSHOT (#2091) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5ce32e6582fd..8f73e732fd93 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.1 + 2.13.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3a9fb29f9eef..424365a09128 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.1 + 2.13.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.1 + 2.13.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 16648aa51778..0f7cbdf7aefc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.1 + 2.13.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.1 + 2.13.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 700d15668698..fed346210d02 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.1 + 2.13.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 98b9c785df5b..b9082b803fae 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.1:2.13.1 \ No newline at end of file +google-cloud-bigquery:2.13.1:2.13.2-SNAPSHOT \ No newline at end of file From 66b978a582c8b060ce3fd974d68d6dbd25550883 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 2 Jun 2022 21:53:54 +0200 Subject: [PATCH 1928/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.13.1 (#2092) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.13.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 662bcfc6f8a7..cb6e61b33856 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.13.0 + 2.13.1 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.13.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.13.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.1" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index af511915ee66..63409b7f1301 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.13.0 + 2.13.1 From e877d4a5a685debf836769655e97813fa9524894 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 2 Jun 2022 21:54:07 +0200 Subject: [PATCH 1929/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.14.1 (#2093) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.14.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0f7cbdf7aefc..a4e0cf6c7ec5 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.14.0 + 2.14.1 pom import From 1f2266f0ff0364689ea52dd1eb5de9bd44a632ac Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 2 Jun 2022 23:11:31 +0200 Subject: [PATCH 1930/3441] test(deps): update dependency org.mockito:mockito-core to v4.6.1 (#2094) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a4e0cf6c7ec5..90b3debace82 100644 --- a/pom.xml +++ b/pom.xml @@ -170,7 +170,7 @@ org.mockito mockito-core - 4.6.0 + 4.6.1 test From 6d866251fd0bdc1c1f68e92bffee53b2db27496a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 3 Jun 2022 16:39:49 +0200 Subject: [PATCH 1931/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v25.4.0 (#2095) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v25.4.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index cb6e61b33856..e963b29f5459 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 25.3.0 + 25.4.0 pom import @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:25.3.0') +implementation platform('com.google.cloud:libraries-bom:25.4.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index ad74463cb686..546552eda301 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 25.3.0 + 25.4.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3582da167eca..3c039876d042 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 25.3.0 + 25.4.0 pom import From 9275750f76938933e4e062d2eae2f8d5cd99c7e1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 5 Jun 2022 22:50:30 +0200 Subject: [PATCH 1932/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220528-1.32.1 (#2096) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 90b3debace82..815238994e89 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220507-1.32.1 + v2-rev20220528-1.32.1 2.12.0 8.0.0 From ec2c282dc82bf2e73bb43097adcd02238666bb7d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sun, 5 Jun 2022 21:04:11 +0000 Subject: [PATCH 1933/3441] chore(main): release 2.13.2 (#2097) :robot: I have created a release *beep* *boop* --- ## [2.13.2](https://github.com/googleapis/java-bigquery/compare/v2.13.1...v2.13.2) (2022-06-05) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220528-1.32.1 ([#2096](https://github.com/googleapis/java-bigquery/issues/2096)) ([9275750](https://github.com/googleapis/java-bigquery/commit/9275750f76938933e4e062d2eae2f8d5cd99c7e1)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ccbce137e2b..5f5f3754da49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.13.2](https://github.com/googleapis/java-bigquery/compare/v2.13.1...v2.13.2) (2022-06-05) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220528-1.32.1 ([#2096](https://github.com/googleapis/java-bigquery/issues/2096)) ([9275750](https://github.com/googleapis/java-bigquery/commit/9275750f76938933e4e062d2eae2f8d5cd99c7e1)) + ## [2.13.1](https://github.com/googleapis/java-bigquery/compare/v2.13.0...v2.13.1) (2022-06-02) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8f73e732fd93..d7a522e12358 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.2-SNAPSHOT + 2.13.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 424365a09128..0e3d7127f855 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.2-SNAPSHOT + 2.13.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.2-SNAPSHOT + 2.13.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 815238994e89..89a2c4f8c294 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.2-SNAPSHOT + 2.13.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.2-SNAPSHOT + 2.13.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index fed346210d02..597dc71469de 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.2-SNAPSHOT + 2.13.2 diff --git a/versions.txt b/versions.txt index b9082b803fae..16be3ac31803 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.1:2.13.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.13.2:2.13.2 \ No newline at end of file From f3d6530f752805e108be9ddf1eb2c25c491ef5df Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sun, 5 Jun 2022 21:18:11 +0000 Subject: [PATCH 1934/3441] chore(main): release 2.13.3-SNAPSHOT (#2098) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d7a522e12358..5c4eb94e19ae 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.2 + 2.13.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0e3d7127f855..399eecfc2535 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.2 + 2.13.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.2 + 2.13.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 89a2c4f8c294..2a7c7191097a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.2 + 2.13.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.2 + 2.13.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 597dc71469de..4f5c42093344 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.2 + 2.13.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 16be3ac31803..fdb4e69f59d7 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.2:2.13.2 \ No newline at end of file +google-cloud-bigquery:2.13.2:2.13.3-SNAPSHOT \ No newline at end of file From bdbd3da4c6c8bb7f2363711691edb31c7711d811 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 7 Jun 2022 21:51:34 +0200 Subject: [PATCH 1935/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.2 (#2101) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 2a7c7191097a..9904f051fc8c 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.8.1 + 1.8.2 pom import @@ -104,7 +104,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.8.1 + 1.8.2 pom import From 4630c50db7428d888b726297408b7a223b39b28a Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Wed, 8 Jun 2022 01:24:10 +0530 Subject: [PATCH 1936/3441] fix: Assertj-core cleanup (#2102) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removed Assertj-core and refactored related testcase Fixes #2083☕️ --- google-cloud-bigquery/pom.xml | 5 ---- .../cloud/bigquery/QueryRequestInfoTest.java | 24 +++++++++++++++++-- pom.xml | 7 ------ 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 399eecfc2535..e0b608f7fe72 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -156,11 +156,6 @@ mockito-core test - - org.assertj - assertj-core - test - com.google.cloud google-cloud-datacatalog diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java index 5c224af8090f..a62e3c0a0d00 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java @@ -16,8 +16,8 @@ package com.google.cloud.bigquery; -import static org.assertj.core.api.Assertions.*; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; import com.google.api.services.bigquery.model.QueryRequest; import com.google.cloud.bigquery.JobInfo.CreateDisposition; @@ -167,8 +167,28 @@ public void equalTo() { compareQueryRequestInfo(new QueryRequestInfo(QUERY_JOB_CONFIGURATION), REQUEST_INFO); } + /* + Ref: https://github.com/googleapis/java-bigquery/issues/2083 + Refactoring to remove the assert4j dependency which was causing RequireUpperBoundDeps Error + */ private void compareQueryRequestInfo(QueryRequestInfo expected, QueryRequestInfo actual) { + QueryRequest expectedQueryReq = expected.toPb(); + QueryRequest actualQueryReq = actual.toPb(); + // requestId are expected to be different - assertThat(actual).isEqualToIgnoringGivenFields(expected, "requestId"); + assertNotEquals(expectedQueryReq.getRequestId(), actualQueryReq.getRequestId()); + // rest of the attributes should be equal + assertEquals( + expectedQueryReq.getConnectionProperties(), actualQueryReq.getConnectionProperties()); + assertEquals(expectedQueryReq.getDefaultDataset(), actualQueryReq.getDefaultDataset()); + assertEquals(expectedQueryReq.getDryRun(), actualQueryReq.getDryRun()); + assertEquals(expectedQueryReq.getLabels(), actualQueryReq.getLabels()); + assertEquals(expectedQueryReq.getMaximumBytesBilled(), actualQueryReq.getMaximumBytesBilled()); + assertEquals(expectedQueryReq.getMaxResults(), actualQueryReq.getMaxResults()); + assertEquals(expectedQueryReq.getQuery(), actualQueryReq.getQuery()); + assertEquals(expectedQueryReq.getQueryParameters(), actualQueryReq.getQueryParameters()); + assertEquals(expectedQueryReq.getCreateSession(), actualQueryReq.getCreateSession()); + assertEquals(expectedQueryReq.getUseQueryCache(), actualQueryReq.getUseQueryCache()); + assertEquals(expectedQueryReq.getUseLegacySql(), actualQueryReq.getUseLegacySql()); } } diff --git a/pom.xml b/pom.xml index 9904f051fc8c..a06c2e016f07 100644 --- a/pom.xml +++ b/pom.xml @@ -179,13 +179,6 @@ 2.7.2 test - - org.assertj - assertj-core - - 2.9.1 - test -
    From 1de34747d75ce8bf22471bdd057e9fc5cab8d1b3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 8 Jun 2022 16:02:09 +0200 Subject: [PATCH 1937/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.13.2 (#2105) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.13.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e963b29f5459..dd8df0f20cb5 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.13.1 + 2.13.2 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.13.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.13.2' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.2" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 63409b7f1301..fa79665488f2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.13.1 + 2.13.2 From a30e741ab240746e4acd002b41d0437303e5a4d5 Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Tue, 14 Jun 2022 09:32:24 +0530 Subject: [PATCH 1938/3441] Disabling testReadAPIIterationAndOrder and testReadAPIConnectionMultiClose (#2118) --- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 812833d9cbd2..891beed92ca7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2687,7 +2687,8 @@ public void testBQResultSetPagination() throws SQLException { assertEquals(300000, cnt); // total 300000 rows should be read } - @Test + // @Test - Temporarily disabling till https://github.com/googleapis/gax-java/issues/1712 or + // b/235591056 are resolved public void testReadAPIIterationAndOrder() throws SQLException { // use read API to read 300K records and check the order String query = @@ -2733,7 +2734,8 @@ public void testCreateDefaultConnection() throws BigQuerySQLException { assertTrue(connection.close()); } - @Test + // @Test - Temporarily disabling till https://github.com/googleapis/gax-java/issues/1712 or + // b/235591056 are resolved public void testReadAPIConnectionMultiClose() throws SQLException { // use read API to read 300K records, then closes the connection. This test From 1a0235f9cdea0ae37b2e8b1047ca66395b1af3b0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 14 Jun 2022 07:43:28 +0200 Subject: [PATCH 1939/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.34.1 (#2111) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fa79665488f2..071f5b459dd8 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.34.0 + 1.34.1 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4f5c42093344..c47e34bdfe7b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.34.0 + 1.34.1 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3c039876d042..97b28c125606 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.34.0 + 1.34.1 com.google.oauth-client From 30a88f43aea6269e3fbe82544eb2112f25830761 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 14 Jun 2022 07:45:23 +0200 Subject: [PATCH 1940/3441] deps: update cloud client dependencies (#2110) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a06c2e016f07..b497428cf363 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.14.1 + 2.14.2 pom import @@ -176,7 +176,7 @@ com.google.cloud google-cloud-storage - 2.7.2 + 2.8.1 test From 7b204eed9d64c73c734bd4f657dcc0bb2b22e5a2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 14 Jun 2022 07:47:50 +0200 Subject: [PATCH 1941/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.0 (#2116) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b497428cf363..61c30d2626d2 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.4.0 + 1.5.0 From de7b45a52259cec16970e074dd4f526685aa4d09 Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Wed, 15 Jun 2022 05:01:15 -0400 Subject: [PATCH 1942/3441] docs(sample): clean up native image sample README (#2120) --- samples/native-image-sample/README.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/samples/native-image-sample/README.md b/samples/native-image-sample/README.md index 8d7bce658987..ed54aa6facf4 100644 --- a/samples/native-image-sample/README.md +++ b/samples/native-image-sample/README.md @@ -2,7 +2,6 @@ The BigQuery sample application demonstrates some common operations with [Google Cloud BigQuery](https://cloud.google.com/bigquery) and is compatible with Native Image compilation. -## Setup Instructions ## Setup Instructions @@ -22,23 +21,23 @@ You will need to follow these prerequisite steps in order to run the samples: 3. Install the native image compiler. - You can follow [the installation instructions](https://www.graalvm.org/docs/getting-started/#install-graalvm) from the GraalVM website. + You can follow [the installation instructions](https://www.graalvm.org/docs/getting-started/#install-graalvm). After following the instructions, ensure that you install the native image extension installed by running: ``` gu install native-image ``` - Once you finish following the instructions, verify that the default version of Java is set to the GraalVM version by running `java -version` in a terminal. + Once you finish following the instructions, verify that the default version of Java is set to the correct version by running `java -version` in a terminal. You will see something similar to the below output: ``` $ java -version - openjdk version "11.0.7" 2020-04-14 - OpenJDK Runtime Environment GraalVM CE 20.1.0 (build 11.0.7+10-jvmci-20.1-b02) - OpenJDK 64-Bit Server VM GraalVM CE 20.1.0 (build 11.0.7+10-jvmci-20.1-b02, mixed mode, sharing) + openjdk version "17.0.3" 2022-04-19 + OpenJDK Runtime Environment GraalVM CE 22.1.0 (build 17.0.3+7-jvmci-22.1-b06) + OpenJDK 64-Bit Server VM GraalVM CE 22.1.0 (build 17.0.3+7-jvmci-22.1-b06, mixed mode, sharing) ``` 2. [Enable the BigQuery APIs](https://console.cloud.google.com/apis/api/bigquery.googleapis.com). @@ -47,7 +46,7 @@ You will need to follow these prerequisite steps in order to run the samples: Navigate to this directory in a new terminal. -1. Compile the application using the Native Image Compiler. This step may take a few minutes. +1. Compile the application using the native image Compiler. This step may take a few minutes. ``` mvn package -P native -DskipTests @@ -79,4 +78,4 @@ In order to run the sample integration test, call the following command: ``` mvn test -Pnative -``` \ No newline at end of file +``` From e52739ffcaeb9ca9dc362f07f117f37ecff220c7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 16 Jun 2022 07:33:37 +0200 Subject: [PATCH 1943/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.34.1 (#2112) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 071f5b459dd8..9a608be2bb11 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.34.0 + 1.34.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c47e34bdfe7b..7adc054c8481 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.34.0 + 1.34.1 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 97b28c125606..b3c71580214f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.34.0 + 1.34.1 From 40c084f213e0ac37f92d54fcd9e03594dfaf763a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 16 Jun 2022 12:47:09 -0700 Subject: [PATCH 1944/3441] chore(main): release 2.13.3 (#2104) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 20 ++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 27 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f5f3754da49..d87e236aa092 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## [2.13.3](https://github.com/googleapis/java-bigquery/compare/v2.13.2...v2.13.3) (2022-06-16) + + +### Bug Fixes + +* Assertj-core cleanup ([#2102](https://github.com/googleapis/java-bigquery/issues/2102)) ([4630c50](https://github.com/googleapis/java-bigquery/commit/4630c50db7428d888b726297408b7a223b39b28a)) + + +### Documentation + +* **sample:** clean up native image sample README ([#2120](https://github.com/googleapis/java-bigquery/issues/2120)) ([de7b45a](https://github.com/googleapis/java-bigquery/commit/de7b45a52259cec16970e074dd4f526685aa4d09)) + + +### Dependencies + +* update cloud client dependencies ([#2110](https://github.com/googleapis/java-bigquery/issues/2110)) ([30a88f4](https://github.com/googleapis/java-bigquery/commit/30a88f43aea6269e3fbe82544eb2112f25830761)) +* update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.2 ([#2101](https://github.com/googleapis/java-bigquery/issues/2101)) ([bdbd3da](https://github.com/googleapis/java-bigquery/commit/bdbd3da4c6c8bb7f2363711691edb31c7711d811)) +* update dependency com.google.oauth-client:google-oauth-client-java6 to v1.34.1 ([#2111](https://github.com/googleapis/java-bigquery/issues/2111)) ([1a0235f](https://github.com/googleapis/java-bigquery/commit/1a0235f9cdea0ae37b2e8b1047ca66395b1af3b0)) +* update dependency com.google.oauth-client:google-oauth-client-jetty to v1.34.1 ([#2112](https://github.com/googleapis/java-bigquery/issues/2112)) ([e52739f](https://github.com/googleapis/java-bigquery/commit/e52739ffcaeb9ca9dc362f07f117f37ecff220c7)) + ## [2.13.2](https://github.com/googleapis/java-bigquery/compare/v2.13.1...v2.13.2) (2022-06-05) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5c4eb94e19ae..07b76c3e383e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.3-SNAPSHOT + 2.13.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e0b608f7fe72..9f9e1ebd8186 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.3-SNAPSHOT + 2.13.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.3-SNAPSHOT + 2.13.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 61c30d2626d2..dacb853f5ed7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.3-SNAPSHOT + 2.13.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.3-SNAPSHOT + 2.13.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7adc054c8481..f28648544dc3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.3-SNAPSHOT + 2.13.3 diff --git a/versions.txt b/versions.txt index fdb4e69f59d7..ed1f955c049e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.2:2.13.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.13.3:2.13.3 \ No newline at end of file From a1c3fde2f533fd9959cf39abd9fad419e0b41183 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 16 Jun 2022 19:58:10 +0000 Subject: [PATCH 1945/3441] chore(main): release 2.13.4-SNAPSHOT (#2122) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 07b76c3e383e..540086de8877 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.3 + 2.13.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9f9e1ebd8186..042eef7ad915 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.3 + 2.13.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.3 + 2.13.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index dacb853f5ed7..762934e5462d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.3 + 2.13.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.3 + 2.13.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f28648544dc3..db00f99f1f82 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.3 + 2.13.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index ed1f955c049e..dfbd802a5027 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.3:2.13.3 \ No newline at end of file +google-cloud-bigquery:2.13.3:2.13.4-SNAPSHOT \ No newline at end of file From c5c97b0c6fd98978e3e480cd565bf4f832b35e7c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 17 Jun 2022 05:13:10 +0200 Subject: [PATCH 1946/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.13.3 (#2123) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.13.3 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index dd8df0f20cb5..94172a0a2180 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.13.2 + 2.13.3 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.13.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.13.3' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.3" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 9a608be2bb11..168fe6daa1d5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.13.2 + 2.13.3 From 4542ce9a51d9756a8a06d0e33cf3a40d1e321ade Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 22 Jun 2022 02:06:11 +0200 Subject: [PATCH 1947/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.12 (#2124) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.graalvm.buildtools:junit-platform-native](https://togithub.com/graalvm/native-build-tools) | `0.9.11` -> `0.9.12` | [![age](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.12/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.12/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.12/compatibility-slim/0.9.11)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.12/confidence-slim/0.9.11)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    graalvm/native-build-tools ### [`v0.9.12`](https://togithub.com/graalvm/native-build-tools/releases/tag/0.9.12) [Compare Source](https://togithub.com/graalvm/native-build-tools/compare/0.9.11...0.9.12) ##### What's Changed Read what's new in the [documentation](https://graalvm.github.io/native-build-tools/latest/index.html#changelog). - Add Mockito / Byte Buddy support documentation by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/236](https://togithub.com/graalvm/native-build-tools/pull/236) - Prevent builds from failing if no test list is present by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/239](https://togithub.com/graalvm/native-build-tools/pull/239) - Support different agent modes in the native-image Gradle plugin by [@​gradinac](https://togithub.com/gradinac) in [https://github.com/graalvm/native-build-tools/pull/230](https://togithub.com/graalvm/native-build-tools/pull/230) - JVM Reachability Metadata support for Maven by [@​alvarosanchez](https://togithub.com/alvarosanchez) in [https://github.com/graalvm/native-build-tools/pull/240](https://togithub.com/graalvm/native-build-tools/pull/240) - Warn about deprecated agent DSL by [@​gradinac](https://togithub.com/gradinac) in [https://github.com/graalvm/native-build-tools/pull/242](https://togithub.com/graalvm/native-build-tools/pull/242) - Rework Maven plugin by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/247](https://togithub.com/graalvm/native-build-tools/pull/247) - Add Gradle rich output support, configure default metadata URL on Maven by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/249](https://togithub.com/graalvm/native-build-tools/pull/249) - Fix wrong scope for test dependencies by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/251](https://togithub.com/graalvm/native-build-tools/pull/251) - Add documentation for alternative build systems. by [@​gradinac](https://togithub.com/gradinac) in [https://github.com/graalvm/native-build-tools/pull/248](https://togithub.com/graalvm/native-build-tools/pull/248) **Full Changelog**: https://github.com/graalvm/native-build-tools/compare/0.9.11...0.9.12
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 546552eda301..f34b622b4e55 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.11 + 0.9.12 test From 6da965f540a2cdb2eaf845301cfbfbf34b9a6866 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 22 Jun 2022 02:06:15 +0200 Subject: [PATCH 1948/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.12 (#2125) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.graalvm.buildtools:native-maven-plugin](https://togithub.com/graalvm/native-build-tools) | `0.9.11` -> `0.9.12` | [![age](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.12/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.12/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.12/compatibility-slim/0.9.11)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.12/confidence-slim/0.9.11)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    graalvm/native-build-tools ### [`v0.9.12`](https://togithub.com/graalvm/native-build-tools/releases/tag/0.9.12) [Compare Source](https://togithub.com/graalvm/native-build-tools/compare/0.9.11...0.9.12) ##### What's Changed Read what's new in the [documentation](https://graalvm.github.io/native-build-tools/latest/index.html#changelog). - Add Mockito / Byte Buddy support documentation by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/236](https://togithub.com/graalvm/native-build-tools/pull/236) - Prevent builds from failing if no test list is present by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/239](https://togithub.com/graalvm/native-build-tools/pull/239) - Support different agent modes in the native-image Gradle plugin by [@​gradinac](https://togithub.com/gradinac) in [https://github.com/graalvm/native-build-tools/pull/230](https://togithub.com/graalvm/native-build-tools/pull/230) - JVM Reachability Metadata support for Maven by [@​alvarosanchez](https://togithub.com/alvarosanchez) in [https://github.com/graalvm/native-build-tools/pull/240](https://togithub.com/graalvm/native-build-tools/pull/240) - Warn about deprecated agent DSL by [@​gradinac](https://togithub.com/gradinac) in [https://github.com/graalvm/native-build-tools/pull/242](https://togithub.com/graalvm/native-build-tools/pull/242) - Rework Maven plugin by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/247](https://togithub.com/graalvm/native-build-tools/pull/247) - Add Gradle rich output support, configure default metadata URL on Maven by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/249](https://togithub.com/graalvm/native-build-tools/pull/249) - Fix wrong scope for test dependencies by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/251](https://togithub.com/graalvm/native-build-tools/pull/251) - Add documentation for alternative build systems. by [@​gradinac](https://togithub.com/gradinac) in [https://github.com/graalvm/native-build-tools/pull/248](https://togithub.com/graalvm/native-build-tools/pull/248) **Full Changelog**: https://github.com/graalvm/native-build-tools/compare/0.9.11...0.9.12
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index f34b622b4e55..f94b8ac543f9 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.11 + 0.9.12 true com.example.bigquery.NativeImageBigquerySample From e3ddcf4f1ca0889e4bc2346bde148883657f9bdb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Jun 2022 00:18:13 +0000 Subject: [PATCH 1949/3441] chore(main): release 2.13.4 (#2126) :robot: I have created a release *beep* *boop* --- ## [2.13.4](https://github.com/googleapis/java-bigquery/compare/v2.13.3...v2.13.4) (2022-06-22) ### Dependencies * update dependency org.graalvm.buildtools:junit-platform-native to v0.9.12 ([#2124](https://github.com/googleapis/java-bigquery/issues/2124)) ([4542ce9](https://github.com/googleapis/java-bigquery/commit/4542ce9a51d9756a8a06d0e33cf3a40d1e321ade)) * update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.12 ([#2125](https://github.com/googleapis/java-bigquery/issues/2125)) ([6da965f](https://github.com/googleapis/java-bigquery/commit/6da965f540a2cdb2eaf845301cfbfbf34b9a6866)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d87e236aa092..ab1358cff315 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.13.4](https://github.com/googleapis/java-bigquery/compare/v2.13.3...v2.13.4) (2022-06-22) + + +### Dependencies + +* update dependency org.graalvm.buildtools:junit-platform-native to v0.9.12 ([#2124](https://github.com/googleapis/java-bigquery/issues/2124)) ([4542ce9](https://github.com/googleapis/java-bigquery/commit/4542ce9a51d9756a8a06d0e33cf3a40d1e321ade)) +* update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.12 ([#2125](https://github.com/googleapis/java-bigquery/issues/2125)) ([6da965f](https://github.com/googleapis/java-bigquery/commit/6da965f540a2cdb2eaf845301cfbfbf34b9a6866)) + ## [2.13.3](https://github.com/googleapis/java-bigquery/compare/v2.13.2...v2.13.3) (2022-06-16) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 540086de8877..a1178a6f8e30 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.4-SNAPSHOT + 2.13.4 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 042eef7ad915..93510eadeda7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.4-SNAPSHOT + 2.13.4 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.4-SNAPSHOT + 2.13.4 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 762934e5462d..509626fdbb2a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.4-SNAPSHOT + 2.13.4 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.4-SNAPSHOT + 2.13.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index db00f99f1f82..77101b32e48b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.4-SNAPSHOT + 2.13.4 diff --git a/versions.txt b/versions.txt index dfbd802a5027..e2157bc2bfc3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.3:2.13.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.13.4:2.13.4 \ No newline at end of file From f4aca7f3da46f619047742ee7a723afecce9faa8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Jun 2022 00:30:14 +0000 Subject: [PATCH 1950/3441] chore(main): release 2.13.5-SNAPSHOT (#2127) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a1178a6f8e30..96f6914b429a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.4 + 2.13.5-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 93510eadeda7..55049788ee30 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.4 + 2.13.5-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.4 + 2.13.5-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 509626fdbb2a..eb5cbd2cf65a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.4 + 2.13.5-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.4 + 2.13.5-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 77101b32e48b..6ddc29e06caa 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.4 + 2.13.5-SNAPSHOT diff --git a/versions.txt b/versions.txt index e2157bc2bfc3..da1e8af5c36b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.4:2.13.4 \ No newline at end of file +google-cloud-bigquery:2.13.4:2.13.5-SNAPSHOT \ No newline at end of file From 3043533608c5659be0313f1942d20314d2157fd4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 23 Jun 2022 07:04:52 +0200 Subject: [PATCH 1951/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 (#2128) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 94172a0a2180..826d7c7c8114 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.13.3' +implementation 'com.google.cloud:google-cloud-bigquery:2.13.4' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.4" ``` ## Authentication diff --git a/pom.xml b/pom.xml index eb5cbd2cf65a..433f8cbce37f 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20220528-1.32.1 - 2.12.0 + 2.13.0 8.0.0 From cb4f76964e82013ca451435eb5b4bd90c13eac8b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 23 Jun 2022 05:16:12 +0000 Subject: [PATCH 1952/3441] chore(main): release 2.13.5 (#2129) :robot: I have created a release *beep* *boop* --- ## [2.13.5](https://github.com/googleapis/java-bigquery/compare/v2.13.4...v2.13.5) (2022-06-23) ### Dependencies * update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 ([#2128](https://github.com/googleapis/java-bigquery/issues/2128)) ([3043533](https://github.com/googleapis/java-bigquery/commit/3043533608c5659be0313f1942d20314d2157fd4)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab1358cff315..278e14819e99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.13.5](https://github.com/googleapis/java-bigquery/compare/v2.13.4...v2.13.5) (2022-06-23) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 ([#2128](https://github.com/googleapis/java-bigquery/issues/2128)) ([3043533](https://github.com/googleapis/java-bigquery/commit/3043533608c5659be0313f1942d20314d2157fd4)) + ## [2.13.4](https://github.com/googleapis/java-bigquery/compare/v2.13.3...v2.13.4) (2022-06-22) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 96f6914b429a..1b09fd6cc2ce 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.5-SNAPSHOT + 2.13.5 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 55049788ee30..709a5b07d00e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.5-SNAPSHOT + 2.13.5 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.5-SNAPSHOT + 2.13.5 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 433f8cbce37f..eb284c946646 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.5-SNAPSHOT + 2.13.5 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.5-SNAPSHOT + 2.13.5 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6ddc29e06caa..1c9c317c1ae4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.5-SNAPSHOT + 2.13.5 diff --git a/versions.txt b/versions.txt index da1e8af5c36b..219132e729c7 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.4:2.13.5-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.13.5:2.13.5 \ No newline at end of file From 1c8cd0a0bcfbaba44252ed67ca63fb9dafd204ac Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 23 Jun 2022 05:28:12 +0000 Subject: [PATCH 1953/3441] chore(main): release 2.13.6-SNAPSHOT (#2130) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1b09fd6cc2ce..4b4d7663c3ab 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.5 + 2.13.6-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 709a5b07d00e..a8458ff5896c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.5 + 2.13.6-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.5 + 2.13.6-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index eb284c946646..a54f07b36350 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.5 + 2.13.6-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.5 + 2.13.6-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1c9c317c1ae4..71e41a3ba68e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.5 + 2.13.6-SNAPSHOT diff --git a/versions.txt b/versions.txt index 219132e729c7..6cd334facf4b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.5:2.13.5 \ No newline at end of file +google-cloud-bigquery:2.13.5:2.13.6-SNAPSHOT \ No newline at end of file From bddefcf647d50ee12fffea80c04613b38b8d02d0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 23 Jun 2022 18:12:19 +0200 Subject: [PATCH 1954/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220611-1.32.1 (#2132) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20220528-1.32.1` -> `v2-rev20220611-1.32.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220611-1.32.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220611-1.32.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220611-1.32.1/compatibility-slim/v2-rev20220528-1.32.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220611-1.32.1/confidence-slim/v2-rev20220528-1.32.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 826d7c7c8114..f153261024f4 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.13.4' +implementation 'com.google.cloud:google-cloud-bigquery:2.13.5' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.4" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.5" ``` ## Authentication diff --git a/pom.xml b/pom.xml index a54f07b36350..a6513f565947 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220528-1.32.1 + v2-rev20220611-1.32.1 2.13.0 8.0.0 From 0bd5ddc0df0a978692252e50c37c94f41a3c4e1d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 24 Jun 2022 08:54:52 +0200 Subject: [PATCH 1955/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.3 (#2135) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index a6513f565947..dc1ea51cadc1 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.8.2 + 1.8.3 pom import @@ -104,7 +104,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.8.2 + 1.8.3 pom import From a6f6b4051144545fb5b61c7d802f7151a778a412 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 24 Jun 2022 07:08:31 +0000 Subject: [PATCH 1956/3441] chore(main): release 2.13.6 (#2134) :robot: I have created a release *beep* *boop* --- ## [2.13.6](https://github.com/googleapis/java-bigquery/compare/v2.13.5...v2.13.6) (2022-06-24) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220611-1.32.1 ([#2132](https://github.com/googleapis/java-bigquery/issues/2132)) ([bddefcf](https://github.com/googleapis/java-bigquery/commit/bddefcf647d50ee12fffea80c04613b38b8d02d0)) * update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.3 ([#2135](https://github.com/googleapis/java-bigquery/issues/2135)) ([0bd5ddc](https://github.com/googleapis/java-bigquery/commit/0bd5ddc0df0a978692252e50c37c94f41a3c4e1d)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 278e14819e99..b91ba16acf11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.13.6](https://github.com/googleapis/java-bigquery/compare/v2.13.5...v2.13.6) (2022-06-24) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220611-1.32.1 ([#2132](https://github.com/googleapis/java-bigquery/issues/2132)) ([bddefcf](https://github.com/googleapis/java-bigquery/commit/bddefcf647d50ee12fffea80c04613b38b8d02d0)) +* update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.3 ([#2135](https://github.com/googleapis/java-bigquery/issues/2135)) ([0bd5ddc](https://github.com/googleapis/java-bigquery/commit/0bd5ddc0df0a978692252e50c37c94f41a3c4e1d)) + ## [2.13.5](https://github.com/googleapis/java-bigquery/compare/v2.13.4...v2.13.5) (2022-06-23) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4b4d7663c3ab..c56741afc3ad 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.6-SNAPSHOT + 2.13.6 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a8458ff5896c..e48548593e32 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.6-SNAPSHOT + 2.13.6 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.6-SNAPSHOT + 2.13.6 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index dc1ea51cadc1..c8714c8cf903 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.6-SNAPSHOT + 2.13.6 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.6-SNAPSHOT + 2.13.6 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 71e41a3ba68e..9e98d6499e2d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.6-SNAPSHOT + 2.13.6 diff --git a/versions.txt b/versions.txt index 6cd334facf4b..f1d89a7b8939 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.5:2.13.6-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.13.6:2.13.6 \ No newline at end of file From 0965f4d409737f86e5780c2c02d88b15f5887469 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 24 Jun 2022 07:20:11 +0000 Subject: [PATCH 1957/3441] chore(main): release 2.13.7-SNAPSHOT (#2136) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c56741afc3ad..9cf1a5247edb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.6 + 2.13.7-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e48548593e32..49dd5f59d391 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.6 + 2.13.7-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.6 + 2.13.7-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c8714c8cf903..3155ff7d66d0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.6 + 2.13.7-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.6 + 2.13.7-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9e98d6499e2d..5d0bc312bdd6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.6 + 2.13.7-SNAPSHOT diff --git a/versions.txt b/versions.txt index f1d89a7b8939..35d245cfedff 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.6:2.13.6 \ No newline at end of file +google-cloud-bigquery:2.13.6:2.13.7-SNAPSHOT \ No newline at end of file From 2d52c1bb07d60405fd7bd88ccfdcbf0062955657 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 24 Jun 2022 14:05:18 +0530 Subject: [PATCH 1958/3441] chore: update java dependencies in templates (#1465) (#2133) * chore: update java dependencies in templates * chore: fix java golden tests * chore: fix tests * chore: fix tests Source-Link: https://github.com/googleapis/synthtool/commit/875deab8c37423679265ab08df2fffdaeaf476b8 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:bb0871486fc5f95f969df8fa65e002c0cf952cb7dd3bf647475c1d49ae0535b7 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index a79f06271b60..8ded1fe9272e 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:2567a120ce90fadb6201999b87d649d9f67459de28815ad239bce9ebfaa18a74 -# created: 2022-05-19T15:12:45.278246753Z + digest: sha256:bb0871486fc5f95f969df8fa65e002c0cf952cb7dd3bf647475c1d49ae0535b7 +# created: 2022-06-23T15:37:16.246867617Z From e1e58d32e01e6a61348340423cc8f40675249cc9 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 27 Jun 2022 11:58:23 -0700 Subject: [PATCH 1959/3441] chore: update dependencies for regapic (#1467) (#2139) * chore: update dependencies for regapic * add more dependencies and trigger comment * update goldens * fix indentation * remove duplicate gax-httpjson dependency * remove duplicated dependencies Source-Link: https://github.com/googleapis/synthtool/commit/fa54eb2a78c6ee48613fd33152e2130e949dcbd9 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:1ec28a46062b19135b11178ceee60231e5f5a92dab454e23ae0aab72cd875906 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 ++-- .kokoro/common.sh | 4 +++- README.md | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 8ded1fe9272e..f0625e4d9459 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:bb0871486fc5f95f969df8fa65e002c0cf952cb7dd3bf647475c1d49ae0535b7 -# created: 2022-06-23T15:37:16.246867617Z + digest: sha256:1ec28a46062b19135b11178ceee60231e5f5a92dab454e23ae0aab72cd875906 +# created: 2022-06-27T15:01:06.405564326Z diff --git a/.kokoro/common.sh b/.kokoro/common.sh index ace89f45a9de..f8f957af1112 100644 --- a/.kokoro/common.sh +++ b/.kokoro/common.sh @@ -55,4 +55,6 @@ function retry_with_backoff { ## Helper functionss function now() { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n'; } function msg() { println "$*" >&2; } -function println() { printf '%s\n' "$(now) $*"; } \ No newline at end of file +function println() { printf '%s\n' "$(now) $*"; } + +## Helper comment to trigger updated repo dependency release \ No newline at end of file diff --git a/README.md b/README.md index f153261024f4..77905bd2c605 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.13.5' +implementation 'com.google.cloud:google-cloud-bigquery:2.13.6' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.5" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.6" ``` ## Authentication From c7ef597832505e6c05adb38ac1db5dd15e32d024 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 29 Jun 2022 07:08:25 +0200 Subject: [PATCH 1960/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.4 (#2140) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 3155ff7d66d0..7bbf87323350 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.8.3 + 1.8.4 pom import @@ -104,7 +104,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.8.3 + 1.8.4 pom import From fca26012be0c65666466076bd419dd9d1c8df1f4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 29 Jun 2022 05:20:11 +0000 Subject: [PATCH 1961/3441] chore(main): release 2.13.7 (#2144) :robot: I have created a release *beep* *boop* --- ## [2.13.7](https://github.com/googleapis/java-bigquery/compare/v2.13.6...v2.13.7) (2022-06-29) ### Dependencies * update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.4 ([#2140](https://github.com/googleapis/java-bigquery/issues/2140)) ([c7ef597](https://github.com/googleapis/java-bigquery/commit/c7ef597832505e6c05adb38ac1db5dd15e32d024)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b91ba16acf11..d5f2ac50740b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.13.7](https://github.com/googleapis/java-bigquery/compare/v2.13.6...v2.13.7) (2022-06-29) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.8.4 ([#2140](https://github.com/googleapis/java-bigquery/issues/2140)) ([c7ef597](https://github.com/googleapis/java-bigquery/commit/c7ef597832505e6c05adb38ac1db5dd15e32d024)) + ## [2.13.6](https://github.com/googleapis/java-bigquery/compare/v2.13.5...v2.13.6) (2022-06-24) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9cf1a5247edb..cb98de08b79e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.7-SNAPSHOT + 2.13.7 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 49dd5f59d391..e114456969e7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.7-SNAPSHOT + 2.13.7 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.7-SNAPSHOT + 2.13.7 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7bbf87323350..337f7d7a5050 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.7-SNAPSHOT + 2.13.7 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.7-SNAPSHOT + 2.13.7 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5d0bc312bdd6..d0913d089f74 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.7-SNAPSHOT + 2.13.7 diff --git a/versions.txt b/versions.txt index 35d245cfedff..8d95a0090b13 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.6:2.13.7-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.13.7:2.13.7 \ No newline at end of file From ad1aa20bb1a93e202b0810168c632e94bcb8e4ad Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 29 Jun 2022 05:32:12 +0000 Subject: [PATCH 1962/3441] chore(main): release 2.13.8-SNAPSHOT (#2145) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index cb98de08b79e..7dde2e6992e7 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.7 + 2.13.8-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e114456969e7..bc3f340cae85 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.7 + 2.13.8-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.7 + 2.13.8-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 337f7d7a5050..b0cc38b732a8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.7 + 2.13.8-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.7 + 2.13.8-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d0913d089f74..5610af1e9c06 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.7 + 2.13.8-SNAPSHOT diff --git a/versions.txt b/versions.txt index 8d95a0090b13..b0badb302c15 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.7:2.13.7 \ No newline at end of file +google-cloud-bigquery:2.13.7:2.13.8-SNAPSHOT \ No newline at end of file From 4232684a36e1450a82bae4164043e79559734e8c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 30 Jun 2022 02:24:31 +0000 Subject: [PATCH 1963/3441] chore: Disable CLIRR checks on releas (#1474) (#2150) Source-Link: https://github.com/googleapis/synthtool/commit/7a220e27993a25ab3cda26510d5619d97b6952a9 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:6d4e3a15c62cfdcb823d60e16da7521e7c6fc00eba07c8ff12e4de9924a57d28 --- .github/.OwlBot.lock.yaml | 4 ++-- .kokoro/release/stage.sh | 3 ++- README.md | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index f0625e4d9459..a454a61e8dc2 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:1ec28a46062b19135b11178ceee60231e5f5a92dab454e23ae0aab72cd875906 -# created: 2022-06-27T15:01:06.405564326Z + digest: sha256:6d4e3a15c62cfdcb823d60e16da7521e7c6fc00eba07c8ff12e4de9924a57d28 +# created: 2022-06-29T23:17:33.110417661Z diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh index 77dc4e8f0f3a..1dba8de10857 100755 --- a/.kokoro/release/stage.sh +++ b/.kokoro/release/stage.sh @@ -32,6 +32,7 @@ retry_with_backoff 3 10 \ mvn clean deploy -B \ --settings ${MAVEN_SETTINGS_FILE} \ -DskipTests=true \ + -Dclirr.skip=true \ -DperformRelease=true \ -Dgpg.executable=gpg \ -Dgpg.passphrase=${GPG_PASSPHRASE} \ @@ -42,4 +43,4 @@ then mvn nexus-staging:release -B \ -DperformRelease=true \ --settings=settings.xml -fi \ No newline at end of file +fi diff --git a/README.md b/README.md index 77905bd2c605..407a4f613bbd 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.13.6' +implementation 'com.google.cloud:google-cloud-bigquery:2.13.7' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.6" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.7" ``` ## Authentication From ce7b0a400063d3d1a1202cf040f4e7f48336a29b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 1 Jul 2022 08:58:41 +0200 Subject: [PATCH 1964/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.9.0 (#2151) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 168fe6daa1d5..664d17e8f045 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.8.0 + 2.9.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5610af1e9c06..3c669104ebf8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.8.0 + 2.9.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index b3c71580214f..3a0452dc141e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.8.0 + 2.9.0 test From a07c714cb90c7ff62a43f7500abe8d54a5cd0936 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 1 Jul 2022 09:01:02 +0200 Subject: [PATCH 1965/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.9.0 (#2149) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-storage to v2.9.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b0cc38b732a8..d9d615820df8 100644 --- a/pom.xml +++ b/pom.xml @@ -176,7 +176,7 @@ com.google.cloud google-cloud-storage - 2.8.1 + 2.9.0 test From 4365d29041737612b6ea4d801cd919d150d4d32b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 1 Jul 2022 07:18:11 +0000 Subject: [PATCH 1966/3441] chore(main): release 2.13.8 (#2152) :robot: I have created a release *beep* *boop* --- ## [2.13.8](https://github.com/googleapis/java-bigquery/compare/v2.13.7...v2.13.8) (2022-07-01) ### Dependencies * update dependency com.google.cloud:google-cloud-storage to v2.9.0 ([#2149](https://github.com/googleapis/java-bigquery/issues/2149)) ([a07c714](https://github.com/googleapis/java-bigquery/commit/a07c714cb90c7ff62a43f7500abe8d54a5cd0936)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d5f2ac50740b..707746e0ccd0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.13.8](https://github.com/googleapis/java-bigquery/compare/v2.13.7...v2.13.8) (2022-07-01) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v2.9.0 ([#2149](https://github.com/googleapis/java-bigquery/issues/2149)) ([a07c714](https://github.com/googleapis/java-bigquery/commit/a07c714cb90c7ff62a43f7500abe8d54a5cd0936)) + ## [2.13.7](https://github.com/googleapis/java-bigquery/compare/v2.13.6...v2.13.7) (2022-06-29) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 7dde2e6992e7..5053edc66794 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.8-SNAPSHOT + 2.13.8 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bc3f340cae85..d0f166f79b6f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.8-SNAPSHOT + 2.13.8 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.8-SNAPSHOT + 2.13.8 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d9d615820df8..287bd35397ca 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.8-SNAPSHOT + 2.13.8 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.8-SNAPSHOT + 2.13.8 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3c669104ebf8..28d2465d3660 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.8-SNAPSHOT + 2.13.8 diff --git a/versions.txt b/versions.txt index b0badb302c15..1283a413c721 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.7:2.13.8-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.13.8:2.13.8 \ No newline at end of file From 4d0d7b5694b1682a4c9365fa1623eb31820ef1dd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 1 Jul 2022 07:30:11 +0000 Subject: [PATCH 1967/3441] chore(main): release 2.13.9-SNAPSHOT (#2153) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5053edc66794..f15d0dc6e25a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.8 + 2.13.9-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d0f166f79b6f..3e2982dcb104 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.8 + 2.13.9-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.8 + 2.13.9-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 287bd35397ca..3214f7571720 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.8 + 2.13.9-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.8 + 2.13.9-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 28d2465d3660..dbd3e66b9350 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.8 + 2.13.9-SNAPSHOT diff --git a/versions.txt b/versions.txt index 1283a413c721..ca1695517b5e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.8:2.13.8 \ No newline at end of file +google-cloud-bigquery:2.13.8:2.13.9-SNAPSHOT \ No newline at end of file From 2d1c9702ce77adf848de840d689334435a603edd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 1 Jul 2022 23:02:20 +0200 Subject: [PATCH 1968/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.4.0 (#2154) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | `2.3.0` -> `2.4.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.4.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.4.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.4.0/compatibility-slim/2.3.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.4.0/confidence-slim/2.3.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v2.4.0`](https://togithub.com/googleapis/java-bigqueryconnection/blob/HEAD/CHANGELOG.md#​240-httpsgithubcomgoogleapisjava-bigqueryconnectioncomparev230v240-2022-07-01) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.3.0...v2.4.0) ##### Features - Enable REST transport for most of Java and Go clients ([#​704](https://togithub.com/googleapis/java-bigqueryconnection/issues/704)) ([c7def69](https://togithub.com/googleapis/java-bigqueryconnection/commit/c7def693dc869d3b25054dc54ac4a26c3060af86)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v2.13.0 ([#​703](https://togithub.com/googleapis/java-bigqueryconnection/issues/703)) ([a385b7b](https://togithub.com/googleapis/java-bigqueryconnection/commit/a385b7b3e2610f8a8396fc7a40415eb8b82498bc)) - update dependency com.google.protobuf:protobuf-java-util to v3.21.0 ([#​698](https://togithub.com/googleapis/java-bigqueryconnection/issues/698)) ([f7d48b6](https://togithub.com/googleapis/java-bigqueryconnection/commit/f7d48b611b134b2dd4cf26f437e4807218207c8f)) - update dependency com.google.protobuf:protobuf-java-util to v3.21.1 ([#​699](https://togithub.com/googleapis/java-bigqueryconnection/issues/699)) ([f631ffb](https://togithub.com/googleapis/java-bigqueryconnection/commit/f631ffbf8c30388a99d1cab5fbd0c114a912f60e)) - update dependency com.google.protobuf:protobuf-java-util to v3.21.2 ([#​705](https://togithub.com/googleapis/java-bigqueryconnection/issues/705)) ([cbb6f03](https://togithub.com/googleapis/java-bigqueryconnection/commit/cbb6f03346e8038e4fe5d5baf0f2817d0a3b4dcc))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 407a4f613bbd..d04e4b49dff0 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.13.7' +implementation 'com.google.cloud:google-cloud-bigquery:2.13.8' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.7" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.8" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 664d17e8f045..8e2ca0fdaeed 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.3.0 + 2.4.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index dbd3e66b9350..e277d343b3ae 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.3.0 + 2.4.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3a0452dc141e..e42379984471 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.3.0 + 2.4.0 test From 302d7671377ba2fa63afeaf4ab2e9037bf567de8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 5 Jul 2022 07:14:24 +0200 Subject: [PATCH 1969/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.1 (#2155) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3214f7571720..23ea3191ec0b 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.5.0 + 1.5.1 From e7a0568dd45d619d9ad69663201f725471a2ca5a Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 7 Jul 2022 09:06:42 -0700 Subject: [PATCH 1970/3441] chore: fix minor typos in README and pom templates (#1479) (#2157) Source-Link: https://github.com/googleapis/synthtool/commit/18d4e9bb50d0dfb3291de18c51b96a2c835e2446 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:f8374176dc59291f05dd3fec927a9da2cda687a9ef4de32e77f699a2be12ab45 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 ++-- README.md | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index a454a61e8dc2..1b645c012914 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:6d4e3a15c62cfdcb823d60e16da7521e7c6fc00eba07c8ff12e4de9924a57d28 -# created: 2022-06-29T23:17:33.110417661Z + digest: sha256:f8374176dc59291f05dd3fec927a9da2cda687a9ef4de32e77f699a2be12ab45 +# created: 2022-07-07T14:26:11.880812641Z diff --git a/README.md b/README.md index d04e4b49dff0..6d0145edcf78 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Java idiomatic client for [Cloud BigQuery][product-docs]. ## Quickstart -If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file +If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file: ```xml - - 7012 - com/google/cloud/bigquery/BigQuery - com.google.cloud.bigquery.Connection createConnection(com.google.cloud.bigquery.ConnectionSettings) - - - 7012 - com/google/cloud/bigquery/BigQuery - com.google.cloud.bigquery.Connection createConnection() - - - 7012 - com/google/cloud/bigquery/spi/v2/BigQueryRpc - com.google.api.services.bigquery.model.Job createJobForQuery(com.google.api.services.bigquery.model.Job) - - - 7012 - com/google/cloud/bigquery/spi/v2/BigQueryRpc - com.google.api.services.bigquery.model.Job getQueryJob(java.lang.String, java.lang.String, java.lang.String) - - + 7012 - com/google/cloud/bigquery/spi/v2/BigQueryRpc - com.google.api.services.bigquery.model.GetQueryResultsResponse getQueryResultsWithRowLimit(java.lang.String, java.lang.String, java.lang.String, java.lang.Integer) + com/google/cloud/bigquery/LoadConfiguration + java.util.List getDecimalTargetTypes() 7012 - com/google/cloud/bigquery/spi/v2/BigQueryRpc - com.google.api.services.bigquery.model.TableDataList listTableDataWithRowLimit(java.lang.String, java.lang.String, java.lang.String, java.lang.Integer, java.lang.String) + com/google/cloud/bigquery/LoadConfiguration$Builder + com.google.cloud.bigquery.LoadConfiguration$Builder setDecimalTargetTypes(java.util.List) \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java index 15e82fc914c6..d4ed81044941 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java @@ -125,6 +125,17 @@ interface Builder { */ Builder setUseAvroLogicalTypes(Boolean useAvroLogicalTypes); + /** + * Defines the list of possible SQL data types to which the source decimal values are converted. + * This list and the precision and the scale parameters of the decimal field determine the + * target type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in + * the specified list and if it supports the precision and the scale. STRING supports all + * precision and scale values. + * + * @param decimalTargetTypes decimalTargetType or {@code null} for none + */ + Builder setDecimalTargetTypes(List decimalTargetTypes); + LoadConfiguration build(); } @@ -214,6 +225,15 @@ interface Builder { /** Returns True/False. Indicates whether the logical type is interpreted. */ Boolean getUseAvroLogicalTypes(); + /** + * Returns the list of possible SQL data types to which the source decimal values are converted. + * This list and the precision and the scale parameters of the decimal field determine the target + * type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in the + * specified list and if it supports the precision and the scale. STRING supports all precision + * and scale values. + */ + List getDecimalTargetTypes(); + /** Returns a builder for the load configuration object. */ Builder toBuilder(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java index 479a6809996c..ebb5713ef0b3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java @@ -55,6 +55,7 @@ public final class WriteChannelConfiguration implements LoadConfiguration, Seria private final Clustering clustering; private final Boolean useAvroLogicalTypes; private final Map labels; + private List decimalTargetTypes; public static final class Builder implements LoadConfiguration.Builder { @@ -73,6 +74,7 @@ public static final class Builder implements LoadConfiguration.Builder { private Clustering clustering; private Boolean useAvroLogicalTypes; private Map labels; + private List decimalTargetTypes; private Builder() {} @@ -93,6 +95,7 @@ private Builder(WriteChannelConfiguration writeChannelConfiguration) { this.clustering = writeChannelConfiguration.clustering; this.useAvroLogicalTypes = writeChannelConfiguration.useAvroLogicalTypes; this.labels = writeChannelConfiguration.labels; + this.decimalTargetTypes = writeChannelConfiguration.decimalTargetTypes; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -169,6 +172,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (configurationPb.getLabels() != null) { this.labels = configurationPb.getLabels(); } + if (loadConfigurationPb.getDecimalTargetTypes() != null) { + this.decimalTargetTypes = loadConfigurationPb.getDecimalTargetTypes(); + } } @Override @@ -262,6 +268,12 @@ public Builder setLabels(Map labels) { return this; } + @Override + public Builder setDecimalTargetTypes(List decimalTargetTypes) { + this.decimalTargetTypes = decimalTargetTypes; + return this; + } + @Override public WriteChannelConfiguration build() { return new WriteChannelConfiguration(this); @@ -284,6 +296,7 @@ protected WriteChannelConfiguration(Builder builder) { this.clustering = builder.clustering; this.useAvroLogicalTypes = builder.useAvroLogicalTypes; this.labels = builder.labels; + this.decimalTargetTypes = builder.decimalTargetTypes; } @Override @@ -372,6 +385,11 @@ public Map getLabels() { return labels; } + @Override + public List getDecimalTargetTypes() { + return decimalTargetTypes; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -393,7 +411,8 @@ MoreObjects.ToStringHelper toStringHelper() { .add("timePartitioning", timePartitioning) .add("clustering", clustering) .add("useAvroLogicalTypes", useAvroLogicalTypes) - .add("labels", labels); + .add("labels", labels) + .add("decimalTargetTypes", decimalTargetTypes); } @Override @@ -424,7 +443,8 @@ public int hashCode() { timePartitioning, clustering, useAvroLogicalTypes, - labels); + labels, + decimalTargetTypes); } WriteChannelConfiguration setProjectId(String projectId) { @@ -495,6 +515,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (labels != null) { jobConfiguration.setLabels(labels); } + if (decimalTargetTypes != null) { + loadConfigurationPb.setDecimalTargetTypes(decimalTargetTypes); + } jobConfiguration.setLoad(loadConfigurationPb); return jobConfiguration; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java index dbee1094b64a..01c86e8fbfc6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java @@ -59,6 +59,8 @@ public class WriteChannelConfigurationTest { Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); private static final Map LABELS = ImmutableMap.of("test-job-name", "test-write-channel"); + private static final List DECIMAL_TARGET_TYPES = + ImmutableList.of("NUMERIC", "BIGNUMERIC"); private static final WriteChannelConfiguration LOAD_CONFIGURATION_CSV = WriteChannelConfiguration.newBuilder(TABLE_ID) .setCreateDisposition(CREATE_DISPOSITION) @@ -73,6 +75,7 @@ public class WriteChannelConfigurationTest { .setTimePartitioning(TIME_PARTITIONING) .setClustering(CLUSTERING) .setLabels(LABELS) + .setDecimalTargetTypes(DECIMAL_TARGET_TYPES) .build(); private static final DatastoreBackupOptions BACKUP_OPTIONS = @@ -104,6 +107,7 @@ public class WriteChannelConfigurationTest { .setTimePartitioning(TIME_PARTITIONING) .setClustering(CLUSTERING) .setUseAvroLogicalTypes(USERAVROLOGICALTYPES) + .setDecimalTargetTypes(DECIMAL_TARGET_TYPES) .build(); @Test @@ -169,7 +173,8 @@ public void testBuilder() { .setMaxBadRecords(MAX_BAD_RECORDS) .setSchemaUpdateOptions(SCHEMA_UPDATE_OPTIONS) .setSchema(TABLE_SCHEMA) - .setAutodetect(AUTODETECT); + .setAutodetect(AUTODETECT) + .setDecimalTargetTypes(DECIMAL_TARGET_TYPES); WriteChannelConfiguration loadConfigurationCSV = builder.build(); assertEquals(TABLE_ID, loadConfigurationCSV.getDestinationTable()); assertEquals(CREATE_DISPOSITION, loadConfigurationCSV.getCreateDisposition()); @@ -182,6 +187,7 @@ public void testBuilder() { assertEquals(TABLE_SCHEMA, loadConfigurationCSV.getSchema()); assertEquals(SCHEMA_UPDATE_OPTIONS, loadConfigurationCSV.getSchemaUpdateOptions()); assertEquals(AUTODETECT, loadConfigurationCSV.getAutodetect()); + assertEquals(DECIMAL_TARGET_TYPES, loadConfigurationCSV.getDecimalTargetTypes()); builder.setFormatOptions(BACKUP_OPTIONS); WriteChannelConfiguration loadConfigurationBackup = builder.build(); assertEquals(BACKUP_OPTIONS, loadConfigurationBackup.getDatastoreBackupOptions()); @@ -225,5 +231,6 @@ private void compareLoadConfiguration( assertEquals(expected.getClustering(), value.getClustering()); assertEquals(expected.getUseAvroLogicalTypes(), value.getUseAvroLogicalTypes()); assertEquals(expected.getLabels(), value.getLabels()); + assertEquals(expected.getDecimalTargetTypes(), value.getDecimalTargetTypes()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b733026a4d18..c5d577c39466 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -4374,6 +4374,32 @@ public void testInsertFromFileWithLabels() assertTrue(bigquery.delete(tableId)); } + @Test + public void testInsertWithDecimalTargetTypes() + throws InterruptedException, IOException, TimeoutException { + String destinationTableName = "test_insert_from_file_table_with_decimal_target_type"; + TableId tableId = TableId.of(DATASET, destinationTableName); + WriteChannelConfiguration configuration = + WriteChannelConfiguration.newBuilder(tableId) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setAutodetect(true) + .setDecimalTargetTypes(ImmutableList.of("STRING", "NUMERIC", "BIGNUMERIC")) + .build(); + TableDataWriteChannel channel = bigquery.writer(configuration); + try { + channel.write(ByteBuffer.wrap("foo".getBytes(StandardCharsets.UTF_8))); + } finally { + channel.close(); + } + Job job = channel.getJob().waitFor(); + LoadJobConfiguration jobConfiguration = job.getConfiguration(); + assertNull(job.getStatus().getError()); + assertEquals( + ImmutableList.of("STRING", "NUMERIC", "BIGNUMERIC"), + jobConfiguration.getDecimalTargetTypes()); + assertTrue(bigquery.delete(tableId)); + } + @Test public void testLocation() throws Exception { String location = "EU"; From 6e2f8e73d42bbc97e1e1e49c630535a96c986bf5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 20 Jul 2022 18:22:11 +0200 Subject: [PATCH 1980/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.4.0 (#2168) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.maven.plugins:maven-project-info-reports-plugin](https://maven.apache.org/plugins/) | `3.3.0` -> `3.4.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-project-info-reports-plugin/3.4.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-project-info-reports-plugin/3.4.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-project-info-reports-plugin/3.4.0/compatibility-slim/3.3.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-project-info-reports-plugin/3.4.0/confidence-slim/3.3.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 23ea3191ec0b..646333fbd594 100644 --- a/pom.xml +++ b/pom.xml @@ -206,7 +206,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.3.0 + 3.4.0 From db70796551228f346954caafe342e34a2cd46961 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 20 Jul 2022 18:24:12 +0200 Subject: [PATCH 1981/3441] build(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3 (#2172) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.maven.plugins:maven-deploy-plugin](https://maven.apache.org/plugins/) ([source](https://togithub.com/apache/maven-deploy-plugin)) | `2.8.2` -> `3.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-deploy-plugin/3.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-deploy-plugin/3.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-deploy-plugin/3.0.0/compatibility-slim/2.8.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-deploy-plugin/3.0.0/confidence-slim/2.8.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- benchmark/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f15d0dc6e25a..54a95466920a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -75,7 +75,7 @@ org.apache.maven.plugins maven-deploy-plugin - 2.8.2 + 3.0.0 true diff --git a/samples/pom.xml b/samples/pom.xml index cb1ba7802038..f2bb76550cfb 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -55,7 +55,7 @@ org.apache.maven.plugins maven-deploy-plugin - 2.8.2 + 3.0.0 true diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 89b534ac843c..9fd6254f3697 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -109,7 +109,7 @@ org.apache.maven.plugins maven-deploy-plugin - 2.8.2 + 3.0.0 true From d605b8149954e79c05461630915b674e11793889 Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Fri, 22 Jul 2022 17:24:17 -0400 Subject: [PATCH 1982/3441] fix(java): make field accessible to address Java 17 issue with arrow (#2165) * fix(java): troubleshoot Java 17 issue with arrow and exclude nightly tests from presubmits --- .kokoro/build.sh | 8 ++++---- google-cloud-bigquery/pom.xml | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 089ca0e23ea4..4b1c5de2b33c 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -81,13 +81,13 @@ nightly-it) RETURN_CODE=$? ;; graalvm) - # Run Unit and Integration Tests with Native Image - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test + # Run Integration Tests with Native Image. Skip running nightly tests in presubmits. + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; graalvm17) - # Run Unit and Integration Tests with Native Image. Skip Arrow tests until https://github.com/googleapis/java-bigquery/issues/2060 is fixed. - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test "-Dtest=!com.google.cloud.bigquery.it.ITBigQueryTest#testBQResultSetPaginationSlowQuery+testReadAPIConnectionMultiClose+testReadAPIIterationAndOrder, !com.google.cloud.bigquery.it.ITNightlyBigQueryTest#testIterateAndOrder+testMultipleRuns+testIterateAndOrderDefaultConnSettings, IT*, *ClientTest" + # Run Integration Tests with Native Image. Skip running nightly tests in presubmits. + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; samples) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3e2982dcb104..a543ca7faaa7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -204,4 +204,25 @@ + + + + java17 + + [17,) + + + + + org.apache.maven.plugins + maven-surefire-plugin + + --add-opens=java.base/java.nio=ALL-UNNAMED + + + + + + + From 8d832233e5b25cb8344db5b0d68b455a2a42e9ab Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 25 Jul 2022 11:21:54 +0530 Subject: [PATCH 1983/3441] chore(main): release 2.14.0 (#2162) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 21 +++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 28 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 707746e0ccd0..cc1a4dcbcf17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,26 @@ # Changelog +## [2.14.0](https://github.com/googleapis/java-bigquery/compare/v2.13.8...v2.14.0) (2022-07-22) + + +### Features + +* Add decimal target type ([#2166](https://github.com/googleapis/java-bigquery/issues/2166)) ([ebbd8f5](https://github.com/googleapis/java-bigquery/commit/ebbd8f52853d3c0ca918a47d826474cc5825a58a)) +* **bigquery:** enable use of GEOGRAPHY query params ([#2158](https://github.com/googleapis/java-bigquery/issues/2158)) ([b19ad76](https://github.com/googleapis/java-bigquery/commit/b19ad767a53a9bd5d14b4cb36716cbb1c7b44ed6)) + + +### Bug Fixes + +* Add query dryRun logic to get the schema when null schema is returned from the backend ([#2106](https://github.com/googleapis/java-bigquery/issues/2106)) ([c98d22b](https://github.com/googleapis/java-bigquery/commit/c98d22b2b4f45e20d7d0666c5342cdbfadd30bde)) +* enable longpaths support for windows test ([#1485](https://github.com/googleapis/java-bigquery/issues/1485)) ([#2164](https://github.com/googleapis/java-bigquery/issues/2164)) ([e18b9f8](https://github.com/googleapis/java-bigquery/commit/e18b9f8b4d2f194577b1710ad64710fe0f3d88d9)) +* **java:** make field accessible to address Java 17 issue with arrow ([#2165](https://github.com/googleapis/java-bigquery/issues/2165)) ([d605b81](https://github.com/googleapis/java-bigquery/commit/d605b8149954e79c05461630915b674e11793889)) + + +### Dependencies + +* update dependency org.graalvm.buildtools:junit-platform-native to v0.9.13 ([#2160](https://github.com/googleapis/java-bigquery/issues/2160)) ([970135b](https://github.com/googleapis/java-bigquery/commit/970135bec33b831925476855da9a84c34311068d)) +* update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.13 ([#2161](https://github.com/googleapis/java-bigquery/issues/2161)) ([3507bf7](https://github.com/googleapis/java-bigquery/commit/3507bf7c9fc2aef299d06d9771cfcc06e3080b87)) + ## [2.13.8](https://github.com/googleapis/java-bigquery/compare/v2.13.7...v2.13.8) (2022-07-01) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 54a95466920a..79c2e8eff5b1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.13.9-SNAPSHOT + 2.14.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a543ca7faaa7..6b1be392da55 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.13.9-SNAPSHOT + 2.14.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.13.9-SNAPSHOT + 2.14.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 646333fbd594..4c8da3154b03 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.13.9-SNAPSHOT + 2.14.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.13.9-SNAPSHOT + 2.14.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e277d343b3ae..b23481f15a60 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.13.9-SNAPSHOT + 2.14.0 diff --git a/versions.txt b/versions.txt index ca1695517b5e..0ac016a5360f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.13.8:2.13.9-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.14.0:2.14.0 \ No newline at end of file From 64789a486236a47fe3d6f35155a2989e5be0908a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 26 Jul 2022 10:12:26 +0530 Subject: [PATCH 1984/3441] chore(main): release 2.14.1-SNAPSHOT (#2179) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 79c2e8eff5b1..97a4d0e78ee6 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.0 + 2.14.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6b1be392da55..1ac4c55623ee 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.0 + 2.14.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.0 + 2.14.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4c8da3154b03..ff9518d21d8a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.0 + 2.14.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.0 + 2.14.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b23481f15a60..ba84efd89684 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.0 + 2.14.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0ac016a5360f..e9f0b3c152c2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.0:2.14.0 \ No newline at end of file +google-cloud-bigquery:2.14.0:2.14.1-SNAPSHOT \ No newline at end of file From e3515dfce98c73711fdb16e280f9c78399cef4b7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 26 Jul 2022 06:43:37 +0200 Subject: [PATCH 1985/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.2 (#2181) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2b3ff9d2e59c..d2ee7a3f34eb 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.13.8' +implementation 'com.google.cloud:google-cloud-bigquery:2.14.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.13.8" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.0" ``` ## Authentication diff --git a/pom.xml b/pom.xml index ff9518d21d8a..8de80eb66c0a 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.5.1 + 1.5.2 From c0fd4c6fa11b7d86d6c7d7cfd952a45244fdb713 Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Wed, 27 Jul 2022 08:45:47 -0400 Subject: [PATCH 1986/3441] ci: run ITNightlyBigqueryTest with native image compilation as nightly job (#2180) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ci: run ITNightlyBigqueryTest with native image compilation as nightly job * fix typo * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .kokoro/build.sh | 8 ++++++ .kokoro/nightly/graalvm-native-17.cfg | 38 +++++++++++++++++++++++++++ .kokoro/nightly/graalvm-native.cfg | 38 +++++++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 .kokoro/nightly/graalvm-native-17.cfg create mode 100644 .kokoro/nightly/graalvm-native.cfg diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 4b1c5de2b33c..6ede96a218f5 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -90,6 +90,14 @@ graalvm17) mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; +nightly-graalvm) + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITNightlyBigQueryTest -Pnative -Penable-integration-tests test + RETURN_CODE=$? + ;; +nightly-graalvm17) + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITNightlyBigQueryTest -Pnative -Penable-integration-tests test + RETURN_CODE=$? + ;; samples) SAMPLES_DIR=samples # only run ITs in snapshot/ on presubmit PRs. run ITs in all 3 samples/ subdirectories otherwise. diff --git a/.kokoro/nightly/graalvm-native-17.cfg b/.kokoro/nightly/graalvm-native-17.cfg new file mode 100644 index 000000000000..15ed86292b1c --- /dev/null +++ b/.kokoro/nightly/graalvm-native-17.cfg @@ -0,0 +1,38 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17" +} + +env_vars: { + key: "JOB_TYPE" + value: "nightly-graalvm17" +} + +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "ENABLE_FLAKYBOT" + value: "true" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} \ No newline at end of file diff --git a/.kokoro/nightly/graalvm-native.cfg b/.kokoro/nightly/graalvm-native.cfg new file mode 100644 index 000000000000..57c1e35116d3 --- /dev/null +++ b/.kokoro/nightly/graalvm-native.cfg @@ -0,0 +1,38 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm" +} + +env_vars: { + key: "JOB_TYPE" + value: "nightly-graalvm" +} + +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "ENABLE_FLAKYBOT" + value: "true" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} From f78193da8c37b5f53538919c7505006d39cd99bb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 27 Jul 2022 20:56:13 +0200 Subject: [PATCH 1987/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.10.0 (#2182) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.9.0` -> `2.10.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.10.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.10.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.10.0/compatibility-slim/2.9.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.10.0/confidence-slim/2.9.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.10.0`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​2100-httpsgithubcomgoogleapisjava-bigtablecomparev290v2100-2022-07-26) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.9.0...v2.10.0) ##### Features - add response protos ([#​1246](https://togithub.com/googleapis/java-bigtable/issues/1246)) ([52d59ce](https://togithub.com/googleapis/java-bigtable/commit/52d59ce18fb5536a17a5cb59da39e563e4afede4)) - add response_params proto to clients ([#​1303](https://togithub.com/googleapis/java-bigtable/issues/1303)) ([93edfe1](https://togithub.com/googleapis/java-bigtable/commit/93edfe1e43dcfefda6bba3e9ee53ed80eaf2e5c2)) - add storage utilization gib per node for autoscaling ([#​1317](https://togithub.com/googleapis/java-bigtable/issues/1317)) ([5282589](https://togithub.com/googleapis/java-bigtable/commit/52825891af0e4ec2dd76c0c6fa1379a98a77a08f)) - use PingAndWarm request for channel priming ([#​1179](https://togithub.com/googleapis/java-bigtable/issues/1179)) ([6629821](https://togithub.com/googleapis/java-bigtable/commit/6629821ea3200d3a5b93c9d45aab6d57485fcebf)) ##### Bug Fixes - enable integration test for google-cloud-bigtable-stats ([#​1311](https://togithub.com/googleapis/java-bigtable/issues/1311)) ([7c77879](https://togithub.com/googleapis/java-bigtable/commit/7c7787998b164ceb55472c0d06c083a835e5d000)) - fix race condition in BuiltinMetricsTracer ([#​1320](https://togithub.com/googleapis/java-bigtable/issues/1320)) ([644454a](https://togithub.com/googleapis/java-bigtable/commit/644454a9723da359677052b7a4b9201e91e9a78a)) - ignore repackaged files to fix clirr ([#​1300](https://togithub.com/googleapis/java-bigtable/issues/1300)) ([99b67ba](https://togithub.com/googleapis/java-bigtable/commit/99b67ba5b1625686ac7802a6e40dafc2edceade0)) ##### Dependencies - update dependency org.graalvm.buildtools:junit-platform-native to v0.9.13 ([#​1306](https://togithub.com/googleapis/java-bigtable/issues/1306)) ([ddae354](https://togithub.com/googleapis/java-bigtable/commit/ddae3540fd68e8f79d94d49c96c5685e1bad2f66)) - update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.13 ([#​1307](https://togithub.com/googleapis/java-bigtable/issues/1307)) ([c0740fe](https://togithub.com/googleapis/java-bigtable/commit/c0740fe30c5cd2bdf6dedf901e2fdb9a84ce64a1))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8e2ca0fdaeed..3ed195684a24 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.9.0 + 2.10.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ba84efd89684..bd3b12553d35 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.9.0 + 2.10.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9fd6254f3697..ac0b10c3e09a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.9.0 + 2.10.0 test From f8325cff22af3f087b23d6376ab96e78648efd00 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 27 Jul 2022 20:56:26 +0200 Subject: [PATCH 1988/3441] deps: update dependency org.junit.vintage:junit-vintage-engine to v5.9.0 (#2183) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.junit.vintage:junit-vintage-engine](https://junit.org/junit5/) ([source](https://togithub.com/junit-team/junit5)) | `5.8.2` -> `5.9.0` | [![age](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.0/compatibility-slim/5.8.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.0/confidence-slim/5.8.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 8fa62b597ec2..702f48952287 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ org.junit.vintage junit-vintage-engine - 5.8.2 + 5.9.0 test From 7033029b496a9fae854116c7a5220b37b4ab3175 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 27 Jul 2022 19:26:14 +0000 Subject: [PATCH 1989/3441] chore(main): release 2.14.1 (#2184) :robot: I have created a release *beep* *boop* --- ## [2.14.1](https://github.com/googleapis/java-bigquery/compare/v2.14.0...v2.14.1) (2022-07-27) ### Dependencies * update dependency org.junit.vintage:junit-vintage-engine to v5.9.0 ([#2183](https://github.com/googleapis/java-bigquery/issues/2183)) ([f8325cf](https://github.com/googleapis/java-bigquery/commit/f8325cff22af3f087b23d6376ab96e78648efd00)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc1a4dcbcf17..06758ff66080 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.14.1](https://github.com/googleapis/java-bigquery/compare/v2.14.0...v2.14.1) (2022-07-27) + + +### Dependencies + +* update dependency org.junit.vintage:junit-vintage-engine to v5.9.0 ([#2183](https://github.com/googleapis/java-bigquery/issues/2183)) ([f8325cf](https://github.com/googleapis/java-bigquery/commit/f8325cff22af3f087b23d6376ab96e78648efd00)) + ## [2.14.0](https://github.com/googleapis/java-bigquery/compare/v2.13.8...v2.14.0) (2022-07-22) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 97a4d0e78ee6..33ce866ec2e5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.1-SNAPSHOT + 2.14.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1ac4c55623ee..cb2b9365913a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.1-SNAPSHOT + 2.14.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.1-SNAPSHOT + 2.14.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8de80eb66c0a..a94e76093408 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.1-SNAPSHOT + 2.14.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.1-SNAPSHOT + 2.14.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bd3b12553d35..111251482c4a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.1-SNAPSHOT + 2.14.1 diff --git a/versions.txt b/versions.txt index e9f0b3c152c2..3cd4d62df8b8 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.0:2.14.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.14.1:2.14.1 \ No newline at end of file From 6231be75a537f6a2077c5f6792e4ce492e22ffe8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 27 Jul 2022 19:54:21 +0000 Subject: [PATCH 1990/3441] chore(main): release 2.14.2-SNAPSHOT (#2185) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 33ce866ec2e5..355cbe91e128 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.1 + 2.14.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index cb2b9365913a..7def97909291 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.1 + 2.14.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.1 + 2.14.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a94e76093408..5270c9b18de2 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.1 + 2.14.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.1 + 2.14.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 111251482c4a..6f5cb8e93c22 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.1 + 2.14.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 3cd4d62df8b8..2909a68f5986 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.1:2.14.1 \ No newline at end of file +google-cloud-bigquery:2.14.1:2.14.2-SNAPSHOT \ No newline at end of file From c1ca09e41bb9d4b070e241437b46d717e66f4944 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 4 Aug 2022 17:39:21 -0400 Subject: [PATCH 1991/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220716-2.0.0 (#2202) deps: update dependency org.threeten:threeten-extra to v1.7.1 deps: update dependency com.google.cloud:google-cloud-storage to 2.11.0 deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to 1.9.1 deps: update dependency com.google.cloud:google-cloud-bigquerystorage-bom to 2.18.0 build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.3 deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3 --- README.md | 4 ++-- .../cloud/bigquery/it/ITBigQueryTest.java | 4 ++++ pom.xml | 18 +++++++++--------- .../bigquery/UpdateModelDescriptionIT.java | 4 ++++ 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index d2ee7a3f34eb..f1a50ca4275e 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.14.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.14.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.1" ``` ## Authentication diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index c5d577c39466..20afb0b29e42 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -162,6 +162,7 @@ import java.util.logging.Logger; import org.junit.AfterClass; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.Timeout; @@ -2008,6 +2009,9 @@ public void testListPageWithStartIndex() { assertEquals(300_000L, totalRows); } + // BQML recently changed the validation behaviour of model update. + // Ignoring this test until a fix for the same is applied to BQ library. + @Ignore @Test public void testModelLifecycle() throws InterruptedException { diff --git a/pom.xml b/pom.xml index 5270c9b18de2..81679891896e 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.5.2 + 1.5.3 @@ -53,8 +53,8 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220611-1.32.1 - 2.13.0 + v2-rev20220716-2.0.0 + 3.0.1 8.0.0 @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.14.2 + 2.18.0 pom import @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.8.4 + 1.9.1 pom import @@ -104,7 +104,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.8.4 + 1.9.1 pom import @@ -138,14 +138,14 @@ org.threeten threeten-extra - 1.7.0 + 1.7.1 org.threeten threeten-extra - 1.7.0 + 1.7.1 @@ -176,7 +176,7 @@ com.google.cloud google-cloud-storage - 2.9.0 + 2.11.0 test diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java index 156e83d170a9..854e2a2cd899 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java @@ -27,8 +27,12 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +// BQML recently changed the validation behaviour of model update. +// Ignoring this test until a fix for the same is applied to BQ library. +@Ignore public class UpdateModelDescriptionIT { private final Logger log = Logger.getLogger(this.getClass().getName()); From 4bd4539be4aa2ced4eeefde4b48fdbaa5faf5801 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 5 Aug 2022 00:13:26 +0200 Subject: [PATCH 1992/3441] deps: update dependency com.google.code.gson:gson to v2.9.1 (#2190) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 81679891896e..7d0cd19a81ff 100644 --- a/pom.xml +++ b/pom.xml @@ -131,7 +131,7 @@ com.google.code.gson gson - 2.9.0 + 2.9.1 From 45be00165846010afd43e184d94b81d4254f5cd5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 5 Aug 2022 00:16:13 +0200 Subject: [PATCH 1993/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.11.1 (#2194) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.11.0` -> `2.11.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.11.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.11.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.11.1/compatibility-slim/2.11.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.11.1/confidence-slim/2.11.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.11.1`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​2111-httpsgithubcomgoogleapisjava-storagecomparev2110v2111-2022-08-04) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.11.0...v2.11.1) ##### Dependencies - update dependency com.google.cloud:google-cloud-pubsub to v1.120.9 ([#​1537](https://togithub.com/googleapis/java-storage/issues/1537)) ([ae17737](https://togithub.com/googleapis/java-storage/commit/ae17737342e262f7afd404e4c758a7fbf5530da5))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7d0cd19a81ff..28ecba791637 100644 --- a/pom.xml +++ b/pom.xml @@ -176,7 +176,7 @@ com.google.cloud google-cloud-storage - 2.11.0 + 2.11.1 test From 3ec5ef987425315a0dc4d2ab9a4dc162cf000156 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 5 Aug 2022 00:18:18 +0200 Subject: [PATCH 1994/3441] deps: update arrow.version to v9 (major) (#2201) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.arrow:arrow-memory-netty](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `8.0.0` -> `9.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/9.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/9.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/9.0.0/compatibility-slim/8.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/9.0.0/confidence-slim/8.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [org.apache.arrow:arrow-memory-core](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `8.0.0` -> `9.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/9.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/9.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/9.0.0/compatibility-slim/8.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/9.0.0/confidence-slim/8.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [org.apache.arrow:arrow-vector](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `8.0.0` -> `9.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/9.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/9.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/9.0.0/compatibility-slim/8.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/9.0.0/confidence-slim/8.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    apache/arrow ### [`v9.0.0`](https://togithub.com/apache/arrow/compare/2b7143b9596853efc98f9c4da678e08551381c3a...8cac69c809e2ae9d4ba9c10c7b22869c1fd11323)
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 28ecba791637..70b2a2889558 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ google-cloud-bigquery-parent v2-rev20220716-2.0.0 3.0.1 - 8.0.0 + 9.0.0
    From 1848c2621d1983f2ec246c854fb86a0fc272cf77 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 5 Aug 2022 00:22:21 +0200 Subject: [PATCH 1995/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.14.1 (#2193) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.13.3` -> `2.14.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.1/compatibility-slim/2.13.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.1/confidence-slim/2.13.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f1a50ca4275e..70c72fee5128 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.13.3 + 2.14.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3ed195684a24..eb4f5988a771 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.13.3 + 2.14.1 From f26f3b8ed732fe76d685d90af69b0bad8a0c3557 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 5 Aug 2022 00:38:13 +0200 Subject: [PATCH 1996/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.10.1 (#2196) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.10.0` -> `2.10.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.10.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.10.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.10.1/compatibility-slim/2.10.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.10.1/confidence-slim/2.10.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.10.1`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​2101-httpsgithubcomgoogleapisjava-bigtablecomparev2100v2101-2022-08-01) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.10.0...v2.10.1) ##### Bug Fixes - retry rst stream in mutations ([#​1327](https://togithub.com/googleapis/java-bigtable/issues/1327)) ([1a5b3a2](https://togithub.com/googleapis/java-bigtable/commit/1a5b3a215b5388678241cadec26a962a512157ac)) ##### Dependencies - update dependency org.junit.vintage:junit-vintage-engine to v5.9.0 ([#​1323](https://togithub.com/googleapis/java-bigtable/issues/1323)) ([7655747](https://togithub.com/googleapis/java-bigtable/commit/76557476744a6404b9df30c97c59f0a7e38a1ed8))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index eb4f5988a771..9b6906a8261f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.10.0 + 2.10.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6f5cb8e93c22..2423b4661ab8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.10.0 + 2.10.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ac0b10c3e09a..95105f75560a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.10.0 + 2.10.1 test From 7c45aa5bf78e2c15534cdd6d3d9af572ea871e57 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 22:40:12 +0000 Subject: [PATCH 1997/3441] docs(owlbot-java): explaining why not using formatter in pom.xml (#1511) (#2195) Fixes #1502 Source-Link: https://github.com/googleapis/synthtool/commit/26ea255791c019594c20d88a69b4f9fb8c00f13e Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:7a9a7eb50ca2af5bfffab3abd2f38d408735c990a74bacf9b7fde2af0a086a0b --- .github/.OwlBot.lock.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 6610882f836f..a20fd63005ae 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:04f254abfe5f47fe73ae6f91d68d55c3b76e722a4943066c3bb0ce03573b4ad9 -# created: 2022-07-18T21:44:23.94208526Z + digest: sha256:7a9a7eb50ca2af5bfffab3abd2f38d408735c990a74bacf9b7fde2af0a086a0b +# created: 2022-08-01T15:27:14.757266067Z From 6e5fcdcef268b81d04b5a0d29f9d524d2e39cb6c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 23:40:41 +0000 Subject: [PATCH 1998/3441] chore(main): release 2.14.2 (#2204) :robot: I have created a release *beep* *boop* --- ## [2.14.2](https://github.com/googleapis/java-bigquery/compare/v2.14.1...v2.14.2) (2022-08-04) ### Dependencies * update arrow.version to v9 (major) ([#2201](https://github.com/googleapis/java-bigquery/issues/2201)) ([3ec5ef9](https://github.com/googleapis/java-bigquery/commit/3ec5ef987425315a0dc4d2ab9a4dc162cf000156)) * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220716-2.0.0 ([#2202](https://github.com/googleapis/java-bigquery/issues/2202)) ([c1ca09e](https://github.com/googleapis/java-bigquery/commit/c1ca09e41bb9d4b070e241437b46d717e66f4944)) * update dependency com.google.cloud:google-cloud-bigquerystorage-bom to 2.18.0 ([c1ca09e](https://github.com/googleapis/java-bigquery/commit/c1ca09e41bb9d4b070e241437b46d717e66f4944)) * update dependency com.google.cloud:google-cloud-datacatalog-bom to 1.9.1 ([c1ca09e](https://github.com/googleapis/java-bigquery/commit/c1ca09e41bb9d4b070e241437b46d717e66f4944)) * update dependency com.google.cloud:google-cloud-shared-dependencies to v3 ([c1ca09e](https://github.com/googleapis/java-bigquery/commit/c1ca09e41bb9d4b070e241437b46d717e66f4944)) * update dependency com.google.cloud:google-cloud-storage to 2.11.0 ([c1ca09e](https://github.com/googleapis/java-bigquery/commit/c1ca09e41bb9d4b070e241437b46d717e66f4944)) * update dependency com.google.cloud:google-cloud-storage to v2.11.1 ([#2194](https://github.com/googleapis/java-bigquery/issues/2194)) ([45be001](https://github.com/googleapis/java-bigquery/commit/45be00165846010afd43e184d94b81d4254f5cd5)) * update dependency com.google.code.gson:gson to v2.9.1 ([#2190](https://github.com/googleapis/java-bigquery/issues/2190)) ([4bd4539](https://github.com/googleapis/java-bigquery/commit/4bd4539be4aa2ced4eeefde4b48fdbaa5faf5801)) * update dependency org.threeten:threeten-extra to v1.7.1 ([c1ca09e](https://github.com/googleapis/java-bigquery/commit/c1ca09e41bb9d4b070e241437b46d717e66f4944)) ### Documentation * **owlbot-java:** explaining why not using formatter in pom.xml ([#1511](https://github.com/googleapis/java-bigquery/issues/1511)) ([#2195](https://github.com/googleapis/java-bigquery/issues/2195)) ([7c45aa5](https://github.com/googleapis/java-bigquery/commit/7c45aa5bf78e2c15534cdd6d3d9af572ea871e57)), closes [#1502](https://github.com/googleapis/java-bigquery/issues/1502) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 20 ++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 27 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06758ff66080..0189c27707ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## [2.14.2](https://github.com/googleapis/java-bigquery/compare/v2.14.1...v2.14.2) (2022-08-04) + + +### Dependencies + +* update arrow.version to v9 (major) ([#2201](https://github.com/googleapis/java-bigquery/issues/2201)) ([3ec5ef9](https://github.com/googleapis/java-bigquery/commit/3ec5ef987425315a0dc4d2ab9a4dc162cf000156)) +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220716-2.0.0 ([#2202](https://github.com/googleapis/java-bigquery/issues/2202)) ([c1ca09e](https://github.com/googleapis/java-bigquery/commit/c1ca09e41bb9d4b070e241437b46d717e66f4944)) +* update dependency com.google.cloud:google-cloud-bigquerystorage-bom to 2.18.0 ([c1ca09e](https://github.com/googleapis/java-bigquery/commit/c1ca09e41bb9d4b070e241437b46d717e66f4944)) +* update dependency com.google.cloud:google-cloud-datacatalog-bom to 1.9.1 ([c1ca09e](https://github.com/googleapis/java-bigquery/commit/c1ca09e41bb9d4b070e241437b46d717e66f4944)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v3 ([c1ca09e](https://github.com/googleapis/java-bigquery/commit/c1ca09e41bb9d4b070e241437b46d717e66f4944)) +* update dependency com.google.cloud:google-cloud-storage to 2.11.0 ([c1ca09e](https://github.com/googleapis/java-bigquery/commit/c1ca09e41bb9d4b070e241437b46d717e66f4944)) +* update dependency com.google.cloud:google-cloud-storage to v2.11.1 ([#2194](https://github.com/googleapis/java-bigquery/issues/2194)) ([45be001](https://github.com/googleapis/java-bigquery/commit/45be00165846010afd43e184d94b81d4254f5cd5)) +* update dependency com.google.code.gson:gson to v2.9.1 ([#2190](https://github.com/googleapis/java-bigquery/issues/2190)) ([4bd4539](https://github.com/googleapis/java-bigquery/commit/4bd4539be4aa2ced4eeefde4b48fdbaa5faf5801)) +* update dependency org.threeten:threeten-extra to v1.7.1 ([c1ca09e](https://github.com/googleapis/java-bigquery/commit/c1ca09e41bb9d4b070e241437b46d717e66f4944)) + + +### Documentation + +* **owlbot-java:** explaining why not using formatter in pom.xml ([#1511](https://github.com/googleapis/java-bigquery/issues/1511)) ([#2195](https://github.com/googleapis/java-bigquery/issues/2195)) ([7c45aa5](https://github.com/googleapis/java-bigquery/commit/7c45aa5bf78e2c15534cdd6d3d9af572ea871e57)), closes [#1502](https://github.com/googleapis/java-bigquery/issues/1502) + ## [2.14.1](https://github.com/googleapis/java-bigquery/compare/v2.14.0...v2.14.1) (2022-07-27) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 355cbe91e128..12a4399e643b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.2-SNAPSHOT + 2.14.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7def97909291..320521f71e97 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.2-SNAPSHOT + 2.14.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.2-SNAPSHOT + 2.14.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 70b2a2889558..683a518cf3fa 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.2-SNAPSHOT + 2.14.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.2-SNAPSHOT + 2.14.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2423b4661ab8..41d65f801e32 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.2-SNAPSHOT + 2.14.2 diff --git a/versions.txt b/versions.txt index 2909a68f5986..4ae351263fb3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.1:2.14.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.14.2:2.14.2 \ No newline at end of file From a2df3165811836f48b7d9982427c87bed7de90b4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 5 Aug 2022 00:08:39 +0000 Subject: [PATCH 1999/3441] chore(main): release 2.14.3-SNAPSHOT (#2205) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 12a4399e643b..1a342b70135a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.2 + 2.14.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 320521f71e97..508d99db7f9b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.2 + 2.14.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.2 + 2.14.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 683a518cf3fa..d2a47f2a533a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.2 + 2.14.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.2 + 2.14.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 41d65f801e32..a36a554c8eab 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.2 + 2.14.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4ae351263fb3..e8cb68fa978c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.2:2.14.2 \ No newline at end of file +google-cloud-bigquery:2.14.2:2.14.3-SNAPSHOT \ No newline at end of file From 5165e2b3d4001d58daa2a60b553926d938848ee6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 5 Aug 2022 16:44:46 +0200 Subject: [PATCH 2000/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220730-2.0.0 (#2208) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220730-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 70c72fee5128..246d00af3caa 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.14.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.14.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.2" ``` ## Authentication diff --git a/pom.xml b/pom.xml index d2a47f2a533a..35f89308b85e 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220716-2.0.0 + v2-rev20220730-2.0.0 3.0.1 9.0.0 From da5389d78c5136f01c16d23f4f7ec54c6b4f3010 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 5 Aug 2022 16:45:08 +0200 Subject: [PATCH 2001/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.11.2 (#2207) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-storage to v2.11.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 35f89308b85e..3d2e159ae531 100644 --- a/pom.xml +++ b/pom.xml @@ -176,7 +176,7 @@ com.google.cloud google-cloud-storage - 2.11.1 + 2.11.2 test From 9317037f9e3917ee584fc237296741a60800a5f8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 5 Aug 2022 16:45:29 +0200 Subject: [PATCH 2002/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.14.2 (#2206) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.14.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 246d00af3caa..1a98787f3822 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.14.1 + 2.14.2 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 9b6906a8261f..e67bbb9fd3a3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.14.1 + 2.14.2 From 80c1ef55de58d2a1343a903594c82954959137f0 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 5 Aug 2022 15:10:31 +0000 Subject: [PATCH 2003/3441] chore(main): release 2.14.3 (#2209) :robot: I have created a release *beep* *boop* --- ## [2.14.3](https://github.com/googleapis/java-bigquery/compare/v2.14.2...v2.14.3) (2022-08-05) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220730-2.0.0 ([#2208](https://github.com/googleapis/java-bigquery/issues/2208)) ([5165e2b](https://github.com/googleapis/java-bigquery/commit/5165e2b3d4001d58daa2a60b553926d938848ee6)) * update dependency com.google.cloud:google-cloud-storage to v2.11.2 ([#2207](https://github.com/googleapis/java-bigquery/issues/2207)) ([da5389d](https://github.com/googleapis/java-bigquery/commit/da5389d78c5136f01c16d23f4f7ec54c6b4f3010)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0189c27707ca..7fe651cdaa3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.14.3](https://github.com/googleapis/java-bigquery/compare/v2.14.2...v2.14.3) (2022-08-05) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220730-2.0.0 ([#2208](https://github.com/googleapis/java-bigquery/issues/2208)) ([5165e2b](https://github.com/googleapis/java-bigquery/commit/5165e2b3d4001d58daa2a60b553926d938848ee6)) +* update dependency com.google.cloud:google-cloud-storage to v2.11.2 ([#2207](https://github.com/googleapis/java-bigquery/issues/2207)) ([da5389d](https://github.com/googleapis/java-bigquery/commit/da5389d78c5136f01c16d23f4f7ec54c6b4f3010)) + ## [2.14.2](https://github.com/googleapis/java-bigquery/compare/v2.14.1...v2.14.2) (2022-08-04) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1a342b70135a..36ce28bc673f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.3-SNAPSHOT + 2.14.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 508d99db7f9b..123c0ceed731 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.3-SNAPSHOT + 2.14.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.3-SNAPSHOT + 2.14.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3d2e159ae531..739d1cab7d7a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.3-SNAPSHOT + 2.14.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.3-SNAPSHOT + 2.14.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a36a554c8eab..ef0d9efd7c00 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.3-SNAPSHOT + 2.14.3 diff --git a/versions.txt b/versions.txt index e8cb68fa978c..4468b814c715 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.2:2.14.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.14.3:2.14.3 \ No newline at end of file From 65a970abf6530c98f40b6ff79e1e0370c40bae64 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 5 Aug 2022 15:36:12 +0000 Subject: [PATCH 2004/3441] chore(main): release 2.14.4-SNAPSHOT (#2210) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 36ce28bc673f..790bac459e98 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.3 + 2.14.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 123c0ceed731..cec2c1252a1f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.3 + 2.14.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.3 + 2.14.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 739d1cab7d7a..c851e8b865e6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.3 + 2.14.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.3 + 2.14.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ef0d9efd7c00..ba38f3bc7081 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.3 + 2.14.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4468b814c715..2216e7cc3168 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.3:2.14.3 \ No newline at end of file +google-cloud-bigquery:2.14.3:2.14.4-SNAPSHOT \ No newline at end of file From 0ad720c449e24024998106e71a90da1a6cc69e1f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 6 Aug 2022 05:04:20 +0200 Subject: [PATCH 2005/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.14.3 (#2211) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.14.2` -> `2.14.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.3/compatibility-slim/2.14.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.3/confidence-slim/2.14.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1a98787f3822..d01ea5059942 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.14.2 + 2.14.3 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.14.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.14.3' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.3" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e67bbb9fd3a3..2b70a39d5fd0 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.14.2 + 2.14.3 From 518127cbb4ef6b7f80a7fa418c2aa9112faf1d09 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sat, 6 Aug 2022 05:06:15 +0200 Subject: [PATCH 2006/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.19.0 (#2212) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.18.0` -> `2.19.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.19.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.19.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.19.0/compatibility-slim/2.18.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.19.0/confidence-slim/2.18.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c851e8b865e6..1777fa5c6ae8 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.18.0 + 2.19.0 pom import From a293ab56c5455cef8b9731784ddd78cc6162dca8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 8 Aug 2022 22:09:31 +0200 Subject: [PATCH 2007/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.11.3 (#2213) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1777fa5c6ae8..8382fd3a641d 100644 --- a/pom.xml +++ b/pom.xml @@ -176,7 +176,7 @@ com.google.cloud google-cloud-storage - 2.11.2 + 2.11.3 test From 783f8c3b0e84b01e05569b5ce0bdb0113c68f290 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 8 Aug 2022 22:09:50 +0200 Subject: [PATCH 2008/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.10.2 (#2214) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2b70a39d5fd0..cb313b957954 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.10.1 + 2.10.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ba38f3bc7081..5fae59d52881 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.10.1 + 2.10.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 95105f75560a..2ba49f9c19e8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.10.1 + 2.10.2 test From a281bdf3556a2f302599ed5915fc161e5115590a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 09:21:01 +0530 Subject: [PATCH 2009/3441] chore(main): release 2.14.4 (#2215) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fe651cdaa3b..3d0de8ea5277 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.14.4](https://github.com/googleapis/java-bigquery/compare/v2.14.3...v2.14.4) (2022-08-08) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-storage to v2.11.3 ([#2213](https://github.com/googleapis/java-bigquery/issues/2213)) ([a293ab5](https://github.com/googleapis/java-bigquery/commit/a293ab56c5455cef8b9731784ddd78cc6162dca8)) + ## [2.14.3](https://github.com/googleapis/java-bigquery/compare/v2.14.2...v2.14.3) (2022-08-05) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 790bac459e98..7f57a4bdf1f7 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.4-SNAPSHOT + 2.14.4 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index cec2c1252a1f..06aaee128fc3 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.4-SNAPSHOT + 2.14.4 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.4-SNAPSHOT + 2.14.4 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8382fd3a641d..fd5104fd6fcd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.4-SNAPSHOT + 2.14.4 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.4-SNAPSHOT + 2.14.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5fae59d52881..787616e07236 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.4-SNAPSHOT + 2.14.4 diff --git a/versions.txt b/versions.txt index 2216e7cc3168..99885e5150ab 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.3:2.14.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.14.4:2.14.4 \ No newline at end of file From acd2d574a91b997868d0fc7b8931074573e6ff14 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 04:16:38 +0000 Subject: [PATCH 2010/3441] chore(main): release 2.14.5-SNAPSHOT (#2216) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 7f57a4bdf1f7..84eed2b9df3f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.4 + 2.14.5-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 06aaee128fc3..426a03af047a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.4 + 2.14.5-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.4 + 2.14.5-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index fd5104fd6fcd..e8d796acb66e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.4 + 2.14.5-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.4 + 2.14.5-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 787616e07236..e80ee170e46c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.4 + 2.14.5-SNAPSHOT diff --git a/versions.txt b/versions.txt index 99885e5150ab..1479b973eebf 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.4:2.14.4 \ No newline at end of file +google-cloud-bigquery:2.14.4:2.14.5-SNAPSHOT \ No newline at end of file From 3ab4e7e61c033366e96583f32908a0bb44811890 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 10 Aug 2022 15:11:02 +0200 Subject: [PATCH 2011/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.19.1 (#2218) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.19.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d01ea5059942..e01960a1abf5 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.14.3' +implementation 'com.google.cloud:google-cloud-bigquery:2.14.4' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.4" ``` ## Authentication diff --git a/pom.xml b/pom.xml index e8d796acb66e..931f4fbb4543 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.19.0 + 2.19.1 pom import From 76964dc7fdecfac30c75e3e4db858d1b61082865 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 10 Aug 2022 15:21:07 +0200 Subject: [PATCH 2012/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.14.4 (#2217) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.14.4 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e01960a1abf5..0d76dbd808bc 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.14.3 + 2.14.4 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index cb313b957954..287cc27969ef 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.14.3 + 2.14.4 From 05d1de19488c45ceb202824d9ce2ae0fd290d930 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 12 Aug 2022 14:57:42 +0200 Subject: [PATCH 2013/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220806-2.0.0 (#2223) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 931f4fbb4543..4845d8f64b84 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220730-2.0.0 + v2-rev20220806-2.0.0 3.0.1 9.0.0 From bf61d6686c51109d4246264de6277a6439a16c14 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 13:44:11 +0000 Subject: [PATCH 2014/3441] chore(main): release 2.14.5 (#2224) :robot: I have created a release *beep* *boop* --- ## [2.14.5](https://github.com/googleapis/java-bigquery/compare/v2.14.4...v2.14.5) (2022-08-12) ### Dependencies * update dependency com.google.apis:google-api-services-bigquery to v2-rev20220806-2.0.0 ([#2223](https://github.com/googleapis/java-bigquery/issues/2223)) ([05d1de1](https://github.com/googleapis/java-bigquery/commit/05d1de19488c45ceb202824d9ce2ae0fd290d930)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d0de8ea5277..126677c26346 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.14.5](https://github.com/googleapis/java-bigquery/compare/v2.14.4...v2.14.5) (2022-08-12) + + +### Dependencies + +* update dependency com.google.apis:google-api-services-bigquery to v2-rev20220806-2.0.0 ([#2223](https://github.com/googleapis/java-bigquery/issues/2223)) ([05d1de1](https://github.com/googleapis/java-bigquery/commit/05d1de19488c45ceb202824d9ce2ae0fd290d930)) + ## [2.14.4](https://github.com/googleapis/java-bigquery/compare/v2.14.3...v2.14.4) (2022-08-08) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 84eed2b9df3f..29d479f6e054 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.5-SNAPSHOT + 2.14.5 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 426a03af047a..d90845125d08 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.5-SNAPSHOT + 2.14.5 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.5-SNAPSHOT + 2.14.5 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4845d8f64b84..3d6188e65301 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.5-SNAPSHOT + 2.14.5 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.5-SNAPSHOT + 2.14.5 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e80ee170e46c..86aaa0aa99df 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.5-SNAPSHOT + 2.14.5 diff --git a/versions.txt b/versions.txt index 1479b973eebf..e881c4481e54 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.4:2.14.5-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.14.5:2.14.5 \ No newline at end of file From a760478adcfa3f1589d1bc95b79b7b675d5bcbd5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 14:12:13 +0000 Subject: [PATCH 2015/3441] chore(main): release 2.14.6-SNAPSHOT (#2225) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 29d479f6e054..5001c96728a2 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.5 + 2.14.6-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d90845125d08..f519c44f2d4b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.5 + 2.14.6-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.5 + 2.14.6-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3d6188e65301..e988c5d5ddd4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.5 + 2.14.6-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.5 + 2.14.6-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 86aaa0aa99df..cf7ace334a6e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.5 + 2.14.6-SNAPSHOT diff --git a/versions.txt b/versions.txt index e881c4481e54..61f2ae59cac6 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.5:2.14.5 \ No newline at end of file +google-cloud-bigquery:2.14.5:2.14.6-SNAPSHOT \ No newline at end of file From 42b4a35562d1132b87beefa009e3fafb2fcff4e4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 12 Aug 2022 17:16:23 +0200 Subject: [PATCH 2016/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.5.0 (#2219) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 287cc27969ef..03370e2eaa6a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.4.0 + 2.5.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index cf7ace334a6e..b8336773cfba 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.4.0 + 2.5.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 2ba49f9c19e8..f07c2b233d7c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.4.0 + 2.5.0 test From d31e2ca76fe86bff87e5a184a2b7aaa30674ad01 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 12 Aug 2022 17:16:43 +0200 Subject: [PATCH 2017/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.10.3 (#2220) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 03370e2eaa6a..82cbeceb8536 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.10.2 + 2.10.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b8336773cfba..18996e0c472e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.10.2 + 2.10.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f07c2b233d7c..1711a5a707f6 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.10.2 + 2.10.3 test From 3292cddeec7c83fa198a96d80a35c13b003a26c8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 12 Aug 2022 17:17:05 +0200 Subject: [PATCH 2018/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.9.2 (#2221) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e988c5d5ddd4..af5c85983875 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.9.1 + 1.9.2 pom import @@ -104,7 +104,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.9.1 + 1.9.2 pom import From dba9a82afc10450aed5cfacbe5ce078940edeff6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 12 Aug 2022 17:48:10 +0200 Subject: [PATCH 2019/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.14.5 (#2226) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.14.4` -> `2.14.5` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.5/compatibility-slim/2.14.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.5/confidence-slim/2.14.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.14.5`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2145-httpsgithubcomgoogleapisjava-bigquerycomparev2144v2145-2022-08-12) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.14.4...v2.14.5) ##### Dependencies - update dependency com.google.apis:google-api-services-bigquery to v2-rev20220806-2.0.0 ([#​2223](https://togithub.com/googleapis/java-bigquery/issues/2223)) ([05d1de1](https://togithub.com/googleapis/java-bigquery/commit/05d1de19488c45ceb202824d9ce2ae0fd290d930))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0d76dbd808bc..bc481d2de1ca 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.14.4 + 2.14.5 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.14.4' +implementation 'com.google.cloud:google-cloud-bigquery:2.14.5' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.4" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.5" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 82cbeceb8536..00b02fac607f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.14.4 + 2.14.5 From 9484f958025a1eee24308ff952494b0866a6a790 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 15:50:12 +0000 Subject: [PATCH 2020/3441] chore(main): release 2.14.6 (#2227) :robot: I have created a release *beep* *boop* --- ## [2.14.6](https://github.com/googleapis/java-bigquery/compare/v2.14.5...v2.14.6) (2022-08-12) ### Dependencies * update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.9.2 ([#2221](https://github.com/googleapis/java-bigquery/issues/2221)) ([3292cdd](https://github.com/googleapis/java-bigquery/commit/3292cddeec7c83fa198a96d80a35c13b003a26c8)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 126677c26346..68cff6cc02ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.14.6](https://github.com/googleapis/java-bigquery/compare/v2.14.5...v2.14.6) (2022-08-12) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.9.2 ([#2221](https://github.com/googleapis/java-bigquery/issues/2221)) ([3292cdd](https://github.com/googleapis/java-bigquery/commit/3292cddeec7c83fa198a96d80a35c13b003a26c8)) + ## [2.14.5](https://github.com/googleapis/java-bigquery/compare/v2.14.4...v2.14.5) (2022-08-12) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5001c96728a2..221cf8ee9746 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.6-SNAPSHOT + 2.14.6 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f519c44f2d4b..7c701ca4b824 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.6-SNAPSHOT + 2.14.6 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.6-SNAPSHOT + 2.14.6 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index af5c85983875..1f36b5ecbcfb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.6-SNAPSHOT + 2.14.6 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.6-SNAPSHOT + 2.14.6 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 18996e0c472e..535f1b3cb68f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.6-SNAPSHOT + 2.14.6 diff --git a/versions.txt b/versions.txt index 61f2ae59cac6..44c0bb9f2701 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.5:2.14.6-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.14.6:2.14.6 \ No newline at end of file From 30e63fb6e0cfb5140022bdda6ea3cef180d986c4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 16 Aug 2022 12:27:30 +0200 Subject: [PATCH 2021/3441] test(deps): update dependency org.mockito:mockito-core to v4.7.0 (#2231) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(deps): update dependency org.mockito:mockito-core to v4.7.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bc481d2de1ca..d71364f4167c 100644 --- a/README.md +++ b/README.md @@ -52,20 +52,20 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.0.0') +implementation platform('com.google.cloud:libraries-bom:26.1.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.14.5' +implementation 'com.google.cloud:google-cloud-bigquery:2.14.6' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.5" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.6" ``` ## Authentication diff --git a/pom.xml b/pom.xml index 1f36b5ecbcfb..9fed16acddc2 100644 --- a/pom.xml +++ b/pom.xml @@ -170,7 +170,7 @@ org.mockito mockito-core - 4.6.1 + 4.7.0 test From f4b6ce75e12546560e8bf5b4a81455ac2d4ef633 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 16 Aug 2022 12:27:54 +0200 Subject: [PATCH 2022/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.1.0 (#2230) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.1.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d71364f4167c..2e749205c644 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.0.0 + 26.1.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 702f48952287..0f4267c2a8bd 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.0.0 + 26.1.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 1711a5a707f6..310417efd942 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.0.0 + 26.1.0 pom import From 286125e7488b880f2c8010408c034891387c908e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 16 Aug 2022 12:28:15 +0200 Subject: [PATCH 2023/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.14.6 (#2229) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.14.6 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2e749205c644..c2af592689c9 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.14.5 + 2.14.6 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 00b02fac607f..14727dab21ab 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.14.5 + 2.14.6 From abad7f924113e917c98e741c37494a8aa09fe9c0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 16 Aug 2022 18:18:16 +0200 Subject: [PATCH 2024/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.4.1 (#2233) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.maven.plugins:maven-project-info-reports-plugin](https://maven.apache.org/plugins/) | `3.4.0` -> `3.4.1` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-project-info-reports-plugin/3.4.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-project-info-reports-plugin/3.4.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-project-info-reports-plugin/3.4.1/compatibility-slim/3.4.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-project-info-reports-plugin/3.4.1/confidence-slim/3.4.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9fed16acddc2..facd5716bb6d 100644 --- a/pom.xml +++ b/pom.xml @@ -206,7 +206,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.4.0 + 3.4.1 From e4766acd179e0585aadcdbf09bab949482374e98 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 16 Aug 2022 22:18:22 +0200 Subject: [PATCH 2025/3441] build(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.4.1 (#2232) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.maven.plugins:maven-javadoc-plugin](https://maven.apache.org/plugins/) ([source](https://togithub.com/apache/maven-javadoc-plugin)) | `3.4.0` -> `3.4.1` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.4.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.4.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.4.1/compatibility-slim/3.4.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.4.1/confidence-slim/3.4.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index facd5716bb6d..a9e531a548bd 100644 --- a/pom.xml +++ b/pom.xml @@ -233,7 +233,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.0 + 3.4.1 html From 01f826db243cac69fde09312be67f292a8b3dde3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 17 Aug 2022 15:52:14 +0200 Subject: [PATCH 2026/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.20.0 (#2237) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.19.1` -> `2.20.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.20.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.20.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.20.0/compatibility-slim/2.19.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.20.0/confidence-slim/2.19.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquerystorage ### [`v2.20.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2200-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2191v2200-2022-08-17) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.19.1...v2.20.0) ##### Features - introduce InflightLimitExceededException ([#​1746](https://togithub.com/googleapis/java-bigquerystorage/issues/1746)) ([449353b](https://togithub.com/googleapis/java-bigquerystorage/commit/449353bd3b1fc78d46990c8203e1607d83f7ad03)) ##### Bug Fixes - Add documentation to Exceptions ([#​1745](https://togithub.com/googleapis/java-bigquerystorage/issues/1745)) ([3bc7aca](https://togithub.com/googleapis/java-bigquerystorage/commit/3bc7acaa4a110a0ce487e3976b5fd4ddb865ea24)) - Add missing field error to row error message ([#​1752](https://togithub.com/googleapis/java-bigquerystorage/issues/1752)) ([186d213](https://togithub.com/googleapis/java-bigquerystorage/commit/186d2135cb7e18410b89c93e909b03dc8e92ac6c)) - Close based on whether connection is active, not status variable ([#​1750](https://togithub.com/googleapis/java-bigquerystorage/issues/1750)) ([ce7f3e0](https://togithub.com/googleapis/java-bigquerystorage/commit/ce7f3e04046be6b4c1321be877034f5d0ab007f4)) ##### Dependencies - fixing the test scope dependency to runtime ([#​1742](https://togithub.com/googleapis/java-bigquerystorage/issues/1742)) ([878020b](https://togithub.com/googleapis/java-bigquerystorage/commit/878020b3667040aef1b8d610b37cd678ef932870)) - update dependency com.google.cloud:google-cloud-bigquery to v2.14.4 ([#​1740](https://togithub.com/googleapis/java-bigquerystorage/issues/1740)) ([f842d51](https://togithub.com/googleapis/java-bigquerystorage/commit/f842d517b70847b8e67359257a213129586513f6)) - update dependency com.google.cloud:google-cloud-bigquery to v2.14.6 ([#​1747](https://togithub.com/googleapis/java-bigquerystorage/issues/1747)) ([329bd9d](https://togithub.com/googleapis/java-bigquerystorage/commit/329bd9da268f48a4d18158845895b07a43c766ab))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a9e531a548bd..378615d6933a 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.19.1 + 2.20.0 pom import From de313bdaf5bec240723279fbe331561ac9eeb2ca Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Fri, 19 Aug 2022 07:00:28 -0400 Subject: [PATCH 2027/3441] chore: add set user agent sample (#2239) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: add set user agent sample * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: add comments and fix variable names Co-authored-by: Owl Bot --- README.md | 1 + .../com/example/bigquery/SetUserAgent.java | 61 ++++++++++++++ .../example/bigquery/SetUserAgentTest.java | 79 +++++++++++++++++++ 3 files changed, 141 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/SetUserAgent.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/SetUserAgentTest.java diff --git a/README.md b/README.md index c2af592689c9..58b11c9c20a5 100644 --- a/README.md +++ b/README.md @@ -225,6 +225,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Resource Clean Up | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java) | | Run Legacy Query | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java) | | Save Query To Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java) | +| Set User Agent | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/SetUserAgent.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SetUserAgent.java) | | Simple App | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | | Simple Query | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | | Table Exists | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | diff --git a/samples/snippets/src/main/java/com/example/bigquery/SetUserAgent.java b/samples/snippets/src/main/java/com/example/bigquery/SetUserAgent.java new file mode 100644 index 000000000000..2794305f6a1d --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/SetUserAgent.java @@ -0,0 +1,61 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_set_user_agent] +import com.google.api.gax.rpc.FixedHeaderProvider; +import com.google.api.gax.rpc.HeaderProvider; +import com.google.auth.oauth2.GoogleCredentials; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.common.collect.ImmutableMap; +import java.io.IOException; + +public class SetUserAgent { + + private static final String USER_AGENT_HEADER = "user-agent"; + + public static void main(String[] args) throws IOException { + // TODO(developer): Replace these variables before running the sample. + String projectId = "my-project-id"; + String customUserAgentValue = "my-custom-user-agent-value"; + setUserAgent(projectId, customUserAgentValue); + } + + public static void setUserAgent(String projectId, String customUserAgentValue) + throws IOException { + // Setup the credentials + GoogleCredentials googleCredentials = GoogleCredentials.getApplicationDefault(); + + // Initialize the HeaderProvider object with custom user agent value + HeaderProvider headerProvider = + FixedHeaderProvider.create(ImmutableMap.of(USER_AGENT_HEADER, customUserAgentValue)); + + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigQuery = + BigQueryOptions.newBuilder() + .setProjectId(projectId) + .setCredentials(googleCredentials) + .setHeaderProvider(headerProvider) + .build() + .getService(); + + System.out.println(bigQuery.getOptions().getUserAgent()); + } +} +// [END bigquery_set_user_agent] diff --git a/samples/snippets/src/test/java/com/example/bigquery/SetUserAgentTest.java b/samples/snippets/src/test/java/com/example/bigquery/SetUserAgentTest.java new file mode 100644 index 000000000000..6c5c9cf6d330 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/SetUserAgentTest.java @@ -0,0 +1,79 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class SetUserAgentTest { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String customUserAgentValue; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } + + @Before + public void setUp() { + customUserAgentValue = "CUSTOM_USER_AGENT_" + UUID.randomUUID().toString().substring(0, 8); + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // Clean up + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void setUserAgentTest() throws IOException { + SetUserAgent.setUserAgent(PROJECT_ID, customUserAgentValue); + assertThat(bout.toString()).contains("CUSTOM_USER_AGENT_"); + } +} From 487656973fe3e06d838c1b495ac024ab2c6810f6 Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Tue, 23 Aug 2022 07:44:47 +0530 Subject: [PATCH 2028/3441] fix: table-not-found issue with executeSelect while running long queries (#2222) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added exponential-back-off to create read session to avoid table-not-found error * Added testForTableNotFound IT * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Set recordCnt to 5Mil * Add polling logic @ getQueryResultsFirstPage, Removed retrial logic on table_not_found * Removed getTableNotFoundRetrySettings * Updated getQueryResultsWithRowLimit - Added timeoutMs param * Updated testGetQueryResultsFirstPage * Updated getQueryResultsWithRowLimit - Add timeoutMs * Updated getQueryResultsFirstPage - Modified polling logic and refactor * Removed prev differences. Add getQueryResultsWithRowLimit * Removed prev differences. Add getQueryResultsWithRowLimit Co-authored-by: Owl Bot --- .../clirr-ignored-differences.xml | 16 ++-- .../google/cloud/bigquery/ConnectionImpl.java | 74 ++++++++++++------- .../cloud/bigquery/spi/v2/BigQueryRpc.java | 2 +- .../bigquery/spi/v2/HttpBigQueryRpc.java | 3 +- .../cloud/bigquery/ConnectionImplTest.java | 12 ++- .../bigquery/it/ITNightlyBigQueryTest.java | 62 ++++++++++++++++ 6 files changed, 133 insertions(+), 36 deletions(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 1d3d826812fc..2ad26f946404 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -2,14 +2,16 @@ - - 7012 - com/google/cloud/bigquery/LoadConfiguration - java.util.List getDecimalTargetTypes() + + 7004 + com/google/cloud/bigquery/spi/v2/BigQueryRpc + com.google.api.services.bigquery.model.GetQueryResultsResponse getQueryResultsWithRowLimit(java.lang.String, java.lang.String, java.lang.String, java.lang.Integer) + getQueryResultsWithRowLimit is just used by ConnectionImpl at the moment so it should be fine to update the signature instead of writing an overloaded method - 7012 - com/google/cloud/bigquery/LoadConfiguration$Builder - com.google.cloud.bigquery.LoadConfiguration$Builder setDecimalTargetTypes(java.util.List) + 7004 + com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc + com.google.api.services.bigquery.model.GetQueryResultsResponse getQueryResultsWithRowLimit(java.lang.String, java.lang.String, java.lang.String, java.lang.Integer) + getQueryResultsWithRowLimit is just used by ConnectionImpl at the moment so it should be fine to update the signature instead of writing an overloaded method \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index 3a9937a07479..da79bd6ba18f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -835,8 +835,8 @@ BigQueryResult highThroughPutRead( .setMaxStreamCount(1) // Currently just one stream is allowed // DO a regex check using order by and use multiple streams ; - ReadSession readSession = bqReadClient.createReadSession(builder.build()); + bufferRow = new LinkedBlockingDeque<>(getBufferSize()); Map arrowNameToIndex = new HashMap<>(); // deserialize and populate the buffer async, so that the client isn't blocked @@ -995,33 +995,57 @@ GetQueryResultsResponse getQueryResultsFirstPage(JobId jobId) { jobId.getLocation() == null && bigQueryOptions.getLocation() != null ? bigQueryOptions.getLocation() : jobId.getLocation()); - try { - GetQueryResultsResponse results = - BigQueryRetryHelper.runWithRetries( - () -> - bigQueryRpc.getQueryResultsWithRowLimit( - completeJobId.getProject(), - completeJobId.getJob(), - completeJobId.getLocation(), - connectionSettings.getMaxResultPerPage()), - bigQueryOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - bigQueryOptions.getClock(), - retryConfig); - if (results.getErrors() != null) { - List bigQueryErrors = - results.getErrors().stream() - .map(BigQueryError.FROM_PB_FUNCTION) - .collect(Collectors.toList()); - // Throwing BigQueryException since there may be no JobId and we want to stay consistent - // with the case where there there is a HTTP error - throw new BigQueryException(bigQueryErrors); + // Implementing logic to poll the Job's status using getQueryResults as + // we do not get rows, rows count and schema unless the job is complete + // Ref: b/241134681 + // This logic relies on backend for poll and wait.BigQuery guarantees that jobs make forward + // progress (a job won't get stuck in pending forever). + boolean jobComplete = false; + GetQueryResultsResponse results = null; + long timeoutMs = + 60000; // defaulting to 60seconds. TODO(prashant): It should be made user configurable + + while (!jobComplete) { + try { + results = + BigQueryRetryHelper.runWithRetries( + () -> + bigQueryRpc.getQueryResultsWithRowLimit( + completeJobId.getProject(), + completeJobId.getJob(), + completeJobId.getLocation(), + connectionSettings.getMaxResultPerPage(), + timeoutMs), + bigQueryOptions.getRetrySettings(), + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getClock(), + retryConfig); + + if (results.getErrors() != null) { + List bigQueryErrors = + results.getErrors().stream() + .map(BigQueryError.FROM_PB_FUNCTION) + .collect(Collectors.toList()); + // Throwing BigQueryException since there may be no JobId, and we want to stay consistent + // with the case where there is a HTTP error + throw new BigQueryException(bigQueryErrors); + } + } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { + throw BigQueryException.translateAndThrow(e); } - return results; - } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { - throw BigQueryException.translateAndThrow(e); + jobComplete = results.getJobComplete(); + + // This log msg at Level.FINE might indicate that the job is still running and not stuck for + // very long running jobs. + logger.log( + Level.FINE, + String.format( + "jobComplete: %s , Polling getQueryResults with timeoutMs: %s", + jobComplete, timeoutMs)); } + + return results; } @VisibleForTesting diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index 871590ca4b1a..eecf5d36f56a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -315,7 +315,7 @@ GetQueryResultsResponse getQueryResults( * @throws BigQueryException upon failure */ GetQueryResultsResponse getQueryResultsWithRowLimit( - String projectId, String jobId, String location, Integer preFetchedRowLimit); + String projectId, String jobId, String location, Integer preFetchedRowLimit, Long timeoutMs); /** * Runs a BigQuery SQL query synchronously and returns query results if the query completes within diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index d6b57a3daf78..a9ef3a817aa6 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -697,7 +697,7 @@ public GetQueryResultsResponse getQueryResults( @Override public GetQueryResultsResponse getQueryResultsWithRowLimit( - String projectId, String jobId, String location, Integer maxResultPerPage) { + String projectId, String jobId, String location, Integer maxResultPerPage, Long timeoutMs) { try { return bigquery .jobs() @@ -705,6 +705,7 @@ public GetQueryResultsResponse getQueryResultsWithRowLimit( .setPrettyPrint(false) .setLocation(location) .setMaxResults(Long.valueOf(maxResultPerPage)) + .setTimeoutMs(timeoutMs) .execute(); } catch (IOException ex) { throw translate(ex); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java index 9543ccebf702..4b1b93487b2d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java @@ -315,14 +315,22 @@ public void testNextPageTask() throws InterruptedException { @Test public void testGetQueryResultsFirstPage() { when(bigqueryRpcMock.getQueryResultsWithRowLimit( - any(String.class), any(String.class), any(String.class), any(Integer.class))) + any(String.class), + any(String.class), + any(String.class), + any(Integer.class), + any(Long.class))) .thenReturn(GET_QUERY_RESULTS_RESPONSE); GetQueryResultsResponse response = connection.getQueryResultsFirstPage(QUERY_JOB); assertNotNull(response); assertEquals(GET_QUERY_RESULTS_RESPONSE, response); verify(bigqueryRpcMock, times(1)) .getQueryResultsWithRowLimit( - any(String.class), any(String.class), any(String.class), any(Integer.class)); + any(String.class), + any(String.class), + any(String.class), + any(Integer.class), + any(Long.class)); } // calls executeSelect with a nonFast query and exercises createQueryJob diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java index 73bd21a30ddd..006c126b6621 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java @@ -23,9 +23,11 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import com.google.cloud.ServiceOptions; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryError; import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.BigQueryResult; import com.google.cloud.bigquery.BigQuerySQLException; import com.google.cloud.bigquery.Connection; @@ -60,6 +62,7 @@ import java.util.List; import java.util.Map; import java.util.TimeZone; +import java.util.UUID; import java.util.concurrent.ExecutionException; import java.util.logging.Level; import java.util.logging.Logger; @@ -484,6 +487,65 @@ public void testPositionalParams() assertEquals(MULTI_LIMIT_RECS, cnt); } + @Test + // This testcase reads rows in bulk for a public table to make sure we do not get + // table-not-found exception. Ref: b/241134681 . This exception has been seen while reading data + // in bulk + public void testForTableNotFound() throws SQLException { + int recordCnt = 50000000; // 5Mil + String query = + String.format( + "SELECT * FROM `bigquery-samples.wikipedia_benchmark.Wiki10B` LIMIT %s", recordCnt); + + String dataSet = RemoteBigQueryHelper.generateDatasetName(); + String table = "TAB_" + UUID.randomUUID(); + createDataset(dataSet); + TableId targetTable = + TableId.of( + ServiceOptions.getDefaultProjectId(), + dataSet, + table); // table will be created implicitly + + ConnectionSettings conSet = + ConnectionSettings.newBuilder() + .setUseReadAPI(true) // enable read api + .setDestinationTable(targetTable) + .setAllowLargeResults(true) + .build(); + + Connection connection = + BigQueryOptions.getDefaultInstance().getService().createConnection(conSet); + BigQueryResult bigQueryResultSet = connection.executeSelect(query); + assertNotNull(getResultHashWiki(bigQueryResultSet)); // this iterated through all the rows + assertTrue( + (recordCnt == bigQueryResultSet.getTotalRows()) + || (-1 + == bigQueryResultSet + .getTotalRows())); // either job should return the actual count or -1 if the job + // is still running + try { + deleteTable(dataSet, table); + deleteDataset(dataSet); + } catch (Exception e) { + logger.log( + Level.WARNING, + String.format( + "Error [ %s ] while deleting dataset: %s , table: %s", + e.getMessage(), dataSet, table)); + } + } + + // this iterated through all the rows (just reads the title column) + private Long getResultHashWiki(BigQueryResult bigQueryResultSet) throws SQLException { + ResultSet rs = bigQueryResultSet.getResultSet(); + long hash = 0L; + System.out.print("\n Running"); + while (rs.next()) { + hash += rs.getString("title") == null ? 0 : rs.getString("title").hashCode(); + } + return hash; + } + // asserts the value of each row private static void testForAllDataTypeValues(ResultSet rs, int cnt) throws SQLException { // Testing JSON type From e42a5440bd882a40251380b66c42f8312e7bd740 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 23 Aug 2022 14:04:01 -0400 Subject: [PATCH 2029/3441] chore(main): release 2.14.7-SNAPSHOT (#2228) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 221cf8ee9746..c67b15083cc0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.6 + 2.14.7-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7c701ca4b824..d69dd2bfc2f5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.6 + 2.14.7-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.6 + 2.14.7-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 378615d6933a..a7177c701a81 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.6 + 2.14.7-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.6 + 2.14.7-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 535f1b3cb68f..c1696f1654e5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.6 + 2.14.7-SNAPSHOT diff --git a/versions.txt b/versions.txt index 44c0bb9f2701..dcd10147bb3f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.6:2.14.6 \ No newline at end of file +google-cloud-bigquery:2.14.6:2.14.7-SNAPSHOT \ No newline at end of file From a449ee6a30ca5706fedeee3ae635c08332b2e424 Mon Sep 17 00:00:00 2001 From: Nikunj Bhartia Date: Wed, 24 Aug 2022 04:12:20 +0530 Subject: [PATCH 2030/3441] samples / fixing authorize dataset logic by updating source dataset acl (#2189) Fixes#2188 Fixed the logic for authorizing a bigquery user dataset but updating the source dataset acl with that of the user dataset information. --- .../java/com/example/bigquery/AuthorizeDataset.java | 10 +++++----- .../java/com/example/bigquery/AuthorizeDatasetIT.java | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java b/samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java index f7f28c218242..949e583e4819 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java @@ -38,7 +38,7 @@ public static void main(String[] args) { DatasetId.of(projectId, sourceDatasetName), DatasetId.of(projectId, userDatasetName)); } - // This method will update userDataset's ACL with sourceDataset's ACL + // This method will update sourceDataset's ACL with userDataset's ACL public static void authorizeDataset(DatasetId sourceDatasetId, DatasetId userDatasetId) { try { // Initialize client that will be used to send requests. This client only needs to be created @@ -58,12 +58,12 @@ public static void authorizeDataset(DatasetId sourceDatasetId, DatasetId userDat new Acl.DatasetAclEntity(userDatasetId, targetTypes); sourceDatasetAcl.add(Acl.of(userDatasetAclEntity)); - // update the user dataset with source dataset's ACL - Dataset updatedUserDataset = - userDataset.toBuilder().setAcl(sourceDatasetAcl).build().update(); + // update the source dataset with user dataset's ACL + Dataset updatedSourceDataset = + sourceDataset.toBuilder().setAcl(sourceDatasetAcl).build().update(); System.out.printf( - "Dataset %s updated with the added authorization\n", updatedUserDataset.getDatasetId()); + "Dataset %s updated with the added authorization\n", updatedSourceDataset.getDatasetId()); } catch (BigQueryException e) { System.out.println("Dataset Authorization failed due to error: \n" + e); diff --git a/samples/snippets/src/test/java/com/example/bigquery/AuthorizeDatasetIT.java b/samples/snippets/src/test/java/com/example/bigquery/AuthorizeDatasetIT.java index b13c6bb73ac0..c4facd5ef465 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/AuthorizeDatasetIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/AuthorizeDatasetIT.java @@ -80,6 +80,6 @@ public void tearDown() { @Test public void testCreateDataset() { AuthorizeDataset.authorizeDataset(sourceDatasetId, userDatasetId); - assertThat(bout.toString()).contains(userDatasetId + " updated with the added authorization"); + assertThat(bout.toString()).contains(sourceDatasetId + " updated with the added authorization"); } } From 1477562c48e9f993d506d13b140d8d2d9c96cacb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 24 Aug 2022 08:21:36 +0530 Subject: [PATCH 2031/3441] chore(main): release 2.14.7 (#2245) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68cff6cc02ed..78670735858d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.14.7](https://github.com/googleapis/java-bigquery/compare/v2.14.6...v2.14.7) (2022-08-23) + + +### Bug Fixes + +* table-not-found issue with executeSelect while running long queries ([#2222](https://github.com/googleapis/java-bigquery/issues/2222)) ([4876569](https://github.com/googleapis/java-bigquery/commit/487656973fe3e06d838c1b495ac024ab2c6810f6)) + ## [2.14.6](https://github.com/googleapis/java-bigquery/compare/v2.14.5...v2.14.6) (2022-08-12) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c67b15083cc0..3c299ff36e5f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.7-SNAPSHOT + 2.14.7 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d69dd2bfc2f5..0f87a2b7b3d2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.7-SNAPSHOT + 2.14.7 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.7-SNAPSHOT + 2.14.7 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a7177c701a81..442a2dc4f059 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.7-SNAPSHOT + 2.14.7 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.7-SNAPSHOT + 2.14.7 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c1696f1654e5..4e9ddfd3ea6f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.7-SNAPSHOT + 2.14.7 diff --git a/versions.txt b/versions.txt index dcd10147bb3f..ddf3790c1f31 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.6:2.14.7-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.14.7:2.14.7 \ No newline at end of file From bbbc4fe5f9da2ddcaaf70277ac0e6f8f37392ed7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 24 Aug 2022 03:18:16 +0000 Subject: [PATCH 2032/3441] chore(main): release 2.14.8-SNAPSHOT (#2246) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3c299ff36e5f..3364645f8ac8 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.7 + 2.14.8-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0f87a2b7b3d2..124b9b16f824 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.7 + 2.14.8-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.7 + 2.14.8-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 442a2dc4f059..eb67a028ce1c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.7 + 2.14.8-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.7 + 2.14.8-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4e9ddfd3ea6f..6cdf817a660a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.7 + 2.14.8-SNAPSHOT diff --git a/versions.txt b/versions.txt index ddf3790c1f31..10ce9fe6bdcc 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.7:2.14.7 \ No newline at end of file +google-cloud-bigquery:2.14.7:2.14.8-SNAPSHOT \ No newline at end of file From 9e08a014dd8493c339015005bfe06faff43694a7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 24 Aug 2022 16:30:18 +0200 Subject: [PATCH 2033/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.14.7 (#2247) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.14.6` -> `2.14.7` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.7/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.7/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.7/compatibility-slim/2.14.6)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.14.7/confidence-slim/2.14.6)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 58b11c9c20a5..733874da1e76 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.14.6 + 2.14.7 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.14.6' +implementation 'com.google.cloud:google-cloud-bigquery:2.14.7' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.6" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.7" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 14727dab21ab..ba3e5fbe5830 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.14.6 + 2.14.7 From 3b4bb67e0f3a3cd0885236015bcf29584fd2652f Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Wed, 24 Aug 2022 13:03:54 -0400 Subject: [PATCH 2034/3441] chore: run modelUpdate tests (#2238) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: run modelUpdate tests * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 4 ---- .../java/com/example/bigquery/UpdateModelDescriptionIT.java | 4 ---- 2 files changed, 8 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 20afb0b29e42..c5d577c39466 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -162,7 +162,6 @@ import java.util.logging.Logger; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.Timeout; @@ -2009,9 +2008,6 @@ public void testListPageWithStartIndex() { assertEquals(300_000L, totalRows); } - // BQML recently changed the validation behaviour of model update. - // Ignoring this test until a fix for the same is applied to BQ library. - @Ignore @Test public void testModelLifecycle() throws InterruptedException { diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java index 854e2a2cd899..156e83d170a9 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java @@ -27,12 +27,8 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; -// BQML recently changed the validation behaviour of model update. -// Ignoring this test until a fix for the same is applied to BQ library. -@Ignore public class UpdateModelDescriptionIT { private final Logger log = Logger.getLogger(this.getClass().getName()); From 6ae53d186c23dad5567cedca1a689b23e2d232b7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 24 Aug 2022 19:09:19 +0200 Subject: [PATCH 2035/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.11.0 (#2242) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ba3e5fbe5830..84b7202250e6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.10.3 + 2.11.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6cdf817a660a..c279da7a672a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.10.3 + 2.11.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 310417efd942..37fb3f40ebc2 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.10.3 + 2.11.0 test From fd3d3c57afed84b4d00aab438d79472a6afa001b Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Wed, 24 Aug 2022 13:14:31 -0400 Subject: [PATCH 2036/3441] feat: add preview support for default values (#2244) --- .../java/com/google/cloud/bigquery/Field.java | 53 ++++++++++++++++ .../com/google/cloud/bigquery/FieldTest.java | 6 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 63 +++++++++++++++++++ 3 files changed, 122 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index 20c5acd3fabb..928f379d633a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -62,6 +62,7 @@ public TableFieldSchema apply(Field field) { private final Long maxLength; private final Long scale; private final Long precision; + private final String defaultValueExpression; /** * Mode for a BigQuery Table field. {@link Mode#NULLABLE} fields can be set to {@code null}, @@ -85,6 +86,7 @@ public static final class Builder { private Long maxLength; private Long scale; private Long precision; + private String defaultValueExpression; private Builder() {} @@ -98,6 +100,7 @@ private Builder(Field field) { this.maxLength = field.maxLength; this.scale = field.scale; this.precision = field.precision; + this.defaultValueExpression = field.defaultValueExpression; } /** @@ -245,6 +248,43 @@ public Builder setPrecision(Long precision) { return this; } + /** + * DefaultValueExpression is used to specify the default value of a field using a SQL + * expression. It can only be set for top level fields (columns). + * + *

    You can use struct or array expression to specify default value for the entire struct or + * array. The valid SQL expressions are: + * + *

      + *
        + *
      • Literals for all data types, including STRUCT and ARRAY. + *
      + *
        + *
      • The following functions: + *
          + *
        • CURRENT_TIMESTAMP + *
        • CURRENT_TIME + *
        • CURRENT_DATE + *
        • CURRENT_DATETIME + *
        • GENERATE_UUID + *
        • RAND + *
        • SESSION_USER + *
        • ST_GEOGPOINT + *
        + *
      + *
        + *
      • Struct or array composed with the above allowed functions, for example: + *
          + *
        • "[CURRENT_DATE(), DATE '2020-01-01']" + *
        + *
      + *
    + */ + public Builder setDefaultValueExpression(String defaultValueExpression) { + this.defaultValueExpression = defaultValueExpression; + return this; + } + /** Creates a {@code Field} object. */ public Field build() { return new Field(this); @@ -261,6 +301,7 @@ private Field(Builder builder) { this.maxLength = builder.maxLength; this.scale = builder.scale; this.precision = builder.precision; + this.defaultValueExpression = builder.defaultValueExpression; } /** Returns the field name. */ @@ -311,6 +352,11 @@ public Long getPrecision() { return precision; } + /** Return the default value of the field. */ + public String getDefaultValueExpression() { + return defaultValueExpression; + } + /** * Returns the list of sub-fields if {@link #getType()} is a {@link LegacySQLTypeName#RECORD}. * Returns {@code null} otherwise. @@ -335,6 +381,7 @@ public String toString() { .add("maxLength", maxLength) .add("scale", scale) .add("precision", precision) + .add("defaultValueExpression", defaultValueExpression) .toString(); } @@ -414,6 +461,9 @@ TableFieldSchema toPb() { if (precision != null) { fieldSchemaPb.setPrecision(precision); } + if (defaultValueExpression != null) { + fieldSchemaPb.setDefaultValueExpression(defaultValueExpression); + } if (getSubFields() != null) { List fieldsPb = Lists.transform(getSubFields(), TO_PB_FUNCTION); fieldSchemaPb.setFields(fieldsPb); @@ -442,6 +492,9 @@ static Field fromPb(TableFieldSchema fieldSchemaPb) { if (fieldSchemaPb.getPrecision() != null) { fieldBuilder.setPrecision(fieldSchemaPb.getPrecision()); } + if (fieldSchemaPb.getDefaultValueExpression() != null) { + fieldBuilder.setDefaultValueExpression(fieldSchemaPb.getDefaultValueExpression()); + } FieldList subFields = fieldSchemaPb.getFields() != null ? FieldList.of(Lists.transform(fieldSchemaPb.getFields(), FROM_PB_FUNCTION)) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java index cac8ab1b8fc6..4db202813652 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java @@ -39,10 +39,13 @@ public class FieldTest { private static final String FIELD_DESCRIPTION1 = "FieldDescription1"; private static final String FIELD_DESCRIPTION2 = "FieldDescription2"; private static final String FIELD_DESCRIPTION3 = "FieldDescription3"; + private static final String FIELD_DEFAULT_VALUE_EXPRESSION1 = + "This is default value for this field"; private static final Field FIELD_SCHEMA1 = Field.newBuilder(FIELD_NAME1, FIELD_TYPE1) .setMode(FIELD_MODE1) .setDescription(FIELD_DESCRIPTION1) + .setDefaultValueExpression(FIELD_DEFAULT_VALUE_EXPRESSION1) .build(); private static final Field FIELD_SCHEMA2 = Field.newBuilder(FIELD_NAME2, FIELD_TYPE2) @@ -60,6 +63,7 @@ public class FieldTest { Field.newBuilder(FIELD_NAME1, StandardSQLTypeName.STRING) .setMode(FIELD_MODE1) .setDescription(FIELD_DESCRIPTION1) + .setDefaultValueExpression(FIELD_DEFAULT_VALUE_EXPRESSION1) .build(); private static final Field STANDARD_FIELD_SCHEMA2 = Field.newBuilder(FIELD_NAME2, StandardSQLTypeName.INT64) @@ -137,6 +141,7 @@ public void testBuilder() { assertEquals(FIELD_TYPE1, FIELD_SCHEMA1.getType()); assertEquals(FIELD_MODE1, FIELD_SCHEMA1.getMode()); assertEquals(FIELD_DESCRIPTION1, FIELD_SCHEMA1.getDescription()); + assertEquals(FIELD_DEFAULT_VALUE_EXPRESSION1, FIELD_SCHEMA1.getDefaultValueExpression()); assertEquals(null, FIELD_SCHEMA1.getSubFields()); assertEquals(FIELD_NAME3, FIELD_SCHEMA3.getName()); assertEquals(FIELD_TYPE3, FIELD_SCHEMA3.getType()); @@ -151,6 +156,7 @@ public void testBuilderWithStandardSQLTypeName() { assertEquals(FIELD_TYPE1, STANDARD_FIELD_SCHEMA1.getType()); assertEquals(FIELD_MODE1, STANDARD_FIELD_SCHEMA1.getMode()); assertEquals(FIELD_DESCRIPTION1, STANDARD_FIELD_SCHEMA1.getDescription()); + assertEquals(FIELD_DEFAULT_VALUE_EXPRESSION1, FIELD_SCHEMA1.getDefaultValueExpression()); assertEquals(null, STANDARD_FIELD_SCHEMA1.getSubFields()); assertEquals(FIELD_NAME3, STANDARD_FIELD_SCHEMA3.getName()); assertEquals(FIELD_TYPE3, STANDARD_FIELD_SCHEMA3.getType()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index c5d577c39466..2777fdabf984 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -72,6 +72,7 @@ import com.google.cloud.bigquery.FormatOptions; import com.google.cloud.bigquery.HivePartitioningOptions; import com.google.cloud.bigquery.InsertAllRequest; +import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; import com.google.cloud.bigquery.InsertAllResponse; import com.google.cloud.bigquery.Job; import com.google.cloud.bigquery.JobId; @@ -1176,6 +1177,68 @@ public void testCreateTableWithConstraints() { bigquery.delete(tableId); } + @Test + public void testCreateTableWithDefaultValueExpression() { + String tableName = "test_create_table_with_default_value_expression"; + TableId tableId = TableId.of(DATASET, tableName); + Field stringFieldWithDefaultValueExpression = + Field.newBuilder("stringFieldWithDefaultValueExpression", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("String field with default value expression") + .setDefaultValueExpression("'FOO'") + .setMaxLength(150L) + .build(); + Field timestampFieldWithDefaultValueExpression = + Field.newBuilder("timestampFieldWithDefaultValueExpression", StandardSQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .setDescription("Timestamp field with default value expression") + .setDefaultValueExpression("CURRENT_TIMESTAMP") + .build(); + Schema schema = + Schema.of(stringFieldWithDefaultValueExpression, timestampFieldWithDefaultValueExpression); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder().setSchema(schema).build(); + + // Create table with fields that have default value expression + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + + // Fetch the created table and its metadata + // to verify default value expression is assigned to fields + Table remoteTable = bigquery.getTable(DATASET, tableName); + Schema remoteSchema = remoteTable.getDefinition().getSchema(); + assertEquals(schema, remoteSchema); + FieldList fieldList = remoteSchema.getFields(); + for (Field field : fieldList) { + if (field.getName().equals("timestampFieldWithDefaultValueExpression")) { + assertEquals("CURRENT_TIMESTAMP", field.getDefaultValueExpression()); + } + if (field.getName().equals("stringFieldWithDefaultValueExpression")) { + assertEquals("'FOO'", field.getDefaultValueExpression()); + } + } + + // Insert value into the created table + // to verify default values are inserted when value is missing + String rowId1 = "rowId1"; + String rowId2 = "rowId2"; + List rows = new ArrayList<>(); + Map row1 = new HashMap<>(); + row1.put("timestampFieldWithDefaultValueExpression", "2022-08-22 00:45:12 UTC"); + Map row2 = new HashMap<>(); + row2.put("timestampFieldWithDefaultValueExpression", "2022-08-23 00:44:33 UTC"); + rows.add(RowToInsert.of(rowId1, row1)); + rows.add(RowToInsert.of(rowId2, row2)); + InsertAllResponse response1 = remoteTable.insert(rows); + + TableResult tableData = bigquery.listTableData(DATASET, tableName, schema); + String insertedField = "stringFieldWithDefaultValueExpression"; + for (FieldValueList row : tableData.iterateAll()) { + assertEquals("FOO", row.get(insertedField).getValue()); + } + bigquery.delete(tableId); + } + @Test public void testCreateAndUpdateTableWithPolicyTags() throws IOException { // Set up policy tags in the datacatalog service From 1238236ba11e5f0eaaa273ee2b261a606dab1af4 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Wed, 24 Aug 2022 16:19:26 -0400 Subject: [PATCH 2037/3441] chore: change library_type to GAPIC_MANUAL (#2250) --- .repo-metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.repo-metadata.json b/.repo-metadata.json index a2f378081f2f..d795a9ea629e 100644 --- a/.repo-metadata.json +++ b/.repo-metadata.json @@ -12,6 +12,6 @@ "distribution_name": "com.google.cloud:google-cloud-bigquery", "codeowner_team": "@googleapis/api-bigquery", "api_id": "bigquery.googleapis.com", - "library_type": "REST", + "library_type": "GAPIC_MANUAL", "requires_billing": true } From f524d17b4070e4abfb87ef63a4a1e6e75f083d28 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 25 Aug 2022 16:26:36 +0200 Subject: [PATCH 2038/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.20.1 (#2251) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eb67a028ce1c..22c5019fa6d4 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.20.0 + 2.20.1 pom import From 7cbc6f8cd9931d9f97e5c6ca86f055cfef3740a2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 29 Aug 2022 11:54:34 +0530 Subject: [PATCH 2039/3441] chore(main): release 2.15.0 (#2249) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78670735858d..83e0bea1573d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.15.0](https://github.com/googleapis/java-bigquery/compare/v2.14.7...v2.15.0) (2022-08-25) + + +### Features + +* add preview support for default values ([#2244](https://github.com/googleapis/java-bigquery/issues/2244)) ([fd3d3c5](https://github.com/googleapis/java-bigquery/commit/fd3d3c57afed84b4d00aab438d79472a6afa001b)) + ## [2.14.7](https://github.com/googleapis/java-bigquery/compare/v2.14.6...v2.14.7) (2022-08-23) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3364645f8ac8..9b63ff1d8000 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.14.8-SNAPSHOT + 2.15.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 124b9b16f824..228ebe157b19 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.14.8-SNAPSHOT + 2.15.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.14.8-SNAPSHOT + 2.15.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 22c5019fa6d4..ef266694dfbe 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.14.8-SNAPSHOT + 2.15.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.14.8-SNAPSHOT + 2.15.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c279da7a672a..d0bb69036a97 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.14.8-SNAPSHOT + 2.15.0 diff --git a/versions.txt b/versions.txt index 10ce9fe6bdcc..28e8f2b333c9 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.14.7:2.14.8-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.15.0:2.15.0 \ No newline at end of file From 22ba242c9e06aeec2bfc52b7f216274d018407c3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 29 Aug 2022 06:50:38 +0000 Subject: [PATCH 2040/3441] chore(main): release 2.15.1-SNAPSHOT (#2252) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9b63ff1d8000..ff262b1cbd01 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.15.0 + 2.15.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 228ebe157b19..fe9c140db646 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.15.0 + 2.15.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.15.0 + 2.15.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ef266694dfbe..044aa8f71ea3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.15.0 + 2.15.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.15.0 + 2.15.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d0bb69036a97..5c54badbff8a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.15.0 + 2.15.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 28e8f2b333c9..0cda752ce88b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.15.0:2.15.0 \ No newline at end of file +google-cloud-bigquery:2.15.0:2.15.1-SNAPSHOT \ No newline at end of file From 77f2bae14e97211694706e3a1a123fc1d919002b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 29 Aug 2022 15:38:12 +0200 Subject: [PATCH 2041/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.15.0 (#2253) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.14.7` -> `2.15.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.15.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.15.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.15.0/compatibility-slim/2.14.7)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.15.0/confidence-slim/2.14.7)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.15.0`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2150-httpsgithubcomgoogleapisjava-bigquerycomparev2147v2150-2022-08-25) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.14.7...v2.15.0) ##### Features - add preview support for default values ([#​2244](https://togithub.com/googleapis/java-bigquery/issues/2244)) ([fd3d3c5](https://togithub.com/googleapis/java-bigquery/commit/fd3d3c57afed84b4d00aab438d79472a6afa001b))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 733874da1e76..2afa89e74dcb 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.14.7 + 2.15.0 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.14.7' +implementation 'com.google.cloud:google-cloud-bigquery:2.15.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.14.7" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.15.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 84b7202250e6..29d9afb8018b 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.14.7 + 2.15.0 From 856893f4d8f1b419365d8f179ce9f9e571dec718 Mon Sep 17 00:00:00 2001 From: tanaka takaya Date: Tue, 30 Aug 2022 01:42:35 +0900 Subject: [PATCH 2042/3441] feat: Add preserveAsciiControlCharacters to CsvOptions (#2143) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Add preserveAsciiControlCharacters to CsvOptions * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Add IT * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../com/google/cloud/bigquery/CsvOptions.java | 25 +++++++++++++++++- .../bigquery/WriteChannelConfiguration.java | 3 ++- .../google/cloud/bigquery/CsvOptionsTest.java | 5 ++++ .../cloud/bigquery/it/ITBigQueryTest.java | 26 +++++++++++++++++++ 4 files changed, 57 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java index 6ef9e77fc11e..8a1311faa65c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java @@ -34,6 +34,7 @@ public final class CsvOptions extends FormatOptions { private final String fieldDelimiter; private final String quote; private final Long skipLeadingRows; + private final Boolean preserveAsciiControlCharacters; public static final class Builder { @@ -43,6 +44,7 @@ public static final class Builder { private String fieldDelimiter; private String quote; private Long skipLeadingRows; + private Boolean preserveAsciiControlCharacters; private Builder() {} @@ -53,6 +55,7 @@ private Builder(CsvOptions csvOptions) { this.fieldDelimiter = csvOptions.fieldDelimiter; this.quote = csvOptions.quote; this.skipLeadingRows = csvOptions.skipLeadingRows; + this.preserveAsciiControlCharacters = csvOptions.preserveAsciiControlCharacters; } /** @@ -130,6 +133,15 @@ public Builder setSkipLeadingRows(long skipLeadingRows) { return this; } + /** + * Sets whether BigQuery should allow ascii control characters in a CSV file. By default ascii + * control characters are not allowed. + */ + public Builder setPreserveAsciiControlCharacters(boolean preserveAsciiControlCharacters) { + this.preserveAsciiControlCharacters = preserveAsciiControlCharacters; + return this; + } + /** Creates a {@code CsvOptions} object. */ public CsvOptions build() { return new CsvOptions(this); @@ -144,6 +156,7 @@ private CsvOptions(Builder builder) { this.fieldDelimiter = builder.fieldDelimiter; this.quote = builder.quote; this.skipLeadingRows = builder.skipLeadingRows; + this.preserveAsciiControlCharacters = builder.preserveAsciiControlCharacters; } /** @@ -192,6 +205,14 @@ public Long getSkipLeadingRows() { return skipLeadingRows; } + /** + * Returns whether BigQuery should allow ascii control characters in a CSV file. By default ascii + * control characters are not allowed. + */ + public Boolean getPreserveAsciiControlCharacters() { + return preserveAsciiControlCharacters; + } + /** Returns a builder for the {@code CsvOptions} object. */ public Builder toBuilder() { return new Builder(this); @@ -207,6 +228,7 @@ public String toString() { .add("fieldDelimiter", fieldDelimiter) .add("quote", quote) .add("skipLeadingRows", skipLeadingRows) + .add("preserveAsciiControlCharacters", preserveAsciiControlCharacters) .toString(); } @@ -219,7 +241,8 @@ public int hashCode() { encoding, fieldDelimiter, quote, - skipLeadingRows); + skipLeadingRows, + preserveAsciiControlCharacters); } @Override diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java index ebb5713ef0b3..cdb9db904e80 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java @@ -475,7 +475,8 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { .setAllowJaggedRows(csvOptions.allowJaggedRows()) .setAllowQuotedNewlines(csvOptions.allowQuotedNewLines()) .setEncoding(csvOptions.getEncoding()) - .setQuote(csvOptions.getQuote()); + .setQuote(csvOptions.getQuote()) + .setPreserveAsciiControlCharacters(csvOptions.getPreserveAsciiControlCharacters()); if (csvOptions.getSkipLeadingRows() != null) { // todo(mziccard) remove checked cast or comment when #1044 is closed loadConfigurationPb.setSkipLeadingRows(Ints.checkedCast(csvOptions.getSkipLeadingRows())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java index 21ca11fdfce6..fa05cddc50e0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java @@ -30,6 +30,8 @@ public class CsvOptionsTest { private static final String FIELD_DELIMITER = ","; private static final String QUOTE = "\""; private static final long SKIP_LEADING_ROWS = 42L; + + private static final boolean PRESERVE_ASCII_CONTROL_CHARACTERS = true; private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder() .setAllowJaggedRows(ALLOW_JAGGED_ROWS) @@ -38,6 +40,7 @@ public class CsvOptionsTest { .setFieldDelimiter(FIELD_DELIMITER) .setQuote(QUOTE) .setSkipLeadingRows(SKIP_LEADING_ROWS) + .setPreserveAsciiControlCharacters(PRESERVE_ASCII_CONTROL_CHARACTERS) .build(); @Test @@ -64,6 +67,8 @@ public void testBuilder() { assertEquals(FIELD_DELIMITER, CSV_OPTIONS.getFieldDelimiter()); assertEquals(QUOTE, CSV_OPTIONS.getQuote()); assertEquals(SKIP_LEADING_ROWS, (long) CSV_OPTIONS.getSkipLeadingRows()); + assertEquals( + PRESERVE_ASCII_CONTROL_CHARACTERS, CSV_OPTIONS.getPreserveAsciiControlCharacters()); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 2777fdabf984..954ee98a70b8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -4560,4 +4560,30 @@ public void testLocation() throws Exception { bigquery.delete(dataset.getDatasetId(), DatasetDeleteOption.deleteContents()); } } + + @Test + public void testPreserveAsciiControlCharacters() + throws InterruptedException, IOException, TimeoutException { + String destinationTableName = "test_preserve_ascii_control_characters"; + TableId tableId = TableId.of(DATASET, destinationTableName); + WriteChannelConfiguration configuration = + WriteChannelConfiguration.newBuilder(tableId) + .setFormatOptions( + FormatOptions.csv().toBuilder().setPreserveAsciiControlCharacters(true).build()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(SIMPLE_SCHEMA) + .build(); + TableDataWriteChannel channel = bigquery.writer(configuration); + try { + channel.write(ByteBuffer.wrap("\u0000".getBytes(StandardCharsets.UTF_8))); + } finally { + channel.close(); + } + Job job = channel.getJob().waitFor(); + assertNull(job.getStatus().getError()); + Page rows = bigquery.listTableData(tableId); + FieldValueList row = rows.getValues().iterator().next(); + assertEquals("\u0000", row.get(0).getStringValue()); + assertTrue(bigquery.delete(tableId)); + } } From 522ec81c678f169f1b9c89158ed284a632189472 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Mon, 29 Aug 2022 15:28:12 -0400 Subject: [PATCH 2043/3441] chore: add PB methods for preserveAsciiCharaters (#2256) --- .../src/main/java/com/google/cloud/bigquery/CsvOptions.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java index 8a1311faa65c..cbcce2173ea9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java @@ -134,7 +134,7 @@ public Builder setSkipLeadingRows(long skipLeadingRows) { } /** - * Sets whether BigQuery should allow ascii control characters in a CSV file. By default ascii + * Sets whether BigQuery should allow ASCII control characters in a CSV file. By default ASCII * control characters are not allowed. */ public Builder setPreserveAsciiControlCharacters(boolean preserveAsciiControlCharacters) { @@ -260,6 +260,7 @@ com.google.api.services.bigquery.model.CsvOptions toPb() { csvOptions.setFieldDelimiter(fieldDelimiter); csvOptions.setQuote(quote); csvOptions.setSkipLeadingRows(skipLeadingRows); + csvOptions.setPreserveAsciiControlCharacters(preserveAsciiControlCharacters); return csvOptions; } @@ -288,6 +289,9 @@ static CsvOptions fromPb(com.google.api.services.bigquery.model.CsvOptions csvOp if (csvOptions.getSkipLeadingRows() != null) { builder.setSkipLeadingRows(csvOptions.getSkipLeadingRows()); } + if (csvOptions.getPreserveAsciiControlCharacters() != null) { + builder.setPreserveAsciiControlCharacters(csvOptions.getPreserveAsciiControlCharacters()); + } return builder.build(); } } From 777931391d4d73deaac128f98834cdacd5ba77f9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 29 Aug 2022 22:49:16 +0200 Subject: [PATCH 2044/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.11.1 (#2257) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 29d9afb8018b..b67d136aaf86 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.11.0 + 2.11.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5c54badbff8a..75486d9ee18b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.11.0 + 2.11.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 37fb3f40ebc2..71a84afbfcf1 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.11.0 + 2.11.1 test From 9b530cdbce1423376606542cb8cdb0606ec15692 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 31 Aug 2022 22:44:26 +0200 Subject: [PATCH 2045/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.1.1 (#2258) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/googleapis/java-cloud-bom)) | `26.1.0` -> `26.1.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.1/compatibility-slim/26.1.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.1/confidence-slim/26.1.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2afa89e74dcb..087f2808773d 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.1.0 + 26.1.1 pom import @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.1.0') +implementation platform('com.google.cloud:libraries-bom:26.1.1') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 0f4267c2a8bd..a181739e0290 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.1.0 + 26.1.1 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 71a84afbfcf1..8a05c730406e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.1.0 + 26.1.1 pom import From 5e30a04e5b14b03e60e587787180b27f605d6abd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 1 Sep 2022 07:50:32 +0200 Subject: [PATCH 2046/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.9.3 (#2259) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 044aa8f71ea3..612b8c26635c 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.9.2 + 1.9.3 pom import @@ -104,7 +104,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.9.2 + 1.9.3 pom import From a9b5fb2c1078788ddb1ac3169c9ce597af228ac0 Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Fri, 2 Sep 2022 08:53:49 +0530 Subject: [PATCH 2047/3441] fix: Socket-timeout at bigquery.it.ITNightlyBigQueryTest: testForTableNotFound (#2260) * Added query logging in testForTableNotFound * Defaulted timeoutMs to 10s & Added additional logging --- .../java/com/google/cloud/bigquery/ConnectionImpl.java | 10 ++++++++-- .../cloud/bigquery/it/ITNightlyBigQueryTest.java | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index da79bd6ba18f..0310832c58e9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -190,11 +190,13 @@ public BigQueryResult executeSelect(String sql) throws BigQuerySQLException { try { // use jobs.query if all the properties of connectionSettings are supported if (isFastQuerySupported()) { + logger.log(Level.INFO, "\n Using Fast Query Path"); String projectId = bigQueryOptions.getProjectId(); QueryRequest queryRequest = createQueryRequest(connectionSettings, sql, null, null); return queryRpc(projectId, queryRequest, sql, false); } // use jobs.insert otherwise + logger.log(Level.INFO, "\n Not Using Fast Query Path, using jobs.insert"); com.google.api.services.bigquery.model.Job queryJob = createQueryJob(sql, connectionSettings, null, null); JobId jobId = JobId.fromPb(queryJob.getJobReference()); @@ -233,12 +235,14 @@ public BigQueryResult executeSelect( try { // use jobs.query if possible if (isFastQuerySupported()) { + logger.log(Level.INFO, "\n Using Fast Query Path"); final String projectId = bigQueryOptions.getProjectId(); final QueryRequest queryRequest = createQueryRequest(connectionSettings, sql, parameters, labelMap); return queryRpc(projectId, queryRequest, sql, parameters != null); } // use jobs.insert otherwise + logger.log(Level.INFO, "\n Not Using Fast Query Path, using jobs.insert"); com.google.api.services.bigquery.model.Job queryJob = createQueryJob(sql, connectionSettings, parameters, labelMap); JobId jobId = JobId.fromPb(queryJob.getJobReference()); @@ -1003,8 +1007,7 @@ GetQueryResultsResponse getQueryResultsFirstPage(JobId jobId) { // progress (a job won't get stuck in pending forever). boolean jobComplete = false; GetQueryResultsResponse results = null; - long timeoutMs = - 60000; // defaulting to 60seconds. TODO(prashant): It should be made user configurable + long timeoutMs = 10000; // defaulting to 10seconds. while (!jobComplete) { try { @@ -1032,6 +1035,7 @@ GetQueryResultsResponse getQueryResultsFirstPage(JobId jobId) { throw new BigQueryException(bigQueryErrors); } } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { + logger.log(Level.WARNING, "\n Error occurred while calling getQueryResultsWithRowLimit", e); throw BigQueryException.translateAndThrow(e); } jobComplete = results.getJobComplete(); @@ -1285,8 +1289,10 @@ com.google.api.services.bigquery.model.Job createQueryJob( bigQueryOptions.getClock(), retryConfig); } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { + logger.log(Level.WARNING, "\n Error occurred while calling createJobForQuery", e); throw BigQueryException.translateAndThrow(e); } + logger.log(Level.INFO, "\n Query job created"); return queryJob; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java index 006c126b6621..588484749c02 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java @@ -496,7 +496,7 @@ public void testForTableNotFound() throws SQLException { String query = String.format( "SELECT * FROM `bigquery-samples.wikipedia_benchmark.Wiki10B` LIMIT %s", recordCnt); - + logger.log(Level.INFO, "Query used: {0}", query); String dataSet = RemoteBigQueryHelper.generateDatasetName(); String table = "TAB_" + UUID.randomUUID(); createDataset(dataSet); From 3c67d21c10f66b3c5313a1733f4e81db42c1b7c3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 6 Sep 2022 18:10:17 +0200 Subject: [PATCH 2048/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220827-2.0.0 (#2261) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20220806-2.0.0` -> `v2-rev20220827-2.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220827-2.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220827-2.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220827-2.0.0/compatibility-slim/v2-rev20220806-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220827-2.0.0/confidence-slim/v2-rev20220806-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 612b8c26635c..b7b28d73de84 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220806-2.0.0 + v2-rev20220827-2.0.0 3.0.1 9.0.0
    From c84863a2f51c00e9f2e566150f59ee103ea34f11 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 6 Sep 2022 22:24:12 +0200 Subject: [PATCH 2049/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.5.1 (#2264) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | `2.5.0` -> `2.5.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.1/compatibility-slim/2.5.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.1/confidence-slim/2.5.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v2.5.1`](https://togithub.com/googleapis/java-bigqueryconnection/blob/HEAD/CHANGELOG.md#​251-httpsgithubcomgoogleapisjava-bigqueryconnectioncomparev250v251-2022-09-06) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.5.0...v2.5.1) ##### Dependencies - Update dependency com.google.protobuf ([9225d58](https://togithub.com/googleapis/java-bigqueryconnection/commit/9225d58be057beec195baa55a48a183f923d1490))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b67d136aaf86..8eb3aed362b7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.0 + 2.5.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 75486d9ee18b..858b5f67addf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.0 + 2.5.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 8a05c730406e..62a336e91680 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.0 + 2.5.1 test From 09deb29fe05aff72b23c73a486e367c85527f84e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 8 Sep 2022 03:32:13 +0200 Subject: [PATCH 2050/3441] test(deps): update dependency org.mockito:mockito-core to v4.8.0 (#2266) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.mockito:mockito-core](https://togithub.com/mockito/mockito) | `4.7.0` -> `4.8.0` | [![age](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.8.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.8.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.8.0/compatibility-slim/4.7.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.mockito:mockito-core/4.8.0/confidence-slim/4.7.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    mockito/mockito ### [`v4.8.0`](https://togithub.com/mockito/mockito/releases/tag/v4.8.0) *Changelog generated by [Shipkit Changelog Gradle Plugin](https://togithub.com/shipkit/shipkit-changelog)* ##### 4.8.0 - 2022-09-07 - [10 commit(s)](https://togithub.com/mockito/mockito/compare/v4.7.0...v4.8.0) by Alex, James Baker, Johannes Spangenberg, Kurt Alfred Kluever, Rafael Winterhalter, Thibault Helsmoortel, dependabot\[bot] - GitHub Workflows security hardening [(#​2744)](https://togithub.com/mockito/mockito/pull/2744) - Assign GlobalConfiguration initializer to unused variable [(#​2742)](https://togithub.com/mockito/mockito/pull/2742) - Bump com.diffplug.spotless from 6.9.1 to 6.10.0 [(#​2738)](https://togithub.com/mockito/mockito/pull/2738) - Drop varargs collector before invoking a user method. [(#​2736)](https://togithub.com/mockito/mockito/pull/2736) - Bump versions.bytebuddy from 1.12.13 to 1.12.14 [(#​2734)](https://togithub.com/mockito/mockito/pull/2734) - Remove useless thrown exception from constructor [(#​2732)](https://togithub.com/mockito/mockito/pull/2732) - TypeSafeMatching no longer iterates over class methods inefficiently [(#​2729)](https://togithub.com/mockito/mockito/pull/2729) - Fixes [#​2720](https://togithub.com/mockito/mockito/issues/2720): Use StackWalker on Java 9+ to create Locations [(#​2723)](https://togithub.com/mockito/mockito/pull/2723) - LocationImpl adds performance overheads due to instantiating a stack trace [(#​2720)](https://togithub.com/mockito/mockito/issues/2720) - Fixes [#​2626](https://togithub.com/mockito/mockito/issues/2626) : Introduce MockSettings.mockMaker [(#​2701)](https://togithub.com/mockito/mockito/pull/2701) - Introduce option to disable inline-mock-maker for a specific instance [(#​2626)](https://togithub.com/mockito/mockito/issues/2626)
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b7b28d73de84..3cd842857307 100644 --- a/pom.xml +++ b/pom.xml @@ -170,7 +170,7 @@ org.mockito mockito-core - 4.7.0 + 4.8.0 test From 2779210ba759f868a507f3266a4e41a98e76f633 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 8 Sep 2022 03:34:13 +0200 Subject: [PATCH 2051/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.11.2 (#2265) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.11.1` -> `2.11.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.11.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.11.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.11.2/compatibility-slim/2.11.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.11.2/confidence-slim/2.11.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.11.2`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​2112-httpsgithubcomgoogleapisjava-bigtablecomparev2111v2112-2022-09-07) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.11.1...v2.11.2) ##### Bug Fixes - Make cloud-monitoring a runtime dependency ([#​1371](https://togithub.com/googleapis/java-bigtable/issues/1371)) ([930d043](https://togithub.com/googleapis/java-bigtable/commit/930d0439086d2b43735f9583175adf0626952c9b)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-monitoring-bom to v3.4.2 ([#​1373](https://togithub.com/googleapis/java-bigtable/issues/1373)) ([43b8052](https://togithub.com/googleapis/java-bigtable/commit/43b80523cc00932a414702ad96cfd86984c0f649)) - Update dependency com.google.cloud:google-cloud-monitoring-bom to v3.4.2 ([#​1374](https://togithub.com/googleapis/java-bigtable/issues/1374)) ([4174f0d](https://togithub.com/googleapis/java-bigtable/commit/4174f0dc1b61f954ccd1c2fcf88066179a4d430b))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8eb3aed362b7..be3467152517 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.11.1 + 2.11.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 858b5f67addf..be1ac4c151af 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.11.1 + 2.11.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 62a336e91680..b746ce6e5188 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.11.1 + 2.11.2 test From dbabfb5e31ac44ec238d206b2610a40179f56794 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 8 Sep 2022 16:22:15 -0400 Subject: [PATCH 2052/3441] chore: add setLocation in dataset creation sample (#2263) --- .../src/main/java/com/example/bigquery/CreateDataset.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java b/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java index 92e73d1131c7..f567c8df1bc2 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java @@ -37,7 +37,9 @@ public static void createDataset(String datasetName) { // once, and can be reused for multiple requests. BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build(); + String location = "US"; + + DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).setLocation(location).build(); Dataset newDataset = bigquery.create(datasetInfo); String newDatasetName = newDataset.getDatasetId().getDataset(); From 8472fe580a8197aaa3957dd3231fed0a9511fbb5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 9 Sep 2022 05:48:38 +0200 Subject: [PATCH 2053/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 (#2267) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `3.0.1` -> `3.0.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.2/compatibility-slim/3.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.2/confidence-slim/3.0.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v3.0.2`](https://togithub.com/googleapis/java-shared-dependencies/blob/HEAD/CHANGELOG.md#​302-httpsgithubcomgoogleapisjava-shared-dependenciescomparev301v302-2022-09-08) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v3.0.1...v3.0.2) ##### Dependencies - Update dependency com.fasterxml.jackson:jackson-bom to v2.13.4 ([#​789](https://togithub.com/googleapis/java-shared-dependencies/issues/789)) ([6cf91a9](https://togithub.com/googleapis/java-shared-dependencies/commit/6cf91a96b9ea6af0fb845b50582dac7aa2892cab)) - Update dependency com.google.auth:google-auth-library-bom to v1.10.0 ([#​781](https://togithub.com/googleapis/java-shared-dependencies/issues/781)) ([8859e61](https://togithub.com/googleapis/java-shared-dependencies/commit/8859e61808bfc5cd9546e27e945fc855b36d2554)) - Update dependency com.google.auth:google-auth-library-bom to v1.11.0 ([#​790](https://togithub.com/googleapis/java-shared-dependencies/issues/790)) ([3431a47](https://togithub.com/googleapis/java-shared-dependencies/commit/3431a471cbf874a67a4f1a42e31f0ed891dedc92)) - Update dependency com.google.auth:google-auth-library-bom to v1.9.0 ([#​773](https://togithub.com/googleapis/java-shared-dependencies/issues/773)) ([27fc79f](https://togithub.com/googleapis/java-shared-dependencies/commit/27fc79f00ee70011df6a368bb8fcfad7f0ce41f0)) - Update dependency com.google.errorprone:error_prone_annotations to v2.15.0 ([#​776](https://togithub.com/googleapis/java-shared-dependencies/issues/776)) ([bf333b8](https://togithub.com/googleapis/java-shared-dependencies/commit/bf333b8c88072d21cb959db4d3328bbb55d9ef5c)) - Update dependency com.google.protobuf:protobuf-bom to v3.21.5 ([#​780](https://togithub.com/googleapis/java-shared-dependencies/issues/780)) ([da7f44d](https://togithub.com/googleapis/java-shared-dependencies/commit/da7f44d71d6d7f372b5313dab68ce220308614d4)) - Update dependency io.grpc:grpc-bom to v1.48.1 ([#​768](https://togithub.com/googleapis/java-shared-dependencies/issues/768)) ([5c7768d](https://togithub.com/googleapis/java-shared-dependencies/commit/5c7768d3c9665dd356de6c39c0a6a5fa6e992f2e)) - Update dependency io.grpc:grpc-bom to v1.49.0 ([#​786](https://togithub.com/googleapis/java-shared-dependencies/issues/786)) ([8734812](https://togithub.com/googleapis/java-shared-dependencies/commit/8734812f1b4e2faaa48caf41eff59a85892ae344)) - Update dependency org.checkerframework:checker-qual to v3.24.0 ([#​775](https://togithub.com/googleapis/java-shared-dependencies/issues/775)) ([df74b7b](https://togithub.com/googleapis/java-shared-dependencies/commit/df74b7b0dd5dd592523f302d9fb36adb5991cb0b)) - Update dependency org.checkerframework:checker-qual to v3.25.0 ([#​788](https://togithub.com/googleapis/java-shared-dependencies/issues/788)) ([207035b](https://togithub.com/googleapis/java-shared-dependencies/commit/207035bd04c9305899eea540acbefaf06a7b1ec9)) - Update dependency org.threeten:threetenbp to v1.6.1 ([#​782](https://togithub.com/googleapis/java-shared-dependencies/issues/782)) ([0f218ae](https://togithub.com/googleapis/java-shared-dependencies/commit/0f218aeb6aa33cf1da4a8b1d6c82bbf87946dab9)) - Update gax.version to v2.19.0 ([#​785](https://togithub.com/googleapis/java-shared-dependencies/issues/785)) ([4448331](https://togithub.com/googleapis/java-shared-dependencies/commit/4448331c4c6d88ea8076260776d1d47d24aa19fa)) - Update google.core.version to v2.8.10 ([#​787](https://togithub.com/googleapis/java-shared-dependencies/issues/787)) ([3c344d5](https://togithub.com/googleapis/java-shared-dependencies/commit/3c344d515e3b9215db5a1f8ef550d800d974e558)) - Update google.core.version to v2.8.7 ([#​774](https://togithub.com/googleapis/java-shared-dependencies/issues/774)) ([d0cd5e8](https://togithub.com/googleapis/java-shared-dependencies/commit/d0cd5e8f6ca88787fe0dbf7f30c849cb4c4fae5e)) - Update google.core.version to v2.8.8 ([#​777](https://togithub.com/googleapis/java-shared-dependencies/issues/777)) ([f00571c](https://togithub.com/googleapis/java-shared-dependencies/commit/f00571cd1e9f1c4e011fba4a1e1674c1d8d60200)) - Update google.core.version to v2.8.9 ([#​784](https://togithub.com/googleapis/java-shared-dependencies/issues/784)) ([aa8e505](https://togithub.com/googleapis/java-shared-dependencies/commit/aa8e505dbb1214b2239e55d5ac83b00c167d77e4))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3cd842857307..2303469f1211 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20220827-2.0.0 - 3.0.1 + 3.0.2 9.0.0
    From 24517ca40e1c3a9d5debcc296781c73a38e5eab4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 9 Sep 2022 17:18:24 +0200 Subject: [PATCH 2054/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.5.2 (#2268) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | `2.5.1` -> `2.5.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.2/compatibility-slim/2.5.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.2/confidence-slim/2.5.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v2.5.2`](https://togithub.com/googleapis/java-bigqueryconnection/blob/HEAD/CHANGELOG.md#​252-httpsgithubcomgoogleapisjava-bigqueryconnectioncomparev251v252-2022-09-09) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.5.1...v2.5.2) ##### Dependencies - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#​742](https://togithub.com/googleapis/java-bigqueryconnection/issues/742)) ([efad01d](https://togithub.com/googleapis/java-bigqueryconnection/commit/efad01d4579e1573822d593f4852522ccfeb7fc3))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index be3467152517..57b8cd4cb0d8 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.1 + 2.5.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index be1ac4c151af..890a7f8ec278 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.1 + 2.5.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index b746ce6e5188..ce0a357679b8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.1 + 2.5.2 test From 4dd963b3ec7f75ff9b1b3b73b733c09c223f3fb7 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Sat, 10 Sep 2022 04:22:20 +0000 Subject: [PATCH 2055/3441] chore: Generated snippets should not be owned by samples reviewers (#1575) (#2270) Source-Link: https://github.com/googleapis/synthtool/commit/2e9ac19d5b8181af77cdc5337cf922517813cc49 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:8175681a918181d306d9c370d3262f16b4c724cc73d74111b7d42fc985ca7f93 --- .github/.OwlBot.lock.yaml | 3 +-- .github/CODEOWNERS | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index a20fd63005ae..6259292301cb 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:7a9a7eb50ca2af5bfffab3abd2f38d408735c990a74bacf9b7fde2af0a086a0b -# created: 2022-08-01T15:27:14.757266067Z + digest: sha256:8175681a918181d306d9c370d3262f16b4c724cc73d74111b7d42fc985ca7f93 diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e5cf90602fdc..6aaf5360dd7d 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -13,3 +13,6 @@ # The java-samples-reviewers team is the default owner for samples changes samples/**/*.java @googleapis/java-samples-reviewers + +# Generated snippets should not be owned by samples reviewers +samples/snippets/generated/ @googleapis/yoshi-java From 8c488e64259bd67716342f48f96d2932c5e57c3e Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Mon, 12 Sep 2022 15:48:52 -0400 Subject: [PATCH 2056/3441] feat: add reference file schema option for federated formats (#2269) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add reference file schema option for federated formats * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: fix clirr check * chore: add assertion to tests * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: add create external table tests * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: delete table for external table after testing * comment * cleanup * chore: remove enforced login from library code * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../clirr-ignored-differences.xml | 5 + .../bigquery/ExternalTableDefinition.java | 22 ++ .../cloud/bigquery/LoadJobConfiguration.java | 29 ++- .../cloud/bigquery/it/ITBigQueryTest.java | 202 ++++++++++++++++++ 4 files changed, 257 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 2ad26f946404..7a882777a9cf 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -14,4 +14,9 @@ com.google.api.services.bigquery.model.GetQueryResultsResponse getQueryResultsWithRowLimit(java.lang.String, java.lang.String, java.lang.String, java.lang.Integer) getQueryResultsWithRowLimit is just used by ConnectionImpl at the moment so it should be fine to update the signature instead of writing an overloaded method + + 7013 + com/google/cloud/bigquery/ExternalTableDefinition* + *ReferenceFileSchemaUri(*) + \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index 6ca64a8d78d4..cb327a3a9c3f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -157,6 +157,14 @@ public Builder setHivePartitioningOptions(HivePartitioningOptions hivePartitioni return setHivePartitioningOptionsInner(hivePartitioningOptions); }; + /** + * When creating an external table, the user can provide a reference file with the table schema. + * This is enabled for the following formats: AVRO, PARQUET, ORC. + * + * @param referenceFileSchemaUri or {@code null} for none + */ + public abstract Builder setReferenceFileSchemaUri(String referenceFileSchemaUri); + abstract Builder setHivePartitioningOptionsInner( HivePartitioningOptions hivePartitioningOptions); @@ -250,6 +258,9 @@ public F getFormatOptions() { @Nullable public abstract Boolean getAutodetect(); + @Nullable + public abstract String getReferenceFileSchemaUri(); + /** * [Experimental] Returns the HivePartitioningOptions when the data layout follows Hive * partitioning convention @@ -317,6 +328,10 @@ com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataC if (getAutodetect() != null) { externalConfigurationPb.setAutodetect(getAutodetect()); } + if (getReferenceFileSchemaUri() != null) { + externalConfigurationPb.setReferenceFileSchemaUri(getReferenceFileSchemaUri()); + } + if (getHivePartitioningOptions() != null) { externalConfigurationPb.setHivePartitioningOptions(getHivePartitioningOptions().toPb()); } @@ -486,6 +501,9 @@ static ExternalTableDefinition fromPb(Table tablePb) { builder.setHivePartitioningOptions( HivePartitioningOptions.fromPb(externalDataConfiguration.getHivePartitioningOptions())); } + if (externalDataConfiguration.getReferenceFileSchemaUri() != null) { + builder.setReferenceFileSchemaUri(externalDataConfiguration.getReferenceFileSchemaUri()); + } } return builder.build(); } @@ -538,10 +556,14 @@ static ExternalTableDefinition fromExternalDataConfiguration( if (externalDataConfiguration.getAutodetect() != null) { builder.setAutodetect(externalDataConfiguration.getAutodetect()); } + if (externalDataConfiguration.getReferenceFileSchemaUri() != null) { + builder.setReferenceFileSchemaUri(externalDataConfiguration.getReferenceFileSchemaUri()); + } if (externalDataConfiguration.getHivePartitioningOptions() != null) { builder.setHivePartitioningOptions( HivePartitioningOptions.fromPb(externalDataConfiguration.getHivePartitioningOptions())); } + return builder.build(); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index 2f625acf547f..ee142be01054 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -56,6 +56,7 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private final Long jobTimeoutMs; private final RangePartitioning rangePartitioning; private final HivePartitioningOptions hivePartitioningOptions; + private final String referenceFileSchemaUri; public static final class Builder extends JobConfiguration.Builder implements LoadConfiguration.Builder { @@ -81,6 +82,7 @@ public static final class Builder extends JobConfiguration.Builder SOURCE_URIS = + ImmutableList.of( + "gs://" + + CLOUD_SAMPLES_DATA + + "/bigquery/federated-formats-reference-file-schema/a-twitter.avro", + "gs://" + + CLOUD_SAMPLES_DATA + + "/bigquery/federated-formats-reference-file-schema/b-twitter.avro", + "gs://" + + CLOUD_SAMPLES_DATA + + "/bigquery/federated-formats-reference-file-schema/c-twitter.avro"); + + // Because referenceFileSchemaUri is set as a-twitter, the table will have a-twitter schema + String referenceFileSchema = + "gs://" + + CLOUD_SAMPLES_DATA + + "/bigquery/federated-formats-reference-file-schema/a-twitter.avro"; + + LoadJobConfiguration loadJobConfiguration = + LoadJobConfiguration.newBuilder(tableId, SOURCE_URIS, FormatOptions.avro()) + .setReferenceFileSchemaUri(referenceFileSchema) + .build(); + + Job job = bigquery.create(JobInfo.of(loadJobConfiguration)); + // Blocks until this load table job completes its execution, either failing or succeeding. + job = job.waitFor(); + assertEquals(true, job.isDone()); + + LoadJobConfiguration actualLoadJobConfiguration = job.getConfiguration(); + Table generatedTable = bigquery.getTable(actualLoadJobConfiguration.getDestinationTable()); + + assertEquals(expectedSchema, generatedTable.getDefinition().getSchema()); + // clean up after test to avoid conflict with other tests + boolean success = bigquery.delete(tableId); + assertEquals(true, success); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } + + @Test + public void testReferenceFileSchemaUriForParquet() { + try { + String destinationTableName = "test_reference_file_schema_parquet"; + TableId tableId = TableId.of(DATASET, destinationTableName); + Schema expectedSchema = + Schema.of( + Field.newBuilder("username", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build(), + Field.newBuilder("tweet", StandardSQLTypeName.STRING).setMode(Mode.NULLABLE).build(), + Field.newBuilder("timestamp", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build(), + Field.newBuilder("likes", StandardSQLTypeName.INT64).setMode(Mode.NULLABLE).build()); + + // By default, the table should have c-twitter schema because it is lexicographically last. + // a-twitter schema (username, tweet, timestamp, likes) + // b-twitter schema (username, tweet, timestamp) + // c-twitter schema (username, tweet) + List SOURCE_URIS = + ImmutableList.of( + "gs://" + + CLOUD_SAMPLES_DATA + + "/bigquery/federated-formats-reference-file-schema/a-twitter.parquet", + "gs://" + + CLOUD_SAMPLES_DATA + + "/bigquery/federated-formats-reference-file-schema/b-twitter.parquet", + "gs://" + + CLOUD_SAMPLES_DATA + + "/bigquery/federated-formats-reference-file-schema/c-twitter.parquet"); + + // Because referenceFileSchemaUri is set as a-twitter, the table will have a-twitter schema + String referenceFileSchema = + "gs://" + + CLOUD_SAMPLES_DATA + + "/bigquery/federated-formats-reference-file-schema/a-twitter.parquet"; + + LoadJobConfiguration loadJobConfiguration = + LoadJobConfiguration.newBuilder(tableId, SOURCE_URIS, FormatOptions.parquet()) + .setReferenceFileSchemaUri(referenceFileSchema) + .build(); + + Job job = bigquery.create(JobInfo.of(loadJobConfiguration)); + // Blocks until this load table job completes its execution, either failing or succeeding. + job = job.waitFor(); + assertEquals(true, job.isDone()); + LoadJobConfiguration actualLoadJobConfiguration = job.getConfiguration(); + Table generatedTable = bigquery.getTable(actualLoadJobConfiguration.getDestinationTable()); + + assertEquals(expectedSchema, generatedTable.getDefinition().getSchema()); + // clean up after test to avoid conflict with other tests + boolean success = bigquery.delete(tableId); + assertEquals(true, success); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Column not added during load append \n" + e.toString()); + } + } + + @Test + public void testCreateExternalTableWithReferenceFileSchemaAvro() { + String destinationTableName = "test_create_external_table_reference_file_schema_avro"; + TableId tableId = TableId.of(DATASET, destinationTableName); + Schema expectedSchema = + Schema.of( + Field.newBuilder("username", StandardSQLTypeName.STRING).setMode(Mode.NULLABLE).build(), + Field.newBuilder("tweet", StandardSQLTypeName.STRING).setMode(Mode.NULLABLE).build(), + Field.newBuilder("timestamp", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build(), + Field.newBuilder("likes", StandardSQLTypeName.INT64).setMode(Mode.NULLABLE).build()); + String CLOUD_SAMPLES_DATA = "cloud-samples-data"; + + // By default, the table should have c-twitter schema because it is lexicographically last. + // a-twitter schema (username, tweet, timestamp, likes) + // b-twitter schema (username, tweet, timestamp) + // c-twitter schema (username, tweet) + String SOURCE_URI = + "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/federated-formats-reference-file-schema/*.avro"; + + // Because referenceFileSchemaUri is set as a-twitter, the table will have a-twitter schema + String referenceFileSchema = + "gs://" + + CLOUD_SAMPLES_DATA + + "/bigquery/federated-formats-reference-file-schema/a-twitter.avro"; + + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.newBuilder(SOURCE_URI, FormatOptions.avro()) + .setReferenceFileSchemaUri(referenceFileSchema) + .build(); + TableInfo tableInfo = TableInfo.of(tableId, externalTableDefinition); + Table createdTable = bigquery.create(tableInfo); + Table generatedTable = bigquery.getTable(createdTable.getTableId()); + assertEquals(expectedSchema, generatedTable.getDefinition().getSchema()); + // clean up after test to avoid conflict with other tests + boolean success = bigquery.delete(tableId); + assertEquals(true, success); + } + + @Test + public void testCreateExternalTableWithReferenceFileSchemaParquet() { + String destinationTableName = "test_create_external_table_reference_file_schema_parquet"; + TableId tableId = TableId.of(DATASET, destinationTableName); + Schema expectedSchema = + Schema.of( + Field.newBuilder("username", StandardSQLTypeName.STRING).setMode(Mode.NULLABLE).build(), + Field.newBuilder("tweet", StandardSQLTypeName.STRING).setMode(Mode.NULLABLE).build(), + Field.newBuilder("timestamp", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build(), + Field.newBuilder("likes", StandardSQLTypeName.INT64).setMode(Mode.NULLABLE).build()); + String CLOUD_SAMPLES_DATA = "cloud-samples-data"; + + // By default, the table should have c-twitter schema because it is lexicographically last. + // a-twitter schema (username, tweet, timestamp, likes) + // b-twitter schema (username, tweet, timestamp) + // c-twitter schema (username, tweet) + String SOURCE_URI = + "gs://" + + CLOUD_SAMPLES_DATA + + "/bigquery/federated-formats-reference-file-schema/*.parquet"; + + // Because referenceFileSchemaUri is set as a-twitter, the table will have a-twitter schema + String referenceFileSchema = + "gs://" + + CLOUD_SAMPLES_DATA + + "/bigquery/federated-formats-reference-file-schema/a-twitter.parquet"; + + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.newBuilder(SOURCE_URI, FormatOptions.parquet()) + .setReferenceFileSchemaUri(referenceFileSchema) + .build(); + TableInfo tableInfo = TableInfo.of(tableId, externalTableDefinition); + Table createdTable = bigquery.create(tableInfo); + Table generatedTable = bigquery.getTable(createdTable.getTableId()); + assertEquals(expectedSchema, generatedTable.getDefinition().getSchema()); + // clean up after test to avoid conflict with other tests + boolean success = bigquery.delete(tableId); + assertEquals(true, success); + } } From 0700ea3c0f1fc8cf2ef05d1c73509be911c65148 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 12 Sep 2022 20:32:12 +0000 Subject: [PATCH 2057/3441] chore(main): release 2.16.0 (#2255) :robot: I have created a release *beep* *boop* --- ## [2.16.0](https://github.com/googleapis/java-bigquery/compare/v2.15.0...v2.16.0) (2022-09-12) ### Features * Add preserveAsciiControlCharacters to CsvOptions ([#2143](https://github.com/googleapis/java-bigquery/issues/2143)) ([856893f](https://github.com/googleapis/java-bigquery/commit/856893f4d8f1b419365d8f179ce9f9e571dec718)) * Add reference file schema option for federated formats ([#2269](https://github.com/googleapis/java-bigquery/issues/2269)) ([8c488e6](https://github.com/googleapis/java-bigquery/commit/8c488e64259bd67716342f48f96d2932c5e57c3e)) ### Bug Fixes * Socket-timeout at bigquery.it.ITNightlyBigQueryTest: testForTableNotFound ([#2260](https://github.com/googleapis/java-bigquery/issues/2260)) ([a9b5fb2](https://github.com/googleapis/java-bigquery/commit/a9b5fb2c1078788ddb1ac3169c9ce597af228ac0)) ### Dependencies * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20220827-2.0.0 ([#2261](https://github.com/googleapis/java-bigquery/issues/2261)) ([3c67d21](https://github.com/googleapis/java-bigquery/commit/3c67d21c10f66b3c5313a1733f4e81db42c1b7c3)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.9.3 ([#2259](https://github.com/googleapis/java-bigquery/issues/2259)) ([5e30a04](https://github.com/googleapis/java-bigquery/commit/5e30a04e5b14b03e60e587787180b27f605d6abd)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#2267](https://github.com/googleapis/java-bigquery/issues/2267)) ([8472fe5](https://github.com/googleapis/java-bigquery/commit/8472fe580a8197aaa3957dd3231fed0a9511fbb5)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 20 ++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 27 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83e0bea1573d..12c388f6a60f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## [2.16.0](https://github.com/googleapis/java-bigquery/compare/v2.15.0...v2.16.0) (2022-09-12) + + +### Features + +* Add preserveAsciiControlCharacters to CsvOptions ([#2143](https://github.com/googleapis/java-bigquery/issues/2143)) ([856893f](https://github.com/googleapis/java-bigquery/commit/856893f4d8f1b419365d8f179ce9f9e571dec718)) +* Add reference file schema option for federated formats ([#2269](https://github.com/googleapis/java-bigquery/issues/2269)) ([8c488e6](https://github.com/googleapis/java-bigquery/commit/8c488e64259bd67716342f48f96d2932c5e57c3e)) + + +### Bug Fixes + +* Socket-timeout at bigquery.it.ITNightlyBigQueryTest: testForTableNotFound ([#2260](https://github.com/googleapis/java-bigquery/issues/2260)) ([a9b5fb2](https://github.com/googleapis/java-bigquery/commit/a9b5fb2c1078788ddb1ac3169c9ce597af228ac0)) + + +### Dependencies + +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20220827-2.0.0 ([#2261](https://github.com/googleapis/java-bigquery/issues/2261)) ([3c67d21](https://github.com/googleapis/java-bigquery/commit/3c67d21c10f66b3c5313a1733f4e81db42c1b7c3)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.9.3 ([#2259](https://github.com/googleapis/java-bigquery/issues/2259)) ([5e30a04](https://github.com/googleapis/java-bigquery/commit/5e30a04e5b14b03e60e587787180b27f605d6abd)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#2267](https://github.com/googleapis/java-bigquery/issues/2267)) ([8472fe5](https://github.com/googleapis/java-bigquery/commit/8472fe580a8197aaa3957dd3231fed0a9511fbb5)) + ## [2.15.0](https://github.com/googleapis/java-bigquery/compare/v2.14.7...v2.15.0) (2022-08-25) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ff262b1cbd01..1e1c8b411fdd 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.15.1-SNAPSHOT + 2.16.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index fe9c140db646..dd8c38df8a42 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.15.1-SNAPSHOT + 2.16.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.15.1-SNAPSHOT + 2.16.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2303469f1211..3a9cf372ca54 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.15.1-SNAPSHOT + 2.16.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.15.1-SNAPSHOT + 2.16.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 890a7f8ec278..ea71156cf495 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.15.1-SNAPSHOT + 2.16.0 diff --git a/versions.txt b/versions.txt index 0cda752ce88b..f440a1cfb0be 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.15.0:2.15.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.16.0:2.16.0 \ No newline at end of file From c04458b0400ed81c95db352e3fd1d9ed94d273f6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 12 Sep 2022 21:00:17 +0000 Subject: [PATCH 2058/3441] chore(main): release 2.16.1-SNAPSHOT (#2271) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1e1c8b411fdd..520747a1ad32 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.16.0 + 2.16.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index dd8c38df8a42..f5e19bc059f6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.16.0 + 2.16.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.16.0 + 2.16.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3a9cf372ca54..f8cce60dda9f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.16.0 + 2.16.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.16.0 + 2.16.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ea71156cf495..83cda01d7109 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.16.0 + 2.16.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index f440a1cfb0be..b75e91690310 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.16.0:2.16.0 \ No newline at end of file +google-cloud-bigquery:2.16.0:2.16.1-SNAPSHOT \ No newline at end of file From ae74c1b65f89a55e8a127ffb4a777910265dc190 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 13 Sep 2022 20:56:14 +0200 Subject: [PATCH 2059/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.16.0 (#2272) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.15.0` -> `2.16.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.16.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.16.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.16.0/compatibility-slim/2.15.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.16.0/confidence-slim/2.15.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 087f2808773d..c2a0a89f9103 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.15.0 + 2.16.0 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.15.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.16.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.15.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.16.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 57b8cd4cb0d8..7efddf86667c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.15.0 + 2.16.0 From 4c9952b4f8bc81a66f2a43ecbb9fa85774ed8a93 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 15 Sep 2022 16:00:35 +0200 Subject: [PATCH 2060/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.3 (#2274) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `3.0.2` -> `3.0.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.3/compatibility-slim/3.0.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.3/confidence-slim/3.0.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v3.0.3`](https://togithub.com/googleapis/java-shared-dependencies/blob/HEAD/CHANGELOG.md#​303-httpsgithubcomgoogleapisjava-shared-dependenciescomparev302v303-2022-09-14) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v3.0.2...v3.0.3) ##### Dependencies - Google-cloud-core 2.8.12 ([#​799](https://togithub.com/googleapis/java-shared-dependencies/issues/799)) ([1b3db8d](https://togithub.com/googleapis/java-shared-dependencies/commit/1b3db8d1e17c49ebae79fc96164fa9058e1df6e3)) - Moving gson to first-party-dependencies ([#​800](https://togithub.com/googleapis/java-shared-dependencies/issues/800)) ([a41fcc1](https://togithub.com/googleapis/java-shared-dependencies/commit/a41fcc11d32e02e5af2837561792e3919f6d4b3f)) - Update dependency com.google.protobuf:protobuf-bom to v3.21.6 ([#​797](https://togithub.com/googleapis/java-shared-dependencies/issues/797)) ([bc5fdc9](https://togithub.com/googleapis/java-shared-dependencies/commit/bc5fdc9b3af7973c28f063a9ac156fe2af562814)) - Update gax.version to v2.19.1 ([#​798](https://togithub.com/googleapis/java-shared-dependencies/issues/798)) ([84e5487](https://togithub.com/googleapis/java-shared-dependencies/commit/84e5487b2e3dce4bb60badecebde788c3cb702b8)) - Update google.core.version to v2.8.11 ([#​793](https://togithub.com/googleapis/java-shared-dependencies/issues/793)) ([63c1297](https://togithub.com/googleapis/java-shared-dependencies/commit/63c129722aa0b821031ff5b4c11004adf7b12044))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f8cce60dda9f..9303114f5019 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20220827-2.0.0 - 3.0.2 + 3.0.3 9.0.0
    From c689646fb554305e47072c7db7765298fd62b2af Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 15 Sep 2022 14:28:14 +0000 Subject: [PATCH 2061/3441] chore(main): release 2.16.1 (#2275) :robot: I have created a release *beep* *boop* --- ## [2.16.1](https://github.com/googleapis/java-bigquery/compare/v2.16.0...v2.16.1) (2022-09-15) ### Dependencies * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.3 ([#2274](https://github.com/googleapis/java-bigquery/issues/2274)) ([4c9952b](https://github.com/googleapis/java-bigquery/commit/4c9952b4f8bc81a66f2a43ecbb9fa85774ed8a93)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 12c388f6a60f..d3c6eb5732b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.16.1](https://github.com/googleapis/java-bigquery/compare/v2.16.0...v2.16.1) (2022-09-15) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.3 ([#2274](https://github.com/googleapis/java-bigquery/issues/2274)) ([4c9952b](https://github.com/googleapis/java-bigquery/commit/4c9952b4f8bc81a66f2a43ecbb9fa85774ed8a93)) + ## [2.16.0](https://github.com/googleapis/java-bigquery/compare/v2.15.0...v2.16.0) (2022-09-12) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 520747a1ad32..1c16d8171335 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.16.1-SNAPSHOT + 2.16.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f5e19bc059f6..c99cb8f3582b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.16.1-SNAPSHOT + 2.16.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.16.1-SNAPSHOT + 2.16.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9303114f5019..df4693957b0d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.16.1-SNAPSHOT + 2.16.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.16.1-SNAPSHOT + 2.16.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 83cda01d7109..f782944ad337 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.16.1-SNAPSHOT + 2.16.1 diff --git a/versions.txt b/versions.txt index b75e91690310..6258721f77e3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.16.0:2.16.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.16.1:2.16.1 \ No newline at end of file From cfb8ec8a0d27f977ad5219d521259452ae82ece8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 15 Sep 2022 14:58:16 +0000 Subject: [PATCH 2062/3441] chore(main): release 2.16.2-SNAPSHOT (#2276) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1c16d8171335..6d5c4198051f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.16.1 + 2.16.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c99cb8f3582b..8c1c8fa420d7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.16.1 + 2.16.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.16.1 + 2.16.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index df4693957b0d..b58ea428f98f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.16.1 + 2.16.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.16.1 + 2.16.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f782944ad337..ebf31253dbf2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.16.1 + 2.16.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 6258721f77e3..4ce606254a22 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.16.1:2.16.1 \ No newline at end of file +google-cloud-bigquery:2.16.1:2.16.2-SNAPSHOT \ No newline at end of file From ecb22ad203355adb7e3041d314dd3308bc472b02 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 15 Sep 2022 17:31:27 +0200 Subject: [PATCH 2063/3441] build(deps): update dependency org.apache.maven.plugins:maven-shade-plugin to v3.4.0 (#2273) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 6d5c4198051f..2630afedd17f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -42,7 +42,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.3.0 + 3.4.0 package From 3db6b05a937488cf7cb8ba7fe4906336a093e331 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 15 Sep 2022 18:18:41 +0200 Subject: [PATCH 2064/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.16.1 (#2277) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.16.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c2a0a89f9103..36c8474ddeea 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.16.0 + 2.16.1 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.16.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.16.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.16.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.16.1" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7efddf86667c..49a66040af3f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.16.0 + 2.16.1 From d659efe2618030d4ad23069b65a717c5bba0d5bb Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 20 Sep 2022 08:06:20 +0200 Subject: [PATCH 2065/3441] deps: update cloud client dependencies (#2278) --- pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index b58ea428f98f..87fa2e6278f6 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.20.1 + 2.21.0 pom import @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.9.3 + 1.9.4 pom import @@ -104,7 +104,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.9.3 + 1.9.4 pom import @@ -176,7 +176,7 @@ com.google.cloud google-cloud-storage - 2.11.3 + 2.12.0 test From 65afbffd66048828563fa691c66e08606637dd31 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 20 Sep 2022 08:07:04 +0200 Subject: [PATCH 2066/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.5.3 (#2280) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 49a66040af3f..2fb704bf7a26 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.2 + 2.5.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ebf31253dbf2..db36f12b3470 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.2 + 2.5.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ce0a357679b8..b79682d267b3 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.2 + 2.5.3 test From e613c936be4980b26c19f503a7aaa11e733b9da1 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 20 Sep 2022 17:44:17 +0200 Subject: [PATCH 2067/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.1.2 (#2281) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/googleapis/java-cloud-bom)) | `26.1.1` -> `26.1.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.2/compatibility-slim/26.1.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.2/confidence-slim/26.1.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 36c8474ddeea..40e670c76c85 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.1.1 + 26.1.2 pom import @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.1.1') +implementation platform('com.google.cloud:libraries-bom:26.1.2') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index a181739e0290..f0331016ee21 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.1.1 + 26.1.2 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index b79682d267b3..50a3a5121665 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.1.1 + 26.1.2 pom import From 7d3852e7ee1db79d602a526655e19ff1c063102d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 20 Sep 2022 19:08:42 +0200 Subject: [PATCH 2068/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.5.4 (#2284) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2fb704bf7a26..e4f2d09c6943 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.3 + 2.5.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index db36f12b3470..62ab9ad226cc 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.3 + 2.5.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 50a3a5121665..e514ef6c5a40 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.3 + 2.5.4 test From 1e3a3009e51c833e0190791015ac9b85de0e470f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 20 Sep 2022 19:32:17 +0200 Subject: [PATCH 2069/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.12.0 (#2279) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.11.2` -> `2.12.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.12.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.12.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.12.0/compatibility-slim/2.11.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.12.0/confidence-slim/2.11.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.12.0`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​2120-httpsgithubcomgoogleapisjava-bigtablecomparev2112v2120-2022-09-15) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.11.2...v2.12.0) ##### Features - **generated:** Publish CBT deletion_protection field in Table, UpdateTableRequest, and UpdateTable API ([f1f3f05](https://togithub.com/googleapis/java-bigtable/commit/f1f3f05ae2dc84a8dc853eb5467fbd157b7293c3)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-monitoring-bom to v3.4.3 ([#​1386](https://togithub.com/googleapis/java-bigtable/issues/1386)) ([f460373](https://togithub.com/googleapis/java-bigtable/commit/f460373eb74776fae1787b74392b508643e6139f)) - Update dependency com.google.cloud:google-cloud-monitoring-bom to v3.4.3 ([#​1387](https://togithub.com/googleapis/java-bigtable/issues/1387)) ([e339cb1](https://togithub.com/googleapis/java-bigtable/commit/e339cb186289fa53a0d65c3d77fb7edbae737882)) - Update dependency com.google.cloud:google-cloud-monitoring-bom to v3.4.4 ([#​1395](https://togithub.com/googleapis/java-bigtable/issues/1395)) ([a2db183](https://togithub.com/googleapis/java-bigtable/commit/a2db183dea46cd83ea70bb89848e0579b9c61fac)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#​1384](https://togithub.com/googleapis/java-bigtable/issues/1384)) ([ee3b256](https://togithub.com/googleapis/java-bigtable/commit/ee3b256a62c2665e2c4230d9acfc14c3d5c2aebf)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.3 ([#​1393](https://togithub.com/googleapis/java-bigtable/issues/1393)) ([df6c6c7](https://togithub.com/googleapis/java-bigtable/commit/df6c6c79715ecc7b99e026ce8dfa8645765fc9d5))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e4f2d09c6943..7dc323091377 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.11.2 + 2.12.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 62ab9ad226cc..78d8b7bf76f5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.11.2 + 2.12.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e514ef6c5a40..9fc97ffc1f73 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.11.2 + 2.12.0 test From 65fac188db2514ae620fb5146055591cfe6ac995 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 21 Sep 2022 16:22:22 +0200 Subject: [PATCH 2070/3441] deps: update dependency org.junit.vintage:junit-vintage-engine to v5.9.1 (#2285) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.junit.vintage:junit-vintage-engine](https://junit.org/junit5/) ([source](https://togithub.com/junit-team/junit5)) | `5.9.0` -> `5.9.1` | [![age](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.1/compatibility-slim/5.9.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.1/confidence-slim/5.9.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index f0331016ee21..ef8404d5a7ec 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ org.junit.vintage junit-vintage-engine - 5.9.0 + 5.9.1 test From fa331844dc1862120867d73ad87d87587a388576 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 22 Sep 2022 18:04:38 +0200 Subject: [PATCH 2071/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220913-2.0.0 (#2287) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20220827-2.0.0` -> `v2-rev20220913-2.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220913-2.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220913-2.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220913-2.0.0/compatibility-slim/v2-rev20220827-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220913-2.0.0/confidence-slim/v2-rev20220827-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 87fa2e6278f6..8458ba87240a 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220827-2.0.0 + v2-rev20220913-2.0.0 3.0.3 9.0.0
    From 959519cd9e5910ba7d93cce00c318ed322dcaf23 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 22 Sep 2022 18:08:18 +0200 Subject: [PATCH 2072/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.14 (#2288) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.graalvm.buildtools:junit-platform-native](https://togithub.com/graalvm/native-build-tools) | `0.9.13` -> `0.9.14` | [![age](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.14/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.14/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.14/compatibility-slim/0.9.13)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.14/confidence-slim/0.9.13)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    graalvm/native-build-tools ### [`v0.9.14`](https://togithub.com/graalvm/native-build-tools/releases/tag/0.9.14) [Compare Source](https://togithub.com/graalvm/native-build-tools/compare/0.9.13...0.9.14) #### What's Changed Read what's new in the [documentation](https://graalvm.github.io/native-build-tools/latest/index.html#changelog). - Fix how the GRAALVM_QUICK_BUILD env var is read by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/278](https://togithub.com/graalvm/native-build-tools/pull/278) - Make it possible to pass env vars to the builder process by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/280](https://togithub.com/graalvm/native-build-tools/pull/280) - Maven plugin fixes by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/274](https://togithub.com/graalvm/native-build-tools/pull/274) - Add support for `test-jar` artifacts by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/281](https://togithub.com/graalvm/native-build-tools/pull/281) - Add Gradle CLI options for quick build and debugging by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/286](https://togithub.com/graalvm/native-build-tools/pull/286) - Add a changelog and docs about build -> compile-no-fork changes by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/290](https://togithub.com/graalvm/native-build-tools/pull/290) - Do not filter out entry values starting with `java.` in the metadata post-processing action by [@​gradinac](https://togithub.com/gradinac) in [https://github.com/graalvm/native-build-tools/pull/289](https://togithub.com/graalvm/native-build-tools/pull/289) - Try to fix snapshot publishing by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/244](https://togithub.com/graalvm/native-build-tools/pull/244) - Fix javadoc and warnings by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/291](https://togithub.com/graalvm/native-build-tools/pull/291) - Bump the default metadata repository version to 0.1.2 by [@​gradinac](https://togithub.com/gradinac) in [https://github.com/graalvm/native-build-tools/pull/294](https://togithub.com/graalvm/native-build-tools/pull/294) - Fix metadata repository crash by [@​dnestoro](https://togithub.com/dnestoro) in [https://github.com/graalvm/native-build-tools/pull/295](https://togithub.com/graalvm/native-build-tools/pull/295) - Add support for override flag by [@​sdeleuze](https://togithub.com/sdeleuze) in [https://github.com/graalvm/native-build-tools/pull/296](https://togithub.com/graalvm/native-build-tools/pull/296) - Fix build time initialization error with JUnit 5.9.0 by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/308](https://togithub.com/graalvm/native-build-tools/pull/308) - Fix compatibility with configuration cache by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/304](https://togithub.com/graalvm/native-build-tools/pull/304) - Bump metadata repository version by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/310](https://togithub.com/graalvm/native-build-tools/pull/310) #### New Contributors - [@​dnestoro](https://togithub.com/dnestoro) made their first contribution in [https://github.com/graalvm/native-build-tools/pull/295](https://togithub.com/graalvm/native-build-tools/pull/295) **Full Changelog**: https://github.com/graalvm/native-build-tools/compare/0.9.13...0.9.14
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index ef8404d5a7ec..1daeb21e5741 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.13 + 0.9.14 test From 28dd4e86182a4c8a1db9f9015dcdc7256e5b0b5a Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 26 Sep 2022 21:50:35 +0000 Subject: [PATCH 2073/3441] chore: exclude requirements.txt file from renovate-bot (#1594) (#2293) Source-Link: https://github.com/googleapis/synthtool/commit/f58d3135a2fab20e225d98741dbc06d57459b816 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:f14e3fefe8e361e85752bd9890c8e56f2fe25f1e89cbb9597e4e3c7a429203a3 --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/release/publish_javadoc.sh | 2 +- .kokoro/release/publish_javadoc11.sh | 2 +- .kokoro/release/stage.sh | 3 +- .kokoro/requirements.in | 31 ++ .kokoro/requirements.txt | 452 +++++++++++++++++++++++++++ 6 files changed, 488 insertions(+), 4 deletions(-) create mode 100644 .kokoro/requirements.in create mode 100644 .kokoro/requirements.txt diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 6259292301cb..42327db5e2e3 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:8175681a918181d306d9c370d3262f16b4c724cc73d74111b7d42fc985ca7f93 + digest: sha256:f14e3fefe8e361e85752bd9890c8e56f2fe25f1e89cbb9597e4e3c7a429203a3 diff --git a/.kokoro/release/publish_javadoc.sh b/.kokoro/release/publish_javadoc.sh index 2acd135afe40..5d8cd8beecca 100755 --- a/.kokoro/release/publish_javadoc.sh +++ b/.kokoro/release/publish_javadoc.sh @@ -28,7 +28,7 @@ fi pushd $(dirname "$0")/../../ # install docuploader package -python3 -m pip install gcp-docuploader +python3 -m pip install --require-hashes -r .kokoro/requirements.txt # compile all packages mvn clean install -B -q -DskipTests=true diff --git a/.kokoro/release/publish_javadoc11.sh b/.kokoro/release/publish_javadoc11.sh index aab97234559a..b65cd03b6b09 100755 --- a/.kokoro/release/publish_javadoc11.sh +++ b/.kokoro/release/publish_javadoc11.sh @@ -28,7 +28,7 @@ fi pushd $(dirname "$0")/../../ # install docuploader package -python3 -m pip install gcp-docuploader +python3 -m pip install --require-hashes -r .kokoro/requirements.txt # compile all packages mvn clean install -B -q -DskipTests=true diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh index 1dba8de10857..61e714d6ba56 100755 --- a/.kokoro/release/stage.sh +++ b/.kokoro/release/stage.sh @@ -16,7 +16,8 @@ set -eo pipefail # Start the releasetool reporter -python3 -m pip install gcp-releasetool +requirementsFile=$(realpath $(dirname "${BASH_SOURCE[0]}")/../requirements.txt) +python3 -m pip install --require-hashes -r $requirementsFile python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script source $(dirname "$0")/common.sh diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in new file mode 100644 index 000000000000..cfdc2e7ed955 --- /dev/null +++ b/.kokoro/requirements.in @@ -0,0 +1,31 @@ +gcp-docuploader==0.6.3 +google-crc32c==1.3.0 +googleapis-common-protos==1.56.3 +gcp-releasetool==1.8.7 +cachetools==4.2.4 +cffi==1.15.1 +jeepney==0.7.1 +jinja2==3.0.3 +markupsafe==2.0.1 +keyring==23.4.1 +packaging==21.3 +protobuf==3.19.5 +pyjwt==2.4.0 +pyparsing==3.0.9 +pycparser==2.21 +pyperclip==1.8.2 +python-dateutil==2.8.2 +requests==2.27.1 +importlib-metadata==4.8.3 +zipp==3.6.0 +google_api_core==2.8.2 +google-cloud-storage==2.0.0 +google-cloud-core==2.3.1 +typing-extensions==4.1.1 +urllib3==1.26.12 +zipp==3.6.0 +rsa==4.9 +six==1.16.0 +attrs==22.1.0 +google-auth==2.11.0 +idna==3.4 \ No newline at end of file diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt new file mode 100644 index 000000000000..170f1c63abb7 --- /dev/null +++ b/.kokoro/requirements.txt @@ -0,0 +1,452 @@ +# +# This file is autogenerated by pip-compile with python 3.10 +# To update, run: +# +# pip-compile --allow-unsafe --generate-hashes requirements.in +# +attrs==22.1.0 \ + --hash=sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6 \ + --hash=sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c + # via + # -r requirements.in + # gcp-releasetool +cachetools==4.2.4 \ + --hash=sha256:89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693 \ + --hash=sha256:92971d3cb7d2a97efff7c7bb1657f21a8f5fb309a37530537c71b1774189f2d1 + # via + # -r requirements.in + # google-auth +certifi==2022.9.14 \ + --hash=sha256:36973885b9542e6bd01dea287b2b4b3b21236307c56324fcc3f1160f2d655ed5 \ + --hash=sha256:e232343de1ab72c2aa521b625c80f699e356830fd0e2c620b465b304b17b0516 + # via requests +cffi==1.15.1 \ + --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ + --hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \ + --hash=sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104 \ + --hash=sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426 \ + --hash=sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405 \ + --hash=sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375 \ + --hash=sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a \ + --hash=sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e \ + --hash=sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc \ + --hash=sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf \ + --hash=sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185 \ + --hash=sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497 \ + --hash=sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3 \ + --hash=sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35 \ + --hash=sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c \ + --hash=sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83 \ + --hash=sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21 \ + --hash=sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca \ + --hash=sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984 \ + --hash=sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac \ + --hash=sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd \ + --hash=sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee \ + --hash=sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a \ + --hash=sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2 \ + --hash=sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192 \ + --hash=sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7 \ + --hash=sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585 \ + --hash=sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f \ + --hash=sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e \ + --hash=sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27 \ + --hash=sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b \ + --hash=sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e \ + --hash=sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e \ + --hash=sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d \ + --hash=sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c \ + --hash=sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415 \ + --hash=sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82 \ + --hash=sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02 \ + --hash=sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314 \ + --hash=sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325 \ + --hash=sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c \ + --hash=sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3 \ + --hash=sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914 \ + --hash=sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045 \ + --hash=sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d \ + --hash=sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9 \ + --hash=sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5 \ + --hash=sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2 \ + --hash=sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c \ + --hash=sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3 \ + --hash=sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2 \ + --hash=sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8 \ + --hash=sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d \ + --hash=sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d \ + --hash=sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9 \ + --hash=sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162 \ + --hash=sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76 \ + --hash=sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4 \ + --hash=sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e \ + --hash=sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9 \ + --hash=sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6 \ + --hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \ + --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \ + --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0 + # via + # -r requirements.in + # cryptography +charset-normalizer==2.0.12 \ + --hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \ + --hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df + # via requests +click==8.0.4 \ + --hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \ + --hash=sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb + # via + # gcp-docuploader + # gcp-releasetool +colorlog==6.7.0 \ + --hash=sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662 \ + --hash=sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5 + # via gcp-docuploader +cryptography==38.0.1 \ + --hash=sha256:0297ffc478bdd237f5ca3a7dc96fc0d315670bfa099c04dc3a4a2172008a405a \ + --hash=sha256:10d1f29d6292fc95acb597bacefd5b9e812099d75a6469004fd38ba5471a977f \ + --hash=sha256:16fa61e7481f4b77ef53991075de29fc5bacb582a1244046d2e8b4bb72ef66d0 \ + --hash=sha256:194044c6b89a2f9f169df475cc167f6157eb9151cc69af8a2a163481d45cc407 \ + --hash=sha256:1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7 \ + --hash=sha256:3261725c0ef84e7592597606f6583385fed2a5ec3909f43bc475ade9729a41d6 \ + --hash=sha256:3b72c360427889b40f36dc214630e688c2fe03e16c162ef0aa41da7ab1455153 \ + --hash=sha256:3e3a2599e640927089f932295a9a247fc40a5bdf69b0484532f530471a382750 \ + --hash=sha256:3fc26e22840b77326a764ceb5f02ca2d342305fba08f002a8c1f139540cdfaad \ + --hash=sha256:5067ee7f2bce36b11d0e334abcd1ccf8c541fc0bbdaf57cdd511fdee53e879b6 \ + --hash=sha256:52e7bee800ec869b4031093875279f1ff2ed12c1e2f74923e8f49c916afd1d3b \ + --hash=sha256:64760ba5331e3f1794d0bcaabc0d0c39e8c60bf67d09c93dc0e54189dfd7cfe5 \ + --hash=sha256:765fa194a0f3372d83005ab83ab35d7c5526c4e22951e46059b8ac678b44fa5a \ + --hash=sha256:79473cf8a5cbc471979bd9378c9f425384980fcf2ab6534b18ed7d0d9843987d \ + --hash=sha256:896dd3a66959d3a5ddcfc140a53391f69ff1e8f25d93f0e2e7830c6de90ceb9d \ + --hash=sha256:89ed49784ba88c221756ff4d4755dbc03b3c8d2c5103f6d6b4f83a0fb1e85294 \ + --hash=sha256:ac7e48f7e7261207d750fa7e55eac2d45f720027d5703cd9007e9b37bbb59ac0 \ + --hash=sha256:ad7353f6ddf285aeadfaf79e5a6829110106ff8189391704c1d8801aa0bae45a \ + --hash=sha256:b0163a849b6f315bf52815e238bc2b2346604413fa7c1601eea84bcddb5fb9ac \ + --hash=sha256:b6c9b706316d7b5a137c35e14f4103e2115b088c412140fdbd5f87c73284df61 \ + --hash=sha256:c2e5856248a416767322c8668ef1845ad46ee62629266f84a8f007a317141013 \ + --hash=sha256:ca9f6784ea96b55ff41708b92c3f6aeaebde4c560308e5fbbd3173fbc466e94e \ + --hash=sha256:d1a5bd52d684e49a36582193e0b89ff267704cd4025abefb9e26803adeb3e5fb \ + --hash=sha256:d3971e2749a723e9084dd507584e2a2761f78ad2c638aa31e80bc7a15c9db4f9 \ + --hash=sha256:d4ef6cc305394ed669d4d9eebf10d3a101059bdcf2669c366ec1d14e4fb227bd \ + --hash=sha256:d9e69ae01f99abe6ad646947bba8941e896cb3aa805be2597a0400e0764b5818 + # via + # gcp-releasetool + # secretstorage +gcp-docuploader==0.6.3 \ + --hash=sha256:ba8c9d76b3bbac54b0311c503a373b00edc2dc02d6d54ea9507045adb8e870f7 \ + --hash=sha256:c0f5aaa82ce1854a386197e4e359b120ad6d4e57ae2c812fce42219a3288026b + # via -r requirements.in +gcp-releasetool==1.8.7 \ + --hash=sha256:3d2a67c9db39322194afb3b427e9cb0476ce8f2a04033695f0aeb63979fc2b37 \ + --hash=sha256:5e4d28f66e90780d77f3ecf1e9155852b0c3b13cbccb08ab07e66b2357c8da8d + # via -r requirements.in +google-api-core==2.8.2 \ + --hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \ + --hash=sha256:93c6a91ccac79079ac6bbf8b74ee75db970cc899278b97d53bc012f35908cf50 + # via + # -r requirements.in + # google-cloud-core + # google-cloud-storage +google-auth==2.11.0 \ + --hash=sha256:be62acaae38d0049c21ca90f27a23847245c9f161ff54ede13af2cb6afecbac9 \ + --hash=sha256:ed65ecf9f681832298e29328e1ef0a3676e3732b2e56f41532d45f70a22de0fb + # via + # -r requirements.in + # gcp-releasetool + # google-api-core + # google-cloud-core + # google-cloud-storage +google-cloud-core==2.3.1 \ + --hash=sha256:113ba4f492467d5bd442c8d724c1a25ad7384045c3178369038840ecdd19346c \ + --hash=sha256:34334359cb04187bdc80ddcf613e462dfd7a3aabbc3fe4d118517ab4b9303d53 + # via + # -r requirements.in + # google-cloud-storage +google-cloud-storage==2.0.0 \ + --hash=sha256:a57a15aead0f9dfbd4381f1bfdbe8bf89818a4bd75bab846cafcefb2db846c47 \ + --hash=sha256:ec4be60bb223a3a960f0d01697d849b86d91cad815a84915a32ed3635e93a5e7 + # via + # -r requirements.in + # gcp-docuploader +google-crc32c==1.3.0 \ + --hash=sha256:04e7c220798a72fd0f08242bc8d7a05986b2a08a0573396187fd32c1dcdd58b3 \ + --hash=sha256:05340b60bf05b574159e9bd940152a47d38af3fb43803ffe71f11d704b7696a6 \ + --hash=sha256:12674a4c3b56b706153a358eaa1018c4137a5a04635b92b4652440d3d7386206 \ + --hash=sha256:127f9cc3ac41b6a859bd9dc4321097b1a4f6aa7fdf71b4f9227b9e3ebffb4422 \ + --hash=sha256:13af315c3a0eec8bb8b8d80b8b128cb3fcd17d7e4edafc39647846345a3f003a \ + --hash=sha256:1926fd8de0acb9d15ee757175ce7242e235482a783cd4ec711cc999fc103c24e \ + --hash=sha256:226f2f9b8e128a6ca6a9af9b9e8384f7b53a801907425c9a292553a3a7218ce0 \ + --hash=sha256:276de6273eb074a35bc598f8efbc00c7869c5cf2e29c90748fccc8c898c244df \ + --hash=sha256:318f73f5484b5671f0c7f5f63741ab020a599504ed81d209b5c7129ee4667407 \ + --hash=sha256:3bbce1be3687bbfebe29abdb7631b83e6b25da3f4e1856a1611eb21854b689ea \ + --hash=sha256:42ae4781333e331a1743445931b08ebdad73e188fd554259e772556fc4937c48 \ + --hash=sha256:58be56ae0529c664cc04a9c76e68bb92b091e0194d6e3c50bea7e0f266f73713 \ + --hash=sha256:5da2c81575cc3ccf05d9830f9e8d3c70954819ca9a63828210498c0774fda1a3 \ + --hash=sha256:6311853aa2bba4064d0c28ca54e7b50c4d48e3de04f6770f6c60ebda1e975267 \ + --hash=sha256:650e2917660e696041ab3dcd7abac160b4121cd9a484c08406f24c5964099829 \ + --hash=sha256:6a4db36f9721fdf391646685ecffa404eb986cbe007a3289499020daf72e88a2 \ + --hash=sha256:779cbf1ce375b96111db98fca913c1f5ec11b1d870e529b1dc7354b2681a8c3a \ + --hash=sha256:7f6fe42536d9dcd3e2ffb9d3053f5d05221ae3bbcefbe472bdf2c71c793e3183 \ + --hash=sha256:891f712ce54e0d631370e1f4997b3f182f3368179198efc30d477c75d1f44942 \ + --hash=sha256:95c68a4b9b7828ba0428f8f7e3109c5d476ca44996ed9a5f8aac6269296e2d59 \ + --hash=sha256:96a8918a78d5d64e07c8ea4ed2bc44354e3f93f46a4866a40e8db934e4c0d74b \ + --hash=sha256:9c3cf890c3c0ecfe1510a452a165431b5831e24160c5fcf2071f0f85ca5a47cd \ + --hash=sha256:9f58099ad7affc0754ae42e6d87443299f15d739b0ce03c76f515153a5cda06c \ + --hash=sha256:a0b9e622c3b2b8d0ce32f77eba617ab0d6768b82836391e4f8f9e2074582bf02 \ + --hash=sha256:a7f9cbea4245ee36190f85fe1814e2d7b1e5f2186381b082f5d59f99b7f11328 \ + --hash=sha256:bab4aebd525218bab4ee615786c4581952eadc16b1ff031813a2fd51f0cc7b08 \ + --hash=sha256:c124b8c8779bf2d35d9b721e52d4adb41c9bfbde45e6a3f25f0820caa9aba73f \ + --hash=sha256:c9da0a39b53d2fab3e5467329ed50e951eb91386e9d0d5b12daf593973c3b168 \ + --hash=sha256:ca60076c388728d3b6ac3846842474f4250c91efbfe5afa872d3ffd69dd4b318 \ + --hash=sha256:cb6994fff247987c66a8a4e550ef374671c2b82e3c0d2115e689d21e511a652d \ + --hash=sha256:d1c1d6236feab51200272d79b3d3e0f12cf2cbb12b208c835b175a21efdb0a73 \ + --hash=sha256:dd7760a88a8d3d705ff562aa93f8445ead54f58fd482e4f9e2bafb7e177375d4 \ + --hash=sha256:dda4d8a3bb0b50f540f6ff4b6033f3a74e8bf0bd5320b70fab2c03e512a62812 \ + --hash=sha256:e0f1ff55dde0ebcfbef027edc21f71c205845585fffe30d4ec4979416613e9b3 \ + --hash=sha256:e7a539b9be7b9c00f11ef16b55486141bc2cdb0c54762f84e3c6fc091917436d \ + --hash=sha256:eb0b14523758e37802f27b7f8cd973f5f3d33be7613952c0df904b68c4842f0e \ + --hash=sha256:ed447680ff21c14aaceb6a9f99a5f639f583ccfe4ce1a5e1d48eb41c3d6b3217 \ + --hash=sha256:f52a4ad2568314ee713715b1e2d79ab55fab11e8b304fd1462ff5cccf4264b3e \ + --hash=sha256:fbd60c6aaa07c31d7754edbc2334aef50601b7f1ada67a96eb1eb57c7c72378f \ + --hash=sha256:fc28e0db232c62ca0c3600884933178f0825c99be4474cdd645e378a10588125 \ + --hash=sha256:fe31de3002e7b08eb20823b3735b97c86c5926dd0581c7710a680b418a8709d4 \ + --hash=sha256:fec221a051150eeddfdfcff162e6db92c65ecf46cb0f7bb1bf812a1520ec026b \ + --hash=sha256:ff71073ebf0e42258a42a0b34f2c09ec384977e7f6808999102eedd5b49920e3 + # via + # -r requirements.in + # google-resumable-media +google-resumable-media==2.3.3 \ + --hash=sha256:27c52620bd364d1c8116eaac4ea2afcbfb81ae9139fb3199652fcac1724bfb6c \ + --hash=sha256:5b52774ea7a829a8cdaa8bd2d4c3d4bc660c91b30857ab2668d0eb830f4ea8c5 + # via google-cloud-storage +googleapis-common-protos==1.56.3 \ + --hash=sha256:6f1369b58ed6cf3a4b7054a44ebe8d03b29c309257583a2bbdc064cd1e4a1442 \ + --hash=sha256:87955d7b3a73e6e803f2572a33179de23989ebba725e05ea42f24838b792e461 + # via + # -r requirements.in + # google-api-core +idna==3.4 \ + --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ + --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 + # via + # -r requirements.in + # requests +importlib-metadata==4.8.3 \ + --hash=sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e \ + --hash=sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668 + # via + # -r requirements.in + # keyring +jeepney==0.7.1 \ + --hash=sha256:1b5a0ea5c0e7b166b2f5895b91a08c14de8915afda4407fb5022a195224958ac \ + --hash=sha256:fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f + # via + # -r requirements.in + # keyring + # secretstorage +jinja2==3.0.3 \ + --hash=sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8 \ + --hash=sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7 + # via + # -r requirements.in + # gcp-releasetool +keyring==23.4.1 \ + --hash=sha256:17e49fb0d6883c2b4445359434dba95aad84aabb29bbff044ad0ed7100232eca \ + --hash=sha256:89cbd74d4683ed164c8082fb38619341097741323b3786905c6dac04d6915a55 + # via + # -r requirements.in + # gcp-releasetool +markupsafe==2.0.1 \ + --hash=sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298 \ + --hash=sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64 \ + --hash=sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b \ + --hash=sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194 \ + --hash=sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567 \ + --hash=sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff \ + --hash=sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724 \ + --hash=sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74 \ + --hash=sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646 \ + --hash=sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35 \ + --hash=sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6 \ + --hash=sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a \ + --hash=sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6 \ + --hash=sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad \ + --hash=sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26 \ + --hash=sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38 \ + --hash=sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac \ + --hash=sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7 \ + --hash=sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6 \ + --hash=sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047 \ + --hash=sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75 \ + --hash=sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f \ + --hash=sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b \ + --hash=sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135 \ + --hash=sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8 \ + --hash=sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a \ + --hash=sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a \ + --hash=sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1 \ + --hash=sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9 \ + --hash=sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864 \ + --hash=sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914 \ + --hash=sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee \ + --hash=sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f \ + --hash=sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18 \ + --hash=sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8 \ + --hash=sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2 \ + --hash=sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d \ + --hash=sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b \ + --hash=sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b \ + --hash=sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86 \ + --hash=sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6 \ + --hash=sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f \ + --hash=sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb \ + --hash=sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833 \ + --hash=sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28 \ + --hash=sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e \ + --hash=sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415 \ + --hash=sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902 \ + --hash=sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f \ + --hash=sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d \ + --hash=sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9 \ + --hash=sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d \ + --hash=sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145 \ + --hash=sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066 \ + --hash=sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c \ + --hash=sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1 \ + --hash=sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a \ + --hash=sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207 \ + --hash=sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f \ + --hash=sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53 \ + --hash=sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd \ + --hash=sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134 \ + --hash=sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85 \ + --hash=sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9 \ + --hash=sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5 \ + --hash=sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94 \ + --hash=sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509 \ + --hash=sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51 \ + --hash=sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872 + # via + # -r requirements.in + # jinja2 +packaging==21.3 \ + --hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \ + --hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522 + # via + # -r requirements.in + # gcp-releasetool +protobuf==3.19.5 \ + --hash=sha256:1867f93b06a183f87696871bb8d1e99ee71dbb69d468ce1f0cc8bf3d30f982f3 \ + --hash=sha256:3c4160b601220627f7e91154e572baf5e161a9c3f445a8242d536ee3d0b7b17c \ + --hash=sha256:4ee2af7051d3b10c8a4fe6fd1a2c69f201fea36aeee7086cf202a692e1b99ee1 \ + --hash=sha256:5266c36cc0af3bb3dbf44f199d225b33da66a9a5c3bdc2b14865ad10eddf0e37 \ + --hash=sha256:5470f892961af464ae6eaf0f3099e2c1190ae8c7f36f174b89491281341f79ca \ + --hash=sha256:66d14b5b90090353efe75c9fb1bf65ef7267383034688d255b500822e37d5c2f \ + --hash=sha256:67efb5d20618020aa9596e17bfc37ca068c28ec0c1507d9507f73c93d46c9855 \ + --hash=sha256:696e6cfab94cc15a14946f2bf72719dced087d437adbd994fff34f38986628bc \ + --hash=sha256:6a02172b9650f819d01fb8e224fc69b0706458fc1ab4f1c669281243c71c1a5e \ + --hash=sha256:6eca9ae238ba615d702387a2ddea635d535d769994a9968c09a4ca920c487ab9 \ + --hash=sha256:950abd6c00e7b51f87ae8b18a0ce4d69fea217f62f171426e77de5061f6d9850 \ + --hash=sha256:9e1d74032f56ff25f417cfe84c8147047732e5059137ca42efad20cbbd25f5e0 \ + --hash=sha256:9e42b1cf2ecd8a1bd161239e693f22035ba99905ae6d7efeac8a0546c7ec1a27 \ + --hash=sha256:9f957ef53e872d58a0afd3bf6d80d48535d28c99b40e75e6634cbc33ea42fd54 \ + --hash=sha256:a89aa0c042e61e11ade320b802d6db4ee5391d8d973e46d3a48172c1597789f8 \ + --hash=sha256:c0f80876a8ff0ae7064084ed094eb86497bd5a3812e6fc96a05318b92301674e \ + --hash=sha256:c44e3282cff74ad18c7e8a0375f407f69ee50c2116364b44492a196293e08b21 \ + --hash=sha256:d249519ba5ecf5dd6b18150c9b6bcde510b273714b696f3923ff8308fc11ae49 \ + --hash=sha256:d3973a2d58aefc7d1230725c2447ce7f86a71cbc094b86a77c6ee1505ac7cdb1 \ + --hash=sha256:dca2284378a5f2a86ffed35c6ac147d14c48b525eefcd1083e5a9ce28dfa8657 \ + --hash=sha256:e63b0b3c42e51c94add62b010366cd4979cb6d5f06158bcae8faac4c294f91e1 \ + --hash=sha256:f2b599a21c9a32e171ec29a2ac54e03297736c578698e11b099d031f79da114b \ + --hash=sha256:f2bde37667b18c2b5280df83bc799204394a5d2d774e4deaf9de0eb741df6833 \ + --hash=sha256:f4f909f4dde413dec435a44b0894956d55bb928ded7d6e3c726556ca4c796e84 \ + --hash=sha256:f976234e20ab2785f54224bcdafa027674e23663b132fa3ca0caa291a6cfbde7 \ + --hash=sha256:f9cebda093c2f6bfed88f1c17cdade09d4d96096421b344026feee236532d4de + # via + # -r requirements.in + # gcp-docuploader + # gcp-releasetool + # google-api-core + # google-cloud-storage + # googleapis-common-protos +pyasn1==0.4.8 \ + --hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \ + --hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba + # via + # pyasn1-modules + # rsa +pyasn1-modules==0.2.8 \ + --hash=sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e \ + --hash=sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74 + # via google-auth +pycparser==2.21 \ + --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ + --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 + # via + # -r requirements.in + # cffi +pyjwt==2.4.0 \ + --hash=sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf \ + --hash=sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba + # via + # -r requirements.in + # gcp-releasetool +pyparsing==3.0.9 \ + --hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \ + --hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc + # via + # -r requirements.in + # packaging +pyperclip==1.8.2 \ + --hash=sha256:105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57 + # via + # -r requirements.in + # gcp-releasetool +python-dateutil==2.8.2 \ + --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ + --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 + # via + # -r requirements.in + # gcp-releasetool +requests==2.27.1 \ + --hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \ + --hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d + # via + # -r requirements.in + # gcp-releasetool + # google-api-core + # google-cloud-storage +rsa==4.9 \ + --hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 \ + --hash=sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21 + # via + # -r requirements.in + # google-auth +secretstorage==3.3.3 \ + --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \ + --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 + # via keyring +six==1.16.0 \ + --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ + --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 + # via + # -r requirements.in + # gcp-docuploader + # google-auth + # python-dateutil +typing-extensions==4.1.1 \ + --hash=sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42 \ + --hash=sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2 + # via -r requirements.in +urllib3==1.26.12 \ + --hash=sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e \ + --hash=sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997 + # via + # -r requirements.in + # requests +zipp==3.6.0 \ + --hash=sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832 \ + --hash=sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc + # via + # -r requirements.in + # importlib-metadata From d30670ee2edf498b0335f3dfdec3487f5627a9f3 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Mon, 26 Sep 2022 18:34:19 -0400 Subject: [PATCH 2074/3441] feat: add remote function options to routine metadata (#2291) --- .kokoro/build.sh | 12 +- .../clirr-ignored-differences.xml | 5 + google-cloud-bigquery/pom.xml | 7 +- .../cloud/bigquery/RemoteFunctionOptions.java | 139 ++++++++++++++++++ .../com/google/cloud/bigquery/Routine.java | 6 + .../google/cloud/bigquery/RoutineInfo.java | 34 ++++- .../bigquery/RemoteFunctionOptionsTest.java | 73 +++++++++ .../google/cloud/bigquery/RoutineTest.java | 19 +++ .../cloud/bigquery/it/ITRemoteUDFTest.java | 129 ++++++++++++++++ pom.xml | 12 ++ 10 files changed, 428 insertions(+), 8 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RemoteFunctionOptions.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RemoteFunctionOptionsTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 6ede96a218f5..0c26eec01af3 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -61,7 +61,7 @@ javadoc) integration) mvn -B ${INTEGRATION_TEST_ARGS} \ -ntp \ - -Dtest=ITBigQueryTest \ + -Dtest=ITBigQueryTest,ITRemoteUDFTest \ -DtrimStackTrace=false \ -Dclirr.skip=true \ -Denforcer.skip=true \ @@ -72,7 +72,7 @@ integration) nightly-it) mvn -B ${INTEGRATION_TEST_ARGS} \ -ntp \ - -Dtest=ITNightlyBigQueryTest \ + -Dtest=ITNightlyBigQueryTest,ITRemoteUDFTest \ -DtrimStackTrace=false \ -Dclirr.skip=true \ -Denforcer.skip=true \ @@ -82,20 +82,20 @@ nightly-it) ;; graalvm) # Run Integration Tests with Native Image. Skip running nightly tests in presubmits. - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest -Pnative -Penable-integration-tests test + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest,ITRemoteUDFTest -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; graalvm17) # Run Integration Tests with Native Image. Skip running nightly tests in presubmits. - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest -Pnative -Penable-integration-tests test + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest,ITRemoteUDFTest -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; nightly-graalvm) - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITNightlyBigQueryTest -Pnative -Penable-integration-tests test + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITNightlyBigQueryTest,ITRemoteUDFTest -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; nightly-graalvm17) - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITNightlyBigQueryTest -Pnative -Penable-integration-tests test + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITNightlyBigQueryTest,ITRemoteUDFTest -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; samples) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 7a882777a9cf..6b76f78eb449 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -19,4 +19,9 @@ com/google/cloud/bigquery/ExternalTableDefinition* *ReferenceFileSchemaUri(*) + + 7013 + com/google/cloud/bigquery/RoutineInfo* + *RemoteFunctionOptions(*) + \ No newline at end of file diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8c1c8fa420d7..b3301e0dff30 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -131,9 +131,14 @@ google-cloud-datacatalog test
    + + com.google.cloud + google-cloud-bigqueryconnection + test + com.google.api.grpc - proto-google-cloud-datacatalog-v1 + proto-google-cloud-bigqueryconnection-v1 test diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RemoteFunctionOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RemoteFunctionOptions.java new file mode 100644 index 000000000000..88496dcb4c41 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RemoteFunctionOptions.java @@ -0,0 +1,139 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import java.util.Map; +import javax.annotation.Nullable; + +/** Represents Remote Function Options. Options for a remote user-defined function. */ +@AutoValue +public abstract class RemoteFunctionOptions implements Serializable { + + private static final long serialVersionUID = -7334249450657429792L; + + @AutoValue.Builder + public abstract static class Builder { + + /** + * Sets Endpoint argument Endpoint of the user-provided remote service, e.g. + * ```https://us-east1-my_gcf_project.cloudfunctions.net/remote_add``` + */ + public abstract Builder setEndpoint(String endpoint); + + /** + * Fully qualified name of the user-provided connection object which holds the authentication + * information to send requests to the remote service. Format: + * ```\"projects/{projectId}/locations/{locationId}/connections/{connectionId}\"``` + */ + public abstract Builder setConnection(String connection); + + /** + * User-defined context as a set of key/value pairs, which will be sent as function invocation + * context together with batched arguments in the requests to the remote service. The total + * number of bytes of keys and values must be less than 8KB. + */ + public abstract Builder setUserDefinedContext(Map userDefinedContext); + + /** + * Max number of rows in each batch sent to the remote service. If absent or if 0, BigQuery + * dynamically decides the number of rows in a batch. + */ + public abstract Builder setMaxBatchingRows(Long maxBatchingRows); + + /** Creates a {@code RemoteFunctionOptions} object. */ + public abstract RemoteFunctionOptions build(); + } + + /** + * Returns the endpoint of the user-provided service. + * + * @return String + */ + @Nullable + public abstract String getEndpoint(); + + /** + * Returns the fully qualified name of the user-provided connection object. + * + * @return String + */ + @Nullable + public abstract String getConnection(); + + /** + * Returns the user-defined context as a set of key/value pairs. + * + * @return Map + */ + @Nullable + public abstract Map getUserDefinedContext(); + + /** + * Returns max number of rows in each batch sent to the remote service. + * + * @return Long + */ + @Nullable + public abstract Long getMaxBatchingRows(); + + /** + * Returns a builder pre-populated using the current values of this {@code RemoteFunctionOptions}. + */ + public abstract RemoteFunctionOptions.Builder toBuilder(); + + /** Returns a builder for a {@Code RemoteFunctionOptions} object. */ + public static RemoteFunctionOptions.Builder newBuilder() { + return new AutoValue_RemoteFunctionOptions.Builder(); + } + + public com.google.api.services.bigquery.model.RemoteFunctionOptions toPb() { + com.google.api.services.bigquery.model.RemoteFunctionOptions remoteFunctionOptions = + new com.google.api.services.bigquery.model.RemoteFunctionOptions(); + if (getEndpoint() != null) { + remoteFunctionOptions.setEndpoint(getEndpoint()); + } + if (getConnection() != null) { + remoteFunctionOptions.setConnection(getConnection()); + } + if (getUserDefinedContext() != null) { + remoteFunctionOptions.setUserDefinedContext(getUserDefinedContext()); + } + if (getMaxBatchingRows() != null) { + remoteFunctionOptions.setMaxBatchingRows(getMaxBatchingRows()); + } + return remoteFunctionOptions; + } + + static RemoteFunctionOptions fromPb( + com.google.api.services.bigquery.model.RemoteFunctionOptions remoteFunctionOptionsPb) { + RemoteFunctionOptions.Builder builder = newBuilder(); + if (remoteFunctionOptionsPb.getEndpoint() != null) { + builder.setEndpoint(remoteFunctionOptionsPb.getEndpoint()); + } + if (remoteFunctionOptionsPb.getConnection() != null) { + builder.setConnection(remoteFunctionOptionsPb.getConnection()); + } + if (remoteFunctionOptionsPb.getUserDefinedContext() != null) { + builder.setUserDefinedContext(remoteFunctionOptionsPb.getUserDefinedContext()); + } + if (remoteFunctionOptionsPb.getMaxBatchingRows() != null) { + builder.setMaxBatchingRows(remoteFunctionOptionsPb.getMaxBatchingRows()); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java index a5232c3f916b..d2d6ec68376e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java @@ -129,6 +129,12 @@ public Builder setBody(String body) { return this; } + @Override + public Builder setRemoteFunctionOptions(RemoteFunctionOptions remoteFunctionOptions) { + infoBuilder.setRemoteFunctionOptions(remoteFunctionOptions); + return this; + } + @Override public Routine build() { return new Routine(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java index daa745577745..3001d2fb97c5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java @@ -70,6 +70,7 @@ public Routine apply(RoutineInfo routineInfo) { private final StandardSQLTableType returnTableType; private final List importedLibrariesList; private final String body; + private final RemoteFunctionOptions remoteFunctionOptions; public abstract static class Builder { @@ -148,6 +149,14 @@ public abstract static class Builder { */ public abstract Builder setBody(String body); + /** + * Optional. Remote function specific options. + * + * @param remoteFunctionOptions + * @return + */ + public abstract Builder setRemoteFunctionOptions(RemoteFunctionOptions remoteFunctionOptions); + /** Creates a {@code RoutineInfo} object. */ public abstract RoutineInfo build(); } @@ -166,6 +175,7 @@ static class BuilderImpl extends Builder { private StandardSQLTableType returnTableType; private List importedLibrariesList; private String body; + private RemoteFunctionOptions remoteFunctionOptions; BuilderImpl() {} @@ -183,6 +193,7 @@ static class BuilderImpl extends Builder { this.returnTableType = routineInfo.returnTableType; this.importedLibrariesList = routineInfo.importedLibrariesList; this.body = routineInfo.body; + this.remoteFunctionOptions = routineInfo.remoteFunctionOptions; } BuilderImpl(Routine routinePb) { @@ -210,6 +221,10 @@ static class BuilderImpl extends Builder { this.importedLibrariesList = routinePb.getImportedLibraries(); } this.body = routinePb.getDefinitionBody(); + if (routinePb.getRemoteFunctionOptions() != null) { + this.remoteFunctionOptions = + RemoteFunctionOptions.fromPb(routinePb.getRemoteFunctionOptions()); + } } @Override @@ -290,6 +305,12 @@ public Builder setBody(String body) { return this; } + @Override + public Builder setRemoteFunctionOptions(RemoteFunctionOptions remoteFunctionOptions) { + this.remoteFunctionOptions = remoteFunctionOptions; + return this; + } + @Override public RoutineInfo build() { return new RoutineInfo(this); @@ -310,6 +331,7 @@ public RoutineInfo build() { this.returnTableType = builder.returnTableType; this.importedLibrariesList = builder.importedLibrariesList; this.body = builder.body; + this.remoteFunctionOptions = builder.remoteFunctionOptions; } /** Returns the RoutineId identified for the routine resource. * */ @@ -384,6 +406,11 @@ public String getBody() { return body; } + /** Returns the Remote function specific options. */ + public RemoteFunctionOptions getRemoteFunctionOptions() { + return remoteFunctionOptions; + }; + /** Returns a builder pre-populated using the current values of this routine. */ public Builder toBuilder() { return new BuilderImpl(this); @@ -405,6 +432,7 @@ public String toString() { .add("returnTableType", returnTableType) .add("importedLibrariesList", importedLibrariesList) .add("body", body) + .add("remoteFunctionOptions", remoteFunctionOptions) .toString(); } @@ -423,7 +451,8 @@ public int hashCode() { returnType, returnTableType, importedLibrariesList, - body); + body, + remoteFunctionOptions); } @Override @@ -474,6 +503,9 @@ Routine toPb() { if (getReturnTableType() != null) { routinePb.setReturnTableType(getReturnTableType().toPb()); } + if (getRemoteFunctionOptions() != null) { + routinePb.setRemoteFunctionOptions(getRemoteFunctionOptions().toPb()); + } return routinePb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RemoteFunctionOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RemoteFunctionOptionsTest.java new file mode 100644 index 000000000000..8ee0e4564f98 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RemoteFunctionOptionsTest.java @@ -0,0 +1,73 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import java.util.HashMap; +import java.util.Map; +import org.junit.Test; + +public class RemoteFunctionOptionsTest { + private static final String endpoint = "https://aaabbbccc-uc.a.run.app"; + private static final String connection = + "projects/{projectId}/locations/{locationId}/connections/{connectionId}"; + private static final Map userDefinedContext = + new HashMap() { + { + put("key1", "value1"); + put("key2", "value2"); + } + }; + private static final Long maxBatchingRows = 20L; + + private static final RemoteFunctionOptions REMOTE_FUNCTION_OPTIONS = + RemoteFunctionOptions.newBuilder() + .setEndpoint(endpoint) + .setConnection(connection) + .setUserDefinedContext(userDefinedContext) + .setMaxBatchingRows(maxBatchingRows) + .build(); + + @Test + public void testToBuilder() { + compareRemoteFunctionOptions( + REMOTE_FUNCTION_OPTIONS, REMOTE_FUNCTION_OPTIONS.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals(endpoint, REMOTE_FUNCTION_OPTIONS.getEndpoint()); + assertEquals(connection, REMOTE_FUNCTION_OPTIONS.getConnection()); + assertEquals(userDefinedContext, REMOTE_FUNCTION_OPTIONS.getUserDefinedContext()); + assertEquals(maxBatchingRows, REMOTE_FUNCTION_OPTIONS.getMaxBatchingRows()); + } + + @Test + public void testToAndFromPb() { + compareRemoteFunctionOptions( + REMOTE_FUNCTION_OPTIONS, RemoteFunctionOptions.fromPb(REMOTE_FUNCTION_OPTIONS.toPb())); + } + + public void compareRemoteFunctionOptions( + RemoteFunctionOptions expected, RemoteFunctionOptions actual) { + assertEquals(expected, actual); + assertEquals(expected.getEndpoint(), actual.getEndpoint()); + assertEquals(expected.getConnection(), actual.getConnection()); + assertEquals(expected.getMaxBatchingRows(), actual.getMaxBatchingRows()); + assertEquals(expected.getUserDefinedContext(), actual.getUserDefinedContext()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java index 89bed602eeaf..c9080e851a4c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java @@ -26,7 +26,9 @@ import static org.mockito.Mockito.when; import com.google.common.collect.ImmutableList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -74,6 +76,20 @@ public class RoutineTest { ImmutableList.of("gs://foo", "gs://bar", "gs://baz"); private static final String BODY = "body"; + private static final Map userDefinedContext = + new HashMap() { + { + put("key1", "value1"); + put("key2", "value2"); + } + }; + private static final RemoteFunctionOptions REMOTE_FUNCTION_OPTIONS = + RemoteFunctionOptions.newBuilder() + .setEndpoint("endpoint") + .setConnection("connection") + .setUserDefinedContext(userDefinedContext) + .setMaxBatchingRows(10L) + .build(); private static final RoutineInfo ROUTINE_INFO = RoutineInfo.newBuilder(ROUTINE_ID) @@ -87,6 +103,7 @@ public class RoutineTest { .setReturnType(RETURN_TYPE) .setImportedLibraries(IMPORTED_LIBRARIES) .setBody(BODY) + .setRemoteFunctionOptions(REMOTE_FUNCTION_OPTIONS) .build(); private static final RoutineInfo ROUTINE_INFO_TVF = @@ -128,6 +145,7 @@ public void testBuilder() { .setReturnType(RETURN_TYPE) .setImportedLibraries(IMPORTED_LIBRARIES) .setBody(BODY) + .setRemoteFunctionOptions(REMOTE_FUNCTION_OPTIONS) .build(); assertEquals(ETAG, builtRoutine.getEtag()); assertEquals(DETERMINISM_LEVEL, builtRoutine.getDeterminismLevel()); @@ -228,5 +246,6 @@ public void compareRoutineInfo(RoutineInfo expected, RoutineInfo value) { assertEquals(expected.getImportedLibraries(), value.getImportedLibraries()); assertEquals(expected.getBody(), value.getBody()); assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.getRemoteFunctionOptions(), value.getRemoteFunctionOptions()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java new file mode 100644 index 000000000000..7e74a8f4cd9b --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java @@ -0,0 +1,129 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery.it; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import com.google.cloud.ServiceOptions; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.DatasetInfo; +import com.google.cloud.bigquery.RemoteFunctionOptions; +import com.google.cloud.bigquery.Routine; +import com.google.cloud.bigquery.RoutineArgument; +import com.google.cloud.bigquery.RoutineId; +import com.google.cloud.bigquery.RoutineInfo; +import com.google.cloud.bigquery.StandardSQLDataType; +import com.google.cloud.bigquery.connection.v1.CloudResourceProperties; +import com.google.cloud.bigquery.connection.v1.Connection; +import com.google.cloud.bigquery.connection.v1.CreateConnectionRequest; +import com.google.cloud.bigquery.connection.v1.DeleteConnectionRequest; +import com.google.cloud.bigquery.connection.v1.LocationName; +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient; +import com.google.common.collect.ImmutableList; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.Test; + +public class ITRemoteUDFTest { + + private static final String ID = UUID.randomUUID().toString().substring(0, 8); + private static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); + private static final String CONNECTION_ID = "test-connectin-id-" + ID; + private static final String LOCATION = "US"; + private static final String PARENT = LocationName.of(PROJECT_ID, LOCATION).toString(); + private static final String REMOTE_ENDPOINT = "https://aaabbbccc-uc.a.run.app"; + private static final String ROUTINE_DATASET = RemoteBigQueryHelper.generateDatasetName(); + private static ConnectionServiceClient client; + private static Connection connection; + private static BigQuery bigquery; + + @Before + public void setUp() throws IOException { + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); + bigquery = bigqueryHelper.getOptions().getService(); + client = ConnectionServiceClient.create(); + + DatasetInfo info = + DatasetInfo.newBuilder(ROUTINE_DATASET).setDescription("java routine lifecycle").build(); + bigquery.create(info); + CloudResourceProperties cloudResourceProperties = CloudResourceProperties.newBuilder().build(); + CreateConnectionRequest request = + CreateConnectionRequest.newBuilder() + .setParent(PARENT) + .setConnection( + Connection.newBuilder().setCloudResource(cloudResourceProperties).build()) + .setConnectionId(CONNECTION_ID) + .build(); + connection = client.createConnection(request); + } + + @AfterClass + public static void afterClass() { + if (bigquery != null) { + RemoteBigQueryHelper.forceDelete(bigquery, ROUTINE_DATASET); + } + // delete a connection + DeleteConnectionRequest request = + DeleteConnectionRequest.newBuilder().setName(connection.getName()).build(); + client.deleteConnection(request); + client.close(); + } + + @Test + public void testRoutineRemoteUDF() { + String routineName = RemoteBigQueryHelper.generateRoutineName(); + RoutineId routineId = RoutineId.of(ROUTINE_DATASET, routineName); + Map userDefinedContext = + new HashMap() { + { + put("key1", "value1"); + put("key2", "value2"); + } + }; + + RemoteFunctionOptions remoteFunctionOptions = + RemoteFunctionOptions.newBuilder() + .setEndpoint(REMOTE_ENDPOINT) + .setConnection(connection.getName()) + .setMaxBatchingRows(Long.valueOf(30)) + .setUserDefinedContext(userDefinedContext) + .build(); + RoutineInfo routineInfo = + RoutineInfo.newBuilder(routineId) + .setRoutineType("SCALAR_FUNCTION") + .setArguments( + ImmutableList.of( + RoutineArgument.newBuilder() + .setName("x") + .setDataType(StandardSQLDataType.newBuilder("INT64").build()) + .build())) + .setRemoteFunctionOptions(remoteFunctionOptions) + .setReturnType(StandardSQLDataType.newBuilder("INT64").build()) + .build(); + + Routine routine = bigquery.create(routineInfo); + assertNotNull(routine); + assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); + assertEquals(REMOTE_ENDPOINT, routine.getRemoteFunctionOptions().getEndpoint()); + assertEquals(connection.getName(), routine.getRemoteFunctionOptions().getConnection()); + } +} diff --git a/pom.xml b/pom.xml index 8458ba87240a..4a00f4980e61 100644 --- a/pom.xml +++ b/pom.xml @@ -179,6 +179,18 @@ 2.12.0 test + + com.google.cloud + google-cloud-bigqueryconnection + 2.4.0 + test + + + com.google.api.grpc + proto-google-cloud-bigqueryconnection-v1 + 2.4.0 + test +
    From 3fe0797aad1e8ff5b7d078479d846503fc2ceaff Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 06:32:17 +0200 Subject: [PATCH 2075/3441] deps: update dependency requests to v2.28.1 (#2303) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [requests](https://requests.readthedocs.io) ([source](https://togithub.com/psf/requests), [changelog](https://togithub.com/psf/requests/blob/master/HISTORY.md)) | `==2.27.1` -> `==2.28.1` | [![age](https://badges.renovateapi.com/packages/pypi/requests/2.28.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/requests/2.28.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/requests/2.28.1/compatibility-slim/2.27.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/requests/2.28.1/confidence-slim/2.27.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    psf/requests ### [`v2.28.1`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#​2281-2022-06-29) [Compare Source](https://togithub.com/psf/requests/compare/v2.28.0...v2.28.1) **Improvements** - Speed optimization in `iter_content` with transition to `yield from`. ([#​6170](https://togithub.com/psf/requests/issues/6170)) **Dependencies** - Added support for chardet 5.0.0 ([#​6179](https://togithub.com/psf/requests/issues/6179)) - Added support for charset-normalizer 2.1.0 ([#​6169](https://togithub.com/psf/requests/issues/6169)) ### [`v2.28.0`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#​2280-2022-06-09) [Compare Source](https://togithub.com/psf/requests/compare/v2.27.1...v2.28.0) **Deprecations** - ⚠️ Requests has officially dropped support for Python 2.7. ⚠️ ([#​6091](https://togithub.com/psf/requests/issues/6091)) - Requests has officially dropped support for Python 3.6 (including pypy3.6). ([#​6091](https://togithub.com/psf/requests/issues/6091)) **Improvements** - Wrap JSON parsing issues in Request's JSONDecodeError for payloads without an encoding to make `json()` API consistent. ([#​6097](https://togithub.com/psf/requests/issues/6097)) - Parse header components consistently, raising an InvalidHeader error in all invalid cases. ([#​6154](https://togithub.com/psf/requests/issues/6154)) - Added provisional 3.11 support with current beta build. ([#​6155](https://togithub.com/psf/requests/issues/6155)) - Requests got a makeover and we decided to paint it black. ([#​6095](https://togithub.com/psf/requests/issues/6095)) **Bugfixes** - Fixed bug where setting `CURL_CA_BUNDLE` to an empty string would disable cert verification. All Requests 2.x versions before 2.28.0 are affected. ([#​6074](https://togithub.com/psf/requests/issues/6074)) - Fixed urllib3 exception leak, wrapping `urllib3.exceptions.SSLError` with `requests.exceptions.SSLError` for `content` and `iter_content`. ([#​6057](https://togithub.com/psf/requests/issues/6057)) - Fixed issue where invalid Windows registry entires caused proxy resolution to raise an exception rather than ignoring the entry. ([#​6149](https://togithub.com/psf/requests/issues/6149)) - Fixed issue where entire payload could be included in the error message for JSONDecodeError. ([#​6036](https://togithub.com/psf/requests/issues/6036))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 7f8fdd2d649ff717ffe0921a74aec48e37fcacc8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 06:32:34 +0200 Subject: [PATCH 2076/3441] deps: update dependency zipp to v3.8.1 (#2305) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [zipp](https://togithub.com/jaraco/zipp) | `==3.6.0` -> `==3.8.1` | [![age](https://badges.renovateapi.com/packages/pypi/zipp/3.8.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/zipp/3.8.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/zipp/3.8.1/compatibility-slim/3.6.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/zipp/3.8.1/confidence-slim/3.6.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    jaraco/zipp ### [`v3.8.1`](https://togithub.com/jaraco/zipp/blob/HEAD/CHANGES.rst#v381) [Compare Source](https://togithub.com/jaraco/zipp/compare/v3.8.0...v3.8.1) \====== Refreshed packaging. Enrolled with Tidelift. ### [`v3.8.0`](https://togithub.com/jaraco/zipp/blob/HEAD/CHANGES.rst#v380) [Compare Source](https://togithub.com/jaraco/zipp/compare/v3.7.0...v3.8.0) \====== Removed compatibility code. ### [`v3.7.0`](https://togithub.com/jaraco/zipp/blob/HEAD/CHANGES.rst#v370) [Compare Source](https://togithub.com/jaraco/zipp/compare/v3.6.0...v3.7.0) \====== Require Python 3.7 or later.
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 88c2b678f4f914707158e09256dc78e7d6362d93 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 06:38:25 +0200 Subject: [PATCH 2077/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.13.0 (#2299) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.12.0` -> `2.13.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.13.0/compatibility-slim/2.12.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.13.0/confidence-slim/2.12.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.13.0`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​2130-httpsgithubcomgoogleapisjava-bigtablecomparev2120v2130-2022-09-27) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.12.0...v2.13.0) ##### Features - Add gRPC RLS dependency ([#​1248](https://togithub.com/googleapis/java-bigtable/issues/1248)) ([e829b92](https://togithub.com/googleapis/java-bigtable/commit/e829b923d97a00dcb55a14b0877bec2c8cf5ece2)) ##### Bug Fixes - Add a UUID in the task value ([#​1430](https://togithub.com/googleapis/java-bigtable/issues/1430)) ([3bfc7bc](https://togithub.com/googleapis/java-bigtable/commit/3bfc7bc246488a37b4470e3a75ffdd34f6761804)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-monitoring-bom to v3.4.5 ([#​1406](https://togithub.com/googleapis/java-bigtable/issues/1406)) ([d906729](https://togithub.com/googleapis/java-bigtable/commit/d906729a4bb9a51907bf4879e8d063d5103565ac)) - Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.14 ([#​1411](https://togithub.com/googleapis/java-bigtable/issues/1411)) ([ef7d741](https://togithub.com/googleapis/java-bigtable/commit/ef7d7419293f9f046dcf941148a86da713feae17)) - Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.14 ([#​1412](https://togithub.com/googleapis/java-bigtable/issues/1412)) ([dcae319](https://togithub.com/googleapis/java-bigtable/commit/dcae3195871b78aa6e102c4bc570b18c303c7760)) - Update dependency org.junit.vintage:junit-vintage-engine to v5.9.1 ([#​1409](https://togithub.com/googleapis/java-bigtable/issues/1409)) ([c1e195d](https://togithub.com/googleapis/java-bigtable/commit/c1e195d4e0470b30d97231c44b09fcb5c4881514))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7dc323091377..63e1851a8e91 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.12.0 + 2.13.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 78d8b7bf76f5..2bfa277900bf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.12.0 + 2.13.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9fc97ffc1f73..5fa40f7d47c6 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.12.0 + 2.13.0 test From 3f3b2a5d12acbd1bef975d99de96b1f6cbb60c5f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 06:40:22 +0200 Subject: [PATCH 2078/3441] deps: update dependency protobuf to v4 (#2307) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [protobuf](https://developers.google.com/protocol-buffers/) | `==3.19.5` -> `==4.21.6` | [![age](https://badges.renovateapi.com/packages/pypi/protobuf/4.21.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/protobuf/4.21.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/protobuf/4.21.6/compatibility-slim/3.19.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/protobuf/4.21.6/confidence-slim/3.19.5)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From ebb16ebbffa4fd3a09b2e4c01fb20a91472f469f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 06:48:25 +0200 Subject: [PATCH 2079/3441] deps: update dependency typing-extensions to v4.3.0 (#2304) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [typing-extensions](https://togithub.com/python/typing_extensions) ([changelog](https://togithub.com/python/typing_extensions/blob/main/CHANGELOG.md)) | `==4.1.1` -> `==4.3.0` | [![age](https://badges.renovateapi.com/packages/pypi/typing-extensions/4.3.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/typing-extensions/4.3.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/typing-extensions/4.3.0/compatibility-slim/4.1.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/typing-extensions/4.3.0/confidence-slim/4.1.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From e0bf11bd14051d0dcf009ad3aab394f0ff7e5d02 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 06:50:25 +0200 Subject: [PATCH 2080/3441] deps: update dependency google-cloud-core to v2.3.2 (#2297) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [google-cloud-core](https://togithub.com/googleapis/python-cloud-core) | `==2.3.1` -> `==2.3.2` | [![age](https://badges.renovateapi.com/packages/pypi/google-cloud-core/2.3.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/google-cloud-core/2.3.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/google-cloud-core/2.3.2/compatibility-slim/2.3.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/google-cloud-core/2.3.2/confidence-slim/2.3.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 64d5229c6e62cb74224f2bb643fea1c554b6d69f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 06:50:36 +0200 Subject: [PATCH 2081/3441] deps: update dependency charset-normalizer to v2.1.1 (#2300) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [charset-normalizer](https://togithub.com/ousret/charset_normalizer) | `==2.0.12` -> `==2.1.1` | [![age](https://badges.renovateapi.com/packages/pypi/charset-normalizer/2.1.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/charset-normalizer/2.1.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/charset-normalizer/2.1.1/compatibility-slim/2.0.12)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/charset-normalizer/2.1.1/confidence-slim/2.0.12)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 3cf7ef83d891480bf80fcb1879ca86e9e053304e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 07:00:31 +0200 Subject: [PATCH 2082/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.14 (#2289) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.graalvm.buildtools:native-maven-plugin](https://togithub.com/graalvm/native-build-tools) | `0.9.13` -> `0.9.14` | [![age](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.14/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.14/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.14/compatibility-slim/0.9.13)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.14/confidence-slim/0.9.13)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    graalvm/native-build-tools ### [`v0.9.14`](https://togithub.com/graalvm/native-build-tools/releases/tag/0.9.14) [Compare Source](https://togithub.com/graalvm/native-build-tools/compare/0.9.13...0.9.14) #### What's Changed Read what's new in the [documentation](https://graalvm.github.io/native-build-tools/latest/index.html#changelog). - Fix how the GRAALVM_QUICK_BUILD env var is read by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/278](https://togithub.com/graalvm/native-build-tools/pull/278) - Make it possible to pass env vars to the builder process by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/280](https://togithub.com/graalvm/native-build-tools/pull/280) - Maven plugin fixes by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/274](https://togithub.com/graalvm/native-build-tools/pull/274) - Add support for `test-jar` artifacts by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/281](https://togithub.com/graalvm/native-build-tools/pull/281) - Add Gradle CLI options for quick build and debugging by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/286](https://togithub.com/graalvm/native-build-tools/pull/286) - Add a changelog and docs about build -> compile-no-fork changes by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/290](https://togithub.com/graalvm/native-build-tools/pull/290) - Do not filter out entry values starting with `java.` in the metadata post-processing action by [@​gradinac](https://togithub.com/gradinac) in [https://github.com/graalvm/native-build-tools/pull/289](https://togithub.com/graalvm/native-build-tools/pull/289) - Try to fix snapshot publishing by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/244](https://togithub.com/graalvm/native-build-tools/pull/244) - Fix javadoc and warnings by [@​lazar-mitrovic](https://togithub.com/lazar-mitrovic) in [https://github.com/graalvm/native-build-tools/pull/291](https://togithub.com/graalvm/native-build-tools/pull/291) - Bump the default metadata repository version to 0.1.2 by [@​gradinac](https://togithub.com/gradinac) in [https://github.com/graalvm/native-build-tools/pull/294](https://togithub.com/graalvm/native-build-tools/pull/294) - Fix metadata repository crash by [@​dnestoro](https://togithub.com/dnestoro) in [https://github.com/graalvm/native-build-tools/pull/295](https://togithub.com/graalvm/native-build-tools/pull/295) - Add support for override flag by [@​sdeleuze](https://togithub.com/sdeleuze) in [https://github.com/graalvm/native-build-tools/pull/296](https://togithub.com/graalvm/native-build-tools/pull/296) - Fix build time initialization error with JUnit 5.9.0 by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/308](https://togithub.com/graalvm/native-build-tools/pull/308) - Fix compatibility with configuration cache by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/304](https://togithub.com/graalvm/native-build-tools/pull/304) - Bump metadata repository version by [@​melix](https://togithub.com/melix) in [https://github.com/graalvm/native-build-tools/pull/310](https://togithub.com/graalvm/native-build-tools/pull/310) #### New Contributors - [@​dnestoro](https://togithub.com/dnestoro) made their first contribution in [https://github.com/graalvm/native-build-tools/pull/295](https://togithub.com/graalvm/native-build-tools/pull/295) **Full Changelog**: https://github.com/graalvm/native-build-tools/compare/0.9.13...0.9.14
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 1daeb21e5741..47b173394d8f 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.13 + 0.9.14 true com.example.bigquery.NativeImageBigquerySample From 6116cd183d3699f91f47bd797b8a3283c61215d0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 07:02:27 +0200 Subject: [PATCH 2083/3441] deps: update dependency googleapis-common-protos to v1.56.4 (#2298) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [googleapis-common-protos](https://togithub.com/googleapis/python-api-common-protos) | `==1.56.3` -> `==1.56.4` | [![age](https://badges.renovateapi.com/packages/pypi/googleapis-common-protos/1.56.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/googleapis-common-protos/1.56.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/googleapis-common-protos/1.56.4/compatibility-slim/1.56.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/googleapis-common-protos/1.56.4/confidence-slim/1.56.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 5cc1f6c9ab73281692d767700db4d56ca2aa442c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 07:22:14 +0200 Subject: [PATCH 2084/3441] deps: update dependency gcp-releasetool to v1.8.8 (#2296) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | gcp-releasetool | `==1.8.7` -> `==1.8.8` | [![age](https://badges.renovateapi.com/packages/pypi/gcp-releasetool/1.8.8/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/gcp-releasetool/1.8.8/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/gcp-releasetool/1.8.8/compatibility-slim/1.8.7)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/gcp-releasetool/1.8.8/confidence-slim/1.8.7)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 4bfc238d56abedc694b590898a43e22e6bf6947e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 07:28:18 +0200 Subject: [PATCH 2085/3441] deps: update dependency keyring to v23.9.3 (#2302) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [keyring](https://togithub.com/jaraco/keyring) | `==23.4.1` -> `==23.9.3` | [![age](https://badges.renovateapi.com/packages/pypi/keyring/23.9.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/keyring/23.9.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/keyring/23.9.3/compatibility-slim/23.4.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/keyring/23.9.3/confidence-slim/23.4.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From e94c25e702d8f92bb52c21eebd348bebc66b6c0f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 16:42:18 +0200 Subject: [PATCH 2086/3441] deps: update dependency google-crc32c to v1.5.0 (#2316) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [google-crc32c](https://togithub.com/googleapis/python-crc32c) | `==1.3.0` -> `==1.5.0` | [![age](https://badges.renovateapi.com/packages/pypi/google-crc32c/1.5.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/google-crc32c/1.5.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/google-crc32c/1.5.0/compatibility-slim/1.3.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/google-crc32c/1.5.0/confidence-slim/1.3.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From cb73f23e43bdaef6c6b1e0e82b615394ae851b1e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 16:44:24 +0200 Subject: [PATCH 2087/3441] deps: update dependency google-cloud-storage to v2.5.0 (#2315) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [google-cloud-storage](https://togithub.com/googleapis/python-storage) | `==2.0.0` -> `==2.5.0` | [![age](https://badges.renovateapi.com/packages/pypi/google-cloud-storage/2.5.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/google-cloud-storage/2.5.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/google-cloud-storage/2.5.0/compatibility-slim/2.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/google-cloud-storage/2.5.0/confidence-slim/2.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 4b57086e991b3bbe88207c339eb48914071fc94c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 16:46:27 +0200 Subject: [PATCH 2088/3441] deps: update dependency jeepney to v0.8.0 (#2318) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [jeepney](https://gitlab.com/takluyver/jeepney) | `==0.7.1` -> `==0.8.0` | [![age](https://badges.renovateapi.com/packages/pypi/jeepney/0.8.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/jeepney/0.8.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/jeepney/0.8.0/compatibility-slim/0.7.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/jeepney/0.8.0/confidence-slim/0.7.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 7bec0d6a64d4f194ac522bea236f3ec871f0470e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 17:02:13 +0200 Subject: [PATCH 2089/3441] deps: update dependency importlib-metadata to v4.12.0 (#2317) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [importlib-metadata](https://togithub.com/python/importlib_metadata) | `==4.8.3` -> `==4.12.0` | [![age](https://badges.renovateapi.com/packages/pypi/importlib-metadata/4.12.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/importlib-metadata/4.12.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/importlib-metadata/4.12.0/compatibility-slim/4.8.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/importlib-metadata/4.12.0/confidence-slim/4.8.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 078125dfc3d5c397bf63ec651e14c3777ee779f4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 17:04:46 +0200 Subject: [PATCH 2090/3441] deps: update dependency protobuf to v3.20.2 (#2309) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [protobuf](https://developers.google.com/protocol-buffers/) | `==3.19.5` -> `==3.20.2` | [![age](https://badges.renovateapi.com/packages/pypi/protobuf/3.20.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/protobuf/3.20.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/protobuf/3.20.2/compatibility-slim/3.19.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/protobuf/3.20.2/confidence-slim/3.19.5)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From b0feb35415a50fed58883efe06f5e5a8bbc1c74f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 28 Sep 2022 17:14:18 +0200 Subject: [PATCH 2091/3441] deps: update dependency markupsafe to v2.1.1 (#2308) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [markupsafe](https://palletsprojects.com/p/markupsafe/) ([changelog](https://markupsafe.palletsprojects.com/changes/)) | `==2.0.1` -> `==2.1.1` | [![age](https://badges.renovateapi.com/packages/pypi/markupsafe/2.1.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/markupsafe/2.1.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/markupsafe/2.1.1/compatibility-slim/2.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/markupsafe/2.1.1/confidence-slim/2.0.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From bd1f4dd247d7483e3ec16dac522a7662c4e13c08 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 29 Sep 2022 18:10:30 +0200 Subject: [PATCH 2092/3441] deps: update dependency cachetools to v5 (#2306) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [cachetools](https://togithub.com/tkem/cachetools) | `==4.2.4` -> `==5.2.0` | [![age](https://badges.renovateapi.com/packages/pypi/cachetools/5.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/cachetools/5.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/cachetools/5.2.0/compatibility-slim/4.2.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/cachetools/5.2.0/confidence-slim/4.2.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 7d134e3e7c50fd8762bd522cc1e1fab0fcb4ca20 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 29 Sep 2022 18:12:29 +0200 Subject: [PATCH 2093/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.5.4 (#2312) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1](https://togithub.com/googleapis/java-bigqueryconnection/proto-google-cloud-bigqueryconnection-v1) ([source](https://togithub.com/googleapis/java-bigqueryconnection)) | `2.4.0` -> `2.5.4` | [![age](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.5.4/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.5.4/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.5.4/compatibility-slim/2.4.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.5.4/confidence-slim/2.4.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigqueryconnection ### [`v2.5.4`](https://togithub.com/googleapis/java-bigqueryconnection/blob/HEAD/CHANGELOG.md#​254-httpsgithubcomgoogleapisjava-bigqueryconnectioncomparev253v254-2022-09-20) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.5.3...v2.5.4) ##### Dependencies - Update dependency com.google.protobuf:protobuf-java-util to v3.21.6 ([#​747](https://togithub.com/googleapis/java-bigqueryconnection/issues/747)) ([b862e7e](https://togithub.com/googleapis/java-bigqueryconnection/commit/b862e7e84778b78e943bca3bae60e7a4332b639e)) ### [`v2.5.3`](https://togithub.com/googleapis/java-bigqueryconnection/blob/HEAD/CHANGELOG.md#​253-httpsgithubcomgoogleapisjava-bigqueryconnectioncomparev252v253-2022-09-15) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.5.2...v2.5.3) ##### Dependencies - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.3 ([#​748](https://togithub.com/googleapis/java-bigqueryconnection/issues/748)) ([a1c7bfa](https://togithub.com/googleapis/java-bigqueryconnection/commit/a1c7bfa45c36ff7cfba7135dea4ad4567a22577b)) ### [`v2.5.2`](https://togithub.com/googleapis/java-bigqueryconnection/blob/HEAD/CHANGELOG.md#​252-httpsgithubcomgoogleapisjava-bigqueryconnectioncomparev251v252-2022-09-09) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.5.1...v2.5.2) ##### Dependencies - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.2 ([#​742](https://togithub.com/googleapis/java-bigqueryconnection/issues/742)) ([efad01d](https://togithub.com/googleapis/java-bigqueryconnection/commit/efad01d4579e1573822d593f4852522ccfeb7fc3)) ### [`v2.5.1`](https://togithub.com/googleapis/java-bigqueryconnection/blob/HEAD/CHANGELOG.md#​251-httpsgithubcomgoogleapisjava-bigqueryconnectioncomparev250v251-2022-09-06) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.5.0...v2.5.1) ##### Dependencies - Update dependency com.google.protobuf ([9225d58](https://togithub.com/googleapis/java-bigqueryconnection/commit/9225d58be057beec195baa55a48a183f923d1490)) ### [`v2.5.0`](https://togithub.com/googleapis/java-bigqueryconnection/blob/HEAD/CHANGELOG.md#​250-httpsgithubcomgoogleapisjava-bigqueryconnectioncomparev241v250-2022-08-09) [Compare Source](https://togithub.com/googleapis/java-bigqueryconnection/compare/v2.4.0...v2.5.0) ##### Features - Add service_account_id output field to CloudSQL properties ([#​724](https://togithub.com/googleapis/java-bigqueryconnection/issues/724)) ([3f82655](https://togithub.com/googleapis/java-bigqueryconnection/commit/3f8265525cce8bc14b359902760d7375239ce616)) ##### Dependencies - update dependency com.google.cloud:google-cloud-shared-dependencies to v3 ([#​725](https://togithub.com/googleapis/java-bigqueryconnection/issues/725)) ([7a1a834](https://togithub.com/googleapis/java-bigqueryconnection/commit/7a1a8345035a615028ce68c17c2e67cb14041817)) - update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.1 ([#​728](https://togithub.com/googleapis/java-bigqueryconnection/issues/728)) ([252e904](https://togithub.com/googleapis/java-bigqueryconnection/commit/252e9042b95f5075d7f006e6e18bb9bfebe918e5)) - update dependency com.google.protobuf:protobuf-java-util to v3.21.3 ([#​722](https://togithub.com/googleapis/java-bigqueryconnection/issues/722)) ([780f6d4](https://togithub.com/googleapis/java-bigqueryconnection/commit/780f6d43c9caedd8cfdb173ef2ea68fb371feca1)) - update dependency com.google.protobuf:protobuf-java-util to v3.21.4 ([#​723](https://togithub.com/googleapis/java-bigqueryconnection/issues/723)) ([6bf4073](https://togithub.com/googleapis/java-bigqueryconnection/commit/6bf407399a0eb6f9d56d62ec76caf130e683e3e3))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4a00f4980e61..4bd85bf8dc56 100644 --- a/pom.xml +++ b/pom.xml @@ -188,7 +188,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.4.0 + 2.5.4 test From 683f4ab99751b047ceada3f86afdbe06ceeb5dcd Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 29 Sep 2022 18:16:30 +0200 Subject: [PATCH 2094/3441] deps: update dependency click to v8.1.3 (#2311) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [click](https://palletsprojects.com/p/click/) ([changelog](https://click.palletsprojects.com/changes/)) | `==8.0.4` -> `==8.1.3` | [![age](https://badges.renovateapi.com/packages/pypi/click/8.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/click/8.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/click/8.1.3/compatibility-slim/8.0.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/click/8.1.3/confidence-slim/8.0.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 8adaf8e7a891f6c395155a2d8b171f7dfe7f52ad Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 29 Sep 2022 19:30:41 +0200 Subject: [PATCH 2095/3441] deps: update dependency google-api-core to v2.10.1 (#2313) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [google-api-core](https://togithub.com/googleapis/python-api-core) | `==2.8.2` -> `==2.10.1` | [![age](https://badges.renovateapi.com/packages/pypi/google-api-core/2.10.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/google-api-core/2.10.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/google-api-core/2.10.1/compatibility-slim/2.8.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/google-api-core/2.10.1/confidence-slim/2.8.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From b46cc4ba9c12da99189bb95cb9f3944131dce921 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 30 Sep 2022 16:18:16 +0200 Subject: [PATCH 2096/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.22.0 (#2321) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4bd85bf8dc56..f978b692cd3f 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.21.0 + 2.22.0 pom import From bd43cf42443feba02d7970d3dd17c11d1b64872c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 2 Oct 2022 23:26:33 +0200 Subject: [PATCH 2097/3441] deps: update dependency importlib-metadata to v5 (#2324) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [importlib-metadata](https://togithub.com/python/importlib_metadata) | `==4.8.3` -> `==5.0.0` | [![age](https://badges.renovateapi.com/packages/pypi/importlib-metadata/5.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/importlib-metadata/5.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/importlib-metadata/5.0.0/compatibility-slim/4.8.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/importlib-metadata/5.0.0/confidence-slim/4.8.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 4c7e089f281c7147cd468fbdbd19cd7238b49be3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 2 Oct 2022 23:28:30 +0200 Subject: [PATCH 2098/3441] deps: update dependency importlib-metadata to v4.13.0 (#2323) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [importlib-metadata](https://togithub.com/python/importlib_metadata) | `==4.8.3` -> `==4.13.0` | [![age](https://badges.renovateapi.com/packages/pypi/importlib-metadata/4.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/importlib-metadata/4.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/importlib-metadata/4.13.0/compatibility-slim/4.8.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/importlib-metadata/4.13.0/confidence-slim/4.8.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 82c2097a866804ffb95a871087438fc163e8b77c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 2 Oct 2022 23:30:29 +0200 Subject: [PATCH 2099/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20220924-2.0.0 (#2325) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20220913-2.0.0` -> `v2-rev20220924-2.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220924-2.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220924-2.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220924-2.0.0/compatibility-slim/v2-rev20220913-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20220924-2.0.0/confidence-slim/v2-rev20220913-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f978b692cd3f..d77857131def 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220913-2.0.0 + v2-rev20220924-2.0.0 3.0.3 9.0.0
    From 52dfd13a4d311526c784397f50ca5cf45b60f2a5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Sun, 2 Oct 2022 23:32:13 +0200 Subject: [PATCH 2100/3441] deps: update dependency gcp-releasetool to v1.8.9 (#2326) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | gcp-releasetool | `==1.8.7` -> `==1.8.9` | [![age](https://badges.renovateapi.com/packages/pypi/gcp-releasetool/1.8.9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/gcp-releasetool/1.8.9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/gcp-releasetool/1.8.9/compatibility-slim/1.8.7)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/gcp-releasetool/1.8.9/confidence-slim/1.8.7)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). From 188c77995cad31b328cfbf745df164f4ac70b692 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 3 Oct 2022 15:03:03 +0200 Subject: [PATCH 2101/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 (#2327) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d77857131def..6b6cf04797bb 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20220924-2.0.0 - 3.0.3 + 3.0.4 9.0.0
    From 8133a72e3c490cff8d52c8d3aa2394e3e90ae603 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Mon, 3 Oct 2022 16:21:51 -0400 Subject: [PATCH 2102/3441] chore: exclude kokoro dependencies from renovate updates (#2322) --- renovate.json | 1 + 1 file changed, 1 insertion(+) diff --git a/renovate.json b/renovate.json index 56fe3f2abf71..c3dedcbe3677 100644 --- a/renovate.json +++ b/renovate.json @@ -10,6 +10,7 @@ ":maintainLockFilesDisabled", ":autodetectPinVersions" ], + "ignorePaths": [".kokoro/requirements.txt"], "packageRules": [ { "packagePatterns": [ From 6e48ec22f98f95cc93a6a0e2a068d8a4d8c822ca Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 3 Oct 2022 23:22:32 +0200 Subject: [PATCH 2103/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.5.5 (#2328) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6b6cf04797bb..41c6809c8e97 100644 --- a/pom.xml +++ b/pom.xml @@ -188,7 +188,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.5.4 + 2.5.5 test From 7fef0c08b02d760cfe4c7e8b99f772b4e20be731 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 3 Oct 2022 23:23:08 +0200 Subject: [PATCH 2104/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.23.0 (#2330) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 41c6809c8e97..29961a5217c6 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.22.0 + 2.23.0 pom import From ec8fb878959af6a2c202bdcc11f8ed4499b40268 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 4 Oct 2022 12:25:09 -0400 Subject: [PATCH 2105/3441] chore(main): release 2.17.0 (#2282) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 21 +++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 6 +++--- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 29 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d3c6eb5732b5..ae5344d642e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,26 @@ # Changelog +## [2.17.0](https://github.com/googleapis/java-bigquery/compare/v2.16.1...v2.17.0) (2022-10-03) + + +### Features + +* Add remote function options to routine metadata ([#2291](https://github.com/googleapis/java-bigquery/issues/2291)) ([d30670e](https://github.com/googleapis/java-bigquery/commit/d30670ee2edf498b0335f3dfdec3487f5627a9f3)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.5.5 ([#2328](https://github.com/googleapis/java-bigquery/issues/2328)) ([6e48ec2](https://github.com/googleapis/java-bigquery/commit/6e48ec22f98f95cc93a6a0e2a068d8a4d8c822ca)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20220913-2.0.0 ([#2287](https://github.com/googleapis/java-bigquery/issues/2287)) ([fa33184](https://github.com/googleapis/java-bigquery/commit/fa331844dc1862120867d73ad87d87587a388576)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20220924-2.0.0 ([#2325](https://github.com/googleapis/java-bigquery/issues/2325)) ([82c2097](https://github.com/googleapis/java-bigquery/commit/82c2097a866804ffb95a871087438fc163e8b77c)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 ([#2327](https://github.com/googleapis/java-bigquery/issues/2327)) ([188c779](https://github.com/googleapis/java-bigquery/commit/188c77995cad31b328cfbf745df164f4ac70b692)) +* Update dependency gcp-releasetool to v1.8.9 ([#2326](https://github.com/googleapis/java-bigquery/issues/2326)) ([52dfd13](https://github.com/googleapis/java-bigquery/commit/52dfd13a4d311526c784397f50ca5cf45b60f2a5)) +* Update dependency importlib-metadata to v4.13.0 ([#2323](https://github.com/googleapis/java-bigquery/issues/2323)) ([4c7e089](https://github.com/googleapis/java-bigquery/commit/4c7e089f281c7147cd468fbdbd19cd7238b49be3)) +* Update dependency importlib-metadata to v5 ([#2324](https://github.com/googleapis/java-bigquery/issues/2324)) ([bd43cf4](https://github.com/googleapis/java-bigquery/commit/bd43cf42443feba02d7970d3dd17c11d1b64872c)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.14 ([#2288](https://github.com/googleapis/java-bigquery/issues/2288)) ([959519c](https://github.com/googleapis/java-bigquery/commit/959519cd9e5910ba7d93cce00c318ed322dcaf23)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.14 ([#2289](https://github.com/googleapis/java-bigquery/issues/2289)) ([3cf7ef8](https://github.com/googleapis/java-bigquery/commit/3cf7ef83d891480bf80fcb1879ca86e9e053304e)) +* Update dependency org.junit.vintage:junit-vintage-engine to v5.9.1 ([#2285](https://github.com/googleapis/java-bigquery/issues/2285)) ([65fac18](https://github.com/googleapis/java-bigquery/commit/65fac188db2514ae620fb5146055591cfe6ac995)) + ## [2.16.1](https://github.com/googleapis/java-bigquery/compare/v2.16.0...v2.16.1) (2022-09-15) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2630afedd17f..8d4d1b4faec0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.16.2-SNAPSHOT + 2.17.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b3301e0dff30..c0325d099ec7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.16.2-SNAPSHOT + 2.17.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.16.2-SNAPSHOT + 2.17.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 29961a5217c6..3d4466b41697 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.16.2-SNAPSHOT + 2.17.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.23.0 + 2.22.0 pom import @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.16.2-SNAPSHOT + 2.17.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2bfa277900bf..04df1cbf0532 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.16.2-SNAPSHOT + 2.17.0 diff --git a/versions.txt b/versions.txt index 4ce606254a22..6fbb953d3790 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.16.1:2.16.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.17.0:2.17.0 \ No newline at end of file From d1c812e1e9e5c9b5463e7918e0c42572f5d06580 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 4 Oct 2022 16:52:13 +0000 Subject: [PATCH 2106/3441] chore(main): release 2.17.1-SNAPSHOT (#2332) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8d4d1b4faec0..5bdc0b4905ad 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.17.0 + 2.17.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c0325d099ec7..1c4b0548c840 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.17.0 + 2.17.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.17.0 + 2.17.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3d4466b41697..4dce25917761 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.17.0 + 2.17.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.17.0 + 2.17.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 04df1cbf0532..8bd55455df8e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.17.0 + 2.17.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 6fbb953d3790..621e09df71fb 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.17.0:2.17.0 \ No newline at end of file +google-cloud-bigquery:2.17.0:2.17.1-SNAPSHOT \ No newline at end of file From f8053d7773d225b29e669976c6123b5d30ccd6a8 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 6 Oct 2022 03:10:27 +0200 Subject: [PATCH 2107/3441] deps: update cloud client dependencies (#2335) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.12.0` -> `2.13.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.13.0/compatibility-slim/2.12.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.13.0/confidence-slim/2.12.0)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.cloud:google-cloud-datacatalog-bom](https://togithub.com/googleapis/java-datacatalog) | `1.9.4` -> `1.9.5` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.9.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.9.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.9.5/compatibility-slim/1.9.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.9.5/confidence-slim/1.9.4)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.22.0` -> `2.23.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.23.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.23.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.23.1/compatibility-slim/2.22.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.23.1/confidence-slim/2.22.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- pom.xml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 40e670c76c85..0a294f10e42b 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.16.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.17.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.16.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.17.0" ``` ## Authentication diff --git a/pom.xml b/pom.xml index 4dce25917761..d3befb2ea505 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.22.0 + 2.23.0 pom import @@ -176,7 +176,7 @@ com.google.cloud google-cloud-storage - 2.12.0 + 2.13.0 test From 8fba36a1e7c2b63531fe86762d2db347e7fd2ba9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 6 Oct 2022 03:14:29 +0200 Subject: [PATCH 2108/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.14.1 (#2331) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.13.0` -> `2.14.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.14.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.14.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.14.1/compatibility-slim/2.13.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.14.1/confidence-slim/2.13.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 63e1851a8e91..e6b8a8781751 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.13.0 + 2.14.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8bd55455df8e..7e3975351164 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.13.0 + 2.14.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 5fa40f7d47c6..11cf0721f8ce 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.13.0 + 2.14.1 test From e177209b4b797e506f17dd345e8cf0c24713d632 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 6 Oct 2022 03:36:31 +0200 Subject: [PATCH 2109/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.17.0 (#2333) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.16.1` -> `2.17.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.17.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.17.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.17.0/compatibility-slim/2.16.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.17.0/confidence-slim/2.16.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0a294f10e42b..48b9238e144c 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.16.1 + 2.17.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e6b8a8781751..90b79e83ce6e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.16.1 + 2.17.0 From a86c7594d0c9e8a480297b028e108c86f4a1e12a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 6 Oct 2022 05:26:16 +0200 Subject: [PATCH 2110/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.5.6 (#2336) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1](https://togithub.com/googleapis/java-bigqueryconnection/proto-google-cloud-bigqueryconnection-v1) ([source](https://togithub.com/googleapis/java-bigqueryconnection)) | `2.5.5` -> `2.5.6` | [![age](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.5.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.5.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.5.6/compatibility-slim/2.5.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.5.6/confidence-slim/2.5.5)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d3befb2ea505..d814ba1778ce 100644 --- a/pom.xml +++ b/pom.xml @@ -188,7 +188,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.5.5 + 2.5.6 test From 1194eacf23d947a0d923a3b3fd3f9460dfc996b3 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 6 Oct 2022 17:20:32 +0200 Subject: [PATCH 2111/3441] deps: update cloud client dependencies (#2337) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-datacatalog-bom](https://togithub.com/googleapis/java-datacatalog) | `1.9.4` -> `1.9.5` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.9.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.9.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.9.5/compatibility-slim/1.9.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.9.5/confidence-slim/1.9.4)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.23.0` -> `2.23.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.23.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.23.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.23.1/compatibility-slim/2.23.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.23.1/confidence-slim/2.23.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-datacatalog ### [`v1.9.5`](https://togithub.com/googleapis/java-datacatalog/blob/HEAD/CHANGELOG.md#​195-httpsgithubcomgoogleapisjava-datacatalogcomparev194v195-2022-10-05) [Compare Source](https://togithub.com/googleapis/java-datacatalog/compare/v1.9.4...v1.9.5) ##### Dependencies - Update dependency cachetools to v5 ([#​889](https://togithub.com/googleapis/java-datacatalog/issues/889)) ([7cce568](https://togithub.com/googleapis/java-datacatalog/commit/7cce5686c97aed3ced1711b6e0cc63a90d7e38e7)) - Update dependency certifi to v2022.9.24 ([#​869](https://togithub.com/googleapis/java-datacatalog/issues/869)) ([ae9d4e2](https://togithub.com/googleapis/java-datacatalog/commit/ae9d4e2ff9a7d0b5442dc3e2ee1dbe58e51a3f4f)) - Update dependency click to v8.1.3 ([#​874](https://togithub.com/googleapis/java-datacatalog/issues/874)) ([63bfde6](https://togithub.com/googleapis/java-datacatalog/commit/63bfde6058adaad44471cf60c8f5aeb379810c0c)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.4 ([#​897](https://togithub.com/googleapis/java-datacatalog/issues/897)) ([08ba2f7](https://togithub.com/googleapis/java-datacatalog/commit/08ba2f70f660b553c1998179a201ca58df840467)) - Update dependency com.google.protobuf:protobuf-java-util to v3.21.6 ([#​860](https://togithub.com/googleapis/java-datacatalog/issues/860)) ([2d81181](https://togithub.com/googleapis/java-datacatalog/commit/2d81181c6bbb7e99264d61e1f8391a5a56470d5c)) - Update dependency com.google.protobuf:protobuf-java-util to v3.21.7 ([#​891](https://togithub.com/googleapis/java-datacatalog/issues/891)) ([a5666ab](https://togithub.com/googleapis/java-datacatalog/commit/a5666abb1adf25c4092f76264b0f5ca8943f376d)) - Update dependency google-api-core to v2.10.1 ([#​875](https://togithub.com/googleapis/java-datacatalog/issues/875)) ([8a06f04](https://togithub.com/googleapis/java-datacatalog/commit/8a06f046588b12be9d59adff85422d6d52801524)) - Update dependency googleapis-common-protos to v1.56.4 ([#​872](https://togithub.com/googleapis/java-datacatalog/issues/872)) ([c18ed8c](https://togithub.com/googleapis/java-datacatalog/commit/c18ed8c6710c8b705e460bc6684231243a39393e)) - Update dependency jeepney to v0.8.0 ([#​880](https://togithub.com/googleapis/java-datacatalog/issues/880)) ([5a7a86a](https://togithub.com/googleapis/java-datacatalog/commit/5a7a86a0a25254d35930e39101b297ec4ad4be30)) - Update dependency protobuf to v3.20.2 ([#​884](https://togithub.com/googleapis/java-datacatalog/issues/884)) ([8a3ae10](https://togithub.com/googleapis/java-datacatalog/commit/8a3ae10d76bc08704327575e0f763cfdc3cd1e23)) - Update dependency protobuf to v4 ([#​890](https://togithub.com/googleapis/java-datacatalog/issues/890)) ([8ba310c](https://togithub.com/googleapis/java-datacatalog/commit/8ba310c9fbcabf984595e5e9605174e53a14c709)) - Update dependency pyjwt to v2.5.0 ([#​885](https://togithub.com/googleapis/java-datacatalog/issues/885)) ([ed3bf6e](https://togithub.com/googleapis/java-datacatalog/commit/ed3bf6e482450c37c25b3c6ce288d1800543d45c)) - Update dependency zipp to v3.8.1 ([#​888](https://togithub.com/googleapis/java-datacatalog/issues/888)) ([0b6262a](https://togithub.com/googleapis/java-datacatalog/commit/0b6262a107cbe980351e530e212e50fd558f875c))
    googleapis/java-bigquerystorage ### [`v2.23.1`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2231-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2230v2231-2022-10-04) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.23.0...v2.23.1) ##### Bug Fixes - update protobuf to v3.21.7 ([77bf65b](https://togithub.com/googleapis/java-bigquerystorage/commit/77bf65b94e324712ff957cb709d393c1f825ebcf)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-bigquery to v2.17.0 ([#​1821](https://togithub.com/googleapis/java-bigquerystorage/issues/1821)) ([8747079](https://togithub.com/googleapis/java-bigquerystorage/commit/87470799a55b60d671af977dca14140e9f6d94c6))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index d814ba1778ce..d07bca95c083 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.23.0 + 2.23.1 pom import @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.9.4 + 1.9.5 pom import @@ -104,7 +104,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.9.4 + 1.9.5 pom import From b48a6c901de367514def3fd9415d8c98245f8a39 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 6 Oct 2022 18:12:18 +0200 Subject: [PATCH 2112/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.5.6 (#2329) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | `2.4.0` -> `2.5.6` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.6/compatibility-slim/2.4.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.6/confidence-slim/2.4.0)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) | `2.5.4` -> `2.5.6` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.6/compatibility-slim/2.5.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.5.6/confidence-slim/2.5.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index d07bca95c083..2459a2e9df50 100644 --- a/pom.xml +++ b/pom.xml @@ -182,7 +182,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.4.0 + 2.5.6 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 90b79e83ce6e..266cde92a0f7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.4 + 2.5.6 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7e3975351164..0c2c4f45aadc 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.4 + 2.5.6 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 11cf0721f8ce..c273aed7d7e6 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.4 + 2.5.6 test From 8976d58d293f2d973d187833f474594f0912c7c5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 7 Oct 2022 20:04:26 +0200 Subject: [PATCH 2113/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.1.3 (#2339) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/googleapis/java-cloud-bom)) | `26.1.2` -> `26.1.3` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.3/compatibility-slim/26.1.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.3/confidence-slim/26.1.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. ⚠ **Warning**: custom changes will be lost. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 48b9238e144c..a5c83ea6e57a 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.1.2 + 26.1.3 pom import @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.1.2') +implementation platform('com.google.cloud:libraries-bom:26.1.3') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 47b173394d8f..bdf5283df4b2 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.1.2 + 26.1.3 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c273aed7d7e6..de68d67ad467 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.1.2 + 26.1.3 pom import From 4b84192f6ea5b29f1b1c6341e96a1b88deeb1147 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 10 Oct 2022 14:28:14 +0000 Subject: [PATCH 2114/3441] chore: [java] generation with shared deps 3.0.4 (#1641) (#2334) * chore: [java] generation with shared deps 3.0.4 * fix for tests Source-Link: https://togithub.com/googleapis/synthtool/commit/c3ad3cc9d876a3dd897cc511cf5ef921784851ae Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:5643a4e1b729803e67ddceee450e87052527b37cac394bf900b4f8e3d1bb3e9b --- .github/.OwlBot.lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 42327db5e2e3..a4f31d13f782 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:f14e3fefe8e361e85752bd9890c8e56f2fe25f1e89cbb9597e4e3c7a429203a3 + digest: sha256:5643a4e1b729803e67ddceee450e87052527b37cac394bf900b4f8e3d1bb3e9b From 1177391949960017e7d8dcce28ac52b83dd4d048 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 10 Oct 2022 15:02:20 +0000 Subject: [PATCH 2115/3441] chore(main): release 2.17.1 (#2338) :robot: I have created a release *beep* *boop* --- ## [2.17.1](https://togithub.com/googleapis/java-bigquery/compare/v2.17.0...v2.17.1) (2022-10-10) ### Dependencies * Update cloud client dependencies ([#2335](https://togithub.com/googleapis/java-bigquery/issues/2335)) ([f8053d7](https://togithub.com/googleapis/java-bigquery/commit/f8053d7773d225b29e669976c6123b5d30ccd6a8)) * Update cloud client dependencies ([#2337](https://togithub.com/googleapis/java-bigquery/issues/2337)) ([1194eac](https://togithub.com/googleapis/java-bigquery/commit/1194eacf23d947a0d923a3b3fd3f9460dfc996b3)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.5.6 ([#2336](https://togithub.com/googleapis/java-bigquery/issues/2336)) ([a86c759](https://togithub.com/googleapis/java-bigquery/commit/a86c7594d0c9e8a480297b028e108c86f4a1e12a)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 9 +++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae5344d642e0..09caae7e820a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## [2.17.1](https://github.com/googleapis/java-bigquery/compare/v2.17.0...v2.17.1) (2022-10-10) + + +### Dependencies + +* Update cloud client dependencies ([#2335](https://github.com/googleapis/java-bigquery/issues/2335)) ([f8053d7](https://github.com/googleapis/java-bigquery/commit/f8053d7773d225b29e669976c6123b5d30ccd6a8)) +* Update cloud client dependencies ([#2337](https://github.com/googleapis/java-bigquery/issues/2337)) ([1194eac](https://github.com/googleapis/java-bigquery/commit/1194eacf23d947a0d923a3b3fd3f9460dfc996b3)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.5.6 ([#2336](https://github.com/googleapis/java-bigquery/issues/2336)) ([a86c759](https://github.com/googleapis/java-bigquery/commit/a86c7594d0c9e8a480297b028e108c86f4a1e12a)) + ## [2.17.0](https://github.com/googleapis/java-bigquery/compare/v2.16.1...v2.17.0) (2022-10-03) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5bdc0b4905ad..61ece210b18a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.17.1-SNAPSHOT + 2.17.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1c4b0548c840..1dbf15aa5701 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.17.1-SNAPSHOT + 2.17.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.17.1-SNAPSHOT + 2.17.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2459a2e9df50..d2fa29ded066 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.17.1-SNAPSHOT + 2.17.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.17.1-SNAPSHOT + 2.17.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0c2c4f45aadc..aa68e7dacfb4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.17.1-SNAPSHOT + 2.17.1 diff --git a/versions.txt b/versions.txt index 621e09df71fb..c10c65a7503d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.17.0:2.17.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.17.1:2.17.1 \ No newline at end of file From 8602e313d40ac907ae75031c1a36127d7d313664 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 10 Oct 2022 15:38:19 +0000 Subject: [PATCH 2116/3441] chore(main): release 2.17.2-SNAPSHOT (#2344) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 61ece210b18a..d76d18ece79b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.17.1 + 2.17.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1dbf15aa5701..7da20925ffc4 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.17.1 + 2.17.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.17.1 + 2.17.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d2fa29ded066..a8ec5fe37ed7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.17.1 + 2.17.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.17.1 + 2.17.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index aa68e7dacfb4..4d460709090b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.17.1 + 2.17.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index c10c65a7503d..663a2dee6fcd 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.17.1:2.17.1 \ No newline at end of file +google-cloud-bigquery:2.17.1:2.17.2-SNAPSHOT \ No newline at end of file From 7434316873b476c5f7b40ce2e73593de439ba8e0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 11 Oct 2022 11:28:42 +0200 Subject: [PATCH 2117/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.17.1 (#2345) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.17.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a5c83ea6e57a..5d4d46fe7284 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.17.0 + 2.17.1 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.17.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.17.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.17.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.17.1" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 266cde92a0f7..14ed71a5feb5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.17.0 + 2.17.1 From 827e5e720c59ca4ba2a0676c1a836002ed5c2b85 Mon Sep 17 00:00:00 2001 From: Michelle Lohr <98989192+chellebodnar-google@users.noreply.github.com> Date: Wed, 12 Oct 2022 06:18:26 -0700 Subject: [PATCH 2118/3441] doc: Add parameter description for datasetListOptions.labelFilter (#2346) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc: Add parameter description for datasetListOptions.labelFilter * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../src/main/java/com/google/cloud/bigquery/BigQuery.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index b574df32daae..bfcdc542ab65 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -232,6 +232,8 @@ private DatasetListOption(BigQueryRpc.Option option, Object value) { /** * Returns an option to specify a label filter. See * https://cloud.google.com/bigquery/docs/adding-using-labels#filtering_datasets_using_labels + * + * @param labelFilter In the form "labels.key:value" */ public static DatasetListOption labelFilter(String labelFilter) { return new DatasetListOption(BigQueryRpc.Option.LABEL_FILTER, labelFilter); @@ -264,7 +266,7 @@ private DatasetOption(BigQueryRpc.Option option, Object value) { /** * Returns an option to specify the dataset's fields to be returned by the RPC call. If this - * option is not provided all dataset's fields are returned. {@code DatasetOption.fields} can be + * option is not provided all dataset's fields are returned. { code DatasetOption.fields} can be * used to specify only the fields of interest. {@link Dataset#getDatasetId()} is always * returned, even if not specified. */ From 80fa47834f3ef536f553702dee3ddc80e18981bb Mon Sep 17 00:00:00 2001 From: Prashant Mishra <11733935+prash-mi@users.noreply.github.com> Date: Wed, 12 Oct 2022 19:32:02 +0530 Subject: [PATCH 2119/3441] feat: Add executeSelectAsync and Refactor (#2294) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add executeSelectAsync * Add executeSelectAsync * Add ExecuteSelectResponse * Add executeSelectAsync(...) methods * feat: Add executeSelectAsync * implemented ExecuteSelectResponse Builder * Refactored executeSelect. Added getExecuteSelectResponse * marked getExecuteSelectFuture private * marked getExecuteSelectFuture private * Add UT for Async methods * Added IT for async methods * Removed testFastQueryNullSchema as it is no longer needed * removed dryRun calls as now we wait till the job is complete * Added testExecuteSelectAsyncTimeout * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * updated getExecuteSelectFuture * lint * Add getters and setters for BigQuerySQLException * Add javadoc for overloaded executeSelectAsync and refactored getExecuteSelectFuture to handle BigQuerySQLException * Marked ResultSet and BQSQLException optional * minor refactor: getExecuteSelectFuture * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * update getExecuteSelectFuture * update javadoc Co-authored-by: Owl Bot --- .../clirr-ignored-differences.xml | 12 +- .../com/google/cloud/bigquery/Connection.java | 100 ++++++++ .../google/cloud/bigquery/ConnectionImpl.java | 235 ++++++++++++++---- .../cloud/bigquery/ExecuteSelectResponse.java | 47 ++++ .../cloud/bigquery/ConnectionImplTest.java | 160 +++++++++--- .../cloud/bigquery/it/ITBigQueryTest.java | 152 +++++++++++ 6 files changed, 613 insertions(+), 93 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExecuteSelectResponse.java diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 6b76f78eb449..02cfd996700e 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -24,4 +24,14 @@ com/google/cloud/bigquery/RoutineInfo* *RemoteFunctionOptions(*) - \ No newline at end of file + + 7012 + com/google/cloud/bigquery/Connection + com.google.common.util.concurrent.ListenableFuture executeSelectAsync(java.lang.String) + + + 7012 + com/google/cloud/bigquery/Connection + com.google.common.util.concurrent.ListenableFuture executeSelectAsync(java.lang.String, java.util.List, java.util.Map[]) + + \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java index 109838d8b23b..3a30d1f7b2f2 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java @@ -17,6 +17,7 @@ package com.google.cloud.bigquery; import com.google.api.core.BetaApi; +import com.google.common.util.concurrent.ListenableFuture; import java.util.List; import java.util.Map; @@ -89,4 +90,103 @@ public interface Connection { BigQueryResult executeSelect( String sql, List parameters, Map... labels) throws BigQuerySQLException; + + /** + * Execute a SQL statement that returns a single ResultSet and returns a ListenableFuture to + * process the response asynchronously. + * + *

    Example of running a query. + * + *

    +   * {
    +   *   @code
    +   *  ConnectionSettings connectionSettings =
    +   *        ConnectionSettings.newBuilder()
    +   *            .setUseReadAPI(true)
    +   *            .build();
    +   *   Connection connection = bigquery.createConnection(connectionSettings);
    +   *   String selectQuery = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
    +   * ListenableFuture executeSelectFuture = connection.executeSelectAsync(selectQuery);
    +   * ExecuteSelectResponse executeSelectRes = executeSelectFuture.get();
    +   *
    +   *  if(!executeSelectRes.getIsSuccessful()){
    +   * throw executeSelectRes.getBigQuerySQLException();
    +   * }
    +   *
    +   *  BigQueryResult bigQueryResult = executeSelectRes.getBigQueryResult();
    +   * ResultSet rs = bigQueryResult.getResultSet();
    +   * while (rs.next()) {
    +   * System.out.println(rs.getString(1));
    +   * }
    +   *
    +   * 
    + * + * @param sql a static SQL SELECT statement + * @return a ListenableFuture that is used to get the data produced by the query + * @throws BigQuerySQLException upon failure + */ + @BetaApi + ListenableFuture executeSelectAsync(String sql) + throws BigQuerySQLException; + + /** + * Execute a SQL statement that returns a single ResultSet and returns a ListenableFuture to + * process the response asynchronously. + * + *

    Example of running a query. + * + *

    +   * {
    +   *   @code
    +   *  ConnectionSettings connectionSettings =
    +   *        ConnectionSettings.newBuilder()
    +   *            ..setUseReadAPI(true)
    +   *            .build();
    +   *   Connection connection = bigquery.createConnection(connectionSettings);
    +   *     String selectQuery =
    +   *         "SELECT TimestampField, StringField, BooleanField FROM "
    +   *             + MY_TABLE
    +   *             + " WHERE StringField = @stringParam"
    +   *             + " AND IntegerField IN UNNEST(@integerList)";
    +   *     QueryParameterValue stringParameter = QueryParameterValue.string("stringValue");
    +   *     QueryParameterValue intArrayParameter =
    +   *         QueryParameterValue.array(new Integer[] {3, 4}, Integer.class);
    +   *     Parameter stringParam =
    +   *         Parameter.newBuilder().setName("stringParam").setValue(stringParameter).build();
    +   *     Parameter intArrayParam =
    +   *         Parameter.newBuilder().setName("integerList").setValue(intArrayParameter).build();
    +   *     List parameters = ImmutableList.of(stringParam, intArrayParam);
    +   *
    +   *     ListenableFuture executeSelectFut =
    +   *         connection.executeSelectAsync(selectQuery, parameters);
    +   * ExecuteSelectResponse executeSelectRes = executeSelectFuture.get();
    +   *
    +   *  if(!executeSelectRes.getIsSuccessful()){
    +   * throw executeSelectRes.getBigQuerySQLException();
    +   * }
    +   *
    +   *  BigQueryResult bigQueryResult = executeSelectRes.getBigQueryResult();
    +   * ResultSet rs = bigQueryResult.getResultSet();
    +   * while (rs.next()) {
    +   * System.out.println(rs.getString(1));
    +   * }
    +   *
    +   * 
    + * + * @param sql SQL SELECT query + * @param parameters named or positional parameters. The set of query parameters must either be + * all positional or all named parameters. + * @param labels (optional) the labels associated with this query. You can use these to organize + * and group your query jobs. Label keys and values can be no longer than 63 characters, can + * only contain lowercase letters, numeric characters, underscores and dashes. International + * characters are allowed. Label values are optional and Label is a Varargs. You should pass + * all the Labels in a single Map .Label keys must start with a letter and each label in the + * list must have a different key. + * @return a ListenableFuture that is used to get the data produced by the query + * @throws BigQuerySQLException upon failure + */ + @BetaApi + ListenableFuture executeSelectAsync( + String sql, List parameters, Map... labels) + throws BigQuerySQLException; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index 0310832c58e9..eb0072905c3a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -47,6 +47,11 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; +import com.google.common.util.concurrent.ListeningExecutorService; +import com.google.common.util.concurrent.MoreExecutors; import java.io.IOException; import java.util.AbstractList; import java.util.ArrayList; @@ -187,24 +192,7 @@ public BigQueryDryRunResult dryRun(String sql) throws BigQuerySQLException { @BetaApi @Override public BigQueryResult executeSelect(String sql) throws BigQuerySQLException { - try { - // use jobs.query if all the properties of connectionSettings are supported - if (isFastQuerySupported()) { - logger.log(Level.INFO, "\n Using Fast Query Path"); - String projectId = bigQueryOptions.getProjectId(); - QueryRequest queryRequest = createQueryRequest(connectionSettings, sql, null, null); - return queryRpc(projectId, queryRequest, sql, false); - } - // use jobs.insert otherwise - logger.log(Level.INFO, "\n Not Using Fast Query Path, using jobs.insert"); - com.google.api.services.bigquery.model.Job queryJob = - createQueryJob(sql, connectionSettings, null, null); - JobId jobId = JobId.fromPb(queryJob.getJobReference()); - GetQueryResultsResponse firstPage = getQueryResultsFirstPage(jobId); - return getResultSet(firstPage, jobId, sql, false); - } catch (BigQueryException e) { - throw new BigQuerySQLException(e.getMessage(), e, e.getErrors()); - } + return getExecuteSelectResponse(sql, null, null); } /** @@ -227,6 +215,12 @@ public BigQueryResult executeSelect(String sql) throws BigQuerySQLException { public BigQueryResult executeSelect( String sql, List parameters, Map... labels) throws BigQuerySQLException { + return getExecuteSelectResponse(sql, parameters, labels); + } + + private BigQueryResult getExecuteSelectResponse( + String sql, List parameters, Map... labels) + throws BigQuerySQLException { Map labelMap = null; if (labels != null && labels.length == 1) { // We expect label as a key value pair in a single Map @@ -252,29 +246,181 @@ public BigQueryResult executeSelect( throw new BigQuerySQLException(e.getMessage(), e, e.getErrors()); } } + /** + * Execute a SQL statement that returns a single ResultSet and returns a ListenableFuture to + * process the response asynchronously. + * + *

    Example of running a query. + * + *

    +   * {
    +   *   @code
    +   *  ConnectionSettings connectionSettings =
    +   *        ConnectionSettings.newBuilder()
    +   *            .setUseReadAPI(true)
    +   *            .build();
    +   *   Connection connection = bigquery.createConnection(connectionSettings);
    +   *   String selectQuery = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
    +   * ListenableFuture executeSelectFuture = connection.executeSelectAsync(selectQuery);
    +   * ExecuteSelectResponse executeSelectRes = executeSelectFuture.get();
    +   *
    +   *  if(!executeSelectRes.getIsSuccessful()){
    +   * throw executeSelectRes.getBigQuerySQLException();
    +   * }
    +   *
    +   *  BigQueryResult bigQueryResult = executeSelectRes.getBigQueryResult();
    +   * ResultSet rs = bigQueryResult.getResultSet();
    +   * while (rs.next()) {
    +   * System.out.println(rs.getString(1));
    +   * }
    +   *
    +   * 
    + * + * @param sql a static SQL SELECT statement + * @return a ListenableFuture that is used to get the data produced by the query + * @throws BigQuerySQLException upon failure + */ + @BetaApi + @Override + public ListenableFuture executeSelectAsync(String sql) + throws BigQuerySQLException { + return getExecuteSelectFuture(sql, null); + } + + /** This method calls the overloaded executeSelect(...) methods and returns a Future */ + private ListenableFuture getExecuteSelectFuture( + String sql, List parameters, Map... labels) + throws BigQuerySQLException { + ExecutorService execService = + Executors.newFixedThreadPool( + 2); // two fixed threads. One for the async operation and the other for processing the + // callback + ListeningExecutorService lExecService = MoreExecutors.listeningDecorator(execService); + ListenableFuture executeSelectFuture = + lExecService.submit( + () -> { + try { + return ExecuteSelectResponse.newBuilder() + .setResultSet( + this.executeSelect( + sql, + parameters, + labels)) // calling the overloaded executeSelect method, it takes care + // of null parameters and labels + .setIsSuccessful(true) + .build(); + } catch (BigQuerySQLException ex) { + return ExecuteSelectResponse + .newBuilder() // passing back the null result with isSuccessful set to false + .setIsSuccessful(false) + .setBigQuerySQLException(ex) + .build(); + } + }); + + Futures.addCallback( + executeSelectFuture, + new FutureCallback() { + public void onSuccess(ExecuteSelectResponse result) { + execService.shutdownNow(); // shutdown the executor service as we do not need it + } + + public void onFailure(Throwable t) { + logger.log( + Level.WARNING, + "\n" + + String.format( + "Async task failed or cancelled with error %s", t.getMessage())); + try { + close(); // attempt to stop the execution as the developer might have called + // Future.cancel() + } catch (BigQuerySQLException e) { + logger.log( + Level.WARNING, + "\n" + + String.format("Exception while closing the connection %s", e.getMessage())); + } + execService.shutdownNow(); // shutdown the executor service as we do not need it + } + }, + execService); + + return executeSelectFuture; + } + + /** + * Execute a SQL statement that returns a single ResultSet and returns a ListenableFuture to + * process the response asynchronously. + * + *

    Example of running a query. + * + *

    +   * {
    +   *   @code
    +   *  ConnectionSettings connectionSettings =
    +   *        ConnectionSettings.newBuilder()
    +   *            ..setUseReadAPI(true)
    +   *            .build();
    +   *   Connection connection = bigquery.createConnection(connectionSettings);
    +   *     String selectQuery =
    +   *         "SELECT TimestampField, StringField, BooleanField FROM "
    +   *             + MY_TABLE
    +   *             + " WHERE StringField = @stringParam"
    +   *             + " AND IntegerField IN UNNEST(@integerList)";
    +   *     QueryParameterValue stringParameter = QueryParameterValue.string("stringValue");
    +   *     QueryParameterValue intArrayParameter =
    +   *         QueryParameterValue.array(new Integer[] {3, 4}, Integer.class);
    +   *     Parameter stringParam =
    +   *         Parameter.newBuilder().setName("stringParam").setValue(stringParameter).build();
    +   *     Parameter intArrayParam =
    +   *         Parameter.newBuilder().setName("integerList").setValue(intArrayParameter).build();
    +   *     List parameters = ImmutableList.of(stringParam, intArrayParam);
    +   *
    +   *     ListenableFuture executeSelectFut =
    +   *         connection.executeSelectAsync(selectQuery, parameters);
    +   * ExecuteSelectResponse executeSelectRes = executeSelectFuture.get();
    +   *
    +   *  if(!executeSelectRes.getIsSuccessful()){
    +   * throw executeSelectRes.getBigQuerySQLException();
    +   * }
    +   *
    +   *  BigQueryResult bigQueryResult = executeSelectRes.getBigQueryResult();
    +   * ResultSet rs = bigQueryResult.getResultSet();
    +   * while (rs.next()) {
    +   * System.out.println(rs.getString(1));
    +   * }
    +   *
    +   * 
    + * + * @param sql SQL SELECT query + * @param parameters named or positional parameters. The set of query parameters must either be + * all positional or all named parameters. + * @param labels (optional) the labels associated with this query. You can use these to organize + * and group your query jobs. Label keys and values can be no longer than 63 characters, can + * only contain lowercase letters, numeric characters, underscores and dashes. International + * characters are allowed. Label values are optional and Label is a Varargs. You should pass + * all the Labels in a single Map .Label keys must start with a letter and each label in the + * list must have a different key. + * @return a ListenableFuture that is used to get the data produced by the query + * @throws BigQuerySQLException upon failure + */ + @BetaApi + @Override + public ListenableFuture executeSelectAsync( + String sql, List parameters, Map... labels) + throws BigQuerySQLException { + return getExecuteSelectFuture(sql, parameters, labels); + } @VisibleForTesting BigQueryResult getResultSet( GetQueryResultsResponse firstPage, JobId jobId, String sql, Boolean hasQueryParameters) { - if (firstPage.getJobComplete() - && firstPage.getTotalRows() != null - && firstPage.getSchema() - != null) { // firstPage.getTotalRows() is null if job is not complete. We need to make - // sure that the schema is not null, as it is required for the ResultSet - return getSubsequentQueryResultsWithJob( - firstPage.getTotalRows().longValue(), - (long) firstPage.getRows().size(), - jobId, - firstPage, - hasQueryParameters); - } else { // job is still running, use dryrun to get Schema - com.google.api.services.bigquery.model.Job dryRunJob = createDryRunJob(sql); - Schema schema = Schema.fromPb(dryRunJob.getStatistics().getQuery().getSchema()); - // TODO: check how can we get totalRows and pageRows while the job is still running. - // `firstPage.getTotalRows()` returns null - return getSubsequentQueryResultsWithJob( - null, null, jobId, firstPage, schema, hasQueryParameters); - } + return getSubsequentQueryResultsWithJob( + firstPage.getTotalRows().longValue(), + (long) firstPage.getRows().size(), + jobId, + firstPage, + hasQueryParameters); } static class EndOfFieldValueList @@ -337,21 +483,6 @@ private BigQueryResult queryRpc( results.getJobComplete(), results.getSchema() == null, totalRows, pageRows)); JobId jobId = JobId.fromPb(results.getJobReference()); GetQueryResultsResponse firstPage = getQueryResultsFirstPage(jobId); - // We might get null schema from the backend occasionally. Ref: - // https://github.com/googleapis/java-bigquery/issues/2103/. Using queryDryRun in such cases - // to get the schema - if (firstPage.getSchema() == null) { // get schema using dry run - // Log the status if the job was complete complete - logger.log( - Level.WARNING, - "\n" - + "Received null schema, Using dryRun the get the Schema. jobComplete:" - + firstPage.getJobComplete()); - com.google.api.services.bigquery.model.Job dryRunJob = createDryRunJob(sql); - Schema schema = Schema.fromPb(dryRunJob.getStatistics().getQuery().getSchema()); - return getSubsequentQueryResultsWithJob( - totalRows, pageRows, jobId, firstPage, schema, hasQueryParameters); - } return getSubsequentQueryResultsWithJob( totalRows, pageRows, jobId, firstPage, hasQueryParameters); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExecuteSelectResponse.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExecuteSelectResponse.java new file mode 100644 index 000000000000..59745020f556 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExecuteSelectResponse.java @@ -0,0 +1,47 @@ +/* + * Copyright 2022 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import javax.annotation.Nullable; + +@AutoValue +public abstract class ExecuteSelectResponse implements Serializable { + @Nullable + public abstract BigQueryResult getResultSet(); + + public abstract boolean getIsSuccessful(); + + @Nullable + public abstract BigQuerySQLException getBigQuerySQLException(); + + public static Builder newBuilder() { + return new AutoValue_ExecuteSelectResponse.Builder(); + } + + @AutoValue.Builder + public abstract static class Builder { + public abstract ExecuteSelectResponse build(); + + public abstract Builder setResultSet(BigQueryResult bigQueryResult); + + public abstract Builder setIsSuccessful(boolean isSuccessful); + + public abstract Builder setBigQuerySQLException(BigQuerySQLException bigQuerySQLException); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java index 4b1b93487b2d..4b379629cfd2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java @@ -29,6 +29,7 @@ import com.google.cloud.bigquery.spi.BigQueryRpcFactory; import com.google.cloud.bigquery.spi.v2.BigQueryRpc; import com.google.common.collect.ImmutableList; +import com.google.common.util.concurrent.ListenableFuture; import java.math.BigInteger; import java.sql.SQLException; import java.util.AbstractList; @@ -37,6 +38,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.BlockingQueue; +import java.util.concurrent.ExecutionException; import java.util.concurrent.LinkedBlockingDeque; import org.junit.Before; import org.junit.Test; @@ -365,62 +367,39 @@ public void testLegacyQuerySinglePage() throws BigQuerySQLException { .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); } - // calls executeSelect with a Fast query and emulates that no schema is returned with the first - // page + // exercises getSubsequentQueryResultsWithJob for fast running queries @Test - public void testFastQueryNullSchema() throws BigQuerySQLException { + public void testFastQueryLongRunning() throws SQLException { ConnectionImpl connectionSpy = Mockito.spy(connection); - QueryRequest queryReqMock = new QueryRequest(); - com.google.api.services.bigquery.model.JobStatistics stats = - new com.google.api.services.bigquery.model.JobStatistics() - .setQuery(new JobStatistics2().setSchema(FAST_QUERY_TABLESCHEMA)); - com.google.api.services.bigquery.model.Job jobResponseMock = - new com.google.api.services.bigquery.model.Job() - // .setConfiguration(QUERY_JOB.g) - .setJobReference(QUERY_JOB.toPb()) - .setId(JOB) - .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")) - .setStatistics(stats); - // emulating a legacy query + // emulating a fast query doReturn(true).when(connectionSpy).isFastQuerySupported(); + doReturn(GET_QUERY_RESULTS_RESPONSE) + .when(connectionSpy) + .getQueryResultsFirstPage(any(JobId.class)); + + doReturn(TABLE_NAME).when(connectionSpy).getDestinationTable(any(JobId.class)); + doReturn(BQ_RS_MOCK_RES) + .when(connectionSpy) + .tableDataList(any(GetQueryResultsResponse.class), any(JobId.class)); + com.google.api.services.bigquery.model.QueryResponse mockQueryRes = new QueryResponse() .setSchema(FAST_QUERY_TABLESCHEMA) - .setJobComplete(false) // so that it goes to the else part in queryRpc + .setJobComplete(false) .setTotalRows(new BigInteger(String.valueOf(4L))) .setJobReference(QUERY_JOB.toPb()) .setRows(TABLE_ROWS); when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) .thenReturn(mockQueryRes); - doReturn(GET_QUERY_RESULTS_RESPONSE_NULL_SCHEMA) // wiring the null schema for the test case - .when(connectionSpy) - .getQueryResultsFirstPage(any(JobId.class)); - doReturn(BQ_RS_MOCK_RES) - .when(connectionSpy) - .getSubsequentQueryResultsWithJob( - any(Long.class), - any(Long.class), - any(JobId.class), - any(GetQueryResultsResponse.class), - any(Schema.class), - any(Boolean.class)); - doReturn(jobResponseMock).when(connectionSpy).createDryRunJob(any(String.class)); BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); assertEquals(res.getTotalRows(), 2); assertEquals(QUERY_SCHEMA, res.getSchema()); - verify(connectionSpy, times(1)) - .getSubsequentQueryResultsWithJob( - any(Long.class), - any(Long.class), - any(JobId.class), - any(GetQueryResultsResponse.class), - any(Schema.class), - any(Boolean.class)); + verify(bigqueryRpcMock, times(1)).queryRpc(any(String.class), any(QueryRequest.class)); } - // exercises getSubsequentQueryResultsWithJob for fast running queries @Test - public void testFastQueryLongRunning() throws SQLException { + public void testFastQueryLongRunningAsync() + throws SQLException, ExecutionException, InterruptedException { ConnectionImpl connectionSpy = Mockito.spy(connection); // emulating a fast query doReturn(true).when(connectionSpy).isFastQuerySupported(); @@ -442,12 +421,113 @@ public void testFastQueryLongRunning() throws SQLException { .setRows(TABLE_ROWS); when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) .thenReturn(mockQueryRes); - BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); + ListenableFuture executeSelectFut = + connectionSpy.executeSelectAsync(SQL_QUERY); + ExecuteSelectResponse exSelRes = executeSelectFut.get(); + BigQueryResult res = exSelRes.getResultSet(); assertEquals(res.getTotalRows(), 2); assertEquals(QUERY_SCHEMA, res.getSchema()); + assertTrue(exSelRes.getIsSuccessful()); verify(bigqueryRpcMock, times(1)).queryRpc(any(String.class), any(QueryRequest.class)); } + @Test + public void testFastQuerySinglePageAsync() + throws BigQuerySQLException, ExecutionException, InterruptedException { + com.google.api.services.bigquery.model.QueryResponse mockQueryRes = + new QueryResponse().setSchema(FAST_QUERY_TABLESCHEMA).setJobComplete(true); + when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) + .thenReturn(mockQueryRes); + ConnectionImpl connectionSpy = Mockito.spy(connection); + doReturn(BQ_RS_MOCK_RES) + .when(connectionSpy) + .processQueryResponseResults(any(QueryResponse.class)); + + ListenableFuture executeSelectFut = + connectionSpy.executeSelectAsync(SQL_QUERY); + ExecuteSelectResponse exSelRes = executeSelectFut.get(); + BigQueryResult res = exSelRes.getResultSet(); + assertEquals(res.getTotalRows(), 2); + assertEquals(QUERY_SCHEMA, res.getSchema()); + assertTrue(exSelRes.getIsSuccessful()); + verify(connectionSpy, times(1)) + .processQueryResponseResults( + any(com.google.api.services.bigquery.model.QueryResponse.class)); + } + + @Test + public void testExecuteSelectSlowWithParamsAsync() + throws BigQuerySQLException, ExecutionException, InterruptedException { + ConnectionImpl connectionSpy = Mockito.spy(connection); + List parameters = new ArrayList<>(); + Map labels = new HashMap<>(); + doReturn(false).when(connectionSpy).isFastQuerySupported(); + com.google.api.services.bigquery.model.JobStatistics jobStatistics = + new com.google.api.services.bigquery.model.JobStatistics(); + com.google.api.services.bigquery.model.Job jobResponseMock = + new com.google.api.services.bigquery.model.Job() + .setJobReference(QUERY_JOB.toPb()) + .setId(JOB) + .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")) + .setStatistics(jobStatistics); + + doReturn(jobResponseMock) + .when(connectionSpy) + .createQueryJob(SQL_QUERY, connectionSettings, parameters, labels); + doReturn(GET_QUERY_RESULTS_RESPONSE) + .when(connectionSpy) + .getQueryResultsFirstPage(any(JobId.class)); + doReturn(BQ_RS_MOCK_RES) + .when(connectionSpy) + .getResultSet( + any(GetQueryResultsResponse.class), + any(JobId.class), + any(String.class), + any(Boolean.class)); + ListenableFuture executeSelectFut = + connectionSpy.executeSelectAsync(SQL_QUERY, parameters, labels); + ExecuteSelectResponse exSelRes = executeSelectFut.get(); + BigQueryResult res = exSelRes.getResultSet(); + assertTrue(exSelRes.getIsSuccessful()); + assertEquals(res.getTotalRows(), 2); + assertEquals(QUERY_SCHEMA, res.getSchema()); + verify(connectionSpy, times(1)) + .getResultSet( + any(GetQueryResultsResponse.class), + any(JobId.class), + any(String.class), + any(Boolean.class)); + } + + @Test + public void testFastQueryMultiplePagesAsync() + throws BigQuerySQLException, ExecutionException, InterruptedException { + com.google.api.services.bigquery.model.QueryResponse mockQueryRes = + new QueryResponse() + .setSchema(FAST_QUERY_TABLESCHEMA) + .setJobComplete(true) + .setPageToken(PAGE_TOKEN); + when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) + .thenReturn(mockQueryRes); + ConnectionImpl connectionSpy = Mockito.spy(connection); + + doReturn(BQ_RS_MOCK_RES_MULTI_PAGE) + .when(connectionSpy) + .processQueryResponseResults( + any(com.google.api.services.bigquery.model.QueryResponse.class)); + + ListenableFuture executeSelectFut = + connectionSpy.executeSelectAsync(SQL_QUERY); + ExecuteSelectResponse exSelRes = executeSelectFut.get(); + BigQueryResult res = exSelRes.getResultSet(); + assertTrue(exSelRes.getIsSuccessful()); + assertEquals(res.getTotalRows(), 4); + assertEquals(QUERY_SCHEMA, res.getSchema()); + verify(connectionSpy, times(1)) + .processQueryResponseResults( + any(com.google.api.services.bigquery.model.QueryResponse.class)); + } + @Test // Emulates first page response using getQueryResultsFirstPage(jobId) and then subsequent pages // using getQueryResultsFirstPage(jobId) getSubsequentQueryResultsWithJob( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 9a4b18a48e08..8e8f4cc0c514 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -62,6 +62,7 @@ import com.google.cloud.bigquery.Dataset; import com.google.cloud.bigquery.DatasetId; import com.google.cloud.bigquery.DatasetInfo; +import com.google.cloud.bigquery.ExecuteSelectResponse; import com.google.cloud.bigquery.ExternalTableDefinition; import com.google.cloud.bigquery.ExtractJobConfiguration; import com.google.cloud.bigquery.Field; @@ -135,6 +136,7 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import com.google.common.io.BaseEncoding; +import com.google.common.util.concurrent.ListenableFuture; import com.google.gson.JsonObject; import java.io.IOException; import java.io.InputStream; @@ -157,6 +159,7 @@ import java.util.Map; import java.util.Set; import java.util.UUID; +import java.util.concurrent.CancellationException; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -2789,6 +2792,155 @@ public void testReadAPIIterationAndOrder() connection.close(); } + @Test + public void testReadAPIIterationAndOrderAsync() + throws SQLException, ExecutionException, + InterruptedException { // use read API to read 300K records and check the order + String query = + "SELECT date, county, state_name, confirmed_cases, deaths FROM " + + TABLE_ID_LARGE.getTable() + + " where date is not null and county is not null and state_name is not null order by confirmed_cases asc limit 300000"; + + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setPriority( + QueryJobConfiguration.Priority + .INTERACTIVE) // required for this integration test so that isFastQuerySupported + // returns false + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + + ListenableFuture executeSelectFut = connection.executeSelectAsync(query); + ExecuteSelectResponse exSelRes = executeSelectFut.get(); + BigQueryResult bigQueryResult = exSelRes.getResultSet(); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + int lasConfirmedCases = Integer.MIN_VALUE; + while (rs.next()) { // pagination starts after approx 120,000 records + assertNotNull(rs.getDate(0)); + assertNotNull(rs.getString(1)); + assertNotNull(rs.getString(2)); + assertTrue(rs.getInt(3) >= 0); + assertTrue(rs.getInt(4) >= 0); + + // check if the records are sorted + assertTrue(rs.getInt(3) >= lasConfirmedCases); + lasConfirmedCases = rs.getInt(3); + ++cnt; + } + assertEquals(300000, cnt); // total 300000 rows should be read + connection.close(); + } + + @Test + // Cancel the future and check if the operations got cancelled. Tests the wiring of future + // callback. + // TODO(prasmish): Remove this test case if it turns out to be flaky, as expecting the process to + // be uncompleted in 1000ms is nondeterministic! Though very likely it won't be complete in the + // specified amount of time + public void testExecuteSelectAsyncCancel() + throws SQLException, ExecutionException, + InterruptedException { // use read API to read 300K records and check the order + String query = + "SELECT date, county, state_name, confirmed_cases, deaths FROM " + + TABLE_ID_LARGE.getTable() + + " where date is not null and county is not null and state_name is not null order by confirmed_cases asc limit 300000"; + + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setPriority( + QueryJobConfiguration.Priority + .INTERACTIVE) // required for this integration test so that isFastQuerySupported + // returns false + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + + ListenableFuture executeSelectFut = connection.executeSelectAsync(query); + + // Cancel the future with 1000ms delay + Thread testCloseAsync = + new Thread( + () -> { + try { + Thread.sleep(1000); + executeSelectFut.cancel(true); + } catch (InterruptedException e) { + assertNotNull(e); + } + }); + testCloseAsync.start(); + + try { + executeSelectFut.get(); + fail(); // this line should not be reached + } catch (CancellationException e) { + assertNotNull(e); + } + } + + @Test + // Timeouts the future and check if the operations got cancelled. + // TODO(prasmish): Remove this test case if it turns out to be flaky, as expecting the process to + // be uncompleted in 1000ms is nondeterministic! Though very likely it won't be complete in the + // specified amount of time + public void testExecuteSelectAsyncTimeout() + throws SQLException, ExecutionException, + InterruptedException { // use read API to read 300K records and check the order + String query = + "SELECT date, county, state_name, confirmed_cases, deaths FROM " + + TABLE_ID_LARGE.getTable() + + " where date is not null and county is not null and state_name is not null order by confirmed_cases asc limit 300000"; + + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setPriority( + QueryJobConfiguration.Priority + .INTERACTIVE) // required for this integration test so that isFastQuerySupported + // returns false + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + + ListenableFuture executeSelectFut = connection.executeSelectAsync(query); + + try { + executeSelectFut.get(1000, TimeUnit.MILLISECONDS); + fail(); // this line should not be reached + } catch (CancellationException | TimeoutException e) { + assertNotNull(e); + } + } + + @Test + public void testExecuteSelectWithNamedQueryParametersAsync() + throws BigQuerySQLException, ExecutionException, InterruptedException { + String query = + "SELECT TimestampField, StringField, BooleanField FROM " + + TABLE_ID.getTable() + + " WHERE StringField = @stringParam" + + " AND IntegerField IN UNNEST(@integerList)"; + QueryParameterValue stringParameter = QueryParameterValue.string("stringValue"); + QueryParameterValue intArrayParameter = + QueryParameterValue.array(new Integer[] {3, 4}, Integer.class); + Parameter stringParam = + Parameter.newBuilder().setName("stringParam").setValue(stringParameter).build(); + Parameter intArrayParam = + Parameter.newBuilder().setName("integerList").setValue(intArrayParameter).build(); + + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).build(); + Connection connection = bigquery.createConnection(connectionSettings); + List parameters = ImmutableList.of(stringParam, intArrayParam); + + ListenableFuture executeSelectFut = + connection.executeSelectAsync(query, parameters); + ExecuteSelectResponse exSelRes = executeSelectFut.get(); + BigQueryResult rs = exSelRes.getResultSet(); + assertEquals(2, rs.getTotalRows()); + } + // Ref: https://github.com/googleapis/java-bigquery/issues/2070. Adding a pre-submit test to see // if bigquery.createConnection() returns null @Test From ac9226c7a6297d686c0bd77939f084e3faf6090a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 18 Oct 2022 00:58:57 +0200 Subject: [PATCH 2120/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.15 (#2353) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index bdf5283df4b2..929fe4a5841b 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.14 + 0.9.15 true com.example.bigquery.NativeImageBigquerySample From b0f172c1863bbe66c366a75c4a5c06ee5ba049d0 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 18 Oct 2022 00:59:10 +0200 Subject: [PATCH 2121/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.15 (#2352) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 929fe4a5841b..d9af5a2a39cb 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.14 + 0.9.15 test From 7bc59a77a6f3821ac19088a8ee864f5d24bdee2e Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 18 Oct 2022 01:26:14 +0200 Subject: [PATCH 2122/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.6.0 (#2355) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1](https://togithub.com/googleapis/java-bigqueryconnection/proto-google-cloud-bigqueryconnection-v1) ([source](https://togithub.com/googleapis/google-cloud-java)) | `2.5.6` -> `2.6.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.6.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.6.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.6.0/compatibility-slim/2.5.6)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.6.0/confidence-slim/2.5.6)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a8ec5fe37ed7..b9fb065f98a6 100644 --- a/pom.xml +++ b/pom.xml @@ -188,7 +188,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.5.6 + 2.6.0 test From 460ef318297fe5562a983f64c407b7c0fa5a9a8b Mon Sep 17 00:00:00 2001 From: Tim Brown Date: Mon, 17 Oct 2022 16:28:13 -0700 Subject: [PATCH 2123/3441] fix: properly handle external table schema on table update (#2236) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [x] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [x] Ensure the tests and linter pass - [x] Code coverage does not decrease (if any source code was changed) - [x] Appropriate docs were updated (if necessary) Fixes #2235 ☕️ If you write sample code, please follow the [samples format]( https://togithub.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md). --- .../google/cloud/bigquery/BigQueryImpl.java | 18 ++++++--- .../cloud/bigquery/BigQueryImplTest.java | 38 +++++++++++++++++++ 2 files changed, 50 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 3cfbfd6528c7..01048689fe00 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -288,12 +288,7 @@ public Table create(TableInfo tableInfo, TableOption... options) { ? getOptions().getProjectId() : tableInfo.getTableId().getProject()) .toPb(); - // Set schema on the Table for permanent external table - if (tablePb.getExternalDataConfiguration() != null) { - tablePb.setSchema(tablePb.getExternalDataConfiguration().getSchema()); - // clear table schema on ExternalDataConfiguration - tablePb.getExternalDataConfiguration().setSchema(null); - } + handleExternalTableSchema(tablePb); final Map optionsMap = optionMap(options); try { return Table.fromPb( @@ -313,6 +308,16 @@ public com.google.api.services.bigquery.model.Table call() { } } + private void handleExternalTableSchema( + final com.google.api.services.bigquery.model.Table tablePb) { + // Set schema on the Table for permanent external table + if (tablePb.getExternalDataConfiguration() != null) { + tablePb.setSchema(tablePb.getExternalDataConfiguration().getSchema()); + // clear table schema on ExternalDataConfiguration + tablePb.getExternalDataConfiguration().setSchema(null); + } + } + @Override public Routine create(RoutineInfo routineInfo, RoutineOption... options) { final com.google.api.services.bigquery.model.Routine routinePb = @@ -679,6 +684,7 @@ public Table update(TableInfo tableInfo, TableOption... options) { ? getOptions().getProjectId() : tableInfo.getTableId().getProject()) .toPb(); + handleExternalTableSchema(tablePb); final Map optionsMap = optionMap(options); try { return Table.fromPb( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index b00d4b86073b..80ba366f81bc 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -812,6 +812,25 @@ public void testCreateTable() { verify(bigqueryRpcMock).create(tableInfo.toPb(), EMPTY_RPC_OPTIONS); } + @Test + public void tesCreateExternalTable() { + TableInfo createTableInfo = + TableInfo.of(TABLE_ID, ExternalTableDefinition.newBuilder().setSchema(TABLE_SCHEMA).build()) + .setProjectId(OTHER_PROJECT); + + com.google.api.services.bigquery.model.Table expectedCreateInput = + createTableInfo.toPb().setSchema(TABLE_SCHEMA.toPb()); + expectedCreateInput.getExternalDataConfiguration().setSchema(null); + when(bigqueryRpcMock.create(expectedCreateInput, EMPTY_RPC_OPTIONS)) + .thenReturn(createTableInfo.toPb()); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); + Table table = bigquery.create(createTableInfo); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(createTableInfo)), table); + verify(bigqueryRpcMock).create(expectedCreateInput, EMPTY_RPC_OPTIONS); + } + @Test public void testCreateTableWithoutProject() { TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); @@ -1189,6 +1208,25 @@ public void testUpdateTable() { verify(bigqueryRpcMock).patch(updatedTableInfo.toPb(), EMPTY_RPC_OPTIONS); } + @Test + public void testUpdateExternalTableWithNewSchema() { + TableInfo updatedTableInfo = + TableInfo.of(TABLE_ID, ExternalTableDefinition.newBuilder().setSchema(TABLE_SCHEMA).build()) + .setProjectId(OTHER_PROJECT); + + com.google.api.services.bigquery.model.Table expectedPatchInput = + updatedTableInfo.toPb().setSchema(TABLE_SCHEMA.toPb()); + expectedPatchInput.getExternalDataConfiguration().setSchema(null); + when(bigqueryRpcMock.patch(expectedPatchInput, EMPTY_RPC_OPTIONS)) + .thenReturn(updatedTableInfo.toPb()); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); + Table table = bigquery.update(updatedTableInfo); + assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfo)), table); + verify(bigqueryRpcMock).patch(expectedPatchInput, EMPTY_RPC_OPTIONS); + } + @Test public void testUpdateTableWithoutProject() { TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); From b35d3ce6d4c63c0c3ce731b8e566eab7547250f6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 18 Oct 2022 01:30:16 +0200 Subject: [PATCH 2124/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.6.0 (#2354) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/java-bigqueryconnection) ([source](https://togithub.com/googleapis/google-cloud-java)) | `2.5.6` -> `2.6.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.6.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.6.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.6.0/compatibility-slim/2.5.6)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.6.0/confidence-slim/2.5.6)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index b9fb065f98a6..11926ec22823 100644 --- a/pom.xml +++ b/pom.xml @@ -182,7 +182,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.6 + 2.6.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 14ed71a5feb5..1a9a77195db1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.6 + 2.6.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4d460709090b..eb3eac035938 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.6 + 2.6.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index de68d67ad467..9c555a17ec3c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.5.6 + 2.6.0 test From edb2ca03f2e216d6a1083a9dc2bc7f74bed9d3a5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 18 Oct 2022 01:58:18 +0200 Subject: [PATCH 2125/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.10.0 (#2356) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-datacatalog-bom](https://togithub.com/googleapis/java-datacatalog) ([source](https://togithub.com/googleapis/google-cloud-java)) | `1.9.5` -> `1.10.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.10.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.10.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.10.0/compatibility-slim/1.9.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.10.0/confidence-slim/1.9.5)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 11926ec22823..451f766dd520 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.9.5 + 1.10.0 pom import @@ -104,7 +104,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.9.5 + 1.10.0 pom import From 52ec31a6dc3705e09e7ce9cd815241a0fb2cc5d6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 20 Oct 2022 18:46:16 +0200 Subject: [PATCH 2126/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.16 (#2359) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.graalvm.buildtools:native-maven-plugin](https://togithub.com/graalvm/native-build-tools) | `0.9.15` -> `0.9.16` | [![age](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.16/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.16/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.16/compatibility-slim/0.9.15)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.16/confidence-slim/0.9.15)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    graalvm/native-build-tools ### [`v0.9.16`](https://togithub.com/graalvm/native-build-tools/releases/tag/0.9.16) [Compare Source](https://togithub.com/graalvm/native-build-tools/compare/0.9.15...0.9.16) #### What's Changed Read what's new in the [documentation](https://graalvm.github.io/native-build-tools/latest/index.html#changelog). - Test and fix `--exclude-config` regression by [@​sdeleuze](https://togithub.com/sdeleuze) in [https://togithub.com/graalvm/native-build-tools/pull/341](https://togithub.com/graalvm/native-build-tools/pull/341) **Full Changelog**: https://togithub.com/graalvm/native-build-tools/compare/0.9.15...0.9.16
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index d9af5a2a39cb..21877843b7b7 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.15 + 0.9.16 true com.example.bigquery.NativeImageBigquerySample From 85fbce9b729c802d3f75ec2695ad71bed599f2c7 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 20 Oct 2022 23:05:06 +0200 Subject: [PATCH 2127/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.4 (#2360) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 451f766dd520..8dfde3ae68dc 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.5.3 + 1.5.4 From f4e5fc59f4b9bc63c763ec1dc8b75f87defc9ced Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 24 Oct 2022 23:30:25 +0200 Subject: [PATCH 2128/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.16 (#2358) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.graalvm.buildtools:junit-platform-native](https://togithub.com/graalvm/native-build-tools) | `0.9.15` -> `0.9.16` | [![age](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.16/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.16/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.16/compatibility-slim/0.9.15)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.16/confidence-slim/0.9.15)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    graalvm/native-build-tools ### [`v0.9.16`](https://togithub.com/graalvm/native-build-tools/releases/tag/0.9.16) [Compare Source](https://togithub.com/graalvm/native-build-tools/compare/0.9.15...0.9.16) #### What's Changed Read what's new in the [documentation](https://graalvm.github.io/native-build-tools/latest/index.html#changelog). - Test and fix `--exclude-config` regression by [@​sdeleuze](https://togithub.com/sdeleuze) in [https://togithub.com/graalvm/native-build-tools/pull/341](https://togithub.com/graalvm/native-build-tools/pull/341) **Full Changelog**: https://togithub.com/graalvm/native-build-tools/compare/0.9.15...0.9.16
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 21877843b7b7..d24a92c38d02 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.15 + 0.9.16 test From 8e8b6d70e228a63b5dde00b828765110b0222d20 Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Wed, 26 Oct 2022 12:14:31 -0400 Subject: [PATCH 2129/3441] fix: add --add-opens arg to native-image command (#2369) --- .../google-cloud-bigquery/native-image.properties | 1 + 1 file changed, 1 insertion(+) create mode 100644 google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/native-image.properties diff --git a/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/native-image.properties b/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/native-image.properties new file mode 100644 index 000000000000..f7cce6dec262 --- /dev/null +++ b/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/native-image.properties @@ -0,0 +1 @@ +Args = --add-opens=java.base/java.nio=ALL-UNNAMED \ No newline at end of file From 51b2258bbfa542c822668240c8d5f7cc6c63e03c Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 27 Oct 2022 00:10:13 +0200 Subject: [PATCH 2130/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.5 (#2361) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `3.0.4` -> `3.0.5` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.5/compatibility-slim/3.0.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.5/confidence-slim/3.0.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v3.0.5`](https://togithub.com/googleapis/java-shared-dependencies/blob/HEAD/CHANGELOG.md#​305-httpsgithubcomgoogleapisjava-shared-dependenciescomparev304v305-2022-10-20) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v3.0.4...v3.0.5) ##### Dependencies - Update dependency com.fasterxml.jackson:jackson-bom to v2.13.4.20221013 ([#​868](https://togithub.com/googleapis/java-shared-dependencies/issues/868)) ([ffa7272](https://togithub.com/googleapis/java-shared-dependencies/commit/ffa7272e6d4775905e64173b3617555ee355019d)) - Update dependency com.google.auth:google-auth-library-bom to v1.12.0 ([#​870](https://togithub.com/googleapis/java-shared-dependencies/issues/870)) ([6e76f19](https://togithub.com/googleapis/java-shared-dependencies/commit/6e76f19133515b755b78185ce0135943e878a368)) - Update dependency com.google.auth:google-auth-library-bom to v1.12.1 ([#​871](https://togithub.com/googleapis/java-shared-dependencies/issues/871)) ([f7f5dc2](https://togithub.com/googleapis/java-shared-dependencies/commit/f7f5dc26dd54f33954bdf5d43314020de58e055b)) - Update dependency com.google.cloud:grpc-gcp to v1.3.0 ([#​867](https://togithub.com/googleapis/java-shared-dependencies/issues/867)) ([1927a92](https://togithub.com/googleapis/java-shared-dependencies/commit/1927a926c615eabbf0e7377c65232e0e5268220e)) - Update dependency com.google.errorprone:error_prone_annotations to v2.16 ([#​865](https://togithub.com/googleapis/java-shared-dependencies/issues/865)) ([b1734ec](https://togithub.com/googleapis/java-shared-dependencies/commit/b1734ec1c20e7bdf2582b31fde4648aa9f8de2fe)) - Update dependency com.google.protobuf:protobuf-bom to v3.21.8 ([#​872](https://togithub.com/googleapis/java-shared-dependencies/issues/872)) ([1c303f2](https://togithub.com/googleapis/java-shared-dependencies/commit/1c303f2aa5145da4c93605a2d1088e8a3884de81)) - Update dependency gcp-releasetool to v1.8.10 ([#​853](https://togithub.com/googleapis/java-shared-dependencies/issues/853)) ([c815a59](https://togithub.com/googleapis/java-shared-dependencies/commit/c815a5996d28676de015d5dd41e2b0405f4bb9dc)) - Update dependency google-api-core to v2.10.2 ([#​858](https://togithub.com/googleapis/java-shared-dependencies/issues/858)) ([387a156](https://togithub.com/googleapis/java-shared-dependencies/commit/387a15662db0b20e72fe5bf961c02eb2bc4e75d9)) - Update dependency io.grpc:grpc-bom to v1.50.0 ([#​866](https://togithub.com/googleapis/java-shared-dependencies/issues/866)) ([3d3d443](https://togithub.com/googleapis/java-shared-dependencies/commit/3d3d4434636e605f47082641e8e495bbce8f9515)) - Update dependency io.grpc:grpc-bom to v1.50.1 ([#​873](https://togithub.com/googleapis/java-shared-dependencies/issues/873)) ([956309d](https://togithub.com/googleapis/java-shared-dependencies/commit/956309d76c9de46885711a77afbfce0d28971096)) - Update dependency org.checkerframework:checker-qual to v3.26.0 ([#​852](https://togithub.com/googleapis/java-shared-dependencies/issues/852)) ([6926b33](https://togithub.com/googleapis/java-shared-dependencies/commit/6926b33b83d1aa63e0c78b7b8c72cd1d80e28ef3)) - Update dependency org.threeten:threetenbp to v1.6.3 ([#​869](https://togithub.com/googleapis/java-shared-dependencies/issues/869)) ([fa4999b](https://togithub.com/googleapis/java-shared-dependencies/commit/fa4999b6310940e62456e83dad3ec76a7406a218)) - Update dependency typing-extensions to v4.4.0 ([#​854](https://togithub.com/googleapis/java-shared-dependencies/issues/854)) ([43bd31b](https://togithub.com/googleapis/java-shared-dependencies/commit/43bd31b66eef50d82ecf8a692053f10eb385d5c1)) - Update dependency zipp to v3.9.0 ([#​859](https://togithub.com/googleapis/java-shared-dependencies/issues/859)) ([a070ad0](https://togithub.com/googleapis/java-shared-dependencies/commit/a070ad04ef1bab5690487ba13dd4060827851edf)) - Update gax.version to v2.19.4 ([#​875](https://togithub.com/googleapis/java-shared-dependencies/issues/875)) ([227bdd8](https://togithub.com/googleapis/java-shared-dependencies/commit/227bdd86f368b89309814c615828544c29871a5d)) - Update google.core.version to v2.8.21 ([#​861](https://togithub.com/googleapis/java-shared-dependencies/issues/861)) ([8b502bd](https://togithub.com/googleapis/java-shared-dependencies/commit/8b502bd43760a2e52cf107567011d9c5132e74bd)) - Update google.core.version to v2.8.22 ([#​879](https://togithub.com/googleapis/java-shared-dependencies/issues/879)) ([0360e93](https://togithub.com/googleapis/java-shared-dependencies/commit/0360e931dc45034d3c3c554f2c29ad7ea4a0a9bb)) - Update iam.version to v1.6.3 ([#​857](https://togithub.com/googleapis/java-shared-dependencies/issues/857)) ([b39e683](https://togithub.com/googleapis/java-shared-dependencies/commit/b39e6838c3f3f6ef2b350efe8aec1b622893421a)) - Update iam.version to v1.6.4 ([#​862](https://togithub.com/googleapis/java-shared-dependencies/issues/862)) ([85c9794](https://togithub.com/googleapis/java-shared-dependencies/commit/85c979401c34454b2d5681eed9d8b3b3679413be))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8dfde3ae68dc..5541ae7289c1 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20220924-2.0.0 - 3.0.4 + 3.0.5 9.0.0
    From 02102d3fb873e68827a8630a4eb34d4bcabd5f9d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 27 Oct 2022 00:16:14 +0200 Subject: [PATCH 2131/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.7.0 (#2366) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1](https://togithub.com/googleapis/google-cloud-java) | `2.6.0` -> `2.7.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.7.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.7.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.7.0/compatibility-slim/2.6.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.7.0/confidence-slim/2.6.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5541ae7289c1..70f31632a2a4 100644 --- a/pom.xml +++ b/pom.xml @@ -188,7 +188,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.6.0 + 2.7.0 test From 5d2968fbf6626417fb506c14912e24e436261d69 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 27 Oct 2022 00:18:14 +0200 Subject: [PATCH 2132/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.7.0 (#2365) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/google-cloud-java) | `2.6.0` -> `2.7.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.7.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.7.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.7.0/compatibility-slim/2.6.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.7.0/confidence-slim/2.6.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 70f31632a2a4..d9535dd7fe5d 100644 --- a/pom.xml +++ b/pom.xml @@ -182,7 +182,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.6.0 + 2.7.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 1a9a77195db1..ddc91a6da723 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.6.0 + 2.7.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index eb3eac035938..b282c5a49993 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.6.0 + 2.7.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9c555a17ec3c..d629b2bc83fc 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.6.0 + 2.7.0 test From 82e3de5f76644e3530ac795a5eafd1dac4c3be07 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 27 Oct 2022 00:18:15 +0200 Subject: [PATCH 2133/3441] deps: update dependency com.google.code.gson:gson to v2.10 (#2367) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.code.gson:gson](https://togithub.com/google/gson) | `2.9.1` -> `2.10` | [![age](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson/2.10/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson/2.10/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson/2.10/compatibility-slim/2.9.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.code.gson:gson/2.10/confidence-slim/2.9.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d9535dd7fe5d..67b164b02419 100644 --- a/pom.xml +++ b/pom.xml @@ -131,7 +131,7 @@ com.google.code.gson gson - 2.9.1 + 2.10 From 9b796cf0b14094f9442c7e21d7789a673691b87d Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 27 Oct 2022 00:36:15 +0200 Subject: [PATCH 2134/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20221015-2.0.0 (#2370) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20220924-2.0.0` -> `v2-rev20221015-2.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20221015-2.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20221015-2.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20221015-2.0.0/compatibility-slim/v2-rev20220924-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20221015-2.0.0/confidence-slim/v2-rev20220924-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 67b164b02419..0caed4ca65c0 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20220924-2.0.0 + v2-rev20221015-2.0.0 3.0.5 9.0.0
    From b7873db46e174c755657ddcecbb02c0e495c9a1f Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 27 Oct 2022 00:38:14 +0200 Subject: [PATCH 2135/3441] deps: update arrow.version to v10 (major) (#2371) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.arrow:arrow-memory-netty](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `9.0.0` -> `10.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/10.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/10.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/10.0.0/compatibility-slim/9.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/10.0.0/confidence-slim/9.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [org.apache.arrow:arrow-memory-core](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `9.0.0` -> `10.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/10.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/10.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/10.0.0/compatibility-slim/9.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/10.0.0/confidence-slim/9.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [org.apache.arrow:arrow-vector](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `9.0.0` -> `10.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/10.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/10.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/10.0.0/compatibility-slim/9.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/10.0.0/confidence-slim/9.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    apache/arrow ### [`v10.0.0`](https://togithub.com/apache/arrow/compare/apache-arrow-9.0.0...apache-arrow-10.0.0)
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0caed4ca65c0..fb3024cb1056 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ google-cloud-bigquery-parent v2-rev20221015-2.0.0 3.0.5 - 9.0.0 + 10.0.0
    From 7496dec6e853d42471bb5449d47c76364d3a37b5 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 27 Oct 2022 05:04:54 +0200 Subject: [PATCH 2136/3441] test(deps): update dependency org.mockito:mockito-core to v4.8.1 (#2363) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fb3024cb1056..9023160b6471 100644 --- a/pom.xml +++ b/pom.xml @@ -170,7 +170,7 @@ org.mockito mockito-core - 4.8.0 + 4.8.1 test From 09366996e281354cc423cbc3ac97a11b0d48eda6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 27 Oct 2022 05:30:16 +0200 Subject: [PATCH 2137/3441] deps: update cloud client dependencies (#2362) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.13.0` -> `2.14.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.14.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.14.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.14.0/compatibility-slim/2.13.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.14.0/confidence-slim/2.13.0)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.cloud:google-cloud-datacatalog-bom](https://togithub.com/googleapis/google-cloud-java) | `1.10.0` -> `1.11.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.11.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.11.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.11.0/compatibility-slim/1.10.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.11.0/confidence-slim/1.10.0)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.23.1` -> `2.24.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.24.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.24.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.24.0/compatibility-slim/2.23.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.24.0/confidence-slim/2.23.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.14.0`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​2140-httpsgithubcomgoogleapisjava-storagecomparev2131v2140-2022-10-26) ##### Google Cloud Storage gRPC API Preview The first release of `google-cloud-storage` with support for a subset of the Google Cloud Storage gRPC API which is in private preview. The most common operations have all been implemented and are available for experimentation. Given not all public api surface of `google-cloud-storage` classes are supported for gRPC a new annotation `@TransportCompatibility` has been added to various classes, methods and fields/enum values to signal where that thing can be expected to work. As we implement more of the operations these annotations will be updated. All new gRPC related APIs are annotated with `@BetaApi` to denote they are in preview and the possibility of breaking change is present. At this time, opting to use any of the gRPC transport mode means you are okay with the possibility of a breaking change happening. When the APIs are out of preview, we will remove the `@BetaApi` annotation to signal they are now considered stable and will not break outside a major version. ***NOTICE***: Using the gRPC transport is exclusive. Any operations which have not yet been implemented for gRPC will result in a runtime error. For those operations which are not yet implemented, please continue to use the existing HTTP transport. Special thanks (in alphabetical order) to [@​BenWhitehead](https://togithub.com/BenWhitehead), [@​frankyn](https://togithub.com/frankyn), [@​jesselovelace](https://togithub.com/jesselovelace) and [@​sydney-munro](https://togithub.com/sydney-munro) for their hard work on this effort. ##### Notable Improvements 1. For all gRPC media related operations (upload/download) we are now more resource courteous then the corresponding HTTP counterpart. Buffers are fixed to their specified size (can't arbitrarily grow without bounds), are allocated lazily and only if necessary. 1. Investigation into the possibility of backporting these improvements to the HTTP counterparts is ongoing 2. Preview support for Accessing GCS via gRPC 1. Set the environment variable `GOOGLE_CLOUD_ENABLE_DIRECT_PATH_XDS=true`, then run your program. 2. When configuring your `StorageOptions` mimic the following: StorageOptions.grpc() .setAttemptDirectPath(true) .build() 3. Internally the default host endpoint `https://storage.googleapis.com:443` will be transformed to the applicable `google-c2p-experimental:///storage.googleapis.com` 3. Support for `java.time` types on model classes 1. Points in time are now represented with `java.time.OffsetDateTime`, while durations are represented with `java.time.Duration` 2. All existing `Long` centric methods are still present, but have been deprecated in favor of their corresponding `java.time` variant 3. At the next major version, these deprecated methods will be replaced with types from `java.time` and the `java.time` variant methods will be deprecated 4. `com.google.cloud.storage.Storage` now extends `java.lang.AutoClosable` thereby allowing it to be used in a try-with-resource block. 1. When using gRPC transport be sure to call `Storage#close()` when complete so it can clean up the gRPC middleware and resources. 2. When using HTTP transport calling `Storage#close()` will gracefully no-op, allowing for the same style of use regardless of transport. 5. When downloading an object via gRPC idle stream detection is now present which will restart a stream if it is determined to be idle and has remaining retry budget 6. Update equals()/hashCode() methods to follow the expected contract 7. The new gRPC transport based implementation continues to provide idempotency aware automatic retries the same as HTTP 8. Expanded test suite which should bring improved stability and reliability to both HTTP and gRPC transport implementations 9. New `com.google.cloud:google-cloud-storage-bom` maven bom available to use for coordinated dependency version resolution for multiple storage artifacts ##### Not yet implemented 1. All ACL specific operations. 1. These will be implemented in the near future 2. In the interim, reading and setting of ACLs and Default Object ACLs can be performed via Object/Bucket operations 2. All Notification related operations 1. These will be implemented in the near future 2. In the interim, please continue to use the HTTP transport 3. `ReadChannel#capture()`, `RestorableState#restore()`, `WriteChannel#capture()`, `RestorableState#restore()`, `CopyWriter#capture()` and `RestorableState#capture()` are not yet implemented. - These use cases will be implemented in the near future. We are still determining the route we want to take. 4. Batch and "bulk" operations which depend on batch 1. GCS gRPC does not currently define a batch method whereas HTTP does. This means `Storage#batch()` is only supported for HTTP transport. 2. The following methods which currently depend on `Storage#batch()` are currently only supported for HTTP transport - `com.google.cloud.storage.Storage#get(com.google.cloud.storage.BlobId...)` - `com.google.cloud.storage.Storage#get(java.lang.Iterable)` - `com.google.cloud.storage.Storage#update(com.google.cloud.storage.BlobInfo...)` - `com.google.cloud.storage.Storage#update(java.lang.Iterable)` - `com.google.cloud.storage.Storage#delete(com.google.cloud.storage.BlobId...)` - `com.google.cloud.storage.Storage#delete(java.lang.Iterable)` ##### One-Time Inconveniences 1. All classes under `com.google.cloud.storage` which are `Serializable` have new `serialVersionUIDs` and are incompatible with any previous version. 1. Several classes had to change in order to support both HTTP and gRPC at the same time. We were able to preserve Source and Binary runtime level compatibility but had to break Serialization across versions. 2. If you depend upon Java Serialization, please ensure you are using the same version of `google-cloud-storage` in both locations. 2. The cause chains of some Exceptions have changed. 1. When using gRPC, `StorageException` causes will use the corresponding `com.google.api.gax.rpc.ApiException` for the failure type instead of the HTTP `com.google.api.client.googleapis.json.GoogleJsonError` - In an effort to preserve compatibility of your existing error handling code, we will translate from the gRPC error code to the similar HTTP Status code before constructing the `StorageException` preserving the integrity of `StorageException#getCode()` 2. RetryHelper$RetryHelperException will no longer appear in exception cause chains for either HTTP or gRPC ##### Not Supported Given the nature of the gRPC transport a few things are explicitly not supported when using gRPC, and require HTTP transport. Attempting to use any of the following methods will result in a runtime error stating they are not supported for gRPC transport. 1. `Storage#writer(URL)` does not work for gRPC. gRPC does not provide a means of exchanging an HTTP url for a resumable session id 2. `Storage#signUrl` is not supported for gRPC transport. Signed URLs explicitly generate HTTP urls and are only supported for the HTTP transport based implementation. 3. `Storage#generateSignedPostPolicyV4` is not supported for gRPC transport. Signed URLs explicitly generate HTTP urls and are only supported for the HTTP transport based implementation. ##### Known Issues 1. [https://togithub.com/googleapis/java-storage/issues/1736](https://togithub.com/googleapis/java-storage/issues/1736) 2. [https://togithub.com/googleapis/java-storage/issues/1737](https://togithub.com/googleapis/java-storage/issues/1737) ##### Features - Initial preview implementation of Storage over gRPC ([#​1740](https://togithub.com/googleapis/java-storage/issues/1740)) ([95d7ad9](https://togithub.com/googleapis/java-storage/commit/95d7ad9e5cd4106cadb23d9b2221419797fed5c1)) ##### Bug Fixes - Properly implement GrpcBlobReadChannel#isOpen ([#​1733](https://togithub.com/googleapis/java-storage/issues/1733)) ([04e5166](https://togithub.com/googleapis/java-storage/commit/04e51662d1f62d987e89ec4e221a3a02c02eaec1)) - Update BucketInfo.LifecycleRule.LifecycleCondition equals and hashCode to include match prefix and suffix ([#​1729](https://togithub.com/googleapis/java-storage/issues/1729)) ([9664e8a](https://togithub.com/googleapis/java-storage/commit/9664e8a776dc6c7c59e61c1e59333ba88731fe76)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.5 ([#​1725](https://togithub.com/googleapis/java-storage/issues/1725)) ([09bc225](https://togithub.com/googleapis/java-storage/commit/09bc22534bb2a401507fa894123affb432a84350)) ### [`v2.13.1`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​2131-httpsgithubcomgoogleapisjava-storagecomparev2130v2131-2022-10-20) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.13.0...v2.13.1) ##### Bug Fixes - Avoid unexpected initialization of `JacksonParser` in Graal 22.2 ([#​1709](https://togithub.com/googleapis/java-storage/issues/1709)) ([eca1a03](https://togithub.com/googleapis/java-storage/commit/eca1a03c5d7656179a04058a2af94300f1dc0930)) - Update BucketInfo.LifecycleRule#fromPb to wire through MatchesPrefix & MatchesSuffix ([#​1717](https://togithub.com/googleapis/java-storage/issues/1717)) ([eae3cf2](https://togithub.com/googleapis/java-storage/commit/eae3cf2735cd4adab598d311fd64b8906972ffc3)) ##### Dependencies - Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.15 ([#​1711](https://togithub.com/googleapis/java-storage/issues/1711)) ([f188a07](https://togithub.com/googleapis/java-storage/commit/f188a07b09e0787f958f714333337fc92657a824)) - Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.16 ([#​1721](https://togithub.com/googleapis/java-storage/issues/1721)) ([631b98d](https://togithub.com/googleapis/java-storage/commit/631b98df1a7d44358fbeacb95f2e2a3d590198d1))
    googleapis/java-bigquerystorage ### [`v2.24.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2240-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2231v2240-2022-10-25) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.23.1...v2.24.0) ##### Features - Add getInflightWaitSeconds implementation ([#​1835](https://togithub.com/googleapis/java-bigquerystorage/issues/1835)) ([b569116](https://togithub.com/googleapis/java-bigquerystorage/commit/b569116179700123e405eb7712abb136456f2f26)) - **shortsAndBigDecimals:** Add shorts and big decimals ([#​1674](https://togithub.com/googleapis/java-bigquerystorage/issues/1674)) ([604d7df](https://togithub.com/googleapis/java-bigquerystorage/commit/604d7df2afa54e445a4d310e5293d8d19901d565)) ##### Bug Fixes - **java:** Restore native image configurations ([#​1844](https://togithub.com/googleapis/java-bigquerystorage/issues/1844)) ([8ce670a](https://togithub.com/googleapis/java-bigquerystorage/commit/8ce670a487a192807ccfd58613fc271d9402ca7c)) - Remove the client lib header setting since after router migration, it is no longer needed ([#​1842](https://togithub.com/googleapis/java-bigquerystorage/issues/1842)) ([5f3b821](https://togithub.com/googleapis/java-bigquerystorage/commit/5f3b8214116b17b315d589bfde184e0e045cff69)) ##### Dependencies - Update dependency com.google.auto.value:auto-value to v1.10 ([#​1825](https://togithub.com/googleapis/java-bigquerystorage/issues/1825)) ([f7b8f2b](https://togithub.com/googleapis/java-bigquerystorage/commit/f7b8f2b4df8ca9b306a75d46eb223124ac9bdebb)) - Update dependency com.google.auto.value:auto-value-annotations to v1.10 ([#​1826](https://togithub.com/googleapis/java-bigquerystorage/issues/1826)) ([37eb8a1](https://togithub.com/googleapis/java-bigquerystorage/commit/37eb8a1df34e8ae4d5e2849c76d9a591ec5505d4)) - Update dependency com.google.cloud:google-cloud-bigquery to v2.17.1 ([#​1829](https://togithub.com/googleapis/java-bigquerystorage/issues/1829)) ([7e8d900](https://togithub.com/googleapis/java-bigquerystorage/commit/7e8d90037f5ae426882f90ab251d315767b3a6b7)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.5 ([#​1840](https://togithub.com/googleapis/java-bigquerystorage/issues/1840)) ([474756b](https://togithub.com/googleapis/java-bigquerystorage/commit/474756bd6547254ed6d761a73f2e69920fa79458))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 9023160b6471..ba852664da6e 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.23.1 + 2.24.0 pom import @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.10.0 + 1.11.0 pom import @@ -104,7 +104,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.10.0 + 1.11.0 pom import @@ -176,7 +176,7 @@ com.google.cloud google-cloud-storage - 2.13.0 + 2.14.0 test From 1611f5a1004102278542f1c43154f9f4c50bc6a6 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 27 Oct 2022 16:55:38 +0200 Subject: [PATCH 2138/3441] build(deps): update dependency org.apache.maven.plugins:maven-shade-plugin to v3.4.1 (#2373) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d76d18ece79b..728aad396a99 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -42,7 +42,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.4.0 + 3.4.1 package From db24409c35835fc13d7e40884c91f909a18d7653 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 27 Oct 2022 12:35:29 -0400 Subject: [PATCH 2139/3441] chore: [java] remove flatten plugin dependency check (#1663) (#2374) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update .OwlBot.lock.yaml * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.in | 2 ++ .kokoro/requirements.txt | 14 +++++++++----- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index a4f31d13f782..459487d38827 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:5643a4e1b729803e67ddceee450e87052527b37cac394bf900b4f8e3d1bb3e9b + digest: sha256:ae72564aa9c368b9ccd96f4af21f87889fd83b9e60635b80844deb5a2ccd08aa diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index cfdc2e7ed955..6aa7cf2b55ee 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -16,10 +16,12 @@ pycparser==2.21 pyperclip==1.8.2 python-dateutil==2.8.2 requests==2.27.1 +certifi==2022.9.24 importlib-metadata==4.8.3 zipp==3.6.0 google_api_core==2.8.2 google-cloud-storage==2.0.0 +google-resumable-media==2.3.3 google-cloud-core==2.3.1 typing-extensions==4.1.1 urllib3==1.26.12 diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 170f1c63abb7..02ae42bb4039 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -16,10 +16,12 @@ cachetools==4.2.4 \ # via # -r requirements.in # google-auth -certifi==2022.9.14 \ - --hash=sha256:36973885b9542e6bd01dea287b2b4b3b21236307c56324fcc3f1160f2d655ed5 \ - --hash=sha256:e232343de1ab72c2aa521b625c80f699e356830fd0e2c620b465b304b17b0516 - # via requests +certifi==2022.9.24 \ + --hash=sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14 \ + --hash=sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382 + # via + # -r requirements.in + # requests cffi==1.15.1 \ --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ --hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \ @@ -218,7 +220,9 @@ google-crc32c==1.3.0 \ google-resumable-media==2.3.3 \ --hash=sha256:27c52620bd364d1c8116eaac4ea2afcbfb81ae9139fb3199652fcac1724bfb6c \ --hash=sha256:5b52774ea7a829a8cdaa8bd2d4c3d4bc660c91b30857ab2668d0eb830f4ea8c5 - # via google-cloud-storage + # via + # -r requirements.in + # google-cloud-storage googleapis-common-protos==1.56.3 \ --hash=sha256:6f1369b58ed6cf3a4b7054a44ebe8d03b29c309257583a2bbdc064cd1e4a1442 \ --hash=sha256:87955d7b3a73e6e803f2572a33179de23989ebba725e05ea42f24838b792e461 From 47fdca63f62fa01e85aee546908f9bfc811235c0 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 28 Oct 2022 04:14:14 +0000 Subject: [PATCH 2140/3441] chore(main): release 2.18.0 (#2347) :robot: I have created a release *beep* *boop* --- ## [2.18.0](https://togithub.com/googleapis/java-bigquery/compare/v2.17.1...v2.18.0) (2022-10-27) ### Features * Add executeSelectAsync and Refactor ([#2294](https://togithub.com/googleapis/java-bigquery/issues/2294)) ([80fa478](https://togithub.com/googleapis/java-bigquery/commit/80fa47834f3ef536f553702dee3ddc80e18981bb)) ### Bug Fixes * Add --add-opens arg to native-image command ([#2369](https://togithub.com/googleapis/java-bigquery/issues/2369)) ([8e8b6d7](https://togithub.com/googleapis/java-bigquery/commit/8e8b6d70e228a63b5dde00b828765110b0222d20)) * Properly handle external table schema on table update ([#2236](https://togithub.com/googleapis/java-bigquery/issues/2236)) ([460ef31](https://togithub.com/googleapis/java-bigquery/commit/460ef318297fe5562a983f64c407b7c0fa5a9a8b)) ### Dependencies * Update arrow.version to v10 (major) ([#2371](https://togithub.com/googleapis/java-bigquery/issues/2371)) ([b7873db](https://togithub.com/googleapis/java-bigquery/commit/b7873db46e174c755657ddcecbb02c0e495c9a1f)) * Update cloud client dependencies ([#2362](https://togithub.com/googleapis/java-bigquery/issues/2362)) ([0936699](https://togithub.com/googleapis/java-bigquery/commit/09366996e281354cc423cbc3ac97a11b0d48eda6)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.6.0 ([#2355](https://togithub.com/googleapis/java-bigquery/issues/2355)) ([7bc59a7](https://togithub.com/googleapis/java-bigquery/commit/7bc59a77a6f3821ac19088a8ee864f5d24bdee2e)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.7.0 ([#2366](https://togithub.com/googleapis/java-bigquery/issues/2366)) ([02102d3](https://togithub.com/googleapis/java-bigquery/commit/02102d3fb873e68827a8630a4eb34d4bcabd5f9d)) * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20221015-2.0.0 ([#2370](https://togithub.com/googleapis/java-bigquery/issues/2370)) ([9b796cf](https://togithub.com/googleapis/java-bigquery/commit/9b796cf0b14094f9442c7e21d7789a673691b87d)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.10.0 ([#2356](https://togithub.com/googleapis/java-bigquery/issues/2356)) ([edb2ca0](https://togithub.com/googleapis/java-bigquery/commit/edb2ca03f2e216d6a1083a9dc2bc7f74bed9d3a5)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.5 ([#2361](https://togithub.com/googleapis/java-bigquery/issues/2361)) ([51b2258](https://togithub.com/googleapis/java-bigquery/commit/51b2258bbfa542c822668240c8d5f7cc6c63e03c)) * Update dependency com.google.code.gson:gson to v2.10 ([#2367](https://togithub.com/googleapis/java-bigquery/issues/2367)) ([82e3de5](https://togithub.com/googleapis/java-bigquery/commit/82e3de5f76644e3530ac795a5eafd1dac4c3be07)) * Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.15 ([#2352](https://togithub.com/googleapis/java-bigquery/issues/2352)) ([b0f172c](https://togithub.com/googleapis/java-bigquery/commit/b0f172c1863bbe66c366a75c4a5c06ee5ba049d0)) * Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.16 ([#2358](https://togithub.com/googleapis/java-bigquery/issues/2358)) ([f4e5fc5](https://togithub.com/googleapis/java-bigquery/commit/f4e5fc59f4b9bc63c763ec1dc8b75f87defc9ced)) * Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.15 ([#2353](https://togithub.com/googleapis/java-bigquery/issues/2353)) ([ac9226c](https://togithub.com/googleapis/java-bigquery/commit/ac9226c7a6297d686c0bd77939f084e3faf6090a)) * Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.16 ([#2359](https://togithub.com/googleapis/java-bigquery/issues/2359)) ([52ec31a](https://togithub.com/googleapis/java-bigquery/commit/52ec31a6dc3705e09e7ce9cd815241a0fb2cc5d6)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 29 +++++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 36 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 09caae7e820a..3bd01980b484 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,34 @@ # Changelog +## [2.18.0](https://github.com/googleapis/java-bigquery/compare/v2.17.1...v2.18.0) (2022-10-27) + + +### Features + +* Add executeSelectAsync and Refactor ([#2294](https://github.com/googleapis/java-bigquery/issues/2294)) ([80fa478](https://github.com/googleapis/java-bigquery/commit/80fa47834f3ef536f553702dee3ddc80e18981bb)) + + +### Bug Fixes + +* Add --add-opens arg to native-image command ([#2369](https://github.com/googleapis/java-bigquery/issues/2369)) ([8e8b6d7](https://github.com/googleapis/java-bigquery/commit/8e8b6d70e228a63b5dde00b828765110b0222d20)) +* Properly handle external table schema on table update ([#2236](https://github.com/googleapis/java-bigquery/issues/2236)) ([460ef31](https://github.com/googleapis/java-bigquery/commit/460ef318297fe5562a983f64c407b7c0fa5a9a8b)) + + +### Dependencies + +* Update arrow.version to v10 (major) ([#2371](https://github.com/googleapis/java-bigquery/issues/2371)) ([b7873db](https://github.com/googleapis/java-bigquery/commit/b7873db46e174c755657ddcecbb02c0e495c9a1f)) +* Update cloud client dependencies ([#2362](https://github.com/googleapis/java-bigquery/issues/2362)) ([0936699](https://github.com/googleapis/java-bigquery/commit/09366996e281354cc423cbc3ac97a11b0d48eda6)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.6.0 ([#2355](https://github.com/googleapis/java-bigquery/issues/2355)) ([7bc59a7](https://github.com/googleapis/java-bigquery/commit/7bc59a77a6f3821ac19088a8ee864f5d24bdee2e)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.7.0 ([#2366](https://github.com/googleapis/java-bigquery/issues/2366)) ([02102d3](https://github.com/googleapis/java-bigquery/commit/02102d3fb873e68827a8630a4eb34d4bcabd5f9d)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20221015-2.0.0 ([#2370](https://github.com/googleapis/java-bigquery/issues/2370)) ([9b796cf](https://github.com/googleapis/java-bigquery/commit/9b796cf0b14094f9442c7e21d7789a673691b87d)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.10.0 ([#2356](https://github.com/googleapis/java-bigquery/issues/2356)) ([edb2ca0](https://github.com/googleapis/java-bigquery/commit/edb2ca03f2e216d6a1083a9dc2bc7f74bed9d3a5)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.5 ([#2361](https://github.com/googleapis/java-bigquery/issues/2361)) ([51b2258](https://github.com/googleapis/java-bigquery/commit/51b2258bbfa542c822668240c8d5f7cc6c63e03c)) +* Update dependency com.google.code.gson:gson to v2.10 ([#2367](https://github.com/googleapis/java-bigquery/issues/2367)) ([82e3de5](https://github.com/googleapis/java-bigquery/commit/82e3de5f76644e3530ac795a5eafd1dac4c3be07)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.15 ([#2352](https://github.com/googleapis/java-bigquery/issues/2352)) ([b0f172c](https://github.com/googleapis/java-bigquery/commit/b0f172c1863bbe66c366a75c4a5c06ee5ba049d0)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.16 ([#2358](https://github.com/googleapis/java-bigquery/issues/2358)) ([f4e5fc5](https://github.com/googleapis/java-bigquery/commit/f4e5fc59f4b9bc63c763ec1dc8b75f87defc9ced)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.15 ([#2353](https://github.com/googleapis/java-bigquery/issues/2353)) ([ac9226c](https://github.com/googleapis/java-bigquery/commit/ac9226c7a6297d686c0bd77939f084e3faf6090a)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.16 ([#2359](https://github.com/googleapis/java-bigquery/issues/2359)) ([52ec31a](https://github.com/googleapis/java-bigquery/commit/52ec31a6dc3705e09e7ce9cd815241a0fb2cc5d6)) + ## [2.17.1](https://github.com/googleapis/java-bigquery/compare/v2.17.0...v2.17.1) (2022-10-10) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 728aad396a99..11dca9455339 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.17.2-SNAPSHOT + 2.18.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7da20925ffc4..08884919b260 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.17.2-SNAPSHOT + 2.18.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.17.2-SNAPSHOT + 2.18.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ba852664da6e..0a3312dcd06f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.17.2-SNAPSHOT + 2.18.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.17.2-SNAPSHOT + 2.18.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b282c5a49993..3867b8b7f3f5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.17.2-SNAPSHOT + 2.18.0 diff --git a/versions.txt b/versions.txt index 663a2dee6fcd..a6b08ce13b7d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.17.1:2.17.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.18.0:2.18.0 \ No newline at end of file From 5c1584c42b23dd743a2f50b66dd6211ab2afde2a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 28 Oct 2022 04:40:16 +0000 Subject: [PATCH 2141/3441] chore(main): release 2.18.1-SNAPSHOT (#2377) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 11dca9455339..01678941d659 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.18.0 + 2.18.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 08884919b260..0ba387fa8bdf 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.18.0 + 2.18.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.18.0 + 2.18.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0a3312dcd06f..4811921708c4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.18.0 + 2.18.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.18.0 + 2.18.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3867b8b7f3f5..87c793677e3c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.18.0 + 2.18.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index a6b08ce13b7d..dfce1b24cb14 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.18.0:2.18.0 \ No newline at end of file +google-cloud-bigquery:2.18.0:2.18.1-SNAPSHOT \ No newline at end of file From 2ff6d52ee6da9e7a4ca0649572473800bf77e392 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 28 Oct 2022 17:47:48 +0200 Subject: [PATCH 2142/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.18.0 (#2378) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.18.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 5d4d46fe7284..8a33cf0211f1 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.17.1 + 2.18.0 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.17.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.18.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.17.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.18.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ddc91a6da723..a51c490629b2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.17.1 + 2.18.0 From d528ac20edc59236042101c8e8454b7836f4dc8b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Fri, 28 Oct 2022 17:49:14 +0200 Subject: [PATCH 2143/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.15.0 (#2375) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a51c490629b2..20a4e3a798ba 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.14.1 + 2.15.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 87c793677e3c..b2218241d994 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.14.1 + 2.15.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d629b2bc83fc..790e66014fef 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.14.1 + 2.15.0 test From cb938c15e65ddb7c3946c8343aec32c5ef601586 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 28 Oct 2022 12:22:40 -0400 Subject: [PATCH 2144/3441] chore(deps): update dependency protobuf to v3.20.2 (#1659) (#2376) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency protobuf to v3.20.2 (#1659) Co-authored-by: Jeffrey Rennie Co-authored-by: Tomo Suzuki Source-Link: https://github.com/googleapis/synthtool/commit/b59cf7b5a91ecab29e21fdfbb7e3b81066229be4 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:894d56f45fc3f4f0d5f3bcf790846419ee2d8e44715eae8917d6a1bba2b7283d * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot Co-authored-by: Jeffrey Rennie Co-authored-by: Tomo Suzuki --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.txt | 50 ++++++++++++++++++--------------------- 2 files changed, 24 insertions(+), 28 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 459487d38827..82b5a1a2e2e1 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:ae72564aa9c368b9ccd96f4af21f87889fd83b9e60635b80844deb5a2ccd08aa + digest: sha256:894d56f45fc3f4f0d5f3bcf790846419ee2d8e44715eae8917d6a1bba2b7283d diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 02ae42bb4039..4a16dfadf82a 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -339,33 +339,29 @@ packaging==21.3 \ # via # -r requirements.in # gcp-releasetool -protobuf==3.19.5 \ - --hash=sha256:1867f93b06a183f87696871bb8d1e99ee71dbb69d468ce1f0cc8bf3d30f982f3 \ - --hash=sha256:3c4160b601220627f7e91154e572baf5e161a9c3f445a8242d536ee3d0b7b17c \ - --hash=sha256:4ee2af7051d3b10c8a4fe6fd1a2c69f201fea36aeee7086cf202a692e1b99ee1 \ - --hash=sha256:5266c36cc0af3bb3dbf44f199d225b33da66a9a5c3bdc2b14865ad10eddf0e37 \ - --hash=sha256:5470f892961af464ae6eaf0f3099e2c1190ae8c7f36f174b89491281341f79ca \ - --hash=sha256:66d14b5b90090353efe75c9fb1bf65ef7267383034688d255b500822e37d5c2f \ - --hash=sha256:67efb5d20618020aa9596e17bfc37ca068c28ec0c1507d9507f73c93d46c9855 \ - --hash=sha256:696e6cfab94cc15a14946f2bf72719dced087d437adbd994fff34f38986628bc \ - --hash=sha256:6a02172b9650f819d01fb8e224fc69b0706458fc1ab4f1c669281243c71c1a5e \ - --hash=sha256:6eca9ae238ba615d702387a2ddea635d535d769994a9968c09a4ca920c487ab9 \ - --hash=sha256:950abd6c00e7b51f87ae8b18a0ce4d69fea217f62f171426e77de5061f6d9850 \ - --hash=sha256:9e1d74032f56ff25f417cfe84c8147047732e5059137ca42efad20cbbd25f5e0 \ - --hash=sha256:9e42b1cf2ecd8a1bd161239e693f22035ba99905ae6d7efeac8a0546c7ec1a27 \ - --hash=sha256:9f957ef53e872d58a0afd3bf6d80d48535d28c99b40e75e6634cbc33ea42fd54 \ - --hash=sha256:a89aa0c042e61e11ade320b802d6db4ee5391d8d973e46d3a48172c1597789f8 \ - --hash=sha256:c0f80876a8ff0ae7064084ed094eb86497bd5a3812e6fc96a05318b92301674e \ - --hash=sha256:c44e3282cff74ad18c7e8a0375f407f69ee50c2116364b44492a196293e08b21 \ - --hash=sha256:d249519ba5ecf5dd6b18150c9b6bcde510b273714b696f3923ff8308fc11ae49 \ - --hash=sha256:d3973a2d58aefc7d1230725c2447ce7f86a71cbc094b86a77c6ee1505ac7cdb1 \ - --hash=sha256:dca2284378a5f2a86ffed35c6ac147d14c48b525eefcd1083e5a9ce28dfa8657 \ - --hash=sha256:e63b0b3c42e51c94add62b010366cd4979cb6d5f06158bcae8faac4c294f91e1 \ - --hash=sha256:f2b599a21c9a32e171ec29a2ac54e03297736c578698e11b099d031f79da114b \ - --hash=sha256:f2bde37667b18c2b5280df83bc799204394a5d2d774e4deaf9de0eb741df6833 \ - --hash=sha256:f4f909f4dde413dec435a44b0894956d55bb928ded7d6e3c726556ca4c796e84 \ - --hash=sha256:f976234e20ab2785f54224bcdafa027674e23663b132fa3ca0caa291a6cfbde7 \ - --hash=sha256:f9cebda093c2f6bfed88f1c17cdade09d4d96096421b344026feee236532d4de +protobuf==3.20.2 \ + --hash=sha256:03d76b7bd42ac4a6e109742a4edf81ffe26ffd87c5993126d894fe48a120396a \ + --hash=sha256:09e25909c4297d71d97612f04f41cea8fa8510096864f2835ad2f3b3df5a5559 \ + --hash=sha256:18e34a10ae10d458b027d7638a599c964b030c1739ebd035a1dfc0e22baa3bfe \ + --hash=sha256:291fb4307094bf5ccc29f424b42268640e00d5240bf0d9b86bf3079f7576474d \ + --hash=sha256:2c0b040d0b5d5d207936ca2d02f00f765906622c07d3fa19c23a16a8ca71873f \ + --hash=sha256:384164994727f274cc34b8abd41a9e7e0562801361ee77437099ff6dfedd024b \ + --hash=sha256:3cb608e5a0eb61b8e00fe641d9f0282cd0eedb603be372f91f163cbfbca0ded0 \ + --hash=sha256:5d9402bf27d11e37801d1743eada54372f986a372ec9679673bfcc5c60441151 \ + --hash=sha256:712dca319eee507a1e7df3591e639a2b112a2f4a62d40fe7832a16fd19151750 \ + --hash=sha256:7a5037af4e76c975b88c3becdf53922b5ffa3f2cddf657574a4920a3b33b80f3 \ + --hash=sha256:8228e56a865c27163d5d1d1771d94b98194aa6917bcfb6ce139cbfa8e3c27334 \ + --hash=sha256:84a1544252a933ef07bb0b5ef13afe7c36232a774affa673fc3636f7cee1db6c \ + --hash=sha256:84fe5953b18a383fd4495d375fe16e1e55e0a3afe7b4f7b4d01a3a0649fcda9d \ + --hash=sha256:9c673c8bfdf52f903081816b9e0e612186684f4eb4c17eeb729133022d6032e3 \ + --hash=sha256:a9e5ae5a8e8985c67e8944c23035a0dff2c26b0f5070b2f55b217a1c33bbe8b1 \ + --hash=sha256:b4fdb29c5a7406e3f7ef176b2a7079baa68b5b854f364c21abe327bbeec01cdb \ + --hash=sha256:c184485e0dfba4dfd451c3bd348c2e685d6523543a0f91b9fd4ae90eb09e8422 \ + --hash=sha256:c9cdf251c582c16fd6a9f5e95836c90828d51b0069ad22f463761d27c6c19019 \ + --hash=sha256:e39cf61bb8582bda88cdfebc0db163b774e7e03364bbf9ce1ead13863e81e359 \ + --hash=sha256:e8fbc522303e09036c752a0afcc5c0603e917222d8bedc02813fd73b4b4ed804 \ + --hash=sha256:f34464ab1207114e73bba0794d1257c150a2b89b7a9faf504e00af7c9fd58978 \ + --hash=sha256:f52dabc96ca99ebd2169dadbe018824ebda08a795c7684a0b7d203a290f3adb0 # via # -r requirements.in # gcp-docuploader From 0908652a2e8baf46b142a8ba31c0967e593986d6 Mon Sep 17 00:00:00 2001 From: Blake Li Date: Fri, 28 Oct 2022 19:25:13 +0000 Subject: [PATCH 2145/3441] deps: Remove version declaration for gson (#2379) --- pom.xml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/pom.xml b/pom.xml index 4811921708c4..884b93589d1e 100644 --- a/pom.xml +++ b/pom.xml @@ -127,13 +127,6 @@ ${google-api-services-bigquery.version} - - - com.google.code.gson - gson - 2.10 - - org.threeten From e26d281639eb8a9f95db24e8be9a21529fca847f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 28 Oct 2022 19:50:15 +0000 Subject: [PATCH 2146/3441] chore(main): release 2.18.1 (#2380) :robot: I have created a release *beep* *boop* --- ## [2.18.1](https://togithub.com/googleapis/java-bigquery/compare/v2.18.0...v2.18.1) (2022-10-28) ### Dependencies * Remove version declaration for gson ([#2379](https://togithub.com/googleapis/java-bigquery/issues/2379)) ([0908652](https://togithub.com/googleapis/java-bigquery/commit/0908652a2e8baf46b142a8ba31c0967e593986d6)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bd01980b484..5dc380fd8eb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.18.1](https://github.com/googleapis/java-bigquery/compare/v2.18.0...v2.18.1) (2022-10-28) + + +### Dependencies + +* Remove version declaration for gson ([#2379](https://github.com/googleapis/java-bigquery/issues/2379)) ([0908652](https://github.com/googleapis/java-bigquery/commit/0908652a2e8baf46b142a8ba31c0967e593986d6)) + ## [2.18.0](https://github.com/googleapis/java-bigquery/compare/v2.17.1...v2.18.0) (2022-10-27) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 01678941d659..3e460f6a0874 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.18.1-SNAPSHOT + 2.18.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0ba387fa8bdf..14e8986a2bd7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.18.1-SNAPSHOT + 2.18.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.18.1-SNAPSHOT + 2.18.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 884b93589d1e..9ca815c6f8bd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.18.1-SNAPSHOT + 2.18.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.18.1-SNAPSHOT + 2.18.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b2218241d994..db5c6fa783b9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.18.1-SNAPSHOT + 2.18.1 diff --git a/versions.txt b/versions.txt index dfce1b24cb14..afc6ba7b8300 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.18.0:2.18.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.18.1:2.18.1 \ No newline at end of file From 25d87105a2b8c8758553fb24b23fd75ec4a24e62 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 28 Oct 2022 20:16:14 +0000 Subject: [PATCH 2147/3441] chore(main): release 2.18.2-SNAPSHOT (#2381) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3e460f6a0874..baf5c40c004c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.18.1 + 2.18.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 14e8986a2bd7..43c0f1f3db17 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.18.1 + 2.18.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.18.1 + 2.18.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9ca815c6f8bd..04c6ca290227 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.18.1 + 2.18.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -118,7 +118,7 @@ com.google.cloud google-cloud-bigquery - 2.18.1 + 2.18.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index db5c6fa783b9..023f0e20caf9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.18.1 + 2.18.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index afc6ba7b8300..87455f98ba13 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.18.1:2.18.1 \ No newline at end of file +google-cloud-bigquery:2.18.1:2.18.2-SNAPSHOT \ No newline at end of file From 9d60bcb568bbca53b6cd7359df6d7ee82ce61adf Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 28 Oct 2022 16:42:24 -0400 Subject: [PATCH 2148/3441] Revert "chore(deps): update dependency protobuf to v3.20.2" (#1674) (#2382) --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.txt | 50 +++++++++++++++++++++------------------ 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 82b5a1a2e2e1..cb4ea018ec23 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:894d56f45fc3f4f0d5f3bcf790846419ee2d8e44715eae8917d6a1bba2b7283d + digest: sha256:bd316b9a591c45264775ecaba72e37d65905925c323b68e51a08c4126e4b6d0a diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 4a16dfadf82a..02ae42bb4039 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -339,29 +339,33 @@ packaging==21.3 \ # via # -r requirements.in # gcp-releasetool -protobuf==3.20.2 \ - --hash=sha256:03d76b7bd42ac4a6e109742a4edf81ffe26ffd87c5993126d894fe48a120396a \ - --hash=sha256:09e25909c4297d71d97612f04f41cea8fa8510096864f2835ad2f3b3df5a5559 \ - --hash=sha256:18e34a10ae10d458b027d7638a599c964b030c1739ebd035a1dfc0e22baa3bfe \ - --hash=sha256:291fb4307094bf5ccc29f424b42268640e00d5240bf0d9b86bf3079f7576474d \ - --hash=sha256:2c0b040d0b5d5d207936ca2d02f00f765906622c07d3fa19c23a16a8ca71873f \ - --hash=sha256:384164994727f274cc34b8abd41a9e7e0562801361ee77437099ff6dfedd024b \ - --hash=sha256:3cb608e5a0eb61b8e00fe641d9f0282cd0eedb603be372f91f163cbfbca0ded0 \ - --hash=sha256:5d9402bf27d11e37801d1743eada54372f986a372ec9679673bfcc5c60441151 \ - --hash=sha256:712dca319eee507a1e7df3591e639a2b112a2f4a62d40fe7832a16fd19151750 \ - --hash=sha256:7a5037af4e76c975b88c3becdf53922b5ffa3f2cddf657574a4920a3b33b80f3 \ - --hash=sha256:8228e56a865c27163d5d1d1771d94b98194aa6917bcfb6ce139cbfa8e3c27334 \ - --hash=sha256:84a1544252a933ef07bb0b5ef13afe7c36232a774affa673fc3636f7cee1db6c \ - --hash=sha256:84fe5953b18a383fd4495d375fe16e1e55e0a3afe7b4f7b4d01a3a0649fcda9d \ - --hash=sha256:9c673c8bfdf52f903081816b9e0e612186684f4eb4c17eeb729133022d6032e3 \ - --hash=sha256:a9e5ae5a8e8985c67e8944c23035a0dff2c26b0f5070b2f55b217a1c33bbe8b1 \ - --hash=sha256:b4fdb29c5a7406e3f7ef176b2a7079baa68b5b854f364c21abe327bbeec01cdb \ - --hash=sha256:c184485e0dfba4dfd451c3bd348c2e685d6523543a0f91b9fd4ae90eb09e8422 \ - --hash=sha256:c9cdf251c582c16fd6a9f5e95836c90828d51b0069ad22f463761d27c6c19019 \ - --hash=sha256:e39cf61bb8582bda88cdfebc0db163b774e7e03364bbf9ce1ead13863e81e359 \ - --hash=sha256:e8fbc522303e09036c752a0afcc5c0603e917222d8bedc02813fd73b4b4ed804 \ - --hash=sha256:f34464ab1207114e73bba0794d1257c150a2b89b7a9faf504e00af7c9fd58978 \ - --hash=sha256:f52dabc96ca99ebd2169dadbe018824ebda08a795c7684a0b7d203a290f3adb0 +protobuf==3.19.5 \ + --hash=sha256:1867f93b06a183f87696871bb8d1e99ee71dbb69d468ce1f0cc8bf3d30f982f3 \ + --hash=sha256:3c4160b601220627f7e91154e572baf5e161a9c3f445a8242d536ee3d0b7b17c \ + --hash=sha256:4ee2af7051d3b10c8a4fe6fd1a2c69f201fea36aeee7086cf202a692e1b99ee1 \ + --hash=sha256:5266c36cc0af3bb3dbf44f199d225b33da66a9a5c3bdc2b14865ad10eddf0e37 \ + --hash=sha256:5470f892961af464ae6eaf0f3099e2c1190ae8c7f36f174b89491281341f79ca \ + --hash=sha256:66d14b5b90090353efe75c9fb1bf65ef7267383034688d255b500822e37d5c2f \ + --hash=sha256:67efb5d20618020aa9596e17bfc37ca068c28ec0c1507d9507f73c93d46c9855 \ + --hash=sha256:696e6cfab94cc15a14946f2bf72719dced087d437adbd994fff34f38986628bc \ + --hash=sha256:6a02172b9650f819d01fb8e224fc69b0706458fc1ab4f1c669281243c71c1a5e \ + --hash=sha256:6eca9ae238ba615d702387a2ddea635d535d769994a9968c09a4ca920c487ab9 \ + --hash=sha256:950abd6c00e7b51f87ae8b18a0ce4d69fea217f62f171426e77de5061f6d9850 \ + --hash=sha256:9e1d74032f56ff25f417cfe84c8147047732e5059137ca42efad20cbbd25f5e0 \ + --hash=sha256:9e42b1cf2ecd8a1bd161239e693f22035ba99905ae6d7efeac8a0546c7ec1a27 \ + --hash=sha256:9f957ef53e872d58a0afd3bf6d80d48535d28c99b40e75e6634cbc33ea42fd54 \ + --hash=sha256:a89aa0c042e61e11ade320b802d6db4ee5391d8d973e46d3a48172c1597789f8 \ + --hash=sha256:c0f80876a8ff0ae7064084ed094eb86497bd5a3812e6fc96a05318b92301674e \ + --hash=sha256:c44e3282cff74ad18c7e8a0375f407f69ee50c2116364b44492a196293e08b21 \ + --hash=sha256:d249519ba5ecf5dd6b18150c9b6bcde510b273714b696f3923ff8308fc11ae49 \ + --hash=sha256:d3973a2d58aefc7d1230725c2447ce7f86a71cbc094b86a77c6ee1505ac7cdb1 \ + --hash=sha256:dca2284378a5f2a86ffed35c6ac147d14c48b525eefcd1083e5a9ce28dfa8657 \ + --hash=sha256:e63b0b3c42e51c94add62b010366cd4979cb6d5f06158bcae8faac4c294f91e1 \ + --hash=sha256:f2b599a21c9a32e171ec29a2ac54e03297736c578698e11b099d031f79da114b \ + --hash=sha256:f2bde37667b18c2b5280df83bc799204394a5d2d774e4deaf9de0eb741df6833 \ + --hash=sha256:f4f909f4dde413dec435a44b0894956d55bb928ded7d6e3c726556ca4c796e84 \ + --hash=sha256:f976234e20ab2785f54224bcdafa027674e23663b132fa3ca0caa291a6cfbde7 \ + --hash=sha256:f9cebda093c2f6bfed88f1c17cdade09d4d96096421b344026feee236532d4de # via # -r requirements.in # gcp-docuploader From fe164aad572b74c21de2ce492f0f7c28bd07a7df Mon Sep 17 00:00:00 2001 From: Blake Li Date: Fri, 28 Oct 2022 23:12:28 +0000 Subject: [PATCH 2149/3441] deps: Remove duplicated deps in the pom. (#2383) --- pom.xml | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/pom.xml b/pom.xml index 04c6ca290227..6e4a9847a6b4 100644 --- a/pom.xml +++ b/pom.xml @@ -92,15 +92,7 @@ ${arrow.version} runtime - - - com.google.cloud - google-cloud-datacatalog-bom - 1.11.0 - pom - import - - + com.google.cloud google-cloud-datacatalog-bom @@ -126,14 +118,7 @@ google-api-services-bigquery ${google-api-services-bigquery.version} - - - - org.threeten - threeten-extra - 1.7.1 - - + org.threeten From c81be9a98170b0b598397183088ba185d112f18f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 28 Oct 2022 23:38:14 +0000 Subject: [PATCH 2150/3441] chore(main): release 2.18.2 (#2385) :robot: I have created a release *beep* *boop* --- ## [2.18.2](https://togithub.com/googleapis/java-bigquery/compare/v2.18.1...v2.18.2) (2022-10-28) ### Dependencies * Remove duplicated deps in the pom. ([#2383](https://togithub.com/googleapis/java-bigquery/issues/2383)) ([fe164aa](https://togithub.com/googleapis/java-bigquery/commit/fe164aad572b74c21de2ce492f0f7c28bd07a7df)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5dc380fd8eb7..3a9542d9bcbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.18.2](https://github.com/googleapis/java-bigquery/compare/v2.18.1...v2.18.2) (2022-10-28) + + +### Dependencies + +* Remove duplicated deps in the pom. ([#2383](https://github.com/googleapis/java-bigquery/issues/2383)) ([fe164aa](https://github.com/googleapis/java-bigquery/commit/fe164aad572b74c21de2ce492f0f7c28bd07a7df)) + ## [2.18.1](https://github.com/googleapis/java-bigquery/compare/v2.18.0...v2.18.1) (2022-10-28) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index baf5c40c004c..33ed64621e13 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.18.2-SNAPSHOT + 2.18.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 43c0f1f3db17..484020a4055b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.18.2-SNAPSHOT + 2.18.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.18.2-SNAPSHOT + 2.18.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 6e4a9847a6b4..3ae150b14b82 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.18.2-SNAPSHOT + 2.18.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.18.2-SNAPSHOT + 2.18.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 023f0e20caf9..0e416dd64491 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.18.2-SNAPSHOT + 2.18.2 diff --git a/versions.txt b/versions.txt index 87455f98ba13..f8755e3e234e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.18.1:2.18.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.18.2:2.18.2 \ No newline at end of file From b7863b5acf3558b6d450a769ba33f0e746c553a3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 29 Oct 2022 00:02:17 +0000 Subject: [PATCH 2151/3441] chore(main): release 2.18.3-SNAPSHOT (#2386) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 33ed64621e13..c901acc2b4b0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.18.2 + 2.18.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 484020a4055b..d4a09fd67db5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.18.2 + 2.18.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.18.2 + 2.18.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3ae150b14b82..5f1bb3c4c6f3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.18.2 + 2.18.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.18.2 + 2.18.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0e416dd64491..2f9e213b623f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.18.2 + 2.18.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index f8755e3e234e..f2401982b766 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.18.2:2.18.2 \ No newline at end of file +google-cloud-bigquery:2.18.2:2.18.3-SNAPSHOT \ No newline at end of file From 3be829d92525bd3bc860c9c3c9a8add5a8869a37 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 31 Oct 2022 16:06:50 +0100 Subject: [PATCH 2152/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.24.2 (#2388) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.24.0` -> `2.24.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.24.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.24.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.24.2/compatibility-slim/2.24.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.24.2/confidence-slim/2.24.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8a33cf0211f1..71a4a94c68d3 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.18.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.18.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.18.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.18.2" ``` ## Authentication diff --git a/pom.xml b/pom.xml index 5f1bb3c4c6f3..e87cd2ceeeb5 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.24.0 + 2.24.2 pom import From 09863a59cc7772407d6cd128f7986df0069237f4 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Mon, 31 Oct 2022 16:08:19 +0100 Subject: [PATCH 2153/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.18.2 (#2387) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.18.0` -> `2.18.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.18.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.18.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.18.2/compatibility-slim/2.18.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.18.2/confidence-slim/2.18.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 71a4a94c68d3..29b007069321 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.18.0 + 2.18.2 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 20a4e3a798ba..1c09f063bc45 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.18.0 + 2.18.2 From 55d5f1f2ab6f52aac0c76b5be1ed22eea1ad2bed Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Tue, 1 Nov 2022 15:32:29 +0100 Subject: [PATCH 2154/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.1.4 (#2389) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.1.4 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 29b007069321..0398c2ca4915 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.1.3 + 26.1.4 pom import @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.1.3') +implementation platform('com.google.cloud:libraries-bom:26.1.4') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index d24a92c38d02..4c835b4562f1 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.1.3 + 26.1.4 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 790e66014fef..4c4ad69f9970 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.1.3 + 26.1.4 pom import From bc400308fc7964a765daecdd327ec93a5115ca64 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Tue, 1 Nov 2022 17:52:37 -0400 Subject: [PATCH 2155/3441] ci: not to check flatten plugin behavior (#2391) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ci: not to check flatten plugin behavior We have had the check for the flatten-maven-plugin in each Cloud Java client repository. However, the behavior of the plugin has been stable and its not each repository's responsibility to assert the plugin's behavior. A new check has added at the googleapis/java-shared-config repository to assert the plugin's behavior when we upgrade its version. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .kokoro/dependencies.sh | 60 +++-------------------------------------- owlbot.py | 1 - 2 files changed, 3 insertions(+), 58 deletions(-) diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index 545820622f4c..bd8960246f66 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -14,6 +14,7 @@ # limitations under the License. set -eo pipefail +shopt -s nullglob ## Get the directory of the build script scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) @@ -41,9 +42,9 @@ function determineMavenOpts() { then # MaxPermSize is no longer supported as of jdk 17 echo -n "-Xmx1024m" - else + else echo -n "-Xmx1024m -XX:MaxPermSize=128m" - fi + fi } export MAVEN_OPTS=$(determineMavenOpts) @@ -56,58 +57,3 @@ retry_with_backoff 3 10 \ -Dclirr.skip=true mvn -B dependency:analyze -DfailOnWarning=true - -echo "****************** DEPENDENCY LIST COMPLETENESS CHECK *******************" -## Run dependency list completeness check -function completenessCheck() { - # Output dep list with compile scope generated using the original pom - # Running mvn dependency:list on Java versions that support modules will also include the module of the dependency. - # This is stripped from the output as it is not present in the flattened pom. - # Only dependencies with 'compile' or 'runtime' scope are included from original dependency list. - msg "Generating dependency list using original pom..." - # Excluding commons-codec,commons-logging from the comparison as a temp fix - # Explanation and issue filed in maven-dependency-plugin: https://issues.apache.org/jira/browse/MDEP-737 - mvn dependency:list -f pom.xml -DexcludeArtifactIds=commons-codec,commons-logging,grpc-googleapis -DincludeScope=runtime -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' | sed -e s/\\s--\\smodule.*// >.org-list.txt - - # Output dep list generated using the flattened pom (only 'compile' and 'runtime' scopes) - msg "Generating dependency list using flattened pom..." - # Excluding commons-codec,commons-logging from the comparison as a temp fix - # Explanation and issue filed in maven-dependency-plugin: https://issues.apache.org/jira/browse/MDEP-737 - mvn dependency:list -f .flattened-pom.xml -DexcludeArtifactIds=commons-codec,commons-logging,grpc-googleapis -DincludeScope=runtime -Dsort=true | grep '\[INFO] .*:.*:.*:.*:.*' >.new-list.txt - - # Compare two dependency lists - msg "Comparing dependency lists..." - diff .org-list.txt .new-list.txt >.diff.txt - if [[ $? == 0 ]] - then - msg "Success. No diff!" - else - msg "Diff found. See below: " - msg "You can also check .diff.txt file located in $1." - cat .diff.txt - return 1 - fi -} - -# Allow failures to continue running the script -set +e - -error_count=0 -for path in $(find -name ".flattened-pom.xml") -do - # Check flattened pom in each dir that contains it for completeness - dir=$(dirname "$path") - pushd "$dir" - completenessCheck "$dir" - error_count=$(($error_count + $?)) - popd -done - -if [[ $error_count == 0 ]] -then - msg "All checks passed." - exit 0 -else - msg "Errors found. See log statements above." - exit 1 -fi diff --git a/owlbot.py b/owlbot.py index 54ebff8614f3..bf1878a29c4f 100644 --- a/owlbot.py +++ b/owlbot.py @@ -19,7 +19,6 @@ java.common_templates(excludes=[ '.kokoro/nightly/samples.cfg', '.kokoro/presubmit/samples.cfg', - '.kokoro/dependencies.sh', 'codecov.yaml', 'renovate.json', '.kokoro/build.sh' From d3f6a6bf55697541cfdc3bcdd2c441e8bd21dbc2 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Thu, 3 Nov 2022 17:15:54 +0100 Subject: [PATCH 2156/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20221028-2.0.0 (#2393) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e87cd2ceeeb5..78a5edb83fe7 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20221015-2.0.0 + v2-rev20221028-2.0.0 3.0.5 10.0.0 From 113303fb41ec4855bb81a5bd3c7f8984bc70da3e Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Fri, 4 Nov 2022 12:51:22 -0400 Subject: [PATCH 2157/3441] feat: add getTimestampInstant() method to FieldValue (#2350) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add getReadableTimestampValue() method to FieldValue * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: return java.time.Instant * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: change method name * Update FieldValue.java * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../com/google/cloud/bigquery/FieldValue.java | 18 ++++++++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 17 +++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java index aef47281940a..58c012a60ec3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java @@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; +import static java.time.temporal.ChronoUnit.MICROS; import com.google.api.client.util.Data; import com.google.api.core.BetaApi; @@ -26,6 +27,7 @@ import java.io.Serializable; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.Instant; import java.util.List; import java.util.Map; import java.util.Objects; @@ -36,6 +38,7 @@ * query or when listing table data. */ public class FieldValue implements Serializable { + private static final int MICROSECONDS = 1000000; private static final long serialVersionUID = 469098630191710061L; @@ -191,6 +194,21 @@ public long getTimestampValue() { return scaled.longValue(); } + /** + * Returns this field's value as a {@code String}, representing a timestamp as an Instant. This + * method should only be used if the corresponding field has {@link LegacySQLTypeName#TIMESTAMP} + * type. + * + * @throws ClassCastException if the field is not a primitive type + * @throws NumberFormatException if the field's value could not be converted to {@link Long} + * @throws NullPointerException if {@link #isNull()} returns {@code true} + */ + @SuppressWarnings("unchecked") + public Instant getTimestampInstant() { + checkNotNull(value); + return Instant.EPOCH.plus(getTimestampValue(), MICROS); + } + /** * Returns this field's value as a {@link java.math.BigDecimal}. This method should only be used * if the corresponding field has {@link LegacySQLTypeName#NUMERIC} type. diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 8e8f4cc0c514..4f72e7e66d40 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2382,6 +2382,23 @@ public void testMultipleStatementsQueryException() throws InterruptedException { } } + @Test + public void testTimestamp() throws InterruptedException { + String query = "SELECT TIMESTAMP '2022-01-24T23:54:25.095574Z'"; + String timestampStringValueExpected = "2022-01-24T23:54:25.095574Z"; + + TableResult resultInteractive = + bigquery.query( + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .build()); + for (FieldValueList row : resultInteractive.getValues()) { + FieldValue timeStampCell = row.get(0); + Instant timestampStringValueActual = timeStampCell.getTimestampInstant(); + assertEquals(timestampStringValueExpected, timestampStringValueActual.toString()); + } + } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testQuery() throws InterruptedException { From 87f8cdd7b0b005430486e51e4c339a6de95b0011 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 7 Nov 2022 17:37:10 +0100 Subject: [PATCH 2158/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.17 (#2396) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 4c835b4562f1..20dfb9196cfc 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.16 + 0.9.17 test From af850568f32afeab185e07db354f4cb529645c99 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 7 Nov 2022 11:37:30 -0500 Subject: [PATCH 2159/3441] chore(java): update dependencies in java requirements file (#1695) (#2398) * chore(java): update gcp-releasetool and cryptography in java requirements file Source-Link: https://github.com/googleapis/synthtool/commit/74d0956884c1bb9dc901b52de35ca2bca025a74e Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:142286d973c7b6d58186070f203b50058a20a7d7b42147996db24921a18da1b0 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.in | 7 ++-- .kokoro/requirements.txt | 75 ++++++++++++++++++++------------------- 3 files changed, 43 insertions(+), 41 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index cb4ea018ec23..c8316751ebd3 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:bd316b9a591c45264775ecaba72e37d65905925c323b68e51a08c4126e4b6d0a + digest: sha256:142286d973c7b6d58186070f203b50058a20a7d7b42147996db24921a18da1b0 diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index 6aa7cf2b55ee..9cc4a1baae11 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -1,7 +1,8 @@ -gcp-docuploader==0.6.3 +gcp-docuploader==0.6.4 google-crc32c==1.3.0 googleapis-common-protos==1.56.3 -gcp-releasetool==1.8.7 +gcp-releasetool==1.9.1 +cryptography==38.0.3 cachetools==4.2.4 cffi==1.15.1 jeepney==0.7.1 @@ -29,5 +30,5 @@ zipp==3.6.0 rsa==4.9 six==1.16.0 attrs==22.1.0 -google-auth==2.11.0 +google-auth==2.14.0 idna==3.4 \ No newline at end of file diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 02ae42bb4039..2dce197bf45a 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -2,7 +2,7 @@ # This file is autogenerated by pip-compile with python 3.10 # To update, run: # -# pip-compile --allow-unsafe --generate-hashes requirements.in +# pip-compile --generate-hashes requirements.in # attrs==22.1.0 \ --hash=sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6 \ @@ -104,43 +104,44 @@ colorlog==6.7.0 \ --hash=sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662 \ --hash=sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5 # via gcp-docuploader -cryptography==38.0.1 \ - --hash=sha256:0297ffc478bdd237f5ca3a7dc96fc0d315670bfa099c04dc3a4a2172008a405a \ - --hash=sha256:10d1f29d6292fc95acb597bacefd5b9e812099d75a6469004fd38ba5471a977f \ - --hash=sha256:16fa61e7481f4b77ef53991075de29fc5bacb582a1244046d2e8b4bb72ef66d0 \ - --hash=sha256:194044c6b89a2f9f169df475cc167f6157eb9151cc69af8a2a163481d45cc407 \ - --hash=sha256:1db3d807a14931fa317f96435695d9ec386be7b84b618cc61cfa5d08b0ae33d7 \ - --hash=sha256:3261725c0ef84e7592597606f6583385fed2a5ec3909f43bc475ade9729a41d6 \ - --hash=sha256:3b72c360427889b40f36dc214630e688c2fe03e16c162ef0aa41da7ab1455153 \ - --hash=sha256:3e3a2599e640927089f932295a9a247fc40a5bdf69b0484532f530471a382750 \ - --hash=sha256:3fc26e22840b77326a764ceb5f02ca2d342305fba08f002a8c1f139540cdfaad \ - --hash=sha256:5067ee7f2bce36b11d0e334abcd1ccf8c541fc0bbdaf57cdd511fdee53e879b6 \ - --hash=sha256:52e7bee800ec869b4031093875279f1ff2ed12c1e2f74923e8f49c916afd1d3b \ - --hash=sha256:64760ba5331e3f1794d0bcaabc0d0c39e8c60bf67d09c93dc0e54189dfd7cfe5 \ - --hash=sha256:765fa194a0f3372d83005ab83ab35d7c5526c4e22951e46059b8ac678b44fa5a \ - --hash=sha256:79473cf8a5cbc471979bd9378c9f425384980fcf2ab6534b18ed7d0d9843987d \ - --hash=sha256:896dd3a66959d3a5ddcfc140a53391f69ff1e8f25d93f0e2e7830c6de90ceb9d \ - --hash=sha256:89ed49784ba88c221756ff4d4755dbc03b3c8d2c5103f6d6b4f83a0fb1e85294 \ - --hash=sha256:ac7e48f7e7261207d750fa7e55eac2d45f720027d5703cd9007e9b37bbb59ac0 \ - --hash=sha256:ad7353f6ddf285aeadfaf79e5a6829110106ff8189391704c1d8801aa0bae45a \ - --hash=sha256:b0163a849b6f315bf52815e238bc2b2346604413fa7c1601eea84bcddb5fb9ac \ - --hash=sha256:b6c9b706316d7b5a137c35e14f4103e2115b088c412140fdbd5f87c73284df61 \ - --hash=sha256:c2e5856248a416767322c8668ef1845ad46ee62629266f84a8f007a317141013 \ - --hash=sha256:ca9f6784ea96b55ff41708b92c3f6aeaebde4c560308e5fbbd3173fbc466e94e \ - --hash=sha256:d1a5bd52d684e49a36582193e0b89ff267704cd4025abefb9e26803adeb3e5fb \ - --hash=sha256:d3971e2749a723e9084dd507584e2a2761f78ad2c638aa31e80bc7a15c9db4f9 \ - --hash=sha256:d4ef6cc305394ed669d4d9eebf10d3a101059bdcf2669c366ec1d14e4fb227bd \ - --hash=sha256:d9e69ae01f99abe6ad646947bba8941e896cb3aa805be2597a0400e0764b5818 +cryptography==38.0.3 \ + --hash=sha256:068147f32fa662c81aebab95c74679b401b12b57494872886eb5c1139250ec5d \ + --hash=sha256:06fc3cc7b6f6cca87bd56ec80a580c88f1da5306f505876a71c8cfa7050257dd \ + --hash=sha256:25c1d1f19729fb09d42e06b4bf9895212292cb27bb50229f5aa64d039ab29146 \ + --hash=sha256:402852a0aea73833d982cabb6d0c3bb582c15483d29fb7085ef2c42bfa7e38d7 \ + --hash=sha256:4e269dcd9b102c5a3d72be3c45d8ce20377b8076a43cbed6f660a1afe365e436 \ + --hash=sha256:5419a127426084933076132d317911e3c6eb77568a1ce23c3ac1e12d111e61e0 \ + --hash=sha256:554bec92ee7d1e9d10ded2f7e92a5d70c1f74ba9524947c0ba0c850c7b011828 \ + --hash=sha256:5e89468fbd2fcd733b5899333bc54d0d06c80e04cd23d8c6f3e0542358c6060b \ + --hash=sha256:65535bc550b70bd6271984d9863a37741352b4aad6fb1b3344a54e6950249b55 \ + --hash=sha256:6ab9516b85bebe7aa83f309bacc5f44a61eeb90d0b4ec125d2d003ce41932d36 \ + --hash=sha256:6addc3b6d593cd980989261dc1cce38263c76954d758c3c94de51f1e010c9a50 \ + --hash=sha256:728f2694fa743a996d7784a6194da430f197d5c58e2f4e278612b359f455e4a2 \ + --hash=sha256:785e4056b5a8b28f05a533fab69febf5004458e20dad7e2e13a3120d8ecec75a \ + --hash=sha256:78cf5eefac2b52c10398a42765bfa981ce2372cbc0457e6bf9658f41ec3c41d8 \ + --hash=sha256:7f836217000342d448e1c9a342e9163149e45d5b5eca76a30e84503a5a96cab0 \ + --hash=sha256:8d41a46251bf0634e21fac50ffd643216ccecfaf3701a063257fe0b2be1b6548 \ + --hash=sha256:984fe150f350a3c91e84de405fe49e688aa6092b3525f407a18b9646f6612320 \ + --hash=sha256:9b24bcff7853ed18a63cfb0c2b008936a9554af24af2fb146e16d8e1aed75748 \ + --hash=sha256:b1b35d9d3a65542ed2e9d90115dfd16bbc027b3f07ee3304fc83580f26e43249 \ + --hash=sha256:b1b52c9e5f8aa2b802d48bd693190341fae201ea51c7a167d69fc48b60e8a959 \ + --hash=sha256:bbf203f1a814007ce24bd4d51362991d5cb90ba0c177a9c08825f2cc304d871f \ + --hash=sha256:be243c7e2bfcf6cc4cb350c0d5cdf15ca6383bbcb2a8ef51d3c9411a9d4386f0 \ + --hash=sha256:bfbe6ee19615b07a98b1d2287d6a6073f734735b49ee45b11324d85efc4d5cbd \ + --hash=sha256:c46837ea467ed1efea562bbeb543994c2d1f6e800785bd5a2c98bc096f5cb220 \ + --hash=sha256:dfb4f4dd568de1b6af9f4cda334adf7d72cf5bc052516e1b2608b683375dd95c \ + --hash=sha256:ed7b00096790213e09eb11c97cc6e2b757f15f3d2f85833cd2d3ec3fe37c1722 # via + # -r requirements.in # gcp-releasetool # secretstorage -gcp-docuploader==0.6.3 \ - --hash=sha256:ba8c9d76b3bbac54b0311c503a373b00edc2dc02d6d54ea9507045adb8e870f7 \ - --hash=sha256:c0f5aaa82ce1854a386197e4e359b120ad6d4e57ae2c812fce42219a3288026b +gcp-docuploader==0.6.4 \ + --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \ + --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf # via -r requirements.in -gcp-releasetool==1.8.7 \ - --hash=sha256:3d2a67c9db39322194afb3b427e9cb0476ce8f2a04033695f0aeb63979fc2b37 \ - --hash=sha256:5e4d28f66e90780d77f3ecf1e9155852b0c3b13cbccb08ab07e66b2357c8da8d +gcp-releasetool==1.9.1 \ + --hash=sha256:952f4055d5d986b070ae2a71c4410b250000f9cc5a1e26398fcd55a5bbc5a15f \ + --hash=sha256:d0d3c814a97c1a237517e837d8cfa668ced8df4b882452578ecef4a4e79c583b # via -r requirements.in google-api-core==2.8.2 \ --hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \ @@ -149,9 +150,9 @@ google-api-core==2.8.2 \ # -r requirements.in # google-cloud-core # google-cloud-storage -google-auth==2.11.0 \ - --hash=sha256:be62acaae38d0049c21ca90f27a23847245c9f161ff54ede13af2cb6afecbac9 \ - --hash=sha256:ed65ecf9f681832298e29328e1ef0a3676e3732b2e56f41532d45f70a22de0fb +google-auth==2.14.0 \ + --hash=sha256:1ad5b0e6eba5f69645971abb3d2c197537d5914070a8c6d30299dfdb07c5c700 \ + --hash=sha256:cf24817855d874ede2efd071aa22125445f555de1685b739a9782fcf408c2a3d # via # -r requirements.in # gcp-releasetool From 7927350f562dbdef8774df82c9c0d528118d0213 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 7 Nov 2022 17:37:46 +0100 Subject: [PATCH 2160/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.17 (#2397) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 20dfb9196cfc..fac75990ef4c 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.16 + 0.9.17 true com.example.bigquery.NativeImageBigquerySample From 9de9aa8f7eb2e21b88a13df23b65e2aaf6b749cf Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 7 Nov 2022 19:46:12 +0100 Subject: [PATCH 2161/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.6 (#2399) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `3.0.5` -> `3.0.6` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.6/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.6/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.6/compatibility-slim/3.0.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.0.6/confidence-slim/3.0.5)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v3.0.6`](https://togithub.com/googleapis/java-shared-dependencies/blob/HEAD/CHANGELOG.md#​306-httpsgithubcomgoogleapisjava-shared-dependenciescomparev305v306-2022-11-07) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v3.0.5...v3.0.6) ##### Dependencies - Update dependency com.fasterxml.jackson:jackson-bom to v2.14.0 ([#​901](https://togithub.com/googleapis/java-shared-dependencies/issues/901)) ([33c5511](https://togithub.com/googleapis/java-shared-dependencies/commit/33c55112ff485da1d7a0a32d8b6dade33aa04ff8)) - Update dependency com.google.api-client:google-api-client-bom to v2.0.1 ([#​899](https://togithub.com/googleapis/java-shared-dependencies/issues/899)) ([4029e89](https://togithub.com/googleapis/java-shared-dependencies/commit/4029e89be507ddfa030515565fdb6fbf8997324e)) - Update dependency com.google.api:api-common to v2.2.2 ([#​892](https://togithub.com/googleapis/java-shared-dependencies/issues/892)) ([5c59fbd](https://togithub.com/googleapis/java-shared-dependencies/commit/5c59fbd3c3cf3efbfda50420c8048e3ff257084c)) - Update dependency com.google.cloud:grpc-gcp to v1.3.1 ([#​884](https://togithub.com/googleapis/java-shared-dependencies/issues/884)) ([9fffe24](https://togithub.com/googleapis/java-shared-dependencies/commit/9fffe243b631565a00b0a848a6c73163b1dd33a4)) - Update dependency com.google.code.gson:gson to v2.10 ([#​887](https://togithub.com/googleapis/java-shared-dependencies/issues/887)) ([15017de](https://togithub.com/googleapis/java-shared-dependencies/commit/15017de39a35f90bc1b38b828edc23fdce524a07)) - Update dependency com.google.http-client:google-http-client-bom to v1.42.3 ([#​893](https://togithub.com/googleapis/java-shared-dependencies/issues/893)) ([4c0de9b](https://togithub.com/googleapis/java-shared-dependencies/commit/4c0de9bd188bfab5fe126c8b01b4d7168f8a5079)) - Update dependency com.google.protobuf:protobuf-bom to v3.21.9 ([#​889](https://togithub.com/googleapis/java-shared-dependencies/issues/889)) ([8576271](https://togithub.com/googleapis/java-shared-dependencies/commit/85762716d1bbb97c447f86451094fb8af2528470)) - Update dependency io.grpc:grpc-bom to v1.50.2 ([#​878](https://togithub.com/googleapis/java-shared-dependencies/issues/878)) ([fd569af](https://togithub.com/googleapis/java-shared-dependencies/commit/fd569af1e5f1b195e2421fc9e02d8b67afe1c638)) - Update dependency org.checkerframework:checker-qual to v3.27.0 ([#​896](https://togithub.com/googleapis/java-shared-dependencies/issues/896)) ([f0f7931](https://togithub.com/googleapis/java-shared-dependencies/commit/f0f7931937a0ed9a32fd87cd58c82b787d368242)) - Update dependency org.threeten:threetenbp to v1.6.4 ([#​894](https://togithub.com/googleapis/java-shared-dependencies/issues/894)) ([899682d](https://togithub.com/googleapis/java-shared-dependencies/commit/899682d0405645d9d5288b298af2fda228414669)) - Update gax.version to v2.19.5 ([#​903](https://togithub.com/googleapis/java-shared-dependencies/issues/903)) ([3e4d8b3](https://togithub.com/googleapis/java-shared-dependencies/commit/3e4d8b35d3f682b07326ffa0a3e552d097f25a65)) - Update google.common-protos.version to v2.10.0 ([#​900](https://togithub.com/googleapis/java-shared-dependencies/issues/900)) ([53b54c3](https://togithub.com/googleapis/java-shared-dependencies/commit/53b54c35f3a7c19df488921a6077e7a9bfb0b103)) - Update google.core.version to v2.8.23 ([#​885](https://togithub.com/googleapis/java-shared-dependencies/issues/885)) ([686dd7c](https://togithub.com/googleapis/java-shared-dependencies/commit/686dd7c8f541189302e8cac4ae72ed7d967b5b3f)) - Update google.core.version to v2.8.24 ([#​890](https://togithub.com/googleapis/java-shared-dependencies/issues/890)) ([1effda3](https://togithub.com/googleapis/java-shared-dependencies/commit/1effda381c7b886f5ae4d2dac9473da821e655fe)) - Update google.core.version to v2.8.27 ([#​902](https://togithub.com/googleapis/java-shared-dependencies/issues/902)) ([3bcb804](https://togithub.com/googleapis/java-shared-dependencies/commit/3bcb804dec4358ed0a9c6c35cf4c35f817821e9a)) - Update iam.version to v1.6.6 ([#​886](https://togithub.com/googleapis/java-shared-dependencies/issues/886)) ([03d0690](https://togithub.com/googleapis/java-shared-dependencies/commit/03d0690f01f9217e31dd65d55c28a47f2f2deb22)) - Update iam.version to v1.6.7 ([#​895](https://togithub.com/googleapis/java-shared-dependencies/issues/895)) ([6cebc20](https://togithub.com/googleapis/java-shared-dependencies/commit/6cebc205daa98b96a8b27b3fc3cd222319b27e59))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 78a5edb83fe7..83bd64e30ca4 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20221028-2.0.0 - 3.0.5 + 3.0.6 10.0.0
    From 259e9cafc37d1a8ace0e74228b335897b1729106 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 7 Nov 2022 19:20:15 +0000 Subject: [PATCH 2162/3441] chore(main): release 2.19.0 (#2395) :robot: I have created a release *beep* *boop* --- ## [2.19.0](https://togithub.com/googleapis/java-bigquery/compare/v2.18.2...v2.19.0) (2022-11-07) ### Features * Add getTimestampInstant() method to FieldValue ([#2350](https://togithub.com/googleapis/java-bigquery/issues/2350)) ([113303f](https://togithub.com/googleapis/java-bigquery/commit/113303fb41ec4855bb81a5bd3c7f8984bc70da3e)) ### Dependencies * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20221028-2.0.0 ([#2393](https://togithub.com/googleapis/java-bigquery/issues/2393)) ([d3f6a6b](https://togithub.com/googleapis/java-bigquery/commit/d3f6a6bf55697541cfdc3bcdd2c441e8bd21dbc2)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.6 ([#2399](https://togithub.com/googleapis/java-bigquery/issues/2399)) ([9de9aa8](https://togithub.com/googleapis/java-bigquery/commit/9de9aa8f7eb2e21b88a13df23b65e2aaf6b749cf)) * Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.17 ([#2396](https://togithub.com/googleapis/java-bigquery/issues/2396)) ([87f8cdd](https://togithub.com/googleapis/java-bigquery/commit/87f8cdd7b0b005430486e51e4c339a6de95b0011)) * Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.17 ([#2397](https://togithub.com/googleapis/java-bigquery/issues/2397)) ([7927350](https://togithub.com/googleapis/java-bigquery/commit/7927350f562dbdef8774df82c9c0d528118d0213)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 15 +++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 22 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a9542d9bcbb..0fea0dce4e3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [2.19.0](https://github.com/googleapis/java-bigquery/compare/v2.18.2...v2.19.0) (2022-11-07) + + +### Features + +* Add getTimestampInstant() method to FieldValue ([#2350](https://github.com/googleapis/java-bigquery/issues/2350)) ([113303f](https://github.com/googleapis/java-bigquery/commit/113303fb41ec4855bb81a5bd3c7f8984bc70da3e)) + + +### Dependencies + +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20221028-2.0.0 ([#2393](https://github.com/googleapis/java-bigquery/issues/2393)) ([d3f6a6b](https://github.com/googleapis/java-bigquery/commit/d3f6a6bf55697541cfdc3bcdd2c441e8bd21dbc2)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.6 ([#2399](https://github.com/googleapis/java-bigquery/issues/2399)) ([9de9aa8](https://github.com/googleapis/java-bigquery/commit/9de9aa8f7eb2e21b88a13df23b65e2aaf6b749cf)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.17 ([#2396](https://github.com/googleapis/java-bigquery/issues/2396)) ([87f8cdd](https://github.com/googleapis/java-bigquery/commit/87f8cdd7b0b005430486e51e4c339a6de95b0011)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.17 ([#2397](https://github.com/googleapis/java-bigquery/issues/2397)) ([7927350](https://github.com/googleapis/java-bigquery/commit/7927350f562dbdef8774df82c9c0d528118d0213)) + ## [2.18.2](https://github.com/googleapis/java-bigquery/compare/v2.18.1...v2.18.2) (2022-10-28) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c901acc2b4b0..e4d171d56870 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.18.3-SNAPSHOT + 2.19.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d4a09fd67db5..6be84a6e5d1c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.18.3-SNAPSHOT + 2.19.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.18.3-SNAPSHOT + 2.19.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 83bd64e30ca4..160ae089ee48 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.18.3-SNAPSHOT + 2.19.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.18.3-SNAPSHOT + 2.19.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2f9e213b623f..527b8859e24a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.18.3-SNAPSHOT + 2.19.0 diff --git a/versions.txt b/versions.txt index f2401982b766..716eb8d39975 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.18.2:2.18.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.19.0:2.19.0 \ No newline at end of file From 8db4d98d0d5e0946488a68a696b82f8ca80c829c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 7 Nov 2022 19:46:15 +0000 Subject: [PATCH 2163/3441] chore(main): release 2.19.1-SNAPSHOT (#2400) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index e4d171d56870..856419488f13 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.19.0 + 2.19.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6be84a6e5d1c..c995fafdb4ba 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.19.0 + 2.19.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.19.0 + 2.19.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 160ae089ee48..2376dd499136 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.19.0 + 2.19.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.19.0 + 2.19.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 527b8859e24a..3cf6e3361aef 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.19.0 + 2.19.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 716eb8d39975..97c5399044f0 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.19.0:2.19.0 \ No newline at end of file +google-cloud-bigquery:2.19.0:2.19.1-SNAPSHOT \ No newline at end of file From fde9d7abc134bf85706367a716e5b4e354ce44d9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 8 Nov 2022 17:02:25 +0100 Subject: [PATCH 2164/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.19.0 (#2401) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.18.2` -> `2.19.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.19.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.19.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.19.0/compatibility-slim/2.18.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.19.0/confidence-slim/2.18.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0398c2ca4915..1373ed0a84e2 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.18.2 + 2.19.0 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.18.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.19.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.18.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.19.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 1c09f063bc45..50502e9f10f9 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.18.2 + 2.19.0 From aac27119142e1411eb2f8b0270c806262f08d391 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 8 Nov 2022 17:04:15 +0100 Subject: [PATCH 2165/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.15.0 (#2402) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.14.0` -> `2.15.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.15.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.15.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.15.0/compatibility-slim/2.14.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.15.0/confidence-slim/2.14.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2376dd499136..bfd267df5682 100644 --- a/pom.xml +++ b/pom.xml @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.14.0 + 2.15.0 test From 92aa0f58edd5dc346cabee46eafe0d4f3c280a34 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 17:22:46 +0000 Subject: [PATCH 2166/3441] chore(main): release 2.19.1 (#2403) :robot: I have created a release *beep* *boop* --- ## [2.19.1](https://togithub.com/googleapis/java-bigquery/compare/v2.19.0...v2.19.1) (2022-11-08) ### Dependencies * Update dependency com.google.cloud:google-cloud-storage to v2.15.0 ([#2402](https://togithub.com/googleapis/java-bigquery/issues/2402)) ([aac2711](https://togithub.com/googleapis/java-bigquery/commit/aac27119142e1411eb2f8b0270c806262f08d391)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fea0dce4e3e..2959a5a17db0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.19.1](https://github.com/googleapis/java-bigquery/compare/v2.19.0...v2.19.1) (2022-11-08) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-storage to v2.15.0 ([#2402](https://github.com/googleapis/java-bigquery/issues/2402)) ([aac2711](https://github.com/googleapis/java-bigquery/commit/aac27119142e1411eb2f8b0270c806262f08d391)) + ## [2.19.0](https://github.com/googleapis/java-bigquery/compare/v2.18.2...v2.19.0) (2022-11-07) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 856419488f13..857ff840f742 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.19.1-SNAPSHOT + 2.19.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c995fafdb4ba..4d172f93c112 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.19.1-SNAPSHOT + 2.19.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.19.1-SNAPSHOT + 2.19.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bfd267df5682..1883b2ffd159 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.19.1-SNAPSHOT + 2.19.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.19.1-SNAPSHOT + 2.19.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3cf6e3361aef..d35fbbdefbd4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.19.1-SNAPSHOT + 2.19.1 diff --git a/versions.txt b/versions.txt index 97c5399044f0..9201e3853232 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.19.0:2.19.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.19.1:2.19.1 \ No newline at end of file From 59e444a7a447fdbe2db9b0fc67f59c03c83f18bc Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 17:50:27 +0000 Subject: [PATCH 2167/3441] chore(main): release 2.19.2-SNAPSHOT (#2404) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 857ff840f742..1ec05b9c1db4 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.19.1 + 2.19.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4d172f93c112..ee75b9df38c0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.19.1 + 2.19.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.19.1 + 2.19.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1883b2ffd159..cb38a60f6eae 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.19.1 + 2.19.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.19.1 + 2.19.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d35fbbdefbd4..98c40a03ee61 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.19.1 + 2.19.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 9201e3853232..697276911824 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.19.1:2.19.1 \ No newline at end of file +google-cloud-bigquery:2.19.1:2.19.2-SNAPSHOT \ No newline at end of file From 9297a4359f7b080a60b6bb5873edfd66cd7d2261 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Tue, 8 Nov 2022 15:46:20 -0500 Subject: [PATCH 2168/3441] feat: next release from main branch is 2.20.0 (#2405) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: next release from main branch is 2.20.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .github/release-please.yml | 4 ++++ .github/sync-repo-settings.yaml | 17 +++++++++++++++++ README.md | 4 ++-- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/.github/release-please.yml b/.github/release-please.yml index c87ad8d73c85..7abf72a6e2b8 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -15,6 +15,10 @@ branches: handleGHRelease: true releaseType: java-backport branch: 2.10.x + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 2.19.x bumpMinorPreMajor: true handleGHRelease: true releaseType: java-yoshi diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 7e57974a8bc9..e3a8af4e907d 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -79,6 +79,23 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - cla/google - OwlBot Post Processor + - pattern: 2.19.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (8) + - dependencies (11) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - OwlBot Post Processor + - 'Kokoro - Test: Java GraalVM Native Image' + - 'Kokoro - Test: Java 17 GraalVM Native Image' permissionRules: - team: api-bigquery permission: admin diff --git a/README.md b/README.md index 1373ed0a84e2..dcdc00a28650 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.19.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.19.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.19.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.19.1" ``` ## Authentication From 0ed802d1c7f5da40f1b3b172d44b59b161f2d080 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 9 Nov 2022 16:34:17 +0100 Subject: [PATCH 2169/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.19.1 (#2409) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.19.0` -> `2.19.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.19.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.19.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.19.1/compatibility-slim/2.19.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.19.1/confidence-slim/2.19.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Renovate will not automatically rebase this PR, because other commits have been found. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dcdc00a28650..f5cdec8b488a 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.19.0 + 2.19.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 50502e9f10f9..f6938e9e2edf 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.19.0 + 2.19.1 From 406e29b48298329611e32d1e88a911923789a435 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 9 Nov 2022 17:00:06 +0100 Subject: [PATCH 2170/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.15.1 (#2411) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f6938e9e2edf..eb95d67c983d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.15.0 + 2.15.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 98c40a03ee61..914a8c154ec6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.15.0 + 2.15.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4c4ad69f9970..68e10989369c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.15.0 + 2.15.1 test From de16f8205f72f540b6bef8edb25da41d388c54cf Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 9 Nov 2022 17:40:36 +0100 Subject: [PATCH 2171/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.25.0 (#2410) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.24.2` -> `2.25.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.25.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.25.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.25.0/compatibility-slim/2.24.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.25.0/confidence-slim/2.24.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquerystorage ### [`v2.25.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2250-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2242v2250-2022-11-08) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.24.2...v2.25.0) ##### Features - Add schema comparision to the main request loop for multiplexing to correctly update schema ([#​1865](https://togithub.com/googleapis/java-bigquerystorage/issues/1865)) ([cb18d28](https://togithub.com/googleapis/java-bigquerystorage/commit/cb18d288f78773af60b9fddc583f46a571cbc3f4)) ##### Documentation - Remove stale header guidance for AppendRows ([#​1866](https://togithub.com/googleapis/java-bigquerystorage/issues/1866)) ([1de23be](https://togithub.com/googleapis/java-bigquerystorage/commit/1de23be7fe84747a4e7ca5b511458a5b378a1170)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-bigquery to v2.18.2 ([#​1862](https://togithub.com/googleapis/java-bigquerystorage/issues/1862)) ([ca2cafe](https://togithub.com/googleapis/java-bigquerystorage/commit/ca2cafe095eca8b610ec8ca1acf95cf7a561af61)) - Update dependency com.google.cloud:google-cloud-bigquery to v2.19.0 ([#​1871](https://togithub.com/googleapis/java-bigquerystorage/issues/1871)) ([4aa967a](https://togithub.com/googleapis/java-bigquerystorage/commit/4aa967a0a30db0037a04b6b47646ae79dfffaead)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.0.6 ([#​1870](https://togithub.com/googleapis/java-bigquerystorage/issues/1870)) ([17b2a80](https://togithub.com/googleapis/java-bigquerystorage/commit/17b2a8036cf5706cb753f7116b1fa424a661ba39)) - Update dependency kr.motd.maven:os-maven-plugin to v1.7.1 ([#​1868](https://togithub.com/googleapis/java-bigquerystorage/issues/1868)) ([08b8468](https://togithub.com/googleapis/java-bigquerystorage/commit/08b8468dc31fe654f5f7a345377b14f51f19eeea))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cb38a60f6eae..5285aace804f 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.24.2 + 2.25.0 pom import From e4b60359181126e4d91e75c67b821a900870a728 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 9 Nov 2022 17:50:15 +0000 Subject: [PATCH 2172/3441] chore: update google-auth to 2.14.1 (#1703) (#2412) Co-authored-by: Anthonios Partheniou Source-Link: https://togithub.com/googleapis/synthtool/commit/9457e69470097f8e71b6b497ceece5bc423eaf3a Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:a3fe0b4c75f322520f548e535ed329df1e475ace3cb4a979b78e003cb822636a --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.in | 2 +- .kokoro/requirements.txt | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index c8316751ebd3..676aaea0c74d 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:142286d973c7b6d58186070f203b50058a20a7d7b42147996db24921a18da1b0 + digest: sha256:a3fe0b4c75f322520f548e535ed329df1e475ace3cb4a979b78e003cb822636a diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index 9cc4a1baae11..ae1d92e68084 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -30,5 +30,5 @@ zipp==3.6.0 rsa==4.9 six==1.16.0 attrs==22.1.0 -google-auth==2.14.0 +google-auth==2.14.1 idna==3.4 \ No newline at end of file diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 2dce197bf45a..9c82529c84ff 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -150,9 +150,8 @@ google-api-core==2.8.2 \ # -r requirements.in # google-cloud-core # google-cloud-storage -google-auth==2.14.0 \ - --hash=sha256:1ad5b0e6eba5f69645971abb3d2c197537d5914070a8c6d30299dfdb07c5c700 \ - --hash=sha256:cf24817855d874ede2efd071aa22125445f555de1685b739a9782fcf408c2a3d +google-auth==2.14.1 \ + --hash=sha256:f5d8701633bebc12e0deea4df8abd8aff31c28b355360597f7f2ee60f2e4d016 # via # -r requirements.in # gcp-releasetool From 42c083ac680c657bf3f648fbce81004ecac8be87 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Fri, 11 Nov 2022 14:16:08 -0500 Subject: [PATCH 2173/3441] feat: add fast query path support when empty jobId object is passed (#2349) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add fast query path support with job location * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: fix NPE * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: respect user specified location * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: fix test * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore add IT tests * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: allow users to specify project ID with JobID * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: fix conditions * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../google/cloud/bigquery/BigQueryImpl.java | 23 ++++- .../cloud/bigquery/QueryRequestInfo.java | 10 ++- .../cloud/bigquery/QueryRequestInfoTest.java | 8 +- .../cloud/bigquery/it/ITBigQueryTest.java | 85 +++++++++++++++++++ 4 files changed, 122 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 01048689fe00..b5ca2e577622 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1300,7 +1300,7 @@ public TableResult query(QueryJobConfiguration configuration, JobOption... optio // If all parameters passed in configuration are supported by the query() method on the backend, // put on fast path QueryRequestInfo requestInfo = new QueryRequestInfo(configuration); - if (requestInfo.isFastQuerySupported()) { + if (requestInfo.isFastQuerySupported(null)) { String projectId = getOptions().getProjectId(); QueryRequest content = requestInfo.toPb(); return queryRpc(projectId, content, options); @@ -1385,6 +1385,27 @@ public com.google.api.services.bigquery.model.QueryResponse call() { public TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption... options) throws InterruptedException, JobException { Job.checkNotDryRun(configuration, "query"); + // If all parameters passed in configuration are supported by the query() method on the backend, + // put on fast path + QueryRequestInfo requestInfo = new QueryRequestInfo(configuration); + if (requestInfo.isFastQuerySupported(jobId)) { + // Be careful when setting the projectID in JobId, if a projectID is specified in the JobId, + // the job created by the query method will use that project. This may cause the query to + // fail with "Access denied" if the project do not have enough permissions to run the job. + + String projectId = + jobId.getProject() != null ? jobId.getProject() : getOptions().getProjectId(); + QueryRequest content = requestInfo.toPb(); + // Be careful when setting the location in JobId, if a location is specified in the JobId, + // the job created by the query method will be in that location, even if the table to be + // queried is in a different location. This may cause the query to fail with + // "BigQueryException: Not found" + if (jobId.getLocation() != null) { + content.setLocation(jobId.getLocation()); + } + + return queryRpc(projectId, content, options); + } return create(JobInfo.of(jobId, configuration), options).getQueryResults(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java index ccde465af4bf..00a8983636a0 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java @@ -57,7 +57,15 @@ final class QueryRequestInfo { this.useQueryCache = config.useQueryCache(); } - boolean isFastQuerySupported() { + boolean isFastQuerySupported(JobId jobId) { + // Fast query path is not possible if job is specified in the JobID object + // Respect Job field value in JobId specified by user. + // Specifying it will force the query to take the slower path. + if (jobId != null) { + if (jobId.getJob() != null) { + return false; + } + } return config.getClustering() == null && config.getCreateDisposition() == null && config.getDestinationEncryptionConfiguration() == null diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java index a62e3c0a0d00..456475597eb8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java @@ -150,8 +150,12 @@ public class QueryRequestInfoTest { @Test public void testIsFastQuerySupported() { - assertEquals(false, REQUEST_INFO.isFastQuerySupported()); - assertEquals(true, REQUEST_INFO_SUPPORTED.isFastQuerySupported()); + JobId jobIdSupported = JobId.newBuilder().build(); + JobId jobIdNotSupported = JobId.newBuilder().setJob("random-job-id").build(); + assertEquals(false, REQUEST_INFO.isFastQuerySupported(jobIdSupported)); + assertEquals(true, REQUEST_INFO_SUPPORTED.isFastQuerySupported(jobIdSupported)); + assertEquals(false, REQUEST_INFO.isFastQuerySupported(jobIdNotSupported)); + assertEquals(false, REQUEST_INFO_SUPPORTED.isFastQuerySupported(jobIdNotSupported)); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 4f72e7e66d40..ed073a93ae07 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -180,6 +180,7 @@ public class ITBigQueryTest { private static final Long EXPIRATION_MS = 86400000L; private static final Logger LOG = Logger.getLogger(ITBigQueryTest.class.getName()); private static final String DATASET = RemoteBigQueryHelper.generateDatasetName(); + private static final String UK_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String DESCRIPTION = "Test dataset"; private static final String OTHER_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String MODEL_DATASET = RemoteBigQueryHelper.generateDatasetName(); @@ -533,6 +534,8 @@ public class ITBigQueryTest { private static final TableId TABLE_ID = TableId.of(DATASET, "testing_table"); private static final TableId TABLE_ID_DDL = TableId.of(DATASET, "ddl_testing_table"); private static final TableId TABLE_ID_FASTQUERY = TableId.of(DATASET, "fastquery_testing_table"); + private static final TableId TABLE_ID_FASTQUERY_UK = + TableId.of(UK_DATASET, "fastquery_testing_table"); private static final TableId TABLE_ID_LARGE = TableId.of(DATASET, "large_data_testing_table"); private static final TableId TABLE_ID_FASTQUERY_BQ_RESULTSET = TableId.of(DATASET, "fastquery_testing_bq_resultset"); @@ -717,6 +720,7 @@ public static void beforeClass() throws InterruptedException, IOException { DatasetInfo info3 = DatasetInfo.newBuilder(ROUTINE_DATASET).setDescription("java routine lifecycle").build(); bigquery.create(info3); + LoadJobConfiguration configuration = LoadJobConfiguration.newBuilder( TABLE_ID, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) @@ -781,6 +785,7 @@ public static void beforeClass() throws InterruptedException, IOException { public static void afterClass() throws ExecutionException, InterruptedException { if (bigquery != null) { RemoteBigQueryHelper.forceDelete(bigquery, DATASET); + RemoteBigQueryHelper.forceDelete(bigquery, UK_DATASET); RemoteBigQueryHelper.forceDelete(bigquery, MODEL_DATASET); RemoteBigQueryHelper.forceDelete(bigquery, ROUTINE_DATASET); } @@ -3284,6 +3289,86 @@ public void testFastSQLQuery() throws InterruptedException { } } + @Test + public void testProjectIDFastSQLQueryWithJobId() throws InterruptedException { + String random_project_id = "RANDOM_PROJECT_" + UUID.randomUUID().toString().replace('-', '_'); + System.out.println(random_project_id); + String query = + "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FASTQUERY.getTable(); + // With incorrect projectID in jobid + // The job will be created with the specified(incorrect) projectID + // hence failing the operation + JobId jobIdWithProjectId = JobId.newBuilder().setProject(random_project_id).build(); + QueryJobConfiguration configSelect = + QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); + try { + bigquery.query(configSelect, jobIdWithProjectId); + } catch (Exception exception) { + // error message for non-existent project + assertTrue(exception.getMessage().contains("Cannot parse as CloudRegion")); + assertEquals(BigQueryException.class, exception.getClass()); + } + } + + @Test + public void testLocationFastSQLQueryWithJobId() throws InterruptedException { + DatasetInfo infoUK = + DatasetInfo.newBuilder(UK_DATASET) + .setDescription(DESCRIPTION) + .setLocation("europe-west1") + .setLabels(LABELS) + .build(); + bigquery.create(infoUK); + + TableDefinition tableDefinition = StandardTableDefinition.of(SIMPLE_SCHEMA); + TableInfo tableInfo = TableInfo.newBuilder(TABLE_ID_FASTQUERY_UK, tableDefinition).build(); + bigquery.create(tableInfo); + + String insert = + "INSERT " + UK_DATASET + "." + TABLE_ID_FASTQUERY_UK.getTable() + " VALUES('Anna');"; + + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(insert) + .setDefaultDataset(DatasetId.of(UK_DATASET)) + .build(); + TableResult result = bigquery.query(config); + assertEquals(SIMPLE_SCHEMA, result.getSchema()); + assertEquals(1, result.getTotalRows()); + assertNull(result.getNextPage()); + assertNull(result.getNextPageToken()); + assertFalse(result.hasNextPage()); + // Verify correctness of table content + for (FieldValueList row : result.getValues()) { + FieldValue stringCell = row.get(0); + assertEquals(stringCell, row.get("StringField")); + assertEquals("Anna", stringCell.getStringValue()); + } + // With incorrect location in jobid + // The job will be created with the specified(incorrect) location + // hence failing the operation + String query = "SELECT StringField FROM " + TABLE_ID_FASTQUERY_UK.getTable(); + JobId jobIdWithLocation = JobId.newBuilder().setLocation("us-west1").build(); + QueryJobConfiguration configSelect = + QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(UK_DATASET)).build(); + try { + bigquery.query(configSelect, jobIdWithLocation); + } catch (BigQueryException exception) { + assertTrue(exception.getMessage().contains("Not found")); + assertEquals(BigQueryException.class, exception.getClass()); + } + + // Without location in jobID, the query job defaults to the location of the dataset + JobId jobIdNoLocation = JobId.newBuilder().build(); + QueryJobConfiguration configNoLocation = + QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(UK_DATASET)).build(); + TableResult resultNoLocation = bigquery.query(configNoLocation, jobIdNoLocation); + for (FieldValueList row : resultNoLocation.getValues()) { + FieldValue stringCell = row.get(0); + assertEquals(stringCell, row.get("StringField")); + assertEquals("Anna", stringCell.getStringValue()); + } + } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testFastSQLQueryMultiPage() throws InterruptedException { From e4361066252e920d822ea9da525d1cb32fd53196 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 11 Nov 2022 20:16:33 +0100 Subject: [PATCH 2174/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.16.0 (#2414) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index eb95d67c983d..47bd53b8ec2d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.15.1 + 2.16.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 914a8c154ec6..ab2496ad0d5e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.15.1 + 2.16.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 68e10989369c..c44e482cb523 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.15.1 + 2.16.0 test From 2fa3df6aaf566cdf1fdd5604e32addfe8c217d3d Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 11 Nov 2022 19:44:14 +0000 Subject: [PATCH 2175/3441] chore: use gcp-docuploader 0.6.3 (#1708) (#2413) Source-Link: https://togithub.com/googleapis/synthtool/commit/fbc8bfe364d70c38fbffbf68ebe1cfdae54d3447 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:e76136cc48f90aa19ba29cdfbd4002111467e44a1c9d905867d98dafafbd03bb --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.in | 2 +- .kokoro/requirements.txt | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 676aaea0c74d..0f0647b00ef2 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:a3fe0b4c75f322520f548e535ed329df1e475ace3cb4a979b78e003cb822636a + digest: sha256:e76136cc48f90aa19ba29cdfbd4002111467e44a1c9d905867d98dafafbd03bb diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index ae1d92e68084..924f94ae6fa1 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -1,4 +1,4 @@ -gcp-docuploader==0.6.4 +gcp-docuploader==0.6.3 google-crc32c==1.3.0 googleapis-common-protos==1.56.3 gcp-releasetool==1.9.1 diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 9c82529c84ff..71fcafc70316 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -135,9 +135,9 @@ cryptography==38.0.3 \ # -r requirements.in # gcp-releasetool # secretstorage -gcp-docuploader==0.6.4 \ - --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \ - --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf +gcp-docuploader==0.6.3 \ + --hash=sha256:ba8c9d76b3bbac54b0311c503a373b00edc2dc02d6d54ea9507045adb8e870f7 \ + --hash=sha256:c0f5aaa82ce1854a386197e4e359b120ad6d4e57ae2c812fce42219a3288026b # via -r requirements.in gcp-releasetool==1.9.1 \ --hash=sha256:952f4055d5d986b070ae2a71c4410b250000f9cc5a1e26398fcd55a5bbc5a15f \ From 996627b3cd1a12d19135c85991aeed2688d0ac0b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 14 Nov 2022 23:14:28 +0100 Subject: [PATCH 2176/3441] test(deps): update dependency org.mockito:mockito-core to v4.9.0 (#2416) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5285aace804f..aaae80af5a09 100644 --- a/pom.xml +++ b/pom.xml @@ -148,7 +148,7 @@ org.mockito mockito-core - 4.8.1 + 4.9.0 test From 06765866bf4507f8f6ebbaee28e7dc698f9ba14c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 14 Nov 2022 23:15:00 +0100 Subject: [PATCH 2177/3441] deps: update jmh.version to v1.36 (#2415) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1ec05b9c1db4..69011291eb01 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.35 + 1.36 benchmark From c4490315b62606371e134f2a9c2fbfabc60bee03 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 16 Nov 2022 21:40:41 +0100 Subject: [PATCH 2178/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.12.0 (#2419) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index aaae80af5a09..8aa03927fb0e 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.11.0 + 1.12.0 pom import From 1ac1653ed705fa7173c4a83ab37169fdb15422e3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 16 Nov 2022 21:40:53 +0100 Subject: [PATCH 2179/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.8.0 (#2418) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8aa03927fb0e..0d3b4fb8ac08 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.7.0 + 2.8.0 test From f6bb264bda0874595c6240226ff99dd21eb9a50a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 16 Nov 2022 21:41:38 +0100 Subject: [PATCH 2180/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.8.0 (#2417) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 0d3b4fb8ac08..117ca210c96c 100644 --- a/pom.xml +++ b/pom.xml @@ -160,7 +160,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.7.0 + 2.8.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 47bd53b8ec2d..ac3615a830e2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.7.0 + 2.8.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ab2496ad0d5e..d5457a1fef5e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.7.0 + 2.8.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c44e482cb523..f58ef14c00e8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.7.0 + 2.8.0 test From baf337a12e89af73db0c2494e61f271f32e44ed0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 18 Nov 2022 18:58:35 +0100 Subject: [PATCH 2181/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.15.1 (#2420) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.15.0` -> `2.15.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.15.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.15.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.15.1/compatibility-slim/2.15.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.15.1/confidence-slim/2.15.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.15.1`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​2151-httpsgithubcomgoogleapisjava-storagecomparev2150v2151-2022-11-17) ##### Bug Fixes - Disable REGAPIC transport in storage v2 ([#​1762](https://togithub.com/googleapis/java-storage/issues/1762)) ([13d630e](https://togithub.com/googleapis/java-storage/commit/13d630e7ce89273c292acca7a7e048218ece4182)) - Update GrpcStorageImpl#get(BlobId) to return null on 404 ([#​1772](https://togithub.com/googleapis/java-storage/issues/1772)) ([8c59c64](https://togithub.com/googleapis/java-storage/commit/8c59c64ccf0dd7753467b4c0f0bcf5f4b49c5bf0)) ##### Documentation - Annotate all Option factory methods with their Nullability bounds ([#​1775](https://togithub.com/googleapis/java-storage/issues/1775)) ([3b8d137](https://togithub.com/googleapis/java-storage/commit/3b8d137a113376d7dac9010b9207d435df2622f7))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 117ca210c96c..5b7df4c9068c 100644 --- a/pom.xml +++ b/pom.xml @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.15.0 + 2.15.1 test From 2e1047c8115e294a4454cf34abb3172b3fb1ff69 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 18 Nov 2022 23:12:23 +0100 Subject: [PATCH 2182/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.1.5 (#2421) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/googleapis/java-cloud-bom)) | `26.1.4` -> `26.1.5` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.5/compatibility-slim/26.1.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.1.5/confidence-slim/26.1.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f5cdec8b488a..7ffa4facb893 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.1.4 + 26.1.5 pom import @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.1.4') +implementation platform('com.google.cloud:libraries-bom:26.1.5') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index fac75990ef4c..7e534e9d4507 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.1.4 + 26.1.5 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f58ef14c00e8..263a54548298 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.1.4 + 26.1.5 pom import From 63b51969dc20747d3dd1f127cc0fcb2d27c9c8c0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 21 Nov 2022 22:09:23 +0100 Subject: [PATCH 2183/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.18 (#2424) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 7e534e9d4507..02a82fcb34ac 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.17 + 0.9.18 test From cd2ae9f3d2c19be8a375e6be57a7e6b805b1ac4e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 21 Nov 2022 22:14:16 +0100 Subject: [PATCH 2184/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.18 (#2425) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 02a82fcb34ac..0b96e1f309b3 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.17 + 0.9.18 true com.example.bigquery.NativeImageBigquerySample From aff901904d04a9a35042126a90e2a2826283a3e7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 23 Nov 2022 15:24:54 +0100 Subject: [PATCH 2185/3441] deps: update arrow.version to v10.0.1 (#2426) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.arrow:arrow-memory-netty](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `10.0.0` -> `10.0.1` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/10.0.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/10.0.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/10.0.1/compatibility-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/10.0.1/confidence-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [org.apache.arrow:arrow-memory-core](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `10.0.0` -> `10.0.1` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/10.0.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/10.0.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/10.0.1/compatibility-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/10.0.1/confidence-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [org.apache.arrow:arrow-vector](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `10.0.0` -> `10.0.1` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/10.0.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/10.0.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/10.0.1/compatibility-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/10.0.1/confidence-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5b7df4c9068c..710d67be2683 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ google-cloud-bigquery-parent v2-rev20221028-2.0.0 3.0.6 - 10.0.0 + 10.0.1
    From baba5d6f4061cfa15d13c6f56880d68203e63378 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 8 Dec 2022 13:40:23 +0530 Subject: [PATCH 2186/3441] chore: upgrade native image checks to graalvm-22.3.0 (#1718) (#2428) chore: upgrade native image checks to graalvm-22.3.0 Source-Link: https://github.com/googleapis/synthtool/commit/5e52896b69b145a3fac6827e4e75e617abdc9dd8 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:27b1b1884dce60460d7521b23c2a73376cba90c0ef3d9f0d32e4bdb786959cfd Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 0f0647b00ef2..4ca0036da327 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:e76136cc48f90aa19ba29cdfbd4002111467e44a1c9d905867d98dafafbd03bb + digest: sha256:27b1b1884dce60460d7521b23c2a73376cba90c0ef3d9f0d32e4bdb786959cfd diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index a3f7fb9d4943..e20330c3ca60 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 4c7225ec924e..0fd6ba2fa0ce 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.0" } env_vars: { From 2effed158af6db27344bc610e20f19e547f6b922 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Tue, 13 Dec 2022 13:54:13 -0500 Subject: [PATCH 2187/3441] chore: fix BiEngineReason Message (#2443) --- .../test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index ed073a93ae07..52cb208c69d3 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -4304,7 +4304,7 @@ public void testQueryJob() throws InterruptedException, TimeoutException { statistics.getBiEngineStats().getBiEngineReasons().get(0).getCode(), "OTHER_REASON"); assertEquals( statistics.getBiEngineStats().getBiEngineReasons().get(0).getMessage(), - "Query output to destination table is not supported."); + "Only SELECT queries without a destination table can be accelerated."); } assertNotNull(statistics.getQueryPlan()); } From 567a44147219b5742ed82f56ade48a7613c8764b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Dec 2022 20:30:26 +0100 Subject: [PATCH 2188/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.5 (#2429) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 710d67be2683..5d6cb5f6b179 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.5.4 + 1.5.5 From f31da3a90f68637df55597cb2ea20477d1b80ba3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Dec 2022 20:30:47 +0100 Subject: [PATCH 2189/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.9.0 (#2440) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 5d6cb5f6b179..9bbe419e494b 100644 --- a/pom.xml +++ b/pom.xml @@ -160,7 +160,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.8.0 + 2.9.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ac3615a830e2..dfe9f74da459 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.8.0 + 2.9.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d5457a1fef5e..d719d333d12d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.8.0 + 2.9.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 263a54548298..06110d2d2d4b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.8.0 + 2.9.0 test From 3ea75f83e15b12c8071c6abd5bc663d6268caf9c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 13 Dec 2022 14:31:03 -0500 Subject: [PATCH 2190/3441] build(deps): bump certifi from 2022.9.24 to 2022.12.7 in /synthtool/gcp/templates/java_library/.kokoro (#1732) (#2442) build(deps): bump certifi Bumps [certifi](https://github.com/certifi/python-certifi) from 2022.9.24 to 2022.12.7. - [Release notes](https://github.com/certifi/python-certifi/releases) - [Commits](https://github.com/certifi/python-certifi/compare/2022.09.24...2022.12.07) --- updated-dependencies: - dependency-name: certifi dependency-type: direct:production ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeff Ching Source-Link: https://github.com/googleapis/synthtool/commit/ae0d43e5f17972981fe501ecf5a5d20055128bea Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:9de537d592b60e5eac73b374a28263969bae91ecdb29b445e894576fbf54851c Signed-off-by: dependabot[bot] Co-authored-by: Owl Bot Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeff Ching --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.in | 2 +- .kokoro/requirements.txt | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 4ca0036da327..288e394897e6 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:27b1b1884dce60460d7521b23c2a73376cba90c0ef3d9f0d32e4bdb786959cfd + digest: sha256:9de537d592b60e5eac73b374a28263969bae91ecdb29b445e894576fbf54851c diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index 924f94ae6fa1..a5010f77d413 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -17,7 +17,7 @@ pycparser==2.21 pyperclip==1.8.2 python-dateutil==2.8.2 requests==2.27.1 -certifi==2022.9.24 +certifi==2022.12.7 importlib-metadata==4.8.3 zipp==3.6.0 google_api_core==2.8.2 diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 71fcafc70316..15c404aa5a8c 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -16,9 +16,9 @@ cachetools==4.2.4 \ # via # -r requirements.in # google-auth -certifi==2022.9.24 \ - --hash=sha256:0d9c601124e5a6ba9712dbc60d9c53c21e34f5f641fe83002317394311bdce14 \ - --hash=sha256:90c1a32f1d68f940488354e36370f6cca89f0f106db09518524c88d6ed83f382 +certifi==2022.12.7 \ + --hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \ + --hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18 # via # -r requirements.in # requests From eb52002919843ad9341d3f9b06c10e401637b82a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Dec 2022 20:32:14 +0100 Subject: [PATCH 2191/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20221127-2.0.0 (#2437) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9bbe419e494b..a71394f10e1a 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20221028-2.0.0 + v2-rev20221127-2.0.0 3.0.6 10.0.1
    From 54fdc788fd093213a8ac415e0ad3cb620b280c3c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Dec 2022 20:32:27 +0100 Subject: [PATCH 2192/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.17.1 (#2436) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index dfe9f74da459..93948d4fa097 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.16.0 + 2.17.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d719d333d12d..c52c2cfd6852 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.16.0 + 2.17.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 06110d2d2d4b..99ac67315224 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.16.0 + 2.17.1 test From bf940878a7cf602b7f0736335653bc6c479e2df6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Dec 2022 20:32:57 +0100 Subject: [PATCH 2193/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.19 (#2433) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 0b96e1f309b3..93aec8160488 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.18 + 0.9.19 true com.example.bigquery.NativeImageBigquerySample From 396c6dc101837a801c7f693f3a3548eb6685feaf Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Dec 2022 20:33:12 +0100 Subject: [PATCH 2194/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.19 (#2432) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 93aec8160488..4962e9b0e0d6 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.18 + 0.9.19 test From 01cc3c3d64884c2d7b68c5099de7c0959c1846db Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Dec 2022 20:56:15 +0100 Subject: [PATCH 2195/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.9.0 (#2441) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1](https://togithub.com/googleapis/google-cloud-java) | `2.8.0` -> `2.9.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.9.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.9.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.9.0/compatibility-slim/2.8.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.9.0/confidence-slim/2.8.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a71394f10e1a..dbde8f86f1a5 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.8.0 + 2.9.0 test From c99b21552e30a509b6220de7a491566dbab086db Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Dec 2022 21:00:19 +0100 Subject: [PATCH 2196/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.0 (#2435) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `3.0.6` -> `3.1.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.1.0/compatibility-slim/3.0.6)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.1.0/confidence-slim/3.0.6)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v3.1.0`](https://togithub.com/googleapis/java-shared-dependencies/blob/HEAD/CHANGELOG.md#​310-httpsgithubcomgoogleapisjava-shared-dependenciescomparev306v310-2022-12-05) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v3.0.6...v3.1.0) ##### Features - Next release from main branch is 3.1.0 ([#​910](https://togithub.com/googleapis/java-shared-dependencies/issues/910)) ([3e36bc6](https://togithub.com/googleapis/java-shared-dependencies/commit/3e36bc6c5a6ffff771480200ecf5908cb347a50a)) ##### Dependencies - Update dependency com.fasterxml.jackson:jackson-bom to v2.14.1 ([#​924](https://togithub.com/googleapis/java-shared-dependencies/issues/924)) ([c630375](https://togithub.com/googleapis/java-shared-dependencies/commit/c630375d5059b4ac367979a2507c3870840c08e4)) - Update dependency com.google.api-client:google-api-client-bom to v2.1.0 ([#​934](https://togithub.com/googleapis/java-shared-dependencies/issues/934)) ([8af7b00](https://togithub.com/googleapis/java-shared-dependencies/commit/8af7b00cf0758df4015b1999d6f824ba1864be00)) - Update dependency com.google.api-client:google-api-client-bom to v2.1.1 ([#​941](https://togithub.com/googleapis/java-shared-dependencies/issues/941)) ([6a6e3e7](https://togithub.com/googleapis/java-shared-dependencies/commit/6a6e3e7d3232c7d74f92849a98e607a6d22b7b4e)) - Update dependency com.google.auth:google-auth-library-bom to v1.13.0 ([#​917](https://togithub.com/googleapis/java-shared-dependencies/issues/917)) ([1e2448c](https://togithub.com/googleapis/java-shared-dependencies/commit/1e2448c60cbe3e215b4f9f772d8e0c7cb1434bd0)) - Update dependency com.google.cloud:grpc-gcp to v1.3.2 ([#​942](https://togithub.com/googleapis/java-shared-dependencies/issues/942)) ([66c3e2a](https://togithub.com/googleapis/java-shared-dependencies/commit/66c3e2acda213fe9aea60b85f8543e3fdeaa2ecf)) - Update dependency com.google.cloud.tools:dependencies to v1.5.13 ([#​914](https://togithub.com/googleapis/java-shared-dependencies/issues/914)) ([9c0fa2c](https://togithub.com/googleapis/java-shared-dependencies/commit/9c0fa2c06ed04a3dddd9f0fd908865279393d373)) - Update dependency com.google.protobuf:protobuf-bom to v3.21.10 ([#​936](https://togithub.com/googleapis/java-shared-dependencies/issues/936)) ([f8abca8](https://togithub.com/googleapis/java-shared-dependencies/commit/f8abca8e075c59461c88b8c79fd1c5cd5eacb509)) - Update dependency io.grpc:grpc-bom to v1.51.0 ([#​919](https://togithub.com/googleapis/java-shared-dependencies/issues/919)) ([713b331](https://togithub.com/googleapis/java-shared-dependencies/commit/713b331a39917725ed4bd95c80c083c23d2a192e)) - Update dependency io.perfmark:perfmark-api to v0.26.0 ([#​907](https://togithub.com/googleapis/java-shared-dependencies/issues/907)) ([950cca6](https://togithub.com/googleapis/java-shared-dependencies/commit/950cca6df2d7e7d24ab8dd7e32c7a264e89d721f)) - Update dependency org.apache.httpcomponents:httpclient to v4.5.14 ([#​943](https://togithub.com/googleapis/java-shared-dependencies/issues/943)) ([7590b65](https://togithub.com/googleapis/java-shared-dependencies/commit/7590b6538290d3f9892b2b302505d3ecfca69530)) - Update dependency org.apache.httpcomponents:httpcore to v4.4.16 ([#​933](https://togithub.com/googleapis/java-shared-dependencies/issues/933)) ([6a68eb9](https://togithub.com/googleapis/java-shared-dependencies/commit/6a68eb96179a13cf324b4a4026ff6877d447a334)) - Update dependency org.checkerframework:checker-qual to v3.28.0 ([#​940](https://togithub.com/googleapis/java-shared-dependencies/issues/940)) ([5ea57c3](https://togithub.com/googleapis/java-shared-dependencies/commit/5ea57c3f5490c3cf7048e71dfab63aba8d7b874f)) - Update gax.version to v2.20.1 ([#​937](https://togithub.com/googleapis/java-shared-dependencies/issues/937)) ([ca30914](https://togithub.com/googleapis/java-shared-dependencies/commit/ca30914b59516c634de24b1fa33c8a6c454a0cef)) - Update google.common-protos.version to v2.11.0 ([#​935](https://togithub.com/googleapis/java-shared-dependencies/issues/935)) ([e92f583](https://togithub.com/googleapis/java-shared-dependencies/commit/e92f58361c0062414c34b669161f9d6284b0903f)) - Update google.core.version to v2.8.28 ([#​909](https://togithub.com/googleapis/java-shared-dependencies/issues/909)) ([79a731e](https://togithub.com/googleapis/java-shared-dependencies/commit/79a731e057fa7b1ac5f4bc6ae15869726bc9c20a)) - Update google.core.version to v2.9.0 ([#​944](https://togithub.com/googleapis/java-shared-dependencies/issues/944)) ([a50513b](https://togithub.com/googleapis/java-shared-dependencies/commit/a50513bc8902d059a7b53dc852b02b7e2f9bc3e6)) - Update iam.version to v1.6.10 ([#​915](https://togithub.com/googleapis/java-shared-dependencies/issues/915)) ([2c06312](https://togithub.com/googleapis/java-shared-dependencies/commit/2c06312732a56fd94f0ce8447062b42b3da15c92)) - Update iam.version to v1.6.11 ([#​916](https://togithub.com/googleapis/java-shared-dependencies/issues/916)) ([10b152d](https://togithub.com/googleapis/java-shared-dependencies/commit/10b152ded8ceded5ae3c60774ea8e75c7b69d9d8)) - Update iam.version to v1.6.12 ([#​918](https://togithub.com/googleapis/java-shared-dependencies/issues/918)) ([db57153](https://togithub.com/googleapis/java-shared-dependencies/commit/db57153752380dacb773530aef8079ff68772fc9)) - Update iam.version to v1.6.13 ([#​920](https://togithub.com/googleapis/java-shared-dependencies/issues/920)) ([763197e](https://togithub.com/googleapis/java-shared-dependencies/commit/763197e94a34620a2e234885fcdbdcb5fba144c2)) - Update iam.version to v1.6.14 ([#​921](https://togithub.com/googleapis/java-shared-dependencies/issues/921)) ([036cf6f](https://togithub.com/googleapis/java-shared-dependencies/commit/036cf6f0df788e9bffd5e21bfd8e560a797ed37d)) - Update iam.version to v1.6.15 ([#​922](https://togithub.com/googleapis/java-shared-dependencies/issues/922)) ([98b11a7](https://togithub.com/googleapis/java-shared-dependencies/commit/98b11a72f3818e4505d468c47b7c8105a3b55847)) - Update iam.version to v1.6.16 ([#​923](https://togithub.com/googleapis/java-shared-dependencies/issues/923)) ([b44d6ba](https://togithub.com/googleapis/java-shared-dependencies/commit/b44d6babd71d89ed27a0d7cac229d04111bb39e7)) - Update iam.version to v1.6.17 ([#​925](https://togithub.com/googleapis/java-shared-dependencies/issues/925)) ([f24a7f8](https://togithub.com/googleapis/java-shared-dependencies/commit/f24a7f8577ca90153d86b9ed3eab5954c1fc5500)) - Update iam.version to v1.6.18 ([#​926](https://togithub.com/googleapis/java-shared-dependencies/issues/926)) ([c77314d](https://togithub.com/googleapis/java-shared-dependencies/commit/c77314d5bdfbe960e6f71fb8dc044a60d1973038)) - Update iam.version to v1.6.19 ([#​927](https://togithub.com/googleapis/java-shared-dependencies/issues/927)) ([2990cf0](https://togithub.com/googleapis/java-shared-dependencies/commit/2990cf020e526ddba54c2a0542ef8e01f4f517f5)) - Update iam.version to v1.6.20 ([#​928](https://togithub.com/googleapis/java-shared-dependencies/issues/928)) ([7dbd204](https://togithub.com/googleapis/java-shared-dependencies/commit/7dbd204cdc0df7107c656e28766afeb14f6793c4)) - Update iam.version to v1.6.21 ([#​929](https://togithub.com/googleapis/java-shared-dependencies/issues/929)) ([cec2265](https://togithub.com/googleapis/java-shared-dependencies/commit/cec2265e43eaac7cc1be3c9bb42c0d93872f4075)) - Update iam.version to v1.6.22 ([#​931](https://togithub.com/googleapis/java-shared-dependencies/issues/931)) ([812ccf4](https://togithub.com/googleapis/java-shared-dependencies/commit/812ccf46fb0ada475dea2f6eb53839be8940dbde)) - Update iam.version to v1.6.8 ([#​906](https://togithub.com/googleapis/java-shared-dependencies/issues/906)) ([68ebe06](https://togithub.com/googleapis/java-shared-dependencies/commit/68ebe06101ec5b24fddb48012e3487c37827ba6a)) - Update iam.version to v1.6.9 ([#​912](https://togithub.com/googleapis/java-shared-dependencies/issues/912)) ([6a3097b](https://togithub.com/googleapis/java-shared-dependencies/commit/6a3097b559319f643f63727bd6d4ce5d30091317))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dbde8f86f1a5..5e57edcafba4 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20221127-2.0.0 - 3.0.6 + 3.1.0 10.0.1
    From 7255357fc3bc715ebe15761acbe83c5e33495fdc Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Dec 2022 21:32:15 +0100 Subject: [PATCH 2197/3441] deps: update cloud client dependencies (#2444) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.15.1` -> `2.16.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.16.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.16.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.16.0/compatibility-slim/2.15.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.16.0/confidence-slim/2.15.1)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.cloud:google-cloud-datacatalog-bom](https://togithub.com/googleapis/google-cloud-java) | `1.12.0` -> `1.13.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.13.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.13.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.13.0/compatibility-slim/1.12.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.13.0/confidence-slim/1.12.0)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.25.0` -> `2.27.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.27.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.27.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.27.0/compatibility-slim/2.25.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.27.0/confidence-slim/2.25.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.16.0`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​2160-httpsgithubcomgoogleapisjava-storagecomparev2151v2160-2022-12-06) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.15.1...v2.16.0) ##### Features - Add {Compose,Rewrite,StartResumableWrite}Request.object_checksums and Bucket.RetentionPolicy.retention_duration ([#​1790](https://togithub.com/googleapis/java-storage/issues/1790)) ([31c1b18](https://togithub.com/googleapis/java-storage/commit/31c1b18acc3c118e39eb613a82ee292f3e246b8f)) - Added a new retention_duration field of Duration type ([31c1b18](https://togithub.com/googleapis/java-storage/commit/31c1b18acc3c118e39eb613a82ee292f3e246b8f)) - Added object_checksums for compose/rewrite/startResumableWrite request ([31c1b18](https://togithub.com/googleapis/java-storage/commit/31c1b18acc3c118e39eb613a82ee292f3e246b8f)) ##### Bug Fixes - Removed WriteObject routing annotations ([31c1b18](https://togithub.com/googleapis/java-storage/commit/31c1b18acc3c118e39eb613a82ee292f3e246b8f)) ##### Documentation - Clarified relative resource names in gRPC IAM RPCs ([31c1b18](https://togithub.com/googleapis/java-storage/commit/31c1b18acc3c118e39eb613a82ee292f3e246b8f)) - Clarified the object can be deleted via DeleteObject ([31c1b18](https://togithub.com/googleapis/java-storage/commit/31c1b18acc3c118e39eb613a82ee292f3e246b8f)) - Updated the document link for `Naming Guidelines` ([31c1b18](https://togithub.com/googleapis/java-storage/commit/31c1b18acc3c118e39eb613a82ee292f3e246b8f)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.0 ([#​1797](https://togithub.com/googleapis/java-storage/issues/1797)) ([b1d0266](https://togithub.com/googleapis/java-storage/commit/b1d026608a5e3772e8bf77f25f1daf68b007427a)) - Update dependency org.apache.httpcomponents:httpclient to v4.5.14 ([#​1795](https://togithub.com/googleapis/java-storage/issues/1795)) ([cf900f4](https://togithub.com/googleapis/java-storage/commit/cf900f4139f30f89e3c0784467ddc12cc00cf81c)) - Update dependency org.apache.httpcomponents:httpcore to v4.4.16 ([#​1786](https://togithub.com/googleapis/java-storage/issues/1786)) ([3bf403e](https://togithub.com/googleapis/java-storage/commit/3bf403e94c035e6cf936e062a1ced2b5221b3912)) - Update dependency org.apache.httpcomponents:httpmime to v4.5.14 ([#​1796](https://togithub.com/googleapis/java-storage/issues/1796)) ([c9ee3ca](https://togithub.com/googleapis/java-storage/commit/c9ee3ca8820531cd709bb8f8a58a736813346861)) - Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.18 ([#​1782](https://togithub.com/googleapis/java-storage/issues/1782)) ([5bc5176](https://togithub.com/googleapis/java-storage/commit/5bc517623ef04bdb9a71a51666754b9f753f4c69)) - Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.19 ([#​1791](https://togithub.com/googleapis/java-storage/issues/1791)) ([3184d65](https://togithub.com/googleapis/java-storage/commit/3184d65cce1368c2f39ff85a6ed02cf536902244))
    googleapis/java-bigquerystorage ### [`v2.27.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2270-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2260v2270-2022-12-12) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.26.0...v2.27.0) ##### Features - Change one thread per retry to use a thread pool ([#​1898](https://togithub.com/googleapis/java-bigquerystorage/issues/1898)) ([44a4e4d](https://togithub.com/googleapis/java-bigquerystorage/commit/44a4e4d8c70bf910f96d2d2c181d1f23b70f3e52)) - Throw error when using connection pool for explicit stream ([#​1903](https://togithub.com/googleapis/java-bigquerystorage/issues/1903)) ([bd89556](https://togithub.com/googleapis/java-bigquerystorage/commit/bd895567fe33735294065d7043d845f14f33f8a8)) ##### Bug Fixes - Add back the accidentally removed background executor provider ([#​1899](https://togithub.com/googleapis/java-bigquerystorage/issues/1899)) ([065cc4f](https://togithub.com/googleapis/java-bigquerystorage/commit/065cc4f35ad5e5cdc393e01adbea881c6e92dcab)) - Update JsonStreamWriterBuilder comment and update sample to use the latest schema retrieval support ([#​1902](https://togithub.com/googleapis/java-bigquerystorage/issues/1902)) ([2a46ec3](https://togithub.com/googleapis/java-bigquerystorage/commit/2a46ec3df419bbeba6a2e60b2b621dc60f31eab1)) ##### Dependencies - Update arrow.version to v10.0.1 ([#​1894](https://togithub.com/googleapis/java-bigquerystorage/issues/1894)) ([8e90767](https://togithub.com/googleapis/java-bigquerystorage/commit/8e907677bae0c48e8c64be5cbab8fb203645f4ef)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.0 ([#​1905](https://togithub.com/googleapis/java-bigquerystorage/issues/1905)) ([767be03](https://togithub.com/googleapis/java-bigquerystorage/commit/767be035defbcc5b77f1276bb1a2983b6a7423bd)) - Update dependency org.apache.arrow:arrow-memory-netty to v10.0.1 ([#​1895](https://togithub.com/googleapis/java-bigquerystorage/issues/1895)) ([8b079cc](https://togithub.com/googleapis/java-bigquerystorage/commit/8b079cc47ca914756bd73dda98bd15393754ebb1)) - Update dependency org.apache.arrow:arrow-vector to v10.0.1 ([#​1896](https://togithub.com/googleapis/java-bigquerystorage/issues/1896)) ([087ac6e](https://togithub.com/googleapis/java-bigquerystorage/commit/087ac6e7ad813dc248e9029f91c454299a87b2b3)) ### [`v2.26.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2260-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2250v2260-2022-11-18) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.25.0...v2.26.0) ##### Features - Add missing_value_interpretations to AppendRowsRequest ([#​1885](https://togithub.com/googleapis/java-bigquerystorage/issues/1885)) ([0def62f](https://togithub.com/googleapis/java-bigquerystorage/commit/0def62fb6375d35e753f60dc2ac3b102e15ef336)) - Add update schema support for multiplexing ([#​1867](https://togithub.com/googleapis/java-bigquerystorage/issues/1867)) ([2adf81b](https://togithub.com/googleapis/java-bigquerystorage/commit/2adf81b70da043c6a66e38dbd52ef7aae9cffb9e)) - Fix windows build failure by using nanoSeconds instead of Instant for better accuracy. ([#​1887](https://togithub.com/googleapis/java-bigquerystorage/issues/1887)) ([e5cd7df](https://togithub.com/googleapis/java-bigquerystorage/commit/e5cd7df54e2f6af12c240268a91e0afc2ec27a8a)) - Next release from main branch is 2.26.0 ([#​1874](https://togithub.com/googleapis/java-bigquerystorage/issues/1874)) ([589dd63](https://togithub.com/googleapis/java-bigquerystorage/commit/589dd637dfc16fb9bd3655a0d98115f601983997)) - Provide sample code for row-level error handling ([#​1863](https://togithub.com/googleapis/java-bigquerystorage/issues/1863)) ([027c5bb](https://togithub.com/googleapis/java-bigquerystorage/commit/027c5bb7cc27234bc1e3a552b4896b919921dc71)) ##### Bug Fixes - Fix window build bug caused by Instant resolution. ([#​1884](https://togithub.com/googleapis/java-bigquerystorage/issues/1884)) ([2332dc1](https://togithub.com/googleapis/java-bigquerystorage/commit/2332dc13bb45c7377722a3a289d66a4cf73bb79d)) ##### Dependencies - Update dependency com.google.auto.value:auto-value to v1.10.1 ([#​1888](https://togithub.com/googleapis/java-bigquerystorage/issues/1888)) ([9546298](https://togithub.com/googleapis/java-bigquerystorage/commit/954629811d0b9e942f23e0cb0d1935cd38e4b30b)) - Update dependency com.google.auto.value:auto-value-annotations to v1.10.1 ([#​1889](https://togithub.com/googleapis/java-bigquerystorage/issues/1889)) ([b4eec03](https://togithub.com/googleapis/java-bigquerystorage/commit/b4eec032706f2ed7039b3ad9bfd81b8dea536008)) - Update dependency com.google.cloud:google-cloud-bigquery to v2.19.1 ([#​1878](https://togithub.com/googleapis/java-bigquerystorage/issues/1878)) ([4b1989b](https://togithub.com/googleapis/java-bigquerystorage/commit/4b1989b51d18b081c8e980a59bd6117230c11a9d))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 5e57edcafba4..4131f876677b 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.25.0 + 2.27.0 pom import @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.12.0 + 1.13.0 pom import @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.15.1 + 2.16.0 test From e4d1076a623c6f491a57278e22397b79d4d7b0ee Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 13 Dec 2022 21:00:21 +0000 Subject: [PATCH 2198/3441] chore(main): release 2.20.0 (#2408) :robot: I have created a release *beep* *boop* --- ## [2.20.0](https://togithub.com/googleapis/java-bigquery/compare/v2.19.1...v2.20.0) (2022-12-13) ### Features * Add fast query path support when empty jobId object is passed ([#2349](https://togithub.com/googleapis/java-bigquery/issues/2349)) ([42c083a](https://togithub.com/googleapis/java-bigquery/commit/42c083ac680c657bf3f648fbce81004ecac8be87)) * Next release from main branch is 2.20.0 ([#2405](https://togithub.com/googleapis/java-bigquery/issues/2405)) ([9297a43](https://togithub.com/googleapis/java-bigquery/commit/9297a4359f7b080a60b6bb5873edfd66cd7d2261)) ### Dependencies * Update arrow.version to v10.0.1 ([#2426](https://togithub.com/googleapis/java-bigquery/issues/2426)) ([aff9019](https://togithub.com/googleapis/java-bigquery/commit/aff901904d04a9a35042126a90e2a2826283a3e7)) * Update cloud client dependencies ([#2444](https://togithub.com/googleapis/java-bigquery/issues/2444)) ([7255357](https://togithub.com/googleapis/java-bigquery/commit/7255357fc3bc715ebe15761acbe83c5e33495fdc)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.8.0 ([#2418](https://togithub.com/googleapis/java-bigquery/issues/2418)) ([1ac1653](https://togithub.com/googleapis/java-bigquery/commit/1ac1653ed705fa7173c4a83ab37169fdb15422e3)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.9.0 ([#2441](https://togithub.com/googleapis/java-bigquery/issues/2441)) ([01cc3c3](https://togithub.com/googleapis/java-bigquery/commit/01cc3c3d64884c2d7b68c5099de7c0959c1846db)) * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20221127-2.0.0 ([#2437](https://togithub.com/googleapis/java-bigquery/issues/2437)) ([eb52002](https://togithub.com/googleapis/java-bigquery/commit/eb52002919843ad9341d3f9b06c10e401637b82a)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.12.0 ([#2419](https://togithub.com/googleapis/java-bigquery/issues/2419)) ([c449031](https://togithub.com/googleapis/java-bigquery/commit/c4490315b62606371e134f2a9c2fbfabc60bee03)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.0 ([#2435](https://togithub.com/googleapis/java-bigquery/issues/2435)) ([c99b215](https://togithub.com/googleapis/java-bigquery/commit/c99b21552e30a509b6220de7a491566dbab086db)) * Update dependency com.google.cloud:google-cloud-storage to v2.15.1 ([#2420](https://togithub.com/googleapis/java-bigquery/issues/2420)) ([baf337a](https://togithub.com/googleapis/java-bigquery/commit/baf337a12e89af73db0c2494e61f271f32e44ed0)) * Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.18 ([#2424](https://togithub.com/googleapis/java-bigquery/issues/2424)) ([63b5196](https://togithub.com/googleapis/java-bigquery/commit/63b51969dc20747d3dd1f127cc0fcb2d27c9c8c0)) * Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.19 ([#2432](https://togithub.com/googleapis/java-bigquery/issues/2432)) ([396c6dc](https://togithub.com/googleapis/java-bigquery/commit/396c6dc101837a801c7f693f3a3548eb6685feaf)) * Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.18 ([#2425](https://togithub.com/googleapis/java-bigquery/issues/2425)) ([cd2ae9f](https://togithub.com/googleapis/java-bigquery/commit/cd2ae9f3d2c19be8a375e6be57a7e6b805b1ac4e)) * Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.19 ([#2433](https://togithub.com/googleapis/java-bigquery/issues/2433)) ([bf94087](https://togithub.com/googleapis/java-bigquery/commit/bf940878a7cf602b7f0736335653bc6c479e2df6)) * Update jmh.version to v1.36 ([#2415](https://togithub.com/googleapis/java-bigquery/issues/2415)) ([0676586](https://togithub.com/googleapis/java-bigquery/commit/06765866bf4507f8f6ebbaee28e7dc698f9ba14c)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 25 +++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 32 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2959a5a17db0..5c22cf03e9b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,30 @@ # Changelog +## [2.20.0](https://github.com/googleapis/java-bigquery/compare/v2.19.1...v2.20.0) (2022-12-13) + + +### Features + +* Add fast query path support when empty jobId object is passed ([#2349](https://github.com/googleapis/java-bigquery/issues/2349)) ([42c083a](https://github.com/googleapis/java-bigquery/commit/42c083ac680c657bf3f648fbce81004ecac8be87)) +* Next release from main branch is 2.20.0 ([#2405](https://github.com/googleapis/java-bigquery/issues/2405)) ([9297a43](https://github.com/googleapis/java-bigquery/commit/9297a4359f7b080a60b6bb5873edfd66cd7d2261)) + + +### Dependencies + +* Update arrow.version to v10.0.1 ([#2426](https://github.com/googleapis/java-bigquery/issues/2426)) ([aff9019](https://github.com/googleapis/java-bigquery/commit/aff901904d04a9a35042126a90e2a2826283a3e7)) +* Update cloud client dependencies ([#2444](https://github.com/googleapis/java-bigquery/issues/2444)) ([7255357](https://github.com/googleapis/java-bigquery/commit/7255357fc3bc715ebe15761acbe83c5e33495fdc)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.8.0 ([#2418](https://github.com/googleapis/java-bigquery/issues/2418)) ([1ac1653](https://github.com/googleapis/java-bigquery/commit/1ac1653ed705fa7173c4a83ab37169fdb15422e3)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.9.0 ([#2441](https://github.com/googleapis/java-bigquery/issues/2441)) ([01cc3c3](https://github.com/googleapis/java-bigquery/commit/01cc3c3d64884c2d7b68c5099de7c0959c1846db)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20221127-2.0.0 ([#2437](https://github.com/googleapis/java-bigquery/issues/2437)) ([eb52002](https://github.com/googleapis/java-bigquery/commit/eb52002919843ad9341d3f9b06c10e401637b82a)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.12.0 ([#2419](https://github.com/googleapis/java-bigquery/issues/2419)) ([c449031](https://github.com/googleapis/java-bigquery/commit/c4490315b62606371e134f2a9c2fbfabc60bee03)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.0 ([#2435](https://github.com/googleapis/java-bigquery/issues/2435)) ([c99b215](https://github.com/googleapis/java-bigquery/commit/c99b21552e30a509b6220de7a491566dbab086db)) +* Update dependency com.google.cloud:google-cloud-storage to v2.15.1 ([#2420](https://github.com/googleapis/java-bigquery/issues/2420)) ([baf337a](https://github.com/googleapis/java-bigquery/commit/baf337a12e89af73db0c2494e61f271f32e44ed0)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.18 ([#2424](https://github.com/googleapis/java-bigquery/issues/2424)) ([63b5196](https://github.com/googleapis/java-bigquery/commit/63b51969dc20747d3dd1f127cc0fcb2d27c9c8c0)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.19 ([#2432](https://github.com/googleapis/java-bigquery/issues/2432)) ([396c6dc](https://github.com/googleapis/java-bigquery/commit/396c6dc101837a801c7f693f3a3548eb6685feaf)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.18 ([#2425](https://github.com/googleapis/java-bigquery/issues/2425)) ([cd2ae9f](https://github.com/googleapis/java-bigquery/commit/cd2ae9f3d2c19be8a375e6be57a7e6b805b1ac4e)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.19 ([#2433](https://github.com/googleapis/java-bigquery/issues/2433)) ([bf94087](https://github.com/googleapis/java-bigquery/commit/bf940878a7cf602b7f0736335653bc6c479e2df6)) +* Update jmh.version to v1.36 ([#2415](https://github.com/googleapis/java-bigquery/issues/2415)) ([0676586](https://github.com/googleapis/java-bigquery/commit/06765866bf4507f8f6ebbaee28e7dc698f9ba14c)) + ## [2.19.1](https://github.com/googleapis/java-bigquery/compare/v2.19.0...v2.19.1) (2022-11-08) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 69011291eb01..bb0b93e16856 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.19.2-SNAPSHOT + 2.20.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ee75b9df38c0..78d5997f78cf 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.19.2-SNAPSHOT + 2.20.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.19.2-SNAPSHOT + 2.20.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4131f876677b..0f7fcfbdb43d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.19.2-SNAPSHOT + 2.20.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.19.2-SNAPSHOT + 2.20.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c52c2cfd6852..e27ce416672c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.19.2-SNAPSHOT + 2.20.0 diff --git a/versions.txt b/versions.txt index 697276911824..400df5cbfd5c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.19.1:2.19.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.20.0:2.20.0 \ No newline at end of file From 07197ebbdba7ee62dc2e2485cd79a5a9a9b3dfd5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 13 Dec 2022 21:26:14 +0000 Subject: [PATCH 2199/3441] chore(main): release 2.20.1-SNAPSHOT (#2445) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index bb0b93e16856..ac436b9ca873 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.20.0 + 2.20.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 78d5997f78cf..3a423d6de64b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.20.0 + 2.20.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.20.0 + 2.20.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0f7fcfbdb43d..be57a07d7b5d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.20.0 + 2.20.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.20.0 + 2.20.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e27ce416672c..747d9a6a1128 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.20.0 + 2.20.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 400df5cbfd5c..92bdb26c98f0 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.20.0:2.20.0 \ No newline at end of file +google-cloud-bigquery:2.20.0:2.20.1-SNAPSHOT \ No newline at end of file From 293082af2451dab0655d8fbf96380a9eac7ac788 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 15 Dec 2022 19:52:32 +0100 Subject: [PATCH 2200/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.20.0 (#2446) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.20.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7ffa4facb893..9c21469bcaac 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.19.1 + 2.20.0 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.19.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.20.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.19.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.20.0" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 93948d4fa097..50268f52f8a6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.19.1 + 2.20.0 From 4b760e1049c6ddbfcb17b7de5905f43a53165c3d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 4 Jan 2023 22:40:46 +0100 Subject: [PATCH 2201/3441] deps: update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.28.0 (#2451) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.27.0` -> `2.28.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.28.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.28.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.28.0/compatibility-slim/2.27.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.28.0/confidence-slim/2.27.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquerystorage ### [`v2.28.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2280-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2270v2280-2023-01-04) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.27.0...v2.28.0) ##### Features - Add estimated number of rows to CreateReadSession response ([#​1913](https://togithub.com/googleapis/java-bigquerystorage/issues/1913)) ([4840b26](https://togithub.com/googleapis/java-bigquerystorage/commit/4840b26956c22e40b6edcefe57f26dd0386e90e5)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-bigquery to v2.20.0 ([#​1912](https://togithub.com/googleapis/java-bigquerystorage/issues/1912)) ([e9e7ac3](https://togithub.com/googleapis/java-bigquerystorage/commit/e9e7ac3d4e655f7b77d830108226891c45464069)) - Update dependency org.json:json to v20220924 ([#​1799](https://togithub.com/googleapis/java-bigquerystorage/issues/1799)) ([a0a5d52](https://togithub.com/googleapis/java-bigquerystorage/commit/a0a5d52cdd06739992944126a89fe58daf4ee605))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9c21469bcaac..b36b9ac87a86 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.1.5') +implementation platform('com.google.cloud:libraries-bom:26.2.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/pom.xml b/pom.xml index be57a07d7b5d..b5f9904a3120 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.27.0 + 2.28.0 pom import From feced40273ff0ecdbfa354926513dccba2b68065 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 4 Jan 2023 22:14:45 +0000 Subject: [PATCH 2202/3441] chore(main): release 2.20.1 (#2452) :robot: I have created a release *beep* *boop* --- ## [2.20.1](https://togithub.com/googleapis/java-bigquery/compare/v2.20.0...v2.20.1) (2023-01-04) ### Dependencies * Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.28.0 ([#2451](https://togithub.com/googleapis/java-bigquery/issues/2451)) ([4b760e1](https://togithub.com/googleapis/java-bigquery/commit/4b760e1049c6ddbfcb17b7de5905f43a53165c3d)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c22cf03e9b1..52523cba7bba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.20.1](https://github.com/googleapis/java-bigquery/compare/v2.20.0...v2.20.1) (2023-01-04) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.28.0 ([#2451](https://github.com/googleapis/java-bigquery/issues/2451)) ([4b760e1](https://github.com/googleapis/java-bigquery/commit/4b760e1049c6ddbfcb17b7de5905f43a53165c3d)) + ## [2.20.0](https://github.com/googleapis/java-bigquery/compare/v2.19.1...v2.20.0) (2022-12-13) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ac436b9ca873..eb6fab5f7944 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.20.1-SNAPSHOT + 2.20.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3a423d6de64b..d25baff65e87 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.20.1-SNAPSHOT + 2.20.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.20.1-SNAPSHOT + 2.20.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b5f9904a3120..aa022674cebc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.20.1-SNAPSHOT + 2.20.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.20.1-SNAPSHOT + 2.20.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 747d9a6a1128..bc5ff4700b5a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.20.1-SNAPSHOT + 2.20.1 diff --git a/versions.txt b/versions.txt index 92bdb26c98f0..8c97e5bbaf8a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.20.0:2.20.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.20.1:2.20.1 \ No newline at end of file From 70d291697c17dc47dceed5dd9152ff5991bf72c1 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 4 Jan 2023 22:42:14 +0000 Subject: [PATCH 2203/3441] chore(main): release 2.20.2-SNAPSHOT (#2453) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index eb6fab5f7944..2e50cc0c46c3 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.20.1 + 2.20.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d25baff65e87..044cba69d837 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.20.1 + 2.20.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.20.1 + 2.20.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index aa022674cebc..2b1b126869a0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.20.1 + 2.20.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.20.1 + 2.20.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bc5ff4700b5a..4d1f0c31ddd9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.20.1 + 2.20.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 8c97e5bbaf8a..804f08a213f1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.20.1:2.20.1 \ No newline at end of file +google-cloud-bigquery:2.20.1:2.20.2-SNAPSHOT \ No newline at end of file From 2e81f7a824c2eb6dbd9bd4aff416628715cb897b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Jan 2023 20:43:38 +0000 Subject: [PATCH 2204/3441] test(deps): update dependency org.mockito:mockito-core to v4.11.0 (#2447) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(deps): update dependency org.mockito:mockito-core to v4.11.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2b1b126869a0..7177874d0079 100644 --- a/pom.xml +++ b/pom.xml @@ -148,7 +148,7 @@ org.mockito mockito-core - 4.9.0 + 4.11.0 test From e53fb6aac0b5ecb14c9772a7f2d3bc0ee2ad752b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Jan 2023 20:43:59 +0000 Subject: [PATCH 2205/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.2.0 (#2448) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.2.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b36b9ac87a86..1b08e744ee33 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.1.5 + 26.2.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 4962e9b0e0d6..610182bdcff0 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.1.5 + 26.2.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 99ac67315224..c4b6873bf740 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.1.5 + 26.2.0 pom import From 9d0a107da5e1e600dddccae79eb83358fd6940c6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Jan 2023 20:44:16 +0000 Subject: [PATCH 2206/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20221209-2.0.0 (#2449) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20221209-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7177874d0079..f510c6bd4f50 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20221127-2.0.0 + v2-rev20221209-2.0.0 3.1.0 10.0.1 From c1025090444b64c73d1a461a81c6f4bf6bf243d2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Jan 2023 20:44:36 +0000 Subject: [PATCH 2207/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.20.1 (#2454) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.20.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 1b08e744ee33..3a6a3fc7f99f 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.20.0 + 2.20.1 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.20.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.20.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.20.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.20.1" ``` ## Authentication diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 50268f52f8a6..110af1086279 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.20.0 + 2.20.1 From 485be563ba50974dd40069072b56d319ad40a70a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Jan 2023 20:44:58 +0000 Subject: [PATCH 2208/3441] deps: update dependency org.threeten:threeten-extra to v1.7.2 (#2450) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency org.threeten:threeten-extra to v1.7.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f510c6bd4f50..32d29255007f 100644 --- a/pom.xml +++ b/pom.xml @@ -123,7 +123,7 @@ org.threeten threeten-extra - 1.7.1 + 1.7.2 From 412710c25d637efeac5a2242ad841b11a788708a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Jan 2023 21:14:15 +0000 Subject: [PATCH 2209/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.1 (#2455) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `3.1.0` -> `3.1.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.1.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.1.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.1.1/compatibility-slim/3.1.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.1.1/confidence-slim/3.1.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v3.1.1`](https://togithub.com/googleapis/java-shared-dependencies/blob/HEAD/CHANGELOG.md#​311-httpsgithubcomgoogleapisjava-shared-dependenciescomparev310v311-2023-01-09) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v3.1.0...v3.1.1) ##### Dependencies - Adding `gapic-generator-java-bom` to `first-party-dependencies` ([#​957](https://togithub.com/googleapis/java-shared-dependencies/issues/957)) ([f051e6e](https://togithub.com/googleapis/java-shared-dependencies/commit/f051e6ee0ad4a705014d9d2f8211ddad464b3ca4)) - Update dependency com.google.api-client:google-api-client-bom to v2.1.2 ([#​956](https://togithub.com/googleapis/java-shared-dependencies/issues/956)) ([dbfde36](https://togithub.com/googleapis/java-shared-dependencies/commit/dbfde36f5b0806192ea99d45382c84cff518f500)) - Update dependency com.google.api:api-common to v2.3.1 ([#​947](https://togithub.com/googleapis/java-shared-dependencies/issues/947)) ([f35c3bf](https://togithub.com/googleapis/java-shared-dependencies/commit/f35c3bf518e8b488ddeb28a6ff86719b24a62df5)) - Update dependency com.google.auth:google-auth-library-bom to v1.14.0 ([#​950](https://togithub.com/googleapis/java-shared-dependencies/issues/950)) ([e5609ca](https://togithub.com/googleapis/java-shared-dependencies/commit/e5609ca23657e1c37825c6d8930da1fb5080b8a6)) - Update dependency com.google.code.gson:gson to v2.10.1 ([#​958](https://togithub.com/googleapis/java-shared-dependencies/issues/958)) ([bd35327](https://togithub.com/googleapis/java-shared-dependencies/commit/bd353274c16d01915923a6fa34796d0b78672fb0)) - Update dependency com.google.errorprone:error_prone_annotations to v2.17.0 ([#​955](https://togithub.com/googleapis/java-shared-dependencies/issues/955)) ([b656786](https://togithub.com/googleapis/java-shared-dependencies/commit/b6567863e659ff3eb6cc7b4b42a42acc7ebd24ed)) - Update dependency com.google.errorprone:error_prone_annotations to v2.18.0 ([#​961](https://togithub.com/googleapis/java-shared-dependencies/issues/961)) ([0c4ff89](https://togithub.com/googleapis/java-shared-dependencies/commit/0c4ff895e103164dc0c95bc9789f9a3dc6c2f1a4)) - Update dependency com.google.protobuf:protobuf-bom to v3.21.12 ([#​948](https://togithub.com/googleapis/java-shared-dependencies/issues/948)) ([812ce38](https://togithub.com/googleapis/java-shared-dependencies/commit/812ce38e95de4db15184f9dd38bbd4c2affa2133)) - Update dependency io.grpc:grpc-bom to v1.51.1 ([#​953](https://togithub.com/googleapis/java-shared-dependencies/issues/953)) ([a86e70a](https://togithub.com/googleapis/java-shared-dependencies/commit/a86e70ac7be07cdb3b69d0cf4fc1afedbf7048fd)) - Update dependency org.checkerframework:checker-qual to v3.29.0 ([#​959](https://togithub.com/googleapis/java-shared-dependencies/issues/959)) ([784a79b](https://togithub.com/googleapis/java-shared-dependencies/commit/784a79b49b109d18858fd603dbdd37a4947280af)) - Update dependency org.threeten:threetenbp to v1.6.5 ([#​946](https://togithub.com/googleapis/java-shared-dependencies/issues/946)) ([403555e](https://togithub.com/googleapis/java-shared-dependencies/commit/403555e4010aef84e909e0b0e48cf5571d9e3184)) - Update google.core.version to v2.9.1 ([#​962](https://togithub.com/googleapis/java-shared-dependencies/issues/962)) ([c1e648d](https://togithub.com/googleapis/java-shared-dependencies/commit/c1e648d5045f871ed5670f949978430ad2d49484)) - Update iam.version to v1.6.23 ([#​954](https://togithub.com/googleapis/java-shared-dependencies/issues/954)) ([bb4730e](https://togithub.com/googleapis/java-shared-dependencies/commit/bb4730e7dcac57b6653825d63c7408d2182b0a27))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3a6a3fc7f99f..2ec0f5063b49 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.2.0') +implementation platform('com.google.cloud:libraries-bom:26.3.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/pom.xml b/pom.xml index 32d29255007f..5c446f7b9f82 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20221209-2.0.0 - 3.1.0 + 3.1.1 10.0.1
    From 23808ea454c403239021acf771e743506f97711b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Jan 2023 21:14:20 +0000 Subject: [PATCH 2210/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.3.0 (#2457) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/googleapis/java-cloud-bom)) | `26.2.0` -> `26.3.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.3.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.3.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.3.0/compatibility-slim/26.2.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.3.0/confidence-slim/26.2.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2ec0f5063b49..20ef7a46c57d 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.2.0 + 26.3.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 610182bdcff0..d7cf1b50b783 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.2.0 + 26.3.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c4b6873bf740..6c6d5c953c30 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.2.0 + 26.3.0 pom import From 04d47ad3b8e9b0078884f81c227eb96e87d21aa2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Jan 2023 21:16:15 +0000 Subject: [PATCH 2211/3441] deps: update dependency org.junit.vintage:junit-vintage-engine to v5.9.2 (#2456) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.junit.vintage:junit-vintage-engine](https://junit.org/junit5/) ([source](https://togithub.com/junit-team/junit5)) | `5.9.1` -> `5.9.2` | [![age](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.2/compatibility-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.2/confidence-slim/5.9.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index d7cf1b50b783..c5ad945f060b 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ org.junit.vintage junit-vintage-engine - 5.9.1 + 5.9.2 test From 473c7a480b1a6ef2bd9036f37610ed82878b4362 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 12 Jan 2023 16:51:22 +0000 Subject: [PATCH 2212/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.4.2 (#2460) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5c446f7b9f82..a4ee5e96b47f 100644 --- a/pom.xml +++ b/pom.xml @@ -196,7 +196,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.4.1 + 3.4.2 From 08e2927ecb05ff3fda03493a99f466a6d2417d20 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 12 Jan 2023 17:37:29 +0000 Subject: [PATCH 2213/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20221217-2.0.0 (#2459) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20221217-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot Co-authored-by: Neenu Shaji --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a4ee5e96b47f..959e2f53bf6e 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20221209-2.0.0 + v2-rev20221217-2.0.0 3.1.1 10.0.1
    From b62391d9cbf5fab30ff5df488d2835be45c5b8d8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 12 Jan 2023 21:28:17 +0000 Subject: [PATCH 2214/3441] deps: update com.google.cloud:google-cloud-bigquerystorage-bom to 2.28.1 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 959e2f53bf6e..d765685defe6 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.28.0 + 2.28.1 pom import @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.16.0 + 2.17.0 test From 084525520c4353fbbdcc5c7bd26ef4635bebe2ea Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 12 Jan 2023 21:28:30 +0000 Subject: [PATCH 2215/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.18.0 (#2462) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 110af1086279..784fce012695 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.17.1 + 2.18.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4d1f0c31ddd9..239ff6102c0a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.17.1 + 2.18.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6c6d5c953c30..487eba2686cc 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.17.1 + 2.18.0 test From 2d5343a88d171031a2c9a562a653f3d4e72e0e3c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 12 Jan 2023 22:36:11 +0000 Subject: [PATCH 2216/3441] chore(main): release 2.20.2 (#2458) :robot: I have created a release *beep* *boop* --- ## [2.20.2](https://togithub.com/googleapis/java-bigquery/compare/v2.20.1...v2.20.2) (2023-01-12) ### Dependencies * Update com.google.cloud:google-cloud-bigquerystorage-bom to 2.28.1 ([b62391d](https://togithub.com/googleapis/java-bigquery/commit/b62391d9cbf5fab30ff5df488d2835be45c5b8d8)) * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20221209-2.0.0 ([#2449](https://togithub.com/googleapis/java-bigquery/issues/2449)) ([9d0a107](https://togithub.com/googleapis/java-bigquery/commit/9d0a107da5e1e600dddccae79eb83358fd6940c6)) * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20221217-2.0.0 ([#2459](https://togithub.com/googleapis/java-bigquery/issues/2459)) ([08e2927](https://togithub.com/googleapis/java-bigquery/commit/08e2927ecb05ff3fda03493a99f466a6d2417d20)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.1 ([#2455](https://togithub.com/googleapis/java-bigquery/issues/2455)) ([412710c](https://togithub.com/googleapis/java-bigquery/commit/412710c25d637efeac5a2242ad841b11a788708a)) * Update dependency org.junit.vintage:junit-vintage-engine to v5.9.2 ([#2456](https://togithub.com/googleapis/java-bigquery/issues/2456)) ([04d47ad](https://togithub.com/googleapis/java-bigquery/commit/04d47ad3b8e9b0078884f81c227eb96e87d21aa2)) * Update dependency org.threeten:threeten-extra to v1.7.2 ([#2450](https://togithub.com/googleapis/java-bigquery/issues/2450)) ([485be56](https://togithub.com/googleapis/java-bigquery/commit/485be563ba50974dd40069072b56d319ad40a70a)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 52523cba7bba..c8264ee4a417 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [2.20.2](https://github.com/googleapis/java-bigquery/compare/v2.20.1...v2.20.2) (2023-01-12) + + +### Dependencies + +* Update com.google.cloud:google-cloud-bigquerystorage-bom to 2.28.1 ([b62391d](https://github.com/googleapis/java-bigquery/commit/b62391d9cbf5fab30ff5df488d2835be45c5b8d8)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20221209-2.0.0 ([#2449](https://github.com/googleapis/java-bigquery/issues/2449)) ([9d0a107](https://github.com/googleapis/java-bigquery/commit/9d0a107da5e1e600dddccae79eb83358fd6940c6)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20221217-2.0.0 ([#2459](https://github.com/googleapis/java-bigquery/issues/2459)) ([08e2927](https://github.com/googleapis/java-bigquery/commit/08e2927ecb05ff3fda03493a99f466a6d2417d20)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.1 ([#2455](https://github.com/googleapis/java-bigquery/issues/2455)) ([412710c](https://github.com/googleapis/java-bigquery/commit/412710c25d637efeac5a2242ad841b11a788708a)) +* Update dependency org.junit.vintage:junit-vintage-engine to v5.9.2 ([#2456](https://github.com/googleapis/java-bigquery/issues/2456)) ([04d47ad](https://github.com/googleapis/java-bigquery/commit/04d47ad3b8e9b0078884f81c227eb96e87d21aa2)) +* Update dependency org.threeten:threeten-extra to v1.7.2 ([#2450](https://github.com/googleapis/java-bigquery/issues/2450)) ([485be56](https://github.com/googleapis/java-bigquery/commit/485be563ba50974dd40069072b56d319ad40a70a)) + ## [2.20.1](https://github.com/googleapis/java-bigquery/compare/v2.20.0...v2.20.1) (2023-01-04) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2e50cc0c46c3..93dc714e4ae1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.20.2-SNAPSHOT + 2.20.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 044cba69d837..74df29f4873f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.20.2-SNAPSHOT + 2.20.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.20.2-SNAPSHOT + 2.20.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d765685defe6..cbdb7af0619c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.20.2-SNAPSHOT + 2.20.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.20.2-SNAPSHOT + 2.20.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 239ff6102c0a..3d711d3d7089 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.20.2-SNAPSHOT + 2.20.2 diff --git a/versions.txt b/versions.txt index 804f08a213f1..9e9b8208457f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.20.1:2.20.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.20.2:2.20.2 \ No newline at end of file From 8d349f6693d955c702628f20376bbc03f9f41d9b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 12 Jan 2023 23:04:11 +0000 Subject: [PATCH 2217/3441] chore(main): release 2.20.3-SNAPSHOT (#2466) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 93dc714e4ae1..a78257810947 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.20.2 + 2.20.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 74df29f4873f..e59fe63f393d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.20.2 + 2.20.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.20.2 + 2.20.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index cbdb7af0619c..33f535db19be 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.20.2 + 2.20.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.20.2 + 2.20.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3d711d3d7089..11e24fdb8471 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.20.2 + 2.20.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 9e9b8208457f..1b8e8fe545e9 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.20.2:2.20.2 \ No newline at end of file +google-cloud-bigquery:2.20.2:2.20.3-SNAPSHOT \ No newline at end of file From 4e8bbe0808b2aabea889042135e3a388d2f8ecff Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 23 Jan 2023 12:20:09 -0500 Subject: [PATCH 2218/3441] fix(java): skip fixing poms for special modules (#1744) (#2474) fix(java): handle empty modules Fixes https://github.com/googleapis/synthtool/issues/1743 Source-Link: https://github.com/googleapis/synthtool/commit/482d649d5d705c18028076985f64b214f6b6c14e Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:bd5071596a47614d1fe15eb766c4255bae330f823b606e1196a3b0c8d2e96fd1 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 +- .kokoro/requirements.in | 40 ++------- .kokoro/requirements.txt | 184 ++++++++++++++------------------------ README.md | 6 +- 4 files changed, 79 insertions(+), 155 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 288e394897e6..f8a8575314cc 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,4 +1,4 @@ -# Copyright 2022 Google LLC +# Copyright 2023 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:9de537d592b60e5eac73b374a28263969bae91ecdb29b445e894576fbf54851c + digest: sha256:bd5071596a47614d1fe15eb766c4255bae330f823b606e1196a3b0c8d2e96fd1 diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index a5010f77d413..b19a8dbfdd5e 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -1,34 +1,6 @@ -gcp-docuploader==0.6.3 -google-crc32c==1.3.0 -googleapis-common-protos==1.56.3 -gcp-releasetool==1.9.1 -cryptography==38.0.3 -cachetools==4.2.4 -cffi==1.15.1 -jeepney==0.7.1 -jinja2==3.0.3 -markupsafe==2.0.1 -keyring==23.4.1 -packaging==21.3 -protobuf==3.19.5 -pyjwt==2.4.0 -pyparsing==3.0.9 -pycparser==2.21 -pyperclip==1.8.2 -python-dateutil==2.8.2 -requests==2.27.1 -certifi==2022.12.7 -importlib-metadata==4.8.3 -zipp==3.6.0 -google_api_core==2.8.2 -google-cloud-storage==2.0.0 -google-resumable-media==2.3.3 -google-cloud-core==2.3.1 -typing-extensions==4.1.1 -urllib3==1.26.12 -zipp==3.6.0 -rsa==4.9 -six==1.16.0 -attrs==22.1.0 -google-auth==2.14.1 -idna==3.4 \ No newline at end of file +gcp-docuploader +gcp-releasetool +wheel +setuptools +typing-extensions +click<8.1.0 \ No newline at end of file diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 15c404aa5a8c..4895c9631fd8 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -1,27 +1,21 @@ # -# This file is autogenerated by pip-compile with python 3.10 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.9 +# by the following command: # -# pip-compile --generate-hashes requirements.in +# pip-compile --allow-unsafe --generate-hashes requirements.in # attrs==22.1.0 \ --hash=sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6 \ --hash=sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c - # via - # -r requirements.in - # gcp-releasetool + # via gcp-releasetool cachetools==4.2.4 \ --hash=sha256:89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693 \ --hash=sha256:92971d3cb7d2a97efff7c7bb1657f21a8f5fb309a37530537c71b1774189f2d1 - # via - # -r requirements.in - # google-auth + # via google-auth certifi==2022.12.7 \ --hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \ --hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18 - # via - # -r requirements.in - # requests + # via requests cffi==1.15.1 \ --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ --hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \ @@ -87,9 +81,7 @@ cffi==1.15.1 \ --hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \ --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \ --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0 - # via - # -r requirements.in - # cryptography + # via cryptography charset-normalizer==2.0.12 \ --hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \ --hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df @@ -98,6 +90,7 @@ click==8.0.4 \ --hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \ --hash=sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb # via + # -r requirements.in # gcp-docuploader # gcp-releasetool colorlog==6.7.0 \ @@ -132,12 +125,11 @@ cryptography==38.0.3 \ --hash=sha256:dfb4f4dd568de1b6af9f4cda334adf7d72cf5bc052516e1b2608b683375dd95c \ --hash=sha256:ed7b00096790213e09eb11c97cc6e2b757f15f3d2f85833cd2d3ec3fe37c1722 # via - # -r requirements.in # gcp-releasetool # secretstorage -gcp-docuploader==0.6.3 \ - --hash=sha256:ba8c9d76b3bbac54b0311c503a373b00edc2dc02d6d54ea9507045adb8e870f7 \ - --hash=sha256:c0f5aaa82ce1854a386197e4e359b120ad6d4e57ae2c812fce42219a3288026b +gcp-docuploader==0.6.4 \ + --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \ + --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf # via -r requirements.in gcp-releasetool==1.9.1 \ --hash=sha256:952f4055d5d986b070ae2a71c4410b250000f9cc5a1e26398fcd55a5bbc5a15f \ @@ -147,13 +139,12 @@ google-api-core==2.8.2 \ --hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \ --hash=sha256:93c6a91ccac79079ac6bbf8b74ee75db970cc899278b97d53bc012f35908cf50 # via - # -r requirements.in # google-cloud-core # google-cloud-storage google-auth==2.14.1 \ + --hash=sha256:ccaa901f31ad5cbb562615eb8b664b3dd0bf5404a67618e642307f00613eda4d \ --hash=sha256:f5d8701633bebc12e0deea4df8abd8aff31c28b355360597f7f2ee60f2e4d016 # via - # -r requirements.in # gcp-releasetool # google-api-core # google-cloud-core @@ -161,15 +152,11 @@ google-auth==2.14.1 \ google-cloud-core==2.3.1 \ --hash=sha256:113ba4f492467d5bd442c8d724c1a25ad7384045c3178369038840ecdd19346c \ --hash=sha256:34334359cb04187bdc80ddcf613e462dfd7a3aabbc3fe4d118517ab4b9303d53 - # via - # -r requirements.in - # google-cloud-storage + # via google-cloud-storage google-cloud-storage==2.0.0 \ --hash=sha256:a57a15aead0f9dfbd4381f1bfdbe8bf89818a4bd75bab846cafcefb2db846c47 \ --hash=sha256:ec4be60bb223a3a960f0d01697d849b86d91cad815a84915a32ed3635e93a5e7 - # via - # -r requirements.in - # gcp-docuploader + # via gcp-docuploader google-crc32c==1.3.0 \ --hash=sha256:04e7c220798a72fd0f08242bc8d7a05986b2a08a0573396187fd32c1dcdd58b3 \ --hash=sha256:05340b60bf05b574159e9bd940152a47d38af3fb43803ffe71f11d704b7696a6 \ @@ -214,52 +201,37 @@ google-crc32c==1.3.0 \ --hash=sha256:fe31de3002e7b08eb20823b3735b97c86c5926dd0581c7710a680b418a8709d4 \ --hash=sha256:fec221a051150eeddfdfcff162e6db92c65ecf46cb0f7bb1bf812a1520ec026b \ --hash=sha256:ff71073ebf0e42258a42a0b34f2c09ec384977e7f6808999102eedd5b49920e3 - # via - # -r requirements.in - # google-resumable-media + # via google-resumable-media google-resumable-media==2.3.3 \ --hash=sha256:27c52620bd364d1c8116eaac4ea2afcbfb81ae9139fb3199652fcac1724bfb6c \ --hash=sha256:5b52774ea7a829a8cdaa8bd2d4c3d4bc660c91b30857ab2668d0eb830f4ea8c5 - # via - # -r requirements.in - # google-cloud-storage + # via google-cloud-storage googleapis-common-protos==1.56.3 \ --hash=sha256:6f1369b58ed6cf3a4b7054a44ebe8d03b29c309257583a2bbdc064cd1e4a1442 \ --hash=sha256:87955d7b3a73e6e803f2572a33179de23989ebba725e05ea42f24838b792e461 - # via - # -r requirements.in - # google-api-core + # via google-api-core idna==3.4 \ --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 - # via - # -r requirements.in - # requests + # via requests importlib-metadata==4.8.3 \ --hash=sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e \ --hash=sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668 + # via keyring +jeepney==0.8.0 \ + --hash=sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806 \ + --hash=sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755 # via - # -r requirements.in - # keyring -jeepney==0.7.1 \ - --hash=sha256:1b5a0ea5c0e7b166b2f5895b91a08c14de8915afda4407fb5022a195224958ac \ - --hash=sha256:fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f - # via - # -r requirements.in # keyring # secretstorage jinja2==3.0.3 \ --hash=sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8 \ --hash=sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7 - # via - # -r requirements.in - # gcp-releasetool + # via gcp-releasetool keyring==23.4.1 \ --hash=sha256:17e49fb0d6883c2b4445359434dba95aad84aabb29bbff044ad0ed7100232eca \ --hash=sha256:89cbd74d4683ed164c8082fb38619341097741323b3786905c6dac04d6915a55 - # via - # -r requirements.in - # gcp-releasetool + # via gcp-releasetool markupsafe==2.0.1 \ --hash=sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298 \ --hash=sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64 \ @@ -330,49 +302,39 @@ markupsafe==2.0.1 \ --hash=sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509 \ --hash=sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51 \ --hash=sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872 - # via - # -r requirements.in - # jinja2 + # via jinja2 packaging==21.3 \ --hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \ --hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522 + # via gcp-releasetool +protobuf==3.20.2 \ + --hash=sha256:03d76b7bd42ac4a6e109742a4edf81ffe26ffd87c5993126d894fe48a120396a \ + --hash=sha256:09e25909c4297d71d97612f04f41cea8fa8510096864f2835ad2f3b3df5a5559 \ + --hash=sha256:18e34a10ae10d458b027d7638a599c964b030c1739ebd035a1dfc0e22baa3bfe \ + --hash=sha256:291fb4307094bf5ccc29f424b42268640e00d5240bf0d9b86bf3079f7576474d \ + --hash=sha256:2c0b040d0b5d5d207936ca2d02f00f765906622c07d3fa19c23a16a8ca71873f \ + --hash=sha256:384164994727f274cc34b8abd41a9e7e0562801361ee77437099ff6dfedd024b \ + --hash=sha256:3cb608e5a0eb61b8e00fe641d9f0282cd0eedb603be372f91f163cbfbca0ded0 \ + --hash=sha256:5d9402bf27d11e37801d1743eada54372f986a372ec9679673bfcc5c60441151 \ + --hash=sha256:712dca319eee507a1e7df3591e639a2b112a2f4a62d40fe7832a16fd19151750 \ + --hash=sha256:7a5037af4e76c975b88c3becdf53922b5ffa3f2cddf657574a4920a3b33b80f3 \ + --hash=sha256:8228e56a865c27163d5d1d1771d94b98194aa6917bcfb6ce139cbfa8e3c27334 \ + --hash=sha256:84a1544252a933ef07bb0b5ef13afe7c36232a774affa673fc3636f7cee1db6c \ + --hash=sha256:84fe5953b18a383fd4495d375fe16e1e55e0a3afe7b4f7b4d01a3a0649fcda9d \ + --hash=sha256:9c673c8bfdf52f903081816b9e0e612186684f4eb4c17eeb729133022d6032e3 \ + --hash=sha256:a9e5ae5a8e8985c67e8944c23035a0dff2c26b0f5070b2f55b217a1c33bbe8b1 \ + --hash=sha256:b4fdb29c5a7406e3f7ef176b2a7079baa68b5b854f364c21abe327bbeec01cdb \ + --hash=sha256:c184485e0dfba4dfd451c3bd348c2e685d6523543a0f91b9fd4ae90eb09e8422 \ + --hash=sha256:c9cdf251c582c16fd6a9f5e95836c90828d51b0069ad22f463761d27c6c19019 \ + --hash=sha256:e39cf61bb8582bda88cdfebc0db163b774e7e03364bbf9ce1ead13863e81e359 \ + --hash=sha256:e8fbc522303e09036c752a0afcc5c0603e917222d8bedc02813fd73b4b4ed804 \ + --hash=sha256:f34464ab1207114e73bba0794d1257c150a2b89b7a9faf504e00af7c9fd58978 \ + --hash=sha256:f52dabc96ca99ebd2169dadbe018824ebda08a795c7684a0b7d203a290f3adb0 # via - # -r requirements.in - # gcp-releasetool -protobuf==3.19.5 \ - --hash=sha256:1867f93b06a183f87696871bb8d1e99ee71dbb69d468ce1f0cc8bf3d30f982f3 \ - --hash=sha256:3c4160b601220627f7e91154e572baf5e161a9c3f445a8242d536ee3d0b7b17c \ - --hash=sha256:4ee2af7051d3b10c8a4fe6fd1a2c69f201fea36aeee7086cf202a692e1b99ee1 \ - --hash=sha256:5266c36cc0af3bb3dbf44f199d225b33da66a9a5c3bdc2b14865ad10eddf0e37 \ - --hash=sha256:5470f892961af464ae6eaf0f3099e2c1190ae8c7f36f174b89491281341f79ca \ - --hash=sha256:66d14b5b90090353efe75c9fb1bf65ef7267383034688d255b500822e37d5c2f \ - --hash=sha256:67efb5d20618020aa9596e17bfc37ca068c28ec0c1507d9507f73c93d46c9855 \ - --hash=sha256:696e6cfab94cc15a14946f2bf72719dced087d437adbd994fff34f38986628bc \ - --hash=sha256:6a02172b9650f819d01fb8e224fc69b0706458fc1ab4f1c669281243c71c1a5e \ - --hash=sha256:6eca9ae238ba615d702387a2ddea635d535d769994a9968c09a4ca920c487ab9 \ - --hash=sha256:950abd6c00e7b51f87ae8b18a0ce4d69fea217f62f171426e77de5061f6d9850 \ - --hash=sha256:9e1d74032f56ff25f417cfe84c8147047732e5059137ca42efad20cbbd25f5e0 \ - --hash=sha256:9e42b1cf2ecd8a1bd161239e693f22035ba99905ae6d7efeac8a0546c7ec1a27 \ - --hash=sha256:9f957ef53e872d58a0afd3bf6d80d48535d28c99b40e75e6634cbc33ea42fd54 \ - --hash=sha256:a89aa0c042e61e11ade320b802d6db4ee5391d8d973e46d3a48172c1597789f8 \ - --hash=sha256:c0f80876a8ff0ae7064084ed094eb86497bd5a3812e6fc96a05318b92301674e \ - --hash=sha256:c44e3282cff74ad18c7e8a0375f407f69ee50c2116364b44492a196293e08b21 \ - --hash=sha256:d249519ba5ecf5dd6b18150c9b6bcde510b273714b696f3923ff8308fc11ae49 \ - --hash=sha256:d3973a2d58aefc7d1230725c2447ce7f86a71cbc094b86a77c6ee1505ac7cdb1 \ - --hash=sha256:dca2284378a5f2a86ffed35c6ac147d14c48b525eefcd1083e5a9ce28dfa8657 \ - --hash=sha256:e63b0b3c42e51c94add62b010366cd4979cb6d5f06158bcae8faac4c294f91e1 \ - --hash=sha256:f2b599a21c9a32e171ec29a2ac54e03297736c578698e11b099d031f79da114b \ - --hash=sha256:f2bde37667b18c2b5280df83bc799204394a5d2d774e4deaf9de0eb741df6833 \ - --hash=sha256:f4f909f4dde413dec435a44b0894956d55bb928ded7d6e3c726556ca4c796e84 \ - --hash=sha256:f976234e20ab2785f54224bcdafa027674e23663b132fa3ca0caa291a6cfbde7 \ - --hash=sha256:f9cebda093c2f6bfed88f1c17cdade09d4d96096421b344026feee236532d4de - # via - # -r requirements.in # gcp-docuploader # gcp-releasetool # google-api-core # google-cloud-storage - # googleapis-common-protos pyasn1==0.4.8 \ --hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \ --hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba @@ -386,71 +348,61 @@ pyasn1-modules==0.2.8 \ pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 - # via - # -r requirements.in - # cffi + # via cffi pyjwt==2.4.0 \ --hash=sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf \ --hash=sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba - # via - # -r requirements.in - # gcp-releasetool + # via gcp-releasetool pyparsing==3.0.9 \ --hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \ --hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc - # via - # -r requirements.in - # packaging + # via packaging pyperclip==1.8.2 \ --hash=sha256:105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57 - # via - # -r requirements.in - # gcp-releasetool + # via gcp-releasetool python-dateutil==2.8.2 \ --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - # via - # -r requirements.in - # gcp-releasetool + # via gcp-releasetool requests==2.27.1 \ --hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \ --hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d # via - # -r requirements.in # gcp-releasetool # google-api-core # google-cloud-storage rsa==4.9 \ --hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 \ --hash=sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21 - # via - # -r requirements.in - # google-auth + # via google-auth secretstorage==3.3.3 \ --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \ --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 # via keyring +setuptools==65.6.3 \ + --hash=sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54 \ + --hash=sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75 + # via -r requirements.in six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 # via - # -r requirements.in # gcp-docuploader # google-auth # python-dateutil -typing-extensions==4.1.1 \ - --hash=sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42 \ - --hash=sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2 +typing-extensions==4.4.0 \ + --hash=sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa \ + --hash=sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e # via -r requirements.in urllib3==1.26.12 \ --hash=sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e \ --hash=sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997 - # via - # -r requirements.in - # requests + # via requests +wheel==0.38.4 \ + --hash=sha256:965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac \ + --hash=sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8 + # via -r requirements.in zipp==3.6.0 \ --hash=sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832 \ --hash=sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc - # via - # -r requirements.in - # importlib-metadata + # via importlib-metadata diff --git a/README.md b/README.md index 20ef7a46c57d..10b6da28c89e 100644 --- a/README.md +++ b/README.md @@ -52,20 +52,20 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.3.0') +implementation platform('com.google.cloud:libraries-bom:26.4.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.20.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.20.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.20.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.20.2" ``` ## Authentication From b6409d52adde116bf073ec71e8968fd68b983e65 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 23 Jan 2023 17:21:06 +0000 Subject: [PATCH 2219/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20230114-2.0.0 (#2477) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20230114-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 33f535db19be..0dc380e859e2 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20221217-2.0.0 + v2-rev20230114-2.0.0 3.1.1 10.0.1 From 0e23759066b5270e74aabfb028dcb4cba59dbf33 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 23 Jan 2023 17:22:42 +0000 Subject: [PATCH 2220/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.4.0 (#2470) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.4.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 10b6da28c89e..25ff30030f91 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.3.0 + 26.4.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index c5ad945f060b..3c6935a90726 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.3.0 + 26.4.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 487eba2686cc..4e5902668038 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.3.0 + 26.4.0 pom import From 089e67622109c977a5f6da44ef1283dc5ce04ccc Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 23 Jan 2023 17:23:05 +0000 Subject: [PATCH 2221/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.18.1 (#2469) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.18.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 784fce012695..50e96c3fa73a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.18.0 + 2.18.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 11e24fdb8471..bf79fac6596e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.18.0 + 2.18.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4e5902668038..5f897fa74f70 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.18.0 + 2.18.1 test From ae5ed9be637a55192602c9bc2b80724cefe63bd7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 23 Jan 2023 17:23:32 +0000 Subject: [PATCH 2222/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.20.2 (#2467) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.20.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 25ff30030f91..7d1013d29864 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.20.1 + 2.20.2 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 50e96c3fa73a..0f314246e857 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.20.1 + 2.20.2 From f1cd2cbccae6e0593cfa9577e016b3f8a1a7cc26 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 23 Jan 2023 17:25:11 +0000 Subject: [PATCH 2223/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.10.0 (#2464) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 0dc380e859e2..dcd06df032c3 100644 --- a/pom.xml +++ b/pom.xml @@ -160,7 +160,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.9.0 + 2.10.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0f314246e857..630e4ae1967d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.9.0 + 2.10.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bf79fac6596e..d6ad4c5b2e35 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.9.0 + 2.10.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 5f897fa74f70..d1b340a7b210 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.9.0 + 2.10.0 test From 606fc1e26c7c6f407a1938058b07699d84615bc7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 23 Jan 2023 17:26:30 +0000 Subject: [PATCH 2224/3441] deps: update com.google.cloud:google-cloud-storage to v2.17.1 (#2465) deps: update com.google.cloud:google-cloud-datacatalog-bom to v1.14.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index dcd06df032c3..c50ad6fcdd55 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.13.0 + 1.14.0 pom import @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.17.0 + 2.17.1 test From 688b6a65b890668591451e8f3d01f9f15527c80d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 23 Jan 2023 17:46:12 +0000 Subject: [PATCH 2225/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.2 (#2476) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/java-shared-dependencies) | `3.1.1` -> `3.1.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.1.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.1.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.1.2/compatibility-slim/3.1.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.1.2/confidence-slim/3.1.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-shared-dependencies ### [`v3.1.2`](https://togithub.com/googleapis/java-shared-dependencies/blob/HEAD/CHANGELOG.md#​312-httpsgithubcomgoogleapisjava-shared-dependenciescomparev311v312-2023-01-20) [Compare Source](https://togithub.com/googleapis/java-shared-dependencies/compare/v3.1.1...v3.1.2) ##### Bug Fixes - **java:** Skip fixing poms for special modules ([#​1744](https://togithub.com/googleapis/java-shared-dependencies/issues/1744)) ([#​971](https://togithub.com/googleapis/java-shared-dependencies/issues/971)) ([74a96f1](https://togithub.com/googleapis/java-shared-dependencies/commit/74a96f1155418bde285877b72b4d7e600d08beb6)) ##### Dependencies - Update dependency com.google.api:gapic-generator-java-bom to v2.14.0 ([#​972](https://togithub.com/googleapis/java-shared-dependencies/issues/972)) ([2c742b5](https://togithub.com/googleapis/java-shared-dependencies/commit/2c742b56afc441f4922e6f6c737d3c3374ceadec)) - Update dependency com.google.cloud:google-cloud-core-bom to v2.9.3 ([#​974](https://togithub.com/googleapis/java-shared-dependencies/issues/974)) ([e4cb2ae](https://togithub.com/googleapis/java-shared-dependencies/commit/e4cb2ae34648c61ac40b7c9628e4ec088186fd57)) - Update google.core.version to v2.9.2 ([#​969](https://togithub.com/googleapis/java-shared-dependencies/issues/969)) ([aa946a6](https://togithub.com/googleapis/java-shared-dependencies/commit/aa946a6e33a5c8c3d6ae37bb07c3872c0bab793b)) - Update google.core.version to v2.9.4 ([#​976](https://togithub.com/googleapis/java-shared-dependencies/issues/976)) ([718246c](https://togithub.com/googleapis/java-shared-dependencies/commit/718246c985488b138eb0113b5a3200d3eb2af31d))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c50ad6fcdd55..bf3e8011400f 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20230114-2.0.0 - 3.1.1 + 3.1.2 10.0.1
    From 09a8382222e1174c46989e797e0941cc36d387f1 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Mon, 23 Jan 2023 14:31:05 -0500 Subject: [PATCH 2226/3441] feat: migrate from google-http-client-jackson2 to google-http-client-gson (#2471) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: test gson compatibility * chore: update imports in samples * chore: fix lint * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- google-cloud-bigquery/pom.xml | 2 +- .../java/com/google/cloud/bigquery/benchmark/Benchmark.java | 4 ++-- .../com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java | 4 ++-- .../src/main/java/com/example/bigquery/AuthUserFlow.java | 4 ++-- .../src/main/java/com/example/bigquery/AuthUserQuery.java | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e59fe63f393d..8cd9bc77f173 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -27,7 +27,7 @@
    com.google.http-client - google-http-client-jackson2 + google-http-client-gson com.google.cloud diff --git a/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java b/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java index e6fc16e176ee..caec16676fb4 100644 --- a/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java +++ b/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java @@ -16,7 +16,7 @@ package com.google.cloud.bigquery.benchmark; -import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.json.gson.GsonFactory; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.FieldValue; @@ -40,7 +40,7 @@ public static void main(String[] args) throws Exception { return; } String[] requests = - new JacksonFactory() + new GsonFactory() .createJsonParser(new FileInputStream(args[0])) .parseAndClose(String[].class); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index a9ef3a817aa6..6bad06199b5e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -30,7 +30,7 @@ import com.google.api.client.http.HttpTransport; import com.google.api.client.http.json.JsonHttpContent; import com.google.api.client.json.JsonFactory; -import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.json.gson.GsonFactory; import com.google.api.core.InternalApi; import com.google.api.core.InternalExtensionOnly; import com.google.api.services.bigquery.Bigquery; @@ -105,7 +105,7 @@ public HttpBigQueryRpc(BigQueryOptions options) { HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); this.options = options; bigquery = - new Bigquery.Builder(transport, new JacksonFactory(), initializer) + new Bigquery.Builder(transport, new GsonFactory(), initializer) .setRootUrl(options.getHost()) .setApplicationName(options.getApplicationName()) .build(); diff --git a/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java b/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java index 0dd37f0d633d..606a3916e3db 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java @@ -24,7 +24,7 @@ import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.json.JsonFactory; -import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.json.gson.GsonFactory; import com.google.api.client.util.store.FileDataStoreFactory; import com.google.api.gax.paging.Page; import com.google.auth.oauth2.GoogleCredentials; @@ -49,7 +49,7 @@ public class AuthUserFlow { private static final File DATA_STORE_DIR = new File(AuthUserFlow.class.getResource("/").getPath(), "credentials"); - private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); + private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance(); // i.e redirect_uri http://localhost:61984/Callback private static final int LOCAL_RECEIVER_PORT = 61984; diff --git a/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java b/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java index 508759620c3c..bed9159c90c6 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java +++ b/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java @@ -24,7 +24,7 @@ import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.json.JsonFactory; -import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.json.gson.GsonFactory; import com.google.api.client.util.store.FileDataStoreFactory; import com.google.auth.oauth2.GoogleCredentials; import com.google.auth.oauth2.UserCredentials; @@ -49,7 +49,7 @@ public class AuthUserQuery { private static final File DATA_STORE_DIR = new File(AuthUserQuery.class.getResource("/").getPath(), "credentials"); - private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); + private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance(); // i.e redirect_uri http://localhost:61984/Callback private static final int LOCAL_RECEIVER_PORT = 61984; From 5a20c327d9b863fbde9a8fb10f61f4c706b446a8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 23 Jan 2023 19:32:20 +0000 Subject: [PATCH 2227/3441] deps: update com.google.cloud:google-cloud-storage to v2.17.2 (#2479) deps: update com.google.cloud:google-cloud-bigquerystorage-bom to v2.28.3 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index bf3e8011400f..82ba4e487c8b 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.28.1 + 2.28.3 pom import @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.17.1 + 2.17.2 test From 5bfa7aeb8ca48fab438d03b2ba1a19a8673d85a9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 23 Jan 2023 19:32:41 +0000 Subject: [PATCH 2228/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.10.0 (#2463) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 82ba4e487c8b..2fe192056837 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.9.0 + 2.10.0 test From baa0abc359a9337a769b972b6241eed3292dedfc Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 23 Jan 2023 15:24:19 -0500 Subject: [PATCH 2229/3441] chore(main): release 2.21.0 (#2478) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 23 +++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 30 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8264ee4a417..c58633bf488c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## [2.21.0](https://github.com/googleapis/java-bigquery/compare/v2.20.2...v2.21.0) (2023-01-23) + + +### Features + +* Migrate from google-http-client-jackson2 to google-http-client-gson ([#2471](https://github.com/googleapis/java-bigquery/issues/2471)) ([09a8382](https://github.com/googleapis/java-bigquery/commit/09a8382222e1174c46989e797e0941cc36d387f1)) + + +### Bug Fixes + +* **java:** Skip fixing poms for special modules ([#1744](https://github.com/googleapis/java-bigquery/issues/1744)) ([#2474](https://github.com/googleapis/java-bigquery/issues/2474)) ([4e8bbe0](https://github.com/googleapis/java-bigquery/commit/4e8bbe0808b2aabea889042135e3a388d2f8ecff)) + + +### Dependencies + +* Update com.google.cloud:google-cloud-bigquerystorage-bom to v2.28.3 ([5a20c32](https://github.com/googleapis/java-bigquery/commit/5a20c327d9b863fbde9a8fb10f61f4c706b446a8)) +* Update com.google.cloud:google-cloud-datacatalog-bom to v1.14.0 ([606fc1e](https://github.com/googleapis/java-bigquery/commit/606fc1e26c7c6f407a1938058b07699d84615bc7)) +* Update com.google.cloud:google-cloud-storage to v2.17.1 ([#2465](https://github.com/googleapis/java-bigquery/issues/2465)) ([606fc1e](https://github.com/googleapis/java-bigquery/commit/606fc1e26c7c6f407a1938058b07699d84615bc7)) +* Update com.google.cloud:google-cloud-storage to v2.17.2 ([#2479](https://github.com/googleapis/java-bigquery/issues/2479)) ([5a20c32](https://github.com/googleapis/java-bigquery/commit/5a20c327d9b863fbde9a8fb10f61f4c706b446a8)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.10.0 ([#2463](https://github.com/googleapis/java-bigquery/issues/2463)) ([5bfa7ae](https://github.com/googleapis/java-bigquery/commit/5bfa7aeb8ca48fab438d03b2ba1a19a8673d85a9)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230114-2.0.0 ([#2477](https://github.com/googleapis/java-bigquery/issues/2477)) ([b6409d5](https://github.com/googleapis/java-bigquery/commit/b6409d52adde116bf073ec71e8968fd68b983e65)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.1.2 ([#2476](https://github.com/googleapis/java-bigquery/issues/2476)) ([688b6a6](https://github.com/googleapis/java-bigquery/commit/688b6a65b890668591451e8f3d01f9f15527c80d)) + ## [2.20.2](https://github.com/googleapis/java-bigquery/compare/v2.20.1...v2.20.2) (2023-01-12) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a78257810947..2ea3e2e425b9 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.20.3-SNAPSHOT + 2.21.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8cd9bc77f173..6f2a7d6bb527 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.20.3-SNAPSHOT + 2.21.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.20.3-SNAPSHOT + 2.21.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2fe192056837..4c8a7c40fff9 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.20.3-SNAPSHOT + 2.21.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.20.3-SNAPSHOT + 2.21.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d6ad4c5b2e35..9d5de76ee96e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.20.3-SNAPSHOT + 2.21.0 diff --git a/versions.txt b/versions.txt index 1b8e8fe545e9..221417ba8eca 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.20.2:2.20.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.21.0:2.21.0 \ No newline at end of file From cd8b3ae0cd5da2f80b2a1eec140f802c8b0511d0 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 23 Jan 2023 20:50:12 +0000 Subject: [PATCH 2230/3441] chore(main): release 2.21.1-SNAPSHOT (#2480) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2ea3e2e425b9..f5e2426d67a1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.21.0 + 2.21.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6f2a7d6bb527..ad82b14fc133 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.21.0 + 2.21.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.21.0 + 2.21.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4c8a7c40fff9..12816f46055d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.21.0 + 2.21.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.21.0 + 2.21.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9d5de76ee96e..1a6a2ed96386 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.21.0 + 2.21.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 221417ba8eca..a84c62037e45 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.21.0:2.21.0 \ No newline at end of file +google-cloud-bigquery:2.21.0:2.21.1-SNAPSHOT \ No newline at end of file From 325773757e811172236eb3221926025b82f5db64 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 26 Jan 2023 13:31:58 -0500 Subject: [PATCH 2231/3441] feat: add collation for Case sensitive string column (#2490) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add collation for Case sensitive string column * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: fix typo Co-authored-by: Owl Bot --- README.md | 4 +- .../clirr-ignored-differences.xml | 10 ++ .../com/google/cloud/bigquery/Dataset.java | 6 ++ .../google/cloud/bigquery/DatasetInfo.java | 32 +++++++ .../java/com/google/cloud/bigquery/Field.java | 28 ++++++ .../java/com/google/cloud/bigquery/Table.java | 6 ++ .../com/google/cloud/bigquery/TableInfo.java | 23 ++++- .../cloud/bigquery/it/ITBigQueryTest.java | 92 +++++++++++++++++++ 8 files changed, 198 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7d1013d29864..8d80a84706ef 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.20.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.21.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.20.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.21.0" ``` ## Authentication diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 02cfd996700e..6386c5037191 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -34,4 +34,14 @@ com/google/cloud/bigquery/Connection com.google.common.util.concurrent.ListenableFuture executeSelectAsync(java.lang.String, java.util.List, java.util.Map[]) + + 7013 + com/google/cloud/bigquery/DatasetInfo* + *DefaultCollation(*) + + + 7013 + com/google/cloud/bigquery/TableInfo* + *DefaultCollation(*) + \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java index 48ccd4314216..5f9fea892ffc 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java @@ -146,6 +146,12 @@ public Builder setDefaultPartitionExpirationMs(Long defaultPartitionExpirationMs return this; } + @Override + public Builder setDefaultCollation(String defaultCollation) { + infoBuilder.setDefaultCollation(defaultCollation); + return this; + } + @Override public Dataset build() { return new Dataset(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java index c7c6d0c19fcf..bd209952e8f0 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java @@ -72,6 +72,7 @@ public Dataset apply(DatasetInfo datasetInfo) { private final Labels labels; private final EncryptionConfiguration defaultEncryptionConfiguration; private final Long defaultPartitionExpirationMs; + private final String defaultCollation; /** A builder for {@code DatasetInfo} objects. */ public abstract static class Builder { @@ -148,6 +149,19 @@ public abstract Builder setDefaultEncryptionConfiguration( */ public abstract Builder setDefaultPartitionExpirationMs(Long defaultPartitionExpirationMs); + /** + * Optional. Defines the default collation specification of future tables created in the + * dataset. If a table is created in this dataset without table-level default collation, then + * the table inherits the dataset default collation, which is applied to the string fields that + * do not have explicit collation specified. A change to this field affects only tables created + * afterwards, and does not alter the existing tables. The following values are supported: + * + *

    * 'und:ci': undetermined locale, case insensitive. * '': empty string. Default to + * case-sensitive behavior. (-- A wrapper is used here because it is possible to set the value + * to the empty string. --) (-- api-linter: standard-fields=disabled --) + */ + public abstract Builder setDefaultCollation(String defaultCollation); + /** Creates a {@code DatasetInfo} object. */ public abstract DatasetInfo build(); } @@ -168,6 +182,7 @@ static final class BuilderImpl extends Builder { private Labels labels = Labels.ZERO; private EncryptionConfiguration defaultEncryptionConfiguration; private Long defaultPartitionExpirationMs; + private String defaultCollation; BuilderImpl() {} @@ -186,6 +201,7 @@ static final class BuilderImpl extends Builder { this.labels = datasetInfo.labels; this.defaultEncryptionConfiguration = datasetInfo.defaultEncryptionConfiguration; this.defaultPartitionExpirationMs = datasetInfo.defaultPartitionExpirationMs; + this.defaultCollation = datasetInfo.defaultCollation; } BuilderImpl(com.google.api.services.bigquery.model.Dataset datasetPb) { @@ -219,6 +235,7 @@ public Acl apply(Dataset.Access accessPb) { .build(); } this.defaultPartitionExpirationMs = datasetPb.getDefaultPartitionExpirationMs(); + this.defaultCollation = datasetPb.getDefaultCollation(); } @Override @@ -313,6 +330,12 @@ public Builder setDefaultPartitionExpirationMs(Long defaultPartitionExpirationMs return this; } + @Override + public Builder setDefaultCollation(String defaultCollation) { + this.defaultCollation = defaultCollation; + return this; + } + @Override public DatasetInfo build() { return new DatasetInfo(this); @@ -334,6 +357,7 @@ public DatasetInfo build() { labels = builder.labels; defaultEncryptionConfiguration = builder.defaultEncryptionConfiguration; defaultPartitionExpirationMs = builder.defaultPartitionExpirationMs; + defaultCollation = builder.defaultCollation; } /** Returns the dataset identity. */ @@ -459,6 +483,10 @@ public Long getDefaultPartitionExpirationMs() { return defaultPartitionExpirationMs; } + public String getDefaultCollation() { + return defaultCollation; + } + /** Returns a builder for the dataset object. */ public Builder toBuilder() { return new BuilderImpl(this); @@ -481,6 +509,7 @@ public String toString() { .add("labels", labels) .add("defaultEncryptionConfiguration", defaultEncryptionConfiguration) .add("defaultPartitionExpirationMs", defaultPartitionExpirationMs) + .add("defaultCollation", defaultCollation) .toString(); } @@ -556,6 +585,9 @@ public Dataset.Access apply(Acl acl) { if (defaultPartitionExpirationMs != null) { datasetPb.setDefaultPartitionExpirationMs(defaultPartitionExpirationMs); } + if (defaultCollation != null) { + datasetPb.setDefaultCollation(defaultCollation); + } return datasetPb; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index 928f379d633a..e151b501ba2a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -63,6 +63,7 @@ public TableFieldSchema apply(Field field) { private final Long scale; private final Long precision; private final String defaultValueExpression; + private final String collation; /** * Mode for a BigQuery Table field. {@link Mode#NULLABLE} fields can be set to {@code null}, @@ -87,6 +88,7 @@ public static final class Builder { private Long scale; private Long precision; private String defaultValueExpression; + private String collation; private Builder() {} @@ -101,6 +103,7 @@ private Builder(Field field) { this.scale = field.scale; this.precision = field.precision; this.defaultValueExpression = field.defaultValueExpression; + this.collation = field.collation; } /** @@ -285,6 +288,19 @@ public Builder setDefaultValueExpression(String defaultValueExpression) { return this; } + /** + * Optional. Field collation can be set only when the type of field is STRING. The following + * values are supported: + * + *

    * 'und:ci': undetermined locale, case insensitive. * '': empty string. Default to + * case-sensitive behavior. (-- A wrapper is used here because it is possible to set the value + * to the empty string. --) + */ + public Builder setCollation(String collation) { + this.collation = collation; + return this; + } + /** Creates a {@code Field} object. */ public Field build() { return new Field(this); @@ -302,6 +318,7 @@ private Field(Builder builder) { this.scale = builder.scale; this.precision = builder.precision; this.defaultValueExpression = builder.defaultValueExpression; + this.collation = builder.collation; } /** Returns the field name. */ @@ -357,6 +374,10 @@ public String getDefaultValueExpression() { return defaultValueExpression; } + public String getCollation() { + return collation; + } + /** * Returns the list of sub-fields if {@link #getType()} is a {@link LegacySQLTypeName#RECORD}. * Returns {@code null} otherwise. @@ -382,6 +403,7 @@ public String toString() { .add("scale", scale) .add("precision", precision) .add("defaultValueExpression", defaultValueExpression) + .add("collation", collation) .toString(); } @@ -468,6 +490,9 @@ TableFieldSchema toPb() { List fieldsPb = Lists.transform(getSubFields(), TO_PB_FUNCTION); fieldSchemaPb.setFields(fieldsPb); } + if (collation != null) { + fieldSchemaPb.setCollation(collation); + } return fieldSchemaPb; } @@ -500,6 +525,9 @@ static Field fromPb(TableFieldSchema fieldSchemaPb) { ? FieldList.of(Lists.transform(fieldSchemaPb.getFields(), FROM_PB_FUNCTION)) : null; fieldBuilder.setType(LegacySQLTypeName.valueOf(fieldSchemaPb.getType()), subFields); + if (fieldSchemaPb.getCollation() != null) { + fieldBuilder.setCollation(fieldSchemaPb.getCollation()); + } return fieldBuilder.build(); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java index 5e1f1a2c032f..8303566d2a7c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java @@ -156,6 +156,12 @@ public Builder setRequirePartitionFilter(Boolean requirePartitionFilter) { return this; } + @Override + public Builder setDefaultCollation(String defaultCollation) { + infoBuilder.setDefaultCollation(defaultCollation); + return this; + } + @Override public Table build() { return new Table(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java index d3e58f980259..cfe7003006e0 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -72,6 +72,7 @@ public Table apply(TableInfo tableInfo) { private final EncryptionConfiguration encryptionConfiguration; private final Labels labels; private final Boolean requirePartitionFilter; + private final String defaultCollation; /** A builder for {@code TableInfo} objects. */ public abstract static class Builder { @@ -135,6 +136,8 @@ public abstract static class Builder { public Builder setRequirePartitionFilter(Boolean requirePartitionFilter) { return this; } + + public abstract Builder setDefaultCollation(String defaultCollation); } static class BuilderImpl extends Builder { @@ -155,6 +158,7 @@ static class BuilderImpl extends Builder { private EncryptionConfiguration encryptionConfiguration; private Labels labels = Labels.ZERO; private Boolean requirePartitionFilter; + private String defaultCollation; BuilderImpl() {} @@ -175,6 +179,7 @@ static class BuilderImpl extends Builder { this.encryptionConfiguration = tableInfo.encryptionConfiguration; this.labels = tableInfo.labels; this.requirePartitionFilter = tableInfo.requirePartitionFilter; + this.defaultCollation = tableInfo.defaultCollation; } BuilderImpl(Table tablePb) { @@ -199,6 +204,7 @@ static class BuilderImpl extends Builder { } this.labels = Labels.fromPb(tablePb.getLabels()); this.requirePartitionFilter = tablePb.getRequirePartitionFilter(); + this.defaultCollation = tablePb.getDefaultCollation(); } @Override @@ -297,6 +303,12 @@ public Builder setRequirePartitionFilter(Boolean requirePartitionFilter) { return this; } + @Override + public Builder setDefaultCollation(String defaultCollation) { + this.defaultCollation = defaultCollation; + return this; + } + @Override public TableInfo build() { return new TableInfo(this); @@ -318,8 +330,9 @@ public TableInfo build() { this.numRows = builder.numRows; this.definition = builder.definition; this.encryptionConfiguration = builder.encryptionConfiguration; - labels = builder.labels; + this.labels = builder.labels; this.requirePartitionFilter = builder.requirePartitionFilter; + this.defaultCollation = builder.defaultCollation; } /** Returns the hash of the table resource. */ @@ -422,6 +435,10 @@ public Boolean getRequirePartitionFilter() { return requirePartitionFilter; } + public String getDefaultCollation() { + return defaultCollation; + } + /** Returns a builder for the table object. */ public Builder toBuilder() { return new BuilderImpl(this); @@ -446,6 +463,7 @@ public String toString() { .add("encryptionConfiguration", encryptionConfiguration) .add("labels", labels) .add("requirePartitionFilter", requirePartitionFilter) + .add("defaultCollation", defaultCollation) .toString(); } @@ -507,6 +525,9 @@ Table toPb() { } tablePb.setLabels(labels.toPb()); tablePb.setRequirePartitionFilter(requirePartitionFilter); + if (defaultCollation != null) { + tablePb.setDefaultCollation(defaultCollation); + } return tablePb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 52cb208c69d3..39cfa529ca04 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1186,6 +1186,98 @@ public void testCreateTableWithConstraints() { bigquery.delete(tableId); } + @Test + public void testCreateDatasetWithDefaultCollation() { + String collationDataset = "collation_dataset"; + DatasetInfo info = + DatasetInfo.newBuilder(collationDataset) + .setDescription(DESCRIPTION) + .setDefaultCollation("und:ci") + .setLabels(LABELS) + .build(); + bigquery.create(info); + + Dataset dataset = bigquery.getDataset(DatasetId.of(collationDataset)); + assertEquals("und:ci", dataset.getDefaultCollation()); + + RemoteBigQueryHelper.forceDelete(bigquery, collationDataset); + } + + @Test + public void testCreateTableWithDefaultCollation() { + String tableName = "test_create_table_with_default_collation"; + TableId tableId = TableId.of(DATASET, tableName); + Field stringFieldWithoutCollation = + Field.newBuilder("stringFieldWithoutDefaultCollation", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("String field") + .setMaxLength(150L) + .build(); + + Schema schema = Schema.of(stringFieldWithoutCollation); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder().setSchema(schema).build(); + TableInfo tableInfo = + TableInfo.newBuilder(tableId, tableDefinition).setDefaultCollation("und:ci").build(); + + // Create table with default collation but fields do not have collation. + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + + // Fetch the created table and its metadata + // to verify default collation is assigned to fields + Table remoteTable = bigquery.getTable(DATASET, tableName); + Schema remoteSchema = remoteTable.getDefinition().getSchema(); + // Schema should not be equal because default collation has been added to the fields. + assertNotEquals(schema, remoteSchema); + assertEquals("und:ci", remoteTable.getDefaultCollation()); + FieldList fieldList = remoteSchema.getFields(); + for (Field field : fieldList) { + if (field.getName().equals("stringFieldWithoutDefaultCollation")) { + assertEquals("und:ci", field.getCollation()); + } + } + + bigquery.delete(tableId); + } + + @Test + public void testCreateFieldWithDefaultCollation() { + String tableName = "test_create_field_with_default_collation"; + TableId tableId = TableId.of(DATASET, tableName); + Field stringFieldWithCollation = + Field.newBuilder("stringFieldWithDefaultCollation", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("String field") + .setCollation("und:ci") + .setMaxLength(150L) + .build(); + + Schema schema = Schema.of(stringFieldWithCollation); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder().setSchema(schema).build(); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + + // Create table with not default collation and fields that have collation + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + + // Fetch the created table and its metadata + // to verify collation is assigned to fields + Table remoteTable = bigquery.getTable(DATASET, tableName); + Schema remoteSchema = remoteTable.getDefinition().getSchema(); + // Schema should be equal because collation has been added to the fields. + assertEquals(schema, remoteSchema); + assertEquals(null, remoteTable.getDefaultCollation()); + FieldList fieldList = remoteSchema.getFields(); + for (Field field : fieldList) { + if (field.getName().equals("stringFieldWithoutDefaultCollation")) { + assertEquals("und:ci", field.getCollation()); + } + } + bigquery.delete(tableId); + } + @Test public void testCreateTableWithDefaultValueExpression() { String tableName = "test_create_table_with_default_value_expression"; From 9363f978d74912f12957e816708feeaf4776442b Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Fri, 27 Jan 2023 10:32:50 -0500 Subject: [PATCH 2232/3441] chore: fix dataset deletion in test (#2494) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: fix dataset deletion in test * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- .../test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8d80a84706ef..32c592167a6f 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.4.0') +implementation platform('com.google.cloud:libraries-bom:26.5.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 39cfa529ca04..c277a75d82d0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1188,7 +1188,7 @@ public void testCreateTableWithConstraints() { @Test public void testCreateDatasetWithDefaultCollation() { - String collationDataset = "collation_dataset"; + String collationDataset = RemoteBigQueryHelper.generateDatasetName(); DatasetInfo info = DatasetInfo.newBuilder(collationDataset) .setDescription(DESCRIPTION) From 5a02a9072b979f10ca7b08d988be1c3f1ff53203 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Jan 2023 18:55:34 +0000 Subject: [PATCH 2233/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.11.0 (#2481) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.11.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 12816f46055d..56bdd26d0f1c 100644 --- a/pom.xml +++ b/pom.xml @@ -160,7 +160,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.10.0 + 2.11.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 630e4ae1967d..5eb5bf18b89c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.10.0 + 2.11.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1a6a2ed96386..48fd7d6b92d6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.10.0 + 2.11.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d1b340a7b210..ea14f5d97977 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.10.0 + 2.11.0 test From e6ffb9b594e3bb680c4904f822c39653d626c4d3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Jan 2023 18:55:55 +0000 Subject: [PATCH 2234/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.11.0 (#2482) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.11.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 56bdd26d0f1c..3b043d7d33f1 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.10.0 + 2.11.0 test From 5c2bf69b227ca4efb55b42c06a747426183f8ae5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Jan 2023 18:56:15 +0000 Subject: [PATCH 2235/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.15.0 (#2483) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.15.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3b043d7d33f1..64a32d95c782 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.14.0 + 1.15.0 pom import From dceeaa08bc4c540ba20dd4438b256aa4ae6d0912 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Jan 2023 18:56:32 +0000 Subject: [PATCH 2236/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.21.0 (#2484) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.21.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 32c592167a6f..d948e6b82b4c 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.20.2 + 2.21.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5eb5bf18b89c..4c22fbebba89 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.20.2 + 2.21.0 From 3bf5ffc54bacf94774b7cba9a8523d35d9d8496f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Jan 2023 18:56:55 +0000 Subject: [PATCH 2237/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.18.2 (#2486) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.18.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4c22fbebba89..92aecb92edba 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.18.1 + 2.18.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 48fd7d6b92d6..010d2c1e2d4d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.18.1 + 2.18.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ea14f5d97977..3f7a858df97d 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.18.1 + 2.18.2 test From d638d5eed12058b6296396a807d8b3bb14fb2803 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Jan 2023 18:57:15 +0000 Subject: [PATCH 2238/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.5.0 (#2492) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.5.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d948e6b82b4c..a1dfe4b043a3 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.4.0 + 26.5.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 3c6935a90726..eb7f66736c09 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.4.0 + 26.5.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3f7a858df97d..1afddfd99e1e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.4.0 + 26.5.0 pom import From 6b7c0a9780a72cff1250253b8d20ae889941a295 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Wed, 1 Feb 2023 15:46:11 -0500 Subject: [PATCH 2239/3441] chore: fix named query parameter struct tests (#2504) Fixes #2485 Fixes #2496 Fixes #2498 Fixes #2497 --- .kokoro/build.sh | 6 ++-- .../cloud/bigquery/it/ITBigQueryTest.java | 29 ++++++++----------- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 0c26eec01af3..525dbaa62be4 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -61,7 +61,7 @@ javadoc) integration) mvn -B ${INTEGRATION_TEST_ARGS} \ -ntp \ - -Dtest=ITBigQueryTest,ITRemoteUDFTest \ + -Dtest=ITBigQueryTest \ -DtrimStackTrace=false \ -Dclirr.skip=true \ -Denforcer.skip=true \ @@ -82,12 +82,12 @@ nightly-it) ;; graalvm) # Run Integration Tests with Native Image. Skip running nightly tests in presubmits. - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest,ITRemoteUDFTest -Pnative -Penable-integration-tests test + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; graalvm17) # Run Integration Tests with Native Image. Skip running nightly tests in presubmits. - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest,ITRemoteUDFTest -Pnative -Penable-integration-tests test + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; nightly-graalvm) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index c277a75d82d0..69c69f17183d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3956,7 +3956,7 @@ public void testStructNamedQueryParameters() throws InterruptedException { struct.put("integerField", integerValue); struct.put("stringField", stringValue); QueryParameterValue recordValue = QueryParameterValue.struct(struct); - String query = "SELECT STRUCT(@recordField) AS record"; + String query = "SELECT @recordField AS record"; QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query) .setDefaultDataset(DATASET) @@ -3967,9 +3967,7 @@ public void testStructNamedQueryParameters() throws InterruptedException { assertEquals(1, Iterables.size(result.getValues())); for (FieldValueList values : result.iterateAll()) { for (FieldValue value : values) { - for (FieldValue record : value.getRecordValue()) { - assertsFieldValue(record); - } + assertsFieldValue(value); } } } @@ -4017,7 +4015,7 @@ public void testNestedStructNamedQueryParameters() throws InterruptedException { structValue.put("string", stringValue); structValue.put("struct", recordValue); QueryParameterValue nestedRecordField = QueryParameterValue.struct(structValue); - String query = "SELECT STRUCT(@nestedRecordField) AS record"; + String query = "SELECT @nestedRecordField AS record"; QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query) .setDefaultDataset(DATASET) @@ -4028,18 +4026,15 @@ public void testNestedStructNamedQueryParameters() throws InterruptedException { assertEquals(1, Iterables.size(result.getValues())); for (FieldValueList values : result.iterateAll()) { for (FieldValue value : values) { - assertEquals(FieldValue.Attribute.RECORD, value.getAttribute()); - for (FieldValue record : value.getRecordValue()) { - assertEquals( - true, record.getRecordValue().get(0).getRecordValue().get(0).getBooleanValue()); - assertEquals(10, record.getRecordValue().get(0).getRecordValue().get(1).getLongValue()); - assertEquals( - "test-stringField", - record.getRecordValue().get(0).getRecordValue().get(2).getStringValue()); - assertEquals(true, record.getRecordValue().get(1).getBooleanValue()); - assertEquals("test-stringField", record.getRecordValue().get(2).getStringValue()); - assertEquals(10, record.getRecordValue().get(3).getLongValue()); - } + assertEquals(Attribute.RECORD, value.getAttribute()); + assertEquals(true, value.getRecordValue().get(0).getRecordValue().get(0).getBooleanValue()); + assertEquals(10, value.getRecordValue().get(0).getRecordValue().get(1).getLongValue()); + assertEquals( + "test-stringField", + value.getRecordValue().get(0).getRecordValue().get(2).getStringValue()); + assertEquals(true, value.getRecordValue().get(1).getBooleanValue()); + assertEquals("test-stringField", value.getRecordValue().get(2).getStringValue()); + assertEquals(10, value.getRecordValue().get(3).getLongValue()); } } } From 2a3d07cd7c51b2a62b33a7aa9b28b08ccb7461ab Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 8 Feb 2023 19:00:31 +0000 Subject: [PATCH 2240/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.6.0 (#2507) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.6.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a1dfe4b043a3..f6391253aacc 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.5.0 + 26.6.0 pom import @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.5.0') +implementation platform('com.google.cloud:libraries-bom:26.6.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index eb7f66736c09..3206ba2460d6 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.5.0 + 26.6.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 1afddfd99e1e..cd9ac14e2779 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.5.0 + 26.6.0 pom import From 0a99673c12fbb9cdf8d0a550dc4cbac72c355145 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 8 Feb 2023 19:00:49 +0000 Subject: [PATCH 2241/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.12.0 (#2511) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.12.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 64a32d95c782..7dc9aede8caf 100644 --- a/pom.xml +++ b/pom.xml @@ -160,7 +160,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.11.0 + 2.12.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 92aecb92edba..10da02933a50 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.11.0 + 2.12.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 010d2c1e2d4d..e8698abd2aa2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.11.0 + 2.12.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index cd9ac14e2779..c9320c15d317 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.11.0 + 2.12.0 test From 6793175eda5778aee731c7f4b901b92108068109 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 8 Feb 2023 19:02:55 +0000 Subject: [PATCH 2242/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.18.4 (#2500) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.18.4 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 10da02933a50..3ed939c6b16d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.18.2 + 2.18.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e8698abd2aa2..ed89f51fa741 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.18.2 + 2.18.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c9320c15d317..d70de3027e97 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.18.2 + 2.18.4 test From 09f280d15389838dcc7ff9d8c1f485041559051e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 8 Feb 2023 19:03:51 +0000 Subject: [PATCH 2243/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.12.0 (#2512) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.12.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7dc9aede8caf..53d3430683d4 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.11.0 + 2.12.0 test From 02832ddcb62d4701cd3568eae806586917b359b5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 8 Feb 2023 19:16:15 +0000 Subject: [PATCH 2244/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.2.0 (#2513) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/google-cloud-java) | `3.1.2` -> `3.2.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.2.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.2.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.2.0/compatibility-slim/3.1.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.2.0/confidence-slim/3.1.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 53d3430683d4..de43a8292c7e 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20230114-2.0.0 - 3.1.2 + 3.2.0 10.0.1 From c0a393ca3aae372dd42477c9b54bd785fc17ab20 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 8 Feb 2023 19:56:13 +0000 Subject: [PATCH 2245/3441] deps: update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.31.0 (#2499) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit deps: update dependency com.google.cloud:google-cloud-storage to v2.18.0 deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.16.0 [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.17.2` -> `2.18.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.18.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.18.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.18.0/compatibility-slim/2.17.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.18.0/confidence-slim/2.17.2)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.cloud:google-cloud-datacatalog-bom](https://togithub.com/googleapis/google-cloud-java) | `1.15.0` -> `1.16.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.16.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.16.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.16.0/compatibility-slim/1.15.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.16.0/confidence-slim/1.15.0)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.28.3` -> `2.31.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.31.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.31.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.31.0/compatibility-slim/2.28.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.31.0/confidence-slim/2.28.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes

    googleapis/java-storage ### [`v2.18.0`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​2180-httpsgithubcomgoogleapisjava-storagecomparev2172v2180-2023-02-06) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.17.2...v2.18.0) ##### Features - Add Storage.BlobWriteOption.{meta,}generation{Not,}Match(long) methods to allow literal value construction ([#​1875](https://togithub.com/googleapis/java-storage/issues/1875)) ([a9fab09](https://togithub.com/googleapis/java-storage/commit/a9fab098e23c93887f0aae8a5de6e3477d5f0f0c)) - Setting up 2.15.x ([#​1880](https://togithub.com/googleapis/java-storage/issues/1880)) ([1c88e83](https://togithub.com/googleapis/java-storage/commit/1c88e83974798d39a63ea4dd85d8f5bb9cb8f88c)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.2.0 ([#​1886](https://togithub.com/googleapis/java-storage/issues/1886)) ([6928556](https://togithub.com/googleapis/java-storage/commit/6928556f0a0a61e8c68d9bf98403ce5b27a3bee2))
    googleapis/java-bigquerystorage ### [`v2.31.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2310-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2300v2310-2023-02-08) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.30.0...v2.31.0) ##### Features - Add isDone to JsonWriter to indicate a JsonWriter is no longer usable and needs to be recreated. ([#​1978](https://togithub.com/googleapis/java-bigquerystorage/issues/1978)) ([dc07ed8](https://togithub.com/googleapis/java-bigquerystorage/commit/dc07ed84778028f149cab3883af9bb9a7929efd1)) - Add isUserClosed to indicate that user explicitly closed the StreamWriter ([#​1983](https://togithub.com/googleapis/java-bigquerystorage/issues/1983)) ([abd6627](https://togithub.com/googleapis/java-bigquerystorage/commit/abd66274abca2315739c1b388dd363e107baad85)) ##### Dependencies - Update arrow.version to v11 (major) ([#​1961](https://togithub.com/googleapis/java-bigquerystorage/issues/1961)) ([c13ab23](https://togithub.com/googleapis/java-bigquerystorage/commit/c13ab23a96d72d5087653ebaf0a0635863a526a9)) - Update dependency com.google.cloud:google-cloud-bigquery to v2.21.0 ([#​1956](https://togithub.com/googleapis/java-bigquerystorage/issues/1956)) ([6a1d783](https://togithub.com/googleapis/java-bigquerystorage/commit/6a1d783b80bdd0e1846ee667e2a15d41e3f6980f)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.2.0 ([#​1974](https://togithub.com/googleapis/java-bigquerystorage/issues/1974)) ([8e2c1e3](https://togithub.com/googleapis/java-bigquerystorage/commit/8e2c1e326d6a65ba814ef826cfcb98c58395f01f)) - Update dependency org.apache.arrow:arrow-memory-netty to v11 ([#​1962](https://togithub.com/googleapis/java-bigquerystorage/issues/1962)) ([48abc75](https://togithub.com/googleapis/java-bigquerystorage/commit/48abc75cdd2c372751790c197b83cf3aa59f1055)) - Update dependency org.apache.arrow:arrow-vector to v11 ([#​1963](https://togithub.com/googleapis/java-bigquerystorage/issues/1963)) ([e872723](https://togithub.com/googleapis/java-bigquerystorage/commit/e87272323a0267771f3ffbc857fbaf06c6656f90)) ### [`v2.30.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2300-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2290v2300-2023-02-06) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.29.0...v2.30.0) ##### Features - Add userClose flag back to StreamWriter ([#​1973](https://togithub.com/googleapis/java-bigquerystorage/issues/1973)) ([4b51acd](https://togithub.com/googleapis/java-bigquerystorage/commit/4b51acd49292d99e1c3cd670bec695b8bcd3b5c4)) ##### Bug Fixes - Close stream connection before each retry ([#​1975](https://togithub.com/googleapis/java-bigquerystorage/issues/1975)) ([54e9bb9](https://togithub.com/googleapis/java-bigquerystorage/commit/54e9bb9116eb9781b6f2266f98de4d3853a469b8)) - Improve ConnectionWorker fine logging ([#​1972](https://togithub.com/googleapis/java-bigquerystorage/issues/1972)) ([812bcf1](https://togithub.com/googleapis/java-bigquerystorage/commit/812bcf16efdc7a1797435f0b87430c35f27f7245)) ### [`v2.29.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2290-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2284v2290-2023-02-01) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.28.4...v2.29.0) ##### Features - Add timeout to inflight queue waiting ([#​1957](https://togithub.com/googleapis/java-bigquerystorage/issues/1957)) ([3159b12](https://togithub.com/googleapis/java-bigquerystorage/commit/3159b120e5cd388cf9776a1fa928a3e6ae105d9d)) - Allow java client to handle schema change during same stream name ([#​1964](https://togithub.com/googleapis/java-bigquerystorage/issues/1964)) ([305f71e](https://togithub.com/googleapis/java-bigquerystorage/commit/305f71ee4b274df58388fc3000e9f5da9fc908e1)) ##### Bug Fixes - At connection level, retry for internal errors ([#​1965](https://togithub.com/googleapis/java-bigquerystorage/issues/1965)) ([9c01bc1](https://togithub.com/googleapis/java-bigquerystorage/commit/9c01bc11b51dc1e3e209e4d6b666b9ddd3212cf5)) - Reduce visibility of the ConnectionPool and ConnectionWorker, so… ([#​1954](https://togithub.com/googleapis/java-bigquerystorage/issues/1954)) ([dcb234b](https://togithub.com/googleapis/java-bigquerystorage/commit/dcb234b95d0812d4d91b0c206d0b7e0fb30ab0fa)) - Remove unrecoverable connection from connection pool during multiplexing ([#​1967](https://togithub.com/googleapis/java-bigquerystorage/issues/1967)) ([091dddb](https://togithub.com/googleapis/java-bigquerystorage/commit/091dddb9b2baf1f4b481e8d7961d451b71a8508b)) ### [`v2.28.4`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2284-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2283v2284-2023-01-25) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.28.3...v2.28.4) ##### Bug Fixes - Fix one potential root cause of deadlock in connection worker ([#​1955](https://togithub.com/googleapis/java-bigquerystorage/issues/1955)) ([598ce5e](https://togithub.com/googleapis/java-bigquerystorage/commit/598ce5eb5e8d5efaaa841495794be4d39c6c0fce))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index de43a8292c7e..5970b4b330a6 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.28.3 + 2.31.0 pom import @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.15.0 + 1.16.0 pom import @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.17.2 + 2.18.0 test From 94ed06089239a0df0ffebf7f8470a38c16be95bf Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 8 Feb 2023 19:58:14 +0000 Subject: [PATCH 2246/3441] deps: update arrow.version to v11 (major) (#2495) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.arrow:arrow-memory-netty](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `10.0.1` -> `11.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/11.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/11.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/11.0.0/compatibility-slim/10.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/11.0.0/confidence-slim/10.0.1)](https://docs.renovatebot.com/merge-confidence/) | | [org.apache.arrow:arrow-memory-core](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `10.0.1` -> `11.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/11.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/11.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/11.0.0/compatibility-slim/10.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/11.0.0/confidence-slim/10.0.1)](https://docs.renovatebot.com/merge-confidence/) | | [org.apache.arrow:arrow-vector](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `10.0.1` -> `11.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/11.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/11.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/11.0.0/compatibility-slim/10.0.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/11.0.0/confidence-slim/10.0.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5970b4b330a6..cd510bac7232 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ google-cloud-bigquery-parent v2-rev20230114-2.0.0 3.2.0 - 10.0.1 + 11.0.0
    From cca93a223a9b935bc75d19ddf38023637e4ec3d9 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 21:56:13 +0000 Subject: [PATCH 2247/3441] chore(main): release 2.22.0 (#2491) :robot: I have created a release *beep* *boop* --- ## [2.22.0](https://togithub.com/googleapis/java-bigquery/compare/v2.21.0...v2.22.0) (2023-02-08) ### Features * Add collation for Case sensitive string column ([#2490](https://togithub.com/googleapis/java-bigquery/issues/2490)) ([3257737](https://togithub.com/googleapis/java-bigquery/commit/325773757e811172236eb3221926025b82f5db64)) ### Dependencies * Update arrow.version to v11 (major) ([#2495](https://togithub.com/googleapis/java-bigquery/issues/2495)) ([94ed060](https://togithub.com/googleapis/java-bigquery/commit/94ed06089239a0df0ffebf7f8470a38c16be95bf)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.11.0 ([#2482](https://togithub.com/googleapis/java-bigquery/issues/2482)) ([e6ffb9b](https://togithub.com/googleapis/java-bigquery/commit/e6ffb9b594e3bb680c4904f822c39653d626c4d3)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.12.0 ([#2512](https://togithub.com/googleapis/java-bigquery/issues/2512)) ([09f280d](https://togithub.com/googleapis/java-bigquery/commit/09f280d15389838dcc7ff9d8c1f485041559051e)) * Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.31.0 ([#2499](https://togithub.com/googleapis/java-bigquery/issues/2499)) ([c0a393c](https://togithub.com/googleapis/java-bigquery/commit/c0a393ca3aae372dd42477c9b54bd785fc17ab20)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.15.0 ([#2483](https://togithub.com/googleapis/java-bigquery/issues/2483)) ([5c2bf69](https://togithub.com/googleapis/java-bigquery/commit/5c2bf69b227ca4efb55b42c06a747426183f8ae5)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.2.0 ([#2513](https://togithub.com/googleapis/java-bigquery/issues/2513)) ([02832dd](https://togithub.com/googleapis/java-bigquery/commit/02832ddcb62d4701cd3568eae806586917b359b5)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 17 +++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 24 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c58633bf488c..3c7bceabcca3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [2.22.0](https://github.com/googleapis/java-bigquery/compare/v2.21.0...v2.22.0) (2023-02-08) + + +### Features + +* Add collation for Case sensitive string column ([#2490](https://github.com/googleapis/java-bigquery/issues/2490)) ([3257737](https://github.com/googleapis/java-bigquery/commit/325773757e811172236eb3221926025b82f5db64)) + + +### Dependencies + +* Update arrow.version to v11 (major) ([#2495](https://github.com/googleapis/java-bigquery/issues/2495)) ([94ed060](https://github.com/googleapis/java-bigquery/commit/94ed06089239a0df0ffebf7f8470a38c16be95bf)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.11.0 ([#2482](https://github.com/googleapis/java-bigquery/issues/2482)) ([e6ffb9b](https://github.com/googleapis/java-bigquery/commit/e6ffb9b594e3bb680c4904f822c39653d626c4d3)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.12.0 ([#2512](https://github.com/googleapis/java-bigquery/issues/2512)) ([09f280d](https://github.com/googleapis/java-bigquery/commit/09f280d15389838dcc7ff9d8c1f485041559051e)) +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.31.0 ([#2499](https://github.com/googleapis/java-bigquery/issues/2499)) ([c0a393c](https://github.com/googleapis/java-bigquery/commit/c0a393ca3aae372dd42477c9b54bd785fc17ab20)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.15.0 ([#2483](https://github.com/googleapis/java-bigquery/issues/2483)) ([5c2bf69](https://github.com/googleapis/java-bigquery/commit/5c2bf69b227ca4efb55b42c06a747426183f8ae5)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.2.0 ([#2513](https://github.com/googleapis/java-bigquery/issues/2513)) ([02832dd](https://github.com/googleapis/java-bigquery/commit/02832ddcb62d4701cd3568eae806586917b359b5)) + ## [2.21.0](https://github.com/googleapis/java-bigquery/compare/v2.20.2...v2.21.0) (2023-01-23) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f5e2426d67a1..e10dd137fcad 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.21.1-SNAPSHOT + 2.22.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ad82b14fc133..746402f62fbe 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.21.1-SNAPSHOT + 2.22.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.21.1-SNAPSHOT + 2.22.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index cd510bac7232..6c4766ee178d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.21.1-SNAPSHOT + 2.22.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.21.1-SNAPSHOT + 2.22.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ed89f51fa741..b1adbf2d2340 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.21.1-SNAPSHOT + 2.22.0 diff --git a/versions.txt b/versions.txt index a84c62037e45..53dbb595a252 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.21.0:2.21.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.22.0:2.22.0 \ No newline at end of file From 3c433070c47169ec529f03f2d517c227b40c19d6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 8 Feb 2023 22:28:11 +0000 Subject: [PATCH 2248/3441] chore(main): release 2.22.1-SNAPSHOT (#2515) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index e10dd137fcad..bca0b8ae5aa6 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.22.0 + 2.22.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 746402f62fbe..74c1d14bfae5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.22.0 + 2.22.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.22.0 + 2.22.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 6c4766ee178d..9c425e9a50a5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.22.0 + 2.22.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.22.0 + 2.22.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b1adbf2d2340..930b63e4176f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.22.0 + 2.22.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 53dbb595a252..e739f309787b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.22.0:2.22.0 \ No newline at end of file +google-cloud-bigquery:2.22.0:2.22.1-SNAPSHOT \ No newline at end of file From 712dada2bbef60828315c781865d9290cd4dde1a Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 14:59:25 -0500 Subject: [PATCH 2249/3441] build(deps): bump cryptography from 38.0.3 to 39.0.1 in /synthtool/gcp/templates/java_library/.kokoro (#1761) (#2520) * build(deps): bump cryptography Bumps [cryptography](https://github.com/pyca/cryptography) from 38.0.3 to 39.0.1. - [Release notes](https://github.com/pyca/cryptography/releases) - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/38.0.3...39.0.1) --- updated-dependencies: - dependency-name: cryptography dependency-type: indirect ... * chore: disabling dependabot --------- Source-Link: https://github.com/googleapis/synthtool/commit/0c6f8d4ac5358553ee734e26574f390bc43a736e Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:5ee35ee919254a3d1e7d4f8abbf1b8c8869ade317ceb2e4df709af1b4b3e9ca1 Signed-off-by: dependabot[bot] Co-authored-by: Owl Bot Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Tomo Suzuki Co-authored-by: ddixit14 --- .github/.OwlBot.lock.yaml | 2 +- .github/dependabot.yml | 14 +++++++++++ .kokoro/requirements.txt | 53 ++++++++++++++++----------------------- README.md | 6 ++--- 4 files changed, 40 insertions(+), 35 deletions(-) create mode 100644 .github/dependabot.yml diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index f8a8575314cc..090264303f34 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:bd5071596a47614d1fe15eb766c4255bae330f823b606e1196a3b0c8d2e96fd1 + digest: sha256:5ee35ee919254a3d1e7d4f8abbf1b8c8869ade317ceb2e4df709af1b4b3e9ca1 diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000000..c8f413b0da30 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,14 @@ +version: 2 +updates: + - package-ecosystem: "maven" + directory: "/" + schedule: + interval: "daily" + # Disable version updates for Maven dependencies + open-pull-requests-limit: 0 + - package-ecosystem: "pip" + directory: "/" + schedule: + interval: "daily" + # Disable version updates for pip dependencies + open-pull-requests-limit: 0 \ No newline at end of file diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 4895c9631fd8..cfadd22ce9b9 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -97,33 +97,28 @@ colorlog==6.7.0 \ --hash=sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662 \ --hash=sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5 # via gcp-docuploader -cryptography==38.0.3 \ - --hash=sha256:068147f32fa662c81aebab95c74679b401b12b57494872886eb5c1139250ec5d \ - --hash=sha256:06fc3cc7b6f6cca87bd56ec80a580c88f1da5306f505876a71c8cfa7050257dd \ - --hash=sha256:25c1d1f19729fb09d42e06b4bf9895212292cb27bb50229f5aa64d039ab29146 \ - --hash=sha256:402852a0aea73833d982cabb6d0c3bb582c15483d29fb7085ef2c42bfa7e38d7 \ - --hash=sha256:4e269dcd9b102c5a3d72be3c45d8ce20377b8076a43cbed6f660a1afe365e436 \ - --hash=sha256:5419a127426084933076132d317911e3c6eb77568a1ce23c3ac1e12d111e61e0 \ - --hash=sha256:554bec92ee7d1e9d10ded2f7e92a5d70c1f74ba9524947c0ba0c850c7b011828 \ - --hash=sha256:5e89468fbd2fcd733b5899333bc54d0d06c80e04cd23d8c6f3e0542358c6060b \ - --hash=sha256:65535bc550b70bd6271984d9863a37741352b4aad6fb1b3344a54e6950249b55 \ - --hash=sha256:6ab9516b85bebe7aa83f309bacc5f44a61eeb90d0b4ec125d2d003ce41932d36 \ - --hash=sha256:6addc3b6d593cd980989261dc1cce38263c76954d758c3c94de51f1e010c9a50 \ - --hash=sha256:728f2694fa743a996d7784a6194da430f197d5c58e2f4e278612b359f455e4a2 \ - --hash=sha256:785e4056b5a8b28f05a533fab69febf5004458e20dad7e2e13a3120d8ecec75a \ - --hash=sha256:78cf5eefac2b52c10398a42765bfa981ce2372cbc0457e6bf9658f41ec3c41d8 \ - --hash=sha256:7f836217000342d448e1c9a342e9163149e45d5b5eca76a30e84503a5a96cab0 \ - --hash=sha256:8d41a46251bf0634e21fac50ffd643216ccecfaf3701a063257fe0b2be1b6548 \ - --hash=sha256:984fe150f350a3c91e84de405fe49e688aa6092b3525f407a18b9646f6612320 \ - --hash=sha256:9b24bcff7853ed18a63cfb0c2b008936a9554af24af2fb146e16d8e1aed75748 \ - --hash=sha256:b1b35d9d3a65542ed2e9d90115dfd16bbc027b3f07ee3304fc83580f26e43249 \ - --hash=sha256:b1b52c9e5f8aa2b802d48bd693190341fae201ea51c7a167d69fc48b60e8a959 \ - --hash=sha256:bbf203f1a814007ce24bd4d51362991d5cb90ba0c177a9c08825f2cc304d871f \ - --hash=sha256:be243c7e2bfcf6cc4cb350c0d5cdf15ca6383bbcb2a8ef51d3c9411a9d4386f0 \ - --hash=sha256:bfbe6ee19615b07a98b1d2287d6a6073f734735b49ee45b11324d85efc4d5cbd \ - --hash=sha256:c46837ea467ed1efea562bbeb543994c2d1f6e800785bd5a2c98bc096f5cb220 \ - --hash=sha256:dfb4f4dd568de1b6af9f4cda334adf7d72cf5bc052516e1b2608b683375dd95c \ - --hash=sha256:ed7b00096790213e09eb11c97cc6e2b757f15f3d2f85833cd2d3ec3fe37c1722 +cryptography==39.0.1 \ + --hash=sha256:0f8da300b5c8af9f98111ffd512910bc792b4c77392a9523624680f7956a99d4 \ + --hash=sha256:35f7c7d015d474f4011e859e93e789c87d21f6f4880ebdc29896a60403328f1f \ + --hash=sha256:5aa67414fcdfa22cf052e640cb5ddc461924a045cacf325cd164e65312d99502 \ + --hash=sha256:5d2d8b87a490bfcd407ed9d49093793d0f75198a35e6eb1a923ce1ee86c62b41 \ + --hash=sha256:6687ef6d0a6497e2b58e7c5b852b53f62142cfa7cd1555795758934da363a965 \ + --hash=sha256:6f8ba7f0328b79f08bdacc3e4e66fb4d7aab0c3584e0bd41328dce5262e26b2e \ + --hash=sha256:706843b48f9a3f9b9911979761c91541e3d90db1ca905fd63fee540a217698bc \ + --hash=sha256:807ce09d4434881ca3a7594733669bd834f5b2c6d5c7e36f8c00f691887042ad \ + --hash=sha256:83e17b26de248c33f3acffb922748151d71827d6021d98c70e6c1a25ddd78505 \ + --hash=sha256:96f1157a7c08b5b189b16b47bc9db2332269d6680a196341bf30046330d15388 \ + --hash=sha256:aec5a6c9864be7df2240c382740fcf3b96928c46604eaa7f3091f58b878c0bb6 \ + --hash=sha256:b0afd054cd42f3d213bf82c629efb1ee5f22eba35bf0eec88ea9ea7304f511a2 \ + --hash=sha256:ced4e447ae29ca194449a3f1ce132ded8fcab06971ef5f618605aacaa612beac \ + --hash=sha256:d1f6198ee6d9148405e49887803907fe8962a23e6c6f83ea7d98f1c0de375695 \ + --hash=sha256:e124352fd3db36a9d4a21c1aa27fd5d051e621845cb87fb851c08f4f75ce8be6 \ + --hash=sha256:e422abdec8b5fa8462aa016786680720d78bdce7a30c652b7fadf83a4ba35336 \ + --hash=sha256:ef8b72fa70b348724ff1218267e7f7375b8de4e8194d1636ee60510aae104cd0 \ + --hash=sha256:f0c64d1bd842ca2633e74a1a28033d139368ad959872533b1bab8c80e8240a0c \ + --hash=sha256:f24077a3b5298a5a06a8e0536e3ea9ec60e4c7ac486755e5fb6e6ea9b3500106 \ + --hash=sha256:fdd188c8a6ef8769f148f88f859884507b954cc64db6b52f66ef199bb9ad660a \ + --hash=sha256:fe913f20024eb2cb2f323e42a64bdf2911bb9738a15dba7d3cce48151034e3a8 # via # gcp-releasetool # secretstorage @@ -379,10 +374,6 @@ secretstorage==3.3.3 \ --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \ --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 # via keyring -setuptools==65.6.3 \ - --hash=sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54 \ - --hash=sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75 - # via -r requirements.in six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 diff --git a/README.md b/README.md index f6391253aacc..dc58898af697 100644 --- a/README.md +++ b/README.md @@ -52,20 +52,20 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.6.0') +implementation platform('com.google.cloud:libraries-bom:26.7.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.21.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.22.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.21.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.22.0" ``` ## Authentication From 747d01deb0c8b014bb1519378a8e9657dc647cc9 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Mon, 13 Feb 2023 15:39:23 -0500 Subject: [PATCH 2250/3441] chore: move graalVM checks to continuous build (#2522) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: move graalVM checks to continuous build * chore: remove graalvm checks from required checks * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * enable flakybot for graalvm checks --------- Co-authored-by: Owl Bot --- .github/sync-repo-settings.yaml | 4 --- .kokoro/build.sh | 6 ++-- .kokoro/continuous/graalvm-native-17.cfg | 38 ++++++++++++++++++++++++ .kokoro/continuous/graalvm-native.cfg | 38 ++++++++++++++++++++++++ 4 files changed, 79 insertions(+), 7 deletions(-) create mode 100644 .kokoro/continuous/graalvm-native-17.cfg create mode 100644 .kokoro/continuous/graalvm-native.cfg diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index e3a8af4e907d..223b72e8a6a7 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -17,8 +17,6 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - cla/google - OwlBot Post Processor - - 'Kokoro - Test: Java GraalVM Native Image' - - 'Kokoro - Test: Java 17 GraalVM Native Image' - pattern: 1.127.12-sp isAdminEnforced: true requiredApprovingReviewCount: 1 @@ -94,8 +92,6 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - cla/google - OwlBot Post Processor - - 'Kokoro - Test: Java GraalVM Native Image' - - 'Kokoro - Test: Java 17 GraalVM Native Image' permissionRules: - team: api-bigquery permission: admin diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 525dbaa62be4..0c26eec01af3 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -61,7 +61,7 @@ javadoc) integration) mvn -B ${INTEGRATION_TEST_ARGS} \ -ntp \ - -Dtest=ITBigQueryTest \ + -Dtest=ITBigQueryTest,ITRemoteUDFTest \ -DtrimStackTrace=false \ -Dclirr.skip=true \ -Denforcer.skip=true \ @@ -82,12 +82,12 @@ nightly-it) ;; graalvm) # Run Integration Tests with Native Image. Skip running nightly tests in presubmits. - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest -Pnative -Penable-integration-tests test + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest,ITRemoteUDFTest -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; graalvm17) # Run Integration Tests with Native Image. Skip running nightly tests in presubmits. - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest -Pnative -Penable-integration-tests test + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest,ITRemoteUDFTest -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; nightly-graalvm) diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg new file mode 100644 index 000000000000..9c1849588cc3 --- /dev/null +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -0,0 +1,38 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.0" +} + +env_vars: { + key: "JOB_TYPE" + value: "graalvm17" +} + +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} + +env_vars: { + key: "ENABLE_FLAKYBOT" + value: "true" +} \ No newline at end of file diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg new file mode 100644 index 000000000000..de44999b8e86 --- /dev/null +++ b/.kokoro/continuous/graalvm-native.cfg @@ -0,0 +1,38 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.0" +} + +env_vars: { + key: "JOB_TYPE" + value: "graalvm" +} + +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} + +env_vars: { + key: "ENABLE_FLAKYBOT" + value: "true" +} \ No newline at end of file From 59b933ef6324494dfc4c9b7a77b749dc72123b8c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 13 Feb 2023 20:40:55 +0000 Subject: [PATCH 2251/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.7.0 (#2518) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.7.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index dc58898af697..6a865c912f61 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.6.0 + 26.7.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 3206ba2460d6..abf6496356c6 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.6.0 + 26.7.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d70de3027e97..36754f625edc 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.6.0 + 26.7.0 pom import From e431c17efe0f69d084f119463ca8bdb25047a7fe Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Tue, 14 Feb 2023 14:02:53 -0500 Subject: [PATCH 2252/3441] feat: add support for session_id in load jobs (#2519) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add support for session_id in load jobs * chore: fix variable change * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../cloud/bigquery/LoadJobConfiguration.java | 47 ++++++++++++++++- .../bigquery/LoadJobConfigurationTest.java | 13 +++++ .../cloud/bigquery/it/ITBigQueryTest.java | 50 +++++++++++++++++++ 3 files changed, 109 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index ee142be01054..321d542a6791 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -22,6 +22,7 @@ import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; import com.google.common.primitives.Ints; import java.util.List; import java.util.Map; @@ -58,6 +59,10 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private final HivePartitioningOptions hivePartitioningOptions; private final String referenceFileSchemaUri; + private final List connectionProperties; + + private final Boolean createSession; + public static final class Builder extends JobConfiguration.Builder implements LoadConfiguration.Builder { @@ -83,6 +88,8 @@ public static final class Builder extends JobConfiguration.Builder connectionProperties; + private Boolean createSession; private Builder() { super(Type.LOAD); @@ -112,6 +119,8 @@ private Builder(LoadJobConfiguration loadConfiguration) { this.rangePartitioning = loadConfiguration.rangePartitioning; this.hivePartitioningOptions = loadConfiguration.hivePartitioningOptions; this.referenceFileSchemaUri = loadConfiguration.referenceFileSchemaUri; + this.connectionProperties = loadConfiguration.connectionProperties; + this.createSession = loadConfiguration.createSession; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -205,6 +214,13 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (loadConfigurationPb.getReferenceFileSchemaUri() != null) { this.referenceFileSchemaUri = loadConfigurationPb.getReferenceFileSchemaUri(); } + if (loadConfigurationPb.getConnectionProperties() != null) { + + this.connectionProperties = + Lists.transform( + loadConfigurationPb.getConnectionProperties(), ConnectionProperty.FROM_PB_FUNCTION); + } + createSession = loadConfigurationPb.getCreateSession(); } @Override @@ -368,6 +384,16 @@ public Builder setReferenceFileSchemaUri(String referenceFileSchemaUri) { return this; } + public Builder setConnectionProperties(List connectionProperties) { + this.connectionProperties = ImmutableList.copyOf(connectionProperties); + return this; + } + + public Builder setCreateSession(Boolean createSession) { + this.createSession = createSession; + return this; + } + @Override public LoadJobConfiguration build() { return new LoadJobConfiguration(this); @@ -397,6 +423,8 @@ private LoadJobConfiguration(Builder builder) { this.rangePartitioning = builder.rangePartitioning; this.hivePartitioningOptions = builder.hivePartitioningOptions; this.referenceFileSchemaUri = builder.referenceFileSchemaUri; + this.connectionProperties = builder.connectionProperties; + this.createSession = builder.createSession; } @Override @@ -520,6 +548,14 @@ public String getReferenceFileSchemaUri() { return referenceFileSchemaUri; } + public List getConnectionProperties() { + return connectionProperties; + } + + public Boolean getCreateSession() { + return createSession; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -548,7 +584,9 @@ ToStringHelper toStringHelper() { .add("jobTimeoutMs", jobTimeoutMs) .add("rangePartitioning", rangePartitioning) .add("hivePartitioningOptions", hivePartitioningOptions) - .add("referenceFileSchemaUri", referenceFileSchemaUri); + .add("referenceFileSchemaUri", referenceFileSchemaUri) + .add("connectionProperties", connectionProperties) + .add("createSession", createSession); } @Override @@ -654,6 +692,13 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (referenceFileSchemaUri != null) { loadConfigurationPb.setReferenceFileSchemaUri(referenceFileSchemaUri); } + if (connectionProperties != null) { + loadConfigurationPb.setConnectionProperties( + Lists.transform(connectionProperties, ConnectionProperty.TO_PB_FUNCTION)); + } + if (createSession != null) { + loadConfigurationPb.setCreateSession(createSession); + } jobConfiguration.setLoad(loadConfigurationPb); return jobConfiguration; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index deed2f11b45d..341965fb8090 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -57,6 +57,8 @@ public class LoadJobConfigurationTest { private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA); private static final Boolean AUTODETECT = true; private static final Boolean USE_AVRO_LOGICAL_TYPES = true; + + private static final boolean CREATE_SESSION = true; private static final EncryptionConfiguration JOB_ENCRYPTION_CONFIGURATION = EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); private static final TimePartitioning TIME_PARTITIONING = TimePartitioning.of(Type.DAY); @@ -71,6 +73,13 @@ public class LoadJobConfigurationTest { RangePartitioning.newBuilder().setField("IntegerField").setRange(RANGE).build(); private static final String MODE = "STRING"; private static final String SOURCE_URI_PREFIX = "gs://bucket/path_to_table"; + + private static final String KEY = "session_id"; + private static final String VALUE = "session_id_1234567890"; + private static final ConnectionProperty CONNECTION_PROPERTY = + ConnectionProperty.newBuilder().setKey(KEY).setValue(VALUE).build(); + private static final List CONNECTION_PROPERTIES = + ImmutableList.of(CONNECTION_PROPERTY); private static final HivePartitioningOptions HIVE_PARTITIONING_OPTIONS = HivePartitioningOptions.newBuilder() .setMode(MODE) @@ -95,6 +104,8 @@ public class LoadJobConfigurationTest { .setRangePartitioning(RANGE_PARTITIONING) .setNullMarker("nullMarker") .setHivePartitioningOptions(HIVE_PARTITIONING_OPTIONS) + .setConnectionProperties(CONNECTION_PROPERTIES) + .setCreateSession(CREATE_SESSION) .build(); private static final DatastoreBackupOptions BACKUP_OPTIONS = @@ -253,5 +264,7 @@ private void compareLoadJobConfiguration( assertEquals(expected.getRangePartitioning(), value.getRangePartitioning()); assertEquals(expected.getNullMarker(), value.getNullMarker()); assertEquals(expected.getHivePartitioningOptions(), value.getHivePartitioningOptions()); + assertEquals(expected.getConnectionProperties(), value.getConnectionProperties()); + assertEquals(expected.getCreateSession(), value.getCreateSession()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 69c69f17183d..0bbe1efdd143 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3655,6 +3655,56 @@ public void testQuerySessionSupport() throws InterruptedException { assertEquals(sessionId, statisticsWithSession.getSessionInfo().getSessionId()); } + @Test + public void testLoadSessionSupport() throws InterruptedException { + // Start the session + TableId sessionTableId = TableId.of("_SESSION", "test_temp_destination_table"); + LoadJobConfiguration configuration = + LoadJobConfiguration.newBuilder( + sessionTableId, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(TABLE_SCHEMA) + .setCreateSession(true) + .build(); + Job job = bigquery.create(JobInfo.of(configuration)); + job = job.waitFor(); + assertNull(job.getStatus().getError()); + + Job loadJob = bigquery.getJob(job.getJobId()); + JobStatistics.LoadStatistics statistics = loadJob.getStatistics(); + String sessionId = statistics.getSessionInfo().getSessionId(); + assertNotNull(sessionId); + + // Load job in the same session. + // Should load the data to a temp table. + ConnectionProperty sessionConnectionProperty = + ConnectionProperty.newBuilder().setKey("session_id").setValue(sessionId).build(); + LoadJobConfiguration loadJobConfigurationWithSession = + LoadJobConfiguration.newBuilder( + sessionTableId, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(TABLE_SCHEMA) + .setConnectionProperties(ImmutableList.of(sessionConnectionProperty)) + .build(); + Job remoteJobWithSession = bigquery.create(JobInfo.of(loadJobConfigurationWithSession)); + remoteJobWithSession = remoteJobWithSession.waitFor(); + assertNull(remoteJobWithSession.getStatus().getError()); + Job queryJobWithSession = bigquery.getJob(remoteJobWithSession.getJobId()); + LoadStatistics statisticsWithSession = queryJobWithSession.getStatistics(); + assertNotNull(statisticsWithSession.getSessionInfo().getSessionId()); + + // Checking if the data loaded to the temp table in the session + String queryTempTable = "SELECT * FROM _SESSION.test_temp_destination_table;"; + QueryJobConfiguration queryJobConfigurationWithSession = + QueryJobConfiguration.newBuilder(queryTempTable) + .setConnectionProperties(ImmutableList.of(sessionConnectionProperty)) + .build(); + Job queryTempTableJob = bigquery.create(JobInfo.of(queryJobConfigurationWithSession)); + queryTempTableJob = queryTempTableJob.waitFor(); + assertNull(queryTempTableJob.getStatus().getError()); + assertNotNull(queryTempTableJob.getQueryResults()); + } + // TODO: uncomment this testcase when executeUpdate is implemented // @Test // public void testExecuteSelectWithSession() throws BigQuerySQLException { From f150bce869821a4cd7706e4c3f2ad38dec476be7 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Tue, 14 Feb 2023 14:03:13 -0500 Subject: [PATCH 2253/3441] chore: update SimpleApp sample code to use stackoverflow public dataset (#2523) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: update SimpleApp sample code to use stackoverflow public dataset * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * sample checkstyle fix * chore: rename SimpleApp to App * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: revert file name change * chore: revert filename changes * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- .../java/com/example/bigquery/SimpleApp.java | 22 ++++++++----------- .../com/example/bigquery/SimpleAppIT.java | 2 +- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 6a865c912f61..1883965cdf61 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.7.0') +implementation platform('com.google.cloud:libraries-bom:26.8.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java b/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java index dfabf71f30b1..65ebbc241df8 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java @@ -39,10 +39,12 @@ public static void main(String... args) throws Exception { // [START bigquery_simple_app_query] QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder( - "SELECT commit, author, repo_name " - + "FROM `bigquery-public-data.github_repos.commits` " - + "WHERE subject like '%bigquery%' " - + "ORDER BY subject DESC LIMIT 10") + "SELECT CONCAT('https://stackoverflow.com/questions/', " + + "CAST(id as STRING)) as url, view_count " + + "FROM `bigquery-public-data.stackoverflow.posts_questions` " + + "WHERE tags like '%google-bigquery%' " + + "ORDER BY view_count DESC " + + "LIMIT 10") // Use standard SQL syntax for queries. // See: https://cloud.google.com/bigquery/sql-reference/ .setUseLegacySql(false) @@ -72,15 +74,9 @@ public static void main(String... args) throws Exception { // Print all pages of the results. for (FieldValueList row : result.iterateAll()) { // String type - String commit = row.get("commit").getStringValue(); - // Record type - FieldValueList author = row.get("author").getRecordValue(); - String name = author.get("name").getStringValue(); - String email = author.get("email").getStringValue(); - // String Repeated type - String repoName = row.get("repo_name").getRecordValue().get(0).getStringValue(); - System.out.printf( - "Repo name: %s Author name: %s email: %s commit: %s\n", repoName, name, email, commit); + String url = row.get("url").getStringValue(); + String viewCount = row.get("view_count").getStringValue(); + System.out.printf("%s : %s views\n", url, viewCount); } // [END bigquery_simple_app_print] } diff --git a/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java b/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java index 5ac54beebb1e..cfb77f1079a7 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java @@ -58,6 +58,6 @@ public void tearDown() { public void testQuickstart() throws Exception { SimpleApp.main(); String got = bout.toString(); - assertThat(got).contains("Repo name:"); + assertThat(got).contains("https://stackoverflow.com/questions/"); } } From 23ed39fa5d0015ed829303fcc567cc7577ab6c6b Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 22 Feb 2023 13:45:20 -0500 Subject: [PATCH 2254/3441] build(deps): update releasetool version for release scripts (#1768) (#2536) This should fix release script reporting back to the release PRs Source-Link: https://github.com/googleapis/synthtool/commit/4c15ec0960687db8e6da43535fa1ee0e92fbb817 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:e62f3ea524b11c1cd6ff7f80362736d86c0056631346b5b106a421686fce2726 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .kokoro/requirements.in | 2 +- .kokoro/requirements.txt | 12 ++++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 090264303f34..a5361a30a366 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:5ee35ee919254a3d1e7d4f8abbf1b8c8869ade317ceb2e4df709af1b4b3e9ca1 + digest: sha256:e62f3ea524b11c1cd6ff7f80362736d86c0056631346b5b106a421686fce2726 diff --git a/.kokoro/requirements.in b/.kokoro/requirements.in index b19a8dbfdd5e..2092cc741d9c 100644 --- a/.kokoro/requirements.in +++ b/.kokoro/requirements.in @@ -1,5 +1,5 @@ gcp-docuploader -gcp-releasetool +gcp-releasetool>=1.10.5 # required for compatibility with cryptography>=39.x wheel setuptools typing-extensions diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index cfadd22ce9b9..c80f0a87cc53 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.9 +# This file is autogenerated by pip-compile with Python 3.11 # by the following command: # # pip-compile --allow-unsafe --generate-hashes requirements.in @@ -126,9 +126,9 @@ gcp-docuploader==0.6.4 \ --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \ --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf # via -r requirements.in -gcp-releasetool==1.9.1 \ - --hash=sha256:952f4055d5d986b070ae2a71c4410b250000f9cc5a1e26398fcd55a5bbc5a15f \ - --hash=sha256:d0d3c814a97c1a237517e837d8cfa668ced8df4b882452578ecef4a4e79c583b +gcp-releasetool==1.10.5 \ + --hash=sha256:174b7b102d704b254f2a26a3eda2c684fd3543320ec239baf771542a2e58e109 \ + --hash=sha256:e29d29927fe2ca493105a82958c6873bb2b90d503acac56be2c229e74de0eec9 # via -r requirements.in google-api-core==2.8.2 \ --hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \ @@ -374,6 +374,10 @@ secretstorage==3.3.3 \ --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \ --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 # via keyring +setuptools==67.3.2 \ + --hash=sha256:95f00380ef2ffa41d9bba85d95b27689d923c93dfbafed4aecd7cf988a25e012 \ + --hash=sha256:bb6d8e508de562768f2027902929f8523932fcd1fb784e6d573d2cafac995a48 + # via -r requirements.in six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 From f1bcc331d61f966f9c0c29dd3dccb122cafc874d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Feb 2023 18:47:04 +0000 Subject: [PATCH 2255/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.3.0 (#2534) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9c425e9a50a5..9e77dfe535e6 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20230114-2.0.0 - 3.2.0 + 3.3.0 11.0.0 From ed2cb7436c2ba38bdc4975abd12ba88d231087db Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Feb 2023 18:47:44 +0000 Subject: [PATCH 2256/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.13.0 (#2533) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9e77dfe535e6..4f188faa9c33 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.12.0 + 2.13.0 test From a32a650bf5eb3ac002a29baa5bb5f1a90a5ba02a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Feb 2023 19:22:23 +0000 Subject: [PATCH 2257/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.13.0 (#2532) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 4f188faa9c33..5a5ca1881509 100644 --- a/pom.xml +++ b/pom.xml @@ -160,7 +160,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.12.0 + 2.13.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3ed939c6b16d..8cd02e07f03f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.12.0 + 2.13.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 930b63e4176f..f4ad58b54e32 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.12.0 + 2.13.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 36754f625edc..0b7d3ebe833c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.12.0 + 2.13.0 test From 4d88ccc22b86ae83220324c53c2430f7878473bd Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Feb 2023 19:58:37 +0000 Subject: [PATCH 2258/3441] deps: update cloud client dependencies (#2526) --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 5a5ca1881509..2d6bcf6bda23 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.31.0 + 2.32.1 pom import @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.16.0 + 1.17.0 pom import @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.18.0 + 2.19.0 test From 62ff092908bbc2cf26e8cb9426bdc0f45d1b2b9e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Feb 2023 19:59:45 +0000 Subject: [PATCH 2259/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20230210-2.0.0 (#2530) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2d6bcf6bda23..351ab4451cdd 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20230114-2.0.0 + v2-rev20230210-2.0.0 3.3.0 11.0.0 From 56fa0be00a47bb8fda34cd8fbea79b48e141dc74 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Feb 2023 20:06:57 +0000 Subject: [PATCH 2260/3441] build(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.5.0 (#2529) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 351ab4451cdd..7641422d5513 100644 --- a/pom.xml +++ b/pom.xml @@ -223,7 +223,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.1 + 3.5.0 html From 554e75df92aa0dbd16d65d51a6c845c914062059 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Feb 2023 20:07:12 +0000 Subject: [PATCH 2261/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.20 (#2528) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index abf6496356c6..251420f50baa 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.19 + 0.9.20 true com.example.bigquery.NativeImageBigquerySample From 5fe5e74afd4af873213455010b73dcf8240e008d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Feb 2023 20:07:27 +0000 Subject: [PATCH 2262/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.20 (#2527) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 251420f50baa..dade35004458 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.19 + 0.9.20 test From 74893e45f49dae5a3c090bb3d865eee0380f73da Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Feb 2023 20:07:44 +0000 Subject: [PATCH 2263/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.8.0 (#2524) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.8.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1883965cdf61..e4f766990d92 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.7.0 + 26.8.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index dade35004458..eafb3e8f39d4 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.7.0 + 26.8.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0b7d3ebe833c..a6c3affef9e7 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.7.0 + 26.8.0 pom import From 5f2899d1835faa0ccb2cbccc8060d2b86596fc2e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Feb 2023 20:08:43 +0000 Subject: [PATCH 2264/3441] build(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.0 (#2517) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- benchmark/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index bca0b8ae5aa6..99259717984d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -75,7 +75,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.0.0 + 3.1.0 true diff --git a/samples/pom.xml b/samples/pom.xml index f2bb76550cfb..508f6975eae0 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -55,7 +55,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.0.0 + 3.1.0 true diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a6c3affef9e7..371c5e835d45 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -109,7 +109,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.0.0 + 3.1.0 true From a537806dc4440c0c6c90f5543d5a3c63dbd5fb75 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Feb 2023 20:09:02 +0000 Subject: [PATCH 2265/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.22.0 (#2516) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.22.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e4f766990d92..932091b321b0 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.21.0 + 2.22.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8cd02e07f03f..f86a702216ea 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.21.0 + 2.22.0 From 1de74f879c4ff037cc9e045873ba83f325da1682 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Feb 2023 20:20:17 +0000 Subject: [PATCH 2266/3441] chore(main): release 2.23.0 (#2525) :robot: I have created a release *beep* *boop* --- ## [2.23.0](https://togithub.com/googleapis/java-bigquery/compare/v2.22.0...v2.23.0) (2023-02-22) ### Features * Add support for session_id in load jobs ([#2519](https://togithub.com/googleapis/java-bigquery/issues/2519)) ([e431c17](https://togithub.com/googleapis/java-bigquery/commit/e431c17efe0f69d084f119463ca8bdb25047a7fe)) ### Dependencies * Update cloud client dependencies ([#2526](https://togithub.com/googleapis/java-bigquery/issues/2526)) ([4d88ccc](https://togithub.com/googleapis/java-bigquery/commit/4d88ccc22b86ae83220324c53c2430f7878473bd)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.13.0 ([#2533](https://togithub.com/googleapis/java-bigquery/issues/2533)) ([ed2cb74](https://togithub.com/googleapis/java-bigquery/commit/ed2cb7436c2ba38bdc4975abd12ba88d231087db)) * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230210-2.0.0 ([#2530](https://togithub.com/googleapis/java-bigquery/issues/2530)) ([62ff092](https://togithub.com/googleapis/java-bigquery/commit/62ff092908bbc2cf26e8cb9426bdc0f45d1b2b9e)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.3.0 ([#2534](https://togithub.com/googleapis/java-bigquery/issues/2534)) ([f1bcc33](https://togithub.com/googleapis/java-bigquery/commit/f1bcc331d61f966f9c0c29dd3dccb122cafc874d)) * Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.20 ([#2527](https://togithub.com/googleapis/java-bigquery/issues/2527)) ([5fe5e74](https://togithub.com/googleapis/java-bigquery/commit/5fe5e74afd4af873213455010b73dcf8240e008d)) * Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.20 ([#2528](https://togithub.com/googleapis/java-bigquery/issues/2528)) ([554e75d](https://togithub.com/googleapis/java-bigquery/commit/554e75df92aa0dbd16d65d51a6c845c914062059)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 17 +++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 24 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c7bceabcca3..6e7623e2c0ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [2.23.0](https://github.com/googleapis/java-bigquery/compare/v2.22.0...v2.23.0) (2023-02-22) + + +### Features + +* Add support for session_id in load jobs ([#2519](https://github.com/googleapis/java-bigquery/issues/2519)) ([e431c17](https://github.com/googleapis/java-bigquery/commit/e431c17efe0f69d084f119463ca8bdb25047a7fe)) + + +### Dependencies + +* Update cloud client dependencies ([#2526](https://github.com/googleapis/java-bigquery/issues/2526)) ([4d88ccc](https://github.com/googleapis/java-bigquery/commit/4d88ccc22b86ae83220324c53c2430f7878473bd)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.13.0 ([#2533](https://github.com/googleapis/java-bigquery/issues/2533)) ([ed2cb74](https://github.com/googleapis/java-bigquery/commit/ed2cb7436c2ba38bdc4975abd12ba88d231087db)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230210-2.0.0 ([#2530](https://github.com/googleapis/java-bigquery/issues/2530)) ([62ff092](https://github.com/googleapis/java-bigquery/commit/62ff092908bbc2cf26e8cb9426bdc0f45d1b2b9e)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.3.0 ([#2534](https://github.com/googleapis/java-bigquery/issues/2534)) ([f1bcc33](https://github.com/googleapis/java-bigquery/commit/f1bcc331d61f966f9c0c29dd3dccb122cafc874d)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.20 ([#2527](https://github.com/googleapis/java-bigquery/issues/2527)) ([5fe5e74](https://github.com/googleapis/java-bigquery/commit/5fe5e74afd4af873213455010b73dcf8240e008d)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.20 ([#2528](https://github.com/googleapis/java-bigquery/issues/2528)) ([554e75d](https://github.com/googleapis/java-bigquery/commit/554e75df92aa0dbd16d65d51a6c845c914062059)) + ## [2.22.0](https://github.com/googleapis/java-bigquery/compare/v2.21.0...v2.22.0) (2023-02-08) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 99259717984d..56aed65ead73 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.22.1-SNAPSHOT + 2.23.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 74c1d14bfae5..6751960f6318 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.22.1-SNAPSHOT + 2.23.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.22.1-SNAPSHOT + 2.23.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7641422d5513..1d753411a559 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.22.1-SNAPSHOT + 2.23.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.22.1-SNAPSHOT + 2.23.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f4ad58b54e32..a0bf0b65b756 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.22.1-SNAPSHOT + 2.23.0 diff --git a/versions.txt b/versions.txt index e739f309787b..5079a64ff5c3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.22.0:2.22.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.23.0:2.23.0 \ No newline at end of file From e393728a2afb7fb65e6be3ddb06cf23c68f4ab69 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Feb 2023 20:36:41 +0000 Subject: [PATCH 2267/3441] chore(main): release 2.23.1-SNAPSHOT (#2537) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 56aed65ead73..49baafaadf6b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.23.0 + 2.23.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6751960f6318..b2231c9ace79 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.23.0 + 2.23.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.23.0 + 2.23.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1d753411a559..270619d8d083 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.23.0 + 2.23.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.23.0 + 2.23.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a0bf0b65b756..959798bfa539 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.23.0 + 2.23.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 5079a64ff5c3..581e895c4da8 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.23.0:2.23.0 \ No newline at end of file +google-cloud-bigquery:2.23.0:2.23.1-SNAPSHOT \ No newline at end of file From 25885821328ecb72c57d9ebeb548a6710d186381 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 2 Mar 2023 18:40:58 +0000 Subject: [PATCH 2268/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.4.0 (#2547) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.4.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 +++--- pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 932091b321b0..224e74b2417a 100644 --- a/README.md +++ b/README.md @@ -52,20 +52,20 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.8.0') +implementation platform('com.google.cloud:libraries-bom:26.9.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.22.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.23.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.22.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.23.0" ``` ## Authentication diff --git a/pom.xml b/pom.xml index 270619d8d083..073a9a02cac2 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20230210-2.0.0 - 3.3.0 + 3.4.0 11.0.0 From 2c09c8736e1bcf544068f95fc23cc50cb04a2d9b Mon Sep 17 00:00:00 2001 From: Farhan Ahmed Date: Thu, 2 Mar 2023 13:43:34 -0500 Subject: [PATCH 2269/3441] doc: Array of Structure Query Code sample (#2540) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Array of Structure Query Code sample * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 1 + ...ueryWithArrayOfStructsNamedParameters.java | 68 +++++++++++++++++++ ...ryWithArrayOfStructsNamedParametersIT.java | 58 ++++++++++++++++ 3 files changed, 127 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayOfStructsNamedParametersIT.java diff --git a/README.md b/README.md index 224e74b2417a..c5175984b0b0 100644 --- a/README.md +++ b/README.md @@ -211,6 +211,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Query Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | | Query Script | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | | Query Total Rows | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java) | +| Query With Array Of Structs Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java) | | Query With Array Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | | Query With Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java) | | Query With Named Types Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java) | diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java new file mode 100644 index 000000000000..00cae0aa9c1f --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java @@ -0,0 +1,68 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_array_structs_params_named] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableResult; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class QueryWithArrayOfStructsNamedParameters { + + public static void main(String[] args) { + queryWithArrayOfStructsNamedParameters(); + } + + public static void queryWithArrayOfStructsNamedParameters() { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + Map structMap = new HashMap<>(); + structMap.put("stringField", QueryParameterValue.string("test-stringField")); + QueryParameterValue structQueryParam = QueryParameterValue.struct(structMap); + List arrayOfStructs = new ArrayList<>(); + arrayOfStructs.add(structQueryParam); + + String query = "SELECT (@arrayOfStructField) AS record"; + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .setUseLegacySql(false) + .addNamedParameter( + "arrayOfStructField", + QueryParameterValue.array(arrayOfStructs.toArray(), StandardSQLTypeName.STRING)) + .build(); + TableResult results = bigquery.query(queryConfig); + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s", val.toString()))); + System.out.println("Query with Array of struct parameters performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_array_structs_params_named] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayOfStructsNamedParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayOfStructsNamedParametersIT.java new file mode 100644 index 000000000000..f0b524dda4c3 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayOfStructsNamedParametersIT.java @@ -0,0 +1,58 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryWithArrayOfStructsNamedParametersIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testQueryWithNamedParameters() { + QueryWithArrayOfStructsNamedParameters.queryWithArrayOfStructsNamedParameters(); + assertThat(bout.toString()) + .contains("Query with Array of struct parameters performed successfully."); + } +} From 60e45e457edfd257e16e37f0c0d5049dd722f0e3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 2 Mar 2023 18:43:59 +0000 Subject: [PATCH 2270/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.18.0 (#2546) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.18.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 073a9a02cac2..2efe9ad5f98a 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.17.0 + 1.18.0 pom import From fedb96b3c5c2366061ce3e4bb5714b847b2d7111 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 2 Mar 2023 20:48:50 +0000 Subject: [PATCH 2271/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.33.1 (#2552) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2efe9ad5f98a..be0443a3008d 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.32.1 + 2.33.1 pom import From 12750896a18504730688a5d3e726d55ccd6adc12 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 2 Mar 2023 21:01:18 +0000 Subject: [PATCH 2272/3441] build(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.11.0 (#2542) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 49baafaadf6b..f23f2797c069 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -37,7 +37,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.10.1 + 3.11.0 org.apache.maven.plugins From 4eb7332aa8488e9bc8f04998a524e6df491d78af Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 2 Mar 2023 21:02:12 +0000 Subject: [PATCH 2273/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.14.0 (#2544) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/google-cloud-java) | `2.13.0` -> `2.14.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.14.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.14.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.14.0/compatibility-slim/2.13.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.14.0/confidence-slim/2.13.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index be0443a3008d..6080df3d4f62 100644 --- a/pom.xml +++ b/pom.xml @@ -160,7 +160,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.13.0 + 2.14.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f86a702216ea..cb388961f5e0 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.13.0 + 2.14.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 959798bfa539..842ab47305a2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.13.0 + 2.14.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 371c5e835d45..218555cee92b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.13.0 + 2.14.0 test From 317601fc2164ee42c443c73b700866bab121218d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 2 Mar 2023 21:02:48 +0000 Subject: [PATCH 2274/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.20.0 (#2521) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index cb388961f5e0..834a2a1a4e5e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.18.4 + 2.20.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 842ab47305a2..b0182f5a6e28 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.18.4 + 2.20.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 218555cee92b..7321e1338626 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.18.4 + 2.20.0 test From 20496e3cdb138c1955d63494c356f98941dd888d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 2 Mar 2023 21:04:14 +0000 Subject: [PATCH 2275/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.23.0 (#2538) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.22.0` -> `2.23.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.23.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.23.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.23.0/compatibility-slim/2.22.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.23.0/confidence-slim/2.22.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.23.0`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2230-httpsgithubcomgoogleapisjava-bigquerycomparev2220v2230-2023-02-22) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.22.0...v2.23.0) ##### Features - Add support for session_id in load jobs ([#​2519](https://togithub.com/googleapis/java-bigquery/issues/2519)) ([e431c17](https://togithub.com/googleapis/java-bigquery/commit/e431c17efe0f69d084f119463ca8bdb25047a7fe)) ##### Dependencies - Update cloud client dependencies ([#​2526](https://togithub.com/googleapis/java-bigquery/issues/2526)) ([4d88ccc](https://togithub.com/googleapis/java-bigquery/commit/4d88ccc22b86ae83220324c53c2430f7878473bd)) - Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.13.0 ([#​2533](https://togithub.com/googleapis/java-bigquery/issues/2533)) ([ed2cb74](https://togithub.com/googleapis/java-bigquery/commit/ed2cb7436c2ba38bdc4975abd12ba88d231087db)) - Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230210-2.0.0 ([#​2530](https://togithub.com/googleapis/java-bigquery/issues/2530)) ([62ff092](https://togithub.com/googleapis/java-bigquery/commit/62ff092908bbc2cf26e8cb9426bdc0f45d1b2b9e)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.3.0 ([#​2534](https://togithub.com/googleapis/java-bigquery/issues/2534)) ([f1bcc33](https://togithub.com/googleapis/java-bigquery/commit/f1bcc331d61f966f9c0c29dd3dccb122cafc874d)) - Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.20 ([#​2527](https://togithub.com/googleapis/java-bigquery/issues/2527)) ([5fe5e74](https://togithub.com/googleapis/java-bigquery/commit/5fe5e74afd4af873213455010b73dcf8240e008d)) - Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.20 ([#​2528](https://togithub.com/googleapis/java-bigquery/issues/2528)) ([554e75d](https://togithub.com/googleapis/java-bigquery/commit/554e75df92aa0dbd16d65d51a6c845c914062059))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c5175984b0b0..b01a38c0ed57 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.22.0 + 2.23.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 834a2a1a4e5e..d896f4f2bc11 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.22.0 + 2.23.0 From ad78ebb35a5b6d7d86d59e6c0fa078c68a65a275 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 2 Mar 2023 21:06:12 +0000 Subject: [PATCH 2276/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.14.0 (#2545) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1](https://togithub.com/googleapis/google-cloud-java) | `2.13.0` -> `2.14.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.14.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.14.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.14.0/compatibility-slim/2.13.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.14.0/confidence-slim/2.13.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6080df3d4f62..40faa824c99a 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.13.0 + 2.14.0 test From 5507b94b9747d17d23f7774e6e39774c10aa0c61 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 2 Mar 2023 21:18:12 +0000 Subject: [PATCH 2277/3441] chore(main): release 2.23.1 (#2551) :robot: I have created a release *beep* *boop* --- ## [2.23.1](https://togithub.com/googleapis/java-bigquery/compare/v2.23.0...v2.23.1) (2023-03-02) ### Dependencies * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.14.0 ([#2545](https://togithub.com/googleapis/java-bigquery/issues/2545)) ([ad78ebb](https://togithub.com/googleapis/java-bigquery/commit/ad78ebb35a5b6d7d86d59e6c0fa078c68a65a275)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.18.0 ([#2546](https://togithub.com/googleapis/java-bigquery/issues/2546)) ([60e45e4](https://togithub.com/googleapis/java-bigquery/commit/60e45e457edfd257e16e37f0c0d5049dd722f0e3)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.4.0 ([#2547](https://togithub.com/googleapis/java-bigquery/issues/2547)) ([2588582](https://togithub.com/googleapis/java-bigquery/commit/25885821328ecb72c57d9ebeb548a6710d186381)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 9 +++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e7623e2c0ab..af053e1b5217 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## [2.23.1](https://github.com/googleapis/java-bigquery/compare/v2.23.0...v2.23.1) (2023-03-02) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.14.0 ([#2545](https://github.com/googleapis/java-bigquery/issues/2545)) ([ad78ebb](https://github.com/googleapis/java-bigquery/commit/ad78ebb35a5b6d7d86d59e6c0fa078c68a65a275)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.18.0 ([#2546](https://github.com/googleapis/java-bigquery/issues/2546)) ([60e45e4](https://github.com/googleapis/java-bigquery/commit/60e45e457edfd257e16e37f0c0d5049dd722f0e3)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.4.0 ([#2547](https://github.com/googleapis/java-bigquery/issues/2547)) ([2588582](https://github.com/googleapis/java-bigquery/commit/25885821328ecb72c57d9ebeb548a6710d186381)) + ## [2.23.0](https://github.com/googleapis/java-bigquery/compare/v2.22.0...v2.23.0) (2023-02-22) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f23f2797c069..947efa2a717d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.23.1-SNAPSHOT + 2.23.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b2231c9ace79..089818e9a595 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.23.1-SNAPSHOT + 2.23.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.23.1-SNAPSHOT + 2.23.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 40faa824c99a..a64de01b4e6a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.23.1-SNAPSHOT + 2.23.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.23.1-SNAPSHOT + 2.23.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b0182f5a6e28..2ed46c36eaaf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.23.1-SNAPSHOT + 2.23.1 diff --git a/versions.txt b/versions.txt index 581e895c4da8..f25ff4976860 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.23.0:2.23.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.23.1:2.23.1 \ No newline at end of file From 2448d11e70c975b7ba22565315e1783c2bc62c4b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 2 Mar 2023 21:30:23 +0000 Subject: [PATCH 2278/3441] chore(main): release 2.23.2-SNAPSHOT (#2554) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 947efa2a717d..b759488e31f5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.23.1 + 2.23.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 089818e9a595..258dd7d79eb1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.23.1 + 2.23.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.23.1 + 2.23.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a64de01b4e6a..9662f000d5e7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.23.1 + 2.23.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.23.1 + 2.23.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2ed46c36eaaf..00f705c006e2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.23.1 + 2.23.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index f25ff4976860..ab456e075ed4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.23.1:2.23.1 \ No newline at end of file +google-cloud-bigquery:2.23.1:2.23.2-SNAPSHOT \ No newline at end of file From a71b1b2abb568bd1ed088f7bd4b77f93a68ec95e Mon Sep 17 00:00:00 2001 From: shollyman Date: Thu, 2 Mar 2023 13:54:12 -0800 Subject: [PATCH 2279/3441] docs: remove stale snippet comment (#2555) related: internal issue 270264394 --- .../src/main/java/com/example/bigquery/CreateDatasetAws.java | 1 - 1 file changed, 1 deletion(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java b/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java index f5b4f0cdc844..19ef0eca24e8 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java @@ -30,7 +30,6 @@ public static void main(String[] args) { // TODO(developer): Replace these variables before running the sample. String projectId = "MY_PROJECT_ID"; String datasetName = "MY_DATASET_NAME"; - // Note: As of now location only supports aws-us-east-1 String location = "aws-us-east-1"; createDatasetAws(projectId, datasetName, location); } From f4b841265d81c63a7e76bc60b0d30f20beb74634 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 2 Mar 2023 17:01:09 -0500 Subject: [PATCH 2280/3441] chore: generate non-cloud client library (#1770) (#2541) * chore: add proto group prefix * add test case for generating google maps * run new tests in ci * parameterize group id for proto artifacts * use helper to compute group id of proto artifacts * verify non cloud library generation * change artifact name in golden * restore new client test * change description * change description * add comments to _proto_group_id Source-Link: https://github.com/googleapis/synthtool/commit/269a915036d3523ad357af5af597a8b0f0f783cc Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:9bf82029163bc06d58f56682afd1893a42ace3e04b0359accb86f79c6ecdc9f9 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index a5361a30a366..6b83f060e758 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:e62f3ea524b11c1cd6ff7f80362736d86c0056631346b5b106a421686fce2726 + digest: sha256:9bf82029163bc06d58f56682afd1893a42ace3e04b0359accb86f79c6ecdc9f9 From eb4597314fad72bbdb666a832f0f15f732f40817 Mon Sep 17 00:00:00 2001 From: Jonathan Beluch Date: Tue, 7 Mar 2023 12:28:58 -0700 Subject: [PATCH 2281/3441] fix: external table definition parquet format options (#2535) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: set parquet format options for external tables * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * fix: set parquet format options for external tables * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * fix: set parquet format options for external tables --------- Co-authored-by: Owl Bot Co-authored-by: Neenu Shaji --- README.md | 4 ++-- .../cloud/bigquery/ExternalTableDefinition.java | 3 +++ .../com/google/cloud/bigquery/FormatOptions.java | 2 +- .../bigquery/ExternalTableDefinitionTest.java | 15 +++++++++++++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b01a38c0ed57..907a391fb077 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.23.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.23.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.23.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.23.1" ``` ## Authentication diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index cb327a3a9c3f..18c78e75034d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -311,6 +311,9 @@ com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataC if (getDecimalTargetTypes() != null) { externalConfigurationPb.setDecimalTargetTypes(getDecimalTargetTypes()); } + if (getFormatOptions() != null && FormatOptions.PARQUET.equals(getFormatOptions().getType())) { + externalConfigurationPb.setParquetOptions(((ParquetOptions) getFormatOptions()).toPb()); + } if (getFormatOptions() != null && FormatOptions.AVRO.equals(getFormatOptions().getType())) { externalConfigurationPb.setAvroOptions(((AvroOptions) getFormatOptions()).toPb()); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java index c4f411175219..9ea5600ddc6b 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java @@ -107,7 +107,7 @@ public static FormatOptions googleSheets() { /** Default options for PARQUET format. */ public static FormatOptions parquet() { - return new FormatOptions(PARQUET); + return ParquetOptions.newBuilder().build(); } /** Default options for the ORC format. */ diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index b7b9531e559e..4a74091620d1 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -52,6 +52,7 @@ public class ExternalTableDefinitionTest { private static final Boolean AUTODETECT = true; private static final AvroOptions AVRO_OPTIONS = AvroOptions.newBuilder().build(); private static final CsvOptions CSV_OPTIONS = CsvOptions.newBuilder().build(); + private static final ParquetOptions PARQUET_OPTIONS = ParquetOptions.newBuilder().build(); private static final HivePartitioningOptions HIVE_PARTITIONING_OPTIONS = HivePartitioningOptions.newBuilder() .setMode("AUTO") @@ -71,6 +72,9 @@ public class ExternalTableDefinitionTest { private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION_AVRO = ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, AVRO_OPTIONS).build(); + private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION_PARQUET = + ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, PARQUET_OPTIONS).build(); + @Test public void testToBuilder() { compareExternalTableDefinition( @@ -136,6 +140,17 @@ public void testToAndFromPb() { externalTableDefinition, ExternalTableDefinition.fromPb(externalTableDefinition.toPb())); } + @Test + public void testToAndFromPbParquet() { + compareExternalTableDefinition( + EXTERNAL_TABLE_DEFINITION_PARQUET, + ExternalTableDefinition.fromPb(EXTERNAL_TABLE_DEFINITION_PARQUET.toPb())); + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, PARQUET_OPTIONS).build(); + compareExternalTableDefinition( + externalTableDefinition, ExternalTableDefinition.fromPb(externalTableDefinition.toPb())); + } + private void compareExternalTableDefinition( ExternalTableDefinition expected, ExternalTableDefinition value) { assertEquals(expected, value); From 19385e63ddc29b178009eb15edcd724c2fdb4252 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 18:28:13 +0000 Subject: [PATCH 2282/3441] chore(main): release 2.23.2 (#2556) :robot: I have created a release *beep* *boop* --- ## [2.23.2](https://togithub.com/googleapis/java-bigquery/compare/v2.23.1...v2.23.2) (2023-03-07) ### Bug Fixes * External table definition parquet format options ([#2535](https://togithub.com/googleapis/java-bigquery/issues/2535)) ([eb45973](https://togithub.com/googleapis/java-bigquery/commit/eb4597314fad72bbdb666a832f0f15f732f40817)) ### Documentation * Remove stale snippet comment ([#2555](https://togithub.com/googleapis/java-bigquery/issues/2555)) ([a71b1b2](https://togithub.com/googleapis/java-bigquery/commit/a71b1b2abb568bd1ed088f7bd4b77f93a68ec95e)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index af053e1b5217..7757dfd594dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [2.23.2](https://github.com/googleapis/java-bigquery/compare/v2.23.1...v2.23.2) (2023-03-07) + + +### Bug Fixes + +* External table definition parquet format options ([#2535](https://github.com/googleapis/java-bigquery/issues/2535)) ([eb45973](https://github.com/googleapis/java-bigquery/commit/eb4597314fad72bbdb666a832f0f15f732f40817)) + + +### Documentation + +* Remove stale snippet comment ([#2555](https://github.com/googleapis/java-bigquery/issues/2555)) ([a71b1b2](https://github.com/googleapis/java-bigquery/commit/a71b1b2abb568bd1ed088f7bd4b77f93a68ec95e)) + ## [2.23.1](https://github.com/googleapis/java-bigquery/compare/v2.23.0...v2.23.1) (2023-03-02) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b759488e31f5..177ce5af8144 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.23.2-SNAPSHOT + 2.23.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 258dd7d79eb1..2f7613e524ca 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.23.2-SNAPSHOT + 2.23.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.23.2-SNAPSHOT + 2.23.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9662f000d5e7..1a0439262b32 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.23.2-SNAPSHOT + 2.23.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.23.2-SNAPSHOT + 2.23.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 00f705c006e2..8bdcef7c0e6a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.23.2-SNAPSHOT + 2.23.2 diff --git a/versions.txt b/versions.txt index ab456e075ed4..777c200678d7 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.23.1:2.23.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.23.2:2.23.2 \ No newline at end of file From 9daab1720ca973a6045b0287468bd05204c24ab4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 8 Mar 2023 18:42:15 +0000 Subject: [PATCH 2283/3441] chore(main): release 2.23.3-SNAPSHOT (#2560) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- README.md | 2 +- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 907a391fb077..6647510df046 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.9.0') +implementation platform('com.google.cloud:libraries-bom:26.10.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 177ce5af8144..8d973a3fa568 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.23.2 + 2.23.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2f7613e524ca..c2c9ff691464 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.23.2 + 2.23.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.23.2 + 2.23.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1a0439262b32..a69d6b715a48 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.23.2 + 2.23.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.23.2 + 2.23.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8bdcef7c0e6a..b64cc4a38e49 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.23.2 + 2.23.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 777c200678d7..ffccc8c3d5c7 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.23.2:2.23.2 \ No newline at end of file +google-cloud-bigquery:2.23.2:2.23.3-SNAPSHOT \ No newline at end of file From 2186c64e523e030a777eec447bc1f22802f56617 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Fri, 10 Mar 2023 15:43:44 -0500 Subject: [PATCH 2284/3441] feat: add support for clone (#2553) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat add cupport for clone * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: fix test * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: Clone definition is not a table definition * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: remove CLONE from Table definition * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: fix license header * chore: check for null * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: add clirr ignored differences * chore: fix test --------- Co-authored-by: Owl Bot --- README.md | 4 +- .../clirr-ignored-differences.xml | 6 ++ .../cloud/bigquery/CloneDefinition.java | 85 +++++++++++++++++++ .../cloud/bigquery/CopyJobConfiguration.java | 4 +- .../java/com/google/cloud/bigquery/Table.java | 6 ++ .../com/google/cloud/bigquery/TableInfo.java | 23 +++++ .../cloud/bigquery/CloneDefinitionTest.java | 58 +++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 54 ++++++++++++ .../cloud/bigquery/it/ITRemoteUDFTest.java | 2 +- 9 files changed, 237 insertions(+), 5 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CloneDefinition.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CloneDefinitionTest.java diff --git a/README.md b/README.md index 6647510df046..7eb7929c1e67 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.23.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.23.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.23.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.23.2" ``` ## Authentication diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 6386c5037191..5fe634cca707 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -44,4 +44,10 @@ com/google/cloud/bigquery/TableInfo* *DefaultCollation(*) + + + 7013 + com/google/cloud/bigquery/TableInfo* + *CloneDefinition(*) + \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CloneDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CloneDefinition.java new file mode 100644 index 000000000000..58594fe321f1 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CloneDefinition.java @@ -0,0 +1,85 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.client.util.DateTime; +import com.google.api.core.BetaApi; +import com.google.auto.value.AutoValue; +import com.google.common.annotations.VisibleForTesting; +import java.io.Serializable; +import javax.annotation.Nullable; + +@AutoValue +@BetaApi +public abstract class CloneDefinition implements Serializable { + + private static final long serialVersionUID = 1460853787400450649L; + + public static Builder newBuilder() { + return new AutoValue_CloneDefinition.Builder(); + } + + static CloneDefinition fromPb( + com.google.api.services.bigquery.model.CloneDefinition cloneDefinition) { + Builder builder = newBuilder(); + + if (cloneDefinition.getCloneTime() != null) { + builder.setCloneTime(cloneDefinition.getCloneTime().toString()); + } + if (cloneDefinition.getBaseTableReference() != null) { + builder.setBaseTableId(TableId.fromPb(cloneDefinition.getBaseTableReference())); + } + + return builder.build(); + } + + @Nullable + public abstract TableId getBaseTableId(); + + @Nullable + public abstract String getCloneTime(); + + /** Returns a builder for a Clone table definition. */ + @VisibleForTesting + public abstract Builder toBuilder(); + + com.google.api.services.bigquery.model.CloneDefinition toPb() { + + com.google.api.services.bigquery.model.CloneDefinition cloneDefinition = + new com.google.api.services.bigquery.model.CloneDefinition(); + cloneDefinition.setBaseTableReference(getBaseTableId().toPb()); + cloneDefinition.setCloneTime(DateTime.parseRfc3339(getCloneTime())); + + return cloneDefinition; + } + + @AutoValue.Builder + public abstract static class Builder { + + /** Reference describing the ID of the table that was Cloned. * */ + public abstract Builder setBaseTableId(TableId baseTableId); + + /** + * The time at which the base table was Cloned. This value is reported in the JSON response + * using RFC3339 format. * + */ + public abstract Builder setCloneTime(String dateTime); + + /** Creates a {@code CloneDefinition} object. */ + public abstract CloneDefinition build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java index fe67986fc619..37955fec09ee 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java @@ -128,8 +128,8 @@ public Builder setDestinationTable(TableId destinationTable) { } /** - * Sets the supported operation types (COPY, SNAPSHOT or RESTORE) in table copy job. More info: - * https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#operationtype + * Sets the supported operation types (COPY, CLONE, SNAPSHOT or RESTORE) in table copy job. More + * info: https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#operationtype */ public Builder setOperationType(String operationType) { this.operationType = operationType; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java index 8303566d2a7c..3e67e8d75005 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java @@ -162,6 +162,12 @@ public Builder setDefaultCollation(String defaultCollation) { return this; } + @Override + public TableInfo.Builder setCloneDefinition(CloneDefinition cloneDefinition) { + infoBuilder.setCloneDefinition(cloneDefinition); + return this; + } + @Override public Table build() { return new Table(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java index cfe7003006e0..19e9de2b795a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -74,6 +74,8 @@ public Table apply(TableInfo tableInfo) { private final Boolean requirePartitionFilter; private final String defaultCollation; + private final CloneDefinition cloneDefinition; + /** A builder for {@code TableInfo} objects. */ public abstract static class Builder { @@ -138,6 +140,8 @@ public Builder setRequirePartitionFilter(Boolean requirePartitionFilter) { } public abstract Builder setDefaultCollation(String defaultCollation); + + public abstract Builder setCloneDefinition(CloneDefinition cloneDefinition); } static class BuilderImpl extends Builder { @@ -159,6 +163,7 @@ static class BuilderImpl extends Builder { private Labels labels = Labels.ZERO; private Boolean requirePartitionFilter; private String defaultCollation; + private CloneDefinition cloneDefinition; BuilderImpl() {} @@ -180,6 +185,7 @@ static class BuilderImpl extends Builder { this.labels = tableInfo.labels; this.requirePartitionFilter = tableInfo.requirePartitionFilter; this.defaultCollation = tableInfo.defaultCollation; + this.cloneDefinition = tableInfo.cloneDefinition; } BuilderImpl(Table tablePb) { @@ -205,6 +211,9 @@ static class BuilderImpl extends Builder { this.labels = Labels.fromPb(tablePb.getLabels()); this.requirePartitionFilter = tablePb.getRequirePartitionFilter(); this.defaultCollation = tablePb.getDefaultCollation(); + if (tablePb.getCloneDefinition() != null) { + this.cloneDefinition = CloneDefinition.fromPb(tablePb.getCloneDefinition()); + } } @Override @@ -309,6 +318,11 @@ public Builder setDefaultCollation(String defaultCollation) { return this; } + public Builder setCloneDefinition(CloneDefinition cloneDefinition) { + this.cloneDefinition = cloneDefinition; + return this; + } + @Override public TableInfo build() { return new TableInfo(this); @@ -333,6 +347,7 @@ public TableInfo build() { this.labels = builder.labels; this.requirePartitionFilter = builder.requirePartitionFilter; this.defaultCollation = builder.defaultCollation; + this.cloneDefinition = builder.cloneDefinition; } /** Returns the hash of the table resource. */ @@ -439,6 +454,10 @@ public String getDefaultCollation() { return defaultCollation; } + public CloneDefinition getCloneDefinition() { + return cloneDefinition; + } + /** Returns a builder for the table object. */ public Builder toBuilder() { return new BuilderImpl(this); @@ -464,6 +483,7 @@ public String toString() { .add("labels", labels) .add("requirePartitionFilter", requirePartitionFilter) .add("defaultCollation", defaultCollation) + .add("cloneDefinition", cloneDefinition) .toString(); } @@ -528,6 +548,9 @@ Table toPb() { if (defaultCollation != null) { tablePb.setDefaultCollation(defaultCollation); } + if (cloneDefinition != null) { + tablePb.setCloneDefinition(cloneDefinition.toPb()); + } return tablePb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CloneDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CloneDefinitionTest.java new file mode 100644 index 000000000000..33bcf5f405b1 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CloneDefinitionTest.java @@ -0,0 +1,58 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class CloneDefinitionTest { + private static final TableId BASE_TABLE_ID = TableId.of("DATASET_NAME", "BASE_TABLE_NAME"); + private static final String CLONE_TIME = "2021-05-19T11:32:26.553Z"; + private static final CloneDefinition CLONETABLE_DEFINITION = + CloneDefinition.newBuilder().setBaseTableId(BASE_TABLE_ID).setCloneTime(CLONE_TIME).build(); + + @Test + public void testToBuilder() { + compareCloneTableDefinition(CLONETABLE_DEFINITION, CLONETABLE_DEFINITION.toBuilder().build()); + CloneDefinition cloneTableDefinition = + CLONETABLE_DEFINITION.toBuilder().setCloneTime("2021-05-20T11:32:26.553Z").build(); + assertEquals("2021-05-20T11:32:26.553Z", cloneTableDefinition.getCloneTime()); + } + + @Test + public void testBuilder() { + assertEquals(BASE_TABLE_ID, CLONETABLE_DEFINITION.getBaseTableId()); + assertEquals(CLONE_TIME, CLONETABLE_DEFINITION.getCloneTime()); + CloneDefinition cloneDefinition = + CloneDefinition.newBuilder().setBaseTableId(BASE_TABLE_ID).setCloneTime(CLONE_TIME).build(); + assertEquals(CLONETABLE_DEFINITION, cloneDefinition); + } + + @Test + public void testToAndFromPb() { + CloneDefinition cloneDefinition = CLONETABLE_DEFINITION.toBuilder().build(); + assertTrue(CloneDefinition.fromPb(cloneDefinition.toPb()) instanceof CloneDefinition); + compareCloneTableDefinition(cloneDefinition, CloneDefinition.fromPb(cloneDefinition.toPb())); + } + + private void compareCloneTableDefinition(CloneDefinition expected, CloneDefinition value) { + assertEquals(expected.getBaseTableId(), value.getBaseTableId()); + assertEquals(expected.getCloneTime(), value.getCloneTime()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 0bbe1efdd143..bf59c2b67e3f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -54,6 +54,7 @@ import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryResult; import com.google.cloud.bigquery.BigQuerySQLException; +import com.google.cloud.bigquery.CloneDefinition; import com.google.cloud.bigquery.Clustering; import com.google.cloud.bigquery.Connection; import com.google.cloud.bigquery.ConnectionProperty; @@ -4334,6 +4335,7 @@ public void testSnapshotTableCopyJob() throws InterruptedException { assertNotNull(snapshotTable); assertEquals(snapshotTableId.getDataset(), snapshotTable.getTableId().getDataset()); assertEquals(snapshotTableName, snapshotTable.getTableId().getTable()); + System.out.println(snapshotTable.getDefinition()); assertTrue(snapshotTable.getDefinition() instanceof SnapshotTableDefinition); assertEquals(DDL_TABLE_SCHEMA, snapshotTable.getDefinition().getSchema()); assertNotNull(((SnapshotTableDefinition) snapshotTable.getDefinition()).getSnapshotTime()); @@ -5179,4 +5181,56 @@ public void testCreateExternalTableWithReferenceFileSchemaParquet() { boolean success = bigquery.delete(tableId); assertEquals(true, success); } + + @Test + public void testCloneTableCopyJob() throws InterruptedException { + String sourceTableName = "test_copy_job_base_table"; + String ddlTableName = TABLE_ID_DDL.getTable(); + String cloneTableName = String.format("test_clone_table"); + // Create source table with some data in it + String ddlQuery = + String.format( + "CREATE OR REPLACE TABLE %s (" + + "TimestampField TIMESTAMP OPTIONS(description='TimestampDescription'), " + + "StringField STRING OPTIONS(description='StringDescription'), " + + "BooleanField BOOLEAN OPTIONS(description='BooleanDescription') " + + ") AS SELECT * FROM %s", + sourceTableName, ddlTableName); + QueryJobConfiguration ddlConfig = + QueryJobConfiguration.newBuilder(ddlQuery).setDefaultDataset(DatasetId.of(DATASET)).build(); + TableId sourceTableId = TableId.of(DATASET, sourceTableName); + TableResult result = bigquery.query(ddlConfig); + assertEquals(DDL_TABLE_SCHEMA, result.getSchema()); + Table remoteTable = bigquery.getTable(DATASET, sourceTableName); + assertNotNull(remoteTable); + + // Create clone table using source table as the base table + TableId cloneTableId = TableId.of(DATASET, cloneTableName); + CopyJobConfiguration cloneConfiguration = + CopyJobConfiguration.newBuilder(cloneTableId, sourceTableId) + .setOperationType("CLONE") + .build(); + Job createdJob = bigquery.create(JobInfo.of(cloneConfiguration)); + CopyJobConfiguration createdConfiguration = createdJob.getConfiguration(); + assertNotNull(createdConfiguration.getSourceTables()); + assertNotNull(createdConfiguration.getOperationType()); + assertNotNull(createdConfiguration.getDestinationTable()); + Job completedJob = createdJob.waitFor(); + assertNull(completedJob.getStatus().getError()); + + Table cloneTable = bigquery.getTable(DATASET, cloneTableName); + assertNotNull(cloneTable); + assertEquals(cloneTableId.getDataset(), cloneTable.getTableId().getDataset()); + assertEquals(cloneTableName, cloneTable.getTableId().getTable()); + assertEquals(TableDefinition.Type.TABLE, cloneTable.getDefinition().getType()); + assertTrue(cloneTable.getDefinition() instanceof StandardTableDefinition); + assertEquals(DDL_TABLE_SCHEMA, cloneTable.getDefinition().getSchema()); + assertTrue(cloneTable.getCloneDefinition() instanceof CloneDefinition); + assertEquals(sourceTableName, cloneTable.getCloneDefinition().getBaseTableId().getTable()); + assertNotNull(cloneTable.getCloneDefinition().getCloneTime()); + + // Clean up + assertTrue(remoteTable.delete()); + assertTrue(cloneTable.delete()); + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java index 7e74a8f4cd9b..7a3194e52557 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java @@ -47,7 +47,7 @@ public class ITRemoteUDFTest { private static final String ID = UUID.randomUUID().toString().substring(0, 8); private static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); - private static final String CONNECTION_ID = "test-connectin-id-" + ID; + private static final String CONNECTION_ID = "test-connection-id-" + ID; private static final String LOCATION = "US"; private static final String PARENT = LocationName.of(PROJECT_ID, LOCATION).toString(); private static final String REMOTE_ENDPOINT = "https://aaabbbccc-uc.a.run.app"; From 0ba67e2a558a3702771a6229b2fe62ddf4531c8c Mon Sep 17 00:00:00 2001 From: Farhan Ahmed Date: Mon, 13 Mar 2023 10:21:55 -0700 Subject: [PATCH 2285/3441] doc: Creating regional dataset sample (#2563) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc: Creating regional dataset sample * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 1 + .../CreateDatasetWithRegionalEndpoint.java | 49 ++++++++++++++++ .../CreateDatasetWithRegionalEndpointIT.java | 56 +++++++++++++++++++ 3 files changed, 106 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateDatasetWithRegionalEndpoint.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateDatasetWithRegionalEndpointIT.java diff --git a/README.md b/README.md index 7eb7929c1e67..a3721c7f9089 100644 --- a/README.md +++ b/README.md @@ -128,6 +128,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | | Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | | Create Dataset Aws | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | +| Create Dataset With Regional Endpoint | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetWithRegionalEndpoint.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDatasetWithRegionalEndpoint.java) | | Create External Table Aws | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java) | | Create Iam Policy | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java) | | Create Job | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateJob.java) | diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetWithRegionalEndpoint.java b/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetWithRegionalEndpoint.java new file mode 100644 index 000000000000..c19a93b42fc8 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetWithRegionalEndpoint.java @@ -0,0 +1,49 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_dataset_with_regional_endpoint] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetInfo; + +public class CreateDatasetWithRegionalEndpoint { + public static void createDatasetWithRegionalEndpoint() { + BigQuery bigquery; + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + bigquery = + BigQueryOptions.newBuilder() + .setHost("https://us-east4-bigquery.googleapis.com/") + .build() + .getService(); + String datasetName = "MyRegionalDataset"; + + DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build(); + + Dataset newDataset = bigquery.create(datasetInfo); + System.out.println("Region of dataset: " + newDataset.getLocation()); + bigquery.delete("MyRegionalDataset"); + } catch (BigQueryException e) { + System.out.println("Dataset was not created. \n" + e); + } + } +} +// [END bigquery_create_dataset_with_regional_endpoint] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetWithRegionalEndpointIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetWithRegionalEndpointIT.java new file mode 100644 index 000000000000..da6f4afd7dee --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetWithRegionalEndpointIT.java @@ -0,0 +1,56 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class CreateDatasetWithRegionalEndpointIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testCreateDatasetWithRegionalEndpoint() { + CreateDatasetWithRegionalEndpoint.createDatasetWithRegionalEndpoint(); + assertThat(bout.toString().contains("Region of dataset: us-east4")); + } +} From be53e9d88833f9fa5fed28812f9c30db24c21a0b Mon Sep 17 00:00:00 2001 From: Farhan Ahmed Date: Thu, 16 Mar 2023 14:36:12 -0400 Subject: [PATCH 2286/3441] chore: Create scorecard.yaml (#2568) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ ] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) Fixes # ☕️ If you write sample code, please follow the [samples format]( https://togithub.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md). --- .github/workflows/scorecard.yml | 72 +++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 .github/workflows/scorecard.yml diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml new file mode 100644 index 000000000000..17e5bb9d95e6 --- /dev/null +++ b/.github/workflows/scorecard.yml @@ -0,0 +1,72 @@ +# This workflow uses actions that are not certified by GitHub. They are provided +# by a third-party and are governed by separate terms of service, privacy +# policy, and support documentation. + +name: Scorecard supply-chain security +on: + # For Branch-Protection check. Only the default branch is supported. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection + branch_protection_rule: + # To guarantee Maintained check is occasionally updated. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained + schedule: + - cron: '0 0 * * *' + push: + branches: [ "main" ] + +# Declare default permissions as read only. +permissions: read-all + +jobs: + analysis: + name: Scorecard analysis + runs-on: ubuntu-latest + permissions: + # Needed to upload the results to code-scanning dashboard. + security-events: write + # Needed to publish results and get a badge (see publish_results below). + id-token: write + # Uncomment the permissions below if installing in a private repository. + # contents: read + # actions: read + + steps: + - name: "Checkout code" + uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 + with: + persist-credentials: false + + - name: "Run analysis" + uses: ossf/scorecard-action@e38b1902ae4f44df626f11ba0734b14fb91f8f86 # v2.1.2 + with: + results_file: results.sarif + results_format: sarif + # (Optional) "write" PAT token. Uncomment the `repo_token` line below if: + # - you want to enable the Branch-Protection check on a *public* repository, or + # - you are installing Scorecard on a *private* repository + # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat. + # repo_token: ${{ secrets.SCORECARD_TOKEN }} + + # Public repositories: + # - Publish results to OpenSSF REST API for easy access by consumers + # - Allows the repository to include the Scorecard badge. + # - See https://github.com/ossf/scorecard-action#publishing-results. + # For private repositories: + # - `publish_results` will always be set to `false`, regardless + # of the value entered here. + publish_results: true + + # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF + # format to the repository Actions tab. + - name: "Upload artifact" + uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + with: + name: SARIF file + path: results.sarif + retention-days: 5 + + # Upload the results to GitHub's code scanning dashboard. + - name: "Upload to code-scanning" + uses: github/codeql-action/upload-sarif@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4 + with: + sarif_file: results.sarif From 8309c1b4a4ae40f1ba85e4e5713477bae2d86a31 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Mon, 20 Mar 2023 14:30:41 -0400 Subject: [PATCH 2287/3441] chore: fix broken links in doc site (#2573) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: fix broken links in doc site * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Update package-info.java * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../google/cloud/bigquery/package-info.java | 40 +++++++++---------- .../cloud/bigquery/testing/package-info.java | 13 +++--- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java index 65f801357f58..cbd283fca234 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java @@ -18,30 +18,26 @@ * A client for BigQuery – A fully managed, petabyte scale, low cost enterprise data warehouse for * analytics. * - *

    A simple usage example showing how to create a table if it does not exist and load data into - * it. For the complete source code see - * CreateTableAndLoadData.java. + *

    A simple usage example showing how to create a table in Bigquery. For the complete source code see + * CreateTable.java. * *

    {@code
    - * BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
    - * TableId tableId = TableId.of("dataset", "table");
    - * Table table = bigquery.getTable(tableId);
    - * if (table == null) {
    - *   System.out.println("Creating table " + tableId);
    - *   Field integerField = Field.of("fieldName", Field.Type.integer());
    - *   Schema schema = Schema.of(integerField);
    - *   table = bigquery.create(TableInfo.of(tableId, StandardTableDefinition.of(schema)));
    - * }
    - * System.out.println("Loading data into table " + tableId);
    - * Job loadJob = table.load(FormatOptions.csv(), "gs://bucket/path");
    - * loadJob = loadJob.waitFor();
    - * if (loadJob.getStatus().getError() != null) {
    - *   System.out.println("Job completed with errors");
    - * } else {
    - *   System.out.println("Job succeeded");
    - * }
    - * }
    + * try { + * // Initialize client that will be used to send requests. This client only needs to be created + * // once, and can be reused for multiple requests. + * BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + * + * TableId tableId = TableId.of(datasetName, tableName); + * TableDefinition tableDefinition = StandardTableDefinition.of(schema); + * TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + * + * bigquery.create(tableInfo); + * System.out.println("Table created successfully"); + * } catch (BigQueryException e) { + * System.out.println("Table was not created. \n" + e.toString()); + * } + * * * @see Google Cloud BigQuery */ diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java index 6e5b32419d99..c2e6c03f50f3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java @@ -17,7 +17,14 @@ /** * A testing helper for Google BigQuery. * - *

    A simple usage example: + *

    A simple usage example: 1. Create a test Google Cloud project. + * + *

    2. Download a JSON service account credentials file from the Google Developer's Console. + * + *

    3. Create a RemoteBigQueryHelper object using your project ID and JSON key. Here is an example + * that uses the RemoteBigQueryHelper to create a dataset. + * + *

    4. Run tests. * *

    Before the test: * @@ -33,9 +40,5 @@ *

    {@code
      * RemoteBigQueryHelper.forceDelete(bigquery, DATASET);
      * }
    - * - * @see - * Google Cloud Java tools for testing */ package com.google.cloud.bigquery.testing; From 93e358afe38c90b7bbe20d2756aec204fdeb28eb Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 13:42:05 +0000 Subject: [PATCH 2288/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.9.0 (#2539) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.9.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a3721c7f9089..30d19ee1b877 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.8.0 + 26.9.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index eafb3e8f39d4..2b5c26d1fd92 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.8.0 + 26.9.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 7321e1338626..0ab8753a75e7 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.8.0 + 26.9.0 pom import From 1764eeb8d56ab3e5bda9b554414b5fe4d022fb72 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 13:45:24 +0000 Subject: [PATCH 2289/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.5.0 (#2580) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a69d6b715a48..041543e9d97b 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ github google-cloud-bigquery-parent v2-rev20230210-2.0.0 - 3.4.0 + 3.5.0 11.0.0
    From eaf09d65c00a742732b918478021dde3b12ac1bd Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 13:45:40 +0000 Subject: [PATCH 2290/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.15.0 (#2577) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 041543e9d97b..37e7ca20861e 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.14.0 + 2.15.0 test From 6935a1e353d496e6de656de3431563b3527456e5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 13:45:59 +0000 Subject: [PATCH 2291/3441] deps: update actions/checkout action to v3.4.0 (#2575) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 17e5bb9d95e6..dd55abf84d62 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 + uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 with: persist-credentials: false From 105f5ee8d8882f79688dec685f20f44817bf313a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 13:46:14 +0000 Subject: [PATCH 2292/3441] deps: update github/codeql-action action to v2.2.7 (#2572) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index dd55abf84d62..7345ff52e242 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@17573ee1cc1b9d061760f3a006fc4aac4f944fd5 # v2.2.4 + uses: github/codeql-action/upload-sarif@168b99b3c22180941ae7dbdd5f5c9678ede476ba # v2.2.7 with: sarif_file: results.sarif From aa0c70ec6fe0ae859b0944101373ebabb0bb4600 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 13:46:31 +0000 Subject: [PATCH 2293/3441] deps: update actions/upload-artifact action to v3.1.2 (#2571) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 7345ff52e242..66048b5a0a9d 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # v3.1.0 + uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 with: name: SARIF file path: results.sarif From c899ac842e23a1d946cc0ba6e646348c061be776 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 13:46:40 +0000 Subject: [PATCH 2294/3441] build(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3 (#2565) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 2b5c26d1fd92..1cbbadfcfcf0 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -111,7 +111,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 + 3.0.0 **/*IT From aab037c8eb676b42231c99b5890c991095d2f8c2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 14:16:41 +0000 Subject: [PATCH 2295/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20230311-2.0.0 (#2578) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 37e7ca20861e..8ffbb9892eda 100644 --- a/pom.xml +++ b/pom.xml @@ -53,7 +53,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20230210-2.0.0 + v2-rev20230311-2.0.0 3.5.0 11.0.0
    From 27f37bf543b044cb34ffc1adabdab7bedc4722d8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 14:40:32 +0000 Subject: [PATCH 2296/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.15.0 (#2576) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 8ffbb9892eda..1e1d072de4ab 100644 --- a/pom.xml +++ b/pom.xml @@ -160,7 +160,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.14.0 + 2.15.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d896f4f2bc11..67a82c69e36e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.14.0 + 2.15.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b64cc4a38e49..6f47b2f6ccdf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.14.0 + 2.15.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0ab8753a75e7..1f3a1ebf786b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.14.0 + 2.15.0 test From f07e8658076b353517a0527632d2eed8849b5dae Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 14:44:10 +0000 Subject: [PATCH 2297/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.10.0 (#2581) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.10.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 30d19ee1b877..3c5d7b487807 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.9.0 + 26.10.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 1cbbadfcfcf0..5fe55f3936b3 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.9.0 + 26.10.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 1f3a1ebf786b..76715c4cc449 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.9.0 + 26.10.0 pom import From 2d84344de7c682963739751c96e76172f623c108 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 14:52:56 +0000 Subject: [PATCH 2298/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.23.1 (#2558) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.23.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Farhan Ahmed --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3c5d7b487807..b9b76a2a13b0 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.23.0 + 2.23.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 67a82c69e36e..a4b7fe4d39e6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.23.0 + 2.23.1 From 8a854dbdcb676e2b2873ddfadf514f2e401fe987 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 14:54:04 +0000 Subject: [PATCH 2299/3441] deps: update dependency com.google.cloud:google-cloud-storage to v2.20.0 (#2559) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-storage to v2.20.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Farhan Ahmed --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1e1d072de4ab..4cf689b0dd8a 100644 --- a/pom.xml +++ b/pom.xml @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.19.0 + 2.20.0 test From 44c1cfe2b4a5a8c036ac4c42ff066b58d37509c0 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 10:54:19 -0400 Subject: [PATCH 2300/3441] chore: Adding release-please annotations to readme files (#1781) (#2579) * chore: Adding release-please annotations to readme files Source-Link: https://github.com/googleapis/synthtool/commit/327d46fbfc2c02ff9237c3107513bfa682a94da0 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:bf5639d265d70f6137d57d42ae781a6f4e26d4085ff4e018e71350480f9b3996 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- README.md | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 6b83f060e758..91bb69e63cac 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:9bf82029163bc06d58f56682afd1893a42ace3e04b0359accb86f79c6ecdc9f9 + digest: sha256:bf5639d265d70f6137d57d42ae781a6f4e26d4085ff4e018e71350480f9b3996 diff --git a/README.md b/README.md index b9b76a2a13b0..5e7f16f34d65 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ If you are using SBT, add this to your dependencies: ```Scala libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.23.2" ``` + ## Authentication @@ -83,7 +84,7 @@ The client application making API calls must be granted [authorization scopes][a You will need a [Google Cloud Platform Console][developer-console] project with the Cloud BigQuery [API enabled][enable-api]. You will need to [enable billing][enable-billing] to use Google Cloud BigQuery. [Follow these instructions][create-project] to get your project set up. You will also need to set up the local development environment by -[installing the Google Cloud SDK][cloud-sdk] and running the following commands in command line: +[installing the Google Cloud Command Line Interface][cloud-cli] and running the following commands in command line: `gcloud auth login` and `gcloud config set project [YOUR PROJECT ID]`. ### Installation and setup @@ -347,14 +348,14 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigquery&core=gav +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.23.2 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles [iam-policy]: https://cloud.google.com/iam/docs/overview#cloud-iam-policy [developer-console]: https://console.developers.google.com/ [create-project]: https://cloud.google.com/resource-manager/docs/creating-managing-projects -[cloud-sdk]: https://cloud.google.com/sdk/ +[cloud-cli]: https://cloud.google.com/cli [troubleshooting]: https://github.com/googleapis/google-cloud-common/blob/main/troubleshooting/readme.md#troubleshooting [contributing]: https://github.com/googleapis/java-bigquery/blob/main/CONTRIBUTING.md [code-of-conduct]: https://github.com/googleapis/java-bigquery/blob/main/CODE_OF_CONDUCT.md#contributor-code-of-conduct From dcacc3150b3dbcd9c54038035cec3a7b1946af6c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 15:15:10 +0000 Subject: [PATCH 2301/3441] deps: update cloud client dependencies (#2583) --- pom.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 4cf689b0dd8a..675119528cfb 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.33.1 + 2.34.0 pom import @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.18.0 + 1.19.0 pom import @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.20.0 + 2.20.1 test From dab8be0898586792b474559a9c40e1c91033939c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 15:24:11 +0000 Subject: [PATCH 2302/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.23.2 (#2582) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.23.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5e7f16f34d65..daeb668e5781 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.23.1 + 2.23.2 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a4b7fe4d39e6..520236a79284 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.23.1 + 2.23.2 From 5b3beea48cd37a26262c0c53b686789aa7211a20 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 12:39:37 -0400 Subject: [PATCH 2303/3441] chore(main): release 2.24.0 (#2564) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 19 +++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 26 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7757dfd594dd..0f8c0eca52f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## [2.24.0](https://github.com/googleapis/java-bigquery/compare/v2.23.2...v2.24.0) (2023-03-21) + + +### Features + +* Add support for clone ([#2553](https://github.com/googleapis/java-bigquery/issues/2553)) ([2186c64](https://github.com/googleapis/java-bigquery/commit/2186c64e523e030a777eec447bc1f22802f56617)) + + +### Dependencies + +* Update actions/checkout action to v3.4.0 ([#2575](https://github.com/googleapis/java-bigquery/issues/2575)) ([6935a1e](https://github.com/googleapis/java-bigquery/commit/6935a1e353d496e6de656de3431563b3527456e5)) +* Update actions/upload-artifact action to v3.1.2 ([#2571](https://github.com/googleapis/java-bigquery/issues/2571)) ([aa0c70e](https://github.com/googleapis/java-bigquery/commit/aa0c70ec6fe0ae859b0944101373ebabb0bb4600)) +* Update cloud client dependencies ([#2583](https://github.com/googleapis/java-bigquery/issues/2583)) ([dcacc31](https://github.com/googleapis/java-bigquery/commit/dcacc3150b3dbcd9c54038035cec3a7b1946af6c)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.15.0 ([#2577](https://github.com/googleapis/java-bigquery/issues/2577)) ([eaf09d6](https://github.com/googleapis/java-bigquery/commit/eaf09d65c00a742732b918478021dde3b12ac1bd)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230311-2.0.0 ([#2578](https://github.com/googleapis/java-bigquery/issues/2578)) ([aab037c](https://github.com/googleapis/java-bigquery/commit/aab037c8eb676b42231c99b5890c991095d2f8c2)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.5.0 ([#2580](https://github.com/googleapis/java-bigquery/issues/2580)) ([1764eeb](https://github.com/googleapis/java-bigquery/commit/1764eeb8d56ab3e5bda9b554414b5fe4d022fb72)) +* Update dependency com.google.cloud:google-cloud-storage to v2.20.0 ([#2559](https://github.com/googleapis/java-bigquery/issues/2559)) ([8a854db](https://github.com/googleapis/java-bigquery/commit/8a854dbdcb676e2b2873ddfadf514f2e401fe987)) +* Update github/codeql-action action to v2.2.7 ([#2572](https://github.com/googleapis/java-bigquery/issues/2572)) ([105f5ee](https://github.com/googleapis/java-bigquery/commit/105f5ee8d8882f79688dec685f20f44817bf313a)) + ## [2.23.2](https://github.com/googleapis/java-bigquery/compare/v2.23.1...v2.23.2) (2023-03-07) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8d973a3fa568..28835f3c61c1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.23.3-SNAPSHOT + 2.24.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c2c9ff691464..f4555ed2b157 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.23.3-SNAPSHOT + 2.24.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.23.3-SNAPSHOT + 2.24.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 675119528cfb..cb264307eea1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.23.3-SNAPSHOT + 2.24.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.23.3-SNAPSHOT + 2.24.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6f47b2f6ccdf..456b40bd09e5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.23.3-SNAPSHOT + 2.24.0 diff --git a/versions.txt b/versions.txt index ffccc8c3d5c7..167ebdeebd94 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.23.2:2.23.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.24.0:2.24.0 \ No newline at end of file From cfcd4f3480916d46706857da1231e4c6b5ba8e88 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 16:52:12 +0000 Subject: [PATCH 2304/3441] chore(main): release 2.24.1-SNAPSHOT (#2585) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 28835f3c61c1..bf78dee0c6bb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.24.0 + 2.24.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f4555ed2b157..23a7f4c26364 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.24.0 + 2.24.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.24.0 + 2.24.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index cb264307eea1..0a98633c2f7e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.24.0 + 2.24.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.24.0 + 2.24.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 456b40bd09e5..f5a5741e8371 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.24.0 + 2.24.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 167ebdeebd94..8f424596fa37 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.24.0:2.24.0 \ No newline at end of file +google-cloud-bigquery:2.24.0:2.24.1-SNAPSHOT \ No newline at end of file From a53e5a7ea901ce0d53cced58882cdeab956fe6d8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 19:45:01 +0000 Subject: [PATCH 2305/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.34.1 (#2584) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0a98633c2f7e..c7ee92a715e5 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.34.0 + 2.34.1 pom import From 7269edd158051d738977e49a4eb7fe758c1a0611 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 19:45:41 +0000 Subject: [PATCH 2306/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.20.1 (#2586) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.20.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 +++--- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index daeb668e5781..9c1d361afdec 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.23.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.24.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.23.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.24.0" ``` @@ -348,7 +348,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.23.2 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.24.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 520236a79284..47a1dbb88ac3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.20.0 + 2.20.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f5a5741e8371..f83eb078cd53 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.20.0 + 2.20.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 76715c4cc449..752e03c27d40 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.20.0 + 2.20.1 test From 7b0777924103a711f9e3066c0a52adc551f24fca Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Mar 2023 19:46:15 +0000 Subject: [PATCH 2307/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.24.0 (#2587) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.24.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9c1d361afdec..162ab529abda 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.23.2 + 2.24.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 47a1dbb88ac3..59e537bf558a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.23.2 + 2.24.0 From 6f931d90664d41f9b07c809072b64bffedb67e04 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 20:20:12 +0000 Subject: [PATCH 2308/3441] chore(main): release 2.24.1 (#2588) :robot: I have created a release *beep* *boop* --- ## [2.24.1](https://togithub.com/googleapis/java-bigquery/compare/v2.24.0...v2.24.1) (2023-03-21) ### Dependencies * Update cloud client dependencies ([7b07779](https://togithub.com/googleapis/java-bigquery/commit/7b0777924103a711f9e3066c0a52adc551f24fca)) * Update dependency com.google.cloud:google-cloud-bigquery to v2.23.2 ([7b07779](https://togithub.com/googleapis/java-bigquery/commit/7b0777924103a711f9e3066c0a52adc551f24fca)) * Update dependency com.google.cloud:google-cloud-bigquery to v2.24.0 ([7b07779](https://togithub.com/googleapis/java-bigquery/commit/7b0777924103a711f9e3066c0a52adc551f24fca)) * Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.34.1 ([7b07779](https://togithub.com/googleapis/java-bigquery/commit/7b0777924103a711f9e3066c0a52adc551f24fca)) * Update dependency com.google.cloud:google-cloud-bigtable to v2.20.1 ([7b07779](https://togithub.com/googleapis/java-bigquery/commit/7b0777924103a711f9e3066c0a52adc551f24fca)) * Update dependency com.google.cloud:libraries-bom to v26.10.0 ([7b07779](https://togithub.com/googleapis/java-bigquery/commit/7b0777924103a711f9e3066c0a52adc551f24fca)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f8c0eca52f4..9eb79a07ae77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [2.24.1](https://github.com/googleapis/java-bigquery/compare/v2.24.0...v2.24.1) (2023-03-21) + + +### Dependencies + +* Update cloud client dependencies ([7b07779](https://github.com/googleapis/java-bigquery/commit/7b0777924103a711f9e3066c0a52adc551f24fca)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.23.2 ([7b07779](https://github.com/googleapis/java-bigquery/commit/7b0777924103a711f9e3066c0a52adc551f24fca)) +* Update dependency com.google.cloud:google-cloud-bigquery to v2.24.0 ([7b07779](https://github.com/googleapis/java-bigquery/commit/7b0777924103a711f9e3066c0a52adc551f24fca)) +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.34.1 ([7b07779](https://github.com/googleapis/java-bigquery/commit/7b0777924103a711f9e3066c0a52adc551f24fca)) +* Update dependency com.google.cloud:google-cloud-bigtable to v2.20.1 ([7b07779](https://github.com/googleapis/java-bigquery/commit/7b0777924103a711f9e3066c0a52adc551f24fca)) +* Update dependency com.google.cloud:libraries-bom to v26.10.0 ([7b07779](https://github.com/googleapis/java-bigquery/commit/7b0777924103a711f9e3066c0a52adc551f24fca)) + ## [2.24.0](https://github.com/googleapis/java-bigquery/compare/v2.23.2...v2.24.0) (2023-03-21) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index bf78dee0c6bb..23c0f679abeb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.24.1-SNAPSHOT + 2.24.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 23a7f4c26364..bf0d19c8005e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.24.1-SNAPSHOT + 2.24.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.24.1-SNAPSHOT + 2.24.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c7ee92a715e5..55fc02521169 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.24.1-SNAPSHOT + 2.24.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.24.1-SNAPSHOT + 2.24.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f83eb078cd53..adab85ef5a8a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.24.1-SNAPSHOT + 2.24.1 diff --git a/versions.txt b/versions.txt index 8f424596fa37..3d032fccb023 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.24.0:2.24.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.24.1:2.24.1 \ No newline at end of file From cfb143cfa7302bca1f7efd69930dce211c20447a Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Tue, 21 Mar 2023 16:31:22 -0400 Subject: [PATCH 2309/3441] chore: re-configure renovate (#2589) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: re-configure renovate * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- renovate.json | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/renovate.json b/renovate.json index c3dedcbe3677..8e7ebb5b940a 100644 --- a/renovate.json +++ b/renovate.json @@ -52,7 +52,8 @@ "^junit:junit", "^com.google.truth:truth", "^org.mockito:mockito-core", - "^org.objenesis:objenesis" + "^org.objenesis:objenesis", + "^com.google.cloud:google-cloud-storage" ], "semanticCommitType": "test", "semanticCommitScope": "deps" @@ -68,15 +69,6 @@ "^com.fasterxml.jackson.core" ], "groupName": "jackson dependencies" - }, - { - "packagePatterns": [ - "^com.google.api.grpc:proto-google-cloud-datacatalog", - "^com.google.cloud:google-cloud-datacatalog", - "^com.google.cloud:google-cloud-bigquerystorage-bom", - "^com.google.cloud:google-cloud-storage" - ], - "groupName": "cloud client dependencies" } ], "semanticCommits": true, From b42818165d258f1526950b3a9b095aed01e1354d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 16:31:36 -0400 Subject: [PATCH 2310/3441] chore(main): release 2.24.2-SNAPSHOT (#2590) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 23c0f679abeb..4f933bf23580 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.24.1 + 2.24.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bf0d19c8005e..073ca1137755 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.24.1 + 2.24.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.24.1 + 2.24.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 55fc02521169..c3b5d89e2751 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.24.1 + 2.24.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.24.1 + 2.24.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index adab85ef5a8a..f6c0cd858189 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.24.1 + 2.24.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 3d032fccb023..4a6cfd234252 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.24.1:2.24.1 \ No newline at end of file +google-cloud-bigquery:2.24.1:2.24.2-SNAPSHOT \ No newline at end of file From 42cffdccfddf30c72fd8e90bd78b177c9fa17e9f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Mar 2023 13:21:29 +0000 Subject: [PATCH 2311/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.24.1 (#2591) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.24.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 162ab529abda..54881721b0f3 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.24.0 + 2.24.1 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.24.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.24.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.24.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.24.1" ``` @@ -348,7 +348,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.24.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.24.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 59e537bf558a..12d661d4b00c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.24.0 + 2.24.1 From d714b72ca0c4015af045283e12607bf33b1214b9 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Wed, 22 Mar 2023 13:01:24 -0400 Subject: [PATCH 2312/3441] chore: fix code snippet (#2592) --- .../main/java/com/google/cloud/bigquery/package-info.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java index cbd283fca234..ac3c26980f19 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java @@ -23,9 +23,6 @@ * CreateTable.java. * *
    {@code
    - *  try {
    - *       // Initialize client that will be used to send requests. This client only needs to be created
    - *       // once, and can be reused for multiple requests.
      *       BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
      *
      *       TableId tableId = TableId.of(datasetName, tableName);
    @@ -34,9 +31,6 @@
      *
      *       bigquery.create(tableInfo);
      *       System.out.println("Table created successfully");
    - *     } catch (BigQueryException e) {
    - *       System.out.println("Table was not created. \n" + e.toString());
    - *     }
      * 
    * * @see Google Cloud BigQuery From d306ad8189a44c066ad5305596c86fae71251055 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 22 Mar 2023 21:50:42 +0000 Subject: [PATCH 2313/3441] deps: update github/codeql-action action to v2.2.8 (#2593) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 66048b5a0a9d..9b3906ea5f47 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@168b99b3c22180941ae7dbdd5f5c9678ede476ba # v2.2.7 + uses: github/codeql-action/upload-sarif@67a35a08586135a9573f4327e904ecbf517a882d # v2.2.8 with: sarif_file: results.sarif From 3b047f4afdc3bd98e079e976d9f2255ccbba01c6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Mar 2023 22:04:11 +0000 Subject: [PATCH 2314/3441] chore(main): release 2.24.2 (#2594) :robot: I have created a release *beep* *boop* --- ## [2.24.2](https://togithub.com/googleapis/java-bigquery/compare/v2.24.1...v2.24.2) (2023-03-22) ### Dependencies * Update github/codeql-action action to v2.2.8 ([#2593](https://togithub.com/googleapis/java-bigquery/issues/2593)) ([d306ad8](https://togithub.com/googleapis/java-bigquery/commit/d306ad8189a44c066ad5305596c86fae71251055)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9eb79a07ae77..4e9d216dd1a7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.24.2](https://github.com/googleapis/java-bigquery/compare/v2.24.1...v2.24.2) (2023-03-22) + + +### Dependencies + +* Update github/codeql-action action to v2.2.8 ([#2593](https://github.com/googleapis/java-bigquery/issues/2593)) ([d306ad8](https://github.com/googleapis/java-bigquery/commit/d306ad8189a44c066ad5305596c86fae71251055)) + ## [2.24.1](https://github.com/googleapis/java-bigquery/compare/v2.24.0...v2.24.1) (2023-03-21) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4f933bf23580..d406a79d7666 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.24.2-SNAPSHOT + 2.24.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 073ca1137755..16cf03672744 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.24.2-SNAPSHOT + 2.24.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.24.2-SNAPSHOT + 2.24.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c3b5d89e2751..a883a26705d3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.24.2-SNAPSHOT + 2.24.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.24.2-SNAPSHOT + 2.24.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f6c0cd858189..f0396cd9310d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.24.2-SNAPSHOT + 2.24.2 diff --git a/versions.txt b/versions.txt index 4a6cfd234252..3470e6db27e2 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.24.1:2.24.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.24.2:2.24.2 \ No newline at end of file From 648f72e5a2cc060415c21d73b20a624f536a6c99 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 22 Mar 2023 22:16:12 +0000 Subject: [PATCH 2315/3441] chore(main): release 2.24.3-SNAPSHOT (#2595) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d406a79d7666..2072af4ed962 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.24.2 + 2.24.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 16cf03672744..93049ddd599a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.24.2 + 2.24.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.24.2 + 2.24.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a883a26705d3..7e9db82d9968 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.24.2 + 2.24.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.24.2 + 2.24.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f0396cd9310d..c6ec3727da53 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.24.2 + 2.24.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 3470e6db27e2..f38ec961654f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.24.2:2.24.2 \ No newline at end of file +google-cloud-bigquery:2.24.2:2.24.3-SNAPSHOT \ No newline at end of file From 5cba6ee572c864dd645a95fee2714034c3d7877b Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 23 Mar 2023 11:28:33 -0400 Subject: [PATCH 2316/3441] chore: fix snippet (#2597) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: fix snippet * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 +++--- .../google/cloud/bigquery/package-info.java | 19 +++++++++---------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 54881721b0f3..0cc37b56dd9a 100644 --- a/README.md +++ b/README.md @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.24.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.24.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.24.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.24.2" ``` @@ -348,7 +348,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.24.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.24.2 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java index ac3c26980f19..85c3584fd6fe 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java @@ -18,20 +18,19 @@ * A client for BigQuery – A fully managed, petabyte scale, low cost enterprise data warehouse for * analytics. * - *

    A simple usage example showing how to create a table in Bigquery. For the complete source code see A simple usage example showing how to create a table in Bigquery. For the complete source code + * see * CreateTable.java. * *

    {@code
    - *       BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
    - *
    - *       TableId tableId = TableId.of(datasetName, tableName);
    - *       TableDefinition tableDefinition = StandardTableDefinition.of(schema);
    - *       TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build();
    - *
    - *       bigquery.create(tableInfo);
    - *       System.out.println("Table created successfully");
    - * 
    + * BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); * + * TableId tableId = TableId.of(datasetName, tableName); + * TableDefinition tableDefinition = StandardTableDefinition.of(schema); + * TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); * + * bigquery.create(tableInfo); + * System.out.println("Table created successfully"); + * } * * @see Google Cloud BigQuery */ From e191a133bce96948800a8e30e02d569c9d4c6db9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 24 Mar 2023 14:28:04 +0000 Subject: [PATCH 2317/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.24.2 (#2596) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.24.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0cc37b56dd9a..c89c1c068fb0 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.24.1 + 2.24.2 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 12d661d4b00c..0da5e170d4b0 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.24.1 + 2.24.2 From 18891137250b16dda009fa0d1919892dde5ca99e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 24 Mar 2023 14:29:17 +0000 Subject: [PATCH 2318/3441] build(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.1 (#2601) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- benchmark/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index c89c1c068fb0..d31ee1f78d0d 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.10.0') +implementation platform('com.google.cloud:libraries-bom:26.11.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2072af4ed962..670091ed6794 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -75,7 +75,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.0 + 3.1.1 true diff --git a/samples/pom.xml b/samples/pom.xml index 508f6975eae0..43d03461c5a5 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -55,7 +55,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.0 + 3.1.1 true diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 752e03c27d40..e8d8a7261d8f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -109,7 +109,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.0 + 3.1.1 true From 9d4f2683ddf3af8313d2d10ae76a2bc99a4b17ff Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 24 Mar 2023 14:29:32 +0000 Subject: [PATCH 2319/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.20.2 (#2598) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7e9db82d9968..1e18a3ccce82 100644 --- a/pom.xml +++ b/pom.xml @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.20.1 + 2.20.2 test From b200e512db7d14f4d796cd83c5623c010bf9dbdb Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 24 Mar 2023 14:29:44 +0000 Subject: [PATCH 2320/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.11.0 (#2599) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.11.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d31ee1f78d0d..f60689997ca7 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.10.0 + 26.11.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 5fe55f3936b3..503b1b519530 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.10.0 + 26.11.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e8d8a7261d8f..7a50fb2d8053 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.10.0 + 26.11.0 pom import From f38d9f17fdc067392631ee3c2d2a6c658985f68d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 24 Mar 2023 14:29:55 +0000 Subject: [PATCH 2321/3441] deps: update actions/checkout action to v3.5.0 (#2600) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/checkout action to v3.5.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 9b3906ea5f47..0cb4a1e2ddc7 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 + uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0 with: persist-credentials: false From 2015f2be679875076e7656242dad5536bf214197 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 24 Mar 2023 14:44:12 +0000 Subject: [PATCH 2322/3441] chore(main): release 2.24.3 (#2602) :robot: I have created a release *beep* *boop* --- ## [2.24.3](https://togithub.com/googleapis/java-bigquery/compare/v2.24.2...v2.24.3) (2023-03-24) ### Dependencies * Update actions/checkout action to v3.5.0 ([#2600](https://togithub.com/googleapis/java-bigquery/issues/2600)) ([f38d9f1](https://togithub.com/googleapis/java-bigquery/commit/f38d9f17fdc067392631ee3c2d2a6c658985f68d)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e9d216dd1a7..4f80efbb5b14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.24.3](https://github.com/googleapis/java-bigquery/compare/v2.24.2...v2.24.3) (2023-03-24) + + +### Dependencies + +* Update actions/checkout action to v3.5.0 ([#2600](https://github.com/googleapis/java-bigquery/issues/2600)) ([f38d9f1](https://github.com/googleapis/java-bigquery/commit/f38d9f17fdc067392631ee3c2d2a6c658985f68d)) + ## [2.24.2](https://github.com/googleapis/java-bigquery/compare/v2.24.1...v2.24.2) (2023-03-22) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 670091ed6794..a5ebff1c4af7 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.24.3-SNAPSHOT + 2.24.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 93049ddd599a..84155099bbcb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.24.3-SNAPSHOT + 2.24.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.24.3-SNAPSHOT + 2.24.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1e18a3ccce82..b75c2e7e6fca 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.24.3-SNAPSHOT + 2.24.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.24.3-SNAPSHOT + 2.24.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c6ec3727da53..41f607b196ed 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.24.3-SNAPSHOT + 2.24.3 diff --git a/versions.txt b/versions.txt index f38ec961654f..1a67fab33af4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.24.2:2.24.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.24.3:2.24.3 \ No newline at end of file From c1e277f3b7d8f0ab60e0af52248761aa0e2903e5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 24 Mar 2023 14:56:38 +0000 Subject: [PATCH 2323/3441] chore(main): release 2.24.4-SNAPSHOT (#2603) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a5ebff1c4af7..b074dd0b3159 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.24.3 + 2.24.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 84155099bbcb..d6d3d59939a0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.24.3 + 2.24.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.24.3 + 2.24.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b75c2e7e6fca..1242a778aa6d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.24.3 + 2.24.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.24.3 + 2.24.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 41f607b196ed..bbe8d734c960 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.24.3 + 2.24.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 1a67fab33af4..4a1ab356ed30 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.24.3:2.24.3 \ No newline at end of file +google-cloud-bigquery:2.24.3:2.24.4-SNAPSHOT \ No newline at end of file From af71482ff5477b9c6989219b0e5291aa6dfddd8c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 24 Mar 2023 18:31:19 +0000 Subject: [PATCH 2324/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.24.3 (#2604) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.24.3 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f60689997ca7..4080d955794d 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.24.2 + 2.24.3 ``` @@ -59,13 +59,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.24.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.24.3' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.24.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.24.3" ``` @@ -348,7 +348,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.24.2 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.24.3 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0da5e170d4b0..8d36fea98527 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.24.2 + 2.24.3 From 4ff4c7069e642def8cdcd31394dfb6a8e5766774 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Mon, 27 Mar 2023 13:58:16 -0400 Subject: [PATCH 2325/3441] chore: fix scm in maven central (#2609) Fixes #2438 --- pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1242a778aa6d..63b746093fd3 100644 --- a/pom.xml +++ b/pom.xml @@ -31,7 +31,8 @@ Google LLC - + scm:git:git@github.com:googleapis/java-bigquery.git scm:git:git@github.com:googleapis/java-bigquery.git https://github.com/googleapis/java-bigquery From 71f9f55225eac6d7d4a3d5f0960b28bf8769d03d Mon Sep 17 00:00:00 2001 From: Farhan Ahmed Date: Mon, 27 Mar 2023 15:42:21 -0400 Subject: [PATCH 2326/3441] fix: QueryWithStructsParameters sample mismatch (#2610) --- .../com/example/bigquery/QueryWithStructsParameters.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java index 10ef6c316c8b..5cf3ebeb69ab 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java @@ -40,15 +40,13 @@ public static void queryWithStructsParameters() { // Create struct Map struct = new HashMap<>(); - struct.put("booleanField", QueryParameterValue.bool(true)); - struct.put("integerField", QueryParameterValue.string("test-stringField")); - struct.put("stringField", QueryParameterValue.int64(10)); + struct.put("x", QueryParameterValue.int64(1)); + struct.put("y", QueryParameterValue.string("foo")); QueryParameterValue recordValue = QueryParameterValue.struct(struct); - String query = "SELECT STRUCT(@recordField) AS record"; + String query = "SELECT STRUCT(@recordField) AS s"; QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query) - .setUseLegacySql(false) .addNamedParameter("recordField", recordValue) .build(); From a328eb285b6007e0e01b059a03e71a2b5a6e7399 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 29 Mar 2023 15:39:09 +0100 Subject: [PATCH 2327/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20230318-2.0.0 (#2607) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 63b746093fd3..98a381a121e3 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20230311-2.0.0 + v2-rev20230318-2.0.0 3.5.0 11.0.0 From 24aac1489dd99ebd0133e80a21dd7309f2c17494 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 29 Mar 2023 15:39:40 +0100 Subject: [PATCH 2328/3441] deps: update github/codeql-action action to v2.2.9 (#2608) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 0cb4a1e2ddc7..6fc750d575cc 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@67a35a08586135a9573f4327e904ecbf517a882d # v2.2.8 + uses: github/codeql-action/upload-sarif@04df1262e6247151b5ac09cd2c303ac36ad3f62b # v2.2.9 with: sarif_file: results.sarif From 092783598ff13a187a595d307479c6969be8dca2 Mon Sep 17 00:00:00 2001 From: Farhan Ahmed Date: Thu, 30 Mar 2023 11:37:14 -0400 Subject: [PATCH 2329/3441] chore: Adding top and job level permissions to auto-release workflow (#2616) --- .github/workflows/auto-release.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 7a106d007edf..92c69857f611 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -16,7 +16,10 @@ on: pull_request: name: auto-release +permissions: + contents: read jobs: + permissions: write-all approve: runs-on: ubuntu-latest if: contains(github.head_ref, 'release-please') From eac97ac03007b52e6c242f427ac21e491bfefb13 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 Mar 2023 19:19:00 +0100 Subject: [PATCH 2330/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.6.0 (#2612) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 98a381a121e3..020848fa9313 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230318-2.0.0 - 3.5.0 + 3.6.0 11.0.0 From e4aa0fef53f9eebbe09d878318521df5d070fd70 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 Mar 2023 19:32:12 +0100 Subject: [PATCH 2331/3441] deps: update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.34.2 (#2619) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 020848fa9313..55325a60bea7 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.34.1 + 2.34.2 pom import From a3f98f99ab9d4508580daaeb94bea8268a3573ef Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Thu, 30 Mar 2023 14:34:12 -0400 Subject: [PATCH 2332/3441] chore: add bigquery storage dependency to deps (#2620) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ ] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) Fixes # ☕️ If you write sample code, please follow the [samples format]( https://togithub.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md). --- renovate.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 8e7ebb5b940a..274ec500cdf3 100644 --- a/renovate.json +++ b/renovate.json @@ -20,7 +20,8 @@ }, { "packagePatterns": [ - "*" + "*", + "^com.google.cloud:google-cloud-bigquerystorage" ], "semanticCommitType": "deps", "semanticCommitScope": null From d3ea5467aee288fb1674a78118aa3e3c575d0711 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 30 Mar 2023 18:48:12 +0000 Subject: [PATCH 2333/3441] chore(main): release 2.24.4 (#2611) :robot: I have created a release *beep* *boop* --- ## [2.24.4](https://togithub.com/googleapis/java-bigquery/compare/v2.24.3...v2.24.4) (2023-03-30) ### Bug Fixes * QueryWithStructsParameters sample mismatch ([#2610](https://togithub.com/googleapis/java-bigquery/issues/2610)) ([71f9f55](https://togithub.com/googleapis/java-bigquery/commit/71f9f55225eac6d7d4a3d5f0960b28bf8769d03d)) ### Dependencies * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230318-2.0.0 ([#2607](https://togithub.com/googleapis/java-bigquery/issues/2607)) ([a328eb2](https://togithub.com/googleapis/java-bigquery/commit/a328eb285b6007e0e01b059a03e71a2b5a6e7399)) * Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.34.2 ([#2619](https://togithub.com/googleapis/java-bigquery/issues/2619)) ([e4aa0fe](https://togithub.com/googleapis/java-bigquery/commit/e4aa0fef53f9eebbe09d878318521df5d070fd70)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.6.0 ([#2612](https://togithub.com/googleapis/java-bigquery/issues/2612)) ([eac97ac](https://togithub.com/googleapis/java-bigquery/commit/eac97ac03007b52e6c242f427ac21e491bfefb13)) * Update github/codeql-action action to v2.2.9 ([#2608](https://togithub.com/googleapis/java-bigquery/issues/2608)) ([24aac14](https://togithub.com/googleapis/java-bigquery/commit/24aac1489dd99ebd0133e80a21dd7309f2c17494)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 15 +++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 22 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f80efbb5b14..732c671f1ec6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [2.24.4](https://github.com/googleapis/java-bigquery/compare/v2.24.3...v2.24.4) (2023-03-30) + + +### Bug Fixes + +* QueryWithStructsParameters sample mismatch ([#2610](https://github.com/googleapis/java-bigquery/issues/2610)) ([71f9f55](https://github.com/googleapis/java-bigquery/commit/71f9f55225eac6d7d4a3d5f0960b28bf8769d03d)) + + +### Dependencies + +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230318-2.0.0 ([#2607](https://github.com/googleapis/java-bigquery/issues/2607)) ([a328eb2](https://github.com/googleapis/java-bigquery/commit/a328eb285b6007e0e01b059a03e71a2b5a6e7399)) +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.34.2 ([#2619](https://github.com/googleapis/java-bigquery/issues/2619)) ([e4aa0fe](https://github.com/googleapis/java-bigquery/commit/e4aa0fef53f9eebbe09d878318521df5d070fd70)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.6.0 ([#2612](https://github.com/googleapis/java-bigquery/issues/2612)) ([eac97ac](https://github.com/googleapis/java-bigquery/commit/eac97ac03007b52e6c242f427ac21e491bfefb13)) +* Update github/codeql-action action to v2.2.9 ([#2608](https://github.com/googleapis/java-bigquery/issues/2608)) ([24aac14](https://github.com/googleapis/java-bigquery/commit/24aac1489dd99ebd0133e80a21dd7309f2c17494)) + ## [2.24.3](https://github.com/googleapis/java-bigquery/compare/v2.24.2...v2.24.3) (2023-03-24) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b074dd0b3159..9a6085c1d580 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.24.4-SNAPSHOT + 2.24.4 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d6d3d59939a0..9b139c3a5968 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.24.4-SNAPSHOT + 2.24.4 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.24.4-SNAPSHOT + 2.24.4 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 55325a60bea7..61d17edc465e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.24.4-SNAPSHOT + 2.24.4 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.24.4-SNAPSHOT + 2.24.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bbe8d734c960..6b5692fce87d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.24.4-SNAPSHOT + 2.24.4 diff --git a/versions.txt b/versions.txt index 4a1ab356ed30..2e734c9d64ad 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.24.3:2.24.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.24.4:2.24.4 \ No newline at end of file From faeb9fae08e1a10a578e080bc4e581f667c0ef96 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 30 Mar 2023 19:20:13 +0000 Subject: [PATCH 2334/3441] chore(main): release 2.24.5-SNAPSHOT (#2621) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9a6085c1d580..9fd0525e2658 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.24.4 + 2.24.5-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9b139c3a5968..bec749a9290a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.24.4 + 2.24.5-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.24.4 + 2.24.5-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 61d17edc465e..b9440046cdeb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.24.4 + 2.24.5-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.24.4 + 2.24.5-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6b5692fce87d..bbb21e93ed21 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.24.4 + 2.24.5-SNAPSHOT diff --git a/versions.txt b/versions.txt index 2e734c9d64ad..11a84493f83f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.24.4:2.24.4 \ No newline at end of file +google-cloud-bigquery:2.24.4:2.24.5-SNAPSHOT \ No newline at end of file From 06af1ecc976faba0e661ec8f73b97e6c44c9a3bc Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 13 Apr 2023 17:34:26 -0400 Subject: [PATCH 2335/3441] chore: make exception for non-cloud artifacts (#1787) (#2628) * bugfix: make exception for non-cloud artifacts * change format Source-Link: https://github.com/googleapis/synthtool/commit/a86e18975db26d8e94055382c624d84643fafb86 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:944c07e458ce227ca49a423affedf088e31e2ee70908dd21682238d58f1beb60 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- README.md | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 91bb69e63cac..48ad11d44028 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:bf5639d265d70f6137d57d42ae781a6f4e26d4085ff4e018e71350480f9b3996 + digest: sha256:944c07e458ce227ca49a423affedf088e31e2ee70908dd21682238d58f1beb60 diff --git a/README.md b/README.md index 4080d955794d..967437074140 100644 --- a/README.md +++ b/README.md @@ -37,8 +37,9 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google ``` -If you are using Maven without BOM, add this to your dependencies: +If you are using Maven without the BOM, add this to your dependencies: + ```xml @@ -59,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.24.3' +implementation 'com.google.cloud:google-cloud-bigquery:2.24.4' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.24.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.24.4" ``` @@ -348,7 +349,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.24.3 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.24.4 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles @@ -356,7 +357,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [developer-console]: https://console.developers.google.com/ [create-project]: https://cloud.google.com/resource-manager/docs/creating-managing-projects [cloud-cli]: https://cloud.google.com/cli -[troubleshooting]: https://github.com/googleapis/google-cloud-common/blob/main/troubleshooting/readme.md#troubleshooting +[troubleshooting]: https://github.com/googleapis/google-cloud-java/blob/main/TROUBLESHOOTING.md [contributing]: https://github.com/googleapis/java-bigquery/blob/main/CONTRIBUTING.md [code-of-conduct]: https://github.com/googleapis/java-bigquery/blob/main/CODE_OF_CONDUCT.md#contributor-code-of-conduct [license]: https://github.com/googleapis/java-bigquery/blob/main/LICENSE From 594a7b4bf150a5963c149f8f5f6edd18adbf99fe Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 13 Apr 2023 22:35:03 +0100 Subject: [PATCH 2336/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.16.0 (#2625) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.16.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b9440046cdeb..63a2e75092bc 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.15.0 + 2.16.0 test From 778d872386f5868c56e3c85ba75dde3abf999600 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 13 Apr 2023 22:35:41 +0100 Subject: [PATCH 2337/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.24.4 (#2622) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.24.4 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 967437074140..0cf1a83c1f63 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.24.3 + 2.24.4 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8d36fea98527..5e392dc729a2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.24.3 + 2.24.4 From 1a91d610aec130c90b2e80f6cf15d0f1a80889d8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 13 Apr 2023 22:41:02 +0100 Subject: [PATCH 2338/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.20.2 (#2624) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.20.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5e392dc729a2..37a042781f6e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.20.1 + 2.20.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bbb21e93ed21..fe20e6301fb6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.20.1 + 2.20.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 7a50fb2d8053..b1038ba757f4 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.20.1 + 2.20.2 test From e8f07d70f754bb6a5937af7af436714bf2301af0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:24:32 +0100 Subject: [PATCH 2339/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.7.0 (#2637) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.7.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0cf1a83c1f63..e684023c1182 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.11.0') +implementation platform('com.google.cloud:libraries-bom:26.12.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/pom.xml b/pom.xml index 63a2e75092bc..f11e1e9b335e 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230318-2.0.0 - 3.6.0 + 3.7.0 11.0.0 From d166401edd01d6d9306027d601d26d66b661de02 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:30:43 +0100 Subject: [PATCH 2340/3441] deps: update ossf/scorecard-action action to v2.1.3 (#2618) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update ossf/scorecard-action action to v2.1.3 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 6fc750d575cc..a9b91733e28f 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -37,7 +37,7 @@ jobs: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@e38b1902ae4f44df626f11ba0734b14fb91f8f86 # v2.1.2 + uses: ossf/scorecard-action@80e868c13c90f172d68d1f4501dee99e2479f7af # v2.1.3 with: results_file: results.sarif results_format: sarif From d2ecbe4ac979ac395c4aeeebfd469e90851bed95 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:31:14 +0100 Subject: [PATCH 2341/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.16.0 (#2623) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.16.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index f11e1e9b335e..109fec4fcb77 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.15.0 + 2.16.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 37a042781f6e..9af92eae8b4f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.15.0 + 2.16.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index fe20e6301fb6..08876559b681 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.15.0 + 2.16.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index b1038ba757f4..02697264371b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.15.0 + 2.16.0 test From f466b514fed248b1193900ac65be3d9a5154a858 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:31:32 +0100 Subject: [PATCH 2342/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.20.0 (#2626) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.20.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.20.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 109fec4fcb77..55fee069bb67 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.19.0 + 1.20.0 pom import From 95e49fd47648ff1574e60ed3a1ab8dacb75df654 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:31:49 +0100 Subject: [PATCH 2343/3441] deps: update actions/checkout action to v3.5.2 (#2630) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/checkout action to v3.5.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index a9b91733e28f..0e457a6f89ae 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3.5.0 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 with: persist-credentials: false From 3e376b146dd5dfd38ae03dd48fa1e12bc7d12ead Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:32:22 +0100 Subject: [PATCH 2344/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.21 (#2633) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.21 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 503b1b519530..83bf935429ee 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.20 + 0.9.21 test From 000f72026e1464ec698032eff6eeb31afcfa963a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:32:40 +0100 Subject: [PATCH 2345/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.21 (#2634) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.21 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 83bf935429ee..74c54e3770d3 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.20 + 0.9.21 true com.example.bigquery.NativeImageBigquerySample From 5d8d9a6dadb901b6b89b992965f0d1af332a6328 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:40:12 +0100 Subject: [PATCH 2346/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20230401-2.0.0 (#2631) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20230318-2.0.0` -> `v2-rev20230401-2.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20230401-2.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20230401-2.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20230401-2.0.0/compatibility-slim/v2-rev20230318-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20230401-2.0.0/confidence-slim/v2-rev20230318-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 55fee069bb67..15566247707a 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20230318-2.0.0 + v2-rev20230401-2.0.0 3.7.0 11.0.0 From 3fc62bcad9412025f7466ac4aa1c67bd0b578d08 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:43:42 +0100 Subject: [PATCH 2347/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.12.0 (#2636) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.12.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e684023c1182..dd6c28296d7d 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.11.0 + 26.12.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 74c54e3770d3..eb5fe378f92b 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.11.0 + 26.12.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 02697264371b..f36407f7a426 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.11.0 + 26.12.0 pom import From 843902051342889e6d6f23a84385441f1f173930 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:44:04 +0100 Subject: [PATCH 2348/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.35.0 (#2640) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 15566247707a..a60d6322aeee 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.34.2 + 2.35.0 pom import From aa2bc07f75db2ce4527ef2c5b4f7727b72459312 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:44:25 +0100 Subject: [PATCH 2349/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.22.0 (#2638) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.22.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a60d6322aeee..81572a0ca0e6 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.20.2 + 2.22.0 test From b47cf2ab7eb4e26f8f5968f8f4c5a9e13452a805 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:44:50 +0100 Subject: [PATCH 2350/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.20.3 (#2639) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.20.3 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 9af92eae8b4f..e78385a10251 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.20.2 + 2.20.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 08876559b681..be09e37f8deb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.20.2 + 2.20.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f36407f7a426..0c31faaa8b7e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.20.2 + 2.20.3 test From b2f97e90da2891ddb59fc0291b54ebcd3d945709 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Apr 2023 16:45:08 +0100 Subject: [PATCH 2351/3441] deps: update github/codeql-action action to v2.2.12 (#2635) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.2.12 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 0e457a6f89ae..bfefa0e971dd 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@04df1262e6247151b5ac09cd2c303ac36ad3f62b # v2.2.9 + uses: github/codeql-action/upload-sarif@7df0ce34898d659f95c0c4a09eaa8d4e32ee64db # v2.2.12 with: sarif_file: results.sarif From 936ef1c5d0417698a1e06a40b785a1ffa9fc5d75 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 14 Apr 2023 16:10:35 +0000 Subject: [PATCH 2352/3441] chore(main): release 2.24.5 (#2632) :robot: I have created a release *beep* *boop* --- ## [2.24.5](https://togithub.com/googleapis/java-bigquery/compare/v2.24.4...v2.24.5) (2023-04-14) ### Dependencies * Update actions/checkout action to v3.5.2 ([#2630](https://togithub.com/googleapis/java-bigquery/issues/2630)) ([95e49fd](https://togithub.com/googleapis/java-bigquery/commit/95e49fd47648ff1574e60ed3a1ab8dacb75df654)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.16.0 ([#2625](https://togithub.com/googleapis/java-bigquery/issues/2625)) ([594a7b4](https://togithub.com/googleapis/java-bigquery/commit/594a7b4bf150a5963c149f8f5f6edd18adbf99fe)) * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230401-2.0.0 ([#2631](https://togithub.com/googleapis/java-bigquery/issues/2631)) ([5d8d9a6](https://togithub.com/googleapis/java-bigquery/commit/5d8d9a6dadb901b6b89b992965f0d1af332a6328)) * Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.35.0 ([8439020](https://togithub.com/googleapis/java-bigquery/commit/843902051342889e6d6f23a84385441f1f173930)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.20.0 ([#2626](https://togithub.com/googleapis/java-bigquery/issues/2626)) ([f466b51](https://togithub.com/googleapis/java-bigquery/commit/f466b514fed248b1193900ac65be3d9a5154a858)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.7.0 ([#2637](https://togithub.com/googleapis/java-bigquery/issues/2637)) ([e8f07d7](https://togithub.com/googleapis/java-bigquery/commit/e8f07d70f754bb6a5937af7af436714bf2301af0)) * Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.21 ([#2633](https://togithub.com/googleapis/java-bigquery/issues/2633)) ([3e376b1](https://togithub.com/googleapis/java-bigquery/commit/3e376b146dd5dfd38ae03dd48fa1e12bc7d12ead)) * Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.21 ([#2634](https://togithub.com/googleapis/java-bigquery/issues/2634)) ([000f720](https://togithub.com/googleapis/java-bigquery/commit/000f72026e1464ec698032eff6eeb31afcfa963a)) * Update github/codeql-action action to v2.2.12 ([#2635](https://togithub.com/googleapis/java-bigquery/issues/2635)) ([b2f97e9](https://togithub.com/googleapis/java-bigquery/commit/b2f97e90da2891ddb59fc0291b54ebcd3d945709)) * Update ossf/scorecard-action action to v2.1.3 ([#2618](https://togithub.com/googleapis/java-bigquery/issues/2618)) ([d166401](https://togithub.com/googleapis/java-bigquery/commit/d166401edd01d6d9306027d601d26d66b661de02)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 16 ++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 23 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 732c671f1ec6..3acd1ed152c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## [2.24.5](https://github.com/googleapis/java-bigquery/compare/v2.24.4...v2.24.5) (2023-04-14) + + +### Dependencies + +* Update actions/checkout action to v3.5.2 ([#2630](https://github.com/googleapis/java-bigquery/issues/2630)) ([95e49fd](https://github.com/googleapis/java-bigquery/commit/95e49fd47648ff1574e60ed3a1ab8dacb75df654)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.16.0 ([#2625](https://github.com/googleapis/java-bigquery/issues/2625)) ([594a7b4](https://github.com/googleapis/java-bigquery/commit/594a7b4bf150a5963c149f8f5f6edd18adbf99fe)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230401-2.0.0 ([#2631](https://github.com/googleapis/java-bigquery/issues/2631)) ([5d8d9a6](https://github.com/googleapis/java-bigquery/commit/5d8d9a6dadb901b6b89b992965f0d1af332a6328)) +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.35.0 ([8439020](https://github.com/googleapis/java-bigquery/commit/843902051342889e6d6f23a84385441f1f173930)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.20.0 ([#2626](https://github.com/googleapis/java-bigquery/issues/2626)) ([f466b51](https://github.com/googleapis/java-bigquery/commit/f466b514fed248b1193900ac65be3d9a5154a858)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.7.0 ([#2637](https://github.com/googleapis/java-bigquery/issues/2637)) ([e8f07d7](https://github.com/googleapis/java-bigquery/commit/e8f07d70f754bb6a5937af7af436714bf2301af0)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.21 ([#2633](https://github.com/googleapis/java-bigquery/issues/2633)) ([3e376b1](https://github.com/googleapis/java-bigquery/commit/3e376b146dd5dfd38ae03dd48fa1e12bc7d12ead)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.21 ([#2634](https://github.com/googleapis/java-bigquery/issues/2634)) ([000f720](https://github.com/googleapis/java-bigquery/commit/000f72026e1464ec698032eff6eeb31afcfa963a)) +* Update github/codeql-action action to v2.2.12 ([#2635](https://github.com/googleapis/java-bigquery/issues/2635)) ([b2f97e9](https://github.com/googleapis/java-bigquery/commit/b2f97e90da2891ddb59fc0291b54ebcd3d945709)) +* Update ossf/scorecard-action action to v2.1.3 ([#2618](https://github.com/googleapis/java-bigquery/issues/2618)) ([d166401](https://github.com/googleapis/java-bigquery/commit/d166401edd01d6d9306027d601d26d66b661de02)) + ## [2.24.4](https://github.com/googleapis/java-bigquery/compare/v2.24.3...v2.24.4) (2023-03-30) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9fd0525e2658..38b954e4a0e8 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.24.5-SNAPSHOT + 2.24.5 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bec749a9290a..f6ee7e14a9e2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.24.5-SNAPSHOT + 2.24.5 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.24.5-SNAPSHOT + 2.24.5 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 81572a0ca0e6..feed67da2a04 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.24.5-SNAPSHOT + 2.24.5 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.24.5-SNAPSHOT + 2.24.5 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index be09e37f8deb..6d3aa9bcf678 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.24.5-SNAPSHOT + 2.24.5 diff --git a/versions.txt b/versions.txt index 11a84493f83f..7ea227bbc072 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.24.4:2.24.5-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.24.5:2.24.5 \ No newline at end of file From b9c2f60cb296f488cc4095b54fbcc459dc2f3fa5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Apr 2023 19:12:35 +0100 Subject: [PATCH 2353/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20230408-2.0.0 (#2650) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20230408-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 +++--- pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index dd6c28296d7d..f1b945082d98 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.24.4' +implementation 'com.google.cloud:google-cloud-bigquery:2.24.5' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.24.4" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.24.5" ``` @@ -349,7 +349,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.24.4 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.24.5 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/pom.xml b/pom.xml index feed67da2a04..9fa0174fad15 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20230401-2.0.0 + v2-rev20230408-2.0.0 3.7.0 11.0.0 From cc843a9c9296266380511a72ba593875dae56c43 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 19 Apr 2023 19:04:37 +0000 Subject: [PATCH 2354/3441] chore(main): release 2.24.6-SNAPSHOT (#2641) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 38b954e4a0e8..d13800bb9545 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.24.5 + 2.24.6-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f6ee7e14a9e2..ba6ab0dd36f2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.24.5 + 2.24.6-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.24.5 + 2.24.6-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9fa0174fad15..0db1d68be69e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.24.5 + 2.24.6-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.24.5 + 2.24.6-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6d3aa9bcf678..6f1e9958c351 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.24.5 + 2.24.6-SNAPSHOT diff --git a/versions.txt b/versions.txt index 7ea227bbc072..910b4bda751d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.24.5:2.24.5 \ No newline at end of file +google-cloud-bigquery:2.24.5:2.24.6-SNAPSHOT \ No newline at end of file From 885ecfedcac5565c7e2b3a6d931fc0ff0d55a5fe Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Apr 2023 16:58:47 +0200 Subject: [PATCH 2355/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.24.5 (#2646) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.24.5 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f1b945082d98..501e366f38ef 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.24.4 + 2.24.5 ``` @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.12.0') +implementation platform('com.google.cloud:libraries-bom:26.13.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e78385a10251..f7975045a96f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.24.4 + 2.24.5 From 3ef58b1e846c9f2d875202ac523a4aa47c444a9f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Apr 2023 16:59:09 +0200 Subject: [PATCH 2356/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.18.0 (#2647) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.18.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 0db1d68be69e..27777032bd2a 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.16.0 + 2.18.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f7975045a96f..0d3821b67903 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.16.0 + 2.18.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6f1e9958c351..5c16f2509986 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.16.0 + 2.18.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0c31faaa8b7e..f602601ce5ce 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.16.0 + 2.18.0 test From 29bd415c5c3d3f3c433821277fcd831796daa3d2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Apr 2023 17:02:31 +0200 Subject: [PATCH 2357/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.18.0 (#2648) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.18.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 27777032bd2a..39b1571cd217 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.16.0 + 2.18.0 test From b6326f3aed15d312987109009af66c7aa5a30a1d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Apr 2023 17:39:49 +0200 Subject: [PATCH 2358/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.22.0 (#2649) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 39b1571cd217..0d5128acabb0 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.20.0 + 1.22.0 pom import From 87dec51c690e6a129b302691b9d795dc3dd60abe Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Apr 2023 17:40:16 +0200 Subject: [PATCH 2359/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.20.4 (#2651) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0d3821b67903..50fe58e88bdc 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.20.3 + 2.20.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5c16f2509986..ddbeaabc5ebb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.20.3 + 2.20.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f602601ce5ce..bc9a572aafff 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.20.3 + 2.20.4 test From 22d0871851af505cae28845924ce6d244bd82cc9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Apr 2023 17:40:41 +0200 Subject: [PATCH 2360/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.4.3 (#2655) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0d5128acabb0..054cf0f764c9 100644 --- a/pom.xml +++ b/pom.xml @@ -197,7 +197,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.4.2 + 3.4.3 From 6182a3cc119abc40e963d56953af0dfb879ddf7f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Apr 2023 17:43:15 +0200 Subject: [PATCH 2361/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.13.0 (#2656) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.13.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 501e366f38ef..c986a14291ab 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.12.0 + 26.13.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index eb5fe378f92b..09fe062baf0a 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.12.0 + 26.13.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index bc9a572aafff..0918a625c315 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.12.0 + 26.13.0 pom import From d8f041b216d74e02f655a21814be03101c022e83 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Apr 2023 18:14:13 +0200 Subject: [PATCH 2362/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.22.1 (#2663) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.22.0` -> `2.22.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.22.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.22.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.22.1/compatibility-slim/2.22.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.22.1/confidence-slim/2.22.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.22.1`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​2221-httpsgithubcomgoogleapisjava-storagecomparev2220v2221-2023-04-26) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.22.0...v2.22.1) ##### Bug Fixes - Introduce new BlobId#toGsUtilUriWithGeneration ([#​1998](https://togithub.com/googleapis/java-storage/issues/1998)) ([68de5c7](https://togithub.com/googleapis/java-storage/commit/68de5c7fae6df2f3df5c8c413b206bd7c7e230ea)) - Update grpc x-goog-user-project handling gracefulness ([#​1983](https://togithub.com/googleapis/java-storage/issues/1983)) ([f274739](https://togithub.com/googleapis/java-storage/commit/f2747391b6daadd6a12a2dcb54714cce237eb1ac)) ##### Documentation - Update routing annotations for CancelResumableWriteRequest and QueryWriteStatusRequest ([#​1992](https://togithub.com/googleapis/java-storage/issues/1992)) ([e36f8f1](https://togithub.com/googleapis/java-storage/commit/e36f8f1822d1290b984a8ae57efedd0276ca39f5)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.8.0 ([#​1995](https://togithub.com/googleapis/java-storage/issues/1995)) ([b7fb037](https://togithub.com/googleapis/java-storage/commit/b7fb0373955cf9d60ce46a3827152041c19e943e))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 054cf0f764c9..84881f0b905c 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.22.0 + 2.22.1 test From 319f98eee611a10cf26582e32c9e6f8e24385565 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Apr 2023 18:16:52 +0200 Subject: [PATCH 2363/3441] deps: update dependency org.junit.vintage:junit-vintage-engine to v5.9.3 (#2660) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.junit.vintage:junit-vintage-engine](https://junit.org/junit5/) ([source](https://togithub.com/junit-team/junit5)) | `5.9.2` -> `5.9.3` | [![age](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.3/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.3/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.3/compatibility-slim/5.9.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.junit.vintage:junit-vintage-engine/5.9.3/confidence-slim/5.9.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 09fe062baf0a..436adc9b244c 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ org.junit.vintage junit-vintage-engine - 5.9.2 + 5.9.3 test From 691a47abb63bd34b5c5c57439124d4713013b94c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Apr 2023 18:18:12 +0200 Subject: [PATCH 2364/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.8.0 (#2659) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/gapic-generator-java) | `3.7.0` -> `3.8.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.8.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.8.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.8.0/compatibility-slim/3.7.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.8.0/confidence-slim/3.7.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 84881f0b905c..4e727fef168e 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230408-2.0.0 - 3.7.0 + 3.8.0 11.0.0
    From dfd15cd575d7126f3b0ba7a91f0f5a5094db428a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Apr 2023 18:37:16 +0200 Subject: [PATCH 2365/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.36.0 (#2664) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4e727fef168e..98bd630bbd0e 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.35.0 + 2.36.0 pom import From 5c10a48c62fc27f248a9f497103a35731ea41d55 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Apr 2023 18:37:48 +0200 Subject: [PATCH 2366/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.21.0 (#2665) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 50fe58e88bdc..67034532a211 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.20.4 + 2.21.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ddbeaabc5ebb..6c32629f1a4e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.20.4 + 2.21.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0918a625c315..4727327d7ef8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.20.4 + 2.21.0 test From 55048caf6b308dca3a0961595a4a735c44d99bbb Mon Sep 17 00:00:00 2001 From: emkornfield Date: Thu, 27 Apr 2023 14:26:13 -0400 Subject: [PATCH 2367/3441] feat: add ICEBERG format options (#2662) Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [x] Ensure the tests and linter pass - [x] Code coverage does not decrease (if any source code was changed) - [x] Appropriate docs were updated (if necessary) --- .../java/com/google/cloud/bigquery/FormatOptions.java | 8 ++++++++ .../java/com/google/cloud/bigquery/FormatOptionsTest.java | 2 ++ 2 files changed, 10 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java index 9ea5600ddc6b..c5acd48f6a12 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java @@ -43,6 +43,7 @@ public class FormatOptions implements Serializable { static final String GOOGLE_SHEETS = "GOOGLE_SHEETS"; static final String PARQUET = "PARQUET"; static final String ORC = "ORC"; + static final String ICEBERG = "ICEBERG"; private static final long serialVersionUID = -443376052020423691L; @@ -115,6 +116,11 @@ public static FormatOptions orc() { return new FormatOptions(ORC); } + /** Default options for the Apache Iceberg table format. */ + public static FormatOptions iceberg() { + return new FormatOptions(ICEBERG); + } + /** Default options for the provided format. */ public static FormatOptions of(String format) { checkArgument(!isNullOrEmpty(format), "Provided format is null or empty"); @@ -130,6 +136,8 @@ public static FormatOptions of(String format) { return bigtable(); } else if (format.equals(PARQUET)) { return parquet(); + } else if (format.equals(ICEBERG)) { + return iceberg(); } return new FormatOptions(format); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java index 2427b90abd3a..d3cfb6e3303f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java @@ -41,6 +41,7 @@ public void testFactoryMethods() { assertEquals(FormatOptions.DATASTORE_BACKUP, FormatOptions.datastoreBackup().getType()); assertEquals(FormatOptions.AVRO, FormatOptions.avro().getType()); assertEquals(FormatOptions.GOOGLE_SHEETS, FormatOptions.googleSheets().getType()); + assertEquals(FormatOptions.ICEBERG, FormatOptions.iceberg().getType()); } @Test @@ -53,5 +54,6 @@ public void testEquals() { assertEquals( FormatOptions.datastoreBackup().hashCode(), FormatOptions.datastoreBackup().hashCode()); assertEquals(FormatOptions.googleSheets(), FormatOptions.googleSheets()); + assertEquals(FormatOptions.iceberg(), FormatOptions.iceberg()); } } From fea119b79eea54e9f0d221e1e71a2ca77957c657 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 28 Apr 2023 00:40:12 +0200 Subject: [PATCH 2368/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.36.1 (#2668) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.36.0` -> `2.36.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.36.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.36.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.36.1/compatibility-slim/2.36.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.36.1/confidence-slim/2.36.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquerystorage ### [`v2.36.1`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2361-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2360v2361-2023-04-27) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.36.0...v2.36.1) ##### Bug Fixes - Remove teh 30 minutes wait trying to refresh schema. Customers s… ([#​2088](https://togithub.com/googleapis/java-bigquerystorage/issues/2088)) ([3ec294f](https://togithub.com/googleapis/java-bigquerystorage/commit/3ec294f4b7db34bb44d862224189d8fc42821b7d))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 98bd630bbd0e..cce87ec25c9d 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.36.0 + 2.36.1 pom import From 02b1f23f4e8f78cef5d3cb7ae40432fcf1214f30 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 27 Apr 2023 19:11:13 -0400 Subject: [PATCH 2369/3441] chore(main): release 2.25.0 (#2654) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 17 +++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 24 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3acd1ed152c9..d66330e23a51 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [2.25.0](https://github.com/googleapis/java-bigquery/compare/v2.24.5...v2.25.0) (2023-04-27) + + +### Features + +* Add ICEBERG format options ([#2662](https://github.com/googleapis/java-bigquery/issues/2662)) ([55048ca](https://github.com/googleapis/java-bigquery/commit/55048caf6b308dca3a0961595a4a735c44d99bbb)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.18.0 ([#2648](https://github.com/googleapis/java-bigquery/issues/2648)) ([29bd415](https://github.com/googleapis/java-bigquery/commit/29bd415c5c3d3f3c433821277fcd831796daa3d2)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230408-2.0.0 ([#2650](https://github.com/googleapis/java-bigquery/issues/2650)) ([b9c2f60](https://github.com/googleapis/java-bigquery/commit/b9c2f60cb296f488cc4095b54fbcc459dc2f3fa5)) +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.36.1 ([fea119b](https://github.com/googleapis/java-bigquery/commit/fea119b79eea54e9f0d221e1e71a2ca77957c657)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.22.0 ([#2649](https://github.com/googleapis/java-bigquery/issues/2649)) ([b6326f3](https://github.com/googleapis/java-bigquery/commit/b6326f3aed15d312987109009af66c7aa5a30a1d)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.8.0 ([#2659](https://github.com/googleapis/java-bigquery/issues/2659)) ([691a47a](https://github.com/googleapis/java-bigquery/commit/691a47abb63bd34b5c5c57439124d4713013b94c)) +* Update dependency org.junit.vintage:junit-vintage-engine to v5.9.3 ([#2660](https://github.com/googleapis/java-bigquery/issues/2660)) ([319f98e](https://github.com/googleapis/java-bigquery/commit/319f98eee611a10cf26582e32c9e6f8e24385565)) + ## [2.24.5](https://github.com/googleapis/java-bigquery/compare/v2.24.4...v2.24.5) (2023-04-14) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d13800bb9545..7d6dd7019d80 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.24.6-SNAPSHOT + 2.25.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ba6ab0dd36f2..cea6e7198de1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.24.6-SNAPSHOT + 2.25.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.24.6-SNAPSHOT + 2.25.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index cce87ec25c9d..c55849330155 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.24.6-SNAPSHOT + 2.25.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.24.6-SNAPSHOT + 2.25.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6c32629f1a4e..818668ba0493 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.24.6-SNAPSHOT + 2.25.0 diff --git a/versions.txt b/versions.txt index 910b4bda751d..79e1d92763e0 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.24.5:2.24.6-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.25.0:2.25.0 \ No newline at end of file From 909a574e6857332dfc71c746c4500b601de57dcf Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 28 Apr 2023 13:28:38 +0000 Subject: [PATCH 2370/3441] chore(main): release 2.25.1-SNAPSHOT (#2669) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- README.md | 6 +++--- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index c986a14291ab..949a73cc428d 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.24.5' +implementation 'com.google.cloud:google-cloud-bigquery:2.25.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.24.5" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.25.0" ``` @@ -349,7 +349,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.24.5 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.25.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 7d6dd7019d80..ab1738a2d74c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.25.0 + 2.25.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index cea6e7198de1..82186f4764a2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.25.0 + 2.25.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.25.0 + 2.25.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c55849330155..d458d7aac9ff 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.25.0 + 2.25.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.25.0 + 2.25.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 818668ba0493..9c920c12cfc0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.25.0 + 2.25.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 79e1d92763e0..7fc5c0eadf35 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.25.0:2.25.0 \ No newline at end of file +google-cloud-bigquery:2.25.0:2.25.1-SNAPSHOT \ No newline at end of file From e1326c8b615f392f80a09d36a1b4cef79dfea662 Mon Sep 17 00:00:00 2001 From: Jonathan Swenson Date: Thu, 4 May 2023 05:16:13 -0700 Subject: [PATCH 2371/3441] fix: Move ratio calculation for whether to use read API to avoid NPE with setUseReadAPI(false) (#2509) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [x] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [x] Ensure the tests and linter pass - [x] Code coverage does not decrease (if any source code was changed) - [x] Appropriate docs were updated (if necessary) Fixes #2508 ☕️ --- README.md | 2 +- .../google/cloud/bigquery/ConnectionImpl.java | 14 +++----- .../cloud/bigquery/ConnectionImplTest.java | 32 +++++++++++++++++++ 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 949a73cc428d..9d3f2494c96b 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.13.0') +implementation platform('com.google.cloud:libraries-bom:26.14.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index eb0072905c3a..17a459312b21 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -1203,22 +1203,18 @@ boolean isFastQuerySupported() { @VisibleForTesting boolean useReadAPI(Long totalRows, Long pageRows, Schema schema, Boolean hasQueryParameters) { - if ((totalRows == null || pageRows == null) - && Boolean.TRUE.equals( - connectionSettings - .getUseReadAPI())) { // totalRows and pageRows are returned null when the job is not - // complete - return true; - } - // Read API does not yet support Interval Type or QueryParameters if (containsIntervalType(schema) || hasQueryParameters) { logger.log(Level.INFO, "\n Schema has IntervalType, or QueryParameters. Disabling ReadAPI"); return false; } - long resultRatio = totalRows / pageRows; + if (totalRows == null || pageRows == null) { + return connectionSettings.getUseReadAPI(); + } + if (Boolean.TRUE.equals(connectionSettings.getUseReadAPI())) { + long resultRatio = totalRows / pageRows; return resultRatio >= connectionSettings.getTotalToPageRowCountRatio() && totalRows > connectionSettings.getMinResultSize(); } else { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java index 4b379629cfd2..d6348f053e86 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java @@ -76,6 +76,12 @@ public class ConnectionImplTest { Field.newBuilder("state_name", StandardSQLTypeName.STRING) .setMode(Field.Mode.NULLABLE) .build()); + + private static final Schema QUERY_SCHEMA_WITH_INTERVAL_FIELD = + Schema.of( + Field.newBuilder("interval", StandardSQLTypeName.INTERVAL) + .setMode(Field.Mode.NULLABLE) + .build()); private static final TableSchema FAST_QUERY_TABLESCHEMA = QUERY_SCHEMA.toPb(); private static final BigQueryResult BQ_RS_MOCK_RES = new BigQueryResultImpl(QUERY_SCHEMA, 2, null, null); @@ -661,6 +667,32 @@ public void testGetSubsequentQueryResultsWithJob() { .getSubsequentQueryResultsWithJob(10000L, 100L, jobId, GET_QUERY_RESULTS_RESPONSE, false); } + @Test + public void testUseReadApi() { + ConnectionSettings connectionSettingsSpy = Mockito.spy(ConnectionSettings.class); + doReturn(true).when(connectionSettingsSpy).getUseReadAPI(); + doReturn(2).when(connectionSettingsSpy).getTotalToPageRowCountRatio(); + doReturn(100).when(connectionSettingsSpy).getMinResultSize(); + + connection = (ConnectionImpl) bigquery.createConnection(connectionSettingsSpy); + + // defaults to connectionSettings.getUseReadAPI() when total/page rows are null (job is still + // running) + assertTrue(connection.useReadAPI(null, null, QUERY_SCHEMA, false)); + + assertFalse(connection.useReadAPI(10000L, 10000L, QUERY_SCHEMA, false)); + assertFalse(connection.useReadAPI(50L, 10L, QUERY_SCHEMA, false)); + assertTrue(connection.useReadAPI(10000L, 10L, QUERY_SCHEMA, false)); + + // interval and query parameters not supported + assertFalse(connection.useReadAPI(10000L, 10L, QUERY_SCHEMA_WITH_INTERVAL_FIELD, false)); + assertFalse(connection.useReadAPI(10000L, 10L, QUERY_SCHEMA, true)); + + doReturn(false).when(connectionSettingsSpy).getUseReadAPI(); + assertFalse(connection.useReadAPI(null, null, QUERY_SCHEMA, false)); + assertFalse(connection.useReadAPI(10000L, 10L, QUERY_SCHEMA, false)); + } + @Test public void testGetPageCacheSize() { ConnectionImpl connectionSpy = Mockito.spy(connection); From 4165e5549d7a8e8e011d7700bc791e9b470c670d Mon Sep 17 00:00:00 2001 From: David Rabinowitz Date: Thu, 4 May 2023 09:32:12 -0700 Subject: [PATCH 2372/3441] feat: add field in HivePartitioningOptions (#2678) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ v] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ v] Ensure the tests and linter pass - [ v] Code coverage does not decrease (if any source code was changed) - [v ] Appropriate docs were updated (if necessary) Fixes #2677 ☕️ --- .../bigquery/HivePartitioningOptions.java | 33 ++++++++++++-- .../bigquery/HivePartitioningOptionsTest.java | 4 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 44 +++++++++++++++++++ pom.xml | 2 +- 4 files changed, 79 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java index db6e434ce6a9..7df046ee1160 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java @@ -17,6 +17,7 @@ package com.google.cloud.bigquery; import com.google.common.base.MoreObjects; +import java.util.List; import java.util.Objects; /** HivePartitioningOptions currently supported types include: AVRO, CSV, JSON, ORC and Parquet. */ @@ -25,12 +26,14 @@ public final class HivePartitioningOptions { private final String mode; private final Boolean requirePartitionFilter; private final String sourceUriPrefix; + private final List fields; public static final class Builder { private String mode; private Boolean requirePartitionFilter; private String sourceUriPrefix; + private List fields; private Builder() {} @@ -38,6 +41,7 @@ private Builder(HivePartitioningOptions options) { this.mode = options.mode; this.requirePartitionFilter = options.requirePartitionFilter; this.sourceUriPrefix = options.sourceUriPrefix; + this.fields = options.fields; } /** @@ -78,6 +82,19 @@ public Builder setSourceUriPrefix(String sourceUriPrefix) { return this; } + /** + * [Output-only] For permanent external tables, this field is populated with the hive partition + * keys in the order they were inferred. + * + *

    The types of the partition keys can be deduced by checking the table schema (which will + * include the partition keys). Not every API will populate this field in the output. For + * example, Tables.Get will populate it, but Tables.List will not contain this field. + */ + public Builder setFields(List fields) { + this.fields = fields; + return this; + } + /** Creates a {@link HivePartitioningOptions} object. */ public HivePartitioningOptions build() { return new HivePartitioningOptions(this); @@ -88,6 +105,7 @@ private HivePartitioningOptions(Builder builder) { this.mode = builder.mode; this.requirePartitionFilter = builder.requirePartitionFilter; this.sourceUriPrefix = builder.sourceUriPrefix; + this.fields = builder.fields; } /* Returns the mode of hive partitioning */ @@ -108,6 +126,11 @@ public String getSourceUriPrefix() { return sourceUriPrefix; } + /* Returns the fields of hive partitioning */ + public List getFields() { + return fields; + } + /** Returns a builder for the {@link HivePartitioningOptions} object. */ public Builder toBuilder() { return new Builder(this); @@ -135,13 +158,13 @@ public boolean equals(Object obj) { && Objects.equals(mode, ((HivePartitioningOptions) obj).getMode()) && Objects.equals( requirePartitionFilter, ((HivePartitioningOptions) obj).getRequirePartitionFilter()) - && Objects.equals( - sourceUriPrefix, ((HivePartitioningOptions) obj).getSourceUriPrefix()); + && Objects.equals(sourceUriPrefix, ((HivePartitioningOptions) obj).getSourceUriPrefix()) + && Objects.equals(fields, ((HivePartitioningOptions) obj).getFields()); } @Override public int hashCode() { - return Objects.hash(mode, sourceUriPrefix); + return Objects.hash(mode, sourceUriPrefix, fields); } com.google.api.services.bigquery.model.HivePartitioningOptions toPb() { @@ -150,6 +173,7 @@ com.google.api.services.bigquery.model.HivePartitioningOptions toPb() { options.setMode(mode); options.setRequirePartitionFilter(requirePartitionFilter); options.setSourceUriPrefix(sourceUriPrefix); + options.setFields(fields); return options; } @@ -165,6 +189,9 @@ static HivePartitioningOptions fromPb( if (options.getSourceUriPrefix() != null) { builder.setSourceUriPrefix(options.getSourceUriPrefix()); } + if (options.getFields() != null) { + builder.setFields(options.getFields()); + } return builder.build(); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java index 05bf05b9a194..51baf918b8f2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java @@ -18,6 +18,8 @@ import static com.google.common.truth.Truth.assertThat; +import java.util.Arrays; +import java.util.List; import org.junit.Test; public class HivePartitioningOptionsTest { @@ -25,11 +27,13 @@ public class HivePartitioningOptionsTest { private static final String MODE = "STRING"; private static final String SOURCE_URI_PREFIX = "gs://bucket/path_to_table"; private static final Boolean REQUIRE_PARTITION_FILTER = true; + private static final List FIELDS = Arrays.asList("FIELD1", "FIELD2"); private static final HivePartitioningOptions HIVE_PARTITIONING_OPTIONS = HivePartitioningOptions.newBuilder() .setMode(MODE) .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) .setSourceUriPrefix(SOURCE_URI_PREFIX) + .setFields(FIELDS) .build(); @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index bf59c2b67e3f..fda089c0eaaa 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -5233,4 +5233,48 @@ public void testCloneTableCopyJob() throws InterruptedException { assertTrue(remoteTable.delete()); assertTrue(cloneTable.delete()); } + + @Test + public void testHivePartitioningOptionsFieldsFieldExistence() throws InterruptedException { + String tableName = "hive_partitioned_external_table"; + + // Create data on GCS + String sourceDirectory = "bigquery/hive-partitioning-table/example"; + BlobInfo blobInfo = BlobInfo.newBuilder(BUCKET, sourceDirectory + "/key=foo/data.json").build(); + assertNotNull( + "Failed to upload JSON to GCS", + storage.create(blobInfo, "{\"name\":\"bar\"}".getBytes(StandardCharsets.UTF_8))); + String sourceUri = "gs://" + BUCKET + "/" + sourceDirectory + "/*"; + String sourceUriPrefix = "gs://" + BUCKET + "/" + sourceDirectory + "/"; + + // Create the external table + HivePartitioningOptions hivePartitioningOptions = + HivePartitioningOptions.newBuilder() + .setMode("AUTO") + .setRequirePartitionFilter(true) + .setSourceUriPrefix(sourceUriPrefix) + .build(); + + TableId tableId = TableId.of(DATASET, tableName); + ExternalTableDefinition customTable = + ExternalTableDefinition.newBuilder(sourceUri, FormatOptions.json()) + .setAutodetect(true) + .setHivePartitioningOptions(hivePartitioningOptions) + .build(); + bigquery.create(TableInfo.of(tableId, customTable)); + + // Validate the existence of the field HivePartitioningOptions.fields + Table table = bigquery.getTable(tableId); + assertThat(table).isNotNull(); + HivePartitioningOptions options = + ((ExternalTableDefinition) table.getDefinition()).getHivePartitioningOptions(); + List fields = options.getFields(); + assertThat(fields).isNotNull(); + assertThat(fields).hasSize(1); + assertThat(fields).contains("key"); + + // Clean up + assertTrue(table.delete()); + assertTrue(storage.delete(blobInfo.getBlobId())); + } } diff --git a/pom.xml b/pom.xml index d458d7aac9ff..22615bb3cbd0 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20230408-2.0.0 + v2-rev20230422-2.0.0 3.8.0 11.0.0 From 4c01698e571d7adbaf914984cdf65f6c35e4edb8 Mon Sep 17 00:00:00 2001 From: emkornfield Date: Fri, 5 May 2023 11:48:12 -0400 Subject: [PATCH 2373/3441] feat: Allow passing autodetect_schema on table update (#2661) Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - Didn't open an issue because this seems trivial, happy to adapt if necessary. - [x ] Ensure the tests and linter pass (mvn test verify - [x ] Code coverage does not decrease (if any source code was changed) - [x ] Appropriate docs were updated (if necessary) --- .../com/google/cloud/bigquery/BigQuery.java | 8 ++++ .../cloud/bigquery/spi/v2/BigQueryRpc.java | 1 + .../bigquery/spi/v2/HttpBigQueryRpc.java | 1 + .../cloud/bigquery/BigQueryImplTest.java | 18 +++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 39 +++++++++++++++++++ 5 files changed, 67 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index bfcdc542ab65..8f11d03fa078 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -376,6 +376,14 @@ public static TableOption fields(TableField... fields) { return new TableOption( BigQueryRpc.Option.FIELDS, Helper.selector(TableField.REQUIRED_FIELDS, fields)); } + + /** + * Returns an option to specify the schema of the table (only applicable for external tables) + * should be autodetected when updating the table from the underlying source. + */ + public static TableOption autodetectSchema(boolean autodetect) { + return new TableOption(BigQueryRpc.Option.AUTODETECT_SCHEMA, autodetect); + } } /* Class for specifying IAM options. */ diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index eecf5d36f56a..33480a91b30e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -46,6 +46,7 @@ enum Option { DELETE_CONTENTS("deleteContents"), ALL_DATASETS("all"), ALL_USERS("allUsers"), + AUTODETECT_SCHEMA("autodetectSchema"), LABEL_FILTER("filter"), MIN_CREATION_TIME("minCreationTime"), MAX_CREATION_TIME("maxCreationTime"), diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 6bad06199b5e..a85e4b6bfeda 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -279,6 +279,7 @@ public Table patch(Table table, Map options) { .patch(reference.getProjectId(), reference.getDatasetId(), reference.getTableId(), table) .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) + .setAutodetectSchema(BigQueryRpc.Option.AUTODETECT_SCHEMA.getBoolean(options)) .execute(); } catch (IOException ex) { throw translate(ex); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 80ba366f81bc..3bbdb98fd33c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -1260,6 +1260,24 @@ public void testUpdateTableWithSelectedFields() { .patch(eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture()); } + @Test + public void testUpdateTableWithAutoDetectSchema() { + TableInfo updatedTableInfo = TABLE_INFO.toBuilder().setDescription("newDescription").build(); + TableInfo updatedTableInfoWithProject = + TABLE_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); + when(bigqueryRpcMock.patch(eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture())) + .thenReturn(updatedTableInfoWithProject.toPb()); + bigquery = options.getService(); + Table table = bigquery.update(updatedTableInfo, BigQuery.TableOption.autodetectSchema(true)); + Boolean selector = + (Boolean) capturedOptions.getValue().get(BigQueryRpc.Option.AUTODETECT_SCHEMA); + assertTrue(selector); + assertEquals( + new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfoWithProject)), table); + verify(bigqueryRpcMock) + .patch(eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture()); + } + @Test public void testInsertAllWithRowIdShouldRetry() { Map row1 = ImmutableMap.of("field", "value1"); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index fda089c0eaaa..6d61fd2114c2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1566,6 +1566,45 @@ public void testSetPermExternalTableSchema() { assertTrue(remoteTable.delete()); } + @Test + public void testUpdatePermExternableTableWithAutodetectSchemaUpdatesSchema() { + String tableName = "test_create_external_table_perm_with_auto_detect"; + TableId tableId = TableId.of(DATASET, tableName); + Schema setSchema = Schema.of(TIMESTAMP_FIELD_SCHEMA, STRING_FIELD_SCHEMA); + + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.newBuilder( + "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) + .setSchema(setSchema) + .build(); + TableInfo tableInfo = TableInfo.of(tableId, externalTableDefinition); + Table createdTable = bigquery.create(tableInfo); + + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertNotNull(remoteTable); + assertEquals(setSchema, remoteTable.getDefinition().getSchema()); + + Table updatedTable = + bigquery.update( + createdTable + .toBuilder() + .setDefinition( + ((ExternalTableDefinition) createdTable.getDefinition()) + .toBuilder() + .setSchema(null) + .setAutodetect(true) + .build()) + .build(), + BigQuery.TableOption.autodetectSchema(true)); + // Schema should change. + assertTrue(!updatedTable.getDefinition().getSchema().equals(setSchema)); + + assertTrue(remoteTable.delete()); + } + @Test public void testCreateViewTable() throws InterruptedException { String tableName = "test_create_view_table"; From 92e47622e31a036be1504c571623610c3b3d8562 Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Tue, 9 May 2023 10:00:23 -0400 Subject: [PATCH 2374/3441] chore(deps): update ghcr.io/graalvm/graalvm-ce docker tag to v22.3.2 (#2684) Native Image checks run as continuous jobs in bigquery. --- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 9c1849588cc3..9eea05badaeb 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.0" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.2" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index de44999b8e86..5150fb29249b 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.0" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.2" } env_vars: { From cf5d758fe6aad4b374c34940aa93f8060f779505 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 11 May 2023 22:20:23 +0200 Subject: [PATCH 2375/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.22 (#2687) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.graalvm.buildtools:junit-platform-native](https://togithub.com/graalvm/native-build-tools) | `0.9.21` -> `0.9.22` | [![age](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.22/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.22/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.22/compatibility-slim/0.9.21)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.22/confidence-slim/0.9.21)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes

    graalvm/native-build-tools ### [`v0.9.22`](https://togithub.com/graalvm/native-build-tools/releases/tag/0.9.22) [Compare Source](https://togithub.com/graalvm/native-build-tools/compare/0.9.21...0.9.22) #### What's Changed - Fix lookup of metadata repository by [@​melix](https://togithub.com/melix) in [https://togithub.com/graalvm/native-build-tools/pull/425](https://togithub.com/graalvm/native-build-tools/pull/425) - Add support for `default-for` attribute by [@​sdeleuze](https://togithub.com/sdeleuze) in [https://togithub.com/graalvm/native-build-tools/pull/432](https://togithub.com/graalvm/native-build-tools/pull/432) - Bump metadata version to 0.3.0 by [@​dnestoro](https://togithub.com/dnestoro) in [https://togithub.com/graalvm/native-build-tools/pull/434](https://togithub.com/graalvm/native-build-tools/pull/434) **Full Changelog**: https://togithub.com/graalvm/native-build-tools/compare/0.9.21...0.9.22
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 436adc9b244c..47cff0169869 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.21 + 0.9.22 test From 55596590e0d0c7018201468a4b11911b1cdc3f4b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 11 May 2023 22:20:28 +0200 Subject: [PATCH 2376/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.22.2 (#2686) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.22.1` -> `2.22.2` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.22.2/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.22.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.22.2/compatibility-slim/2.22.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.22.2/confidence-slim/2.22.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.22.2`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​2222-httpsgithubcomgoogleapisjava-storagecomparev2221v2222-2023-05-09) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.22.1...v2.22.2) ##### Bug Fixes - Make Blob and Bucket update diff aware ([#​1994](https://togithub.com/googleapis/java-storage/issues/1994)) ([0adeb14](https://togithub.com/googleapis/java-storage/commit/0adeb14479fc9aef35e32d286bcd9ae414eda25a)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.9.0 ([#​2010](https://togithub.com/googleapis/java-storage/issues/2010)) ([27b9014](https://togithub.com/googleapis/java-storage/commit/27b9014a9dd67ee209c2ef59b0347a1a8beab257)) - Update dependency org.junit.vintage:junit-vintage-engine to v5.9.3 ([#​1996](https://togithub.com/googleapis/java-storage/issues/1996)) ([7839768](https://togithub.com/googleapis/java-storage/commit/7839768123d7e8a5a28076b6cc32dc0cd983d540)) - Update junit-platform.version to v5.9.3 ([#​1997](https://togithub.com/googleapis/java-storage/issues/1997)) ([5683340](https://togithub.com/googleapis/java-storage/commit/56833407f12f7efba423c0b7779a66c6f956777c))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 22615bb3cbd0..395a38d44eb5 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.22.1 + 2.22.2 test From 36abdcf7c3ceabe4861aeda8a008f9730784602d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 11 May 2023 22:22:12 +0200 Subject: [PATCH 2377/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.23.1 (#2676) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.21.0` -> `2.23.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.23.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.23.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.23.1/compatibility-slim/2.21.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.23.1/confidence-slim/2.21.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable ### [`v2.23.1`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​2231-httpsgithubcomgoogleapisjava-bigtablecomparev2230v2231-2023-05-11) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.23.0...v2.23.1) ##### Dependencies - Update dependency com.google.cloud:google-cloud-monitoring-bom to v3.18.0 ([#​1749](https://togithub.com/googleapis/java-bigtable/issues/1749)) ([1d7d391](https://togithub.com/googleapis/java-bigtable/commit/1d7d39145eefc5cbf6d015fd60a4d49441f88d1f)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.9.0 ([#​1744](https://togithub.com/googleapis/java-bigtable/issues/1744)) ([60df07f](https://togithub.com/googleapis/java-bigtable/commit/60df07fcfa653291d9e5882cf3386f13813e2883)) - Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.22 ([#​1746](https://togithub.com/googleapis/java-bigtable/issues/1746)) ([86ea9db](https://togithub.com/googleapis/java-bigtable/commit/86ea9db830f6d5f7dc0b08886bce084b4650d281)) - Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.22 ([#​1747](https://togithub.com/googleapis/java-bigtable/issues/1747)) ([caa4462](https://togithub.com/googleapis/java-bigtable/commit/caa44627d6a124d1a58d85a510962c8a7caee69b)) ### [`v2.23.0`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​2230-httpsgithubcomgoogleapisjava-bigtablecomparev2220v2230-2023-05-09) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.22.0...v2.23.0) ##### Features - Resizing channel pool size based on the work load ([#​1271](https://togithub.com/googleapis/java-bigtable/issues/1271)) ([7fb1a09](https://togithub.com/googleapis/java-bigtable/commit/7fb1a09224e1ea05cfec6eb35deaba670d1d82d2)) ##### Documentation - Clean up BetaApi annotations from built in metrics API ([#​1741](https://togithub.com/googleapis/java-bigtable/issues/1741)) ([c2fbd04](https://togithub.com/googleapis/java-bigtable/commit/c2fbd04eb64ddcfe7ea0f234f22d0691094646a4)) ### [`v2.22.0`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​2220-httpsgithubcomgoogleapisjava-bigtablecomparev2210v2220-2023-05-02) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.21.0...v2.22.0) ##### Features - Add APIs to enable batch write flow control ([#​1730](https://togithub.com/googleapis/java-bigtable/issues/1730)) ([b518d68](https://togithub.com/googleapis/java-bigtable/commit/b518d6851429db640e80ab78b3f827bb334f5409)) - Add rate limiting callable ([#​1729](https://togithub.com/googleapis/java-bigtable/issues/1729)) ([ee0da11](https://togithub.com/googleapis/java-bigtable/commit/ee0da11664d978e808d1088a419cdbd2270da147)) - Send feature flag when flow control is enabled ([#​1731](https://togithub.com/googleapis/java-bigtable/issues/1731)) ([ba147c3](https://togithub.com/googleapis/java-bigtable/commit/ba147c3520be27f4f3e622f3ef69fab716895dbe)) ##### Bug Fixes - Add feature flag proto to BUILD file ([#​1726](https://togithub.com/googleapis/java-bigtable/issues/1726)) ([7e5c646](https://togithub.com/googleapis/java-bigtable/commit/7e5c646031de22c42bb3dd81774ccd6762bd91ed))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 67034532a211..a5d7de566b48 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.21.0 + 2.23.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9c920c12cfc0..6230c8e37cac 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.21.0 + 2.23.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4727327d7ef8..11cc92d82cb0 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.21.0 + 2.23.1 test From b74da296e2d2739adb481cda417d51569d1acc51 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 11 May 2023 22:22:17 +0200 Subject: [PATCH 2378/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.9.0 (#2685) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/gapic-generator-java) | `3.8.0` -> `3.9.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.9.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.9.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.9.0/compatibility-slim/3.8.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.9.0/confidence-slim/3.8.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 395a38d44eb5..76059ba9ae03 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230422-2.0.0 - 3.8.0 + 3.9.0 11.0.0
    From 3c06abbccd61bf910873489ebf2ac0b9a3f2faf7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 11 May 2023 22:24:22 +0200 Subject: [PATCH 2379/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.14.0 (#2679) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/googleapis/java-cloud-bom)) | `26.13.0` -> `26.14.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.14.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.14.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.14.0/compatibility-slim/26.13.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.14.0/confidence-slim/26.13.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-cloud-bom ### [`v26.14.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#​26140-httpsgithubcomgoogleapisjava-cloud-bomcomparev26130v26140-2023-05-02) [Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.13.0...v26.14.0) ##### Dependencies - update dependency com.google.cloud:first-party-dependencies to v3.8.0 ([#​5943](https://togithub.com/googleapis/java-cloud-bom/issues/5943)) ([a21b99b](https://togithub.com/googleapis/java-cloud-bom/commit/a21b99bfb952b3a8387a02bf69c755b8f987b88c)) - update dependency com.google.cloud:gapic-libraries-bom to v1.10.0 ([#​5949](https://togithub.com/googleapis/java-cloud-bom/issues/5949)) ([86615dd](https://togithub.com/googleapis/java-cloud-bom/commit/86615dd3713b75f0f9e3c13e14722ea18ef9869d)) - update dependency com.google.cloud:google-cloud-bigquery to v2.25.0 ([#​5958](https://togithub.com/googleapis/java-cloud-bom/issues/5958)) ([1589569](https://togithub.com/googleapis/java-cloud-bom/commit/1589569398ac0f52e0ab0588e1dad0c872197d93)) - update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.36.1 ([#​5948](https://togithub.com/googleapis/java-cloud-bom/issues/5948)) ([48d7962](https://togithub.com/googleapis/java-cloud-bom/commit/48d7962fd5d3d075c0bef4490970a19a3a025da5)) - update dependency com.google.cloud:google-cloud-bigtable-bom to v2.21.0 ([#​5953](https://togithub.com/googleapis/java-cloud-bom/issues/5953)) ([4477816](https://togithub.com/googleapis/java-cloud-bom/commit/4477816136ad21dd116febf87e141ccab9491379)) - update dependency com.google.cloud:google-cloud-bigtable-bom to v2.22.0 ([#​5966](https://togithub.com/googleapis/java-cloud-bom/issues/5966)) ([3ebccb6](https://togithub.com/googleapis/java-cloud-bom/commit/3ebccb64233350248ddc8db16dcab01e20c009f8)) - update dependency com.google.cloud:google-cloud-datastore-bom to v2.14.5 ([#​5945](https://togithub.com/googleapis/java-cloud-bom/issues/5945)) ([9c88e22](https://togithub.com/googleapis/java-cloud-bom/commit/9c88e2244ecdb285aeb55879c1f329cd7d797487)) - update dependency com.google.cloud:google-cloud-firestore-bom to v3.10.0 ([#​5965](https://togithub.com/googleapis/java-cloud-bom/issues/5965)) ([3c34d63](https://togithub.com/googleapis/java-cloud-bom/commit/3c34d63e89e39c3043137d4c1be4ce0ad95e2775)) - update dependency com.google.cloud:google-cloud-firestore-bom to v3.9.6 ([#​5944](https://togithub.com/googleapis/java-cloud-bom/issues/5944)) ([82a8435](https://togithub.com/googleapis/java-cloud-bom/commit/82a84356e440e00c16cb5928ec802239b31d3151)) - update dependency com.google.cloud:google-cloud-logging-bom to v3.14.9 ([#​5947](https://togithub.com/googleapis/java-cloud-bom/issues/5947)) ([9f7a645](https://togithub.com/googleapis/java-cloud-bom/commit/9f7a645b75ac24a3e5f5973ae267e16676f314e9)) - update dependency com.google.cloud:google-cloud-logging-logback to v0.130.11-alpha ([#​5954](https://togithub.com/googleapis/java-cloud-bom/issues/5954)) ([4c1e32c](https://togithub.com/googleapis/java-cloud-bom/commit/4c1e32c21c912a94846671f69d22cd9b5144d84b)) - update dependency com.google.cloud:google-cloud-nio to v0.126.14 ([#​5955](https://togithub.com/googleapis/java-cloud-bom/issues/5955)) ([866a0fe](https://togithub.com/googleapis/java-cloud-bom/commit/866a0fe28eb1ae9dcdaa6dd08617d90493bc1a62)) - update dependency com.google.cloud:google-cloud-pubsub-bom to v1.123.11 ([#​5952](https://togithub.com/googleapis/java-cloud-bom/issues/5952)) ([4a2a6ce](https://togithub.com/googleapis/java-cloud-bom/commit/4a2a6ce2972a30809cdc0647b716021fc4b6484b)) - update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.12.4 ([#​5956](https://togithub.com/googleapis/java-cloud-bom/issues/5956)) ([865229e](https://togithub.com/googleapis/java-cloud-bom/commit/865229e9c951d7f99f5d372ef8d1978887bb6a18)) - update dependency com.google.cloud:google-cloud-spanner-bom to v6.41.0 ([#​5959](https://togithub.com/googleapis/java-cloud-bom/issues/5959)) ([7c07f17](https://togithub.com/googleapis/java-cloud-bom/commit/7c07f174e1580f2e52536af23e49aef482db96dc)) - update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.9.13 ([#​5957](https://togithub.com/googleapis/java-cloud-bom/issues/5957)) ([bd5c9db](https://togithub.com/googleapis/java-cloud-bom/commit/bd5c9db91de214fa67dee7dcc3644c2e67a7e06b)) - update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.9.14 ([#​5964](https://togithub.com/googleapis/java-cloud-bom/issues/5964)) ([d36fff1](https://togithub.com/googleapis/java-cloud-bom/commit/d36fff18b0d0ca894dd1a2c1eada50ad87c29d1a)) - update dependency com.google.cloud:google-cloud-storage-bom to v2.22.1 ([#​5946](https://togithub.com/googleapis/java-cloud-bom/issues/5946)) ([c5ed86b](https://togithub.com/googleapis/java-cloud-bom/commit/c5ed86be206459fbca0b52cf2adc4f1d8bac421f)) - update dependency com.google.googlejavaformat:google-java-format to v1.17.0 ([#​5963](https://togithub.com/googleapis/java-cloud-bom/issues/5963)) ([6579e69](https://togithub.com/googleapis/java-cloud-bom/commit/6579e69e0c00e8c8fa9fc2edaea8988b0ee43ba7))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9d3f2494c96b..71679584f0e1 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.13.0 + 26.14.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 47cff0169869..05451a9fa07c 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.13.0 + 26.14.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 11cc92d82cb0..877ac0e06772 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.13.0 + 26.14.0 pom import From 50a52a159b69cd0d04f0a6955a58d9067c523d74 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 11 May 2023 22:26:12 +0200 Subject: [PATCH 2380/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.25.0 (#2670) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.24.5` -> `2.25.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.25.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.25.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.25.0/compatibility-slim/2.24.5)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.25.0/confidence-slim/2.24.5)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery ### [`v2.25.0`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2250-httpsgithubcomgoogleapisjava-bigquerycomparev2245v2250-2023-04-27) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.24.5...v2.25.0) ##### Features - Add ICEBERG format options ([#​2662](https://togithub.com/googleapis/java-bigquery/issues/2662)) ([55048ca](https://togithub.com/googleapis/java-bigquery/commit/55048caf6b308dca3a0961595a4a735c44d99bbb)) ##### Dependencies - Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.18.0 ([#​2648](https://togithub.com/googleapis/java-bigquery/issues/2648)) ([29bd415](https://togithub.com/googleapis/java-bigquery/commit/29bd415c5c3d3f3c433821277fcd831796daa3d2)) - Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230408-2.0.0 ([#​2650](https://togithub.com/googleapis/java-bigquery/issues/2650)) ([b9c2f60](https://togithub.com/googleapis/java-bigquery/commit/b9c2f60cb296f488cc4095b54fbcc459dc2f3fa5)) - Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.36.1 ([fea119b](https://togithub.com/googleapis/java-bigquery/commit/fea119b79eea54e9f0d221e1e71a2ca77957c657)) - Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.22.0 ([#​2649](https://togithub.com/googleapis/java-bigquery/issues/2649)) ([b6326f3](https://togithub.com/googleapis/java-bigquery/commit/b6326f3aed15d312987109009af66c7aa5a30a1d)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.8.0 ([#​2659](https://togithub.com/googleapis/java-bigquery/issues/2659)) ([691a47a](https://togithub.com/googleapis/java-bigquery/commit/691a47abb63bd34b5c5c57439124d4713013b94c)) - Update dependency org.junit.vintage:junit-vintage-engine to v5.9.3 ([#​2660](https://togithub.com/googleapis/java-bigquery/issues/2660)) ([319f98e](https://togithub.com/googleapis/java-bigquery/commit/319f98eee611a10cf26582e32c9e6f8e24385565))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 71679584f0e1..0f0544b7ef2a 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.24.5 + 2.25.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a5d7de566b48..c60c1d833485 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.24.5 + 2.25.0 From 0c445b4525b9b56b2c8b66de3a46dc44dd5f31ce Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 11 May 2023 22:28:18 +0200 Subject: [PATCH 2381/3441] build(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.1.0 (#2682) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.maven.plugins:maven-surefire-plugin](https://maven.apache.org/surefire/) | `3.0.0` -> `3.1.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-surefire-plugin/3.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-surefire-plugin/3.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-surefire-plugin/3.1.0/compatibility-slim/3.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-surefire-plugin/3.1.0/confidence-slim/3.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 05451a9fa07c..9cfe8fc884a5 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -111,7 +111,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.0.0 + 3.1.0 **/*IT From 7700cf588d4a6d3b3267d8fd51eaf8aed1752506 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 11 May 2023 22:34:21 +0200 Subject: [PATCH 2382/3441] deps: update arrow.version to v12 (major) (#2675) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.arrow:arrow-memory-netty](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `11.0.0` -> `12.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/12.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/12.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/12.0.0/compatibility-slim/11.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-netty/12.0.0/confidence-slim/11.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [org.apache.arrow:arrow-memory-core](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `11.0.0` -> `12.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/12.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/12.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/12.0.0/compatibility-slim/11.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-memory-core/12.0.0/confidence-slim/11.0.0)](https://docs.renovatebot.com/merge-confidence/) | | [org.apache.arrow:arrow-vector](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `11.0.0` -> `12.0.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/12.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/12.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/12.0.0/compatibility-slim/11.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.arrow:arrow-vector/12.0.0/confidence-slim/11.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 76059ba9ae03..c0b548d6133a 100644 --- a/pom.xml +++ b/pom.xml @@ -56,7 +56,7 @@ google-cloud-bigquery-parent v2-rev20230422-2.0.0 3.9.0 - 11.0.0 + 12.0.0
    From a8ee5b3b3b16c5f7cf50ce851359e23ced0aae50 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 12 May 2023 15:32:18 +0200 Subject: [PATCH 2383/3441] build(deps): update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.4.0 (#2693) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.codehaus.mojo:build-helper-maven-plugin](https://www.mojohaus.org/build-helper-maven-plugin/) ([source](https://togithub.com/mojohaus/build-helper-maven-plugin)) | `3.3.0` -> `3.4.0` | [![age](https://badges.renovateapi.com/packages/maven/org.codehaus.mojo:build-helper-maven-plugin/3.4.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.codehaus.mojo:build-helper-maven-plugin/3.4.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.codehaus.mojo:build-helper-maven-plugin/3.4.0/compatibility-slim/3.3.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.codehaus.mojo:build-helper-maven-plugin/3.4.0/confidence-slim/3.3.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    mojohaus/build-helper-maven-plugin ### [`v3.4.0`](https://togithub.com/mojohaus/build-helper-maven-plugin/releases/tag/3.4.0) ##### Changes ##### 🚀 New features and improvements - Get rid of ArtifactRepository - ${localRepository} ([#​179](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/179)) [@​slawekjaranowski](https://togithub.com/slawekjaranowski) - Added a property name to the "sources" parameter for CLI usage ([#​157](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/157)) [@​gjd6640](https://togithub.com/gjd6640) ##### 🐛 Bug Fixes - Use UTF-8 for the pom ([#​173](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/173)) [@​gnodet](https://togithub.com/gnodet) ##### 📦 Dependency updates - Bump maven-plugin-annotations from 3.8.1 to 3.8.2 ([#​177](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/177)) [@​dependabot](https://togithub.com/dependabot) - Bump parent from 72 to 74 ([#​175](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/175)) [@​slawekjaranowski](https://togithub.com/slawekjaranowski) - Bump maven-invoker-plugin to 3.5.1 - add support to run its with Java 20 ([#​172](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/172)) [@​slachiewicz](https://togithub.com/slachiewicz) - Bump actions/stale from 7 to 8 ([#​171](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/171)) [@​dependabot](https://togithub.com/dependabot) - Bump maven-plugin-annotations from 3.7.1 to 3.8.1 ([#​169](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/169)) [@​dependabot](https://togithub.com/dependabot) - Bump plexus-utils from 3.5.0 to 3.5.1 ([#​170](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/170)) [@​dependabot](https://togithub.com/dependabot) - Bump mojo-parent from 70 to 72 ([#​165](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/165)) [@​dependabot](https://togithub.com/dependabot) - Bump assertj-core from 3.24.1 to 3.24.2 ([#​164](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/164)) [@​dependabot](https://togithub.com/dependabot) - Bump maven-plugin-annotations from 3.7.0 to 3.7.1 ([#​163](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/163)) [@​dependabot](https://togithub.com/dependabot) - Bump assertj-core from 3.24.0 to 3.24.1 ([#​162](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/162)) [@​dependabot](https://togithub.com/dependabot) - Bump assertj-core from 3.23.1 to 3.24.0 ([#​161](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/161)) [@​dependabot](https://togithub.com/dependabot) - Bump actions/stale from 6 to 7 ([#​160](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/160)) [@​dependabot](https://togithub.com/dependabot) - Bump maven-plugin-annotations from 3.6.4 to 3.7.0 ([#​158](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/158)) [@​dependabot](https://togithub.com/dependabot) - Bump plexus-utils from 3.4.2 to 3.5.0 ([#​151](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/151)) [@​dependabot](https://togithub.com/dependabot) - Bump mojo-parent from 69 to 70 ([#​141](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/141)) [@​dependabot](https://togithub.com/dependabot) - Bump mojo-parent from 68 to 69 ([#​140](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/140)) [@​dependabot](https://togithub.com/dependabot) - Bump mojo-parent from 67 to 68 ([#​138](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/138)) [@​dependabot](https://togithub.com/dependabot) - Bump assertj-core from 3.22.0 to 3.23.1 ([#​137](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/137)) [@​dependabot](https://togithub.com/dependabot) - Bump plexus-utils from 3.4.1 to 3.4.2 ([#​135](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/135)) [@​dependabot](https://togithub.com/dependabot) - Bump actions/stale from 4 to 5 ([#​132](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/132)) [@​dependabot](https://togithub.com/dependabot) - Bump actions/setup-java from 2 to 3 ([#​133](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/133)) [@​dependabot](https://togithub.com/dependabot) - Bump mojo-parent from 65 to 67 ([#​130](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/130)) [@​dependabot](https://togithub.com/dependabot) - Bump actions/checkout from 2 to 3 ([#​128](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/128)) [@​dependabot](https://togithub.com/dependabot) - Bump maven-plugin-annotations from 3.6.2 to 3.6.4 ([#​126](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/126)) [@​dependabot](https://togithub.com/dependabot) - Bump release-drafter/release-drafter from 5.15.0 to 5.16.1 ([#​123](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/123)) [@​dependabot](https://togithub.com/dependabot) - Bump testng from 7.4.0 to 7.5 ([#​122](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/122)) [@​dependabot](https://togithub.com/dependabot) - Bump plexus-utils from 3.0.24 to 3.4.1 ([#​121](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/121)) [@​dependabot](https://togithub.com/dependabot) ##### 👻 Maintenance - Enable spotless for code formatting ([#​180](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/180)) [@​slawekjaranowski](https://togithub.com/slawekjaranowski) - Move tests to Junit 5 ([#​174](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/174)) [@​slachiewicz](https://togithub.com/slachiewicz) - Declare Maven Core dependencies as provided ([#​125](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/125)) [@​stefanseifert](https://togithub.com/stefanseifert) - Use only major version (v5) of release drafter ([#​124](https://togithub.com/mojohaus/build-helper-maven-plugin/pull/124)) [@​stefanseifert](https://togithub.com/stefanseifert)
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- google-cloud-bigquery/pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 82186f4764a2..442051a5a38b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -187,7 +187,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.3.0 + 3.4.0 add-source diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c60c1d833485..303481bd7d15 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -92,7 +92,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.3.0 + 3.4.0 add-snippets-source diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6230c8e37cac..ab5c1a16a91f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -90,7 +90,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.3.0 + 3.4.0 add-snippets-source From f56e54161894c3be6e975ac102454afca4c9b058 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 12 May 2023 15:36:13 +0200 Subject: [PATCH 2384/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.23.0 (#2692) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-datacatalog-bom](https://togithub.com/googleapis/google-cloud-java) | `1.22.0` -> `1.23.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.23.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.23.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.23.0/compatibility-slim/1.22.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.23.0/confidence-slim/1.22.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c0b548d6133a..085fbe7557a1 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.22.0 + 1.23.0 pom import From 1dd31e4f8743757d4a0d62b87e8afa36f1a0eb83 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 12 May 2023 15:36:22 +0200 Subject: [PATCH 2385/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.19.0 (#2690) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/google-cloud-java) | `2.18.0` -> `2.19.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.19.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.19.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.19.0/compatibility-slim/2.18.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.19.0/confidence-slim/2.18.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 085fbe7557a1..49b7b10488ce 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.18.0 + 2.19.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 303481bd7d15..331ac4ea1ecd 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.18.0 + 2.19.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ab5c1a16a91f..f5625554f814 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.18.0 + 2.19.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 877ac0e06772..330260257c3f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.18.0 + 2.19.0 test From 193980319cb743e6b6c67648ddb21432e5e69ff8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 12 May 2023 15:40:20 +0200 Subject: [PATCH 2386/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.19.0 (#2691) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1](https://togithub.com/googleapis/google-cloud-java) | `2.18.0` -> `2.19.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.19.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.19.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.19.0/compatibility-slim/2.18.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.19.0/confidence-slim/2.18.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 49b7b10488ce..2aff0d26913f 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.18.0 + 2.19.0 test From c4eba81bf0cd1b8916824931ca00313de40d4cba Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Fri, 12 May 2023 14:56:15 -0400 Subject: [PATCH 2387/3441] chore: remove duplicate Query sample (#2697) --- README.md | 1 - .../main/java/com/example/bigquery/Query.java | 70 ------------------- .../java/com/example/bigquery/QueryIT.java | 65 ----------------- 3 files changed, 136 deletions(-) delete mode 100644 samples/snippets/src/main/java/com/example/bigquery/Query.java delete mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryIT.java diff --git a/README.md b/README.md index 0f0544b7ef2a..e7c05fa680e2 100644 --- a/README.md +++ b/README.md @@ -195,7 +195,6 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Load Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java) | | Load Table Clustered | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java) | | Nested Repeated Schema | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java) | -| Query | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/Query.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/Query.java) | | Query Batch | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java) | | Query Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java) | | Query Destination Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java) | diff --git a/samples/snippets/src/main/java/com/example/bigquery/Query.java b/samples/snippets/src/main/java/com/example/bigquery/Query.java deleted file mode 100644 index 8b293cd0b5ce..000000000000 --- a/samples/snippets/src/main/java/com/example/bigquery/Query.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.example.bigquery; - -// [START bigquery_query] -import com.google.cloud.bigquery.BigQuery; -import com.google.cloud.bigquery.BigQueryException; -import com.google.cloud.bigquery.BigQueryOptions; -import com.google.cloud.bigquery.QueryJobConfiguration; -import com.google.cloud.bigquery.TableResult; - -// Sample to query in a table -public class Query { - - public static void main(String[] args) { - // TODO(developer): Replace these variables before running the sample. - String projectId = "MY_PROJECT_ID"; - String datasetName = "MY_DATASET_NAME"; - String tableName = "MY_TABLE_NAME"; - String query = - "SELECT name, SUM(number) as total_people\n" - + " FROM `" - + projectId - + "." - + datasetName - + "." - + tableName - + "`" - + " WHERE state = 'TX'" - + " GROUP BY name, state" - + " ORDER BY total_people DESC" - + " LIMIT 20"; - query(query); - } - - public static void query(String query) { - try { - // Initialize client that will be used to send requests. This client only needs to be created - // once, and can be reused for multiple requests. - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - - QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build(); - - TableResult results = bigquery.query(queryConfig); - - results - .iterateAll() - .forEach(row -> row.forEach(val -> System.out.printf("%s,", val.toString()))); - - System.out.println("Query performed successfully."); - } catch (BigQueryException | InterruptedException e) { - System.out.println("Query not performed \n" + e.toString()); - } - } -} -// [END bigquery_query] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryIT.java deleted file mode 100644 index 23aa8d409c45..000000000000 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryIT.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2020 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.example.bigquery; - -import static com.google.common.truth.Truth.assertThat; - -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; -import java.util.logging.Level; -import java.util.logging.Logger; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class QueryIT { - - private final Logger log = Logger.getLogger(this.getClass().getName()); - private ByteArrayOutputStream bout; - private PrintStream out; - private PrintStream originalPrintStream; - - @Before - public void setUp() { - bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); - originalPrintStream = System.out; - System.setOut(out); - } - - @After - public void tearDown() { - // restores print statements in the original method - System.out.flush(); - System.setOut(originalPrintStream); - log.log(Level.INFO, "\n" + bout.toString()); - } - - @Test - public void testQuery() { - String query = - "SELECT name, SUM(number) as total_people" - + " FROM `bigquery-public-data.usa_names.usa_1910_2013`" - + " WHERE state = 'TX'" - + " GROUP BY name, state" - + " ORDER BY total_people DESC" - + " LIMIT 20"; - - Query.query(query); - assertThat(bout.toString()).contains("Query performed successfully."); - } -} From 487f20707c9b320a68100f85b2a1277cad9b37ea Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 15 May 2023 17:02:12 +0200 Subject: [PATCH 2388/3441] deps: update github/codeql-action action to v2.3.3 (#2658) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index bfefa0e971dd..658dc2f53003 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@7df0ce34898d659f95c0c4a09eaa8d4e32ee64db # v2.2.12 + uses: github/codeql-action/upload-sarif@29b1f65c5e92e24fe6b6647da1eaabe529cec70f # v2.3.3 with: sarif_file: results.sarif From fd2a558352341ff49725c57776c64f0c58102572 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 15 May 2023 17:30:28 +0200 Subject: [PATCH 2389/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.37.0 (#2699) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2aff0d26913f..817bfc485f7a 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.36.1 + 2.37.0 pom import From 32ea8ab19bff86d8183ddd9d6e6d06303eb9d83f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 15 May 2023 18:35:53 +0200 Subject: [PATCH 2390/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.22 (#2688) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 9cfe8fc884a5..6cf142b53cef 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.21 + 0.9.22 true com.example.bigquery.NativeImageBigquerySample From 61bb3854d3443811001d86ad650882d70003dc06 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 15 May 2023 13:00:44 -0400 Subject: [PATCH 2391/3441] chore(main): release 2.26.0 (#2680) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 24 ++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 31 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d66330e23a51..246e1cfb0e6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog +## [2.26.0](https://github.com/googleapis/java-bigquery/compare/v2.25.0...v2.26.0) (2023-05-15) + + +### Features + +* Add field in HivePartitioningOptions ([#2678](https://github.com/googleapis/java-bigquery/issues/2678)) ([4165e55](https://github.com/googleapis/java-bigquery/commit/4165e5549d7a8e8e011d7700bc791e9b470c670d)) +* Allow passing autodetect_schema on table update ([#2661](https://github.com/googleapis/java-bigquery/issues/2661)) ([4c01698](https://github.com/googleapis/java-bigquery/commit/4c01698e571d7adbaf914984cdf65f6c35e4edb8)) + + +### Bug Fixes + +* Move ratio calculation for whether to use read API to avoid NPE with setUseReadAPI(false) ([#2509](https://github.com/googleapis/java-bigquery/issues/2509)) ([e1326c8](https://github.com/googleapis/java-bigquery/commit/e1326c8b615f392f80a09d36a1b4cef79dfea662)) + + +### Dependencies + +* Update arrow.version to v12 (major) ([#2675](https://github.com/googleapis/java-bigquery/issues/2675)) ([7700cf5](https://github.com/googleapis/java-bigquery/commit/7700cf588d4a6d3b3267d8fd51eaf8aed1752506)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.19.0 ([#2691](https://github.com/googleapis/java-bigquery/issues/2691)) ([1939803](https://github.com/googleapis/java-bigquery/commit/193980319cb743e6b6c67648ddb21432e5e69ff8)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.23.0 ([#2692](https://github.com/googleapis/java-bigquery/issues/2692)) ([f56e541](https://github.com/googleapis/java-bigquery/commit/f56e54161894c3be6e975ac102454afca4c9b058)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.9.0 ([#2685](https://github.com/googleapis/java-bigquery/issues/2685)) ([b74da29](https://github.com/googleapis/java-bigquery/commit/b74da296e2d2739adb481cda417d51569d1acc51)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.22 ([#2687](https://github.com/googleapis/java-bigquery/issues/2687)) ([cf5d758](https://github.com/googleapis/java-bigquery/commit/cf5d758fe6aad4b374c34940aa93f8060f779505)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.22 ([#2688](https://github.com/googleapis/java-bigquery/issues/2688)) ([32ea8ab](https://github.com/googleapis/java-bigquery/commit/32ea8ab19bff86d8183ddd9d6e6d06303eb9d83f)) +* Update github/codeql-action action to v2.3.3 ([#2658](https://github.com/googleapis/java-bigquery/issues/2658)) ([487f207](https://github.com/googleapis/java-bigquery/commit/487f20707c9b320a68100f85b2a1277cad9b37ea)) + ## [2.25.0](https://github.com/googleapis/java-bigquery/compare/v2.24.5...v2.25.0) (2023-04-27) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ab1738a2d74c..7c7b34e7d10b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.25.1-SNAPSHOT + 2.26.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 442051a5a38b..bb1be9786935 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.25.1-SNAPSHOT + 2.26.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.25.1-SNAPSHOT + 2.26.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 817bfc485f7a..e4274a5fce71 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.25.1-SNAPSHOT + 2.26.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.25.1-SNAPSHOT + 2.26.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f5625554f814..32ee1f6c7591 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.25.1-SNAPSHOT + 2.26.0 diff --git a/versions.txt b/versions.txt index 7fc5c0eadf35..013c169f583a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.25.0:2.25.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.26.0:2.26.0 \ No newline at end of file From 2b4eff1fed8b1ac9bf24bd69440377e904bc66e1 Mon Sep 17 00:00:00 2001 From: Tlaquetzal Date: Mon, 15 May 2023 21:40:28 +0000 Subject: [PATCH 2392/3441] fix: custom host for resumable uploads (#2696) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: custom host for resumable uploads * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 +++--- .../google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e7c05fa680e2..266800c7aba1 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.25.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.26.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.25.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.26.0" ``` @@ -348,7 +348,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.25.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.26.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index a85e4b6bfeda..a63e3cc2ba0b 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -77,8 +77,7 @@ public class HttpBigQueryRpc implements BigQueryRpc { public static final String DEFAULT_PROJECTION = "full"; - private static final String BASE_RESUMABLE_URI = - "https://www.googleapis.com/upload/bigquery/v2/projects/"; + private static final String BASE_RESUMABLE_URI = "upload/bigquery/v2/projects/"; // see: // https://cloud.google.com/bigquery/loading-data-post-request#resume-upload private static final int HTTP_RESUME_INCOMPLETE = 308; @@ -725,7 +724,11 @@ public QueryResponse queryRpc(String projectId, QueryRequest content) { @Override public String open(Job loadJob) { try { - String builder = BASE_RESUMABLE_URI + options.getProjectId() + "/jobs"; + String builder = options.getHost(); + if (!builder.endsWith("/")) { + builder += "/"; + } + builder += BASE_RESUMABLE_URI + options.getProjectId() + "/jobs"; GenericUrl url = new GenericUrl(builder); url.set("uploadType", "resumable"); JsonFactory jsonFactory = bigquery.getJsonFactory(); From de38336c0ad6e345e2a55e5d3dbdee9465eb2a59 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 16 May 2023 14:56:13 +0000 Subject: [PATCH 2393/3441] chore(main): release 2.26.1-SNAPSHOT (#2700) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 7c7b34e7d10b..d1af4968136c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.26.0 + 2.26.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bb1be9786935..95406c242633 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.26.0 + 2.26.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.26.0 + 2.26.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e4274a5fce71..5d942d131dd4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.26.0 + 2.26.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.26.0 + 2.26.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 32ee1f6c7591..f331803af327 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.26.0 + 2.26.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 013c169f583a..ec699e82860f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.26.0:2.26.0 \ No newline at end of file +google-cloud-bigquery:2.26.0:2.26.1-SNAPSHOT \ No newline at end of file From 768dd34a8846027c099c2a266e2833cb0aa306d0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 16 May 2023 18:19:48 +0200 Subject: [PATCH 2394/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.26.0 (#2701) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.26.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 266800c7aba1..d2f41c510c3e 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.25.0 + 2.26.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 331ac4ea1ecd..c4f504c32131 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.25.0 + 2.26.0 From 76a0bd979cced80adbbb521f3cd7d0fcffe3f63b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 16 May 2023 16:32:14 +0000 Subject: [PATCH 2395/3441] chore(main): release 2.26.1 (#2703) :robot: I have created a release *beep* *boop* --- ## [2.26.1](https://togithub.com/googleapis/java-bigquery/compare/v2.26.0...v2.26.1) (2023-05-16) ### Bug Fixes * Custom host for resumable uploads ([#2696](https://togithub.com/googleapis/java-bigquery/issues/2696)) ([2b4eff1](https://togithub.com/googleapis/java-bigquery/commit/2b4eff1fed8b1ac9bf24bd69440377e904bc66e1)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 7 +++++++ README.md | 2 +- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 15 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 246e1cfb0e6e..3f8d68714209 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.26.1](https://github.com/googleapis/java-bigquery/compare/v2.26.0...v2.26.1) (2023-05-16) + + +### Bug Fixes + +* Custom host for resumable uploads ([#2696](https://github.com/googleapis/java-bigquery/issues/2696)) ([2b4eff1](https://github.com/googleapis/java-bigquery/commit/2b4eff1fed8b1ac9bf24bd69440377e904bc66e1)) + ## [2.26.0](https://github.com/googleapis/java-bigquery/compare/v2.25.0...v2.26.0) (2023-05-15) diff --git a/README.md b/README.md index d2f41c510c3e..9f50f9a51a02 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.14.0') +implementation platform('com.google.cloud:libraries-bom:26.15.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d1af4968136c..977aaf3a41b5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.26.1-SNAPSHOT + 2.26.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 95406c242633..0bef4df31204 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.26.1-SNAPSHOT + 2.26.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.26.1-SNAPSHOT + 2.26.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5d942d131dd4..e72403209e6b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.26.1-SNAPSHOT + 2.26.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.26.1-SNAPSHOT + 2.26.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f331803af327..c0f3ac06bc90 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.26.1-SNAPSHOT + 2.26.1 diff --git a/versions.txt b/versions.txt index ec699e82860f..c376a508f8af 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.26.0:2.26.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.26.1:2.26.1 \ No newline at end of file From 27fa7b12ea55ec70f4b59d4e99b34744f46e1fd9 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 19 May 2023 12:00:35 -0400 Subject: [PATCH 2396/3441] build: migrate release scripts (#1799) (#2708) Source-Link: https://github.com/googleapis/synthtool/commit/1fd6dff029bb3d873a4780e616388f802f086907 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:ad9cabee4c022f1aab04a71332369e0c23841062124818a4490f73337f790337 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 2 +- .github/release-trigger.yml | 1 + .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- README.md | 6 +++--- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 48ad11d44028..aadf54f6438e 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,4 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:944c07e458ce227ca49a423affedf088e31e2ee70908dd21682238d58f1beb60 + digest: sha256:ad9cabee4c022f1aab04a71332369e0c23841062124818a4490f73337f790337 diff --git a/.github/release-trigger.yml b/.github/release-trigger.yml index d4ca94189e16..57d2b0f83090 100644 --- a/.github/release-trigger.yml +++ b/.github/release-trigger.yml @@ -1 +1,2 @@ enabled: true +multiScmName: java-bigquery diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index e20330c3ca60..f52533545896 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.0" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 0fd6ba2fa0ce..44b1004875b6 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.0" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.2" } env_vars: { diff --git a/README.md b/README.md index 9f50f9a51a02..8aca06dac696 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.26.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.26.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.26.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.26.1" ``` @@ -348,7 +348,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.26.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.26.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles From 38554b120f9cc208c8840cdd691a54cb62427af4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 25 May 2023 15:08:13 +0000 Subject: [PATCH 2397/3441] chore(main): release 2.26.2-SNAPSHOT (#2704) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 977aaf3a41b5..d797a46ead81 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.26.1 + 2.26.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0bef4df31204..a2876e5b71fc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.26.1 + 2.26.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.26.1 + 2.26.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e72403209e6b..60a0f3cb6a9f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.26.1 + 2.26.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.26.1 + 2.26.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c0f3ac06bc90..5a4eca90f7ca 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.26.1 + 2.26.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index c376a508f8af..4fe31fe1091d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.26.1:2.26.1 \ No newline at end of file +google-cloud-bigquery:2.26.1:2.26.2-SNAPSHOT \ No newline at end of file From 499af3fdbc4b308aaf03ccf9d569607eefe2d8f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 May 2023 15:10:13 +0000 Subject: [PATCH 2398/3441] build(deps): bump requests from 2.27.1 to 2.31.0 in /.kokoro (#2710) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [requests](https://togithub.com/psf/requests) from 2.27.1 to 2.31.0.
    Release notes

    Sourced from requests's releases.

    v2.31.0

    2.31.0 (2023-05-22)

    Security

    • Versions of Requests between v2.3.0 and v2.30.0 are vulnerable to potential forwarding of Proxy-Authorization headers to destination servers when following HTTPS redirects.

      When proxies are defined with user info (https://user:pass@proxy:8080), Requests will construct a Proxy-Authorization header that is attached to the request to authenticate with the proxy.

      In cases where Requests receives a redirect response, it previously reattached the Proxy-Authorization header incorrectly, resulting in the value being sent through the tunneled connection to the destination server. Users who rely on defining their proxy credentials in the URL are strongly encouraged to upgrade to Requests 2.31.0+ to prevent unintentional leakage and rotate their proxy credentials once the change has been fully deployed.

      Users who do not use a proxy or do not supply their proxy credentials through the user information portion of their proxy URL are not subject to this vulnerability.

      Full details can be read in our Github Security Advisory and CVE-2023-32681.

    v2.30.0

    2.30.0 (2023-05-03)

    Dependencies

    v2.29.0

    2.29.0 (2023-04-26)

    Improvements

    • Requests now defers chunked requests to the urllib3 implementation to improve standardization. (#6226)
    • Requests relaxes header component requirements to support bytes/str subclasses. (#6356)

    ... (truncated)

    Changelog

    Sourced from requests's changelog.

    2.31.0 (2023-05-22)

    Security

    • Versions of Requests between v2.3.0 and v2.30.0 are vulnerable to potential forwarding of Proxy-Authorization headers to destination servers when following HTTPS redirects.

      When proxies are defined with user info (https://user:pass@proxy:8080), Requests will construct a Proxy-Authorization header that is attached to the request to authenticate with the proxy.

      In cases where Requests receives a redirect response, it previously reattached the Proxy-Authorization header incorrectly, resulting in the value being sent through the tunneled connection to the destination server. Users who rely on defining their proxy credentials in the URL are strongly encouraged to upgrade to Requests 2.31.0+ to prevent unintentional leakage and rotate their proxy credentials once the change has been fully deployed.

      Users who do not use a proxy or do not supply their proxy credentials through the user information portion of their proxy URL are not subject to this vulnerability.

      Full details can be read in our Github Security Advisory and CVE-2023-32681.

    2.30.0 (2023-05-03)

    Dependencies

    2.29.0 (2023-04-26)

    Improvements

    • Requests now defers chunked requests to the urllib3 implementation to improve standardization. (#6226)
    • Requests relaxes header component requirements to support bytes/str subclasses. (#6356)

    2.28.2 (2023-01-12)

    ... (truncated)

    Commits

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=requests&package-manager=pip&previous-version=2.27.1&new-version=2.31.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://togithub.com/googleapis/java-bigquery/network/alerts).
    From 51aff502215d69bd0151030421cd18646c6ead36 Mon Sep 17 00:00:00 2001 From: Obada Alabbadi <76101898+obada-ab@users.noreply.github.com> Date: Thu, 25 May 2023 19:18:14 +0200 Subject: [PATCH 2399/3441] fix: add support for repeated record query parameters (#2698) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add support for array of struct query parameters which are used to query repeated record fields Fixes #2485 ☕️ --- README.md | 1 + .../cloud/bigquery/QueryParameterValue.java | 18 +- .../bigquery/QueryParameterValueTest.java | 43 +++ .../cloud/bigquery/it/ITBigQueryTest.java | 246 ++++++++++++++++++ .../CreateAndQueryRepeatedRecordField.java | 196 ++++++++++++++ ...ueryWithArrayOfStructsNamedParameters.java | 2 +- .../CreateAndQueryRepeatedRecordFieldIT.java | 79 ++++++ 7 files changed, 580 insertions(+), 5 deletions(-) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateAndQueryRepeatedRecordField.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateAndQueryRepeatedRecordFieldIT.java diff --git a/README.md b/README.md index 8aca06dac696..775b3d27d57a 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Copy Multiple Tables | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | | Copy Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | | Copy Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java) | +| Create And Query Repeated Record Field | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateAndQueryRepeatedRecordField.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateAndQueryRepeatedRecordField.java) | | Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | | Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | | Create Dataset Aws | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index b92cb734c574..b21445d383a5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -349,7 +349,11 @@ public static QueryParameterValue array(T[] array, Class clazz) { public static QueryParameterValue array(T[] array, StandardSQLTypeName type) { List listValues = new ArrayList<>(); for (T obj : array) { - listValues.add(QueryParameterValue.of(obj, type)); + if (type == StandardSQLTypeName.STRUCT) { + listValues.add((QueryParameterValue) obj); + } else { + listValues.add(QueryParameterValue.of(obj, type)); + } } return QueryParameterValue.newBuilder() .setArrayValues(listValues) @@ -522,9 +526,15 @@ QueryParameterType toTypePb() { QueryParameterType typePb = new QueryParameterType(); typePb.setType(getType().toString()); if (getArrayType() != null) { - QueryParameterType arrayTypePb = new QueryParameterType(); - arrayTypePb.setType(getArrayType().toString()); - typePb.setArrayType(arrayTypePb); + List values = getArrayValues(); + if (getArrayType() == StandardSQLTypeName.STRUCT && values != null && values.size() != 0) { + QueryParameterType structType = values.get(0).toTypePb(); + typePb.setArrayType(structType); + } else { + QueryParameterType arrayTypePb = new QueryParameterType(); + arrayTypePb.setType(getArrayType().toString()); + typePb.setArrayType(arrayTypePb); + } } if (getStructTypes() != null) { List structTypes = new ArrayList<>(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index 05920df237d3..0534865b238d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -28,6 +28,7 @@ import java.math.BigDecimal; import java.text.ParseException; import java.time.Period; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -563,6 +564,48 @@ public void testNestedStruct() { assertThat(nestedRecordField.getStructValues().size()).isEqualTo(structValue.size()); } + @Test + public void testStructArray() { + Boolean[] boolValues = new Boolean[] {true, false}; + Integer[] intValues = new Integer[] {15, 20}; + String[] stringValues = new String[] {"test-string", "test-string2"}; + List> fieldMaps = new ArrayList<>(); + List tuples = new ArrayList<>(); + for (int i = 0; i < 2; i++) { + QueryParameterValue booleanField = QueryParameterValue.bool(boolValues[i]); + QueryParameterValue integerField = QueryParameterValue.int64(intValues[i]); + QueryParameterValue stringField = QueryParameterValue.string(stringValues[i]); + ImmutableMap fieldMap = + ImmutableMap.of( + "booleanField", + booleanField, + "integerField", + integerField, + "stringField", + stringField); + fieldMaps.add(fieldMap); + QueryParameterValue recordField = QueryParameterValue.struct(fieldMap); + tuples.add(recordField); + } + QueryParameterValue repeatedRecordField = + QueryParameterValue.array(tuples.toArray(), StandardSQLTypeName.STRUCT); + com.google.api.services.bigquery.model.QueryParameterValue parameterValue = + repeatedRecordField.toValuePb(); + QueryParameterType parameterType = repeatedRecordField.toTypePb(); + QueryParameterValue queryParameterValue = + QueryParameterValue.fromPb(parameterValue, parameterType); + assertThat(queryParameterValue.getValue()).isNull(); + assertThat(queryParameterValue.getType()).isEqualTo(StandardSQLTypeName.ARRAY); + assertThat(queryParameterValue.getArrayType()).isEqualTo(StandardSQLTypeName.STRUCT); + assertThat(queryParameterValue.getArrayValues().size()).isEqualTo(2); + for (int i = 0; i < 2; i++) { + QueryParameterValue record = queryParameterValue.getArrayValues().get(i); + assertThat(record.getType()).isEqualTo(StandardSQLTypeName.STRUCT); + assertThat(record.getStructTypes()).isNotNull(); + assertThat(record.getStructValues()).isEqualTo(fieldMaps.get(i)); + } + } + private static void assertArrayDataEquals( String[] expectedValues, StandardSQLTypeName expectedType, diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 6d61fd2114c2..b0dab857649a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -156,6 +156,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; @@ -231,6 +232,31 @@ public class ITBigQueryTest { .setMode(Field.Mode.REQUIRED) .setDescription("RecordDescription") .build(); + + private static final Field REPEATED_RECORD_FIELD_SCHEMA = + Field.newBuilder( + "Addresses", + LegacySQLTypeName.RECORD, + Field.newBuilder("Status", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("Address", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("City", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("State", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("Zip", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("NumberOfYears", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()) + .setMode(Field.Mode.REPEATED) + .build(); private static final Field INTEGER_FIELD_SCHEMA = Field.newBuilder("IntegerField", LegacySQLTypeName.INTEGER) .setMode(Field.Mode.NULLABLE) @@ -422,6 +448,18 @@ public class ITBigQueryTest { .setMode(Field.Mode.NULLABLE) .build()); + private static final Schema REPEATED_RECORD_TABLE_SCHEMA = + Schema.of( + Field.newBuilder("ID", LegacySQLTypeName.STRING).setMode(Field.Mode.NULLABLE).build(), + Field.newBuilder("FirstName", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("LastName", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("DOB", LegacySQLTypeName.DATE).setMode(Field.Mode.NULLABLE).build(), + REPEATED_RECORD_FIELD_SCHEMA); + private static final Schema SIMPLE_SCHEMA = Schema.of(STRING_FIELD_SCHEMA); private static final Schema QUERY_RESULT_SCHEMA = Schema.of( @@ -4062,6 +4100,214 @@ public void testStructNamedQueryParameters() throws InterruptedException { } } + @Test + public void testRepeatedRecordNamedQueryParameters() throws InterruptedException { + String[] stringValues = new String[] {"test-stringField", "test-stringField2"}; + List tuples = new ArrayList<>(); + for (int i = 0; i < 2; i++) { + QueryParameterValue stringValue = QueryParameterValue.string(stringValues[i]); + Map struct = new HashMap<>(); + struct.put("stringField", stringValue); + QueryParameterValue recordValue = QueryParameterValue.struct(struct); + tuples.add(recordValue); + } + + QueryParameterValue repeatedRecord = + QueryParameterValue.array(tuples.toArray(), StandardSQLTypeName.STRUCT); + String query = "SELECT @repeatedRecordField AS repeatedRecord"; + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .addNamedParameter("repeatedRecordField", repeatedRecord) + .build(); + TableResult result = bigquery.query(config); + assertEquals(1, Iterables.size(result.getValues())); + + FieldList subSchema = result.getSchema().getFields().get("repeatedRecord").getSubFields(); + for (FieldValueList values : result.iterateAll()) { + for (FieldValue value : values) { + assertEquals(FieldValue.Attribute.REPEATED, value.getAttribute()); + assertEquals(2, value.getRepeatedValue().size()); + for (int i = 0; i < 2; i++) { + FieldValue record = value.getRepeatedValue().get(i); + assertEquals(FieldValue.Attribute.RECORD, record.getAttribute()); + FieldValueList recordValue = record.getRecordValue(); + assertEquals( + stringValues[i], + FieldValueList.of(recordValue, subSchema).get("stringField").getValue()); + } + } + } + } + + @Test + public void testUnnestRepeatedRecordNamedQueryParameter() throws InterruptedException { + Boolean[] boolValues = new Boolean[] {true, false}; + List tuples = new ArrayList<>(); + for (int i = 0; i < 2; i++) { + QueryParameterValue boolValue = QueryParameterValue.bool(boolValues[i]); + Map struct = new HashMap<>(); + struct.put("boolField", boolValue); + QueryParameterValue recordValue = QueryParameterValue.struct(struct); + tuples.add(recordValue); + } + + QueryParameterValue repeatedRecord = + QueryParameterValue.array(tuples.toArray(), StandardSQLTypeName.STRUCT); + String query = + "SELECT * FROM (SELECT STRUCT(" + + boolValues[0] + + " AS boolField) AS repeatedRecord) WHERE repeatedRecord IN UNNEST(@repeatedRecordField)"; + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .addNamedParameter("repeatedRecordField", repeatedRecord) + .build(); + TableResult result = bigquery.query(config); + assertEquals(1, Iterables.size(result.getValues())); + + FieldList subSchema = result.getSchema().getFields().get("repeatedRecord").getSubFields(); + for (FieldValueList values : result.iterateAll()) { + for (FieldValue value : values) { + assertEquals(FieldValue.Attribute.RECORD, value.getAttribute()); + FieldValueList recordValue = value.getRecordValue(); + assertEquals( + boolValues[0], + FieldValueList.of(recordValue, subSchema).get("boolField").getBooleanValue()); + } + } + } + + @Test + public void testUnnestRepeatedRecordNamedQueryParameterFromDataset() throws InterruptedException { + TableId tableId = TableId.of(DATASET, "test_repeated_record_table"); + setUpRepeatedRecordTable(tableId); + + List tuples = new ArrayList<>(); + QueryParameterValue statusValue = QueryParameterValue.string("single"); + QueryParameterValue addressValue = QueryParameterValue.string("123 this lane"); + QueryParameterValue cityValue = QueryParameterValue.string("Toronto"); + QueryParameterValue stateValue = QueryParameterValue.string("ON"); + QueryParameterValue zipValue = QueryParameterValue.string("1h2j34"); + QueryParameterValue numberOfYearsValue = QueryParameterValue.string("3"); + + Map struct = new LinkedHashMap<>(); + struct.put("statusValue", statusValue); + struct.put("addressValue", addressValue); + struct.put("cityValue", cityValue); + struct.put("stateValue", stateValue); + struct.put("zipValue", zipValue); + struct.put("numberOfYearsValue", numberOfYearsValue); + QueryParameterValue recordValue = QueryParameterValue.struct(struct); + tuples.add(recordValue); + + QueryParameterValue repeatedRecord = + QueryParameterValue.array(tuples.toArray(), StandardSQLTypeName.STRUCT); + + String query = + "SELECT * FROM " + + tableId.getTable() + + ", UNNEST(@repeatedRecord) AS TEMP where TEMP IN UNNEST(addresses);"; + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .addNamedParameter("repeatedRecord", repeatedRecord) + .build(); + TableResult results = bigquery.query(queryConfig); + + assertEquals(1, Iterables.size(results.getValues())); + for (FieldValueList values : results.iterateAll()) { + assertEquals("1", values.get("ID").getStringValue()); + assertEquals("first_name1", values.get("FirstName").getStringValue()); + assertEquals(2, values.get("Addresses").getRecordValue().size()); + } + } + + private void setUpRepeatedRecordTable(TableId tableId) { + StandardTableDefinition tableDefinition = + StandardTableDefinition.of(REPEATED_RECORD_TABLE_SCHEMA); + TableInfo tableInfo = TableInfo.of(tableId, tableDefinition); + bigquery.create(tableInfo); + + ImmutableMap.Builder builder1 = ImmutableMap.builder(); + builder1.put("ID", "1"); + builder1.put("FirstName", "first_name1"); + builder1.put("LastName", "last_name1"); + builder1.put("DOB", "1995-08-09"); + builder1.put( + "Addresses", + ImmutableList.of( + ImmutableMap.of( + "Status", "single", + "Address", "123 this lane", + "City", "Toronto", + "State", "ON", + "Zip", "1h2j34", + "NumberOfYears", "3"), + ImmutableMap.of( + "Status", "couple", + "Address", "345 that lane", + "City", "Maple", + "State", "ON", + "Zip", "1h2j34", + "NumberOfYears", "5"))); + + ImmutableMap.Builder builder2 = ImmutableMap.builder(); + builder2.put("ID", "2"); + builder2.put("FirstName", "first_name2"); + builder2.put("LastName", "last_name2"); + builder2.put("DOB", "1992-03-19"); + builder2.put( + "Addresses", + ImmutableList.of( + ImmutableMap.of( + "Status", "single", + "Address", "97 Kota lane", + "City", "Ottawa", + "State", "ON", + "Zip", "1h2j34", + "NumberOfYears", "3"), + ImmutableMap.of( + "Status", "couple", + "Address", "75 Malta lane", + "City", "Victoria", + "State", "AL", + "Zip", "1h2j34", + "NumberOfYears", "5"))); + + InsertAllRequest request = + InsertAllRequest.newBuilder(tableInfo.getTableId()) + .addRow(builder1.build()) + .addRow(builder2.build()) + .build(); + bigquery.insertAll(request); + } + + @Test + public void testEmptyRepeatedRecordNamedQueryParameters() throws InterruptedException { + QueryParameterValue[] tuples = {}; + + QueryParameterValue repeatedRecord = + QueryParameterValue.array(tuples, StandardSQLTypeName.STRUCT); + String query = + "SELECT * FROM (SELECT STRUCT(false AS boolField) AS repeatedRecord) WHERE repeatedRecord IN UNNEST(@repeatedRecordField)"; + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .addNamedParameter("repeatedRecordField", repeatedRecord) + .build(); + try { + bigquery.query(config); + fail("an empty array of struct query parameter shouldn't work with 'IN UNNEST'"); + } catch (BigQueryException e) { + // Nothing to do + } + } + @Test public void testStructQuery() throws InterruptedException { // query into a table diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateAndQueryRepeatedRecordField.java b/samples/snippets/src/main/java/com/example/bigquery/CreateAndQueryRepeatedRecordField.java new file mode 100644 index 000000000000..2bb13eb121a8 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateAndQueryRepeatedRecordField.java @@ -0,0 +1,196 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_and_query_repeated_record] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.InsertAllRequest; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.TableResult; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +// Create a table with a repeated record field and query it using an array of struct named parameter +public class CreateAndQueryRepeatedRecordField { + + private static final Field REPEATED_RECORD_FIELD_SCHEMA = + Field.newBuilder( + "Addresses", + LegacySQLTypeName.RECORD, + Field.newBuilder("Status", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("Address", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("City", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("State", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("Zip", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("NumberOfYears", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()) + .setMode(Field.Mode.REPEATED) + .build(); + private static final Schema REPEATED_RECORD_TABLE_SCHEMA = + Schema.of( + Field.newBuilder("ID", LegacySQLTypeName.STRING).setMode(Field.Mode.NULLABLE).build(), + Field.newBuilder("FirstName", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("LastName", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("DOB", LegacySQLTypeName.DATE).setMode(Field.Mode.NULLABLE).build(), + REPEATED_RECORD_FIELD_SCHEMA); + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + createAndQueryRepeatedRecordField(datasetName, tableName); + } + + public static void createAndQueryRepeatedRecordField(String datasetName, String tableName) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + TableId tableId = TableId.of(datasetName, tableName); + + // Create a table with a repeated record field + StandardTableDefinition tableDefinition = + StandardTableDefinition.of(REPEATED_RECORD_TABLE_SCHEMA); + TableInfo tableInfo = TableInfo.of(tableId, tableDefinition); + bigquery.create(tableInfo); + + // Insert some data + ImmutableMap.Builder builder1 = ImmutableMap.builder(); + builder1.put("ID", "1"); + builder1.put("FirstName", "first_name1"); + builder1.put("LastName", "last_name1"); + builder1.put("DOB", "1995-08-09"); + builder1.put( + "Addresses", + ImmutableList.of( + ImmutableMap.of( + "Status", "single", + "Address", "123 this lane", + "City", "Toronto", + "State", "ON", + "Zip", "1h2j34", + "NumberOfYears", "3"), + ImmutableMap.of( + "Status", "couple", + "Address", "345 that lane", + "City", "Maple", + "State", "ON", + "Zip", "1h2j34", + "NumberOfYears", "5"))); + + ImmutableMap.Builder builder2 = ImmutableMap.builder(); + builder2.put("ID", "2"); + builder2.put("FirstName", "first_name2"); + builder2.put("LastName", "last_name2"); + builder2.put("DOB", "1992-03-19"); + builder2.put( + "Addresses", + ImmutableList.of( + ImmutableMap.of( + "Status", "single", + "Address", "97 Kota lane", + "City", "Ottawa", + "State", "ON", + "Zip", "1h2j34", + "NumberOfYears", "3"), + ImmutableMap.of( + "Status", "couple", + "Address", "75 Malta lane", + "City", "Victoria", + "State", "AL", + "Zip", "1h2j34", + "NumberOfYears", "5"))); + + InsertAllRequest request = + InsertAllRequest.newBuilder(tableInfo.getTableId()) + .addRow(builder1.build()) + .addRow(builder2.build()) + .build(); + bigquery.insertAll(request); + + // Query using a named parameter + QueryParameterValue statusValue = QueryParameterValue.string("single"); + QueryParameterValue addressValue = QueryParameterValue.string("123 this lane"); + QueryParameterValue cityValue = QueryParameterValue.string("Toronto"); + QueryParameterValue stateValue = QueryParameterValue.string("ON"); + QueryParameterValue zipValue = QueryParameterValue.string("1h2j34"); + QueryParameterValue numberOfYearsValue = QueryParameterValue.string("3"); + + Map struct = new LinkedHashMap<>(); + struct.put("statusValue", statusValue); + struct.put("addressValue", addressValue); + struct.put("cityValue", cityValue); + struct.put("stateValue", stateValue); + struct.put("zipValue", zipValue); + struct.put("numberOfYearsValue", numberOfYearsValue); + QueryParameterValue recordValue = QueryParameterValue.struct(struct); + List tuples = new ArrayList<>(); + tuples.add(recordValue); + + QueryParameterValue repeatedRecord = + QueryParameterValue.array(tuples.toArray(), StandardSQLTypeName.STRUCT); + + String query = + "SELECT * FROM " + + tableId.getTable() + + ", UNNEST(@repeatedRecord) AS TEMP where TEMP IN UNNEST(addresses);"; + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(datasetName) + .setUseLegacySql(false) + .addNamedParameter("repeatedRecord", repeatedRecord) + .build(); + TableResult results = bigquery.query(queryConfig); + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s\n", val.toString()))); + System.out.println("Query with Array of struct parameters performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_create_and_query_repeated_record] diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java index 00cae0aa9c1f..3a2074f9acf6 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java @@ -53,7 +53,7 @@ public static void queryWithArrayOfStructsNamedParameters() { .setUseLegacySql(false) .addNamedParameter( "arrayOfStructField", - QueryParameterValue.array(arrayOfStructs.toArray(), StandardSQLTypeName.STRING)) + QueryParameterValue.array(arrayOfStructs.toArray(), StandardSQLTypeName.STRUCT)) .build(); TableResult results = bigquery.query(queryConfig); results diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateAndQueryRepeatedRecordFieldIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateAndQueryRepeatedRecordFieldIT.java new file mode 100644 index 000000000000..56ad47a5d86d --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateAndQueryRepeatedRecordFieldIT.java @@ -0,0 +1,79 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateAndQueryRepeatedRecordFieldIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testCreateAndQueryRepeatedRecordField() { + CreateAndQueryRepeatedRecordField.createAndQueryRepeatedRecordField( + BIGQUERY_DATASET_NAME, tableName); + assertThat(bout.toString()) + .contains("Query with Array of struct parameters performed successfully."); + } +} From c8bc1c5446122ea0c639e997f2eb1e22fff073f4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 May 2023 17:47:48 +0200 Subject: [PATCH 2400/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.4.4 (#2722) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 60a0f3cb6a9f..7ad0a0562e0c 100644 --- a/pom.xml +++ b/pom.xml @@ -197,7 +197,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.4.3 + 3.4.4 From 7c357fb414d45fde734c09c88ee3023d8d8f5822 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 May 2023 17:48:51 +0200 Subject: [PATCH 2401/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.24.0 (#2721) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7ad0a0562e0c..9cf3a7ef245e 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.23.0 + 1.24.0 pom import From 4962cac8fb3fe8d77a136eaf1b579cd79304acfb Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 May 2023 17:49:29 +0200 Subject: [PATCH 2402/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.20.0 (#2720) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9cf3a7ef245e..73f544dcf32c 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.19.0 + 2.20.0 test From 40c03c59c11484811b62dbf1d3ef9abb9f06c7ea Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 May 2023 17:49:47 +0200 Subject: [PATCH 2403/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.20.0 (#2719) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 73f544dcf32c..7d614dd250de 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.19.0 + 2.20.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c4f504c32131..be05c5bf6fbc 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.19.0 + 2.20.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5a4eca90f7ca..045fabf2ffd0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.19.0 + 2.20.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 330260257c3f..d313d4e8d922 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.19.0 + 2.20.0 test From 17525bb26092749cfc1eee63993faa0725a84efb Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 May 2023 17:50:44 +0200 Subject: [PATCH 2404/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.37.1 (#2718) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7d614dd250de..2968f594e24e 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.37.0 + 2.37.1 pom import From 744e83a3da5323bc2cff2bcc6368a3eec39f392e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 May 2023 17:54:47 +0200 Subject: [PATCH 2405/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.10.1 (#2713) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2968f594e24e..c716caf2d5d9 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230422-2.0.0 - 3.9.0 + 3.10.1 12.0.0
    From 4d2ec0716287e9624949cbcdf6605c127c209be4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 May 2023 18:06:17 +0200 Subject: [PATCH 2406/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20230506-2.0.0 (#2707) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20230422-2.0.0` -> `v2-rev20230506-2.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20230506-2.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20230506-2.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20230506-2.0.0/compatibility-slim/v2-rev20230422-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20230506-2.0.0/confidence-slim/v2-rev20230422-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c716caf2d5d9..c6ec32071cca 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20230422-2.0.0 + v2-rev20230506-2.0.0 3.10.1 12.0.0
    From 5c64797c603343408849535b2dbf8080cd11ca32 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 May 2023 18:18:13 +0200 Subject: [PATCH 2407/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20230520-2.0.0 (#2723) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20230506-2.0.0` -> `v2-rev20230520-2.0.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20230520-2.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20230520-2.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20230520-2.0.0/compatibility-slim/v2-rev20230506-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.apis:google-api-services-bigquery/v2-rev20230520-2.0.0/confidence-slim/v2-rev20230506-2.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c6ec32071cca..83a12f29ae5f 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20230506-2.0.0 + v2-rev20230520-2.0.0 3.10.1 12.0.0
    From 42851d818ee825d7c4141d40d116e1da43c11f14 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Tue, 30 May 2023 12:54:10 -0400 Subject: [PATCH 2408/3441] feat: add support for session id on TableDataWriteChannel (#2715) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add support for session id on TableDataWriteChannel * chore: change csv file name * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: remove struct tests * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: fix graalvm tests * chore: make path absolute * chore: try streams * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: add IOUtils * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: nit * cleanup --------- Co-authored-by: Owl Bot --- .../bigquery/WriteChannelConfiguration.java | 52 ++++++++- .../WriteChannelConfigurationTest.java | 12 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 110 ++++++++++++++++++ .../native-image/resource-config.json | 3 +- .../src/test/resources/sessionTest.csv | 51 ++++++++ 5 files changed, 224 insertions(+), 4 deletions(-) create mode 100644 google-cloud-bigquery/src/test/resources/sessionTest.csv diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java index cdb9db904e80..114c6dadd41c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java @@ -25,6 +25,7 @@ import com.google.cloud.bigquery.JobInfo.WriteDisposition; import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; import com.google.common.primitives.Ints; import java.io.Serializable; import java.util.List; @@ -56,9 +57,11 @@ public final class WriteChannelConfiguration implements LoadConfiguration, Seria private final Boolean useAvroLogicalTypes; private final Map labels; private List decimalTargetTypes; + private final List connectionProperties; - public static final class Builder implements LoadConfiguration.Builder { + private final Boolean createSession; + public static final class Builder implements LoadConfiguration.Builder { private TableId destinationTable; private CreateDisposition createDisposition; private WriteDisposition writeDisposition; @@ -75,6 +78,9 @@ public static final class Builder implements LoadConfiguration.Builder { private Boolean useAvroLogicalTypes; private Map labels; private List decimalTargetTypes; + private List connectionProperties; + + private Boolean createSession; private Builder() {} @@ -96,6 +102,8 @@ private Builder(WriteChannelConfiguration writeChannelConfiguration) { this.useAvroLogicalTypes = writeChannelConfiguration.useAvroLogicalTypes; this.labels = writeChannelConfiguration.labels; this.decimalTargetTypes = writeChannelConfiguration.decimalTargetTypes; + this.connectionProperties = writeChannelConfiguration.connectionProperties; + this.createSession = writeChannelConfiguration.createSession; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -175,6 +183,13 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (loadConfigurationPb.getDecimalTargetTypes() != null) { this.decimalTargetTypes = loadConfigurationPb.getDecimalTargetTypes(); } + if (loadConfigurationPb.getConnectionProperties() != null) { + + this.connectionProperties = + Lists.transform( + loadConfigurationPb.getConnectionProperties(), ConnectionProperty.FROM_PB_FUNCTION); + } + createSession = loadConfigurationPb.getCreateSession(); } @Override @@ -274,6 +289,16 @@ public Builder setDecimalTargetTypes(List decimalTargetTypes) { return this; } + public Builder setConnectionProperties(List connectionProperties) { + this.connectionProperties = ImmutableList.copyOf(connectionProperties); + return this; + } + + public Builder setCreateSession(Boolean createSession) { + this.createSession = createSession; + return this; + } + @Override public WriteChannelConfiguration build() { return new WriteChannelConfiguration(this); @@ -297,6 +322,8 @@ protected WriteChannelConfiguration(Builder builder) { this.useAvroLogicalTypes = builder.useAvroLogicalTypes; this.labels = builder.labels; this.decimalTargetTypes = builder.decimalTargetTypes; + this.connectionProperties = builder.connectionProperties; + this.createSession = builder.createSession; } @Override @@ -390,6 +417,14 @@ public List getDecimalTargetTypes() { return decimalTargetTypes; } + public List getConnectionProperties() { + return connectionProperties; + } + + public Boolean getCreateSession() { + return createSession; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -412,7 +447,9 @@ MoreObjects.ToStringHelper toStringHelper() { .add("clustering", clustering) .add("useAvroLogicalTypes", useAvroLogicalTypes) .add("labels", labels) - .add("decimalTargetTypes", decimalTargetTypes); + .add("decimalTargetTypes", decimalTargetTypes) + .add("connectionProperties", connectionProperties) + .add("createSession", createSession); } @Override @@ -444,7 +481,9 @@ public int hashCode() { clustering, useAvroLogicalTypes, labels, - decimalTargetTypes); + decimalTargetTypes, + connectionProperties, + createSession); } WriteChannelConfiguration setProjectId(String projectId) { @@ -519,6 +558,13 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (decimalTargetTypes != null) { loadConfigurationPb.setDecimalTargetTypes(decimalTargetTypes); } + if (connectionProperties != null) { + loadConfigurationPb.setConnectionProperties( + Lists.transform(connectionProperties, ConnectionProperty.TO_PB_FUNCTION)); + } + if (createSession != null) { + loadConfigurationPb.setCreateSession(createSession); + } jobConfiguration.setLoad(loadConfigurationPb); return jobConfiguration; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java index 01c86e8fbfc6..7b912ce2bb72 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java @@ -61,6 +61,14 @@ public class WriteChannelConfigurationTest { ImmutableMap.of("test-job-name", "test-write-channel"); private static final List DECIMAL_TARGET_TYPES = ImmutableList.of("NUMERIC", "BIGNUMERIC"); + + private static final boolean CREATE_SESSION = true; + private static final String KEY = "session_id"; + private static final String VALUE = "session_id_1234567890"; + private static final ConnectionProperty CONNECTION_PROPERTY = + ConnectionProperty.newBuilder().setKey(KEY).setValue(VALUE).build(); + private static final List CONNECTION_PROPERTIES = + ImmutableList.of(CONNECTION_PROPERTY); private static final WriteChannelConfiguration LOAD_CONFIGURATION_CSV = WriteChannelConfiguration.newBuilder(TABLE_ID) .setCreateDisposition(CREATE_DISPOSITION) @@ -76,6 +84,8 @@ public class WriteChannelConfigurationTest { .setClustering(CLUSTERING) .setLabels(LABELS) .setDecimalTargetTypes(DECIMAL_TARGET_TYPES) + .setConnectionProperties(CONNECTION_PROPERTIES) + .setCreateSession(CREATE_SESSION) .build(); private static final DatastoreBackupOptions BACKUP_OPTIONS = @@ -232,5 +242,7 @@ private void compareLoadConfiguration( assertEquals(expected.getUseAvroLogicalTypes(), value.getUseAvroLogicalTypes()); assertEquals(expected.getLabels(), value.getLabels()); assertEquals(expected.getDecimalTargetTypes(), value.getDecimalTargetTypes()); + assertEquals(expected.getConnectionProperties(), value.getConnectionProperties()); + assertEquals(expected.getCreateSession(), value.getCreateSession()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b0dab857649a..cdfcb80033af 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -28,6 +28,7 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import com.google.api.client.util.IOUtils; import com.google.api.gax.paging.Page; import com.google.auth.oauth2.GoogleCredentials; import com.google.auth.oauth2.ServiceAccountCredentials; @@ -60,6 +61,7 @@ import com.google.cloud.bigquery.ConnectionProperty; import com.google.cloud.bigquery.ConnectionSettings; import com.google.cloud.bigquery.CopyJobConfiguration; +import com.google.cloud.bigquery.CsvOptions; import com.google.cloud.bigquery.Dataset; import com.google.cloud.bigquery.DatasetId; import com.google.cloud.bigquery.DatasetInfo; @@ -141,9 +143,13 @@ import com.google.gson.JsonObject; import java.io.IOException; import java.io.InputStream; +import java.io.OutputStream; import java.math.BigDecimal; import java.nio.ByteBuffer; +import java.nio.channels.Channels; import java.nio.charset.StandardCharsets; +import java.nio.file.FileSystems; +import java.nio.file.Path; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Time; @@ -711,6 +717,36 @@ public class ITBigQueryTest { private static final List CONNECTION_PROPERTIES = ImmutableList.of(CONNECTION_PROPERTY); + private static final Field ID_SCHEMA = + Field.newBuilder("id", LegacySQLTypeName.STRING) + .setMode(Mode.REQUIRED) + .setDescription("id") + .build(); + private static final Field FIRST_NAME_SCHEMA = + Field.newBuilder("firstname", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("First Name") + .build(); + private static final Field LAST_NAME_SCHEMA = + Field.newBuilder("lastname", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("LAST NAME") + .build(); + private static final Field EMAIL_SCHEMA = + Field.newBuilder("email", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("email") + .build(); + private static final Field PROFESSION_SCHEMA = + Field.newBuilder("profession", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("profession") + .build(); + private static final Schema SESSION_TABLE_SCHEMA = + Schema.of(ID_SCHEMA, FIRST_NAME_SCHEMA, LAST_NAME_SCHEMA, EMAIL_SCHEMA, PROFESSION_SCHEMA); + private static final Path csvPath = + FileSystems.getDefault().getPath("src/test/resources", "sessionTest.csv").toAbsolutePath(); + private static final Set PUBLIC_DATASETS = ImmutableSet.of("github_repos", "hacker_news", "noaa_gsod", "samples", "usa_names"); @@ -3733,6 +3769,80 @@ public void testQuerySessionSupport() throws InterruptedException { assertEquals(sessionId, statisticsWithSession.getSessionInfo().getSessionId()); } + @Test + public void testLoadSessionSupportWriteChannelConfiguration() throws InterruptedException { + TableId sessionTableId = TableId.of("_SESSION", "test_temp_destination_table_from_file"); + + WriteChannelConfiguration configuration = + WriteChannelConfiguration.newBuilder(sessionTableId) + .setFormatOptions(CsvOptions.newBuilder().setFieldDelimiter(",").build()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(SESSION_TABLE_SCHEMA) + .setCreateSession(true) + .build(); + String jobName = "jobId_" + UUID.randomUUID().toString(); + JobId jobId = JobId.newBuilder().setLocation("us").setJob(jobName).build(); + String sessionId; + + // Imports a local file into a table. + try (TableDataWriteChannel writer = bigquery.writer(jobId, configuration); + OutputStream stream = Channels.newOutputStream(writer)) { + InputStream inputStream = + ITBigQueryTest.class.getClassLoader().getResourceAsStream("sessionTest.csv"); + // Can use `Files.copy(csvPath, stream);` instead. + // Using IOUtils here because graalvm can't handle resource files. + IOUtils.copy(inputStream, stream); + + } catch (IOException e) { + throw new RuntimeException(e); + } + Job loadJob = bigquery.getJob(jobId); + Job completedJob = loadJob.waitFor(); + + assertNotNull(completedJob); + assertEquals(jobId.getJob(), completedJob.getJobId().getJob()); + JobStatistics.LoadStatistics statistics = completedJob.getStatistics(); + + sessionId = statistics.getSessionInfo().getSessionId(); + assertNotNull(sessionId); + + // Load job in the same session. + // Should load the data to a temp table. + ConnectionProperty sessionConnectionProperty = + ConnectionProperty.newBuilder().setKey("session_id").setValue(sessionId).build(); + WriteChannelConfiguration sessionConfiguration = + WriteChannelConfiguration.newBuilder(sessionTableId) + .setConnectionProperties(ImmutableList.of(sessionConnectionProperty)) + .setFormatOptions(CsvOptions.newBuilder().setFieldDelimiter(",").build()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setSchema(SESSION_TABLE_SCHEMA) + .build(); + String sessionJobName = "jobId_" + UUID.randomUUID().toString(); + JobId sessionJobId = JobId.newBuilder().setLocation("us").setJob(sessionJobName).build(); + try (TableDataWriteChannel writer = bigquery.writer(sessionJobId, sessionConfiguration); + OutputStream stream = Channels.newOutputStream(writer)) { + InputStream inputStream = + ITBigQueryTest.class.getClassLoader().getResourceAsStream("sessionTest.csv"); + IOUtils.copy(inputStream, stream); + } catch (IOException e) { + throw new RuntimeException(e); + } + Job queryJobWithSession = bigquery.getJob(sessionJobId); + queryJobWithSession = queryJobWithSession.waitFor(); + LoadStatistics statisticsWithSession = queryJobWithSession.getStatistics(); + assertNotNull(statisticsWithSession.getSessionInfo().getSessionId()); + + // Checking if the data loaded to the temp table in the session + String queryTempTable = "SELECT * FROM _SESSION.test_temp_destination_table_from_file;"; + QueryJobConfiguration queryJobConfigurationWithSession = + QueryJobConfiguration.newBuilder(queryTempTable) + .setConnectionProperties(ImmutableList.of(sessionConnectionProperty)) + .build(); + Job queryTempTableJob = bigquery.create(JobInfo.of(queryJobConfigurationWithSession)); + queryTempTableJob = queryTempTableJob.waitFor(); + assertNotNull(queryTempTableJob.getQueryResults()); + } + @Test public void testLoadSessionSupport() throws InterruptedException { // Start the session diff --git a/google-cloud-bigquery/src/test/resources/META-INF/native-image/resource-config.json b/google-cloud-bigquery/src/test/resources/META-INF/native-image/resource-config.json index e00ed1f1c516..97298417ac03 100644 --- a/google-cloud-bigquery/src/test/resources/META-INF/native-image/resource-config.json +++ b/google-cloud-bigquery/src/test/resources/META-INF/native-image/resource-config.json @@ -1,3 +1,4 @@ { - "resources":[{"pattern": ".*.csv"}] + "resources":[{"pattern": ".*.csv"}, + {"pattern": ".*src/test/resources/sessionTest.csv"}] } \ No newline at end of file diff --git a/google-cloud-bigquery/src/test/resources/sessionTest.csv b/google-cloud-bigquery/src/test/resources/sessionTest.csv new file mode 100644 index 000000000000..f500c80c1420 --- /dev/null +++ b/google-cloud-bigquery/src/test/resources/sessionTest.csv @@ -0,0 +1,51 @@ +id,firstname,lastname,email,profession +100,Rani,Merell,Rani.Merell@yopmail.com,firefighter +101,Goldie,Dex,Goldie.Dex@yopmail.com,developer +102,Cristabel,Munn,Cristabel.Munn@yopmail.com,developer +103,Genevra,Strephon,Genevra.Strephon@yopmail.com,firefighter +104,Augustine,Thema,Augustine.Thema@yopmail.com,doctor +105,Jemie,Gombach,Jemie.Gombach@yopmail.com,police officer +106,Maye,Stuart,Maye.Stuart@yopmail.com,developer +107,Ayn,Carmena,Ayn.Carmena@yopmail.com,worker +108,Gale,Celestine,Gale.Celestine@yopmail.com,doctor +109,Alex,Jerold,Alex.Jerold@yopmail.com,firefighter +110,Violet,Giule,Violet.Giule@yopmail.com,firefighter +111,Starla,Uird,Starla.Uird@yopmail.com,doctor +112,Tarra,Pelagias,Tarra.Pelagias@yopmail.com,police officer +113,Eugine,Deny,Eugine.Deny@yopmail.com,doctor +114,Shirlee,Ricarda,Shirlee.Ricarda@yopmail.com,doctor +115,Ariela,Penelopa,Ariela.Penelopa@yopmail.com,worker +116,Lelah,Astra,Lelah.Astra@yopmail.com,police officer +117,Debee,Deegan,Debee.Deegan@yopmail.com,developer +118,Pollyanna,Euridice,Pollyanna.Euridice@yopmail.com,worker +119,Cathie,Halsey,Cathie.Halsey@yopmail.com,firefighter +120,Rebeca,Quinn,Rebeca.Quinn@yopmail.com,doctor +121,Paulita,Arquit,Paulita.Arquit@yopmail.com,police officer +122,Rebeca,Emanuel,Rebeca.Emanuel@yopmail.com,firefighter +123,Tera,Ilka,Tera.Ilka@yopmail.com,firefighter +124,Orsola,Briney,Orsola.Briney@yopmail.com,doctor +125,Paulita,Wyn,Paulita.Wyn@yopmail.com,doctor +126,Constance,Christine,Constance.Christine@yopmail.com,firefighter +127,Claresta,Kinnard,Claresta.Kinnard@yopmail.com,developer +128,Leanna,Mendez,Leanna.Mendez@yopmail.com,developer +129,Corina,Chabot,Corina.Chabot@yopmail.com,developer +130,Romona,Audly,Romona.Audly@yopmail.com,worker +131,Cordi,Lynn,Cordi.Lynn@yopmail.com,firefighter +132,Sheree,Tyson,Sheree.Tyson@yopmail.com,worker +133,Jinny,Bevin,Jinny.Bevin@yopmail.com,police officer +134,Kassey,Havens,Kassey.Havens@yopmail.com,firefighter +135,Wanda,Thema,Wanda.Thema@yopmail.com,developer +136,Vita,Jagir,Vita.Jagir@yopmail.com,developer +137,Alie,Aprile,Alie.Aprile@yopmail.com,firefighter +138,Modestia,Jena,Modestia.Jena@yopmail.com,doctor +139,Cyndie,Pelagias,Cyndie.Pelagias@yopmail.com,worker +140,Ariela,Lilybelle,Ariela.Lilybelle@yopmail.com,firefighter +141,Jan,Parette,Jan.Parette@yopmail.com,firefighter +142,Merry,Horan,Merry.Horan@yopmail.com,developer +143,Katuscha,Candy,Katuscha.Candy@yopmail.com,police officer +144,Kerrin,Heisel,Kerrin.Heisel@yopmail.com,developer +145,Nollie,Magdalen,Nollie.Magdalen@yopmail.com,doctor +146,Karlee,Gordon,Karlee.Gordon@yopmail.com,developer +147,Dolli,Fadiman,Dolli.Fadiman@yopmail.com,firefighter +148,Leontine,Delp,Leontine.Delp@yopmail.com,worker +149,Ricky,Nadia,Ricky.Nadia@yopmail.com,doctor From 6818198a6f41f57b5cc3a2f43733ce3b06b34b90 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 May 2023 21:25:53 +0200 Subject: [PATCH 2409/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.22.3 (#2724) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 83a12f29ae5f..eaaa0a5d06e3 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.22.2 + 2.22.3 test From 24bb64a85497c2201cc3ca35710e9d06d4bf2202 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 May 2023 21:26:15 +0200 Subject: [PATCH 2410/3441] test(deps): update dependency com.google.truth:truth to v1.1.4 (#2725) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index eaaa0a5d06e3..e040d96d3547 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.truth truth - 1.1.3 + 1.1.4 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index be05c5bf6fbc..22c1bf2b54f2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -81,7 +81,7 @@ com.google.truth truth - 1.1.3 + 1.1.4 test diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 6cf142b53cef..d0e8644dd211 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -62,7 +62,7 @@ com.google.truth truth - 1.1.3 + 1.1.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 045fabf2ffd0..711f37a779eb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -79,7 +79,7 @@ com.google.truth truth - 1.1.3 + 1.1.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d313d4e8d922..c3acecf5f2cf 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -97,7 +97,7 @@ com.google.truth truth - 1.1.3 + 1.1.4 test From cbd5d3f25d79f69bd1731704ba6ba5fe02d1d926 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 May 2023 21:26:31 +0200 Subject: [PATCH 2411/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.26.1 (#2705) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.26.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 775b3d27d57a..4abf39d8bcc7 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.26.0 + 2.26.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 22c1bf2b54f2..241d1b12bf34 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.26.0 + 2.26.1 From c8d9fabc4a597f640b138a10dc3891e977da748b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 May 2023 21:38:15 +0200 Subject: [PATCH 2412/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.15.0 (#2702) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/googleapis/java-cloud-bom)) | `26.14.0` -> `26.15.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.15.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.15.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.15.0/compatibility-slim/26.14.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:libraries-bom/26.15.0/confidence-slim/26.14.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-cloud-bom ### [`v26.15.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#​26150-httpsgithubcomgoogleapisjava-cloud-bomcomparev26140v26150-2023-05-16) [Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.14.0...v26.15.0) ##### Dependencies - update dependency com.google.cloud:first-party-dependencies to v3.9.0 ([#​5974](https://togithub.com/googleapis/java-cloud-bom/issues/5974)) ([3730711](https://togithub.com/googleapis/java-cloud-bom/commit/3730711dbf7616fcc914a65a1e956b26a13beee3)) - update dependency com.google.cloud:gapic-libraries-bom to v1.11.0 ([#​5981](https://togithub.com/googleapis/java-cloud-bom/issues/5981)) ([26d29e3](https://togithub.com/googleapis/java-cloud-bom/commit/26d29e38e2ee6e46fce204e001f6ac292c1d1ab3)) - update dependency com.google.cloud:google-cloud-bigquery to v2.26.0 ([#​5989](https://togithub.com/googleapis/java-cloud-bom/issues/5989)) ([7cbc31a](https://togithub.com/googleapis/java-cloud-bom/commit/7cbc31ac30d95fdd31b6e94d7af79fc1a021b059)) - update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.37.0 ([#​5986](https://togithub.com/googleapis/java-cloud-bom/issues/5986)) ([e72a9b9](https://togithub.com/googleapis/java-cloud-bom/commit/e72a9b9a7282e87d68de1465e61310814476debe)) - update dependency com.google.cloud:google-cloud-bigtable-bom to v2.23.0 ([#​5975](https://togithub.com/googleapis/java-cloud-bom/issues/5975)) ([7670085](https://togithub.com/googleapis/java-cloud-bom/commit/7670085733f6803849fa027da53d956d55a0afa6)) - update dependency com.google.cloud:google-cloud-bigtable-bom to v2.23.1 ([#​5982](https://togithub.com/googleapis/java-cloud-bom/issues/5982)) ([6555f26](https://togithub.com/googleapis/java-cloud-bom/commit/6555f26029d1cbfa21898cd0b25cd19728d588c6)) - update dependency com.google.cloud:google-cloud-datastore-bom to v2.14.6 ([#​5976](https://togithub.com/googleapis/java-cloud-bom/issues/5976)) ([4b33ff3](https://togithub.com/googleapis/java-cloud-bom/commit/4b33ff3331897654215d306925aa10c11bfff5a5)) - update dependency com.google.cloud:google-cloud-firestore-bom to v3.11.0 ([#​5990](https://togithub.com/googleapis/java-cloud-bom/issues/5990)) ([34e6d13](https://togithub.com/googleapis/java-cloud-bom/commit/34e6d13eb868a2578752b4468dc0df03e27768c2)) - update dependency com.google.cloud:google-cloud-logging-bom to v3.15.0 ([#​5973](https://togithub.com/googleapis/java-cloud-bom/issues/5973)) ([6b5e212](https://togithub.com/googleapis/java-cloud-bom/commit/6b5e21232feb9b44fa9943ac7efb78544d88cae0)) - update dependency com.google.cloud:google-cloud-logging-bom to v3.15.1 ([#​5983](https://togithub.com/googleapis/java-cloud-bom/issues/5983)) ([ab7420a](https://togithub.com/googleapis/java-cloud-bom/commit/ab7420a3e05b121c4a4f12d0ef1a0029aa116738)) - update dependency com.google.cloud:google-cloud-logging-logback to v0.130.12-alpha ([#​5987](https://togithub.com/googleapis/java-cloud-bom/issues/5987)) ([903db64](https://togithub.com/googleapis/java-cloud-bom/commit/903db645e4cc353cfdf4bf1f2ddc03de0c029bba)) - update dependency com.google.cloud:google-cloud-nio to v0.126.15 ([#​5980](https://togithub.com/googleapis/java-cloud-bom/issues/5980)) ([c30c6db](https://togithub.com/googleapis/java-cloud-bom/commit/c30c6db9a14ed16039f55cdb3ae53f736c300bda)) - update dependency com.google.cloud:google-cloud-pubsub-bom to v1.123.12 ([#​5984](https://togithub.com/googleapis/java-cloud-bom/issues/5984)) ([f0c8b46](https://togithub.com/googleapis/java-cloud-bom/commit/f0c8b46d8003d9eabd72f99e37a3c0e66cd00521)) - update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.12.5 ([#​5988](https://togithub.com/googleapis/java-cloud-bom/issues/5988)) ([d537c53](https://togithub.com/googleapis/java-cloud-bom/commit/d537c532eef156625281e4bf8ef4712c97af4ebb)) - update dependency com.google.cloud:google-cloud-spanner-bom to v6.42.0 ([#​5991](https://togithub.com/googleapis/java-cloud-bom/issues/5991)) ([530dc1b](https://togithub.com/googleapis/java-cloud-bom/commit/530dc1b7358b980dad755d1fe4624e0f46c89f4d)) - update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.9.16 ([#​5985](https://togithub.com/googleapis/java-cloud-bom/issues/5985)) ([f47314a](https://togithub.com/googleapis/java-cloud-bom/commit/f47314a7f5590983a0b3ebb1c0394aa2572fa94a)) - update dependency com.google.cloud:google-cloud-storage-bom to v2.22.2 ([#​5978](https://togithub.com/googleapis/java-cloud-bom/issues/5978)) ([f61a097](https://togithub.com/googleapis/java-cloud-bom/commit/f61a097ee841ec5176f797c86a4f60ba519110bb))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4abf39d8bcc7..d26c0dbcf0a0 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.14.0 + 26.15.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index d0e8644dd211..d48ceb280b79 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.14.0 + 26.15.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c3acecf5f2cf..274942702da8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.14.0 + 26.15.0 pom import From 052c47aa43b0f50414db3031914e8a775ae98925 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 31 May 2023 01:17:46 +0200 Subject: [PATCH 2413/3441] deps: update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.37.2 (#2726) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e040d96d3547..6de72c050b86 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.37.1 + 2.37.2 pom import From 7f519897391238b8c3087ffa6100a07a0358d17d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 31 May 2023 03:28:12 +0000 Subject: [PATCH 2414/3441] chore(main): release 2.27.0 (#2717) :robot: I have created a release *beep* *boop* --- ## [2.27.0](https://togithub.com/googleapis/java-bigquery/compare/v2.26.1...v2.27.0) (2023-05-30) ### Features * Add support for session id on TableDataWriteChannel ([#2715](https://togithub.com/googleapis/java-bigquery/issues/2715)) ([42851d8](https://togithub.com/googleapis/java-bigquery/commit/42851d818ee825d7c4141d40d116e1da43c11f14)) ### Bug Fixes * Add support for repeated record query parameters ([#2698](https://togithub.com/googleapis/java-bigquery/issues/2698)) ([51aff50](https://togithub.com/googleapis/java-bigquery/commit/51aff502215d69bd0151030421cd18646c6ead36)) ### Dependencies * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.20.0 ([#2720](https://togithub.com/googleapis/java-bigquery/issues/2720)) ([4962cac](https://togithub.com/googleapis/java-bigquery/commit/4962cac8fb3fe8d77a136eaf1b579cd79304acfb)) * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230506-2.0.0 ([#2707](https://togithub.com/googleapis/java-bigquery/issues/2707)) ([4d2ec07](https://togithub.com/googleapis/java-bigquery/commit/4d2ec0716287e9624949cbcdf6605c127c209be4)) * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230520-2.0.0 ([#2723](https://togithub.com/googleapis/java-bigquery/issues/2723)) ([5c64797](https://togithub.com/googleapis/java-bigquery/commit/5c64797c603343408849535b2dbf8080cd11ca32)) * Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.37.2 ([#2726](https://togithub.com/googleapis/java-bigquery/issues/2726)) ([052c47a](https://togithub.com/googleapis/java-bigquery/commit/052c47aa43b0f50414db3031914e8a775ae98925)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.24.0 ([#2721](https://togithub.com/googleapis/java-bigquery/issues/2721)) ([7c357fb](https://togithub.com/googleapis/java-bigquery/commit/7c357fb414d45fde734c09c88ee3023d8d8f5822)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.10.1 ([#2713](https://togithub.com/googleapis/java-bigquery/issues/2713)) ([744e83a](https://togithub.com/googleapis/java-bigquery/commit/744e83a3da5323bc2cff2bcc6368a3eec39f392e)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 22 ++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f8d68714209..cceeee3b35c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## [2.27.0](https://github.com/googleapis/java-bigquery/compare/v2.26.1...v2.27.0) (2023-05-30) + + +### Features + +* Add support for session id on TableDataWriteChannel ([#2715](https://github.com/googleapis/java-bigquery/issues/2715)) ([42851d8](https://github.com/googleapis/java-bigquery/commit/42851d818ee825d7c4141d40d116e1da43c11f14)) + + +### Bug Fixes + +* Add support for repeated record query parameters ([#2698](https://github.com/googleapis/java-bigquery/issues/2698)) ([51aff50](https://github.com/googleapis/java-bigquery/commit/51aff502215d69bd0151030421cd18646c6ead36)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.20.0 ([#2720](https://github.com/googleapis/java-bigquery/issues/2720)) ([4962cac](https://github.com/googleapis/java-bigquery/commit/4962cac8fb3fe8d77a136eaf1b579cd79304acfb)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230506-2.0.0 ([#2707](https://github.com/googleapis/java-bigquery/issues/2707)) ([4d2ec07](https://github.com/googleapis/java-bigquery/commit/4d2ec0716287e9624949cbcdf6605c127c209be4)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230520-2.0.0 ([#2723](https://github.com/googleapis/java-bigquery/issues/2723)) ([5c64797](https://github.com/googleapis/java-bigquery/commit/5c64797c603343408849535b2dbf8080cd11ca32)) +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.37.2 ([#2726](https://github.com/googleapis/java-bigquery/issues/2726)) ([052c47a](https://github.com/googleapis/java-bigquery/commit/052c47aa43b0f50414db3031914e8a775ae98925)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.24.0 ([#2721](https://github.com/googleapis/java-bigquery/issues/2721)) ([7c357fb](https://github.com/googleapis/java-bigquery/commit/7c357fb414d45fde734c09c88ee3023d8d8f5822)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.10.1 ([#2713](https://github.com/googleapis/java-bigquery/issues/2713)) ([744e83a](https://github.com/googleapis/java-bigquery/commit/744e83a3da5323bc2cff2bcc6368a3eec39f392e)) + ## [2.26.1](https://github.com/googleapis/java-bigquery/compare/v2.26.0...v2.26.1) (2023-05-16) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d797a46ead81..1f8ff6a03cfa 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.26.2-SNAPSHOT + 2.27.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a2876e5b71fc..32757e5029cb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.26.2-SNAPSHOT + 2.27.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.26.2-SNAPSHOT + 2.27.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 6de72c050b86..a7cedc04df7a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.26.2-SNAPSHOT + 2.27.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.26.2-SNAPSHOT + 2.27.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 711f37a779eb..eb260b372ae0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.26.2-SNAPSHOT + 2.27.0 diff --git a/versions.txt b/versions.txt index 4fe31fe1091d..2427ff336659 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.26.1:2.26.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.27.0:2.27.0 \ No newline at end of file From 5703b70d3612c901e9361dc0a3954706fbe85aec Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 31 May 2023 14:34:12 +0000 Subject: [PATCH 2415/3441] chore(main): release 2.27.1-SNAPSHOT (#2727) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1f8ff6a03cfa..a576ba45de4c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.27.0 + 2.27.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 32757e5029cb..2d4106ee28cf 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.27.0 + 2.27.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.27.0 + 2.27.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a7cedc04df7a..bd7389243d31 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.27.0 + 2.27.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.27.0 + 2.27.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index eb260b372ae0..838503b805e1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.27.0 + 2.27.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 2427ff336659..e08c2401d44b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.27.0:2.27.0 \ No newline at end of file +google-cloud-bigquery:2.27.0:2.27.1-SNAPSHOT \ No newline at end of file From f7a03636a1a92897b66a3db1f972b0eb173535fc Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 1 Jun 2023 23:31:59 +0200 Subject: [PATCH 2416/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.16.0 (#2732) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.16.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 10 +++++----- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index d26c0dbcf0a0..a3fe8f158311 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.15.0 + 26.16.0 pom import @@ -53,20 +53,20 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.15.0') +implementation platform('com.google.cloud:libraries-bom:26.16.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.26.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.27.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.26.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.27.0" ``` @@ -349,7 +349,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.26.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.27.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index d48ceb280b79..edaeb5f0ab4f 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.15.0 + 26.16.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 274942702da8..dc5f6e31ea45 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.15.0 + 26.16.0 pom import From fbb2bbc6b962ca1591e3545e0b6b92dbcce6194c Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Fri, 2 Jun 2023 10:48:15 -0400 Subject: [PATCH 2417/3441] chore: add add samples for sessionID support in Load jobs (#2731) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Chore: add add samples for sessionID support in Load jobs * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * lint fixes * Update pom.xml * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 1 + .../bigquery/LoadLocalFileInSession.java | 163 ++++++++++++++++++ .../bigquery/LoadLocalFileInSessionIT.java | 97 +++++++++++ 3 files changed, 261 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/LoadLocalFileInSession.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileInSessionIT.java diff --git a/README.md b/README.md index a3fe8f158311..b7a5c463fcfc 100644 --- a/README.md +++ b/README.md @@ -189,6 +189,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Load Json From Gcs Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java) | | Load Json From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java) | | Load Local File | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java) | +| Load Local File In Session | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFileInSession.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadLocalFileInSession.java) | | Load Orc From Gcs | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java) | | Load Orc From Gcs Truncate | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java) | | Load Parquet | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java) | diff --git a/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFileInSession.java b/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFileInSession.java new file mode 100644 index 000000000000..8efef5c405a1 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFileInSession.java @@ -0,0 +1,163 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.ConnectionProperty; +import com.google.cloud.bigquery.CsvOptions; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobStatistics.LoadStatistics; +import com.google.cloud.bigquery.TableDataWriteChannel; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.WriteChannelConfiguration; +import com.google.common.collect.ImmutableList; +import java.io.IOException; +import java.io.OutputStream; +import java.nio.channels.Channels; +import java.nio.file.FileSystems; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.UUID; + +public class LoadLocalFileInSession { + + public static void main(String[] args) throws IOException, InterruptedException { + // Use _SESSION if the table is a temporary table + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + Path csvPath = FileSystems.getDefault().getPath(".", "my-data.csv"); + String sessionId = + createSessionForLoading(datasetName, tableName, csvPath, FormatOptions.csv()); + loadLocalFileInSession(datasetName, tableName, csvPath, FormatOptions.csv(), sessionId); + } + + // [START bigquery_load_from_file_create_session] + + public static String createSessionForLoading( + String datasetName, String tableName, Path csvPath, CsvOptions formatOptions) + throws IOException, InterruptedException { + LoadStatistics loadStatistics = null; + try { + + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + + // Enable createSession in the configuration + WriteChannelConfiguration writeChannelConfiguration = + WriteChannelConfiguration.newBuilder(tableId) + .setFormatOptions(formatOptions) + .setCreateSession(true) + .build(); + + // The location and JobName must be specified; other fields can be auto-detected. + String jobName = "jobId_" + UUID.randomUUID().toString(); + JobId jobId = JobId.newBuilder().setLocation("us").setJob(jobName).build(); + + // Imports a local file into a table. + try (TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration); + OutputStream stream = Channels.newOutputStream(writer)) { + Files.copy(csvPath, stream); + } + + // Get the Job created by the TableDataWriteChannel and wait for it to complete. + // Then retrieve the session ID + Job job = bigquery.getJob(jobId); + Job completedJob = job.waitFor(); + loadStatistics = completedJob.getStatistics(); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return ""; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to load local file to the table due to an error: \n" + + job.getStatus().getError()); + return ""; + } + + } catch (BigQueryException e) { + System.out.println("Local file not loaded. \n" + e.toString()); + } + return loadStatistics.getSessionInfo().getSessionId(); + } + + // [END bigquery_load_from_file_create_session] + + // [START bigquery_load_from_file_with_session] + public static void loadLocalFileInSession( + String datasetName, + String tableName, + Path csvPath, + FormatOptions formatOptions, + String sessionId) + throws IOException, InterruptedException { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + TableId tableId = TableId.of(datasetName, tableName); + + // Create ConnectionProperty with sessionID + ConnectionProperty sessionConnectionProperty = + ConnectionProperty.newBuilder().setKey("session_id").setValue(sessionId).build(); + + // Set the Connection Property with the SessionID in the Configuration. + WriteChannelConfiguration writeChannelConfiguration = + WriteChannelConfiguration.newBuilder(tableId) + .setFormatOptions(formatOptions) + .setConnectionProperties(ImmutableList.of(sessionConnectionProperty)) + .build(); + + // The location and JobName must be specified; other fields can be auto-detected. + String jobName = "jobId_" + UUID.randomUUID().toString(); + JobId jobId = JobId.newBuilder().setLocation("us").setJob(jobName).build(); + + // Imports a local file into a table. + try (TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration); + OutputStream stream = Channels.newOutputStream(writer)) { + Files.copy(csvPath, stream); + } + + // Get the Job created by the TableDataWriteChannel and wait for it to complete. + Job job = bigquery.getJob(jobId); + Job completedJob = job.waitFor(); + if (completedJob == null) { + System.out.println("Job not executed since it no longer exists."); + return; + } else if (completedJob.getStatus().getError() != null) { + System.out.println( + "BigQuery was unable to load local file to the table due to an error: \n" + + job.getStatus().getError()); + return; + } + + // Get output status + LoadStatistics stats = job.getStatistics(); + System.out.printf( + "Successfully loaded to Session %s. \n", stats.getSessionInfo().getSessionId()); + } catch (BigQueryException e) { + System.out.println("Local file not loaded. \n" + e.toString()); + } + } + // [END bigquery_load_from_file_with_session] +} diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileInSessionIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileInSessionIT.java new file mode 100644 index 000000000000..1bf6128784af --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileInSessionIT.java @@ -0,0 +1,97 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertFalse; +import static junit.framework.TestCase.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FormatOptions; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.PrintStream; +import java.nio.file.FileSystems; +import java.nio.file.Path; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class LoadLocalFileInSessionIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + tableName = "LOADLOCALFILETESTTABLE_" + UUID.randomUUID().toString().substring(0, 8); + Schema schema = + Schema.of( + Field.of("Name", LegacySQLTypeName.STRING), + Field.of("Age", LegacySQLTypeName.NUMERIC), + Field.of("Weight", LegacySQLTypeName.NUMERIC), + Field.of("IsMagic", LegacySQLTypeName.BOOLEAN)); + CreateTable.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void loadLocalFileInSession() throws IOException, InterruptedException { + Path csvPath = FileSystems.getDefault().getPath("src/test/resources", "bigquery_noheader.csv"); + String sessionId = + LoadLocalFileInSession.createSessionForLoading( + BIGQUERY_DATASET_NAME, tableName, csvPath, FormatOptions.csv()); + assertFalse(sessionId.isEmpty()); + LoadLocalFileInSession.loadLocalFileInSession( + BIGQUERY_DATASET_NAME, tableName, csvPath, FormatOptions.csv(), sessionId); + assertThat(bout.toString()).contains("Successfully loaded to Session"); + } +} From d178593c0eb5b9f516861bb93415293c0c4764b3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 6 Jun 2023 04:08:00 +0200 Subject: [PATCH 2418/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.6 (#2734) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bd7389243d31..cf8b0deb4de7 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.5.5 + 1.5.6 From d665e523b2c393c17a734ff4714aeb85f8d61dd7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 Jun 2023 21:45:11 +0200 Subject: [PATCH 2419/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.21.0 (#2741) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cf8b0deb4de7..e662828850d0 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.20.0 + 2.21.0 test From 5b3b4569a28e7a5b967a77822c89408fec79a029 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 Jun 2023 21:46:00 +0200 Subject: [PATCH 2420/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.22.4 (#2740) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e662828850d0..4fef5dbefc17 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.22.3 + 2.22.4 test From 3b564458eef9df2173c47e26e2399a6a6cad6eee Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 Jun 2023 21:46:19 +0200 Subject: [PATCH 2421/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.11.0 (#2738) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4fef5dbefc17..d4ffb832787d 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230520-2.0.0 - 3.10.1 + 3.11.0 12.0.0 From f1036b39d1989fbf94f01a7ac0acc11b71a9efe5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 Jun 2023 21:46:27 +0200 Subject: [PATCH 2422/3441] build(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.1.2 (#2737) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index edaeb5f0ab4f..2a02c3c6137f 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -111,7 +111,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.1.0 + 3.1.2 **/*IT From 01dab9f1ae94d0f2b829d55c962a40f57bb0dba6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 Jun 2023 21:46:34 +0200 Subject: [PATCH 2423/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.4.5 (#2736) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d4ffb832787d..8324f6231072 100644 --- a/pom.xml +++ b/pom.xml @@ -197,7 +197,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.4.4 + 3.4.5 From 0dfbe1f887f2bcb73e2a53c9bdc5fc163aae9fa7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Jun 2023 00:11:45 +0200 Subject: [PATCH 2424/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.27.0 (#2729) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.27.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b7a5c463fcfc..359e63f78384 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.26.1 + 2.27.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 241d1b12bf34..69a9c29fbad7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.26.1 + 2.27.0 From 8013426ad04b00638ac70679c91937ef7aa6716b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Jun 2023 00:11:52 +0200 Subject: [PATCH 2425/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.23.2 (#2728) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.23.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 69a9c29fbad7..128ad4400b5f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.23.1 + 2.23.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 838503b805e1..e904257fc0b0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.23.1 + 2.23.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index dc5f6e31ea45..f0e9db18450f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.23.1 + 2.23.2 test From f043ed61dacf4ea66eedaf0a6faada06057b7d50 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Jun 2023 00:11:58 +0200 Subject: [PATCH 2426/3441] deps: update github/codeql-action action to v2.3.6 (#2712) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.3.6 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 658dc2f53003..0a91fbb205f4 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@29b1f65c5e92e24fe6b6647da1eaabe529cec70f # v2.3.3 + uses: github/codeql-action/upload-sarif@83f0fe6c4988d98a455712a27f0255212bba9bd4 # v2.3.6 with: sarif_file: results.sarif From 42ae18134b972c1694a7e012d2f51c916e663c83 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Jun 2023 22:13:34 +0200 Subject: [PATCH 2427/3441] deps: update github/codeql-action action to v2.20.0 (#2751) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 0a91fbb205f4..d19cd9ae9b8f 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@83f0fe6c4988d98a455712a27f0255212bba9bd4 # v2.3.6 + uses: github/codeql-action/upload-sarif@6c089f53dd51dc3fc7e599c3cb5356453a52ca9e # v2.20.0 with: sarif_file: results.sarif From 16d5ab3918fef14a4e34023e12b2f9d0efa43471 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Jun 2023 22:15:35 +0200 Subject: [PATCH 2428/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.23.3 (#2748) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 128ad4400b5f..773fd5851fae 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.23.2 + 2.23.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e904257fc0b0..38f7acd8e7fe 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.23.2 + 2.23.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f0e9db18450f..fc84cf1d93f9 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.23.2 + 2.23.3 test From 1c492bb63ddafbb4aff9354f706b5d816d3b2319 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Jun 2023 22:34:17 +0200 Subject: [PATCH 2429/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.21.0 (#2742) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 8324f6231072..9df7af47a327 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.20.0 + 2.21.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 773fd5851fae..f608c7f39318 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.20.0 + 2.21.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 38f7acd8e7fe..7e9b1b634fbe 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.20.0 + 2.21.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index fc84cf1d93f9..974421e08ef8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.20.0 + 2.21.0 test From 5d38d2375cedd29e35d75881a206cab3fdcdd6a5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Jun 2023 22:34:24 +0200 Subject: [PATCH 2430/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.25.0 (#2743) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9df7af47a327..f1118e7a3ba9 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.24.0 + 1.25.0 pom import From 17f843880f5633b602de5221c26b830e7e304d2b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Jun 2023 22:48:47 +0200 Subject: [PATCH 2431/3441] deps: update actions/checkout action to v3.5.3 (#2746) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index d19cd9ae9b8f..b87a7d0110a0 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2 + uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 with: persist-credentials: false From a7b8334491853c61cd1f5eac2c6c20845f12be53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 16:48:54 -0400 Subject: [PATCH 2432/3441] build(deps): bump cryptography from 39.0.1 to 41.0.0 in /.kokoro (#2733) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): bump cryptography from 39.0.1 to 41.0.0 in /.kokoro Bumps [cryptography](https://github.com/pyca/cryptography) from 39.0.1 to 41.0.0. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/39.0.1...41.0.0) --- updated-dependencies: - dependency-name: cryptography dependency-type: indirect ... Signed-off-by: dependabot[bot] * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Owl Bot From ce0c42e04892924b647b703757f1eedb7607b429 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Jun 2023 23:00:13 +0200 Subject: [PATCH 2433/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.38.0 (#2752) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `2.37.2` -> `2.38.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.38.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.38.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.38.0/compatibility-slim/2.37.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquerystorage-bom/2.38.0/confidence-slim/2.37.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquerystorage ### [`v2.38.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#​2380-httpsgithubcomgoogleapisjava-bigquerystoragecomparev2372v2380-2023-06-13) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v2.37.2...v2.38.0) ##### Features - Add storage error codes for KMS ([5d2d3c6](https://togithub.com/googleapis/java-bigquerystorage/commit/5d2d3c6fc6be14a3cb79cf0ce0e82b48699a97c4)) - Add table sampling to ReadAPI v1 ([5d2d3c6](https://togithub.com/googleapis/java-bigquerystorage/commit/5d2d3c6fc6be14a3cb79cf0ce0e82b48699a97c4)) ##### Bug Fixes - Update copyright year in Java license header replacement template ([#​1810](https://togithub.com/googleapis/java-bigquerystorage/issues/1810)) ([#​2138](https://togithub.com/googleapis/java-bigquerystorage/issues/2138)) ([af99efe](https://togithub.com/googleapis/java-bigquerystorage/commit/af99efe938302e0d09c98308ad081244d9c5633e)) ##### Dependencies - Update arrow.version to v12.0.1 ([#​2143](https://togithub.com/googleapis/java-bigquerystorage/issues/2143)) ([7fb618e](https://togithub.com/googleapis/java-bigquerystorage/commit/7fb618e16b6a06278d511e771b8b46ebf4658aa9)) - Update dependency com.google.cloud:google-cloud-bigquery to v2.27.0 ([#​2131](https://togithub.com/googleapis/java-bigquerystorage/issues/2131)) ([e459348](https://togithub.com/googleapis/java-bigquerystorage/commit/e4593486959e86808255517861361805dc8769aa)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.11.0 ([#​2137](https://togithub.com/googleapis/java-bigquerystorage/issues/2137)) ([5fe7cdb](https://togithub.com/googleapis/java-bigquerystorage/commit/5fe7cdb6c9b6899a13b0fdde0a5a436d68a509e2)) - Update dependency org.apache.arrow:arrow-memory-netty to v12.0.1 ([#​2144](https://togithub.com/googleapis/java-bigquerystorage/issues/2144)) ([e738bff](https://togithub.com/googleapis/java-bigquerystorage/commit/e738bff88e3efaf0f6beb5f2d93057a175671d3e)) - Update dependency org.apache.arrow:arrow-vector to v12.0.1 ([#​2145](https://togithub.com/googleapis/java-bigquerystorage/issues/2145)) ([34dfda6](https://togithub.com/googleapis/java-bigquerystorage/commit/34dfda6aeec700c0722ad559e71e85bdedd04bfb)) - Update dependency org.mockito:mockito-core to v3.12.4 ([#​2146](https://togithub.com/googleapis/java-bigquerystorage/issues/2146)) ([1434fc0](https://togithub.com/googleapis/java-bigquerystorage/commit/1434fc0b995f5d6c8039acca8ca530e9d11f490b))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f1118e7a3ba9..b68182b76179 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.37.2 + 2.38.0 pom import From 2be7f8106ac9f566b924a3f0b4ae85be5a42eb1e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 17:15:45 -0400 Subject: [PATCH 2434/3441] chore(main): release 2.27.1 (#2747) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cceeee3b35c0..80bac768be9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [2.27.1](https://github.com/googleapis/java-bigquery/compare/v2.27.0...v2.27.1) (2023-06-13) + + +### Dependencies + +* Update actions/checkout action to v3.5.3 ([#2746](https://github.com/googleapis/java-bigquery/issues/2746)) ([17f8438](https://github.com/googleapis/java-bigquery/commit/17f843880f5633b602de5221c26b830e7e304d2b)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.21.0 ([#2741](https://github.com/googleapis/java-bigquery/issues/2741)) ([d665e52](https://github.com/googleapis/java-bigquery/commit/d665e523b2c393c17a734ff4714aeb85f8d61dd7)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.25.0 ([#2743](https://github.com/googleapis/java-bigquery/issues/2743)) ([5d38d23](https://github.com/googleapis/java-bigquery/commit/5d38d2375cedd29e35d75881a206cab3fdcdd6a5)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.11.0 ([#2738](https://github.com/googleapis/java-bigquery/issues/2738)) ([3b56445](https://github.com/googleapis/java-bigquery/commit/3b564458eef9df2173c47e26e2399a6a6cad6eee)) +* Update github/codeql-action action to v2.20.0 ([#2751](https://github.com/googleapis/java-bigquery/issues/2751)) ([42ae181](https://github.com/googleapis/java-bigquery/commit/42ae18134b972c1694a7e012d2f51c916e663c83)) +* Update github/codeql-action action to v2.3.6 ([#2712](https://github.com/googleapis/java-bigquery/issues/2712)) ([f043ed6](https://github.com/googleapis/java-bigquery/commit/f043ed61dacf4ea66eedaf0a6faada06057b7d50)) + ## [2.27.0](https://github.com/googleapis/java-bigquery/compare/v2.26.1...v2.27.0) (2023-05-30) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a576ba45de4c..d7ecf96cfcea 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.27.1-SNAPSHOT + 2.27.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2d4106ee28cf..7c18b2e595f5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.27.1-SNAPSHOT + 2.27.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.27.1-SNAPSHOT + 2.27.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b68182b76179..17592c2e1814 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.27.1-SNAPSHOT + 2.27.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.27.1-SNAPSHOT + 2.27.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7e9b1b634fbe..d5ecc327150a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.27.1-SNAPSHOT + 2.27.1 diff --git a/versions.txt b/versions.txt index e08c2401d44b..b89a2104af9c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.27.0:2.27.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.27.1:2.27.1 \ No newline at end of file From e371e65379711a0c2feffd9809721e7941503bea Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 14 Jun 2023 18:16:13 +0000 Subject: [PATCH 2435/3441] chore(main): release 2.27.2-SNAPSHOT (#2753) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d7ecf96cfcea..36158d2258b2 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.27.1 + 2.27.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7c18b2e595f5..2a6c2dfd4f05 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.27.1 + 2.27.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.27.1 + 2.27.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 17592c2e1814..8fa726a483c8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.27.1 + 2.27.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.27.1 + 2.27.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d5ecc327150a..b226b12b2107 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.27.1 + 2.27.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index b89a2104af9c..e2ff381f41d3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.27.1:2.27.1 \ No newline at end of file +google-cloud-bigquery:2.27.1:2.27.2-SNAPSHOT \ No newline at end of file From aa38428ad26b64d2566b33f4b2ca3dcc102c3247 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Wed, 14 Jun 2023 16:13:51 -0400 Subject: [PATCH 2436/3441] feat: return JobID with TableResult (#2689) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: improve job create retry * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: remove option 2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: pass jobid from job.getQUeryResults() * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * choreL set jobID as null when empty * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: add IT tests * chore: complete tests * chore: make setJobId package private * chore: remove redundant job ID setting * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++-- .../google/cloud/bigquery/BigQueryImpl.java | 12 ++++-- .../java/com/google/cloud/bigquery/Job.java | 11 ++++-- .../google/cloud/bigquery/TableResult.java | 19 +++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 39 +++++++++++++++++++ 5 files changed, 78 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 359e63f78384..7ab4f1f6c129 100644 --- a/README.md +++ b/README.md @@ -53,20 +53,20 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.16.0') +implementation platform('com.google.cloud:libraries-bom:26.17.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.27.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.27.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.27.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.27.1" ``` @@ -350,7 +350,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.27.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.27.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index b5ca2e577622..d1bbcb5e2c9f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -411,7 +411,7 @@ public com.google.api.services.bigquery.model.Job call() { } }, getOptions().getRetrySettings(), - EXCEPTION_HANDLER, + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), DEFAULT_RETRY_CONFIG)); } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { @@ -1334,7 +1334,7 @@ public com.google.api.services.bigquery.model.QueryResponse call() { List bigQueryErrors = Lists.transform(results.getErrors(), BigQueryError.FROM_PB_FUNCTION); // Throwing BigQueryException since there may be no JobId and we want to stay consistent - // with the case where there there is a HTTP error + // with the case where there is an HTTP error throw new BigQueryException(bigQueryErrors); } @@ -1369,7 +1369,9 @@ public com.google.api.services.bigquery.model.QueryResponse call() { new QueryPageFetcher(jobId, schema, getOptions(), cursor, optionMap(options)), cursor, // cache first page of result - transformTableData(results.getRows(), schema))); + transformTableData(results.getRows(), schema)), + // Return the JobID of the successful job + jobId); } // only 1 page of result return new TableResult( @@ -1378,7 +1380,9 @@ public com.google.api.services.bigquery.model.QueryResponse call() { new PageImpl<>( new TableDataPageFetcher(null, schema, getOptions(), null, optionMap(options)), null, - transformTableData(results.getRows(), schema))); + transformTableData(results.getRows(), schema)), + // Return the JobID of the successful job + results.getJobReference() != null ? JobId.fromPb(results.getJobReference()) : null); } @Override diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index 7ed27676ce69..db9b4b173671 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -311,15 +311,20 @@ public TableResult getQueryResults(QueryResultsOption... options) // Listing table data might fail, such as with CREATE VIEW queries. // Avoid a tabledata.list API request by returning an empty TableResult. if (response.getTotalRows() == 0) { - return new EmptyTableResult(response.getSchema()); + TableResult emptyTableResult = new EmptyTableResult(response.getSchema()); + emptyTableResult.setJobId(job.getJobId()); + return emptyTableResult; } TableId table = ((QueryJobConfiguration) getConfiguration()).getDestinationTable() == null ? ((QueryJobConfiguration) job.getConfiguration()).getDestinationTable() : ((QueryJobConfiguration) getConfiguration()).getDestinationTable(); - return bigquery.listTableData( - table, response.getSchema(), listOptions.toArray(new TableDataListOption[0])); + TableResult tableResult = + bigquery.listTableData( + table, response.getSchema(), listOptions.toArray(new TableDataListOption[0])); + tableResult.setJobId(job.getJobId()); + return tableResult; } private QueryResponse waitForQueryResults( diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java index a7be10d7d2ad..325e1fd0bd76 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java @@ -35,6 +35,16 @@ public class TableResult implements Page, Serializable { @Nullable private final Schema schema; private final long totalRows; private final Page pageNoSchema; + @Nullable private JobId jobId = null; + + // package-private so job id is not set outside the package. + void setJobId(@Nullable JobId jobId) { + this.jobId = jobId; + } + + public JobId getJobId() { + return jobId; + } /** * If {@code schema} is non-null, {@code TableResult} adds the schema to {@code FieldValueList}s @@ -47,6 +57,15 @@ public TableResult(Schema schema, long totalRows, Page pageNoSch this.pageNoSchema = checkNotNull(pageNoSchema); } + @InternalApi("Exposed for testing") + public TableResult( + Schema schema, long totalRows, Page pageNoSchema, JobId jobId) { + this.schema = schema; + this.totalRows = totalRows; + this.pageNoSchema = checkNotNull(pageNoSchema); + this.jobId = jobId; + } + /** Returns the schema of the results. Null if the schema is not supplied. */ public Schema getSchema() { return schema; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index cdfcb80033af..c9edbf585aa2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1085,6 +1085,7 @@ public void testJsonType() throws InterruptedException { .addPositionalParameter(stringParameter) .build(); TableResult result = bigquery.query(queryJobConfiguration); + assertNotNull(result.getJobId()); for (FieldValueList values : result.iterateAll()) { assertEquals("10", values.get(0).getValue()); } @@ -1209,6 +1210,7 @@ public void testIntervalType() throws InterruptedException { .addPositionalParameter(intervalParameter2) .build(); TableResult result = bigquery.query(queryJobConfiguration); + assertNotNull(result.getJobId()); for (FieldValueList values : result.iterateAll()) { assertEquals("125-7 -19 0:24:12.000006", values.get(0).getValue()); } @@ -1706,6 +1708,7 @@ public void testCreateViewTable() throws InterruptedException { .setUseLegacySql(true) .build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); int rowCount = 0; for (FieldValueList row : result.getValues()) { FieldValue timestampCell = row.get(0); @@ -2603,6 +2606,7 @@ public void testTimestamp() throws InterruptedException { QueryJobConfiguration.newBuilder(query) .setDefaultDataset(DatasetId.of(DATASET)) .build()); + assertNotNull(resultInteractive.getJobId()); for (FieldValueList row : resultInteractive.getValues()) { FieldValue timeStampCell = row.get(0); Instant timestampStringValueActual = timeStampCell.getTimestampInstant(); @@ -2619,6 +2623,7 @@ public void testQuery() throws InterruptedException { Job job = bigquery.create(JobInfo.of(JobId.of(), config)); TableResult result = job.getQueryResults(); + assertNotNull(result.getJobId()); assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); int rowCount = 0; for (FieldValueList row : result.getValues()) { @@ -2668,6 +2673,7 @@ public void testQueryTimeStamp() throws InterruptedException { .setDefaultDataset(DatasetId.of(DATASET)) .setPriority(QueryJobConfiguration.Priority.INTERACTIVE) .build()); + assertNotNull(result.getJobId()); for (FieldValueList row : result.getValues()) { FieldValue timeStampCell = row.get(0); long microsAfterQuery = timeStampCell.getTimestampValue(); @@ -2680,6 +2686,7 @@ public void testQueryTimeStamp() throws InterruptedException { QueryJobConfiguration.newBuilder(query) .setDefaultDataset(DatasetId.of(DATASET)) .build()); + assertNotNull(resultInteractive.getJobId()); for (FieldValueList row : resultInteractive.getValues()) { FieldValue timeStampCell = row.get(0); long microsAfterQuery = timeStampCell.getTimestampValue(); @@ -2696,6 +2703,7 @@ public void testQueryCaseInsensitiveSchemaFieldByGetName() throws InterruptedExc Job job = bigquery.create(JobInfo.of(JobId.of(), config)); TableResult result = job.getQueryResults(); + assertNotNull(result.getJobId()); assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); int rowCount = 0; for (FieldValueList row : result.getValues()) { @@ -2744,6 +2752,7 @@ public void testQueryExternalHivePartitioningOptionAutoLayout() throws Interrupt String.format( "SELECT COUNT(*) as ct FROM %s.%s WHERE dt=\"2020-11-15\"", DATASET, tableName); TableResult result = bigquery.query(QueryJobConfiguration.of(query)); + assertNotNull(result.getJobId()); for (FieldValueList fieldValues : result.iterateAll()) { assertEquals(50, fieldValues.get("ct").getLongValue()); } @@ -2780,6 +2789,7 @@ public void testQueryExternalHivePartitioningOptionCustomLayout() throws Interru String query = String.format("SELECT COUNT(*) as ct FROM %s.%s WHERE pkey=\"foo\"", DATASET, tableName); TableResult result = bigquery.query(QueryJobConfiguration.of(query)); + assertNotNull(result.getJobId()); for (FieldValueList fieldValues : result.iterateAll()) { assertEquals(50, fieldValues.get("ct").getLongValue()); } @@ -3410,6 +3420,7 @@ public void testFastQueryMultipleRuns() throws InterruptedException { QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); assertEquals(2, result.getTotalRows()); assertNull(result.getNextPage()); @@ -3418,6 +3429,8 @@ public void testFastQueryMultipleRuns() throws InterruptedException { // running the same QueryJobConfiguration with the same query again TableResult result1Duplicate = bigquery.query(config); + assertNotNull(result1Duplicate.getJobId()); + assertNotEquals(result.getJobId(), result1Duplicate.getJobId()); assertEquals(QUERY_RESULT_SCHEMA, result1Duplicate.getSchema()); assertEquals(2, result.getTotalRows()); assertNull(result1Duplicate.getNextPage()); @@ -3428,6 +3441,7 @@ public void testFastQueryMultipleRuns() throws InterruptedException { QueryJobConfiguration config2 = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); TableResult result2 = bigquery.query(config2); + assertNotNull(result2.getJobId()); assertEquals(QUERY_RESULT_SCHEMA, result2.getSchema()); assertEquals(2, result2.getTotalRows()); assertNull(result2.getNextPage()); @@ -3443,6 +3457,7 @@ public void testFastQuerySinglePageDuplicateRequestIds() throws InterruptedExcep QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); assertEquals(2, result.getTotalRows()); assertNull(result.getNextPage()); @@ -3450,6 +3465,7 @@ public void testFastQuerySinglePageDuplicateRequestIds() throws InterruptedExcep assertFalse(result.hasNextPage()); TableResult result1 = bigquery.query(config); + assertNotNull(result1.getJobId()); assertEquals(QUERY_RESULT_SCHEMA, result1.getSchema()); assertEquals(2, result1.getTotalRows()); assertNull(result1.getNextPage()); @@ -3458,6 +3474,7 @@ public void testFastQuerySinglePageDuplicateRequestIds() throws InterruptedExcep config.toBuilder().setQuery(query).build(); TableResult result2 = bigquery.query(config); + assertNotNull(result2.getJobId()); assertEquals(QUERY_RESULT_SCHEMA, result2.getSchema()); assertEquals(2, result2.getTotalRows()); assertNull(result2.getNextPage()); @@ -3473,6 +3490,7 @@ public void testFastSQLQuery() throws InterruptedException { QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); assertEquals(2, result.getTotalRows()); assertNull(result.getNextPage()); @@ -3538,6 +3556,7 @@ public void testLocationFastSQLQueryWithJobId() throws InterruptedException { .setDefaultDataset(DatasetId.of(UK_DATASET)) .build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); assertEquals(SIMPLE_SCHEMA, result.getSchema()); assertEquals(1, result.getTotalRows()); assertNull(result.getNextPage()); @@ -3584,6 +3603,7 @@ public void testFastSQLQueryMultiPage() throws InterruptedException { QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); assertEquals(LARGE_TABLE_SCHEMA, result.getSchema()); assertEquals(313348, result.getTotalRows()); assertNotNull(result.getNextPage()); @@ -3591,6 +3611,7 @@ public void testFastSQLQueryMultiPage() throws InterruptedException { assertTrue(result.hasNextPage()); TableResult result1 = bigquery.query(config); + assertNotNull(result1.getJobId()); assertEquals(LARGE_TABLE_SCHEMA, result.getSchema()); assertEquals(313348, result.getTotalRows()); assertNotNull(result1.getNextPage()); @@ -3599,6 +3620,7 @@ public void testFastSQLQueryMultiPage() throws InterruptedException { config.toBuilder().setQuery(query).build(); TableResult result2 = bigquery.query(config); + assertNotNull(result2.getJobId()); assertEquals(LARGE_TABLE_SCHEMA, result2.getSchema()); assertEquals(313348, result2.getTotalRows()); assertNotNull(result2.getNextPage()); @@ -3613,12 +3635,14 @@ public void testFastDMLQuery() throws InterruptedException { String.format("UPDATE %s.%s SET StringField = 'hello' WHERE TRUE", DATASET, tableName); QueryJobConfiguration dmlConfig = QueryJobConfiguration.newBuilder(dmlQuery).build(); TableResult result = bigquery.query(dmlConfig); + assertNotNull(result.getJobId()); assertEquals(TABLE_SCHEMA, result.getSchema()); assertEquals(2, result.getTotalRows()); // Verify correctness of table content String sqlQuery = String.format("SELECT * FROM %s.%s", DATASET, tableName); QueryJobConfiguration sqlConfig = QueryJobConfiguration.newBuilder(sqlQuery).build(); TableResult resultAfterDML = bigquery.query(sqlConfig); + assertNotNull(resultAfterDML.getJobId()); for (FieldValueList row : resultAfterDML.getValues()) { FieldValue timestampCell = row.get(0); assertEquals(timestampCell, row.get("TimestampField")); @@ -3650,12 +3674,14 @@ public void testFastDDLQuery() throws InterruptedException { QueryJobConfiguration ddlConfig = QueryJobConfiguration.newBuilder(ddlQuery).setDefaultDataset(DatasetId.of(DATASET)).build(); TableResult result = bigquery.query(ddlConfig); + assertNotNull(result.getJobId()); assertEquals(DDL_TABLE_SCHEMA, result.getSchema()); assertEquals(0, result.getTotalRows()); // Verify correctness of table content String sqlQuery = String.format("SELECT * FROM %s.%s", DATASET, tableName); QueryJobConfiguration sqlConfig = QueryJobConfiguration.newBuilder(sqlQuery).build(); TableResult resultAfterDDL = bigquery.query(sqlConfig); + assertNotNull(resultAfterDDL.getJobId()); for (FieldValueList row : resultAfterDDL.getValues()) { FieldValue timestampCell = row.get(0); assertEquals(timestampCell, row.get("TimestampField")); @@ -3686,12 +3712,14 @@ public void testFastQuerySlowDDL() throws InterruptedException { .setDefaultDataset(DatasetId.of(DATASET)) .build(); TableResult result = bigquery.query(ddlConfig); + assertNotNull(result.getJobId()); assertEquals(0, result.getTotalRows()); assertNotNull(result.getSchema()); // Verify correctness of table content String sqlQuery = String.format("SELECT * FROM %s.%s", DATASET, tableName); QueryJobConfiguration sqlConfig = QueryJobConfiguration.newBuilder(sqlQuery).build(); TableResult resultAfterDDL = bigquery.query(sqlConfig); + assertNotNull(resultAfterDDL.getJobId()); for (FieldValueList row : resultAfterDDL.getValues()) { FieldValue unique_key = row.get(0); assertEquals(unique_key, row.get("unique_key")); @@ -3931,6 +3959,7 @@ public void testDmlStatistics() throws InterruptedException { assertNull(remoteJob.getStatus().getError()); TableResult result = remoteJob.getQueryResults(); + assertNotNull(result.getJobId()); assertEquals(TABLE_SCHEMA, result.getSchema()); Job queryJob = bigquery.getJob(remoteJob.getJobId()); @@ -4094,6 +4123,7 @@ public void testPositionalQueryParameters() throws InterruptedException { .addPositionalParameter(bigNumericParameter4) .build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); assertEquals(QUERY_RESULT_SCHEMA_BIGNUMERIC, result.getSchema()); assertEquals(2, Iterables.size(result.getValues())); for (FieldValueList values : result.iterateAll()) { @@ -4156,6 +4186,7 @@ public void testNamedQueryParameters() throws InterruptedException { .addNamedParameter("integerList", intArrayParameter) .build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); assertEquals(2, Iterables.size(result.getValues())); } @@ -4202,6 +4233,7 @@ public void testStructNamedQueryParameters() throws InterruptedException { .addNamedParameter("recordField", recordValue) .build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); assertEquals(1, Iterables.size(result.getValues())); for (FieldValueList values : result.iterateAll()) { for (FieldValue value : values) { @@ -4428,6 +4460,7 @@ public void testStructQuery() throws InterruptedException { .setUseLegacySql(false) .build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); assertEquals(2, Iterables.size(result.getValues())); for (FieldValueList values : result.iterateAll()) { for (FieldValue value : values) { @@ -4469,6 +4502,7 @@ public void testNestedStructNamedQueryParameters() throws InterruptedException { .addNamedParameter("nestedRecordField", nestedRecordField) .build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); assertEquals(1, Iterables.size(result.getValues())); for (FieldValueList values : result.iterateAll()) { for (FieldValue value : values) { @@ -4497,6 +4531,7 @@ public void testBytesParameter() throws Exception { .addNamedParameter("p", bytesParameter) .build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); int rowCount = 0; for (FieldValueList row : result.getValues()) { rowCount++; @@ -4520,6 +4555,7 @@ public void testGeographyParameter() throws Exception { .addNamedParameter("geo", geoParameterValue) .build(); TableResult result = bigquery.query(config); + assertNotNull(result.getJobId()); int rowCount = 0; for (FieldValueList row : result.getValues()) { rowCount++; @@ -4709,6 +4745,7 @@ public void testSnapshotTableCopyJob() throws InterruptedException { QueryJobConfiguration.newBuilder(ddlQuery).setDefaultDataset(DatasetId.of(DATASET)).build(); TableId sourceTableId = TableId.of(DATASET, sourceTableName); TableResult result = bigquery.query(ddlConfig); + assertNotNull(result.getJobId()); assertEquals(DDL_TABLE_SCHEMA, result.getSchema()); Table remoteTable = bigquery.getTable(DATASET, sourceTableName); assertNotNull(remoteTable); @@ -4814,6 +4851,7 @@ public void testQueryJob() throws InterruptedException, TimeoutException { assertNull(remoteJob.getStatus().getError()); TableResult result = remoteJob.getQueryResults(); + assertNotNull(result.getJobId()); assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); int rowCount = 0; for (FieldValueList row : result.getValues()) { @@ -5595,6 +5633,7 @@ public void testCloneTableCopyJob() throws InterruptedException { QueryJobConfiguration.newBuilder(ddlQuery).setDefaultDataset(DatasetId.of(DATASET)).build(); TableId sourceTableId = TableId.of(DATASET, sourceTableName); TableResult result = bigquery.query(ddlConfig); + assertNotNull(result.getJobId()); assertEquals(DDL_TABLE_SCHEMA, result.getSchema()); Table remoteTable = bigquery.getTable(DATASET, sourceTableName); assertNotNull(remoteTable); From afb571c97edb13f93df9ac140af4516205d27a49 Mon Sep 17 00:00:00 2001 From: Obada Alabbadi <76101898+obada-ab@users.noreply.github.com> Date: Fri, 16 Jun 2023 21:00:22 +0200 Subject: [PATCH 2437/3441] feat: add primary key and foreign keys (#2744) Add support for creating/updating primary and foreign keys Internal b/284849902 --- README.md | 1 + .../clirr-ignored-differences.xml | 11 +- .../cloud/bigquery/ColumnReference.java | 79 +++++++ .../com/google/cloud/bigquery/ForeignKey.java | 110 +++++++++ .../com/google/cloud/bigquery/PrimaryKey.java | 68 ++++++ .../bigquery/StandardTableDefinition.java | 15 ++ .../java/com/google/cloud/bigquery/Table.java | 6 + .../cloud/bigquery/TableConstraints.java | 86 +++++++ .../com/google/cloud/bigquery/TableInfo.java | 22 ++ .../cloud/bigquery/ColumnReferenceTest.java | 69 ++++++ .../google/cloud/bigquery/ForeignKeyTest.java | 95 ++++++++ .../google/cloud/bigquery/PrimaryKeyTest.java | 55 +++++ .../cloud/bigquery/TableConstraintsTest.java | 119 ++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 217 ++++++++++++++++++ ...CreateTablesWithPrimaryAndForeignKeys.java | 109 +++++++++ ...eateTablesWithPrimaryAndForeignKeysIT.java | 82 +++++++ 16 files changed, 1143 insertions(+), 1 deletion(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ColumnReference.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ForeignKey.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PrimaryKey.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableConstraints.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PrimaryKeyTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeys.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeysIT.java diff --git a/README.md b/README.md index 7ab4f1f6c129..63bd09cfeed8 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Create Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java) | | Create Table External Hive Partitioned | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java) | | Create Table Without Schema | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java) | +| Create Tables With Primary And Foreign Keys | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeys.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeys.java) | | Create View | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateView.java) | | Dataset Exists | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java) | | Ddl Create View | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java) | diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 5fe634cca707..784a3c9626e3 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -44,10 +44,19 @@ com/google/cloud/bigquery/TableInfo* *DefaultCollation(*) - 7013 com/google/cloud/bigquery/TableInfo* *CloneDefinition(*) + + 7013 + com/google/cloud/bigquery/StandardTableDefinition* + *TableConstraints(*) + + + 7013 + com/google/cloud/bigquery/TableInfo* + *TableConstraints(*) + \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ColumnReference.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ColumnReference.java new file mode 100644 index 000000000000..3dc688be5f91 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ColumnReference.java @@ -0,0 +1,79 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import com.google.common.annotations.VisibleForTesting; +import javax.annotation.Nullable; + +@AutoValue +public abstract class ColumnReference { + public static ColumnReference.Builder newBuilder() { + return new AutoValue_ColumnReference.Builder(); + } + + static ColumnReference fromPb( + com.google.api.services.bigquery.model.TableConstraints.ForeignKeys.ColumnReferences + columnReference) { + ColumnReference.Builder builder = newBuilder(); + + if (columnReference.getReferencedColumn() != null) { + builder.setReferencedColumn(columnReference.getReferencedColumn()); + } + + if (columnReference.getReferencingColumn() != null) { + builder.setReferencingColumn(columnReference.getReferencingColumn()); + } + + return builder.build(); + } + + com.google.api.services.bigquery.model.TableConstraints.ForeignKeys.ColumnReferences toPb() { + + com.google.api.services.bigquery.model.TableConstraints.ForeignKeys.ColumnReferences + columnReference = + new com.google.api.services.bigquery.model.TableConstraints.ForeignKeys + .ColumnReferences(); + columnReference.setReferencedColumn(getReferencedColumn()); + columnReference.setReferencingColumn(getReferencingColumn()); + + return columnReference; + } + + @Nullable + public abstract String getReferencedColumn(); + + @Nullable + public abstract String getReferencingColumn(); + + /** Returns a builder for column reference. */ + @VisibleForTesting + public abstract ColumnReference.Builder toBuilder(); + + @AutoValue.Builder + public abstract static class Builder { + + /** The target column of this reference. * */ + public abstract ColumnReference.Builder setReferencedColumn(String referencedColumn); + + /** The source column of this reference. * */ + public abstract ColumnReference.Builder setReferencingColumn(String referencingColumn); + + /** Creates a {@code ColumnReference} object. */ + public abstract ColumnReference build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ForeignKey.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ForeignKey.java new file mode 100644 index 000000000000..69c2f7434606 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ForeignKey.java @@ -0,0 +1,110 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import com.google.common.annotations.VisibleForTesting; +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; +import javax.annotation.Nullable; + +@AutoValue +public abstract class ForeignKey implements Serializable { + public static ForeignKey.Builder newBuilder() { + return new AutoValue_ForeignKey.Builder(); + } + + static ForeignKey fromPb( + com.google.api.services.bigquery.model.TableConstraints.ForeignKeys foreignKey) { + ForeignKey.Builder builder = newBuilder(); + + if (foreignKey.getName() != null) { + builder.setName(foreignKey.getName()); + } + + if (foreignKey.getReferencedTable() != null) { + com.google.api.services.bigquery.model.TableConstraints.ForeignKeys.ReferencedTable + referencedTable = foreignKey.getReferencedTable(); + builder.setReferencedTable( + TableId.of( + referencedTable.getProjectId(), + referencedTable.getDatasetId(), + referencedTable.getTableId())); + } + + if (foreignKey.getColumnReferences() != null) { + builder.setColumnReferences( + foreignKey.getColumnReferences().stream() + .map(ColumnReference::fromPb) + .collect(Collectors.toList())); + } + + return builder.build(); + } + + com.google.api.services.bigquery.model.TableConstraints.ForeignKeys toPb() { + + com.google.api.services.bigquery.model.TableConstraints.ForeignKeys foreignKey = + new com.google.api.services.bigquery.model.TableConstraints.ForeignKeys(); + if (getName() != null) { + foreignKey.setName(getName()); + } + if (getReferencedTable() != null) { + TableId referencedTableId = getReferencedTable(); + foreignKey.setReferencedTable( + new com.google.api.services.bigquery.model.TableConstraints.ForeignKeys.ReferencedTable() + .setTableId(referencedTableId.getTable()) + .setDatasetId(referencedTableId.getDataset()) + .setProjectId(referencedTableId.getProject())); + } + if (getColumnReferences() != null) { + foreignKey.setColumnReferences( + getColumnReferences().stream().map(ColumnReference::toPb).collect(Collectors.toList())); + } + return foreignKey; + } + + @Nullable + public abstract String getName(); + + @Nullable + public abstract TableId getReferencedTable(); + + @Nullable + public abstract List getColumnReferences(); + + /** Returns a builder for foreign key. */ + @VisibleForTesting + public abstract ForeignKey.Builder toBuilder(); + + @AutoValue.Builder + public abstract static class Builder { + + /** The name of the foreign key. * */ + public abstract ForeignKey.Builder setName(String name); + + /** The table referenced by this foreign key. * */ + public abstract ForeignKey.Builder setReferencedTable(TableId referencedTable); + + /** The set of column references for this foreign key. * */ + public abstract ForeignKey.Builder setColumnReferences(List columnReferences); + + /** Creates a {@code ForignKey} object. */ + public abstract ForeignKey build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PrimaryKey.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PrimaryKey.java new file mode 100644 index 000000000000..a8474cf0fbf1 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PrimaryKey.java @@ -0,0 +1,68 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import com.google.common.annotations.VisibleForTesting; +import java.io.Serializable; +import java.util.List; +import javax.annotation.Nullable; + +@AutoValue +public abstract class PrimaryKey implements Serializable { + public static PrimaryKey.Builder newBuilder() { + return new AutoValue_PrimaryKey.Builder(); + } + + static PrimaryKey fromPb( + com.google.api.services.bigquery.model.TableConstraints.PrimaryKey primaryKey) { + PrimaryKey.Builder builder = newBuilder(); + + if (primaryKey.getColumns() != null) { + builder.setColumns(primaryKey.getColumns()); + } + + return builder.build(); + } + + com.google.api.services.bigquery.model.TableConstraints.PrimaryKey toPb() { + + com.google.api.services.bigquery.model.TableConstraints.PrimaryKey primaryKey = + new com.google.api.services.bigquery.model.TableConstraints.PrimaryKey(); + if (getColumns() != null) { + primaryKey.setColumns(getColumns()); + } + return primaryKey; + } + + @Nullable + public abstract List getColumns(); + + /** Returns a builder for primary key. */ + @VisibleForTesting + public abstract PrimaryKey.Builder toBuilder(); + + @AutoValue.Builder + public abstract static class Builder { + + /** The column names that are primary keys. * */ + public abstract PrimaryKey.Builder setColumns(List columns); + + /** Creates a {@code PrimaryKey} object. */ + public abstract PrimaryKey build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index 4b09fe3c4043..8242147df349 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -161,6 +161,8 @@ public abstract static class Builder */ public abstract Builder setClustering(Clustering clustering); + public abstract Builder setTableConstraints(TableConstraints tableConstraints); + /** Creates a {@code StandardTableDefinition} object. */ public abstract StandardTableDefinition build(); } @@ -221,6 +223,13 @@ public abstract static class Builder @Nullable public abstract Clustering getClustering(); + /** + * Returns the table constraints for this table. Returns {@code null} if no table constraints are + * set for this table. + */ + @Nullable + public abstract TableConstraints getTableConstraints(); + /** Returns a builder for a BigQuery standard table definition. */ public static Builder newBuilder() { return new AutoValue_StandardTableDefinition.Builder().setType(Type.TABLE); @@ -259,6 +268,9 @@ Table toPb() { if (getClustering() != null) { tablePb.setClustering(getClustering().toPb()); } + if (getTableConstraints() != null) { + tablePb.setTableConstraints(getTableConstraints().toPb()); + } return tablePb; } @@ -296,6 +308,9 @@ static StandardTableDefinition fromPb(Table tablePb) { if (tablePb.getNumLongTermBytes() != null) { builder.setNumLongTermBytes(tablePb.getNumLongTermBytes()); } + if (tablePb.getTableConstraints() != null) { + builder.setTableConstraints(TableConstraints.fromPb(tablePb.getTableConstraints())); + } return builder.setNumBytes(tablePb.getNumBytes()).setLocation(tablePb.getLocation()).build(); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java index 3e67e8d75005..cf1dfb4f7f94 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java @@ -168,6 +168,12 @@ public TableInfo.Builder setCloneDefinition(CloneDefinition cloneDefinition) { return this; } + @Override + public Builder setTableConstraints(TableConstraints tableConstraints) { + infoBuilder.setTableConstraints(tableConstraints); + return this; + } + @Override public Table build() { return new Table(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableConstraints.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableConstraints.java new file mode 100644 index 000000000000..ad30eafcc2a8 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableConstraints.java @@ -0,0 +1,86 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import com.google.common.annotations.VisibleForTesting; +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; +import javax.annotation.Nullable; + +@AutoValue +public abstract class TableConstraints implements Serializable { + public static TableConstraints.Builder newBuilder() { + return new AutoValue_TableConstraints.Builder(); + } + + static TableConstraints fromPb( + com.google.api.services.bigquery.model.TableConstraints tableConstraints) { + TableConstraints.Builder builder = newBuilder(); + + if (tableConstraints.getForeignKeys() != null) { + builder.setForeignKeys( + tableConstraints.getForeignKeys().stream() + .map(ForeignKey::fromPb) + .collect(Collectors.toList())); + } + if (tableConstraints.getPrimaryKey() != null) { + builder.setPrimaryKey(PrimaryKey.fromPb(tableConstraints.getPrimaryKey())); + } + + return builder.build(); + } + + com.google.api.services.bigquery.model.TableConstraints toPb() { + + com.google.api.services.bigquery.model.TableConstraints tableConstraints = + new com.google.api.services.bigquery.model.TableConstraints(); + if (getForeignKeys() != null) { + tableConstraints.setForeignKeys( + getForeignKeys().stream().map(ForeignKey::toPb).collect(Collectors.toList())); + } + if (getPrimaryKey() != null) { + tableConstraints.setPrimaryKey(getPrimaryKey().toPb()); + } + + return tableConstraints; + } + + @Nullable + public abstract List getForeignKeys(); + + @Nullable + public abstract PrimaryKey getPrimaryKey(); + + /** Returns a builder for table constraints. */ + @VisibleForTesting + public abstract TableConstraints.Builder toBuilder(); + + @AutoValue.Builder + public abstract static class Builder { + + /** The list of foreign keys for the table constraints. * */ + public abstract TableConstraints.Builder setForeignKeys(List foreignKeys); + + /** The primary key for the table constraints. * */ + public abstract TableConstraints.Builder setPrimaryKey(PrimaryKey primaryKey); + + /** Creates a {@code TableConstraints} object. */ + public abstract TableConstraints build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java index 19e9de2b795a..abfe21ec46a3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -75,6 +75,7 @@ public Table apply(TableInfo tableInfo) { private final String defaultCollation; private final CloneDefinition cloneDefinition; + private final TableConstraints tableConstraints; /** A builder for {@code TableInfo} objects. */ public abstract static class Builder { @@ -142,6 +143,8 @@ public Builder setRequirePartitionFilter(Boolean requirePartitionFilter) { public abstract Builder setDefaultCollation(String defaultCollation); public abstract Builder setCloneDefinition(CloneDefinition cloneDefinition); + + public abstract Builder setTableConstraints(TableConstraints tableConstraints); } static class BuilderImpl extends Builder { @@ -164,6 +167,7 @@ static class BuilderImpl extends Builder { private Boolean requirePartitionFilter; private String defaultCollation; private CloneDefinition cloneDefinition; + private TableConstraints tableConstraints; BuilderImpl() {} @@ -186,6 +190,7 @@ static class BuilderImpl extends Builder { this.requirePartitionFilter = tableInfo.requirePartitionFilter; this.defaultCollation = tableInfo.defaultCollation; this.cloneDefinition = tableInfo.cloneDefinition; + this.tableConstraints = tableInfo.tableConstraints; } BuilderImpl(Table tablePb) { @@ -214,6 +219,9 @@ static class BuilderImpl extends Builder { if (tablePb.getCloneDefinition() != null) { this.cloneDefinition = CloneDefinition.fromPb(tablePb.getCloneDefinition()); } + if (tablePb.getTableConstraints() != null) { + this.tableConstraints = TableConstraints.fromPb(tablePb.getTableConstraints()); + } } @Override @@ -323,6 +331,11 @@ public Builder setCloneDefinition(CloneDefinition cloneDefinition) { return this; } + public Builder setTableConstraints(TableConstraints tableConstraints) { + this.tableConstraints = tableConstraints; + return this; + } + @Override public TableInfo build() { return new TableInfo(this); @@ -348,6 +361,7 @@ public TableInfo build() { this.requirePartitionFilter = builder.requirePartitionFilter; this.defaultCollation = builder.defaultCollation; this.cloneDefinition = builder.cloneDefinition; + this.tableConstraints = builder.tableConstraints; } /** Returns the hash of the table resource. */ @@ -458,6 +472,10 @@ public CloneDefinition getCloneDefinition() { return cloneDefinition; } + public TableConstraints getTableConstraints() { + return tableConstraints; + } + /** Returns a builder for the table object. */ public Builder toBuilder() { return new BuilderImpl(this); @@ -484,6 +502,7 @@ public String toString() { .add("requirePartitionFilter", requirePartitionFilter) .add("defaultCollation", defaultCollation) .add("cloneDefinition", cloneDefinition) + .add("tableConstraints", tableConstraints) .toString(); } @@ -551,6 +570,9 @@ Table toPb() { if (cloneDefinition != null) { tablePb.setCloneDefinition(cloneDefinition.toPb()); } + if (tableConstraints != null) { + tablePb.setTableConstraints(tableConstraints.toPb()); + } return tablePb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java new file mode 100644 index 000000000000..7a6cac30f606 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java @@ -0,0 +1,69 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class ColumnReferenceTest { + private static final ColumnReference COLUMN_REFERENCE = + ColumnReference.newBuilder() + .setReferencingColumn("column1") + .setReferencedColumn("column2") + .build(); + + @Test + public void testToBuilder() { + compareColumnReferenceDefinition(COLUMN_REFERENCE, COLUMN_REFERENCE.toBuilder().build()); + ColumnReference columnReference = + COLUMN_REFERENCE + .toBuilder() + .setReferencingColumn("col1") + .setReferencedColumn("col2") + .build(); + assertEquals("col1", columnReference.getReferencingColumn()); + assertEquals("col2", columnReference.getReferencedColumn()); + } + + @Test + public void testBuilder() { + assertEquals("column1", COLUMN_REFERENCE.getReferencingColumn()); + assertEquals("column2", COLUMN_REFERENCE.getReferencedColumn()); + ColumnReference columnReference = + COLUMN_REFERENCE + .newBuilder() + .setReferencingColumn("column1") + .setReferencedColumn("column2") + .build(); + assertEquals(COLUMN_REFERENCE, columnReference); + } + + @Test + public void testToAndFromPb() { + ColumnReference columnReference = COLUMN_REFERENCE.toBuilder().build(); + assertTrue(ColumnReference.fromPb(columnReference.toPb()) instanceof ColumnReference); + compareColumnReferenceDefinition( + columnReference, ColumnReference.fromPb(columnReference.toPb())); + } + + private void compareColumnReferenceDefinition(ColumnReference expected, ColumnReference value) { + assertEquals(expected.getReferencingColumn(), value.getReferencingColumn()); + assertEquals(expected.getReferencedColumn(), value.getReferencedColumn()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java new file mode 100644 index 000000000000..5cb2b418f2c1 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java @@ -0,0 +1,95 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.Collections; +import org.junit.Test; + +public class ForeignKeyTest { + private static final TableId TABLE_ID = TableId.of("project", "dataset", "table"); + + private static final ColumnReference COLUMN_REFERENCE = + ColumnReference.newBuilder() + .setReferencingColumn("column1") + .setReferencedColumn("column2") + .build(); + private static final ForeignKey FOREIGN_KEY = + ForeignKey.newBuilder() + .setName("foreign_key") + .setReferencedTable(TABLE_ID) + .setColumnReferences(Collections.singletonList(COLUMN_REFERENCE)) + .build(); + + @Test + public void testToBuilder() { + compareForeignKeyDefinition(FOREIGN_KEY, FOREIGN_KEY.toBuilder().build()); + TableId referencedTable = TableId.of("project1", "dataset1", "table1"); + ArrayList columnReferences = new ArrayList<>(); + columnReferences.add( + ColumnReference.newBuilder() + .setReferencingColumn("from") + .setReferencedColumn("to") + .build()); + columnReferences.add( + ColumnReference.newBuilder() + .setReferencingColumn("from2") + .setReferencedColumn("to2") + .build()); + ForeignKey foreignKey = + FOREIGN_KEY + .toBuilder() + .setName("test") + .setReferencedTable(referencedTable) + .setColumnReferences(columnReferences) + .build(); + assertEquals("test", foreignKey.getName()); + assertEquals(referencedTable, foreignKey.getReferencedTable()); + assertEquals(columnReferences, foreignKey.getColumnReferences()); + } + + @Test + public void testBuilder() { + assertEquals("foreign_key", FOREIGN_KEY.getName()); + assertEquals(TABLE_ID, FOREIGN_KEY.getReferencedTable()); + assertEquals(Collections.singletonList(COLUMN_REFERENCE), FOREIGN_KEY.getColumnReferences()); + ForeignKey foreignKey = + FOREIGN_KEY + .newBuilder() + .setName("foreign_key") + .setReferencedTable(TABLE_ID) + .setColumnReferences(Collections.singletonList(COLUMN_REFERENCE)) + .build(); + assertEquals(FOREIGN_KEY, foreignKey); + } + + @Test + public void testToAndFromPb() { + ForeignKey foreignKey = FOREIGN_KEY.toBuilder().build(); + assertTrue(ForeignKey.fromPb(foreignKey.toPb()) instanceof ForeignKey); + compareForeignKeyDefinition(foreignKey, ForeignKey.fromPb(foreignKey.toPb())); + } + + private void compareForeignKeyDefinition(ForeignKey expected, ForeignKey value) { + assertEquals(expected.getName(), value.getName()); + assertEquals(expected.getReferencedTable(), value.getReferencedTable()); + assertEquals(expected.getColumnReferences(), value.getColumnReferences()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PrimaryKeyTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PrimaryKeyTest.java new file mode 100644 index 000000000000..2de87a025832 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PrimaryKeyTest.java @@ -0,0 +1,55 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.Arrays; +import java.util.List; +import org.junit.Test; + +public class PrimaryKeyTest { + private static final List COLUMNS = Arrays.asList("column1", "column2"); + private static final PrimaryKey PRIMARY_KEY = PrimaryKey.newBuilder().setColumns(COLUMNS).build(); + + @Test + public void testToBuilder() { + comparePrimaryKeyDefinition(PRIMARY_KEY, PRIMARY_KEY.toBuilder().build()); + PrimaryKey primaryKey = + PRIMARY_KEY.toBuilder().setColumns(Arrays.asList("col1", "col2", "col3")).build(); + assertEquals(Arrays.asList("col1", "col2", "col3"), primaryKey.getColumns()); + } + + @Test + public void testBuilder() { + assertEquals(COLUMNS, PRIMARY_KEY.getColumns()); + PrimaryKey primaryKey = PRIMARY_KEY.newBuilder().setColumns(COLUMNS).build(); + assertEquals(PRIMARY_KEY, primaryKey); + } + + @Test + public void testToAndFromPb() { + PrimaryKey primaryKey = PRIMARY_KEY.toBuilder().build(); + assertTrue(PrimaryKey.fromPb(primaryKey.toPb()) instanceof PrimaryKey); + comparePrimaryKeyDefinition(primaryKey, PrimaryKey.fromPb(primaryKey.toPb())); + } + + private void comparePrimaryKeyDefinition(PrimaryKey expected, PrimaryKey value) { + assertEquals(expected.getColumns(), value.getColumns()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java new file mode 100644 index 000000000000..05f3bbf41c5f --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java @@ -0,0 +1,119 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import org.junit.Test; + +public class TableConstraintsTest { + private static final List COLUMNS_PK = Arrays.asList("column1", "column2"); + private static final PrimaryKey PRIMARY_KEY = + PrimaryKey.newBuilder().setColumns(COLUMNS_PK).build(); + private static final TableId TABLE_ID_PK = TableId.of("project", "dataset", "table"); + + private static final ColumnReference COLUMN_REFERENCE = + ColumnReference.newBuilder() + .setReferencingColumn("column1") + .setReferencedColumn("column2") + .build(); + private static final ForeignKey FOREIGN_KEY = + ForeignKey.newBuilder() + .setName("foreign_key") + .setReferencedTable(TABLE_ID_PK) + .setColumnReferences(Collections.singletonList(COLUMN_REFERENCE)) + .build(); + + private static final TableConstraints TABLE_CONSTRAINTS = + TableConstraints.newBuilder() + .setPrimaryKey(PRIMARY_KEY) + .setForeignKeys(Collections.singletonList(FOREIGN_KEY)) + .build(); + + @Test + public void testToBuilder() { + compareTableConstraintsDefinition(TABLE_CONSTRAINTS, TABLE_CONSTRAINTS.toBuilder().build()); + List columnsPk = Arrays.asList("col1", "col2", "col3"); + PrimaryKey primaryKey = PrimaryKey.newBuilder().setColumns(columnsPk).build(); + TableId referencedTable = TableId.of("project1", "dataset1", "table1"); + TableId referencedTable2 = TableId.of("project2", "dataset2", "table2"); + ArrayList columnReferences = new ArrayList<>(); + columnReferences.add( + ColumnReference.newBuilder() + .setReferencingColumn("from") + .setReferencedColumn("to") + .build()); + columnReferences.add( + ColumnReference.newBuilder() + .setReferencingColumn("from2") + .setReferencedColumn("to2") + .build()); + ForeignKey foreignKey1 = + ForeignKey.newBuilder() + .setName("test") + .setReferencedTable(referencedTable) + .setColumnReferences(columnReferences) + .build(); + ForeignKey foreignKey2 = + ForeignKey.newBuilder() + .setName("test") + .setReferencedTable(referencedTable2) + .setColumnReferences(columnReferences) + .build(); + + TableConstraints tableConstraints = + TABLE_CONSTRAINTS + .toBuilder() + .setForeignKeys(Arrays.asList(foreignKey1, foreignKey2)) + .setPrimaryKey(primaryKey) + .build(); + assertEquals(Arrays.asList(foreignKey1, foreignKey2), tableConstraints.getForeignKeys()); + assertEquals(primaryKey, tableConstraints.getPrimaryKey()); + } + + @Test + public void testBuilder() { + assertEquals(Collections.singletonList(FOREIGN_KEY), TABLE_CONSTRAINTS.getForeignKeys()); + assertEquals(PRIMARY_KEY, TABLE_CONSTRAINTS.getPrimaryKey()); + TableConstraints tableConstraints = + TABLE_CONSTRAINTS + .newBuilder() + .setForeignKeys(Collections.singletonList(FOREIGN_KEY)) + .setPrimaryKey(PRIMARY_KEY) + .build(); + assertEquals(TABLE_CONSTRAINTS, tableConstraints); + } + + @Test + public void testToAndFromPb() { + TableConstraints tableConstraints = TABLE_CONSTRAINTS.toBuilder().build(); + assertTrue(TableConstraints.fromPb(tableConstraints.toPb()) instanceof TableConstraints); + compareTableConstraintsDefinition( + tableConstraints, TableConstraints.fromPb(tableConstraints.toPb())); + } + + private void compareTableConstraintsDefinition( + TableConstraints expected, TableConstraints value) { + assertEquals(expected.getForeignKeys(), value.getForeignKeys()); + assertEquals(expected.getPrimaryKey(), value.getPrimaryKey()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index c9edbf585aa2..1bb395e27ac1 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -57,6 +57,7 @@ import com.google.cloud.bigquery.BigQuerySQLException; import com.google.cloud.bigquery.CloneDefinition; import com.google.cloud.bigquery.Clustering; +import com.google.cloud.bigquery.ColumnReference; import com.google.cloud.bigquery.Connection; import com.google.cloud.bigquery.ConnectionProperty; import com.google.cloud.bigquery.ConnectionSettings; @@ -74,6 +75,7 @@ import com.google.cloud.bigquery.FieldValue; import com.google.cloud.bigquery.FieldValue.Attribute; import com.google.cloud.bigquery.FieldValueList; +import com.google.cloud.bigquery.ForeignKey; import com.google.cloud.bigquery.FormatOptions; import com.google.cloud.bigquery.HivePartitioningOptions; import com.google.cloud.bigquery.InsertAllRequest; @@ -97,6 +99,7 @@ import com.google.cloud.bigquery.Parameter; import com.google.cloud.bigquery.ParquetOptions; import com.google.cloud.bigquery.PolicyTags; +import com.google.cloud.bigquery.PrimaryKey; import com.google.cloud.bigquery.QueryJobConfiguration; import com.google.cloud.bigquery.QueryParameterValue; import com.google.cloud.bigquery.RangePartitioning; @@ -112,6 +115,7 @@ import com.google.cloud.bigquery.StandardSQLTypeName; import com.google.cloud.bigquery.StandardTableDefinition; import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableConstraints; import com.google.cloud.bigquery.TableDataWriteChannel; import com.google.cloud.bigquery.TableDefinition; import com.google.cloud.bigquery.TableId; @@ -157,6 +161,7 @@ import java.time.LocalTime; import java.time.Period; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -744,6 +749,16 @@ public class ITBigQueryTest { .build(); private static final Schema SESSION_TABLE_SCHEMA = Schema.of(ID_SCHEMA, FIRST_NAME_SCHEMA, LAST_NAME_SCHEMA, EMAIL_SCHEMA, PROFESSION_SCHEMA); + + private static final Schema CONSTRAINTS_TABLE_SCHEMA = + Schema.of( + Field.newBuilder("ID", LegacySQLTypeName.STRING).setMode(Mode.REQUIRED).build(), + Field.newBuilder("FirstName", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("LastName", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); private static final Path csvPath = FileSystems.getDefault().getPath("src/test/resources", "sessionTest.csv").toAbsolutePath(); @@ -5711,4 +5726,206 @@ public void testHivePartitioningOptionsFieldsFieldExistence() throws Interrupted assertTrue(table.delete()); assertTrue(storage.delete(blobInfo.getBlobId())); } + + @Test + public void testPrimaryKey() { + String tableName = "test_primary_key"; + TableId tableId = TableId.of(DATASET, tableName); + PrimaryKey primaryKey = PrimaryKey.newBuilder().setColumns(Arrays.asList("ID")).build(); + TableConstraints tableConstraintsPk = + TableConstraints.newBuilder().setPrimaryKey(primaryKey).build(); + + try { + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(CONSTRAINTS_TABLE_SCHEMA) + .setTableConstraints(tableConstraintsPk) + .build(); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertEquals( + tableConstraintsPk, + remoteTable.getDefinition().getTableConstraints()); + } finally { + bigquery.delete(tableId); + } + } + + @Test + public void testPrimaryKeyUpdate() { + String tableName = "test_primary_key_update"; + TableId tableId = TableId.of(DATASET, tableName); + PrimaryKey primaryKey = + PrimaryKey.newBuilder().setColumns(Arrays.asList("FirstName", "LastName")).build(); + TableConstraints tableConstraintsPk = + TableConstraints.newBuilder().setPrimaryKey(primaryKey).build(); + + try { + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder().setSchema(CONSTRAINTS_TABLE_SCHEMA).build(); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertNull(remoteTable.getDefinition().getTableConstraints()); + + Table updatedTable = + remoteTable.toBuilder().setTableConstraints(tableConstraintsPk).build().update(); + assertNotNull(updatedTable); + Table remoteUpdatedTable = bigquery.getTable(DATASET, tableName); + assertEquals( + tableConstraintsPk, + remoteUpdatedTable.getDefinition().getTableConstraints()); + } finally { + bigquery.delete(tableId); + } + } + + @Test + public void testForeignKeys() { + String tableNamePk = "test_foreign_key"; + String tableNameFk = "test_foreign_key2"; + // TableIds referenced by foreign keys need project id to be specified + TableId tableIdPk = TableId.of(PROJECT_ID, DATASET, tableNamePk); + TableId tableIdFk = TableId.of(DATASET, tableNameFk); + ColumnReference columnReference = + ColumnReference.newBuilder().setReferencingColumn("ID").setReferencedColumn("ID").build(); + + PrimaryKey primaryKey = + PrimaryKey.newBuilder().setColumns(Collections.singletonList("ID")).build(); + TableConstraints tableConstraintsPk = + TableConstraints.newBuilder().setPrimaryKey(primaryKey).build(); + + ForeignKey foreignKey = + ForeignKey.newBuilder() + .setName("foreign_key") + .setReferencedTable(tableIdPk) + .setColumnReferences(Collections.singletonList(columnReference)) + .build(); + TableConstraints tableConstraintsFk = + TableConstraints.newBuilder().setForeignKeys(Collections.singletonList(foreignKey)).build(); + + try { + StandardTableDefinition tableDefinitionPk = + StandardTableDefinition.newBuilder() + .setSchema(CONSTRAINTS_TABLE_SCHEMA) + .setTableConstraints(tableConstraintsPk) + .build(); + Table createdTablePk = bigquery.create(TableInfo.of(tableIdPk, tableDefinitionPk)); + assertNotNull(createdTablePk); + + StandardTableDefinition tableDefinitionFk = + StandardTableDefinition.newBuilder() + .setSchema(CONSTRAINTS_TABLE_SCHEMA) + .setTableConstraints(tableConstraintsFk) + .build(); + Table createdTableFk = bigquery.create(TableInfo.of(tableIdFk, tableDefinitionFk)); + assertNotNull(createdTableFk); + Table remoteTable = bigquery.getTable(DATASET, tableNameFk); + assertEquals( + tableConstraintsFk, + remoteTable.getDefinition().getTableConstraints()); + } finally { + bigquery.delete(tableIdPk); + bigquery.delete(tableIdFk); + } + } + + @Test + public void testForeignKeysUpdate() { + String tableNameFk = "test_foreign_key"; + String tableNamePk1 = "test_foreign_key2"; + String tableNamePk2 = "test_foreign_key3"; + TableId tableIdFk = TableId.of(DATASET, tableNameFk); + // TableIds referenced by foreign keys need project id to be specified + TableId tableIdPk1 = TableId.of(PROJECT_ID, DATASET, tableNamePk1); + TableId tableIdPk2 = TableId.of(PROJECT_ID, DATASET, tableNamePk2); + + ArrayList foreignKeys = new ArrayList<>(); + + // set up ID in tableFk as a foreign key to tablePk1 + ColumnReference columnReferencePk1 = + ColumnReference.newBuilder().setReferencingColumn("ID").setReferencedColumn("ID").build(); + PrimaryKey primaryKey1 = + PrimaryKey.newBuilder().setColumns(Collections.singletonList("ID")).build(); + TableConstraints tableConstraintsPk1 = + TableConstraints.newBuilder().setPrimaryKey(primaryKey1).build(); + + ForeignKey foreignKey1 = + ForeignKey.newBuilder() + .setName("foreign_key1") + .setReferencedTable(tableIdPk1) + .setColumnReferences(Collections.singletonList(columnReferencePk1)) + .build(); + foreignKeys.add(foreignKey1); + + // set up First and last names in tableFk as foreign keys to TablePk2 + ArrayList columnReferencesPk2 = new ArrayList<>(); + columnReferencesPk2.add( + ColumnReference.newBuilder() + .setReferencingColumn("FirstName") + .setReferencedColumn("FirstName") + .build()); + columnReferencesPk2.add( + ColumnReference.newBuilder() + .setReferencingColumn("LastName") + .setReferencedColumn("LastName") + .build()); + + ArrayList primaryKey2Columns = new ArrayList<>(); + primaryKey2Columns.add("FirstName"); + primaryKey2Columns.add("LastName"); + + PrimaryKey primaryKey2 = PrimaryKey.newBuilder().setColumns(primaryKey2Columns).build(); + TableConstraints tableConstraintsPk2 = + TableConstraints.newBuilder().setPrimaryKey(primaryKey2).build(); + ForeignKey foreignKey2 = + ForeignKey.newBuilder() + .setName("foreign_key2") + .setReferencedTable(tableIdPk2) + .setColumnReferences(columnReferencesPk2) + .build(); + foreignKeys.add(foreignKey2); + TableConstraints tableConstraintsFk = + TableConstraints.newBuilder().setForeignKeys(foreignKeys).build(); + + try { + StandardTableDefinition tableDefinitionFk = + StandardTableDefinition.newBuilder().setSchema(CONSTRAINTS_TABLE_SCHEMA).build(); + Table createdTableFk = bigquery.create(TableInfo.of(tableIdFk, tableDefinitionFk)); + assertNotNull(createdTableFk); + + StandardTableDefinition tableDefinitionPk1 = + StandardTableDefinition.newBuilder() + .setSchema(CONSTRAINTS_TABLE_SCHEMA) + .setTableConstraints(tableConstraintsPk1) + .build(); + Table createdTablePk1 = bigquery.create(TableInfo.of(tableIdPk1, tableDefinitionPk1)); + assertNotNull(createdTablePk1); + + StandardTableDefinition tableDefinitionPk2 = + StandardTableDefinition.newBuilder() + .setSchema(CONSTRAINTS_TABLE_SCHEMA) + .setTableConstraints(tableConstraintsPk2) + .build(); + Table createdTablePk2 = bigquery.create(TableInfo.of(tableIdPk2, tableDefinitionPk2)); + assertNotNull(createdTablePk2); + + Table remoteTable = bigquery.getTable(DATASET, tableNameFk); + assertNull(remoteTable.getDefinition().getTableConstraints()); + + Table updatedTable = + remoteTable.toBuilder().setTableConstraints(tableConstraintsFk).build().update(); + + assertNotNull(updatedTable); + Table remoteUpdatedTable = bigquery.getTable(DATASET, tableNameFk); + assertEquals( + tableConstraintsFk, + remoteUpdatedTable.getDefinition().getTableConstraints()); + } finally { + bigquery.delete(tableIdFk); + bigquery.delete(tableIdPk1); + bigquery.delete(tableIdPk2); + } + } } diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeys.java b/samples/snippets/src/main/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeys.java new file mode 100644 index 000000000000..36e32bc216ca --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeys.java @@ -0,0 +1,109 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_tables_with_primary_and_foreign_keys] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.ColumnReference; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.ForeignKey; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.PrimaryKey; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.TableConstraints; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import java.util.Arrays; +import java.util.Collections; + +// Create tables with primary/foreign key columns +public class CreateTablesWithPrimaryAndForeignKeys { + + private static final Schema PK_FK_SCHEMA = + Schema.of( + Field.newBuilder("ID", LegacySQLTypeName.STRING).setMode(Field.Mode.NULLABLE).build(), + Field.newBuilder("FirstName", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("LastName", LegacySQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableNamePk = "PK_TABLE"; + String tableNameFk = "FK_TABLE"; + createTablesWithPrimaryAndForeignKeys(datasetName, tableNamePk, tableNameFk); + } + + public static void createTablesWithPrimaryAndForeignKeys( + String datasetName, String tableNamePk, String tableNameFk) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // TableIds referenced by foreign keys need project id to be set + TableId tableIdPk = + TableId.of(bigquery.getOptions().getProjectId(), datasetName, tableNamePk); + TableId tableIdFk = TableId.of(datasetName, tableNameFk); + + PrimaryKey primaryKey = + PrimaryKey.newBuilder().setColumns(Collections.singletonList("ID")).build(); + TableConstraints tableConstraintsPk = + TableConstraints.newBuilder().setPrimaryKey(primaryKey).build(); + + ColumnReference columnReference = + ColumnReference.newBuilder().setReferencingColumn("ID").setReferencedColumn("ID").build(); + ForeignKey foreignKey = + ForeignKey.newBuilder() + .setName("foreign_key") + .setColumnReferences(Collections.singletonList(columnReference)) + .setReferencedTable(tableIdPk) + .build(); + TableConstraints tableConstraintsFk = + TableConstraints.newBuilder().setForeignKeys(Arrays.asList(foreignKey)).build(); + + // Create a table with a primary key + StandardTableDefinition tableDefinitionPk = + StandardTableDefinition.newBuilder() + .setSchema(PK_FK_SCHEMA) + .setTableConstraints(tableConstraintsPk) + .build(); + TableInfo tableInfoPk = TableInfo.of(tableIdPk, tableDefinitionPk); + bigquery.create(tableInfoPk); + + // Create a table with a foreign key + StandardTableDefinition tableDefinitionFk = + StandardTableDefinition.newBuilder() + .setSchema(PK_FK_SCHEMA) + .setTableConstraints(tableConstraintsFk) + .build(); + TableInfo tableInfoFk = TableInfo.of(tableIdFk, tableDefinitionFk); + bigquery.create(tableInfoFk); + + System.out.println("Tables with primary and foreign keys created successfully."); + } catch (BigQueryException e) { + System.out.println("Tables not created \n" + e.toString()); + } + } +} +// [END bigquery_create_tables_with_primary_and_foreign_keys] diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeysIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeysIT.java new file mode 100644 index 000000000000..00ba8fa44199 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeysIT.java @@ -0,0 +1,82 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateTablesWithPrimaryAndForeignKeysIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableNamePk; + private String tableNameFk; + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar(String varName) { + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("BIGQUERY_DATASET_NAME"); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + tableNamePk = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); + tableNameFk = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableNamePk); + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableNameFk); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testCreateAndQueryRepeatedRecordField() { + CreateTablesWithPrimaryAndForeignKeys.createTablesWithPrimaryAndForeignKeys( + BIGQUERY_DATASET_NAME, tableNamePk, tableNameFk); + assertThat(bout.toString()) + .contains("Tables with primary and foreign keys created successfully."); + } +} From 92077437d759705151f7778207616ecf024371ba Mon Sep 17 00:00:00 2001 From: Farhan Ahmed Date: Mon, 19 Jun 2023 10:56:18 -0400 Subject: [PATCH 2438/3441] feat: Partial Projection of Table Metadata (#2756) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [ ] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) Fixes # ☕️ If you write sample code, please follow the [samples format]( https://togithub.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md). --- .../com/google/cloud/bigquery/BigQuery.java | 19 +++ .../java/com/google/cloud/bigquery/Table.java | 4 +- .../cloud/bigquery/spi/v2/BigQueryRpc.java | 5 +- .../bigquery/spi/v2/HttpBigQueryRpc.java | 8 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 128 ++++++++++++++++++ 5 files changed, 160 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 8f11d03fa078..27127835761c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -121,6 +121,20 @@ public String getSelector() { } } + /** + * Metadata of a BigQuery Table. + * + * @see Table + * Resource + */ + enum TableMetadataView { + BASIC, + FULL, + STORAGE_STATS, + TABLE_METADATA_VIEW_UNSPECIFIED; + } + /** * Fields of a BigQuery Model resource. * @@ -384,6 +398,11 @@ public static TableOption fields(TableField... fields) { public static TableOption autodetectSchema(boolean autodetect) { return new TableOption(BigQueryRpc.Option.AUTODETECT_SCHEMA, autodetect); } + + /** Returns an option to specify the metadata of the table. */ + public static TableOption tableMetadataView(TableMetadataView tableMetadataView) { + return new TableOption(BigQueryRpc.Option.TABLE_METADATA_VIEW, tableMetadataView); + } } /* Class for specifying IAM options. */ diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java index cf1dfb4f7f94..3a58005acc55 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java @@ -49,10 +49,10 @@ public static class Builder extends TableInfo.Builder { private final BigQuery bigquery; private final TableInfo.BuilderImpl infoBuilder; - Builder(BigQuery bigquery, TableId tableId, TableDefinition defintion) { + Builder(BigQuery bigquery, TableId tableId, TableDefinition definition) { this.bigquery = bigquery; this.infoBuilder = new TableInfo.BuilderImpl(); - this.infoBuilder.setTableId(tableId).setDefinition(defintion); + this.infoBuilder.setTableId(tableId).setDefinition(definition); } Builder(Table table) { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index 33480a91b30e..3416409190c2 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -40,7 +40,7 @@ @InternalExtensionOnly public interface BigQueryRpc extends ServiceRpc { - // These options are part of the Google Cloud BigQuery query parameters + // These options are part of the Google Cloud BigQuery query parameters. enum Option { FIELDS("fields"), DELETE_CONTENTS("deleteContents"), @@ -56,7 +56,8 @@ enum Option { START_INDEX("startIndex"), STATE_FILTER("stateFilter"), TIMEOUT("timeoutMs"), - REQUESTED_POLICY_VERSION("requestedPolicyVersion"); + REQUESTED_POLICY_VERSION("requestedPolicyVersion"), + TABLE_METADATA_VIEW("view"); private final String value; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index a63e3cc2ba0b..96a10deb33c5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -294,6 +294,7 @@ public Table getTable( .get(projectId, datasetId, tableId) .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)) + .setView(getTableMetadataOption(options)) .execute(); } catch (IOException ex) { BigQueryException serviceException = translate(ex); @@ -304,6 +305,13 @@ public Table getTable( } } + private String getTableMetadataOption(Map options) { + if (options.containsKey(Option.TABLE_METADATA_VIEW)) { + return options.get(Option.TABLE_METADATA_VIEW).toString(); + } + return "STORAGE_STATS"; + } + @Override public Tuple> listTables( String projectId, String datasetId, Map options) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 1bb395e27ac1..9d68e8710f1c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -49,6 +49,7 @@ import com.google.cloud.bigquery.BigQuery.JobListOption; import com.google.cloud.bigquery.BigQuery.JobOption; import com.google.cloud.bigquery.BigQuery.TableField; +import com.google.cloud.bigquery.BigQuery.TableMetadataView; import com.google.cloud.bigquery.BigQuery.TableOption; import com.google.cloud.bigquery.BigQueryDryRunResult; import com.google.cloud.bigquery.BigQueryError; @@ -1549,6 +1550,133 @@ public void testCreateAndGetTable() { assertTrue(remoteTable.delete()); } + @Test + public void testCreateAndGetTableWithBasicTableMetadataView() { + String tableName = "test_create_and_get_table_with_basic_metadata_view"; + TableId tableId = TableId.of(DATASET, tableName); + TimePartitioning partitioning = TimePartitioning.of(Type.DAY); + Clustering clustering = + Clustering.newBuilder().setFields(ImmutableList.of(STRING_FIELD_SCHEMA.getName())).build(); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setTimePartitioning(partitioning) + .setClustering(clustering) + .build(); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + TableOption tableOption = BigQuery.TableOption.tableMetadataView(TableMetadataView.BASIC); + Table remoteTable = bigquery.getTable(DATASET, tableName, tableOption); + assertNotNull(remoteTable); + assertTrue(remoteTable.getDefinition() instanceof StandardTableDefinition); + assertEquals(createdTable.getTableId(), remoteTable.getTableId()); + assertEquals(TableDefinition.Type.TABLE, remoteTable.getDefinition().getType()); + assertEquals(TABLE_SCHEMA, remoteTable.getDefinition().getSchema()); + // Next four values are considered transient fields that should not be calculated + assertNull(remoteTable.getLastModifiedTime()); + assertNull(remoteTable.getDefinition().getNumBytes()); + assertNull(remoteTable.getDefinition().getNumLongTermBytes()); + assertNull(remoteTable.getDefinition().getNumRows()); + assertTrue(remoteTable.delete()); + } + + @Test + public void testCreateAndGetTableWithFullTableMetadataView() { + String tableName = "test_create_and_get_table_with_full_metadata_view"; + TableId tableId = TableId.of(DATASET, tableName); + TimePartitioning partitioning = TimePartitioning.of(Type.DAY); + Clustering clustering = + Clustering.newBuilder().setFields(ImmutableList.of(STRING_FIELD_SCHEMA.getName())).build(); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setTimePartitioning(partitioning) + .setClustering(clustering) + .build(); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + TableOption tableOption = BigQuery.TableOption.tableMetadataView(TableMetadataView.FULL); + Table remoteTable = bigquery.getTable(DATASET, tableName, tableOption); + assertNotNull(remoteTable); + assertTrue(remoteTable.getDefinition() instanceof StandardTableDefinition); + assertEquals(createdTable.getTableId(), remoteTable.getTableId()); + assertEquals(TableDefinition.Type.TABLE, remoteTable.getDefinition().getType()); + assertEquals(TABLE_SCHEMA, remoteTable.getDefinition().getSchema()); + assertNotNull(remoteTable.getLastModifiedTime()); + assertNotNull(remoteTable.getDefinition().getNumBytes()); + assertNotNull(remoteTable.getDefinition().getNumLongTermBytes()); + assertNotNull(remoteTable.getDefinition().getNumRows()); + assertTrue(remoteTable.delete()); + } + + @Test + public void testCreateAndGetTableWithStorageStatsTableMetadataView() { + String tableName = "test_create_and_get_table_with_storage_stats_metadata_view"; + TableId tableId = TableId.of(DATASET, tableName); + TimePartitioning partitioning = TimePartitioning.of(Type.DAY); + Clustering clustering = + Clustering.newBuilder().setFields(ImmutableList.of(STRING_FIELD_SCHEMA.getName())).build(); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setTimePartitioning(partitioning) + .setClustering(clustering) + .build(); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + TableOption tableOption = + BigQuery.TableOption.tableMetadataView(TableMetadataView.STORAGE_STATS); + Table remoteTable = bigquery.getTable(DATASET, tableName, tableOption); + assertNotNull(remoteTable); + assertTrue(remoteTable.getDefinition() instanceof StandardTableDefinition); + assertEquals(createdTable.getTableId(), remoteTable.getTableId()); + assertEquals(TableDefinition.Type.TABLE, remoteTable.getDefinition().getType()); + assertEquals(TABLE_SCHEMA, remoteTable.getDefinition().getSchema()); + assertNotNull(remoteTable.getLastModifiedTime()); + assertNotNull(remoteTable.getDefinition().getNumBytes()); + assertNotNull(remoteTable.getDefinition().getNumLongTermBytes()); + assertNotNull(remoteTable.getDefinition().getNumRows()); + assertTrue(remoteTable.delete()); + } + + @Test + public void testCreateAndGetTableWithUnspecifiedTableMetadataView() { + String tableName = "test_create_and_get_table_with_unspecified_metadata_view"; + TableId tableId = TableId.of(DATASET, tableName); + TimePartitioning partitioning = TimePartitioning.of(Type.DAY); + Clustering clustering = + Clustering.newBuilder().setFields(ImmutableList.of(STRING_FIELD_SCHEMA.getName())).build(); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setTimePartitioning(partitioning) + .setClustering(clustering) + .build(); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + TableOption tableOption = + BigQuery.TableOption.tableMetadataView(TableMetadataView.TABLE_METADATA_VIEW_UNSPECIFIED); + Table remoteTable = bigquery.getTable(DATASET, tableName, tableOption); + assertNotNull(remoteTable); + assertTrue(remoteTable.getDefinition() instanceof StandardTableDefinition); + assertEquals(createdTable.getTableId(), remoteTable.getTableId()); + assertEquals(TableDefinition.Type.TABLE, remoteTable.getDefinition().getType()); + assertEquals(TABLE_SCHEMA, remoteTable.getDefinition().getSchema()); + assertNotNull(remoteTable.getLastModifiedTime()); + assertNotNull(remoteTable.getDefinition().getNumBytes()); + assertNotNull(remoteTable.getDefinition().getNumLongTermBytes()); + assertNotNull(remoteTable.getDefinition().getNumRows()); + assertTrue(remoteTable.delete()); + } + @Test public void testCreateAndGetTableWithSelectedField() { String tableName = "test_create_and_get_selected_fields_table"; From f629127b5949396420130f99d6a2538e5f7b4ab0 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 19 Jun 2023 17:42:12 +0000 Subject: [PATCH 2439/3441] chore(main): release 2.28.0 (#2757) :robot: I have created a release *beep* *boop* --- ## [2.28.0](https://togithub.com/googleapis/java-bigquery/compare/v2.27.1...v2.28.0) (2023-06-19) ### Features * Add primary key and foreign keys ([#2744](https://togithub.com/googleapis/java-bigquery/issues/2744)) ([afb571c](https://togithub.com/googleapis/java-bigquery/commit/afb571c97edb13f93df9ac140af4516205d27a49)) * Partial Projection of Table Metadata ([#2756](https://togithub.com/googleapis/java-bigquery/issues/2756)) ([9207743](https://togithub.com/googleapis/java-bigquery/commit/92077437d759705151f7778207616ecf024371ba)) * Return JobID with TableResult ([#2689](https://togithub.com/googleapis/java-bigquery/issues/2689)) ([aa38428](https://togithub.com/googleapis/java-bigquery/commit/aa38428ad26b64d2566b33f4b2ca3dcc102c3247)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 9 +++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 80bac768be9c..3cb9164d60b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## [2.28.0](https://github.com/googleapis/java-bigquery/compare/v2.27.1...v2.28.0) (2023-06-19) + + +### Features + +* Add primary key and foreign keys ([#2744](https://github.com/googleapis/java-bigquery/issues/2744)) ([afb571c](https://github.com/googleapis/java-bigquery/commit/afb571c97edb13f93df9ac140af4516205d27a49)) +* Partial Projection of Table Metadata ([#2756](https://github.com/googleapis/java-bigquery/issues/2756)) ([9207743](https://github.com/googleapis/java-bigquery/commit/92077437d759705151f7778207616ecf024371ba)) +* Return JobID with TableResult ([#2689](https://github.com/googleapis/java-bigquery/issues/2689)) ([aa38428](https://github.com/googleapis/java-bigquery/commit/aa38428ad26b64d2566b33f4b2ca3dcc102c3247)) + ## [2.27.1](https://github.com/googleapis/java-bigquery/compare/v2.27.0...v2.27.1) (2023-06-13) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 36158d2258b2..4931d9fcccc7 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.27.2-SNAPSHOT + 2.28.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2a6c2dfd4f05..c97f64bba2aa 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.27.2-SNAPSHOT + 2.28.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.27.2-SNAPSHOT + 2.28.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8fa726a483c8..d9eb8f978215 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.27.2-SNAPSHOT + 2.28.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.27.2-SNAPSHOT + 2.28.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b226b12b2107..e995689f5c6e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.27.2-SNAPSHOT + 2.28.0 diff --git a/versions.txt b/versions.txt index e2ff381f41d3..92533f2bfefb 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.27.1:2.27.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.28.0:2.28.0 \ No newline at end of file From 50bef38068dc9c93919b4f0b1941e0fd3b4defb5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 15:26:15 +0000 Subject: [PATCH 2440/3441] chore(main): release 2.28.1-SNAPSHOT (#2763) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4931d9fcccc7..06b7222a59c3 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.28.0 + 2.28.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c97f64bba2aa..8ec75d746f57 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.28.0 + 2.28.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.28.0 + 2.28.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d9eb8f978215..b46b5ac6d4f3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.28.0 + 2.28.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.28.0 + 2.28.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e995689f5c6e..46fb5e1fa96f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.28.0 + 2.28.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 92533f2bfefb..b6e28e235bcb 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.28.0:2.28.0 \ No newline at end of file +google-cloud-bigquery:2.28.0:2.28.1-SNAPSHOT \ No newline at end of file From f606d0b28ca8f65654413a99ab698f35e3befce1 Mon Sep 17 00:00:00 2001 From: Farhan Ahmed Date: Wed, 21 Jun 2023 11:19:44 -0700 Subject: [PATCH 2441/3441] feat: Increase default Read API timeout to 60s (#2764) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Increase default Read API timeout to 60s * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 +++--- .../java/com/google/cloud/bigquery/BigQueryOptions.java | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 63bd09cfeed8..a023ae3cd60d 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.27.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.28.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.27.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.28.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.27.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.28.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index 5687d789897b..2e22ba922493 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -30,6 +30,7 @@ public class BigQueryOptions extends ServiceOptions { private static final String API_SHORT_NAME = "BigQuery"; + private static final int DEFAULT_READ_API_TIME_OUT = 60000; private static final String BIGQUERY_SCOPE = "https://www.googleapis.com/auth/bigquery"; private static final Set SCOPES = ImmutableSet.of(BIGQUERY_SCOPE); private static final long serialVersionUID = -2437598817433266049L; @@ -113,7 +114,7 @@ public TransportOptions getDefaultTransportOptions() { } public static HttpTransportOptions getDefaultHttpTransportOptions() { - return HttpTransportOptions.newBuilder().build(); + return HttpTransportOptions.newBuilder().setReadTimeout(DEFAULT_READ_API_TIME_OUT).build(); } @Override From 7537e0f31d8f4696559ef09c7bd284bf78217280 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 22 Jun 2023 20:34:15 +0200 Subject: [PATCH 2442/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.12.0 (#2771) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/sdk-platform-java) | `3.11.0` -> `3.12.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.12.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.12.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.12.0/compatibility-slim/3.11.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-shared-dependencies/3.12.0/confidence-slim/3.11.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b46b5ac6d4f3..e0235ad4b05f 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230520-2.0.0 - 3.11.0 + 3.12.0 12.0.0 From 792fb27e8354de9e0049411ecd56ca2889e5f815 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 22 Jun 2023 20:34:20 +0200 Subject: [PATCH 2443/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.23.0 (#2769) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.22.4` -> `2.23.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.23.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.23.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.23.0/compatibility-slim/2.22.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-storage/2.23.0/confidence-slim/2.22.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-storage ### [`v2.23.0`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#​2230-httpsgithubcomgoogleapisjava-storagecomparev2224v2230-2023-06-21) [Compare Source](https://togithub.com/googleapis/java-storage/compare/v2.22.4...v2.23.0) ##### Features - Add new dedup utility method to Option classes ([#​2063](https://togithub.com/googleapis/java-storage/issues/2063)) ([2ad196c](https://togithub.com/googleapis/java-storage/commit/2ad196c063e67c7efdac344792b67de3479d789d)) ##### Dependencies - Update dependencies io.grpc:\* to v1.56.0 ([#​2072](https://togithub.com/googleapis/java-storage/issues/2072)) ([e10bde2](https://togithub.com/googleapis/java-storage/commit/e10bde26416bcf17401516e43949e12246f4831c)) - Update dependency com.google.apis:google-api-services-storage to v1-rev20230617-2.0.0 ([#​2077](https://togithub.com/googleapis/java-storage/issues/2077)) ([9f618cd](https://togithub.com/googleapis/java-storage/commit/9f618cddbeb471f7bd0f2332c70e501afbaccc36)) - Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.23 ([#​2074](https://togithub.com/googleapis/java-storage/issues/2074)) ([427f330](https://togithub.com/googleapis/java-storage/commit/427f330793a20b0c3da4cbe5e85984a0df508c79))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e0235ad4b05f..cfe1662b2d8a 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.22.4 + 2.23.0 test From dc5b58fa2ec3ff71dfb36e8d6f3000b13707cc2f Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 22 Jun 2023 18:34:25 +0000 Subject: [PATCH 2444/3441] chore: Update `dependabot.yml` template (#1813) (#2758) * chore: Update `dependabot.yml` template not to touch pip dependencies Source-Link: https://togithub.com/googleapis/synthtool/commit/f961eb0fe51109238128055897ccba1b70dbd804 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:af2eda87a54601ae7b7b2be5055c17b43ac98a7805b586772db314de8a7d4a1d --- .github/.OwlBot.lock.yaml | 3 ++- .github/dependabot.yml | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index aadf54f6438e..73568a1e998c 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:ad9cabee4c022f1aab04a71332369e0c23841062124818a4490f73337f790337 + digest: sha256:af2eda87a54601ae7b7b2be5055c17b43ac98a7805b586772db314de8a7d4a1d +# created: 2023-06-16T02:10:09.149325782Z diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c8f413b0da30..fde1ced49fb9 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,10 +5,13 @@ updates: schedule: interval: "daily" # Disable version updates for Maven dependencies - open-pull-requests-limit: 0 + # we use renovate-bot as well as shared-dependencies BOM to update maven dependencies. + ignore: "*" - package-ecosystem: "pip" directory: "/" schedule: interval: "daily" # Disable version updates for pip dependencies - open-pull-requests-limit: 0 \ No newline at end of file + # If a security vulnerability comes in, we will be notified about + # it via template in the synthtool repository. + ignore: "*" From 27ba48a0cab331f2d233ba96fed710c11d31dc53 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 22 Jun 2023 20:36:17 +0200 Subject: [PATCH 2445/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.23 (#2759) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.graalvm.buildtools:junit-platform-native](https://togithub.com/graalvm/native-build-tools) | `0.9.22` -> `0.9.23` | [![age](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.23/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.23/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.23/compatibility-slim/0.9.22)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:junit-platform-native/0.9.23/confidence-slim/0.9.22)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    graalvm/native-build-tools ### [`v0.9.23`](https://togithub.com/graalvm/native-build-tools/releases/tag/0.9.23) [Compare Source](https://togithub.com/graalvm/native-build-tools/compare/0.9.22...0.9.23) #### What's Changed - Fix "collect reachability metadata" with config cache by [@​melix](https://togithub.com/melix) in [https://togithub.com/graalvm/native-build-tools/pull/438](https://togithub.com/graalvm/native-build-tools/pull/438) - Remove use of GFileUtils by [@​melix](https://togithub.com/melix) in [https://togithub.com/graalvm/native-build-tools/pull/437](https://togithub.com/graalvm/native-build-tools/pull/437) - Display the GraalVM logo on the generated NBT docs by [@​gradinac](https://togithub.com/gradinac) in [https://togithub.com/graalvm/native-build-tools/pull/447](https://togithub.com/graalvm/native-build-tools/pull/447) **Full Changelog**: https://togithub.com/graalvm/native-build-tools/compare/0.9.22...0.9.23
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 2a02c3c6137f..d6fd2e7aebda 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.22 + 0.9.23 test From d8e2ad1b4fe0f9fd0addde5cc104249b5784181f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 22 Jun 2023 20:36:22 +0200 Subject: [PATCH 2446/3441] test(deps): update dependency com.google.truth:truth to v1.1.5 (#2762) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.truth:truth](https://togithub.com/google/truth) | `1.1.4` -> `1.1.5` | [![age](https://badges.renovateapi.com/packages/maven/com.google.truth:truth/1.1.5/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.truth:truth/1.1.5/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.truth:truth/1.1.5/compatibility-slim/1.1.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.truth:truth/1.1.5/confidence-slim/1.1.4)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    google/truth ### [`v1.1.5`](https://togithub.com/google/truth/releases/tag/v1.1.5): 1.1.5 - Updated Truth to depend on [Guava 32.0.1](https://togithub.com/google/guava/releases/tag/v32.0.1). The previous Guava version, 32.0.0, contained a bug under Windows, which did not affect Truth's functionality but [could cause problems](https://togithub.com/google/truth/issues/1137) for people who use Guava's I/O functionality in their codebase. Affected users can already manually update their Guava dependency to 32.0.1, but if they don't depend directly on Guava, they may find it easier to upgrade to this new Truth release instead. - Fixed `IterableOfProtosSubject` to produce a proper failure message instead of NPE when the actual value is `null`.
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index cfe1662b2d8a..d25dcc2dab16 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.truth truth - 1.1.4 + 1.1.5 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f608c7f39318..80cd7172b165 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -81,7 +81,7 @@ com.google.truth truth - 1.1.4 + 1.1.5 test diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index d6fd2e7aebda..2030dea291bf 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -62,7 +62,7 @@ com.google.truth truth - 1.1.4 + 1.1.5 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 46fb5e1fa96f..2aafff827225 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -79,7 +79,7 @@ com.google.truth truth - 1.1.4 + 1.1.5 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 974421e08ef8..14fae2f6c398 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -97,7 +97,7 @@ com.google.truth truth - 1.1.4 + 1.1.5 test From 967386d45d1b026b937bdbecd3d5dbff7a03c9bd Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 22 Jun 2023 20:38:16 +0200 Subject: [PATCH 2447/3441] build(deps): update dependency org.apache.maven.plugins:maven-shade-plugin to v3.5.0 (#2761) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.maven.plugins:maven-shade-plugin](https://maven.apache.org/plugins/) | `3.4.1` -> `3.5.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-shade-plugin/3.5.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-shade-plugin/3.5.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-shade-plugin/3.5.0/compatibility-slim/3.4.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-shade-plugin/3.5.0/confidence-slim/3.4.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 06b7222a59c3..c44818176ecb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -42,7 +42,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.4.1 + 3.5.0 package From 8cddf8fd286f51cd75aba0da6a52cbc12cab7e2a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 22 Jun 2023 20:40:17 +0200 Subject: [PATCH 2448/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.23 (#2760) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.graalvm.buildtools:native-maven-plugin](https://togithub.com/graalvm/native-build-tools) | `0.9.22` -> `0.9.23` | [![age](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.23/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.23/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.23/compatibility-slim/0.9.22)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.graalvm.buildtools:native-maven-plugin/0.9.23/confidence-slim/0.9.22)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    graalvm/native-build-tools ### [`v0.9.23`](https://togithub.com/graalvm/native-build-tools/releases/tag/0.9.23) [Compare Source](https://togithub.com/graalvm/native-build-tools/compare/0.9.22...0.9.23) #### What's Changed - Fix "collect reachability metadata" with config cache by [@​melix](https://togithub.com/melix) in [https://togithub.com/graalvm/native-build-tools/pull/438](https://togithub.com/graalvm/native-build-tools/pull/438) - Remove use of GFileUtils by [@​melix](https://togithub.com/melix) in [https://togithub.com/graalvm/native-build-tools/pull/437](https://togithub.com/graalvm/native-build-tools/pull/437) - Display the GraalVM logo on the generated NBT docs by [@​gradinac](https://togithub.com/gradinac) in [https://togithub.com/graalvm/native-build-tools/pull/447](https://togithub.com/graalvm/native-build-tools/pull/447) **Full Changelog**: https://togithub.com/graalvm/native-build-tools/compare/0.9.22...0.9.23
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 2030dea291bf..c23c4bd42be1 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.22 + 0.9.23 true com.example.bigquery.NativeImageBigquerySample From 8c6b9e5a51602fa9b9dfea75c9920f900611921b Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 22 Jun 2023 20:46:14 +0000 Subject: [PATCH 2449/3441] chore: Java 8 unit test to build code in Java 17 and run tests on Java 8 (#1800) (#2770) * Our Java projects are configured to produce Java 8-compatible bytecode via https://togithub.com/googleapis/java-shared-config/blob/main/pom.xml#L848. This unit test change ensures this config is applied correctly. * This change also switches the JDK distribution of GitHub Actions to temurin from zulu. * For the repositories that mark "dependencies (8)" and "dependencies (11)" as required, they should point to only "dependencies (17)" via `.github/sync-repo-settings.yaml` and repo's Settings tab. Source-Link: https://togithub.com/googleapis/synthtool/commit/cbe010084fc59dc15730c86e9b8e03ddac1de050 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:32851debfefed2b66038e0141f1b5c2103bb59ba80b7475adbc10ef7abab3de7 Closes https://togithub.com/googleapis/java-bigquery/pull/2768 --- .github/.OwlBot.lock.yaml | 4 ++-- .github/dependabot.yml | 6 ++++-- .github/sync-repo-settings.yaml | 3 +-- .github/workflows/ci.yaml | 26 ++++++++++++++++++++++++-- .kokoro/build.sh | 3 ++- google-cloud-bigquery/pom.xml | 7 +++++++ 6 files changed, 40 insertions(+), 9 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 73568a1e998c..47a70ea40cf3 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:af2eda87a54601ae7b7b2be5055c17b43ac98a7805b586772db314de8a7d4a1d -# created: 2023-06-16T02:10:09.149325782Z + digest: sha256:32851debfefed2b66038e0141f1b5c2103bb59ba80b7475adbc10ef7abab3de7 +# created: 2023-06-22T15:06:52.039318836Z diff --git a/.github/dependabot.yml b/.github/dependabot.yml index fde1ced49fb9..203f9eaccf13 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,7 +6,8 @@ updates: interval: "daily" # Disable version updates for Maven dependencies # we use renovate-bot as well as shared-dependencies BOM to update maven dependencies. - ignore: "*" + ignore: + - dependency-name: "*" - package-ecosystem: "pip" directory: "/" schedule: @@ -14,4 +15,5 @@ updates: # Disable version updates for pip dependencies # If a security vulnerability comes in, we will be notified about # it via template in the synthtool repository. - ignore: "*" + ignore: + - dependency-name: "*" diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 223b72e8a6a7..a37ac497e1af 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -8,8 +8,7 @@ branchProtectionRules: requiresCodeOwnerReviews: true requiresStrictStatusChecks: false requiredStatusCheckContexts: - - dependencies (8) - - dependencies (11) + - dependencies (17) - lint - clirr - units (8) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e3bb26e37719..65436cde4190 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -25,7 +25,7 @@ jobs: strategy: fail-fast: false matrix: - java: [8, 11, 17] + java: [11, 17] steps: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 @@ -36,6 +36,28 @@ jobs: - run: .kokoro/build.sh env: JOB_TYPE: test + units-java8: + # Building using Java 17 and run the tests with Java 8 runtime + name: "units (8)" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + java-version: 8 + distribution: zulu + - name: "Set jvm system property environment variable for surefire plugin (unit tests)" + # Maven surefire plugin (unit tests) allows us to specify JVM to run the tests. + # https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#jvm + run: echo "SUREFIRE_JVM_OPT=-Djvm=${JAVA_HOME}/bin/java" >> $GITHUB_ENV + shell: bash + - uses: actions/setup-java@v3 + with: + java-version: 17 + distribution: zulu + - run: .kokoro/build.sh + env: + JOB_TYPE: test windows: runs-on: windows-latest steps: @@ -54,7 +76,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [8, 11, 17] + java: [17] steps: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 0c26eec01af3..1b59f5bc3f8f 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -47,7 +47,8 @@ set +e case ${JOB_TYPE} in test) - mvn test -B -ntp -Dclirr.skip=true -Denforcer.skip=true + echo "SUREFIRE_JVM_OPT: ${SUREFIRE_JVM_OPT}" + mvn test -B -ntp -Dclirr.skip=true -Denforcer.skip=true ${SUREFIRE_JVM_OPT} RETURN_CODE=$? ;; lint) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8ec75d746f57..cd67ff7c8672 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -215,6 +215,13 @@ java17 [17,) + + + !jvm + From 35f7924fb12c6a5d32f90b704921108a50c48037 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 23 Jun 2023 15:56:09 +0200 Subject: [PATCH 2450/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.39.1 (#2772) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d25dcc2dab16..c25c88143f3e 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.38.0 + 2.39.1 pom import From 08061f14ccfd05b28800c482179804604cd42088 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 23 Jun 2023 11:12:28 -0400 Subject: [PATCH 2451/3441] chore(main): release 2.29.0 (#2767) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 14 ++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 21 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cb9164d60b0..7ac665809983 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [2.29.0](https://github.com/googleapis/java-bigquery/compare/v2.28.0...v2.29.0) (2023-06-23) + + +### Features + +* Increase default Read API timeout to 60s ([#2764](https://github.com/googleapis/java-bigquery/issues/2764)) ([f606d0b](https://github.com/googleapis/java-bigquery/commit/f606d0b28ca8f65654413a99ab698f35e3befce1)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.12.0 ([#2771](https://github.com/googleapis/java-bigquery/issues/2771)) ([7537e0f](https://github.com/googleapis/java-bigquery/commit/7537e0f31d8f4696559ef09c7bd284bf78217280)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.23 ([#2759](https://github.com/googleapis/java-bigquery/issues/2759)) ([27ba48a](https://github.com/googleapis/java-bigquery/commit/27ba48a0cab331f2d233ba96fed710c11d31dc53)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.23 ([#2760](https://github.com/googleapis/java-bigquery/issues/2760)) ([8cddf8f](https://github.com/googleapis/java-bigquery/commit/8cddf8fd286f51cd75aba0da6a52cbc12cab7e2a)) + ## [2.28.0](https://github.com/googleapis/java-bigquery/compare/v2.27.1...v2.28.0) (2023-06-19) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c44818176ecb..aa215e50c843 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.28.1-SNAPSHOT + 2.29.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index cd67ff7c8672..05d61111038e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.28.1-SNAPSHOT + 2.29.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.28.1-SNAPSHOT + 2.29.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c25c88143f3e..3350f0f129a4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.28.1-SNAPSHOT + 2.29.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.28.1-SNAPSHOT + 2.29.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2aafff827225..8157326fa206 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.28.1-SNAPSHOT + 2.29.0 diff --git a/versions.txt b/versions.txt index b6e28e235bcb..4a877f47dee4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.28.0:2.28.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.29.0:2.29.0 \ No newline at end of file From e3003f48df9cca2bd549d893ffef3bb198a3b2aa Mon Sep 17 00:00:00 2001 From: Sumeet Gajjar Date: Fri, 23 Jun 2023 10:24:13 -0700 Subject: [PATCH 2452/3441] feat: Add missing storage related fields to Table, TableInfo and StandardTableDefinition (#2673) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [x] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [x] Ensure the tests and linter pass - [x] Code coverage does not decrease (if any source code was changed) - [x] Appropriate docs were updated (if necessary) Fixes #2672 ☕️ --- .../clirr-ignored-differences.xml | 35 ++++ .../bigquery/StandardTableDefinition.java | 98 +++++++++++ .../java/com/google/cloud/bigquery/Table.java | 42 +++++ .../com/google/cloud/bigquery/TableInfo.java | 161 ++++++++++++++++++ .../bigquery/StandardTableDefinitionTest.java | 35 ++++ .../google/cloud/bigquery/TableInfoTest.java | 35 ++++ .../cloud/bigquery/it/ITBigQueryTest.java | 20 +++ 7 files changed, 426 insertions(+) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 784a3c9626e3..500ce3f58dff 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -54,6 +54,41 @@ com/google/cloud/bigquery/StandardTableDefinition* *TableConstraints(*) + + 7013 + com/google/cloud/bigquery/StandardTableDefinition* + *NumActiveLogicalBytes(*) + + + 7013 + com/google/cloud/bigquery/StandardTableDefinition* + *NumActivePhysicalBytes(*) + + + 7013 + com/google/cloud/bigquery/StandardTableDefinition* + *NumLongTermLogicalBytes(*) + + + 7013 + com/google/cloud/bigquery/StandardTableDefinition* + *NumLongTermPhysicalBytes(*) + + + 7013 + com/google/cloud/bigquery/StandardTableDefinition* + *NumTimeTravelPhysicalBytes(*) + + + 7013 + com/google/cloud/bigquery/StandardTableDefinition* + *NumTotalLogicalBytes(*) + + + 7013 + com/google/cloud/bigquery/StandardTableDefinition* + *NumTotalPhysicalBytes(*) + 7013 com/google/cloud/bigquery/TableInfo* diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index 8242147df349..f4459d734a56 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -132,6 +132,20 @@ public abstract static class Builder public abstract Builder setNumLongTermBytes(Long numLongTermBytes); + public abstract Builder setNumTimeTravelPhysicalBytes(Long numTimeTravelPhysicalBytes); + + public abstract Builder setNumTotalLogicalBytes(Long numTotalLogicalBytes); + + public abstract Builder setNumActiveLogicalBytes(Long numActiveLogicalBytes); + + public abstract Builder setNumLongTermLogicalBytes(Long numLongTermLogicalBytes); + + public abstract Builder setNumTotalPhysicalBytes(Long numTotalPhysicalBytes); + + public abstract Builder setNumActivePhysicalBytes(Long numActivePhysicalBytes); + + public abstract Builder setNumLongTermPhysicalBytes(Long numLongTermPhysicalBytes); + public abstract Builder setNumRows(Long numRows); public abstract Builder setLocation(String location); @@ -180,6 +194,62 @@ public abstract static class Builder @Nullable public abstract Long getNumLongTermBytes(); + /** + * Returns the number of time travel physical bytes. + * + * @see Storage Pricing + */ + @Nullable + public abstract Long getNumTimeTravelPhysicalBytes(); + + /** + * Returns the number of total logical bytes. + * + * @see Storage Pricing + */ + @Nullable + public abstract Long getNumTotalLogicalBytes(); + + /** + * Returns the number of active logical bytes. + * + * @see Storage Pricing + */ + @Nullable + public abstract Long getNumActiveLogicalBytes(); + + /** + * Returns the number of long term logical bytes. + * + * @see Storage Pricing + */ + @Nullable + public abstract Long getNumLongTermLogicalBytes(); + + /** + * Returns the number of total physical bytes. + * + * @see Storage Pricing + */ + @Nullable + public abstract Long getNumTotalPhysicalBytes(); + + /** + * Returns the number of active physical bytes. + * + * @see Storage Pricing + */ + @Nullable + public abstract Long getNumActivePhysicalBytes(); + + /** + * Returns the number of long term physical bytes. + * + * @see Storage Pricing + */ + @Nullable + public abstract Long getNumLongTermPhysicalBytes(); + /** Returns the number of rows in this table, excluding any data in the streaming buffer. */ @Nullable public abstract Long getNumRows(); @@ -255,6 +325,13 @@ Table toPb() { } tablePb.setNumBytes(getNumBytes()); tablePb.setNumLongTermBytes(getNumLongTermBytes()); + tablePb.setNumTimeTravelPhysicalBytes(getNumTimeTravelPhysicalBytes()); + tablePb.setNumTotalLogicalBytes(getNumTotalLogicalBytes()); + tablePb.setNumActiveLogicalBytes(getNumActiveLogicalBytes()); + tablePb.setNumLongTermLogicalBytes(getNumLongTermLogicalBytes()); + tablePb.setNumTotalPhysicalBytes(getNumTotalPhysicalBytes()); + tablePb.setNumActivePhysicalBytes(getNumActivePhysicalBytes()); + tablePb.setNumLongTermPhysicalBytes(getNumLongTermPhysicalBytes()); tablePb.setLocation(getLocation()); if (getStreamingBuffer() != null) { tablePb.setStreamingBuffer(getStreamingBuffer().toPb()); @@ -308,6 +385,27 @@ static StandardTableDefinition fromPb(Table tablePb) { if (tablePb.getNumLongTermBytes() != null) { builder.setNumLongTermBytes(tablePb.getNumLongTermBytes()); } + if (tablePb.getNumTimeTravelPhysicalBytes() != null) { + builder.setNumTimeTravelPhysicalBytes(tablePb.getNumTimeTravelPhysicalBytes()); + } + if (tablePb.getNumTotalLogicalBytes() != null) { + builder.setNumTotalLogicalBytes(tablePb.getNumTotalLogicalBytes()); + } + if (tablePb.getNumActiveLogicalBytes() != null) { + builder.setNumActiveLogicalBytes(tablePb.getNumActiveLogicalBytes()); + } + if (tablePb.getNumLongTermLogicalBytes() != null) { + builder.setNumLongTermLogicalBytes(tablePb.getNumLongTermLogicalBytes()); + } + if (tablePb.getNumTotalPhysicalBytes() != null) { + builder.setNumTotalPhysicalBytes(tablePb.getNumTotalPhysicalBytes()); + } + if (tablePb.getNumActivePhysicalBytes() != null) { + builder.setNumActivePhysicalBytes(tablePb.getNumActivePhysicalBytes()); + } + if (tablePb.getNumLongTermPhysicalBytes() != null) { + builder.setNumLongTermPhysicalBytes(tablePb.getNumLongTermPhysicalBytes()); + } if (tablePb.getTableConstraints() != null) { builder.setTableConstraints(TableConstraints.fromPb(tablePb.getTableConstraints())); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java index 3a58005acc55..fdf0bad668b2 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java @@ -114,6 +114,48 @@ Builder setNumLongTermBytes(Long numLongTermBytes) { return this; } + @Override + Builder setNumTimeTravelPhysicalBytes(Long numTimeTravelPhysicalBytes) { + infoBuilder.setNumTimeTravelPhysicalBytes(numTimeTravelPhysicalBytes); + return this; + } + + @Override + Builder setNumTotalLogicalBytes(Long numTotalLogicalBytes) { + infoBuilder.setNumTotalLogicalBytes(numTotalLogicalBytes); + return this; + } + + @Override + Builder setNumActiveLogicalBytes(Long numActiveLogicalBytes) { + infoBuilder.setNumActiveLogicalBytes(numActiveLogicalBytes); + return this; + } + + @Override + Builder setNumLongTermLogicalBytes(Long numLongTermLogicalBytes) { + infoBuilder.setNumLongTermLogicalBytes(numLongTermLogicalBytes); + return this; + } + + @Override + Builder setNumTotalPhysicalBytes(Long numTotalPhysicalBytes) { + infoBuilder.setNumTotalPhysicalBytes(numTotalPhysicalBytes); + return this; + } + + @Override + Builder setNumActivePhysicalBytes(Long numActivePhysicalBytes) { + infoBuilder.setNumActivePhysicalBytes(numActivePhysicalBytes); + return this; + } + + @Override + Builder setNumLongTermPhysicalBytes(Long numLongTermPhysicalBytes) { + infoBuilder.setNumLongTermPhysicalBytes(numLongTermPhysicalBytes); + return this; + } + @Override Builder setNumRows(BigInteger numRows) { infoBuilder.setNumRows(numRows); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java index abfe21ec46a3..c00ba8441012 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -67,6 +67,13 @@ public Table apply(TableInfo tableInfo) { private final Long lastModifiedTime; private final Long numBytes; private final Long numLongTermBytes; + private final Long numTimeTravelPhysicalBytes; + private final Long numTotalLogicalBytes; + private final Long numActiveLogicalBytes; + private final Long numLongTermLogicalBytes; + private final Long numTotalPhysicalBytes; + private final Long numActivePhysicalBytes; + private final Long numLongTermPhysicalBytes; private final BigInteger numRows; private final TableDefinition definition; private final EncryptionConfiguration encryptionConfiguration; @@ -104,6 +111,20 @@ public abstract static class Builder { abstract Builder setNumLongTermBytes(Long numLongTermBytes); + abstract Builder setNumTimeTravelPhysicalBytes(Long numTimeTravelPhysicalBytes); + + abstract Builder setNumTotalLogicalBytes(Long numTotalLogicalBytes); + + abstract Builder setNumActiveLogicalBytes(Long numActiveLogicalBytes); + + abstract Builder setNumLongTermLogicalBytes(Long numLongTermLogicalBytes); + + abstract Builder setNumTotalPhysicalBytes(Long numTotalPhysicalBytes); + + abstract Builder setNumActivePhysicalBytes(Long numActivePhysicalBytes); + + abstract Builder setNumLongTermPhysicalBytes(Long numLongTermPhysicalBytes); + abstract Builder setNumRows(BigInteger numRows); abstract Builder setSelfLink(String selfLink); @@ -160,6 +181,13 @@ static class BuilderImpl extends Builder { private Long lastModifiedTime; private Long numBytes; private Long numLongTermBytes; + private Long numTimeTravelPhysicalBytes; + private Long numTotalLogicalBytes; + private Long numActiveLogicalBytes; + private Long numLongTermLogicalBytes; + private Long numTotalPhysicalBytes; + private Long numActivePhysicalBytes; + private Long numLongTermPhysicalBytes; private BigInteger numRows; private TableDefinition definition; private EncryptionConfiguration encryptionConfiguration; @@ -183,6 +211,13 @@ static class BuilderImpl extends Builder { this.lastModifiedTime = tableInfo.lastModifiedTime; this.numBytes = tableInfo.numBytes; this.numLongTermBytes = tableInfo.numLongTermBytes; + this.numTimeTravelPhysicalBytes = tableInfo.numTimeTravelPhysicalBytes; + this.numTotalLogicalBytes = tableInfo.numTotalLogicalBytes; + this.numActiveLogicalBytes = tableInfo.numActiveLogicalBytes; + this.numLongTermLogicalBytes = tableInfo.numLongTermLogicalBytes; + this.numTotalPhysicalBytes = tableInfo.numTotalPhysicalBytes; + this.numActivePhysicalBytes = tableInfo.numActivePhysicalBytes; + this.numLongTermPhysicalBytes = tableInfo.numLongTermPhysicalBytes; this.numRows = tableInfo.numRows; this.definition = tableInfo.definition; this.encryptionConfiguration = tableInfo.encryptionConfiguration; @@ -207,6 +242,13 @@ static class BuilderImpl extends Builder { this.selfLink = tablePb.getSelfLink(); this.numBytes = tablePb.getNumBytes(); this.numLongTermBytes = tablePb.getNumLongTermBytes(); + this.numTimeTravelPhysicalBytes = tablePb.getNumTimeTravelPhysicalBytes(); + this.numTotalLogicalBytes = tablePb.getNumTotalLogicalBytes(); + this.numActiveLogicalBytes = tablePb.getNumActiveLogicalBytes(); + this.numLongTermLogicalBytes = tablePb.getNumLongTermLogicalBytes(); + this.numTotalPhysicalBytes = tablePb.getNumTotalPhysicalBytes(); + this.numActivePhysicalBytes = tablePb.getNumActivePhysicalBytes(); + this.numLongTermPhysicalBytes = tablePb.getNumLongTermPhysicalBytes(); this.numRows = tablePb.getNumRows(); this.definition = TableDefinition.fromPb(tablePb); if (tablePb.getEncryptionConfiguration() != null) { @@ -278,6 +320,48 @@ Builder setNumLongTermBytes(Long numLongTermBytes) { return this; } + @Override + Builder setNumTimeTravelPhysicalBytes(Long numTimeTravelPhysicalBytes) { + this.numTimeTravelPhysicalBytes = numTimeTravelPhysicalBytes; + return this; + } + + @Override + Builder setNumTotalLogicalBytes(Long numTotalLogicalBytes) { + this.numTotalLogicalBytes = numTotalLogicalBytes; + return this; + } + + @Override + Builder setNumActiveLogicalBytes(Long numActiveLogicalBytes) { + this.numActiveLogicalBytes = numActiveLogicalBytes; + return this; + } + + @Override + Builder setNumLongTermLogicalBytes(Long numLongTermLogicalBytes) { + this.numLongTermLogicalBytes = numLongTermLogicalBytes; + return this; + } + + @Override + Builder setNumTotalPhysicalBytes(Long numTotalPhysicalBytes) { + this.numTotalPhysicalBytes = numTotalPhysicalBytes; + return this; + } + + @Override + Builder setNumActivePhysicalBytes(Long numActivePhysicalBytes) { + this.numActivePhysicalBytes = numActivePhysicalBytes; + return this; + } + + @Override + Builder setNumLongTermPhysicalBytes(Long numLongTermPhysicalBytes) { + this.numLongTermPhysicalBytes = numLongTermPhysicalBytes; + return this; + } + @Override Builder setNumRows(BigInteger numRows) { this.numRows = numRows; @@ -354,6 +438,13 @@ public TableInfo build() { this.lastModifiedTime = builder.lastModifiedTime; this.numBytes = builder.numBytes; this.numLongTermBytes = builder.numLongTermBytes; + this.numTimeTravelPhysicalBytes = builder.numTimeTravelPhysicalBytes; + this.numTotalLogicalBytes = builder.numTotalLogicalBytes; + this.numActiveLogicalBytes = builder.numActiveLogicalBytes; + this.numLongTermLogicalBytes = builder.numLongTermLogicalBytes; + this.numTotalPhysicalBytes = builder.numTotalPhysicalBytes; + this.numActivePhysicalBytes = builder.numActivePhysicalBytes; + this.numLongTermPhysicalBytes = builder.numLongTermPhysicalBytes; this.numRows = builder.numRows; this.definition = builder.definition; this.encryptionConfiguration = builder.encryptionConfiguration; @@ -440,6 +531,69 @@ public Long getNumLongTermBytes() { return numLongTermBytes; } + /** + * Returns the number of time travel physical bytes. + * + * @see Storage Pricing + */ + public Long getNumTimeTravelPhysicalBytes() { + return this.numTimeTravelPhysicalBytes; + } + + /** + * Returns the number of total logical bytes. + * + * @see Storage Pricing + */ + public Long getNumTotalLogicalBytes() { + return this.numTotalLogicalBytes; + } + + /** + * Returns the number of active logical bytes. + * + * @see Storage Pricing + */ + public Long getNumActiveLogicalBytes() { + return this.numActiveLogicalBytes; + } + + /** + * Returns the number of long term logical bytes. + * + * @see Storage Pricing + */ + public Long getNumLongTermLogicalBytes() { + return this.numLongTermLogicalBytes; + } + + /** + * Returns the number of total physical bytes. + * + * @see Storage Pricing + */ + public Long getNumTotalPhysicalBytes() { + return this.numTotalPhysicalBytes; + } + + /** + * Returns the number of active physical bytes. + * + * @see Storage Pricing + */ + public Long getNumActivePhysicalBytes() { + return this.numActivePhysicalBytes; + } + + /** + * Returns the number of long term physical bytes. + * + * @see Storage Pricing + */ + public Long getNumLongTermPhysicalBytes() { + return this.numLongTermPhysicalBytes; + } + /** Returns the number of rows of data in this table */ public BigInteger getNumRows() { return numRows; @@ -495,6 +649,13 @@ public String toString() { .add("lastModifiedTime", lastModifiedTime) .add("numBytes", numBytes) .add("numLongTermBytes", numLongTermBytes) + .add("numTimeTravelPhysicalBytes", numTimeTravelPhysicalBytes) + .add("numTotalLogicalBytes", numTotalLogicalBytes) + .add("numActiveLogicalBytes", numActiveLogicalBytes) + .add("numLongTermLogicalBytes", numLongTermLogicalBytes) + .add("numTotalPhysicalBytes", numTotalPhysicalBytes) + .add("numActivePhysicalBytes", numActivePhysicalBytes) + .add("numLongTermPhysicalBytes", numLongTermPhysicalBytes) .add("numRows", numRows) .add("definition", definition) .add("encryptionConfiguration", encryptionConfiguration) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java index 393b7fbc65c7..df0e5d79b0db 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -51,6 +51,13 @@ public class StandardTableDefinitionTest { private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); private static final Long NUM_BYTES = 42L; private static final Long NUM_LONG_TERM_BYTES = 18L; + private static final Long NUM_TIME_TRAVEL_PHYSICAL_BYTES = 21L; + private static final Long NUM_TOTAL_LOGICAL_BYTES = 22L; + private static final Long NUM_ACTIVE_LOGICAL_BYTES = 23L; + private static final Long NUM_LONG_TERM_LOGICAL_BYTES = 24L; + private static final Long NUM_TOTAL_PHYSICAL_BYTES = 25L; + private static final Long NUM_ACTIVE_PHYSICAL_BYTES = 26L; + private static final Long NUM_LONG_TERM_PHYSICAL_BYTES = 27L; private static final Long NUM_ROWS = 43L; private static final String LOCATION = "US"; private static final StreamingBuffer STREAMING_BUFFER = new StreamingBuffer(1L, 2L, 3L); @@ -64,6 +71,13 @@ public class StandardTableDefinitionTest { .setNumBytes(NUM_BYTES) .setNumRows(NUM_ROWS) .setNumLongTermBytes(NUM_LONG_TERM_BYTES) + .setNumTimeTravelPhysicalBytes(NUM_TIME_TRAVEL_PHYSICAL_BYTES) + .setNumTotalLogicalBytes(NUM_TOTAL_LOGICAL_BYTES) + .setNumActiveLogicalBytes(NUM_ACTIVE_LOGICAL_BYTES) + .setNumLongTermLogicalBytes(NUM_LONG_TERM_LOGICAL_BYTES) + .setNumTotalPhysicalBytes(NUM_TOTAL_PHYSICAL_BYTES) + .setNumActivePhysicalBytes(NUM_ACTIVE_PHYSICAL_BYTES) + .setNumLongTermPhysicalBytes(NUM_LONG_TERM_PHYSICAL_BYTES) .setStreamingBuffer(STREAMING_BUFFER) .setSchema(TABLE_SCHEMA) .setTimePartitioning(TIME_PARTITIONING) @@ -93,6 +107,13 @@ public void testBuilder() { assertEquals(LOCATION, TABLE_DEFINITION.getLocation()); assertEquals(NUM_BYTES, TABLE_DEFINITION.getNumBytes()); assertEquals(NUM_LONG_TERM_BYTES, TABLE_DEFINITION.getNumLongTermBytes()); + assertEquals(NUM_TIME_TRAVEL_PHYSICAL_BYTES, TABLE_DEFINITION.getNumTimeTravelPhysicalBytes()); + assertEquals(NUM_TOTAL_LOGICAL_BYTES, TABLE_DEFINITION.getNumTotalLogicalBytes()); + assertEquals(NUM_ACTIVE_LOGICAL_BYTES, TABLE_DEFINITION.getNumActiveLogicalBytes()); + assertEquals(NUM_LONG_TERM_LOGICAL_BYTES, TABLE_DEFINITION.getNumLongTermLogicalBytes()); + assertEquals(NUM_TOTAL_PHYSICAL_BYTES, TABLE_DEFINITION.getNumTotalPhysicalBytes()); + assertEquals(NUM_ACTIVE_PHYSICAL_BYTES, TABLE_DEFINITION.getNumActivePhysicalBytes()); + assertEquals(NUM_LONG_TERM_PHYSICAL_BYTES, TABLE_DEFINITION.getNumLongTermPhysicalBytes()); assertEquals(NUM_ROWS, TABLE_DEFINITION.getNumRows()); assertEquals(STREAMING_BUFFER, TABLE_DEFINITION.getStreamingBuffer()); assertEquals(TIME_PARTITIONING, TABLE_DEFINITION.getTimePartitioning()); @@ -118,6 +139,13 @@ public void testOf() { assertNull(definition.getLocation()); assertNull(definition.getNumBytes()); assertNull(definition.getNumLongTermBytes()); + assertNull(definition.getNumTimeTravelPhysicalBytes()); + assertNull(definition.getNumTotalLogicalBytes()); + assertNull(definition.getNumActiveLogicalBytes()); + assertNull(definition.getNumLongTermLogicalBytes()); + assertNull(definition.getNumTotalPhysicalBytes()); + assertNull(definition.getNumActivePhysicalBytes()); + assertNull(definition.getNumLongTermPhysicalBytes()); assertNull(definition.getNumRows()); assertNull(definition.getStreamingBuffer()); assertNull(definition.getTimePartitioning()); @@ -176,6 +204,13 @@ private void compareStandardTableDefinition( assertEquals(expected.getType(), value.getType()); assertEquals(expected.getNumBytes(), value.getNumBytes()); assertEquals(expected.getNumLongTermBytes(), value.getNumLongTermBytes()); + assertEquals(expected.getNumTimeTravelPhysicalBytes(), value.getNumTimeTravelPhysicalBytes()); + assertEquals(expected.getNumTotalLogicalBytes(), value.getNumTotalLogicalBytes()); + assertEquals(expected.getNumActiveLogicalBytes(), value.getNumActiveLogicalBytes()); + assertEquals(expected.getNumLongTermLogicalBytes(), value.getNumLongTermLogicalBytes()); + assertEquals(expected.getNumTotalPhysicalBytes(), value.getNumTotalPhysicalBytes()); + assertEquals(expected.getNumActivePhysicalBytes(), value.getNumActivePhysicalBytes()); + assertEquals(expected.getNumLongTermPhysicalBytes(), value.getNumLongTermPhysicalBytes()); assertEquals(expected.getNumRows(), value.getNumRows()); assertEquals(expected.getLocation(), value.getLocation()); assertEquals(expected.getStreamingBuffer(), value.getStreamingBuffer()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java index a44f7003910a..6283f71c217c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java @@ -58,6 +58,13 @@ public class TableInfoTest { private static final Schema TABLE_SCHEMA = Schema.of(FIELD_SCHEMA1, FIELD_SCHEMA2, FIELD_SCHEMA3); private static final Long NUM_BYTES = 42L; private static final Long NUM_LONG_TERM_BYTES = 21L; + private static final Long NUM_TIME_TRAVEL_PHYSICAL_BYTES = 21L; + private static final Long NUM_TOTAL_LOGICAL_BYTES = 22L; + private static final Long NUM_ACTIVE_LOGICAL_BYTES = 23L; + private static final Long NUM_LONG_TERM_LOGICAL_BYTES = 24L; + private static final Long NUM_TOTAL_PHYSICAL_BYTES = 25L; + private static final Long NUM_ACTIVE_PHYSICAL_BYTES = 26L; + private static final Long NUM_LONG_TERM_PHYSICAL_BYTES = 27L; private static final Long NUM_ROWS = 43L; private static final String LOCATION = "US"; private static final StandardTableDefinition.StreamingBuffer STREAMING_BUFFER = @@ -67,6 +74,13 @@ public class TableInfoTest { .setLocation(LOCATION) .setNumBytes(NUM_BYTES) .setNumLongTermBytes(NUM_LONG_TERM_BYTES) + .setNumTimeTravelPhysicalBytes(NUM_TIME_TRAVEL_PHYSICAL_BYTES) + .setNumTotalLogicalBytes(NUM_TOTAL_LOGICAL_BYTES) + .setNumActiveLogicalBytes(NUM_ACTIVE_LOGICAL_BYTES) + .setNumLongTermLogicalBytes(NUM_LONG_TERM_LOGICAL_BYTES) + .setNumTotalPhysicalBytes(NUM_TOTAL_PHYSICAL_BYTES) + .setNumActivePhysicalBytes(NUM_ACTIVE_PHYSICAL_BYTES) + .setNumLongTermPhysicalBytes(NUM_LONG_TERM_PHYSICAL_BYTES) .setNumRows(NUM_ROWS) .setStreamingBuffer(STREAMING_BUFFER) .setSchema(TABLE_SCHEMA) @@ -102,6 +116,13 @@ public class TableInfoTest { .setLastModifiedTime(LAST_MODIFIED_TIME) .setNumBytes(NUM_BYTES) .setNumLongTermBytes(NUM_LONG_TERM_BYTES) + .setNumTimeTravelPhysicalBytes(NUM_TIME_TRAVEL_PHYSICAL_BYTES) + .setNumTotalLogicalBytes(NUM_TOTAL_LOGICAL_BYTES) + .setNumActiveLogicalBytes(NUM_ACTIVE_LOGICAL_BYTES) + .setNumLongTermLogicalBytes(NUM_LONG_TERM_LOGICAL_BYTES) + .setNumTotalPhysicalBytes(NUM_TOTAL_PHYSICAL_BYTES) + .setNumActivePhysicalBytes(NUM_ACTIVE_PHYSICAL_BYTES) + .setNumLongTermPhysicalBytes(NUM_LONG_TERM_PHYSICAL_BYTES) .setNumRows(BigInteger.valueOf(NUM_ROWS)) .setSelfLink(SELF_LINK) .setLabels(Collections.singletonMap("a", "b")) @@ -166,6 +187,13 @@ public void testBuilder() { assertEquals(SELF_LINK, TABLE_INFO.getSelfLink()); assertEquals(NUM_BYTES, TABLE_INFO.getNumBytes()); assertEquals(NUM_LONG_TERM_BYTES, TABLE_INFO.getNumLongTermBytes()); + assertEquals(NUM_TIME_TRAVEL_PHYSICAL_BYTES, TABLE_INFO.getNumTimeTravelPhysicalBytes()); + assertEquals(NUM_TOTAL_LOGICAL_BYTES, TABLE_INFO.getNumTotalLogicalBytes()); + assertEquals(NUM_ACTIVE_LOGICAL_BYTES, TABLE_INFO.getNumActiveLogicalBytes()); + assertEquals(NUM_LONG_TERM_LOGICAL_BYTES, TABLE_INFO.getNumLongTermLogicalBytes()); + assertEquals(NUM_TOTAL_PHYSICAL_BYTES, TABLE_INFO.getNumTotalPhysicalBytes()); + assertEquals(NUM_ACTIVE_PHYSICAL_BYTES, TABLE_INFO.getNumActivePhysicalBytes()); + assertEquals(NUM_LONG_TERM_PHYSICAL_BYTES, TABLE_INFO.getNumLongTermPhysicalBytes()); assertEquals(BigInteger.valueOf(NUM_ROWS), TABLE_INFO.getNumRows()); assertEquals(REQUIRE_PARTITION_FILTER, TABLE_INFO.getRequirePartitionFilter()); @@ -271,6 +299,13 @@ private void compareTableInfo(TableInfo expected, TableInfo value) { assertEquals(expected.getLastModifiedTime(), value.getLastModifiedTime()); assertEquals(expected.getNumBytes(), value.getNumBytes()); assertEquals(expected.getNumLongTermBytes(), value.getNumLongTermBytes()); + assertEquals(expected.getNumTimeTravelPhysicalBytes(), value.getNumTimeTravelPhysicalBytes()); + assertEquals(expected.getNumTotalLogicalBytes(), value.getNumTotalLogicalBytes()); + assertEquals(expected.getNumActiveLogicalBytes(), value.getNumActiveLogicalBytes()); + assertEquals(expected.getNumLongTermLogicalBytes(), value.getNumLongTermLogicalBytes()); + assertEquals(expected.getNumTotalPhysicalBytes(), value.getNumTotalPhysicalBytes()); + assertEquals(expected.getNumActivePhysicalBytes(), value.getNumActivePhysicalBytes()); + assertEquals(expected.getNumLongTermPhysicalBytes(), value.getNumLongTermPhysicalBytes()); assertEquals(expected.getNumRows(), value.getNumRows()); assertEquals(expected.getSelfLink(), value.getSelfLink()); assertEquals(expected.getLabels(), value.getLabels()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 9d68e8710f1c..b80fb02dfb0b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1543,6 +1543,10 @@ public void testCreateAndGetTable() { assertNotNull(remoteTable.getLastModifiedTime()); assertNotNull(remoteTable.getDefinition().getNumBytes()); assertNotNull(remoteTable.getDefinition().getNumLongTermBytes()); + assertNotNull(remoteTable.getDefinition().getNumTotalLogicalBytes()); + assertNotNull(remoteTable.getDefinition().getNumActiveLogicalBytes()); + assertNotNull( + remoteTable.getDefinition().getNumLongTermLogicalBytes()); assertNotNull(remoteTable.getDefinition().getNumRows()); assertEquals( partitioning, remoteTable.getDefinition().getTimePartitioning()); @@ -1703,6 +1707,14 @@ public void testCreateAndGetTableWithSelectedField() { assertNull(remoteTable.getLastModifiedTime()); assertNull(remoteTable.getDefinition().getNumBytes()); assertNull(remoteTable.getDefinition().getNumLongTermBytes()); + assertNull( + remoteTable.getDefinition().getNumTimeTravelPhysicalBytes()); + assertNull(remoteTable.getDefinition().getNumTotalLogicalBytes()); + assertNull(remoteTable.getDefinition().getNumActiveLogicalBytes()); + assertNull(remoteTable.getDefinition().getNumLongTermLogicalBytes()); + assertNull(remoteTable.getDefinition().getNumTotalPhysicalBytes()); + assertNull(remoteTable.getDefinition().getNumActivePhysicalBytes()); + assertNull(remoteTable.getDefinition().getNumLongTermPhysicalBytes()); assertNull(remoteTable.getDefinition().getNumRows()); assertNull(remoteTable.getDefinition().getTimePartitioning()); assertNull(remoteTable.getDefinition().getClustering()); @@ -2131,6 +2143,14 @@ public void testUpdateTableWithSelectedFields() { assertNull(updatedTable.getLastModifiedTime()); assertNull(updatedTable.getDefinition().getNumBytes()); assertNull(updatedTable.getDefinition().getNumLongTermBytes()); + assertNull( + updatedTable.getDefinition().getNumTimeTravelPhysicalBytes()); + assertNull(updatedTable.getDefinition().getNumTotalLogicalBytes()); + assertNull(updatedTable.getDefinition().getNumActiveLogicalBytes()); + assertNull(updatedTable.getDefinition().getNumLongTermLogicalBytes()); + assertNull(updatedTable.getDefinition().getNumTotalPhysicalBytes()); + assertNull(updatedTable.getDefinition().getNumActivePhysicalBytes()); + assertNull(updatedTable.getDefinition().getNumLongTermPhysicalBytes()); assertNull(updatedTable.getDefinition().getNumRows()); assertTrue(createdTable.delete()); } From e2098180c8af7427fd626a0d6543ade2d45ce801 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 23 Jun 2023 18:16:12 +0000 Subject: [PATCH 2453/3441] chore(main): release 2.29.1-SNAPSHOT (#2773) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- README.md | 6 +++--- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index a023ae3cd60d..1f076bdda6b1 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.28.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.29.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.28.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.29.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.28.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.29.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/benchmark/pom.xml b/benchmark/pom.xml index aa215e50c843..b4368fe912ba 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.29.0 + 2.29.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 05d61111038e..049721806d38 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.29.0 + 2.29.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.29.0 + 2.29.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3350f0f129a4..14af71e07643 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.29.0 + 2.29.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.29.0 + 2.29.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8157326fa206..246fe9a0657c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.29.0 + 2.29.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4a877f47dee4..ea803ee5bdad 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.29.0:2.29.0 \ No newline at end of file +google-cloud-bigquery:2.29.0:2.29.1-SNAPSHOT \ No newline at end of file From 654993846197e7bb1aa091c251a84fd066b8711d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 26 Jun 2023 22:14:17 +0200 Subject: [PATCH 2454/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.22.0 (#2776) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/google-cloud-java) | `2.21.0` -> `2.22.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.22.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.22.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.22.0/compatibility-slim/2.21.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigqueryconnection/2.22.0/confidence-slim/2.21.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 14af71e07643..e70c285ba84e 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.21.0 + 2.22.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 80cd7172b165..5bdc1f9fa345 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.21.0 + 2.22.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 246fe9a0657c..51927f1412a9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.21.0 + 2.22.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 14fae2f6c398..55cc7725466c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.21.0 + 2.22.0 test From 2ee52c934d253d29c16b25d498ebe8e968cda481 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 26 Jun 2023 22:16:13 +0200 Subject: [PATCH 2455/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.26.0 (#2778) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-datacatalog-bom](https://togithub.com/googleapis/google-cloud-java) | `1.25.0` -> `1.26.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.26.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.26.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.26.0/compatibility-slim/1.25.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-datacatalog-bom/1.26.0/confidence-slim/1.25.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e70c285ba84e..eda83eead986 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.25.0 + 1.26.0 pom import From 078f244572db7484471d2c55a0db4533de0d1dc7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 26 Jun 2023 22:18:12 +0200 Subject: [PATCH 2456/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.22.0 (#2777) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1](https://togithub.com/googleapis/google-cloud-java) | `2.21.0` -> `2.22.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.22.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.22.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.22.0/compatibility-slim/2.21.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.22.0/confidence-slim/2.21.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eda83eead986..974a9eed46ab 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.21.0 + 2.22.0 test From 201461351ac9813f6d11e6f5c3b9ec4dd01c001b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 26 Jun 2023 23:22:39 +0200 Subject: [PATCH 2457/3441] deps: update github/codeql-action action to v2.20.1 (#2766) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.20.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Min Zhu --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index b87a7d0110a0..d9f0fe96a49c 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@6c089f53dd51dc3fc7e599c3cb5356453a52ca9e # v2.20.0 + uses: github/codeql-action/upload-sarif@f6e388ebf0efc915c6c5b165b019ee61a6746a38 # v2.20.1 with: sarif_file: results.sarif From 688b2a0b16b578dc0784094608b35cb3a68f151b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 26 Jun 2023 23:23:35 +0200 Subject: [PATCH 2458/3441] deps: update ossf/scorecard-action action to v2.2.0 (#2775) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index d9f0fe96a49c..e4da88c4a006 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -37,7 +37,7 @@ jobs: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@80e868c13c90f172d68d1f4501dee99e2479f7af # v2.1.3 + uses: ossf/scorecard-action@08b4669551908b1024bb425080c797723083c031 # v2.2.0 with: results_file: results.sarif results_format: sarif From eab62bf1f9b7736fb167e0f066bfcd52293e5206 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 27 Jun 2023 23:18:12 +0200 Subject: [PATCH 2459/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.29.0 (#2779) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.27.0` -> `2.29.0` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.29.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.29.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.29.0/compatibility-slim/2.27.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigquery/2.29.0/confidence-slim/2.27.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery (com.google.cloud:google-cloud-bigquery) ### [`v2.29.0`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2290-httpsgithubcomgoogleapisjava-bigquerycomparev2280v2290-2023-06-23) ##### Features - Increase default Read API timeout to 60s ([#​2764](https://togithub.com/googleapis/java-bigquery/issues/2764)) ([f606d0b](https://togithub.com/googleapis/java-bigquery/commit/f606d0b28ca8f65654413a99ab698f35e3befce1)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.12.0 ([#​2771](https://togithub.com/googleapis/java-bigquery/issues/2771)) ([7537e0f](https://togithub.com/googleapis/java-bigquery/commit/7537e0f31d8f4696559ef09c7bd284bf78217280)) - Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.23 ([#​2759](https://togithub.com/googleapis/java-bigquery/issues/2759)) ([27ba48a](https://togithub.com/googleapis/java-bigquery/commit/27ba48a0cab331f2d233ba96fed710c11d31dc53)) - Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.23 ([#​2760](https://togithub.com/googleapis/java-bigquery/issues/2760)) ([8cddf8f](https://togithub.com/googleapis/java-bigquery/commit/8cddf8fd286f51cd75aba0da6a52cbc12cab7e2a)) ### [`v2.28.0`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2280-httpsgithubcomgoogleapisjava-bigquerycomparev2271v2280-2023-06-19) ##### Features - Add primary key and foreign keys ([#​2744](https://togithub.com/googleapis/java-bigquery/issues/2744)) ([afb571c](https://togithub.com/googleapis/java-bigquery/commit/afb571c97edb13f93df9ac140af4516205d27a49)) - Partial Projection of Table Metadata ([#​2756](https://togithub.com/googleapis/java-bigquery/issues/2756)) ([9207743](https://togithub.com/googleapis/java-bigquery/commit/92077437d759705151f7778207616ecf024371ba)) - Return JobID with TableResult ([#​2689](https://togithub.com/googleapis/java-bigquery/issues/2689)) ([aa38428](https://togithub.com/googleapis/java-bigquery/commit/aa38428ad26b64d2566b33f4b2ca3dcc102c3247)) ### [`v2.27.1`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#​2271-httpsgithubcomgoogleapisjava-bigquerycomparev2270v2271-2023-06-13) ##### Dependencies - Update actions/checkout action to v3.5.3 ([#​2746](https://togithub.com/googleapis/java-bigquery/issues/2746)) ([17f8438](https://togithub.com/googleapis/java-bigquery/commit/17f843880f5633b602de5221c26b830e7e304d2b)) - Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.21.0 ([#​2741](https://togithub.com/googleapis/java-bigquery/issues/2741)) ([d665e52](https://togithub.com/googleapis/java-bigquery/commit/d665e523b2c393c17a734ff4714aeb85f8d61dd7)) - Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.25.0 ([#​2743](https://togithub.com/googleapis/java-bigquery/issues/2743)) ([5d38d23](https://togithub.com/googleapis/java-bigquery/commit/5d38d2375cedd29e35d75881a206cab3fdcdd6a5)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.11.0 ([#​2738](https://togithub.com/googleapis/java-bigquery/issues/2738)) ([3b56445](https://togithub.com/googleapis/java-bigquery/commit/3b564458eef9df2173c47e26e2399a6a6cad6eee)) - Update github/codeql-action action to v2.20.0 ([#​2751](https://togithub.com/googleapis/java-bigquery/issues/2751)) ([42ae181](https://togithub.com/googleapis/java-bigquery/commit/42ae18134b972c1694a7e012d2f51c916e663c83)) - Update github/codeql-action action to v2.3.6 ([#​2712](https://togithub.com/googleapis/java-bigquery/issues/2712)) ([f043ed6](https://togithub.com/googleapis/java-bigquery/commit/f043ed61dacf4ea66eedaf0a6faada06057b7d50))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1f076bdda6b1..bcee504a5343 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.27.0 + 2.29.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5bdc1f9fa345..93cb7d0c6bd7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.27.0 + 2.29.0 From 7fcfa63a1bd9c1782aca7f6f32f26f0df67c3f5d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 28 Jun 2023 20:52:17 +0200 Subject: [PATCH 2460/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.24.1 (#2782) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.23.3` -> `2.24.1` | [![age](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.24.1/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.24.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.24.1/compatibility-slim/2.23.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/com.google.cloud:google-cloud-bigtable/2.24.1/confidence-slim/2.23.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigtable (com.google.cloud:google-cloud-bigtable) ### [`v2.24.1`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#​2241-httpsgithubcomgoogleapisjava-bigtablecomparev2240v2241-2023-06-27) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.23.3...v2.24.1) ##### Bug Fixes - Remove javadoc external link configuration ([#​1815](https://togithub.com/googleapis/java-bigtable/issues/1815)) ([9c71a93](https://togithub.com/googleapis/java-bigtable/commit/9c71a934f8354477b0e229b83047c8203d4ab978))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 93cb7d0c6bd7..c2ae4f6562db 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.23.3 + 2.24.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 51927f1412a9..4c5ed35c23b6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.23.3 + 2.24.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 55cc7725466c..e0a46cc27bdc 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.23.3 + 2.24.1 test From 07760b7c0837f48bb1e7875a894323e7cfc4d6af Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 28 Jun 2023 17:30:35 -0400 Subject: [PATCH 2461/3441] ci: javadoc job (JDK 17) in ci.yaml (#1819) (#2781) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ci: javadoc job (JDK 17) in ci.yaml (#1819) This also changes the JDK distribution from zulu to temurin https://github.com/actions/setup-java#eclipse-temurin Source-Link: https://github.com/googleapis/synthtool/commit/ef9fe2ef6d92c7ff967d9d4f704035b3f5c9051d Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:31c8276a1bfb43766597d32645721c029cb94571f1b8d996cb2c290744fe52f9 * fix errors * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * fix error --------- Co-authored-by: Owl Bot Co-authored-by: Neenu1995 --- .github/.OwlBot.lock.yaml | 4 +- .github/workflows/ci.yaml | 26 ++++++-- .github/workflows/samples.yaml | 2 +- README.md | 2 +- .../java/com/google/cloud/bigquery/Acl.java | 64 ++++++++++++------- .../com/google/cloud/bigquery/BigQuery.java | 54 +++++++--------- .../com/google/cloud/bigquery/Connection.java | 6 +- .../cloud/bigquery/ConnectionSettings.java | 2 +- .../java/com/google/cloud/bigquery/Field.java | 39 +++++------ .../cloud/bigquery/QueryParameterValue.java | 2 - .../cloud/bigquery/RemoteFunctionOptions.java | 4 +- .../cloud/bigquery/RoutineArgument.java | 2 +- 12 files changed, 107 insertions(+), 100 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 47a70ea40cf3..258389d1aa68 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:32851debfefed2b66038e0141f1b5c2103bb59ba80b7475adbc10ef7abab3de7 -# created: 2023-06-22T15:06:52.039318836Z + digest: sha256:31c8276a1bfb43766597d32645721c029cb94571f1b8d996cb2c290744fe52f9 +# created: 2023-06-27T18:51:58.922150125Z diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 65436cde4190..e27b2c57563c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -30,7 +30,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - distribution: zulu + distribution: temurin java-version: ${{matrix.java}} - run: java -version - run: .kokoro/build.sh @@ -45,7 +45,7 @@ jobs: - uses: actions/setup-java@v3 with: java-version: 8 - distribution: zulu + distribution: temurin - name: "Set jvm system property environment variable for surefire plugin (unit tests)" # Maven surefire plugin (unit tests) allows us to specify JVM to run the tests. # https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#jvm @@ -54,7 +54,7 @@ jobs: - uses: actions/setup-java@v3 with: java-version: 17 - distribution: zulu + distribution: temurin - run: .kokoro/build.sh env: JOB_TYPE: test @@ -66,7 +66,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - distribution: zulu + distribution: temurin java-version: 8 - run: java -version - run: .kokoro/build.bat @@ -81,17 +81,29 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - distribution: zulu + distribution: temurin java-version: ${{matrix.java}} - run: java -version - run: .kokoro/dependencies.sh + javadoc: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: 17 + - run: java -version + - run: .kokoro/build.sh + env: + JOB_TYPE: javadoc lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - distribution: zulu + distribution: temurin java-version: 11 - run: java -version - run: .kokoro/build.sh @@ -103,7 +115,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - distribution: zulu + distribution: temurin java-version: 8 - run: java -version - run: .kokoro/build.sh diff --git a/.github/workflows/samples.yaml b/.github/workflows/samples.yaml index 912ed8b2b027..10d252d77538 100644 --- a/.github/workflows/samples.yaml +++ b/.github/workflows/samples.yaml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: - distribution: zulu + distribution: temurin java-version: 8 - name: Run checkstyle run: mvn -P lint --quiet --batch-mode checkstyle:check diff --git a/README.md b/README.md index bcee504a5343..707158574ec0 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.17.0') +implementation platform('com.google.cloud:libraries-bom:26.18.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java index 3fad68920612..e4107cdfda6f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java @@ -31,7 +31,7 @@ * Access Control for a BigQuery Dataset. BigQuery uses ACLs to manage permissions on datasets. ACLs * are not directly supported on tables. A table inherits its ACL from the dataset that contains it. * Project roles affect your ability to run jobs or manage the project, while dataset roles affect - * how you can access or modify the data inside of a project. + * how you can access or modify the data inside a project. * * @see Access Control */ @@ -82,12 +82,15 @@ public static Role valueOfStrict(String constant) { return type.valueOfStrict(constant); } - /** Get the Role for the given String constant, and allow unrecognized values. */ + /** + * @param constant + * @return Get the Role for the given String constant, and allow unrecognized values. + */ public static Role valueOf(String constant) { return type.valueOf(constant); } - /** Return the known values for Role. */ + /** @return Return the known values for Role. */ public static Role[] values() { return type.values(); } @@ -167,14 +170,19 @@ public static final class DatasetAclEntity extends Entity { private final DatasetId id; private final List targetTypes; - /** Creates a DatasetAclEntity given the DatasetAclEntity's id. */ + /** + * Creates a DatasetAclEntity given the DatasetAclEntity's id. + * + * @param id + * @param targetTypes + */ public DatasetAclEntity(DatasetId id, List targetTypes) { super(Type.DATASET); this.id = id; this.targetTypes = targetTypes; } - /** Returns DatasetAclEntity's identity. */ + /** @return Returns DatasetAclEntity's identity. */ public DatasetId getId() { return id; } @@ -230,7 +238,7 @@ public Domain(String domain) { this.domain = domain; } - /** Returns the domain name. */ + /** @return Returns the domain name. */ public String getDomain() { return domain; } @@ -291,9 +299,9 @@ public Group(String identifier) { } /** - * Returns group's identifier, can be either a - * special group identifier or a group email. + * @return Returns group's identifier, can be either a + * special group identifier or a group email. */ public String getIdentifier() { return identifier; @@ -338,22 +346,22 @@ Access toPb() { } } - /** Returns a Group entity representing all project's owners. */ + /** @return Returns a Group entity representing all project's owners. */ public static Group ofProjectOwners() { return new Group(PROJECT_OWNERS); } - /** Returns a Group entity representing all project's readers. */ + /** @return Returns a Group entity representing all project's readers. */ public static Group ofProjectReaders() { return new Group(PROJECT_READERS); } - /** Returns a Group entity representing all project's writers. */ + /** @return Returns a Group entity representing all project's writers. */ public static Group ofProjectWriters() { return new Group(PROJECT_WRITERS); } - /** Returns a Group entity representing all BigQuery authenticated users. */ + /** @return Returns a Group entity representing all BigQuery authenticated users. */ public static Group ofAllAuthenticatedUsers() { return new Group(ALL_AUTHENTICATED_USERS); } @@ -375,7 +383,7 @@ public User(String email) { this.email = email; } - /** Returns user's email. */ + /** @return Returns user's email. */ public String getEmail() { return email; } @@ -427,7 +435,7 @@ public View(TableId id) { this.id = id; } - /** Returns table's identity. */ + /** @return Returns table's identity. */ public TableId getId() { return id; } @@ -479,7 +487,7 @@ public Routine(RoutineId id) { this.id = id; } - /** Returns routine's identity. */ + /** @return Returns routine's identity. */ public RoutineId getId() { return id; } @@ -527,7 +535,7 @@ public IamMember(String iamMember) { this.iamMember = iamMember; } - /** Returns iamMember. */ + /** @return Returns iamMember. */ public String getIamMember() { return iamMember; } @@ -565,19 +573,18 @@ private Acl(Entity entity, Role role) { this.role = role; } - /** Returns the entity for this ACL. */ + /** @return Returns the entity for this ACL. */ public Entity getEntity() { return entity; } - /** Returns the role specified by this ACL. */ + /** @return Returns the role specified by this ACL. */ public Role getRole() { return role; } /** - * Returns an Acl object. - * + * @return Returns an Acl object. * @param entity the entity for this ACL object * @param role the role to associate to the {@code entity} object */ @@ -585,17 +592,26 @@ public static Acl of(Entity entity, Role role) { return new Acl(entity, role); } - /** Returns an Acl object for a datasetAclEntity. */ + /** + * @param datasetAclEntity + * @return Returns an Acl object for a datasetAclEntity. + */ public static Acl of(DatasetAclEntity datasetAclEntity) { return new Acl(datasetAclEntity, null); } - /** Returns an Acl object for a view entity. */ + /** + * @param view + * @return Returns an Acl object for a view entity. + */ public static Acl of(View view) { return new Acl(view, null); } - /** Returns an Acl object for a routine entity. */ + /** + * @param routine + * @return Returns an Acl object for a routine entity. + */ public static Acl of(Routine routine) { return new Acl(routine, null); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 27127835761c..ac6262e69dde 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -886,7 +886,7 @@ public int hashCode() { * { * @code * // List datasets in the default project - * Page datasets = bigquery.listDatasets(DatasetListOption.pageSize(100)); + * Page<Dataset> datasets = bigquery.listDatasets(DatasetListOption.pageSize(100)); * for (Dataset dataset : datasets.iterateAll()) { * // do something with the dataset * } @@ -910,7 +910,7 @@ public int hashCode() { * @code * String projectId = "my_project_id"; * // List datasets in a specified project - * Page datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100)); + * Page<{@link Dataset}> datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100)); * for (Dataset dataset : datasets.iterateAll()) { * // do something with the dataset * } @@ -1036,11 +1036,9 @@ public int hashCode() { /** * Deletes the requested routine. * - *

    - * Example of deleting a routine. + *

    Example of deleting a routine. * - *

    -   * {@code
    +   * 
    {@code
        * String projectId = "my_project_id";
        * String datasetId = "my_dataset_id";
        * String routineId = "my_routine_id";
    @@ -1051,11 +1049,9 @@ public int hashCode() {
        * } else {
        *   // the routine was not found
        * }
    -   * 
    - * - * @return {@code true} if routine was deleted, {@code false} if it was not - * found + * }
    * + * @return {@code true} if routine was deleted, {@code false} if it was not found * @throws BigQueryException upon failure */ boolean delete(RoutineId routineId); @@ -1262,21 +1258,18 @@ public int hashCode() { Page listRoutines(DatasetId datasetId, RoutineListOption... options); /** - * Lists the tables in the dataset. This method returns partial information on - * each table: ({@link Table#getTableId()}, {@link Table#getFriendlyName()}, - * {@link Table#getGeneratedId()} and type, which is part of - * {@link Table#getDefinition()}). To get complete information use either - * {@link #getTable(TableId, TableOption...)} or - * {@link #getTable(String, String, TableOption...)}. + * Lists the tables in the dataset. This method returns partial information on each table: ({@link + * Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} and type, + * which is part of {@link Table#getDefinition()}). To get complete information use either {@link + * #getTable(TableId, TableOption...)} or {@link #getTable(String, String, TableOption...)}. * - *

    - * Example of listing the tables in a dataset, specifying the page size. + *

    Example of listing the tables in a dataset, specifying the page size. * *

        * {
        *   @code
        *   String datasetName = "my_dataset_name";
    -   *   Page
  • tables = bigquery.listTables(datasetName, TableListOption.pageSize(100)); + * Page<Table> tables = bigquery.listTables(datasetName, TableListOption.pageSize(100)); * for (Table table : tables.iterateAll()) { * // do something with the table * } @@ -1288,15 +1281,12 @@ public int hashCode() { Page
    listTables(String datasetId, TableListOption... options); /** - * Lists the tables in the dataset. This method returns partial information on - * each table: ({@link Table#getTableId()}, {@link Table#getFriendlyName()}, - * {@link Table#getGeneratedId()} and type, which is part of - * {@link Table#getDefinition()}). To get complete information use either - * {@link #getTable(TableId, TableOption...)} or - * {@link #getTable(String, String, TableOption...)}. + * Lists the tables in the dataset. This method returns partial information on each table: ({@link + * Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} and type, + * which is part of {@link Table#getDefinition()}). To get complete information use either {@link + * #getTable(TableId, TableOption...)} or {@link #getTable(String, String, TableOption...)}. * - *

    - * Example of listing the tables in a dataset. + *

    Example of listing the tables in a dataset. * *

        * {
    @@ -1304,7 +1294,7 @@ public int hashCode() {
        *   String projectId = "my_project_id";
        *   String datasetName = "my_dataset_name";
        *   DatasetId datasetId = DatasetId.of(projectId, datasetName);
    -   *   Page
    tables = bigquery.listTables(datasetId, TableListOption.pageSize(100)); + * Page<Table> tables = bigquery.listTables(datasetId, TableListOption.pageSize(100)); * for (Table table : tables.iterateAll()) { * // do something with the table * } @@ -1339,12 +1329,12 @@ public int hashCode() { * String tableName = "my_table_name"; * TableId tableId = TableId.of(datasetName, tableName); * // Values of the row to insert - * Map rowContent = new HashMap<>(); + * Map<String, Object> rowContent = new HashMap<>(); * rowContent.put("booleanField", true); * // Bytes are passed in base64 * rowContent.put("bytesField", "Cg0NDg0="); // 0xA, 0xD, 0xD, 0xE, 0xD in base64 * // Records are passed as a map - * Map recordsContent = new HashMap<>(); + * Map<String, Object> recordsContent = new HashMap<>(); * recordsContent.put("stringField", "Hello, World!"); * rowContent.put("recordField", recordsContent); * InsertAllResponse response = bigquery.insertAll(InsertAllRequest.newBuilder(tableId).addRow("rowId", rowContent) @@ -1353,7 +1343,7 @@ public int hashCode() { * .build()); * if (response.hasErrors()) { * // If any of the insertions failed, this lets you inspect the errors - * for (Entry> entry : response.getInsertErrors().entrySet()) { + * for (Entry<Long, List<BigQueryError>> entry : response.getInsertErrors().entrySet()) { * // inspect row error * } * } @@ -1509,7 +1499,7 @@ TableResult listTableData( *
        * {
        *   @code
    -   *   Page jobs = bigquery.listJobs(JobListOption.pageSize(100));
    +   *   Page<Job> jobs = bigquery.listJobs(JobListOption.pageSize(100));
        *   for (Job job : jobs.iterateAll()) {
        *     // do something with the job
        *   }
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java
    index 3a30d1f7b2f2..afc8eb848bfc 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java
    @@ -106,7 +106,7 @@ BigQueryResult executeSelect(
        *            .build();
        *   Connection connection = bigquery.createConnection(connectionSettings);
        *   String selectQuery = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
    -   * ListenableFuture executeSelectFuture = connection.executeSelectAsync(selectQuery);
    +   * ListenableFuture<ExecuteSelectResponse> executeSelectFuture = connection.executeSelectAsync(selectQuery);
        * ExecuteSelectResponse executeSelectRes = executeSelectFuture.get();
        *
        *  if(!executeSelectRes.getIsSuccessful()){
    @@ -155,9 +155,9 @@ ListenableFuture executeSelectAsync(String sql)
        *         Parameter.newBuilder().setName("stringParam").setValue(stringParameter).build();
        *     Parameter intArrayParam =
        *         Parameter.newBuilder().setName("integerList").setValue(intArrayParameter).build();
    -   *     List parameters = ImmutableList.of(stringParam, intArrayParam);
    +   *     List<Parameter> parameters = ImmutableList.of(stringParam, intArrayParam);
        *
    -   *     ListenableFuture executeSelectFut =
    +   *     ListenableFuture<ExecuteSelectResponse> executeSelectFut =
        *         connection.executeSelectAsync(selectQuery, parameters);
        * ExecuteSelectResponse executeSelectRes = executeSelectFuture.get();
        *
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java
    index ac3b1b1e05ad..a9aabe038d7a 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java
    @@ -115,7 +115,7 @@ public abstract class ConnectionSettings {
     
       /**
        * Returns the table where to put query results. If not provided a new table is created. This
    -   * value is required if {@link # allowLargeResults()} is {@code true}.
    +   * value is required if {@link #getAllowLargeResults()} is {@code true}.
        */
       @Nullable
       public abstract TableId getDestinationTable();
    diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java
    index e151b501ba2a..7496530dd692 100644
    --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java
    +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java
    @@ -258,30 +258,21 @@ public Builder setPrecision(Long precision) {
          * 

    You can use struct or array expression to specify default value for the entire struct or * array. The valid SQL expressions are: * - *

      - *
        - *
      • Literals for all data types, including STRUCT and ARRAY. - *
      - *
        - *
      • The following functions: - *
          - *
        • CURRENT_TIMESTAMP - *
        • CURRENT_TIME - *
        • CURRENT_DATE - *
        • CURRENT_DATETIME - *
        • GENERATE_UUID - *
        • RAND - *
        • SESSION_USER - *
        • ST_GEOGPOINT - *
        - *
      - *
        - *
      • Struct or array composed with the above allowed functions, for example: - *
          - *
        • "[CURRENT_DATE(), DATE '2020-01-01']" - *
        - *
      - *
    + *
    +     *   Literals for all data types, including STRUCT and ARRAY.
    +     *   The following functions:
    +     *      - CURRENT_TIMESTAMP
    +     *      - CURRENT_TIME
    +     *      - CURRENT_DATE
    +     *      - CURRENT_DATETIME
    +     *      - GENERATE_UUID
    +     *      - RAND
    +     *      - SESSION_USER
    +     *      - ST_GEOGPOINT
    +     *
    +     *   Struct or array composed with the above allowed functions, for example:
    +     *      "[CURRENT_DATE(), DATE '2020-01-01']"
    +     * 
    */ public Builder setDefaultValueExpression(String defaultValueExpression) { this.defaultValueExpression = defaultValueExpression; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index b21445d383a5..85ebd2957b9f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -52,8 +52,6 @@ * for StandardSQLTypeName.INT64). Alternatively, an instance can be constructed by calling {@link * #of(Object, Class)} with the value and a Class object, which will use these mappings: * - *

    - * *

      *
    • Boolean: StandardSQLTypeName.BOOL *
    • String: StandardSQLTypeName.STRING diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RemoteFunctionOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RemoteFunctionOptions.java index 88496dcb4c41..0f31e9c66296 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RemoteFunctionOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RemoteFunctionOptions.java @@ -78,7 +78,7 @@ public abstract static class Builder { /** * Returns the user-defined context as a set of key/value pairs. * - * @return Map + * @return Map<String, String> */ @Nullable public abstract Map getUserDefinedContext(); @@ -96,7 +96,7 @@ public abstract static class Builder { */ public abstract RemoteFunctionOptions.Builder toBuilder(); - /** Returns a builder for a {@Code RemoteFunctionOptions} object. */ + /** Returns a builder for a {@code RemoteFunctionOptions} object. */ public static RemoteFunctionOptions.Builder newBuilder() { return new AutoValue_RemoteFunctionOptions.Builder(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java index d36d1f229517..4bc17e6ae2ac 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java @@ -90,7 +90,7 @@ public abstract static class Builder { /** Returns a builder pre-populated using the current values of this {@code RoutineArgument}. */ public abstract Builder toBuilder(); - /** Returns a builder for a {@Code RoutineArgument} object. */ + /** Returns a builder for a {@code RoutineArgument} object. */ public static Builder newBuilder() { return new AutoValue_RoutineArgument.Builder(); } From 344f695e319470acf350ebdd56d643c03704ea1f Mon Sep 17 00:00:00 2001 From: Farhan Ahmed Date: Mon, 17 Jul 2023 10:02:21 -0400 Subject: [PATCH 2462/3441] feat: add support for Search statistics (#2787) --- .../cloud/bigquery/IndexUnusedReason.java | 136 ++++++++++++++++++ .../google/cloud/bigquery/JobStatistics.java | 25 ++++ .../google/cloud/bigquery/SearchStats.java | 92 ++++++++++++ .../cloud/bigquery/JobStatisticsTest.java | 7 + .../cloud/bigquery/it/ITBigQueryTest.java | 25 ++++ 5 files changed, 285 insertions(+) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SearchStats.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java new file mode 100644 index 000000000000..06a88b068e1a --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java @@ -0,0 +1,136 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.TableReference; +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import javax.annotation.Nullable; + +/** Represents Reason of why the index was not used in a SQL search. */ +@AutoValue +public abstract class IndexUnusedReason implements Serializable { + + @AutoValue.Builder + public abstract static class Builder { + + /** + * Specifies the name of the unused search index, if available. + * + * @param indexName indexName or {@code null} for none + */ + public abstract Builder setIndexName(String indexName); + + /** + * Specifies the high-level reason for the scenario when no search index was used. + * + * @param code code or {@code null} for none + */ + public abstract Builder setCode(String code); + + /** + * Free form human-readable reason for the scenario when no search index was used. + * + * @param message message or {@code null} for none + */ + public abstract Builder setMessage(String message); + + /** + * Specifies the base table involved in the reason that no search index was used. + * + * @param tableReference tableReference or {@code null} for none + */ + public abstract Builder setBaseTable(TableReference tableReference); + + /** Creates a @code IndexUnusedReason} object. */ + public abstract IndexUnusedReason build(); + } + + public abstract Builder toBuilder(); + + public static Builder newBuilder() { + return new AutoValue_IndexUnusedReason.Builder(); + } + + /** + * Returns the name of the unused search index, if available. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract String getIndexName(); + + /** + * Returns the high-level reason for the scenario when no search index was used. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract String getCode(); + + /** + * Returns free form human-readable reason for the scenario when no search index was used. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract String getMessage(); + + /** + * Returns the base table involved in the reason that no search index was used. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract TableReference getBaseTable(); + + com.google.api.services.bigquery.model.IndexUnusedReason toPb() { + com.google.api.services.bigquery.model.IndexUnusedReason indexUnusedReason = + new com.google.api.services.bigquery.model.IndexUnusedReason(); + if (getIndexName() != null) { + indexUnusedReason.setIndexName(indexUnusedReason.getIndexName()); + } + if (getCode() != null) { + indexUnusedReason.setCode(indexUnusedReason.getCode()); + } + if (getMessage() != null) { + indexUnusedReason.setMessage(indexUnusedReason.getMessage()); + } + if (getBaseTable() != null) { + indexUnusedReason.setBaseTable(indexUnusedReason.getBaseTable()); + } + return indexUnusedReason; + } + + static IndexUnusedReason fromPb( + com.google.api.services.bigquery.model.IndexUnusedReason indexUnusedReason) { + Builder builder = newBuilder(); + if (indexUnusedReason.getIndexName() != null) { + builder.setIndexName(indexUnusedReason.getIndexName()); + } + if (indexUnusedReason.getCode() != null) { + builder.setCode(indexUnusedReason.getCode()); + } + if (indexUnusedReason.getMessage() != null) { + builder.setMessage(indexUnusedReason.getMessage()); + } + if (indexUnusedReason.getBaseTable() != null) { + builder.setBaseTable(indexUnusedReason.getBaseTable()); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 0ef1d1f947b8..59c48615fd5f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -340,6 +340,7 @@ public static class QueryStatistics extends JobStatistics { private final List queryPlan; private final List timeline; private final Schema schema; + private final SearchStats searchStats; private final List queryParameters; /** @@ -424,6 +425,7 @@ static final class Builder extends JobStatistics.Builder timeline; private Schema schema; private List queryParameters; + private SearchStats searchStats; private Builder() {} @@ -471,6 +473,9 @@ private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsP if (statisticsPb.getQuery().getSchema() != null) { this.schema = Schema.fromPb(statisticsPb.getQuery().getSchema()); } + if (statisticsPb.getQuery().getSearchStatistics() != null) { + this.searchStats = SearchStats.fromPb(statisticsPb.getQuery().getSearchStatistics()); + } if (statisticsPb.getQuery().getDmlStats() != null) { this.dmlStats = DmlStats.fromPb(statisticsPb.getQuery().getDmlStats()); } @@ -572,6 +577,11 @@ Builder setSchema(Schema schema) { return self(); } + Builder setSearchStats(SearchStats searchStats) { + this.searchStats = searchStats; + return self(); + } + Builder setQueryParameters(List queryParameters) { this.queryParameters = queryParameters; return self(); @@ -603,6 +613,7 @@ private QueryStatistics(Builder builder) { this.queryPlan = builder.queryPlan; this.timeline = builder.timeline; this.schema = builder.schema; + this.searchStats = builder.searchStats; this.queryParameters = builder.queryParameters; } @@ -724,6 +735,15 @@ public Schema getSchema() { return schema; } + /** + * Statistics for a search query. Populated as part of JobStatistics2. Provides information + * about how indexes are used in search queries. If an index is not used, you can retrieve + * debugging information about the reason why. + */ + public SearchStats getSearchStats() { + return searchStats; + } + /** * Standard SQL only: Returns a list of undeclared query parameters detected during a dry run * validation. @@ -743,6 +763,7 @@ ToStringHelper toStringHelper() { .add("queryPlan", queryPlan) .add("timeline", timeline) .add("schema", schema) + .add("searchStats", searchStats) .add("queryParameters", queryParameters); } @@ -765,6 +786,7 @@ public final int hashCode() { totalBytesProcessed, queryPlan, schema, + searchStats, queryParameters); } @@ -807,6 +829,9 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { if (schema != null) { queryStatisticsPb.setSchema(schema.toPb()); } + if (searchStats != null) { + queryStatisticsPb.setSearchStatistics(searchStats.toPb()); + } if (queryParameters != null) { queryStatisticsPb.setUndeclaredQueryParameters(queryParameters); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SearchStats.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SearchStats.java new file mode 100644 index 000000000000..73b812383b08 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SearchStats.java @@ -0,0 +1,92 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.SearchStatistics; +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; +import javax.annotation.Nullable; + +/** Represents Search statistics information of a search query. */ +@AutoValue +public abstract class SearchStats implements Serializable { + + @AutoValue.Builder + public abstract static class Builder { + + /** + * Specifies index usage mode for the query. + * + * @param indexUsageMode, has three modes UNUSED, PARTIALLY_USED, and FULLY_USED + */ + public abstract Builder setIndexUsageMode(String indexUsageMode); + + /** + * When index_usage_mode is UNUSED or PARTIALLY_USED, this field explains why index was not used + * in all or part of the search query. If index_usage_mode is FULLY_USED, this field is not + * populated. + * + * @param indexUnusedReasons + */ + public abstract Builder setIndexUnusedReasons(List indexUnusedReasons); + + /** Creates a @code SearchStats} object. */ + public abstract SearchStats build(); + } + + public abstract Builder toBuilder(); + + public static Builder newBuilder() { + return new AutoValue_SearchStats.Builder(); + } + + @Nullable + public abstract String getIndexUsageMode(); + + @Nullable + public abstract List getIndexUnusedReasons(); + + SearchStatistics toPb() { + SearchStatistics searchStatistics = new SearchStatistics(); + if (getIndexUsageMode() != null) { + searchStatistics.setIndexUsageMode(getIndexUsageMode()); + } + if (getIndexUnusedReasons() != null) { + searchStatistics.setIndexUnusedReason( + getIndexUnusedReasons().stream() + .map(IndexUnusedReason::toPb) + .collect(Collectors.toList())); + } + return searchStatistics; + } + + static SearchStats fromPb(SearchStatistics searchStatistics) { + Builder builder = newBuilder(); + if (searchStatistics.getIndexUsageMode() != null) { + builder.setIndexUsageMode(searchStatistics.getIndexUsageMode()); + } + if (searchStatistics.getIndexUnusedReason() != null) { + builder.setIndexUnusedReasons( + searchStatistics.getIndexUnusedReason().stream() + .map(IndexUnusedReason::fromPb) + .collect(Collectors.toList())); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index 0dad46e9e8db..af75a2391ee4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -159,6 +159,9 @@ public class JobStatisticsTest { ImmutableList.of(TIMELINE_SAMPLE1, TIMELINE_SAMPLE2); private static final List QUERY_PLAN = ImmutableList.of(QUERY_STAGE); private static final Schema SCHEMA = Schema.of(Field.of("column", LegacySQLTypeName.DATETIME)); + private static final String UNUSED_INDEX_USAGE_MODE = "UNUSED"; + private static final SearchStats SEARCH_STATS = + SearchStats.newBuilder().setIndexUsageMode(UNUSED_INDEX_USAGE_MODE).build(); private static final QueryStatistics QUERY_STATISTICS = QueryStatistics.newBuilder() .setCreationTimestamp(CREATION_TIME) @@ -182,6 +185,7 @@ public class JobStatisticsTest { .setQueryPlan(QUERY_PLAN) .setTimeline(TIMELINE) .setSchema(SCHEMA) + .setSearchStats(SEARCH_STATS) .build(); private static final QueryStatistics QUERY_STATISTICS_INCOMPLETE = QueryStatistics.newBuilder() @@ -190,6 +194,7 @@ public class JobStatisticsTest { .setStartTime(START_TIME) .setBillingTier(BILLING_TIER) .setCacheHit(CACHE_HIT) + .setSearchStats(SEARCH_STATS) .build(); private static final ScriptStackFrame STATEMENT_STACK_FRAME = ScriptStackFrame.newBuilder() @@ -407,6 +412,8 @@ private void compareQueryStatistics(QueryStatistics expected, QueryStatistics va assertEquals(expected.getQueryPlan(), value.getQueryPlan()); assertEquals(expected.getReferencedTables(), value.getReferencedTables()); assertEquals(expected.getSchema(), value.getSchema()); + assertEquals( + expected.getSearchStats().getIndexUsageMode(), value.getSearchStats().getIndexUsageMode()); assertEquals(expected.getStatementType(), value.getStatementType()); assertEquals(expected.getTimeline(), value.getTimeline()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b80fb02dfb0b..97db5fc203d0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -5088,6 +5088,31 @@ public void testQueryJobWithLabels() throws InterruptedException, TimeoutExcepti } } + @Test + public void testQueryJobWithSearchReturnsSearchStatistics() throws InterruptedException { + String tableName = "test_query_job_table"; + String query = + "SELECT * FROM " + + TABLE_ID.getTable() + + " WHERE search(StringField, \"stringValue\")"; + TableId destinationTable = TableId.of(DATASET, tableName); + try { + QueryJobConfiguration configuration = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setDestinationTable(destinationTable) + .build(); + Job remoteJob = bigquery.create(JobInfo.of(configuration)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + JobStatistics.QueryStatistics stats = remoteJob.getStatistics(); + assertNotNull(stats.getSearchStats()); + assertEquals(stats.getSearchStats().getIndexUsageMode(), "UNUSED"); + } finally { + bigquery.delete(destinationTable); + } + } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testQueryJobWithRangePartitioning() throws InterruptedException { From e886f5fa79aee469fe7b8860b5e87951635b6ce7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Jul 2023 18:37:10 +0200 Subject: [PATCH 2463/3441] deps: update github/codeql-action action to v2.20.4 (#2784) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index e4da88c4a006..1d53ee053bcc 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@f6e388ebf0efc915c6c5b165b019ee61a6746a38 # v2.20.1 + uses: github/codeql-action/upload-sarif@489225d82a57396c6f426a40e66d461b16b3461d # v2.20.4 with: sarif_file: results.sarif From dd14eee126f3cb6be7c943157e65acd5d4a088d4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Jul 2023 18:37:57 +0200 Subject: [PATCH 2464/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.0 (#2786) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 974a9eed46ab..d0540ac1af29 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230520-2.0.0 - 3.12.0 + 3.13.0 12.0.0 From fbba253600a0eb2c5eb48b051c7f865ffbf7aaa1 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 16:58:12 +0000 Subject: [PATCH 2465/3441] chore(main): release 2.30.0 (#2774) :robot: I have created a release *beep* *boop* --- ## [2.30.0](https://togithub.com/googleapis/java-bigquery/compare/v2.29.0...v2.30.0) (2023-07-17) ### Features * Add missing storage related fields to Table, TableInfo and StandardTableDefinition ([#2673](https://togithub.com/googleapis/java-bigquery/issues/2673)) ([e3003f4](https://togithub.com/googleapis/java-bigquery/commit/e3003f48df9cca2bd549d893ffef3bb198a3b2aa)) * Add support for Search statistics ([#2787](https://togithub.com/googleapis/java-bigquery/issues/2787)) ([344f695](https://togithub.com/googleapis/java-bigquery/commit/344f695e319470acf350ebdd56d643c03704ea1f)) ### Dependencies * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.22.0 ([#2777](https://togithub.com/googleapis/java-bigquery/issues/2777)) ([078f244](https://togithub.com/googleapis/java-bigquery/commit/078f244572db7484471d2c55a0db4533de0d1dc7)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.26.0 ([#2778](https://togithub.com/googleapis/java-bigquery/issues/2778)) ([2ee52c9](https://togithub.com/googleapis/java-bigquery/commit/2ee52c934d253d29c16b25d498ebe8e968cda481)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.0 ([#2786](https://togithub.com/googleapis/java-bigquery/issues/2786)) ([dd14eee](https://togithub.com/googleapis/java-bigquery/commit/dd14eee126f3cb6be7c943157e65acd5d4a088d4)) * Update github/codeql-action action to v2.20.1 ([#2766](https://togithub.com/googleapis/java-bigquery/issues/2766)) ([2014613](https://togithub.com/googleapis/java-bigquery/commit/201461351ac9813f6d11e6f5c3b9ec4dd01c001b)) * Update github/codeql-action action to v2.20.4 ([#2784](https://togithub.com/googleapis/java-bigquery/issues/2784)) ([e886f5f](https://togithub.com/googleapis/java-bigquery/commit/e886f5fa79aee469fe7b8860b5e87951635b6ce7)) * Update ossf/scorecard-action action to v2.2.0 ([#2775](https://togithub.com/googleapis/java-bigquery/issues/2775)) ([688b2a0](https://togithub.com/googleapis/java-bigquery/commit/688b2a0b16b578dc0784094608b35cb3a68f151b)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 18 ++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 25 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ac665809983..8ff8aebbf37b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [2.30.0](https://github.com/googleapis/java-bigquery/compare/v2.29.0...v2.30.0) (2023-07-17) + + +### Features + +* Add missing storage related fields to Table, TableInfo and StandardTableDefinition ([#2673](https://github.com/googleapis/java-bigquery/issues/2673)) ([e3003f4](https://github.com/googleapis/java-bigquery/commit/e3003f48df9cca2bd549d893ffef3bb198a3b2aa)) +* Add support for Search statistics ([#2787](https://github.com/googleapis/java-bigquery/issues/2787)) ([344f695](https://github.com/googleapis/java-bigquery/commit/344f695e319470acf350ebdd56d643c03704ea1f)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.22.0 ([#2777](https://github.com/googleapis/java-bigquery/issues/2777)) ([078f244](https://github.com/googleapis/java-bigquery/commit/078f244572db7484471d2c55a0db4533de0d1dc7)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.26.0 ([#2778](https://github.com/googleapis/java-bigquery/issues/2778)) ([2ee52c9](https://github.com/googleapis/java-bigquery/commit/2ee52c934d253d29c16b25d498ebe8e968cda481)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.0 ([#2786](https://github.com/googleapis/java-bigquery/issues/2786)) ([dd14eee](https://github.com/googleapis/java-bigquery/commit/dd14eee126f3cb6be7c943157e65acd5d4a088d4)) +* Update github/codeql-action action to v2.20.1 ([#2766](https://github.com/googleapis/java-bigquery/issues/2766)) ([2014613](https://github.com/googleapis/java-bigquery/commit/201461351ac9813f6d11e6f5c3b9ec4dd01c001b)) +* Update github/codeql-action action to v2.20.4 ([#2784](https://github.com/googleapis/java-bigquery/issues/2784)) ([e886f5f](https://github.com/googleapis/java-bigquery/commit/e886f5fa79aee469fe7b8860b5e87951635b6ce7)) +* Update ossf/scorecard-action action to v2.2.0 ([#2775](https://github.com/googleapis/java-bigquery/issues/2775)) ([688b2a0](https://github.com/googleapis/java-bigquery/commit/688b2a0b16b578dc0784094608b35cb3a68f151b)) + ## [2.29.0](https://github.com/googleapis/java-bigquery/compare/v2.28.0...v2.29.0) (2023-06-23) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b4368fe912ba..48c65dbcedba 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.29.1-SNAPSHOT + 2.30.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 049721806d38..5df9bcc1f027 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.29.1-SNAPSHOT + 2.30.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.29.1-SNAPSHOT + 2.30.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d0540ac1af29..83db76cb9417 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.29.1-SNAPSHOT + 2.30.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.29.1-SNAPSHOT + 2.30.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4c5ed35c23b6..bd7b2f257b02 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.29.1-SNAPSHOT + 2.30.0 diff --git a/versions.txt b/versions.txt index ea803ee5bdad..4c6eda6a002a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.29.0:2.29.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.30.0:2.30.0 \ No newline at end of file From c83ea0d5b51bcb84b40952391315be1b87e677ea Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 17:22:13 +0000 Subject: [PATCH 2466/3441] chore(main): release 2.30.1-SNAPSHOT (#2796) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 48c65dbcedba..1c7041f90db9 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.30.0 + 2.30.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5df9bcc1f027..daed8ee450ff 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.30.0 + 2.30.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.30.0 + 2.30.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 83db76cb9417..39c53a31a458 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.30.0 + 2.30.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.30.0 + 2.30.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bd7b2f257b02..7f94b52c4186 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.30.0 + 2.30.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4c6eda6a002a..3d3faa27f483 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.30.0:2.30.0 \ No newline at end of file +google-cloud-bigquery:2.30.0:2.30.1-SNAPSHOT \ No newline at end of file From 005ee5355e1929d1ef92289de6b355b7d98aac36 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Jul 2023 21:29:26 +0200 Subject: [PATCH 2467/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.23.0 (#2790) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 39c53a31a458..c09b7bad539f 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.22.0 + 2.23.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c2ae4f6562db..07963cbe0768 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.22.0 + 2.23.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7f94b52c4186..1b47b1932b0b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.22.0 + 2.23.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e0a46cc27bdc..24c4b44c8a24 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.22.0 + 2.23.0 test From 940301b327bf941cfab56d68759b6f1494fda22f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Jul 2023 21:29:43 +0200 Subject: [PATCH 2468/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.23.0 (#2791) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c09b7bad539f..b977361aaaa0 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.22.0 + 2.23.0 test From 494cff5421bd1db109bb1af4159a1f37890f045d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Jul 2023 21:30:11 +0200 Subject: [PATCH 2469/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.25.0 (#2795) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 07963cbe0768..1ba89d59d7a6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.24.1 + 2.25.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1b47b1932b0b..550696217b19 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.24.1 + 2.25.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 24c4b44c8a24..a6e26c0e249b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.24.1 + 2.25.0 test From c79106678a0ac62b34605f19ca2baea296ea531c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Jul 2023 21:30:24 +0200 Subject: [PATCH 2470/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.27.0 (#2792) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b977361aaaa0..4a71725b3663 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.26.0 + 1.27.0 pom import From bfe6754a17dcc3ba13a2e0bd35773c4ca76f0320 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Jul 2023 21:32:38 +0200 Subject: [PATCH 2471/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.24.0 (#2793) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4a71725b3663..7a3139f36e36 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.23.0 + 2.24.0 test From f85e57a4ef4db22070a171c8fe4bef4092e902ee Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Jul 2023 21:46:14 +0200 Subject: [PATCH 2472/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.30.0 (#2797) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.29.0` -> `2.30.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigquery/2.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigquery/2.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigquery/2.29.0/2.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigquery/2.29.0/2.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
      googleapis/java-bigquery (com.google.cloud:google-cloud-bigquery) ### [`v2.30.0`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#2300-2023-07-17) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.29.0...v2.30.0) ##### Features - Add missing storage related fields to Table, TableInfo and StandardTableDefinition ([#​2673](https://togithub.com/googleapis/java-bigquery/issues/2673)) ([e3003f4](https://togithub.com/googleapis/java-bigquery/commit/e3003f48df9cca2bd549d893ffef3bb198a3b2aa)) - Add support for Search statistics ([#​2787](https://togithub.com/googleapis/java-bigquery/issues/2787)) ([344f695](https://togithub.com/googleapis/java-bigquery/commit/344f695e319470acf350ebdd56d643c03704ea1f)) ##### Dependencies - Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.22.0 ([#​2777](https://togithub.com/googleapis/java-bigquery/issues/2777)) ([078f244](https://togithub.com/googleapis/java-bigquery/commit/078f244572db7484471d2c55a0db4533de0d1dc7)) - Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.26.0 ([#​2778](https://togithub.com/googleapis/java-bigquery/issues/2778)) ([2ee52c9](https://togithub.com/googleapis/java-bigquery/commit/2ee52c934d253d29c16b25d498ebe8e968cda481)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.0 ([#​2786](https://togithub.com/googleapis/java-bigquery/issues/2786)) ([dd14eee](https://togithub.com/googleapis/java-bigquery/commit/dd14eee126f3cb6be7c943157e65acd5d4a088d4)) - Update github/codeql-action action to v2.20.1 ([#​2766](https://togithub.com/googleapis/java-bigquery/issues/2766)) ([2014613](https://togithub.com/googleapis/java-bigquery/commit/201461351ac9813f6d11e6f5c3b9ec4dd01c001b)) - Update github/codeql-action action to v2.20.4 ([#​2784](https://togithub.com/googleapis/java-bigquery/issues/2784)) ([e886f5f](https://togithub.com/googleapis/java-bigquery/commit/e886f5fa79aee469fe7b8860b5e87951635b6ce7)) - Update ossf/scorecard-action action to v2.2.0 ([#​2775](https://togithub.com/googleapis/java-bigquery/issues/2775)) ([688b2a0](https://togithub.com/googleapis/java-bigquery/commit/688b2a0b16b578dc0784094608b35cb3a68f151b))
      --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 707158574ec0..20b5af17e23e 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.29.0 + 2.30.0 ``` @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.29.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.30.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.29.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.30.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.29.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.30.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 1ba89d59d7a6..d4b485f0bf4b 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.29.0 + 2.30.0 From d7402b3dc6f08651b81c3a993e76af30cc10baf3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jul 2023 19:48:13 +0000 Subject: [PATCH 2473/3441] build(deps): bump cryptography from 39.0.1 to 41.0.2 in /.kokoro (#2789) Bumps [cryptography](https://togithub.com/pyca/cryptography) from 39.0.1 to 41.0.2.
      Changelog

      Sourced from cryptography's changelog.

      41.0.2 - 2023-07-10

      
      * Fixed bugs in creating and parsing SSH certificates where critical options
        with values were handled incorrectly. Certificates are now created correctly
        and parsing accepts correct values as well as the previously generated
        invalid forms with a warning. In the next release, support for parsing these
        invalid forms will be removed.
      

      .. _v41-0-1:

      41.0.1 - 2023-06-01

      • Temporarily allow invalid ECDSA signature algorithm parameters in X.509 certificates, which are generated by older versions of Java.
      • Allow null bytes in pass phrases when serializing private keys.

      .. _v41-0-0:

      41.0.0 - 2023-05-30

      
      * **BACKWARDS INCOMPATIBLE:** Support for OpenSSL less than 1.1.1d has been
        removed.  Users on older version of OpenSSL will need to upgrade.
      * **BACKWARDS INCOMPATIBLE:** Support for Python 3.6 has been removed.
      * **BACKWARDS INCOMPATIBLE:** Dropped support for LibreSSL < 3.6.
      * Updated the minimum supported Rust version (MSRV) to 1.56.0, from 1.48.0.
      * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.1.1.
      * Added support for the :class:`~cryptography.x509.OCSPAcceptableResponses`
        OCSP extension.
      * Added support for the :class:`~cryptography.x509.MSCertificateTemplate`
        proprietary Microsoft certificate extension.
      * Implemented support for equality checks on all asymmetric public key types.
      * Added support for ``aes256-gcm@openssh.com`` encrypted keys in
        :func:`~cryptography.hazmat.primitives.serialization.load_ssh_private_key`.
      * Added support for obtaining X.509 certificate signature algorithm parameters
        (including PSS) via
        :meth:`~cryptography.x509.Certificate.signature_algorithm_parameters`.
      * Support signing :class:`~cryptography.hazmat.primitives.asymmetric.padding.PSS`
        X.509 certificates via the new keyword-only argument ``rsa_padding`` on
        :meth:`~cryptography.x509.CertificateBuilder.sign`.
      * Added support for
        :class:`~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305`
        on BoringSSL.
      

      .. _v40-0-2:

      40.0.2 - 2023-04-14

      ... (truncated)

      Commits

      [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cryptography&package-manager=pip&previous-version=39.0.1&new-version=41.0.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
      Dependabot commands and options
      You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://togithub.com/googleapis/java-bigquery/network/alerts).
      From 46f7fe013a120fa0e91652a14f75c8305bf51b23 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 18 Jul 2023 15:44:54 +0200 Subject: [PATCH 2474/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.18.0 (#2755) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.18.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 20b5af17e23e..2f72429bd532 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.16.0 + 26.18.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index c23c4bd42be1..713d8edaa4f5 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.16.0 + 26.18.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a6e26c0e249b..7b8c2fe8eeac 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.16.0 + 26.18.0 pom import From ce88123032b305c0103a52462143930f6fd0c65d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 18 Jul 2023 19:33:02 +0200 Subject: [PATCH 2475/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.40.1 (#2799) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.40.0 * chore: Manually updating to 2.40.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7a3139f36e36..cecfda78a08a 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.39.1 + 2.40.1 pom import From abc0ddf703245f7da5864c5fccc92382c67c206b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 18 Jul 2023 14:47:06 -0400 Subject: [PATCH 2476/3441] chore(main): release 2.30.1 (#2798) * chore(main): release 2.30.1 * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.40.1 (#2799) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.40.0 * chore: Manually updating to 2.40.1 --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Mend Renovate --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ff8aebbf37b..1b03b37d7185 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.30.1](https://github.com/googleapis/java-bigquery/compare/v2.30.0...v2.30.1) (2023-07-18) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.23.0 ([#2791](https://github.com/googleapis/java-bigquery/issues/2791)) ([940301b](https://github.com/googleapis/java-bigquery/commit/940301b327bf941cfab56d68759b6f1494fda22f)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.27.0 ([#2792](https://github.com/googleapis/java-bigquery/issues/2792)) ([c791066](https://github.com/googleapis/java-bigquery/commit/c79106678a0ac62b34605f19ca2baea296ea531c)) + ## [2.30.0](https://github.com/googleapis/java-bigquery/compare/v2.29.0...v2.30.0) (2023-07-17) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1c7041f90db9..52cba8543e7c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.30.1-SNAPSHOT + 2.30.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index daed8ee450ff..ec846bb21d73 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.30.1-SNAPSHOT + 2.30.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.30.1-SNAPSHOT + 2.30.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index cecfda78a08a..744526dab766 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.30.1-SNAPSHOT + 2.30.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.30.1-SNAPSHOT + 2.30.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 550696217b19..35cde3b51fca 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.30.1-SNAPSHOT + 2.30.1 diff --git a/versions.txt b/versions.txt index 3d3faa27f483..117674a6ed06 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.30.0:2.30.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.30.1:2.30.1 \ No newline at end of file From 67a07ea45c4635a2e9d43220d4bc34780eb512ef Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Mon, 24 Jul 2023 11:24:11 -0400 Subject: [PATCH 2477/3441] feat: adds Exception handling to handle ALREADY EXISTS error (#2788) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: adds Exception handling to handle ALREADy EXISTS error * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: add more conditions * chore: format * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * chore: don't ad extra dependency * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * nit * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++--- .../google/cloud/bigquery/BigQueryImpl.java | 35 ++++++++++++++++--- .../cloud/bigquery/it/ITBigQueryTest.java | 28 +++++++++++++++ 3 files changed, 63 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 2f72429bd532..2fa380598984 100644 --- a/README.md +++ b/README.md @@ -53,20 +53,20 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.18.0') +implementation platform('com.google.cloud:libraries-bom:26.19.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.30.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.30.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.30.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.30.1" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.30.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.30.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index d1bbcb5e2c9f..ef7e8cb8b8dc 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -55,7 +55,11 @@ import java.util.List; import java.util.Map; import java.util.concurrent.Callable; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.checkerframework.checker.nullness.qual.NonNull; +import org.threeten.bp.Instant; +import org.threeten.bp.temporal.ChronoUnit; final class BigQueryImpl extends BaseService implements BigQuery { @@ -422,15 +426,38 @@ public com.google.api.services.bigquery.model.Job call() { } if (!idRandom) { + if (createException instanceof BigQueryException && createException.getCause() != null) { + + /*GoogleJsonResponseException createExceptionCause = + (GoogleJsonResponseException) createException.getCause();*/ + + Pattern pattern = Pattern.compile(".*Already.*Exists:.*Job.*", Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(createException.getCause().getMessage()); + + if (matcher.find()) { + // If the Job ALREADY EXISTS, retrieve it. + Job job = this.getJob(jobInfo.getJobId()); + + long jobCreationTime = job.getStatistics().getCreationTime(); + long jobMinStaleTime = System.currentTimeMillis(); + long jobMaxStaleTime = + Instant.ofEpochMilli(jobMinStaleTime).minus(1, ChronoUnit.DAYS).toEpochMilli(); + + // Only return the job if it has been created in the past 24 hours. + // This is assuming any job older than 24 hours is a valid duplicate JobID + // and not a false positive like b/290419183 + if (jobCreationTime >= jobMaxStaleTime && jobCreationTime <= jobMinStaleTime) { + return job; + } + } + } throw createException; } // If create RPC fails, it's still possible that the job has been successfully - // created, - // and get might work. + // created, and get might work. // We can only do this if we randomly generated the ID. Otherwise we might - // mistakenly - // fetch a job created by someone else. + // mistakenly fetch a job created by someone else. Job job; try { job = getJob(finalJobId[0]); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 97db5fc203d0..8c5742e57ddb 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -83,6 +83,7 @@ import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; import com.google.cloud.bigquery.InsertAllResponse; import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobConfiguration; import com.google.cloud.bigquery.JobId; import com.google.cloud.bigquery.JobInfo; import com.google.cloud.bigquery.JobStatistics; @@ -6101,4 +6102,31 @@ public void testForeignKeysUpdate() { bigquery.delete(tableIdPk2); } } + + @Test + public void testAlreadyExistJobExceptionHandling() throws InterruptedException { + String query = + "SELECT TimestampField, StringField, BooleanField FROM " + + DATASET + + "." + + TABLE_ID.getTable(); + JobId jobId = JobId.newBuilder().setRandomJob().build(); + + JobConfiguration queryJobConfiguration = QueryJobConfiguration.newBuilder(query).build(); + // Creating the job with the explicit jobID + bigquery.create(JobInfo.of(jobId, queryJobConfiguration)); + // Calling the query method with the job that has already been created. + // This should throw ALREADY_EXISTS error without the exception handling added + // or if the job is older than 24 hours. + try { + bigquery.query(QueryJobConfiguration.newBuilder(query).build(), jobId); + // Test succeeds if Exception is not thrown and code flow reaches this statement. + assertTrue(true); + } catch (BigQueryException ex) { + // test fails if an exception is thrown + if (ex.getCause() != null && ex.getCause().getMessage().contains("Already Exists: Job")) { + fail("Already exists error should not be thrown"); + } + } + } } From 983811cef9d4ea8078c04dfbb021787b1df6bad8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 24 Jul 2023 17:42:58 +0200 Subject: [PATCH 2478/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.7 (#2804) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.7 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 744526dab766..357cf0f45ea3 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.5.6 + 1.5.7 From 694f7111d7497126d429c5dda17f44f661279582 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 24 Jul 2023 20:48:14 +0200 Subject: [PATCH 2479/3441] deps: update dependency org.junit.vintage:junit-vintage-engine to v5.10.0 (#2808) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.junit.vintage:junit-vintage-engine](https://junit.org/junit5/) ([source](https://togithub.com/junit-team/junit5)) | `5.9.3` -> `5.10.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.junit.vintage:junit-vintage-engine/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.junit.vintage:junit-vintage-engine/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.junit.vintage:junit-vintage-engine/5.9.3/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.junit.vintage:junit-vintage-engine/5.9.3/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 713d8edaa4f5..ba4d6785d4f0 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ org.junit.vintage junit-vintage-engine - 5.9.3 + 5.10.0 test From 145ab78a407181316b7a0b523eed40db6f6054fd Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 24 Jul 2023 21:15:18 +0200 Subject: [PATCH 2480/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.19.0 (#2802) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.19.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 2fa380598984..8e55bbc0e236 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.18.0 + 26.19.0 pom import diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index ba4d6785d4f0..aecdd1fc4083 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.18.0 + 26.19.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 7b8c2fe8eeac..122f020c0cf4 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.18.0 + 26.19.0 pom import From 75e9a740c36ab56f990b3b517dd5f60713ae3f78 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 24 Jul 2023 21:32:23 +0200 Subject: [PATCH 2481/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.30.1 (#2801) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.30.0` -> `2.30.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigquery/2.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigquery/2.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigquery/2.30.0/2.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigquery/2.30.0/2.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
      googleapis/java-bigquery (com.google.cloud:google-cloud-bigquery) ### [`v2.30.1`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#2301-2023-07-18) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.30.0...v2.30.1) ##### Dependencies - Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.23.0 ([#​2791](https://togithub.com/googleapis/java-bigquery/issues/2791)) ([940301b](https://togithub.com/googleapis/java-bigquery/commit/940301b327bf941cfab56d68759b6f1494fda22f)) - Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.27.0 ([#​2792](https://togithub.com/googleapis/java-bigquery/issues/2792)) ([c791066](https://togithub.com/googleapis/java-bigquery/commit/c79106678a0ac62b34605f19ca2baea296ea531c))
      --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8e55bbc0e236..cb57585f86cb 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.30.0 + 2.30.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d4b485f0bf4b..d43ec90424c9 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.30.0 + 2.30.1 From b6600635e01f930fa19769cb2594ef4f43226124 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 24 Jul 2023 21:36:18 +0200 Subject: [PATCH 2482/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.24.0 (#2811) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1](https://togithub.com/googleapis/google-cloud-java) | `2.23.0` -> `2.24.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.23.0/2.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.23.0/2.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 357cf0f45ea3..9cc7df4f0c34 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.23.0 + 2.24.0 test From 1fde4a34bdb437488c0efbc4ac7d6ac972eff6fd Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 24 Jul 2023 21:36:23 +0200 Subject: [PATCH 2483/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.24.0 (#2810) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/google-cloud-java) | `2.23.0` -> `2.24.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigqueryconnection/2.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigqueryconnection/2.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigqueryconnection/2.23.0/2.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigqueryconnection/2.23.0/2.24.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 9cc7df4f0c34..c19a5a65a09b 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.23.0 + 2.24.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d43ec90424c9..abf4a5e16760 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.23.0 + 2.24.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 35cde3b51fca..f75696fd93a3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.23.0 + 2.24.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 122f020c0cf4..4c84ed02d35b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.23.0 + 2.24.0 test From df3cd761b5111bb0f174f691765697aa1bcbebde Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 24 Jul 2023 21:38:17 +0200 Subject: [PATCH 2484/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.1 (#2806) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-dependencies](https://togithub.com/googleapis/sdk-platform-java) | `3.13.0` -> `3.13.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-shared-dependencies/3.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-shared-dependencies/3.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-shared-dependencies/3.13.0/3.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-shared-dependencies/3.13.0/3.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c19a5a65a09b..8f0977b5b3df 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230520-2.0.0 - 3.13.0 + 3.13.1 12.0.0
      From adadabeb76bae710de38d83e5e1f0a689dde41ba Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 20:34:18 +0000 Subject: [PATCH 2485/3441] chore: update requirements.txt to address dependabot security alerts (#1829) (#2809) * chore: update dependencies in requirements.txt to address dependabot security alerts * update dependencies within gcp/templates --------- Co-authored-by: Anthonios Partheniou Source-Link: https://togithub.com/googleapis/synthtool/commit/af76aa51249c5f6d8efb66e8ac390ec651f9f2f6 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:46d2d262cd285c638656c8bde468011b723dc0c7ffd6a5ecc2650fe639c82e8f --- .github/.OwlBot.lock.yaml | 4 +- .kokoro/requirements.txt | 573 ++++++++++++++++++++++---------------- 2 files changed, 332 insertions(+), 245 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 258389d1aa68..d5500ef44246 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:31c8276a1bfb43766597d32645721c029cb94571f1b8d996cb2c290744fe52f9 -# created: 2023-06-27T18:51:58.922150125Z + digest: sha256:46d2d262cd285c638656c8bde468011b723dc0c7ffd6a5ecc2650fe639c82e8f +# created: 2023-07-24T14:21:17.707234503Z diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index c80f0a87cc53..32989051e7f9 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -1,20 +1,20 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.9 # by the following command: # -# pip-compile --allow-unsafe --generate-hashes requirements.in +# pip-compile requirements.in --generate-hashes --upgrade # -attrs==22.1.0 \ - --hash=sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6 \ - --hash=sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c +attrs==23.1.0 \ + --hash=sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04 \ + --hash=sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015 # via gcp-releasetool -cachetools==4.2.4 \ - --hash=sha256:89ea6f1b638d5a73a4f9226be57ac5e4f399d22770b92355f92dcb0f7f001693 \ - --hash=sha256:92971d3cb7d2a97efff7c7bb1657f21a8f5fb309a37530537c71b1774189f2d1 +cachetools==5.3.1 \ + --hash=sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590 \ + --hash=sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b # via google-auth -certifi==2022.12.7 \ - --hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \ - --hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18 +certifi==2023.5.7 \ + --hash=sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7 \ + --hash=sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716 # via requests cffi==1.15.1 \ --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ @@ -82,9 +82,82 @@ cffi==1.15.1 \ --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \ --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0 # via cryptography -charset-normalizer==2.0.12 \ - --hash=sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597 \ - --hash=sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df +charset-normalizer==3.2.0 \ + --hash=sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96 \ + --hash=sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c \ + --hash=sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710 \ + --hash=sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706 \ + --hash=sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020 \ + --hash=sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252 \ + --hash=sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad \ + --hash=sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329 \ + --hash=sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a \ + --hash=sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f \ + --hash=sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6 \ + --hash=sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4 \ + --hash=sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a \ + --hash=sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46 \ + --hash=sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2 \ + --hash=sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23 \ + --hash=sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace \ + --hash=sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd \ + --hash=sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982 \ + --hash=sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10 \ + --hash=sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2 \ + --hash=sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea \ + --hash=sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09 \ + --hash=sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5 \ + --hash=sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149 \ + --hash=sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489 \ + --hash=sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9 \ + --hash=sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80 \ + --hash=sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592 \ + --hash=sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3 \ + --hash=sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6 \ + --hash=sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed \ + --hash=sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c \ + --hash=sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200 \ + --hash=sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a \ + --hash=sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e \ + --hash=sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d \ + --hash=sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6 \ + --hash=sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623 \ + --hash=sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669 \ + --hash=sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3 \ + --hash=sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa \ + --hash=sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9 \ + --hash=sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2 \ + --hash=sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f \ + --hash=sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1 \ + --hash=sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4 \ + --hash=sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a \ + --hash=sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8 \ + --hash=sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3 \ + --hash=sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029 \ + --hash=sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f \ + --hash=sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959 \ + --hash=sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22 \ + --hash=sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7 \ + --hash=sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952 \ + --hash=sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346 \ + --hash=sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e \ + --hash=sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d \ + --hash=sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299 \ + --hash=sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd \ + --hash=sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a \ + --hash=sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3 \ + --hash=sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037 \ + --hash=sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94 \ + --hash=sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c \ + --hash=sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858 \ + --hash=sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a \ + --hash=sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449 \ + --hash=sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c \ + --hash=sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918 \ + --hash=sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1 \ + --hash=sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c \ + --hash=sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac \ + --hash=sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa # via requests click==8.0.4 \ --hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \ @@ -97,121 +170,152 @@ colorlog==6.7.0 \ --hash=sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662 \ --hash=sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5 # via gcp-docuploader -cryptography==39.0.1 \ - --hash=sha256:0f8da300b5c8af9f98111ffd512910bc792b4c77392a9523624680f7956a99d4 \ - --hash=sha256:35f7c7d015d474f4011e859e93e789c87d21f6f4880ebdc29896a60403328f1f \ - --hash=sha256:5aa67414fcdfa22cf052e640cb5ddc461924a045cacf325cd164e65312d99502 \ - --hash=sha256:5d2d8b87a490bfcd407ed9d49093793d0f75198a35e6eb1a923ce1ee86c62b41 \ - --hash=sha256:6687ef6d0a6497e2b58e7c5b852b53f62142cfa7cd1555795758934da363a965 \ - --hash=sha256:6f8ba7f0328b79f08bdacc3e4e66fb4d7aab0c3584e0bd41328dce5262e26b2e \ - --hash=sha256:706843b48f9a3f9b9911979761c91541e3d90db1ca905fd63fee540a217698bc \ - --hash=sha256:807ce09d4434881ca3a7594733669bd834f5b2c6d5c7e36f8c00f691887042ad \ - --hash=sha256:83e17b26de248c33f3acffb922748151d71827d6021d98c70e6c1a25ddd78505 \ - --hash=sha256:96f1157a7c08b5b189b16b47bc9db2332269d6680a196341bf30046330d15388 \ - --hash=sha256:aec5a6c9864be7df2240c382740fcf3b96928c46604eaa7f3091f58b878c0bb6 \ - --hash=sha256:b0afd054cd42f3d213bf82c629efb1ee5f22eba35bf0eec88ea9ea7304f511a2 \ - --hash=sha256:ced4e447ae29ca194449a3f1ce132ded8fcab06971ef5f618605aacaa612beac \ - --hash=sha256:d1f6198ee6d9148405e49887803907fe8962a23e6c6f83ea7d98f1c0de375695 \ - --hash=sha256:e124352fd3db36a9d4a21c1aa27fd5d051e621845cb87fb851c08f4f75ce8be6 \ - --hash=sha256:e422abdec8b5fa8462aa016786680720d78bdce7a30c652b7fadf83a4ba35336 \ - --hash=sha256:ef8b72fa70b348724ff1218267e7f7375b8de4e8194d1636ee60510aae104cd0 \ - --hash=sha256:f0c64d1bd842ca2633e74a1a28033d139368ad959872533b1bab8c80e8240a0c \ - --hash=sha256:f24077a3b5298a5a06a8e0536e3ea9ec60e4c7ac486755e5fb6e6ea9b3500106 \ - --hash=sha256:fdd188c8a6ef8769f148f88f859884507b954cc64db6b52f66ef199bb9ad660a \ - --hash=sha256:fe913f20024eb2cb2f323e42a64bdf2911bb9738a15dba7d3cce48151034e3a8 +cryptography==41.0.2 \ + --hash=sha256:01f1d9e537f9a15b037d5d9ee442b8c22e3ae11ce65ea1f3316a41c78756b711 \ + --hash=sha256:079347de771f9282fbfe0e0236c716686950c19dee1b76240ab09ce1624d76d7 \ + --hash=sha256:182be4171f9332b6741ee818ec27daff9fb00349f706629f5cbf417bd50e66fd \ + --hash=sha256:192255f539d7a89f2102d07d7375b1e0a81f7478925b3bc2e0549ebf739dae0e \ + --hash=sha256:2a034bf7d9ca894720f2ec1d8b7b5832d7e363571828037f9e0c4f18c1b58a58 \ + --hash=sha256:342f3767e25876751e14f8459ad85e77e660537ca0a066e10e75df9c9e9099f0 \ + --hash=sha256:439c3cc4c0d42fa999b83ded80a9a1fb54d53c58d6e59234cfe97f241e6c781d \ + --hash=sha256:49c3222bb8f8e800aead2e376cbef687bc9e3cb9b58b29a261210456a7783d83 \ + --hash=sha256:674b669d5daa64206c38e507808aae49904c988fa0a71c935e7006a3e1e83831 \ + --hash=sha256:7a9a3bced53b7f09da251685224d6a260c3cb291768f54954e28f03ef14e3766 \ + --hash=sha256:7af244b012711a26196450d34f483357e42aeddb04128885d95a69bd8b14b69b \ + --hash=sha256:7d230bf856164de164ecb615ccc14c7fc6de6906ddd5b491f3af90d3514c925c \ + --hash=sha256:84609ade00a6ec59a89729e87a503c6e36af98ddcd566d5f3be52e29ba993182 \ + --hash=sha256:9a6673c1828db6270b76b22cc696f40cde9043eb90373da5c2f8f2158957f42f \ + --hash=sha256:9b6d717393dbae53d4e52684ef4f022444fc1cce3c48c38cb74fca29e1f08eaa \ + --hash=sha256:9c3fe6534d59d071ee82081ca3d71eed3210f76ebd0361798c74abc2bcf347d4 \ + --hash=sha256:a719399b99377b218dac6cf547b6ec54e6ef20207b6165126a280b0ce97e0d2a \ + --hash=sha256:b332cba64d99a70c1e0836902720887fb4529ea49ea7f5462cf6640e095e11d2 \ + --hash=sha256:d124682c7a23c9764e54ca9ab5b308b14b18eba02722b8659fb238546de83a76 \ + --hash=sha256:d73f419a56d74fef257955f51b18d046f3506270a5fd2ac5febbfa259d6c0fa5 \ + --hash=sha256:f0dc40e6f7aa37af01aba07277d3d64d5a03dc66d682097541ec4da03cc140ee \ + --hash=sha256:f14ad275364c8b4e525d018f6716537ae7b6d369c094805cae45300847e0894f \ + --hash=sha256:f772610fe364372de33d76edcd313636a25684edb94cee53fd790195f5989d14 # via # gcp-releasetool # secretstorage -gcp-docuploader==0.6.4 \ - --hash=sha256:01486419e24633af78fd0167db74a2763974765ee8078ca6eb6964d0ebd388af \ - --hash=sha256:70861190c123d907b3b067da896265ead2eeb9263969d6955c9e0bb091b5ccbf +gcp-docuploader==0.6.5 \ + --hash=sha256:30221d4ac3e5a2b9c69aa52fdbef68cc3f27d0e6d0d90e220fc024584b8d2318 \ + --hash=sha256:b7458ef93f605b9d46a4bf3a8dc1755dad1f31d030c8679edf304e343b347eea # via -r requirements.in -gcp-releasetool==1.10.5 \ - --hash=sha256:174b7b102d704b254f2a26a3eda2c684fd3543320ec239baf771542a2e58e109 \ - --hash=sha256:e29d29927fe2ca493105a82958c6873bb2b90d503acac56be2c229e74de0eec9 +gcp-releasetool==1.16.0 \ + --hash=sha256:27bf19d2e87aaa884096ff941aa3c592c482be3d6a2bfe6f06afafa6af2353e3 \ + --hash=sha256:a316b197a543fd036209d0caba7a8eb4d236d8e65381c80cbc6d7efaa7606d63 # via -r requirements.in -google-api-core==2.8.2 \ - --hash=sha256:06f7244c640322b508b125903bb5701bebabce8832f85aba9335ec00b3d02edc \ - --hash=sha256:93c6a91ccac79079ac6bbf8b74ee75db970cc899278b97d53bc012f35908cf50 +google-api-core==2.11.1 \ + --hash=sha256:25d29e05a0058ed5f19c61c0a78b1b53adea4d9364b464d014fbda941f6d1c9a \ + --hash=sha256:d92a5a92dc36dd4f4b9ee4e55528a90e432b059f93aee6ad857f9de8cc7ae94a # via # google-cloud-core # google-cloud-storage -google-auth==2.14.1 \ - --hash=sha256:ccaa901f31ad5cbb562615eb8b664b3dd0bf5404a67618e642307f00613eda4d \ - --hash=sha256:f5d8701633bebc12e0deea4df8abd8aff31c28b355360597f7f2ee60f2e4d016 +google-auth==2.22.0 \ + --hash=sha256:164cba9af4e6e4e40c3a4f90a1a6c12ee56f14c0b4868d1ca91b32826ab334ce \ + --hash=sha256:d61d1b40897407b574da67da1a833bdc10d5a11642566e506565d1b1a46ba873 # via # gcp-releasetool # google-api-core # google-cloud-core # google-cloud-storage -google-cloud-core==2.3.1 \ - --hash=sha256:113ba4f492467d5bd442c8d724c1a25ad7384045c3178369038840ecdd19346c \ - --hash=sha256:34334359cb04187bdc80ddcf613e462dfd7a3aabbc3fe4d118517ab4b9303d53 +google-cloud-core==2.3.3 \ + --hash=sha256:37b80273c8d7eee1ae816b3a20ae43585ea50506cb0e60f3cf5be5f87f1373cb \ + --hash=sha256:fbd11cad3e98a7e5b0343dc07cb1039a5ffd7a5bb96e1f1e27cee4bda4a90863 # via google-cloud-storage -google-cloud-storage==2.0.0 \ - --hash=sha256:a57a15aead0f9dfbd4381f1bfdbe8bf89818a4bd75bab846cafcefb2db846c47 \ - --hash=sha256:ec4be60bb223a3a960f0d01697d849b86d91cad815a84915a32ed3635e93a5e7 +google-cloud-storage==2.10.0 \ + --hash=sha256:934b31ead5f3994e5360f9ff5750982c5b6b11604dc072bc452c25965e076dc7 \ + --hash=sha256:9433cf28801671de1c80434238fb1e7e4a1ba3087470e90f70c928ea77c2b9d7 # via gcp-docuploader -google-crc32c==1.3.0 \ - --hash=sha256:04e7c220798a72fd0f08242bc8d7a05986b2a08a0573396187fd32c1dcdd58b3 \ - --hash=sha256:05340b60bf05b574159e9bd940152a47d38af3fb43803ffe71f11d704b7696a6 \ - --hash=sha256:12674a4c3b56b706153a358eaa1018c4137a5a04635b92b4652440d3d7386206 \ - --hash=sha256:127f9cc3ac41b6a859bd9dc4321097b1a4f6aa7fdf71b4f9227b9e3ebffb4422 \ - --hash=sha256:13af315c3a0eec8bb8b8d80b8b128cb3fcd17d7e4edafc39647846345a3f003a \ - --hash=sha256:1926fd8de0acb9d15ee757175ce7242e235482a783cd4ec711cc999fc103c24e \ - --hash=sha256:226f2f9b8e128a6ca6a9af9b9e8384f7b53a801907425c9a292553a3a7218ce0 \ - --hash=sha256:276de6273eb074a35bc598f8efbc00c7869c5cf2e29c90748fccc8c898c244df \ - --hash=sha256:318f73f5484b5671f0c7f5f63741ab020a599504ed81d209b5c7129ee4667407 \ - --hash=sha256:3bbce1be3687bbfebe29abdb7631b83e6b25da3f4e1856a1611eb21854b689ea \ - --hash=sha256:42ae4781333e331a1743445931b08ebdad73e188fd554259e772556fc4937c48 \ - --hash=sha256:58be56ae0529c664cc04a9c76e68bb92b091e0194d6e3c50bea7e0f266f73713 \ - --hash=sha256:5da2c81575cc3ccf05d9830f9e8d3c70954819ca9a63828210498c0774fda1a3 \ - --hash=sha256:6311853aa2bba4064d0c28ca54e7b50c4d48e3de04f6770f6c60ebda1e975267 \ - --hash=sha256:650e2917660e696041ab3dcd7abac160b4121cd9a484c08406f24c5964099829 \ - --hash=sha256:6a4db36f9721fdf391646685ecffa404eb986cbe007a3289499020daf72e88a2 \ - --hash=sha256:779cbf1ce375b96111db98fca913c1f5ec11b1d870e529b1dc7354b2681a8c3a \ - --hash=sha256:7f6fe42536d9dcd3e2ffb9d3053f5d05221ae3bbcefbe472bdf2c71c793e3183 \ - --hash=sha256:891f712ce54e0d631370e1f4997b3f182f3368179198efc30d477c75d1f44942 \ - --hash=sha256:95c68a4b9b7828ba0428f8f7e3109c5d476ca44996ed9a5f8aac6269296e2d59 \ - --hash=sha256:96a8918a78d5d64e07c8ea4ed2bc44354e3f93f46a4866a40e8db934e4c0d74b \ - --hash=sha256:9c3cf890c3c0ecfe1510a452a165431b5831e24160c5fcf2071f0f85ca5a47cd \ - --hash=sha256:9f58099ad7affc0754ae42e6d87443299f15d739b0ce03c76f515153a5cda06c \ - --hash=sha256:a0b9e622c3b2b8d0ce32f77eba617ab0d6768b82836391e4f8f9e2074582bf02 \ - --hash=sha256:a7f9cbea4245ee36190f85fe1814e2d7b1e5f2186381b082f5d59f99b7f11328 \ - --hash=sha256:bab4aebd525218bab4ee615786c4581952eadc16b1ff031813a2fd51f0cc7b08 \ - --hash=sha256:c124b8c8779bf2d35d9b721e52d4adb41c9bfbde45e6a3f25f0820caa9aba73f \ - --hash=sha256:c9da0a39b53d2fab3e5467329ed50e951eb91386e9d0d5b12daf593973c3b168 \ - --hash=sha256:ca60076c388728d3b6ac3846842474f4250c91efbfe5afa872d3ffd69dd4b318 \ - --hash=sha256:cb6994fff247987c66a8a4e550ef374671c2b82e3c0d2115e689d21e511a652d \ - --hash=sha256:d1c1d6236feab51200272d79b3d3e0f12cf2cbb12b208c835b175a21efdb0a73 \ - --hash=sha256:dd7760a88a8d3d705ff562aa93f8445ead54f58fd482e4f9e2bafb7e177375d4 \ - --hash=sha256:dda4d8a3bb0b50f540f6ff4b6033f3a74e8bf0bd5320b70fab2c03e512a62812 \ - --hash=sha256:e0f1ff55dde0ebcfbef027edc21f71c205845585fffe30d4ec4979416613e9b3 \ - --hash=sha256:e7a539b9be7b9c00f11ef16b55486141bc2cdb0c54762f84e3c6fc091917436d \ - --hash=sha256:eb0b14523758e37802f27b7f8cd973f5f3d33be7613952c0df904b68c4842f0e \ - --hash=sha256:ed447680ff21c14aaceb6a9f99a5f639f583ccfe4ce1a5e1d48eb41c3d6b3217 \ - --hash=sha256:f52a4ad2568314ee713715b1e2d79ab55fab11e8b304fd1462ff5cccf4264b3e \ - --hash=sha256:fbd60c6aaa07c31d7754edbc2334aef50601b7f1ada67a96eb1eb57c7c72378f \ - --hash=sha256:fc28e0db232c62ca0c3600884933178f0825c99be4474cdd645e378a10588125 \ - --hash=sha256:fe31de3002e7b08eb20823b3735b97c86c5926dd0581c7710a680b418a8709d4 \ - --hash=sha256:fec221a051150eeddfdfcff162e6db92c65ecf46cb0f7bb1bf812a1520ec026b \ - --hash=sha256:ff71073ebf0e42258a42a0b34f2c09ec384977e7f6808999102eedd5b49920e3 +google-crc32c==1.5.0 \ + --hash=sha256:024894d9d3cfbc5943f8f230e23950cd4906b2fe004c72e29b209420a1e6b05a \ + --hash=sha256:02c65b9817512edc6a4ae7c7e987fea799d2e0ee40c53ec573a692bee24de876 \ + --hash=sha256:02ebb8bf46c13e36998aeaad1de9b48f4caf545e91d14041270d9dca767b780c \ + --hash=sha256:07eb3c611ce363c51a933bf6bd7f8e3878a51d124acfc89452a75120bc436289 \ + --hash=sha256:1034d91442ead5a95b5aaef90dbfaca8633b0247d1e41621d1e9f9db88c36298 \ + --hash=sha256:116a7c3c616dd14a3de8c64a965828b197e5f2d121fedd2f8c5585c547e87b02 \ + --hash=sha256:19e0a019d2c4dcc5e598cd4a4bc7b008546b0358bd322537c74ad47a5386884f \ + --hash=sha256:1c7abdac90433b09bad6c43a43af253e688c9cfc1c86d332aed13f9a7c7f65e2 \ + --hash=sha256:1e986b206dae4476f41bcec1faa057851f3889503a70e1bdb2378d406223994a \ + --hash=sha256:272d3892a1e1a2dbc39cc5cde96834c236d5327e2122d3aaa19f6614531bb6eb \ + --hash=sha256:278d2ed7c16cfc075c91378c4f47924c0625f5fc84b2d50d921b18b7975bd210 \ + --hash=sha256:2ad40e31093a4af319dadf503b2467ccdc8f67c72e4bcba97f8c10cb078207b5 \ + --hash=sha256:2e920d506ec85eb4ba50cd4228c2bec05642894d4c73c59b3a2fe20346bd00ee \ + --hash=sha256:3359fc442a743e870f4588fcf5dcbc1bf929df1fad8fb9905cd94e5edb02e84c \ + --hash=sha256:37933ec6e693e51a5b07505bd05de57eee12f3e8c32b07da7e73669398e6630a \ + --hash=sha256:398af5e3ba9cf768787eef45c803ff9614cc3e22a5b2f7d7ae116df8b11e3314 \ + --hash=sha256:3b747a674c20a67343cb61d43fdd9207ce5da6a99f629c6e2541aa0e89215bcd \ + --hash=sha256:461665ff58895f508e2866824a47bdee72497b091c730071f2b7575d5762ab65 \ + --hash=sha256:4c6fdd4fccbec90cc8a01fc00773fcd5fa28db683c116ee3cb35cd5da9ef6c37 \ + --hash=sha256:5829b792bf5822fd0a6f6eb34c5f81dd074f01d570ed7f36aa101d6fc7a0a6e4 \ + --hash=sha256:596d1f98fc70232fcb6590c439f43b350cb762fb5d61ce7b0e9db4539654cc13 \ + --hash=sha256:5ae44e10a8e3407dbe138984f21e536583f2bba1be9491239f942c2464ac0894 \ + --hash=sha256:635f5d4dd18758a1fbd1049a8e8d2fee4ffed124462d837d1a02a0e009c3ab31 \ + --hash=sha256:64e52e2b3970bd891309c113b54cf0e4384762c934d5ae56e283f9a0afcd953e \ + --hash=sha256:66741ef4ee08ea0b2cc3c86916ab66b6aef03768525627fd6a1b34968b4e3709 \ + --hash=sha256:67b741654b851abafb7bc625b6d1cdd520a379074e64b6a128e3b688c3c04740 \ + --hash=sha256:6ac08d24c1f16bd2bf5eca8eaf8304812f44af5cfe5062006ec676e7e1d50afc \ + --hash=sha256:6f998db4e71b645350b9ac28a2167e6632c239963ca9da411523bb439c5c514d \ + --hash=sha256:72218785ce41b9cfd2fc1d6a017dc1ff7acfc4c17d01053265c41a2c0cc39b8c \ + --hash=sha256:74dea7751d98034887dbd821b7aae3e1d36eda111d6ca36c206c44478035709c \ + --hash=sha256:759ce4851a4bb15ecabae28f4d2e18983c244eddd767f560165563bf9aefbc8d \ + --hash=sha256:77e2fd3057c9d78e225fa0a2160f96b64a824de17840351b26825b0848022906 \ + --hash=sha256:7c074fece789b5034b9b1404a1f8208fc2d4c6ce9decdd16e8220c5a793e6f61 \ + --hash=sha256:7c42c70cd1d362284289c6273adda4c6af8039a8ae12dc451dcd61cdabb8ab57 \ + --hash=sha256:7f57f14606cd1dd0f0de396e1e53824c371e9544a822648cd76c034d209b559c \ + --hash=sha256:83c681c526a3439b5cf94f7420471705bbf96262f49a6fe546a6db5f687a3d4a \ + --hash=sha256:8485b340a6a9e76c62a7dce3c98e5f102c9219f4cfbf896a00cf48caf078d438 \ + --hash=sha256:84e6e8cd997930fc66d5bb4fde61e2b62ba19d62b7abd7a69920406f9ecca946 \ + --hash=sha256:89284716bc6a5a415d4eaa11b1726d2d60a0cd12aadf5439828353662ede9dd7 \ + --hash=sha256:8b87e1a59c38f275c0e3676fc2ab6d59eccecfd460be267ac360cc31f7bcde96 \ + --hash=sha256:8f24ed114432de109aa9fd317278518a5af2d31ac2ea6b952b2f7782b43da091 \ + --hash=sha256:98cb4d057f285bd80d8778ebc4fde6b4d509ac3f331758fb1528b733215443ae \ + --hash=sha256:998679bf62b7fb599d2878aa3ed06b9ce688b8974893e7223c60db155f26bd8d \ + --hash=sha256:9ba053c5f50430a3fcfd36f75aff9caeba0440b2d076afdb79a318d6ca245f88 \ + --hash=sha256:9c99616c853bb585301df6de07ca2cadad344fd1ada6d62bb30aec05219c45d2 \ + --hash=sha256:a1fd716e7a01f8e717490fbe2e431d2905ab8aa598b9b12f8d10abebb36b04dd \ + --hash=sha256:a2355cba1f4ad8b6988a4ca3feed5bff33f6af2d7f134852cf279c2aebfde541 \ + --hash=sha256:b1f8133c9a275df5613a451e73f36c2aea4fe13c5c8997e22cf355ebd7bd0728 \ + --hash=sha256:b8667b48e7a7ef66afba2c81e1094ef526388d35b873966d8a9a447974ed9178 \ + --hash=sha256:ba1eb1843304b1e5537e1fca632fa894d6f6deca8d6389636ee5b4797affb968 \ + --hash=sha256:be82c3c8cfb15b30f36768797a640e800513793d6ae1724aaaafe5bf86f8f346 \ + --hash=sha256:c02ec1c5856179f171e032a31d6f8bf84e5a75c45c33b2e20a3de353b266ebd8 \ + --hash=sha256:c672d99a345849301784604bfeaeba4db0c7aae50b95be04dd651fd2a7310b93 \ + --hash=sha256:c6c777a480337ac14f38564ac88ae82d4cd238bf293f0a22295b66eb89ffced7 \ + --hash=sha256:cae0274952c079886567f3f4f685bcaf5708f0a23a5f5216fdab71f81a6c0273 \ + --hash=sha256:cd67cf24a553339d5062eff51013780a00d6f97a39ca062781d06b3a73b15462 \ + --hash=sha256:d3515f198eaa2f0ed49f8819d5732d70698c3fa37384146079b3799b97667a94 \ + --hash=sha256:d5280312b9af0976231f9e317c20e4a61cd2f9629b7bfea6a693d1878a264ebd \ + --hash=sha256:de06adc872bcd8c2a4e0dc51250e9e65ef2ca91be023b9d13ebd67c2ba552e1e \ + --hash=sha256:e1674e4307fa3024fc897ca774e9c7562c957af85df55efe2988ed9056dc4e57 \ + --hash=sha256:e2096eddb4e7c7bdae4bd69ad364e55e07b8316653234a56552d9c988bd2d61b \ + --hash=sha256:e560628513ed34759456a416bf86b54b2476c59144a9138165c9a1575801d0d9 \ + --hash=sha256:edfedb64740750e1a3b16152620220f51d58ff1b4abceb339ca92e934775c27a \ + --hash=sha256:f13cae8cc389a440def0c8c52057f37359014ccbc9dc1f0827936bcd367c6100 \ + --hash=sha256:f314013e7dcd5cf45ab1945d92e713eec788166262ae8deb2cfacd53def27325 \ + --hash=sha256:f583edb943cf2e09c60441b910d6a20b4d9d626c75a36c8fcac01a6c96c01183 \ + --hash=sha256:fd8536e902db7e365f49e7d9029283403974ccf29b13fc7028b97e2295b33556 \ + --hash=sha256:fe70e325aa68fa4b5edf7d1a4b6f691eb04bbccac0ace68e34820d283b5f80d4 # via google-resumable-media -google-resumable-media==2.3.3 \ - --hash=sha256:27c52620bd364d1c8116eaac4ea2afcbfb81ae9139fb3199652fcac1724bfb6c \ - --hash=sha256:5b52774ea7a829a8cdaa8bd2d4c3d4bc660c91b30857ab2668d0eb830f4ea8c5 +google-resumable-media==2.5.0 \ + --hash=sha256:218931e8e2b2a73a58eb354a288e03a0fd5fb1c4583261ac6e4c078666468c93 \ + --hash=sha256:da1bd943e2e114a56d85d6848497ebf9be6a14d3db23e9fc57581e7c3e8170ec # via google-cloud-storage -googleapis-common-protos==1.56.3 \ - --hash=sha256:6f1369b58ed6cf3a4b7054a44ebe8d03b29c309257583a2bbdc064cd1e4a1442 \ - --hash=sha256:87955d7b3a73e6e803f2572a33179de23989ebba725e05ea42f24838b792e461 +googleapis-common-protos==1.59.1 \ + --hash=sha256:0cbedb6fb68f1c07e18eb4c48256320777707e7d0c55063ae56c15db3224a61e \ + --hash=sha256:b35d530fe825fb4227857bc47ad84c33c809ac96f312e13182bdeaa2abe1178a # via google-api-core idna==3.4 \ --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 # via requests -importlib-metadata==4.8.3 \ - --hash=sha256:65a9576a5b2d58ca44d133c42a241905cc45e34d2c06fd5ba2bafa221e5d7b5e \ - --hash=sha256:766abffff765960fcc18003801f7044eb6755ffae4521c8e8ce8e83b9c9b0668 +importlib-metadata==6.8.0 \ + --hash=sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb \ + --hash=sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743 + # via keyring +jaraco-classes==3.3.0 \ + --hash=sha256:10afa92b6743f25c0cf5f37c6bb6e18e2c5bb84a16527ccfc0040ea377e7aaeb \ + --hash=sha256:c063dd08e89217cee02c8d5e5ec560f2c8ce6cdc2fcdc2e68f7b2e5547ed3621 # via keyring jeepney==0.8.0 \ --hash=sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806 \ @@ -219,139 +323,119 @@ jeepney==0.8.0 \ # via # keyring # secretstorage -jinja2==3.0.3 \ - --hash=sha256:077ce6014f7b40d03b47d1f1ca4b0fc8328a692bd284016f806ed0eaca390ad8 \ - --hash=sha256:611bb273cd68f3b993fabdc4064fc858c5b47a973cb5aa7999ec1ba405c87cd7 +jinja2==3.1.2 \ + --hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \ + --hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61 # via gcp-releasetool -keyring==23.4.1 \ - --hash=sha256:17e49fb0d6883c2b4445359434dba95aad84aabb29bbff044ad0ed7100232eca \ - --hash=sha256:89cbd74d4683ed164c8082fb38619341097741323b3786905c6dac04d6915a55 +keyring==24.2.0 \ + --hash=sha256:4901caaf597bfd3bbd78c9a0c7c4c29fcd8310dab2cffefe749e916b6527acd6 \ + --hash=sha256:ca0746a19ec421219f4d713f848fa297a661a8a8c1504867e55bfb5e09091509 # via gcp-releasetool -markupsafe==2.0.1 \ - --hash=sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298 \ - --hash=sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64 \ - --hash=sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b \ - --hash=sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194 \ - --hash=sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567 \ - --hash=sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff \ - --hash=sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724 \ - --hash=sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74 \ - --hash=sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646 \ - --hash=sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35 \ - --hash=sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6 \ - --hash=sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a \ - --hash=sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6 \ - --hash=sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad \ - --hash=sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26 \ - --hash=sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38 \ - --hash=sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac \ - --hash=sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7 \ - --hash=sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6 \ - --hash=sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047 \ - --hash=sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75 \ - --hash=sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f \ - --hash=sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b \ - --hash=sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135 \ - --hash=sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8 \ - --hash=sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a \ - --hash=sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a \ - --hash=sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1 \ - --hash=sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9 \ - --hash=sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864 \ - --hash=sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914 \ - --hash=sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee \ - --hash=sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f \ - --hash=sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18 \ - --hash=sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8 \ - --hash=sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2 \ - --hash=sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d \ - --hash=sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b \ - --hash=sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b \ - --hash=sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86 \ - --hash=sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6 \ - --hash=sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f \ - --hash=sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb \ - --hash=sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833 \ - --hash=sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28 \ - --hash=sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e \ - --hash=sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415 \ - --hash=sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902 \ - --hash=sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f \ - --hash=sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d \ - --hash=sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9 \ - --hash=sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d \ - --hash=sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145 \ - --hash=sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066 \ - --hash=sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c \ - --hash=sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1 \ - --hash=sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a \ - --hash=sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207 \ - --hash=sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f \ - --hash=sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53 \ - --hash=sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd \ - --hash=sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134 \ - --hash=sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85 \ - --hash=sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9 \ - --hash=sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5 \ - --hash=sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94 \ - --hash=sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509 \ - --hash=sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51 \ - --hash=sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872 +markupsafe==2.1.3 \ + --hash=sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e \ + --hash=sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e \ + --hash=sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431 \ + --hash=sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686 \ + --hash=sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559 \ + --hash=sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc \ + --hash=sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c \ + --hash=sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0 \ + --hash=sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4 \ + --hash=sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9 \ + --hash=sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575 \ + --hash=sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba \ + --hash=sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d \ + --hash=sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3 \ + --hash=sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00 \ + --hash=sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155 \ + --hash=sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac \ + --hash=sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52 \ + --hash=sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f \ + --hash=sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8 \ + --hash=sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b \ + --hash=sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24 \ + --hash=sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea \ + --hash=sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198 \ + --hash=sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0 \ + --hash=sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee \ + --hash=sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be \ + --hash=sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2 \ + --hash=sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707 \ + --hash=sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6 \ + --hash=sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58 \ + --hash=sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779 \ + --hash=sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636 \ + --hash=sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c \ + --hash=sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad \ + --hash=sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee \ + --hash=sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc \ + --hash=sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2 \ + --hash=sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48 \ + --hash=sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7 \ + --hash=sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e \ + --hash=sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b \ + --hash=sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa \ + --hash=sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5 \ + --hash=sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e \ + --hash=sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb \ + --hash=sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9 \ + --hash=sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57 \ + --hash=sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc \ + --hash=sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2 # via jinja2 -packaging==21.3 \ - --hash=sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb \ - --hash=sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522 +more-itertools==9.1.0 \ + --hash=sha256:cabaa341ad0389ea83c17a94566a53ae4c9d07349861ecb14dc6d0345cf9ac5d \ + --hash=sha256:d2bc7f02446e86a68911e58ded76d6561eea00cddfb2a91e7019bbb586c799f3 + # via jaraco-classes +packaging==23.1 \ + --hash=sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61 \ + --hash=sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f # via gcp-releasetool -protobuf==3.20.2 \ - --hash=sha256:03d76b7bd42ac4a6e109742a4edf81ffe26ffd87c5993126d894fe48a120396a \ - --hash=sha256:09e25909c4297d71d97612f04f41cea8fa8510096864f2835ad2f3b3df5a5559 \ - --hash=sha256:18e34a10ae10d458b027d7638a599c964b030c1739ebd035a1dfc0e22baa3bfe \ - --hash=sha256:291fb4307094bf5ccc29f424b42268640e00d5240bf0d9b86bf3079f7576474d \ - --hash=sha256:2c0b040d0b5d5d207936ca2d02f00f765906622c07d3fa19c23a16a8ca71873f \ - --hash=sha256:384164994727f274cc34b8abd41a9e7e0562801361ee77437099ff6dfedd024b \ - --hash=sha256:3cb608e5a0eb61b8e00fe641d9f0282cd0eedb603be372f91f163cbfbca0ded0 \ - --hash=sha256:5d9402bf27d11e37801d1743eada54372f986a372ec9679673bfcc5c60441151 \ - --hash=sha256:712dca319eee507a1e7df3591e639a2b112a2f4a62d40fe7832a16fd19151750 \ - --hash=sha256:7a5037af4e76c975b88c3becdf53922b5ffa3f2cddf657574a4920a3b33b80f3 \ - --hash=sha256:8228e56a865c27163d5d1d1771d94b98194aa6917bcfb6ce139cbfa8e3c27334 \ - --hash=sha256:84a1544252a933ef07bb0b5ef13afe7c36232a774affa673fc3636f7cee1db6c \ - --hash=sha256:84fe5953b18a383fd4495d375fe16e1e55e0a3afe7b4f7b4d01a3a0649fcda9d \ - --hash=sha256:9c673c8bfdf52f903081816b9e0e612186684f4eb4c17eeb729133022d6032e3 \ - --hash=sha256:a9e5ae5a8e8985c67e8944c23035a0dff2c26b0f5070b2f55b217a1c33bbe8b1 \ - --hash=sha256:b4fdb29c5a7406e3f7ef176b2a7079baa68b5b854f364c21abe327bbeec01cdb \ - --hash=sha256:c184485e0dfba4dfd451c3bd348c2e685d6523543a0f91b9fd4ae90eb09e8422 \ - --hash=sha256:c9cdf251c582c16fd6a9f5e95836c90828d51b0069ad22f463761d27c6c19019 \ - --hash=sha256:e39cf61bb8582bda88cdfebc0db163b774e7e03364bbf9ce1ead13863e81e359 \ - --hash=sha256:e8fbc522303e09036c752a0afcc5c0603e917222d8bedc02813fd73b4b4ed804 \ - --hash=sha256:f34464ab1207114e73bba0794d1257c150a2b89b7a9faf504e00af7c9fd58978 \ - --hash=sha256:f52dabc96ca99ebd2169dadbe018824ebda08a795c7684a0b7d203a290f3adb0 +protobuf==3.20.3 \ + --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ + --hash=sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c \ + --hash=sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2 \ + --hash=sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b \ + --hash=sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050 \ + --hash=sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9 \ + --hash=sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7 \ + --hash=sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454 \ + --hash=sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480 \ + --hash=sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469 \ + --hash=sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c \ + --hash=sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e \ + --hash=sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db \ + --hash=sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905 \ + --hash=sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b \ + --hash=sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86 \ + --hash=sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4 \ + --hash=sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402 \ + --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ + --hash=sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4 \ + --hash=sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99 \ + --hash=sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee # via # gcp-docuploader # gcp-releasetool # google-api-core - # google-cloud-storage -pyasn1==0.4.8 \ - --hash=sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d \ - --hash=sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba +pyasn1==0.5.0 \ + --hash=sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57 \ + --hash=sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde # via # pyasn1-modules # rsa -pyasn1-modules==0.2.8 \ - --hash=sha256:905f84c712230b2c592c19470d3ca8d552de726050d1d1716282a1f6146be65e \ - --hash=sha256:a50b808ffeb97cb3601dd25981f6b016cbb3d31fbf57a8b8a87428e6158d0c74 +pyasn1-modules==0.3.0 \ + --hash=sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c \ + --hash=sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d # via google-auth pycparser==2.21 \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 # via cffi -pyjwt==2.4.0 \ - --hash=sha256:72d1d253f32dbd4f5c88eaf1fdc62f3a19f676ccbadb9dbc5d07e951b2b26daf \ - --hash=sha256:d42908208c699b3b973cbeb01a969ba6a96c821eefb1c5bfe4c390c01d67abba +pyjwt==2.7.0 \ + --hash=sha256:ba2b425b15ad5ef12f200dc67dd56af4e26de2331f965c5439994dad075876e1 \ + --hash=sha256:bd6ca4a3c4285c1a2d4349e5a035fdf8fb94e04ccd0fcbe6ba289dae9cc3e074 # via gcp-releasetool -pyparsing==3.0.9 \ - --hash=sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb \ - --hash=sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc - # via packaging pyperclip==1.8.2 \ --hash=sha256:105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57 # via gcp-releasetool @@ -359,9 +443,9 @@ python-dateutil==2.8.2 \ --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 # via gcp-releasetool -requests==2.27.1 \ - --hash=sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61 \ - --hash=sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d +requests==2.31.0 \ + --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ + --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 # via # gcp-releasetool # google-api-core @@ -374,10 +458,6 @@ secretstorage==3.3.3 \ --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \ --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 # via keyring -setuptools==67.3.2 \ - --hash=sha256:95f00380ef2ffa41d9bba85d95b27689d923c93dfbafed4aecd7cf988a25e012 \ - --hash=sha256:bb6d8e508de562768f2027902929f8523932fcd1fb784e6d573d2cafac995a48 - # via -r requirements.in six==1.16.0 \ --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 @@ -385,19 +465,26 @@ six==1.16.0 \ # gcp-docuploader # google-auth # python-dateutil -typing-extensions==4.4.0 \ - --hash=sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa \ - --hash=sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e +typing-extensions==4.7.1 \ + --hash=sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36 \ + --hash=sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2 # via -r requirements.in -urllib3==1.26.12 \ - --hash=sha256:3fa96cf423e6987997fc326ae8df396db2a8b7c667747d47ddd8ecba91f4a74e \ - --hash=sha256:b930dd878d5a8afb066a637fbb35144fe7901e3b209d1cd4f524bd0e9deee997 - # via requests -wheel==0.38.4 \ - --hash=sha256:965f5259b566725405b05e7cf774052044b1ed30119b5d586b2703aafe8719ac \ - --hash=sha256:b60533f3f5d530e971d6737ca6d58681ee434818fab630c83a734bb10c083ce8 +urllib3==1.26.16 \ + --hash=sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f \ + --hash=sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14 + # via + # google-auth + # requests +wheel==0.40.0 \ + --hash=sha256:cd1196f3faee2b31968d626e1731c94f99cbdb67cf5a46e4f5656cbee7738873 \ + --hash=sha256:d236b20e7cb522daf2390fa84c55eea81c5c30190f90f29ae2ca1ad8355bf247 # via -r requirements.in -zipp==3.6.0 \ - --hash=sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832 \ - --hash=sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc +zipp==3.16.1 \ + --hash=sha256:0b37c326d826d5ca35f2b9685cd750292740774ef16190008b00a0227c256fe0 \ + --hash=sha256:857b158da2cbf427b376da1c24fd11faecbac5a4ac7523c3607f8a01f94c2ec0 # via importlib-metadata + +# WARNING: The following packages were not pinned, but pip requires them to be +# pinned when the requirements file includes hashes and the requirement is not +# satisfied by a package already installed. Consider using the --allow-unsafe flag. +# setuptools From f92bee558f6de070fb9f525bb47a824dc2c53e07 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 24 Jul 2023 22:46:18 +0200 Subject: [PATCH 2486/3441] deps: update arrow.version to v12.0.1 (#2750) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.arrow:arrow-memory-netty](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `12.0.0` -> `12.0.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.arrow:arrow-memory-netty/12.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.apache.arrow:arrow-memory-netty/12.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.apache.arrow:arrow-memory-netty/12.0.0/12.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.arrow:arrow-memory-netty/12.0.0/12.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [org.apache.arrow:arrow-memory-core](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `12.0.0` -> `12.0.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.arrow:arrow-memory-core/12.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.apache.arrow:arrow-memory-core/12.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.apache.arrow:arrow-memory-core/12.0.0/12.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.arrow:arrow-memory-core/12.0.0/12.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [org.apache.arrow:arrow-vector](https://arrow.apache.org/) ([source](https://togithub.com/apache/arrow)) | `12.0.0` -> `12.0.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.apache.arrow:arrow-vector/12.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.apache.arrow:arrow-vector/12.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.apache.arrow:arrow-vector/12.0.0/12.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.apache.arrow:arrow-vector/12.0.0/12.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8f0977b5b3df..64f02e7e5282 100644 --- a/pom.xml +++ b/pom.xml @@ -56,7 +56,7 @@ google-cloud-bigquery-parent v2-rev20230520-2.0.0 3.13.1 - 12.0.0 + 12.0.1
      From d2de9e3c674a9b962c10bd004576c9ce839bb455 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 24 Jul 2023 23:18:56 +0200 Subject: [PATCH 2487/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.25.0 (#2813) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 64f02e7e5282..b569b5dcc8ad 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.24.0 + 2.25.0 test From 921716d54ea34f1914d16f7774124175be488087 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 24 Jul 2023 23:19:13 +0200 Subject: [PATCH 2488/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.28.0 (#2812) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b569b5dcc8ad..faed9d33bb89 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.27.0 + 1.28.0 pom import From 4d23c4093a8737c4f9337880d7929ab6324083d0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 25 Jul 2023 16:02:20 +0200 Subject: [PATCH 2489/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.41.0 (#2814) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index faed9d33bb89..4d5b1cca8f7e 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.40.1 + 2.41.0 pom import From c6c536c618908425f288fa0e6f516df2cc6a4b97 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 25 Jul 2023 16:02:56 +0200 Subject: [PATCH 2490/3441] deps: update github/codeql-action action to v2.21.0 (#2803) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.21.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 1d53ee053bcc..3e529afd101a 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@489225d82a57396c6f426a40e66d461b16b3461d # v2.20.4 + uses: github/codeql-action/upload-sarif@1813ca74c3faaa3a2da2070b9b8a0b3e7373a0d8 # v2.21.0 with: sarif_file: results.sarif From c0b01e994c1b7f2c65e6093646849c9fc59bd720 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 25 Jul 2023 15:12:13 +0000 Subject: [PATCH 2491/3441] chore(main): release 2.30.2-SNAPSHOT (#2800) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 52cba8543e7c..3202012d7fc0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.30.1 + 2.30.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ec846bb21d73..6ed268cfe54a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.30.1 + 2.30.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.30.1 + 2.30.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4d5b1cca8f7e..699eef3d5299 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.30.1 + 2.30.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.30.1 + 2.30.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f75696fd93a3..9dd5e8071210 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.30.1 + 2.30.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 117674a6ed06..45991e09dd42 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.30.1:2.30.1 \ No newline at end of file +google-cloud-bigquery:2.30.1:2.30.2-SNAPSHOT \ No newline at end of file From 3092c244ccb72ecee21bb4bb3b466255a1b4f21a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 25 Jul 2023 15:54:15 +0000 Subject: [PATCH 2492/3441] chore(main): release 2.31.0 (#2815) :robot: I have created a release *beep* *boop* --- ## [2.31.0](https://togithub.com/googleapis/java-bigquery/compare/v2.30.1...v2.31.0) (2023-07-25) ### Features * Adds Exception handling to handle ALREADY EXISTS error ([#2788](https://togithub.com/googleapis/java-bigquery/issues/2788)) ([67a07ea](https://togithub.com/googleapis/java-bigquery/commit/67a07ea45c4635a2e9d43220d4bc34780eb512ef)) ### Dependencies * Update arrow.version to v12.0.1 ([#2750](https://togithub.com/googleapis/java-bigquery/issues/2750)) ([f92bee5](https://togithub.com/googleapis/java-bigquery/commit/f92bee558f6de070fb9f525bb47a824dc2c53e07)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.24.0 ([#2811](https://togithub.com/googleapis/java-bigquery/issues/2811)) ([b660063](https://togithub.com/googleapis/java-bigquery/commit/b6600635e01f930fa19769cb2594ef4f43226124)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.28.0 ([#2812](https://togithub.com/googleapis/java-bigquery/issues/2812)) ([921716d](https://togithub.com/googleapis/java-bigquery/commit/921716d54ea34f1914d16f7774124175be488087)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.1 ([#2806](https://togithub.com/googleapis/java-bigquery/issues/2806)) ([df3cd76](https://togithub.com/googleapis/java-bigquery/commit/df3cd761b5111bb0f174f691765697aa1bcbebde)) * Update dependency org.junit.vintage:junit-vintage-engine to v5.10.0 ([#2808](https://togithub.com/googleapis/java-bigquery/issues/2808)) ([694f711](https://togithub.com/googleapis/java-bigquery/commit/694f7111d7497126d429c5dda17f44f661279582)) * Update github/codeql-action action to v2.21.0 ([#2803](https://togithub.com/googleapis/java-bigquery/issues/2803)) ([c6c536c](https://togithub.com/googleapis/java-bigquery/commit/c6c536c618908425f288fa0e6f516df2cc6a4b97)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 17 +++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 24 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b03b37d7185..4cd11b173221 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [2.31.0](https://github.com/googleapis/java-bigquery/compare/v2.30.1...v2.31.0) (2023-07-25) + + +### Features + +* Adds Exception handling to handle ALREADY EXISTS error ([#2788](https://github.com/googleapis/java-bigquery/issues/2788)) ([67a07ea](https://github.com/googleapis/java-bigquery/commit/67a07ea45c4635a2e9d43220d4bc34780eb512ef)) + + +### Dependencies + +* Update arrow.version to v12.0.1 ([#2750](https://github.com/googleapis/java-bigquery/issues/2750)) ([f92bee5](https://github.com/googleapis/java-bigquery/commit/f92bee558f6de070fb9f525bb47a824dc2c53e07)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.24.0 ([#2811](https://github.com/googleapis/java-bigquery/issues/2811)) ([b660063](https://github.com/googleapis/java-bigquery/commit/b6600635e01f930fa19769cb2594ef4f43226124)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.28.0 ([#2812](https://github.com/googleapis/java-bigquery/issues/2812)) ([921716d](https://github.com/googleapis/java-bigquery/commit/921716d54ea34f1914d16f7774124175be488087)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.1 ([#2806](https://github.com/googleapis/java-bigquery/issues/2806)) ([df3cd76](https://github.com/googleapis/java-bigquery/commit/df3cd761b5111bb0f174f691765697aa1bcbebde)) +* Update dependency org.junit.vintage:junit-vintage-engine to v5.10.0 ([#2808](https://github.com/googleapis/java-bigquery/issues/2808)) ([694f711](https://github.com/googleapis/java-bigquery/commit/694f7111d7497126d429c5dda17f44f661279582)) +* Update github/codeql-action action to v2.21.0 ([#2803](https://github.com/googleapis/java-bigquery/issues/2803)) ([c6c536c](https://github.com/googleapis/java-bigquery/commit/c6c536c618908425f288fa0e6f516df2cc6a4b97)) + ## [2.30.1](https://github.com/googleapis/java-bigquery/compare/v2.30.0...v2.30.1) (2023-07-18) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3202012d7fc0..49f85f3fb30b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.30.2-SNAPSHOT + 2.31.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6ed268cfe54a..4805f519d0a8 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.30.2-SNAPSHOT + 2.31.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.30.2-SNAPSHOT + 2.31.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 699eef3d5299..0dbceabc2f8a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.30.2-SNAPSHOT + 2.31.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.30.2-SNAPSHOT + 2.31.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9dd5e8071210..00705cb2d1e9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.30.2-SNAPSHOT + 2.31.0 diff --git a/versions.txt b/versions.txt index 45991e09dd42..ed5fb17ab4bf 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.30.1:2.30.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.31.0:2.31.0 \ No newline at end of file From 846e9779bf00a4493366617f61a44b5356072ebf Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 25 Jul 2023 20:52:14 +0200 Subject: [PATCH 2493/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.31.0 (#2819) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.30.1` -> `2.31.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigquery/2.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigquery/2.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigquery/2.30.1/2.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigquery/2.30.1/2.31.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
      googleapis/java-bigquery (com.google.cloud:google-cloud-bigquery) ### [`v2.31.0`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#2310-2023-07-25) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.30.1...v2.31.0) ##### Features - Adds Exception handling to handle ALREADY EXISTS error ([#​2788](https://togithub.com/googleapis/java-bigquery/issues/2788)) ([67a07ea](https://togithub.com/googleapis/java-bigquery/commit/67a07ea45c4635a2e9d43220d4bc34780eb512ef)) ##### Dependencies - Update arrow.version to v12.0.1 ([#​2750](https://togithub.com/googleapis/java-bigquery/issues/2750)) ([f92bee5](https://togithub.com/googleapis/java-bigquery/commit/f92bee558f6de070fb9f525bb47a824dc2c53e07)) - Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.24.0 ([#​2811](https://togithub.com/googleapis/java-bigquery/issues/2811)) ([b660063](https://togithub.com/googleapis/java-bigquery/commit/b6600635e01f930fa19769cb2594ef4f43226124)) - Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.28.0 ([#​2812](https://togithub.com/googleapis/java-bigquery/issues/2812)) ([921716d](https://togithub.com/googleapis/java-bigquery/commit/921716d54ea34f1914d16f7774124175be488087)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.13.1 ([#​2806](https://togithub.com/googleapis/java-bigquery/issues/2806)) ([df3cd76](https://togithub.com/googleapis/java-bigquery/commit/df3cd761b5111bb0f174f691765697aa1bcbebde)) - Update dependency org.junit.vintage:junit-vintage-engine to v5.10.0 ([#​2808](https://togithub.com/googleapis/java-bigquery/issues/2808)) ([694f711](https://togithub.com/googleapis/java-bigquery/commit/694f7111d7497126d429c5dda17f44f661279582)) - Update github/codeql-action action to v2.21.0 ([#​2803](https://togithub.com/googleapis/java-bigquery/issues/2803)) ([c6c536c](https://togithub.com/googleapis/java-bigquery/commit/c6c536c618908425f288fa0e6f516df2cc6a4b97))
      --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index cb57585f86cb..7e5fdbab768e 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.30.1 + 2.31.0 ``` @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.30.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.31.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.30.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.31.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.30.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.31.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index abf4a5e16760..30790b3d4b63 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.30.1 + 2.31.0 From eb250a87d99aa370fcee9bf1ee15f579dd012ddf Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 25 Jul 2023 20:52:28 +0200 Subject: [PATCH 2494/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.25.1 (#2817) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.25.0` -> `2.25.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigtable/2.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigtable/2.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigtable/2.25.0/2.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigtable/2.25.0/2.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
      googleapis/java-bigtable (com.google.cloud:google-cloud-bigtable) ### [`v2.25.1`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#2251-2023-07-25) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.25.0...v2.25.1) ##### Bug Fixes - Update the readRow attempt timeouts to be inline with unary rpcs instead of scans ([#​1834](https://togithub.com/googleapis/java-bigtable/issues/1834)) ([168c33e](https://togithub.com/googleapis/java-bigtable/commit/168c33e3135755cc5a1105f18bf93ade5e1219dc)) ##### Dependencies - Update dependency org.junit.vintage:junit-vintage-engine to v5.10.0 ([#​1847](https://togithub.com/googleapis/java-bigtable/issues/1847)) ([825faaa](https://togithub.com/googleapis/java-bigtable/commit/825faaad93a5062e6f34ff699cc02701b69e56ab)) - Update shared dependencies ([#​1845](https://togithub.com/googleapis/java-bigtable/issues/1845)) ([88e1892](https://togithub.com/googleapis/java-bigtable/commit/88e18922b4e1da398c51441aff014bca5f3bb746)) - Update the Java code generator (gapic-generator-java) to 2.23.1 ([#​1846](https://togithub.com/googleapis/java-bigtable/issues/1846)) ([78fd837](https://togithub.com/googleapis/java-bigtable/commit/78fd837987780c62137354fbbe41e71050948405))
      --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 30790b3d4b63..1f70566b0e14 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.25.0 + 2.25.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 00705cb2d1e9..0c1b73ba3c9f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.25.0 + 2.25.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4c84ed02d35b..9cdca8bd5c8a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.25.0 + 2.25.1 test From 997897166ba121256b7fa6f4c63f83daebdc6a54 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 26 Jul 2023 22:07:20 +0200 Subject: [PATCH 2495/3441] deps: update github/codeql-action action to v2.21.1 (#2824) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 3e529afd101a..fa10a24734bf 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@1813ca74c3faaa3a2da2070b9b8a0b3e7373a0d8 # v2.21.0 + uses: github/codeql-action/upload-sarif@6ca1aa8c195c3ca3e77c174fe0356db1bce3b319 # v2.21.1 with: sarif_file: results.sarif From a793cc8d99ce2bda79cea03fbc7a51a54317edc2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jul 2023 20:26:13 +0000 Subject: [PATCH 2496/3441] build(deps): bump certifi from 2023.5.7 to 2023.7.22 in /.kokoro (#2816) Bumps [certifi](https://togithub.com/certifi/python-certifi) from 2023.5.7 to 2023.7.22.
      Commits

      [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=certifi&package-manager=pip&previous-version=2023.5.7&new-version=2023.7.22)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
      Dependabot commands and options
      You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://togithub.com/googleapis/java-bigquery/network/alerts).
      From 2586597cab1bfe2478cf0a3e6f88299209190a58 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 31 Jul 2023 17:26:19 +0200 Subject: [PATCH 2497/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.20.0 (#2828) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:libraries-bom](https://cloud.google.com/java/docs/bom) ([source](https://togithub.com/googleapis/java-cloud-bom)) | `26.19.0` -> `26.20.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:libraries-bom/26.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:libraries-bom/26.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:libraries-bom/26.19.0/26.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:libraries-bom/26.19.0/26.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
      googleapis/java-cloud-bom (com.google.cloud:libraries-bom) ### [`v26.20.0`](https://togithub.com/googleapis/java-cloud-bom/blob/HEAD/CHANGELOG.md#26200-2023-07-27) [Compare Source](https://togithub.com/googleapis/java-cloud-bom/compare/v26.19.0...v26.20.0) ##### Features - add table of modules for a libraries-bom version to README ([#​6083](https://togithub.com/googleapis/java-cloud-bom/issues/6083)) ([c1df19d](https://togithub.com/googleapis/java-cloud-bom/commit/c1df19de42c259b85004f386ca9e25ab9586936d)) ##### Dependencies - update dependency com.google.cloud:first-party-dependencies to v3.13.1 ([#​6102](https://togithub.com/googleapis/java-cloud-bom/issues/6102)) ([9166395](https://togithub.com/googleapis/java-cloud-bom/commit/91663952fd4d6996701428c4297ea974de202a8a)) - update dependency com.google.cloud:gapic-libraries-bom to v1.16.0 ([#​6108](https://togithub.com/googleapis/java-cloud-bom/issues/6108)) ([d503ac0](https://togithub.com/googleapis/java-cloud-bom/commit/d503ac0db80d8bd551a37c0763e42069e14729e2)) - update dependency com.google.cloud:google-cloud-bigquery to v2.31.0 ([#​6121](https://togithub.com/googleapis/java-cloud-bom/issues/6121)) ([3fec4ac](https://togithub.com/googleapis/java-cloud-bom/commit/3fec4ac0c93d722c35d211fe39e080b0679ac895)) - update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.41.0 ([#​6111](https://togithub.com/googleapis/java-cloud-bom/issues/6111)) ([e766185](https://togithub.com/googleapis/java-cloud-bom/commit/e766185490eb8a1230382944e21256d421cc4d52)) - update dependency com.google.cloud:google-cloud-bigtable-bom to v2.25.1 ([#​6116](https://togithub.com/googleapis/java-cloud-bom/issues/6116)) ([295c40d](https://togithub.com/googleapis/java-cloud-bom/commit/295c40ddd31fdb5a8fd9895cc95fa15e53b434eb)) - update dependency com.google.cloud:google-cloud-datastore-bom to v2.16.2 ([#​6112](https://togithub.com/googleapis/java-cloud-bom/issues/6112)) ([7e64cc3](https://togithub.com/googleapis/java-cloud-bom/commit/7e64cc33da2911117118b37214522a649189910e)) - update dependency com.google.cloud:google-cloud-firestore-bom to v3.13.6 ([#​6103](https://togithub.com/googleapis/java-cloud-bom/issues/6103)) ([1dd904f](https://togithub.com/googleapis/java-cloud-bom/commit/1dd904fdef347570046e8ecb372d26d9f0995ce9)) - update dependency com.google.cloud:google-cloud-firestore-bom to v3.13.7 ([#​6132](https://togithub.com/googleapis/java-cloud-bom/issues/6132)) ([03466f0](https://togithub.com/googleapis/java-cloud-bom/commit/03466f06143a4de25a824b5053cc34148eb09edc)) - update dependency com.google.cloud:google-cloud-logging-bom to v3.15.7 ([#​6110](https://togithub.com/googleapis/java-cloud-bom/issues/6110)) ([7bdd227](https://togithub.com/googleapis/java-cloud-bom/commit/7bdd22765ebfd22fb0170cfb38c2bb2a2ddc321c)) - update dependency com.google.cloud:google-cloud-logging-logback to v0.130.19-alpha ([#​6118](https://togithub.com/googleapis/java-cloud-bom/issues/6118)) ([86deddd](https://togithub.com/googleapis/java-cloud-bom/commit/86deddd65170f4b4c544baa1ccb31fcfe746093e)) - update dependency com.google.cloud:google-cloud-nio to v0.127.0 ([#​6130](https://togithub.com/googleapis/java-cloud-bom/issues/6130)) ([b9ea753](https://togithub.com/googleapis/java-cloud-bom/commit/b9ea753ab1552a43302bfb53dc1bd4b51f9261f4)) - update dependency com.google.cloud:google-cloud-pubsub-bom to v1.123.19 ([#​6119](https://togithub.com/googleapis/java-cloud-bom/issues/6119)) ([421d98c](https://togithub.com/googleapis/java-cloud-bom/commit/421d98ce9c2dd0c76bc42ed3be8c60f8aca61885)) - update dependency com.google.cloud:google-cloud-pubsub-bom to v1.123.20 ([#​6129](https://togithub.com/googleapis/java-cloud-bom/issues/6129)) ([18c5c70](https://togithub.com/googleapis/java-cloud-bom/commit/18c5c7065e2694ecdb73967972294ffba66afc16)) - update dependency com.google.cloud:google-cloud-pubsub-bom to v1.124.0 ([#​6133](https://togithub.com/googleapis/java-cloud-bom/issues/6133)) ([177ffee](https://togithub.com/googleapis/java-cloud-bom/commit/177ffeebf9b9e2ea4ff020568864618a5b76b558)) - update dependency com.google.cloud:google-cloud-pubsublite-bom to v1.12.12 ([#​6123](https://togithub.com/googleapis/java-cloud-bom/issues/6123)) ([002259c](https://togithub.com/googleapis/java-cloud-bom/commit/002259c4798c0ded47397f33ea0fa5143e8aaded)) - update dependency com.google.cloud:google-cloud-spanner-bom to v6.44.0 ([#​6131](https://togithub.com/googleapis/java-cloud-bom/issues/6131)) ([e43f168](https://togithub.com/googleapis/java-cloud-bom/commit/e43f16842e3bb1e64e2f070bf7132f26abf33b13)) - update dependency com.google.cloud:google-cloud-spanner-jdbc to v2.11.5 ([#​6135](https://togithub.com/googleapis/java-cloud-bom/issues/6135)) ([e601ce8](https://togithub.com/googleapis/java-cloud-bom/commit/e601ce82d1829f56166dd3e5d4288c22503d67dd)) - update dependency com.google.cloud:google-cloud-storage-bom to v2.25.0 ([#​6054](https://togithub.com/googleapis/java-cloud-bom/issues/6054)) ([cf25374](https://togithub.com/googleapis/java-cloud-bom/commit/cf25374148ca9fb48dc6851debfc5186a6cd8472))
      --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- samples/native-image-sample/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index aecdd1fc4083..cb48b02c3411 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -39,7 +39,7 @@ com.google.cloud libraries-bom - 26.19.0 + 26.20.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9cdca8bd5c8a..8e218a2ba0db 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.19.0 + 26.20.0 pom import From 1ae6cb9b20152e00db9a559ff143faca581bf8b1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 8 Aug 2023 17:29:01 +0200 Subject: [PATCH 2498/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.24 (#2840) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.24 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 4 ++-- samples/native-image-sample/pom.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7e5fdbab768e..1d99e65b860f 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.19.0 + 26.20.0 pom import @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.19.0') +implementation platform('com.google.cloud:libraries-bom:26.21.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index cb48b02c3411..034a34cad01d 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.23 + 0.9.24 true com.example.bigquery.NativeImageBigquerySample From ae752bc36c516e1a4172bc0c9cfa7ed6bbcbe0e7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 8 Aug 2023 17:29:23 +0200 Subject: [PATCH 2499/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.24 (#2839) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.24 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 034a34cad01d..186ea50ab2be 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.23 + 0.9.24 test From cff06886b372acecc475d276481ae07ac484a6a8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 8 Aug 2023 17:29:45 +0200 Subject: [PATCH 2500/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.26.0 (#2837) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.26.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0dbceabc2f8a..655340f737b7 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.25.0 + 2.26.0 test From 4b3a3c22985c76f7e861341dc76e96abc970eaec Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 8 Aug 2023 17:30:12 +0200 Subject: [PATCH 2501/3441] deps: update jmh.version to v1.37 (#2836) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update jmh.version to v1.37 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 49f85f3fb30b..dc6cc9a6dfa1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -11,7 +11,7 @@ UTF-8 - 1.36 + 1.37 benchmark From 79fe14c08836b40bf84775a526cba32f63dd8227 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 8 Aug 2023 17:30:36 +0200 Subject: [PATCH 2502/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.14.0 (#2834) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.14.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 655340f737b7..a8843c1569f8 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230520-2.0.0 - 3.13.1 + 3.14.0 12.0.1
      From 246a9dc748c6ad43f3b0ea9671f60e13dc035434 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 11:57:45 -0400 Subject: [PATCH 2503/3441] chore(main): release 2.31.1-SNAPSHOT (#2818) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index dc6cc9a6dfa1..26c3dee2849f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.31.0 + 2.31.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4805f519d0a8..a0c8932b5b63 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.31.0 + 2.31.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.31.0 + 2.31.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a8843c1569f8..ab01ea931ffe 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.31.0 + 2.31.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.31.0 + 2.31.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0c1b73ba3c9f..3f56d250bcdf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.31.0 + 2.31.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index ed5fb17ab4bf..82a5ef4547e6 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.31.0:2.31.0 \ No newline at end of file +google-cloud-bigquery:2.31.0:2.31.1-SNAPSHOT \ No newline at end of file From 9483eea5936281ceab95806ecbaf4a8ffe795467 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 9 Aug 2023 00:51:35 +0200 Subject: [PATCH 2504/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.41.1 (#2843) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ab01ea931ffe..ef185d24283d 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.41.0 + 2.41.1 pom import From 922368430ae5aa6ebc788132c289c4680a7d1f6b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 9 Aug 2023 00:51:55 +0200 Subject: [PATCH 2505/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.25.0 (#2844) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index ef185d24283d..f996c62de2f8 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.24.0 + 2.25.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 1f70566b0e14..5c186115b720 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.24.0 + 2.25.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3f56d250bcdf..724214532285 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.24.0 + 2.25.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 8e218a2ba0db..080f1e84cf0e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.24.0 + 2.25.0 test From 87a0a10d806fdcbf4bdb1ee1478b9ee6aeb7b287 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 9 Aug 2023 02:24:00 +0200 Subject: [PATCH 2506/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.29.0 (#2846) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f996c62de2f8..ed9c56e0b77a 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.28.0 + 1.29.0 pom import From d940f8d7f119d75aaa80eb60babd5406fca76c69 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 9 Aug 2023 02:24:16 +0200 Subject: [PATCH 2507/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.25.0 (#2845) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ed9c56e0b77a..c6ef90913d12 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.24.0 + 2.25.0 test From f8e3da707cb15c57d39ad3c9ea9bdf64742715a5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 8 Aug 2023 22:32:39 -0400 Subject: [PATCH 2508/3441] chore(main): release 2.31.1 (#2841) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 13 +++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4cd11b173221..eb61c92cafb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [2.31.1](https://github.com/googleapis/java-bigquery/compare/v2.31.0...v2.31.1) (2023-08-09) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.25.0 ([#2845](https://github.com/googleapis/java-bigquery/issues/2845)) ([d940f8d](https://github.com/googleapis/java-bigquery/commit/d940f8d7f119d75aaa80eb60babd5406fca76c69)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.29.0 ([#2846](https://github.com/googleapis/java-bigquery/issues/2846)) ([87a0a10](https://github.com/googleapis/java-bigquery/commit/87a0a10d806fdcbf4bdb1ee1478b9ee6aeb7b287)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.14.0 ([#2834](https://github.com/googleapis/java-bigquery/issues/2834)) ([79fe14c](https://github.com/googleapis/java-bigquery/commit/79fe14c08836b40bf84775a526cba32f63dd8227)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.24 ([#2839](https://github.com/googleapis/java-bigquery/issues/2839)) ([ae752bc](https://github.com/googleapis/java-bigquery/commit/ae752bc36c516e1a4172bc0c9cfa7ed6bbcbe0e7)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.24 ([#2840](https://github.com/googleapis/java-bigquery/issues/2840)) ([1ae6cb9](https://github.com/googleapis/java-bigquery/commit/1ae6cb9b20152e00db9a559ff143faca581bf8b1)) +* Update github/codeql-action action to v2.21.1 ([#2824](https://github.com/googleapis/java-bigquery/issues/2824)) ([9978971](https://github.com/googleapis/java-bigquery/commit/997897166ba121256b7fa6f4c63f83daebdc6a54)) +* Update jmh.version to v1.37 ([#2836](https://github.com/googleapis/java-bigquery/issues/2836)) ([4b3a3c2](https://github.com/googleapis/java-bigquery/commit/4b3a3c22985c76f7e861341dc76e96abc970eaec)) + ## [2.31.0](https://github.com/googleapis/java-bigquery/compare/v2.30.1...v2.31.0) (2023-07-25) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 26c3dee2849f..733ba5ff9ce6 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.31.1-SNAPSHOT + 2.31.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a0c8932b5b63..c691388538cf 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.31.1-SNAPSHOT + 2.31.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.31.1-SNAPSHOT + 2.31.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c6ef90913d12..cd2a749edf8b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.31.1-SNAPSHOT + 2.31.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.31.1-SNAPSHOT + 2.31.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 724214532285..b8737a835c59 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.31.1-SNAPSHOT + 2.31.1 diff --git a/versions.txt b/versions.txt index 82a5ef4547e6..88118a350d16 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.31.0:2.31.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.31.1:2.31.1 \ No newline at end of file From 309ea607a9ff50e59dc4e1069c689c1da9605ed5 Mon Sep 17 00:00:00 2001 From: Farhan Ahmed Date: Thu, 17 Aug 2023 15:37:08 -0400 Subject: [PATCH 2509/3441] fix: SearchStats IndexUnusedReasons null bug (#2825) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: SearchStats IndexUnusedReasons null bug * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++++---- .../main/java/com/google/cloud/bigquery/SearchStats.java | 6 +++--- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 6 +++++- pom.xml | 2 +- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 1d99e65b860f..aceecda14166 100644 --- a/README.md +++ b/README.md @@ -53,20 +53,20 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.21.0') +implementation platform('com.google.cloud:libraries-bom:26.22.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.31.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.31.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.31.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.31.1" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.31.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.31.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SearchStats.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SearchStats.java index 73b812383b08..237b83ca727c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SearchStats.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SearchStats.java @@ -68,7 +68,7 @@ SearchStatistics toPb() { searchStatistics.setIndexUsageMode(getIndexUsageMode()); } if (getIndexUnusedReasons() != null) { - searchStatistics.setIndexUnusedReason( + searchStatistics.setIndexUnusedReasons( getIndexUnusedReasons().stream() .map(IndexUnusedReason::toPb) .collect(Collectors.toList())); @@ -81,9 +81,9 @@ static SearchStats fromPb(SearchStatistics searchStatistics) { if (searchStatistics.getIndexUsageMode() != null) { builder.setIndexUsageMode(searchStatistics.getIndexUsageMode()); } - if (searchStatistics.getIndexUnusedReason() != null) { + if (searchStatistics.getIndexUnusedReasons() != null) { builder.setIndexUnusedReasons( - searchStatistics.getIndexUnusedReason().stream() + searchStatistics.getIndexUnusedReasons().stream() .map(IndexUnusedReason::fromPb) .collect(Collectors.toList())); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 8c5742e57ddb..bb9c233a45e6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -5090,7 +5090,7 @@ public void testQueryJobWithLabels() throws InterruptedException, TimeoutExcepti } @Test - public void testQueryJobWithSearchReturnsSearchStatistics() throws InterruptedException { + public void testQueryJobWithSearchReturnsSearchStatisticsUnused() throws InterruptedException { String tableName = "test_query_job_table"; String query = "SELECT * FROM " @@ -5109,6 +5109,10 @@ public void testQueryJobWithSearchReturnsSearchStatistics() throws InterruptedEx JobStatistics.QueryStatistics stats = remoteJob.getStatistics(); assertNotNull(stats.getSearchStats()); assertEquals(stats.getSearchStats().getIndexUsageMode(), "UNUSED"); + assertNotNull(stats.getSearchStats().getIndexUnusedReasons()); + assertNotNull( + stats.getSearchStats().getIndexUnusedReasons().get(0).getCode(), + "INDEX_CONFIG_NOT_AVAILABLE"); } finally { bigquery.delete(destinationTable); } diff --git a/pom.xml b/pom.xml index cd2a749edf8b..90bf5b3236c3 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20230520-2.0.0 + v2-rev20230805-2.0.0 3.14.0 12.0.1 From 814f3934ff157a2059f5f47ecf2b1b360ec53bfe Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Fri, 18 Aug 2023 13:20:16 -0400 Subject: [PATCH 2510/3441] ci: javadoc as required check (#2854) --- .github/sync-repo-settings.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index a37ac497e1af..9583d638c844 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -16,6 +16,7 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - cla/google - OwlBot Post Processor + - javadoc - pattern: 1.127.12-sp isAdminEnforced: true requiredApprovingReviewCount: 1 From 2cbded6600af1de8ec15b04a2496733ad2b50c47 Mon Sep 17 00:00:00 2001 From: Farhan Ahmed Date: Tue, 5 Sep 2023 11:12:14 -0400 Subject: [PATCH 2511/3441] fix: hide TableReference data struct (#2855) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: hide TableReference data struct * chore: add clirr ignored differences * chore: organize imports * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Neenu1995 Co-authored-by: Owl Bot --- .gitignore | 4 +++- google-cloud-bigquery/clirr-ignored-differences.xml | 10 ++++++++++ .../google/cloud/bigquery/IndexUnusedReason.java | 13 ++++++------- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 1c7a7e78f8e2..c94c87d10b3f 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,6 @@ __pycache__ .new-list.txt .org-list.txt SimpleBenchmarkApp/src/main/java/com/google/cloud/App.java -.flattened-pom.xml \ No newline at end of file +.flattened-pom.xml +# Local Test files +*ITLocalTest.java \ No newline at end of file diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 500ce3f58dff..41067bd2139c 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -94,4 +94,14 @@ com/google/cloud/bigquery/TableInfo* *TableConstraints(*) + + 7013 + com/google/cloud/bigquery/IndexUnusedReason* + *BaseTableId(*) + + + 7002 + com/google/cloud/bigquery/IndexUnusedReason* + *BaseTable(*) + \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java index 06a88b068e1a..bb4f0c3c32ee 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java @@ -16,7 +16,6 @@ package com.google.cloud.bigquery; -import com.google.api.services.bigquery.model.TableReference; import com.google.auto.value.AutoValue; import java.io.Serializable; import javax.annotation.Nullable; @@ -52,9 +51,9 @@ public abstract static class Builder { /** * Specifies the base table involved in the reason that no search index was used. * - * @param tableReference tableReference or {@code null} for none + * @param baseTable baseTable or {@code null} for none */ - public abstract Builder setBaseTable(TableReference tableReference); + public abstract Builder setBaseTableId(TableId baseTable); /** Creates a @code IndexUnusedReason} object. */ public abstract IndexUnusedReason build(); @@ -96,7 +95,7 @@ public static Builder newBuilder() { * @return value or {@code null} for none */ @Nullable - public abstract TableReference getBaseTable(); + public abstract TableId getBaseTableId(); com.google.api.services.bigquery.model.IndexUnusedReason toPb() { com.google.api.services.bigquery.model.IndexUnusedReason indexUnusedReason = @@ -110,8 +109,8 @@ com.google.api.services.bigquery.model.IndexUnusedReason toPb() { if (getMessage() != null) { indexUnusedReason.setMessage(indexUnusedReason.getMessage()); } - if (getBaseTable() != null) { - indexUnusedReason.setBaseTable(indexUnusedReason.getBaseTable()); + if (getBaseTableId() != null) { + indexUnusedReason.setBaseTable(getBaseTableId().toPb()); } return indexUnusedReason; } @@ -129,7 +128,7 @@ static IndexUnusedReason fromPb( builder.setMessage(indexUnusedReason.getMessage()); } if (indexUnusedReason.getBaseTable() != null) { - builder.setBaseTable(indexUnusedReason.getBaseTable()); + builder.setBaseTableId(TableId.fromPb(indexUnusedReason.getBaseTable())); } return builder.build(); } From ad9c63cafad1788c64129c4f34f85537a52252ee Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 15:30:14 +0000 Subject: [PATCH 2512/3441] chore(main): release 2.31.2-SNAPSHOT (#2847) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 733ba5ff9ce6..1c145087e6dd 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.31.1 + 2.31.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c691388538cf..6ecec984f729 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.31.1 + 2.31.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.31.1 + 2.31.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 90bf5b3236c3..4c00606777fd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.31.1 + 2.31.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.31.1 + 2.31.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b8737a835c59..74ddf77a9456 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.31.1 + 2.31.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 88118a350d16..dea3f2773586 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.31.1:2.31.1 \ No newline at end of file +google-cloud-bigquery:2.31.1:2.31.2-SNAPSHOT \ No newline at end of file From 989d9978f6a8e2a067bbe0e17c3ba935165cbf12 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 11:51:10 -0400 Subject: [PATCH 2513/3441] chore(main): release 2.31.2 (#2864) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eb61c92cafb2..3c833f4b7c4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.31.2](https://github.com/googleapis/java-bigquery/compare/v2.31.1...v2.31.2) (2023-09-05) + + +### Bug Fixes + +* Hide TableReference data struct ([#2855](https://github.com/googleapis/java-bigquery/issues/2855)) ([2cbded6](https://github.com/googleapis/java-bigquery/commit/2cbded6600af1de8ec15b04a2496733ad2b50c47)) +* SearchStats IndexUnusedReasons null bug ([#2825](https://github.com/googleapis/java-bigquery/issues/2825)) ([309ea60](https://github.com/googleapis/java-bigquery/commit/309ea607a9ff50e59dc4e1069c689c1da9605ed5)) + ## [2.31.1](https://github.com/googleapis/java-bigquery/compare/v2.31.0...v2.31.1) (2023-08-09) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1c145087e6dd..dde17cb10002 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.31.2-SNAPSHOT + 2.31.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6ecec984f729..5ec3e04a6a8d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.31.2-SNAPSHOT + 2.31.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.31.2-SNAPSHOT + 2.31.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4c00606777fd..7628435f2057 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.31.2-SNAPSHOT + 2.31.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.31.2-SNAPSHOT + 2.31.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 74ddf77a9456..c811b89f9caf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.31.2-SNAPSHOT + 2.31.2 diff --git a/versions.txt b/versions.txt index dea3f2773586..c9aaacf02c38 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.31.1:2.31.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.31.2:2.31.2 \ No newline at end of file From 2294c2ffca62a22a66786a9a4c6c9ef1be898e5d Mon Sep 17 00:00:00 2001 From: Obada Alabbadi <76101898+obada-ab@users.noreply.github.com> Date: Wed, 6 Sep 2023 15:14:13 +0200 Subject: [PATCH 2514/3441] feat: add support for converting interval fields to threeten PeriodDuration (#2838) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add support for converting BigQuery interval type to threeten PeriodDuration, information about the canonical interval form can be found [here](https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types#canonical_format_3). Parsing logic was referenced from [here](https://cloud.google.com/bigquery/docs/reference/standard-sql/interval_functions#extract). Fixes #1849 ☕️ --- README.md | 6 +- .../com/google/cloud/bigquery/FieldValue.java | 87 +++++++++++++++++++ .../google/cloud/bigquery/FieldValueTest.java | 38 ++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 3 + 4 files changed, 131 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index aceecda14166..1665fb7d1643 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.31.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.31.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.31.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.31.2" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.31.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.31.2 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java index 58c012a60ec3..ea68075f7f25 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java @@ -27,10 +27,16 @@ import java.io.Serializable; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.Duration; import java.time.Instant; +import java.time.Period; +import java.time.format.DateTimeParseException; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import org.threeten.extra.PeriodDuration; /** * Google BigQuery Table Field Value class. Objects of this class represent values of a BigQuery @@ -237,6 +243,28 @@ public List getRepeatedValue() { return (List) value; } + /** + * Returns this field's value as a {@link org.threeten.extra.PeriodDuration}. This method should + * be used if the corresponding field has {@link StandardSQLTypeName#INTERVAL} type, or if it is a + * legal canonical format "[sign]Y-M [sign]D [sign]H:M:S[.F]", e.g. "123-7 -19 0:24:12.000006" or + * ISO 8601. + * + * @throws ClassCastException if the field is not a primitive type + * @throws NullPointerException if {@link #isNull()} returns {@code true} + * @throws IllegalArgumentException if the field cannot be converted to a legal interval + */ + @SuppressWarnings("unchecked") + public PeriodDuration getPeriodDuration() { + checkNotNull(value); + try { + // Try parsing from ISO 8601 + return PeriodDuration.parse(getStringValue()); + } catch (DateTimeParseException dateTimeParseException) { + // Try parsing from canonical interval format + return parseCanonicalInterval(getStringValue()); + } + } + /** * Returns this field's value as a {@link FieldValueList} instance. This method should only be * used if the corresponding field has {@link LegacySQLTypeName#RECORD} type (i.e. {@link @@ -325,4 +353,63 @@ static FieldValue fromPb(Object cellPb, Field recordSchema) { } throw new IllegalArgumentException("Unexpected table cell format"); } + + /** + * Parse interval in canonical format and create instance of {@code PeriodDuration}. + * + *

      The parameter {@code interval} should be an interval in the canonical format: "[sign]Y-M + * [sign]D [sign]H:M:S[.F]". More details + * here + * + * @throws IllegalArgumentException if the {@code interval} is not a valid interval + */ + static PeriodDuration parseCanonicalInterval(String interval) throws IllegalArgumentException { + // Pattern is [sign]Y-M [sign]D [sign]H:M:S[.F] + Pattern pattern = + Pattern.compile( + "(?[+-])?(?\\d+)-(?\\d+) (?[-|+])?(?\\d+) (?[-|+])?(?\\d+):(?\\d+):(?\\d+)(\\.(?\\d+))?"); + Matcher matcher = pattern.matcher(interval); + if (!matcher.find()) { + throw new IllegalArgumentException(); + } + String sign1 = matcher.group("sign1"); + String year = matcher.group("year"); + String month = matcher.group("month"); + String sign2 = matcher.group("sign2"); + String day = matcher.group("day"); + String sign3 = matcher.group("sign3"); + String hours = matcher.group("hours"); + String minutes = matcher.group("minutes"); + String seconds = matcher.group("seconds"); + String fraction = matcher.group("fraction"); + + int yearInt = Integer.parseInt(year); + int monthInt = Integer.parseInt(month); + if (Objects.equals(sign1, "-")) { + yearInt *= -1; + monthInt *= -1; + } + + int dayInt = Integer.parseInt(day); + if (Objects.equals(sign2, "-")) { + dayInt *= -1; + } + if (sign3 == null) { + sign3 = ""; + } + + String durationString = + sign3 + + "PT" + + hours + + "H" + + minutes + + "M" + + seconds + + (fraction == null ? "" : "." + fraction) + + "S"; + + return PeriodDuration.of(Period.of(yearInt, monthInt, dayInt), Duration.parse(durationString)); + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java index e4ec47b4723a..90cb69061835 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java @@ -27,8 +27,13 @@ import com.google.common.collect.ImmutableMap; import com.google.common.io.BaseEncoding; import java.math.BigDecimal; +import java.time.Duration; +import java.time.Period; +import java.util.LinkedHashMap; import java.util.Map; +import java.util.Map.Entry; import org.junit.Test; +import org.threeten.extra.PeriodDuration; public class FieldValueTest { @@ -43,6 +48,10 @@ public class FieldValueTest { ImmutableMap.of("v", "123456789.123456789"); private static final Map STRING_FIELD = ImmutableMap.of("v", "string"); private static final Map TIMESTAMP_FIELD = ImmutableMap.of("v", "42"); + private static final Map INTERVAL_FIELD_1 = + ImmutableMap.of("v", "P3Y2M1DT12H34M56.789S"); + private static final Map INTERVAL_FIELD_2 = + ImmutableMap.of("v", "3-2 1 12:34:56.789"); private static final Map BYTES_FIELD = ImmutableMap.of("v", BYTES_BASE64); private static final Map NULL_FIELD = ImmutableMap.of("v", Data.nullOf(String.class)); @@ -74,6 +83,17 @@ public void testFromPb() { value = FieldValue.fromPb(TIMESTAMP_FIELD); assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); assertEquals(42000000, value.getTimestampValue()); + value = FieldValue.fromPb(INTERVAL_FIELD_1); + assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); + PeriodDuration periodDuration = + PeriodDuration.of(Period.of(3, 2, 1), Duration.parse("PT12H34M56.789S")); + assertEquals(periodDuration, value.getPeriodDuration()); + assertEquals("P3Y2M1DT12H34M56.789S", value.getStringValue()); + value = FieldValue.fromPb(INTERVAL_FIELD_2); + assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); + periodDuration = PeriodDuration.of(Period.of(3, 2, 1), Duration.parse("PT12H34M56.789S")); + assertEquals(periodDuration, value.getPeriodDuration()); + assertEquals("3-2 1 12:34:56.789", value.getStringValue()); value = FieldValue.fromPb(BYTES_FIELD); assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); assertArrayEquals(BYTES, value.getBytesValue()); @@ -146,4 +166,22 @@ public void testEquals() { assertEquals(recordValue, FieldValue.fromPb(RECORD_FIELD)); assertEquals(recordValue.hashCode(), FieldValue.fromPb(RECORD_FIELD).hashCode()); } + + @Test + public void testParseCanonicalInterval() { + Map intervalToPeriodDuration = new LinkedHashMap<>(); + intervalToPeriodDuration.put( + "125-7 -19 -0:24:12.001", PeriodDuration.parse("P125Y7M-19DT0H-24M-12.001S")); + intervalToPeriodDuration.put("-15-6 23 23:14:05", PeriodDuration.parse("P-15Y-6M23DT23H14M5S")); + intervalToPeriodDuration.put( + "06-01 06 01:01:00.123456", PeriodDuration.parse("P6Y1M6DT1H1M0.123456S")); + intervalToPeriodDuration.put("-0-0 -0 -0:0:0", PeriodDuration.parse("P0Y0M0DT0H0M0S")); + intervalToPeriodDuration.put( + "-99999-99999 9999 999:999:999.999999999", + PeriodDuration.parse("P-99999Y-99999M9999DT999H999M999.999999999S")); + for (Entry entry : intervalToPeriodDuration.entrySet()) { + assertEquals(FieldValue.parseCanonicalInterval(entry.getKey()), entry.getValue()); + System.out.println(FieldValue.parseCanonicalInterval(entry.getKey())); + } + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index bb9c233a45e6..cf180f9a36b6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1228,8 +1228,11 @@ public void testIntervalType() throws InterruptedException { .build(); TableResult result = bigquery.query(queryJobConfiguration); assertNotNull(result.getJobId()); + PeriodDuration periodDuration = + PeriodDuration.of(Period.of(125, 7, -19), java.time.Duration.parse("PT24M12.000006S")); for (FieldValueList values : result.iterateAll()) { assertEquals("125-7 -19 0:24:12.000006", values.get(0).getValue()); + assertEquals(periodDuration, values.get(0).getPeriodDuration()); } } finally { assertTrue(bigquery.delete(tableId)); From f24439b7adf1f08cee4b65918b4395861fe88517 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 12 Sep 2023 00:57:51 +0200 Subject: [PATCH 2515/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.15.0 (#2870) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7628435f2057..508962ae515a 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230805-2.0.0 - 3.14.0 + 3.15.0 12.0.1 From edd714129b65d73f894591c4d40e1a8e79c36b04 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 12 Sep 2023 00:58:12 +0200 Subject: [PATCH 2516/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.26 (#2869) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 186ea50ab2be..e3307285d81a 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.24 + 0.9.26 true com.example.bigquery.NativeImageBigquerySample From d01031cbc6d50f9aff8c6d49a8d2c54496779451 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 12 Sep 2023 00:58:28 +0200 Subject: [PATCH 2517/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.26 (#2868) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index e3307285d81a..7f18e0025f0a 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.24 + 0.9.26 test From cbbf0fb8a99c0633335d81cd36a7b53dfe9df20b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 12 Sep 2023 00:58:49 +0200 Subject: [PATCH 2518/3441] deps: update actions/upload-artifact action to v3.1.3 (#2867) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index fa10a24734bf..4eab67ad5242 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2 + uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 with: name: SARIF file path: results.sarif From 7772c2adf04f3662055921e53b5599db52f7576c Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 18:59:11 -0400 Subject: [PATCH 2519/3441] chore: for Java repos RenovateBot to ignore GitHub Actions workflow file (#1855) (#2866) chore: for Java repos RenovateBot to ignore GitHub Actions workflow file The actions used in the GitHub Actions workflow files do not appear in libraries' dependencies and mostly maintained by Java postprocessor templates. IgnorePath option document: https://docs.renovatebot.com/configuration-options/ Source-Link: https://github.com/googleapis/synthtool/commit/1543029c843989702adbe789acdead153ad696d1 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:88ba8dcc5c2c7792e1c3511381f4ab329002a1c42c512f66ca87ced572dfbf9f Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 ++-- .kokoro/requirements.txt | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index d5500ef44246..52eaa54d82b2 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:46d2d262cd285c638656c8bde468011b723dc0c7ffd6a5ecc2650fe639c82e8f -# created: 2023-07-24T14:21:17.707234503Z + digest: sha256:88ba8dcc5c2c7792e1c3511381f4ab329002a1c42c512f66ca87ced572dfbf9f +# created: 2023-09-05T18:54:42.225408832Z diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 32989051e7f9..a73256ab80be 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -12,9 +12,9 @@ cachetools==5.3.1 \ --hash=sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590 \ --hash=sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b # via google-auth -certifi==2023.5.7 \ - --hash=sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7 \ - --hash=sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716 +certifi==2023.7.22 \ + --hash=sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082 \ + --hash=sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9 # via requests cffi==1.15.1 \ --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ @@ -485,6 +485,5 @@ zipp==3.16.1 \ # via importlib-metadata # WARNING: The following packages were not pinned, but pip requires them to be -# pinned when the requirements file includes hashes and the requirement is not -# satisfied by a package already installed. Consider using the --allow-unsafe flag. +# pinned when the requirements file includes hashes. Consider using the --allow-unsafe flag. # setuptools From bbb86fd8488ad253f2e9cf3fb08360330bd860a3 Mon Sep 17 00:00:00 2001 From: Obada Alabbadi <76101898+obada-ab@users.noreply.github.com> Date: Wed, 13 Sep 2023 19:04:15 +0200 Subject: [PATCH 2520/3441] feat: add support for ExternalDatasetReference (#2871) API: https://cloud.google.com/bigquery/docs/reference/rest/v2/datasets#externaldatasetreference --- .../clirr-ignored-differences.xml | 5 ++ .../com/google/cloud/bigquery/Dataset.java | 6 ++ .../google/cloud/bigquery/DatasetInfo.java | 33 ++++++++ .../bigquery/ExternalDatasetReference.java | 79 +++++++++++++++++++ .../cloud/bigquery/DatasetInfoTest.java | 39 +++++++++ .../google/cloud/bigquery/DatasetTest.java | 31 ++++++++ .../ExternalDatasetReferenceTest.java | 70 ++++++++++++++++ pom.xml | 2 +- 8 files changed, 264 insertions(+), 1 deletion(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalDatasetReference.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalDatasetReferenceTest.java diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 41067bd2139c..eaeeded132be 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -104,4 +104,9 @@ com/google/cloud/bigquery/IndexUnusedReason* *BaseTable(*) + + 7013 + com/google/cloud/bigquery/DatasetInfo* + *setExternalDatasetReference(*) + \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java index 5f9fea892ffc..3ed4b892871c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java @@ -152,6 +152,12 @@ public Builder setDefaultCollation(String defaultCollation) { return this; } + @Override + public Builder setExternalDatasetReference(ExternalDatasetReference externalDatasetReference) { + infoBuilder.setExternalDatasetReference(externalDatasetReference); + return this; + } + @Override public Dataset build() { return new Dataset(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java index bd209952e8f0..44583e0c853d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java @@ -73,6 +73,7 @@ public Dataset apply(DatasetInfo datasetInfo) { private final EncryptionConfiguration defaultEncryptionConfiguration; private final Long defaultPartitionExpirationMs; private final String defaultCollation; + private final ExternalDatasetReference externalDatasetReference; /** A builder for {@code DatasetInfo} objects. */ public abstract static class Builder { @@ -127,6 +128,13 @@ public abstract static class Builder { public abstract Builder setLabels(Map labels); + /** + * Optional. Information about the external metadata storage where the dataset is defined. + * Filled out when the dataset type is EXTERNAL + */ + public abstract Builder setExternalDatasetReference( + ExternalDatasetReference externalDatasetReference); + /** * The default encryption key for all tables in the dataset. Once this property is set, all * newly-created partitioned tables in the dataset will have encryption key set to this value, @@ -183,6 +191,7 @@ static final class BuilderImpl extends Builder { private EncryptionConfiguration defaultEncryptionConfiguration; private Long defaultPartitionExpirationMs; private String defaultCollation; + private ExternalDatasetReference externalDatasetReference; BuilderImpl() {} @@ -202,6 +211,7 @@ static final class BuilderImpl extends Builder { this.defaultEncryptionConfiguration = datasetInfo.defaultEncryptionConfiguration; this.defaultPartitionExpirationMs = datasetInfo.defaultPartitionExpirationMs; this.defaultCollation = datasetInfo.defaultCollation; + this.externalDatasetReference = datasetInfo.externalDatasetReference; } BuilderImpl(com.google.api.services.bigquery.model.Dataset datasetPb) { @@ -236,6 +246,10 @@ public Acl apply(Dataset.Access accessPb) { } this.defaultPartitionExpirationMs = datasetPb.getDefaultPartitionExpirationMs(); this.defaultCollation = datasetPb.getDefaultCollation(); + if (datasetPb.getExternalDatasetReference() != null) { + this.externalDatasetReference = + ExternalDatasetReference.fromPb(datasetPb.getExternalDatasetReference()); + } } @Override @@ -336,6 +350,12 @@ public Builder setDefaultCollation(String defaultCollation) { return this; } + @Override + public Builder setExternalDatasetReference(ExternalDatasetReference externalDatasetReference) { + this.externalDatasetReference = externalDatasetReference; + return this; + } + @Override public DatasetInfo build() { return new DatasetInfo(this); @@ -358,6 +378,7 @@ public DatasetInfo build() { defaultEncryptionConfiguration = builder.defaultEncryptionConfiguration; defaultPartitionExpirationMs = builder.defaultPartitionExpirationMs; defaultCollation = builder.defaultCollation; + externalDatasetReference = builder.externalDatasetReference; } /** Returns the dataset identity. */ @@ -487,6 +508,14 @@ public String getDefaultCollation() { return defaultCollation; } + /** + * Returns information about the external metadata storage where the dataset is defined. Filled + * out when the dataset type is EXTERNAL. + */ + public ExternalDatasetReference getExternalDatasetReference() { + return externalDatasetReference; + } + /** Returns a builder for the dataset object. */ public Builder toBuilder() { return new BuilderImpl(this); @@ -510,6 +539,7 @@ public String toString() { .add("defaultEncryptionConfiguration", defaultEncryptionConfiguration) .add("defaultPartitionExpirationMs", defaultPartitionExpirationMs) .add("defaultCollation", defaultCollation) + .add("externalDatasetReference", externalDatasetReference) .toString(); } @@ -588,6 +618,9 @@ public Dataset.Access apply(Acl acl) { if (defaultCollation != null) { datasetPb.setDefaultCollation(defaultCollation); } + if (externalDatasetReference != null) { + datasetPb.setExternalDatasetReference(externalDatasetReference.toPb()); + } return datasetPb; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalDatasetReference.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalDatasetReference.java new file mode 100644 index 000000000000..ecfe54c50c3f --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalDatasetReference.java @@ -0,0 +1,79 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import com.google.common.annotations.VisibleForTesting; +import java.io.Serializable; +import javax.annotation.Nullable; + +/** Configures the access a dataset defined in an external metadata storage. */ +@AutoValue +public abstract class ExternalDatasetReference implements Serializable { + + public static ExternalDatasetReference.Builder newBuilder() { + return new AutoValue_ExternalDatasetReference.Builder(); + } + + static ExternalDatasetReference fromPb( + com.google.api.services.bigquery.model.ExternalDatasetReference externalDatasetReference) { + ExternalDatasetReference.Builder builder = newBuilder(); + + if (externalDatasetReference.getConnection() != null) { + builder.setConnection(externalDatasetReference.getConnection()); + } + if (externalDatasetReference.getExternalSource() != null) { + builder.setExternalSource(externalDatasetReference.getExternalSource()); + } + + return builder.build(); + } + + public com.google.api.services.bigquery.model.ExternalDatasetReference toPb() { + com.google.api.services.bigquery.model.ExternalDatasetReference externalDatasetReference = + new com.google.api.services.bigquery.model.ExternalDatasetReference(); + + externalDatasetReference.setConnection(getConnection()); + externalDatasetReference.setExternalSource(getExternalSource()); + return externalDatasetReference; + } + + @Nullable + public abstract String getConnection(); + + @Nullable + public abstract String getExternalSource(); + + /** Returns a builder for an ExternalDatasetReference. */ + @VisibleForTesting + public abstract ExternalDatasetReference.Builder toBuilder(); + + @AutoValue.Builder + public abstract static class Builder { + /** + * The connection id that is used to access the external_source. Format: + * projects/{project_id}/locations/{location_id}/connections/{connection_id} * + */ + public abstract ExternalDatasetReference.Builder setConnection(String connection); + + /** External source that backs this dataset * */ + public abstract ExternalDatasetReference.Builder setExternalSource(String externalSource); + + /** Creates a {@code ExternalDatasetReference} object. */ + public abstract ExternalDatasetReference build(); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java index 453701e3a8cf..c91cbc2f3058 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -58,6 +58,12 @@ public class DatasetInfoTest { private static final DatasetId DATASET_ID_COMPLETE = DatasetId.of("project", "dataset"); private static final EncryptionConfiguration DATASET_ENCRYPTION_CONFIGURATION = EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); + + private static final ExternalDatasetReference EXTERNAL_DATASET_REFERENCE = + ExternalDatasetReference.newBuilder() + .setExternalSource("source") + .setConnection("connection") + .build(); private static final DatasetInfo DATASET_INFO = DatasetInfo.newBuilder(DATASET_ID) .setAcl(ACCESS_RULES) @@ -82,6 +88,8 @@ public class DatasetInfoTest { .build(); private static final DatasetInfo DATASET_INFO_COMPLETE_WITH_IAM_MEMBER = DATASET_INFO.toBuilder().setAcl(ACCESS_RULES_IAM_MEMBER).build(); + private static final DatasetInfo DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE = + DATASET_INFO.toBuilder().setExternalDatasetReference(EXTERNAL_DATASET_REFERENCE).build(); @Test public void testToBuilder() { @@ -108,6 +116,28 @@ public void testToBuilderIncomplete() { assertEquals(datasetInfo, datasetInfo.toBuilder().build()); } + @Test + public void testToBuilderWithExternalDatasetReference() { + compareDatasets( + DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE, + DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE.toBuilder().build()); + + ExternalDatasetReference externalDatasetReference = + ExternalDatasetReference.newBuilder() + .setExternalSource("source2") + .setConnection("connection2") + .build(); + DatasetInfo datasetInfo = + DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE + .toBuilder() + .setExternalDatasetReference(externalDatasetReference) + .build(); + assertEquals(externalDatasetReference, datasetInfo.getExternalDatasetReference()); + datasetInfo = + datasetInfo.toBuilder().setExternalDatasetReference(EXTERNAL_DATASET_REFERENCE).build(); + compareDatasets(DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE, datasetInfo); + } + @Test public void testBuilder() { assertNull(DATASET_INFO.getDatasetId().getProject()); @@ -137,6 +167,9 @@ public void testBuilder() { assertEquals(LOCATION, DATASET_INFO_COMPLETE.getLocation()); assertEquals(SELF_LINK, DATASET_INFO_COMPLETE.getSelfLink()); assertEquals(LABELS, DATASET_INFO_COMPLETE.getLabels()); + assertEquals( + EXTERNAL_DATASET_REFERENCE, + DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE.getExternalDatasetReference()); } @Test @@ -156,6 +189,7 @@ public void testOf() { assertNull(datasetInfo.getDefaultEncryptionConfiguration()); assertNull(datasetInfo.getDefaultPartitionExpirationMs()); assertTrue(datasetInfo.getLabels().isEmpty()); + assertNull(datasetInfo.getExternalDatasetReference()); datasetInfo = DatasetInfo.of(DATASET_ID); assertEquals(DATASET_ID, datasetInfo.getDatasetId()); @@ -172,11 +206,15 @@ public void testOf() { assertNull(datasetInfo.getDefaultEncryptionConfiguration()); assertNull(datasetInfo.getDefaultPartitionExpirationMs()); assertTrue(datasetInfo.getLabels().isEmpty()); + assertNull(datasetInfo.getExternalDatasetReference()); } @Test public void testToPbAndFromPb() { compareDatasets(DATASET_INFO_COMPLETE, DatasetInfo.fromPb(DATASET_INFO_COMPLETE.toPb())); + compareDatasets( + DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE, + DatasetInfo.fromPb(DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE.toPb())); DatasetInfo datasetInfo = DatasetInfo.newBuilder("project", "dataset").build(); compareDatasets(datasetInfo, DatasetInfo.fromPb(datasetInfo.toPb())); } @@ -204,5 +242,6 @@ private void compareDatasets(DatasetInfo expected, DatasetInfo value) { expected.getDefaultEncryptionConfiguration(), value.getDefaultEncryptionConfiguration()); assertEquals( expected.getDefaultPartitionExpirationMs(), value.getDefaultPartitionExpirationMs()); + assertEquals(expected.getExternalDatasetReference(), value.getExternalDatasetReference()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java index d1c97a6940a9..b244cf26065e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java @@ -83,6 +83,11 @@ public class DatasetTest { TableInfo.newBuilder( TableId.of(NEW_PROJECT_ID, "dataset", "table3"), EXTERNAL_TABLE_DEFINITION) .build(); + private static final ExternalDatasetReference EXTERNAL_DATASET_REFERENCE = + ExternalDatasetReference.newBuilder() + .setExternalSource("source") + .setConnection("connection") + .build(); @Rule public MockitoRule rule; @@ -319,6 +324,31 @@ public void testToAndFromPb() { compareDataset(expectedDataset, Dataset.fromPb(bigquery, expectedDataset.toPb())); } + @Test + public void testExternalDatasetReference() { + Dataset datasetWithExternalDatasetReference = + new Dataset.Builder(bigquery, DATASET_ID) + .setAcl(ACCESS_RULES) + .setCreationTime(CREATION_TIME) + .setDefaultTableLifetime(DEFAULT_TABLE_EXPIRATION) + .setDescription(DESCRIPTION) + .setEtag(ETAG) + .setFriendlyName(FRIENDLY_NAME) + .setGeneratedId(GENERATED_ID) + .setLastModified(LAST_MODIFIED) + .setLocation(LOCATION) + .setSelfLink(SELF_LINK) + .setLabels(LABELS) + .setExternalDatasetReference(EXTERNAL_DATASET_REFERENCE) + .build(); + assertEquals( + EXTERNAL_DATASET_REFERENCE, + datasetWithExternalDatasetReference.getExternalDatasetReference()); + compareDataset( + datasetWithExternalDatasetReference, + datasetWithExternalDatasetReference.toBuilder().build()); + } + private void compareDataset(Dataset expected, Dataset value) { assertEquals(expected, value); compareDatasetInfo(expected, value); @@ -338,5 +368,6 @@ private void compareDatasetInfo(DatasetInfo expected, DatasetInfo value) { assertEquals(expected.getCreationTime(), value.getCreationTime()); assertEquals(expected.getDefaultTableLifetime(), value.getDefaultTableLifetime()); assertEquals(expected.getLastModified(), value.getLastModified()); + assertEquals(expected.getExternalDatasetReference(), value.getExternalDatasetReference()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalDatasetReferenceTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalDatasetReferenceTest.java new file mode 100644 index 000000000000..6d241948b893 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalDatasetReferenceTest.java @@ -0,0 +1,70 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class ExternalDatasetReferenceTest { + private static final String EXTERNAL_SOURCE = "test_source"; + private static final String CONNECTION = "test_connection"; + private static final ExternalDatasetReference EXTERNAL_DATASET_REFERENCE = + ExternalDatasetReference.newBuilder() + .setExternalSource(EXTERNAL_SOURCE) + .setConnection(CONNECTION) + .build(); + + @Test + public void testToBuilder() { + compareExternalDatasetReference( + EXTERNAL_DATASET_REFERENCE, EXTERNAL_DATASET_REFERENCE.toBuilder().build()); + ExternalDatasetReference externalDatasetReference = + EXTERNAL_DATASET_REFERENCE.toBuilder().setExternalSource("test_source2").build(); + assertEquals("test_source2", externalDatasetReference.getExternalSource()); + } + + @Test + public void testBuilder() { + assertEquals(EXTERNAL_SOURCE, EXTERNAL_DATASET_REFERENCE.getExternalSource()); + assertEquals(CONNECTION, EXTERNAL_DATASET_REFERENCE.getConnection()); + ExternalDatasetReference externalDatasetReference = + ExternalDatasetReference.newBuilder() + .setExternalSource(EXTERNAL_SOURCE) + .setConnection(CONNECTION) + .build(); + assertEquals(EXTERNAL_DATASET_REFERENCE, externalDatasetReference); + } + + @Test + public void testToAndFromPb() { + ExternalDatasetReference externalDatasetReference = + EXTERNAL_DATASET_REFERENCE.toBuilder().build(); + assertTrue( + ExternalDatasetReference.fromPb(externalDatasetReference.toPb()) + instanceof ExternalDatasetReference); + compareExternalDatasetReference( + externalDatasetReference, ExternalDatasetReference.fromPb(externalDatasetReference.toPb())); + } + + private void compareExternalDatasetReference( + ExternalDatasetReference expected, ExternalDatasetReference value) { + assertEquals(expected.getExternalSource(), value.getExternalSource()); + assertEquals(expected.getConnection(), value.getConnection()); + } +} diff --git a/pom.xml b/pom.xml index 508962ae515a..be820053deb8 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20230805-2.0.0 + v2-rev20230812-2.0.0 3.15.0 12.0.1 From 6cafedf634bc88f41b2b5d3ec1425341b02ac8b6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 14 Sep 2023 00:49:57 +0200 Subject: [PATCH 2521/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.30.0 (#2874) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index be820053deb8..64fc269071c4 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.29.0 + 1.30.0 pom import From 1985acc9343b8014f110252a02cd578ce73d6a7f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 14 Sep 2023 01:37:58 +0200 Subject: [PATCH 2522/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.42.0 (#2877) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 64fc269071c4..34eceda6cec3 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.41.1 + 2.42.0 pom import From 6196625d614ce80641008ffab3b5bf9720651bb9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 14 Sep 2023 01:38:20 +0200 Subject: [PATCH 2523/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.26.0 (#2873) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 34eceda6cec3..9b6268418333 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.25.0 + 2.26.0 test From 5702109aff3f5c3357c8bca83b18e6e16ca8d878 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 14 Sep 2023 01:38:38 +0200 Subject: [PATCH 2524/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.26.0 (#2872) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 9b6268418333..13abbec2aac9 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.25.0 + 2.26.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5c186115b720..e307f5c09b70 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.25.0 + 2.26.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c811b89f9caf..efe17ad41ae5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.25.0 + 2.26.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 080f1e84cf0e..e9e85bf7ee5e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.25.0 + 2.26.0 test From f8c163ea697f574a57e024c2872634fa2a03940c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 13 Sep 2023 21:31:49 -0400 Subject: [PATCH 2525/3441] chore(main): release 2.31.3-SNAPSHOT (#2865) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index dde17cb10002..479eecb8a56f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.31.2 + 2.31.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5ec3e04a6a8d..d1441f1a7909 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.31.2 + 2.31.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.31.2 + 2.31.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 13abbec2aac9..c7af98af7fc6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.31.2 + 2.31.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.31.2 + 2.31.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index efe17ad41ae5..6d3190ee29be 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.31.2 + 2.31.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index c9aaacf02c38..49aa7879b52b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.31.2:2.31.2 \ No newline at end of file +google-cloud-bigquery:2.31.2:2.31.3-SNAPSHOT \ No newline at end of file From 902e9b97cd548910354297ff6e605df094a03175 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 14 Sep 2023 03:32:21 +0200 Subject: [PATCH 2526/3441] deps: update actions/checkout action to v4 (#2862) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/checkout action to v4 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 4eab67ad5242..4959517d490f 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 + uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 with: persist-credentials: false From 6b6d809657376cf3591e732e6440770156ae0382 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 14 Sep 2023 04:30:29 +0200 Subject: [PATCH 2527/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.26.1 (#2851) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.26.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Mridula <66699525+mpeddada1@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c7af98af7fc6..9aafd3a38d46 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.26.0 + 2.26.1 test From ff8371e72aacff8ce3b550c55aa7bda3523bc2d8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 14 Sep 2023 04:30:51 +0200 Subject: [PATCH 2528/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.31.1 (#2848) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.31.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Mridula <66699525+mpeddada1@users.noreply.github.com> --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1665fb7d1643..73be1efe40ce 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.31.0 + 2.31.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e307f5c09b70..3189c3d6aa64 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.31.0 + 2.31.1 From 6b380a668045580b1aa1878c56ca73dcf576e68c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 14 Sep 2023 04:31:03 +0200 Subject: [PATCH 2529/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.26.0 (#2850) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.26.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Mridula <66699525+mpeddada1@users.noreply.github.com> --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3189c3d6aa64..7018c5c33f85 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.25.1 + 2.26.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6d3190ee29be..5de6ade6f5ab 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.25.1 + 2.26.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e9e85bf7ee5e..2e8a7890d2de 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.25.1 + 2.26.0 test From 0f7306cff99d7f38c504d006e1518b9389507673 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 14 Sep 2023 14:12:17 +0200 Subject: [PATCH 2530/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.27.0 (#2880) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9aafd3a38d46..2f9020484830 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.26.1 + 2.27.0 test From 93bdcedcd90927c6144adc3de5e6460d608ebfe2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 14 Sep 2023 14:12:30 +0200 Subject: [PATCH 2531/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.31.2 (#2881) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.31.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 73be1efe40ce..d5521d9866bc 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.31.1 + 2.31.2 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7018c5c33f85..0b6b5994bb56 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.31.1 + 2.31.2 From 42a999640dfe84005007d571daa58e526187c5e2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 09:28:30 -0400 Subject: [PATCH 2532/3441] chore(main): release 2.32.0 (#2878) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 19 +++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 26 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c833f4b7c4c..05a148540ffc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## [2.32.0](https://github.com/googleapis/java-bigquery/compare/v2.31.2...v2.32.0) (2023-09-14) + + +### Features + +* Add support for converting interval fields to threeten PeriodDuration ([#2838](https://github.com/googleapis/java-bigquery/issues/2838)) ([2294c2f](https://github.com/googleapis/java-bigquery/commit/2294c2ffca62a22a66786a9a4c6c9ef1be898e5d)) +* Add support for ExternalDatasetReference ([#2871](https://github.com/googleapis/java-bigquery/issues/2871)) ([bbb86fd](https://github.com/googleapis/java-bigquery/commit/bbb86fd8488ad253f2e9cf3fb08360330bd860a3)) + + +### Dependencies + +* Update actions/checkout action to v4 ([#2862](https://github.com/googleapis/java-bigquery/issues/2862)) ([902e9b9](https://github.com/googleapis/java-bigquery/commit/902e9b97cd548910354297ff6e605df094a03175)) +* Update actions/upload-artifact action to v3.1.3 ([#2867](https://github.com/googleapis/java-bigquery/issues/2867)) ([cbbf0fb](https://github.com/googleapis/java-bigquery/commit/cbbf0fb8a99c0633335d81cd36a7b53dfe9df20b)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.26.0 ([#2873](https://github.com/googleapis/java-bigquery/issues/2873)) ([6196625](https://github.com/googleapis/java-bigquery/commit/6196625d614ce80641008ffab3b5bf9720651bb9)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.30.0 ([#2874](https://github.com/googleapis/java-bigquery/issues/2874)) ([6cafedf](https://github.com/googleapis/java-bigquery/commit/6cafedf634bc88f41b2b5d3ec1425341b02ac8b6)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.15.0 ([#2870](https://github.com/googleapis/java-bigquery/issues/2870)) ([f24439b](https://github.com/googleapis/java-bigquery/commit/f24439b7adf1f08cee4b65918b4395861fe88517)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.26 ([#2868](https://github.com/googleapis/java-bigquery/issues/2868)) ([d01031c](https://github.com/googleapis/java-bigquery/commit/d01031cbc6d50f9aff8c6d49a8d2c54496779451)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.26 ([#2869](https://github.com/googleapis/java-bigquery/issues/2869)) ([edd7141](https://github.com/googleapis/java-bigquery/commit/edd714129b65d73f894591c4d40e1a8e79c36b04)) + ## [2.31.2](https://github.com/googleapis/java-bigquery/compare/v2.31.1...v2.31.2) (2023-09-05) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 479eecb8a56f..7f06c9245652 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.31.3-SNAPSHOT + 2.32.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d1441f1a7909..f7fdee10682b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.31.3-SNAPSHOT + 2.32.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.31.3-SNAPSHOT + 2.32.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2f9020484830..ed6e9d9646c6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.31.3-SNAPSHOT + 2.32.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.31.3-SNAPSHOT + 2.32.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5de6ade6f5ab..f602d39b9507 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.31.3-SNAPSHOT + 2.32.0 diff --git a/versions.txt b/versions.txt index 49aa7879b52b..0b7ba086a6c0 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.31.2:2.31.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.32.0:2.32.0 \ No newline at end of file From 599e3b3d7e948a0688c6e08d4910f9db5c532f99 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 19 Sep 2023 15:46:17 +0200 Subject: [PATCH 2533/3441] deps: update github/codeql-action action to v2.21.4 (#2829) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.21.4 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Mridula <66699525+mpeddada1@users.noreply.github.com> --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 4959517d490f..f3044fe4cabd 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@6ca1aa8c195c3ca3e77c174fe0356db1bce3b319 # v2.21.1 + uses: github/codeql-action/upload-sarif@a09933a12a80f87b87005513f0abb1494c27a716 # v2.21.4 with: sarif_file: results.sarif From 4a50f38129056da19ed5b0be1ab81ad786a1c276 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 19 Sep 2023 15:47:44 +0200 Subject: [PATCH 2534/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.27.2 (#2882) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0b6b5994bb56..d373ea764fe8 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.26.0 + 2.27.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f602d39b9507..0952a1d2bfa9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.26.0 + 2.27.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 2e8a7890d2de..a37ed03fbead 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.26.0 + 2.27.2 test From 6695f8e79bfd7503cdb991b931a252d57fd42e8a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 19 Sep 2023 15:48:02 +0200 Subject: [PATCH 2535/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.32.0 (#2884) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.32.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d5521d9866bc..3d19e575917e 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.31.2 + 2.32.0 ``` @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.31.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.32.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.31.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.32.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.31.2 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.32.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d373ea764fe8..55b2bfc13cff 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.31.2 + 2.32.0 From 2237ca2a1dbe9e1dc1d5e6c0dc2bd2fd39e01ef0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 19 Sep 2023 15:48:39 +0200 Subject: [PATCH 2536/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.27 (#2885) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.27 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/native-image-sample/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3d19e575917e..60649dc7b932 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.22.0') +implementation platform('com.google.cloud:libraries-bom:26.23.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 7f18e0025f0a..e5a19a5ee8b4 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.26 + 0.9.27 test From 123ad59b60bbda26c816b5442c3f006cae806932 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 19 Sep 2023 15:48:58 +0200 Subject: [PATCH 2537/3441] build(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.6.0 (#2887) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.6.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ed6e9d9646c6..6c00cf8f6636 100644 --- a/pom.xml +++ b/pom.xml @@ -224,7 +224,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.5.0 + 3.6.0 html From 86442522401a2b264ca547a6a619588592f954f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Sep 2023 10:01:47 -0400 Subject: [PATCH 2538/3441] build(deps): bump cryptography from 41.0.2 to 41.0.3 in /.kokoro (#2835) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): bump cryptography from 41.0.2 to 41.0.3 in /.kokoro Bumps [cryptography](https://github.com/pyca/cryptography) from 41.0.2 to 41.0.3. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/41.0.2...41.0.3) --- updated-dependencies: - dependency-name: cryptography dependency-type: indirect ... Signed-off-by: dependabot[bot] * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Owl Bot Co-authored-by: Mridula <66699525+mpeddada1@users.noreply.github.com> From 7e040e97eeec762ab97190dea33b94769d681bf0 Mon Sep 17 00:00:00 2001 From: Sumit Banerjee <123063931+forksumit@users.noreply.github.com> Date: Thu, 21 Sep 2023 18:38:37 +0530 Subject: [PATCH 2539/3441] fix: update samples snippet to write to BYTES instead of ARRAY (#2876) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: update snippet to write to BYTES instead of ARRAY * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../java/com/example/bigquery/InsertingDataTypes.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java b/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java index 3d721e727dec..0f2946488e7b 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java +++ b/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java @@ -30,6 +30,7 @@ import com.google.cloud.bigquery.TableDefinition; import com.google.cloud.bigquery.TableId; import com.google.cloud.bigquery.TableInfo; +import java.util.Base64; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -53,10 +54,7 @@ public static void insertingDataTypes(String datasetName, String tableName) { // Inserting data types Field name = Field.of("name", StandardSQLTypeName.STRING); Field age = Field.of("age", StandardSQLTypeName.INT64); - Field school = - Field.newBuilder("school", StandardSQLTypeName.BYTES) - .setMode(Field.Mode.REPEATED) - .build(); + Field school = Field.of("school", StandardSQLTypeName.BYTES); Field location = Field.of("location", StandardSQLTypeName.GEOGRAPHY); Field measurements = Field.newBuilder("measurements", StandardSQLTypeName.FLOAT64) @@ -86,7 +84,7 @@ public static void insertingDataTypes(String datasetName, String tableName) { Map rowContent = new HashMap<>(); rowContent.put("name", "Tom"); rowContent.put("age", 30); - rowContent.put("school", "Test University".getBytes()); + rowContent.put("school", Base64.getEncoder().encodeToString("Test University".getBytes())); rowContent.put("location", "POINT(1 2)"); rowContent.put("measurements", new Float[] {50.05f, 100.5f}); rowContent.put("datesTime", datesTimeContent); From 3895bd94b283b6ff731cfa94426ea0691e0d54c4 Mon Sep 17 00:00:00 2001 From: emkornfield Date: Mon, 25 Sep 2023 04:33:52 -0700 Subject: [PATCH 2540/3441] feat: Add support for FileSetSpec (#2888) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Add support for FileSetSpec * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../bigquery/ExternalTableDefinition.java | 30 +++++++++++++++++++ .../cloud/bigquery/LoadJobConfiguration.java | 26 ++++++++++++++++ .../bigquery/ExternalTableDefinitionTest.java | 2 ++ .../bigquery/LoadJobConfigurationTest.java | 2 ++ 4 files changed, 60 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index 18c78e75034d..d307b82321f5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -79,8 +79,20 @@ public Builder setSourceUris(List sourceUris) { return setSourceUrisImmut(ImmutableList.copyOf(sourceUris)); } + abstract Builder setFileSetSpecTypeInner(String spec); + abstract Builder setSourceUrisImmut(ImmutableList sourceUris); + /** + * Defines how to interpret files denoted by URIs. By default the files are assumed to be data + * files (this can be specified explicitly via FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH). A second + * option is "FILE_SET_SPEC_TYPE_NEW_LINE_DELIMITED_MANIFEST" which interprets each file as a + * manifest file, where each line is a reference to a file. + */ + public Builder setFileSetSpecType(String fileSetSpecType) { + return setFileSetSpecTypeInner(fileSetSpecType); + } + /** * Sets the source format, and possibly some parsing options, of the external data. Supported * formats are {@code CSV} and {@code NEWLINE_DELIMITED_JSON}. @@ -232,6 +244,14 @@ public List getSourceUris() { return getSourceUrisImmut(); } + @Nullable + public String getFileSetSpecType() { + return getFileSetSpecTypeInner(); + } + + @Nullable + abstract String getFileSetSpecTypeInner(); + @Nullable public abstract ImmutableList getSourceUrisImmut(); @@ -338,6 +358,10 @@ com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataC if (getHivePartitioningOptions() != null) { externalConfigurationPb.setHivePartitioningOptions(getHivePartitioningOptions().toPb()); } + if (getFileSetSpecType() != null) { + externalConfigurationPb.setFileSetSpecType(getFileSetSpecType()); + } + return externalConfigurationPb; } @@ -507,6 +531,9 @@ static ExternalTableDefinition fromPb(Table tablePb) { if (externalDataConfiguration.getReferenceFileSchemaUri() != null) { builder.setReferenceFileSchemaUri(externalDataConfiguration.getReferenceFileSchemaUri()); } + if (externalDataConfiguration.getFileSetSpecType() != null) { + builder.setFileSetSpecType(externalDataConfiguration.getFileSetSpecType()); + } } return builder.build(); } @@ -566,6 +593,9 @@ static ExternalTableDefinition fromExternalDataConfiguration( builder.setHivePartitioningOptions( HivePartitioningOptions.fromPb(externalDataConfiguration.getHivePartitioningOptions())); } + if (externalDataConfiguration.getFileSetSpecType() != null) { + builder.setFileSetSpecType(externalDataConfiguration.getFileSetSpecType()); + } return builder.build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index 321d542a6791..fefff3409f5d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -38,6 +38,7 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private static final long serialVersionUID = -2673554846792429829L; private final List sourceUris; + private final String fileSetSpecType; private final TableId destinationTable; private final List decimalTargetTypes; private final EncryptionConfiguration destinationEncryptionConfiguration; @@ -67,6 +68,7 @@ public static final class Builder extends JobConfiguration.Builder sourceUris; + private String fileSetSpecType; private TableId destinationTable; private List decimalTargetTypes; private EncryptionConfiguration destinationEncryptionConfiguration; @@ -107,6 +109,7 @@ private Builder(LoadJobConfiguration loadConfiguration) { this.schema = loadConfiguration.schema; this.ignoreUnknownValues = loadConfiguration.ignoreUnknownValues; this.sourceUris = loadConfiguration.sourceUris; + this.fileSetSpecType = loadConfiguration.fileSetSpecType; this.schemaUpdateOptions = loadConfiguration.schemaUpdateOptions; this.autodetect = loadConfiguration.autodetect; this.destinationEncryptionConfiguration = @@ -175,6 +178,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (loadConfigurationPb.getSourceUris() != null) { this.sourceUris = ImmutableList.copyOf(configurationPb.getLoad().getSourceUris()); } + if (loadConfigurationPb.getFileSetSpecType() != null) { + this.fileSetSpecType = loadConfigurationPb.getFileSetSpecType(); + } if (loadConfigurationPb.getSchemaUpdateOptions() != null) { ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); @@ -306,6 +312,17 @@ public Builder setSourceUris(List sourceUris) { return this; } + /** + * Defines how to interpret files denoted by URIs. By default the files are assumed to be data + * files (this can be specified explicitly via FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH). A second + * option is "FILE_SET_SPEC_TYPE_NEW_LINE_DELIMITED_MANIFEST" which interprets each file as a + * manifest file, where each line is a reference to a file. + */ + public Builder setFileSetSpecType(String fileSetSpecType) { + this.fileSetSpecType = fileSetSpecType; + return this; + } + /** * Defines the list of possible SQL data types to which the source decimal values are converted. * This list and the precision and the scale parameters of the decimal field determine the @@ -403,6 +420,7 @@ public LoadJobConfiguration build() { private LoadJobConfiguration(Builder builder) { super(builder); this.sourceUris = builder.sourceUris; + this.fileSetSpecType = builder.fileSetSpecType; this.destinationTable = builder.destinationTable; this.decimalTargetTypes = builder.decimalTargetTypes; this.createDisposition = builder.createDisposition; @@ -497,6 +515,10 @@ public List getSourceUris() { return sourceUris; } + public String getFileSetSpecType() { + return fileSetSpecType; + } + public List getDecimalTargetTypes() { return decimalTargetTypes; } @@ -575,6 +597,7 @@ ToStringHelper toStringHelper() { .add("schema", schema) .add("ignoreUnknownValue", ignoreUnknownValues) .add("sourceUris", sourceUris) + .add("fileSetSpecType", fileSetSpecType) .add("schemaUpdateOptions", schemaUpdateOptions) .add("autodetect", autodetect) .add("timePartitioning", timePartitioning) @@ -655,6 +678,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (sourceUris != null) { loadConfigurationPb.setSourceUris(ImmutableList.copyOf(sourceUris)); } + if (fileSetSpecType != null) { + loadConfigurationPb.setFileSetSpecType(fileSetSpecType); + } if (decimalTargetTypes != null) { loadConfigurationPb.setDecimalTargetTypes(ImmutableList.copyOf(decimalTargetTypes)); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index 4a74091620d1..3e67ad95992e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -60,6 +60,7 @@ public class ExternalTableDefinitionTest { .build(); private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION = ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) + .setFileSetSpecType("FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH") .setDecimalTargetTypes(DECIMAL_TARGET_TYPES) .setCompression(COMPRESSION) .setConnectionId(CONNECTION_ID) @@ -154,6 +155,7 @@ public void testToAndFromPbParquet() { private void compareExternalTableDefinition( ExternalTableDefinition expected, ExternalTableDefinition value) { assertEquals(expected, value); + assertEquals(expected.getFileSetSpecType(), value.getFileSetSpecType()); assertEquals(expected.getDecimalTargetTypes(), value.getDecimalTargetTypes()); assertEquals(expected.getCompression(), value.getCompression()); assertEquals(expected.getConnectionId(), value.getConnectionId()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index 341965fb8090..563a3f34a1f2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -91,6 +91,7 @@ public class LoadJobConfigurationTest { .setCreateDisposition(CREATE_DISPOSITION) .setWriteDisposition(WRITE_DISPOSITION) .setFormatOptions(CSV_OPTIONS) + .setFileSetSpecType("FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH") .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) .setMaxBadRecords(MAX_BAD_RECORDS) .setSchema(TABLE_SCHEMA) @@ -240,6 +241,7 @@ private void compareLoadJobConfiguration( LoadJobConfiguration expected, LoadJobConfiguration value) { assertEquals(expected, value); assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.getFileSetSpecType(), value.getFileSetSpecType()); assertEquals(expected.toString(), value.toString()); assertEquals(expected.getDestinationTable(), value.getDestinationTable()); assertEquals(expected.getDecimalTargetTypes(), value.getDecimalTargetTypes()); From 8c68dbe507406b134e1ff300d819f46836595c13 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 26 Sep 2023 21:50:27 +0200 Subject: [PATCH 2541/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.27.1 (#2896) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6c00cf8f6636..092adfe77f3f 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.27.0 + 2.27.1 test From 487c310b251000006a782cf331b73f33b7f5d2a1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 26 Sep 2023 21:50:41 +0200 Subject: [PATCH 2542/3441] build(deps): update dependency org.apache.maven.plugins:maven-shade-plugin to v3.5.1 (#2894) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 7f06c9245652..16888be6efb8 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -42,7 +42,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.0 + 3.5.1 package From 539b4e62f80598fb510fad37429ae0441db04c6f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 26 Sep 2023 21:53:39 +0200 Subject: [PATCH 2543/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.27 (#2886) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.27 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index e5a19a5ee8b4..1f18d2c067bc 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.26 + 0.9.27 true com.example.bigquery.NativeImageBigquerySample From b568026fe1b8fb7365306b718b5f8540fb13b8dc Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 26 Sep 2023 21:53:46 +0200 Subject: [PATCH 2544/3441] deps: update github/codeql-action action to v2.21.8 (#2889) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.21.8 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index f3044fe4cabd..19fbe5ba1ac8 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@a09933a12a80f87b87005513f0abb1494c27a716 # v2.21.4 + uses: github/codeql-action/upload-sarif@6a28655e3dcb49cb0840ea372fd6d17733edd8a4 # v2.21.8 with: sarif_file: results.sarif From e1d987199ad8994aa3e9115daf26e0fb27aef911 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 27 Sep 2023 03:11:10 +0200 Subject: [PATCH 2545/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.16.1 (#2892) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 092adfe77f3f..0afbe665235a 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230812-2.0.0 - 3.15.0 + 3.16.1 12.0.1 From 43a1345f3288ffbf7435a93a91537a06a6381595 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 11:51:35 -0400 Subject: [PATCH 2546/3441] chore(main): release 2.32.1-SNAPSHOT (#2883) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 16888be6efb8..adb3df32aba4 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.32.0 + 2.32.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f7fdee10682b..e8857bfc4ae5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.32.0 + 2.32.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.32.0 + 2.32.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0afbe665235a..40abac928d4d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.32.0 + 2.32.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.32.0 + 2.32.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0952a1d2bfa9..0a0005d9c357 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.32.0 + 2.32.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0b7ba086a6c0..9301fb640bcd 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.32.0:2.32.0 \ No newline at end of file +google-cloud-bigquery:2.32.0:2.32.1-SNAPSHOT \ No newline at end of file From e3655af235f002128979ed592c5aade33a4c7596 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 27 Sep 2023 22:37:07 +0200 Subject: [PATCH 2547/3441] deps: update actions/checkout action (#2893) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/checkout action * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 19fbe5ba1ac8..418aff482974 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 with: persist-credentials: false From ab4e1d026c34b7d28caaf5b0b1465ac2de62c530 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 27 Sep 2023 22:37:19 +0200 Subject: [PATCH 2548/3441] deps: update github/codeql-action action to v2.21.8 - abandoned (#2897) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.21.8 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot From 33a729f367ba6d9f04595e1b781c7eb321289380 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 27 Sep 2023 22:56:22 +0200 Subject: [PATCH 2549/3441] deps: update github/codeql-action action to v2.21.9 (#2901) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 418aff482974..32d3cc29b88d 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@6a28655e3dcb49cb0840ea372fd6d17733edd8a4 # v2.21.8 + uses: github/codeql-action/upload-sarif@ddccb873888234080b77e9bc2d4764d5ccaaccf9 # v2.21.9 with: sarif_file: results.sarif From 682460580d0e50c4c7993ceef7daac93b49880f7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 27 Sep 2023 17:37:27 -0400 Subject: [PATCH 2550/3441] chore(main): release 2.33.0 (#2900) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 24 ++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 31 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 05a148540ffc..94c2f34ac908 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog +## [2.33.0](https://github.com/googleapis/java-bigquery/compare/v2.32.0...v2.33.0) (2023-09-27) + + +### Features + +* Add support for FileSetSpec ([#2888](https://github.com/googleapis/java-bigquery/issues/2888)) ([3895bd9](https://github.com/googleapis/java-bigquery/commit/3895bd94b283b6ff731cfa94426ea0691e0d54c4)) + + +### Bug Fixes + +* Update samples snippet to write to BYTES instead of ARRAY<BYTES> ([#2876](https://github.com/googleapis/java-bigquery/issues/2876)) ([7e040e9](https://github.com/googleapis/java-bigquery/commit/7e040e97eeec762ab97190dea33b94769d681bf0)) + + +### Dependencies + +* Update actions/checkout action ([#2893](https://github.com/googleapis/java-bigquery/issues/2893)) ([e3655af](https://github.com/googleapis/java-bigquery/commit/e3655af235f002128979ed592c5aade33a4c7596)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.16.1 ([#2892](https://github.com/googleapis/java-bigquery/issues/2892)) ([e1d9871](https://github.com/googleapis/java-bigquery/commit/e1d987199ad8994aa3e9115daf26e0fb27aef911)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.27 ([#2885](https://github.com/googleapis/java-bigquery/issues/2885)) ([2237ca2](https://github.com/googleapis/java-bigquery/commit/2237ca2a1dbe9e1dc1d5e6c0dc2bd2fd39e01ef0)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.27 ([#2886](https://github.com/googleapis/java-bigquery/issues/2886)) ([539b4e6](https://github.com/googleapis/java-bigquery/commit/539b4e62f80598fb510fad37429ae0441db04c6f)) +* Update github/codeql-action action to v2.21.4 ([#2829](https://github.com/googleapis/java-bigquery/issues/2829)) ([599e3b3](https://github.com/googleapis/java-bigquery/commit/599e3b3d7e948a0688c6e08d4910f9db5c532f99)) +* Update github/codeql-action action to v2.21.8 - abandoned ([#2897](https://github.com/googleapis/java-bigquery/issues/2897)) ([ab4e1d0](https://github.com/googleapis/java-bigquery/commit/ab4e1d026c34b7d28caaf5b0b1465ac2de62c530)) +* Update github/codeql-action action to v2.21.8 ([#2889](https://github.com/googleapis/java-bigquery/issues/2889)) ([b568026](https://github.com/googleapis/java-bigquery/commit/b568026fe1b8fb7365306b718b5f8540fb13b8dc)) +* Update github/codeql-action action to v2.21.9 ([#2901](https://github.com/googleapis/java-bigquery/issues/2901)) ([33a729f](https://github.com/googleapis/java-bigquery/commit/33a729f367ba6d9f04595e1b781c7eb321289380)) + ## [2.32.0](https://github.com/googleapis/java-bigquery/compare/v2.31.2...v2.32.0) (2023-09-14) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index adb3df32aba4..5c3a2a765298 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.32.1-SNAPSHOT + 2.33.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e8857bfc4ae5..8e836b6f39ad 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.32.1-SNAPSHOT + 2.33.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.32.1-SNAPSHOT + 2.33.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 40abac928d4d..13123299dfb5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.32.1-SNAPSHOT + 2.33.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.32.1-SNAPSHOT + 2.33.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0a0005d9c357..7f01cd52ecf7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.32.1-SNAPSHOT + 2.33.0 diff --git a/versions.txt b/versions.txt index 9301fb640bcd..139a31485891 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.32.0:2.32.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.33.0:2.33.0 \ No newline at end of file From 8f85a4d540623e8b4c83005e62e842ba36f8fb1b Mon Sep 17 00:00:00 2001 From: Obada Alabbadi <76101898+obada-ab@users.noreply.github.com> Date: Thu, 28 Sep 2023 10:18:14 +0200 Subject: [PATCH 2551/3441] fix: dry run NPE when there is no query parameters (#2899) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [X] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [X] Ensure the tests and linter pass - [X] Code coverage does not decrease (if any source code was changed) - [X] Appropriate docs were updated (if necessary) Fixes #2895 ☕️ --- .../google/cloud/bigquery/ConnectionImpl.java | 5 +++- .../cloud/bigquery/ConnectionImplTest.java | 28 +++++++++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 28 +++++++++++++++++++ 3 files changed, 60 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index 17a459312b21..2d0367790e18 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -55,6 +55,7 @@ import java.io.IOException; import java.util.AbstractList; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.LinkedList; import java.util.List; @@ -173,7 +174,9 @@ public BigQueryDryRunResult dryRun(String sql) throws BigQuerySQLException { List queryParametersPb = dryRunJob.getStatistics().getQuery().getUndeclaredQueryParameters(); List queryParameters = - Lists.transform(queryParametersPb, QUERY_PARAMETER_FROM_PB_FUNCTION); + queryParametersPb == null + ? Collections.emptyList() + : Lists.transform(queryParametersPb, QUERY_PARAMETER_FROM_PB_FUNCTION); QueryStatistics queryStatistics = JobStatistics.fromPb(dryRunJob); SessionInfo sessionInfo = queryStatistics.getSessionInfo() == null ? null : queryStatistics.getSessionInfo(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java index d6348f053e86..dff73d6bdf9b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java @@ -237,6 +237,34 @@ public void testQueryDryRun() throws BigQuerySQLException { .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); } + @Test + public void testQueryDryRunNoQueryParameters() throws BigQuerySQLException { + com.google.api.services.bigquery.model.JobStatistics2 queryMock = + new com.google.api.services.bigquery.model.JobStatistics2() + .setSchema(FAST_QUERY_TABLESCHEMA); + com.google.api.services.bigquery.model.JobStatistics jobStatsMock = + new com.google.api.services.bigquery.model.JobStatistics() + .setCreationTime(1234L) + .setStartTime(5678L) + .setQuery(queryMock); + com.google.api.services.bigquery.model.JobConfigurationQuery jobConfigurationQuery = + new com.google.api.services.bigquery.model.JobConfigurationQuery(); + com.google.api.services.bigquery.model.JobConfiguration jobConfig = + new com.google.api.services.bigquery.model.JobConfiguration() + .setQuery(jobConfigurationQuery); + com.google.api.services.bigquery.model.Job mockDryRunJob = + new com.google.api.services.bigquery.model.Job() + .setStatistics(jobStatsMock) + .setConfiguration(jobConfig); + when(bigqueryRpcMock.createJobForQuery(any(com.google.api.services.bigquery.model.Job.class))) + .thenReturn(mockDryRunJob); + BigQueryDryRunResult dryRunResult = connection.dryRun(DRY_RUN_SQL); + assertEquals(0, dryRunResult.getQueryParameters().size()); + assertEquals(QUERY_SCHEMA, dryRunResult.getSchema()); + verify(bigqueryRpcMock, times(1)) + .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); + } + @Test public void testParseDataTask() throws InterruptedException { BlockingQueue, Boolean>> pageCache = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index cf180f9a36b6..549066c5fc78 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2989,6 +2989,34 @@ public void testConnectionImplDryRun() throws SQLException { assertEquals(StatementType.SELECT, queryStatistics.getStatementType()); } + @Test + public void testConnectionImplDryRunNoQueryParameters() throws SQLException { + String query = + String.format( + "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, " + + "TimestampField, FloatField, NumericField, TimeField, DateField, DateTimeField, " + + "GeographyField, RecordField.BytesField, RecordField.BooleanField, " + + "IntegerArrayField from %s order by TimestampField", + TABLE_ID_FASTQUERY_BQ_RESULTSET.getTable()); + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setCreateSession(true) + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryDryRunResult bigQueryDryRunResultSet = connection.dryRun(query); + assertNotNull(bigQueryDryRunResultSet.getSchema()); + assertEquals( + BQ_RESULTSET_EXPECTED_SCHEMA, bigQueryDryRunResultSet.getSchema()); // match the schema + List queryParameters = bigQueryDryRunResultSet.getQueryParameters(); + assertEquals(0, queryParameters.size()); + QueryStatistics queryStatistics = bigQueryDryRunResultSet.getStatistics().getQueryStatistics(); + assertNotNull(queryStatistics); + SessionInfo sessionInfo = bigQueryDryRunResultSet.getStatistics().getSessionInfo(); + assertNotNull(sessionInfo.getSessionId()); + assertEquals(StatementType.SELECT, queryStatistics.getStatementType()); + } + @Test // This test case test the order of the records, making sure that the result is not jumbled up due // to the multithreaded BigQueryResult implementation From b0a3311a85132f077f183251c3ad4f1205fb2fb3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 28 Sep 2023 14:28:18 -0400 Subject: [PATCH 2552/3441] chore(main): release 2.33.1-SNAPSHOT (#2902) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(main): release 2.33.1-SNAPSHOT * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Owl Bot --- README.md | 6 +++--- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 60649dc7b932..e7eb451e7140 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.32.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.33.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.32.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.33.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.32.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.33.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5c3a2a765298..9ba91158f58b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.33.0 + 2.33.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8e836b6f39ad..64ca9d22300a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.33.0 + 2.33.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.33.0 + 2.33.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 13123299dfb5..047ad0cdb551 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.33.0 + 2.33.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.33.0 + 2.33.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7f01cd52ecf7..e0363b69e579 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.33.0 + 2.33.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 139a31485891..d9423a3ac367 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.33.0:2.33.0 \ No newline at end of file +google-cloud-bigquery:2.33.0:2.33.1-SNAPSHOT \ No newline at end of file From 0ab89134897bed696d50e22aebc2f651684ff999 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 28 Sep 2023 21:06:34 +0200 Subject: [PATCH 2553/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.43.0 (#2906) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 047ad0cdb551..3d5313499553 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.42.0 + 2.43.0 pom import From b81202b3bc4d53b2ef57edb0f9b9f3b9318c8871 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 28 Sep 2023 21:06:59 +0200 Subject: [PATCH 2554/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.33.0 (#2903) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.33.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e7eb451e7140..80b1ce1a9937 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.32.0 + 2.33.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 55b2bfc13cff..65f4ca961826 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.32.0 + 2.33.0 From 91b83db5343d757cc02e1958b6028c14cfd72e52 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 28 Sep 2023 15:45:44 -0400 Subject: [PATCH 2555/3441] chore(main): release 2.33.1 (#2907) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94c2f34ac908..732bdec1ad2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.33.1](https://github.com/googleapis/java-bigquery/compare/v2.33.0...v2.33.1) (2023-09-28) + + +### Bug Fixes + +* Dry run NPE when there is no query parameters ([#2899](https://github.com/googleapis/java-bigquery/issues/2899)) ([8f85a4d](https://github.com/googleapis/java-bigquery/commit/8f85a4d540623e8b4c83005e62e842ba36f8fb1b)) + ## [2.33.0](https://github.com/googleapis/java-bigquery/compare/v2.32.0...v2.33.0) (2023-09-27) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9ba91158f58b..cef22f9b9f2a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.33.1-SNAPSHOT + 2.33.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 64ca9d22300a..f2d3a307a318 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.33.1-SNAPSHOT + 2.33.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.33.1-SNAPSHOT + 2.33.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3d5313499553..fedd467c0531 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.33.1-SNAPSHOT + 2.33.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.33.1-SNAPSHOT + 2.33.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e0363b69e579..dae733610551 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.33.1-SNAPSHOT + 2.33.1 diff --git a/versions.txt b/versions.txt index d9423a3ac367..ec7dfb0ad53d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.33.0:2.33.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.33.1:2.33.1 \ No newline at end of file From 436ee8ebe9104f6ca721f1a14bd409158c7bdb5a Mon Sep 17 00:00:00 2001 From: Obada Alabbadi <76101898+obada-ab@users.noreply.github.com> Date: Tue, 3 Oct 2023 10:42:13 +0200 Subject: [PATCH 2556/3441] fix: getDouble in read API path (#2919) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: - [X] Make sure to open an issue as a [bug/issue](https://togithub.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea - [X] Ensure the tests and linter pass - [X] Code coverage does not decrease (if any source code was changed) - [X] Appropriate docs were updated (if necessary) Fixes #2905 ☕️ --- README.md | 6 +++--- .../java/com/google/cloud/bigquery/BigQueryResultImpl.java | 2 +- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 80b1ce1a9937..80d18fd30961 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.33.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.33.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.33.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.33.1" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.33.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.33.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java index 2a2aba7cd2ba..e944efcebabf 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java @@ -337,7 +337,7 @@ public double getDouble(String fieldName) throws SQLException { throw new SQLException(String.format("Field %s not found", fieldName)); } Object curVal = curRow.get(fieldName); - return curVal == null ? 0.0d : ((BigDecimal) curVal).doubleValue(); + return curVal == null ? 0.0d : new BigDecimal(curVal.toString()).doubleValue(); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 549066c5fc78..1ff85974552d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3230,7 +3230,7 @@ public void testReadAPIIterationAndOrderAsync() throws SQLException, ExecutionException, InterruptedException { // use read API to read 300K records and check the order String query = - "SELECT date, county, state_name, confirmed_cases, deaths FROM " + "SELECT date, county, state_name, confirmed_cases, deaths / 10 FROM " + TABLE_ID_LARGE.getTable() + " where date is not null and county is not null and state_name is not null order by confirmed_cases asc limit 300000"; @@ -3255,7 +3255,8 @@ public void testReadAPIIterationAndOrderAsync() assertNotNull(rs.getString(1)); assertNotNull(rs.getString(2)); assertTrue(rs.getInt(3) >= 0); - assertTrue(rs.getInt(4) >= 0); + assertTrue(rs.getDouble(3) >= 0); + assertTrue(rs.getDouble(4) >= 0); // check if the records are sorted assertTrue(rs.getInt(3) >= lasConfirmedCases); From bc6ae298164e03be7ce6a7c6be2ef8e955c33a36 Mon Sep 17 00:00:00 2001 From: Alice <65933803+alicejli@users.noreply.github.com> Date: Tue, 10 Oct 2023 09:47:34 -0400 Subject: [PATCH 2557/3441] build: do not declare javadoc plugin version (#2929) --- README.md | 2 +- pom.xml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 80d18fd30961..361806ec55cc 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.23.0') +implementation platform('com.google.cloud:libraries-bom:26.24.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/pom.xml b/pom.xml index fedd467c0531..860f1f3292e5 100644 --- a/pom.xml +++ b/pom.xml @@ -224,7 +224,6 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.6.0 html From 66ab2294d57580deca45008da012e75412db6418 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 10 Oct 2023 17:03:09 +0200 Subject: [PATCH 2558/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.33.1 (#2909) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.33.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 361806ec55cc..2a30c8073a9c 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.33.0 + 2.33.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 65f4ca961826..10c1f5de199e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.33.0 + 2.33.1 From 719be8a6a010fa8eaf535bb34f2ee2505f461bab Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 10 Oct 2023 17:03:33 +0200 Subject: [PATCH 2559/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.29.0 (#2910) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.29.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 860f1f3292e5..df707a4a76fa 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.26.0 + 2.29.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 10c1f5de199e..eab1c8fcd048 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.26.0 + 2.29.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index dae733610551..8f1de32c5a00 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.26.0 + 2.29.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a37ed03fbead..20910eb895f7 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.26.0 + 2.29.0 test From 052f5c2f722243be39c0d93b1f81b81a0db48ef1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 10 Oct 2023 17:03:57 +0200 Subject: [PATCH 2560/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.29.0 (#2911) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.29.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index df707a4a76fa..1503c0d7bd52 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.26.0 + 2.29.0 test From e05349476a8d987b2cd24ee6a80b2d9b7b9463ee Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Oct 2023 16:21:12 +0200 Subject: [PATCH 2561/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.33.0 (#2912) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.33.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1503c0d7bd52..fe077b04381f 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.30.0 + 1.33.0 pom import From e497cb07c16350bf3b24921368cb3fb78fc3512b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Oct 2023 16:21:39 +0200 Subject: [PATCH 2562/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.27.3 (#2914) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.27.3 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index eab1c8fcd048..a3b699fef8f8 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.27.2 + 2.27.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8f1de32c5a00..2fc00f056fe5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.27.2 + 2.27.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 20910eb895f7..0436705e7fb8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.27.2 + 2.27.3 test From f0fb64f43817c5aa53adb6c5152afe3fd44b7df1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Oct 2023 16:22:00 +0200 Subject: [PATCH 2563/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20230925-2.0.0 (#2921) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20230925-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fe077b04381f..755ec2034fbd 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20230812-2.0.0 + v2-rev20230925-2.0.0 3.16.1 12.0.1 From f67a67078791a685bdfb0be86d461737a7fa9314 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Oct 2023 16:22:22 +0200 Subject: [PATCH 2564/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.8 (#2924) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.5.8 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 755ec2034fbd..47e367328032 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.5.7 + 1.5.8 From 33ce4aee8b10f630212d96901af00f063c43f440 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Oct 2023 16:22:53 +0200 Subject: [PATCH 2565/3441] deps: update github/codeql-action action to v2.22.0 (#2926) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.22.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 32d3cc29b88d..72c0fc871713 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@ddccb873888234080b77e9bc2d4764d5ccaaccf9 # v2.21.9 + uses: github/codeql-action/upload-sarif@2cb752a87e96af96708ab57187ab6372ee1973ab # v2.22.0 with: sarif_file: results.sarif From 93bfd8eb7fe35121e97b06cf8b103a3960fe9535 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Oct 2023 16:23:21 +0200 Subject: [PATCH 2566/3441] deps: update ossf/scorecard-action action to v2.3.0 (#2927) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update ossf/scorecard-action action to v2.3.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 72c0fc871713..14f628fc9474 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -37,7 +37,7 @@ jobs: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@08b4669551908b1024bb425080c797723083c031 # v2.2.0 + uses: ossf/scorecard-action@483ef80eb98fb506c348f7d62e28055e49fe2398 # v2.3.0 with: results_file: results.sarif results_format: sarif From 7c05b51364e38a4fb6b193ef6de930110c1266db Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 11 Oct 2023 11:28:29 -0400 Subject: [PATCH 2567/3441] chore(main): release 2.33.2-SNAPSHOT (#2908) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index cef22f9b9f2a..5b508fd35edb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.33.1 + 2.33.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f2d3a307a318..c7d9db971c65 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.33.1 + 2.33.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.33.1 + 2.33.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 47e367328032..0715de4df938 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.33.1 + 2.33.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.33.1 + 2.33.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2fc00f056fe5..daf40c959575 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.33.1 + 2.33.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index ec7dfb0ad53d..b9e92abbc625 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.33.1:2.33.1 \ No newline at end of file +google-cloud-bigquery:2.33.1:2.33.2-SNAPSHOT \ No newline at end of file From 25a94f1da840c0cb32bed882e18f7b10f9890d04 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Oct 2023 17:28:57 +0200 Subject: [PATCH 2568/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.17.0 (#2931) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0715de4df938..a771fb99b4a9 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20230925-2.0.0 - 3.16.1 + 3.17.0 12.0.1 From f6b4b60a08ad3de409267581ba2e1145d5d1073d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Oct 2023 17:29:30 +0200 Subject: [PATCH 2569/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.27.4 (#2933) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a3b699fef8f8..0648fec10df0 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.27.3 + 2.27.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index daf40c959575..4236aca133b8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.27.3 + 2.27.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0436705e7fb8..352e86adabc8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.27.3 + 2.27.4 test From 7ae7b99ab21fcd6e74cbaa95e750da961c09ae80 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Oct 2023 17:29:54 +0200 Subject: [PATCH 2570/3441] deps: update github/codeql-action action to v2.22.1 (#2934) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 14f628fc9474..71db8036bb06 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@2cb752a87e96af96708ab57187ab6372ee1973ab # v2.22.0 + uses: github/codeql-action/upload-sarif@fdcae64e1484d349b3366718cdfef3d404390e85 # v2.22.1 with: sarif_file: results.sarif From 1831e5f8bcdb70e5d562925277c90774e830b037 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Oct 2023 18:53:16 +0200 Subject: [PATCH 2571/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.44.0 (#2936) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a771fb99b4a9..1e6b4f8d5733 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.43.0 + 2.44.0 pom import From b82692a82f4bbed88b7954cd50aeb6cef1416b52 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 11 Oct 2023 13:56:20 -0400 Subject: [PATCH 2572/3441] chore(main): release 2.33.2 (#2937) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 18 ++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 25 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 732bdec1ad2d..07d11f888827 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [2.33.2](https://github.com/googleapis/java-bigquery/compare/v2.33.1...v2.33.2) (2023-10-11) + + +### Bug Fixes + +* GetDouble in read API path ([#2919](https://github.com/googleapis/java-bigquery/issues/2919)) ([436ee8e](https://github.com/googleapis/java-bigquery/commit/436ee8ebe9104f6ca721f1a14bd409158c7bdb5a)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.29.0 ([#2911](https://github.com/googleapis/java-bigquery/issues/2911)) ([052f5c2](https://github.com/googleapis/java-bigquery/commit/052f5c2f722243be39c0d93b1f81b81a0db48ef1)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230925-2.0.0 ([#2921](https://github.com/googleapis/java-bigquery/issues/2921)) ([f0fb64f](https://github.com/googleapis/java-bigquery/commit/f0fb64f43817c5aa53adb6c5152afe3fd44b7df1)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.33.0 ([#2912](https://github.com/googleapis/java-bigquery/issues/2912)) ([e053494](https://github.com/googleapis/java-bigquery/commit/e05349476a8d987b2cd24ee6a80b2d9b7b9463ee)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.17.0 ([#2931](https://github.com/googleapis/java-bigquery/issues/2931)) ([25a94f1](https://github.com/googleapis/java-bigquery/commit/25a94f1da840c0cb32bed882e18f7b10f9890d04)) +* Update github/codeql-action action to v2.22.0 ([#2926](https://github.com/googleapis/java-bigquery/issues/2926)) ([33ce4ae](https://github.com/googleapis/java-bigquery/commit/33ce4aee8b10f630212d96901af00f063c43f440)) +* Update github/codeql-action action to v2.22.1 ([#2934](https://github.com/googleapis/java-bigquery/issues/2934)) ([7ae7b99](https://github.com/googleapis/java-bigquery/commit/7ae7b99ab21fcd6e74cbaa95e750da961c09ae80)) +* Update ossf/scorecard-action action to v2.3.0 ([#2927](https://github.com/googleapis/java-bigquery/issues/2927)) ([93bfd8e](https://github.com/googleapis/java-bigquery/commit/93bfd8eb7fe35121e97b06cf8b103a3960fe9535)) + ## [2.33.1](https://github.com/googleapis/java-bigquery/compare/v2.33.0...v2.33.1) (2023-09-28) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5b508fd35edb..cd086b11166d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.33.2-SNAPSHOT + 2.33.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c7d9db971c65..53bd43904fdc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.33.2-SNAPSHOT + 2.33.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.33.2-SNAPSHOT + 2.33.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1e6b4f8d5733..9def71c13210 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.33.2-SNAPSHOT + 2.33.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.33.2-SNAPSHOT + 2.33.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4236aca133b8..53288c26ee2b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.33.2-SNAPSHOT + 2.33.2 diff --git a/versions.txt b/versions.txt index b9e92abbc625..004398030cdb 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.33.1:2.33.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.33.2:2.33.2 \ No newline at end of file From 1d660fa19f0d82c2b6ec2ea9590881e513274c25 Mon Sep 17 00:00:00 2001 From: Teja Vemparala <40125841+vteja11@users.noreply.github.com> Date: Thu, 12 Oct 2023 10:19:13 -0700 Subject: [PATCH 2573/3441] feat: Add BigLakeConfiguration Property in StandardTableDefinition.java (#2916) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added BigLakeConfiguration in standard table defenition * feat: Add BigLakeConfiguration Property in StandardTableDefinition.java * feat: Update copyright dates to 2023 * feat: Removed bigstore and gs:/ from docs * feat: Renamed Biglake to BigLake * feat: Adding difference entry to resolve clirr error * feat: Refactored formatting to comply with project rules * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../clirr-ignored-differences.xml | 5 + .../cloud/bigquery/BigLakeConfiguration.java | 120 ++++++++++++++++++ .../bigquery/StandardTableDefinition.java | 21 +++ .../bigquery/BigLakeConfigurationTest.java | 80 ++++++++++++ .../bigquery/StandardTableDefinitionTest.java | 8 ++ 5 files changed, 234 insertions(+) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigLakeConfiguration.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigLakeConfigurationTest.java diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index eaeeded132be..b2d5aef0feb3 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -109,4 +109,9 @@ com/google/cloud/bigquery/DatasetInfo* *setExternalDatasetReference(*) + + 7013 + com/google/cloud/bigquery/StandardTableDefinition* + *BigLakeConfiguration(*) + \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigLakeConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigLakeConfiguration.java new file mode 100644 index 000000000000..76b3f55d942d --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigLakeConfiguration.java @@ -0,0 +1,120 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import java.io.Serializable; + +@AutoValue +public abstract class BigLakeConfiguration implements Serializable { + + private static final long serialVersionUID = -5951589238459622025L; + + /** + * Credential reference for accessing external storage system. Normalized as + * project_id.location_id.connection_id. + * + * @return value or {@code null} for none + */ + public abstract String getConnectionId(); + + /** + * Open source file format that the table data is stored in. Currently only PARQUET is supported. + * + * @return value or {@code null} for none + */ + public abstract String getFileFormat(); + + /** + * Fully qualified location prefix of the external folder where data is stored. Starts with + * "gs://" ends with "/". Does not contain "*". + * + * @return value or {@code null} for none + */ + public abstract String getStorageUri(); + + /** + * Open source file format that the table data is stored in. Currently only PARQUET is supported. + * + * @return value or {@code null} for none + */ + public abstract String getTableFormat(); + + public static Builder newBuilder() { + return new AutoValue_BigLakeConfiguration.Builder(); + } + + public abstract Builder toBuilder(); + + @AutoValue.Builder + public abstract static class Builder { + /** + * [Required] Required and immutable. Credential reference for accessing external storage + * system. Normalized as project_id.location_id.connection_id. + * + * @param connectionId connectionId or {@code null} for none + */ + public abstract Builder setConnectionId(String connectionId); + + /** + * [Required] Required and immutable. Open source file format that the table data is stored in. + * Currently only PARQUET is supported. + * + * @param fileFormat fileFormat or {@code null} for none + */ + public abstract Builder setFileFormat(String fileFormat); + + /** + * [Required] Required and immutable. Fully qualified location prefix of the external folder + * where data is stored. Starts with "gs://" and ends with "/". Does not contain "*". + * + * @param storageUri storageUri or {@code null} for none + */ + public abstract Builder setStorageUri(String storageUri); + + /** + * [Required] Required and immutable. Open source file format that the table data is stored in. + * Currently only PARQUET is supported. + * + * @param tableFormat tableFormat or {@code null} for none + */ + public abstract Builder setTableFormat(String tableFormat); + + public abstract BigLakeConfiguration build(); + } + + com.google.api.services.bigquery.model.BigLakeConfiguration toPb() { + com.google.api.services.bigquery.model.BigLakeConfiguration biglakeConfiguration = + new com.google.api.services.bigquery.model.BigLakeConfiguration(); + biglakeConfiguration.setConnectionId(getConnectionId()); + biglakeConfiguration.setFileFormat(getFileFormat()); + biglakeConfiguration.setStorageUri(getStorageUri()); + biglakeConfiguration.setTableFormat(getTableFormat()); + + return biglakeConfiguration; + } + + static BigLakeConfiguration fromPb( + com.google.api.services.bigquery.model.BigLakeConfiguration biglakeConfigurationPb) { + return newBuilder() + .setConnectionId(biglakeConfigurationPb.getConnectionId()) + .setFileFormat(biglakeConfigurationPb.getFileFormat()) + .setStorageUri(biglakeConfigurationPb.getStorageUri()) + .setTableFormat(biglakeConfigurationPb.getTableFormat()) + .build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index f4459d734a56..0319a6a4dd9d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -177,6 +177,12 @@ public abstract static class Builder public abstract Builder setTableConstraints(TableConstraints tableConstraints); + /** + * Set the configuration of a BigLake managed table. If not set, the table is not a BigLake + * managed table. + */ + public abstract Builder setBigLakeConfiguration(BigLakeConfiguration biglakeConfiguration); + /** Creates a {@code StandardTableDefinition} object. */ public abstract StandardTableDefinition build(); } @@ -300,6 +306,13 @@ public abstract static class Builder @Nullable public abstract TableConstraints getTableConstraints(); + /** + * [Optional] Specifies the configuration of a BigLake managed table. The value may be {@code + * null}. + */ + @Nullable + public abstract BigLakeConfiguration getBigLakeConfiguration(); + /** Returns a builder for a BigQuery standard table definition. */ public static Builder newBuilder() { return new AutoValue_StandardTableDefinition.Builder().setType(Type.TABLE); @@ -348,6 +361,9 @@ Table toPb() { if (getTableConstraints() != null) { tablePb.setTableConstraints(getTableConstraints().toPb()); } + if (getBigLakeConfiguration() != null) { + tablePb.setBiglakeConfiguration(getBigLakeConfiguration().toPb()); + } return tablePb; } @@ -409,6 +425,11 @@ static StandardTableDefinition fromPb(Table tablePb) { if (tablePb.getTableConstraints() != null) { builder.setTableConstraints(TableConstraints.fromPb(tablePb.getTableConstraints())); } + if (tablePb.getBiglakeConfiguration() != null) { + builder.setBigLakeConfiguration( + BigLakeConfiguration.fromPb(tablePb.getBiglakeConfiguration())); + } + return builder.setNumBytes(tablePb.getNumBytes()).setLocation(tablePb.getLocation()).build(); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigLakeConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigLakeConfigurationTest.java new file mode 100644 index 000000000000..afb2b5b10afb --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigLakeConfigurationTest.java @@ -0,0 +1,80 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class BigLakeConfigurationTest { + + private static final String STORAGE_URI = "gs://storage-uri"; + private static final String FILE_FORMAT = "PARQUET"; + private static final String TABLE_FORMAT = "ICEBERG"; + private static final String CONNECTION_ID = "us.test-connection"; + + private static final BigLakeConfiguration BIG_LAKE_CONFIGURATION = + BigLakeConfiguration.newBuilder() + .setStorageUri(STORAGE_URI) + .setFileFormat(FILE_FORMAT) + .setTableFormat(TABLE_FORMAT) + .setConnectionId(CONNECTION_ID) + .build(); + private static final com.google.api.services.bigquery.model.BigLakeConfiguration + BIG_LAKE_CONFIGURATION_PB = + new com.google.api.services.bigquery.model.BigLakeConfiguration() + .setStorageUri(STORAGE_URI) + .setFileFormat(FILE_FORMAT) + .setTableFormat(TABLE_FORMAT) + .setConnectionId(CONNECTION_ID); + + @Test + public void testToBuilder() { + assertEquals(STORAGE_URI, BIG_LAKE_CONFIGURATION.getStorageUri()); + assertEquals(FILE_FORMAT, BIG_LAKE_CONFIGURATION.getFileFormat()); + assertEquals(TABLE_FORMAT, BIG_LAKE_CONFIGURATION.getTableFormat()); + assertEquals(CONNECTION_ID, BIG_LAKE_CONFIGURATION.getConnectionId()); + } + + @Test + public void testToPb() { + assertBigLakeConfiguration(BIG_LAKE_CONFIGURATION_PB, BIG_LAKE_CONFIGURATION.toPb()); + } + + @Test + public void testFromPb() { + assertBigLakeConfiguration( + BIG_LAKE_CONFIGURATION, BigLakeConfiguration.fromPb(BIG_LAKE_CONFIGURATION_PB)); + } + + private static void assertBigLakeConfiguration( + BigLakeConfiguration expected, BigLakeConfiguration actual) { + assertEquals(expected.getConnectionId(), actual.getConnectionId()); + assertEquals(expected.getTableFormat(), actual.getTableFormat()); + assertEquals(expected.getStorageUri(), actual.getStorageUri()); + assertEquals(expected.getFileFormat(), actual.getFileFormat()); + } + + private static void assertBigLakeConfiguration( + com.google.api.services.bigquery.model.BigLakeConfiguration expected, + com.google.api.services.bigquery.model.BigLakeConfiguration actual) { + assertEquals(expected.getConnectionId(), actual.getConnectionId()); + assertEquals(expected.getTableFormat(), actual.getTableFormat()); + assertEquals(expected.getStorageUri(), actual.getStorageUri()); + assertEquals(expected.getFileFormat(), actual.getFileFormat()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java index df0e5d79b0db..8fbe3cefe7a6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -65,6 +65,13 @@ public class StandardTableDefinitionTest { TimePartitioning.of(TimePartitioning.Type.DAY, 42); private static final Clustering CLUSTERING = Clustering.newBuilder().setFields(ImmutableList.of("Foo", "Bar")).build(); + private static final BigLakeConfiguration BIG_LAKE_CONFIGURATION = + BigLakeConfiguration.newBuilder() + .setConnectionId("us.connection-test") + .setTableFormat("ICEBERG") + .setFileFormat("PARQUET") + .setStorageUri("gs://java-bigquery-test/standard-table-def") + .build(); private static final StandardTableDefinition TABLE_DEFINITION = StandardTableDefinition.newBuilder() .setLocation(LOCATION) @@ -82,6 +89,7 @@ public class StandardTableDefinitionTest { .setSchema(TABLE_SCHEMA) .setTimePartitioning(TIME_PARTITIONING) .setClustering(CLUSTERING) + .setBigLakeConfiguration(BIG_LAKE_CONFIGURATION) .build(); @Test From 5b914af089ad18577ee5be04bb86c7673f37478b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Oct 2023 21:28:14 +0200 Subject: [PATCH 2574/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.6.0 (#2951) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-shared-config](https://togithub.com/googleapis/java-shared-config) | `1.5.8` -> `1.6.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-shared-config/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-shared-config/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-shared-config/1.5.8/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-shared-config/1.5.8/1.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes

      googleapis/java-shared-config (com.google.cloud:google-cloud-shared-config) ### [`v1.6.0`](https://togithub.com/googleapis/java-shared-config/blob/HEAD/CHANGELOG.md#160-2023-10-17) [Compare Source](https://togithub.com/googleapis/java-shared-config/compare/v1.5.8...v1.6.0) ##### Features - Add graal-sdk dependency management to java-shared-config ([#​683](https://togithub.com/googleapis/java-shared-config/issues/683)) ([5cd1d84](https://togithub.com/googleapis/java-shared-config/commit/5cd1d84bf2d68dbe8f9fa7e02d9065082bd56726))
      --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- README.md | 8 ++++---- pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2a30c8073a9c..879d879e2eae 100644 --- a/README.md +++ b/README.md @@ -53,20 +53,20 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.24.0') +implementation platform('com.google.cloud:libraries-bom:26.25.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.33.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.33.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.33.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.33.2" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.33.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.33.2 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/pom.xml b/pom.xml index 9def71c13210..a5a2d87e1bd0 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.5.8 + 1.6.0 From 08de88a5ed63f276f7c3c033ed6d1bcb7cfa4525 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Oct 2023 21:30:15 +0200 Subject: [PATCH 2575/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.30.0 (#2941) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigqueryconnection](https://togithub.com/googleapis/google-cloud-java) | `2.29.0` -> `2.30.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigqueryconnection/2.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigqueryconnection/2.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigqueryconnection/2.29.0/2.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigqueryconnection/2.29.0/2.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index a5a2d87e1bd0..aaba96f2a35b 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.29.0 + 2.30.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0648fec10df0..8bac6d793edd 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.29.0 + 2.30.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 53288c26ee2b..671ce2de07e6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.29.0 + 2.30.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 352e86adabc8..3578d289ebd5 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.29.0 + 2.30.0 test From 4d86bb007ae3939f41c30c8698882798a0858856 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Oct 2023 21:30:23 +0200 Subject: [PATCH 2576/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.28.0 (#2938) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-storage](https://togithub.com/googleapis/java-storage) | `2.27.1` -> `2.28.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-storage/2.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-storage/2.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-storage/2.27.1/2.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-storage/2.27.1/2.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes
      googleapis/java-storage (com.google.cloud:google-cloud-storage) ### [`v2.28.0`](https://togithub.com/googleapis/java-storage/blob/HEAD/CHANGELOG.md#2280-2023-10-10) ##### Features - Add [@​BetaApi](https://togithub.com/BetaApi) BlobWriteSession#parallelCompositeUpload ([#​2239](https://togithub.com/googleapis/java-storage/issues/2239)) ([f8f4e22](https://togithub.com/googleapis/java-storage/commit/f8f4e221ae81cf69387827014c9f98a466bb7f19)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.17.0 ([#​2250](https://togithub.com/googleapis/java-storage/issues/2250)) ([df687f2](https://togithub.com/googleapis/java-storage/commit/df687f2604be214f05d2bebc94e4d81421003577)) - Update gcr.io/cloud-devrel-public-resources/storage-testbench docker tag to v0.39.0 ([#​2249](https://togithub.com/googleapis/java-storage/issues/2249)) ([fe85df9](https://togithub.com/googleapis/java-storage/commit/fe85df9bf46d76f067819ce3ed94d874818a739e)) ##### Documentation - Reorder columns in table of BlobWriteSessionConfigs.java ([#​2242](https://togithub.com/googleapis/java-storage/issues/2242)) ([98e694f](https://togithub.com/googleapis/java-storage/commit/98e694f3182b194f5e6fbde4fb0a924f17a06c40))
      --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index aaba96f2a35b..9a377dadc88d 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.27.1 + 2.28.0 test From 3d0da5b5a20f49721477afbed10ea3fff43652bb Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Oct 2023 21:30:36 +0200 Subject: [PATCH 2577/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20231008-2.0.0 (#2946) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.apis:google-api-services-bigquery](http://nexus.sonatype.org/oss-repository-hosting.html) ([source](http://svn.sonatype.org/spice/tags/oss-parent-7)) | `v2-rev20230925-2.0.0` -> `v2-rev20231008-2.0.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.apis:google-api-services-bigquery/v2-rev20231008-2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.apis:google-api-services-bigquery/v2-rev20231008-2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.apis:google-api-services-bigquery/v2-rev20230925-2.0.0/v2-rev20231008-2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.apis:google-api-services-bigquery/v2-rev20230925-2.0.0/v2-rev20231008-2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9a377dadc88d..9b6c0691df9d 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20230925-2.0.0 + v2-rev20231008-2.0.0 3.17.0 12.0.1
      From 18162c37c97eff6387e0f58d211f2c1725a9c8d3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Oct 2023 21:30:43 +0200 Subject: [PATCH 2578/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.34.0 (#2943) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-datacatalog-bom](https://togithub.com/googleapis/google-cloud-java) | `1.33.0` -> `1.34.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-datacatalog-bom/1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-datacatalog-bom/1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-datacatalog-bom/1.33.0/1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-datacatalog-bom/1.33.0/1.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9b6c0691df9d..2cdca0fba723 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.33.0 + 1.34.0 pom import From 2e28db5243a08db2ea708abe3c8f586cff94c1db Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Oct 2023 21:32:13 +0200 Subject: [PATCH 2579/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.28.0 (#2945) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigtable](https://togithub.com/googleapis/java-bigtable) | `2.27.4` -> `2.28.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigtable/2.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigtable/2.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigtable/2.27.4/2.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigtable/2.27.4/2.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes
      googleapis/java-bigtable (com.google.cloud:google-cloud-bigtable) ### [`v2.28.0`](https://togithub.com/googleapis/java-bigtable/blob/HEAD/CHANGELOG.md#2280-2023-10-12) [Compare Source](https://togithub.com/googleapis/java-bigtable/compare/v2.27.4...v2.28.0) ##### Features - Add support for Cloud Bigtable Request Priorities in App Profiles ([#​1954](https://togithub.com/googleapis/java-bigtable/issues/1954)) ([8822571](https://togithub.com/googleapis/java-bigtable/commit/88225717b870032b8892123262d2529ba1dbd481)) - Add test profile to push metrics to test environment ([#​1921](https://togithub.com/googleapis/java-bigtable/issues/1921)) ([2104315](https://togithub.com/googleapis/java-bigtable/commit/210431523ce54029db846a0d6777d5e417e039dd)) ##### Dependencies - Update shared dependencies ([#​1955](https://togithub.com/googleapis/java-bigtable/issues/1955)) ([f29717e](https://togithub.com/googleapis/java-bigtable/commit/f29717e3f1af03a78ce9468cdafa8c09dfb1b216))
      --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8bac6d793edd..4e6882e6cb5c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.27.4 + 2.28.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 671ce2de07e6..a923c5c5a516 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.27.4 + 2.28.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3578d289ebd5..f9bc150da10f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.27.4 + 2.28.0 test From e760fcae98b23ff4e7fc3ae25f2437be220e9df9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Oct 2023 21:32:18 +0200 Subject: [PATCH 2580/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.30.0 (#2942) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1](https://togithub.com/googleapis/google-cloud-java) | `2.29.0` -> `2.30.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.29.0/2.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1/2.29.0/2.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2cdca0fba723..db121fddac33 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.29.0 + 2.30.0 test From fa879be92bafcade88e1dd1596affec4550565dd Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Oct 2023 21:34:15 +0200 Subject: [PATCH 2581/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.33.2 (#2940) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.33.1` -> `2.33.2` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigquery/2.33.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigquery/2.33.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigquery/2.33.1/2.33.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigquery/2.33.1/2.33.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
      googleapis/java-bigquery (com.google.cloud:google-cloud-bigquery) ### [`v2.33.2`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#2332-2023-10-11) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.33.1...v2.33.2) ##### Bug Fixes - GetDouble in read API path ([#​2919](https://togithub.com/googleapis/java-bigquery/issues/2919)) ([436ee8e](https://togithub.com/googleapis/java-bigquery/commit/436ee8ebe9104f6ca721f1a14bd409158c7bdb5a)) ##### Dependencies - Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.29.0 ([#​2911](https://togithub.com/googleapis/java-bigquery/issues/2911)) ([052f5c2](https://togithub.com/googleapis/java-bigquery/commit/052f5c2f722243be39c0d93b1f81b81a0db48ef1)) - Update dependency com.google.apis:google-api-services-bigquery to v2-rev20230925-2.0.0 ([#​2921](https://togithub.com/googleapis/java-bigquery/issues/2921)) ([f0fb64f](https://togithub.com/googleapis/java-bigquery/commit/f0fb64f43817c5aa53adb6c5152afe3fd44b7df1)) - Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.33.0 ([#​2912](https://togithub.com/googleapis/java-bigquery/issues/2912)) ([e053494](https://togithub.com/googleapis/java-bigquery/commit/e05349476a8d987b2cd24ee6a80b2d9b7b9463ee)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.17.0 ([#​2931](https://togithub.com/googleapis/java-bigquery/issues/2931)) ([25a94f1](https://togithub.com/googleapis/java-bigquery/commit/25a94f1da840c0cb32bed882e18f7b10f9890d04)) - Update github/codeql-action action to v2.22.0 ([#​2926](https://togithub.com/googleapis/java-bigquery/issues/2926)) ([33ce4ae](https://togithub.com/googleapis/java-bigquery/commit/33ce4aee8b10f630212d96901af00f063c43f440)) - Update github/codeql-action action to v2.22.1 ([#​2934](https://togithub.com/googleapis/java-bigquery/issues/2934)) ([7ae7b99](https://togithub.com/googleapis/java-bigquery/commit/7ae7b99ab21fcd6e74cbaa95e750da961c09ae80)) - Update ossf/scorecard-action action to v2.3.0 ([#​2927](https://togithub.com/googleapis/java-bigquery/issues/2927)) ([93bfd8e](https://togithub.com/googleapis/java-bigquery/commit/93bfd8eb7fe35121e97b06cf8b103a3960fe9535))
      --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 879d879e2eae..6eb5a01fa5e5 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.33.1 + 2.33.2 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4e6882e6cb5c..c515cb9a2217 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.33.1 + 2.33.2 From c556c1837baf0d53245452d6a152910df7883262 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 18 Oct 2023 15:57:09 +0200 Subject: [PATCH 2582/3441] deps: update actions/checkout action to v4.1.1 (#2950) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/checkout action to v4.1.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 71db8036bb06..6113c14606c1 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: persist-credentials: false From f584e59571f0c7918d2d83a19b00d49bd5b558c4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 18 Oct 2023 15:57:47 +0200 Subject: [PATCH 2583/3441] deps: update github/codeql-action action to v2.22.2 (#2944) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.22.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 6113c14606c1..45b686d2d5f2 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@fdcae64e1484d349b3366718cdfef3d404390e85 # v2.22.1 + uses: github/codeql-action/upload-sarif@d90b8d79de6dc1f58e83a1499aa58d6c93dc28de # v2.22.2 with: sarif_file: results.sarif From 1b2bc18bf49d06e1ccd29745be649108dd28cfa5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 18 Oct 2023 17:07:49 +0200 Subject: [PATCH 2584/3441] deps: update github/codeql-action action to v2.22.3 (#2954) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 45b686d2d5f2..26169295a581 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@d90b8d79de6dc1f58e83a1499aa58d6c93dc28de # v2.22.2 + uses: github/codeql-action/upload-sarif@0116bc2df50751f9724a2e35ef1f24d22f90e4e1 # v2.22.3 with: sarif_file: results.sarif From f452cf4e100b6cc211681a840ddbd0be5108d01e Mon Sep 17 00:00:00 2001 From: brendan Date: Fri, 20 Oct 2023 09:16:16 -0400 Subject: [PATCH 2585/3441] feat: Add support for Dataset property storageBillingModel (#2913) Adds support for setting and getting the BigQuery v2 API Dataset property `storageBillingModel`, to allow end users to set the billing model depending on their use case. When no billing model is provided, the existing behavior (use the default billing model) continues. --- .../clirr-ignored-differences.xml | 5 ++++ .../com/google/cloud/bigquery/Dataset.java | 6 +++++ .../google/cloud/bigquery/DatasetInfo.java | 25 +++++++++++++++++++ .../cloud/bigquery/DatasetInfoTest.java | 6 +++++ .../google/cloud/bigquery/DatasetTest.java | 5 ++++ .../cloud/bigquery/it/ITBigQueryTest.java | 23 +++++++++++++++++ 6 files changed, 70 insertions(+) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index b2d5aef0feb3..c22579a79577 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -109,6 +109,11 @@ com/google/cloud/bigquery/DatasetInfo* *setExternalDatasetReference(*) + + 7013 + com/google/cloud/bigquery/DatasetInfo* + *setStorageBillingModel(*) + 7013 com/google/cloud/bigquery/StandardTableDefinition* diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java index 3ed4b892871c..daadb9a857e1 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java @@ -158,6 +158,12 @@ public Builder setExternalDatasetReference(ExternalDatasetReference externalData return this; } + @Override + public Builder setStorageBillingModel(String storageBillingModel) { + infoBuilder.setStorageBillingModel(storageBillingModel); + return this; + } + @Override public Dataset build() { return new Dataset(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java index 44583e0c853d..0dddc0e86f2d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java @@ -74,6 +74,7 @@ public Dataset apply(DatasetInfo datasetInfo) { private final Long defaultPartitionExpirationMs; private final String defaultCollation; private final ExternalDatasetReference externalDatasetReference; + private final String storageBillingModel; /** A builder for {@code DatasetInfo} objects. */ public abstract static class Builder { @@ -135,6 +136,12 @@ public abstract static class Builder { public abstract Builder setExternalDatasetReference( ExternalDatasetReference externalDatasetReference); + /** + * Optional. Storage billing model to be used for all tables in the dataset. Can be set to + * PHYSICAL. Default is LOGICAL. + */ + public abstract Builder setStorageBillingModel(String storageBillingModel); + /** * The default encryption key for all tables in the dataset. Once this property is set, all * newly-created partitioned tables in the dataset will have encryption key set to this value, @@ -192,6 +199,7 @@ static final class BuilderImpl extends Builder { private Long defaultPartitionExpirationMs; private String defaultCollation; private ExternalDatasetReference externalDatasetReference; + private String storageBillingModel; BuilderImpl() {} @@ -212,6 +220,7 @@ static final class BuilderImpl extends Builder { this.defaultPartitionExpirationMs = datasetInfo.defaultPartitionExpirationMs; this.defaultCollation = datasetInfo.defaultCollation; this.externalDatasetReference = datasetInfo.externalDatasetReference; + this.storageBillingModel = datasetInfo.storageBillingModel; } BuilderImpl(com.google.api.services.bigquery.model.Dataset datasetPb) { @@ -250,6 +259,7 @@ public Acl apply(Dataset.Access accessPb) { this.externalDatasetReference = ExternalDatasetReference.fromPb(datasetPb.getExternalDatasetReference()); } + this.storageBillingModel = datasetPb.getStorageBillingModel(); } @Override @@ -356,6 +366,12 @@ public Builder setExternalDatasetReference(ExternalDatasetReference externalData return this; } + @Override + public Builder setStorageBillingModel(String storageBillingModel) { + this.storageBillingModel = storageBillingModel; + return this; + } + @Override public DatasetInfo build() { return new DatasetInfo(this); @@ -379,6 +395,7 @@ public DatasetInfo build() { defaultPartitionExpirationMs = builder.defaultPartitionExpirationMs; defaultCollation = builder.defaultCollation; externalDatasetReference = builder.externalDatasetReference; + storageBillingModel = builder.storageBillingModel; } /** Returns the dataset identity. */ @@ -508,6 +525,10 @@ public String getDefaultCollation() { return defaultCollation; } + public String getStorageBillingModel() { + return storageBillingModel; + } + /** * Returns information about the external metadata storage where the dataset is defined. Filled * out when the dataset type is EXTERNAL. @@ -540,6 +561,7 @@ public String toString() { .add("defaultPartitionExpirationMs", defaultPartitionExpirationMs) .add("defaultCollation", defaultCollation) .add("externalDatasetReference", externalDatasetReference) + .add("storageBillingModel", storageBillingModel) .toString(); } @@ -621,6 +643,9 @@ public Dataset.Access apply(Acl acl) { if (externalDatasetReference != null) { datasetPb.setExternalDatasetReference(externalDatasetReference.toPb()); } + if (storageBillingModel != null) { + datasetPb.setStorageBillingModel(storageBillingModel); + } return datasetPb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java index c91cbc2f3058..df62b7dac843 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -58,6 +58,7 @@ public class DatasetInfoTest { private static final DatasetId DATASET_ID_COMPLETE = DatasetId.of("project", "dataset"); private static final EncryptionConfiguration DATASET_ENCRYPTION_CONFIGURATION = EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); + private static final String STORAGE_BILLING_MODEL = "LOGICAL"; private static final ExternalDatasetReference EXTERNAL_DATASET_REFERENCE = ExternalDatasetReference.newBuilder() @@ -79,6 +80,7 @@ public class DatasetInfoTest { .setLabels(LABELS) .setDefaultEncryptionConfiguration(DATASET_ENCRYPTION_CONFIGURATION) .setDefaultPartitionExpirationMs(DEFAULT_PARTITION__EXPIRATION) + .setStorageBillingModel(STORAGE_BILLING_MODEL) .build(); private static final DatasetInfo DATASET_INFO_COMPLETE = DATASET_INFO @@ -170,6 +172,7 @@ public void testBuilder() { assertEquals( EXTERNAL_DATASET_REFERENCE, DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE.getExternalDatasetReference()); + assertEquals(STORAGE_BILLING_MODEL, DATASET_INFO_COMPLETE.getStorageBillingModel()); } @Test @@ -190,6 +193,7 @@ public void testOf() { assertNull(datasetInfo.getDefaultPartitionExpirationMs()); assertTrue(datasetInfo.getLabels().isEmpty()); assertNull(datasetInfo.getExternalDatasetReference()); + assertNull(datasetInfo.getStorageBillingModel()); datasetInfo = DatasetInfo.of(DATASET_ID); assertEquals(DATASET_ID, datasetInfo.getDatasetId()); @@ -207,6 +211,7 @@ public void testOf() { assertNull(datasetInfo.getDefaultPartitionExpirationMs()); assertTrue(datasetInfo.getLabels().isEmpty()); assertNull(datasetInfo.getExternalDatasetReference()); + assertNull(datasetInfo.getStorageBillingModel()); } @Test @@ -243,5 +248,6 @@ private void compareDatasets(DatasetInfo expected, DatasetInfo value) { assertEquals( expected.getDefaultPartitionExpirationMs(), value.getDefaultPartitionExpirationMs()); assertEquals(expected.getExternalDatasetReference(), value.getExternalDatasetReference()); + assertEquals(expected.getStorageBillingModel(), value.getStorageBillingModel()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java index b244cf26065e..bc42976b23dc 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java @@ -66,6 +66,7 @@ public class DatasetTest { private static final String SELF_LINK = "http://bigquery/p/d"; private static final DatasetInfo DATASET_INFO = DatasetInfo.newBuilder(DATASET_ID).build(); private static final Field FIELD = Field.of("FieldName", LegacySQLTypeName.INTEGER); + private static final String STORAGE_BILLING_MODEL = "LOGICAL"; private static final StandardTableDefinition TABLE_DEFINITION = StandardTableDefinition.of(Schema.of(FIELD)); private static final ViewDefinition VIEW_DEFINITION = ViewDefinition.of("QUERY"); @@ -120,6 +121,7 @@ public void testBuilder() { .setLocation(LOCATION) .setSelfLink(SELF_LINK) .setLabels(LABELS) + .setStorageBillingModel(STORAGE_BILLING_MODEL) .build(); assertEquals(DATASET_ID, builtDataset.getDatasetId()); assertEquals(ACCESS_RULES, builtDataset.getAcl()); @@ -133,6 +135,7 @@ public void testBuilder() { assertEquals(LOCATION, builtDataset.getLocation()); assertEquals(SELF_LINK, builtDataset.getSelfLink()); assertEquals(LABELS, builtDataset.getLabels()); + assertEquals(STORAGE_BILLING_MODEL, builtDataset.getStorageBillingModel()); } @Test @@ -340,6 +343,7 @@ public void testExternalDatasetReference() { .setSelfLink(SELF_LINK) .setLabels(LABELS) .setExternalDatasetReference(EXTERNAL_DATASET_REFERENCE) + .setStorageBillingModel(STORAGE_BILLING_MODEL) .build(); assertEquals( EXTERNAL_DATASET_REFERENCE, @@ -369,5 +373,6 @@ private void compareDatasetInfo(DatasetInfo expected, DatasetInfo value) { assertEquals(expected.getDefaultTableLifetime(), value.getDefaultTableLifetime()); assertEquals(expected.getLastModified(), value.getLastModified()); assertEquals(expected.getExternalDatasetReference(), value.getExternalDatasetReference()); + assertEquals(expected.getStorageBillingModel(), value.getStorageBillingModel()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 1ff85974552d..909500be831d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -202,6 +202,7 @@ public class ITBigQueryTest { private static final String ROUTINE_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); private static final String RANDOM_ID = UUID.randomUUID().toString().substring(0, 8); + private static final String STORAGE_BILLING_MODEL = "LOGICAL"; private static final String CLOUD_SAMPLES_DATA = Optional.fromNullable(System.getenv("CLOUD_SAMPLES_DATA_BUCKET")).or("cloud-samples-data"); private static final Map LABELS = @@ -965,6 +966,7 @@ public void testGetDatasetWithSelectedFields() { assertNull(dataset.getLastModified()); assertNull(dataset.getLocation()); assertNull(dataset.getSelfLink()); + assertNull(dataset.getStorageBillingModel()); } @Test @@ -980,6 +982,7 @@ public void testUpdateDataset() { assertThat(dataset.getDatasetId().getDataset()).isEqualTo(OTHER_DATASET); assertThat(dataset.getDescription()).isEqualTo("Some Description"); assertThat(dataset.getLabels()).containsExactly("a", "b"); + assertThat(dataset.getStorageBillingModel()).isNull(); Map updateLabels = new HashMap<>(); updateLabels.put("x", "y"); @@ -990,9 +993,11 @@ public void testUpdateDataset() { .toBuilder() .setDescription("Updated Description") .setLabels(updateLabels) + .setStorageBillingModel("LOGICAL") .build()); assertThat(updatedDataset.getDescription()).isEqualTo("Updated Description"); assertThat(updatedDataset.getLabels()).containsExactly("x", "y"); + assertThat(updatedDataset.getStorageBillingModel()).isEqualTo("LOGICAL"); updatedDataset = bigquery.update(updatedDataset.toBuilder().setLabels(null).build()); assertThat(updatedDataset.getLabels()).isEmpty(); @@ -1022,6 +1027,7 @@ public void testUpdateDatasetWithSelectedFields() { assertNull(updatedDataset.getLastModified()); assertNull(updatedDataset.getLocation()); assertNull(updatedDataset.getSelfLink()); + assertNull(updatedDataset.getStorageBillingModel()); assertTrue(dataset.delete()); } @@ -1283,6 +1289,23 @@ public void testCreateTableWithConstraints() { bigquery.delete(tableId); } + @Test + public void testCreateDatasetWithSpecifiedStorageBillingModel() { + String billingModelDataset = RemoteBigQueryHelper.generateDatasetName(); + DatasetInfo info = + DatasetInfo.newBuilder(billingModelDataset) + .setDescription(DESCRIPTION) + .setStorageBillingModel(STORAGE_BILLING_MODEL) + .setLabels(LABELS) + .build(); + bigquery.create(info); + + Dataset dataset = bigquery.getDataset(DatasetId.of(billingModelDataset)); + assertEquals(STORAGE_BILLING_MODEL, dataset.getStorageBillingModel()); + + RemoteBigQueryHelper.forceDelete(bigquery, billingModelDataset); + } + @Test public void testCreateDatasetWithDefaultCollation() { String collationDataset = RemoteBigQueryHelper.generateDatasetName(); From 113b8f27419365c7277c6a300c5f07cea954cca1 Mon Sep 17 00:00:00 2001 From: Obada Alabbadi <76101898+obada-ab@users.noreply.github.com> Date: Tue, 24 Oct 2023 12:22:14 +0300 Subject: [PATCH 2586/3441] feat: add support for preview features (#2923) Enables preview query features, which currently only includes stateless queries (queries without jobId). These features won't always be enabled on the service side and there are additional checks and conditions. Fixes https://togithub.com/googleapis/java-bigquery/issues/2949 --- .../com/google/cloud/bigquery/BigQuery.java | 10 ++++++ .../google/cloud/bigquery/BigQueryImpl.java | 10 ++++++ .../cloud/bigquery/BigQueryOptions.java | 11 ++++++ .../cloud/bigquery/QueryJobConfiguration.java | 36 ++++++++++++++++++- .../cloud/bigquery/QueryRequestInfo.java | 10 +++++- .../bigquery/QueryJobConfigurationTest.java | 11 ++++++ .../cloud/bigquery/QueryRequestInfoTest.java | 5 +++ .../cloud/bigquery/it/ITBigQueryTest.java | 26 ++++++++++++++ 8 files changed, 117 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index ac6262e69dde..80fd6618dc08 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -1596,6 +1596,16 @@ TableResult listTableData( * } *
    * + * This method supports query-related preview features via environmental variables (enabled by + * setting the {@code QUERY_PREVIEW_ENABLED} environment variable to "TRUE"). Specifically, this + * method supports: + * + *
      + *
    • Stateless queries: query execution without corresponding job metadata + *
    + * + * The behaviour of these preview features is controlled by the bigquery service as well + * * @throws BigQueryException upon failure * @throws InterruptedException if the current thread gets interrupted while waiting for the query * to complete diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index ef7e8cb8b8dc..0d5842724b63 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -41,6 +41,7 @@ import com.google.cloud.RetryHelper.RetryHelperException; import com.google.cloud.Tuple; import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; +import com.google.cloud.bigquery.QueryJobConfiguration.JobCreationMode; import com.google.cloud.bigquery.spi.v2.BigQueryRpc; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; @@ -1324,6 +1325,14 @@ public TableResult query(QueryJobConfiguration configuration, JobOption... optio throws InterruptedException, JobException { Job.checkNotDryRun(configuration, "query"); + if (getOptions().isQueryPreviewEnabled()) { + configuration = + configuration + .toBuilder() + .setJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL) + .build(); + } + // If all parameters passed in configuration are supported by the query() method on the backend, // put on fast path QueryRequestInfo requestInfo = new QueryRequestInfo(configuration); @@ -1416,6 +1425,7 @@ public com.google.api.services.bigquery.model.QueryResponse call() { public TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption... options) throws InterruptedException, JobException { Job.checkNotDryRun(configuration, "query"); + // If all parameters passed in configuration are supported by the query() method on the backend, // put on fast path QueryRequestInfo requestInfo = new QueryRequestInfo(configuration); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index 2e22ba922493..e53439f02369 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -24,6 +24,7 @@ import com.google.cloud.bigquery.spi.v2.BigQueryRpc; import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import com.google.cloud.http.HttpTransportOptions; +import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableSet; import java.util.Set; @@ -37,6 +38,7 @@ public class BigQueryOptions extends ServiceOptions { private final String location; // set the option ThrowNotFound when you want to throw the exception when the value not found private boolean setThrowNotFound; + private String queryPreviewEnabled = System.getenv("QUERY_PREVIEW_ENABLED"); public static class DefaultBigQueryFactory implements BigQueryFactory { @@ -130,10 +132,19 @@ public String getLocation() { return location; } + public boolean isQueryPreviewEnabled() { + return queryPreviewEnabled != null && queryPreviewEnabled.equalsIgnoreCase("TRUE"); + } + public void setThrowNotFound(boolean setThrowNotFound) { this.setThrowNotFound = setThrowNotFound; } + @VisibleForTesting + public void setQueryPreviewEnabled(String queryPreviewEnabled) { + this.queryPreviewEnabled = queryPreviewEnabled; + } + public boolean getThrowNotFound() { return setThrowNotFound; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index cc726bdd1566..0ad85137b214 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -73,6 +73,7 @@ public final class QueryJobConfiguration extends JobConfiguration { private final List connectionProperties; // maxResults is only used for fast query path private final Long maxResults; + private final JobCreationMode jobCreationMode; /** * Priority levels for a query. If not specified the priority is assumed to be {@link @@ -94,6 +95,21 @@ public enum Priority { BATCH } + /** Job Creation Mode provides different options on job creation. */ + enum JobCreationMode { + /** Unspecified JobCreationMode, defaults to JOB_CREATION_REQUIRED. */ + JOB_CREATION_MODE_UNSPECIFIED, + /** Default. Job creation is always required. */ + JOB_CREATION_REQUIRED, + /** + * Job creation is optional. Returning immediate results is prioritized. BigQuery will + * automatically determine if a Job needs to be created. The conditions under which BigQuery can + * decide to not create a Job are subject to change. If Job creation is required, + * JOB_CREATION_REQUIRED mode should be used, which is the default. + */ + JOB_CREATION_OPTIONAL, + } + public static final class Builder extends JobConfiguration.Builder { @@ -125,6 +141,7 @@ public static final class Builder private RangePartitioning rangePartitioning; private List connectionProperties; private Long maxResults; + private JobCreationMode jobCreationMode; private Builder() { super(Type.QUERY); @@ -160,6 +177,7 @@ private Builder(QueryJobConfiguration jobConfiguration) { this.rangePartitioning = jobConfiguration.rangePartitioning; this.connectionProperties = jobConfiguration.connectionProperties; this.maxResults = jobConfiguration.maxResults; + this.jobCreationMode = jobConfiguration.jobCreationMode; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -655,6 +673,15 @@ public Builder setMaxResults(Long maxResults) { return this; } + /** + * Provides different options on job creation. If not specified the job creation mode is assumed + * to be {@link JobCreationMode#JOB_CREATION_REQUIRED}. + */ + Builder setJobCreationMode(JobCreationMode jobCreationMode) { + this.jobCreationMode = jobCreationMode; + return this; + } + public QueryJobConfiguration build() { return new QueryJobConfiguration(this); } @@ -699,6 +726,7 @@ private QueryJobConfiguration(Builder builder) { this.rangePartitioning = builder.rangePartitioning; this.connectionProperties = builder.connectionProperties; this.maxResults = builder.maxResults; + this.jobCreationMode = builder.jobCreationMode; } /** @@ -910,6 +938,11 @@ public Long getMaxResults() { return maxResults; } + /** Returns the job creation mode. */ + JobCreationMode getJobCreationMode() { + return jobCreationMode; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -944,7 +977,8 @@ ToStringHelper toStringHelper() { .add("jobTimeoutMs", jobTimeoutMs) .add("labels", labels) .add("rangePartitioning", rangePartitioning) - .add("connectionProperties", connectionProperties); + .add("connectionProperties", connectionProperties) + .add("jobCreationMode", jobCreationMode); } @Override diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java index 00a8983636a0..00a11f723be9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java @@ -18,6 +18,7 @@ import com.google.api.services.bigquery.model.QueryParameter; import com.google.api.services.bigquery.model.QueryRequest; +import com.google.cloud.bigquery.QueryJobConfiguration.JobCreationMode; import com.google.common.base.MoreObjects; import com.google.common.base.Objects; import com.google.common.collect.Lists; @@ -40,6 +41,7 @@ final class QueryRequestInfo { private final Boolean createSession; private final Boolean useQueryCache; private final Boolean useLegacySql; + private final JobCreationMode jobCreationMode; QueryRequestInfo(QueryJobConfiguration config) { this.config = config; @@ -55,6 +57,7 @@ final class QueryRequestInfo { this.createSession = config.createSession(); this.useLegacySql = config.useLegacySql(); this.useQueryCache = config.useQueryCache(); + this.jobCreationMode = config.getJobCreationMode(); } boolean isFastQuerySupported(JobId jobId) { @@ -116,6 +119,9 @@ QueryRequest toPb() { if (useQueryCache != null) { request.setUseQueryCache(useQueryCache); } + if (jobCreationMode != null) { + request.setJobCreationMode(jobCreationMode.toString()); + } return request; } @@ -134,6 +140,7 @@ public String toString() { .add("createSession", createSession) .add("useQueryCache", useQueryCache) .add("useLegacySql", useLegacySql) + .add("jobCreationMode", jobCreationMode) .toString(); } @@ -151,7 +158,8 @@ public int hashCode() { requestId, createSession, useQueryCache, - useLegacySql); + useLegacySql, + jobCreationMode); } @Override diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index 9a20219d66a7..f71e152e625e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -23,6 +23,7 @@ import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.QueryJobConfiguration.JobCreationMode; import com.google.cloud.bigquery.QueryJobConfiguration.Priority; import com.google.cloud.bigquery.TimePartitioning.Type; import com.google.common.collect.ImmutableList; @@ -110,6 +111,7 @@ public class QueryJobConfigurationTest { private static final Map NAME_PARAMETER = ImmutableMap.of("string", STRING_PARAMETER, "timestamp", TIMESTAMP_PARAMETER); private static final String PARAMETER_MODE = "POSITIONAL"; + private static final JobCreationMode JOB_CREATION_MODE = JobCreationMode.JOB_CREATION_OPTIONAL; private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -150,6 +152,8 @@ public class QueryJobConfigurationTest { .setPositionalParameters(ImmutableList.of()) .setNamedParameters(NAME_PARAMETER) .build(); + private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_SET_JOB_CREATION_MODE = + QUERY_JOB_CONFIGURATION.toBuilder().setJobCreationMode(JOB_CREATION_MODE).build(); @Test public void testToBuilder() { @@ -230,6 +234,13 @@ public void testNamedParameter() { QUERY_JOB_CONFIGURATION_SET_NAME_PARAMETER.toBuilder().build()); } + @Test + public void testJobCreationMode() { + compareQueryJobConfiguration( + QUERY_JOB_CONFIGURATION_SET_JOB_CREATION_MODE, + QUERY_JOB_CONFIGURATION_SET_JOB_CREATION_MODE.toBuilder().build()); + } + private void compareQueryJobConfiguration( QueryJobConfiguration expected, QueryJobConfiguration value) { assertEquals(expected, value); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java index 456475597eb8..0d9464c76832 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java @@ -23,6 +23,7 @@ import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.QueryJobConfiguration.JobCreationMode; import com.google.cloud.bigquery.QueryJobConfiguration.Priority; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -105,6 +106,8 @@ public class QueryRequestInfoTest { ImmutableList.of(STRING_PARAMETER, TIMESTAMP_PARAMETER); private static final Map NAME_PARAMETER = ImmutableMap.of("string", STRING_PARAMETER, "timestamp", TIMESTAMP_PARAMETER); + private static final JobCreationMode jobCreationModeRequired = + JobCreationMode.JOB_CREATION_REQUIRED; private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -131,6 +134,7 @@ public class QueryRequestInfoTest { .setConnectionProperties(CONNECTION_PROPERTIES) .setPositionalParameters(POSITIONAL_PARAMETER) .setMaxResults(100L) + .setJobCreationMode(jobCreationModeRequired) .build(); QueryRequestInfo REQUEST_INFO = new QueryRequestInfo(QUERY_JOB_CONFIGURATION); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_SUPPORTED = @@ -194,5 +198,6 @@ private void compareQueryRequestInfo(QueryRequestInfo expected, QueryRequestInfo assertEquals(expectedQueryReq.getCreateSession(), actualQueryReq.getCreateSession()); assertEquals(expectedQueryReq.getUseQueryCache(), actualQueryReq.getUseQueryCache()); assertEquals(expectedQueryReq.getUseLegacySql(), actualQueryReq.getUseLegacySql()); + assertEquals(expectedQueryReq.get("jobCreationMode"), actualQueryReq.get("jobCreationMode")); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 909500be831d..8cada3e08482 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -6188,4 +6188,30 @@ public void testAlreadyExistJobExceptionHandling() throws InterruptedException { } } } + + @Test + public void testStatelessQueries() throws InterruptedException { + // simulate setting the QUERY_PREVIEW_ENABLED environment variable + bigquery.getOptions().setQueryPreviewEnabled("TRUE"); + assertNull(executeSimpleQuery().getJobId()); + + // the flag should be case-insensitive + bigquery.getOptions().setQueryPreviewEnabled("tRuE"); + assertNull(executeSimpleQuery().getJobId()); + + // any other values won't enable optional job creation mode + bigquery.getOptions().setQueryPreviewEnabled("test_value"); + assertNotNull(executeSimpleQuery().getJobId()); + + // reset the flag + bigquery.getOptions().setQueryPreviewEnabled(null); + assertNotNull(executeSimpleQuery().getJobId()); + } + + private TableResult executeSimpleQuery() throws InterruptedException { + String query = "SELECT 1 as one"; + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).build(); + TableResult result = bigquery.query(config); + return result; + } } From 137fb23fa2e04df4e1bf17591fe17f84dfa3041c Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Wed, 25 Oct 2023 04:44:14 -0400 Subject: [PATCH 2587/3441] chore: run stateless query IT with allow listed project (#2965) Fixes #2964 --- .kokoro/nightly/integration.cfg | 4 ++-- owlbot.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.kokoro/nightly/integration.cfg b/.kokoro/nightly/integration.cfg index a2907a257b2b..e51c7b4c6c11 100644 --- a/.kokoro/nightly/integration.cfg +++ b/.kokoro/nightly/integration.cfg @@ -13,12 +13,12 @@ env_vars: { # TODO: remove this after we've migrated all tests and scripts env_vars: { key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" + value: "gcloud-devel" } env_vars: { diff --git a/owlbot.py b/owlbot.py index bf1878a29c4f..7a89db8ff23f 100644 --- a/owlbot.py +++ b/owlbot.py @@ -18,6 +18,7 @@ java.common_templates(excludes=[ '.kokoro/nightly/samples.cfg', + '.kokoro/nightly/integration.cfg', '.kokoro/presubmit/samples.cfg', 'codecov.yaml', 'renovate.json', From 1ee18ebeb90adeb371ef04cbfc7b18be2c24d1e8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Oct 2023 22:35:03 +0200 Subject: [PATCH 2588/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.18.0 (#2955) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index db121fddac33..a69748fa5b74 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20231008-2.0.0 - 3.17.0 + 3.18.0 12.0.1 From 7ed55b5c075dbac827c6201d0398ff87d8240b38 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Oct 2023 22:35:25 +0200 Subject: [PATCH 2589/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.31.0 (#2967) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a69748fa5b74..f54f8f0acee7 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.30.0 + 2.31.0 test From 443c39d094d003cf8c379bad079a6b5015ff2625 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Oct 2023 22:35:43 +0200 Subject: [PATCH 2590/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.31.0 (#2966) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index f54f8f0acee7..b7bf4189db92 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.30.0 + 2.31.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c515cb9a2217..d3f893874d1d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.30.0 + 2.31.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a923c5c5a516..0d44543bfa19 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.30.0 + 2.31.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f9bc150da10f..7b1dcc297f50 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.30.0 + 2.31.0 test From 7f5ebf79bc3b129e9225e1ff31ec177661dcbc7d Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 25 Oct 2023 16:36:00 -0400 Subject: [PATCH 2591/3441] chore: bump urllib3 from 1.26.17 to 1.26.18 in /synthtool/gcp/templates/java_library/.kokoro (#1885) (#2963) Source-Link: https://github.com/googleapis/synthtool/commit/e4a9d44f7d1ddda567c14bce7df4d93fdb010de0 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:4875b2142cb4325542ba4f3175a81921c4b2b8256db012b220e3ca9637b34154 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 ++-- .kokoro/nightly/integration.cfg | 1 + .kokoro/nightly/java11-integration.cfg | 1 + .kokoro/presubmit/integration.cfg | 1 + .kokoro/requirements.txt | 10 ++++++---- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 52eaa54d82b2..8058621d830f 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:88ba8dcc5c2c7792e1c3511381f4ab329002a1c42c512f66ca87ced572dfbf9f -# created: 2023-09-05T18:54:42.225408832Z + digest: sha256:4875b2142cb4325542ba4f3175a81921c4b2b8256db012b220e3ca9637b34154 +# created: 2023-10-24T01:51:42.863726766Z diff --git a/.kokoro/nightly/integration.cfg b/.kokoro/nightly/integration.cfg index e51c7b4c6c11..24b9cf634538 100644 --- a/.kokoro/nightly/integration.cfg +++ b/.kokoro/nightly/integration.cfg @@ -35,3 +35,4 @@ env_vars: { key: "SECRET_MANAGER_KEYS" value: "java-it-service-account" } + diff --git a/.kokoro/nightly/java11-integration.cfg b/.kokoro/nightly/java11-integration.cfg index 58049cc38f11..6a6ef94eff28 100644 --- a/.kokoro/nightly/java11-integration.cfg +++ b/.kokoro/nightly/java11-integration.cfg @@ -35,3 +35,4 @@ env_vars: { key: "SECRET_MANAGER_KEYS" value: "java-it-service-account" } + diff --git a/.kokoro/presubmit/integration.cfg b/.kokoro/presubmit/integration.cfg index dded67a9d54a..5864c603e5ad 100644 --- a/.kokoro/presubmit/integration.cfg +++ b/.kokoro/presubmit/integration.cfg @@ -31,3 +31,4 @@ env_vars: { key: "SECRET_MANAGER_KEYS" value: "java-it-service-account" } + diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index a73256ab80be..c5c11bbe7925 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -418,6 +418,7 @@ protobuf==3.20.3 \ # gcp-docuploader # gcp-releasetool # google-api-core + # googleapis-common-protos pyasn1==0.5.0 \ --hash=sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57 \ --hash=sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde @@ -469,9 +470,9 @@ typing-extensions==4.7.1 \ --hash=sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36 \ --hash=sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2 # via -r requirements.in -urllib3==1.26.16 \ - --hash=sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f \ - --hash=sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14 +urllib3==1.26.18 \ + --hash=sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07 \ + --hash=sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0 # via # google-auth # requests @@ -485,5 +486,6 @@ zipp==3.16.1 \ # via importlib-metadata # WARNING: The following packages were not pinned, but pip requires them to be -# pinned when the requirements file includes hashes. Consider using the --allow-unsafe flag. +# pinned when the requirements file includes hashes and the requirement is not +# satisfied by a package already installed. Consider using the --allow-unsafe flag. # setuptools From 04f57405d6630a356aa69d6b956be350f17940c3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Oct 2023 22:36:39 +0200 Subject: [PATCH 2592/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.29.0 (#2961) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b7bf4189db92..9acc23d420d9 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.28.0 + 2.29.0 test From 855e69889f68592608c8a56070ffdafdf8365f57 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Oct 2023 22:37:02 +0200 Subject: [PATCH 2593/3441] deps: update ossf/scorecard-action action to v2.3.1 (#2960) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 26169295a581..52d639fd6a84 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -37,7 +37,7 @@ jobs: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@483ef80eb98fb506c348f7d62e28055e49fe2398 # v2.3.0 + uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1 with: results_file: results.sarif results_format: sarif From de9bcee50ba682ffa93aae063191a8880741507d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Oct 2023 22:37:18 +0200 Subject: [PATCH 2594/3441] deps: update github/codeql-action action to v2.22.4 (#2958) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 52d639fd6a84..1518a20e2250 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@0116bc2df50751f9724a2e35ef1f24d22f90e4e1 # v2.22.3 + uses: github/codeql-action/upload-sarif@49abf0ba24d0b7953cb586944e918a0b92074c80 # v2.22.4 with: sarif_file: results.sarif From 6465e413c93e01069f86c80fc424715d46f9067b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Oct 2023 22:37:32 +0200 Subject: [PATCH 2595/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.28 (#2957) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 1f18d2c067bc..b311169b1a79 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.27 + 0.9.28 true com.example.bigquery.NativeImageBigquerySample From b03effd3b5f5fd6365de9a6267a1a8ace46d7718 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Oct 2023 22:38:14 +0200 Subject: [PATCH 2596/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.9.28 (#2956) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index b311169b1a79..b10ec974eb68 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.27 + 0.9.28 test From 0c8fb658e1232ecf2db86c8595ddcd1e20e0301e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Oct 2023 22:38:35 +0200 Subject: [PATCH 2597/3441] build(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.2.1 (#2962) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index b10ec974eb68..e5c84a304548 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -111,7 +111,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.1.2 + 3.2.1 **/*IT From 219db2c0023610d2adcba4889a9b785df2113893 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 26 Oct 2023 20:06:12 +0200 Subject: [PATCH 2598/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.35.0 (#2968) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9acc23d420d9..7387c22558b0 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.34.0 + 1.35.0 pom import From fcbf45486436af83f9ee608dae23d3077ef1e766 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 26 Oct 2023 20:22:23 +0200 Subject: [PATCH 2599/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.44.1 (#2969) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7387c22558b0..d89cf992b40e 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.44.0 + 2.44.1 pom import From e73e9255c1ac3701144c7055149ce8f2828e244d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 26 Oct 2023 20:22:40 +0200 Subject: [PATCH 2600/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.29.0 (#2970) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d3f893874d1d..5f7509ff639f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.28.0 + 2.29.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0d44543bfa19..b585b29bce4a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.28.0 + 2.29.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 7b1dcc297f50..5a828edced36 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.28.0 + 2.29.0 test From 474ac0a3aa304914c566c9cbbbbb3b8197b0c596 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 14:22:51 -0400 Subject: [PATCH 2601/3441] chore(main): release 2.33.3-SNAPSHOT (#2939) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index cd086b11166d..a7b42629750a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.33.2 + 2.33.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 53bd43904fdc..25dd80d90758 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.33.2 + 2.33.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.33.2 + 2.33.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d89cf992b40e..87cdbe76c3ec 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.33.2 + 2.33.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.33.2 + 2.33.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b585b29bce4a..75fa4f389c09 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.33.2 + 2.33.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 004398030cdb..159e39b4924b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.33.2:2.33.2 \ No newline at end of file +google-cloud-bigquery:2.33.2:2.33.3-SNAPSHOT \ No newline at end of file From 7a935eb8dd148354ddfad768a39d70fe29ea1d4b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 19:14:13 +0000 Subject: [PATCH 2602/3441] chore(main): release 2.34.0 (#2971) :robot: I have created a release *beep* *boop* --- ## [2.34.0](https://togithub.com/googleapis/java-bigquery/compare/v2.33.2...v2.34.0) (2023-10-26) ### Features * Add BigLakeConfiguration Property in StandardTableDefinition.java ([#2916](https://togithub.com/googleapis/java-bigquery/issues/2916)) ([1d660fa](https://togithub.com/googleapis/java-bigquery/commit/1d660fa19f0d82c2b6ec2ea9590881e513274c25)) * Add support for Dataset property storageBillingModel ([#2913](https://togithub.com/googleapis/java-bigquery/issues/2913)) ([f452cf4](https://togithub.com/googleapis/java-bigquery/commit/f452cf4e100b6cc211681a840ddbd0be5108d01e)) * Add support for preview features ([#2923](https://togithub.com/googleapis/java-bigquery/issues/2923)) ([113b8f2](https://togithub.com/googleapis/java-bigquery/commit/113b8f27419365c7277c6a300c5f07cea954cca1)) ### Dependencies * Update actions/checkout action to v4.1.1 ([#2950](https://togithub.com/googleapis/java-bigquery/issues/2950)) ([c556c18](https://togithub.com/googleapis/java-bigquery/commit/c556c1837baf0d53245452d6a152910df7883262)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.30.0 ([#2942](https://togithub.com/googleapis/java-bigquery/issues/2942)) ([e760fca](https://togithub.com/googleapis/java-bigquery/commit/e760fcae98b23ff4e7fc3ae25f2437be220e9df9)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.31.0 ([#2967](https://togithub.com/googleapis/java-bigquery/issues/2967)) ([7ed55b5](https://togithub.com/googleapis/java-bigquery/commit/7ed55b5c075dbac827c6201d0398ff87d8240b38)) * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20231008-2.0.0 ([#2946](https://togithub.com/googleapis/java-bigquery/issues/2946)) ([3d0da5b](https://togithub.com/googleapis/java-bigquery/commit/3d0da5b5a20f49721477afbed10ea3fff43652bb)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.34.0 ([#2943](https://togithub.com/googleapis/java-bigquery/issues/2943)) ([18162c3](https://togithub.com/googleapis/java-bigquery/commit/18162c37c97eff6387e0f58d211f2c1725a9c8d3)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.35.0 ([#2968](https://togithub.com/googleapis/java-bigquery/issues/2968)) ([219db2c](https://togithub.com/googleapis/java-bigquery/commit/219db2c0023610d2adcba4889a9b785df2113893)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.18.0 ([#2955](https://togithub.com/googleapis/java-bigquery/issues/2955)) ([1ee18eb](https://togithub.com/googleapis/java-bigquery/commit/1ee18ebeb90adeb371ef04cbfc7b18be2c24d1e8)) * Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.28 ([#2956](https://togithub.com/googleapis/java-bigquery/issues/2956)) ([b03effd](https://togithub.com/googleapis/java-bigquery/commit/b03effd3b5f5fd6365de9a6267a1a8ace46d7718)) * Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.28 ([#2957](https://togithub.com/googleapis/java-bigquery/issues/2957)) ([6465e41](https://togithub.com/googleapis/java-bigquery/commit/6465e413c93e01069f86c80fc424715d46f9067b)) * Update github/codeql-action action to v2.22.2 ([#2944](https://togithub.com/googleapis/java-bigquery/issues/2944)) ([f584e59](https://togithub.com/googleapis/java-bigquery/commit/f584e59571f0c7918d2d83a19b00d49bd5b558c4)) * Update github/codeql-action action to v2.22.3 ([#2954](https://togithub.com/googleapis/java-bigquery/issues/2954)) ([1b2bc18](https://togithub.com/googleapis/java-bigquery/commit/1b2bc18bf49d06e1ccd29745be649108dd28cfa5)) * Update github/codeql-action action to v2.22.4 ([#2958](https://togithub.com/googleapis/java-bigquery/issues/2958)) ([de9bcee](https://togithub.com/googleapis/java-bigquery/commit/de9bcee50ba682ffa93aae063191a8880741507d)) * Update ossf/scorecard-action action to v2.3.1 ([#2960](https://togithub.com/googleapis/java-bigquery/issues/2960)) ([855e698](https://togithub.com/googleapis/java-bigquery/commit/855e69889f68592608c8a56070ffdafdf8365f57)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 33 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07d11f888827..a8d56e89100d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,31 @@ # Changelog +## [2.34.0](https://github.com/googleapis/java-bigquery/compare/v2.33.2...v2.34.0) (2023-10-26) + + +### Features + +* Add BigLakeConfiguration Property in StandardTableDefinition.java ([#2916](https://github.com/googleapis/java-bigquery/issues/2916)) ([1d660fa](https://github.com/googleapis/java-bigquery/commit/1d660fa19f0d82c2b6ec2ea9590881e513274c25)) +* Add support for Dataset property storageBillingModel ([#2913](https://github.com/googleapis/java-bigquery/issues/2913)) ([f452cf4](https://github.com/googleapis/java-bigquery/commit/f452cf4e100b6cc211681a840ddbd0be5108d01e)) +* Add support for preview features ([#2923](https://github.com/googleapis/java-bigquery/issues/2923)) ([113b8f2](https://github.com/googleapis/java-bigquery/commit/113b8f27419365c7277c6a300c5f07cea954cca1)) + + +### Dependencies + +* Update actions/checkout action to v4.1.1 ([#2950](https://github.com/googleapis/java-bigquery/issues/2950)) ([c556c18](https://github.com/googleapis/java-bigquery/commit/c556c1837baf0d53245452d6a152910df7883262)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.30.0 ([#2942](https://github.com/googleapis/java-bigquery/issues/2942)) ([e760fca](https://github.com/googleapis/java-bigquery/commit/e760fcae98b23ff4e7fc3ae25f2437be220e9df9)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.31.0 ([#2967](https://github.com/googleapis/java-bigquery/issues/2967)) ([7ed55b5](https://github.com/googleapis/java-bigquery/commit/7ed55b5c075dbac827c6201d0398ff87d8240b38)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20231008-2.0.0 ([#2946](https://github.com/googleapis/java-bigquery/issues/2946)) ([3d0da5b](https://github.com/googleapis/java-bigquery/commit/3d0da5b5a20f49721477afbed10ea3fff43652bb)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.34.0 ([#2943](https://github.com/googleapis/java-bigquery/issues/2943)) ([18162c3](https://github.com/googleapis/java-bigquery/commit/18162c37c97eff6387e0f58d211f2c1725a9c8d3)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.35.0 ([#2968](https://github.com/googleapis/java-bigquery/issues/2968)) ([219db2c](https://github.com/googleapis/java-bigquery/commit/219db2c0023610d2adcba4889a9b785df2113893)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.18.0 ([#2955](https://github.com/googleapis/java-bigquery/issues/2955)) ([1ee18eb](https://github.com/googleapis/java-bigquery/commit/1ee18ebeb90adeb371ef04cbfc7b18be2c24d1e8)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.28 ([#2956](https://github.com/googleapis/java-bigquery/issues/2956)) ([b03effd](https://github.com/googleapis/java-bigquery/commit/b03effd3b5f5fd6365de9a6267a1a8ace46d7718)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.28 ([#2957](https://github.com/googleapis/java-bigquery/issues/2957)) ([6465e41](https://github.com/googleapis/java-bigquery/commit/6465e413c93e01069f86c80fc424715d46f9067b)) +* Update github/codeql-action action to v2.22.2 ([#2944](https://github.com/googleapis/java-bigquery/issues/2944)) ([f584e59](https://github.com/googleapis/java-bigquery/commit/f584e59571f0c7918d2d83a19b00d49bd5b558c4)) +* Update github/codeql-action action to v2.22.3 ([#2954](https://github.com/googleapis/java-bigquery/issues/2954)) ([1b2bc18](https://github.com/googleapis/java-bigquery/commit/1b2bc18bf49d06e1ccd29745be649108dd28cfa5)) +* Update github/codeql-action action to v2.22.4 ([#2958](https://github.com/googleapis/java-bigquery/issues/2958)) ([de9bcee](https://github.com/googleapis/java-bigquery/commit/de9bcee50ba682ffa93aae063191a8880741507d)) +* Update ossf/scorecard-action action to v2.3.1 ([#2960](https://github.com/googleapis/java-bigquery/issues/2960)) ([855e698](https://github.com/googleapis/java-bigquery/commit/855e69889f68592608c8a56070ffdafdf8365f57)) + ## [2.33.2](https://github.com/googleapis/java-bigquery/compare/v2.33.1...v2.33.2) (2023-10-11) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a7b42629750a..15cd025ff6d6 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.33.3-SNAPSHOT + 2.34.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 25dd80d90758..d98743b7e7ff 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.33.3-SNAPSHOT + 2.34.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.33.3-SNAPSHOT + 2.34.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 87cdbe76c3ec..da800e6f2ad3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.33.3-SNAPSHOT + 2.34.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.33.3-SNAPSHOT + 2.34.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 75fa4f389c09..caa1d2d20eac 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.33.3-SNAPSHOT + 2.34.0 diff --git a/versions.txt b/versions.txt index 159e39b4924b..d14c19ff9660 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.33.2:2.33.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.34.0:2.34.0 \ No newline at end of file From af8ca6c04634af02fdc8b94e85e76a6f3331a3fd Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 27 Oct 2023 20:22:26 +0200 Subject: [PATCH 2603/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.34.0 (#2973) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.33.2` -> `2.34.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigquery/2.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigquery/2.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigquery/2.33.2/2.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigquery/2.33.2/2.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery (com.google.cloud:google-cloud-bigquery) ### [`v2.34.0`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#2340-2023-10-26) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.33.2...v2.34.0) ##### Features - Add BigLakeConfiguration Property in StandardTableDefinition.java ([#​2916](https://togithub.com/googleapis/java-bigquery/issues/2916)) ([1d660fa](https://togithub.com/googleapis/java-bigquery/commit/1d660fa19f0d82c2b6ec2ea9590881e513274c25)) - Add support for Dataset property storageBillingModel ([#​2913](https://togithub.com/googleapis/java-bigquery/issues/2913)) ([f452cf4](https://togithub.com/googleapis/java-bigquery/commit/f452cf4e100b6cc211681a840ddbd0be5108d01e)) - Add support for preview features ([#​2923](https://togithub.com/googleapis/java-bigquery/issues/2923)) ([113b8f2](https://togithub.com/googleapis/java-bigquery/commit/113b8f27419365c7277c6a300c5f07cea954cca1)) ##### Dependencies - Update actions/checkout action to v4.1.1 ([#​2950](https://togithub.com/googleapis/java-bigquery/issues/2950)) ([c556c18](https://togithub.com/googleapis/java-bigquery/commit/c556c1837baf0d53245452d6a152910df7883262)) - Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.30.0 ([#​2942](https://togithub.com/googleapis/java-bigquery/issues/2942)) ([e760fca](https://togithub.com/googleapis/java-bigquery/commit/e760fcae98b23ff4e7fc3ae25f2437be220e9df9)) - Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.31.0 ([#​2967](https://togithub.com/googleapis/java-bigquery/issues/2967)) ([7ed55b5](https://togithub.com/googleapis/java-bigquery/commit/7ed55b5c075dbac827c6201d0398ff87d8240b38)) - Update dependency com.google.apis:google-api-services-bigquery to v2-rev20231008-2.0.0 ([#​2946](https://togithub.com/googleapis/java-bigquery/issues/2946)) ([3d0da5b](https://togithub.com/googleapis/java-bigquery/commit/3d0da5b5a20f49721477afbed10ea3fff43652bb)) - Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.34.0 ([#​2943](https://togithub.com/googleapis/java-bigquery/issues/2943)) ([18162c3](https://togithub.com/googleapis/java-bigquery/commit/18162c37c97eff6387e0f58d211f2c1725a9c8d3)) - Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.35.0 ([#​2968](https://togithub.com/googleapis/java-bigquery/issues/2968)) ([219db2c](https://togithub.com/googleapis/java-bigquery/commit/219db2c0023610d2adcba4889a9b785df2113893)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.18.0 ([#​2955](https://togithub.com/googleapis/java-bigquery/issues/2955)) ([1ee18eb](https://togithub.com/googleapis/java-bigquery/commit/1ee18ebeb90adeb371ef04cbfc7b18be2c24d1e8)) - Update dependency org.graalvm.buildtools:junit-platform-native to v0.9.28 ([#​2956](https://togithub.com/googleapis/java-bigquery/issues/2956)) ([b03effd](https://togithub.com/googleapis/java-bigquery/commit/b03effd3b5f5fd6365de9a6267a1a8ace46d7718)) - Update dependency org.graalvm.buildtools:native-maven-plugin to v0.9.28 ([#​2957](https://togithub.com/googleapis/java-bigquery/issues/2957)) ([6465e41](https://togithub.com/googleapis/java-bigquery/commit/6465e413c93e01069f86c80fc424715d46f9067b)) - Update github/codeql-action action to v2.22.2 ([#​2944](https://togithub.com/googleapis/java-bigquery/issues/2944)) ([f584e59](https://togithub.com/googleapis/java-bigquery/commit/f584e59571f0c7918d2d83a19b00d49bd5b558c4)) - Update github/codeql-action action to v2.22.3 ([#​2954](https://togithub.com/googleapis/java-bigquery/issues/2954)) ([1b2bc18](https://togithub.com/googleapis/java-bigquery/commit/1b2bc18bf49d06e1ccd29745be649108dd28cfa5)) - Update github/codeql-action action to v2.22.4 ([#​2958](https://togithub.com/googleapis/java-bigquery/issues/2958)) ([de9bcee](https://togithub.com/googleapis/java-bigquery/commit/de9bcee50ba682ffa93aae063191a8880741507d)) - Update ossf/scorecard-action action to v2.3.1 ([#​2960](https://togithub.com/googleapis/java-bigquery/issues/2960)) ([855e698](https://togithub.com/googleapis/java-bigquery/commit/855e69889f68592608c8a56070ffdafdf8365f57))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- README.md | 10 +++++----- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6eb5a01fa5e5..162e644b8288 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.33.2 + 2.34.0 ``` @@ -53,20 +53,20 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.25.0') +implementation platform('com.google.cloud:libraries-bom:26.26.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.33.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.34.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.33.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.34.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.33.2 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.34.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5f7509ff639f..d3c409fccf7c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.33.2 + 2.34.0 From 0b8884634f8bd21615a9263bb1344cb162adfa47 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 27 Oct 2023 20:40:19 +0200 Subject: [PATCH 2604/3441] deps: update github/codeql-action action to v2.22.5 (#2975) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.22.5 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 1518a20e2250..730e292765e8 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@49abf0ba24d0b7953cb586944e918a0b92074c80 # v2.22.4 + uses: github/codeql-action/upload-sarif@74483a38d39275f33fcff5f35b679b5ca4a26a99 # v2.22.5 with: sarif_file: results.sarif From 4b1bef421a70027ef6da948ff3b476a9ad5376c7 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 11:43:25 -0500 Subject: [PATCH 2605/3441] chore: update graalvm version to 22.3.3 in kokoro cfg files. (#1889) (#2978) Source-Link: https://github.com/googleapis/synthtool/commit/1547f9a33de075d31d434bb3c9d7f53f068e0ff3 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:bc2bf47c7370f1b1a8a46b0c104ce7e43644ac58902c9de265fe1f253fcc2506 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 ++-- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 8058621d830f..f930d4846feb 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:4875b2142cb4325542ba4f3175a81921c4b2b8256db012b220e3ca9637b34154 -# created: 2023-10-24T01:51:42.863726766Z + digest: sha256:bc2bf47c7370f1b1a8a46b0c104ce7e43644ac58902c9de265fe1f253fcc2506 +# created: 2023-10-31T13:44:21.909247346Z diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index f52533545896..fb5bb678ffcc 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.2" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.3" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 44b1004875b6..59efee340c53 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.2" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.3" } env_vars: { From a64b91c03b0291452d53cc407d9c841b3567fe23 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 6 Nov 2023 17:44:00 +0100 Subject: [PATCH 2606/3441] deps: update dependency org.junit.vintage:junit-vintage-engine to v5.10.1 (#2984) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index e5c84a304548..aa41f26ea8ba 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ org.junit.vintage junit-vintage-engine - 5.10.0 + 5.10.1 test From 82d495e47807c63438f43c6774ead0d6c883efaa Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 6 Nov 2023 17:44:21 +0100 Subject: [PATCH 2607/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.29.1 (#2983) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index da800e6f2ad3..fad751c0d9c6 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.29.0 + 2.29.1 test From c137f1f17f192f4f0a3c4d33e1d27677dbf4556b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 6 Nov 2023 17:45:13 +0100 Subject: [PATCH 2608/3441] deps: update dependency org.checkerframework:checker-compat-qual to v2.5.6 (#2982) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fad751c0d9c6..c427d557ce33 100644 --- a/pom.xml +++ b/pom.xml @@ -105,7 +105,7 @@ org.checkerframework checker-compat-qual - 2.5.5 + 2.5.6 From fa267b672965195b712a44177765e1314f286f37 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 14:42:51 -0500 Subject: [PATCH 2609/3441] chore(main): release 2.34.1-SNAPSHOT (#2972) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 15cd025ff6d6..ad670a0f8fab 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.34.0 + 2.34.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d98743b7e7ff..0d5b409b4543 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.34.0 + 2.34.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.34.0 + 2.34.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c427d557ce33..c67ae160ed31 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.34.0 + 2.34.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.34.0 + 2.34.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index caa1d2d20eac..b4417ec03410 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.34.0 + 2.34.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index d14c19ff9660..af6c60ecd02d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.34.0:2.34.0 \ No newline at end of file +google-cloud-bigquery:2.34.0:2.34.1-SNAPSHOT \ No newline at end of file From 0d400da7f73ee44ab5053ef51b1d45a9d29f0ebb Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 6 Nov 2023 21:28:46 +0100 Subject: [PATCH 2610/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.19.0 (#2986) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c67ae160ed31..ec9ec72a17f0 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20231008-2.0.0 - 3.18.0 + 3.19.0 12.0.1 From 73238cee5af98ec64cdc323273762300e25766bc Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 15:56:46 -0500 Subject: [PATCH 2611/3441] chore(main): release 2.34.1 (#2985) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 10 ++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 17 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a8d56e89100d..f4d3f5880ecb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## [2.34.1](https://github.com/googleapis/java-bigquery/compare/v2.34.0...v2.34.1) (2023-11-06) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.19.0 ([#2986](https://github.com/googleapis/java-bigquery/issues/2986)) ([0d400da](https://github.com/googleapis/java-bigquery/commit/0d400da7f73ee44ab5053ef51b1d45a9d29f0ebb)) +* Update dependency org.checkerframework:checker-compat-qual to v2.5.6 ([#2982](https://github.com/googleapis/java-bigquery/issues/2982)) ([c137f1f](https://github.com/googleapis/java-bigquery/commit/c137f1f17f192f4f0a3c4d33e1d27677dbf4556b)) +* Update dependency org.junit.vintage:junit-vintage-engine to v5.10.1 ([#2984](https://github.com/googleapis/java-bigquery/issues/2984)) ([a64b91c](https://github.com/googleapis/java-bigquery/commit/a64b91c03b0291452d53cc407d9c841b3567fe23)) +* Update github/codeql-action action to v2.22.5 ([#2975](https://github.com/googleapis/java-bigquery/issues/2975)) ([0b88846](https://github.com/googleapis/java-bigquery/commit/0b8884634f8bd21615a9263bb1344cb162adfa47)) + ## [2.34.0](https://github.com/googleapis/java-bigquery/compare/v2.33.2...v2.34.0) (2023-10-26) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ad670a0f8fab..c9daf9cddf2d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.34.1-SNAPSHOT + 2.34.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0d5b409b4543..6e1c128815b8 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.34.1-SNAPSHOT + 2.34.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.34.1-SNAPSHOT + 2.34.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ec9ec72a17f0..439f7cb7f61b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.34.1-SNAPSHOT + 2.34.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.34.1-SNAPSHOT + 2.34.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b4417ec03410..01505abaf3f9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.34.1-SNAPSHOT + 2.34.1 diff --git a/versions.txt b/versions.txt index af6c60ecd02d..ea4b61155cdd 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.34.0:2.34.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.34.1:2.34.1 \ No newline at end of file From dbdff0be16f55c3ef2d6eb7062c5fb988798a329 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 7 Nov 2023 00:00:21 +0100 Subject: [PATCH 2612/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.32.0 (#2987) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 439f7cb7f61b..0477a90f70f1 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.31.0 + 2.32.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d3c409fccf7c..87047713cda8 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.31.0 + 2.32.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 01505abaf3f9..018837f9489b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.31.0 + 2.32.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 5a828edced36..2cf63f32d62e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.31.0 + 2.32.0 test From 47a61a7c2cb5fed88937670bca7b15e38529dfaf Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 7 Nov 2023 00:00:45 +0100 Subject: [PATCH 2613/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.32.0 (#2989) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0477a90f70f1..cc14138b90c5 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.31.0 + 2.32.0 test From 81c07275809eadc4e7146bd080475e4775102339 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 7 Nov 2023 00:01:08 +0100 Subject: [PATCH 2614/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.36.0 (#2990) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cc14138b90c5..13bc3cf7c131 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.35.0 + 1.36.0 pom import From f39d339b3407d2f0d9f200fa91f81136862c45f9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 7 Nov 2023 14:23:13 +0100 Subject: [PATCH 2615/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.45.0 (#2993) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.45.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 +++--- pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 162e644b8288..31b68b4b871a 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.34.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.34.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.34.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.34.1" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.34.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.34.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/pom.xml b/pom.xml index 13bc3cf7c131..f8c54e20b7e5 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.44.1 + 2.45.0 pom import From af4d5795bbdaf977b52b18894c8ca27a5eeb54c2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 7 Nov 2023 14:23:32 +0100 Subject: [PATCH 2616/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.34.1 (#2992) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.34.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 31b68b4b871a..686622a082c3 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.34.0 + 2.34.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 87047713cda8..a8e7c622c0a3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.34.0 + 2.34.1 From 2e00eef9f94b7a31ea3c483ad69b588718b4e0a8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 08:56:16 -0500 Subject: [PATCH 2617/3441] chore(main): release 2.34.2-SNAPSHOT (#2988) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c9daf9cddf2d..e35e9a28195a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.34.1 + 2.34.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6e1c128815b8..49b453550096 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.34.1 + 2.34.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.34.1 + 2.34.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f8c54e20b7e5..a975aecf135a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.34.1 + 2.34.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.34.1 + 2.34.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 018837f9489b..0849cfbffad6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.34.1 + 2.34.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index ea4b61155cdd..b8b35c4b1601 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.34.1:2.34.1 \ No newline at end of file +google-cloud-bigquery:2.34.1:2.34.2-SNAPSHOT \ No newline at end of file From 5d6a1c0bfc41bcaa93453820b39b2cbbb743d0a7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 7 Nov 2023 17:02:25 +0100 Subject: [PATCH 2618/3441] build(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.2.2 (#2991) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.2.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index aa41f26ea8ba..f4c1c3ddc17c 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -111,7 +111,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.2.1 + 3.2.2 **/*IT From 6d14b276551cf758b58da5d2de4226b92331c40e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 13:14:21 -0500 Subject: [PATCH 2619/3441] chore(main): release 2.34.2 (#2994) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 15 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4d3f5880ecb..6c4b28a2b01c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.34.2](https://github.com/googleapis/java-bigquery/compare/v2.34.1...v2.34.2) (2023-11-07) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.32.0 ([#2989](https://github.com/googleapis/java-bigquery/issues/2989)) ([47a61a7](https://github.com/googleapis/java-bigquery/commit/47a61a7c2cb5fed88937670bca7b15e38529dfaf)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.36.0 ([#2990](https://github.com/googleapis/java-bigquery/issues/2990)) ([81c0727](https://github.com/googleapis/java-bigquery/commit/81c07275809eadc4e7146bd080475e4775102339)) + ## [2.34.1](https://github.com/googleapis/java-bigquery/compare/v2.34.0...v2.34.1) (2023-11-06) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index e35e9a28195a..eb6fcb814dc0 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.34.2-SNAPSHOT + 2.34.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 49b453550096..e0e6a8fb0665 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.34.2-SNAPSHOT + 2.34.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.34.2-SNAPSHOT + 2.34.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index a975aecf135a..616aa527651a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.34.2-SNAPSHOT + 2.34.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.34.2-SNAPSHOT + 2.34.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0849cfbffad6..2e28a2ec024d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.34.2-SNAPSHOT + 2.34.2 diff --git a/versions.txt b/versions.txt index b8b35c4b1601..4907d332d005 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.34.1:2.34.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.34.2:2.34.2 \ No newline at end of file From 19b7c3ad842a566d4e3e93e48625e0281504de80 Mon Sep 17 00:00:00 2001 From: PhongChuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 9 Nov 2023 09:50:09 -0500 Subject: [PATCH 2620/3441] feat: Add InputBytes to extract job statistics (#2998) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Add InputBytes to extract job statistics * feat: Add InputBytes to extract job statistics * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 ++--- .../google/cloud/bigquery/JobStatistics.java | 23 ++++++++++++++++--- .../cloud/bigquery/JobStatisticsTest.java | 3 +++ .../cloud/bigquery/it/ITBigQueryTest.java | 9 ++++++++ 4 files changed, 35 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 686622a082c3..f542d5293a7e 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.34.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.34.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.34.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.34.2" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.34.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.34.2 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 59c48615fd5f..1cbf22fa790f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -101,16 +101,21 @@ public static class ExtractStatistics extends JobStatistics { private final List destinationUriFileCounts; + private final Long inputBytes; + static final class Builder extends JobStatistics.Builder { private List destinationUriFileCounts; + private Long inputBytes; + private Builder() {} private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsPb) { super(statisticsPb); if (statisticsPb.getExtract() != null) { this.destinationUriFileCounts = statisticsPb.getExtract().getDestinationUriFileCounts(); + this.inputBytes = statisticsPb.getExtract().getInputBytes(); } } @@ -119,6 +124,11 @@ Builder setDestinationUriFileCounts(List destinationUriFileCounts) { return self(); } + Builder setInputBytes(Long inputBytes) { + this.inputBytes = inputBytes; + return self(); + } + @Override ExtractStatistics build() { return new ExtractStatistics(this); @@ -128,6 +138,7 @@ ExtractStatistics build() { private ExtractStatistics(Builder builder) { super(builder); this.destinationUriFileCounts = builder.destinationUriFileCounts; + this.inputBytes = builder.inputBytes; } /** @@ -139,6 +150,11 @@ public List getDestinationUriFileCounts() { return destinationUriFileCounts; } + /** Returns number of user bytes extracted into the result. */ + public Long getInputBytes() { + return inputBytes; + } + @Override ToStringHelper toStringHelper() { return super.toStringHelper().add("destinationUriFileCounts", destinationUriFileCounts); @@ -159,9 +175,10 @@ public final int hashCode() { @Override com.google.api.services.bigquery.model.JobStatistics toPb() { - com.google.api.services.bigquery.model.JobStatistics statisticsPb = super.toPb(); - return statisticsPb.setExtract( - new JobStatistics4().setDestinationUriFileCounts(destinationUriFileCounts)); + JobStatistics4 extractStatisticsPb = new JobStatistics4(); + extractStatisticsPb.setDestinationUriFileCounts(destinationUriFileCounts); + extractStatisticsPb.setInputBytes(inputBytes); + return super.toPb().setExtract(extractStatisticsPb); } static Builder newBuilder() { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index af75a2391ee4..f32832b594e8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -97,6 +97,7 @@ public class JobStatisticsTest { .setEndTime(END_TIME) .setStartTime(START_TIME) .setDestinationUriFileCounts(FILE_COUNT) + .setInputBytes(INPUT_BYTES) .build(); private static final LoadStatistics LOAD_STATISTICS = LoadStatistics.newBuilder() @@ -249,6 +250,7 @@ public void testBuilder() { assertEquals(START_TIME, EXTRACT_STATISTICS.getStartTime()); assertEquals(END_TIME, EXTRACT_STATISTICS.getEndTime()); assertEquals(FILE_COUNT, EXTRACT_STATISTICS.getDestinationUriFileCounts()); + assertEquals(INPUT_BYTES, EXTRACT_STATISTICS.getInputBytes()); assertEquals(CREATION_TIME, LOAD_STATISTICS.getCreationTime()); assertEquals(START_TIME, LOAD_STATISTICS.getStartTime()); @@ -385,6 +387,7 @@ private void compareExtractStatistics(ExtractStatistics expected, ExtractStatist assertEquals(expected, value); compareStatistics(expected, value); assertEquals(expected.getDestinationUriFileCounts(), value.getDestinationUriFileCounts()); + assertEquals(expected.getInputBytes(), value.getInputBytes()); } private void compareLoadStatistics(LoadStatistics expected, LoadStatistics value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 8cada3e08482..b37f389ae002 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -87,6 +87,7 @@ import com.google.cloud.bigquery.JobId; import com.google.cloud.bigquery.JobInfo; import com.google.cloud.bigquery.JobStatistics; +import com.google.cloud.bigquery.JobStatistics.ExtractStatistics; import com.google.cloud.bigquery.JobStatistics.LoadStatistics; import com.google.cloud.bigquery.JobStatistics.QueryStatistics; import com.google.cloud.bigquery.JobStatistics.QueryStatistics.StatementType; @@ -5304,6 +5305,8 @@ public void testExtractJob() throws InterruptedException, TimeoutException { assertNull(remoteLoadJob.getStatus().getError()); LoadJobConfiguration loadJobConfiguration = remoteLoadJob.getConfiguration(); assertEquals(labels, loadJobConfiguration.getLabels()); + LoadStatistics loadStatistics = remoteLoadJob.getStatistics(); + assertNotNull(loadStatistics); ExtractJobConfiguration extractConfiguration = ExtractJobConfiguration.newBuilder(destinationTable, "gs://" + BUCKET + "/" + EXTRACT_FILE) @@ -5313,6 +5316,12 @@ public void testExtractJob() throws InterruptedException, TimeoutException { remoteExtractJob = remoteExtractJob.waitFor(); assertNull(remoteExtractJob.getStatus().getError()); + ExtractStatistics extractStatistics = remoteExtractJob.getStatistics(); + assertNotNull(extractStatistics); + assertEquals(1L, extractStatistics.getDestinationUriFileCounts().size()); + assertEquals( + loadStatistics.getOutputBytes().longValue(), extractStatistics.getInputBytes().longValue()); + String extractedCsv = new String(storage.readAllBytes(BUCKET, EXTRACT_FILE), StandardCharsets.UTF_8); assertEquals( From ff4a086f0aa3c0401b62489ea8a0b9e2fd6cb3fe Mon Sep 17 00:00:00 2001 From: Minbo Bae <49642083+baeminbo@users.noreply.github.com> Date: Tue, 28 Nov 2023 09:52:21 -0800 Subject: [PATCH 2621/3441] fix: update TableInsertRows.java (#2999) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: update TableInsertRows.java Make the example set row id in `addRow`. If row id is missed, it disable the retry b/280865468, which I believe an unexpected behavior to users. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- .../java/com/example/bigquery/TableInsertRows.java | 12 ++++++------ .../bigquery/TableInsertRowsWithoutRowIds.java | 2 ++ .../java/com/example/bigquery/TableInsertRowsIT.java | 3 ++- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index f542d5293a7e..3c959da7c1d4 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.26.0') +implementation platform('com.google.cloud:libraries-bom:26.27.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java index b5363d47bbd9..05bcee6d9a10 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java +++ b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java @@ -39,12 +39,13 @@ public static void main(String[] args) { Map rowContent = new HashMap<>(); rowContent.put("booleanField", true); rowContent.put("numericField", "3.14"); - - tableInsertRows(datasetName, tableName, rowContent); + // TODO(developer): Replace the row id with a unique value for each row. + String rowId = "ROW_ID"; + tableInsertRows(datasetName, tableName, rowId, rowContent); } public static void tableInsertRows( - String datasetName, String tableName, Map rowContent) { + String datasetName, String tableName, String rowId, Map rowContent) { try { // Initialize client that will be used to send requests. This client only needs to be created // once, and can be reused for multiple requests. @@ -58,9 +59,8 @@ public static void tableInsertRows( bigquery.insertAll( InsertAllRequest.newBuilder(tableId) // More rows can be added in the same RPC by invoking .addRow() on the builder. - // You can also supply optional unique row keys to support de-duplication - // scenarios. - .addRow(rowContent) + // You can omit the unique row ids to disable de-duplication. + .addRow(rowId, rowContent) .build()); if (response.hasErrors()) { diff --git a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java index 1befb593da68..1f4def54c0a5 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java +++ b/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java @@ -54,6 +54,8 @@ public static void tableInsertRowsWithoutRowIds(String datasetName, String table InsertAllResponse response = bigquery.insertAll( InsertAllRequest.newBuilder(TableId.of(datasetName, tableName)) + // No row ids disable de-duplication, and also disable the retries in the Java + // library. .setRows( ImmutableList.of( InsertAllRequest.RowToInsert.of(rowContent1), diff --git a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java index 84a344cd268a..d479530120e6 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java @@ -88,8 +88,9 @@ public void testTableInsertRows() { Map rowContent = new HashMap<>(); rowContent.put("booleanField", true); rowContent.put("numericField", "3.14"); + String rowId = "ROW_ID"; // Testing - TableInsertRows.tableInsertRows(BIGQUERY_DATASET_NAME, tableName, rowContent); + TableInsertRows.tableInsertRows(BIGQUERY_DATASET_NAME, tableName, rowId, rowContent); assertThat(bout.toString()).contains("Rows successfully inserted into table"); } } From 1fccc1cdf13e7971b34ec4c6fd14c0f29e6aaf7c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 28 Nov 2023 22:03:32 +0100 Subject: [PATCH 2622/3441] build(deps): update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.5.0 (#3013) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.5.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- google-cloud-bigquery/pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e0e6a8fb0665..2e163c1a23d1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -187,7 +187,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.4.0 + 3.5.0 add-source diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a8e7c622c0a3..d77da94a0003 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -92,7 +92,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.4.0 + 3.5.0 add-snippets-source diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2e28a2ec024d..3770393843a0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -90,7 +90,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.4.0 + 3.5.0 add-snippets-source From ffc32cf8015030546d2dd7752084e95648d35add Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 28 Nov 2023 22:03:59 +0100 Subject: [PATCH 2623/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.5.0 (#3008) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.5.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 616aa527651a..6121d76d7953 100644 --- a/pom.xml +++ b/pom.xml @@ -197,7 +197,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.4.5 + 3.5.0 From 904ed98af0f08b37f2f54f4b7e83ebf21289d559 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 28 Nov 2023 22:04:21 +0100 Subject: [PATCH 2624/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.46.0 (#3003) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.46.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6121d76d7953..39620b9c442d 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.45.0 + 2.46.0 pom import From d1bdeab242ea2e6374d1b6d0bbd9eadf638cbcb2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 28 Nov 2023 22:04:40 +0100 Subject: [PATCH 2625/3441] deps: update actions/github-script action to v7 (#3001) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/github-script action to v7 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/auto-release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto-release.yaml b/.github/workflows/auto-release.yaml index 92c69857f611..b27e937b4534 100644 --- a/.github/workflows/auto-release.yaml +++ b/.github/workflows/auto-release.yaml @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-latest if: contains(github.head_ref, 'release-please') steps: - - uses: actions/github-script@v6 + - uses: actions/github-script@v7 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} debug: true From c40628a05e07c5e70d3aedf7addef60ace80c592 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 28 Nov 2023 22:05:21 +0100 Subject: [PATCH 2626/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.29.1 (#2997) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.29.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d77da94a0003..e09a2287ee89 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.29.0 + 2.29.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3770393843a0..f27a8d7ff6ed 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.29.0 + 2.29.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 2cf63f32d62e..e65db0f720a9 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.29.0 + 2.29.1 test From 79959e5bbd84055575a2fde4e8ec8ed973a373e9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 28 Nov 2023 22:05:41 +0100 Subject: [PATCH 2627/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.34.2 (#2996) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.34.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3c959da7c1d4..576fec2ebac7 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.34.1 + 2.34.2 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e09a2287ee89..145e02e3f7bf 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.34.1 + 2.34.2 From ecb567b75849cd0665ac4ab315a5af3bdf934f48 Mon Sep 17 00:00:00 2001 From: PhongChuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 30 Nov 2023 10:49:30 -0500 Subject: [PATCH 2628/3441] feat: Add Routine DataGovernanceType (#3006) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Add Routine DataGovernanceType This also: - fix an issue where RoutineInfo unit test was being skipped - fix an issue where ImportLibaries were not being exported in the toPb method * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * fix: Add DataGovernanceType to clirr ignored difference --------- Co-authored-by: Owl Bot --- .../clirr-ignored-differences.xml | 5 +++ .../com/google/cloud/bigquery/Routine.java | 6 ++++ .../google/cloud/bigquery/RoutineInfo.java | 35 +++++++++++++++++-- .../cloud/bigquery/RoutineInfoTest.java | 7 ++++ .../google/cloud/bigquery/RoutineTest.java | 5 +++ .../cloud/bigquery/it/ITBigQueryTest.java | 27 ++++++++++++++ 6 files changed, 83 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index c22579a79577..7513b5324093 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -19,6 +19,11 @@ com/google/cloud/bigquery/ExternalTableDefinition* *ReferenceFileSchemaUri(*) + + 7013 + com/google/cloud/bigquery/RoutineInfo* + *DataGovernanceType(*) + 7013 com/google/cloud/bigquery/RoutineInfo* diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java index d2d6ec68376e..5d99ccfbdca4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java @@ -135,6 +135,12 @@ public Builder setRemoteFunctionOptions(RemoteFunctionOptions remoteFunctionOpti return this; } + @Override + public Builder setDataGovernanceType(String dataGovernanceType) { + infoBuilder.setDataGovernanceType(dataGovernanceType); + return this; + } + @Override public Routine build() { return new Routine(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java index 3001d2fb97c5..7cea99f93f80 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java @@ -72,6 +72,8 @@ public Routine apply(RoutineInfo routineInfo) { private final String body; private final RemoteFunctionOptions remoteFunctionOptions; + private final String dataGovernanceType; + public abstract static class Builder { abstract Builder setRoutineId(RoutineId id); @@ -157,6 +159,13 @@ public abstract static class Builder { */ public abstract Builder setRemoteFunctionOptions(RemoteFunctionOptions remoteFunctionOptions); + /** + * Sets the data governance type for the Builder (e.g. DATA_MASKING). + * + *

    See https://cloud.google.com/bigquery/docs/reference/rest/v2/routines + */ + public abstract Builder setDataGovernanceType(String dataGovernanceType); + /** Creates a {@code RoutineInfo} object. */ public abstract RoutineInfo build(); } @@ -177,6 +186,8 @@ static class BuilderImpl extends Builder { private String body; private RemoteFunctionOptions remoteFunctionOptions; + private String dataGovernanceType; + BuilderImpl() {} BuilderImpl(RoutineInfo routineInfo) { @@ -194,6 +205,7 @@ static class BuilderImpl extends Builder { this.importedLibrariesList = routineInfo.importedLibrariesList; this.body = routineInfo.body; this.remoteFunctionOptions = routineInfo.remoteFunctionOptions; + this.dataGovernanceType = routineInfo.dataGovernanceType; } BuilderImpl(Routine routinePb) { @@ -225,6 +237,7 @@ static class BuilderImpl extends Builder { this.remoteFunctionOptions = RemoteFunctionOptions.fromPb(routinePb.getRemoteFunctionOptions()); } + this.dataGovernanceType = routinePb.getDataGovernanceType(); } @Override @@ -311,6 +324,12 @@ public Builder setRemoteFunctionOptions(RemoteFunctionOptions remoteFunctionOpti return this; } + @Override + public Builder setDataGovernanceType(String dataGovernanceType) { + this.dataGovernanceType = dataGovernanceType; + return this; + } + @Override public RoutineInfo build() { return new RoutineInfo(this); @@ -332,6 +351,7 @@ public RoutineInfo build() { this.importedLibrariesList = builder.importedLibrariesList; this.body = builder.body; this.remoteFunctionOptions = builder.remoteFunctionOptions; + this.dataGovernanceType = builder.dataGovernanceType; } /** Returns the RoutineId identified for the routine resource. * */ @@ -411,6 +431,11 @@ public RemoteFunctionOptions getRemoteFunctionOptions() { return remoteFunctionOptions; }; + /** Returns the data governance type of the routine, e.g. DATA_MASKING. */ + public String getDataGovernanceType() { + return dataGovernanceType; + } + /** Returns a builder pre-populated using the current values of this routine. */ public Builder toBuilder() { return new BuilderImpl(this); @@ -433,6 +458,7 @@ public String toString() { .add("importedLibrariesList", importedLibrariesList) .add("body", body) .add("remoteFunctionOptions", remoteFunctionOptions) + .add("dataGovernanceType", dataGovernanceType) .toString(); } @@ -452,7 +478,8 @@ public int hashCode() { returnTableType, importedLibrariesList, body, - remoteFunctionOptions); + remoteFunctionOptions, + dataGovernanceType); } @Override @@ -490,7 +517,8 @@ Routine toPb() { .setDescription(getDescription()) .setDeterminismLevel(getDeterminismLevel()) .setLastModifiedTime(getLastModifiedTime()) - .setLanguage(getLanguage()); + .setLanguage(getLanguage()) + .setDataGovernanceType(getDataGovernanceType()); if (getRoutineId() != null) { routinePb.setRoutineReference(getRoutineId().toPb()); } @@ -506,6 +534,9 @@ Routine toPb() { if (getRemoteFunctionOptions() != null) { routinePb.setRemoteFunctionOptions(getRemoteFunctionOptions().toPb()); } + if (getImportedLibraries() != null) { + routinePb.setImportedLibraries(getImportedLibraries()); + } return routinePb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java index 1f1181433bc3..ae061b62f883 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java @@ -33,6 +33,8 @@ public class RoutineInfoTest { private static final Long LAST_MODIFIED_TIME = 20L; private static final String LANGUAGE = "SQL"; + private static final String DATA_GOVERNANCE_TYPE = "DATA_MASKING"; + private static final RoutineArgument ARG_1 = RoutineArgument.newBuilder() .setDataType(StandardSQLDataType.newBuilder("STRING").build()) @@ -63,6 +65,7 @@ public class RoutineInfoTest { .setReturnType(RETURN_TYPE) .setImportedLibraries(IMPORTED_LIBRARIES) .setBody(BODY) + .setDataGovernanceType(DATA_GOVERNANCE_TYPE) .build(); @Test @@ -90,6 +93,7 @@ public void testBuilder() { assertEquals(RETURN_TYPE, ROUTINE_INFO.getReturnType()); assertEquals(IMPORTED_LIBRARIES, ROUTINE_INFO.getImportedLibraries()); assertEquals(BODY, ROUTINE_INFO.getBody()); + assertEquals(DATA_GOVERNANCE_TYPE, ROUTINE_INFO.getDataGovernanceType()); } @Test @@ -107,8 +111,10 @@ public void testOf() { assertNull(routineInfo.getReturnType()); assertNull(routineInfo.getImportedLibraries()); assertNull(routineInfo.getBody()); + assertNull(routineInfo.getDataGovernanceType()); } + @Test public void testToAndFromPb() { compareRoutineInfo(ROUTINE_INFO, RoutineInfo.fromPb(ROUTINE_INFO.toPb())); } @@ -132,6 +138,7 @@ public void compareRoutineInfo(RoutineInfo expected, RoutineInfo value) { assertEquals(expected.getReturnType(), value.getReturnType()); assertEquals(expected.getImportedLibraries(), value.getImportedLibraries()); assertEquals(expected.getBody(), value.getBody()); + assertEquals(expected.getDataGovernanceType(), value.getDataGovernanceType()); assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.toString(), value.toString()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java index c9080e851a4c..eaf142012078 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java @@ -91,6 +91,8 @@ public class RoutineTest { .setMaxBatchingRows(10L) .build(); + private static final String DATA_GOVERNANCE_TYPE = "DATA_MASKING"; + private static final RoutineInfo ROUTINE_INFO = RoutineInfo.newBuilder(ROUTINE_ID) .setEtag(ETAG) @@ -104,6 +106,7 @@ public class RoutineTest { .setImportedLibraries(IMPORTED_LIBRARIES) .setBody(BODY) .setRemoteFunctionOptions(REMOTE_FUNCTION_OPTIONS) + .setDataGovernanceType(DATA_GOVERNANCE_TYPE) .build(); private static final RoutineInfo ROUTINE_INFO_TVF = @@ -146,6 +149,7 @@ public void testBuilder() { .setImportedLibraries(IMPORTED_LIBRARIES) .setBody(BODY) .setRemoteFunctionOptions(REMOTE_FUNCTION_OPTIONS) + .setDataGovernanceType(DATA_GOVERNANCE_TYPE) .build(); assertEquals(ETAG, builtRoutine.getEtag()); assertEquals(DETERMINISM_LEVEL, builtRoutine.getDeterminismLevel()); @@ -247,5 +251,6 @@ public void compareRoutineInfo(RoutineInfo expected, RoutineInfo value) { assertEquals(expected.getBody(), value.getBody()); assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.getRemoteFunctionOptions(), value.getRemoteFunctionOptions()); + assertEquals(expected.getDataGovernanceType(), value.getDataGovernanceType()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b37f389ae002..7bdb7a7fb0c4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2684,6 +2684,33 @@ public void testRoutineAPICreationTVF() { assertEquals(routine.getReturnTableType(), returnTableType); } + @Test + public void testRoutineDataGovernanceType() { + String routineName = RemoteBigQueryHelper.generateRoutineName(); + RoutineId routineId = RoutineId.of(ROUTINE_DATASET, routineName); + RoutineInfo routineInfo = + RoutineInfo.newBuilder(routineId) + .setLanguage("SQL") + .setRoutineType("SCALAR_FUNCTION") + .setBody("x") + .setArguments( + ImmutableList.of( + RoutineArgument.newBuilder() + .setName("x") + .setDataType(StandardSQLDataType.newBuilder("INT64").build()) + .build())) + .setReturnType(StandardSQLDataType.newBuilder("INT64").build()) + .setDataGovernanceType("DATA_MASKING") + .build(); + + Routine routine = bigquery.create(routineInfo); + assertNotNull(routine); + assertEquals(routine.getLanguage(), "SQL"); + assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); + assertEquals(routine.getReturnType(), StandardSQLDataType.newBuilder("INT64").build()); + assertEquals(routine.getDataGovernanceType(), "DATA_MASKING"); + } + @Test public void testAuthorizeRoutine() { String routineName = RemoteBigQueryHelper.generateRoutineName(); From ef480029c9e1958c1b6a6f2241b110fb3cfe036d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 Nov 2023 17:18:26 +0100 Subject: [PATCH 2629/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20231111-2.0.0 (#3020) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 39620b9c442d..24862f0b5c61 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20231008-2.0.0 + v2-rev20231111-2.0.0 3.19.0 12.0.1 From cc6718dd105c22e3cbb912fb6ecfd953443b92a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 16:28:14 +0000 Subject: [PATCH 2630/3441] build(deps): bump cryptography from 41.0.2 to 41.0.6 in /.kokoro (#3017) Bumps [cryptography](https://togithub.com/pyca/cryptography) from 41.0.2 to 41.0.6.

    Changelog

    Sourced from cryptography's changelog.

    41.0.6 - 2023-11-27

    
    * Fixed a null-pointer-dereference and segfault that could occur when loading
      certificates from a PKCS#7 bundle.  Credit to **pkuzco** for reporting the
      issue. **CVE-2023-49083**
    

    .. _v41-0-5:

    41.0.5 - 2023-10-24

    • Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.1.4.
    • Added a function to support an upcoming pyOpenSSL release.

    .. _v41-0-4:

    41.0.4 - 2023-09-19

    
    * Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.1.3.
    

    .. _v41-0-3:

    41.0.3 - 2023-08-01

    • Fixed performance regression loading DH public keys.
    • Fixed a memory leak when using :class:~cryptography.hazmat.primitives.ciphers.aead.ChaCha20Poly1305.
    • Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.1.2.

    .. _v41-0-2:

    Commits

    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cryptography&package-manager=pip&previous-version=41.0.2&new-version=41.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
    Dependabot commands and options
    You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://togithub.com/googleapis/java-bigquery/network/alerts).
    From 71c3102123effabec812e0f89c0a29b74310a48e Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 30 Nov 2023 12:02:52 -0500 Subject: [PATCH 2631/3441] chore: track customization in templates (#1876) (#2952) Source-Link: https://github.com/googleapis/synthtool/commit/a79241941a00783e0da86853c455e899567c3ccb Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:d0a8eb7ffc63ddce4c63191373d6e99d5385516423c396de207dedf2b6db7427 Co-authored-by: Owl Bot Co-authored-by: Mridula <66699525+mpeddada1@users.noreply.github.com> --- .github/.OwlBot.lock.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index f930d4846feb..a9ab6bf94bd7 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -14,4 +14,3 @@ docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest digest: sha256:bc2bf47c7370f1b1a8a46b0c104ce7e43644ac58902c9de265fe1f253fcc2506 -# created: 2023-10-31T13:44:21.909247346Z From 759fd64f73a437e4b9847a807b5b716069b4d20e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 1 Dec 2023 21:49:16 +0100 Subject: [PATCH 2632/3441] deps: update arrow.version to v14 (#3023) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 24862f0b5c61..ffd2422fe4ab 100644 --- a/pom.xml +++ b/pom.xml @@ -56,7 +56,7 @@ google-cloud-bigquery-parent v2-rev20231111-2.0.0 3.19.0 - 12.0.1 + 14.0.1
    From c09d05022a78a617aefb6b4b079f44db1a2a8ed6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 1 Dec 2023 21:49:33 +0100 Subject: [PATCH 2633/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.6.1 (#3021) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ffd2422fe4ab..7c0b3a0624f2 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.6.0 + 1.6.1 From 14ed571365f600b188b7d6716e2549c5b81868ad Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 1 Dec 2023 21:49:59 +0100 Subject: [PATCH 2634/3441] deps: update actions/setup-java action to v4 (#3018) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/setup-java action to v4 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot From ab278b05fd7da9d592ae6d609c971efa17c763e5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 16:18:52 -0500 Subject: [PATCH 2635/3441] chore(main): release 2.34.3-SNAPSHOT (#2995) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index eb6fcb814dc0..0686b6c1a5a5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.34.2 + 2.34.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2e163c1a23d1..9f3abe0c5cf5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.34.2 + 2.34.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.34.2 + 2.34.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7c0b3a0624f2..7a85eaa3c3d3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.34.2 + 2.34.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.34.2 + 2.34.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f27a8d7ff6ed..a190567b0b96 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.34.2 + 2.34.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4907d332d005..03f365097dda 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.34.2:2.34.2 \ No newline at end of file +google-cloud-bigquery:2.34.2:2.34.3-SNAPSHOT \ No newline at end of file From 0293edb74e02f44803faacbce400df20da53f66c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 1 Dec 2023 22:44:04 +0100 Subject: [PATCH 2636/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.20.0 (#3019) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7a85eaa3c3d3..df577824337b 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20231111-2.0.0 - 3.19.0 + 3.20.0 14.0.1 From 12e758904efb48a4136d5ba0b6351bf75e43d0de Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 1 Dec 2023 23:07:45 +0100 Subject: [PATCH 2637/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v2.47.0 (#3026) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index df577824337b..abb06c0d1317 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.46.0 + 2.47.0 pom import From b3663f6a08a4e0393fa8c0e651d06e7f9b3c78cd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 10:23:15 -0500 Subject: [PATCH 2638/3441] chore(main): release 2.35.0 (#3028) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Mridula Peddada --- CHANGELOG.md | 22 ++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6c4b28a2b01c..940d1c5a5f7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## [2.35.0](https://github.com/googleapis/java-bigquery/compare/v2.34.2...v2.35.0) (2023-12-01) + + +### Features + +* Add InputBytes to extract job statistics ([#2998](https://github.com/googleapis/java-bigquery/issues/2998)) ([19b7c3a](https://github.com/googleapis/java-bigquery/commit/19b7c3ad842a566d4e3e93e48625e0281504de80)) +* Add Routine DataGovernanceType ([#3006](https://github.com/googleapis/java-bigquery/issues/3006)) ([ecb567b](https://github.com/googleapis/java-bigquery/commit/ecb567b75849cd0665ac4ab315a5af3bdf934f48)) + + +### Bug Fixes + +* Update TableInsertRows.java ([#2999](https://github.com/googleapis/java-bigquery/issues/2999)) ([ff4a086](https://github.com/googleapis/java-bigquery/commit/ff4a086f0aa3c0401b62489ea8a0b9e2fd6cb3fe)) + + +### Dependencies + +* Update actions/github-script action to v7 ([#3001](https://github.com/googleapis/java-bigquery/issues/3001)) ([d1bdeab](https://github.com/googleapis/java-bigquery/commit/d1bdeab242ea2e6374d1b6d0bbd9eadf638cbcb2)) +* Update actions/setup-java action to v4 ([#3018](https://github.com/googleapis/java-bigquery/issues/3018)) ([14ed571](https://github.com/googleapis/java-bigquery/commit/14ed571365f600b188b7d6716e2549c5b81868ad)) +* Update arrow.version to v14 ([#3023](https://github.com/googleapis/java-bigquery/issues/3023)) ([759fd64](https://github.com/googleapis/java-bigquery/commit/759fd64f73a437e4b9847a807b5b716069b4d20e)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20231111-2.0.0 ([#3020](https://github.com/googleapis/java-bigquery/issues/3020)) ([ef48002](https://github.com/googleapis/java-bigquery/commit/ef480029c9e1958c1b6a6f2241b110fb3cfe036d)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.20.0 ([#3019](https://github.com/googleapis/java-bigquery/issues/3019)) ([0293edb](https://github.com/googleapis/java-bigquery/commit/0293edb74e02f44803faacbce400df20da53f66c)) + ## [2.34.2](https://github.com/googleapis/java-bigquery/compare/v2.34.1...v2.34.2) (2023-11-07) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 0686b6c1a5a5..5be7ca211983 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.34.3-SNAPSHOT + 2.35.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9f3abe0c5cf5..1806a4e4ed77 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.34.3-SNAPSHOT + 2.35.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.34.3-SNAPSHOT + 2.35.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index abb06c0d1317..04dacf945c47 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.34.3-SNAPSHOT + 2.35.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.34.3-SNAPSHOT + 2.35.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a190567b0b96..7744e9ca2788 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.34.3-SNAPSHOT + 2.35.0 diff --git a/versions.txt b/versions.txt index 03f365097dda..fc9d4d40a206 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.34.2:2.34.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.35.0:2.35.0 \ No newline at end of file From 20e8b260824189612aa0e7e581be9d0d191351e2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 16:54:40 +0000 Subject: [PATCH 2639/3441] chore(main): release 2.35.1-SNAPSHOT (#3029) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5be7ca211983..76f9ef91c275 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.35.0 + 2.35.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1806a4e4ed77..9d1466f158c8 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.35.0 + 2.35.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.35.0 + 2.35.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 04dacf945c47..cdc7dc9743eb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.35.0 + 2.35.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.35.0 + 2.35.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7744e9ca2788..0f99b68c786b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.35.0 + 2.35.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index fc9d4d40a206..3fa7a0036f24 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.35.0:2.35.0 \ No newline at end of file +google-cloud-bigquery:2.35.0:2.35.1-SNAPSHOT \ No newline at end of file From f64326a9c46e1f697e15c36c7bf9c9834bc602dc Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 16:47:25 -0500 Subject: [PATCH 2640/3441] ci: Update ci.yaml to introduce Java 21 unit testing (#1907) (#3025) Source-Link: https://github.com/googleapis/synthtool/commit/c06d605503f34e91c9d7dfee8f5287d58b5988ae Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:6f431774e11cc46619cf093fd1481193c4024031073697fa18f0099b943aab88 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 3 ++- .github/workflows/ci.yaml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index a9ab6bf94bd7..d304652e1c44 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,4 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:bc2bf47c7370f1b1a8a46b0c104ce7e43644ac58902c9de265fe1f253fcc2506 + digest: sha256:6f431774e11cc46619cf093fd1481193c4024031073697fa18f0099b943aab88 +# created: 2023-12-01T19:50:20.444857406Z diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e27b2c57563c..ae66b1973b17 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -25,7 +25,7 @@ jobs: strategy: fail-fast: false matrix: - java: [11, 17] + java: [11, 17, 21] steps: - uses: actions/checkout@v3 - uses: actions/setup-java@v3 From 38191b10a3c2f3ed89351e095c9fc1983bb301ea Mon Sep 17 00:00:00 2001 From: Lumenol <15960196+Lumenol@users.noreply.github.com> Date: Wed, 13 Dec 2023 21:46:41 +0100 Subject: [PATCH 2641/3441] Fix: bigquery.create NullPointerException when job already exists (#3035) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 3034: Reproduce and propose fix * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Louis-Maxime Crédeville Co-authored-by: Owl Bot --- README.md | 8 +- .../google/cloud/bigquery/BigQueryImpl.java | 2 +- .../cloud/bigquery/BigQueryImplTest.java | 109 +++++++++--------- 3 files changed, 58 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index 576fec2ebac7..7fdc5ba2682d 100644 --- a/README.md +++ b/README.md @@ -53,20 +53,20 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.27.0') +implementation platform('com.google.cloud:libraries-bom:26.29.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.34.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.35.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.34.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.35.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.34.2 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.35.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 0d5842724b63..7d329e88fff5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -437,7 +437,7 @@ public com.google.api.services.bigquery.model.Job call() { if (matcher.find()) { // If the Job ALREADY EXISTS, retrieve it. - Job job = this.getJob(jobInfo.getJobId()); + Job job = this.getJob(jobInfo.getJobId(), JobOption.fields(JobField.STATISTICS)); long jobCreationTime = job.getStatistics().getCreationTime(); long jobMinStaleTime = System.currentTimeMillis(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 3bbdb98fd33c..04bfa6d9f12a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -16,47 +16,27 @@ package com.google.cloud.bigquery; +import static com.google.cloud.bigquery.BigQuery.JobField.STATISTICS; +import static com.google.cloud.bigquery.BigQuery.JobField.USER_EMAIL; +import static com.google.cloud.bigquery.BigQueryImpl.optionMap; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; import com.google.api.gax.paging.Page; -import com.google.api.services.bigquery.model.ErrorProto; -import com.google.api.services.bigquery.model.GetQueryResultsResponse; -import com.google.api.services.bigquery.model.JobConfigurationQuery; -import com.google.api.services.bigquery.model.QueryRequest; -import com.google.api.services.bigquery.model.TableCell; -import com.google.api.services.bigquery.model.TableDataInsertAllRequest; -import com.google.api.services.bigquery.model.TableDataInsertAllResponse; -import com.google.api.services.bigquery.model.TableDataList; -import com.google.api.services.bigquery.model.TableRow; +import com.google.api.services.bigquery.model.*; +import com.google.api.services.bigquery.model.JobStatistics; import com.google.cloud.Policy; import com.google.cloud.ServiceOptions; import com.google.cloud.Tuple; +import com.google.cloud.bigquery.BigQuery.JobOption; import com.google.cloud.bigquery.BigQuery.QueryResultsOption; import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; import com.google.cloud.bigquery.spi.BigQueryRpcFactory; import com.google.cloud.bigquery.spi.v2.BigQueryRpc; import com.google.common.base.Function; import com.google.common.base.Supplier; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; +import com.google.common.collect.*; import java.io.IOException; import java.math.BigInteger; import java.util.Collections; @@ -422,12 +402,11 @@ public class BigQueryImplTest { BigQueryRpc.Option.START_INDEX, 0L); // Job options - private static final BigQuery.JobOption JOB_OPTION_FIELDS = - BigQuery.JobOption.fields(BigQuery.JobField.USER_EMAIL); + private static final JobOption JOB_OPTION_FIELDS = JobOption.fields(USER_EMAIL); // Job list options private static final BigQuery.JobListOption JOB_LIST_OPTION_FIELD = - BigQuery.JobListOption.fields(BigQuery.JobField.STATISTICS); + BigQuery.JobListOption.fields(STATISTICS); private static final BigQuery.JobListOption JOB_LIST_ALL_USERS = BigQuery.JobListOption.allUsers(); private static final BigQuery.JobListOption JOB_LIST_STATE_FILTER = @@ -1615,7 +1594,7 @@ public void testCreateJobWithSelectedFields() { any(com.google.api.services.bigquery.model.Job.class), capturedOptions.capture())) .thenReturn(newJobPb()); - BigQuery.JobOption jobOptions = BigQuery.JobOption.fields(BigQuery.JobField.USER_EMAIL); + JobOption jobOptions = JobOption.fields(USER_EMAIL); bigquery = options.getService(); bigquery.create(JobInfo.of(QueryJobConfiguration.of("SOME QUERY")), jobOptions); @@ -1674,6 +1653,35 @@ public JobId get() { .getJob(any(String.class), eq(id), eq((String) null), eq(EMPTY_RPC_OPTIONS)); } + @Test + public void testCreateJobTryGetNotRandom() { + Map withStatisticOption = optionMap(JobOption.fields(STATISTICS)); + final String id = "testCreateJobTryGet-id"; + String query = "SELECT * in FOO"; + + when(bigqueryRpcMock.create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) + .thenThrow( + new BigQueryException( + 409, + "already exists, for some reason", + new RuntimeException("Already Exists: Job"))); + when(bigqueryRpcMock.getJob( + any(String.class), eq(id), eq((String) null), eq(withStatisticOption))) + .thenReturn( + newJobPb() + .setId(id) + .setStatistics(new JobStatistics().setCreationTime(System.currentTimeMillis()))); + + bigquery = options.getService(); + Job job = + ((BigQueryImpl) bigquery).create(JobInfo.of(JobId.of(id), QueryJobConfiguration.of(query))); + assertThat(job).isNotNull(); + assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); + verify(bigqueryRpcMock).create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); + verify(bigqueryRpcMock) + .getJob(any(String.class), eq(id), eq((String) null), eq(withStatisticOption)); + } + @Test public void testCreateJobWithProjectId() { JobInfo jobInfo = @@ -1925,7 +1933,7 @@ public void testQueryRequestCompleted() throws InterruptedException { JOB_INFO.toPb(), Collections.emptyMap())) .thenReturn(jobResponsePb); when(bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .thenReturn(responsePb); when(bigqueryRpcMock.listTableData( PROJECT, DATASET, TABLE, Collections.emptyMap())) @@ -1946,8 +1954,7 @@ public void testQueryRequestCompleted() throws InterruptedException { verify(bigqueryRpcMock) .create(JOB_INFO.toPb(), Collections.emptyMap()); verify(bigqueryRpcMock) - .getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + .getQueryResults(PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); verify(bigqueryRpcMock) .listTableData(PROJECT, DATASET, TABLE, Collections.emptyMap()); @@ -2003,10 +2010,7 @@ public void testFastQueryMultiplePages() throws InterruptedException { responseJob.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)).thenReturn(responseJob); when(bigqueryRpcMock.listTableData( - PROJECT, - DATASET, - TABLE, - BigQueryImpl.optionMap(BigQuery.TableDataListOption.pageToken(CURSOR)))) + PROJECT, DATASET, TABLE, optionMap(BigQuery.TableDataListOption.pageToken(CURSOR)))) .thenReturn( new TableDataList() .setPageToken(CURSOR) @@ -2044,10 +2048,7 @@ public void testFastQueryMultiplePages() throws InterruptedException { verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); verify(bigqueryRpcMock) .listTableData( - PROJECT, - DATASET, - TABLE, - BigQueryImpl.optionMap(BigQuery.TableDataListOption.pageToken(CURSOR))); + PROJECT, DATASET, TABLE, optionMap(BigQuery.TableDataListOption.pageToken(CURSOR))); verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); } @@ -2084,7 +2085,7 @@ public void testFastQuerySlowDdl() throws InterruptedException { responseJob.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)).thenReturn(responseJob); when(bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .thenReturn(queryResultsResponsePb); when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(new TableDataList().setRows(ImmutableList.of(TABLE_ROW)).setTotalRows(1L)); @@ -2108,8 +2109,7 @@ public void testFastQuerySlowDdl() throws InterruptedException { verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); verify(bigqueryRpcMock) - .getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + .getQueryResults(PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @@ -2143,7 +2143,7 @@ public void testQueryRequestCompletedOptions() throws InterruptedException { optionMap.put(pageSizeOption.getRpcOption(), pageSizeOption.getValue()); when(bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .thenReturn(responsePb); when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, optionMap)) .thenReturn( @@ -2164,8 +2164,7 @@ public void testQueryRequestCompletedOptions() throws InterruptedException { verify(bigqueryRpcMock) .create(JOB_INFO.toPb(), Collections.emptyMap()); verify(bigqueryRpcMock) - .getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + .getQueryResults(PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, optionMap); } @@ -2199,10 +2198,10 @@ public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedExcepti JOB_INFO.toPb(), Collections.emptyMap())) .thenReturn(jobResponsePb1); when(bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .thenReturn(responsePb1); when(bigqueryRpcMock.getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) + PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .thenReturn(responsePb2); when(bigqueryRpcMock.listTableData( PROJECT, DATASET, TABLE, Collections.emptyMap())) @@ -2223,11 +2222,9 @@ public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedExcepti verify(bigqueryRpcMock) .create(JOB_INFO.toPb(), Collections.emptyMap()); verify(bigqueryRpcMock) - .getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + .getQueryResults(PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); verify(bigqueryRpcMock) - .getQueryResults( - PROJECT, JOB, null, BigQueryImpl.optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + .getQueryResults(PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); verify(bigqueryRpcMock) .listTableData(PROJECT, DATASET, TABLE, Collections.emptyMap()); } From ff93fb8c7832ed01b59ca66f34510e343957bc83 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 15 Dec 2023 20:16:39 +0100 Subject: [PATCH 2642/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.30.0 (#3038) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 145e02e3f7bf..a89c8c4ab85e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.29.1 + 2.30.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0f99b68c786b..2c05468f6d9d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.29.1 + 2.30.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e65db0f720a9..f2307eb44b51 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.29.1 + 2.30.0 test From d2f1b030af8dbd0d807ecbd7c72b2fdfd9740d11 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 18 Dec 2023 16:50:05 +0100 Subject: [PATCH 2643/3441] build(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.2.3 (#3048) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.2.3 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index f4c1c3ddc17c..9310ae98ec04 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -111,7 +111,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.2.2 + 3.2.3 **/*IT From 68a9e915d65ce8781cfa5e361ddb77666fb41d0b Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 11:08:00 -0500 Subject: [PATCH 2644/3441] build(deps): bump cryptography from 41.0.2 to 41.0.3 in /synthtool/gcp/templates/java_library/.kokoro (#1846) (#3036) build(deps): bump cryptography Bumps [cryptography](https://github.com/pyca/cryptography) from 41.0.2 to 41.0.3. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/41.0.2...41.0.3) --- updated-dependencies: - dependency-name: cryptography dependency-type: indirect ... Source-Link: https://github.com/googleapis/synthtool/commit/bfb4e631084fff256869cd33bcb6aaa55f1c736d Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:11d59eabd49dc088f8339fb96e9da79ba4b3a73b3d49a8a4e0263e91edd053ba Signed-off-by: dependabot[bot] Co-authored-by: Owl Bot Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Burke Davison <40617934+burkedavison@users.noreply.github.com> Co-authored-by: Jeffrey Rennie Co-authored-by: Alice <65933803+alicejli@users.noreply.github.com> Co-authored-by: PhongChuong <147636638+PhongChuong@users.noreply.github.com> --- .github/.OwlBot.lock.yaml | 4 ++-- .kokoro/requirements.txt | 48 +++++++++++++++++++-------------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index d304652e1c44..bff46cd6691a 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:6f431774e11cc46619cf093fd1481193c4024031073697fa18f0099b943aab88 -# created: 2023-12-01T19:50:20.444857406Z + digest: sha256:11d59eabd49dc088f8339fb96e9da79ba4b3a73b3d49a8a4e0263e91edd053ba +# created: 2023-12-05T18:46:43.811070085Z \ No newline at end of file diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index c5c11bbe7925..6a36ccab4637 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -170,30 +170,30 @@ colorlog==6.7.0 \ --hash=sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662 \ --hash=sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5 # via gcp-docuploader -cryptography==41.0.2 \ - --hash=sha256:01f1d9e537f9a15b037d5d9ee442b8c22e3ae11ce65ea1f3316a41c78756b711 \ - --hash=sha256:079347de771f9282fbfe0e0236c716686950c19dee1b76240ab09ce1624d76d7 \ - --hash=sha256:182be4171f9332b6741ee818ec27daff9fb00349f706629f5cbf417bd50e66fd \ - --hash=sha256:192255f539d7a89f2102d07d7375b1e0a81f7478925b3bc2e0549ebf739dae0e \ - --hash=sha256:2a034bf7d9ca894720f2ec1d8b7b5832d7e363571828037f9e0c4f18c1b58a58 \ - --hash=sha256:342f3767e25876751e14f8459ad85e77e660537ca0a066e10e75df9c9e9099f0 \ - --hash=sha256:439c3cc4c0d42fa999b83ded80a9a1fb54d53c58d6e59234cfe97f241e6c781d \ - --hash=sha256:49c3222bb8f8e800aead2e376cbef687bc9e3cb9b58b29a261210456a7783d83 \ - --hash=sha256:674b669d5daa64206c38e507808aae49904c988fa0a71c935e7006a3e1e83831 \ - --hash=sha256:7a9a3bced53b7f09da251685224d6a260c3cb291768f54954e28f03ef14e3766 \ - --hash=sha256:7af244b012711a26196450d34f483357e42aeddb04128885d95a69bd8b14b69b \ - --hash=sha256:7d230bf856164de164ecb615ccc14c7fc6de6906ddd5b491f3af90d3514c925c \ - --hash=sha256:84609ade00a6ec59a89729e87a503c6e36af98ddcd566d5f3be52e29ba993182 \ - --hash=sha256:9a6673c1828db6270b76b22cc696f40cde9043eb90373da5c2f8f2158957f42f \ - --hash=sha256:9b6d717393dbae53d4e52684ef4f022444fc1cce3c48c38cb74fca29e1f08eaa \ - --hash=sha256:9c3fe6534d59d071ee82081ca3d71eed3210f76ebd0361798c74abc2bcf347d4 \ - --hash=sha256:a719399b99377b218dac6cf547b6ec54e6ef20207b6165126a280b0ce97e0d2a \ - --hash=sha256:b332cba64d99a70c1e0836902720887fb4529ea49ea7f5462cf6640e095e11d2 \ - --hash=sha256:d124682c7a23c9764e54ca9ab5b308b14b18eba02722b8659fb238546de83a76 \ - --hash=sha256:d73f419a56d74fef257955f51b18d046f3506270a5fd2ac5febbfa259d6c0fa5 \ - --hash=sha256:f0dc40e6f7aa37af01aba07277d3d64d5a03dc66d682097541ec4da03cc140ee \ - --hash=sha256:f14ad275364c8b4e525d018f6716537ae7b6d369c094805cae45300847e0894f \ - --hash=sha256:f772610fe364372de33d76edcd313636a25684edb94cee53fd790195f5989d14 +cryptography==41.0.3 \ + --hash=sha256:0d09fb5356f975974dbcb595ad2d178305e5050656affb7890a1583f5e02a306 \ + --hash=sha256:23c2d778cf829f7d0ae180600b17e9fceea3c2ef8b31a99e3c694cbbf3a24b84 \ + --hash=sha256:3fb248989b6363906827284cd20cca63bb1a757e0a2864d4c1682a985e3dca47 \ + --hash=sha256:41d7aa7cdfded09b3d73a47f429c298e80796c8e825ddfadc84c8a7f12df212d \ + --hash=sha256:42cb413e01a5d36da9929baa9d70ca90d90b969269e5a12d39c1e0d475010116 \ + --hash=sha256:4c2f0d35703d61002a2bbdcf15548ebb701cfdd83cdc12471d2bae80878a4207 \ + --hash=sha256:4fd871184321100fb400d759ad0cddddf284c4b696568204d281c902fc7b0d81 \ + --hash=sha256:5259cb659aa43005eb55a0e4ff2c825ca111a0da1814202c64d28a985d33b087 \ + --hash=sha256:57a51b89f954f216a81c9d057bf1a24e2f36e764a1ca9a501a6964eb4a6800dd \ + --hash=sha256:652627a055cb52a84f8c448185922241dd5217443ca194d5739b44612c5e6507 \ + --hash=sha256:67e120e9a577c64fe1f611e53b30b3e69744e5910ff3b6e97e935aeb96005858 \ + --hash=sha256:6af1c6387c531cd364b72c28daa29232162010d952ceb7e5ca8e2827526aceae \ + --hash=sha256:6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34 \ + --hash=sha256:7efe8041897fe7a50863e51b77789b657a133c75c3b094e51b5e4b5cec7bf906 \ + --hash=sha256:84537453d57f55a50a5b6835622ee405816999a7113267739a1b4581f83535bd \ + --hash=sha256:8f09daa483aedea50d249ef98ed500569841d6498aa9c9f4b0531b9964658922 \ + --hash=sha256:95dd7f261bb76948b52a5330ba5202b91a26fbac13ad0e9fc8a3ac04752058c7 \ + --hash=sha256:a74fbcdb2a0d46fe00504f571a2a540532f4c188e6ccf26f1f178480117b33c4 \ + --hash=sha256:a983e441a00a9d57a4d7c91b3116a37ae602907a7618b882c8013b5762e80574 \ + --hash=sha256:ab8de0d091acbf778f74286f4989cf3d1528336af1b59f3e5d2ebca8b5fe49e1 \ + --hash=sha256:aeb57c421b34af8f9fe830e1955bf493a86a7996cc1338fe41b30047d16e962c \ + --hash=sha256:ce785cf81a7bdade534297ef9e490ddff800d956625020ab2ec2780a556c313e \ + --hash=sha256:d0d651aa754ef58d75cec6edfbd21259d93810b73f6ec246436a21b7841908de # via # gcp-releasetool # secretstorage From a7106325b0f688fc36b1b93ecb7001e45b54a454 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 18 Dec 2023 17:46:12 +0100 Subject: [PATCH 2645/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.34.0 (#3033) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cdc7dc9743eb..f3a9f5156a59 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.32.0 + 2.34.0 test From 270f8665a4973be6091697bc8101bee76e26ff1d Mon Sep 17 00:00:00 2001 From: PhongChuong <147636638+PhongChuong@users.noreply.github.com> Date: Tue, 19 Dec 2023 07:44:37 -0500 Subject: [PATCH 2646/3441] feat: Use location in BigQueryOption as the default for query (#3047) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Use location in BigQueryOption as the default for query * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * feat: Use location in BigQueryOption as the default for query * feat: Use location in BigQueryOption as the default for query * feat: Use location in BigQueryOption as the default for query --------- Co-authored-by: Owl Bot --- .../google/cloud/bigquery/BigQueryImpl.java | 9 ++- .../cloud/bigquery/BigQueryImplTest.java | 41 +++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 73 ++++++++++++++++--- 3 files changed, 111 insertions(+), 12 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 7d329e88fff5..dcbcd19b048b 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1339,6 +1339,9 @@ public TableResult query(QueryJobConfiguration configuration, JobOption... optio if (requestInfo.isFastQuerySupported(null)) { String projectId = getOptions().getProjectId(); QueryRequest content = requestInfo.toPb(); + if (getOptions().getLocation() != null) { + content.setLocation(getOptions().getLocation()); + } return queryRpc(projectId, content, options); } // Otherwise, fall back to the existing create query job logic @@ -1437,12 +1440,14 @@ public TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOp String projectId = jobId.getProject() != null ? jobId.getProject() : getOptions().getProjectId(); QueryRequest content = requestInfo.toPb(); - // Be careful when setting the location in JobId, if a location is specified in the JobId, - // the job created by the query method will be in that location, even if the table to be + // Be careful when setting the location, if a location is specified in the BigQueryOption or + // JobId the job created by the query method will be in that location, even if the table to be // queried is in a different location. This may cause the query to fail with // "BigQueryException: Not found" if (jobId.getLocation() != null) { content.setLocation(jobId.getLocation()); + } else if (getOptions().getLocation() != null) { + content.setLocation(getOptions().getLocation()); } return queryRpc(projectId, content, options); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 04bfa6d9f12a..62160bef20d8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -1994,6 +1994,47 @@ public void testFastQueryRequestCompleted() throws InterruptedException { QUERY_JOB_CONFIGURATION_FOR_QUERY.getDefaultDataset().getDataset(), requestPb.getDefaultDataset().getDatasetId()); assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.useQueryCache(), requestPb.getUseQueryCache()); + assertNull(requestPb.getLocation()); + + verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); + } + + @Test + public void testFastQueryRequestCompletedWithLocation() throws InterruptedException { + com.google.api.services.bigquery.model.QueryResponse queryResponsePb = + new com.google.api.services.bigquery.model.QueryResponse() + .setCacheHit(false) + .setJobComplete(true) + .setKind("bigquery#queryResponse") + .setPageToken(null) + .setRows(ImmutableList.of(TABLE_ROW)) + .setSchema(TABLE_SCHEMA.toPb()) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)); + + when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + .thenReturn(queryResponsePb); + + BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock); + bigquery = options.getService(); + TableResult result = bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY); + assertNull(result.getNextPage()); + assertNull(result.getNextPageToken()); + assertFalse(result.hasNextPage()); + assertThat(result.getSchema()).isEqualTo(TABLE_SCHEMA); + assertThat(result.getTotalRows()).isEqualTo(1); + for (FieldValueList row : result.getValues()) { + assertThat(row.get(0).getBooleanValue()).isFalse(); + assertThat(row.get(1).getLongValue()).isEqualTo(1); + } + + QueryRequest requestPb = requestPbCapture.getValue(); + assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.getQuery(), requestPb.getQuery()); + assertEquals( + QUERY_JOB_CONFIGURATION_FOR_QUERY.getDefaultDataset().getDataset(), + requestPb.getDefaultDataset().getDatasetId()); + assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.useQueryCache(), requestPb.getUseQueryCache()); + assertEquals(LOCATION, requestPb.getLocation()); verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 7bdb7a7fb0c4..9a0e3e107970 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -6227,27 +6227,80 @@ public void testAlreadyExistJobExceptionHandling() throws InterruptedException { @Test public void testStatelessQueries() throws InterruptedException { + // Create local BigQuery to not contaminate global test parameters. + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); + BigQuery bigQuery = bigqueryHelper.getOptions().getService(); + // simulate setting the QUERY_PREVIEW_ENABLED environment variable - bigquery.getOptions().setQueryPreviewEnabled("TRUE"); - assertNull(executeSimpleQuery().getJobId()); + bigQuery.getOptions().setQueryPreviewEnabled("TRUE"); + assertNull(executeSimpleQuery(bigQuery).getJobId()); // the flag should be case-insensitive - bigquery.getOptions().setQueryPreviewEnabled("tRuE"); - assertNull(executeSimpleQuery().getJobId()); + bigQuery.getOptions().setQueryPreviewEnabled("tRuE"); + assertNull(executeSimpleQuery(bigQuery).getJobId()); // any other values won't enable optional job creation mode - bigquery.getOptions().setQueryPreviewEnabled("test_value"); - assertNotNull(executeSimpleQuery().getJobId()); + bigQuery.getOptions().setQueryPreviewEnabled("test_value"); + assertNotNull(executeSimpleQuery(bigQuery).getJobId()); // reset the flag - bigquery.getOptions().setQueryPreviewEnabled(null); - assertNotNull(executeSimpleQuery().getJobId()); + bigQuery.getOptions().setQueryPreviewEnabled(null); + assertNotNull(executeSimpleQuery(bigQuery).getJobId()); } - private TableResult executeSimpleQuery() throws InterruptedException { + private TableResult executeSimpleQuery(BigQuery bigQuery) throws InterruptedException { String query = "SELECT 1 as one"; QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).build(); - TableResult result = bigquery.query(config); + TableResult result = bigQuery.query(config); return result; } + + @Test + public void testStatelessQueriesWithLocation() throws Exception { + // This test validates BigQueryOption location is used for stateless query by verifying that the + // stateless query fails when the BigQueryOption location does not match the dataset location. + String location = "EU"; + String wrongLocation = "US"; + + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); + BigQuery bigQuery = + bigqueryHelper.getOptions().toBuilder().setLocation(location).build().getService(); + + Dataset dataset = + bigQuery.create( + DatasetInfo.newBuilder("locationset_" + UUID.randomUUID().toString().replace("-", "_")) + .setLocation(location) + .build()); + try { + TableId tableId = TableId.of(dataset.getDatasetId().getDataset(), "sometable"); + Schema schema = Schema.of(Field.of("name", LegacySQLTypeName.STRING)); + TableDefinition tableDef = StandardTableDefinition.of(schema); + Table table = bigQuery.create(TableInfo.newBuilder(tableId, tableDef).build()); + + String query = + String.format( + "SELECT * FROM `%s.%s.%s`", + table.getTableId().getProject(), + table.getTableId().getDataset(), + table.getTableId().getTable()); + + // Test stateless query when BigQueryOption location matches dataset location. + bigQuery.getOptions().setQueryPreviewEnabled("TRUE"); + TableResult tb = bigQuery.query(QueryJobConfiguration.of(query)); + assertNull(tb.getJobId()); + + // Test stateless query when BigQueryOption location does not match dataset location. + try { + BigQuery bigQueryWrongLocation = + bigqueryHelper.getOptions().toBuilder().setLocation(wrongLocation).build().getService(); + bigQueryWrongLocation.getOptions().setQueryPreviewEnabled("TRUE"); + bigQueryWrongLocation.query(QueryJobConfiguration.of(query)); + fail("querying a table with wrong location shouldn't work"); + } catch (BigQueryException e) { + // Nothing to do + } + } finally { + bigQuery.delete(dataset.getDatasetId(), DatasetDeleteOption.deleteContents()); + } + } } From 2d43a1f44127f43010e7ce77e269a95d07d55810 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 19 Dec 2023 13:45:46 +0100 Subject: [PATCH 2647/3441] build(deps): update dependency com.google.cloud:google-cloud-shared-config to v1.7.1 (#3049) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f3a9f5156a59..e6f9c650f688 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud google-cloud-shared-config - 1.6.1 + 1.7.1 From b0dc33ad4e004edcfbee131edb5745159f9e6af3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 19 Dec 2023 17:24:19 +0100 Subject: [PATCH 2648/3441] deps: update arrow.version to v14.0.2 (#3050) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e6f9c650f688..645f7ea71d73 100644 --- a/pom.xml +++ b/pom.xml @@ -56,7 +56,7 @@ google-cloud-bigquery-parent v2-rev20231111-2.0.0 3.20.0 - 14.0.1 + 14.0.2 From c76e8f5a1ae8f77b784348b6c3eeb5b7252a6f57 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 20 Dec 2023 17:47:56 +0100 Subject: [PATCH 2649/3441] build(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.12.0 (#3051) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 76f9ef91c275..d1e001a29cca 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -37,7 +37,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.11.0 + 3.12.0 org.apache.maven.plugins From c71eabfd36ed30ec56aefaecd20d7da000090d00 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 20 Dec 2023 17:51:32 +0100 Subject: [PATCH 2650/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.33.0 (#3032) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.33.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 645f7ea71d73..069dbfb68733 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.32.0 + 2.33.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a89c8c4ab85e..5bf418cd864b 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.32.0 + 2.33.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2c05468f6d9d..c6c87a9613f3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.32.0 + 2.33.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f2307eb44b51..4eb97c9486ed 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.32.0 + 2.33.0 test From f4abbc2b6a1b2ce03a0f4ad4387d4ce5a7d7fcc8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 20 Dec 2023 19:08:42 +0100 Subject: [PATCH 2651/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.34.0 (#3053) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 069dbfb68733..4ee9e0ea829e 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.33.0 + 2.34.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5bf418cd864b..f5fb70316e15 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.33.0 + 2.34.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c6c87a9613f3..10d895eb28d7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.33.0 + 2.34.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4eb97c9486ed..0d89f1fc1dc3 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.33.0 + 2.34.0 test From 52d5e97bdb9fa58c9fbee06cc1b41d58feeae379 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 20 Dec 2023 20:03:54 +0100 Subject: [PATCH 2652/3441] deps: update github/codeql-action action to v2.22.11 (#3002) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 730e292765e8..bdbab91e1645 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@74483a38d39275f33fcff5f35b679b5ca4a26a99 # v2.22.5 + uses: github/codeql-action/upload-sarif@03e7845b7bfcd5e7fb63d1ae8c61b0e791134fab # v2.22.11 with: sarif_file: results.sarif From 7d761006b4a7f549bf254b03f67989c9b41cd7b1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 21 Dec 2023 16:18:49 +0100 Subject: [PATCH 2653/3441] deps: update actions/upload-artifact action to v4 (#3055) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index bdbab91e1645..c7f7f64aaa6d 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@a8a3f3ad30e3422c9c7b888a15615d19a852ae32 # v3.1.3 + uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0 with: name: SARIF file path: results.sarif From fb4d0e5e944b9ad7e8aa56e51c059a20b1c4d6eb Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 21 Dec 2023 16:22:46 +0100 Subject: [PATCH 2654/3441] test(deps): update dependency com.google.truth:truth to v1.2.0 (#3054) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 4ee9e0ea829e..c8f6decbcd34 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.truth truth - 1.1.5 + 1.2.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f5fb70316e15..b8478a8377b3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -81,7 +81,7 @@ com.google.truth truth - 1.1.5 + 1.2.0 test diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 9310ae98ec04..95de88cf6ecd 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -62,7 +62,7 @@ com.google.truth truth - 1.1.5 + 1.2.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 10d895eb28d7..6892d55a94c3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -79,7 +79,7 @@ com.google.truth truth - 1.1.5 + 1.2.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0d89f1fc1dc3..3debd229ed1c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -97,7 +97,7 @@ com.google.truth truth - 1.1.5 + 1.2.0 test From 21b525f58121d1a3473ea0454ddc9a21178d8776 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 21 Dec 2023 16:31:23 +0100 Subject: [PATCH 2655/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.35.0 (#3030) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.35.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7fdc5ba2682d..0a5c250aec2a 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.34.2 + 2.35.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b8478a8377b3..99e3a85400f1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.34.2 + 2.35.0 From 7a1bbd2d33e71644d83c42b71c67bac099882a4a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 21 Dec 2023 17:01:18 +0100 Subject: [PATCH 2656/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.30.1 (#3031) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c8f6decbcd34..99903e7f2d12 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.29.1 + 2.30.1 test From febfc1fdb026a0d07ab24159437633cfb7f44c5d Mon Sep 17 00:00:00 2001 From: PhongChuong <147636638+PhongChuong@users.noreply.github.com> Date: Fri, 5 Jan 2024 11:38:03 -0500 Subject: [PATCH 2657/3441] feat: Support RANGE schema (#3043) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Add support for creating tables with range type schema * feat: Add support for creating tables with range type schema * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * feat: Use location in BigQueryOption as the default for query * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../java/com/google/cloud/bigquery/Field.java | 25 +++++++- .../cloud/bigquery/FieldElementType.java | 63 +++++++++++++++++++ .../cloud/bigquery/LegacySQLTypeName.java | 4 ++ .../cloud/bigquery/StandardSQLTypeName.java | 4 +- .../cloud/bigquery/FieldElementTypeTest.java | 46 ++++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 20 ++++++ 6 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldElementType.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index 7496530dd692..9fbc2ab9106f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -64,6 +64,7 @@ public TableFieldSchema apply(Field field) { private final Long precision; private final String defaultValueExpression; private final String collation; + private final FieldElementType rangeElementType; /** * Mode for a BigQuery Table field. {@link Mode#NULLABLE} fields can be set to {@code null}, @@ -89,6 +90,7 @@ public static final class Builder { private Long precision; private String defaultValueExpression; private String collation; + private FieldElementType rangeElementType; private Builder() {} @@ -104,6 +106,7 @@ private Builder(Field field) { this.precision = field.precision; this.defaultValueExpression = field.defaultValueExpression; this.collation = field.collation; + this.rangeElementType = field.rangeElementType; } /** @@ -292,6 +295,12 @@ public Builder setCollation(String collation) { return this; } + /** Optional. Field range element type can be set only when the type of field is RANGE. */ + public Builder setRangeElementType(FieldElementType rangeElementType) { + this.rangeElementType = rangeElementType; + return this; + } + /** Creates a {@code Field} object. */ public Field build() { return new Field(this); @@ -310,6 +319,7 @@ private Field(Builder builder) { this.precision = builder.precision; this.defaultValueExpression = builder.defaultValueExpression; this.collation = builder.collation; + this.rangeElementType = builder.rangeElementType; } /** Returns the field name. */ @@ -369,6 +379,11 @@ public String getCollation() { return collation; } + /** Return the range element type the field. */ + public FieldElementType getRangeElementType() { + return rangeElementType; + } + /** * Returns the list of sub-fields if {@link #getType()} is a {@link LegacySQLTypeName#RECORD}. * Returns {@code null} otherwise. @@ -395,12 +410,13 @@ public String toString() { .add("precision", precision) .add("defaultValueExpression", defaultValueExpression) .add("collation", collation) + .add("rangeElementType", rangeElementType) .toString(); } @Override public int hashCode() { - return Objects.hash(name, type, mode, description, policyTags); + return Objects.hash(name, type, mode, description, policyTags, rangeElementType); } @Override @@ -484,6 +500,9 @@ TableFieldSchema toPb() { if (collation != null) { fieldSchemaPb.setCollation(collation); } + if (rangeElementType != null) { + fieldSchemaPb.setRangeElementType(rangeElementType.toPb()); + } return fieldSchemaPb; } @@ -519,6 +538,10 @@ static Field fromPb(TableFieldSchema fieldSchemaPb) { if (fieldSchemaPb.getCollation() != null) { fieldBuilder.setCollation(fieldSchemaPb.getCollation()); } + if (fieldSchemaPb.getRangeElementType() != null) { + fieldBuilder.setRangeElementType( + FieldElementType.fromPb(fieldSchemaPb.getRangeElementType())); + } return fieldBuilder.build(); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldElementType.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldElementType.java new file mode 100644 index 000000000000..43446e1d01a1 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldElementType.java @@ -0,0 +1,63 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.TableFieldSchema; +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import javax.annotation.Nullable; + +@AutoValue +public abstract class FieldElementType implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * The subtype of the RANGE, if the field type is RANGE. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract String getType(); + + public abstract FieldElementType.Builder toBuilder(); + + @AutoValue.Builder + public abstract static class Builder { + + public abstract FieldElementType.Builder setType(String type); + + public abstract FieldElementType build(); + } + + public static Builder newBuilder() { + return new AutoValue_FieldElementType.Builder(); + } + + TableFieldSchema.RangeElementType toPb() { + TableFieldSchema.RangeElementType rangeElementTypePb = new TableFieldSchema.RangeElementType(); + rangeElementTypePb.setType(getType()); + return rangeElementTypePb; + } + + static FieldElementType fromPb(TableFieldSchema.RangeElementType rangeElementTypePb) { + // Treat a FieldElementType message without a Type subfield as invalid. + if (rangeElementTypePb.getType() != null) { + return newBuilder().setType(rangeElementTypePb.getType()).build(); + } + return null; + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java index 944df2fb0616..dec2583e90dc 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java @@ -100,6 +100,10 @@ public LegacySQLTypeName apply(String constant) { public static final LegacySQLTypeName INTERVAL = type.createAndRegister("INTERVAL").setStandardType(StandardSQLTypeName.INTERVAL); + /** Represents a contiguous range of values. */ + public static final LegacySQLTypeName RANGE = + type.createAndRegister("RANGE").setStandardType(StandardSQLTypeName.RANGE); + private static Map standardToLegacyMap = new HashMap<>(); static { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java index 1081fc5d6074..1f70183cdc55 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java @@ -60,5 +60,7 @@ public enum StandardSQLTypeName { /** Represents JSON data. */ JSON, /** Represents duration or amount of time. */ - INTERVAL + INTERVAL, + /** Represents a contiguous range of values. */ + RANGE } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java new file mode 100644 index 000000000000..9b4590892952 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java @@ -0,0 +1,46 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class FieldElementTypeTest { + private static final FieldElementType FIELD_ELEMENT_TYPE = + FieldElementType.newBuilder().setType("DATE").build(); + + @Test + public void testToBuilder() { + compareFieldElementType(FIELD_ELEMENT_TYPE, FIELD_ELEMENT_TYPE.toBuilder().build()); + } + + @Test + public void testBuilder() { + assertEquals("DATE", FIELD_ELEMENT_TYPE.getType()); + } + + @Test + public void testFromAndPb() { + assertEquals(FIELD_ELEMENT_TYPE, FieldElementType.fromPb(FIELD_ELEMENT_TYPE.toPb())); + } + + private void compareFieldElementType(FieldElementType expected, FieldElementType value) { + assertEquals(expected.getType(), value.getType()); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 9a0e3e107970..d8d673360d91 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -72,6 +72,7 @@ import com.google.cloud.bigquery.ExtractJobConfiguration; import com.google.cloud.bigquery.Field; import com.google.cloud.bigquery.Field.Mode; +import com.google.cloud.bigquery.FieldElementType; import com.google.cloud.bigquery.FieldList; import com.google.cloud.bigquery.FieldValue; import com.google.cloud.bigquery.FieldValue.Attribute; @@ -1246,6 +1247,25 @@ public void testIntervalType() throws InterruptedException { } } + @Test + public void testRangeType() throws InterruptedException { + String tableName = "test_create_table_rangetype"; + TableId tableId = TableId.of(DATASET, tableName); + Schema schema = + Schema.of( + Field.newBuilder("rangeField", StandardSQLTypeName.RANGE) + .setRangeElementType(FieldElementType.newBuilder().setType("DATETIME").build()) + .build()); + StandardTableDefinition standardTableDefinition = StandardTableDefinition.of(schema); + try { + // Create a table with a RANGE column. + Table createdTable = bigquery.create(TableInfo.of(tableId, standardTableDefinition)); + assertNotNull(createdTable); + } finally { + assertTrue(bigquery.delete(tableId)); + } + } + @Test public void testCreateTableWithConstraints() { String tableName = "test_create_table_with_constraints"; From 78995c47ba33019e1007f98d152016ffc3184bd4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 8 Jan 2024 17:33:48 +0100 Subject: [PATCH 2658/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.21.0 (#3060) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 99903e7f2d12..5d5bd27ca9df 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20231111-2.0.0 - 3.20.0 + 3.21.0 14.0.2 From 27489c7215939078f37beec405d6ccd7e9acfd12 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 10 Jan 2024 18:18:23 +0100 Subject: [PATCH 2659/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.31.0 (#3063) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5d5bd27ca9df..ec4240d779b4 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.30.1 + 2.31.0 test From 645ff9cf0632bab1cf65d77ceaa969f7edc7fc96 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 11:04:10 -0500 Subject: [PATCH 2660/3441] chore(main): release 2.36.0 (#3044) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 22 ++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 940d1c5a5f7a..88197b2c1242 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## [2.36.0](https://github.com/googleapis/java-bigquery/compare/v2.35.0...v2.36.0) (2024-01-10) + + +### Features + +* Support RANGE schema ([#3043](https://github.com/googleapis/java-bigquery/issues/3043)) ([febfc1f](https://github.com/googleapis/java-bigquery/commit/febfc1fdb026a0d07ab24159437633cfb7f44c5d)) +* Use location in BigQueryOption as the default for query ([#3047](https://github.com/googleapis/java-bigquery/issues/3047)) ([270f866](https://github.com/googleapis/java-bigquery/commit/270f8665a4973be6091697bc8101bee76e26ff1d)) + + +### Bug Fixes + +* Bigquery.create NullPointerException when job already exists ([#3035](https://github.com/googleapis/java-bigquery/issues/3035)) ([38191b1](https://github.com/googleapis/java-bigquery/commit/38191b10a3c2f3ed89351e095c9fc1983bb301ea)) + + +### Dependencies + +* Update actions/upload-artifact action to v4 ([#3055](https://github.com/googleapis/java-bigquery/issues/3055)) ([7d76100](https://github.com/googleapis/java-bigquery/commit/7d761006b4a7f549bf254b03f67989c9b41cd7b1)) +* Update arrow.version to v14.0.2 ([#3050](https://github.com/googleapis/java-bigquery/issues/3050)) ([b0dc33a](https://github.com/googleapis/java-bigquery/commit/b0dc33ad4e004edcfbee131edb5745159f9e6af3)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.34.0 ([#3033](https://github.com/googleapis/java-bigquery/issues/3033)) ([a710632](https://github.com/googleapis/java-bigquery/commit/a7106325b0f688fc36b1b93ecb7001e45b54a454)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.21.0 ([#3060](https://github.com/googleapis/java-bigquery/issues/3060)) ([78995c4](https://github.com/googleapis/java-bigquery/commit/78995c47ba33019e1007f98d152016ffc3184bd4)) +* Update github/codeql-action action to v2.22.11 ([#3002](https://github.com/googleapis/java-bigquery/issues/3002)) ([52d5e97](https://github.com/googleapis/java-bigquery/commit/52d5e97bdb9fa58c9fbee06cc1b41d58feeae379)) + ## [2.35.0](https://github.com/googleapis/java-bigquery/compare/v2.34.2...v2.35.0) (2023-12-01) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d1e001a29cca..4041a1b70626 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.35.1-SNAPSHOT + 2.36.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9d1466f158c8..d7e15193670a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.35.1-SNAPSHOT + 2.36.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.35.1-SNAPSHOT + 2.36.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ec4240d779b4..f7c83573fe0b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.35.1-SNAPSHOT + 2.36.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.35.1-SNAPSHOT + 2.36.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6892d55a94c3..a38c313c7f67 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.35.1-SNAPSHOT + 2.36.0 diff --git a/versions.txt b/versions.txt index 3fa7a0036f24..e2ab490a5128 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.35.0:2.35.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.36.0:2.36.0 \ No newline at end of file From a7ffacf7ff1c4fca4dcf7d47463e752730bb6dfd Mon Sep 17 00:00:00 2001 From: Sergei Lilichenko Date: Fri, 12 Jan 2024 04:45:43 -0800 Subject: [PATCH 2661/3441] chore: change row and column variable names in SimpleQuery example (#3059) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Changed the names of the row and column variables to make their purpose clear. * Changed the code sample to reflect the real life usage * Updated the query and column names * Attempt to fix formatting. * Modified the IT test to match the query in the sample. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: PhongChuong <147636638+PhongChuong@users.noreply.github.com> Co-authored-by: Owl Bot --- .../java/com/example/bigquery/SimpleQuery.java | 14 ++++++++++++-- .../java/com/example/bigquery/SimpleQueryIT.java | 4 +++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java b/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java index 1aeaff1955db..429a339cf53c 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java +++ b/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java @@ -17,6 +17,7 @@ package com.example.bigquery; // [START bigquery_query] + import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; @@ -27,7 +28,9 @@ public class SimpleQuery { public static void main(String[] args) { // TODO(developer): Replace this query before running the sample. - String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + String query = + "SELECT corpus, count(*) as corpus_count " + + "FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; simpleQuery(query); } @@ -44,7 +47,14 @@ public static void simpleQuery(String query) { TableResult result = bigquery.query(queryConfig); // Print the results. - result.iterateAll().forEach(rows -> rows.forEach(row -> System.out.println(row.getValue()))); + result + .iterateAll() + .forEach( + row -> { + System.out.print("corpus:" + row.get("corpus").getStringValue()); + System.out.print(", count:" + row.get("corpus_count").getLongValue()); + System.out.println(); + }); System.out.println("Query ran successfully"); } catch (BigQueryException | InterruptedException e) { diff --git a/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java b/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java index b750c314645f..5441ffccad0d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java @@ -51,7 +51,9 @@ public void tearDown() { @Test public void testSimpleQuery() { - String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + String query = + "SELECT corpus, count(*) as corpus_count " + + "FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; SimpleQuery.simpleQuery(query); assertThat(bout.toString()).contains("Query ran successfully"); From 7d61111d23282c7e2478ac31ba0d4e423330ec92 Mon Sep 17 00:00:00 2001 From: PhongChuong <147636638+PhongChuong@users.noreply.github.com> Date: Fri, 12 Jan 2024 07:50:18 -0500 Subject: [PATCH 2662/3441] feat: Add support for Table resource tags (#3046) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Refactor labels into annotations to be used for resource tags * Fix issue where changelog was updated during a refactoring * Fix issue where changelog was updated during a refactoring * Add resource tags to Tables * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * fix: clirr * Update TableInfoTest to include ResourceTags --------- Co-authored-by: Owl Bot --- .../clirr-ignored-differences.xml | 5 +++ .../{Labels.java => Annotations.java} | 12 +++---- .../google/cloud/bigquery/DatasetInfo.java | 8 ++--- .../com/google/cloud/bigquery/ModelInfo.java | 8 ++--- .../java/com/google/cloud/bigquery/Table.java | 6 ++++ .../com/google/cloud/bigquery/TableInfo.java | 31 ++++++++++++++++--- .../{LabelsTest.java => AnnotationsTest.java} | 28 ++++++++--------- .../google/cloud/bigquery/TableInfoTest.java | 2 ++ 8 files changed, 68 insertions(+), 32 deletions(-) rename google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/{Labels.java => Annotations.java} (87%) rename google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/{LabelsTest.java => AnnotationsTest.java} (62%) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 7513b5324093..9c69fd6a68be 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -29,6 +29,11 @@ com/google/cloud/bigquery/RoutineInfo* *RemoteFunctionOptions(*) + + 7013 + com/google/cloud/bigquery/TableInfo* + *ResourceTags(*) + 7012 com/google/cloud/bigquery/Connection diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Annotations.java similarity index 87% rename from google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java rename to google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Annotations.java index 8f91aa37aeef..5d8d1e7e0cff 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Labels.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Annotations.java @@ -28,9 +28,9 @@ import javax.annotation.Nullable; @AutoValue -abstract class Labels implements Serializable { +abstract class Annotations implements Serializable { private static final long serialVersionUID = 1L; - static final Labels ZERO = of(Collections.emptyMap()); + static final Annotations ZERO = of(Collections.emptyMap()); @Nullable abstract Map userMap(); @@ -59,13 +59,13 @@ Map toPb() { return Collections.unmodifiableMap(pbMap); } - private static Labels of(Map userMap) { + private static Annotations of(Map userMap) { Preconditions.checkArgument( userMap == null || !userMap.containsKey(null), "null keys are not supported"); - return new AutoValue_Labels(userMap); + return new AutoValue_Annotations(userMap); } - static Labels fromUser(Map map) { + static Annotations fromUser(Map map) { if (map == null || map instanceof ImmutableMap) { return of(map); } @@ -73,7 +73,7 @@ static Labels fromUser(Map map) { return of(Collections.unmodifiableMap(new HashMap<>(map))); } - static Labels fromPb(Map pb) { + static Annotations fromPb(Map pb) { if (Data.isNull(pb)) { return of(null); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java index 0dddc0e86f2d..b5fabe97d1a2 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java @@ -69,7 +69,7 @@ public Dataset apply(DatasetInfo datasetInfo) { private final Long lastModified; private final String location; private final String selfLink; - private final Labels labels; + private final Annotations labels; private final EncryptionConfiguration defaultEncryptionConfiguration; private final Long defaultPartitionExpirationMs; private final String defaultCollation; @@ -194,7 +194,7 @@ static final class BuilderImpl extends Builder { private Long lastModified; private String location; private String selfLink; - private Labels labels = Labels.ZERO; + private Annotations labels = Annotations.ZERO; private EncryptionConfiguration defaultEncryptionConfiguration; private Long defaultPartitionExpirationMs; private String defaultCollation; @@ -247,7 +247,7 @@ public Acl apply(Dataset.Access accessPb) { this.lastModified = datasetPb.getLastModifiedTime(); this.location = datasetPb.getLocation(); this.selfLink = datasetPb.getSelfLink(); - this.labels = Labels.fromPb(datasetPb.getLabels()); + this.labels = Annotations.fromPb(datasetPb.getLabels()); if (datasetPb.getDefaultEncryptionConfiguration() != null) { this.defaultEncryptionConfiguration = new EncryptionConfiguration.Builder(datasetPb.getDefaultEncryptionConfiguration()) @@ -337,7 +337,7 @@ Builder setSelfLink(String selfLink) { */ @Override public Builder setLabels(Map labels) { - this.labels = Labels.fromUser(labels); + this.labels = Annotations.fromUser(labels); return this; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java index 83603cbd2395..922ed441c8ca 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java @@ -67,7 +67,7 @@ public Model apply(ModelInfo ModelInfo) { private final Long creationTime; private final Long lastModifiedTime; private final Long expirationTime; - private final Labels labels; + private final Annotations labels; private final String location; private final ImmutableList trainingRunList; private final ImmutableList featureColumnList; @@ -132,7 +132,7 @@ static class BuilderImpl extends Builder { private Long creationTime; private Long lastModifiedTime; private Long expirationTime; - private Labels labels = Labels.ZERO; + private Annotations labels = Annotations.ZERO; private String location; private List trainingRunList = Collections.emptyList(); private List labelColumnList = Collections.emptyList(); @@ -169,7 +169,7 @@ static class BuilderImpl extends Builder { this.creationTime = modelPb.getCreationTime(); this.lastModifiedTime = modelPb.getLastModifiedTime(); this.expirationTime = modelPb.getExpirationTime(); - this.labels = Labels.fromPb(modelPb.getLabels()); + this.labels = Annotations.fromPb(modelPb.getLabels()); this.location = modelPb.getLocation(); if (modelPb.getTrainingRuns() != null) { this.trainingRunList = modelPb.getTrainingRuns(); @@ -238,7 +238,7 @@ public Builder setModelId(ModelId modelId) { @Override public Builder setLabels(Map labels) { - this.labels = Labels.fromUser(labels); + this.labels = Annotations.fromUser(labels); return this; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java index fdf0bad668b2..56c6558555f1 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java @@ -192,6 +192,12 @@ public Builder setLabels(Map labels) { return this; } + @Override + public Builder setResourceTags(Map resourceTags) { + infoBuilder.setResourceTags(resourceTags); + return this; + } + @Override public Builder setRequirePartitionFilter(Boolean requirePartitionFilter) { infoBuilder.setRequirePartitionFilter(requirePartitionFilter); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java index c00ba8441012..6e050d064929 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -77,7 +77,9 @@ public Table apply(TableInfo tableInfo) { private final BigInteger numRows; private final TableDefinition definition; private final EncryptionConfiguration encryptionConfiguration; - private final Labels labels; + private final Annotations labels; + + private final Annotations resourceTags; private final Boolean requirePartitionFilter; private final String defaultCollation; @@ -152,6 +154,9 @@ public abstract static class Builder { @BetaApi public abstract Builder setLabels(Map labels); + /** Sets the resource tags applied to this table. */ + public abstract Builder setResourceTags(Map resourceTags); + /** Creates a {@code TableInfo} object. */ public abstract TableInfo build(); @@ -191,7 +196,9 @@ static class BuilderImpl extends Builder { private BigInteger numRows; private TableDefinition definition; private EncryptionConfiguration encryptionConfiguration; - private Labels labels = Labels.ZERO; + private Annotations labels = Annotations.ZERO; + + private Annotations resourceTags = Annotations.ZERO; private Boolean requirePartitionFilter; private String defaultCollation; private CloneDefinition cloneDefinition; @@ -222,6 +229,7 @@ static class BuilderImpl extends Builder { this.definition = tableInfo.definition; this.encryptionConfiguration = tableInfo.encryptionConfiguration; this.labels = tableInfo.labels; + this.resourceTags = tableInfo.resourceTags; this.requirePartitionFilter = tableInfo.requirePartitionFilter; this.defaultCollation = tableInfo.defaultCollation; this.cloneDefinition = tableInfo.cloneDefinition; @@ -255,7 +263,8 @@ static class BuilderImpl extends Builder { this.encryptionConfiguration = new EncryptionConfiguration.Builder(tablePb.getEncryptionConfiguration()).build(); } - this.labels = Labels.fromPb(tablePb.getLabels()); + this.labels = Annotations.fromPb(tablePb.getLabels()); + this.resourceTags = Annotations.fromPb(tablePb.getResourceTags()); this.requirePartitionFilter = tablePb.getRequirePartitionFilter(); this.defaultCollation = tablePb.getDefaultCollation(); if (tablePb.getCloneDefinition() != null) { @@ -394,7 +403,13 @@ public Builder setEncryptionConfiguration(EncryptionConfiguration configuration) @Override public Builder setLabels(Map labels) { - this.labels = Labels.fromUser(labels); + this.labels = Annotations.fromUser(labels); + return this; + } + + @Override + public Builder setResourceTags(Map resourceTags) { + this.resourceTags = Annotations.fromUser(resourceTags); return this; } @@ -449,6 +464,7 @@ public TableInfo build() { this.definition = builder.definition; this.encryptionConfiguration = builder.encryptionConfiguration; this.labels = builder.labels; + this.resourceTags = builder.resourceTags; this.requirePartitionFilter = builder.requirePartitionFilter; this.defaultCollation = builder.defaultCollation; this.cloneDefinition = builder.cloneDefinition; @@ -610,6 +626,11 @@ public Map getLabels() { return labels.userMap(); } + /** Return a map for resource tags applied to the table. */ + public Map getResourceTags() { + return resourceTags.userMap(); + } + /** * Returns true if a partition filter (that can be used for partition elimination) is required for * queries over this table. @@ -660,6 +681,7 @@ public String toString() { .add("definition", definition) .add("encryptionConfiguration", encryptionConfiguration) .add("labels", labels) + .add("resourceTags", resourceTags) .add("requirePartitionFilter", requirePartitionFilter) .add("defaultCollation", defaultCollation) .add("cloneDefinition", cloneDefinition) @@ -724,6 +746,7 @@ Table toPb() { tablePb.setEncryptionConfiguration(encryptionConfiguration.toPb()); } tablePb.setLabels(labels.toPb()); + tablePb.setResourceTags(resourceTags.toPb()); tablePb.setRequirePartitionFilter(requirePartitionFilter); if (defaultCollation != null) { tablePb.setDefaultCollation(defaultCollation); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AnnotationsTest.java similarity index 62% rename from google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java rename to google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AnnotationsTest.java index 787dd77df786..aa3dd9fde463 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LabelsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AnnotationsTest.java @@ -25,50 +25,50 @@ import java.util.Map; import org.junit.Test; -public class LabelsTest { +public class AnnotationsTest { @Test public void testFromUser() { - assertThat(Labels.fromUser(null).userMap()).isNull(); + assertThat(Annotations.fromUser(null).userMap()).isNull(); HashMap user = new HashMap<>(); - assertThat(Labels.fromUser(user).userMap()).isEmpty(); + assertThat(Annotations.fromUser(user).userMap()).isEmpty(); user.put("a", "b"); - Labels labels = Labels.fromUser(user); - assertThat(labels.userMap()).containsExactly("a", "b"); + Annotations annotations = Annotations.fromUser(user); + assertThat(annotations.userMap()).containsExactly("a", "b"); - // Changing map afterwards does not change the labels. + // Changing map afterwards does not change the annotation. user.put("c", "d"); - assertThat(labels.userMap()).containsExactly("a", "b"); + assertThat(annotations.userMap()).containsExactly("a", "b"); } @Test public void testFromToPb() { - assertThat(Labels.fromPb(null).toPb()).isNull(); + assertThat(Annotations.fromPb(null).toPb()).isNull(); HashMap pb = new HashMap<>(); - assertThat(Labels.fromPb(pb).toPb()).isNull(); + assertThat(Annotations.fromPb(pb).toPb()).isNull(); pb.put("a", "b"); - assertThat(Labels.fromPb(pb).toPb()).isEqualTo(pb); + assertThat(Annotations.fromPb(pb).toPb()).isEqualTo(pb); pb.put("c", Data.NULL_STRING); - assertThat(Labels.fromPb(pb).toPb()).isEqualTo(pb); + assertThat(Annotations.fromPb(pb).toPb()).isEqualTo(pb); Map jsonNullMap = Data.nullOf(HashMap.class); - assertThat(Data.isNull(Labels.fromPb(jsonNullMap).toPb())).isTrue(); + assertThat(Data.isNull(Annotations.fromPb(jsonNullMap).toPb())).isTrue(); } @Test public void testNullKey() { try { - Labels.fromUser(Collections.singletonMap((String) null, "foo")); + Annotations.fromUser(Collections.singletonMap((String) null, "foo")); fail("null key shouldn't work"); } catch (IllegalArgumentException e) { } try { - Labels.fromPb(Collections.singletonMap((String) null, "foo")); + Annotations.fromPb(Collections.singletonMap((String) null, "foo")); fail("null key shouldn't work"); } catch (IllegalArgumentException e) { } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java index 6283f71c217c..a4ce6fbb4719 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java @@ -126,6 +126,7 @@ public class TableInfoTest { .setNumRows(BigInteger.valueOf(NUM_ROWS)) .setSelfLink(SELF_LINK) .setLabels(Collections.singletonMap("a", "b")) + .setResourceTags(Collections.singletonMap("resourceTagA", "resourceTagB")) .setRequirePartitionFilter(REQUIRE_PARTITION_FILTER) .build(); private static final TableInfo VIEW_INFO = @@ -309,6 +310,7 @@ private void compareTableInfo(TableInfo expected, TableInfo value) { assertEquals(expected.getNumRows(), value.getNumRows()); assertEquals(expected.getSelfLink(), value.getSelfLink()); assertEquals(expected.getLabels(), value.getLabels()); + assertEquals(expected.getResourceTags(), value.getResourceTags()); assertEquals(expected.getRequirePartitionFilter(), value.getRequirePartitionFilter()); assertEquals(expected.toString(), value.toString()); assertEquals(expected.hashCode(), value.hashCode()); From 0fbdfba1aecf18567fae95aea133b6504f050bd5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 16 Jan 2024 17:15:41 +0100 Subject: [PATCH 2663/3441] deps: update github/codeql-action action to v2.23.0 (#3061) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index c7f7f64aaa6d..8694cee273d3 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@03e7845b7bfcd5e7fb63d1ae8c61b0e791134fab # v2.22.11 + uses: github/codeql-action/upload-sarif@8b7fcbfac2aae0e6c24d9f9ebd5830b1290b18e4 # v2.23.0 with: sarif_file: results.sarif From 48cdaa8a77935062cfe9ed8fb66f52f774bdd673 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 16 Jan 2024 17:22:09 +0100 Subject: [PATCH 2664/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.35.0 (#3066) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f7c83573fe0b..55d055a2cc9d 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.34.0 + 2.35.0 test From 6ff4f043905a6fe67bc3ed5cbbacc0f9eddd3172 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 16 Jan 2024 17:22:59 +0100 Subject: [PATCH 2665/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.39.0 (#3067) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 55d055a2cc9d..e519c5d51cac 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.36.0 + 1.39.0 pom import From d4a4b064656f397d0fd7e23420c79956d5a9f0b0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 16 Jan 2024 17:42:22 +0100 Subject: [PATCH 2666/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.35.0 (#3065) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index e519c5d51cac..490c8ef4ab2c 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.34.0 + 2.35.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 99e3a85400f1..d4d2d367e52e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.34.0 + 2.35.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a38c313c7f67..878543a0ab77 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.34.0 + 2.35.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3debd229ed1c..c96c555e8370 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.34.0 + 2.35.0 test From 76987c46c0fa7fa0b23f1b7fd25eec5433088ab3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 16 Jan 2024 17:43:38 +0100 Subject: [PATCH 2667/3441] build(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.2.5 (#3062) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 95de88cf6ecd..982a48a3bc79 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -111,7 +111,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.2.3 + 3.2.5 **/*IT From c42fb60445cdc30b8d0ece8e2d367e8b01debdcd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 09:35:21 -0500 Subject: [PATCH 2668/3441] chore(main): release 2.36.1-SNAPSHOT (#3068) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(main): release 2.36.1-SNAPSHOT * chore(main): release 2.36.1-SNAPSHOT * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Owl Bot --- README.md | 6 +++--- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 0a5c250aec2a..2ada83ad83eb 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.35.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.36.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.35.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.36.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.35.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.36.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4041a1b70626..cb406b27bcb7 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.36.0 + 2.36.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d7e15193670a..b88b36b01eff 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.36.0 + 2.36.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.36.0 + 2.36.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 490c8ef4ab2c..629944356220 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.36.0 + 2.36.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.36.0 + 2.36.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 878543a0ab77..795e5765e793 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.36.0 + 2.36.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index e2ab490a5128..207aed95096a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.36.0:2.36.0 \ No newline at end of file +google-cloud-bigquery:2.36.0:2.36.1-SNAPSHOT \ No newline at end of file From eb94d565571339409821c72777339e31148c089f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 18 Jan 2024 17:29:12 +0100 Subject: [PATCH 2669/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.36.0 (#3070) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.36.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2ada83ad83eb..310b8c5ded74 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.35.0 + 2.36.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d4d2d367e52e..d2eb11c49293 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.35.0 + 2.36.0 From f371d6709109acf07224ee0b2615de400fd90838 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 18 Jan 2024 17:33:57 +0100 Subject: [PATCH 2670/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240105-2.0.0 (#3073) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240105-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 629944356220..b9dd8358a69d 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20231111-2.0.0 + v2-rev20240105-2.0.0 3.21.0 14.0.2 From c23493ef0f24e1db66880d7b243132eae4d3c3d5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 18 Jan 2024 17:36:57 +0100 Subject: [PATCH 2671/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.31.0 (#3074) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.31.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d2eb11c49293..34eb32784b10 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.30.0 + 2.31.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 795e5765e793..4ed56f631629 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.30.0 + 2.31.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c96c555e8370..9932d7bac752 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.30.0 + 2.31.0 test From e3f417cec3bdd81040baac3f054d0270dde9d9f8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 18 Jan 2024 17:37:44 +0100 Subject: [PATCH 2672/3441] deps: update github/codeql-action action to v2.23.1 (#3077) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.23.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 8694cee273d3..58e6328e5669 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@8b7fcbfac2aae0e6c24d9f9ebd5830b1290b18e4 # v2.23.0 + uses: github/codeql-action/upload-sarif@4759df8df70c5ebe7042c3029bbace20eee13edd # v2.23.1 with: sarif_file: results.sarif diff --git a/README.md b/README.md index 310b8c5ded74..9614c18ddfab 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.29.0') +implementation platform('com.google.cloud:libraries-bom:26.30.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` From 3fbb2bba7ad7bca245a8ca5eb59d999aead29ebd Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 19 Jan 2024 16:10:13 +0100 Subject: [PATCH 2673/3441] deps: update actions/upload-artifact action to v4.1.0 (#3071) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/upload-artifact action to v4.1.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 58e6328e5669..f87be2a0b6b2 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0 + uses: actions/upload-artifact@1eb3cb2b3e0f29609092a73eb033bb759a334595 # v4.1.0 with: name: SARIF file path: results.sarif From f03c4fc957ae5665fe0f98c0f06cc80eea7cec59 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 19 Jan 2024 16:12:32 +0100 Subject: [PATCH 2674/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.35.0 (#3079) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.35.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 34eb32784b10..f160d5598779 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.34.1 + 1.35.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4ed56f631629..0391bb721197 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.34.1 + 1.35.0 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9932d7bac752..fa0264d1e7cf 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.34.1 + 1.35.0 From a5b119cdf6f8ce9d180a2d51a3a7a9aad50b1ea4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 19 Jan 2024 16:13:21 +0100 Subject: [PATCH 2675/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.22.0 (#3080) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b9dd8358a69d..bef057fa495c 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20240105-2.0.0 - 3.21.0 + 3.22.0 14.0.2 From af81354c342cdb2a790cb008fc9fe3460e62265b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 19 Jan 2024 16:25:33 +0100 Subject: [PATCH 2676/3441] deps: update actions/upload-artifact action to v4.2.0 (#3081) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index f87be2a0b6b2..967aa1144eb9 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@1eb3cb2b3e0f29609092a73eb033bb759a334595 # v4.1.0 + uses: actions/upload-artifact@694cdabd8bdb0f10b2cea11669e1bf5453eed0a6 # v4.2.0 with: name: SARIF file path: results.sarif From 2614df203b1f3c9800b8c8c23d32e7f22ec76253 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 19 Jan 2024 16:30:46 +0100 Subject: [PATCH 2677/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.35.0 (#3078) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f160d5598779..19b925037650 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.34.1 + 1.35.0 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0391bb721197..7058520bccab 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.34.1 + 1.35.0 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index fa0264d1e7cf..c29824dc211d 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.34.1 + 1.35.0 com.google.oauth-client From 62c54c547df1fac081b02a5eb8e9829df9708345 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 09:51:09 -0500 Subject: [PATCH 2678/3441] chore: Create renovate_config_check.yaml (#1920) (#3085) * chore: Create renovate_config_check.yaml Source-Link: https://github.com/googleapis/synthtool/commit/6612ab8f3afcd5e292aecd647f0fa68812c9f5b5 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:a6aa751984f1e905c3ae5a3aac78fc7b68210626ce91487dc7ff4f0a06f010cc Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 6 +-- .github/workflows/renovate_config_check.yaml | 25 ++++++++++ .kokoro/requirements.txt | 48 ++++++++++---------- 3 files changed, 52 insertions(+), 27 deletions(-) create mode 100644 .github/workflows/renovate_config_check.yaml diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index bff46cd6691a..dc05a72762fe 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -1,4 +1,4 @@ -# Copyright 2023 Google LLC +# Copyright 2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:11d59eabd49dc088f8339fb96e9da79ba4b3a73b3d49a8a4e0263e91edd053ba -# created: 2023-12-05T18:46:43.811070085Z \ No newline at end of file + digest: sha256:a6aa751984f1e905c3ae5a3aac78fc7b68210626ce91487dc7ff4f0a06f010cc +# created: 2024-01-22T14:14:20.913785597Z diff --git a/.github/workflows/renovate_config_check.yaml b/.github/workflows/renovate_config_check.yaml new file mode 100644 index 000000000000..87d8eb2be8cd --- /dev/null +++ b/.github/workflows/renovate_config_check.yaml @@ -0,0 +1,25 @@ +name: Renovate Bot Config Validation + +on: + pull_request: + paths: + - 'renovate.json' + +jobs: + renovate_bot_config_validation: + runs-on: ubuntu-22.04 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '20' + + - name: Install Renovate and Config Validator + run: | + npm install -g npm@latest + npm install --global renovate + renovate-config-validator diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt index 6a36ccab4637..445c5c1f0929 100644 --- a/.kokoro/requirements.txt +++ b/.kokoro/requirements.txt @@ -170,30 +170,30 @@ colorlog==6.7.0 \ --hash=sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662 \ --hash=sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5 # via gcp-docuploader -cryptography==41.0.3 \ - --hash=sha256:0d09fb5356f975974dbcb595ad2d178305e5050656affb7890a1583f5e02a306 \ - --hash=sha256:23c2d778cf829f7d0ae180600b17e9fceea3c2ef8b31a99e3c694cbbf3a24b84 \ - --hash=sha256:3fb248989b6363906827284cd20cca63bb1a757e0a2864d4c1682a985e3dca47 \ - --hash=sha256:41d7aa7cdfded09b3d73a47f429c298e80796c8e825ddfadc84c8a7f12df212d \ - --hash=sha256:42cb413e01a5d36da9929baa9d70ca90d90b969269e5a12d39c1e0d475010116 \ - --hash=sha256:4c2f0d35703d61002a2bbdcf15548ebb701cfdd83cdc12471d2bae80878a4207 \ - --hash=sha256:4fd871184321100fb400d759ad0cddddf284c4b696568204d281c902fc7b0d81 \ - --hash=sha256:5259cb659aa43005eb55a0e4ff2c825ca111a0da1814202c64d28a985d33b087 \ - --hash=sha256:57a51b89f954f216a81c9d057bf1a24e2f36e764a1ca9a501a6964eb4a6800dd \ - --hash=sha256:652627a055cb52a84f8c448185922241dd5217443ca194d5739b44612c5e6507 \ - --hash=sha256:67e120e9a577c64fe1f611e53b30b3e69744e5910ff3b6e97e935aeb96005858 \ - --hash=sha256:6af1c6387c531cd364b72c28daa29232162010d952ceb7e5ca8e2827526aceae \ - --hash=sha256:6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34 \ - --hash=sha256:7efe8041897fe7a50863e51b77789b657a133c75c3b094e51b5e4b5cec7bf906 \ - --hash=sha256:84537453d57f55a50a5b6835622ee405816999a7113267739a1b4581f83535bd \ - --hash=sha256:8f09daa483aedea50d249ef98ed500569841d6498aa9c9f4b0531b9964658922 \ - --hash=sha256:95dd7f261bb76948b52a5330ba5202b91a26fbac13ad0e9fc8a3ac04752058c7 \ - --hash=sha256:a74fbcdb2a0d46fe00504f571a2a540532f4c188e6ccf26f1f178480117b33c4 \ - --hash=sha256:a983e441a00a9d57a4d7c91b3116a37ae602907a7618b882c8013b5762e80574 \ - --hash=sha256:ab8de0d091acbf778f74286f4989cf3d1528336af1b59f3e5d2ebca8b5fe49e1 \ - --hash=sha256:aeb57c421b34af8f9fe830e1955bf493a86a7996cc1338fe41b30047d16e962c \ - --hash=sha256:ce785cf81a7bdade534297ef9e490ddff800d956625020ab2ec2780a556c313e \ - --hash=sha256:d0d651aa754ef58d75cec6edfbd21259d93810b73f6ec246436a21b7841908de +cryptography==41.0.6 \ + --hash=sha256:068bc551698c234742c40049e46840843f3d98ad7ce265fd2bd4ec0d11306596 \ + --hash=sha256:0f27acb55a4e77b9be8d550d762b0513ef3fc658cd3eb15110ebbcbd626db12c \ + --hash=sha256:2132d5865eea673fe6712c2ed5fb4fa49dba10768bb4cc798345748380ee3660 \ + --hash=sha256:3288acccef021e3c3c10d58933f44e8602cf04dba96d9796d70d537bb2f4bbc4 \ + --hash=sha256:35f3f288e83c3f6f10752467c48919a7a94b7d88cc00b0668372a0d2ad4f8ead \ + --hash=sha256:398ae1fc711b5eb78e977daa3cbf47cec20f2c08c5da129b7a296055fbb22aed \ + --hash=sha256:422e3e31d63743855e43e5a6fcc8b4acab860f560f9321b0ee6269cc7ed70cc3 \ + --hash=sha256:48783b7e2bef51224020efb61b42704207dde583d7e371ef8fc2a5fb6c0aabc7 \ + --hash=sha256:4d03186af98b1c01a4eda396b137f29e4e3fb0173e30f885e27acec8823c1b09 \ + --hash=sha256:5daeb18e7886a358064a68dbcaf441c036cbdb7da52ae744e7b9207b04d3908c \ + --hash=sha256:60e746b11b937911dc70d164060d28d273e31853bb359e2b2033c9e93e6f3c43 \ + --hash=sha256:742ae5e9a2310e9dade7932f9576606836ed174da3c7d26bc3d3ab4bd49b9f65 \ + --hash=sha256:7e00fb556bda398b99b0da289ce7053639d33b572847181d6483ad89835115f6 \ + --hash=sha256:85abd057699b98fce40b41737afb234fef05c67e116f6f3650782c10862c43da \ + --hash=sha256:8efb2af8d4ba9dbc9c9dd8f04d19a7abb5b49eab1f3694e7b5a16a5fc2856f5c \ + --hash=sha256:ae236bb8760c1e55b7a39b6d4d32d2279bc6c7c8500b7d5a13b6fb9fc97be35b \ + --hash=sha256:afda76d84b053923c27ede5edc1ed7d53e3c9f475ebaf63c68e69f1403c405a8 \ + --hash=sha256:b27a7fd4229abef715e064269d98a7e2909ebf92eb6912a9603c7e14c181928c \ + --hash=sha256:b648fe2a45e426aaee684ddca2632f62ec4613ef362f4d681a9a6283d10e079d \ + --hash=sha256:c5a550dc7a3b50b116323e3d376241829fd326ac47bc195e04eb33a8170902a9 \ + --hash=sha256:da46e2b5df770070412c46f87bac0849b8d685c5f2679771de277a422c7d0b86 \ + --hash=sha256:f39812f70fc5c71a15aa3c97b2bbe213c3f2a460b79bd21c40d033bb34a9bf36 \ + --hash=sha256:ff369dd19e8fe0528b02e8df9f2aeb2479f89b1270d90f96a63500afe9af5cae # via # gcp-releasetool # secretstorage From 1e152e6d206e0ae2b0e73546302f336d3c7d9302 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 23 Jan 2024 20:52:06 +0100 Subject: [PATCH 2679/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3 (#3072) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bef057fa495c..086c408861e5 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 2.47.0 + 3.0.0 pom import From 33df25cb22374e44dbd75a31156b7c96ee38f349 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 23 Jan 2024 21:08:49 +0100 Subject: [PATCH 2680/3441] test(deps): update dependency com.google.truth:truth to v1.3.0 (#3083) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 086c408861e5..b2981acc1fee 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.truth truth - 1.2.0 + 1.3.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 19b925037650..fbb8f4040e8d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -81,7 +81,7 @@ com.google.truth truth - 1.2.0 + 1.3.0 test diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 982a48a3bc79..df62de7dc278 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -62,7 +62,7 @@ com.google.truth truth - 1.2.0 + 1.3.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7058520bccab..c97d24d46fcb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -79,7 +79,7 @@ com.google.truth truth - 1.2.0 + 1.3.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c29824dc211d..c94079f594e1 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -97,7 +97,7 @@ com.google.truth truth - 1.2.0 + 1.3.0 test From 4d4cbae00028f84c071f51e88d7ee976efdf04d5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 23 Jan 2024 21:29:08 +0100 Subject: [PATCH 2681/3441] deps: update arrow.version to v15 (#3084) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b2981acc1fee..f6b97fe53174 100644 --- a/pom.xml +++ b/pom.xml @@ -56,7 +56,7 @@ google-cloud-bigquery-parent v2-rev20240105-2.0.0 3.22.0 - 14.0.2 + 15.0.0 From eb773b91d03d944d9feab1ac46146234c173c15f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 23 Jan 2024 21:47:54 +0100 Subject: [PATCH 2682/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.32.0 (#3089) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f6b97fe53174..84eb864074df 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.31.0 + 2.32.0 test From b2814a2f8e6601347d0489058e563878af40f301 Mon Sep 17 00:00:00 2001 From: PhongChuong <147636638+PhongChuong@users.noreply.github.com> Date: Tue, 23 Jan 2024 17:19:09 -0500 Subject: [PATCH 2683/3441] Feat: Add universe domain (#3090) * Universe domain feat * Feat: Add universe domain feat * Feat: Add universe domain feat * Feat: Add universe domain feat --- .../bigquery/spi/v2/HttpBigQueryRpc.java | 45 +++++- .../cloud/bigquery/it/ITBigQueryTest.java | 134 ++++++++++++++++++ 2 files changed, 177 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 96a10deb33c5..841a790ee660 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -105,7 +105,7 @@ public HttpBigQueryRpc(BigQueryOptions options) { this.options = options; bigquery = new Bigquery.Builder(transport, new GsonFactory(), initializer) - .setRootUrl(options.getHost()) + .setRootUrl(options.getResolvedApiaryHost("bigquery")) .setApplicationName(options.getApplicationName()) .build(); } @@ -114,9 +114,16 @@ private static BigQueryException translate(IOException exception) { return new BigQueryException(exception); } + private void validateRPC() throws BigQueryException, IOException { + if (!this.options.hasValidUniverseDomain()) { + throw new BigQueryException(BigQueryException.UNKNOWN_CODE, "Invalid universe domain"); + } + } + @Override public Dataset getDataset(String projectId, String datasetId, Map options) { try { + validateRPC(); return bigquery .datasets() .get(projectId, datasetId) @@ -135,6 +142,7 @@ public Dataset getDataset(String projectId, String datasetId, Map opt @Override public Tuple> listDatasets(String projectId, Map options) { try { + validateRPC(); DatasetList datasetsList = bigquery .datasets() @@ -159,6 +167,7 @@ public Tuple> listDatasets(String projectId, Map options) { try { + validateRPC(); return bigquery .datasets() .insert(dataset.getDatasetReference().getProjectId(), dataset) @@ -173,6 +182,7 @@ public Dataset create(Dataset dataset, Map options) { @Override public Table create(Table table, Map options) { try { + validateRPC(); // unset the type, as it is output only table.setType(null); TableReference reference = table.getTableReference(); @@ -190,6 +200,7 @@ public Table create(Table table, Map options) { @Override public Routine create(Routine routine, Map options) { try { + validateRPC(); RoutineReference reference = routine.getRoutineReference(); return bigquery .routines() @@ -205,6 +216,7 @@ public Routine create(Routine routine, Map options) { @Override public Job create(Job job, Map options) { try { + validateRPC(); String projectId = job.getJobReference() != null ? job.getJobReference().getProjectId() @@ -223,6 +235,7 @@ public Job create(Job job, Map options) { @Override public Job createJobForQuery(Job job) { try { + validateRPC(); String projectId = job.getJobReference() != null ? job.getJobReference().getProjectId() @@ -236,6 +249,7 @@ public Job createJobForQuery(Job job) { @Override public boolean deleteDataset(String projectId, String datasetId, Map options) { try { + validateRPC(); bigquery .datasets() .delete(projectId, datasetId) @@ -255,6 +269,7 @@ public boolean deleteDataset(String projectId, String datasetId, Map @Override public Dataset patch(Dataset dataset, Map options) { try { + validateRPC(); DatasetReference reference = dataset.getDatasetReference(); return bigquery .datasets() @@ -270,6 +285,7 @@ public Dataset patch(Dataset dataset, Map options) { @Override public Table patch(Table table, Map options) { try { + validateRPC(); // unset the type, as it is output only table.setType(null); TableReference reference = table.getTableReference(); @@ -289,6 +305,7 @@ public Table patch(Table table, Map options) { public Table getTable( String projectId, String datasetId, String tableId, Map options) { try { + validateRPC(); return bigquery .tables() .get(projectId, datasetId, tableId) @@ -316,6 +333,7 @@ private String getTableMetadataOption(Map options) { public Tuple> listTables( String projectId, String datasetId, Map options) { try { + validateRPC(); TableList tableList = bigquery .tables() @@ -351,6 +369,7 @@ public Table apply(TableList.Tables tablePb) { @Override public boolean deleteTable(String projectId, String datasetId, String tableId) { try { + validateRPC(); bigquery.tables().delete(projectId, datasetId, tableId).execute(); return true; } catch (IOException ex) { @@ -365,6 +384,7 @@ public boolean deleteTable(String projectId, String datasetId, String tableId) { @Override public Model patch(Model model, Map options) { try { + validateRPC(); // unset the type, as it is output only ModelReference reference = model.getModelReference(); return bigquery @@ -382,6 +402,7 @@ public Model patch(Model model, Map options) { public Model getModel( String projectId, String datasetId, String modelId, Map options) { try { + validateRPC(); return bigquery .models() .get(projectId, datasetId, modelId) @@ -401,6 +422,7 @@ public Model getModel( public Tuple> listModels( String projectId, String datasetId, Map options) { try { + validateRPC(); ListModelsResponse modelList = bigquery .models() @@ -420,6 +442,7 @@ public Tuple> listModels( @Override public boolean deleteModel(String projectId, String datasetId, String modelId) { try { + validateRPC(); bigquery.models().delete(projectId, datasetId, modelId).execute(); return true; } catch (IOException ex) { @@ -434,6 +457,7 @@ public boolean deleteModel(String projectId, String datasetId, String modelId) { @Override public Routine update(Routine routine, Map options) { try { + validateRPC(); RoutineReference reference = routine.getRoutineReference(); return bigquery .routines() @@ -451,6 +475,7 @@ public Routine update(Routine routine, Map options) { public Routine getRoutine( String projectId, String datasetId, String routineId, Map options) { try { + validateRPC(); return bigquery .routines() .get(projectId, datasetId, routineId) @@ -470,6 +495,7 @@ public Routine getRoutine( public Tuple> listRoutines( String projectId, String datasetId, Map options) { try { + validateRPC(); ListRoutinesResponse routineList = bigquery .routines() @@ -491,6 +517,7 @@ public Tuple> listRoutines( @Override public boolean deleteRoutine(String projectId, String datasetId, String routineId) { try { + validateRPC(); bigquery.routines().delete(projectId, datasetId, routineId).execute(); return true; } catch (IOException ex) { @@ -506,6 +533,7 @@ public boolean deleteRoutine(String projectId, String datasetId, String routineI public TableDataInsertAllResponse insertAll( String projectId, String datasetId, String tableId, TableDataInsertAllRequest request) { try { + validateRPC(); return bigquery .tabledata() .insertAll(projectId, datasetId, tableId, request) @@ -520,6 +548,7 @@ public TableDataInsertAllResponse insertAll( public TableDataList listTableData( String projectId, String datasetId, String tableId, Map options) { try { + validateRPC(); return bigquery .tabledata() .list(projectId, datasetId, tableId) @@ -544,6 +573,7 @@ public TableDataList listTableDataWithRowLimit( Integer maxResultPerPage, String pageToken) { try { + validateRPC(); return bigquery .tabledata() .list(projectId, datasetId, tableId) @@ -559,6 +589,7 @@ public TableDataList listTableDataWithRowLimit( @Override public Job getJob(String projectId, String jobId, String location, Map options) { try { + validateRPC(); return bigquery .jobs() .get(projectId, jobId) @@ -578,6 +609,7 @@ public Job getJob(String projectId, String jobId, String location, Map> listJobs(String projectId, Map options) { try { + validateRPC(); Bigquery.Jobs.List request = bigquery .jobs() @@ -650,6 +683,7 @@ public Job apply(JobList.Jobs jobPb) { @Override public boolean cancel(String projectId, String jobId, String location) { try { + validateRPC(); bigquery .jobs() .cancel(projectId, jobId) @@ -669,6 +703,7 @@ public boolean cancel(String projectId, String jobId, String location) { @Override public boolean deleteJob(String projectId, String jobName, String location) { try { + validateRPC(); bigquery .jobs() .delete(projectId, jobName) @@ -685,6 +720,7 @@ public boolean deleteJob(String projectId, String jobName, String location) { public GetQueryResultsResponse getQueryResults( String projectId, String jobId, String location, Map options) { try { + validateRPC(); return bigquery .jobs() .getQueryResults(projectId, jobId) @@ -707,6 +743,7 @@ public GetQueryResultsResponse getQueryResults( public GetQueryResultsResponse getQueryResultsWithRowLimit( String projectId, String jobId, String location, Integer maxResultPerPage, Long timeoutMs) { try { + validateRPC(); return bigquery .jobs() .getQueryResults(projectId, jobId) @@ -723,6 +760,7 @@ public GetQueryResultsResponse getQueryResultsWithRowLimit( @Override public QueryResponse queryRpc(String projectId, QueryRequest content) { try { + validateRPC(); return bigquery.jobs().query(projectId, content).execute(); } catch (IOException ex) { throw translate(ex); @@ -732,7 +770,7 @@ public QueryResponse queryRpc(String projectId, QueryRequest content) { @Override public String open(Job loadJob) { try { - String builder = options.getHost(); + String builder = options.getResolvedApiaryHost("bigquery"); if (!builder.endsWith("/")) { builder += "/"; } @@ -807,6 +845,7 @@ public Job write( @Override public Policy getIamPolicy(String resourceId, Map options) { try { + validateRPC(); GetIamPolicyRequest policyRequest = new GetIamPolicyRequest(); if (null != Option.REQUESTED_POLICY_VERSION.getLong(options)) { policyRequest = @@ -828,6 +867,7 @@ public Policy getIamPolicy(String resourceId, Map options) { @Override public Policy setIamPolicy(String resourceId, Policy policy, Map options) { try { + validateRPC(); SetIamPolicyRequest policyRequest = new SetIamPolicyRequest().setPolicy(policy); return bigquery .tables() @@ -843,6 +883,7 @@ public Policy setIamPolicy(String resourceId, Policy policy, Map opti public TestIamPermissionsResponse testIamPermissions( String resourceId, List permissions, Map options) { try { + validateRPC(); TestIamPermissionsRequest permissionsRequest = new TestIamPermissionsRequest().setPermissions(permissions); return bigquery diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index d8d673360d91..ba30ea0d431d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -54,6 +54,7 @@ import com.google.cloud.bigquery.BigQueryDryRunResult; import com.google.cloud.bigquery.BigQueryError; import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.BigQueryResult; import com.google.cloud.bigquery.BigQuerySQLException; import com.google.cloud.bigquery.CloneDefinition; @@ -149,6 +150,7 @@ import com.google.common.io.BaseEncoding; import com.google.common.util.concurrent.ListenableFuture; import com.google.gson.JsonObject; +import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; @@ -773,6 +775,65 @@ public class ITBigQueryTest { private static final String PUBLIC_PROJECT = "bigquery-public-data"; private static final String PUBLIC_DATASET = "census_bureau_international"; + private static final String FAKE_JSON_CRED_WITH_GOOGLE_DOMAIN = + "{\n" + + " \"private_key_id\": \"somekeyid\",\n" + + " \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggS" + + "kAgEAAoIBAQC+K2hSuFpAdrJI\\nnCgcDz2M7t7bjdlsadsasad+fvRSW6TjNQZ3p5LLQY1kSZRqBqylRkzteMOyHg" + + "aR\\n0Pmxh3ILCND5men43j3h4eDbrhQBuxfEMalkG92sL+PNQSETY2tnvXryOvmBRwa/\\nQP/9dJfIkIDJ9Fw9N4" + + "Bhhhp6mCcRpdQjV38H7JsyJ7lih/oNjECgYAt\\nknddadwkwewcVxHFhcZJO+XWf6ofLUXpRwiTZakGMn8EE1uVa2" + + "LgczOjwWHGi99MFjxSer5m9\\n1tCa3/KEGKiS/YL71JvjwX3mb+cewlkcmweBKZHM2JPTk0ZednFSpVZMtycjkbLa" + + "\\ndYOS8V85AgMBewECggEBAKksaldajfDZDV6nGqbFjMiizAKJolr/M3OQw16K6o3/\\n0S31xIe3sSlgW0+UbYlF" + + "4U8KifhManD1apVSC3csafaspP4RZUHFhtBywLO9pR5c\\nr6S5aLp+gPWFyIp1pfXbWGvc5VY/v9x7ya1VEa6rXvL" + + "sKupSeWAW4tMj3eo/64ge\\nsdaceaLYw52KeBYiT6+vpsnYrEkAHO1fF/LavbLLOFJmFTMxmsNaG0tuiJHgjshB\\" + + "n82DpMCbXG9YcCgI/DbzuIjsdj2JC1cascSP//3PmefWysucBQe7Jryb6NQtASmnv\\nCdDw/0jmZTEjpe4S1lxfHp" + + "lAhHFtdgYTvyYtaLZiVVkCgYEA8eVpof2rceecw/I6\\n5ng1q3Hl2usdWV/4mZMvR0fOemacLLfocX6IYxT1zA1FF" + + "JlbXSRsJMf/Qq39mOR2\\nSpW+hr4jCoHeRVYLgsbggtrevGmILAlNoqCMpGZ6vDmJpq6ECV9olliDvpPgWOP+\\nm" + + "YPDreFBGxWvQrADNbRt2dmGsrsCgYEAyUHqB2wvJHFqdmeBsaacewzV8x9WgmeX\\ngUIi9REwXlGDW0Mz50dxpxcK" + + "CAYn65+7TCnY5O/jmL0VRxU1J2mSWyWTo1C+17L0\\n3fUqjxL1pkefwecxwecvC+gFFYdJ4CQ/MHHXU81Lwl1iWdF" + + "Cd2UoGddYaOF+KNeM\\nHC7cmqra+JsCgYEAlUNywzq8nUg7282E+uICfCB0LfwejuymR93CtsFgb7cRd6ak\\nECR" + + "8FGfCpH8ruWJINllbQfcHVCX47ndLZwqv3oVFKh6pAS/vVI4dpOepP8++7y1u\\ncoOvtreXCX6XqfrWDtKIvv0vjl" + + "HBhhhp6mCcRpdQjV38H7JsyJ7lih/oNjECgYAt\\nkndj5uNl5SiuVxHFhcZJO+XWf6ofLUregtevZakGMn8EE1uVa" + + "2AY7eafmoU/nZPT\\n00YB0TBATdCbn/nBSuKDESkhSg9s2GEKQZG5hBmL5uCMfo09z3SfxZIhJdlerreP\\nJ7gSi" + + "dI12N+EZxYd4xIJh/HFDgp7RRO87f+WJkofMQKBgGTnClK1VMaCRbJZPriw\\nEfeFCoOX75MxKwXs6xgrw4W//AYG" + + "GUjDt83lD6AZP6tws7gJ2IwY/qP7+lyhjEqN\\nHtfPZRGFkGZsdaksdlaksd323423d+15/UvrlRSFPNj1tWQmNKk" + + "XyRDW4IG1Oa2p\\nrALStNBx5Y9t0/LQnFI4w3aG\\n-----END PRIVATE KEY-----\\n\",\n" + + " \"project_id\": \"someprojectid\",\n" + + " \"client_email\": \"someclientid@developer.gserviceaccount.com\",\n" + + " \"client_id\": \"someclientid.apps.googleusercontent.com\",\n" + + " \"type\": \"service_account\",\n" + + " \"universe_domain\": \"googleapis.com\"\n" + + "}"; + private static final String FAKE_JSON_CRED_WITH_INVALID_DOMAIN = + "{\n" + + " \"private_key_id\": \"somekeyid\",\n" + + " \"private_key\": \"-----BEGIN PRIVATE KEY-----\\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggS" + + "kAgEAAoIBAQC+K2hSuFpAdrJI\\nnCgcDz2M7t7bjdlsadsasad+fvRSW6TjNQZ3p5LLQY1kSZRqBqylRkzteMOyHg" + + "aR\\n0Pmxh3ILCND5men43j3h4eDbrhQBuxfEMalkG92sL+PNQSETY2tnvXryOvmBRwa/\\nQP/9dJfIkIDJ9Fw9N4" + + "Bhhhp6mCcRpdQjV38H7JsyJ7lih/oNjECgYAt\\nknddadwkwewcVxHFhcZJO+XWf6ofLUXpRwiTZakGMn8EE1uVa2" + + "LgczOjwWHGi99MFjxSer5m9\\n1tCa3/KEGKiS/YL71JvjwX3mb+cewlkcmweBKZHM2JPTk0ZednFSpVZMtycjkbLa" + + "\\ndYOS8V85AgMBewECggEBAKksaldajfDZDV6nGqbFjMiizAKJolr/M3OQw16K6o3/\\n0S31xIe3sSlgW0+UbYlF" + + "4U8KifhManD1apVSC3csafaspP4RZUHFhtBywLO9pR5c\\nr6S5aLp+gPWFyIp1pfXbWGvc5VY/v9x7ya1VEa6rXvL" + + "sKupSeWAW4tMj3eo/64ge\\nsdaceaLYw52KeBYiT6+vpsnYrEkAHO1fF/LavbLLOFJmFTMxmsNaG0tuiJHgjshB\\" + + "n82DpMCbXG9YcCgI/DbzuIjsdj2JC1cascSP//3PmefWysucBQe7Jryb6NQtASmnv\\nCdDw/0jmZTEjpe4S1lxfHp" + + "lAhHFtdgYTvyYtaLZiVVkCgYEA8eVpof2rceecw/I6\\n5ng1q3Hl2usdWV/4mZMvR0fOemacLLfocX6IYxT1zA1FF" + + "JlbXSRsJMf/Qq39mOR2\\nSpW+hr4jCoHeRVYLgsbggtrevGmILAlNoqCMpGZ6vDmJpq6ECV9olliDvpPgWOP+\\nm" + + "YPDreFBGxWvQrADNbRt2dmGsrsCgYEAyUHqB2wvJHFqdmeBsaacewzV8x9WgmeX\\ngUIi9REwXlGDW0Mz50dxpxcK" + + "CAYn65+7TCnY5O/jmL0VRxU1J2mSWyWTo1C+17L0\\n3fUqjxL1pkefwecxwecvC+gFFYdJ4CQ/MHHXU81Lwl1iWdF" + + "Cd2UoGddYaOF+KNeM\\nHC7cmqra+JsCgYEAlUNywzq8nUg7282E+uICfCB0LfwejuymR93CtsFgb7cRd6ak\\nECR" + + "8FGfCpH8ruWJINllbQfcHVCX47ndLZwqv3oVFKh6pAS/vVI4dpOepP8++7y1u\\ncoOvtreXCX6XqfrWDtKIvv0vjl" + + "HBhhhp6mCcRpdQjV38H7JsyJ7lih/oNjECgYAt\\nkndj5uNl5SiuVxHFhcZJO+XWf6ofLUregtevZakGMn8EE1uVa" + + "2AY7eafmoU/nZPT\\n00YB0TBATdCbn/nBSuKDESkhSg9s2GEKQZG5hBmL5uCMfo09z3SfxZIhJdlerreP\\nJ7gSi" + + "dI12N+EZxYd4xIJh/HFDgp7RRO87f+WJkofMQKBgGTnClK1VMaCRbJZPriw\\nEfeFCoOX75MxKwXs6xgrw4W//AYG" + + "GUjDt83lD6AZP6tws7gJ2IwY/qP7+lyhjEqN\\nHtfPZRGFkGZsdaksdlaksd323423d+15/UvrlRSFPNj1tWQmNKk" + + "XyRDW4IG1Oa2p\\nrALStNBx5Y9t0/LQnFI4w3aG\\n-----END PRIVATE KEY-----\\n\",\n" + + " \"project_id\": \"someprojectid\",\n" + + " \"client_email\": \"someclientid@developer.gserviceaccount.com\",\n" + + " \"client_id\": \"someclientid.apps.googleusercontent.com\",\n" + + " \"type\": \"service_account\",\n" + + " \"universe_domain\": \"fake.domain\"\n" + + "}"; + private static BigQuery bigquery; private static Storage storage; @@ -6323,4 +6384,77 @@ public void testStatelessQueriesWithLocation() throws Exception { bigQuery.delete(dataset.getDatasetId(), DatasetDeleteOption.deleteContents()); } } + + @Test + public void testUniverseDomainWithInvalidUniverseDomain() { + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); + BigQueryOptions bigQueryOptions = + bigqueryHelper + .getOptions() + .toBuilder() + .setCredentials(loadCredentials(FAKE_JSON_CRED_WITH_GOOGLE_DOMAIN)) + .setUniverseDomain("invalid.domain") + .build(); + BigQuery bigQuery = bigQueryOptions.getService(); + + try { + // Use list dataset to send RPC to invalid domain. + bigQuery.listDatasets("bigquery-public-data"); + fail("RPCs to invalid universe domain should fail"); + } catch (BigQueryException e) { + assertNotNull(e.getMessage()); + assertThat((e.getMessage().contains("Invalid universe domain"))).isTrue(); + } + } + + @Test + public void testInvalidUniverseDomainWithMismatchCredentials() { + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); + BigQueryOptions bigQueryOptions = + bigqueryHelper + .getOptions() + .toBuilder() + .setCredentials(loadCredentials(FAKE_JSON_CRED_WITH_INVALID_DOMAIN)) + .build(); + BigQuery bigQuery = bigQueryOptions.getService(); + + try { + // Use list dataset to send RPC to invalid domain. + bigQuery.listDatasets("bigquery-public-data"); + fail("RPCs to invalid universe domain should fail"); + } catch (BigQueryException e) { + assertNotNull(e.getMessage()); + assertThat((e.getMessage().contains("Invalid universe domain"))).isTrue(); + } + } + + @Test + public void testUniverseDomainWithMatchingDomain() { + // Test a valid domain using the default credentials and Google default universe domain. + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); + BigQueryOptions bigQueryOptions = + bigqueryHelper.getOptions().toBuilder().setUniverseDomain("googleapis.com").build(); + BigQuery bigQuery = bigQueryOptions.getService(); + + // Verify that all is well by listing a dataset. + Page datasets = bigQuery.listDatasets("bigquery-public-data"); + Iterator iterator = datasets.iterateAll().iterator(); + Set datasetNames = new HashSet<>(); + while (iterator.hasNext()) { + datasetNames.add(iterator.next().getDatasetId().getDataset()); + } + for (String type : PUBLIC_DATASETS) { + assertTrue(datasetNames.contains(type)); + } + } + + static GoogleCredentials loadCredentials(String credentialFile) { + try { + InputStream keyStream = new ByteArrayInputStream(credentialFile.getBytes()); + return GoogleCredentials.fromStream(keyStream); + } catch (IOException e) { + fail("Couldn't create fake JSON credentials."); + } + return null; + } } From f4411b09c4b681d2f3fb250ef133b291649f2865 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 24 Jan 2024 19:12:59 +0100 Subject: [PATCH 2684/3441] deps: update actions/upload-artifact action to v4.3.0 (#3091) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 967aa1144eb9..6584155eeeac 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@694cdabd8bdb0f10b2cea11669e1bf5453eed0a6 # v4.2.0 + uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 with: name: SARIF file path: results.sarif From a77b6eb7cb2b51f29303bbb8b3823881d291647b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 24 Jan 2024 19:14:02 +0100 Subject: [PATCH 2685/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.36.0 (#3092) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 84eb864074df..5d2a7baa9506 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.35.0 + 2.36.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fbb8f4040e8d..de976d88ab3d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.35.0 + 2.36.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c97d24d46fcb..f9d680f4a02d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.35.0 + 2.36.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c94079f594e1..732a9b53dd0c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.35.0 + 2.36.0 test From 110bcc506272b372fdd90ee718fad298c8ab7e19 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 24 Jan 2024 19:15:30 +0100 Subject: [PATCH 2686/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.40.0 (#3094) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5d2a7baa9506..d05faa084686 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.39.0 + 1.40.0 pom import From 24456a361a39550e962ac68a79de3c7a9e912884 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 24 Jan 2024 20:27:27 +0100 Subject: [PATCH 2687/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.36.0 (#3093) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d05faa084686..5630ca332f53 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.35.0 + 2.36.0 test From 0933b34f30ade216dcf61767a771509ca07f294b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 24 Jan 2024 23:48:17 +0100 Subject: [PATCH 2688/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.23.0 (#3096) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5630ca332f53..f9555dadfc2f 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20240105-2.0.0 - 3.22.0 + 3.23.0 15.0.0 From f4c3d3999e7d2e9b48374dbf28c10fe5f7b6dd18 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 25 Jan 2024 17:53:02 +0100 Subject: [PATCH 2689/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.32.1 (#3097) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f9555dadfc2f..8f3364ee309b 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.32.0 + 2.32.1 test From bf74f073cf03ea3911f2cef650337a4f206de7f6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 25 Jan 2024 22:04:18 +0100 Subject: [PATCH 2690/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.0.1 (#3098) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `3.0.0` -> `3.0.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigquerystorage-bom/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigquerystorage-bom/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigquerystorage-bom/3.0.0/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigquerystorage-bom/3.0.0/3.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquerystorage (com.google.cloud:google-cloud-bigquerystorage-bom) ### [`v3.0.1`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#301-2024-01-25) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v3.0.0...v3.0.1) ##### Bug Fixes - **deps:** Update the Java code generator (gapic-generator-java) to 2.32.0 ([#​2363](https://togithub.com/googleapis/java-bigquerystorage/issues/2363)) ([542b946](https://togithub.com/googleapis/java-bigquerystorage/commit/542b94606de6790f54ebeb546dc84f30faeb58b2)) ##### Dependencies - Update arrow.version to v15 ([#​2372](https://togithub.com/googleapis/java-bigquerystorage/issues/2372)) ([4b59eec](https://togithub.com/googleapis/java-bigquerystorage/commit/4b59eec20da86195ab5051e585bfe20d149af863)) - Update dependency com.google.cloud:google-cloud-bigquery to v2.36.0 ([#​2364](https://togithub.com/googleapis/java-bigquerystorage/issues/2364)) ([26f3429](https://togithub.com/googleapis/java-bigquerystorage/commit/26f342990fee9c12cb1ee3d016a6d2f434d7b85d)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.22.0 ([#​2370](https://togithub.com/googleapis/java-bigquerystorage/issues/2370)) ([adcc49e](https://togithub.com/googleapis/java-bigquerystorage/commit/adcc49e96a445c4dd2c68be7c82a1d750579d0d3)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.23.0 ([#​2378](https://togithub.com/googleapis/java-bigquerystorage/issues/2378)) ([2d8245f](https://togithub.com/googleapis/java-bigquerystorage/commit/2d8245fbf1143308410ea2a86ca98b0289a04c29)) - Update dependency com.google.truth:truth to v1.3.0 ([#​2371](https://togithub.com/googleapis/java-bigquerystorage/issues/2371)) ([8b39e8a](https://togithub.com/googleapis/java-bigquerystorage/commit/8b39e8af6a88312b39e1283a52bcd52c119c5f30))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8f3364ee309b..43bc4cdd2f5b 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.0.0 + 3.0.1 pom import From 8dbf92a662a3f0b0e00cbefe0b67b23a7dd4744d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 22:46:15 +0000 Subject: [PATCH 2691/3441] chore(main): release 2.37.0 (#3076) :robot: I have created a release *beep* *boop* --- ## [2.37.0](https://togithub.com/googleapis/java-bigquery/compare/v2.36.0...v2.37.0) (2024-01-25) ### Features * Add support for Table resource tags ([#3046](https://togithub.com/googleapis/java-bigquery/issues/3046)) ([7d61111](https://togithub.com/googleapis/java-bigquery/commit/7d61111d23282c7e2478ac31ba0d4e423330ec92)) * Add universe domain ([#3090](https://togithub.com/googleapis/java-bigquery/issues/3090)) ([b2814a2](https://togithub.com/googleapis/java-bigquery/commit/b2814a2f8e6601347d0489058e563878af40f301)) ### Dependencies * Update actions/upload-artifact action to v4.1.0 ([#3071](https://togithub.com/googleapis/java-bigquery/issues/3071)) ([3fbb2bb](https://togithub.com/googleapis/java-bigquery/commit/3fbb2bba7ad7bca245a8ca5eb59d999aead29ebd)) * Update actions/upload-artifact action to v4.2.0 ([#3081](https://togithub.com/googleapis/java-bigquery/issues/3081)) ([af81354](https://togithub.com/googleapis/java-bigquery/commit/af81354c342cdb2a790cb008fc9fe3460e62265b)) * Update actions/upload-artifact action to v4.3.0 ([#3091](https://togithub.com/googleapis/java-bigquery/issues/3091)) ([f4411b0](https://togithub.com/googleapis/java-bigquery/commit/f4411b09c4b681d2f3fb250ef133b291649f2865)) * Update arrow.version to v15 ([#3084](https://togithub.com/googleapis/java-bigquery/issues/3084)) ([4d4cbae](https://togithub.com/googleapis/java-bigquery/commit/4d4cbae00028f84c071f51e88d7ee976efdf04d5)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.35.0 ([#3066](https://togithub.com/googleapis/java-bigquery/issues/3066)) ([48cdaa8](https://togithub.com/googleapis/java-bigquery/commit/48cdaa8a77935062cfe9ed8fb66f52f774bdd673)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.36.0 ([#3093](https://togithub.com/googleapis/java-bigquery/issues/3093)) ([24456a3](https://togithub.com/googleapis/java-bigquery/commit/24456a361a39550e962ac68a79de3c7a9e912884)) * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240105-2.0.0 ([#3073](https://togithub.com/googleapis/java-bigquery/issues/3073)) ([f371d67](https://togithub.com/googleapis/java-bigquery/commit/f371d6709109acf07224ee0b2615de400fd90838)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.39.0 ([#3067](https://togithub.com/googleapis/java-bigquery/issues/3067)) ([6ff4f04](https://togithub.com/googleapis/java-bigquery/commit/6ff4f043905a6fe67bc3ed5cbbacc0f9eddd3172)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.40.0 ([#3094](https://togithub.com/googleapis/java-bigquery/issues/3094)) ([110bcc5](https://togithub.com/googleapis/java-bigquery/commit/110bcc506272b372fdd90ee718fad298c8ab7e19)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.22.0 ([#3080](https://togithub.com/googleapis/java-bigquery/issues/3080)) ([a5b119c](https://togithub.com/googleapis/java-bigquery/commit/a5b119cdf6f8ce9d180a2d51a3a7a9aad50b1ea4)) * Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.23.0 ([#3096](https://togithub.com/googleapis/java-bigquery/issues/3096)) ([0933b34](https://togithub.com/googleapis/java-bigquery/commit/0933b34f30ade216dcf61767a771509ca07f294b)) * Update dependency com.google.oauth-client:google-oauth-client-java6 to v1.35.0 ([#3078](https://togithub.com/googleapis/java-bigquery/issues/3078)) ([2614df2](https://togithub.com/googleapis/java-bigquery/commit/2614df203b1f3c9800b8c8c23d32e7f22ec76253)) * Update dependency com.google.oauth-client:google-oauth-client-jetty to v1.35.0 ([#3079](https://togithub.com/googleapis/java-bigquery/issues/3079)) ([f03c4fc](https://togithub.com/googleapis/java-bigquery/commit/f03c4fc957ae5665fe0f98c0f06cc80eea7cec59)) * Update github/codeql-action action to v2.23.0 ([#3061](https://togithub.com/googleapis/java-bigquery/issues/3061)) ([0fbdfba](https://togithub.com/googleapis/java-bigquery/commit/0fbdfba1aecf18567fae95aea133b6504f050bd5)) * Update github/codeql-action action to v2.23.1 ([#3077](https://togithub.com/googleapis/java-bigquery/issues/3077)) ([e3f417c](https://togithub.com/googleapis/java-bigquery/commit/e3f417cec3bdd81040baac3f054d0270dde9d9f8)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 27 +++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 34 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88197b2c1242..ea4a0271a3e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,32 @@ # Changelog +## [2.37.0](https://github.com/googleapis/java-bigquery/compare/v2.36.0...v2.37.0) (2024-01-25) + + +### Features + +* Add support for Table resource tags ([#3046](https://github.com/googleapis/java-bigquery/issues/3046)) ([7d61111](https://github.com/googleapis/java-bigquery/commit/7d61111d23282c7e2478ac31ba0d4e423330ec92)) +* Add universe domain ([#3090](https://github.com/googleapis/java-bigquery/issues/3090)) ([b2814a2](https://github.com/googleapis/java-bigquery/commit/b2814a2f8e6601347d0489058e563878af40f301)) + + +### Dependencies + +* Update actions/upload-artifact action to v4.1.0 ([#3071](https://github.com/googleapis/java-bigquery/issues/3071)) ([3fbb2bb](https://github.com/googleapis/java-bigquery/commit/3fbb2bba7ad7bca245a8ca5eb59d999aead29ebd)) +* Update actions/upload-artifact action to v4.2.0 ([#3081](https://github.com/googleapis/java-bigquery/issues/3081)) ([af81354](https://github.com/googleapis/java-bigquery/commit/af81354c342cdb2a790cb008fc9fe3460e62265b)) +* Update actions/upload-artifact action to v4.3.0 ([#3091](https://github.com/googleapis/java-bigquery/issues/3091)) ([f4411b0](https://github.com/googleapis/java-bigquery/commit/f4411b09c4b681d2f3fb250ef133b291649f2865)) +* Update arrow.version to v15 ([#3084](https://github.com/googleapis/java-bigquery/issues/3084)) ([4d4cbae](https://github.com/googleapis/java-bigquery/commit/4d4cbae00028f84c071f51e88d7ee976efdf04d5)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.35.0 ([#3066](https://github.com/googleapis/java-bigquery/issues/3066)) ([48cdaa8](https://github.com/googleapis/java-bigquery/commit/48cdaa8a77935062cfe9ed8fb66f52f774bdd673)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.36.0 ([#3093](https://github.com/googleapis/java-bigquery/issues/3093)) ([24456a3](https://github.com/googleapis/java-bigquery/commit/24456a361a39550e962ac68a79de3c7a9e912884)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240105-2.0.0 ([#3073](https://github.com/googleapis/java-bigquery/issues/3073)) ([f371d67](https://github.com/googleapis/java-bigquery/commit/f371d6709109acf07224ee0b2615de400fd90838)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.39.0 ([#3067](https://github.com/googleapis/java-bigquery/issues/3067)) ([6ff4f04](https://github.com/googleapis/java-bigquery/commit/6ff4f043905a6fe67bc3ed5cbbacc0f9eddd3172)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.40.0 ([#3094](https://github.com/googleapis/java-bigquery/issues/3094)) ([110bcc5](https://github.com/googleapis/java-bigquery/commit/110bcc506272b372fdd90ee718fad298c8ab7e19)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.22.0 ([#3080](https://github.com/googleapis/java-bigquery/issues/3080)) ([a5b119c](https://github.com/googleapis/java-bigquery/commit/a5b119cdf6f8ce9d180a2d51a3a7a9aad50b1ea4)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.23.0 ([#3096](https://github.com/googleapis/java-bigquery/issues/3096)) ([0933b34](https://github.com/googleapis/java-bigquery/commit/0933b34f30ade216dcf61767a771509ca07f294b)) +* Update dependency com.google.oauth-client:google-oauth-client-java6 to v1.35.0 ([#3078](https://github.com/googleapis/java-bigquery/issues/3078)) ([2614df2](https://github.com/googleapis/java-bigquery/commit/2614df203b1f3c9800b8c8c23d32e7f22ec76253)) +* Update dependency com.google.oauth-client:google-oauth-client-jetty to v1.35.0 ([#3079](https://github.com/googleapis/java-bigquery/issues/3079)) ([f03c4fc](https://github.com/googleapis/java-bigquery/commit/f03c4fc957ae5665fe0f98c0f06cc80eea7cec59)) +* Update github/codeql-action action to v2.23.0 ([#3061](https://github.com/googleapis/java-bigquery/issues/3061)) ([0fbdfba](https://github.com/googleapis/java-bigquery/commit/0fbdfba1aecf18567fae95aea133b6504f050bd5)) +* Update github/codeql-action action to v2.23.1 ([#3077](https://github.com/googleapis/java-bigquery/issues/3077)) ([e3f417c](https://github.com/googleapis/java-bigquery/commit/e3f417cec3bdd81040baac3f054d0270dde9d9f8)) + ## [2.36.0](https://github.com/googleapis/java-bigquery/compare/v2.35.0...v2.36.0) (2024-01-10) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index cb406b27bcb7..54c64e8e4125 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.36.1-SNAPSHOT + 2.37.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b88b36b01eff..c59d4be0d5f2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.36.1-SNAPSHOT + 2.37.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.36.1-SNAPSHOT + 2.37.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 43bc4cdd2f5b..c22acba483c0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.36.1-SNAPSHOT + 2.37.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.36.1-SNAPSHOT + 2.37.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f9d680f4a02d..f96a2ed83f41 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.36.1-SNAPSHOT + 2.37.0 diff --git a/versions.txt b/versions.txt index 207aed95096a..fc69e91467d1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.36.0:2.36.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.37.0:2.37.0 \ No newline at end of file From 4139430b06a4f9dcbca2b97866ff97163b4f38c1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 26 Jan 2024 17:05:28 +0100 Subject: [PATCH 2692/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.32.0 (#3099) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index de976d88ab3d..08b42114b320 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.31.0 + 2.32.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f96a2ed83f41..2b6035287493 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.31.0 + 2.32.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 732a9b53dd0c..0c5231406610 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.31.0 + 2.32.0 test From e7d1af9336013ebbfa4dd5f797b9117ba9876441 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 26 Jan 2024 17:06:21 +0100 Subject: [PATCH 2693/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.37.0 (#3101) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.37.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 9614c18ddfab..7a3ab38df118 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.36.0 + 2.37.0 ``` @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.36.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.37.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.36.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.37.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.36.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.37.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 08b42114b320..917e48741f28 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.36.0 + 2.37.0 From 2cc545ec1c0267fd9c33f3f1566f29d9a30f514e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 26 Jan 2024 17:07:02 +0100 Subject: [PATCH 2694/3441] deps: update github/codeql-action action to v2.23.2 (#3102) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.23.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 6584155eeeac..460ae63c4894 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@4759df8df70c5ebe7042c3029bbace20eee13edd # v2.23.1 + uses: github/codeql-action/upload-sarif@2f93e4319b2f04a2efc38fa7f78bd681bc3f7b2f # v2.23.2 with: sarif_file: results.sarif From 6eff68eb8c55162ca1cd2e915f3f60a87f584b35 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 29 Jan 2024 14:15:46 +0100 Subject: [PATCH 2695/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240124-2.0.0 (#3104) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c22acba483c0..6cc61a0917ae 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240105-2.0.0 + v2-rev20240124-2.0.0 3.23.0 15.0.0 From fd637fe13fa8286b84891aa7420c2dbf212669b7 Mon Sep 17 00:00:00 2001 From: Alice <65933803+alicejli@users.noreply.github.com> Date: Mon, 29 Jan 2024 08:16:32 -0500 Subject: [PATCH 2696/3441] chore: remove obsolete release job configs (#3095) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: remove obsolete release job configs * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .kokoro/build.sh | 29 +- .kokoro/release/bump_snapshot.cfg | 53 --- .kokoro/release/bump_snapshot.sh | 30 -- .kokoro/release/common.cfg | 49 --- .kokoro/release/common.sh | 50 --- .kokoro/release/drop.cfg | 6 - .kokoro/release/drop.sh | 32 -- .kokoro/release/promote.cfg | 6 - .kokoro/release/promote.sh | 34 -- .kokoro/release/publish_javadoc.cfg | 23 -- .kokoro/release/publish_javadoc.sh | 53 --- .kokoro/release/publish_javadoc11.cfg | 30 -- .kokoro/release/publish_javadoc11.sh | 63 ---- .kokoro/release/snapshot.cfg | 6 - .kokoro/release/snapshot.sh | 33 -- .kokoro/release/stage.cfg | 19 - .kokoro/release/stage.sh | 47 --- .kokoro/requirements.txt | 491 -------------------------- owlbot.py | 2 + 19 files changed, 7 insertions(+), 1049 deletions(-) delete mode 100644 .kokoro/release/bump_snapshot.cfg delete mode 100755 .kokoro/release/bump_snapshot.sh delete mode 100644 .kokoro/release/common.cfg delete mode 100755 .kokoro/release/common.sh delete mode 100644 .kokoro/release/drop.cfg delete mode 100755 .kokoro/release/drop.sh delete mode 100644 .kokoro/release/promote.cfg delete mode 100755 .kokoro/release/promote.sh delete mode 100644 .kokoro/release/publish_javadoc.cfg delete mode 100755 .kokoro/release/publish_javadoc.sh delete mode 100644 .kokoro/release/publish_javadoc11.cfg delete mode 100755 .kokoro/release/publish_javadoc11.sh delete mode 100644 .kokoro/release/snapshot.cfg delete mode 100755 .kokoro/release/snapshot.sh delete mode 100644 .kokoro/release/stage.cfg delete mode 100755 .kokoro/release/stage.sh delete mode 100644 .kokoro/requirements.txt diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 1b59f5bc3f8f..64f559885e24 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -62,7 +62,7 @@ javadoc) integration) mvn -B ${INTEGRATION_TEST_ARGS} \ -ntp \ - -Dtest=ITBigQueryTest,ITRemoteUDFTest \ + -Penable-integration-tests \ -DtrimStackTrace=false \ -Dclirr.skip=true \ -Denforcer.skip=true \ @@ -70,33 +70,14 @@ integration) verify RETURN_CODE=$? ;; -nightly-it) - mvn -B ${INTEGRATION_TEST_ARGS} \ - -ntp \ - -Dtest=ITNightlyBigQueryTest,ITRemoteUDFTest \ - -DtrimStackTrace=false \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -fae \ - verify - RETURN_CODE=$? - ;; graalvm) - # Run Integration Tests with Native Image. Skip running nightly tests in presubmits. - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest,ITRemoteUDFTest -Pnative -Penable-integration-tests test + # Run Unit and Integration Tests with Native Image + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative test RETURN_CODE=$? ;; graalvm17) - # Run Integration Tests with Native Image. Skip running nightly tests in presubmits. - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITBigQueryTest,ITRemoteUDFTest -Pnative -Penable-integration-tests test - RETURN_CODE=$? - ;; -nightly-graalvm) - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITNightlyBigQueryTest,ITRemoteUDFTest -Pnative -Penable-integration-tests test - RETURN_CODE=$? - ;; -nightly-graalvm17) - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Dtest=ITNightlyBigQueryTest,ITRemoteUDFTest -Pnative -Penable-integration-tests test + # Run Unit and Integration Tests with Native Image + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative test RETURN_CODE=$? ;; samples) diff --git a/.kokoro/release/bump_snapshot.cfg b/.kokoro/release/bump_snapshot.cfg deleted file mode 100644 index a9df23a26cde..000000000000 --- a/.kokoro/release/bump_snapshot.cfg +++ /dev/null @@ -1,53 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-bigquery/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/node:10-user" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/release/bump_snapshot.sh" -} - -# tokens used by release-please to keep an up-to-date release PR. -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-key-release-please" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-token-release-please" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "github-magic-proxy-url-release-please" - } - } -} diff --git a/.kokoro/release/bump_snapshot.sh b/.kokoro/release/bump_snapshot.sh deleted file mode 100755 index cda46bf27a01..000000000000 --- a/.kokoro/release/bump_snapshot.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -export NPM_CONFIG_PREFIX=/home/node/.npm-global - -if [ -f ${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please ]; then - # Groom the snapshot release PR immediately after publishing a release - npx release-please release-pr --token=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-token-release-please \ - --repo-url=googleapis/java-bigquery \ - --package-name="bigquery" \ - --api-url=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please \ - --proxy-key=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-key-release-please \ - --snapshot \ - --release-type=java-auth-yoshi -fi diff --git a/.kokoro/release/common.cfg b/.kokoro/release/common.cfg deleted file mode 100644 index 6d3d52351b22..000000000000 --- a/.kokoro/release/common.cfg +++ /dev/null @@ -1,49 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-bigquery/.kokoro/trampoline.sh" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 70247 - keyname: "maven-gpg-keyring" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 70247 - keyname: "maven-gpg-passphrase" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 70247 - keyname: "maven-gpg-pubkeyring" - } - } -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 70247 - keyname: "sonatype-credentials" - } - } -} diff --git a/.kokoro/release/common.sh b/.kokoro/release/common.sh deleted file mode 100755 index 7f78ee414faf..000000000000 --- a/.kokoro/release/common.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -# Copyright 2018 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -# Get secrets from keystore and set and environment variables -setup_environment_secrets() { - export GPG_PASSPHRASE=$(cat ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-passphrase) - export GPG_TTY=$(tty) - export GPG_HOMEDIR=/gpg - mkdir $GPG_HOMEDIR - mv ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-pubkeyring $GPG_HOMEDIR/pubring.gpg - mv ${KOKORO_KEYSTORE_DIR}/70247_maven-gpg-keyring $GPG_HOMEDIR/secring.gpg - export SONATYPE_USERNAME=$(cat ${KOKORO_KEYSTORE_DIR}/70247_sonatype-credentials | cut -f1 -d'|') - export SONATYPE_PASSWORD=$(cat ${KOKORO_KEYSTORE_DIR}/70247_sonatype-credentials | cut -f2 -d'|') -} - -create_settings_xml_file() { - echo " - - - ossrh - ${SONATYPE_USERNAME} - ${SONATYPE_PASSWORD} - - - sonatype-nexus-staging - ${SONATYPE_USERNAME} - ${SONATYPE_PASSWORD} - - - sonatype-nexus-snapshots - ${SONATYPE_USERNAME} - ${SONATYPE_PASSWORD} - - -" > $1 -} \ No newline at end of file diff --git a/.kokoro/release/drop.cfg b/.kokoro/release/drop.cfg deleted file mode 100644 index 0040a6262e7b..000000000000 --- a/.kokoro/release/drop.cfg +++ /dev/null @@ -1,6 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/release/drop.sh" -} diff --git a/.kokoro/release/drop.sh b/.kokoro/release/drop.sh deleted file mode 100755 index 742ec1a88600..000000000000 --- a/.kokoro/release/drop.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# Copyright 2018 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -# STAGING_REPOSITORY_ID must be set -if [ -z "${STAGING_REPOSITORY_ID}" ]; then - echo "Missing STAGING_REPOSITORY_ID environment variable" - exit 1 -fi - -source $(dirname "$0")/common.sh -pushd $(dirname "$0")/../../ - -setup_environment_secrets -create_settings_xml_file "settings.xml" - -mvn nexus-staging:drop -B \ - --settings=settings.xml \ - -DstagingRepositoryId=${STAGING_REPOSITORY_ID} diff --git a/.kokoro/release/promote.cfg b/.kokoro/release/promote.cfg deleted file mode 100644 index 5bc020921841..000000000000 --- a/.kokoro/release/promote.cfg +++ /dev/null @@ -1,6 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/release/promote.sh" -} diff --git a/.kokoro/release/promote.sh b/.kokoro/release/promote.sh deleted file mode 100755 index 3cac3d8a97d7..000000000000 --- a/.kokoro/release/promote.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# Copyright 2018 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -# STAGING_REPOSITORY_ID must be set -if [ -z "${STAGING_REPOSITORY_ID}" ]; then - echo "Missing STAGING_REPOSITORY_ID environment variable" - exit 1 -fi - -source $(dirname "$0")/common.sh - -pushd $(dirname "$0")/../../ - -setup_environment_secrets -create_settings_xml_file "settings.xml" - -mvn nexus-staging:release -B \ - -DperformRelease=true \ - --settings=settings.xml \ - -DstagingRepositoryId=${STAGING_REPOSITORY_ID} diff --git a/.kokoro/release/publish_javadoc.cfg b/.kokoro/release/publish_javadoc.cfg deleted file mode 100644 index eedb45d5917f..000000000000 --- a/.kokoro/release/publish_javadoc.cfg +++ /dev/null @@ -1,23 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/doc-templates/" - -env_vars: { - key: "STAGING_BUCKET" - value: "docs-staging" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/release/publish_javadoc.sh" -} - - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "docuploader_service_account" - } - } -} diff --git a/.kokoro/release/publish_javadoc.sh b/.kokoro/release/publish_javadoc.sh deleted file mode 100755 index 5d8cd8beecca..000000000000 --- a/.kokoro/release/publish_javadoc.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -if [[ -z "${CREDENTIALS}" ]]; then - CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account -fi - -if [[ -z "${STAGING_BUCKET}" ]]; then - echo "Need to set STAGING_BUCKET environment variable" - exit 1 -fi - -# work from the git root directory -pushd $(dirname "$0")/../../ - -# install docuploader package -python3 -m pip install --require-hashes -r .kokoro/requirements.txt - -# compile all packages -mvn clean install -B -q -DskipTests=true - -export NAME=google-cloud-bigquery -export VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) - -# build the docs -mvn site -B -q - -pushd target/site/apidocs - -# create metadata -python3 -m docuploader create-metadata \ - --name ${NAME} \ - --version ${VERSION} \ - --language java - -# upload docs -python3 -m docuploader upload . \ - --credentials ${CREDENTIALS} \ - --staging-bucket ${STAGING_BUCKET} diff --git a/.kokoro/release/publish_javadoc11.cfg b/.kokoro/release/publish_javadoc11.cfg deleted file mode 100644 index 60a846c10a95..000000000000 --- a/.kokoro/release/publish_javadoc11.cfg +++ /dev/null @@ -1,30 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# cloud-rad production -env_vars: { - key: "STAGING_BUCKET_V2" - value: "docs-staging-v2" -} - -# Configure the docker image for kokoro-trampoline -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java11" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/release/publish_javadoc11.sh" -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "docuploader_service_account" - } - } -} - -# Downloads docfx doclet resource. This will be in ${KOKORO_GFILE_DIR}/ -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/docfx" diff --git a/.kokoro/release/publish_javadoc11.sh b/.kokoro/release/publish_javadoc11.sh deleted file mode 100755 index b65cd03b6b09..000000000000 --- a/.kokoro/release/publish_javadoc11.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/bash -# Copyright 2021 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -if [[ -z "${CREDENTIALS}" ]]; then - CREDENTIALS=${KOKORO_KEYSTORE_DIR}/73713_docuploader_service_account -fi - -if [[ -z "${STAGING_BUCKET_V2}" ]]; then - echo "Need to set STAGING_BUCKET_V2 environment variable" - exit 1 -fi - -# work from the git root directory -pushd $(dirname "$0")/../../ - -# install docuploader package -python3 -m pip install --require-hashes -r .kokoro/requirements.txt - -# compile all packages -mvn clean install -B -q -DskipTests=true - -export NAME=google-cloud-bigquery -export VERSION=$(grep ${NAME}: versions.txt | cut -d: -f3) - -# cloud RAD generation -mvn clean javadoc:aggregate -B -q -P docFX -# include CHANGELOG -cp CHANGELOG.md target/docfx-yml/history.md - -pushd target/docfx-yml - -# create metadata -python3 -m docuploader create-metadata \ - --name ${NAME} \ - --version ${VERSION} \ - --xrefs devsite://java/gax \ - --xrefs devsite://java/google-cloud-core \ - --xrefs devsite://java/api-common \ - --xrefs devsite://java/proto-google-common-protos \ - --xrefs devsite://java/google-api-client \ - --xrefs devsite://java/google-http-client \ - --xrefs devsite://java/protobuf \ - --language java - -# upload yml to production bucket -python3 -m docuploader upload . \ - --credentials ${CREDENTIALS} \ - --staging-bucket ${STAGING_BUCKET_V2} \ - --destination-prefix docfx diff --git a/.kokoro/release/snapshot.cfg b/.kokoro/release/snapshot.cfg deleted file mode 100644 index effcaa3127f0..000000000000 --- a/.kokoro/release/snapshot.cfg +++ /dev/null @@ -1,6 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/release/snapshot.sh" -} \ No newline at end of file diff --git a/.kokoro/release/snapshot.sh b/.kokoro/release/snapshot.sh deleted file mode 100755 index 1f55b77024d8..000000000000 --- a/.kokoro/release/snapshot.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -source $(dirname "$0")/common.sh -MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml -pushd $(dirname "$0")/../../ - -# ensure we're trying to push a snapshot (no-result returns non-zero exit code) -grep SNAPSHOT versions.txt - -setup_environment_secrets -create_settings_xml_file "settings.xml" - -mvn clean deploy -B \ - --settings ${MAVEN_SETTINGS_FILE} \ - -DperformRelease=true \ - -Dgpg.executable=gpg \ - -Dgpg.passphrase=${GPG_PASSPHRASE} \ - -Dgpg.homedir=${GPG_HOMEDIR} diff --git a/.kokoro/release/stage.cfg b/.kokoro/release/stage.cfg deleted file mode 100644 index 8cd8055a995b..000000000000 --- a/.kokoro/release/stage.cfg +++ /dev/null @@ -1,19 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/release/stage.sh" -} - -# Need to save the properties file -action { - define_artifacts { - regex: "github/java-bigquery/target/nexus-staging/staging/*.properties" - strip_prefix: "github/java-bigquery" - } -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" -} diff --git a/.kokoro/release/stage.sh b/.kokoro/release/stage.sh deleted file mode 100755 index 61e714d6ba56..000000000000 --- a/.kokoro/release/stage.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# Copyright 2018 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -# Start the releasetool reporter -requirementsFile=$(realpath $(dirname "${BASH_SOURCE[0]}")/../requirements.txt) -python3 -m pip install --require-hashes -r $requirementsFile -python3 -m releasetool publish-reporter-script > /tmp/publisher-script; source /tmp/publisher-script - -source $(dirname "$0")/common.sh -source $(dirname "$0")/../common.sh -MAVEN_SETTINGS_FILE=$(realpath $(dirname "$0")/../../)/settings.xml -pushd $(dirname "$0")/../../ - -setup_environment_secrets -create_settings_xml_file "settings.xml" - -# attempt to stage 3 times with exponential backoff (starting with 10 seconds) -retry_with_backoff 3 10 \ - mvn clean deploy -B \ - --settings ${MAVEN_SETTINGS_FILE} \ - -DskipTests=true \ - -Dclirr.skip=true \ - -DperformRelease=true \ - -Dgpg.executable=gpg \ - -Dgpg.passphrase=${GPG_PASSPHRASE} \ - -Dgpg.homedir=${GPG_HOMEDIR} - -if [[ -n "${AUTORELEASE_PR}" ]] -then - mvn nexus-staging:release -B \ - -DperformRelease=true \ - --settings=settings.xml -fi diff --git a/.kokoro/requirements.txt b/.kokoro/requirements.txt deleted file mode 100644 index 445c5c1f0929..000000000000 --- a/.kokoro/requirements.txt +++ /dev/null @@ -1,491 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.9 -# by the following command: -# -# pip-compile requirements.in --generate-hashes --upgrade -# -attrs==23.1.0 \ - --hash=sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04 \ - --hash=sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015 - # via gcp-releasetool -cachetools==5.3.1 \ - --hash=sha256:95ef631eeaea14ba2e36f06437f36463aac3a096799e876ee55e5cdccb102590 \ - --hash=sha256:dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b - # via google-auth -certifi==2023.7.22 \ - --hash=sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082 \ - --hash=sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9 - # via requests -cffi==1.15.1 \ - --hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \ - --hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \ - --hash=sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104 \ - --hash=sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426 \ - --hash=sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405 \ - --hash=sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375 \ - --hash=sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a \ - --hash=sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e \ - --hash=sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc \ - --hash=sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf \ - --hash=sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185 \ - --hash=sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497 \ - --hash=sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3 \ - --hash=sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35 \ - --hash=sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c \ - --hash=sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83 \ - --hash=sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21 \ - --hash=sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca \ - --hash=sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984 \ - --hash=sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac \ - --hash=sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd \ - --hash=sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee \ - --hash=sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a \ - --hash=sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2 \ - --hash=sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192 \ - --hash=sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7 \ - --hash=sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585 \ - --hash=sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f \ - --hash=sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e \ - --hash=sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27 \ - --hash=sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b \ - --hash=sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e \ - --hash=sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e \ - --hash=sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d \ - --hash=sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c \ - --hash=sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415 \ - --hash=sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82 \ - --hash=sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02 \ - --hash=sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314 \ - --hash=sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325 \ - --hash=sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c \ - --hash=sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3 \ - --hash=sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914 \ - --hash=sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045 \ - --hash=sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d \ - --hash=sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9 \ - --hash=sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5 \ - --hash=sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2 \ - --hash=sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c \ - --hash=sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3 \ - --hash=sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2 \ - --hash=sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8 \ - --hash=sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d \ - --hash=sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d \ - --hash=sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9 \ - --hash=sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162 \ - --hash=sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76 \ - --hash=sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4 \ - --hash=sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e \ - --hash=sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9 \ - --hash=sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6 \ - --hash=sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b \ - --hash=sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01 \ - --hash=sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0 - # via cryptography -charset-normalizer==3.2.0 \ - --hash=sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96 \ - --hash=sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c \ - --hash=sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710 \ - --hash=sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706 \ - --hash=sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020 \ - --hash=sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252 \ - --hash=sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad \ - --hash=sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329 \ - --hash=sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a \ - --hash=sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f \ - --hash=sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6 \ - --hash=sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4 \ - --hash=sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a \ - --hash=sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46 \ - --hash=sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2 \ - --hash=sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23 \ - --hash=sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace \ - --hash=sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd \ - --hash=sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982 \ - --hash=sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10 \ - --hash=sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2 \ - --hash=sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea \ - --hash=sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09 \ - --hash=sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5 \ - --hash=sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149 \ - --hash=sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489 \ - --hash=sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9 \ - --hash=sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80 \ - --hash=sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592 \ - --hash=sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3 \ - --hash=sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6 \ - --hash=sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed \ - --hash=sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c \ - --hash=sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200 \ - --hash=sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a \ - --hash=sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e \ - --hash=sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d \ - --hash=sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6 \ - --hash=sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623 \ - --hash=sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669 \ - --hash=sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3 \ - --hash=sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa \ - --hash=sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9 \ - --hash=sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2 \ - --hash=sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f \ - --hash=sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1 \ - --hash=sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4 \ - --hash=sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a \ - --hash=sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8 \ - --hash=sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3 \ - --hash=sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029 \ - --hash=sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f \ - --hash=sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959 \ - --hash=sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22 \ - --hash=sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7 \ - --hash=sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952 \ - --hash=sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346 \ - --hash=sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e \ - --hash=sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d \ - --hash=sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299 \ - --hash=sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd \ - --hash=sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a \ - --hash=sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3 \ - --hash=sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037 \ - --hash=sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94 \ - --hash=sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c \ - --hash=sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858 \ - --hash=sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a \ - --hash=sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449 \ - --hash=sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c \ - --hash=sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918 \ - --hash=sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1 \ - --hash=sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c \ - --hash=sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac \ - --hash=sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa - # via requests -click==8.0.4 \ - --hash=sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1 \ - --hash=sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb - # via - # -r requirements.in - # gcp-docuploader - # gcp-releasetool -colorlog==6.7.0 \ - --hash=sha256:0d33ca236784a1ba3ff9c532d4964126d8a2c44f1f0cb1d2b0728196f512f662 \ - --hash=sha256:bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5 - # via gcp-docuploader -cryptography==41.0.6 \ - --hash=sha256:068bc551698c234742c40049e46840843f3d98ad7ce265fd2bd4ec0d11306596 \ - --hash=sha256:0f27acb55a4e77b9be8d550d762b0513ef3fc658cd3eb15110ebbcbd626db12c \ - --hash=sha256:2132d5865eea673fe6712c2ed5fb4fa49dba10768bb4cc798345748380ee3660 \ - --hash=sha256:3288acccef021e3c3c10d58933f44e8602cf04dba96d9796d70d537bb2f4bbc4 \ - --hash=sha256:35f3f288e83c3f6f10752467c48919a7a94b7d88cc00b0668372a0d2ad4f8ead \ - --hash=sha256:398ae1fc711b5eb78e977daa3cbf47cec20f2c08c5da129b7a296055fbb22aed \ - --hash=sha256:422e3e31d63743855e43e5a6fcc8b4acab860f560f9321b0ee6269cc7ed70cc3 \ - --hash=sha256:48783b7e2bef51224020efb61b42704207dde583d7e371ef8fc2a5fb6c0aabc7 \ - --hash=sha256:4d03186af98b1c01a4eda396b137f29e4e3fb0173e30f885e27acec8823c1b09 \ - --hash=sha256:5daeb18e7886a358064a68dbcaf441c036cbdb7da52ae744e7b9207b04d3908c \ - --hash=sha256:60e746b11b937911dc70d164060d28d273e31853bb359e2b2033c9e93e6f3c43 \ - --hash=sha256:742ae5e9a2310e9dade7932f9576606836ed174da3c7d26bc3d3ab4bd49b9f65 \ - --hash=sha256:7e00fb556bda398b99b0da289ce7053639d33b572847181d6483ad89835115f6 \ - --hash=sha256:85abd057699b98fce40b41737afb234fef05c67e116f6f3650782c10862c43da \ - --hash=sha256:8efb2af8d4ba9dbc9c9dd8f04d19a7abb5b49eab1f3694e7b5a16a5fc2856f5c \ - --hash=sha256:ae236bb8760c1e55b7a39b6d4d32d2279bc6c7c8500b7d5a13b6fb9fc97be35b \ - --hash=sha256:afda76d84b053923c27ede5edc1ed7d53e3c9f475ebaf63c68e69f1403c405a8 \ - --hash=sha256:b27a7fd4229abef715e064269d98a7e2909ebf92eb6912a9603c7e14c181928c \ - --hash=sha256:b648fe2a45e426aaee684ddca2632f62ec4613ef362f4d681a9a6283d10e079d \ - --hash=sha256:c5a550dc7a3b50b116323e3d376241829fd326ac47bc195e04eb33a8170902a9 \ - --hash=sha256:da46e2b5df770070412c46f87bac0849b8d685c5f2679771de277a422c7d0b86 \ - --hash=sha256:f39812f70fc5c71a15aa3c97b2bbe213c3f2a460b79bd21c40d033bb34a9bf36 \ - --hash=sha256:ff369dd19e8fe0528b02e8df9f2aeb2479f89b1270d90f96a63500afe9af5cae - # via - # gcp-releasetool - # secretstorage -gcp-docuploader==0.6.5 \ - --hash=sha256:30221d4ac3e5a2b9c69aa52fdbef68cc3f27d0e6d0d90e220fc024584b8d2318 \ - --hash=sha256:b7458ef93f605b9d46a4bf3a8dc1755dad1f31d030c8679edf304e343b347eea - # via -r requirements.in -gcp-releasetool==1.16.0 \ - --hash=sha256:27bf19d2e87aaa884096ff941aa3c592c482be3d6a2bfe6f06afafa6af2353e3 \ - --hash=sha256:a316b197a543fd036209d0caba7a8eb4d236d8e65381c80cbc6d7efaa7606d63 - # via -r requirements.in -google-api-core==2.11.1 \ - --hash=sha256:25d29e05a0058ed5f19c61c0a78b1b53adea4d9364b464d014fbda941f6d1c9a \ - --hash=sha256:d92a5a92dc36dd4f4b9ee4e55528a90e432b059f93aee6ad857f9de8cc7ae94a - # via - # google-cloud-core - # google-cloud-storage -google-auth==2.22.0 \ - --hash=sha256:164cba9af4e6e4e40c3a4f90a1a6c12ee56f14c0b4868d1ca91b32826ab334ce \ - --hash=sha256:d61d1b40897407b574da67da1a833bdc10d5a11642566e506565d1b1a46ba873 - # via - # gcp-releasetool - # google-api-core - # google-cloud-core - # google-cloud-storage -google-cloud-core==2.3.3 \ - --hash=sha256:37b80273c8d7eee1ae816b3a20ae43585ea50506cb0e60f3cf5be5f87f1373cb \ - --hash=sha256:fbd11cad3e98a7e5b0343dc07cb1039a5ffd7a5bb96e1f1e27cee4bda4a90863 - # via google-cloud-storage -google-cloud-storage==2.10.0 \ - --hash=sha256:934b31ead5f3994e5360f9ff5750982c5b6b11604dc072bc452c25965e076dc7 \ - --hash=sha256:9433cf28801671de1c80434238fb1e7e4a1ba3087470e90f70c928ea77c2b9d7 - # via gcp-docuploader -google-crc32c==1.5.0 \ - --hash=sha256:024894d9d3cfbc5943f8f230e23950cd4906b2fe004c72e29b209420a1e6b05a \ - --hash=sha256:02c65b9817512edc6a4ae7c7e987fea799d2e0ee40c53ec573a692bee24de876 \ - --hash=sha256:02ebb8bf46c13e36998aeaad1de9b48f4caf545e91d14041270d9dca767b780c \ - --hash=sha256:07eb3c611ce363c51a933bf6bd7f8e3878a51d124acfc89452a75120bc436289 \ - --hash=sha256:1034d91442ead5a95b5aaef90dbfaca8633b0247d1e41621d1e9f9db88c36298 \ - --hash=sha256:116a7c3c616dd14a3de8c64a965828b197e5f2d121fedd2f8c5585c547e87b02 \ - --hash=sha256:19e0a019d2c4dcc5e598cd4a4bc7b008546b0358bd322537c74ad47a5386884f \ - --hash=sha256:1c7abdac90433b09bad6c43a43af253e688c9cfc1c86d332aed13f9a7c7f65e2 \ - --hash=sha256:1e986b206dae4476f41bcec1faa057851f3889503a70e1bdb2378d406223994a \ - --hash=sha256:272d3892a1e1a2dbc39cc5cde96834c236d5327e2122d3aaa19f6614531bb6eb \ - --hash=sha256:278d2ed7c16cfc075c91378c4f47924c0625f5fc84b2d50d921b18b7975bd210 \ - --hash=sha256:2ad40e31093a4af319dadf503b2467ccdc8f67c72e4bcba97f8c10cb078207b5 \ - --hash=sha256:2e920d506ec85eb4ba50cd4228c2bec05642894d4c73c59b3a2fe20346bd00ee \ - --hash=sha256:3359fc442a743e870f4588fcf5dcbc1bf929df1fad8fb9905cd94e5edb02e84c \ - --hash=sha256:37933ec6e693e51a5b07505bd05de57eee12f3e8c32b07da7e73669398e6630a \ - --hash=sha256:398af5e3ba9cf768787eef45c803ff9614cc3e22a5b2f7d7ae116df8b11e3314 \ - --hash=sha256:3b747a674c20a67343cb61d43fdd9207ce5da6a99f629c6e2541aa0e89215bcd \ - --hash=sha256:461665ff58895f508e2866824a47bdee72497b091c730071f2b7575d5762ab65 \ - --hash=sha256:4c6fdd4fccbec90cc8a01fc00773fcd5fa28db683c116ee3cb35cd5da9ef6c37 \ - --hash=sha256:5829b792bf5822fd0a6f6eb34c5f81dd074f01d570ed7f36aa101d6fc7a0a6e4 \ - --hash=sha256:596d1f98fc70232fcb6590c439f43b350cb762fb5d61ce7b0e9db4539654cc13 \ - --hash=sha256:5ae44e10a8e3407dbe138984f21e536583f2bba1be9491239f942c2464ac0894 \ - --hash=sha256:635f5d4dd18758a1fbd1049a8e8d2fee4ffed124462d837d1a02a0e009c3ab31 \ - --hash=sha256:64e52e2b3970bd891309c113b54cf0e4384762c934d5ae56e283f9a0afcd953e \ - --hash=sha256:66741ef4ee08ea0b2cc3c86916ab66b6aef03768525627fd6a1b34968b4e3709 \ - --hash=sha256:67b741654b851abafb7bc625b6d1cdd520a379074e64b6a128e3b688c3c04740 \ - --hash=sha256:6ac08d24c1f16bd2bf5eca8eaf8304812f44af5cfe5062006ec676e7e1d50afc \ - --hash=sha256:6f998db4e71b645350b9ac28a2167e6632c239963ca9da411523bb439c5c514d \ - --hash=sha256:72218785ce41b9cfd2fc1d6a017dc1ff7acfc4c17d01053265c41a2c0cc39b8c \ - --hash=sha256:74dea7751d98034887dbd821b7aae3e1d36eda111d6ca36c206c44478035709c \ - --hash=sha256:759ce4851a4bb15ecabae28f4d2e18983c244eddd767f560165563bf9aefbc8d \ - --hash=sha256:77e2fd3057c9d78e225fa0a2160f96b64a824de17840351b26825b0848022906 \ - --hash=sha256:7c074fece789b5034b9b1404a1f8208fc2d4c6ce9decdd16e8220c5a793e6f61 \ - --hash=sha256:7c42c70cd1d362284289c6273adda4c6af8039a8ae12dc451dcd61cdabb8ab57 \ - --hash=sha256:7f57f14606cd1dd0f0de396e1e53824c371e9544a822648cd76c034d209b559c \ - --hash=sha256:83c681c526a3439b5cf94f7420471705bbf96262f49a6fe546a6db5f687a3d4a \ - --hash=sha256:8485b340a6a9e76c62a7dce3c98e5f102c9219f4cfbf896a00cf48caf078d438 \ - --hash=sha256:84e6e8cd997930fc66d5bb4fde61e2b62ba19d62b7abd7a69920406f9ecca946 \ - --hash=sha256:89284716bc6a5a415d4eaa11b1726d2d60a0cd12aadf5439828353662ede9dd7 \ - --hash=sha256:8b87e1a59c38f275c0e3676fc2ab6d59eccecfd460be267ac360cc31f7bcde96 \ - --hash=sha256:8f24ed114432de109aa9fd317278518a5af2d31ac2ea6b952b2f7782b43da091 \ - --hash=sha256:98cb4d057f285bd80d8778ebc4fde6b4d509ac3f331758fb1528b733215443ae \ - --hash=sha256:998679bf62b7fb599d2878aa3ed06b9ce688b8974893e7223c60db155f26bd8d \ - --hash=sha256:9ba053c5f50430a3fcfd36f75aff9caeba0440b2d076afdb79a318d6ca245f88 \ - --hash=sha256:9c99616c853bb585301df6de07ca2cadad344fd1ada6d62bb30aec05219c45d2 \ - --hash=sha256:a1fd716e7a01f8e717490fbe2e431d2905ab8aa598b9b12f8d10abebb36b04dd \ - --hash=sha256:a2355cba1f4ad8b6988a4ca3feed5bff33f6af2d7f134852cf279c2aebfde541 \ - --hash=sha256:b1f8133c9a275df5613a451e73f36c2aea4fe13c5c8997e22cf355ebd7bd0728 \ - --hash=sha256:b8667b48e7a7ef66afba2c81e1094ef526388d35b873966d8a9a447974ed9178 \ - --hash=sha256:ba1eb1843304b1e5537e1fca632fa894d6f6deca8d6389636ee5b4797affb968 \ - --hash=sha256:be82c3c8cfb15b30f36768797a640e800513793d6ae1724aaaafe5bf86f8f346 \ - --hash=sha256:c02ec1c5856179f171e032a31d6f8bf84e5a75c45c33b2e20a3de353b266ebd8 \ - --hash=sha256:c672d99a345849301784604bfeaeba4db0c7aae50b95be04dd651fd2a7310b93 \ - --hash=sha256:c6c777a480337ac14f38564ac88ae82d4cd238bf293f0a22295b66eb89ffced7 \ - --hash=sha256:cae0274952c079886567f3f4f685bcaf5708f0a23a5f5216fdab71f81a6c0273 \ - --hash=sha256:cd67cf24a553339d5062eff51013780a00d6f97a39ca062781d06b3a73b15462 \ - --hash=sha256:d3515f198eaa2f0ed49f8819d5732d70698c3fa37384146079b3799b97667a94 \ - --hash=sha256:d5280312b9af0976231f9e317c20e4a61cd2f9629b7bfea6a693d1878a264ebd \ - --hash=sha256:de06adc872bcd8c2a4e0dc51250e9e65ef2ca91be023b9d13ebd67c2ba552e1e \ - --hash=sha256:e1674e4307fa3024fc897ca774e9c7562c957af85df55efe2988ed9056dc4e57 \ - --hash=sha256:e2096eddb4e7c7bdae4bd69ad364e55e07b8316653234a56552d9c988bd2d61b \ - --hash=sha256:e560628513ed34759456a416bf86b54b2476c59144a9138165c9a1575801d0d9 \ - --hash=sha256:edfedb64740750e1a3b16152620220f51d58ff1b4abceb339ca92e934775c27a \ - --hash=sha256:f13cae8cc389a440def0c8c52057f37359014ccbc9dc1f0827936bcd367c6100 \ - --hash=sha256:f314013e7dcd5cf45ab1945d92e713eec788166262ae8deb2cfacd53def27325 \ - --hash=sha256:f583edb943cf2e09c60441b910d6a20b4d9d626c75a36c8fcac01a6c96c01183 \ - --hash=sha256:fd8536e902db7e365f49e7d9029283403974ccf29b13fc7028b97e2295b33556 \ - --hash=sha256:fe70e325aa68fa4b5edf7d1a4b6f691eb04bbccac0ace68e34820d283b5f80d4 - # via google-resumable-media -google-resumable-media==2.5.0 \ - --hash=sha256:218931e8e2b2a73a58eb354a288e03a0fd5fb1c4583261ac6e4c078666468c93 \ - --hash=sha256:da1bd943e2e114a56d85d6848497ebf9be6a14d3db23e9fc57581e7c3e8170ec - # via google-cloud-storage -googleapis-common-protos==1.59.1 \ - --hash=sha256:0cbedb6fb68f1c07e18eb4c48256320777707e7d0c55063ae56c15db3224a61e \ - --hash=sha256:b35d530fe825fb4227857bc47ad84c33c809ac96f312e13182bdeaa2abe1178a - # via google-api-core -idna==3.4 \ - --hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \ - --hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2 - # via requests -importlib-metadata==6.8.0 \ - --hash=sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb \ - --hash=sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743 - # via keyring -jaraco-classes==3.3.0 \ - --hash=sha256:10afa92b6743f25c0cf5f37c6bb6e18e2c5bb84a16527ccfc0040ea377e7aaeb \ - --hash=sha256:c063dd08e89217cee02c8d5e5ec560f2c8ce6cdc2fcdc2e68f7b2e5547ed3621 - # via keyring -jeepney==0.8.0 \ - --hash=sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806 \ - --hash=sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755 - # via - # keyring - # secretstorage -jinja2==3.1.2 \ - --hash=sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852 \ - --hash=sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61 - # via gcp-releasetool -keyring==24.2.0 \ - --hash=sha256:4901caaf597bfd3bbd78c9a0c7c4c29fcd8310dab2cffefe749e916b6527acd6 \ - --hash=sha256:ca0746a19ec421219f4d713f848fa297a661a8a8c1504867e55bfb5e09091509 - # via gcp-releasetool -markupsafe==2.1.3 \ - --hash=sha256:05fb21170423db021895e1ea1e1f3ab3adb85d1c2333cbc2310f2a26bc77272e \ - --hash=sha256:0a4e4a1aff6c7ac4cd55792abf96c915634c2b97e3cc1c7129578aa68ebd754e \ - --hash=sha256:10bbfe99883db80bdbaff2dcf681dfc6533a614f700da1287707e8a5d78a8431 \ - --hash=sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686 \ - --hash=sha256:1577735524cdad32f9f694208aa75e422adba74f1baee7551620e43a3141f559 \ - --hash=sha256:1b40069d487e7edb2676d3fbdb2b0829ffa2cd63a2ec26c4938b2d34391b4ecc \ - --hash=sha256:282c2cb35b5b673bbcadb33a585408104df04f14b2d9b01d4c345a3b92861c2c \ - --hash=sha256:2c1b19b3aaacc6e57b7e25710ff571c24d6c3613a45e905b1fde04d691b98ee0 \ - --hash=sha256:2ef12179d3a291be237280175b542c07a36e7f60718296278d8593d21ca937d4 \ - --hash=sha256:338ae27d6b8745585f87218a3f23f1512dbf52c26c28e322dbe54bcede54ccb9 \ - --hash=sha256:3c0fae6c3be832a0a0473ac912810b2877c8cb9d76ca48de1ed31e1c68386575 \ - --hash=sha256:3fd4abcb888d15a94f32b75d8fd18ee162ca0c064f35b11134be77050296d6ba \ - --hash=sha256:42de32b22b6b804f42c5d98be4f7e5e977ecdd9ee9b660fda1a3edf03b11792d \ - --hash=sha256:504b320cd4b7eff6f968eddf81127112db685e81f7e36e75f9f84f0df46041c3 \ - --hash=sha256:525808b8019e36eb524b8c68acdd63a37e75714eac50e988180b169d64480a00 \ - --hash=sha256:56d9f2ecac662ca1611d183feb03a3fa4406469dafe241673d521dd5ae92a155 \ - --hash=sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac \ - --hash=sha256:65c1a9bcdadc6c28eecee2c119465aebff8f7a584dd719facdd9e825ec61ab52 \ - --hash=sha256:68e78619a61ecf91e76aa3e6e8e33fc4894a2bebe93410754bd28fce0a8a4f9f \ - --hash=sha256:69c0f17e9f5a7afdf2cc9fb2d1ce6aabdb3bafb7f38017c0b77862bcec2bbad8 \ - --hash=sha256:6b2b56950d93e41f33b4223ead100ea0fe11f8e6ee5f641eb753ce4b77a7042b \ - --hash=sha256:787003c0ddb00500e49a10f2844fac87aa6ce977b90b0feaaf9de23c22508b24 \ - --hash=sha256:7ef3cb2ebbf91e330e3bb937efada0edd9003683db6b57bb108c4001f37a02ea \ - --hash=sha256:8023faf4e01efadfa183e863fefde0046de576c6f14659e8782065bcece22198 \ - --hash=sha256:8758846a7e80910096950b67071243da3e5a20ed2546e6392603c096778d48e0 \ - --hash=sha256:8afafd99945ead6e075b973fefa56379c5b5c53fd8937dad92c662da5d8fd5ee \ - --hash=sha256:8c41976a29d078bb235fea9b2ecd3da465df42a562910f9022f1a03107bd02be \ - --hash=sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2 \ - --hash=sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707 \ - --hash=sha256:962f82a3086483f5e5f64dbad880d31038b698494799b097bc59c2edf392fce6 \ - --hash=sha256:9dcdfd0eaf283af041973bff14a2e143b8bd64e069f4c383416ecd79a81aab58 \ - --hash=sha256:aa7bd130efab1c280bed0f45501b7c8795f9fdbeb02e965371bbef3523627779 \ - --hash=sha256:ab4a0df41e7c16a1392727727e7998a467472d0ad65f3ad5e6e765015df08636 \ - --hash=sha256:ad9e82fb8f09ade1c3e1b996a6337afac2b8b9e365f926f5a61aacc71adc5b3c \ - --hash=sha256:af598ed32d6ae86f1b747b82783958b1a4ab8f617b06fe68795c7f026abbdcad \ - --hash=sha256:b076b6226fb84157e3f7c971a47ff3a679d837cf338547532ab866c57930dbee \ - --hash=sha256:b7ff0f54cb4ff66dd38bebd335a38e2c22c41a8ee45aa608efc890ac3e3931bc \ - --hash=sha256:bfce63a9e7834b12b87c64d6b155fdd9b3b96191b6bd334bf37db7ff1fe457f2 \ - --hash=sha256:c011a4149cfbcf9f03994ec2edffcb8b1dc2d2aede7ca243746df97a5d41ce48 \ - --hash=sha256:c9c804664ebe8f83a211cace637506669e7890fec1b4195b505c214e50dd4eb7 \ - --hash=sha256:ca379055a47383d02a5400cb0d110cef0a776fc644cda797db0c5696cfd7e18e \ - --hash=sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b \ - --hash=sha256:cd0f502fe016460680cd20aaa5a76d241d6f35a1c3350c474bac1273803893fa \ - --hash=sha256:ceb01949af7121f9fc39f7d27f91be8546f3fb112c608bc4029aef0bab86a2a5 \ - --hash=sha256:d080e0a5eb2529460b30190fcfcc4199bd7f827663f858a226a81bc27beaa97e \ - --hash=sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb \ - --hash=sha256:df0be2b576a7abbf737b1575f048c23fb1d769f267ec4358296f31c2479db8f9 \ - --hash=sha256:e09031c87a1e51556fdcb46e5bd4f59dfb743061cf93c4d6831bf894f125eb57 \ - --hash=sha256:e4dd52d80b8c83fdce44e12478ad2e85c64ea965e75d66dbeafb0a3e77308fcc \ - --hash=sha256:fec21693218efe39aa7f8599346e90c705afa52c5b31ae019b2e57e8f6542bb2 - # via jinja2 -more-itertools==9.1.0 \ - --hash=sha256:cabaa341ad0389ea83c17a94566a53ae4c9d07349861ecb14dc6d0345cf9ac5d \ - --hash=sha256:d2bc7f02446e86a68911e58ded76d6561eea00cddfb2a91e7019bbb586c799f3 - # via jaraco-classes -packaging==23.1 \ - --hash=sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61 \ - --hash=sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f - # via gcp-releasetool -protobuf==3.20.3 \ - --hash=sha256:03038ac1cfbc41aa21f6afcbcd357281d7521b4157926f30ebecc8d4ea59dcb7 \ - --hash=sha256:28545383d61f55b57cf4df63eebd9827754fd2dc25f80c5253f9184235db242c \ - --hash=sha256:2e3427429c9cffebf259491be0af70189607f365c2f41c7c3764af6f337105f2 \ - --hash=sha256:398a9e0c3eaceb34ec1aee71894ca3299605fa8e761544934378bbc6c97de23b \ - --hash=sha256:44246bab5dd4b7fbd3c0c80b6f16686808fab0e4aca819ade6e8d294a29c7050 \ - --hash=sha256:447d43819997825d4e71bf5769d869b968ce96848b6479397e29fc24c4a5dfe9 \ - --hash=sha256:67a3598f0a2dcbc58d02dd1928544e7d88f764b47d4a286202913f0b2801c2e7 \ - --hash=sha256:74480f79a023f90dc6e18febbf7b8bac7508420f2006fabd512013c0c238f454 \ - --hash=sha256:819559cafa1a373b7096a482b504ae8a857c89593cf3a25af743ac9ecbd23480 \ - --hash=sha256:899dc660cd599d7352d6f10d83c95df430a38b410c1b66b407a6b29265d66469 \ - --hash=sha256:8c0c984a1b8fef4086329ff8dd19ac77576b384079247c770f29cc8ce3afa06c \ - --hash=sha256:9aae4406ea63d825636cc11ffb34ad3379335803216ee3a856787bcf5ccc751e \ - --hash=sha256:a7ca6d488aa8ff7f329d4c545b2dbad8ac31464f1d8b1c87ad1346717731e4db \ - --hash=sha256:b6cc7ba72a8850621bfec987cb72623e703b7fe2b9127a161ce61e61558ad905 \ - --hash=sha256:bf01b5720be110540be4286e791db73f84a2b721072a3711efff6c324cdf074b \ - --hash=sha256:c02ce36ec760252242a33967d51c289fd0e1c0e6e5cc9397e2279177716add86 \ - --hash=sha256:d9e4432ff660d67d775c66ac42a67cf2453c27cb4d738fc22cb53b5d84c135d4 \ - --hash=sha256:daa564862dd0d39c00f8086f88700fdbe8bc717e993a21e90711acfed02f2402 \ - --hash=sha256:de78575669dddf6099a8a0f46a27e82a1783c557ccc38ee620ed8cc96d3be7d7 \ - --hash=sha256:e64857f395505ebf3d2569935506ae0dfc4a15cb80dc25261176c784662cdcc4 \ - --hash=sha256:f4bd856d702e5b0d96a00ec6b307b0f51c1982c2bf9c0052cf9019e9a544ba99 \ - --hash=sha256:f4c42102bc82a51108e449cbb32b19b180022941c727bac0cfd50170341f16ee - # via - # gcp-docuploader - # gcp-releasetool - # google-api-core - # googleapis-common-protos -pyasn1==0.5.0 \ - --hash=sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57 \ - --hash=sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde - # via - # pyasn1-modules - # rsa -pyasn1-modules==0.3.0 \ - --hash=sha256:5bd01446b736eb9d31512a30d46c1ac3395d676c6f3cafa4c03eb54b9925631c \ - --hash=sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d - # via google-auth -pycparser==2.21 \ - --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ - --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 - # via cffi -pyjwt==2.7.0 \ - --hash=sha256:ba2b425b15ad5ef12f200dc67dd56af4e26de2331f965c5439994dad075876e1 \ - --hash=sha256:bd6ca4a3c4285c1a2d4349e5a035fdf8fb94e04ccd0fcbe6ba289dae9cc3e074 - # via gcp-releasetool -pyperclip==1.8.2 \ - --hash=sha256:105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57 - # via gcp-releasetool -python-dateutil==2.8.2 \ - --hash=sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86 \ - --hash=sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9 - # via gcp-releasetool -requests==2.31.0 \ - --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ - --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 - # via - # gcp-releasetool - # google-api-core - # google-cloud-storage -rsa==4.9 \ - --hash=sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7 \ - --hash=sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21 - # via google-auth -secretstorage==3.3.3 \ - --hash=sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77 \ - --hash=sha256:f356e6628222568e3af06f2eba8df495efa13b3b63081dafd4f7d9a7b7bc9f99 - # via keyring -six==1.16.0 \ - --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ - --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - # via - # gcp-docuploader - # google-auth - # python-dateutil -typing-extensions==4.7.1 \ - --hash=sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36 \ - --hash=sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2 - # via -r requirements.in -urllib3==1.26.18 \ - --hash=sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07 \ - --hash=sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0 - # via - # google-auth - # requests -wheel==0.40.0 \ - --hash=sha256:cd1196f3faee2b31968d626e1731c94f99cbdb67cf5a46e4f5656cbee7738873 \ - --hash=sha256:d236b20e7cb522daf2390fa84c55eea81c5c30190f90f29ae2ca1ad8355bf247 - # via -r requirements.in -zipp==3.16.1 \ - --hash=sha256:0b37c326d826d5ca35f2b9685cd750292740774ef16190008b00a0227c256fe0 \ - --hash=sha256:857b158da2cbf427b376da1c24fd11faecbac5a4ac7523c3607f8a01f94c2ec0 - # via importlib-metadata - -# WARNING: The following packages were not pinned, but pip requires them to be -# pinned when the requirements file includes hashes and the requirement is not -# satisfied by a package already installed. Consider using the --allow-unsafe flag. -# setuptools diff --git a/owlbot.py b/owlbot.py index 7a89db8ff23f..490004d0bd79 100644 --- a/owlbot.py +++ b/owlbot.py @@ -23,4 +23,6 @@ 'codecov.yaml', 'renovate.json', '.kokoro/build.sh' + '.kokoro/requirements.in', + '.kokoro/requirements.txt' ]) \ No newline at end of file From 16d79364f5845ac82084f97eff082ed07c69c57f Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 31 Jan 2024 11:26:48 -0500 Subject: [PATCH 2697/3441] chore: adjust renovate bot configs to update the sdk-platform-java-config artifact (#1921) (#3107) chore: update renovate bot configs to update the sdk-platform-java-config artifact Source-Link: https://github.com/googleapis/synthtool/commit/d7828c02a5b1aeb8dcf3aa6c55f8fdf407a0156f Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:0d1bb26a1a99ae0456176bf891b8490e9aab424a5cb4e4d301d9703c4dc43b58 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index dc05a72762fe..bf48c82da143 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:a6aa751984f1e905c3ae5a3aac78fc7b68210626ce91487dc7ff4f0a06f010cc -# created: 2024-01-22T14:14:20.913785597Z + digest: sha256:0d1bb26a1a99ae0456176bf891b8490e9aab424a5cb4e4d301d9703c4dc43b58 +# created: 2024-01-30T19:46:55.029238294Z diff --git a/README.md b/README.md index 7a3ab38df118..4705d64a0381 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.30.0') +implementation platform('com.google.cloud:libraries-bom:26.31.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` From 3f8e8d1f9477aed3a14bccf021d7ff982463022c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 2 Feb 2024 17:37:15 +0100 Subject: [PATCH 2698/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.10.0 (#3110) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index df62de7dc278..983e1f56a631 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.9.28 + 0.10.0 test From 5ad778c18130c33e7532d0bd3193053518ca047a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 2 Feb 2024 19:03:19 +0100 Subject: [PATCH 2699/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.24.0 (#3109) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6cc61a0917ae..3e29309562ac 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20240124-2.0.0 - 3.23.0 + 3.24.0 15.0.0 From 2858e96807190d995d9d682e056d90821da11b7a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 2 Feb 2024 19:44:21 +0100 Subject: [PATCH 2700/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.0 (#3111) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 983e1f56a631..3975d227cd57 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.9.28 + 0.10.0 true com.example.bigquery.NativeImageBigquerySample From 29535e7f82c4ce116e363c693a6d84be07ed5f50 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 2 Feb 2024 20:50:39 +0000 Subject: [PATCH 2701/3441] chore(main): release 2.37.1-SNAPSHOT (#3100) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 54c64e8e4125..dbe40210122b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.37.0 + 2.37.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c59d4be0d5f2..7ce9e586abcc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.37.0 + 2.37.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.37.0 + 2.37.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3e29309562ac..c7a3c83f60f2 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.37.0 + 2.37.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.37.0 + 2.37.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2b6035287493..2d22c8ec1842 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.37.0 + 2.37.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index fc69e91467d1..7bb7cb270d7e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.37.0:2.37.0 \ No newline at end of file +google-cloud-bigquery:2.37.0:2.37.1-SNAPSHOT \ No newline at end of file From 01f04059ab119da759536426938c1069906c8be4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 5 Feb 2024 17:11:13 +0100 Subject: [PATCH 2702/3441] deps: update github/codeql-action action to v2.24.0 (#3114) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 460ae63c4894..6aa911edf65b 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@2f93e4319b2f04a2efc38fa7f78bd681bc3f7b2f # v2.23.2 + uses: github/codeql-action/upload-sarif@dc021d495cb77b369e4d9d04a501700fd83b8c51 # v2.24.0 with: sarif_file: results.sarif From d7dec83d288e6b65503d38b7da41f91cb44294d4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 5 Feb 2024 17:12:02 +0100 Subject: [PATCH 2703/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.1.0 (#3117) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c7a3c83f60f2..70b4ed3d7b14 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.0.1 + 3.1.0 pom import From 4b4fdd8ebc324d2bc48a9f78347247f4f6c2e424 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 5 Feb 2024 17:15:00 +0100 Subject: [PATCH 2704/3441] deps: update dependency org.junit.vintage:junit-vintage-engine to v5.10.2 (#3119) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 3975d227cd57..e1e6ad55edbe 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ org.junit.vintage junit-vintage-engine - 5.10.1 + 5.10.2 test From 667ed38645fdc1f32b2b101cf2db95bf8ef1561a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 5 Feb 2024 17:36:15 +0100 Subject: [PATCH 2705/3441] test(deps): update dependency com.google.truth:truth to v1.4.0 (#3115) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.truth:truth](https://togithub.com/google/truth) | `1.3.0` -> `1.4.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.truth:truth/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.truth:truth/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.truth:truth/1.3.0/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.truth:truth/1.3.0/1.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    google/truth (com.google.truth:truth) ### [`v1.4.0`](https://togithub.com/google/truth/releases/tag/v1.4.0): 1.4.0 In this release, our assertions on Java 8 types continue to move from the `Truth8` class to the main `Truth` class. This change should not break compatibility for any supported JDK or Android version, even users who test under old versions of Android without [API desugaring](https://developer.android.com/studio/write/java8-support#library-desugaring). Additionally, we will never break binary compatibility, though some users will have to make changes to their source code in order for it to compile against newer versions. This release is likely to lead to more **build failures** than [1.3.0](https://togithub.com/google/truth/releases/tag/v1.3.0) did. However, those failures should be **straightforward to fix**. #### Example build failure Foo.java:152: error: reference to assertThat is ambiguous assertThat(repo.findFileWithName("foo")).isNull(); ^ both method assertThat(@​org.jspecify.nullness.Nullable Path) in Truth8 and method assertThat(@​org.jspecify.nullness.Nullable Path) in Truth match #### Simplest upgrade strategy (if you can update all your code atomically in the same commit as the Truth upgrade) In the same commit: 1. Upgrade Truth to 1.4.0. 2. Replace `import static com.google.common.truth.Truth8.assertThat;` with `import static com.google.common.truth.Truth.assertThat;`. - If you use Kotlin, replace `import com.google.common.truth.Truth8.assertThat` with `import com.google.common.truth.Truth.assertThat`. 3. Replace `import com.google.common.truth.Truth8;` with `import com.google.common.truth.Truth;`. - again, similarly for Kotlin if needed 4. Replace remaining references to `Truth8` with references to `Truth`. - For example, replace `Truth8.assertThat(optional).isPresent()` with `Truth.assertThat(optional).isPresent()`. If you're feeling lucky, you can try this one-liner for the code updates: ```sh git grep -l Truth8 | xargs perl -pi -e 's/import static com.google.common.truth.Truth8.assertThat;/import static com.google.common.truth.Truth.assertThat;/g; s/import com.google.common.truth.Truth8.assertThat/import com.google.common.truth.Truth.assertThat/g; s/import com.google.common.truth.Truth8/import com.google.common.truth.Truth/g; s/\bTruth8[.]/Truth./g;' ``` After that process, it is possible that you'll still see build errors from ambiguous usages of `assertThat` static imports. If so, you can find a workaround in the section about overload ambiguity in the release notes for [1.3.0](https://togithub.com/google/truth/releases/tag/v1.3.0). Alternatively, you can wait to upgrade until after a future Truth release, which will eliminate the ambiguity by changing the signatures of some `Truth.assertThat` overloads. #### Incremental upgrade strategy If you have a very large repo or you have other reasons to prefer to upgrade incrementally, you can use the approach that we used inside Google. Roughly, that approach was: 1. Make the optional changes discussed in the release notes for [1.3.0](https://togithub.com/google/truth/releases/tag/v1.3.0). 2. For any remaining calls to `Truth8.assertThat`, change them to *avoid* static import. - That is, replace `assertThat(optional).isPresent()` with `Truth8.assertThat(optional).isPresent()`. 3. Upgrade Truth to 1.4.0. 4. Optionally replace references to `Truth8` with references to `Truth` (including restoring static imports if desired), as discussed in section about the simple upgrade strategy above. #### Optional additional changes - If you use `assertWithMessage(...).about(intStreams()).that(...)`, `expect.about(optionalLongs()).that(...)`, or similar, you can remove your call to `about`. This change will never be necessary; it is just a simplification. - This is similar to a previous optional change from [1.3.0](https://togithub.com/google/truth/releases/tag/v1.3.0), except that 1.3.0 solved this problem for `streams` and `optionals`, whereas 1.4.0 solves it for the other `Truth8` types. #### For help Please feel welcome to [open an issue](https://togithub.com/google/truth/issues/new) to report problems or request help. #### Changelog - Added the remaining `Truth8.assertThat` overloads to the main `Truth` class. ([`9be8e77`](https://togithub.com/google/truth/commit/9be8e774c), [`1f81827`](https://togithub.com/google/truth/commit/1f81827f1)) - Added more `that` overloads to make it possible to write type-specific assertions when using the remaining Java 8 types. ([`7c65fc6`](https://togithub.com/google/truth/commit/7c65fc611))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 70b4ed3d7b14..d852b7960c88 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.truth truth - 1.3.0 + 1.4.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 917e48741f28..af05d99d3954 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -81,7 +81,7 @@ com.google.truth truth - 1.3.0 + 1.4.0 test diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index e1e6ad55edbe..a8872d9ce09c 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -62,7 +62,7 @@ com.google.truth truth - 1.3.0 + 1.4.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2d22c8ec1842..51fef3507b21 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -79,7 +79,7 @@ com.google.truth truth - 1.3.0 + 1.4.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0c5231406610..bdd619a7bf93 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -97,7 +97,7 @@ com.google.truth truth - 1.3.0 + 1.4.0 test From 3abdc70890c3f5c396055d7d34fc4fe18aef7371 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 6 Feb 2024 17:00:08 +0100 Subject: [PATCH 2706/3441] deps: update actions/upload-artifact action to v4.3.1 (#3121) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 6aa911edf65b..448676928843 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 with: name: SARIF file path: results.sarif From 2156f023b4ab95bc7ec669545b5709317555fdac Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Tue, 6 Feb 2024 11:12:25 -0500 Subject: [PATCH 2707/3441] Feat: Add queryId to TableResult (#3106) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Feat: Add queryId to TableResult * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Feat: Add queryId to TableResult * Feat: Add IT for TableResult with JobId and QueryId. * Feat: Add IT for TableResult with JobId and QueryId. --------- Co-authored-by: Owl Bot --- .../clirr-ignored-differences.xml | 13 ++++ .../google/cloud/bigquery/BigQueryImpl.java | 8 ++- .../cloud/bigquery/EmptyTableResult.java | 2 +- .../google/cloud/bigquery/TableResult.java | 19 +++++- .../com/google/cloud/bigquery/JobTest.java | 2 +- .../cloud/bigquery/SerializationTest.java | 2 +- .../cloud/bigquery/TableResultTest.java | 4 +- .../com/google/cloud/bigquery/TableTest.java | 9 +-- .../cloud/bigquery/it/ITBigQueryTest.java | 59 ++++++++++++++++--- 9 files changed, 95 insertions(+), 23 deletions(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 9c69fd6a68be..75441b537c10 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -14,6 +14,19 @@ com.google.api.services.bigquery.model.GetQueryResultsResponse getQueryResultsWithRowLimit(java.lang.String, java.lang.String, java.lang.String, java.lang.Integer) getQueryResultsWithRowLimit is just used by ConnectionImpl at the moment so it should be fine to update the signature instead of writing an overloaded method + + 7004 + com/google/cloud/bigquery/TableResult* + *TableResult(*) + It should be fine to update TableResult constructors since it is used to return results to the user and users should not directly construct TableResult objects + + + 7005 + com/google/cloud/bigquery/TableResult* + *TableResult(*) + *TableResult(*) + It should be fine to update TableResult constructors since it is used to return results to the user and users should not directly construct TableResult objects + 7013 com/google/cloud/bigquery/ExternalTableDefinition* diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index dcbcd19b048b..30fd24f9314e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1156,7 +1156,7 @@ public TableResult listTableData( public TableResult listTableData(TableId tableId, Schema schema, TableDataListOption... options) { Tuple, Long> data = listTableData(tableId, schema, getOptions(), optionMap(options)); - return new TableResult(schema, data.y(), data.x()); + return new TableResult(schema, data.y(), data.x(), null); } private static Tuple, Long> listTableData( @@ -1410,7 +1410,8 @@ public com.google.api.services.bigquery.model.QueryResponse call() { // cache first page of result transformTableData(results.getRows(), schema)), // Return the JobID of the successful job - jobId); + jobId, + results.getQueryId()); } // only 1 page of result return new TableResult( @@ -1421,7 +1422,8 @@ public com.google.api.services.bigquery.model.QueryResponse call() { null, transformTableData(results.getRows(), schema)), // Return the JobID of the successful job - results.getJobReference() != null ? JobId.fromPb(results.getJobReference()) : null); + results.getJobReference() != null ? JobId.fromPb(results.getJobReference()) : null, + results.getQueryId()); } @Override diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java index 7cb5e1932fa3..a5c6c47857b1 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java @@ -27,6 +27,6 @@ public class EmptyTableResult extends TableResult { /** An empty {@code TableResult} to avoid making API requests to unlistable tables. */ @InternalApi("Exposed for testing") public EmptyTableResult(@Nullable Schema schema) { - super(schema, 0, new PageImpl(null, "", null)); + super(schema, 0, new PageImpl(null, "", null), null); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java index 325e1fd0bd76..1631d3bd5c10 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java @@ -37,6 +37,8 @@ public class TableResult implements Page, Serializable { private final Page pageNoSchema; @Nullable private JobId jobId = null; + @Nullable private final String queryId; + // package-private so job id is not set outside the package. void setJobId(@Nullable JobId jobId) { this.jobId = jobId; @@ -46,24 +48,35 @@ public JobId getJobId() { return jobId; } + public String getQueryId() { + return queryId; + } + /** * If {@code schema} is non-null, {@code TableResult} adds the schema to {@code FieldValueList}s * when iterating through them. {@code pageNoSchema} must not be null. */ @InternalApi("Exposed for testing") - public TableResult(Schema schema, long totalRows, Page pageNoSchema) { + public TableResult( + Schema schema, long totalRows, Page pageNoSchema, String queryId) { this.schema = schema; this.totalRows = totalRows; this.pageNoSchema = checkNotNull(pageNoSchema); + this.queryId = queryId; } @InternalApi("Exposed for testing") public TableResult( - Schema schema, long totalRows, Page pageNoSchema, JobId jobId) { + Schema schema, + long totalRows, + Page pageNoSchema, + JobId jobId, + String queryId) { this.schema = schema; this.totalRows = totalRows; this.pageNoSchema = checkNotNull(pageNoSchema); this.jobId = jobId; + this.queryId = queryId; } /** Returns the schema of the results. Null if the schema is not supplied. */ @@ -92,7 +105,7 @@ public String getNextPageToken() { @Override public TableResult getNextPage() { if (pageNoSchema.hasNextPage()) { - return new TableResult(schema, totalRows, pageNoSchema.getNextPage()); + return new TableResult(schema, totalRows, pageNoSchema.getNextPage(), queryId); } return null; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index b4b17b7d9659..08c4137d6923 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -309,7 +309,7 @@ public void testWaitForAndGetQueryResults() throws InterruptedException { Job completedJob = expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); Page singlePage = Pages.empty(); - TableResult result = new TableResult(Schema.of(), 1, singlePage); + TableResult result = new TableResult(Schema.of(), 1, singlePage, null); QueryResponse completedQuery = QueryResponse.newBuilder() .setCompleted(true) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java index 0b0cd0207a70..d31b282e72ee 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java @@ -206,7 +206,7 @@ public class SerializationTest extends BaseSerializationTest { private static final FieldValue FIELD_VALUE = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "value"); private static final TableResult TABLE_RESULT = - new TableResult(Schema.of(), 0L, new PageImpl(null, "", ImmutableList.of())); + new TableResult(Schema.of(), 0L, new PageImpl(null, "", ImmutableList.of()), null); private static final BigQuery BIGQUERY = BigQueryOptions.newBuilder().setProjectId("p1").build().getService(); private static final Dataset DATASET = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java index 35a167af12e1..89b7d68371d5 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java @@ -53,7 +53,7 @@ private static FieldValueList newFieldValueList(String s) { @Test public void testNullSchema() { - TableResult result = new TableResult(null, 3, INNER_PAGE_0); + TableResult result = new TableResult(null, 3, INNER_PAGE_0, null); assertThat(result.getSchema()).isNull(); assertThat(result.hasNextPage()).isTrue(); assertThat(result.getNextPageToken()).isNotNull(); @@ -75,7 +75,7 @@ public void testNullSchema() { @Test public void testSchema() { - TableResult result = new TableResult(SCHEMA, 3, INNER_PAGE_0); + TableResult result = new TableResult(SCHEMA, 3, INNER_PAGE_0, null); assertThat(result.getSchema()).isEqualTo(SCHEMA); assertThat(result.hasNextPage()).isTrue(); assertThat(result.getNextPageToken()).isNotNull(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java index b93ed770b8f5..9aa195331419 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java @@ -248,9 +248,10 @@ public void testInsertComplete() { @Test public void testList() { Page page = new PageImpl<>(null, "c", ROWS); - when(bigquery.listTableData(TABLE_ID1)).thenReturn(new TableResult(null, ROWS.size(), page)); + when(bigquery.listTableData(TABLE_ID1)) + .thenReturn(new TableResult(null, ROWS.size(), page, null)); when(bigquery.listTableData(TABLE_ID1, SCHEMA)) - .thenReturn(new TableResult(SCHEMA, ROWS.size(), page)); + .thenReturn(new TableResult(SCHEMA, ROWS.size(), page, null)); Page dataPage = table.list(); assertThat(dataPage.getValues()).containsExactlyElementsIn(ROWS).inOrder(); dataPage = table.list(SCHEMA); @@ -263,9 +264,9 @@ public void testList() { public void testListWithOptions() { Page page = new PageImpl<>(null, "c", ROWS); when(bigquery.listTableData(TABLE_ID1, BigQuery.TableDataListOption.pageSize(10L))) - .thenReturn(new TableResult(null, ROWS.size(), page)); + .thenReturn(new TableResult(null, ROWS.size(), page, null)); when(bigquery.listTableData(TABLE_ID1, SCHEMA, BigQuery.TableDataListOption.pageSize(10L))) - .thenReturn(new TableResult(SCHEMA, ROWS.size(), page)); + .thenReturn(new TableResult(SCHEMA, ROWS.size(), page, null)); Page dataPage = table.list(BigQuery.TableDataListOption.pageSize(10L)); assertThat(dataPage.getValues()).containsExactlyElementsIn(ROWS).inOrder(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index ba30ea0d431d..8b5a45913f14 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -6312,21 +6312,29 @@ public void testStatelessQueries() throws InterruptedException { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); BigQuery bigQuery = bigqueryHelper.getOptions().getService(); - // simulate setting the QUERY_PREVIEW_ENABLED environment variable + // Simulate setting the QUERY_PREVIEW_ENABLED environment variable. bigQuery.getOptions().setQueryPreviewEnabled("TRUE"); - assertNull(executeSimpleQuery(bigQuery).getJobId()); + TableResult tableResult = executeSimpleQuery(bigQuery); + assertNotNull(tableResult.getQueryId()); + assertNull(tableResult.getJobId()); - // the flag should be case-insensitive + // The flag should be case-insensitive. bigQuery.getOptions().setQueryPreviewEnabled("tRuE"); - assertNull(executeSimpleQuery(bigQuery).getJobId()); + tableResult = executeSimpleQuery(bigQuery); + assertNotNull(tableResult.getQueryId()); + assertNull(tableResult.getJobId()); - // any other values won't enable optional job creation mode + // Any other values won't enable optional job creation mode. bigQuery.getOptions().setQueryPreviewEnabled("test_value"); - assertNotNull(executeSimpleQuery(bigQuery).getJobId()); + tableResult = executeSimpleQuery(bigQuery); + assertNotNull(tableResult.getQueryId()); + assertNotNull(tableResult.getJobId()); - // reset the flag + // Reset the flag. bigQuery.getOptions().setQueryPreviewEnabled(null); - assertNotNull(executeSimpleQuery(bigQuery).getJobId()); + tableResult = executeSimpleQuery(bigQuery); + assertNotNull(tableResult.getQueryId()); + assertNotNull(tableResult.getJobId()); } private TableResult executeSimpleQuery(BigQuery bigQuery) throws InterruptedException { @@ -6336,6 +6344,41 @@ private TableResult executeSimpleQuery(BigQuery bigQuery) throws InterruptedExce return result; } + @Test + public void testTableResultJobIdAndQueryId() throws InterruptedException { + // For stateless queries, jobId and queryId are populated based on the following criteria: + // 1. For stateless queries, then queryId is populated. + // 2. For queries that fails the requirements to be stateless, then jobId is populated and + // queryId is not. + // 3. For explicitly created jobs, then jobId is populated and queryId is not populated. + + // Test scenario 1. + // Create local BigQuery for test scenario 1 to not contaminate global test parameters. + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); + BigQuery bigQuery = bigqueryHelper.getOptions().getService(); + // Simulate setting the QUERY_PREVIEW_ENABLED environment variable. + bigQuery.getOptions().setQueryPreviewEnabled("TRUE"); + String query = "SELECT 1 as one"; + QueryJobConfiguration configStateless = QueryJobConfiguration.newBuilder(query).build(); + TableResult result = bigQuery.query(configStateless); + assertNull(result.getJobId()); + assertNotNull(result.getQueryId()); + + // Test scenario 2 by failing stateless check by setting job timeout. + QueryJobConfiguration configQueryWithJob = + QueryJobConfiguration.newBuilder(query).setJobTimeoutMs(1L).build(); + result = bigQuery.query(configQueryWithJob); + assertNotNull(result.getJobId()); + assertNull(result.getQueryId()); + + // Test scenario 3. + QueryJobConfiguration configWithJob = QueryJobConfiguration.newBuilder(query).build(); + Job job = bigQuery.create(JobInfo.of(JobId.of(), configWithJob)); + result = job.getQueryResults(); + assertNotNull(result.getJobId()); + assertNull(result.getQueryId()); + } + @Test public void testStatelessQueriesWithLocation() throws Exception { // This test validates BigQueryOption location is used for stateless query by verifying that the From 5a82c854b6549c82c905eba4905378b59cc88af4 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Tue, 6 Feb 2024 12:16:09 -0500 Subject: [PATCH 2708/3441] Feat: Update universe domain exception error code/message (#3113) * Feat: Update universe domain exception error code/message * Feat: Update universe domain exception error code/message --- google-cloud-bigquery/pom.xml | 4 ++++ .../cloud/bigquery/spi/v2/HttpBigQueryRpc.java | 7 ++++++- .../google/cloud/bigquery/it/ITBigQueryTest.java | 13 +++++++++++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7ce9e586abcc..2bd74f8d34aa 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -50,6 +50,10 @@ org.checkerframework checker-qual + + com.google.auth + google-auth-library-credentials + com.google.auth google-auth-library-oauth2-http diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 841a790ee660..dca129bfb5c4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -19,6 +19,7 @@ import static java.net.HttpURLConnection.HTTP_CREATED; import static java.net.HttpURLConnection.HTTP_NOT_FOUND; import static java.net.HttpURLConnection.HTTP_OK; +import static java.net.HttpURLConnection.HTTP_UNAUTHORIZED; import com.google.api.client.http.ByteArrayContent; import com.google.api.client.http.GenericUrl; @@ -116,7 +117,11 @@ private static BigQueryException translate(IOException exception) { private void validateRPC() throws BigQueryException, IOException { if (!this.options.hasValidUniverseDomain()) { - throw new BigQueryException(BigQueryException.UNKNOWN_CODE, "Invalid universe domain"); + String errorMessage = + String.format( + "The configured universe domain %s does not match the universe domain found in the credentials %s. If you haven't configured the universe domain explicitly, `googleapis.com` is the default.", + this.options.getUniverseDomain(), this.options.getCredentials().getUniverseDomain()); + throw new BigQueryException(HTTP_UNAUTHORIZED, errorMessage); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 8b5a45913f14..7652e65a5831 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -19,6 +19,7 @@ import static com.google.cloud.bigquery.JobStatus.State.DONE; import static com.google.common.truth.Truth.assertThat; import static java.lang.System.currentTimeMillis; +import static java.net.HttpURLConnection.HTTP_UNAUTHORIZED; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -6445,8 +6446,12 @@ public void testUniverseDomainWithInvalidUniverseDomain() { bigQuery.listDatasets("bigquery-public-data"); fail("RPCs to invalid universe domain should fail"); } catch (BigQueryException e) { + assertEquals(e.getCode(), HTTP_UNAUTHORIZED); assertNotNull(e.getMessage()); - assertThat((e.getMessage().contains("Invalid universe domain"))).isTrue(); + assertThat( + (e.getMessage() + .contains("does not match the universe domain found in the credentials"))) + .isTrue(); } } @@ -6466,8 +6471,12 @@ public void testInvalidUniverseDomainWithMismatchCredentials() { bigQuery.listDatasets("bigquery-public-data"); fail("RPCs to invalid universe domain should fail"); } catch (BigQueryException e) { + assertEquals(e.getCode(), HTTP_UNAUTHORIZED); assertNotNull(e.getMessage()); - assertThat((e.getMessage().contains("Invalid universe domain"))).isTrue(); + assertThat( + (e.getMessage() + .contains("does not match the universe domain found in the credentials"))) + .isTrue(); } } From 36f9ebac25e2ccff9267603ea16d115ba5ce7976 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 07:24:15 -0500 Subject: [PATCH 2709/3441] chore(main): release 2.37.1 (#3116) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 20 ++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 27 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ea4a0271a3e8..1a961cc3fe11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## [2.37.1](https://github.com/googleapis/java-bigquery/compare/v2.37.0...v2.37.1) (2024-02-06) + + +### Features + +* Add queryId to TableResult ([#3106](https://github.com/googleapis/java-bigquery/issues/3106)) ([2156f02](https://github.com/googleapis/java-bigquery/commit/2156f023b4ab95bc7ec669545b5709317555fdac)) +* Update universe domain exception error code/message ([#3113](https://github.com/googleapis/java-bigquery/issues/3113)) ([5a82c85](https://github.com/googleapis/java-bigquery/commit/5a82c854b6549c82c905eba4905378b59cc88af4)) + + +### Dependencies + +* Update actions/upload-artifact action to v4.3.1 ([#3121](https://github.com/googleapis/java-bigquery/issues/3121)) ([3abdc70](https://github.com/googleapis/java-bigquery/commit/3abdc70890c3f5c396055d7d34fc4fe18aef7371)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240124-2.0.0 ([#3104](https://github.com/googleapis/java-bigquery/issues/3104)) ([6eff68e](https://github.com/googleapis/java-bigquery/commit/6eff68eb8c55162ca1cd2e915f3f60a87f584b35)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.24.0 ([#3109](https://github.com/googleapis/java-bigquery/issues/3109)) ([5ad778c](https://github.com/googleapis/java-bigquery/commit/5ad778c18130c33e7532d0bd3193053518ca047a)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.10.0 ([#3110](https://github.com/googleapis/java-bigquery/issues/3110)) ([3f8e8d1](https://github.com/googleapis/java-bigquery/commit/3f8e8d1f9477aed3a14bccf021d7ff982463022c)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.0 ([#3111](https://github.com/googleapis/java-bigquery/issues/3111)) ([2858e96](https://github.com/googleapis/java-bigquery/commit/2858e96807190d995d9d682e056d90821da11b7a)) +* Update dependency org.junit.vintage:junit-vintage-engine to v5.10.2 ([#3119](https://github.com/googleapis/java-bigquery/issues/3119)) ([4b4fdd8](https://github.com/googleapis/java-bigquery/commit/4b4fdd8ebc324d2bc48a9f78347247f4f6c2e424)) +* Update github/codeql-action action to v2.23.2 ([#3102](https://github.com/googleapis/java-bigquery/issues/3102)) ([2cc545e](https://github.com/googleapis/java-bigquery/commit/2cc545ec1c0267fd9c33f3f1566f29d9a30f514e)) +* Update github/codeql-action action to v2.24.0 ([#3114](https://github.com/googleapis/java-bigquery/issues/3114)) ([01f0405](https://github.com/googleapis/java-bigquery/commit/01f04059ab119da759536426938c1069906c8be4)) + ## [2.37.0](https://github.com/googleapis/java-bigquery/compare/v2.36.0...v2.37.0) (2024-01-25) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index dbe40210122b..1cd278cec400 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.37.1-SNAPSHOT + 2.37.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2bd74f8d34aa..27294847af8e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.37.1-SNAPSHOT + 2.37.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.37.1-SNAPSHOT + 2.37.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d852b7960c88..22b2ce927683 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.37.1-SNAPSHOT + 2.37.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.37.1-SNAPSHOT + 2.37.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 51fef3507b21..46a3041c27e1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.37.1-SNAPSHOT + 2.37.1 diff --git a/versions.txt b/versions.txt index 7bb7cb270d7e..0eda01854386 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.37.0:2.37.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.37.1:2.37.1 \ No newline at end of file From 88bdbe5d02ce8cfc79045042c4d1ba77664fbd59 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 10:31:31 -0500 Subject: [PATCH 2710/3441] chore(main): release 2.37.2-SNAPSHOT (#3122) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1cd278cec400..62b803d03807 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.37.1 + 2.37.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 27294847af8e..fe6b2d78681a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.37.1 + 2.37.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.37.1 + 2.37.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 22b2ce927683..63c7377a96be 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.37.1 + 2.37.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.37.1 + 2.37.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 46a3041c27e1..18f2ad1c9cf1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.37.1 + 2.37.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0eda01854386..760c94f7dd4f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.37.1:2.37.1 \ No newline at end of file +google-cloud-bigquery:2.37.1:2.37.2-SNAPSHOT \ No newline at end of file From 74b8989739c653fdbd61599d9af4d566fc38be44 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 8 Feb 2024 16:50:39 +0100 Subject: [PATCH 2711/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.33.0 (#3124) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.33.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 +++--- pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 4705d64a0381..f26b3e5899b4 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.37.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.37.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.37.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.37.1" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.37.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.37.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/pom.xml b/pom.xml index 63c7377a96be..a8e8c64cf48e 100644 --- a/pom.xml +++ b/pom.xml @@ -155,7 +155,7 @@ com.google.cloud google-cloud-storage - 2.32.1 + 2.33.0 test From 2276faa8cab91f3629edeb8b0eb459c7860a5438 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 8 Feb 2024 17:14:15 +0100 Subject: [PATCH 2712/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.37.1 (#3123) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.37.0` -> `2.37.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigquery/2.37.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigquery/2.37.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigquery/2.37.0/2.37.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigquery/2.37.0/2.37.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery (com.google.cloud:google-cloud-bigquery) ### [`v2.37.1`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#2371-2024-02-06) [Compare Source](https://togithub.com/googleapis/java-bigquery/compare/v2.37.0...v2.37.1) ##### Features - Add queryId to TableResult ([#​3106](https://togithub.com/googleapis/java-bigquery/issues/3106)) ([2156f02](https://togithub.com/googleapis/java-bigquery/commit/2156f023b4ab95bc7ec669545b5709317555fdac)) - Update universe domain exception error code/message ([#​3113](https://togithub.com/googleapis/java-bigquery/issues/3113)) ([5a82c85](https://togithub.com/googleapis/java-bigquery/commit/5a82c854b6549c82c905eba4905378b59cc88af4)) ##### Dependencies - Update actions/upload-artifact action to v4.3.1 ([#​3121](https://togithub.com/googleapis/java-bigquery/issues/3121)) ([3abdc70](https://togithub.com/googleapis/java-bigquery/commit/3abdc70890c3f5c396055d7d34fc4fe18aef7371)) - Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240124-2.0.0 ([#​3104](https://togithub.com/googleapis/java-bigquery/issues/3104)) ([6eff68e](https://togithub.com/googleapis/java-bigquery/commit/6eff68eb8c55162ca1cd2e915f3f60a87f584b35)) - Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.24.0 ([#​3109](https://togithub.com/googleapis/java-bigquery/issues/3109)) ([5ad778c](https://togithub.com/googleapis/java-bigquery/commit/5ad778c18130c33e7532d0bd3193053518ca047a)) - Update dependency org.graalvm.buildtools:junit-platform-native to v0.10.0 ([#​3110](https://togithub.com/googleapis/java-bigquery/issues/3110)) ([3f8e8d1](https://togithub.com/googleapis/java-bigquery/commit/3f8e8d1f9477aed3a14bccf021d7ff982463022c)) - Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.0 ([#​3111](https://togithub.com/googleapis/java-bigquery/issues/3111)) ([2858e96](https://togithub.com/googleapis/java-bigquery/commit/2858e96807190d995d9d682e056d90821da11b7a)) - Update dependency org.junit.vintage:junit-vintage-engine to v5.10.2 ([#​3119](https://togithub.com/googleapis/java-bigquery/issues/3119)) ([4b4fdd8](https://togithub.com/googleapis/java-bigquery/commit/4b4fdd8ebc324d2bc48a9f78347247f4f6c2e424)) - Update github/codeql-action action to v2.23.2 ([#​3102](https://togithub.com/googleapis/java-bigquery/issues/3102)) ([2cc545e](https://togithub.com/googleapis/java-bigquery/commit/2cc545ec1c0267fd9c33f3f1566f29d9a30f514e)) - Update github/codeql-action action to v2.24.0 ([#​3114](https://togithub.com/googleapis/java-bigquery/issues/3114)) ([01f0405](https://togithub.com/googleapis/java-bigquery/commit/01f04059ab119da759536426938c1069906c8be4))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f26b3e5899b4..5be562a383f9 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.37.0 + 2.37.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index af05d99d3954..feb865daa4b6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.37.0 + 2.37.1 From 5e2841988b223bc8ac775ed2b4d38e2c26b2815b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 9 Feb 2024 13:29:43 +0100 Subject: [PATCH 2713/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240203-2.0.0 (#3126) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a8e8c64cf48e..90f4785e7b3f 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240124-2.0.0 + v2-rev20240203-2.0.0 3.24.0 15.0.0
    From e3d32269a73c32de6f13fc9e753e741a9aa49dba Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 Feb 2024 13:36:30 +0100 Subject: [PATCH 2714/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.37.0 (#3131) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 90f4785e7b3f..deb304c63696 100644 --- a/pom.xml +++ b/pom.xml @@ -161,7 +161,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.36.0 + 2.37.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index feb865daa4b6..fdc172e59df7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.36.0 + 2.37.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 18f2ad1c9cf1..e8b82cc0410a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.36.0 + 2.37.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index bdd619a7bf93..6471a600c7ea 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.36.0 + 2.37.0 test From 9ab79ec14d661e79f152568ff667bef3482315e0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 Feb 2024 13:46:47 +0100 Subject: [PATCH 2715/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.41.0 (#3135) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index deb304c63696..7060a1bfa109 100644 --- a/pom.xml +++ b/pom.xml @@ -97,7 +97,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.40.0 + 1.41.0 pom import From 3a1efc2ede4eb1de5e3cf7703dc6bdef51b263f1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 Feb 2024 19:51:18 +0100 Subject: [PATCH 2716/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.37.0 (#3132) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7060a1bfa109..fa70c5d635dd 100644 --- a/pom.xml +++ b/pom.xml @@ -167,7 +167,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.36.0 + 2.37.0 test From e57d6290494748c343c5bb1be750c7444bad1543 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Feb 2024 14:22:01 +0100 Subject: [PATCH 2717/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.33.0 (#3136) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fdc172e59df7..89b2df133cbe 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.32.0 + 2.33.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e8b82cc0410a..7fdcb6c73eaf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.32.0 + 2.33.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6471a600c7ea..722f3660ad39 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.32.0 + 2.33.0 test From 4b3a42991836c3bb23972616cb4d20756dc83488 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Feb 2024 18:50:06 +0100 Subject: [PATCH 2718/3441] deps: update github/codeql-action action to v2.24.1 (#3139) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.24.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 448676928843..6987a764b7c0 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@dc021d495cb77b369e4d9d04a501700fd83b8c51 # v2.24.0 + uses: github/codeql-action/upload-sarif@1a077f8f6c71a45340c26ca0b877e00459e5f443 # v2.24.1 with: sarif_file: results.sarif diff --git a/README.md b/README.md index 5be562a383f9..75a55d78375b 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.31.0') +implementation platform('com.google.cloud:libraries-bom:26.32.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` From e61a7bc5735822308db3baab327474b6319e4d93 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 14 Feb 2024 16:19:51 +0100 Subject: [PATCH 2719/3441] deps: update dependency com.google.cloud:google-cloud-shared-dependencies to v3.25.0 (#3140) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fa70c5d635dd..69e133554fa1 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20240203-2.0.0 - 3.24.0 + 3.25.0 15.0.0
    From 386cd28b172f3a92c7af5dead8713301abea7026 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Wed, 14 Feb 2024 13:34:32 -0500 Subject: [PATCH 2720/3441] chore: adding google-cloud-bigquery-bom (#3137) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: adding google-cloud-bigquery-bom * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- google-cloud-bigquery-bom/pom.xml | 83 +++++++++++++++++++++++++++++++ pom.xml | 1 + 2 files changed, 84 insertions(+) create mode 100644 google-cloud-bigquery-bom/pom.xml diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml new file mode 100644 index 000000000000..5e41fa1784f4 --- /dev/null +++ b/google-cloud-bigquery-bom/pom.xml @@ -0,0 +1,83 @@ + + + 4.0.0 + com.google.cloud + google-cloud-bigquery-bom + 2.37.0 + pom + + com.google.cloud + google-cloud-shared-config + 1.7.1 + + + + Google Cloud BigQuery BOM + https://github.com/googleapis/java-bigquery + + BOM for Google Cloud BigQuery + + + + Google LLC + + + + + suztomo + Tomo Suzuki + suztomo@google.com + Google LLC + + Developer + + + + + + scm:git:https://github.com/googleapis/java-bigquery.git + scm:git:git@github.com:googleapis/java-bigquery.git + https://github.com/googleapis/java-bigquery + + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + + + com.google.cloud + google-cloud-bigquery + 2.37.0 + + + + + + + + org.apache.maven.plugins + maven-checkstyle-plugin + + true + + + + + + org.apache.maven.plugins + maven-site-plugin + + + false + + + + + diff --git a/pom.xml b/pom.xml index 69e133554fa1..530ffe70e413 100644 --- a/pom.xml +++ b/pom.xml @@ -175,6 +175,7 @@ google-cloud-bigquery + google-cloud-bigquery-bom From 35490371f26fdac94a38ccd38a5b9f3c423b5175 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 14 Feb 2024 14:54:09 -0500 Subject: [PATCH 2721/3441] chore(main): release 2.37.2 (#3127) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 11 +++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 18 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a961cc3fe11..d543ab3d05a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## [2.37.2](https://github.com/googleapis/java-bigquery/compare/v2.37.1...v2.37.2) (2024-02-14) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.37.0 ([#3132](https://github.com/googleapis/java-bigquery/issues/3132)) ([3a1efc2](https://github.com/googleapis/java-bigquery/commit/3a1efc2ede4eb1de5e3cf7703dc6bdef51b263f1)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240203-2.0.0 ([#3126](https://github.com/googleapis/java-bigquery/issues/3126)) ([5e28419](https://github.com/googleapis/java-bigquery/commit/5e2841988b223bc8ac775ed2b4d38e2c26b2815b)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.41.0 ([#3135](https://github.com/googleapis/java-bigquery/issues/3135)) ([9ab79ec](https://github.com/googleapis/java-bigquery/commit/9ab79ec14d661e79f152568ff667bef3482315e0)) +* Update dependency com.google.cloud:google-cloud-shared-dependencies to v3.25.0 ([#3140](https://github.com/googleapis/java-bigquery/issues/3140)) ([e61a7bc](https://github.com/googleapis/java-bigquery/commit/e61a7bc5735822308db3baab327474b6319e4d93)) +* Update github/codeql-action action to v2.24.1 ([#3139](https://github.com/googleapis/java-bigquery/issues/3139)) ([4b3a429](https://github.com/googleapis/java-bigquery/commit/4b3a42991836c3bb23972616cb4d20756dc83488)) + ## [2.37.1](https://github.com/googleapis/java-bigquery/compare/v2.37.0...v2.37.1) (2024-02-06) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 62b803d03807..8a8a2fecd0c9 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.37.2-SNAPSHOT + 2.37.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index fe6b2d78681a..f29852bd403c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.37.2-SNAPSHOT + 2.37.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.37.2-SNAPSHOT + 2.37.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 530ffe70e413..2c7fbe9e9b27 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.37.2-SNAPSHOT + 2.37.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -111,7 +111,7 @@ com.google.cloud google-cloud-bigquery - 2.37.2-SNAPSHOT + 2.37.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7fdcb6c73eaf..65a20714c9cc 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.37.2-SNAPSHOT + 2.37.2 diff --git a/versions.txt b/versions.txt index 760c94f7dd4f..6f4cd476e03b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.37.1:2.37.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.37.2:2.37.2 \ No newline at end of file From e1947c15e081ab69edd1e348217ffdb8d1cea816 Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Wed, 14 Feb 2024 20:30:10 +0000 Subject: [PATCH 2722/3441] chore: use sdk-platform-java-config to consolidate build configs (#3144) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: use sdk-platform-java-config to consolidate build configs * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * exclude .kokoro/presubmit from owlbot --------- Co-authored-by: Owl Bot --- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- owlbot.py | 2 ++ pom.xml | 7 +++---- renovate.json | 12 ++++++++++++ 7 files changed, 21 insertions(+), 8 deletions(-) diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 9eea05badaeb..28a65e0feafe 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.25.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 5150fb29249b..d9c57fee121a 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.25.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index fb5bb678ffcc..890878fef008 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.25.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 59efee340c53..8e8cded782d0 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.25.0" } env_vars: { diff --git a/owlbot.py b/owlbot.py index 490004d0bd79..a2540ce52e8d 100644 --- a/owlbot.py +++ b/owlbot.py @@ -20,6 +20,8 @@ '.kokoro/nightly/samples.cfg', '.kokoro/nightly/integration.cfg', '.kokoro/presubmit/samples.cfg', + '.kokoro/presubmit/graalvm-native.cfg', + '.kokoro/presubmit/graalvm-native-17.cfg', 'codecov.yaml', 'renovate.json', '.kokoro/build.sh' diff --git a/pom.xml b/pom.xml index 2c7fbe9e9b27..5ef5db67338c 100644 --- a/pom.xml +++ b/pom.xml @@ -13,8 +13,8 @@ com.google.cloud - google-cloud-shared-config - 1.7.1 + sdk-platform-java-config + 3.25.0 @@ -55,7 +55,6 @@ github google-cloud-bigquery-parent v2-rev20240203-2.0.0 - 3.25.0 15.0.0 @@ -64,7 +63,7 @@ com.google.cloud google-cloud-shared-dependencies - ${google.cloud.shared-dependencies.version} + ${google-cloud-shared-dependencies.version} pom import diff --git a/renovate.json b/renovate.json index 274ec500cdf3..0b609db9a121 100644 --- a/renovate.json +++ b/renovate.json @@ -11,6 +11,18 @@ ":autodetectPinVersions" ], "ignorePaths": [".kokoro/requirements.txt"], + "customManagers": [ + { + "customType": "regex", + "fileMatch": [ + "^.kokoro/continuous/graalvm-native.*.cfg$", + "^.kokoro/presubmit/graalvm-native.*.cfg$" + ], + "matchStrings": ["value: \"gcr.io/cloud-devrel-public-resources/graalvm.*:(?.*?)\""], + "depNameTemplate": "com.google.cloud:sdk-platform-java-config", + "datasourceTemplate": "maven" + } + ], "packageRules": [ { "packagePatterns": [ From f3f387b2265d527f3b5bf567c1eaf7ecdad6e096 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Wed, 14 Feb 2024 16:17:23 -0500 Subject: [PATCH 2723/3441] feat: add MetadataCacheStatistics to Job QueryStatistics (#3133) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Feat: Add MetadataCacheStatistics to Job QueryStatistics * Add integration test * Add integration test * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Update documentation. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 +- .../google/cloud/bigquery/JobStatistics.java | 23 ++++ .../cloud/bigquery/MetadataCacheStats.java | 76 +++++++++++ .../bigquery/TableMetadataCacheUsage.java | 118 ++++++++++++++++++ .../src/test/java/MetadataCacheStatsTest.java | 60 +++++++++ .../cloud/bigquery/JobStatisticsTest.java | 11 ++ .../bigquery/TableMetadataCacheUsageTest.java | 70 +++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 42 +++++++ 8 files changed, 403 insertions(+), 3 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MetadataCacheStats.java create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableMetadataCacheUsage.java create mode 100644 google-cloud-bigquery/src/test/java/MetadataCacheStatsTest.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableMetadataCacheUsageTest.java diff --git a/README.md b/README.md index 75a55d78375b..f1ebabf70670 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.37.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.37.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.37.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.37.2" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.37.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.37.2 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 1cbf22fa790f..5979afbca74a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -358,6 +358,7 @@ public static class QueryStatistics extends JobStatistics { private final List timeline; private final Schema schema; private final SearchStats searchStats; + private final MetadataCacheStats metadataCacheStats; private final List queryParameters; /** @@ -444,6 +445,8 @@ static final class Builder extends JobStatistics.Builder queryParameters; private SearchStats searchStats; + private MetadataCacheStats metadataCacheStats; + private Builder() {} private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsPb) { @@ -493,6 +496,10 @@ private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsP if (statisticsPb.getQuery().getSearchStatistics() != null) { this.searchStats = SearchStats.fromPb(statisticsPb.getQuery().getSearchStatistics()); } + if (statisticsPb.getQuery().getMetadataCacheStatistics() != null) { + this.metadataCacheStats = + MetadataCacheStats.fromPb(statisticsPb.getQuery().getMetadataCacheStatistics()); + } if (statisticsPb.getQuery().getDmlStats() != null) { this.dmlStats = DmlStats.fromPb(statisticsPb.getQuery().getDmlStats()); } @@ -599,6 +606,11 @@ Builder setSearchStats(SearchStats searchStats) { return self(); } + Builder setMetadataCacheStats(MetadataCacheStats metadataCacheStats) { + this.metadataCacheStats = metadataCacheStats; + return self(); + } + Builder setQueryParameters(List queryParameters) { this.queryParameters = queryParameters; return self(); @@ -631,6 +643,7 @@ private QueryStatistics(Builder builder) { this.timeline = builder.timeline; this.schema = builder.schema; this.searchStats = builder.searchStats; + this.metadataCacheStats = builder.metadataCacheStats; this.queryParameters = builder.queryParameters; } @@ -761,6 +774,11 @@ public SearchStats getSearchStats() { return searchStats; } + /** Statistics for metadata caching in BigLake tables. */ + public MetadataCacheStats getMetadataCacheStats() { + return metadataCacheStats; + } + /** * Standard SQL only: Returns a list of undeclared query parameters detected during a dry run * validation. @@ -781,6 +799,7 @@ ToStringHelper toStringHelper() { .add("timeline", timeline) .add("schema", schema) .add("searchStats", searchStats) + .add("metadataCacheStats", metadataCacheStats) .add("queryParameters", queryParameters); } @@ -804,6 +823,7 @@ public final int hashCode() { queryPlan, schema, searchStats, + metadataCacheStats, queryParameters); } @@ -849,6 +869,9 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { if (searchStats != null) { queryStatisticsPb.setSearchStatistics(searchStats.toPb()); } + if (metadataCacheStats != null) { + queryStatisticsPb.setMetadataCacheStatistics(metadataCacheStats.toPb()); + } if (queryParameters != null) { queryStatisticsPb.setUndeclaredQueryParameters(queryParameters); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MetadataCacheStats.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MetadataCacheStats.java new file mode 100644 index 000000000000..482571d5f04d --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MetadataCacheStats.java @@ -0,0 +1,76 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.api.services.bigquery.model.MetadataCacheStatistics; +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import java.util.List; +import java.util.stream.Collectors; +import javax.annotation.Nullable; + +/** + * Represents statistics for metadata caching in BigLake tables. + * + * @see BigLake Tables + */ +@AutoValue +public abstract class MetadataCacheStats implements Serializable { + + private static final long serialVersionUID = 1L; + + @AutoValue.Builder + public abstract static class Builder { + /** Sets the free form human-readable reason metadata caching was unused for the job. */ + public abstract MetadataCacheStats.Builder setTableMetadataCacheUsage( + List tableMetadataCacheUsage); + + /** Creates a @code MetadataCacheStats} object. */ + public abstract MetadataCacheStats build(); + } + + public abstract Builder toBuilder(); + + public static Builder newBuilder() { + return new AutoValue_MetadataCacheStats.Builder(); + } + + @Nullable + public abstract List getTableMetadataCacheUsage(); + + MetadataCacheStatistics toPb() { + MetadataCacheStatistics metadataCacheStatistics = new MetadataCacheStatistics(); + if (getTableMetadataCacheUsage() != null) { + metadataCacheStatistics.setTableMetadataCacheUsage( + getTableMetadataCacheUsage().stream() + .map(TableMetadataCacheUsage::toPb) + .collect(Collectors.toList())); + } + return metadataCacheStatistics; + } + + static MetadataCacheStats fromPb(MetadataCacheStatistics metadataCacheStatistics) { + Builder builder = newBuilder(); + if (metadataCacheStatistics.getTableMetadataCacheUsage() != null) { + builder.setTableMetadataCacheUsage( + metadataCacheStatistics.getTableMetadataCacheUsage().stream() + .map(TableMetadataCacheUsage::fromPb) + .collect(Collectors.toList())); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableMetadataCacheUsage.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableMetadataCacheUsage.java new file mode 100644 index 000000000000..89ad4f966d74 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableMetadataCacheUsage.java @@ -0,0 +1,118 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import java.io.Serializable; +import javax.annotation.Nullable; + +/** Represents Table level detail on the usage of metadata caching. */ +@AutoValue +public abstract class TableMetadataCacheUsage implements Serializable { + + private static final long serialVersionUID = 1L; + + /** Reason for not using metadata caching for the table. */ + public enum UnusedReason { + /** Unused reasons not specified. */ + UNUSED_REASON_UNSPECIFIED, + + /** Metadata cache was outside the table's maxStaleness. */ + EXCEEDED_MAX_STALENESS, + + /** + * Metadata caching feature is not enabled. Update BigLake tables to enable the metadata + * caching. + */ + METADATA_CACHING_NOT_ENABLED, + + /** Other unknown reason. */ + OTHER_REASON + } + + @AutoValue.Builder + public abstract static class Builder { + /** Sets the free form human-readable reason metadata caching was unused for the job. */ + public abstract TableMetadataCacheUsage.Builder setExplanation(String explanation); + + /** Sets the metadata caching eligible table referenced in the query. */ + public abstract TableMetadataCacheUsage.Builder setTableReference(TableId tableReference); + + /** Sets the table type. */ + public abstract TableMetadataCacheUsage.Builder setTableType(String tableType); + + /** Sets reason for not using metadata caching for the table. */ + public abstract TableMetadataCacheUsage.Builder setUnusedReason(UnusedReason unusedReason); + + /** Creates a @code TableMetadataCacheUsage} object. */ + public abstract TableMetadataCacheUsage build(); + } + + public abstract Builder toBuilder(); + + public static Builder newBuilder() { + return new AutoValue_TableMetadataCacheUsage.Builder(); + } + + @Nullable + public abstract String getExplanation(); + + @Nullable + public abstract TableId getTableReference(); + + @Nullable + public abstract String getTableType(); + + @Nullable + public abstract UnusedReason getUnusedReason(); + + com.google.api.services.bigquery.model.TableMetadataCacheUsage toPb() { + com.google.api.services.bigquery.model.TableMetadataCacheUsage tableMetadataCacheUsage = + new com.google.api.services.bigquery.model.TableMetadataCacheUsage(); + if (getExplanation() != null) { + tableMetadataCacheUsage.setExplanation(getExplanation()); + } + if (getTableReference() != null) { + tableMetadataCacheUsage.setTableReference(getTableReference().toPb()); + } + if (getTableType() != null) { + tableMetadataCacheUsage.setTableType(getTableType()); + } + if (getUnusedReason() != null) { + tableMetadataCacheUsage.setUnusedReason(getUnusedReason().toString()); + } + return tableMetadataCacheUsage; + } + + static TableMetadataCacheUsage fromPb( + com.google.api.services.bigquery.model.TableMetadataCacheUsage tableMetadataCacheUsage) { + Builder builder = newBuilder(); + if (tableMetadataCacheUsage.getExplanation() != null) { + builder.setExplanation(tableMetadataCacheUsage.getExplanation()); + } + if (tableMetadataCacheUsage.getTableReference() != null) { + builder.setTableReference(TableId.fromPb(tableMetadataCacheUsage.getTableReference())); + } + if (tableMetadataCacheUsage.getTableType() != null) { + builder.setTableType(tableMetadataCacheUsage.getTableType()); + } + if (tableMetadataCacheUsage.getUnusedReason() != null) { + builder.setUnusedReason(UnusedReason.valueOf(tableMetadataCacheUsage.getUnusedReason())); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/test/java/MetadataCacheStatsTest.java b/google-cloud-bigquery/src/test/java/MetadataCacheStatsTest.java new file mode 100644 index 000000000000..d1cfa86e9ebe --- /dev/null +++ b/google-cloud-bigquery/src/test/java/MetadataCacheStatsTest.java @@ -0,0 +1,60 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.api.services.bigquery.model.MetadataCacheStatistics; +import com.google.common.collect.ImmutableList; +import com.google.common.truth.Truth; +import java.util.List; +import java.util.stream.Collectors; +import org.junit.Test; + +public class MetadataCacheStatsTest { + private static List + TABLE_METADATA_CACHE_USAGE_PB_LIST = + ImmutableList.of( + new com.google.api.services.bigquery.model.TableMetadataCacheUsage() + .setExplanation("test explanation")); + + private static final MetadataCacheStats METADATA_CACHE_STATS = + MetadataCacheStats.newBuilder() + .setTableMetadataCacheUsage( + TABLE_METADATA_CACHE_USAGE_PB_LIST.stream() + .map(TableMetadataCacheUsage::fromPb) + .collect(Collectors.toList())) + .build(); + + private static final MetadataCacheStatistics METADATA_CACHE_STATISTICS_PB = + new MetadataCacheStatistics().setTableMetadataCacheUsage(TABLE_METADATA_CACHE_USAGE_PB_LIST); + + @Test + public void testToPbAndFromPb() { + assertEquals(METADATA_CACHE_STATISTICS_PB, METADATA_CACHE_STATS.toPb()); + compareMetadataCacheStats( + METADATA_CACHE_STATS, MetadataCacheStats.fromPb(METADATA_CACHE_STATISTICS_PB)); + } + + private void compareMetadataCacheStats(MetadataCacheStats expected, MetadataCacheStats value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + Truth.assertThat( + expected.getTableMetadataCacheUsage().containsAll(value.getTableMetadataCacheUsage())); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index f32832b594e8..5502b84720be 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -163,6 +163,14 @@ public class JobStatisticsTest { private static final String UNUSED_INDEX_USAGE_MODE = "UNUSED"; private static final SearchStats SEARCH_STATS = SearchStats.newBuilder().setIndexUsageMode(UNUSED_INDEX_USAGE_MODE).build(); + + private static final MetadataCacheStats METADATA_CACHE_STATS = + MetadataCacheStats.newBuilder() + .setTableMetadataCacheUsage( + ImmutableList.of( + TableMetadataCacheUsage.newBuilder().setExplanation("test explanation").build())) + .build(); + private static final QueryStatistics QUERY_STATISTICS = QueryStatistics.newBuilder() .setCreationTimestamp(CREATION_TIME) @@ -187,6 +195,7 @@ public class JobStatisticsTest { .setTimeline(TIMELINE) .setSchema(SCHEMA) .setSearchStats(SEARCH_STATS) + .setMetadataCacheStats(METADATA_CACHE_STATS) .build(); private static final QueryStatistics QUERY_STATISTICS_INCOMPLETE = QueryStatistics.newBuilder() @@ -196,6 +205,7 @@ public class JobStatisticsTest { .setBillingTier(BILLING_TIER) .setCacheHit(CACHE_HIT) .setSearchStats(SEARCH_STATS) + .setMetadataCacheStats(METADATA_CACHE_STATS) .build(); private static final ScriptStackFrame STATEMENT_STACK_FRAME = ScriptStackFrame.newBuilder() @@ -417,6 +427,7 @@ private void compareQueryStatistics(QueryStatistics expected, QueryStatistics va assertEquals(expected.getSchema(), value.getSchema()); assertEquals( expected.getSearchStats().getIndexUsageMode(), value.getSearchStats().getIndexUsageMode()); + assertEquals(expected.getMetadataCacheStats(), value.getMetadataCacheStats()); assertEquals(expected.getStatementType(), value.getStatementType()); assertEquals(expected.getTimeline(), value.getTimeline()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableMetadataCacheUsageTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableMetadataCacheUsageTest.java new file mode 100644 index 000000000000..8f141fa596ce --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableMetadataCacheUsageTest.java @@ -0,0 +1,70 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; + +import com.google.api.services.bigquery.model.TableReference; +import com.google.cloud.bigquery.TableMetadataCacheUsage.UnusedReason; +import org.junit.Test; + +public class TableMetadataCacheUsageTest { + + private static final String EXPLANATION = "test explanation"; + + private static final String TABLE_TYPE = "test tableType"; + + private static final UnusedReason UNUSED_REASON = UnusedReason.UNUSED_REASON_UNSPECIFIED; + private static final TableReference TABLE_REFERENCE = + new TableReference() + .setTableId("test tableId") + .setProjectId("test projectId") + .setDatasetId("test dataset"); + private static final TableMetadataCacheUsage TABLE_METADATA_CACHE_USAGE = + TableMetadataCacheUsage.newBuilder() + .setExplanation(EXPLANATION) + .setTableType(TABLE_TYPE) + .setUnusedReason(UNUSED_REASON) + .setTableReference(TableId.fromPb(TABLE_REFERENCE)) + .build(); + + private static final com.google.api.services.bigquery.model.TableMetadataCacheUsage + TABLE_METADATA_CACHE_USAGE_PB = + new com.google.api.services.bigquery.model.TableMetadataCacheUsage() + .setTableReference(TABLE_REFERENCE) + .setExplanation(EXPLANATION) + .setTableType(TABLE_TYPE) + .setUnusedReason(UNUSED_REASON.toString()); + + @Test + public void testToPbAndFromPb() { + assertEquals(TABLE_METADATA_CACHE_USAGE_PB, TABLE_METADATA_CACHE_USAGE.toPb()); + compareTableMetadataCacheUsage( + TABLE_METADATA_CACHE_USAGE, TableMetadataCacheUsage.fromPb(TABLE_METADATA_CACHE_USAGE_PB)); + } + + private void compareTableMetadataCacheUsage( + TableMetadataCacheUsage expected, TableMetadataCacheUsage value) { + assertEquals(expected, value); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + assertEquals(expected.getExplanation(), value.getExplanation()); + assertEquals(expected.getTableType(), value.getTableType()); + assertEquals(expected.getUnusedReason(), value.getUnusedReason()); + assertEquals(expected.getTableReference(), value.getTableReference()); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 7652e65a5831..3fd084a63849 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -126,6 +126,7 @@ import com.google.cloud.bigquery.TableDefinition; import com.google.cloud.bigquery.TableId; import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.TableMetadataCacheUsage.UnusedReason; import com.google.cloud.bigquery.TableResult; import com.google.cloud.bigquery.TimePartitioning; import com.google.cloud.bigquery.TimePartitioning.Type; @@ -6500,6 +6501,47 @@ public void testUniverseDomainWithMatchingDomain() { } } + @Test + public void testExternalTableMetadataCachingNotEnable() throws InterruptedException { + String tableName = "test_metadata_cache_not_enable"; + TableId tableId = TableId.of(DATASET, tableName); + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.of( + "gs://" + BUCKET + "/" + JSON_LOAD_FILE, TABLE_SCHEMA, FormatOptions.json()); + TableInfo tableInfo = TableInfo.of(tableId, externalTableDefinition); + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertNotNull(remoteTable); + assertTrue(remoteTable.getDefinition() instanceof ExternalTableDefinition); + assertEquals(createdTable.getTableId(), remoteTable.getTableId()); + assertEquals(TABLE_SCHEMA, remoteTable.getDefinition().getSchema()); + + String query = String.format("SELECT * FROM %s.%s", DATASET, tableName); + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).build(); + + Job remoteJob = bigquery.create(JobInfo.of(config)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + + Job queryJob = bigquery.getJob(remoteJob.getJobId()); + JobStatistics.QueryStatistics statistics = queryJob.getStatistics(); + assertNotNull(statistics); + assertNotNull(statistics.getMetadataCacheStats()); + assertThat(statistics.getMetadataCacheStats().getTableMetadataCacheUsage().size()).isEqualTo(1); + assertThat( + statistics + .getMetadataCacheStats() + .getTableMetadataCacheUsage() + .get(0) + .getUnusedReason()) + .isEqualTo(UnusedReason.METADATA_CACHING_NOT_ENABLED); + + assertTrue(remoteTable.delete()); + } + static GoogleCredentials loadCredentials(String credentialFile) { try { InputStream keyStream = new ByteArrayInputStream(credentialFile.getBytes()); From b358bbcc047ad75b0847b7110920eccee490e17a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 15 Feb 2024 02:30:48 +0100 Subject: [PATCH 2724/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.37.2 (#3143) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.37.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f1ebabf70670..f32db6e6618d 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.37.1 + 2.37.2 ``` diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 5e41fa1784f4..6ccf7c912267 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.37.0 + 2.37.2
    diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 89b2df133cbe..981ef01899bb 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.37.1 + 2.37.2 From ea03dbabedf230db500ce8f6198dac40cc6dd94a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 15 Feb 2024 19:05:18 +0100 Subject: [PATCH 2725/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.34.0 (#3146) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5ef5db67338c..b1c33425ddfb 100644 --- a/pom.xml +++ b/pom.xml @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.33.0 + 2.34.0 test From a0a7b0186ae47fcfcf75fe4f35cce50044c6926c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 15 Feb 2024 19:06:14 +0100 Subject: [PATCH 2726/3441] deps: update github/codeql-action action to v2.24.3 (#3148) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 6987a764b7c0..d5706e48e86e 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@1a077f8f6c71a45340c26ca0b877e00459e5f443 # v2.24.1 + uses: github/codeql-action/upload-sarif@4a8f20f6b9b5114f354129a1e2f391d75bfd640a # v2.24.3 with: sarif_file: results.sarif From 042fcf0aca46d349103211c3d04ae4b49868933c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 15 Feb 2024 19:11:12 +0100 Subject: [PATCH 2727/3441] deps: update github/codeql-action action to v2.24.3 (#3150) From 16eabce3e5bb561b7aa8b017be77631971b7170a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 21 Feb 2024 17:34:25 +0100 Subject: [PATCH 2728/3441] test(deps): update dependency com.google.truth:truth to v1.4.1 (#3151) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index b1c33425ddfb..8e55f006f1c5 100644 --- a/pom.xml +++ b/pom.xml @@ -136,7 +136,7 @@ com.google.truth truth - 1.4.0 + 1.4.1 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 981ef01899bb..efd9e50c7ecf 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -81,7 +81,7 @@ com.google.truth truth - 1.4.0 + 1.4.1 test diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index a8872d9ce09c..054077ec37a5 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -62,7 +62,7 @@ com.google.truth truth - 1.4.0 + 1.4.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 65a20714c9cc..8a23b99ee10a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -79,7 +79,7 @@ com.google.truth truth - 1.4.0 + 1.4.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 722f3660ad39..d5510a7a25ab 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -97,7 +97,7 @@ com.google.truth truth - 1.4.0 + 1.4.1 test From c57748dedfeecabd33c32db06cad342dd5966380 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 21 Feb 2024 17:35:31 +0100 Subject: [PATCH 2729/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.2.0 (#3149) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8e55f006f1c5..ccfc85bbadc9 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.1.0 + 3.2.0 pom import From e5d688872e4c125a68ed6f666bffd0a41efc3f30 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 21 Feb 2024 17:36:03 +0100 Subject: [PATCH 2730/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240211-2.0.0 (#3152) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ccfc85bbadc9..56e7303e8899 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240203-2.0.0 + v2-rev20240211-2.0.0 15.0.0
    From 69db2535ce0fff3048e8cb3a4767d0ee3900b29c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 21 Feb 2024 17:36:40 +0100 Subject: [PATCH 2731/3441] build(deps): update dependency org.apache.maven.plugins:maven-shade-plugin to v3.5.2 (#3155) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8a8a2fecd0c9..af42c7446c3b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -42,7 +42,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.1 + 3.5.2 package From 68046440b8b921e79b44150972e4b316984bf296 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 18:06:15 +0000 Subject: [PATCH 2732/3441] chore(main): release 2.37.3-SNAPSHOT (#3147) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index af42c7446c3b..3eca364f1062 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.37.2 + 2.37.3-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 6ccf7c912267..8b1813426159 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.37.0 + 2.37.3-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.37.2 + 2.37.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f29852bd403c..15be2ae8e3dc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.37.2 + 2.37.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.37.2 + 2.37.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 56e7303e8899..88c5e1435ccc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.37.2 + 2.37.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.37.2 + 2.37.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8a23b99ee10a..f789501c938f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.37.2 + 2.37.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 6f4cd476e03b..f429a3ad8bfe 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.37.2:2.37.2 \ No newline at end of file +google-cloud-bigquery:2.37.2:2.37.3-SNAPSHOT \ No newline at end of file From 678b6ce9e3b770193817d7c053bac6d5468364f5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 22 Feb 2024 15:55:16 +0100 Subject: [PATCH 2733/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.38.0 (#3158) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.38.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index f32db6e6618d..977432d0129d 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.32.0') +implementation platform('com.google.cloud:libraries-bom:26.33.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/pom.xml b/pom.xml index 88c5e1435ccc..4fbdd82f6203 100644 --- a/pom.xml +++ b/pom.xml @@ -160,7 +160,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.37.0 + 2.38.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index efd9e50c7ecf..7352fd1a3d3c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.37.0 + 2.38.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f789501c938f..bbf8c5c4a3d8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.37.0 + 2.38.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d5510a7a25ab..cb740eff441a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.37.0 + 2.38.0 test From 253f6c90f3f2b8a75405e132bf41001a2fdcd97b Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 22 Feb 2024 10:12:26 -0500 Subject: [PATCH 2734/3441] chore: Refactor TableResult using builder pattern (#3130) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: Refactor TableResult using builder pattern This also removed the redundant EmptyTableResult. These changes are fine as TableResult and EmptyTableResult are internal API only. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Remove typo comment in TableResult * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../clirr-ignored-differences.xml | 25 ++++ .../google/cloud/bigquery/BigQueryImpl.java | 51 ++++---- .../cloud/bigquery/EmptyTableResult.java | 32 ----- .../java/com/google/cloud/bigquery/Job.java | 14 +- .../google/cloud/bigquery/TableResult.java | 120 ++++++++---------- .../com/google/cloud/bigquery/JobTest.java | 7 +- .../cloud/bigquery/SerializationTest.java | 6 +- .../cloud/bigquery/TableResultTest.java | 10 +- .../com/google/cloud/bigquery/TableTest.java | 26 +++- 9 files changed, 159 insertions(+), 132 deletions(-) delete mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 75441b537c10..abf827b48eb9 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -2,6 +2,17 @@ + + 3005 + com/google/cloud/bigquery/TableResult* + TableResult is an internal API and it should be fine to update + + + 7002 + com/google/cloud/bigquery/TableResult* + *TableResult(*) + TableResult is an internal API and it should be fine to update + 7004 com/google/cloud/bigquery/spi/v2/BigQueryRpc @@ -47,6 +58,16 @@ com/google/cloud/bigquery/TableInfo* *ResourceTags(*) + + 7013 + com/google/cloud/bigquery/TableResult* + *getPageNoSchema(*) + + + 7013 + com/google/cloud/bigquery/TableResult* + *toBuilder(*) + 7012 com/google/cloud/bigquery/Connection @@ -142,4 +163,8 @@ com/google/cloud/bigquery/StandardTableDefinition* *BigLakeConfiguration(*) + + 8001 + com/google/cloud/bigquery/EmptyTableResult* + \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 30fd24f9314e..a0e61e23b010 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1156,7 +1156,11 @@ public TableResult listTableData( public TableResult listTableData(TableId tableId, Schema schema, TableDataListOption... options) { Tuple, Long> data = listTableData(tableId, schema, getOptions(), optionMap(options)); - return new TableResult(schema, data.y(), data.x(), null); + return TableResult.newBuilder() + .setSchema(schema) + .setTotalRows(data.y()) + .setPageNoSchema(data.x()) + .build(); } private static Tuple, Long> listTableData( @@ -1400,30 +1404,33 @@ public com.google.api.services.bigquery.model.QueryResponse call() { if (results.getPageToken() != null) { JobId jobId = JobId.fromPb(results.getJobReference()); String cursor = results.getPageToken(); - return new TableResult( - schema, - numRows, - new PageImpl<>( - // fetch next pages of results - new QueryPageFetcher(jobId, schema, getOptions(), cursor, optionMap(options)), - cursor, - // cache first page of result - transformTableData(results.getRows(), schema)), - // Return the JobID of the successful job - jobId, - results.getQueryId()); + return TableResult.newBuilder() + .setSchema(schema) + .setTotalRows(numRows) + .setPageNoSchema( + new PageImpl<>( + // fetch next pages of results + new QueryPageFetcher(jobId, schema, getOptions(), cursor, optionMap(options)), + cursor, + transformTableData(results.getRows(), schema))) + .setJobId(jobId) + .setQueryId(results.getQueryId()) + .build(); } // only 1 page of result - return new TableResult( - schema, - numRows, - new PageImpl<>( - new TableDataPageFetcher(null, schema, getOptions(), null, optionMap(options)), - null, - transformTableData(results.getRows(), schema)), + return TableResult.newBuilder() + .setSchema(schema) + .setTotalRows(numRows) + .setPageNoSchema( + new PageImpl<>( + new TableDataPageFetcher(null, schema, getOptions(), null, optionMap(options)), + null, + transformTableData(results.getRows(), schema))) // Return the JobID of the successful job - results.getJobReference() != null ? JobId.fromPb(results.getJobReference()) : null, - results.getQueryId()); + .setJobId( + results.getJobReference() != null ? JobId.fromPb(results.getJobReference()) : null) + .setQueryId(results.getQueryId()) + .build(); } @Override diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java deleted file mode 100644 index a5c6c47857b1..000000000000 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EmptyTableResult.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2018 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.cloud.bigquery; - -import com.google.api.core.InternalApi; -import com.google.cloud.PageImpl; -import javax.annotation.Nullable; - -public class EmptyTableResult extends TableResult { - - private static final long serialVersionUID = -4831062717210349819L; - - /** An empty {@code TableResult} to avoid making API requests to unlistable tables. */ - @InternalApi("Exposed for testing") - public EmptyTableResult(@Nullable Schema schema) { - super(schema, 0, new PageImpl(null, "", null), null); - } -} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index db9b4b173671..d23e4ea52a28 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -21,6 +21,7 @@ import com.google.api.gax.retrying.BasicResultRetryAlgorithm; import com.google.api.gax.retrying.RetrySettings; import com.google.api.gax.retrying.TimedAttemptSettings; +import com.google.cloud.PageImpl; import com.google.cloud.RetryHelper; import com.google.cloud.RetryOption; import com.google.cloud.bigquery.BigQuery.JobOption; @@ -311,8 +312,13 @@ public TableResult getQueryResults(QueryResultsOption... options) // Listing table data might fail, such as with CREATE VIEW queries. // Avoid a tabledata.list API request by returning an empty TableResult. if (response.getTotalRows() == 0) { - TableResult emptyTableResult = new EmptyTableResult(response.getSchema()); - emptyTableResult.setJobId(job.getJobId()); + TableResult emptyTableResult = + TableResult.newBuilder() + .setSchema(response.getSchema()) + .setJobId(job.getJobId()) + .setTotalRows(0L) + .setPageNoSchema(new PageImpl(null, "", null)) + .build(); return emptyTableResult; } @@ -323,8 +329,8 @@ public TableResult getQueryResults(QueryResultsOption... options) TableResult tableResult = bigquery.listTableData( table, response.getSchema(), listOptions.toArray(new TableDataListOption[0])); - tableResult.setJobId(job.getJobId()); - return tableResult; + TableResult tableResultWithJobId = tableResult.toBuilder().setJobId(job.getJobId()).build(); + return tableResultWithJobId; } private QueryResponse waitForQueryResults( diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java index 1631d3bd5c10..203a91faba51 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java @@ -16,10 +16,9 @@ package com.google.cloud.bigquery; -import static com.google.common.base.Preconditions.checkNotNull; - import com.google.api.core.InternalApi; import com.google.api.gax.paging.Page; +import com.google.auto.value.AutoValue; import com.google.common.base.Function; import com.google.common.base.MoreObjects; import com.google.common.collect.Iterables; @@ -28,100 +27,87 @@ import java.util.Objects; import javax.annotation.Nullable; -public class TableResult implements Page, Serializable { +@InternalApi +@AutoValue +public abstract class TableResult implements Page, Serializable { - private static final long serialVersionUID = -4831062717210349819L; + private static final long serialVersionUID = 1L; - @Nullable private final Schema schema; - private final long totalRows; - private final Page pageNoSchema; - @Nullable private JobId jobId = null; + @AutoValue.Builder + public abstract static class Builder { + public abstract TableResult.Builder setSchema(Schema schema); - @Nullable private final String queryId; + /** + * Sets the total number of rows in the complete result set, which can be more than the number + * of rows in the first page of results returned by {@link #getValues()}. + */ + public abstract TableResult.Builder setTotalRows(Long totalRows); - // package-private so job id is not set outside the package. - void setJobId(@Nullable JobId jobId) { - this.jobId = jobId; - } + public abstract TableResult.Builder setJobId(JobId jobId); - public JobId getJobId() { - return jobId; - } + public abstract TableResult.Builder setPageNoSchema(Page pageNoSchema); - public String getQueryId() { - return queryId; - } + public abstract TableResult.Builder setQueryId(String queryId); - /** - * If {@code schema} is non-null, {@code TableResult} adds the schema to {@code FieldValueList}s - * when iterating through them. {@code pageNoSchema} must not be null. - */ - @InternalApi("Exposed for testing") - public TableResult( - Schema schema, long totalRows, Page pageNoSchema, String queryId) { - this.schema = schema; - this.totalRows = totalRows; - this.pageNoSchema = checkNotNull(pageNoSchema); - this.queryId = queryId; + /** Creates a @code TableResult} object. */ + public abstract TableResult build(); } - @InternalApi("Exposed for testing") - public TableResult( - Schema schema, - long totalRows, - Page pageNoSchema, - JobId jobId, - String queryId) { - this.schema = schema; - this.totalRows = totalRows; - this.pageNoSchema = checkNotNull(pageNoSchema); - this.jobId = jobId; - this.queryId = queryId; + public abstract Builder toBuilder(); + + public static Builder newBuilder() { + return new AutoValue_TableResult.Builder(); } /** Returns the schema of the results. Null if the schema is not supplied. */ - public Schema getSchema() { - return schema; - } + @Nullable + public abstract Schema getSchema(); - /** - * Returns the total number of rows in the complete result set, which can be more than the number - * of rows in the first page of results returned by {@link #getValues()}. - */ - public long getTotalRows() { - return totalRows; - } + public abstract long getTotalRows(); + + public abstract Page getPageNoSchema(); + + @Nullable + public abstract JobId getJobId(); + + @Nullable + public abstract String getQueryId(); @Override public boolean hasNextPage() { - return pageNoSchema.hasNextPage(); + return getPageNoSchema().hasNextPage(); } @Override public String getNextPageToken() { - return pageNoSchema.getNextPageToken(); + return getPageNoSchema().getNextPageToken(); } @Override public TableResult getNextPage() { - if (pageNoSchema.hasNextPage()) { - return new TableResult(schema, totalRows, pageNoSchema.getNextPage(), queryId); + if (getPageNoSchema().hasNextPage()) { + return TableResult.newBuilder() + .setSchema(getSchema()) + .setTotalRows(getTotalRows()) + .setPageNoSchema(getPageNoSchema().getNextPage()) + .setQueryId(getQueryId()) + .build(); } return null; } @Override public Iterable iterateAll() { - return addSchema(pageNoSchema.iterateAll()); + return addSchema(getPageNoSchema().iterateAll()); } @Override public Iterable getValues() { - return addSchema(pageNoSchema.getValues()); + return addSchema(getPageNoSchema().getValues()); } private Iterable addSchema(Iterable iter) { - if (schema == null) { + if (getSchema() == null) { return iter; } return Iterables.transform( @@ -129,7 +115,7 @@ private Iterable addSchema(Iterable iter) { new Function() { @Override public FieldValueList apply(FieldValueList list) { - return list.withSchema(schema.getFields()); + return list.withSchema(getSchema().getFields()); } }); } @@ -138,15 +124,16 @@ public FieldValueList apply(FieldValueList list) { public String toString() { return MoreObjects.toStringHelper(this) .add("rows", getValues()) - .add("schema", schema) - .add("totalRows", totalRows) + .add("schema", getSchema()) + .add("totalRows", getTotalRows()) .add("cursor", getNextPageToken()) + .add("queryId", getQueryId()) .toString(); } @Override public final int hashCode() { - return Objects.hash(pageNoSchema, schema, totalRows); + return Objects.hash(getPageNoSchema(), getSchema(), getTotalRows(), getQueryId()); } @Override @@ -154,13 +141,14 @@ public final boolean equals(Object obj) { if (obj == this) { return true; } - if (obj == null || !obj.getClass().equals(TableResult.class)) { + if (obj == null || !obj.getClass().equals(AutoValue_TableResult.class)) { return false; } TableResult response = (TableResult) obj; return Objects.equals(getNextPageToken(), response.getNextPageToken()) && Iterators.elementsEqual(getValues().iterator(), response.getValues().iterator()) - && Objects.equals(schema, response.schema) - && totalRows == response.totalRows; + && Objects.equals(getSchema(), response.getSchema()) + && getTotalRows() == response.getTotalRows() + && getQueryId() == response.getQueryId(); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index 08c4137d6923..d10203444d0b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -309,7 +309,12 @@ public void testWaitForAndGetQueryResults() throws InterruptedException { Job completedJob = expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); Page singlePage = Pages.empty(); - TableResult result = new TableResult(Schema.of(), 1, singlePage, null); + TableResult result = + TableResult.newBuilder() + .setSchema(Schema.of()) + .setTotalRows(1L) + .setPageNoSchema(singlePage) + .build(); QueryResponse completedQuery = QueryResponse.newBuilder() .setCompleted(true) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java index d31b282e72ee..e91a243949a8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java @@ -206,7 +206,11 @@ public class SerializationTest extends BaseSerializationTest { private static final FieldValue FIELD_VALUE = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "value"); private static final TableResult TABLE_RESULT = - new TableResult(Schema.of(), 0L, new PageImpl(null, "", ImmutableList.of()), null); + TableResult.newBuilder() + .setSchema(Schema.of()) + .setTotalRows(0L) + .setPageNoSchema(new PageImpl(null, "", ImmutableList.of())) + .build(); private static final BigQuery BIGQUERY = BigQueryOptions.newBuilder().setProjectId("p1").build().getService(); private static final Dataset DATASET = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java index 89b7d68371d5..71f9e35da520 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java @@ -53,7 +53,8 @@ private static FieldValueList newFieldValueList(String s) { @Test public void testNullSchema() { - TableResult result = new TableResult(null, 3, INNER_PAGE_0, null); + TableResult result = + TableResult.newBuilder().setTotalRows(3L).setPageNoSchema(INNER_PAGE_0).build(); assertThat(result.getSchema()).isNull(); assertThat(result.hasNextPage()).isTrue(); assertThat(result.getNextPageToken()).isNotNull(); @@ -75,7 +76,12 @@ public void testNullSchema() { @Test public void testSchema() { - TableResult result = new TableResult(SCHEMA, 3, INNER_PAGE_0, null); + TableResult result = + TableResult.newBuilder() + .setSchema(SCHEMA) + .setTotalRows(3L) + .setPageNoSchema(INNER_PAGE_0) + .build(); assertThat(result.getSchema()).isEqualTo(SCHEMA); assertThat(result.hasNextPage()).isTrue(); assertThat(result.getNextPageToken()).isNotNull(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java index 9aa195331419..6e99b701c15d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java @@ -249,9 +249,18 @@ public void testInsertComplete() { public void testList() { Page page = new PageImpl<>(null, "c", ROWS); when(bigquery.listTableData(TABLE_ID1)) - .thenReturn(new TableResult(null, ROWS.size(), page, null)); + .thenReturn( + TableResult.newBuilder() + .setTotalRows((long) ROWS.size()) + .setPageNoSchema(page) + .build()); when(bigquery.listTableData(TABLE_ID1, SCHEMA)) - .thenReturn(new TableResult(SCHEMA, ROWS.size(), page, null)); + .thenReturn( + TableResult.newBuilder() + .setSchema(SCHEMA) + .setTotalRows((long) ROWS.size()) + .setPageNoSchema(page) + .build()); Page dataPage = table.list(); assertThat(dataPage.getValues()).containsExactlyElementsIn(ROWS).inOrder(); dataPage = table.list(SCHEMA); @@ -264,9 +273,18 @@ public void testList() { public void testListWithOptions() { Page page = new PageImpl<>(null, "c", ROWS); when(bigquery.listTableData(TABLE_ID1, BigQuery.TableDataListOption.pageSize(10L))) - .thenReturn(new TableResult(null, ROWS.size(), page, null)); + .thenReturn( + TableResult.newBuilder() + .setTotalRows((long) ROWS.size()) + .setPageNoSchema(page) + .build()); when(bigquery.listTableData(TABLE_ID1, SCHEMA, BigQuery.TableDataListOption.pageSize(10L))) - .thenReturn(new TableResult(SCHEMA, ROWS.size(), page, null)); + .thenReturn( + TableResult.newBuilder() + .setSchema(SCHEMA) + .setTotalRows((long) ROWS.size()) + .setPageNoSchema(page) + .build()); Page dataPage = table.list(BigQuery.TableDataListOption.pageSize(10L)); assertThat(dataPage.getValues()).containsExactlyElementsIn(ROWS).inOrder(); From 531b1a0b93ee19a7479a006207c30f7399869773 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 22 Feb 2024 16:16:23 +0100 Subject: [PATCH 2735/3441] deps: update github/codeql-action action to v2.24.4 (#3161) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.24.4 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index d5706e48e86e..b16bfac237a6 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@4a8f20f6b9b5114f354129a1e2f391d75bfd640a # v2.24.3 + uses: github/codeql-action/upload-sarif@80eb8d5395c1d8edac424890a2dc323568ba25fb # v2.24.4 with: sarif_file: results.sarif From 1da59ce0cecfd6582070f59077d90f8523783933 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 10:44:47 -0500 Subject: [PATCH 2736/3441] chore(main): release 2.38.0 (#3156) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 15 +++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 24 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d543ab3d05a0..3eb475e7dc6c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [2.38.0](https://github.com/googleapis/java-bigquery/compare/v2.37.2...v2.38.0) (2024-02-22) + + +### Features + +* Add MetadataCacheStatistics to Job QueryStatistics ([#3133](https://github.com/googleapis/java-bigquery/issues/3133)) ([f3f387b](https://github.com/googleapis/java-bigquery/commit/f3f387b2265d527f3b5bf567c1eaf7ecdad6e096)) + + +### Dependencies + +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240211-2.0.0 ([#3152](https://github.com/googleapis/java-bigquery/issues/3152)) ([e5d6888](https://github.com/googleapis/java-bigquery/commit/e5d688872e4c125a68ed6f666bffd0a41efc3f30)) +* Update github/codeql-action action to v2.24.3 ([#3148](https://github.com/googleapis/java-bigquery/issues/3148)) ([a0a7b01](https://github.com/googleapis/java-bigquery/commit/a0a7b0186ae47fcfcf75fe4f35cce50044c6926c)) +* Update github/codeql-action action to v2.24.3 ([#3150](https://github.com/googleapis/java-bigquery/issues/3150)) ([042fcf0](https://github.com/googleapis/java-bigquery/commit/042fcf0aca46d349103211c3d04ae4b49868933c)) +* Update github/codeql-action action to v2.24.4 ([#3161](https://github.com/googleapis/java-bigquery/issues/3161)) ([531b1a0](https://github.com/googleapis/java-bigquery/commit/531b1a0b93ee19a7479a006207c30f7399869773)) + ## [2.37.2](https://github.com/googleapis/java-bigquery/compare/v2.37.1...v2.37.2) (2024-02-14) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3eca364f1062..fccb9667f22e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.37.3-SNAPSHOT + 2.38.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 8b1813426159..68a0051ed4ce 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.37.3-SNAPSHOT + 2.38.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.37.3-SNAPSHOT + 2.38.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 15be2ae8e3dc..de38f783f1a8 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.37.3-SNAPSHOT + 2.38.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.37.3-SNAPSHOT + 2.38.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4fbdd82f6203..923b51cda5a0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.37.3-SNAPSHOT + 2.38.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.37.3-SNAPSHOT + 2.38.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bbf8c5c4a3d8..37e581dfe6d0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.37.3-SNAPSHOT + 2.38.0 diff --git a/versions.txt b/versions.txt index f429a3ad8bfe..160dbac954ba 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.37.2:2.37.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.38.0:2.38.0 \ No newline at end of file From 8ac7722977e453d272710153180f458be6427aa4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 23 Feb 2024 14:19:52 +0100 Subject: [PATCH 2737/3441] deps: update github/codeql-action action to v2.24.5 (#3165) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.24.5 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index b16bfac237a6..06a691499f66 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@80eb8d5395c1d8edac424890a2dc323568ba25fb # v2.24.4 + uses: github/codeql-action/upload-sarif@a56a03b370b87b26fde6d680755f818cfda0372b # v2.24.5 with: sarif_file: results.sarif diff --git a/README.md b/README.md index 977432d0129d..8b6b05d5173f 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.37.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.38.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.37.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.38.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.37.2 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.38.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles From b68ab427b157a40c7e7d415b02a01f1988080e08 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 23 Feb 2024 14:22:25 +0100 Subject: [PATCH 2738/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.1 (#3154) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 054077ec37a5..b9eff795d8d7 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.10.0 + 0.10.1 true com.example.bigquery.NativeImageBigquerySample From b0fd2b9a6bf83a8631595412bf9046fe25f15003 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 23 Feb 2024 15:52:48 +0100 Subject: [PATCH 2739/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.34.0 (#3157) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7352fd1a3d3c..4a9d1c752e11 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.33.0 + 2.34.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 37e581dfe6d0..1e2de9e89ee9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.33.0 + 2.34.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index cb740eff441a..6c397a8587aa 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.33.0 + 2.34.0 test From b8b741828221001397ee335a000efff5e2dda8b1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 23 Feb 2024 15:53:03 +0100 Subject: [PATCH 2740/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.38.0 (#3164) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.38.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8b6b05d5173f..a0eb62053d39 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.37.2 + 2.38.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4a9d1c752e11..07d39ced4a35 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.37.2 + 2.38.0 From 436f58cbd33546f78ae082d4261ce106f9f77a66 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 23 Feb 2024 16:19:37 +0100 Subject: [PATCH 2741/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.10.1 (#3153) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index b9eff795d8d7..9dfe7de3b4ba 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.10.0 + 0.10.1 test From e31b5b7ea4b91ab0096bf318377dfd66d1364b3c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 23 Feb 2024 19:17:55 +0100 Subject: [PATCH 2742/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.42.0 (#3160) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.42.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 923b51cda5a0..82d260c25d47 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.41.0 + 1.42.0 pom import From acffb24030720ddf1f5358f50e22af366ba28f83 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 23 Feb 2024 20:24:15 +0000 Subject: [PATCH 2743/3441] chore(main): release 2.38.1-SNAPSHOT (#3162) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index fccb9667f22e..95dc2e023850 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.38.0 + 2.38.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 68a0051ed4ce..558334208a96 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.38.0 + 2.38.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.38.0 + 2.38.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index de38f783f1a8..b191fd1b60f5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.38.0 + 2.38.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.38.0 + 2.38.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 82d260c25d47..3b7047817a24 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.38.0 + 2.38.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.38.0 + 2.38.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1e2de9e89ee9..3c9757d00b9e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.38.0 + 2.38.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 160dbac954ba..54415640e164 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.38.0:2.38.0 \ No newline at end of file +google-cloud-bigquery:2.38.0:2.38.1-SNAPSHOT \ No newline at end of file From d6c65abb844d1cca616907cd6aeb02f2a6042916 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 26 Feb 2024 20:28:34 +0100 Subject: [PATCH 2744/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.38.0 (#3159) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3b7047817a24..8d99ab4ca954 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.37.0 + 2.38.0 test From a9df1ba8895d1656d2ffd9037de27f62c625215b Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Tue, 27 Feb 2024 14:57:35 -0500 Subject: [PATCH 2745/3441] chore: use sdk-platform-java-config instead of java-shared-config (#3173) chore: use sdk-platform-java-config instead of java-shared-config --- google-cloud-bigquery-bom/pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 558334208a96..2d55ae9ef14a 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -7,8 +7,8 @@ pom com.google.cloud - google-cloud-shared-config - 1.7.1 + sdk-platform-java-config + 3.25.0 From 45c5096c756a6599233935553708af4f53de5d58 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Thu, 29 Feb 2024 19:52:54 +0000 Subject: [PATCH 2746/3441] chore: next release from main branch is 2.36.0 (#3174) --- .github/release-please.yml | 4 ++++ .github/sync-repo-settings.yaml | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/.github/release-please.yml b/.github/release-please.yml index 7abf72a6e2b8..ab97340a7a16 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -19,6 +19,10 @@ branches: handleGHRelease: true releaseType: java-backport branch: 2.19.x + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 2.35.x bumpMinorPreMajor: true handleGHRelease: true releaseType: java-yoshi diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 9583d638c844..418e8ab988e0 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -92,6 +92,21 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - cla/google - OwlBot Post Processor + - pattern: 2.35.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (17) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - OwlBot Post Processor + - javadoc permissionRules: - team: api-bigquery permission: admin From b93e62e30808d9df95fa4c268dcd37a5462056e1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 4 Mar 2024 14:36:19 +0100 Subject: [PATCH 2747/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.27.0 (#3176) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:sdk-platform-java-config](https://togithub.com/googleapis/java-shared-config) | `3.25.0` -> `3.27.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:sdk-platform-java-config/3.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:sdk-platform-java-config/3.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:sdk-platform-java-config/3.25.0/3.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:sdk-platform-java-config/3.25.0/3.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 28a65e0feafe..179708616f6b 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.25.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.27.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index d9c57fee121a..b44ea4a6ea76 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.25.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.27.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 890878fef008..3762600b8a7b 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.25.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.27.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 8e8cded782d0..6283184778e7 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.25.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.27.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 2d55ae9ef14a..2a779cabf61b 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.25.0 + 3.27.0 diff --git a/pom.xml b/pom.xml index 8d99ab4ca954..06206ac8593f 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.25.0 + 3.27.0 From 8e2eccbab081e8e388e8613669cc8651e549d029 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Tue, 5 Mar 2024 16:17:10 -0500 Subject: [PATCH 2748/3441] ci: sample build in Cloud Build (#3171) * ci: sample build in Cloud Build b/322966824 --- .cloudbuild/samples_build.yaml | 45 +++++++++++++++++++ .../com/example/bigquery/CopyTableCmekIT.java | 2 + .../example/bigquery/CreateDatasetAwsIT.java | 2 + .../bigquery/CreateExternalTableAwsIT.java | 2 + .../example/bigquery/CreateTableCmekIT.java | 2 + .../bigquery/ExportQueryResultsToS3IT.java | 2 + .../com/example/bigquery/ExtractModelIT.java | 2 + .../bigquery/ExtractTableCompressedIT.java | 2 + .../example/bigquery/ExtractTableToCsvIT.java | 2 + .../bigquery/ExtractTableToJsonIT.java | 2 + .../bigquery/LoadJsonFromGcsCmekIT.java | 2 + .../bigquery/QueryClusteredTableIT.java | 2 + .../bigquery/QueryDestinationTableCmekIT.java | 2 + .../bigquery/QueryExternalBigtablePermIT.java | 2 + .../bigquery/QueryExternalBigtableTempIT.java | 2 + .../bigquery/QueryExternalSheetsPermIT.java | 2 + .../bigquery/QueryExternalSheetsTempIT.java | 2 + .../bigquery/QueryExternalTableAwsIT.java | 2 + .../bigquery/UpdateDatasetAccessIT.java | 2 + .../example/bigquery/UpdateTableCmekIT.java | 2 + 20 files changed, 83 insertions(+) create mode 100644 .cloudbuild/samples_build.yaml diff --git a/.cloudbuild/samples_build.yaml b/.cloudbuild/samples_build.yaml new file mode 100644 index 000000000000..354adf972029 --- /dev/null +++ b/.cloudbuild/samples_build.yaml @@ -0,0 +1,45 @@ +steps: +- name: gcr.io/cloud-devrel-public-resources/java8 + entrypoint: ls + args: [ + '-alt', + ] +- name: gcr.io/cloud-devrel-public-resources/java8 + entrypoint: curl + args: [ + '--header', + 'Metadata-Flavor: Google', + 'http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/email' + ] +- name: gcr.io/cloud-devrel-public-resources/java8 + entrypoint: pwd +- name: gcr.io/cloud-devrel-public-resources/java8 + entrypoint: bash + args: [ + '.kokoro/build.sh' + ] + env: + - 'JOB_TYPE=samples' + - 'BIGQUERY_PROJECT_ID=cloud-java-ci-sample' + - 'GOOGLE_CLOUD_PROJECT=cloud-java-ci-sample' + - 'GCS_BUCKET=java-samples-bigquery' + - 'BIGQUERY_TEST_TABLE=test_table' + - 'BIGQUERY_MODEL_NAME=natality_model' + - 'BIGQUERY_MODEL_TEST_PROJECT_ID=bigquery-public-data' + - 'OMNI_PROJECT_ID=sunlit-ace-276222' + - 'OMNI_EXTERNAL_TABLE_NAME=devrel_test_table' + - 'BIGQUERY_TABLE2=table2' + - 'BIGQUERY_TABLE1=table1' + - 'BIGTABLE_TESTING_INSTANCE=bigquery-samples-instance' + - 'BIGQUERY_DATASET_NAME=bigquery_test_dataset' + - 'KOKORO_GFILE_DIR=/workspace' + # This key is not available yet + - 'BIGQUERY_KMS_KEY_NAME=projects/cloud-java-ci-sample/locations/us/keyRings/bq-kms-key/cryptoKeys/bq-kms-key' +- name: gcr.io/cloud-devrel-public-resources/java8 + entrypoint: echo + args: [ + 'Sample job succeeded', + ] +timeout: 3600s +options: + defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET diff --git a/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java b/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java index d5b12a0e21f0..7a601cf95171 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java @@ -31,8 +31,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class CopyTableCmekIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java index f4b5cf0f6b99..6f59f0c49f62 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java @@ -27,8 +27,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class CreateDatasetAwsIT { private static final String ID = UUID.randomUUID().toString().substring(0, 8); diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java index 8aac2716e79a..80be0bb26fac 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java @@ -32,8 +32,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class CreateExternalTableAwsIT { private static final String ID = UUID.randomUUID().toString().substring(0, 8); diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java index fd35c390e070..7169a8fce10e 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java @@ -31,8 +31,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class CreateTableCmekIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExportQueryResultsToS3IT.java b/samples/snippets/src/test/java/com/example/bigquery/ExportQueryResultsToS3IT.java index 61a543812020..b014bde602a2 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExportQueryResultsToS3IT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExportQueryResultsToS3IT.java @@ -26,8 +26,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class ExportQueryResultsToS3IT { private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractModelIT.java index 3e13e78167b5..ac0d131113c6 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExtractModelIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractModelIT.java @@ -26,8 +26,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class ExtractModelIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java index 8fc5eed6efe3..4e551ed81861 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java @@ -26,8 +26,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class ExtractTableCompressedIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java index c3b6550bf9a9..838a989b692c 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java @@ -26,8 +26,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class ExtractTableToCsvIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java index 68f7903838a6..393188c7eb13 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java @@ -27,8 +27,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class ExtractTableToJsonIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java index fb7ea8e522c7..c4507f11d751 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java @@ -28,8 +28,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class LoadJsonFromGcsCmekIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java index 7b861be5fe43..abdaed05f32d 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java @@ -24,8 +24,10 @@ import java.util.logging.Logger; import org.junit.After; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class QueryClusteredTableIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java index df7d3ec747c8..e4f21760d88a 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java @@ -31,8 +31,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class QueryDestinationTableCmekIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtablePermIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtablePermIT.java index 5e0fd3caba37..7f14a28719d7 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtablePermIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtablePermIT.java @@ -34,8 +34,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class QueryExternalBigtablePermIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtableTempIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtableTempIT.java index 27208b196e0e..dce81d637409 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtableTempIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtableTempIT.java @@ -34,8 +34,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class QueryExternalBigtableTempIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java index 1eb72c4d94c0..fc16a4f8ea75 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java @@ -30,8 +30,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class QueryExternalSheetsPermIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java index 6a167d47a69c..2098cce6eee6 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java @@ -28,8 +28,10 @@ import java.util.logging.Logger; import org.junit.After; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class QueryExternalSheetsTempIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java index 4759a4eb6da2..504a72f45a92 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java @@ -26,8 +26,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class QueryExternalTableAwsIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java index d4ec62df2b4d..2a1ed26f9dad 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java @@ -30,8 +30,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class UpdateDatasetAccessIT { private final Logger log = Logger.getLogger(this.getClass().getName()); diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java index 3c6417f44f6c..ddeb7a022080 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java @@ -31,8 +31,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class UpdateTableCmekIT { private final Logger log = Logger.getLogger(this.getClass().getName()); From 5c636b4e75360cfa443ed3fd4a3118cf292e9ab5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 7 Mar 2024 03:02:21 +0100 Subject: [PATCH 2749/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.3.1 (#3181) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquerystorage-bom](https://togithub.com/googleapis/java-bigquerystorage) | `3.2.0` -> `3.3.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigquerystorage-bom/3.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigquerystorage-bom/3.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigquerystorage-bom/3.2.0/3.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigquerystorage-bom/3.2.0/3.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquerystorage (com.google.cloud:google-cloud-bigquerystorage-bom) ### [`v3.3.1`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#331-2024-03-06) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v3.3.0...v3.3.1) ##### Dependencies - Update dependency com.google.cloud:sdk-platform-java-config to v3.27.0 ([#​2425](https://togithub.com/googleapis/java-bigquerystorage/issues/2425)) ([488d282](https://togithub.com/googleapis/java-bigquerystorage/commit/488d28287fdaefff02e7ad9f9f7c8da6ac873671)) ### [`v3.3.0`](https://togithub.com/googleapis/java-bigquerystorage/blob/HEAD/CHANGELOG.md#330-2024-03-04) [Compare Source](https://togithub.com/googleapis/java-bigquerystorage/compare/v3.2.0...v3.3.0) ##### Features - Add RetrySettings use to Write API samples. ([#​2419](https://togithub.com/googleapis/java-bigquerystorage/issues/2419)) ([5b000d0](https://togithub.com/googleapis/java-bigquerystorage/commit/5b000d0a4e953649ca4e44bffd3ba25c288e70e4)) - Add the RANGE type to the google.cloud.bigquery.storage.v1.TableFieldSchema ([#​2413](https://togithub.com/googleapis/java-bigquerystorage/issues/2413)) ([6aa92b5](https://togithub.com/googleapis/java-bigquerystorage/commit/6aa92b5d03eed548de9e89b0731707f92c373ce3)) - Next release from main branch is 2.48.0 ([#​2420](https://togithub.com/googleapis/java-bigquerystorage/issues/2420)) ([2dd8efc](https://togithub.com/googleapis/java-bigquerystorage/commit/2dd8efc4a21f186c20e86304092d22fd574e822e)) ##### Bug Fixes - Fix issue where Universe Domain is not correctly set. ([#​2423](https://togithub.com/googleapis/java-bigquerystorage/issues/2423)) ([b7ebd73](https://togithub.com/googleapis/java-bigquerystorage/commit/b7ebd73754fe51a4835f676e429b95b80f8114a5)) ##### Dependencies - Update dependency com.google.cloud:google-cloud-bigquery to v2.38.0 ([#​2417](https://togithub.com/googleapis/java-bigquerystorage/issues/2417)) ([8184a0f](https://togithub.com/googleapis/java-bigquerystorage/commit/8184a0f74e98340fe62621957f3ac78ad70c9edb)) - Update dependency com.google.cloud:google-cloud-bigquery to v2.38.0 ([#​2418](https://togithub.com/googleapis/java-bigquerystorage/issues/2418)) ([4d5eb73](https://togithub.com/googleapis/java-bigquerystorage/commit/4d5eb7343cdf5fd617a2da120642bfd678d58f94)) - Update dependency com.google.truth:truth to v1.4.1 ([#​2412](https://togithub.com/googleapis/java-bigquerystorage/issues/2412)) ([c2dcb73](https://togithub.com/googleapis/java-bigquerystorage/commit/c2dcb73c54ad5dcb68ce18741efaf479298373e1)) - Update dependency com.google.truth:truth to v1.4.2 ([#​2424](https://togithub.com/googleapis/java-bigquerystorage/issues/2424)) ([7a12de0](https://togithub.com/googleapis/java-bigquerystorage/commit/7a12de0ebc6a0a0f4bb438e3dcb36ee0759c0b94)) - Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.1 ([#​2414](https://togithub.com/googleapis/java-bigquerystorage/issues/2414)) ([dfa8d53](https://togithub.com/googleapis/java-bigquerystorage/commit/dfa8d532e5e1a28d644fefed6650ca1a2481a3a3)) - Update dependency org.json:json to v20240303 ([#​2426](https://togithub.com/googleapis/java-bigquerystorage/issues/2426)) ([2accca7](https://togithub.com/googleapis/java-bigquerystorage/commit/2accca72f2bd26c9a1cf1bd918961889b9ee3ace)) ##### Documentation - Mark BigQueryWrite v1beta2 as deprecated ([#​2421](https://togithub.com/googleapis/java-bigquerystorage/issues/2421)) ([07d98ab](https://togithub.com/googleapis/java-bigquerystorage/commit/07d98ab417ae9fd2f90aca4d6a1a3ff62ef0bc1d))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 06206ac8593f..29fedf1975f5 100644 --- a/pom.xml +++ b/pom.xml @@ -72,7 +72,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.2.0 + 3.3.1 pom import From 041d83cd509375c13b4ef6c6c306e56d7d4331a7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 6 Mar 2024 22:20:28 -0500 Subject: [PATCH 2750/3441] chore(main): release 2.38.1 (#3167) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 21 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3eb475e7dc6c..418a208b9d9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [2.38.1](https://github.com/googleapis/java-bigquery/compare/v2.38.0...v2.38.1) (2024-03-07) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.38.0 ([#3159](https://github.com/googleapis/java-bigquery/issues/3159)) ([d6c65ab](https://github.com/googleapis/java-bigquery/commit/d6c65abb844d1cca616907cd6aeb02f2a6042916)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.42.0 ([#3160](https://github.com/googleapis/java-bigquery/issues/3160)) ([e31b5b7](https://github.com/googleapis/java-bigquery/commit/e31b5b7ea4b91ab0096bf318377dfd66d1364b3c)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.27.0 ([#3176](https://github.com/googleapis/java-bigquery/issues/3176)) ([b93e62e](https://github.com/googleapis/java-bigquery/commit/b93e62e30808d9df95fa4c268dcd37a5462056e1)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.10.1 ([#3153](https://github.com/googleapis/java-bigquery/issues/3153)) ([436f58c](https://github.com/googleapis/java-bigquery/commit/436f58cbd33546f78ae082d4261ce106f9f77a66)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.1 ([#3154](https://github.com/googleapis/java-bigquery/issues/3154)) ([b68ab42](https://github.com/googleapis/java-bigquery/commit/b68ab427b157a40c7e7d415b02a01f1988080e08)) +* Update github/codeql-action action to v2.24.5 ([#3165](https://github.com/googleapis/java-bigquery/issues/3165)) ([8ac7722](https://github.com/googleapis/java-bigquery/commit/8ac7722977e453d272710153180f458be6427aa4)) + ## [2.38.0](https://github.com/googleapis/java-bigquery/compare/v2.37.2...v2.38.0) (2024-02-22) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 95dc2e023850..9be5bc351fce 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.38.1-SNAPSHOT + 2.38.1 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 2a779cabf61b..e2a8299b402a 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.38.1-SNAPSHOT + 2.38.1 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.38.1-SNAPSHOT + 2.38.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b191fd1b60f5..551db63ceb47 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.38.1-SNAPSHOT + 2.38.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.38.1-SNAPSHOT + 2.38.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 29fedf1975f5..0d5813ca4d3b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.38.1-SNAPSHOT + 2.38.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.38.1-SNAPSHOT + 2.38.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3c9757d00b9e..64ebf51be227 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.38.1-SNAPSHOT + 2.38.1 diff --git a/versions.txt b/versions.txt index 54415640e164..3e8ba920b196 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.38.0:2.38.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.38.1:2.38.1 \ No newline at end of file From 39b5f27cf019ec86c01d4ea2512402d462710a1e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 7 Mar 2024 15:06:58 +0100 Subject: [PATCH 2751/3441] test(deps): update dependency com.google.truth:truth to v1.4.2 (#3175) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 0d5813ca4d3b..40d759c09086 100644 --- a/pom.xml +++ b/pom.xml @@ -136,7 +136,7 @@ com.google.truth truth - 1.4.1 + 1.4.2 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 07d39ced4a35..3ff0852c2e8e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -81,7 +81,7 @@ com.google.truth truth - 1.4.1 + 1.4.2 test diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index 9dfe7de3b4ba..ba90812eb3cb 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -62,7 +62,7 @@ com.google.truth truth - 1.4.1 + 1.4.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 64ebf51be227..e2ef0c5b8509 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -79,7 +79,7 @@ com.google.truth truth - 1.4.1 + 1.4.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6c397a8587aa..2d84351388fe 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -97,7 +97,7 @@ com.google.truth truth - 1.4.1 + 1.4.2 test From db05223ada34947ba26b6e97376c079a8483187b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 7 Mar 2024 15:16:16 +0000 Subject: [PATCH 2752/3441] chore(main): release 2.38.2-SNAPSHOT (#3183) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- README.md | 6 +++--- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a0eb62053d39..b00344b76616 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.38.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.38.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.38.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.38.1" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.38.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.38.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9be5bc351fce..655f1b7dd340 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.38.1 + 2.38.2-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index e2a8299b402a..4e37ae91e528 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.38.1 + 2.38.2-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.38.1 + 2.38.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 551db63ceb47..33d11820b977 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.38.1 + 2.38.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.38.1 + 2.38.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 40d759c09086..80eeb5542926 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.38.1 + 2.38.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -110,7 +110,7 @@ com.google.cloud google-cloud-bigquery - 2.38.1 + 2.38.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e2ef0c5b8509..e76416086934 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.38.1 + 2.38.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 3e8ba920b196..e1d5c8b1cce8 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.38.1:2.38.1 \ No newline at end of file +google-cloud-bigquery:2.38.1:2.38.2-SNAPSHOT \ No newline at end of file From a72262a136c659cbdc52352a8064b94d21cd43e4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 11 Mar 2024 14:44:07 +0100 Subject: [PATCH 2753/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.35.0 (#3180) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 80eeb5542926..8685cbdb07bd 100644 --- a/pom.xml +++ b/pom.xml @@ -154,7 +154,7 @@ com.google.cloud google-cloud-storage - 2.34.0 + 2.35.0 test From 18a7c8ee96eb90b5a87589df5017c52be2839bb8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 11 Mar 2024 14:46:06 +0100 Subject: [PATCH 2754/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.35.1 (#3182) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3ff0852c2e8e..ae553725af77 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.34.0 + 2.35.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e76416086934..9b4c211de81f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.34.0 + 2.35.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 2d84351388fe..b21638a354f4 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.34.0 + 2.35.1 test From 0ac910f6203821334f0d16083eb6337e908c7c55 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 11 Mar 2024 14:46:34 +0100 Subject: [PATCH 2755/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.38.1 (#3184) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.38.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b00344b76616..5f9648f200be 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.38.0 + 2.38.1 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ae553725af77..b30ac06d42d1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.38.0 + 2.38.1 From 31f00d284868725ac7894ddaa8aa1d4251866fb1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 11 Mar 2024 14:47:10 +0100 Subject: [PATCH 2756/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.39.0 (#3185) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.39.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 8685cbdb07bd..632635ced46c 100644 --- a/pom.xml +++ b/pom.xml @@ -160,7 +160,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.38.0 + 2.39.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b30ac06d42d1..0aa8cd3015c6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.38.0 + 2.39.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9b4c211de81f..57b51bc42602 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.38.0 + 2.39.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index b21638a354f4..00a66180443f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.38.0 + 2.39.0 test From 9e705a140ac6fc1d1d64674dc985c35955911667 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 12 Mar 2024 13:52:33 +0100 Subject: [PATCH 2757/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.39.0 (#3186) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.39.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 632635ced46c..f59fe902f3c7 100644 --- a/pom.xml +++ b/pom.xml @@ -166,7 +166,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.38.0 + 2.39.0 test From 497ff298d84e536161b112c6b1aa176d4d962a49 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 12 Mar 2024 13:53:09 +0100 Subject: [PATCH 2758/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.43.0 (#3187) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.43.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f59fe902f3c7..c1de6fa60dcb 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.42.0 + 1.43.0 pom import From a018424ccbf3c2c554d829c97e442f4813b2c764 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 12 Mar 2024 13:53:46 +0100 Subject: [PATCH 2759/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240229-2.0.0 (#3188) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240229-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5f9648f200be..2ce7af409276 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.33.0') +implementation platform('com.google.cloud:libraries-bom:26.34.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/pom.xml b/pom.xml index c1de6fa60dcb..fa9fcb5b4d8c 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240211-2.0.0 + v2-rev20240229-2.0.0 15.0.0 From 940e4f6c656a2e0f1d2e4d6e08d42214d14fe125 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 12 Mar 2024 13:56:11 +0100 Subject: [PATCH 2760/3441] deps: update actions/checkout action (#3190) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/checkout action * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 06a691499f66..d537635989b0 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 with: persist-credentials: false From fb6284e94d4744bb4c8f9501751bf79e04a2429b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 12 Mar 2024 14:55:27 +0100 Subject: [PATCH 2761/3441] deps: update arrow.version to v15.0.1 (#3189) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fa9fcb5b4d8c..a9da3bb4f2e3 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ github google-cloud-bigquery-parent v2-rev20240229-2.0.0 - 15.0.0 + 15.0.1 From 8843cae621e1eede6b072b1347f2a68a36304bca Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 12 Mar 2024 17:29:29 +0100 Subject: [PATCH 2762/3441] deps: update github/codeql-action action to v2.24.6 (#3178) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index d537635989b0..810b6be6ae22 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@a56a03b370b87b26fde6d680755f818cfda0372b # v2.24.5 + uses: github/codeql-action/upload-sarif@928ff8c822d966a999092a6a35e32177899afb7c # v2.24.6 with: sarif_file: results.sarif From 4be8071c42bb646441100d43410663724307ff88 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Wed, 13 Mar 2024 09:20:23 -0400 Subject: [PATCH 2763/3441] chore: stop declaring Apache Arrow deps in dependencyManagement (#3193) --- pom.xml | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/pom.xml b/pom.xml index a9da3bb4f2e3..852a1e951a85 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,6 @@ github google-cloud-bigquery-parent v2-rev20240229-2.0.0 - 15.0.1 @@ -76,23 +75,7 @@ pom import
    - - org.apache.arrow - arrow-vector - ${arrow.version} - - - org.apache.arrow - arrow-memory-core - ${arrow.version} - - - org.apache.arrow - arrow-memory-netty - ${arrow.version} - runtime - - + com.google.cloud google-cloud-datacatalog-bom From 2e2d730de9e4e49f25c20de2cfe1ae38babef830 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 14 Mar 2024 15:45:07 +0100 Subject: [PATCH 2764/3441] deps: update github/codeql-action action to v2.24.7 (#3194) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 810b6be6ae22..ff9985a87141 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@928ff8c822d966a999092a6a35e32177899afb7c # v2.24.6 + uses: github/codeql-action/upload-sarif@e56cfd0877b4826be144d11aa31e6c64a55828e9 # v2.24.7 with: sarif_file: results.sarif From 20e8e4f184592ef7e61130150cd88e4efe09e626 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 18 Mar 2024 17:30:25 +0100 Subject: [PATCH 2765/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.36.0 (#3195) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0aa8cd3015c6..68968cd4f452 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.35.1 + 2.36.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 57b51bc42602..1039b499bc14 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.35.1 + 2.36.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 00a66180443f..41482f64d05b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.35.1 + 2.36.0 test From 61f23a35d2b5cbbd66ddf35b93709a5669b5b102 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 18 Mar 2024 17:31:18 +0100 Subject: [PATCH 2766/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.28.1 (#3196) --- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 179708616f6b..fba53ee54b00 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.27.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.28.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index b44ea4a6ea76..853a0d20baa6 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.27.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.28.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 3762600b8a7b..227409d0cbfb 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.27.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.28.1"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 6283184778e7..94e00cbaa0a1 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.27.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.28.1" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 4e37ae91e528..ab041e263369 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.27.0 + 3.28.1 diff --git a/pom.xml b/pom.xml index 852a1e951a85..2893fd09a4c3 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.27.0 + 3.28.1 From 525ceb24fa88d10590cfed25784e48e096213463 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 18 Mar 2024 17:34:02 +0100 Subject: [PATCH 2767/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.36.0 (#3197) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2893fd09a4c3..4cf444f65830 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.35.0 + 2.36.0 test From bd81a56a07c836abb05c1de0d42e9cd397920e99 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 19 Mar 2024 16:55:13 +0100 Subject: [PATCH 2768/3441] deps: update github/codeql-action action to v2.24.8 (#3198) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index ff9985a87141..c8c5af3706db 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@e56cfd0877b4826be144d11aa31e6c64a55828e9 # v2.24.7 + uses: github/codeql-action/upload-sarif@c2dc67199a2e650d535d7de586a07597aea4d9c7 # v2.24.8 with: sarif_file: results.sarif From 4563ffa68f931dc89226e23dc102770a7378a2ce Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 19 Mar 2024 16:55:43 +0100 Subject: [PATCH 2769/3441] build(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.13.0 (#3199) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 655f1b7dd340..f0d06fee15d4 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -37,7 +37,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.12.0 + 3.13.0 org.apache.maven.plugins From 18f21b0a2d76a4eea6ac385da2180b67ba586eaa Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 21 Mar 2024 01:49:37 +0100 Subject: [PATCH 2770/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.4.0 (#3200) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4cf444f65830..d9de25028cbb 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.3.1 + 3.4.0 pom import From b12139cd8712468b09ed4e6ce21a6cd2e1c47a48 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 21 Mar 2024 01:34:22 +0000 Subject: [PATCH 2771/3441] chore(main): release 2.38.2 (#3191) :robot: I have created a release *beep* *boop* --- ## [2.38.2](https://togithub.com/googleapis/java-bigquery/compare/v2.38.1...v2.38.2) (2024-03-21) ### Dependencies * Update actions/checkout action ([#3190](https://togithub.com/googleapis/java-bigquery/issues/3190)) ([940e4f6](https://togithub.com/googleapis/java-bigquery/commit/940e4f6c656a2e0f1d2e4d6e08d42214d14fe125)) * Update arrow.version to v15.0.1 ([#3189](https://togithub.com/googleapis/java-bigquery/issues/3189)) ([fb6284e](https://togithub.com/googleapis/java-bigquery/commit/fb6284e94d4744bb4c8f9501751bf79e04a2429b)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.39.0 ([#3186](https://togithub.com/googleapis/java-bigquery/issues/3186)) ([9e705a1](https://togithub.com/googleapis/java-bigquery/commit/9e705a140ac6fc1d1d64674dc985c35955911667)) * Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240229-2.0.0 ([#3188](https://togithub.com/googleapis/java-bigquery/issues/3188)) ([a018424](https://togithub.com/googleapis/java-bigquery/commit/a018424ccbf3c2c554d829c97e442f4813b2c764)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.43.0 ([#3187](https://togithub.com/googleapis/java-bigquery/issues/3187)) ([497ff29](https://togithub.com/googleapis/java-bigquery/commit/497ff298d84e536161b112c6b1aa176d4d962a49)) * Update dependency com.google.cloud:sdk-platform-java-config to v3.28.1 ([#3196](https://togithub.com/googleapis/java-bigquery/issues/3196)) ([61f23a3](https://togithub.com/googleapis/java-bigquery/commit/61f23a35d2b5cbbd66ddf35b93709a5669b5b102)) * Update github/codeql-action action to v2.24.6 ([#3178](https://togithub.com/googleapis/java-bigquery/issues/3178)) ([8843cae](https://togithub.com/googleapis/java-bigquery/commit/8843cae621e1eede6b072b1347f2a68a36304bca)) * Update github/codeql-action action to v2.24.7 ([#3194](https://togithub.com/googleapis/java-bigquery/issues/3194)) ([2e2d730](https://togithub.com/googleapis/java-bigquery/commit/2e2d730de9e4e49f25c20de2cfe1ae38babef830)) * Update github/codeql-action action to v2.24.8 ([#3198](https://togithub.com/googleapis/java-bigquery/issues/3198)) ([bd81a56](https://togithub.com/googleapis/java-bigquery/commit/bd81a56a07c836abb05c1de0d42e9cd397920e99)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 15 +++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 24 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 418a208b9d9d..547ec4ce279a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [2.38.2](https://github.com/googleapis/java-bigquery/compare/v2.38.1...v2.38.2) (2024-03-21) + + +### Dependencies + +* Update actions/checkout action ([#3190](https://github.com/googleapis/java-bigquery/issues/3190)) ([940e4f6](https://github.com/googleapis/java-bigquery/commit/940e4f6c656a2e0f1d2e4d6e08d42214d14fe125)) +* Update arrow.version to v15.0.1 ([#3189](https://github.com/googleapis/java-bigquery/issues/3189)) ([fb6284e](https://github.com/googleapis/java-bigquery/commit/fb6284e94d4744bb4c8f9501751bf79e04a2429b)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.39.0 ([#3186](https://github.com/googleapis/java-bigquery/issues/3186)) ([9e705a1](https://github.com/googleapis/java-bigquery/commit/9e705a140ac6fc1d1d64674dc985c35955911667)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240229-2.0.0 ([#3188](https://github.com/googleapis/java-bigquery/issues/3188)) ([a018424](https://github.com/googleapis/java-bigquery/commit/a018424ccbf3c2c554d829c97e442f4813b2c764)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.43.0 ([#3187](https://github.com/googleapis/java-bigquery/issues/3187)) ([497ff29](https://github.com/googleapis/java-bigquery/commit/497ff298d84e536161b112c6b1aa176d4d962a49)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.28.1 ([#3196](https://github.com/googleapis/java-bigquery/issues/3196)) ([61f23a3](https://github.com/googleapis/java-bigquery/commit/61f23a35d2b5cbbd66ddf35b93709a5669b5b102)) +* Update github/codeql-action action to v2.24.6 ([#3178](https://github.com/googleapis/java-bigquery/issues/3178)) ([8843cae](https://github.com/googleapis/java-bigquery/commit/8843cae621e1eede6b072b1347f2a68a36304bca)) +* Update github/codeql-action action to v2.24.7 ([#3194](https://github.com/googleapis/java-bigquery/issues/3194)) ([2e2d730](https://github.com/googleapis/java-bigquery/commit/2e2d730de9e4e49f25c20de2cfe1ae38babef830)) +* Update github/codeql-action action to v2.24.8 ([#3198](https://github.com/googleapis/java-bigquery/issues/3198)) ([bd81a56](https://github.com/googleapis/java-bigquery/commit/bd81a56a07c836abb05c1de0d42e9cd397920e99)) + ## [2.38.1](https://github.com/googleapis/java-bigquery/compare/v2.38.0...v2.38.1) (2024-03-07) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f0d06fee15d4..ef726795cdff 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.38.2-SNAPSHOT + 2.38.2 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index ab041e263369..a37ce9c8daf9 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.38.2-SNAPSHOT + 2.38.2 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.38.2-SNAPSHOT + 2.38.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 33d11820b977..f307ff24752d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.38.2-SNAPSHOT + 2.38.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.38.2-SNAPSHOT + 2.38.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d9de25028cbb..6a9b27e6b7c6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.38.2-SNAPSHOT + 2.38.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.38.2-SNAPSHOT + 2.38.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1039b499bc14..c8b8fcf24564 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.38.2-SNAPSHOT + 2.38.2 diff --git a/versions.txt b/versions.txt index e1d5c8b1cce8..4540e1564a8c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.38.1:2.38.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.38.2:2.38.2 \ No newline at end of file From 90cfa007938c1a96c70feba308070e500542a592 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 21 Mar 2024 15:02:05 +0100 Subject: [PATCH 2772/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.38.2 (#3202) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.38.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2ce7af409276..f824e619910e 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.38.1 + 2.38.2 ``` @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.38.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.38.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.38.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.38.2" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.38.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.38.2 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 68968cd4f452..e5674d6b05f9 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.38.1 + 2.38.2 From 9438f2c934984ff7e6d066fe7593fcd967c79f4a Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Fri, 22 Mar 2024 19:22:24 -0400 Subject: [PATCH 2773/3441] ci: unmanaged dependency check (#3145) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ci: unmanaged dependency check b/320677879 * now bom is available * Ignoring failing sample tests * update renovate config * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Joe Wang Co-authored-by: Owl Bot --- .../workflows/unmanaged_dependency_check.yaml | 25 +++++++++++++++++++ renovate.json | 9 +++++++ .../bigquery/NativeImageBigquerySampleIT.java | 2 ++ .../bigquery/LoadCsvFromGcsTruncateTest.java | 2 ++ 4 files changed, 38 insertions(+) create mode 100644 .github/workflows/unmanaged_dependency_check.yaml diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml new file mode 100644 index 000000000000..3313f9941317 --- /dev/null +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -0,0 +1,25 @@ +on: + pull_request: +name: Unmanaged dependency check +jobs: + unmanaged_dependency_check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: 11 + - name: Install modules + shell: bash + run: | + # No argument to build.sh installs the modules in local Maven + # repository + .kokoro/build.sh + - name: Unmanaged dependency check + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.27.0 + with: + # java-bigquery does not produce a BOM. Fortunately the root pom.xml + # defines google-cloud-bigquery in dependencyManagement section. So + # we can treat this as the BOM to run with the check. + bom-path: ./google-cloud-bigquery-bom/pom.xml diff --git a/renovate.json b/renovate.json index 0b609db9a121..8034b037934b 100644 --- a/renovate.json +++ b/renovate.json @@ -21,6 +21,15 @@ "matchStrings": ["value: \"gcr.io/cloud-devrel-public-resources/graalvm.*:(?.*?)\""], "depNameTemplate": "com.google.cloud:sdk-platform-java-config", "datasourceTemplate": "maven" + }, + { + "customType": "regex", + "fileMatch": [ + "^.github/workflows/unmanaged_dependency_check.yaml$" + ], + "matchStrings": ["uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v(?.+?)\\n"], + "depNameTemplate": "com.google.cloud:sdk-platform-java-config", + "datasourceTemplate": "maven" } ], "packageRules": [ diff --git a/samples/native-image-sample/src/test/java/com/example/bigquery/NativeImageBigquerySampleIT.java b/samples/native-image-sample/src/test/java/com/example/bigquery/NativeImageBigquerySampleIT.java index a65bc5aa87ad..8cdb01ab9e29 100644 --- a/samples/native-image-sample/src/test/java/com/example/bigquery/NativeImageBigquerySampleIT.java +++ b/samples/native-image-sample/src/test/java/com/example/bigquery/NativeImageBigquerySampleIT.java @@ -25,9 +25,11 @@ import com.google.cloud.bigquery.StandardSQLTypeName; import java.util.UUID; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; /** Tests for {@link NativeImageBigquerySample} */ +@Ignore public class NativeImageBigquerySampleIT { private static final String DATASET_ID = "nativeimage_it_dataset"; diff --git a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java index 09e8d9c50fe5..62036764968b 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java +++ b/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java @@ -30,8 +30,10 @@ import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class LoadCsvFromGcsTruncateTest { private final Logger log = Logger.getLogger(this.getClass().getName()); From d05ccf39f9a6db78713cb0d2ce3ad4b4e061c4ad Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Mar 2024 15:59:50 +0100 Subject: [PATCH 2774/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.36.1 (#3203) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6a9b27e6b7c6..853e22f5da88 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.36.0 + 2.36.1 test From 434b72710373cdd6c07829c44cc97608cc28ef17 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Mar 2024 16:02:32 +0100 Subject: [PATCH 2775/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.40.0 (#3209) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 853e22f5da88..d454b9d73aae 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.39.0 + 2.40.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e5674d6b05f9..1e424351a905 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.39.0 + 2.40.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c8b8fcf24564..fea7df554ec3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.39.0 + 2.40.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 41482f64d05b..9a0220be43fe 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.39.0 + 2.40.0 test From bf7e97e1c936a419a34529a316c4f538872dd20b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Mar 2024 16:02:58 +0100 Subject: [PATCH 2776/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.40.0 (#3210) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d454b9d73aae..ed829250b253 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.39.0 + 2.40.0 test From 6204331953b3922f5ecb1ac0c1868cb6579dd73b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Mar 2024 16:03:49 +0100 Subject: [PATCH 2777/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.28.1 (#3207) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 3313f9941317..ebf073c1b334 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.27.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.28.1 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So From 6993b51f8722466b846a7dd3912acbd81e04126c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Mar 2024 16:04:16 +0100 Subject: [PATCH 2778/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.44.0 (#3211) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ed829250b253..100b6ce9436c 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.43.0 + 1.44.0 pom import From 7a24d3e29f32db58475c1e02ab1c13ee8941c27d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Mar 2024 18:59:53 +0100 Subject: [PATCH 2779/3441] deps: update github/codeql-action action to v2.24.9 (#3204) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index c8c5af3706db..e29083aaba42 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@c2dc67199a2e650d535d7de586a07597aea4d9c7 # v2.24.8 + uses: github/codeql-action/upload-sarif@a82bad71823183e5b120ab52d521460ecb0585fe # v2.24.9 with: sarif_file: results.sarif From 64bdda84fe06726042a41f2a89ac5c067f9bc949 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Mon, 25 Mar 2024 15:48:31 -0400 Subject: [PATCH 2780/3441] feat: Add new fields to copy job statistics (#3205) * feat: Add new fields to copy job statistics Specifically, [copiedRows, copiedLogicalBytes] are added to CopyStatistics. * Fix issue where IT verified copied rows twice instead of copied logical bytes. * Add additional test to verified non-zero copy statistic case. --- .../google/cloud/bigquery/JobStatistics.java | 54 ++++++++++++++++++- .../cloud/bigquery/JobStatisticsTest.java | 18 +++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 39 ++++++++++++++ 3 files changed, 109 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 5979afbca74a..c600f6a198e1 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -21,6 +21,7 @@ import com.google.api.services.bigquery.model.JobStatistics2; import com.google.api.services.bigquery.model.JobStatistics3; import com.google.api.services.bigquery.model.JobStatistics4; +import com.google.api.services.bigquery.model.JobStatistics5; import com.google.api.services.bigquery.model.QueryParameter; import com.google.cloud.StringEnumType; import com.google.cloud.StringEnumValue; @@ -51,14 +52,36 @@ public abstract class JobStatistics implements Serializable { /** A Google BigQuery Copy Job statistics. */ public static class CopyStatistics extends JobStatistics { - private static final long serialVersionUID = 8218325588441660938L; + private static final long serialVersionUID = 8218325588441660939L; + + private final Long copiedLogicalBytes; + + private final Long copiedRows; static final class Builder extends JobStatistics.Builder { + private Long copiedLogicalBytes; + + private Long copiedRows; + private Builder() {} private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsPb) { super(statisticsPb); + if (statisticsPb.getCopy() != null) { + this.copiedLogicalBytes = statisticsPb.getCopy().getCopiedLogicalBytes(); + this.copiedRows = statisticsPb.getCopy().getCopiedRows(); + } + } + + Builder setCopiedLogicalBytes(long copiedLogicalBytes) { + this.copiedLogicalBytes = copiedLogicalBytes; + return self(); + } + + Builder setCopiedRows(long copiedRows) { + this.copiedRows = copiedRows; + return self(); } @Override @@ -69,6 +92,25 @@ CopyStatistics build() { private CopyStatistics(Builder builder) { super(builder); + this.copiedLogicalBytes = builder.copiedLogicalBytes; + this.copiedRows = builder.copiedRows; + } + + /** Returns number of logical bytes copied to the destination table. */ + public Long getCopiedLogicalBytes() { + return copiedLogicalBytes; + } + + /** Returns number of rows copied to the destination table. */ + public Long getCopiedRows() { + return copiedRows; + } + + @Override + ToStringHelper toStringHelper() { + return super.toStringHelper() + .add("copiedLogicalBytes", copiedLogicalBytes) + .add("copiedRows", copiedRows); } @Override @@ -81,7 +123,15 @@ public final boolean equals(Object obj) { @Override public final int hashCode() { - return baseHashCode(); + return Objects.hash(baseHashCode(), copiedLogicalBytes, copiedRows); + } + + @Override + com.google.api.services.bigquery.model.JobStatistics toPb() { + JobStatistics5 copyStatisticsPb = new JobStatistics5(); + copyStatisticsPb.setCopiedLogicalBytes(copiedLogicalBytes); + copyStatisticsPb.setCopiedRows(copiedRows); + return super.toPb().setCopy(copyStatisticsPb); } static Builder newBuilder() { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index 5502b84720be..24344514e0bd 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -85,11 +85,15 @@ public class JobStatisticsTest { private static final Long SLOTMS = 12545L; private static final String TRANSACTION_ID = UUID.randomUUID().toString().substring(0, 8); private static final String SESSION_ID = UUID.randomUUID().toString().substring(0, 8); + private static final Long COPIED_ROW = 1L; + private static final Long COPIED_LOGICAL_BYTES = 2L; private static final CopyStatistics COPY_STATISTICS = CopyStatistics.newBuilder() .setCreationTimestamp(CREATION_TIME) .setEndTime(END_TIME) .setStartTime(START_TIME) + .setCopiedRows(COPIED_ROW) + .setCopiedLogicalBytes(COPIED_LOGICAL_BYTES) .build(); private static final ExtractStatistics EXTRACT_STATISTICS = ExtractStatistics.newBuilder() @@ -262,6 +266,12 @@ public void testBuilder() { assertEquals(FILE_COUNT, EXTRACT_STATISTICS.getDestinationUriFileCounts()); assertEquals(INPUT_BYTES, EXTRACT_STATISTICS.getInputBytes()); + assertEquals(CREATION_TIME, COPY_STATISTICS.getCreationTime()); + assertEquals(START_TIME, COPY_STATISTICS.getStartTime()); + assertEquals(END_TIME, COPY_STATISTICS.getEndTime()); + assertEquals(COPIED_LOGICAL_BYTES, COPY_STATISTICS.getCopiedLogicalBytes()); + assertEquals(COPIED_ROW, COPY_STATISTICS.getCopiedRows()); + assertEquals(CREATION_TIME, LOAD_STATISTICS.getCreationTime()); assertEquals(START_TIME, LOAD_STATISTICS.getStartTime()); assertEquals(END_TIME, LOAD_STATISTICS.getEndTime()); @@ -334,6 +344,7 @@ public void testBuilder() { public void testToPbAndFromPb() { compareExtractStatistics( EXTRACT_STATISTICS, ExtractStatistics.fromPb(EXTRACT_STATISTICS.toPb())); + compareCopyStatistics(COPY_STATISTICS, CopyStatistics.fromPb(COPY_STATISTICS.toPb())); compareLoadStatistics(LOAD_STATISTICS, LoadStatistics.fromPb(LOAD_STATISTICS.toPb())); compareQueryStatistics(QUERY_STATISTICS, QueryStatistics.fromPb(QUERY_STATISTICS.toPb())); compareStatistics(COPY_STATISTICS, CopyStatistics.fromPb(COPY_STATISTICS.toPb())); @@ -400,6 +411,13 @@ private void compareExtractStatistics(ExtractStatistics expected, ExtractStatist assertEquals(expected.getInputBytes(), value.getInputBytes()); } + private void compareCopyStatistics(CopyStatistics expected, CopyStatistics value) { + assertEquals(expected, value); + compareStatistics(expected, value); + assertEquals(expected.getCopiedLogicalBytes(), value.getCopiedLogicalBytes()); + assertEquals(expected.getCopiedRows(), value.getCopiedRows()); + } + private void compareLoadStatistics(LoadStatistics expected, LoadStatistics value) { assertEquals(expected, value); compareStatistics(expected, value); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 3fd084a63849..0a589e9edce4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -90,6 +90,7 @@ import com.google.cloud.bigquery.JobId; import com.google.cloud.bigquery.JobInfo; import com.google.cloud.bigquery.JobStatistics; +import com.google.cloud.bigquery.JobStatistics.CopyStatistics; import com.google.cloud.bigquery.JobStatistics.ExtractStatistics; import com.google.cloud.bigquery.JobStatistics.LoadStatistics; import com.google.cloud.bigquery.JobStatistics.QueryStatistics; @@ -5042,11 +5043,18 @@ public void testCopyJob() throws InterruptedException, TimeoutException { assertNotNull(createdTable); assertEquals(DATASET, createdTable.getTableId().getDataset()); assertEquals(sourceTableName, createdTable.getTableId().getTable()); + TableId destinationTable = TableId.of(DATASET, destinationTableName); CopyJobConfiguration configuration = CopyJobConfiguration.of(destinationTable, sourceTable); Job remoteJob = bigquery.create(JobInfo.of(configuration)); remoteJob = remoteJob.waitFor(); assertNull(remoteJob.getStatus().getError()); + + CopyStatistics copyStatistics = remoteJob.getStatistics(); + assertNotNull(copyStatistics); + assertEquals(0, copyStatistics.getCopiedRows().longValue()); + assertEquals(0, copyStatistics.getCopiedLogicalBytes().longValue()); + Table remoteTable = bigquery.getTable(DATASET, destinationTableName); assertNotNull(remoteTable); assertEquals(destinationTable.getDataset(), remoteTable.getTableId().getDataset()); @@ -5056,6 +5064,37 @@ public void testCopyJob() throws InterruptedException, TimeoutException { assertTrue(remoteTable.delete()); } + @Test + public void testCopyJobStatistics() throws InterruptedException, TimeoutException { + String sourceTableName = "test_copy_job_statistics_source_table"; + String destinationTableName = "test_copy_job_statistics_destination_table"; + + QueryJobConfiguration createTable = + QueryJobConfiguration.newBuilder( + String.format( + "CREATE TABLE %s AS SELECT num FROM UNNEST(GENERATE_ARRAY(0,5)) as num", + sourceTableName)) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .build(); + bigquery.query(createTable); + + // Copy the created table. + TableId sourceTable = TableId.of(DATASET, sourceTableName); + TableId destinationTable = TableId.of(DATASET, destinationTableName); + CopyJobConfiguration configuration = CopyJobConfiguration.of(destinationTable, sourceTable); + Job remoteJob = bigquery.create(JobInfo.of(configuration)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + + CopyStatistics copyStatistics = remoteJob.getStatistics(); + assertNotNull(copyStatistics); + assertEquals(6, copyStatistics.getCopiedRows().longValue()); + // Assert != 0 since copied logical bytes is may return non-deterministic value due to how the + // data is represented. + assertNotEquals(0, copyStatistics.getCopiedLogicalBytes().longValue()); + } + @Test public void testSnapshotTableCopyJob() throws InterruptedException { String sourceTableName = "test_copy_job_base_table"; From 14d1d875c6fe599b32e23358f1c5bcd4f0fffac7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 21:21:44 -0400 Subject: [PATCH 2781/3441] chore(main): release 2.38.3-SNAPSHOT (#3201) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ef726795cdff..a931b0dd7049 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.38.2 + 2.38.3-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index a37ce9c8daf9..37799ec4ef18 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.38.2 + 2.38.3-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.38.2 + 2.38.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f307ff24752d..c26518548903 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.38.2 + 2.38.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.38.2 + 2.38.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 100b6ce9436c..9ed52f877978 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.38.2 + 2.38.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.38.2 + 2.38.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index fea7df554ec3..df5e529f308f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.38.2 + 2.38.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4540e1564a8c..3d8630e02ec1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.38.2:2.38.2 \ No newline at end of file +google-cloud-bigquery:2.38.2:2.38.3-SNAPSHOT \ No newline at end of file From a6402b16ffa8ab473c415cf87a6b2e0d8068e3dc Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 28 Mar 2024 15:02:52 +0100 Subject: [PATCH 2782/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.37.0 (#3214) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 1e424351a905..ef2191a675bd 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.36.0 + 2.37.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index df5e529f308f..a62cf6b6bcb4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.36.0 + 2.37.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9a0220be43fe..0d5be75283c4 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.36.0 + 2.37.0 test From d40ddfa4887bab63dba6404208cfd9b3047cb350 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 2 Apr 2024 16:41:15 +0200 Subject: [PATCH 2783/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.41.0 (#3218) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 9ed52f877978..d461cb4cb000 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.40.0 + 2.41.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ef2191a675bd..753d392d2fa5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.40.0 + 2.41.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a62cf6b6bcb4..c2e77488abd1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.40.0 + 2.41.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0d5be75283c4..83087dd885f5 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.40.0 + 2.41.0 test From 9d71b8b9a9231ea5d7cfa93c7bcbb533d6a3a900 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 2 Apr 2024 16:41:42 +0200 Subject: [PATCH 2784/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.41.0 (#3219) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d461cb4cb000..575022c2ff2b 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.40.0 + 2.41.0 test From 21ae09ce2c63f790ca77cc5c4c0df16dcb123b59 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 2 Apr 2024 16:42:09 +0200 Subject: [PATCH 2785/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.45.0 (#3220) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.45.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f824e619910e..a78760c8987a 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.34.0') +implementation platform('com.google.cloud:libraries-bom:26.35.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/pom.xml b/pom.xml index 575022c2ff2b..f45ba8b7b889 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.44.0 + 1.45.0 pom import From 2740076f072b0ccc65aa51d534ea33d188bf85e0 Mon Sep 17 00:00:00 2001 From: shollyman Date: Mon, 8 Apr 2024 11:46:19 -0700 Subject: [PATCH 2786/3441] testing: reorder test to avoid racing (#3232) Test involves working with a source table and a job that uses the table as an input. Reorders the cleanup until after the job is complete to avoid possible racing with deletion before completion. Fixes: https://togithub.com/googleapis/java-bigquery/issues/3212 --- README.md | 2 +- .../test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a78760c8987a..cc0001a9ce97 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.35.0') +implementation platform('com.google.cloud:libraries-bom:26.37.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 0a589e9edce4..7e6da2b2779f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -5021,13 +5021,12 @@ public void testCreateAndGetJobWithSelectedFields() assertNull(remoteJob.getStatus()); assertNull(remoteJob.getSelfLink()); assertNull(remoteJob.getUserEmail()); - assertTrue(createdTable.delete()); - Job completedJob = remoteJob.waitFor( RetryOption.initialRetryDelay(Duration.ofSeconds(1)), RetryOption.totalTimeout(Duration.ofMinutes(1))); assertNotNull(completedJob); + assertTrue(createdTable.delete()); assertNull(completedJob.getStatus().getError()); assertTrue(bigquery.delete(destinationTable)); } From 43409c9fa879de27087763e2a2b04c4d0582429b Mon Sep 17 00:00:00 2001 From: shollyman Date: Tue, 9 Apr 2024 10:32:16 -0700 Subject: [PATCH 2787/3441] testing: address another possible test flake (#3234) Another case of deleting resource before job may be done using it. Fixes: https://togithub.com/googleapis/java-bigquery/issues/3208 --- .../test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 7e6da2b2779f..9980e69f8360 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -4973,12 +4973,11 @@ public void testCreateAndGetJob() throws InterruptedException, TimeoutException assertNotNull(remoteJob.getStatus()); assertEquals(createdJob.getSelfLink(), remoteJob.getSelfLink()); assertEquals(createdJob.getUserEmail(), remoteJob.getUserEmail()); - assertTrue(createdTable.delete()); Job completedJob = remoteJob.waitFor(RetryOption.totalTimeout(Duration.ofMinutes(1))); - assertNotNull(completedJob); assertNull(completedJob.getStatus().getError()); + assertTrue(createdTable.delete()); assertTrue(bigquery.delete(destinationTable)); } From 7d4fc61fcd546ef664b23550b173abf11437a087 Mon Sep 17 00:00:00 2001 From: Alice <65933803+alicejli@users.noreply.github.com> Date: Wed, 17 Apr 2024 10:02:08 -0400 Subject: [PATCH 2788/3441] chore: include recommended_package in repo-metadata.json (#3241) --- .repo-metadata.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.repo-metadata.json b/.repo-metadata.json index d795a9ea629e..278b4ea8e9f2 100644 --- a/.repo-metadata.json +++ b/.repo-metadata.json @@ -13,5 +13,6 @@ "codeowner_team": "@googleapis/api-bigquery", "api_id": "bigquery.googleapis.com", "library_type": "GAPIC_MANUAL", - "requires_billing": true + "requires_billing": true, + "recommended_package": "com.google.cloud.bigquery" } From 4e65fcfb91775b04d8db3162f549770f1d4d4777 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 17 Apr 2024 16:18:40 +0200 Subject: [PATCH 2789/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.43.0 (#3224) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index f45ba8b7b889..32ca292a7c8b 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.41.0 + 2.43.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 753d392d2fa5..508e4432a386 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.41.0 + 2.43.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c2e77488abd1..6a2093ab5e16 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.41.0 + 2.43.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 83087dd885f5..5e636d072a8a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.41.0 + 2.43.0 test From a8973067348fa09acd91c5b01f048c43fac93894 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 17 Apr 2024 18:01:12 +0200 Subject: [PATCH 2790/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.43.0 (#3225) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 32ca292a7c8b..6c84b203d619 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.41.0 + 2.43.0 test From d45d168bf53a8648e2254c8c4305a5d9a390276d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 17 Apr 2024 18:48:38 +0200 Subject: [PATCH 2791/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.47.0 (#3226) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6c84b203d619..d79a4ed09e68 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.45.0 + 1.47.0 pom import From 975df05b95b714c5574155d5e09860885c4b58f2 Mon Sep 17 00:00:00 2001 From: Anoop Johnson Date: Wed, 17 Apr 2024 10:03:55 -0700 Subject: [PATCH 2792/3441] feat: Add support for ObjectMetadata (#3217) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Add support for ObjectMetadata Fixes #3216 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../bigquery/ExternalTableDefinition.java | 50 +++++++++++++++++++ .../bigquery/ExternalTableDefinitionTest.java | 3 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 43 ++++++++++++++++ 3 files changed, 96 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index d307b82321f5..9f8aa40124bb 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -180,6 +180,12 @@ public Builder setHivePartitioningOptions(HivePartitioningOptions hivePartitioni abstract Builder setHivePartitioningOptionsInner( HivePartitioningOptions hivePartitioningOptions); + public Builder setObjectMetadata(String objectMetadata) { + return setObjectMetadataInner(objectMetadata); + } + + abstract Builder setObjectMetadataInner(String objectMetadata); + /** Creates an {@code ExternalTableDefinition} object. */ @Override public abstract ExternalTableDefinition build(); @@ -255,6 +261,21 @@ public String getFileSetSpecType() { @Nullable public abstract ImmutableList getSourceUrisImmut(); + /** + * Returns the object metadata. + * + * @see + * ObjectMetadata + */ + @Nullable + public String getObjectMetadata() { + return getObjectMetadataInner(); + } + + @Nullable + abstract String getObjectMetadataInner(); + /** * Returns the source format, and possibly some parsing options, of the external data. Supported * formats are {@code CSV} and {@code NEWLINE_DELIMITED_JSON}. @@ -362,6 +383,10 @@ com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataC externalConfigurationPb.setFileSetSpecType(getFileSetSpecType()); } + if (getObjectMetadata() != null) { + externalConfigurationPb.setObjectMetadata(getObjectMetadata()); + } + return externalConfigurationPb; } @@ -426,6 +451,24 @@ public static Builder newBuilder(String sourceUri, FormatOptions format) { return newBuilder().setSourceUris(ImmutableList.of(sourceUri)).setFormatOptions(format); } + /** + * Creates a builder for an ExternalTableDefinition object. + * + * @param sourceUri the fully-qualified URIs that point to your data in Google Cloud. For Google + * Cloud Bigtable URIs: Exactly one URI can be specified and it has be a fully specified and + * valid HTTPS URL for a Google Cloud Bigtable table. Size limits related to load jobs apply + * to external data sources, plus an additional limit of 10 GB maximum size across all URIs. + * @return a builder for an ExternalTableDefinition object given source URIs and format + * @see Quota + * @see + * Source Format + */ + public static Builder newBuilder(String sourceUri) { + checkArgument(!isNullOrEmpty(sourceUri), "Provided sourceUri is null or empty"); + return newBuilder().setSourceUris(ImmutableList.of(sourceUri)); + } + /** * Creates an ExternalTableDefinition object. * @@ -534,6 +577,9 @@ static ExternalTableDefinition fromPb(Table tablePb) { if (externalDataConfiguration.getFileSetSpecType() != null) { builder.setFileSetSpecType(externalDataConfiguration.getFileSetSpecType()); } + if (externalDataConfiguration.getObjectMetadata() != null) { + builder.setObjectMetadata(externalDataConfiguration.getObjectMetadata()); + } } return builder.build(); } @@ -597,6 +643,10 @@ static ExternalTableDefinition fromExternalDataConfiguration( builder.setFileSetSpecType(externalDataConfiguration.getFileSetSpecType()); } + if (externalDataConfiguration.getObjectMetadata() != null) { + builder.setObjectMetadata(externalDataConfiguration.getObjectMetadata()); + } + return builder.build(); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index 3e67ad95992e..ed56598916ac 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -58,6 +58,7 @@ public class ExternalTableDefinitionTest { .setMode("AUTO") .setSourceUriPrefix(SOURCE_URIS.get(0)) .build(); + private static final String OBJECT_METADATA = "SIMPLE"; private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION = ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) .setFileSetSpecType("FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH") @@ -68,6 +69,7 @@ public class ExternalTableDefinitionTest { .setMaxBadRecords(MAX_BAD_RECORDS) .setAutodetect(AUTODETECT) .setHivePartitioningOptions(HIVE_PARTITIONING_OPTIONS) + .setObjectMetadata(OBJECT_METADATA) .build(); private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION_AVRO = @@ -167,5 +169,6 @@ private void compareExternalTableDefinition( assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.getAutodetect(), value.getAutodetect()); assertEquals(expected.getHivePartitioningOptions(), value.getHivePartitioningOptions()); + assertEquals(expected.getObjectMetadata(), value.getObjectMetadata()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 9980e69f8360..9f5c6edd87d6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -6579,6 +6579,49 @@ public void testExternalTableMetadataCachingNotEnable() throws InterruptedExcept assertTrue(remoteTable.delete()); } + @Test + public void testObjectTable() throws InterruptedException { + String tableName = "test_object_table"; + TableId tableId = TableId.of(DATASET, tableName); + + String sourceUri = "gs://" + BUCKET + "/" + JSON_LOAD_FILE; + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.newBuilder(sourceUri) + .setConnectionId( + "projects/java-docs-samples-testing/locations/us/connections/DEVREL_TEST_CONNECTION") + .setObjectMetadata("SIMPLE") + .build(); + TableInfo tableInfo = TableInfo.of(tableId, externalTableDefinition); + Table createdTable = bigquery.create(tableInfo); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertNotNull(remoteTable); + + try { + assertTrue(remoteTable.getDefinition() instanceof ExternalTableDefinition); + assertEquals(createdTable.getTableId(), remoteTable.getTableId()); + assertEquals( + "SIMPLE", ((ExternalTableDefinition) remoteTable.getDefinition()).getObjectMetadata()); + assertNotNull(remoteTable.getDefinition().getSchema().getFields().get("uri")); + + String query = String.format("SELECT * FROM %s.%s", DATASET, tableName); + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).build(); + + Job remoteJob = bigquery.create(JobInfo.of(config)); + remoteJob = remoteJob.waitFor(); + assertNull(remoteJob.getStatus().getError()); + + Job queryJob = bigquery.getJob(remoteJob.getJobId()); + JobStatistics.QueryStatistics statistics = queryJob.getStatistics(); + assertNotNull(statistics); + assertThat(statistics.getTotalBytesProcessed()).isGreaterThan(0); + } finally { + assertTrue(remoteTable.delete()); + } + } + static GoogleCredentials loadCredentials(String credentialFile) { try { InputStream keyStream = new ByteArrayInputStream(credentialFile.getBytes()); From 2c3399dd10fecc01237158a3cdeee966b38746f2 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Wed, 17 Apr 2024 16:02:07 -0400 Subject: [PATCH 2793/3441] feat: Add Range object to allow reading range value (#3236) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Add Range object to allow reading range value This PR also adds the ability to use Range query parameter * fix: lint error * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Add IT test for listTableData with Range value * Change Range get[Start, End] to return FieldValue * Fix QueryParameterValueTest * Update FieldValue to include type for Range values --------- Co-authored-by: Owl Bot --- .../cloud/bigquery/FieldElementType.java | 11 ++ .../com/google/cloud/bigquery/FieldValue.java | 28 ++++- .../cloud/bigquery/QueryParameterValue.java | 65 ++++++++++ .../java/com/google/cloud/bigquery/Range.java | 114 +++++++++++++++++ .../cloud/bigquery/FieldElementTypeTest.java | 6 + .../google/cloud/bigquery/FieldValueTest.java | 10 ++ .../bigquery/QueryParameterValueTest.java | 65 ++++++++++ .../com/google/cloud/bigquery/RangeTest.java | 100 +++++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 117 ++++++++++++++++-- 9 files changed, 508 insertions(+), 8 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Range.java create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldElementType.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldElementType.java index 43446e1d01a1..de601151e192 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldElementType.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldElementType.java @@ -15,6 +15,7 @@ */ package com.google.cloud.bigquery; +import com.google.api.services.bigquery.model.QueryParameterType; import com.google.api.services.bigquery.model.TableFieldSchema; import com.google.auto.value.AutoValue; import java.io.Serializable; @@ -60,4 +61,14 @@ static FieldElementType fromPb(TableFieldSchema.RangeElementType rangeElementTyp } return null; } + + /** Creates an instance of FieldElementType from QueryParameterType with RangeElementType. */ + static FieldElementType fromPb(QueryParameterType queryParameterTypePb) { + // Treat a FieldElementType message without a Type subfield as invalid. + if ((queryParameterTypePb.getRangeElementType() != null) + && (queryParameterTypePb.getRangeElementType().getType() != null)) { + return newBuilder().setType(queryParameterTypePb.getRangeElementType().getType()).build(); + } + return null; + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java index ea68075f7f25..a28f2ed61bc4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java @@ -67,7 +67,10 @@ public enum Attribute { REPEATED, /** A {@code FieldValue} for a field of type {@link LegacySQLTypeName#RECORD}. */ - RECORD + RECORD, + + /** A {@code FieldValue} for a field of type {@link LegacySQLTypeName#RANGE}. */ + RANGE } private FieldValue(Attribute attribute, Object value) { @@ -229,6 +232,23 @@ public BigDecimal getNumericValue() { return new BigDecimal(getStringValue()); } + /** + * Returns this field's value as a {@link Range}. This method should only be used * if the + * corresponding field has {@link LegacySQLTypeName#RANGE} type. + * + * @throws ClassCastException if the field is not a primitive type + * @throws IllegalArgumentException if the field's value could not be converted to {@link Range} + * @throws NullPointerException if {@link #isNull()} returns {@code true} + */ + @SuppressWarnings("unchecked") + public Range getRangeValue() { + if (attribute == Attribute.RANGE) { + return (Range) value; + } + // Provide best effort to convert value to Range object. + return Range.of(getStringValue()); + } + /** * Returns this field's value as a list of {@link FieldValue}. This method should only be used if * the corresponding field has {@link Field.Mode#REPEATED} mode (i.e. {@link #getAttribute()} is @@ -332,6 +352,12 @@ static FieldValue fromPb(Object cellPb, Field recordSchema) { return FieldValue.of(Attribute.PRIMITIVE, null); } if (cellPb instanceof String) { + if ((recordSchema != null) + && (recordSchema.getType() == LegacySQLTypeName.RANGE) + && (recordSchema.getRangeElementType() != null)) { + return FieldValue.of( + Attribute.RANGE, Range.of((String) cellPb, recordSchema.getRangeElementType())); + } return FieldValue.of(Attribute.PRIMITIVE, cellPb); } if (cellPb instanceof List) { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index 85ebd2957b9f..a7469a3a68d4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -22,6 +22,7 @@ import static org.threeten.bp.temporal.ChronoField.SECOND_OF_MINUTE; import com.google.api.services.bigquery.model.QueryParameterType; +import com.google.api.services.bigquery.model.RangeValue; import com.google.auto.value.AutoValue; import com.google.cloud.Timestamp; import com.google.common.base.Function; @@ -141,6 +142,13 @@ public Builder setStructValues(Map structValues) { abstract Builder setStructValuesInner(Map structValues); + /** Sets range values. The type must set to RANGE. */ + public Builder setRangeValues(Range range) { + return setRangeValuesInner(range); + } + + abstract Builder setRangeValuesInner(Range range); + /** Sets the parameter data type. */ public abstract Builder setType(StandardSQLTypeName type); @@ -184,6 +192,15 @@ public Map getStructValues() { @Nullable abstract Map getStructValuesInner(); + /** Returns the struct values of this parameter. The returned map, if not null, is immutable. */ + @Nullable + public Range getRangeValues() { + return getRangeValuesInner(); + } + + @Nullable + abstract Range getRangeValuesInner(); + /** Returns the data type of this parameter. */ public abstract StandardSQLTypeName getType(); @@ -333,6 +350,14 @@ public static QueryParameterValue interval(PeriodDuration value) { return of(value, StandardSQLTypeName.INTERVAL); } + /** Creates a {@code QueryParameterValue} object with a type of RANGE. */ + public static QueryParameterValue range(Range value) { + return QueryParameterValue.newBuilder() + .setRangeValues(value) + .setType(StandardSQLTypeName.RANGE) + .build(); + } + /** * Creates a {@code QueryParameterValue} object with a type of ARRAY, and an array element type * based on the given class. @@ -442,6 +467,8 @@ private static String valueToStringOrNull(T value, StandardSQLTypeName type) throw new IllegalArgumentException("Cannot convert STRUCT to String value"); case ARRAY: throw new IllegalArgumentException("Cannot convert ARRAY to String value"); + case RANGE: + throw new IllegalArgumentException("Cannot convert RANGE to String value"); case TIMESTAMP: if (value instanceof Long) { Timestamp timestamp = Timestamp.ofTimeMicroseconds((Long) value); @@ -517,6 +544,22 @@ com.google.api.services.bigquery.model.QueryParameterValue toValuePb() { } valuePb.setStructValues(structValues); } + if (getType() == StandardSQLTypeName.RANGE) { + RangeValue rangeValue = new RangeValue(); + if (!getRangeValues().getStart().isNull()) { + com.google.api.services.bigquery.model.QueryParameterValue startValue = + new com.google.api.services.bigquery.model.QueryParameterValue(); + startValue.setValue(getRangeValues().getStart().getStringValue()); + rangeValue.setStart(startValue); + } + if (!getRangeValues().getEnd().isNull()) { + com.google.api.services.bigquery.model.QueryParameterValue endValue = + new com.google.api.services.bigquery.model.QueryParameterValue(); + endValue.setValue(getRangeValues().getEnd().getStringValue()); + rangeValue.setEnd(endValue); + } + valuePb.setRangeValue(rangeValue); + } return valuePb; } @@ -544,6 +587,13 @@ QueryParameterType toTypePb() { } typePb.setStructTypes(structTypes); } + if (getType() == StandardSQLTypeName.RANGE + && getRangeValues() != null + && getRangeValues().getType() != null) { + QueryParameterType rangeTypePb = new QueryParameterType(); + rangeTypePb.setType(getRangeValues().getType().getType()); + typePb.setRangeElementType(rangeTypePb); + } return typePb; } @@ -592,6 +642,21 @@ static QueryParameterValue fromPb( } valueBuilder.setStructValues(structValues); } + } else if (type == StandardSQLTypeName.RANGE) { + Range.Builder range = Range.newBuilder(); + if (valuePb.getRangeValue() != null) { + com.google.api.services.bigquery.model.RangeValue rangeValuePb = valuePb.getRangeValue(); + if (rangeValuePb.getStart() != null && rangeValuePb.getStart().getValue() != null) { + range.setStart(valuePb.getRangeValue().getStart().getValue()); + } + if (rangeValuePb.getEnd() != null && rangeValuePb.getEnd().getValue() != null) { + range.setEnd(valuePb.getRangeValue().getEnd().getValue()); + } + } + if (typePb.getRangeElementType() != null && typePb.getRangeElementType().getType() != null) { + range.setType(FieldElementType.fromPb(typePb)); + } + valueBuilder.setRangeValues(range.build()); } else { valueBuilder.setValue(valuePb == null ? "" : valuePb.getValue()); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Range.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Range.java new file mode 100644 index 000000000000..198bd28faa06 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Range.java @@ -0,0 +1,114 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static com.google.common.base.Preconditions.checkNotNull; + +import com.google.auto.value.AutoValue; +import com.google.cloud.bigquery.FieldValue.Attribute; +import java.io.Serializable; +import javax.annotation.Nullable; + +@AutoValue +public abstract class Range implements Serializable { + private static final long serialVersionUID = 1L; + + /** Returns the start value of the range. A null value represents an unbounded start. */ + public FieldValue getStart() { + // The supported Range types [DATE, TIME, TIMESTAMP] are all Attribute.PRIMITIVE. + return FieldValue.of(Attribute.PRIMITIVE, getStartInner()); + } + + @Nullable + abstract String getStartInner(); + + /** Returns the end value of the range. A null value represents an unbounded end. */ + public FieldValue getEnd() { + // The supported Range types [DATE, TIME, TIMESTAMP] are all Attribute.PRIMITIVE. + return FieldValue.of(Attribute.PRIMITIVE, getEndInner()); + } + + @Nullable + abstract String getEndInner(); + + /** Returns the type of the range. */ + @Nullable + public abstract FieldElementType getType(); + + public abstract Range.Builder toBuilder(); + + @AutoValue.Builder + public abstract static class Builder { + + public Range.Builder setStart(String start) { + return setStartInner(start); + } + + abstract Range.Builder setStartInner(String start); + + public Range.Builder setEnd(String end) { + return setEndInner(end); + } + + abstract Range.Builder setEndInner(String end); + + public abstract Range.Builder setType(FieldElementType type); + + public abstract Range build(); + } + + /** Creates a range builder. Supported StandardSQLTypeName are [DATE, DATETIME, TIMESTAMP] */ + public static Builder newBuilder() { + return new AutoValue_Range.Builder(); + } + + public static Range of(String value) throws IllegalArgumentException { + return of(value, null); + } + + /** + * Creates an instance of {@code Range} from a string representation. + * + *

    The expected string format is: "[start, end)", where start and end are string format of + * [DATE, TIME, TIMESTAMP]. + */ + public static Range of(String value, FieldElementType type) throws IllegalArgumentException { + checkNotNull(value); + Range.Builder builder = newBuilder(); + if (type != null) { + builder.setType(type); + } + String[] startEnd = value.split(", ", 2); // Expect an extra space after ','. + if (startEnd.length != 2) { + throw new IllegalArgumentException( + String.format("Expected Range value string to be [start, end) and got %s", value)); + } + + String start = startEnd[0].substring(1); // Ignore the [ + String end = startEnd[1].substring(0, startEnd[1].length() - 1); // Ignore the ) + if (start.equalsIgnoreCase("UNBOUNDED") || (start.equalsIgnoreCase("NULL"))) { + builder.setStart(null); + } else { + builder.setStart(start); + } + if (end.equalsIgnoreCase("UNBOUNDED") || (end.equalsIgnoreCase("NULL"))) { + builder.setEnd(null); + } else { + builder.setEnd(end); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java index 9b4590892952..cf217b25c722 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java @@ -17,6 +17,7 @@ import static org.junit.Assert.assertEquals; +import com.google.api.services.bigquery.model.QueryParameterType; import org.junit.Test; public class FieldElementTypeTest { @@ -36,6 +37,11 @@ public void testBuilder() { @Test public void testFromAndPb() { assertEquals(FIELD_ELEMENT_TYPE, FieldElementType.fromPb(FIELD_ELEMENT_TYPE.toPb())); + assertEquals( + FIELD_ELEMENT_TYPE, + FieldElementType.fromPb( + new QueryParameterType() + .setRangeElementType(new QueryParameterType().setType("DATE")))); } private void compareFieldElementType(FieldElementType expected, FieldElementType value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java index 90cb69061835..eaebe3567116 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java @@ -55,6 +55,9 @@ public class FieldValueTest { private static final Map BYTES_FIELD = ImmutableMap.of("v", BYTES_BASE64); private static final Map NULL_FIELD = ImmutableMap.of("v", Data.nullOf(String.class)); + + private static final Map RANGE_FIELD = ImmutableMap.of("v", "[start, end)"); + private static final Map REPEATED_FIELD = ImmutableMap.of("v", ImmutableList.of(INTEGER_FIELD, INTEGER_FIELD)); private static final Map RECORD_FIELD = @@ -99,6 +102,9 @@ public void testFromPb() { assertArrayEquals(BYTES, value.getBytesValue()); value = FieldValue.fromPb(NULL_FIELD); assertNull(value.getValue()); + value = FieldValue.fromPb(RANGE_FIELD); + assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); + assertEquals(Range.of(RANGE_FIELD.get("v")), value.getRangeValue()); value = FieldValue.fromPb(REPEATED_FIELD); assertEquals(FieldValue.Attribute.REPEATED, value.getAttribute()); assertEquals(FieldValue.fromPb(INTEGER_FIELD), value.getRepeatedValue().get(0)); @@ -156,6 +162,10 @@ public void testEquals() { assertEquals(nullValue, FieldValue.fromPb(NULL_FIELD)); assertEquals(nullValue.hashCode(), FieldValue.fromPb(NULL_FIELD).hashCode()); + FieldValue rangeValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "[start, end)"); + assertEquals(rangeValue, FieldValue.fromPb(RANGE_FIELD)); + assertEquals(rangeValue.hashCode(), FieldValue.fromPb(RANGE_FIELD).hashCode()); + FieldValue repeatedValue = FieldValue.of(FieldValue.Attribute.REPEATED, ImmutableList.of(integerValue, integerValue)); assertEquals(repeatedValue, FieldValue.fromPb(REPEATED_FIELD)); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index 0534865b238d..e0ea9d68dd08 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -619,4 +619,69 @@ private static void assertArrayDataEquals( assertThat(value.getArrayValues()).isNull(); } } + + @Test + public void testRange() { + testRangeDataEquals(null, null, FieldElementType.newBuilder().setType("DATE").build()); + testRangeDataEquals(null, "1971-02-03", FieldElementType.newBuilder().setType("DATE").build()); + testRangeDataEquals("1970-01-02", null, FieldElementType.newBuilder().setType("DATE").build()); + testRangeDataEquals( + "1970-01-02", "1971-02-03", FieldElementType.newBuilder().setType("DATE").build()); + + testRangeDataEquals(null, null, FieldElementType.newBuilder().setType("DATETIME").build()); + testRangeDataEquals( + null, + "2015-09-20 06:41:35.220000", + FieldElementType.newBuilder().setType("DATETIME").build()); + testRangeDataEquals( + "2014-08-19 05:41:35.220000", + null, + FieldElementType.newBuilder().setType("DATETIME").build()); + testRangeDataEquals( + "2014-08-19 05:41:35.220000", + "2015-09-20 06:41:35.220000", + FieldElementType.newBuilder().setType("DATETIME").build()); + + testRangeDataEquals(null, null, FieldElementType.newBuilder().setType("TIMESTAMP").build()); + testRangeDataEquals( + null, + "2015-09-20 13:41:35.220000+01:00", + FieldElementType.newBuilder().setType("TIMESTAMP").build()); + testRangeDataEquals( + "2014-08-19 12:41:35.220000+00:00", + null, + FieldElementType.newBuilder().setType("TIMESTAMP").build()); + testRangeDataEquals( + "2014-08-19 12:41:35.220000+00:00", + "2015-09-20 13:41:35.220000+01:00", + FieldElementType.newBuilder().setType("TIMESTAMP").build()); + } + + /** Helper method to test range QueryParameterValue and its permutations. */ + private static void testRangeDataEquals(String start, String end, FieldElementType type) { + QueryParameterValue rangeField = + QueryParameterValue.range( + Range.newBuilder().setType(type).setStart(start).setEnd(end).build()); + QueryParameterType parameterType = rangeField.toTypePb(); + com.google.api.services.bigquery.model.QueryParameterValue parameterValue = + rangeField.toValuePb(); + QueryParameterValue queryParameterValue = + QueryParameterValue.fromPb(parameterValue, parameterType); + + assertThat(queryParameterValue.getType()).isEqualTo(StandardSQLTypeName.RANGE); + if (start == null) { + assertThat(queryParameterValue.getRangeValues().getStart().isNull()).isTrue(); + } else { + assertThat(queryParameterValue.getRangeValues().getStart().getStringValue()).isEqualTo(start); + } + if (end == null) { + assertThat(queryParameterValue.getRangeValues().getEnd().isNull()).isTrue(); + } else { + assertThat(queryParameterValue.getRangeValues().getEnd().getStringValue()).isEqualTo(end); + } + assertThat(queryParameterValue.getRangeValues().getType()).isEqualTo(type); + assertThat(queryParameterValue.getArrayValues()).isNull(); + assertThat(queryParameterValue.getStructValues()).isNull(); + assertThat(queryParameterValue.getValue()).isNull(); + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java new file mode 100644 index 000000000000..45bb83259d4c --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java @@ -0,0 +1,100 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +public class RangeTest { + private static final Range RANGE_DATE = + Range.newBuilder() + .setType(FieldElementType.newBuilder().setType("DATE").build()) + .setStart("1970-01-02") + .setEnd("1970-03-04") + .build(); + + private static final Range RANGE_DATETIME = + Range.newBuilder() + .setType(FieldElementType.newBuilder().setType("DATETIME").build()) + .setStart("2014-08-19 05:41:35.220000") + .setEnd("2015-09-20 06:41:35.220000") + .build(); + + private static final Range RANGE_TIMESTAMP = + Range.newBuilder() + .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .setStart("2014-08-19 12:41:35.220000+00:00") + .setEnd("2015-09-20 13:41:35.220000+01:00") + .build(); + + @Test + public void testOf() { + compareRange(null, null, Range.of("[null, NULL)")); + compareRange(null, null, Range.of("[unbounded, UNBOUNDED)")); + compareRange(null, null, Range.of("[nUlL, uNbOuNdEd)")); + + compareRange(null, "2020-12-31", Range.of("[null, 2020-12-31)")); + compareRange("2020-01-01", null, Range.of("[2020-01-01, null)")); + compareRange("2020-01-01", "2020-12-31", Range.of("[2020-01-01, 2020-12-31)")); + } + + @Test + public void testBuilder() { + assertEquals("1970-01-02", RANGE_DATE.getStart().getStringValue()); + assertEquals("1970-03-04", RANGE_DATE.getEnd().getStringValue()); + assertEquals(FieldElementType.newBuilder().setType("DATE").build(), RANGE_DATE.getType()); + + assertEquals("2014-08-19 05:41:35.220000", RANGE_DATETIME.getStart().getStringValue()); + assertEquals("2015-09-20 06:41:35.220000", RANGE_DATETIME.getEnd().getStringValue()); + assertEquals( + FieldElementType.newBuilder().setType("DATETIME").build(), RANGE_DATETIME.getType()); + + assertEquals("2014-08-19 12:41:35.220000+00:00", RANGE_TIMESTAMP.getStart().getStringValue()); + assertEquals("2015-09-20 13:41:35.220000+01:00", RANGE_TIMESTAMP.getEnd().getStringValue()); + assertEquals( + FieldElementType.newBuilder().setType("TIMESTAMP").build(), RANGE_TIMESTAMP.getType()); + } + + @Test + public void testToBuilder() { + compareRange(RANGE_DATE, RANGE_DATE.toBuilder().build()); + compareRange(RANGE_DATETIME, RANGE_DATETIME.toBuilder().build()); + compareRange(RANGE_TIMESTAMP, RANGE_TIMESTAMP.toBuilder().build()); + } + + private static void compareRange(Range expected, Range value) { + assertEquals(expected.getStart(), value.getStart()); + assertEquals(expected.getEnd(), value.getEnd()); + assertEquals(expected.getType(), value.getType()); + assertEquals(expected.hashCode(), value.hashCode()); + assertEquals(expected.toString(), value.toString()); + } + + private static void compareRange(String expectedStart, String expectedEnd, Range range) { + if (expectedStart == null) { + assertTrue(range.getStart().isNull()); + } else { + assertEquals(expectedStart, range.getStart().getStringValue()); + } + if (expectedEnd == null) { + assertTrue(range.getEnd().isNull()); + } else { + assertEquals(expectedEnd, range.getEnd().getStringValue()); + } + } +} diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 9f5c6edd87d6..b385fe47b534 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -109,6 +109,7 @@ import com.google.cloud.bigquery.PrimaryKey; import com.google.cloud.bigquery.QueryJobConfiguration; import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.Range; import com.google.cloud.bigquery.RangePartitioning; import com.google.cloud.bigquery.Routine; import com.google.cloud.bigquery.RoutineArgument; @@ -1312,14 +1313,31 @@ public void testIntervalType() throws InterruptedException { } @Test - public void testRangeType() throws InterruptedException { - String tableName = "test_create_table_rangetype"; + public void testRangeCreateTable() throws InterruptedException { + String tableName = "test_range_create_table"; TableId tableId = TableId.of(DATASET, tableName); - Schema schema = - Schema.of( - Field.newBuilder("rangeField", StandardSQLTypeName.RANGE) - .setRangeElementType(FieldElementType.newBuilder().setType("DATETIME").build()) - .build()); + Field rangeFieldWithDate = + Field.newBuilder("rangeFieldDate", StandardSQLTypeName.RANGE) + .setMode(Field.Mode.NULLABLE) + .setDescription("Range field with DATE") + .setRangeElementType(FieldElementType.newBuilder().setType("DATE").build()) + .build(); + + Field rangeFieldWithDatetime = + Field.newBuilder("rangeFieldDatetime", StandardSQLTypeName.RANGE) + .setMode(Field.Mode.NULLABLE) + .setDescription("Range field with DATETIME") + .setRangeElementType(FieldElementType.newBuilder().setType("DATETIME").build()) + .build(); + + Field rangeFieldWithTimestamp = + Field.newBuilder("rangeFieldTimestamp", StandardSQLTypeName.RANGE) + .setMode(Field.Mode.NULLABLE) + .setDescription("Range field with TIMESTAMP") + .setRangeElementType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .build(); + + Schema schema = Schema.of(rangeFieldWithDate, rangeFieldWithDatetime, rangeFieldWithTimestamp); StandardTableDefinition standardTableDefinition = StandardTableDefinition.of(schema); try { // Create a table with a RANGE column. @@ -1330,6 +1348,91 @@ public void testRangeType() throws InterruptedException { } } + @Test + public void testRangeType() throws InterruptedException { + // TODO: Combine testRangeType test with testRangeCreateTable test. + String tableName = "test_range_type_table"; + QueryJobConfiguration createTable = + QueryJobConfiguration.newBuilder( + String.format( + "CREATE TABLE %s AS SELECT RANGE(DATE '2020-01-01', DATE '2020-12-31') as date, \n" + + "RANGE(DATETIME '2020-01-01T12:00:00', DATETIME '2020-12-31T12:00:00') as datetime, \n" + + "RANGE(TIMESTAMP '2014-01-01 07:00:00.000000+00:00', TIMESTAMP '2015-01-01 07:00:00.000000+00:00') as timestamp", + tableName)) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .build(); + bigquery.query(createTable); + + String query = + String.format( + "SELECT date, datetime, timestamp\n" + + "FROM %s.%s\n" + + "WHERE date = @dateParam\n" + + "AND datetime = @datetimeParam\n" + + "AND timestamp = @timestampParam", + DATASET, tableName); + + Range dateRange = + Range.newBuilder() + .setType(FieldElementType.newBuilder().setType("DATE").build()) + .setStart("2020-01-01") + .setEnd("2020-12-31") + .build(); + Range datetimeRange = + Range.newBuilder() + .setType(FieldElementType.newBuilder().setType("DATETIME").build()) + .setStart("2020-01-01T12:00:00") + .setEnd("2020-12-31T12:00:00") + .build(); + Range timestampRange = + Range.newBuilder() + .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .setStart("2014-01-01 07:00:00.000000+00:00") + .setEnd("2015-01-01 07:00:00.000000+00:00") + .build(); + + // Test Query Parameter. + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .addNamedParameter("dateParam", QueryParameterValue.range(dateRange)) + .addNamedParameter("datetimeParam", QueryParameterValue.range(datetimeRange)) + .addNamedParameter("timestampParam", QueryParameterValue.range(timestampRange)) + .build(); + TableResult result = bigquery.query(config); + assertEquals(1, Iterables.size(result.getValues())); + for (FieldValueList values : result.iterateAll()) { + assertEquals(dateRange.getStart(), values.get("date").getRangeValue().getStart()); + assertEquals(dateRange.getEnd(), values.get("date").getRangeValue().getEnd()); + assertEquals(datetimeRange.getStart(), values.get("datetime").getRangeValue().getStart()); + assertEquals(datetimeRange.getEnd(), values.get("datetime").getRangeValue().getEnd()); + // timestamps are returned as seconds since epoch + assertEquals( + 1388559600000000L, + values.get("timestamp").getRangeValue().getStart().getTimestampValue()); + assertEquals( + 1420095600000000L, values.get("timestamp").getRangeValue().getEnd().getTimestampValue()); + } + + // Test listTableData. + Schema schema = result.getSchema(); + result = bigquery.listTableData(DATASET, tableName, schema); + assertEquals(1, Iterables.size(result.getValues())); + for (FieldValueList values : result.iterateAll()) { + assertEquals(dateRange.getStart(), values.get("date").getRangeValue().getStart()); + assertEquals(dateRange.getEnd(), values.get("date").getRangeValue().getEnd()); + assertEquals(datetimeRange.getStart(), values.get("datetime").getRangeValue().getStart()); + assertEquals(datetimeRange.getEnd(), values.get("datetime").getRangeValue().getEnd()); + // timestamps are returned as seconds since epoch + assertEquals( + 1388559600000000L, + values.get("timestamp").getRangeValue().getStart().getTimestampValue()); + assertEquals( + 1420095600000000L, values.get("timestamp").getRangeValue().getEnd().getTimestampValue()); + } + } + @Test public void testCreateTableWithConstraints() { String tableName = "test_create_table_with_constraints"; From e91be80ebdd39c2448914ff9aa1742f3079d0bb8 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Wed, 17 Apr 2024 16:04:35 -0400 Subject: [PATCH 2794/3441] feat: Add ExportDataStats to QueryStatistics (#3244) --- .../google/cloud/bigquery/JobStatistics.java | 97 +++++++++++++++++++ .../cloud/bigquery/JobStatisticsTest.java | 12 +++ .../cloud/bigquery/it/ITBigQueryTest.java | 24 +++++ 3 files changed, 133 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index c600f6a198e1..0200711d6a05 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -17,12 +17,14 @@ package com.google.cloud.bigquery; import com.google.api.core.ApiFunction; +import com.google.api.services.bigquery.model.ExportDataStatistics; import com.google.api.services.bigquery.model.JobConfiguration; import com.google.api.services.bigquery.model.JobStatistics2; import com.google.api.services.bigquery.model.JobStatistics3; import com.google.api.services.bigquery.model.JobStatistics4; import com.google.api.services.bigquery.model.JobStatistics5; import com.google.api.services.bigquery.model.QueryParameter; +import com.google.auto.value.AutoValue; import com.google.cloud.StringEnumType; import com.google.cloud.StringEnumValue; import com.google.common.base.Function; @@ -32,6 +34,7 @@ import java.io.Serializable; import java.util.List; import java.util.Objects; +import javax.annotation.Nullable; import org.checkerframework.checker.nullness.compatqual.NullableDecl; /** A Google BigQuery Job statistics. */ @@ -398,6 +401,7 @@ public static class QueryStatistics extends JobStatistics { private final Long estimatedBytesProcessed; private final Long numDmlAffectedRows; private final DmlStats dmlStats; + private final ExportDataStats exportDataStats; private final List referencedTables; private final StatementType statementType; private final Long totalBytesBilled; @@ -472,6 +476,80 @@ public static StatementType[] values() { } } + /** + * Statistics for the EXPORT DATA statement as part of Query Job. EXTRACT JOB statistics are + * populated in ExtractStatistics. + */ + @AutoValue + public abstract static class ExportDataStats implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * Returns number of destination files generated in case of EXPORT DATA statement only. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract Long getFileCount(); + + /** + * Returns number of destination rows generated in case of EXPORT DATA statement only. + * + * @return value or {@code null} for none + */ + @Nullable + public abstract Long getRowCount(); + + public abstract Builder toBuilder(); + + public static Builder newBuilder() { + return new AutoValue_JobStatistics_QueryStatistics_ExportDataStats.Builder(); + } + + static ExportDataStats fromPb(ExportDataStatistics exportDataStatisticsPb) { + Builder builder = newBuilder(); + if (exportDataStatisticsPb.getFileCount() != null) { + builder.setFileCount(exportDataStatisticsPb.getFileCount()); + } + if (exportDataStatisticsPb.getRowCount() != null) { + builder.setRowCount(exportDataStatisticsPb.getRowCount()); + } + return builder.build(); + } + + ExportDataStatistics toPb() { + ExportDataStatistics exportDataStatisticsPb = new ExportDataStatistics(); + if (getFileCount() != null) { + exportDataStatisticsPb.setFileCount(getFileCount()); + } + if (getRowCount() != null) { + exportDataStatisticsPb.setRowCount(getRowCount()); + } + return exportDataStatisticsPb; + } + + @AutoValue.Builder + public abstract static class Builder { + + /** + * Number of destination files generated in case of EXPORT DATA statement only. + * + * @param fileCount fileCount or {@code null} for none + */ + public abstract Builder setFileCount(Long fileCount); + + /** + * Number of destination rows generated in case of EXPORT DATA statement only. + * + * @param rowCount rowCount or {@code null} for none + */ + public abstract Builder setRowCount(Long rowCount); + + /** Creates a {@code ExportDataStats} object. */ + public abstract ExportDataStats build(); + } + } + static final class Builder extends JobStatistics.Builder { private BiEngineStats biEngineStats; @@ -483,6 +561,7 @@ static final class Builder extends JobStatistics.Builder referencedTables; private StatementType statementType; private Long totalBytesBilled; @@ -553,6 +632,10 @@ private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsP if (statisticsPb.getQuery().getDmlStats() != null) { this.dmlStats = DmlStats.fromPb(statisticsPb.getQuery().getDmlStats()); } + if (statisticsPb.getQuery().getExportDataStatistics() != null) { + this.exportDataStats = + ExportDataStats.fromPb(statisticsPb.getQuery().getExportDataStatistics()); + } } } @@ -601,6 +684,11 @@ Builder setDmlStats(DmlStats dmlStats) { return self(); } + Builder setExportDataStats(ExportDataStats exportDataStats) { + this.exportDataStats = exportDataStats; + return self(); + } + Builder setReferenceTables(List referencedTables) { this.referencedTables = referencedTables; return self(); @@ -683,6 +771,7 @@ private QueryStatistics(Builder builder) { this.estimatedBytesProcessed = builder.estimatedBytesProcessed; this.numDmlAffectedRows = builder.numDmlAffectedRows; this.dmlStats = builder.dmlStats; + this.exportDataStats = builder.exportDataStats; this.referencedTables = builder.referencedTables; this.statementType = builder.statementType; this.totalBytesBilled = builder.totalBytesBilled; @@ -749,6 +838,11 @@ public DmlStats getDmlStats() { return dmlStats; } + /** Detailed statistics for EXPORT DATA statement. */ + public ExportDataStats getExportDataStats() { + return exportDataStats; + } + /** * Referenced tables for the job. Queries that reference more than 50 tables will not have a * complete list. @@ -900,6 +994,9 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { if (dmlStats != null) { queryStatisticsPb.setDmlStats(dmlStats.toPb()); } + if (exportDataStats != null) { + queryStatisticsPb.setExportDataStatistics(exportDataStats.toPb()); + } if (referencedTables != null) { queryStatisticsPb.setReferencedTables( Lists.transform(referencedTables, TableId.TO_PB_FUNCTION)); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index 24344514e0bd..aaf4aa2b1691 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -23,6 +23,7 @@ import com.google.cloud.bigquery.JobStatistics.ExtractStatistics; import com.google.cloud.bigquery.JobStatistics.LoadStatistics; import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics.ExportDataStats; import com.google.cloud.bigquery.JobStatistics.ReservationUsage; import com.google.cloud.bigquery.JobStatistics.ScriptStatistics; import com.google.cloud.bigquery.JobStatistics.ScriptStatistics.ScriptStackFrame; @@ -64,6 +65,13 @@ public class JobStatisticsTest { .setInsertedRowCount(INSERTED_ROW_COUNT) .setUpdatedRowCount(UPDATED_ROW_COUNT) .build(); + private static final Long EXPORT_DATA_STATS_ROW_COUNT = 3L; + private static final Long EXPORT_DATA_STATS_FILE_COUNT = 2L; + private static final ExportDataStats EXPORT_DATA_STATS = + ExportDataStats.newBuilder() + .setRowCount(EXPORT_DATA_STATS_ROW_COUNT) + .setFileCount(EXPORT_DATA_STATS_FILE_COUNT) + .build(); private static final QueryStatistics.StatementType STATEMENT_TYPE = QueryStatistics.StatementType.SELECT; private static final Long TOTAL_BYTES_BILLED = 24L; @@ -189,6 +197,7 @@ public class JobStatisticsTest { .setEstimatedBytesProcessed(ESTIMATE_BYTES_PROCESSED) .setNumDmlAffectedRows(NUM_DML_AFFECTED_ROWS) .setDmlStats(DML_STATS) + .setExportDataStats(EXPORT_DATA_STATS) .setReferenceTables(REFERENCED_TABLES) .setStatementType(STATEMENT_TYPE) .setTotalBytesBilled(TOTAL_BYTES_BILLED) @@ -293,6 +302,7 @@ public void testBuilder() { assertEquals(ESTIMATE_BYTES_PROCESSED, QUERY_STATISTICS.getEstimatedBytesProcessed()); assertEquals(NUM_DML_AFFECTED_ROWS, QUERY_STATISTICS.getNumDmlAffectedRows()); assertEquals(DML_STATS, QUERY_STATISTICS.getDmlStats()); + assertEquals(EXPORT_DATA_STATS, QUERY_STATISTICS.getExportDataStats()); assertEquals(REFERENCED_TABLES, QUERY_STATISTICS.getReferencedTables()); assertEquals(STATEMENT_TYPE, QUERY_STATISTICS.getStatementType()); assertEquals(TOTAL_BYTES_BILLED, QUERY_STATISTICS.getTotalBytesBilled()); @@ -448,6 +458,8 @@ private void compareQueryStatistics(QueryStatistics expected, QueryStatistics va assertEquals(expected.getMetadataCacheStats(), value.getMetadataCacheStats()); assertEquals(expected.getStatementType(), value.getStatementType()); assertEquals(expected.getTimeline(), value.getTimeline()); + assertEquals(expected.getDmlStats(), value.getDmlStats()); + assertEquals(expected.getExportDataStats(), value.getExportDataStats()); } private void compareStatistics(JobStatistics expected, JobStatistics value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b385fe47b534..430235fba6f8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -6734,4 +6734,28 @@ static GoogleCredentials loadCredentials(String credentialFile) { } return null; } + + @Test + public void testQueryExportStatistics() throws InterruptedException { + String query = + String.format( + "EXPORT DATA OPTIONS(\n" + + " uri='gs://%s/*.csv',\n" + + " format='CSV',\n" + + " overwrite=true,\n" + + " header=true,\n" + + " field_delimiter=';') AS\n" + + "SELECT num FROM UNNEST([1,2,3]) AS num", + BUCKET); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); + Job job = bigquery.create(JobInfo.of(JobId.of(), config)); + job = job.waitFor(); + + QueryStatistics queryStatistics = job.getStatistics(); + assertNotNull(queryStatistics); + assertNotNull(queryStatistics.getExportDataStats()); + assertEquals(1L, queryStatistics.getExportDataStats().getFileCount().longValue()); + assertEquals(3L, queryStatistics.getExportDataStats().getRowCount().longValue()); + } } From 1bb51ede58d4dc5c12f8c85f3641f989f2f1eb88 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 18 Apr 2024 13:07:39 -0400 Subject: [PATCH 2795/3441] chore: adding 'infrastructure-public-image-' tags for owlbot-java (#1947) (#3227) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: adding 'infrastructure-public-image-' tags for owlbot-java (#1947) Source-Link: https://github.com/googleapis/synthtool/commit/349943b54f15f9f9655a3d1c35d58acb68165678 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:033161f610016d155d58f96769ad5a821d203824684e8a13fc50be8c25a5f9cf * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index bf48c82da143..d47d3d76b159 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:0d1bb26a1a99ae0456176bf891b8490e9aab424a5cb4e4d301d9703c4dc43b58 -# created: 2024-01-30T19:46:55.029238294Z + digest: sha256:033161f610016d155d58f96769ad5a821d203824684e8a13fc50be8c25a5f9cf +# created: 2024-04-04T20:03:23.876897177Z From aeedf2960700f1742e38469fd26ea70000967cfa Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 18 Apr 2024 20:26:37 +0200 Subject: [PATCH 2796/3441] deps: update github/codeql-action action to v2.25.1 (#3229) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index e29083aaba42..e229d5ff77b9 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@a82bad71823183e5b120ab52d521460ecb0585fe # v2.24.9 + uses: github/codeql-action/upload-sarif@e949a1676c32f4c215780f7429eb9f00ff18b225 # v2.25.1 with: sarif_file: results.sarif From ee94a6ea22628a758135ef8a0e08ff31f00f20f2 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Thu, 18 Apr 2024 14:50:58 -0400 Subject: [PATCH 2797/3441] chore: owlbot-java adding the Docker tag in images section (#1949) (#3230) Source-Link: https://github.com/googleapis/synthtool/commit/4b49307944160a308513a34f73dbd6b00b6617d2 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:25b384ee1674eda3984ec41c15b514a63bbeb5eda4d57c73c7e6f5adef2fd2f1 Co-authored-by: Owl Bot Co-authored-by: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> --- .github/.OwlBot.lock.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index d47d3d76b159..5762b696613a 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,6 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:033161f610016d155d58f96769ad5a821d203824684e8a13fc50be8c25a5f9cf -# created: 2024-04-04T20:03:23.876897177Z + digest: sha256:25b384ee1674eda3984ec41c15b514a63bbeb5eda4d57c73c7e6f5adef2fd2f1 +# created: 2024-04-05T19:12:34.133475268Z + From ff1ebc66e458519deca37275ba91650133188683 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Fri, 19 Apr 2024 10:13:45 -0400 Subject: [PATCH 2798/3441] feat: Add support for inserting Range values (#3246) * feat: Add support for inserting Range values * fix: IT assert to use size instead of const --- .../java/com/google/cloud/bigquery/Range.java | 13 + .../com/google/cloud/bigquery/RangeTest.java | 18 + .../cloud/bigquery/it/ITBigQueryTest.java | 323 ++++++++++++------ 3 files changed, 246 insertions(+), 108 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Range.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Range.java index 198bd28faa06..8d244fbeb069 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Range.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Range.java @@ -19,6 +19,7 @@ import com.google.auto.value.AutoValue; import com.google.cloud.bigquery.FieldValue.Attribute; +import com.google.common.collect.ImmutableMap; import java.io.Serializable; import javax.annotation.Nullable; @@ -44,6 +45,18 @@ public FieldValue getEnd() { @Nullable abstract String getEndInner(); + /** Returns the start and end values of this range. */ + public ImmutableMap getValues() { + ImmutableMap.Builder result = ImmutableMap.builder(); + if (!getStart().isNull()) { + result.put("start", getStart().getStringValue()); + } + if (!getEnd().isNull()) { + result.put("end", getEnd().getStringValue()); + } + return result.build(); + } + /** Returns the type of the range. */ @Nullable public abstract FieldElementType getType(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java index 45bb83259d4c..2d98376b36ea 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java @@ -18,6 +18,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import com.google.common.collect.ImmutableMap; import org.junit.Test; public class RangeTest { @@ -77,6 +78,17 @@ public void testToBuilder() { compareRange(RANGE_TIMESTAMP, RANGE_TIMESTAMP.toBuilder().build()); } + @Test + public void testGetValues() { + compareRange(null, null, Range.of("[null, NULL)").getValues()); + compareRange(null, null, Range.of("[unbounded, UNBOUNDED)").getValues()); + compareRange(null, null, Range.of("[nUlL, uNbOuNdEd)").getValues()); + + compareRange(null, "2020-12-31", Range.of("[null, 2020-12-31)").getValues()); + compareRange("2020-01-01", null, Range.of("[2020-01-01, null)").getValues()); + compareRange("2020-01-01", "2020-12-31", Range.of("[2020-01-01, 2020-12-31)").getValues()); + } + private static void compareRange(Range expected, Range value) { assertEquals(expected.getStart(), value.getStart()); assertEquals(expected.getEnd(), value.getEnd()); @@ -97,4 +109,10 @@ private static void compareRange(String expectedStart, String expectedEnd, Range assertEquals(expectedEnd, range.getEnd().getStringValue()); } } + + private static void compareRange( + String expectedStart, String expectedEnd, ImmutableMap values) { + assertEquals(expectedStart, values.get("start")); + assertEquals(expectedEnd, values.get("end")); + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 430235fba6f8..d78549f6eabb 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -838,6 +838,157 @@ public class ITBigQueryTest { + " \"universe_domain\": \"fake.domain\"\n" + "}"; + private static final Schema RANGE_SCHEMA = + Schema.of( + Field.newBuilder("name", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("Name of the row") + .build(), + Field.newBuilder("date", StandardSQLTypeName.RANGE) + .setMode(Field.Mode.NULLABLE) + .setDescription("Range field with DATE") + .setRangeElementType(FieldElementType.newBuilder().setType("DATE").build()) + .build(), + Field.newBuilder("datetime", StandardSQLTypeName.RANGE) + .setMode(Field.Mode.NULLABLE) + .setDescription("Range field with DATETIME") + .setRangeElementType(FieldElementType.newBuilder().setType("DATETIME").build()) + .build(), + Field.newBuilder("timestamp", StandardSQLTypeName.RANGE) + .setMode(Field.Mode.NULLABLE) + .setDescription("Range field with TIMESTAMP") + .setRangeElementType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .build()); + + private static final ImmutableMap RANGE_TEST_VALUES_DATES = + new ImmutableMap.Builder() + .put( + "bounded", + Range.newBuilder() + .setStart("2020-01-01") + .setEnd("2020-12-31") + .setType(FieldElementType.newBuilder().setType("DATE").build()) + .build()) + .put( + "unboundedStart", + Range.newBuilder() + .setStart(null) + .setEnd("2020-12-31") + .setType(FieldElementType.newBuilder().setType("DATE").build()) + .build()) + .put( + "unboundedEnd", + Range.newBuilder() + .setStart("2020-01-01") + .setEnd(null) + .setType(FieldElementType.newBuilder().setType("DATE").build()) + .build()) + .put( + "unbounded", + Range.newBuilder() + .setStart(null) + .setEnd(null) + .setType(FieldElementType.newBuilder().setType("DATE").build()) + .build()) + .build(); + + private static final ImmutableMap RANGE_TEST_VALUES_DATETIME = + new ImmutableMap.Builder() + .put( + "bounded", + Range.newBuilder() + .setStart("2014-08-19T05:41:35.220000") + .setEnd("2015-09-20T06:41:35.220000") + .setType(FieldElementType.newBuilder().setType("DATETIME").build()) + .build()) + .put( + "unboundedStart", + Range.newBuilder() + .setStart(null) + .setEnd("2015-09-20T06:41:35.220000") + .setType(FieldElementType.newBuilder().setType("DATETIME").build()) + .build()) + .put( + "unboundedEnd", + Range.newBuilder() + .setStart("2014-08-19T05:41:35.220000") + .setEnd(null) + .setType(FieldElementType.newBuilder().setType("DATETIME").build()) + .build()) + .put( + "unbounded", + Range.newBuilder() + .setStart(null) + .setEnd(null) + .setType(FieldElementType.newBuilder().setType("DATETIME").build()) + .build()) + .build(); + + private static final ImmutableMap RANGE_TEST_VALUES_TIMESTAMP = + new ImmutableMap.Builder() + .put( + "bounded", + Range.newBuilder() + .setStart("2014-08-19 12:41:35.220000+00:00") + .setEnd("2015-09-20 13:41:35.220000+01:00") + .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .build()) + .put( + "unboundedStart", + Range.newBuilder() + .setStart(null) + .setEnd("2015-09-20 13:41:35.220000+01:00") + .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .build()) + .put( + "unboundedEnd", + Range.newBuilder() + .setStart("2014-08-19 12:41:35.220000+00:00") + .setEnd(null) + .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .build()) + .put( + "unbounded", + Range.newBuilder() + .setStart(null) + .setEnd(null) + .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .build()) + .build(); + + // timestamps are returned as seconds since epoch + private static final ImmutableMap RANGE_TEST_VALUES_EXPECTED_TIMESTAMP = + new ImmutableMap.Builder() + .put( + "bounded", + Range.newBuilder() + .setStart("1408452095.220000") + .setEnd("1442752895.220000") + .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .build()) + .put( + "unboundedStart", + Range.newBuilder() + .setStart(null) + .setEnd("1442752895.220000") + .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .build()) + .put( + "unboundedEnd", + Range.newBuilder() + .setStart("1408452095.220000") + .setEnd(null) + .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .build()) + .put( + "unbounded", + Range.newBuilder() + .setStart(null) + .setEnd(null) + .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .build()) + .build(); + private static BigQuery bigquery; private static Storage storage; @@ -1313,123 +1464,79 @@ public void testIntervalType() throws InterruptedException { } @Test - public void testRangeCreateTable() throws InterruptedException { - String tableName = "test_range_create_table"; + public void testRangeType() throws InterruptedException { + String tableName = "test_range_type_table"; TableId tableId = TableId.of(DATASET, tableName); - Field rangeFieldWithDate = - Field.newBuilder("rangeFieldDate", StandardSQLTypeName.RANGE) - .setMode(Field.Mode.NULLABLE) - .setDescription("Range field with DATE") - .setRangeElementType(FieldElementType.newBuilder().setType("DATE").build()) - .build(); - - Field rangeFieldWithDatetime = - Field.newBuilder("rangeFieldDatetime", StandardSQLTypeName.RANGE) - .setMode(Field.Mode.NULLABLE) - .setDescription("Range field with DATETIME") - .setRangeElementType(FieldElementType.newBuilder().setType("DATETIME").build()) - .build(); - - Field rangeFieldWithTimestamp = - Field.newBuilder("rangeFieldTimestamp", StandardSQLTypeName.RANGE) - .setMode(Field.Mode.NULLABLE) - .setDescription("Range field with TIMESTAMP") - .setRangeElementType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) - .build(); - Schema schema = Schema.of(rangeFieldWithDate, rangeFieldWithDatetime, rangeFieldWithTimestamp); - StandardTableDefinition standardTableDefinition = StandardTableDefinition.of(schema); + StandardTableDefinition standardTableDefinition = StandardTableDefinition.of(RANGE_SCHEMA); try { - // Create a table with a RANGE column. + // Create a table with a RANGE columns and verify the result. Table createdTable = bigquery.create(TableInfo.of(tableId, standardTableDefinition)); assertNotNull(createdTable); - } finally { - assertTrue(bigquery.delete(tableId)); - } - } - - @Test - public void testRangeType() throws InterruptedException { - // TODO: Combine testRangeType test with testRangeCreateTable test. - String tableName = "test_range_type_table"; - QueryJobConfiguration createTable = - QueryJobConfiguration.newBuilder( - String.format( - "CREATE TABLE %s AS SELECT RANGE(DATE '2020-01-01', DATE '2020-12-31') as date, \n" - + "RANGE(DATETIME '2020-01-01T12:00:00', DATETIME '2020-12-31T12:00:00') as datetime, \n" - + "RANGE(TIMESTAMP '2014-01-01 07:00:00.000000+00:00', TIMESTAMP '2015-01-01 07:00:00.000000+00:00') as timestamp", - tableName)) - .setDefaultDataset(DatasetId.of(DATASET)) - .setUseLegacySql(false) - .build(); - bigquery.query(createTable); - String query = - String.format( - "SELECT date, datetime, timestamp\n" - + "FROM %s.%s\n" - + "WHERE date = @dateParam\n" - + "AND datetime = @datetimeParam\n" - + "AND timestamp = @timestampParam", - DATASET, tableName); + Table remoteTable = bigquery.getTable(DATASET, tableName); + Schema remoteSchema = remoteTable.getDefinition().getSchema(); + assertEquals(RANGE_SCHEMA, remoteSchema); + + // Insert range values to the table. + InsertAllRequest.Builder request = InsertAllRequest.newBuilder(tableId); + for (String name : RANGE_TEST_VALUES_DATES.keySet()) { + ImmutableMap.Builder builder = ImmutableMap.builder(); + builder.put("name", name); + builder.put("date", RANGE_TEST_VALUES_DATES.get(name).getValues()); + builder.put("datetime", RANGE_TEST_VALUES_DATETIME.get(name).getValues()); + builder.put("timestamp", RANGE_TEST_VALUES_TIMESTAMP.get(name).getValues()); + request.addRow(builder.build()); + } + bigquery.insertAll(request.build()); - Range dateRange = - Range.newBuilder() - .setType(FieldElementType.newBuilder().setType("DATE").build()) - .setStart("2020-01-01") - .setEnd("2020-12-31") - .build(); - Range datetimeRange = - Range.newBuilder() - .setType(FieldElementType.newBuilder().setType("DATETIME").build()) - .setStart("2020-01-01T12:00:00") - .setEnd("2020-12-31T12:00:00") - .build(); - Range timestampRange = - Range.newBuilder() - .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) - .setStart("2014-01-01 07:00:00.000000+00:00") - .setEnd("2015-01-01 07:00:00.000000+00:00") - .build(); + // Test listTableData + TableResult result = bigquery.listTableData(DATASET, tableName, RANGE_SCHEMA); + assertEquals(RANGE_TEST_VALUES_DATES.size(), Iterables.size(result.getValues())); + for (FieldValueList values : result.iterateAll()) { + String name = values.get("name").getStringValue(); + assertEquals(RANGE_TEST_VALUES_DATES.get(name), values.get("date").getRangeValue()); + assertEquals(RANGE_TEST_VALUES_DATETIME.get(name), values.get("datetime").getRangeValue()); + assertEquals( + RANGE_TEST_VALUES_EXPECTED_TIMESTAMP.get(name), + values.get("timestamp").getRangeValue()); + } - // Test Query Parameter. - QueryJobConfiguration config = - QueryJobConfiguration.newBuilder(query) - .setDefaultDataset(DatasetId.of(DATASET)) - .addNamedParameter("dateParam", QueryParameterValue.range(dateRange)) - .addNamedParameter("datetimeParam", QueryParameterValue.range(datetimeRange)) - .addNamedParameter("timestampParam", QueryParameterValue.range(timestampRange)) - .build(); - TableResult result = bigquery.query(config); - assertEquals(1, Iterables.size(result.getValues())); - for (FieldValueList values : result.iterateAll()) { - assertEquals(dateRange.getStart(), values.get("date").getRangeValue().getStart()); - assertEquals(dateRange.getEnd(), values.get("date").getRangeValue().getEnd()); - assertEquals(datetimeRange.getStart(), values.get("datetime").getRangeValue().getStart()); - assertEquals(datetimeRange.getEnd(), values.get("datetime").getRangeValue().getEnd()); - // timestamps are returned as seconds since epoch - assertEquals( - 1388559600000000L, - values.get("timestamp").getRangeValue().getStart().getTimestampValue()); - assertEquals( - 1420095600000000L, values.get("timestamp").getRangeValue().getEnd().getTimestampValue()); - } + // Test Query Parameter by selecting for the bounded Range entry only. + String query = + String.format( + "SELECT name, date, datetime, timestamp\n" + + "FROM %s.%s\n" + + "WHERE date = @dateParam\n" + + "AND datetime = @datetimeParam\n" + + "AND timestamp = @timestampParam", + DATASET, tableName); + + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .addNamedParameter( + "dateParam", QueryParameterValue.range(RANGE_TEST_VALUES_DATES.get("bounded"))) + .addNamedParameter( + "datetimeParam", + QueryParameterValue.range(RANGE_TEST_VALUES_DATETIME.get("bounded"))) + .addNamedParameter( + "timestampParam", + QueryParameterValue.range(RANGE_TEST_VALUES_TIMESTAMP.get("bounded"))) + .build(); + result = bigquery.query(config); - // Test listTableData. - Schema schema = result.getSchema(); - result = bigquery.listTableData(DATASET, tableName, schema); - assertEquals(1, Iterables.size(result.getValues())); - for (FieldValueList values : result.iterateAll()) { - assertEquals(dateRange.getStart(), values.get("date").getRangeValue().getStart()); - assertEquals(dateRange.getEnd(), values.get("date").getRangeValue().getEnd()); - assertEquals(datetimeRange.getStart(), values.get("datetime").getRangeValue().getStart()); - assertEquals(datetimeRange.getEnd(), values.get("datetime").getRangeValue().getEnd()); - // timestamps are returned as seconds since epoch - assertEquals( - 1388559600000000L, - values.get("timestamp").getRangeValue().getStart().getTimestampValue()); - assertEquals( - 1420095600000000L, values.get("timestamp").getRangeValue().getEnd().getTimestampValue()); + assertEquals(1, Iterables.size(result.getValues())); + for (FieldValueList values : result.iterateAll()) { + String name = values.get("name").getStringValue(); + assertEquals(RANGE_TEST_VALUES_DATES.get(name), values.get("date").getRangeValue()); + assertEquals(RANGE_TEST_VALUES_DATETIME.get(name), values.get("datetime").getRangeValue()); + assertEquals( + RANGE_TEST_VALUES_EXPECTED_TIMESTAMP.get(name), + values.get("timestamp").getRangeValue()); + } + } finally { + assertTrue(bigquery.delete(tableId)); } } From 2c0f48f86d3c4d5a1a682775c494a9122373858d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 19 Apr 2024 16:18:39 +0200 Subject: [PATCH 2799/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240323-2.0.0 (#3239) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d79a4ed09e68..dc50db3239b1 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240229-2.0.0 + v2-rev20240323-2.0.0 From b13bbb856f75bb545a1b346a9fddda0234a491a7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 19 Apr 2024 16:21:22 +0200 Subject: [PATCH 2800/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.38.0 (#3240) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 508e4432a386..34ad3706c81e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.37.0 + 2.38.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6a2093ab5e16..06cb8a3f8aa4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.37.0 + 2.38.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 5e636d072a8a..35cb184dfd43 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.37.0 + 2.38.0 test From 66d5efded17c42514f98f4af2bc6ba826999a62a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 19 Apr 2024 16:39:57 +0200 Subject: [PATCH 2801/3441] deps: update dependency org.threeten:threeten-extra to v1.8.0 (#3242) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dc50db3239b1..78a00c4e7e98 100644 --- a/pom.xml +++ b/pom.xml @@ -106,7 +106,7 @@ org.threeten threeten-extra - 1.7.2 + 1.8.0 From 0b0b414c3a2b213844ce653ecea361aabd097d47 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 19 Apr 2024 16:45:42 +0200 Subject: [PATCH 2802/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.37.0 (#3252) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 78a00c4e7e98..5824bbe1e76e 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.36.1 + 2.37.0 test From 75ea095b0a194d6be4951795bc3a616ace389ff2 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Fri, 19 Apr 2024 15:10:29 -0400 Subject: [PATCH 2803/3441] feat: Add totalSlotMs to JobStatistics (#3250) * feat: Add totalSlotMs to JobStatistics * fix: testQuery IT flakiness * Fix query statistics test --- .../google/cloud/bigquery/JobStatistics.java | 42 ++++++++++--------- .../cloud/bigquery/JobStatisticsTest.java | 10 ++++- .../cloud/bigquery/it/ITBigQueryTest.java | 19 +++++++++ 3 files changed, 51 insertions(+), 20 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 0200711d6a05..64d31fab179b 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -40,7 +40,7 @@ /** A Google BigQuery Job statistics. */ public abstract class JobStatistics implements Serializable { - private static final long serialVersionUID = 1433024714741660399L; + private static final long serialVersionUID = 1433024714741660400L; private final Long creationTime; private final Long endTime; @@ -51,6 +51,7 @@ public abstract class JobStatistics implements Serializable { private final List reservationUsage; private final TransactionInfo transactionInfo; private final SessionInfo sessionInfo; + private final Long totalSlotMs; /** A Google BigQuery Copy Job statistics. */ public static class CopyStatistics extends JobStatistics { @@ -390,7 +391,7 @@ static LoadStatistics fromPb(com.google.api.services.bigquery.model.JobStatistic /** A Google BigQuery Query Job statistics. */ public static class QueryStatistics extends JobStatistics { - private static final long serialVersionUID = 7539354109226732353L; + private static final long serialVersionUID = 7539354109226732354L; private final BiEngineStats biEngineStats; private final Integer billingTier; @@ -407,7 +408,6 @@ public static class QueryStatistics extends JobStatistics { private final Long totalBytesBilled; private final Long totalBytesProcessed; private final Long totalPartitionsProcessed; - private final Long totalSlotMs; private final List queryPlan; private final List timeline; private final Schema schema; @@ -567,7 +567,6 @@ static final class Builder extends JobStatistics.Builder queryPlan; private List timeline; private Schema schema; @@ -599,7 +598,6 @@ private Builder(com.google.api.services.bigquery.model.JobStatistics statisticsP this.totalBytesBilled = statisticsPb.getQuery().getTotalBytesBilled(); this.totalBytesProcessed = statisticsPb.getQuery().getTotalBytesProcessed(); this.totalPartitionsProcessed = statisticsPb.getQuery().getTotalPartitionsProcessed(); - this.totalSlotMs = statisticsPb.getQuery().getTotalSlotMs(); if (statisticsPb.getQuery().getStatementType() != null) { this.statementType = StatementType.valueOf(statisticsPb.getQuery().getStatementType()); } @@ -719,11 +717,6 @@ Builder setTotalPartitionsProcessed(Long totalPartitionsProcessed) { return self(); } - Builder setTotalSlotMs(Long totalSlotMs) { - this.totalSlotMs = totalSlotMs; - return self(); - } - Builder setQueryPlan(List queryPlan) { this.queryPlan = queryPlan; return self(); @@ -777,7 +770,6 @@ private QueryStatistics(Builder builder) { this.totalBytesBilled = builder.totalBytesBilled; this.totalBytesProcessed = builder.totalBytesProcessed; this.totalPartitionsProcessed = builder.totalPartitionsProcessed; - this.totalSlotMs = builder.totalSlotMs; this.queryPlan = builder.queryPlan; this.timeline = builder.timeline; this.schema = builder.schema; @@ -874,11 +866,6 @@ public Long getTotalPartitionsProcessed() { return totalPartitionsProcessed; } - /** Returns the slot-milliseconds consumed by the query. */ - public Long getTotalSlotMs() { - return totalSlotMs; - } - /** * Returns the query plan as a list of stages or {@code null} if a query plan is not available. * Each stage involves a number of steps that read from data sources, perform a series of @@ -984,7 +971,6 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { queryStatisticsPb.setTotalBytesBilled(totalBytesBilled); queryStatisticsPb.setTotalBytesProcessed(totalBytesProcessed); queryStatisticsPb.setTotalPartitionsProcessed(totalPartitionsProcessed); - queryStatisticsPb.setTotalSlotMs(totalSlotMs); if (ddlTargetTable != null) { queryStatisticsPb.setDdlTargetTable(ddlTargetTable.toPb()); } @@ -1589,6 +1575,7 @@ abstract static class Builder> private List reservationUsage; private TransactionInfo transactionInfo; private SessionInfo sessionInfo; + private Long totalSlotMs; protected Builder() {} @@ -1598,6 +1585,9 @@ protected Builder(com.google.api.services.bigquery.model.JobStatistics statistic this.startTime = statisticsPb.getStartTime(); this.numChildJobs = statisticsPb.getNumChildJobs(); this.parentJobId = statisticsPb.getParentJobId(); + if (statisticsPb.getTotalSlotMs() != null) { + this.totalSlotMs = statisticsPb.getTotalSlotMs(); + } if (statisticsPb.getScriptStatistics() != null) { this.scriptStatistics = ScriptStatistics.fromPb(statisticsPb.getScriptStatistics()); } @@ -1633,6 +1623,11 @@ B setStartTime(Long startTime) { return self(); } + B setTotalSlotMs(Long totalSlotMs) { + this.totalSlotMs = totalSlotMs; + return self(); + } + abstract T build(); } @@ -1646,6 +1641,7 @@ protected JobStatistics(Builder builder) { this.reservationUsage = builder.reservationUsage; this.transactionInfo = builder.transactionInfo; this.sessionInfo = builder.sessionInfo; + this.totalSlotMs = builder.totalSlotMs; } /** Returns the creation time of the job in milliseconds since epoch. */ @@ -1699,6 +1695,11 @@ public SessionInfo getSessionInfo() { return sessionInfo; } + /** Returns the slot-milliseconds for the job. */ + public Long getTotalSlotMs() { + return totalSlotMs; + } + ToStringHelper toStringHelper() { return MoreObjects.toStringHelper(this) .add("creationTime", creationTime) @@ -1709,7 +1710,8 @@ ToStringHelper toStringHelper() { .add("scriptStatistics", scriptStatistics) .add("reservationUsage", reservationUsage) .add("transactionInfo", transactionInfo) - .add("sessionInfo", sessionInfo); + .add("sessionInfo", sessionInfo) + .add("totalSlotMs", totalSlotMs); } @Override @@ -1727,7 +1729,8 @@ final int baseHashCode() { scriptStatistics, reservationUsage, transactionInfo, - sessionInfo); + sessionInfo, + totalSlotMs); } final boolean baseEquals(JobStatistics jobStatistics) { @@ -1742,6 +1745,7 @@ com.google.api.services.bigquery.model.JobStatistics toPb() { statistics.setStartTime(startTime); statistics.setNumChildJobs(numChildJobs); statistics.setParentJobId(parentJobId); + statistics.setTotalSlotMs(totalSlotMs); if (scriptStatistics != null) { statistics.setScriptStatistics(scriptStatistics.toPb()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index aaf4aa2b1691..2a1353f5d84d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -102,6 +102,7 @@ public class JobStatisticsTest { .setStartTime(START_TIME) .setCopiedRows(COPIED_ROW) .setCopiedLogicalBytes(COPIED_LOGICAL_BYTES) + .setTotalSlotMs(TOTAL_SLOT_MS) .build(); private static final ExtractStatistics EXTRACT_STATISTICS = ExtractStatistics.newBuilder() @@ -110,6 +111,7 @@ public class JobStatisticsTest { .setStartTime(START_TIME) .setDestinationUriFileCounts(FILE_COUNT) .setInputBytes(INPUT_BYTES) + .setTotalSlotMs(TOTAL_SLOT_MS) .build(); private static final LoadStatistics LOAD_STATISTICS = LoadStatistics.newBuilder() @@ -121,6 +123,7 @@ public class JobStatisticsTest { .setOutputBytes(OUTPUT_BYTES) .setOutputRows(OUTPUT_ROWS) .setBadRecords(BAD_RECORDS) + .setTotalSlotMs(TOTAL_SLOT_MS) .build(); private static final LoadStatistics LOAD_STATISTICS_INCOMPLETE = LoadStatistics.newBuilder() @@ -130,6 +133,7 @@ public class JobStatisticsTest { .setInputBytes(INPUT_BYTES) .setInputFiles(INPUT_FILES) .setBadRecords(BAD_RECORDS) + .setTotalSlotMs(TOTAL_SLOT_MS) .build(); private static final List SUBSTEPS1 = ImmutableList.of("substep1", "substep2"); private static final List SUBSTEPS2 = ImmutableList.of("substep3", "substep4"); @@ -272,18 +276,21 @@ public void testBuilder() { assertEquals(CREATION_TIME, EXTRACT_STATISTICS.getCreationTime()); assertEquals(START_TIME, EXTRACT_STATISTICS.getStartTime()); assertEquals(END_TIME, EXTRACT_STATISTICS.getEndTime()); + assertEquals(TOTAL_SLOT_MS, EXTRACT_STATISTICS.getTotalSlotMs()); assertEquals(FILE_COUNT, EXTRACT_STATISTICS.getDestinationUriFileCounts()); assertEquals(INPUT_BYTES, EXTRACT_STATISTICS.getInputBytes()); assertEquals(CREATION_TIME, COPY_STATISTICS.getCreationTime()); assertEquals(START_TIME, COPY_STATISTICS.getStartTime()); assertEquals(END_TIME, COPY_STATISTICS.getEndTime()); + assertEquals(TOTAL_SLOT_MS, COPY_STATISTICS.getTotalSlotMs()); assertEquals(COPIED_LOGICAL_BYTES, COPY_STATISTICS.getCopiedLogicalBytes()); assertEquals(COPIED_ROW, COPY_STATISTICS.getCopiedRows()); assertEquals(CREATION_TIME, LOAD_STATISTICS.getCreationTime()); assertEquals(START_TIME, LOAD_STATISTICS.getStartTime()); assertEquals(END_TIME, LOAD_STATISTICS.getEndTime()); + assertEquals(TOTAL_SLOT_MS, LOAD_STATISTICS.getTotalSlotMs()); assertEquals(INPUT_BYTES, LOAD_STATISTICS.getInputBytes()); assertEquals(INPUT_FILES, LOAD_STATISTICS.getInputFiles()); assertEquals(OUTPUT_BYTES, LOAD_STATISTICS.getOutputBytes()); @@ -293,6 +300,7 @@ public void testBuilder() { assertEquals(CREATION_TIME, QUERY_STATISTICS.getCreationTime()); assertEquals(START_TIME, QUERY_STATISTICS.getStartTime()); assertEquals(END_TIME, QUERY_STATISTICS.getEndTime()); + assertEquals(TOTAL_SLOT_MS, QUERY_STATISTICS.getTotalSlotMs()); assertEquals(BI_ENGINE_STATS, QUERY_STATISTICS.getBiEngineStats()); assertEquals(BILLING_TIER, QUERY_STATISTICS.getBillingTier()); assertEquals(CACHE_HIT, QUERY_STATISTICS.getCacheHit()); @@ -308,7 +316,6 @@ public void testBuilder() { assertEquals(TOTAL_BYTES_BILLED, QUERY_STATISTICS.getTotalBytesBilled()); assertEquals(TOTAL_BYTES_PROCESSED, QUERY_STATISTICS.getTotalBytesProcessed()); assertEquals(TOTAL_PARTITION_PROCESSED, QUERY_STATISTICS.getTotalPartitionsProcessed()); - assertEquals(TOTAL_SLOT_MS, QUERY_STATISTICS.getTotalSlotMs()); assertEquals(QUERY_PLAN, QUERY_STATISTICS.getQueryPlan()); assertEquals(TIMELINE, QUERY_STATISTICS.getTimeline()); @@ -472,6 +479,7 @@ private void compareStatistics(JobStatistics expected, JobStatistics value) { assertEquals(expected.getNumChildJobs(), value.getNumChildJobs()); assertEquals(expected.getParentJobId(), value.getParentJobId()); assertEquals(expected.getScriptStatistics(), value.getScriptStatistics()); + assertEquals(expected.getTotalSlotMs(), value.getTotalSlotMs()); } private void compareScriptStatistics(ScriptStatistics expected, ScriptStatistics value) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index d78549f6eabb..56dd7cd3ae7a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3160,6 +3160,23 @@ public void testQuery() throws InterruptedException { assertNotNull(statistics.getQueryPlan()); } + @Test + public void testQueryStatistics() throws InterruptedException { + // Use CURRENT_TIMESTAMP to avoid potential caching. + String query = "SELECT CURRENT_TIMESTAMP() AS ts"; + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseQueryCache(false) + .build(); + Job job = bigquery.create(JobInfo.of(JobId.of(), config)); + job = job.waitFor(); + + JobStatistics.QueryStatistics statistics = job.getStatistics(); + assertNotNull(statistics.getQueryPlan()); + assertThat(statistics.getTotalSlotMs()).isGreaterThan(0L); + } + @Test public void testExecuteSelectDefaultConnectionSettings() throws SQLException { // Use the default connection settings @@ -4429,6 +4446,7 @@ public void testLoadSessionSupport() throws InterruptedException { Job loadJob = bigquery.getJob(job.getJobId()); JobStatistics.LoadStatistics statistics = loadJob.getStatistics(); + assertThat(statistics.getTotalSlotMs()).isGreaterThan(0L); String sessionId = statistics.getSessionInfo().getSessionId(); assertNotNull(sessionId); @@ -5678,6 +5696,7 @@ public void testExtractJob() throws InterruptedException, TimeoutException { assertEquals(1L, extractStatistics.getDestinationUriFileCounts().size()); assertEquals( loadStatistics.getOutputBytes().longValue(), extractStatistics.getInputBytes().longValue()); + assertThat(extractStatistics.getTotalSlotMs()).isGreaterThan(0L); String extractedCsv = new String(storage.readAllBytes(BUCKET, EXTRACT_FILE), StandardCharsets.UTF_8); From c50c17bc4eedd0c34f440b697a8b26a5354c9c4f Mon Sep 17 00:00:00 2001 From: Sumeet Gajjar Date: Sat, 20 Apr 2024 09:13:01 -0700 Subject: [PATCH 2804/3441] fix: Fix BigQuery#listDatasets to include dataset location in the response (#3238) --- .../bigquery/spi/v2/HttpBigQueryRpc.java | 1 + .../cloud/bigquery/BigQueryImplTest.java | 8 +++++- .../cloud/bigquery/it/ITBigQueryTest.java | 28 +++++++++++++++++-- .../bigquery/spi/v2/HttpBigQueryRpcTest.java | 4 ++- 4 files changed, 37 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index dca129bfb5c4..5dd39eaed9bc 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -95,6 +95,7 @@ public Dataset apply(DatasetList.Datasets datasetPb) { .setFriendlyName(datasetPb.getFriendlyName()) .setId(datasetPb.getId()) .setKind(datasetPb.getKind()) + .setLocation(datasetPb.getLocation()) .setLabels(datasetPb.getLabels()); } }; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 62160bef20d8..d3d3740061cd 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -81,16 +81,22 @@ public class BigQueryImplTest { Acl.of(Acl.Group.ofAllAuthenticatedUsers(), Acl.Role.READER), Acl.of(new Acl.View(TableId.of(PROJECT, "dataset", "table")))); private static final DatasetInfo DATASET_INFO = - DatasetInfo.newBuilder(DATASET).setAcl(ACCESS_RULES).setDescription("description").build(); + DatasetInfo.newBuilder(DATASET) + .setAcl(ACCESS_RULES) + .setDescription("description") + .setLocation(LOCATION) + .build(); private static final DatasetInfo DATASET_INFO_WITH_PROJECT = DatasetInfo.newBuilder(PROJECT, DATASET) .setAcl(ACCESS_RULES_WITH_PROJECT) .setDescription("description") + .setLocation(LOCATION) .build(); private static final DatasetInfo OTHER_DATASET_INFO = DatasetInfo.newBuilder(PROJECT, OTHER_DATASET) .setAcl(ACCESS_RULES) .setDescription("other description") + .setLocation(LOCATION) .build(); private static final TableId TABLE_ID = TableId.of(DATASET, TABLE); private static final TableId OTHER_TABLE_ID = TableId.of(PROJECT, DATASET, OTHER_TABLE); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 56dd7cd3ae7a..6caecd26b39f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -775,6 +775,20 @@ public class ITBigQueryTest { private static final Set PUBLIC_DATASETS = ImmutableSet.of("github_repos", "hacker_news", "noaa_gsod", "samples", "usa_names"); + private static final Map PUBLIC_DATASETS_LOCATION = + ImmutableMap.builder() + .put("github_repos", "US") + .put("hacker_news", "US") + .put("noaa_gsod", "US") + .put("samples", "US") + .put("usa_names", "US") + // Dataset url: + // https://console.cloud.google.com/bigquery?project=bigquery-public-data&ws=!1m4!1m3!3m2!1sbigquery-public-data!2sgnomAD_asiane1 + .put("gnomAD_asiane1", "asia-northeast1") + // Dataset url: + // https://console.cloud.google.com/bigquery?project=bigquery-public-data&ws=!1m4!1m3!3m2!1sbigquery-public-data!2sgnomAD_eu + .put("gnomAD_eu", "EU") + .build(); private static final String PUBLIC_PROJECT = "bigquery-public-data"; private static final String PUBLIC_DATASET = "census_bureau_international"; @@ -1113,11 +1127,16 @@ public void testListDatasets() { Page datasets = bigquery.listDatasets("bigquery-public-data"); Iterator iterator = datasets.iterateAll().iterator(); Set datasetNames = new HashSet<>(); + Map datasetLocation = new HashMap<>(); while (iterator.hasNext()) { - datasetNames.add(iterator.next().getDatasetId().getDataset()); + Dataset dataset = iterator.next(); + String name = dataset.getDatasetId().getDataset(); + datasetNames.add(name); + datasetLocation.put(name, dataset.getLocation()); } for (String type : PUBLIC_DATASETS) { assertTrue(datasetNames.contains(type)); + assertEquals(PUBLIC_DATASETS_LOCATION.get(type), datasetLocation.get(type)); } } @@ -6759,11 +6778,16 @@ public void testUniverseDomainWithMatchingDomain() { Page datasets = bigQuery.listDatasets("bigquery-public-data"); Iterator iterator = datasets.iterateAll().iterator(); Set datasetNames = new HashSet<>(); + Map datasetLocation = new HashMap<>(); while (iterator.hasNext()) { - datasetNames.add(iterator.next().getDatasetId().getDataset()); + Dataset dataset = iterator.next(); + String name = dataset.getDatasetId().getDataset(); + datasetNames.add(name); + datasetLocation.put(name, dataset.getLocation()); } for (String type : PUBLIC_DATASETS) { assertTrue(datasetNames.contains(type)); + assertEquals(PUBLIC_DATASETS_LOCATION.get(type), datasetLocation.get(type)); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java index 576e5c4e37cb..eec39f633f53 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java @@ -35,7 +35,8 @@ public void testListToDataset() { .setId("project-id:dataset-id") .setFriendlyName("friendly") .setKind("bigquery#dataset") - .setLabels(Collections.singletonMap("foo", "bar")); + .setLabels(Collections.singletonMap("foo", "bar")) + .setLocation("test-region-1"); Dataset dataset = HttpBigQueryRpc.LIST_TO_DATASET.apply(listDataSet); assertThat(dataset.getKind()).isEqualTo("bigquery#dataset"); @@ -43,5 +44,6 @@ public void testListToDataset() { assertThat(dataset.getFriendlyName()).isEqualTo("friendly"); assertThat(dataset.getDatasetReference()).isEqualTo(datasetRef); assertThat(dataset.getLabels()).containsExactly("foo", "bar"); + assertThat(dataset.getLocation()).isEqualTo("test-region-1"); } } From 066b51fb088fc67c83a45a219897752876889136 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 22 Apr 2024 17:55:12 +0200 Subject: [PATCH 2805/3441] deps: update actions/upload-artifact action to v4.3.2 (#3248) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index e229d5ff77b9..6f8d891645e2 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 + uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 with: name: SARIF file path: results.sarif From 6df3a325b7f71ed1eb2054dd0c3a27cfd6cda2f2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 22 Apr 2024 20:10:02 +0200 Subject: [PATCH 2806/3441] deps: update actions/checkout action (#3256) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/checkout action * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- .github/workflows/unmanaged_dependency_check.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 6f8d891645e2..87d07a651aeb 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 with: persist-credentials: false diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index ebf073c1b334..92fce04005bb 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -5,7 +5,7 @@ jobs: unmanaged_dependency_check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-java@v3 with: distribution: temurin From 19d92a144cd4d86fee6dd420e574c3a1a928642c Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Mon, 22 Apr 2024 15:28:06 -0400 Subject: [PATCH 2807/3441] fix: Remove @InternalApi from TableResult (#3257) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: Remove @InternalApi from TableResult Since users depends on TableResult in testing, removing @InternalApi forces maintainers to change/roll out changes to TableResult more carefully in the future. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Remove clirr ignore difference entries for TableResult --------- Co-authored-by: Owl Bot --- .../clirr-ignored-differences.xml | 38 ------------------- .../google/cloud/bigquery/TableResult.java | 2 - 2 files changed, 40 deletions(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index abf827b48eb9..9c69fd6a68be 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -2,17 +2,6 @@ - - 3005 - com/google/cloud/bigquery/TableResult* - TableResult is an internal API and it should be fine to update - - - 7002 - com/google/cloud/bigquery/TableResult* - *TableResult(*) - TableResult is an internal API and it should be fine to update - 7004 com/google/cloud/bigquery/spi/v2/BigQueryRpc @@ -25,19 +14,6 @@ com.google.api.services.bigquery.model.GetQueryResultsResponse getQueryResultsWithRowLimit(java.lang.String, java.lang.String, java.lang.String, java.lang.Integer) getQueryResultsWithRowLimit is just used by ConnectionImpl at the moment so it should be fine to update the signature instead of writing an overloaded method - - 7004 - com/google/cloud/bigquery/TableResult* - *TableResult(*) - It should be fine to update TableResult constructors since it is used to return results to the user and users should not directly construct TableResult objects - - - 7005 - com/google/cloud/bigquery/TableResult* - *TableResult(*) - *TableResult(*) - It should be fine to update TableResult constructors since it is used to return results to the user and users should not directly construct TableResult objects - 7013 com/google/cloud/bigquery/ExternalTableDefinition* @@ -58,16 +34,6 @@ com/google/cloud/bigquery/TableInfo* *ResourceTags(*) - - 7013 - com/google/cloud/bigquery/TableResult* - *getPageNoSchema(*) - - - 7013 - com/google/cloud/bigquery/TableResult* - *toBuilder(*) - 7012 com/google/cloud/bigquery/Connection @@ -163,8 +129,4 @@ com/google/cloud/bigquery/StandardTableDefinition* *BigLakeConfiguration(*) - - 8001 - com/google/cloud/bigquery/EmptyTableResult* - \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java index 203a91faba51..1b4b0e101124 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java @@ -16,7 +16,6 @@ package com.google.cloud.bigquery; -import com.google.api.core.InternalApi; import com.google.api.gax.paging.Page; import com.google.auto.value.AutoValue; import com.google.common.base.Function; @@ -27,7 +26,6 @@ import java.util.Objects; import javax.annotation.Nullable; -@InternalApi @AutoValue public abstract class TableResult implements Page, Serializable { From 94b5b4312a259653d2b6703788315a7c559d4c92 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 10:11:33 -0400 Subject: [PATCH 2808/3441] chore(main): release 2.39.0 (#3213) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 35 +++++++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 44 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 547ec4ce279a..4b4d2002da2b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,40 @@ # Changelog +## [2.39.0](https://github.com/googleapis/java-bigquery/compare/v2.38.2...v2.39.0) (2024-04-22) + + +### Features + +* Add ExportDataStats to QueryStatistics ([#3244](https://github.com/googleapis/java-bigquery/issues/3244)) ([e91be80](https://github.com/googleapis/java-bigquery/commit/e91be80ebdd39c2448914ff9aa1742f3079d0bb8)) +* Add new fields to copy job statistics ([#3205](https://github.com/googleapis/java-bigquery/issues/3205)) ([64bdda8](https://github.com/googleapis/java-bigquery/commit/64bdda84fe06726042a41f2a89ac5c067f9bc949)) +* Add Range object to allow reading range value ([#3236](https://github.com/googleapis/java-bigquery/issues/3236)) ([2c3399d](https://github.com/googleapis/java-bigquery/commit/2c3399dd10fecc01237158a3cdeee966b38746f2)) +* Add support for inserting Range values ([#3246](https://github.com/googleapis/java-bigquery/issues/3246)) ([ff1ebc6](https://github.com/googleapis/java-bigquery/commit/ff1ebc66e458519deca37275ba91650133188683)) +* Add support for ObjectMetadata ([#3217](https://github.com/googleapis/java-bigquery/issues/3217)) ([975df05](https://github.com/googleapis/java-bigquery/commit/975df05b95b714c5574155d5e09860885c4b58f2)) +* Add totalSlotMs to JobStatistics ([#3250](https://github.com/googleapis/java-bigquery/issues/3250)) ([75ea095](https://github.com/googleapis/java-bigquery/commit/75ea095b0a194d6be4951795bc3a616ace389ff2)) + + +### Bug Fixes + +* Fix BigQuery#listDatasets to include dataset location in the response ([#3238](https://github.com/googleapis/java-bigquery/issues/3238)) ([c50c17b](https://github.com/googleapis/java-bigquery/commit/c50c17bc4eedd0c34f440b697a8b26a5354c9c4f)) +* Remove @InternalApi from TableResult ([#3257](https://github.com/googleapis/java-bigquery/issues/3257)) ([19d92a1](https://github.com/googleapis/java-bigquery/commit/19d92a144cd4d86fee6dd420e574c3a1a928642c)) + + +### Dependencies + +* Update actions/checkout action ([#3256](https://github.com/googleapis/java-bigquery/issues/3256)) ([6df3a32](https://github.com/googleapis/java-bigquery/commit/6df3a325b7f71ed1eb2054dd0c3a27cfd6cda2f2)) +* Update actions/upload-artifact action to v4.3.2 ([#3248](https://github.com/googleapis/java-bigquery/issues/3248)) ([066b51f](https://github.com/googleapis/java-bigquery/commit/066b51fb088fc67c83a45a219897752876889136)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.40.0 ([#3210](https://github.com/googleapis/java-bigquery/issues/3210)) ([bf7e97e](https://github.com/googleapis/java-bigquery/commit/bf7e97e1c936a419a34529a316c4f538872dd20b)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.41.0 ([#3219](https://github.com/googleapis/java-bigquery/issues/3219)) ([9d71b8b](https://github.com/googleapis/java-bigquery/commit/9d71b8b9a9231ea5d7cfa93c7bcbb533d6a3a900)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.43.0 ([#3225](https://github.com/googleapis/java-bigquery/issues/3225)) ([a897306](https://github.com/googleapis/java-bigquery/commit/a8973067348fa09acd91c5b01f048c43fac93894)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240323-2.0.0 ([#3239](https://github.com/googleapis/java-bigquery/issues/3239)) ([2c0f48f](https://github.com/googleapis/java-bigquery/commit/2c0f48f86d3c4d5a1a682775c494a9122373858d)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.44.0 ([#3211](https://github.com/googleapis/java-bigquery/issues/3211)) ([6993b51](https://github.com/googleapis/java-bigquery/commit/6993b51f8722466b846a7dd3912acbd81e04126c)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.45.0 ([#3220](https://github.com/googleapis/java-bigquery/issues/3220)) ([21ae09c](https://github.com/googleapis/java-bigquery/commit/21ae09ce2c63f790ca77cc5c4c0df16dcb123b59)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.47.0 ([#3226](https://github.com/googleapis/java-bigquery/issues/3226)) ([d45d168](https://github.com/googleapis/java-bigquery/commit/d45d168bf53a8648e2254c8c4305a5d9a390276d)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.28.1 ([#3207](https://github.com/googleapis/java-bigquery/issues/3207)) ([6204331](https://github.com/googleapis/java-bigquery/commit/6204331953b3922f5ecb1ac0c1868cb6579dd73b)) +* Update dependency org.threeten:threeten-extra to v1.8.0 ([#3242](https://github.com/googleapis/java-bigquery/issues/3242)) ([66d5efd](https://github.com/googleapis/java-bigquery/commit/66d5efded17c42514f98f4af2bc6ba826999a62a)) +* Update github/codeql-action action to v2.24.9 ([#3204](https://github.com/googleapis/java-bigquery/issues/3204)) ([7a24d3e](https://github.com/googleapis/java-bigquery/commit/7a24d3e29f32db58475c1e02ab1c13ee8941c27d)) +* Update github/codeql-action action to v2.25.1 ([#3229](https://github.com/googleapis/java-bigquery/issues/3229)) ([aeedf29](https://github.com/googleapis/java-bigquery/commit/aeedf2960700f1742e38469fd26ea70000967cfa)) + ## [2.38.2](https://github.com/googleapis/java-bigquery/compare/v2.38.1...v2.38.2) (2024-03-21) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a931b0dd7049..2133b6e6df00 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.38.3-SNAPSHOT + 2.39.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 37799ec4ef18..1513fd25e5cf 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.38.3-SNAPSHOT + 2.39.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.38.3-SNAPSHOT + 2.39.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c26518548903..8232a8059f57 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.38.3-SNAPSHOT + 2.39.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.38.3-SNAPSHOT + 2.39.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5824bbe1e76e..15d74cb7e058 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.38.3-SNAPSHOT + 2.39.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.38.3-SNAPSHOT + 2.39.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 06cb8a3f8aa4..90e7572ba107 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.38.3-SNAPSHOT + 2.39.0 diff --git a/versions.txt b/versions.txt index 3d8630e02ec1..8da4e4838969 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.38.2:2.38.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.39.0:2.39.0 \ No newline at end of file From 0c5eed1a18409f120a1243bd5da1db2aa4f9c206 Mon Sep 17 00:00:00 2001 From: Liam Miller-Cushon Date: Wed, 24 Apr 2024 11:33:59 -0700 Subject: [PATCH 2809/3441] Fix: @Nullable annotations on builder methods (#3222) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix @Nullable annotations on builder methods This fixes errors in the latest versions of AutoValue ``` google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java:225: error: [AutoValueBuilderSetterNullable] Setter methods always return the Builder so @Nullable is not appropriate public abstract Builder setUseReadAPI(Boolean useReadAPI); ^ ``` * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Review comments * Review comments * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 +++--- .../java/com/google/cloud/bigquery/ConnectionSettings.java | 1 - .../cloud/bigquery/ReadClientConnectionConfiguration.java | 6 +++--- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index cc0001a9ce97..d7279f7eadc0 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.38.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.39.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.38.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.39.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.38.2 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.39.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java index a9aabe038d7a..79bc3aac9f52 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java @@ -221,7 +221,6 @@ Builder withDefaultValues() { * * @param useReadAPI or {@code true} for none */ - @Nullable public abstract Builder setUseReadAPI(Boolean useReadAPI); /** diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ReadClientConnectionConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ReadClientConnectionConfiguration.java index e0805a11e9ed..03cc2140e076 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ReadClientConnectionConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ReadClientConnectionConfiguration.java @@ -31,21 +31,18 @@ public abstract static class Builder { * Sets the total row count to page row count ratio used to determine whether to us the * BigQueryStorage Read client to fetch result sets after the first page. */ - @Nullable public abstract Builder setTotalToPageRowCountRatio(Long ratio); /** * Sets the minimum number of table rows in the query results used to determine whether to us * the BigQueryStorage Read client to fetch result sets after the first page. */ - @Nullable public abstract Builder setMinResultSize(Long numRows); /** * Sets the maximum number of table rows allowed in buffer before streaming them to the * BigQueryResult. */ - @Nullable public abstract Builder setBufferSize(Long bufferSize); /** Creates a {@code ReadClientConnectionConfiguration} object. */ @@ -53,12 +50,15 @@ public abstract static class Builder { } /** Returns the totalToPageRowCountRatio in this configuration. */ + @Nullable public abstract Long getTotalToPageRowCountRatio(); /** Returns the minResultSize in this configuration. */ + @Nullable public abstract Long getMinResultSize(); /** Returns the bufferSize in this configuration. */ + @Nullable public abstract Long getBufferSize(); public abstract Builder toBuilder(); From 52152350a2a6218b51ebf3d7dd6beb2699064a3c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 24 Apr 2024 22:13:15 +0200 Subject: [PATCH 2810/3441] deps: update actions/upload-artifact action to v4.3.3 (#3258) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 87d07a651aeb..a9471c52e296 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 with: name: SARIF file path: results.sarif From 3302dc46e3e2c6a173798ef7f1642d3d4cb20332 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 24 Apr 2024 22:13:30 +0200 Subject: [PATCH 2811/3441] deps: update github/codeql-action action to v2.25.2 (#3260) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index a9471c52e296..9047ddf7125d 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@e949a1676c32f4c215780f7429eb9f00ff18b225 # v2.25.1 + uses: github/codeql-action/upload-sarif@9ace329d8c0504a5571820cf13ab64d3f59e84fb # v2.25.2 with: sarif_file: results.sarif From 841cd386da8f83f02af20e7cae8740c3bfbeeb3d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 24 Apr 2024 22:13:54 +0200 Subject: [PATCH 2812/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.39.0 (#3262) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.39.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d7279f7eadc0..a2aa57226c87 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.38.2 + 2.39.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 34ad3706c81e..3c411e5ae1bf 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.38.2 + 2.39.0 From 9ef933ad93fbb9546135506b35ceb30a510a9f95 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 24 Apr 2024 22:14:06 +0200 Subject: [PATCH 2813/3441] build(deps): update dependency org.apache.maven.plugins:maven-shade-plugin to v3.5.3 (#3263) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.apache.maven.plugins:maven-shade-plugin to v3.5.3 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2133b6e6df00..e070fd339ceb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -42,7 +42,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.2 + 3.5.3 package From 63075ddbd928dfa075893b7c8312789122bc0587 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 16:14:17 -0400 Subject: [PATCH 2814/3441] chore: update requirements.txt to address dependabot security alerts. (#1957) (#3264) Source-Link: https://github.com/googleapis/synthtool/commit/e451548dbb9b120f379bf7f0cc7fce16a5f54193 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:d13de1a4faec2645bda630b7a9aa080ce95182795aeab6f37ed4bd18cf5facbc Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 5762b696613a..1096f4dc0fce 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,6 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:25b384ee1674eda3984ec41c15b514a63bbeb5eda4d57c73c7e6f5adef2fd2f1 -# created: 2024-04-05T19:12:34.133475268Z - + digest: sha256:d13de1a4faec2645bda630b7a9aa080ce95182795aeab6f37ed4bd18cf5facbc +# created: 2024-04-24T14:22:15.892514394Z From c297ed2c77e36257451b5c12e4988f3293cdbb88 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sat, 27 Apr 2024 02:19:23 +0200 Subject: [PATCH 2815/3441] deps: update actions/checkout action (#3267) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/checkout action * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 9047ddf7125d..9f8f14d7c05f 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: persist-credentials: false From 1cf237702e16952029741c306aa57cb3558a663f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 29 Apr 2024 14:14:33 +0200 Subject: [PATCH 2816/3441] deps: update github/codeql-action action to v2.25.3 (#3268) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 9f8f14d7c05f..f9cc5902857c 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@9ace329d8c0504a5571820cf13ab64d3f59e84fb # v2.25.2 + uses: github/codeql-action/upload-sarif@ceaec5c11a131e0d282ff3b6f095917d234caace # v2.25.3 with: sarif_file: results.sarif From 3b6e0d5e3d26b8e2de412aa926a638d72562d4a0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 29 Apr 2024 15:52:46 +0200 Subject: [PATCH 2817/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.48.0 (#3271) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 15d74cb7e058..a37348a4fe07 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.47.0 + 1.48.0 pom import From cb83b68a5eec4b428bffb5bf5d42dd94722bc11d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 29 Apr 2024 16:23:55 +0200 Subject: [PATCH 2818/3441] build(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.2 (#3274) --- benchmark/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index e070fd339ceb..792446268126 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -75,7 +75,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.1 + 3.1.2 true diff --git a/samples/pom.xml b/samples/pom.xml index 43d03461c5a5..b7e48a56e544 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -55,7 +55,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.1 + 3.1.2 true diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 35cb184dfd43..b37b12c6815c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -109,7 +109,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.1 + 3.1.2 true From ee09ab68ea2be824aaf4e3d08b67e3bfbab2977f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 29 Apr 2024 17:18:15 +0200 Subject: [PATCH 2819/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.44.0 (#3270) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a37348a4fe07..f7bec63620d4 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.43.0 + 2.44.0 test From ad2dab1d4b7b3871cd73dc779c3bb5b36aab6034 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 29 Apr 2024 17:35:24 +0200 Subject: [PATCH 2820/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.44.0 (#3269) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index f7bec63620d4..7241cfbd997e 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.43.0 + 2.44.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3c411e5ae1bf..a1eb97001ce7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.43.0 + 2.44.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 90e7572ba107..2d68d4fffa4a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.43.0 + 2.44.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index b37b12c6815c..6cb2561c369e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.43.0 + 2.44.0 test From e7c620119321b673c19b99adb79247cd3c52cd67 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 29 Apr 2024 18:26:05 +0200 Subject: [PATCH 2821/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.29.0 (#3251) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.29.0 * chore: update bigquerystorage-bom to v3.5.0 --------- Co-authored-by: Lawrence Qiu --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 4 ++-- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 92fce04005bb..837835a5c8c2 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.28.1 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.29.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index fba53ee54b00..a1b734677db3 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.28.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.29.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 853a0d20baa6..8a6da76b4aa2 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.28.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.29.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 227409d0cbfb..ef071a411b67 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.28.1"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.29.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 94e00cbaa0a1..1b1d4c4bfe36 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.28.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.29.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 1513fd25e5cf..7c4d000e6b70 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.28.1 + 3.29.0 diff --git a/pom.xml b/pom.xml index 7241cfbd997e..80a4f0e2c641 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.28.1 + 3.29.0 @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.4.0 + 3.5.0 pom import From 7852b2bf598efca2a2feaf5729ea82df910cad66 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 17:06:23 +0000 Subject: [PATCH 2822/3441] chore(main): release 2.39.1-SNAPSHOT (#3261) :robot: I have created a release *beep* *boop* --- ### Updating meta-information for bleeding-edge SNAPSHOT release. --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 792446268126..40095c03d330 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.39.0 + 2.39.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 7c4d000e6b70..66e5921d6cc8 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.39.0 + 2.39.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.39.0 + 2.39.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8232a8059f57..494fa2aa2816 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.39.0 + 2.39.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.39.0 + 2.39.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 80a4f0e2c641..1e01ec92e83c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.39.0 + 2.39.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.39.0 + 2.39.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2d68d4fffa4a..42f3fffc60e7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.39.0 + 2.39.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 8da4e4838969..843cba5f4028 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.39.0:2.39.0 \ No newline at end of file +google-cloud-bigquery:2.39.0:2.39.1-SNAPSHOT \ No newline at end of file From c2e328324af1e50fdab441bd8b01c1a272a171f4 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 29 Apr 2024 19:34:22 +0000 Subject: [PATCH 2823/3441] chore(main): release 2.39.1 (#3275) :robot: I have created a release *beep* *boop* --- ## [2.39.1](https://togithub.com/googleapis/java-bigquery/compare/v2.39.0...v2.39.1) (2024-04-29) ### Bug Fixes * @Nullable annotations on builder methods ([#3222](https://togithub.com/googleapis/java-bigquery/issues/3222)) ([0c5eed1](https://togithub.com/googleapis/java-bigquery/commit/0c5eed1a18409f120a1243bd5da1db2aa4f9c206)) ### Dependencies * Update actions/checkout action ([#3267](https://togithub.com/googleapis/java-bigquery/issues/3267)) ([c297ed2](https://togithub.com/googleapis/java-bigquery/commit/c297ed2c77e36257451b5c12e4988f3293cdbb88)) * Update actions/upload-artifact action to v4.3.3 ([#3258](https://togithub.com/googleapis/java-bigquery/issues/3258)) ([5215235](https://togithub.com/googleapis/java-bigquery/commit/52152350a2a6218b51ebf3d7dd6beb2699064a3c)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.44.0 ([#3270](https://togithub.com/googleapis/java-bigquery/issues/3270)) ([ee09ab6](https://togithub.com/googleapis/java-bigquery/commit/ee09ab68ea2be824aaf4e3d08b67e3bfbab2977f)) * Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.5.0 ([e7c6201](https://togithub.com/googleapis/java-bigquery/commit/e7c620119321b673c19b99adb79247cd3c52cd67)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.48.0 ([#3271](https://togithub.com/googleapis/java-bigquery/issues/3271)) ([3b6e0d5](https://togithub.com/googleapis/java-bigquery/commit/3b6e0d5e3d26b8e2de412aa926a638d72562d4a0)) * Update github/codeql-action action to v2.25.2 ([#3260](https://togithub.com/googleapis/java-bigquery/issues/3260)) ([3302dc4](https://togithub.com/googleapis/java-bigquery/commit/3302dc46e3e2c6a173798ef7f1642d3d4cb20332)) * Update github/codeql-action action to v2.25.3 ([#3268](https://togithub.com/googleapis/java-bigquery/issues/3268)) ([1cf2377](https://togithub.com/googleapis/java-bigquery/commit/1cf237702e16952029741c306aa57cb3558a663f)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 18 ++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 27 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b4d2002da2b..d675cc82119a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # Changelog +## [2.39.1](https://github.com/googleapis/java-bigquery/compare/v2.39.0...v2.39.1) (2024-04-29) + + +### Bug Fixes + +* @Nullable annotations on builder methods ([#3222](https://github.com/googleapis/java-bigquery/issues/3222)) ([0c5eed1](https://github.com/googleapis/java-bigquery/commit/0c5eed1a18409f120a1243bd5da1db2aa4f9c206)) + + +### Dependencies + +* Update actions/checkout action ([#3267](https://github.com/googleapis/java-bigquery/issues/3267)) ([c297ed2](https://github.com/googleapis/java-bigquery/commit/c297ed2c77e36257451b5c12e4988f3293cdbb88)) +* Update actions/upload-artifact action to v4.3.3 ([#3258](https://github.com/googleapis/java-bigquery/issues/3258)) ([5215235](https://github.com/googleapis/java-bigquery/commit/52152350a2a6218b51ebf3d7dd6beb2699064a3c)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.44.0 ([#3270](https://github.com/googleapis/java-bigquery/issues/3270)) ([ee09ab6](https://github.com/googleapis/java-bigquery/commit/ee09ab68ea2be824aaf4e3d08b67e3bfbab2977f)) +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.5.0 ([e7c6201](https://github.com/googleapis/java-bigquery/commit/e7c620119321b673c19b99adb79247cd3c52cd67)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.48.0 ([#3271](https://github.com/googleapis/java-bigquery/issues/3271)) ([3b6e0d5](https://github.com/googleapis/java-bigquery/commit/3b6e0d5e3d26b8e2de412aa926a638d72562d4a0)) +* Update github/codeql-action action to v2.25.2 ([#3260](https://github.com/googleapis/java-bigquery/issues/3260)) ([3302dc4](https://github.com/googleapis/java-bigquery/commit/3302dc46e3e2c6a173798ef7f1642d3d4cb20332)) +* Update github/codeql-action action to v2.25.3 ([#3268](https://github.com/googleapis/java-bigquery/issues/3268)) ([1cf2377](https://github.com/googleapis/java-bigquery/commit/1cf237702e16952029741c306aa57cb3558a663f)) + ## [2.39.0](https://github.com/googleapis/java-bigquery/compare/v2.38.2...v2.39.0) (2024-04-22) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 40095c03d330..7da9585e9713 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.39.1-SNAPSHOT + 2.39.1 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 66e5921d6cc8..126d75c834af 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.39.1-SNAPSHOT + 2.39.1 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.39.1-SNAPSHOT + 2.39.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 494fa2aa2816..71738d92ea21 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.39.1-SNAPSHOT + 2.39.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.39.1-SNAPSHOT + 2.39.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1e01ec92e83c..1ff930cd3d22 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.39.1-SNAPSHOT + 2.39.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.39.1-SNAPSHOT + 2.39.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 42f3fffc60e7..4338842843c7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.39.1-SNAPSHOT + 2.39.1 diff --git a/versions.txt b/versions.txt index 843cba5f4028..198c0fe1505e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.39.0:2.39.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.39.1:2.39.1 \ No newline at end of file From 8bac33a32e0239ffa03715ad0c6440527cb2e01e Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Mon, 29 Apr 2024 15:48:21 -0400 Subject: [PATCH 2824/3441] feat: Add getStringOrDefault method to FieldValue (#3255) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Add getStringOrDefault method to FieldValue * feat: Add getStringOrDefault method to FieldValue * Add null case to FieldValueTest unit test * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../java/com/google/cloud/bigquery/FieldValue.java | 14 ++++++++++++++ .../com/google/cloud/bigquery/FieldValueTest.java | 9 +++++++++ 2 files changed, 23 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java index a28f2ed61bc4..c5a8fab07c0f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java @@ -123,6 +123,20 @@ public String getStringValue() { return (String) value; } + /** + * Returns this field's value as a {@link String}, or defaultValue if {@link #isNull()} returns + * {@code true}. See {@link #getStringValue()} for more details. + * + * @throws ClassCastException if the field is not a primitive type + */ + @SuppressWarnings("unchecked") + public String getStringValueOrDefault(String defaultValue) { + if (isNull()) { + return defaultValue; + } + return getStringValue(); + } + /** * Returns this field's value as a byte array. This method should only be used if the * corresponding field has primitive type ({@link LegacySQLTypeName#BYTES}. diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java index eaebe3567116..6dbe81707843 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java @@ -20,6 +20,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; import com.google.api.client.util.Data; import com.google.api.services.bigquery.model.TableCell; @@ -77,12 +78,14 @@ public void testFromPb() { value = FieldValue.fromPb(GEOGRAPHY_FIELD); assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); assertEquals("POINT(-122.350220 47.649154)", value.getStringValue()); + assertEquals("POINT(-122.350220 47.649154)", value.getStringValueOrDefault(null)); value = FieldValue.fromPb(NUMERIC_FIELD); assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); assertEquals(new BigDecimal("123456789.123456789"), value.getNumericValue()); value = FieldValue.fromPb(STRING_FIELD); assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); assertEquals("string", value.getStringValue()); + assertEquals("string", value.getStringValueOrDefault(null)); value = FieldValue.fromPb(TIMESTAMP_FIELD); assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); assertEquals(42000000, value.getTimestampValue()); @@ -92,11 +95,13 @@ public void testFromPb() { PeriodDuration.of(Period.of(3, 2, 1), Duration.parse("PT12H34M56.789S")); assertEquals(periodDuration, value.getPeriodDuration()); assertEquals("P3Y2M1DT12H34M56.789S", value.getStringValue()); + assertEquals("P3Y2M1DT12H34M56.789S", value.getStringValueOrDefault(null)); value = FieldValue.fromPb(INTERVAL_FIELD_2); assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); periodDuration = PeriodDuration.of(Period.of(3, 2, 1), Duration.parse("PT12H34M56.789S")); assertEquals(periodDuration, value.getPeriodDuration()); assertEquals("3-2 1 12:34:56.789", value.getStringValue()); + assertEquals("3-2 1 12:34:56.789", value.getStringValueOrDefault(null)); value = FieldValue.fromPb(BYTES_FIELD); assertEquals(FieldValue.Attribute.PRIMITIVE, value.getAttribute()); assertArrayEquals(BYTES, value.getBytesValue()); @@ -113,6 +118,10 @@ public void testFromPb() { assertEquals(FieldValue.Attribute.RECORD, value.getAttribute()); assertEquals(FieldValue.fromPb(FLOAT_FIELD), value.getRepeatedValue().get(0)); assertEquals(FieldValue.fromPb(TIMESTAMP_FIELD), value.getRepeatedValue().get(1)); + value = FieldValue.fromPb(NULL_FIELD); + assertTrue(value.isNull()); + assertEquals(null, value.getStringValueOrDefault(null)); + assertEquals("defaultValue", value.getStringValueOrDefault("defaultValue")); } @Test From fa1a6d8ac490b2bb658d5b111ddecaf396ce5ac4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 29 Apr 2024 22:15:38 +0200 Subject: [PATCH 2825/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.39.0 (#3276) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a1eb97001ce7..c204f9004ea0 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.38.0 + 2.39.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4338842843c7..1d94faeecca4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.38.0 + 2.39.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6cb2561c369e..31cb2dab9e05 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.38.0 + 2.39.0 test From 8fa6d279bc8dd8fc11fd7f0ebadcbeca7f88ef42 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 Apr 2024 17:30:32 +0200 Subject: [PATCH 2826/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.39.1 (#3278) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.cloud:google-cloud-bigquery](https://togithub.com/googleapis/java-bigquery) | `2.39.0` -> `2.39.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.cloud:google-cloud-bigquery/2.39.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.cloud:google-cloud-bigquery/2.39.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.cloud:google-cloud-bigquery/2.39.0/2.39.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.cloud:google-cloud-bigquery/2.39.0/2.39.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes
    googleapis/java-bigquery (com.google.cloud:google-cloud-bigquery) ### [`v2.39.1`](https://togithub.com/googleapis/java-bigquery/blob/HEAD/CHANGELOG.md#2391-2024-04-29) ##### Bug Fixes - [@​Nullable](https://togithub.com/Nullable) annotations on builder methods ([#​3222](https://togithub.com/googleapis/java-bigquery/issues/3222)) ([0c5eed1](https://togithub.com/googleapis/java-bigquery/commit/0c5eed1a18409f120a1243bd5da1db2aa4f9c206)) ##### Dependencies - Update actions/checkout action ([#​3267](https://togithub.com/googleapis/java-bigquery/issues/3267)) ([c297ed2](https://togithub.com/googleapis/java-bigquery/commit/c297ed2c77e36257451b5c12e4988f3293cdbb88)) - Update actions/upload-artifact action to v4.3.3 ([#​3258](https://togithub.com/googleapis/java-bigquery/issues/3258)) ([5215235](https://togithub.com/googleapis/java-bigquery/commit/52152350a2a6218b51ebf3d7dd6beb2699064a3c)) - Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.44.0 ([#​3270](https://togithub.com/googleapis/java-bigquery/issues/3270)) ([ee09ab6](https://togithub.com/googleapis/java-bigquery/commit/ee09ab68ea2be824aaf4e3d08b67e3bfbab2977f)) - Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.5.0 ([e7c6201](https://togithub.com/googleapis/java-bigquery/commit/e7c620119321b673c19b99adb79247cd3c52cd67)) - Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.48.0 ([#​3271](https://togithub.com/googleapis/java-bigquery/issues/3271)) ([3b6e0d5](https://togithub.com/googleapis/java-bigquery/commit/3b6e0d5e3d26b8e2de412aa926a638d72562d4a0)) - Update github/codeql-action action to v2.25.2 ([#​3260](https://togithub.com/googleapis/java-bigquery/issues/3260)) ([3302dc4](https://togithub.com/googleapis/java-bigquery/commit/3302dc46e3e2c6a173798ef7f1642d3d4cb20332)) - Update github/codeql-action action to v2.25.3 ([#​3268](https://togithub.com/googleapis/java-bigquery/issues/3268)) ([1cf2377](https://togithub.com/googleapis/java-bigquery/commit/1cf237702e16952029741c306aa57cb3558a663f))
    --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/java-bigquery). --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index a2aa57226c87..5ae7e7abd7f3 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.39.0 + 2.39.1 ``` @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.39.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.39.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.39.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.39.1" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.39.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.39.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c204f9004ea0..ef220770639d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.39.0 + 2.39.1 From 67f2ea47f78240b6def27241e21fd298a75920b2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 3 May 2024 16:24:06 +0200 Subject: [PATCH 2827/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.30.0 (#3279) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.30.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- README.md | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 837835a5c8c2..e61a4af1b123 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.29.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.30.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index a1b734677db3..6fd91140cbeb 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.29.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.30.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 8a6da76b4aa2..e709308c5a84 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.29.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.30.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index ef071a411b67..9fa6d222db71 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.29.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.30.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 1b1d4c4bfe36..aad0db97859a 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.29.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.30.0" } env_vars: { diff --git a/README.md b/README.md index 5ae7e7abd7f3..2e55de6a97f9 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.37.0') +implementation platform('com.google.cloud:libraries-bom:26.38.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 126d75c834af..4ca20f7fa61b 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.29.0 + 3.30.0 diff --git a/pom.xml b/pom.xml index 1ff930cd3d22..f35754a3b96e 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.29.0 + 3.30.0 From 4d498130ae7f3a3077ae415ee9f6250635f639d3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 10:11:24 -0400 Subject: [PATCH 2828/3441] chore(main): release 2.39.2-SNAPSHOT (#3277) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 7da9585e9713..4f80512ae1bd 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.39.1 + 2.39.2-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 4ca20f7fa61b..f5625d307ffb 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.39.1 + 2.39.2-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.39.1 + 2.39.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 71738d92ea21..227097f45f7f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.39.1 + 2.39.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.39.1 + 2.39.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f35754a3b96e..71eb3fd0f39c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.39.1 + 2.39.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.39.1 + 2.39.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1d94faeecca4..57a3c3bc13f1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.39.1 + 2.39.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 198c0fe1505e..772df7dd41f8 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.39.1:2.39.1 \ No newline at end of file +google-cloud-bigquery:2.39.1:2.39.2-SNAPSHOT \ No newline at end of file From b73230ecae9b85251ac5064c175613273747398e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 10:48:23 -0400 Subject: [PATCH 2829/3441] chore(main): release 2.40.0 (#3282) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 21 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d675cc82119a..d9ac2302ea98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [2.40.0](https://github.com/googleapis/java-bigquery/compare/v2.39.1...v2.40.0) (2024-05-06) + + +### Features + +* Add getStringOrDefault method to FieldValue ([#3255](https://github.com/googleapis/java-bigquery/issues/3255)) ([8bac33a](https://github.com/googleapis/java-bigquery/commit/8bac33a32e0239ffa03715ad0c6440527cb2e01e)) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.30.0 ([#3279](https://github.com/googleapis/java-bigquery/issues/3279)) ([67f2ea4](https://github.com/googleapis/java-bigquery/commit/67f2ea47f78240b6def27241e21fd298a75920b2)) + ## [2.39.1](https://github.com/googleapis/java-bigquery/compare/v2.39.0...v2.39.1) (2024-04-29) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4f80512ae1bd..a14f420e0ccb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.39.2-SNAPSHOT + 2.40.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index f5625d307ffb..3412d1fd7db4 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.39.2-SNAPSHOT + 2.40.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.39.2-SNAPSHOT + 2.40.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 227097f45f7f..1be098dd713d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.39.2-SNAPSHOT + 2.40.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.39.2-SNAPSHOT + 2.40.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 71eb3fd0f39c..0dff255c2094 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.39.2-SNAPSHOT + 2.40.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.39.2-SNAPSHOT + 2.40.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 57a3c3bc13f1..d6cc26323e8e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.39.2-SNAPSHOT + 2.40.0 diff --git a/versions.txt b/versions.txt index 772df7dd41f8..328e41f493ac 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.39.1:2.39.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.40.0:2.40.0 \ No newline at end of file From 842f1822049831bdfe176ccd83b882104ddb8425 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 12:53:22 -0400 Subject: [PATCH 2830/3441] chore(main): release 2.40.1-SNAPSHOT (#3283) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a14f420e0ccb..a75fbddd97c3 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.40.0 + 2.40.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 3412d1fd7db4..043845b76cc7 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.40.0 + 2.40.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.40.0 + 2.40.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1be098dd713d..12d563283477 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.40.0 + 2.40.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.40.0 + 2.40.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0dff255c2094..4af57364f799 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.40.0 + 2.40.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.40.0 + 2.40.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d6cc26323e8e..817a889d4221 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.40.0 + 2.40.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 328e41f493ac..a711e0e43f7b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.40.0:2.40.0 \ No newline at end of file +google-cloud-bigquery:2.40.0:2.40.1-SNAPSHOT \ No newline at end of file From 29059131d3736c15782071d0582234fc29b9c288 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 6 May 2024 19:47:10 +0200 Subject: [PATCH 2831/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.40.0 (#3285) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.40.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2e55de6a97f9..4e20674b739d 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.39.1 + 2.40.0 ``` @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.39.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.40.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.39.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.40.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.39.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.40.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ef220770639d..47b92f6249e6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.39.1 + 2.40.0 From f2c98e0e7b3f4cd81b3c33a45532263700dd8feb Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 6 May 2024 20:27:04 +0200 Subject: [PATCH 2832/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.5.1 (#3284) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.5.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4af57364f799..e15c9cabcb1e 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.5.0 + 3.5.1 pom import From 4d8f3fb7fd3d8f6e9484c809d6690f8078ef7a30 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 6 May 2024 20:27:32 +0200 Subject: [PATCH 2833/3441] deps: update actions/checkout action (#3286) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/checkout action * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index f9cc5902857c..1611e0fd5cf8 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 with: persist-credentials: false From 0dc69b371b4dc52d12011f933005bfb77e839f9e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 18:06:24 -0400 Subject: [PATCH 2834/3441] chore(main): release 2.40.1 (#3287) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9ac2302ea98..a939b3e6b8f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.40.1](https://github.com/googleapis/java-bigquery/compare/v2.40.0...v2.40.1) (2024-05-06) + + +### Dependencies + +* Update actions/checkout action ([#3286](https://github.com/googleapis/java-bigquery/issues/3286)) ([4d8f3fb](https://github.com/googleapis/java-bigquery/commit/4d8f3fb7fd3d8f6e9484c809d6690f8078ef7a30)) + ## [2.40.0](https://github.com/googleapis/java-bigquery/compare/v2.39.1...v2.40.0) (2024-05-06) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a75fbddd97c3..bcf23b1fe551 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.40.1-SNAPSHOT + 2.40.1 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 043845b76cc7..7b43ade96808 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.40.1-SNAPSHOT + 2.40.1 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.40.1-SNAPSHOT + 2.40.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 12d563283477..09560618683c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.40.1-SNAPSHOT + 2.40.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.40.1-SNAPSHOT + 2.40.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e15c9cabcb1e..ee980ecfd458 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.40.1-SNAPSHOT + 2.40.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.40.1-SNAPSHOT + 2.40.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 817a889d4221..74b17827a350 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.40.1-SNAPSHOT + 2.40.1 diff --git a/versions.txt b/versions.txt index a711e0e43f7b..848fb8f02642 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.40.0:2.40.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.40.1:2.40.1 \ No newline at end of file From af8f64c894b917d107de0ac472683b9d16ceb107 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 7 May 2024 17:55:47 +0200 Subject: [PATCH 2835/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.40.1 (#3289) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.40.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4e20674b739d..46a291fb206b 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.40.0 + 2.40.1 ``` @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.40.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.40.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.40.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.40.1" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.40.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.40.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 47b92f6249e6..9fff8165516d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.40.0 + 2.40.1 From 6e281d548e3198456929ac429a3390480b74a2af Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 7 May 2024 13:35:08 -0400 Subject: [PATCH 2836/3441] chore(main): release 2.40.2-SNAPSHOT (#3288) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index bcf23b1fe551..129df70391a3 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.40.1 + 2.40.2-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 7b43ade96808..12df23ddb723 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.40.1 + 2.40.2-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.40.1 + 2.40.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 09560618683c..5fd9b3f2298e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.40.1 + 2.40.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.40.1 + 2.40.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ee980ecfd458..430be7a70da1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.40.1 + 2.40.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.40.1 + 2.40.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 74b17827a350..609773344031 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.40.1 + 2.40.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 848fb8f02642..d74a98f5ad1f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.40.1:2.40.1 \ No newline at end of file +google-cloud-bigquery:2.40.1:2.40.2-SNAPSHOT \ No newline at end of file From 127cff9f964c5d2d912d26276474822fd137a64b Mon Sep 17 00:00:00 2001 From: Nick Redfearn <97466325+nick-redfearn@users.noreply.github.com> Date: Wed, 8 May 2024 18:40:22 +0100 Subject: [PATCH 2837/3441] fix: Fixing NPE bug by adding to if clause (#3290) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: fixing bug by adding to if clause * fix: fixing formatting * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../src/main/java/com/google/cloud/bigquery/BigQueryImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index a0e61e23b010..acfa1b7f125e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -427,7 +427,9 @@ public com.google.api.services.bigquery.model.Job call() { } if (!idRandom) { - if (createException instanceof BigQueryException && createException.getCause() != null) { + if (createException instanceof BigQueryException + && createException.getCause() != null + && createException.getCause().getMessage() != null) { /*GoogleJsonResponseException createExceptionCause = (GoogleJsonResponseException) createException.getCause();*/ From 5bd03bae5f379c4edc0f5d4c13340d0ed263410e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 9 May 2024 15:38:32 +0200 Subject: [PATCH 2838/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.39.1 (#3293) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 9fff8165516d..98f25c989e5e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.39.0 + 2.39.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 609773344031..5e7a6d0c8131 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.39.0 + 2.39.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 31cb2dab9e05..54f08d45b334 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.39.0 + 2.39.1 test From 7d1151580c21ef1d3c9ba1920db35875e7c9ca02 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 9 May 2024 15:38:47 +0200 Subject: [PATCH 2839/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.45.0 (#3294) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 430be7a70da1..5f5d69ef394a 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.44.0 + 2.45.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 98f25c989e5e..ef733c9d49cf 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.44.0 + 2.45.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5e7a6d0c8131..5d0c18f7ecad 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.44.0 + 2.45.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 54f08d45b334..4e5e2b75fe67 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.44.0 + 2.45.0 test From c659523a7ca25bc12282f0e28fff18ec9221f48e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 9 May 2024 15:38:58 +0200 Subject: [PATCH 2840/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.45.0 (#3295) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5f5d69ef394a..e3dccc2d99f2 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.44.0 + 2.45.0 test From d09608211aed5dc49e2b5e51affe7942403ed267 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 10 May 2024 15:12:06 +0200 Subject: [PATCH 2841/3441] deps: update ossf/scorecard-action action to v2.3.3 (#3304) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update ossf/scorecard-action action to v2.3.3 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 1611e0fd5cf8..95a30628083c 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -37,7 +37,7 @@ jobs: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1 + uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3 with: results_file: results.sarif results_format: sarif diff --git a/README.md b/README.md index 46a291fb206b..8ec28e640f21 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.38.0') +implementation platform('com.google.cloud:libraries-bom:26.39.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` From 194ed0919eb3e47b224df267c68c6f96728d1827 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 10 May 2024 15:13:45 +0200 Subject: [PATCH 2842/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.39.2 (#3303) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ef733c9d49cf..3fa4525a9946 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.39.1 + 2.39.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5d0c18f7ecad..409ef8a61688 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.39.1 + 2.39.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4e5e2b75fe67..0b5973853d7e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.39.1 + 2.39.2 test From 7d148d5bb1d6e1e6b0a421749fcbb73a6fbe61e0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 10 May 2024 15:20:52 +0200 Subject: [PATCH 2843/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.49.0 (#3296) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e3dccc2d99f2..ea0b2ad14af2 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.48.0 + 1.49.0 pom import From 306409edc97674807871b5dab6b6eb66f84c9c02 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 10 May 2024 12:53:56 -0400 Subject: [PATCH 2844/3441] chore: update dependency versions in java templates (#1964) (#3301) * chore: update dependency versions in java templates * update other templates Source-Link: https://github.com/googleapis/synthtool/commit/0b86c72fe652dd7e52ba05a63f61bc1399ad5d65 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:68ba5f5164a4b55529d358bb262feaa000536a0c62980727dd05a91bbb47ea5e Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 +-- .github/workflows/approve-readme.yaml | 2 +- .github/workflows/ci.yaml | 30 ++++++++++---------- .github/workflows/renovate_config_check.yaml | 2 +- .github/workflows/samples.yaml | 4 +-- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 1096f4dc0fce..5db36a5f7d8e 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:d13de1a4faec2645bda630b7a9aa080ce95182795aeab6f37ed4bd18cf5facbc -# created: 2024-04-24T14:22:15.892514394Z + digest: sha256:68ba5f5164a4b55529d358bb262feaa000536a0c62980727dd05a91bbb47ea5e +# created: 2024-05-09T16:31:37.168667071Z diff --git a/.github/workflows/approve-readme.yaml b/.github/workflows/approve-readme.yaml index f5fc7d5169eb..59f00b8eb6e6 100644 --- a/.github/workflows/approve-readme.yaml +++ b/.github/workflows/approve-readme.yaml @@ -21,7 +21,7 @@ jobs: runs-on: ubuntu-latest if: github.repository_owner == 'googleapis' && github.head_ref == 'autosynth-readme' steps: - - uses: actions/github-script@v6 + - uses: actions/github-script@v7 with: github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} script: | diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ae66b1973b17..b91fa381f56b 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -27,8 +27,8 @@ jobs: matrix: java: [11, 17, 21] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: ${{matrix.java}} @@ -41,8 +41,8 @@ jobs: name: "units (8)" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: java-version: 8 distribution: temurin @@ -51,7 +51,7 @@ jobs: # https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#jvm run: echo "SUREFIRE_JVM_OPT=-Djvm=${JAVA_HOME}/bin/java" >> $GITHUB_ENV shell: bash - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: 17 distribution: temurin @@ -63,8 +63,8 @@ jobs: steps: - name: Support longpaths run: git config --system core.longpaths true - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 @@ -78,8 +78,8 @@ jobs: matrix: java: [17] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: ${{matrix.java}} @@ -88,8 +88,8 @@ jobs: javadoc: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 @@ -100,8 +100,8 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: 11 @@ -112,8 +112,8 @@ jobs: clirr: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 diff --git a/.github/workflows/renovate_config_check.yaml b/.github/workflows/renovate_config_check.yaml index 87d8eb2be8cd..7c5ec7865e11 100644 --- a/.github/workflows/renovate_config_check.yaml +++ b/.github/workflows/renovate_config_check.yaml @@ -14,7 +14,7 @@ jobs: uses: actions/checkout@v4 - name: Set up Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: '20' diff --git a/.github/workflows/samples.yaml b/.github/workflows/samples.yaml index 10d252d77538..03b2939567a9 100644 --- a/.github/workflows/samples.yaml +++ b/.github/workflows/samples.yaml @@ -20,8 +20,8 @@ jobs: checkstyle: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: distribution: temurin java-version: 8 From acf6e737bbda01d8e759e5c910cccb6b57f28f3e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 10 May 2024 19:36:23 +0200 Subject: [PATCH 2845/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.38.0 (#3302) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ea0b2ad14af2..98be811fd73e 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.37.0 + 2.38.0 test From 13bb5aaa6e4bac7144a369c9fbb5ae8922eb36ee Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 10 May 2024 23:22:42 +0200 Subject: [PATCH 2846/3441] deps: update github/codeql-action action to v2.25.4 (#3291) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 95a30628083c..33b7cb733c07 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@ceaec5c11a131e0d282ff3b6f095917d234caace # v2.25.3 + uses: github/codeql-action/upload-sarif@4f0ceda83afa9bc55df7b6c611b81435fa53d987 # v2.25.4 with: sarif_file: results.sarif From 641f1a8325f0f43aeffd135654480a721f26e4e7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sun, 26 May 2024 18:03:59 +0200 Subject: [PATCH 2847/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.30.1 (#3310) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index e61a4af1b123..c68f5f590063 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.30.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.30.1 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 6fd91140cbeb..030444e51237 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.30.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.30.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index e709308c5a84..ee3ad6d86f5a 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.30.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.30.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 9fa6d222db71..0083532373f5 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.30.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.30.1"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index aad0db97859a..1292cf163b17 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.30.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.30.1" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 12df23ddb723..e8b3648e6613 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.30.0 + 3.30.1 diff --git a/pom.xml b/pom.xml index 98be811fd73e..a4d025ebb1e0 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.30.0 + 3.30.1 From 11f0d2d449b0f1af8c9415312f64ec144f348a7c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sun, 26 May 2024 20:20:55 +0200 Subject: [PATCH 2848/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.5.2 (#3320) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a4d025ebb1e0..5f13d5207b5e 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.5.1 + 3.5.2 pom import From ba988970574ad393b9aa416e991334a4a331c4d8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 08:18:44 -0400 Subject: [PATCH 2849/3441] chore(main): release 2.40.2 (#3292) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 16 ++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 25 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a939b3e6b8f3..0d65694b11fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## [2.40.2](https://github.com/googleapis/java-bigquery/compare/v2.40.1...v2.40.2) (2024-05-26) + + +### Bug Fixes + +* Fixing NPE bug by adding to if clause ([#3290](https://github.com/googleapis/java-bigquery/issues/3290)) ([127cff9](https://github.com/googleapis/java-bigquery/commit/127cff9f964c5d2d912d26276474822fd137a64b)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.45.0 ([#3295](https://github.com/googleapis/java-bigquery/issues/3295)) ([c659523](https://github.com/googleapis/java-bigquery/commit/c659523a7ca25bc12282f0e28fff18ec9221f48e)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.49.0 ([#3296](https://github.com/googleapis/java-bigquery/issues/3296)) ([7d148d5](https://github.com/googleapis/java-bigquery/commit/7d148d5bb1d6e1e6b0a421749fcbb73a6fbe61e0)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.30.1 ([#3310](https://github.com/googleapis/java-bigquery/issues/3310)) ([641f1a8](https://github.com/googleapis/java-bigquery/commit/641f1a8325f0f43aeffd135654480a721f26e4e7)) +* Update github/codeql-action action to v2.25.4 ([#3291](https://github.com/googleapis/java-bigquery/issues/3291)) ([13bb5aa](https://github.com/googleapis/java-bigquery/commit/13bb5aaa6e4bac7144a369c9fbb5ae8922eb36ee)) +* Update ossf/scorecard-action action to v2.3.3 ([#3304](https://github.com/googleapis/java-bigquery/issues/3304)) ([d096082](https://github.com/googleapis/java-bigquery/commit/d09608211aed5dc49e2b5e51affe7942403ed267)) + ## [2.40.1](https://github.com/googleapis/java-bigquery/compare/v2.40.0...v2.40.1) (2024-05-06) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 129df70391a3..c97073ad392b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.40.2-SNAPSHOT + 2.40.2 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index e8b3648e6613..76854c3fbd9a 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.40.2-SNAPSHOT + 2.40.2 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.40.2-SNAPSHOT + 2.40.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5fd9b3f2298e..21b589fa28f6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.40.2-SNAPSHOT + 2.40.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.40.2-SNAPSHOT + 2.40.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5f13d5207b5e..2b00d67b7c4e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.40.2-SNAPSHOT + 2.40.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.40.2-SNAPSHOT + 2.40.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 409ef8a61688..e5b80c7a9cc9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.40.2-SNAPSHOT + 2.40.2 diff --git a/versions.txt b/versions.txt index d74a98f5ad1f..f81ca08e7fb5 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.40.1:2.40.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.40.2:2.40.2 \ No newline at end of file From 5d4c378cf95ce3a81cdee99b9a92a6f70bbbf306 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 08:58:39 -0400 Subject: [PATCH 2850/3441] chore(main): release 2.40.3-SNAPSHOT (#3322) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c97073ad392b..a2072e35ee51 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.40.2 + 2.40.3-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 76854c3fbd9a..11e339aafdfa 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.40.2 + 2.40.3-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.40.2 + 2.40.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 21b589fa28f6..67567c13418c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.40.2 + 2.40.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.40.2 + 2.40.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2b00d67b7c4e..2748a1b9ba50 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.40.2 + 2.40.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.40.2 + 2.40.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e5b80c7a9cc9..2651ecdbd50e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.40.2 + 2.40.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index f81ca08e7fb5..d7c22bcb18ae 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.40.2:2.40.2 \ No newline at end of file +google-cloud-bigquery:2.40.2:2.40.3-SNAPSHOT \ No newline at end of file From d05e5547e97f52ccfdcec1d6fe167e6587dd00c6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 29 May 2024 16:21:32 +0200 Subject: [PATCH 2851/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.36.0 (#3305) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3fa4525a9946..f6b6094ebeba 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.35.0 + 1.36.0 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2651ecdbd50e..b07189ab07f7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.35.0 + 1.36.0 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0b5973853d7e..62b189b38608 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.35.0 + 1.36.0 com.google.oauth-client From 4e7f6b5fe60c3e6b1f964be02cf2a5aca24eb553 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 29 May 2024 18:14:38 +0200 Subject: [PATCH 2852/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.40.2 (#3323) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.40.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 8ec28e640f21..cd20be7a3094 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.40.1 + 2.40.2 ``` @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.40.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.40.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.40.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.40.2" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.40.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.40.2 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f6b6094ebeba..3a7f838fdd85 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.40.1 + 2.40.2 From 05804ae109d53aec94122e27ec56ac1e05053b8a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 29 May 2024 19:34:25 +0200 Subject: [PATCH 2853/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.39.4 (#3321) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.39.4 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3a7f838fdd85..ee17800164c1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.39.2 + 2.39.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b07189ab07f7..94b909dffa03 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.39.2 + 2.39.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 62b189b38608..0616a9fa4684 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.39.2 + 2.39.4 test From cd7c5cad0c7368142327269c56f946187681b11b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 29 May 2024 19:34:51 +0200 Subject: [PATCH 2854/3441] build(deps): update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.6.0 (#3313) --- google-cloud-bigquery/pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 67567c13418c..5d797f92c428 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -191,7 +191,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.5.0 + 3.6.0 add-source diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ee17800164c1..feaa702565e7 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -92,7 +92,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.5.0 + 3.6.0 add-snippets-source diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 94b909dffa03..1718c7f1b3ea 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -90,7 +90,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.5.0 + 3.6.0 add-snippets-source From 3912a9232788e09c10fc4e91ef6d65514fc106e4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 29 May 2024 19:35:23 +0200 Subject: [PATCH 2855/3441] deps: update dependency org.graalvm.buildtools:junit-platform-native to v0.10.2 (#3311) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index ba90812eb3cb..cac9e7855162 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -99,7 +99,7 @@ org.graalvm.buildtools junit-platform-native - 0.10.1 + 0.10.2 test From c7d6362d47cb985abf3c08f5c4e89f651480c4c8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 29 May 2024 19:39:01 +0200 Subject: [PATCH 2856/3441] deps: update actions/checkout action to v4.1.6 (#3309) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 33b7cb733c07..15f886c72726 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5 + uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 with: persist-credentials: false From 8999d337b92d7030825c5a36686ddd082cadc816 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 29 May 2024 19:39:24 +0200 Subject: [PATCH 2857/3441] deps: update github/codeql-action action to v2.25.6 (#3307) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 15f886c72726..13730c170252 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@4f0ceda83afa9bc55df7b6c611b81435fa53d987 # v2.25.4 + uses: github/codeql-action/upload-sarif@162eb1e32abe518e88bd229ebc8784a533ceaa51 # v2.25.6 with: sarif_file: results.sarif From 0eeed668b5f88f9c59ef6c1b309e7a81f5c1f0e9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 29 May 2024 20:15:08 +0200 Subject: [PATCH 2858/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.36.0 (#3306) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index feaa702565e7..d362b1f81a64 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.35.0 + 1.36.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1718c7f1b3ea..c874f813ab34 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.35.0 + 1.36.0 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0616a9fa4684..47203c4669c2 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.35.0 + 1.36.0 From 687a5f35087361c6444e767a5b565309387d3250 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 May 2024 15:55:24 +0200 Subject: [PATCH 2859/3441] build(deps): update dependency org.sonatype.plugins:nexus-staging-maven-plugin to v1.7.0 (#3326) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.sonatype.plugins:nexus-staging-maven-plugin to v1.7.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- benchmark/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index cd20be7a3094..f8cebcd7eb70 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.39.0') +implementation platform('com.google.cloud:libraries-bom:26.40.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a2072e35ee51..9318773f6ab8 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -83,7 +83,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.13 + 1.7.0 true diff --git a/samples/pom.xml b/samples/pom.xml index b7e48a56e544..cb1d804240c6 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -63,7 +63,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.13 + 1.7.0 true diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 47203c4669c2..d7176fcf85f5 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -117,7 +117,7 @@ org.sonatype.plugins nexus-staging-maven-plugin - 1.6.13 + 1.7.0 true From 283d6aadc50bd7556f633f51fa6208d89dbff123 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 May 2024 15:55:44 +0200 Subject: [PATCH 2860/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.46.0 (#3327) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.46.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 2748a1b9ba50..e7dc2c8d6117 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.45.0 + 2.46.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d362b1f81a64..e2528bd7ecc2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.45.0 + 2.46.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c874f813ab34..22c0937f244e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.45.0 + 2.46.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d7176fcf85f5..c803be6ff000 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.45.0 + 2.46.0 test From 9737a5d63d545ed197879bbd9dbfd3f1dbc15d93 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 May 2024 15:55:56 +0200 Subject: [PATCH 2861/3441] deps: update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.2 (#3312) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index cac9e7855162..cb49561656ae 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -121,7 +121,7 @@ org.graalvm.buildtools native-maven-plugin - 0.10.1 + 0.10.2 true com.example.bigquery.NativeImageBigquerySample From a6661ade5e297102ff54d314fa55caac9201ac67 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 May 2024 16:33:13 +0200 Subject: [PATCH 2862/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.46.0 (#3328) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.46.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e7dc2c8d6117..e577427f987a 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.45.0 + 2.46.0 test From cabb0ab1bc09ba10c43a2cf109f1390268441693 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 May 2024 16:33:28 +0200 Subject: [PATCH 2863/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.50.0 (#3330) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.50.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e577427f987a..ac5e945c4f40 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.49.0 + 1.50.0 pom import From 4896c3f33beaf51f33baedd52c534576fb453dba Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 May 2024 16:33:40 +0200 Subject: [PATCH 2864/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.39.0 (#3331) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test(deps): update dependency com.google.cloud:google-cloud-storage to v2.39.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ac5e945c4f40..e8934e565cae 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.38.0 + 2.39.0 test From e4edcfe201d909e4771fd91b8ca436fde0adbd72 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 3 Jun 2024 15:41:47 +0200 Subject: [PATCH 2865/3441] build(deps): update dependency org.apache.maven.plugins:maven-shade-plugin to v3.6.0 (#3333) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9318773f6ab8..52a03210eeab 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -42,7 +42,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.5.3 + 3.6.0 package From 768342da168921251c34163b51ffc3cddfefc0ce Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 3 Jun 2024 15:47:35 +0200 Subject: [PATCH 2866/3441] deps: update github/codeql-action action to v2.25.7 (#3334) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 13730c170252..261d70d4ef38 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@162eb1e32abe518e88bd229ebc8784a533ceaa51 # v2.25.6 + uses: github/codeql-action/upload-sarif@366cd9811409649a3e1276ce7f1a1c9023832b56 # v2.25.7 with: sarif_file: results.sarif From 062345501c392c2a186c3cd82dee8d20ceda2a0a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 3 Jun 2024 15:56:58 +0200 Subject: [PATCH 2867/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.31.0 (#3335) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index c68f5f590063..79451bab18a4 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.30.1 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.31.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 030444e51237..b2d351e09d40 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.30.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.31.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index ee3ad6d86f5a..8a5d647570d0 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.30.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.31.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 0083532373f5..e94d7bcd66b3 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.30.1"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.31.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 1292cf163b17..047ec1b678bd 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.30.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.31.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 11e339aafdfa..dd33ace97141 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.30.1 + 3.31.0 diff --git a/pom.xml b/pom.xml index e8934e565cae..67520cf373c6 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.30.1 + 3.31.0 From 8673fe55e6d33e50c32a520a848cddc25eb6088e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 5 Jun 2024 16:23:27 +0200 Subject: [PATCH 2868/3441] deps: update github/codeql-action action to v2.25.8 (#3338) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 261d70d4ef38..9c4b7820d796 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@366cd9811409649a3e1276ce7f1a1c9023832b56 # v2.25.7 + uses: github/codeql-action/upload-sarif@6ac9fc7e8e290bda8fac86290b68e176def71959 # v2.25.8 with: sarif_file: results.sarif From 7e03ca6f7bc1ced305abc0c09879ceb5aebcc613 Mon Sep 17 00:00:00 2001 From: shollyman Date: Thu, 6 Jun 2024 07:40:15 -0700 Subject: [PATCH 2869/3441] testing: update SQL iteration option (#3336) Updates from the alpha `max_iteration` option to the expected `max_iterations` option. Related: b/344469351 --- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 4 ++-- .../src/main/java/com/example/bigquery/CreateModel.java | 2 +- .../src/test/java/com/example/bigquery/CreateModelIT.java | 2 +- .../src/test/java/com/example/bigquery/DeleteModelIT.java | 2 +- .../src/test/java/com/example/bigquery/GetModelIT.java | 2 +- .../src/test/java/com/example/bigquery/ListModelsIT.java | 2 +- .../java/com/example/bigquery/UpdateModelDescriptionIT.java | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 6caecd26b39f..e67c9486fc71 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2807,7 +2807,7 @@ public void testModelLifecycle() throws InterruptedException { + "`" + "OPTIONS ( " + "model_type='linear_reg', " - + "max_iteration=1, " + + "max_iterations=1, " + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " @@ -5735,7 +5735,7 @@ public void testExtractJobWithModel() throws InterruptedException { + "`" + "OPTIONS ( " + "model_type='linear_reg', " - + "max_iteration=1, " + + "max_iterations=1, " + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java b/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java index 6b45718ce7f7..dfc54671206f 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java @@ -39,7 +39,7 @@ public static void main(String[] args) { + "`" + "OPTIONS ( " + "model_type='linear_reg', " - + "max_iteration=1, " + + "max_iterations=1, " + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java index 52af26303dc7..dd18a02f1a01 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java @@ -81,7 +81,7 @@ public void testCreateModel() { + "`" + "OPTIONS ( " + "model_type='linear_reg', " - + "max_iteration=1, " + + "max_iterations=1, " + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " diff --git a/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java index f33ad1d0325d..9df25a6581bd 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java @@ -69,7 +69,7 @@ public void setUp() { + "`" + "OPTIONS ( " + "model_type='linear_reg', " - + "max_iteration=1, " + + "max_iterations=1, " + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " diff --git a/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java b/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java index b7e1820d742c..7a1c931ee6b9 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java @@ -69,7 +69,7 @@ public void setUp() { + "`" + "OPTIONS ( " + "model_type='linear_reg', " - + "max_iteration=1, " + + "max_iterations=1, " + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " diff --git a/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java b/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java index fd99bc24ae8b..4ddac63bcb2e 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java @@ -69,7 +69,7 @@ public void setUp() { + "`" + "OPTIONS ( " + "model_type='linear_reg', " - + "max_iteration=1, " + + "max_iterations=1, " + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " diff --git a/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java b/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java index 156e83d170a9..478cfec97222 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java @@ -68,7 +68,7 @@ public void setUp() { + "`" + "OPTIONS ( " + "model_type='linear_reg', " - + "max_iteration=1, " + + "max_iterations=1, " + "learn_rate=0.4, " + "learn_rate_strategy='constant' " + ") AS ( " From 3647cc1949d2098a63dcced49e89e6bf4736969d Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Fri, 7 Jun 2024 09:08:49 -0400 Subject: [PATCH 2870/3441] ci: [java] automatic kokoro label in and /gcbrun comment (#1965) (#3339) Source-Link: https://github.com/googleapis/synthtool/commit/bd2bae89f70bad380da47fab9ec25985dfb87d67 Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-java:latest@sha256:72f0d373307d128b2cb720c5cb4d90b31f0e86529dd138c632710ae0c69efae3 Co-authored-by: Owl Bot --- .github/.OwlBot.lock.yaml | 4 ++-- .github/trusted-contribution.yml | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index 5db36a5f7d8e..359fe71c1964 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:68ba5f5164a4b55529d358bb262feaa000536a0c62980727dd05a91bbb47ea5e -# created: 2024-05-09T16:31:37.168667071Z + digest: sha256:72f0d373307d128b2cb720c5cb4d90b31f0e86529dd138c632710ae0c69efae3 +# created: 2024-06-05T18:32:21.724930324Z diff --git a/.github/trusted-contribution.yml b/.github/trusted-contribution.yml index a0ba1f7d9078..88d3ac9bf1a7 100644 --- a/.github/trusted-contribution.yml +++ b/.github/trusted-contribution.yml @@ -1,3 +1,9 @@ trustedContributors: - renovate-bot - gcf-owl-bot[bot] + +annotations: +- type: comment + text: "/gcbrun" +- type: label + text: "kokoro:force-run" From 0d3e7fe0ed5a5bb4d2762be9c851494124bc76a0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 7 Jun 2024 15:30:13 +0200 Subject: [PATCH 2871/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.40.0 (#3340) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 67520cf373c6..7f0f9ff39a5d 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.39.0 + 2.40.0 test From 354fbf93b9121d33c7c8a72e5b27438c9e124827 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 11 Jun 2024 16:52:02 +0200 Subject: [PATCH 2872/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.47.0 (#3341) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 7f0f9ff39a5d..52897a16b373 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.46.0 + 2.47.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e2528bd7ecc2..6f065933e928 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.46.0 + 2.47.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 22c0937f244e..09b253c37be0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.46.0 + 2.47.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c803be6ff000..32e356a0ad70 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.46.0 + 2.47.0 test From e3b934fa133679a2d61baeea6f4de15eed287f7f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 11 Jun 2024 17:02:18 +0200 Subject: [PATCH 2873/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.51.0 (#3343) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 52897a16b373..6af5b7ea8376 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.50.0 + 1.51.0 pom import From 79e34c256ddf99a43d546788535a9e8fa0e97e6d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 11 Jun 2024 18:07:44 +0200 Subject: [PATCH 2874/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.47.0 (#3342) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6af5b7ea8376..584e8fc66d37 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.46.0 + 2.47.0 test From 4650fefc1bbdd20ba1648d49a1b452fef1c47451 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 11 Jun 2024 19:19:21 +0200 Subject: [PATCH 2875/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.39.5 (#3344) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6f065933e928..89db86a583f1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.39.4 + 2.39.5 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 09b253c37be0..315490c5fc5c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.39.4 + 2.39.5 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 32e356a0ad70..e69bc6026945 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.39.4 + 2.39.5 test From a566927c3a4125a84d20481be8a59501102bbe90 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 12 Jun 2024 04:51:45 +0200 Subject: [PATCH 2876/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.6.0 (#3345) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 584e8fc66d37..94a02f12efa7 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.5.2 + 3.6.0 pom import From 4b9613d71f9af3fd91042736e9072e70b6568afd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 03:18:19 +0000 Subject: [PATCH 2877/3441] chore(main): release 2.40.3 (#3325) :robot: I have created a release *beep* *boop* --- ## [2.40.3](https://togithub.com/googleapis/java-bigquery/compare/v2.40.2...v2.40.3) (2024-06-12) ### Dependencies * Update actions/checkout action to v4.1.6 ([#3309](https://togithub.com/googleapis/java-bigquery/issues/3309)) ([c7d6362](https://togithub.com/googleapis/java-bigquery/commit/c7d6362d47cb985abf3c08f5c4e89f651480c4c8)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.46.0 ([#3328](https://togithub.com/googleapis/java-bigquery/issues/3328)) ([a6661ad](https://togithub.com/googleapis/java-bigquery/commit/a6661ade5e297102ff54d314fa55caac9201ac67)) * Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.47.0 ([#3342](https://togithub.com/googleapis/java-bigquery/issues/3342)) ([79e34c2](https://togithub.com/googleapis/java-bigquery/commit/79e34c256ddf99a43d546788535a9e8fa0e97e6d)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.50.0 ([#3330](https://togithub.com/googleapis/java-bigquery/issues/3330)) ([cabb0ab](https://togithub.com/googleapis/java-bigquery/commit/cabb0ab1bc09ba10c43a2cf109f1390268441693)) * Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.51.0 ([#3343](https://togithub.com/googleapis/java-bigquery/issues/3343)) ([e3b934f](https://togithub.com/googleapis/java-bigquery/commit/e3b934fa133679a2d61baeea6f4de15eed287f7f)) * Update dependency com.google.cloud:sdk-platform-java-config to v3.31.0 ([#3335](https://togithub.com/googleapis/java-bigquery/issues/3335)) ([0623455](https://togithub.com/googleapis/java-bigquery/commit/062345501c392c2a186c3cd82dee8d20ceda2a0a)) * Update dependency com.google.oauth-client:google-oauth-client-java6 to v1.36.0 ([#3305](https://togithub.com/googleapis/java-bigquery/issues/3305)) ([d05e554](https://togithub.com/googleapis/java-bigquery/commit/d05e5547e97f52ccfdcec1d6fe167e6587dd00c6)) * Update dependency com.google.oauth-client:google-oauth-client-jetty to v1.36.0 ([#3306](https://togithub.com/googleapis/java-bigquery/issues/3306)) ([0eeed66](https://togithub.com/googleapis/java-bigquery/commit/0eeed668b5f88f9c59ef6c1b309e7a81f5c1f0e9)) * Update dependency org.graalvm.buildtools:junit-platform-native to v0.10.2 ([#3311](https://togithub.com/googleapis/java-bigquery/issues/3311)) ([3912a92](https://togithub.com/googleapis/java-bigquery/commit/3912a9232788e09c10fc4e91ef6d65514fc106e4)) * Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.2 ([#3312](https://togithub.com/googleapis/java-bigquery/issues/3312)) ([9737a5d](https://togithub.com/googleapis/java-bigquery/commit/9737a5d63d545ed197879bbd9dbfd3f1dbc15d93)) * Update github/codeql-action action to v2.25.6 ([#3307](https://togithub.com/googleapis/java-bigquery/issues/3307)) ([8999d33](https://togithub.com/googleapis/java-bigquery/commit/8999d337b92d7030825c5a36686ddd082cadc816)) * Update github/codeql-action action to v2.25.7 ([#3334](https://togithub.com/googleapis/java-bigquery/issues/3334)) ([768342d](https://togithub.com/googleapis/java-bigquery/commit/768342da168921251c34163b51ffc3cddfefc0ce)) * Update github/codeql-action action to v2.25.8 ([#3338](https://togithub.com/googleapis/java-bigquery/issues/3338)) ([8673fe5](https://togithub.com/googleapis/java-bigquery/commit/8673fe55e6d33e50c32a520a848cddc25eb6088e)) --- This PR was generated with [Release Please](https://togithub.com/googleapis/release-please). See [documentation](https://togithub.com/googleapis/release-please#release-please). --- CHANGELOG.md | 19 +++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 28 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d65694b11fa..74c10885b274 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## [2.40.3](https://github.com/googleapis/java-bigquery/compare/v2.40.2...v2.40.3) (2024-06-12) + + +### Dependencies + +* Update actions/checkout action to v4.1.6 ([#3309](https://github.com/googleapis/java-bigquery/issues/3309)) ([c7d6362](https://github.com/googleapis/java-bigquery/commit/c7d6362d47cb985abf3c08f5c4e89f651480c4c8)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.46.0 ([#3328](https://github.com/googleapis/java-bigquery/issues/3328)) ([a6661ad](https://github.com/googleapis/java-bigquery/commit/a6661ade5e297102ff54d314fa55caac9201ac67)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.47.0 ([#3342](https://github.com/googleapis/java-bigquery/issues/3342)) ([79e34c2](https://github.com/googleapis/java-bigquery/commit/79e34c256ddf99a43d546788535a9e8fa0e97e6d)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.50.0 ([#3330](https://github.com/googleapis/java-bigquery/issues/3330)) ([cabb0ab](https://github.com/googleapis/java-bigquery/commit/cabb0ab1bc09ba10c43a2cf109f1390268441693)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.51.0 ([#3343](https://github.com/googleapis/java-bigquery/issues/3343)) ([e3b934f](https://github.com/googleapis/java-bigquery/commit/e3b934fa133679a2d61baeea6f4de15eed287f7f)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.31.0 ([#3335](https://github.com/googleapis/java-bigquery/issues/3335)) ([0623455](https://github.com/googleapis/java-bigquery/commit/062345501c392c2a186c3cd82dee8d20ceda2a0a)) +* Update dependency com.google.oauth-client:google-oauth-client-java6 to v1.36.0 ([#3305](https://github.com/googleapis/java-bigquery/issues/3305)) ([d05e554](https://github.com/googleapis/java-bigquery/commit/d05e5547e97f52ccfdcec1d6fe167e6587dd00c6)) +* Update dependency com.google.oauth-client:google-oauth-client-jetty to v1.36.0 ([#3306](https://github.com/googleapis/java-bigquery/issues/3306)) ([0eeed66](https://github.com/googleapis/java-bigquery/commit/0eeed668b5f88f9c59ef6c1b309e7a81f5c1f0e9)) +* Update dependency org.graalvm.buildtools:junit-platform-native to v0.10.2 ([#3311](https://github.com/googleapis/java-bigquery/issues/3311)) ([3912a92](https://github.com/googleapis/java-bigquery/commit/3912a9232788e09c10fc4e91ef6d65514fc106e4)) +* Update dependency org.graalvm.buildtools:native-maven-plugin to v0.10.2 ([#3312](https://github.com/googleapis/java-bigquery/issues/3312)) ([9737a5d](https://github.com/googleapis/java-bigquery/commit/9737a5d63d545ed197879bbd9dbfd3f1dbc15d93)) +* Update github/codeql-action action to v2.25.6 ([#3307](https://github.com/googleapis/java-bigquery/issues/3307)) ([8999d33](https://github.com/googleapis/java-bigquery/commit/8999d337b92d7030825c5a36686ddd082cadc816)) +* Update github/codeql-action action to v2.25.7 ([#3334](https://github.com/googleapis/java-bigquery/issues/3334)) ([768342d](https://github.com/googleapis/java-bigquery/commit/768342da168921251c34163b51ffc3cddfefc0ce)) +* Update github/codeql-action action to v2.25.8 ([#3338](https://github.com/googleapis/java-bigquery/issues/3338)) ([8673fe5](https://github.com/googleapis/java-bigquery/commit/8673fe55e6d33e50c32a520a848cddc25eb6088e)) + ## [2.40.2](https://github.com/googleapis/java-bigquery/compare/v2.40.1...v2.40.2) (2024-05-26) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 52a03210eeab..34936aa4b3c1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.40.3-SNAPSHOT + 2.40.3 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index dd33ace97141..62c3d4efca9d 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.40.3-SNAPSHOT + 2.40.3 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.40.3-SNAPSHOT + 2.40.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5d797f92c428..7c4aeb0b2a6a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.40.3-SNAPSHOT + 2.40.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.40.3-SNAPSHOT + 2.40.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 94a02f12efa7..076fac5219b7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.40.3-SNAPSHOT + 2.40.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.40.3-SNAPSHOT + 2.40.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 315490c5fc5c..673234c1dd05 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.40.3-SNAPSHOT + 2.40.3 diff --git a/versions.txt b/versions.txt index d7c22bcb18ae..77a4710e8926 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.40.2:2.40.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.40.3:2.40.3 \ No newline at end of file From 2814dc49dfdd5671257b6a9933a5dd381d889dd1 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Wed, 19 Jun 2024 09:30:19 -0400 Subject: [PATCH 2878/3441] feat: add MetadataCacheMode to ExternalTableDefinition (#3351) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add MetadataCacheMode to ExternalTableDefinition * Update comment * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++-- .../bigquery/ExternalTableDefinition.java | 40 +++++++++++++++++++ .../bigquery/ExternalTableDefinitionTest.java | 4 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 26 ++++++++++++ 4 files changed, 74 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f8cebcd7eb70..1976f6bb1c4c 100644 --- a/README.md +++ b/README.md @@ -53,20 +53,20 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.40.0') +implementation platform('com.google.cloud:libraries-bom:26.41.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.40.2' +implementation 'com.google.cloud:google-cloud-bigquery:2.40.3' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.40.2" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.40.3" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.40.2 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.40.3 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index 9f8aa40124bb..363f9507e1fb 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -186,6 +186,20 @@ public Builder setObjectMetadata(String objectMetadata) { abstract Builder setObjectMetadataInner(String objectMetadata); + /** + * [Optional] Metadata Cache Mode for the table. Set this to enable caching of metadata from + * external data source. + * + * @see + * MetadataCacheMode + */ + public Builder setMetadataCacheMode(String metadataCacheMode) { + return setMetadataCacheModeInner(metadataCacheMode); + } + + abstract Builder setMetadataCacheModeInner(String metadataCacheMode); + /** Creates an {@code ExternalTableDefinition} object. */ @Override public abstract ExternalTableDefinition build(); @@ -276,6 +290,21 @@ public String getObjectMetadata() { @Nullable abstract String getObjectMetadataInner(); + /** + * Returns the metadata cache mode. + * + * @see + * MetadataCacheMode + */ + @Nullable + public String getMetadataCacheMode() { + return getMetadataCacheModeInner(); + } + + @Nullable + abstract String getMetadataCacheModeInner(); + /** * Returns the source format, and possibly some parsing options, of the external data. Supported * formats are {@code CSV} and {@code NEWLINE_DELIMITED_JSON}. @@ -387,6 +416,10 @@ com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataC externalConfigurationPb.setObjectMetadata(getObjectMetadata()); } + if (getMetadataCacheMode() != null) { + externalConfigurationPb.setMetadataCacheMode(getMetadataCacheMode()); + } + return externalConfigurationPb; } @@ -580,6 +613,9 @@ static ExternalTableDefinition fromPb(Table tablePb) { if (externalDataConfiguration.getObjectMetadata() != null) { builder.setObjectMetadata(externalDataConfiguration.getObjectMetadata()); } + if (externalDataConfiguration.getMetadataCacheMode() != null) { + builder.setMetadataCacheMode(externalDataConfiguration.getMetadataCacheMode()); + } } return builder.build(); } @@ -647,6 +683,10 @@ static ExternalTableDefinition fromExternalDataConfiguration( builder.setObjectMetadata(externalDataConfiguration.getObjectMetadata()); } + if (externalDataConfiguration.getMetadataCacheMode() != null) { + builder.setMetadataCacheMode(externalDataConfiguration.getMetadataCacheMode()); + } + return builder.build(); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index ed56598916ac..2562e1763c5d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -59,6 +59,8 @@ public class ExternalTableDefinitionTest { .setSourceUriPrefix(SOURCE_URIS.get(0)) .build(); private static final String OBJECT_METADATA = "SIMPLE"; + + private static final String METADATA_CACHE_MODE = "AUTOMATIC"; private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION = ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) .setFileSetSpecType("FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH") @@ -70,6 +72,7 @@ public class ExternalTableDefinitionTest { .setAutodetect(AUTODETECT) .setHivePartitioningOptions(HIVE_PARTITIONING_OPTIONS) .setObjectMetadata(OBJECT_METADATA) + .setMetadataCacheMode(METADATA_CACHE_MODE) .build(); private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION_AVRO = @@ -170,5 +173,6 @@ private void compareExternalTableDefinition( assertEquals(expected.getAutodetect(), value.getAutodetect()); assertEquals(expected.getHivePartitioningOptions(), value.getHivePartitioningOptions()); assertEquals(expected.getObjectMetadata(), value.getObjectMetadata()); + assertEquals(expected.getMetadataCacheMode(), value.getMetadataCacheMode()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index e67c9486fc71..d6a80e86eac8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -6832,6 +6832,32 @@ public void testExternalTableMetadataCachingNotEnable() throws InterruptedExcept assertTrue(remoteTable.delete()); } + @Test + public void testExternalMetadataCacheModeFailForNonBiglake() { + // Validate that MetadataCacheMode is passed to the backend. + // TODO: Enhance this test after BigLake testing infrastructure is inplace. + String tableName = "test_metadata_cache_mode_fail_for_non_biglake"; + TableId tableId = TableId.of(DATASET, tableName); + ExternalTableDefinition externalTableDefinition = + ExternalTableDefinition.newBuilder( + "gs://" + BUCKET + "/" + JSON_LOAD_FILE, TABLE_SCHEMA, FormatOptions.json()) + .setMetadataCacheMode("AUTOMATIC") + .build(); + TableInfo tableInfo = TableInfo.of(tableId, externalTableDefinition); + + try { + bigquery.create(tableInfo); + fail("BigQueryException was expected"); + } catch (BigQueryException e) { + BigQueryError error = e.getError(); + assertNotNull(error); + assertEquals("invalid", error.getReason()); + assertThat( + e.getMessage().contains("metadataCacheMode provided for non BigLake external table")) + .isTrue(); + } + } + @Test public void testObjectTable() throws InterruptedException { String tableName = "test_object_table"; From ccbd708fc459ace9f96c1aa324e1071918556fbb Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 19 Jun 2024 20:19:41 +0200 Subject: [PATCH 2879/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.6.0 (#3353) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.6.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> --- README.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1976f6bb1c4c..7428c3de6e6d 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.41.0') +implementation platform('com.google.cloud:libraries-bom:26.42.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/pom.xml b/pom.xml index 076fac5219b7..fafc5757aeb0 100644 --- a/pom.xml +++ b/pom.xml @@ -180,7 +180,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.5.0 + 3.6.0 From 8b6feffa0e8add73a7587ce1762989713c2af38b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 19 Jun 2024 21:28:31 +0200 Subject: [PATCH 2880/3441] deps: update github/codeql-action action to v2.25.10 (#3348) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.25.10 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 9c4b7820d796..2a1c0c45a43a 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@6ac9fc7e8e290bda8fac86290b68e176def71959 # v2.25.8 + uses: github/codeql-action/upload-sarif@a073c66b2accf653a511d88537804dcafa07812e # v2.25.10 with: sarif_file: results.sarif From 3d33ab9a0694b637c283c153e8ad6928ee052ff0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 19 Jun 2024 21:45:50 +0200 Subject: [PATCH 2881/3441] build(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.3.0 (#3352) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.3.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index cb49561656ae..db3ce2f184bc 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -111,7 +111,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.2.5 + 3.3.0 **/*IT From 085723491e4aca58d670c313bc18b0c044cfdca8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 19 Jun 2024 21:46:13 +0200 Subject: [PATCH 2882/3441] deps: update actions/checkout action to v4.1.7 (#3349) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/checkout action to v4.1.7 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot Co-authored-by: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 2a1c0c45a43a..d278d4481f1f 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: persist-credentials: false From 4c4c8908ca8cbda78ada1058332783cf4afde676 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 20 Jun 2024 13:51:09 +0200 Subject: [PATCH 2883/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.40.3 (#3347) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.40.3 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7428c3de6e6d..3a77fbac982f 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.40.2 + 2.40.3 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 89db86a583f1..3a8f8d99767b 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.40.2 + 2.40.3 From 7b7e52b339f57af752c573a222df68196f1808f5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 20 Jun 2024 16:50:52 +0200 Subject: [PATCH 2884/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240602-2.0.0 (#3273) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fafc5757aeb0..263995e8e2b7 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240323-2.0.0 + v2-rev20240602-2.0.0 From 2f3cbe39619bcc93cb7d504417accd84b418dd41 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Fri, 21 Jun 2024 22:07:48 -0400 Subject: [PATCH 2885/3441] feat: add columnNameCharacterMap to LoadJobConfiguration (#3356) * feat: add columnNameCharacterMap to LoadJobConfiguration * fix: unintentional empty line delete * fix: lint/format --- .../cloud/bigquery/LoadJobConfiguration.java | 37 +++++++++++ .../bigquery/LoadJobConfigurationTest.java | 2 + .../cloud/bigquery/it/ITBigQueryTest.java | 64 +++++++++++++++++++ 3 files changed, 103 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index fefff3409f5d..2d348f0d45a7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -39,6 +39,7 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private final List sourceUris; private final String fileSetSpecType; + private final String columnNameCharacterMap; private final TableId destinationTable; private final List decimalTargetTypes; private final EncryptionConfiguration destinationEncryptionConfiguration; @@ -69,6 +70,8 @@ public static final class Builder extends JobConfiguration.Builder sourceUris; private String fileSetSpecType; + private String columnNameCharacterMap; + private TableId destinationTable; private List decimalTargetTypes; private EncryptionConfiguration destinationEncryptionConfiguration; @@ -110,6 +113,7 @@ private Builder(LoadJobConfiguration loadConfiguration) { this.ignoreUnknownValues = loadConfiguration.ignoreUnknownValues; this.sourceUris = loadConfiguration.sourceUris; this.fileSetSpecType = loadConfiguration.fileSetSpecType; + this.columnNameCharacterMap = loadConfiguration.columnNameCharacterMap; this.schemaUpdateOptions = loadConfiguration.schemaUpdateOptions; this.autodetect = loadConfiguration.autodetect; this.destinationEncryptionConfiguration = @@ -181,6 +185,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (loadConfigurationPb.getFileSetSpecType() != null) { this.fileSetSpecType = loadConfigurationPb.getFileSetSpecType(); } + if (loadConfigurationPb.getColumnNameCharacterMap() != null) { + this.columnNameCharacterMap = loadConfigurationPb.getColumnNameCharacterMap(); + } if (loadConfigurationPb.getSchemaUpdateOptions() != null) { ImmutableList.Builder schemaUpdateOptionsBuilder = new ImmutableList.Builder<>(); @@ -323,6 +330,20 @@ public Builder setFileSetSpecType(String fileSetSpecType) { return this; } + /** + * [Optional] Character map supported for column names in CSV/Parquet loads. Defaults to STRICT + * and can be overridden by Project Config Service. Using this option with unsupporting load + * formats will result in an error. + * + * @see + * ColumnNameCharacterMap + */ + public Builder setColumnNameCharacterMap(String columnNameCharacterMap) { + this.columnNameCharacterMap = columnNameCharacterMap; + return this; + } + /** * Defines the list of possible SQL data types to which the source decimal values are converted. * This list and the precision and the scale parameters of the decimal field determine the @@ -421,6 +442,7 @@ private LoadJobConfiguration(Builder builder) { super(builder); this.sourceUris = builder.sourceUris; this.fileSetSpecType = builder.fileSetSpecType; + this.columnNameCharacterMap = builder.columnNameCharacterMap; this.destinationTable = builder.destinationTable; this.decimalTargetTypes = builder.decimalTargetTypes; this.createDisposition = builder.createDisposition; @@ -519,6 +541,17 @@ public String getFileSetSpecType() { return fileSetSpecType; } + /** + * Returns the column name character map used in CSV/Parquet loads. + * + * @see + * ColumnNameCharacterMap + */ + public String getColumnNameCharacterMap() { + return columnNameCharacterMap; + } + public List getDecimalTargetTypes() { return decimalTargetTypes; } @@ -598,6 +631,7 @@ ToStringHelper toStringHelper() { .add("ignoreUnknownValue", ignoreUnknownValues) .add("sourceUris", sourceUris) .add("fileSetSpecType", fileSetSpecType) + .add("columnNameCharacterMap", columnNameCharacterMap) .add("schemaUpdateOptions", schemaUpdateOptions) .add("autodetect", autodetect) .add("timePartitioning", timePartitioning) @@ -681,6 +715,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (fileSetSpecType != null) { loadConfigurationPb.setFileSetSpecType(fileSetSpecType); } + if (columnNameCharacterMap != null) { + loadConfigurationPb.setColumnNameCharacterMap(columnNameCharacterMap); + } if (decimalTargetTypes != null) { loadConfigurationPb.setDecimalTargetTypes(ImmutableList.copyOf(decimalTargetTypes)); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index 563a3f34a1f2..85709a74a29f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -92,6 +92,7 @@ public class LoadJobConfigurationTest { .setWriteDisposition(WRITE_DISPOSITION) .setFormatOptions(CSV_OPTIONS) .setFileSetSpecType("FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH") + .setColumnNameCharacterMap("STRICT") .setIgnoreUnknownValues(IGNORE_UNKNOWN_VALUES) .setMaxBadRecords(MAX_BAD_RECORDS) .setSchema(TABLE_SCHEMA) @@ -242,6 +243,7 @@ private void compareLoadJobConfiguration( assertEquals(expected, value); assertEquals(expected.hashCode(), value.hashCode()); assertEquals(expected.getFileSetSpecType(), value.getFileSetSpecType()); + assertEquals(expected.getColumnNameCharacterMap(), value.getColumnNameCharacterMap()); assertEquals(expected.toString(), value.toString()); assertEquals(expected.getDestinationTable(), value.getDestinationTable()); assertEquals(expected.getDecimalTargetTypes(), value.getDecimalTargetTypes()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index d6a80e86eac8..b346b16928bf 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -586,6 +586,8 @@ public class ITBigQueryTest { RangePartitioning.newBuilder().setField("IntegerField").setRange(RANGE).build(); private static final String LOAD_FILE = "load.csv"; private static final String LOAD_FILE_LARGE = "load_large.csv"; + + private static final String LOAD_FILE_FLEXIBLE_COLUMN_NAME = "load_flexible_column_name.csv"; private static final String JSON_LOAD_FILE = "load.json"; private static final String JSON_LOAD_FILE_BQ_RESULTSET = "load_bq_resultset.json"; private static final String JSON_LOAD_FILE_SIMPLE = "load_simple.json"; @@ -601,6 +603,7 @@ public class ITBigQueryTest { private static final TableId TABLE_ID_FASTQUERY_BQ_RESULTSET = TableId.of(DATASET, "fastquery_testing_bq_resultset"); private static final String CSV_CONTENT = "StringValue1\nStringValue2\n"; + private static final String CSV_CONTENT_FLEXIBLE_COLUMN = "name,&ersand\nrow_name,1"; private static final String JSON_CONTENT = "{" @@ -1019,6 +1022,11 @@ public static void beforeClass() throws InterruptedException, IOException { storage.create( BlobInfo.newBuilder(BUCKET, LOAD_FILE).setContentType("text/plain").build(), CSV_CONTENT.getBytes(StandardCharsets.UTF_8)); + storage.create( + BlobInfo.newBuilder(BUCKET, LOAD_FILE_FLEXIBLE_COLUMN_NAME) + .setContentType("text/plain") + .build(), + CSV_CONTENT_FLEXIBLE_COLUMN.getBytes(StandardCharsets.UTF_8)); storage.create( BlobInfo.newBuilder(BUCKET, JSON_LOAD_FILE).setContentType("application/json").build(), JSON_CONTENT.getBytes(StandardCharsets.UTF_8)); @@ -6934,4 +6942,60 @@ public void testQueryExportStatistics() throws InterruptedException { assertEquals(1L, queryStatistics.getExportDataStats().getFileCount().longValue()); assertEquals(3L, queryStatistics.getExportDataStats().getRowCount().longValue()); } + + @Test + public void testLoadConfigurationFlexibleColumnName() throws InterruptedException { + // See https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#columnnamecharactermap for + // mapping. + + // Test v1 mapping. + String v1TableName = "flexible_column_name_data_testing_table_v1"; + TableId v1TableId = TableId.of(DATASET, v1TableName); + try { + LoadJobConfiguration loadJobConfigurationV1 = + LoadJobConfiguration.newBuilder( + v1TableId, + "gs://" + BUCKET + "/" + LOAD_FILE_FLEXIBLE_COLUMN_NAME, + FormatOptions.csv()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setAutodetect(true) + .setColumnNameCharacterMap("V1") + .build(); + Job jobV1 = bigquery.create(JobInfo.of(loadJobConfigurationV1)); + jobV1 = jobV1.waitFor(); + assertNull(jobV1.getStatus().getError()); + + Table remoteTableV1 = bigquery.getTable(DATASET, v1TableName); + assertNotNull(remoteTableV1); + assertEquals( + "_ampersand", remoteTableV1.getDefinition().getSchema().getFields().get(1).getName()); + } finally { + bigquery.delete(v1TableId); + } + + // Test v2 mapping. + String v2TableName = "flexible_column_name_data_testing_table_v2"; + TableId v2TableId = TableId.of(DATASET, v2TableName); + try { + LoadJobConfiguration loadJobConfigurationV2 = + LoadJobConfiguration.newBuilder( + v2TableId, + "gs://" + BUCKET + "/" + LOAD_FILE_FLEXIBLE_COLUMN_NAME, + FormatOptions.csv()) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setAutodetect(true) + .setColumnNameCharacterMap("V2") + .build(); + Job jobV2 = bigquery.create(JobInfo.of(loadJobConfigurationV2)); + jobV2 = jobV2.waitFor(); + assertNull(jobV2.getStatus().getError()); + + Table remoteTableV2 = bigquery.getTable(DATASET, v2TableName); + assertNotNull(remoteTableV2); + assertEquals( + "&ersand", remoteTableV2.getDefinition().getSchema().getFields().get(1).getName()); + } finally { + bigquery.delete(v2TableId); + } + } } From b8c17bf77abc32703226c8a1f0f12af4fc5fd5de Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 21 Jun 2024 23:05:20 -0400 Subject: [PATCH 2886/3441] chore(main): release 2.40.4-SNAPSHOT (#3346) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 34936aa4b3c1..497f739232dc 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.40.3 + 2.40.4-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 62c3d4efca9d..8e1780f9a051 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.40.3 + 2.40.4-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.40.3 + 2.40.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7c4aeb0b2a6a..66ddc0a7fdb5 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.40.3 + 2.40.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.40.3 + 2.40.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 263995e8e2b7..21a4433162c5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.40.3 + 2.40.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.40.3 + 2.40.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 673234c1dd05..9806b947c47a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.40.3 + 2.40.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 77a4710e8926..5e47bd9a9e20 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.40.3:2.40.3 \ No newline at end of file +google-cloud-bigquery:2.40.3:2.40.4-SNAPSHOT \ No newline at end of file From 5d52bc9f4ef93f84200335685901c6ac0256b769 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Mon, 24 Jun 2024 16:25:21 -0400 Subject: [PATCH 2887/3441] fix: add clustering value to ListTables result (#3359) --- .../bigquery/spi/v2/HttpBigQueryRpc.java | 3 +- .../cloud/bigquery/it/ITBigQueryTest.java | 35 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 5dd39eaed9bc..93337d8cac69 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -364,7 +364,8 @@ public Table apply(TableList.Tables tablePb) { .setType(tablePb.getType()) .setCreationTime(tablePb.getCreationTime()) .setTimePartitioning(tablePb.getTimePartitioning()) - .setRangePartitioning(tablePb.getRangePartitioning()); + .setRangePartitioning(tablePb.getRangePartitioning()) + .setClustering(tablePb.getClustering()); } })); } catch (IOException ex) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b346b16928bf..6a7a4e26bd69 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1903,6 +1903,41 @@ public void testCreateAndGetTable() { assertTrue(remoteTable.delete()); } + @Test + public void testCreateAndListTable() { + String tableName = "test_create_and_list_table"; + TableId tableId = TableId.of(DATASET, tableName); + TimePartitioning partitioning = TimePartitioning.of(Type.DAY); + Clustering clustering = + Clustering.newBuilder().setFields(ImmutableList.of(STRING_FIELD_SCHEMA.getName())).build(); + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder() + .setSchema(TABLE_SCHEMA) + .setTimePartitioning(partitioning) + .setClustering(clustering) + .build(); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + assertEquals(DATASET, createdTable.getTableId().getDataset()); + assertEquals(tableName, createdTable.getTableId().getTable()); + + Page

    tables = bigquery.listTables(DATASET); + boolean found = false; + Iterator
    tableIterator = tables.getValues().iterator(); + // Find createdTable and validate the table definition. + while (tableIterator.hasNext() && !found) { + Table table = tableIterator.next(); + if (table.getTableId().equals(createdTable.getTableId())) { + StandardTableDefinition definition = table.getDefinition(); + assertThat(definition.getClustering()).isNotNull(); + assertThat(definition.getTimePartitioning()).isNotNull(); + found = true; + } + } + assertTrue(found); + assertTrue(createdTable.delete()); + } + @Test public void testCreateAndGetTableWithBasicTableMetadataView() { String tableName = "test_create_and_get_table_with_basic_metadata_view"; From 4420996e89fef49270771bb4f01ffa4e871e7885 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 25 Jun 2024 21:28:27 +0200 Subject: [PATCH 2888/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.32.0 (#3360) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 79451bab18a4..ee2d3db7a6d1 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.31.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.32.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index b2d351e09d40..91d2c3bc7d13 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.31.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.32.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 8a5d647570d0..3f34dd7532ee 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.31.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.32.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index e94d7bcd66b3..e4416de916f5 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.31.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.32.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 047ec1b678bd..519c2e3ce370 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.31.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.32.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 8e1780f9a051..e4b7994f6c21 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.31.0 + 3.32.0 diff --git a/pom.xml b/pom.xml index 21a4433162c5..cb4c72328143 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.31.0 + 3.32.0 From 7cb6b3ef857d80be98c70acf60b85a09314eb04e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 25 Jun 2024 23:42:52 +0200 Subject: [PATCH 2889/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.6.1 (#3362) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cb4c72328143..04e92e37cc3a 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.6.0 + 3.6.1 pom import From 9f76c3806ea16d129fb166a9b1d05c726aeabaef Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 25 Jun 2024 18:18:48 -0400 Subject: [PATCH 2890/3441] chore(main): release 2.41.0 (#3357) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Joe Wang --- CHANGELOG.md | 21 +++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 30 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74c10885b274..e962971e86a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,26 @@ # Changelog +## [2.41.0](https://github.com/googleapis/java-bigquery/compare/v2.40.3...v2.41.0) (2024-06-25) + + +### Features + +* Add columnNameCharacterMap to LoadJobConfiguration ([#3356](https://github.com/googleapis/java-bigquery/issues/3356)) ([2f3cbe3](https://github.com/googleapis/java-bigquery/commit/2f3cbe39619bcc93cb7d504417accd84b418dd41)) +* Add MetadataCacheMode to ExternalTableDefinition ([#3351](https://github.com/googleapis/java-bigquery/issues/3351)) ([2814dc4](https://github.com/googleapis/java-bigquery/commit/2814dc49dfdd5671257b6a9933a5dd381d889dd1)) + + +### Bug Fixes + +* Add clustering value to ListTables result ([#3359](https://github.com/googleapis/java-bigquery/issues/3359)) ([5d52bc9](https://github.com/googleapis/java-bigquery/commit/5d52bc9f4ef93f84200335685901c6ac0256b769)) + + +### Dependencies + +* Update actions/checkout action to v4.1.7 ([#3349](https://github.com/googleapis/java-bigquery/issues/3349)) ([0857234](https://github.com/googleapis/java-bigquery/commit/085723491e4aca58d670c313bc18b0c044cfdca8)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240602-2.0.0 ([#3273](https://github.com/googleapis/java-bigquery/issues/3273)) ([7b7e52b](https://github.com/googleapis/java-bigquery/commit/7b7e52b339f57af752c573a222df68196f1808f5)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.32.0 ([#3360](https://github.com/googleapis/java-bigquery/issues/3360)) ([4420996](https://github.com/googleapis/java-bigquery/commit/4420996e89fef49270771bb4f01ffa4e871e7885)) +* Update github/codeql-action action to v2.25.10 ([#3348](https://github.com/googleapis/java-bigquery/issues/3348)) ([8b6feff](https://github.com/googleapis/java-bigquery/commit/8b6feffa0e8add73a7587ce1762989713c2af38b)) + ## [2.40.3](https://github.com/googleapis/java-bigquery/compare/v2.40.2...v2.40.3) (2024-06-12) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 497f739232dc..7bc7e664f88b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.40.4-SNAPSHOT + 2.41.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index e4b7994f6c21..02d85f13fcbb 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.40.4-SNAPSHOT + 2.41.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.40.4-SNAPSHOT + 2.41.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 66ddc0a7fdb5..3a4fa4af0714 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.40.4-SNAPSHOT + 2.41.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.40.4-SNAPSHOT + 2.41.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 04e92e37cc3a..bdbd67134853 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.40.4-SNAPSHOT + 2.41.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.40.4-SNAPSHOT + 2.41.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9806b947c47a..a37cbe6f3ace 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.40.4-SNAPSHOT + 2.41.0 diff --git a/versions.txt b/versions.txt index 5e47bd9a9e20..5534bc5ee6b8 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.40.3:2.40.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.41.0:2.41.0 \ No newline at end of file From 22e304598ebb00961596c5cce00ad2d3e0627a12 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Jun 2024 00:02:32 +0200 Subject: [PATCH 2891/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.41.0 (#3364) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.41.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 8 ++++---- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 3a77fbac982f..f76b50a0c89b 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.40.3 + 2.41.0 ``` @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.40.3' +implementation 'com.google.cloud:google-cloud-bigquery:2.41.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.40.3" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.41.0" ``` @@ -351,7 +351,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.40.3 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.41.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3a8f8d99767b..26b6ce981f67 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.40.3 + 2.41.0 From bc63544453b561684b9748207799b3a858c206a1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Jun 2024 18:25:58 +0200 Subject: [PATCH 2892/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.40.1 (#3367) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bdbd67134853..bc0741aa2314 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.40.0 + 2.40.1 test From bde4f81c9568286fd40cb0b8b53c527cc7e99318 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Jun 2024 18:37:51 +0200 Subject: [PATCH 2893/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.6.1 (#3365) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.6.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bc0741aa2314..c111f0e5de5a 100644 --- a/pom.xml +++ b/pom.xml @@ -180,7 +180,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.6.0 + 3.6.1 From ceb270c5cc2af4d69948ac89af1d72990fe1a7ee Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Jun 2024 20:16:41 +0200 Subject: [PATCH 2894/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240616-2.0.0 (#3368) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c111f0e5de5a..633f8cbcd3fe 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240602-2.0.0 + v2-rev20240616-2.0.0 From 34f16fbaad236f5a6db26d693efde2025913d540 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Fri, 28 Jun 2024 10:53:29 -0400 Subject: [PATCH 2895/3441] feat: add additional parameters to CsvOptions and ParquetOptions (#3370) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add additional parameters to CsvOptions and ParquetOptions * fix lint * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Addressed review comments --------- Co-authored-by: Owl Bot --- .../com/google/cloud/bigquery/CsvOptions.java | 29 ++++++++++++++- .../google/cloud/bigquery/ParquetOptions.java | 35 +++++++++++++++++-- .../google/cloud/bigquery/CsvOptionsTest.java | 4 +++ .../cloud/bigquery/ParquetOptionsTest.java | 14 ++++++-- 4 files changed, 76 insertions(+), 6 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java index cbcce2173ea9..b39c82a7edf2 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java @@ -26,12 +26,13 @@ */ public final class CsvOptions extends FormatOptions { - private static final long serialVersionUID = 2193570529308612708L; + private static final long serialVersionUID = 2193570529308612709L; private final Boolean allowJaggedRows; private final Boolean allowQuotedNewLines; private final String encoding; private final String fieldDelimiter; + private final String nullMarker; private final String quote; private final Long skipLeadingRows; private final Boolean preserveAsciiControlCharacters; @@ -42,6 +43,7 @@ public static final class Builder { private Boolean allowQuotedNewLines; private String encoding; private String fieldDelimiter; + private String nullMarker; private String quote; private Long skipLeadingRows; private Boolean preserveAsciiControlCharacters; @@ -53,6 +55,7 @@ private Builder(CsvOptions csvOptions) { this.allowQuotedNewLines = csvOptions.allowQuotedNewLines; this.encoding = csvOptions.encoding; this.fieldDelimiter = csvOptions.fieldDelimiter; + this.nullMarker = csvOptions.nullMarker; this.quote = csvOptions.quote; this.skipLeadingRows = csvOptions.skipLeadingRows; this.preserveAsciiControlCharacters = csvOptions.preserveAsciiControlCharacters; @@ -110,6 +113,18 @@ public Builder setFieldDelimiter(String fieldDelimiter) { return this; } + /** + * [Optional] Specifies a string that represents a null value in a CSV file. For example, if you + * specify \"\\N\", BigQuery interprets \"\\N\" as a null value when querying a CSV file. The + * default value is the empty string. If you set this property to a custom value, BigQuery + * throws an error if an empty string is present for all data types except for STRING and BYTE. + * For STRING and BYTE columns, BigQuery interprets the empty string as an empty value. + */ + public Builder setNullMarker(String nullMarker) { + this.nullMarker = nullMarker; + return this; + } + /** * Sets the value that is used to quote data sections in a CSV file. BigQuery converts the * string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split @@ -154,6 +169,7 @@ private CsvOptions(Builder builder) { this.allowQuotedNewLines = builder.allowQuotedNewLines; this.encoding = builder.encoding; this.fieldDelimiter = builder.fieldDelimiter; + this.nullMarker = builder.nullMarker; this.quote = builder.quote; this.skipLeadingRows = builder.skipLeadingRows; this.preserveAsciiControlCharacters = builder.preserveAsciiControlCharacters; @@ -192,6 +208,11 @@ public String getFieldDelimiter() { return fieldDelimiter; } + /** Returns the string that represents a null value in a CSV file. */ + public String getNullMarker() { + return nullMarker; + } + /** Returns the value that is used to quote data sections in a CSV file. */ public String getQuote() { return quote; @@ -226,6 +247,7 @@ public String toString() { .add("allowQuotedNewLines", allowQuotedNewLines) .add("encoding", encoding) .add("fieldDelimiter", fieldDelimiter) + .add("nullMarker", nullMarker) .add("quote", quote) .add("skipLeadingRows", skipLeadingRows) .add("preserveAsciiControlCharacters", preserveAsciiControlCharacters) @@ -240,6 +262,7 @@ public int hashCode() { allowQuotedNewLines, encoding, fieldDelimiter, + nullMarker, quote, skipLeadingRows, preserveAsciiControlCharacters); @@ -258,6 +281,7 @@ com.google.api.services.bigquery.model.CsvOptions toPb() { csvOptions.setAllowQuotedNewlines(allowQuotedNewLines); csvOptions.setEncoding(encoding); csvOptions.setFieldDelimiter(fieldDelimiter); + csvOptions.setNullMarker(nullMarker); csvOptions.setQuote(quote); csvOptions.setSkipLeadingRows(skipLeadingRows); csvOptions.setPreserveAsciiControlCharacters(preserveAsciiControlCharacters); @@ -283,6 +307,9 @@ static CsvOptions fromPb(com.google.api.services.bigquery.model.CsvOptions csvOp if (csvOptions.getFieldDelimiter() != null) { builder.setFieldDelimiter(csvOptions.getFieldDelimiter()); } + if (csvOptions.getNullMarker() != null) { + builder.setNullMarker(csvOptions.getNullMarker()); + } if (csvOptions.getQuote() != null) { builder.setQuote(csvOptions.getQuote()); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java index 174da41d860d..b150f3b06b43 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java @@ -21,10 +21,11 @@ public class ParquetOptions extends FormatOptions { - private static final long serialVersionUID = 1992L; + private static final long serialVersionUID = 1993L; private final Boolean enableListInference; private final Boolean enumAsString; + private final String mapTargetType; public Boolean getEnableListInference() { return enableListInference; @@ -34,16 +35,23 @@ public Boolean getEnumAsString() { return enumAsString; } + /** Returns how the Parquet map is represented. */ + public String getMapTargetType() { + return mapTargetType; + } + /** A builder for {@code ParquetOptions} objects. */ public static final class Builder { private Boolean enableListInference; private Boolean enumAsString; + private String mapTargetType; private Builder() {} private Builder(ParquetOptions parquetOptions) { this.enableListInference = parquetOptions.enableListInference; this.enumAsString = parquetOptions.enumAsString; + this.mapTargetType = parquetOptions.mapTargetType; } public Builder setEnableListInference(Boolean enableListInference) { @@ -56,6 +64,17 @@ public Builder setEnumAsString(Boolean enumAsString) { return this; } + /** + * [Optional] Indicates how to represent a Parquet map if present. + * + * @see + * MapTargetType + */ + public Builder setMapTargetType(String mapTargetType) { + this.mapTargetType = mapTargetType; + return this; + } + public ParquetOptions build() { return new ParquetOptions(this); } @@ -69,6 +88,7 @@ public Builder toBuilder() { super(FormatOptions.PARQUET); enableListInference = builder.enableListInference; enumAsString = builder.enumAsString; + mapTargetType = builder.mapTargetType; } @Override @@ -76,12 +96,13 @@ public String toString() { return MoreObjects.toStringHelper(this) .add("enableListInference", enableListInference) .add("enumAsString", enumAsString) + .add("mapTargetType", mapTargetType) .toString(); } @Override public final int hashCode() { - return Objects.hash(enableListInference, enumAsString); + return Objects.hash(enableListInference, enumAsString, mapTargetType); } @Override @@ -93,7 +114,9 @@ public final boolean equals(Object obj) { return false; } ParquetOptions other = (ParquetOptions) obj; - return enableListInference == other.enableListInference && enumAsString == other.enumAsString; + return enableListInference == other.enableListInference + && enumAsString == other.enumAsString + && Objects.equals(mapTargetType, ((ParquetOptions) obj).getMapTargetType()); } /** Returns a builder for a {@link ParquetOptions} object. */ @@ -110,6 +133,9 @@ static ParquetOptions fromPb( if (parquetOptions.getEnumAsString() != null) { builder.setEnumAsString(parquetOptions.getEnumAsString()); } + if (parquetOptions.getMapTargetType() != null) { + builder.setMapTargetType(parquetOptions.getMapTargetType()); + } return builder.build(); } @@ -122,6 +148,9 @@ com.google.api.services.bigquery.model.ParquetOptions toPb() { if (enumAsString != null) { parquetOptions.setEnumAsString(enumAsString); } + if (mapTargetType != null) { + parquetOptions.setMapTargetType(mapTargetType); + } return parquetOptions; } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java index fa05cddc50e0..fb0293a97ae7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java @@ -28,6 +28,7 @@ public class CsvOptionsTest { private static final Boolean ALLOW_QUOTED_NEWLINE = true; private static final Charset ENCODING = StandardCharsets.UTF_8; private static final String FIELD_DELIMITER = ","; + private static final String NULL_MARKER = "\\N"; private static final String QUOTE = "\""; private static final long SKIP_LEADING_ROWS = 42L; @@ -38,6 +39,7 @@ public class CsvOptionsTest { .setAllowQuotedNewLines(ALLOW_QUOTED_NEWLINE) .setEncoding(ENCODING) .setFieldDelimiter(FIELD_DELIMITER) + .setNullMarker(NULL_MARKER) .setQuote(QUOTE) .setSkipLeadingRows(SKIP_LEADING_ROWS) .setPreserveAsciiControlCharacters(PRESERVE_ASCII_CONTROL_CHARACTERS) @@ -65,6 +67,7 @@ public void testBuilder() { assertEquals(ALLOW_QUOTED_NEWLINE, CSV_OPTIONS.allowQuotedNewLines()); assertEquals(ENCODING.name(), CSV_OPTIONS.getEncoding()); assertEquals(FIELD_DELIMITER, CSV_OPTIONS.getFieldDelimiter()); + assertEquals(NULL_MARKER, CSV_OPTIONS.getNullMarker()); assertEquals(QUOTE, CSV_OPTIONS.getQuote()); assertEquals(SKIP_LEADING_ROWS, (long) CSV_OPTIONS.getSkipLeadingRows()); assertEquals( @@ -84,6 +87,7 @@ private void compareCsvOptions(CsvOptions expected, CsvOptions value) { assertEquals(expected.allowQuotedNewLines(), value.allowQuotedNewLines()); assertEquals(expected.getEncoding(), value.getEncoding()); assertEquals(expected.getFieldDelimiter(), value.getFieldDelimiter()); + assertEquals(expected.getNullMarker(), value.getNullMarker()); assertEquals(expected.getQuote(), value.getQuote()); assertEquals(expected.getSkipLeadingRows(), value.getSkipLeadingRows()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java index 8812b2e274dc..ca21d805c64c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java @@ -24,14 +24,23 @@ public class ParquetOptionsTest { private static final ParquetOptions OPTIONS = - ParquetOptions.newBuilder().setEnableListInference(true).setEnumAsString(true).build(); + ParquetOptions.newBuilder() + .setEnableListInference(true) + .setEnumAsString(true) + .setMapTargetType("ARRAY_OF_STRUCT") + .build(); @Test public void testToBuilder() { compareParquetOptions(OPTIONS, OPTIONS.toBuilder().build()); ParquetOptions parquetOptions = OPTIONS.toBuilder().setEnableListInference(true).build(); assertEquals(true, parquetOptions.getEnableListInference()); - parquetOptions = parquetOptions.toBuilder().setEnumAsString(true).build(); + parquetOptions = + parquetOptions + .toBuilder() + .setEnumAsString(true) + .setMapTargetType("ARRAY_OF_STRUCT") + .build(); compareParquetOptions(OPTIONS, parquetOptions); } @@ -47,6 +56,7 @@ public void testBuilder() { assertEquals(FormatOptions.PARQUET, OPTIONS.getType()); assertEquals(true, OPTIONS.getEnableListInference()); assertEquals(true, OPTIONS.getEnumAsString()); + assertEquals("ARRAY_OF_STRUCT", OPTIONS.getMapTargetType()); } @Test From 2e804c56eeef5009cc46c7544fe9b04bfdd65d7a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 28 Jun 2024 17:28:56 +0200 Subject: [PATCH 2896/3441] deps: update dependency org.junit.vintage:junit-vintage-engine to v5.10.3 (#3371) --- samples/native-image-sample/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index db3ce2f184bc..e3fab731ccf5 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -93,7 +93,7 @@ org.junit.vintage junit-vintage-engine - 5.10.2 + 5.10.3 test From d3c8feb4198e96cc7fc3fc283b1a3e879faf053b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 28 Jun 2024 17:34:20 +0200 Subject: [PATCH 2897/3441] test(deps): update dependency com.google.truth:truth to v1.4.3 (#3372) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/native-image-sample/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 633f8cbcd3fe..7073fb5c702f 100644 --- a/pom.xml +++ b/pom.xml @@ -119,7 +119,7 @@ com.google.truth truth - 1.4.2 + 1.4.3 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 26b6ce981f67..6e2499c351ba 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -81,7 +81,7 @@ com.google.truth truth - 1.4.2 + 1.4.3 test diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml index e3fab731ccf5..e4e71f890234 100644 --- a/samples/native-image-sample/pom.xml +++ b/samples/native-image-sample/pom.xml @@ -62,7 +62,7 @@ com.google.truth truth - 1.4.2 + 1.4.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a37cbe6f3ace..491335af0ad6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -79,7 +79,7 @@ com.google.truth truth - 1.4.2 + 1.4.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e69bc6026945..a3823f02d12b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -97,7 +97,7 @@ com.google.truth truth - 1.4.2 + 1.4.3 test From 0d8859ba14de4beb25966b87dc9202838aeeef36 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 28 Jun 2024 17:43:57 +0200 Subject: [PATCH 2898/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.48.0 (#3373) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 7073fb5c702f..b816a49b3aa0 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.47.0 + 2.48.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6e2499c351ba..b91fea99af29 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.47.0 + 2.48.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 491335af0ad6..6d2ff504a74f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.47.0 + 2.48.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a3823f02d12b..5a7d87de62cb 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.47.0 + 2.48.0 test From 45b7f20e1b324d9b77183c0f8bb5ae14724d6aef Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 28 Jun 2024 17:52:28 +0200 Subject: [PATCH 2899/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.48.0 (#3374) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b816a49b3aa0..e9d7bc77d7f1 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.47.0 + 2.48.0 test From 2115c0448b242ddd887f2bac3d68c45847273c3d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 28 Jun 2024 18:13:57 +0200 Subject: [PATCH 2900/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.52.0 (#3375) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e9d7bc77d7f1..02d80460c7ec 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.51.0 + 1.52.0 pom import From f1e0014dca5ca04522796b44ff313696d2b41176 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 2 Jul 2024 19:07:50 +0200 Subject: [PATCH 2901/3441] deps: update github/codeql-action action to v2.25.11 (#3376) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index d278d4481f1f..f1704c976412 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@a073c66b2accf653a511d88537804dcafa07812e # v2.25.10 + uses: github/codeql-action/upload-sarif@d958b976dc5b990f802df244f2dc5d807113327f # v2.25.11 with: sarif_file: results.sarif From 85e0daa8df47c75dcf648662bfb967654d217da5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 3 Jul 2024 11:55:01 -0400 Subject: [PATCH 2902/3441] chore(main): release 2.41.1-SNAPSHOT (#3363) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 7bc7e664f88b..11388a674166 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.41.0 + 2.41.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 02d85f13fcbb..f88c59d6bed0 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.41.0 + 2.41.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.41.0 + 2.41.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 3a4fa4af0714..c3bf567ca281 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.41.0 + 2.41.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.41.0 + 2.41.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 02d80460c7ec..9a9915350c6a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.41.0 + 2.41.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.41.0 + 2.41.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6d2ff504a74f..43223d25e5cd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.41.0 + 2.41.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 5534bc5ee6b8..f2e6b2728194 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.41.0:2.41.0 \ No newline at end of file +google-cloud-bigquery:2.41.0:2.41.1-SNAPSHOT \ No newline at end of file From 04098bb93c8b5af2ec0d1ba9b67fc65937ec99d1 Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Wed, 3 Jul 2024 12:37:58 -0400 Subject: [PATCH 2903/3441] chore: remove bigquery native image sample in favor of sample in google-cloud-java (#3377) * chore: remove bigquery native image sample in favor of sample in google-cloud-java --- README.md | 1 - samples/native-image-sample/README.md | 81 --------- samples/native-image-sample/pom.xml | 156 ---------------- .../bigquery/NativeImageBigquerySample.java | 170 ------------------ .../bigquery/NativeImageBigquerySampleIT.java | 69 ------- samples/pom.xml | 1 - 6 files changed, 478 deletions(-) delete mode 100644 samples/native-image-sample/README.md delete mode 100644 samples/native-image-sample/pom.xml delete mode 100644 samples/native-image-sample/src/main/java/com/example/bigquery/NativeImageBigquerySample.java delete mode 100644 samples/native-image-sample/src/test/java/com/example/bigquery/NativeImageBigquerySampleIT.java diff --git a/README.md b/README.md index f76b50a0c89b..6ead32253762 100644 --- a/README.md +++ b/README.md @@ -113,7 +113,6 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Sample | Source Code | Try it | | --------------------------- | --------------------------------- | ------ | -| Native Image Bigquery Sample | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/native-image-sample/src/main/java/com/example/bigquery/NativeImageBigquerySample.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/native-image-sample/src/main/java/com/example/bigquery/NativeImageBigquerySample.java) | | Add Column Load Append | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java) | | Add Empty Column | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java) | | Auth Drive Scope | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java) | diff --git a/samples/native-image-sample/README.md b/samples/native-image-sample/README.md deleted file mode 100644 index ed54aa6facf4..000000000000 --- a/samples/native-image-sample/README.md +++ /dev/null @@ -1,81 +0,0 @@ -# BigQuery Sample Application with Native Image - -The BigQuery sample application demonstrates some common operations with [Google Cloud BigQuery](https://cloud.google.com/bigquery) and is compatible with Native Image compilation. - - -## Setup Instructions - -You will need to follow these prerequisite steps in order to run the samples: - -1. If you have not already, [create a Google Cloud Platform Project](https://cloud.google.com/resource-manager/docs/creating-managing-projects#creating_a_project). - -2. Install the [Google Cloud SDK](https://cloud.google.com/sdk/) which will allow you to run the sample with your project's credentials. - - Once installed, log in with Application Default Credentials using the following command: - - ``` - gcloud auth application-default login - ``` - - **Note:** Authenticating with Application Default Credentials is convenient to use during development, but we recommend [alternate methods of authentication](https://cloud.google.com/docs/authentication/production) during production use. - -3. Install the native image compiler. - - You can follow [the installation instructions](https://www.graalvm.org/docs/getting-started/#install-graalvm). - After following the instructions, ensure that you install the native image extension installed by running: - - ``` - gu install native-image - ``` - - Once you finish following the instructions, verify that the default version of Java is set to the correct version by running `java -version` in a terminal. - - You will see something similar to the below output: - - ``` - $ java -version - - openjdk version "17.0.3" 2022-04-19 - OpenJDK Runtime Environment GraalVM CE 22.1.0 (build 17.0.3+7-jvmci-22.1-b06) - OpenJDK 64-Bit Server VM GraalVM CE 22.1.0 (build 17.0.3+7-jvmci-22.1-b06, mixed mode, sharing) - ``` - -2. [Enable the BigQuery APIs](https://console.cloud.google.com/apis/api/bigquery.googleapis.com). - -### Run with Native Image Support - -Navigate to this directory in a new terminal. - -1. Compile the application using the native image Compiler. This step may take a few minutes. - - ``` - mvn package -P native -DskipTests - ``` - -2. Run the application: - - ``` - ./target/native-image-sample - ``` - -3. The application will create a sample BigQuery dataset in your GCP project called `nativeimage_test_dataset` and perform some simple operations like creating a table, inserting data, and running a query. - - If you would like to delete the BigQuery dataset later, you can manage your BigQuery resources through [Google Cloud Console](https://console.cloud.google.com/bigquery) to clean up BigQuery resources under your project. - - When you run the application, you'll see output like this in the terminal: - - ``` - Created new table: nativeimage_test_table_2351b0891d2f48af9309bd289c3bad13 - Successfully inserted test row. - Queried the following records: - User id: TestUser-2f39e3ec-d81a-483f-9ec0-b9bd54155710 | age: 40 - Deleted table: nativeimage_test_table_2351b0891d2f48af9309bd289c3bad13 - ``` - -### Sample Integration test with Native Image Support - -In order to run the sample integration test, call the following command: - -``` -mvn test -Pnative -``` diff --git a/samples/native-image-sample/pom.xml b/samples/native-image-sample/pom.xml deleted file mode 100644 index e4e71f890234..000000000000 --- a/samples/native-image-sample/pom.xml +++ /dev/null @@ -1,156 +0,0 @@ - - - - 4.0.0 - com.example.bigquery - native-image-sample - Native Image Sample - - - com.google.cloud.samples - shared-configuration - 1.2.0 - - - - 1.8 - 1.8 - UTF-8 - - - - - - com.google.cloud - libraries-bom - 26.20.0 - pom - import - - - - - - - com.google.cloud - google-cloud-bigquery - - - - - junit - junit - 4.13.2 - test - - - com.google.truth - truth - 1.4.3 - test - - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - - com.example.bigquery.NativeImageBigquerySample - - - - - - - - - - - - native - - - - org.junit.vintage - junit-vintage-engine - 5.10.3 - test - - - org.graalvm.buildtools - junit-platform-native - 0.10.2 - test - - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - 3.3.0 - - - **/*IT - - - - - org.graalvm.buildtools - native-maven-plugin - 0.10.2 - true - - com.example.bigquery.NativeImageBigquerySample - - - --no-fallback - --no-server - - - - - build-native - - build - test - - package - - - test-native - - test - - test - - - - - - - - diff --git a/samples/native-image-sample/src/main/java/com/example/bigquery/NativeImageBigquerySample.java b/samples/native-image-sample/src/main/java/com/example/bigquery/NativeImageBigquerySample.java deleted file mode 100644 index e7f1b35c5d33..000000000000 --- a/samples/native-image-sample/src/main/java/com/example/bigquery/NativeImageBigquerySample.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.example.bigquery; - -import com.google.api.gax.paging.Page; -import com.google.cloud.bigquery.BigQuery; -import com.google.cloud.bigquery.BigQueryError; -import com.google.cloud.bigquery.BigQueryOptions; -import com.google.cloud.bigquery.Dataset; -import com.google.cloud.bigquery.DatasetInfo; -import com.google.cloud.bigquery.Field; -import com.google.cloud.bigquery.FieldValueList; -import com.google.cloud.bigquery.InsertAllRequest; -import com.google.cloud.bigquery.InsertAllResponse; -import com.google.cloud.bigquery.QueryJobConfiguration; -import com.google.cloud.bigquery.Schema; -import com.google.cloud.bigquery.StandardSQLTypeName; -import com.google.cloud.bigquery.StandardTableDefinition; -import com.google.cloud.bigquery.Table; -import com.google.cloud.bigquery.TableDefinition; -import com.google.cloud.bigquery.TableId; -import com.google.cloud.bigquery.TableInfo; -import com.google.cloud.bigquery.TableResult; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -/** - * Sample application demonstrating BigQuery operations. - * - *

    Note: This application will create a BigQuery dataset in your GCP project. You can delete this - * by viewing BigQuery in Cloud Console https://console.cloud.google.com/bigquery or by uncommenting - * the call to `deleteDataset(..)` made in main(). - */ -public class NativeImageBigquerySample { - - private static final String DATASET_ID = "nativeimage_test_dataset"; - - private static final String TABLE_ID = "nativeimage_test_table"; - - private static final Schema TABLE_SCHEMA = - Schema.of( - Field.of("id", StandardSQLTypeName.STRING), Field.of("age", StandardSQLTypeName.INT64)); - - /** Entrypoint to the application. */ - public static void main(String[] args) throws InterruptedException { - BigQuery bigQuery = BigQueryOptions.getDefaultInstance().getService(); - - if (!hasDataset(bigQuery, DATASET_ID)) { - createDataset(bigQuery, DATASET_ID); - } - - String tableName = TABLE_ID + "_" + UUID.randomUUID().toString().replace("-", ""); - createTable(bigQuery, DATASET_ID, tableName, TABLE_SCHEMA); - String testId = "TestUser-" + UUID.randomUUID().toString(); - int testAge = 40; - insertTestRecord(bigQuery, DATASET_ID, tableName, testId, testAge); - queryTable(bigQuery, DATASET_ID, tableName); - - // Clean up resources. - deleteTable(bigQuery, DATASET_ID, tableName); - - // Uncomment this to delete the created dataset. - // deleteDataset(bigQuery, DATASET_ID); - } - - static String queryTable(BigQuery bigQuery, String datasetName, String tableName) - throws InterruptedException { - String fullyQualifiedTable = datasetName + "." + tableName; - String query = "SELECT * FROM " + fullyQualifiedTable; - - QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build(); - TableResult results = bigQuery.query(queryConfig); - - String result = ""; - System.out.println("Queried the following records: "); - for (FieldValueList row : results.iterateAll()) { - String rowStatement = - String.format( - "User id: %s | age: %d\n", - row.get("id").getStringValue(), row.get("age").getLongValue()); - result += rowStatement; - System.out.println(row); - } - return result; - } - - static void insertTestRecord( - BigQuery bigQuery, String datasetName, String tableName, String id, int age) { - - Map rowContent = new HashMap<>(); - rowContent.put("id", id); - rowContent.put("age", age); - - InsertAllRequest request = - InsertAllRequest.newBuilder(datasetName, tableName).addRow(rowContent).build(); - - InsertAllResponse response = bigQuery.insertAll(request); - - if (response.hasErrors()) { - System.out.println("Insert resulted in errors:"); - for (Map.Entry> entry : response.getInsertErrors().entrySet()) { - System.out.println("Response error: \n" + entry.getValue()); - } - } else { - System.out.println("Successfully inserted test row."); - } - } - - static void createTable(BigQuery bigQuery, String datasetName, String tableName, Schema schema) { - - TableId tableId = TableId.of(datasetName, tableName); - TableDefinition tableDefinition = StandardTableDefinition.of(schema); - TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); - bigQuery.create(tableInfo); - System.out.println("Created new table: " + tableName); - } - - static boolean hasTable(BigQuery bigQuery, String datasetName, String tableName) { - - Page

    tables = bigQuery.listTables(datasetName); - for (Table table : tables.iterateAll()) { - if (tableName.equals(table.getTableId().getTable())) { - return true; - } - } - return false; - } - - static void createDataset(BigQuery bigQuery, String datasetName) { - DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build(); - Dataset newDataset = bigQuery.create(datasetInfo); - System.out.println("Created new dataset: " + newDataset.getDatasetId().getDataset()); - } - - static boolean hasDataset(BigQuery bigQuery, String datasetName) { - Page datasets = bigQuery.listDatasets(); - for (Dataset dataset : datasets.iterateAll()) { - if (datasetName.equals(dataset.getDatasetId().getDataset())) { - return true; - } - } - return false; - } - - static void deleteTable(BigQuery bigQuery, String datasetName, String tableName) { - bigQuery.getTable(datasetName, tableName).delete(); - System.out.println("Deleted table: " + tableName); - } - - static void deleteDataset(BigQuery bigQuery, String datasetName) { - bigQuery.getDataset(datasetName).delete(); - System.out.println("Deleting dataset " + datasetName); - } -} diff --git a/samples/native-image-sample/src/test/java/com/example/bigquery/NativeImageBigquerySampleIT.java b/samples/native-image-sample/src/test/java/com/example/bigquery/NativeImageBigquerySampleIT.java deleted file mode 100644 index 8cdb01ab9e29..000000000000 --- a/samples/native-image-sample/src/test/java/com/example/bigquery/NativeImageBigquerySampleIT.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2022 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.example.bigquery; - -import static com.google.common.truth.Truth.assertThat; - -import com.google.cloud.bigquery.BigQuery; -import com.google.cloud.bigquery.BigQueryOptions; -import com.google.cloud.bigquery.Field; -import com.google.cloud.bigquery.Schema; -import com.google.cloud.bigquery.StandardSQLTypeName; -import java.util.UUID; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; - -/** Tests for {@link NativeImageBigquerySample} */ -@Ignore -public class NativeImageBigquerySampleIT { - - private static final String DATASET_ID = "nativeimage_it_dataset"; - - private static final String TABLE_ID = "nativeimage_it_table"; - - private static final Schema TABLE_SCHEMA = - Schema.of( - Field.of("id", StandardSQLTypeName.STRING), Field.of("age", StandardSQLTypeName.INT64)); - - private BigQuery bigQuery; - - private String tableName; - - @Before - public void setUp() { - bigQuery = BigQueryOptions.getDefaultInstance().getService(); - tableName = TABLE_ID + "_" + UUID.randomUUID().toString().replace("-", ""); - if (!NativeImageBigquerySample.hasDataset(bigQuery, DATASET_ID)) { - NativeImageBigquerySample.createDataset(bigQuery, DATASET_ID); - } - NativeImageBigquerySample.createTable(bigQuery, DATASET_ID, tableName, TABLE_SCHEMA); - } - - @Test - public void testQueryTable() throws InterruptedException { - String testId = "TestUser-" + UUID.randomUUID(); - NativeImageBigquerySample.insertTestRecord(bigQuery, DATASET_ID, tableName, testId, 40); - - String result = NativeImageBigquerySample.queryTable(bigQuery, DATASET_ID, tableName); - - assertThat(result).isEqualTo("User id: " + testId + " | age: 40\n"); - - // Clean up - NativeImageBigquerySample.deleteTable(bigQuery, DATASET_ID, tableName); - } -} diff --git a/samples/pom.xml b/samples/pom.xml index cb1d804240c6..e15e1f5ffa4b 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -47,7 +47,6 @@ install-without-bom snapshot snippets - native-image-sample From efa1aef0a579baa379adbfbd2ee12f4ee5f3d987 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 8 Jul 2024 20:15:19 +0200 Subject: [PATCH 2904/3441] deps: update actions/upload-artifact action to v4.3.4 (#3382) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index f1704c976412..3275a9c6aedb 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 with: name: SARIF file path: results.sarif From 5f39b19e8839f06d956addb8d95cf05e4b60a3f1 Mon Sep 17 00:00:00 2001 From: Neenu Shaji Date: Tue, 9 Jul 2024 09:56:33 -0400 Subject: [PATCH 2905/3441] feat: add remaining Statement Types (#3381) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: add remaining Statement Types * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../google/cloud/bigquery/JobStatistics.java | 38 +++++++++++++++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 21 ++++++++++ 2 files changed, 59 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 64d31fab179b..efbfda0222d6 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -452,6 +452,44 @@ public StatementType apply(String constant) { public static final StatementType DROP_FUNCTION = type.createAndRegister("DROP_FUNCTION"); public static final StatementType DROP_PROCEDURE = type.createAndRegister("DROP_PROCEDURE"); public static final StatementType MERGE = type.createAndRegister("MERGE"); + public static final StatementType CREATE_MATERIALIZED_VIEW = + type.createAndRegister("CREATE_MATERIALIZED_VIEW"); + public static final StatementType CREATE_TABLE_FUNCTION = + type.createAndRegister("CREATE_TABLE_FUNCTION"); + public static final StatementType CREATE_ROW_ACCESS_POLICY = + type.createAndRegister("CREATE_ROW_ACCESS_POLICY"); + public static final StatementType CREATE_SCHEMA = type.createAndRegister("CREATE_SCHEMA"); + public static final StatementType CREATE_SNAPSHOT_TABLE = + type.createAndRegister("CREATE_SNAPSHOT_TABLE"); + public static final StatementType CREATE_SEARCH_INDEX = + type.createAndRegister("CREATE_SEARCH_INDEX"); + public static final StatementType DROP_EXTERNAL_TABLE = + type.createAndRegister("DROP_EXTERNAL_TABLE"); + + public static final StatementType DROP_MODEL = type.createAndRegister("DROP_MODEL"); + public static final StatementType DROP_MATERIALIZED_VIEW = + type.createAndRegister("DROP_MATERIALIZED_VIEW"); + + public static final StatementType DROP_TABLE_FUNCTION = + type.createAndRegister("DROP_TABLE_FUNCTION"); + public static final StatementType DROP_SEARCH_INDEX = + type.createAndRegister("DROP_SEARCH_INDEX"); + public static final StatementType DROP_SCHEMA = type.createAndRegister("DROP_SCHEMA"); + public static final StatementType DROP_SNAPSHOT_TABLE = + type.createAndRegister("DROP_SNAPSHOT_TABLE"); + public static final StatementType DROP_ROW_ACCESS_POLICY = + type.createAndRegister("DROP_ROW_ACCESS_POLICY"); + public static final StatementType ALTER_MATERIALIZED_VIEW = + type.createAndRegister("ALTER_MATERIALIZED_VIEW"); + public static final StatementType ALTER_SCHEMA = type.createAndRegister("ALTER_SCHEMA"); + public static final StatementType SCRIPT = type.createAndRegister("SCRIPT"); + public static final StatementType TRUNCATE_TABLE = type.createAndRegister("TRUNCATE_TABLE"); + public static final StatementType CREATE_EXTERNAL_TABLE = + type.createAndRegister("CREATE_EXTERNAL_TABLE"); + public static final StatementType EXPORT_DATA = type.createAndRegister("EXPORT_DATA"); + public static final StatementType EXPORT_MODEL = type.createAndRegister("EXPORT_MODEL"); + public static final StatementType LOAD_DATA = type.createAndRegister("LOAD_DATA"); + public static final StatementType CALL = type.createAndRegister("CALL"); private StatementType(String constant) { super(constant); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 6a7a4e26bd69..cab716ff67cb 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -7033,4 +7033,25 @@ public void testLoadConfigurationFlexibleColumnName() throws InterruptedExceptio bigquery.delete(v2TableId); } } + + @Test + public void testStatementType() throws InterruptedException { + String tableName = "test_materialized_view_table_statemnt_type"; + String createQuery = + String.format( + "CREATE MATERIALIZED VIEW %s.%s.%s " + + "AS (SELECT MAX(TimestampField) AS TimestampField,StringField, MAX(BooleanField) AS BooleanField FROM %s.%s.%s GROUP BY StringField)", + PROJECT_ID, DATASET, tableName, PROJECT_ID, DATASET, TABLE_ID.getTable()); + TableResult result = bigquery.query(QueryJobConfiguration.of(createQuery)); + assertNotNull(result); + Job job = bigquery.getJob(result.getJobId()); + JobStatistics.QueryStatistics stats = job.getStatistics(); + assertEquals(StatementType.CREATE_MATERIALIZED_VIEW, stats.getStatementType()); + + // cleanup + Table remoteTable = bigquery.getTable(DATASET, tableName); + assertNotNull(remoteTable); + assertTrue(remoteTable.getDefinition() instanceof MaterializedViewDefinition); + assertTrue(remoteTable.delete()); + } } From 2ba09432045b79dd20d3d1377712dfb634240e23 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 9 Jul 2024 17:49:04 +0200 Subject: [PATCH 2906/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.40.0 (#3383) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.40.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6ead32253762..b170f4afa4f1 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.42.0') +implementation platform('com.google.cloud:libraries-bom:26.43.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b91fea99af29..b73914217668 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.39.5 + 2.40.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 43223d25e5cd..5b5e44814f1c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.39.5 + 2.40.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 5a7d87de62cb..3775b3b3233d 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.39.5 + 2.40.0 test From e1de34f0c4c67d75bcf15f35fe86c411b61d04ac Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 9 Jul 2024 17:49:15 +0200 Subject: [PATCH 2907/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240623-2.0.0 (#3384) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240623-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9a9915350c6a..61819a0eb916 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240616-2.0.0 + v2-rev20240623-2.0.0 From b9e96e3aa738a1813ad452cf6141f792f437e8de Mon Sep 17 00:00:00 2001 From: Obada Alabbadi <76101898+obada-ab@users.noreply.github.com> Date: Fri, 12 Jul 2024 18:36:48 +0200 Subject: [PATCH 2908/3441] fix: null field mode inconsistency (#2863) * fix: null field mode inconsistency * chore: update null field mode test name --------- Co-authored-by: PhongChuong --- .../main/java/com/google/cloud/bigquery/Field.java | 2 +- .../java/com/google/cloud/bigquery/FieldTest.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index 9fbc2ab9106f..3c959a73fe79 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -201,7 +201,7 @@ public Builder setType(StandardSQLTypeName type, FieldList subFields) { /** Sets the mode of the field. When not specified {@link Mode#NULLABLE} is used. */ public Builder setMode(Mode mode) { - this.mode = mode != null ? mode.name() : Data.nullOf(String.class); + this.mode = mode != null ? mode.name() : null; return this; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java index 4db202813652..ce431ca295a3 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java @@ -30,6 +30,8 @@ public class FieldTest { private static final String FIELD_NAME1 = "StringField"; private static final String FIELD_NAME2 = "IntegerField"; private static final String FIELD_NAME3 = "RecordField"; + private static final String FIELD_NAME4 = "NullModeField"; + private static final String FIELD_NAME5 = "NullModeField2"; private static final LegacySQLTypeName FIELD_TYPE1 = LegacySQLTypeName.STRING; private static final LegacySQLTypeName FIELD_TYPE2 = LegacySQLTypeName.INTEGER; private static final StandardSQLTypeName FIELD_TYPE1_STANDARD = StandardSQLTypeName.STRING; @@ -79,6 +81,10 @@ public class FieldTest { .setMode(FIELD_MODE3) .setDescription(FIELD_DESCRIPTION3) .build(); + private static final Field STANDARD_FIELD_SCHEMA4 = + Field.newBuilder(FIELD_NAME4, StandardSQLTypeName.INT64).setMode(null).build(); + private static final Field STANDARD_FIELD_SCHEMA5 = + Field.newBuilder(FIELD_NAME5, StandardSQLTypeName.STRING).build(); @Test public void testToBuilder() { @@ -96,6 +102,8 @@ public void testToBuilderWithStandardSQLTypeName() { compareFieldSchemas(STANDARD_FIELD_SCHEMA1, STANDARD_FIELD_SCHEMA1.toBuilder().build()); compareFieldSchemas(STANDARD_FIELD_SCHEMA2, STANDARD_FIELD_SCHEMA2.toBuilder().build()); compareFieldSchemas(STANDARD_FIELD_SCHEMA3, STANDARD_FIELD_SCHEMA3.toBuilder().build()); + compareFieldSchemas(STANDARD_FIELD_SCHEMA4, STANDARD_FIELD_SCHEMA4.toBuilder().build()); + compareFieldSchemas(STANDARD_FIELD_SCHEMA5, STANDARD_FIELD_SCHEMA5.toBuilder().build()); Field field = STANDARD_FIELD_SCHEMA1.toBuilder().setDescription("New Description").build(); assertEquals("New Description", field.getDescription()); field = field.toBuilder().setDescription(FIELD_DESCRIPTION1).build(); @@ -162,6 +170,8 @@ public void testBuilderWithStandardSQLTypeName() { assertEquals(FIELD_TYPE3, STANDARD_FIELD_SCHEMA3.getType()); assertEquals(FIELD_MODE3, STANDARD_FIELD_SCHEMA3.getMode()); assertEquals(FIELD_DESCRIPTION3, STANDARD_FIELD_SCHEMA3.getDescription()); + assertEquals(null, STANDARD_FIELD_SCHEMA4.getMode()); + assertEquals(null, STANDARD_FIELD_SCHEMA5.getMode()); assertEquals( FieldList.of(STANDARD_FIELD_SCHEMA1, STANDARD_FIELD_SCHEMA2), STANDARD_FIELD_SCHEMA3.getSubFields()); @@ -181,6 +191,8 @@ public void testToAndFromPbWithStandardSQLTypeName() { compareFieldSchemas(STANDARD_FIELD_SCHEMA1, Field.fromPb(STANDARD_FIELD_SCHEMA1.toPb())); compareFieldSchemas(STANDARD_FIELD_SCHEMA2, Field.fromPb(STANDARD_FIELD_SCHEMA2.toPb())); compareFieldSchemas(STANDARD_FIELD_SCHEMA3, Field.fromPb(STANDARD_FIELD_SCHEMA3.toPb())); + compareFieldSchemas(STANDARD_FIELD_SCHEMA4, Field.fromPb(STANDARD_FIELD_SCHEMA4.toPb())); + compareFieldSchemas(STANDARD_FIELD_SCHEMA5, Field.fromPb(STANDARD_FIELD_SCHEMA5.toPb())); Field field = Field.newBuilder(FIELD_NAME1, FIELD_TYPE1).build(); compareFieldSchemas(field, Field.fromPb(field.toPb())); } From af60b30cd774992c5d82063106471926dc6aaa6e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 15 Jul 2024 17:01:31 +0200 Subject: [PATCH 2909/3441] deps: update github/codeql-action action to v2.25.12 (#3387) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 3275a9c6aedb..87b2aa0cfba0 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@d958b976dc5b990f802df244f2dc5d807113327f # v2.25.11 + uses: github/codeql-action/upload-sarif@e113c555ef0956479345cfc3ed530c938d670db0 # v2.25.12 with: sarif_file: results.sarif From 7ce52c0712c7e73c2e3504e4f12fcbd865f76e59 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 15 Jul 2024 17:01:47 +0200 Subject: [PATCH 2910/3441] test(deps): update dependency com.google.truth:truth to v1.4.4 (#3388) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 61819a0eb916..b15874b2a82b 100644 --- a/pom.xml +++ b/pom.xml @@ -119,7 +119,7 @@ com.google.truth truth - 1.4.3 + 1.4.4 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b73914217668..1f236f916997 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -81,7 +81,7 @@ com.google.truth truth - 1.4.3 + 1.4.4 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5b5e44814f1c..4a3925a4d798 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -79,7 +79,7 @@ com.google.truth truth - 1.4.3 + 1.4.4 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3775b3b3233d..d41b1ace7d10 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -97,7 +97,7 @@ com.google.truth truth - 1.4.3 + 1.4.4 test From 2dd9067097f191e05ead2ac0abde22f6162bdbfb Mon Sep 17 00:00:00 2001 From: shollyman Date: Wed, 17 Jul 2024 06:43:58 -0700 Subject: [PATCH 2911/3441] testing: reduce flakiness of tests (#3393) This PR addresses recent flakes observed in two tests. In the first, we change validation for a DML test to examine DML stats rather then rescanning row data. In the second, we switch a test query used for faster query to be deterministic, as the suspicion is that stale cached results are impacting assertions about how the query was run. --- .../cloud/bigquery/it/ITBigQueryTest.java | 27 +++++-------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index cab716ff67cb..b1352f5121c5 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -4257,26 +4257,11 @@ public void testFastDMLQuery() throws InterruptedException { TableResult result = bigquery.query(dmlConfig); assertNotNull(result.getJobId()); assertEquals(TABLE_SCHEMA, result.getSchema()); - assertEquals(2, result.getTotalRows()); - // Verify correctness of table content - String sqlQuery = String.format("SELECT * FROM %s.%s", DATASET, tableName); - QueryJobConfiguration sqlConfig = QueryJobConfiguration.newBuilder(sqlQuery).build(); - TableResult resultAfterDML = bigquery.query(sqlConfig); - assertNotNull(resultAfterDML.getJobId()); - for (FieldValueList row : resultAfterDML.getValues()) { - FieldValue timestampCell = row.get(0); - assertEquals(timestampCell, row.get("TimestampField")); - FieldValue stringCell = row.get(1); - assertEquals(stringCell, row.get("StringField")); - FieldValue booleanCell = row.get(3); - assertEquals(booleanCell, row.get("BooleanField")); - assertEquals(FieldValue.Attribute.PRIMITIVE, timestampCell.getAttribute()); - assertEquals(FieldValue.Attribute.PRIMITIVE, stringCell.getAttribute()); - assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); - assertEquals(1408452095220000L, timestampCell.getTimestampValue()); - assertEquals("hello", stringCell.getStringValue()); - assertEquals(false, booleanCell.getBooleanValue()); - } + // Using the job reference on the TableResult, lookup and verify DML statistics. + Job queryJob = bigquery.getJob(result.getJobId()); + JobStatistics.QueryStatistics statistics = queryJob.getStatistics(); + assertEquals(2L, statistics.getNumDmlAffectedRows().longValue()); + assertEquals(2L, statistics.getDmlStats().getUpdatedRowCount().longValue()); } @Test @@ -6668,7 +6653,7 @@ public void testStatelessQueries() throws InterruptedException { } private TableResult executeSimpleQuery(BigQuery bigQuery) throws InterruptedException { - String query = "SELECT 1 as one"; + String query = "SELECT CURRENT_TIMESTAMP() as ts"; QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).build(); TableResult result = bigQuery.query(config); return result; From e1d2b59e7ee5a221072ad6e4b340338a15125c8d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 17 Jul 2024 20:12:18 +0200 Subject: [PATCH 2912/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.6.2 (#3390) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b15874b2a82b..7f1e404f18c6 100644 --- a/pom.xml +++ b/pom.xml @@ -180,7 +180,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.6.1 + 3.6.2 From 352562da445e35a8207bcf77442130867f32e52d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 18 Jul 2024 17:02:59 +0200 Subject: [PATCH 2913/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240629-2.0.0 (#3392) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7f1e404f18c6..0de44c9df298 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240623-2.0.0 + v2-rev20240629-2.0.0 From 95c8d6f65c5c5355fc52a0a2b54002d8f9cdb1ef Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 23 Jul 2024 15:43:34 +0200 Subject: [PATCH 2914/3441] deps: update github/codeql-action action to v2.25.13 (#3395) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 87b2aa0cfba0..85324fd18b75 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@e113c555ef0956479345cfc3ed530c938d670db0 # v2.25.12 + uses: github/codeql-action/upload-sarif@563dcafdfe28a0bb82e2c272d84924f17b628540 # v2.25.13 with: sarif_file: results.sarif From 1f91ae7fa2100a05f969a7429cb619a2b8b42dee Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Wed, 24 Jul 2024 16:02:46 -0400 Subject: [PATCH 2915/3441] feat: Add ability to specify RetryOptions and BigQueryRetryConfig when create job and waitFor (#3398) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: initial implementation of customizable BigQueryRetryConfig * Add unit and integration tests * Fix lint issues * Revert unintentional changes to testQueryStatistics in ITBigQueryTest * Revert unintentional changes to testQueryStatistics in ITBigQueryTest * Revert unintentional changes to testQueryStatistics in ITBigQueryTest * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * Add additional comments to Job.waitFor() for BigQueryRetryConfig --------- Co-authored-by: Owl Bot --- .../com/google/cloud/bigquery/BigQuery.java | 12 +- .../google/cloud/bigquery/BigQueryImpl.java | 19 +- .../java/com/google/cloud/bigquery/Job.java | 51 +++++- .../cloud/bigquery/spi/v2/BigQueryRpc.java | 4 +- .../cloud/bigquery/BigQueryImplTest.java | 114 ++++++++++++ .../com/google/cloud/bigquery/JobTest.java | 170 ++++++++++++++++-- .../cloud/bigquery/it/ITBigQueryTest.java | 21 +++ 7 files changed, 370 insertions(+), 21 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 80fd6618dc08..e391c054d9fd 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -561,7 +561,7 @@ public static JobListOption fields(JobField... fields) { /** Class for specifying table get and create options. */ class JobOption extends Option { - private static final long serialVersionUID = -3111736712316353665L; + private static final long serialVersionUID = -3111736712316353664L; private JobOption(BigQueryRpc.Option option, Object value) { super(option, value); @@ -578,6 +578,16 @@ public static JobOption fields(JobField... fields) { return new JobOption( BigQueryRpc.Option.FIELDS, Helper.selector(JobField.REQUIRED_FIELDS, fields)); } + + /** Returns an option to specify the job's BigQuery retry configuration. */ + public static JobOption bigQueryRetryConfig(BigQueryRetryConfig bigQueryRetryConfig) { + return new JobOption(BigQueryRpc.Option.BIGQUERY_RETRY_CONFIG, bigQueryRetryConfig); + } + + /** Returns an option to specify the job's retry options. */ + public static JobOption retryOptions(RetryOption... options) { + return new JobOption(BigQueryRpc.Option.RETRY_OPTIONS, options); + } } /** Class for specifying query results options. */ diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index acfa1b7f125e..57608321574e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -39,6 +39,7 @@ import com.google.cloud.Policy; import com.google.cloud.RetryHelper; import com.google.cloud.RetryHelper.RetryHelperException; +import com.google.cloud.RetryOption; import com.google.cloud.Tuple; import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; import com.google.cloud.bigquery.QueryJobConfiguration.JobCreationMode; @@ -415,10 +416,15 @@ public com.google.api.services.bigquery.model.Job call() { } } }, - getOptions().getRetrySettings(), + getRetryOptions(optionsMap) != null + ? RetryOption.mergeToSettings( + getOptions().getRetrySettings(), getRetryOptions(optionsMap)) + : getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - DEFAULT_RETRY_CONFIG)); + getBigQueryRetryConfig(optionsMap) != null + ? getBigQueryRetryConfig(optionsMap) + : DEFAULT_RETRY_CONFIG)); } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -1628,4 +1634,13 @@ public com.google.api.services.bigquery.model.TestIamPermissionsResponse call() } return optionMap; } + + static BigQueryRetryConfig getBigQueryRetryConfig(Map options) { + return (BigQueryRetryConfig) + options.getOrDefault(BigQueryRpc.Option.BIGQUERY_RETRY_CONFIG, null); + } + + static RetryOption[] getRetryOptions(Map options) { + return (RetryOption[]) options.getOrDefault(BigQueryRpc.Option.RETRY_OPTIONS, null); + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index d23e4ea52a28..793b25687bb9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -196,12 +196,21 @@ public boolean isDone() { Job job = bigquery.getJob(getJobId(), JobOption.fields(BigQuery.JobField.STATUS)); return job == null || JobStatus.State.DONE.equals(job.getStatus().getState()); } + + /** See {@link #waitFor(BigQueryRetryConfig, RetryOption...)} */ + public Job waitFor(RetryOption... waitOptions) throws InterruptedException { + return waitForInternal(DEFAULT_RETRY_CONFIG, waitOptions); + } + /** * Blocks until this job completes its execution, either failing or succeeding. This method * returns current job's latest information. If the job no longer exists, this method returns * {@code null}. By default, the job status is checked using jittered exponential backoff with 1 * second as an initial delay, 2.0 as a backoff factor, 1 minute as maximum delay between polls, - * 12 hours as a total timeout and unlimited number of attempts. + * 12 hours as a total timeout and unlimited number of attempts. For query jobs, the job status + * check can be configured to retry on specific BigQuery error messages using {@link + * BigQueryRetryConfig}. This {@link BigQueryRetryConfig} configuration is not available for + * non-query jobs. * *

    Example usage of {@code waitFor()}. * @@ -232,18 +241,46 @@ public boolean isDone() { * } * } * + *

    Example usage of {@code waitFor()} with BigQuery retry configuration to retry on rate limit + * exceeded error messages for query jobs. + * + *

    {@code
    +   * Job completedJob =
    +   *     job.waitFor(
    +   *             BigQueryRetryConfig.newBuilder()
    +   *                 .retryOnMessage(BigQueryErrorMessages.RATE_LIMIT_EXCEEDED_MSG)
    +   *                 .retryOnMessage(BigQueryErrorMessages.JOB_RATE_LIMIT_EXCEEDED_MSG)
    +   *                 .retryOnRegEx(BigQueryErrorMessages.RetryRegExPatterns.RATE_LIMIT_EXCEEDED_REGEX)
    +   *                 .build());
    +   * if (completedJob == null) {
    +   *   // job no longer exists
    +   * } else if (completedJob.getStatus().getError() != null) {
    +   *   // job failed, handle error
    +   * } else {
    +   *   // job completed successfully
    +   * }
    +   * }
    + * + * @param bigQueryRetryConfig configures retries for query jobs for BigQuery failures * @param waitOptions options to configure checking period and timeout * @throws BigQueryException upon failure, check {@link BigQueryException#getCause()} for details * @throws InterruptedException if the current thread gets interrupted while waiting for the job * to complete */ - public Job waitFor(RetryOption... waitOptions) throws InterruptedException { + public Job waitFor(BigQueryRetryConfig bigQueryRetryConfig, RetryOption... waitOptions) + throws InterruptedException { + return waitForInternal(bigQueryRetryConfig, waitOptions); + } + + private Job waitForInternal(BigQueryRetryConfig bigQueryRetryConfig, RetryOption... waitOptions) + throws InterruptedException { checkNotDryRun("waitFor"); Object completedJobResponse; if (getConfiguration().getType() == Type.QUERY) { completedJobResponse = waitForQueryResults( RetryOption.mergeToSettings(DEFAULT_JOB_WAIT_SETTINGS, waitOptions), + bigQueryRetryConfig, DEFAULT_QUERY_WAIT_OPTIONS); } else { completedJobResponse = @@ -294,7 +331,9 @@ public TableResult getQueryResults(QueryResultsOption... options) QueryResponse response = waitForQueryResults( - DEFAULT_JOB_WAIT_SETTINGS, waitOptions.toArray(new QueryResultsOption[0])); + DEFAULT_JOB_WAIT_SETTINGS, + DEFAULT_RETRY_CONFIG, + waitOptions.toArray(new QueryResultsOption[0])); // Get the job resource to determine if it has errored. Job job = this; @@ -334,7 +373,9 @@ public TableResult getQueryResults(QueryResultsOption... options) } private QueryResponse waitForQueryResults( - RetrySettings retrySettings, final QueryResultsOption... resultsOptions) + RetrySettings retrySettings, + BigQueryRetryConfig bigQueryRetryConfig, + final QueryResultsOption... resultsOptions) throws InterruptedException { if (getConfiguration().getType() != Type.QUERY) { throw new UnsupportedOperationException( @@ -360,7 +401,7 @@ public boolean shouldRetry( } }, options.getClock(), - DEFAULT_RETRY_CONFIG); + bigQueryRetryConfig); } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index 3416409190c2..57f1a05c01a5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -57,7 +57,9 @@ enum Option { STATE_FILTER("stateFilter"), TIMEOUT("timeoutMs"), REQUESTED_POLICY_VERSION("requestedPolicyVersion"), - TABLE_METADATA_VIEW("view"); + TABLE_METADATA_VIEW("view"), + RETRY_OPTIONS("retryOptions"), + BIGQUERY_RETRY_CONFIG("bigQueryRetryConfig"); private final String value; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index d3d3740061cd..88b8f6dbf49b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -27,6 +27,7 @@ import com.google.api.services.bigquery.model.*; import com.google.api.services.bigquery.model.JobStatistics; import com.google.cloud.Policy; +import com.google.cloud.RetryOption; import com.google.cloud.ServiceOptions; import com.google.cloud.Tuple; import com.google.cloud.bigquery.BigQuery.JobOption; @@ -1594,6 +1595,119 @@ public void testCreateJobFailureShouldRetry() { verify(bigqueryRpcMock, times(6)).create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); } + @Test + public void testCreateJobWithBigQueryRetryConfigFailureShouldRetry() { + // Validate create job with BigQueryRetryConfig that retries on rate limit error message. + JobOption bigQueryRetryConfigOption = + JobOption.bigQueryRetryConfig( + BigQueryRetryConfig.newBuilder() + .retryOnMessage(BigQueryErrorMessages.RATE_LIMIT_EXCEEDED_MSG) + .retryOnMessage(BigQueryErrorMessages.JOB_RATE_LIMIT_EXCEEDED_MSG) + .retryOnRegEx(BigQueryErrorMessages.RetryRegExPatterns.RATE_LIMIT_EXCEEDED_REGEX) + .build()); + + Map bigQueryRpcOptions = optionMap(bigQueryRetryConfigOption); + when(bigqueryRpcMock.create(jobCapture.capture(), eq(bigQueryRpcOptions))) + .thenThrow( + new BigQueryException( + 400, RATE_LIMIT_ERROR_MSG)) // retrial on based on RATE_LIMIT_EXCEEDED_MSG + .thenThrow(new BigQueryException(200, RATE_LIMIT_ERROR_MSG)) + .thenReturn(newJobPb()); + + bigquery = options.getService(); + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + + ((BigQueryImpl) bigquery) + .create(JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY), bigQueryRetryConfigOption); + verify(bigqueryRpcMock, times(3)).create(jobCapture.capture(), eq(bigQueryRpcOptions)); + } + + @Test + public void testCreateJobWithBigQueryRetryConfigFailureShouldNotRetry() { + // Validate create job with BigQueryRetryConfig that does not retry on rate limit error message. + JobOption bigQueryRetryConfigOption = + JobOption.bigQueryRetryConfig(BigQueryRetryConfig.newBuilder().build()); + + Map bigQueryRpcOptions = optionMap(bigQueryRetryConfigOption); + when(bigqueryRpcMock.create(jobCapture.capture(), eq(bigQueryRpcOptions))) + .thenThrow(new BigQueryException(400, RATE_LIMIT_ERROR_MSG)); + + bigquery = options.getService(); + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + + try { + ((BigQueryImpl) bigquery) + .create(JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY), bigQueryRetryConfigOption); + fail("JobException expected"); + } catch (BigQueryException e) { + assertNotNull(e.getMessage()); + } + // Verify that getQueryResults is attempted only once and not retried since the error message + // does not match. + verify(bigqueryRpcMock, times(1)).create(jobCapture.capture(), eq(bigQueryRpcOptions)); + } + + @Test + public void testCreateJobWithRetryOptionsFailureShouldRetry() { + // Validate create job with RetryOptions. + JobOption retryOptions = JobOption.retryOptions(RetryOption.maxAttempts(4)); + Map bigQueryRpcOptions = optionMap(retryOptions); + when(bigqueryRpcMock.create(jobCapture.capture(), eq(bigQueryRpcOptions))) + .thenThrow(new BigQueryException(500, "InternalError")) + .thenThrow(new BigQueryException(502, "Bad Gateway")) + .thenThrow(new BigQueryException(503, "Service Unavailable")) + .thenReturn(newJobPb()); + + bigquery = options.getService(); + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + + ((BigQueryImpl) bigquery) + .create(JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY), retryOptions); + verify(bigqueryRpcMock, times(4)).create(jobCapture.capture(), eq(bigQueryRpcOptions)); + } + + @Test + public void testCreateJobWithRetryOptionsFailureShouldNotRetry() { + // Validate create job with RetryOptions that only attempts once (no retry). + JobOption retryOptions = JobOption.retryOptions(RetryOption.maxAttempts(1)); + Map bigQueryRpcOptions = optionMap(retryOptions); + when(bigqueryRpcMock.create(jobCapture.capture(), eq(bigQueryRpcOptions))) + .thenThrow(new BigQueryException(500, "InternalError")) + .thenReturn(newJobPb()); + + bigquery = options.getService(); + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + + try { + ((BigQueryImpl) bigquery) + .create(JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY), retryOptions); + fail("JobException expected"); + } catch (BigQueryException e) { + assertNotNull(e.getMessage()); + } + verify(bigqueryRpcMock, times(1)).create(jobCapture.capture(), eq(bigQueryRpcOptions)); + } + @Test public void testCreateJobWithSelectedFields() { when(bigqueryRpcMock.create( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index d10203444d0b..396bb754acd0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -65,6 +65,10 @@ public class JobTest { CopyStatistics.newBuilder().setCreationTimestamp(1L).setEndTime(3L).setStartTime(2L).build(); private static final CopyJobConfiguration COPY_CONFIGURATION = CopyJobConfiguration.of(TABLE_ID1, TABLE_ID2); + private static final QueryJobConfiguration DDL_QUERY_CONFIGURATION = + QueryJobConfiguration.newBuilder("CREATE VIEW").setDestinationTable(TABLE_ID1).build(); + private static final QueryJobConfiguration DRL_QUERY_CONFIGURATION = + QueryJobConfiguration.newBuilder("SELECT 1").setDestinationTable(TABLE_ID1).build(); private static final JobInfo JOB_INFO = JobInfo.newBuilder(COPY_CONFIGURATION) .setJobId(JOB_ID) @@ -85,6 +89,11 @@ public class JobTest { RetryOption.retryDelayMultiplier(1.0) }; + private static final BigQueryRetryConfig TEST_BIGQUERY_RETRY_CONFIG = + BigQueryRetryConfig.newBuilder() + .retryOnMessage(BigQueryErrorMessages.RATE_LIMIT_EXCEEDED_MSG) + .build(); + @Rule public MockitoRule rule; private BigQuery bigquery; @@ -191,8 +200,6 @@ public void testWaitFor() throws InterruptedException { @Test public void testWaitForAndGetQueryResultsEmpty() throws InterruptedException { - QueryJobConfiguration jobConfig = - QueryJobConfiguration.newBuilder("CREATE VIEW").setDestinationTable(TABLE_ID1).build(); QueryStatistics jobStatistics = QueryStatistics.newBuilder() .setCreationTimestamp(1L) @@ -200,7 +207,7 @@ public void testWaitForAndGetQueryResultsEmpty() throws InterruptedException { .setStartTime(2L) .build(); JobInfo jobInfo = - JobInfo.newBuilder(jobConfig) + JobInfo.newBuilder(DDL_QUERY_CONFIGURATION) .setJobId(JOB_ID) .setStatistics(jobStatistics) .setJobId(JOB_ID) @@ -228,7 +235,7 @@ public void testWaitForAndGetQueryResultsEmpty() throws InterruptedException { when(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) .thenReturn(completedQuery); when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(completedJob); - job = this.job.toBuilder().setConfiguration(jobConfig).build(); + job = this.job.toBuilder().setConfiguration(DDL_QUERY_CONFIGURATION).build(); assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameInstanceAs(completedJob); assertThat(job.getQueryResults().iterateAll()).isEmpty(); verify(bigquery, times(2)).getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS); @@ -237,8 +244,6 @@ public void testWaitForAndGetQueryResultsEmpty() throws InterruptedException { @Test public void testWaitForAndGetQueryResultsEmptyWithSchema() throws InterruptedException { - QueryJobConfiguration jobConfig = - QueryJobConfiguration.newBuilder("CREATE VIEW").setDestinationTable(TABLE_ID1).build(); QueryStatistics jobStatistics = QueryStatistics.newBuilder() .setCreationTimestamp(1L) @@ -246,7 +251,7 @@ public void testWaitForAndGetQueryResultsEmptyWithSchema() throws InterruptedExc .setStartTime(2L) .build(); JobInfo jobInfo = - JobInfo.newBuilder(jobConfig) + JobInfo.newBuilder(DDL_QUERY_CONFIGURATION) .setJobId(JOB_ID) .setStatistics(jobStatistics) .setJobId(JOB_ID) @@ -274,7 +279,7 @@ public void testWaitForAndGetQueryResultsEmptyWithSchema() throws InterruptedExc when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(completedJob); when(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) .thenReturn(completedQuery); - job = this.job.toBuilder().setConfiguration(jobConfig).build(); + job = this.job.toBuilder().setConfiguration(DDL_QUERY_CONFIGURATION).build(); assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameInstanceAs(completedJob); assertThat(job.getQueryResults().getSchema()) .isEqualTo(Schema.of(Field.of("field1", LegacySQLTypeName.BOOLEAN))); @@ -284,8 +289,6 @@ public void testWaitForAndGetQueryResultsEmptyWithSchema() throws InterruptedExc @Test public void testWaitForAndGetQueryResults() throws InterruptedException { - QueryJobConfiguration jobConfig = - QueryJobConfiguration.newBuilder("SELECT 1").setDestinationTable(TABLE_ID1).build(); QueryStatistics jobStatistics = QueryStatistics.newBuilder() .setCreationTimestamp(1L) @@ -293,7 +296,7 @@ public void testWaitForAndGetQueryResults() throws InterruptedException { .setStartTime(2L) .build(); JobInfo jobInfo = - JobInfo.newBuilder(jobConfig) + JobInfo.newBuilder(DRL_QUERY_CONFIGURATION) .setJobId(JOB_ID) .setStatistics(jobStatistics) .setJobId(JOB_ID) @@ -329,7 +332,7 @@ public void testWaitForAndGetQueryResults() throws InterruptedException { when(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) .thenReturn(completedQuery); when(bigquery.listTableData(eq(TABLE_ID1), any(Schema.class))).thenReturn(result); - job = this.job.toBuilder().setConfiguration(jobConfig).build(); + job = this.job.toBuilder().setConfiguration(DRL_QUERY_CONFIGURATION).build(); assertThat(job.waitFor(TEST_RETRY_OPTIONS)).isSameInstanceAs(completedJob); assertThat(job.getQueryResults().iterateAll()).hasSize(0); verify(bigquery, times(2)).getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS); @@ -406,6 +409,149 @@ public void testWaitForWithTimeout() throws InterruptedException { } } + @Test + public void testWaitForWithBigQueryRetryConfig() throws InterruptedException { + QueryStatistics jobStatistics = + QueryStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .build(); + JobInfo jobInfo = + JobInfo.newBuilder(DRL_QUERY_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(jobStatistics) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + + when(bigquery.getOptions()).thenReturn(mockOptions); + when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); + Job completedJob = + expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); + QueryResponse completedQuery = + QueryResponse.newBuilder() + .setCompleted(true) + .setTotalRows(1) // Lies to force call of listTableData(). + .setSchema(Schema.of(Field.of("_f0", LegacySQLTypeName.INTEGER))) + .setErrors(ImmutableList.of()) + .build(); + + when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(completedJob); + when(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) + .thenReturn(completedQuery); + job = this.job.toBuilder().setConfiguration(DRL_QUERY_CONFIGURATION).build(); + assertThat(job.waitFor(TEST_BIGQUERY_RETRY_CONFIG, TEST_RETRY_OPTIONS)) + .isSameInstanceAs(completedJob); + verify(bigquery, times(1)).getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS); + verify(bigquery).getJob(JOB_INFO.getJobId()); + } + + @Test + public void testWaitForWithBigQueryRetryConfigShouldRetry() throws InterruptedException { + QueryStatistics jobStatistics = + QueryStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .build(); + JobInfo jobInfo = + JobInfo.newBuilder(DRL_QUERY_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(jobStatistics) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + + when(bigquery.getOptions()).thenReturn(mockOptions); + when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); + Job completedJob = + expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); + QueryResponse completedQuery = + QueryResponse.newBuilder() + .setCompleted(true) + .setTotalRows(1) // Lies to force call of listTableData(). + .setSchema(Schema.of(Field.of("_f0", LegacySQLTypeName.INTEGER))) + .setErrors(ImmutableList.of()) + .build(); + + when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(completedJob); + BigQueryError bigQueryError = + new BigQueryError( + "testReasonRateLimitExceeded", "US", "testMessage: Exceeded rate limits:"); + + ImmutableList bigQueryErrorList = ImmutableList.of(bigQueryError); + BigQueryException bigQueryException = new BigQueryException(bigQueryErrorList); + when(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) + .thenThrow(bigQueryException) + .thenReturn(completedQuery); + job = this.job.toBuilder().setConfiguration(DRL_QUERY_CONFIGURATION).build(); + assertThat(job.waitFor(TEST_BIGQUERY_RETRY_CONFIG, TEST_RETRY_OPTIONS)) + .isSameInstanceAs(completedJob); + // Verify that getQueryResults is attempted twice. First during bigQueryException with "Exceeded + // rate limits" error message and the second successful attempt. + verify(bigquery, times(2)).getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS); + verify(bigquery).getJob(JOB_INFO.getJobId()); + } + + @Test + public void testWaitForWithBigQueryRetryConfigErrorShouldNotRetry() throws InterruptedException { + QueryStatistics jobStatistics = + QueryStatistics.newBuilder() + .setCreationTimestamp(1L) + .setEndTime(3L) + .setStartTime(2L) + .build(); + JobInfo jobInfo = + JobInfo.newBuilder(DRL_QUERY_CONFIGURATION) + .setJobId(JOB_ID) + .setStatistics(jobStatistics) + .setJobId(JOB_ID) + .setEtag(ETAG) + .setGeneratedId(GENERATED_ID) + .setSelfLink(SELF_LINK) + .setUserEmail(EMAIL) + .setStatus(JOB_STATUS) + .build(); + + when(bigquery.getOptions()).thenReturn(mockOptions); + when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); + QueryResponse completedQuery = + QueryResponse.newBuilder() + .setCompleted(true) + .setTotalRows(1) // Lies to force call of listTableData(). + .setSchema(Schema.of(Field.of("_f0", LegacySQLTypeName.INTEGER))) + .setErrors(ImmutableList.of()) + .build(); + + BigQueryError bigQueryError = + new BigQueryError("testReasonRateLimitExceeded", "US", "testMessage: do not retry error"); + + ImmutableList bigQueryErrorList = ImmutableList.of(bigQueryError); + BigQueryException bigQueryException = new BigQueryException(bigQueryErrorList); + when(bigquery.getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS)) + .thenThrow(bigQueryException) + .thenReturn(completedQuery); + job = this.job.toBuilder().setConfiguration(DRL_QUERY_CONFIGURATION).build(); + try { + job.waitFor(TEST_BIGQUERY_RETRY_CONFIG, TEST_RETRY_OPTIONS); + fail("JobException expected"); + } catch (BigQueryException e) { + assertNotNull(e.getErrors()); + } + // Verify that getQueryResults is attempted only once and not retried since the error message + // does not match. + verify(bigquery, times(1)).getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS); + } + @Test public void testReload() { JobInfo updatedInfo = JOB_INFO.toBuilder().setEtag("etag").build(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b1352f5121c5..63265d58a393 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -57,6 +57,7 @@ import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.BigQueryResult; +import com.google.cloud.bigquery.BigQueryRetryConfig; import com.google.cloud.bigquery.BigQuerySQLException; import com.google.cloud.bigquery.CloneDefinition; import com.google.cloud.bigquery.Clustering; @@ -5256,6 +5257,26 @@ public void testCreateAndGetJob() throws InterruptedException, TimeoutException assertTrue(bigquery.delete(destinationTable)); } + @Test + public void testCreateJobAndWaitForWithRetryOptions() + throws InterruptedException, TimeoutException { + // Note: This only tests the non failure/retry case. For retry cases, see unit tests with mocked + // RPC calls. + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder("SELECT CURRENT_TIMESTAMP() as ts") + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .build(); + + BigQueryRetryConfig bigQueryRetryConfig = BigQueryRetryConfig.newBuilder().build(); + JobOption bigQueryRetryConfigOption = JobOption.bigQueryRetryConfig(bigQueryRetryConfig); + JobOption retryOptions = JobOption.retryOptions(RetryOption.maxAttempts(1)); + + Job job = bigquery.create(JobInfo.of(config), bigQueryRetryConfigOption, retryOptions); + job = job.waitFor(bigQueryRetryConfig); + assertEquals(DONE, job.getStatus().getState()); + } + @Test public void testCreateAndGetJobWithSelectedFields() throws InterruptedException, TimeoutException { From 54ae77d3084058443187d99c09ab01376c912dd5 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 25 Jul 2024 12:43:51 -0400 Subject: [PATCH 2916/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.43.0 (#3403) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:libraries-bom to v26.43.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/snippets/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b170f4afa4f1..93c26f93d758 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.20.0 + 26.43.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d41b1ace7d10..983cdbbf4ed9 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.20.0 + 26.43.0 pom import From d407baa3e95ad894d4028aa46def7ca8efe930c3 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Fri, 26 Jul 2024 09:16:19 -0400 Subject: [PATCH 2917/3441] docs: add simple query connection read api sample (#3394) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Basic setup for connection api sample using simple query * Update sample to use Connection * Fix import/lint * Fix import order * Remove closing result set as it is not implemented * Remove necessary TODO comment * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 1 + .../SimpleQueryConnectionReadApi.java | 66 +++++++++++++++++++ .../SimpleQueryConnectionReadApiIT.java | 61 +++++++++++++++++ 3 files changed, 128 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/SimpleQueryConnectionReadApi.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/SimpleQueryConnectionReadApiIT.java diff --git a/README.md b/README.md index 93c26f93d758..bde8c658eb9f 100644 --- a/README.md +++ b/README.md @@ -233,6 +233,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Set User Agent | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/SetUserAgent.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SetUserAgent.java) | | Simple App | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java) | | Simple Query | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java) | +| Simple Query Connection Read Api | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/SimpleQueryConnectionReadApi.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/SimpleQueryConnectionReadApi.java) | | Table Exists | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableExists.java) | | Table Insert Rows | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java) | | Table Insert Rows Without Row Ids | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java) | diff --git a/samples/snippets/src/main/java/com/example/bigquery/SimpleQueryConnectionReadApi.java b/samples/snippets/src/main/java/com/example/bigquery/SimpleQueryConnectionReadApi.java new file mode 100644 index 000000000000..970c29a2ef95 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/SimpleQueryConnectionReadApi.java @@ -0,0 +1,66 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_simple_query_connection_read_api] + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.BigQueryResult; +import com.google.cloud.bigquery.Connection; +import com.google.cloud.bigquery.ConnectionSettings; +import java.sql.ResultSet; +import java.sql.SQLException; + +public class SimpleQueryConnectionReadApi { + + public static void main(String[] args) { + String query = + "SELECT corpus, count(*) as corpus_count " + + "FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + simpleQueryConnectionReadApi(query); + } + + public static void simpleQueryConnectionReadApi(String query) { + + try { + // Initialize client and create a Connection session. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setRequestTimeout(10L) + .setMaxResults(100L) + .setUseQueryCache(true) + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + + // Execute the query using the Connection session. + BigQueryResult bigQueryResult = connection.executeSelect(query); + ResultSet resultSet = bigQueryResult.getResultSet(); + + while (resultSet.next()) { + System.out.print("corpus:" + resultSet.getString("corpus")); + System.out.print(", count:" + resultSet.getLong("corpus_count")); + System.out.println(); + } + System.out.println("Query ran successfully"); + } catch (SQLException e) { + System.out.println("Query did not run \n" + e.toString()); + } + } +} +// [END bigquery_simple_query_connection_read_api] diff --git a/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryConnectionReadApiIT.java b/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryConnectionReadApiIT.java new file mode 100644 index 000000000000..b7cb109c77f5 --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryConnectionReadApiIT.java @@ -0,0 +1,61 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class SimpleQueryConnectionReadApiIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testSimpleQueryConnectionReadApi() { + String query = + "SELECT corpus, count(*) as corpus_count " + + "FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; + + SimpleQueryConnectionReadApi.simpleQueryConnectionReadApi(query); + assertThat(bout.toString()).contains("Query ran successfully"); + } +} From a4a9999def9805b8fecbc1820cc9f6f6c1997991 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 26 Jul 2024 16:04:41 +0200 Subject: [PATCH 2918/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.33.0 (#3405) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index ee2d3db7a6d1..6ff35226a32c 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.32.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.33.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 91d2c3bc7d13..05e0908b2590 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.32.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.33.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 3f34dd7532ee..d0cff89d486e 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.32.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.33.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index e4416de916f5..5791f668d93a 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.32.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.33.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 519c2e3ce370..931f9bb00528 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.32.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.33.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index f88c59d6bed0..681e94b5e126 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.32.0 + 3.33.0 diff --git a/pom.xml b/pom.xml index 0de44c9df298..b7680ffe27b2 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.32.0 + 3.33.0 From 1f44b4bbef353c6c0a8ece77e9f9b1f0337330db Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 26 Jul 2024 17:32:11 +0200 Subject: [PATCH 2919/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.41.0 (#3401) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 1f236f916997..ecbb4246ab98 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.40.0 + 2.41.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4a3925a4d798..2bffe8678ad9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.40.0 + 2.41.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 983cdbbf4ed9..cb51bc92fcf8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.40.0 + 2.41.0 test From a61ce7d710e2e8b000ee25ec9d295abbc2b63dd1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 26 Jul 2024 18:15:38 +0200 Subject: [PATCH 2920/3441] deps: update github/codeql-action action to v2.25.15 (#3402) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 85324fd18b75..8fab6c30b634 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@563dcafdfe28a0bb82e2c272d84924f17b628540 # v2.25.13 + uses: github/codeql-action/upload-sarif@3e0e84636c6f5df46a2cb232ae1dd1384713150d # v2.25.15 with: sarif_file: results.sarif From 6dca6fffe96937db87713e45f0501d64fd5b544f Mon Sep 17 00:00:00 2001 From: shollyman Date: Fri, 26 Jul 2024 16:52:29 -0700 Subject: [PATCH 2921/3441] docs: add short mode query sample (#3397) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: add short mode query sample * formatting * update comments * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * update sample comments * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 1 + .../com/example/bigquery/QueryShortMode.java | 75 +++++++++++++++++++ .../example/bigquery/QueryShortModeIT.java | 62 +++++++++++++++ 3 files changed, 138 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/QueryShortMode.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/QueryShortModeIT.java diff --git a/README.md b/README.md index bde8c658eb9f..2b4dc4e6c0dc 100644 --- a/README.md +++ b/README.md @@ -214,6 +214,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree | Query Pagination | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java) | | Query Partitioned Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java) | | Query Script | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryScript.java) | +| Query Short Mode | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryShortMode.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryShortMode.java) | | Query Total Rows | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java) | | Query With Array Of Structs Named Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java) | | Query With Array Parameters | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java) | diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryShortMode.java b/samples/snippets/src/main/java/com/example/bigquery/QueryShortMode.java new file mode 100644 index 000000000000..b07f65f92a55 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryShortMode.java @@ -0,0 +1,75 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_query_shortquery] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.TableResult; + +// Sample demonstrating short mode query execution. +// +// While this feature is still in preview, it is controlled by +// setting the environment variable QUERY_PREVIEW_ENABLED=TRUE +// to request short mode execution. +public class QueryShortMode { + + public static void main(String[] args) { + String query = + "SELECT name, gender, SUM(number) AS total FROM " + + "bigquery-public-data.usa_names.usa_1910_2013 GROUP BY " + + "name, gender ORDER BY total DESC LIMIT 10"; + queryShortMode(query); + } + + public static void queryShortMode(String query) { + try { + // Initialize client that will be used to send requests. This client only needs + // to be created once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + // Execute the query. The returned TableResult provides access information + // about the query execution as well as query results. + TableResult results = bigquery.query(QueryJobConfiguration.of(query)); + + JobId jobId = results.getJobId(); + if (jobId != null) { + System.out.println("Query was run with job state. Job ID: " + jobId.toString()); + } else { + System.out.println("Query was run in short mode. Query ID: " + results.getQueryId()); + } + + // Print the results. + results + .iterateAll() + .forEach( + row -> { + System.out.print("name:" + row.get("name").getStringValue()); + System.out.print(", gender: " + row.get("gender").getStringValue()); + System.out.print(", total: " + row.get("total").getLongValue()); + System.out.println(); + }); + + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e.toString()); + } + } +} +// [END bigquery_query_shortquery] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryShortModeIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryShortModeIT.java new file mode 100644 index 000000000000..6500de7827db --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryShortModeIT.java @@ -0,0 +1,62 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class QueryShortModeIT { + + private final Logger log = Logger.getLogger(this.getClass().getName()); + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testQueryBatch() { + String query = + "SELECT name, gender, SUM(number) AS total FROM " + + "bigquery-public-data.usa_names.usa_1910_2013 GROUP BY " + + "name, gender ORDER BY total DESC LIMIT 10"; + + QueryShortMode.queryShortMode(query); + assertThat(bout.toString()).contains("Query was run"); + } +} From 609c616c3197f0d0c3439050cd4974c41f892092 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sun, 28 Jul 2024 02:00:33 +0200 Subject: [PATCH 2922/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.8.0 (#3409) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b7680ffe27b2..43b4a5d739d4 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.6.1 + 3.8.0 pom import From 66777a2c3c7b0462330bd1c820e2f04ad4727465 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sun, 28 Jul 2024 04:11:30 +0200 Subject: [PATCH 2923/3441] deps: update ossf/scorecard-action action to v2.4.0 (#3408) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 8fab6c30b634..f56288789adc 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -37,7 +37,7 @@ jobs: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@dc50aa9510b46c811795eb24b2f1ba02a914e534 # v2.3.3 + uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0 with: results_file: results.sarif results_format: sarif From cea129c3fb4a4158230616d0d1cacc204a4e67d1 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 27 Jul 2024 22:46:51 -0400 Subject: [PATCH 2924/3441] chore(main): release 2.42.0 (#3378) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 37 +++++++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 46 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e962971e86a6..7a3cf23f27c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,42 @@ # Changelog +## [2.42.0](https://github.com/googleapis/java-bigquery/compare/v2.41.0...v2.42.0) (2024-07-28) + + +### Features + +* Add ability to specify RetryOptions and BigQueryRetryConfig when create job and waitFor ([#3398](https://github.com/googleapis/java-bigquery/issues/3398)) ([1f91ae7](https://github.com/googleapis/java-bigquery/commit/1f91ae7fa2100a05f969a7429cb619a2b8b42dee)) +* Add additional parameters to CsvOptions and ParquetOptions ([#3370](https://github.com/googleapis/java-bigquery/issues/3370)) ([34f16fb](https://github.com/googleapis/java-bigquery/commit/34f16fbaad236f5a6db26d693efde2025913d540)) +* Add remaining Statement Types ([#3381](https://github.com/googleapis/java-bigquery/issues/3381)) ([5f39b19](https://github.com/googleapis/java-bigquery/commit/5f39b19e8839f06d956addb8d95cf05e4b60a3f1)) + + +### Bug Fixes + +* Null field mode inconsistency ([#2863](https://github.com/googleapis/java-bigquery/issues/2863)) ([b9e96e3](https://github.com/googleapis/java-bigquery/commit/b9e96e3aa738a1813ad452cf6141f792f437e8de)) + + +### Dependencies + +* Update actions/upload-artifact action to v4.3.4 ([#3382](https://github.com/googleapis/java-bigquery/issues/3382)) ([efa1aef](https://github.com/googleapis/java-bigquery/commit/efa1aef0a579baa379adbfbd2ee12f4ee5f3d987)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.48.0 ([#3374](https://github.com/googleapis/java-bigquery/issues/3374)) ([45b7f20](https://github.com/googleapis/java-bigquery/commit/45b7f20e1b324d9b77183c0f8bb5ae14724d6aef)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240616-2.0.0 ([#3368](https://github.com/googleapis/java-bigquery/issues/3368)) ([ceb270c](https://github.com/googleapis/java-bigquery/commit/ceb270c5cc2af4d69948ac89af1d72990fe1a7ee)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240623-2.0.0 ([#3384](https://github.com/googleapis/java-bigquery/issues/3384)) ([e1de34f](https://github.com/googleapis/java-bigquery/commit/e1de34f0c4c67d75bcf15f35fe86c411b61d04ac)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240629-2.0.0 ([#3392](https://github.com/googleapis/java-bigquery/issues/3392)) ([352562d](https://github.com/googleapis/java-bigquery/commit/352562da445e35a8207bcf77442130867f32e52d)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.52.0 ([#3375](https://github.com/googleapis/java-bigquery/issues/3375)) ([2115c04](https://github.com/googleapis/java-bigquery/commit/2115c0448b242ddd887f2bac3d68c45847273c3d)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.33.0 ([#3405](https://github.com/googleapis/java-bigquery/issues/3405)) ([a4a9999](https://github.com/googleapis/java-bigquery/commit/a4a9999def9805b8fecbc1820cc9f6f6c1997991)) +* Update dependency org.junit.vintage:junit-vintage-engine to v5.10.3 ([#3371](https://github.com/googleapis/java-bigquery/issues/3371)) ([2e804c5](https://github.com/googleapis/java-bigquery/commit/2e804c56eeef5009cc46c7544fe9b04bfdd65d7a)) +* Update github/codeql-action action to v2.25.11 ([#3376](https://github.com/googleapis/java-bigquery/issues/3376)) ([f1e0014](https://github.com/googleapis/java-bigquery/commit/f1e0014dca5ca04522796b44ff313696d2b41176)) +* Update github/codeql-action action to v2.25.12 ([#3387](https://github.com/googleapis/java-bigquery/issues/3387)) ([af60b30](https://github.com/googleapis/java-bigquery/commit/af60b30cd774992c5d82063106471926dc6aaa6e)) +* Update github/codeql-action action to v2.25.13 ([#3395](https://github.com/googleapis/java-bigquery/issues/3395)) ([95c8d6f](https://github.com/googleapis/java-bigquery/commit/95c8d6f65c5c5355fc52a0a2b54002d8f9cdb1ef)) +* Update github/codeql-action action to v2.25.15 ([#3402](https://github.com/googleapis/java-bigquery/issues/3402)) ([a61ce7d](https://github.com/googleapis/java-bigquery/commit/a61ce7d710e2e8b000ee25ec9d295abbc2b63dd1)) +* Update ossf/scorecard-action action to v2.4.0 ([#3408](https://github.com/googleapis/java-bigquery/issues/3408)) ([66777a2](https://github.com/googleapis/java-bigquery/commit/66777a2c3c7b0462330bd1c820e2f04ad4727465)) + + +### Documentation + +* Add short mode query sample ([#3397](https://github.com/googleapis/java-bigquery/issues/3397)) ([6dca6ff](https://github.com/googleapis/java-bigquery/commit/6dca6fffe96937db87713e45f0501d64fd5b544f)) +* Add simple query connection read api sample ([#3394](https://github.com/googleapis/java-bigquery/issues/3394)) ([d407baa](https://github.com/googleapis/java-bigquery/commit/d407baa3e95ad894d4028aa46def7ca8efe930c3)) + ## [2.41.0](https://github.com/googleapis/java-bigquery/compare/v2.40.3...v2.41.0) (2024-06-25) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 11388a674166..4c3f217d51f6 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.41.1-SNAPSHOT + 2.42.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 681e94b5e126..8f31b495a93f 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.41.1-SNAPSHOT + 2.42.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.41.1-SNAPSHOT + 2.42.0
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c3bf567ca281..5d61bb426aa6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.41.1-SNAPSHOT + 2.42.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.41.1-SNAPSHOT + 2.42.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 43b4a5d739d4..41482a874e71 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.41.1-SNAPSHOT + 2.42.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.41.1-SNAPSHOT + 2.42.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2bffe8678ad9..afdb53dee243 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.41.1-SNAPSHOT + 2.42.0 diff --git a/versions.txt b/versions.txt index f2e6b2728194..030e1e1c6e10 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.41.0:2.41.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.42.0:2.42.0 \ No newline at end of file From 1fc8720fe49e061ba34bfe67987aa5be31b9f91f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 15:31:56 -0400 Subject: [PATCH 2925/3441] chore(main): release 2.42.1-SNAPSHOT (#3410) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4c3f217d51f6..c0056e3dc950 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.42.0 + 2.42.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 8f31b495a93f..e984d884b95c 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.42.0 + 2.42.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.42.0 + 2.42.1-SNAPSHOT
    diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5d61bb426aa6..74de39e9b198 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.42.0 + 2.42.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.42.0 + 2.42.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 41482a874e71..aebff3667628 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.42.0 + 2.42.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.42.0 + 2.42.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index afdb53dee243..ab69220e766a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.42.0 + 2.42.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 030e1e1c6e10..c1fafa320086 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.42.0:2.42.0 \ No newline at end of file +google-cloud-bigquery:2.42.0:2.42.1-SNAPSHOT \ No newline at end of file From 8a48fd1eb6762e42bbdc49d1aa4ebab36c3e8e26 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 30 Jul 2024 19:54:51 +0200 Subject: [PATCH 2926/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240714-2.0.0 (#3412) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240714-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 6 +++--- pom.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2b4dc4e6c0dc..6165b7ceb170 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.41.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.42.0' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.41.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.42.0" ``` @@ -352,7 +352,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.41.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.42.0 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/pom.xml b/pom.xml index aebff3667628..7db40b3efad4 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240629-2.0.0 + v2-rev20240714-2.0.0 From 57167517d63813db9f323a8b47ea033fd5a673fd Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 31 Jul 2024 15:58:14 +0200 Subject: [PATCH 2927/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.42.0 (#3411) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.42.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6165b7ceb170..12c06a0c9189 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.41.0 + 2.42.0 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ecbb4246ab98..3f01ebc5b488 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.41.0 + 2.42.0 From 5d1953fc4b741b6f90d2c7eac5a46da71f2112ad Mon Sep 17 00:00:00 2001 From: Min Zhu Date: Wed, 31 Jul 2024 16:55:16 -0400 Subject: [PATCH 2928/3441] chore: setup 2.40.x lts branch (#3415) --- .github/release-please.yml | 4 ++++ .github/sync-repo-settings.yaml | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/.github/release-please.yml b/.github/release-please.yml index ab97340a7a16..7f8c0fbb77a7 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -23,6 +23,10 @@ branches: handleGHRelease: true releaseType: java-backport branch: 2.35.x + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 2.40.x bumpMinorPreMajor: true handleGHRelease: true releaseType: java-yoshi diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 418e8ab988e0..2027cd1a0ff1 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -107,6 +107,21 @@ branchProtectionRules: - cla/google - OwlBot Post Processor - javadoc + - pattern: 2.40.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (17) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - OwlBot Post Processor + - javadoc permissionRules: - team: api-bigquery permission: admin From 66b072d1b84f46d83dc84fc4a99410ef981804f4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 1 Aug 2024 22:30:18 +0200 Subject: [PATCH 2929/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.49.0 (#3416) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 7db40b3efad4..a7291f67b2bd 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.48.0 + 2.49.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3f01ebc5b488..9a18b4802467 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.48.0 + 2.49.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ab69220e766a..b9527735945f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.48.0 + 2.49.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index cb51bc92fcf8..3742773e4b08 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.48.0 + 2.49.0 test From 0d3a1007859079b4489dbd73de9fcd9685ca5457 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 1 Aug 2024 22:35:32 +0200 Subject: [PATCH 2930/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.41.0 (#3419) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a7291f67b2bd..1d30a89dba8a 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.40.1 + 2.41.0 test From 6cff7f0c2241223c529321e2b613f15c84ecbdcc Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 1 Aug 2024 22:35:51 +0200 Subject: [PATCH 2931/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.53.0 (#3418) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1d30a89dba8a..54848075affa 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.52.0 + 1.53.0 pom import From 66336a8989681a7c5c3d901c11c7fc6cef0b9fef Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 1 Aug 2024 22:39:23 +0200 Subject: [PATCH 2932/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.49.0 (#3417) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 54848075affa..75dc7343daba 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.48.0 + 2.49.0 test From d5ec87d16f64c231c8bfd87635952cb1a04f5e25 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 7 Aug 2024 16:28:56 +0200 Subject: [PATCH 2933/3441] deps: update actions/upload-artifact action to v4.3.5 (#3420) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index f56288789adc..9dcf90cb98d8 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 + uses: actions/upload-artifact@89ef406dd8d7e03cfd12d9e0a4a378f454709029 # v4.3.5 with: name: SARIF file path: results.sarif From 91d780b0db2b9b05923b60621cf80251293be184 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 9 Aug 2024 15:58:45 +0200 Subject: [PATCH 2934/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240727-2.0.0 (#3421) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240714-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot From c7d07b3f1d6fa2c2259fa7315b284bcaf48ee5f2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 Aug 2024 17:16:50 +0200 Subject: [PATCH 2935/3441] deps: update actions/upload-artifact action to v4.3.5 (#3422) From a9d6869251fa3df80d639c6998b62992468d6625 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 Aug 2024 17:08:57 +0200 Subject: [PATCH 2936/3441] deps: update actions/upload-artifact action to v4.3.5 (#3424) From 16f350c28ec60dc4011b77cbda6416c9de45d431 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 14 Aug 2024 17:28:50 +0200 Subject: [PATCH 2937/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240727-2.0.0 (#3423) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240714-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot From 2fc15b3e9f89289f0a047bb0a6ae7fb5bb71d253 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 15 Aug 2024 13:03:15 -0400 Subject: [PATCH 2938/3441] docs: update iam policy sample user to be consistent with other languages (#3429) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs: update iam policy sample user to be consistent with other language samples * fix format * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- .../src/main/java/com/example/bigquery/CreateIamPolicy.java | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 12c06a0c9189..030bed3271ab 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.43.0') +implementation platform('com.google.cloud:libraries-bom:26.44.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java b/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java index 960f2807178e..96f0c3f16a1d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java @@ -46,7 +46,9 @@ public static void createIamPolicy(String datasetName, String tableName) { Policy policy = bigquery.getIamPolicy(tableId); policy .toBuilder() - .addIdentity(Role.of("roles/bigquery.dataViewer"), Identity.allUsers()) + .addIdentity( + Role.of("roles/bigquery.dataViewer"), + Identity.user("example-analyst-group@google.com")) .build(); bigquery.setIamPolicy(tableId, policy); System.out.println("Iam policy created successfully"); From 022eb578ae0b6f02e943662c8d4e453590f7c209 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 15 Aug 2024 20:00:17 +0200 Subject: [PATCH 2939/3441] deps: update actions/upload-artifact action to v4.3.5 (#3427) From c7aacbaeddc4809e283c6dfcdedd9610eac7730f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 16 Aug 2024 18:30:34 +0200 Subject: [PATCH 2940/3441] deps: update actions/upload-artifact action to v4.3.5 (#3430) From a48acde9852fe51783096249fd119d36fa7a7b16 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 19 Aug 2024 17:05:58 +0200 Subject: [PATCH 2941/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.42.0 (#3425) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.42.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 9a18b4802467..804fa8a05e9a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.41.0 + 2.42.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b9527735945f..a44778e259b0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.41.0 + 2.42.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3742773e4b08..d43627c845a2 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.41.0 + 2.42.0 test From 0a6574fa11aa83b5c899f1dcd3b1132aa4f46ebd Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 19 Aug 2024 19:31:43 +0200 Subject: [PATCH 2942/3441] deps: update github/codeql-action action to v2.26.2 (#3426) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update github/codeql-action action to v2.26.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 9dcf90cb98d8..19683d81b4f6 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@3e0e84636c6f5df46a2cb232ae1dd1384713150d # v2.25.15 + uses: github/codeql-action/upload-sarif@366883a76d75dcee5428da5c3ae7abf9386e35ac # v2.26.2 with: sarif_file: results.sarif From 9ae6ecac3337eb19bced14b9fcd7ce74580d7326 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 19 Aug 2024 19:32:05 +0200 Subject: [PATCH 2943/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240727-2.0.0 (#3428) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240714-2.0.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot From b7e8244cffdef926465e2d2700766b98ad687247 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 19 Aug 2024 19:32:29 +0200 Subject: [PATCH 2944/3441] deps: update actions/upload-artifact action to v4.3.5 (#3432) From 76e51307977f3d6af550c39d6cefbaa15de48d90 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 19 Aug 2024 21:38:07 +0200 Subject: [PATCH 2945/3441] build(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.3 (#3434) --- benchmark/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index c0056e3dc950..e5aa6b8ef2f1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -75,7 +75,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.2 + 3.1.3 true diff --git a/samples/pom.xml b/samples/pom.xml index e15e1f5ffa4b..b0ed2cf7baba 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -54,7 +54,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.2 + 3.1.3 true diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d43627c845a2..c7679699e5b3 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -109,7 +109,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.2 + 3.1.3 true From 801f44172f7be43e0649a116fb0bb556507fc572 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 19 Aug 2024 21:38:57 +0200 Subject: [PATCH 2946/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.34.0 (#3433) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 6ff35226a32c..dffbc2f7013f 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.33.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.34.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 05e0908b2590..92ffa46f7589 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.33.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.34.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index d0cff89d486e..c3ebb3c15536 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.33.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.34.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 5791f668d93a..e7ddf639b53e 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.33.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.34.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 931f9bb00528..e211e47fc692 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.33.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.34.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index e984d884b95c..b268dd64784b 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.33.0 + 3.34.0 diff --git a/pom.xml b/pom.xml index 75dc7343daba..4b1a62ec8e9c 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.33.0 + 3.34.0 From ccefd6e755042b1e4c2aaec10228abb05779ed87 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 20 Aug 2024 20:17:31 +0200 Subject: [PATCH 2947/3441] deps: update actions/upload-artifact action to v4.3.5 (#3436) From b4e20db60b30dac9039407d724b8f7c816301e5c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 21 Aug 2024 16:25:12 +0200 Subject: [PATCH 2948/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240803-2.0.0 (#3435) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4b1a62ec8e9c..32bef1ff2f7f 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240714-2.0.0 + v2-rev20240803-2.0.0 From c83611b1bd73d5637c3771466092050f8902b5ce Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 21 Aug 2024 16:32:01 +0200 Subject: [PATCH 2949/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.42.0 (#3439) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 32bef1ff2f7f..08d4f43e5b12 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.41.0 + 2.42.0 test From 390e1824bffef17e85d0ec142b4fcca6dff80a9c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 21 Aug 2024 16:47:58 +0200 Subject: [PATCH 2950/3441] deps: update github/codeql-action action to v2.26.3 (#3438) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 19683d81b4f6..83fe49d9940a 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@366883a76d75dcee5428da5c3ae7abf9386e35ac # v2.26.2 + uses: github/codeql-action/upload-sarif@d65d0c9607eef71d396c103df6032f9561fcb3c6 # v2.26.3 with: sarif_file: results.sarif From 916fe9ad67e5162a9f24852a96e40a2051ebffbd Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 21 Aug 2024 19:20:41 +0200 Subject: [PATCH 2951/3441] deps: update actions/upload-artifact action to v4.3.5 (#3440) From 187f099edbf785e3ef50ae28fce6ae194d44dfb3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 21 Aug 2024 20:24:31 +0200 Subject: [PATCH 2952/3441] deps: update actions/upload-artifact action to v4.3.5 (#3443) From 04aea5e1d0eeab02f8ea92ff3467c64507dc05c9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 22 Aug 2024 04:19:55 +0200 Subject: [PATCH 2953/3441] deps: update actions/upload-artifact action to v4.3.5 (#3444) From 37016833850c717c2ffea14a137cb85d0a509e42 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 22 Aug 2024 16:32:32 +0200 Subject: [PATCH 2954/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.8.1 (#3442) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 08d4f43e5b12..9142ac409497 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.8.0 + 3.8.1 pom import From d0d758a6e5e90502491eefa64e3a7409bdcea6a9 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 22 Aug 2024 12:48:48 -0400 Subject: [PATCH 2955/3441] fix: NPE for executeSelect nonFast path with empty result (#3445) * fix: NPE for executeSelect nonFast path with empty result * remove commented out extraneous code --- .../google/cloud/bigquery/ConnectionImpl.java | 16 +++++---- .../cloud/bigquery/ConnectionImplTest.java | 33 ++++++++++++++++++- 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index 2d0367790e18..413243396ef3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -53,6 +53,7 @@ import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.MoreExecutors; import java.io.IOException; +import java.math.BigInteger; import java.util.AbstractList; import java.util.ArrayList; import java.util.Collections; @@ -418,12 +419,15 @@ public ListenableFuture executeSelectAsync( @VisibleForTesting BigQueryResult getResultSet( GetQueryResultsResponse firstPage, JobId jobId, String sql, Boolean hasQueryParameters) { - return getSubsequentQueryResultsWithJob( - firstPage.getTotalRows().longValue(), - (long) firstPage.getRows().size(), - jobId, - firstPage, - hasQueryParameters); + if (firstPage.getTotalRows().compareTo(BigInteger.ZERO) > 0) { + return getSubsequentQueryResultsWithJob( + firstPage.getTotalRows().longValue(), + (long) firstPage.getRows().size(), + jobId, + firstPage, + hasQueryParameters); + } + return new BigQueryResultImpl(Schema.fromPb(firstPage.getSchema()), 0, null, null); } static class EndOfFieldValueList diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java index dff73d6bdf9b..58cb69ba7ede 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java @@ -100,6 +100,15 @@ public class ConnectionImplTest { .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)) .setSchema(FAST_QUERY_TABLESCHEMA); + private static final GetQueryResultsResponse GET_QUERY_RESULTS_RESPONSE_EMPTY = + new GetQueryResultsResponse() + .setJobReference(QUERY_JOB.toPb()) + .setJobComplete(true) + .setCacheHit(false) + .setPageToken(PAGE_TOKEN) + .setTotalBytesProcessed(0L) + .setTotalRows(BigInteger.valueOf(0L)) + .setSchema(FAST_QUERY_TABLESCHEMA); private static final GetQueryResultsResponse GET_QUERY_RESULTS_RESPONSE_NULL_SCHEMA = new GetQueryResultsResponse() @@ -375,7 +384,6 @@ public void testLegacyQuerySinglePage() throws BigQuerySQLException { ConnectionImpl connectionSpy = Mockito.spy(connection); com.google.api.services.bigquery.model.Job jobResponseMock = new com.google.api.services.bigquery.model.Job() - // .setConfiguration(QUERY_JOB.g) .setJobReference(QUERY_JOB.toPb()) .setId(JOB) .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")); @@ -401,6 +409,29 @@ public void testLegacyQuerySinglePage() throws BigQuerySQLException { .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); } + // calls executeSelect with a nonFast query where the query returns an empty result. + @Test + public void testLegacyQuerySinglePageEmptyResults() throws BigQuerySQLException { + ConnectionImpl connectionSpy = Mockito.spy(connection); + com.google.api.services.bigquery.model.Job jobResponseMock = + new com.google.api.services.bigquery.model.Job() + .setJobReference(QUERY_JOB.toPb()) + .setId(JOB) + .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")); + // emulating a legacy query + doReturn(false).when(connectionSpy).isFastQuerySupported(); + doReturn(GET_QUERY_RESULTS_RESPONSE_EMPTY) + .when(connectionSpy) + .getQueryResultsFirstPage(any(JobId.class)); + when(bigqueryRpcMock.createJobForQuery(any(com.google.api.services.bigquery.model.Job.class))) + .thenReturn(jobResponseMock); // RPC call in createQueryJob + BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); + assertEquals(res.getTotalRows(), 0); + assertEquals(QUERY_SCHEMA, res.getSchema()); + verify(bigqueryRpcMock, times(1)) + .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); + } + // exercises getSubsequentQueryResultsWithJob for fast running queries @Test public void testFastQueryLongRunning() throws SQLException { From cc9da9576fa276afe069caff075c50e41e412ce1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 26 Aug 2024 17:39:44 +0200 Subject: [PATCH 2956/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.54.0 (#3450) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9142ac409497..9ae0fc0f0718 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.53.0 + 1.54.0 pom import From c6e93cd1996f2feca3c79bf5ec4a079bd821c0f6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 26 Aug 2024 17:40:00 +0200 Subject: [PATCH 2957/3441] deps: update actions/upload-artifact action to v4.3.5 (#3449) From 58aacc5a92e18b790a03c0b9b4a75062928768c2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 26 Aug 2024 17:46:15 +0200 Subject: [PATCH 2958/3441] deps: update github/codeql-action action to v2.26.5 (#3446) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 83fe49d9940a..f8bc8f3c3a72 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@d65d0c9607eef71d396c103df6032f9561fcb3c6 # v2.26.3 + uses: github/codeql-action/upload-sarif@e8b34a2aaa1d35eab0b758128337086bb22bc6bf # v2.26.5 with: sarif_file: results.sarif From 4256184777bad166b73728cfc37990b30b5fc1cc Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 26 Aug 2024 19:13:48 +0200 Subject: [PATCH 2959/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.50.0 (#3447) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 9ae0fc0f0718..8d5fb63bbc45 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.49.0 + 2.50.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 804fa8a05e9a..127607326022 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.49.0 + 2.50.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a44778e259b0..7148928d58a9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.49.0 + 2.50.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c7679699e5b3..315bf0417521 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.49.0 + 2.50.0 test From fbfc1064688ba594a0d232c413e6f8b54558590f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 27 Aug 2024 03:11:58 +0200 Subject: [PATCH 2960/3441] deps: update actions/upload-artifact action to v4.3.5 (#3455) From 165e9b9c3924216581da8d8c8413acba86f79bff Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 27 Aug 2024 03:14:07 +0200 Subject: [PATCH 2961/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.43.0 (#3453) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 127607326022..d285e01cf83f 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.42.0 + 2.43.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7148928d58a9..9334e0cb421e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.42.0 + 2.43.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 315bf0417521..c4c72ca9056c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.42.0 + 2.43.0 test From 2c128398b04c28ccd0844d028e2f8c467f8723f0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 27 Aug 2024 03:17:57 +0200 Subject: [PATCH 2962/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.50.0 (#3448) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8d5fb63bbc45..e5a54296ecff 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.49.0 + 2.50.0 test From 8796aee5f669414169dc8baf88f9121697f4cd04 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 27 Aug 2024 03:21:47 +0200 Subject: [PATCH 2963/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240815-2.0.0 (#3454) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e5a54296ecff..4ba75a3dfc16 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240803-2.0.0 + v2-rev20240815-2.0.0 From 8e5a790b1c124d57b22c4f0d325ac1d3706dbed5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 27 Aug 2024 03:22:04 +0200 Subject: [PATCH 2964/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.7.0 (#3451) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4ba75a3dfc16..9d42dc0568fd 100644 --- a/pom.xml +++ b/pom.xml @@ -180,7 +180,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.6.2 + 3.7.0 From c4afbef9d4df03c798241d56d8988adb5724d008 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 27 Aug 2024 19:38:58 +0200 Subject: [PATCH 2965/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.9.0 (#3457) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9d42dc0568fd..52b90fa7e72f 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.8.1 + 3.9.0 pom import From 421c8250de28b33fb5d2e175b88f1042194f8dc2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 27 Aug 2024 14:52:54 -0400 Subject: [PATCH 2966/3441] chore(main): release 2.42.1 (#3414) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 43 +++++++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 +-- google-cloud-bigquery/pom.xml | 4 +-- pom.xml | 4 +-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 52 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a3cf23f27c3..9feeb729091f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,48 @@ # Changelog +## [2.42.1](https://github.com/googleapis/java-bigquery/compare/v2.42.0...v2.42.1) (2024-08-27) + + +### Bug Fixes + +* NPE for executeSelect nonFast path with empty result ([#3445](https://github.com/googleapis/java-bigquery/issues/3445)) ([d0d758a](https://github.com/googleapis/java-bigquery/commit/d0d758a6e5e90502491eefa64e3a7409bdcea6a9)) + + +### Dependencies + +* Update actions/upload-artifact action to v4.3.5 ([#3420](https://github.com/googleapis/java-bigquery/issues/3420)) ([d5ec87d](https://github.com/googleapis/java-bigquery/commit/d5ec87d16f64c231c8bfd87635952cb1a04f5e25)) +* Update actions/upload-artifact action to v4.3.5 ([#3422](https://github.com/googleapis/java-bigquery/issues/3422)) ([c7d07b3](https://github.com/googleapis/java-bigquery/commit/c7d07b3f1d6fa2c2259fa7315b284bcaf48ee5f2)) +* Update actions/upload-artifact action to v4.3.5 ([#3424](https://github.com/googleapis/java-bigquery/issues/3424)) ([a9d6869](https://github.com/googleapis/java-bigquery/commit/a9d6869251fa3df80d639c6998b62992468d6625)) +* Update actions/upload-artifact action to v4.3.5 ([#3427](https://github.com/googleapis/java-bigquery/issues/3427)) ([022eb57](https://github.com/googleapis/java-bigquery/commit/022eb578ae0b6f02e943662c8d4e453590f7c209)) +* Update actions/upload-artifact action to v4.3.5 ([#3430](https://github.com/googleapis/java-bigquery/issues/3430)) ([c7aacba](https://github.com/googleapis/java-bigquery/commit/c7aacbaeddc4809e283c6dfcdedd9610eac7730f)) +* Update actions/upload-artifact action to v4.3.5 ([#3432](https://github.com/googleapis/java-bigquery/issues/3432)) ([b7e8244](https://github.com/googleapis/java-bigquery/commit/b7e8244cffdef926465e2d2700766b98ad687247)) +* Update actions/upload-artifact action to v4.3.5 ([#3436](https://github.com/googleapis/java-bigquery/issues/3436)) ([ccefd6e](https://github.com/googleapis/java-bigquery/commit/ccefd6e755042b1e4c2aaec10228abb05779ed87)) +* Update actions/upload-artifact action to v4.3.5 ([#3440](https://github.com/googleapis/java-bigquery/issues/3440)) ([916fe9a](https://github.com/googleapis/java-bigquery/commit/916fe9ad67e5162a9f24852a96e40a2051ebffbd)) +* Update actions/upload-artifact action to v4.3.5 ([#3443](https://github.com/googleapis/java-bigquery/issues/3443)) ([187f099](https://github.com/googleapis/java-bigquery/commit/187f099edbf785e3ef50ae28fce6ae194d44dfb3)) +* Update actions/upload-artifact action to v4.3.5 ([#3444](https://github.com/googleapis/java-bigquery/issues/3444)) ([04aea5e](https://github.com/googleapis/java-bigquery/commit/04aea5e1d0eeab02f8ea92ff3467c64507dc05c9)) +* Update actions/upload-artifact action to v4.3.5 ([#3449](https://github.com/googleapis/java-bigquery/issues/3449)) ([c6e93cd](https://github.com/googleapis/java-bigquery/commit/c6e93cd1996f2feca3c79bf5ec4a079bd821c0f6)) +* Update actions/upload-artifact action to v4.3.5 ([#3455](https://github.com/googleapis/java-bigquery/issues/3455)) ([fbfc106](https://github.com/googleapis/java-bigquery/commit/fbfc1064688ba594a0d232c413e6f8b54558590f)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.49.0 ([#3417](https://github.com/googleapis/java-bigquery/issues/3417)) ([66336a8](https://github.com/googleapis/java-bigquery/commit/66336a8989681a7c5c3d901c11c7fc6cef0b9fef)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.50.0 ([#3448](https://github.com/googleapis/java-bigquery/issues/3448)) ([2c12839](https://github.com/googleapis/java-bigquery/commit/2c128398b04c28ccd0844d028e2f8c467f8723f0)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240714-2.0.0 ([#3412](https://github.com/googleapis/java-bigquery/issues/3412)) ([8a48fd1](https://github.com/googleapis/java-bigquery/commit/8a48fd1eb6762e42bbdc49d1aa4ebab36c3e8e26)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240727-2.0.0 ([#3421](https://github.com/googleapis/java-bigquery/issues/3421)) ([91d780b](https://github.com/googleapis/java-bigquery/commit/91d780b0db2b9b05923b60621cf80251293be184)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240727-2.0.0 ([#3423](https://github.com/googleapis/java-bigquery/issues/3423)) ([16f350c](https://github.com/googleapis/java-bigquery/commit/16f350c28ec60dc4011b77cbda6416c9de45d431)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240727-2.0.0 ([#3428](https://github.com/googleapis/java-bigquery/issues/3428)) ([9ae6eca](https://github.com/googleapis/java-bigquery/commit/9ae6ecac3337eb19bced14b9fcd7ce74580d7326)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240803-2.0.0 ([#3435](https://github.com/googleapis/java-bigquery/issues/3435)) ([b4e20db](https://github.com/googleapis/java-bigquery/commit/b4e20db60b30dac9039407d724b8f7c816301e5c)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240815-2.0.0 ([#3454](https://github.com/googleapis/java-bigquery/issues/3454)) ([8796aee](https://github.com/googleapis/java-bigquery/commit/8796aee5f669414169dc8baf88f9121697f4cd04)) +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.9.0 ([c4afbef](https://github.com/googleapis/java-bigquery/commit/c4afbef9d4df03c798241d56d8988adb5724d008)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.53.0 ([#3418](https://github.com/googleapis/java-bigquery/issues/3418)) ([6cff7f0](https://github.com/googleapis/java-bigquery/commit/6cff7f0c2241223c529321e2b613f15c84ecbdcc)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.54.0 ([#3450](https://github.com/googleapis/java-bigquery/issues/3450)) ([cc9da95](https://github.com/googleapis/java-bigquery/commit/cc9da9576fa276afe069caff075c50e41e412ce1)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.34.0 ([#3433](https://github.com/googleapis/java-bigquery/issues/3433)) ([801f441](https://github.com/googleapis/java-bigquery/commit/801f44172f7be43e0649a116fb0bb556507fc572)) +* Update github/codeql-action action to v2.26.2 ([#3426](https://github.com/googleapis/java-bigquery/issues/3426)) ([0a6574f](https://github.com/googleapis/java-bigquery/commit/0a6574fa11aa83b5c899f1dcd3b1132aa4f46ebd)) +* Update github/codeql-action action to v2.26.3 ([#3438](https://github.com/googleapis/java-bigquery/issues/3438)) ([390e182](https://github.com/googleapis/java-bigquery/commit/390e1824bffef17e85d0ec142b4fcca6dff80a9c)) +* Update github/codeql-action action to v2.26.5 ([#3446](https://github.com/googleapis/java-bigquery/issues/3446)) ([58aacc5](https://github.com/googleapis/java-bigquery/commit/58aacc5a92e18b790a03c0b9b4a75062928768c2)) + + +### Documentation + +* Update iam policy sample user to be consistent with other languages ([#3429](https://github.com/googleapis/java-bigquery/issues/3429)) ([2fc15b3](https://github.com/googleapis/java-bigquery/commit/2fc15b3e9f89289f0a047bb0a6ae7fb5bb71d253)) + ## [2.42.0](https://github.com/googleapis/java-bigquery/compare/v2.41.0...v2.42.0) (2024-07-28) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index e5aa6b8ef2f1..67a787c31a2f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.42.1-SNAPSHOT + 2.42.1 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index b268dd64784b..a990c552e7a7 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.42.1-SNAPSHOT + 2.42.1 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.42.1-SNAPSHOT + 2.42.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 74de39e9b198..5a05da09147f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.42.1-SNAPSHOT + 2.42.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.42.1-SNAPSHOT + 2.42.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 52b90fa7e72f..4ef47a01182d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.42.1-SNAPSHOT + 2.42.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.42.1-SNAPSHOT + 2.42.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9334e0cb421e..c172ebc2d8e2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.42.1-SNAPSHOT + 2.42.1 diff --git a/versions.txt b/versions.txt index c1fafa320086..8baf376f3123 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.42.0:2.42.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.42.1:2.42.1 \ No newline at end of file From f00977ccf60227bf1415795da5b6e0a208f21b2c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 28 Aug 2024 16:00:44 +0200 Subject: [PATCH 2967/3441] deps: update actions/upload-artifact action to v4.3.5 (#3456) From e1c6e92813c739fcd861e0622413b74c638cb547 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 28 Aug 2024 17:59:00 +0200 Subject: [PATCH 2968/3441] deps: update actions/upload-artifact action to v4.3.5 (#3462) From 95ac790f46cd063d45ce90cad49c8bdeef22f981 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 28 Aug 2024 20:46:49 +0200 Subject: [PATCH 2969/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.42.1 (#3461) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.42.1 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 10 +++++----- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 030bed3271ab..abd52c9d7573 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.42.0 + 2.42.1 ``` @@ -53,20 +53,20 @@ If you are using Maven without the BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies: ```Groovy -implementation platform('com.google.cloud:libraries-bom:26.44.0') +implementation platform('com.google.cloud:libraries-bom:26.45.0') implementation 'com.google.cloud:google-cloud-bigquery' ``` If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.42.0' +implementation 'com.google.cloud:google-cloud-bigquery:2.42.1' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.42.0" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.42.1" ``` @@ -352,7 +352,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.42.0 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.42.1 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d285e01cf83f..55d2b7b480fd 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.42.0 + 2.42.1 From cd82235475310cacf1f607a412418be97c83559f Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 29 Aug 2024 15:26:46 -0400 Subject: [PATCH 2970/3441] =?UTF-8?q?fix:=20executeSelect=20now=20use=20pr?= =?UTF-8?q?ovided=20credentials=20instead=20of=20GOOGLE=5FAPP=E2=80=A6=20(?= =?UTF-8?q?#3465)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: executeSelect now use provided credentials instead of GOOGLE_APPLICATION_CREDENTIALS * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .../google/cloud/bigquery/ConnectionImpl.java | 9 +++- .../cloud/bigquery/it/ITBigQueryTest.java | 51 +++++++++++++++++++ 2 files changed, 59 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index 413243396ef3..1f08bf4eb579 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -21,6 +21,7 @@ import com.google.api.core.BetaApi; import com.google.api.core.InternalApi; +import com.google.api.gax.core.FixedCredentialsProvider; import com.google.api.services.bigquery.model.GetQueryResultsResponse; import com.google.api.services.bigquery.model.JobConfigurationQuery; import com.google.api.services.bigquery.model.QueryParameter; @@ -35,6 +36,7 @@ import com.google.cloud.bigquery.storage.v1.ArrowRecordBatch; import com.google.cloud.bigquery.storage.v1.ArrowSchema; import com.google.cloud.bigquery.storage.v1.BigQueryReadClient; +import com.google.cloud.bigquery.storage.v1.BigQueryReadSettings; import com.google.cloud.bigquery.storage.v1.CreateReadSessionRequest; import com.google.cloud.bigquery.storage.v1.DataFormat; import com.google.cloud.bigquery.storage.v1.ReadRowsRequest; @@ -955,7 +957,12 @@ BigQueryResult highThroughPutRead( try { if (bqReadClient == null) { // if the read client isn't already initialized. Not thread safe. - bqReadClient = BigQueryReadClient.create(); + BigQueryReadSettings settings = + BigQueryReadSettings.newBuilder() + .setCredentialsProvider( + FixedCredentialsProvider.create(bigQueryOptions.getCredentials())) + .build(); + bqReadClient = BigQueryReadClient.create(settings); } String parent = String.format("projects/%s", destinationTable.getProject()); String srcTable = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 63265d58a393..9f0735094939 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3249,6 +3249,57 @@ public void testExecuteSelectDefaultConnectionSettings() throws SQLException { assertEquals(42, bigQueryResult.getTotalRows()); } + @Test + public void testExecuteSelectWithCredentials() throws SQLException { + // This test validate that executeSelect uses the same credential provided by the BigQuery + // object used to create the Connection client. + // This is done the following scenarios: + // 1. Validate that setting a valid credential executes the query. + // 2. Validate that setting an invalid credential causes failure. + + // Scenario 1. + // Create a new bigQuery object but explicitly set the credentials. + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); + BigQueryOptions bigQueryOptions = + bigqueryHelper + .getOptions() + .toBuilder() + .setCredentials(bigquery.getOptions().getCredentials()) + .build(); + BigQuery bigQueryGoodCredentials = bigQueryOptions.getService(); + + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setJobTimeoutMs(10L) // Force non-fast query to use BigQueryReadClient. + .setDefaultDataset(DatasetId.of(DATASET)) + .build(); + Connection connectionGoodCredentials = + bigQueryGoodCredentials.createConnection(connectionSettings); + String query = + "SELECT * FROM " + + TABLE_ID_LARGE.getTable(); // Large query result is needed to use BigQueryReadClient. + BigQueryResult bigQueryResult = connectionGoodCredentials.executeSelect(query); + assertEquals(313348, bigQueryResult.getTotalRows()); + + // Scenario 2. + // Create a new bigQuery object but explicitly an invalid credential. + BigQueryOptions bigQueryOptionsBadCredentials = + bigqueryHelper + .getOptions() + .toBuilder() + .setCredentials(loadCredentials(FAKE_JSON_CRED_WITH_GOOGLE_DOMAIN)) + .build(); + BigQuery bigQueryBadCredentials = bigQueryOptionsBadCredentials.getService(); + Connection connectionBadCredentials = + bigQueryBadCredentials.createConnection(connectionSettings); + try { + connectionBadCredentials.executeSelect(query); + fail(); // this line should not be reached + } catch (BigQuerySQLException e) { + assertNotNull(e); + } + } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testQueryTimeStamp() throws InterruptedException { From fd67f50edbf7c7dd2502fede503d337d99838cc7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 29 Aug 2024 16:27:18 -0400 Subject: [PATCH 2971/3441] chore(main): release 2.42.2-SNAPSHOT (#3458) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 67a787c31a2f..20fa1f9f8409 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.42.1 + 2.42.2-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index a990c552e7a7..dc197288ee7b 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.42.1 + 2.42.2-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.42.1 + 2.42.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5a05da09147f..050ee9abc513 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.42.1 + 2.42.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.42.1 + 2.42.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4ef47a01182d..80c419b2038a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.42.1 + 2.42.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.42.1 + 2.42.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c172ebc2d8e2..b434849cde66 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.42.1 + 2.42.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 8baf376f3123..a4794d6a5181 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.42.1:2.42.1 \ No newline at end of file +google-cloud-bigquery:2.42.1:2.42.2-SNAPSHOT \ No newline at end of file From 2aeb44d8b2ff5fa264cb14a8fc31e9494d77cb6b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 29 Aug 2024 22:29:12 +0200 Subject: [PATCH 2972/3441] deps: update github/codeql-action action to v2.26.6 (#3464) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index f8bc8f3c3a72..3a8c107df9c7 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@e8b34a2aaa1d35eab0b758128337086bb22bc6bf # v2.26.5 + uses: github/codeql-action/upload-sarif@be8b74c09c1778bcdbea38e1a45efea2cb73e18c # v2.26.6 with: sarif_file: results.sarif From ba91227b972acb1d0796d5a9470ba790dfb8d5b0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 29 Aug 2024 22:50:22 +0200 Subject: [PATCH 2973/3441] deps: update actions/upload-artifact action to v4.3.6 (#3463) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/upload-artifact action to v4.3.5 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot From e46454b28ad737905405f3ec94ccd89a8d2dfea7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 29 Aug 2024 17:34:41 -0400 Subject: [PATCH 2974/3441] chore(main): release 2.42.2 (#3466) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 15 +++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 24 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9feeb729091f..977d0fd38671 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## [2.42.2](https://github.com/googleapis/java-bigquery/compare/v2.42.1...v2.42.2) (2024-08-29) + + +### Bug Fixes + +* ExecuteSelect now use provided credentials instead of GOOGLE_APP… ([#3465](https://github.com/googleapis/java-bigquery/issues/3465)) ([cd82235](https://github.com/googleapis/java-bigquery/commit/cd82235475310cacf1f607a412418be97c83559f)) + + +### Dependencies + +* Update actions/upload-artifact action to v4.3.5 ([#3456](https://github.com/googleapis/java-bigquery/issues/3456)) ([f00977c](https://github.com/googleapis/java-bigquery/commit/f00977ccf60227bf1415795da5b6e0a208f21b2c)) +* Update actions/upload-artifact action to v4.3.5 ([#3462](https://github.com/googleapis/java-bigquery/issues/3462)) ([e1c6e92](https://github.com/googleapis/java-bigquery/commit/e1c6e92813c739fcd861e0622413b74c638cb547)) +* Update actions/upload-artifact action to v4.3.6 ([#3463](https://github.com/googleapis/java-bigquery/issues/3463)) ([ba91227](https://github.com/googleapis/java-bigquery/commit/ba91227b972acb1d0796d5a9470ba790dfb8d5b0)) +* Update github/codeql-action action to v2.26.6 ([#3464](https://github.com/googleapis/java-bigquery/issues/3464)) ([2aeb44d](https://github.com/googleapis/java-bigquery/commit/2aeb44d8b2ff5fa264cb14a8fc31e9494d77cb6b)) + ## [2.42.1](https://github.com/googleapis/java-bigquery/compare/v2.42.0...v2.42.1) (2024-08-27) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 20fa1f9f8409..2a2c4822a1ff 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.42.2-SNAPSHOT + 2.42.2 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index dc197288ee7b..d1cb43ce5eee 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.42.2-SNAPSHOT + 2.42.2 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.42.2-SNAPSHOT + 2.42.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 050ee9abc513..6bdcea156312 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.42.2-SNAPSHOT + 2.42.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.42.2-SNAPSHOT + 2.42.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 80c419b2038a..c7e8820185cd 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.42.2-SNAPSHOT + 2.42.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.42.2-SNAPSHOT + 2.42.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b434849cde66..16454c42aebb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.42.2-SNAPSHOT + 2.42.2 diff --git a/versions.txt b/versions.txt index a4794d6a5181..c3a664ab6b3c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.42.1:2.42.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.42.2:2.42.2 \ No newline at end of file From 7acec7726684016a1d3949b22523053f6c16696d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 5 Sep 2024 13:53:16 -0400 Subject: [PATCH 2975/3441] chore(main): release 2.42.3-SNAPSHOT (#3468) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2a2c4822a1ff..75d36852c19c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.42.2 + 2.42.3-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index d1cb43ce5eee..07d77a26d3a8 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.42.2 + 2.42.3-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.42.2 + 2.42.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6bdcea156312..98624a69ca6f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.42.2 + 2.42.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.42.2 + 2.42.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index c7e8820185cd..cf9247eb865b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.42.2 + 2.42.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.42.2 + 2.42.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 16454c42aebb..48c34d452610 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.42.2 + 2.42.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index c3a664ab6b3c..151c1a8c4d38 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.42.2:2.42.2 \ No newline at end of file +google-cloud-bigquery:2.42.2:2.42.3-SNAPSHOT \ No newline at end of file From 08b28c510a2280119a03da3caa385ec31e0c944c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 6 Sep 2024 20:32:11 +0200 Subject: [PATCH 2976/3441] deps: update actions/upload-artifact action to v4.4.0 (#3467) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: update actions/upload-artifact action to v4.4.0 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- .github/workflows/scorecard.yml | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 3a8c107df9c7..fe9c5506fea5 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@89ef406dd8d7e03cfd12d9e0a4a378f454709029 # v4.3.5 + uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 with: name: SARIF file path: results.sarif diff --git a/README.md b/README.md index abd52c9d7573..f9d10e2862cf 100644 --- a/README.md +++ b/README.md @@ -60,13 +60,13 @@ implementation 'com.google.cloud:google-cloud-bigquery' If you are using Gradle without BOM, add this to your dependencies: ```Groovy -implementation 'com.google.cloud:google-cloud-bigquery:2.42.1' +implementation 'com.google.cloud:google-cloud-bigquery:2.42.2' ``` If you are using SBT, add this to your dependencies: ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.42.1" +libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "2.42.2" ``` @@ -352,7 +352,7 @@ Java is a registered trademark of Oracle and/or its affiliates. [kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg -[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.42.1 +[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.42.2 [authentication]: https://github.com/googleapis/google-cloud-java#authentication [auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes [predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles From d63107d69d8b4298e200f64e0fd4ccd33e3e0b63 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Sep 2024 13:54:46 +0200 Subject: [PATCH 2977/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.42.2 (#3469) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.42.2 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --------- Co-authored-by: Owl Bot --- README.md | 2 +- samples/install-without-bom/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f9d10e2862cf..42b0b9f7e454 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-bigquery - 2.42.1 + 2.42.2 ``` diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 55d2b7b480fd..16cee0a111fd 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.42.1 + 2.42.2 From fa9ac5d73ec4f21ab7d12949e413b4ee9d11aa6d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 12 Sep 2024 18:38:42 +0200 Subject: [PATCH 2978/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.35.0 (#3472) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index dffbc2f7013f..afb216fe9804 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.34.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.35.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 92ffa46f7589..2cc9221ca0de 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.34.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.35.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index c3ebb3c15536..2148ec30e618 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.34.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.35.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index e7ddf639b53e..ac21121c9a30 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.34.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.35.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index e211e47fc692..85ab5c49b1ee 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.34.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.35.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 07d77a26d3a8..8cc35859191a 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.34.0 + 3.35.0 diff --git a/pom.xml b/pom.xml index cf9247eb865b..626c97afb0ec 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.34.0 + 3.35.0 From a72603d15897bc36a73c40b2b4e9de7eaae170f4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 12 Sep 2024 21:22:58 +0200 Subject: [PATCH 2979/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.9.1 (#3473) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 626c97afb0ec..037d2fa2ec2c 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.9.0 + 3.9.1 pom import From 8101e98b351eb8f89c0ec83a2b4b92b238d55a3d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 12 Sep 2024 15:53:38 -0400 Subject: [PATCH 2980/3441] chore(main): release 2.42.3 (#3470) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 17 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 977d0fd38671..68f892616601 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.42.3](https://github.com/googleapis/java-bigquery/compare/v2.42.2...v2.42.3) (2024-09-12) + + +### Dependencies + +* Update actions/upload-artifact action to v4.4.0 ([#3467](https://github.com/googleapis/java-bigquery/issues/3467)) ([08b28c5](https://github.com/googleapis/java-bigquery/commit/08b28c510a2280119a03da3caa385ec31e0c944c)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.35.0 ([#3472](https://github.com/googleapis/java-bigquery/issues/3472)) ([fa9ac5d](https://github.com/googleapis/java-bigquery/commit/fa9ac5d73ec4f21ab7d12949e413b4ee9d11aa6d)) + ## [2.42.2](https://github.com/googleapis/java-bigquery/compare/v2.42.1...v2.42.2) (2024-08-29) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 75d36852c19c..bb84ee9242d8 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.42.3-SNAPSHOT + 2.42.3 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 8cc35859191a..1ce80558e817 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.42.3-SNAPSHOT + 2.42.3 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.42.3-SNAPSHOT + 2.42.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 98624a69ca6f..35c15c8d2363 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.42.3-SNAPSHOT + 2.42.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.42.3-SNAPSHOT + 2.42.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 037d2fa2ec2c..e2cfe82786c9 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.42.3-SNAPSHOT + 2.42.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.42.3-SNAPSHOT + 2.42.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 48c34d452610..1653ac85aaf0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.42.3-SNAPSHOT + 2.42.3 diff --git a/versions.txt b/versions.txt index 151c1a8c4d38..608a6697223b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.42.2:2.42.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.42.3:2.42.3 \ No newline at end of file From 83bd7e410dd089c31c1689a6e586533964da4972 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 13 Sep 2024 11:19:36 -0400 Subject: [PATCH 2981/3441] chore(main): release 2.42.4-SNAPSHOT (#3477) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index bb84ee9242d8..f72121d683fb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.42.3 + 2.42.4-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 1ce80558e817..36c1f386d8ff 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.42.3 + 2.42.4-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.42.3 + 2.42.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 35c15c8d2363..38a28018e1d1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.42.3 + 2.42.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.42.3 + 2.42.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e2cfe82786c9..e066c9c5824d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.42.3 + 2.42.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.42.3 + 2.42.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1653ac85aaf0..5b62bd0f7e69 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.42.3 + 2.42.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 608a6697223b..4e535f9d061c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.42.3:2.42.3 \ No newline at end of file +google-cloud-bigquery:2.42.3:2.42.4-SNAPSHOT \ No newline at end of file From 9a7dcaa34b80cebaec07056770202de17edbded0 Mon Sep 17 00:00:00 2001 From: Joe Wang <106995533+JoeWang1127@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:51:31 +0000 Subject: [PATCH 2982/3441] chore: remove owlbot postprocessor check (#3475) --- .github/sync-repo-settings.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 2027cd1a0ff1..fc078dbe3f11 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -15,7 +15,6 @@ branchProtectionRules: - units (11) - 'Kokoro - Test: Integration' - cla/google - - OwlBot Post Processor - javadoc - pattern: 1.127.12-sp isAdminEnforced: true @@ -61,7 +60,6 @@ branchProtectionRules: - units (11) - 'Kokoro - Test: Integration' - cla/google - - OwlBot Post Processor - pattern: 2.10.x isAdminEnforced: true requiredApprovingReviewCount: 1 @@ -76,7 +74,6 @@ branchProtectionRules: - units (11) - 'Kokoro - Test: Integration' - cla/google - - OwlBot Post Processor - pattern: 2.19.x isAdminEnforced: true requiredApprovingReviewCount: 1 @@ -91,7 +88,6 @@ branchProtectionRules: - units (11) - 'Kokoro - Test: Integration' - cla/google - - OwlBot Post Processor - pattern: 2.35.x isAdminEnforced: true requiredApprovingReviewCount: 1 @@ -105,7 +101,6 @@ branchProtectionRules: - units (11) - 'Kokoro - Test: Integration' - cla/google - - OwlBot Post Processor - javadoc - pattern: 2.40.x isAdminEnforced: true @@ -120,7 +115,6 @@ branchProtectionRules: - units (11) - 'Kokoro - Test: Integration' - cla/google - - OwlBot Post Processor - javadoc permissionRules: - team: api-bigquery From 292f39534a8895705f85e936689051ee66903419 Mon Sep 17 00:00:00 2001 From: Joe Wang <106995533+JoeWang1127@users.noreply.github.com> Date: Mon, 16 Sep 2024 15:51:47 +0000 Subject: [PATCH 2983/3441] chore: disable owlbot (#3476) --- .github/.OwlBot.lock.yaml | 17 ------- .github/.OwlBot.yaml | 16 ------ .github/generated-files-bot.yml | 12 ----- codecov.yaml | 7 --- owlbot.py | 30 ----------- synth.metadata | 90 --------------------------------- 6 files changed, 172 deletions(-) delete mode 100644 .github/.OwlBot.lock.yaml delete mode 100644 .github/.OwlBot.yaml delete mode 100644 .github/generated-files-bot.yml delete mode 100644 codecov.yaml delete mode 100644 owlbot.py delete mode 100644 synth.metadata diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml deleted file mode 100644 index 359fe71c1964..000000000000 --- a/.github/.OwlBot.lock.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright 2024 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -docker: - image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:72f0d373307d128b2cb720c5cb4d90b31f0e86529dd138c632710ae0c69efae3 -# created: 2024-06-05T18:32:21.724930324Z diff --git a/.github/.OwlBot.yaml b/.github/.OwlBot.yaml deleted file mode 100644 index 5d9a9d8b5607..000000000000 --- a/.github/.OwlBot.yaml +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright 2021 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -docker: - image: "gcr.io/cloud-devrel-public-resources/owlbot-java:latest" diff --git a/.github/generated-files-bot.yml b/.github/generated-files-bot.yml deleted file mode 100644 index c644a24e1129..000000000000 --- a/.github/generated-files-bot.yml +++ /dev/null @@ -1,12 +0,0 @@ -externalManifests: -- type: json - file: 'synth.metadata' - jsonpath: '$.generatedFiles[*]' -- type: json - file: '.github/readme/synth.metadata/synth.metadata' - jsonpath: '$.generatedFiles[*]' -ignoreAuthors: -- 'renovate-bot' -- 'yoshi-automation' -- 'release-please[bot]' -- 'gcf-owl-bot[bot]' diff --git a/codecov.yaml b/codecov.yaml deleted file mode 100644 index c00182958c09..000000000000 --- a/codecov.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -codecov: - ci: - - source.cloud.google.com -coverage: - round: down - range: "50...100" \ No newline at end of file diff --git a/owlbot.py b/owlbot.py deleted file mode 100644 index a2540ce52e8d..000000000000 --- a/owlbot.py +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -"""This script is used to synthesize generated parts of this library.""" - -import synthtool.languages.java as java - -java.common_templates(excludes=[ - '.kokoro/nightly/samples.cfg', - '.kokoro/nightly/integration.cfg', - '.kokoro/presubmit/samples.cfg', - '.kokoro/presubmit/graalvm-native.cfg', - '.kokoro/presubmit/graalvm-native-17.cfg', - 'codecov.yaml', - 'renovate.json', - '.kokoro/build.sh' - '.kokoro/requirements.in', - '.kokoro/requirements.txt' -]) \ No newline at end of file diff --git a/synth.metadata b/synth.metadata deleted file mode 100644 index db25ea1e360b..000000000000 --- a/synth.metadata +++ /dev/null @@ -1,90 +0,0 @@ -{ - "sources": [ - { - "git": { - "name": ".", - "remote": "https://github.com/googleapis/java-bigquery.git", - "sha": "611689c0bd72c789e7e1adf9451e8abfcd143983" - } - }, - { - "git": { - "name": "synthtool", - "remote": "https://github.com/googleapis/synthtool.git", - "sha": "396d9b84a1e93880f5bf88b59ecd38a0a6dffc5e" - } - } - ], - "generatedFiles": [ - ".github/CODEOWNERS", - ".github/ISSUE_TEMPLATE/bug_report.md", - ".github/ISSUE_TEMPLATE/feature_request.md", - ".github/ISSUE_TEMPLATE/support_request.md", - ".github/PULL_REQUEST_TEMPLATE.md", - ".github/blunderbuss.yml", - ".github/generated-files-bot.yml", - ".github/release-please.yml", - ".github/release-trigger.yml", - ".github/snippet-bot.yml", - ".github/sync-repo-settings.yaml", - ".github/trusted-contribution.yml", - ".github/workflows/approve-readme.yaml", - ".github/workflows/auto-release.yaml", - ".github/workflows/ci.yaml", - ".github/workflows/samples.yaml", - ".kokoro/build.bat", - ".kokoro/build.sh", - ".kokoro/coerce_logs.sh", - ".kokoro/common.cfg", - ".kokoro/common.sh", - ".kokoro/continuous/common.cfg", - ".kokoro/continuous/java8.cfg", - ".kokoro/nightly/common.cfg", - ".kokoro/nightly/integration.cfg", - ".kokoro/nightly/java11.cfg", - ".kokoro/nightly/java7.cfg", - ".kokoro/nightly/java8-osx.cfg", - ".kokoro/nightly/java8-win.cfg", - ".kokoro/nightly/java8.cfg", - ".kokoro/populate-secrets.sh", - ".kokoro/presubmit/clirr.cfg", - ".kokoro/presubmit/common.cfg", - ".kokoro/presubmit/dependencies.cfg", - ".kokoro/presubmit/integration.cfg", - ".kokoro/presubmit/java11.cfg", - ".kokoro/presubmit/java7.cfg", - ".kokoro/presubmit/java8-osx.cfg", - ".kokoro/presubmit/java8-win.cfg", - ".kokoro/presubmit/java8.cfg", - ".kokoro/presubmit/linkage-monitor.cfg", - ".kokoro/presubmit/lint.cfg", - ".kokoro/presubmit/samples.cfg", - ".kokoro/readme.sh", - ".kokoro/release/bump_snapshot.cfg", - ".kokoro/release/common.cfg", - ".kokoro/release/common.sh", - ".kokoro/release/drop.cfg", - ".kokoro/release/drop.sh", - ".kokoro/release/promote.cfg", - ".kokoro/release/promote.sh", - ".kokoro/release/publish_javadoc.cfg", - ".kokoro/release/publish_javadoc.sh", - ".kokoro/release/publish_javadoc11.cfg", - ".kokoro/release/publish_javadoc11.sh", - ".kokoro/release/snapshot.cfg", - ".kokoro/release/snapshot.sh", - ".kokoro/release/stage.cfg", - ".kokoro/release/stage.sh", - ".kokoro/trampoline.sh", - "CODE_OF_CONDUCT.md", - "CONTRIBUTING.md", - "LICENSE", - "SECURITY.md", - "java.header", - "license-checks.xml", - "samples/install-without-bom/pom.xml", - "samples/pom.xml", - "samples/snapshot/pom.xml", - "samples/snippets/pom.xml" - ] -} \ No newline at end of file From d423dc0f731e09eec5eb964019d15d84029ee210 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 16 Sep 2024 21:17:50 +0200 Subject: [PATCH 2984/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.51.0 (#3479) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index e066c9c5824d..a6523d233f54 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.50.0 + 2.51.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 16cee0a111fd..052a4841f6b1 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.50.0 + 2.51.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5b62bd0f7e69..60f160b1b56c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.50.0 + 2.51.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c4c72ca9056c..04a499ab9296 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.50.0 + 2.51.0 test From 6e6ee91b626766d172b511bd962c7ede11242716 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 16 Sep 2024 21:38:14 +0200 Subject: [PATCH 2985/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.42.3 (#3478) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 052a4841f6b1..a82b15a637b5 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.42.2 + 2.42.3 From 8908cfd82332d09997a5538113fbe8e382f52c4a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 16 Sep 2024 21:38:29 +0200 Subject: [PATCH 2986/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.55.0 (#3481) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a6523d233f54..a8fa231540ba 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.54.0 + 1.55.0 pom import From a6508a29f81b6729e41e827096e90f1d1bf07f4d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 16 Sep 2024 21:39:24 +0200 Subject: [PATCH 2987/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240905-2.0.0 (#3483) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a8fa231540ba..2eea36e9fc5f 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240815-2.0.0 + v2-rev20240905-2.0.0 From e2c94b601781ebe236c25cd3f40059e7543ba387 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 16 Sep 2024 21:55:59 +0200 Subject: [PATCH 2988/3441] deps: update github/codeql-action action to v2.26.7 (#3482) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index fe9c5506fea5..d5d39e673573 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@be8b74c09c1778bcdbea38e1a45efea2cb73e18c # v2.26.6 + uses: github/codeql-action/upload-sarif@2fe1a3da42c8b4f96ced91264bda7407d8c65539 # v2.26.7 with: sarif_file: results.sarif From a54329cae956635b5818ea61f1ef96d1f446f681 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Sep 2024 19:53:50 +0200 Subject: [PATCH 2989/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.44.0 (#3485) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a82b15a637b5..d0796dd0cb63 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.43.0 + 2.44.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 60f160b1b56c..df13e79d49aa 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.43.0 + 2.44.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 04a499ab9296..153bbfba102f 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.43.0 + 2.44.0 test From 986b036a022c8f68db59dd9d5944f3b724777533 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Sep 2024 19:54:30 +0200 Subject: [PATCH 2990/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.51.0 (#3480) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2eea36e9fc5f..8a0439d29fc3 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.50.0 + 2.51.0 test From bb2cd471fda5a2218580c41839c09edc5fa6b483 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Sep 2024 19:54:52 +0200 Subject: [PATCH 2991/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.43.0 (#3486) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8a0439d29fc3..bbe7ebcdd4c0 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.42.0 + 2.43.0 test From a6d75de60b822dcc5433afab55b5d392e6a6caf5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 23 Sep 2024 17:16:42 +0200 Subject: [PATCH 2992/3441] deps: update github/codeql-action action to v2.26.8 (#3488) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index d5d39e673573..9e127de3989e 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@2fe1a3da42c8b4f96ced91264bda7407d8c65539 # v2.26.7 + uses: github/codeql-action/upload-sarif@422b177bb3935638109d3175d95e4dbf97066060 # v2.26.8 with: sarif_file: results.sarif From a72c5825c93f359d295fb78e0e541752f535876b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 23 Sep 2024 22:02:23 +0200 Subject: [PATCH 2993/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.36.0 (#3490) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index afb216fe9804..de55aece77f2 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.35.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.36.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 2cc9221ca0de..e265be4865f6 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.35.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.36.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 2148ec30e618..672b4e5e6fbf 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.35.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.36.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index ac21121c9a30..64ece72e5166 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.35.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.36.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 85ab5c49b1ee..bf7743f744f8 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.35.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.36.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 36c1f386d8ff..52515bd428cf 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.35.0 + 3.36.0 diff --git a/pom.xml b/pom.xml index bbe7ebcdd4c0..e9e30a1ca984 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.35.0 + 3.36.0 From 2dc1956f4159952b676ad6063eedfa2829218aa6 Mon Sep 17 00:00:00 2001 From: shollyman Date: Tue, 24 Sep 2024 10:34:39 -0700 Subject: [PATCH 2994/3441] testing: ignore testExecuteSelectWithCredentials (#3493) * testing: ignore flaky test for the time being Related: https://github.com/googleapis/java-bigquery/issues/3471 --- .../test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 9f0735094939..509933c7e541 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -191,6 +191,7 @@ import java.util.logging.Logger; import org.junit.AfterClass; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.Timeout; @@ -3250,6 +3251,7 @@ public void testExecuteSelectDefaultConnectionSettings() throws SQLException { } @Test + @Ignore("https://github.com/googleapis/java-bigquery/issues/3471") public void testExecuteSelectWithCredentials() throws SQLException { // This test validate that executeSelect uses the same credential provided by the BigQuery // object used to create the Connection client. From 815404319a43a8a14d1d8aaa8ab22dd924b48175 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Sep 2024 17:29:03 +0200 Subject: [PATCH 2995/3441] deps: update github/codeql-action action to v2.26.9 (#3494) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 9e127de3989e..ee3717445f91 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@422b177bb3935638109d3175d95e4dbf97066060 # v2.26.8 + uses: github/codeql-action/upload-sarif@d97ba04b39135f37e9d60c84a6995bb18b7ac328 # v2.26.9 with: sarif_file: results.sarif From 8f2e5c542760ecd7c217c36c80cb3b5aebee6a73 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 26 Sep 2024 16:40:23 +0200 Subject: [PATCH 2996/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.36.1 (#3496) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index de55aece77f2..ed67dafd7d9b 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.36.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.36.1 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index e265be4865f6..2c30e6a61028 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.36.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.36.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 672b4e5e6fbf..a916f444753c 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.36.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.36.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 64ece72e5166..bd1939de4ff2 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.36.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.36.1"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index bf7743f744f8..96a8059b9b9b 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.36.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.36.1" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 52515bd428cf..8a7365f77ef8 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.36.0 + 3.36.1 diff --git a/pom.xml b/pom.xml index e9e30a1ca984..71687d6a5b1c 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.36.0 + 3.36.1 From 4930093a6de17db2cf32d15d81515056f3cf194d Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:08:29 -0400 Subject: [PATCH 2997/3441] test: fix flaky IT testExecuteSelectWithCredentials (#3497) Use priority instead of job timeout to force non-fast query in executeSelect. --- .../java/com/google/cloud/bigquery/it/ITBigQueryTest.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 509933c7e541..15fe5eb8cf64 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -109,6 +109,7 @@ import com.google.cloud.bigquery.PolicyTags; import com.google.cloud.bigquery.PrimaryKey; import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryJobConfiguration.Priority; import com.google.cloud.bigquery.QueryParameterValue; import com.google.cloud.bigquery.Range; import com.google.cloud.bigquery.RangePartitioning; @@ -191,7 +192,6 @@ import java.util.logging.Logger; import org.junit.AfterClass; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.rules.Timeout; @@ -3251,7 +3251,6 @@ public void testExecuteSelectDefaultConnectionSettings() throws SQLException { } @Test - @Ignore("https://github.com/googleapis/java-bigquery/issues/3471") public void testExecuteSelectWithCredentials() throws SQLException { // This test validate that executeSelect uses the same credential provided by the BigQuery // object used to create the Connection client. @@ -3272,7 +3271,7 @@ public void testExecuteSelectWithCredentials() throws SQLException { ConnectionSettings connectionSettings = ConnectionSettings.newBuilder() - .setJobTimeoutMs(10L) // Force non-fast query to use BigQueryReadClient. + .setPriority(Priority.INTERACTIVE) // Force non-fast query to use BigQueryReadClient. .setDefaultDataset(DatasetId.of(DATASET)) .build(); Connection connectionGoodCredentials = From b57fefbdfee7b8dacdb12502d1df72af21323b51 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 26 Sep 2024 22:28:28 +0200 Subject: [PATCH 2998/3441] deps: update actions/checkout action to v4.2.0 (#3495) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index ee3717445f91..b8e4469d88f2 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: persist-credentials: false From 4f87adec6c010b572675f98b651f88d14323e2e2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 27 Sep 2024 15:02:04 +0200 Subject: [PATCH 2999/3441] deps: update dependency ubuntu to v24 (#3498) --- .github/workflows/renovate_config_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renovate_config_check.yaml b/.github/workflows/renovate_config_check.yaml index 7c5ec7865e11..36da117bc7b0 100644 --- a/.github/workflows/renovate_config_check.yaml +++ b/.github/workflows/renovate_config_check.yaml @@ -7,7 +7,7 @@ on: jobs: renovate_bot_config_validation: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout code From ca712948b1adfb26bb1f9ef2250be10fe45d3424 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Sep 2024 18:27:57 +0200 Subject: [PATCH 3000/3441] deps: update github/codeql-action action to v2.26.10 (#3506) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index b8e4469d88f2..1b947e7e214a 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@d97ba04b39135f37e9d60c84a6995bb18b7ac328 # v2.26.9 + uses: github/codeql-action/upload-sarif@85b07cf1e13dd512be7c27c37a33c5864c252fcc # v2.26.10 with: sarif_file: results.sarif From 40768cd85067e7e1eaa9ee7f6412f41ae7ecc771 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Sep 2024 18:28:13 +0200 Subject: [PATCH 3001/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.43.1 (#3500) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 71687d6a5b1c..0539a75f4d37 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.43.0 + 2.43.1 test From ba1ae3f58939341bff553921462cde5427120695 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Sep 2024 18:28:39 +0200 Subject: [PATCH 3002/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.44.1 (#3502) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index d0796dd0cb63..17d38604ccc0 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.44.0 + 2.44.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index df13e79d49aa..6d145a19fd42 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.44.0 + 2.44.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 153bbfba102f..558f3cb3f6fc 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.44.0 + 2.44.1 test From 5ce8c7cd8dd4ebcf88495470557d164b55f23b77 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Sep 2024 18:29:28 +0200 Subject: [PATCH 3003/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.53.0 (#3503) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 0539a75f4d37..db17f55c0594 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.51.0 + 2.53.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 17d38604ccc0..8d3d0e4d5d81 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.51.0 + 2.53.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6d145a19fd42..1c1fd01b1cb2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.51.0 + 2.53.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 558f3cb3f6fc..a0ea893ac505 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.51.0 + 2.53.0 test From 57ce9018448ebf4f09d3ecf9760054ebd117bc36 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Sep 2024 18:29:39 +0200 Subject: [PATCH 3004/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.53.0 (#3504) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index db17f55c0594..910254d4561a 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.51.0 + 2.53.0 test From 6e78f56d17bb0d30b361220c86b1c66f21e9bd48 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Sep 2024 18:29:50 +0200 Subject: [PATCH 3005/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.57.0 (#3505) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 910254d4561a..80a899ad2adc 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.55.0 + 1.57.0 pom import From f24b9596f68b450942eb2ff661d8f4f1dc73f045 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 30 Sep 2024 22:08:27 +0200 Subject: [PATCH 3006/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.9.2 (#3507) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 80a899ad2adc..faabfb08d778 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.9.1 + 3.9.2 pom import From a60d02513843fb9493ad1830a8b97789d7b5978c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 16:47:39 -0400 Subject: [PATCH 3007/3441] chore(main): release 2.42.4 (#3484) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 19 +++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 28 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 68f892616601..6215a14654ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## [2.42.4](https://github.com/googleapis/java-bigquery/compare/v2.42.3...v2.42.4) (2024-09-30) + + +### Dependencies + +* Update actions/checkout action to v4.2.0 ([#3495](https://github.com/googleapis/java-bigquery/issues/3495)) ([b57fefb](https://github.com/googleapis/java-bigquery/commit/b57fefbdfee7b8dacdb12502d1df72af21323b51)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.51.0 ([#3480](https://github.com/googleapis/java-bigquery/issues/3480)) ([986b036](https://github.com/googleapis/java-bigquery/commit/986b036a022c8f68db59dd9d5944f3b724777533)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.53.0 ([#3504](https://github.com/googleapis/java-bigquery/issues/3504)) ([57ce901](https://github.com/googleapis/java-bigquery/commit/57ce9018448ebf4f09d3ecf9760054ebd117bc36)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240905-2.0.0 ([#3483](https://github.com/googleapis/java-bigquery/issues/3483)) ([a6508a2](https://github.com/googleapis/java-bigquery/commit/a6508a29f81b6729e41e827096e90f1d1bf07f4d)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.55.0 ([#3481](https://github.com/googleapis/java-bigquery/issues/3481)) ([8908cfd](https://github.com/googleapis/java-bigquery/commit/8908cfd82332d09997a5538113fbe8e382f52c4a)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.57.0 ([#3505](https://github.com/googleapis/java-bigquery/issues/3505)) ([6e78f56](https://github.com/googleapis/java-bigquery/commit/6e78f56d17bb0d30b361220c86b1c66f21e9bd48)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.36.0 ([#3490](https://github.com/googleapis/java-bigquery/issues/3490)) ([a72c582](https://github.com/googleapis/java-bigquery/commit/a72c5825c93f359d295fb78e0e541752f535876b)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.36.1 ([#3496](https://github.com/googleapis/java-bigquery/issues/3496)) ([8f2e5c5](https://github.com/googleapis/java-bigquery/commit/8f2e5c542760ecd7c217c36c80cb3b5aebee6a73)) +* Update dependency ubuntu to v24 ([#3498](https://github.com/googleapis/java-bigquery/issues/3498)) ([4f87ade](https://github.com/googleapis/java-bigquery/commit/4f87adec6c010b572675f98b651f88d14323e2e2)) +* Update github/codeql-action action to v2.26.10 ([#3506](https://github.com/googleapis/java-bigquery/issues/3506)) ([ca71294](https://github.com/googleapis/java-bigquery/commit/ca712948b1adfb26bb1f9ef2250be10fe45d3424)) +* Update github/codeql-action action to v2.26.7 ([#3482](https://github.com/googleapis/java-bigquery/issues/3482)) ([e2c94b6](https://github.com/googleapis/java-bigquery/commit/e2c94b601781ebe236c25cd3f40059e7543ba387)) +* Update github/codeql-action action to v2.26.8 ([#3488](https://github.com/googleapis/java-bigquery/issues/3488)) ([a6d75de](https://github.com/googleapis/java-bigquery/commit/a6d75de60b822dcc5433afab55b5d392e6a6caf5)) +* Update github/codeql-action action to v2.26.9 ([#3494](https://github.com/googleapis/java-bigquery/issues/3494)) ([8154043](https://github.com/googleapis/java-bigquery/commit/815404319a43a8a14d1d8aaa8ab22dd924b48175)) + ## [2.42.3](https://github.com/googleapis/java-bigquery/compare/v2.42.2...v2.42.3) (2024-09-12) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index f72121d683fb..4d0539e0d1ba 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.42.4-SNAPSHOT + 2.42.4 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 8a7365f77ef8..a4bba7434e5b 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.42.4-SNAPSHOT + 2.42.4 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.42.4-SNAPSHOT + 2.42.4 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 38a28018e1d1..7d3a4ddc0c1b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.42.4-SNAPSHOT + 2.42.4 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.42.4-SNAPSHOT + 2.42.4 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index faabfb08d778..53e4b5b9a342 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.42.4-SNAPSHOT + 2.42.4 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.42.4-SNAPSHOT + 2.42.4 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1c1fd01b1cb2..be36735e9371 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.42.4-SNAPSHOT + 2.42.4 diff --git a/versions.txt b/versions.txt index 4e535f9d061c..5ab44bc1384b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.42.3:2.42.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.42.4:2.42.4 \ No newline at end of file From 4153057158169c37b7b9c5721c69f634c94f485c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 1 Oct 2024 16:02:35 +0200 Subject: [PATCH 3008/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.42.4 (#3509) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 8d3d0e4d5d81..2b950de1a281 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.42.3 + 2.42.4 From f1ebd5be5877a68f76efafc30e3b5b0763f343c5 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Tue, 1 Oct 2024 13:58:34 -0400 Subject: [PATCH 3009/3441] feat: add max staleness to ExternalTableDefinition (#3499) * feat: add max staleness TODO: Remove the manual testing anchors * test: add max staleness to ExternalTableDefinition * Format fix * Remove unintentional changes --- .../bigquery/ExternalTableDefinition.java | 36 +++++++++++++++++++ .../bigquery/ExternalTableDefinitionTest.java | 4 ++- .../cloud/bigquery/it/ITBigQueryTest.java | 6 +++- 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index 363f9507e1fb..5af3085e201c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -200,6 +200,20 @@ public Builder setMetadataCacheMode(String metadataCacheMode) { abstract Builder setMetadataCacheModeInner(String metadataCacheMode); + /** + * [Optional] Metadata Cache Mode for the table. Set this to enable caching of metadata from + * external data source. + * + * @see + * MaxStaleness + */ + public Builder setMaxStaleness(String maxStaleness) { + return setMaxStalenessInner(maxStaleness); + } + + abstract Builder setMaxStalenessInner(String maxStaleness); + /** Creates an {@code ExternalTableDefinition} object. */ @Override public abstract ExternalTableDefinition build(); @@ -305,6 +319,22 @@ public String getMetadataCacheMode() { @Nullable abstract String getMetadataCacheModeInner(); + /** + * Returns the maximum staleness of data that could be returned when the table is queried. + * Staleness encoded as a string encoding of sql IntervalValue type. + * + * @see + * MaxStaleness + */ + @Nullable + public String getMaxStaleness() { + return getMaxStalenessInner(); + } + + @Nullable + abstract String getMaxStalenessInner(); + /** * Returns the source format, and possibly some parsing options, of the external data. Supported * formats are {@code CSV} and {@code NEWLINE_DELIMITED_JSON}. @@ -351,6 +381,9 @@ public HivePartitioningOptions getHivePartitioningOptions() { com.google.api.services.bigquery.model.Table toPb() { Table tablePb = super.toPb(); tablePb.setExternalDataConfiguration(toExternalDataConfigurationPb()); + if (getMaxStaleness() != null) { + tablePb.setMaxStaleness(getMaxStaleness()); + } return tablePb; } @@ -616,6 +649,9 @@ static ExternalTableDefinition fromPb(Table tablePb) { if (externalDataConfiguration.getMetadataCacheMode() != null) { builder.setMetadataCacheMode(externalDataConfiguration.getMetadataCacheMode()); } + if (tablePb.getMaxStaleness() != null) { + builder.setMaxStaleness(tablePb.getMaxStaleness()); + } } return builder.build(); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index 2562e1763c5d..e6e7e0fcc64b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -59,8 +59,8 @@ public class ExternalTableDefinitionTest { .setSourceUriPrefix(SOURCE_URIS.get(0)) .build(); private static final String OBJECT_METADATA = "SIMPLE"; - private static final String METADATA_CACHE_MODE = "AUTOMATIC"; + private static final String MAX_STALENESS = "INTERVAL 15 MINUTE"; private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION = ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) .setFileSetSpecType("FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH") @@ -73,6 +73,7 @@ public class ExternalTableDefinitionTest { .setHivePartitioningOptions(HIVE_PARTITIONING_OPTIONS) .setObjectMetadata(OBJECT_METADATA) .setMetadataCacheMode(METADATA_CACHE_MODE) + .setMaxStaleness(MAX_STALENESS) .build(); private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION_AVRO = @@ -174,5 +175,6 @@ private void compareExternalTableDefinition( assertEquals(expected.getHivePartitioningOptions(), value.getHivePartitioningOptions()); assertEquals(expected.getObjectMetadata(), value.getObjectMetadata()); assertEquals(expected.getMetadataCacheMode(), value.getMetadataCacheMode()); + assertEquals(expected.getMaxStaleness(), value.getMaxStaleness()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 15fe5eb8cf64..b1cb8d84513a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -2111,9 +2111,13 @@ public void testCreateAndGetTableWithSelectedField() { public void testCreateExternalTable() throws InterruptedException { String tableName = "test_create_external_table"; TableId tableId = TableId.of(DATASET, tableName); + ExternalTableDefinition externalTableDefinition = ExternalTableDefinition.of( - "gs://" + BUCKET + "/" + JSON_LOAD_FILE, TABLE_SCHEMA, FormatOptions.json()); + "gs://" + BUCKET + "/" + JSON_LOAD_FILE, TABLE_SCHEMA, FormatOptions.json()) + .toBuilder() + .setMaxStaleness("INTERVAL 15 MINUTE") + .build(); TableInfo tableInfo = TableInfo.of(tableId, externalTableDefinition); Table createdTable = bigquery.create(tableInfo); assertNotNull(createdTable); From 69e70b08cc2e60dfd53e91c49d0644364f0f69f3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 15:02:32 -0400 Subject: [PATCH 3010/3441] chore(main): release 2.42.5-SNAPSHOT (#3508) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4d0539e0d1ba..d010c3951618 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.42.4 + 2.42.5-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index a4bba7434e5b..06a45b1a7037 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.42.4 + 2.42.5-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.42.4 + 2.42.5-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 7d3a4ddc0c1b..66da2ad6a404 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.42.4 + 2.42.5-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.42.4 + 2.42.5-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 53e4b5b9a342..e85182edd949 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.42.4 + 2.42.5-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.42.4 + 2.42.5-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index be36735e9371..063d739e451d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.42.4 + 2.42.5-SNAPSHOT diff --git a/versions.txt b/versions.txt index 5ab44bc1384b..021718836f8f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.42.4:2.42.4 \ No newline at end of file +google-cloud-bigquery:2.42.4:2.42.5-SNAPSHOT \ No newline at end of file From 5344e9bdd09f91236d54b2d54729e21e37d519e3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 20:26:58 -0400 Subject: [PATCH 3011/3441] chore(main): release 2.43.0 (#3511) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6215a14654ab..fb2cbc21b83f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.43.0](https://github.com/googleapis/java-bigquery/compare/v2.42.4...v2.43.0) (2024-10-01) + + +### Features + +* Add max staleness to ExternalTableDefinition ([#3499](https://github.com/googleapis/java-bigquery/issues/3499)) ([f1ebd5b](https://github.com/googleapis/java-bigquery/commit/f1ebd5be5877a68f76efafc30e3b5b0763f343c5)) + ## [2.42.4](https://github.com/googleapis/java-bigquery/compare/v2.42.3...v2.42.4) (2024-09-30) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index d010c3951618..ee61a32033e6 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.42.5-SNAPSHOT + 2.43.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 06a45b1a7037..51f0dd1c6d40 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.42.5-SNAPSHOT + 2.43.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.42.5-SNAPSHOT + 2.43.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 66da2ad6a404..6425692d9dfd 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.42.5-SNAPSHOT + 2.43.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.42.5-SNAPSHOT + 2.43.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e85182edd949..1caff5398e64 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.42.5-SNAPSHOT + 2.43.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.42.5-SNAPSHOT + 2.43.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 063d739e451d..14e69ed837f9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.42.5-SNAPSHOT + 2.43.0 diff --git a/versions.txt b/versions.txt index 021718836f8f..4f2cdbe2ac82 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.42.4:2.42.5-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.43.0:2.43.0 \ No newline at end of file From dd087e8491fd7343071c3a814ca1ae70d0efa232 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 3 Oct 2024 12:56:54 -0400 Subject: [PATCH 3012/3441] build: update samples/stylecheck to use java 11 to match new style guide as indicated in: https://github.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md#java-version (#3516) This fixes the samples/stylecheck in PR#3487 --- .github/workflows/samples.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/samples.yaml b/.github/workflows/samples.yaml index 03b2939567a9..f833b802256b 100644 --- a/.github/workflows/samples.yaml +++ b/.github/workflows/samples.yaml @@ -24,7 +24,7 @@ jobs: - uses: actions/setup-java@v4 with: distribution: temurin - java-version: 8 + java-version: 11 - name: Run checkstyle run: mvn -P lint --quiet --batch-mode checkstyle:check working-directory: samples/snippets From 447e0139c2812d12d9c74484faf66febe824040e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 3 Oct 2024 20:00:59 +0200 Subject: [PATCH 3013/3441] chore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.2.2 (#3487) --- samples/install-without-bom/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2b950de1a281..374a28e1d67c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.2.0 + 1.2.2 diff --git a/samples/pom.xml b/samples/pom.xml index b0ed2cf7baba..d493a5953d39 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -34,7 +34,7 @@ com.google.cloud.samples shared-configuration - 1.2.0 + 1.2.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 14e69ed837f9..9c9167883651 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -30,7 +30,7 @@ com.google.cloud.samples shared-configuration - 1.2.0 + 1.2.2 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a0ea893ac505..ca9df4b67e92 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -29,7 +29,7 @@ com.google.cloud.samples shared-configuration - 1.2.0 + 1.2.2 From b6b1baff30cbe78988594d98c4af3485e7d1b64c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 11:18:31 -0400 Subject: [PATCH 3014/3441] chore(main): release 2.43.1-SNAPSHOT (#3512) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ee61a32033e6..eb5a15e1b001 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.43.0 + 2.43.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 51f0dd1c6d40..94238c55fec6 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.43.0 + 2.43.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.43.0 + 2.43.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6425692d9dfd..6903f11ab5bc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.43.0 + 2.43.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.43.0 + 2.43.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1caff5398e64..7ee6f8b7185a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.43.0 + 2.43.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.43.0 + 2.43.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9c9167883651..77d12837e2cf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.43.0 + 2.43.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 4f2cdbe2ac82..d75ed7e2349b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.43.0:2.43.0 \ No newline at end of file +google-cloud-bigquery:2.43.0:2.43.1-SNAPSHOT \ No newline at end of file From 9fe382927ff4718252e22ac20c4e012f490e6b0e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 7 Oct 2024 17:19:23 +0200 Subject: [PATCH 3015/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20240919-2.0.0 (#3514) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7ee6f8b7185a..8e20db07dbbc 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240905-2.0.0 + v2-rev20240919-2.0.0 From c04a83d0ad6ed5be4b6f2623efbb8c94d3335edb Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 7 Oct 2024 17:21:42 +0200 Subject: [PATCH 3016/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.45.0 (#3515) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 374a28e1d67c..ce65338db700 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.44.1 + 2.45.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 77d12837e2cf..299443fb3c06 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.44.1 + 2.45.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index ca9df4b67e92..97033ca32982 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.44.1 + 2.45.0 test From ac736bb50bf4b2e629dcbfe7de90b846e07038e4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 7 Oct 2024 17:22:06 +0200 Subject: [PATCH 3017/3441] deps: update github/codeql-action action to v2.26.11 (#3517) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 1b947e7e214a..33899812d3aa 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@85b07cf1e13dd512be7c27c37a33c5864c252fcc # v2.26.10 + uses: github/codeql-action/upload-sarif@430e27ef200cf61455a15dd5b56e130c8227a563 # v2.26.11 with: sarif_file: results.sarif From 1f3da80dbfac58c7189aad3fe03b0476b5ce1da9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 7 Oct 2024 20:05:10 +0200 Subject: [PATCH 3018/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.43.0 (#3513) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ce65338db700..80ebad004617 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.42.4 + 2.43.0 From fdf8dc4b7cb4e26939da10002e47c810d71bad6c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 8 Oct 2024 16:53:49 +0200 Subject: [PATCH 3019/3441] deps: update github/codeql-action action to v2.26.12 (#3522) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 33899812d3aa..fdff8726e7e9 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@430e27ef200cf61455a15dd5b56e130c8227a563 # v2.26.11 + uses: github/codeql-action/upload-sarif@4d85deb8548d03be541760228f3fe9e6a4d5d27d # v2.26.12 with: sarif_file: results.sarif From ad8175af06d5308a9366f8109055d61c115a4852 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 8 Oct 2024 17:05:43 +0200 Subject: [PATCH 3020/3441] deps: update actions/checkout action to v4.2.1 (#3520) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index fdff8726e7e9..3fa267209146 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 + uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 with: persist-credentials: false From dc21975cc6f3597d8f789f12a58feaa5b9b94da0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 8 Oct 2024 17:06:33 +0200 Subject: [PATCH 3021/3441] deps: update actions/upload-artifact action to v4.4.1 (#3521) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 3fa267209146..eea48d1a6ea0 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0 + uses: actions/upload-artifact@604373da6381bf24206979c74d06a550515601b9 # v4.4.1 with: name: SARIF file path: results.sarif From bf4d37a15f13ada3cf0045b2d45355193d2c2f34 Mon Sep 17 00:00:00 2001 From: Min Zhu Date: Tue, 8 Oct 2024 20:41:06 -0400 Subject: [PATCH 3022/3441] chore(deps): update dependency sdk-platform-java-config and google-cloud-bigquery-bom (#3525) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.9.3 * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.37.0 --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 4 ++-- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index ed67dafd7d9b..ef7f25f5e6c8 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.36.1 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.37.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 2c30e6a61028..0b98d0a81d12 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.36.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.37.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index a916f444753c..c468a59f76c7 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.36.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.37.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index bd1939de4ff2..9d44e530421f 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.36.1"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.37.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 96a8059b9b9b..e6553bd6e418 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.36.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.37.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 94238c55fec6..911be9521949 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.36.1 + 3.37.0 diff --git a/pom.xml b/pom.xml index 8e20db07dbbc..2553bb940589 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.36.1 + 3.37.0 @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.9.2 + 3.9.3 pom import From a86202f654a63064ddadaee03e16cbe971271873 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 8 Oct 2024 21:14:28 -0400 Subject: [PATCH 3023/3441] chore(main): release 2.43.1 (#3519) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 21 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fb2cbc21b83f..aaf9551fee53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [2.43.1](https://github.com/googleapis/java-bigquery/compare/v2.43.0...v2.43.1) (2024-10-09) + + +### Dependencies + +* Update actions/checkout action to v4.2.1 ([#3520](https://github.com/googleapis/java-bigquery/issues/3520)) ([ad8175a](https://github.com/googleapis/java-bigquery/commit/ad8175af06d5308a9366f8109055d61c115a4852)) +* Update actions/upload-artifact action to v4.4.1 ([#3521](https://github.com/googleapis/java-bigquery/issues/3521)) ([dc21975](https://github.com/googleapis/java-bigquery/commit/dc21975cc6f3597d8f789f12a58feaa5b9b94da0)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20240919-2.0.0 ([#3514](https://github.com/googleapis/java-bigquery/issues/3514)) ([9fe3829](https://github.com/googleapis/java-bigquery/commit/9fe382927ff4718252e22ac20c4e012f490e6b0e)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.37.0 ([bf4d37a](https://github.com/googleapis/java-bigquery/commit/bf4d37a15f13ada3cf0045b2d45355193d2c2f34)) +* Update github/codeql-action action to v2.26.11 ([#3517](https://github.com/googleapis/java-bigquery/issues/3517)) ([ac736bb](https://github.com/googleapis/java-bigquery/commit/ac736bb50bf4b2e629dcbfe7de90b846e07038e4)) +* Update github/codeql-action action to v2.26.12 ([#3522](https://github.com/googleapis/java-bigquery/issues/3522)) ([fdf8dc4](https://github.com/googleapis/java-bigquery/commit/fdf8dc4b7cb4e26939da10002e47c810d71bad6c)) + ## [2.43.0](https://github.com/googleapis/java-bigquery/compare/v2.42.4...v2.43.0) (2024-10-01) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index eb5a15e1b001..080adb3e29c1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.43.1-SNAPSHOT + 2.43.1 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 911be9521949..33fef70f2306 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.43.1-SNAPSHOT + 2.43.1 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.43.1-SNAPSHOT + 2.43.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6903f11ab5bc..b3945628130e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.43.1-SNAPSHOT + 2.43.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.43.1-SNAPSHOT + 2.43.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2553bb940589..45acaae34638 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.43.1-SNAPSHOT + 2.43.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.43.1-SNAPSHOT + 2.43.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 299443fb3c06..2a0bd1db27fa 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.43.1-SNAPSHOT + 2.43.1 diff --git a/versions.txt b/versions.txt index d75ed7e2349b..3a4efcace5f6 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.43.0:2.43.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.43.1:2.43.1 \ No newline at end of file From bff393c4463ccccff6a2cd05385fc74150c1864c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 9 Oct 2024 15:27:50 +0200 Subject: [PATCH 3024/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.43.2 (#3526) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 45acaae34638..02529ba0a9c2 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.43.1 + 2.43.2 test From 776a5541cc94e8ffb1f5e5c6969ae06585571b45 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 9 Oct 2024 15:55:54 +0200 Subject: [PATCH 3025/3441] deps: update actions/upload-artifact action to v4.4.2 (#3524) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index eea48d1a6ea0..725beb86ff2b 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@604373da6381bf24206979c74d06a550515601b9 # v4.4.1 + uses: actions/upload-artifact@84480863f228bb9747b473957fcc9e309aa96097 # v4.4.2 with: name: SARIF file path: results.sarif From d95d0a4267be258378dac944a2472cfc14f3a517 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 9 Oct 2024 15:57:56 +0200 Subject: [PATCH 3026/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.43.1 (#3528) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 80ebad004617..3b733b41db5c 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.43.0 + 2.43.1 From 98694ea4aec57b9c1317da1b42703cb4e175086f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 12:44:35 -0400 Subject: [PATCH 3027/3441] chore(main): release 2.43.2-SNAPSHOT (#3527) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 080adb3e29c1..2d1239ead178 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.43.1 + 2.43.2-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 33fef70f2306..32d22c8b4cd2 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.43.1 + 2.43.2-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.43.1 + 2.43.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b3945628130e..845a34a39d84 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.43.1 + 2.43.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.43.1 + 2.43.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 02529ba0a9c2..3823f9458e83 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.43.1 + 2.43.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.43.1 + 2.43.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2a0bd1db27fa..00ea151e9b2b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.43.1 + 2.43.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 3a4efcace5f6..c189d4ed94db 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.43.1:2.43.1 \ No newline at end of file +google-cloud-bigquery:2.43.1:2.43.2-SNAPSHOT \ No newline at end of file From 25be311c1477db0993a5825a2b839a295170790f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 10 Oct 2024 17:16:46 +0200 Subject: [PATCH 3028/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.54.0 (#3532) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3823f9458e83..86570700a1db 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.53.0 + 2.54.0 test From 2f87fd9d777175cb5a8e5b0dc55f07546351e504 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 10 Oct 2024 17:17:56 +0200 Subject: [PATCH 3029/3441] deps: update actions/upload-artifact action to v4.4.3 (#3530) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 725beb86ff2b..8872597ec700 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@84480863f228bb9747b473957fcc9e309aa96097 # v4.4.2 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 with: name: SARIF file path: results.sarif From cad26430f21a37eec2b87ea417f0cf67dcf9c97a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 10 Oct 2024 17:18:42 +0200 Subject: [PATCH 3030/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.58.0 (#3533) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 86570700a1db..33236b670ef5 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.57.0 + 1.58.0 pom import From c0d2056d1f13998332146ea2fc0fecb2ce3122f0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 11 Oct 2024 19:03:12 +0200 Subject: [PATCH 3031/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.54.0 (#3531) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 33236b670ef5..6cf78489db7a 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.53.0 + 2.54.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3b733b41db5c..fe9ea02b029e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.53.0 + 2.54.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 00ea151e9b2b..0ee2b245eed5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.53.0 + 2.54.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 97033ca32982..4c4308c57a09 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.53.0 + 2.54.0 test From 844744f3dea804a31abc806592f557a26cffbab4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 15 Oct 2024 16:19:03 +0200 Subject: [PATCH 3032/3441] deps: update github/codeql-action action to v2.26.13 (#3536) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 8872597ec700..7d2892a2f3c1 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@4d85deb8548d03be541760228f3fe9e6a4d5d27d # v2.26.12 + uses: github/codeql-action/upload-sarif@083cd45dc7d463f048a5d0975943f0e19e9c9378 # v2.26.13 with: sarif_file: results.sarif From e78e78cba7769a55b3e5937cf6a5a84f5259d116 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 15 Oct 2024 17:07:31 +0200 Subject: [PATCH 3033/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.45.1 (#3535) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fe9ea02b029e..667606a0a423 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.45.0 + 2.45.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0ee2b245eed5..7f45a7209ff3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.45.0 + 2.45.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 4c4308c57a09..68190cb0511a 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.45.0 + 2.45.1 test From 903a0f7db0926f3d166eebada1710413056fb4a2 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 24 Oct 2024 12:03:27 -0400 Subject: [PATCH 3034/3441] docs: Update SimpleApp to explicitly set project id (#3534) * docs: Update SimpleApp to explicitly set project id When running in Google Cloud console, the default google cloud project might not be set leading to 404 errors. This update requires the reader to explicitly set the project value. * Removes the explicit use of UUID to set jobId as the library now internally generates the value. * Fix missing braces * Add try/catch for errors * Add missing import * Add more missing import * Add requireEnvVar check * Add missing test import * Add missing test import --- .../java/com/example/bigquery/SimpleApp.java | 90 ++++++++++--------- .../com/example/bigquery/SimpleAppIT.java | 18 +++- 2 files changed, 67 insertions(+), 41 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java b/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java index 65ebbc241df8..49975a9cc0dd 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java @@ -20,6 +20,7 @@ // [START bigquery_simple_app_deps] import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.FieldValueList; import com.google.cloud.bigquery.Job; @@ -27,56 +28,65 @@ import com.google.cloud.bigquery.JobInfo; import com.google.cloud.bigquery.QueryJobConfiguration; import com.google.cloud.bigquery.TableResult; -import java.util.UUID; // [END bigquery_simple_app_deps] public class SimpleApp { + public static void main(String... args) throws Exception { - // [START bigquery_simple_app_client] - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); - // [END bigquery_simple_app_client] - // [START bigquery_simple_app_query] - QueryJobConfiguration queryConfig = - QueryJobConfiguration.newBuilder( - "SELECT CONCAT('https://stackoverflow.com/questions/', " - + "CAST(id as STRING)) as url, view_count " - + "FROM `bigquery-public-data.stackoverflow.posts_questions` " - + "WHERE tags like '%google-bigquery%' " - + "ORDER BY view_count DESC " - + "LIMIT 10") - // Use standard SQL syntax for queries. - // See: https://cloud.google.com/bigquery/sql-reference/ - .setUseLegacySql(false) - .build(); + // TODO(developer): Replace these variables before running the app. + String projectId = "MY_PROJECT_ID"; + simpleApp(projectId); + } - // Create a job ID so that we can safely retry. - JobId jobId = JobId.of(UUID.randomUUID().toString()); - Job queryJob = bigquery.create(JobInfo.newBuilder(queryConfig).setJobId(jobId).build()); + public static void simpleApp(String projectId) { + try { + // [START bigquery_simple_app_client] + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + // [END bigquery_simple_app_client] + // [START bigquery_simple_app_query] + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder( + "SELECT CONCAT('https://stackoverflow.com/questions/', " + + "CAST(id as STRING)) as url, view_count " + + "FROM `bigquery-public-data.stackoverflow.posts_questions` " + + "WHERE tags like '%google-bigquery%' " + + "ORDER BY view_count DESC " + + "LIMIT 10") + // Use standard SQL syntax for queries. + // See: https://cloud.google.com/bigquery/sql-reference/ + .setUseLegacySql(false) + .build(); - // Wait for the query to complete. - queryJob = queryJob.waitFor(); + JobId jobId = JobId.newBuilder().setProject(projectId).build(); + Job queryJob = bigquery.create(JobInfo.newBuilder(queryConfig).setJobId(jobId).build()); - // Check for errors - if (queryJob == null) { - throw new RuntimeException("Job no longer exists"); - } else if (queryJob.getStatus().getError() != null) { - // You can also look at queryJob.getStatus().getExecutionErrors() for all - // errors, not just the latest one. - throw new RuntimeException(queryJob.getStatus().getError().toString()); - } - // [END bigquery_simple_app_query] + // Wait for the query to complete. + queryJob = queryJob.waitFor(); + + // Check for errors + if (queryJob == null) { + throw new RuntimeException("Job no longer exists"); + } else if (queryJob.getStatus().getError() != null) { + // You can also look at queryJob.getStatus().getExecutionErrors() for all + // errors, not just the latest one. + throw new RuntimeException(queryJob.getStatus().getError().toString()); + } + // [END bigquery_simple_app_query] - // [START bigquery_simple_app_print] - // Get the results. - TableResult result = queryJob.getQueryResults(); + // [START bigquery_simple_app_print] + // Get the results. + TableResult result = queryJob.getQueryResults(); - // Print all pages of the results. - for (FieldValueList row : result.iterateAll()) { - // String type - String url = row.get("url").getStringValue(); - String viewCount = row.get("view_count").getStringValue(); - System.out.printf("%s : %s views\n", url, viewCount); + // Print all pages of the results. + for (FieldValueList row : result.iterateAll()) { + // String type + String url = row.get("url").getStringValue(); + String viewCount = row.get("view_count").getStringValue(); + System.out.printf("%s : %s views\n", url, viewCount); + } + } catch (BigQueryException | InterruptedException e) { + System.out.println("Simple App failed due to error: \n" + e.toString()); } // [END bigquery_simple_app_print] } diff --git a/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java b/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java index cfb77f1079a7..4c4030c7dccc 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java @@ -17,6 +17,7 @@ package com.example.bigquery; import static com.google.common.truth.Truth.assertThat; +import static junit.framework.TestCase.assertNotNull; import java.io.ByteArrayOutputStream; import java.io.PrintStream; @@ -24,6 +25,7 @@ import java.util.logging.Logger; import org.junit.After; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -37,6 +39,20 @@ public class SimpleAppIT { private ByteArrayOutputStream bout; private PrintStream out; private PrintStream originalPrintStream; + private static final String PROJECT_ID = requireEnvVar("GOOGLE_CLOUD_PROJECT"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar("GOOGLE_CLOUD_PROJECT"); + } @Before public void setUp() { @@ -56,7 +72,7 @@ public void tearDown() { @Test public void testQuickstart() throws Exception { - SimpleApp.main(); + SimpleApp.simpleApp(PROJECT_ID); String got = bout.toString(); assertThat(got).contains("https://stackoverflow.com/questions/"); } From 16448eec7c7f00a113c923a0fcde463c8ac91f9b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 24 Oct 2024 18:11:26 +0200 Subject: [PATCH 3035/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.38.0 (#3542) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index ef7f25f5e6c8..d34d268f9112 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.37.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.38.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 0b98d0a81d12..d2374101e739 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.37.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.38.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index c468a59f76c7..1ef28925b600 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.37.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.38.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 9d44e530421f..cef8b0b6c95a 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.37.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.38.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index e6553bd6e418..e434ee684728 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.37.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.38.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 32d22c8b4cd2..b949a354f952 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.37.0 + 3.38.0 diff --git a/pom.xml b/pom.xml index 6cf78489db7a..1cbbf7c7d80f 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.37.0 + 3.38.0 From 4763f73ad854ca4bfdddbbdc0bb43fe639238665 Mon Sep 17 00:00:00 2001 From: Joe Wang <106995533+JoeWang1127@users.noreply.github.com> Date: Thu, 24 Oct 2024 16:39:54 +0000 Subject: [PATCH 3036/3441] docs: reformat javadoc (#3545) * docs: reformat javadoc * lint --- .../com/google/cloud/bigquery/BigQuery.java | 843 ++++++++---------- 1 file changed, 366 insertions(+), 477 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index e391c054d9fd..675e6c1e867f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -699,20 +699,17 @@ public int hashCode() { * *

    Example of creating a dataset. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   Dataset dataset = null;
    -   *   DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build();
    -   *   try {
    -   *     // the dataset was created
    -   *     dataset = bigquery.create(datasetInfo);
    -   *   } catch (BigQueryException e) {
    -   *     // the dataset was not created
    -   *   }
    +   * 
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * Dataset dataset = null;
    +   * DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build();
    +   * try {
    +   *   // the dataset was created
    +   *   dataset = bigquery.create(datasetInfo);
    +   * } catch (BigQueryException e) {
    +   *   // the dataset was not created
        * }
    -   * 
    + * }
    * * @throws BigQueryException upon failure */ @@ -723,22 +720,19 @@ public int hashCode() { * *

    Example of creating a table. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   String fieldName = "string_field";
    -   *   TableId tableId = TableId.of(datasetName, tableName);
    -   *   // Table field definition
    -   *   Field field = Field.of(fieldName, LegacySQLTypeName.STRING);
    -   *   // Table schema definition
    -   *   Schema schema = Schema.of(field);
    -   *   TableDefinition tableDefinition = StandardTableDefinition.of(schema);
    -   *   TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build();
    -   *   Table table = bigquery.create(tableInfo);
    -   * }
    -   * 
    + *
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * String fieldName = "string_field";
    +   * TableId tableId = TableId.of(datasetName, tableName);
    +   * // Table field definition
    +   * Field field = Field.of(fieldName, LegacySQLTypeName.STRING);
    +   * // Table schema definition
    +   * Schema schema = Schema.of(field);
    +   * TableDefinition tableDefinition = StandardTableDefinition.of(schema);
    +   * TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build();
    +   * Table table = bigquery.create(tableInfo);
    +   * }
    * * @throws BigQueryException upon failure */ @@ -756,46 +750,41 @@ public int hashCode() { * *

    Example of loading a newline-delimited-json file with textual fields from GCS to a table. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json";
    -   *   TableId tableId = TableId.of(datasetName, tableName);
    -   *   // Table field definition
    -   *   Field[] fields = new Field[] { Field.of("name", LegacySQLTypeName.STRING),
    -   *       Field.of("post_abbr", LegacySQLTypeName.STRING) };
    -   *   // Table schema definition
    -   *   Schema schema = Schema.of(fields);
    -   *   LoadJobConfiguration configuration = LoadJobConfiguration.builder(tableId, sourceUri)
    -   *       .setFormatOptions(FormatOptions.json()).setCreateDisposition(CreateDisposition.CREATE_IF_NEEDED)
    -   *       .setSchema(schema).build();
    -   *   // Load the table
    -   *   Job loadJob = bigquery.create(JobInfo.of(configuration));
    -   *   loadJob = loadJob.waitFor();
    -   *   // Check the table
    -   *   System.out.println("State: " + loadJob.getStatus().getState());
    -   *   return ((StandardTableDefinition) bigquery.getTable(tableId).getDefinition()).getNumRows();
    -   * }
    -   * 
    + *
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * String sourceUri = "gs://cloud-samples-data/bigquery/us-states/us-states.json";
    +   * TableId tableId = TableId.of(datasetName, tableName);
    +   * // Table field definition
    +   * Field[] fields = new Field[] { Field.of("name", LegacySQLTypeName.STRING),
    +   * Field.of("post_abbr", LegacySQLTypeName.STRING) };
    +   * // Table schema definition
    +   * Schema schema = Schema.of(fields);
    +   * LoadJobConfiguration configuration = LoadJobConfiguration.builder(tableId, sourceUri)
    +   *     .setFormatOptions(FormatOptions.json())
    +   *     .setCreateDisposition(CreateDisposition.CREATE_IF_NEEDED)
    +   *     .setSchema(schema).build();
    +   * // Load the table
    +   * Job loadJob = bigquery.create(JobInfo.of(configuration));
    +   * loadJob = loadJob.waitFor();
    +   * // Check the table
    +   * System.out.println("State: " + loadJob.getStatus().getState());
    +   * return ((StandardTableDefinition) bigquery.getTable(tableId).getDefinition()).getNumRows();
    +   * }
    * *

    Example of creating a query job. * - *

    -   * {
    -   *   @code
    -   *   String query = "SELECT field FROM my_dataset_name.my_table_name";
    -   *   Job job = null;
    -   *   JobConfiguration jobConfiguration = QueryJobConfiguration.of(query);
    -   *   JobInfo jobInfo = JobInfo.of(jobConfiguration);
    -   *   try {
    -   *     job = bigquery.create(jobInfo);
    -   *   } catch (BigQueryException e) {
    -   *     // the job was not created
    -   *   }
    +   * 
    {@code
    +   * String query = "SELECT field FROM my_dataset_name.my_table_name";
    +   * Job job = null;
    +   * JobConfiguration jobConfiguration = QueryJobConfiguration.of(query);
    +   * JobInfo jobInfo = JobInfo.of(jobConfiguration);
    +   * try {
    +   *   job = bigquery.create(jobInfo);
    +   * } catch (BigQueryException e) {
    +   *   // the job was not created
        * }
    -   * 
    + * }
    * * @throws BigQueryException upon failure */ @@ -808,18 +797,15 @@ public int hashCode() { * *

    Example of creating a query connection. * - *

    -   * {
    -   *   @code
    -   *       ConnectionSettings connectionSettings =
    -   *         ConnectionSettings.newBuilder()
    -   *             .setRequestTimeout(10L)
    -   *             .setMaxResults(100L)
    -   *             .setUseQueryCache(true)
    -   *             .build();
    -   *       Connection connection = bigquery.createConnection(connectionSettings);
    -   * }
    -   * 
    + *
    {@code
    +   * ConnectionSettings connectionSettings =
    +   *     ConnectionSettings.newBuilder()
    +   *         .setRequestTimeout(10L)
    +   *         .setMaxResults(100L)
    +   *         .setUseQueryCache(true)
    +   *         .build();
    +   * Connection connection = bigquery.createConnection(connectionSettings);
    +   * }
    * * @throws BigQueryException upon failure * @param connectionSettings @@ -836,12 +822,9 @@ public int hashCode() { * *

    Example of creating a query connection. * - *

    -   * {
    -   *   @code
    -   *       Connection connection = bigquery.createConnection();
    -   * }
    -   * 
    + *
    {@code
    +   * Connection connection = bigquery.createConnection();
    +   * }
    * * @throws BigQueryException upon failure */ @@ -853,13 +836,10 @@ public int hashCode() { * *

    Example of getting a dataset. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset";
    -   *   Dataset dataset = bigquery.getDataset(datasetName);
    -   * }
    -   * 
    + *
    {@code
    +   * String datasetName = "my_dataset";
    +   * Dataset dataset = bigquery.getDataset(datasetName);
    +   * }
    * * @throws BigQueryException upon failure */ @@ -870,15 +850,12 @@ public int hashCode() { * *

    Example of getting a dataset. * - *

    -   * {
    -   *   @code
    -   *   String projectId = "my_project_id";
    -   *   String datasetName = "my_dataset_name";
    -   *   DatasetId datasetId = DatasetId.of(projectId, datasetName);
    -   *   Dataset dataset = bigquery.getDataset(datasetId);
    -   * }
    -   * 
    + *
    {@code
    +   * String projectId = "my_project_id";
    +   * String datasetName = "my_dataset_name";
    +   * DatasetId datasetId = DatasetId.of(projectId, datasetName);
    +   * Dataset dataset = bigquery.getDataset(datasetId);
    +   * }
    * * @throws BigQueryException upon failure */ @@ -892,16 +869,13 @@ public int hashCode() { * *

    Example of listing datasets, specifying the page size. * - *

    -   * {
    -   *   @code
    -   *   // List datasets in the default project
    -   *   Page<Dataset> datasets = bigquery.listDatasets(DatasetListOption.pageSize(100));
    -   *   for (Dataset dataset : datasets.iterateAll()) {
    -   *     // do something with the dataset
    -   *   }
    +   * 
    {@code
    +   * // List datasets in the default project
    +   * Page datasets = bigquery.listDatasets(DatasetListOption.pageSize(100));
    +   * for (Dataset dataset : datasets.iterateAll()) {
    +   *   // do something with the dataset
        * }
    -   * 
    + * }
    * * @throws BigQueryException upon failure */ @@ -915,17 +889,14 @@ public int hashCode() { * *

    Example of listing datasets in a project, specifying the page size. * - *

    -   * {
    -   *   @code
    -   *   String projectId = "my_project_id";
    -   *   // List datasets in a specified project
    -   *   Page<{@link Dataset}> datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100));
    -   *   for (Dataset dataset : datasets.iterateAll()) {
    -   *     // do something with the dataset
    -   *   }
    +   * 
    {@code
    +   * String projectId = "my_project_id";
    +   * // List datasets in a specified project
    +   * Page datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100));
    +   * for (Dataset dataset : datasets.iterateAll()) {
    +   *   // do something with the dataset
        * }
    -   * 
    + * }
    * * @throws BigQueryException upon failure */ @@ -936,18 +907,15 @@ public int hashCode() { * *

    Example of deleting a dataset from its id, even if non-empty. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   boolean deleted = bigquery.delete(datasetName, DatasetDeleteOption.deleteContents());
    -   *   if (deleted) {
    -   *     // the dataset was deleted
    -   *   } else {
    -   *     // the dataset was not found
    -   *   }
    +   * 
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * boolean deleted = bigquery.delete(datasetName, DatasetDeleteOption.deleteContents());
    +   * if (deleted) {
    +   *   // the dataset was deleted
    +   * } else {
    +   *   // the dataset was not found
        * }
    -   * 
    + * }
    * * @return {@code true} if dataset was deleted, {@code false} if it was not found * @throws BigQueryException upon failure @@ -959,20 +927,17 @@ public int hashCode() { * *

    Example of deleting a dataset, even if non-empty. * - *

    -   * {
    -   *   @code
    -   *   String projectId = "my_project_id";
    -   *   String datasetName = "my_dataset_name";
    -   *   DatasetId datasetId = DatasetId.of(projectId, datasetName);
    -   *   boolean deleted = bigquery.delete(datasetId, DatasetDeleteOption.deleteContents());
    -   *   if (deleted) {
    -   *     // the dataset was deleted
    -   *   } else {
    -   *     // the dataset was not found
    -   *   }
    +   * 
    {@code
    +   * String projectId = "my_project_id";
    +   * String datasetName = "my_dataset_name";
    +   * DatasetId datasetId = DatasetId.of(projectId, datasetName);
    +   * boolean deleted = bigquery.delete(datasetId, DatasetDeleteOption.deleteContents());
    +   * if (deleted) {
    +   *   // the dataset was deleted
    +   * } else {
    +   *   // the dataset was not found
        * }
    -   * 
    + * }
    * * @return {@code true} if dataset was deleted, {@code false} if it was not found * @throws BigQueryException upon failure @@ -996,21 +961,18 @@ public int hashCode() { * *

    Example of deleting a table. * - *

    -   * {
    -   *   @code
    -   *   String projectId = "my_project_id";
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   TableId tableId = TableId.of(projectId, datasetName, tableName);
    -   *   boolean deleted = bigquery.delete(tableId);
    -   *   if (deleted) {
    -   *     // the table was deleted
    -   *   } else {
    -   *     // the table was not found
    -   *   }
    +   * 
    {@code
    +   * String projectId = "my_project_id";
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * TableId tableId = TableId.of(projectId, datasetName, tableName);
    +   * boolean deleted = bigquery.delete(tableId);
    +   * if (deleted) {
    +   *   // the table was deleted
    +   * } else {
    +   *   // the table was not found
        * }
    -   * 
    + * }
    * * @return {@code true} if table was deleted, {@code false} if it was not found * @throws BigQueryException upon failure @@ -1022,21 +984,18 @@ public int hashCode() { * *

    Example of deleting a model. * - *

    -   * {
    -   *   @code
    -   *   String projectId = "my_project_id";
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_model_name";
    -   *   ModelId modelId = ModelId.of(projectId, datasetName, modelName);
    -   *   boolean deleted = bigquery.delete(modelId);
    -   *   if (deleted) {
    -   *     // the model was deleted
    -   *   } else {
    -   *     // the model was not found
    -   *   }
    +   * 
    {@code
    +   * String projectId = "my_project_id";
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_model_name";
    +   * ModelId modelId = ModelId.of(projectId, datasetName, modelName);
    +   * boolean deleted = bigquery.delete(modelId);
    +   * if (deleted) {
    +   *   // the model was deleted
    +   * } else {
    +   *   // the model was not found
        * }
    -   * 
    + * }
    * * @return {@code true} if model was deleted, {@code false} if it was not found * @throws BigQueryException upon failure @@ -1081,19 +1040,15 @@ public int hashCode() { * * - *
    -   * {
    -   *   @code
    -   *   // String datasetName = "my_dataset_name";
    -   *   // String tableName = "my_table_name";
    -   *   // String newDescription = "new_description";
    -   *
    -   *   Table beforeTable = bigquery.getTable(datasetName, tableName);
    -   *   TableInfo tableInfo = beforeTable.toBuilder().setDescription(newDescription).build();
    -   *   Table afterTable = bigquery.update(tableInfo);
    +   * 
    {@code
    +   * // String datasetName = "my_dataset_name";
    +   * // String tableName = "my_table_name";
    +   * // String newDescription = "new_description";
        *
    -   * }
    -   * 
    + * Table beforeTable = bigquery.getTable(datasetName, tableName); + * TableInfo tableInfo = beforeTable.toBuilder().setDescription(newDescription).build(); + * Table afterTable = bigquery.update(tableInfo); + * }
    * * * @@ -1106,33 +1061,27 @@ public int hashCode() { * *

    Example of updating a table by changing its description. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   String newDescription = "new_description";
    -   *   Table beforeTable = bigquery.getTable(datasetName, tableName);
    -   *   TableInfo tableInfo = beforeTable.toBuilder().setDescription(newDescription).build();
    -   *   Table afterTable = bigquery.update(tableInfo);
    -   * }
    -   * 
    + *
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * String newDescription = "new_description";
    +   * Table beforeTable = bigquery.getTable(datasetName, tableName);
    +   * TableInfo tableInfo = beforeTable.toBuilder().setDescription(newDescription).build();
    +   * Table afterTable = bigquery.update(tableInfo);
    +   * }
    * *

    Example of updating a table by changing its expiration. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   Table beforeTable = bigquery.getTable(datasetName, tableName);
    -   *
    -   *   // Set table to expire 5 days from now.
    -   *   long expirationMillis = DateTime.now().plusDays(5).getMillis();
    -   *   TableInfo tableInfo = beforeTable.toBuilder().setExpirationTime(expirationMillis).build();
    -   *   Table afterTable = bigquery.update(tableInfo);
    -   * }
    -   * 
    + *
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * Table beforeTable = bigquery.getTable(datasetName, tableName);
    +   *
    +   * // Set table to expire 5 days from now.
    +   * long expirationMillis = DateTime.now().plusDays(5).getMillis();
    +   * TableInfo tableInfo = beforeTable.toBuilder().setExpirationTime(expirationMillis).build();
    +   * Table afterTable = bigquery.update(tableInfo);
    +   * }
    * * @throws BigQueryException upon failure */ @@ -1143,33 +1092,27 @@ public int hashCode() { * *

    Example of updating a model by changing its description. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String modelName = "my_model_name";
    -   *   String newDescription = "new_description";
    -   *   Model beforeModel = bigquery.getModel(datasetName, modelName);
    -   *   ModelInfo modelInfo = beforeModel.toBuilder().setDescription(newDescription).build();
    -   *   Model afterModel = bigquery.update(modelInfo);
    -   * }
    -   * 
    + *
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String modelName = "my_model_name";
    +   * String newDescription = "new_description";
    +   * Model beforeModel = bigquery.getModel(datasetName, modelName);
    +   * ModelInfo modelInfo = beforeModel.toBuilder().setDescription(newDescription).build();
    +   * Model afterModel = bigquery.update(modelInfo);
    +   * }
    * *

    Example of updating a model by changing its expiration. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String modelName = "my_model_name";
    -   *   Model beforeModel = bigquery.getModel(datasetName, modelName);
    -   *
    -   *   // Set model to expire 5 days from now.
    -   *   long expirationMillis = DateTime.now().plusDays(5).getMillis();
    -   *   ModelInfo modelInfo = beforeModel.toBuilder().setExpirationTime(expirationMillis).build();
    -   *   Model afterModel = bigquery.update(modelInfo);
    -   * }
    -   * 
    + *
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String modelName = "my_model_name";
    +   * Model beforeModel = bigquery.getModel(datasetName, modelName);
    +   *
    +   * // Set model to expire 5 days from now.
    +   * long expirationMillis = DateTime.now().plusDays(5).getMillis();
    +   * ModelInfo modelInfo = beforeModel.toBuilder().setExpirationTime(expirationMillis).build();
    +   * Model afterModel = bigquery.update(modelInfo);
    +   * }
    * * @throws BigQueryException upon failure */ @@ -1187,14 +1130,11 @@ public int hashCode() { * *

    Example of getting a table. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   Table table = bigquery.getTable(datasetName, tableName);
    -   * }
    -   * 
    + *
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * Table table = bigquery.getTable(datasetName, tableName);
    +   * }
    * * @throws BigQueryException upon failure */ @@ -1205,16 +1145,13 @@ public int hashCode() { * *

    Example of getting a table. * - *

    -   * {
    -   *   @code
    -   *   String projectId = "my_project_id";
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   TableId tableId = TableId.of(projectId, datasetName, tableName);
    -   *   Table table = bigquery.getTable(tableId);
    -   * }
    -   * 
    + *
    {@code
    +   * String projectId = "my_project_id";
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * TableId tableId = TableId.of(projectId, datasetName, tableName);
    +   * Table table = bigquery.getTable(tableId);
    +   * }
    * * @throws BigQueryException upon failure */ @@ -1232,16 +1169,13 @@ public int hashCode() { * *

    Example of getting a model. * - *

    -   * {
    -   *   @code
    -   *   String projectId = "my_project_id";
    -   *   String datasetName = "my_dataset_name";
    -   *   String modelName = "my_model_name";
    -   *   ModelId modelId = ModelId.of(projectId, datasetName, tableName);
    -   *   Model model = bigquery.getModel(modelId);
    -   * }
    -   * 
    + *
    {@code
    +   * String projectId = "my_project_id";
    +   * String datasetName = "my_dataset_name";
    +   * String modelName = "my_model_name";
    +   * ModelId modelId = ModelId.of(projectId, datasetName, tableName);
    +   * Model model = bigquery.getModel(modelId);
    +   * }
    * * @throws BigQueryException upon failure */ @@ -1275,16 +1209,13 @@ public int hashCode() { * *

    Example of listing the tables in a dataset, specifying the page size. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   Page<Table> tables = bigquery.listTables(datasetName, TableListOption.pageSize(100));
    -   *   for (Table table : tables.iterateAll()) {
    -   *     // do something with the table
    -   *   }
    +   * 
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * Page
    tables = bigquery.listTables(datasetName, TableListOption.pageSize(100)); + * for (Table table : tables.iterateAll()) { + * // do something with the table * } - * + * } * * @throws BigQueryException upon failure */ @@ -1298,18 +1229,15 @@ public int hashCode() { * *

    Example of listing the tables in a dataset. * - *

    -   * {
    -   *   @code
    -   *   String projectId = "my_project_id";
    -   *   String datasetName = "my_dataset_name";
    -   *   DatasetId datasetId = DatasetId.of(projectId, datasetName);
    -   *   Page<Table> tables = bigquery.listTables(datasetId, TableListOption.pageSize(100));
    -   *   for (Table table : tables.iterateAll()) {
    -   *     // do something with the table
    -   *   }
    +   * 
    {@code
    +   * String projectId = "my_project_id";
    +   * String datasetName = "my_dataset_name";
    +   * DatasetId datasetId = DatasetId.of(projectId, datasetName);
    +   * Page
    tables = bigquery.listTables(datasetId, TableListOption.pageSize(100)); + * for (Table table : tables.iterateAll()) { + * // do something with the table * } - * + * } * * @throws BigQueryException upon failure */ @@ -1332,33 +1260,30 @@ public int hashCode() { * *

    Example of inserting rows into a table without running a load job. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   TableId tableId = TableId.of(datasetName, tableName);
    -   *   // Values of the row to insert
    -   *   Map<String, Object> rowContent = new HashMap<>();
    -   *   rowContent.put("booleanField", true);
    -   *   // Bytes are passed in base64
    -   *   rowContent.put("bytesField", "Cg0NDg0="); // 0xA, 0xD, 0xD, 0xE, 0xD in base64
    -   *   // Records are passed as a map
    -   *   Map<String, Object> recordsContent = new HashMap<>();
    -   *   recordsContent.put("stringField", "Hello, World!");
    -   *   rowContent.put("recordField", recordsContent);
    -   *   InsertAllResponse response = bigquery.insertAll(InsertAllRequest.newBuilder(tableId).addRow("rowId", rowContent)
    -   *       // More rows can be added in the same RPC by invoking .addRow() on the
    -   *       // builder
    -   *       .build());
    -   *   if (response.hasErrors()) {
    -   *     // If any of the insertions failed, this lets you inspect the errors
    -   *     for (Entry<Long, List<BigQueryError>> entry : response.getInsertErrors().entrySet()) {
    -   *       // inspect row error
    -   *     }
    +   * 
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * TableId tableId = TableId.of(datasetName, tableName);
    +   * // Values of the row to insert
    +   * Map rowContent = new HashMap<>();
    +   * rowContent.put("booleanField", true);
    +   * // Bytes are passed in base64
    +   * rowContent.put("bytesField", "Cg0NDg0="); // 0xA, 0xD, 0xD, 0xE, 0xD in base64
    +   * // Records are passed as a map
    +   * Map recordsContent = new HashMap<>();
    +   * recordsContent.put("stringField", "Hello, World!");
    +   * rowContent.put("recordField", recordsContent);
    +   * InsertAllResponse response = bigquery.insertAll(InsertAllRequest.newBuilder(tableId).addRow("rowId", rowContent)
    +   *     // More rows can be added in the same RPC by invoking .addRow() on the
    +   *     // builder
    +   *     .build());
    +   * if (response.hasErrors()) {
    +   *   // If any of the insertions failed, this lets you inspect the errors
    +   *   for (Entry> entry : response.getInsertErrors().entrySet()) {
    +   *     // inspect row error
        *   }
        * }
    -   * 
    + * }
    * * @throws BigQueryException upon failure */ @@ -1369,20 +1294,17 @@ public int hashCode() { * *

    Example of listing table rows, specifying the page size. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   // This example reads the result 100 rows per RPC call. If there's no need
    -   *   // to limit the number,
    -   *   // simply omit the option.
    -   *   TableResult tableData = bigquery.listTableData(datasetName, tableName, TableDataListOption.pageSize(100));
    -   *   for (FieldValueList row : tableData.iterateAll()) {
    -   *     // do something with the row
    -   *   }
    +   * 
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * // This example reads the result 100 rows per RPC call. If there's no need
    +   * // to limit the number,
    +   * // simply omit the option.
    +   * TableResult tableData = bigquery.listTableData(datasetName, tableName, TableDataListOption.pageSize(100));
    +   * for (FieldValueList row : tableData.iterateAll()) {
    +   *   // do something with the row
        * }
    -   * 
    + * }
    * * @throws BigQueryException upon failure */ @@ -1393,21 +1315,18 @@ public int hashCode() { * *

    Example of listing table rows, specifying the page size. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   TableId tableIdObject = TableId.of(datasetName, tableName);
    -   *   // This example reads the result 100 rows per RPC call. If there's no need
    -   *   // to limit the number,
    -   *   // simply omit the option.
    -   *   TableResult tableData = bigquery.listTableData(tableIdObject, TableDataListOption.pageSize(100));
    -   *   for (FieldValueList row : tableData.iterateAll()) {
    -   *     // do something with the row
    -   *   }
    +   * 
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * TableId tableIdObject = TableId.of(datasetName, tableName);
    +   * // This example reads the result 100 rows per RPC call. If there's no need
    +   * // to limit the number,
    +   * // simply omit the option.
    +   * TableResult tableData = bigquery.listTableData(tableIdObject, TableDataListOption.pageSize(100));
    +   * for (FieldValueList row : tableData.iterateAll()) {
    +   *   // do something with the row
        * }
    -   * 
    + * }
    * * @throws BigQueryException upon failure */ @@ -1441,18 +1360,15 @@ TableResult listTableData( * *

    Example of listing table rows with schema. * - *

    -   * {
    -   *   @code
    -   *   Schema schema = Schema.of(Field.of("word", LegacySQLTypeName.STRING),
    -   *       Field.of("word_count", LegacySQLTypeName.STRING), Field.of("corpus", LegacySQLTypeName.STRING),
    -   *       Field.of("corpus_date", LegacySQLTypeName.STRING));
    -   *   TableResult tableData = bigquery.listTableData(TableId.of("bigquery-public-data", "samples", "shakespeare"),
    -   *       schema);
    -   *   FieldValueList row = tableData.getValues().iterator().next();
    -   *   System.out.println(row.get("word").getStringValue());
    -   * }
    -   * 
    + *
    {@code
    +   * Schema schema = Schema.of(Field.of("word", LegacySQLTypeName.STRING),
    +   *     Field.of("word_count", LegacySQLTypeName.STRING), Field.of("corpus", LegacySQLTypeName.STRING),
    +   *     Field.of("corpus_date", LegacySQLTypeName.STRING));
    +   * TableResult tableData = bigquery.listTableData(TableId.of("bigquery-public-data", "samples", "shakespeare"),
    +   *     schema);
    +   * FieldValueList row = tableData.getValues().iterator().next();
    +   * System.out.println(row.get("word").getStringValue());
    +   * }
    * * @throws BigQueryException upon failure */ @@ -1464,16 +1380,13 @@ TableResult listTableData( * *

    Example of getting a job. * - *

    -   * {
    -   *   @code
    -   *   String jobName = "my_job_name";
    -   *   Job job = bigquery.getJob(jobName);
    -   *   if (job == null) {
    -   *     // job was not found
    -   *   }
    +   * 
    {@code
    +   * String jobName = "my_job_name";
    +   * Job job = bigquery.getJob(jobName);
    +   * if (job == null) {
    +   *   // job was not found
        * }
    -   * 
    + * }
    * * @throws BigQueryException upon failure */ @@ -1485,17 +1398,14 @@ TableResult listTableData( * *

    Example of getting a job. * - *

    -   * {
    -   *   @code
    -   *   String jobName = "my_job_name";
    -   *   JobId jobIdObject = JobId.of(jobName);
    -   *   Job job = bigquery.getJob(jobIdObject);
    -   *   if (job == null) {
    -   *     // job was not found
    -   *   }
    +   * 
    {@code
    +   * String jobName = "my_job_name";
    +   * JobId jobIdObject = JobId.of(jobName);
    +   * Job job = bigquery.getJob(jobIdObject);
    +   * if (job == null) {
    +   *   // job was not found
        * }
    -   * 
    + * }
    * * @throws BigQueryException upon failure */ @@ -1506,15 +1416,12 @@ TableResult listTableData( * *

    Example of listing jobs, specifying the page size. * - *

    -   * {
    -   *   @code
    -   *   Page<Job> jobs = bigquery.listJobs(JobListOption.pageSize(100));
    -   *   for (Job job : jobs.iterateAll()) {
    -   *     // do something with the job
    -   *   }
    +   * 
    {@code
    +   * Page jobs = bigquery.listJobs(JobListOption.pageSize(100));
    +   * for (Job job : jobs.iterateAll()) {
    +   *   // do something with the job
        * }
    -   * 
    + * }
    * * @throws BigQueryException upon failure */ @@ -1529,18 +1436,15 @@ TableResult listTableData( * *

    Example of cancelling a job. * - *

    -   * {
    -   *   @code
    -   *   String jobName = "my_job_name";
    -   *   boolean success = bigquery.cancel(jobName);
    -   *   if (success) {
    -   *     // job was cancelled
    -   *   } else {
    -   *     // job was not found
    -   *   }
    +   * 
    {@code
    +   * String jobName = "my_job_name";
    +   * boolean success = bigquery.cancel(jobName);
    +   * if (success) {
    +   *   // job was cancelled
    +   * } else {
    +   *   // job was not found
        * }
    -   * 
    + * }
    * * @return {@code true} if cancel was requested successfully, {@code false} if the job was not * found @@ -1558,19 +1462,16 @@ TableResult listTableData( * *

    Example of cancelling a job. * - *

    -   * {
    -   *   @code
    -   *   String jobName = "my_job_name";
    -   *   JobId jobId = JobId.of(jobName);
    -   *   boolean success = bigquery.cancel(jobId);
    -   *   if (success) {
    -   *     // job was cancelled
    -   *   } else {
    -   *     // job was not found
    -   *   }
    +   * 
    {@code
    +   * String jobName = "my_job_name";
    +   * JobId jobId = JobId.of(jobName);
    +   * boolean success = bigquery.cancel(jobId);
    +   * if (success) {
    +   *   // job was cancelled
    +   * } else {
    +   *   // job was not found
        * }
    -   * 
    + * }
    * * @return {@code true} if cancel was requested successfully, {@code false} if the job was not * found @@ -1589,22 +1490,19 @@ TableResult listTableData( * *

    Example of running a query. * - *

    -   * {
    -   *   @code
    -   *   // BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
    -   *   String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
    -   *   QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build();
    -   *
    -   *   // Print the results.
    -   *   for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) {
    -   *     for (FieldValue val : row) {
    -   *       System.out.printf("%s,", val.toString());
    -   *     }
    -   *     System.out.printf("\n");
    +   * 
    {@code
    +   * // BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();
    +   * String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;";
    +   * QueryJobConfiguration queryConfig = QueryJobConfiguration.newBuilder(query).build();
    +   *
    +   * // Print the results.
    +   * for (FieldValueList row : bigquery.query(queryConfig).iterateAll()) {
    +   *   for (FieldValue val : row) {
    +   *     System.out.printf("%s,", val.toString());
        *   }
    +   *   System.out.printf("\n");
        * }
    -   * 
    + * }
    * * This method supports query-related preview features via environmental variables (enabled by * setting the {@code QUERY_PREVIEW_ENABLED} environment variable to "TRUE"). Specifically, this @@ -1630,7 +1528,7 @@ TableResult query(QueryJobConfiguration configuration, JobOption... options) *

    If the location of the job is not "US" or "EU", the {@code jobId} must specify the job * location. * - *

    This method cannot be used in conjuction with {@link QueryJobConfiguration#dryRun()} + *

    This method cannot be used in conjunction with {@link QueryJobConfiguration#dryRun()} * queries. Since dry-run queries are not actually executed, there's no way to retrieve results. * *

    See {@link #query(QueryJobConfiguration, JobOption...)} for examples on populating a {@link @@ -1659,56 +1557,50 @@ TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption... * *

    Example of creating a channel with which to write to a table. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   String csvData = "StringValue1\nStringValue2\n";
    -   *   TableId tableId = TableId.of(datasetName, tableName);
    -   *   WriteChannelConfiguration writeChannelConfiguration = WriteChannelConfiguration.newBuilder(tableId)
    -   *       .setFormatOptions(FormatOptions.csv()).build();
    -   *   TableDataWriteChannel writer = bigquery.writer(writeChannelConfiguration);
    -   *   // Write data to writer
    -   *   try {
    -   *     writer.write(ByteBuffer.wrap(csvData.getBytes(Charsets.UTF_8)));
    -   *   } finally {
    -   *     writer.close();
    -   *   }
    -   *   // Get load job
    -   *   Job job = writer.getJob();
    -   *   job = job.waitFor();
    -   *   LoadStatistics stats = job.getStatistics();
    -   *   return stats.getOutputRows();
    +   * 
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * String csvData = "StringValue1\nStringValue2\n";
    +   * TableId tableId = TableId.of(datasetName, tableName);
    +   * WriteChannelConfiguration writeChannelConfiguration = WriteChannelConfiguration.newBuilder(tableId)
    +   *     .setFormatOptions(FormatOptions.csv()).build();
    +   * TableDataWriteChannel writer = bigquery.writer(writeChannelConfiguration);
    +   * // Write data to writer
    +   * try {
    +   *   writer.write(ByteBuffer.wrap(csvData.getBytes(Charsets.UTF_8)));
    +   * } finally {
    +   *   writer.close();
        * }
    -   * 
    + * // Get load job + * Job job = writer.getJob(); + * job = job.waitFor(); + * LoadStatistics stats = job.getStatistics(); + * return stats.getOutputRows(); + * }
    * *

    Example of writing a local file to a table. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   Path csvPath = FileSystems.getDefault().getPath(".", "my-data.csv");
    -   *   String location = "us";
    -   *   TableId tableId = TableId.of(datasetName, tableName);
    -   *   WriteChannelConfiguration writeChannelConfiguration = WriteChannelConfiguration.newBuilder(tableId)
    -   *       .setFormatOptions(FormatOptions.csv()).build();
    -   *   // The location must be specified; other fields can be auto-detected.
    -   *   JobId jobId = JobId.newBuilder().setLocation(location).build();
    -   *   TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration);
    -   *   // Write data to writer
    -   *   try (OutputStream stream = Channels.newOutputStream(writer)) {
    -   *     Files.copy(csvPath, stream);
    -   *   }
    -   *   // Get load job
    -   *   Job job = writer.getJob();
    -   *   job = job.waitFor();
    -   *   LoadStatistics stats = job.getStatistics();
    -   *   return stats.getOutputRows();
    +   * 
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * Path csvPath = FileSystems.getDefault().getPath(".", "my-data.csv");
    +   * String location = "us";
    +   * TableId tableId = TableId.of(datasetName, tableName);
    +   * WriteChannelConfiguration writeChannelConfiguration = WriteChannelConfiguration.newBuilder(tableId)
    +   *     .setFormatOptions(FormatOptions.csv()).build();
    +   * // The location must be specified; other fields can be auto-detected.
    +   * JobId jobId = JobId.newBuilder().setLocation(location).build();
    +   * TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration);
    +   * // Write data to writer
    +   * try (OutputStream stream = Channels.newOutputStream(writer)) {
    +   *   Files.copy(csvPath, stream);
        * }
    -   * 
    + * // Get load job + * Job job = writer.getJob(); + * job = job.waitFor(); + * LoadStatistics stats = job.getStatistics(); + * return stats.getOutputRows(); + * }
    * * @throws BigQueryException upon failure */ @@ -1721,32 +1613,29 @@ TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption... * *

    Example of creating a channel with which to write to a table. * - *

    -   * {
    -   *   @code
    -   *   String datasetName = "my_dataset_name";
    -   *   String tableName = "my_table_name";
    -   *   String csvData = "StringValue1\nStringValue2\n";
    -   *   String location = "us";
    -   *   TableId tableId = TableId.of(datasetName, tableName);
    -   *   WriteChannelConfiguration writeChannelConfiguration = WriteChannelConfiguration.newBuilder(tableId)
    -   *       .setFormatOptions(FormatOptions.csv()).build();
    -   *   // The location must be specified; other fields can be auto-detected.
    -   *   JobId jobId = JobId.newBuilder().setLocation(location).build();
    -   *   TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration);
    -   *   // Write data to writer
    -   *   try {
    -   *     writer.write(ByteBuffer.wrap(csvData.getBytes(Charsets.UTF_8)));
    -   *   } finally {
    -   *     writer.close();
    -   *   }
    -   *   // Get load job
    -   *   Job job = writer.getJob();
    -   *   job = job.waitFor();
    -   *   LoadStatistics stats = job.getStatistics();
    -   *   return stats.getOutputRows();
    +   * 
    {@code
    +   * String datasetName = "my_dataset_name";
    +   * String tableName = "my_table_name";
    +   * String csvData = "StringValue1\nStringValue2\n";
    +   * String location = "us";
    +   * TableId tableId = TableId.of(datasetName, tableName);
    +   * WriteChannelConfiguration writeChannelConfiguration = WriteChannelConfiguration.newBuilder(tableId)
    +   *     .setFormatOptions(FormatOptions.csv()).build();
    +   * // The location must be specified; other fields can be auto-detected.
    +   * JobId jobId = JobId.newBuilder().setLocation(location).build();
    +   * TableDataWriteChannel writer = bigquery.writer(jobId, writeChannelConfiguration);
    +   * // Write data to writer
    +   * try {
    +   *   writer.write(ByteBuffer.wrap(csvData.getBytes(Charsets.UTF_8)));
    +   * } finally {
    +   *   writer.close();
        * }
    -   * 
    + * // Get load job + * Job job = writer.getJob(); + * job = job.waitFor(); + * LoadStatistics stats = job.getStatistics(); + * return stats.getOutputRows(); + * }
    */ TableDataWriteChannel writer(JobId jobId, WriteChannelConfiguration writeChannelConfiguration); From c0d8839a0930cce03713b9a915519367df087387 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 24 Oct 2024 21:04:28 +0200 Subject: [PATCH 3037/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.8.0 (#3539) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1cbbf7c7d80f..482f53a0b403 100644 --- a/pom.xml +++ b/pom.xml @@ -180,7 +180,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.7.0 + 3.8.0 From 1616a0f6057916e21f3b4a6d418d1431d8d1fa16 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 24 Oct 2024 21:05:06 +0200 Subject: [PATCH 3038/3441] deps: update github/codeql-action action to v2.27.0 (#3540) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 7d2892a2f3c1..4802d1f8a291 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@083cd45dc7d463f048a5d0975943f0e19e9c9378 # v2.26.13 + uses: github/codeql-action/upload-sarif@6a89f57882288b3d2f190cda65000eec9e9ebb7c # v2.27.0 with: sarif_file: results.sarif From c36c123f5cd298b1481c9073ac9f5e634b0e1e68 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 24 Oct 2024 21:05:38 +0200 Subject: [PATCH 3039/3441] deps: update actions/checkout action to v4.2.2 (#3541) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 4802d1f8a291..1be1c2a32aca 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -32,7 +32,7 @@ jobs: steps: - name: "Checkout code" - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: persist-credentials: false From fa796cb836fc588e64c4b7260ff9ceba6e703e91 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 24 Oct 2024 21:06:05 +0200 Subject: [PATCH 3040/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.44.0 (#3543) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 482f53a0b403..cc8c6dc590a1 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.43.2 + 2.44.0 test From 0c42092e34912d21a4d13f041577056faadf914a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 24 Oct 2024 21:06:27 +0200 Subject: [PATCH 3041/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20241013-2.0.0 (#3544) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cc8c6dc590a1..8fc92a393ef8 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20240919-2.0.0 + v2-rev20241013-2.0.0 From 0bd3c862636271c5a851fcd229b4cf6878a8c5d4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 25 Oct 2024 00:30:43 +0200 Subject: [PATCH 3042/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.10.0 (#3546) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8fc92a393ef8..9165396fa075 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.9.3 + 3.10.0 pom import From 616b2f611f313994bf0ec2889daea3b569a84baf Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sat, 26 Oct 2024 03:53:39 +0200 Subject: [PATCH 3043/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.39.0 (#3548) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index d34d268f9112..4df9466e7dab 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.38.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.39.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index d2374101e739..4bc28d0afa4b 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.38.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.39.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 1ef28925b600..33a4a9d957e4 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.38.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.39.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index cef8b0b6c95a..ba53eb9ce2ea 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.38.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.39.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index e434ee684728..418a399b7599 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.38.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.39.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index b949a354f952..21f719a49904 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.38.0 + 3.39.0 diff --git a/pom.xml b/pom.xml index 9165396fa075..da427159ba89 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.38.0 + 3.39.0 From c03a63a0da4f4915e9761dc1ca7429c46748688c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sun, 27 Oct 2024 02:37:55 +0100 Subject: [PATCH 3044/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.10.1 (#3550) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index da427159ba89..57a54a70be9c 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.10.0 + 3.10.1 pom import From fb5cabdb875456a894c98cb7b63d524faedded9d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sun, 27 Oct 2024 02:39:25 +0100 Subject: [PATCH 3045/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.44.1 (#3549) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 57a54a70be9c..eab2b84b7727 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.44.0 + 2.44.1 test From 1e33145110a2d273fc9cf49f6f3b2c87e2673eed Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 10:17:11 -0400 Subject: [PATCH 3046/3441] chore(main): release 2.43.2 (#3529) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 24 ++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 33 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index aaf9551fee53..36bb39c29451 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog +## [2.43.2](https://github.com/googleapis/java-bigquery/compare/v2.43.1...v2.43.2) (2024-10-27) + + +### Dependencies + +* Update actions/checkout action to v4.2.2 ([#3541](https://github.com/googleapis/java-bigquery/issues/3541)) ([c36c123](https://github.com/googleapis/java-bigquery/commit/c36c123f5cd298b1481c9073ac9f5e634b0e1e68)) +* Update actions/upload-artifact action to v4.4.2 ([#3524](https://github.com/googleapis/java-bigquery/issues/3524)) ([776a554](https://github.com/googleapis/java-bigquery/commit/776a5541cc94e8ffb1f5e5c6969ae06585571b45)) +* Update actions/upload-artifact action to v4.4.3 ([#3530](https://github.com/googleapis/java-bigquery/issues/3530)) ([2f87fd9](https://github.com/googleapis/java-bigquery/commit/2f87fd9d777175cb5a8e5b0dc55f07546351e504)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.54.0 ([#3532](https://github.com/googleapis/java-bigquery/issues/3532)) ([25be311](https://github.com/googleapis/java-bigquery/commit/25be311c1477db0993a5825a2b839a295170790f)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20241013-2.0.0 ([#3544](https://github.com/googleapis/java-bigquery/issues/3544)) ([0c42092](https://github.com/googleapis/java-bigquery/commit/0c42092e34912d21a4d13f041577056faadf914a)) +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.10.0 ([0bd3c86](https://github.com/googleapis/java-bigquery/commit/0bd3c862636271c5a851fcd229b4cf6878a8c5d4)) +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.10.1 ([c03a63a](https://github.com/googleapis/java-bigquery/commit/c03a63a0da4f4915e9761dc1ca7429c46748688c)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.58.0 ([#3533](https://github.com/googleapis/java-bigquery/issues/3533)) ([cad2643](https://github.com/googleapis/java-bigquery/commit/cad26430f21a37eec2b87ea417f0cf67dcf9c97a)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.38.0 ([#3542](https://github.com/googleapis/java-bigquery/issues/3542)) ([16448ee](https://github.com/googleapis/java-bigquery/commit/16448eec7c7f00a113c923a0fcde463c8ac91f9b)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.39.0 ([#3548](https://github.com/googleapis/java-bigquery/issues/3548)) ([616b2f6](https://github.com/googleapis/java-bigquery/commit/616b2f611f313994bf0ec2889daea3b569a84baf)) +* Update github/codeql-action action to v2.26.13 ([#3536](https://github.com/googleapis/java-bigquery/issues/3536)) ([844744f](https://github.com/googleapis/java-bigquery/commit/844744f3dea804a31abc806592f557a26cffbab4)) +* Update github/codeql-action action to v2.27.0 ([#3540](https://github.com/googleapis/java-bigquery/issues/3540)) ([1616a0f](https://github.com/googleapis/java-bigquery/commit/1616a0f6057916e21f3b4a6d418d1431d8d1fa16)) + + +### Documentation + +* Reformat javadoc ([#3545](https://github.com/googleapis/java-bigquery/issues/3545)) ([4763f73](https://github.com/googleapis/java-bigquery/commit/4763f73ad854ca4bfdddbbdc0bb43fe639238665)) +* Update SimpleApp to explicitly set project id ([#3534](https://github.com/googleapis/java-bigquery/issues/3534)) ([903a0f7](https://github.com/googleapis/java-bigquery/commit/903a0f7db0926f3d166eebada1710413056fb4a2)) + ## [2.43.1](https://github.com/googleapis/java-bigquery/compare/v2.43.0...v2.43.1) (2024-10-09) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2d1239ead178..ec1f12a3d614 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.43.2-SNAPSHOT + 2.43.2 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 21f719a49904..8035b666c9a5 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.43.2-SNAPSHOT + 2.43.2 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.43.2-SNAPSHOT + 2.43.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 845a34a39d84..ca7e31834757 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.43.2-SNAPSHOT + 2.43.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.43.2-SNAPSHOT + 2.43.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index eab2b84b7727..5dacb64d5f5b 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.43.2-SNAPSHOT + 2.43.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.43.2-SNAPSHOT + 2.43.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7f45a7209ff3..78ddff3b7f0e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.43.2-SNAPSHOT + 2.43.2 diff --git a/versions.txt b/versions.txt index c189d4ed94db..40ca7de531c1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.43.1:2.43.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.43.2:2.43.2 \ No newline at end of file From 8ab87c4953a1891fde2109d61f6a753d750be4b2 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:07:23 -0400 Subject: [PATCH 3047/3441] chore(main): release 2.43.3-SNAPSHOT (#3551) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ec1f12a3d614..5c88ff11b772 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.43.2 + 2.43.3-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 8035b666c9a5..0650b251ec28 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.43.2 + 2.43.3-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.43.2 + 2.43.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ca7e31834757..983820234fc7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.43.2 + 2.43.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.43.2 + 2.43.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5dacb64d5f5b..22eae6781aa6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.43.2 + 2.43.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.43.2 + 2.43.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 78ddff3b7f0e..3d68c79ccfd3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.43.2 + 2.43.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 40ca7de531c1..d481a3f972c1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.43.2:2.43.2 \ No newline at end of file +google-cloud-bigquery:2.43.2:2.43.3-SNAPSHOT \ No newline at end of file From 19fc1843f7db8ab6fb361bf7f8119014033bc1c6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 29 Oct 2024 01:23:06 +0100 Subject: [PATCH 3048/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.10.2 (#3556) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 22eae6781aa6..4a654e6f12dc 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.10.1 + 3.10.2 pom import From 056ce2f8bc0b41667de48508f9306f527c59a697 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 22:21:08 -0400 Subject: [PATCH 3049/3441] chore(main): release 2.43.3 (#3557) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36bb39c29451..ac6b1d9e93b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.43.3](https://github.com/googleapis/java-bigquery/compare/v2.43.2...v2.43.3) (2024-10-29) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.10.2 ([19fc184](https://github.com/googleapis/java-bigquery/commit/19fc1843f7db8ab6fb361bf7f8119014033bc1c6)) + ## [2.43.2](https://github.com/googleapis/java-bigquery/compare/v2.43.1...v2.43.2) (2024-10-27) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5c88ff11b772..a371796e0d14 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.43.3-SNAPSHOT + 2.43.3 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 0650b251ec28..c52bc5d4b7e6 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.43.3-SNAPSHOT + 2.43.3 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.43.3-SNAPSHOT + 2.43.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 983820234fc7..52538ce4f0b9 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.43.3-SNAPSHOT + 2.43.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.43.3-SNAPSHOT + 2.43.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4a654e6f12dc..31168bf89414 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.43.3-SNAPSHOT + 2.43.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.43.3-SNAPSHOT + 2.43.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3d68c79ccfd3..358fb3bb4e1f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.43.3-SNAPSHOT + 2.43.3 diff --git a/versions.txt b/versions.txt index d481a3f972c1..aa33dddd5846 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.43.2:2.43.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.43.3:2.43.3 \ No newline at end of file From 950ad0cce6370e332a568d3b2e9ef3911503d206 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 29 Oct 2024 18:31:19 +0100 Subject: [PATCH 3050/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.55.0 (#3559) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 31168bf89414..0bb623e1c804 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.54.0 + 2.55.0 test From 1bd24a1ad28d168587b7cba95ec348cb1308a803 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 29 Oct 2024 18:32:34 +0100 Subject: [PATCH 3051/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.59.0 (#3561) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0bb623e1c804..79c2d984d998 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.58.0 + 1.59.0 pom import From f3332cbef5847b75b3f0fe5edfd6bf94d6b19967 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 29 Oct 2024 18:41:05 +0100 Subject: [PATCH 3052/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.43.3 (#3553) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 667606a0a423..a18bafdc3c82 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.43.1 + 2.43.3 From 7a03899d869d6f93891943159b56b69f3e8725fc Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 10:21:56 -0400 Subject: [PATCH 3053/3441] chore(main): release 2.43.4-SNAPSHOT (#3560) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a371796e0d14..4b1715bc20f9 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.43.3 + 2.43.4-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index c52bc5d4b7e6..dd70305e4dd8 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.43.3 + 2.43.4-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.43.3 + 2.43.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 52538ce4f0b9..67ba9eae2762 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.43.3 + 2.43.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.43.3 + 2.43.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 79c2d984d998..bf2518332ba3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.43.3 + 2.43.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.43.3 + 2.43.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 358fb3bb4e1f..0f2e1b497e9e 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.43.3 + 2.43.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index aa33dddd5846..5963ed596272 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.43.3:2.43.3 \ No newline at end of file +google-cloud-bigquery:2.43.3:2.43.4-SNAPSHOT \ No newline at end of file From bd24fd8c550bfbd1207b194ed5c863a4a9924d48 Mon Sep 17 00:00:00 2001 From: Liam <44932470+whuffman36@users.noreply.github.com> Date: Wed, 30 Oct 2024 09:48:47 -0700 Subject: [PATCH 3054/3441] feat: Enable maxTimeTravelHours in BigQuery java client library (#3555) * Enable maxTimeTravelHours in BigQuery java client library The BigQuery API contains a field called maxTimeTravelHours that refers to the Time Travel Window feature. This feature allows users to query deleted or updated data for an amount of time specified in the maxTimeTravelHours parameter. This change exposes the maxTimeTravelHours to users of the client library so they can set and update the amount of time that deleted or updated data is stored for a given dataset. * Update maxTimeTravelHours description to match discovery doc. Fix formatting errors. * Add DatasetInfo.Builder.setMaxTimeTravelHours() to clirr-ignored file. --- .../clirr-ignored-differences.xml | 5 +++ .../com/google/cloud/bigquery/Dataset.java | 6 +++ .../google/cloud/bigquery/DatasetInfo.java | 29 +++++++++++++ .../cloud/bigquery/DatasetInfoTest.java | 23 +++++++++++ .../google/cloud/bigquery/DatasetTest.java | 5 +++ .../cloud/bigquery/it/ITBigQueryTest.java | 41 +++++++++++++++++++ 6 files changed, 109 insertions(+) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 9c69fd6a68be..b6546847fe79 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -129,4 +129,9 @@ com/google/cloud/bigquery/StandardTableDefinition* *BigLakeConfiguration(*) + + 7013 + com/google/cloud/bigquery/DatasetInfo* + *setMaxTimeTravelHours(*) + \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java index daadb9a857e1..4fc8577853e7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java @@ -164,6 +164,12 @@ public Builder setStorageBillingModel(String storageBillingModel) { return this; } + @Override + public Builder setMaxTimeTravelHours(Long maxTimeTravelHours) { + infoBuilder.setMaxTimeTravelHours(maxTimeTravelHours); + return this; + } + @Override public Dataset build() { return new Dataset(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java index b5fabe97d1a2..f9b7f03e17b4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java @@ -75,6 +75,7 @@ public Dataset apply(DatasetInfo datasetInfo) { private final String defaultCollation; private final ExternalDatasetReference externalDatasetReference; private final String storageBillingModel; + private final Long maxTimeTravelHours; /** A builder for {@code DatasetInfo} objects. */ public abstract static class Builder { @@ -142,6 +143,12 @@ public abstract Builder setExternalDatasetReference( */ public abstract Builder setStorageBillingModel(String storageBillingModel); + /** + * Optional. Defines the time travel window in hours. The value can be from 48 to 168 hours (2 + * to 7 days). The default value is 168 hours if this is not set. The value may be {@code null}. + */ + public abstract Builder setMaxTimeTravelHours(Long maxTimeTravelHours); + /** * The default encryption key for all tables in the dataset. Once this property is set, all * newly-created partitioned tables in the dataset will have encryption key set to this value, @@ -200,6 +207,7 @@ static final class BuilderImpl extends Builder { private String defaultCollation; private ExternalDatasetReference externalDatasetReference; private String storageBillingModel; + private Long maxTimeTravelHours; BuilderImpl() {} @@ -221,6 +229,7 @@ static final class BuilderImpl extends Builder { this.defaultCollation = datasetInfo.defaultCollation; this.externalDatasetReference = datasetInfo.externalDatasetReference; this.storageBillingModel = datasetInfo.storageBillingModel; + this.maxTimeTravelHours = datasetInfo.maxTimeTravelHours; } BuilderImpl(com.google.api.services.bigquery.model.Dataset datasetPb) { @@ -260,6 +269,7 @@ public Acl apply(Dataset.Access accessPb) { ExternalDatasetReference.fromPb(datasetPb.getExternalDatasetReference()); } this.storageBillingModel = datasetPb.getStorageBillingModel(); + this.maxTimeTravelHours = datasetPb.getMaxTimeTravelHours(); } @Override @@ -372,6 +382,12 @@ public Builder setStorageBillingModel(String storageBillingModel) { return this; } + @Override + public Builder setMaxTimeTravelHours(Long maxTimeTravelHours) { + this.maxTimeTravelHours = maxTimeTravelHours; + return this; + } + @Override public DatasetInfo build() { return new DatasetInfo(this); @@ -396,6 +412,7 @@ public DatasetInfo build() { defaultCollation = builder.defaultCollation; externalDatasetReference = builder.externalDatasetReference; storageBillingModel = builder.storageBillingModel; + maxTimeTravelHours = builder.maxTimeTravelHours; } /** Returns the dataset identity. */ @@ -529,6 +546,14 @@ public String getStorageBillingModel() { return storageBillingModel; } + /** + * Returns the number of hours that deleted or updated data will be available to be queried for + * all tables in the dataset. + */ + public Long getMaxTimeTravelHours() { + return maxTimeTravelHours; + } + /** * Returns information about the external metadata storage where the dataset is defined. Filled * out when the dataset type is EXTERNAL. @@ -562,6 +587,7 @@ public String toString() { .add("defaultCollation", defaultCollation) .add("externalDatasetReference", externalDatasetReference) .add("storageBillingModel", storageBillingModel) + .add("maxTimeTravelHours", maxTimeTravelHours) .toString(); } @@ -646,6 +672,9 @@ public Dataset.Access apply(Acl acl) { if (storageBillingModel != null) { datasetPb.setStorageBillingModel(storageBillingModel); } + if (maxTimeTravelHours != null) { + datasetPb.setMaxTimeTravelHours(maxTimeTravelHours); + } return datasetPb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java index df62b7dac843..49a392baf734 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -17,6 +17,7 @@ package com.google.cloud.bigquery; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @@ -59,6 +60,8 @@ public class DatasetInfoTest { private static final EncryptionConfiguration DATASET_ENCRYPTION_CONFIGURATION = EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); private static final String STORAGE_BILLING_MODEL = "LOGICAL"; + private static final Long MAX_TIME_TRAVEL_HOURS_5_DAYS = 120L; + private static final Long MAX_TIME_TRAVEL_HOURS_7_DAYS = 168L; private static final ExternalDatasetReference EXTERNAL_DATASET_REFERENCE = ExternalDatasetReference.newBuilder() @@ -81,6 +84,7 @@ public class DatasetInfoTest { .setDefaultEncryptionConfiguration(DATASET_ENCRYPTION_CONFIGURATION) .setDefaultPartitionExpirationMs(DEFAULT_PARTITION__EXPIRATION) .setStorageBillingModel(STORAGE_BILLING_MODEL) + .setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS_7_DAYS) .build(); private static final DatasetInfo DATASET_INFO_COMPLETE = DATASET_INFO @@ -92,6 +96,8 @@ public class DatasetInfoTest { DATASET_INFO.toBuilder().setAcl(ACCESS_RULES_IAM_MEMBER).build(); private static final DatasetInfo DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE = DATASET_INFO.toBuilder().setExternalDatasetReference(EXTERNAL_DATASET_REFERENCE).build(); + private static final DatasetInfo DATASET_INFO_WITH_MAX_TIME_TRAVEL_5_DAYS = + DATASET_INFO.toBuilder().setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS_5_DAYS).build(); @Test public void testToBuilder() { @@ -173,6 +179,10 @@ public void testBuilder() { EXTERNAL_DATASET_REFERENCE, DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE.getExternalDatasetReference()); assertEquals(STORAGE_BILLING_MODEL, DATASET_INFO_COMPLETE.getStorageBillingModel()); + assertEquals(MAX_TIME_TRAVEL_HOURS_7_DAYS, DATASET_INFO.getMaxTimeTravelHours()); + assertEquals( + MAX_TIME_TRAVEL_HOURS_5_DAYS, + DATASET_INFO_WITH_MAX_TIME_TRAVEL_5_DAYS.getMaxTimeTravelHours()); } @Test @@ -194,6 +204,7 @@ public void testOf() { assertTrue(datasetInfo.getLabels().isEmpty()); assertNull(datasetInfo.getExternalDatasetReference()); assertNull(datasetInfo.getStorageBillingModel()); + assertNull(datasetInfo.getMaxTimeTravelHours()); datasetInfo = DatasetInfo.of(DATASET_ID); assertEquals(DATASET_ID, datasetInfo.getDatasetId()); @@ -212,6 +223,7 @@ public void testOf() { assertTrue(datasetInfo.getLabels().isEmpty()); assertNull(datasetInfo.getExternalDatasetReference()); assertNull(datasetInfo.getStorageBillingModel()); + assertNull(datasetInfo.getMaxTimeTravelHours()); } @Test @@ -229,6 +241,16 @@ public void testSetProjectId() { assertEquals(DATASET_INFO_COMPLETE, DATASET_INFO.setProjectId("project")); } + @Test + public void testSetMaxTimeTravelHours() { + assertNotEquals( + DATASET_INFO_WITH_MAX_TIME_TRAVEL_5_DAYS.getMaxTimeTravelHours(), + DATASET_INFO.getMaxTimeTravelHours()); + assertEquals( + DATASET_INFO_WITH_MAX_TIME_TRAVEL_5_DAYS, + DATASET_INFO.toBuilder().setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS_5_DAYS).build()); + } + private void compareDatasets(DatasetInfo expected, DatasetInfo value) { assertEquals(expected, value); assertEquals(expected.getDatasetId(), value.getDatasetId()); @@ -249,5 +271,6 @@ private void compareDatasets(DatasetInfo expected, DatasetInfo value) { expected.getDefaultPartitionExpirationMs(), value.getDefaultPartitionExpirationMs()); assertEquals(expected.getExternalDatasetReference(), value.getExternalDatasetReference()); assertEquals(expected.getStorageBillingModel(), value.getStorageBillingModel()); + assertEquals(expected.getMaxTimeTravelHours(), value.getMaxTimeTravelHours()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java index bc42976b23dc..e2d7c635ce9b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java @@ -67,6 +67,7 @@ public class DatasetTest { private static final DatasetInfo DATASET_INFO = DatasetInfo.newBuilder(DATASET_ID).build(); private static final Field FIELD = Field.of("FieldName", LegacySQLTypeName.INTEGER); private static final String STORAGE_BILLING_MODEL = "LOGICAL"; + private static final Long MAX_TIME_TRAVEL_HOURS = 168L; private static final StandardTableDefinition TABLE_DEFINITION = StandardTableDefinition.of(Schema.of(FIELD)); private static final ViewDefinition VIEW_DEFINITION = ViewDefinition.of("QUERY"); @@ -122,6 +123,7 @@ public void testBuilder() { .setSelfLink(SELF_LINK) .setLabels(LABELS) .setStorageBillingModel(STORAGE_BILLING_MODEL) + .setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS) .build(); assertEquals(DATASET_ID, builtDataset.getDatasetId()); assertEquals(ACCESS_RULES, builtDataset.getAcl()); @@ -136,6 +138,7 @@ public void testBuilder() { assertEquals(SELF_LINK, builtDataset.getSelfLink()); assertEquals(LABELS, builtDataset.getLabels()); assertEquals(STORAGE_BILLING_MODEL, builtDataset.getStorageBillingModel()); + assertEquals(MAX_TIME_TRAVEL_HOURS, builtDataset.getMaxTimeTravelHours()); } @Test @@ -344,6 +347,7 @@ public void testExternalDatasetReference() { .setLabels(LABELS) .setExternalDatasetReference(EXTERNAL_DATASET_REFERENCE) .setStorageBillingModel(STORAGE_BILLING_MODEL) + .setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS) .build(); assertEquals( EXTERNAL_DATASET_REFERENCE, @@ -374,5 +378,6 @@ private void compareDatasetInfo(DatasetInfo expected, DatasetInfo value) { assertEquals(expected.getLastModified(), value.getLastModified()); assertEquals(expected.getExternalDatasetReference(), value.getExternalDatasetReference()); assertEquals(expected.getStorageBillingModel(), value.getStorageBillingModel()); + assertEquals(expected.getMaxTimeTravelHours(), value.getMaxTimeTravelHours()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index b1cb8d84513a..86ccd7c7d84e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -213,6 +213,8 @@ public class ITBigQueryTest { private static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); private static final String RANDOM_ID = UUID.randomUUID().toString().substring(0, 8); private static final String STORAGE_BILLING_MODEL = "LOGICAL"; + private static final Long MAX_TIME_TRAVEL_HOURS = 120L; + private static final Long MAX_TIME_TRAVEL_HOURS_DEFAULT = 168L; private static final String CLOUD_SAMPLES_DATA = Optional.fromNullable(System.getenv("CLOUD_SAMPLES_DATA_BUCKET")).or("cloud-samples-data"); private static final Map LABELS = @@ -1214,6 +1216,7 @@ public void testGetDatasetWithSelectedFields() { assertNull(dataset.getLocation()); assertNull(dataset.getSelfLink()); assertNull(dataset.getStorageBillingModel()); + assertNull(dataset.getMaxTimeTravelHours()); } @Test @@ -1230,6 +1233,7 @@ public void testUpdateDataset() { assertThat(dataset.getDescription()).isEqualTo("Some Description"); assertThat(dataset.getLabels()).containsExactly("a", "b"); assertThat(dataset.getStorageBillingModel()).isNull(); + assertThat(dataset.getMaxTimeTravelHours()).isNull(); Map updateLabels = new HashMap<>(); updateLabels.put("x", "y"); @@ -1241,10 +1245,12 @@ public void testUpdateDataset() { .setDescription("Updated Description") .setLabels(updateLabels) .setStorageBillingModel("LOGICAL") + .setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS) .build()); assertThat(updatedDataset.getDescription()).isEqualTo("Updated Description"); assertThat(updatedDataset.getLabels()).containsExactly("x", "y"); assertThat(updatedDataset.getStorageBillingModel()).isEqualTo("LOGICAL"); + assertThat(updatedDataset.getMaxTimeTravelHours()).isEqualTo(MAX_TIME_TRAVEL_HOURS); updatedDataset = bigquery.update(updatedDataset.toBuilder().setLabels(null).build()); assertThat(updatedDataset.getLabels()).isEmpty(); @@ -1275,6 +1281,7 @@ public void testUpdateDatasetWithSelectedFields() { assertNull(updatedDataset.getLocation()); assertNull(updatedDataset.getSelfLink()); assertNull(updatedDataset.getStorageBillingModel()); + assertNull(updatedDataset.getMaxTimeTravelHours()); assertTrue(dataset.delete()); } @@ -1630,6 +1637,40 @@ public void testCreateDatasetWithSpecifiedStorageBillingModel() { RemoteBigQueryHelper.forceDelete(bigquery, billingModelDataset); } + @Test + public void testCreateDatasetWithSpecificMaxTimeTravelHours() { + String timeTravelDataset = RemoteBigQueryHelper.generateDatasetName(); + DatasetInfo info = + DatasetInfo.newBuilder(timeTravelDataset) + .setDescription(DESCRIPTION) + .setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS) + .setLabels(LABELS) + .build(); + bigquery.create(info); + + Dataset dataset = bigquery.getDataset(DatasetId.of(timeTravelDataset)); + assertEquals(MAX_TIME_TRAVEL_HOURS, dataset.getMaxTimeTravelHours()); + + RemoteBigQueryHelper.forceDelete(bigquery, timeTravelDataset); + } + + @Test + public void testCreateDatasetWithDefaultMaxTimeTravelHours() { + String timeTravelDataset = RemoteBigQueryHelper.generateDatasetName(); + DatasetInfo info = + DatasetInfo.newBuilder(timeTravelDataset) + .setDescription(DESCRIPTION) + .setLabels(LABELS) + .build(); + bigquery.create(info); + + Dataset dataset = bigquery.getDataset(DatasetId.of(timeTravelDataset)); + // In the backend, BigQuery sets the default Time Travel Window to be 168 hours (7 days). + assertEquals(MAX_TIME_TRAVEL_HOURS_DEFAULT, dataset.getMaxTimeTravelHours()); + + RemoteBigQueryHelper.forceDelete(bigquery, timeTravelDataset); + } + @Test public void testCreateDatasetWithDefaultCollation() { String collationDataset = RemoteBigQueryHelper.generateDatasetName(); From 20826f1b08a3cc5bdcce5637b7ea21d467b2bce2 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 31 Oct 2024 13:06:59 -0400 Subject: [PATCH 3055/3441] fix: Update experimental methods documentation to @internalapi (#3552) * docs: Update experimental methods documentation to @InternalApi * docs: Update experimental methods documentation to @InternalApi --- .../cloud/bigquery/LoadConfiguration.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java index d4ed81044941..58cf986706a5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java @@ -16,6 +16,7 @@ package com.google.cloud.bigquery; +import com.google.api.core.InternalApi; import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; import com.google.cloud.bigquery.JobInfo.WriteDisposition; @@ -99,17 +100,17 @@ interface Builder { Builder setIgnoreUnknownValues(Boolean ignoreUnknownValues); /** - * [Experimental] Sets options allowing the schema of the destination table to be updated as a - * side effect of the load job. Schema update options are supported in two cases: when - * writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination - * table is a partition of a table, specified by partition decorators. For normal tables, - * WRITE_TRUNCATE will always overwrite the schema. + * Sets options allowing the schema of the destination table to be updated as a side effect of + * the load job. Schema update options are supported in two cases: when writeDisposition is + * WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a + * partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE + * will always overwrite the schema. */ + @InternalApi Builder setSchemaUpdateOptions(List schemaUpdateOptions); - /** - * [Experimental] Sets automatic inference of the options and schema for CSV and JSON sources. - */ + /** Sets automatic inference of the options and schema for CSV and JSON sources. */ + @InternalApi Builder setAutodetect(Boolean autodetect); /** Sets the time partitioning specification for the destination table. */ @@ -202,18 +203,19 @@ interface Builder { DatastoreBackupOptions getDatastoreBackupOptions(); /** - * [Experimental] Returns options allowing the schema of the destination table to be updated as a - * side effect of the load job. Schema update options are supported in two cases: when - * writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination - * table is a partition of a table, specified by partition decorators. For normal tables, - * WRITE_TRUNCATE will always overwrite the schema. + * Returns options allowing the schema of the destination table to be updated as a side effect of + * the load job. Schema update options are supported in two cases: when writeDisposition is + * WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition + * of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always + * overwrite the schema. */ + @InternalApi List getSchemaUpdateOptions(); /** - * [Experimental] Returns whether automatic inference of the options and schema for CSV and JSON - * sources is set. + * Returns whether automatic inference of the options and schema for CSV and JSON sources is set. */ + @InternalApi Boolean getAutodetect(); /** Returns the time partitioning specification defined for the destination table. */ From 26e4ac1d2e434448ed568144797cee8de4c336f4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 31 Oct 2024 18:08:52 +0100 Subject: [PATCH 3056/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.55.0 (#3558) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index bf2518332ba3..f24d9907fd31 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.54.0 + 2.55.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index a18bafdc3c82..5dd4a19a0cb9 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.54.0 + 2.55.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0f2e1b497e9e..25a50c821dd8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.54.0 + 2.55.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 68190cb0511a..2e4556244f9c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.54.0 + 2.55.0 test From 20705d196e8bc2c7721f53705607da000e809b3c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 31 Oct 2024 19:17:51 +0100 Subject: [PATCH 3057/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.46.0 (#3562) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 5dd4a19a0cb9..22eaa7ee70cf 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.45.1 + 2.46.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 25a50c821dd8..286bafd799e2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.45.1 + 2.46.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 2e4556244f9c..709d349cc6c2 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.45.1 + 2.46.0 test From 552f49132af370f66aa1ccdde86e6280f638da22 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Mon, 4 Nov 2024 10:45:14 -0500 Subject: [PATCH 3058/3441] docs: fix BigQuery documentation formating (#3565) * fix parentheses and use @see to link direct link * more doc fix --- .../com/google/cloud/bigquery/BigQuery.java | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 675e6c1e867f..613134fa06d1 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -244,8 +244,9 @@ private DatasetListOption(BigQueryRpc.Option option, Object value) { } /** - * Returns an option to specify a label filter. See - * https://cloud.google.com/bigquery/docs/adding-using-labels#filtering_datasets_using_labels + * Returns an option to specify a label filter. @see Filtering + * using labels * * @param labelFilter In the form "labels.key:value" */ @@ -280,7 +281,7 @@ private DatasetOption(BigQueryRpc.Option option, Object value) { /** * Returns an option to specify the dataset's fields to be returned by the RPC call. If this - * option is not provided all dataset's fields are returned. { code DatasetOption.fields} can be + * option is not provided all dataset's fields are returned. {@code DatasetOption.fields} can be * used to specify only the fields of interest. {@link Dataset#getDatasetId()} is always * returned, even if not specified. */ @@ -864,8 +865,7 @@ public int hashCode() { /** * Lists the project's datasets. This method returns partial information on each dataset: ({@link * Dataset#getDatasetId()}, {@link Dataset#getFriendlyName()} and {@link - * Dataset#getGeneratedId()}). To get complete information use either {@link #getDataset(String, - * DatasetOption...)} or {@link #getDataset(DatasetId, DatasetOption...)}. + * Dataset#getGeneratedId()}). To get complete information use {@link #getDataset}. * *

    Example of listing datasets, specifying the page size. * @@ -884,8 +884,7 @@ public int hashCode() { /** * Lists the datasets in the provided project. This method returns partial information on each * dataset: ({@link Dataset#getDatasetId()}, {@link Dataset#getFriendlyName()} and {@link - * Dataset#getGeneratedId()}). To get complete information use either {@link #getDataset(String, - * DatasetOption...)} or {@link #getDataset(DatasetId, DatasetOption...)}. + * Dataset#getGeneratedId()}). To get complete information use either {@link #getDataset}. * *

    Example of listing datasets in a project, specifying the page size. * @@ -1205,7 +1204,7 @@ public int hashCode() { * Lists the tables in the dataset. This method returns partial information on each table: ({@link * Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} and type, * which is part of {@link Table#getDefinition()}). To get complete information use either {@link - * #getTable(TableId, TableOption...)} or {@link #getTable(String, String, TableOption...)}. + * #getTable}. * *

    Example of listing the tables in a dataset, specifying the page size. * @@ -1225,7 +1224,7 @@ public int hashCode() { * Lists the tables in the dataset. This method returns partial information on each table: ({@link * Table#getTableId()}, {@link Table#getFriendlyName()}, {@link Table#getGeneratedId()} and type, * which is part of {@link Table#getDefinition()}). To get complete information use either {@link - * #getTable(TableId, TableOption...)} or {@link #getTable(String, String, TableOption...)}. + * #getTable}. * *

    Example of listing the tables in a dataset. * @@ -1429,8 +1428,7 @@ TableResult listTableData( /** * Sends a job cancel request. This call will return immediately. The job status can then be - * checked using either {@link #getJob(JobId, JobOption...)} or {@link #getJob(String, - * JobOption...)}). + * checked by using {@link #getJob}. * *

    If the location of the job is not "US" or "EU", {@link #cancel(JobId)} must be used instead. * @@ -1454,8 +1452,7 @@ TableResult listTableData( /** * Sends a job cancel request. This call will return immediately. The job status can then be - * checked using either {@link #getJob(JobId, JobOption...)} or {@link #getJob(String, - * JobOption...)}). + * checked using {@link #getJob}. * *

    If the location of the job is not "US" or "EU", the {@code jobId} must specify the job * location. From e154ee300485dc9d900343a8b5ceb7f6633bc3ff Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 11 Nov 2024 15:28:52 +0100 Subject: [PATCH 3059/3441] deps: update github/codeql-action action to v2.27.1 (#3567) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 1be1c2a32aca..8c490195b78c 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@6a89f57882288b3d2f190cda65000eec9e9ebb7c # v2.27.0 + uses: github/codeql-action/upload-sarif@e96cea3a2effd357d270bca8686d8d8b04ee0773 # v2.27.1 with: sarif_file: results.sarif From b5ccfccb552e731ccb09be923715849a4282d44d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 11 Nov 2024 17:03:36 +0100 Subject: [PATCH 3060/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20241027-2.0.0 (#3568) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f24d9907fd31..4f9b2a8bb88c 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20241013-2.0.0 + v2-rev20241027-2.0.0 From 3707a402039365c49e1976a388593f621231dc02 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 13 Nov 2024 18:24:53 +0100 Subject: [PATCH 3061/3441] deps: update github/codeql-action action to v2.27.3 (#3569) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 8c490195b78c..f7fa6605dbf6 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@e96cea3a2effd357d270bca8686d8d8b04ee0773 # v2.27.1 + uses: github/codeql-action/upload-sarif@cb6549f9103a3855e5c5084c8f44b706e1b0a83f # v2.27.3 with: sarif_file: results.sarif From 2c7b4f750f4c8bf03c0ba74402d745341382a209 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 18 Nov 2024 00:49:30 +0100 Subject: [PATCH 3062/3441] deps: update github/codeql-action action to v2.27.4 (#3572) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index f7fa6605dbf6..7b7392924e23 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@cb6549f9103a3855e5c5084c8f44b706e1b0a83f # v2.27.3 + uses: github/codeql-action/upload-sarif@5b62e7a9f186342c830e01bc69a4626fd1573b6e # v2.27.4 with: sarif_file: results.sarif From 8efbb39db8168456817dff4f52fd9278a633b65e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 18 Nov 2024 00:50:36 +0100 Subject: [PATCH 3063/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.47.0 (#3573) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 22eaa7ee70cf..62a0e492eb20 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.46.0 + 2.47.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 286bafd799e2..9e713b908cfb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.46.0 + 2.47.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 709d349cc6c2..53dd50eb76c0 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.46.0 + 2.47.0 test From d5fa951b8255ec1bcbcdf9bb3c29f247e38a0c7e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 18 Nov 2024 00:51:01 +0100 Subject: [PATCH 3064/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.40.0 (#3576) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 4df9466e7dab..39ab435d5dab 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.39.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.40.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 4bc28d0afa4b..30a89e0a5586 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.39.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.40.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 33a4a9d957e4..b78f2e1fa4ca 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.39.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.40.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index ba53eb9ce2ea..4dbae8340ef4 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.39.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.40.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 418a399b7599..a836c97f04bd 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.39.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.40.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index dd70305e4dd8..c5107c5cbf7a 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.39.0 + 3.40.0 diff --git a/pom.xml b/pom.xml index 4f9b2a8bb88c..b55af2977bc2 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.39.0 + 3.40.0 From 4207f44453427a1d2a5da54e98d957b4c54e1917 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 15:26:46 -0500 Subject: [PATCH 3065/3441] chore(main): release 2.44.0 (#3563) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 37 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ac6b1d9e93b7..7c9f9565ce17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,33 @@ # Changelog +## [2.44.0](https://github.com/googleapis/java-bigquery/compare/v2.43.3...v2.44.0) (2024-11-17) + + +### Features + +* Enable maxTimeTravelHours in BigQuery java client library ([#3555](https://github.com/googleapis/java-bigquery/issues/3555)) ([bd24fd8](https://github.com/googleapis/java-bigquery/commit/bd24fd8c550bfbd1207b194ed5c863a4a9924d48)) + + +### Bug Fixes + +* Update experimental methods documentation to [@internalapi](https://github.com/internalapi) ([#3552](https://github.com/googleapis/java-bigquery/issues/3552)) ([20826f1](https://github.com/googleapis/java-bigquery/commit/20826f1b08a3cc5bdcce5637b7ea21d467b2bce2)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.55.0 ([#3559](https://github.com/googleapis/java-bigquery/issues/3559)) ([950ad0c](https://github.com/googleapis/java-bigquery/commit/950ad0cce6370e332a568d3b2e9ef3911503d206)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20241027-2.0.0 ([#3568](https://github.com/googleapis/java-bigquery/issues/3568)) ([b5ccfcc](https://github.com/googleapis/java-bigquery/commit/b5ccfccb552e731ccb09be923715849a4282d44d)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.59.0 ([#3561](https://github.com/googleapis/java-bigquery/issues/3561)) ([1bd24a1](https://github.com/googleapis/java-bigquery/commit/1bd24a1ad28d168587b7cba95ec348cb1308a803)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.40.0 ([#3576](https://github.com/googleapis/java-bigquery/issues/3576)) ([d5fa951](https://github.com/googleapis/java-bigquery/commit/d5fa951b8255ec1bcbcdf9bb3c29f247e38a0c7e)) +* Update github/codeql-action action to v2.27.1 ([#3567](https://github.com/googleapis/java-bigquery/issues/3567)) ([e154ee3](https://github.com/googleapis/java-bigquery/commit/e154ee300485dc9d900343a8b5ceb7f6633bc3ff)) +* Update github/codeql-action action to v2.27.3 ([#3569](https://github.com/googleapis/java-bigquery/issues/3569)) ([3707a40](https://github.com/googleapis/java-bigquery/commit/3707a402039365c49e1976a388593f621231dc02)) +* Update github/codeql-action action to v2.27.4 ([#3572](https://github.com/googleapis/java-bigquery/issues/3572)) ([2c7b4f7](https://github.com/googleapis/java-bigquery/commit/2c7b4f750f4c8bf03c0ba74402d745341382a209)) + + +### Documentation + +* Fix BigQuery documentation formating ([#3565](https://github.com/googleapis/java-bigquery/issues/3565)) ([552f491](https://github.com/googleapis/java-bigquery/commit/552f49132af370f66aa1ccdde86e6280f638da22)) + ## [2.43.3](https://github.com/googleapis/java-bigquery/compare/v2.43.2...v2.43.3) (2024-10-29) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4b1715bc20f9..e7c22a8df369 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.43.4-SNAPSHOT + 2.44.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index c5107c5cbf7a..9e21d015b034 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.43.4-SNAPSHOT + 2.44.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.43.4-SNAPSHOT + 2.44.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 67ba9eae2762..e4a5bb416c76 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.43.4-SNAPSHOT + 2.44.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.43.4-SNAPSHOT + 2.44.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b55af2977bc2..3ff9940deaa1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.43.4-SNAPSHOT + 2.44.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.43.4-SNAPSHOT + 2.44.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9e713b908cfb..8f2ddaee2b19 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.43.4-SNAPSHOT + 2.44.0 diff --git a/versions.txt b/versions.txt index 5963ed596272..e384f6fdaae1 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.43.3:2.43.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.44.0:2.44.0 \ No newline at end of file From 829086560d3b0600d3dd2e335599c44abf3fb4a6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 02:45:16 -0500 Subject: [PATCH 3066/3441] chore(main): release 2.44.1-SNAPSHOT (#3577) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index e7c22a8df369..a459346de352 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.44.0 + 2.44.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 9e21d015b034..71accd6f7c7f 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.44.0 + 2.44.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.44.0 + 2.44.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e4a5bb416c76..0feea483048a 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.44.0 + 2.44.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.44.0 + 2.44.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3ff9940deaa1..7888df531650 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.44.0 + 2.44.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.44.0 + 2.44.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8f2ddaee2b19..add00b377c84 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.44.0 + 2.44.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index e384f6fdaae1..530a7c3ed710 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.44.0:2.44.0 \ No newline at end of file +google-cloud-bigquery:2.44.0:2.44.1-SNAPSHOT \ No newline at end of file From 6a7401af5e458e15815284c1a2d86ce50476e48e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Nov 2024 09:17:52 +0100 Subject: [PATCH 3067/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.45.0 (#3579) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7888df531650..86986753d128 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.44.1 + 2.45.0 test From d0116ee427c6d2e95736a36db9d563482bf5dca1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Nov 2024 09:18:17 +0100 Subject: [PATCH 3068/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.10.3 (#3580) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 86986753d128..d44623ff16f5 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.10.2 + 3.10.3 pom import From fbfc5bcfbe6a365d099c9b1aae0ec485706f02fa Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Nov 2024 09:19:08 +0100 Subject: [PATCH 3069/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.56.0 (#3581) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index d44623ff16f5..a82eb5f235c1 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.55.0 + 2.56.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 62a0e492eb20..76fa79c4de43 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.55.0 + 2.56.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index add00b377c84..08985bc57de0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.55.0 + 2.56.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 53dd50eb76c0..32014ec9d397 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.55.0 + 2.56.0 test From 34dd8bc22c8188f2b61dc9939b24a8d820548e2b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Nov 2024 09:19:31 +0100 Subject: [PATCH 3070/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.60.0 (#3583) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a82eb5f235c1..9219ca1ecfc4 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.59.0 + 1.60.0 pom import From e4600f1a71b00a83f5161bf7fcd3fc55ba32ab78 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Nov 2024 09:21:26 +0100 Subject: [PATCH 3071/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.44.0 (#3584) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 76fa79c4de43..60d8d34d6b82 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.43.3 + 2.44.0 From d2ae87ba43f53ca703ca51335a05a9c1865ca8c0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Nov 2024 09:22:39 +0100 Subject: [PATCH 3072/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.48.0 (#3585) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 60d8d34d6b82..32cb239d6f12 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.47.0 + 2.48.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 08985bc57de0..3f0b600223ee 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.47.0 + 2.48.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 32014ec9d397..dd4aa5e9e550 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.47.0 + 2.48.0 test From 3f9407570fea5317aaf212b058ca1da05985eda9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Nov 2024 09:23:03 +0100 Subject: [PATCH 3073/3441] deps: update github/codeql-action action to v2.27.5 (#3588) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 7b7392924e23..e82f85f397d8 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@5b62e7a9f186342c830e01bc69a4626fd1573b6e # v2.27.4 + uses: github/codeql-action/upload-sarif@e2b57b01d64b69ac273abfbea5d3ed15231e1706 # v2.27.5 with: sarif_file: results.sarif From 6767aaeb9735db15bcff8e9b90a473ea460faf51 Mon Sep 17 00:00:00 2001 From: Joe Wang <106995533+JoeWang1127@users.noreply.github.com> Date: Thu, 28 Nov 2024 01:45:11 +0000 Subject: [PATCH 3074/3441] chore: mark the unmanaged dependency check required (#3593) --- .github/sync-repo-settings.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index fc078dbe3f11..be7c5c0fe1a9 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -16,6 +16,7 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - cla/google - javadoc + - unmanaged_dependency_check - pattern: 1.127.12-sp isAdminEnforced: true requiredApprovingReviewCount: 1 From 616ee2aa8ccf3d2975274b256252f2f249775960 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 2 Dec 2024 04:34:03 +0100 Subject: [PATCH 3075/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.56.0 (#3582) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9219ca1ecfc4..2e94bc0248fa 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.55.0 + 2.56.0 test From 3eef3a9959bcfdb76c26fdf9069d9acf89f93a7a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 2 Dec 2024 04:34:18 +0100 Subject: [PATCH 3076/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20241111-2.0.0 (#3591) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2e94bc0248fa..2eabd261ccd3 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20241027-2.0.0 + v2-rev20241111-2.0.0 From c0b874aa0150e63908450b13d019864b8cbfbfe3 Mon Sep 17 00:00:00 2001 From: Liam <44932470+whuffman36@users.noreply.github.com> Date: Mon, 2 Dec 2024 10:25:38 -0800 Subject: [PATCH 3077/3441] feat: Enable Lossless Timestamps in BQ java client lib (#3589) * feat: Enable Lossless Timestamps in BQ java client lib * Fix Formatting. * Fix tests for FieldValue and FieldValueList. * Add more robust testing to IT test, minor formatting fixes. --- .../google/cloud/bigquery/BigQueryImpl.java | 18 ++++--- .../cloud/bigquery/BigQueryOptions.java | 18 ++++++- .../com/google/cloud/bigquery/FieldValue.java | 51 ++++++++++++++----- .../google/cloud/bigquery/FieldValueList.java | 8 ++- .../cloud/bigquery/QueryRequestInfo.java | 12 ++++- .../cloud/bigquery/FieldValueListTest.java | 26 ++++++++++ .../google/cloud/bigquery/FieldValueTest.java | 19 +++++++ .../cloud/bigquery/QueryRequestInfoTest.java | 23 +++++++-- .../cloud/bigquery/it/ITBigQueryTest.java | 36 +++++++++++++ 9 files changed, 183 insertions(+), 28 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 57608321574e..770345000c5e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1206,7 +1206,7 @@ public TableDataList call() { new PageImpl<>( new TableDataPageFetcher(tableId, schema, serviceOptions, cursor, pageOptionMap), cursor, - transformTableData(result.getRows(), schema)), + transformTableData(result.getRows(), schema, serviceOptions.getUseInt64Timestamps())), result.getTotalRows()); } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -1214,7 +1214,7 @@ public TableDataList call() { } private static Iterable transformTableData( - Iterable tableDataPb, final Schema schema) { + Iterable tableDataPb, final Schema schema, boolean useInt64Timestamps) { return ImmutableList.copyOf( Iterables.transform( tableDataPb != null ? tableDataPb : ImmutableList.of(), @@ -1223,7 +1223,7 @@ private static Iterable transformTableData( @Override public FieldValueList apply(TableRow rowPb) { - return FieldValueList.fromPb(rowPb.getF(), fields); + return FieldValueList.fromPb(rowPb.getF(), fields, useInt64Timestamps); } })); } @@ -1347,7 +1347,8 @@ public TableResult query(QueryJobConfiguration configuration, JobOption... optio // If all parameters passed in configuration are supported by the query() method on the backend, // put on fast path - QueryRequestInfo requestInfo = new QueryRequestInfo(configuration); + QueryRequestInfo requestInfo = + new QueryRequestInfo(configuration, getOptions().getUseInt64Timestamps()); if (requestInfo.isFastQuerySupported(null)) { String projectId = getOptions().getProjectId(); QueryRequest content = requestInfo.toPb(); @@ -1420,7 +1421,8 @@ public com.google.api.services.bigquery.model.QueryResponse call() { // fetch next pages of results new QueryPageFetcher(jobId, schema, getOptions(), cursor, optionMap(options)), cursor, - transformTableData(results.getRows(), schema))) + transformTableData( + results.getRows(), schema, getOptions().getUseInt64Timestamps()))) .setJobId(jobId) .setQueryId(results.getQueryId()) .build(); @@ -1433,7 +1435,8 @@ public com.google.api.services.bigquery.model.QueryResponse call() { new PageImpl<>( new TableDataPageFetcher(null, schema, getOptions(), null, optionMap(options)), null, - transformTableData(results.getRows(), schema))) + transformTableData( + results.getRows(), schema, getOptions().getUseInt64Timestamps()))) // Return the JobID of the successful job .setJobId( results.getJobReference() != null ? JobId.fromPb(results.getJobReference()) : null) @@ -1448,7 +1451,8 @@ public TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOp // If all parameters passed in configuration are supported by the query() method on the backend, // put on fast path - QueryRequestInfo requestInfo = new QueryRequestInfo(configuration); + QueryRequestInfo requestInfo = + new QueryRequestInfo(configuration, getOptions().getUseInt64Timestamps()); if (requestInfo.isFastQuerySupported(jobId)) { // Be careful when setting the projectID in JobId, if a projectID is specified in the JobId, // the job created by the query method will use that project. This may cause the query to diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index e53439f02369..465cc83058d2 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -34,10 +34,11 @@ public class BigQueryOptions extends ServiceOptions { private static final int DEFAULT_READ_API_TIME_OUT = 60000; private static final String BIGQUERY_SCOPE = "https://www.googleapis.com/auth/bigquery"; private static final Set SCOPES = ImmutableSet.of(BIGQUERY_SCOPE); - private static final long serialVersionUID = -2437598817433266049L; + private static final long serialVersionUID = -2437598817433266048L; private final String location; // set the option ThrowNotFound when you want to throw the exception when the value not found private boolean setThrowNotFound; + private boolean useInt64Timestamps; private String queryPreviewEnabled = System.getenv("QUERY_PREVIEW_ENABLED"); public static class DefaultBigQueryFactory implements BigQueryFactory { @@ -63,6 +64,7 @@ public ServiceRpc create(BigQueryOptions options) { public static class Builder extends ServiceOptions.Builder { private String location; + private boolean useInt64Timestamps; private Builder() {} @@ -84,6 +86,11 @@ public Builder setLocation(String location) { return this; } + public Builder setUseInt64Timestamps(boolean useInt64Timestamps) { + this.useInt64Timestamps = useInt64Timestamps; + return this; + } + @Override public BigQueryOptions build() { return new BigQueryOptions(this); @@ -93,6 +100,7 @@ public BigQueryOptions build() { private BigQueryOptions(Builder builder) { super(BigQueryFactory.class, BigQueryRpcFactory.class, builder, new BigQueryDefaults()); this.location = builder.location; + this.useInt64Timestamps = builder.useInt64Timestamps; } private static class BigQueryDefaults implements ServiceDefaults { @@ -140,6 +148,10 @@ public void setThrowNotFound(boolean setThrowNotFound) { this.setThrowNotFound = setThrowNotFound; } + public void setUseInt64Timestamps(boolean useInt64Timestamps) { + this.useInt64Timestamps = useInt64Timestamps; + } + @VisibleForTesting public void setQueryPreviewEnabled(String queryPreviewEnabled) { this.queryPreviewEnabled = queryPreviewEnabled; @@ -149,6 +161,10 @@ public boolean getThrowNotFound() { return setThrowNotFound; } + public boolean getUseInt64Timestamps() { + return useInt64Timestamps; + } + @SuppressWarnings("unchecked") @Override public Builder toBuilder() { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java index c5a8fab07c0f..d11df4b956af 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java @@ -26,6 +26,7 @@ import com.google.common.io.BaseEncoding; import java.io.Serializable; import java.math.BigDecimal; +import java.math.BigInteger; import java.math.RoundingMode; import java.time.Duration; import java.time.Instant; @@ -46,10 +47,11 @@ public class FieldValue implements Serializable { private static final int MICROSECONDS = 1000000; - private static final long serialVersionUID = 469098630191710061L; + private static final long serialVersionUID = 469098630191710062L; private final Attribute attribute; private final Object value; + private final Boolean useInt64Timestamps; /** The field value's attribute, giving information on the field's content type. */ public enum Attribute { @@ -74,8 +76,13 @@ public enum Attribute { } private FieldValue(Attribute attribute, Object value) { + this(attribute, value, false); + } + + private FieldValue(Attribute attribute, Object value, Boolean useInt64Timestamps) { this.attribute = checkNotNull(attribute); this.value = value; + this.useInt64Timestamps = useInt64Timestamps; } /** @@ -107,6 +114,10 @@ public Object getValue() { return value; } + public Boolean getUseInt64Timestamps() { + return useInt64Timestamps; + } + /** * Returns this field's value as a {@link String}. This method should only be used if the * corresponding field has primitive type ({@link LegacySQLTypeName#BYTES}, {@link @@ -207,6 +218,9 @@ public boolean getBooleanValue() { */ @SuppressWarnings("unchecked") public long getTimestampValue() { + if (useInt64Timestamps) { + return new BigInteger(getStringValue()).longValue(); + } // timestamps are encoded in the format 1408452095.22 where the integer part is seconds since // epoch (e.g. 1408452095.22 == 2014-08-19 07:41:35.220 -05:00) BigDecimal secondsWithMicro = new BigDecimal(getStringValue()); @@ -317,12 +331,13 @@ public String toString() { return MoreObjects.toStringHelper(this) .add("attribute", attribute) .add("value", value) + .add("useInt64Timestamps", useInt64Timestamps) .toString(); } @Override public final int hashCode() { - return Objects.hash(attribute, value); + return Objects.hash(attribute, value, useInt64Timestamps); } @Override @@ -334,7 +349,9 @@ public final boolean equals(Object obj) { return false; } FieldValue other = (FieldValue) obj; - return attribute == other.attribute && Objects.equals(value, other.value); + return attribute == other.attribute + && Objects.equals(value, other.value) + && Objects.equals(useInt64Timestamps, other.useInt64Timestamps); } /** @@ -353,29 +370,38 @@ public final boolean equals(Object obj) { */ @BetaApi public static FieldValue of(Attribute attribute, Object value) { - return new FieldValue(attribute, value); + return of(attribute, value, false); + } + + @BetaApi + public static FieldValue of(Attribute attribute, Object value, Boolean useInt64Timestamps) { + return new FieldValue(attribute, value, useInt64Timestamps); } static FieldValue fromPb(Object cellPb) { - return fromPb(cellPb, null); + return fromPb(cellPb, null, false); } @SuppressWarnings("unchecked") - static FieldValue fromPb(Object cellPb, Field recordSchema) { + static FieldValue fromPb(Object cellPb, Field recordSchema, Boolean useInt64Timestamps) { if (Data.isNull(cellPb)) { - return FieldValue.of(Attribute.PRIMITIVE, null); + return FieldValue.of(Attribute.PRIMITIVE, null, useInt64Timestamps); } if (cellPb instanceof String) { if ((recordSchema != null) && (recordSchema.getType() == LegacySQLTypeName.RANGE) && (recordSchema.getRangeElementType() != null)) { return FieldValue.of( - Attribute.RANGE, Range.of((String) cellPb, recordSchema.getRangeElementType())); + Attribute.RANGE, + Range.of((String) cellPb, recordSchema.getRangeElementType()), + useInt64Timestamps); } - return FieldValue.of(Attribute.PRIMITIVE, cellPb); + return FieldValue.of(Attribute.PRIMITIVE, cellPb, useInt64Timestamps); } if (cellPb instanceof List) { - return FieldValue.of(Attribute.REPEATED, FieldValueList.fromPb((List) cellPb, null)); + return FieldValue.of( + Attribute.REPEATED, + FieldValueList.fromPb((List) cellPb, null, useInt64Timestamps)); } if (cellPb instanceof Map) { Map cellMapPb = (Map) cellPb; @@ -383,12 +409,13 @@ static FieldValue fromPb(Object cellPb, Field recordSchema) { FieldList subFieldsSchema = recordSchema != null ? recordSchema.getSubFields() : null; return FieldValue.of( Attribute.RECORD, - FieldValueList.fromPb((List) cellMapPb.get("f"), subFieldsSchema)); + FieldValueList.fromPb( + (List) cellMapPb.get("f"), subFieldsSchema, useInt64Timestamps)); } // This should never be the case when we are processing a first level table field (i.e. a // row's field, not a record sub-field) if (cellMapPb.containsKey("v")) { - return FieldValue.fromPb(cellMapPb.get("v"), recordSchema); + return FieldValue.fromPb(cellMapPb.get("v"), recordSchema, useInt64Timestamps); } } throw new IllegalArgumentException("Unexpected table cell format"); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java index 5035bb164a0a..18d2155a583f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java @@ -112,6 +112,10 @@ FieldValueList withSchema(FieldList schema) { } static FieldValueList fromPb(List rowPb, FieldList schema) { + return fromPb(rowPb, schema, false); + } + + static FieldValueList fromPb(List rowPb, FieldList schema, Boolean useInt64Timestamps) { List row = new ArrayList<>(rowPb.size()); if (schema != null) { if (schema.size() != rowPb.size()) { @@ -120,11 +124,11 @@ static FieldValueList fromPb(List rowPb, FieldList schema) { Iterator schemaIter = schema.iterator(); Iterator rowPbIter = rowPb.iterator(); while (rowPbIter.hasNext() && schemaIter.hasNext()) { - row.add(FieldValue.fromPb(rowPbIter.next(), schemaIter.next())); + row.add(FieldValue.fromPb(rowPbIter.next(), schemaIter.next(), useInt64Timestamps)); } } else { for (Object cellPb : rowPb) { - row.add(FieldValue.fromPb(cellPb, null)); + row.add(FieldValue.fromPb(cellPb, null, useInt64Timestamps)); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java index 00a11f723be9..1a56872a15ca 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java @@ -16,6 +16,7 @@ package com.google.cloud.bigquery; +import com.google.api.services.bigquery.model.DataFormatOptions; import com.google.api.services.bigquery.model.QueryParameter; import com.google.api.services.bigquery.model.QueryRequest; import com.google.cloud.bigquery.QueryJobConfiguration.JobCreationMode; @@ -42,8 +43,9 @@ final class QueryRequestInfo { private final Boolean useQueryCache; private final Boolean useLegacySql; private final JobCreationMode jobCreationMode; + private final DataFormatOptions formatOptions; - QueryRequestInfo(QueryJobConfiguration config) { + QueryRequestInfo(QueryJobConfiguration config, Boolean useInt64Timestamps) { this.config = config; this.connectionProperties = config.getConnectionProperties(); this.defaultDataset = config.getDefaultDataset(); @@ -58,6 +60,7 @@ final class QueryRequestInfo { this.useLegacySql = config.useLegacySql(); this.useQueryCache = config.useQueryCache(); this.jobCreationMode = config.getJobCreationMode(); + this.formatOptions = new DataFormatOptions().setUseInt64Timestamp(useInt64Timestamps); } boolean isFastQuerySupported(JobId jobId) { @@ -122,6 +125,9 @@ QueryRequest toPb() { if (jobCreationMode != null) { request.setJobCreationMode(jobCreationMode.toString()); } + if (formatOptions != null) { + request.setFormatOptions(formatOptions); + } return request; } @@ -141,6 +147,7 @@ public String toString() { .add("useQueryCache", useQueryCache) .add("useLegacySql", useLegacySql) .add("jobCreationMode", jobCreationMode) + .add("formatOptions", formatOptions.getUseInt64Timestamp()) .toString(); } @@ -159,7 +166,8 @@ public int hashCode() { createSession, useQueryCache, useLegacySql, - jobCreationMode); + jobCreationMode, + formatOptions); } @Override diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java index 7d10a9750421..5ade7c229827 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java @@ -17,6 +17,7 @@ package com.google.cloud.bigquery; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import com.google.api.client.util.Data; @@ -52,6 +53,12 @@ public class FieldValueListTest { Field.of("tenth", LegacySQLTypeName.NUMERIC), Field.of("eleventh", LegacySQLTypeName.BIGNUMERIC)); + private final FieldList schemaLosslessTimestamp = + FieldList.of( + Field.of("first", LegacySQLTypeName.BOOLEAN), + Field.of("second", LegacySQLTypeName.INTEGER), + Field.of("third", LegacySQLTypeName.TIMESTAMP)); + private final Map integerPb = ImmutableMap.of("v", "1"); private final Map floatPb = ImmutableMap.of("v", "1.5"); private final Map stringPb = ImmutableMap.of("v", "string"); @@ -68,10 +75,15 @@ public class FieldValueListTest { "v", "99999999999999999999999999999999999999.99999999999999999999999999999999999999"); private final FieldValue booleanFv = FieldValue.of(Attribute.PRIMITIVE, "false"); + private final FieldValue booleanLosslessTimestampFv = + FieldValue.of(Attribute.PRIMITIVE, "false", true); private final FieldValue integerFv = FieldValue.of(Attribute.PRIMITIVE, "1"); + private final FieldValue integerLosslessTimestampFv = + FieldValue.of(Attribute.PRIMITIVE, "1", true); private final FieldValue floatFv = FieldValue.of(Attribute.PRIMITIVE, "1.5"); private final FieldValue stringFv = FieldValue.of(Attribute.PRIMITIVE, "string"); private final FieldValue timestampFv = FieldValue.of(Attribute.PRIMITIVE, "42"); + private final FieldValue losslessTimestampFv = FieldValue.of(Attribute.PRIMITIVE, "42", true); private final FieldValue bytesFv = FieldValue.of(Attribute.PRIMITIVE, BYTES_BASE64); private final FieldValue nullFv = FieldValue.of(Attribute.PRIMITIVE, null); private final FieldValue repeatedFv = @@ -117,11 +129,25 @@ public class FieldValueListTest { bigNumericFv), schema); + private final List fieldValuesLosslessTimestampPb = + ImmutableList.of(booleanPb, integerPb, timestampPb); + private final FieldValueList fieldValuesLosslessTimestamp = + FieldValueList.of( + ImmutableList.of( + booleanLosslessTimestampFv, integerLosslessTimestampFv, losslessTimestampFv), + schemaLosslessTimestamp); + @Test public void testFromPb() { assertEquals(fieldValues, FieldValueList.fromPb(fieldValuesPb, schema)); // Schema does not influence values equality assertEquals(fieldValues, FieldValueList.fromPb(fieldValuesPb, null)); + + assertNotEquals(fieldValues, FieldValueList.fromPb(fieldValuesPb, null, true)); + + assertEquals( + fieldValuesLosslessTimestamp, + FieldValueList.fromPb(fieldValuesLosslessTimestampPb, null, true)); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java index 6dbe81707843..4ec527f7ce7e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java @@ -132,6 +132,25 @@ public void testTimestamp() { assertEquals(expected, received); } + @Test + public void testInt64Timestamp() { + FieldValue lossyFieldValue = + FieldValue.of(FieldValue.Attribute.PRIMITIVE, "1.9954383398377106E10"); + long lossy = lossyFieldValue.getTimestampValue(); + + FieldValue losslessFieldValue = + FieldValue.of(FieldValue.Attribute.PRIMITIVE, "19954383398377106", true); + long lossless = losslessFieldValue.getTimestampValue(); + + assertEquals(lossy, lossless); + + FieldValue fieldValue = + FieldValue.of(FieldValue.Attribute.PRIMITIVE, "19954383398377106", true); + long received = fieldValue.getTimestampValue(); + long expected = 19954383398377106L; + assertEquals(expected, received); + } + @Test public void testEquals() { FieldValue booleanValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, "false"); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java index 0d9464c76832..420c01484649 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java @@ -17,7 +17,9 @@ package com.google.cloud.bigquery; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; import com.google.api.services.bigquery.model.QueryRequest; import com.google.cloud.bigquery.JobInfo.CreateDisposition; @@ -136,7 +138,7 @@ public class QueryRequestInfoTest { .setMaxResults(100L) .setJobCreationMode(jobCreationModeRequired) .build(); - QueryRequestInfo REQUEST_INFO = new QueryRequestInfo(QUERY_JOB_CONFIGURATION); + QueryRequestInfo REQUEST_INFO = new QueryRequestInfo(QUERY_JOB_CONFIGURATION, false); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_SUPPORTED = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -150,7 +152,8 @@ public class QueryRequestInfoTest { .setCreateSession(CREATE_SESSION) .setMaxResults(100L) .build(); - QueryRequestInfo REQUEST_INFO_SUPPORTED = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_SUPPORTED); + QueryRequestInfo REQUEST_INFO_SUPPORTED = + new QueryRequestInfo(QUERY_JOB_CONFIGURATION_SUPPORTED, false); @Test public void testIsFastQuerySupported() { @@ -171,8 +174,19 @@ public void testToPb() { @Test public void equalTo() { compareQueryRequestInfo( - new QueryRequestInfo(QUERY_JOB_CONFIGURATION_SUPPORTED), REQUEST_INFO_SUPPORTED); - compareQueryRequestInfo(new QueryRequestInfo(QUERY_JOB_CONFIGURATION), REQUEST_INFO); + new QueryRequestInfo(QUERY_JOB_CONFIGURATION_SUPPORTED, false), REQUEST_INFO_SUPPORTED); + compareQueryRequestInfo(new QueryRequestInfo(QUERY_JOB_CONFIGURATION, false), REQUEST_INFO); + } + + @Test + public void testInt64Timestamp() { + QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION, false); + QueryRequest requestPb = requestInfo.toPb(); + assertFalse(requestPb.getFormatOptions().getUseInt64Timestamp()); + + QueryRequestInfo requestInfoLosslessTs = new QueryRequestInfo(QUERY_JOB_CONFIGURATION, true); + QueryRequest requestLosslessTsPb = requestInfoLosslessTs.toPb(); + assertTrue(requestLosslessTsPb.getFormatOptions().getUseInt64Timestamp()); } /* @@ -199,5 +213,6 @@ private void compareQueryRequestInfo(QueryRequestInfo expected, QueryRequestInfo assertEquals(expectedQueryReq.getUseQueryCache(), actualQueryReq.getUseQueryCache()); assertEquals(expectedQueryReq.getUseLegacySql(), actualQueryReq.getUseLegacySql()); assertEquals(expectedQueryReq.get("jobCreationMode"), actualQueryReq.get("jobCreationMode")); + assertEquals(expectedQueryReq.getFormatOptions(), actualQueryReq.getFormatOptions()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 86ccd7c7d84e..84944d49c7cd 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3235,6 +3235,42 @@ public void testTimestamp() throws InterruptedException { } } + @Test + public void testLosslessTimestamp() throws InterruptedException { + String query = "SELECT TIMESTAMP '2022-01-24T23:54:25.095574Z'"; + long expectedTimestamp = 1643068465095574L; + + TableResult result = + bigquery.query( + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .build()); + assertNotNull(result.getJobId()); + for (FieldValueList row : result.getValues()) { + FieldValue timeStampCell = row.get(0); + assertFalse(timeStampCell.getUseInt64Timestamps()); + assertEquals(expectedTimestamp, timeStampCell.getTimestampValue()); + } + + // Create new BQ object to toggle lossless timestamps without affecting + // other tests. + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); + BigQuery bigqueryLossless = bigqueryHelper.getOptions().getService(); + bigqueryLossless.getOptions().setUseInt64Timestamps(true); + + TableResult resultLossless = + bigqueryLossless.query( + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DatasetId.of(DATASET)) + .build()); + assertNotNull(resultLossless.getJobId()); + for (FieldValueList row : resultLossless.getValues()) { + FieldValue timeStampCellLossless = row.get(0); + assertTrue(timeStampCellLossless.getUseInt64Timestamps()); + assertEquals(expectedTimestamp, timeStampCellLossless.getTimestampValue()); + } + } + /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testQuery() throws InterruptedException { From 31fb15fb963c18e4c29391e9fe56dfde31577511 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Mon, 2 Dec 2024 19:27:31 -0500 Subject: [PATCH 3078/3441] feat: introduce `java.time` methods and variables (#3586) * feat: introduce `java.time` methods and variables * remove threeten dependency --- google-cloud-bigquery/pom.xml | 4 --- .../cloud/bigquery/benchmark/Benchmark.java | 6 ++--- .../google/cloud/bigquery/BigQueryImpl.java | 6 ++--- .../bigquery/BigQueryRetryAlgorithm.java | 4 +-- .../java/com/google/cloud/bigquery/Job.java | 14 +++++------ .../cloud/bigquery/QueryParameterValue.java | 25 +++++++++++-------- .../testing/RemoteBigQueryHelper.java | 12 ++++----- .../com/google/cloud/bigquery/JobTest.java | 9 ++++--- .../bigquery/QueryParameterValueTest.java | 21 ++++++++-------- .../cloud/bigquery/it/ITBigQueryTest.java | 8 +++--- .../testing/RemoteBigQueryHelperTest.java | 8 +++--- 11 files changed, 59 insertions(+), 58 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 0feea483048a..4ddcb2d77192 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -85,10 +85,6 @@ com.google.api gax - - org.threeten - threetenbp - com.google.code.gson gson diff --git a/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java b/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java index caec16676fb4..9d05f6b2b437 100644 --- a/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java +++ b/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java @@ -23,10 +23,10 @@ import com.google.cloud.bigquery.QueryJobConfiguration; import com.google.cloud.bigquery.TableResult; import java.io.FileInputStream; +import java.time.Clock; +import java.time.Duration; +import java.time.Instant; import java.util.List; -import org.threeten.bp.Clock; -import org.threeten.bp.Duration; -import org.threeten.bp.Instant; public class Benchmark { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 770345000c5e..23cb001ac265 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -60,8 +60,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.checkerframework.checker.nullness.qual.NonNull; -import org.threeten.bp.Instant; -import org.threeten.bp.temporal.ChronoUnit; final class BigQueryImpl extends BaseService implements BigQuery { @@ -450,7 +448,9 @@ public com.google.api.services.bigquery.model.Job call() { long jobCreationTime = job.getStatistics().getCreationTime(); long jobMinStaleTime = System.currentTimeMillis(); long jobMaxStaleTime = - Instant.ofEpochMilli(jobMinStaleTime).minus(1, ChronoUnit.DAYS).toEpochMilli(); + java.time.Instant.ofEpochMilli(jobMinStaleTime) + .minus(1, java.time.temporal.ChronoUnit.DAYS) + .toEpochMilli(); // Only return the job if it has been created in the past 24 hours. // This is assuming any job older than 24 hours is a valid duplicate JobID diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java index 0429b7f005e4..7b168c12d130 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java @@ -27,13 +27,13 @@ import com.google.api.gax.retrying.TimedRetryAlgorithmWithContext; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import java.time.Duration; import java.util.Iterator; import java.util.UUID; import java.util.concurrent.CancellationException; import java.util.logging.Level; import java.util.logging.Logger; import java.util.regex.Pattern; -import org.threeten.bp.Duration; public class BigQueryRetryAlgorithm extends RetryAlgorithm { private final BigQueryRetryConfig bigQueryRetryConfig; @@ -67,7 +67,7 @@ public boolean shouldRetry( // Log retry info int attemptCount = nextAttemptSettings == null ? 0 : nextAttemptSettings.getAttemptCount(); Duration retryDelay = - nextAttemptSettings == null ? Duration.ZERO : nextAttemptSettings.getRetryDelay(); + nextAttemptSettings == null ? Duration.ZERO : nextAttemptSettings.getRetryDelayDuration(); String errorMessage = previousThrowable != null ? previousThrowable.getMessage() : ""; // Implementing shouldRetryBasedOnBigQueryRetryConfig so that we can retry exceptions based on diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index 793b25687bb9..00edefb9fb72 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -31,13 +31,13 @@ import com.google.common.collect.ImmutableList; import java.io.IOException; import java.io.ObjectInputStream; +import java.time.Duration; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; -import org.threeten.bp.Duration; /** * A Google BigQuery Job. @@ -52,20 +52,20 @@ public class Job extends JobInfo { private static final RetrySettings DEFAULT_JOB_WAIT_SETTINGS = RetrySettings.newBuilder() - .setTotalTimeout(Duration.ofHours(12L)) - .setInitialRetryDelay(Duration.ofSeconds(1L)) + .setTotalTimeoutDuration(Duration.ofHours(12L)) + .setInitialRetryDelayDuration(Duration.ofSeconds(1L)) .setRetryDelayMultiplier(2.0) .setJittered(true) - .setMaxRetryDelay(Duration.ofMinutes(1L)) + .setMaxRetryDelayDuration(Duration.ofMinutes(1L)) .build(); static final RetrySettings DEFAULT_QUERY_JOB_WAIT_SETTINGS = RetrySettings.newBuilder() - .setTotalTimeout(Duration.ofHours(12L)) - .setInitialRetryDelay(Duration.ofSeconds(3L)) + .setTotalTimeoutDuration(Duration.ofHours(12L)) + .setInitialRetryDelayDuration(Duration.ofSeconds(3L)) .setRetryDelayMultiplier(1.0) .setJittered(true) - .setMaxRetryDelay(Duration.ofSeconds(3L)) + .setMaxRetryDelayDuration(Duration.ofSeconds(3L)) .build(); static final QueryResultsOption[] DEFAULT_QUERY_WAIT_OPTIONS = { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index a7469a3a68d4..900d04b4e84f 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -16,11 +16,12 @@ package com.google.cloud.bigquery; -import static org.threeten.bp.temporal.ChronoField.HOUR_OF_DAY; -import static org.threeten.bp.temporal.ChronoField.MINUTE_OF_HOUR; -import static org.threeten.bp.temporal.ChronoField.NANO_OF_SECOND; -import static org.threeten.bp.temporal.ChronoField.SECOND_OF_MINUTE; +import static java.time.temporal.ChronoField.HOUR_OF_DAY; +import static java.time.temporal.ChronoField.MINUTE_OF_HOUR; +import static java.time.temporal.ChronoField.NANO_OF_SECOND; +import static java.time.temporal.ChronoField.SECOND_OF_MINUTE; +import com.google.api.core.ObsoleteApi; import com.google.api.services.bigquery.model.QueryParameterType; import com.google.api.services.bigquery.model.RangeValue; import com.google.auto.value.AutoValue; @@ -33,17 +34,17 @@ import com.google.gson.JsonObject; import java.io.Serializable; import java.math.BigDecimal; +import java.time.Instant; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeFormatterBuilder; +import java.time.format.DateTimeParseException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Nullable; -import org.threeten.bp.Instant; -import org.threeten.bp.ZoneOffset; -import org.threeten.bp.format.DateTimeFormatter; -import org.threeten.bp.format.DateTimeFormatterBuilder; -import org.threeten.bp.format.DateTimeParseException; import org.threeten.extra.PeriodDuration; /** @@ -345,7 +346,11 @@ public static QueryParameterValue interval(String value) { return of(value, StandardSQLTypeName.INTERVAL); } - /** Creates a {@code QueryParameterValue} object with a type of INTERVAL. */ + /** + * Creates a {@code QueryParameterValue} object with a type of INTERVAL. This method is obsolete. + * Use {@link #interval(String)} instead. + */ + @ObsoleteApi("Use interval(String) instead") public static QueryParameterValue interval(PeriodDuration value) { return of(value, StandardSQLTypeName.INTERVAL); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java index 784ca984fa09..2853c4676103 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java @@ -24,10 +24,10 @@ import com.google.cloud.http.HttpTransportOptions; import java.io.IOException; import java.io.InputStream; +import java.time.Duration; import java.util.UUID; import java.util.logging.Level; import java.util.logging.Logger; -import org.threeten.bp.Duration; /** * Utility to create a remote BigQuery configuration for testing. BigQuery options can be obtained @@ -144,13 +144,13 @@ private static RetrySettings retrySettings() { long totalTimeOut = 120000L; return RetrySettings.newBuilder() .setMaxAttempts(maxAttempts) - .setMaxRetryDelay(Duration.ofMillis(maxRetryDelay)) - .setTotalTimeout(Duration.ofMillis(totalTimeOut)) - .setInitialRetryDelay(Duration.ofMillis(initialRetryDelay)) + .setMaxRetryDelayDuration(Duration.ofMillis(maxRetryDelay)) + .setTotalTimeoutDuration(Duration.ofMillis(totalTimeOut)) + .setInitialRetryDelayDuration(Duration.ofMillis(initialRetryDelay)) .setRetryDelayMultiplier(retryDelayMultiplier) - .setInitialRpcTimeout(Duration.ofMillis(totalTimeOut)) + .setInitialRpcTimeoutDuration(Duration.ofMillis(totalTimeOut)) .setRpcTimeoutMultiplier(retryDelayMultiplier) - .setMaxRpcTimeout(Duration.ofMillis(totalTimeOut)) + .setMaxRpcTimeoutDuration(Duration.ofMillis(totalTimeOut)) .build(); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index 396bb754acd0..f12d9fcafab8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -41,6 +41,7 @@ import com.google.cloud.bigquery.JobStatistics.QueryStatistics; import com.google.cloud.bigquery.JobStatus.State; import com.google.common.collect.ImmutableList; +import java.time.Duration; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; @@ -48,7 +49,6 @@ import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoRule; -import org.threeten.bp.Duration; @RunWith(MockitoJUnitRunner.class) public class JobTest { @@ -83,8 +83,8 @@ public class JobTest { private static final RetryOption[] TEST_RETRY_OPTIONS = new RetryOption[] { - RetryOption.totalTimeout(Duration.ofSeconds(3)), - RetryOption.initialRetryDelay(Duration.ofMillis(1L)), + RetryOption.totalTimeoutDuration(Duration.ofSeconds(3)), + RetryOption.initialRetryDelayDuration(Duration.ofMillis(1L)), RetryOption.jittered(false), RetryOption.retryDelayMultiplier(1.0) }; @@ -402,7 +402,8 @@ public void testWaitForWithTimeout() throws InterruptedException { when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(runningJob); when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(runningJob); try { - job.waitFor(concat(TEST_RETRY_OPTIONS, RetryOption.totalTimeout(Duration.ofMillis(3)))); + job.waitFor( + concat(TEST_RETRY_OPTIONS, RetryOption.totalTimeoutDuration(Duration.ofMillis(3)))); Assert.fail(); } catch (BigQueryException expected) { Assert.assertNotNull(expected.getMessage()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index e0ea9d68dd08..75060a4f0403 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -17,17 +17,21 @@ package com.google.cloud.bigquery; import static com.google.common.truth.Truth.assertThat; -import static org.threeten.bp.temporal.ChronoField.HOUR_OF_DAY; -import static org.threeten.bp.temporal.ChronoField.MINUTE_OF_HOUR; -import static org.threeten.bp.temporal.ChronoField.NANO_OF_SECOND; -import static org.threeten.bp.temporal.ChronoField.SECOND_OF_MINUTE; +import static java.time.temporal.ChronoField.HOUR_OF_DAY; +import static java.time.temporal.ChronoField.MINUTE_OF_HOUR; +import static java.time.temporal.ChronoField.NANO_OF_SECOND; +import static java.time.temporal.ChronoField.SECOND_OF_MINUTE; import com.google.api.services.bigquery.model.QueryParameterType; import com.google.common.collect.ImmutableMap; import com.google.gson.JsonObject; import java.math.BigDecimal; import java.text.ParseException; +import java.time.Instant; import java.time.Period; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeFormatterBuilder; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -35,11 +39,6 @@ import java.util.Map; import org.junit.Assert; import org.junit.Test; -import org.threeten.bp.Instant; -import org.threeten.bp.ZoneOffset; -import org.threeten.bp.format.DateTimeFormatter; -import org.threeten.bp.format.DateTimeFormatterBuilder; -import org.threeten.bp.jdk8.Jdk8Methods; import org.threeten.extra.PeriodDuration; public class QueryParameterValueTest { @@ -338,8 +337,8 @@ public void testTimestampFromLong() { public void testTimestampWithFormatter() { long timestampInMicroseconds = 1571068536842L * 1000 + 123; long microseconds = 1_000_000; - long secs = Jdk8Methods.floorDiv(timestampInMicroseconds, microseconds); - int nano = (int) Jdk8Methods.floorMod(timestampInMicroseconds, microseconds) * 1000; + long secs = Math.floorDiv(timestampInMicroseconds, microseconds); + int nano = (int) Math.floorMod(timestampInMicroseconds, microseconds) * 1000; Instant instant = Instant.ofEpochSecond(secs, nano); String expected = TIMESTAMPFORMATTER.format(instant); assertThat(expected) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 84944d49c7cd..86652c1648f8 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -169,6 +169,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Time; +import java.time.Duration; import java.time.Instant; import java.time.LocalTime; import java.time.Period; @@ -195,7 +196,6 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.Timeout; -import org.threeten.bp.Duration; import org.threeten.extra.PeriodDuration; public class ITBigQueryTest { @@ -5383,7 +5383,7 @@ public void testCreateAndGetJob() throws InterruptedException, TimeoutException assertEquals(createdJob.getSelfLink(), remoteJob.getSelfLink()); assertEquals(createdJob.getUserEmail(), remoteJob.getUserEmail()); - Job completedJob = remoteJob.waitFor(RetryOption.totalTimeout(Duration.ofMinutes(1))); + Job completedJob = remoteJob.waitFor(RetryOption.totalTimeoutDuration(Duration.ofMinutes(1))); assertNotNull(completedJob); assertNull(completedJob.getStatus().getError()); assertTrue(createdTable.delete()); @@ -5451,8 +5451,8 @@ public void testCreateAndGetJobWithSelectedFields() assertNull(remoteJob.getUserEmail()); Job completedJob = remoteJob.waitFor( - RetryOption.initialRetryDelay(Duration.ofSeconds(1)), - RetryOption.totalTimeout(Duration.ofMinutes(1))); + RetryOption.initialRetryDelayDuration(Duration.ofSeconds(1)), + RetryOption.totalTimeoutDuration(Duration.ofMinutes(1))); assertNotNull(completedJob); assertTrue(createdTable.delete()); assertNull(completedJob.getStatus().getError()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java index 9b2ef4804f0f..5aadd11e3360 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java @@ -25,12 +25,12 @@ import com.google.cloud.http.HttpTransportOptions; import java.io.ByteArrayInputStream; import java.io.InputStream; +import java.time.Duration; import java.util.concurrent.ExecutionException; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import org.threeten.bp.Duration; @RunWith(MockitoJUnitRunner.class) public class RemoteBigQueryHelperTest { @@ -83,8 +83,8 @@ public void testCreateFromStream() { assertEquals(60000, ((HttpTransportOptions) options.getTransportOptions()).getConnectTimeout()); assertEquals(60000, ((HttpTransportOptions) options.getTransportOptions()).getReadTimeout()); assertEquals(10, options.getRetrySettings().getMaxAttempts()); - assertEquals(Duration.ofMillis(30000), options.getRetrySettings().getMaxRetryDelay()); - assertEquals(Duration.ofMillis(120000), options.getRetrySettings().getTotalTimeout()); - assertEquals(Duration.ofMillis(250), options.getRetrySettings().getInitialRetryDelay()); + assertEquals(Duration.ofMillis(30000), options.getRetrySettings().getMaxRetryDelayDuration()); + assertEquals(Duration.ofMillis(120000), options.getRetrySettings().getTotalTimeoutDuration()); + assertEquals(Duration.ofMillis(250), options.getRetrySettings().getInitialRetryDelayDuration()); } } From 8cf4387fae22c81d40635b470b216fa4c126d681 Mon Sep 17 00:00:00 2001 From: Oleksandr Shevchenko Date: Tue, 3 Dec 2024 09:40:22 +0200 Subject: [PATCH 3079/3441] fix(test): Update schema for broken ConnImplBenchmark test (#3574) * Fix ConnImplBenchmark test * refactor --- .../ConnImplBenchmark.java | 206 +++++++----------- 1 file changed, 81 insertions(+), 125 deletions(-) diff --git a/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java b/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java index f202df666977..670e31ff6e09 100644 --- a/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java +++ b/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java @@ -20,6 +20,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.util.concurrent.TimeUnit; +import java.util.function.Function; import java.util.logging.Level; import org.openjdk.jmh.annotations.Benchmark; import org.openjdk.jmh.annotations.BenchmarkMode; @@ -48,31 +49,19 @@ public class ConnImplBenchmark { public int rowLimit; private ConnectionSettings connectionSettingsReadAPIEnabled, connectionSettingsReadAPIDisabled; - private long numBuffRows = 100000L; - private final String DATASET = "new_york_taxi_trips"; private final String QUERY = "SELECT * FROM bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2017 LIMIT %s"; - public static final long NUM_PAGE_ROW_CNT_RATIO = - 10; // ratio of [records in the current page :: total rows] to be met to use read API - public static final long NUM_MIN_RESULT_SIZE = - 200000; // min number of records to use to ReadAPI with @Setup public void setUp() throws IOException { java.util.logging.Logger.getGlobal().setLevel(Level.ALL); - connectionSettingsReadAPIEnabled = - ConnectionSettings.newBuilder() - .setUseReadAPI(true) // enable read api - .build(); + connectionSettingsReadAPIEnabled = ConnectionSettings.newBuilder().setUseReadAPI(true).build(); connectionSettingsReadAPIDisabled = - ConnectionSettings.newBuilder() - .setUseReadAPI(false) // disable read api - .build(); + ConnectionSettings.newBuilder().setUseReadAPI(false).build(); } @Benchmark - // uses bigquery.query public void iterateRecordsWithBigQuery_Query(Blackhole blackhole) throws InterruptedException { String selectQuery = String.format(QUERY, rowLimit); BigQuery bigQuery = BigQueryOptions.getDefaultInstance().getService(); @@ -81,81 +70,35 @@ public void iterateRecordsWithBigQuery_Query(Blackhole blackhole) throws Interru TableResult result = bigQuery.query(config); long hash = 0L; int cnt = 0; - System.out.print("\n Running"); - // iterate al the records and compute the hash + long lastTime = System.currentTimeMillis(); + System.out.println("\n Running"); for (FieldValueList row : result.iterateAll()) { - hash += - row.get("vendor_id").getStringValue() == null - ? 0 - : row.get("vendor_id").getStringValue().hashCode(); - hash += - row.get("pickup_datetime").getStringValue() == null - ? 0 - : row.get("pickup_datetime").getStringValue().hashCode(); - hash += - row.get("dropoff_datetime").getStringValue() == null - ? 0 - : row.get("dropoff_datetime").getStringValue().hashCode(); - hash += - row.get("passenger_count").getValue() == null - ? 0 - : row.get("passenger_count").getLongValue(); - hash += - row.get("trip_distance").getValue() == null - ? 0 - : row.get("trip_distance").getDoubleValue(); - hash += - row.get("pickup_longitude").getValue() == null - ? 0 - : row.get("pickup_longitude").getDoubleValue(); - hash += - row.get("pickup_latitude").getValue() == null - ? 0 - : row.get("pickup_latitude").getDoubleValue(); - hash += - row.get("rate_code").getStringValue() == null - ? 0 - : row.get("rate_code").getStringValue().hashCode(); - hash += - row.get("store_and_fwd_flag").getStringValue() == null - ? 0 - : row.get("store_and_fwd_flag").getStringValue().hashCode(); - hash += - row.get("payment_type").getStringValue() == null - ? 0 - : row.get("payment_type").getStringValue().hashCode(); - hash += - row.get("pickup_location_id").getStringValue() == null - ? 0 - : row.get("pickup_location_id").getStringValue().hashCode(); - hash += - row.get("dropoff_location_id").getStringValue() == null - ? 0 - : row.get("dropoff_location_id").getStringValue().hashCode(); - hash += - row.get("dropoff_longitude").getValue() == null - ? 0 - : row.get("dropoff_longitude").getDoubleValue(); - hash += - row.get("dropoff_latitude").getValue() == null - ? 0 - : row.get("dropoff_latitude").getDoubleValue(); - hash += - row.get("fare_amount").getValue() == null ? 0 : row.get("fare_amount").getDoubleValue(); - hash += row.get("extra").getValue() == null ? 0 : row.get("extra").getDoubleValue(); - hash += row.get("mta_tax").getValue() == null ? 0 : row.get("mta_tax").getDoubleValue(); - hash += row.get("tip_amount").getValue() == null ? 0 : row.get("tip_amount").getDoubleValue(); - hash += - row.get("tolls_amount").getValue() == null ? 0 : row.get("tolls_amount").getDoubleValue(); - hash += - row.get("imp_surcharge").getValue() == null - ? 0 - : row.get("imp_surcharge").getDoubleValue(); - hash += - row.get("total_amount").getValue() == null ? 0 : row.get("total_amount").getDoubleValue(); + hash += computeHash(row.get("vendor_id"), FieldValue::getStringValue); + hash += computeHash(row.get("pickup_datetime"), FieldValue::getStringValue); + hash += computeHash(row.get("dropoff_datetime"), FieldValue::getStringValue); + hash += computeHash(row.get("passenger_count"), FieldValue::getLongValue); + hash += computeHash(row.get("trip_distance"), FieldValue::getDoubleValue); + hash += computeHash(row.get("rate_code"), FieldValue::getStringValue); + hash += computeHash(row.get("store_and_fwd_flag"), FieldValue::getStringValue); + hash += computeHash(row.get("payment_type"), FieldValue::getStringValue); + hash += computeHash(row.get("fare_amount"), FieldValue::getDoubleValue); + hash += computeHash(row.get("extra"), FieldValue::getDoubleValue); + hash += computeHash(row.get("mta_tax"), FieldValue::getDoubleValue); + hash += computeHash(row.get("tip_amount"), FieldValue::getDoubleValue); + hash += computeHash(row.get("tolls_amount"), FieldValue::getDoubleValue); + hash += computeHash(row.get("imp_surcharge"), FieldValue::getDoubleValue); + hash += computeHash(row.get("airport_fee"), FieldValue::getDoubleValue); + hash += computeHash(row.get("total_amount"), FieldValue::getDoubleValue); + hash += computeHash(row.get("pickup_location_id"), FieldValue::getStringValue); + hash += computeHash(row.get("dropoff_location_id"), FieldValue::getStringValue); + hash += computeHash(row.get("data_file_year"), FieldValue::getLongValue); + hash += computeHash(row.get("data_file_month"), FieldValue::getLongValue); - if (++cnt % 100000 == 0) { // just to indicate the progress while long running benchmarks - System.out.print("."); + if (++cnt % 100_000 == 0) { + long now = System.currentTimeMillis(); + long duration = now - lastTime; + System.out.println("ROW " + cnt + " Time: " + duration + " ms"); + lastTime = now; } } System.out.println(cnt + " records processed using bigquery.query"); @@ -202,54 +145,67 @@ public void iterateRecordsWithoutUsingReadAPI(Blackhole blackhole) blackhole.consume(hash); } - // Hashes all the 20 columns of all the rows private long getResultHash(BigQueryResult bigQueryResultSet) throws SQLException { ResultSet rs = bigQueryResultSet.getResultSet(); long hash = 0L; int cnt = 0; - System.out.print("\n Running"); + long lastTime = System.currentTimeMillis(); + System.out.println("\n Running"); while (rs.next()) { - hash += rs.getString("vendor_id") == null ? 0 : rs.getString("vendor_id").hashCode(); - hash += - rs.getString("pickup_datetime") == null ? 0 : rs.getString("pickup_datetime").hashCode(); - hash += - rs.getString("dropoff_datetime") == null - ? 0 - : rs.getString("dropoff_datetime").hashCode(); - hash += rs.getLong("passenger_count"); - hash += rs.getDouble("trip_distance"); - hash += rs.getDouble("pickup_longitude"); - hash += rs.getDouble("pickup_latitude"); - hash += rs.getString("rate_code") == null ? 0 : rs.getString("rate_code").hashCode(); - hash += - rs.getString("store_and_fwd_flag") == null - ? 0 - : rs.getString("store_and_fwd_flag").hashCode(); - hash += rs.getDouble("dropoff_longitude"); - hash += rs.getDouble("dropoff_latitude"); - hash += rs.getString("payment_type") == null ? 0 : rs.getString("payment_type").hashCode(); - hash += rs.getDouble("fare_amount"); - hash += rs.getDouble("extra"); - hash += rs.getDouble("mta_tax"); - hash += rs.getDouble("tip_amount"); - hash += rs.getDouble("tolls_amount"); - hash += rs.getDouble("imp_surcharge"); - hash += rs.getDouble("total_amount"); - hash += - rs.getString("pickup_location_id") == null - ? 0 - : rs.getString("pickup_location_id").hashCode(); - hash += - rs.getString("dropoff_location_id") == null - ? 0 - : rs.getString("dropoff_location_id").hashCode(); - if (++cnt % 100000 == 0) { // just to indicate the progress while long running benchmarks - System.out.print("."); + hash += computeHash(rs, "vendor_id", ResultSet::getString); + hash += computeHash(rs, "pickup_datetime", ResultSet::getString); + hash += computeHash(rs, "dropoff_datetime", ResultSet::getString); + hash += computeHash(rs, "passenger_count", ResultSet::getLong); + hash += computeHash(rs, "trip_distance", ResultSet::getDouble); + hash += computeHash(rs, "rate_code", ResultSet::getString); + hash += computeHash(rs, "store_and_fwd_flag", ResultSet::getString); + hash += computeHash(rs, "payment_type", ResultSet::getString); + hash += computeHash(rs, "fare_amount", ResultSet::getDouble); + hash += computeHash(rs, "extra", ResultSet::getDouble); + hash += computeHash(rs, "mta_tax", ResultSet::getDouble); + hash += computeHash(rs, "tip_amount", ResultSet::getDouble); + hash += computeHash(rs, "tolls_amount", ResultSet::getDouble); + hash += computeHash(rs, "imp_surcharge", ResultSet::getDouble); + hash += computeHash(rs, "airport_fee", ResultSet::getDouble); + hash += computeHash(rs, "total_amount", ResultSet::getDouble); + hash += computeHash(rs, "pickup_location_id", ResultSet::getString); + hash += computeHash(rs, "dropoff_location_id", ResultSet::getString); + hash += computeHash(rs, "data_file_year", ResultSet::getLong); + hash += computeHash(rs, "data_file_month", ResultSet::getLong); + + if (++cnt % 100_000 == 0) { + long now = System.currentTimeMillis(); + long duration = now - lastTime; + System.out.println("ROW " + cnt + " Time: " + duration + " ms"); + lastTime = now; } } return hash; } + private long computeHash( + ResultSet rs, String columnName, SQLFunction extractor) { + try { + T value = extractor.apply(rs, columnName); + return (value == null) ? 0 : value.hashCode(); + } catch (SQLException e) { + return 0; + } + } + + @FunctionalInterface + private interface SQLFunction { + R apply(T t, String columnName) throws SQLException; + } + + private long computeHash(FieldValue fieldValue, Function extractor) { + if (fieldValue == null || fieldValue.isNull()) { + return 0; + } + T value = extractor.apply(fieldValue); + return (value == null) ? 0 : value.hashCode(); + } + public static void main(String[] args) throws Exception { Options opt = new OptionsBuilder().include(ConnImplBenchmark.class.getSimpleName()).build(); new Runner(opt).run(); From bc1f3b97a0c8ccc6e93a07b2f0ebcf8e05da9b48 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 6 Dec 2024 04:44:58 +0100 Subject: [PATCH 3080/3441] deps: update github/codeql-action action to v2.27.6 (#3597) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index e82f85f397d8..3d326ab9754e 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@e2b57b01d64b69ac273abfbea5d3ed15231e1706 # v2.27.5 + uses: github/codeql-action/upload-sarif@82a3f64131759f97922e0680c3730858bc7155a6 # v2.27.6 with: sarif_file: results.sarif From 554f77f6e64adf9775a8f6f0e1e3eacff27470a9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 6 Dec 2024 04:45:22 +0100 Subject: [PATCH 3081/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.49.0 (#3598) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 32cb239d6f12..319b3bd22ff3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.48.0 + 2.49.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3f0b600223ee..27a1f0273e75 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.48.0 + 2.49.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index dd4aa5e9e550..f94ddc7d4844 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.48.0 + 2.49.0 test From 528426bf9b7801b1b9b45758b560f14a4c9bbc57 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 11 Dec 2024 16:06:16 +0100 Subject: [PATCH 3082/3441] deps: update github/codeql-action action to v2.27.7 (#3603) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 3d326ab9754e..1c8355fdac6e 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@82a3f64131759f97922e0680c3730858bc7155a6 # v2.27.6 + uses: github/codeql-action/upload-sarif@d835c34a7026e284170c41a0a66c956e03f247d0 # v2.27.7 with: sarif_file: results.sarif From 6ee0c103771ef678f66cc7a584bdce27e21f29c4 Mon Sep 17 00:00:00 2001 From: Liam <44932470+whuffman36@users.noreply.github.com> Date: Wed, 11 Dec 2024 16:05:35 -0800 Subject: [PATCH 3083/3441] docs(bigquery): Add javadoc description of timestamp() parameter. (#3604) * docs(bigquery): Add javadoc description of timestamp() parameter. * Fix formatting. --- .../com/google/cloud/bigquery/QueryParameterValue.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index 900d04b4e84f..0487c3f7c319 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -300,7 +300,12 @@ public static QueryParameterValue bytes(byte[] value) { return of(value, StandardSQLTypeName.BYTES); } - /** Creates a {@code QueryParameterValue} object with a type of TIMESTAMP. */ + /** + * Creates a {@code QueryParameterValue} object with a type of TIMESTAMP. + * + * @param value Microseconds since epoch, e.g. 1733945416000000 corresponds to 2024-12-11 + * 19:30:16.929Z + */ public static QueryParameterValue timestamp(Long value) { return of(value, StandardSQLTypeName.TIMESTAMP); } From 11499d16727934fd3dfa5c18226e6f20471a11ac Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 13 Dec 2024 15:26:47 +0100 Subject: [PATCH 3084/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.41.0 (#3607) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 39ab435d5dab..f971b05c9544 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.40.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.41.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 30a89e0a5586..cbccd336a051 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.40.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.41.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index b78f2e1fa4ca..d9c9d020519f 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.40.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.41.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 4dbae8340ef4..80a629d235ba 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.40.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.41.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index a836c97f04bd..644bb62ce7d3 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.40.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.41.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 71accd6f7c7f..d83e939d7c38 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.40.0 + 3.41.0 diff --git a/pom.xml b/pom.xml index 2eabd261ccd3..a7b94678bf1b 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.40.0 + 3.41.0 From d2c4c29cff00b1490d707ec2aa30cbfcebe3bddc Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 13 Dec 2024 15:49:34 +0100 Subject: [PATCH 3085/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.11.0 (#3609) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a7b94678bf1b..6dd6a5c8ebe5 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.10.3 + 3.11.0 pom import From 41f9adbe4235329fa2bbfd0930f4113e63f72e05 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 13 Dec 2024 15:56:14 +0100 Subject: [PATCH 3086/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20241115-2.0.0 (#3601) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6dd6a5c8ebe5..91f1c5bb3e0e 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20241111-2.0.0 + v2-rev20241115-2.0.0 From f22de8741662d0e5930f7ae5c24ecf8c05570a69 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 13 Dec 2024 16:19:39 +0100 Subject: [PATCH 3087/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.46.0 (#3610) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 91f1c5bb3e0e..bb3aab685662 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.45.0 + 2.46.0 test From fc408ad72669bbec952d3d2b5f817581b31df0f6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 13 Dec 2024 16:28:47 +0100 Subject: [PATCH 3088/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.50.0 (#3605) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 319b3bd22ff3..78034de310d9 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.49.0 + 2.50.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 27a1f0273e75..719dcbc61df0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.49.0 + 2.50.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f94ddc7d4844..f9af31307b07 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.49.0 + 2.50.0 test From 824e5662752b6cbac52a4ba163b5866745eb45e7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 10:57:17 -0500 Subject: [PATCH 3089/3441] chore(main): release 2.45.0 (#3590) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 39 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c9f9565ce17..9d8f525e2fd8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,35 @@ # Changelog +## [2.45.0](https://github.com/googleapis/java-bigquery/compare/v2.44.0...v2.45.0) (2024-12-13) + + +### Features + +* Enable Lossless Timestamps in BQ java client lib ([#3589](https://github.com/googleapis/java-bigquery/issues/3589)) ([c0b874a](https://github.com/googleapis/java-bigquery/commit/c0b874aa0150e63908450b13d019864b8cbfbfe3)) +* Introduce `java.time` methods and variables ([#3586](https://github.com/googleapis/java-bigquery/issues/3586)) ([31fb15f](https://github.com/googleapis/java-bigquery/commit/31fb15fb963c18e4c29391e9fe56dfde31577511)) + + +### Bug Fixes + +* **test:** Update schema for broken ConnImplBenchmark test ([#3574](https://github.com/googleapis/java-bigquery/issues/3574)) ([8cf4387](https://github.com/googleapis/java-bigquery/commit/8cf4387fae22c81d40635b470b216fa4c126d681)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.56.0 ([#3582](https://github.com/googleapis/java-bigquery/issues/3582)) ([616ee2a](https://github.com/googleapis/java-bigquery/commit/616ee2aa8ccf3d2975274b256252f2f249775960)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20241111-2.0.0 ([#3591](https://github.com/googleapis/java-bigquery/issues/3591)) ([3eef3a9](https://github.com/googleapis/java-bigquery/commit/3eef3a9959bcfdb76c26fdf9069d9acf89f93a7a)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20241115-2.0.0 ([#3601](https://github.com/googleapis/java-bigquery/issues/3601)) ([41f9adb](https://github.com/googleapis/java-bigquery/commit/41f9adbe4235329fa2bbfd0930f4113e63f72e05)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.60.0 ([#3583](https://github.com/googleapis/java-bigquery/issues/3583)) ([34dd8bc](https://github.com/googleapis/java-bigquery/commit/34dd8bc22c8188f2b61dc9939b24a8d820548e2b)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.41.0 ([#3607](https://github.com/googleapis/java-bigquery/issues/3607)) ([11499d1](https://github.com/googleapis/java-bigquery/commit/11499d16727934fd3dfa5c18226e6f20471a11ac)) +* Update github/codeql-action action to v2.27.5 ([#3588](https://github.com/googleapis/java-bigquery/issues/3588)) ([3f94075](https://github.com/googleapis/java-bigquery/commit/3f9407570fea5317aaf212b058ca1da05985eda9)) +* Update github/codeql-action action to v2.27.6 ([#3597](https://github.com/googleapis/java-bigquery/issues/3597)) ([bc1f3b9](https://github.com/googleapis/java-bigquery/commit/bc1f3b97a0c8ccc6e93a07b2f0ebcf8e05da9b48)) +* Update github/codeql-action action to v2.27.7 ([#3603](https://github.com/googleapis/java-bigquery/issues/3603)) ([528426b](https://github.com/googleapis/java-bigquery/commit/528426bf9b7801b1b9b45758b560f14a4c9bbc57)) + + +### Documentation + +* **bigquery:** Add javadoc description of timestamp() parameter. ([#3604](https://github.com/googleapis/java-bigquery/issues/3604)) ([6ee0c10](https://github.com/googleapis/java-bigquery/commit/6ee0c103771ef678f66cc7a584bdce27e21f29c4)) + ## [2.44.0](https://github.com/googleapis/java-bigquery/compare/v2.43.3...v2.44.0) (2024-11-17) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a459346de352..b6daf595e9c1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.44.1-SNAPSHOT + 2.45.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index d83e939d7c38..0a689e33f839 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.44.1-SNAPSHOT + 2.45.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.44.1-SNAPSHOT + 2.45.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4ddcb2d77192..c040d4fc3706 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.44.1-SNAPSHOT + 2.45.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.44.1-SNAPSHOT + 2.45.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bb3aab685662..6fd0cd64e76d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.44.1-SNAPSHOT + 2.45.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.44.1-SNAPSHOT + 2.45.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 719dcbc61df0..d6700af907b9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.44.1-SNAPSHOT + 2.45.0 diff --git a/versions.txt b/versions.txt index 530a7c3ed710..13c2e61d7807 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.44.0:2.44.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.45.0:2.45.0 \ No newline at end of file From b622600e11a44f16be24537b4aa663b145ed6deb Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 11:31:22 -0500 Subject: [PATCH 3090/3441] chore(main): release 2.45.1-SNAPSHOT (#3611) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b6daf595e9c1..de56289e626d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.45.0 + 2.45.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 0a689e33f839..7214bf10cf6f 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.45.0 + 2.45.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.45.0 + 2.45.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c040d4fc3706..a18a1d1adafd 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.45.0 + 2.45.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.45.0 + 2.45.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 6fd0cd64e76d..61f2542bb744 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.45.0 + 2.45.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.45.0 + 2.45.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d6700af907b9..ef0ad0976ae9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.45.0 + 2.45.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 13c2e61d7807..b964bf3a4d86 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.45.0:2.45.0 \ No newline at end of file +google-cloud-bigquery:2.45.0:2.45.1-SNAPSHOT \ No newline at end of file From 18a9fe7fc93e7718ed3a2e8360cb23eab3810e31 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Mon, 16 Dec 2024 08:50:03 -0500 Subject: [PATCH 3091/3441] test: fix benchmark test missing maven configuration (#3596) --- benchmark/pom.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index de56289e626d..71f23707f5f3 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -38,6 +38,15 @@ org.apache.maven.plugins maven-compiler-plugin 3.13.0 + + + + org.openjdk.jmh + jmh-generator-annprocess + ${jmh.version} + + + org.apache.maven.plugins From 567ce01ed77d44760ddcd872a0d61abdd6a09832 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 16 Dec 2024 16:46:09 +0100 Subject: [PATCH 3092/3441] deps: update github/codeql-action action to v2.27.9 (#3608) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 1c8355fdac6e..91885df005b1 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@d835c34a7026e284170c41a0a66c956e03f247d0 # v2.27.7 + uses: github/codeql-action/upload-sarif@277b89701e930e6af7a758f50afa5185bfc53c81 # v2.27.9 with: sarif_file: results.sarif From f4e9856abe936a6f6d190cddb9127e3e20b61f5d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 16 Dec 2024 16:46:31 +0100 Subject: [PATCH 3093/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.45.0 (#3612) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 78034de310d9..4486c9ecbef3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.44.0 + 2.45.0 From f5faa69bc5b6fdae137724df5693f8aecf27d609 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Dec 2024 17:27:01 +0100 Subject: [PATCH 3094/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.37.0 (#3614) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4486c9ecbef3..3a8e388724bd 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.36.0 + 1.37.0 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ef0ad0976ae9..3114a2832271 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.36.0 + 1.37.0 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index f9af31307b07..9b100ec0e027 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.36.0 + 1.37.0 com.google.oauth-client From a6c79443a5e675a01ecb91e362e261a6f6ecc055 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Dec 2024 17:27:47 +0100 Subject: [PATCH 3095/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.37.0 (#3615) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3a8e388724bd..f44550cdcdf2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.36.0 + 1.37.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3114a2832271..9a15805e3c85 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.36.0 + 1.37.0 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9b100ec0e027..c8844a422bd3 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.36.0 + 1.37.0 From 51370a92e7ab29dfce91199666f23576d2d1b64a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Dec 2024 17:29:03 +0100 Subject: [PATCH 3096/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.57.0 (#3617) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 61f2542bb744..fb52dbd90b0f 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.56.0 + 2.57.0 test From 88021f7894f592e5211af0caaf9003b1f15a0a52 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Dec 2024 17:29:58 +0100 Subject: [PATCH 3097/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.57.0 (#3616) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index fb52dbd90b0f..afe44da8adcb 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.56.0 + 2.57.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f44550cdcdf2..ae4a93439508 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.56.0 + 2.57.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9a15805e3c85..4a4d5be3eada 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.56.0 + 2.57.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c8844a422bd3..8f51b65bd9c8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.56.0 + 2.57.0 test From 6cba626ff14cebbc04fa4f6058b273de0c5dd96e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Dec 2024 17:31:10 +0100 Subject: [PATCH 3098/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.61.0 (#3618) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index afe44da8adcb..28ba37474a66 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.60.0 + 1.61.0 pom import From 08c483cb726bb36951680687260dd2d0371a9dc0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Dec 2024 18:15:49 +0100 Subject: [PATCH 3099/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.51.0 (#3619) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ae4a93439508..978da1f36b84 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.50.0 + 2.51.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4a4d5be3eada..190337e249d2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.50.0 + 2.51.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 8f51b65bd9c8..b6476b2bdb16 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.50.0 + 2.51.0 test From 6696a9c7d42970e3c24bda4da713a855dbe40ce5 Mon Sep 17 00:00:00 2001 From: Liam <44932470+whuffman36@users.noreply.github.com> Date: Thu, 2 Jan 2025 13:19:49 -0800 Subject: [PATCH 3100/3441] feat(bigquery): support IAM conditions in datasets in Java client. (#3602) * feat(bigquery): support IAM conditions in datasets in Java client. * Fix formatting * Account for possible null condition field in Acl. * Add toString() method to Acl.Expr object. Use service account in integration test instead of hardcoded personal account. Change Database API calls to only have one branch, toggling only the access policy version in a conditional. * Change Acl.User to be default google credentials in IT test * fix formatting * Add Acl.Expr builder. Fix review nits. * fix formatting --- .../java/com/google/cloud/bigquery/Acl.java | 161 +++++++++++++++++- .../com/google/cloud/bigquery/BigQuery.java | 18 ++ .../cloud/bigquery/spi/v2/BigQueryRpc.java | 3 +- .../bigquery/spi/v2/HttpBigQueryRpc.java | 55 ++++-- .../com/google/cloud/bigquery/AclTest.java | 10 ++ .../cloud/bigquery/BigQueryImplTest.java | 15 ++ .../cloud/bigquery/it/ITBigQueryTest.java | 160 +++++++++++++++++ 7 files changed, 400 insertions(+), 22 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java index e4107cdfda6f..e6a2a0b91def 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java @@ -21,6 +21,7 @@ import com.google.api.core.ApiFunction; import com.google.api.services.bigquery.model.Dataset.Access; import com.google.api.services.bigquery.model.DatasetAccessEntry; +import com.google.api.services.bigquery.model.Expr; import com.google.cloud.StringEnumType; import com.google.cloud.StringEnumValue; import java.io.Serializable; @@ -41,6 +42,7 @@ public final class Acl implements Serializable { private final Entity entity; private final Role role; + private final Expr condition; /** * Dataset roles supported by BigQuery. @@ -568,9 +570,147 @@ Access toPb() { } } + /** Expr represents the conditional information related to dataset access policies. */ + public static final class Expr implements Serializable { + // Textual representation of an expression in Common Expression Language syntax. + private final String expression; + /** + * Optional. Title for the expression, i.e. a short string describing its purpose. This can be + * used e.g. in UIs which allow to enter the expression. + */ + private final String title; + /** + * Optional. Description of the expression. This is a longer text which describes the + * expression, e.g. when hovered over it in a UI. + */ + private final String description; + /** + * Optional. String indicating the location of the expression for error reporting, e.g. a file + * name and a position in the file. + */ + private final String location; + + private static final long serialVersionUID = 7358264726377291156L; + + static final class Builder { + private String expression; + private String title; + private String description; + private String location; + + Builder() {} + + Builder(Expr expr) { + this.expression = expr.expression; + this.title = expr.title; + this.description = expr.description; + this.location = expr.location; + } + + Builder(com.google.api.services.bigquery.model.Expr bqExpr) { + this.expression = bqExpr.getExpression(); + if (bqExpr.getTitle() != null) { + this.title = bqExpr.getTitle(); + } + if (bqExpr.getDescription() != null) { + this.description = bqExpr.getDescription(); + } + if (bqExpr.getLocation() != null) { + this.location = bqExpr.getLocation(); + } + } + + public Builder setExpression(String expression) { + this.expression = expression; + return this; + } + + public Builder setTitle(String title) { + this.title = title; + return this; + } + + public Builder setDescription(String description) { + this.description = description; + return this; + } + + public Builder setLocation(String location) { + this.location = location; + return this; + } + + public Expr build() { + return new Expr(this); + } + } + + public Expr(Builder builder) { + this.expression = builder.expression; + this.title = builder.title; + this.description = builder.description; + this.location = builder.location; + } + + public Expr(String expression, String title, String description, String location) { + this.expression = expression; + this.title = title; + this.description = description; + this.location = location; + } + + com.google.api.services.bigquery.model.Expr toPb() { + com.google.api.services.bigquery.model.Expr bqExpr = + new com.google.api.services.bigquery.model.Expr(); + bqExpr.setExpression(this.expression); + bqExpr.setTitle(this.title); + bqExpr.setDescription(this.description); + bqExpr.setLocation(this.location); + return bqExpr; + } + + static Expr fromPb(com.google.api.services.bigquery.model.Expr bqExpr) { + return new Builder(bqExpr).build(); + } + + public Builder toBuilder() { + return new Builder(this); + } + + @Override + public int hashCode() { + return Objects.hash(expression, title, description, location); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + final Expr other = (Expr) obj; + return Objects.equals(this.expression, other.expression) + && Objects.equals(this.title, other.title) + && Objects.equals(this.description, other.description) + && Objects.equals(this.location, other.location); + } + + @Override + public String toString() { + return toPb().toString(); + } + } + private Acl(Entity entity, Role role) { + this(entity, role, null); + } + + private Acl(Entity entity, Role role, Expr condition) { this.entity = checkNotNull(entity); this.role = role; + this.condition = condition; } /** @return Returns the entity for this ACL. */ @@ -582,6 +722,10 @@ public Entity getEntity() { public Role getRole() { return role; } + /** @return Returns the condition specified by this ACL. */ + public Expr getCondition() { + return condition; + } /** * @return Returns an Acl object. @@ -592,6 +736,10 @@ public static Acl of(Entity entity, Role role) { return new Acl(entity, role); } + public static Acl of(Entity entity, Role role, Expr condition) { + return new Acl(entity, role, condition); + } + /** * @param datasetAclEntity * @return Returns an Acl object for a datasetAclEntity. @@ -618,7 +766,7 @@ public static Acl of(Routine routine) { @Override public int hashCode() { - return Objects.hash(entity, role); + return Objects.hash(entity, role, condition); } @Override @@ -635,7 +783,9 @@ public boolean equals(Object obj) { return false; } final Acl other = (Acl) obj; - return Objects.equals(this.entity, other.entity) && Objects.equals(this.role, other.role); + return Objects.equals(this.entity, other.entity) + && Objects.equals(this.role, other.role) + && Objects.equals(this.condition, other.condition); } Access toPb() { @@ -643,11 +793,16 @@ Access toPb() { if (role != null) { accessPb.setRole(role.name()); } + if (condition != null) { + accessPb.setCondition(condition.toPb()); + } return accessPb; } static Acl fromPb(Access access) { return Acl.of( - Entity.fromPb(access), access.getRole() != null ? Role.valueOf(access.getRole()) : null); + Entity.fromPb(access), + access.getRole() != null ? Role.valueOf(access.getRole()) : null, + access.getCondition() != null ? Expr.fromPb(access.getCondition()) : null); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 613134fa06d1..2a7d498c09df 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -289,6 +289,24 @@ public static DatasetOption fields(DatasetField... fields) { return new DatasetOption( BigQueryRpc.Option.FIELDS, Helper.selector(DatasetField.REQUIRED_FIELDS, fields)); } + + /** + * Returns an option to specify the dataset's access policy version for conditional access. If + * this option is not provided the field remains unset and conditional access cannot be used. + * Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests + * for conditional access policy binding in datasets must specify version 3. Datasets with no + * conditional role bindings in access policy may specify any valid value or leave the field + * unset. This field will be mapped to IAM Policy version and will be + * used to fetch the policy from IAM. If unset or if 0 or 1 the value is used for a dataset with + * conditional bindings, access entry with condition will have role string appended by + * 'withcond' string followed by a hash value. Please refer to Troubleshooting + * withcond for more details. + */ + public static DatasetOption accessPolicyVersion(Integer accessPolicyVersion) { + return new DatasetOption(BigQueryRpc.Option.ACCESS_POLICY_VERSION, accessPolicyVersion); + } } /** Class for specifying dataset delete options. */ diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index 57f1a05c01a5..8b0a83531eef 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -59,7 +59,8 @@ enum Option { REQUESTED_POLICY_VERSION("requestedPolicyVersion"), TABLE_METADATA_VIEW("view"), RETRY_OPTIONS("retryOptions"), - BIGQUERY_RETRY_CONFIG("bigQueryRetryConfig"); + BIGQUERY_RETRY_CONFIG("bigQueryRetryConfig"), + ACCESS_POLICY_VERSION("accessPolicyVersion"); private final String value; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 93337d8cac69..3946f83f54ad 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -130,12 +130,19 @@ private void validateRPC() throws BigQueryException, IOException { public Dataset getDataset(String projectId, String datasetId, Map options) { try { validateRPC(); - return bigquery - .datasets() - .get(projectId, datasetId) - .setFields(Option.FIELDS.getString(options)) - .setPrettyPrint(false) - .execute(); + + Bigquery.Datasets.Get bqGetRequest = + bigquery + .datasets() + .get(projectId, datasetId) + .setFields(Option.FIELDS.getString(options)) + .setPrettyPrint(false); + for (Map.Entry entry : options.entrySet()) { + if (entry.getKey() == Option.ACCESS_POLICY_VERSION && entry.getValue() != null) { + bqGetRequest.setAccessPolicyVersion((Integer) entry.getValue()); + } + } + return bqGetRequest.execute(); } catch (IOException ex) { BigQueryException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { @@ -174,12 +181,18 @@ public Tuple> listDatasets(String projectId, Map options) { try { validateRPC(); - return bigquery - .datasets() - .insert(dataset.getDatasetReference().getProjectId(), dataset) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + Bigquery.Datasets.Insert bqCreateRequest = + bigquery + .datasets() + .insert(dataset.getDatasetReference().getProjectId(), dataset) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)); + for (Map.Entry entry : options.entrySet()) { + if (entry.getKey() == Option.ACCESS_POLICY_VERSION && entry.getValue() != null) { + bqCreateRequest.setAccessPolicyVersion((Integer) entry.getValue()); + } + } + return bqCreateRequest.execute(); } catch (IOException ex) { throw translate(ex); } @@ -277,12 +290,18 @@ public Dataset patch(Dataset dataset, Map options) { try { validateRPC(); DatasetReference reference = dataset.getDatasetReference(); - return bigquery - .datasets() - .patch(reference.getProjectId(), reference.getDatasetId(), dataset) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + Bigquery.Datasets.Patch bqPatchRequest = + bigquery + .datasets() + .patch(reference.getProjectId(), reference.getDatasetId(), dataset) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)); + for (Map.Entry entry : options.entrySet()) { + if (entry.getKey() == Option.ACCESS_POLICY_VERSION && entry.getValue() != null) { + bqPatchRequest.setAccessPolicyVersion((Integer) entry.getValue()); + } + } + return bqPatchRequest.execute(); } catch (IOException ex) { throw translate(ex); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java index 30866c2b60a4..0b53f32ff417 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java @@ -23,6 +23,7 @@ import com.google.cloud.bigquery.Acl.Domain; import com.google.cloud.bigquery.Acl.Entity; import com.google.cloud.bigquery.Acl.Entity.Type; +import com.google.cloud.bigquery.Acl.Expr; import com.google.cloud.bigquery.Acl.Group; import com.google.cloud.bigquery.Acl.IamMember; import com.google.cloud.bigquery.Acl.Role; @@ -136,4 +137,13 @@ public void testOf() { assertEquals(routine, acl.getEntity()); assertEquals(null, acl.getRole()); } + + @Test + public void testOfWithCondition() { + Expr expr = new Expr("expression", "title", "description", "location"); + Acl acl = Acl.of(Group.ofAllAuthenticatedUsers(), Role.READER, expr); + Dataset.Access pb = acl.toPb(); + assertEquals(acl, Acl.fromPb(pb)); + assertEquals(acl.getCondition(), expr); + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 88b8f6dbf49b..c13d272d2e00 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -30,6 +30,7 @@ import com.google.cloud.RetryOption; import com.google.cloud.ServiceOptions; import com.google.cloud.Tuple; +import com.google.cloud.bigquery.BigQuery.DatasetOption; import com.google.cloud.bigquery.BigQuery.JobOption; import com.google.cloud.bigquery.BigQuery.QueryResultsOption; import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; @@ -572,6 +573,20 @@ public void testCreateDatasetWithSelectedFields() { verify(bigqueryRpcMock).create(eq(DATASET_INFO_WITH_PROJECT.toPb()), capturedOptions.capture()); } + @Test + public void testCreateDatasetWithAccessPolicy() { + DatasetInfo datasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT); + DatasetOption datasetOption = DatasetOption.accessPolicyVersion(3); + when(bigqueryRpcMock.create(datasetInfo.toPb(), optionMap(datasetOption))) + .thenReturn(datasetInfo.toPb()); + BigQueryOptions bigQueryOptions = + createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); + bigquery = bigQueryOptions.getService(); + Dataset dataset = bigquery.create(datasetInfo, datasetOption); + assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(datasetInfo)), dataset); + verify(bigqueryRpcMock).create(datasetInfo.toPb(), optionMap(datasetOption)); + } + @Test public void testGetDataset() { when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 86652c1648f8..bf8d51314b66 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -41,6 +41,8 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.bigquery.Acl; import com.google.cloud.bigquery.Acl.DatasetAclEntity; +import com.google.cloud.bigquery.Acl.Expr; +import com.google.cloud.bigquery.Acl.User; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; import com.google.cloud.bigquery.BigQuery.DatasetField; @@ -1219,6 +1221,48 @@ public void testGetDatasetWithSelectedFields() { assertNull(dataset.getMaxTimeTravelHours()); } + @Test + public void testGetDatasetWithAccessPolicyVersion() throws IOException { + String accessPolicyDataset = RemoteBigQueryHelper.generateDatasetName(); + ServiceAccountCredentials credentials = + (ServiceAccountCredentials) GoogleCredentials.getApplicationDefault(); + User user = new User(credentials.getClientEmail()); + Acl.Role role = Acl.Role.WRITER; + Acl.Expr condition = + new Expr( + "request.time > timestamp('2024-01-01T00:00:00Z')", + "test condition", + "requests after the year 2024", + "location"); + Acl acl = Acl.of(user, role, condition); + DatasetOption datasetOption = DatasetOption.accessPolicyVersion(3); + + Dataset dataset = + bigquery.create( + DatasetInfo.newBuilder(accessPolicyDataset) + .setDescription("Some Description") + .setAcl(ImmutableList.of(acl)) + .build(), + datasetOption); + assertThat(dataset).isNotNull(); + + Dataset remoteDataset = bigquery.getDataset(accessPolicyDataset, datasetOption); + assertNotNull(remoteDataset); + assertEquals(dataset.getDescription(), remoteDataset.getDescription()); + assertNotNull(remoteDataset.getCreationTime()); + + Acl remoteAclWithCond = null; + for (Acl remoteAcl : remoteDataset.getAcl()) { + if (remoteAcl.getCondition() != null) { + remoteAclWithCond = remoteAcl; + } + } + assertNotNull(remoteAclWithCond); + assertEquals(remoteAclWithCond.getCondition(), condition); + + RemoteBigQueryHelper.forceDelete(bigquery, accessPolicyDataset); + } + @Test public void testUpdateDataset() { Dataset dataset = @@ -1285,6 +1329,58 @@ public void testUpdateDatasetWithSelectedFields() { assertTrue(dataset.delete()); } + @Test + public void testUpdateDatabaseWithAccessPolicyVersion() throws IOException { + String accessPolicyDataset = RemoteBigQueryHelper.generateDatasetName(); + ServiceAccountCredentials credentials = + (ServiceAccountCredentials) GoogleCredentials.getApplicationDefault(); + Dataset dataset = + bigquery.create( + DatasetInfo.newBuilder(accessPolicyDataset) + .setDescription("Some Description") + .setLabels(Collections.singletonMap("a", "b")) + .build()); + assertThat(dataset).isNotNull(); + + User user = new User(credentials.getClientEmail()); + Acl.Role role = Acl.Role.WRITER; + Acl.Expr condition = + new Expr( + "request.time > timestamp('2024-01-01T00:00:00Z')", + "test condition", + "requests after the year 2024", + "location"); + Acl acl = Acl.of(user, role, condition); + List acls = new ArrayList<>(); + acls.addAll(dataset.getAcl()); + acls.add(acl); + + DatasetOption datasetOption = DatasetOption.accessPolicyVersion(3); + Dataset updatedDataset = + bigquery.update( + dataset + .toBuilder() + .setDescription("Updated Description") + .setLabels(null) + .setAcl(acls) + .build(), + datasetOption); + assertNotNull(updatedDataset); + assertEquals(updatedDataset.getDescription(), "Updated Description"); + assertThat(updatedDataset.getLabels().isEmpty()); + + Acl updatedAclWithCond = null; + for (Acl updatedAcl : updatedDataset.getAcl()) { + if (updatedAcl.getCondition() != null) { + updatedAclWithCond = updatedAcl; + } + } + assertNotNull(updatedAclWithCond); + assertEquals(updatedAclWithCond.getCondition(), condition); + + RemoteBigQueryHelper.forceDelete(bigquery, accessPolicyDataset); + } + @Test public void testGetNonExistingTable() { assertNull(bigquery.getTable(DATASET, "test_get_non_existing_table")); @@ -1688,6 +1784,70 @@ public void testCreateDatasetWithDefaultCollation() { RemoteBigQueryHelper.forceDelete(bigquery, collationDataset); } + @Test + public void testCreateDatasetWithAccessPolicyVersion() throws IOException { + String accessPolicyDataset = RemoteBigQueryHelper.generateDatasetName(); + ServiceAccountCredentials credentials = + (ServiceAccountCredentials) GoogleCredentials.getApplicationDefault(); + User user = new User(credentials.getClientEmail()); + Acl.Role role = Acl.Role.OWNER; + Acl.Expr condition = + new Expr( + "request.time > timestamp('2024-01-01T00:00:00Z')", + "test condition", + "requests after the year 2024", + "location"); + Acl acl = Acl.of(user, role, condition); + DatasetInfo info = + DatasetInfo.newBuilder(accessPolicyDataset) + .setDescription(DESCRIPTION) + .setLabels(LABELS) + .setAcl(ImmutableList.of(acl)) + .build(); + DatasetOption datasetOption = DatasetOption.accessPolicyVersion(3); + Dataset dataset = bigquery.create(info, datasetOption); + assertNotNull(dataset); + assertEquals(dataset.getDescription(), DESCRIPTION); + + Acl remoteAclWithCond = null; + for (Acl remoteAcl : dataset.getAcl()) { + if (remoteAcl.getCondition() != null) { + remoteAclWithCond = remoteAcl; + } + } + assertNotNull(remoteAclWithCond); + assertEquals(remoteAclWithCond.getCondition(), condition); + + RemoteBigQueryHelper.forceDelete(bigquery, accessPolicyDataset); + } + + @Test(expected = BigQueryException.class) + public void testCreateDatabaseWithInvalidAccessPolicyVersion() throws IOException { + String accessPolicyDataset = RemoteBigQueryHelper.generateDatasetName(); + ServiceAccountCredentials credentials = + (ServiceAccountCredentials) GoogleCredentials.getApplicationDefault(); + User user = new User(credentials.getClientEmail()); + Acl.Role role = Acl.Role.READER; + Acl.Expr condition = + new Expr( + "request.time > timestamp('2024-01-01T00:00:00Z')", + "test condition", + "requests after the year 2024", + "location"); + Acl acl = Acl.of(user, role, condition); + DatasetInfo info = + DatasetInfo.newBuilder(accessPolicyDataset) + .setDescription(DESCRIPTION) + .setLabels(LABELS) + .setAcl(ImmutableList.of(acl)) + .build(); + DatasetOption datasetOption = DatasetOption.accessPolicyVersion(4); + Dataset dataset = bigquery.create(info, datasetOption); + assertNotNull(dataset); + + RemoteBigQueryHelper.forceDelete(bigquery, accessPolicyDataset); + } + @Test public void testCreateTableWithDefaultCollation() { String tableName = "test_create_table_with_default_collation"; From cc25099f81cbf94e9e2ee9db03a7d9ecd913c176 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 6 Jan 2025 17:06:59 +0100 Subject: [PATCH 3101/3441] deps: update actions/upload-artifact action to v4.5.0 (#3620) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 91885df005b1..f60cb51d4251 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 with: name: SARIF file path: results.sarif From e0e09ec4954f5b5e2f094e4c67600f38353f453c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 6 Jan 2025 17:48:10 +0100 Subject: [PATCH 3102/3441] deps: update github/codeql-action action to v2.28.0 (#3621) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index f60cb51d4251..43e77e296a02 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@277b89701e930e6af7a758f50afa5185bfc53c81 # v2.27.9 + uses: github/codeql-action/upload-sarif@673cceb2b4886e2dfff697ab64a1ecd1c0a14a05 # v2.28.0 with: sarif_file: results.sarif From 4061922e46135d673bfa48c00bbf284efa46e065 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 6 Jan 2025 17:48:40 +0100 Subject: [PATCH 3103/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20241222-2.0.0 (#3623) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 28ba37474a66..819a34a1e321 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20241115-2.0.0 + v2-rev20241222-2.0.0 From 9a0b05a3b57797b7cdd8ca9739699fc018dbd868 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 9 Jan 2025 08:56:09 -0500 Subject: [PATCH 3104/3441] fix: NPE when reading BigQueryResultSet from empty tables (#3627) * fix: NPE when reading BigQueryResultSet from empty tables * Add unittests --- .../cloud/bigquery/BigQueryResultImpl.java | 3 +++ .../com/google/cloud/bigquery/Connection.java | 2 +- .../cloud/bigquery/ConnectionImplTest.java | 6 +++++- .../cloud/bigquery/it/ITBigQueryTest.java | 18 ++++++++++++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java index e944efcebabf..a1bb4d406937 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java @@ -113,6 +113,9 @@ private class BigQueryResultSet extends AbstractJdbcResultSet { @Override /*Advances the result set to the next row, returning false if no such row exists. Potentially blocking operation*/ public boolean next() throws SQLException { + if (buffer == null) { + return false; + } if (hasReachedEnd) { // if end of stream is reached then we can simply return false return false; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java index afc8eb848bfc..83ea0fc0dcbe 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java @@ -140,7 +140,7 @@ ListenableFuture executeSelectAsync(String sql) * @code * ConnectionSettings connectionSettings = * ConnectionSettings.newBuilder() - * ..setUseReadAPI(true) + * .setUseReadAPI(true) * .build(); * Connection connection = bigquery.createConnection(connectionSettings); * String selectQuery = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java index 58cb69ba7ede..7eea1570ae8d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java @@ -411,7 +411,7 @@ public void testLegacyQuerySinglePage() throws BigQuerySQLException { // calls executeSelect with a nonFast query where the query returns an empty result. @Test - public void testLegacyQuerySinglePageEmptyResults() throws BigQuerySQLException { + public void testLegacyQuerySinglePageEmptyResults() throws BigQuerySQLException, SQLException { ConnectionImpl connectionSpy = Mockito.spy(connection); com.google.api.services.bigquery.model.Job jobResponseMock = new com.google.api.services.bigquery.model.Job() @@ -428,6 +428,10 @@ public void testLegacyQuerySinglePageEmptyResults() throws BigQuerySQLException BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); assertEquals(res.getTotalRows(), 0); assertEquals(QUERY_SCHEMA, res.getSchema()); + assertEquals( + false, + res.getResultSet() + .next()); // Validates that NPE does not occur when reading from empty ResultSet. verify(bigqueryRpcMock, times(1)) .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index bf8d51314b66..24bf84f6eae9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3491,6 +3491,24 @@ public void testExecuteSelectDefaultConnectionSettings() throws SQLException { assertEquals(42, bigQueryResult.getTotalRows()); } + @Test + public void testExecuteSelectReadApiEmptyResultSet() throws SQLException { + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setJobTimeoutMs( + Long.MAX_VALUE) // Force executeSelect to use ReadAPI instead of fast query. + .setUseReadAPI(true) + .setUseQueryCache(false) + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + String query = "SELECT TIMESTAMP '2022-01-24T23:54:25.095574Z' LIMIT 0"; + BigQueryResult bigQueryResult = connection.executeSelect(query); + + ResultSet rs = bigQueryResult.getResultSet(); + assertThat(rs.next()).isFalse(); + assertThat(bigQueryResult.getTotalRows()).isEqualTo(0); + } + @Test public void testExecuteSelectWithCredentials() throws SQLException { // This test validate that executeSelect uses the same credential provided by the BigQuery From 5ca7d4acbbc40d6ef337732464b3bbd130c86430 Mon Sep 17 00:00:00 2001 From: Oleksandr Shevchenko Date: Thu, 9 Jan 2025 16:31:23 +0200 Subject: [PATCH 3105/3441] fix(test): Force usage of ReadAPI (#3625) --- .../ConnImplBenchmark.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java b/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java index 670e31ff6e09..eb239463fd69 100644 --- a/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java +++ b/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java @@ -56,9 +56,14 @@ public class ConnImplBenchmark { public void setUp() throws IOException { java.util.logging.Logger.getGlobal().setLevel(Level.ALL); - connectionSettingsReadAPIEnabled = ConnectionSettings.newBuilder().setUseReadAPI(true).build(); - connectionSettingsReadAPIDisabled = - ConnectionSettings.newBuilder().setUseReadAPI(false).build(); + connectionSettingsReadAPIEnabled = ConnectionSettings.newBuilder() + .setUseReadAPI(true) + .setMaxResults(500L) + .setJobTimeoutMs(Long.MAX_VALUE) + .build(); + connectionSettingsReadAPIDisabled = ConnectionSettings.newBuilder() + .setUseReadAPI(false) + .build(); } @Benchmark @@ -153,8 +158,8 @@ private long getResultHash(BigQueryResult bigQueryResultSet) throws SQLException System.out.println("\n Running"); while (rs.next()) { hash += computeHash(rs, "vendor_id", ResultSet::getString); - hash += computeHash(rs, "pickup_datetime", ResultSet::getString); - hash += computeHash(rs, "dropoff_datetime", ResultSet::getString); + hash += computeHash(rs, "pickup_datetime", ResultSet::getLong); + hash += computeHash(rs, "dropoff_datetime", ResultSet::getLong); hash += computeHash(rs, "passenger_count", ResultSet::getLong); hash += computeHash(rs, "trip_distance", ResultSet::getDouble); hash += computeHash(rs, "rate_code", ResultSet::getString); From 442d217606b7d93d26887344a7a4a01303b18b8c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 9 Jan 2025 15:46:15 +0100 Subject: [PATCH 3106/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.41.1 (#3628) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index f971b05c9544..5ced7ae24d52 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.41.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.41.1 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index cbccd336a051..a512b35af907 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.41.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.41.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index d9c9d020519f..554601f249ba 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.41.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.41.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 80a629d235ba..4218cff43ac1 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.41.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.41.1"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 644bb62ce7d3..b070666b48ed 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.41.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.41.1" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 7214bf10cf6f..730162fd8ae8 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.41.0 + 3.41.1 diff --git a/pom.xml b/pom.xml index 819a34a1e321..051846e58b59 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.41.0 + 3.41.1 From d1d52ac6776a2c70177f92182a676e93c04cd069 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 9 Jan 2025 15:46:52 +0100 Subject: [PATCH 3107/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.47.0 (#3629) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 051846e58b59..62e6e94bfab5 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.46.0 + 2.47.0 test From 3afc06b82559c49b199d79da7f125f2579070722 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 10 Jan 2025 17:09:04 +0100 Subject: [PATCH 3108/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.58.0 (#3630) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 62e6e94bfab5..162a8a0af729 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.57.0 + 2.58.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 978da1f36b84..6badfec9c82d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.57.0 + 2.58.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 190337e249d2..731df595ce54 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.57.0 + 2.58.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index b6476b2bdb16..bc783dde290e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.57.0 + 2.58.0 test From b0ea0d5bc4ac730b0e2eaf47e8a7441dc113686b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 10 Jan 2025 17:09:17 +0100 Subject: [PATCH 3109/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.58.0 (#3631) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 162a8a0af729..84a8812fb42e 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.57.0 + 2.58.0 test From e9ff265041f6771a71c8c378ed3ff5fdec6e837b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 10 Jan 2025 17:11:11 +0100 Subject: [PATCH 3110/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.62.0 (#3632) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 84a8812fb42e..e4c359a133c3 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.61.0 + 1.62.0 pom import From ca20aa47ea7826594975ab6aeb8498e2377f8553 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 10 Jan 2025 19:07:50 +0100 Subject: [PATCH 3111/3441] deps: update actions/upload-artifact action to v4.6.0 (#3633) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 43e77e296a02..185f0ef11541 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0 + uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 with: name: SARIF file path: results.sarif From 1eb844f2ab7f86d1e830ca551146fb82d43961f2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sat, 11 Jan 2025 04:12:17 +0100 Subject: [PATCH 3112/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.11.1 (#3636) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e4c359a133c3..47994ff5961d 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.11.0 + 3.11.1 pom import From bbbeed499108c24e6897340569bee8bd127728ee Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 13 Jan 2025 09:59:48 -0500 Subject: [PATCH 3113/3441] chore(main): release 2.46.0 (#3613) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 29 +++++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 38 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d8f525e2fd8..3e93809751c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,34 @@ # Changelog +## [2.46.0](https://github.com/googleapis/java-bigquery/compare/v2.45.0...v2.46.0) (2025-01-11) + + +### Features + +* **bigquery:** Support IAM conditions in datasets in Java client. ([#3602](https://github.com/googleapis/java-bigquery/issues/3602)) ([6696a9c](https://github.com/googleapis/java-bigquery/commit/6696a9c7d42970e3c24bda4da713a855dbe40ce5)) + + +### Bug Fixes + +* NPE when reading BigQueryResultSet from empty tables ([#3627](https://github.com/googleapis/java-bigquery/issues/3627)) ([9a0b05a](https://github.com/googleapis/java-bigquery/commit/9a0b05a3b57797b7cdd8ca9739699fc018dbd868)) +* **test:** Force usage of ReadAPI ([#3625](https://github.com/googleapis/java-bigquery/issues/3625)) ([5ca7d4a](https://github.com/googleapis/java-bigquery/commit/5ca7d4acbbc40d6ef337732464b3bbd130c86430)) + + +### Dependencies + +* Update actions/upload-artifact action to v4.5.0 ([#3620](https://github.com/googleapis/java-bigquery/issues/3620)) ([cc25099](https://github.com/googleapis/java-bigquery/commit/cc25099f81cbf94e9e2ee9db03a7d9ecd913c176)) +* Update actions/upload-artifact action to v4.6.0 ([#3633](https://github.com/googleapis/java-bigquery/issues/3633)) ([ca20aa4](https://github.com/googleapis/java-bigquery/commit/ca20aa47ea7826594975ab6aeb8498e2377f8553)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.57.0 ([#3617](https://github.com/googleapis/java-bigquery/issues/3617)) ([51370a9](https://github.com/googleapis/java-bigquery/commit/51370a92e7ab29dfce91199666f23576d2d1b64a)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.58.0 ([#3631](https://github.com/googleapis/java-bigquery/issues/3631)) ([b0ea0d5](https://github.com/googleapis/java-bigquery/commit/b0ea0d5bc4ac730b0e2eaf47e8a7441dc113686b)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20241222-2.0.0 ([#3623](https://github.com/googleapis/java-bigquery/issues/3623)) ([4061922](https://github.com/googleapis/java-bigquery/commit/4061922e46135d673bfa48c00bbf284efa46e065)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.61.0 ([#3618](https://github.com/googleapis/java-bigquery/issues/3618)) ([6cba626](https://github.com/googleapis/java-bigquery/commit/6cba626ff14cebbc04fa4f6058b273de0c5dd96e)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.62.0 ([#3632](https://github.com/googleapis/java-bigquery/issues/3632)) ([e9ff265](https://github.com/googleapis/java-bigquery/commit/e9ff265041f6771a71c8c378ed3ff5fdec6e837b)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.41.1 ([#3628](https://github.com/googleapis/java-bigquery/issues/3628)) ([442d217](https://github.com/googleapis/java-bigquery/commit/442d217606b7d93d26887344a7a4a01303b18b8c)) +* Update dependency com.google.oauth-client:google-oauth-client-java6 to v1.37.0 ([#3614](https://github.com/googleapis/java-bigquery/issues/3614)) ([f5faa69](https://github.com/googleapis/java-bigquery/commit/f5faa69bc5b6fdae137724df5693f8aecf27d609)) +* Update dependency com.google.oauth-client:google-oauth-client-jetty to v1.37.0 ([#3615](https://github.com/googleapis/java-bigquery/issues/3615)) ([a6c7944](https://github.com/googleapis/java-bigquery/commit/a6c79443a5e675a01ecb91e362e261a6f6ecc055)) +* Update github/codeql-action action to v2.27.9 ([#3608](https://github.com/googleapis/java-bigquery/issues/3608)) ([567ce01](https://github.com/googleapis/java-bigquery/commit/567ce01ed77d44760ddcd872a0d61abdd6a09832)) +* Update github/codeql-action action to v2.28.0 ([#3621](https://github.com/googleapis/java-bigquery/issues/3621)) ([e0e09ec](https://github.com/googleapis/java-bigquery/commit/e0e09ec4954f5b5e2f094e4c67600f38353f453c)) + ## [2.45.0](https://github.com/googleapis/java-bigquery/compare/v2.44.0...v2.45.0) (2024-12-13) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 71f23707f5f3..18d5535d1a33 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.45.1-SNAPSHOT + 2.46.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 730162fd8ae8..3326027c8ecd 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.45.1-SNAPSHOT + 2.46.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.45.1-SNAPSHOT + 2.46.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a18a1d1adafd..ed717baf0919 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.45.1-SNAPSHOT + 2.46.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.45.1-SNAPSHOT + 2.46.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 47994ff5961d..55b63fffa197 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.45.1-SNAPSHOT + 2.46.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.45.1-SNAPSHOT + 2.46.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 731df595ce54..291f257b109a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.45.1-SNAPSHOT + 2.46.0 diff --git a/versions.txt b/versions.txt index b964bf3a4d86..a944a00ff429 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.45.0:2.45.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.46.0:2.46.0 \ No newline at end of file From 858e51792d98276f10fd780ef6edd0bb4a1b4f54 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 14 Jan 2025 16:57:19 +0100 Subject: [PATCH 3114/3441] deps: update github/codeql-action action to v2.28.1 (#3637) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 185f0ef11541..b04c8ba87516 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@673cceb2b4886e2dfff697ab64a1ecd1c0a14a05 # v2.28.0 + uses: github/codeql-action/upload-sarif@b8d3b6e8af63cde30bdc382c0bc28114f4346c88 # v2.28.1 with: sarif_file: results.sarif From afd1821ed6cbf9c854d8ffcd728a1a44b061f6d2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 14 Jan 2025 17:15:59 +0100 Subject: [PATCH 3115/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.46.0 (#3640) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6badfec9c82d..59fbad99f287 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.45.0 + 2.46.0 From 5ed5f49886052a051b335e943feedd11f6f1f5d2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 14 Jan 2025 19:48:26 +0100 Subject: [PATCH 3116/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.51.1 (#3638) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 59fbad99f287..9f33fb2e60d3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.51.0 + 2.51.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 291f257b109a..7fba9968be86 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.51.0 + 2.51.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index bc783dde290e..635d02a71c08 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.51.0 + 2.51.1 test From 09c98bf56f8e2685405a847802a04b14b7b8109e Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 09:03:27 -0500 Subject: [PATCH 3117/3441] chore(main): release 2.46.1-SNAPSHOT (#3639) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 18d5535d1a33..8caef6763a60 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.46.0 + 2.46.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 3326027c8ecd..5804c1ae3111 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.46.0 + 2.46.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.46.0 + 2.46.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ed717baf0919..882c22006c41 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.46.0 + 2.46.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.46.0 + 2.46.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 55b63fffa197..68d2538378cc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.46.0 + 2.46.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.46.0 + 2.46.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7fba9968be86..fc97dddd7c86 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.46.0 + 2.46.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index a944a00ff429..4c6875fee5de 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.46.0:2.46.0 \ No newline at end of file +google-cloud-bigquery:2.46.0:2.46.1-SNAPSHOT \ No newline at end of file From fadd992a63fd1bc87c99cc689ed103f05de49a99 Mon Sep 17 00:00:00 2001 From: Liam <44932470+whuffman36@users.noreply.github.com> Date: Wed, 15 Jan 2025 11:10:37 -0800 Subject: [PATCH 3118/3441] fix(bigquery): Remove ReadAPI bypass in executeSelect() (#3624) * fix(bigquery): Remove ReadAPI bypass in executeSelect() for fast query requests. * Enable fast query and read API. Move readAPI condition check from getExecuteSelectResponse() to queryRpc(). This allows fast query to be used with ReadAPI. * Check for null for fast query results.getTotalRows() * Remove test file. * Add internal query state to keep track of ReadAPI usage. A Boolean field is added to keep track of whether or not the high throughput ReadAPI is used. This is mostly for testing to avoid another regression in the future. * Move tests into IT test file * Fix formatting changes. Again :/ * Add VisibleForTesting Annotation --- .../google/cloud/bigquery/ConnectionImpl.java | 24 +++++--- .../google/cloud/bigquery/JobStatistics.java | 15 +++++ .../cloud/bigquery/it/ITBigQueryTest.java | 58 +++++++++++++++++++ 3 files changed, 89 insertions(+), 8 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index 1f08bf4eb579..728a1fdaeecd 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -476,22 +476,29 @@ private BigQueryResult queryRpc( } // Query finished running and we can paginate all the results - if (results.getJobComplete() && results.getSchema() != null) { + // Results should be read using the high throughput read API if sufficiently large. + boolean resultsLargeEnoughForReadApi = + connectionSettings.getUseReadAPI() + && results.getTotalRows() != null + && results.getTotalRows().longValue() > connectionSettings.getMinResultSize(); + if (results.getJobComplete() && results.getSchema() != null && !resultsLargeEnoughForReadApi) { return processQueryResponseResults(results); } else { - // Query is long-running (> 10s) and hasn't completed yet, or query completed but didn't - // return the schema, fallback to jobs.insert path. Some operations don't return the schema - // and can be optimized here, but this is left as future work. - Long totalRows = results.getTotalRows() == null ? null : results.getTotalRows().longValue(); - Long pageRows = results.getRows() == null ? null : (long) (results.getRows().size()); + // Query is long-running (> 10s) and hasn't completed yet, query completed but didn't + // return the schema, or results are sufficiently large to use the high throughput read API, + // fallback to jobs.insert path. Some operations don't return the schema and can be optimized + // here, but this is left as future work. + JobId jobId = JobId.fromPb(results.getJobReference()); + GetQueryResultsResponse firstPage = getQueryResultsFirstPage(jobId); + Long totalRows = + firstPage.getTotalRows() == null ? null : firstPage.getTotalRows().longValue(); + Long pageRows = firstPage.getRows() == null ? null : (long) (firstPage.getRows().size()); logger.log( Level.WARNING, "\n" + String.format( "results.getJobComplete(): %s, isSchemaNull: %s , totalRows: %s, pageRows: %s", results.getJobComplete(), results.getSchema() == null, totalRows, pageRows)); - JobId jobId = JobId.fromPb(results.getJobReference()); - GetQueryResultsResponse firstPage = getQueryResultsFirstPage(jobId); return getSubsequentQueryResultsWithJob( totalRows, pageRows, jobId, firstPage, hasQueryParameters); } @@ -996,6 +1003,7 @@ BigQueryResult highThroughPutRead( schema); logger.log(Level.INFO, "\n Using BigQuery Read API"); + stats.getQueryStatistics().setUseReadApi(true); return new BigQueryResultImpl(schema, totalRows, bufferRow, stats); } catch (IOException e) { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index efbfda0222d6..407e25a8f3bb 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -27,6 +27,7 @@ import com.google.auto.value.AutoValue; import com.google.cloud.StringEnumType; import com.google.cloud.StringEnumValue; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; import com.google.common.base.MoreObjects; import com.google.common.base.MoreObjects.ToStringHelper; @@ -396,6 +397,7 @@ public static class QueryStatistics extends JobStatistics { private final BiEngineStats biEngineStats; private final Integer billingTier; private final Boolean cacheHit; + private Boolean useReadApi; private final String ddlOperationPerformed; private final TableId ddlTargetTable; private final RoutineId ddlTargetRoutine; @@ -796,6 +798,7 @@ private QueryStatistics(Builder builder) { this.biEngineStats = builder.biEngineStats; this.billingTier = builder.billingTier; this.cacheHit = builder.cacheHit; + this.useReadApi = false; this.ddlOperationPerformed = builder.ddlOperationPerformed; this.ddlTargetTable = builder.ddlTargetTable; this.ddlTargetRoutine = builder.ddlTargetRoutine; @@ -835,6 +838,18 @@ public Boolean getCacheHit() { return cacheHit; } + /** Returns whether the query result is read from the high throughput ReadAPI. */ + @VisibleForTesting + public Boolean getUseReadApi() { + return useReadApi; + } + + /** Sets internal state to reflect the use of the high throughput ReadAPI. */ + @VisibleForTesting + public void setUseReadApi(Boolean useReadApi) { + this.useReadApi = useReadApi; + } + /** [BETA] For DDL queries, returns the operation applied to the DDL target table. */ public String getDdlOperationPerformed() { return ddlOperationPerformed; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 24bf84f6eae9..0178ac10ad1d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3489,6 +3489,63 @@ public void testExecuteSelectDefaultConnectionSettings() throws SQLException { String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; BigQueryResult bigQueryResult = connection.executeSelect(query); assertEquals(42, bigQueryResult.getTotalRows()); + assertFalse(bigQueryResult.getBigQueryResultStats().getQueryStatistics().getUseReadApi()); + } + + @Test + public void testExecuteSelectWithReadApi() throws SQLException { + final int rowLimit = 5000; + final String QUERY = + "SELECT * FROM bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2017 LIMIT %s"; + // Job timeout is somewhat arbitrary - just ensures that fast query is not used. + // min result size and page row count ratio ensure that the ReadAPI is used. + ConnectionSettings connectionSettingsReadAPIEnabledFastQueryDisabled = + ConnectionSettings.newBuilder() + .setUseReadAPI(true) + .setJobTimeoutMs(Long.MAX_VALUE) + .setMinResultSize(500) + .setTotalToPageRowCountRatio(1) + .build(); + + Connection connectionReadAPIEnabled = + bigquery.createConnection(connectionSettingsReadAPIEnabledFastQueryDisabled); + + String selectQuery = String.format(QUERY, rowLimit); + + BigQueryResult bigQueryResultSet = connectionReadAPIEnabled.executeSelect(selectQuery); + ResultSet rs = bigQueryResultSet.getResultSet(); + // Paginate results to avoid an InterruptedException + while (rs.next()) {} + + assertTrue(bigQueryResultSet.getBigQueryResultStats().getQueryStatistics().getUseReadApi()); + connectionReadAPIEnabled.close(); + } + + @Test + public void testExecuteSelectWithFastQueryReadApi() throws SQLException { + final int rowLimit = 5000; + final String QUERY = + "SELECT * FROM bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2017 LIMIT %s"; + // min result size and page row count ratio ensure that the ReadAPI is used. + ConnectionSettings connectionSettingsReadAPIEnabledFastQueryDisabled = + ConnectionSettings.newBuilder() + .setUseReadAPI(true) + .setMinResultSize(500) + .setTotalToPageRowCountRatio(1) + .build(); + + Connection connectionReadAPIEnabled = + bigquery.createConnection(connectionSettingsReadAPIEnabledFastQueryDisabled); + + String selectQuery = String.format(QUERY, rowLimit); + + BigQueryResult bigQueryResultSet = connectionReadAPIEnabled.executeSelect(selectQuery); + ResultSet rs = bigQueryResultSet.getResultSet(); + // Paginate results to avoid an InterruptedException + while (rs.next()) {} + + assertTrue(bigQueryResultSet.getBigQueryResultStats().getQueryStatistics().getUseReadApi()); + connectionReadAPIEnabled.close(); } @Test @@ -3540,6 +3597,7 @@ public void testExecuteSelectWithCredentials() throws SQLException { + TABLE_ID_LARGE.getTable(); // Large query result is needed to use BigQueryReadClient. BigQueryResult bigQueryResult = connectionGoodCredentials.executeSelect(query); assertEquals(313348, bigQueryResult.getTotalRows()); + assertTrue(bigQueryResult.getBigQueryResultStats().getQueryStatistics().getUseReadApi()); // Scenario 2. // Create a new bigQuery object but explicitly an invalid credential. From 8833c97d73e3ba8e6a2061bbc55a6254b9e6668e Mon Sep 17 00:00:00 2001 From: Naung Nine Date: Fri, 17 Jan 2025 00:13:52 +0900 Subject: [PATCH 3119/3441] fix: Close bq read client (#3644) * Shutdown bqReadClient after high throughput read * Code formatted to google-java-format --- .../google/cloud/bigquery/ConnectionImpl.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index 728a1fdaeecd..5ad9fe2843eb 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -97,6 +97,7 @@ class ConnectionImpl implements Connection { private final Logger logger = Logger.getLogger(this.getClass().getName()); private BigQueryReadClient bqReadClient; private static final long EXECUTOR_TIMEOUT_SEC = 10; + private static final long BIGQUERY_TIMEOUT_SEC = 10; private BlockingQueue> bufferFvl; // initialized lazily iff we end up using the tabledata.list end point private BlockingQueue @@ -148,8 +149,15 @@ public synchronized boolean close() throws BigQuerySQLException { flagEndOfStream(); // an End of Stream flag in the buffer so that the `ResultSet.next()` stops // advancing the cursor queryTaskExecutor.shutdownNow(); + boolean isBqReadClientTerminated = true; try { - if (queryTaskExecutor.awaitTermination(EXECUTOR_TIMEOUT_SEC, TimeUnit.SECONDS)) { + if (bqReadClient != null) { + bqReadClient.shutdownNow(); + isBqReadClientTerminated = + bqReadClient.awaitTermination(BIGQUERY_TIMEOUT_SEC, TimeUnit.SECONDS); + } + if (queryTaskExecutor.awaitTermination(EXECUTOR_TIMEOUT_SEC, TimeUnit.SECONDS) + && isBqReadClientTerminated) { return true; } // else queryTaskExecutor.isShutdown() will be returned outside this try block } catch (InterruptedException e) { @@ -159,7 +167,9 @@ public synchronized boolean close() throws BigQuerySQLException { e); // Logging InterruptedException instead of throwing the exception back, close method // will return queryTaskExecutor.isShutdown() } - return queryTaskExecutor.isShutdown(); // check if the executor has been shutdown + + return queryTaskExecutor.isShutdown() + && isBqReadClientTerminated; // check if the executor has been shutdown } /** @@ -992,7 +1002,6 @@ BigQueryResult highThroughPutRead( // DO a regex check using order by and use multiple streams ; ReadSession readSession = bqReadClient.createReadSession(builder.build()); - bufferRow = new LinkedBlockingDeque<>(getBufferSize()); Map arrowNameToIndex = new HashMap<>(); // deserialize and populate the buffer async, so that the client isn't blocked @@ -1050,6 +1059,7 @@ private void processArrowStreamAsync( "\n" + Thread.currentThread().getName() + " Interrupted @ markLast", e); } + bqReadClient.shutdownNow(); // Shutdown the read client queryTaskExecutor.shutdownNow(); // Shutdown the thread pool } }; From fd06100c4c18b0416d384ec1f6bdfc796b70ad9f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 27 Jan 2025 16:56:52 +0100 Subject: [PATCH 3120/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250112-2.0.0 (#3651) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 68d2538378cc..4d19534b49ef 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20241222-2.0.0 + v2-rev20250112-2.0.0 From e10a1bef929cdc01b1020e17f5843625c1df8cf5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 28 Jan 2025 19:49:02 +0100 Subject: [PATCH 3121/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.48.0 (#3654) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4d19534b49ef..463504f4204d 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.47.0 + 2.48.0 test From 1a143428c7f584db3dd6e827c2ee8fe980afe18c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 28 Jan 2025 19:49:24 +0100 Subject: [PATCH 3122/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.42.0 (#3653) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 5ced7ae24d52..813d09f1ba61 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.41.1 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.42.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index a512b35af907..ce53947530f2 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.41.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.42.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 554601f249ba..ffdac2378200 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.41.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.42.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 4218cff43ac1..6331bd58615d 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.41.1"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.42.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index b070666b48ed..f08c4be3e00b 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.41.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.42.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 5804c1ae3111..27abe1df6271 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.41.1 + 3.42.0 diff --git a/pom.xml b/pom.xml index 463504f4204d..58546b2d50cf 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.41.1 + 3.42.0 From 01e0b742b9ffeafaa89b080a39d8a66c12c1fd3b Mon Sep 17 00:00:00 2001 From: Liam <44932470+whuffman36@users.noreply.github.com> Date: Tue, 28 Jan 2025 11:37:00 -0800 Subject: [PATCH 3123/3441] feat(bigquery): Support resource tags for datasets in java client (#3647) * feat(bigquery): Support resource tags for datasets in java client * add method to clirr-ignored-diff file * Try Acl permissions to grant tag permissions * Add exception to func signature * Remove IT tests --- .../clirr-ignored-differences.xml | 5 +++ .../com/google/cloud/bigquery/Dataset.java | 6 +++ .../google/cloud/bigquery/DatasetInfo.java | 41 +++++++++++++++++++ .../cloud/bigquery/DatasetInfoTest.java | 7 ++++ .../google/cloud/bigquery/DatasetTest.java | 8 ++++ 5 files changed, 67 insertions(+) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index b6546847fe79..9ef680c6677c 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -134,4 +134,9 @@ com/google/cloud/bigquery/DatasetInfo* *setMaxTimeTravelHours(*) + + 7013 + com/google/cloud/bigquery/DatasetInfo* + *setResourceTags(*) + \ No newline at end of file diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java index 4fc8577853e7..18606e701368 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java @@ -170,6 +170,12 @@ public Builder setMaxTimeTravelHours(Long maxTimeTravelHours) { return this; } + @Override + public Builder setResourceTags(Map resourceTags) { + infoBuilder.setResourceTags(resourceTags); + return this; + } + @Override public Dataset build() { return new Dataset(bigquery, infoBuilder); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java index f9b7f03e17b4..90d6c2cd55a5 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java @@ -76,6 +76,7 @@ public Dataset apply(DatasetInfo datasetInfo) { private final ExternalDatasetReference externalDatasetReference; private final String storageBillingModel; private final Long maxTimeTravelHours; + private final Annotations resourceTags; /** A builder for {@code DatasetInfo} objects. */ public abstract static class Builder { @@ -184,6 +185,19 @@ public abstract Builder setDefaultEncryptionConfiguration( */ public abstract Builder setDefaultCollation(String defaultCollation); + /** + * Optional. The tags attached to this + * dataset. Tag keys are globally unique. Tag key is expected to be in the namespaced format, + * for example "123456789012/environment" where 123456789012 is the ID of the parent + * organization or project resource for this tag key. Tag value is expected to be the short + * name, for example "Production". + * + * @see Tag + * definitions for more details. + * @param resourceTags resourceTags or {@code null} for none + */ + public abstract Builder setResourceTags(Map resourceTags); + /** Creates a {@code DatasetInfo} object. */ public abstract DatasetInfo build(); } @@ -208,6 +222,7 @@ static final class BuilderImpl extends Builder { private ExternalDatasetReference externalDatasetReference; private String storageBillingModel; private Long maxTimeTravelHours; + private Annotations resourceTags = Annotations.ZERO; BuilderImpl() {} @@ -230,6 +245,7 @@ static final class BuilderImpl extends Builder { this.externalDatasetReference = datasetInfo.externalDatasetReference; this.storageBillingModel = datasetInfo.storageBillingModel; this.maxTimeTravelHours = datasetInfo.maxTimeTravelHours; + this.resourceTags = datasetInfo.resourceTags; } BuilderImpl(com.google.api.services.bigquery.model.Dataset datasetPb) { @@ -270,6 +286,7 @@ public Acl apply(Dataset.Access accessPb) { } this.storageBillingModel = datasetPb.getStorageBillingModel(); this.maxTimeTravelHours = datasetPb.getMaxTimeTravelHours(); + this.resourceTags = Annotations.fromPb(datasetPb.getResourceTags()); } @Override @@ -388,6 +405,12 @@ public Builder setMaxTimeTravelHours(Long maxTimeTravelHours) { return this; } + @Override + public Builder setResourceTags(Map resourceTags) { + this.resourceTags = Annotations.fromUser(resourceTags); + return this; + } + @Override public DatasetInfo build() { return new DatasetInfo(this); @@ -413,6 +436,7 @@ public DatasetInfo build() { externalDatasetReference = builder.externalDatasetReference; storageBillingModel = builder.storageBillingModel; maxTimeTravelHours = builder.maxTimeTravelHours; + resourceTags = builder.resourceTags; } /** Returns the dataset identity. */ @@ -554,6 +578,21 @@ public Long getMaxTimeTravelHours() { return maxTimeTravelHours; } + /** + * Optional. The tags attached to this + * dataset. Tag keys are globally unique. Tag key is expected to be in the namespaced format, for + * example "123456789012/environment" where 123456789012 is the ID of the parent organization or + * project resource for this tag key. Tag value is expected to be the short name, for example + * "Production". + * + * @see Tag + * definitions for more details. + * @return value or {@code null} for none + */ + public Map getResourceTags() { + return resourceTags.userMap(); + } + /** * Returns information about the external metadata storage where the dataset is defined. Filled * out when the dataset type is EXTERNAL. @@ -588,6 +627,7 @@ public String toString() { .add("externalDatasetReference", externalDatasetReference) .add("storageBillingModel", storageBillingModel) .add("maxTimeTravelHours", maxTimeTravelHours) + .add("resourceTags", resourceTags) .toString(); } @@ -675,6 +715,7 @@ public Dataset.Access apply(Acl acl) { if (maxTimeTravelHours != null) { datasetPb.setMaxTimeTravelHours(maxTimeTravelHours); } + datasetPb.setResourceTags(resourceTags.toPb()); return datasetPb; } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java index 49a392baf734..e999b86e251f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -62,6 +62,10 @@ public class DatasetInfoTest { private static final String STORAGE_BILLING_MODEL = "LOGICAL"; private static final Long MAX_TIME_TRAVEL_HOURS_5_DAYS = 120L; private static final Long MAX_TIME_TRAVEL_HOURS_7_DAYS = 168L; + private static final Map RESOURCE_TAGS = + ImmutableMap.of( + "example-key1", "example-value1", + "example-key2", "example-value2"); private static final ExternalDatasetReference EXTERNAL_DATASET_REFERENCE = ExternalDatasetReference.newBuilder() @@ -85,6 +89,7 @@ public class DatasetInfoTest { .setDefaultPartitionExpirationMs(DEFAULT_PARTITION__EXPIRATION) .setStorageBillingModel(STORAGE_BILLING_MODEL) .setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS_7_DAYS) + .setResourceTags(RESOURCE_TAGS) .build(); private static final DatasetInfo DATASET_INFO_COMPLETE = DATASET_INFO @@ -183,6 +188,7 @@ public void testBuilder() { assertEquals( MAX_TIME_TRAVEL_HOURS_5_DAYS, DATASET_INFO_WITH_MAX_TIME_TRAVEL_5_DAYS.getMaxTimeTravelHours()); + assertEquals(RESOURCE_TAGS, DATASET_INFO.getResourceTags()); } @Test @@ -272,5 +278,6 @@ private void compareDatasets(DatasetInfo expected, DatasetInfo value) { assertEquals(expected.getExternalDatasetReference(), value.getExternalDatasetReference()); assertEquals(expected.getStorageBillingModel(), value.getStorageBillingModel()); assertEquals(expected.getMaxTimeTravelHours(), value.getMaxTimeTravelHours()); + assertEquals(expected.getResourceTags(), value.getResourceTags()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java index e2d7c635ce9b..d138e3cb51d7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java @@ -68,6 +68,10 @@ public class DatasetTest { private static final Field FIELD = Field.of("FieldName", LegacySQLTypeName.INTEGER); private static final String STORAGE_BILLING_MODEL = "LOGICAL"; private static final Long MAX_TIME_TRAVEL_HOURS = 168L; + private static final Map RESOURCE_TAGS = + ImmutableMap.of( + "example-key1", "example-value1", + "example-key2", "example-value2"); private static final StandardTableDefinition TABLE_DEFINITION = StandardTableDefinition.of(Schema.of(FIELD)); private static final ViewDefinition VIEW_DEFINITION = ViewDefinition.of("QUERY"); @@ -124,6 +128,7 @@ public void testBuilder() { .setLabels(LABELS) .setStorageBillingModel(STORAGE_BILLING_MODEL) .setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS) + .setResourceTags(RESOURCE_TAGS) .build(); assertEquals(DATASET_ID, builtDataset.getDatasetId()); assertEquals(ACCESS_RULES, builtDataset.getAcl()); @@ -139,6 +144,7 @@ public void testBuilder() { assertEquals(LABELS, builtDataset.getLabels()); assertEquals(STORAGE_BILLING_MODEL, builtDataset.getStorageBillingModel()); assertEquals(MAX_TIME_TRAVEL_HOURS, builtDataset.getMaxTimeTravelHours()); + assertEquals(RESOURCE_TAGS, builtDataset.getResourceTags()); } @Test @@ -348,6 +354,7 @@ public void testExternalDatasetReference() { .setExternalDatasetReference(EXTERNAL_DATASET_REFERENCE) .setStorageBillingModel(STORAGE_BILLING_MODEL) .setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS) + .setResourceTags(RESOURCE_TAGS) .build(); assertEquals( EXTERNAL_DATASET_REFERENCE, @@ -379,5 +386,6 @@ private void compareDatasetInfo(DatasetInfo expected, DatasetInfo value) { assertEquals(expected.getExternalDatasetReference(), value.getExternalDatasetReference()); assertEquals(expected.getStorageBillingModel(), value.getStorageBillingModel()); assertEquals(expected.getMaxTimeTravelHours(), value.getMaxTimeTravelHours()); + assertEquals(expected.getResourceTags(), value.getResourceTags()); } } From 52fdbfae08ba84f4497a0f71d8a558bee1db4ba9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 29 Jan 2025 05:10:31 +0100 Subject: [PATCH 3124/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.11.2 (#3656) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 58546b2d50cf..40807a7dbcaf 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.11.1 + 3.11.2 pom import From fa641a8f58cc2a3a24570517b16e665c127c362b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 28 Jan 2025 23:40:24 -0500 Subject: [PATCH 3125/3441] chore(main): release 2.47.0 (#3643) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 20 ++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 29 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3e93809751c5..addb3d7233c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## [2.47.0](https://github.com/googleapis/java-bigquery/compare/v2.46.0...v2.47.0) (2025-01-29) + + +### Features + +* **bigquery:** Support resource tags for datasets in java client ([#3647](https://github.com/googleapis/java-bigquery/issues/3647)) ([01e0b74](https://github.com/googleapis/java-bigquery/commit/01e0b742b9ffeafaa89b080a39d8a66c12c1fd3b)) + + +### Bug Fixes + +* **bigquery:** Remove ReadAPI bypass in executeSelect() ([#3624](https://github.com/googleapis/java-bigquery/issues/3624)) ([fadd992](https://github.com/googleapis/java-bigquery/commit/fadd992a63fd1bc87c99cc689ed103f05de49a99)) +* Close bq read client ([#3644](https://github.com/googleapis/java-bigquery/issues/3644)) ([8833c97](https://github.com/googleapis/java-bigquery/commit/8833c97d73e3ba8e6a2061bbc55a6254b9e6668e)) + + +### Dependencies + +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20250112-2.0.0 ([#3651](https://github.com/googleapis/java-bigquery/issues/3651)) ([fd06100](https://github.com/googleapis/java-bigquery/commit/fd06100c4c18b0416d384ec1f6bdfc796b70ad9f)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.42.0 ([#3653](https://github.com/googleapis/java-bigquery/issues/3653)) ([1a14342](https://github.com/googleapis/java-bigquery/commit/1a143428c7f584db3dd6e827c2ee8fe980afe18c)) +* Update github/codeql-action action to v2.28.1 ([#3637](https://github.com/googleapis/java-bigquery/issues/3637)) ([858e517](https://github.com/googleapis/java-bigquery/commit/858e51792d98276f10fd780ef6edd0bb4a1b4f54)) + ## [2.46.0](https://github.com/googleapis/java-bigquery/compare/v2.45.0...v2.46.0) (2025-01-11) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8caef6763a60..602d04857787 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.46.1-SNAPSHOT + 2.47.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 27abe1df6271..3a5c6f3e1df2 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.46.1-SNAPSHOT + 2.47.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.46.1-SNAPSHOT + 2.47.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 882c22006c41..13651acacb82 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.46.1-SNAPSHOT + 2.47.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.46.1-SNAPSHOT + 2.47.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 40807a7dbcaf..d6826d56657c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.46.1-SNAPSHOT + 2.47.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.46.1-SNAPSHOT + 2.47.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index fc97dddd7c86..bb0ca36c1226 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.46.1-SNAPSHOT + 2.47.0 diff --git a/versions.txt b/versions.txt index 4c6875fee5de..d6010fec4a46 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.46.0:2.46.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.47.0:2.47.0 \ No newline at end of file From 58f80926f743eb2fd7258c19acb060b870f8841c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 Jan 2025 16:19:37 +0100 Subject: [PATCH 3126/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.47.0 (#3658) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 9f33fb2e60d3..2b580c6d47c2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.46.0 + 2.47.0 From 728e312887856b3cfb243f650a4392d354c7a4d5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 Jan 2025 16:20:56 +0100 Subject: [PATCH 3127/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.59.0 (#3659) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index d6826d56657c..a3ee30d4160c 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.58.0 + 2.59.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 2b580c6d47c2..b5f6b66f5b48 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.58.0 + 2.59.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index bb0ca36c1226..600522b26f4a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.58.0 + 2.59.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 635d02a71c08..69ea0c9e1644 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.58.0 + 2.59.0 test From 3a6228b4adc638759d3b2725c612e97e1a3b9cec Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 Jan 2025 16:21:19 +0100 Subject: [PATCH 3128/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.59.0 (#3660) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a3ee30d4160c..497654fc9f5c 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.58.0 + 2.59.0 test From 9bc8c0115dc16fb950567cd85cc7dfaa9df50d7d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 30 Jan 2025 19:51:08 +0100 Subject: [PATCH 3129/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.63.0 (#3661) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 497654fc9f5c..5b1d3a0d765a 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.62.0 + 1.63.0 pom import From c7ef94be115cd572df589385f9be801033d72d6d Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 30 Jan 2025 14:56:57 -0500 Subject: [PATCH 3130/3441] feat: implement wasNull for BigQueryResultSet (#3650) * feat: implement wasNull for BigQueryResultSet * feat: implement wasNull for BigQueryResultSet * feat: implement wasNull for BigQueryResultSet * feat: implement wasNull for BigQueryResultSet * feat: implement wasNull for BigQueryResultSet * feat: implement wasNull for BigQueryResultSet * feat: implement wasNull for BigQueryResultSet --- .../cloud/bigquery/BigQueryResultImpl.java | 407 +++++++++++------- .../bigquery/BigQueryResultImplTest.java | 257 +++++++++++ 2 files changed, 505 insertions(+), 159 deletions(-) create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java index a1bb4d406937..e1e129eaea32 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java @@ -24,14 +24,17 @@ import java.sql.Timestamp; import java.time.LocalDateTime; import java.time.LocalTime; -import java.time.ZoneId; import java.util.Map; -import java.util.TimeZone; import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; import org.apache.arrow.vector.util.JsonStringArrayList; import org.apache.arrow.vector.util.Text; +/** + * An implementation of BigQueryResult. + * + *

    This class and the ResultSet it returns is not thread-safe. + */ public class BigQueryResultImpl implements BigQueryResult { private static final String NULL_CURSOR_MSG = @@ -109,6 +112,7 @@ private class BigQueryResultSet extends AbstractJdbcResultSet { private boolean hasReachedEnd = false; // flag which will be set to true when we have encountered a EndOfStream or when // curTup.isLast(). Ref: https://github.com/googleapis/java-bigquery/issues/2033 + private boolean wasNull = false; @Override /*Advances the result set to the next row, returning false if no such row exists. Potentially blocking operation*/ @@ -148,6 +152,14 @@ private boolean isEndOfStream(T cursor) { return cursor instanceof ConnectionImpl.EndOfFieldValueList; } + private Object getCurrentValueForReadApiData(String fieldName) throws SQLException { + Row curRow = (Row) cursor; + if (!curRow.hasField(fieldName)) { + throw new SQLException(String.format("Field %s not found", fieldName)); + } + return curRow.get(fieldName); + } + @Override public Object getObject(String fieldName) throws SQLException { if (fieldName == null) { @@ -157,13 +169,20 @@ public Object getObject(String fieldName) throws SQLException { throw new BigQuerySQLException(NULL_CURSOR_MSG); } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); - return (fieldValue == null || fieldValue.getValue() == null) ? null : fieldValue.getValue(); + if (fieldValue == null || fieldValue.getValue() == null) { + wasNull = true; + return null; + } + wasNull = false; + return fieldValue.getValue(); } else { // Data received from Read API (Arrow) - Row curRow = (Row) cursor; - if (!curRow.hasField(fieldName)) { - throw new SQLException(String.format("Field %s not found", fieldName)); + Object curVal = getCurrentValueForReadApiData(fieldName); + if (curVal == null) { + wasNull = true; + return null; } - return curRow.get(fieldName); + wasNull = false; + return curVal; } } @@ -173,7 +192,12 @@ public Object getObject(int columnIndex) throws SQLException { return null; } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); - return (fieldValue == null || fieldValue.getValue() == null) ? null : fieldValue.getValue(); + if (fieldValue == null || fieldValue.getValue() == null) { + wasNull = true; + return null; + } + wasNull = false; + return fieldValue.getValue(); } else { // Data received from Read API (Arrow) return getObject(schemaFieldList.get(columnIndex).getName()); } @@ -189,23 +213,23 @@ public String getString(String fieldName) throws SQLException { } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; return null; - } else if (fieldValue - .getAttribute() - .equals(FieldValue.Attribute.REPEATED)) { // Case for Arrays + } + wasNull = false; + if (fieldValue.getAttribute().equals(FieldValue.Attribute.REPEATED)) { // Case for Arrays return fieldValue.getValue().toString(); } else { return fieldValue.getStringValue(); } } else { // Data received from Read API (Arrow) - Row curRow = (Row) cursor; - if (!curRow.hasField(fieldName)) { - throw new SQLException(String.format("Field %s not found", fieldName)); - } - Object currentVal = curRow.get(fieldName); + Object currentVal = getCurrentValueForReadApiData(fieldName); if (currentVal == null) { + wasNull = true; return null; - } else if (currentVal instanceof JsonStringArrayList) { // arrays + } + wasNull = false; + if (currentVal instanceof JsonStringArrayList) { // arrays JsonStringArrayList jsnAry = (JsonStringArrayList) currentVal; return jsnAry.toString(); } else if (currentVal instanceof LocalDateTime) { @@ -224,9 +248,12 @@ public String getString(int columnIndex) throws SQLException { return null; } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); - return (fieldValue == null || fieldValue.getValue() == null) - ? null - : fieldValue.getStringValue(); + if (fieldValue == null || fieldValue.getValue() == null) { + wasNull = true; + return null; + } + wasNull = false; + return fieldValue.getStringValue(); } else { // Data received from Read API (Arrow) return getString(schemaFieldList.get(columnIndex).getName()); } @@ -242,27 +269,27 @@ public int getInt(String fieldName) throws SQLException { // java.sql.ResultSet definition } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); - return (fieldValue == null || fieldValue.getValue() == null) - ? 0 - : fieldValue.getNumericValue().intValue(); - } else { // Data received from Read API (Arrow) - - Row curRow = (Row) cursor; - if (!curRow.hasField(fieldName)) { - throw new SQLException(String.format("Field %s not found", fieldName)); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return 0; } - Object curVal = curRow.get(fieldName); - if (curVal == null) { + wasNull = false; + return fieldValue.getNumericValue().intValue(); + } else { // Data received from Read API (Arrow) + Object currentVal = getCurrentValueForReadApiData(fieldName); + if (currentVal == null) { + wasNull = true; return 0; } - if (curVal instanceof Text) { // parse from text to int - return Integer.parseInt(((Text) curVal).toString()); - } else if (curVal + wasNull = false; + if (currentVal instanceof Text) { // parse from text to int + return Integer.parseInt((currentVal).toString()); + } else if (currentVal instanceof Long) { // incase getInt is called for a Long value. Loss of precision might occur - return ((Long) curVal).intValue(); + return ((Long) currentVal).intValue(); } - return ((BigDecimal) curVal).intValue(); + return ((BigDecimal) currentVal).intValue(); } } @@ -273,9 +300,11 @@ public int getInt(int columnIndex) throws SQLException { // java.sql.ResultSet definition } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); - return (fieldValue == null || fieldValue.getValue() == null) - ? 0 - : fieldValue.getNumericValue().intValue(); + if (fieldValue == null || fieldValue.getValue() == null) { + wasNull = true; + return 0; + } + return fieldValue.getNumericValue().intValue(); } else { // Data received from Read API (Arrow) return getInt(schemaFieldList.get(columnIndex).getName()); } @@ -290,20 +319,21 @@ public long getLong(String fieldName) throws SQLException { throw new BigQuerySQLException(NULL_CURSOR_MSG); } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); - return (fieldValue == null || fieldValue.getValue() == null) - ? 0L - : fieldValue.getNumericValue().longValue(); - } else { // Data received from Read API (Arrow) - Row curRow = (Row) cursor; - if (!curRow.hasField(fieldName)) { - throw new SQLException(String.format("Field %s not found", fieldName)); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return 0L; } - Object curVal = curRow.get(fieldName); + wasNull = false; + return fieldValue.getNumericValue().longValue(); + } else { // Data received from Read API (Arrow) + Object curVal = getCurrentValueForReadApiData(fieldName); if (curVal == null) { + wasNull = true; return 0L; - } else { // value will be Long or BigDecimal, but are Number - return ((Number) curVal).longValue(); } + wasNull = false; + // value will be Long or BigDecimal, but are Number + return ((Number) curVal).longValue(); } } @@ -314,9 +344,12 @@ public long getLong(int columnIndex) throws SQLException { // java.sql.ResultSet definition } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); - return (fieldValue == null || fieldValue.getValue() == null) - ? 0L - : fieldValue.getNumericValue().longValue(); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return 0L; + } + wasNull = false; + return fieldValue.getNumericValue().longValue(); } else { // Data received from Read API (Arrow) return getInt(schemaFieldList.get(columnIndex).getName()); } @@ -331,16 +364,20 @@ public double getDouble(String fieldName) throws SQLException { throw new BigQuerySQLException(NULL_CURSOR_MSG); } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); - return (fieldValue == null || fieldValue.getValue() == null) - ? 0d - : fieldValue.getNumericValue().doubleValue(); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return 0.0d; + } + wasNull = false; + return fieldValue.getNumericValue().doubleValue(); } else { // Data received from Read API (Arrow) - Row curRow = (Row) cursor; - if (!curRow.hasField(fieldName)) { - throw new SQLException(String.format("Field %s not found", fieldName)); + Object curVal = getCurrentValueForReadApiData(fieldName); + if (curVal == null) { + wasNull = true; + return 0.0d; } - Object curVal = curRow.get(fieldName); - return curVal == null ? 0.0d : new BigDecimal(curVal.toString()).doubleValue(); + wasNull = false; + return new BigDecimal(curVal.toString()).doubleValue(); } } @@ -351,9 +388,12 @@ public double getDouble(int columnIndex) throws SQLException { // java.sql.ResultSet definition } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); - return (fieldValue == null || fieldValue.getValue() == null) - ? 0d - : fieldValue.getNumericValue().doubleValue(); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return 0.0d; + } + wasNull = false; + return fieldValue.getNumericValue().doubleValue(); } else { // Data received from Read API (Arrow) return getDouble(schemaFieldList.get(columnIndex).getName()); } @@ -368,10 +408,19 @@ public BigDecimal getBigDecimal(String fieldName) throws SQLException { throw new BigQuerySQLException(NULL_CURSOR_MSG); } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); - return (fieldValue == null || fieldValue.getValue() == null) - ? null - : BigDecimal.valueOf(fieldValue.getNumericValue().doubleValue()); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return null; + } + wasNull = false; + return BigDecimal.valueOf(fieldValue.getNumericValue().doubleValue()); } else { // Data received from Read API (Arrow) + Object curVal = getCurrentValueForReadApiData(fieldName); + if (curVal == null) { + wasNull = true; + return null; + } + wasNull = false; return BigDecimal.valueOf(getDouble(fieldName)); } } @@ -382,9 +431,12 @@ public BigDecimal getBigDecimal(int columnIndex) throws SQLException { throw new BigQuerySQLException(NULL_CURSOR_MSG); } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); - return (fieldValue == null || fieldValue.getValue() == null) - ? null - : BigDecimal.valueOf(fieldValue.getNumericValue().doubleValue()); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return null; + } + wasNull = false; + return BigDecimal.valueOf(fieldValue.getNumericValue().doubleValue()); } else { // Data received from Read API (Arrow) return getBigDecimal(schemaFieldList.get(columnIndex).getName()); } @@ -399,14 +451,20 @@ public boolean getBoolean(String fieldName) throws SQLException { throw new BigQuerySQLException(NULL_CURSOR_MSG); } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); - return fieldValue.getValue() != null && fieldValue.getBooleanValue(); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return false; + } + wasNull = false; + return fieldValue.getBooleanValue(); } else { // Data received from Read API (Arrow) - Row curRow = (Row) cursor; - if (!curRow.hasField(fieldName)) { - throw new SQLException(String.format("Field %s not found", fieldName)); + Object curVal = getCurrentValueForReadApiData(fieldName); + if (curVal == null) { + wasNull = true; + return false; } - Object curVal = curRow.get(fieldName); - return curVal != null && (Boolean) curVal; + wasNull = false; + return (Boolean) curVal; } } @@ -416,7 +474,12 @@ public boolean getBoolean(int columnIndex) throws SQLException { throw new BigQuerySQLException(NULL_CURSOR_MSG); } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); - return fieldValue.getValue() != null && fieldValue.getBooleanValue(); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return false; + } + wasNull = false; + return fieldValue.getBooleanValue(); } else { // Data received from Read API (Arrow) return getBoolean(schemaFieldList.get(columnIndex).getName()); } @@ -431,16 +494,20 @@ public byte[] getBytes(String fieldName) throws SQLException { throw new BigQuerySQLException(NULL_CURSOR_MSG); } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); - return (fieldValue == null || fieldValue.getValue() == null) - ? null - : fieldValue.getBytesValue(); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return null; + } + wasNull = false; + return fieldValue.getBytesValue(); } else { // Data received from Read API (Arrow) - Row curRow = (Row) cursor; - if (!curRow.hasField(fieldName)) { - throw new SQLException(String.format("Field %s not found", fieldName)); + Object curVal = getCurrentValueForReadApiData(fieldName); + if (curVal == null) { + wasNull = true; + return null; } - Object curVal = curRow.get(fieldName); - return curVal == null ? null : (byte[]) curVal; + wasNull = false; + return (byte[]) curVal; } } @@ -450,9 +517,12 @@ public byte[] getBytes(int columnIndex) throws SQLException { return null; // if the value is SQL NULL, the value returned is null } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); - return (fieldValue == null || fieldValue.getValue() == null) - ? null - : fieldValue.getBytesValue(); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return null; + } + wasNull = false; + return fieldValue.getBytesValue(); } else { // Data received from Read API (Arrow) return getBytes(schemaFieldList.get(columnIndex).getName()); } @@ -467,21 +537,23 @@ public Timestamp getTimestamp(String fieldName) throws SQLException { return null; // if the value is SQL NULL, the value returned is null } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); - return (fieldValue == null || fieldValue.getValue() == null) - ? null - : new Timestamp( - fieldValue.getTimestampValue() - / 1000); // getTimestampValue returns time in microseconds, and TimeStamp - // expects it in millis + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return null; + } + wasNull = false; + return new Timestamp( + fieldValue.getTimestampValue() + / 1000); // getTimestampValue returns time in microseconds, and TimeStamp expects it + // in millis } else { - Row curRow = (Row) cursor; - if (!curRow.hasField(fieldName)) { - throw new SQLException(String.format("Field %s not found", fieldName)); + Object curVal = getCurrentValueForReadApiData(fieldName); + if (curVal == null) { + wasNull = true; + return null; } - Object timeStampVal = curRow.get(fieldName); - return timeStampVal == null - ? null - : new Timestamp((Long) timeStampVal / 1000); // Timestamp is represented as a Long + wasNull = false; + return new Timestamp((Long) curVal / 1000); // Timestamp is represented as a Long } } @@ -491,12 +563,15 @@ public Timestamp getTimestamp(int columnIndex) throws SQLException { throw new BigQuerySQLException(NULL_CURSOR_MSG); } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); - return (fieldValue == null || fieldValue.getValue() == null) - ? null - : new Timestamp( - fieldValue.getTimestampValue() - / 1000); // getTimestampValue returns time in microseconds, and TimeStamp - // expects it in millis + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return null; + } + wasNull = false; + return new Timestamp( + fieldValue.getTimestampValue() + / 1000); // getTimestampValue returns time in microseconds, and TimeStamp expects it + // in millis } else { // Data received from Read API (Arrow) return getTimestamp(schemaFieldList.get(columnIndex).getName()); } @@ -511,61 +586,62 @@ public Time getTime(String fieldName) throws SQLException { return null; // if the value is SQL NULL, the value returned is null } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return null; + } + wasNull = false; return getTimeFromFieldVal(fieldValue); } else { // Data received from Read API (Arrow) - Row curRow = (Row) cursor; - if (!curRow.hasField(fieldName)) { - throw new SQLException(String.format("Field %s not found", fieldName)); + Object curVal = getCurrentValueForReadApiData(fieldName); + if (curVal == null) { + wasNull = true; + return null; } - Object timeStampObj = curRow.get(fieldName); - return timeStampObj == null - ? null - : new Time( - ((Long) timeStampObj) - / 1000); // Time.toString() will return 12:11:35 in GMT as 17:41:35 in - // (GMT+5:30). This can be offset using getTimeZoneOffset + wasNull = false; + return new Time( + ((Long) curVal) + / 1000); // Time.toString() will return 12:11:35 in GMT as 17:41:35 in (GMT+5:30). + // This can be offset using getTimeZoneOffset } } - private int getTimeZoneOffset() { - TimeZone timeZone = TimeZone.getTimeZone(ZoneId.systemDefault()); - return timeZone.getOffset(new java.util.Date().getTime()); // offset in seconds - } - @Override public Time getTime(int columnIndex) throws SQLException { if (cursor == null) { throw new BigQuerySQLException(NULL_CURSOR_MSG); } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return null; + } + wasNull = false; return getTimeFromFieldVal(fieldValue); } else { // Data received from Read API (Arrow) return getTime(schemaFieldList.get(columnIndex).getName()); } } + // Expects fieldValue.getValue() != null. private Time getTimeFromFieldVal(FieldValue fieldValue) throws SQLException { - if (fieldValue.getValue() != null) { - // Time ranges from 00:00:00 to 23:59:59.99999. in BigQuery. Parsing it to java.sql.Time - String strTime = fieldValue.getStringValue(); - String[] timeSplt = strTime.split(":"); - if (timeSplt.length != 3) { - throw new SQLException("Can not parse the value " + strTime + " to java.sql.Time"); - } - int hr = Integer.parseInt(timeSplt[0]); - int min = Integer.parseInt(timeSplt[1]); - int sec = 0, nanoSec = 0; - if (timeSplt[2].contains(".")) { - String[] secSplt = timeSplt[2].split("\\."); - sec = Integer.parseInt(secSplt[0]); - nanoSec = Integer.parseInt(secSplt[1]); - } else { - sec = Integer.parseInt(timeSplt[2]); - } - return Time.valueOf(LocalTime.of(hr, min, sec, nanoSec)); + // Time ranges from 00:00:00 to 23:59:59.99999. in BigQuery. Parsing it to java.sql.Time + String strTime = fieldValue.getStringValue(); + String[] timeSplt = strTime.split(":"); + if (timeSplt.length != 3) { + throw new SQLException("Can not parse the value " + strTime + " to java.sql.Time"); + } + int hr = Integer.parseInt(timeSplt[0]); + int min = Integer.parseInt(timeSplt[1]); + int sec, nanoSec = 0; + if (timeSplt[2].contains(".")) { + String[] secSplt = timeSplt[2].split("\\."); + sec = Integer.parseInt(secSplt[0]); + nanoSec = Integer.parseInt(secSplt[1]); } else { - return null; + sec = Integer.parseInt(timeSplt[2]); } + return Time.valueOf(LocalTime.of(hr, min, sec, nanoSec)); } @Override @@ -577,26 +653,26 @@ public Date getDate(String fieldName) throws SQLException { throw new BigQuerySQLException(NULL_CURSOR_MSG); } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); - return (fieldValue == null || fieldValue.getValue() == null) - ? null - : Date.valueOf(fieldValue.getStringValue()); - } else { // Data received from Read API (Arrow) - Row curRow = (Row) cursor; - if (!curRow.hasField(fieldName)) { - throw new SQLException(String.format("Field %s not found", fieldName)); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return null; } - Object dateObj = curRow.get(fieldName); - if (dateObj == null) { + wasNull = false; + return Date.valueOf(fieldValue.getStringValue()); + } else { // Data received from Read API (Arrow) + Object curVal = getCurrentValueForReadApiData(fieldName); + if (curVal == null) { + wasNull = true; return null; - } else { - Integer dateInt = (Integer) dateObj; - long dateInMillis = - TimeUnit.DAYS.toMillis( - Long.valueOf( - dateInt)); // For example int 18993 represents 2022-01-01, converting time to - // milli seconds - return new Date(dateInMillis); } + wasNull = false; + Integer dateInt = (Integer) curVal; + long dateInMillis = + TimeUnit.DAYS.toMillis( + Long.valueOf( + dateInt)); // For example int 18993 represents 2022-01-01, converting time to + // milli seconds + return new Date(dateInMillis); } } @@ -606,13 +682,26 @@ public Date getDate(int columnIndex) throws SQLException { throw new BigQuerySQLException(NULL_CURSOR_MSG); } else if (cursor instanceof FieldValueList) { FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); - return (fieldValue == null || fieldValue.getValue() == null) - ? null - : Date.valueOf(fieldValue.getStringValue()); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return null; + } + wasNull = false; + return Date.valueOf(fieldValue.getStringValue()); } else { // Data received from Read API (Arrow) return getDate(schemaFieldList.get(columnIndex).getName()); } } + + /** + * Returns whether the last column read had a value of SQL NULL. Note that you must first call + * one of the getter methods on a column to try to read its value and then call the method + * wasNull to see if the value read was SQL NULL. * + */ + @Override + public boolean wasNull() { + return wasNull; + } } @Override diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java new file mode 100644 index 000000000000..6431673e34c6 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java @@ -0,0 +1,257 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.ConnectionImpl.EndOfFieldValueList; +import com.google.cloud.bigquery.FieldValue.Attribute; +import com.google.common.collect.ImmutableList; +import com.google.common.io.BaseEncoding; +import java.math.BigDecimal; +import java.sql.Date; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Time; +import java.sql.Timestamp; +import java.time.LocalTime; +import java.util.AbstractList; +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingDeque; +import org.apache.arrow.vector.util.Text; +import org.junit.Test; + +public class BigQueryResultImplTest { + + private static final Schema SCHEMA = + Schema.of( + Field.newBuilder("boolean", StandardSQLTypeName.BOOL) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("long", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("double", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("string", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("bytes", StandardSQLTypeName.BYTES).setMode(Field.Mode.NULLABLE).build(), + Field.newBuilder("timestamp", StandardSQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .build(), + Field.newBuilder("time", StandardSQLTypeName.TIME).setMode(Field.Mode.NULLABLE).build(), + Field.newBuilder("date", StandardSQLTypeName.DATE).setMode(Field.Mode.NULLABLE).build()); + + private static final FieldList FIELD_LIST_SCHEMA = + FieldList.of( + Field.of("boolean", LegacySQLTypeName.BOOLEAN), + Field.of("long", LegacySQLTypeName.INTEGER), + Field.of("double", LegacySQLTypeName.FLOAT), + Field.of("string", LegacySQLTypeName.STRING), + Field.of("bytes", LegacySQLTypeName.BYTES), + Field.of("timestamp", LegacySQLTypeName.TIMESTAMP), + Field.of("time", LegacySQLTypeName.TIME), + Field.of("date", LegacySQLTypeName.DATE)); + + private static final byte[] BYTES = {0xD, 0xE, 0xA, 0xD}; + private static final String BYTES_BASE64 = BaseEncoding.base64().encode(BYTES); + private static final Timestamp EXPECTED_TIMESTAMP = Timestamp.valueOf("2025-01-02 03:04:05.0"); + private static final String TIME = "20:21:22"; + private static final Time EXPECTED_TIME = Time.valueOf(LocalTime.of(20, 21, 22)); + private static final String DATE = "2020-01-21"; + private static final int DATE_INT = 0; + private static final Date EXPECTED_DATE = java.sql.Date.valueOf(DATE); + private static final int BUFFER_SIZE = 10; + + @Test + public void testResultSetFieldValueList() throws InterruptedException, SQLException { + BlockingQueue> buffer = new LinkedBlockingDeque<>(BUFFER_SIZE); + FieldValueList fieldValues = + FieldValueList.of( + ImmutableList.of( + FieldValue.of(Attribute.PRIMITIVE, "false"), + FieldValue.of(Attribute.PRIMITIVE, "1"), + FieldValue.of(Attribute.PRIMITIVE, "1.5"), + FieldValue.of(Attribute.PRIMITIVE, "string_value"), + FieldValue.of(Attribute.PRIMITIVE, BYTES_BASE64), + FieldValue.of( + Attribute.PRIMITIVE, + Long.toString(EXPECTED_TIMESTAMP.getTime() / 1000), + false), // getTime is in milliseconds. + FieldValue.of(Attribute.PRIMITIVE, TIME), + FieldValue.of(Attribute.PRIMITIVE, DATE)), + FIELD_LIST_SCHEMA); + buffer.put(fieldValues); + + FieldValueList nullValues = + FieldValueList.of( + ImmutableList.of( + FieldValue.of(Attribute.PRIMITIVE, null), + FieldValue.of(Attribute.PRIMITIVE, null), + FieldValue.of(Attribute.PRIMITIVE, null), + FieldValue.of(Attribute.PRIMITIVE, null), + FieldValue.of(Attribute.PRIMITIVE, null), + FieldValue.of(Attribute.PRIMITIVE, null), + FieldValue.of(Attribute.PRIMITIVE, null), + FieldValue.of(Attribute.PRIMITIVE, null)), + FIELD_LIST_SCHEMA); + buffer.put(nullValues); + + buffer.put(new EndOfFieldValueList()); // End of buffer marker. + + BigQueryResultImpl> bigQueryResult = + new BigQueryResultImpl<>(SCHEMA, 1, buffer, null); + ResultSet resultSet = bigQueryResult.getResultSet(); + assertThat(resultSet.next()).isTrue(); + assertThat(resultSet.getObject("string")).isEqualTo("string_value"); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getString("string")).isEqualTo("string_value"); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getInt("long")).isEqualTo(1); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getLong("long")).isEqualTo(1); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getDouble("double")).isEqualTo(1.5); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getBigDecimal("double")).isEqualTo(BigDecimal.valueOf(1.5)); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getBoolean("boolean")).isFalse(); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getBytes("bytes")).isEqualTo(BYTES); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getTimestamp("timestamp")).isEqualTo(EXPECTED_TIMESTAMP); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getTime("time").getTime()).isEqualTo(EXPECTED_TIME.getTime()); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getDate("date").getTime()).isEqualTo(EXPECTED_DATE.getTime()); + assertThat(resultSet.wasNull()).isFalse(); + + assertThat(resultSet.next()).isTrue(); + assertThat(resultSet.getObject("string")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getString("string")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getInt("long")).isEqualTo(0); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getLong("long")).isEqualTo(0); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getDouble("double")).isEqualTo(0.0); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getBigDecimal("double")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getBoolean("boolean")).isFalse(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getBytes("bytes")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getTimestamp("timestamp")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getTime("time")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getDate("date")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + + assertThat(resultSet.next()).isFalse(); + } + + @Test + public void testResultSetReadApi() throws InterruptedException, SQLException { + BlockingQueue buffer = new LinkedBlockingDeque<>(BUFFER_SIZE); + + Map rowValues = new HashMap<>(); + rowValues.put("boolean", false); + rowValues.put("long", 1L); + rowValues.put("double", 1.5); + rowValues.put("string", new Text("string_value")); + rowValues.put("bytes", BYTES); + rowValues.put("timestamp", EXPECTED_TIMESTAMP.getTime() * 1000); + rowValues.put("time", EXPECTED_TIME.getTime() * 1000); + rowValues.put("date", DATE_INT); + buffer.put(new BigQueryResultImpl.Row(rowValues)); + + Map nullValues = new HashMap<>(); + nullValues.put("boolean", null); + nullValues.put("long", null); + nullValues.put("double", null); + nullValues.put("string", null); + nullValues.put("bytes", null); + nullValues.put("timestamp", null); + nullValues.put("time", null); + nullValues.put("date", null); + buffer.put(new BigQueryResultImpl.Row(nullValues)); + + buffer.put(new BigQueryResultImpl.Row(null, true)); // End of buffer marker. + + BigQueryResultImpl bigQueryResult = + new BigQueryResultImpl<>(SCHEMA, 1, buffer, null); + ResultSet resultSet = bigQueryResult.getResultSet(); + assertThat(resultSet.next()).isTrue(); + assertThat(resultSet.getObject("string")).isEqualTo(new Text("string_value")); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getString("string")).isEqualTo("string_value"); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getInt("long")).isEqualTo(1); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getLong("long")).isEqualTo(1); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getDouble("double")).isEqualTo(1.5); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getBigDecimal("double")).isEqualTo(BigDecimal.valueOf(1.5)); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getBoolean("boolean")).isFalse(); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getBytes("bytes")).isEqualTo(BYTES); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getTimestamp("timestamp")).isEqualTo(EXPECTED_TIMESTAMP); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getTime("time").getTime()).isEqualTo(EXPECTED_TIME.getTime()); + assertThat(resultSet.wasNull()).isFalse(); + // Do not check date value as Date object do not have timezone but its toString() applies the + // JVM default timezone which causes flakes in non-UTC zones. + assertThat(resultSet.getDate("date")).isNotNull(); + assertThat(resultSet.wasNull()).isFalse(); + + assertThat(resultSet.next()).isTrue(); + assertThat(resultSet.getObject("string")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getString("string")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getInt("long")).isEqualTo(0); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getLong("long")).isEqualTo(0); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getDouble("double")).isEqualTo(0.0); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getBigDecimal("double")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getBoolean("boolean")).isFalse(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getBytes("bytes")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getTimestamp("timestamp")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getTime("time")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getDate("date")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + + assertThat(resultSet.next()).isFalse(); + } +} From c91d2a6c6aae5904eab6fc4fe43dc1c68ca879b7 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 30 Jan 2025 15:52:45 -0500 Subject: [PATCH 3131/3441] chore(main): release 2.47.1-SNAPSHOT (#3657) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 602d04857787..cf8e308002ef 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.47.0 + 2.47.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 3a5c6f3e1df2..7980f17e49ed 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.47.0 + 2.47.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.47.0 + 2.47.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 13651acacb82..10e5fbb27d55 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.47.0 + 2.47.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.47.0 + 2.47.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 5b1d3a0d765a..8b5acdfa0e76 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.47.0 + 2.47.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.47.0 + 2.47.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 600522b26f4a..8b26b3f5adcd 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.47.0 + 2.47.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index d6010fec4a46..8ab96d478e76 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.47.0:2.47.0 \ No newline at end of file +google-cloud-bigquery:2.47.0:2.47.1-SNAPSHOT \ No newline at end of file From 0fc7179d906c2d65ef5d92a644aea9192a4e3cff Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 3 Feb 2025 19:50:16 +0100 Subject: [PATCH 3132/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.51.2 (#3665) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b5f6b66f5b48..f92ed0e2c842 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.51.1 + 2.51.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8b26b3f5adcd..42c8707f4eb9 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.51.1 + 2.51.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 69ea0c9e1644..275dc8a8e79d 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.51.1 + 2.51.2 test From 21910c7c4450ab4a1c85434745a7059220c3ba8d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 4 Feb 2025 15:41:23 +0100 Subject: [PATCH 3133/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.48.1 (#3666) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8b5acdfa0e76..8592d12ce054 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.48.0 + 2.48.1 test From 0b92af6eba4a633bb514089c24b7dd19cf286789 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 10 Feb 2025 16:21:30 +0100 Subject: [PATCH 3134/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250128-2.0.0 (#3667) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8592d12ce054..cf7498430dd2 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20250112-2.0.0 + v2-rev20250128-2.0.0 From 4d9e0ff30269127f47484910e71fa7a21a735492 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 11 Feb 2025 18:29:05 +0100 Subject: [PATCH 3135/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.43.0 (#3669) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 813d09f1ba61..2df44688d83a 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.42.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.43.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index ce53947530f2..b9d88e776946 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.42.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.43.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index ffdac2378200..12e3b21adb32 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.42.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.43.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 6331bd58615d..5b6a943cdea2 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.42.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.43.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index f08c4be3e00b..f78bafd26ecb 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.42.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.43.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 7980f17e49ed..c81b3c8a87ef 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.42.0 + 3.43.0 diff --git a/pom.xml b/pom.xml index cf7498430dd2..dbf083b4cf82 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.42.0 + 3.43.0 From 009b9a2b3940ab66220e68ddd565710b8552cc45 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Tue, 11 Feb 2025 13:41:49 -0500 Subject: [PATCH 3136/3441] docs: update CONTRIBUTING.md for users without branch permissions (#3670) --- CONTRIBUTING.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b65dd279c946..0599033d79b4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -18,9 +18,13 @@ again. ## Code reviews All submissions, including submissions by project members, require review. We -use GitHub pull requests for this purpose. Consult -[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more -information on using pull requests. +use GitHub pull requests for this purpose. Consult the +[GitHub Help: about pull requests](https://help.github.com/articles/about-pull-requests/) +article for more information on using pull requests. If you do not have +permission to create a branch, then fork the repository and submit a pull +request from the forked repository. Consult +[Github Help: about forks](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo#about-forks) +article for more information. ## Community Guidelines From 367dd4da0c1f4c824a2f4e1c4151f018d202e41d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 12 Feb 2025 23:44:44 +0100 Subject: [PATCH 3137/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.48.2 (#3674) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dbf083b4cf82..10600c05fd81 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.48.1 + 2.48.2 test From abbdde0e7797712d98183ea2d5390671f92d5407 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 13 Feb 2025 01:32:07 +0100 Subject: [PATCH 3138/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.11.3 (#3675) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 10600c05fd81..2b73fe2a726b 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.11.2 + 3.11.3 pom import From 759cb0a6706e91043c39b9dfc71fbaf7b7ffbc20 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 20:23:44 -0500 Subject: [PATCH 3139/3441] chore(main): release 2.48.0 (#3663) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 20 ++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 29 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index addb3d7233c3..c91011f887c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## [2.48.0](https://github.com/googleapis/java-bigquery/compare/v2.47.0...v2.48.0) (2025-02-13) + + +### Features + +* Implement wasNull for BigQueryResultSet ([#3650](https://github.com/googleapis/java-bigquery/issues/3650)) ([c7ef94b](https://github.com/googleapis/java-bigquery/commit/c7ef94be115cd572df589385f9be801033d72d6d)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.59.0 ([#3660](https://github.com/googleapis/java-bigquery/issues/3660)) ([3a6228b](https://github.com/googleapis/java-bigquery/commit/3a6228b4adc638759d3b2725c612e97e1a3b9cec)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20250128-2.0.0 ([#3667](https://github.com/googleapis/java-bigquery/issues/3667)) ([0b92af6](https://github.com/googleapis/java-bigquery/commit/0b92af6eba4a633bb514089c24b7dd19cf286789)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.63.0 ([#3661](https://github.com/googleapis/java-bigquery/issues/3661)) ([9bc8c01](https://github.com/googleapis/java-bigquery/commit/9bc8c0115dc16fb950567cd85cc7dfaa9df50d7d)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.43.0 ([#3669](https://github.com/googleapis/java-bigquery/issues/3669)) ([4d9e0ff](https://github.com/googleapis/java-bigquery/commit/4d9e0ff30269127f47484910e71fa7a21a735492)) + + +### Documentation + +* Update CONTRIBUTING.md for users without branch permissions ([#3670](https://github.com/googleapis/java-bigquery/issues/3670)) ([009b9a2](https://github.com/googleapis/java-bigquery/commit/009b9a2b3940ab66220e68ddd565710b8552cc45)) + ## [2.47.0](https://github.com/googleapis/java-bigquery/compare/v2.46.0...v2.47.0) (2025-01-29) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index cf8e308002ef..120d16cedfe3 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.47.1-SNAPSHOT + 2.48.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index c81b3c8a87ef..e1a74b5e99a8 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.47.1-SNAPSHOT + 2.48.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.47.1-SNAPSHOT + 2.48.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 10e5fbb27d55..bec0e10d35dc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.47.1-SNAPSHOT + 2.48.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.47.1-SNAPSHOT + 2.48.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2b73fe2a726b..12b44c3595df 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.47.1-SNAPSHOT + 2.48.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.47.1-SNAPSHOT + 2.48.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 42c8707f4eb9..f274559a2b9b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.47.1-SNAPSHOT + 2.48.0 diff --git a/versions.txt b/versions.txt index 8ab96d478e76..a184e92b9672 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.47.0:2.47.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.48.0:2.48.0 \ No newline at end of file From aa1c36ea156b80babfe503739532f43ce6a72d44 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 22:45:44 -0500 Subject: [PATCH 3140/3441] chore(main): release 2.48.1-SNAPSHOT (#3677) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 120d16cedfe3..b0d222a13d7b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.48.0 + 2.48.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index e1a74b5e99a8..aa8cd84dfffb 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.48.0 + 2.48.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.48.0 + 2.48.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index bec0e10d35dc..2a937587b983 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.48.0 + 2.48.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.48.0 + 2.48.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 12b44c3595df..786bb2675ccc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.48.0 + 2.48.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.48.0 + 2.48.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f274559a2b9b..8714e964aee4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.48.0 + 2.48.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index a184e92b9672..869ae9f8f7a9 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.48.0:2.48.0 \ No newline at end of file +google-cloud-bigquery:2.48.0:2.48.1-SNAPSHOT \ No newline at end of file From d9d574b22082d1755e2919e8556cb5ee24b92bd8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 13 Feb 2025 17:16:27 +0100 Subject: [PATCH 3141/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.48.0 (#3678) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f92ed0e2c842..c03f3dae7d64 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.47.0 + 2.48.0 From 4bfb2a2d45ec7ec36526d51448c531c45eaa128c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Feb 2025 16:40:41 +0100 Subject: [PATCH 3142/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.60.0 (#3679) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 786bb2675ccc..e5284ff4e347 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.59.0 + 2.60.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c03f3dae7d64..c5ee059ea74a 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.59.0 + 2.60.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8714e964aee4..b64606981378 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.59.0 + 2.60.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 275dc8a8e79d..18b34d3ab45c 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.59.0 + 2.60.0 test From 6d9a40d55a6bbcbff7df39723d33f0af2b24f66e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Feb 2025 16:41:34 +0100 Subject: [PATCH 3143/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.60.0 (#3680) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e5284ff4e347..405060a780e7 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.59.0 + 2.60.0 test From 9e4e26116226d17cc42ae030eed284bd6674b74b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Feb 2025 16:42:01 +0100 Subject: [PATCH 3144/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.64.0 (#3681) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 405060a780e7..0186bfff79cd 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.63.0 + 1.64.0 pom import From 98bdc1b4cc5535bf65edaeb9b214d376f36d68c7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 18 Feb 2025 16:01:35 +0100 Subject: [PATCH 3145/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.52.0 (#3684) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c5ee059ea74a..6fe540a724ed 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.51.2 + 2.52.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b64606981378..f7a9d9149092 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.51.2 + 2.52.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 18b34d3ab45c..a0593a19e861 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.51.2 + 2.52.0 test From 53bd7af47783674a3accbadb1172edbcf628ab2b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 18 Feb 2025 16:05:35 +0100 Subject: [PATCH 3146/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.38.0 (#3685) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6fe540a724ed..59224e0544d8 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.37.0 + 1.38.0 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f7a9d9149092..57a1c0b26886 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.37.0 + 1.38.0 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index a0593a19e861..d88d64694a1e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.37.0 + 1.38.0 com.google.oauth-client From d71b2a34a728fb6ee1c88cdc895b87959e230b7a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 18 Feb 2025 16:06:32 +0100 Subject: [PATCH 3147/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.38.0 (#3686) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 59224e0544d8..acb628261506 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.37.0 + 1.38.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 57a1c0b26886..73c3228749e8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.37.0 + 1.38.0 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d88d64694a1e..fd724683f355 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.37.0 + 1.38.0 From e3beb6ffe433db8ad4087d0f27a8f0d23e7c9322 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 21 Feb 2025 16:16:31 +0100 Subject: [PATCH 3148/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250216-2.0.0 (#3688) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0186bfff79cd..7ea81990167d 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20250128-2.0.0 + v2-rev20250216-2.0.0 From 95ee27f6da92b205cf8529dab02b8418a153522e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 21 Feb 2025 16:16:42 +0100 Subject: [PATCH 3149/3441] build(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.14.0 (#3689) --- benchmark/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index b0d222a13d7b..a49d95a56104 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -37,7 +37,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.13.0 + 3.14.0 From cdb61febcb1a64f6ddd3c0e3c29fa7995f1d3fa5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 24 Feb 2025 16:08:15 +0100 Subject: [PATCH 3150/3441] deps: update ossf/scorecard-action action to v2.4.1 (#3690) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index b04c8ba87516..ecdc2758debd 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -37,7 +37,7 @@ jobs: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0 + uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1 with: results_file: results.sarif results_format: sarif From 9c0edea7c00b3ffbe6b6a404e4161f768acb34f2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 24 Feb 2025 16:54:38 +0100 Subject: [PATCH 3151/3441] deps: update actions/upload-artifact action to v4.6.1 (#3691) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index ecdc2758debd..1831a7d089a8 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 + uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 with: name: SARIF file path: results.sarif From f69fbd371f18da6ddc43d4f32f532e684026fe16 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 26 Feb 2025 15:21:11 +0100 Subject: [PATCH 3152/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.44.0 (#3694) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 2df44688d83a..a0be30d589e5 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.43.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.44.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index b9d88e776946..401a49543fb1 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.43.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.44.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 12e3b21adb32..46fd893e67dd 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.43.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.44.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 5b6a943cdea2..6eb22ef1abff 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.43.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.44.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index f78bafd26ecb..39151469c784 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.43.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.44.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index aa8cd84dfffb..3274996be712 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.43.0 + 3.44.0 diff --git a/pom.xml b/pom.xml index 7ea81990167d..3ad4d9f332d9 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.43.0 + 3.44.0 From 082d2b23b620d58b6688254cf1abd55c83ea052c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 26 Feb 2025 18:36:36 +0100 Subject: [PATCH 3153/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.11.4 (#3695) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3ad4d9f332d9..5df9d0064ba5 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.11.3 + 3.11.4 pom import From 4be11f9c9221c805962d861d85a984565554df2d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 26 Feb 2025 19:18:27 +0100 Subject: [PATCH 3154/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.49.0 (#3696) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5df9d0064ba5..f9a0f3fe1444 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.48.2 + 2.49.0 test From c36484bb049cdcba73a0a751b9155b914ec320fe Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 26 Feb 2025 16:32:27 -0500 Subject: [PATCH 3155/3441] chore(main): release 2.48.1 (#3682) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 14 ++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 23 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c91011f887c7..7f7a8e397f8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [2.48.1](https://github.com/googleapis/java-bigquery/compare/v2.48.0...v2.48.1) (2025-02-26) + + +### Dependencies + +* Update actions/upload-artifact action to v4.6.1 ([#3691](https://github.com/googleapis/java-bigquery/issues/3691)) ([9c0edea](https://github.com/googleapis/java-bigquery/commit/9c0edea7c00b3ffbe6b6a404e4161f768acb34f2)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.60.0 ([#3680](https://github.com/googleapis/java-bigquery/issues/3680)) ([6d9a40d](https://github.com/googleapis/java-bigquery/commit/6d9a40d55a6bbcbff7df39723d33f0af2b24f66e)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20250216-2.0.0 ([#3688](https://github.com/googleapis/java-bigquery/issues/3688)) ([e3beb6f](https://github.com/googleapis/java-bigquery/commit/e3beb6ffe433db8ad4087d0f27a8f0d23e7c9322)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.64.0 ([#3681](https://github.com/googleapis/java-bigquery/issues/3681)) ([9e4e261](https://github.com/googleapis/java-bigquery/commit/9e4e26116226d17cc42ae030eed284bd6674b74b)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.44.0 ([#3694](https://github.com/googleapis/java-bigquery/issues/3694)) ([f69fbd3](https://github.com/googleapis/java-bigquery/commit/f69fbd371f18da6ddc43d4f32f532e684026fe16)) +* Update dependency com.google.oauth-client:google-oauth-client-java6 to v1.38.0 ([#3685](https://github.com/googleapis/java-bigquery/issues/3685)) ([53bd7af](https://github.com/googleapis/java-bigquery/commit/53bd7af47783674a3accbadb1172edbcf628ab2b)) +* Update dependency com.google.oauth-client:google-oauth-client-jetty to v1.38.0 ([#3686](https://github.com/googleapis/java-bigquery/issues/3686)) ([d71b2a3](https://github.com/googleapis/java-bigquery/commit/d71b2a34a728fb6ee1c88cdc895b87959e230b7a)) +* Update ossf/scorecard-action action to v2.4.1 ([#3690](https://github.com/googleapis/java-bigquery/issues/3690)) ([cdb61fe](https://github.com/googleapis/java-bigquery/commit/cdb61febcb1a64f6ddd3c0e3c29fa7995f1d3fa5)) + ## [2.48.0](https://github.com/googleapis/java-bigquery/compare/v2.47.0...v2.48.0) (2025-02-13) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a49d95a56104..5e4aa301be59 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.48.1-SNAPSHOT + 2.48.1 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 3274996be712..a8bface75498 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.48.1-SNAPSHOT + 2.48.1 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.48.1-SNAPSHOT + 2.48.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2a937587b983..8b98af7cedde 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.48.1-SNAPSHOT + 2.48.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.48.1-SNAPSHOT + 2.48.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index f9a0f3fe1444..32533bbab1d1 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.48.1-SNAPSHOT + 2.48.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.48.1-SNAPSHOT + 2.48.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 73c3228749e8..42f9d9587371 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.48.1-SNAPSHOT + 2.48.1 diff --git a/versions.txt b/versions.txt index 869ae9f8f7a9..86c16752429c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.48.0:2.48.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.48.1:2.48.1 \ No newline at end of file From 2f93b3b0d689f4046740d95c02f5d285ee775705 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Feb 2025 19:37:32 +0100 Subject: [PATCH 3156/3441] build(deps): update dependency org.apache.maven.plugins:maven-project-info-reports-plugin to v3.9.0 (#3698) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 32533bbab1d1..9e8698bfe9b2 100644 --- a/pom.xml +++ b/pom.xml @@ -180,7 +180,7 @@ org.apache.maven.plugins maven-project-info-reports-plugin - 3.8.0 + 3.9.0 From 1f69002add97aca1ec3da10331eb9016267dc649 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Feb 2025 19:37:55 +0100 Subject: [PATCH 3157/3441] build(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.4 (#3699) --- benchmark/pom.xml | 2 +- samples/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5e4aa301be59..dbad6ca31e03 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -84,7 +84,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.3 + 3.1.4 true diff --git a/samples/pom.xml b/samples/pom.xml index d493a5953d39..c6ac76b1ddce 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -54,7 +54,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.3 + 3.1.4 true diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index fd724683f355..df62bbb042d2 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -109,7 +109,7 @@ org.apache.maven.plugins maven-deploy-plugin - 3.1.3 + 3.1.4 true From 0af6ad6c556fc8831ee70bc224f30c339607eca2 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Feb 2025 19:38:22 +0100 Subject: [PATCH 3158/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.48.1 (#3700) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index acb628261506..fe8a6e9aca2e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.48.0 + 2.48.1 From d15d30dcf5cbaefba3da8f7a6c91fe7090724e60 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 27 Feb 2025 14:36:21 -0500 Subject: [PATCH 3159/3441] chore(main): release 2.48.2-SNAPSHOT (#3697) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index dbad6ca31e03..9664c88f3538 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.48.1 + 2.48.2-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index a8bface75498..ea94894d058b 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.48.1 + 2.48.2-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.48.1 + 2.48.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 8b98af7cedde..becf16cdeb76 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.48.1 + 2.48.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.48.1 + 2.48.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9e8698bfe9b2..ce734adaa104 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.48.1 + 2.48.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.48.1 + 2.48.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 42f9d9587371..cd3b6173a420 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.48.1 + 2.48.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 86c16752429c..f9e66ad7f824 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.48.1:2.48.1 \ No newline at end of file +google-cloud-bigquery:2.48.1:2.48.2-SNAPSHOT \ No newline at end of file From 56f3074f3cfcd79bc385913e37c5868270fdbb27 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 28 Feb 2025 17:24:53 +0100 Subject: [PATCH 3160/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.61.0 (#3702) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index ce734adaa104..18e2af0cd4c8 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.60.0 + 2.61.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fe8a6e9aca2e..0002dca925ab 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.60.0 + 2.61.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index cd3b6173a420..53260dc752be 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.60.0 + 2.61.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index df62bbb042d2..c70e3b76b1ac 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.60.0 + 2.61.0 test From 53b68b13a505aa5d38e56032eaeb8c95bf3e9078 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 28 Feb 2025 17:25:04 +0100 Subject: [PATCH 3161/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.65.0 (#3704) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 18e2af0cd4c8..a08e2ec7ec97 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.64.0 + 1.65.0 pom import From b46a6ccc959f8defb145279ea18ff2e4f1bac58f Mon Sep 17 00:00:00 2001 From: ldetmer <1771267+ldetmer@users.noreply.github.com> Date: Fri, 28 Feb 2025 17:52:47 +0000 Subject: [PATCH 3162/3441] feat: next release from main branch is 2.49.0 (#3706) --- .github/release-please.yml | 4 ++++ .github/sync-repo-settings.yaml | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/.github/release-please.yml b/.github/release-please.yml index 7f8c0fbb77a7..48231f76e4d8 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -27,6 +27,10 @@ branches: handleGHRelease: true releaseType: java-backport branch: 2.40.x + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 2.48.x bumpMinorPreMajor: true handleGHRelease: true releaseType: java-yoshi diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index be7c5c0fe1a9..c3a3263dd798 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -117,6 +117,21 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - cla/google - javadoc + - pattern: 2.48.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (17) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - javadoc + - unmanaged_dependency_check permissionRules: - team: api-bigquery permission: admin From cc84e2b27578d0e608028970c626e2d16305d8be Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 28 Feb 2025 20:32:28 +0100 Subject: [PATCH 3163/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.53.0 (#3707) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0002dca925ab..857c61393723 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.52.0 + 2.53.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 53260dc752be..ffcd462b2384 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.52.0 + 2.53.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index c70e3b76b1ac..6a5539e6f7ab 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.52.0 + 2.53.0 test From 53b07b0e77f6ef57c8518df2b106edace679f79a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 3 Mar 2025 15:17:50 +0100 Subject: [PATCH 3164/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.61.0 (#3703) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a08e2ec7ec97..a9db710d72f1 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.60.0 + 2.61.0 test From 252e3b9e530132a1934a65c868ad12906ca30d7e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 4 Mar 2025 15:50:54 +0100 Subject: [PATCH 3165/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.54.0 (#3709) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 857c61393723..c7dd2fd39886 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.53.0 + 2.54.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ffcd462b2384..ad173ad6fcd6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.53.0 + 2.54.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 6a5539e6f7ab..d969a94ebb9b 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.53.0 + 2.54.0 test From c0c6352b8d02145fe9513e3e23d316e045360d2d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 4 Mar 2025 15:51:13 +0100 Subject: [PATCH 3166/3441] deps: update dependency com.google.oauth-client:google-oauth-client-java6 to v1.39.0 (#3710) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c7dd2fd39886..6f3e56104da6 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -52,7 +52,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.38.0 + 1.39.0 com.google.oauth-client diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ad173ad6fcd6..8f4b7f829a8d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -50,7 +50,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.38.0 + 1.39.0 com.google.oauth-client diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d969a94ebb9b..bdf93cb8d7b8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -66,7 +66,7 @@ com.google.oauth-client google-oauth-client-java6 - 1.38.0 + 1.39.0 com.google.oauth-client From 43b86e91a664dd9d3edaea7b31b46ac635fb22b0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 4 Mar 2025 16:18:31 +0100 Subject: [PATCH 3167/3441] deps: update dependency com.google.oauth-client:google-oauth-client-jetty to v1.39.0 (#3711) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6f3e56104da6..03617ce82a01 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -57,7 +57,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.38.0 + 1.39.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8f4b7f829a8d..133768b85ed8 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -55,7 +55,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.38.0 + 1.39.0 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index bdf93cb8d7b8..2e0a3320d089 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -71,7 +71,7 @@ com.google.oauth-client google-oauth-client-jetty - 1.38.0 + 1.39.0 From e2a3f2c1a1406bf7bc9a035dce3acfde78f0eaa4 Mon Sep 17 00:00:00 2001 From: Liam <44932470+whuffman36@users.noreply.github.com> Date: Fri, 7 Mar 2025 14:26:19 -0800 Subject: [PATCH 3168/3441] feat(bigquery): Implement getArray in BigQueryResultImpl (#3693) * Implement getArray in BigQueryResultImpl * deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250216-2.0.0 (#3688) * build(deps): update dependency org.apache.maven.plugins:maven-compiler-plugin to v3.14.0 (#3689) * deps: update ossf/scorecard-action action to v2.4.1 (#3690) * deps: update actions/upload-artifact action to v4.6.1 (#3691) * Remove public from BigQueryResultSet class def * Remove INTEGER_ARRAY_FIELD_LIST from IT test file * Add ReadApi IT test * Try old IT test values * Convert Time objects to strings for comparison * Fix Formatting --------- Co-authored-by: Mend Renovate --- .../cloud/bigquery/BigQueryResultImpl.java | 124 ++++++++++++++++++ .../bigquery/BigQueryResultImplTest.java | 47 ++++++- .../cloud/bigquery/it/ITBigQueryTest.java | 82 ++++++++++++ 3 files changed, 249 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java index e1e129eaea32..b705e77c118d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java @@ -16,14 +16,19 @@ package com.google.cloud.bigquery; +import com.google.cloud.bigquery.FieldValue.Attribute; import java.math.BigDecimal; import java.sql.Date; import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.SQLFeatureNotSupportedException; import java.sql.Time; import java.sql.Timestamp; import java.time.LocalDateTime; import java.time.LocalTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.Map; import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; @@ -114,6 +119,77 @@ private class BigQueryResultSet extends AbstractJdbcResultSet { // curTup.isLast(). Ref: https://github.com/googleapis/java-bigquery/issues/2033 private boolean wasNull = false; + private class BigQueryArrayResult implements java.sql.Array { + List array; + + public BigQueryArrayResult(Object array) { + if (array instanceof Object[]) { + this.array = new ArrayList<>(Arrays.asList((Object[]) array)); + } else if (array instanceof FieldValueList) { + this.array = new ArrayList<>((FieldValueList) array); + } else { + this.array = (List) array; + } + } + + @Override + public String getBaseTypeName() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public int getBaseType() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Object getArray() throws SQLException { + return array; + } + + @Override + public Object getArray(java.util.Map> map) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Object getArray(long index, int count) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public Object getArray(long index, int count, java.util.Map> map) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public ResultSet getResultSet() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public ResultSet getResultSet(java.util.Map> map) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public ResultSet getResultSet(long index, int count) throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public ResultSet getResultSet(long index, int count, java.util.Map> map) + throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + + @Override + public void free() throws SQLException { + throw new SQLFeatureNotSupportedException(); + } + } + @Override /*Advances the result set to the next row, returning false if no such row exists. Potentially blocking operation*/ public boolean next() throws SQLException { @@ -160,6 +236,54 @@ private Object getCurrentValueForReadApiData(String fieldName) throws SQLExcepti return curRow.get(fieldName); } + @Override + public java.sql.Array getArray(String fieldName) throws SQLException { + if (fieldName == null) { + throw new SQLException("fieldName can't be null"); + } + if (cursor == null) { + throw new BigQuerySQLException(NULL_CURSOR_MSG); + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(fieldName); + if ((fieldValue == null || fieldValue.getValue() == null)) { + wasNull = true; + return null; + } + wasNull = false; + if (fieldValue.getAttribute().equals(Attribute.REPEATED)) { + return new BigQueryArrayResult(fieldValue.getValue()); + } else { + wasNull = true; + return null; + } + } else { // Data received from Read API (Arrow) + Object currentVal = getCurrentValueForReadApiData(fieldName); + if (currentVal == null) { + wasNull = true; + return null; + } + wasNull = false; + return new BigQueryArrayResult(currentVal); + } + } + + @Override + public java.sql.Array getArray(int columnIndex) throws SQLException { + if (cursor == null) { + return null; + } else if (cursor instanceof FieldValueList) { + FieldValue fieldValue = ((FieldValueList) cursor).get(columnIndex); + if (fieldValue == null || fieldValue.getValue() == null) { + wasNull = true; + return null; + } + wasNull = false; + return new BigQueryArrayResult(fieldValue.getValue()); + } else { + return getArray(schemaFieldList.get(columnIndex).getName()); + } + } + @Override public Object getObject(String fieldName) throws SQLException { if (fieldName == null) { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java index 6431673e34c6..ca150eb1ba5b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java @@ -30,6 +30,8 @@ import java.sql.Timestamp; import java.time.LocalTime; import java.util.AbstractList; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.concurrent.BlockingQueue; @@ -58,7 +60,13 @@ public class BigQueryResultImplTest { .setMode(Field.Mode.NULLABLE) .build(), Field.newBuilder("time", StandardSQLTypeName.TIME).setMode(Field.Mode.NULLABLE).build(), - Field.newBuilder("date", StandardSQLTypeName.DATE).setMode(Field.Mode.NULLABLE).build()); + Field.newBuilder("date", StandardSQLTypeName.DATE).setMode(Field.Mode.NULLABLE).build(), + Field.newBuilder("intArray", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REPEATED) + .build(), + Field.newBuilder("stringArray", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REPEATED) + .build()); private static final FieldList FIELD_LIST_SCHEMA = FieldList.of( @@ -69,7 +77,9 @@ public class BigQueryResultImplTest { Field.of("bytes", LegacySQLTypeName.BYTES), Field.of("timestamp", LegacySQLTypeName.TIMESTAMP), Field.of("time", LegacySQLTypeName.TIME), - Field.of("date", LegacySQLTypeName.DATE)); + Field.of("date", LegacySQLTypeName.DATE), + Field.of("intArray", LegacySQLTypeName.INTEGER), + Field.of("stringArray", LegacySQLTypeName.STRING)); private static final byte[] BYTES = {0xD, 0xE, 0xA, 0xD}; private static final String BYTES_BASE64 = BaseEncoding.base64().encode(BYTES); @@ -79,6 +89,11 @@ public class BigQueryResultImplTest { private static final String DATE = "2020-01-21"; private static final int DATE_INT = 0; private static final Date EXPECTED_DATE = java.sql.Date.valueOf(DATE); + private static final ArrayList EXPECTED_INT_ARRAY = + new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4)); + private static final String[] STRING_ARRAY = {"str1", "str2", "str3"}; + private static final ArrayList EXPECTED_STRING_ARRAY = + new ArrayList<>(Arrays.asList(STRING_ARRAY)); private static final int BUFFER_SIZE = 10; @Test @@ -97,7 +112,9 @@ public void testResultSetFieldValueList() throws InterruptedException, SQLExcept Long.toString(EXPECTED_TIMESTAMP.getTime() / 1000), false), // getTime is in milliseconds. FieldValue.of(Attribute.PRIMITIVE, TIME), - FieldValue.of(Attribute.PRIMITIVE, DATE)), + FieldValue.of(Attribute.PRIMITIVE, DATE), + FieldValue.of(Attribute.REPEATED, EXPECTED_INT_ARRAY), + FieldValue.of(Attribute.REPEATED, STRING_ARRAY)), FIELD_LIST_SCHEMA); buffer.put(fieldValues); @@ -111,7 +128,9 @@ public void testResultSetFieldValueList() throws InterruptedException, SQLExcept FieldValue.of(Attribute.PRIMITIVE, null), FieldValue.of(Attribute.PRIMITIVE, null), FieldValue.of(Attribute.PRIMITIVE, null), - FieldValue.of(Attribute.PRIMITIVE, null)), + FieldValue.of(Attribute.PRIMITIVE, null), + FieldValue.of(Attribute.REPEATED, null), + FieldValue.of(Attribute.REPEATED, null)), FIELD_LIST_SCHEMA); buffer.put(nullValues); @@ -143,6 +162,10 @@ public void testResultSetFieldValueList() throws InterruptedException, SQLExcept assertThat(resultSet.wasNull()).isFalse(); assertThat(resultSet.getDate("date").getTime()).isEqualTo(EXPECTED_DATE.getTime()); assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getArray("intArray").getArray()).isEqualTo(EXPECTED_INT_ARRAY); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getArray("stringArray").getArray()).isEqualTo(EXPECTED_STRING_ARRAY); + assertThat(resultSet.wasNull()).isFalse(); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getObject("string")).isNull(); @@ -167,6 +190,10 @@ public void testResultSetFieldValueList() throws InterruptedException, SQLExcept assertThat(resultSet.wasNull()).isTrue(); assertThat(resultSet.getDate("date")).isNull(); assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getArray("intArray")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getArray("stringArray")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); assertThat(resultSet.next()).isFalse(); } @@ -184,6 +211,8 @@ public void testResultSetReadApi() throws InterruptedException, SQLException { rowValues.put("timestamp", EXPECTED_TIMESTAMP.getTime() * 1000); rowValues.put("time", EXPECTED_TIME.getTime() * 1000); rowValues.put("date", DATE_INT); + rowValues.put("intArray", EXPECTED_INT_ARRAY); + rowValues.put("stringArray", STRING_ARRAY); buffer.put(new BigQueryResultImpl.Row(rowValues)); Map nullValues = new HashMap<>(); @@ -195,6 +224,8 @@ public void testResultSetReadApi() throws InterruptedException, SQLException { nullValues.put("timestamp", null); nullValues.put("time", null); nullValues.put("date", null); + nullValues.put("intArray", null); + nullValues.put("stringArray", null); buffer.put(new BigQueryResultImpl.Row(nullValues)); buffer.put(new BigQueryResultImpl.Row(null, true)); // End of buffer marker. @@ -227,6 +258,10 @@ public void testResultSetReadApi() throws InterruptedException, SQLException { // JVM default timezone which causes flakes in non-UTC zones. assertThat(resultSet.getDate("date")).isNotNull(); assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getArray("intArray")).isNotNull(); + assertThat(resultSet.wasNull()).isFalse(); + assertThat(resultSet.getArray("stringArray")).isNotNull(); + assertThat(resultSet.wasNull()).isFalse(); assertThat(resultSet.next()).isTrue(); assertThat(resultSet.getObject("string")).isNull(); @@ -251,6 +286,10 @@ public void testResultSetReadApi() throws InterruptedException, SQLException { assertThat(resultSet.wasNull()).isTrue(); assertThat(resultSet.getDate("date")).isNull(); assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getArray("intArray")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); + assertThat(resultSet.getArray("stringArray")).isNull(); + assertThat(resultSet.wasNull()).isTrue(); assertThat(resultSet.next()).isFalse(); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 0178ac10ad1d..a7bf5fa3e08b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -3925,6 +3925,75 @@ public void testExecuteSelectSinglePageTableRow() throws SQLException { (com.google.cloud.bigquery.FieldValueList) rs.getObject("IntegerArrayField"); assertEquals(4, integerArrayFieldValue.size()); // Array has 4 elements assertEquals(3, (integerArrayFieldValue.get(2).getNumericValue()).intValue()); + List integerArrayFieldValueList = + (List) rs.getArray("IntegerArrayField").getArray(); + assertEquals(4, integerArrayFieldValueList.size()); + assertEquals(3, integerArrayFieldValueList.get(2).getNumericValue().intValue()); + + assertFalse(rs.next()); // no 3rd row in the table + } + + @Test + public void testExecuteSelectSinglePageTableRowWithReadAPI() throws SQLException { + String query = + "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, TimestampField, FloatField, " + + "NumericField, TimeField, DateField, DateTimeField , GeographyField, RecordField.BytesField, RecordField.BooleanField, IntegerArrayField from " + + TABLE_ID_FASTQUERY_BQ_RESULTSET.getTable() + + " order by TimestampField"; + ConnectionSettings connectionSettings = + ConnectionSettings.newBuilder() + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseReadAPI(true) + .setMinResultSize(1) + .setTotalToPageRowCountRatio(1) + .build(); + Connection connection = bigquery.createConnection(connectionSettings); + BigQueryResult bigQueryResult = connection.executeSelect(query); + assertTrue(bigQueryResult.getBigQueryResultStats().getQueryStatistics().getUseReadApi()); + ResultSet rs = bigQueryResult.getResultSet(); + Schema sc = bigQueryResult.getSchema(); + + assertEquals(BQ_RESULTSET_EXPECTED_SCHEMA, sc); // match the schema + assertEquals(2, bigQueryResult.getTotalRows()); // Expecting 2 rows + + assertTrue(rs.next()); // first row + // checking for the null or 0 column values + assertNull(rs.getString("StringField")); + assertTrue(rs.getDouble("BigNumericField") == 0.0d); + assertFalse(rs.getBoolean("BooleanField")); + assertNull(rs.getBytes("BytesField")); + assertEquals(rs.getInt("IntegerField"), 0); + assertNull(rs.getTimestamp("TimestampField")); + assertNull(rs.getDate("DateField")); + assertTrue(rs.getDouble("FloatField") == 0.0d); + assertTrue(rs.getDouble("NumericField") == 0.0d); + assertNull(rs.getTime("TimeField")); + assertNull(rs.getString("DateTimeField")); + assertNull(rs.getString("GeographyField")); + assertNull(rs.getBytes("BytesField_1")); + assertFalse(rs.getBoolean("BooleanField_1")); + + assertTrue(rs.next()); // second row + // second row is non null, comparing the values + assertEquals("StringValue1", rs.getString("StringField")); + assertTrue(rs.getDouble("BigNumericField") == 0.3333333333333333d); + assertFalse(rs.getBoolean("BooleanField")); + assertNotNull(rs.getBytes("BytesField")); + assertEquals(1, rs.getInt("IntegerField")); + assertEquals(1534680695123L, rs.getTimestamp("TimestampField").getTime()); + assertEquals(java.sql.Date.valueOf("2018-08-19"), rs.getDate("DateField")); + assertTrue(rs.getDouble("FloatField") == 10.1d); + assertTrue(rs.getDouble("NumericField") == 100.0d); + assertEquals( + Time.valueOf(LocalTime.of(12, 11, 35, 123456)).toString(), + rs.getTime("TimeField").toString()); + assertEquals("2018-08-19T12:11:35.123456", rs.getString("DateTimeField")); + assertEquals("POINT(-122.35022 47.649154)", rs.getString("GeographyField")); + assertNotNull(rs.getBytes("BytesField_1")); + assertTrue(rs.getBoolean("BooleanField_1")); + List integerArray = (List) rs.getArray("IntegerArrayField").getArray(); + assertEquals(4, integerArray.size()); + assertEquals(3, integerArray.get(2).intValue()); assertFalse(rs.next()); // no 3rd row in the table } @@ -4278,6 +4347,19 @@ public void testExecuteSelectSinglePageTableRowColInd() throws SQLException { (integerArrayFieldValue.get(2).getNumericValue()).intValue(), (integerArrayFieldValueColInd.get(2).getNumericValue()).intValue()); } + + List integerArrayFieldValueList = + (List) rs.getArray("IntegerArrayField").getArray(); + List integerArrayFieldValueListColInd = + (List) rs.getArray(14).getArray(); + assertEquals( + integerArrayFieldValueList.size(), + integerArrayFieldValueListColInd.size()); // Array has 4 elements + if (integerArrayFieldValueList.size() == 4) { // as we are picking the third index + assertEquals( + (integerArrayFieldValueList.get(2).getNumericValue()).intValue(), + (integerArrayFieldValueListColInd.get(2).getNumericValue()).intValue()); + } } } From 251def5659d2648dff0833ba967a65435e11b643 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 11 Mar 2025 19:36:55 +0100 Subject: [PATCH 3169/3441] deps: update dependency node to v22 (#3713) --- .github/workflows/renovate_config_check.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renovate_config_check.yaml b/.github/workflows/renovate_config_check.yaml index 36da117bc7b0..47b9e87c98bb 100644 --- a/.github/workflows/renovate_config_check.yaml +++ b/.github/workflows/renovate_config_check.yaml @@ -16,7 +16,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: '20' + node-version: '22' - name: Install Renovate and Config Validator run: | From 9eb555ff61bef42a3bdfe197da8423b7bf14f493 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Wed, 12 Mar 2025 15:23:07 -0400 Subject: [PATCH 3170/3441] docs: update error handling comment to be more precise in samples (#3712) * docs: update error handling comment to be more precise in samples * style * style * update comment * ignoredUnusedDeclaredDependencies * revert wrong commit/PR push ignoredUnusedDeclaredDependencies --- .../src/main/java/com/example/bigquery/SimpleApp.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java b/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java index 49975a9cc0dd..7b72bb0f9409 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java @@ -67,10 +67,12 @@ public static void simpleApp(String projectId) { // Check for errors if (queryJob == null) { throw new RuntimeException("Job no longer exists"); - } else if (queryJob.getStatus().getError() != null) { - // You can also look at queryJob.getStatus().getExecutionErrors() for all - // errors, not just the latest one. - throw new RuntimeException(queryJob.getStatus().getError().toString()); + } else if (queryJob.getStatus().getExecutionErrors() != null + && queryJob.getStatus().getExecutionErrors().size() > 0) { + // TODO(developer): Handle errors here. An error here do not necessarily mean that the job + // has completed or was unsuccessful. + // For more details: https://cloud.google.com/bigquery/troubleshooting-errors + throw new RuntimeException("An unhandled error has occurred"); } // [END bigquery_simple_app_query] From 11b580949b910b38732c1c8d64704c54c260214e Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Wed, 12 Mar 2025 15:47:00 -0400 Subject: [PATCH 3171/3441] =?UTF-8?q?deps:=20exclude=20io.netty:netty-comm?= =?UTF-8?q?on=20from=20org.apache.arrow:arrow-memor=E2=80=A6=20(#3715)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * deps: exclude io.netty:netty-common from org.apache.arrow:arrow-memory-netty * use dep version override instead of exclusion * use dep version override instead of exclusion * ignoredUnusedDeclaredDependencies --- google-cloud-bigquery/pom.xml | 31 +++++++++++++++++++++++++++++++ pom.xml | 2 ++ 2 files changed, 33 insertions(+) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index becf16cdeb76..9e77999e8443 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -15,6 +15,7 @@ google-cloud-bigquery + 4.1.118.Final @@ -116,6 +117,36 @@ org.apache.arrow arrow-memory-netty + + + + io.netty + netty-common + + + io.netty + netty-buffer + + + runtime + + + + io.netty + netty-common + ${netty.version} + runtime + + + io.netty + netty-buffer + ${netty.version} runtime diff --git a/pom.xml b/pom.xml index a9db710d72f1..6acbe662278d 100644 --- a/pom.xml +++ b/pom.xml @@ -168,6 +168,8 @@ maven-dependency-plugin + io.netty:netty-buffer + io.netty:netty-common org.apache.arrow:arrow-memory-netty From 83245b961950ca9a993694082e533834ee364417 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Wed, 12 Mar 2025 18:18:17 -0400 Subject: [PATCH 3172/3441] fix: retry ExceptionHandler not retrying on IOException (#3668) * fix: retry ExceptionHandler not retrying on IOException due to exception translation * fix: retry ExceptionHandler not retrying on IOException due to exception translation * fix: retry ExceptionHandler not retrying on IOException due to exception translation * fix: retry ExceptionHandler not retrying on IOException due to exception translation * fix: retry ExceptionHandler not retrying on IOException due to exception translation * cast to HttpBigQueryRpc * cast to HttpBigQueryRpc * fix BigQueryRpc mocks in unit tests * fix clirr check and format * fix clirr * fix clirr * refactor HttpBigQueryRpc.write * refactor HttpBigQueryRpc.write * refactor ConnectionImpl HttpBigQueryRpc call * refactor ConnectionImpl HttpBigQueryRpc call * refactor create table * refactor create table * refactor BigQueryImpl * refactor ConnectionImpl * add missing unit test for BigQueryImpl deleteJob * add tests to validate retry on BIGQUERY_EXCEPTION_HANDLER * handle exception wrapping/unwrapping with new methods * update runWithRetries to use BigQuery ruWithRetries to correctly handle thrown IOExceptions * fix unit test * add unit tests for retry in TableDataWriteChannel * remove unnecessary null check * fix unit test where null is returned in mocks causing errors --- .../clirr-ignored-differences.xml | 7 + .../cloud/bigquery/BigQueryBaseService.java | 1 + .../google/cloud/bigquery/BigQueryImpl.java | 461 ++++--- .../cloud/bigquery/BigQueryOptions.java | 5 +- .../cloud/bigquery/BigQueryRetryHelper.java | 6 + .../google/cloud/bigquery/ConnectionImpl.java | 74 +- .../cloud/bigquery/TableDataWriteChannel.java | 31 +- .../bigquery/spi/v2/HttpBigQueryRpc.java | 1079 ++++++++++------- .../cloud/bigquery/BigQueryImplTest.java | 1027 ++++++++++------ .../cloud/bigquery/ConnectionImplTest.java | 89 +- .../bigquery/TableDataWriteChannelTest.java | 149 ++- 11 files changed, 1791 insertions(+), 1138 deletions(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 9ef680c6677c..37e349413f59 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -14,6 +14,13 @@ com.google.api.services.bigquery.model.GetQueryResultsResponse getQueryResultsWithRowLimit(java.lang.String, java.lang.String, java.lang.String, java.lang.Integer) getQueryResultsWithRowLimit is just used by ConnectionImpl at the moment so it should be fine to update the signature instead of writing an overloaded method + + 7006 + com/google/cloud/bigquery/BigQueryOptions* + *getBigQueryRpcV2(*) + com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc + getBigQueryRpcV2 is protected and is only used within the BigQuery package + 7013 com/google/cloud/bigquery/ExternalTableDefinition* diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java index aefb4329b6aa..976015873517 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java @@ -31,6 +31,7 @@ protected BigQueryBaseService(ServiceOptions options) { .abortOn(RuntimeException.class) .retryOn(java.net.ConnectException.class) // retry on Connection Exception .retryOn(java.net.UnknownHostException.class) // retry on UnknownHostException + .retryOn(java.net.SocketException.class) // retry on SocketException .addInterceptors(EXCEPTION_HANDLER_INTERCEPTOR) .build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 23cb001ac265..3db8c88f7738 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -15,7 +15,6 @@ */ package com.google.cloud.bigquery; -import static com.google.cloud.RetryHelper.runWithRetries; import static com.google.cloud.bigquery.PolicyHelper.convertFromApiPolicy; import static com.google.cloud.bigquery.PolicyHelper.convertToApiPolicy; import static com.google.common.base.Preconditions.checkArgument; @@ -37,13 +36,13 @@ import com.google.cloud.PageImpl; import com.google.cloud.PageImpl.NextPageFetcher; import com.google.cloud.Policy; -import com.google.cloud.RetryHelper; -import com.google.cloud.RetryHelper.RetryHelperException; import com.google.cloud.RetryOption; import com.google.cloud.Tuple; +import com.google.cloud.bigquery.BigQueryRetryHelper.BigQueryRetryHelperException; import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; import com.google.cloud.bigquery.QueryJobConfiguration.JobCreationMode; import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; import com.google.common.base.Strings; @@ -53,6 +52,7 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -242,7 +242,11 @@ public Page getNextPage() { } } - private final BigQueryRpc bigQueryRpc; + private final HttpBigQueryRpc bigQueryRpc; + + private static final BigQueryRetryConfig EMPTY_RETRY_CONFIG = + BigQueryRetryConfig.newBuilder().build(); + private static final BigQueryRetryConfig DEFAULT_RETRY_CONFIG = BigQueryRetryConfig.newBuilder() .retryOnMessage(BigQueryErrorMessages.RATE_LIMIT_EXCEEDED_MSG) @@ -268,17 +272,18 @@ public Dataset create(DatasetInfo datasetInfo, DatasetOption... options) { try { return Dataset.fromPb( this, - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Dataset call() { - return bigQueryRpc.create(datasetPb, optionsMap); + public com.google.api.services.bigquery.model.Dataset call() throws IOException { + return bigQueryRpc.createSkipExceptionTranslation(datasetPb, optionsMap); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock())); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG)); + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -297,17 +302,18 @@ public Table create(TableInfo tableInfo, TableOption... options) { try { return Table.fromPb( this, - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Table call() { - return bigQueryRpc.create(tablePb, optionsMap); + public com.google.api.services.bigquery.model.Table call() throws IOException { + return bigQueryRpc.createSkipExceptionTranslation(tablePb, optionsMap); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock())); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG)); + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -335,17 +341,18 @@ public Routine create(RoutineInfo routineInfo, RoutineOption... options) { try { return Routine.fromPb( this, - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Routine call() { - return bigQueryRpc.create(routinePb, optionsMap); + public com.google.api.services.bigquery.model.Routine call() throws IOException { + return bigQueryRpc.createSkipExceptionTranslation(routinePb, optionsMap); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock())); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG)); + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -397,7 +404,7 @@ Job create(JobInfo jobInfo, Supplier idProvider, JobOption... options) { BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Job call() { + public com.google.api.services.bigquery.model.Job call() throws IOException { if (idRandom) { // re-generate a new random job with the same jobInfo when jobId is not // provided by the user @@ -406,11 +413,11 @@ public com.google.api.services.bigquery.model.Job call() { com.google.api.services.bigquery.model.Job newJobPb = recreatedJobInfo.setProjectId(getOptions().getProjectId()).toPb(); finalJobId[0] = recreatedJobInfo.getJobId(); - return bigQueryRpc.create(newJobPb, optionsMap); + return bigQueryRpc.createSkipExceptionTranslation(newJobPb, optionsMap); } else { com.google.api.services.bigquery.model.Job jobPb = jobInfo.setProjectId(getOptions().getProjectId()).toPb(); - return bigQueryRpc.create(jobPb, optionsMap); + return bigQueryRpc.createSkipExceptionTranslation(jobPb, optionsMap); } } }, @@ -423,7 +430,7 @@ public com.google.api.services.bigquery.model.Job call() { getBigQueryRetryConfig(optionsMap) != null ? getBigQueryRetryConfig(optionsMap) : DEFAULT_RETRY_CONFIG)); - } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } catch (BigQueryException e) { @@ -490,22 +497,26 @@ public Dataset getDataset(final DatasetId datasetId, DatasetOption... options) { final Map optionsMap = optionMap(options); try { com.google.api.services.bigquery.model.Dataset answer = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Dataset call() { - return bigQueryRpc.getDataset( + public com.google.api.services.bigquery.model.Dataset call() throws IOException { + return bigQueryRpc.getDatasetSkipExceptionTranslation( completeDatasetId.getProject(), completeDatasetId.getDataset(), optionsMap); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - if (getOptions().getThrowNotFound() && answer == null) { - throw new BigQueryException(HTTP_NOT_FOUND, "Dataset not found"); + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + return Dataset.fromPb(this, answer); + } catch (BigQueryRetryHelperException e) { + if (isRetryErrorCodeHttpNotFound(e)) { + if (getOptions().getThrowNotFound()) { + throw new BigQueryException(HTTP_NOT_FOUND, "Dataset not found"); + } + return null; } - return answer == null ? null : Dataset.fromPb(this, answer); - } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -526,18 +537,21 @@ private static Page listDatasets( final Map optionsMap) { try { Tuple> result = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable< Tuple>>() { @Override public Tuple> - call() { - return serviceOptions.getBigQueryRpcV2().listDatasets(projectId, optionsMap); + call() throws IOException { + return serviceOptions + .getBigQueryRpcV2() + .listDatasetsSkipExceptionTranslation(projectId, optionsMap); } }, serviceOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - serviceOptions.getClock()); + serviceOptions.getClock(), + EMPTY_RETRY_CONFIG); String cursor = result.x(); return new PageImpl<>( new DatasetPageFetcher(projectId, serviceOptions, cursor, optionsMap), @@ -550,7 +564,7 @@ public Dataset apply(com.google.api.services.bigquery.model.Dataset dataset) { return Dataset.fromPb(serviceOptions.getService(), dataset); } })); - } catch (RetryHelper.RetryHelperException e) { + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -565,18 +579,22 @@ public boolean delete(DatasetId datasetId, DatasetDeleteOption... options) { final DatasetId completeDatasetId = datasetId.setProjectId(getOptions().getProjectId()); final Map optionsMap = optionMap(options); try { - return runWithRetries( + return BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public Boolean call() { - return bigQueryRpc.deleteDataset( + public Boolean call() throws IOException { + return bigQueryRpc.deleteDatasetSkipExceptionTranslation( completeDatasetId.getProject(), completeDatasetId.getDataset(), optionsMap); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + } catch (BigQueryRetryHelperException e) { + if (isRetryErrorCodeHttpNotFound(e)) { + return false; + } throw BigQueryException.translateAndThrow(e); } } @@ -594,11 +612,11 @@ public boolean delete(TableId tableId) { ? getOptions().getProjectId() : tableId.getProject()); try { - return runWithRetries( + return BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public Boolean call() { - return bigQueryRpc.deleteTable( + public Boolean call() throws IOException { + return bigQueryRpc.deleteTableSkipExceptionTranslation( completeTableId.getProject(), completeTableId.getDataset(), completeTableId.getTable()); @@ -606,8 +624,12 @@ public Boolean call() { }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + } catch (BigQueryRetryHelperException e) { + if (isRetryErrorCodeHttpNotFound(e)) { + return false; + } throw BigQueryException.translateAndThrow(e); } } @@ -620,11 +642,11 @@ public boolean delete(ModelId modelId) { ? getOptions().getProjectId() : modelId.getProject()); try { - return runWithRetries( + return BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public Boolean call() { - return bigQueryRpc.deleteModel( + public Boolean call() throws IOException { + return bigQueryRpc.deleteModelSkipExceptionTranslation( completeModelId.getProject(), completeModelId.getDataset(), completeModelId.getModel()); @@ -632,8 +654,12 @@ public Boolean call() { }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + } catch (BigQueryRetryHelperException e) { + if (isRetryErrorCodeHttpNotFound(e)) { + return false; + } throw BigQueryException.translateAndThrow(e); } } @@ -646,11 +672,11 @@ public boolean delete(RoutineId routineId) { ? getOptions().getProjectId() : routineId.getProject()); try { - return runWithRetries( + return BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public Boolean call() { - return bigQueryRpc.deleteRoutine( + public Boolean call() throws IOException { + return bigQueryRpc.deleteRoutineSkipExceptionTranslation( completeRoutineId.getProject(), completeRoutineId.getDataset(), completeRoutineId.getRoutine()); @@ -658,8 +684,12 @@ public Boolean call() { }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + } catch (BigQueryRetryHelperException e) { + if (isRetryErrorCodeHttpNotFound(e)) { + return false; + } throw BigQueryException.translateAndThrow(e); } } @@ -672,18 +702,19 @@ public boolean delete(JobId jobId) { ? getOptions().getProjectId() : jobId.getProject()); try { - return runWithRetries( + return BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public Boolean call() { - return bigQueryRpc.deleteJob( + public Boolean call() throws IOException { + return bigQueryRpc.deleteJobSkipExceptionTranslation( completeJobId.getProject(), completeJobId.getJob(), completeJobId.getLocation()); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -696,17 +727,18 @@ public Dataset update(DatasetInfo datasetInfo, DatasetOption... options) { try { return Dataset.fromPb( this, - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Dataset call() { - return bigQueryRpc.patch(datasetPb, optionsMap); + public com.google.api.services.bigquery.model.Dataset call() throws IOException { + return bigQueryRpc.patchSkipExceptionTranslation(datasetPb, optionsMap); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock())); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG)); + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -725,17 +757,18 @@ public Table update(TableInfo tableInfo, TableOption... options) { try { return Table.fromPb( this, - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Table call() { - return bigQueryRpc.patch(tablePb, optionsMap); + public com.google.api.services.bigquery.model.Table call() throws IOException { + return bigQueryRpc.patchSkipExceptionTranslation(tablePb, optionsMap); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock())); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG)); + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -753,17 +786,18 @@ public Model update(ModelInfo modelInfo, ModelOption... options) { try { return Model.fromPb( this, - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Model call() { - return bigQueryRpc.patch(modelPb, optionsMap); + public com.google.api.services.bigquery.model.Model call() throws IOException { + return bigQueryRpc.patchSkipExceptionTranslation(modelPb, optionsMap); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock())); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG)); + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -781,17 +815,18 @@ public Routine update(RoutineInfo routineInfo, RoutineOption... options) { try { return Routine.fromPb( this, - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Routine call() { - return bigQueryRpc.update(routinePb, optionsMap); + public com.google.api.services.bigquery.model.Routine call() throws IOException { + return bigQueryRpc.updateSkipExceptionTranslation(routinePb, optionsMap); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock())); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG)); + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -813,11 +848,11 @@ public Table getTable(TableId tableId, TableOption... options) { final Map optionsMap = optionMap(options); try { com.google.api.services.bigquery.model.Table answer = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Table call() { - return bigQueryRpc.getTable( + public com.google.api.services.bigquery.model.Table call() throws IOException { + return bigQueryRpc.getTableSkipExceptionTranslation( completeTableId.getProject(), completeTableId.getDataset(), completeTableId.getTable(), @@ -826,12 +861,16 @@ public com.google.api.services.bigquery.model.Table call() { }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - if (getOptions().getThrowNotFound() && answer == null) { - throw new BigQueryException(HTTP_NOT_FOUND, "Table not found"); + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + return Table.fromPb(this, answer); + } catch (BigQueryRetryHelperException e) { + if (isRetryErrorCodeHttpNotFound(e)) { + if (getOptions().getThrowNotFound()) { + throw new BigQueryException(HTTP_NOT_FOUND, "Table not found"); + } + return null; } - return answer == null ? null : Table.fromPb(this, answer); - } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -851,11 +890,11 @@ public Model getModel(ModelId modelId, ModelOption... options) { final Map optionsMap = optionMap(options); try { com.google.api.services.bigquery.model.Model answer = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Model call() { - return bigQueryRpc.getModel( + public com.google.api.services.bigquery.model.Model call() throws IOException { + return bigQueryRpc.getModelSkipExceptionTranslation( completeModelId.getProject(), completeModelId.getDataset(), completeModelId.getModel(), @@ -864,12 +903,16 @@ public com.google.api.services.bigquery.model.Model call() { }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - if (getOptions().getThrowNotFound() && answer == null) { - throw new BigQueryException(HTTP_NOT_FOUND, "Model not found"); + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + return Model.fromPb(this, answer); + } catch (BigQueryRetryHelperException e) { + if (isRetryErrorCodeHttpNotFound(e)) { + if (getOptions().getThrowNotFound()) { + throw new BigQueryException(HTTP_NOT_FOUND, "Model not found"); + } + return null; } - return answer == null ? null : Model.fromPb(this, answer); - } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -889,11 +932,11 @@ public Routine getRoutine(RoutineId routineId, RoutineOption... options) { final Map optionsMap = optionMap(options); try { com.google.api.services.bigquery.model.Routine answer = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Routine call() { - return bigQueryRpc.getRoutine( + public com.google.api.services.bigquery.model.Routine call() throws IOException { + return bigQueryRpc.getRoutineSkipExceptionTranslation( completeRoutineId.getProject(), completeRoutineId.getDataset(), completeRoutineId.getRoutine(), @@ -902,12 +945,16 @@ public com.google.api.services.bigquery.model.Routine call() { }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - if (getOptions().getThrowNotFound() && answer == null) { - throw new BigQueryException(HTTP_NOT_FOUND, "Routine not found"); + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + return Routine.fromPb(this, answer); + } catch (BigQueryRetryHelperException e) { + if (isRetryErrorCodeHttpNotFound(e)) { + if (getOptions().getThrowNotFound()) { + throw new BigQueryException(HTTP_NOT_FOUND, "Routine not found"); + } + return null; } - return answer == null ? null : Routine.fromPb(this, answer); - } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -978,20 +1025,22 @@ private static Page

    listTables( final Map optionsMap) { try { Tuple> result = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable< Tuple>>() { @Override - public Tuple> - call() { + public Tuple> call() + throws IOException { return serviceOptions .getBigQueryRpcV2() - .listTables(datasetId.getProject(), datasetId.getDataset(), optionsMap); + .listTablesSkipExceptionTranslation( + datasetId.getProject(), datasetId.getDataset(), optionsMap); } }, serviceOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - serviceOptions.getClock()); + serviceOptions.getClock(), + EMPTY_RETRY_CONFIG); String cursor = result.x(); Iterable
    tables = Iterables.transform( @@ -1004,7 +1053,7 @@ public Table apply(com.google.api.services.bigquery.model.Table table) { }); return new PageImpl<>( new TablePageFetcher(datasetId, serviceOptions, cursor, optionsMap), cursor, tables); - } catch (RetryHelper.RetryHelperException e) { + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -1015,20 +1064,22 @@ private static Page listModels( final Map optionsMap) { try { Tuple> result = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable< Tuple>>() { @Override - public Tuple> - call() { + public Tuple> call() + throws IOException { return serviceOptions .getBigQueryRpcV2() - .listModels(datasetId.getProject(), datasetId.getDataset(), optionsMap); + .listModelsSkipExceptionTranslation( + datasetId.getProject(), datasetId.getDataset(), optionsMap); } }, serviceOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - serviceOptions.getClock()); + serviceOptions.getClock(), + EMPTY_RETRY_CONFIG); String cursor = result.x(); Iterable models = Iterables.transform( @@ -1041,7 +1092,7 @@ public Model apply(com.google.api.services.bigquery.model.Model model) { }); return new PageImpl<>( new ModelPageFetcher(datasetId, serviceOptions, cursor, optionsMap), cursor, models); - } catch (RetryHelper.RetryHelperException e) { + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -1052,20 +1103,22 @@ private static Page listRoutines( final Map optionsMap) { try { Tuple> result = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable< Tuple>>() { @Override public Tuple> - call() { + call() throws IOException { return serviceOptions .getBigQueryRpcV2() - .listRoutines(datasetId.getProject(), datasetId.getDataset(), optionsMap); + .listRoutinesSkipExceptionTranslation( + datasetId.getProject(), datasetId.getDataset(), optionsMap); } }, serviceOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - serviceOptions.getClock()); + serviceOptions.getClock(), + EMPTY_RETRY_CONFIG); String cursor = result.x(); Iterable routines = Iterables.transform( @@ -1078,7 +1131,7 @@ public Routine apply(com.google.api.services.bigquery.model.Routine routinePb) { }); return new PageImpl<>( new RoutinePageFetcher(datasetId, serviceOptions, cursor, optionsMap), cursor, routines); - } catch (RetryHelper.RetryHelperException e) { + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -1120,21 +1173,23 @@ public Rows apply(RowToInsert rowToInsert) { // allowing retries only if all row insertIds are set (used for deduplication) try { responsePb = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override public TableDataInsertAllResponse call() throws Exception { - return bigQueryRpc.insertAll( + return bigQueryRpc.insertAllSkipExceptionTranslation( tableId.getProject(), tableId.getDataset(), tableId.getTable(), requestPb); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - } catch (RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } else { + // Use insertAll that translate the exception as we are not retrying. responsePb = bigQueryRpc.insertAll( tableId.getProject(), tableId.getDataset(), tableId.getTable(), requestPb); @@ -1183,13 +1238,13 @@ private static Tuple, Long> listTableData( ? serviceOptions.getProjectId() : tableId.getProject()); TableDataList result = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public TableDataList call() { + public TableDataList call() throws IOException { return serviceOptions .getBigQueryRpcV2() - .listTableData( + .listTableDataSkipExceptionTranslation( completeTableId.getProject(), completeTableId.getDataset(), completeTableId.getTable(), @@ -1198,7 +1253,8 @@ public TableDataList call() { }, serviceOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - serviceOptions.getClock()); + serviceOptions.getClock(), + EMPTY_RETRY_CONFIG); String cursor = result.getPageToken(); Map pageOptionMap = Strings.isNullOrEmpty(cursor) ? optionsMap : optionMap(TableDataListOption.startIndex(0)); @@ -1208,7 +1264,7 @@ public TableDataList call() { cursor, transformTableData(result.getRows(), schema, serviceOptions.getUseInt64Timestamps())), result.getTotalRows()); - } catch (RetryHelper.RetryHelperException e) { + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -1245,11 +1301,11 @@ public Job getJob(JobId jobId, JobOption... options) { : jobId.getLocation()); try { com.google.api.services.bigquery.model.Job answer = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Job call() { - return bigQueryRpc.getJob( + public com.google.api.services.bigquery.model.Job call() throws IOException { + return bigQueryRpc.getJobSkipExceptionTranslation( completeJobId.getProject(), completeJobId.getJob(), completeJobId.getLocation(), @@ -1258,12 +1314,16 @@ public com.google.api.services.bigquery.model.Job call() { }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - if (getOptions().getThrowNotFound() && answer == null) { - throw new BigQueryException(HTTP_NOT_FOUND, "Job not found"); + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + return Job.fromPb(this, answer); + } catch (BigQueryRetryHelperException e) { + if (isRetryErrorCodeHttpNotFound(e)) { + if (getOptions().getThrowNotFound()) { + throw new BigQueryException(HTTP_NOT_FOUND, "Job not found"); + } + return null; } - return answer == null ? null : Job.fromPb(this, answer); - } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -1275,30 +1335,36 @@ public Page listJobs(JobListOption... options) { private static Page listJobs( final BigQueryOptions serviceOptions, final Map optionsMap) { - Tuple> result = - runWithRetries( - new Callable>>() { - @Override - public Tuple> call() { - return serviceOptions - .getBigQueryRpcV2() - .listJobs(serviceOptions.getProjectId(), optionsMap); - } - }, - serviceOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - serviceOptions.getClock()); - String cursor = result.x(); - Iterable jobs = - Iterables.transform( - result.y(), - new Function() { - @Override - public Job apply(com.google.api.services.bigquery.model.Job job) { - return Job.fromPb(serviceOptions.getService(), job); - } - }); - return new PageImpl<>(new JobPageFetcher(serviceOptions, cursor, optionsMap), cursor, jobs); + try { + Tuple> result = + BigQueryRetryHelper.runWithRetries( + new Callable>>() { + @Override + public Tuple> call() + throws IOException { + return serviceOptions + .getBigQueryRpcV2() + .listJobsSkipExceptionTranslation(serviceOptions.getProjectId(), optionsMap); + } + }, + serviceOptions.getRetrySettings(), + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + serviceOptions.getClock(), + EMPTY_RETRY_CONFIG); + String cursor = result.x(); + Iterable jobs = + Iterables.transform( + result.y(), + new Function() { + @Override + public Job apply(com.google.api.services.bigquery.model.Job job) { + return Job.fromPb(serviceOptions.getService(), job); + } + }); + return new PageImpl<>(new JobPageFetcher(serviceOptions, cursor, optionsMap), cursor, jobs); + } catch (BigQueryRetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } } @Override @@ -1316,18 +1382,22 @@ public boolean cancel(JobId jobId) { ? getOptions().getLocation() : jobId.getLocation()); try { - return runWithRetries( + return BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public Boolean call() { - return bigQueryRpc.cancel( + public Boolean call() throws IOException { + return bigQueryRpc.cancelSkipExceptionTranslation( completeJobId.getProject(), completeJobId.getJob(), completeJobId.getLocation()); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + } catch (BigQueryRetryHelperException e) { + if (isRetryErrorCodeHttpNotFound(e)) { + return false; + } throw BigQueryException.translateAndThrow(e); } } @@ -1370,8 +1440,9 @@ private TableResult queryRpc( BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.QueryResponse call() { - return bigQueryRpc.queryRpc(projectId, content); + public com.google.api.services.bigquery.model.QueryResponse call() + throws IOException { + return bigQueryRpc.queryRpcSkipExceptionTranslation(projectId, content); } }, getOptions().getRetrySettings(), @@ -1498,10 +1569,10 @@ private static QueryResponse getQueryResults( BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public GetQueryResultsResponse call() { + public GetQueryResultsResponse call() throws IOException { return serviceOptions .getBigQueryRpcV2() - .getQueryResults( + .getQueryResultsSkipExceptionTranslation( completeJobId.getProject(), completeJobId.getJob(), completeJobId.getLocation(), @@ -1528,7 +1599,7 @@ public GetQueryResultsResponse call() { .setTotalRows(results.getTotalRows() == null ? 0 : results.getTotalRows().longValue()) .setErrors(errors.build()) .build(); - } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -1558,17 +1629,19 @@ public Policy getIamPolicy(TableId tableId, IAMOption... options) { try { final Map optionsMap = optionMap(options); return convertFromApiPolicy( - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Policy call() { - return bigQueryRpc.getIamPolicy(completeTableId.getIAMResourceName(), optionsMap); + public com.google.api.services.bigquery.model.Policy call() throws IOException { + return bigQueryRpc.getIamPolicySkipExceptionTranslation( + completeTableId.getIAMResourceName(), optionsMap); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock())); - } catch (RetryHelper.RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG)); + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -1583,18 +1656,19 @@ public Policy setIamPolicy(TableId tableId, final Policy policy, IAMOption... op try { final Map optionsMap = optionMap(options); return convertFromApiPolicy( - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Policy call() { - return bigQueryRpc.setIamPolicy( + public com.google.api.services.bigquery.model.Policy call() throws IOException { + return bigQueryRpc.setIamPolicySkipExceptionTranslation( completeTableId.getIAMResourceName(), convertToApiPolicy(policy), optionsMap); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock())); - } catch (RetryHelperException e) { + getOptions().getClock(), + EMPTY_RETRY_CONFIG)); + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -1610,21 +1684,23 @@ public List testIamPermissions( try { final Map optionsMap = optionMap(options); com.google.api.services.bigquery.model.TestIamPermissionsResponse response = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.TestIamPermissionsResponse call() { - return bigQueryRpc.testIamPermissions( + public com.google.api.services.bigquery.model.TestIamPermissionsResponse call() + throws IOException { + return bigQueryRpc.testIamPermissionsSkipExceptionTranslation( completeTableId.getIAMResourceName(), permissions, optionsMap); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); + getOptions().getClock(), + EMPTY_RETRY_CONFIG); return response.getPermissions() == null ? ImmutableList.of() : ImmutableList.copyOf(response.getPermissions()); - } catch (RetryHelperException e) { + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -1647,4 +1723,13 @@ static BigQueryRetryConfig getBigQueryRetryConfig(Map opt static RetryOption[] getRetryOptions(Map options) { return (RetryOption[]) options.getOrDefault(BigQueryRpc.Option.RETRY_OPTIONS, null); } + + private static boolean isRetryErrorCodeHttpNotFound(BigQueryRetryHelperException e) { + if (e.getCause() instanceof BigQueryException) { + if (((BigQueryException) e.getCause()).getCode() == HTTP_NOT_FOUND) { + return true; + } + } + return false; + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index 465cc83058d2..ca34a2d2ddf3 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -21,7 +21,6 @@ import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; import com.google.cloud.bigquery.spi.BigQueryRpcFactory; -import com.google.cloud.bigquery.spi.v2.BigQueryRpc; import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import com.google.cloud.http.HttpTransportOptions; import com.google.common.annotations.VisibleForTesting; @@ -132,8 +131,8 @@ protected Set getScopes() { return SCOPES; } - protected BigQueryRpc getBigQueryRpcV2() { - return (BigQueryRpc) getRpc(); + protected HttpBigQueryRpc getBigQueryRpcV2() { + return (HttpBigQueryRpc) getRpc(); } public String getLocation() { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java index 405a2371ed3f..d315241a3c9d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java @@ -25,6 +25,7 @@ import com.google.api.gax.retrying.RetryingFuture; import com.google.api.gax.retrying.TimedRetryAlgorithm; import com.google.cloud.RetryHelper; +import java.io.IOException; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.logging.Level; @@ -52,6 +53,11 @@ public static V runWithRetries( algorithm, bigQueryRetryConfig); } catch (Exception e) { + // Checks for IOException and translate it into BigQueryException. The BigQueryException + // constructor parses the IOException and translate it into internal code. + if (e.getCause() instanceof IOException) { + throw new BigQueryRetryHelperException(new BigQueryException((IOException) e.getCause())); + } throw new BigQueryRetryHelperException(e.getCause()); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index 5ad9fe2843eb..d524cedfc8bd 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -16,7 +16,6 @@ package com.google.cloud.bigquery; -import static com.google.cloud.RetryHelper.runWithRetries; import static java.net.HttpURLConnection.HTTP_NOT_FOUND; import com.google.api.core.BetaApi; @@ -28,8 +27,8 @@ import com.google.api.services.bigquery.model.QueryRequest; import com.google.api.services.bigquery.model.TableDataList; import com.google.api.services.bigquery.model.TableRow; -import com.google.cloud.RetryHelper; import com.google.cloud.Tuple; +import com.google.cloud.bigquery.BigQueryRetryHelper.BigQueryRetryHelperException; import com.google.cloud.bigquery.JobStatistics.QueryStatistics; import com.google.cloud.bigquery.JobStatistics.SessionInfo; import com.google.cloud.bigquery.spi.v2.BigQueryRpc; @@ -102,6 +101,8 @@ class ConnectionImpl implements Connection { bufferFvl; // initialized lazily iff we end up using the tabledata.list end point private BlockingQueue bufferRow; // initialized lazily iff we end up using Read API + private static final BigQueryRetryConfig EMPTY_RETRY_CONFIG = + BigQueryRetryConfig.newBuilder().build(); ConnectionImpl( ConnectionSettings connectionSettings, @@ -466,12 +467,15 @@ private BigQueryResult queryRpc( try { results = BigQueryRetryHelper.runWithRetries( - () -> bigQueryRpc.queryRpc(projectId, queryRequest), + () -> + bigQueryOptions + .getBigQueryRpcV2() + .queryRpcSkipExceptionTranslation(projectId, queryRequest), bigQueryOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, bigQueryOptions.getClock(), retryConfig); - } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -914,21 +918,30 @@ private Job getQueryJobRpc(JobId jobId) { com.google.api.services.bigquery.model.Job jobPb; try { jobPb = - runWithRetries( + BigQueryRetryHelper.runWithRetries( () -> - bigQueryRpc.getQueryJob( - completeJobId.getProject(), - completeJobId.getJob(), - completeJobId.getLocation()), + bigQueryOptions + .getBigQueryRpcV2() + .getQueryJobSkipExceptionTranslation( + completeJobId.getProject(), + completeJobId.getJob(), + completeJobId.getLocation()), bigQueryOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - bigQueryOptions.getClock()); - if (bigQueryOptions.getThrowNotFound() && jobPb == null) { - throw new BigQueryException(HTTP_NOT_FOUND, "Query job not found"); + bigQueryOptions.getClock(), + EMPTY_RETRY_CONFIG); + } catch (BigQueryRetryHelperException e) { + if (e.getCause() instanceof BigQueryException) { + if (((BigQueryException) e.getCause()).getCode() == HTTP_NOT_FOUND) { + if (bigQueryOptions.getThrowNotFound()) { + throw new BigQueryException(HTTP_NOT_FOUND, "Query job not found"); + } + return null; + } } - } catch (RetryHelper.RetryHelperException e) { throw BigQueryException.translateAndThrow(e); } + // getQueryJobSkipExceptionTranslation will never return null so this is safe. return Job.fromPb(bigQueryOptions.getService(), jobPb); } @@ -948,11 +961,11 @@ TableDataList tableDataListRpc(TableId destinationTable, String pageToken) { ? bigQueryOptions.getProjectId() : destinationTable.getProject()); TableDataList results = - runWithRetries( + BigQueryRetryHelper.runWithRetries( () -> bigQueryOptions .getBigQueryRpcV2() - .listTableDataWithRowLimit( + .listTableDataWithRowLimitSkipExceptionTranslation( completeTableId.getProject(), completeTableId.getDataset(), completeTableId.getTable(), @@ -960,10 +973,11 @@ TableDataList tableDataListRpc(TableId destinationTable, String pageToken) { pageToken), bigQueryOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - bigQueryOptions.getClock()); + bigQueryOptions.getClock(), + EMPTY_RETRY_CONFIG); return results; - } catch (RetryHelper.RetryHelperException e) { + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -1177,12 +1191,14 @@ GetQueryResultsResponse getQueryResultsFirstPage(JobId jobId) { results = BigQueryRetryHelper.runWithRetries( () -> - bigQueryRpc.getQueryResultsWithRowLimit( - completeJobId.getProject(), - completeJobId.getJob(), - completeJobId.getLocation(), - connectionSettings.getMaxResultPerPage(), - timeoutMs), + bigQueryOptions + .getBigQueryRpcV2() + .getQueryResultsWithRowLimitSkipExceptionTranslation( + completeJobId.getProject(), + completeJobId.getJob(), + completeJobId.getLocation(), + connectionSettings.getMaxResultPerPage(), + timeoutMs), bigQueryOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, bigQueryOptions.getClock(), @@ -1197,7 +1213,7 @@ GetQueryResultsResponse getQueryResultsFirstPage(JobId jobId) { // with the case where there is a HTTP error throw new BigQueryException(bigQueryErrors); } - } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { + } catch (BigQueryRetryHelperException e) { logger.log(Level.WARNING, "\n Error occurred while calling getQueryResultsWithRowLimit", e); throw BigQueryException.translateAndThrow(e); } @@ -1442,7 +1458,10 @@ com.google.api.services.bigquery.model.Job createQueryJob( try { queryJob = BigQueryRetryHelper.runWithRetries( - () -> bigQueryRpc.createJobForQuery(jobPb), + () -> + bigQueryOptions + .getBigQueryRpcV2() + .createJobForQuerySkipExceptionTranslation(jobPb), bigQueryOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, bigQueryOptions.getClock(), @@ -1482,7 +1501,10 @@ com.google.api.services.bigquery.model.Job createDryRunJob(String sql) { try { dryRunJob = BigQueryRetryHelper.runWithRetries( - () -> bigQueryRpc.createJobForQuery(jobPb), + () -> + bigQueryOptions + .getBigQueryRpcV2() + .createJobForQuerySkipExceptionTranslation(jobPb), bigQueryOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, bigQueryOptions.getClock(), diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java index 0f9632aea875..aabd87d47138 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java @@ -16,12 +16,11 @@ package com.google.cloud.bigquery; -import static com.google.cloud.RetryHelper.runWithRetries; - import com.google.cloud.BaseWriteChannel; import com.google.cloud.RestorableState; -import com.google.cloud.RetryHelper; import com.google.cloud.WriteChannel; +import com.google.cloud.bigquery.BigQueryRetryHelper.BigQueryRetryHelperException; +import java.io.IOException; import java.util.List; import java.util.Objects; import java.util.concurrent.Callable; @@ -34,6 +33,9 @@ public class TableDataWriteChannel extends BaseWriteChannel { + private static final BigQueryRetryConfig EMPTY_RETRY_CONFIG = + BigQueryRetryConfig.newBuilder().build(); + private Job job; TableDataWriteChannel( @@ -50,20 +52,22 @@ public class TableDataWriteChannel protected void flushBuffer(final int length, final boolean last) { try { com.google.api.services.bigquery.model.Job jobPb = - runWithRetries( + BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public com.google.api.services.bigquery.model.Job call() { + public com.google.api.services.bigquery.model.Job call() throws IOException { return getOptions() .getBigQueryRpcV2() - .write(getUploadId(), getBuffer(), 0, getPosition(), length, last); + .writeSkipExceptionTranslation( + getUploadId(), getBuffer(), 0, getPosition(), length, last); } }, getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock()); + getOptions().getClock(), + EMPTY_RETRY_CONFIG); job = jobPb != null ? Job.fromPb(getOptions().getService(), jobPb) : null; - } catch (RetryHelper.RetryHelperException e) { + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } @@ -78,13 +82,13 @@ private static String open( final JobId jobId, final WriteChannelConfiguration writeChannelConfiguration) { try { - return runWithRetries( + return BigQueryRetryHelper.runWithRetries( new Callable() { @Override - public String call() { + public String call() throws IOException { return options .getBigQueryRpcV2() - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setConfiguration(writeChannelConfiguration.toPb()) .setJobReference(jobId.toPb())); @@ -92,8 +96,9 @@ public String call() { }, options.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - options.getClock()); - } catch (RetryHelper.RetryHelperException e) { + options.getClock(), + EMPTY_RETRY_CONFIG); + } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 3946f83f54ad..14a14fdb9fcc 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -129,20 +129,7 @@ private void validateRPC() throws BigQueryException, IOException { @Override public Dataset getDataset(String projectId, String datasetId, Map options) { try { - validateRPC(); - - Bigquery.Datasets.Get bqGetRequest = - bigquery - .datasets() - .get(projectId, datasetId) - .setFields(Option.FIELDS.getString(options)) - .setPrettyPrint(false); - for (Map.Entry entry : options.entrySet()) { - if (entry.getKey() == Option.ACCESS_POLICY_VERSION && entry.getValue() != null) { - bqGetRequest.setAccessPolicyVersion((Integer) entry.getValue()); - } - } - return bqGetRequest.execute(); + return getDatasetSkipExceptionTranslation(projectId, datasetId, options); } catch (IOException ex) { BigQueryException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { @@ -152,130 +139,175 @@ public Dataset getDataset(String projectId, String datasetId, Map opt } } + @InternalApi("internal to java-bigquery") + public Dataset getDatasetSkipExceptionTranslation( + String projectId, String datasetId, Map options) throws IOException { + validateRPC(); + Bigquery.Datasets.Get bqGetRequest = + bigquery + .datasets() + .get(projectId, datasetId) + .setFields(Option.FIELDS.getString(options)) + .setPrettyPrint(false); + for (Map.Entry entry : options.entrySet()) { + if (entry.getKey() == Option.ACCESS_POLICY_VERSION && entry.getValue() != null) { + bqGetRequest.setAccessPolicyVersion((Integer) entry.getValue()); + } + } + return bqGetRequest.execute(); + } + @Override public Tuple> listDatasets(String projectId, Map options) { try { - validateRPC(); - DatasetList datasetsList = - bigquery - .datasets() - .list(projectId) - .setPrettyPrint(false) - .setAll(Option.ALL_DATASETS.getBoolean(options)) - .setFilter(Option.LABEL_FILTER.getString(options)) - .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .execute(); - Iterable datasets = datasetsList.getDatasets(); - return Tuple.of( - datasetsList.getNextPageToken(), - Iterables.transform( - datasets != null ? datasets : ImmutableList.of(), - LIST_TO_DATASET)); + return listDatasetsSkipExceptionTranslation(projectId, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Tuple> listDatasetsSkipExceptionTranslation( + String projectId, Map options) throws IOException { + validateRPC(); + DatasetList datasetsList = + bigquery + .datasets() + .list(projectId) + .setPrettyPrint(false) + .setAll(Option.ALL_DATASETS.getBoolean(options)) + .setFilter(Option.LABEL_FILTER.getString(options)) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .execute(); + Iterable datasets = datasetsList.getDatasets(); + return Tuple.of( + datasetsList.getNextPageToken(), + Iterables.transform( + datasets != null ? datasets : ImmutableList.of(), + LIST_TO_DATASET)); + } + @Override public Dataset create(Dataset dataset, Map options) { try { - validateRPC(); - Bigquery.Datasets.Insert bqCreateRequest = - bigquery - .datasets() - .insert(dataset.getDatasetReference().getProjectId(), dataset) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)); - for (Map.Entry entry : options.entrySet()) { - if (entry.getKey() == Option.ACCESS_POLICY_VERSION && entry.getValue() != null) { - bqCreateRequest.setAccessPolicyVersion((Integer) entry.getValue()); - } - } - return bqCreateRequest.execute(); + return createSkipExceptionTranslation(dataset, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Dataset createSkipExceptionTranslation(Dataset dataset, Map options) + throws IOException { + validateRPC(); + Bigquery.Datasets.Insert bqCreateRequest = + bigquery + .datasets() + .insert(dataset.getDatasetReference().getProjectId(), dataset) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)); + for (Map.Entry entry : options.entrySet()) { + if (entry.getKey() == Option.ACCESS_POLICY_VERSION && entry.getValue() != null) { + bqCreateRequest.setAccessPolicyVersion((Integer) entry.getValue()); + } + } + return bqCreateRequest.execute(); + } + @Override public Table create(Table table, Map options) { try { - validateRPC(); - // unset the type, as it is output only - table.setType(null); - TableReference reference = table.getTableReference(); - return bigquery - .tables() - .insert(reference.getProjectId(), reference.getDatasetId(), table) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + return createSkipExceptionTranslation(table, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Table createSkipExceptionTranslation(Table table, Map options) + throws IOException { + validateRPC(); + // unset the type, as it is output only + table.setType(null); + TableReference reference = table.getTableReference(); + return bigquery + .tables() + .insert(reference.getProjectId(), reference.getDatasetId(), table) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } + @Override public Routine create(Routine routine, Map options) { try { - validateRPC(); - RoutineReference reference = routine.getRoutineReference(); - return bigquery - .routines() - .insert(reference.getProjectId(), reference.getDatasetId(), routine) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + return createSkipExceptionTranslation(routine, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Routine createSkipExceptionTranslation(Routine routine, Map options) + throws IOException { + validateRPC(); + RoutineReference reference = routine.getRoutineReference(); + return bigquery + .routines() + .insert(reference.getProjectId(), reference.getDatasetId(), routine) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } + @Override public Job create(Job job, Map options) { try { - validateRPC(); - String projectId = - job.getJobReference() != null - ? job.getJobReference().getProjectId() - : this.options.getProjectId(); - return bigquery - .jobs() - .insert(projectId, job) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + return createSkipExceptionTranslation(job, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Job createSkipExceptionTranslation(Job job, Map options) throws IOException { + validateRPC(); + String projectId = + job.getJobReference() != null + ? job.getJobReference().getProjectId() + : this.options.getProjectId(); + return bigquery + .jobs() + .insert(projectId, job) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } + @Override public Job createJobForQuery(Job job) { try { - validateRPC(); - String projectId = - job.getJobReference() != null - ? job.getJobReference().getProjectId() - : this.options.getProjectId(); - return bigquery.jobs().insert(projectId, job).setPrettyPrint(false).execute(); + return createJobForQuerySkipExceptionTranslation(job); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Job createJobForQuerySkipExceptionTranslation(Job job) throws IOException { + validateRPC(); + String projectId = + job.getJobReference() != null + ? job.getJobReference().getProjectId() + : this.options.getProjectId(); + return bigquery.jobs().insert(projectId, job).setPrettyPrint(false).execute(); + } + @Override public boolean deleteDataset(String projectId, String datasetId, Map options) { try { - validateRPC(); - bigquery - .datasets() - .delete(projectId, datasetId) - .setPrettyPrint(false) - .setDeleteContents(Option.DELETE_CONTENTS.getBoolean(options)) - .execute(); - return true; + return deleteDatasetSkipExceptionTranslation(projectId, datasetId, options); } catch (IOException ex) { BigQueryException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { @@ -285,59 +317,77 @@ public boolean deleteDataset(String projectId, String datasetId, Map } } + @InternalApi("internal to java-bigquery") + public boolean deleteDatasetSkipExceptionTranslation( + String projectId, String datasetId, Map options) throws IOException { + validateRPC(); + bigquery + .datasets() + .delete(projectId, datasetId) + .setPrettyPrint(false) + .setDeleteContents(Option.DELETE_CONTENTS.getBoolean(options)) + .execute(); + return true; + } + @Override public Dataset patch(Dataset dataset, Map options) { try { - validateRPC(); - DatasetReference reference = dataset.getDatasetReference(); - Bigquery.Datasets.Patch bqPatchRequest = - bigquery - .datasets() - .patch(reference.getProjectId(), reference.getDatasetId(), dataset) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)); - for (Map.Entry entry : options.entrySet()) { - if (entry.getKey() == Option.ACCESS_POLICY_VERSION && entry.getValue() != null) { - bqPatchRequest.setAccessPolicyVersion((Integer) entry.getValue()); - } - } - return bqPatchRequest.execute(); + return patchSkipExceptionTranslation(dataset, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Dataset patchSkipExceptionTranslation(Dataset dataset, Map options) + throws IOException { + validateRPC(); + DatasetReference reference = dataset.getDatasetReference(); + Bigquery.Datasets.Patch bqPatchRequest = + bigquery + .datasets() + .patch(reference.getProjectId(), reference.getDatasetId(), dataset) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)); + for (Map.Entry entry : options.entrySet()) { + if (entry.getKey() == Option.ACCESS_POLICY_VERSION && entry.getValue() != null) { + bqPatchRequest.setAccessPolicyVersion((Integer) entry.getValue()); + } + } + return bqPatchRequest.execute(); + } + @Override public Table patch(Table table, Map options) { try { - validateRPC(); - // unset the type, as it is output only - table.setType(null); - TableReference reference = table.getTableReference(); - return bigquery - .tables() - .patch(reference.getProjectId(), reference.getDatasetId(), reference.getTableId(), table) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .setAutodetectSchema(BigQueryRpc.Option.AUTODETECT_SCHEMA.getBoolean(options)) - .execute(); + return patchSkipExceptionTranslation(table, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Table patchSkipExceptionTranslation(Table table, Map options) + throws IOException { + validateRPC(); + // unset the type, as it is output only + table.setType(null); + TableReference reference = table.getTableReference(); + return bigquery + .tables() + .patch(reference.getProjectId(), reference.getDatasetId(), reference.getTableId(), table) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)) + .setAutodetectSchema(BigQueryRpc.Option.AUTODETECT_SCHEMA.getBoolean(options)) + .execute(); + } + @Override public Table getTable( String projectId, String datasetId, String tableId, Map options) { try { - validateRPC(); - return bigquery - .tables() - .get(projectId, datasetId, tableId) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .setView(getTableMetadataOption(options)) - .execute(); + return getTableSkipExceptionTranslation(projectId, datasetId, tableId, options); } catch (IOException ex) { BigQueryException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { @@ -347,6 +397,20 @@ public Table getTable( } } + @InternalApi("internal to java-bigquery") + public Table getTableSkipExceptionTranslation( + String projectId, String datasetId, String tableId, Map options) + throws IOException { + validateRPC(); + return bigquery + .tables() + .get(projectId, datasetId, tableId) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)) + .setView(getTableMetadataOption(options)) + .execute(); + } + private String getTableMetadataOption(Map options) { if (options.containsKey(Option.TABLE_METADATA_VIEW)) { return options.get(Option.TABLE_METADATA_VIEW).toString(); @@ -358,46 +422,50 @@ private String getTableMetadataOption(Map options) { public Tuple> listTables( String projectId, String datasetId, Map options) { try { - validateRPC(); - TableList tableList = - bigquery - .tables() - .list(projectId, datasetId) - .setPrettyPrint(false) - .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .execute(); - Iterable tables = tableList.getTables(); - return Tuple.of( - tableList.getNextPageToken(), - Iterables.transform( - tables != null ? tables : ImmutableList.of(), - new Function() { - @Override - public Table apply(TableList.Tables tablePb) { - return new Table() - .setFriendlyName(tablePb.getFriendlyName()) - .setId(tablePb.getId()) - .setKind(tablePb.getKind()) - .setTableReference(tablePb.getTableReference()) - .setType(tablePb.getType()) - .setCreationTime(tablePb.getCreationTime()) - .setTimePartitioning(tablePb.getTimePartitioning()) - .setRangePartitioning(tablePb.getRangePartitioning()) - .setClustering(tablePb.getClustering()); - } - })); + return listTablesSkipExceptionTranslation(projectId, datasetId, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Tuple> listTablesSkipExceptionTranslation( + String projectId, String datasetId, Map options) throws IOException { + validateRPC(); + TableList tableList = + bigquery + .tables() + .list(projectId, datasetId) + .setPrettyPrint(false) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .execute(); + Iterable tables = tableList.getTables(); + return Tuple.of( + tableList.getNextPageToken(), + Iterables.transform( + tables != null ? tables : ImmutableList.of(), + new Function() { + @Override + public Table apply(TableList.Tables tablePb) { + return new Table() + .setFriendlyName(tablePb.getFriendlyName()) + .setId(tablePb.getId()) + .setKind(tablePb.getKind()) + .setTableReference(tablePb.getTableReference()) + .setType(tablePb.getType()) + .setCreationTime(tablePb.getCreationTime()) + .setTimePartitioning(tablePb.getTimePartitioning()) + .setRangePartitioning(tablePb.getRangePartitioning()) + .setClustering(tablePb.getClustering()); + } + })); + } + @Override public boolean deleteTable(String projectId, String datasetId, String tableId) { try { - validateRPC(); - bigquery.tables().delete(projectId, datasetId, tableId).execute(); - return true; + return deleteTableSkipExceptionTranslation(projectId, datasetId, tableId); } catch (IOException ex) { BigQueryException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { @@ -407,34 +475,42 @@ public boolean deleteTable(String projectId, String datasetId, String tableId) { } } + @InternalApi("internal to java-bigquery") + public boolean deleteTableSkipExceptionTranslation( + String projectId, String datasetId, String tableId) throws IOException { + validateRPC(); + bigquery.tables().delete(projectId, datasetId, tableId).execute(); + return true; + } + @Override public Model patch(Model model, Map options) { try { - validateRPC(); - // unset the type, as it is output only - ModelReference reference = model.getModelReference(); - return bigquery - .models() - .patch(reference.getProjectId(), reference.getDatasetId(), reference.getModelId(), model) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + return patchSkipExceptionTranslation(model, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Model patchSkipExceptionTranslation(Model model, Map options) + throws IOException { + validateRPC(); + // unset the type, as it is output only + ModelReference reference = model.getModelReference(); + return bigquery + .models() + .patch(reference.getProjectId(), reference.getDatasetId(), reference.getModelId(), model) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } + @Override public Model getModel( String projectId, String datasetId, String modelId, Map options) { try { - validateRPC(); - return bigquery - .models() - .get(projectId, datasetId, modelId) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + return getModelSkipExceptionTranslation(projectId, datasetId, modelId, options); } catch (IOException ex) { BigQueryException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { @@ -444,33 +520,50 @@ public Model getModel( } } + @InternalApi("internal to java-bigquery") + public Model getModelSkipExceptionTranslation( + String projectId, String datasetId, String modelId, Map options) + throws IOException { + validateRPC(); + return bigquery + .models() + .get(projectId, datasetId, modelId) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } + @Override public Tuple> listModels( String projectId, String datasetId, Map options) { try { - validateRPC(); - ListModelsResponse modelList = - bigquery - .models() - .list(projectId, datasetId) - .setPrettyPrint(false) - .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .execute(); - Iterable models = - modelList.getModels() != null ? modelList.getModels() : ImmutableList.of(); - return Tuple.of(modelList.getNextPageToken(), models); + return listModelsSkipExceptionTranslation(projectId, datasetId, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Tuple> listModelsSkipExceptionTranslation( + String projectId, String datasetId, Map options) throws IOException { + validateRPC(); + ListModelsResponse modelList = + bigquery + .models() + .list(projectId, datasetId) + .setPrettyPrint(false) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .execute(); + Iterable models = + modelList.getModels() != null ? modelList.getModels() : ImmutableList.of(); + return Tuple.of(modelList.getNextPageToken(), models); + } + @Override public boolean deleteModel(String projectId, String datasetId, String modelId) { try { - validateRPC(); - bigquery.models().delete(projectId, datasetId, modelId).execute(); - return true; + return deleteModelSkipExceptionTranslation(projectId, datasetId, modelId); } catch (IOException ex) { BigQueryException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { @@ -480,34 +573,42 @@ public boolean deleteModel(String projectId, String datasetId, String modelId) { } } + @InternalApi("internal to java-bigquery") + public boolean deleteModelSkipExceptionTranslation( + String projectId, String datasetId, String modelId) throws IOException { + validateRPC(); + bigquery.models().delete(projectId, datasetId, modelId).execute(); + return true; + } + @Override public Routine update(Routine routine, Map options) { try { - validateRPC(); - RoutineReference reference = routine.getRoutineReference(); - return bigquery - .routines() - .update( - reference.getProjectId(), reference.getDatasetId(), reference.getRoutineId(), routine) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + return updateSkipExceptionTranslation(routine, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Routine updateSkipExceptionTranslation(Routine routine, Map options) + throws IOException { + validateRPC(); + RoutineReference reference = routine.getRoutineReference(); + return bigquery + .routines() + .update( + reference.getProjectId(), reference.getDatasetId(), reference.getRoutineId(), routine) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } + @Override public Routine getRoutine( String projectId, String datasetId, String routineId, Map options) { try { - validateRPC(); - return bigquery - .routines() - .get(projectId, datasetId, routineId) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + return getRoutineSkipExceptionTranslation(projectId, datasetId, routineId, options); } catch (IOException ex) { BigQueryException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { @@ -517,35 +618,50 @@ public Routine getRoutine( } } + @InternalApi("internal to java-bigquery") + public Routine getRoutineSkipExceptionTranslation( + String projectId, String datasetId, String routineId, Map options) + throws IOException { + validateRPC(); + return bigquery + .routines() + .get(projectId, datasetId, routineId) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } + @Override public Tuple> listRoutines( String projectId, String datasetId, Map options) { try { - validateRPC(); - ListRoutinesResponse routineList = - bigquery - .routines() - .list(projectId, datasetId) - .setPrettyPrint(false) - .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .execute(); - Iterable routines = - routineList.getRoutines() != null - ? routineList.getRoutines() - : ImmutableList.of(); - return Tuple.of(routineList.getNextPageToken(), routines); + return listRoutinesSkipExceptionTranslation(projectId, datasetId, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Tuple> listRoutinesSkipExceptionTranslation( + String projectId, String datasetId, Map options) throws IOException { + validateRPC(); + ListRoutinesResponse routineList = + bigquery + .routines() + .list(projectId, datasetId) + .setPrettyPrint(false) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .execute(); + Iterable routines = + routineList.getRoutines() != null ? routineList.getRoutines() : ImmutableList.of(); + return Tuple.of(routineList.getNextPageToken(), routines); + } + @Override public boolean deleteRoutine(String projectId, String datasetId, String routineId) { try { - validateRPC(); - bigquery.routines().delete(projectId, datasetId, routineId).execute(); - return true; + return deleteRoutineSkipExceptionTranslation(projectId, datasetId, routineId); } catch (IOException ex) { BigQueryException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { @@ -555,42 +671,64 @@ public boolean deleteRoutine(String projectId, String datasetId, String routineI } } + @InternalApi("internal to java-bigquery") + public boolean deleteRoutineSkipExceptionTranslation( + String projectId, String datasetId, String routineId) throws IOException { + validateRPC(); + bigquery.routines().delete(projectId, datasetId, routineId).execute(); + return true; + } + @Override public TableDataInsertAllResponse insertAll( String projectId, String datasetId, String tableId, TableDataInsertAllRequest request) { try { - validateRPC(); - return bigquery - .tabledata() - .insertAll(projectId, datasetId, tableId, request) - .setPrettyPrint(false) - .execute(); + return insertAllSkipExceptionTranslation(projectId, datasetId, tableId, request); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public TableDataInsertAllResponse insertAllSkipExceptionTranslation( + String projectId, String datasetId, String tableId, TableDataInsertAllRequest request) + throws IOException { + validateRPC(); + return bigquery + .tabledata() + .insertAll(projectId, datasetId, tableId, request) + .setPrettyPrint(false) + .execute(); + } + @Override public TableDataList listTableData( String projectId, String datasetId, String tableId, Map options) { try { - validateRPC(); - return bigquery - .tabledata() - .list(projectId, datasetId, tableId) - .setPrettyPrint(false) - .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .setStartIndex( - Option.START_INDEX.getLong(options) != null - ? BigInteger.valueOf(Option.START_INDEX.getLong(options)) - : null) - .execute(); + return listTableDataSkipExceptionTranslation(projectId, datasetId, tableId, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public TableDataList listTableDataSkipExceptionTranslation( + String projectId, String datasetId, String tableId, Map options) + throws IOException { + validateRPC(); + return bigquery + .tabledata() + .list(projectId, datasetId, tableId) + .setPrettyPrint(false) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .setStartIndex( + Option.START_INDEX.getLong(options) != null + ? BigInteger.valueOf(Option.START_INDEX.getLong(options)) + : null) + .execute(); + } + @Override public TableDataList listTableDataWithRowLimit( String projectId, @@ -599,30 +737,35 @@ public TableDataList listTableDataWithRowLimit( Integer maxResultPerPage, String pageToken) { try { - validateRPC(); - return bigquery - .tabledata() - .list(projectId, datasetId, tableId) - .setPrettyPrint(false) - .setMaxResults(Long.valueOf(maxResultPerPage)) - .setPageToken(pageToken) - .execute(); + return listTableDataWithRowLimitSkipExceptionTranslation( + projectId, datasetId, tableId, maxResultPerPage, pageToken); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public TableDataList listTableDataWithRowLimitSkipExceptionTranslation( + String projectId, + String datasetId, + String tableId, + Integer maxResultPerPage, + String pageToken) + throws IOException { + validateRPC(); + return bigquery + .tabledata() + .list(projectId, datasetId, tableId) + .setPrettyPrint(false) + .setMaxResults(Long.valueOf(maxResultPerPage)) + .setPageToken(pageToken) + .execute(); + } + @Override public Job getJob(String projectId, String jobId, String location, Map options) { try { - validateRPC(); - return bigquery - .jobs() - .get(projectId, jobId) - .setPrettyPrint(false) - .setLocation(location) - .setFields(Option.FIELDS.getString(options)) - .execute(); + return getJobSkipExceptionTranslation(projectId, jobId, location, options); } catch (IOException ex) { BigQueryException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { @@ -632,16 +775,23 @@ public Job getJob(String projectId, String jobId, String location, Map options) throws IOException { + validateRPC(); + return bigquery + .jobs() + .get(projectId, jobId) + .setPrettyPrint(false) + .setLocation(location) + .setFields(Option.FIELDS.getString(options)) + .execute(); + } + @Override public Job getQueryJob(String projectId, String jobId, String location) { try { - validateRPC(); - return bigquery - .jobs() - .get(projectId, jobId) - .setPrettyPrint(false) - .setLocation(location) - .execute(); + return getQueryJobSkipExceptionTranslation(projectId, jobId, location); } catch (IOException ex) { BigQueryException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { @@ -651,72 +801,83 @@ public Job getQueryJob(String projectId, String jobId, String location) { } } + @InternalApi("internal to java-bigquery") + public Job getQueryJobSkipExceptionTranslation(String projectId, String jobId, String location) + throws IOException { + validateRPC(); + return bigquery + .jobs() + .get(projectId, jobId) + .setPrettyPrint(false) + .setLocation(location) + .execute(); + } + @Override public Tuple> listJobs(String projectId, Map options) { try { - validateRPC(); - Bigquery.Jobs.List request = - bigquery - .jobs() - .list(projectId) - .setPrettyPrint(false) - .setAllUsers(Option.ALL_USERS.getBoolean(options)) - .setFields(Option.FIELDS.getString(options)) - .setStateFilter(Option.STATE_FILTER.>get(options)) - .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .setProjection(DEFAULT_PROJECTION) - .setParentJobId(Option.PARENT_JOB_ID.getString(options)); - if (Option.MIN_CREATION_TIME.getLong(options) != null) { - request.setMinCreationTime(BigInteger.valueOf(Option.MIN_CREATION_TIME.getLong(options))); - } - if (Option.MAX_CREATION_TIME.getLong(options) != null) { - request.setMaxCreationTime(BigInteger.valueOf(Option.MAX_CREATION_TIME.getLong(options))); - } - JobList jobsList = request.execute(); - - Iterable jobs = jobsList.getJobs(); - return Tuple.of( - jobsList.getNextPageToken(), - Iterables.transform( - jobs != null ? jobs : ImmutableList.of(), - new Function() { - @Override - public Job apply(JobList.Jobs jobPb) { - JobStatus statusPb = - jobPb.getStatus() != null ? jobPb.getStatus() : new JobStatus(); - if (statusPb.getState() == null) { - statusPb.setState(jobPb.getState()); - } - if (statusPb.getErrorResult() == null) { - statusPb.setErrorResult(jobPb.getErrorResult()); - } - return new Job() - .setConfiguration(jobPb.getConfiguration()) - .setId(jobPb.getId()) - .setJobReference(jobPb.getJobReference()) - .setKind(jobPb.getKind()) - .setStatistics(jobPb.getStatistics()) - .setStatus(statusPb) - .setUserEmail(jobPb.getUserEmail()); - } - })); + return listJobsSkipExceptionTranslation(projectId, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Tuple> listJobsSkipExceptionTranslation( + String projectId, Map options) throws IOException { + validateRPC(); + Bigquery.Jobs.List request = + bigquery + .jobs() + .list(projectId) + .setPrettyPrint(false) + .setAllUsers(Option.ALL_USERS.getBoolean(options)) + .setFields(Option.FIELDS.getString(options)) + .setStateFilter(Option.STATE_FILTER.>get(options)) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .setProjection(DEFAULT_PROJECTION) + .setParentJobId(Option.PARENT_JOB_ID.getString(options)); + if (Option.MIN_CREATION_TIME.getLong(options) != null) { + request.setMinCreationTime(BigInteger.valueOf(Option.MIN_CREATION_TIME.getLong(options))); + } + if (Option.MAX_CREATION_TIME.getLong(options) != null) { + request.setMaxCreationTime(BigInteger.valueOf(Option.MAX_CREATION_TIME.getLong(options))); + } + JobList jobsList = request.execute(); + + Iterable jobs = jobsList.getJobs(); + return Tuple.of( + jobsList.getNextPageToken(), + Iterables.transform( + jobs != null ? jobs : ImmutableList.of(), + new Function() { + @Override + public Job apply(JobList.Jobs jobPb) { + JobStatus statusPb = + jobPb.getStatus() != null ? jobPb.getStatus() : new JobStatus(); + if (statusPb.getState() == null) { + statusPb.setState(jobPb.getState()); + } + if (statusPb.getErrorResult() == null) { + statusPb.setErrorResult(jobPb.getErrorResult()); + } + return new Job() + .setConfiguration(jobPb.getConfiguration()) + .setId(jobPb.getId()) + .setJobReference(jobPb.getJobReference()) + .setKind(jobPb.getKind()) + .setStatistics(jobPb.getStatistics()) + .setStatus(statusPb) + .setUserEmail(jobPb.getUserEmail()); + } + })); + } + @Override public boolean cancel(String projectId, String jobId, String location) { try { - validateRPC(); - bigquery - .jobs() - .cancel(projectId, jobId) - .setLocation(location) - .setPrettyPrint(false) - .execute(); - return true; + return cancelSkipExceptionTranslation(projectId, jobId, location); } catch (IOException ex) { BigQueryException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { @@ -726,95 +887,134 @@ public boolean cancel(String projectId, String jobId, String location) { } } + @InternalApi("internal to java-bigquery") + public boolean cancelSkipExceptionTranslation(String projectId, String jobId, String location) + throws IOException { + validateRPC(); + bigquery.jobs().cancel(projectId, jobId).setLocation(location).setPrettyPrint(false).execute(); + return true; + } + @Override public boolean deleteJob(String projectId, String jobName, String location) { try { - validateRPC(); - bigquery - .jobs() - .delete(projectId, jobName) - .setLocation(location) - .setPrettyPrint(false) - .execute(); - return true; + return deleteJobSkipExceptionTranslation(projectId, jobName, location); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public boolean deleteJobSkipExceptionTranslation( + String projectId, String jobName, String location) throws IOException { + validateRPC(); + bigquery + .jobs() + .delete(projectId, jobName) + .setLocation(location) + .setPrettyPrint(false) + .execute(); + return true; + } + @Override public GetQueryResultsResponse getQueryResults( String projectId, String jobId, String location, Map options) { try { - validateRPC(); - return bigquery - .jobs() - .getQueryResults(projectId, jobId) - .setPrettyPrint(false) - .setLocation(location) - .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .setStartIndex( - Option.START_INDEX.getLong(options) != null - ? BigInteger.valueOf(Option.START_INDEX.getLong(options)) - : null) - .setTimeoutMs(Option.TIMEOUT.getLong(options)) - .execute(); + return getQueryResultsSkipExceptionTranslation(projectId, jobId, location, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public GetQueryResultsResponse getQueryResultsSkipExceptionTranslation( + String projectId, String jobId, String location, Map options) throws IOException { + validateRPC(); + return bigquery + .jobs() + .getQueryResults(projectId, jobId) + .setPrettyPrint(false) + .setLocation(location) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .setStartIndex( + Option.START_INDEX.getLong(options) != null + ? BigInteger.valueOf(Option.START_INDEX.getLong(options)) + : null) + .setTimeoutMs(Option.TIMEOUT.getLong(options)) + .execute(); + } + @Override public GetQueryResultsResponse getQueryResultsWithRowLimit( String projectId, String jobId, String location, Integer maxResultPerPage, Long timeoutMs) { try { - validateRPC(); - return bigquery - .jobs() - .getQueryResults(projectId, jobId) - .setPrettyPrint(false) - .setLocation(location) - .setMaxResults(Long.valueOf(maxResultPerPage)) - .setTimeoutMs(timeoutMs) - .execute(); + return getQueryResultsWithRowLimitSkipExceptionTranslation( + projectId, jobId, location, maxResultPerPage, timeoutMs); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public GetQueryResultsResponse getQueryResultsWithRowLimitSkipExceptionTranslation( + String projectId, String jobId, String location, Integer maxResultPerPage, Long timeoutMs) + throws IOException { + validateRPC(); + return bigquery + .jobs() + .getQueryResults(projectId, jobId) + .setPrettyPrint(false) + .setLocation(location) + .setMaxResults(Long.valueOf(maxResultPerPage)) + .setTimeoutMs(timeoutMs) + .execute(); + } + @Override public QueryResponse queryRpc(String projectId, QueryRequest content) { try { - validateRPC(); - return bigquery.jobs().query(projectId, content).execute(); + return queryRpcSkipExceptionTranslation(projectId, content); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public QueryResponse queryRpcSkipExceptionTranslation(String projectId, QueryRequest content) + throws IOException { + validateRPC(); + return bigquery.jobs().query(projectId, content).execute(); + } + @Override public String open(Job loadJob) { try { - String builder = options.getResolvedApiaryHost("bigquery"); - if (!builder.endsWith("/")) { - builder += "/"; - } - builder += BASE_RESUMABLE_URI + options.getProjectId() + "/jobs"; - GenericUrl url = new GenericUrl(builder); - url.set("uploadType", "resumable"); - JsonFactory jsonFactory = bigquery.getJsonFactory(); - HttpRequestFactory requestFactory = bigquery.getRequestFactory(); - HttpRequest httpRequest = - requestFactory.buildPostRequest(url, new JsonHttpContent(jsonFactory, loadJob)); - httpRequest.getHeaders().set("X-Upload-Content-Value", "application/octet-stream"); - HttpResponse response = httpRequest.execute(); - return response.getHeaders().getLocation(); + return openSkipExceptionTranslation(loadJob); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public String openSkipExceptionTranslation(Job loadJob) throws IOException { + String builder = options.getResolvedApiaryHost("bigquery"); + if (!builder.endsWith("/")) { + builder += "/"; + } + builder += BASE_RESUMABLE_URI + options.getProjectId() + "/jobs"; + GenericUrl url = new GenericUrl(builder); + url.set("uploadType", "resumable"); + JsonFactory jsonFactory = bigquery.getJsonFactory(); + HttpRequestFactory requestFactory = bigquery.getRequestFactory(); + HttpRequest httpRequest = + requestFactory.buildPostRequest(url, new JsonHttpContent(jsonFactory, loadJob)); + httpRequest.getHeaders().set("X-Upload-Content-Value", "application/octet-stream"); + HttpResponse response = httpRequest.execute(); + return response.getHeaders().getLocation(); + } + @Override public Job write( String uploadId, @@ -824,101 +1024,126 @@ public Job write( int length, boolean last) { try { - if (length == 0) { - return null; - } - GenericUrl url = new GenericUrl(uploadId); - HttpRequest httpRequest = - bigquery - .getRequestFactory() - .buildPutRequest(url, new ByteArrayContent(null, toWrite, toWriteOffset, length)); - httpRequest.setParser(bigquery.getObjectParser()); - long limit = destOffset + length; - StringBuilder range = new StringBuilder("bytes "); - range.append(destOffset).append('-').append(limit - 1).append('/'); - if (last) { - range.append(limit); - } else { - range.append('*'); - } - httpRequest.getHeaders().setContentRange(range.toString()); - int code; - String message; - IOException exception = null; - HttpResponse response = null; - try { - response = httpRequest.execute(); - code = response.getStatusCode(); - message = response.getStatusMessage(); - } catch (HttpResponseException ex) { - exception = ex; - code = ex.getStatusCode(); - message = ex.getStatusMessage(); - } - if (!last && code != HTTP_RESUME_INCOMPLETE - || last && !(code == HTTP_OK || code == HTTP_CREATED)) { - if (exception != null) { - throw exception; - } - throw new BigQueryException(code, message); - } - return last && response != null ? response.parseAs(Job.class) : null; + return writeSkipExceptionTranslation( + uploadId, toWrite, toWriteOffset, destOffset, length, last); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Job writeSkipExceptionTranslation( + String uploadId, byte[] toWrite, int toWriteOffset, long destOffset, int length, boolean last) + throws IOException { + if (length == 0) { + return null; + } + GenericUrl url = new GenericUrl(uploadId); + HttpRequest httpRequest = + bigquery + .getRequestFactory() + .buildPutRequest(url, new ByteArrayContent(null, toWrite, toWriteOffset, length)); + httpRequest.setParser(bigquery.getObjectParser()); + long limit = destOffset + length; + StringBuilder range = new StringBuilder("bytes "); + range.append(destOffset).append('-').append(limit - 1).append('/'); + if (last) { + range.append(limit); + } else { + range.append('*'); + } + httpRequest.getHeaders().setContentRange(range.toString()); + int code; + String message; + IOException exception = null; + HttpResponse response = null; + try { + response = httpRequest.execute(); + code = response.getStatusCode(); + message = response.getStatusMessage(); + } catch (HttpResponseException ex) { + exception = ex; + code = ex.getStatusCode(); + message = ex.getStatusMessage(); + } + if (!last && code != HTTP_RESUME_INCOMPLETE + || last && !(code == HTTP_OK || code == HTTP_CREATED)) { + if (exception != null) { + throw exception; + } + throw new BigQueryException(code, message); + } + return last && response != null ? response.parseAs(Job.class) : null; + } + @Override public Policy getIamPolicy(String resourceId, Map options) { try { - validateRPC(); - GetIamPolicyRequest policyRequest = new GetIamPolicyRequest(); - if (null != Option.REQUESTED_POLICY_VERSION.getLong(options)) { - policyRequest = - policyRequest.setOptions( - new GetPolicyOptions() - .setRequestedPolicyVersion( - Option.REQUESTED_POLICY_VERSION.getLong(options).intValue())); - } - return bigquery - .tables() - .getIamPolicy(resourceId, policyRequest) - .setPrettyPrint(false) - .execute(); + return getIamPolicySkipExceptionTranslation(resourceId, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Policy getIamPolicySkipExceptionTranslation(String resourceId, Map options) + throws IOException { + validateRPC(); + GetIamPolicyRequest policyRequest = new GetIamPolicyRequest(); + if (null != Option.REQUESTED_POLICY_VERSION.getLong(options)) { + policyRequest = + policyRequest.setOptions( + new GetPolicyOptions() + .setRequestedPolicyVersion( + Option.REQUESTED_POLICY_VERSION.getLong(options).intValue())); + } + return bigquery + .tables() + .getIamPolicy(resourceId, policyRequest) + .setPrettyPrint(false) + .execute(); + } + @Override public Policy setIamPolicy(String resourceId, Policy policy, Map options) { try { - validateRPC(); - SetIamPolicyRequest policyRequest = new SetIamPolicyRequest().setPolicy(policy); - return bigquery - .tables() - .setIamPolicy(resourceId, policyRequest) - .setPrettyPrint(false) - .execute(); + return setIamPolicySkipExceptionTranslation(resourceId, policy, options); } catch (IOException ex) { throw translate(ex); } } + @InternalApi("internal to java-bigquery") + public Policy setIamPolicySkipExceptionTranslation( + String resourceId, Policy policy, Map options) throws IOException { + validateRPC(); + SetIamPolicyRequest policyRequest = new SetIamPolicyRequest().setPolicy(policy); + return bigquery + .tables() + .setIamPolicy(resourceId, policyRequest) + .setPrettyPrint(false) + .execute(); + } + @Override public TestIamPermissionsResponse testIamPermissions( String resourceId, List permissions, Map options) { try { - validateRPC(); - TestIamPermissionsRequest permissionsRequest = - new TestIamPermissionsRequest().setPermissions(permissions); - return bigquery - .tables() - .testIamPermissions(resourceId, permissionsRequest) - .setPrettyPrint(false) - .execute(); + return testIamPermissionsSkipExceptionTranslation(resourceId, permissions, options); } catch (IOException ex) { throw translate(ex); } } + + public TestIamPermissionsResponse testIamPermissionsSkipExceptionTranslation( + String resourceId, List permissions, Map options) throws IOException { + validateRPC(); + TestIamPermissionsRequest permissionsRequest = + new TestIamPermissionsRequest().setPermissions(permissions); + return bigquery + .tables() + .testIamPermissions(resourceId, permissionsRequest) + .setPrettyPrint(false) + .execute(); + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index c13d272d2e00..1fa748199267 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -36,11 +36,14 @@ import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; import com.google.cloud.bigquery.spi.BigQueryRpcFactory; import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import com.google.common.base.Function; import com.google.common.base.Supplier; import com.google.common.collect.*; import java.io.IOException; import java.math.BigInteger; +import java.net.ConnectException; +import java.net.UnknownHostException; import java.util.Collections; import java.util.List; import java.util.Map; @@ -50,6 +53,7 @@ import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; +import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) @@ -497,7 +501,7 @@ public class BigQueryImplTest { .build(); private BigQueryOptions options; private BigQueryRpcFactory rpcFactoryMock; - private BigQueryRpc bigqueryRpcMock; + private HttpBigQueryRpc bigqueryRpcMock; private BigQuery bigquery; private static final String RATE_LIMIT_ERROR_MSG = "Job exceeded rate limits: Your table exceeded quota for table update operations. For more information, see https://cloud.google.com/bigquery/docs/troubleshoot-quotas"; @@ -533,7 +537,7 @@ private BigQueryOptions createBigQueryOptionsForProjectWithLocation( @Before public void setUp() { rpcFactoryMock = mock(BigQueryRpcFactory.class); - bigqueryRpcMock = mock(BigQueryRpc.class); + bigqueryRpcMock = mock(HttpBigQueryRpc.class); when(rpcFactoryMock.create(any(BigQueryOptions.class))).thenReturn(bigqueryRpcMock); options = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); } @@ -545,21 +549,22 @@ public void testGetOptions() { } @Test - public void testCreateDataset() { + public void testCreateDataset() throws IOException { DatasetInfo datasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT); - when(bigqueryRpcMock.create(datasetInfo.toPb(), EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.createSkipExceptionTranslation(datasetInfo.toPb(), EMPTY_RPC_OPTIONS)) .thenReturn(datasetInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Dataset dataset = bigquery.create(datasetInfo); assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(datasetInfo)), dataset); - verify(bigqueryRpcMock).create(datasetInfo.toPb(), EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).createSkipExceptionTranslation(datasetInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test - public void testCreateDatasetWithSelectedFields() { - when(bigqueryRpcMock.create(eq(DATASET_INFO_WITH_PROJECT.toPb()), capturedOptions.capture())) + public void testCreateDatasetWithSelectedFields() throws IOException { + when(bigqueryRpcMock.createSkipExceptionTranslation( + eq(DATASET_INFO_WITH_PROJECT.toPb()), capturedOptions.capture())) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.create(DATASET_INFO, DATASET_OPTION_FIELDS); @@ -570,50 +575,54 @@ public void testCreateDatasetWithSelectedFields() { assertEquals(28, selector.length()); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); - verify(bigqueryRpcMock).create(eq(DATASET_INFO_WITH_PROJECT.toPb()), capturedOptions.capture()); + verify(bigqueryRpcMock) + .createSkipExceptionTranslation( + eq(DATASET_INFO_WITH_PROJECT.toPb()), capturedOptions.capture()); } @Test - public void testCreateDatasetWithAccessPolicy() { + public void testCreateDatasetWithAccessPolicy() throws IOException { DatasetInfo datasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT); DatasetOption datasetOption = DatasetOption.accessPolicyVersion(3); - when(bigqueryRpcMock.create(datasetInfo.toPb(), optionMap(datasetOption))) + when(bigqueryRpcMock.createSkipExceptionTranslation( + datasetInfo.toPb(), optionMap(datasetOption))) .thenReturn(datasetInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Dataset dataset = bigquery.create(datasetInfo, datasetOption); assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(datasetInfo)), dataset); - verify(bigqueryRpcMock).create(datasetInfo.toPb(), optionMap(datasetOption)); + verify(bigqueryRpcMock) + .createSkipExceptionTranslation(datasetInfo.toPb(), optionMap(datasetOption)); } @Test - public void testGetDataset() { - when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + public void testGetDataset() throws IOException { + when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(DATASET); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); - verify(bigqueryRpcMock).getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testGetDatasetNotFoundWhenThrowIsDisabled() { - when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + public void testGetDatasetNotFoundWhenThrowIsDisabled() throws IOException { + when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); options.setThrowNotFound(false); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(DATASET); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); - verify(bigqueryRpcMock).getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testGetDatasetNotFoundWhenThrowIsEnabled() { - when(bigqueryRpcMock.getDataset(PROJECT, "dataset-not-found", EMPTY_RPC_OPTIONS)) - .thenReturn(null) + public void testGetDatasetNotFoundWhenThrowIsEnabled() throws IOException { + when(bigqueryRpcMock.getDatasetSkipExceptionTranslation( + PROJECT, "dataset-not-found", EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(404, "Dataset not found")); options.setThrowNotFound(true); bigquery = options.getService(); @@ -623,35 +632,39 @@ public void testGetDatasetNotFoundWhenThrowIsEnabled() { } catch (BigQueryException ex) { Assert.assertNotNull(ex.getMessage()); } - verify(bigqueryRpcMock).getDataset(PROJECT, "dataset-not-found", EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getDatasetSkipExceptionTranslation(PROJECT, "dataset-not-found", EMPTY_RPC_OPTIONS); } @Test - public void testGetDatasetFromDatasetId() { - when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + public void testGetDatasetFromDatasetId() throws IOException { + when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(DatasetId.of(DATASET)); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); - verify(bigqueryRpcMock).getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testGetDatasetFromDatasetIdWithProject() { + public void testGetDatasetFromDatasetIdWithProject() throws IOException { DatasetInfo datasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT); DatasetId datasetId = DatasetId.of(OTHER_PROJECT, DATASET); - when(bigqueryRpcMock.getDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.getDatasetSkipExceptionTranslation( + OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenReturn(datasetInfo.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(datasetId); assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(datasetInfo)), dataset); - verify(bigqueryRpcMock).getDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getDatasetSkipExceptionTranslation(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testGetDatasetWithSelectedFields() { - when(bigqueryRpcMock.getDataset(eq(PROJECT), eq(DATASET), capturedOptions.capture())) + public void testGetDatasetWithSelectedFields() throws IOException { + when(bigqueryRpcMock.getDatasetSkipExceptionTranslation( + eq(PROJECT), eq(DATASET), capturedOptions.capture())) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.getDataset(DATASET, DATASET_OPTION_FIELDS); @@ -662,11 +675,12 @@ public void testGetDatasetWithSelectedFields() { assertEquals(28, selector.length()); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); - verify(bigqueryRpcMock).getDataset(eq(PROJECT), eq(DATASET), capturedOptions.capture()); + verify(bigqueryRpcMock) + .getDatasetSkipExceptionTranslation(eq(PROJECT), eq(DATASET), capturedOptions.capture()); } @Test - public void testListDatasets() { + public void testListDatasets() throws IOException { bigquery = options.getService(); ImmutableList datasetList = ImmutableList.of( @@ -674,16 +688,17 @@ public void testListDatasets() { new Dataset(bigquery, new DatasetInfo.BuilderImpl(OTHER_DATASET_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(datasetList, DatasetInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listDatasets(PROJECT, EMPTY_RPC_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listDatasetsSkipExceptionTranslation(PROJECT, EMPTY_RPC_OPTIONS)) + .thenReturn(result); Page page = bigquery.listDatasets(); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals( datasetList.toArray(), Iterables.toArray(page.getValues(), DatasetInfo.class)); - verify(bigqueryRpcMock).listDatasets(PROJECT, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).listDatasetsSkipExceptionTranslation(PROJECT, EMPTY_RPC_OPTIONS); } @Test - public void testListDatasetsWithProjects() { + public void testListDatasetsWithProjects() throws IOException { bigquery = options.getService(); ImmutableList datasetList = ImmutableList.of( @@ -691,30 +706,32 @@ public void testListDatasetsWithProjects() { bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO.setProjectId(OTHER_PROJECT)))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(datasetList, DatasetInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listDatasets(OTHER_PROJECT, EMPTY_RPC_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listDatasetsSkipExceptionTranslation(OTHER_PROJECT, EMPTY_RPC_OPTIONS)) + .thenReturn(result); Page page = bigquery.listDatasets(OTHER_PROJECT); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals( datasetList.toArray(), Iterables.toArray(page.getValues(), DatasetInfo.class)); - verify(bigqueryRpcMock).listDatasets(OTHER_PROJECT, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).listDatasetsSkipExceptionTranslation(OTHER_PROJECT, EMPTY_RPC_OPTIONS); } @Test - public void testListEmptyDatasets() { + public void testListEmptyDatasets() throws IOException { ImmutableList datasets = ImmutableList.of(); Tuple> result = Tuple.>of(null, datasets); - when(bigqueryRpcMock.listDatasets(PROJECT, EMPTY_RPC_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listDatasetsSkipExceptionTranslation(PROJECT, EMPTY_RPC_OPTIONS)) + .thenReturn(result); bigquery = options.getService(); Page page = bigquery.listDatasets(); assertNull(page.getNextPageToken()); assertArrayEquals( ImmutableList.of().toArray(), Iterables.toArray(page.getValues(), Dataset.class)); - verify(bigqueryRpcMock).listDatasets(PROJECT, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).listDatasetsSkipExceptionTranslation(PROJECT, EMPTY_RPC_OPTIONS); } @Test - public void testListDatasetsWithOptions() { + public void testListDatasetsWithOptions() throws IOException { bigquery = options.getService(); ImmutableList datasetList = ImmutableList.of( @@ -722,71 +739,85 @@ public void testListDatasetsWithOptions() { new Dataset(bigquery, new DatasetInfo.BuilderImpl(OTHER_DATASET_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(datasetList, DatasetInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listDatasets(PROJECT, DATASET_LIST_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listDatasetsSkipExceptionTranslation(PROJECT, DATASET_LIST_OPTIONS)) + .thenReturn(result); Page page = bigquery.listDatasets(DATASET_LIST_ALL, DATASET_LIST_PAGE_TOKEN, DATASET_LIST_PAGE_SIZE); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals( datasetList.toArray(), Iterables.toArray(page.getValues(), DatasetInfo.class)); - verify(bigqueryRpcMock).listDatasets(PROJECT, DATASET_LIST_OPTIONS); + verify(bigqueryRpcMock).listDatasetsSkipExceptionTranslation(PROJECT, DATASET_LIST_OPTIONS); } @Test - public void testDeleteDataset() { - when(bigqueryRpcMock.deleteDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(true); + public void testDeleteDataset() throws IOException { + when(bigqueryRpcMock.deleteDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(DATASET)); - verify(bigqueryRpcMock).deleteDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .deleteDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testDeleteDatasetFromDatasetId() { - when(bigqueryRpcMock.deleteDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(true); + public void testDeleteDatasetFromDatasetId() throws IOException { + when(bigqueryRpcMock.deleteDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(DatasetId.of(DATASET))); - verify(bigqueryRpcMock).deleteDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .deleteDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testDeleteDatasetFromDatasetIdWithProject() { + public void testDeleteDatasetFromDatasetIdWithProject() throws IOException { DatasetId datasetId = DatasetId.of(OTHER_PROJECT, DATASET); - when(bigqueryRpcMock.deleteDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(true); + when(bigqueryRpcMock.deleteDatasetSkipExceptionTranslation( + OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(datasetId)); - verify(bigqueryRpcMock).deleteDataset(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .deleteDatasetSkipExceptionTranslation(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testDeleteDatasetWithOptions() { - when(bigqueryRpcMock.deleteDataset(PROJECT, DATASET, DATASET_DELETE_OPTIONS)).thenReturn(true); + public void testDeleteDatasetWithOptions() throws IOException { + when(bigqueryRpcMock.deleteDatasetSkipExceptionTranslation( + PROJECT, DATASET, DATASET_DELETE_OPTIONS)) + .thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(DATASET, DATASET_DELETE_CONTENTS)); - verify(bigqueryRpcMock).deleteDataset(PROJECT, DATASET, DATASET_DELETE_OPTIONS); + verify(bigqueryRpcMock) + .deleteDatasetSkipExceptionTranslation(PROJECT, DATASET, DATASET_DELETE_OPTIONS); } @Test - public void testUpdateDataset() { + public void testUpdateDataset() throws IOException { DatasetInfo updatedDatasetInfo = DATASET_INFO .setProjectId(OTHER_PROJECT) .toBuilder() .setDescription("newDescription") .build(); - when(bigqueryRpcMock.patch(updatedDatasetInfo.toPb(), EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.patchSkipExceptionTranslation( + updatedDatasetInfo.toPb(), EMPTY_RPC_OPTIONS)) .thenReturn(updatedDatasetInfo.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.update(updatedDatasetInfo); assertEquals(new Dataset(bigquery, new DatasetInfo.BuilderImpl(updatedDatasetInfo)), dataset); - verify(bigqueryRpcMock).patch(updatedDatasetInfo.toPb(), EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .patchSkipExceptionTranslation(updatedDatasetInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test - public void testUpdateDatasetWithSelectedFields() { + public void testUpdateDatasetWithSelectedFields() throws IOException { DatasetInfo updatedDatasetInfo = DATASET_INFO.toBuilder().setDescription("newDescription").build(); DatasetInfo updatedDatasetInfoWithProject = DATASET_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); - when(bigqueryRpcMock.patch(eq(updatedDatasetInfoWithProject.toPb()), capturedOptions.capture())) + when(bigqueryRpcMock.patchSkipExceptionTranslation( + eq(updatedDatasetInfoWithProject.toPb()), capturedOptions.capture())) .thenReturn(updatedDatasetInfoWithProject.toPb()); bigquery = options.getService(); Dataset dataset = bigquery.update(updatedDatasetInfo, DATASET_OPTION_FIELDS); @@ -798,23 +829,25 @@ public void testUpdateDatasetWithSelectedFields() { assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(updatedDatasetInfoWithProject)), dataset); verify(bigqueryRpcMock) - .patch(eq(updatedDatasetInfoWithProject.toPb()), capturedOptions.capture()); + .patchSkipExceptionTranslation( + eq(updatedDatasetInfoWithProject.toPb()), capturedOptions.capture()); } @Test - public void testCreateTable() { + public void testCreateTable() throws IOException { TableInfo tableInfo = TABLE_INFO.setProjectId(OTHER_PROJECT); - when(bigqueryRpcMock.create(tableInfo.toPb(), EMPTY_RPC_OPTIONS)).thenReturn(tableInfo.toPb()); + when(bigqueryRpcMock.createSkipExceptionTranslation(tableInfo.toPb(), EMPTY_RPC_OPTIONS)) + .thenReturn(tableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.create(tableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); - verify(bigqueryRpcMock).create(tableInfo.toPb(), EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).createSkipExceptionTranslation(tableInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test - public void tesCreateExternalTable() { + public void tesCreateExternalTable() throws IOException { TableInfo createTableInfo = TableInfo.of(TABLE_ID, ExternalTableDefinition.newBuilder().setSchema(TABLE_SCHEMA).build()) .setProjectId(OTHER_PROJECT); @@ -822,32 +855,34 @@ public void tesCreateExternalTable() { com.google.api.services.bigquery.model.Table expectedCreateInput = createTableInfo.toPb().setSchema(TABLE_SCHEMA.toPb()); expectedCreateInput.getExternalDataConfiguration().setSchema(null); - when(bigqueryRpcMock.create(expectedCreateInput, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.createSkipExceptionTranslation(expectedCreateInput, EMPTY_RPC_OPTIONS)) .thenReturn(createTableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.create(createTableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(createTableInfo)), table); - verify(bigqueryRpcMock).create(expectedCreateInput, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).createSkipExceptionTranslation(expectedCreateInput, EMPTY_RPC_OPTIONS); } @Test - public void testCreateTableWithoutProject() { + public void testCreateTableWithoutProject() throws IOException { TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); tableInfo.toBuilder().setTableId(tableId); - when(bigqueryRpcMock.create(tableInfo.toPb(), EMPTY_RPC_OPTIONS)).thenReturn(tableInfo.toPb()); + when(bigqueryRpcMock.createSkipExceptionTranslation(tableInfo.toPb(), EMPTY_RPC_OPTIONS)) + .thenReturn(tableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.create(tableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); - verify(bigqueryRpcMock).create(tableInfo.toPb(), EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).createSkipExceptionTranslation(tableInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test - public void testCreateTableWithSelectedFields() { - when(bigqueryRpcMock.create(eq(TABLE_INFO_WITH_PROJECT.toPb()), capturedOptions.capture())) + public void testCreateTableWithSelectedFields() throws IOException { + when(bigqueryRpcMock.createSkipExceptionTranslation( + eq(TABLE_INFO_WITH_PROJECT.toPb()), capturedOptions.capture())) .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Table table = bigquery.create(TABLE_INFO, TABLE_OPTION_FIELDS); @@ -857,34 +892,40 @@ public void testCreateTableWithSelectedFields() { assertTrue(selector.contains("etag")); assertEquals(31, selector.length()); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); - verify(bigqueryRpcMock).create(eq(TABLE_INFO_WITH_PROJECT.toPb()), capturedOptions.capture()); + verify(bigqueryRpcMock) + .createSkipExceptionTranslation( + eq(TABLE_INFO_WITH_PROJECT.toPb()), capturedOptions.capture()); } @Test - public void testGetTable() { - when(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + public void testGetTable() throws IOException { + when(bigqueryRpcMock.getTableSkipExceptionTranslation( + PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Table table = bigquery.getTable(DATASET, TABLE); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); - verify(bigqueryRpcMock).getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getTableSkipExceptionTranslation(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test - public void testGetModel() { - when(bigqueryRpcMock.getModel(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS)) + public void testGetModel() throws IOException { + when(bigqueryRpcMock.getModelSkipExceptionTranslation( + PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS)) .thenReturn(MODEL_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Model model = bigquery.getModel(DATASET, MODEL); assertEquals(new Model(bigquery, new ModelInfo.BuilderImpl(MODEL_INFO_WITH_PROJECT)), model); - verify(bigqueryRpcMock).getModel(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getModelSkipExceptionTranslation(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS); } @Test - public void testGetModelNotFoundWhenThrowIsEnabled() { + public void testGetModelNotFoundWhenThrowIsEnabled() throws IOException { String expected = "Model not found"; - when(bigqueryRpcMock.getModel(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS)) - .thenReturn(null) + when(bigqueryRpcMock.getModelSkipExceptionTranslation( + PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(404, expected)); options.setThrowNotFound(true); bigquery = options.getService(); @@ -893,39 +934,45 @@ public void testGetModelNotFoundWhenThrowIsEnabled() { } catch (BigQueryException ex) { assertEquals(expected, ex.getMessage()); } - verify(bigqueryRpcMock).getModel(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getModelSkipExceptionTranslation(PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS); } @Test - public void testListPartition() { - when(bigqueryRpcMock.getTable( + public void testListPartition() throws IOException { + when(bigqueryRpcMock.getTableSkipExceptionTranslation( PROJECT, DATASET, "table$__PARTITIONS_SUMMARY__", EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_INFO_PARTITIONS.toPb()); - when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( + PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_DATA_WITH_PARTITIONS); bigquery = options.getService(); List partition = bigquery.listPartitions(TABLE_ID_WITH_PROJECT); assertEquals(3, partition.size()); verify(bigqueryRpcMock) - .getTable(PROJECT, DATASET, "table$__PARTITIONS_SUMMARY__", EMPTY_RPC_OPTIONS); - verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); + .getTableSkipExceptionTranslation( + PROJECT, DATASET, "table$__PARTITIONS_SUMMARY__", EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .listTableDataSkipExceptionTranslation(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test - public void testGetTableNotFoundWhenThrowIsDisabled() { - when(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + public void testGetTableNotFoundWhenThrowIsDisabled() throws IOException { + when(bigqueryRpcMock.getTableSkipExceptionTranslation( + PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); options.setThrowNotFound(false); bigquery = options.getService(); Table table = bigquery.getTable(DATASET, TABLE); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); - verify(bigqueryRpcMock).getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getTableSkipExceptionTranslation(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test - public void testGetTableNotFoundWhenThrowIsEnabled() { - when(bigqueryRpcMock.getTable(PROJECT, DATASET, "table-not-found", EMPTY_RPC_OPTIONS)) - .thenReturn(null) + public void testGetTableNotFoundWhenThrowIsEnabled() throws IOException { + when(bigqueryRpcMock.getTableSkipExceptionTranslation( + PROJECT, DATASET, "table-not-found", EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(404, "Table not found")); options.setThrowNotFound(true); bigquery = options.getService(); @@ -935,49 +982,57 @@ public void testGetTableNotFoundWhenThrowIsEnabled() { } catch (BigQueryException ex) { Assert.assertNotNull(ex.getMessage()); } - verify(bigqueryRpcMock).getTable(PROJECT, DATASET, "table-not-found", EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getTableSkipExceptionTranslation(PROJECT, DATASET, "table-not-found", EMPTY_RPC_OPTIONS); } @Test - public void testGetTableFromTableId() { - when(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + public void testGetTableFromTableId() throws IOException { + when(bigqueryRpcMock.getTableSkipExceptionTranslation( + PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Table table = bigquery.getTable(TABLE_ID); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); - verify(bigqueryRpcMock).getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getTableSkipExceptionTranslation(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test - public void testGetTableFromTableIdWithProject() { + public void testGetTableFromTableIdWithProject() throws IOException { TableInfo tableInfo = TABLE_INFO.setProjectId(OTHER_PROJECT); TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); - when(bigqueryRpcMock.getTable(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.getTableSkipExceptionTranslation( + OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(tableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.getTable(tableId); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); - verify(bigqueryRpcMock).getTable(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getTableSkipExceptionTranslation(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test - public void testGetTableFromTableIdWithoutProject() { + public void testGetTableFromTableIdWithoutProject() throws IOException { TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); - when(bigqueryRpcMock.getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.getTableSkipExceptionTranslation( + PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(tableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.getTable(tableId); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); - verify(bigqueryRpcMock).getTable(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getTableSkipExceptionTranslation(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test - public void testGetTableWithSelectedFields() { - when(bigqueryRpcMock.getTable(eq(PROJECT), eq(DATASET), eq(TABLE), capturedOptions.capture())) + public void testGetTableWithSelectedFields() throws IOException { + when(bigqueryRpcMock.getTableSkipExceptionTranslation( + eq(PROJECT), eq(DATASET), eq(TABLE), capturedOptions.capture())) .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); Table table = bigquery.getTable(TABLE_ID, TABLE_OPTION_FIELDS); @@ -988,11 +1043,12 @@ public void testGetTableWithSelectedFields() { assertEquals(31, selector.length()); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PROJECT)), table); verify(bigqueryRpcMock) - .getTable(eq(PROJECT), eq(DATASET), eq(TABLE), capturedOptions.capture()); + .getTableSkipExceptionTranslation( + eq(PROJECT), eq(DATASET), eq(TABLE), capturedOptions.capture()); } @Test - public void testListTables() { + public void testListTables() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( @@ -1001,60 +1057,67 @@ public void testListTables() { new Table(bigquery, new TableInfo.BuilderImpl(MODEL_TABLE_INFO_WITH_PROJECT))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listTablesSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(result); Page
    page = bigquery.listTables(DATASET); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); - verify(bigqueryRpcMock).listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).listTablesSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testListTablesReturnedParameters() { + public void testListTablesReturnedParameters() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PARTITIONS))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listTablesSkipExceptionTranslation(PROJECT, DATASET, TABLE_LIST_OPTIONS)) + .thenReturn(result); Page
    page = bigquery.listTables(DATASET, TABLE_LIST_PAGE_SIZE, TABLE_LIST_PAGE_TOKEN); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); - verify(bigqueryRpcMock).listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS); + verify(bigqueryRpcMock) + .listTablesSkipExceptionTranslation(PROJECT, DATASET, TABLE_LIST_OPTIONS); } @Test - public void testListTablesReturnedParametersNullType() { + public void testListTablesReturnedParametersNullType() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_WITH_PARTITIONS_NULL_TYPE))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listTablesSkipExceptionTranslation(PROJECT, DATASET, TABLE_LIST_OPTIONS)) + .thenReturn(result); Page
    page = bigquery.listTables(DATASET, TABLE_LIST_PAGE_SIZE, TABLE_LIST_PAGE_TOKEN); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); - verify(bigqueryRpcMock).listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS); + verify(bigqueryRpcMock) + .listTablesSkipExceptionTranslation(PROJECT, DATASET, TABLE_LIST_OPTIONS); } @Test - public void testListTablesWithRangePartitioning() { + public void testListTablesWithRangePartitioning() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO_RANGE_PARTITIONING))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listTablesSkipExceptionTranslation(PROJECT, DATASET, TABLE_LIST_OPTIONS)) + .thenReturn(result); Page
    page = bigquery.listTables(DATASET, TABLE_LIST_PAGE_SIZE, TABLE_LIST_PAGE_TOKEN); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); - verify(bigqueryRpcMock).listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS); + verify(bigqueryRpcMock) + .listTablesSkipExceptionTranslation(PROJECT, DATASET, TABLE_LIST_OPTIONS); } @Test - public void testListTablesFromDatasetId() { + public void testListTablesFromDatasetId() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( @@ -1062,30 +1125,34 @@ public void testListTablesFromDatasetId() { new Table(bigquery, new TableInfo.BuilderImpl(OTHER_TABLE_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listTablesSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(result); Page
    page = bigquery.listTables(DatasetId.of(DATASET)); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); - verify(bigqueryRpcMock).listTables(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).listTablesSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testListTablesFromDatasetIdWithProject() { + public void testListTablesFromDatasetIdWithProject() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO.setProjectId(OTHER_PROJECT)))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listTables(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listTablesSkipExceptionTranslation( + OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(result); Page
    page = bigquery.listTables(DatasetId.of(OTHER_PROJECT, DATASET)); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); - verify(bigqueryRpcMock).listTables(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .listTablesSkipExceptionTranslation(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testListTablesWithOptions() { + public void testListTablesWithOptions() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( @@ -1093,15 +1160,17 @@ public void testListTablesWithOptions() { new Table(bigquery, new TableInfo.BuilderImpl(OTHER_TABLE_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listTablesSkipExceptionTranslation(PROJECT, DATASET, TABLE_LIST_OPTIONS)) + .thenReturn(result); Page
    page = bigquery.listTables(DATASET, TABLE_LIST_PAGE_SIZE, TABLE_LIST_PAGE_TOKEN); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); - verify(bigqueryRpcMock).listTables(PROJECT, DATASET, TABLE_LIST_OPTIONS); + verify(bigqueryRpcMock) + .listTablesSkipExceptionTranslation(PROJECT, DATASET, TABLE_LIST_OPTIONS); } @Test - public void testListModels() { + public void testListModels() throws IOException { bigquery = options.getService(); ImmutableList modelList = ImmutableList.of( @@ -1109,15 +1178,16 @@ public void testListModels() { new Model(bigquery, new ModelInfo.BuilderImpl(OTHER_MODEL_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(modelList, ModelInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listModels(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listModelsSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(result); Page page = bigquery.listModels(DATASET); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(modelList.toArray(), Iterables.toArray(page.getValues(), Model.class)); - verify(bigqueryRpcMock).listModels(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).listModelsSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testListModelsWithModelId() { + public void testListModelsWithModelId() throws IOException { bigquery = options.getService(); ImmutableList modelList = ImmutableList.of( @@ -1125,92 +1195,100 @@ public void testListModelsWithModelId() { new Model(bigquery, new ModelInfo.BuilderImpl(OTHER_MODEL_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(modelList, ModelInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listModels(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listModelsSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(result); Page page = bigquery.listModels(DatasetId.of(DATASET)); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(modelList.toArray(), Iterables.toArray(page.getValues(), Model.class)); - verify(bigqueryRpcMock).listModels(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).listModelsSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testDeleteTable() { - when(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).thenReturn(true); + public void testDeleteTable() throws IOException { + when(bigqueryRpcMock.deleteTableSkipExceptionTranslation(PROJECT, DATASET, TABLE)) + .thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(TABLE_ID)); - verify(bigqueryRpcMock).deleteTable(PROJECT, DATASET, TABLE); + verify(bigqueryRpcMock).deleteTableSkipExceptionTranslation(PROJECT, DATASET, TABLE); } @Test - public void testDeleteTableFromTableId() { - when(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).thenReturn(true); + public void testDeleteTableFromTableId() throws IOException { + when(bigqueryRpcMock.deleteTableSkipExceptionTranslation(PROJECT, DATASET, TABLE)) + .thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(TABLE_ID)); - verify(bigqueryRpcMock).deleteTable(PROJECT, DATASET, TABLE); + verify(bigqueryRpcMock).deleteTableSkipExceptionTranslation(PROJECT, DATASET, TABLE); } @Test - public void testDeleteTableFromTableIdWithProject() { + public void testDeleteTableFromTableIdWithProject() throws IOException { TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); - when(bigqueryRpcMock.deleteTable(OTHER_PROJECT, DATASET, TABLE)).thenReturn(true); + when(bigqueryRpcMock.deleteTableSkipExceptionTranslation(OTHER_PROJECT, DATASET, TABLE)) + .thenReturn(true); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); assertTrue(bigquery.delete(tableId)); - verify(bigqueryRpcMock).deleteTable(OTHER_PROJECT, DATASET, TABLE); + verify(bigqueryRpcMock).deleteTableSkipExceptionTranslation(OTHER_PROJECT, DATASET, TABLE); } @Test - public void testDeleteTableFromTableIdWithoutProject() { + public void testDeleteTableFromTableIdWithoutProject() throws IOException { TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); - when(bigqueryRpcMock.deleteTable(PROJECT, DATASET, TABLE)).thenReturn(true); + when(bigqueryRpcMock.deleteTableSkipExceptionTranslation(PROJECT, DATASET, TABLE)) + .thenReturn(true); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); assertTrue(bigquery.delete(tableId)); - verify(bigqueryRpcMock).deleteTable(PROJECT, DATASET, TABLE); + verify(bigqueryRpcMock).deleteTableSkipExceptionTranslation(PROJECT, DATASET, TABLE); } @Test - public void testDeleteModel() { - when(bigqueryRpcMock.deleteModel(PROJECT, DATASET, MODEL)).thenReturn(true); + public void testDeleteModel() throws IOException { + when(bigqueryRpcMock.deleteModelSkipExceptionTranslation(PROJECT, DATASET, MODEL)) + .thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(ModelId.of(DATASET, MODEL))); - verify(bigqueryRpcMock).deleteModel(PROJECT, DATASET, MODEL); + verify(bigqueryRpcMock).deleteModelSkipExceptionTranslation(PROJECT, DATASET, MODEL); } @Test - public void testUpdateModel() { + public void testUpdateModel() throws IOException { ModelInfo updateModelInfo = MODEL_INFO_WITH_PROJECT .setProjectId(OTHER_PROJECT) .toBuilder() .setDescription("newDescription") .build(); - when(bigqueryRpcMock.patch(updateModelInfo.toPb(), EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.patchSkipExceptionTranslation(updateModelInfo.toPb(), EMPTY_RPC_OPTIONS)) .thenReturn(updateModelInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Model actualModel = bigquery.update(updateModelInfo); assertEquals(new Model(bigquery, new ModelInfo.BuilderImpl(updateModelInfo)), actualModel); - verify(bigqueryRpcMock).patch(updateModelInfo.toPb(), EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .patchSkipExceptionTranslation(updateModelInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test - public void testUpdateTable() { + public void testUpdateTable() throws IOException { TableInfo updatedTableInfo = TABLE_INFO.setProjectId(OTHER_PROJECT).toBuilder().setDescription("newDescription").build(); - when(bigqueryRpcMock.patch(updatedTableInfo.toPb(), EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.patchSkipExceptionTranslation(updatedTableInfo.toPb(), EMPTY_RPC_OPTIONS)) .thenReturn(updatedTableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.update(updatedTableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfo)), table); - verify(bigqueryRpcMock).patch(updatedTableInfo.toPb(), EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .patchSkipExceptionTranslation(updatedTableInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test - public void testUpdateExternalTableWithNewSchema() { + public void testUpdateExternalTableWithNewSchema() throws IOException { TableInfo updatedTableInfo = TableInfo.of(TABLE_ID, ExternalTableDefinition.newBuilder().setSchema(TABLE_SCHEMA).build()) .setProjectId(OTHER_PROJECT); @@ -1218,35 +1296,37 @@ public void testUpdateExternalTableWithNewSchema() { com.google.api.services.bigquery.model.Table expectedPatchInput = updatedTableInfo.toPb().setSchema(TABLE_SCHEMA.toPb()); expectedPatchInput.getExternalDataConfiguration().setSchema(null); - when(bigqueryRpcMock.patch(expectedPatchInput, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.patchSkipExceptionTranslation(expectedPatchInput, EMPTY_RPC_OPTIONS)) .thenReturn(updatedTableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.update(updatedTableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfo)), table); - verify(bigqueryRpcMock).patch(expectedPatchInput, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).patchSkipExceptionTranslation(expectedPatchInput, EMPTY_RPC_OPTIONS); } @Test - public void testUpdateTableWithoutProject() { + public void testUpdateTableWithoutProject() throws IOException { TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); tableInfo.toBuilder().setTableId(tableId); - when(bigqueryRpcMock.patch(tableInfo.toPb(), EMPTY_RPC_OPTIONS)).thenReturn(tableInfo.toPb()); + when(bigqueryRpcMock.patchSkipExceptionTranslation(tableInfo.toPb(), EMPTY_RPC_OPTIONS)) + .thenReturn(tableInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Table table = bigquery.update(tableInfo); assertEquals(new Table(bigquery, new TableInfo.BuilderImpl(tableInfo)), table); - verify(bigqueryRpcMock).patch(tableInfo.toPb(), EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).patchSkipExceptionTranslation(tableInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test - public void testUpdateTableWithSelectedFields() { + public void testUpdateTableWithSelectedFields() throws IOException { TableInfo updatedTableInfo = TABLE_INFO.toBuilder().setDescription("newDescription").build(); TableInfo updatedTableInfoWithProject = TABLE_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); - when(bigqueryRpcMock.patch(eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture())) + when(bigqueryRpcMock.patchSkipExceptionTranslation( + eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture())) .thenReturn(updatedTableInfoWithProject.toPb()); bigquery = options.getService(); Table table = bigquery.update(updatedTableInfo, TABLE_OPTION_FIELDS); @@ -1258,15 +1338,17 @@ public void testUpdateTableWithSelectedFields() { assertEquals( new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfoWithProject)), table); verify(bigqueryRpcMock) - .patch(eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture()); + .patchSkipExceptionTranslation( + eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture()); } @Test - public void testUpdateTableWithAutoDetectSchema() { + public void testUpdateTableWithAutoDetectSchema() throws IOException { TableInfo updatedTableInfo = TABLE_INFO.toBuilder().setDescription("newDescription").build(); TableInfo updatedTableInfoWithProject = TABLE_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); - when(bigqueryRpcMock.patch(eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture())) + when(bigqueryRpcMock.patchSkipExceptionTranslation( + eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture())) .thenReturn(updatedTableInfoWithProject.toPb()); bigquery = options.getService(); Table table = bigquery.update(updatedTableInfo, BigQuery.TableOption.autodetectSchema(true)); @@ -1276,11 +1358,12 @@ public void testUpdateTableWithAutoDetectSchema() { assertEquals( new Table(bigquery, new TableInfo.BuilderImpl(updatedTableInfoWithProject)), table); verify(bigqueryRpcMock) - .patch(eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture()); + .patchSkipExceptionTranslation( + eq(updatedTableInfoWithProject.toPb()), capturedOptions.capture()); } @Test - public void testInsertAllWithRowIdShouldRetry() { + public void testInsertAllWithRowIdShouldRetry() throws IOException { Map row1 = ImmutableMap.of("field", "value1"); Map row2 = ImmutableMap.of("field", "value2"); List rows = @@ -1315,7 +1398,7 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { new TableDataInsertAllResponse.InsertErrors() .setIndex(0L) .setErrors(ImmutableList.of(new ErrorProto().setMessage("ErrorMessage"))))); - when(bigqueryRpcMock.insertAll(PROJECT, DATASET, TABLE, requestPb)) + when(bigqueryRpcMock.insertAllSkipExceptionTranslation(PROJECT, DATASET, TABLE, requestPb)) .thenThrow(new BigQueryException(500, "InternalError")) .thenReturn(responsePb); bigquery = @@ -1329,7 +1412,8 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { assertNull(response.getErrorsFor(1L)); assertEquals(1, response.getErrorsFor(0L).size()); assertEquals("ErrorMessage", response.getErrorsFor(0L).get(0).getMessage()); - verify(bigqueryRpcMock, times(2)).insertAll(PROJECT, DATASET, TABLE, requestPb); + verify(bigqueryRpcMock, times(2)) + .insertAllSkipExceptionTranslation(PROJECT, DATASET, TABLE, requestPb); } @Test @@ -1378,7 +1462,7 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { } @Test - public void testInsertAllWithProject() { + public void testInsertAllWithProject() throws IOException { Map row1 = ImmutableMap.of("field", "value1"); Map row2 = ImmutableMap.of("field", "value2"); List rows = @@ -1414,7 +1498,8 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { new TableDataInsertAllResponse.InsertErrors() .setIndex(0L) .setErrors(ImmutableList.of(new ErrorProto().setMessage("ErrorMessage"))))); - when(bigqueryRpcMock.insertAll(OTHER_PROJECT, DATASET, TABLE, requestPb)) + when(bigqueryRpcMock.insertAllSkipExceptionTranslation( + OTHER_PROJECT, DATASET, TABLE, requestPb)) .thenReturn(responsePb); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); @@ -1424,11 +1509,12 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { assertNull(response.getErrorsFor(1L)); assertEquals(1, response.getErrorsFor(0L).size()); assertEquals("ErrorMessage", response.getErrorsFor(0L).get(0).getMessage()); - verify(bigqueryRpcMock).insertAll(OTHER_PROJECT, DATASET, TABLE, requestPb); + verify(bigqueryRpcMock) + .insertAllSkipExceptionTranslation(OTHER_PROJECT, DATASET, TABLE, requestPb); } @Test - public void testInsertAllWithProjectInTable() { + public void testInsertAllWithProjectInTable() throws IOException { Map row1 = ImmutableMap.of("field", "value1"); Map row2 = ImmutableMap.of("field", "value2"); List rows = @@ -1464,7 +1550,8 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { new TableDataInsertAllResponse.InsertErrors() .setIndex(0L) .setErrors(ImmutableList.of(new ErrorProto().setMessage("ErrorMessage"))))); - when(bigqueryRpcMock.insertAll("project-different-from-option", DATASET, TABLE, requestPb)) + when(bigqueryRpcMock.insertAllSkipExceptionTranslation( + "project-different-from-option", DATASET, TABLE, requestPb)) .thenReturn(responsePb); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); @@ -1474,47 +1561,56 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { assertNull(response.getErrorsFor(1L)); assertEquals(1, response.getErrorsFor(0L).size()); assertEquals("ErrorMessage", response.getErrorsFor(0L).get(0).getMessage()); - verify(bigqueryRpcMock).insertAll("project-different-from-option", DATASET, TABLE, requestPb); + verify(bigqueryRpcMock) + .insertAllSkipExceptionTranslation( + "project-different-from-option", DATASET, TABLE, requestPb); } @Test - public void testListTableData() { - when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + public void testListTableData() throws IOException { + when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( + PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_DATA_PB); bigquery = options.getService(); Page page = bigquery.listTableData(DATASET, TABLE); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); - verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .listTableDataSkipExceptionTranslation(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test - public void testListTableDataFromTableId() { - when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + public void testListTableDataFromTableId() throws IOException { + when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( + PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_DATA_PB); bigquery = options.getService(); Page page = bigquery.listTableData(TableId.of(DATASET, TABLE)); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); - verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .listTableDataSkipExceptionTranslation(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test - public void testListTableDataFromTableIdWithProject() { + public void testListTableDataFromTableIdWithProject() throws IOException { TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); - when(bigqueryRpcMock.listTableData(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( + OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_DATA_PB); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Page page = bigquery.listTableData(tableId); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); - verify(bigqueryRpcMock).listTableData(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .listTableDataSkipExceptionTranslation(OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test - public void testListTableDataWithOptions() { - when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS)) + public void testListTableDataWithOptions() throws IOException { + when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( + PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS)) .thenReturn(TABLE_DATA_PB); bigquery = options.getService(); Page page = @@ -1526,14 +1622,15 @@ public void testListTableDataWithOptions() { TABLE_DATA_LIST_START_INDEX); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); - verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS); + verify(bigqueryRpcMock) + .listTableDataSkipExceptionTranslation(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS); } @Test - public void testListTableDataWithNextPage() { + public void testListTableDataWithNextPage() throws IOException { doReturn(TABLE_DATA_PB) .when(bigqueryRpcMock) - .listTableData(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS); + .listTableDataSkipExceptionTranslation(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS); bigquery = options.getService(); TableResult page = bigquery.listTableData( @@ -1543,7 +1640,8 @@ public void testListTableDataWithNextPage() { TABLE_DATA_LIST_PAGE_TOKEN, TABLE_DATA_LIST_START_INDEX); assertEquals(CURSOR, page.getNextPageToken()); - verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS); + verify(bigqueryRpcMock) + .listTableDataSkipExceptionTranslation(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS); assertArrayEquals(TABLE_DATA.toArray(), Iterables.toArray(page.getValues(), List.class)); Map SECOND_TABLE_DATA_LIST_OPTIONS = ImmutableMap.of(BigQueryRpc.Option.PAGE_TOKEN, CURSOR, BigQueryRpc.Option.START_INDEX, 0L); @@ -1556,11 +1654,14 @@ public void testListTableDataWithNextPage() { new TableRow().setF(ImmutableList.of(new TableCell().setV("Value3"))), new TableRow().setF(ImmutableList.of(new TableCell().setV("Value4")))))) .when(bigqueryRpcMock) - .listTableData(PROJECT, DATASET, TABLE, SECOND_TABLE_DATA_LIST_OPTIONS); + .listTableDataSkipExceptionTranslation( + PROJECT, DATASET, TABLE, SECOND_TABLE_DATA_LIST_OPTIONS); assertTrue(page.hasNextPage()); page = page.getNextPage(); assertNull(page.getNextPageToken()); - verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, SECOND_TABLE_DATA_LIST_OPTIONS); + verify(bigqueryRpcMock) + .listTableDataSkipExceptionTranslation( + PROJECT, DATASET, TABLE, SECOND_TABLE_DATA_LIST_OPTIONS); } // The "minimally initialized" Job that lets Job.fromPb run without throwing. @@ -1572,23 +1673,47 @@ private static com.google.api.services.bigquery.model.Job newJobPb() { } @Test - public void testCreateJobSuccess() { + public void testCreateJobSuccess() throws IOException { String id = "testCreateJobSuccess-id"; JobId jobId = JobId.of(id); String query = "SELECT * in FOO"; - when(bigqueryRpcMock.create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) + when(bigqueryRpcMock.createSkipExceptionTranslation( + jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) .thenReturn(newJobPb()); bigquery = options.getService(); assertThat(bigquery.create(JobInfo.of(jobId, QueryJobConfiguration.of(query)))).isNotNull(); assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); - verify(bigqueryRpcMock).create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); + verify(bigqueryRpcMock) + .createSkipExceptionTranslation(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); } @Test - public void testCreateJobFailureShouldRetry() { - when(bigqueryRpcMock.create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) + public void testCreateJobFailureShouldRetryExceptionHandlerExceptions() throws IOException { + when(bigqueryRpcMock.createSkipExceptionTranslation( + jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) + .thenThrow(new UnknownHostException()) + .thenThrow(new ConnectException()) + .thenReturn(newJobPb()); + + bigquery = options.getService(); + bigquery = + options + .toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService(); + + ((BigQueryImpl) bigquery).create(JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY)); + verify(bigqueryRpcMock, times(3)) + .createSkipExceptionTranslation(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); + } + + @Test + public void testCreateJobFailureShouldRetry() throws IOException { + when(bigqueryRpcMock.createSkipExceptionTranslation( + jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) .thenThrow(new BigQueryException(500, "InternalError")) .thenThrow(new BigQueryException(502, "Bad Gateway")) .thenThrow(new BigQueryException(503, "Service Unavailable")) @@ -1607,11 +1732,12 @@ public void testCreateJobFailureShouldRetry() { .getService(); ((BigQueryImpl) bigquery).create(JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY)); - verify(bigqueryRpcMock, times(6)).create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); + verify(bigqueryRpcMock, times(6)) + .createSkipExceptionTranslation(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); } @Test - public void testCreateJobWithBigQueryRetryConfigFailureShouldRetry() { + public void testCreateJobWithBigQueryRetryConfigFailureShouldRetry() throws IOException { // Validate create job with BigQueryRetryConfig that retries on rate limit error message. JobOption bigQueryRetryConfigOption = JobOption.bigQueryRetryConfig( @@ -1622,7 +1748,8 @@ public void testCreateJobWithBigQueryRetryConfigFailureShouldRetry() { .build()); Map bigQueryRpcOptions = optionMap(bigQueryRetryConfigOption); - when(bigqueryRpcMock.create(jobCapture.capture(), eq(bigQueryRpcOptions))) + when(bigqueryRpcMock.createSkipExceptionTranslation( + jobCapture.capture(), eq(bigQueryRpcOptions))) .thenThrow( new BigQueryException( 400, RATE_LIMIT_ERROR_MSG)) // retrial on based on RATE_LIMIT_EXCEEDED_MSG @@ -1639,19 +1766,27 @@ public void testCreateJobWithBigQueryRetryConfigFailureShouldRetry() { ((BigQueryImpl) bigquery) .create(JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY), bigQueryRetryConfigOption); - verify(bigqueryRpcMock, times(3)).create(jobCapture.capture(), eq(bigQueryRpcOptions)); + verify(bigqueryRpcMock, times(3)) + .createSkipExceptionTranslation(jobCapture.capture(), eq(bigQueryRpcOptions)); } @Test - public void testCreateJobWithBigQueryRetryConfigFailureShouldNotRetry() { + public void testCreateJobWithBigQueryRetryConfigFailureShouldNotRetry() throws IOException { // Validate create job with BigQueryRetryConfig that does not retry on rate limit error message. JobOption bigQueryRetryConfigOption = JobOption.bigQueryRetryConfig(BigQueryRetryConfig.newBuilder().build()); Map bigQueryRpcOptions = optionMap(bigQueryRetryConfigOption); - when(bigqueryRpcMock.create(jobCapture.capture(), eq(bigQueryRpcOptions))) + when(bigqueryRpcMock.createSkipExceptionTranslation( + jobCapture.capture(), eq(bigQueryRpcOptions))) .thenThrow(new BigQueryException(400, RATE_LIMIT_ERROR_MSG)); + // Job create will attempt to retrieve the job even in the case when the job is created in a + // returned failure. + when(bigqueryRpcMock.getJobSkipExceptionTranslation( + nullable(String.class), nullable(String.class), nullable(String.class), Mockito.any())) + .thenThrow(new BigQueryException(500, "InternalError")); + bigquery = options.getService(); bigquery = options @@ -1669,15 +1804,17 @@ public void testCreateJobWithBigQueryRetryConfigFailureShouldNotRetry() { } // Verify that getQueryResults is attempted only once and not retried since the error message // does not match. - verify(bigqueryRpcMock, times(1)).create(jobCapture.capture(), eq(bigQueryRpcOptions)); + verify(bigqueryRpcMock, times(1)) + .createSkipExceptionTranslation(jobCapture.capture(), eq(bigQueryRpcOptions)); } @Test - public void testCreateJobWithRetryOptionsFailureShouldRetry() { + public void testCreateJobWithRetryOptionsFailureShouldRetry() throws IOException { // Validate create job with RetryOptions. JobOption retryOptions = JobOption.retryOptions(RetryOption.maxAttempts(4)); Map bigQueryRpcOptions = optionMap(retryOptions); - when(bigqueryRpcMock.create(jobCapture.capture(), eq(bigQueryRpcOptions))) + when(bigqueryRpcMock.createSkipExceptionTranslation( + jobCapture.capture(), eq(bigQueryRpcOptions))) .thenThrow(new BigQueryException(500, "InternalError")) .thenThrow(new BigQueryException(502, "Bad Gateway")) .thenThrow(new BigQueryException(503, "Service Unavailable")) @@ -1693,18 +1830,26 @@ public void testCreateJobWithRetryOptionsFailureShouldRetry() { ((BigQueryImpl) bigquery) .create(JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY), retryOptions); - verify(bigqueryRpcMock, times(4)).create(jobCapture.capture(), eq(bigQueryRpcOptions)); + verify(bigqueryRpcMock, times(4)) + .createSkipExceptionTranslation(jobCapture.capture(), eq(bigQueryRpcOptions)); } @Test - public void testCreateJobWithRetryOptionsFailureShouldNotRetry() { + public void testCreateJobWithRetryOptionsFailureShouldNotRetry() throws IOException { // Validate create job with RetryOptions that only attempts once (no retry). JobOption retryOptions = JobOption.retryOptions(RetryOption.maxAttempts(1)); Map bigQueryRpcOptions = optionMap(retryOptions); - when(bigqueryRpcMock.create(jobCapture.capture(), eq(bigQueryRpcOptions))) + when(bigqueryRpcMock.createSkipExceptionTranslation( + jobCapture.capture(), eq(bigQueryRpcOptions))) .thenThrow(new BigQueryException(500, "InternalError")) .thenReturn(newJobPb()); + // Job create will attempt to retrieve the job even in the case when the job is created in a + // returned failure. + when(bigqueryRpcMock.getJobSkipExceptionTranslation( + nullable(String.class), nullable(String.class), nullable(String.class), Mockito.any())) + .thenThrow(new BigQueryException(500, "InternalError")); + bigquery = options.getService(); bigquery = options @@ -1720,12 +1865,13 @@ public void testCreateJobWithRetryOptionsFailureShouldNotRetry() { } catch (BigQueryException e) { assertNotNull(e.getMessage()); } - verify(bigqueryRpcMock, times(1)).create(jobCapture.capture(), eq(bigQueryRpcOptions)); + verify(bigqueryRpcMock, times(1)) + .createSkipExceptionTranslation(jobCapture.capture(), eq(bigQueryRpcOptions)); } @Test - public void testCreateJobWithSelectedFields() { - when(bigqueryRpcMock.create( + public void testCreateJobWithSelectedFields() throws IOException { + when(bigqueryRpcMock.createSkipExceptionTranslation( any(com.google.api.services.bigquery.model.Job.class), capturedOptions.capture())) .thenReturn(newJobPb()); @@ -1740,16 +1886,18 @@ public void testCreateJobWithSelectedFields() { .asList() .containsExactly("jobReference", "configuration", "user_email"); verify(bigqueryRpcMock) - .create(any(com.google.api.services.bigquery.model.Job.class), capturedOptions.capture()); + .createSkipExceptionTranslation( + any(com.google.api.services.bigquery.model.Job.class), capturedOptions.capture()); } @Test - public void testCreateJobNoGet() { + public void testCreateJobNoGet() throws IOException { String id = "testCreateJobNoGet-id"; JobId jobId = JobId.of(id); String query = "SELECT * in FOO"; - when(bigqueryRpcMock.create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) + when(bigqueryRpcMock.createSkipExceptionTranslation( + jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) .thenThrow(new BigQueryException(409, "already exists, for some reason")); bigquery = options.getService(); @@ -1759,11 +1907,12 @@ public void testCreateJobNoGet() { } catch (BigQueryException e) { assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); } - verify(bigqueryRpcMock).create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); + verify(bigqueryRpcMock) + .createSkipExceptionTranslation(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); } @Test - public void testCreateJobTryGet() { + public void testCreateJobTryGet() throws IOException { final String id = "testCreateJobTryGet-id"; String query = "SELECT * in FOO"; Supplier idProvider = @@ -1774,33 +1923,37 @@ public JobId get() { } }; - when(bigqueryRpcMock.create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) + when(bigqueryRpcMock.createSkipExceptionTranslation( + jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) .thenThrow(new BigQueryException(409, "already exists, for some reason")); - when(bigqueryRpcMock.getJob( + when(bigqueryRpcMock.getJobSkipExceptionTranslation( any(String.class), eq(id), eq((String) null), eq(EMPTY_RPC_OPTIONS))) .thenReturn(newJobPb()); bigquery = options.getService(); ((BigQueryImpl) bigquery).create(JobInfo.of(QueryJobConfiguration.of(query)), idProvider); assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); - verify(bigqueryRpcMock).create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); verify(bigqueryRpcMock) - .getJob(any(String.class), eq(id), eq((String) null), eq(EMPTY_RPC_OPTIONS)); + .createSkipExceptionTranslation(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); + verify(bigqueryRpcMock) + .getJobSkipExceptionTranslation( + any(String.class), eq(id), eq((String) null), eq(EMPTY_RPC_OPTIONS)); } @Test - public void testCreateJobTryGetNotRandom() { + public void testCreateJobTryGetNotRandom() throws IOException { Map withStatisticOption = optionMap(JobOption.fields(STATISTICS)); final String id = "testCreateJobTryGet-id"; String query = "SELECT * in FOO"; - when(bigqueryRpcMock.create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) + when(bigqueryRpcMock.createSkipExceptionTranslation( + jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) .thenThrow( new BigQueryException( 409, "already exists, for some reason", new RuntimeException("Already Exists: Job"))); - when(bigqueryRpcMock.getJob( + when(bigqueryRpcMock.getJobSkipExceptionTranslation( any(String.class), eq(id), eq((String) null), eq(withStatisticOption))) .thenReturn( newJobPb() @@ -1812,18 +1965,21 @@ public void testCreateJobTryGetNotRandom() { ((BigQueryImpl) bigquery).create(JobInfo.of(JobId.of(id), QueryJobConfiguration.of(query))); assertThat(job).isNotNull(); assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); - verify(bigqueryRpcMock).create(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); verify(bigqueryRpcMock) - .getJob(any(String.class), eq(id), eq((String) null), eq(withStatisticOption)); + .createSkipExceptionTranslation(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); + verify(bigqueryRpcMock) + .getJobSkipExceptionTranslation( + any(String.class), eq(id), eq((String) null), eq(withStatisticOption)); } @Test - public void testCreateJobWithProjectId() { + public void testCreateJobWithProjectId() throws IOException { JobInfo jobInfo = JobInfo.newBuilder(QUERY_JOB_CONFIGURATION.setProjectId(OTHER_PROJECT)) .setJobId(JobId.of(OTHER_PROJECT, JOB)) .build(); - when(bigqueryRpcMock.create(eq(jobInfo.toPb()), capturedOptions.capture())) + when(bigqueryRpcMock.createSkipExceptionTranslation( + eq(jobInfo.toPb()), capturedOptions.capture())) .thenReturn(jobInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); @@ -1835,46 +1991,58 @@ public void testCreateJobWithProjectId() { assertTrue(selector.contains("configuration")); assertTrue(selector.contains("user_email")); assertEquals(37, selector.length()); - verify(bigqueryRpcMock).create(eq(jobInfo.toPb()), capturedOptions.capture()); + verify(bigqueryRpcMock) + .createSkipExceptionTranslation(eq(jobInfo.toPb()), capturedOptions.capture()); } @Test - public void testGetJob() { - when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + public void testDeleteJob() throws IOException { + JobId jobId = JobId.newBuilder().setJob(JOB).setProject(PROJECT).setLocation(LOCATION).build(); + when(bigqueryRpcMock.deleteJobSkipExceptionTranslation(PROJECT, JOB, LOCATION)) + .thenReturn(true); + bigquery = options.getService(); + assertTrue(bigquery.delete(jobId)); + verify(bigqueryRpcMock).deleteJobSkipExceptionTranslation(PROJECT, JOB, LOCATION); + } + + @Test + public void testGetJob() throws IOException { + when(bigqueryRpcMock.getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) .thenReturn(COMPLETE_COPY_JOB.toPb()); bigquery = options.getService(); Job job = bigquery.getJob(JOB); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); - verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test - public void testGetJobWithLocation() { - when(bigqueryRpcMock.getJob(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) + public void testGetJobWithLocation() throws IOException { + when(bigqueryRpcMock.getJobSkipExceptionTranslation(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) .thenReturn(COMPLETE_COPY_JOB.toPb()); BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock); bigquery = options.getService(); Job job = bigquery.getJob(JOB); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); - verify(bigqueryRpcMock).getJob(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getJobSkipExceptionTranslation(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS); } @Test - public void testGetJobNotFoundWhenThrowIsDisabled() { - when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + public void testGetJobNotFoundWhenThrowIsDisabled() throws IOException { + when(bigqueryRpcMock.getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) .thenReturn(COMPLETE_COPY_JOB.toPb()); options.setThrowNotFound(false); bigquery = options.getService(); Job job = bigquery.getJob(JOB); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); - verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test - public void testGetJobNotFoundWhenThrowIsEnabled() { - when(bigqueryRpcMock.getJob(PROJECT, "job-not-found", null, EMPTY_RPC_OPTIONS)) - .thenReturn(null) - .thenThrow(new BigQueryException(404, "Job not found")); + public void testGetJobNotFoundWhenThrowIsEnabled() throws IOException { + when(bigqueryRpcMock.getJobSkipExceptionTranslation( + PROJECT, "job-not-found", null, EMPTY_RPC_OPTIONS)) + .thenThrow(new IOException("Job not found")); options.setThrowNotFound(true); bigquery = options.getService(); try { @@ -1883,57 +2051,63 @@ public void testGetJobNotFoundWhenThrowIsEnabled() { } catch (BigQueryException ex) { Assert.assertNotNull(ex.getMessage()); } - verify(bigqueryRpcMock).getJob(PROJECT, "job-not-found", null, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getJobSkipExceptionTranslation(PROJECT, "job-not-found", null, EMPTY_RPC_OPTIONS); } @Test - public void testGetJobFromJobId() { - when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + public void testGetJobFromJobId() throws IOException { + when(bigqueryRpcMock.getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) .thenReturn(COMPLETE_COPY_JOB.toPb()); bigquery = options.getService(); Job job = bigquery.getJob(JobId.of(JOB)); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); - verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test - public void testGetJobFromJobIdWithLocation() { - when(bigqueryRpcMock.getJob(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) + public void testGetJobFromJobIdWithLocation() throws IOException { + when(bigqueryRpcMock.getJobSkipExceptionTranslation(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) .thenReturn(COMPLETE_COPY_JOB.toPb()); BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock); bigquery = options.getService(); Job job = bigquery.getJob(JobId.of(JOB)); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(COMPLETE_COPY_JOB)), job); - verify(bigqueryRpcMock).getJob(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getJobSkipExceptionTranslation(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS); } @Test - public void testGetJobFromJobIdWithProject() { + public void testGetJobFromJobIdWithProject() throws IOException { JobId jobId = JobId.of(OTHER_PROJECT, JOB); JobInfo jobInfo = COPY_JOB.setProjectId(OTHER_PROJECT); - when(bigqueryRpcMock.getJob(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.getJobSkipExceptionTranslation( + OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) .thenReturn(jobInfo.toPb()); bigquery = options.getService(); Job job = bigquery.getJob(jobId); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(jobInfo)), job); - verify(bigqueryRpcMock).getJob(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getJobSkipExceptionTranslation(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test - public void testGetJobFromJobIdWithProjectWithLocation() { + public void testGetJobFromJobIdWithProjectWithLocation() throws IOException { JobId jobId = JobId.of(OTHER_PROJECT, JOB); JobInfo jobInfo = COPY_JOB.setProjectId(OTHER_PROJECT); - when(bigqueryRpcMock.getJob(OTHER_PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.getJobSkipExceptionTranslation( + OTHER_PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) .thenReturn(jobInfo.toPb()); BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock); bigquery = options.getService(); Job job = bigquery.getJob(jobId); assertEquals(new Job(bigquery, new JobInfo.BuilderImpl(jobInfo)), job); - verify(bigqueryRpcMock).getJob(OTHER_PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getJobSkipExceptionTranslation(OTHER_PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS); } @Test - public void testListJobs() { + public void testListJobs() throws IOException { bigquery = options.getService(); ImmutableList jobList = ImmutableList.of( @@ -1950,15 +2124,16 @@ public com.google.api.services.bigquery.model.Job apply(Job job) { return job.toPb(); } })); - when(bigqueryRpcMock.listJobs(PROJECT, EMPTY_RPC_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listJobsSkipExceptionTranslation(PROJECT, EMPTY_RPC_OPTIONS)) + .thenReturn(result); Page page = bigquery.listJobs(); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(jobList.toArray(), Iterables.toArray(page.getValues(), Job.class)); - verify(bigqueryRpcMock).listJobs(PROJECT, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).listJobsSkipExceptionTranslation(PROJECT, EMPTY_RPC_OPTIONS); } @Test - public void testListJobsWithOptions() { + public void testListJobsWithOptions() throws IOException { bigquery = options.getService(); ImmutableList jobList = ImmutableList.of( @@ -1975,17 +2150,18 @@ public com.google.api.services.bigquery.model.Job apply(Job job) { return job.toPb(); } })); - when(bigqueryRpcMock.listJobs(PROJECT, JOB_LIST_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listJobsSkipExceptionTranslation(PROJECT, JOB_LIST_OPTIONS)) + .thenReturn(result); Page page = bigquery.listJobs( JOB_LIST_ALL_USERS, JOB_LIST_STATE_FILTER, JOB_LIST_PAGE_TOKEN, JOB_LIST_PAGE_SIZE); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(jobList.toArray(), Iterables.toArray(page.getValues(), Job.class)); - verify(bigqueryRpcMock).listJobs(PROJECT, JOB_LIST_OPTIONS); + verify(bigqueryRpcMock).listJobsSkipExceptionTranslation(PROJECT, JOB_LIST_OPTIONS); } @Test - public void testListJobsWithSelectedFields() { + public void testListJobsWithSelectedFields() throws IOException { bigquery = options.getService(); ImmutableList jobList = ImmutableList.of( @@ -2002,7 +2178,8 @@ public com.google.api.services.bigquery.model.Job apply(Job job) { return job.toPb(); } })); - when(bigqueryRpcMock.listJobs(eq(PROJECT), capturedOptions.capture())).thenReturn(result); + when(bigqueryRpcMock.listJobsSkipExceptionTranslation(eq(PROJECT), capturedOptions.capture())) + .thenReturn(result); Page page = bigquery.listJobs(JOB_LIST_OPTION_FIELD); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(jobList.toArray(), Iterables.toArray(page.getValues(), Job.class)); @@ -2015,36 +2192,37 @@ public com.google.api.services.bigquery.model.Job apply(Job job) { assertTrue(selector.contains("errorResult")); assertTrue(selector.contains(")")); assertEquals(75, selector.length()); - verify(bigqueryRpcMock).listJobs(eq(PROJECT), capturedOptions.capture()); + verify(bigqueryRpcMock) + .listJobsSkipExceptionTranslation(eq(PROJECT), capturedOptions.capture()); } @Test - public void testCancelJob() { - when(bigqueryRpcMock.cancel(PROJECT, JOB, null)).thenReturn(true); + public void testCancelJob() throws IOException { + when(bigqueryRpcMock.cancelSkipExceptionTranslation(PROJECT, JOB, null)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.cancel(JOB)); - verify(bigqueryRpcMock).cancel(PROJECT, JOB, null); + verify(bigqueryRpcMock).cancelSkipExceptionTranslation(PROJECT, JOB, null); } @Test - public void testCancelJobFromJobId() { - when(bigqueryRpcMock.cancel(PROJECT, JOB, null)).thenReturn(true); + public void testCancelJobFromJobId() throws IOException { + when(bigqueryRpcMock.cancelSkipExceptionTranslation(PROJECT, JOB, null)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.cancel(JobId.of(PROJECT, JOB))); - verify(bigqueryRpcMock).cancel(PROJECT, JOB, null); + verify(bigqueryRpcMock).cancelSkipExceptionTranslation(PROJECT, JOB, null); } @Test - public void testCancelJobFromJobIdWithProject() { + public void testCancelJobFromJobIdWithProject() throws IOException { JobId jobId = JobId.of(OTHER_PROJECT, JOB); - when(bigqueryRpcMock.cancel(OTHER_PROJECT, JOB, null)).thenReturn(true); + when(bigqueryRpcMock.cancelSkipExceptionTranslation(OTHER_PROJECT, JOB, null)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.cancel(jobId)); - verify(bigqueryRpcMock).cancel(OTHER_PROJECT, JOB, null); + verify(bigqueryRpcMock).cancelSkipExceptionTranslation(OTHER_PROJECT, JOB, null); } @Test - public void testQueryRequestCompleted() throws InterruptedException { + public void testQueryRequestCompleted() throws InterruptedException, IOException { JobId queryJob = JobId.of(PROJECT, JOB); com.google.api.services.bigquery.model.Job jobResponsePb = new com.google.api.services.bigquery.model.Job() @@ -2064,13 +2242,13 @@ public void testQueryRequestCompleted() throws InterruptedException { .setTotalRows(BigInteger.valueOf(1L)) .setSchema(TABLE_SCHEMA.toPb()); - when(bigqueryRpcMock.create( + when(bigqueryRpcMock.createSkipExceptionTranslation( JOB_INFO.toPb(), Collections.emptyMap())) .thenReturn(jobResponsePb); - when(bigqueryRpcMock.getQueryResults( + when(bigqueryRpcMock.getQueryResultsSkipExceptionTranslation( PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .thenReturn(responsePb); - when(bigqueryRpcMock.listTableData( + when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( PROJECT, DATASET, TABLE, Collections.emptyMap())) .thenReturn( new TableDataList() @@ -2087,16 +2265,19 @@ PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) assertThat(row.get(1).getLongValue()).isEqualTo(1); } verify(bigqueryRpcMock) - .create(JOB_INFO.toPb(), Collections.emptyMap()); + .createSkipExceptionTranslation( + JOB_INFO.toPb(), Collections.emptyMap()); verify(bigqueryRpcMock) - .getQueryResults(PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + .getQueryResultsSkipExceptionTranslation( + PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); verify(bigqueryRpcMock) - .listTableData(PROJECT, DATASET, TABLE, Collections.emptyMap()); + .listTableDataSkipExceptionTranslation( + PROJECT, DATASET, TABLE, Collections.emptyMap()); } @Test - public void testFastQueryRequestCompleted() throws InterruptedException { + public void testFastQueryRequestCompleted() throws InterruptedException, IOException { com.google.api.services.bigquery.model.QueryResponse queryResponsePb = new com.google.api.services.bigquery.model.QueryResponse() .setCacheHit(false) @@ -2108,7 +2289,7 @@ public void testFastQueryRequestCompleted() throws InterruptedException { .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)); - when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture())) .thenReturn(queryResponsePb); bigquery = options.getService(); @@ -2131,11 +2312,12 @@ public void testFastQueryRequestCompleted() throws InterruptedException { assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.useQueryCache(), requestPb.getUseQueryCache()); assertNull(requestPb.getLocation()); - verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); + verify(bigqueryRpcMock) + .queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture()); } @Test - public void testFastQueryRequestCompletedWithLocation() throws InterruptedException { + public void testFastQueryRequestCompletedWithLocation() throws InterruptedException, IOException { com.google.api.services.bigquery.model.QueryResponse queryResponsePb = new com.google.api.services.bigquery.model.QueryResponse() .setCacheHit(false) @@ -2147,7 +2329,7 @@ public void testFastQueryRequestCompletedWithLocation() throws InterruptedExcept .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)); - when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture())) .thenReturn(queryResponsePb); BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock); @@ -2171,11 +2353,12 @@ public void testFastQueryRequestCompletedWithLocation() throws InterruptedExcept assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.useQueryCache(), requestPb.getUseQueryCache()); assertEquals(LOCATION, requestPb.getLocation()); - verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); + verify(bigqueryRpcMock) + .queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture()); } @Test - public void testFastQueryMultiplePages() throws InterruptedException { + public void testFastQueryMultiplePages() throws InterruptedException, IOException { JobId queryJob = JobId.of(PROJECT, JOB); com.google.api.services.bigquery.model.Job responseJob = new com.google.api.services.bigquery.model.Job() @@ -2184,8 +2367,9 @@ public void testFastQueryMultiplePages() throws InterruptedException { .setId(JOB) .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")); responseJob.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); - when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)).thenReturn(responseJob); - when(bigqueryRpcMock.listTableData( + when(bigqueryRpcMock.getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .thenReturn(responseJob); + when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( PROJECT, DATASET, TABLE, optionMap(BigQuery.TableDataListOption.pageToken(CURSOR)))) .thenReturn( new TableDataList() @@ -2205,7 +2389,7 @@ PROJECT, DATASET, TABLE, optionMap(BigQuery.TableDataListOption.pageToken(CURSOR .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)); - when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture())) .thenReturn(queryResponsePb); bigquery = options.getService(); @@ -2221,15 +2405,16 @@ PROJECT, DATASET, TABLE, optionMap(BigQuery.TableDataListOption.pageToken(CURSOR requestPb.getDefaultDataset().getDatasetId()); assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.useQueryCache(), requestPb.getUseQueryCache()); - verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); verify(bigqueryRpcMock) - .listTableData( + .listTableDataSkipExceptionTranslation( PROJECT, DATASET, TABLE, optionMap(BigQuery.TableDataListOption.pageToken(CURSOR))); - verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); + verify(bigqueryRpcMock) + .queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture()); } @Test - public void testFastQuerySlowDdl() throws InterruptedException { + public void testFastQuerySlowDdl() throws InterruptedException, IOException { // mock new fast query path response when running a query that takes more than 10s JobId queryJob = JobId.of(PROJECT, JOB); com.google.api.services.bigquery.model.QueryResponse queryResponsePb = @@ -2256,14 +2441,16 @@ public void testFastQuerySlowDdl() throws InterruptedException { .setTotalRows(BigInteger.valueOf(1L)) .setSchema(TABLE_SCHEMA.toPb()); - when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture())) .thenReturn(queryResponsePb); responseJob.getConfiguration().getQuery().setDestinationTable(TABLE_ID.toPb()); - when(bigqueryRpcMock.getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)).thenReturn(responseJob); - when(bigqueryRpcMock.getQueryResults( + when(bigqueryRpcMock.getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + .thenReturn(responseJob); + when(bigqueryRpcMock.getQueryResultsSkipExceptionTranslation( PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .thenReturn(queryResultsResponsePb); - when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( + PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(new TableDataList().setRows(ImmutableList.of(TABLE_ROW)).setTotalRows(1L)); bigquery = options.getService(); @@ -2282,15 +2469,18 @@ PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) requestPb.getDefaultDataset().getDatasetId()); assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.useQueryCache(), requestPb.getUseQueryCache()); - verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); - verify(bigqueryRpcMock).getJob(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); verify(bigqueryRpcMock) - .getQueryResults(PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); - verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); + .queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture()); + verify(bigqueryRpcMock).getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getQueryResultsSkipExceptionTranslation( + PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + verify(bigqueryRpcMock) + .listTableDataSkipExceptionTranslation(PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS); } @Test - public void testQueryRequestCompletedOptions() throws InterruptedException { + public void testQueryRequestCompletedOptions() throws InterruptedException, IOException { JobId queryJob = JobId.of(PROJECT, JOB); com.google.api.services.bigquery.model.Job jobResponsePb = new com.google.api.services.bigquery.model.Job() @@ -2310,7 +2500,7 @@ public void testQueryRequestCompletedOptions() throws InterruptedException { .setTotalRows(BigInteger.valueOf(1L)) .setSchema(TABLE_SCHEMA.toPb()); - when(bigqueryRpcMock.create( + when(bigqueryRpcMock.createSkipExceptionTranslation( JOB_INFO.toPb(), Collections.emptyMap())) .thenReturn(jobResponsePb); @@ -2318,10 +2508,10 @@ public void testQueryRequestCompletedOptions() throws InterruptedException { QueryResultsOption pageSizeOption = QueryResultsOption.pageSize(42L); optionMap.put(pageSizeOption.getRpcOption(), pageSizeOption.getValue()); - when(bigqueryRpcMock.getQueryResults( + when(bigqueryRpcMock.getQueryResultsSkipExceptionTranslation( PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .thenReturn(responsePb); - when(bigqueryRpcMock.listTableData(PROJECT, DATASET, TABLE, optionMap)) + when(bigqueryRpcMock.listTableDataSkipExceptionTranslation(PROJECT, DATASET, TABLE, optionMap)) .thenReturn( new TableDataList() .setPageToken("") @@ -2338,14 +2528,17 @@ PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) assertThat(row.get(1).getLongValue()).isEqualTo(1); } verify(bigqueryRpcMock) - .create(JOB_INFO.toPb(), Collections.emptyMap()); + .createSkipExceptionTranslation( + JOB_INFO.toPb(), Collections.emptyMap()); + verify(bigqueryRpcMock) + .getQueryResultsSkipExceptionTranslation( + PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); verify(bigqueryRpcMock) - .getQueryResults(PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); - verify(bigqueryRpcMock).listTableData(PROJECT, DATASET, TABLE, optionMap); + .listTableDataSkipExceptionTranslation(PROJECT, DATASET, TABLE, optionMap); } @Test - public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedException { + public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedException, IOException { JobId queryJob = JobId.of(PROJECT, JOB); com.google.api.services.bigquery.model.Job jobResponsePb1 = new com.google.api.services.bigquery.model.Job() @@ -2370,16 +2563,16 @@ public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedExcepti .setTotalRows(BigInteger.valueOf(1L)) .setSchema(TABLE_SCHEMA.toPb()); - when(bigqueryRpcMock.create( + when(bigqueryRpcMock.createSkipExceptionTranslation( JOB_INFO.toPb(), Collections.emptyMap())) .thenReturn(jobResponsePb1); - when(bigqueryRpcMock.getQueryResults( + when(bigqueryRpcMock.getQueryResultsSkipExceptionTranslation( PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .thenReturn(responsePb1); - when(bigqueryRpcMock.getQueryResults( + when(bigqueryRpcMock.getQueryResultsSkipExceptionTranslation( PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) .thenReturn(responsePb2); - when(bigqueryRpcMock.listTableData( + when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( PROJECT, DATASET, TABLE, Collections.emptyMap())) .thenReturn( new TableDataList() @@ -2396,17 +2589,21 @@ PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) assertThat(row.get(1).getLongValue()).isEqualTo(1); } verify(bigqueryRpcMock) - .create(JOB_INFO.toPb(), Collections.emptyMap()); + .createSkipExceptionTranslation( + JOB_INFO.toPb(), Collections.emptyMap()); verify(bigqueryRpcMock) - .getQueryResults(PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + .getQueryResultsSkipExceptionTranslation( + PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); verify(bigqueryRpcMock) - .getQueryResults(PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); + .getQueryResultsSkipExceptionTranslation( + PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS)); verify(bigqueryRpcMock) - .listTableData(PROJECT, DATASET, TABLE, Collections.emptyMap()); + .listTableDataSkipExceptionTranslation( + PROJECT, DATASET, TABLE, Collections.emptyMap()); } @Test - public void testGetQueryResults() { + public void testGetQueryResults() throws IOException { JobId queryJob = JobId.of(JOB); GetQueryResultsResponse responsePb = new GetQueryResultsResponse() @@ -2418,17 +2615,19 @@ public void testGetQueryResults() { .setPageToken(CURSOR) .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)); - when(bigqueryRpcMock.getQueryResults(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.getQueryResultsSkipExceptionTranslation( + PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) .thenReturn(responsePb); bigquery = options.getService(); QueryResponse response = bigquery.getQueryResults(queryJob); assertEquals(true, response.getCompleted()); assertEquals(null, response.getSchema()); - verify(bigqueryRpcMock).getQueryResults(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getQueryResultsSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test - public void testGetQueryResultsRetry() { + public void testGetQueryResultsRetry() throws IOException { JobId queryJob = JobId.of(JOB); GetQueryResultsResponse responsePb = new GetQueryResultsResponse() @@ -2441,7 +2640,8 @@ public void testGetQueryResultsRetry() { .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)); - when(bigqueryRpcMock.getQueryResults(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.getQueryResultsSkipExceptionTranslation( + PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(500, "InternalError")) .thenThrow(new BigQueryException(502, "Bad Gateway")) .thenThrow(new BigQueryException(503, "Service Unavailable")) @@ -2467,11 +2667,12 @@ public void testGetQueryResultsRetry() { // EMPTY_RPC_OPTIONS) as there is no // identifier in this method which will can potentially differ and which can be used to // establish idempotency - verify(bigqueryRpcMock, times(6)).getQueryResults(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock, times(6)) + .getQueryResultsSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test - public void testGetQueryResultsWithProject() { + public void testGetQueryResultsWithProject() throws IOException { JobId queryJob = JobId.of(OTHER_PROJECT, JOB); GetQueryResultsResponse responsePb = new GetQueryResultsResponse() @@ -2483,17 +2684,19 @@ public void testGetQueryResultsWithProject() { .setPageToken(CURSOR) .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)); - when(bigqueryRpcMock.getQueryResults(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.getQueryResultsSkipExceptionTranslation( + OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) .thenReturn(responsePb); bigquery = options.getService(); QueryResponse response = bigquery.getQueryResults(queryJob); assertTrue(response.getCompleted()); assertEquals(null, response.getSchema()); - verify(bigqueryRpcMock).getQueryResults(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getQueryResultsSkipExceptionTranslation(OTHER_PROJECT, JOB, null, EMPTY_RPC_OPTIONS); } @Test - public void testGetQueryResultsWithOptions() { + public void testGetQueryResultsWithOptions() throws IOException { JobId queryJob = JobId.of(PROJECT, JOB); GetQueryResultsResponse responsePb = new GetQueryResultsResponse() @@ -2504,7 +2707,8 @@ public void testGetQueryResultsWithOptions() { .setPageToken(CURSOR) .setTotalBytesProcessed(42L) .setTotalRows(BigInteger.valueOf(1L)); - when(bigqueryRpcMock.getQueryResults(PROJECT, JOB, null, QUERY_RESULTS_OPTIONS)) + when(bigqueryRpcMock.getQueryResultsSkipExceptionTranslation( + PROJECT, JOB, null, QUERY_RESULTS_OPTIONS)) .thenReturn(responsePb); bigquery = options.getService(); QueryResponse response = @@ -2516,12 +2720,13 @@ public void testGetQueryResultsWithOptions() { QUERY_RESULTS_OPTION_PAGE_TOKEN); assertEquals(true, response.getCompleted()); assertEquals(null, response.getSchema()); - verify(bigqueryRpcMock).getQueryResults(PROJECT, JOB, null, QUERY_RESULTS_OPTIONS); + verify(bigqueryRpcMock) + .getQueryResultsSkipExceptionTranslation(PROJECT, JOB, null, QUERY_RESULTS_OPTIONS); } @Test - public void testGetDatasetRetryableException() { - when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + public void testGetDatasetRetryableException() throws IOException { + when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(500, "InternalError")) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = @@ -2533,13 +2738,14 @@ public void testGetDatasetRetryableException() { Dataset dataset = bigquery.getDataset(DATASET); assertEquals( new Dataset(bigquery, new DatasetInfo.BuilderImpl(DATASET_INFO_WITH_PROJECT)), dataset); - verify(bigqueryRpcMock, times(2)).getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock, times(2)) + .getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testNonRetryableException() { + public void testNonRetryableException() throws IOException { String exceptionMessage = "Not Implemented"; - when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(501, exceptionMessage)); bigquery = options @@ -2553,13 +2759,13 @@ public void testNonRetryableException() { } catch (BigQueryException ex) { Assert.assertEquals(exceptionMessage, ex.getMessage()); } - verify(bigqueryRpcMock).getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testRuntimeException() { + public void testRuntimeException() throws IOException { String exceptionMessage = "Artificial runtime exception"; - when(bigqueryRpcMock.getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenThrow(new RuntimeException(exceptionMessage)); bigquery = options @@ -2573,7 +2779,7 @@ public void testRuntimeException() { } catch (BigQueryException ex) { Assert.assertTrue(ex.getMessage().endsWith(exceptionMessage)); } - verify(bigqueryRpcMock).getDataset(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test @@ -2604,7 +2810,7 @@ public void testFastQuerySQLShouldRetry() throws Exception { .setTotalRows(BigInteger.valueOf(1L)) .setSchema(TABLE_SCHEMA.toPb()); - when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture())) .thenThrow(new BigQueryException(500, "InternalError")) .thenThrow(new BigQueryException(502, "Bad Gateway")) .thenThrow(new BigQueryException(503, "Service Unavailable")) @@ -2630,7 +2836,8 @@ public void testFastQuerySQLShouldRetry() throws Exception { } assertTrue(idempotent); - verify(bigqueryRpcMock, times(5)).queryRpc(eq(PROJECT), requestPbCapture.capture()); + verify(bigqueryRpcMock, times(5)) + .queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture()); } @Test @@ -2645,7 +2852,7 @@ public void testFastQueryDMLShouldRetry() throws Exception { .setNumDmlAffectedRows(1L) .setSchema(TABLE_SCHEMA.toPb()); - when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture())) .thenThrow(new BigQueryException(500, "InternalError")) .thenThrow(new BigQueryException(502, "Bad Gateway")) .thenThrow(new BigQueryException(503, "Service Unavailable")) @@ -2671,7 +2878,8 @@ public void testFastQueryDMLShouldRetry() throws Exception { } assertTrue(idempotent); - verify(bigqueryRpcMock, times(5)).queryRpc(eq(PROJECT), requestPbCapture.capture()); + verify(bigqueryRpcMock, times(5)) + .queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture()); } @Test @@ -2686,7 +2894,7 @@ public void testFastQueryRateLimitIdempotency() throws Exception { .setNumDmlAffectedRows(1L) .setSchema(TABLE_SCHEMA.toPb()); - when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture())) .thenThrow(new BigQueryException(500, "InternalError")) .thenThrow(new BigQueryException(502, "Bad Gateway")) .thenThrow(new BigQueryException(503, "Service Unavailable")) @@ -2719,7 +2927,8 @@ public void testFastQueryRateLimitIdempotency() throws Exception { } assertTrue(idempotent); - verify(bigqueryRpcMock, times(6)).queryRpc(eq(PROJECT), requestPbCapture.capture()); + verify(bigqueryRpcMock, times(6)) + .queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture()); } @Test @@ -2757,7 +2966,7 @@ public void testFastQueryDDLShouldRetry() throws Exception { .setTotalBytesProcessed(42L) .setSchema(TABLE_SCHEMA.toPb()); - when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture())) .thenThrow(new BigQueryException(500, "InternalError")) .thenThrow(new BigQueryException(502, "Bad Gateway")) .thenThrow(new BigQueryException(503, "Service Unavailable")) @@ -2783,11 +2992,12 @@ public void testFastQueryDDLShouldRetry() throws Exception { } assertTrue(idempotent); - verify(bigqueryRpcMock, times(5)).queryRpc(eq(PROJECT), requestPbCapture.capture()); + verify(bigqueryRpcMock, times(5)) + .queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture()); } @Test - public void testFastQueryBigQueryException() throws InterruptedException { + public void testFastQueryBigQueryException() throws InterruptedException, IOException { List errorProtoList = ImmutableList.of( new ErrorProto() @@ -2804,7 +3014,8 @@ public void testFastQueryBigQueryException() throws InterruptedException { .setPageToken(null) .setErrors(errorProtoList); - when(bigqueryRpcMock.queryRpc(eq(PROJECT), requestPbCapture.capture())).thenReturn(responsePb); + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture())) + .thenReturn(responsePb); bigquery = options.getService(); try { @@ -2820,122 +3031,135 @@ public void testFastQueryBigQueryException() throws InterruptedException { QUERY_JOB_CONFIGURATION_FOR_QUERY.getDefaultDataset().getDataset(), requestPb.getDefaultDataset().getDatasetId()); assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.useQueryCache(), requestPb.getUseQueryCache()); - verify(bigqueryRpcMock).queryRpc(eq(PROJECT), requestPbCapture.capture()); + verify(bigqueryRpcMock) + .queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture()); } @Test - public void testCreateRoutine() { + public void testCreateRoutine() throws IOException { RoutineInfo routineInfo = ROUTINE_INFO.setProjectId(OTHER_PROJECT); - when(bigqueryRpcMock.create(routineInfo.toPb(), EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.createSkipExceptionTranslation(routineInfo.toPb(), EMPTY_RPC_OPTIONS)) .thenReturn(routineInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Routine actualRoutine = bigquery.create(routineInfo); assertEquals(new Routine(bigquery, new RoutineInfo.BuilderImpl(routineInfo)), actualRoutine); - verify(bigqueryRpcMock).create(routineInfo.toPb(), EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).createSkipExceptionTranslation(routineInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test - public void testGetRoutine() { - when(bigqueryRpcMock.getRoutine(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS)) + public void testGetRoutine() throws IOException { + when(bigqueryRpcMock.getRoutineSkipExceptionTranslation( + PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS)) .thenReturn(ROUTINE_INFO.toPb()); bigquery = options.getService(); Routine routine = bigquery.getRoutine(DATASET, ROUTINE); assertEquals(new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO)), routine); - verify(bigqueryRpcMock).getRoutine(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getRoutineSkipExceptionTranslation(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS); } @Test - public void testGetRoutineWithRountineId() { - when(bigqueryRpcMock.getRoutine(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS)) + public void testGetRoutineWithRountineId() throws IOException { + when(bigqueryRpcMock.getRoutineSkipExceptionTranslation( + PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS)) .thenReturn(ROUTINE_INFO.toPb()); bigquery = options.getService(); Routine routine = bigquery.getRoutine(ROUTINE_ID); assertEquals(new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO)), routine); - verify(bigqueryRpcMock).getRoutine(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getRoutineSkipExceptionTranslation(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS); } @Test - public void testGetRoutineWithEnabledThrowNotFoundException() { - when(bigqueryRpcMock.getRoutine(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS)) - .thenReturn(null) + public void testGetRoutineWithEnabledThrowNotFoundException() throws IOException { + when(bigqueryRpcMock.getRoutineSkipExceptionTranslation( + PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(404, "Routine not found")); options.setThrowNotFound(true); bigquery = options.getService(); try { - Routine routine = bigquery.getRoutine(ROUTINE_ID); + bigquery.getRoutine(ROUTINE_ID); fail(); } catch (BigQueryException ex) { assertEquals("Routine not found", ex.getMessage()); } - verify(bigqueryRpcMock).getRoutine(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .getRoutineSkipExceptionTranslation(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS); } @Test - public void testUpdateRoutine() { + public void testUpdateRoutine() throws IOException { RoutineInfo updatedRoutineInfo = ROUTINE_INFO .setProjectId(OTHER_PROJECT) .toBuilder() .setDescription("newDescription") .build(); - when(bigqueryRpcMock.update(updatedRoutineInfo.toPb(), EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.updateSkipExceptionTranslation( + updatedRoutineInfo.toPb(), EMPTY_RPC_OPTIONS)) .thenReturn(updatedRoutineInfo.toPb()); BigQueryOptions bigQueryOptions = createBigQueryOptionsForProject(OTHER_PROJECT, rpcFactoryMock); bigquery = bigQueryOptions.getService(); Routine routine = bigquery.update(updatedRoutineInfo); assertEquals(new Routine(bigquery, new RoutineInfo.BuilderImpl(updatedRoutineInfo)), routine); - verify(bigqueryRpcMock).update(updatedRoutineInfo.toPb(), EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .updateSkipExceptionTranslation(updatedRoutineInfo.toPb(), EMPTY_RPC_OPTIONS); } @Test - public void testListRoutines() { + public void testListRoutines() throws IOException { bigquery = options.getService(); ImmutableList routineList = ImmutableList.of(new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(routineList, RoutineInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listRoutines(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listRoutinesSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(result); Page page = bigquery.listRoutines(DATASET); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(routineList.toArray(), Iterables.toArray(page.getValues(), Routine.class)); - verify(bigqueryRpcMock).listRoutines(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .listRoutinesSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testListRoutinesWithDatasetId() { + public void testListRoutinesWithDatasetId() throws IOException { bigquery = options.getService(); ImmutableList routineList = ImmutableList.of(new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO))); Tuple> result = Tuple.of(CURSOR, Iterables.transform(routineList, RoutineInfo.TO_PB_FUNCTION)); - when(bigqueryRpcMock.listRoutines(PROJECT, DATASET, EMPTY_RPC_OPTIONS)).thenReturn(result); + when(bigqueryRpcMock.listRoutinesSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(result); Page page = bigquery.listRoutines(DatasetId.of(PROJECT, DATASET)); assertEquals(CURSOR, page.getNextPageToken()); assertArrayEquals(routineList.toArray(), Iterables.toArray(page.getValues(), Routine.class)); - verify(bigqueryRpcMock).listRoutines(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .listRoutinesSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testDeleteRoutine() { - when(bigqueryRpcMock.deleteRoutine(PROJECT, DATASET, ROUTINE)).thenReturn(true); + public void testDeleteRoutine() throws IOException { + when(bigqueryRpcMock.deleteRoutineSkipExceptionTranslation(PROJECT, DATASET, ROUTINE)) + .thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.delete(ROUTINE_ID)); - verify(bigqueryRpcMock).deleteRoutine(PROJECT, DATASET, ROUTINE); + verify(bigqueryRpcMock).deleteRoutineSkipExceptionTranslation(PROJECT, DATASET, ROUTINE); } @Test public void testWriteWithJob() throws IOException { bigquery = options.getService(); Job job = new Job(bigquery, new JobInfo.BuilderImpl(JOB_INFO)); - when(bigqueryRpcMock.open( + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) .thenReturn(UPLOAD_ID); - when(bigqueryRpcMock.write( + when(bigqueryRpcMock.writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true))) .thenReturn(job.toPb()); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); @@ -2943,24 +3167,25 @@ public void testWriteWithJob() throws IOException { assertEquals(job, writer.getJob()); bigquery.writer(JOB_INFO.getJobId(), LOAD_CONFIGURATION); verify(bigqueryRpcMock) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); verify(bigqueryRpcMock) - .write(eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); + .writeSkipExceptionTranslation( + eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); } @Test public void testWriteChannel() throws IOException { bigquery = options.getService(); Job job = new Job(bigquery, new JobInfo.BuilderImpl(JOB_INFO)); - when(bigqueryRpcMock.open( + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) .thenReturn(UPLOAD_ID); - when(bigqueryRpcMock.write( + when(bigqueryRpcMock.writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true))) .thenReturn(job.toPb()); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); @@ -2968,43 +3193,47 @@ public void testWriteChannel() throws IOException { assertEquals(job, writer.getJob()); bigquery.writer(LOAD_CONFIGURATION); verify(bigqueryRpcMock) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); verify(bigqueryRpcMock) - .write(eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); + .writeSkipExceptionTranslation( + eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); } @Test - public void testGetIamPolicy() { + public void testGetIamPolicy() throws IOException { final String resourceId = String.format("projects/%s/datasets/%s/tables/%s", PROJECT, DATASET, TABLE); final com.google.api.services.bigquery.model.Policy apiPolicy = PolicyHelper.convertToApiPolicy(SAMPLE_IAM_POLICY); - when(bigqueryRpcMock.getIamPolicy(resourceId, EMPTY_RPC_OPTIONS)).thenReturn(apiPolicy); + when(bigqueryRpcMock.getIamPolicySkipExceptionTranslation(resourceId, EMPTY_RPC_OPTIONS)) + .thenReturn(apiPolicy); bigquery = options.getService(); Policy policy = bigquery.getIamPolicy(TABLE_ID); assertEquals(policy, SAMPLE_IAM_POLICY); - verify(bigqueryRpcMock).getIamPolicy(resourceId, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock).getIamPolicySkipExceptionTranslation(resourceId, EMPTY_RPC_OPTIONS); } @Test - public void testSetIamPolicy() { + public void testSetIamPolicy() throws IOException { final String resourceId = String.format("projects/%s/datasets/%s/tables/%s", PROJECT, DATASET, TABLE); final com.google.api.services.bigquery.model.Policy apiPolicy = PolicyHelper.convertToApiPolicy(SAMPLE_IAM_POLICY); - when(bigqueryRpcMock.setIamPolicy(resourceId, apiPolicy, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.setIamPolicySkipExceptionTranslation( + resourceId, apiPolicy, EMPTY_RPC_OPTIONS)) .thenReturn(apiPolicy); bigquery = options.getService(); Policy returnedPolicy = bigquery.setIamPolicy(TABLE_ID, SAMPLE_IAM_POLICY); assertEquals(returnedPolicy, SAMPLE_IAM_POLICY); - verify(bigqueryRpcMock).setIamPolicy(resourceId, apiPolicy, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .setIamPolicySkipExceptionTranslation(resourceId, apiPolicy, EMPTY_RPC_OPTIONS); } @Test - public void testTestIamPermissions() { + public void testTestIamPermissions() throws IOException { final String resourceId = String.format("projects/%s/datasets/%s/tables/%s", PROJECT, DATASET, TABLE); final List checkedPermissions = ImmutableList.of("foo", "bar", "baz"); @@ -3012,16 +3241,19 @@ public void testTestIamPermissions() { final com.google.api.services.bigquery.model.TestIamPermissionsResponse response = new com.google.api.services.bigquery.model.TestIamPermissionsResponse() .setPermissions(grantedPermissions); - when(bigqueryRpcMock.testIamPermissions(resourceId, checkedPermissions, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.testIamPermissionsSkipExceptionTranslation( + resourceId, checkedPermissions, EMPTY_RPC_OPTIONS)) .thenReturn(response); bigquery = options.getService(); List perms = bigquery.testIamPermissions(TABLE_ID, checkedPermissions); assertEquals(perms, grantedPermissions); - verify(bigqueryRpcMock).testIamPermissions(resourceId, checkedPermissions, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .testIamPermissionsSkipExceptionTranslation( + resourceId, checkedPermissions, EMPTY_RPC_OPTIONS); } @Test - public void testTestIamPermissionsWhenNoPermissionsGranted() { + public void testTestIamPermissionsWhenNoPermissionsGranted() throws IOException { final String resourceId = String.format("projects/%s/datasets/%s/tables/%s", PROJECT, DATASET, TABLE); final List checkedPermissions = ImmutableList.of("foo", "bar", "baz"); @@ -3029,11 +3261,14 @@ public void testTestIamPermissionsWhenNoPermissionsGranted() { final com.google.api.services.bigquery.model.TestIamPermissionsResponse response = new com.google.api.services.bigquery.model.TestIamPermissionsResponse() .setPermissions(null); - when(bigqueryRpcMock.testIamPermissions(resourceId, checkedPermissions, EMPTY_RPC_OPTIONS)) + when(bigqueryRpcMock.testIamPermissionsSkipExceptionTranslation( + resourceId, checkedPermissions, EMPTY_RPC_OPTIONS)) .thenReturn(response); bigquery = options.getService(); List perms = bigquery.testIamPermissions(TABLE_ID, checkedPermissions); assertEquals(perms, ImmutableList.of()); - verify(bigqueryRpcMock).testIamPermissions(resourceId, checkedPermissions, EMPTY_RPC_OPTIONS); + verify(bigqueryRpcMock) + .testIamPermissionsSkipExceptionTranslation( + resourceId, checkedPermissions, EMPTY_RPC_OPTIONS); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java index 7eea1570ae8d..65bbb6c56a98 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java @@ -27,9 +27,10 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.Tuple; import com.google.cloud.bigquery.spi.BigQueryRpcFactory; -import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import com.google.common.collect.ImmutableList; import com.google.common.util.concurrent.ListenableFuture; +import java.io.IOException; import java.math.BigInteger; import java.sql.SQLException; import java.util.AbstractList; @@ -50,7 +51,7 @@ public class ConnectionImplTest { private BigQueryOptions options; private BigQueryRpcFactory rpcFactoryMock; - private BigQueryRpc bigqueryRpcMock; + private HttpBigQueryRpc bigqueryRpcMock; private Connection connectionMock; private BigQuery bigquery; private ConnectionImpl connection; @@ -142,7 +143,7 @@ private BigQueryOptions createBigQueryOptionsForProject( @Before public void setUp() { rpcFactoryMock = mock(BigQueryRpcFactory.class); - bigqueryRpcMock = mock(BigQueryRpc.class); + bigqueryRpcMock = mock(HttpBigQueryRpc.class); connectionMock = mock(Connection.class); when(rpcFactoryMock.create(any(BigQueryOptions.class))).thenReturn(bigqueryRpcMock); options = createBigQueryOptionsForProject(PROJECT, rpcFactoryMock); @@ -164,10 +165,11 @@ public void setUp() { } @Test - public void testFastQuerySinglePage() throws BigQuerySQLException { + public void testFastQuerySinglePage() throws BigQuerySQLException, IOException { com.google.api.services.bigquery.model.QueryResponse mockQueryRes = new QueryResponse().setSchema(FAST_QUERY_TABLESCHEMA).setJobComplete(true); - when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation( + any(String.class), any(QueryRequest.class))) .thenReturn(mockQueryRes); ConnectionImpl connectionSpy = Mockito.spy(connection); doReturn(BQ_RS_MOCK_RES) @@ -185,13 +187,14 @@ public void testFastQuerySinglePage() throws BigQuerySQLException { @Test // NOTE: This doesn't truly paginates. Returns a response while mocking // processQueryResponseResults - public void testFastQueryMultiplePages() throws BigQuerySQLException { + public void testFastQueryMultiplePages() throws BigQuerySQLException, IOException { com.google.api.services.bigquery.model.QueryResponse mockQueryRes = new QueryResponse() .setSchema(FAST_QUERY_TABLESCHEMA) .setJobComplete(true) .setPageToken(PAGE_TOKEN); - when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation( + any(String.class), any(QueryRequest.class))) .thenReturn(mockQueryRes); ConnectionImpl connectionSpy = Mockito.spy(connection); @@ -215,7 +218,7 @@ public void testClose() throws BigQuerySQLException { } @Test - public void testQueryDryRun() throws BigQuerySQLException { + public void testQueryDryRun() throws BigQuerySQLException, IOException { List queryParametersMock = ImmutableList.of( new QueryParameter().setParameterType(new QueryParameterType().setType("STRING"))); @@ -237,17 +240,19 @@ public void testQueryDryRun() throws BigQuerySQLException { new com.google.api.services.bigquery.model.Job() .setStatistics(jobStatsMock) .setConfiguration(jobConfig); - when(bigqueryRpcMock.createJobForQuery(any(com.google.api.services.bigquery.model.Job.class))) + when(bigqueryRpcMock.createJobForQuerySkipExceptionTranslation( + any(com.google.api.services.bigquery.model.Job.class))) .thenReturn(mockDryRunJob); BigQueryDryRunResult dryRunResult = connection.dryRun(DRY_RUN_SQL); assertEquals(1, dryRunResult.getQueryParameters().size()); assertEquals(QUERY_SCHEMA, dryRunResult.getSchema()); verify(bigqueryRpcMock, times(1)) - .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); + .createJobForQuerySkipExceptionTranslation( + any(com.google.api.services.bigquery.model.Job.class)); } @Test - public void testQueryDryRunNoQueryParameters() throws BigQuerySQLException { + public void testQueryDryRunNoQueryParameters() throws BigQuerySQLException, IOException { com.google.api.services.bigquery.model.JobStatistics2 queryMock = new com.google.api.services.bigquery.model.JobStatistics2() .setSchema(FAST_QUERY_TABLESCHEMA); @@ -265,13 +270,15 @@ public void testQueryDryRunNoQueryParameters() throws BigQuerySQLException { new com.google.api.services.bigquery.model.Job() .setStatistics(jobStatsMock) .setConfiguration(jobConfig); - when(bigqueryRpcMock.createJobForQuery(any(com.google.api.services.bigquery.model.Job.class))) + when(bigqueryRpcMock.createJobForQuerySkipExceptionTranslation( + any(com.google.api.services.bigquery.model.Job.class))) .thenReturn(mockDryRunJob); BigQueryDryRunResult dryRunResult = connection.dryRun(DRY_RUN_SQL); assertEquals(0, dryRunResult.getQueryParameters().size()); assertEquals(QUERY_SCHEMA, dryRunResult.getSchema()); verify(bigqueryRpcMock, times(1)) - .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); + .createJobForQuerySkipExceptionTranslation( + any(com.google.api.services.bigquery.model.Job.class)); } @Test @@ -358,8 +365,8 @@ public void testNextPageTask() throws InterruptedException { } @Test - public void testGetQueryResultsFirstPage() { - when(bigqueryRpcMock.getQueryResultsWithRowLimit( + public void testGetQueryResultsFirstPage() throws IOException { + when(bigqueryRpcMock.getQueryResultsWithRowLimitSkipExceptionTranslation( any(String.class), any(String.class), any(String.class), @@ -370,7 +377,7 @@ public void testGetQueryResultsFirstPage() { assertNotNull(response); assertEquals(GET_QUERY_RESULTS_RESPONSE, response); verify(bigqueryRpcMock, times(1)) - .getQueryResultsWithRowLimit( + .getQueryResultsWithRowLimitSkipExceptionTranslation( any(String.class), any(String.class), any(String.class), @@ -380,7 +387,7 @@ public void testGetQueryResultsFirstPage() { // calls executeSelect with a nonFast query and exercises createQueryJob @Test - public void testLegacyQuerySinglePage() throws BigQuerySQLException { + public void testLegacyQuerySinglePage() throws BigQuerySQLException, IOException { ConnectionImpl connectionSpy = Mockito.spy(connection); com.google.api.services.bigquery.model.Job jobResponseMock = new com.google.api.services.bigquery.model.Job() @@ -400,18 +407,20 @@ public void testLegacyQuerySinglePage() throws BigQuerySQLException { any(JobId.class), any(GetQueryResultsResponse.class), any(Boolean.class)); - when(bigqueryRpcMock.createJobForQuery(any(com.google.api.services.bigquery.model.Job.class))) + when(bigqueryRpcMock.createJobForQuerySkipExceptionTranslation( + any(com.google.api.services.bigquery.model.Job.class))) .thenReturn(jobResponseMock); // RPC call in createQueryJob BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); assertEquals(res.getTotalRows(), 2); assertEquals(QUERY_SCHEMA, res.getSchema()); verify(bigqueryRpcMock, times(1)) - .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); + .createJobForQuerySkipExceptionTranslation( + any(com.google.api.services.bigquery.model.Job.class)); } // calls executeSelect with a nonFast query where the query returns an empty result. @Test - public void testLegacyQuerySinglePageEmptyResults() throws BigQuerySQLException, SQLException { + public void testLegacyQuerySinglePageEmptyResults() throws SQLException, IOException { ConnectionImpl connectionSpy = Mockito.spy(connection); com.google.api.services.bigquery.model.Job jobResponseMock = new com.google.api.services.bigquery.model.Job() @@ -423,7 +432,8 @@ public void testLegacyQuerySinglePageEmptyResults() throws BigQuerySQLException, doReturn(GET_QUERY_RESULTS_RESPONSE_EMPTY) .when(connectionSpy) .getQueryResultsFirstPage(any(JobId.class)); - when(bigqueryRpcMock.createJobForQuery(any(com.google.api.services.bigquery.model.Job.class))) + when(bigqueryRpcMock.createJobForQuerySkipExceptionTranslation( + any(com.google.api.services.bigquery.model.Job.class))) .thenReturn(jobResponseMock); // RPC call in createQueryJob BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); assertEquals(res.getTotalRows(), 0); @@ -433,12 +443,13 @@ public void testLegacyQuerySinglePageEmptyResults() throws BigQuerySQLException, res.getResultSet() .next()); // Validates that NPE does not occur when reading from empty ResultSet. verify(bigqueryRpcMock, times(1)) - .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); + .createJobForQuerySkipExceptionTranslation( + any(com.google.api.services.bigquery.model.Job.class)); } // exercises getSubsequentQueryResultsWithJob for fast running queries @Test - public void testFastQueryLongRunning() throws SQLException { + public void testFastQueryLongRunning() throws SQLException, IOException { ConnectionImpl connectionSpy = Mockito.spy(connection); // emulating a fast query doReturn(true).when(connectionSpy).isFastQuerySupported(); @@ -458,17 +469,19 @@ public void testFastQueryLongRunning() throws SQLException { .setTotalRows(new BigInteger(String.valueOf(4L))) .setJobReference(QUERY_JOB.toPb()) .setRows(TABLE_ROWS); - when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation( + any(String.class), any(QueryRequest.class))) .thenReturn(mockQueryRes); BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); assertEquals(res.getTotalRows(), 2); assertEquals(QUERY_SCHEMA, res.getSchema()); - verify(bigqueryRpcMock, times(1)).queryRpc(any(String.class), any(QueryRequest.class)); + verify(bigqueryRpcMock, times(1)) + .queryRpcSkipExceptionTranslation(any(String.class), any(QueryRequest.class)); } @Test public void testFastQueryLongRunningAsync() - throws SQLException, ExecutionException, InterruptedException { + throws SQLException, ExecutionException, InterruptedException, IOException { ConnectionImpl connectionSpy = Mockito.spy(connection); // emulating a fast query doReturn(true).when(connectionSpy).isFastQuerySupported(); @@ -488,7 +501,8 @@ public void testFastQueryLongRunningAsync() .setTotalRows(new BigInteger(String.valueOf(4L))) .setJobReference(QUERY_JOB.toPb()) .setRows(TABLE_ROWS); - when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation( + any(String.class), any(QueryRequest.class))) .thenReturn(mockQueryRes); ListenableFuture executeSelectFut = connectionSpy.executeSelectAsync(SQL_QUERY); @@ -497,15 +511,17 @@ public void testFastQueryLongRunningAsync() assertEquals(res.getTotalRows(), 2); assertEquals(QUERY_SCHEMA, res.getSchema()); assertTrue(exSelRes.getIsSuccessful()); - verify(bigqueryRpcMock, times(1)).queryRpc(any(String.class), any(QueryRequest.class)); + verify(bigqueryRpcMock, times(1)) + .queryRpcSkipExceptionTranslation(any(String.class), any(QueryRequest.class)); } @Test public void testFastQuerySinglePageAsync() - throws BigQuerySQLException, ExecutionException, InterruptedException { + throws BigQuerySQLException, ExecutionException, InterruptedException, IOException { com.google.api.services.bigquery.model.QueryResponse mockQueryRes = new QueryResponse().setSchema(FAST_QUERY_TABLESCHEMA).setJobComplete(true); - when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation( + any(String.class), any(QueryRequest.class))) .thenReturn(mockQueryRes); ConnectionImpl connectionSpy = Mockito.spy(connection); doReturn(BQ_RS_MOCK_RES) @@ -570,13 +586,14 @@ public void testExecuteSelectSlowWithParamsAsync() @Test public void testFastQueryMultiplePagesAsync() - throws BigQuerySQLException, ExecutionException, InterruptedException { + throws BigQuerySQLException, ExecutionException, InterruptedException, IOException { com.google.api.services.bigquery.model.QueryResponse mockQueryRes = new QueryResponse() .setSchema(FAST_QUERY_TABLESCHEMA) .setJobComplete(true) .setPageToken(PAGE_TOKEN); - when(bigqueryRpcMock.queryRpc(any(String.class), any(QueryRequest.class))) + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation( + any(String.class), any(QueryRequest.class))) .thenReturn(mockQueryRes); ConnectionImpl connectionSpy = Mockito.spy(connection); @@ -600,7 +617,7 @@ public void testFastQueryMultiplePagesAsync() @Test // Emulates first page response using getQueryResultsFirstPage(jobId) and then subsequent pages // using getQueryResultsFirstPage(jobId) getSubsequentQueryResultsWithJob( - public void testLegacyQueryMultiplePages() throws SQLException { + public void testLegacyQueryMultiplePages() throws SQLException, IOException { ConnectionImpl connectionSpy = Mockito.spy(connection); com.google.api.services.bigquery.model.JobStatistics jobStatistics = new com.google.api.services.bigquery.model.JobStatistics(); @@ -619,13 +636,15 @@ public void testLegacyQueryMultiplePages() throws SQLException { .setId(JOB) .setStatus(new com.google.api.services.bigquery.model.JobStatus().setState("DONE")) .setStatistics(jobStatistics); - when(bigqueryRpcMock.createJobForQuery(any(com.google.api.services.bigquery.model.Job.class))) + when(bigqueryRpcMock.createJobForQuerySkipExceptionTranslation( + any(com.google.api.services.bigquery.model.Job.class))) .thenReturn(jobResponseMock); // RPC call in createQueryJob BigQueryResult res = connectionSpy.executeSelect(SQL_QUERY); assertEquals(res.getTotalRows(), 2); assertEquals(QUERY_SCHEMA, res.getSchema()); verify(bigqueryRpcMock, times(1)) - .createJobForQuery(any(com.google.api.services.bigquery.model.Job.class)); + .createJobForQuerySkipExceptionTranslation( + any(com.google.api.services.bigquery.model.Job.class)); verify(connectionSpy, times(1)) .tableDataList(any(GetQueryResultsResponse.class), any(JobId.class)); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java index a959a899164d..a90b5c4d7212 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java @@ -31,9 +31,11 @@ import com.google.cloud.RestorableState; import com.google.cloud.WriteChannel; import com.google.cloud.bigquery.spi.BigQueryRpcFactory; -import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import java.io.IOException; +import java.net.ConnectException; import java.net.SocketException; +import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.util.Arrays; import java.util.Random; @@ -68,7 +70,7 @@ public class TableDataWriteChannelTest { private BigQueryOptions options; private BigQueryRpcFactory rpcFactoryMock; - private BigQueryRpc bigqueryRpcMock; + private HttpBigQueryRpc bigqueryRpcMock; private BigQueryFactory bigqueryFactoryMock; private BigQuery bigqueryMock; private Job job; @@ -81,7 +83,7 @@ public class TableDataWriteChannelTest { @Before public void setUp() { rpcFactoryMock = mock(BigQueryRpcFactory.class); - bigqueryRpcMock = mock(BigQueryRpc.class); + bigqueryRpcMock = mock(HttpBigQueryRpc.class); bigqueryFactoryMock = mock(BigQueryFactory.class); bigqueryMock = mock(BigQuery.class); when(bigqueryMock.getOptions()).thenReturn(options); @@ -97,8 +99,8 @@ public void setUp() { } @Test - public void testCreate() { - when(bigqueryRpcMock.open( + public void testCreate() throws IOException { + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) @@ -107,26 +109,27 @@ public void testCreate() { assertTrue(writer.isOpen()); assertNull(writer.getJob()); verify(bigqueryRpcMock) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); } @Test - public void testCreateRetryableError() { - BigQueryException exception = new BigQueryException(new SocketException("Socket closed")); - when(bigqueryRpcMock.open( + public void testCreateRetryableErrors() throws IOException { + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .thenThrow(exception) + .thenThrow(new SocketException("Socket closed")) + .thenThrow(new UnknownHostException()) + .thenThrow(new ConnectException()) .thenReturn(UPLOAD_ID); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); assertTrue(writer.isOpen()); assertNull(writer.getJob()); - verify(bigqueryRpcMock, times(2)) - .open( + verify(bigqueryRpcMock, times(4)) + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); @@ -134,12 +137,11 @@ public void testCreateRetryableError() { @Test public void testCreateNonRetryableError() throws IOException { - RuntimeException ex = new RuntimeException("expected"); - when(bigqueryRpcMock.open( + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) - .thenThrow(ex); + .thenThrow(new RuntimeException("expected")); try (TableDataWriteChannel channel = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION)) { Assert.fail(); @@ -147,7 +149,7 @@ public void testCreateNonRetryableError() throws IOException { Assert.assertEquals("java.lang.RuntimeException: expected", expected.getMessage()); } verify(bigqueryRpcMock) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); @@ -155,7 +157,7 @@ public void testCreateNonRetryableError() throws IOException { @Test public void testWriteWithoutFlush() throws IOException { - when(bigqueryRpcMock.open( + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) @@ -164,7 +166,7 @@ public void testWriteWithoutFlush() throws IOException { assertEquals(MIN_CHUNK_SIZE, writer.write(ByteBuffer.allocate(MIN_CHUNK_SIZE))); assertNull(writer.getJob()); verify(bigqueryRpcMock) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); @@ -172,12 +174,12 @@ public void testWriteWithoutFlush() throws IOException { @Test public void testWriteWithFlush() throws IOException { - when(bigqueryRpcMock.open( + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) .thenReturn(UPLOAD_ID); - when(bigqueryRpcMock.write( + when(bigqueryRpcMock.writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), @@ -192,12 +194,12 @@ public void testWriteWithFlush() throws IOException { assertArrayEquals(buffer.array(), capturedBuffer.getValue()); assertNull(writer.getJob()); verify(bigqueryRpcMock) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); verify(bigqueryRpcMock) - .write( + .writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), @@ -207,19 +209,22 @@ public void testWriteWithFlush() throws IOException { } @Test - public void testWritesAndFlush() throws IOException { - when(bigqueryRpcMock.open( + public void testWritesAndFlushRetryableErrors() throws IOException { + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) .thenReturn(UPLOAD_ID); - when(bigqueryRpcMock.write( + when(bigqueryRpcMock.writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(DEFAULT_CHUNK_SIZE), eq(false))) + .thenThrow(new SocketException("Socket closed")) + .thenThrow(new UnknownHostException()) + .thenThrow(new ConnectException()) .thenReturn(null); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); ByteBuffer[] buffers = new ByteBuffer[DEFAULT_CHUNK_SIZE / MIN_CHUNK_SIZE]; @@ -235,12 +240,53 @@ public void testWritesAndFlush() throws IOException { } assertNull(writer.getJob()); verify(bigqueryRpcMock) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); + verify(bigqueryRpcMock, times(4)) + .writeSkipExceptionTranslation( + eq(UPLOAD_ID), + capturedBuffer.capture(), + eq(0), + eq(0L), + eq(DEFAULT_CHUNK_SIZE), + eq(false)); + } + + @Test + public void testWritesAndFlushNonRetryableError() throws IOException { + when(bigqueryRpcMock.openSkipExceptionTranslation( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb()))) + .thenReturn(UPLOAD_ID); + when(bigqueryRpcMock.writeSkipExceptionTranslation( + eq(UPLOAD_ID), + capturedBuffer.capture(), + eq(0), + eq(0L), + eq(DEFAULT_CHUNK_SIZE), + eq(false))) + .thenThrow(new RuntimeException("expected")); + try { + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + ByteBuffer[] buffers = new ByteBuffer[DEFAULT_CHUNK_SIZE / MIN_CHUNK_SIZE]; + for (int i = 0; i < buffers.length; i++) { + buffers[i] = randomBuffer(MIN_CHUNK_SIZE); + assertEquals(MIN_CHUNK_SIZE, writer.write(buffers[i])); + } + Assert.fail(); + } catch (RuntimeException expected) { + Assert.assertEquals("java.lang.RuntimeException: expected", expected.getMessage()); + } verify(bigqueryRpcMock) - .write( + .openSkipExceptionTranslation( + new com.google.api.services.bigquery.model.Job() + .setJobReference(JOB_INFO.getJobId().toPb()) + .setConfiguration(LOAD_CONFIGURATION.toPb())); + verify(bigqueryRpcMock, times(1)) + .writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), @@ -251,12 +297,12 @@ public void testWritesAndFlush() throws IOException { @Test public void testCloseWithoutFlush() throws IOException { - when(bigqueryRpcMock.open( + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) .thenReturn(UPLOAD_ID); - when(bigqueryRpcMock.write( + when(bigqueryRpcMock.writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true))) .thenReturn(job.toPb()); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); @@ -266,23 +312,24 @@ public void testCloseWithoutFlush() throws IOException { assertTrue(!writer.isOpen()); assertEquals(job, writer.getJob()); verify(bigqueryRpcMock) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); verify(bigqueryRpcMock) - .write(eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); + .writeSkipExceptionTranslation( + eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); } @Test public void testCloseWithFlush() throws IOException { - when(bigqueryRpcMock.open( + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) .thenReturn(UPLOAD_ID); ByteBuffer buffer = randomBuffer(MIN_CHUNK_SIZE); - when(bigqueryRpcMock.write( + when(bigqueryRpcMock.writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(MIN_CHUNK_SIZE), eq(true))) .thenReturn(job.toPb()); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); @@ -294,23 +341,23 @@ public void testCloseWithFlush() throws IOException { assertTrue(!writer.isOpen()); assertEquals(job, writer.getJob()); verify(bigqueryRpcMock) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); verify(bigqueryRpcMock) - .write( + .writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(MIN_CHUNK_SIZE), eq(true)); } @Test public void testWriteClosed() throws IOException { - when(bigqueryRpcMock.open( + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) .thenReturn(UPLOAD_ID); - when(bigqueryRpcMock.write( + when(bigqueryRpcMock.writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true))) .thenReturn(job.toPb()); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); @@ -323,22 +370,23 @@ public void testWriteClosed() throws IOException { // expected } verify(bigqueryRpcMock) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); verify(bigqueryRpcMock) - .write(eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); + .writeSkipExceptionTranslation( + eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); } @Test public void testSaveAndRestore() throws IOException { - when(bigqueryRpcMock.open( + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) .thenReturn(UPLOAD_ID); - when(bigqueryRpcMock.write( + when(bigqueryRpcMock.writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), @@ -359,12 +407,12 @@ public void testSaveAndRestore() throws IOException { assertArrayEquals(buffer2.array(), capturedBuffer.getAllValues().get(1)); assertEquals(new Long(DEFAULT_CHUNK_SIZE), capturedPosition.getAllValues().get(1)); verify(bigqueryRpcMock) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); verify(bigqueryRpcMock, times(2)) - .write( + .writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), @@ -375,12 +423,12 @@ public void testSaveAndRestore() throws IOException { @Test public void testSaveAndRestoreClosed() throws IOException { - when(bigqueryRpcMock.open( + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) .thenReturn(UPLOAD_ID); - when(bigqueryRpcMock.write( + when(bigqueryRpcMock.writeSkipExceptionTranslation( eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true))) .thenReturn(job.toPb()); writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); @@ -398,17 +446,18 @@ public void testSaveAndRestoreClosed() throws IOException { assertArrayEquals(new byte[0], capturedBuffer.getValue()); assertEquals(expectedWriterState, restoredWriter.capture()); verify(bigqueryRpcMock) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); verify(bigqueryRpcMock) - .write(eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); + .writeSkipExceptionTranslation( + eq(UPLOAD_ID), capturedBuffer.capture(), eq(0), eq(0L), eq(0), eq(true)); } @Test - public void testStateEquals() { - when(bigqueryRpcMock.open( + public void testStateEquals() throws IOException { + when(bigqueryRpcMock.openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) @@ -424,7 +473,7 @@ public void testStateEquals() { assertEquals(state.hashCode(), state2.hashCode()); assertEquals(state.toString(), state2.toString()); verify(bigqueryRpcMock, times(2)) - .open( + .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb())); From e4512aa5966e7b935fa55a062d940d9db0c834b3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Mar 2025 16:33:50 +0100 Subject: [PATCH 3173/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.45.1 (#3714) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index a0be30d589e5..ba965f65ccb0 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.44.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.45.1 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 401a49543fb1..7e3c1177da44 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.44.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.45.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 46fd893e67dd..9216250efae0 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.44.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.45.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 6eb22ef1abff..2ea1a05e0b84 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.44.0"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.45.1"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index 39151469c784..fb1979a33bab 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.44.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.45.1" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index ea94894d058b..0d9e1b0f070a 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.44.0 + 3.45.1 diff --git a/pom.xml b/pom.xml index 6acbe662278d..ddb8868a6cc1 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.44.0 + 3.45.1 From 2d222141faa4751b0b698bdbbaf896d21bd250bc Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Mar 2025 17:44:23 +0100 Subject: [PATCH 3174/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.55.0 (#3718) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 03617ce82a01..6c1467fd19af 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.54.0 + 2.55.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 133768b85ed8..a83763453183 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.54.0 + 2.55.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 2e0a3320d089..25a2e52f8ef5 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.54.0 + 2.55.0 test From 08a290adcfa7551ee27a58da0eaf5ac00a759b90 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Mar 2025 17:44:48 +0100 Subject: [PATCH 3175/3441] deps: update netty.version to v4.1.119.final (#3717) --- google-cloud-bigquery/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9e77999e8443..48a692afda3d 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -15,7 +15,7 @@ google-cloud-bigquery - 4.1.118.Final + 4.1.119.Final From 59c3a365f6382bcfd5d17e8b68df37338ef4bf73 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Mar 2025 15:11:17 +0100 Subject: [PATCH 3176/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.50.0 (#3719) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ddb8868a6cc1..7a04583b135a 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.49.0 + 2.50.0 test From c0b39029302c51e65ea31495d837598eefbe94e8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 17 Mar 2025 15:32:13 +0100 Subject: [PATCH 3177/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250302-2.0.0 (#3720) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7a04583b135a..5c38635f9536 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20250216-2.0.0 + v2-rev20250302-2.0.0 From 3d127777dec2983e72c6938d7e40b898c606d985 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 19 Mar 2025 17:18:17 +0100 Subject: [PATCH 3178/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.56.0 (#3722) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 6c1467fd19af..252e7c16ba3b 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.55.0 + 2.56.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a83763453183..97bd988b8560 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.55.0 + 2.56.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 25a2e52f8ef5..3cf272b95a33 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.55.0 + 2.56.0 test From 660bac374be405f89b808c7b095b6cc467776f8f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 19 Mar 2025 17:20:33 +0100 Subject: [PATCH 3179/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.56.0 (#3722) From b8875a895d6d5e267086e24f97d0ed5fec36b9fe Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 19 Mar 2025 17:20:57 +0100 Subject: [PATCH 3180/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250313-2.0.0 (#3723) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5c38635f9536..4ad52f44c40c 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20250302-2.0.0 + v2-rev20250313-2.0.0 From 94798f6c7373163d09159342b6fb433f7b2030e0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 20 Mar 2025 15:07:35 +0100 Subject: [PATCH 3181/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.12.0 (#3728) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4ad52f44c40c..e24176b3708d 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.11.4 + 3.12.0 pom import From 7339f94cfa53d1c988f8ef051ddd5a2d7668d430 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 20 Mar 2025 15:08:28 +0100 Subject: [PATCH 3182/3441] deps: update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.66.0 (#3727) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e24176b3708d..a07b8f449514 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.65.0 + 1.66.0 pom import From 38e004b58134caf4f7b0d96257456930beb0e599 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 20 Mar 2025 15:09:03 +0100 Subject: [PATCH 3183/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.62.0 (#3726) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a07b8f449514..3804f45cbfd5 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.61.0 + 2.62.0 test From 458cff63cc2993967131cb0f86983da80b505e9e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 20 Mar 2025 17:08:37 +0100 Subject: [PATCH 3184/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigqueryconnection to v2.62.0 (#3725) --- pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 3804f45cbfd5..ecbeede6d688 100644 --- a/pom.xml +++ b/pom.xml @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.61.0 + 2.62.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 252e7c16ba3b..f740b87c14f4 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.61.0 + 2.62.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 97bd988b8560..aef78067dee4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.61.0 + 2.62.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3cf272b95a33..8b09f2642912 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.61.0 + 2.62.0 test From 483f9305023988b3884329733d0e5fbcb6599eb1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 20 Mar 2025 17:28:48 +0100 Subject: [PATCH 3185/3441] deps: update actions/upload-artifact action to v4.6.2 (#3724) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 1831a7d089a8..87e8e13c4338 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: SARIF file path: results.sarif From 426a59b9b999e836804f84c5cbe11d497128f0a8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 20 Mar 2025 17:31:15 +0100 Subject: [PATCH 3186/3441] deps: update actions/upload-artifact action to v4.6.2 (#3724) From f87a431004eeb26bb881e235c76fd67bc95e8381 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 20 Mar 2025 13:46:39 -0400 Subject: [PATCH 3187/3441] chore(main): release 2.49.0 (#3705) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 36 +++++++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 45 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f7a8e397f8a..a4937424c680 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,41 @@ # Changelog +## [2.49.0](https://github.com/googleapis/java-bigquery/compare/v2.48.1...v2.49.0) (2025-03-20) + + +### Features + +* **bigquery:** Implement getArray in BigQueryResultImpl ([#3693](https://github.com/googleapis/java-bigquery/issues/3693)) ([e2a3f2c](https://github.com/googleapis/java-bigquery/commit/e2a3f2c1a1406bf7bc9a035dce3acfde78f0eaa4)) +* Next release from main branch is 2.49.0 ([#3706](https://github.com/googleapis/java-bigquery/issues/3706)) ([b46a6cc](https://github.com/googleapis/java-bigquery/commit/b46a6ccc959f8defb145279ea18ff2e4f1bac58f)) + + +### Bug Fixes + +* Retry ExceptionHandler not retrying on IOException ([#3668](https://github.com/googleapis/java-bigquery/issues/3668)) ([83245b9](https://github.com/googleapis/java-bigquery/commit/83245b961950ca9a993694082e533834ee364417)) + + +### Dependencies + +* Exclude io.netty:netty-common from org.apache.arrow:arrow-memor… ([#3715](https://github.com/googleapis/java-bigquery/issues/3715)) ([11b5809](https://github.com/googleapis/java-bigquery/commit/11b580949b910b38732c1c8d64704c54c260214e)) +* Update actions/upload-artifact action to v4.6.2 ([#3724](https://github.com/googleapis/java-bigquery/issues/3724)) ([426a59b](https://github.com/googleapis/java-bigquery/commit/426a59b9b999e836804f84c5cbe11d497128f0a8)) +* Update actions/upload-artifact action to v4.6.2 ([#3724](https://github.com/googleapis/java-bigquery/issues/3724)) ([483f930](https://github.com/googleapis/java-bigquery/commit/483f9305023988b3884329733d0e5fbcb6599eb1)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.61.0 ([#3703](https://github.com/googleapis/java-bigquery/issues/3703)) ([53b07b0](https://github.com/googleapis/java-bigquery/commit/53b07b0e77f6ef57c8518df2b106edace679f79a)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.62.0 ([#3726](https://github.com/googleapis/java-bigquery/issues/3726)) ([38e004b](https://github.com/googleapis/java-bigquery/commit/38e004b58134caf4f7b0d96257456930beb0e599)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20250302-2.0.0 ([#3720](https://github.com/googleapis/java-bigquery/issues/3720)) ([c0b3902](https://github.com/googleapis/java-bigquery/commit/c0b39029302c51e65ea31495d837598eefbe94e8)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20250313-2.0.0 ([#3723](https://github.com/googleapis/java-bigquery/issues/3723)) ([b8875a8](https://github.com/googleapis/java-bigquery/commit/b8875a895d6d5e267086e24f97d0ed5fec36b9fe)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.65.0 ([#3704](https://github.com/googleapis/java-bigquery/issues/3704)) ([53b68b1](https://github.com/googleapis/java-bigquery/commit/53b68b13a505aa5d38e56032eaeb8c95bf3e9078)) +* Update dependency com.google.cloud:google-cloud-datacatalog-bom to v1.66.0 ([#3727](https://github.com/googleapis/java-bigquery/issues/3727)) ([7339f94](https://github.com/googleapis/java-bigquery/commit/7339f94cfa53d1c988f8ef051ddd5a2d7668d430)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.45.1 ([#3714](https://github.com/googleapis/java-bigquery/issues/3714)) ([e4512aa](https://github.com/googleapis/java-bigquery/commit/e4512aa5966e7b935fa55a062d940d9db0c834b3)) +* Update dependency com.google.oauth-client:google-oauth-client-java6 to v1.39.0 ([#3710](https://github.com/googleapis/java-bigquery/issues/3710)) ([c0c6352](https://github.com/googleapis/java-bigquery/commit/c0c6352b8d02145fe9513e3e23d316e045360d2d)) +* Update dependency com.google.oauth-client:google-oauth-client-jetty to v1.39.0 ([#3711](https://github.com/googleapis/java-bigquery/issues/3711)) ([43b86e9](https://github.com/googleapis/java-bigquery/commit/43b86e91a664dd9d3edaea7b31b46ac635fb22b0)) +* Update dependency node to v22 ([#3713](https://github.com/googleapis/java-bigquery/issues/3713)) ([251def5](https://github.com/googleapis/java-bigquery/commit/251def5659d2648dff0833ba967a65435e11b643)) +* Update netty.version to v4.1.119.final ([#3717](https://github.com/googleapis/java-bigquery/issues/3717)) ([08a290a](https://github.com/googleapis/java-bigquery/commit/08a290adcfa7551ee27a58da0eaf5ac00a759b90)) + + +### Documentation + +* Update error handling comment to be more precise in samples ([#3712](https://github.com/googleapis/java-bigquery/issues/3712)) ([9eb555f](https://github.com/googleapis/java-bigquery/commit/9eb555ff61bef42a3bdfe197da8423b7bf14f493)) + ## [2.48.1](https://github.com/googleapis/java-bigquery/compare/v2.48.0...v2.48.1) (2025-02-26) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9664c88f3538..3c0b4987c479 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.48.2-SNAPSHOT + 2.49.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 0d9e1b0f070a..77a502ab843d 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.48.2-SNAPSHOT + 2.49.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.48.2-SNAPSHOT + 2.49.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 48a692afda3d..073a72c76b91 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.48.2-SNAPSHOT + 2.49.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.48.2-SNAPSHOT + 2.49.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index ecbeede6d688..794f4733aa8c 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.48.2-SNAPSHOT + 2.49.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.48.2-SNAPSHOT + 2.49.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index aef78067dee4..4b2ba49abff6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.48.2-SNAPSHOT + 2.49.0 diff --git a/versions.txt b/versions.txt index f9e66ad7f824..0d2589b1b2cf 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.48.1:2.48.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.49.0:2.49.0 \ No newline at end of file From 4e0b2ee32bacdbc1eb554aa9c38779cef04f37b5 Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Thu, 20 Mar 2025 18:15:16 +0000 Subject: [PATCH 3188/3441] chore: group pull requests from one google-cloud-java release (#3730) Fixes: b/404966938. --- renovate.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index 8034b037934b..1ff055606e3b 100644 --- a/renovate.json +++ b/renovate.json @@ -91,7 +91,16 @@ "^com.fasterxml.jackson.core" ], "groupName": "jackson dependencies" - } + }, + { + "matchPackageNames": [ + "com.google.cloud:google-cloud-datacatalog-bom", + "com.google.cloud:google-cloud-bigqueryconnection-v1", + "com.google.cloud:google-cloud-bigqueryconnection" + ], + "groupName": "Google Cloud Java Monorepo Updates", + "groupSlug": "google-cloud-java-monorepo-release-updates" + } ], "semanticCommits": true, "dependencyDashboard": true, From 08c636345e3f39ea6b477d9e69e944becbe3becf Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 11:08:08 -0400 Subject: [PATCH 3189/3441] chore(main): release 2.49.1-SNAPSHOT (#3732) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3c0b4987c479..7cb5546d4c49 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.49.0 + 2.49.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 77a502ab843d..90ccc6805cb7 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.49.0 + 2.49.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.49.0 + 2.49.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 073a72c76b91..07ae4b46b6bf 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.49.0 + 2.49.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.49.0 + 2.49.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 794f4733aa8c..da71f55ede1e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.49.0 + 2.49.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.49.0 + 2.49.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4b2ba49abff6..81112bede965 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.49.0 + 2.49.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 0d2589b1b2cf..726d76077746 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.49.0:2.49.0 \ No newline at end of file +google-cloud-bigquery:2.49.0:2.49.1-SNAPSHOT \ No newline at end of file From 95566e644af9d6a0e9c424a1668dd28d71e94f35 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 21 Mar 2025 16:40:01 +0100 Subject: [PATCH 3190/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.49.0 (#3733) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f740b87c14f4..3a8f65c31e59 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.48.1 + 2.49.0 From b5bfaabcc915101403c6121cc0b29b088684801f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 25 Mar 2025 16:25:27 +0100 Subject: [PATCH 3191/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.57.0 (#3738) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3a8f65c31e59..e36fac538507 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.56.0 + 2.57.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 81112bede965..e2bc180229a0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.56.0 + 2.57.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 8b09f2642912..0ba079c8eae6 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.56.0 + 2.57.0 test From 8634822e1836c5ccc0f8d0263ac57ac561578360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20=C5=81o=C5=9B?= Date: Tue, 25 Mar 2025 20:09:14 +0100 Subject: [PATCH 3192/3441] fix: Add labels to converter for listTables method (#3735) (#3736) --- .../bigquery/spi/v2/HttpBigQueryRpc.java | 3 ++- .../cloud/bigquery/BigQueryImplTest.java | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 14a14fdb9fcc..ebb8f2644f05 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -457,7 +457,8 @@ public Table apply(TableList.Tables tablePb) { .setCreationTime(tablePb.getCreationTime()) .setTimePartitioning(tablePb.getTimePartitioning()) .setRangePartitioning(tablePb.getRangePartitioning()) - .setClustering(tablePb.getClustering()); + .setClustering(tablePb.getClustering()) + .setLabels(tablePb.getLabels()); } })); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 1fa748199267..12458742a2bf 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -132,6 +132,7 @@ public class BigQueryImplTest { .setField("timestampField"); private static final TimePartitioning TIME_PARTITIONING_NULL_TYPE = TimePartitioning.fromPb(PB_TIMEPARTITIONING); + private static final ImmutableMap LABELS = ImmutableMap.of("key", "value"); private static final StandardTableDefinition TABLE_DEFINITION_WITH_PARTITIONING = StandardTableDefinition.newBuilder() .setSchema(TABLE_SCHEMA) @@ -155,6 +156,8 @@ public class BigQueryImplTest { TableInfo.of(TABLE_ID, TABLE_DEFINITION_WITH_RANGE_PARTITIONING); private static final TableInfo TABLE_INFO = TableInfo.of(TABLE_ID, TABLE_DEFINITION); private static final TableInfo OTHER_TABLE_INFO = TableInfo.of(OTHER_TABLE_ID, TABLE_DEFINITION); + private static final TableInfo OTHER_TABLE_WITH_LABELS_INFO = + TableInfo.newBuilder(OTHER_TABLE_ID, TABLE_DEFINITION).setLabels(LABELS).build(); private static final TableInfo TABLE_INFO_WITH_PROJECT = TableInfo.of(TABLE_ID_WITH_PROJECT, TABLE_DEFINITION); private static final TableInfo MODEL_TABLE_INFO_WITH_PROJECT = @@ -1151,6 +1154,23 @@ public void testListTablesFromDatasetIdWithProject() throws IOException { .listTablesSkipExceptionTranslation(OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS); } + @Test + public void testListTablesWithLabels() throws IOException { + bigquery = options.getService(); + ImmutableList
    tableList = + ImmutableList.of( + new Table(bigquery, new TableInfo.BuilderImpl(OTHER_TABLE_WITH_LABELS_INFO))); + Tuple> result = + Tuple.of(CURSOR, Iterables.transform(tableList, TableInfo.TO_PB_FUNCTION)); + when(bigqueryRpcMock.listTablesSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) + .thenReturn(result); + Page
    page = bigquery.listTables(DATASET); + assertEquals(CURSOR, page.getNextPageToken()); + assertArrayEquals(tableList.toArray(), Iterables.toArray(page.getValues(), Table.class)); + verify(bigqueryRpcMock).listTablesSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); + assertEquals(LABELS, page.getValues().iterator().next().getLabels()); + } + @Test public void testListTablesWithOptions() throws IOException { bigquery = options.getService(); From 82e55877e6fa253629ac0e2ddb6999b2d67b9e8f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 27 Mar 2025 16:01:52 +0100 Subject: [PATCH 3193/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.57.1 (#3740) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e36fac538507..ab70400aa568 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.57.0 + 2.57.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e2bc180229a0..d122e136253f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.57.0 + 2.57.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0ba079c8eae6..05089bea5cbb 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.57.0 + 2.57.1 test From 0700175c2baac18f6ec94507aa99fa3ab6d494f6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 2 Apr 2025 20:35:30 +0200 Subject: [PATCH 3194/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.57.3 (#3743) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ab70400aa568..30f14f205f23 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.57.1 + 2.57.3 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d122e136253f..b40b150b5d97 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.57.1 + 2.57.3 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 05089bea5cbb..86e77230a733 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.57.1 + 2.57.3 test From bb811c068b3efabf04fbe67dbb2979d562c604d9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 4 Apr 2025 15:39:12 +0200 Subject: [PATCH 3195/3441] deps: update netty.version to v4.2.0.final (#3745) --- google-cloud-bigquery/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 07ae4b46b6bf..4530d892dc5f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -15,7 +15,7 @@ google-cloud-bigquery - 4.1.119.Final + 4.2.0.Final From a335927e16d0907d62e584f08fa8393daae40354 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 24 Apr 2025 17:17:23 +0100 Subject: [PATCH 3196/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.46.0 (#3753) * deps: update dependency com.google.cloud:sdk-platform-java-config to v3.46.0 * chore: use latest formatter in lint check * chore: use java 17 in linter job * chore: format java source files --------- Co-authored-by: Diego Marquez --- .github/workflows/ci.yaml | 2 +- .../workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/build.sh | 2 +- .kokoro/continuous/graalvm-native-17.cfg | 2 +- .kokoro/continuous/graalvm-native.cfg | 2 +- .kokoro/presubmit/graalvm-native-17.cfg | 2 +- .kokoro/presubmit/graalvm-native.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- .../java/com/google/cloud/bigquery/Acl.java | 60 +++++++++++++----- .../google/cloud/bigquery/BigQueryImpl.java | 3 +- .../google/cloud/bigquery/ConnectionImpl.java | 8 ++- .../cloud/bigquery/ConnectionProperty.java | 3 +- .../bigquery/ExternalTableDefinition.java | 6 +- .../google/cloud/bigquery/JobException.java | 1 + .../google/cloud/bigquery/JobStatistics.java | 9 ++- .../cloud/bigquery/LegacySQLTypeName.java | 14 +++++ .../google/cloud/bigquery/ParquetOptions.java | 1 + .../google/cloud/bigquery/RoutineInfo.java | 3 +- .../cloud/bigquery/spi/v2/BigQueryRpc.java | 1 + .../testing/RemoteBigQueryHelper.java | 6 +- .../cloud/bigquery/BigQueryImplTest.java | 63 ++++++------------- .../cloud/bigquery/ColumnReferenceTest.java | 3 +- .../cloud/bigquery/ConnectionImplTest.java | 3 +- .../bigquery/CopyJobConfigurationTest.java | 6 +- .../cloud/bigquery/DatasetInfoTest.java | 9 +-- .../bigquery/ExternalTableDefinitionTest.java | 6 +- .../bigquery/ExtractJobConfigurationTest.java | 12 ++-- .../google/cloud/bigquery/ForeignKeyTest.java | 3 +- .../bigquery/GoogleSheetsOptionsTest.java | 6 +- .../bigquery/LoadJobConfigurationTest.java | 12 ++-- .../cloud/bigquery/ParquetOptionsTest.java | 3 +- .../bigquery/QueryJobConfigurationTest.java | 9 +-- .../cloud/bigquery/RoutineInfoTest.java | 3 +- .../cloud/bigquery/TableConstraintsTest.java | 3 +- .../WriteChannelConfigurationTest.java | 6 +- .../cloud/bigquery/it/ITBigQueryTest.java | 63 +++++++------------ pom.xml | 2 +- 37 files changed, 166 insertions(+), 177 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b91fa381f56b..4dd9974f263f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -104,7 +104,7 @@ jobs: - uses: actions/setup-java@v4 with: distribution: temurin - java-version: 11 + java-version: 17 - run: java -version - run: .kokoro/build.sh env: diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index ba965f65ccb0..26ecb69daa4e 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.45.1 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.46.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 64f559885e24..cefb94a70397 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -52,7 +52,7 @@ test) RETURN_CODE=$? ;; lint) - mvn com.coveo:fmt-maven-plugin:check -B -ntp + mvn com.spotify.fmt:fmt-maven-plugin:check -B -ntp RETURN_CODE=$? ;; javadoc) diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-17.cfg index 7e3c1177da44..7d68556e9d83 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.45.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.46.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native.cfg index 9216250efae0..1a6cc8cce170 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.45.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.46.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg index 2ea1a05e0b84..fd82cff87f6f 100644 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.45.1"" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.46.0"" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/presubmit/graalvm-native.cfg index fb1979a33bab..4477760a676f 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/presubmit/graalvm-native.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.45.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.46.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 90ccc6805cb7..551570be20c3 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.45.1 + 3.46.0 diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java index e6a2a0b91def..d52124092a83 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java @@ -92,7 +92,9 @@ public static Role valueOf(String constant) { return type.valueOf(constant); } - /** @return Return the known values for Role. */ + /** + * @return Return the known values for Role. + */ public static Role[] values() { return type.values(); } @@ -184,7 +186,9 @@ public DatasetAclEntity(DatasetId id, List targetTypes) { this.targetTypes = targetTypes; } - /** @return Returns DatasetAclEntity's identity. */ + /** + * @return Returns DatasetAclEntity's identity. + */ public DatasetId getId() { return id; } @@ -240,7 +244,9 @@ public Domain(String domain) { this.domain = domain; } - /** @return Returns the domain name. */ + /** + * @return Returns the domain name. + */ public String getDomain() { return domain; } @@ -348,22 +354,30 @@ Access toPb() { } } - /** @return Returns a Group entity representing all project's owners. */ + /** + * @return Returns a Group entity representing all project's owners. + */ public static Group ofProjectOwners() { return new Group(PROJECT_OWNERS); } - /** @return Returns a Group entity representing all project's readers. */ + /** + * @return Returns a Group entity representing all project's readers. + */ public static Group ofProjectReaders() { return new Group(PROJECT_READERS); } - /** @return Returns a Group entity representing all project's writers. */ + /** + * @return Returns a Group entity representing all project's writers. + */ public static Group ofProjectWriters() { return new Group(PROJECT_WRITERS); } - /** @return Returns a Group entity representing all BigQuery authenticated users. */ + /** + * @return Returns a Group entity representing all BigQuery authenticated users. + */ public static Group ofAllAuthenticatedUsers() { return new Group(ALL_AUTHENTICATED_USERS); } @@ -385,7 +399,9 @@ public User(String email) { this.email = email; } - /** @return Returns user's email. */ + /** + * @return Returns user's email. + */ public String getEmail() { return email; } @@ -437,7 +453,9 @@ public View(TableId id) { this.id = id; } - /** @return Returns table's identity. */ + /** + * @return Returns table's identity. + */ public TableId getId() { return id; } @@ -489,7 +507,9 @@ public Routine(RoutineId id) { this.id = id; } - /** @return Returns routine's identity. */ + /** + * @return Returns routine's identity. + */ public RoutineId getId() { return id; } @@ -537,7 +557,9 @@ public IamMember(String iamMember) { this.iamMember = iamMember; } - /** @return Returns iamMember. */ + /** + * @return Returns iamMember. + */ public String getIamMember() { return iamMember; } @@ -574,16 +596,19 @@ Access toPb() { public static final class Expr implements Serializable { // Textual representation of an expression in Common Expression Language syntax. private final String expression; + /** * Optional. Title for the expression, i.e. a short string describing its purpose. This can be * used e.g. in UIs which allow to enter the expression. */ private final String title; + /** * Optional. Description of the expression. This is a longer text which describes the * expression, e.g. when hovered over it in a UI. */ private final String description; + /** * Optional. String indicating the location of the expression for error reporting, e.g. a file * name and a position in the file. @@ -713,16 +738,23 @@ private Acl(Entity entity, Role role, Expr condition) { this.condition = condition; } - /** @return Returns the entity for this ACL. */ + /** + * @return Returns the entity for this ACL. + */ public Entity getEntity() { return entity; } - /** @return Returns the role specified by this ACL. */ + /** + * @return Returns the role specified by this ACL. + */ public Role getRole() { return role; } - /** @return Returns the condition specified by this ACL. */ + + /** + * @return Returns the condition specified by this ACL. + */ public Expr getCondition() { return condition; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 3db8c88f7738..8f8e45ad3426 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1409,8 +1409,7 @@ public TableResult query(QueryJobConfiguration configuration, JobOption... optio if (getOptions().isQueryPreviewEnabled()) { configuration = - configuration - .toBuilder() + configuration.toBuilder() .setJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL) .build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index d524cedfc8bd..eb3a32db74ce 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -135,6 +135,7 @@ private int getBufferSize() { ? 20000 : Math.min(connectionSettings.getNumBufferedRows() * 2, 100000)); } + /** * Cancel method shutdowns the pageFetcher and producerWorker threads gracefully using interrupt. * The pageFetcher threat will not request for any subsequent threads after interrupting and @@ -263,6 +264,7 @@ private BigQueryResult getExecuteSelectResponse( throw new BigQuerySQLException(e.getMessage(), e, e.getErrors()); } } + /** * Execute a SQL statement that returns a single ResultSet and returns a ListenableFuture to * process the response asynchronously. @@ -527,6 +529,7 @@ BigQueryResultStats getBigQueryResultSetStats(JobId jobId) { queryStatistics.getSessionInfo() == null ? null : queryStatistics.getSessionInfo(); return new BigQueryResultStatsImpl(queryStatistics, sessionInfo); } + /* This method processed the first page of GetQueryResultsResponse and then it uses tabledata.list */ @VisibleForTesting BigQueryResult tableDataList(GetQueryResultsResponse firstPage, JobId jobId) { @@ -1109,7 +1112,9 @@ private ArrowRowReader(ArrowSchema arrowSchema, Map arrowNameTo loader = new VectorLoader(root); } - /** @param batch object returned from the ReadRowsResponse. */ + /** + * @param batch object returned from the ReadRowsResponse. + */ private void processRows( ArrowRecordBatch batch, BlockingQueue buffer, Schema schema) throws IOException { // deserialize the values and consume the hash of the values @@ -1166,6 +1171,7 @@ public void close() { allocator.close(); } } + /*Returns just the first page of GetQueryResultsResponse using the jobId*/ @VisibleForTesting GetQueryResultsResponse getQueryResultsFirstPage(JobId jobId) { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java index a6206712edb6..7abd36b41b23 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java @@ -55,7 +55,8 @@ public static final class Builder { private String key; private String value; - private Builder() {}; + private Builder() {} + ; private Builder(ConnectionProperty properties) { this.key = properties.key; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index 5af3085e201c..ea4cceeade87 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -167,7 +167,8 @@ public Builder setFormatOptions(FormatOptions formatOptions) { /** Sets the table Hive partitioning options. */ public Builder setHivePartitioningOptions(HivePartitioningOptions hivePartitioningOptions) { return setHivePartitioningOptionsInner(hivePartitioningOptions); - }; + } + ; /** * When creating an external table, the user can provide a reference file with the table schema. @@ -253,7 +254,8 @@ public Builder setMaxStaleness(String maxStaleness) { @Nullable public Boolean ignoreUnknownValues() { return getIgnoreUnknownValues(); - }; + } + ; @Nullable public abstract Boolean getIgnoreUnknownValues(); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java index 612affd315f3..0bfa2572a30c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java @@ -34,6 +34,7 @@ public class JobException extends RuntimeException { public JobId getId() { return id; } + /** * The errors reported by the job. * diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index 407e25a8f3bb..c78378ab53f7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -1400,7 +1400,8 @@ public static class Builder { private String name; private Long slotMs; - private Builder() {}; + private Builder() {} + ; Builder setName(String name) { this.name = name; @@ -1486,7 +1487,8 @@ public static class Builder { private String transactionId; - private Builder() {}; + private Builder() {} + ; Builder setTransactionId(String transactionId) { this.transactionId = transactionId; @@ -1557,7 +1559,8 @@ public static class Builder { private String sessionId; - private Builder() {}; + private Builder() {} + ; Builder setSessionId(String sessionId) { this.sessionId = sessionId; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java index dec2583e90dc..334e3290b5e1 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java @@ -46,56 +46,70 @@ public LegacySQLTypeName apply(String constant) { /** Variable-length binary data. */ public static final LegacySQLTypeName BYTES = type.createAndRegister("BYTES").setStandardType(StandardSQLTypeName.BYTES); + /** Variable-length character (Unicode) data. */ public static final LegacySQLTypeName STRING = type.createAndRegister("STRING").setStandardType(StandardSQLTypeName.STRING); + /** A 64-bit signed integer value. */ public static final LegacySQLTypeName INTEGER = type.createAndRegister("INTEGER").setStandardType(StandardSQLTypeName.INT64); + /** A 64-bit IEEE binary floating-point value. */ public static final LegacySQLTypeName FLOAT = type.createAndRegister("FLOAT").setStandardType(StandardSQLTypeName.FLOAT64); + /** * A decimal value with 38 digits of precision and 9 digits of scale. Note, support for this type * is limited in legacy SQL. */ public static final LegacySQLTypeName NUMERIC = type.createAndRegister("NUMERIC").setStandardType(StandardSQLTypeName.NUMERIC); + /** * A decimal value with 76+ digits of precision (the 77th digit is partial) and 38 digits of scale */ public static final LegacySQLTypeName BIGNUMERIC = type.createAndRegister("BIGNUMERIC").setStandardType(StandardSQLTypeName.BIGNUMERIC); + /** A Boolean value (true or false). */ public static final LegacySQLTypeName BOOLEAN = type.createAndRegister("BOOLEAN").setStandardType(StandardSQLTypeName.BOOL); + /** Represents an absolute point in time, with microsecond precision. */ public static final LegacySQLTypeName TIMESTAMP = type.createAndRegister("TIMESTAMP").setStandardType(StandardSQLTypeName.TIMESTAMP); + /** Represents a logical calendar date. Note, support for this type is limited in legacy SQL. */ public static final LegacySQLTypeName DATE = type.createAndRegister("DATE").setStandardType(StandardSQLTypeName.DATE); + /** Represents a set of geographic points, represented as a Well Known Text (WKT) string. */ public static final LegacySQLTypeName GEOGRAPHY = type.createAndRegister("GEOGRAPHY").setStandardType(StandardSQLTypeName.GEOGRAPHY); + /** * Represents a time, independent of a specific date, to microsecond precision. Note, support for * this type is limited in legacy SQL. */ public static final LegacySQLTypeName TIME = type.createAndRegister("TIME").setStandardType(StandardSQLTypeName.TIME); + /** * Represents a year, month, day, hour, minute, second, and subsecond (microsecond precision). * Note, support for this type is limited in legacy SQL. */ public static final LegacySQLTypeName DATETIME = type.createAndRegister("DATETIME").setStandardType(StandardSQLTypeName.DATETIME); + /** A record type with a nested schema. */ public static final LegacySQLTypeName RECORD = type.createAndRegister("RECORD").setStandardType(StandardSQLTypeName.STRUCT); + /** Represents JSON data */ public static final LegacySQLTypeName JSON = type.createAndRegister("JSON").setStandardType(StandardSQLTypeName.JSON); + /** Represents duration or amount of time. */ public static final LegacySQLTypeName INTERVAL = type.createAndRegister("INTERVAL").setStandardType(StandardSQLTypeName.INTERVAL); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java index b150f3b06b43..cc85eeda6829 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java @@ -79,6 +79,7 @@ public ParquetOptions build() { return new ParquetOptions(this); } } + /** Returns a builder for the {@link ParquetOptions} object. */ public Builder toBuilder() { return new Builder(this); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java index 7cea99f93f80..646a2fdeaaf6 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java @@ -429,7 +429,8 @@ public String getBody() { /** Returns the Remote function specific options. */ public RemoteFunctionOptions getRemoteFunctionOptions() { return remoteFunctionOptions; - }; + } + ; /** Returns the data governance type of the routine, e.g. DATA_MASKING. */ public String getDataGovernanceType() { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index 8b0a83531eef..bbde70dc5a0e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -234,6 +234,7 @@ Tuple> listModels( Tuple> listRoutines( String projectId, String datasetId, Map options); + /** * Deletes the requested routine. * diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java index 2853c4676103..4b1767362c86 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java @@ -95,8 +95,7 @@ public static RemoteBigQueryHelper create(String projectId, InputStream keyStrea try { HttpTransportOptions transportOptions = BigQueryOptions.getDefaultHttpTransportOptions(); transportOptions = - transportOptions - .toBuilder() + transportOptions.toBuilder() .setConnectTimeout(connectTimeout) .setReadTimeout(connectTimeout) .build(); @@ -123,8 +122,7 @@ public static RemoteBigQueryHelper create(String projectId, InputStream keyStrea public static RemoteBigQueryHelper create() { HttpTransportOptions transportOptions = BigQueryOptions.getDefaultHttpTransportOptions(); transportOptions = - transportOptions - .toBuilder() + transportOptions.toBuilder() .setConnectTimeout(connectTimeout) .setReadTimeout(connectTimeout) .build(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 12458742a2bf..c0367beae4cf 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -798,9 +798,7 @@ public void testDeleteDatasetWithOptions() throws IOException { @Test public void testUpdateDataset() throws IOException { DatasetInfo updatedDatasetInfo = - DATASET_INFO - .setProjectId(OTHER_PROJECT) - .toBuilder() + DATASET_INFO.setProjectId(OTHER_PROJECT).toBuilder() .setDescription("newDescription") .build(); when(bigqueryRpcMock.patchSkipExceptionTranslation( @@ -1276,9 +1274,7 @@ public void testDeleteModel() throws IOException { @Test public void testUpdateModel() throws IOException { ModelInfo updateModelInfo = - MODEL_INFO_WITH_PROJECT - .setProjectId(OTHER_PROJECT) - .toBuilder() + MODEL_INFO_WITH_PROJECT.setProjectId(OTHER_PROJECT).toBuilder() .setDescription("newDescription") .build(); when(bigqueryRpcMock.patchSkipExceptionTranslation(updateModelInfo.toPb(), EMPTY_RPC_OPTIONS)) @@ -1422,8 +1418,7 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { .thenThrow(new BigQueryException(500, "InternalError")) .thenReturn(responsePb); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -1467,8 +1462,7 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { when(bigqueryRpcMock.insertAll(PROJECT, DATASET, TABLE, requestPb)) .thenThrow(new BigQueryException(500, "InternalError")); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -1719,8 +1713,7 @@ public void testCreateJobFailureShouldRetryExceptionHandlerExceptions() throws I bigquery = options.getService(); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -1745,8 +1738,7 @@ public void testCreateJobFailureShouldRetry() throws IOException { bigquery = options.getService(); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -1778,8 +1770,7 @@ public void testCreateJobWithBigQueryRetryConfigFailureShouldRetry() throws IOEx bigquery = options.getService(); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -1809,8 +1800,7 @@ public void testCreateJobWithBigQueryRetryConfigFailureShouldNotRetry() throws I bigquery = options.getService(); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -1842,8 +1832,7 @@ public void testCreateJobWithRetryOptionsFailureShouldRetry() throws IOException bigquery = options.getService(); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -1872,8 +1861,7 @@ public void testCreateJobWithRetryOptionsFailureShouldNotRetry() throws IOExcept bigquery = options.getService(); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -2674,8 +2662,7 @@ public void testGetQueryResultsRetry() throws IOException { .thenReturn(responsePb); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -2750,8 +2737,7 @@ public void testGetDatasetRetryableException() throws IOException { .thenThrow(new BigQueryException(500, "InternalError")) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -2768,8 +2754,7 @@ public void testNonRetryableException() throws IOException { when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(501, exceptionMessage)); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -2788,8 +2773,7 @@ public void testRuntimeException() throws IOException { when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenThrow(new RuntimeException(exceptionMessage)); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -2806,8 +2790,7 @@ public void testRuntimeException() throws IOException { public void testQueryDryRun() throws Exception { // https://github.com/googleapis/google-cloud-java/issues/2479 try { - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService() @@ -2838,8 +2821,7 @@ public void testFastQuerySQLShouldRetry() throws Exception { .thenReturn(responsePb); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -2880,8 +2862,7 @@ public void testFastQueryDMLShouldRetry() throws Exception { .thenReturn(responsePb); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -2925,8 +2906,7 @@ public void testFastQueryRateLimitIdempotency() throws Exception { .thenReturn(responsePb); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -2994,8 +2974,7 @@ public void testFastQueryDDLShouldRetry() throws Exception { .thenReturn(responsePb); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); @@ -3112,9 +3091,7 @@ public void testGetRoutineWithEnabledThrowNotFoundException() throws IOException @Test public void testUpdateRoutine() throws IOException { RoutineInfo updatedRoutineInfo = - ROUTINE_INFO - .setProjectId(OTHER_PROJECT) - .toBuilder() + ROUTINE_INFO.setProjectId(OTHER_PROJECT).toBuilder() .setDescription("newDescription") .build(); when(bigqueryRpcMock.updateSkipExceptionTranslation( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java index 7a6cac30f606..0cc680dddf8f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java @@ -32,8 +32,7 @@ public class ColumnReferenceTest { public void testToBuilder() { compareColumnReferenceDefinition(COLUMN_REFERENCE, COLUMN_REFERENCE.toBuilder().build()); ColumnReference columnReference = - COLUMN_REFERENCE - .toBuilder() + COLUMN_REFERENCE.toBuilder() .setReferencingColumn("col1") .setReferencedColumn("col2") .build(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java index 65bbb6c56a98..4edc6f05d1ba 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java @@ -155,8 +155,7 @@ public void setUp() { .setNumBufferedRows(DEFAULT_PAGE_SIZE) .build(); bigquery = - options - .toBuilder() + options.toBuilder() .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java index dfe76adafeba..70a4983df71a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java @@ -67,8 +67,7 @@ public void testToBuilder() { COPY_JOB_CONFIGURATION_MULTIPLE_TABLES, COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.toBuilder().build()); CopyJobConfiguration jobConfiguration = - COPY_JOB_CONFIGURATION - .toBuilder() + COPY_JOB_CONFIGURATION.toBuilder() .setDestinationTable(TableId.of("dataset", "newTable")) .build(); assertEquals("newTable", jobConfiguration.getDestinationTable().getTable()); @@ -143,8 +142,7 @@ public void testSetProjectId() { @Test public void testSetProjectIdDoNotOverride() { CopyJobConfiguration configuration = - COPY_JOB_CONFIGURATION_MULTIPLE_TABLES - .toBuilder() + COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.toBuilder() .setSourceTables( Lists.transform( SOURCE_TABLES, diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java index e999b86e251f..1b75195cec50 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -92,8 +92,7 @@ public class DatasetInfoTest { .setResourceTags(RESOURCE_TAGS) .build(); private static final DatasetInfo DATASET_INFO_COMPLETE = - DATASET_INFO - .toBuilder() + DATASET_INFO.toBuilder() .setDatasetId(DATASET_ID_COMPLETE) .setAcl(ACCESS_RULES_COMPLETE) .build(); @@ -111,8 +110,7 @@ public void testToBuilder() { DATASET_INFO_COMPLETE_WITH_IAM_MEMBER, DATASET_INFO_COMPLETE_WITH_IAM_MEMBER.toBuilder().build()); DatasetInfo datasetInfo = - DATASET_INFO - .toBuilder() + DATASET_INFO.toBuilder() .setDatasetId(DatasetId.of("dataset2")) .setDescription("description2") .build(); @@ -141,8 +139,7 @@ public void testToBuilderWithExternalDatasetReference() { .setConnection("connection2") .build(); DatasetInfo datasetInfo = - DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE - .toBuilder() + DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE.toBuilder() .setExternalDatasetReference(externalDatasetReference) .build(); assertEquals(externalDatasetReference, datasetInfo.getExternalDatasetReference()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index e6e7e0fcc64b..93a4425dfd97 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -87,16 +87,14 @@ public void testToBuilder() { compareExternalTableDefinition( EXTERNAL_TABLE_DEFINITION, EXTERNAL_TABLE_DEFINITION.toBuilder().build()); ExternalTableDefinition externalTableDefinition = - EXTERNAL_TABLE_DEFINITION - .toBuilder() + EXTERNAL_TABLE_DEFINITION.toBuilder() .setCompression("NONE") .setConnectionId("00000") .build(); assertEquals("NONE", externalTableDefinition.getCompression()); assertEquals("00000", externalTableDefinition.getConnectionId()); externalTableDefinition = - externalTableDefinition - .toBuilder() + externalTableDefinition.toBuilder() .setCompression(COMPRESSION) .setConnectionId(CONNECTION_ID) .build(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java index 95142a068081..ce9e35dddf18 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java @@ -92,8 +92,7 @@ public void testToBuilder() { compareExtractJobConfiguration( EXTRACT_CONFIGURATION_MODEL, EXTRACT_CONFIGURATION_MODEL.toBuilder().build()); ExtractJobConfiguration modelJob = - EXTRACT_CONFIGURATION_MODEL - .toBuilder() + EXTRACT_CONFIGURATION_MODEL.toBuilder() .setSourceModel(ModelId.of("dataset", "newModel")) .build(); assertEquals("newModel", modelJob.getSourceModel().getModel()); @@ -102,8 +101,7 @@ public void testToBuilder() { compareExtractJobConfiguration( EXTRACT_CONFIGURATION_AVRO, EXTRACT_CONFIGURATION_AVRO.toBuilder().build()); ExtractJobConfiguration avroJob = - EXTRACT_CONFIGURATION_AVRO - .toBuilder() + EXTRACT_CONFIGURATION_AVRO.toBuilder() .setSourceTable(TableId.of("dataset", "avroTable")) .build(); assertEquals("avroTable", avroJob.getSourceTable().getTable()); @@ -223,15 +221,13 @@ public void testSetProjectId() { @Test public void testSetProjectIdDoNotOverride() { ExtractJobConfiguration configuration = - EXTRACT_CONFIGURATION - .toBuilder() + EXTRACT_CONFIGURATION.toBuilder() .setSourceTable(TABLE_ID.setProjectId(TEST_PROJECT_ID)) .build() .setProjectId("do-not-update"); assertEquals(TEST_PROJECT_ID, configuration.getSourceTable().getProject()); ExtractJobConfiguration modelConfiguration = - EXTRACT_CONFIGURATION_MODEL - .toBuilder() + EXTRACT_CONFIGURATION_MODEL.toBuilder() .setSourceModel(MODEL_ID.setProjectId(TEST_PROJECT_ID)) .build() .setProjectId("do-not-update"); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java index 5cb2b418f2c1..1ebd93ef42d2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java @@ -54,8 +54,7 @@ public void testToBuilder() { .setReferencedColumn("to2") .build()); ForeignKey foreignKey = - FOREIGN_KEY - .toBuilder() + FOREIGN_KEY.toBuilder() .setName("test") .setReferencedTable(referencedTable) .setColumnReferences(columnReferences) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java index d286358ca167..efbee79b69df 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java @@ -44,16 +44,14 @@ public void testToBuilder() { compareGoogleSheetsOptions( GOOGLE_SHEETS_OPTIONS_RANGE, GOOGLE_SHEETS_OPTIONS_RANGE.toBuilder().build()); GoogleSheetsOptions googleSheetsOptionsRange = - GOOGLE_SHEETS_OPTIONS_RANGE - .toBuilder() + GOOGLE_SHEETS_OPTIONS_RANGE.toBuilder() .setSkipLeadingRows(123) .setRange("sheet1!A1:A100") .build(); assertThat(googleSheetsOptionsRange.getSkipLeadingRows()).isEqualTo(123); assertThat(googleSheetsOptionsRange.getRange()).isEqualTo("sheet1!A1:A100"); googleSheetsOptionsRange = - googleSheetsOptionsRange - .toBuilder() + googleSheetsOptionsRange.toBuilder() .setSkipLeadingRows(SKIP_LEADING_ROWS) .setRange(RANGE) .build(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index 85709a74a29f..92a6171875cc 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -151,8 +151,7 @@ public class LoadJobConfigurationTest { public void testToBuilder() { compareLoadJobConfiguration(LOAD_CONFIGURATION_CSV, LOAD_CONFIGURATION_CSV.toBuilder().build()); LoadJobConfiguration configurationCSV = - LOAD_CONFIGURATION_CSV - .toBuilder() + LOAD_CONFIGURATION_CSV.toBuilder() .setDestinationTable(TableId.of("dataset", "newTable")) .build(); assertEquals("newTable", configurationCSV.getDestinationTable().getTable()); @@ -162,8 +161,7 @@ public void testToBuilder() { compareLoadJobConfiguration( LOAD_CONFIGURATION_BACKUP, LOAD_CONFIGURATION_BACKUP.toBuilder().build()); LoadJobConfiguration configurationBackup = - LOAD_CONFIGURATION_BACKUP - .toBuilder() + LOAD_CONFIGURATION_BACKUP.toBuilder() .setDestinationTable(TableId.of("dataset", "newTable")) .build(); assertEquals("newTable", configurationBackup.getDestinationTable().getTable()); @@ -173,8 +171,7 @@ public void testToBuilder() { compareLoadJobConfiguration( LOAD_CONFIGURATION_AVRO, LOAD_CONFIGURATION_AVRO.toBuilder().build()); LoadJobConfiguration configurationAvro = - LOAD_CONFIGURATION_AVRO - .toBuilder() + LOAD_CONFIGURATION_AVRO.toBuilder() .setDestinationTable(TableId.of("dataset", "newTable")) .build(); assertEquals("newTable", configurationAvro.getDestinationTable().getTable()); @@ -225,8 +222,7 @@ public void testSetProjectId() { @Test public void testSetProjectIdDoNotOverride() { LoadConfiguration configuration = - LOAD_CONFIGURATION_CSV - .toBuilder() + LOAD_CONFIGURATION_CSV.toBuilder() .setDestinationTable(TABLE_ID.setProjectId(TEST_PROJECT_ID)) .build() .setProjectId("do-not-update"); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java index ca21d805c64c..c70ac3355ea6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java @@ -36,8 +36,7 @@ public void testToBuilder() { ParquetOptions parquetOptions = OPTIONS.toBuilder().setEnableListInference(true).build(); assertEquals(true, parquetOptions.getEnableListInference()); parquetOptions = - parquetOptions - .toBuilder() + parquetOptions.toBuilder() .setEnumAsString(true) .setMapTargetType("ARRAY_OF_STRUCT") .build(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index f71e152e625e..9dd393004406 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -141,14 +141,12 @@ public class QueryJobConfigurationTest { .setParameterMode(PARAMETER_MODE) .build(); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_ADD_POSITIONAL_PARAMETER = - QUERY_JOB_CONFIGURATION - .toBuilder() + QUERY_JOB_CONFIGURATION.toBuilder() .setPositionalParameters(ImmutableList.of()) .addPositionalParameter(STRING_PARAMETER) .build(); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_SET_NAME_PARAMETER = - QUERY_JOB_CONFIGURATION - .toBuilder() + QUERY_JOB_CONFIGURATION.toBuilder() .setPositionalParameters(ImmutableList.of()) .setNamedParameters(NAME_PARAMETER) .build(); @@ -206,8 +204,7 @@ public void testSetProjectId() { @Test public void testSetProjectIdDoNotOverride() { QueryJobConfiguration configuration = - QUERY_JOB_CONFIGURATION - .toBuilder() + QUERY_JOB_CONFIGURATION.toBuilder() .setDestinationTable(TABLE_ID.setProjectId(TEST_PROJECT_ID)) .build() .setProjectId("update-only-on-dataset"); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java index ae061b62f883..145dc8914c92 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java @@ -52,8 +52,7 @@ public class RoutineInfoTest { private static final String BODY = "body"; private static final RoutineInfo ROUTINE_INFO = - RoutineInfo.of(ROUTINE_ID) - .toBuilder() + RoutineInfo.of(ROUTINE_ID).toBuilder() .setEtag(ETAG) .setRoutineType(ROUTINE_TYPE) .setCreationTime(CREATION_TIME) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java index 05f3bbf41c5f..7d0f57ef7606 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java @@ -81,8 +81,7 @@ public void testToBuilder() { .build(); TableConstraints tableConstraints = - TABLE_CONSTRAINTS - .toBuilder() + TABLE_CONSTRAINTS.toBuilder() .setForeignKeys(Arrays.asList(foreignKey1, foreignKey2)) .setPrimaryKey(primaryKey) .build(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java index 7b912ce2bb72..240f12185cda 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java @@ -124,8 +124,7 @@ public class WriteChannelConfigurationTest { public void testToBuilder() { compareLoadConfiguration(LOAD_CONFIGURATION_CSV, LOAD_CONFIGURATION_CSV.toBuilder().build()); WriteChannelConfiguration configuration = - LOAD_CONFIGURATION_CSV - .toBuilder() + LOAD_CONFIGURATION_CSV.toBuilder() .setDestinationTable(TableId.of("dataset", "newTable")) .build(); assertEquals("newTable", configuration.getDestinationTable().getTable()); @@ -134,8 +133,7 @@ public void testToBuilder() { compareLoadConfiguration(LOAD_CONFIGURATION_AVRO, LOAD_CONFIGURATION_AVRO.toBuilder().build()); WriteChannelConfiguration configurationAvro = - LOAD_CONFIGURATION_AVRO - .toBuilder() + LOAD_CONFIGURATION_AVRO.toBuilder() .setDestinationTable(TableId.of("dataset", "newTable")) .build(); assertEquals("newTable", configurationAvro.getDestinationTable().getTable()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index a7bf5fa3e08b..a28cb20ba297 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1284,8 +1284,7 @@ public void testUpdateDataset() { updateLabels.put("a", null); Dataset updatedDataset = bigquery.update( - dataset - .toBuilder() + dataset.toBuilder() .setDescription("Updated Description") .setLabels(updateLabels) .setStorageBillingModel("LOGICAL") @@ -1358,8 +1357,7 @@ public void testUpdateDatabaseWithAccessPolicyVersion() throws IOException { DatasetOption datasetOption = DatasetOption.accessPolicyVersion(3); Dataset updatedDataset = bigquery.update( - dataset - .toBuilder() + dataset.toBuilder() .setDescription("Updated Description") .setLabels(null) .setAcl(acls) @@ -2040,8 +2038,7 @@ public void testCreateAndUpdateTableWithPolicyTags() throws IOException { fieldList.add(stringFieldWithPolicy); Schema updatedSchemaWithPolicyTag = Schema.of(fieldList); Table updatedTable = - createdTableForUpdate - .toBuilder() + createdTableForUpdate.toBuilder() .setDefinition(StandardTableDefinition.of(updatedSchemaWithPolicyTag)) .build(); updatedTable.update(); @@ -2411,14 +2408,10 @@ public void testUpdatePermExternableTableWithAutodetectSchemaUpdatesSchema() { Table updatedTable = bigquery.update( - createdTable - .toBuilder() + createdTable.toBuilder() .setDefinition( ((ExternalTableDefinition) createdTable.getDefinition()) - .toBuilder() - .setSchema(null) - .setAutodetect(true) - .build()) + .toBuilder().setSchema(null).setAutodetect(true).build()) .build(), BigQuery.TableOption.autodetectSchema(true)); // Schema should change. @@ -2518,8 +2511,7 @@ public void testTableIAM() { // get and modify policy Policy policy = bigquery.getIamPolicy(tableId); Policy editedPolicy = - policy - .toBuilder() + policy.toBuilder() .addIdentity(Role.of("roles/bigquery.dataViewer"), Identity.allUsers()) .build(); Policy updatedPolicy = bigquery.setIamPolicy(tableId, editedPolicy); @@ -2655,8 +2647,7 @@ public void testUpdateTable() { updateLabels.put("a", null); Table updatedTable = bigquery.update( - createdTable - .toBuilder() + createdTable.toBuilder() .setDescription("Updated Description") .setLabels(updateLabels) .build()); @@ -2685,11 +2676,9 @@ public void testUpdateTimePartitioning() { .isNull(); table = - table - .toBuilder() + table.toBuilder() .setDefinition( - tableDefinition - .toBuilder() + tableDefinition.toBuilder() .setTimePartitioning(TimePartitioning.of(Type.DAY, 42L)) .build()) .build() @@ -2700,11 +2689,9 @@ public void testUpdateTimePartitioning() { .isEqualTo(42L); table = - table - .toBuilder() + table.toBuilder() .setDefinition( - tableDefinition - .toBuilder() + tableDefinition.toBuilder() .setTimePartitioning(TimePartitioning.of(Type.DAY)) .build()) .build() @@ -3144,8 +3131,7 @@ public void testRoutineLifecycle() throws InterruptedException { // Mutate metadata. RoutineInfo newInfo = - routine - .toBuilder() + routine.toBuilder() .setBody("x * 4") .setReturnType(routine.getReturnType()) .setArguments(routine.getArguments()) @@ -3578,9 +3564,7 @@ public void testExecuteSelectWithCredentials() throws SQLException { // Create a new bigQuery object but explicitly set the credentials. RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); BigQueryOptions bigQueryOptions = - bigqueryHelper - .getOptions() - .toBuilder() + bigqueryHelper.getOptions().toBuilder() .setCredentials(bigquery.getOptions().getCredentials()) .build(); BigQuery bigQueryGoodCredentials = bigQueryOptions.getService(); @@ -3602,9 +3586,7 @@ public void testExecuteSelectWithCredentials() throws SQLException { // Scenario 2. // Create a new bigQuery object but explicitly an invalid credential. BigQueryOptions bigQueryOptionsBadCredentials = - bigqueryHelper - .getOptions() - .toBuilder() + bigqueryHelper.getOptions().toBuilder() .setCredentials(loadCredentials(FAKE_JSON_CRED_WITH_GOOGLE_DOMAIN)) .build(); BigQuery bigQueryBadCredentials = bigQueryOptionsBadCredentials.getService(); @@ -4090,7 +4072,8 @@ public void testReadAPIIterationAndOrder() @Test public void testReadAPIIterationAndOrderAsync() - throws SQLException, ExecutionException, + throws SQLException, + ExecutionException, InterruptedException { // use read API to read 300K records and check the order String query = "SELECT date, county, state_name, confirmed_cases, deaths / 10 FROM " @@ -4137,7 +4120,8 @@ public void testReadAPIIterationAndOrderAsync() // be uncompleted in 1000ms is nondeterministic! Though very likely it won't be complete in the // specified amount of time public void testExecuteSelectAsyncCancel() - throws SQLException, ExecutionException, + throws SQLException, + ExecutionException, InterruptedException { // use read API to read 300K records and check the order String query = "SELECT date, county, state_name, confirmed_cases, deaths FROM " @@ -4183,7 +4167,8 @@ public void testExecuteSelectAsyncCancel() // be uncompleted in 1000ms is nondeterministic! Though very likely it won't be complete in the // specified amount of time public void testExecuteSelectAsyncTimeout() - throws SQLException, ExecutionException, + throws SQLException, + ExecutionException, InterruptedException { // use read API to read 300K records and check the order String query = "SELECT date, county, state_name, confirmed_cases, deaths FROM " @@ -7219,9 +7204,7 @@ public void testStatelessQueriesWithLocation() throws Exception { public void testUniverseDomainWithInvalidUniverseDomain() { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); BigQueryOptions bigQueryOptions = - bigqueryHelper - .getOptions() - .toBuilder() + bigqueryHelper.getOptions().toBuilder() .setCredentials(loadCredentials(FAKE_JSON_CRED_WITH_GOOGLE_DOMAIN)) .setUniverseDomain("invalid.domain") .build(); @@ -7245,9 +7228,7 @@ public void testUniverseDomainWithInvalidUniverseDomain() { public void testInvalidUniverseDomainWithMismatchCredentials() { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); BigQueryOptions bigQueryOptions = - bigqueryHelper - .getOptions() - .toBuilder() + bigqueryHelper.getOptions().toBuilder() .setCredentials(loadCredentials(FAKE_JSON_CRED_WITH_INVALID_DOMAIN)) .build(); BigQuery bigQuery = bigQueryOptions.getService(); diff --git a/pom.xml b/pom.xml index da71f55ede1e..afdb556d2211 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.45.1 + 3.46.0 From cf9cb5047d783353c47feb83b7068f0320e5a131 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Thu, 24 Apr 2025 14:33:12 -0400 Subject: [PATCH 3197/3441] build: introduce testing infra for GraalVM "C" (#3751) * build: introduce testing infra for GraalVM "C" * chore: use nightly jobs * chore: delete nightly jobs * chore: update images to the latest --- .kokoro/build.sh | 5 --- ...raalvm-native.cfg => graalvm-native-a.cfg} | 2 +- ...lvm-native-17.cfg => graalvm-native-b.cfg} | 4 +- .../graalvm-native-c.cfg} | 7 +++- .kokoro/nightly/graalvm-native-17.cfg | 38 ------------------- .kokoro/nightly/graalvm-native.cfg | 38 ------------------- .kokoro/presubmit/graalvm-native-17.cfg | 33 ---------------- 7 files changed, 9 insertions(+), 118 deletions(-) rename .kokoro/continuous/{graalvm-native.cfg => graalvm-native-a.cfg} (98%) rename .kokoro/continuous/{graalvm-native-17.cfg => graalvm-native-b.cfg} (95%) rename .kokoro/{presubmit/graalvm-native.cfg => continuous/graalvm-native-c.cfg} (90%) delete mode 100644 .kokoro/nightly/graalvm-native-17.cfg delete mode 100644 .kokoro/nightly/graalvm-native.cfg delete mode 100644 .kokoro/presubmit/graalvm-native-17.cfg diff --git a/.kokoro/build.sh b/.kokoro/build.sh index cefb94a70397..084b07b25b5f 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -75,11 +75,6 @@ graalvm) mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative test RETURN_CODE=$? ;; -graalvm17) - # Run Unit and Integration Tests with Native Image - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative test - RETURN_CODE=$? - ;; samples) SAMPLES_DIR=samples # only run ITs in snapshot/ on presubmit PRs. run ITs in all 3 samples/ subdirectories otherwise. diff --git a/.kokoro/continuous/graalvm-native.cfg b/.kokoro/continuous/graalvm-native-a.cfg similarity index 98% rename from .kokoro/continuous/graalvm-native.cfg rename to .kokoro/continuous/graalvm-native-a.cfg index 1a6cc8cce170..6ae3c9e81b64 100644 --- a/.kokoro/continuous/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.46.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.46.2" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-17.cfg b/.kokoro/continuous/graalvm-native-b.cfg similarity index 95% rename from .kokoro/continuous/graalvm-native-17.cfg rename to .kokoro/continuous/graalvm-native-b.cfg index 7d68556e9d83..821f86ccae3b 100644 --- a/.kokoro/continuous/graalvm-native-17.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,12 +3,12 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.46.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.46.2" } env_vars: { key: "JOB_TYPE" - value: "graalvm17" + value: "graalvm" } # TODO: remove this after we've migrated all tests and scripts diff --git a/.kokoro/presubmit/graalvm-native.cfg b/.kokoro/continuous/graalvm-native-c.cfg similarity index 90% rename from .kokoro/presubmit/graalvm-native.cfg rename to .kokoro/continuous/graalvm-native-c.cfg index 4477760a676f..16e3d4ca403c 100644 --- a/.kokoro/presubmit/graalvm-native.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.46.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.46.2" } env_vars: { @@ -31,3 +31,8 @@ env_vars: { key: "SECRET_MANAGER_KEYS" value: "java-it-service-account" } + +env_vars: { + key: "ENABLE_FLAKYBOT" + value: "true" +} \ No newline at end of file diff --git a/.kokoro/nightly/graalvm-native-17.cfg b/.kokoro/nightly/graalvm-native-17.cfg deleted file mode 100644 index 15ed86292b1c..000000000000 --- a/.kokoro/nightly/graalvm-native-17.cfg +++ /dev/null @@ -1,38 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17" -} - -env_vars: { - key: "JOB_TYPE" - value: "nightly-graalvm17" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "true" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} \ No newline at end of file diff --git a/.kokoro/nightly/graalvm-native.cfg b/.kokoro/nightly/graalvm-native.cfg deleted file mode 100644 index 57c1e35116d3..000000000000 --- a/.kokoro/nightly/graalvm-native.cfg +++ /dev/null @@ -1,38 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/graalvm" -} - -env_vars: { - key: "JOB_TYPE" - value: "nightly-graalvm" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "true" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg deleted file mode 100644 index fd82cff87f6f..000000000000 --- a/.kokoro/presubmit/graalvm-native-17.cfg +++ /dev/null @@ -1,33 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.46.0"" -} - -env_vars: { - key: "JOB_TYPE" - value: "graalvm17" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} \ No newline at end of file From b71bd8f71d52a11026cac7dd6a98d71e9f2bc798 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 25 Apr 2025 01:53:43 -0400 Subject: [PATCH 3198/3441] chore(main): release 2.49.1 (#3739) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 13 +++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 22 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4937424c680..a9100a72b896 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [2.49.1](https://github.com/googleapis/java-bigquery/compare/v2.49.0...v2.49.1) (2025-04-24) + + +### Bug Fixes + +* Add labels to converter for listTables method ([#3735](https://github.com/googleapis/java-bigquery/issues/3735)) ([#3736](https://github.com/googleapis/java-bigquery/issues/3736)) ([8634822](https://github.com/googleapis/java-bigquery/commit/8634822e1836c5ccc0f8d0263ac57ac561578360)) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.46.0 ([#3753](https://github.com/googleapis/java-bigquery/issues/3753)) ([a335927](https://github.com/googleapis/java-bigquery/commit/a335927e16d0907d62e584f08fa8393daae40354)) +* Update netty.version to v4.2.0.final ([#3745](https://github.com/googleapis/java-bigquery/issues/3745)) ([bb811c0](https://github.com/googleapis/java-bigquery/commit/bb811c068b3efabf04fbe67dbb2979d562c604d9)) + ## [2.49.0](https://github.com/googleapis/java-bigquery/compare/v2.48.1...v2.49.0) (2025-03-20) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 7cb5546d4c49..3581e19ebef2 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.49.1-SNAPSHOT + 2.49.1 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 551570be20c3..3b40c2e58728 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.49.1-SNAPSHOT + 2.49.1 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.49.1-SNAPSHOT + 2.49.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4530d892dc5f..fd0f5903f4c1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.49.1-SNAPSHOT + 2.49.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.49.1-SNAPSHOT + 2.49.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index afdb556d2211..9c16da0d91a2 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.49.1-SNAPSHOT + 2.49.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.49.1-SNAPSHOT + 2.49.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b40b150b5d97..cee32cc66fc1 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.49.1-SNAPSHOT + 2.49.1 diff --git a/versions.txt b/versions.txt index 726d76077746..83f8dfdab528 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.49.0:2.49.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.49.1:2.49.1 \ No newline at end of file From 907e39fd467f972863deeb86356fc3bfb989a76d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 25 Apr 2025 17:25:26 +0100 Subject: [PATCH 3199/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.46.2 (#3756) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 26ecb69daa4e..1e7c416f91aa 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.46.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.46.2 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 3b40c2e58728..f178636f2e5a 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.46.0 + 3.46.2 diff --git a/pom.xml b/pom.xml index 9c16da0d91a2..ba1861334750 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.46.0 + 3.46.2 From b9c4200f39ca0421e690eaa363a7f0c978e17b0c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sat, 26 Apr 2025 04:05:20 +0200 Subject: [PATCH 3200/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.13.0 (#3759) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ba1861334750..d9bb505b7447 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.12.0 + 3.13.0 pom import From 7c69e57205d3d75bb469ecbf8425a8555f31ae3a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 25 Apr 2025 22:31:30 -0400 Subject: [PATCH 3201/3441] chore(main): release 2.49.2-SNAPSHOT (#3757) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 3581e19ebef2..7d2f387fba7f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.49.1 + 2.49.2-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index f178636f2e5a..3f738a6e15dd 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.49.1 + 2.49.2-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.49.1 + 2.49.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index fd0f5903f4c1..655d947374f0 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.49.1 + 2.49.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.49.1 + 2.49.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d9bb505b7447..130ad9596ec4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.49.1 + 2.49.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.49.1 + 2.49.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index cee32cc66fc1..aeddb1794e30 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.49.1 + 2.49.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 83f8dfdab528..ff13f1e599a9 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.49.1:2.49.1 \ No newline at end of file +google-cloud-bigquery:2.49.1:2.49.2-SNAPSHOT \ No newline at end of file From fa0259569d31b8e904eb3a2bf7d769ff5c3aef56 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sat, 26 Apr 2025 00:28:09 -0400 Subject: [PATCH 3202/3441] chore(main): release 2.49.2 (#3761) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a9100a72b896..a3a03a1a2718 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.49.2](https://github.com/googleapis/java-bigquery/compare/v2.49.1...v2.49.2) (2025-04-26) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.46.2 ([#3756](https://github.com/googleapis/java-bigquery/issues/3756)) ([907e39f](https://github.com/googleapis/java-bigquery/commit/907e39fd467f972863deeb86356fc3bfb989a76d)) + ## [2.49.1](https://github.com/googleapis/java-bigquery/compare/v2.49.0...v2.49.1) (2025-04-24) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 7d2f387fba7f..520483d9d8d1 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.49.2-SNAPSHOT + 2.49.2 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 3f738a6e15dd..3bdc365ceeeb 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.49.2-SNAPSHOT + 2.49.2 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.49.2-SNAPSHOT + 2.49.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 655d947374f0..aa47da579a7e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.49.2-SNAPSHOT + 2.49.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.49.2-SNAPSHOT + 2.49.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 130ad9596ec4..18df2eb77141 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.49.2-SNAPSHOT + 2.49.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.49.2-SNAPSHOT + 2.49.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index aeddb1794e30..130fb5b56a62 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.49.2-SNAPSHOT + 2.49.2 diff --git a/versions.txt b/versions.txt index ff13f1e599a9..e16a23c8dd42 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.49.1:2.49.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.49.2:2.49.2 \ No newline at end of file From acea61c20b69b44c8612ca22745458ad04bc6be4 Mon Sep 17 00:00:00 2001 From: shollyman Date: Mon, 28 Apr 2025 07:17:26 -0700 Subject: [PATCH 3203/3441] feat: add WRITE_TRUNCATE_DATA as an enum value for write disposition (#3752) * feat: add WRITE_TRUNCATE_DATA as an enum value for write disposition For existing tables, WRITE_TRUNCATE_DATA preserves schema/constraints and replaces data. internal issue: b/406848221 * formatting --- .../src/main/java/com/google/cloud/bigquery/JobInfo.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java index 8f571ff55178..fdf1b6e6068d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java @@ -66,6 +66,12 @@ public enum WriteDisposition { /** Configures the job to overwrite the table data if table already exists. */ WRITE_TRUNCATE, + /** + * Configures the job to retain schema and constraints on an existing table, and truncate and + * replace data. + */ + WRITE_TRUNCATE_DATA, + /** Configures the job to append data to the table if it already exists. */ WRITE_APPEND, From 1381c8fe6c2552eec4519304c71697302733d6c7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 28 Apr 2025 16:49:14 +0200 Subject: [PATCH 3204/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250404-2.0.0 (#3754) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 18df2eb77141..df75cc538230 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20250313-2.0.0 + v2-rev20250404-2.0.0 From 2e026b27753f2badef1fab1dfa3ca24c91720839 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 28 Apr 2025 16:49:36 +0200 Subject: [PATCH 3205/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.51.0 (#3755) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index df75cc538230..603c8478f27c 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.50.0 + 2.51.0 test From eda96709f537019d348c01b9eb269be0dc102654 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 28 Apr 2025 16:49:56 +0200 Subject: [PATCH 3206/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.49.2 (#3758) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 30f14f205f23..f74e1feae1cb 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.49.0 + 2.49.2 From f19eaa9b782f4e8419fc2ae42c05458f7814d14c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 29 Apr 2025 22:03:07 +0200 Subject: [PATCH 3207/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.58.1 (#3764) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index f74e1feae1cb..c53041c7cda3 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.57.3 + 2.58.1 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 130fb5b56a62..0ed571f2c648 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.57.3 + 2.58.1 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 86e77230a733..0f13a2e87f61 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.57.3 + 2.58.1 test From 2b033ba559b99728ed696212557a0657ea16a312 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 29 Apr 2025 22:03:19 +0200 Subject: [PATCH 3208/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.52.0 (#3765) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 603c8478f27c..98138818ef39 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.51.0 + 2.52.0 test From 3df4f2745ee745f717eeeab56bdbe9263d2649e0 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 29 Apr 2025 16:03:26 -0400 Subject: [PATCH 3209/3441] chore(main): release 2.49.3-SNAPSHOT (#3762) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 520483d9d8d1..a7681d23d6bd 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.49.2 + 2.49.3-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 3bdc365ceeeb..123beae59807 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.49.2 + 2.49.3-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.49.2 + 2.49.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index aa47da579a7e..87f9e9bbd5c1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.49.2 + 2.49.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.49.2 + 2.49.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 98138818ef39..2979a1ef5381 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.49.2 + 2.49.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.49.2 + 2.49.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 0ed571f2c648..c8c7f54f5d06 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.49.2 + 2.49.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index e16a23c8dd42..41a9363da672 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.49.2:2.49.2 \ No newline at end of file +google-cloud-bigquery:2.49.2:2.49.3-SNAPSHOT \ No newline at end of file From 3e97f7c0c4676fcdda0862929a69bbabc69926f2 Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Wed, 30 Apr 2025 14:16:48 -0700 Subject: [PATCH 3210/3441] feat(bigquery): Add support for reservation field in jobs. (#3768) --- .../cloud/bigquery/CopyJobConfiguration.java | 34 +++++++++++++++++-- .../bigquery/ExtractJobConfiguration.java | 34 +++++++++++++++++-- .../cloud/bigquery/LoadJobConfiguration.java | 33 ++++++++++++++++-- .../cloud/bigquery/QueryJobConfiguration.java | 34 +++++++++++++++++-- .../cloud/bigquery/QueryRequestInfo.java | 9 ++++- .../bigquery/CopyJobConfigurationTest.java | 4 +++ .../bigquery/ExtractJobConfigurationTest.java | 7 ++++ .../bigquery/LoadJobConfigurationTest.java | 5 +++ .../bigquery/QueryJobConfigurationTest.java | 4 +++ .../cloud/bigquery/QueryRequestInfoTest.java | 4 +++ 10 files changed, 158 insertions(+), 10 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java index 37955fec09ee..54e612271f14 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java @@ -45,6 +45,7 @@ public final class CopyJobConfiguration extends JobConfiguration { private final EncryptionConfiguration destinationEncryptionConfiguration; private final Map labels; private final Long jobTimeoutMs; + private final String reservation; public static final class Builder extends JobConfiguration.Builder { @@ -58,6 +59,7 @@ public static final class Builder private EncryptionConfiguration destinationEncryptionConfiguration; private Map labels; private Long jobTimeoutMs; + private String reservation; private Builder() { super(Type.COPY); @@ -74,6 +76,7 @@ private Builder(CopyJobConfiguration jobConfiguration) { this.destinationEncryptionConfiguration = jobConfiguration.destinationEncryptionConfiguration; this.labels = jobConfiguration.labels; this.jobTimeoutMs = jobConfiguration.jobTimeoutMs; + this.reservation = jobConfiguration.reservation; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -113,6 +116,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (configurationPb.getJobTimeoutMs() != null) { this.jobTimeoutMs = configurationPb.getJobTimeoutMs(); } + if (configurationPb.getReservation() != null) { + this.reservation = configurationPb.getReservation(); + } } /** Sets the source tables to copy. */ @@ -201,6 +207,19 @@ public Builder setJobTimeoutMs(Long jobTimeoutMs) { return this; } + /** + * [Optional] The reservation that job would use. User can specify a reservation to execute the + * job. If reservation is not set, reservation is determined based on the rules defined by the + * reservation assignments. The expected format is + * `projects/{project}/locations/{location}/reservations/{reservation}`. + * + * @param reservation reservation or {@code null} for none + */ + public Builder setReservation(String reservation) { + this.reservation = reservation; + return this; + } + public CopyJobConfiguration build() { return new CopyJobConfiguration(this); } @@ -217,6 +236,7 @@ private CopyJobConfiguration(Builder builder) { this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; this.labels = builder.labels; this.jobTimeoutMs = builder.jobTimeoutMs; + this.reservation = builder.reservation; } /** Returns the source tables to copy. */ @@ -275,6 +295,11 @@ public Long getJobTimeoutMs() { return jobTimeoutMs; } + /** Returns the reservation associated with this job */ + public String getReservation() { + return reservation; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -291,7 +316,8 @@ ToStringHelper toStringHelper() { .add("createDisposition", createDisposition) .add("writeDisposition", writeDisposition) .add("labels", labels) - .add("jobTimeoutMs", jobTimeoutMs); + .add("jobTimeoutMs", jobTimeoutMs) + .add("reservation", reservation); } @Override @@ -311,7 +337,8 @@ public int hashCode() { createDisposition, writeDisposition, labels, - jobTimeoutMs); + jobTimeoutMs, + reservation); } @Override @@ -366,6 +393,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (jobTimeoutMs != null) { jobConfiguration.setJobTimeoutMs(jobTimeoutMs); } + if (reservation != null) { + jobConfiguration.setReservation(reservation); + } jobConfiguration.setCopy(configurationPb); return jobConfiguration; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java index 29a256e9eb1c..d79959ee04a9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java @@ -47,6 +47,7 @@ public final class ExtractJobConfiguration extends JobConfiguration { private final Boolean useAvroLogicalTypes; private final Map labels; private final Long jobTimeoutMs; + private final String reservation; public static final class Builder extends JobConfiguration.Builder { @@ -61,6 +62,7 @@ public static final class Builder private Boolean useAvroLogicalTypes; private Map labels; private Long jobTimeoutMs; + private String reservation; private Builder() { super(Type.EXTRACT); @@ -78,6 +80,7 @@ private Builder(ExtractJobConfiguration jobInfo) { this.useAvroLogicalTypes = jobInfo.useAvroLogicalTypes; this.labels = jobInfo.labels; this.jobTimeoutMs = jobInfo.jobTimeoutMs; + this.reservation = jobInfo.reservation; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -101,6 +104,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (configurationPb.getJobTimeoutMs() != null) { this.jobTimeoutMs = configurationPb.getJobTimeoutMs(); } + if (configurationPb.getReservation() != null) { + this.reservation = configurationPb.getReservation(); + } } /** Sets the table to export. */ @@ -198,6 +204,19 @@ public Builder setJobTimeoutMs(Long jobTimeoutMs) { return this; } + /** + * [Optional] The reservation that job would use. User can specify a reservation to execute the + * job. If reservation is not set, reservation is determined based on the rules defined by the + * reservation assignments. The expected format is + * `projects/{project}/locations/{location}/reservations/{reservation}`. + * + * @param reservation reservation or {@code null} for none + */ + public Builder setReservation(String reservation) { + this.reservation = reservation; + return this; + } + public ExtractJobConfiguration build() { return new ExtractJobConfiguration(this); } @@ -215,6 +234,7 @@ private ExtractJobConfiguration(Builder builder) { this.useAvroLogicalTypes = builder.useAvroLogicalTypes; this.labels = builder.labels; this.jobTimeoutMs = builder.jobTimeoutMs; + this.reservation = builder.reservation; } /** Returns the table to export. */ @@ -274,6 +294,11 @@ public Long getJobTimeoutMs() { return jobTimeoutMs; } + /** Returns the reservation associated with this job */ + public String getReservation() { + return reservation; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -291,7 +316,8 @@ ToStringHelper toStringHelper() { .add("compression", compression) .add("useAvroLogicalTypes", useAvroLogicalTypes) .add("labels", labels) - .add("jobTimeoutMs", jobTimeoutMs); + .add("jobTimeoutMs", jobTimeoutMs) + .add("reservation", reservation); } @Override @@ -313,7 +339,8 @@ public int hashCode() { compression, useAvroLogicalTypes, labels, - jobTimeoutMs); + jobTimeoutMs, + reservation); } @Override @@ -350,6 +377,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (jobTimeoutMs != null) { jobConfiguration.setJobTimeoutMs(jobTimeoutMs); } + if (reservation != null) { + jobConfiguration.setReservation(reservation); + } jobConfiguration.setExtract(extractConfigurationPb); return jobConfiguration; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index 2d348f0d45a7..5d17554597ca 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -60,10 +60,9 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private final RangePartitioning rangePartitioning; private final HivePartitioningOptions hivePartitioningOptions; private final String referenceFileSchemaUri; - private final List connectionProperties; - private final Boolean createSession; + private final String reservation; public static final class Builder extends JobConfiguration.Builder implements LoadConfiguration.Builder { @@ -95,6 +94,7 @@ public static final class Builder extends JobConfiguration.Builder connectionProperties; private Boolean createSession; + private String reservation; private Builder() { super(Type.LOAD); @@ -128,6 +128,7 @@ private Builder(LoadJobConfiguration loadConfiguration) { this.referenceFileSchemaUri = loadConfiguration.referenceFileSchemaUri; this.connectionProperties = loadConfiguration.connectionProperties; this.createSession = loadConfiguration.createSession; + this.reservation = loadConfiguration.reservation; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -234,6 +235,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur loadConfigurationPb.getConnectionProperties(), ConnectionProperty.FROM_PB_FUNCTION); } createSession = loadConfigurationPb.getCreateSession(); + if (configurationPb.getReservation() != null) { + this.reservation = configurationPb.getReservation(); + } } @Override @@ -432,6 +436,19 @@ public Builder setCreateSession(Boolean createSession) { return this; } + /** + * [Optional] The reservation that job would use. User can specify a reservation to execute the + * job. If reservation is not set, reservation is determined based on the rules defined by the + * reservation assignments. The expected format is + * `projects/{project}/locations/{location}/reservations/{reservation}`. + * + * @param reservation reservation or {@code null} for none + */ + public Builder setReservation(String reservation) { + this.reservation = reservation; + return this; + } + @Override public LoadJobConfiguration build() { return new LoadJobConfiguration(this); @@ -465,6 +482,7 @@ private LoadJobConfiguration(Builder builder) { this.referenceFileSchemaUri = builder.referenceFileSchemaUri; this.connectionProperties = builder.connectionProperties; this.createSession = builder.createSession; + this.reservation = builder.reservation; } @Override @@ -611,6 +629,11 @@ public Boolean getCreateSession() { return createSession; } + /** Returns the reservation associated with this job */ + public String getReservation() { + return reservation; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -643,7 +666,8 @@ ToStringHelper toStringHelper() { .add("hivePartitioningOptions", hivePartitioningOptions) .add("referenceFileSchemaUri", referenceFileSchemaUri) .add("connectionProperties", connectionProperties) - .add("createSession", createSession); + .add("createSession", createSession) + .add("reservation", reservation); } @Override @@ -762,6 +786,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (createSession != null) { loadConfigurationPb.setCreateSession(createSession); } + if (reservation != null) { + jobConfiguration.setReservation(reservation); + } jobConfiguration.setLoad(loadConfigurationPb); return jobConfiguration; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index 0ad85137b214..b460b6121a8d 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -74,6 +74,7 @@ public final class QueryJobConfiguration extends JobConfiguration { // maxResults is only used for fast query path private final Long maxResults; private final JobCreationMode jobCreationMode; + private final String reservation; /** * Priority levels for a query. If not specified the priority is assumed to be {@link @@ -142,6 +143,7 @@ public static final class Builder private List connectionProperties; private Long maxResults; private JobCreationMode jobCreationMode; + private String reservation; private Builder() { super(Type.QUERY); @@ -178,6 +180,7 @@ private Builder(QueryJobConfiguration jobConfiguration) { this.connectionProperties = jobConfiguration.connectionProperties; this.maxResults = jobConfiguration.maxResults; this.jobCreationMode = jobConfiguration.jobCreationMode; + this.reservation = jobConfiguration.reservation; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -285,6 +288,9 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur queryConfigurationPb.getConnectionProperties(), ConnectionProperty.FROM_PB_FUNCTION); } + if (configurationPb.getReservation() != null) { + this.reservation = configurationPb.getReservation(); + } } /** Sets the BigQuery SQL query to execute. */ @@ -682,6 +688,19 @@ Builder setJobCreationMode(JobCreationMode jobCreationMode) { return this; } + /** + * [Optional] The reservation that job would use. User can specify a reservation to execute the + * job. If reservation is not set, reservation is determined based on the rules defined by the + * reservation assignments. The expected format is + * `projects/{project}/locations/{location}/reservations/{reservation}`. + * + * @param reservation reservation or {@code null} for none + */ + public Builder setReservation(String reservation) { + this.reservation = reservation; + return this; + } + public QueryJobConfiguration build() { return new QueryJobConfiguration(this); } @@ -727,6 +746,7 @@ private QueryJobConfiguration(Builder builder) { this.connectionProperties = builder.connectionProperties; this.maxResults = builder.maxResults; this.jobCreationMode = builder.jobCreationMode; + this.reservation = builder.reservation; } /** @@ -943,6 +963,11 @@ JobCreationMode getJobCreationMode() { return jobCreationMode; } + /** Returns the reservation associated with this job */ + public String getReservation() { + return reservation; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -978,7 +1003,8 @@ ToStringHelper toStringHelper() { .add("labels", labels) .add("rangePartitioning", rangePartitioning) .add("connectionProperties", connectionProperties) - .add("jobCreationMode", jobCreationMode); + .add("jobCreationMode", jobCreationMode) + .add("reservation", reservation); } @Override @@ -1016,7 +1042,8 @@ public int hashCode() { jobTimeoutMs, labels, rangePartitioning, - connectionProperties); + connectionProperties, + reservation); } @Override @@ -1125,6 +1152,9 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { queryConfigurationPb.setConnectionProperties( Lists.transform(connectionProperties, ConnectionProperty.TO_PB_FUNCTION)); } + if (reservation != null) { + configurationPb.setReservation(reservation); + } configurationPb.setQuery(queryConfigurationPb); return configurationPb; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java index 1a56872a15ca..7eebfea96df4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java @@ -44,6 +44,7 @@ final class QueryRequestInfo { private final Boolean useLegacySql; private final JobCreationMode jobCreationMode; private final DataFormatOptions formatOptions; + private final String reservation; QueryRequestInfo(QueryJobConfiguration config, Boolean useInt64Timestamps) { this.config = config; @@ -61,6 +62,7 @@ final class QueryRequestInfo { this.useQueryCache = config.useQueryCache(); this.jobCreationMode = config.getJobCreationMode(); this.formatOptions = new DataFormatOptions().setUseInt64Timestamp(useInt64Timestamps); + this.reservation = config.getReservation(); } boolean isFastQuerySupported(JobId jobId) { @@ -128,6 +130,9 @@ QueryRequest toPb() { if (formatOptions != null) { request.setFormatOptions(formatOptions); } + if (reservation != null) { + request.setReservation(reservation); + } return request; } @@ -148,6 +153,7 @@ public String toString() { .add("useLegacySql", useLegacySql) .add("jobCreationMode", jobCreationMode) .add("formatOptions", formatOptions.getUseInt64Timestamp()) + .add("reservation", reservation) .toString(); } @@ -167,7 +173,8 @@ public int hashCode() { useQueryCache, useLegacySql, jobCreationMode, - formatOptions); + formatOptions, + reservation); } @Override diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java index 70a4983df71a..3f21bf1c05b2 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java @@ -44,6 +44,7 @@ public class CopyJobConfigurationTest { EncryptionConfiguration.newBuilder().setKmsKeyName("KMS_KEY_1").build(); private static final Map LABELS = ImmutableMap.of("job-name", "copy"); private static final Long TIMEOUT = 10L; + private static final String RESERVATION = "reservation"; private static final CopyJobConfiguration COPY_JOB_CONFIGURATION = CopyJobConfiguration.newBuilder(DESTINATION_TABLE, SOURCE_TABLE) .setCreateDisposition(CREATE_DISPOSITION) @@ -51,6 +52,7 @@ public class CopyJobConfigurationTest { .setDestinationEncryptionConfiguration(COPY_JOB_ENCRYPTION_CONFIGURATION) .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) + .setReservation(RESERVATION) .build(); private static final CopyJobConfiguration COPY_JOB_CONFIGURATION_MULTIPLE_TABLES = CopyJobConfiguration.newBuilder(DESTINATION_TABLE, SOURCE_TABLES) @@ -58,6 +60,7 @@ public class CopyJobConfigurationTest { .setWriteDisposition(WRITE_DISPOSITION) .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) + .setReservation(RESERVATION) .build(); @Test @@ -181,5 +184,6 @@ private void compareCopyJobConfiguration( value.getDestinationEncryptionConfiguration()); assertEquals(expected.getLabels(), value.getLabels()); assertEquals(expected.getJobTimeoutMs(), value.getJobTimeoutMs()); + assertEquals(expected.getReservation(), value.getReservation()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java index ce9e35dddf18..2bf1e80a2351 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java @@ -43,6 +43,7 @@ public class ExtractJobConfigurationTest { private static final Map LABELS = ImmutableMap.of("test-job-name", "test-extract-job"); private static final Long TIMEOUT = 10L; + private static final String RESERVATION = "reservation"; private static final ExtractJobConfiguration EXTRACT_CONFIGURATION = ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URIS) .setPrintHeader(PRINT_HEADER) @@ -51,6 +52,7 @@ public class ExtractJobConfigurationTest { .setFormat(FORMAT) .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) + .setReservation(RESERVATION) .build(); private static final ExtractJobConfiguration EXTRACT_CONFIGURATION_ONE_URI = ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URI) @@ -60,6 +62,7 @@ public class ExtractJobConfigurationTest { .setFormat(FORMAT) .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) + .setReservation(RESERVATION) .build(); private static final ExtractJobConfiguration EXTRACT_CONFIGURATION_AVRO = ExtractJobConfiguration.newBuilder(TABLE_ID, DESTINATION_URI) @@ -70,6 +73,7 @@ public class ExtractJobConfigurationTest { .setUseAvroLogicalTypes(USEAVROLOGICALTYPES) .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) + .setReservation(RESERVATION) .build(); private static final ExtractJobConfiguration EXTRACT_CONFIGURATION_MODEL = ExtractJobConfiguration.newBuilder(MODEL_ID, DESTINATION_URIS) @@ -80,6 +84,7 @@ public class ExtractJobConfigurationTest { .setUseAvroLogicalTypes(USEAVROLOGICALTYPES) .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) + .setReservation(RESERVATION) .build(); @Test @@ -185,6 +190,7 @@ public void testBuilder() { assertEquals(FORMAT, EXTRACT_CONFIGURATION_MODEL.getFormat()); assertEquals(LABELS, EXTRACT_CONFIGURATION_MODEL.getLabels()); assertEquals(TIMEOUT, EXTRACT_CONFIGURATION_MODEL.getJobTimeoutMs()); + assertEquals(RESERVATION, EXTRACT_CONFIGURATION_MODEL.getReservation()); } @Test @@ -256,5 +262,6 @@ private void compareExtractJobConfiguration( assertEquals(expected.getFormat(), value.getFormat()); assertEquals(expected.getLabels(), value.getLabels()); assertEquals(expected.getJobTimeoutMs(), value.getJobTimeoutMs()); + assertEquals(expected.getReservation(), value.getReservation()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index 92a6171875cc..6d181a328772 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -67,6 +67,7 @@ public class LoadJobConfigurationTest { private static final Map LABELS = ImmutableMap.of("test-job-name", "test-load-job"); private static final Long TIMEOUT = 10L; + private static final String RESERVATION = "reservation"; private static final RangePartitioning.Range RANGE = RangePartitioning.Range.newBuilder().setStart(1L).setInterval(2L).setEnd(10L).build(); private static final RangePartitioning RANGE_PARTITIONING = @@ -108,6 +109,7 @@ public class LoadJobConfigurationTest { .setHivePartitioningOptions(HIVE_PARTITIONING_OPTIONS) .setConnectionProperties(CONNECTION_PROPERTIES) .setCreateSession(CREATE_SESSION) + .setReservation(RESERVATION) .build(); private static final DatastoreBackupOptions BACKUP_OPTIONS = @@ -127,6 +129,7 @@ public class LoadJobConfigurationTest { .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) .setRangePartitioning(RANGE_PARTITIONING) + .setReservation(RESERVATION) .build(); private static final LoadJobConfiguration LOAD_CONFIGURATION_AVRO = LoadJobConfiguration.newBuilder(TABLE_ID, SOURCE_URIS) @@ -145,6 +148,7 @@ public class LoadJobConfigurationTest { .setLabels(LABELS) .setJobTimeoutMs(TIMEOUT) .setRangePartitioning(RANGE_PARTITIONING) + .setReservation(RESERVATION) .build(); @Test @@ -266,5 +270,6 @@ private void compareLoadJobConfiguration( assertEquals(expected.getHivePartitioningOptions(), value.getHivePartitioningOptions()); assertEquals(expected.getConnectionProperties(), value.getConnectionProperties()); assertEquals(expected.getCreateSession(), value.getCreateSession()); + assertEquals(expected.getReservation(), value.getReservation()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index 9dd393004406..f25aa47edaaf 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -112,6 +112,7 @@ public class QueryJobConfigurationTest { ImmutableMap.of("string", STRING_PARAMETER, "timestamp", TIMESTAMP_PARAMETER); private static final String PARAMETER_MODE = "POSITIONAL"; private static final JobCreationMode JOB_CREATION_MODE = JobCreationMode.JOB_CREATION_OPTIONAL; + private static final String RESERVATION = "reservation"; private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -139,6 +140,7 @@ public class QueryJobConfigurationTest { .setConnectionProperties(CONNECTION_PROPERTIES) .setPositionalParameters(POSITIONAL_PARAMETER) .setParameterMode(PARAMETER_MODE) + .setReservation(RESERVATION) .build(); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_ADD_POSITIONAL_PARAMETER = QUERY_JOB_CONFIGURATION.toBuilder() @@ -188,6 +190,7 @@ public void testToPbAndFromPb() { assertNotNull(QUERY_JOB_CONFIGURATION.getConnectionProperties()); assertNotNull(QUERY_JOB_CONFIGURATION.getPositionalParameters()); assertNotNull(QUERY_JOB_CONFIGURATION.getNamedParameters()); + assertNotNull(QUERY_JOB_CONFIGURATION.getReservation()); compareQueryJobConfiguration( QUERY_JOB_CONFIGURATION, QueryJobConfiguration.fromPb(QUERY_JOB_CONFIGURATION.toPb())); QueryJobConfiguration job = QueryJobConfiguration.of(QUERY); @@ -271,5 +274,6 @@ private void compareQueryJobConfiguration( assertEquals(expected.getConnectionProperties(), value.getConnectionProperties()); assertEquals(expected.getPositionalParameters(), value.getPositionalParameters()); assertEquals(expected.getNamedParameters(), value.getNamedParameters()); + assertEquals(expected.getReservation(), value.getReservation()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java index 420c01484649..ed9effe0b42f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java @@ -110,6 +110,7 @@ public class QueryRequestInfoTest { ImmutableMap.of("string", STRING_PARAMETER, "timestamp", TIMESTAMP_PARAMETER); private static final JobCreationMode jobCreationModeRequired = JobCreationMode.JOB_CREATION_REQUIRED; + private static final String RESERVATION = "reservation"; private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -137,6 +138,7 @@ public class QueryRequestInfoTest { .setPositionalParameters(POSITIONAL_PARAMETER) .setMaxResults(100L) .setJobCreationMode(jobCreationModeRequired) + .setReservation(RESERVATION) .build(); QueryRequestInfo REQUEST_INFO = new QueryRequestInfo(QUERY_JOB_CONFIGURATION, false); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_SUPPORTED = @@ -151,6 +153,7 @@ public class QueryRequestInfoTest { .setPositionalParameters(POSITIONAL_PARAMETER) .setCreateSession(CREATE_SESSION) .setMaxResults(100L) + .setReservation(RESERVATION) .build(); QueryRequestInfo REQUEST_INFO_SUPPORTED = new QueryRequestInfo(QUERY_JOB_CONFIGURATION_SUPPORTED, false); @@ -214,5 +217,6 @@ private void compareQueryRequestInfo(QueryRequestInfo expected, QueryRequestInfo assertEquals(expectedQueryReq.getUseLegacySql(), actualQueryReq.getUseLegacySql()); assertEquals(expectedQueryReq.get("jobCreationMode"), actualQueryReq.get("jobCreationMode")); assertEquals(expectedQueryReq.getFormatOptions(), actualQueryReq.getFormatOptions()); + assertEquals(expectedQueryReq.getReservation(), actualQueryReq.getReservation()); } } From 934389eb114d8fbb10c9c125d21ec26d503dca65 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 5 May 2025 16:12:55 +0200 Subject: [PATCH 3211/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.63.0 (#3770) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2979a1ef5381..5ac54a00b55d 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.62.0 + 2.63.0 test From c0795fe948e0ca231dbe8fc47c470603cb48ecc8 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 5 May 2025 18:06:17 +0200 Subject: [PATCH 3212/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250427-2.0.0 (#3773) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5ac54a00b55d..00c96f786e81 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20250404-2.0.0 + v2-rev20250427-2.0.0 From ab166b6c33c574b4494368709db0443e055b4863 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 5 May 2025 18:06:28 +0200 Subject: [PATCH 3213/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.46.3 (#3772) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 1e7c416f91aa..1577125b021f 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.46.2 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.46.3 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index 6ae3c9e81b64..ccfecbe58264 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.46.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.46.3" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index 821f86ccae3b..776dc2d73d70 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.46.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.46.3" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index 16e3d4ca403c..c0fd4ef89173 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.46.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.46.3" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 123beae59807..d6e05c16a8e6 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.46.2 + 3.46.3 diff --git a/pom.xml b/pom.xml index 00c96f786e81..c97ef128de19 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.46.2 + 3.46.3 From 0deef8df1a18838f4234c86e4392fd19206f056d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 5 May 2025 18:27:19 +0200 Subject: [PATCH 3214/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.52.1 (#3771) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c97ef128de19..9cbd68128e3e 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.52.0 + 2.52.1 test From 231b26345b2b8792c1791414f9b07c159e81b73e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 5 May 2025 20:08:06 +0200 Subject: [PATCH 3215/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.13.1 (#3777) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9cbd68128e3e..dd7c02a7b9ad 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.13.0 + 3.13.1 pom import From 782aa77e76955099a875491c4535bc0d15872edd Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Tue, 6 May 2025 10:59:22 -0400 Subject: [PATCH 3216/3441] fix: fix graalvm native test B (#3775) * fix: fix graalvm native test B * fix: add gax testlib to java-bigquery This includes the necessary build-time initialization flags (see [properties file](https://github.com/googleapis/sdk-platform-java/blob/1eb107d1c09d8a2182fe0f550bf23e3ca3ac414f/gax-java/gax/src/test/resources/META-INF/native-image/com.google.api/gax/native-image.properties) * chore: add gax testlib to dependency analyzer exemptions * chore: fix gax package reference * chore: convert tabs to spaces * chore: add presubmit checks for graalvm * chore: restore integration job after testing * chore: restore return code in integration test --- .kokoro/presubmit/graalvm-native-a.cfg | 38 ++++++++++++++++++++++++++ .kokoro/presubmit/graalvm-native-b.cfg | 38 ++++++++++++++++++++++++++ .kokoro/presubmit/graalvm-native-c.cfg | 38 ++++++++++++++++++++++++++ google-cloud-bigquery/pom.xml | 6 ++++ pom.xml | 1 + 5 files changed, 121 insertions(+) create mode 100644 .kokoro/presubmit/graalvm-native-a.cfg create mode 100644 .kokoro/presubmit/graalvm-native-b.cfg create mode 100644 .kokoro/presubmit/graalvm-native-c.cfg diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg new file mode 100644 index 000000000000..6ae3c9e81b64 --- /dev/null +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -0,0 +1,38 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.46.2" +} + +env_vars: { + key: "JOB_TYPE" + value: "graalvm" +} + +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} + +env_vars: { + key: "ENABLE_FLAKYBOT" + value: "true" +} \ No newline at end of file diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg new file mode 100644 index 000000000000..821f86ccae3b --- /dev/null +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -0,0 +1,38 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.46.2" +} + +env_vars: { + key: "JOB_TYPE" + value: "graalvm" +} + +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} + +env_vars: { + key: "ENABLE_FLAKYBOT" + value: "true" +} \ No newline at end of file diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg new file mode 100644 index 000000000000..16e3d4ca403c --- /dev/null +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -0,0 +1,38 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.46.2" +} + +env_vars: { + key: "JOB_TYPE" + value: "graalvm" +} + +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} + +env_vars: { + key: "ENABLE_FLAKYBOT" + value: "true" +} \ No newline at end of file diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 87f9e9bbd5c1..c93f566fed79 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -157,6 +157,12 @@ + + com.google.api + gax + testlib + test + com.google.cloud google-cloud-datacatalog diff --git a/pom.xml b/pom.xml index dd7c02a7b9ad..0ebe59dfe82f 100644 --- a/pom.xml +++ b/pom.xml @@ -171,6 +171,7 @@ io.netty:netty-buffer io.netty:netty-common org.apache.arrow:arrow-memory-netty + com.google.api:gax From 8ccf0e6b5560b6cb01e52a621ab79d40d4c75ce0 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 6 May 2025 20:13:36 +0200 Subject: [PATCH 3217/3441] chore(config): migrate config renovate.json (#3778) --- renovate.json | 101 ++++++++++++++++++++++++++------------------------ 1 file changed, 53 insertions(+), 48 deletions(-) diff --git a/renovate.json b/renovate.json index 1ff055606e3b..833ec769e89c 100644 --- a/renovate.json +++ b/renovate.json @@ -7,10 +7,11 @@ ":updateNotScheduled", ":automergeDisabled", ":ignoreModulesAndTests", - ":maintainLockFilesDisabled", - ":autodetectPinVersions" + ":maintainLockFilesDisabled" + ], + "ignorePaths": [ + ".kokoro/requirements.txt" ], - "ignorePaths": [".kokoro/requirements.txt"], "customManagers": [ { "customType": "regex", @@ -18,7 +19,9 @@ "^.kokoro/continuous/graalvm-native.*.cfg$", "^.kokoro/presubmit/graalvm-native.*.cfg$" ], - "matchStrings": ["value: \"gcr.io/cloud-devrel-public-resources/graalvm.*:(?.*?)\""], + "matchStrings": [ + "value: \"gcr.io/cloud-devrel-public-resources/graalvm.*:(?.*?)\"" + ], "depNameTemplate": "com.google.cloud:sdk-platform-java-config", "datasourceTemplate": "maven" }, @@ -27,70 +30,72 @@ "fileMatch": [ "^.github/workflows/unmanaged_dependency_check.yaml$" ], - "matchStrings": ["uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v(?.+?)\\n"], + "matchStrings": [ + "uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v(?.+?)\\n" + ], "depNameTemplate": "com.google.cloud:sdk-platform-java-config", "datasourceTemplate": "maven" } ], "packageRules": [ { - "packagePatterns": [ - "^com.google.guava:" - ], - "versionScheme": "docker" + "versioning": "docker", + "matchPackageNames": [ + "/^com.google.guava:/" + ] }, { - "packagePatterns": [ - "*", - "^com.google.cloud:google-cloud-bigquerystorage" - ], "semanticCommitType": "deps", - "semanticCommitScope": null + "semanticCommitScope": null, + "matchPackageNames": [ + "*", + "/^com.google.cloud:google-cloud-bigquerystorage/" + ] }, { - "packagePatterns": [ - "^org.apache.maven", - "^org.jacoco:", - "^org.codehaus.mojo:", - "^org.sonatype.plugins:", - "^com.coveo:", - "^com.google.cloud:google-cloud-shared-config" - ], "semanticCommitType": "build", - "semanticCommitScope": "deps" + "semanticCommitScope": "deps", + "matchPackageNames": [ + "/^org.apache.maven/", + "/^org.jacoco:/", + "/^org.codehaus.mojo:/", + "/^org.sonatype.plugins:/", + "/^com.coveo:/", + "/^com.google.cloud:google-cloud-shared-config/" + ] }, { - "packagePatterns": [ - "^com.google.cloud:google-cloud-bigquery", - "^com.google.cloud:google-cloud-bigtable", - "^com.google.cloud:libraries-bom", - "^com.google.cloud.samples:shared-configuration" - ], "semanticCommitType": "chore", - "semanticCommitScope": "deps" + "semanticCommitScope": "deps", + "matchPackageNames": [ + "/^com.google.cloud:google-cloud-bigquery/", + "/^com.google.cloud:google-cloud-bigtable/", + "/^com.google.cloud:libraries-bom/", + "/^com.google.cloud.samples:shared-configuration/" + ] }, { - "packagePatterns": [ - "^junit:junit", - "^com.google.truth:truth", - "^org.mockito:mockito-core", - "^org.objenesis:objenesis", - "^com.google.cloud:google-cloud-storage" - ], "semanticCommitType": "test", - "semanticCommitScope": "deps" + "semanticCommitScope": "deps", + "matchPackageNames": [ + "/^junit:junit/", + "/^com.google.truth:truth/", + "/^org.mockito:mockito-core/", + "/^org.objenesis:objenesis/", + "/^com.google.cloud:google-cloud-storage/" + ] }, { - "packagePatterns": [ - "^com.google.cloud:google-cloud-" - ], - "ignoreUnstable": false + "ignoreUnstable": false, + "matchPackageNames": [ + "/^com.google.cloud:google-cloud-/" + ] }, { - "packagePatterns": [ - "^com.fasterxml.jackson.core" - ], - "groupName": "jackson dependencies" + "groupName": "jackson dependencies", + "matchPackageNames": [ + "/^com.fasterxml.jackson.core/" + ] }, { "matchPackageNames": [ @@ -100,9 +105,9 @@ ], "groupName": "Google Cloud Java Monorepo Updates", "groupSlug": "google-cloud-java-monorepo-release-updates" - } + } ], - "semanticCommits": true, + "semanticCommits": "enabled", "dependencyDashboard": true, "dependencyDashboardLabels": [ "type: process" From b27434b8a75e74184458e920142f5575fed9ba52 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 6 May 2025 20:26:53 +0200 Subject: [PATCH 3218/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.47.0 (#3779) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 1577125b021f..729c93faeff7 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.46.3 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.47.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index ccfecbe58264..f42fbbf49be1 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.46.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.47.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index 776dc2d73d70..c99c02b8edea 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.46.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.47.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index c0fd4ef89173..fb43593db6f6 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.46.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.47.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index 6ae3c9e81b64..f42fbbf49be1 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.46.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.47.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index 821f86ccae3b..c99c02b8edea 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.46.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.47.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index 16e3d4ca403c..fb43593db6f6 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.46.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.47.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index d6e05c16a8e6..3656d35ed1cb 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.46.3 + 3.47.0 diff --git a/pom.xml b/pom.xml index 0ebe59dfe82f..1a3df157b08c 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.46.3 + 3.47.0 From f787c0a5ad87f2c297aca913316ace09711b4eae Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 6 May 2025 21:53:46 +0200 Subject: [PATCH 3219/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.14.0 (#3781) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1a3df157b08c..7744f8cc571a 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.13.1 + 3.14.0 pom import From d6e52e9221a48a374e59e65e46ff230f1424d218 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 6 May 2025 16:55:18 -0400 Subject: [PATCH 3220/3441] chore(main): release 2.50.0 (#3766) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 17 +++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 26 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a3a03a1a2718..875117270397 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Changelog +## [2.50.0](https://github.com/googleapis/java-bigquery/compare/v2.49.2...v2.50.0) (2025-05-06) + + +### Features + +* Add WRITE_TRUNCATE_DATA as an enum value for write disposition ([#3752](https://github.com/googleapis/java-bigquery/issues/3752)) ([acea61c](https://github.com/googleapis/java-bigquery/commit/acea61c20b69b44c8612ca22745458ad04bc6be4)) +* **bigquery:** Add support for reservation field in jobs. ([#3768](https://github.com/googleapis/java-bigquery/issues/3768)) ([3e97f7c](https://github.com/googleapis/java-bigquery/commit/3e97f7c0c4676fcdda0862929a69bbabc69926f2)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.63.0 ([#3770](https://github.com/googleapis/java-bigquery/issues/3770)) ([934389e](https://github.com/googleapis/java-bigquery/commit/934389eb114d8fbb10c9c125d21ec26d503dca65)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20250404-2.0.0 ([#3754](https://github.com/googleapis/java-bigquery/issues/3754)) ([1381c8f](https://github.com/googleapis/java-bigquery/commit/1381c8fe6c2552eec4519304c71697302733d6c7)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20250427-2.0.0 ([#3773](https://github.com/googleapis/java-bigquery/issues/3773)) ([c0795fe](https://github.com/googleapis/java-bigquery/commit/c0795fe948e0ca231dbe8fc47c470603cb48ecc8)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.46.3 ([#3772](https://github.com/googleapis/java-bigquery/issues/3772)) ([ab166b6](https://github.com/googleapis/java-bigquery/commit/ab166b6c33c574b4494368709db0443e055b4863)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.47.0 ([#3779](https://github.com/googleapis/java-bigquery/issues/3779)) ([b27434b](https://github.com/googleapis/java-bigquery/commit/b27434b8a75e74184458e920142f5575fed9ba52)) + ## [2.49.2](https://github.com/googleapis/java-bigquery/compare/v2.49.1...v2.49.2) (2025-04-26) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a7681d23d6bd..00ea6385a0e9 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.49.3-SNAPSHOT + 2.50.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 3656d35ed1cb..05c07017d137 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.49.3-SNAPSHOT + 2.50.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.49.3-SNAPSHOT + 2.50.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index c93f566fed79..056b4384a227 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.49.3-SNAPSHOT + 2.50.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.49.3-SNAPSHOT + 2.50.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7744f8cc571a..8ca5e4418ae9 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.49.3-SNAPSHOT + 2.50.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.49.3-SNAPSHOT + 2.50.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c8c7f54f5d06..94efbdc11811 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.49.3-SNAPSHOT + 2.50.0 diff --git a/versions.txt b/versions.txt index 41a9363da672..5fb4054f13e4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.49.2:2.49.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.50.0:2.50.0 \ No newline at end of file From 6483588a3c5785b95ea841f21aa38f50ecf4226d Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Wed, 7 May 2025 11:01:13 -0700 Subject: [PATCH 3221/3441] docs(bigquery): Update TableResult.getTotalRows() docstring (#3785) --- .../src/main/java/com/google/cloud/bigquery/TableResult.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java index 1b4b0e101124..42044596bd41 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java @@ -61,6 +61,11 @@ public static Builder newBuilder() { @Nullable public abstract Schema getSchema(); + /** + * Returns the total number of rows in the complete result set, which can be more than the number + * of rows in the first page of results. If no rows are returned, this value can still be greater + * than 0 if any rows were affected by the query, such as INSERT, UPDATE, or DELETE queries. + */ public abstract long getTotalRows(); public abstract Page getPageNoSchema(); From f128aa688388a557054a58d88e49fc145ca85a46 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 12 May 2025 11:18:45 -0400 Subject: [PATCH 3222/3441] chore(main): release 2.50.1-SNAPSHOT (#3784) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 00ea6385a0e9..ec8c002e9e0d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.50.0 + 2.50.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 05c07017d137..ff8fc4abcd30 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.50.0 + 2.50.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.50.0 + 2.50.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 056b4384a227..df7737f9c6cd 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.50.0 + 2.50.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.50.0 + 2.50.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8ca5e4418ae9..e41bbd963d55 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.50.0 + 2.50.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.50.0 + 2.50.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 94efbdc11811..aa7bdb3812ed 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.50.0 + 2.50.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 5fb4054f13e4..62a1992cb443 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.50.0:2.50.0 \ No newline at end of file +google-cloud-bigquery:2.50.0:2.50.1-SNAPSHOT \ No newline at end of file From 6dcd858eca788a8cb571368e12b4925993e380c4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 May 2025 19:29:02 +0200 Subject: [PATCH 3223/3441] deps: update netty.version to v4.2.1.final (#3780) --- google-cloud-bigquery/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index df7737f9c6cd..94daf260a785 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -15,7 +15,7 @@ google-cloud-bigquery - 4.2.0.Final + 4.2.1.Final From c7b50fef5cdea92734da51687c7f85ecbad01273 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 12 May 2025 19:29:21 +0200 Subject: [PATCH 3224/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.50.0 (#3786) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c53041c7cda3..7e37fcbac2eb 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.49.2 + 2.50.0 From 19ae888ef84bd6224df86b94c4b1410566b8cd59 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 May 2025 16:38:44 +0200 Subject: [PATCH 3225/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.58.2 (#3788) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7e37fcbac2eb..da1da5e8cc63 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.58.1 + 2.58.2 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index aa7bdb3812ed..e89ec11a5987 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.58.1 + 2.58.2 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0f13a2e87f61..0eb860c7959e 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.58.1 + 2.58.2 test From 347b6bb17f2ff10cf14462ba453c12f238d8c074 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 13 May 2025 16:39:12 +0200 Subject: [PATCH 3226/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.52.2 (#3782) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e41bbd963d55..54e8463b2e62 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.52.1 + 2.52.2 test From 206f06de115ead53b26f09a5f4781efd279b5a73 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 16 May 2025 18:04:20 +0200 Subject: [PATCH 3227/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.48.0 (#3790) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 729c93faeff7..7ce7c2267ee1 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.47.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.48.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index f42fbbf49be1..3350e37789ca 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.47.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.48.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index c99c02b8edea..96ec9ba7189c 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.47.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.48.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index fb43593db6f6..c8ed10da9edd 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.47.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.48.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index f42fbbf49be1..3350e37789ca 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.47.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.48.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index c99c02b8edea..96ec9ba7189c 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.47.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.48.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index fb43593db6f6..c8ed10da9edd 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.47.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.48.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index ff8fc4abcd30..3039f6cc11ae 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.47.0 + 3.48.0 diff --git a/pom.xml b/pom.xml index 54e8463b2e62..b2710d75baf6 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.47.0 + 3.48.0 From a699619087d3cec91cb4120a24e9dd09c464b09c Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 16 May 2025 19:41:29 +0200 Subject: [PATCH 3228/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.14.1 (#3792) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b2710d75baf6..7a49e7c8d7b6 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.14.0 + 3.14.1 pom import From e289390f5ab31aa8ef39c21721354a6102dc7aee Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 19 May 2025 10:13:07 -0400 Subject: [PATCH 3229/3441] chore(main): release 2.50.1 (#3789) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 13 +++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 22 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 875117270397..201284f14d87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [2.50.1](https://github.com/googleapis/java-bigquery/compare/v2.50.0...v2.50.1) (2025-05-16) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.48.0 ([#3790](https://github.com/googleapis/java-bigquery/issues/3790)) ([206f06d](https://github.com/googleapis/java-bigquery/commit/206f06de115ead53b26f09a5f4781efd279b5a73)) +* Update netty.version to v4.2.1.final ([#3780](https://github.com/googleapis/java-bigquery/issues/3780)) ([6dcd858](https://github.com/googleapis/java-bigquery/commit/6dcd858eca788a8cb571368e12b4925993e380c4)) + + +### Documentation + +* **bigquery:** Update TableResult.getTotalRows() docstring ([#3785](https://github.com/googleapis/java-bigquery/issues/3785)) ([6483588](https://github.com/googleapis/java-bigquery/commit/6483588a3c5785b95ea841f21aa38f50ecf4226d)) + ## [2.50.0](https://github.com/googleapis/java-bigquery/compare/v2.49.2...v2.50.0) (2025-05-06) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ec8c002e9e0d..13d1f6f573de 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.50.1-SNAPSHOT + 2.50.1 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 3039f6cc11ae..9761bae569df 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.50.1-SNAPSHOT + 2.50.1 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.50.1-SNAPSHOT + 2.50.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 94daf260a785..ff18bbb374dc 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.50.1-SNAPSHOT + 2.50.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.50.1-SNAPSHOT + 2.50.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 7a49e7c8d7b6..93fe963fe76a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.50.1-SNAPSHOT + 2.50.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.50.1-SNAPSHOT + 2.50.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e89ec11a5987..958918c02075 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.50.1-SNAPSHOT + 2.50.1 diff --git a/versions.txt b/versions.txt index 62a1992cb443..6aa45c769558 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.50.0:2.50.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.50.1:2.50.1 \ No newline at end of file From a21cde8994e93337326cc4a2deb4bafd1596b77f Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Fri, 30 May 2025 14:18:20 -0700 Subject: [PATCH 3230/3441] feat(bigquery): job creation mode GA (#3804) * feat(bigquery): job creation mode GA * deprecate query preview * Update samples * rename snippet to job optional * fix style * rename sample test --- .../google/cloud/bigquery/BigQueryImpl.java | 11 +++---- .../cloud/bigquery/BigQueryOptions.java | 19 ++++++++---- .../cloud/bigquery/QueryJobConfiguration.java | 6 ++-- .../cloud/bigquery/QueryRequestInfo.java | 3 +- .../cloud/bigquery/it/ITBigQueryTest.java | 31 +++++++++---------- ...ryShortMode.java => QueryJobOptional.java} | 21 +++++++------ ...ortModeIT.java => QueryJobOptionalIT.java} | 4 +-- 7 files changed, 50 insertions(+), 45 deletions(-) rename samples/snippets/src/main/java/com/example/bigquery/{QueryShortMode.java => QueryJobOptional.java} (78%) rename samples/snippets/src/test/java/com/example/bigquery/{QueryShortModeIT.java => QueryJobOptionalIT.java} (95%) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 8f8e45ad3426..e2854781fcd0 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -40,7 +40,6 @@ import com.google.cloud.Tuple; import com.google.cloud.bigquery.BigQueryRetryHelper.BigQueryRetryHelperException; import com.google.cloud.bigquery.InsertAllRequest.RowToInsert; -import com.google.cloud.bigquery.QueryJobConfiguration.JobCreationMode; import com.google.cloud.bigquery.spi.v2.BigQueryRpc; import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import com.google.common.annotations.VisibleForTesting; @@ -1407,12 +1406,10 @@ public TableResult query(QueryJobConfiguration configuration, JobOption... optio throws InterruptedException, JobException { Job.checkNotDryRun(configuration, "query"); - if (getOptions().isQueryPreviewEnabled()) { - configuration = - configuration.toBuilder() - .setJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL) - .build(); - } + configuration = + configuration.toBuilder() + .setJobCreationMode(getOptions().getDefaultJobCreationMode()) + .build(); // If all parameters passed in configuration are supported by the query() method on the backend, // put on fast path diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index ca34a2d2ddf3..a1dacc4cf3f7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -20,10 +20,10 @@ import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; import com.google.cloud.TransportOptions; +import com.google.cloud.bigquery.QueryJobConfiguration.JobCreationMode; import com.google.cloud.bigquery.spi.BigQueryRpcFactory; import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import com.google.cloud.http.HttpTransportOptions; -import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableSet; import java.util.Set; @@ -38,7 +38,7 @@ public class BigQueryOptions extends ServiceOptions { // set the option ThrowNotFound when you want to throw the exception when the value not found private boolean setThrowNotFound; private boolean useInt64Timestamps; - private String queryPreviewEnabled = System.getenv("QUERY_PREVIEW_ENABLED"); + private JobCreationMode defaultJobCreationMode = JobCreationMode.JOB_CREATION_MODE_UNSPECIFIED; public static class DefaultBigQueryFactory implements BigQueryFactory { @@ -139,8 +139,9 @@ public String getLocation() { return location; } + @Deprecated public boolean isQueryPreviewEnabled() { - return queryPreviewEnabled != null && queryPreviewEnabled.equalsIgnoreCase("TRUE"); + return false; } public void setThrowNotFound(boolean setThrowNotFound) { @@ -151,9 +152,11 @@ public void setUseInt64Timestamps(boolean useInt64Timestamps) { this.useInt64Timestamps = useInt64Timestamps; } - @VisibleForTesting - public void setQueryPreviewEnabled(String queryPreviewEnabled) { - this.queryPreviewEnabled = queryPreviewEnabled; + @Deprecated + public void setQueryPreviewEnabled(String queryPreviewEnabled) {} + + public void setDefaultJobCreationMode(JobCreationMode jobCreationMode) { + this.defaultJobCreationMode = jobCreationMode; } public boolean getThrowNotFound() { @@ -164,6 +167,10 @@ public boolean getUseInt64Timestamps() { return useInt64Timestamps; } + public JobCreationMode getDefaultJobCreationMode() { + return defaultJobCreationMode; + } + @SuppressWarnings("unchecked") @Override public Builder toBuilder() { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index b460b6121a8d..649085540973 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -97,7 +97,7 @@ public enum Priority { } /** Job Creation Mode provides different options on job creation. */ - enum JobCreationMode { + public enum JobCreationMode { /** Unspecified JobCreationMode, defaults to JOB_CREATION_REQUIRED. */ JOB_CREATION_MODE_UNSPECIFIED, /** Default. Job creation is always required. */ @@ -683,7 +683,7 @@ public Builder setMaxResults(Long maxResults) { * Provides different options on job creation. If not specified the job creation mode is assumed * to be {@link JobCreationMode#JOB_CREATION_REQUIRED}. */ - Builder setJobCreationMode(JobCreationMode jobCreationMode) { + public Builder setJobCreationMode(JobCreationMode jobCreationMode) { this.jobCreationMode = jobCreationMode; return this; } @@ -959,7 +959,7 @@ public Long getMaxResults() { } /** Returns the job creation mode. */ - JobCreationMode getJobCreationMode() { + public JobCreationMode getJobCreationMode() { return jobCreationMode; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java index 7eebfea96df4..588b7cae8cef 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java @@ -86,7 +86,8 @@ boolean isFastQuerySupported(JobId jobId) { && config.getTableDefinitions() == null && config.getTimePartitioning() == null && config.getUserDefinedFunctions() == null - && config.getWriteDisposition() == null; + && config.getWriteDisposition() == null + && config.getJobCreationMode() != JobCreationMode.JOB_CREATION_REQUIRED; } QueryRequest toPb() { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index a28cb20ba297..6b6ceeff8729 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -111,6 +111,7 @@ import com.google.cloud.bigquery.PolicyTags; import com.google.cloud.bigquery.PrimaryKey; import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryJobConfiguration.JobCreationMode; import com.google.cloud.bigquery.QueryJobConfiguration.Priority; import com.google.cloud.bigquery.QueryParameterValue; import com.google.cloud.bigquery.Range; @@ -3483,6 +3484,7 @@ public void testExecuteSelectWithReadApi() throws SQLException { final int rowLimit = 5000; final String QUERY = "SELECT * FROM bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2017 LIMIT %s"; + bigquery.getOptions().setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_REQUIRED); // Job timeout is somewhat arbitrary - just ensures that fast query is not used. // min result size and page row count ratio ensure that the ReadAPI is used. ConnectionSettings connectionSettingsReadAPIEnabledFastQueryDisabled = @@ -7084,26 +7086,19 @@ public void testStatelessQueries() throws InterruptedException { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); BigQuery bigQuery = bigqueryHelper.getOptions().getService(); - // Simulate setting the QUERY_PREVIEW_ENABLED environment variable. - bigQuery.getOptions().setQueryPreviewEnabled("TRUE"); + // Stateless query should have no job id. + bigQuery.getOptions().setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL); TableResult tableResult = executeSimpleQuery(bigQuery); assertNotNull(tableResult.getQueryId()); assertNull(tableResult.getJobId()); - // The flag should be case-insensitive. - bigQuery.getOptions().setQueryPreviewEnabled("tRuE"); + // Job creation takes over, no query id is created. + bigQuery.getOptions().setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_REQUIRED); tableResult = executeSimpleQuery(bigQuery); - assertNotNull(tableResult.getQueryId()); - assertNull(tableResult.getJobId()); - - // Any other values won't enable optional job creation mode. - bigQuery.getOptions().setQueryPreviewEnabled("test_value"); - tableResult = executeSimpleQuery(bigQuery); - assertNotNull(tableResult.getQueryId()); + assertNull(tableResult.getQueryId()); assertNotNull(tableResult.getJobId()); - // Reset the flag. - bigQuery.getOptions().setQueryPreviewEnabled(null); + bigQuery.getOptions().setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_MODE_UNSPECIFIED); tableResult = executeSimpleQuery(bigQuery); assertNotNull(tableResult.getQueryId()); assertNotNull(tableResult.getJobId()); @@ -7128,8 +7123,8 @@ public void testTableResultJobIdAndQueryId() throws InterruptedException { // Create local BigQuery for test scenario 1 to not contaminate global test parameters. RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); BigQuery bigQuery = bigqueryHelper.getOptions().getService(); - // Simulate setting the QUERY_PREVIEW_ENABLED environment variable. - bigQuery.getOptions().setQueryPreviewEnabled("TRUE"); + // Allow queries to be stateless. + bigQuery.getOptions().setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL); String query = "SELECT 1 as one"; QueryJobConfiguration configStateless = QueryJobConfiguration.newBuilder(query).build(); TableResult result = bigQuery.query(configStateless); @@ -7181,7 +7176,7 @@ public void testStatelessQueriesWithLocation() throws Exception { table.getTableId().getTable()); // Test stateless query when BigQueryOption location matches dataset location. - bigQuery.getOptions().setQueryPreviewEnabled("TRUE"); + bigQuery.getOptions().setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL); TableResult tb = bigQuery.query(QueryJobConfiguration.of(query)); assertNull(tb.getJobId()); @@ -7189,7 +7184,9 @@ public void testStatelessQueriesWithLocation() throws Exception { try { BigQuery bigQueryWrongLocation = bigqueryHelper.getOptions().toBuilder().setLocation(wrongLocation).build().getService(); - bigQueryWrongLocation.getOptions().setQueryPreviewEnabled("TRUE"); + bigQueryWrongLocation + .getOptions() + .setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL); bigQueryWrongLocation.query(QueryJobConfiguration.of(query)); fail("querying a table with wrong location shouldn't work"); } catch (BigQueryException e) { diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryShortMode.java b/samples/snippets/src/main/java/com/example/bigquery/QueryJobOptional.java similarity index 78% rename from samples/snippets/src/main/java/com/example/bigquery/QueryShortMode.java rename to samples/snippets/src/main/java/com/example/bigquery/QueryJobOptional.java index b07f65f92a55..1abf58067171 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryShortMode.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryJobOptional.java @@ -16,34 +16,37 @@ package com.example.bigquery; -// [START bigquery_query_shortquery] +// [START bigquery_query_job_optional] import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; import com.google.cloud.bigquery.BigQueryOptions; import com.google.cloud.bigquery.JobId; import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryJobConfiguration.JobCreationMode; import com.google.cloud.bigquery.TableResult; // Sample demonstrating short mode query execution. // -// While this feature is still in preview, it is controlled by -// setting the environment variable QUERY_PREVIEW_ENABLED=TRUE -// to request short mode execution. -public class QueryShortMode { +// This feature is controlled by setting the defaultJobCreationMode +// field in the BigQueryOptions used for the client. JOB_CREATION_OPTIONAL +// allows for the execution of queries without creating a job. +public class QueryJobOptional { public static void main(String[] args) { String query = "SELECT name, gender, SUM(number) AS total FROM " + "bigquery-public-data.usa_names.usa_1910_2013 GROUP BY " + "name, gender ORDER BY total DESC LIMIT 10"; - queryShortMode(query); + queryJobOptional(query); } - public static void queryShortMode(String query) { + public static void queryJobOptional(String query) { try { // Initialize client that will be used to send requests. This client only needs // to be created once, and can be reused for multiple requests. - BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + BigQueryOptions options = BigQueryOptions.getDefaultInstance(); + options.setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL); + BigQuery bigquery = options.getService(); // Execute the query. The returned TableResult provides access information // about the query execution as well as query results. @@ -72,4 +75,4 @@ public static void queryShortMode(String query) { } } } -// [END bigquery_query_shortquery] +// [END bigquery_query_job_optional] diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryShortModeIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryJobOptionalIT.java similarity index 95% rename from samples/snippets/src/test/java/com/example/bigquery/QueryShortModeIT.java rename to samples/snippets/src/test/java/com/example/bigquery/QueryJobOptionalIT.java index 6500de7827db..8e3e97909818 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryShortModeIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryJobOptionalIT.java @@ -26,7 +26,7 @@ import org.junit.Before; import org.junit.Test; -public class QueryShortModeIT { +public class QueryJobOptionalIT { private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; @@ -56,7 +56,7 @@ public void testQueryBatch() { + "bigquery-public-data.usa_names.usa_1910_2013 GROUP BY " + "name, gender ORDER BY total DESC LIMIT 10"; - QueryShortMode.queryShortMode(query); + QueryJobOptional.queryJobOptional(query); assertThat(bout.toString()).contains("Query was run"); } } From bebf1c610e6d050c49fc05f30d3fa0247b7dfdcb Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Fri, 30 May 2025 14:18:32 -0700 Subject: [PATCH 3231/3441] feat(bigquery): Support Fine Grained ACLs for Datasets (#3803) * feat(bigquery): Support Fine Grained ACLs for Datasets * fix style * Change enum strings to uppercase * add unspecified enum option --- .../com/google/cloud/bigquery/BigQuery.java | 52 +++++++++++++++++++ .../cloud/bigquery/spi/v2/BigQueryRpc.java | 4 +- .../bigquery/spi/v2/HttpBigQueryRpc.java | 18 ++++--- .../cloud/bigquery/it/ITBigQueryTest.java | 14 +++-- 4 files changed, 75 insertions(+), 13 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 2a7d498c09df..2e0747f6be3a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -77,6 +77,42 @@ public String getSelector() { } } + enum DatasetView { + DATASET_VIEW_UNSPECIFIED("DATASET_VIEW_UNSPECIFIED"), + FULL("FULL"), + METADATA("METADATA"), + ACL("ACL"); + + private final String view; + + DatasetView(String view) { + this.view = view; + } + + @Override + public String toString() { + return view; + } + } + + enum DatasetUpdateMode { + UPDATE_MODE_UNSPECIFIED("UPDATE_MODE_UNSPECIFIED"), + UPDATE_FULL("UPDATE_FULL"), + UPDATE_METADATA("UPDATE_METADATA"), + UPDATE_ACL("UPDATE_ACL"); + + private final String updateMode; + + DatasetUpdateMode(String updateMode) { + this.updateMode = updateMode; + } + + @Override + public String toString() { + return updateMode; + } + } + /** * Fields of a BigQuery Table resource. * @@ -307,6 +343,22 @@ public static DatasetOption fields(DatasetField... fields) { public static DatasetOption accessPolicyVersion(Integer accessPolicyVersion) { return new DatasetOption(BigQueryRpc.Option.ACCESS_POLICY_VERSION, accessPolicyVersion); } + + /** + * Returns an option to specify the view that determines which dataset information is returned. + * By default, metadata and ACL information are returned. + */ + public static DatasetOption datasetView(DatasetView datasetView) { + return new DatasetOption(BigQueryRpc.Option.DATASET_VIEW, datasetView); + } + + /** + * Returns an option to specify the fields of dataset that update/patch operation is targeting. + * By default, both metadata and ACL fields are updated. + */ + public static DatasetOption updateMode(DatasetUpdateMode updateMode) { + return new DatasetOption(BigQueryRpc.Option.DATASET_UPDATE_MODE, updateMode); + } } /** Class for specifying dataset delete options. */ diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index bbde70dc5a0e..65fd45d02a10 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -60,7 +60,9 @@ enum Option { TABLE_METADATA_VIEW("view"), RETRY_OPTIONS("retryOptions"), BIGQUERY_RETRY_CONFIG("bigQueryRetryConfig"), - ACCESS_POLICY_VERSION("accessPolicyVersion"); + ACCESS_POLICY_VERSION("accessPolicyVersion"), + DATASET_VIEW("datasetView"), + DATASET_UPDATE_MODE("datasetUpdateMode"); private final String value; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index ebb8f2644f05..87f05f1f756b 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -149,10 +149,11 @@ public Dataset getDatasetSkipExceptionTranslation( .get(projectId, datasetId) .setFields(Option.FIELDS.getString(options)) .setPrettyPrint(false); - for (Map.Entry entry : options.entrySet()) { - if (entry.getKey() == Option.ACCESS_POLICY_VERSION && entry.getValue() != null) { - bqGetRequest.setAccessPolicyVersion((Integer) entry.getValue()); - } + if (options.containsKey(Option.ACCESS_POLICY_VERSION)) { + bqGetRequest.setAccessPolicyVersion((Integer) options.get(Option.ACCESS_POLICY_VERSION)); + } + if (options.containsKey(Option.DATASET_VIEW)) { + bqGetRequest.setDatasetView(options.get(Option.DATASET_VIEW).toString()); } return bqGetRequest.execute(); } @@ -350,10 +351,11 @@ public Dataset patchSkipExceptionTranslation(Dataset dataset, Map opt .patch(reference.getProjectId(), reference.getDatasetId(), dataset) .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)); - for (Map.Entry entry : options.entrySet()) { - if (entry.getKey() == Option.ACCESS_POLICY_VERSION && entry.getValue() != null) { - bqPatchRequest.setAccessPolicyVersion((Integer) entry.getValue()); - } + if (options.containsKey(Option.ACCESS_POLICY_VERSION)) { + bqPatchRequest.setAccessPolicyVersion((Integer) options.get(Option.ACCESS_POLICY_VERSION)); + } + if (options.containsKey(Option.DATASET_UPDATE_MODE)) { + bqPatchRequest.setUpdateMode(options.get(Option.DATASET_UPDATE_MODE).toString()); } return bqPatchRequest.execute(); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 6b6ceeff8729..9f80687c416f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -48,6 +48,8 @@ import com.google.cloud.bigquery.BigQuery.DatasetField; import com.google.cloud.bigquery.BigQuery.DatasetListOption; import com.google.cloud.bigquery.BigQuery.DatasetOption; +import com.google.cloud.bigquery.BigQuery.DatasetUpdateMode; +import com.google.cloud.bigquery.BigQuery.DatasetView; import com.google.cloud.bigquery.BigQuery.JobField; import com.google.cloud.bigquery.BigQuery.JobListOption; import com.google.cloud.bigquery.BigQuery.JobOption; @@ -1236,7 +1238,8 @@ public void testGetDatasetWithAccessPolicyVersion() throws IOException { "requests after the year 2024", "location"); Acl acl = Acl.of(user, role, condition); - DatasetOption datasetOption = DatasetOption.accessPolicyVersion(3); + DatasetOption accessPolicyOption = DatasetOption.accessPolicyVersion(3); + DatasetOption viewOption = DatasetOption.datasetView(DatasetView.FULL); Dataset dataset = bigquery.create( @@ -1244,10 +1247,11 @@ public void testGetDatasetWithAccessPolicyVersion() throws IOException { .setDescription("Some Description") .setAcl(ImmutableList.of(acl)) .build(), - datasetOption); + accessPolicyOption); assertThat(dataset).isNotNull(); - Dataset remoteDataset = bigquery.getDataset(accessPolicyDataset, datasetOption); + Dataset remoteDataset = + bigquery.getDataset(accessPolicyDataset, accessPolicyOption, viewOption); assertNotNull(remoteDataset); assertEquals(dataset.getDescription(), remoteDataset.getDescription()); assertNotNull(remoteDataset.getCreationTime()); @@ -1356,6 +1360,7 @@ public void testUpdateDatabaseWithAccessPolicyVersion() throws IOException { acls.add(acl); DatasetOption datasetOption = DatasetOption.accessPolicyVersion(3); + DatasetOption updateModeOption = DatasetOption.updateMode(DatasetUpdateMode.UPDATE_FULL); Dataset updatedDataset = bigquery.update( dataset.toBuilder() @@ -1363,7 +1368,8 @@ public void testUpdateDatabaseWithAccessPolicyVersion() throws IOException { .setLabels(null) .setAcl(acls) .build(), - datasetOption); + datasetOption, + updateModeOption); assertNotNull(updatedDataset); assertEquals(updatedDataset.getDescription(), "Updated Description"); assertThat(updatedDataset.getLabels().isEmpty()); From f0dc90c50f211f075740929d6f73f64a7e471785 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 3 Jun 2025 21:04:30 +0200 Subject: [PATCH 3232/3441] chore(deps): update google cloud java monorepo updates (#3769) --- pom.xml | 4 ++-- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 93fe963fe76a..82f95b1e4a62 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.66.0 + 1.69.0 pom import @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.62.0 + 2.65.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index da1da5e8cc63..e00921d05e37 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.62.0 + 2.65.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 958918c02075..34c70d9fbef0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.62.0 + 2.65.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0eb860c7959e..7af1919c3293 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.62.0 + 2.65.0 test From 0574eccec2975738804be7d0ccb4c973459c82c9 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 3 Jun 2025 21:06:38 +0200 Subject: [PATCH 3233/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.65.0 (#3787) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 82f95b1e4a62..1183691e458d 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.63.0 + 2.65.0 test From 169ed3e99dab5a70732c7ee207f6811ae355d7fe Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 3 Jun 2025 21:06:52 +0200 Subject: [PATCH 3234/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.59.0 (#3793) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index e00921d05e37..0719a5045405 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.58.2 + 2.59.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 34c70d9fbef0..8c8ce80a0ebb 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.58.2 + 2.59.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 7af1919c3293..9ddab8dc9179 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.58.2 + 2.59.0 test From d3bf724feef91469b44e1e5068738604d2b3cead Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 3 Jun 2025 21:07:03 +0200 Subject: [PATCH 3235/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20250511-2.0.0 (#3794) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1183691e458d..138f081e69a8 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20250427-2.0.0 + v2-rev20250511-2.0.0 From 4f178fedb2c7c46f89cc38b9f6a07d2878386631 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 4 Jun 2025 12:50:51 -0400 Subject: [PATCH 3236/3441] chore(main): release 2.50.2-SNAPSHOT (#3796) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 13d1f6f573de..8aec7658e673 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.50.1 + 2.50.2-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 9761bae569df..b231a29d5dfe 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.50.1 + 2.50.2-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.50.1 + 2.50.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ff18bbb374dc..a9d3bb46b249 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.50.1 + 2.50.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.50.1 + 2.50.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 138f081e69a8..6d8f73a804fe 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.50.1 + 2.50.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.50.1 + 2.50.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 8c8ce80a0ebb..72d363949809 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.50.1 + 2.50.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 6aa45c769558..00a01cc539d3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.50.1:2.50.1 \ No newline at end of file +google-cloud-bigquery:2.50.1:2.50.2-SNAPSHOT \ No newline at end of file From 63b8bdb5f21ab28ff5c2ca3dbd34922463b5ea6f Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Wed, 4 Jun 2025 10:30:43 -0700 Subject: [PATCH 3237/3441] refactor(bigquery): Clean up sample test resources, fix comments (#3823) * refactor(bigquery): Clean up sample test resources, fix comments * fix style --- .../java/com/google/cloud/bigquery/BigQueryImpl.java | 3 --- .../google/cloud/bigquery/QueryJobConfiguration.java | 2 +- .../google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java | 6 ++---- .../com/google/cloud/bigquery/it/ITBigQueryTest.java | 10 ++++------ .../java/com/example/bigquery/GrantViewAccessIT.java | 1 + 5 files changed, 8 insertions(+), 14 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index e2854781fcd0..9ede02838765 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -441,9 +441,6 @@ public com.google.api.services.bigquery.model.Job call() throws IOException { && createException.getCause() != null && createException.getCause().getMessage() != null) { - /*GoogleJsonResponseException createExceptionCause = - (GoogleJsonResponseException) createException.getCause();*/ - Pattern pattern = Pattern.compile(".*Already.*Exists:.*Job.*", Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(createException.getCause().getMessage()); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index 649085540973..a62fbb5008d4 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -187,7 +187,7 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this(); JobConfigurationQuery queryConfigurationPb = configurationPb.getQuery(); this.query = queryConfigurationPb.getQuery(); - // Allows to get undeclaredqueryparameters in jobstatistics2 + // Allows to get undeclared query parameters in jobstatistics if (queryConfigurationPb.getQueryParameters() == null && queryConfigurationPb.getParameterMode() != null) { parameterMode = queryConfigurationPb.getParameterMode(); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 87f05f1f756b..03e1fb5866ee 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -208,10 +208,8 @@ public Dataset createSkipExceptionTranslation(Dataset dataset, Map op .insert(dataset.getDatasetReference().getProjectId(), dataset) .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)); - for (Map.Entry entry : options.entrySet()) { - if (entry.getKey() == Option.ACCESS_POLICY_VERSION && entry.getValue() != null) { - bqCreateRequest.setAccessPolicyVersion((Integer) entry.getValue()); - } + if (options.containsKey(Option.ACCESS_POLICY_VERSION)) { + bqCreateRequest.setAccessPolicyVersion((Integer) options.get(Option.ACCESS_POLICY_VERSION)); } return bqCreateRequest.execute(); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 9f80687c416f..bd17b14fcbfe 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1334,7 +1334,7 @@ public void testUpdateDatasetWithSelectedFields() { } @Test - public void testUpdateDatabaseWithAccessPolicyVersion() throws IOException { + public void testUpdateDatasetWithAccessPolicyVersion() throws IOException { String accessPolicyDataset = RemoteBigQueryHelper.generateDatasetName(); ServiceAccountCredentials credentials = (ServiceAccountCredentials) GoogleCredentials.getApplicationDefault(); @@ -1827,7 +1827,7 @@ public void testCreateDatasetWithAccessPolicyVersion() throws IOException { } @Test(expected = BigQueryException.class) - public void testCreateDatabaseWithInvalidAccessPolicyVersion() throws IOException { + public void testCreateDatasetWithInvalidAccessPolicyVersion() throws IOException { String accessPolicyDataset = RemoteBigQueryHelper.generateDatasetName(); ServiceAccountCredentials credentials = (ServiceAccountCredentials) GoogleCredentials.getApplicationDefault(); @@ -4040,8 +4040,7 @@ public void testBQResultSetPagination() throws SQLException { assertEquals(300000, cnt); // total 300000 rows should be read } - // @Test - Temporarily disabling till https://github.com/googleapis/gax-java/issues/1712 or - // b/235591056 are resolved + @Test public void testReadAPIIterationAndOrder() throws SQLException { // use read API to read 300K records and check the order String query = @@ -4240,8 +4239,7 @@ public void testCreateDefaultConnection() throws BigQuerySQLException { assertTrue(connection.close()); } - // @Test - Temporarily disabling till https://github.com/googleapis/gax-java/issues/1712 or - // b/235591056 are resolved + @Test public void testReadAPIConnectionMultiClose() throws SQLException { // use read API to read 300K records, then closes the connection. This test diff --git a/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java b/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java index 11b1215ff69d..d8655a9d5849 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java @@ -94,6 +94,7 @@ public void tearDown() { DeleteTable.deleteTable(viewDatasetName, viewName); DeleteTable.deleteTable(viewDatasetName, tableName); DeleteDataset.deleteDataset(PROJECT_ID, datasetName); + DeleteDataset.deleteDataset(PROJECT_ID, viewDatasetName); // restores print statements in the original method System.out.flush(); System.setOut(originalPrintStream); From 45e464504c477f9a6e49bfd75f500e43248c31f7 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 5 Jun 2025 14:02:40 -0400 Subject: [PATCH 3238/3441] test: temporarily disable flaky bot for graalvm IT (#3833) There is a known issue with graalvm IT being very flaky (b/422746465). Disabling flaky bot to reduce the noise until we investigate the issue further. --- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index 3350e37789ca..35d360c34918 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -34,5 +34,5 @@ env_vars: { env_vars: { key: "ENABLE_FLAKYBOT" - value: "true" + value: "false" } \ No newline at end of file diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index 96ec9ba7189c..ccd8afcdcd14 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -34,5 +34,5 @@ env_vars: { env_vars: { key: "ENABLE_FLAKYBOT" - value: "true" + value: "false" } \ No newline at end of file diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index c8ed10da9edd..73d09b700542 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -34,5 +34,5 @@ env_vars: { env_vars: { key: "ENABLE_FLAKYBOT" - value: "true" + value: "false" } \ No newline at end of file diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index 3350e37789ca..35d360c34918 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -34,5 +34,5 @@ env_vars: { env_vars: { key: "ENABLE_FLAKYBOT" - value: "true" + value: "false" } \ No newline at end of file diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index 96ec9ba7189c..ccd8afcdcd14 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -34,5 +34,5 @@ env_vars: { env_vars: { key: "ENABLE_FLAKYBOT" - value: "true" + value: "false" } \ No newline at end of file diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index c8ed10da9edd..73d09b700542 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -34,5 +34,5 @@ env_vars: { env_vars: { key: "ENABLE_FLAKYBOT" - value: "true" + value: "false" } \ No newline at end of file From 94c71a090eab745c81dd9530bcdd3c8c1e734788 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 5 Jun 2025 14:13:26 -0400 Subject: [PATCH 3239/3441] deps: rollback netty.version to v4.1.119.Final (#3827) --- google-cloud-bigquery/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index a9d3bb46b249..aefc3f1f9830 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -15,7 +15,7 @@ google-cloud-bigquery - 4.2.1.Final + 4.1.119.Final From 2c5ede4b115cf7cdd078d54d29ce93636c1cedf5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 6 Jun 2025 03:56:58 +0200 Subject: [PATCH 3240/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.49.0 (#3811) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 7ce7c2267ee1..3f2945215953 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.48.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.49.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index 35d360c34918..54d873dc1fff 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.48.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.49.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index ccd8afcdcd14..b7bd7ed2f929 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.48.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.49.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index 73d09b700542..7090b33d1af0 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.48.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.49.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index 35d360c34918..54d873dc1fff 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.48.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.49.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index ccd8afcdcd14..b7bd7ed2f929 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.48.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.49.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index 73d09b700542..7090b33d1af0 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.48.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.49.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index b231a29d5dfe..1672bae3cf1b 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.48.0 + 3.49.0 diff --git a/pom.xml b/pom.xml index 6d8f73a804fe..2846bc1043db 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.48.0 + 3.49.0 From d7c6af4ec5812d1e97518579a138a004c7b0960b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 6 Jun 2025 19:28:21 +0200 Subject: [PATCH 3241/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.15.0 (#3831) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2846bc1043db..bdc1d3ed4d1a 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.14.1 + 3.15.0 pom import From c5a5c2ad791229db2071123c2788d352f0ad7408 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 6 Jun 2025 15:52:27 -0400 Subject: [PATCH 3242/3441] chore(main): release 2.51.0 (#3826) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 16 ++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 25 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 201284f14d87..e9fe4fdd3a43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## [2.51.0](https://github.com/googleapis/java-bigquery/compare/v2.50.1...v2.51.0) (2025-06-06) + + +### Features + +* **bigquery:** Job creation mode GA ([#3804](https://github.com/googleapis/java-bigquery/issues/3804)) ([a21cde8](https://github.com/googleapis/java-bigquery/commit/a21cde8994e93337326cc4a2deb4bafd1596b77f)) +* **bigquery:** Support Fine Grained ACLs for Datasets ([#3803](https://github.com/googleapis/java-bigquery/issues/3803)) ([bebf1c6](https://github.com/googleapis/java-bigquery/commit/bebf1c610e6d050c49fc05f30d3fa0247b7dfdcb)) + + +### Dependencies + +* Rollback netty.version to v4.1.119.Final ([#3827](https://github.com/googleapis/java-bigquery/issues/3827)) ([94c71a0](https://github.com/googleapis/java-bigquery/commit/94c71a090eab745c81dd9530bcdd3c8c1e734788)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.65.0 ([#3787](https://github.com/googleapis/java-bigquery/issues/3787)) ([0574ecc](https://github.com/googleapis/java-bigquery/commit/0574eccec2975738804be7d0ccb4c973459c82c9)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20250511-2.0.0 ([#3794](https://github.com/googleapis/java-bigquery/issues/3794)) ([d3bf724](https://github.com/googleapis/java-bigquery/commit/d3bf724feef91469b44e1e5068738604d2b3cead)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.49.0 ([#3811](https://github.com/googleapis/java-bigquery/issues/3811)) ([2c5ede4](https://github.com/googleapis/java-bigquery/commit/2c5ede4b115cf7cdd078d54d29ce93636c1cedf5)) + ## [2.50.1](https://github.com/googleapis/java-bigquery/compare/v2.50.0...v2.50.1) (2025-05-16) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8aec7658e673..6285defb6c95 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.50.2-SNAPSHOT + 2.51.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 1672bae3cf1b..66387cf2efd5 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.50.2-SNAPSHOT + 2.51.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.50.2-SNAPSHOT + 2.51.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index aefc3f1f9830..07cc6b0fb0cb 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.50.2-SNAPSHOT + 2.51.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.50.2-SNAPSHOT + 2.51.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index bdc1d3ed4d1a..e281937a32a0 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.50.2-SNAPSHOT + 2.51.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.50.2-SNAPSHOT + 2.51.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 72d363949809..f81a2b0d9084 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.50.2-SNAPSHOT + 2.51.0 diff --git a/versions.txt b/versions.txt index 00a01cc539d3..b17f78a7bfb0 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.50.1:2.50.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.51.0:2.51.0 \ No newline at end of file From 6e3e07a22b8397e1e9d5b567589e44abc55961f2 Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Mon, 9 Jun 2025 10:30:36 -0700 Subject: [PATCH 3243/3441] feat(bigquery): Integrate Otel in client lib (#3747) * feat(bigquery): Integrate Otel in client lib * Refactor Otel code into separate file * Add copyright comment * fix style * remove unused dependencies * remove unused test dependencies * fix dependency issue * fix it test * refactor out OtelHelper class * change test name to start with lowercase * change datasetId key to dataset * remove OtelHelper class * Clean up attribute values * Add spans to query and listPartitions * remove extraneous attributes * add attribute namespaces, change to snake_case * Resolve merge conflict * change previewEnable to JobCreationMode * fix style --- google-cloud-bigquery/pom.xml | 27 + .../google/cloud/bigquery/BigQueryImpl.java | 1012 +++++++++++++---- .../cloud/bigquery/BigQueryOptions.java | 50 + .../com/google/cloud/bigquery/DatasetId.java | 8 + .../google/cloud/bigquery/DatasetInfo.java | 13 + .../cloud/bigquery/InsertAllRequest.java | 12 + .../java/com/google/cloud/bigquery/JobId.java | 13 + .../com/google/cloud/bigquery/ModelId.java | 9 + .../com/google/cloud/bigquery/ModelInfo.java | 16 + .../com/google/cloud/bigquery/RoutineId.java | 9 + .../google/cloud/bigquery/RoutineInfo.java | 14 + .../com/google/cloud/bigquery/TableId.java | 9 + .../com/google/cloud/bigquery/TableInfo.java | 16 + .../cloud/bigquery/it/ITBigQueryTest.java | 202 ++++ pom.xml | 9 + 15 files changed, 1225 insertions(+), 194 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 07cc6b0fb0cb..9599d760c52b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -156,6 +156,16 @@ error_prone_annotations + + + io.opentelemetry + opentelemetry-api + + + io.opentelemetry + opentelemetry-context + + com.google.api @@ -208,6 +218,23 @@ proto-google-cloud-datacatalog-v1 test + + + + io.opentelemetry + opentelemetry-sdk + test + + + io.opentelemetry + opentelemetry-sdk-common + test + + + io.opentelemetry + opentelemetry-sdk-trace + test + diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 9ede02838765..2efe8f92aeb2 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -51,6 +51,9 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.context.Scope; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -268,7 +271,18 @@ public Dataset create(DatasetInfo datasetInfo, DatasetOption... options) { : datasetInfo.getDatasetId().getProject()) .toPb(); final Map optionsMap = optionMap(options); - try { + Span datasetCreate = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + datasetCreate = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.createDataset") + .setAllAttributes(datasetInfo.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope datasetCreateScope = datasetCreate != null ? datasetCreate.makeCurrent() : null) { return Dataset.fromPb( this, BigQueryRetryHelper.runWithRetries( @@ -284,6 +298,10 @@ public com.google.api.services.bigquery.model.Dataset call() throws IOException EMPTY_RETRY_CONFIG)); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (datasetCreate != null) { + datasetCreate.end(); + } } } @@ -298,7 +316,18 @@ public Table create(TableInfo tableInfo, TableOption... options) { .toPb(); handleExternalTableSchema(tablePb); final Map optionsMap = optionMap(options); - try { + Span tableCreate = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + tableCreate = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.createTable") + .setAllAttributes(tableInfo.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope tableCreateScope = tableCreate != null ? tableCreate.makeCurrent() : null) { return Table.fromPb( this, BigQueryRetryHelper.runWithRetries( @@ -314,6 +343,10 @@ public com.google.api.services.bigquery.model.Table call() throws IOException { EMPTY_RETRY_CONFIG)); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (tableCreate != null) { + tableCreate.end(); + } } } @@ -337,7 +370,18 @@ public Routine create(RoutineInfo routineInfo, RoutineOption... options) { : routineInfo.getRoutineId().getProject()) .toPb(); final Map optionsMap = optionMap(options); - try { + Span routineCreate = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + routineCreate = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.createRoutine") + .setAllAttributes(routineInfo.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope createRoutineScope = routineCreate != null ? routineCreate.makeCurrent() : null) { return Routine.fromPb( this, BigQueryRetryHelper.runWithRetries( @@ -353,6 +397,10 @@ public com.google.api.services.bigquery.model.Routine call() throws IOException EMPTY_RETRY_CONFIG)); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (routineCreate != null) { + routineCreate.end(); + } } } @@ -388,6 +436,17 @@ Job create(JobInfo jobInfo, Supplier idProvider, JobOption... options) { final boolean idRandom = (jobInfo.getJobId() == null); final Map optionsMap = optionMap(options); + Span jobCreate = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + jobCreate = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.createJob") + .setAllAttributes(jobInfo.getJobId().getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } BigQueryException createException; // NOTE(pongad): This double-try structure is admittedly odd. // translateAndThrow itself throws, and pretends to return an exception only @@ -396,90 +455,96 @@ Job create(JobInfo jobInfo, Supplier idProvider, JobOption... options) { // Fixing this entails some work on BaseServiceException.translate. // Since that affects a bunch of APIs, we should fix this as a separate change. final JobId[] finalJobId = new JobId[1]; - try { + try (Scope jobCreateScope = jobCreate != null ? jobCreate.makeCurrent() : null) { try { - return Job.fromPb( - this, - BigQueryRetryHelper.runWithRetries( - new Callable() { - @Override - public com.google.api.services.bigquery.model.Job call() throws IOException { - if (idRandom) { - // re-generate a new random job with the same jobInfo when jobId is not - // provided by the user - JobInfo recreatedJobInfo = - jobInfo.toBuilder().setJobId(idProvider.get()).build(); - com.google.api.services.bigquery.model.Job newJobPb = - recreatedJobInfo.setProjectId(getOptions().getProjectId()).toPb(); - finalJobId[0] = recreatedJobInfo.getJobId(); - return bigQueryRpc.createSkipExceptionTranslation(newJobPb, optionsMap); - } else { - com.google.api.services.bigquery.model.Job jobPb = - jobInfo.setProjectId(getOptions().getProjectId()).toPb(); - return bigQueryRpc.createSkipExceptionTranslation(jobPb, optionsMap); + try { + return Job.fromPb( + this, + BigQueryRetryHelper.runWithRetries( + new Callable() { + @Override + public com.google.api.services.bigquery.model.Job call() throws IOException { + if (idRandom) { + // re-generate a new random job with the same jobInfo when jobId is not + // provided by the user + JobInfo recreatedJobInfo = + jobInfo.toBuilder().setJobId(idProvider.get()).build(); + com.google.api.services.bigquery.model.Job newJobPb = + recreatedJobInfo.setProjectId(getOptions().getProjectId()).toPb(); + finalJobId[0] = recreatedJobInfo.getJobId(); + return bigQueryRpc.createSkipExceptionTranslation(newJobPb, optionsMap); + } else { + com.google.api.services.bigquery.model.Job jobPb = + jobInfo.setProjectId(getOptions().getProjectId()).toPb(); + return bigQueryRpc.createSkipExceptionTranslation(jobPb, optionsMap); + } } - } - }, - getRetryOptions(optionsMap) != null - ? RetryOption.mergeToSettings( - getOptions().getRetrySettings(), getRetryOptions(optionsMap)) - : getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock(), - getBigQueryRetryConfig(optionsMap) != null - ? getBigQueryRetryConfig(optionsMap) - : DEFAULT_RETRY_CONFIG)); - } catch (BigQueryRetryHelperException e) { - throw BigQueryException.translateAndThrow(e); + }, + getRetryOptions(optionsMap) != null + ? RetryOption.mergeToSettings( + getOptions().getRetrySettings(), getRetryOptions(optionsMap)) + : getOptions().getRetrySettings(), + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getClock(), + getBigQueryRetryConfig(optionsMap) != null + ? getBigQueryRetryConfig(optionsMap) + : DEFAULT_RETRY_CONFIG)); + } catch (BigQueryRetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } catch (BigQueryException e) { + createException = e; } - } catch (BigQueryException e) { - createException = e; - } - - if (!idRandom) { - if (createException instanceof BigQueryException - && createException.getCause() != null - && createException.getCause().getMessage() != null) { - - Pattern pattern = Pattern.compile(".*Already.*Exists:.*Job.*", Pattern.CASE_INSENSITIVE); - Matcher matcher = pattern.matcher(createException.getCause().getMessage()); - - if (matcher.find()) { - // If the Job ALREADY EXISTS, retrieve it. - Job job = this.getJob(jobInfo.getJobId(), JobOption.fields(JobField.STATISTICS)); - - long jobCreationTime = job.getStatistics().getCreationTime(); - long jobMinStaleTime = System.currentTimeMillis(); - long jobMaxStaleTime = - java.time.Instant.ofEpochMilli(jobMinStaleTime) - .minus(1, java.time.temporal.ChronoUnit.DAYS) - .toEpochMilli(); - - // Only return the job if it has been created in the past 24 hours. - // This is assuming any job older than 24 hours is a valid duplicate JobID - // and not a false positive like b/290419183 - if (jobCreationTime >= jobMaxStaleTime && jobCreationTime <= jobMinStaleTime) { - return job; + + if (!idRandom) { + if (createException instanceof BigQueryException + && createException.getCause() != null + && createException.getCause().getMessage() != null) { + + Pattern pattern = Pattern.compile(".*Already.*Exists:.*Job.*", Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(createException.getCause().getMessage()); + + if (matcher.find()) { + // If the Job ALREADY EXISTS, retrieve it. + Job job = this.getJob(jobInfo.getJobId(), JobOption.fields(JobField.STATISTICS)); + + long jobCreationTime = job.getStatistics().getCreationTime(); + long jobMinStaleTime = System.currentTimeMillis(); + long jobMaxStaleTime = + java.time.Instant.ofEpochMilli(jobMinStaleTime) + .minus(1, java.time.temporal.ChronoUnit.DAYS) + .toEpochMilli(); + + // Only return the job if it has been created in the past 24 hours. + // This is assuming any job older than 24 hours is a valid duplicate JobID + // and not a false positive like b/290419183 + if (jobCreationTime >= jobMaxStaleTime && jobCreationTime <= jobMinStaleTime) { + return job; + } } } + throw createException; } - throw createException; - } - // If create RPC fails, it's still possible that the job has been successfully - // created, and get might work. - // We can only do this if we randomly generated the ID. Otherwise we might - // mistakenly fetch a job created by someone else. - Job job; - try { - job = getJob(finalJobId[0]); - } catch (BigQueryException e) { - throw createException; - } - if (job == null) { - throw createException; + // If create RPC fails, it's still possible that the job has been successfully + // created, and get might work. + // We can only do this if we randomly generated the ID. Otherwise we might + // mistakenly fetch a job created by someone else. + Job job; + try { + job = getJob(finalJobId[0]); + } catch (BigQueryException e) { + throw createException; + } + if (job == null) { + throw createException; + } + return job; + } finally { + if (jobCreate != null) { + jobCreate.end(); + } } - return job; } @Override @@ -491,7 +556,18 @@ public Dataset getDataset(String datasetId, DatasetOption... options) { public Dataset getDataset(final DatasetId datasetId, DatasetOption... options) { final DatasetId completeDatasetId = datasetId.setProjectId(getOptions().getProjectId()); final Map optionsMap = optionMap(options); - try { + Span datasetGet = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + datasetGet = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.getDataset") + .setAllAttributes(completeDatasetId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope datasetGetScope = datasetGet != null ? datasetGet.makeCurrent() : null) { com.google.api.services.bigquery.model.Dataset answer = BigQueryRetryHelper.runWithRetries( new Callable() { @@ -514,6 +590,10 @@ public com.google.api.services.bigquery.model.Dataset call() throws IOException return null; } throw BigQueryException.translateAndThrow(e); + } finally { + if (datasetGet != null) { + datasetGet.end(); + } } } @@ -524,7 +604,24 @@ public Page listDatasets(DatasetListOption... options) { @Override public Page listDatasets(String projectId, DatasetListOption... options) { - return listDatasets(projectId, getOptions(), optionMap(options)); + Span datasetsList = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + datasetsList = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.listDatasets") + .setAttribute("bq.dataset.project_id", projectId) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope datasetsListScope = datasetsList != null ? datasetsList.makeCurrent() : null) { + return listDatasets(projectId, getOptions(), optionMap(options)); + } finally { + if (datasetsList != null) { + datasetsList.end(); + } + } } private static Page listDatasets( @@ -574,7 +671,18 @@ public boolean delete(String datasetId, DatasetDeleteOption... options) { public boolean delete(DatasetId datasetId, DatasetDeleteOption... options) { final DatasetId completeDatasetId = datasetId.setProjectId(getOptions().getProjectId()); final Map optionsMap = optionMap(options); - try { + Span datasetDelete = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + datasetDelete = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.deleteDataset") + .setAllAttributes(datasetId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope datasetDeleteScope = datasetDelete != null ? datasetDelete.makeCurrent() : null) { return BigQueryRetryHelper.runWithRetries( new Callable() { @Override @@ -592,6 +700,10 @@ public Boolean call() throws IOException { return false; } throw BigQueryException.translateAndThrow(e); + } finally { + if (datasetDelete != null) { + datasetDelete.end(); + } } } @@ -607,7 +719,17 @@ public boolean delete(TableId tableId) { Strings.isNullOrEmpty(tableId.getProject()) ? getOptions().getProjectId() : tableId.getProject()); - try { + Span tableDelete = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + tableDelete = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.deleteTable") + .setAllAttributes(tableId.getOtelAttributes()) + .startSpan(); + } + try (Scope tableDeleteScope = tableDelete != null ? tableDelete.makeCurrent() : null) { return BigQueryRetryHelper.runWithRetries( new Callable() { @Override @@ -627,6 +749,10 @@ public Boolean call() throws IOException { return false; } throw BigQueryException.translateAndThrow(e); + } finally { + if (tableDelete != null) { + tableDelete.end(); + } } } @@ -637,7 +763,17 @@ public boolean delete(ModelId modelId) { Strings.isNullOrEmpty(modelId.getProject()) ? getOptions().getProjectId() : modelId.getProject()); - try { + Span modelDelete = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + modelDelete = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.deleteModel") + .setAllAttributes(modelId.getOtelAttributes()) + .startSpan(); + } + try (Scope modelDeleteScope = modelDelete != null ? modelDelete.makeCurrent() : null) { return BigQueryRetryHelper.runWithRetries( new Callable() { @Override @@ -657,6 +793,10 @@ public Boolean call() throws IOException { return false; } throw BigQueryException.translateAndThrow(e); + } finally { + if (modelDelete != null) { + modelDelete.end(); + } } } @@ -667,7 +807,17 @@ public boolean delete(RoutineId routineId) { Strings.isNullOrEmpty(routineId.getProject()) ? getOptions().getProjectId() : routineId.getProject()); - try { + Span routineDelete = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + routineDelete = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.deleteRoutine") + .setAllAttributes(routineId.getOtelAttributes()) + .startSpan(); + } + try (Scope routineDeleteScope = routineDelete != null ? routineDelete.makeCurrent() : null) { return BigQueryRetryHelper.runWithRetries( new Callable() { @Override @@ -687,6 +837,10 @@ public Boolean call() throws IOException { return false; } throw BigQueryException.translateAndThrow(e); + } finally { + if (routineDelete != null) { + routineDelete.end(); + } } } @@ -697,6 +851,16 @@ public boolean delete(JobId jobId) { Strings.isNullOrEmpty(jobId.getProject()) ? getOptions().getProjectId() : jobId.getProject()); + Span jobDelete = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + jobDelete = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.deleteJob") + .setAllAttributes(completeJobId.getOtelAttributes()) + .startSpan(); + } try { return BigQueryRetryHelper.runWithRetries( new Callable() { @@ -712,6 +876,10 @@ public Boolean call() throws IOException { EMPTY_RETRY_CONFIG); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (jobDelete != null) { + jobDelete.end(); + } } } @@ -720,7 +888,18 @@ public Dataset update(DatasetInfo datasetInfo, DatasetOption... options) { final com.google.api.services.bigquery.model.Dataset datasetPb = datasetInfo.setProjectId(getOptions().getProjectId()).toPb(); final Map optionsMap = optionMap(options); - try { + Span datasetUpdate = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + datasetUpdate = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.updateDataset") + .setAllAttributes(datasetInfo.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope datasetUpdateScope = datasetUpdate != null ? datasetUpdate.makeCurrent() : null) { return Dataset.fromPb( this, BigQueryRetryHelper.runWithRetries( @@ -736,6 +915,10 @@ public com.google.api.services.bigquery.model.Dataset call() throws IOException EMPTY_RETRY_CONFIG)); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (datasetUpdate != null) { + datasetUpdate.end(); + } } } @@ -750,7 +933,18 @@ public Table update(TableInfo tableInfo, TableOption... options) { .toPb(); handleExternalTableSchema(tablePb); final Map optionsMap = optionMap(options); - try { + Span tableUpdate = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + tableUpdate = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.updateTable") + .setAllAttributes(tableInfo.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope tableUpdateScope = tableUpdate != null ? tableUpdate.makeCurrent() : null) { return Table.fromPb( this, BigQueryRetryHelper.runWithRetries( @@ -766,6 +960,10 @@ public com.google.api.services.bigquery.model.Table call() throws IOException { EMPTY_RETRY_CONFIG)); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (tableUpdate != null) { + tableUpdate.end(); + } } } @@ -779,7 +977,18 @@ public Model update(ModelInfo modelInfo, ModelOption... options) { : modelInfo.getModelId().getProject()) .toPb(); final Map optionsMap = optionMap(options); - try { + Span modelUpdate = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + modelUpdate = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.updateModel") + .setAllAttributes(modelInfo.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope modelUpdateScope = modelUpdate != null ? modelUpdate.makeCurrent() : null) { return Model.fromPb( this, BigQueryRetryHelper.runWithRetries( @@ -795,6 +1004,10 @@ public com.google.api.services.bigquery.model.Model call() throws IOException { EMPTY_RETRY_CONFIG)); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (modelUpdate != null) { + modelUpdate.end(); + } } } @@ -808,7 +1021,18 @@ public Routine update(RoutineInfo routineInfo, RoutineOption... options) { : routineInfo.getRoutineId().getProject()) .toPb(); final Map optionsMap = optionMap(options); - try { + Span routineUpdate = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + routineUpdate = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.updateRoutine") + .setAllAttributes(routineInfo.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope routineUpdateScope = routineUpdate != null ? routineUpdate.makeCurrent() : null) { return Routine.fromPb( this, BigQueryRetryHelper.runWithRetries( @@ -824,6 +1048,10 @@ public com.google.api.services.bigquery.model.Routine call() throws IOException EMPTY_RETRY_CONFIG)); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (routineUpdate != null) { + routineUpdate.end(); + } } } @@ -842,7 +1070,18 @@ public Table getTable(TableId tableId, TableOption... options) { ? getOptions().getProjectId() : tableId.getProject()); final Map optionsMap = optionMap(options); - try { + Span tableGet = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + tableGet = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.getTable") + .setAllAttributes(tableId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope tableGetScope = tableGet != null ? tableGet.makeCurrent() : null) { com.google.api.services.bigquery.model.Table answer = BigQueryRetryHelper.runWithRetries( new Callable() { @@ -868,6 +1107,10 @@ public com.google.api.services.bigquery.model.Table call() throws IOException { return null; } throw BigQueryException.translateAndThrow(e); + } finally { + if (tableGet != null) { + tableGet.end(); + } } } @@ -884,7 +1127,18 @@ public Model getModel(ModelId modelId, ModelOption... options) { ? getOptions().getProjectId() : modelId.getProject()); final Map optionsMap = optionMap(options); - try { + Span modelGet = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + modelGet = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.getModel") + .setAllAttributes(modelId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope modelGetScope = modelGet != null ? modelGet.makeCurrent() : null) { com.google.api.services.bigquery.model.Model answer = BigQueryRetryHelper.runWithRetries( new Callable() { @@ -910,6 +1164,10 @@ public com.google.api.services.bigquery.model.Model call() throws IOException { return null; } throw BigQueryException.translateAndThrow(e); + } finally { + if (modelGet != null) { + modelGet.end(); + } } } @@ -926,7 +1184,18 @@ public Routine getRoutine(RoutineId routineId, RoutineOption... options) { ? getOptions().getProjectId() : routineId.getProject()); final Map optionsMap = optionMap(options); - try { + Span routineGet = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + routineGet = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.getRoutine") + .setAllAttributes(routineId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope routineGetScope = routineGet != null ? routineGet.makeCurrent() : null) { com.google.api.services.bigquery.model.Routine answer = BigQueryRetryHelper.runWithRetries( new Callable() { @@ -952,67 +1221,189 @@ public com.google.api.services.bigquery.model.Routine call() throws IOException return null; } throw BigQueryException.translateAndThrow(e); + } finally { + if (routineGet != null) { + routineGet.end(); + } } } @Override public Page
    listTables(String datasetId, TableListOption... options) { - return listTables( - DatasetId.of(getOptions().getProjectId(), datasetId), getOptions(), optionMap(options)); + Span tablesList = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + tablesList = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.listTables") + .setAllAttributes(DatasetId.of(datasetId).getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope tablesListScope = tablesList != null ? tablesList.makeCurrent() : null) { + return listTables( + DatasetId.of(getOptions().getProjectId(), datasetId), getOptions(), optionMap(options)); + } finally { + if (tablesList != null) { + tablesList.end(); + } + } } @Override public Page
    listTables(DatasetId datasetId, TableListOption... options) { DatasetId completeDatasetId = datasetId.setProjectId(getOptions().getProjectId()); - return listTables(completeDatasetId, getOptions(), optionMap(options)); + Span tablesList = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + tablesList = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.listTables") + .setAllAttributes(completeDatasetId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope tablesListScope = tablesList != null ? tablesList.makeCurrent() : null) { + return listTables(completeDatasetId, getOptions(), optionMap(options)); + } finally { + if (tablesList != null) { + tablesList.end(); + } + } } @Override public Page listModels(String datasetId, ModelListOption... options) { - return listModels( - DatasetId.of(getOptions().getProjectId(), datasetId), getOptions(), optionMap(options)); + Span modelsList = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + modelsList = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.listModels") + .setAllAttributes(DatasetId.of(datasetId).getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope modelsListScope = modelsList != null ? modelsList.makeCurrent() : null) { + return listModels( + DatasetId.of(getOptions().getProjectId(), datasetId), getOptions(), optionMap(options)); + } finally { + if (modelsList != null) { + modelsList.end(); + } + } } @Override public Page listModels(DatasetId datasetId, ModelListOption... options) { DatasetId completeDatasetId = datasetId.setProjectId(getOptions().getProjectId()); - return listModels(completeDatasetId, getOptions(), optionMap(options)); + Span modelsList = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + modelsList = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.listModels") + .setAllAttributes(datasetId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope modelsListScope = modelsList != null ? modelsList.makeCurrent() : null) { + return listModels(completeDatasetId, getOptions(), optionMap(options)); + } finally { + if (modelsList != null) { + modelsList.end(); + } + } } @Override public Page listRoutines(String datasetId, RoutineListOption... options) { - return listRoutines( - DatasetId.of(getOptions().getProjectId(), datasetId), getOptions(), optionMap(options)); + Span routinesList = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + routinesList = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.listRoutines") + .setAllAttributes(DatasetId.of(datasetId).getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope routinesListScope = routinesList != null ? routinesList.makeCurrent() : null) { + return listRoutines( + DatasetId.of(getOptions().getProjectId(), datasetId), getOptions(), optionMap(options)); + } finally { + if (routinesList != null) { + routinesList.end(); + } + } } @Override public Page listRoutines(DatasetId datasetId, RoutineListOption... options) { DatasetId completeDatasetId = datasetId.setProjectId(getOptions().getProjectId()); - return listRoutines(completeDatasetId, getOptions(), optionMap(options)); + Span routinesList = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + routinesList = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.listRoutines") + .setAllAttributes(datasetId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope routinesListScope = routinesList != null ? routinesList.makeCurrent() : null) { + return listRoutines(completeDatasetId, getOptions(), optionMap(options)); + } finally { + if (routinesList != null) { + routinesList.end(); + } + } } @Override public List listPartitions(TableId tableId) { - List partitions = new ArrayList(); - String partitionsTable = tableId.getTable() + "$__PARTITIONS_SUMMARY__"; - TableId metaTableId = - tableId.getProject() == null - ? TableId.of(tableId.getDataset(), partitionsTable) - : TableId.of(tableId.getProject(), tableId.getDataset(), partitionsTable); - Table metaTable = getTable(metaTableId); - Schema metaSchema = metaTable.getDefinition().getSchema(); - String partition_id = null; - for (Field field : metaSchema.getFields()) { - if (field.getName().equals("partition_id")) { - partition_id = field.getName(); - break; - } + Span listPartitions = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + listPartitions = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.listPartitions") + .setAllAttributes(tableId.getOtelAttributes()) + .startSpan(); } - TableResult result = metaTable.list(metaSchema); - for (FieldValueList list : result.iterateAll()) { - partitions.add(list.get(partition_id).getStringValue()); + try (Scope listPartitionsScope = listPartitions != null ? listPartitions.makeCurrent() : null) { + List partitions = new ArrayList(); + String partitionsTable = tableId.getTable() + "$__PARTITIONS_SUMMARY__"; + TableId metaTableId = + tableId.getProject() == null + ? TableId.of(tableId.getDataset(), partitionsTable) + : TableId.of(tableId.getProject(), tableId.getDataset(), partitionsTable); + Table metaTable = getTable(metaTableId); + Schema metaSchema = metaTable.getDefinition().getSchema(); + String partition_id = null; + for (Field field : metaSchema.getFields()) { + if (field.getName().equals("partition_id")) { + partition_id = field.getName(); + break; + } + } + TableResult result = metaTable.list(metaSchema); + for (FieldValueList list : result.iterateAll()) { + partitions.add(list.get(partition_id).getStringValue()); + } + return partitions; + } finally { + if (listPartitions != null) { + listPartitions.end(); + } } - return partitions; } private static Page
    listTables( @@ -1165,33 +1556,52 @@ public Rows apply(RowToInsert rowToInsert) { requestPb.setRows(rowsPb); TableDataInsertAllResponse responsePb; - if (allInsertIdsSet[0]) { - // allowing retries only if all row insertIds are set (used for deduplication) - try { + Span insertAll = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + insertAll = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.insertAll") + .setAllAttributes(request.getOtelAttributes()) + .startSpan(); + } + try (Scope insertAllScope = insertAll != null ? insertAll.makeCurrent() : null) { + if (allInsertIdsSet[0]) { + // allowing retries only if all row insertIds are set (used for deduplication) + try { + responsePb = + BigQueryRetryHelper.runWithRetries( + new Callable() { + @Override + public TableDataInsertAllResponse call() throws Exception { + return bigQueryRpc.insertAllSkipExceptionTranslation( + tableId.getProject(), + tableId.getDataset(), + tableId.getTable(), + requestPb); + } + }, + getOptions().getRetrySettings(), + BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getClock(), + EMPTY_RETRY_CONFIG); + } catch (BigQueryRetryHelperException e) { + throw BigQueryException.translateAndThrow(e); + } + } else { + // Use insertAll that translate the exception as we are not retrying. responsePb = - BigQueryRetryHelper.runWithRetries( - new Callable() { - @Override - public TableDataInsertAllResponse call() throws Exception { - return bigQueryRpc.insertAllSkipExceptionTranslation( - tableId.getProject(), tableId.getDataset(), tableId.getTable(), requestPb); - } - }, - getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, - getOptions().getClock(), - EMPTY_RETRY_CONFIG); - } catch (BigQueryRetryHelperException e) { - throw BigQueryException.translateAndThrow(e); + bigQueryRpc.insertAll( + tableId.getProject(), tableId.getDataset(), tableId.getTable(), requestPb); } - } else { - // Use insertAll that translate the exception as we are not retrying. - responsePb = - bigQueryRpc.insertAll( - tableId.getProject(), tableId.getDataset(), tableId.getTable(), requestPb); - } - return InsertAllResponse.fromPb(responsePb); + return InsertAllResponse.fromPb(responsePb); + } finally { + if (insertAll != null) { + insertAll.end(); + } + } } @Override @@ -1215,11 +1625,28 @@ public TableResult listTableData( public TableResult listTableData(TableId tableId, Schema schema, TableDataListOption... options) { Tuple, Long> data = listTableData(tableId, schema, getOptions(), optionMap(options)); - return TableResult.newBuilder() - .setSchema(schema) - .setTotalRows(data.y()) - .setPageNoSchema(data.x()) - .build(); + Span tableDataList = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + tableDataList = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.listTableData") + .setAllAttributes(tableId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope tableDataListScope = tableDataList != null ? tableDataList.makeCurrent() : null) { + return TableResult.newBuilder() + .setSchema(schema) + .setTotalRows(data.y()) + .setPageNoSchema(data.x()) + .build(); + } finally { + if (tableDataList != null) { + tableDataList.end(); + } + } } private static Tuple, Long> listTableData( @@ -1295,7 +1722,18 @@ public Job getJob(JobId jobId, JobOption... options) { jobId.getLocation() == null && getOptions().getLocation() != null ? getOptions().getLocation() : jobId.getLocation()); - try { + Span jobGet = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + jobGet = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.getJob") + .setAllAttributes(completeJobId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope jobGetScope = jobGet != null ? jobGet.makeCurrent() : null) { com.google.api.services.bigquery.model.Job answer = BigQueryRetryHelper.runWithRetries( new Callable() { @@ -1321,12 +1759,32 @@ public com.google.api.services.bigquery.model.Job call() throws IOException { return null; } throw BigQueryException.translateAndThrow(e); + } finally { + if (jobGet != null) { + jobGet.end(); + } } } @Override public Page listJobs(JobListOption... options) { - return listJobs(getOptions(), optionMap(options)); + Span jobsList = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + jobsList = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.listJobs") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope jobsListScope = jobsList != null ? jobsList.makeCurrent() : null) { + return listJobs(getOptions(), optionMap(options)); + } finally { + if (jobsList != null) { + jobsList.end(); + } + } } private static Page listJobs( @@ -1377,7 +1835,17 @@ public boolean cancel(JobId jobId) { jobId.getLocation() == null && getOptions().getLocation() != null ? getOptions().getLocation() : jobId.getLocation()); - try { + Span jobCancel = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + jobCancel = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.cancelJob") + .setAllAttributes(completeJobId.getOtelAttributes()) + .startSpan(); + } + try (Scope jobCancelScope = jobCancel != null ? jobCancel.makeCurrent() : null) { return BigQueryRetryHelper.runWithRetries( new Callable() { @Override @@ -1395,6 +1863,10 @@ public Boolean call() throws IOException { return false; } throw BigQueryException.translateAndThrow(e); + } finally { + if (jobCancel != null) { + jobCancel.end(); + } } } @@ -1408,27 +1880,56 @@ public TableResult query(QueryJobConfiguration configuration, JobOption... optio .setJobCreationMode(getOptions().getDefaultJobCreationMode()) .build(); - // If all parameters passed in configuration are supported by the query() method on the backend, - // put on fast path - QueryRequestInfo requestInfo = - new QueryRequestInfo(configuration, getOptions().getUseInt64Timestamps()); - if (requestInfo.isFastQuerySupported(null)) { - String projectId = getOptions().getProjectId(); - QueryRequest content = requestInfo.toPb(); - if (getOptions().getLocation() != null) { - content.setLocation(getOptions().getLocation()); + Span querySpan = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + querySpan = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.query") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope queryScope = querySpan != null ? querySpan.makeCurrent() : null) { + // If all parameters passed in configuration are supported by the query() method on the + // backend, + // put on fast path + QueryRequestInfo requestInfo = + new QueryRequestInfo(configuration, getOptions().getUseInt64Timestamps()); + if (requestInfo.isFastQuerySupported(null)) { + String projectId = getOptions().getProjectId(); + QueryRequest content = requestInfo.toPb(); + if (getOptions().getLocation() != null) { + content.setLocation(getOptions().getLocation()); + } + return queryRpc(projectId, content, options); + } + // Otherwise, fall back to the existing create query job logic + return create(JobInfo.of(configuration), options).getQueryResults(); + } finally { + if (querySpan != null) { + querySpan.end(); } - return queryRpc(projectId, content, options); } - // Otherwise, fall back to the existing create query job logic - return create(JobInfo.of(configuration), options).getQueryResults(); } private TableResult queryRpc( final String projectId, final QueryRequest content, JobOption... options) throws InterruptedException { com.google.api.services.bigquery.model.QueryResponse results; - try { + Span queryRpc = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + queryRpc = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.queryRpc") + .setAttribute("bq.query.project_id", projectId) + .setAllAttributes(otelAttributesFromQueryRequest(content)) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope queryRpcScope = queryRpc != null ? queryRpc.makeCurrent() : null) { results = BigQueryRetryHelper.runWithRetries( new Callable() { @@ -1444,6 +1945,10 @@ public com.google.api.services.bigquery.model.QueryResponse call() DEFAULT_RETRY_CONFIG); } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (queryRpc != null) { + queryRpc.end(); + } } if (results.getErrors() != null) { @@ -1513,37 +2018,74 @@ public TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOp throws InterruptedException, JobException { Job.checkNotDryRun(configuration, "query"); - // If all parameters passed in configuration are supported by the query() method on the backend, - // put on fast path - QueryRequestInfo requestInfo = - new QueryRequestInfo(configuration, getOptions().getUseInt64Timestamps()); - if (requestInfo.isFastQuerySupported(jobId)) { - // Be careful when setting the projectID in JobId, if a projectID is specified in the JobId, - // the job created by the query method will use that project. This may cause the query to - // fail with "Access denied" if the project do not have enough permissions to run the job. - - String projectId = - jobId.getProject() != null ? jobId.getProject() : getOptions().getProjectId(); - QueryRequest content = requestInfo.toPb(); - // Be careful when setting the location, if a location is specified in the BigQueryOption or - // JobId the job created by the query method will be in that location, even if the table to be - // queried is in a different location. This may cause the query to fail with - // "BigQueryException: Not found" - if (jobId.getLocation() != null) { - content.setLocation(jobId.getLocation()); - } else if (getOptions().getLocation() != null) { - content.setLocation(getOptions().getLocation()); - } + Span querySpan = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + querySpan = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.query") + .setAllAttributes(jobId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope queryScope = querySpan != null ? querySpan.makeCurrent() : null) { + // If all parameters passed in configuration are supported by the query() method on the + // backend, + // put on fast path + QueryRequestInfo requestInfo = + new QueryRequestInfo(configuration, getOptions().getUseInt64Timestamps()); + if (requestInfo.isFastQuerySupported(jobId)) { + // Be careful when setting the projectID in JobId, if a projectID is specified in the JobId, + // the job created by the query method will use that project. This may cause the query to + // fail with "Access denied" if the project do not have enough permissions to run the job. + + String projectId = + jobId.getProject() != null ? jobId.getProject() : getOptions().getProjectId(); + QueryRequest content = requestInfo.toPb(); + // Be careful when setting the location, if a location is specified in the BigQueryOption or + // JobId the job created by the query method will be in that location, even if the table to + // be + // queried is in a different location. This may cause the query to fail with + // "BigQueryException: Not found" + if (jobId.getLocation() != null) { + content.setLocation(jobId.getLocation()); + } else if (getOptions().getLocation() != null) { + content.setLocation(getOptions().getLocation()); + } - return queryRpc(projectId, content, options); + return queryRpc(projectId, content, options); + } + return create(JobInfo.of(jobId, configuration), options).getQueryResults(); + } finally { + if (querySpan != null) { + querySpan.end(); + } } - return create(JobInfo.of(jobId, configuration), options).getQueryResults(); } @Override public QueryResponse getQueryResults(JobId jobId, QueryResultsOption... options) { Map optionsMap = optionMap(options); - return getQueryResults(jobId, getOptions(), optionsMap); + Span getQueryResults = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + getQueryResults = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.getQueryResults") + .setAllAttributes(jobId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope getQueryResultsScope = + getQueryResults != null ? getQueryResults.makeCurrent() : null) { + return getQueryResults(jobId, getOptions(), optionsMap); + } finally { + if (getQueryResults != null) { + getQueryResults.end(); + } + } } private static QueryResponse getQueryResults( @@ -1619,8 +2161,19 @@ public Policy getIamPolicy(TableId tableId, IAMOption... options) { ? getOptions().getProjectId() : tableId.getProject()); - try { - final Map optionsMap = optionMap(options); + final Map optionsMap = optionMap(options); + Span iamPolicyGet = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + iamPolicyGet = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.getIamPolicy") + .setAllAttributes(tableId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope iamPolicyGetScope = iamPolicyGet != null ? iamPolicyGet.makeCurrent() : null) { return convertFromApiPolicy( BigQueryRetryHelper.runWithRetries( new Callable() { @@ -1636,6 +2189,10 @@ public com.google.api.services.bigquery.model.Policy call() throws IOException { EMPTY_RETRY_CONFIG)); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (iamPolicyGet != null) { + iamPolicyGet.end(); + } } } @@ -1646,8 +2203,21 @@ public Policy setIamPolicy(TableId tableId, final Policy policy, IAMOption... op Strings.isNullOrEmpty(tableId.getProject()) ? getOptions().getProjectId() : tableId.getProject()); - try { - final Map optionsMap = optionMap(options); + + final Map optionsMap = optionMap(options); + Span iamPolicySet = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + iamPolicySet = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.setIamPolicy") + .setAllAttributes(tableId.getOtelAttributes()) + .setAllAttributes(otelAttributesFromPolicy(policy)) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope iamPolicySetScope = iamPolicySet != null ? iamPolicySet.makeCurrent() : null) { return convertFromApiPolicy( BigQueryRetryHelper.runWithRetries( new Callable() { @@ -1663,6 +2233,10 @@ public com.google.api.services.bigquery.model.Policy call() throws IOException { EMPTY_RETRY_CONFIG)); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (iamPolicySet != null) { + iamPolicySet.end(); + } } } @@ -1674,8 +2248,21 @@ public List testIamPermissions( Strings.isNullOrEmpty(tableId.getProject()) ? getOptions().getProjectId() : tableId.getProject()); - try { - final Map optionsMap = optionMap(options); + final Map optionsMap = optionMap(options); + Span testIamPermissions = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + testIamPermissions = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQuery.testIamPermissions") + .setAllAttributes(tableId.getOtelAttributes()) + .setAttribute("bq.iam.permissions", permissions.toString()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + try (Scope testIamPermissionsScope = + testIamPermissions != null ? testIamPermissions.makeCurrent() : null) { com.google.api.services.bigquery.model.TestIamPermissionsResponse response = BigQueryRetryHelper.runWithRetries( new Callable() { @@ -1695,6 +2282,10 @@ public com.google.api.services.bigquery.model.TestIamPermissionsResponse call() : ImmutableList.copyOf(response.getPermissions()); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (testIamPermissions != null) { + testIamPermissions.end(); + } } } @@ -1708,6 +2299,39 @@ public com.google.api.services.bigquery.model.TestIamPermissionsResponse call() return optionMap; } + private static String getFieldAsString(Object field) { + return field == null ? "null" : field.toString(); + } + + private static Attributes otelAttributesFromOptions(Option... options) { + Attributes attributes = Attributes.builder().build(); + for (Option option : options) { + attributes = + attributes.toBuilder() + .put("bq.option." + option.getRpcOption().toString(), option.getValue().toString()) + .build(); + } + return attributes; + } + + private static Attributes otelAttributesFromQueryRequest(QueryRequest request) { + return Attributes.builder() + .put("bq.query.dry_run", getFieldAsString(request.getDryRun())) + .put("bq.query.job_creation_mode", getFieldAsString(request.getJobCreationMode())) + .put("bq.query.kind", getFieldAsString(request.getKind())) + .put("bq.query.location", getFieldAsString(request.getLocation())) + .put("bq.query.request_id", getFieldAsString(request.getRequestId())) + .put("bq.query.use_query_cache", getFieldAsString(request.getUseQueryCache())) + .build(); + } + + private static Attributes otelAttributesFromPolicy(Policy policy) { + return Attributes.builder() + .put("bq.policy.version", getFieldAsString(policy.getVersion())) + .put("bq.policy.bindings", getFieldAsString(policy.getBindings())) + .build(); + } + static BigQueryRetryConfig getBigQueryRetryConfig(Map options) { return (BigQueryRetryConfig) options.getOrDefault(BigQueryRpc.Option.BIGQUERY_RETRY_CONFIG, null); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index a1dacc4cf3f7..36eeb208699c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -16,6 +16,7 @@ package com.google.cloud.bigquery; +import com.google.api.core.BetaApi; import com.google.cloud.ServiceDefaults; import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; @@ -25,6 +26,7 @@ import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import com.google.cloud.http.HttpTransportOptions; import com.google.common.collect.ImmutableSet; +import io.opentelemetry.api.trace.Tracer; import java.util.Set; public class BigQueryOptions extends ServiceOptions { @@ -39,6 +41,8 @@ public class BigQueryOptions extends ServiceOptions { private boolean setThrowNotFound; private boolean useInt64Timestamps; private JobCreationMode defaultJobCreationMode = JobCreationMode.JOB_CREATION_MODE_UNSPECIFIED; + private boolean enableOpenTelemetryTracing; + private Tracer openTelemetryTracer; public static class DefaultBigQueryFactory implements BigQueryFactory { @@ -64,6 +68,8 @@ public static class Builder extends ServiceOptions.Builder { @@ -171,6 +201,26 @@ public JobCreationMode getDefaultJobCreationMode() { return defaultJobCreationMode; } + /** + * Returns whether this BigQuery instance has OpenTelemetry tracing enabled + * + * @return true if tracing is enabled, false if not + */ + @BetaApi("Span names and attributes are subject to change without notice") + public boolean isOpenTelemetryTracingEnabled() { + return enableOpenTelemetryTracing; + } + + /** + * Returns the OpenTelemetry tracer used by this BigQuery instance + * + * @return OpenTelemetry tracer object or {@code null} if not set + */ + @BetaApi("Span names and attributes are subject to change without notice") + public Tracer getOpenTelemetryTracer() { + return openTelemetryTracer; + } + @SuppressWarnings("unchecked") @Override public Builder toBuilder() { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java index 0e2ad02b2147..c06d257d7d7e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java @@ -20,6 +20,7 @@ import static com.google.common.base.Strings.isNullOrEmpty; import com.google.api.services.bigquery.model.DatasetReference; +import io.opentelemetry.api.common.Attributes; import java.io.Serializable; import java.util.Objects; @@ -84,4 +85,11 @@ DatasetReference toPb() { static DatasetId fromPb(DatasetReference datasetRef) { return new DatasetId(datasetRef.getProjectId(), datasetRef.getDatasetId()); } + + protected Attributes getOtelAttributes() { + return Attributes.builder() + .put("bq.dataset.project", this.getProject()) + .put("bq.dataset.id", this.getDataset()) + .build(); + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java index 90d6c2cd55a5..91876199514b 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java @@ -27,6 +27,7 @@ import com.google.common.base.MoreObjects; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; +import io.opentelemetry.api.common.Attributes; import java.io.Serializable; import java.util.List; import java.util.Map; @@ -746,6 +747,18 @@ public static DatasetInfo of(String datasetId) { return newBuilder(datasetId).build(); } + private static String getFieldAsString(Object field) { + return field == null ? "null" : field.toString(); + } + + protected Attributes getOtelAttributes() { + return Attributes.builder() + .putAll(this.getDatasetId().getOtelAttributes()) + .put("bq.dataset.last_modified", getFieldAsString(this.getLastModified())) + .put("bq.dataset.location", getFieldAsString(this.getLocation())) + .build(); + } + static DatasetInfo fromPb(Dataset datasetPb) { return new BuilderImpl(datasetPb).build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java index 53952bc6cfb5..ce93800987f7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java @@ -22,6 +22,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; +import io.opentelemetry.api.common.Attributes; import java.io.Serializable; import java.util.Collections; import java.util.HashMap; @@ -479,4 +480,15 @@ public boolean equals(Object obj) { && Objects.equals(skipInvalidRows, other.skipInvalidRows) && Objects.equals(templateSuffix, other.templateSuffix); } + + private static String getFieldAsString(Object field) { + return field == null ? "null" : field.toString(); + } + + public Attributes getOtelAttributes() { + return Attributes.builder() + .put("bq.insert_all.table", getFieldAsString(this.getTable().getTable())) + .put("bq.insert_all.template_suffix", getFieldAsString(this.getTemplateSuffix())) + .build(); + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java index b966cebe1d43..4bfc2aa00271 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java @@ -21,6 +21,7 @@ import com.google.api.services.bigquery.model.JobReference; import com.google.auto.value.AutoValue; +import io.opentelemetry.api.common.Attributes; import java.io.Serializable; import java.util.UUID; import javax.annotation.Nullable; @@ -123,4 +124,16 @@ static JobId fromPb(JobReference jobRef) { .setLocation(jobRef.getLocation()) .build(); } + + private static String getFieldAsString(Object field) { + return field == null ? "null" : field.toString(); + } + + protected Attributes getOtelAttributes() { + return Attributes.builder() + .put("bq.job.id", getFieldAsString(this.getJob())) + .put("bq.job.location", getFieldAsString(this.getLocation())) + .put("bq.job.project", getFieldAsString(this.getProject())) + .build(); + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java index 9356c6935533..adb497ffa064 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java @@ -21,6 +21,7 @@ import com.google.api.services.bigquery.model.ModelReference; import com.google.common.base.Function; +import io.opentelemetry.api.common.Attributes; import java.io.Serializable; import java.util.Objects; @@ -105,4 +106,12 @@ ModelReference toPb() { static ModelId fromPb(ModelReference modelRef) { return new ModelId(modelRef.getProjectId(), modelRef.getDatasetId(), modelRef.getModelId()); } + + protected Attributes getOtelAttributes() { + return Attributes.builder() + .put("bq.model.project", this.getProject()) + .put("bq.model.dataset", this.getDataset()) + .put("bq.model.id", this.getModel()) + .build(); + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java index 922ed441c8ca..3039483b5245 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java @@ -26,6 +26,7 @@ import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; +import io.opentelemetry.api.common.Attributes; import java.io.Serializable; import java.util.Collections; import java.util.List; @@ -453,4 +454,19 @@ Model toPb() { static ModelInfo fromPb(Model modelPb) { return new BuilderImpl(modelPb).build(); } + + private static String getFieldAsString(Object field) { + return field == null ? "null" : field.toString(); + } + + protected Attributes getOtelAttributes() { + return Attributes.builder() + .putAll(this.getModelId().getOtelAttributes()) + .put("bq.model.type", getFieldAsString(this.getModelType())) + .put("bq.model.creation_time", getFieldAsString(this.getCreationTime())) + .put("bq.model.last_modified_time", getFieldAsString(this.getLastModifiedTime())) + .put("bq.model.expiration_time", getFieldAsString(this.getExpirationTime())) + .put("bq.model.location", getFieldAsString(this.getLocation())) + .build(); + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java index c5c3dadb3c8c..a632fc5a1f31 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java @@ -21,6 +21,7 @@ import com.google.api.services.bigquery.model.RoutineReference; import com.google.common.base.Function; +import io.opentelemetry.api.common.Attributes; import java.io.Serializable; import java.util.Objects; @@ -108,4 +109,12 @@ static RoutineId fromPb(RoutineReference routineRef) { return new RoutineId( routineRef.getProjectId(), routineRef.getDatasetId(), routineRef.getRoutineId()); } + + protected Attributes getOtelAttributes() { + return Attributes.builder() + .put("bq.routine.project", this.getProject()) + .put("bq.routine.dataset", this.getDataset()) + .put("bq.routine.id", this.getRoutine()) + .build(); + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java index 646a2fdeaaf6..c13b90b41336 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java @@ -24,6 +24,7 @@ import com.google.common.base.MoreObjects; import com.google.common.base.Strings; import com.google.common.collect.Lists; +import io.opentelemetry.api.common.Attributes; import java.io.Serializable; import java.util.Collections; import java.util.List; @@ -544,4 +545,17 @@ Routine toPb() { static RoutineInfo fromPb(Routine routinePb) { return new BuilderImpl(routinePb).build(); } + + private static String getFieldAsString(Object field) { + return field == null ? "null" : field.toString(); + } + + protected Attributes getOtelAttributes() { + return Attributes.builder() + .putAll(this.getRoutineId().getOtelAttributes()) + .put("bq.routine.type", getFieldAsString(this.getRoutineType())) + .put("bq.routine.creation_time", getFieldAsString(this.getCreationTime())) + .put("bq.routine.last_modified_time", getFieldAsString(this.getLastModifiedTime())) + .build(); + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java index b74055d4f218..fcc208453a48 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java @@ -22,6 +22,7 @@ import com.google.api.services.bigquery.model.TableReference; import com.google.common.base.Function; +import io.opentelemetry.api.common.Attributes; import java.io.Serializable; import java.util.Objects; @@ -114,4 +115,12 @@ TableReference toPb() { static TableId fromPb(TableReference tableRef) { return new TableId(tableRef.getProjectId(), tableRef.getDatasetId(), tableRef.getTableId()); } + + protected Attributes getOtelAttributes() { + return Attributes.builder() + .put("bq.table.project", this.getProject()) + .put("bq.table.dataset", this.getDataset()) + .put("bq.table.id", this.getTable()) + .build(); + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java index 6e050d064929..b3236f4c3d59 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -25,6 +25,7 @@ import com.google.api.services.bigquery.model.Table; import com.google.common.base.Function; import com.google.common.base.MoreObjects; +import io.opentelemetry.api.common.Attributes; import java.io.Serializable; import java.math.BigInteger; import java.util.Map; @@ -763,4 +764,19 @@ Table toPb() { static TableInfo fromPb(Table tablePb) { return new BuilderImpl(tablePb).build(); } + + private static String getFieldAsString(Object field) { + return field == null ? "null" : field.toString(); + } + + protected Attributes getOtelAttributes() { + return Attributes.builder() + .putAll(this.getTableId().getOtelAttributes()) + .put("bq.table.creation_time", getFieldAsString(this.getCreationTime())) + .put("bq.table.expiration_time", getFieldAsString(this.getExpirationTime())) + .put("bq.table.last_modified_time", getFieldAsString(this.getLastModifiedTime())) + .put("bq.table.num_bytes", getFieldAsString(this.getNumBytes())) + .put("bq.table.num_rows", getFieldAsString(this.getNumRows())) + .build(); + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index bd17b14fcbfe..eceadcbca883 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -161,6 +161,17 @@ import com.google.common.io.BaseEncoding; import com.google.common.util.concurrent.ListenableFuture; import com.google.gson.JsonObject; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.Tracer; +import io.opentelemetry.context.Scope; +import io.opentelemetry.sdk.OpenTelemetrySdk; +import io.opentelemetry.sdk.common.CompletableResultCode; +import io.opentelemetry.sdk.trace.SdkTracerProvider; +import io.opentelemetry.sdk.trace.data.SpanData; +import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; +import io.opentelemetry.sdk.trace.samplers.Sampler; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -220,6 +231,11 @@ public class ITBigQueryTest { private static final String STORAGE_BILLING_MODEL = "LOGICAL"; private static final Long MAX_TIME_TRAVEL_HOURS = 120L; private static final Long MAX_TIME_TRAVEL_HOURS_DEFAULT = 168L; + private static final Map, Object>> OTEL_ATTRIBUTES = + new HashMap, Object>>(); + private static final Map OTEL_PARENT_SPAN_IDS = new HashMap<>(); + private static final Map OTEL_SPAN_IDS_TO_NAMES = new HashMap<>(); + private static final String OTEL_PARENT_SPAN_ID = "0000000000000000"; private static final String CLOUD_SAMPLES_DATA = Optional.fromNullable(System.getenv("CLOUD_SAMPLES_DATA_BUCKET")).or("cloud-samples-data"); private static final Map LABELS = @@ -1017,6 +1033,32 @@ public class ITBigQueryTest { private static BigQuery bigquery; private static Storage storage; + private static OpenTelemetry otel; + + private static class TestSpanExporter implements io.opentelemetry.sdk.trace.export.SpanExporter { + @Override + public CompletableResultCode export(Collection collection) { + if (collection.isEmpty()) { + return CompletableResultCode.ofFailure(); + } + for (SpanData data : collection) { + OTEL_ATTRIBUTES.put(data.getName(), data.getAttributes().asMap()); + OTEL_PARENT_SPAN_IDS.put(data.getName(), data.getParentSpanId()); + OTEL_SPAN_IDS_TO_NAMES.put(data.getSpanId(), data.getName()); + } + return CompletableResultCode.ofSuccess(); + } + + @Override + public CompletableResultCode flush() { + return CompletableResultCode.ofSuccess(); + } + + @Override + public CompletableResultCode shutdown() { + return CompletableResultCode.ofSuccess(); + } + } @Rule public Timeout globalTimeout = Timeout.seconds(300); @@ -1025,6 +1067,13 @@ public static void beforeClass() throws InterruptedException, IOException { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); RemoteStorageHelper storageHelper = RemoteStorageHelper.create(); Map labels = ImmutableMap.of("test-job-name", "test-load-job"); + SdkTracerProvider tracerProvider = + SdkTracerProvider.builder() + .addSpanProcessor(SimpleSpanProcessor.create(new TestSpanExporter())) + .setSampler(Sampler.alwaysOn()) + .build(); + otel = OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).buildAndRegisterGlobal(); + bigquery = bigqueryHelper.getOptions().getService(); storage = storageHelper.getOptions().getService(); storage.create(BucketInfo.of(BUCKET)); @@ -7493,4 +7542,157 @@ public void testStatementType() throws InterruptedException { assertTrue(remoteTable.getDefinition() instanceof MaterializedViewDefinition); assertTrue(remoteTable.delete()); } + + @Test + public void testOpenTelemetryTracingDatasets() { + Tracer tracer = otel.getTracer("Test Tracer"); + BigQueryOptions otelOptions = + BigQueryOptions.newBuilder() + .setEnableOpenTelemetryTracing(true) + .setOpenTelemetryTracer(tracer) + .build(); + BigQuery bigquery = otelOptions.getService(); + + Span parentSpan = + tracer + .spanBuilder("Test Parent Span") + .setNoParent() + .setAttribute("test-attribute", "test-value") + .startSpan(); + String billingModelDataset = RemoteBigQueryHelper.generateDatasetName(); + + try (Scope parentScope = parentSpan.makeCurrent()) { + DatasetInfo info = + DatasetInfo.newBuilder(billingModelDataset) + .setDescription(DESCRIPTION) + .setMaxTimeTravelHours(72L) + .setLabels(LABELS) + .build(); + + Dataset dataset = bigquery.create(info); + assertNotNull(dataset); + dataset = bigquery.getDataset(dataset.getDatasetId().getDataset()); + assertNotNull(dataset); + + DatasetInfo updatedInfo = + DatasetInfo.newBuilder(billingModelDataset) + .setDescription("Updated Description") + .setMaxTimeTravelHours(96L) + .setLabels(LABELS) + .build(); + + dataset = bigquery.update(updatedInfo, DatasetOption.accessPolicyVersion(2)); + assertEquals(dataset.getDescription(), "Updated Description"); + assertTrue(bigquery.delete(dataset.getDatasetId())); + } finally { + parentSpan.end(); + Map, Object> createMap = + OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.createDataset"); + assertEquals(createMap.get(AttributeKey.stringKey("bq.dataset.location")), "null"); + + Map, Object> getMap = + OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.getDataset"); + assertEquals(getMap.get(AttributeKey.stringKey("bq.dataset.id")), billingModelDataset); + + Map, Object> updateMap = + OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.updateDataset"); + assertEquals(updateMap.get(AttributeKey.stringKey("bq.option.ACCESS_POLICY_VERSION")), "2"); + + Map, Object> deleteMap = + OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.deleteDataset"); + assertEquals(deleteMap.get(AttributeKey.stringKey("bq.dataset.id")), billingModelDataset); + + // All should be children spans of parentSpan + assertEquals( + OTEL_SPAN_IDS_TO_NAMES.get( + OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.getDataset")), + "Test Parent Span"); + assertEquals( + OTEL_SPAN_IDS_TO_NAMES.get( + OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.createDataset")), + "Test Parent Span"); + assertEquals( + OTEL_SPAN_IDS_TO_NAMES.get( + OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.deleteDataset")), + "Test Parent Span"); + assertEquals(OTEL_PARENT_SPAN_IDS.get("Test Parent Span"), OTEL_PARENT_SPAN_ID); + RemoteBigQueryHelper.forceDelete(bigquery, billingModelDataset); + } + } + + @Test + public void testOpenTelemetryTracingTables() { + Tracer tracer = otel.getTracer("Test Tracer"); + BigQueryOptions otelOptions = + BigQueryOptions.newBuilder() + .setEnableOpenTelemetryTracing(true) + .setOpenTelemetryTracer(tracer) + .build(); + BigQuery bigquery = otelOptions.getService(); + + String tableName = "test_otel_table"; + StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); + TableInfo tableInfo = + TableInfo.newBuilder(TableId.of(DATASET, tableName), tableDefinition) + .setDescription("Some Description") + .build(); + Table createdTable = bigquery.create(tableInfo); + assertThat(createdTable.getDescription()).isEqualTo("Some Description"); + + assertEquals( + OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.createTable"), + OTEL_PARENT_SPAN_ID); + assertEquals( + OTEL_ATTRIBUTES + .get("com.google.cloud.bigquery.BigQuery.createTable") + .get(AttributeKey.stringKey("bq.table.id")), + tableName); + assertEquals( + OTEL_ATTRIBUTES + .get("com.google.cloud.bigquery.BigQuery.createTable") + .get(AttributeKey.stringKey("bq.table.creation_time")), + "null"); + + Table updatedTable = + bigquery.update(createdTable.toBuilder().setDescription("Updated Description").build()); + assertThat(updatedTable.getDescription()).isEqualTo("Updated Description"); + + assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.updateTable")); + assertEquals( + OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.updateTable"), + OTEL_PARENT_SPAN_ID); + } + + @Test + public void testOpenTelemetryTracingQuery() throws InterruptedException { + Tracer tracer = otel.getTracer("Test Tracer"); + BigQueryOptions otelOptions = + BigQueryOptions.newBuilder() + .setEnableOpenTelemetryTracing(true) + .setOpenTelemetryTracer(tracer) + .build(); + BigQuery bigquery = otelOptions.getService(); + + // Stateless query + bigquery.getOptions().setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL); + TableResult tableResult = executeSimpleQuery(bigquery); + assertNotNull(tableResult.getQueryId()); + assertNull(tableResult.getJobId()); + + assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.queryRpc")); + + // Query job + String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); + QueryJobConfiguration config = + QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); + Job job = bigquery.create(JobInfo.of(JobId.of(), config)); + + TableResult result = job.getQueryResults(); + assertNotNull(result.getJobId()); + assertEquals(QUERY_RESULT_SCHEMA, result.getSchema()); + + assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.getQueryResults")); + assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.listTableData")); + assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.createJob")); + } } diff --git a/pom.xml b/pom.xml index e281937a32a0..b65439ecbc75 100644 --- a/pom.xml +++ b/pom.xml @@ -59,6 +59,15 @@ + + + io.opentelemetry + opentelemetry-bom + 1.48.0 + pom + import + + com.google.cloud google-cloud-shared-dependencies From b1962a7f0084ee4c3e248266b50406cf575cd657 Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Mon, 9 Jun 2025 10:30:59 -0700 Subject: [PATCH 3244/3441] fix(bigquery): Add MY_VIEW_DATASET_NAME_TEST_ to resource clean up sample (#3838) --- .../src/main/java/com/example/bigquery/ResourceCleanUp.java | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java index cc294f7a5f16..a530885cf534 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java +++ b/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java @@ -54,6 +54,7 @@ public static void main(String[] args) { || datasetName.contains("gcloud_test_") || datasetName.contains("SHARED_DATASET_TEST_") || datasetName.contains("WRITE_STREAM_TEST")) + || datasetName.contains("MY_VIEW_DATASET_NAME_TEST_") && dataset.getCreationTime() > sixHourAgo) { System.out.format("\tDeleting Dataset: %s\n", datasetName); bigquery.delete( From 69be5e7345fb8ca69d633d9dc99cf6c15fa5227b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 12 Jun 2025 18:20:54 +0200 Subject: [PATCH 3245/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.66.0 (#3835) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b65439ecbc75..a713e0f59fd8 100644 --- a/pom.xml +++ b/pom.xml @@ -158,7 +158,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.65.0 + 2.66.0 test From e9e5b690769491cd779ac275dfe6779d2af4e110 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 12 Jun 2025 18:31:33 +0200 Subject: [PATCH 3246/3441] chore(deps): update google cloud java monorepo updates (#3834) --- pom.xml | 4 ++-- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index a713e0f59fd8..f02c1908abc1 100644 --- a/pom.xml +++ b/pom.xml @@ -88,7 +88,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.69.0 + 1.70.0 pom import @@ -152,7 +152,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.65.0 + 2.66.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 0719a5045405..679ea72bc209 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.65.0 + 2.66.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f81a2b0d9084..4c62e8c10481 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.65.0 + 2.66.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 9ddab8dc9179..3ec7e666e639 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.65.0 + 2.66.0 test From 08772af8d04a4200b1bb5539246208f16cea714b Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Thu, 12 Jun 2025 13:39:39 -0400 Subject: [PATCH 3247/3441] build: include arrow dependency suggested compiler flags (#3844) * build: include arrow dependency suggested compiler flags This follows https://arrow.apache.org/docs/java/install.html, where we add the indicated `--add-opens` flag. This is meant to follow from https://github.com/googleapis/java-bigquery/pull/3811#issuecomment-2941443802 * fix: only activate on JDK 9+ --- google-cloud-bigquery/pom.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9599d760c52b..1bdc43faed64 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -275,6 +275,27 @@ + + arrow-config + + [9,) + + + + + org.apache.maven.plugins + maven-compiler-plugin + + UTF-8 + true + + -J--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED + + + + + + java17 From 4c203c1e7f063fe9a8ea77974899f3a79a2d0fd7 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Thu, 12 Jun 2025 14:40:32 -0400 Subject: [PATCH 3248/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.62.0 (#3848) --- README.md | 2 +- samples/snippets/pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 42b0b9f7e454..d8f6c46d878d 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ See https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google com.google.cloud libraries-bom - 26.43.0 + 26.62.0 pom import diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3ec7e666e639..e233d277e840 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.43.0 + 26.62.0 pom import From d0cea7d2cb958adcc85f5861cbca6f9c3d1c8183 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 12 Jun 2025 20:40:54 +0200 Subject: [PATCH 3249/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.60.0 (#3836) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 679ea72bc209..b7dd48f28489 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.59.0 + 2.60.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4c62e8c10481..d176a10ccc21 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.59.0 + 2.60.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index e233d277e840..478359e9aa59 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.59.0 + 2.60.0 test From 51321c22778fd41134cc0cdfc70bdc47f05883f1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 12 Jun 2025 20:43:15 +0200 Subject: [PATCH 3250/3441] deps: update dependency io.opentelemetry:opentelemetry-bom to v1.51.0 (#3840) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f02c1908abc1..97712df9f603 100644 --- a/pom.xml +++ b/pom.xml @@ -63,7 +63,7 @@ io.opentelemetry opentelemetry-bom - 1.48.0 + 1.51.0 pom import From 057f7626d8b0d178fd04d40e7eb31839e891d42a Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 13 Jun 2025 13:54:37 -0400 Subject: [PATCH 3251/3441] chore(main): release 2.51.1-SNAPSHOT (#3839) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 6285defb6c95..cd645c356fae 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.51.0 + 2.51.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 66387cf2efd5..3d31594b72cb 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.51.0 + 2.51.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.51.0 + 2.51.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 1bdc43faed64..98d88fdbbff6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.51.0 + 2.51.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.51.0 + 2.51.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 97712df9f603..fd844f08876f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.51.0 + 2.51.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -102,7 +102,7 @@ com.google.cloud google-cloud-bigquery - 2.51.0 + 2.51.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d176a10ccc21..5bfcf1bf0c7b 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.51.0 + 2.51.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index b17f78a7bfb0..7622bb1dcac4 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.51.0:2.51.0 \ No newline at end of file +google-cloud-bigquery:2.51.0:2.51.1-SNAPSHOT \ No newline at end of file From 414f61d7efcfa568c1446bd41945d7a8e2450649 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 16 Jun 2025 19:33:29 +0200 Subject: [PATCH 3252/3441] deps: update ossf/scorecard-action action to v2.4.2 (#3810) --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 87e8e13c4338..1524dc8d2c52 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -37,7 +37,7 @@ jobs: persist-credentials: false - name: "Run analysis" - uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1 + uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2 with: results_file: results.sarif results_format: sarif From fde9d671933d01cfd43493fcf917382361d8f384 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 16 Jun 2025 19:35:56 +0200 Subject: [PATCH 3253/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.51.0 (#3797) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index b7dd48f28489..dee35288d4b2 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.50.0 + 2.51.0 From 286728fb1c6bb5d1a8afe796a1d3514704b8c6d1 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 16 Jun 2025 19:38:43 +0200 Subject: [PATCH 3254/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.53.0 (#3798) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fd844f08876f..16e2df2e4e02 100644 --- a/pom.xml +++ b/pom.xml @@ -146,7 +146,7 @@ com.google.cloud google-cloud-storage - 2.52.2 + 2.53.0 test From ab8499ae927101d7bf9c67130a790a31aa00ac25 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 16 Jun 2025 19:57:03 +0200 Subject: [PATCH 3255/3441] build(deps): update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.6.1 (#3830) --- google-cloud-bigquery/pom.xml | 2 +- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 98d88fdbbff6..4162718fbf6b 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -251,7 +251,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.6.0 + 3.6.1 add-source diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index dee35288d4b2..ec9180d6a588 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -92,7 +92,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.6.0 + 3.6.1 add-snippets-source diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 5bfcf1bf0c7b..b8ba50d01140 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -90,7 +90,7 @@ org.codehaus.mojo build-helper-maven-plugin - 3.6.0 + 3.6.1 add-snippets-source From 6f9f77d47596b00b7317c8a0d4a10c3d849ad57b Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Tue, 17 Jun 2025 11:06:50 -0400 Subject: [PATCH 3256/3441] deps: remove version declaration of open-telemetry-bom (#3855) --- pom.xml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/pom.xml b/pom.xml index 16e2df2e4e02..7e07ef3ef29b 100644 --- a/pom.xml +++ b/pom.xml @@ -59,15 +59,6 @@ - - - io.opentelemetry - opentelemetry-bom - 1.51.0 - pom - import - - com.google.cloud google-cloud-shared-dependencies From eabf2a276231faa0ca413a60d33943f581b30aaa Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 17 Jun 2025 18:25:59 +0200 Subject: [PATCH 3257/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.15.2 (#3852) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7e07ef3ef29b..ebdc3d45bdab 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.15.0 + 3.15.2 pom import From cf864df739bbb820e99999b7c1592a3635fea4ec Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 18 Jun 2025 17:49:02 +0200 Subject: [PATCH 3258/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.49.2 (#3853) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 3f2945215953..8449bf074cae 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.49.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.49.2 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index 54d873dc1fff..b6a5a9d3e05f 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.49.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.49.2" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index b7bd7ed2f929..d0d6dea7191e 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.49.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.49.2" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index 7090b33d1af0..a4a1fe79eebb 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.49.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.49.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index 54d873dc1fff..b6a5a9d3e05f 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.49.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.49.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index b7bd7ed2f929..d0d6dea7191e 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.49.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.49.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index 7090b33d1af0..a4a1fe79eebb 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.49.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.49.2" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 3d31594b72cb..9c1967a6d556 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.49.0 + 3.49.2 diff --git a/pom.xml b/pom.xml index ebdc3d45bdab..362c1f144498 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.49.0 + 3.49.2 From af9084141d615179e0f2952ccb138b9d7c90ed17 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 20 Jun 2025 16:50:58 +0200 Subject: [PATCH 3259/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.53.1 (#3856) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 362c1f144498..2cdc232f0d80 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.53.0 + 2.53.1 test From 4b28c479c1bc22326c8d2501354fb86ec2ce1744 Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Mon, 23 Jun 2025 14:50:27 -0700 Subject: [PATCH 3260/3441] feat(bigquery): Integrate Otel into retries, jobs, and more (#3842) * feat(bigquery): Integrate Otel into retries, jobs, and tableDataWriteChannel * Add justification for changing func signature * fix ignored-differences syntax * fix ignored-differences syntax...again * update IT tests * Remove config and algorithm from retry span * remove otel support from connection interface --- .../clirr-ignored-differences.xml | 6 + .../google/cloud/bigquery/BigQueryImpl.java | 124 +++++-- .../cloud/bigquery/BigQueryRetryHelper.java | 20 +- .../google/cloud/bigquery/ConnectionImpl.java | 24 +- .../java/com/google/cloud/bigquery/Job.java | 335 +++++++++++++----- .../cloud/bigquery/TableDataWriteChannel.java | 45 ++- .../cloud/bigquery/it/ITBigQueryTest.java | 25 ++ 7 files changed, 446 insertions(+), 133 deletions(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index 37e349413f59..e048f4ce82de 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -2,6 +2,12 @@ + + 7004 + com/google/cloud/bigquery/BigQueryRetryHelper + java.lang.Object runWithRetries(java.util.concurrent.Callable, com.google.api.gax.retrying.RetrySettings, com.google.api.gax.retrying.ResultRetryAlgorithm, com.google.api.core.ApiClock, com.google.cloud.bigquery.BigQueryRetryConfig) + A Tracer object is needed to use Otel and runWithRetries is only called in a few files, so it should be fine to update the signature + 7004 com/google/cloud/bigquery/spi/v2/BigQueryRpc diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 2efe8f92aeb2..a32a600c3f74 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -295,7 +295,9 @@ public com.google.api.services.bigquery.model.Dataset call() throws IOException getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG)); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer())); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } finally { @@ -340,7 +342,9 @@ public com.google.api.services.bigquery.model.Table call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG)); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer())); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } finally { @@ -394,7 +398,9 @@ public com.google.api.services.bigquery.model.Routine call() throws IOException getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG)); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer())); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } finally { @@ -488,7 +494,9 @@ public com.google.api.services.bigquery.model.Job call() throws IOException { getOptions().getClock(), getBigQueryRetryConfig(optionsMap) != null ? getBigQueryRetryConfig(optionsMap) - : DEFAULT_RETRY_CONFIG)); + : DEFAULT_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer())); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -580,7 +588,9 @@ public com.google.api.services.bigquery.model.Dataset call() throws IOException getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); return Dataset.fromPb(this, answer); } catch (BigQueryRetryHelperException e) { if (isRetryErrorCodeHttpNotFound(e)) { @@ -644,7 +654,9 @@ private static Page listDatasets( serviceOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + serviceOptions.isOpenTelemetryTracingEnabled(), + serviceOptions.getOpenTelemetryTracer()); String cursor = result.x(); return new PageImpl<>( new DatasetPageFetcher(projectId, serviceOptions, cursor, optionsMap), @@ -694,7 +706,9 @@ public Boolean call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); } catch (BigQueryRetryHelperException e) { if (isRetryErrorCodeHttpNotFound(e)) { return false; @@ -743,7 +757,9 @@ public Boolean call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); } catch (BigQueryRetryHelperException e) { if (isRetryErrorCodeHttpNotFound(e)) { return false; @@ -787,7 +803,9 @@ public Boolean call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); } catch (BigQueryRetryHelperException e) { if (isRetryErrorCodeHttpNotFound(e)) { return false; @@ -831,7 +849,9 @@ public Boolean call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); } catch (BigQueryRetryHelperException e) { if (isRetryErrorCodeHttpNotFound(e)) { return false; @@ -873,7 +893,9 @@ public Boolean call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } finally { @@ -912,7 +934,9 @@ public com.google.api.services.bigquery.model.Dataset call() throws IOException getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG)); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer())); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } finally { @@ -957,7 +981,9 @@ public com.google.api.services.bigquery.model.Table call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG)); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer())); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } finally { @@ -1001,7 +1027,9 @@ public com.google.api.services.bigquery.model.Model call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG)); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer())); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } finally { @@ -1045,7 +1073,9 @@ public com.google.api.services.bigquery.model.Routine call() throws IOException getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG)); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer())); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } finally { @@ -1097,7 +1127,9 @@ public com.google.api.services.bigquery.model.Table call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); return Table.fromPb(this, answer); } catch (BigQueryRetryHelperException e) { if (isRetryErrorCodeHttpNotFound(e)) { @@ -1154,7 +1186,9 @@ public com.google.api.services.bigquery.model.Model call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); return Model.fromPb(this, answer); } catch (BigQueryRetryHelperException e) { if (isRetryErrorCodeHttpNotFound(e)) { @@ -1211,7 +1245,9 @@ public com.google.api.services.bigquery.model.Routine call() throws IOException getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); return Routine.fromPb(this, answer); } catch (BigQueryRetryHelperException e) { if (isRetryErrorCodeHttpNotFound(e)) { @@ -1427,7 +1463,9 @@ public Tuple> cal serviceOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + serviceOptions.isOpenTelemetryTracingEnabled(), + serviceOptions.getOpenTelemetryTracer()); String cursor = result.x(); Iterable
    tables = Iterables.transform( @@ -1466,7 +1504,9 @@ public Tuple> cal serviceOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + serviceOptions.isOpenTelemetryTracingEnabled(), + serviceOptions.getOpenTelemetryTracer()); String cursor = result.x(); Iterable models = Iterables.transform( @@ -1505,7 +1545,9 @@ private static Page listRoutines( serviceOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + serviceOptions.isOpenTelemetryTracingEnabled(), + serviceOptions.getOpenTelemetryTracer()); String cursor = result.x(); Iterable routines = Iterables.transform( @@ -1585,7 +1627,9 @@ public TableDataInsertAllResponse call() throws Exception { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -1677,7 +1721,9 @@ public TableDataList call() throws IOException { serviceOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + serviceOptions.isOpenTelemetryTracingEnabled(), + serviceOptions.getOpenTelemetryTracer()); String cursor = result.getPageToken(); Map pageOptionMap = Strings.isNullOrEmpty(cursor) ? optionsMap : optionMap(TableDataListOption.startIndex(0)); @@ -1749,7 +1795,9 @@ public com.google.api.services.bigquery.model.Job call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); return Job.fromPb(this, answer); } catch (BigQueryRetryHelperException e) { if (isRetryErrorCodeHttpNotFound(e)) { @@ -1804,7 +1852,9 @@ public Tuple> call( serviceOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + serviceOptions.isOpenTelemetryTracingEnabled(), + serviceOptions.getOpenTelemetryTracer()); String cursor = result.x(); Iterable jobs = Iterables.transform( @@ -1857,7 +1907,9 @@ public Boolean call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); } catch (BigQueryRetryHelperException e) { if (isRetryErrorCodeHttpNotFound(e)) { return false; @@ -1942,7 +1994,9 @@ public com.google.api.services.bigquery.model.QueryResponse call() getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - DEFAULT_RETRY_CONFIG); + DEFAULT_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } finally { @@ -2117,7 +2171,9 @@ public GetQueryResultsResponse call() throws IOException { serviceOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, serviceOptions.getClock(), - DEFAULT_RETRY_CONFIG); + DEFAULT_RETRY_CONFIG, + serviceOptions.isOpenTelemetryTracingEnabled(), + serviceOptions.getOpenTelemetryTracer()); TableSchema schemaPb = results.getSchema(); @@ -2186,7 +2242,9 @@ public com.google.api.services.bigquery.model.Policy call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG)); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer())); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } finally { @@ -2230,7 +2288,9 @@ public com.google.api.services.bigquery.model.Policy call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG)); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer())); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } finally { @@ -2276,7 +2336,9 @@ public com.google.api.services.bigquery.model.TestIamPermissionsResponse call() getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); return response.getPermissions() == null ? ImmutableList.of() : ImmutableList.copyOf(response.getPermissions()); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java index d315241a3c9d..9c70830465e6 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java @@ -25,6 +25,9 @@ import com.google.api.gax.retrying.RetryingFuture; import com.google.api.gax.retrying.TimedRetryAlgorithm; import com.google.cloud.RetryHelper; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.Tracer; +import io.opentelemetry.context.Scope; import java.io.IOException; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; @@ -40,9 +43,18 @@ public static V runWithRetries( RetrySettings retrySettings, ResultRetryAlgorithm resultRetryAlgorithm, ApiClock clock, - BigQueryRetryConfig bigQueryRetryConfig) + BigQueryRetryConfig bigQueryRetryConfig, + boolean isOpenTelemetryEnabled, + Tracer openTelemetryTracer) throws RetryHelperException { - try { + Span runWithRetries = null; + if (isOpenTelemetryEnabled && openTelemetryTracer != null) { + runWithRetries = + openTelemetryTracer + .spanBuilder("com.google.cloud.bigquery.BigQueryRetryHelper.runWithRetries") + .startSpan(); + } + try (Scope runWithRetriesScope = runWithRetries != null ? runWithRetries.makeCurrent() : null) { // Suppressing should be ok as a workaraund. Current and only ResultRetryAlgorithm // implementation does not use response at all, so ignoring its type is ok. @SuppressWarnings("unchecked") @@ -59,6 +71,10 @@ public static V runWithRetries( throw new BigQueryRetryHelperException(new BigQueryException((IOException) e.getCause())); } throw new BigQueryRetryHelperException(e.getCause()); + } finally { + if (runWithRetries != null) { + runWithRetries.end(); + } } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index eb3a32db74ce..b12ad85564a7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -476,7 +476,9 @@ private BigQueryResult queryRpc( bigQueryOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, bigQueryOptions.getClock(), - retryConfig); + retryConfig, + false, + null); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } @@ -932,7 +934,9 @@ private Job getQueryJobRpc(JobId jobId) { bigQueryOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, bigQueryOptions.getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + false, + null); } catch (BigQueryRetryHelperException e) { if (e.getCause() instanceof BigQueryException) { if (((BigQueryException) e.getCause()).getCode() == HTTP_NOT_FOUND) { @@ -977,7 +981,9 @@ TableDataList tableDataListRpc(TableId destinationTable, String pageToken) { bigQueryOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, bigQueryOptions.getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + false, + null); return results; } catch (BigQueryRetryHelperException e) { @@ -1208,7 +1214,9 @@ GetQueryResultsResponse getQueryResultsFirstPage(JobId jobId) { bigQueryOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, bigQueryOptions.getClock(), - retryConfig); + retryConfig, + false, + null); if (results.getErrors() != null) { List bigQueryErrors = @@ -1471,7 +1479,9 @@ com.google.api.services.bigquery.model.Job createQueryJob( bigQueryOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, bigQueryOptions.getClock(), - retryConfig); + retryConfig, + false, + null); } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { logger.log(Level.WARNING, "\n Error occurred while calling createJobForQuery", e); throw BigQueryException.translateAndThrow(e); @@ -1514,7 +1524,9 @@ com.google.api.services.bigquery.model.Job createDryRunJob(String sql) { bigQueryOptions.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, bigQueryOptions.getClock(), - retryConfig); + retryConfig, + false, + null); } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index 00edefb9fb72..88950b9fb29a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -29,6 +29,9 @@ import com.google.cloud.bigquery.BigQuery.TableDataListOption; import com.google.cloud.bigquery.JobConfiguration.Type; import com.google.common.collect.ImmutableList; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.context.Scope; import java.io.IOException; import java.io.ObjectInputStream; import java.time.Duration; @@ -172,7 +175,21 @@ public Job build() { */ public boolean exists() { checkNotDryRun("exists"); - return bigquery.getJob(getJobId(), JobOption.fields()) != null; + Span exists = null; + if (options.isOpenTelemetryTracingEnabled() && options.getOpenTelemetryTracer() != null) { + exists = + options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.Job.exists") + .startSpan(); + } + try (Scope existsScope = exists != null ? exists.makeCurrent() : null) { + return bigquery.getJob(getJobId(), JobOption.fields()) != null; + } finally { + if (exists != null) { + exists.end(); + } + } } /** @@ -193,8 +210,22 @@ public boolean exists() { */ public boolean isDone() { checkNotDryRun("isDone"); - Job job = bigquery.getJob(getJobId(), JobOption.fields(BigQuery.JobField.STATUS)); - return job == null || JobStatus.State.DONE.equals(job.getStatus().getState()); + Span isDone = null; + if (options.isOpenTelemetryTracingEnabled() && options.getOpenTelemetryTracer() != null) { + isDone = + options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.Job.isDone") + .startSpan(); + } + try (Scope isDoneScope = isDone != null ? isDone.makeCurrent() : null) { + Job job = bigquery.getJob(getJobId(), JobOption.fields(BigQuery.JobField.STATUS)); + return job == null || JobStatus.State.DONE.equals(job.getStatus().getState()); + } finally { + if (isDone != null) { + isDone.end(); + } + } } /** See {@link #waitFor(BigQueryRetryConfig, RetryOption...)} */ @@ -275,19 +306,34 @@ public Job waitFor(BigQueryRetryConfig bigQueryRetryConfig, RetryOption... waitO private Job waitForInternal(BigQueryRetryConfig bigQueryRetryConfig, RetryOption... waitOptions) throws InterruptedException { checkNotDryRun("waitFor"); - Object completedJobResponse; - if (getConfiguration().getType() == Type.QUERY) { - completedJobResponse = - waitForQueryResults( - RetryOption.mergeToSettings(DEFAULT_JOB_WAIT_SETTINGS, waitOptions), - bigQueryRetryConfig, - DEFAULT_QUERY_WAIT_OPTIONS); - } else { - completedJobResponse = - waitForJob(RetryOption.mergeToSettings(DEFAULT_QUERY_JOB_WAIT_SETTINGS, waitOptions)); + Span waitFor = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + waitFor = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.Job.waitFor") + .startSpan(); } + try (Scope waitForScope = waitFor != null ? waitFor.makeCurrent() : null) { + Object completedJobResponse; + if (getConfiguration().getType() == Type.QUERY) { + completedJobResponse = + waitForQueryResults( + RetryOption.mergeToSettings(DEFAULT_JOB_WAIT_SETTINGS, waitOptions), + bigQueryRetryConfig, + DEFAULT_QUERY_WAIT_OPTIONS); + } else { + completedJobResponse = + waitForJob(RetryOption.mergeToSettings(DEFAULT_QUERY_JOB_WAIT_SETTINGS, waitOptions)); + } - return completedJobResponse == null ? null : reload(); + return completedJobResponse == null ? null : reload(); + } finally { + if (waitFor != null) { + waitFor.end(); + } + } } /** @@ -304,72 +350,91 @@ private Job waitForInternal(BigQueryRetryConfig bigQueryRetryConfig, RetryOption public TableResult getQueryResults(QueryResultsOption... options) throws InterruptedException, JobException { checkNotDryRun("getQueryResults"); - if (getConfiguration().getType() != Type.QUERY) { - throw new UnsupportedOperationException( - "Getting query results is supported only for " + Type.QUERY + " jobs"); - } - - List waitOptions = - new ArrayList<>(Arrays.asList(DEFAULT_QUERY_WAIT_OPTIONS)); - List listOptions = new ArrayList<>(); - for (QueryResultsOption option : options) { - switch (option.getRpcOption()) { - case MAX_RESULTS: - listOptions.add(TableDataListOption.pageSize((Long) option.getValue())); - break; - case PAGE_TOKEN: - listOptions.add(TableDataListOption.pageToken((String) option.getValue())); - break; - case START_INDEX: - listOptions.add(TableDataListOption.startIndex((Long) option.getValue())); - break; - case TIMEOUT: - waitOptions.add(QueryResultsOption.maxWaitTime((Long) option.getValue())); - break; - } + + Span getQueryResults = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + getQueryResults = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.Job.getQueryResults") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); } + try (Scope getQueryResultsScope = + getQueryResults != null ? getQueryResults.makeCurrent() : null) { - QueryResponse response = - waitForQueryResults( - DEFAULT_JOB_WAIT_SETTINGS, - DEFAULT_RETRY_CONFIG, - waitOptions.toArray(new QueryResultsOption[0])); - - // Get the job resource to determine if it has errored. - Job job = this; - if (job.getStatus() == null || !JobStatus.State.DONE.equals(job.getStatus().getState())) { - job = reload(); - } - if (job.getStatus() != null && job.getStatus().getError() != null) { - throw new BigQueryException( - job.getStatus().getExecutionErrors() == null - ? ImmutableList.of(job.getStatus().getError()) - : ImmutableList.copyOf(job.getStatus().getExecutionErrors())); - } - - // If there are no rows in the result, this may have been a DDL query. - // Listing table data might fail, such as with CREATE VIEW queries. - // Avoid a tabledata.list API request by returning an empty TableResult. - if (response.getTotalRows() == 0) { - TableResult emptyTableResult = - TableResult.newBuilder() - .setSchema(response.getSchema()) - .setJobId(job.getJobId()) - .setTotalRows(0L) - .setPageNoSchema(new PageImpl(null, "", null)) - .build(); - return emptyTableResult; - } - - TableId table = - ((QueryJobConfiguration) getConfiguration()).getDestinationTable() == null - ? ((QueryJobConfiguration) job.getConfiguration()).getDestinationTable() - : ((QueryJobConfiguration) getConfiguration()).getDestinationTable(); - TableResult tableResult = - bigquery.listTableData( - table, response.getSchema(), listOptions.toArray(new TableDataListOption[0])); - TableResult tableResultWithJobId = tableResult.toBuilder().setJobId(job.getJobId()).build(); - return tableResultWithJobId; + if (getConfiguration().getType() != Type.QUERY) { + throw new UnsupportedOperationException( + "Getting query results is supported only for " + Type.QUERY + " jobs"); + } + + List waitOptions = + new ArrayList<>(Arrays.asList(DEFAULT_QUERY_WAIT_OPTIONS)); + List listOptions = new ArrayList<>(); + for (QueryResultsOption option : options) { + switch (option.getRpcOption()) { + case MAX_RESULTS: + listOptions.add(TableDataListOption.pageSize((Long) option.getValue())); + break; + case PAGE_TOKEN: + listOptions.add(TableDataListOption.pageToken((String) option.getValue())); + break; + case START_INDEX: + listOptions.add(TableDataListOption.startIndex((Long) option.getValue())); + break; + case TIMEOUT: + waitOptions.add(QueryResultsOption.maxWaitTime((Long) option.getValue())); + break; + } + } + + QueryResponse response = + waitForQueryResults( + DEFAULT_JOB_WAIT_SETTINGS, + DEFAULT_RETRY_CONFIG, + waitOptions.toArray(new QueryResultsOption[0])); + + // Get the job resource to determine if it has errored. + Job job = this; + if (job.getStatus() == null || !JobStatus.State.DONE.equals(job.getStatus().getState())) { + job = reload(); + } + if (job.getStatus() != null && job.getStatus().getError() != null) { + throw new BigQueryException( + job.getStatus().getExecutionErrors() == null + ? ImmutableList.of(job.getStatus().getError()) + : ImmutableList.copyOf(job.getStatus().getExecutionErrors())); + } + + // If there are no rows in the result, this may have been a DDL query. + // Listing table data might fail, such as with CREATE VIEW queries. + // Avoid a tabledata.list API request by returning an empty TableResult. + if (response.getTotalRows() == 0) { + TableResult emptyTableResult = + TableResult.newBuilder() + .setSchema(response.getSchema()) + .setJobId(job.getJobId()) + .setTotalRows(0L) + .setPageNoSchema(new PageImpl(null, "", null)) + .build(); + return emptyTableResult; + } + + TableId table = + ((QueryJobConfiguration) getConfiguration()).getDestinationTable() == null + ? ((QueryJobConfiguration) job.getConfiguration()).getDestinationTable() + : ((QueryJobConfiguration) getConfiguration()).getDestinationTable(); + TableResult tableResult = + bigquery.listTableData( + table, response.getSchema(), listOptions.toArray(new TableDataListOption[0])); + TableResult tableResultWithJobId = tableResult.toBuilder().setJobId(job.getJobId()).build(); + return tableResultWithJobId; + } finally { + if (getQueryResults != null) { + getQueryResults.end(); + } + } } private QueryResponse waitForQueryResults( @@ -382,7 +447,17 @@ private QueryResponse waitForQueryResults( "Waiting for query results is supported only for " + Type.QUERY + " jobs"); } - try { + Span waitForQueryResults = null; + if (options.isOpenTelemetryTracingEnabled() && options.getOpenTelemetryTracer() != null) { + waitForQueryResults = + options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.Job.waitForQueryResults") + .setAllAttributes(otelAttributesFromOptions(resultsOptions)) + .startSpan(); + } + try (Scope waitForQueryResultsScope = + waitForQueryResults != null ? waitForQueryResults.makeCurrent() : null) { return BigQueryRetryHelper.runWithRetries( new Callable() { @Override @@ -401,14 +476,43 @@ public boolean shouldRetry( } }, options.getClock(), - bigQueryRetryConfig); + bigQueryRetryConfig, + options.isOpenTelemetryTracingEnabled(), + options.getOpenTelemetryTracer()); } catch (BigQueryRetryHelper.BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (waitForQueryResults != null) { + waitForQueryResults.end(); + } } } private Job waitForJob(RetrySettings waitSettings) throws InterruptedException { - try { + Span waitForJob = null; + if (options.isOpenTelemetryTracingEnabled() && options.getOpenTelemetryTracer() != null) { + waitForJob = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.Job.waitForJob") + .setAttribute( + "bq.job.wait_settings.total_timeout", + getFieldAsString(waitSettings.getTotalTimeoutDuration())) + .setAttribute( + "bq.job.wait_settings.initial_retry_delay", + getFieldAsString(waitSettings.getInitialRetryDelayDuration())) + .setAttribute( + "bq.job.wait_settings.max_retry_delay", + getFieldAsString(waitSettings.getMaxRetryDelayDuration())) + .setAttribute( + "bq.job.wait_settings.initial_rpc_timeout", + getFieldAsString(waitSettings.getInitialRpcTimeoutDuration())) + .setAttribute( + "bq.job.wait_settings.max_rpc_timeout", + getFieldAsString(waitSettings.getMaxRpcTimeoutDuration())) + .startSpan(); + } + try (Scope waitForJobScope = waitForJob != null ? waitForJob.makeCurrent() : null) { return RetryHelper.poll( new Callable() { @Override @@ -433,6 +537,10 @@ public boolean shouldRetry(Throwable prevThrowable, Job prevResponse) { options.getClock()); } catch (ExecutionException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (waitForJob != null) { + waitForJob.end(); + } } } @@ -463,14 +571,31 @@ public boolean shouldRetry(Throwable prevThrowable, Job prevResponse) { */ public Job reload(JobOption... options) { checkNotDryRun("reload"); - Job job = bigquery.getJob(getJobId(), options); - if (job != null && job.getStatus().getError() != null) { - throw new BigQueryException( - job.getStatus().getExecutionErrors() == null - ? ImmutableList.of(job.getStatus().getError()) - : ImmutableList.copyOf(job.getStatus().getExecutionErrors())); - } - return job; + Span reload = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + reload = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.Job.reload") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + + try (Scope reloadScope = reload != null ? reload.makeCurrent() : null) { + Job job = bigquery.getJob(getJobId(), options); + if (job != null && job.getStatus().getError() != null) { + throw new BigQueryException( + job.getStatus().getExecutionErrors() == null + ? ImmutableList.of(job.getStatus().getError()) + : ImmutableList.copyOf(job.getStatus().getExecutionErrors())); + } + return job; + } finally { + if (reload != null) { + reload.end(); + } + } } /** @@ -492,7 +617,22 @@ public Job reload(JobOption... options) { */ public boolean cancel() { checkNotDryRun("cancel"); - return bigquery.cancel(getJobId()); + Span cancel = null; + if (options.isOpenTelemetryTracingEnabled() && options.getOpenTelemetryTracer() != null) { + cancel = + options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.Job.cancel") + .startSpan(); + } + + try (Scope cancelScope = cancel != null ? cancel.makeCurrent() : null) { + return bigquery.cancel(getJobId()); + } finally { + if (cancel != null) { + cancel.end(); + } + } } private void checkNotDryRun(String op) { @@ -556,4 +696,19 @@ private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundE static Job fromPb(BigQuery bigquery, com.google.api.services.bigquery.model.Job jobPb) { return new Job(bigquery, new JobInfo.BuilderImpl(jobPb)); } + + private static Attributes otelAttributesFromOptions(Option... options) { + Attributes attributes = Attributes.builder().build(); + for (Option option : options) { + attributes = + attributes.toBuilder() + .put(option.getRpcOption().toString(), option.getValue().toString()) + .build(); + } + return attributes; + } + + private static String getFieldAsString(Object field) { + return field == null ? "null" : field.toString(); + } } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java index aabd87d47138..cc64ec72f514 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java @@ -20,6 +20,8 @@ import com.google.cloud.RestorableState; import com.google.cloud.WriteChannel; import com.google.cloud.bigquery.BigQueryRetryHelper.BigQueryRetryHelperException; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.context.Scope; import java.io.IOException; import java.util.List; import java.util.Objects; @@ -50,7 +52,19 @@ public class TableDataWriteChannel @Override protected void flushBuffer(final int length, final boolean last) { - try { + Span flushBuffer = null; + if (getOptions().isOpenTelemetryTracingEnabled() + && getOptions().getOpenTelemetryTracer() != null) { + flushBuffer = + getOptions() + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.TableDataWriteChannel.flushBuffer") + .setAttribute("bq.table_data_write_channel.flush_buffer.length", length) + .setAttribute("bq.table_data_write_channel.flush_buffer.last", last) + .startSpan(); + } + + try (Scope flushBufferScope = flushBuffer != null ? flushBuffer.makeCurrent() : null) { com.google.api.services.bigquery.model.Job jobPb = BigQueryRetryHelper.runWithRetries( new Callable() { @@ -65,10 +79,16 @@ public com.google.api.services.bigquery.model.Job call() throws IOException { getOptions().getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, getOptions().getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + getOptions().isOpenTelemetryTracingEnabled(), + getOptions().getOpenTelemetryTracer()); job = jobPb != null ? Job.fromPb(getOptions().getService(), jobPb) : null; } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (flushBuffer != null) { + flushBuffer.end(); + } } } @@ -81,7 +101,18 @@ private static String open( final BigQueryOptions options, final JobId jobId, final WriteChannelConfiguration writeChannelConfiguration) { - try { + Span open = null; + if (options.isOpenTelemetryTracingEnabled() && options.getOpenTelemetryTracer() != null) { + open = + options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.TableDataWriteChannel.open") + .setAllAttributes(jobId.getOtelAttributes()) + .setAllAttributes(writeChannelConfiguration.getDestinationTable().getOtelAttributes()) + .startSpan(); + } + + try (Scope openScope = open != null ? open.makeCurrent() : null) { return BigQueryRetryHelper.runWithRetries( new Callable() { @Override @@ -97,9 +128,15 @@ public String call() throws IOException { options.getRetrySettings(), BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, options.getClock(), - EMPTY_RETRY_CONFIG); + EMPTY_RETRY_CONFIG, + options.isOpenTelemetryTracingEnabled(), + options.getOpenTelemetryTracer()); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); + } finally { + if (open != null) { + open.end(); + } } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index eceadcbca883..551e1eb40dac 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -6489,6 +6489,14 @@ public void testLocation() throws Exception { assertThat(location).isNotEqualTo(wrongLocation); + Tracer tracer = otel.getTracer("Test Tracer"); + bigquery = + bigquery.getOptions().toBuilder() + .setEnableOpenTelemetryTracing(true) + .setOpenTelemetryTracer(tracer) + .build() + .getService(); + Dataset dataset = bigquery.create( DatasetInfo.newBuilder("locationset_" + UUID.randomUUID().toString().replace("-", "_")) @@ -6565,6 +6573,11 @@ public void testLocation() throws Exception { bigquery.writer( JobId.newBuilder().setLocation(location).build(), writeChannelConfiguration)) { writer.write(ByteBuffer.wrap("foo".getBytes())); + assertEquals( + OTEL_ATTRIBUTES + .get("com.google.cloud.bigquery.TableDataWriteChannel.open") + .get(AttributeKey.stringKey("bq.job.location")), + location); } try { @@ -6577,6 +6590,12 @@ public void testLocation() throws Exception { } } finally { bigquery.delete(dataset.getDatasetId(), DatasetDeleteOption.deleteContents()); + bigquery = + bigquery.getOptions().toBuilder() + .setEnableOpenTelemetryTracing(false) + .setOpenTelemetryTracer(null) + .build() + .getService(); } } @@ -7661,6 +7680,7 @@ public void testOpenTelemetryTracingTables() { assertEquals( OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.updateTable"), OTEL_PARENT_SPAN_ID); + assertTrue(bigquery.delete(updatedTable.getTableId())); } @Test @@ -7680,6 +7700,9 @@ public void testOpenTelemetryTracingQuery() throws InterruptedException { assertNull(tableResult.getJobId()); assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.queryRpc")); + assertNotNull( + OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQueryRetryHelper.runWithRetries")); + assertTrue(OTEL_ATTRIBUTES.containsKey("com.google.cloud.bigquery.BigQuery.query")); // Query job String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); @@ -7694,5 +7717,7 @@ public void testOpenTelemetryTracingQuery() throws InterruptedException { assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.getQueryResults")); assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.listTableData")); assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.createJob")); + assertTrue(OTEL_ATTRIBUTES.containsKey("com.google.cloud.bigquery.Job.getQueryResults")); + assertTrue(OTEL_ATTRIBUTES.containsKey("com.google.cloud.bigquery.Job.waitForQueryResults")); } } From d2e6b4a58ddc817ec0f7c255f5b6b15ce6b2a649 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 24 Jun 2025 15:52:35 +0200 Subject: [PATCH 3261/3441] chore(deps): update google cloud java monorepo updates (#3857) --- pom.xml | 4 ++-- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 2cdc232f0d80..6e992241d8e0 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.70.0 + 1.72.0 pom import @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.66.0 + 2.68.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index ec9180d6a588..4089821fe8cd 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.66.0 + 2.68.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b8ba50d01140..775c14fe8132 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.66.0 + 2.68.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 478359e9aa59..160e38cb02a0 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.66.0 + 2.68.0 test From d4ca3535f54f3282aec133337103bbfa2c9a3653 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 24 Jun 2025 16:46:33 +0200 Subject: [PATCH 3262/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.68.0 (#3858) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6e992241d8e0..f33a3245a794 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.66.0 + 2.68.0 test From eb26deee37119389aee3962eea5ad67d63f26c70 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Jun 2025 15:59:21 +0200 Subject: [PATCH 3263/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.50.0 (#3861) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 8449bf074cae..63543a40faf3 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.49.2 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.50.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index b6a5a9d3e05f..dfa34060bce4 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.49.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.50.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index d0d6dea7191e..37dda4ab5a8a 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.49.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.50.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index a4a1fe79eebb..a8ab9778485f 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.49.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.50.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index b6a5a9d3e05f..dfa34060bce4 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.49.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.50.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index d0d6dea7191e..37dda4ab5a8a 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.49.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.50.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index a4a1fe79eebb..a8ab9778485f 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.49.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.50.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 9c1967a6d556..091c1d625ce3 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.49.2 + 3.50.0 diff --git a/pom.xml b/pom.xml index f33a3245a794..c4ae2a12f4ca 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.49.2 + 3.50.0 From 87ff9e1632503bb2b01ab93e6b2ae6eae4471cba Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Jun 2025 16:55:34 +0200 Subject: [PATCH 3264/3441] chore(config): migrate config renovate.json (#3862) --- renovate.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/renovate.json b/renovate.json index 833ec769e89c..aacfaebeb3ed 100644 --- a/renovate.json +++ b/renovate.json @@ -15,9 +15,9 @@ "customManagers": [ { "customType": "regex", - "fileMatch": [ - "^.kokoro/continuous/graalvm-native.*.cfg$", - "^.kokoro/presubmit/graalvm-native.*.cfg$" + "managerFilePatterns": [ + "/^.kokoro/continuous/graalvm-native.*.cfg$/", + "/^.kokoro/presubmit/graalvm-native.*.cfg$/" ], "matchStrings": [ "value: \"gcr.io/cloud-devrel-public-resources/graalvm.*:(?.*?)\"" @@ -27,8 +27,8 @@ }, { "customType": "regex", - "fileMatch": [ - "^.github/workflows/unmanaged_dependency_check.yaml$" + "managerFilePatterns": [ + "/^.github/workflows/unmanaged_dependency_check.yaml$/" ], "matchStrings": [ "uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v(?.+?)\\n" From 2498739ce5a37f776d158394d2939dd55a9c600a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 25 Jun 2025 21:52:14 +0200 Subject: [PATCH 3265/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.15.3 (#3863) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c4ae2a12f4ca..dc0b89ee4c5d 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.15.2 + 3.15.3 pom import From 13894df2d920930319660b220d13a2628ba705c6 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 25 Jun 2025 16:48:52 -0400 Subject: [PATCH 3266/3441] chore(main): release 2.52.0 (#3849) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 24 ++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 33 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9fe4fdd3a43..71577758bde7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # Changelog +## [2.52.0](https://github.com/googleapis/java-bigquery/compare/v2.51.0...v2.52.0) (2025-06-25) + + +### Features + +* **bigquery:** Integrate Otel in client lib ([#3747](https://github.com/googleapis/java-bigquery/issues/3747)) ([6e3e07a](https://github.com/googleapis/java-bigquery/commit/6e3e07a22b8397e1e9d5b567589e44abc55961f2)) +* **bigquery:** Integrate Otel into retries, jobs, and more ([#3842](https://github.com/googleapis/java-bigquery/issues/3842)) ([4b28c47](https://github.com/googleapis/java-bigquery/commit/4b28c479c1bc22326c8d2501354fb86ec2ce1744)) + + +### Bug Fixes + +* **bigquery:** Add MY_VIEW_DATASET_NAME_TEST_ to resource clean up sample ([#3838](https://github.com/googleapis/java-bigquery/issues/3838)) ([b1962a7](https://github.com/googleapis/java-bigquery/commit/b1962a7f0084ee4c3e248266b50406cf575cd657)) + + +### Dependencies + +* Remove version declaration of open-telemetry-bom ([#3855](https://github.com/googleapis/java-bigquery/issues/3855)) ([6f9f77d](https://github.com/googleapis/java-bigquery/commit/6f9f77d47596b00b7317c8a0d4a10c3d849ad57b)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.66.0 ([#3835](https://github.com/googleapis/java-bigquery/issues/3835)) ([69be5e7](https://github.com/googleapis/java-bigquery/commit/69be5e7345fb8ca69d633d9dc99cf6c15fa5227b)) +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.68.0 ([#3858](https://github.com/googleapis/java-bigquery/issues/3858)) ([d4ca353](https://github.com/googleapis/java-bigquery/commit/d4ca3535f54f3282aec133337103bbfa2c9a3653)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.49.2 ([#3853](https://github.com/googleapis/java-bigquery/issues/3853)) ([cf864df](https://github.com/googleapis/java-bigquery/commit/cf864df739bbb820e99999b7c1592a3635fea4ec)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.50.0 ([#3861](https://github.com/googleapis/java-bigquery/issues/3861)) ([eb26dee](https://github.com/googleapis/java-bigquery/commit/eb26deee37119389aee3962eea5ad67d63f26c70)) +* Update dependency io.opentelemetry:opentelemetry-bom to v1.51.0 ([#3840](https://github.com/googleapis/java-bigquery/issues/3840)) ([51321c2](https://github.com/googleapis/java-bigquery/commit/51321c22778fd41134cc0cdfc70bdc47f05883f1)) +* Update ossf/scorecard-action action to v2.4.2 ([#3810](https://github.com/googleapis/java-bigquery/issues/3810)) ([414f61d](https://github.com/googleapis/java-bigquery/commit/414f61d7efcfa568c1446bd41945d7a8e2450649)) + ## [2.51.0](https://github.com/googleapis/java-bigquery/compare/v2.50.1...v2.51.0) (2025-06-06) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index cd645c356fae..bb58ca1e1c00 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.51.1-SNAPSHOT + 2.52.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 091c1d625ce3..836073eb4cce 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.51.1-SNAPSHOT + 2.52.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.51.1-SNAPSHOT + 2.52.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4162718fbf6b..644fe0ef5b02 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.51.1-SNAPSHOT + 2.52.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.51.1-SNAPSHOT + 2.52.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index dc0b89ee4c5d..b265c66e31c7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.51.1-SNAPSHOT + 2.52.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.51.1-SNAPSHOT + 2.52.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 775c14fe8132..1a16552343e6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.51.1-SNAPSHOT + 2.52.0 diff --git a/versions.txt b/versions.txt index 7622bb1dcac4..2b5922874756 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.51.0:2.51.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.52.0:2.52.0 \ No newline at end of file From 6ba2126da9c80b14f32123c98247f7e2332b1ada Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 25 Jun 2025 17:56:27 -0400 Subject: [PATCH 3267/3441] chore(main): release 2.52.1-SNAPSHOT (#3864) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index bb58ca1e1c00..8fcf7ca00dc2 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.52.0 + 2.52.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 836073eb4cce..1194e1b0e2b2 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.52.0 + 2.52.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.52.0 + 2.52.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 644fe0ef5b02..6c7e1aed1bf2 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.52.0 + 2.52.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.52.0 + 2.52.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b265c66e31c7..6d9674e6f1c3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.52.0 + 2.52.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.52.0 + 2.52.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1a16552343e6..9e513636156d 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.52.0 + 2.52.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 2b5922874756..5e931b82a508 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.52.0:2.52.0 \ No newline at end of file +google-cloud-bigquery:2.52.0:2.52.1-SNAPSHOT \ No newline at end of file From e2d23c1b15f2c48a4113f82b920f5c29c4b5dfea Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Wed, 25 Jun 2025 23:14:57 -0700 Subject: [PATCH 3268/3441] feat(bigquery): Add OpenTelemetry support to BQ rpcs (#3860) * feat(bigquery): Add OpenTelemetry support to BQ rpcs * remove oauth and access token attributes * Capture repsponse ids in attributes * Fix attribute name scoping typos --- .../bigquery/spi/v2/HttpBigQueryRpc.java | 1062 ++++++++++++++--- .../cloud/bigquery/it/ITBigQueryTest.java | 20 + 2 files changed, 914 insertions(+), 168 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 03e1fb5866ee..9d89435ea983 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -69,6 +69,9 @@ import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; +import io.opentelemetry.api.common.Attributes; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.SpanKind; import java.io.IOException; import java.math.BigInteger; import java.util.List; @@ -155,7 +158,28 @@ public Dataset getDatasetSkipExceptionTranslation( if (options.containsKey(Option.DATASET_VIEW)) { bqGetRequest.setDatasetView(options.get(Option.DATASET_VIEW).toString()); } - return bqGetRequest.execute(); + + Span getDataset = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + getDataset = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.getDataset") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "DatasetService") + .setAttribute("bq.rpc.method", "GetDataset") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + + Dataset dataset = bqGetRequest.execute(); + if (getDataset != null) { + getDataset.setAttribute("bq.rpc.response.dataset.id", dataset.getId()); + getDataset.end(); + } + return dataset; } @Override @@ -171,7 +195,7 @@ public Tuple> listDatasets(String projectId, Map> listDatasetsSkipExceptionTranslation( String projectId, Map options) throws IOException { validateRPC(); - DatasetList datasetsList = + Bigquery.Datasets.List datasetsListRequest = bigquery .datasets() .list(projectId) @@ -179,9 +203,30 @@ public Tuple> listDatasetsSkipExceptionTranslation( .setAll(Option.ALL_DATASETS.getBoolean(options)) .setFilter(Option.LABEL_FILTER.getString(options)) .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .execute(); + .setPageToken(Option.PAGE_TOKEN.getString(options)); + + Span listDatasets = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + listDatasets = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.listDatasets") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "DatasetService") + .setAttribute("bq.rpc.method", "ListDatasets") + .setAttribute("bq.rpc.system", "http") + .setAttribute("bq.rpc.page_token", datasetsListRequest.getPageToken()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + + DatasetList datasetsList = datasetsListRequest.execute(); Iterable datasets = datasetsList.getDatasets(); + if (listDatasets != null) { + listDatasets.setAttribute("bq.rpc.next_page_token", datasetsList.getNextPageToken()); + listDatasets.end(); + } return Tuple.of( datasetsList.getNextPageToken(), Iterables.transform( @@ -211,7 +256,27 @@ public Dataset createSkipExceptionTranslation(Dataset dataset, Map op if (options.containsKey(Option.ACCESS_POLICY_VERSION)) { bqCreateRequest.setAccessPolicyVersion((Integer) options.get(Option.ACCESS_POLICY_VERSION)); } - return bqCreateRequest.execute(); + + Span createDataset = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + createDataset = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.createDataset") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "DatasetService") + .setAttribute("bq.rpc.method", "InsertDataset") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + Dataset datasetResponse = bqCreateRequest.execute(); + if (createDataset != null) { + createDataset.setAttribute("bq.rpc.response.dataset.id", datasetResponse.getId()); + createDataset.end(); + } + return datasetResponse; } @Override @@ -230,12 +295,33 @@ public Table createSkipExceptionTranslation(Table table, Map options) // unset the type, as it is output only table.setType(null); TableReference reference = table.getTableReference(); - return bigquery - .tables() - .insert(reference.getProjectId(), reference.getDatasetId(), table) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + Bigquery.Tables.Insert bqCreateRequest = + bigquery + .tables() + .insert(reference.getProjectId(), reference.getDatasetId(), table) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)); + + Span createTable = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + createTable = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.createTable") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "TableService") + .setAttribute("bq.rpc.method", "InsertTable") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + Table tableResponse = bqCreateRequest.execute(); + if (createTable != null) { + createTable.setAttribute("bq.rpc.response.table.id", tableResponse.getId()); + createTable.end(); + } + return tableResponse; } @Override @@ -252,12 +338,34 @@ public Routine createSkipExceptionTranslation(Routine routine, Map op throws IOException { validateRPC(); RoutineReference reference = routine.getRoutineReference(); - return bigquery - .routines() - .insert(reference.getProjectId(), reference.getDatasetId(), routine) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + Bigquery.Routines.Insert bqCreateRequest = + bigquery + .routines() + .insert(reference.getProjectId(), reference.getDatasetId(), routine) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)); + + Span createRoutine = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + createRoutine = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.createRoutine") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "RoutineService") + .setAttribute("bq.rpc.method", "InsertRoutine") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + Routine routineResponse = bqCreateRequest.execute(); + if (createRoutine != null) { + createRoutine.setAttribute( + "bq.rpc.response.routine.id", routineResponse.getRoutineReference().getRoutineId()); + createRoutine.end(); + } + return routineResponse; } @Override @@ -276,12 +384,35 @@ public Job createSkipExceptionTranslation(Job job, Map options) throw job.getJobReference() != null ? job.getJobReference().getProjectId() : this.options.getProjectId(); - return bigquery - .jobs() - .insert(projectId, job) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + Bigquery.Jobs.Insert bqCreateRequest = + bigquery + .jobs() + .insert(projectId, job) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)); + + Span createJob = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + createJob = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.createJob") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "JobService") + .setAttribute("bq.rpc.method", "InsertJob") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + Job jobResponse = bqCreateRequest.execute(); + if (createJob != null) { + createJob.setAttribute("bq.rpc.response.job.id", jobResponse.getId()); + createJob.setAttribute( + "bq.rpc.response.job.status.state", jobResponse.getStatus().getState()); + createJob.end(); + } + return jobResponse; } @Override @@ -300,7 +431,30 @@ public Job createJobForQuerySkipExceptionTranslation(Job job) throws IOException job.getJobReference() != null ? job.getJobReference().getProjectId() : this.options.getProjectId(); - return bigquery.jobs().insert(projectId, job).setPrettyPrint(false).execute(); + Bigquery.Jobs.Insert bqCreateRequest = + bigquery.jobs().insert(projectId, job).setPrettyPrint(false); + + Span createJob = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + createJob = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.createJobForQuery") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "JobService") + .setAttribute("bq.rpc.method", "InsertJob") + .setAttribute("bq.rpc.system", "http") + .startSpan(); + } + Job jobResponse = bqCreateRequest.execute(); + if (createJob != null) { + createJob.setAttribute("bq.rpc.response.job.id", jobResponse.getId()); + createJob.setAttribute( + "bq.rpc.response.job.status.state", jobResponse.getStatus().getState()); + createJob.end(); + } + return jobResponse; } @Override @@ -320,12 +474,31 @@ public boolean deleteDataset(String projectId, String datasetId, Map public boolean deleteDatasetSkipExceptionTranslation( String projectId, String datasetId, Map options) throws IOException { validateRPC(); - bigquery - .datasets() - .delete(projectId, datasetId) - .setPrettyPrint(false) - .setDeleteContents(Option.DELETE_CONTENTS.getBoolean(options)) - .execute(); + Bigquery.Datasets.Delete bqDeleteRequest = + bigquery + .datasets() + .delete(projectId, datasetId) + .setPrettyPrint(false) + .setDeleteContents(Option.DELETE_CONTENTS.getBoolean(options)); + + Span deleteDataset = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + deleteDataset = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.deleteDataset") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "DatasetService") + .setAttribute("bq.rpc.method", "DeleteDataset") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + bqDeleteRequest.execute(); + if (deleteDataset != null) { + deleteDataset.end(); + } return true; } @@ -355,7 +528,27 @@ public Dataset patchSkipExceptionTranslation(Dataset dataset, Map opt if (options.containsKey(Option.DATASET_UPDATE_MODE)) { bqPatchRequest.setUpdateMode(options.get(Option.DATASET_UPDATE_MODE).toString()); } - return bqPatchRequest.execute(); + + Span patchDataset = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + patchDataset = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.patchDataset") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "DatasetService") + .setAttribute("bq.rpc.method", "PatchDataset") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + Dataset datasetResponse = bqPatchRequest.execute(); + if (patchDataset != null) { + patchDataset.setAttribute("bq.rpc.response.dataset.id", datasetResponse.getId()); + patchDataset.end(); + } + return datasetResponse; } @Override @@ -374,13 +567,35 @@ public Table patchSkipExceptionTranslation(Table table, Map options) // unset the type, as it is output only table.setType(null); TableReference reference = table.getTableReference(); - return bigquery - .tables() - .patch(reference.getProjectId(), reference.getDatasetId(), reference.getTableId(), table) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .setAutodetectSchema(BigQueryRpc.Option.AUTODETECT_SCHEMA.getBoolean(options)) - .execute(); + Bigquery.Tables.Patch bqPatchRequest = + bigquery + .tables() + .patch( + reference.getProjectId(), reference.getDatasetId(), reference.getTableId(), table) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)) + .setAutodetectSchema(BigQueryRpc.Option.AUTODETECT_SCHEMA.getBoolean(options)); + + Span patchTable = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + patchTable = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.patchTable") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "TableService") + .setAttribute("bq.rpc.method", "PatchTable") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + Table tableResponse = bqPatchRequest.execute(); + if (patchTable != null) { + patchTable.setAttribute("bq.rpc.response.table.id", tableResponse.getId()); + patchTable.end(); + } + return tableResponse; } @Override @@ -402,13 +617,34 @@ public Table getTableSkipExceptionTranslation( String projectId, String datasetId, String tableId, Map options) throws IOException { validateRPC(); - return bigquery - .tables() - .get(projectId, datasetId, tableId) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .setView(getTableMetadataOption(options)) - .execute(); + Bigquery.Tables.Get bqGetRequest = + bigquery + .tables() + .get(projectId, datasetId, tableId) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)) + .setView(getTableMetadataOption(options)); + + Span getTable = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + getTable = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.getTable") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "TableService") + .setAttribute("bq.rpc.method", "GetTable") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + Table tableResponse = bqGetRequest.execute(); + if (getTable != null) { + getTable.setAttribute("bq.rpc.response.table.id", tableResponse.getId()); + getTable.end(); + } + return tableResponse; } private String getTableMetadataOption(Map options) { @@ -432,17 +668,38 @@ public Tuple> listTables( public Tuple> listTablesSkipExceptionTranslation( String projectId, String datasetId, Map options) throws IOException { validateRPC(); - TableList tableList = + Bigquery.Tables.List tableListRequest = bigquery .tables() .list(projectId, datasetId) .setPrettyPrint(false) .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .execute(); - Iterable tables = tableList.getTables(); + .setPageToken(Option.PAGE_TOKEN.getString(options)); + + Span listTables = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + listTables = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.listTables") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "TableService") + .setAttribute("bq.rpc.method", "ListTables") + .setAttribute("bq.rpc.system", "http") + .setAttribute("bq.rpc.page_token", tableListRequest.getPageToken()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + TableList tableResponse = tableListRequest.execute(); + if (listTables != null) { + listTables.setAttribute("bq.rpc.next_page_token", tableResponse.getNextPageToken()); + listTables.end(); + } + + Iterable tables = tableResponse.getTables(); return Tuple.of( - tableList.getNextPageToken(), + tableResponse.getNextPageToken(), Iterables.transform( tables != null ? tables : ImmutableList.of(), new Function() { @@ -480,7 +737,26 @@ public boolean deleteTable(String projectId, String datasetId, String tableId) { public boolean deleteTableSkipExceptionTranslation( String projectId, String datasetId, String tableId) throws IOException { validateRPC(); - bigquery.tables().delete(projectId, datasetId, tableId).execute(); + Bigquery.Tables.Delete bqDeleteRequest = + bigquery.tables().delete(projectId, datasetId, tableId); + + Span deleteTable = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + deleteTable = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.deleteTable") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "TableService") + .setAttribute("bq.rpc.method", "DeleteTable") + .setAttribute("bq.rpc.system", "http") + .startSpan(); + } + bqDeleteRequest.execute(); + if (deleteTable != null) { + deleteTable.end(); + } return true; } @@ -499,12 +775,35 @@ public Model patchSkipExceptionTranslation(Model model, Map options) validateRPC(); // unset the type, as it is output only ModelReference reference = model.getModelReference(); - return bigquery - .models() - .patch(reference.getProjectId(), reference.getDatasetId(), reference.getModelId(), model) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + Bigquery.Models.Patch bqPatchRequest = + bigquery + .models() + .patch( + reference.getProjectId(), reference.getDatasetId(), reference.getModelId(), model) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)); + + Span patchModel = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + patchModel = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.patchModel") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "ModelService") + .setAttribute("bq.rpc.method", "PatchModel") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + Model modelResponse = bqPatchRequest.execute(); + if (patchModel != null) { + patchModel.setAttribute( + "bq.rpc.response.model.id", modelResponse.getModelReference().getModelId()); + patchModel.end(); + } + return modelResponse; } @Override @@ -526,12 +825,34 @@ public Model getModelSkipExceptionTranslation( String projectId, String datasetId, String modelId, Map options) throws IOException { validateRPC(); - return bigquery - .models() - .get(projectId, datasetId, modelId) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + Bigquery.Models.Get bqGetRequest = + bigquery + .models() + .get(projectId, datasetId, modelId) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)); + + Span getModel = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + getModel = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.getModel") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "ModelService") + .setAttribute("bq.rpc.method", "GetModel") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + Model modelResponse = bqGetRequest.execute(); + if (getModel != null) { + getModel.setAttribute( + "bq.rpc.response.model.id", modelResponse.getModelReference().getModelId()); + getModel.end(); + } + return modelResponse; } @Override @@ -548,17 +869,38 @@ public Tuple> listModels( public Tuple> listModelsSkipExceptionTranslation( String projectId, String datasetId, Map options) throws IOException { validateRPC(); - ListModelsResponse modelList = + Bigquery.Models.List modelListRequest = bigquery .models() .list(projectId, datasetId) .setPrettyPrint(false) .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .execute(); + .setPageToken(Option.PAGE_TOKEN.getString(options)); + + Span listModels = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + listModels = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.listModels") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "ModelService") + .setAttribute("bq.rpc.method", "ListModels") + .setAttribute("bq.rpc.system", "http") + .setAttribute("bq.rpc.page_token", modelListRequest.getPageToken()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + ListModelsResponse modelResponse = modelListRequest.execute(); + if (listModels != null) { + listModels.setAttribute("bq.rpc.next_page_token", modelResponse.getNextPageToken()); + listModels.end(); + } + Iterable models = - modelList.getModels() != null ? modelList.getModels() : ImmutableList.of(); - return Tuple.of(modelList.getNextPageToken(), models); + modelResponse.getModels() != null ? modelResponse.getModels() : ImmutableList.of(); + return Tuple.of(modelResponse.getNextPageToken(), models); } @Override @@ -578,7 +920,26 @@ public boolean deleteModel(String projectId, String datasetId, String modelId) { public boolean deleteModelSkipExceptionTranslation( String projectId, String datasetId, String modelId) throws IOException { validateRPC(); - bigquery.models().delete(projectId, datasetId, modelId).execute(); + Bigquery.Models.Delete bqDeleteRequest = + bigquery.models().delete(projectId, datasetId, modelId); + + Span deleteModels = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + deleteModels = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.deleteModel") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "ModelService") + .setAttribute("bq.rpc.method", "DeleteModel") + .setAttribute("bq.rpc.system", "http") + .startSpan(); + } + bqDeleteRequest.execute(); + if (deleteModels != null) { + deleteModels.end(); + } return true; } @@ -596,13 +957,38 @@ public Routine updateSkipExceptionTranslation(Routine routine, Map op throws IOException { validateRPC(); RoutineReference reference = routine.getRoutineReference(); - return bigquery - .routines() - .update( - reference.getProjectId(), reference.getDatasetId(), reference.getRoutineId(), routine) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + Bigquery.Routines.Update bqUpdateRequest = + bigquery + .routines() + .update( + reference.getProjectId(), + reference.getDatasetId(), + reference.getRoutineId(), + routine) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)); + + Span updateRoutine = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + updateRoutine = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.updateRoutine") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "RoutineService") + .setAttribute("bq.rpc.method", "UpdateRoutine") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + Routine routineResponse = bqUpdateRequest.execute(); + if (updateRoutine != null) { + updateRoutine.setAttribute( + "bq.rpc.response.routine.id", routineResponse.getRoutineReference().getRoutineId()); + updateRoutine.end(); + } + return routineResponse; } @Override @@ -624,12 +1010,34 @@ public Routine getRoutineSkipExceptionTranslation( String projectId, String datasetId, String routineId, Map options) throws IOException { validateRPC(); - return bigquery - .routines() - .get(projectId, datasetId, routineId) - .setPrettyPrint(false) - .setFields(Option.FIELDS.getString(options)) - .execute(); + Bigquery.Routines.Get bqGetRequest = + bigquery + .routines() + .get(projectId, datasetId, routineId) + .setPrettyPrint(false) + .setFields(Option.FIELDS.getString(options)); + + Span getRoutine = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + getRoutine = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.getRoutine") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "RoutineService") + .setAttribute("bq.rpc.method", "GetRoutine") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + Routine routineResponse = bqGetRequest.execute(); + if (getRoutine != null) { + getRoutine.setAttribute( + "bq.rpc.response.routine.id", routineResponse.getRoutineReference().getRoutineId()); + getRoutine.end(); + } + return routineResponse; } @Override @@ -646,17 +1054,39 @@ public Tuple> listRoutines( public Tuple> listRoutinesSkipExceptionTranslation( String projectId, String datasetId, Map options) throws IOException { validateRPC(); - ListRoutinesResponse routineList = + Bigquery.Routines.List routineListRequest = bigquery .routines() .list(projectId, datasetId) .setPrettyPrint(false) .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .execute(); + .setPageToken(Option.PAGE_TOKEN.getString(options)); + + Span listRoutines = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + listRoutines = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.listRoutines") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "RoutineService") + .setAttribute("bq.rpc.method", "ListRoutines") + .setAttribute("bq.rpc.system", "http") + .setAttribute("bq.rpc.page_token", routineListRequest.getPageToken()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + ListRoutinesResponse routineResponse = routineListRequest.execute(); + if (listRoutines != null) { + listRoutines.setAttribute("bq.rpc.next_page_token", routineResponse.getNextPageToken()); + listRoutines.end(); + } Iterable routines = - routineList.getRoutines() != null ? routineList.getRoutines() : ImmutableList.of(); - return Tuple.of(routineList.getNextPageToken(), routines); + routineResponse.getRoutines() != null + ? routineResponse.getRoutines() + : ImmutableList.of(); + return Tuple.of(routineResponse.getNextPageToken(), routines); } @Override @@ -676,7 +1106,26 @@ public boolean deleteRoutine(String projectId, String datasetId, String routineI public boolean deleteRoutineSkipExceptionTranslation( String projectId, String datasetId, String routineId) throws IOException { validateRPC(); - bigquery.routines().delete(projectId, datasetId, routineId).execute(); + Bigquery.Routines.Delete bqDeleteRequest = + bigquery.routines().delete(projectId, datasetId, routineId); + + Span deleteRoutine = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + deleteRoutine = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.listRoutines") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "RoutineService") + .setAttribute("bq.rpc.method", "ListRoutines") + .setAttribute("bq.rpc.system", "http") + .startSpan(); + } + bqDeleteRequest.execute(); + if (deleteRoutine != null) { + deleteRoutine.end(); + } return true; } @@ -695,11 +1144,30 @@ public TableDataInsertAllResponse insertAllSkipExceptionTranslation( String projectId, String datasetId, String tableId, TableDataInsertAllRequest request) throws IOException { validateRPC(); - return bigquery - .tabledata() - .insertAll(projectId, datasetId, tableId, request) - .setPrettyPrint(false) - .execute(); + Bigquery.Tabledata.InsertAll insertAllRequest = + bigquery + .tabledata() + .insertAll(projectId, datasetId, tableId, request) + .setPrettyPrint(false); + + Span insertAll = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + insertAll = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.insertAll") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "TableDataService") + .setAttribute("bq.rpc.method", "InsertAll") + .setAttribute("bq.rpc.system", "http") + .startSpan(); + } + TableDataInsertAllResponse insertAllResponse = insertAllRequest.execute(); + if (insertAll != null) { + insertAll.end(); + } + return insertAllResponse; } @Override @@ -717,17 +1185,38 @@ public TableDataList listTableDataSkipExceptionTranslation( String projectId, String datasetId, String tableId, Map options) throws IOException { validateRPC(); - return bigquery - .tabledata() - .list(projectId, datasetId, tableId) - .setPrettyPrint(false) - .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .setStartIndex( - Option.START_INDEX.getLong(options) != null - ? BigInteger.valueOf(Option.START_INDEX.getLong(options)) - : null) - .execute(); + Bigquery.Tabledata.List bqListRequest = + bigquery + .tabledata() + .list(projectId, datasetId, tableId) + .setPrettyPrint(false) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .setStartIndex( + Option.START_INDEX.getLong(options) != null + ? BigInteger.valueOf(Option.START_INDEX.getLong(options)) + : null); + + Span listTableData = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + listTableData = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.listTableData") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "TableDataService") + .setAttribute("bq.rpc.method", "List") + .setAttribute("bq.rpc.system", "http") + .setAttribute("bq.rpc.page_token", bqListRequest.getPageToken()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + TableDataList bqListResponse = bqListRequest.execute(); + if (listTableData != null) { + listTableData.end(); + } + return bqListResponse; } @Override @@ -754,13 +1243,33 @@ public TableDataList listTableDataWithRowLimitSkipExceptionTranslation( String pageToken) throws IOException { validateRPC(); - return bigquery - .tabledata() - .list(projectId, datasetId, tableId) - .setPrettyPrint(false) - .setMaxResults(Long.valueOf(maxResultPerPage)) - .setPageToken(pageToken) - .execute(); + Bigquery.Tabledata.List bqListRequest = + bigquery + .tabledata() + .list(projectId, datasetId, tableId) + .setPrettyPrint(false) + .setMaxResults(Long.valueOf(maxResultPerPage)) + .setPageToken(pageToken); + + Span listTableData = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + listTableData = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.listTableDataWithRowLimit") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "TableDataService") + .setAttribute("bq.rpc.method", "List") + .setAttribute("bq.rpc.system", "http") + .setAttribute("bq.rpc.page_token", bqListRequest.getPageToken()) + .startSpan(); + } + TableDataList bqListResponse = bqListRequest.execute(); + if (listTableData != null) { + listTableData.end(); + } + return bqListResponse; } @Override @@ -780,13 +1289,35 @@ public Job getJob(String projectId, String jobId, String location, Map options) throws IOException { validateRPC(); - return bigquery - .jobs() - .get(projectId, jobId) - .setPrettyPrint(false) - .setLocation(location) - .setFields(Option.FIELDS.getString(options)) - .execute(); + Bigquery.Jobs.Get bqGetRequest = + bigquery + .jobs() + .get(projectId, jobId) + .setPrettyPrint(false) + .setLocation(location) + .setFields(Option.FIELDS.getString(options)); + + Span getJob = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + getJob = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.getJob") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "JobService") + .setAttribute("bq.rpc.method", "GetJob") + .setAttribute("bq.rpc.system", "http") + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + Job jobResponse = bqGetRequest.execute(); + if (getJob != null) { + getJob.setAttribute("bq.rpc.response.job.id", jobResponse.getId()); + getJob.setAttribute("bq.rpc.response.job.status.state", jobResponse.getStatus().getState()); + getJob.end(); + } + return jobResponse; } @Override @@ -806,12 +1337,29 @@ public Job getQueryJob(String projectId, String jobId, String location) { public Job getQueryJobSkipExceptionTranslation(String projectId, String jobId, String location) throws IOException { validateRPC(); - return bigquery - .jobs() - .get(projectId, jobId) - .setPrettyPrint(false) - .setLocation(location) - .execute(); + Bigquery.Jobs.Get bqGetRequest = + bigquery.jobs().get(projectId, jobId).setPrettyPrint(false).setLocation(location); + + Span getJob = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + getJob = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.getQueryJob") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "JobService") + .setAttribute("bq.rpc.method", "GetJob") + .setAttribute("bq.rpc.system", "http") + .startSpan(); + } + Job jobResponse = bqGetRequest.execute(); + if (getJob != null) { + getJob.setAttribute("bq.rpc.response.job.id", jobResponse.getId()); + getJob.setAttribute("bq.rpc.response.job.status.state", jobResponse.getStatus().getState()); + getJob.end(); + } + return jobResponse; } @Override @@ -845,7 +1393,27 @@ public Tuple> listJobsSkipExceptionTranslation( if (Option.MAX_CREATION_TIME.getLong(options) != null) { request.setMaxCreationTime(BigInteger.valueOf(Option.MAX_CREATION_TIME.getLong(options))); } + + Span listJobs = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + listJobs = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.listJobs") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "JobService") + .setAttribute("bq.rpc.method", "ListJobs") + .setAttribute("bq.rpc.system", "http") + .setAttribute("bq.rpc.page_token", request.getPageToken()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } JobList jobsList = request.execute(); + if (listJobs != null) { + listJobs.setAttribute("bq.rpc.next_page_token", jobsList.getNextPageToken()); + listJobs.end(); + } Iterable jobs = jobsList.getJobs(); return Tuple.of( @@ -892,7 +1460,26 @@ public boolean cancel(String projectId, String jobId, String location) { public boolean cancelSkipExceptionTranslation(String projectId, String jobId, String location) throws IOException { validateRPC(); - bigquery.jobs().cancel(projectId, jobId).setLocation(location).setPrettyPrint(false).execute(); + Bigquery.Jobs.Cancel bqCancelRequest = + bigquery.jobs().cancel(projectId, jobId).setLocation(location).setPrettyPrint(false); + + Span cancelJob = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + cancelJob = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.cancelJob") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "JobService") + .setAttribute("bq.rpc.method", "CancelJob") + .setAttribute("bq.rpc.system", "http") + .startSpan(); + } + bqCancelRequest.execute(); + if (cancelJob != null) { + cancelJob.end(); + } return true; } @@ -909,12 +1496,26 @@ public boolean deleteJob(String projectId, String jobName, String location) { public boolean deleteJobSkipExceptionTranslation( String projectId, String jobName, String location) throws IOException { validateRPC(); - bigquery - .jobs() - .delete(projectId, jobName) - .setLocation(location) - .setPrettyPrint(false) - .execute(); + Bigquery.Jobs.Delete bqDeleteRequest = + bigquery.jobs().delete(projectId, jobName).setLocation(location).setPrettyPrint(false); + + Span deleteJob = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + deleteJob = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.deleteJob") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "JobService") + .setAttribute("bq.rpc.method", "DeleteJob") + .setAttribute("bq.rpc.system", "http") + .startSpan(); + } + bqDeleteRequest.execute(); + if (deleteJob != null) { + deleteJob.end(); + } return true; } @@ -932,19 +1533,41 @@ public GetQueryResultsResponse getQueryResults( public GetQueryResultsResponse getQueryResultsSkipExceptionTranslation( String projectId, String jobId, String location, Map options) throws IOException { validateRPC(); - return bigquery - .jobs() - .getQueryResults(projectId, jobId) - .setPrettyPrint(false) - .setLocation(location) - .setMaxResults(Option.MAX_RESULTS.getLong(options)) - .setPageToken(Option.PAGE_TOKEN.getString(options)) - .setStartIndex( - Option.START_INDEX.getLong(options) != null - ? BigInteger.valueOf(Option.START_INDEX.getLong(options)) - : null) - .setTimeoutMs(Option.TIMEOUT.getLong(options)) - .execute(); + Bigquery.Jobs.GetQueryResults queryRequest = + bigquery + .jobs() + .getQueryResults(projectId, jobId) + .setPrettyPrint(false) + .setLocation(location) + .setMaxResults(Option.MAX_RESULTS.getLong(options)) + .setPageToken(Option.PAGE_TOKEN.getString(options)) + .setStartIndex( + Option.START_INDEX.getLong(options) != null + ? BigInteger.valueOf(Option.START_INDEX.getLong(options)) + : null) + .setTimeoutMs(Option.TIMEOUT.getLong(options)); + + Span getQueryResults = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + getQueryResults = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.getQueryResults") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "JobService") + .setAttribute("bq.rpc.method", "GetQueryResults") + .setAttribute("bq.rpc.system", "http") + .setAttribute("bq.rpc.page_token", queryRequest.getPageToken()) + .setAllAttributes(otelAttributesFromOptions(options)) + .startSpan(); + } + + GetQueryResultsResponse queryResponse = queryRequest.execute(); + if (getQueryResults != null) { + getQueryResults.end(); + } + return queryResponse; } @Override @@ -963,14 +1586,35 @@ public GetQueryResultsResponse getQueryResultsWithRowLimitSkipExceptionTranslati String projectId, String jobId, String location, Integer maxResultPerPage, Long timeoutMs) throws IOException { validateRPC(); - return bigquery - .jobs() - .getQueryResults(projectId, jobId) - .setPrettyPrint(false) - .setLocation(location) - .setMaxResults(Long.valueOf(maxResultPerPage)) - .setTimeoutMs(timeoutMs) - .execute(); + Bigquery.Jobs.GetQueryResults queryRequest = + bigquery + .jobs() + .getQueryResults(projectId, jobId) + .setPrettyPrint(false) + .setLocation(location) + .setMaxResults(Long.valueOf(maxResultPerPage)) + .setTimeoutMs(timeoutMs); + + Span getQueryResults = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + getQueryResults = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.getQueryResultsWithRowLimit") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "JobService") + .setAttribute("bq.rpc.method", "GetQueryResults") + .setAttribute("bq.rpc.system", "http") + .setAttribute("bq.rpc.page_token", queryRequest.getPageToken()) + .startSpan(); + } + + GetQueryResultsResponse queryResponse = queryRequest.execute(); + if (getQueryResults != null) { + getQueryResults.end(); + } + return queryResponse; } @Override @@ -986,7 +1630,27 @@ public QueryResponse queryRpc(String projectId, QueryRequest content) { public QueryResponse queryRpcSkipExceptionTranslation(String projectId, QueryRequest content) throws IOException { validateRPC(); - return bigquery.jobs().query(projectId, content).execute(); + Bigquery.Jobs.Query queryRequest = bigquery.jobs().query(projectId, content); + + Span getQueryResults = null; + if (this.options.isOpenTelemetryTracingEnabled() + && this.options.getOpenTelemetryTracer() != null) { + getQueryResults = + this.options + .getOpenTelemetryTracer() + .spanBuilder("com.google.cloud.bigquery.BigQueryRpc.queryRpc") + .setSpanKind(SpanKind.CLIENT) + .setAttribute("bq.rpc.service", "JobService") + .setAttribute("bq.rpc.method", "Query") + .setAttribute("bq.rpc.system", "http") + .startSpan(); + } + + QueryResponse queryResponse = queryRequest.execute(); + if (getQueryResults != null) { + getQueryResults.end(); + } + return queryResponse; } @Override @@ -1098,11 +1762,29 @@ public Policy getIamPolicySkipExceptionTranslation(String resourceId, Map From e5467c917c63ac066edcbcd902cc2093a39971a3 Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Mon, 30 Jun 2025 16:27:08 -0700 Subject: [PATCH 3275/3441] feat(bigquery): Add support for custom timezones and timestamps (#3859) * feat(bigquery): Add support for custom timezones and timestamps * update ignored-diff * fix data -> date typo * Add enums for SourceColumnMatch * Change null markers test names * change enums to StringEnumValue --- .../clirr-ignored-differences.xml | 70 ++++++ .../bigquery/ExternalTableDefinition.java | 186 +++++++++++++++ .../cloud/bigquery/LoadJobConfiguration.java | 219 +++++++++++++++++- .../bigquery/ExternalTableDefinitionTest.java | 29 +++ .../bigquery/LoadJobConfigurationTest.java | 22 ++ 5 files changed, 525 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index e048f4ce82de..bd455d2d4fad 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -2,6 +2,76 @@ + + 7013 + com/google/cloud/bigquery/ExternalTableDefinition* + *TimeZone(*) + + + 7013 + com/google/cloud/bigquery/ExternalTableDefinition* + *DateFormat(*) + + + 7013 + com/google/cloud/bigquery/ExternalTableDefinition* + *DatetimeFormat(*) + + + 7013 + com/google/cloud/bigquery/ExternalTableDefinition* + *TimeFormat(*) + + + 7013 + com/google/cloud/bigquery/ExternalTableDefinition* + *TimestampFormat(*) + + + 7013 + com/google/cloud/bigquery/ExternalTableDefinition* + *SourceColumnMatch(*) + + + 7013 + com/google/cloud/bigquery/ExternalTableDefinition* + *NullMarkers(*) + + + 7013 + com/google/cloud/bigquery/LoadJobConfiguration* + *TimeZone(*) + + + 7013 + com/google/cloud/bigquery/LoadJobConfiguration* + *DateFormat(*) + + + 7013 + com/google/cloud/bigquery/LoadJobConfiguration* + *DatetimeFormat(*) + + + 7013 + com/google/cloud/bigquery/LoadJobConfiguration* + *TimeFormat(*) + + + 7013 + com/google/cloud/bigquery/LoadJobConfiguration* + *TimestampFormat(*) + + + 7013 + com/google/cloud/bigquery/LoadJobConfiguration* + *SourceColumnMatch(*) + + + 7013 + com/google/cloud/bigquery/LoadJobConfiguration* + *NullMarkers(*) + 7004 com/google/cloud/bigquery/BigQueryRetryHelper diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index ea4cceeade87..c1859c3f9fdc 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -19,9 +19,12 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Strings.isNullOrEmpty; +import com.google.api.core.ApiFunction; import com.google.api.services.bigquery.model.ExternalDataConfiguration; import com.google.api.services.bigquery.model.Table; import com.google.auto.value.AutoValue; +import com.google.cloud.StringEnumType; +import com.google.cloud.StringEnumValue; import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import java.util.List; @@ -57,6 +60,46 @@ public ExternalDataConfiguration apply(ExternalTableDefinition tableInfo) { private static final long serialVersionUID = -5951580238459622025L; + public static final class SourceColumnMatch extends StringEnumValue { + private static final long serialVersionUID = 818920627219751207L; + private static final ApiFunction CONSTRUCTOR = + new ApiFunction() { + @Override + public SourceColumnMatch apply(String constant) { + return new SourceColumnMatch(constant); + } + }; + + private static final StringEnumType type = + new StringEnumType(SourceColumnMatch.class, CONSTRUCTOR); + + public static final SourceColumnMatch POSITION = type.createAndRegister("POSITION"); + + public static final SourceColumnMatch NAME = type.createAndRegister("NAME"); + + private SourceColumnMatch(String constant) { + super(constant); + } + + /** + * Get the SourceColumnMatch for the given String constant, and throw an exception if the + * constant is not recognized. + */ + public static SourceColumnMatch valueOfStrict(String constant) { + return type.valueOfStrict(constant); + } + + /** Get the SourceColumnMatch for the given String constant, and allow unrecognized values. */ + public static SourceColumnMatch valueOf(String constant) { + return type.valueOf(constant); + } + + /** Return the known values for SourceColumnMatch. */ + public static SourceColumnMatch[] values() { + return type.values(); + } + } + @AutoValue.Builder public abstract static class Builder extends TableDefinition.Builder { @@ -215,6 +258,45 @@ public Builder setMaxStaleness(String maxStaleness) { abstract Builder setMaxStalenessInner(String maxStaleness); + /** + * Time zone used when parsing timestamp values that do not have specific time zone information + * (e.g. 2024-04-20 12:34:56). The expected format is a IANA timezone string (e.g. + * America/Los_Angeles). + */ + public abstract Builder setTimeZone(String timeZone); + + /** Format used to parse DATE values. Supports C-style and SQL-style values. */ + public abstract Builder setDateFormat(String dateFormat); + + /** Format used to parse DATETIME values. Supports C-style and SQL-style values. */ + public abstract Builder setDatetimeFormat(String datetimeFormat); + + /** Format used to parse TIME values. Supports C-style and SQL-style values. */ + public abstract Builder setTimeFormat(String timeFormat); + + /** Format used to parse TIMESTAMP values. Supports C-style and SQL-style values. */ + public abstract Builder setTimestampFormat(String timestampFormat); + + /** + * Controls the strategy used to match loaded columns to the schema. If not set, a sensible + * default is chosen based on how the schema is provided. If autodetect is used, then columns + * are matched by name. Otherwise, columns are matched by position. This is done to keep the + * behavior backward-compatible. Acceptable values are: POSITION - matches by position. This + * assumes that the columns are ordered the same way as the schema. NAME - matches by name. This + * reads the header row as column names and reorders columns to match the field names in the + * schema. + */ + public abstract Builder setSourceColumnMatch(SourceColumnMatch sourceColumnMatch); + + /** + * A list of strings represented as SQL NULL value in a CSV file. null_marker and null_markers + * can't be set at the same time. If null_marker is set, null_markers has to be not set. If + * null_markers is set, null_marker has to be not set. If both null_marker and null_markers are + * set at the same time, a user error would be thrown. Any strings listed in null_markers, + * including empty string would be interpreted as SQL NULL. This applies to all column types. + */ + public abstract Builder setNullMarkers(List nullMarkers); + /** Creates an {@code ExternalTableDefinition} object. */ @Override public abstract ExternalTableDefinition build(); @@ -373,6 +455,37 @@ public HivePartitioningOptions getHivePartitioningOptions() { return getHivePartitioningOptionsInner(); } + /** + * Returns the time zone used when parsing timestamp values that don't have specific time zone + * information. + */ + @Nullable + public abstract String getTimeZone(); + + /** Returns the format used to parse DATE values. */ + @Nullable + public abstract String getDateFormat(); + + /** Returns the format used to parse DATETIME values. */ + @Nullable + public abstract String getDatetimeFormat(); + + /** Returns the format used to parse TIME values. */ + @Nullable + public abstract String getTimeFormat(); + + /** Returns the format used to parse TIMESTAMP values. */ + @Nullable + public abstract String getTimestampFormat(); + + /** Returns the strategy used to match loaded columns to the schema, either POSITION or NAME. */ + @Nullable + public abstract SourceColumnMatch getSourceColumnMatch(); + + /** Returns a list of strings represented as SQL NULL value in a CSV file. */ + @Nullable + public abstract List getNullMarkers(); + @Nullable abstract HivePartitioningOptions getHivePartitioningOptionsInner(); @@ -454,6 +567,29 @@ com.google.api.services.bigquery.model.ExternalDataConfiguration toExternalDataC if (getMetadataCacheMode() != null) { externalConfigurationPb.setMetadataCacheMode(getMetadataCacheMode()); } + if (getTimeZone() != null) { + externalConfigurationPb.setTimeZone(getTimeZone()); + } + if (getDateFormat() != null) { + externalConfigurationPb.setDateFormat(getDateFormat()); + } + if (getDatetimeFormat() != null) { + externalConfigurationPb.setDatetimeFormat(getDatetimeFormat()); + } + if (getTimeFormat() != null) { + externalConfigurationPb.setTimeFormat(getTimeFormat()); + } + if (getTimestampFormat() != null) { + externalConfigurationPb.setTimestampFormat(getTimestampFormat()); + } + if (getSourceColumnMatch() != null) { + externalConfigurationPb + .getCsvOptions() + .setSourceColumnMatch(getSourceColumnMatch().toString()); + } + if (getNullMarkers() != null) { + externalConfigurationPb.getCsvOptions().setNullMarkers(getNullMarkers()); + } return externalConfigurationPb; } @@ -654,6 +790,31 @@ static ExternalTableDefinition fromPb(Table tablePb) { if (tablePb.getMaxStaleness() != null) { builder.setMaxStaleness(tablePb.getMaxStaleness()); } + if (externalDataConfiguration.getTimeZone() != null) { + builder.setTimeZone(externalDataConfiguration.getTimeZone()); + } + if (externalDataConfiguration.getDateFormat() != null) { + builder.setDateFormat(externalDataConfiguration.getDateFormat()); + } + if (externalDataConfiguration.getDatetimeFormat() != null) { + builder.setDatetimeFormat(externalDataConfiguration.getDatetimeFormat()); + } + if (externalDataConfiguration.getTimeFormat() != null) { + builder.setTimeFormat(externalDataConfiguration.getTimeFormat()); + } + if (externalDataConfiguration.getTimestampFormat() != null) { + builder.setTimestampFormat(externalDataConfiguration.getTimestampFormat()); + } + if (externalDataConfiguration.getCsvOptions() != null) { + if (externalDataConfiguration.getCsvOptions().getSourceColumnMatch() != null) { + builder.setSourceColumnMatch( + SourceColumnMatch.valueOf( + externalDataConfiguration.getCsvOptions().getSourceColumnMatch())); + } + if (externalDataConfiguration.getCsvOptions().getNullMarkers() != null) { + builder.setNullMarkers(externalDataConfiguration.getCsvOptions().getNullMarkers()); + } + } } return builder.build(); } @@ -724,6 +885,31 @@ static ExternalTableDefinition fromExternalDataConfiguration( if (externalDataConfiguration.getMetadataCacheMode() != null) { builder.setMetadataCacheMode(externalDataConfiguration.getMetadataCacheMode()); } + if (externalDataConfiguration.getTimeZone() != null) { + builder.setTimeZone(externalDataConfiguration.getTimeZone()); + } + if (externalDataConfiguration.getDateFormat() != null) { + builder.setDateFormat(externalDataConfiguration.getDateFormat()); + } + if (externalDataConfiguration.getDatetimeFormat() != null) { + builder.setDatetimeFormat(externalDataConfiguration.getDatetimeFormat()); + } + if (externalDataConfiguration.getTimeFormat() != null) { + builder.setTimeFormat(externalDataConfiguration.getTimeFormat()); + } + if (externalDataConfiguration.getTimestampFormat() != null) { + builder.setTimestampFormat(externalDataConfiguration.getTimeFormat()); + } + if (externalDataConfiguration.getCsvOptions() != null) { + if (externalDataConfiguration.getCsvOptions().getSourceColumnMatch() != null) { + builder.setSourceColumnMatch( + SourceColumnMatch.valueOf( + externalDataConfiguration.getCsvOptions().getSourceColumnMatch())); + } + if (externalDataConfiguration.getCsvOptions().getNullMarkers() != null) { + builder.setNullMarkers(externalDataConfiguration.getCsvOptions().getNullMarkers()); + } + } return builder.build(); } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index 5d17554597ca..0d1eb7245b28 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -18,7 +18,10 @@ import static com.google.common.base.Preconditions.checkNotNull; +import com.google.api.core.ApiFunction; import com.google.api.services.bigquery.model.JobConfigurationLoad; +import com.google.cloud.StringEnumType; +import com.google.cloud.StringEnumValue; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; @@ -63,6 +66,55 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load private final List connectionProperties; private final Boolean createSession; private final String reservation; + private final String timeZone; + private final String dateFormat; + private final String datetimeFormat; + private final String timeFormat; + private final String timestampFormat; + private final SourceColumnMatch sourceColumnMatch; + private final List nullMarkers; + + public static final class SourceColumnMatch extends StringEnumValue { + private static final long serialVersionUID = 818920627219751207L; + private static final ApiFunction CONSTRUCTOR = + new ApiFunction() { + @Override + public SourceColumnMatch apply(String constant) { + return new SourceColumnMatch(constant); + } + }; + + private static final StringEnumType type = + new StringEnumType(SourceColumnMatch.class, CONSTRUCTOR); + + public static final SourceColumnMatch SOURCE_COLUMN_MATCH_UNSPECIFIED = + type.createAndRegister("SOURCE_COLUMN_MATCH_UNSPECIFIED"); + public static final SourceColumnMatch POSITION = type.createAndRegister("POSITION"); + + public static final SourceColumnMatch NAME = type.createAndRegister("NAME"); + + private SourceColumnMatch(String constant) { + super(constant); + } + + /** + * Get the SourceColumnMatch for the given String constant, and throw an exception if the + * constant is not recognized. + */ + public static SourceColumnMatch valueOfStrict(String constant) { + return type.valueOfStrict(constant); + } + + /** Get the SourceColumnMatch for the given String constant, and allow unrecognized values. */ + public static SourceColumnMatch valueOf(String constant) { + return type.valueOf(constant); + } + + /** Return the known values for SourceColumnMatch. */ + public static SourceColumnMatch[] values() { + return type.values(); + } + } public static final class Builder extends JobConfiguration.Builder implements LoadConfiguration.Builder { @@ -95,6 +147,13 @@ public static final class Builder extends JobConfiguration.Builder connectionProperties; private Boolean createSession; private String reservation; + private String timeZone; + private String dateFormat; + private String datetimeFormat; + private String timeFormat; + private String timestampFormat; + private SourceColumnMatch sourceColumnMatch; + private List nullMarkers; private Builder() { super(Type.LOAD); @@ -129,6 +188,13 @@ private Builder(LoadJobConfiguration loadConfiguration) { this.connectionProperties = loadConfiguration.connectionProperties; this.createSession = loadConfiguration.createSession; this.reservation = loadConfiguration.reservation; + this.timeZone = loadConfiguration.timeZone; + this.dateFormat = loadConfiguration.dateFormat; + this.datetimeFormat = loadConfiguration.datetimeFormat; + this.timeFormat = loadConfiguration.timeFormat; + this.timestampFormat = loadConfiguration.timestampFormat; + this.sourceColumnMatch = loadConfiguration.sourceColumnMatch; + this.nullMarkers = loadConfiguration.nullMarkers; } private Builder(com.google.api.services.bigquery.model.JobConfiguration configurationPb) { @@ -238,6 +304,28 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur if (configurationPb.getReservation() != null) { this.reservation = configurationPb.getReservation(); } + if (loadConfigurationPb.getTimeZone() != null) { + this.timeZone = loadConfigurationPb.getTimeZone(); + } + if (loadConfigurationPb.getDateFormat() != null) { + this.dateFormat = loadConfigurationPb.getDateFormat(); + } + if (loadConfigurationPb.getDatetimeFormat() != null) { + this.datetimeFormat = loadConfigurationPb.getDatetimeFormat(); + } + if (loadConfigurationPb.getTimeFormat() != null) { + this.timeFormat = loadConfigurationPb.getTimeFormat(); + } + if (loadConfigurationPb.getTimestampFormat() != null) { + this.timestampFormat = loadConfigurationPb.getTimestampFormat(); + } + if (loadConfigurationPb.getSourceColumnMatch() != null) { + this.sourceColumnMatch = + SourceColumnMatch.valueOf(loadConfigurationPb.getSourceColumnMatch()); + } + if (loadConfigurationPb.getNullMarkers() != null) { + this.nullMarkers = loadConfigurationPb.getNullMarkers(); + } } @Override @@ -449,6 +537,62 @@ public Builder setReservation(String reservation) { return this; } + /** + * [Experimental] Default time zone that will apply when parsing timestamp values that have no + * specific time zone. + */ + public Builder setTimeZone(String timeZone) { + this.timeZone = timeZone; + return this; + } + + /** Date format used for parsing DATE values. */ + public Builder setDateFormat(String dateFormat) { + this.dateFormat = dateFormat; + return this; + } + + /** Date format used for parsing DATETIME values. */ + public Builder setDatetimeFormat(String datetimeFormat) { + this.datetimeFormat = datetimeFormat; + return this; + } + + /** Date format used for parsing TIME values. */ + public Builder setTimeFormat(String timeFormat) { + this.timeFormat = timeFormat; + return this; + } + + /** Date format used for parsing TIMESTAMP values. */ + public Builder setTimestampFormat(String timestampFormat) { + this.timestampFormat = timestampFormat; + return this; + } + + /** + * Controls the strategy used to match loaded columns to the schema. If not set, a sensible + * default is chosen based on how the schema is provided. If autodetect is used, then columns + * are matched by name. Otherwise, columns are matched by position. This is done to keep the + * behavior backward-compatible. + */ + public Builder setSourceColumnMatch(SourceColumnMatch sourceColumnMatch) { + this.sourceColumnMatch = sourceColumnMatch; + return this; + } + + /** + * A list of strings represented as SQL NULL value in a CSV file. null_marker and null_markers + * can't be set at the same time. If null_marker is set, null_markers has to be not set. If + * null_markers is set, null_marker has to be not set. If both null_marker and null_markers are + * set at the same time, a user error would be thrown. Any strings listed in null_markers, + * including empty string would be interpreted as SQL NULL. This applies to all column types. + */ + public Builder setNullMarkers(List nullMarkers) { + this.nullMarkers = nullMarkers; + return this; + } + @Override public LoadJobConfiguration build() { return new LoadJobConfiguration(this); @@ -483,6 +627,13 @@ private LoadJobConfiguration(Builder builder) { this.connectionProperties = builder.connectionProperties; this.createSession = builder.createSession; this.reservation = builder.reservation; + this.timeZone = builder.timeZone; + this.dateFormat = builder.dateFormat; + this.datetimeFormat = builder.datetimeFormat; + this.timeFormat = builder.timeFormat; + this.timestampFormat = builder.timestampFormat; + this.sourceColumnMatch = builder.sourceColumnMatch; + this.nullMarkers = builder.nullMarkers; } @Override @@ -634,6 +785,44 @@ public String getReservation() { return reservation; } + /** + * Returns the time zone used when parsing timestamp values that don't have specific time zone + * information. + */ + public String getTimeZone() { + return timeZone; + } + + /** Returns the format used to parse DATE values. */ + public String getDateFormat() { + return dateFormat; + } + + /** Returns the format used to parse DATETIME values. */ + public String getDatetimeFormat() { + return datetimeFormat; + } + + /** Returns the format used to parse TIME values. */ + public String getTimeFormat() { + return timeFormat; + } + + /** Returns the format used to parse TIMESTAMP values. */ + public String getTimestampFormat() { + return timestampFormat; + } + + /** Returns the strategy used to match loaded columns to the schema, either POSITION or NAME. */ + public SourceColumnMatch getSourceColumnMatch() { + return sourceColumnMatch; + } + + /** Returns a list of strings represented as SQL NULL value in a CSV file. */ + public List getNullMarkers() { + return nullMarkers; + } + @Override public Builder toBuilder() { return new Builder(this); @@ -667,7 +856,14 @@ ToStringHelper toStringHelper() { .add("referenceFileSchemaUri", referenceFileSchemaUri) .add("connectionProperties", connectionProperties) .add("createSession", createSession) - .add("reservation", reservation); + .add("reservation", reservation) + .add("timeZone", timeZone) + .add("dateFormat", dateFormat) + .add("datetimeFormat", datetimeFormat) + .add("timeFormat", timeFormat) + .add("timestampFormat", timestampFormat) + .add("sourceColumnMatch", sourceColumnMatch) + .add("nullMarkers", nullMarkers); } @Override @@ -789,6 +985,27 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { if (reservation != null) { jobConfiguration.setReservation(reservation); } + if (timeZone != null) { + loadConfigurationPb.setTimeZone(timeZone); + } + if (dateFormat != null) { + loadConfigurationPb.setDateFormat(dateFormat); + } + if (datetimeFormat != null) { + loadConfigurationPb.setDatetimeFormat(datetimeFormat); + } + if (timeFormat != null) { + loadConfigurationPb.setTimeFormat(timeFormat); + } + if (timestampFormat != null) { + loadConfigurationPb.setTimestampFormat(timestampFormat); + } + if (sourceColumnMatch != null) { + loadConfigurationPb.setSourceColumnMatch(sourceColumnMatch.toString()); + } + if (nullMarkers != null) { + loadConfigurationPb.setNullMarkers(nullMarkers); + } jobConfiguration.setLoad(loadConfigurationPb); return jobConfiguration; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index 93a4425dfd97..cb7578c75a0a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -20,6 +20,7 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; +import com.google.cloud.bigquery.ExternalTableDefinition.SourceColumnMatch; import com.google.common.collect.ImmutableList; import java.util.List; import org.junit.Test; @@ -61,6 +62,13 @@ public class ExternalTableDefinitionTest { private static final String OBJECT_METADATA = "SIMPLE"; private static final String METADATA_CACHE_MODE = "AUTOMATIC"; private static final String MAX_STALENESS = "INTERVAL 15 MINUTE"; + private static final String TIME_ZONE = "America/Los_Angeles"; + private static final String DATE_FORMAT = "YYYY-MM-DD"; + private static final String DATETIME_FORMAT = "YYYY-MM-DD HH:MI:SS"; + private static final String TIME_FORMAT = "HH:MI:SS"; + private static final String TIMESTAMP_FORMAT = "YYYY-MM-DD HH:MI:SS"; + private static final SourceColumnMatch SOURCE_COLUMN_MATCH = SourceColumnMatch.POSITION; + private static final List NULL_MARKERS = ImmutableList.of("SQL NULL", "TEST_MARKER"); private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION = ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, CSV_OPTIONS) .setFileSetSpecType("FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH") @@ -74,6 +82,13 @@ public class ExternalTableDefinitionTest { .setObjectMetadata(OBJECT_METADATA) .setMetadataCacheMode(METADATA_CACHE_MODE) .setMaxStaleness(MAX_STALENESS) + .setTimeZone(TIME_ZONE) + .setDateFormat(DATE_FORMAT) + .setDatetimeFormat(DATETIME_FORMAT) + .setTimeFormat(TIME_FORMAT) + .setTimestampFormat(TIMESTAMP_FORMAT) + .setSourceColumnMatch(SOURCE_COLUMN_MATCH) + .setNullMarkers(NULL_MARKERS) .build(); private static final ExternalTableDefinition EXTERNAL_TABLE_DEFINITION_AVRO = @@ -131,6 +146,13 @@ public void testBuilder() { assertEquals(DECIMAL_TARGET_TYPES, EXTERNAL_TABLE_DEFINITION.getDecimalTargetTypes()); assertEquals(AUTODETECT, EXTERNAL_TABLE_DEFINITION.getAutodetect()); assertEquals(HIVE_PARTITIONING_OPTIONS, EXTERNAL_TABLE_DEFINITION.getHivePartitioningOptions()); + assertEquals(TIME_ZONE, EXTERNAL_TABLE_DEFINITION.getTimeZone()); + assertEquals(DATE_FORMAT, EXTERNAL_TABLE_DEFINITION.getDateFormat()); + assertEquals(DATETIME_FORMAT, EXTERNAL_TABLE_DEFINITION.getDatetimeFormat()); + assertEquals(TIME_FORMAT, EXTERNAL_TABLE_DEFINITION.getTimeFormat()); + assertEquals(TIMESTAMP_FORMAT, EXTERNAL_TABLE_DEFINITION.getTimestampFormat()); + assertEquals(SOURCE_COLUMN_MATCH, EXTERNAL_TABLE_DEFINITION.getSourceColumnMatch()); + assertEquals(NULL_MARKERS, EXTERNAL_TABLE_DEFINITION.getNullMarkers()); assertNotEquals(EXTERNAL_TABLE_DEFINITION, TableDefinition.Type.EXTERNAL); } @@ -174,5 +196,12 @@ private void compareExternalTableDefinition( assertEquals(expected.getObjectMetadata(), value.getObjectMetadata()); assertEquals(expected.getMetadataCacheMode(), value.getMetadataCacheMode()); assertEquals(expected.getMaxStaleness(), value.getMaxStaleness()); + assertEquals(expected.getTimeZone(), value.getTimeZone()); + assertEquals(expected.getDateFormat(), value.getDateFormat()); + assertEquals(expected.getDatetimeFormat(), value.getDatetimeFormat()); + assertEquals(expected.getTimeFormat(), value.getTimeFormat()); + assertEquals(expected.getTimestampFormat(), value.getTimestampFormat()); + assertEquals(expected.getSourceColumnMatch(), value.getSourceColumnMatch()); + assertEquals(expected.getNullMarkers(), value.getNullMarkers()); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index 6d181a328772..b1a2f1af8948 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -21,6 +21,7 @@ import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; import com.google.cloud.bigquery.JobInfo.WriteDisposition; +import com.google.cloud.bigquery.LoadJobConfiguration.SourceColumnMatch; import com.google.cloud.bigquery.TimePartitioning.Type; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -77,6 +78,13 @@ public class LoadJobConfigurationTest { private static final String KEY = "session_id"; private static final String VALUE = "session_id_1234567890"; + private static final String TIME_ZONE = "America/Los_Angeles"; + private static final String DATE_FORMAT = "YYYY-MM-DD"; + private static final String DATETIME_FORMAT = "YYYY-MM-DD HH:MI:SS"; + private static final String TIME_FORMAT = "HH:MI:SS"; + private static final String TIMESTAMP_FORMAT = "YYYY-MM-DD HH:MI:SS"; + private static final SourceColumnMatch SOURCE_COLUMN_MATCH = SourceColumnMatch.POSITION; + private static final List NULL_MARKERS = ImmutableList.of("SQL NULL", "TEST MARKER"); private static final ConnectionProperty CONNECTION_PROPERTY = ConnectionProperty.newBuilder().setKey(KEY).setValue(VALUE).build(); private static final List CONNECTION_PROPERTIES = @@ -110,6 +118,13 @@ public class LoadJobConfigurationTest { .setConnectionProperties(CONNECTION_PROPERTIES) .setCreateSession(CREATE_SESSION) .setReservation(RESERVATION) + .setTimeZone(TIME_ZONE) + .setDateFormat(DATE_FORMAT) + .setDatetimeFormat(DATETIME_FORMAT) + .setTimeFormat(TIME_FORMAT) + .setTimestampFormat(TIMESTAMP_FORMAT) + .setSourceColumnMatch(SOURCE_COLUMN_MATCH) + .setNullMarkers(NULL_MARKERS) .build(); private static final DatastoreBackupOptions BACKUP_OPTIONS = @@ -271,5 +286,12 @@ private void compareLoadJobConfiguration( assertEquals(expected.getConnectionProperties(), value.getConnectionProperties()); assertEquals(expected.getCreateSession(), value.getCreateSession()); assertEquals(expected.getReservation(), value.getReservation()); + assertEquals(expected.getTimeZone(), value.getTimeZone()); + assertEquals(expected.getDateFormat(), value.getDateFormat()); + assertEquals(expected.getDatetimeFormat(), value.getDatetimeFormat()); + assertEquals(expected.getTimeFormat(), value.getTimeFormat()); + assertEquals(expected.getTimestampFormat(), value.getTimestampFormat()); + assertEquals(expected.getSourceColumnMatch(), value.getSourceColumnMatch()); + assertEquals(expected.getNullMarkers(), value.getNullMarkers()); } } From 8aabfa76ac8d55a6a3d49b76ac85abd011411fc6 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 2 Jul 2025 15:54:42 +0200 Subject: [PATCH 3276/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.63.0 (#3874) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 8b1e77bd3810..62c7f22ec779 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.62.0 + 26.63.0 pom import From d2918da844cd20ca1602c6fcf9fa1df685f261fc Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Fri, 4 Jul 2025 13:16:25 -0400 Subject: [PATCH 3277/3441] docs: update maven format command (#3877) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0599033d79b4..5456fad05383 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -88,7 +88,7 @@ Code in this repo is formatted with [google-java-format](https://github.com/google/google-java-format). To run formatting on your project, you can run: ``` -mvn com.coveo:fmt-maven-plugin:format +mvn com.spotify.fmt:fmt-maven-plugin:format ``` [1]: https://cloud.google.com/docs/authentication/getting-started#creating_a_service_account From 0e971b8ace013caa31b8a02a21038e94bebae2a5 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 9 Jul 2025 16:57:01 +0200 Subject: [PATCH 3278/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.50.1 (#3878) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 63543a40faf3..1795d3b24a59 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.50.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.50.1 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index dfa34060bce4..13d12ce348b6 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.50.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.50.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index 37dda4ab5a8a..4696d04ef053 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.50.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.50.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index a8ab9778485f..26d39a747e87 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.50.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.50.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index dfa34060bce4..13d12ce348b6 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.50.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.50.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index 37dda4ab5a8a..4696d04ef053 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.50.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.50.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index a8ab9778485f..26d39a747e87 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.50.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.50.1" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 1194e1b0e2b2..8af53ddadb30 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.50.0 + 3.50.1 diff --git a/pom.xml b/pom.xml index 433cb320c53d..5c10cf01973a 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.50.0 + 3.50.1 From 5cfdf855fa0cf206660fd89743cbaabf3afa75a3 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Wed, 9 Jul 2025 21:01:49 -0400 Subject: [PATCH 3279/3441] fix: load jobs preserve ascii control characters configuration (#3876) * fix: load jobs preserve ascii control characters configuration * fix lint * fix NPE * fix NPE --- .../cloud/bigquery/LoadJobConfiguration.java | 6 ++++ .../bigquery/LoadJobConfigurationTest.java | 1 + .../cloud/bigquery/it/ITBigQueryTest.java | 29 +++++++++++++++++-- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index 0d1eb7245b28..381942cd0b73 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -219,6 +219,7 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur this.nullMarker = loadConfigurationPb.getNullMarker(); } if (loadConfigurationPb.getAllowJaggedRows() != null + || loadConfigurationPb.getPreserveAsciiControlCharacters() != null || loadConfigurationPb.getAllowQuotedNewlines() != null || loadConfigurationPb.getEncoding() != null || loadConfigurationPb.getFieldDelimiter() != null @@ -229,6 +230,10 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur .setEncoding(loadConfigurationPb.getEncoding()) .setFieldDelimiter(loadConfigurationPb.getFieldDelimiter()) .setQuote(loadConfigurationPb.getQuote()); + if (loadConfigurationPb.getPreserveAsciiControlCharacters() != null) { + builder.setPreserveAsciiControlCharacters( + loadConfigurationPb.getPreserveAsciiControlCharacters()); + } if (loadConfigurationPb.getAllowJaggedRows() != null) { builder.setAllowJaggedRows(loadConfigurationPb.getAllowJaggedRows()); } @@ -907,6 +912,7 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() { .setAllowJaggedRows(csvOptions.allowJaggedRows()) .setAllowQuotedNewlines(csvOptions.allowQuotedNewLines()) .setEncoding(csvOptions.getEncoding()) + .setPreserveAsciiControlCharacters(csvOptions.getPreserveAsciiControlCharacters()) .setQuote(csvOptions.getQuote()); if (csvOptions.getSkipLeadingRows() != null) { // todo(mziccard) remove checked cast or comment when #1044 is closed diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index b1a2f1af8948..d987eb28e073 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -38,6 +38,7 @@ public class LoadJobConfigurationTest { .setAllowJaggedRows(true) .setAllowQuotedNewLines(false) .setEncoding(StandardCharsets.UTF_8) + .setPreserveAsciiControlCharacters(true) .build(); private static final TableId TABLE_ID = TableId.of("dataset", "table"); private static final CreateDisposition CREATE_DISPOSITION = CreateDisposition.CREATE_IF_NEEDED; diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index f188e7946ec1..c9f6296cc50b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -613,6 +613,7 @@ public class ITBigQueryTest { private static final String LOAD_FILE_LARGE = "load_large.csv"; private static final String LOAD_FILE_FLEXIBLE_COLUMN_NAME = "load_flexible_column_name.csv"; + private static final String LOAD_FILE_NULL = "load_null.csv"; private static final String JSON_LOAD_FILE = "load.json"; private static final String JSON_LOAD_FILE_BQ_RESULTSET = "load_bq_resultset.json"; private static final String JSON_LOAD_FILE_SIMPLE = "load_simple.json"; @@ -628,6 +629,7 @@ public class ITBigQueryTest { private static final TableId TABLE_ID_FASTQUERY_BQ_RESULTSET = TableId.of(DATASET, "fastquery_testing_bq_resultset"); private static final String CSV_CONTENT = "StringValue1\nStringValue2\n"; + private static final String CSV_CONTENT_NULL = "String\0Value1\n"; private static final String CSV_CONTENT_FLEXIBLE_COLUMN = "name,&ersand\nrow_name,1"; private static final String JSON_CONTENT = @@ -1080,6 +1082,9 @@ public static void beforeClass() throws InterruptedException, IOException { storage.create( BlobInfo.newBuilder(BUCKET, LOAD_FILE).setContentType("text/plain").build(), CSV_CONTENT.getBytes(StandardCharsets.UTF_8)); + storage.create( + BlobInfo.newBuilder(BUCKET, LOAD_FILE_NULL).setContentType("text/plain").build(), + CSV_CONTENT_NULL.getBytes(StandardCharsets.UTF_8)); storage.create( BlobInfo.newBuilder(BUCKET, LOAD_FILE_FLEXIBLE_COLUMN_NAME) .setContentType("text/plain") @@ -6600,9 +6605,9 @@ public void testLocation() throws Exception { } @Test - public void testPreserveAsciiControlCharacters() + public void testWriteChannelPreserveAsciiControlCharacters() throws InterruptedException, IOException, TimeoutException { - String destinationTableName = "test_preserve_ascii_control_characters"; + String destinationTableName = "test_write_channel_preserve_ascii_control_characters"; TableId tableId = TableId.of(DATASET, destinationTableName); WriteChannelConfiguration configuration = WriteChannelConfiguration.newBuilder(tableId) @@ -6625,6 +6630,26 @@ public void testPreserveAsciiControlCharacters() assertTrue(bigquery.delete(tableId)); } + @Test + public void testLoadJobPreserveAsciiControlCharacters() throws InterruptedException { + String destinationTableName = "test_load_job_preserve_ascii_control_characters"; + TableId destinationTable = TableId.of(DATASET, destinationTableName); + + try { + LoadJobConfiguration configuration = + LoadJobConfiguration.newBuilder(destinationTable, "gs://" + BUCKET + "/" + LOAD_FILE_NULL) + .setFormatOptions( + CsvOptions.newBuilder().setPreserveAsciiControlCharacters(true).build()) + .setSchema(SIMPLE_SCHEMA) + .build(); + Job remoteLoadJob = bigquery.create(JobInfo.of(configuration)); + remoteLoadJob = remoteLoadJob.waitFor(); + assertNull(remoteLoadJob.getStatus().getError()); + } finally { + assertTrue(bigquery.delete(destinationTable)); + } + } + @Test public void testReferenceFileSchemaUriForAvro() { try { From c47a062136fea4de91190cafb1f11bac6abbbe3a Mon Sep 17 00:00:00 2001 From: Jin Seop Kim Date: Thu, 10 Jul 2025 11:38:38 -0700 Subject: [PATCH 3280/3441] feat: next release from main branch is 2.53.0 (#3879) --- .github/release-please.yml | 4 ++++ .github/sync-repo-settings.yaml | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/.github/release-please.yml b/.github/release-please.yml index 48231f76e4d8..d722d35a25b9 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -31,6 +31,10 @@ branches: handleGHRelease: true releaseType: java-backport branch: 2.48.x + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 2.52.x bumpMinorPreMajor: true handleGHRelease: true releaseType: java-yoshi diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index c3a3263dd798..26f85cb166a8 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -132,6 +132,21 @@ branchProtectionRules: - cla/google - javadoc - unmanaged_dependency_check + - pattern: 2.52.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (17) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - javadoc + - unmanaged_dependency_check permissionRules: - team: api-bigquery permission: admin From 3a17ec2c7e0e2f2c0960d07a92bc09cac9dc8ab7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 14 Jul 2025 17:03:06 +0200 Subject: [PATCH 3281/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.16.0 (#3884) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5c10cf01973a..d44a03befcc2 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.15.3 + 3.16.0 pom import From ed331354e225d9340c6101b9e783a1b79eae2875 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 14 Jul 2025 12:59:52 -0400 Subject: [PATCH 3282/3441] chore(main): release 2.53.0 (#3866) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 35 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 71577758bde7..9336a4195c88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,31 @@ # Changelog +## [2.53.0](https://github.com/googleapis/java-bigquery/compare/v2.52.0...v2.53.0) (2025-07-14) + + +### Features + +* **bigquery:** Add OpenTelemetry support to BQ rpcs ([#3860](https://github.com/googleapis/java-bigquery/issues/3860)) ([e2d23c1](https://github.com/googleapis/java-bigquery/commit/e2d23c1b15f2c48a4113f82b920f5c29c4b5dfea)) +* **bigquery:** Add support for custom timezones and timestamps ([#3859](https://github.com/googleapis/java-bigquery/issues/3859)) ([e5467c9](https://github.com/googleapis/java-bigquery/commit/e5467c917c63ac066edcbcd902cc2093a39971a3)) +* Next release from main branch is 2.53.0 ([#3879](https://github.com/googleapis/java-bigquery/issues/3879)) ([c47a062](https://github.com/googleapis/java-bigquery/commit/c47a062136fea4de91190cafb1f11bac6abbbe3a)) + + +### Bug Fixes + +* Load jobs preserve ascii control characters configuration ([#3876](https://github.com/googleapis/java-bigquery/issues/3876)) ([5cfdf85](https://github.com/googleapis/java-bigquery/commit/5cfdf855fa0cf206660fd89743cbaabf3afa75a3)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.69.0 ([#3870](https://github.com/googleapis/java-bigquery/issues/3870)) ([a7f1007](https://github.com/googleapis/java-bigquery/commit/a7f1007b5242da2c0adebbb309a908d7d4db5974)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20250615-2.0.0 ([#3872](https://github.com/googleapis/java-bigquery/issues/3872)) ([f081589](https://github.com/googleapis/java-bigquery/commit/f08158955b7fec3c2ced6332b6e4d76cc13f2e90)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.50.1 ([#3878](https://github.com/googleapis/java-bigquery/issues/3878)) ([0e971b8](https://github.com/googleapis/java-bigquery/commit/0e971b8ace013caa31b8a02a21038e94bebae2a5)) + + +### Documentation + +* Update maven format command ([#3877](https://github.com/googleapis/java-bigquery/issues/3877)) ([d2918da](https://github.com/googleapis/java-bigquery/commit/d2918da844cd20ca1602c6fcf9fa1df685f261fc)) + ## [2.52.0](https://github.com/googleapis/java-bigquery/compare/v2.51.0...v2.52.0) (2025-06-25) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8fcf7ca00dc2..8674b7102622 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.52.1-SNAPSHOT + 2.53.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 8af53ddadb30..bc3a9e0c3b84 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.52.1-SNAPSHOT + 2.53.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.52.1-SNAPSHOT + 2.53.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6c7e1aed1bf2..ad20f607e777 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.52.1-SNAPSHOT + 2.53.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.52.1-SNAPSHOT + 2.53.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d44a03befcc2..4bc7652ba919 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.52.1-SNAPSHOT + 2.53.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.52.1-SNAPSHOT + 2.53.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index d9d52314b0c5..7e1bfd314de0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.52.1-SNAPSHOT + 2.53.0 diff --git a/versions.txt b/versions.txt index 5e931b82a508..5245c445bfe8 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.52.0:2.52.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.53.0:2.53.0 \ No newline at end of file From b95f1221e2672e3c824daaed81783a6228d54fe3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 15 Jul 2025 11:19:07 -0400 Subject: [PATCH 3283/3441] chore(main): release 2.53.1-SNAPSHOT (#3886) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8674b7102622..9352cc46f56d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.53.0 + 2.53.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index bc3a9e0c3b84..c41c4c601cc4 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.53.0 + 2.53.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.53.0 + 2.53.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ad20f607e777..b3f4461a0889 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.53.0 + 2.53.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.53.0 + 2.53.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 4bc7652ba919..bfbc88b03d39 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.53.0 + 2.53.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.53.0 + 2.53.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7e1bfd314de0..9900dc82998c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -44,7 +44,7 @@ com.google.cloud google-cloud-bigquery - 2.53.0 + 2.53.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 5245c445bfe8..73c78399ea9e 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.53.0:2.53.0 \ No newline at end of file +google-cloud-bigquery:2.53.0:2.53.1-SNAPSHOT \ No newline at end of file From a2dbafb9bc1c37ffda6e21605e98637a52b42ee3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 15 Jul 2025 17:49:48 +0200 Subject: [PATCH 3284/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquery to v2.53.0 (#3887) --- samples/install-without-bom/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 11e13e43ec14..3faa299811dd 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -45,7 +45,7 @@ com.google.cloud google-cloud-bigquery - 2.52.0 + 2.53.0 From 84207e297eec75bcb4f1cc1b64423d7c2ddd6c30 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 15 Jul 2025 18:54:15 +0200 Subject: [PATCH 3285/3441] deps: update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.70.0 (#3890) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bfbc88b03d39..32f6636a62f3 100644 --- a/pom.xml +++ b/pom.xml @@ -149,7 +149,7 @@ com.google.api.grpc proto-google-cloud-bigqueryconnection-v1 - 2.69.0 + 2.70.0 test From 83278f66bbab19a5ff6131374687c65358dc392a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 17 Jul 2025 18:24:49 +0200 Subject: [PATCH 3286/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigtable to v2.62.0 (#3894) --- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 3faa299811dd..fac67658a604 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -63,7 +63,7 @@ com.google.cloud google-cloud-bigtable - 2.61.0 + 2.62.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9900dc82998c..9f836d7217a5 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigtable - 2.61.0 + 2.62.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 62c7f22ec779..7ec8cdc108b0 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigtable - 2.61.0 + 2.62.0 test From 92371d9d9a4dd64f5291342aff1e4f5aae16da9e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 17 Jul 2025 19:33:10 +0200 Subject: [PATCH 3287/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.64.0 (#3895) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 7ec8cdc108b0..3f293ddd09a8 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.63.0 + 26.64.0 pom import From fce3d8f874f800a0f48e59f80c47ff53e2b7f166 Mon Sep 17 00:00:00 2001 From: Jin Seop Kim Date: Fri, 18 Jul 2025 13:02:17 -0700 Subject: [PATCH 3288/3441] chore: create LTS branch 2.51.x (#3896) --- .github/release-please.yml | 4 ++++ .github/sync-repo-settings.yaml | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/.github/release-please.yml b/.github/release-please.yml index d722d35a25b9..f87ac1eccabe 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -35,6 +35,10 @@ branches: handleGHRelease: true releaseType: java-backport branch: 2.52.x + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 2.51.x bumpMinorPreMajor: true handleGHRelease: true releaseType: java-yoshi diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index 26f85cb166a8..8a7fa3e3026d 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -147,6 +147,21 @@ branchProtectionRules: - cla/google - javadoc - unmanaged_dependency_check + - pattern: 2.51.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (17) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - javadoc + - unmanaged_dependency_check permissionRules: - team: api-bigquery permission: admin From 36d3e82c80a1de7b00d83b0d85c1a5ad65d84640 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 21 Jul 2025 17:55:40 +0200 Subject: [PATCH 3289/3441] chore(deps): update google cloud java monorepo updates (#3889) --- pom.xml | 4 ++-- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 32f6636a62f3..850b288e582f 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.73.0 + 1.74.0 pom import @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.69.0 + 2.70.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index fac67658a604..c492b1182c3d 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -69,7 +69,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.69.0 + 2.70.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9f836d7217a5..496458c708cf 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -67,7 +67,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.69.0 + 2.70.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 3f293ddd09a8..0e32438edd65 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -85,7 +85,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.69.0 + 2.70.0 test From e3d9ed92ca5d9b58b5747960d74f895ed8733ebf Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Wed, 23 Jul 2025 10:46:24 -0700 Subject: [PATCH 3290/3441] feat(bigquery): Add OpenTelemetry Samples (#3899) * feat(bigquery): Add OpenTelemetry Samples * Add dependencies to pom files * fix style * Fix dependencies, clean up sample * Add sample without parent span * Fix copy/paste error * Remove reference to global otel object * Replace custom exporter with logging exporter * Add logging exporter dep to snapshot and without-bom * Generate random strings for ds names * feat(bigquery): Add custom console exporter to samples * fix style, remove comments --- samples/install-without-bom/pom.xml | 31 +++++ samples/snapshot/pom.xml | 42 +++++++ samples/snippets/pom.xml | 37 ++++++ .../bigquery/EnableOpenTelemetryTracing.java | 85 ++++++++++++++ ...bleOpenTelemetryTracingWithParentSpan.java | 105 +++++++++++++++++ .../EnableOpenTelemetryTracingIT.java | 105 +++++++++++++++++ ...eOpenTelemetryTracingWithParentSpanIT.java | 110 ++++++++++++++++++ 7 files changed, 515 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracing.java create mode 100644 samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpan.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingIT.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpanIT.java diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index c492b1182c3d..87a56703380e 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -59,6 +59,37 @@ google-oauth-client-jetty 1.39.0 + + io.opentelemetry + opentelemetry-api + 1.48.0 + + + io.opentelemetry + opentelemetry-context + 1.48.0 + + + io.opentelemetry + opentelemetry-sdk + 1.48.0 + + + io.opentelemetry + opentelemetry-sdk-common + 1.48.0 + + + io.opentelemetry + opentelemetry-sdk-trace + 1.48.0 + + + io.opentelemetry + opentelemetry-exporter-logging + 1.48.0 + + com.google.cloud diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 496458c708cf..f2c96c00db43 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -39,6 +39,18 @@ UTF-8 + + + + io.opentelemetry + opentelemetry-bom + 1.48.0 + pom + import + + + + @@ -82,6 +94,36 @@ 1.4.4 test + + io.opentelemetry + opentelemetry-api + 1.48.0 + + + io.opentelemetry + opentelemetry-context + 1.48.0 + + + io.opentelemetry + opentelemetry-sdk + 1.48.0 + + + io.opentelemetry + opentelemetry-sdk-common + 1.48.0 + + + io.opentelemetry + opentelemetry-sdk-trace + 1.48.0 + + + io.opentelemetry + opentelemetry-exporter-logging + 1.48.0 + diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index 0e32438edd65..2b5dfd4bcd03 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -51,6 +51,13 @@ pom import + + io.opentelemetry + opentelemetry-bom + 1.48.0 + pom + import + @@ -59,6 +66,36 @@ com.google.cloud google-cloud-bigquery + + io.opentelemetry + opentelemetry-api + 1.48.0 + + + io.opentelemetry + opentelemetry-context + 1.48.0 + + + io.opentelemetry + opentelemetry-sdk + 1.48.0 + + + io.opentelemetry + opentelemetry-sdk-common + 1.48.0 + + + io.opentelemetry + opentelemetry-sdk-trace + 1.48.0 + + + io.opentelemetry + opentelemetry-exporter-logging + 1.48.0 + diff --git a/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracing.java b/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracing.java new file mode 100644 index 000000000000..57ec7eb71df1 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracing.java @@ -0,0 +1,85 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_enable_otel_tracing] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetInfo; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.trace.Tracer; +import io.opentelemetry.exporter.logging.LoggingSpanExporter; +import io.opentelemetry.sdk.OpenTelemetrySdk; +import io.opentelemetry.sdk.trace.SdkTracerProvider; +import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; +import io.opentelemetry.sdk.trace.samplers.Sampler; +import java.util.logging.ConsoleHandler; +import java.util.logging.Logger; + +public class EnableOpenTelemetryTracing { + private static final Logger log = Logger.getLogger(EnableOpenTelemetryTracing.class.getName()); + + public static void main(String[] args) { + // Set logging to System.err. + ConsoleHandler ch = new ConsoleHandler(); + log.addHandler(ch); + + // TODO(developer): Replace values before running the sample. + final String tracerName = "Sample Tracer"; + final String datasetId = "sampleDatasetId"; + + // Create TracerProvider that exports to a logger. + SdkTracerProvider tracerProvider = + SdkTracerProvider.builder() + .addSpanProcessor(SimpleSpanProcessor.builder(LoggingSpanExporter.create()).build()) + .setSampler(Sampler.alwaysOn()) + .build(); + + // Create global OpenTelemetry instance using the TracerProvider. + OpenTelemetry otel = OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).build(); + + // Create Tracer instance from the OpenTelemetry object. Tracers are used to create + // Spans. There can be multiple Tracers in an OpenTelemetry instance. + Tracer tracer = otel.getTracer(tracerName); + + enableOpenTelemetry(tracer, datasetId); + } + + public static void enableOpenTelemetry(Tracer tracer, String datasetId) { + // Create BigQuery client to trace. EnableOpenTelemetryTracing and OpenTelemetryTracer must + // be set to enable tracing. + BigQueryOptions otelOptions = + BigQueryOptions.newBuilder() + .setEnableOpenTelemetryTracing(true) + .setOpenTelemetryTracer(tracer) + .build(); + BigQuery bigquery = otelOptions.getService(); + + try { + // Create dataset. + DatasetInfo info = DatasetInfo.newBuilder(datasetId).build(); + Dataset dataset = bigquery.create(info); + } catch (Exception e) { + System.out.println( + String.format("Failed to create dataset: %s: %s", e.toString(), e.getMessage())); + } finally { + bigquery.delete(datasetId); + } + } +} +// [END bigquery_enable_otel_tracing] diff --git a/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpan.java b/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpan.java new file mode 100644 index 000000000000..af69df10ba51 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpan.java @@ -0,0 +1,105 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_enable_otel_tracing_with_parent_span] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetInfo; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.Tracer; +import io.opentelemetry.context.Scope; +import io.opentelemetry.exporter.logging.LoggingSpanExporter; +import io.opentelemetry.sdk.OpenTelemetrySdk; +import io.opentelemetry.sdk.trace.SdkTracerProvider; +import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; +import io.opentelemetry.sdk.trace.samplers.Sampler; +import java.time.LocalDate; +import java.util.logging.ConsoleHandler; +import java.util.logging.Logger; + +public class EnableOpenTelemetryTracingWithParentSpan { + private static final Logger log = + Logger.getLogger(EnableOpenTelemetryTracingWithParentSpan.class.getName()); + + public static void main(String[] args) { + // Set logging to System.err. + ConsoleHandler ch = new ConsoleHandler(); + log.addHandler(ch); + + // TODO(developer): Replace values before running the sample. + final String tracerName = "Sample Tracer"; + final String parentSpanName = "Sample Parent Span"; + final String datasetId = "sampleDatasetId"; + + // Create TracerProvider that exports to a logger. + SdkTracerProvider tracerProvider = + SdkTracerProvider.builder() + .addSpanProcessor(SimpleSpanProcessor.builder(LoggingSpanExporter.create()).build()) + .setSampler(Sampler.alwaysOn()) + .build(); + + // Create OpenTelemetry instance using the TracerProvider. + OpenTelemetry otel = OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).build(); + + // Create Tracer instance from the global OpenTelemetry object. Tracers are used to create + // Spans. There can be multiple Tracers in a global OpenTelemetry instance. + final Tracer tracer = otel.getTracer(tracerName); + enableOpenTelemetryWithParentSpan(tracer, parentSpanName, datasetId); + } + + public static void enableOpenTelemetryWithParentSpan( + Tracer tracer, String parentSpanName, String datasetId) { + // Create BigQuery client to trace. EnableOpenTelemetryTracing and OpenTelemetryTracer must + // be set to enable tracing. + BigQueryOptions otelOptions = + BigQueryOptions.newBuilder() + .setEnableOpenTelemetryTracing(true) + .setOpenTelemetryTracer(tracer) + .build(); + BigQuery bigquery = otelOptions.getService(); + + LocalDate currentDate = LocalDate.now(); + + // Create the root parent Span. setNoParent() ensures that it is a parent Span with a Span ID + // of 0. + Span parentSpan = + tracer + .spanBuilder(parentSpanName) + .setNoParent() + .setAttribute("current_date", currentDate.toString()) + .startSpan(); + + // The Span Context is automatically passed on to any functions called within the scope of the + // try block. parentSpan.makeCurrent() sets parentSpan to be the parent of any Spans created in + // this scope, or the scope of any functions called within this scope. + try (Scope parentScope = parentSpan.makeCurrent()) { + DatasetInfo info = DatasetInfo.newBuilder(datasetId).build(); + Dataset dataset = bigquery.create(info); + } catch (Exception e) { + System.out.println( + String.format("Failed to create dataset: %s: %s", e.toString(), e.getMessage())); + } finally { + // finally block ensures that Spans are cleaned up properly. + parentSpan.end(); + bigquery.delete(datasetId); + } + } +} +// [END bigquery_enable_otel_tracing_with_parent_span] diff --git a/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingIT.java b/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingIT.java new file mode 100644 index 000000000000..0ad56510180d --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingIT.java @@ -0,0 +1,105 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.trace.Tracer; +import io.opentelemetry.sdk.OpenTelemetrySdk; +import io.opentelemetry.sdk.common.CompletableResultCode; +import io.opentelemetry.sdk.trace.SdkTracerProvider; +import io.opentelemetry.sdk.trace.data.SpanData; +import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; +import io.opentelemetry.sdk.trace.samplers.Sampler; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.Collection; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class EnableOpenTelemetryTracingIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static class ConsoleSpanExporter + implements io.opentelemetry.sdk.trace.export.SpanExporter { + @Override + public CompletableResultCode export(Collection collection) { + if (collection.isEmpty()) { + return CompletableResultCode.ofFailure(); + } + for (SpanData data : collection) { + System.out.println(data); + } + return CompletableResultCode.ofSuccess(); + } + + @Override + public CompletableResultCode flush() { + return CompletableResultCode.ofSuccess(); + } + + @Override + public CompletableResultCode shutdown() { + return CompletableResultCode.ofSuccess(); + } + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testEnableOpenTelemetryTracing() { + final String tracerName = "testSampleTracer"; + final String datasetId = RemoteBigQueryHelper.generateDatasetName(); + + SdkTracerProvider tracerProvider = + SdkTracerProvider.builder() + .addSpanProcessor(SimpleSpanProcessor.builder(new ConsoleSpanExporter()).build()) + .setSampler(Sampler.alwaysOn()) + .build(); + + OpenTelemetry otel = OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).build(); + + final Tracer tracer = otel.getTracer(tracerName); + + EnableOpenTelemetryTracing.enableOpenTelemetry(tracer, datasetId); + + assertThat(bout.toString()).contains("com.google.cloud.bigquery.BigQuery.createDataset"); + assertThat(bout.toString()).contains("com.google.cloud.bigquery.BigQuery.deleteDataset"); + } +} diff --git a/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpanIT.java b/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpanIT.java new file mode 100644 index 000000000000..482915008b4f --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpanIT.java @@ -0,0 +1,110 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import io.opentelemetry.api.OpenTelemetry; +import io.opentelemetry.api.trace.Tracer; +import io.opentelemetry.sdk.OpenTelemetrySdk; +import io.opentelemetry.sdk.common.CompletableResultCode; +import io.opentelemetry.sdk.trace.SdkTracerProvider; +import io.opentelemetry.sdk.trace.data.SpanData; +import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; +import io.opentelemetry.sdk.trace.samplers.Sampler; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.time.LocalDate; +import java.util.Collection; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class EnableOpenTelemetryTracingWithParentSpanIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); + private ByteArrayOutputStream bout; + private PrintStream out; + private PrintStream originalPrintStream; + + private static class ConsoleSpanExporter + implements io.opentelemetry.sdk.trace.export.SpanExporter { + @Override + public CompletableResultCode export(Collection collection) { + if (collection.isEmpty()) { + return CompletableResultCode.ofFailure(); + } + for (SpanData data : collection) { + System.out.println(data); + } + return CompletableResultCode.ofSuccess(); + } + + @Override + public CompletableResultCode flush() { + return CompletableResultCode.ofSuccess(); + } + + @Override + public CompletableResultCode shutdown() { + return CompletableResultCode.ofSuccess(); + } + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + } + + @After + public void tearDown() { + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testEnableOpenTelemetryWithParentSpan() { + final String tracerName = "testSampleTracer"; + final String parentSpanName = "testSampleParentSpan"; + final String datasetId = RemoteBigQueryHelper.generateDatasetName(); + final LocalDate currentDate = LocalDate.now(); + + SdkTracerProvider tracerProvider = + SdkTracerProvider.builder() + .addSpanProcessor(SimpleSpanProcessor.builder(new ConsoleSpanExporter()).build()) + .setSampler(Sampler.alwaysOn()) + .build(); + + OpenTelemetry otel = OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).build(); + + final Tracer tracer = otel.getTracer(tracerName); + + EnableOpenTelemetryTracingWithParentSpan.enableOpenTelemetryWithParentSpan( + tracer, parentSpanName, datasetId); + + assertThat(bout.toString()).contains(parentSpanName); + assertThat(bout.toString()) + .contains(String.format("AttributesMap{data={current_date=%s}", currentDate.toString())); + } +} From aa3d10bc7f1f44f2e92ee631da8056aa762b25e3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 25 Jul 2025 03:48:02 +0200 Subject: [PATCH 3291/3441] test(deps): update dependency com.google.cloud:google-cloud-storage to v2.53.3 (#3882) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 850b288e582f..e0e3aa024bdc 100644 --- a/pom.xml +++ b/pom.xml @@ -137,7 +137,7 @@ com.google.cloud google-cloud-storage - 2.53.2 + 2.53.3 test From 4071e4cb2547b236183fd4fbb92c73f074cf2fa0 Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Fri, 25 Jul 2025 09:06:15 -0700 Subject: [PATCH 3292/3441] feat(bigquery): Add otel metrics to request headers (#3900) --- .../bigquery/spi/v2/HttpBigQueryRpc.java | 147 +++++++++++++++++- 1 file changed, 142 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 9d89435ea983..16737dc4b713 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -158,6 +158,9 @@ public Dataset getDatasetSkipExceptionTranslation( if (options.containsKey(Option.DATASET_VIEW)) { bqGetRequest.setDatasetView(options.get(Option.DATASET_VIEW).toString()); } + bqGetRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); Span getDataset = null; if (this.options.isOpenTelemetryTracingEnabled() @@ -205,6 +208,10 @@ public Tuple> listDatasetsSkipExceptionTranslation( .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)); + datasetsListRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span listDatasets = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -256,6 +263,9 @@ public Dataset createSkipExceptionTranslation(Dataset dataset, Map op if (options.containsKey(Option.ACCESS_POLICY_VERSION)) { bqCreateRequest.setAccessPolicyVersion((Integer) options.get(Option.ACCESS_POLICY_VERSION)); } + bqCreateRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); Span createDataset = null; if (this.options.isOpenTelemetryTracingEnabled() @@ -302,6 +312,10 @@ public Table createSkipExceptionTranslation(Table table, Map options) .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)); + bqCreateRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span createTable = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -345,6 +359,10 @@ public Routine createSkipExceptionTranslation(Routine routine, Map op .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)); + bqCreateRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span createRoutine = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -391,6 +409,10 @@ public Job createSkipExceptionTranslation(Job job, Map options) throw .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)); + bqCreateRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span createJob = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -434,6 +456,10 @@ public Job createJobForQuerySkipExceptionTranslation(Job job) throws IOException Bigquery.Jobs.Insert bqCreateRequest = bigquery.jobs().insert(projectId, job).setPrettyPrint(false); + bqCreateRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span createJob = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -481,6 +507,10 @@ public boolean deleteDatasetSkipExceptionTranslation( .setPrettyPrint(false) .setDeleteContents(Option.DELETE_CONTENTS.getBoolean(options)); + bqDeleteRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span deleteDataset = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -528,6 +558,9 @@ public Dataset patchSkipExceptionTranslation(Dataset dataset, Map opt if (options.containsKey(Option.DATASET_UPDATE_MODE)) { bqPatchRequest.setUpdateMode(options.get(Option.DATASET_UPDATE_MODE).toString()); } + bqPatchRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); Span patchDataset = null; if (this.options.isOpenTelemetryTracingEnabled() @@ -576,6 +609,10 @@ public Table patchSkipExceptionTranslation(Table table, Map options) .setFields(Option.FIELDS.getString(options)) .setAutodetectSchema(BigQueryRpc.Option.AUTODETECT_SCHEMA.getBoolean(options)); + bqPatchRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span patchTable = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -625,6 +662,10 @@ public Table getTableSkipExceptionTranslation( .setFields(Option.FIELDS.getString(options)) .setView(getTableMetadataOption(options)); + bqGetRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span getTable = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -676,6 +717,10 @@ public Tuple> listTablesSkipExceptionTranslation( .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)); + tableListRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span listTables = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -740,6 +785,10 @@ public boolean deleteTableSkipExceptionTranslation( Bigquery.Tables.Delete bqDeleteRequest = bigquery.tables().delete(projectId, datasetId, tableId); + bqDeleteRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span deleteTable = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -783,6 +832,10 @@ public Model patchSkipExceptionTranslation(Model model, Map options) .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)); + bqPatchRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span patchModel = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -832,6 +885,10 @@ public Model getModelSkipExceptionTranslation( .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)); + bqGetRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span getModel = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -877,6 +934,10 @@ public Tuple> listModelsSkipExceptionTranslation( .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)); + modelListRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span listModels = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -923,6 +984,10 @@ public boolean deleteModelSkipExceptionTranslation( Bigquery.Models.Delete bqDeleteRequest = bigquery.models().delete(projectId, datasetId, modelId); + bqDeleteRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span deleteModels = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -968,6 +1033,10 @@ public Routine updateSkipExceptionTranslation(Routine routine, Map op .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)); + bqUpdateRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span updateRoutine = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1017,6 +1086,10 @@ public Routine getRoutineSkipExceptionTranslation( .setPrettyPrint(false) .setFields(Option.FIELDS.getString(options)); + bqGetRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span getRoutine = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1062,6 +1135,10 @@ public Tuple> listRoutinesSkipExceptionTranslation( .setMaxResults(Option.MAX_RESULTS.getLong(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)); + routineListRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span listRoutines = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1109,6 +1186,10 @@ public boolean deleteRoutineSkipExceptionTranslation( Bigquery.Routines.Delete bqDeleteRequest = bigquery.routines().delete(projectId, datasetId, routineId); + bqDeleteRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span deleteRoutine = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1150,6 +1231,10 @@ public TableDataInsertAllResponse insertAllSkipExceptionTranslation( .insertAll(projectId, datasetId, tableId, request) .setPrettyPrint(false); + insertAllRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span insertAll = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1197,6 +1282,10 @@ public TableDataList listTableDataSkipExceptionTranslation( ? BigInteger.valueOf(Option.START_INDEX.getLong(options)) : null); + bqListRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span listTableData = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1251,6 +1340,10 @@ public TableDataList listTableDataWithRowLimitSkipExceptionTranslation( .setMaxResults(Long.valueOf(maxResultPerPage)) .setPageToken(pageToken); + bqListRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span listTableData = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1297,6 +1390,10 @@ public Job getJobSkipExceptionTranslation( .setLocation(location) .setFields(Option.FIELDS.getString(options)); + bqGetRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span getJob = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1340,6 +1437,10 @@ public Job getQueryJobSkipExceptionTranslation(String projectId, String jobId, S Bigquery.Jobs.Get bqGetRequest = bigquery.jobs().get(projectId, jobId).setPrettyPrint(false).setLocation(location); + bqGetRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span getJob = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1375,7 +1476,7 @@ public Tuple> listJobs(String projectId, Map op public Tuple> listJobsSkipExceptionTranslation( String projectId, Map options) throws IOException { validateRPC(); - Bigquery.Jobs.List request = + Bigquery.Jobs.List listJobsRequest = bigquery .jobs() .list(projectId) @@ -1388,11 +1489,16 @@ public Tuple> listJobsSkipExceptionTranslation( .setProjection(DEFAULT_PROJECTION) .setParentJobId(Option.PARENT_JOB_ID.getString(options)); if (Option.MIN_CREATION_TIME.getLong(options) != null) { - request.setMinCreationTime(BigInteger.valueOf(Option.MIN_CREATION_TIME.getLong(options))); + listJobsRequest.setMinCreationTime( + BigInteger.valueOf(Option.MIN_CREATION_TIME.getLong(options))); } if (Option.MAX_CREATION_TIME.getLong(options) != null) { - request.setMaxCreationTime(BigInteger.valueOf(Option.MAX_CREATION_TIME.getLong(options))); + listJobsRequest.setMaxCreationTime( + BigInteger.valueOf(Option.MAX_CREATION_TIME.getLong(options))); } + listJobsRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); Span listJobs = null; if (this.options.isOpenTelemetryTracingEnabled() @@ -1405,11 +1511,11 @@ public Tuple> listJobsSkipExceptionTranslation( .setAttribute("bq.rpc.service", "JobService") .setAttribute("bq.rpc.method", "ListJobs") .setAttribute("bq.rpc.system", "http") - .setAttribute("bq.rpc.page_token", request.getPageToken()) + .setAttribute("bq.rpc.page_token", listJobsRequest.getPageToken()) .setAllAttributes(otelAttributesFromOptions(options)) .startSpan(); } - JobList jobsList = request.execute(); + JobList jobsList = listJobsRequest.execute(); if (listJobs != null) { listJobs.setAttribute("bq.rpc.next_page_token", jobsList.getNextPageToken()); listJobs.end(); @@ -1463,6 +1569,10 @@ public boolean cancelSkipExceptionTranslation(String projectId, String jobId, St Bigquery.Jobs.Cancel bqCancelRequest = bigquery.jobs().cancel(projectId, jobId).setLocation(location).setPrettyPrint(false); + bqCancelRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span cancelJob = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1499,6 +1609,10 @@ public boolean deleteJobSkipExceptionTranslation( Bigquery.Jobs.Delete bqDeleteRequest = bigquery.jobs().delete(projectId, jobName).setLocation(location).setPrettyPrint(false); + bqDeleteRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span deleteJob = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1547,6 +1661,10 @@ public GetQueryResultsResponse getQueryResultsSkipExceptionTranslation( : null) .setTimeoutMs(Option.TIMEOUT.getLong(options)); + queryRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span getQueryResults = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1595,6 +1713,10 @@ public GetQueryResultsResponse getQueryResultsWithRowLimitSkipExceptionTranslati .setMaxResults(Long.valueOf(maxResultPerPage)) .setTimeoutMs(timeoutMs); + queryRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); + Span getQueryResults = null; if (this.options.isOpenTelemetryTracingEnabled() && this.options.getOpenTelemetryTracer() != null) { @@ -1631,6 +1753,9 @@ public QueryResponse queryRpcSkipExceptionTranslation(String projectId, QueryReq throws IOException { validateRPC(); Bigquery.Jobs.Query queryRequest = bigquery.jobs().query(projectId, content); + queryRequest + .getRequestHeaders() + .set("x-goog-otel-enabled", this.options.isOpenTelemetryTracingEnabled()); Span getQueryResults = null; if (this.options.isOpenTelemetryTracingEnabled() @@ -1765,6 +1890,10 @@ public Policy getIamPolicySkipExceptionTranslation(String resourceId, Map From e6453bf08cb822e820ffeb9ee3bd43cfcf2d4d15 Mon Sep 17 00:00:00 2001 From: Phong Chuong <147636638+PhongChuong@users.noreply.github.com> Date: Wed, 30 Jul 2025 23:03:23 -0400 Subject: [PATCH 3298/3441] =?UTF-8?q?chore(samples):=20update=20sample=20o?= =?UTF-8?q?pen=20telemetry=20dep=20to=20reduce=20#=20of=20renov=E2=80=A6?= =?UTF-8?q?=20(#3911)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(samples): update sample open telemetry dep to reduce # of renovate-bot PRs * fix extra dep --- samples/install-without-bom/pom.xml | 13 +++++++------ samples/snapshot/pom.xml | 6 ------ samples/snippets/pom.xml | 6 ------ 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 4bc7f7a2b41f..7cd683afd536 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -37,6 +37,7 @@ 1.8 1.8 UTF-8 + 1.52.0 @@ -62,32 +63,32 @@ io.opentelemetry opentelemetry-api - 1.52.0 + ${opentelemetry.version} io.opentelemetry opentelemetry-context - 1.52.0 + ${opentelemetry.version} io.opentelemetry opentelemetry-sdk - 1.48.0 + ${opentelemetry.version} io.opentelemetry opentelemetry-sdk-common - 1.48.0 + ${opentelemetry.version} io.opentelemetry opentelemetry-sdk-trace - 1.48.0 + ${opentelemetry.version} io.opentelemetry opentelemetry-exporter-logging - 1.52.0 + ${opentelemetry.version} diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 7e2a08cab2b5..f94d4c4c1339 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -97,32 +97,26 @@ io.opentelemetry opentelemetry-api - 1.52.0 io.opentelemetry opentelemetry-context - 1.52.0 io.opentelemetry opentelemetry-sdk - 1.48.0 io.opentelemetry opentelemetry-sdk-common - 1.48.0 io.opentelemetry opentelemetry-sdk-trace - 1.48.0 io.opentelemetry opentelemetry-exporter-logging - 1.52.0 diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index da5d031b5a02..d6f779c24abd 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -69,32 +69,26 @@ io.opentelemetry opentelemetry-api - 1.52.0 io.opentelemetry opentelemetry-context - 1.52.0 io.opentelemetry opentelemetry-sdk - 1.48.0 io.opentelemetry opentelemetry-sdk-common - 1.48.0 io.opentelemetry opentelemetry-sdk-trace - 1.48.0 io.opentelemetry opentelemetry-exporter-logging - 1.52.0 From 82056237f194a6c99ec4fb3a4315023efdedff1b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 31 Jul 2025 16:14:46 +0200 Subject: [PATCH 3299/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.50.2 (#3901) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 1795d3b24a59..6d5c25a0c109 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.50.1 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.50.2 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index 13d12ce348b6..bfe47cf7d56c 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.50.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.50.2" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index 4696d04ef053..603c54174aac 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.50.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.50.2" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index 26d39a747e87..6b35d89de06d 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.50.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.50.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index 13d12ce348b6..bfe47cf7d56c 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.50.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.50.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index 4696d04ef053..603c54174aac 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.50.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.50.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index 26d39a747e87..6b35d89de06d 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.50.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.50.2" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index c41c4c601cc4..90111de1a344 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.50.1 + 3.50.2 diff --git a/pom.xml b/pom.xml index 79a2629d0161..7304158defe7 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.50.1 + 3.50.2 From bb6f6dcb90b1ddf72e630c4dc64737cf2c2ebd2e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 31 Jul 2025 17:32:25 +0200 Subject: [PATCH 3300/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.16.1 (#3912) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7304158defe7..e0d9c5550918 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.16.0 + 3.16.1 pom import From 548f5b6bbb71f949ad4d1560ab28e72708e31919 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 31 Jul 2025 17:28:28 -0400 Subject: [PATCH 3301/3441] chore(main): release 2.54.0 (#3892) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 19 +++++++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 28 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9336a4195c88..147b9c5893fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Changelog +## [2.54.0](https://github.com/googleapis/java-bigquery/compare/v2.53.0...v2.54.0) (2025-07-31) + + +### Features + +* **bigquery:** Add OpenTelemetry Samples ([#3899](https://github.com/googleapis/java-bigquery/issues/3899)) ([e3d9ed9](https://github.com/googleapis/java-bigquery/commit/e3d9ed92ca5d9b58b5747960d74f895ed8733ebf)) +* **bigquery:** Add otel metrics to request headers ([#3900](https://github.com/googleapis/java-bigquery/issues/3900)) ([4071e4c](https://github.com/googleapis/java-bigquery/commit/4071e4cb2547b236183fd4fbb92c73f074cf2fa0)) + + +### Dependencies + +* Update dependency com.google.api.grpc:proto-google-cloud-bigqueryconnection-v1 to v2.70.0 ([#3890](https://github.com/googleapis/java-bigquery/issues/3890)) ([84207e2](https://github.com/googleapis/java-bigquery/commit/84207e297eec75bcb4f1cc1b64423d7c2ddd6c30)) +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20250706-2.0.0 ([#3910](https://github.com/googleapis/java-bigquery/issues/3910)) ([ae5c971](https://github.com/googleapis/java-bigquery/commit/ae5c97146c7076e90c000fd98b797ec8e08a9cd8)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.50.2 ([#3901](https://github.com/googleapis/java-bigquery/issues/3901)) ([8205623](https://github.com/googleapis/java-bigquery/commit/82056237f194a6c99ec4fb3a4315023efdedff1b)) +* Update dependency io.opentelemetry:opentelemetry-api to v1.52.0 ([#3902](https://github.com/googleapis/java-bigquery/issues/3902)) ([772407b](https://github.com/googleapis/java-bigquery/commit/772407b12f4da005f79eafc944d4c53f0eec5c27)) +* Update dependency io.opentelemetry:opentelemetry-bom to v1.52.0 ([#3903](https://github.com/googleapis/java-bigquery/issues/3903)) ([509a6fc](https://github.com/googleapis/java-bigquery/commit/509a6fc0bb7e7a101bf0d4334a3ff1adde2cab09)) +* Update dependency io.opentelemetry:opentelemetry-context to v1.52.0 ([#3904](https://github.com/googleapis/java-bigquery/issues/3904)) ([96c1bae](https://github.com/googleapis/java-bigquery/commit/96c1bae0fcdfdfc2dbb25dcae5007c5d02111a8c)) +* Update dependency io.opentelemetry:opentelemetry-exporter-logging to v1.52.0 ([#3905](https://github.com/googleapis/java-bigquery/issues/3905)) ([28ee4c9](https://github.com/googleapis/java-bigquery/commit/28ee4c941b99b1fe3803aefbe7a8ae57100d76cb)) + ## [2.53.0](https://github.com/googleapis/java-bigquery/compare/v2.52.0...v2.53.0) (2025-07-14) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9352cc46f56d..5f875493df7c 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.53.1-SNAPSHOT + 2.54.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 90111de1a344..cefddd199b83 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.53.1-SNAPSHOT + 2.54.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.53.1-SNAPSHOT + 2.54.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index b3f4461a0889..058a06caa4c1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.53.1-SNAPSHOT + 2.54.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.53.1-SNAPSHOT + 2.54.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index e0d9c5550918..534e91a49ea3 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.53.1-SNAPSHOT + 2.54.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.53.1-SNAPSHOT + 2.54.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f94d4c4c1339..1860907149b7 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.53.1-SNAPSHOT + 2.54.0 diff --git a/versions.txt b/versions.txt index 73c78399ea9e..f0fee808c1ba 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.53.0:2.53.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.54.0:2.54.0 \ No newline at end of file From 3f61243a18dedd7884e46430c6f3f6815e921353 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 4 Aug 2025 04:36:10 -0400 Subject: [PATCH 3302/3441] chore(main): release 2.54.1-SNAPSHOT (#3919) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5f875493df7c..9be2fa48f057 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.54.0 + 2.54.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index cefddd199b83..c1fd66876c1a 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.54.0 + 2.54.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.54.0 + 2.54.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 058a06caa4c1..6e226056ba77 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.54.0 + 2.54.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.54.0 + 2.54.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 534e91a49ea3..06865dbbcc1d 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.54.0 + 2.54.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.54.0 + 2.54.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1860907149b7..ba8100b358b4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.54.0 + 2.54.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index f0fee808c1ba..38c5d02e9e6f 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.54.0:2.54.0 \ No newline at end of file +google-cloud-bigquery:2.54.0:2.54.1-SNAPSHOT \ No newline at end of file From ecfabc4b70922d0e697699ec5508a7328cadacf8 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Tue, 12 Aug 2025 11:00:17 -0400 Subject: [PATCH 3303/3441] fix: adapt graalvm config to arrow update (#3928) * fix: adapt graalvm config to arrow update Fixes https://github.com/googleapis/java-bigquery/issues/3926 * fix: use right branch * chore: include pom changes from debug branch, add more configs --- google-cloud-bigquery/pom.xml | 33 +-------- .../google-cloud-bigquery/reflect-config.json | 67 ++++++++++++++++++- .../resource-config.json | 26 ++++++- 3 files changed, 90 insertions(+), 36 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6e226056ba77..37acecdeb192 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -15,7 +15,6 @@ google-cloud-bigquery - 4.1.119.Final @@ -117,37 +116,6 @@ org.apache.arrow arrow-memory-netty - - - - io.netty - netty-common - - - io.netty - netty-buffer - - - runtime - - - - io.netty - netty-common - ${netty.version} - runtime - - - io.netty - netty-buffer - ${netty.version} - runtime @@ -290,6 +258,7 @@ true -J--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED + -J--add-opens=java.base/java.nio=java-base,ALL-UNNAMED diff --git a/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/reflect-config.json b/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/reflect-config.json index 8f6d928da40d..921440df69f8 100644 --- a/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/reflect-config.json +++ b/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/reflect-config.json @@ -29,9 +29,62 @@ "name":"java.nio.DirectByteBuffer", "methods":[{"name":"","parameterTypes":["long","int"] }] }, + + { + "name":"org.apache.arrow.memory.BaseAllocator", + "allDeclaredFields":true, + "queryAllDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true + }, + { + "name":"org.apache.arrow.memory.BaseAllocator$Config", + "allDeclaredFields":true, + "queryAllDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true + }, + { + "name":"org.apache.arrow.memory.DefaultAllocationManagerOption", + "allDeclaredFields":true, + "queryAllDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true + }, + { + "name":"org.apache.arrow.memory.netty.NettyAllocationManager$1", + "allDeclaredFields":true, + "queryAllDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true + }, + { + "name":"org.apache.arrow.memory.netty.DefaultAllocationManagerFactory", + "allDeclaredFields":true, + "queryAllDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true + }, + { + "name":"org.apache.arrow.memory.DefaultAllocationManagerFactory", + "allDeclaredFields":true, + "queryAllDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true + }, + { + "name":"org.apache.arrow.memory.RootAllocator", + "allDeclaredFields":true, + "queryAllDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true + }, { "name":"org.apache.arrow.memory.DefaultAllocationManagerFactory", - "fields":[{"name":"FACTORY"}] + "allDeclaredFields":true, + "queryAllDeclaredFields":true, + "queryAllDeclaredMethods":true, + "queryAllDeclaredConstructors":true }, { "name":"org.apache.arrow.vector.types.pojo.ArrowType", @@ -50,6 +103,18 @@ "allDeclaredFields":true, "queryAllDeclaredMethods":true }, + { + "name": "org.apache.arrow.vector.types.pojo.DictionaryEncoding", + "allDeclaredFields": true + }, + { + "name": "org.apache.arrow.vector.types.pojo.Field", + "allDeclaredFields": true + }, + { + "name": "org.apache.arrow.vector.types.pojo.Schema", + "allDeclaredFields": true + }, { "name":"io.netty.buffer.AbstractReferenceCountedByteBuf", "fields":[{"name":"refCnt"}] diff --git a/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/resource-config.json b/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/resource-config.json index dfdcc58c44ca..c4710244e20b 100644 --- a/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/resource-config.json +++ b/google-cloud-bigquery/src/main/resources/META-INF/native-image/com.google.cloud/google-cloud-bigquery/resource-config.json @@ -1,6 +1,26 @@ { "resources":{ - "includes":[{ - "pattern":"\\Qorg/apache/arrow/memory/DefaultAllocationManagerFactory.class\\E" - }]} + "includes":[ + { + "pattern":"\\Qorg/apache/arrow/memory/DefaultAllocationManagerFactory.class\\E" + }, + { + "pattern":"\\Qorg/apache/arrow/memory/netty/DefaultAllocationManagerFactory.class\\E" + }, + { + "pattern":"\\Qorg/apache/arrow/memory/unsafe/DefaultAllocationManagerFactory.class\\E" + } + ] + }, + "globs":[ + { + "glob": "org/apache/arrow/memory/DefaultAllocationManagerFactory.class" + }, + { + "glob": "org/apache/arrow/memory/netty/DefaultAllocationManagerFactory.class" + }, + { + "glob": "org/apache/arrow/memory/unsafe/DefaultAllocationManagerFactory.class" + } + ] } \ No newline at end of file From cb66be596d1bfd0a5aed75f5a0e36d80269c7f6a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 12 Aug 2025 21:54:08 +0200 Subject: [PATCH 3304/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.51.0 (#3924) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 6d5c25a0c109..ffcf6b858c3f 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.50.2 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.51.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index bfe47cf7d56c..cba960973a6e 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.50.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.51.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index 603c54174aac..7ab09090f269 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.50.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.51.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index 6b35d89de06d..b8251a3f459d 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.50.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.51.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index bfe47cf7d56c..cba960973a6e 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.50.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.51.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index 603c54174aac..7ab09090f269 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.50.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.51.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index 6b35d89de06d..b8251a3f459d 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.50.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.51.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index c1fd66876c1a..f18650f6cfe8 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.50.2 + 3.51.0 diff --git a/pom.xml b/pom.xml index 06865dbbcc1d..bf4f955fd401 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.50.2 + 3.51.0 From a3bd7e62bd305a7f4a76991e9ddd9a1a6847ca83 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 13 Aug 2025 15:55:49 +0200 Subject: [PATCH 3305/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.16.2 (#3927) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bf4f955fd401..d8d122680f83 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.16.1 + 3.16.2 pom import From 3fc065905a84c360ded2888ff5878e40a6c5c69c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 13 Aug 2025 11:51:46 -0400 Subject: [PATCH 3306/3441] chore(main): release 2.54.1 (#3929) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 12 ++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 21 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 147b9c5893fc..c0dde06f8566 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [2.54.1](https://github.com/googleapis/java-bigquery/compare/v2.54.0...v2.54.1) (2025-08-13) + + +### Bug Fixes + +* Adapt graalvm config to arrow update ([#3928](https://github.com/googleapis/java-bigquery/issues/3928)) ([ecfabc4](https://github.com/googleapis/java-bigquery/commit/ecfabc4b70922d0e697699ec5508a7328cadacf8)) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.51.0 ([#3924](https://github.com/googleapis/java-bigquery/issues/3924)) ([cb66be5](https://github.com/googleapis/java-bigquery/commit/cb66be596d1bfd0a5aed75f5a0e36d80269c7f6a)) + ## [2.54.0](https://github.com/googleapis/java-bigquery/compare/v2.53.0...v2.54.0) (2025-07-31) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9be2fa48f057..fa01ad010c0b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.54.1-SNAPSHOT + 2.54.1 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index f18650f6cfe8..069d6dabd7b2 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.54.1-SNAPSHOT + 2.54.1 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.54.1-SNAPSHOT + 2.54.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 37acecdeb192..465840c78822 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.54.1-SNAPSHOT + 2.54.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.54.1-SNAPSHOT + 2.54.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d8d122680f83..254aaa6596ca 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.54.1-SNAPSHOT + 2.54.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.54.1-SNAPSHOT + 2.54.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index ba8100b358b4..25cac9308547 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.54.1-SNAPSHOT + 2.54.1 diff --git a/versions.txt b/versions.txt index 38c5d02e9e6f..de9cc8f3153d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.54.0:2.54.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.54.1:2.54.1 \ No newline at end of file From 794bf83e84efc0712638bebde5158777b9c89397 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 20 Aug 2025 19:21:22 +0200 Subject: [PATCH 3307/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.52.0 (#3939) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index ffcf6b858c3f..47fc0ec7124f 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.51.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.52.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index cba960973a6e..c6dbbdc5223a 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.51.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index 7ab09090f269..6c66c8d835be 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.51.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index b8251a3f459d..2a4f45eaefd1 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.51.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index cba960973a6e..c6dbbdc5223a 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.51.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index 7ab09090f269..6c66c8d835be 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.51.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index b8251a3f459d..2a4f45eaefd1 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.51.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 069d6dabd7b2..52ae5ac82af7 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.51.0 + 3.52.0 diff --git a/pom.xml b/pom.xml index 254aaa6596ca..aa95f5a0ffe0 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.51.0 + 3.52.0 From 672148a9e957ca48cd2c58f3468e1e037a7cf3f3 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 13:21:37 -0400 Subject: [PATCH 3308/3441] chore(main): release 2.54.2-SNAPSHOT (#3936) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index fa01ad010c0b..30f7bc5d67be 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.54.1 + 2.54.2-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 52ae5ac82af7..484f252ab221 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.54.1 + 2.54.2-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.54.1 + 2.54.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 465840c78822..4d4b915f2715 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.54.1 + 2.54.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.54.1 + 2.54.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index aa95f5a0ffe0..df3dcd5974ce 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.54.1 + 2.54.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.54.1 + 2.54.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 25cac9308547..2bcb0ec49fa3 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.54.1 + 2.54.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index de9cc8f3153d..9853ed257002 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.54.1:2.54.1 \ No newline at end of file +google-cloud-bigquery:2.54.1:2.54.2-SNAPSHOT \ No newline at end of file From 0e3753720e5143124c03e7980f2dbd93fd83a712 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Mon, 25 Aug 2025 15:43:42 +0200 Subject: [PATCH 3309/3441] chore(deps): update google cloud java monorepo updates (#3915) --- pom.xml | 4 ++-- samples/install-without-bom/pom.xml | 2 +- samples/snapshot/pom.xml | 2 +- samples/snippets/pom.xml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index df3dcd5974ce..dfeedd974c56 100644 --- a/pom.xml +++ b/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-datacatalog-bom - 1.74.0 + 1.78.0 pom import @@ -143,7 +143,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.70.0 + 2.74.0 test diff --git a/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml index 7cd683afd536..cfcf9c503fe8 100644 --- a/samples/install-without-bom/pom.xml +++ b/samples/install-without-bom/pom.xml @@ -101,7 +101,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.70.0 + 2.74.0 test diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2bcb0ec49fa3..c6fa4062c07f 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -79,7 +79,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.70.0 + 2.74.0 test diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d6f779c24abd..d6cbcca5d1d7 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -116,7 +116,7 @@ com.google.cloud google-cloud-bigqueryconnection - 2.70.0 + 2.74.0 test From 1a95417f769866d74ece50cbf3ac073f486d3fec Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 26 Aug 2025 22:29:03 +0200 Subject: [PATCH 3310/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.16.3 (#3943) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dfeedd974c56..d7ceac18a381 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.16.2 + 3.16.3 pom import From 7fce4274490de07b440d851c94c6188b30a6dc10 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 26 Aug 2025 22:10:23 -0400 Subject: [PATCH 3311/3441] chore(main): release 2.54.2 (#3940) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0dde06f8566..27dae85f7cca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.54.2](https://github.com/googleapis/java-bigquery/compare/v2.54.1...v2.54.2) (2025-08-26) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.52.0 ([#3939](https://github.com/googleapis/java-bigquery/issues/3939)) ([794bf83](https://github.com/googleapis/java-bigquery/commit/794bf83e84efc0712638bebde5158777b9c89397)) + ## [2.54.1](https://github.com/googleapis/java-bigquery/compare/v2.54.0...v2.54.1) (2025-08-13) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 30f7bc5d67be..ac28abddf6eb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.54.2-SNAPSHOT + 2.54.2 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 484f252ab221..cabb84cb3f9b 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.54.2-SNAPSHOT + 2.54.2 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.54.2-SNAPSHOT + 2.54.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4d4b915f2715..db8db1ad7135 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.54.2-SNAPSHOT + 2.54.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.54.2-SNAPSHOT + 2.54.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index d7ceac18a381..06fa45550bdf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.54.2-SNAPSHOT + 2.54.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.54.2-SNAPSHOT + 2.54.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c6fa4062c07f..2290d681e5f4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.54.2-SNAPSHOT + 2.54.2 diff --git a/versions.txt b/versions.txt index 9853ed257002..e5014dcc5ce7 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.54.1:2.54.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.54.2:2.54.2 \ No newline at end of file From de0914ddbccf988294d50faf56a515e58ab3505d Mon Sep 17 00:00:00 2001 From: Liam Huffman <44932470+whuffman36@users.noreply.github.com> Date: Fri, 29 Aug 2025 09:40:30 -0700 Subject: [PATCH 3312/3441] feat(bigquery): Add custom ExceptionHandler to BigQueryOptions (#3937) * feat(bigquery): Add custom ExceptionHandler to BigQueryOptions * add default project id to tests * Add dummy project id to tests * Remove defaultInstance() from test * add option to specify retry algo instead of just abortOn/retryOn * fix formatting * remove custom exception handler from bq options --- .../cloud/bigquery/BigQueryBaseService.java | 2 +- .../google/cloud/bigquery/BigQueryImpl.java | 62 ++++++------- .../cloud/bigquery/BigQueryOptions.java | 17 ++++ .../google/cloud/bigquery/ConnectionImpl.java | 12 +-- .../cloud/bigquery/TableDataWriteChannel.java | 4 +- .../cloud/bigquery/BigQueryExceptionTest.java | 91 +++++++++++++++++++ 6 files changed, 148 insertions(+), 40 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java index 976015873517..bdcefb3d969e 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java @@ -26,7 +26,7 @@ protected BigQueryBaseService(ServiceOptions options) { super(options); } - public static final ExceptionHandler BIGQUERY_EXCEPTION_HANDLER = + public static final ExceptionHandler DEFAULT_BIGQUERY_EXCEPTION_HANDLER = ExceptionHandler.newBuilder() .abortOn(RuntimeException.class) .retryOn(java.net.ConnectException.class) // retry on Connection Exception diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index a32a600c3f74..088d15c09cd7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -293,7 +293,7 @@ public com.google.api.services.bigquery.model.Dataset call() throws IOException } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -340,7 +340,7 @@ public com.google.api.services.bigquery.model.Table call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -396,7 +396,7 @@ public com.google.api.services.bigquery.model.Routine call() throws IOException } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -490,7 +490,7 @@ public com.google.api.services.bigquery.model.Job call() throws IOException { ? RetryOption.mergeToSettings( getOptions().getRetrySettings(), getRetryOptions(optionsMap)) : getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), getBigQueryRetryConfig(optionsMap) != null ? getBigQueryRetryConfig(optionsMap) @@ -586,7 +586,7 @@ public com.google.api.services.bigquery.model.Dataset call() throws IOException } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -652,7 +652,7 @@ private static Page listDatasets( } }, serviceOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + serviceOptions.getResultRetryAlgorithm(), serviceOptions.getClock(), EMPTY_RETRY_CONFIG, serviceOptions.isOpenTelemetryTracingEnabled(), @@ -704,7 +704,7 @@ public Boolean call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -755,7 +755,7 @@ public Boolean call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -801,7 +801,7 @@ public Boolean call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -847,7 +847,7 @@ public Boolean call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -891,7 +891,7 @@ public Boolean call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -932,7 +932,7 @@ public com.google.api.services.bigquery.model.Dataset call() throws IOException } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -979,7 +979,7 @@ public com.google.api.services.bigquery.model.Table call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -1025,7 +1025,7 @@ public com.google.api.services.bigquery.model.Model call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -1071,7 +1071,7 @@ public com.google.api.services.bigquery.model.Routine call() throws IOException } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -1125,7 +1125,7 @@ public com.google.api.services.bigquery.model.Table call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -1184,7 +1184,7 @@ public com.google.api.services.bigquery.model.Model call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -1243,7 +1243,7 @@ public com.google.api.services.bigquery.model.Routine call() throws IOException } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -1461,7 +1461,7 @@ public Tuple> cal } }, serviceOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + serviceOptions.getResultRetryAlgorithm(), serviceOptions.getClock(), EMPTY_RETRY_CONFIG, serviceOptions.isOpenTelemetryTracingEnabled(), @@ -1502,7 +1502,7 @@ public Tuple> cal } }, serviceOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + serviceOptions.getResultRetryAlgorithm(), serviceOptions.getClock(), EMPTY_RETRY_CONFIG, serviceOptions.isOpenTelemetryTracingEnabled(), @@ -1543,7 +1543,7 @@ private static Page listRoutines( } }, serviceOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + serviceOptions.getResultRetryAlgorithm(), serviceOptions.getClock(), EMPTY_RETRY_CONFIG, serviceOptions.isOpenTelemetryTracingEnabled(), @@ -1625,7 +1625,7 @@ public TableDataInsertAllResponse call() throws Exception { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -1719,7 +1719,7 @@ public TableDataList call() throws IOException { } }, serviceOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + serviceOptions.getResultRetryAlgorithm(), serviceOptions.getClock(), EMPTY_RETRY_CONFIG, serviceOptions.isOpenTelemetryTracingEnabled(), @@ -1793,7 +1793,7 @@ public com.google.api.services.bigquery.model.Job call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -1850,7 +1850,7 @@ public Tuple> call( } }, serviceOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + serviceOptions.getResultRetryAlgorithm(), serviceOptions.getClock(), EMPTY_RETRY_CONFIG, serviceOptions.isOpenTelemetryTracingEnabled(), @@ -1905,7 +1905,7 @@ public Boolean call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -1992,7 +1992,7 @@ public com.google.api.services.bigquery.model.QueryResponse call() } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), DEFAULT_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -2169,7 +2169,7 @@ public GetQueryResultsResponse call() throws IOException { } }, serviceOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + serviceOptions.getResultRetryAlgorithm(), serviceOptions.getClock(), DEFAULT_RETRY_CONFIG, serviceOptions.isOpenTelemetryTracingEnabled(), @@ -2240,7 +2240,7 @@ public com.google.api.services.bigquery.model.Policy call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -2286,7 +2286,7 @@ public com.google.api.services.bigquery.model.Policy call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -2334,7 +2334,7 @@ public com.google.api.services.bigquery.model.TestIamPermissionsResponse call() } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index 36eeb208699c..7adb58d3a2b7 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -17,6 +17,7 @@ package com.google.cloud.bigquery; import com.google.api.core.BetaApi; +import com.google.api.gax.retrying.ResultRetryAlgorithm; import com.google.cloud.ServiceDefaults; import com.google.cloud.ServiceOptions; import com.google.cloud.ServiceRpc; @@ -43,6 +44,7 @@ public class BigQueryOptions extends ServiceOptions { private JobCreationMode defaultJobCreationMode = JobCreationMode.JOB_CREATION_MODE_UNSPECIFIED; private boolean enableOpenTelemetryTracing; private Tracer openTelemetryTracer; + private ResultRetryAlgorithm resultRetryAlgorithm; public static class DefaultBigQueryFactory implements BigQueryFactory { @@ -70,6 +72,7 @@ public static class Builder extends ServiceOptions.Builder resultRetryAlgorithm; private Builder() {} @@ -118,6 +121,11 @@ public Builder setOpenTelemetryTracer(Tracer tracer) { return this; } + public Builder setResultRetryAlgorithm(ResultRetryAlgorithm resultRetryAlgorithm) { + this.resultRetryAlgorithm = resultRetryAlgorithm; + return this; + } + @Override public BigQueryOptions build() { return new BigQueryOptions(this); @@ -130,6 +138,11 @@ private BigQueryOptions(Builder builder) { this.useInt64Timestamps = builder.useInt64Timestamps; this.enableOpenTelemetryTracing = builder.enableOpenTelemetryTracing; this.openTelemetryTracer = builder.openTelemetryTracer; + if (builder.resultRetryAlgorithm != null) { + this.resultRetryAlgorithm = builder.resultRetryAlgorithm; + } else { + this.resultRetryAlgorithm = BigQueryBaseService.DEFAULT_BIGQUERY_EXCEPTION_HANDLER; + } } private static class BigQueryDefaults implements ServiceDefaults { @@ -221,6 +234,10 @@ public Tracer getOpenTelemetryTracer() { return openTelemetryTracer; } + public ResultRetryAlgorithm getResultRetryAlgorithm() { + return resultRetryAlgorithm; + } + @SuppressWarnings("unchecked") @Override public Builder toBuilder() { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index b12ad85564a7..c3465c33a831 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -474,7 +474,7 @@ private BigQueryResult queryRpc( .getBigQueryRpcV2() .queryRpcSkipExceptionTranslation(projectId, queryRequest), bigQueryOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getResultRetryAlgorithm(), bigQueryOptions.getClock(), retryConfig, false, @@ -932,7 +932,7 @@ private Job getQueryJobRpc(JobId jobId) { completeJobId.getJob(), completeJobId.getLocation()), bigQueryOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getResultRetryAlgorithm(), bigQueryOptions.getClock(), EMPTY_RETRY_CONFIG, false, @@ -979,7 +979,7 @@ TableDataList tableDataListRpc(TableId destinationTable, String pageToken) { connectionSettings.getMaxResultPerPage(), pageToken), bigQueryOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getResultRetryAlgorithm(), bigQueryOptions.getClock(), EMPTY_RETRY_CONFIG, false, @@ -1212,7 +1212,7 @@ GetQueryResultsResponse getQueryResultsFirstPage(JobId jobId) { connectionSettings.getMaxResultPerPage(), timeoutMs), bigQueryOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getResultRetryAlgorithm(), bigQueryOptions.getClock(), retryConfig, false, @@ -1477,7 +1477,7 @@ com.google.api.services.bigquery.model.Job createQueryJob( .getBigQueryRpcV2() .createJobForQuerySkipExceptionTranslation(jobPb), bigQueryOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getResultRetryAlgorithm(), bigQueryOptions.getClock(), retryConfig, false, @@ -1522,7 +1522,7 @@ com.google.api.services.bigquery.model.Job createDryRunJob(String sql) { .getBigQueryRpcV2() .createJobForQuerySkipExceptionTranslation(jobPb), bigQueryOptions.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + bigQueryOptions.getResultRetryAlgorithm(), bigQueryOptions.getClock(), retryConfig, false, diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java index cc64ec72f514..dde4c0818713 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java @@ -77,7 +77,7 @@ public com.google.api.services.bigquery.model.Job call() throws IOException { } }, getOptions().getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + getOptions().getResultRetryAlgorithm(), getOptions().getClock(), EMPTY_RETRY_CONFIG, getOptions().isOpenTelemetryTracingEnabled(), @@ -126,7 +126,7 @@ public String call() throws IOException { } }, options.getRetrySettings(), - BigQueryBaseService.BIGQUERY_EXCEPTION_HANDLER, + options.getResultRetryAlgorithm(), options.getClock(), EMPTY_RETRY_CONFIG, options.isOpenTelemetryTracingEnabled(), diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java index 41915e2834f7..8a2094b558c4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java @@ -21,7 +21,10 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -29,9 +32,14 @@ import com.google.api.client.http.HttpHeaders; import com.google.api.client.http.HttpResponseException; import com.google.cloud.BaseServiceException; +import com.google.cloud.ExceptionHandler; import com.google.cloud.RetryHelper.RetryHelperException; +import com.google.cloud.bigquery.spi.v2.BigQueryRpc; +import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import java.io.IOException; import java.net.SocketTimeoutException; +import java.util.HashMap; +import java.util.Map; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; @@ -158,4 +166,87 @@ public void testTranslateAndThrow() throws Exception { verify(exceptionMock, times(2)).getCause(); } } + + @Test + public void testDefaultExceptionHandler() throws java.io.IOException { + BigQueryOptions defaultOptions = + BigQueryOptions.newBuilder().setProjectId("project-id").build(); + DatasetInfo info = DatasetInfo.newBuilder("dataset").build(); + Dataset dataset = null; + + final com.google.api.services.bigquery.model.Dataset datasetPb = + info.setProjectId(defaultOptions.getProjectId()).toPb(); + final Map optionsMap = new HashMap<>(); + + BigQueryOptions mockOptions = spy(defaultOptions); + HttpBigQueryRpc bigQueryRpcMock = mock(HttpBigQueryRpc.class); + doReturn(bigQueryRpcMock).when(mockOptions).getBigQueryRpcV2(); + // java.net.SocketException is retry-able in the default exception handler. + doThrow(java.net.SocketException.class) + .when(bigQueryRpcMock) + .createSkipExceptionTranslation(datasetPb, optionsMap); + + BigQuery bigquery = mockOptions.getService(); + try { + dataset = bigquery.create(info); + } catch (BigQueryException e) { + assertEquals(e.getCause().getClass(), java.net.SocketException.class); + assertNull(dataset); + } finally { + verify(bigQueryRpcMock, times(6)).createSkipExceptionTranslation(datasetPb, optionsMap); + } + } + + @Test + public void testCustomExceptionHandler() throws java.io.IOException { + BigQueryOptions defaultOptions = + BigQueryOptions.newBuilder() + .setProjectId("project-id") + .setResultRetryAlgorithm( + ExceptionHandler.newBuilder() + .abortOn(RuntimeException.class) + .retryOn(java.util.EmptyStackException.class) + .addInterceptors(BigQueryBaseService.EXCEPTION_HANDLER_INTERCEPTOR) + .build()) + .build(); + DatasetInfo info = DatasetInfo.newBuilder("dataset").build(); + Dataset dataset = null; + + final com.google.api.services.bigquery.model.Dataset datasetPb = + info.setProjectId(defaultOptions.getProjectId()).toPb(); + final Map optionsMap = new HashMap<>(); + + BigQueryOptions mockOptions = spy(defaultOptions); + HttpBigQueryRpc bigQueryRpcRetryMock = mock(HttpBigQueryRpc.class); + doReturn(bigQueryRpcRetryMock).when(mockOptions).getBigQueryRpcV2(); + doThrow(java.util.EmptyStackException.class) + .when(bigQueryRpcRetryMock) + .createSkipExceptionTranslation(datasetPb, optionsMap); + + BigQuery bigquery = mockOptions.getService(); + try { + dataset = bigquery.create(info); + } catch (BigQueryException e) { + assertEquals(e.getCause().getClass(), java.util.EmptyStackException.class); + assertNull(dataset); + } finally { + verify(bigQueryRpcRetryMock, times(6)).createSkipExceptionTranslation(datasetPb, optionsMap); + } + + BigQueryOptions mockOptionsAbort = spy(defaultOptions); + HttpBigQueryRpc bigQueryRpcAbortMock = mock(HttpBigQueryRpc.class); + doReturn(bigQueryRpcAbortMock).when(mockOptionsAbort).getBigQueryRpcV2(); + doThrow(RuntimeException.class) + .when(bigQueryRpcAbortMock) + .createSkipExceptionTranslation(datasetPb, optionsMap); + bigquery = mockOptionsAbort.getService(); + try { + dataset = bigquery.create(info); + } catch (BigQueryException e) { + assertEquals(e.getCause().getClass(), RuntimeException.class); + assertNull(dataset); + } finally { + verify(bigQueryRpcAbortMock, times(1)).createSkipExceptionTranslation(datasetPb, optionsMap); + } + } } From 93bf58239f2a12438ba26c7ea9994093cd8879fc Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 2 Sep 2025 09:57:44 -0400 Subject: [PATCH 3313/3441] chore(main): release 2.54.3-SNAPSHOT (#3944) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ac28abddf6eb..9d6c1a3c52dd 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.54.2 + 2.54.3-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index cabb84cb3f9b..b25fdd32f7b3 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.54.2 + 2.54.3-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.54.2 + 2.54.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index db8db1ad7135..f9ed181959e8 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.54.2 + 2.54.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.54.2 + 2.54.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 06fa45550bdf..eaf574eb595e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.54.2 + 2.54.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.54.2 + 2.54.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2290d681e5f4..575118ca8d51 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.54.2 + 2.54.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index e5014dcc5ce7..0dd584253fc3 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.54.2:2.54.2 \ No newline at end of file +google-cloud-bigquery:2.54.2:2.54.3-SNAPSHOT \ No newline at end of file From 79b7557501d318fd92b90a681036fe6a1aa1bac4 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 10 Sep 2025 19:14:36 +0200 Subject: [PATCH 3314/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.52.1 (#3952) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 47fc0ec7124f..161d8328dfba 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.52.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.52.1 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index c6dbbdc5223a..849d5dcf135b 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index 6c66c8d835be..c6bb73143f76 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index 2a4f45eaefd1..62182e63f1f0 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index c6dbbdc5223a..849d5dcf135b 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index 6c66c8d835be..c6bb73143f76 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index 2a4f45eaefd1..62182e63f1f0 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.1" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index b25fdd32f7b3..5440a711cb9e 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.52.0 + 3.52.1 diff --git a/pom.xml b/pom.xml index eaf574eb595e..001e7d36ca77 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.52.0 + 3.52.1 From e73deed9c68a45023d02b40144c304329d6b5829 Mon Sep 17 00:00:00 2001 From: Blake Li Date: Fri, 12 Sep 2025 12:43:55 -0400 Subject: [PATCH 3315/3441] deps: update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.17.0 (#3954) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 001e7d36ca77..cdc4d3a02072 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.16.3 + 3.17.0 pom import From 3f84e7353d3095d7830176c4d10422c08bcb2bbf Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 12 Sep 2025 15:00:26 -0400 Subject: [PATCH 3316/3441] chore(main): release 2.55.0 (#3947) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 13 +++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 22 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27dae85f7cca..be6007f63135 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [2.55.0](https://github.com/googleapis/java-bigquery/compare/v2.54.2...v2.55.0) (2025-09-12) + + +### Features + +* **bigquery:** Add custom ExceptionHandler to BigQueryOptions ([#3937](https://github.com/googleapis/java-bigquery/issues/3937)) ([de0914d](https://github.com/googleapis/java-bigquery/commit/de0914ddbccf988294d50faf56a515e58ab3505d)) + + +### Dependencies + +* Update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.17.0 ([#3954](https://github.com/googleapis/java-bigquery/issues/3954)) ([e73deed](https://github.com/googleapis/java-bigquery/commit/e73deed9c68a45023d02b40144c304329d6b5829)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.52.1 ([#3952](https://github.com/googleapis/java-bigquery/issues/3952)) ([79b7557](https://github.com/googleapis/java-bigquery/commit/79b7557501d318fd92b90a681036fe6a1aa1bac4)) + ## [2.54.2](https://github.com/googleapis/java-bigquery/compare/v2.54.1...v2.54.2) (2025-08-26) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9d6c1a3c52dd..688debd416c8 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.54.3-SNAPSHOT + 2.55.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 5440a711cb9e..be30269f71ec 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.54.3-SNAPSHOT + 2.55.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.54.3-SNAPSHOT + 2.55.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index f9ed181959e8..2cae0f6f11b1 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.54.3-SNAPSHOT + 2.55.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.54.3-SNAPSHOT + 2.55.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index cdc4d3a02072..291ac9fd93f8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.54.3-SNAPSHOT + 2.55.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.54.3-SNAPSHOT + 2.55.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 575118ca8d51..c0e58826be02 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.54.3-SNAPSHOT + 2.55.0 diff --git a/versions.txt b/versions.txt index 0dd584253fc3..73eeb870a475 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.54.2:2.54.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.55.0:2.55.0 \ No newline at end of file From a8caf960d3fcba8a8b093d69a48332ed8a1e3a08 Mon Sep 17 00:00:00 2001 From: Blake Li Date: Mon, 15 Sep 2025 17:20:26 -0400 Subject: [PATCH 3317/3441] chore: Ignore PR limites in renovate.json (#3956) --- renovate.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/renovate.json b/renovate.json index aacfaebeb3ed..38fdb78ebd1b 100644 --- a/renovate.json +++ b/renovate.json @@ -111,5 +111,7 @@ "dependencyDashboard": true, "dependencyDashboardLabels": [ "type: process" - ] + ], + "prConcurrentLimit": 0, + "prHourlyLimit": 0 } From 6775fce537df9c5f4d0b1488ce28591f6aed195f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 26 Sep 2025 02:09:25 +0200 Subject: [PATCH 3318/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.52.2 (#3964) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 161d8328dfba..5e6914bfe6cc 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.52.1 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.52.2 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index 849d5dcf135b..b77ccd7d9838 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.2" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index c6bb73143f76..b27ef2439d30 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.2" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index 62182e63f1f0..825dc4b21e76 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index 849d5dcf135b..b77ccd7d9838 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index c6bb73143f76..b27ef2439d30 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index 62182e63f1f0..825dc4b21e76 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.2" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index be30269f71ec..de70b789f564 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.52.1 + 3.52.2 diff --git a/pom.xml b/pom.xml index 291ac9fd93f8..3f76af9d5c99 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.52.1 + 3.52.2 From c1785005efd6324231d963510c4c61382ef14aef Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 26 Sep 2025 03:36:01 +0200 Subject: [PATCH 3319/3441] Merge pull request #3967 from googleapis/java-bigquery Squash and merge --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3f76af9d5c99..76cfa9cce90b 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.17.0 + 3.17.1 pom import From 225bc96dd8b86793e5a073723cf0dbc998bf1fec Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 25 Sep 2025 22:36:57 -0400 Subject: [PATCH 3320/3441] Merge pull request #3955 from googleapis/java-bigquery Squash and merge --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 688debd416c8..224335c0c152 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.55.0 + 2.55.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index de70b789f564..b94ef4280426 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.55.0 + 2.55.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.55.0 + 2.55.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 2cae0f6f11b1..78b1d4919797 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.55.0 + 2.55.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.55.0 + 2.55.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 76cfa9cce90b..8cc13da1fd49 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.55.0 + 2.55.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.55.0 + 2.55.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index c0e58826be02..2c076dbec8b0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.55.0 + 2.55.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 73eeb870a475..9e831ffd4b9d 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.55.0:2.55.0 \ No newline at end of file +google-cloud-bigquery:2.55.0:2.55.1-SNAPSHOT \ No newline at end of file From b72bb4b7bffb44693394cbb49cdcb4dea7773144 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 26 Sep 2025 07:27:47 -0400 Subject: [PATCH 3321/3441] Merge pull request #3968 from googleapis/java-bigquery Squash and merge --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be6007f63135..a89a121d5e1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.55.1](https://github.com/googleapis/java-bigquery/compare/v2.55.0...v2.55.1) (2025-09-26) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.52.2 ([#3964](https://github.com/googleapis/java-bigquery/issues/3964)) ([6775fce](https://github.com/googleapis/java-bigquery/commit/6775fce537df9c5f4d0b1488ce28591f6aed195f)) + ## [2.55.0](https://github.com/googleapis/java-bigquery/compare/v2.54.2...v2.55.0) (2025-09-12) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 224335c0c152..5f564e335818 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.55.1-SNAPSHOT + 2.55.1 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index b94ef4280426..e707100e6e37 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.55.1-SNAPSHOT + 2.55.1 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.55.1-SNAPSHOT + 2.55.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 78b1d4919797..193a0ab85886 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.55.1-SNAPSHOT + 2.55.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.55.1-SNAPSHOT + 2.55.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 8cc13da1fd49..9c194830b44f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.55.1-SNAPSHOT + 2.55.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.55.1-SNAPSHOT + 2.55.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 2c076dbec8b0..1df7e3800b60 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.55.1-SNAPSHOT + 2.55.1 diff --git a/versions.txt b/versions.txt index 9e831ffd4b9d..37c9b2f6d547 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.55.0:2.55.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.55.1:2.55.1 \ No newline at end of file From f8cf50833772412c4f15922bffcdf5100792948d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 8 Oct 2025 03:08:47 +0100 Subject: [PATCH 3322/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.52.3 (#3971) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 5e6914bfe6cc..b0731ee44f0f 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.52.2 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.52.3 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index b77ccd7d9838..5e895250b435 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.3" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index b27ef2439d30..c8dca96a40bb 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.3" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index 825dc4b21e76..f43173287519 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.3" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index b77ccd7d9838..5e895250b435 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.3" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index b27ef2439d30..c8dca96a40bb 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.3" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index 825dc4b21e76..f43173287519 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.3" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index e707100e6e37..525f4094d0d0 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.52.2 + 3.52.3 diff --git a/pom.xml b/pom.xml index 9c194830b44f..1e2a046fe3a5 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.52.2 + 3.52.3 From 8225bd049999e0dca040009b940287f0c17893d8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 8 Oct 2025 08:25:22 -0400 Subject: [PATCH 3323/3441] chore(main): release 2.55.2-SNAPSHOT (#3969) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 5f564e335818..747f227a47b5 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.55.1 + 2.55.2-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 525f4094d0d0..2363d0065c80 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.55.1 + 2.55.2-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.55.1 + 2.55.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 193a0ab85886..db004077fc91 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.55.1 + 2.55.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.55.1 + 2.55.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 1e2a046fe3a5..26375de158f5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.55.1 + 2.55.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.55.1 + 2.55.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 1df7e3800b60..b6f208a923a0 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.55.1 + 2.55.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 37c9b2f6d547..a2a425b49db7 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.55.1:2.55.1 \ No newline at end of file +google-cloud-bigquery:2.55.1:2.55.2-SNAPSHOT \ No newline at end of file From b25095d23279dab178975c33f4de84612612e175 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Wed, 8 Oct 2025 15:18:19 +0100 Subject: [PATCH 3324/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.17.2 (#3975) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 26375de158f5..2efc718e7f87 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.17.1 + 3.17.2 pom import From 3a2cb7f07bd5255767035c2d80439b2d27352f36 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 8 Oct 2025 13:37:13 -0400 Subject: [PATCH 3325/3441] chore(main): release 2.55.2 (#3977) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 8 ++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 17 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a89a121d5e1c..16a1061e4052 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## [2.55.2](https://github.com/googleapis/java-bigquery/compare/v2.55.1...v2.55.2) (2025-10-08) + + +### Dependencies + +* Fix update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.17.2 ([b25095d](https://github.com/googleapis/java-bigquery/commit/b25095d23279dab178975c33f4de84612612e175)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.52.3 ([#3971](https://github.com/googleapis/java-bigquery/issues/3971)) ([f8cf508](https://github.com/googleapis/java-bigquery/commit/f8cf50833772412c4f15922bffcdf5100792948d)) + ## [2.55.1](https://github.com/googleapis/java-bigquery/compare/v2.55.0...v2.55.1) (2025-09-26) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 747f227a47b5..1c3de27fa055 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.55.2-SNAPSHOT + 2.55.2 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 2363d0065c80..d7fdd7caa914 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.55.2-SNAPSHOT + 2.55.2 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.55.2-SNAPSHOT + 2.55.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index db004077fc91..900896221432 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.55.2-SNAPSHOT + 2.55.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.55.2-SNAPSHOT + 2.55.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2efc718e7f87..c40c67a76706 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.55.2-SNAPSHOT + 2.55.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.55.2-SNAPSHOT + 2.55.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index b6f208a923a0..9c87c6a68504 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.55.2-SNAPSHOT + 2.55.2 diff --git a/versions.txt b/versions.txt index a2a425b49db7..e3100ad15554 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.55.1:2.55.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.55.2:2.55.2 \ No newline at end of file From 798aa962f3b2a7b4141d96ee448afad55d77b0bc Mon Sep 17 00:00:00 2001 From: Mridula <66699525+mpeddada1@users.noreply.github.com> Date: Mon, 13 Oct 2025 14:09:39 -0400 Subject: [PATCH 3326/3441] chore: add JDK 25 to the CI (#3974) --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 4dd9974f263f..b9b8be0c36db 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -25,7 +25,7 @@ jobs: strategy: fail-fast: false matrix: - java: [11, 17, 21] + java: [11, 17, 21, 25] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 From a961247e9546a9fce8da1609afd18975142c2379 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Oct 2025 15:03:22 +0100 Subject: [PATCH 3327/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.53.0 (#3980) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index b0731ee44f0f..252a22396166 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.52.3 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.53.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index 5e895250b435..dff3d3e36b74 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.53.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index c8dca96a40bb..95870eaa350e 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.53.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index f43173287519..ca49f7431aa1 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.53.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index 5e895250b435..dff3d3e36b74 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.52.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.53.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index c8dca96a40bb..95870eaa350e 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.52.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.53.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index f43173287519..ca49f7431aa1 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.52.3" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.53.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index d7fdd7caa914..bbb6c290bdbe 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.52.3 + 3.53.0 diff --git a/pom.xml b/pom.xml index c40c67a76706..8982a9856376 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.52.3 + 3.53.0 From b57de19f2c1bf00500b628df827c6e3d2802a104 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 21 Oct 2025 18:12:24 +0100 Subject: [PATCH 3328/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.17.3 (#3983) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 8982a9856376..afb59975b856 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.17.2 + 3.17.3 pom import From a607b2d0b7213f1f0ad604111964300ad1a919b1 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 14:11:47 -0400 Subject: [PATCH 3329/3441] chore(main): release 2.55.3-SNAPSHOT (#3978) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 1c3de27fa055..30715f9d42b7 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.55.2 + 2.55.3-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index bbb6c290bdbe..daf2a964bdec 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.55.2 + 2.55.3-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.55.2 + 2.55.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 900896221432..efe5687a45c7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.55.2 + 2.55.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.55.2 + 2.55.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index afb59975b856..b85ca3262232 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.55.2 + 2.55.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.55.2 + 2.55.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 9c87c6a68504..30946f7bcd1a 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.55.2 + 2.55.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index e3100ad15554..7c3350056d8c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.55.2:2.55.2 \ No newline at end of file +google-cloud-bigquery:2.55.2:2.55.3-SNAPSHOT \ No newline at end of file From 219152bb75cce7bc5b0b958f0cc8d70c0102bf41 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 15:11:41 -0400 Subject: [PATCH 3330/3441] chore(main): release 2.55.3 (#3984) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 16a1061e4052..c0ca0a69ec70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.55.3](https://github.com/googleapis/java-bigquery/compare/v2.55.2...v2.55.3) (2025-10-21) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.53.0 ([#3980](https://github.com/googleapis/java-bigquery/issues/3980)) ([a961247](https://github.com/googleapis/java-bigquery/commit/a961247e9546a9fce8da1609afd18975142c2379)) + ## [2.55.2](https://github.com/googleapis/java-bigquery/compare/v2.55.1...v2.55.2) (2025-10-08) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 30715f9d42b7..065c631f0c41 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.55.3-SNAPSHOT + 2.55.3 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index daf2a964bdec..eff9f5c39aba 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.55.3-SNAPSHOT + 2.55.3 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.55.3-SNAPSHOT + 2.55.3 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index efe5687a45c7..e95966766593 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.55.3-SNAPSHOT + 2.55.3 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.55.3-SNAPSHOT + 2.55.3 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index b85ca3262232..6d45eec431a6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.55.3-SNAPSHOT + 2.55.3 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.55.3-SNAPSHOT + 2.55.3 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 30946f7bcd1a..e35b5bafc699 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.55.3-SNAPSHOT + 2.55.3 diff --git a/versions.txt b/versions.txt index 7c3350056d8c..517df8758649 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.55.2:2.55.3-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.55.3:2.55.3 \ No newline at end of file From c180ecbd6f0dfdbd4d7ad369b6320bcfce7ce99d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 30 Oct 2025 21:16:33 -0400 Subject: [PATCH 3331/3441] chore(main): release 2.55.4-SNAPSHOT (#3985) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 065c631f0c41..185be777c70b 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.55.3 + 2.55.4-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index eff9f5c39aba..84ccf695e8b8 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.55.3 + 2.55.4-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.55.3 + 2.55.4-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index e95966766593..cbef4c4ad619 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.55.3 + 2.55.4-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.55.3 + 2.55.4-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 6d45eec431a6..59c5a043d1d9 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.55.3 + 2.55.4-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.55.3 + 2.55.4-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e35b5bafc699..4aa74d41dd7c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.55.3 + 2.55.4-SNAPSHOT diff --git a/versions.txt b/versions.txt index 517df8758649..23bb87861734 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.55.3:2.55.3 \ No newline at end of file +google-cloud-bigquery:2.55.3:2.55.4-SNAPSHOT \ No newline at end of file From 1d8977df3b1451378e5471cce9fd8b067f80fc9a Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 7 Nov 2025 19:42:17 +0000 Subject: [PATCH 3332/3441] deps: update dependency com.google.apis:google-api-services-bigquery to v2-rev20251012-2.0.0 (#3923) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 59c5a043d1d9..43c1f5b1d490 100644 --- a/pom.xml +++ b/pom.xml @@ -54,7 +54,7 @@ UTF-8 github google-cloud-bigquery-parent - v2-rev20250706-2.0.0 + v2-rev20251012-2.0.0 From 9c0df5422c05696f7ce4bedf914a58306150dc21 Mon Sep 17 00:00:00 2001 From: Kirill Logachev Date: Wed, 12 Nov 2025 11:48:37 -0800 Subject: [PATCH 3333/3441] feat: new queryWithTimeout method for customer-side wait (#3995) * feat: new queryNoWait method * Rename method to queryWithTimeout * rename to queryWithTimeout() * lint * lint * add tests * Update clirr ignore --- .../clirr-ignored-differences.xml | 5 ++ .../com/google/cloud/bigquery/BigQuery.java | 22 ++++++ .../google/cloud/bigquery/BigQueryImpl.java | 76 ++++++++----------- .../cloud/bigquery/BigQueryImplTest.java | 23 ++++++ .../cloud/bigquery/it/ITBigQueryTest.java | 57 +++++++++++++- 5 files changed, 137 insertions(+), 46 deletions(-) diff --git a/google-cloud-bigquery/clirr-ignored-differences.xml b/google-cloud-bigquery/clirr-ignored-differences.xml index bd455d2d4fad..cef0f30f7339 100644 --- a/google-cloud-bigquery/clirr-ignored-differences.xml +++ b/google-cloud-bigquery/clirr-ignored-differences.xml @@ -117,6 +117,11 @@ com/google/cloud/bigquery/TableInfo* *ResourceTags(*) + + 7012 + com/google/cloud/bigquery/BigQuery + java.lang.Object queryWithTimeout(com.google.cloud.bigquery.QueryJobConfiguration, com.google.cloud.bigquery.JobId, java.lang.Long, com.google.cloud.bigquery.BigQuery$JobOption[]) + 7012 com/google/cloud/bigquery/Connection diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index 2e0747f6be3a..ab16ed40f7c9 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -1609,6 +1609,28 @@ TableResult query(QueryJobConfiguration configuration, JobOption... options) TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption... options) throws InterruptedException, JobException; + /** + * Starts the query associated with the request, using the given JobId. It returns either + * TableResult for quick queries or Job object for long-running queries. + * + *

    If the location of the job is not "US" or "EU", the {@code jobId} must specify the job + * location. + * + *

    This method cannot be used in conjunction with {@link QueryJobConfiguration#dryRun()} + * queries. Since dry-run queries are not actually executed, there's no way to retrieve results. + * + *

    See {@link #query(QueryJobConfiguration, JobOption...)} for examples on populating a {@link + * QueryJobConfiguration}. + * + * @throws BigQueryException upon failure + * @throws InterruptedException if the current thread gets interrupted while waiting for the query + * to complete + * @throws JobException if the job completes unsuccessfully + */ + Object queryWithTimeout( + QueryJobConfiguration configuration, JobId jobId, Long timeoutMs, JobOption... options) + throws InterruptedException, JobException; + /** * Returns results of the query associated with the provided job. * diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index 088d15c09cd7..ac8fce70829a 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1925,48 +1925,10 @@ public Boolean call() throws IOException { @Override public TableResult query(QueryJobConfiguration configuration, JobOption... options) throws InterruptedException, JobException { - Job.checkNotDryRun(configuration, "query"); - - configuration = - configuration.toBuilder() - .setJobCreationMode(getOptions().getDefaultJobCreationMode()) - .build(); - - Span querySpan = null; - if (getOptions().isOpenTelemetryTracingEnabled() - && getOptions().getOpenTelemetryTracer() != null) { - querySpan = - getOptions() - .getOpenTelemetryTracer() - .spanBuilder("com.google.cloud.bigquery.BigQuery.query") - .setAllAttributes(otelAttributesFromOptions(options)) - .startSpan(); - } - try (Scope queryScope = querySpan != null ? querySpan.makeCurrent() : null) { - // If all parameters passed in configuration are supported by the query() method on the - // backend, - // put on fast path - QueryRequestInfo requestInfo = - new QueryRequestInfo(configuration, getOptions().getUseInt64Timestamps()); - if (requestInfo.isFastQuerySupported(null)) { - String projectId = getOptions().getProjectId(); - QueryRequest content = requestInfo.toPb(); - if (getOptions().getLocation() != null) { - content.setLocation(getOptions().getLocation()); - } - return queryRpc(projectId, content, options); - } - // Otherwise, fall back to the existing create query job logic - return create(JobInfo.of(configuration), options).getQueryResults(); - } finally { - if (querySpan != null) { - querySpan.end(); - } - } + return query(configuration, null, options); } - private TableResult queryRpc( - final String projectId, final QueryRequest content, JobOption... options) + private Object queryRpc(final String projectId, final QueryRequest content, JobOption... options) throws InterruptedException { com.google.api.services.bigquery.model.QueryResponse results; Span queryRpc = null; @@ -2030,7 +1992,7 @@ public com.google.api.services.bigquery.model.QueryResponse call() // here, but this is left as future work. JobId jobId = JobId.fromPb(results.getJobReference()); Job job = getJob(jobId, options); - return job.getQueryResults(); + return job; } if (results.getPageToken() != null) { @@ -2070,16 +2032,35 @@ public com.google.api.services.bigquery.model.QueryResponse call() @Override public TableResult query(QueryJobConfiguration configuration, JobId jobId, JobOption... options) throws InterruptedException, JobException { + Object result = queryWithTimeout(configuration, jobId, null, options); + if (result instanceof Job) { + return ((Job) result).getQueryResults(); + } + return (TableResult) result; + } + + @Override + public Object queryWithTimeout( + QueryJobConfiguration configuration, JobId jobId, Long timeoutMs, JobOption... options) + throws InterruptedException, JobException { Job.checkNotDryRun(configuration, "query"); + // If JobCreationMode is not explicitly set, update it with default value; + if (configuration.getJobCreationMode() == null) { + configuration = + configuration.toBuilder() + .setJobCreationMode(getOptions().getDefaultJobCreationMode()) + .build(); + } + Span querySpan = null; if (getOptions().isOpenTelemetryTracingEnabled() && getOptions().getOpenTelemetryTracer() != null) { querySpan = getOptions() .getOpenTelemetryTracer() - .spanBuilder("com.google.cloud.bigquery.BigQuery.query") - .setAllAttributes(jobId.getOtelAttributes()) + .spanBuilder("com.google.cloud.bigquery.BigQuery.queryWithTimeout") + .setAllAttributes(jobId != null ? jobId.getOtelAttributes() : null) .setAllAttributes(otelAttributesFromOptions(options)) .startSpan(); } @@ -2095,18 +2076,23 @@ && getOptions().getOpenTelemetryTracer() != null) { // fail with "Access denied" if the project do not have enough permissions to run the job. String projectId = - jobId.getProject() != null ? jobId.getProject() : getOptions().getProjectId(); + jobId != null && jobId.getProject() != null + ? jobId.getProject() + : getOptions().getProjectId(); QueryRequest content = requestInfo.toPb(); // Be careful when setting the location, if a location is specified in the BigQueryOption or // JobId the job created by the query method will be in that location, even if the table to // be // queried is in a different location. This may cause the query to fail with // "BigQueryException: Not found" - if (jobId.getLocation() != null) { + if (jobId != null && jobId.getLocation() != null) { content.setLocation(jobId.getLocation()); } else if (getOptions().getLocation() != null) { content.setLocation(getOptions().getLocation()); } + if (timeoutMs != null) { + content.setTimeoutMs(timeoutMs); + } return queryRpc(projectId, content, options); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index c0367beae4cf..393455e36425 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -2610,6 +2610,29 @@ PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) PROJECT, DATASET, TABLE, Collections.emptyMap()); } + @Test + public void testQueryWithTimeoutSetsTimeout() throws InterruptedException, IOException { + com.google.api.services.bigquery.model.QueryResponse queryResponsePb = + new com.google.api.services.bigquery.model.QueryResponse() + .setCacheHit(false) + .setJobComplete(true) + .setKind("bigquery#queryResponse") + .setPageToken(null) + .setRows(ImmutableList.of(TABLE_ROW)) + .setSchema(TABLE_SCHEMA.toPb()) + .setTotalBytesProcessed(42L) + .setTotalRows(BigInteger.valueOf(1L)); + + when(bigqueryRpcMock.queryRpcSkipExceptionTranslation(eq(PROJECT), requestPbCapture.capture())) + .thenReturn(queryResponsePb); + + bigquery = options.getService(); + Object result = bigquery.queryWithTimeout(QUERY_JOB_CONFIGURATION_FOR_QUERY, null, 1000L); + assertTrue(result instanceof TableResult); + QueryRequest requestPb = requestPbCapture.getValue(); + assertEquals((Long) 1000L, requestPb.getTimeoutMs()); + } + @Test public void testGetQueryResults() throws IOException { JobId queryJob = JobId.of(JOB); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index c9f6296cc50b..ec1f7b5a096d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -7215,6 +7215,7 @@ public void testTableResultJobIdAndQueryId() throws InterruptedException { // 2. For queries that fails the requirements to be stateless, then jobId is populated and // queryId is not. // 3. For explicitly created jobs, then jobId is populated and queryId is not populated. + // 4. If QueryJobConfiguration explicitly sets Job Creation Mode to Required. // Test scenario 1. // Create local BigQuery for test scenario 1 to not contaminate global test parameters. @@ -7241,6 +7242,16 @@ public void testTableResultJobIdAndQueryId() throws InterruptedException { result = job.getQueryResults(); assertNotNull(result.getJobId()); assertNull(result.getQueryId()); + + // Test scenario 4. + configWithJob = + QueryJobConfiguration.newBuilder(query) + .setJobCreationMode(JobCreationMode.JOB_CREATION_REQUIRED) + .build(); + result = bigQuery.query(configWithJob); + result = job.getQueryResults(); + assertNotNull(result.getJobId()); + assertNull(result.getQueryId()); } @Test @@ -7294,6 +7305,50 @@ public void testStatelessQueriesWithLocation() throws Exception { } } + @Test + public void testQueryWithTimeout() throws InterruptedException { + // Validate that queryWithTimeout returns either TableResult or Job object + + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); + BigQuery bigQuery = bigqueryHelper.getOptions().getService(); + bigQuery.getOptions().setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL); + String largeQuery = + "SELECT * FROM UNNEST(GENERATE_ARRAY(1, 20000)) CROSS JOIN UNNEST(GENERATE_ARRAY(1, 20000))"; + String query = "SELECT 1 as one"; + // Test scenario 1. + // Stateless query returns TableResult + QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).build(); + Object result = bigQuery.queryWithTimeout(config, null, null); + assertTrue(result instanceof TableResult); + assertNull(((TableResult) result).getJobId()); + assertNotNull(((TableResult) result).getQueryId()); + + // Stateful query returns Job + // Test scenario 2 to ensure job is created if JobCreationMode is set, but for a small query + // it still returns results. + config = + QueryJobConfiguration.newBuilder(query) + .setJobCreationMode(JobCreationMode.JOB_CREATION_REQUIRED) + .build(); + result = bigQuery.queryWithTimeout(config, null, null); + assertTrue(result instanceof TableResult); + assertNotNull(((TableResult) result).getJobId()); + assertNull(((TableResult) result).getQueryId()); + + // Stateful query returns Job + // Test scenario 3 to ensure job is created if Query is long running. + // Explicitly disable cache to ensure it is long-running query; + config = QueryJobConfiguration.newBuilder(largeQuery).setUseQueryCache(false).build(); + long millis = System.currentTimeMillis(); + result = bigQuery.queryWithTimeout(config, null, 1000L); + millis = System.currentTimeMillis() - millis; + assertTrue(result instanceof Job); + // Cancel the job as we don't need results. + ((Job) result).cancel(); + // Allow 2 seconds of timeout value to account for random delays + assertTrue(millis < 1_000_000 * 2); + } + @Test public void testUniverseDomainWithInvalidUniverseDomain() { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); @@ -7743,7 +7798,7 @@ public void testOpenTelemetryTracingQuery() throws InterruptedException { assertNotNull( OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQueryRetryHelper.runWithRetries")); assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQueryRpc.queryRpc")); - assertTrue(OTEL_ATTRIBUTES.containsKey("com.google.cloud.bigquery.BigQuery.query")); + assertTrue(OTEL_ATTRIBUTES.containsKey("com.google.cloud.bigquery.BigQuery.queryWithTimeout")); // Query job String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); From c9c43517edec7072dd7745be890fd641e44809a1 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Fri, 14 Nov 2025 11:39:06 -0500 Subject: [PATCH 3334/3441] chore: grant write access to @googleapis/cloud-java-team-teamsync (#3999) * chore: grant write access to @googleapis/cloud-java-team-teamsync * Update CODEOWNERS to simplify ownership rules Removed specific ownership for handwritten Java libraries. --- .github/CODEOWNERS | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6aaf5360dd7d..7892b1d67bd2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,14 +5,10 @@ # https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax # The @googleapis/api-bigquery is the default owner for changes in this repo -* @googleapis/yoshi-java @googleapis/api-bigquery - -# for handwritten libraries, keep codeowner_team in .repo-metadata.json as owner -**/*.java @googleapis/api-bigquery - +* @googleapis/cloud-java-team-teamsync @googleapis/api-bigquery # The java-samples-reviewers team is the default owner for samples changes -samples/**/*.java @googleapis/java-samples-reviewers +samples/**/*.java @googleapis/cloud-java-team-teamsync @googleapis/java-samples-reviewers # Generated snippets should not be owned by samples reviewers -samples/snippets/generated/ @googleapis/yoshi-java +samples/snippets/generated/ @googleapis/cloud-java-team-teamsync @googleapis/yoshi-java From 4e09f6bc7a25904ad8f61141a0837535d39dbb4e Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 14 Nov 2025 16:39:16 +0000 Subject: [PATCH 3335/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.54.1 (#3994) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 252a22396166..5ba388acc0b8 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.53.0 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.54.1 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index dff3d3e36b74..0d98de5094a7 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.53.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.54.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index 95870eaa350e..c270bff717db 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.53.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.54.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index ca49f7431aa1..720f8bcfafef 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.53.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.54.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index dff3d3e36b74..0d98de5094a7 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.53.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.54.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index 95870eaa350e..c270bff717db 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.53.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.54.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index ca49f7431aa1..720f8bcfafef 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.53.0" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.54.1" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 84ccf695e8b8..f70507c5ea3f 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.53.0 + 3.54.1 diff --git a/pom.xml b/pom.xml index 43c1f5b1d490..3dc65348afa7 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.53.0 + 3.54.1 From 4ee8655f84d0d140a729ae2a9e210f47531912c7 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Sat, 15 Nov 2025 23:04:10 +0000 Subject: [PATCH 3336/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.18.0 (#3998) Co-authored-by: Diego Marquez --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3dc65348afa7..3d3582b422e5 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.17.3 + 3.18.0 pom import From 42091e09c7f59148514bb38f095859cf1dc8c20b Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Sun, 16 Nov 2025 22:57:17 -0500 Subject: [PATCH 3337/3441] chore(main): release 2.56.0 (#3996) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 13 +++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 22 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0ca0a69ec70..59350c03bc10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [2.56.0](https://github.com/googleapis/java-bigquery/compare/v2.55.3...v2.56.0) (2025-11-15) + + +### Features + +* New queryWithTimeout method for customer-side wait ([#3995](https://github.com/googleapis/java-bigquery/issues/3995)) ([9c0df54](https://github.com/googleapis/java-bigquery/commit/9c0df5422c05696f7ce4bedf914a58306150dc21)) + + +### Dependencies + +* Update dependency com.google.apis:google-api-services-bigquery to v2-rev20251012-2.0.0 ([#3923](https://github.com/googleapis/java-bigquery/issues/3923)) ([1d8977d](https://github.com/googleapis/java-bigquery/commit/1d8977df3b1451378e5471cce9fd8b067f80fc9a)) +* Update dependency com.google.cloud:sdk-platform-java-config to v3.54.1 ([#3994](https://github.com/googleapis/java-bigquery/issues/3994)) ([4e09f6b](https://github.com/googleapis/java-bigquery/commit/4e09f6bc7a25904ad8f61141a0837535d39dbb4e)) + ## [2.55.3](https://github.com/googleapis/java-bigquery/compare/v2.55.2...v2.55.3) (2025-10-21) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 185be777c70b..9f219179fd9a 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.55.4-SNAPSHOT + 2.56.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index f70507c5ea3f..2e6d9828bbc5 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.55.4-SNAPSHOT + 2.56.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.55.4-SNAPSHOT + 2.56.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index cbef4c4ad619..304230dd219e 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.55.4-SNAPSHOT + 2.56.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.55.4-SNAPSHOT + 2.56.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 3d3582b422e5..2169463a6b40 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.55.4-SNAPSHOT + 2.56.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.55.4-SNAPSHOT + 2.56.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 4aa74d41dd7c..6cabd8bbfc61 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.55.4-SNAPSHOT + 2.56.0 diff --git a/versions.txt b/versions.txt index 23bb87861734..46c19475b063 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.55.3:2.55.4-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.56.0:2.56.0 \ No newline at end of file From c3548a2f521b19761c844c0b24fc8caab541aba7 Mon Sep 17 00:00:00 2001 From: Jin Seop Kim Date: Thu, 20 Nov 2025 15:59:24 -0500 Subject: [PATCH 3338/3441] feat: Relax client-side validation for BigQuery entity IDs (#4000) Removes client-side `checkArgument` and `checkNotNull` validations from the constructors of `TableId`, `DatasetId`, `RoutineId`, `ModelId`, and `ConnectionProperty`. This change makes the client library more robust by preventing crashes when the server sends a response with unexpected null or empty values in these fields. --- .../java/com/google/cloud/bigquery/ConnectionProperty.java | 6 ++---- .../src/main/java/com/google/cloud/bigquery/DatasetId.java | 4 ---- .../src/main/java/com/google/cloud/bigquery/ModelId.java | 2 -- .../src/main/java/com/google/cloud/bigquery/RoutineId.java | 2 -- .../src/main/java/com/google/cloud/bigquery/TableId.java | 2 -- 5 files changed, 2 insertions(+), 14 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java index 7abd36b41b23..30e0cf014192 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java @@ -16,8 +16,6 @@ package com.google.cloud.bigquery; -import static com.google.common.base.Preconditions.checkNotNull; - import com.google.common.base.Function; import com.google.common.base.MoreObjects; import com.google.common.base.Objects; @@ -82,8 +80,8 @@ public ConnectionProperty build() { } private ConnectionProperty(Builder builder) { - this.key = checkNotNull(builder.key, "Required key is null or empty"); - this.value = checkNotNull(builder.value, "Required value is null or empty"); + this.key = builder.key; + this.value = builder.value; } /** Return the key of property. */ diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java index c06d257d7d7e..ff42d5d36033 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java @@ -16,9 +16,6 @@ package com.google.cloud.bigquery; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Strings.isNullOrEmpty; - import com.google.api.services.bigquery.model.DatasetReference; import io.opentelemetry.api.common.Attributes; import java.io.Serializable; @@ -43,7 +40,6 @@ public String getDataset() { } private DatasetId(String project, String dataset) { - checkArgument(!isNullOrEmpty(dataset), "Provided dataset is null or empty"); this.project = project; this.dataset = dataset; } diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java index adb497ffa064..d363ed8359ea 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java @@ -62,8 +62,6 @@ public String getModel() { } private ModelId(String project, String dataset, String model) { - checkArgument(!isNullOrEmpty(dataset), "Provided dataset is null or empty"); - checkArgument(!isNullOrEmpty(model), "Provided model is null or empty"); this.project = project; this.dataset = dataset; this.model = model; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java index a632fc5a1f31..957b885da4db 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java @@ -63,8 +63,6 @@ public String getRoutine() { } private RoutineId(String project, String dataset, String routine) { - checkArgument(!isNullOrEmpty(dataset), "Provided dataset is null or empty"); - checkArgument(!isNullOrEmpty(routine), "Provided routine is null or empty"); this.project = project; this.dataset = dataset; this.routine = routine; diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java index fcc208453a48..a4177b503d93 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java @@ -71,8 +71,6 @@ public String getIAMResourceName() { } private TableId(String project, String dataset, String table) { - checkArgument(!isNullOrEmpty(dataset), "Provided dataset is null or empty"); - checkArgument(!isNullOrEmpty(table), "Provided table is null or empty"); this.project = project; this.dataset = dataset; this.table = table; From bc422013a3462de3d42ed7001d75e7698d8276d4 Mon Sep 17 00:00:00 2001 From: Jin Seop Kim Date: Thu, 20 Nov 2025 15:59:36 -0500 Subject: [PATCH 3339/3441] chore: add flakybot.yaml and set priority to p2 (#4004) --- .github/flakybot.yaml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/flakybot.yaml diff --git a/.github/flakybot.yaml b/.github/flakybot.yaml new file mode 100644 index 000000000000..cb83375f9893 --- /dev/null +++ b/.github/flakybot.yaml @@ -0,0 +1 @@ +issuePriority: p2 From a942b0755341bfbf4d2be2ea6fbdc3b85fb00285 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Thu, 4 Dec 2025 16:46:40 -0500 Subject: [PATCH 3340/3441] chore: add release-please config for protobuf-4.x (#4009) * chore: add release-please config for protobuf-4.x * Change release type from java-lts to java-yoshi --- .github/release-please.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/release-please.yml b/.github/release-please.yml index f87ac1eccabe..e78d84de078f 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -39,6 +39,11 @@ branches: handleGHRelease: true releaseType: java-backport branch: 2.51.x + - branch: protobuf-4.x-rc + bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-yoshi + manifest: true bumpMinorPreMajor: true handleGHRelease: true releaseType: java-yoshi From 6dcc90053353422ae766e531413b3ecc65b8b155 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 8 Dec 2025 10:32:02 -0500 Subject: [PATCH 3341/3441] feat: Introduce DataFormatOptions to configure the output of BigQuery data types (#4010) * feat: Create DataFormatOptions in BigQuery * feat: Add Builder class for DataFormatOptions * fix: Update existing references of useInt64Timestamp to use DataFormatOption's variant * chore: Fix lint issues * chore: Address PR feedback * chore: Add tests for useInt64Timestamp behavior * chore: Address failing tests and GCA * chore: Remove unused fromPb method --- .../google/cloud/bigquery/BigQueryImpl.java | 18 +++-- .../cloud/bigquery/BigQueryOptions.java | 65 ++++++++++++++++- .../cloud/bigquery/DataFormatOptions.java | 73 +++++++++++++++++++ .../cloud/bigquery/QueryRequestInfo.java | 5 +- .../cloud/bigquery/BigQueryOptionsTest.java | 56 ++++++++++++++ .../cloud/bigquery/QueryRequestInfoTest.java | 22 ++++-- .../cloud/bigquery/it/ITBigQueryTest.java | 8 +- 7 files changed, 230 insertions(+), 17 deletions(-) create mode 100644 google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DataFormatOptions.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index ac8fce70829a..c057cdaca6cb 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1731,7 +1731,10 @@ public TableDataList call() throws IOException { new PageImpl<>( new TableDataPageFetcher(tableId, schema, serviceOptions, cursor, pageOptionMap), cursor, - transformTableData(result.getRows(), schema, serviceOptions.getUseInt64Timestamps())), + transformTableData( + result.getRows(), + schema, + serviceOptions.getDataFormatOptions().useInt64Timestamp())), result.getTotalRows()); } catch (BigQueryRetryHelperException e) { throw BigQueryException.translateAndThrow(e); @@ -2007,7 +2010,9 @@ public com.google.api.services.bigquery.model.QueryResponse call() new QueryPageFetcher(jobId, schema, getOptions(), cursor, optionMap(options)), cursor, transformTableData( - results.getRows(), schema, getOptions().getUseInt64Timestamps()))) + results.getRows(), + schema, + getOptions().getDataFormatOptions().useInt64Timestamp()))) .setJobId(jobId) .setQueryId(results.getQueryId()) .build(); @@ -2021,7 +2026,9 @@ public com.google.api.services.bigquery.model.QueryResponse call() new TableDataPageFetcher(null, schema, getOptions(), null, optionMap(options)), null, transformTableData( - results.getRows(), schema, getOptions().getUseInt64Timestamps()))) + results.getRows(), + schema, + getOptions().getDataFormatOptions().useInt64Timestamp()))) // Return the JobID of the successful job .setJobId( results.getJobReference() != null ? JobId.fromPb(results.getJobReference()) : null) @@ -2066,10 +2073,9 @@ && getOptions().getOpenTelemetryTracer() != null) { } try (Scope queryScope = querySpan != null ? querySpan.makeCurrent() : null) { // If all parameters passed in configuration are supported by the query() method on the - // backend, - // put on fast path + // backend, put on fast path QueryRequestInfo requestInfo = - new QueryRequestInfo(configuration, getOptions().getUseInt64Timestamps()); + new QueryRequestInfo(configuration, getOptions().getDataFormatOptions()); if (requestInfo.isFastQuerySupported(jobId)) { // Be careful when setting the projectID in JobId, if a projectID is specified in the JobId, // the job created by the query method will use that project. This may cause the query to diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index 7adb58d3a2b7..10ae77930c85 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -17,6 +17,7 @@ package com.google.cloud.bigquery; import com.google.api.core.BetaApi; +import com.google.api.core.ObsoleteApi; import com.google.api.gax.retrying.ResultRetryAlgorithm; import com.google.cloud.ServiceDefaults; import com.google.cloud.ServiceOptions; @@ -26,6 +27,7 @@ import com.google.cloud.bigquery.spi.BigQueryRpcFactory; import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import com.google.cloud.http.HttpTransportOptions; +import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import io.opentelemetry.api.trace.Tracer; import java.util.Set; @@ -41,6 +43,7 @@ public class BigQueryOptions extends ServiceOptions { // set the option ThrowNotFound when you want to throw the exception when the value not found private boolean setThrowNotFound; private boolean useInt64Timestamps; + private DataFormatOptions dataFormatOptions; private JobCreationMode defaultJobCreationMode = JobCreationMode.JOB_CREATION_MODE_UNSPECIFIED; private boolean enableOpenTelemetryTracing; private Tracer openTelemetryTracer; @@ -70,6 +73,7 @@ public static class Builder extends ServiceOptions.Builder resultRetryAlgorithm; @@ -94,11 +98,32 @@ public Builder setLocation(String location) { return this; } + /** + * This setter is marked as Obsolete. Prefer {@link #setDataFormatOptions(DataFormatOptions)} to + * set the int64timestamp configuration instead. + * + *

    If useInt64Timestamps value is set in here and via DataFormatOptions, the + * DataFormatOptions configuration value is used. + * + *

    {@code DataFormatOptions.newBuilder().setUseInt64Timestamp(...).build()} + */ + @ObsoleteApi("Use setDataFormatOptions(DataFormatOptions) instead") public Builder setUseInt64Timestamps(boolean useInt64Timestamps) { this.useInt64Timestamps = useInt64Timestamps; return this; } + /** + * Set the format options for the BigQuery data types + * + * @param dataFormatOptions Configuration of the formatting options + */ + public Builder setDataFormatOptions(DataFormatOptions dataFormatOptions) { + Preconditions.checkNotNull(dataFormatOptions, "DataFormatOptions cannot be null"); + this.dataFormatOptions = dataFormatOptions; + return this; + } + /** * Enables OpenTelemetry tracing functionality for this BigQuery instance * @@ -143,6 +168,15 @@ private BigQueryOptions(Builder builder) { } else { this.resultRetryAlgorithm = BigQueryBaseService.DEFAULT_BIGQUERY_EXCEPTION_HANDLER; } + + // If dataFormatOptions is not set, then create a new instance and set it with the + // useInt64Timestamps configured in BigQueryOptions + if (builder.dataFormatOptions == null) { + this.dataFormatOptions = + DataFormatOptions.newBuilder().useInt64Timestamp(builder.useInt64Timestamps).build(); + } else { + this.dataFormatOptions = builder.dataFormatOptions; + } } private static class BigQueryDefaults implements ServiceDefaults { @@ -191,8 +225,23 @@ public void setThrowNotFound(boolean setThrowNotFound) { this.setThrowNotFound = setThrowNotFound; } + /** + * This setter is marked as Obsolete. Prefer {@link + * Builder#setDataFormatOptions(DataFormatOptions)} to set the int64timestamp configuration + * instead. + * + *

    If useInt64Timestamps is set via DataFormatOptions, then the value in DataFormatOptions will + * be used. Otherwise, this value will be passed to DataFormatOptions. + * + *

    Alternative: {@code DataFormatOptions.newBuilder().setUseInt64Timestamp(...).build()} + */ + @ObsoleteApi("Use Builder#setDataFormatOptions(DataFormatOptions) instead") public void setUseInt64Timestamps(boolean useInt64Timestamps) { this.useInt64Timestamps = useInt64Timestamps; + // Because this setter exists outside the Builder, DataFormatOptions needs be rebuilt to + // account for this setting. + this.dataFormatOptions = + dataFormatOptions.toBuilder().useInt64Timestamp(useInt64Timestamps).build(); } @Deprecated @@ -206,8 +255,22 @@ public boolean getThrowNotFound() { return setThrowNotFound; } + /** + * This getter is marked as Obsolete. Prefer {@link + * DataFormatOptions.Builder#useInt64Timestamp(boolean)} to set the int64timestamp configuration + * instead. + * + *

    Warning: DataFormatOptions values have precedence. Use {@link + * DataFormatOptions#useInt64Timestamp()} to get `useInt64Timestamp` value used by the BigQuery + * client. + */ + @ObsoleteApi("Use getDataFormatOptions().isUseInt64Timestamp() instead") public boolean getUseInt64Timestamps() { - return useInt64Timestamps; + return dataFormatOptions.useInt64Timestamp(); + } + + public DataFormatOptions getDataFormatOptions() { + return dataFormatOptions; } public JobCreationMode getDefaultJobCreationMode() { diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DataFormatOptions.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DataFormatOptions.java new file mode 100644 index 000000000000..beaadf32cf95 --- /dev/null +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DataFormatOptions.java @@ -0,0 +1,73 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery; + +import com.google.auto.value.AutoValue; +import java.io.Serializable; + +/** + * Google BigQuery DataFormatOptions. Configures the output format for data types returned from + * BigQuery. + */ +@AutoValue +public abstract class DataFormatOptions implements Serializable { + public enum TimestampFormatOptions { + TIMESTAMP_OUTPUT_FORMAT_UNSPECIFIED("TIMESTAMP_OUTPUT_FORMAT_UNSPECIFIED"), + FLOAT64("FLOAT64"), + INT64("INT64"), + ISO8601_STRING("ISO8601_STRING"); + + private final String format; + + TimestampFormatOptions(String format) { + this.format = format; + } + + @Override + public String toString() { + return format; + } + } + + public abstract boolean useInt64Timestamp(); + + public abstract TimestampFormatOptions timestampFormatOptions(); + + public static Builder newBuilder() { + return new AutoValue_DataFormatOptions.Builder() + .useInt64Timestamp(false) + .timestampFormatOptions(TimestampFormatOptions.TIMESTAMP_OUTPUT_FORMAT_UNSPECIFIED); + } + + public abstract Builder toBuilder(); + + @AutoValue.Builder + public abstract static class Builder { + public abstract Builder useInt64Timestamp(boolean useInt64Timestamp); + + public abstract Builder timestampFormatOptions(TimestampFormatOptions timestampFormatOptions); + + public abstract DataFormatOptions build(); + } + + com.google.api.services.bigquery.model.DataFormatOptions toPb() { + com.google.api.services.bigquery.model.DataFormatOptions request = + new com.google.api.services.bigquery.model.DataFormatOptions(); + request.setUseInt64Timestamp(useInt64Timestamp()); + request.setTimestampOutputFormat(timestampFormatOptions().toString()); + return request; + } +} diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java index 588b7cae8cef..c7033817c367 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java @@ -46,7 +46,8 @@ final class QueryRequestInfo { private final DataFormatOptions formatOptions; private final String reservation; - QueryRequestInfo(QueryJobConfiguration config, Boolean useInt64Timestamps) { + QueryRequestInfo( + QueryJobConfiguration config, com.google.cloud.bigquery.DataFormatOptions dataFormatOptions) { this.config = config; this.connectionProperties = config.getConnectionProperties(); this.defaultDataset = config.getDefaultDataset(); @@ -61,7 +62,7 @@ final class QueryRequestInfo { this.useLegacySql = config.useLegacySql(); this.useQueryCache = config.useQueryCache(); this.jobCreationMode = config.getJobCreationMode(); - this.formatOptions = new DataFormatOptions().setUseInt64Timestamp(useInt64Timestamps); + this.formatOptions = dataFormatOptions.toPb(); this.reservation = config.getReservation(); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java index 4176ec24dcd1..e77d7936a42e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java @@ -16,6 +16,11 @@ package com.google.cloud.bigquery; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + import com.google.cloud.TransportOptions; import org.junit.Assert; import org.junit.Test; @@ -35,4 +40,55 @@ public void testInvalidTransport() { Assert.assertNotNull(expected.getMessage()); } } + + @Test + public void dataFormatOptions_createdByDefault() { + BigQueryOptions options = BigQueryOptions.newBuilder().setProjectId("project-id").build(); + + assertNotNull(options.getDataFormatOptions()); + assertFalse(options.getDataFormatOptions().useInt64Timestamp()); + assertEquals( + DataFormatOptions.TimestampFormatOptions.TIMESTAMP_OUTPUT_FORMAT_UNSPECIFIED, + options.getDataFormatOptions().timestampFormatOptions()); + } + + @Test + public void nonBuilderSetUseInt64Timestamp_capturedInDataFormatOptions() { + BigQueryOptions options = + BigQueryOptions.newBuilder() + .setDataFormatOptions(DataFormatOptions.newBuilder().useInt64Timestamp(false).build()) + .setProjectId("project-id") + .build(); + options.setUseInt64Timestamps(true); + + assertTrue(options.getDataFormatOptions().useInt64Timestamp()); + } + + @Test + public void nonBuilderSetUseInt64Timestamp_overridesEverything() { + BigQueryOptions options = BigQueryOptions.newBuilder().setProjectId("project-id").build(); + options.setUseInt64Timestamps(true); + + assertTrue(options.getDataFormatOptions().useInt64Timestamp()); + } + + @Test + public void noDataFormatOptions_capturesUseInt64TimestampSetInBuilder() { + BigQueryOptions options = + BigQueryOptions.newBuilder().setUseInt64Timestamps(true).setProjectId("project-id").build(); + + assertTrue(options.getDataFormatOptions().useInt64Timestamp()); + } + + @Test + public void dataFormatOptionsSetterHasPrecedence() { + BigQueryOptions options = + BigQueryOptions.newBuilder() + .setProjectId("project-id") + .setDataFormatOptions(DataFormatOptions.newBuilder().useInt64Timestamp(true).build()) + .setUseInt64Timestamps(false) + .build(); + + assertTrue(options.getDataFormatOptions().useInt64Timestamp()); + } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java index ed9effe0b42f..866134677699 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java @@ -140,7 +140,8 @@ public class QueryRequestInfoTest { .setJobCreationMode(jobCreationModeRequired) .setReservation(RESERVATION) .build(); - QueryRequestInfo REQUEST_INFO = new QueryRequestInfo(QUERY_JOB_CONFIGURATION, false); + QueryRequestInfo REQUEST_INFO = + new QueryRequestInfo(QUERY_JOB_CONFIGURATION, DataFormatOptions.newBuilder().build()); private static final QueryJobConfiguration QUERY_JOB_CONFIGURATION_SUPPORTED = QueryJobConfiguration.newBuilder(QUERY) .setUseQueryCache(USE_QUERY_CACHE) @@ -156,7 +157,8 @@ public class QueryRequestInfoTest { .setReservation(RESERVATION) .build(); QueryRequestInfo REQUEST_INFO_SUPPORTED = - new QueryRequestInfo(QUERY_JOB_CONFIGURATION_SUPPORTED, false); + new QueryRequestInfo( + QUERY_JOB_CONFIGURATION_SUPPORTED, DataFormatOptions.newBuilder().build()); @Test public void testIsFastQuerySupported() { @@ -177,17 +179,25 @@ public void testToPb() { @Test public void equalTo() { compareQueryRequestInfo( - new QueryRequestInfo(QUERY_JOB_CONFIGURATION_SUPPORTED, false), REQUEST_INFO_SUPPORTED); - compareQueryRequestInfo(new QueryRequestInfo(QUERY_JOB_CONFIGURATION, false), REQUEST_INFO); + new QueryRequestInfo( + QUERY_JOB_CONFIGURATION_SUPPORTED, DataFormatOptions.newBuilder().build()), + REQUEST_INFO_SUPPORTED); + compareQueryRequestInfo( + new QueryRequestInfo(QUERY_JOB_CONFIGURATION, DataFormatOptions.newBuilder().build()), + REQUEST_INFO); } @Test public void testInt64Timestamp() { - QueryRequestInfo requestInfo = new QueryRequestInfo(QUERY_JOB_CONFIGURATION, false); + QueryRequestInfo requestInfo = + new QueryRequestInfo(QUERY_JOB_CONFIGURATION, DataFormatOptions.newBuilder().build()); QueryRequest requestPb = requestInfo.toPb(); assertFalse(requestPb.getFormatOptions().getUseInt64Timestamp()); - QueryRequestInfo requestInfoLosslessTs = new QueryRequestInfo(QUERY_JOB_CONFIGURATION, true); + QueryRequestInfo requestInfoLosslessTs = + new QueryRequestInfo( + QUERY_JOB_CONFIGURATION, + DataFormatOptions.newBuilder().useInt64Timestamp(true).build()); QueryRequest requestLosslessTsPb = requestInfoLosslessTs.toPb(); assertTrue(requestLosslessTsPb.getFormatOptions().getUseInt64Timestamp()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index ec1f7b5a096d..268199869e2c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -71,6 +71,7 @@ import com.google.cloud.bigquery.ConnectionSettings; import com.google.cloud.bigquery.CopyJobConfiguration; import com.google.cloud.bigquery.CsvOptions; +import com.google.cloud.bigquery.DataFormatOptions; import com.google.cloud.bigquery.Dataset; import com.google.cloud.bigquery.DatasetId; import com.google.cloud.bigquery.DatasetInfo; @@ -3462,8 +3463,11 @@ public void testLosslessTimestamp() throws InterruptedException { // Create new BQ object to toggle lossless timestamps without affecting // other tests. RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); - BigQuery bigqueryLossless = bigqueryHelper.getOptions().getService(); - bigqueryLossless.getOptions().setUseInt64Timestamps(true); + DataFormatOptions dataFormatOptions = + DataFormatOptions.newBuilder().useInt64Timestamp(true).build(); + BigQueryOptions options = + bigqueryHelper.getOptions().toBuilder().setDataFormatOptions(dataFormatOptions).build(); + BigQuery bigqueryLossless = options.getService(); TableResult resultLossless = bigqueryLossless.query( From 57ffe1d2ba8af3b950438c926d66ac23ca8a3093 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 8 Dec 2025 16:53:20 -0500 Subject: [PATCH 3342/3441] feat: Add timestamp_precision to Field (#4014) * feat: Add timestamp_precision to Field * Apply suggestion from @gemini-code-assist[bot] Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * chore: Address GCA PR feedback * chore: Fix typo * chore: Remove default value * chore: Address PR feedback --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- .../java/com/google/cloud/bigquery/Field.java | 44 ++++++++++++++++++- .../com/google/cloud/bigquery/FieldTest.java | 15 +++++++ 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index 3c959a73fe79..88e09c5c4817 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -25,6 +25,7 @@ import com.google.api.services.bigquery.model.TableFieldSchema; import com.google.common.base.Function; import com.google.common.base.MoreObjects; +import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import java.io.Serializable; import java.util.List; @@ -62,6 +63,7 @@ public TableFieldSchema apply(Field field) { private final Long maxLength; private final Long scale; private final Long precision; + private final Long timestampPrecision; private final String defaultValueExpression; private final String collation; private final FieldElementType rangeElementType; @@ -88,6 +90,7 @@ public static final class Builder { private Long maxLength; private Long scale; private Long precision; + private Long timestampPrecision; private String defaultValueExpression; private String collation; private FieldElementType rangeElementType; @@ -104,6 +107,7 @@ private Builder(Field field) { this.maxLength = field.maxLength; this.scale = field.scale; this.precision = field.precision; + this.timestampPrecision = field.timestampPrecision; this.defaultValueExpression = field.defaultValueExpression; this.collation = field.collation; this.rangeElementType = field.rangeElementType; @@ -254,6 +258,19 @@ public Builder setPrecision(Long precision) { return this; } + /** + * Specifies the precision for TIMESTAMP types. + * + *

    The default value is 6. Possible values are 6 (microsecond) or 12 (picosecond). + */ + public Builder setTimestampPrecision(Long timestampPrecision) { + Preconditions.checkArgument( + timestampPrecision == 6L || timestampPrecision == 12L, + "Timestamp Precision must be 6 (microsecond) or 12 (picosecond)"); + this.timestampPrecision = timestampPrecision; + return this; + } + /** * DefaultValueExpression is used to specify the default value of a field using a SQL * expression. It can only be set for top level fields (columns). @@ -317,6 +334,7 @@ private Field(Builder builder) { this.maxLength = builder.maxLength; this.scale = builder.scale; this.precision = builder.precision; + this.timestampPrecision = builder.timestampPrecision; this.defaultValueExpression = builder.defaultValueExpression; this.collation = builder.collation; this.rangeElementType = builder.rangeElementType; @@ -370,6 +388,11 @@ public Long getPrecision() { return precision; } + /** Returns the precision for TIMESTAMP type. */ + public Long getTimestampPrecision() { + return timestampPrecision; + } + /** Return the default value of the field. */ public String getDefaultValueExpression() { return defaultValueExpression; @@ -408,6 +431,7 @@ public String toString() { .add("maxLength", maxLength) .add("scale", scale) .add("precision", precision) + .add("timestampPrecision", timestampPrecision) .add("defaultValueExpression", defaultValueExpression) .add("collation", collation) .add("rangeElementType", rangeElementType) @@ -416,7 +440,19 @@ public String toString() { @Override public int hashCode() { - return Objects.hash(name, type, mode, description, policyTags, rangeElementType); + return Objects.hash( + name, + type, + mode, + description, + policyTags, + maxLength, + scale, + precision, + timestampPrecision, + defaultValueExpression, + collation, + rangeElementType); } @Override @@ -490,6 +526,9 @@ TableFieldSchema toPb() { if (precision != null) { fieldSchemaPb.setPrecision(precision); } + if (timestampPrecision != null) { + fieldSchemaPb.setTimestampPrecision(timestampPrecision); + } if (defaultValueExpression != null) { fieldSchemaPb.setDefaultValueExpression(defaultValueExpression); } @@ -527,6 +566,9 @@ static Field fromPb(TableFieldSchema fieldSchemaPb) { if (fieldSchemaPb.getPrecision() != null) { fieldBuilder.setPrecision(fieldSchemaPb.getPrecision()); } + if (fieldSchemaPb.getTimestampPrecision() != null) { + fieldBuilder.setTimestampPrecision(fieldSchemaPb.getTimestampPrecision()); + } if (fieldSchemaPb.getDefaultValueExpression() != null) { fieldBuilder.setDefaultValueExpression(fieldSchemaPb.getDefaultValueExpression()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java index ce431ca295a3..d7c5e25a2e1c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java @@ -17,6 +17,7 @@ package com.google.cloud.bigquery; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -213,6 +214,20 @@ public void testSubFieldWithClonedType() throws Exception { Field.of("field", clonedRecord, Field.of("subfield", LegacySQLTypeName.BOOLEAN)); } + @Test + public void setTimestampPrecisionValues() { + Field.Builder builder = Field.newBuilder(FIELD_NAME1, FIELD_TYPE1); + + // Value values: 6L or 12L + builder.setTimestampPrecision(6L); + builder.setTimestampPrecision(12L); + + assertThrows(IllegalArgumentException.class, () -> builder.setTimestampPrecision(-1L)); + assertThrows(IllegalArgumentException.class, () -> builder.setTimestampPrecision(0L)); + assertThrows(IllegalArgumentException.class, () -> builder.setTimestampPrecision(5L)); + assertThrows(IllegalArgumentException.class, () -> builder.setTimestampPrecision(13L)); + } + private void compareFieldSchemas(Field expected, Field value) { assertEquals(expected, value); assertEquals(expected.getName(), value.getName()); From 5a51a51ced49957d53a911c585bbbd69aaf8283f Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 8 Dec 2025 17:07:06 -0500 Subject: [PATCH 3343/3441] chore: Use custom timestamp validator for ISO8601 timestamps with more than nanosecond precision (#4017) * chore: Use custom timestamp validator for ISO8601 timestamps with more than nanosecond precision * chore: Rename helper method to validateTimestamp * chore: Address GCA comments * chore: Address last GCA comment * chore: Update to use assert helper method --- .../cloud/bigquery/QueryParameterValue.java | 72 ++++++++-- .../bigquery/QueryParameterValueTest.java | 131 ++++++++++-------- 2 files changed, 136 insertions(+), 67 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index 0487c3f7c319..cb4e44861d41 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -26,6 +26,7 @@ import com.google.api.services.bigquery.model.RangeValue; import com.google.auto.value.AutoValue; import com.google.cloud.Timestamp; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -44,6 +45,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.annotation.Nullable; import org.threeten.extra.PeriodDuration; @@ -76,7 +79,7 @@ @AutoValue public abstract class QueryParameterValue implements Serializable { - private static final DateTimeFormatter timestampFormatter = + static final DateTimeFormatter TIMESTAMP_FORMATTER = new DateTimeFormatterBuilder() .parseLenient() .append(DateTimeFormatter.ISO_LOCAL_DATE) @@ -94,15 +97,21 @@ public abstract class QueryParameterValue implements Serializable { .optionalEnd() .toFormatter() .withZone(ZoneOffset.UTC); - private static final DateTimeFormatter timestampValidator = + private static final DateTimeFormatter TIMESTAMP_VALIDATOR = new DateTimeFormatterBuilder() .parseLenient() - .append(timestampFormatter) + .append(TIMESTAMP_FORMATTER) .optionalStart() .appendOffsetId() .optionalEnd() .toFormatter() .withZone(ZoneOffset.UTC); + // Regex to identify >9 digits in the fraction part (e.g. `.123456789123`) + // Matches the dot, followed by 10+ digits (fractional part), followed by non-digits (like `+00`) + // or end of string + private static final Pattern ISO8601_TIMESTAMP_HIGH_PRECISION_PATTERN = + Pattern.compile("\\.(\\d{10,})(?:\\D|$)"); + private static final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); private static final DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss.SSSSSS"); @@ -303,6 +312,9 @@ public static QueryParameterValue bytes(byte[] value) { /** * Creates a {@code QueryParameterValue} object with a type of TIMESTAMP. * + *

    This method only supports microsecond precision for timestamp. To use higher precision, + * prefer {@link #timestamp(String)} with an ISO8601 String + * * @param value Microseconds since epoch, e.g. 1733945416000000 corresponds to 2024-12-11 * 19:30:16.929Z */ @@ -311,8 +323,14 @@ public static QueryParameterValue timestamp(Long value) { } /** - * Creates a {@code QueryParameterValue} object with a type of TIMESTAMP. Must be in the format - * "yyyy-MM-dd HH:mm:ss.SSSSSSZZ", e.g. "2014-08-19 12:41:35.220000+00:00". + * Creates a {@code QueryParameterValue} object with a type of TIMESTAMP. + * + *

    This method supports up to picosecond precision (12 digits) for timestamp. Input should + * conform to ISO8601 format. + * + *

    Must be in the format "yyyy-MM-dd HH:mm:ss.SSSSSS{SSSSSSS}ZZ", e.g. "2014-08-19 + * 12:41:35.123456+00:00" for microsecond precision and "2014-08-19 12:41:35.123456789123+00:00" + * for picosecond precision */ public static QueryParameterValue timestamp(String value) { return of(value, StandardSQLTypeName.TIMESTAMP); @@ -481,12 +499,15 @@ private static String valueToStringOrNull(T value, StandardSQLTypeName type) throw new IllegalArgumentException("Cannot convert RANGE to String value"); case TIMESTAMP: if (value instanceof Long) { + // Timestamp passed as a Long only support Microsecond precision Timestamp timestamp = Timestamp.ofTimeMicroseconds((Long) value); - return timestampFormatter.format( + return TIMESTAMP_FORMATTER.format( Instant.ofEpochSecond(timestamp.getSeconds(), timestamp.getNanos())); } else if (value instanceof String) { - // verify that the String is in the right format - checkFormat(value, timestampValidator); + // Timestamp passed as a String can support up picosecond precision, however, + // DateTimeFormatter only supports nanosecond precision. Higher than nanosecond + // requires a custom validator. + validateTimestamp((String) value); return (String) value; } break; @@ -521,9 +542,42 @@ private static String valueToStringOrNull(T value, StandardSQLTypeName type) "Type " + type + " incompatible with " + value.getClass().getCanonicalName()); } + /** + * Internal helper method to check that the timestamp follows the expected String input of ISO8601 + * string. Allows the fractional portion of the timestamp to support up to 12 digits of precision + * (up to picosecond). + * + * @throws IllegalArgumentException if timestamp is invalid or exceeds picosecond precision + */ + @VisibleForTesting + static void validateTimestamp(String timestamp) { + // Check if the string has greater than nanosecond precision (>9 digits in fractional second) + Matcher matcher = ISO8601_TIMESTAMP_HIGH_PRECISION_PATTERN.matcher(timestamp); + if (matcher.find()) { + // Group 1 is the fractional second part of the ISO8601 string + String fraction = matcher.group(1); + // Pos 10-12 of the fractional second are guaranteed to be digits. The regex only + // matches the fraction section as long as they are digits. + if (fraction.length() > 12) { + throw new IllegalArgumentException( + "Fractional second portion of ISO8601 only supports up to picosecond (12 digits) in BigQuery"); + } + + // Replace the entire fractional second portion with just the nanosecond portion. + // The new timestamp will be validated against the JDK's DateTimeFormatter + String truncatedFraction = fraction.substring(0, 9); + timestamp = + new StringBuilder(timestamp) + .replace(matcher.start(1), matcher.end(1), truncatedFraction) + .toString(); + } + + // It is valid as long as DateTimeFormatter doesn't throw an exception + checkFormat(timestamp, TIMESTAMP_VALIDATOR); + } + private static void checkFormat(Object value, DateTimeFormatter formatter) { try { - formatter.parse((String) value); } catch (DateTimeParseException e) { throw new IllegalArgumentException(e.getMessage(), e); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index 75060a4f0403..25649388e98b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -16,11 +16,9 @@ package com.google.cloud.bigquery; +import static com.google.cloud.bigquery.QueryParameterValue.TIMESTAMP_FORMATTER; import static com.google.common.truth.Truth.assertThat; -import static java.time.temporal.ChronoField.HOUR_OF_DAY; -import static java.time.temporal.ChronoField.MINUTE_OF_HOUR; -import static java.time.temporal.ChronoField.NANO_OF_SECOND; -import static java.time.temporal.ChronoField.SECOND_OF_MINUTE; +import static org.junit.Assert.assertThrows; import com.google.api.services.bigquery.model.QueryParameterType; import com.google.common.collect.ImmutableMap; @@ -29,9 +27,6 @@ import java.text.ParseException; import java.time.Instant; import java.time.Period; -import java.time.ZoneOffset; -import java.time.format.DateTimeFormatter; -import java.time.format.DateTimeFormatterBuilder; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; @@ -43,25 +38,6 @@ public class QueryParameterValueTest { - private static final DateTimeFormatter TIMESTAMPFORMATTER = - new DateTimeFormatterBuilder() - .parseLenient() - .append(DateTimeFormatter.ISO_LOCAL_DATE) - .appendLiteral(' ') - .appendValue(HOUR_OF_DAY, 2) - .appendLiteral(':') - .appendValue(MINUTE_OF_HOUR, 2) - .optionalStart() - .appendLiteral(':') - .appendValue(SECOND_OF_MINUTE, 2) - .optionalStart() - .appendFraction(NANO_OF_SECOND, 6, 9, true) - .optionalStart() - .appendOffset("+HHMM", "+00:00") - .optionalEnd() - .toFormatter() - .withZone(ZoneOffset.UTC); - private static final QueryParameterValue QUERY_PARAMETER_VALUE = QueryParameterValue.newBuilder() .setType(StandardSQLTypeName.STRING) @@ -326,11 +302,9 @@ public void testStringArray() { @Test public void testTimestampFromLong() { - QueryParameterValue value = QueryParameterValue.timestamp(1408452095220000L); - assertThat(value.getValue()).isEqualTo("2014-08-19 12:41:35.220000+00:00"); - assertThat(value.getType()).isEqualTo(StandardSQLTypeName.TIMESTAMP); - assertThat(value.getArrayType()).isNull(); - assertThat(value.getArrayValues()).isNull(); + // Expects output to be ISO8601 string with microsecond precision + assertTimestampValue( + QueryParameterValue.timestamp(1408452095220000L), "2014-08-19 12:41:35.220000+00:00"); } @Test @@ -340,43 +314,77 @@ public void testTimestampWithFormatter() { long secs = Math.floorDiv(timestampInMicroseconds, microseconds); int nano = (int) Math.floorMod(timestampInMicroseconds, microseconds) * 1000; Instant instant = Instant.ofEpochSecond(secs, nano); - String expected = TIMESTAMPFORMATTER.format(instant); - assertThat(expected) - .isEqualTo(QueryParameterValue.timestamp(timestampInMicroseconds).getValue()); + String expected = TIMESTAMP_FORMATTER.format(instant); + assertTimestampValue(QueryParameterValue.timestamp(timestampInMicroseconds), expected); } @Test - public void testTimestamp() { - QueryParameterValue value = QueryParameterValue.timestamp("2014-08-19 12:41:35.220000+00:00"); - assertThat(value.getValue()).isEqualTo("2014-08-19 12:41:35.220000+00:00"); - assertThat(value.getType()).isEqualTo(StandardSQLTypeName.TIMESTAMP); - assertThat(value.getArrayType()).isNull(); - assertThat(value.getArrayValues()).isNull(); + public void testTimestampFromString() { + assertTimestampValue( + QueryParameterValue.timestamp("2014-08-19 12:41:35.220000+00:00"), + "2014-08-19 12:41:35.220000+00:00"); + assertTimestampValue( + QueryParameterValue.timestamp("2025-08-19 12:34:56.123456789+00:00"), + "2025-08-19 12:34:56.123456789+00:00"); + + // The following test cases test more than nanosecond precision + // 10 digits of precision (1 digit more than nanosecond) + assertTimestampValue( + QueryParameterValue.timestamp("2025-12-08 12:34:56.1234567890+00:00"), + "2025-12-08 12:34:56.1234567890+00:00"); + // 12 digits (picosecond precision) + assertTimestampValue( + QueryParameterValue.timestamp("2025-12-08 12:34:56.123456789123+00:00"), + "2025-12-08 12:34:56.123456789123+00:00"); + + // More than picosecond precision + assertThrows( + IllegalArgumentException.class, + () -> QueryParameterValue.timestamp("2025-12-08 12:34:56.1234567891234+00:00")); + assertThrows( + IllegalArgumentException.class, + () -> + QueryParameterValue.timestamp("2025-12-08 12:34:56.123456789123456789123456789+00:00")); } @Test public void testTimestampWithDateTimeFormatterBuilder() { - QueryParameterValue value = QueryParameterValue.timestamp("2019-02-14 12:34:45.938993Z"); - assertThat(value.getValue()).isEqualTo("2019-02-14 12:34:45.938993Z"); - assertThat(value.getType()).isEqualTo(StandardSQLTypeName.TIMESTAMP); - assertThat(value.getArrayType()).isNull(); - assertThat(value.getArrayValues()).isNull(); - QueryParameterValue value1 = QueryParameterValue.timestamp("2019-02-14 12:34:45.938993+0000"); - assertThat(value1.getValue()).isEqualTo("2019-02-14 12:34:45.938993+0000"); - assertThat(value1.getType()).isEqualTo(StandardSQLTypeName.TIMESTAMP); - assertThat(value1.getArrayType()).isNull(); - assertThat(value1.getArrayValues()).isNull(); - QueryParameterValue value2 = QueryParameterValue.timestamp("2019-02-14 12:34:45.102+00:00"); - assertThat(value2.getValue()).isEqualTo("2019-02-14 12:34:45.102+00:00"); - assertThat(value2.getType()).isEqualTo(StandardSQLTypeName.TIMESTAMP); - assertThat(value2.getArrayType()).isNull(); - assertThat(value2.getArrayValues()).isNull(); + assertTimestampValue( + QueryParameterValue.timestamp("2019-02-14 12:34:45.938993Z"), + "2019-02-14 12:34:45.938993Z"); + assertTimestampValue( + QueryParameterValue.timestamp("2019-02-14 12:34:45.938993+0000"), + "2019-02-14 12:34:45.938993+0000"); + assertTimestampValue( + QueryParameterValue.timestamp("2019-02-14 12:34:45.102+00:00"), + "2019-02-14 12:34:45.102+00:00"); } - @Test(expected = IllegalArgumentException.class) - public void testInvalidTimestamp() { + @Test + public void testInvalidTimestampStringValues() { + assertThrows(IllegalArgumentException.class, () -> QueryParameterValue.timestamp("abc")); + // missing the time - QueryParameterValue.timestamp("2014-08-19"); + assertThrows(IllegalArgumentException.class, () -> QueryParameterValue.timestamp("2014-08-19")); + + // missing the hour + assertThrows( + IllegalArgumentException.class, () -> QueryParameterValue.timestamp("2014-08-19 12")); + + // can't have the 'T' separator + assertThrows( + IllegalArgumentException.class, () -> QueryParameterValue.timestamp("2014-08-19T12")); + assertThrows( + IllegalArgumentException.class, + () -> QueryParameterValue.timestamp("2014-08-19T12:34:00.123456")); + + // Fractional part has picosecond length, but fractional part is not a valid number + assertThrows( + IllegalArgumentException.class, + () -> QueryParameterValue.timestamp("2014-08-19 12:34:00.123456789abc+00:00")); + assertThrows( + IllegalArgumentException.class, + () -> QueryParameterValue.timestamp("2014-08-19 12:34:00.123456abc789+00:00")); } @Test @@ -683,4 +691,11 @@ private static void testRangeDataEquals(String start, String end, FieldElementTy assertThat(queryParameterValue.getStructValues()).isNull(); assertThat(queryParameterValue.getValue()).isNull(); } + + private void assertTimestampValue(QueryParameterValue value, String expectedStringValue) { + assertThat(value.getValue()).isEqualTo(expectedStringValue); + assertThat(value.getType()).isEqualTo(StandardSQLTypeName.TIMESTAMP); + assertThat(value.getArrayType()).isNull(); + assertThat(value.getArrayValues()).isNull(); + } } From 5ad1ce7625a8fe74cd6b8a084fb144de6c34b240 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 12:52:30 -0500 Subject: [PATCH 3344/3441] chore(main): release 2.56.1-SNAPSHOT (#4001) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 9f219179fd9a..75b4d4d8a62d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.56.0 + 2.56.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 2e6d9828bbc5..357c509748a8 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.56.0 + 2.56.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.56.0 + 2.56.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 304230dd219e..5994781371a6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.56.0 + 2.56.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.56.0 + 2.56.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2169463a6b40..06d3a7bfec11 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.56.0 + 2.56.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.56.0 + 2.56.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 6cabd8bbfc61..923d2f6031b2 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.56.0 + 2.56.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 46c19475b063..7f07bf209668 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.56.0:2.56.0 \ No newline at end of file +google-cloud-bigquery:2.56.0:2.56.1-SNAPSHOT \ No newline at end of file From d2f20579fd60efc36fa4239619e0d679a914cd6d Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 11 Dec 2025 19:25:27 +0000 Subject: [PATCH 3345/3441] deps: update dependency com.google.cloud:sdk-platform-java-config to v3.54.2 (#4022) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 5ba388acc0b8..3c07fc2027fb 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.54.1 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.54.2 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index 0d98de5094a7..20c0ac4a522c 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.54.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.54.2" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index c270bff717db..3b7b14a6508e 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.54.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.54.2" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index 720f8bcfafef..a41d88c0928f 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.54.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.54.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index 0d98de5094a7..20c0ac4a522c 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.54.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.54.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index c270bff717db..3b7b14a6508e 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.54.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.54.2" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index 720f8bcfafef..a41d88c0928f 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.54.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.54.2" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 357c509748a8..18b870c38e55 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.54.1 + 3.54.2 diff --git a/pom.xml b/pom.xml index 06d3a7bfec11..0e5d85cd957a 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.54.1 + 3.54.2 From f4a15364e294a6c379fefe965973f5e140a091e5 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Thu, 11 Dec 2025 17:55:34 -0500 Subject: [PATCH 3346/3441] chore(main): release 2.57.0 (#4021) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 14 ++++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 23 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59350c03bc10..f9397c65bcc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [2.57.0](https://github.com/googleapis/java-bigquery/compare/v2.56.0...v2.57.0) (2025-12-11) + + +### Features + +* Add timestamp_precision to Field ([#4014](https://github.com/googleapis/java-bigquery/issues/4014)) ([57ffe1d](https://github.com/googleapis/java-bigquery/commit/57ffe1d2ba8af3b950438c926d66ac23ca8a3093)) +* Introduce DataFormatOptions to configure the output of BigQuery data types ([#4010](https://github.com/googleapis/java-bigquery/issues/4010)) ([6dcc900](https://github.com/googleapis/java-bigquery/commit/6dcc90053353422ae766e531413b3ecc65b8b155)) +* Relax client-side validation for BigQuery entity IDs ([#4000](https://github.com/googleapis/java-bigquery/issues/4000)) ([c3548a2](https://github.com/googleapis/java-bigquery/commit/c3548a2f521b19761c844c0b24fc8caab541aba7)) + + +### Dependencies + +* Update dependency com.google.cloud:sdk-platform-java-config to v3.54.2 ([#4022](https://github.com/googleapis/java-bigquery/issues/4022)) ([d2f2057](https://github.com/googleapis/java-bigquery/commit/d2f20579fd60efc36fa4239619e0d679a914cd6d)) + ## [2.56.0](https://github.com/googleapis/java-bigquery/compare/v2.55.3...v2.56.0) (2025-11-15) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 75b4d4d8a62d..a1ac9dc9aecb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.56.1-SNAPSHOT + 2.57.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 18b870c38e55..8d2b8864aa4e 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.56.1-SNAPSHOT + 2.57.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.56.1-SNAPSHOT + 2.57.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5994781371a6..d3a1150d35d6 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.56.1-SNAPSHOT + 2.57.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.56.1-SNAPSHOT + 2.57.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 0e5d85cd957a..b9fedf5f874a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.56.1-SNAPSHOT + 2.57.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.56.1-SNAPSHOT + 2.57.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 923d2f6031b2..e2e994a16b41 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.56.1-SNAPSHOT + 2.57.0 diff --git a/versions.txt b/versions.txt index 7f07bf209668..fe934a8fc57a 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.56.0:2.56.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.57.0:2.57.0 \ No newline at end of file From 3f592a50d25852caaf4e71f64446e153d39ccc1d Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Fri, 12 Dec 2025 10:06:45 -0500 Subject: [PATCH 3347/3441] test: Clean up resources created in ITs (#4024) * chore: Cleanup initialized resources * chore: Delete created dataset * chore: Use try-with to close stream --- .../cloud/bigquery/it/ITBigQueryTest.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 268199869e2c..d565688d5037 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1099,10 +1099,12 @@ public static void beforeClass() throws InterruptedException, IOException { .setContentType("application/json") .build(), JSON_CONTENT_SIMPLE.getBytes(StandardCharsets.UTF_8)); - InputStream stream = - ITBigQueryTest.class.getClassLoader().getResourceAsStream("QueryTestData.csv"); - storage.createFrom( - BlobInfo.newBuilder(BUCKET, LOAD_FILE_LARGE).setContentType("text/plain").build(), stream); + try (InputStream stream = + ITBigQueryTest.class.getClassLoader().getResourceAsStream("QueryTestData.csv")) { + storage.createFrom( + BlobInfo.newBuilder(BUCKET, LOAD_FILE_LARGE).setContentType("text/plain").build(), + stream); + } storage.create( BlobInfo.newBuilder(BUCKET, JSON_LOAD_FILE_BQ_RESULTSET) .setContentType("application/json") @@ -1179,10 +1181,11 @@ public static void beforeClass() throws InterruptedException, IOException { } @AfterClass - public static void afterClass() throws ExecutionException, InterruptedException { + public static void afterClass() throws Exception { if (bigquery != null) { RemoteBigQueryHelper.forceDelete(bigquery, DATASET); RemoteBigQueryHelper.forceDelete(bigquery, UK_DATASET); + RemoteBigQueryHelper.forceDelete(bigquery, OTHER_DATASET); RemoteBigQueryHelper.forceDelete(bigquery, MODEL_DATASET); RemoteBigQueryHelper.forceDelete(bigquery, ROUTINE_DATASET); } @@ -1191,6 +1194,11 @@ public static void afterClass() throws ExecutionException, InterruptedException if (!wasDeleted && LOG.isLoggable(Level.WARNING)) { LOG.log(Level.WARNING, "Deletion of bucket {0} timed out, bucket is not empty", BUCKET); } + storage.close(); + } + + if (otel instanceof OpenTelemetrySdk) { + ((OpenTelemetrySdk) otel).close(); } } From 380e0d999a0bd79dad8f3b777ab511bdf2e657e3 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 12 Dec 2025 19:39:10 +0000 Subject: [PATCH 3348/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.19.0 (#4025) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b9fedf5f874a..068d0cad930c 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.18.0 + 3.19.0 pom import From 3b8b8ef11aefdeac9512d10e1441e6ae91c4cc1f Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:39:26 -0500 Subject: [PATCH 3349/3441] chore(main): release 2.57.1-SNAPSHOT (#4023) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index a1ac9dc9aecb..8d70e4d685cb 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.57.0 + 2.57.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 8d2b8864aa4e..353200803472 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.57.0 + 2.57.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.57.0 + 2.57.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index d3a1150d35d6..9517e4919884 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.57.0 + 2.57.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.57.0 + 2.57.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 068d0cad930c..129c6226c6f4 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.57.0 + 2.57.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.57.0 + 2.57.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e2e994a16b41..3976d33b4ed6 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.57.0 + 2.57.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index fe934a8fc57a..e6d97a704224 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.57.0:2.57.0 \ No newline at end of file +google-cloud-bigquery:2.57.0:2.57.1-SNAPSHOT \ No newline at end of file From c161364aeac184917174b290adb0108cba3d2489 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Fri, 12 Dec 2025 15:14:45 -0500 Subject: [PATCH 3350/3441] chore: Cleanup Intellij test warnings (#4026) * chore: Cleanup initialized resources * chore: Use try-with to close stream * chore: Cleanup Intellij test warnings * chore: Allow for floating point inaccuracies * chore: Add otel delete operation --- .../cloud/bigquery/it/ITBigQueryTest.java | 273 +++++++++--------- 1 file changed, 132 insertions(+), 141 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index d565688d5037..de9fef4ee58d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -44,7 +44,6 @@ import com.google.cloud.bigquery.Acl.Expr; import com.google.cloud.bigquery.Acl.User; import com.google.cloud.bigquery.BigQuery; -import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; import com.google.cloud.bigquery.BigQuery.DatasetField; import com.google.cloud.bigquery.BigQuery.DatasetListOption; import com.google.cloud.bigquery.BigQuery.DatasetOption; @@ -1434,8 +1433,8 @@ public void testUpdateDatasetWithAccessPolicyVersion() throws IOException { datasetOption, updateModeOption); assertNotNull(updatedDataset); - assertEquals(updatedDataset.getDescription(), "Updated Description"); - assertThat(updatedDataset.getLabels().isEmpty()); + assertEquals("Updated Description", updatedDataset.getDescription()); + assertTrue(updatedDataset.getLabels().isEmpty()); Acl updatedAclWithCond = null; for (Acl updatedAcl : updatedDataset.getAcl()) { @@ -1875,7 +1874,7 @@ public void testCreateDatasetWithAccessPolicyVersion() throws IOException { DatasetOption datasetOption = DatasetOption.accessPolicyVersion(3); Dataset dataset = bigquery.create(info, datasetOption); assertNotNull(dataset); - assertEquals(dataset.getDescription(), DESCRIPTION); + assertEquals(DESCRIPTION, dataset.getDescription()); Acl remoteAclWithCond = null; for (Acl remoteAcl : dataset.getAcl()) { @@ -1981,7 +1980,7 @@ public void testCreateFieldWithDefaultCollation() { Schema remoteSchema = remoteTable.getDefinition().getSchema(); // Schema should be equal because collation has been added to the fields. assertEquals(schema, remoteSchema); - assertEquals(null, remoteTable.getDefaultCollation()); + assertNull(remoteTable.getDefaultCollation()); FieldList fieldList = remoteSchema.getFields(); for (Field field : fieldList) { if (field.getName().equals("stringFieldWithoutDefaultCollation")) { @@ -2425,7 +2424,7 @@ public void testCreateExternalTable() throws InterruptedException { assertEquals(1408452095220000L, timestampCell.getTimestampValue()); assertEquals("stringValue", stringCell.getStringValue()); assertEquals(integerValue, integerCell.getLongValue()); - assertEquals(false, booleanCell.getBooleanValue()); + assertFalse(booleanCell.getBooleanValue()); integerValue = ~integerValue & 0x1; rowCount++; } @@ -2531,7 +2530,7 @@ public void testCreateViewTable() throws InterruptedException { assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); assertEquals(1408452095220000L, timestampCell.getTimestampValue()); assertEquals("stringValue", stringCell.getStringValue()); - assertEquals(false, booleanCell.getBooleanValue()); + assertFalse(booleanCell.getBooleanValue()); rowCount++; } assertEquals(2, rowCount); @@ -3065,13 +3064,13 @@ public void testListAllTableData() { assertEquals("stringValue", stringCell.getStringValue()); assertEquals(0, integerArrayCell.getRepeatedValue().get(0).getLongValue()); assertEquals(1, integerArrayCell.getRepeatedValue().get(1).getLongValue()); - assertEquals(false, booleanCell.getBooleanValue()); + assertFalse(booleanCell.getBooleanValue()); assertArrayEquals(BYTES, bytesCell.getBytesValue()); assertEquals(-14182916000000L, recordCell.getRecordValue().get(0).getTimestampValue()); assertTrue(recordCell.getRecordValue().get(1).isNull()); assertEquals(1, recordCell.getRecordValue().get(2).getRepeatedValue().get(0).getLongValue()); assertEquals(0, recordCell.getRecordValue().get(2).getRepeatedValue().get(1).getLongValue()); - assertEquals(true, recordCell.getRecordValue().get(3).getBooleanValue()); + assertTrue(recordCell.getRecordValue().get(3).getBooleanValue()); assertEquals(3, integerCell.getLongValue()); assertEquals(1.2, floatCell.getDoubleValue(), 0.0001); assertEquals("POINT(-122.35022 47.649154)", geographyCell.getStringValue()); @@ -3132,21 +3131,21 @@ public void testModelLifecycle() throws InterruptedException { ModelId modelId = ModelId.of(MODEL_DATASET, modelName); Model model = bigquery.getModel(modelId); assertNotNull(model); - assertEquals(model.getModelType(), "LINEAR_REGRESSION"); + assertEquals("LINEAR_REGRESSION", model.getModelType()); // Compare the extended model metadata. - assertEquals(model.getFeatureColumns().get(0).getName(), "f1"); - assertEquals(model.getLabelColumns().get(0).getName(), "predicted_label"); + assertEquals("f1", model.getFeatureColumns().get(0).getName()); + assertEquals("predicted_label", model.getLabelColumns().get(0).getName()); assertEquals( - model.getTrainingRuns().get(0).getTrainingOptions().getLearnRateStrategy(), "CONSTANT"); + "CONSTANT", model.getTrainingRuns().get(0).getTrainingOptions().getLearnRateStrategy()); // Mutate metadata. ModelInfo info = model.toBuilder().setDescription("TEST").build(); Model afterUpdate = bigquery.update(info); - assertEquals(afterUpdate.getDescription(), "TEST"); + assertEquals("TEST", afterUpdate.getDescription()); // Ensure model is present in listModels. Page models = bigquery.listModels(MODEL_DATASET); - Boolean found = false; + boolean found = false; for (Model m : models.getValues()) { if (m.getModelId().getModel().equals(modelName)) { found = true; @@ -3167,7 +3166,7 @@ public void testEmptyListModels() { assertEquals(0, Iterables.size(models.getValues())); assertFalse(models.hasNextPage()); assertNull(models.getNextPageToken()); - assertTrue(bigquery.delete(datasetId)); + RemoteBigQueryHelper.forceDelete(bigquery, datasetId); } @Test @@ -3179,7 +3178,7 @@ public void testEmptyListRoutines() { assertEquals(0, Iterables.size(routines.getValues())); assertFalse(routines.hasNextPage()); assertNull(routines.getNextPageToken()); - assertTrue(bigquery.delete(datasetId)); + RemoteBigQueryHelper.forceDelete(bigquery, datasetId); } @Test @@ -3197,7 +3196,7 @@ public void testRoutineLifecycle() throws InterruptedException { RoutineId routineId = RoutineId.of(ROUTINE_DATASET, routineName); Routine routine = bigquery.getRoutine(routineId); assertNotNull(routine); - assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); + assertEquals("SCALAR_FUNCTION", routine.getRoutineType()); // Mutate metadata. RoutineInfo newInfo = @@ -3208,11 +3207,11 @@ public void testRoutineLifecycle() throws InterruptedException { .setRoutineType(routine.getRoutineType()) .build(); Routine afterUpdate = bigquery.update(newInfo); - assertEquals(afterUpdate.getBody(), "x * 4"); + assertEquals("x * 4", afterUpdate.getBody()); // Ensure routine is present in listRoutines. Page routines = bigquery.listRoutines(ROUTINE_DATASET); - Boolean found = false; + boolean found = false; for (Routine r : routines.getValues()) { if (r.getRoutineId().getRoutine().equals(routineName)) { found = true; @@ -3244,7 +3243,7 @@ public void testRoutineAPICreation() { Routine routine = bigquery.create(routineInfo); assertNotNull(routine); - assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); + assertEquals("SCALAR_FUNCTION", routine.getRoutineType()); } @Test @@ -3269,10 +3268,10 @@ public void testRoutineAPICreationJavascriptUDF() { Routine routine = bigquery.create(routineInfo); assertNotNull(routine); - assertEquals(routine.getLanguage(), "JAVASCRIPT"); - assertEquals(routine.getDeterminismLevel(), "DETERMINISTIC"); - assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); - assertEquals(routine.getReturnType(), StandardSQLDataType.newBuilder("STRING").build()); + assertEquals("JAVASCRIPT", routine.getLanguage()); + assertEquals("DETERMINISTIC", routine.getDeterminismLevel()); + assertEquals("SCALAR_FUNCTION", routine.getRoutineType()); + assertEquals(StandardSQLDataType.newBuilder("STRING").build(), routine.getReturnType()); } @Test @@ -3299,8 +3298,8 @@ public void testRoutineAPICreationTVF() { .build(); Routine routine = bigquery.create(routineInfo); assertNotNull(routine); - assertEquals(routine.getRoutineType(), "TABLE_VALUED_FUNCTION"); - assertEquals(routine.getReturnTableType(), returnTableType); + assertEquals("TABLE_VALUED_FUNCTION", routine.getRoutineType()); + assertEquals(returnTableType, routine.getReturnTableType()); } @Test @@ -3324,10 +3323,10 @@ public void testRoutineDataGovernanceType() { Routine routine = bigquery.create(routineInfo); assertNotNull(routine); - assertEquals(routine.getLanguage(), "SQL"); - assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); - assertEquals(routine.getReturnType(), StandardSQLDataType.newBuilder("INT64").build()); - assertEquals(routine.getDataGovernanceType(), "DATA_MASKING"); + assertEquals("SQL", routine.getLanguage()); + assertEquals("SCALAR_FUNCTION", routine.getRoutineType()); + assertEquals(StandardSQLDataType.newBuilder("INT64").build(), routine.getReturnType()); + assertEquals("DATA_MASKING", routine.getDataGovernanceType()); } @Test @@ -3348,7 +3347,7 @@ public void testAuthorizeRoutine() { .build(); Routine routine = bigquery.create(routineInfo); assertNotNull(routine); - assertEquals(routine.getRoutineType(), "SCALAR_FUNCTION"); + assertEquals("SCALAR_FUNCTION", routine.getRoutineType()); Dataset routineDataset = bigquery.getDataset(ROUTINE_DATASET); List routineAcl = new ArrayList<>(routineDataset.getAcl()); routineAcl.add(Acl.of(new Acl.Routine(routineId))); @@ -3370,7 +3369,7 @@ public void testAuthorizeDataset() { DatasetInfo.newBuilder(datasetId).setAcl(acl).setDescription("shared Dataset").build(); Dataset sharedDataset = bigquery.create(datasetInfo); assertNotNull(sharedDataset); - assertEquals(sharedDataset.getDescription(), "shared Dataset"); + assertEquals("shared Dataset", sharedDataset.getDescription()); // Get the current metadata for the dataset you want to share by calling the datasets.get method List sharedDatasetAcl = new ArrayList<>(sharedDataset.getAcl()); @@ -3384,7 +3383,7 @@ public void testAuthorizeDataset() { Dataset authorizedDataset = bigquery.create(authorizedDatasetInfo); assertNotNull(authorizedDataset); assertEquals( - authorizedDataset.getDescription(), "new Dataset to be authorized by the sharedDataset"); + "new Dataset to be authorized by the sharedDataset", authorizedDataset.getDescription()); // Add the new DatasetAccessEntry object to the existing sharedDatasetAcl list DatasetAclEntity datasetEntity = new DatasetAclEntity(authorizedDatasetId, targetTypes); @@ -3395,6 +3394,9 @@ public void testAuthorizeDataset() { // Verify that the authorized dataset has been added assertEquals(sharedDatasetAcl, updatedDataset.getAcl()); + + RemoteBigQueryHelper.forceDelete(bigquery, datasetName); + RemoteBigQueryHelper.forceDelete(bigquery, authorizedDatasetName); } /* TODO(prasmish): replicate the entire test case for executeSelect */ @@ -3514,7 +3516,7 @@ public void testQuery() throws InterruptedException { assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); assertEquals(1408452095220000L, timestampCell.getTimestampValue()); assertEquals("stringValue", stringCell.getStringValue()); - assertEquals(false, booleanCell.getBooleanValue()); + assertFalse(booleanCell.getBooleanValue()); rowCount++; } assertEquals(2, rowCount); @@ -3945,14 +3947,14 @@ public void testExecuteSelectSinglePageTableRow() throws SQLException { assertTrue(rs.next()); // first row // checking for the null or 0 column values assertNull(rs.getString("StringField")); - assertTrue(rs.getDouble("BigNumericField") == 0.0d); + assertEquals(0.0d, rs.getDouble("BigNumericField"), 1e-9); assertFalse(rs.getBoolean("BooleanField")); assertNull(rs.getBytes("BytesField")); - assertEquals(rs.getInt("IntegerField"), 0); + assertEquals(0, rs.getInt("IntegerField")); assertNull(rs.getTimestamp("TimestampField")); assertNull(rs.getDate("DateField")); - assertTrue(rs.getDouble("FloatField") == 0.0d); - assertTrue(rs.getDouble("NumericField") == 0.0d); + assertEquals(0.0d, rs.getDouble("FloatField"), 1e-9); + assertEquals(0.0d, rs.getDouble("NumericField"), 1e-9); assertNull(rs.getTime("TimeField")); assertNull(rs.getString("DateTimeField")); assertNull(rs.getString("GeographyField")); @@ -3962,14 +3964,14 @@ public void testExecuteSelectSinglePageTableRow() throws SQLException { assertTrue(rs.next()); // second row // second row is non null, comparing the values assertEquals("StringValue1", rs.getString("StringField")); - assertTrue(rs.getDouble("BigNumericField") == 0.3333333333333333d); + assertEquals(0.3333333333333333d, rs.getDouble("BigNumericField"), 1e-9); assertFalse(rs.getBoolean("BooleanField")); assertNotNull(rs.getBytes("BytesField")); assertEquals(1, rs.getInt("IntegerField")); assertEquals(1534680695123L, rs.getTimestamp("TimestampField").getTime()); assertEquals(java.sql.Date.valueOf("2018-08-19"), rs.getDate("DateField")); - assertTrue(rs.getDouble("FloatField") == 10.1d); - assertTrue(rs.getDouble("NumericField") == 100.0d); + assertEquals(10.1d, rs.getDouble("FloatField"), 1e-9); + assertEquals(100.0d, rs.getDouble("NumericField"), 1e-9); assertEquals(Time.valueOf(LocalTime.of(12, 11, 35, 123456)), rs.getTime("TimeField")); assertEquals("2018-08-19T12:11:35.123456", rs.getString("DateTimeField")); assertEquals("POINT(-122.35022 47.649154)", rs.getString("GeographyField")); @@ -4015,14 +4017,14 @@ public void testExecuteSelectSinglePageTableRowWithReadAPI() throws SQLException assertTrue(rs.next()); // first row // checking for the null or 0 column values assertNull(rs.getString("StringField")); - assertTrue(rs.getDouble("BigNumericField") == 0.0d); + assertEquals(0.0d, rs.getDouble("BigNumericField"), 1e-9); assertFalse(rs.getBoolean("BooleanField")); assertNull(rs.getBytes("BytesField")); - assertEquals(rs.getInt("IntegerField"), 0); + assertEquals(0, rs.getInt("IntegerField")); assertNull(rs.getTimestamp("TimestampField")); assertNull(rs.getDate("DateField")); - assertTrue(rs.getDouble("FloatField") == 0.0d); - assertTrue(rs.getDouble("NumericField") == 0.0d); + assertEquals(0.0d, rs.getDouble("FloatField"), 1e-9); + assertEquals(0.0d, rs.getDouble("NumericField"), 1e-9); assertNull(rs.getTime("TimeField")); assertNull(rs.getString("DateTimeField")); assertNull(rs.getString("GeographyField")); @@ -4032,14 +4034,14 @@ public void testExecuteSelectSinglePageTableRowWithReadAPI() throws SQLException assertTrue(rs.next()); // second row // second row is non null, comparing the values assertEquals("StringValue1", rs.getString("StringField")); - assertTrue(rs.getDouble("BigNumericField") == 0.3333333333333333d); + assertEquals(0.3333333333333333d, rs.getDouble("BigNumericField"), 1e-9); assertFalse(rs.getBoolean("BooleanField")); assertNotNull(rs.getBytes("BytesField")); assertEquals(1, rs.getInt("IntegerField")); assertEquals(1534680695123L, rs.getTimestamp("TimestampField").getTime()); assertEquals(java.sql.Date.valueOf("2018-08-19"), rs.getDate("DateField")); - assertTrue(rs.getDouble("FloatField") == 10.1d); - assertTrue(rs.getDouble("NumericField") == 100.0d); + assertEquals(10.1d, rs.getDouble("FloatField"), 1e-9); + assertEquals(100.0d, rs.getDouble("NumericField"), 1e-9); assertEquals( Time.valueOf(LocalTime.of(12, 11, 35, 123456)).toString(), rs.getTime("TimeField").toString()); @@ -4364,7 +4366,7 @@ public void testExecuteSelectSinglePageTableRowColInd() throws SQLException { assertEquals(2, bigQueryResult.getTotalRows()); // Expecting 2 rows while (rs.next()) { assertEquals(rs.getString(0), rs.getString("StringField")); - assertTrue(rs.getDouble(1) == rs.getDouble("BigNumericField")); + assertEquals(rs.getDouble(1), rs.getDouble("BigNumericField"), 1e-9); assertEquals(rs.getBoolean(2), rs.getBoolean("BooleanField")); if (rs.getBytes(3) == null) { // both overloads should be null assertEquals(rs.getBytes(3), rs.getBytes("BytesField")); @@ -4376,8 +4378,8 @@ public void testExecuteSelectSinglePageTableRowColInd() throws SQLException { assertEquals(rs.getInt(4), rs.getInt("IntegerField")); assertEquals(rs.getTimestamp(5), rs.getTimestamp("TimestampField")); assertEquals(rs.getDate(9), rs.getDate("DateField")); - assertTrue(rs.getDouble("FloatField") == rs.getDouble(6)); - assertTrue(rs.getDouble("NumericField") == rs.getDouble(7)); + assertEquals(rs.getDouble("FloatField"), rs.getDouble(6), 1e-9); + assertEquals(rs.getDouble("NumericField"), rs.getDouble(7), 1e-9); assertEquals(rs.getTime(8), rs.getTime("TimeField")); assertEquals(rs.getString(10), rs.getString("DateTimeField")); assertEquals(rs.getString(11), rs.getString("GeographyField")); @@ -4638,7 +4640,7 @@ public void testFastSQLQuery() throws InterruptedException { assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); assertEquals(1408452095220000L, timestampCell.getTimestampValue()); assertEquals("stringValue", stringCell.getStringValue()); - assertEquals(false, booleanCell.getBooleanValue()); + assertFalse(booleanCell.getBooleanValue()); } } @@ -4808,7 +4810,7 @@ public void testFastDDLQuery() throws InterruptedException { assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); assertEquals(1408452095220000L, timestampCell.getTimestampValue()); assertEquals("stringValue", stringCell.getStringValue()); - assertEquals(false, booleanCell.getBooleanValue()); + assertFalse(booleanCell.getBooleanValue()); } } @@ -5249,7 +5251,7 @@ public void testPositionalQueryParameters() throws InterruptedException { (long) Double.parseDouble("1.40845209522E9"), (long) Double.parseDouble(values.get(0).getValue().toString())); assertEquals("stringValue", values.get(1).getValue()); - assertEquals(false, values.get(2).getBooleanValue()); + assertFalse(values.get(2).getBooleanValue()); assertEquals("0.33333333333333333333333333333333333333", values.get(3).getValue()); assertEquals("0.00000000000000000000000000000000000001", values.get(4).getValue()); assertEquals("-100000000000000000000000000000000000000", values.get(5).getValue()); @@ -5579,15 +5581,15 @@ public void testStructQuery() throws InterruptedException { assertEquals(2, Iterables.size(result.getValues())); for (FieldValueList values : result.iterateAll()) { for (FieldValue value : values) { - assertEquals(null, value.getRecordValue().get("StringField").getValue()); - assertEquals(true, value.getRecordValue().get("BooleanField").getBooleanValue()); + assertNull(value.getRecordValue().get("StringField").getValue()); + assertTrue(value.getRecordValue().get("BooleanField").getBooleanValue()); } } } private static void assertsFieldValue(FieldValue record) { assertEquals(FieldValue.Attribute.RECORD, record.getAttribute()); - assertEquals(true, record.getRecordValue().get("booleanField").getBooleanValue()); + assertTrue(record.getRecordValue().get("booleanField").getBooleanValue()); assertEquals(10, record.getRecordValue().get("integerField").getLongValue()); assertEquals("test-stringField", record.getRecordValue().get("stringField").getStringValue()); } @@ -5622,12 +5624,12 @@ public void testNestedStructNamedQueryParameters() throws InterruptedException { for (FieldValueList values : result.iterateAll()) { for (FieldValue value : values) { assertEquals(Attribute.RECORD, value.getAttribute()); - assertEquals(true, value.getRecordValue().get(0).getRecordValue().get(0).getBooleanValue()); + assertTrue(value.getRecordValue().get(0).getRecordValue().get(0).getBooleanValue()); assertEquals(10, value.getRecordValue().get(0).getRecordValue().get(1).getLongValue()); assertEquals( "test-stringField", value.getRecordValue().get(0).getRecordValue().get(2).getStringValue()); - assertEquals(true, value.getRecordValue().get(1).getBooleanValue()); + assertTrue(value.getRecordValue().get(1).getBooleanValue()); assertEquals("test-stringField", value.getRecordValue().get(2).getStringValue()); assertEquals(10, value.getRecordValue().get(3).getLongValue()); } @@ -5674,7 +5676,7 @@ public void testGeographyParameter() throws Exception { int rowCount = 0; for (FieldValueList row : result.getValues()) { rowCount++; - assertEquals(true, row.get(0).getBooleanValue()); + assertTrue(row.get(0).getBooleanValue()); } assertEquals(1, rowCount); } @@ -5938,7 +5940,6 @@ public void testSnapshotTableCopyJob() throws InterruptedException { assertNotNull(snapshotTable); assertEquals(snapshotTableId.getDataset(), snapshotTable.getTableId().getDataset()); assertEquals(snapshotTableName, snapshotTable.getTableId().getTable()); - System.out.println(snapshotTable.getDefinition()); assertTrue(snapshotTable.getDefinition() instanceof SnapshotTableDefinition); assertEquals(DDL_TABLE_SCHEMA, snapshotTable.getDefinition().getSchema()); assertNotNull(((SnapshotTableDefinition) snapshotTable.getDefinition()).getSnapshotTime()); @@ -6034,7 +6035,7 @@ public void testQueryJob() throws InterruptedException, TimeoutException { assertEquals(FieldValue.Attribute.PRIMITIVE, booleanCell.getAttribute()); assertEquals(1408452095220000L, timestampCell.getTimestampValue()); assertEquals("stringValue", stringCell.getStringValue()); - assertEquals(false, booleanCell.getBooleanValue()); + assertFalse(booleanCell.getBooleanValue()); rowCount++; } assertEquals(2, rowCount); @@ -6042,12 +6043,12 @@ public void testQueryJob() throws InterruptedException, TimeoutException { Job queryJob = bigquery.getJob(remoteJob.getJobId()); JobStatistics.QueryStatistics statistics = queryJob.getStatistics(); if (statistics.getBiEngineStats() != null) { - assertEquals(statistics.getBiEngineStats().getBiEngineMode(), "DISABLED"); + assertEquals("DISABLED", statistics.getBiEngineStats().getBiEngineMode()); assertEquals( - statistics.getBiEngineStats().getBiEngineReasons().get(0).getCode(), "OTHER_REASON"); + "OTHER_REASON", statistics.getBiEngineStats().getBiEngineReasons().get(0).getCode()); assertEquals( - statistics.getBiEngineStats().getBiEngineReasons().get(0).getMessage(), - "Only SELECT queries without a destination table can be accelerated."); + "Only SELECT queries without a destination table can be accelerated.", + statistics.getBiEngineStats().getBiEngineReasons().get(0).getMessage()); } assertNotNull(statistics.getQueryPlan()); } @@ -6115,11 +6116,11 @@ public void testQueryJobWithSearchReturnsSearchStatisticsUnused() throws Interru assertNull(remoteJob.getStatus().getError()); JobStatistics.QueryStatistics stats = remoteJob.getStatistics(); assertNotNull(stats.getSearchStats()); - assertEquals(stats.getSearchStats().getIndexUsageMode(), "UNUSED"); + assertEquals("UNUSED", stats.getSearchStats().getIndexUsageMode()); assertNotNull(stats.getSearchStats().getIndexUnusedReasons()); - assertNotNull( - stats.getSearchStats().getIndexUnusedReasons().get(0).getCode(), - "INDEX_CONFIG_NOT_AVAILABLE"); + assertEquals( + "INDEX_CONFIG_NOT_AVAILABLE", + stats.getSearchStats().getIndexUnusedReasons().get(0).getCode()); } finally { bigquery.delete(destinationTable); } @@ -6196,8 +6197,8 @@ public void testLoadJobWithDecimalTargetTypes() throws InterruptedException { Table remoteTable = bigquery.getTable(DATASET, tableName); assertNotNull(remoteTable); assertEquals( - remoteTable.getDefinition().getSchema().getFields().get(0).getType().toString(), - "BIGNUMERIC"); + "BIGNUMERIC", + remoteTable.getDefinition().getSchema().getFields().get(0).getType().toString()); } finally { bigquery.delete(destinationTable); } @@ -6218,8 +6219,8 @@ public void testExternalTableWithDecimalTargetTypes() throws InterruptedExceptio Table remoteTable = bigquery.getTable(DATASET, tableName); assertNotNull(remoteTable); assertEquals( - remoteTable.getDefinition().getSchema().getFields().get(0).getType().toString(), - "BIGNUMERIC"); + "BIGNUMERIC", + remoteTable.getDefinition().getSchema().getFields().get(0).getType().toString()); assertTrue(remoteTable.delete()); } @@ -6422,13 +6423,13 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo assertEquals("stringValue", stringCell.getStringValue()); assertEquals(0, integerArrayCell.getRepeatedValue().get(0).getLongValue()); assertEquals(1, integerArrayCell.getRepeatedValue().get(1).getLongValue()); - assertEquals(false, booleanCell.getBooleanValue()); + assertFalse(booleanCell.getBooleanValue()); assertArrayEquals(BYTES, bytesCell.getBytesValue()); assertEquals(-14182916000000L, recordCell.getRecordValue().get(0).getTimestampValue()); assertTrue(recordCell.getRecordValue().get(1).isNull()); assertEquals(1, recordCell.getRecordValue().get(2).getRepeatedValue().get(0).getLongValue()); assertEquals(0, recordCell.getRecordValue().get(2).getRepeatedValue().get(1).getLongValue()); - assertEquals(true, recordCell.getRecordValue().get(3).getBooleanValue()); + assertTrue(recordCell.getRecordValue().get(3).getBooleanValue()); assertEquals(3, integerCell.getLongValue()); assertEquals(1.2, floatCell.getDoubleValue(), 0.0001); assertEquals("POINT(-122.35022 47.649154)", geographyCell.getStringValue()); @@ -6507,23 +6508,21 @@ public void testLocation() throws Exception { assertThat(location).isNotEqualTo(wrongLocation); Tracer tracer = otel.getTracer("Test Tracer"); - bigquery = + BigQuery otelBigquery = bigquery.getOptions().toBuilder() .setEnableOpenTelemetryTracing(true) .setOpenTelemetryTracer(tracer) .build() .getService(); + String datasetName = "locationset_" + UUID.randomUUID().toString().replace("-", "_"); Dataset dataset = - bigquery.create( - DatasetInfo.newBuilder("locationset_" + UUID.randomUUID().toString().replace("-", "_")) - .setLocation(location) - .build()); + otelBigquery.create(DatasetInfo.newBuilder(datasetName).setLocation(location).build()); try { TableId tableId = TableId.of(dataset.getDatasetId().getDataset(), "sometable"); Schema schema = Schema.of(Field.of("name", LegacySQLTypeName.STRING)); TableDefinition tableDef = StandardTableDefinition.of(schema); - Table table = bigquery.create(TableInfo.newBuilder(tableId, tableDef).build()); + Table table = otelBigquery.create(TableInfo.newBuilder(tableId, tableDef).build()); String query = String.format( @@ -6535,7 +6534,7 @@ public void testLocation() throws Exception { // Test create/get { Job job = - bigquery.create( + otelBigquery.create( JobInfo.of( JobId.newBuilder().setLocation(location).build(), QueryJobConfiguration.of(query))); @@ -6548,20 +6547,20 @@ public void testLocation() throws Exception { JobId wrongId = jobId.toBuilder().setLocation(wrongLocation).build(); // Getting with location should work. - assertThat(bigquery.getJob(jobId)).isNotNull(); + assertThat(otelBigquery.getJob(jobId)).isNotNull(); // Getting with wrong location shouldn't work. - assertThat(bigquery.getJob(wrongId)).isNull(); + assertThat(otelBigquery.getJob(wrongId)).isNull(); // Cancelling with location should work. (Cancelling already finished job is fine.) - assertThat(bigquery.cancel(jobId)).isTrue(); + assertThat(otelBigquery.cancel(jobId)).isTrue(); // Cancelling with wrong location shouldn't work. - assertThat(bigquery.cancel(wrongId)).isFalse(); + assertThat(otelBigquery.cancel(wrongId)).isFalse(); } // Test query { assertThat( - bigquery + otelBigquery .query( QueryJobConfiguration.of(query), JobId.newBuilder().setLocation(location).build()) @@ -6569,7 +6568,7 @@ public void testLocation() throws Exception { .isEmpty(); try { - bigquery + otelBigquery .query( QueryJobConfiguration.of(query), JobId.newBuilder().setLocation(wrongLocation).build()) @@ -6587,7 +6586,7 @@ public void testLocation() throws Exception { .setFormatOptions(FormatOptions.csv()) .build(); try (TableDataWriteChannel writer = - bigquery.writer( + otelBigquery.writer( JobId.newBuilder().setLocation(location).build(), writeChannelConfiguration)) { writer.write(ByteBuffer.wrap("foo".getBytes())); assertEquals( @@ -6597,22 +6596,16 @@ public void testLocation() throws Exception { location); } - try { - bigquery.writer( - JobId.newBuilder().setLocation(wrongLocation).build(), writeChannelConfiguration); + try (TableDataWriteChannel ignore = + otelBigquery.writer( + JobId.newBuilder().setLocation(wrongLocation).build(), writeChannelConfiguration)) { fail("writing to a table with wrong location shouldn't work"); } catch (BigQueryException e) { // Nothing to do } } } finally { - bigquery.delete(dataset.getDatasetId(), DatasetDeleteOption.deleteContents()); - bigquery = - bigquery.getOptions().toBuilder() - .setEnableOpenTelemetryTracing(false) - .setOpenTelemetryTracer(null) - .build() - .getService(); + RemoteBigQueryHelper.forceDelete(bigquery, datasetName); } } @@ -6708,7 +6701,7 @@ public void testReferenceFileSchemaUriForAvro() { Job job = bigquery.create(JobInfo.of(loadJobConfiguration)); // Blocks until this load table job completes its execution, either failing or succeeding. job = job.waitFor(); - assertEquals(true, job.isDone()); + assertTrue(job.isDone()); LoadJobConfiguration actualLoadJobConfiguration = job.getConfiguration(); Table generatedTable = bigquery.getTable(actualLoadJobConfiguration.getDestinationTable()); @@ -6716,7 +6709,7 @@ public void testReferenceFileSchemaUriForAvro() { assertEquals(expectedSchema, generatedTable.getDefinition().getSchema()); // clean up after test to avoid conflict with other tests boolean success = bigquery.delete(tableId); - assertEquals(true, success); + assertTrue(success); } catch (BigQueryException | InterruptedException e) { System.out.println("Column not added during load append \n" + e.toString()); } @@ -6768,14 +6761,14 @@ public void testReferenceFileSchemaUriForParquet() { Job job = bigquery.create(JobInfo.of(loadJobConfiguration)); // Blocks until this load table job completes its execution, either failing or succeeding. job = job.waitFor(); - assertEquals(true, job.isDone()); + assertTrue(job.isDone()); LoadJobConfiguration actualLoadJobConfiguration = job.getConfiguration(); Table generatedTable = bigquery.getTable(actualLoadJobConfiguration.getDestinationTable()); assertEquals(expectedSchema, generatedTable.getDefinition().getSchema()); // clean up after test to avoid conflict with other tests boolean success = bigquery.delete(tableId); - assertEquals(true, success); + assertTrue(success); } catch (BigQueryException | InterruptedException e) { System.out.println("Column not added during load append \n" + e.toString()); } @@ -6818,7 +6811,7 @@ public void testCreateExternalTableWithReferenceFileSchemaAvro() { assertEquals(expectedSchema, generatedTable.getDefinition().getSchema()); // clean up after test to avoid conflict with other tests boolean success = bigquery.delete(tableId); - assertEquals(true, success); + assertTrue(success); } @Test @@ -6859,15 +6852,14 @@ public void testCreateExternalTableWithReferenceFileSchemaParquet() { Table generatedTable = bigquery.getTable(createdTable.getTableId()); assertEquals(expectedSchema, generatedTable.getDefinition().getSchema()); // clean up after test to avoid conflict with other tests - boolean success = bigquery.delete(tableId); - assertEquals(true, success); + assertTrue(bigquery.delete(tableId)); } @Test public void testCloneTableCopyJob() throws InterruptedException { String sourceTableName = "test_copy_job_base_table"; String ddlTableName = TABLE_ID_DDL.getTable(); - String cloneTableName = String.format("test_clone_table"); + String cloneTableName = "test_clone_table"; // Create source table with some data in it String ddlQuery = String.format( @@ -7277,11 +7269,9 @@ public void testStatelessQueriesWithLocation() throws Exception { BigQuery bigQuery = bigqueryHelper.getOptions().toBuilder().setLocation(location).build().getService(); + String datasetName = "locationset_" + UUID.randomUUID().toString().replace("-", "_"); Dataset dataset = - bigQuery.create( - DatasetInfo.newBuilder("locationset_" + UUID.randomUUID().toString().replace("-", "_")) - .setLocation(location) - .build()); + bigQuery.create(DatasetInfo.newBuilder(datasetName).setLocation(location).build()); try { TableId tableId = TableId.of(dataset.getDatasetId().getDataset(), "sometable"); Schema schema = Schema.of(Field.of("name", LegacySQLTypeName.STRING)); @@ -7313,7 +7303,7 @@ public void testStatelessQueriesWithLocation() throws Exception { // Nothing to do } } finally { - bigQuery.delete(dataset.getDatasetId(), DatasetDeleteOption.deleteContents()); + RemoteBigQueryHelper.forceDelete(bigQuery, datasetName); } } @@ -7376,7 +7366,7 @@ public void testUniverseDomainWithInvalidUniverseDomain() { bigQuery.listDatasets("bigquery-public-data"); fail("RPCs to invalid universe domain should fail"); } catch (BigQueryException e) { - assertEquals(e.getCode(), HTTP_UNAUTHORIZED); + assertEquals(HTTP_UNAUTHORIZED, e.getCode()); assertNotNull(e.getMessage()); assertThat( (e.getMessage() @@ -7399,7 +7389,7 @@ public void testInvalidUniverseDomainWithMismatchCredentials() { bigQuery.listDatasets("bigquery-public-data"); fail("RPCs to invalid universe domain should fail"); } catch (BigQueryException e) { - assertEquals(e.getCode(), HTTP_UNAUTHORIZED); + assertEquals(HTTP_UNAUTHORIZED, e.getCode()); assertNotNull(e.getMessage()); assertThat( (e.getMessage() @@ -7693,49 +7683,50 @@ public void testOpenTelemetryTracingDatasets() { .build(); dataset = bigquery.update(updatedInfo, DatasetOption.accessPolicyVersion(2)); - assertEquals(dataset.getDescription(), "Updated Description"); + assertEquals("Updated Description", dataset.getDescription()); assertTrue(bigquery.delete(dataset.getDatasetId())); } finally { parentSpan.end(); Map, Object> createMap = OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.createDataset"); - assertEquals(createMap.get(AttributeKey.stringKey("bq.dataset.location")), "null"); + assertEquals("null", createMap.get(AttributeKey.stringKey("bq.dataset.location"))); assertEquals( + "DatasetService", OTEL_ATTRIBUTES .get("com.google.cloud.bigquery.BigQueryRpc.createDataset") - .get(AttributeKey.stringKey("bq.rpc.service")), - "DatasetService"); + .get(AttributeKey.stringKey("bq.rpc.service"))); Map, Object> getMap = OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.getDataset"); - assertEquals(getMap.get(AttributeKey.stringKey("bq.dataset.id")), billingModelDataset); + assertEquals(billingModelDataset, getMap.get(AttributeKey.stringKey("bq.dataset.id"))); Map, Object> updateMap = OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.updateDataset"); - assertEquals(updateMap.get(AttributeKey.stringKey("bq.option.ACCESS_POLICY_VERSION")), "2"); + assertEquals("2", updateMap.get(AttributeKey.stringKey("bq.option.ACCESS_POLICY_VERSION"))); Map, Object> deleteMap = OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.deleteDataset"); - assertEquals(deleteMap.get(AttributeKey.stringKey("bq.dataset.id")), billingModelDataset); + assertEquals(billingModelDataset, deleteMap.get(AttributeKey.stringKey("bq.dataset.id"))); // All should be children spans of parentSpan + String testParentSpanName = "Test Parent Span"; assertEquals( + testParentSpanName, OTEL_SPAN_IDS_TO_NAMES.get( - OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.getDataset")), - "Test Parent Span"); + OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.getDataset"))); assertEquals( + testParentSpanName, OTEL_SPAN_IDS_TO_NAMES.get( - OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.createDataset")), - "Test Parent Span"); + OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.createDataset"))); assertEquals( + testParentSpanName, OTEL_SPAN_IDS_TO_NAMES.get( - OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.deleteDataset")), - "Test Parent Span"); + OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.deleteDataset"))); assertEquals( OTEL_SPAN_IDS_TO_NAMES.get( OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQueryRpc.createDataset")), "com.google.cloud.bigquery.BigQueryRetryHelper.runWithRetries"); - assertEquals(OTEL_PARENT_SPAN_IDS.get("Test Parent Span"), OTEL_PARENT_SPAN_ID); + assertEquals(OTEL_PARENT_SPAN_ID, OTEL_PARENT_SPAN_IDS.get(testParentSpanName)); RemoteBigQueryHelper.forceDelete(bigquery, billingModelDataset); } } @@ -7757,26 +7748,26 @@ public void testOpenTelemetryTracingTables() { .setDescription("Some Description") .build(); Table createdTable = bigquery.create(tableInfo); - assertThat(createdTable.getDescription()).isEqualTo("Some Description"); + assertEquals("Some Description", createdTable.getDescription()); assertEquals( - OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.createTable"), - OTEL_PARENT_SPAN_ID); + OTEL_PARENT_SPAN_ID, + OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.createTable")); assertEquals( + tableName, OTEL_ATTRIBUTES .get("com.google.cloud.bigquery.BigQuery.createTable") - .get(AttributeKey.stringKey("bq.table.id")), - tableName); + .get(AttributeKey.stringKey("bq.table.id"))); assertEquals( + "null", OTEL_ATTRIBUTES .get("com.google.cloud.bigquery.BigQuery.createTable") - .get(AttributeKey.stringKey("bq.table.creation_time")), - "null"); + .get(AttributeKey.stringKey("bq.table.creation_time"))); assertEquals( + "InsertTable", OTEL_ATTRIBUTES .get("com.google.cloud.bigquery.BigQueryRpc.createTable") - .get(AttributeKey.stringKey("bq.rpc.method")), - "InsertTable"); + .get(AttributeKey.stringKey("bq.rpc.method"))); Table updatedTable = bigquery.update(createdTable.toBuilder().setDescription("Updated Description").build()); @@ -7785,8 +7776,8 @@ public void testOpenTelemetryTracingTables() { assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQuery.updateTable")); assertNotNull(OTEL_ATTRIBUTES.get("com.google.cloud.bigquery.BigQueryRpc.patchTable")); assertEquals( - OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.updateTable"), - OTEL_PARENT_SPAN_ID); + OTEL_PARENT_SPAN_ID, + OTEL_PARENT_SPAN_IDS.get("com.google.cloud.bigquery.BigQuery.updateTable")); assertTrue(bigquery.delete(updatedTable.getTableId())); } From 5d389cf45b41a0edceb3c5ed98dd2421ba6f2234 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Fri, 12 Dec 2025 21:51:40 +0000 Subject: [PATCH 3351/3441] deps: update actions/upload-artifact action to v6 (#4027) Co-authored-by: Blake Li --- .github/workflows/scorecard.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 1524dc8d2c52..69df4a2532d1 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -59,7 +59,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: SARIF file path: results.sarif From 3673310c47b5836caba997d76d60d3e8233ea146 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Fri, 12 Dec 2025 17:27:07 -0500 Subject: [PATCH 3352/3441] chore: Use assertThrows in tests (#4028) * chore: Cleanup initialized resources * chore: Use try-with to close stream * chore: Cleanup Intellij test warnings * chore: Allow for floating point inaccuracies * chore: Add otel delete operation * chore: Clean up rest of the IT test file * chore: Add GCA feedback --- .../cloud/bigquery/it/ITBigQueryTest.java | 388 +++++++++--------- .../bigquery/it/ITNightlyBigQueryTest.java | 3 +- 2 files changed, 186 insertions(+), 205 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index de9fef4ee58d..80605884d384 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -26,6 +26,7 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -1201,6 +1202,15 @@ public static void afterClass() throws Exception { } } + static GoogleCredentials loadCredentials(String credentialFile) { + try (InputStream keyStream = new ByteArrayInputStream(credentialFile.getBytes())) { + return GoogleCredentials.fromStream(keyStream); + } catch (IOException e) { + fail("Couldn't create fake JSON credentials."); + } + return null; + } + @Test public void testListDatasets() { Page datasets = bigquery.listDatasets("bigquery-public-data"); @@ -1227,9 +1237,10 @@ public void testListDatasetsWithFilter() { for (Dataset dataset : datasets.getValues()) { assertTrue( "failed to find label key in dataset", dataset.getLabels().containsKey("example-label1")); - assertTrue( + assertEquals( "failed to find label value in dataset", - dataset.getLabels().get("example-label1").equals("example-value1")); + "example-value1", + dataset.getLabels().get("example-label1")); count++; } assertTrue(count > 0); @@ -1573,14 +1584,14 @@ public void testJsonType() throws InterruptedException { .setUseLegacySql(false) .addPositionalParameter(badJsonParameter) .build(); - try { - bigquery.query(dmlQueryJobConfiguration2); - fail("Querying with malformed JSON shouldn't work"); - } catch (BigQueryException e) { - BigQueryError error = e.getError(); - assertNotNull(error); - assertEquals("invalidQuery", error.getReason()); - } + BigQueryException exception = + assertThrows( + "Querying with malformed JSON shouldn't work", + BigQueryException.class, + () -> bigquery.query(dmlQueryJobConfiguration2)); + BigQueryError error = exception.getError(); + assertNotNull(error); + assertEquals("invalidQuery", error.getReason()); } finally { assertTrue(bigquery.delete(tableId)); } @@ -2808,15 +2819,15 @@ public void testUpdateNonExistingTable() { TableInfo.of( TableId.of(DATASET, "test_update_non_existing_table"), StandardTableDefinition.of(SIMPLE_SCHEMA)); - try { - bigquery.update(tableInfo); - fail("BigQueryException was expected"); - } catch (BigQueryException e) { - BigQueryError error = e.getError(); - assertNotNull(error); - assertEquals("notFound", error.getReason()); - assertNotNull(error.getMessage()); - } + BigQueryException exception = + assertThrows( + "BigQueryException was expected", + BigQueryException.class, + () -> bigquery.update(tableInfo)); + BigQueryError error = exception.getError(); + assertNotNull(error); + assertEquals("notFound", error.getReason()); + assertNotNull(error.getMessage()); } @Test @@ -3404,16 +3415,16 @@ public void testAuthorizeDataset() { public void testSingleStatementsQueryException() throws InterruptedException { String invalidQuery = String.format("INSERT %s.%s VALUES('3', 10);", DATASET, TABLE_ID.getTable()); - try { - bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor(); - fail("BigQueryException was expected"); - } catch (BigQueryException ex) { - assertEquals("invalidQuery", ex.getReason()); - assertNotNull(ex.getMessage()); - BigQueryError error = ex.getError(); - assertEquals("invalidQuery", error.getReason()); - assertNotNull(error.getMessage()); - } + BigQueryException exception = + assertThrows( + "BigQueryException was expected", + BigQueryException.class, + () -> bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor()); + assertEquals("invalidQuery", exception.getReason()); + assertNotNull(exception.getMessage()); + BigQueryError error = exception.getError(); + assertEquals("invalidQuery", error.getReason()); + assertNotNull(error.getMessage()); } /* TODO(prasmish): replicate the entire test case for executeSelect */ @@ -3423,16 +3434,16 @@ public void testMultipleStatementsQueryException() throws InterruptedException { String.format( "INSERT %s.%s VALUES('3', 10); DELETE %s.%s where c2=3;", DATASET, TABLE_ID.getTable(), DATASET, TABLE_ID.getTable()); - try { - bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor(); - fail("BigQueryException was expected"); - } catch (BigQueryException ex) { - assertEquals("invalidQuery", ex.getReason()); - assertNotNull(ex.getMessage()); - BigQueryError error = ex.getError(); - assertEquals("invalidQuery", error.getReason()); - assertNotNull(error.getMessage()); - } + BigQueryException exception = + assertThrows( + "BigQueryException was expected", + BigQueryException.class, + () -> bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor()); + assertEquals("invalidQuery", exception.getReason()); + assertNotNull(exception.getMessage()); + BigQueryError error = exception.getError(); + assertEquals("invalidQuery", error.getReason()); + assertNotNull(error.getMessage()); } @Test @@ -3668,12 +3679,7 @@ public void testExecuteSelectWithCredentials() throws SQLException { BigQuery bigQueryBadCredentials = bigQueryOptionsBadCredentials.getService(); Connection connectionBadCredentials = bigQueryBadCredentials.createConnection(connectionSettings); - try { - connectionBadCredentials.executeSelect(query); - fail(); // this line should not be reached - } catch (BigQuerySQLException e) { - assertNotNull(e); - } + assertThrows(BigQuerySQLException.class, () -> connectionBadCredentials.executeSelect(query)); } /* TODO(prasmish): replicate the entire test case for executeSelect */ @@ -4228,12 +4234,7 @@ public void testExecuteSelectAsyncCancel() }); testCloseAsync.start(); - try { - executeSelectFut.get(); - fail(); // this line should not be reached - } catch (CancellationException e) { - assertNotNull(e); - } + assertThrows(CancellationException.class, executeSelectFut::get); } @Test @@ -4855,14 +4856,14 @@ public void testFastQueryHTTPException() throws InterruptedException { QueryJobConfiguration.newBuilder(queryInvalid) .setDefaultDataset(DatasetId.of(DATASET)) .build(); - try { - bigquery.query(configInvalidQuery); - fail("\"BigQueryException was expected\""); - } catch (BigQueryException e) { - BigQueryError error = e.getError(); - assertNotNull(error.getMessage()); - assertEquals("invalidQuery", error.getReason()); - } + BigQueryException exception = + assertThrows( + "BigQueryException was expected", + BigQueryException.class, + () -> bigquery.query(configInvalidQuery)); + BigQueryError error = exception.getError(); + assertNotNull(error.getMessage()); + assertEquals("invalidQuery", error.getReason()); String queryMissingTable = "SELECT * FROM " + TableId.of(DATASET, "non_existing_table").getTable(); @@ -4870,14 +4871,15 @@ public void testFastQueryHTTPException() throws InterruptedException { QueryJobConfiguration.newBuilder(queryMissingTable) .setDefaultDataset(DatasetId.of(DATASET)) .build(); - try { - bigquery.query(configMissingTable); - fail("\"BigQueryException was expected\""); - } catch (BigQueryException e) { - BigQueryError error = e.getError(); - assertNotNull(error.getMessage()); - assertEquals("notFound", error.getReason()); - } + + BigQueryException exception1 = + assertThrows( + "BigQueryException was expected", + BigQueryException.class, + () -> bigquery.query(configMissingTable)); + BigQueryError error1 = exception1.getError(); + assertNotNull(error1.getMessage()); + assertEquals("notFound", error1.getReason()); } @Test @@ -5559,12 +5561,11 @@ public void testEmptyRepeatedRecordNamedQueryParameters() throws InterruptedExce .setUseLegacySql(false) .addNamedParameter("repeatedRecordField", repeatedRecord) .build(); - try { - bigquery.query(config); - fail("an empty array of struct query parameter shouldn't work with 'IN UNNEST'"); - } catch (BigQueryException e) { - // Nothing to do - } + + assertThrows( + "an empty array of struct query parameter shouldn't work with 'IN UNNEST'", + BigQueryException.class, + () -> bigquery.query(config)); } @Test @@ -5904,7 +5905,7 @@ public void testSnapshotTableCopyJob() throws InterruptedException { String sourceTableName = "test_copy_job_base_table"; String ddlTableName = TABLE_ID_DDL.getTable(); // this creates a snapshot table at specified snapshotTime - String snapshotTableName = String.format("test_snapshot_table"); + String snapshotTableName = "test_snapshot_table"; // Create source table with some data in it String ddlQuery = String.format( @@ -6374,20 +6375,17 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) .setSchema(TABLE_SCHEMA) .build(); - TableDataWriteChannel channel = bigquery.writer(configuration); - try { + try (TableDataWriteChannel channel = bigquery.writer(configuration)) { // A zero byte write should not throw an exception. assertEquals(0, channel.write(ByteBuffer.wrap("".getBytes(StandardCharsets.UTF_8)))); - } finally { - // Force the channel to flush by calling `close`. - channel.close(); } - channel = bigquery.writer(configuration); + TableDataWriteChannel channel = bigquery.writer(configuration); try { channel.write(ByteBuffer.wrap(JSON_CONTENT.getBytes(StandardCharsets.UTF_8))); } finally { channel.close(); } + // Channel must close before retrieving the job Job job = channel.getJob().waitFor(); LoadStatistics statistics = job.getStatistics(); assertEquals(1L, statistics.getInputFiles().longValue()); @@ -6452,20 +6450,17 @@ public void testInsertFromFileWithLabels() .setSchema(TABLE_SCHEMA) .setLabels(LABELS) .build(); - TableDataWriteChannel channel = bigquery.writer(configuration); - try { + try (TableDataWriteChannel channel = bigquery.writer(configuration)) { // A zero byte write should not throw an exception. assertEquals(0, channel.write(ByteBuffer.wrap("".getBytes(StandardCharsets.UTF_8)))); - } finally { - // Force the channel to flush by calling `close`. - channel.close(); } - channel = bigquery.writer(configuration); + TableDataWriteChannel channel = bigquery.writer(configuration); try { channel.write(ByteBuffer.wrap(JSON_CONTENT.getBytes(StandardCharsets.UTF_8))); } finally { channel.close(); } + // Channel must close before retrieving the job Job job = channel.getJob().waitFor(); LoadJobConfiguration jobConfiguration = job.getConfiguration(); assertEquals(TABLE_SCHEMA, jobConfiguration.getSchema()); @@ -6491,6 +6486,7 @@ public void testInsertWithDecimalTargetTypes() } finally { channel.close(); } + // Channel must close before retrieving the job Job job = channel.getJob().waitFor(); LoadJobConfiguration jobConfiguration = job.getConfiguration(); assertNull(job.getStatus().getError()); @@ -6532,52 +6528,47 @@ public void testLocation() throws Exception { table.getTableId().getTable()); // Test create/get - { - Job job = - otelBigquery.create( - JobInfo.of( - JobId.newBuilder().setLocation(location).build(), - QueryJobConfiguration.of(query))); - job = job.waitFor(); - assertThat(job.getStatus().getError()).isNull(); - - assertThat(job.getJobId().getLocation()).isEqualTo(location); - - JobId jobId = job.getJobId(); - JobId wrongId = jobId.toBuilder().setLocation(wrongLocation).build(); - - // Getting with location should work. - assertThat(otelBigquery.getJob(jobId)).isNotNull(); - // Getting with wrong location shouldn't work. - assertThat(otelBigquery.getJob(wrongId)).isNull(); - - // Cancelling with location should work. (Cancelling already finished job is fine.) - assertThat(otelBigquery.cancel(jobId)).isTrue(); - // Cancelling with wrong location shouldn't work. - assertThat(otelBigquery.cancel(wrongId)).isFalse(); - } + Job job = + otelBigquery.create( + JobInfo.of( + JobId.newBuilder().setLocation(location).build(), + QueryJobConfiguration.of(query))); + job = job.waitFor(); + assertThat(job.getStatus().getError()).isNull(); + + assertThat(job.getJobId().getLocation()).isEqualTo(location); + + JobId jobId = job.getJobId(); + JobId wrongId = jobId.toBuilder().setLocation(wrongLocation).build(); + + // Getting with location should work. + assertThat(otelBigquery.getJob(jobId)).isNotNull(); + // Getting with wrong location shouldn't work. + assertThat(otelBigquery.getJob(wrongId)).isNull(); + + // Cancelling with location should work. (Cancelling already finished job is fine.) + assertThat(otelBigquery.cancel(jobId)).isTrue(); + // Cancelling with wrong location shouldn't work. + assertThat(otelBigquery.cancel(wrongId)).isFalse(); // Test query - { - assertThat( - otelBigquery - .query( - QueryJobConfiguration.of(query), - JobId.newBuilder().setLocation(location).build()) - .iterateAll()) - .isEmpty(); - - try { - otelBigquery - .query( - QueryJobConfiguration.of(query), - JobId.newBuilder().setLocation(wrongLocation).build()) - .iterateAll(); - fail("querying a table with wrong location shouldn't work"); - } catch (BigQueryException e) { - // Nothing to do - } - } + assertThat( + otelBigquery + .query( + QueryJobConfiguration.of(query), + JobId.newBuilder().setLocation(location).build()) + .iterateAll()) + .isEmpty(); + + assertThrows( + "querying a table with wrong location shouldn't work", + BigQueryException.class, + () -> + otelBigquery + .query( + QueryJobConfiguration.of(query), + JobId.newBuilder().setLocation(wrongLocation).build()) + .iterateAll()); // Test write { @@ -6596,13 +6587,15 @@ public void testLocation() throws Exception { location); } - try (TableDataWriteChannel ignore = - otelBigquery.writer( - JobId.newBuilder().setLocation(wrongLocation).build(), writeChannelConfiguration)) { - fail("writing to a table with wrong location shouldn't work"); - } catch (BigQueryException e) { - // Nothing to do - } + assertThrows( + "writing to a table with wrong location shouldn't work", + BigQueryException.class, + () -> { + try (TableDataWriteChannel ignore = + otelBigquery.writer( + JobId.newBuilder().setLocation(wrongLocation).build(), + writeChannelConfiguration)) {} + }); } } finally { RemoteBigQueryHelper.forceDelete(bigquery, datasetName); @@ -6627,6 +6620,7 @@ public void testWriteChannelPreserveAsciiControlCharacters() } finally { channel.close(); } + // Channel must close before retrieving the job Job job = channel.getJob().waitFor(); assertNull(job.getStatus().getError()); Page rows = bigquery.listTableData(tableId); @@ -6708,10 +6702,9 @@ public void testReferenceFileSchemaUriForAvro() { assertEquals(expectedSchema, generatedTable.getDefinition().getSchema()); // clean up after test to avoid conflict with other tests - boolean success = bigquery.delete(tableId); - assertTrue(success); + assertTrue(bigquery.delete(tableId)); } catch (BigQueryException | InterruptedException e) { - System.out.println("Column not added during load append \n" + e.toString()); + System.out.println("Column not added during load append \n" + e); } } @@ -6767,10 +6760,9 @@ public void testReferenceFileSchemaUriForParquet() { assertEquals(expectedSchema, generatedTable.getDefinition().getSchema()); // clean up after test to avoid conflict with other tests - boolean success = bigquery.delete(tableId); - assertTrue(success); + assertTrue(bigquery.delete(tableId)); } catch (BigQueryException | InterruptedException e) { - System.out.println("Column not added during load append \n" + e.toString()); + System.out.println("Column not added during load append \n" + e); } } @@ -6810,8 +6802,7 @@ public void testCreateExternalTableWithReferenceFileSchemaAvro() { Table generatedTable = bigquery.getTable(createdTable.getTableId()); assertEquals(expectedSchema, generatedTable.getDefinition().getSchema()); // clean up after test to avoid conflict with other tests - boolean success = bigquery.delete(tableId); - assertTrue(success); + assertTrue(bigquery.delete(tableId)); } @Test @@ -7208,8 +7199,7 @@ public void testStatelessQueries() throws InterruptedException { private TableResult executeSimpleQuery(BigQuery bigQuery) throws InterruptedException { String query = "SELECT CURRENT_TIMESTAMP() as ts"; QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).build(); - TableResult result = bigQuery.query(config); - return result; + return bigQuery.query(config); } @Test @@ -7291,17 +7281,20 @@ public void testStatelessQueriesWithLocation() throws Exception { assertNull(tb.getJobId()); // Test stateless query when BigQueryOption location does not match dataset location. - try { - BigQuery bigQueryWrongLocation = - bigqueryHelper.getOptions().toBuilder().setLocation(wrongLocation).build().getService(); - bigQueryWrongLocation - .getOptions() - .setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL); - bigQueryWrongLocation.query(QueryJobConfiguration.of(query)); - fail("querying a table with wrong location shouldn't work"); - } catch (BigQueryException e) { - // Nothing to do - } + assertThrows( + "querying a table with wrong location shouldn't work", + BigQueryException.class, + () -> { + BigQuery bigQueryWrongLocation = + bigqueryHelper.getOptions().toBuilder() + .setLocation(wrongLocation) + .build() + .getService(); + bigQueryWrongLocation + .getOptions() + .setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL); + bigQueryWrongLocation.query(QueryJobConfiguration.of(query)); + }); } finally { RemoteBigQueryHelper.forceDelete(bigQuery, datasetName); } @@ -7361,18 +7354,17 @@ public void testUniverseDomainWithInvalidUniverseDomain() { .build(); BigQuery bigQuery = bigQueryOptions.getService(); - try { - // Use list dataset to send RPC to invalid domain. - bigQuery.listDatasets("bigquery-public-data"); - fail("RPCs to invalid universe domain should fail"); - } catch (BigQueryException e) { - assertEquals(HTTP_UNAUTHORIZED, e.getCode()); - assertNotNull(e.getMessage()); - assertThat( - (e.getMessage() - .contains("does not match the universe domain found in the credentials"))) - .isTrue(); - } + BigQueryException exception = + assertThrows( + "RPCs to invalid universe domain should fail", + BigQueryException.class, + () -> bigQuery.listDatasets("bigquery-public-data")); + assertEquals(HTTP_UNAUTHORIZED, exception.getCode()); + assertNotNull(exception.getMessage()); + assertTrue( + exception + .getMessage() + .contains("does not match the universe domain found in the credentials")); } @Test @@ -7384,18 +7376,17 @@ public void testInvalidUniverseDomainWithMismatchCredentials() { .build(); BigQuery bigQuery = bigQueryOptions.getService(); - try { - // Use list dataset to send RPC to invalid domain. - bigQuery.listDatasets("bigquery-public-data"); - fail("RPCs to invalid universe domain should fail"); - } catch (BigQueryException e) { - assertEquals(HTTP_UNAUTHORIZED, e.getCode()); - assertNotNull(e.getMessage()); - assertThat( - (e.getMessage() - .contains("does not match the universe domain found in the credentials"))) - .isTrue(); - } + BigQueryException exception = + assertThrows( + "RPCs to invalid universe domain should fail", + BigQueryException.class, + () -> bigQuery.listDatasets("bigquery-public-data")); + assertEquals(HTTP_UNAUTHORIZED, exception.getCode()); + assertNotNull(exception.getMessage()); + assertTrue( + exception + .getMessage() + .contains("does not match the universe domain found in the credentials")); } @Test @@ -7477,17 +7468,18 @@ public void testExternalMetadataCacheModeFailForNonBiglake() { .build(); TableInfo tableInfo = TableInfo.of(tableId, externalTableDefinition); - try { - bigquery.create(tableInfo); - fail("BigQueryException was expected"); - } catch (BigQueryException e) { - BigQueryError error = e.getError(); - assertNotNull(error); - assertEquals("invalid", error.getReason()); - assertThat( - e.getMessage().contains("metadataCacheMode provided for non BigLake external table")) - .isTrue(); - } + BigQueryException exception = + assertThrows( + "BigQueryException was expected", + BigQueryException.class, + () -> bigquery.create(tableInfo)); + BigQueryError error = exception.getError(); + assertNotNull(error); + assertEquals("invalid", error.getReason()); + assertTrue( + exception + .getMessage() + .contains("metadataCacheMode provided for non BigLake external table")); } @Test @@ -7533,16 +7525,6 @@ public void testObjectTable() throws InterruptedException { } } - static GoogleCredentials loadCredentials(String credentialFile) { - try { - InputStream keyStream = new ByteArrayInputStream(credentialFile.getBytes()); - return GoogleCredentials.fromStream(keyStream); - } catch (IOException e) { - fail("Couldn't create fake JSON credentials."); - } - return null; - } - @Test public void testQueryExportStatistics() throws InterruptedException { String query = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java index 588484749c02..790f35fe5c80 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java @@ -63,7 +63,6 @@ import java.util.Map; import java.util.TimeZone; import java.util.UUID; -import java.util.concurrent.ExecutionException; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.arrow.vector.util.JsonStringArrayList; @@ -183,7 +182,7 @@ public static void beforeClass() throws InterruptedException, IOException { } @AfterClass - public static void afterClass() throws ExecutionException, InterruptedException { + public static void afterClass() { try { if (bigquery != null) { deleteTable(DATASET, TABLE); From 00ec93962debcdee7cfed506bc33c9f75082fa33 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 22:11:32 -0500 Subject: [PATCH 3353/3441] chore(main): release 2.57.1 (#4029) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9397c65bcc0..469bc0b33d39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.57.1](https://github.com/googleapis/java-bigquery/compare/v2.57.0...v2.57.1) (2025-12-12) + + +### Dependencies + +* Update actions/upload-artifact action to v6 ([#4027](https://github.com/googleapis/java-bigquery/issues/4027)) ([5d389cf](https://github.com/googleapis/java-bigquery/commit/5d389cf45b41a0edceb3c5ed98dd2421ba6f2234)) + ## [2.57.0](https://github.com/googleapis/java-bigquery/compare/v2.56.0...v2.57.0) (2025-12-11) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 8d70e4d685cb..4b04479cd34f 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.57.1-SNAPSHOT + 2.57.1 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 353200803472..dc9d046e594d 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.57.1-SNAPSHOT + 2.57.1 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.57.1-SNAPSHOT + 2.57.1 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 9517e4919884..adeb1ce48072 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.57.1-SNAPSHOT + 2.57.1 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.57.1-SNAPSHOT + 2.57.1 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 129c6226c6f4..9c123afe2145 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.57.1-SNAPSHOT + 2.57.1 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.57.1-SNAPSHOT + 2.57.1 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 3976d33b4ed6..901c0c5ca044 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.57.1-SNAPSHOT + 2.57.1 diff --git a/versions.txt b/versions.txt index e6d97a704224..218ca40390ac 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.57.0:2.57.1-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.57.1:2.57.1 \ No newline at end of file From c18702edc69cee76e7ae7a2bbedbc9c1a16b48dc Mon Sep 17 00:00:00 2001 From: Blake Li Date: Mon, 15 Dec 2025 10:46:26 -0500 Subject: [PATCH 3354/3441] chore: Update renovate.json (#4031) deps update from bigquerystorage was incorrectly marked as chore(deps). This would cause the upgrade not show up in the release notes and also not trigger release please. This is because the pattern /^com.google.cloud:google-cloud-bigquery is configured in renovate.json, which matches both bigquery and bigquerystorage. However, I believe the original intention is only for bigquery update in samples, not for bigquerystorage update. Fixing the pattern so that the String must ends with bigquery --- renovate.json | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/renovate.json b/renovate.json index 38fdb78ebd1b..dc6b01e796de 100644 --- a/renovate.json +++ b/renovate.json @@ -44,14 +44,6 @@ "/^com.google.guava:/" ] }, - { - "semanticCommitType": "deps", - "semanticCommitScope": null, - "matchPackageNames": [ - "*", - "/^com.google.cloud:google-cloud-bigquerystorage/" - ] - }, { "semanticCommitType": "build", "semanticCommitScope": "deps", @@ -68,7 +60,7 @@ "semanticCommitType": "chore", "semanticCommitScope": "deps", "matchPackageNames": [ - "/^com.google.cloud:google-cloud-bigquery/", + "/^com.google.cloud:google-cloud-bigquery$/", "/^com.google.cloud:google-cloud-bigtable/", "/^com.google.cloud:libraries-bom/", "/^com.google.cloud.samples:shared-configuration/" From adbe2e04db7d45cc1d12368de3e0a728a6b56ab8 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 15 Dec 2025 14:35:55 -0500 Subject: [PATCH 3355/3441] chore(main): release 2.57.2-SNAPSHOT (#4032) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4b04479cd34f..41e1a2fcb3e7 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.57.1 + 2.57.2-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index dc9d046e594d..4cfd4741432f 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.57.1 + 2.57.2-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.57.1 + 2.57.2-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index adeb1ce48072..5e86e77fd227 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.57.1 + 2.57.2-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.57.1 + 2.57.2-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9c123afe2145..44548ec5c2fa 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.57.1 + 2.57.2-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.57.1 + 2.57.2-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 901c0c5ca044..e10b51dc7d42 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.57.1 + 2.57.2-SNAPSHOT diff --git a/versions.txt b/versions.txt index 218ca40390ac..507619351d56 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.57.1:2.57.1 \ No newline at end of file +google-cloud-bigquery:2.57.1:2.57.2-SNAPSHOT \ No newline at end of file From 7198340e7596089d6c69256fd9d982a7f1c17c85 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 15 Dec 2025 16:02:33 -0500 Subject: [PATCH 3356/3441] test: Add integration tests for picosecond support (#4030) * test: Add integration tests for picosecond support * chore: Add a micro -> pico exact timestamp test case * chore: Add additional test cases * chore: Fix test cases with 'Z' * chore: Test if first query has an impact * chore: Remove flaky test for now * chore: Remove testing comment --- .../cloud/bigquery/QueryParameterValue.java | 6 +- .../testing/RemoteBigQueryHelper.java | 19 +- .../bigquery/it/ITHighPrecisionTimestamp.java | 319 ++++++++++++++++++ 3 files changed, 336 insertions(+), 8 deletions(-) create mode 100644 google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index cb4e44861d41..89e7ae85bfa1 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -328,9 +328,9 @@ public static QueryParameterValue timestamp(Long value) { *

    This method supports up to picosecond precision (12 digits) for timestamp. Input should * conform to ISO8601 format. * - *

    Must be in the format "yyyy-MM-dd HH:mm:ss.SSSSSS{SSSSSSS}ZZ", e.g. "2014-08-19 - * 12:41:35.123456+00:00" for microsecond precision and "2014-08-19 12:41:35.123456789123+00:00" - * for picosecond precision + *

    Should be in the format "yyyy-MM-dd HH:mm:ss.SSSSSS{SSSSSSS}Z", e.g. "2014-08-19 + * 12:41:35.123456Z" for microsecond precision and "2014-08-19 12:41:35.123456789123Z" for + * picosecond precision */ public static QueryParameterValue timestamp(String value) { return of(value, StandardSQLTypeName.TIMESTAMP); diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java index 4b1767362c86..c32e1a05162c 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java @@ -120,18 +120,27 @@ public static RemoteBigQueryHelper create(String projectId, InputStream keyStrea * credentials. */ public static RemoteBigQueryHelper create() { + return create(BigQueryOptions.newBuilder()); + } + + /** + * Creates a {@code RemoteBigQueryHelper} object using default project id and authentication + * credentials. + * + * @param bigqueryOptionsBuilder Custom BigqueryOptions.Builder with some pre-defined settings + */ + public static RemoteBigQueryHelper create(BigQueryOptions.Builder bigqueryOptionsBuilder) { HttpTransportOptions transportOptions = BigQueryOptions.getDefaultHttpTransportOptions(); transportOptions = transportOptions.toBuilder() .setConnectTimeout(connectTimeout) .setReadTimeout(connectTimeout) .build(); - BigQueryOptions bigqueryOptions = - BigQueryOptions.newBuilder() + BigQueryOptions.Builder builder = + bigqueryOptionsBuilder .setRetrySettings(retrySettings()) - .setTransportOptions(transportOptions) - .build(); - return new RemoteBigQueryHelper(bigqueryOptions); + .setTransportOptions(transportOptions); + return new RemoteBigQueryHelper(builder.build()); } private static RetrySettings retrySettings() { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java new file mode 100644 index 000000000000..332071a62078 --- /dev/null +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java @@ -0,0 +1,319 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery.it; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.DataFormatOptions; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.DatasetInfo; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.InsertAllRequest; +import com.google.cloud.bigquery.InsertAllResponse; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; +import com.google.cloud.bigquery.TableResult; +import com.google.cloud.bigquery.testing.RemoteBigQueryHelper; +import com.google.protobuf.Timestamp; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.stream.Collectors; +import java.util.stream.StreamSupport; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ITHighPrecisionTimestamp { + + public static final String TEST_HIGH_PRECISION_TIMESTAMP_TABLE_NAME = + "test_high_precision_timestamp"; + private static BigQuery bigquery; + private static final String DATASET = RemoteBigQueryHelper.generateDatasetName(); + private static TableId defaultTableId; + public static final long TIMESTAMP_PICOSECOND_PRECISION = 12L; + private static final Field TIMESTAMP_HIGH_PRECISION_FIELD_SCHEMA = + Field.newBuilder("timestampHighPrecisionField", StandardSQLTypeName.TIMESTAMP) + .setTimestampPrecision(TIMESTAMP_PICOSECOND_PRECISION) + .build(); + private static final Schema TABLE_SCHEMA = Schema.of(TIMESTAMP_HIGH_PRECISION_FIELD_SCHEMA); + + private static final String TIMESTAMP1 = "2025-01-01T12:34:56.123456789123Z"; + private static final String TIMESTAMP2 = "1970-01-01T12:34:56.123456789123Z"; + private static final String TIMESTAMP3 = "2000-01-01T12:34:56.123456789123Z"; + + @BeforeClass + public static void beforeClass() { + BigQueryOptions.Builder builder = + BigQueryOptions.newBuilder() + .setDataFormatOptions( + DataFormatOptions.newBuilder() + .timestampFormatOptions(DataFormatOptions.TimestampFormatOptions.ISO8601_STRING) + .build()); + RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(builder); + bigquery = bigqueryHelper.getOptions().getService(); + + // Create a new dataset + DatasetInfo info = DatasetInfo.newBuilder(DATASET).build(); + bigquery.create(info); + + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder().setSchema(TABLE_SCHEMA).build(); + defaultTableId = TableId.of(DATASET, TEST_HIGH_PRECISION_TIMESTAMP_TABLE_NAME); + + // Create a new table that can be re-used by the test cases + Table createdTable = bigquery.create(TableInfo.of(defaultTableId, tableDefinition)); + assertNotNull(createdTable); + + // Populate with some starter data + Map timestamp1 = + Collections.singletonMap("timestampHighPrecisionField", TIMESTAMP1); + Map timestamp2 = + Collections.singletonMap("timestampHighPrecisionField", TIMESTAMP2); + Map timestamp3 = + Collections.singletonMap("timestampHighPrecisionField", TIMESTAMP3); + InsertAllRequest request = + InsertAllRequest.newBuilder(defaultTableId) + .addRow(timestamp1) + .addRow(timestamp2) + .addRow(timestamp3) + .build(); + InsertAllResponse response = bigquery.insertAll(request); + assertFalse(response.hasErrors()); + assertEquals(0, response.getInsertErrors().size()); + } + + @AfterClass + public static void afterClass() { + if (bigquery != null) { + bigquery.delete(defaultTableId); + RemoteBigQueryHelper.forceDelete(bigquery, DATASET); + } + } + + private static String generateTempTableName() { + return String.format( + "insert_temp_%s%s", + UUID.randomUUID().toString().substring(0, 6), TEST_HIGH_PRECISION_TIMESTAMP_TABLE_NAME); + } + + @Test + public void query_highPrecisionTimestamp() throws InterruptedException { + String sql = + String.format("SELECT timestampHighPrecisionField FROM %s;", defaultTableId.getTable()); + QueryJobConfiguration queryJobConfiguration = + QueryJobConfiguration.newBuilder(sql) + .setDefaultDataset(DatasetId.of(DATASET)) + .setUseLegacySql(false) + .build(); + TableResult result = bigquery.query(queryJobConfiguration); + assertNotNull(result.getJobId()); + String[] expected = new String[] {TIMESTAMP1, TIMESTAMP2, TIMESTAMP3}; + List timestamps = + StreamSupport.stream(result.getValues().spliterator(), false) + .map(x -> (String) x.get(0).getValue()) + .collect(Collectors.toList()); + assertEquals(expected.length, timestamps.size()); + for (int i = 0; i < timestamps.size(); i++) { + assertEquals(expected[i], timestamps.get(i)); + } + } + + @Test + public void insert_highPrecisionTimestamp_ISOValidFormat() { + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder().setSchema(TABLE_SCHEMA).build(); + String tempTableName = generateTempTableName(); + TableId tableId = TableId.of(DATASET, tempTableName); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + + Map timestampISO = + Collections.singletonMap("timestampHighPrecisionField", "2025-01-01T12:34:56.123456Z"); + InsertAllRequest request = InsertAllRequest.newBuilder(tableId).addRow(timestampISO).build(); + InsertAllResponse response = bigquery.insertAll(request); + assertFalse(response.hasErrors()); + assertEquals(0, response.getInsertErrors().size()); + + bigquery.delete(tableId); + } + + @Test + public void insert_highPrecisionTimestamp_invalidFormats() { + StandardTableDefinition tableDefinition = + StandardTableDefinition.newBuilder().setSchema(TABLE_SCHEMA).build(); + String tempTable = generateTempTableName(); + TableId tableId = TableId.of(DATASET, tempTable); + Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); + assertNotNull(createdTable); + + Map timestampInMicros = + Collections.singletonMap("timestampHighPrecisionField", 123456); + Map timestampInMicrosString = + Collections.singletonMap("timestampHighPrecisionField", "123456"); + Map timestampNegative = + Collections.singletonMap("timestampHighPrecisionField", -123456); + Map timestampFloat = + Collections.singletonMap("timestampHighPrecisionField", 1000.0); + Map timestampProtobuf = + Collections.singletonMap( + "timestampHighPrecisionField", + Timestamp.newBuilder().setSeconds(123456789).setNanos(123456789).build()); + Map timestampProtobufNegative = + Collections.singletonMap( + "timestampHighPrecisionField", + Timestamp.newBuilder().setSeconds(-123456789).setNanos(-123456789).build()); + InsertAllRequest request = + InsertAllRequest.newBuilder(tableId) + .addRow(timestampInMicros) + .addRow(timestampInMicrosString) + .addRow(timestampNegative) + .addRow(timestampFloat) + .addRow(timestampProtobuf) + .addRow(timestampProtobufNegative) + .build(); + InsertAllResponse response = bigquery.insertAll(request); + assertTrue(response.hasErrors()); + assertEquals(request.getRows().size(), response.getInsertErrors().size()); + + bigquery.delete(tableId); + } + + @Test + public void queryNamedParameter_highPrecisionTimestamp() throws InterruptedException { + String query = + String.format( + "SELECT * FROM %s.%s WHERE timestampHighPrecisionField >= CAST(@timestampParam AS TIMESTAMP(12))", + DATASET, defaultTableId.getTable()); + + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .addNamedParameter( + "timestampParam", + QueryParameterValue.timestamp("2000-01-01 12:34:56.123456789123Z")) + .build(); + + TableResult result = bigquery.query(queryConfig); + assertNotNull(result); + String[] expected = new String[] {TIMESTAMP1, TIMESTAMP3}; + List timestamps = + StreamSupport.stream(result.getValues().spliterator(), false) + .map(x -> (String) x.get(0).getValue()) + .collect(Collectors.toList()); + assertEquals(expected.length, timestamps.size()); + for (int i = 0; i < timestamps.size(); i++) { + assertEquals(expected[i], timestamps.get(i)); + } + } + + @Test + public void queryNamedParameter_highPrecisionTimestamp_microsLong() throws InterruptedException { + String query = + String.format( + "SELECT * FROM %s.%s WHERE timestampHighPrecisionField >= CAST(@timestampParam AS TIMESTAMP(12))", + DATASET, defaultTableId.getTable()); + + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .addNamedParameter( + "timestampParam", + QueryParameterValue.timestamp( + 946730096123456L)) // micros for 2000-01-01 12:34:56.123456Z + .build(); + + TableResult result = bigquery.query(queryConfig); + assertNotNull(result); + // Exact timestamp for TIMESTAMP3 is `2000-01-01T12:34:56.123456789123Z` and for the micros + // is `2000-01-01T12:34:56.123456Z`. The micros value gets cast to 12 digits of precision, so + // it becomes `2000-01-01T12:34:56.123456000000Z`. We do expect it as part of the query. + String[] expected = new String[] {TIMESTAMP1, TIMESTAMP3}; + List timestamps = + StreamSupport.stream(result.getValues().spliterator(), false) + .map(x -> (String) x.get(0).getValue()) + .collect(Collectors.toList()); + assertEquals(expected.length, timestamps.size()); + for (int i = 0; i < timestamps.size(); i++) { + assertEquals(expected[i], timestamps.get(i)); + } + } + + @Test + public void queryNamedParameter_highPrecisionTimestamp_microsISOString() + throws InterruptedException { + String query = + String.format( + "SELECT * FROM %s.%s WHERE timestampHighPrecisionField >= CAST(@timestampParam AS TIMESTAMP(12))", + DATASET, defaultTableId.getTable()); + + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .addNamedParameter( + "timestampParam", QueryParameterValue.timestamp("2000-01-01 12:34:56.123456Z")) + .build(); + + TableResult result = bigquery.query(queryConfig); + assertNotNull(result); + List timestamps = + StreamSupport.stream(result.getValues().spliterator(), false) + .map(x -> (String) x.get(0).getValue()) + .collect(Collectors.toList()); + String[] expected = new String[] {TIMESTAMP1, TIMESTAMP3}; + assertEquals(expected.length, timestamps.size()); + for (int i = 0; i < timestamps.size(); i++) { + assertEquals(expected[i], timestamps.get(i)); + } + } + + @Test + public void queryNamedParameter_highPrecisionTimestamp_noExplicitCastInQuery_fails() { + String query = + String.format( + "SELECT * FROM %s.%s WHERE timestampHighPrecisionField >= @timestampParam", + DATASET, defaultTableId.getTable()); + + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .addNamedParameter( + "timestampParam", QueryParameterValue.timestamp("2000-01-01 12:34:56.123456789123")) + .build(); + + BigQueryException exception = + assertThrows(BigQueryException.class, () -> bigquery.query(queryConfig)); + assertEquals("Invalid argument type passed to a function", exception.getMessage()); + } +} From fa0a12e3cf171abab528c318ba3f4260b69a5274 Mon Sep 17 00:00:00 2001 From: Abgar Simonean Date: Fri, 19 Dec 2025 06:03:25 +0200 Subject: [PATCH 3357/3441] fix: Job.isDone() uses Job.Status.State if available (#4039) --- .../src/main/java/com/google/cloud/bigquery/Job.java | 9 ++++++++- .../src/test/java/com/google/cloud/bigquery/JobTest.java | 8 ++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index 88950b9fb29a..c64327500f70 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -210,6 +210,9 @@ public boolean exists() { */ public boolean isDone() { checkNotDryRun("isDone"); + if (hasDoneState()) { + return true; + } Span isDone = null; if (options.isOpenTelemetryTracingEnabled() && options.getOpenTelemetryTracer() != null) { isDone = @@ -220,7 +223,7 @@ public boolean isDone() { } try (Scope isDoneScope = isDone != null ? isDone.makeCurrent() : null) { Job job = bigquery.getJob(getJobId(), JobOption.fields(BigQuery.JobField.STATUS)); - return job == null || JobStatus.State.DONE.equals(job.getStatus().getState()); + return job == null || job.hasDoneState(); } finally { if (isDone != null) { isDone.end(); @@ -228,6 +231,10 @@ public boolean isDone() { } } + private boolean hasDoneState() { + return getStatus() != null && JobStatus.State.DONE.equals(getStatus().getState()); + } + /** See {@link #waitFor(BigQueryRetryConfig, RetryOption...)} */ public Job waitFor(RetryOption... waitOptions) throws InterruptedException { return waitForInternal(DEFAULT_RETRY_CONFIG, waitOptions); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index f12d9fcafab8..e6d249af466f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -157,11 +157,9 @@ public void testExists_False() { @Test public void testIsDone_True() { - BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; Job job = expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.DONE)).build(); - when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(job); assertTrue(job.isDone()); - verify(bigquery).getJob(JOB_INFO.getJobId(), expectedOptions); + verify(bigquery, times(0)).getJob(eq(JOB_INFO.getJobId()), any()); } @Test @@ -176,8 +174,10 @@ public void testIsDone_False() { @Test public void testIsDone_NotExists() { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; + Job jobWithRunningState = + expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(null); - assertTrue(job.isDone()); + assertTrue(jobWithRunningState.isDone()); verify(bigquery).getJob(JOB_INFO.getJobId(), expectedOptions); } From d214d10e4ad216ea6e8d3405b71b1f1212f29f4a Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Tue, 23 Dec 2025 15:54:46 -0500 Subject: [PATCH 3358/3441] chore: remove build badges (#4046) b/468377909 --- README.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/README.md b/README.md index d8f6c46d878d..0d2e002bd396 100644 --- a/README.md +++ b/README.md @@ -327,29 +327,10 @@ information. Apache 2.0 - See [LICENSE][license] for more information. -## CI Status - -Java Version | Status ------------- | ------ -Java 8 | [![Kokoro CI][kokoro-badge-image-2]][kokoro-badge-link-2] -Java 8 OSX | [![Kokoro CI][kokoro-badge-image-3]][kokoro-badge-link-3] -Java 8 Windows | [![Kokoro CI][kokoro-badge-image-4]][kokoro-badge-link-4] -Java 11 | [![Kokoro CI][kokoro-badge-image-5]][kokoro-badge-link-5] - Java is a registered trademark of Oracle and/or its affiliates. [product-docs]: https://cloud.google.com/bigquery [javadocs]: https://cloud.google.com/java/docs/reference/google-cloud-bigquery/latest/history -[kokoro-badge-image-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java7.svg -[kokoro-badge-link-1]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java7.html -[kokoro-badge-image-2]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8.svg -[kokoro-badge-link-2]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8.html -[kokoro-badge-image-3]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8-osx.svg -[kokoro-badge-link-3]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8-osx.html -[kokoro-badge-image-4]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8-win.svg -[kokoro-badge-link-4]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java8-win.html -[kokoro-badge-image-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.svg -[kokoro-badge-link-5]: http://storage.googleapis.com/cloud-devrel-public/java/badges/java-bigquery/java11.html [stability-image]: https://img.shields.io/badge/stability-stable-green [maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-bigquery.svg [maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-bigquery/2.42.2 From 4bb157c935a69f099189d8ee50e84d0a33b57505 Mon Sep 17 00:00:00 2001 From: Sivamurugan P <73530366+SivamuruganP@users.noreply.github.com> Date: Mon, 29 Dec 2025 23:41:21 +0530 Subject: [PATCH 3359/3441] chore: handled race condition in stateless query integration test (#4045) * fix: handled race condition in stateless query integration test The testTableResultJobIdAndQueryId test was failing intermittently on slower networks. The test strictly asserted that Job ID must be null for stateless queries. However, the library correctly falls back to creating a Job ID if the stateless query times out. This change updates the assertion logic to accept either a valid Query ID (stateless success) or a valid Job ID (fallback success). Fixes #4008 * refactor: use XOR assertion for conciseness Applied feedback from code review to use exclusive OR operator for validating JobID/QueryID mutual exclusivity. * fix: apply race condition logic to testStatelessQueries Applied XOR assertion logic to testStatelessQueries. Test was failing on slow networks because they did not account for JOB_CREATION_OPTIONAL falling back to job creation. Fixes #4002 * docs: add comment explaining stateless query fallback behavior * docs: add comment explaining stateless query fallback behavior in testTableResultJobIdAndQueryId() --- .../cloud/bigquery/it/ITBigQueryTest.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 80605884d384..ecb5e0c63d91 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -7181,8 +7181,12 @@ public void testStatelessQueries() throws InterruptedException { // Stateless query should have no job id. bigQuery.getOptions().setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL); TableResult tableResult = executeSimpleQuery(bigQuery); - assertNotNull(tableResult.getQueryId()); - assertNull(tableResult.getJobId()); + // Use XOR: We accept EITHER a QueryId (fast path) OR a JobId (slow fallback), but not both. + // Ideally Stateless query will return queryId but in some cases it would return jobId instead + // of queryId based on the query complexity or other factors (job timeout configs). + assertTrue( + "Exactly one of jobId or queryId should be non-null", + (tableResult.getJobId() != null) ^ (tableResult.getQueryId() != null)); // Job creation takes over, no query id is created. bigQuery.getOptions().setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_REQUIRED); @@ -7220,8 +7224,14 @@ public void testTableResultJobIdAndQueryId() throws InterruptedException { String query = "SELECT 1 as one"; QueryJobConfiguration configStateless = QueryJobConfiguration.newBuilder(query).build(); TableResult result = bigQuery.query(configStateless); - assertNull(result.getJobId()); - assertNotNull(result.getQueryId()); + // A stateless query should result in either a queryId (stateless success) or a jobId (fallback + // to a job). + // Exactly one of them should be non-null. + // Ideally Stateless query will return queryId but in some cases it would return jobId instead + // of queryId based on the query complexity or other factors (job timeout configs). + assertTrue( + "Exactly one of jobId or queryId should be non-null", + (result.getJobId() != null) ^ (result.getQueryId() != null)); // Test scenario 2 by failing stateless check by setting job timeout. QueryJobConfiguration configQueryWithJob = From cbd5d238b2a3a6abf7d2eb9f62e69680ccfc580b Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 29 Dec 2025 17:53:14 -0500 Subject: [PATCH 3360/3441] chore: Ignore unused declared junit-jupiter-engine error in dependencies check (#4048) * chore: Ingore unused junit-jupiter-engine error in dependencies check * chore: Update pom.xml Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> * chore: Update comment format for junit-jupiter-engine --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- pom.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pom.xml b/pom.xml index 44548ec5c2fa..4cded9553c87 100644 --- a/pom.xml +++ b/pom.xml @@ -172,6 +172,8 @@ io.netty:netty-common org.apache.arrow:arrow-memory-netty com.google.api:gax + + org.junit.jupiter:junit-jupiter-engine From 031deb00f153b47d37655b025fcef298a3db0e0b Mon Sep 17 00:00:00 2001 From: Sivamurugan P <73530366+SivamuruganP@users.noreply.github.com> Date: Tue, 30 Dec 2025 23:55:08 +0530 Subject: [PATCH 3361/3441] =?UTF-8?q?fix:=20gracefully=20handle=20thread?= =?UTF-8?q?=20interruption=20in=20ConnectionImpl=20to=20preve=E2=80=A6=20(?= =?UTF-8?q?#4047)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: gracefully handle thread interruption in ConnectionImpl to prevent CI flakes Fixes #3992 * fix: consolidate interrupt checks and handle raw InterruptedException as per review * fix: remove CancelledException check per review feedback --- .../java/com/google/cloud/bigquery/ConnectionImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index c3465c33a831..d31a406e40a6 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -1069,7 +1069,15 @@ private void processArrowStreamAsync( } } catch (Exception e) { - throw BigQueryException.translateAndThrow(e); + if (e instanceof InterruptedException || e.getCause() instanceof InterruptedException) { + // Log silently and let it fall through to 'finally' for cleanup. + // This is the "graceful shutdown". + logger.log( + Level.INFO, "Background thread interrupted (Connection Closed). Stopping."); + Thread.currentThread().interrupt(); + } else { + throw BigQueryException.translateAndThrow(e); + } } finally { // logic needed for graceful shutdown // marking end of stream try { From 2578dcbb1340a1a121cdb335b16e21fef7a0638f Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Tue, 6 Jan 2026 22:21:25 +0000 Subject: [PATCH 3362/3441] chore(deps): update dependency com.google.cloud:libraries-bom to v26.73.0 (#3922) --- samples/snippets/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml index d6cbcca5d1d7..1903381ad750 100644 --- a/samples/snippets/pom.xml +++ b/samples/snippets/pom.xml @@ -47,7 +47,7 @@ com.google.cloud libraries-bom - 26.64.0 + 26.73.0 pom import From fac16a8eb05a6e13e406feeb9761259cdbf8e674 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 7 Jan 2026 13:19:10 -0500 Subject: [PATCH 3363/3441] docs: Add specific samples for creating and query timestamps (#4051) * docs: Add specific samples for creating and query timestamps * chore: Fix samples checkstyle issue * chore: Address gemini suggestions * chore: Update expiration time for test --- .../cloud/bigquery/it/ITBigQueryTest.java | 8 +- .../bigquery/CreateTableTimestamp.java | 59 ++++++++++++++ .../QueryWithTimestampParameters.java | 34 +++++++- .../com/example/bigquery/CreateTableIT.java | 11 ++- .../bigquery/CreateTableTimestampIT.java | 80 +++++++++++++++++++ .../QueryWithTimestampParametersIT.java | 9 ++- 6 files changed, 187 insertions(+), 14 deletions(-) create mode 100644 samples/snippets/src/main/java/com/example/bigquery/CreateTableTimestamp.java create mode 100644 samples/snippets/src/test/java/com/example/bigquery/CreateTableTimestampIT.java diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index ecb5e0c63d91..ddad48d3920c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -5980,9 +5980,11 @@ public void testSnapshotTableCopyJob() throws InterruptedException { @Test public void testCopyJobWithLabelsAndExpTime() throws InterruptedException { - String destExpiryTime = "2025-12-31T23:59:59.999999999Z"; - String sourceTableName = "test_copy_job_source_table_label"; - String destinationTableName = "test_copy_job_destination_table_label"; + String destExpiryTime = "2099-12-31T23:59:59.999999999Z"; + String sourceTableName = + "test_copy_job_source_table_label" + UUID.randomUUID().toString().substring(0, 8); + String destinationTableName = + "test_copy_job_destination_table_label" + UUID.randomUUID().toString().substring(0, 8); Map labels = ImmutableMap.of("test_job_name", "test_copy_job"); TableId sourceTable = TableId.of(DATASET, sourceTableName); StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); diff --git a/samples/snippets/src/main/java/com/example/bigquery/CreateTableTimestamp.java b/samples/snippets/src/main/java/com/example/bigquery/CreateTableTimestamp.java new file mode 100644 index 000000000000..b1336aaff43f --- /dev/null +++ b/samples/snippets/src/main/java/com/example/bigquery/CreateTableTimestamp.java @@ -0,0 +1,59 @@ +/* + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +// [START bigquery_create_table_timestamp] +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.StandardTableDefinition; +import com.google.cloud.bigquery.TableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableInfo; + +public class CreateTableTimestamp { + + public static void main(String[] args) { + // TODO(developer): Replace these variables before running the sample. + String datasetName = "MY_DATASET_NAME"; + String tableName = "MY_TABLE_NAME"; + Schema schema = + Schema.of(Field.newBuilder("timestampField", StandardSQLTypeName.TIMESTAMP).build()); + createTable(datasetName, tableName, schema); + } + + public static void createTable(String datasetName, String tableName, Schema schema) { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + TableId tableId = TableId.of(datasetName, tableName); + TableDefinition tableDefinition = StandardTableDefinition.of(schema); + TableInfo tableInfo = TableInfo.newBuilder(tableId, tableDefinition).build(); + + bigquery.create(tableInfo); + System.out.println("Table created successfully"); + } catch (BigQueryException e) { + System.out.println("Table was not created. \n" + e); + } + } +} +// [END bigquery_create_table_timestamp] diff --git a/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java b/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java index 56a3fcea914f..6f20b9801d7d 100644 --- a/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java +++ b/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java @@ -30,8 +30,36 @@ // Sample to running a query with timestamp query parameters. public class QueryWithTimestampParameters { - public static void main(String[] args) { - queryWithTimestampParameters(); + public static void queryFromTableTimestampParameters() { + try { + // Initialize client that will be used to send requests. This client only needs to be created + // once, and can be reused for multiple requests. + BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService(); + + ZonedDateTime timestamp = LocalDateTime.of(2016, 12, 7, 8, 0, 0).atZone(ZoneOffset.UTC); + String query = "SELECT last_reported FROM " + + "`bigquery-public-data`.new_york_citibike.citibike_stations" + + " WHERE last_reported >= @ts_value LIMIT 5"; + // Note: Standard SQL is required to use query parameters. + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .addNamedParameter( + "ts_value", + QueryParameterValue.timestamp( + // Timestamp takes microseconds since 1970-01-01T00:00:00 UTC + timestamp.toInstant().toEpochMilli() * 1000)) + .build(); + + TableResult results = bigquery.query(queryConfig); + + results + .iterateAll() + .forEach(row -> row.forEach(val -> System.out.printf("%s\n", val.toString()))); + + System.out.println("Query with timestamp parameter performed successfully."); + } catch (BigQueryException | InterruptedException e) { + System.out.println("Query not performed \n" + e); + } } public static void queryWithTimestampParameters() { @@ -60,7 +88,7 @@ public static void queryWithTimestampParameters() { System.out.println("Query with timestamp parameter performed successfully."); } catch (BigQueryException | InterruptedException e) { - System.out.println("Query not performed \n" + e.toString()); + System.out.println("Query not performed \n" + e); } } } diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java index af5104c1c6e7..000091a04599 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java @@ -37,26 +37,25 @@ public class CreateTableIT { private final Logger log = Logger.getLogger(this.getClass().getName()); private String tableName; private ByteArrayOutputStream bout; - private PrintStream out; private PrintStream originalPrintStream; private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); - private static void requireEnvVar(String varName) { + private static void requireEnvVar() { assertNotNull( - "Environment variable " + varName + " is required to perform these tests.", - System.getenv(varName)); + "Environment variable BIGQUERY_DATASET_NAME is required to perform these tests.", + System.getenv("BIGQUERY_DATASET_NAME")); } @BeforeClass public static void checkRequirements() { - requireEnvVar("BIGQUERY_DATASET_NAME"); + requireEnvVar(); } @Before public void setUp() { bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); + PrintStream out = new PrintStream(bout); originalPrintStream = System.out; System.setOut(out); tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); diff --git a/samples/snippets/src/test/java/com/example/bigquery/CreateTableTimestampIT.java b/samples/snippets/src/test/java/com/example/bigquery/CreateTableTimestampIT.java new file mode 100644 index 000000000000..b63d6eff635d --- /dev/null +++ b/samples/snippets/src/test/java/com/example/bigquery/CreateTableTimestampIT.java @@ -0,0 +1,80 @@ +/* + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.bigquery; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertNotNull; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.UUID; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; + +public class CreateTableTimestampIT { + private final Logger log = Logger.getLogger(this.getClass().getName()); + private String tableName; + private ByteArrayOutputStream bout; + private PrintStream originalPrintStream; + + private static final String BIGQUERY_DATASET_NAME = System.getenv("BIGQUERY_DATASET_NAME"); + + private static void requireEnvVar() { + assertNotNull( + "Environment variable BIGQUERY_DATASET_NAME is required to perform these tests.", + System.getenv("BIGQUERY_DATASET_NAME")); + } + + @BeforeClass + public static void checkRequirements() { + requireEnvVar(); + } + + @Before + public void setUp() { + bout = new ByteArrayOutputStream(); + PrintStream out = new PrintStream(bout); + originalPrintStream = System.out; + System.setOut(out); + tableName = "MY_TABLE_NAME_" + UUID.randomUUID().toString().replace("-", "_"); + } + + @After + public void tearDown() { + // Clean up + DeleteTable.deleteTable(BIGQUERY_DATASET_NAME, tableName); + // restores print statements in the original method + System.out.flush(); + System.setOut(originalPrintStream); + log.log(Level.INFO, "\n" + bout.toString()); + } + + @Test + public void testCreateTable() { + Schema schema = + Schema.of(Field.of("timestampField", StandardSQLTypeName.TIMESTAMP)); + CreateTableTimestamp.createTable(BIGQUERY_DATASET_NAME, tableName, schema); + assertThat(bout.toString()).contains("Table created successfully"); + } +} diff --git a/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java b/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java index eb6f79cb7b23..32d707c307bc 100644 --- a/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java +++ b/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java @@ -30,13 +30,12 @@ public class QueryWithTimestampParametersIT { private final Logger log = Logger.getLogger(this.getClass().getName()); private ByteArrayOutputStream bout; - private PrintStream out; private PrintStream originalPrintStream; @Before public void setUp() { bout = new ByteArrayOutputStream(); - out = new PrintStream(bout); + PrintStream out = new PrintStream(bout); originalPrintStream = System.out; System.setOut(out); } @@ -54,4 +53,10 @@ public void testQueryWithTimestampParameters() { QueryWithTimestampParameters.queryWithTimestampParameters(); assertThat(bout.toString()).contains("Query with timestamp parameter performed successfully."); } + + @Test + public void testQueryFromTableTimestampParameters() { + QueryWithTimestampParameters.queryFromTableTimestampParameters(); + assertThat(bout.toString()).contains("Query with timestamp parameter performed successfully."); + } } From 719f8fd14e384cbe0a5e26f36ed05f97c4231fc0 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Fri, 9 Jan 2026 15:19:17 -0500 Subject: [PATCH 3364/3441] chore: Migrate tests to JUnit5 (#4052) * feat: Migrate to JUnit 5 and add parallel test execution * feat: Migrate tests to JUnit5 * chore: Add surefire-junit-platform dep for ITs * chore: Fix broken tests * chore: Upgrade existing integration tests to JUnit 5 syntax and features * chore: Upgrade ITNightlyBigQueryTest to JUnit 5 features and package-private * chore: Make the tests package-private * feat: migrate tests to JUnit 5 assertThrows and static imports * chore: Remove wildcard imports * chore: revert samples to use junit4 * chore: Address code comments * chore: Close connection after test --------- Co-authored-by: AbgarSim --- google-cloud-bigquery/pom.xml | 28 +- .../src/test/java/MetadataCacheStatsTest.java | 8 +- .../com/google/cloud/bigquery/AclTest.java | 26 +- .../cloud/bigquery/AnnotationsTest.java | 26 +- .../cloud/bigquery/AvroOptionsTest.java | 10 +- .../bigquery/BigLakeConfigurationTest.java | 12 +- .../cloud/bigquery/BigQueryErrorTest.java | 8 +- .../cloud/bigquery/BigQueryExceptionTest.java | 26 +- .../cloud/bigquery/BigQueryImplTest.java | 437 +++++++------- .../cloud/bigquery/BigQueryOptionsTest.java | 43 +- .../bigquery/BigQueryResultImplTest.java | 8 +- .../cloud/bigquery/BigtableOptionsTest.java | 69 ++- .../cloud/bigquery/CloneDefinitionTest.java | 12 +- .../cloud/bigquery/ColumnReferenceTest.java | 12 +- .../cloud/bigquery/ConnectionImplTest.java | 80 +-- .../bigquery/ConnectionPropertyTest.java | 10 +- .../bigquery/ConnectionSettingsTest.java | 12 +- .../bigquery/CopyJobConfigurationTest.java | 26 +- .../google/cloud/bigquery/CsvOptionsTest.java | 12 +- .../google/cloud/bigquery/DatasetIdTest.java | 14 +- .../cloud/bigquery/DatasetInfoTest.java | 26 +- .../google/cloud/bigquery/DatasetTest.java | 78 ++- .../bigquery/DatastoreBackupOptionsTest.java | 12 +- .../google/cloud/bigquery/DmlStatsTest.java | 8 +- .../ExternalDatasetReferenceTest.java | 12 +- .../bigquery/ExternalTableDefinitionTest.java | 29 +- .../bigquery/ExtractJobConfigurationTest.java | 10 +- .../cloud/bigquery/FieldElementTypeTest.java | 4 +- .../google/cloud/bigquery/FieldListTest.java | 35 +- .../com/google/cloud/bigquery/FieldTest.java | 6 +- .../cloud/bigquery/FieldValueListTest.java | 39 +- .../google/cloud/bigquery/FieldValueTest.java | 12 +- .../google/cloud/bigquery/ForeignKeyTest.java | 14 +- .../cloud/bigquery/FormatOptionsTest.java | 4 +- .../bigquery/GoogleSheetsOptionsTest.java | 2 +- .../bigquery/HivePartitioningOptionsTest.java | 12 +- .../cloud/bigquery/InsertAllRequestTest.java | 11 +- .../cloud/bigquery/InsertAllResponseTest.java | 10 +- .../com/google/cloud/bigquery/JobIdTest.java | 14 +- .../google/cloud/bigquery/JobInfoTest.java | 10 +- .../cloud/bigquery/JobStatisticsTest.java | 4 +- .../google/cloud/bigquery/JobStatusTest.java | 10 +- .../com/google/cloud/bigquery/JobTest.java | 135 ++--- .../bigquery/LoadJobConfigurationTest.java | 20 +- .../MaterializedViewDefinitionTest.java | 6 +- .../google/cloud/bigquery/ModelIdTest.java | 14 +- .../google/cloud/bigquery/ModelInfoTest.java | 20 +- .../bigquery/ModelTableDefinitionTest.java | 37 +- .../com/google/cloud/bigquery/ModelTest.java | 50 +- .../com/google/cloud/bigquery/OptionTest.java | 17 +- .../cloud/bigquery/ParquetOptionsTest.java | 4 +- .../cloud/bigquery/PolicyHelperTest.java | 10 +- .../google/cloud/bigquery/PolicyTagsTest.java | 8 +- .../google/cloud/bigquery/PrimaryKeyTest.java | 14 +- .../bigquery/QueryJobConfigurationTest.java | 8 +- .../bigquery/QueryParameterValueTest.java | 32 +- .../cloud/bigquery/QueryRequestInfoTest.java | 10 +- .../google/cloud/bigquery/QueryStageTest.java | 18 +- .../com/google/cloud/bigquery/RangeTest.java | 6 +- .../bigquery/RemoteFunctionOptionsTest.java | 12 +- .../cloud/bigquery/RoutineArgumentTest.java | 4 +- .../google/cloud/bigquery/RoutineIdTest.java | 4 +- .../cloud/bigquery/RoutineInfoTest.java | 20 +- .../google/cloud/bigquery/RoutineTest.java | 26 +- .../com/google/cloud/bigquery/SchemaTest.java | 12 +- .../bigquery/SnapshotTableDefinitionTest.java | 14 +- .../bigquery/StandardSQLDataTypeTest.java | 12 +- .../cloud/bigquery/StandardSQLFieldTest.java | 4 +- .../bigquery/StandardSQLStructTypeTest.java | 12 +- .../bigquery/StandardSQLTableTypeTest.java | 4 +- .../bigquery/StandardTableDefinitionTest.java | 39 +- .../cloud/bigquery/TableConstraintsTest.java | 14 +- .../bigquery/TableDataWriteChannelTest.java | 70 +-- .../google/cloud/bigquery/TableIdTest.java | 14 +- .../google/cloud/bigquery/TableInfoTest.java | 22 +- .../bigquery/TableMetadataCacheUsageTest.java | 8 +- .../cloud/bigquery/TableResultTest.java | 8 +- .../com/google/cloud/bigquery/TableTest.java | 28 +- .../cloud/bigquery/TimePartitioningTest.java | 42 +- .../cloud/bigquery/TimelineSampleTest.java | 6 +- .../bigquery/UserDefinedFunctionTest.java | 4 +- .../cloud/bigquery/ViewDefinitionTest.java | 37 +- .../WriteChannelConfigurationTest.java | 6 +- .../cloud/bigquery/it/ITBigQueryTest.java | 494 ++++++++-------- .../bigquery/it/ITHighPrecisionTimestamp.java | 20 +- .../bigquery/it/ITNightlyBigQueryTest.java | 533 +++++++++--------- .../cloud/bigquery/it/ITRemoteUDFTest.java | 22 +- .../bigquery/spi/v2/HttpBigQueryRpcTest.java | 2 +- .../testing/RemoteBigQueryHelperTest.java | 12 +- pom.xml | 19 +- 90 files changed, 1576 insertions(+), 1598 deletions(-) diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 5e86e77fd227..174bb9cb36f7 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -162,8 +162,18 @@ test - junit - junit + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + org.mockito + mockito-junit-jupiter test @@ -207,6 +217,20 @@ + + + + org.apache.maven.plugins + maven-failsafe-plugin + 3.5.2 + + + org.apache.maven.surefire + surefire-junit-platform + ${surefire.version} + + + org.codehaus.mojo diff --git a/google-cloud-bigquery/src/test/java/MetadataCacheStatsTest.java b/google-cloud-bigquery/src/test/java/MetadataCacheStatsTest.java index d1cfa86e9ebe..d417bfc7fa59 100644 --- a/google-cloud-bigquery/src/test/java/MetadataCacheStatsTest.java +++ b/google-cloud-bigquery/src/test/java/MetadataCacheStatsTest.java @@ -16,16 +16,16 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.api.services.bigquery.model.MetadataCacheStatistics; import com.google.common.collect.ImmutableList; import com.google.common.truth.Truth; import java.util.List; import java.util.stream.Collectors; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class MetadataCacheStatsTest { +class MetadataCacheStatsTest { private static List TABLE_METADATA_CACHE_USAGE_PB_LIST = ImmutableList.of( @@ -44,7 +44,7 @@ public class MetadataCacheStatsTest { new MetadataCacheStatistics().setTableMetadataCacheUsage(TABLE_METADATA_CACHE_USAGE_PB_LIST); @Test - public void testToPbAndFromPb() { + void testToPbAndFromPb() { assertEquals(METADATA_CACHE_STATISTICS_PB, METADATA_CACHE_STATS.toPb()); compareMetadataCacheStats( METADATA_CACHE_STATS, MetadataCacheStats.fromPb(METADATA_CACHE_STATISTICS_PB)); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java index 0b53f32ff417..f7bed53ba153 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java @@ -16,7 +16,7 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.api.services.bigquery.model.Dataset; import com.google.cloud.bigquery.Acl.DatasetAclEntity; @@ -31,12 +31,12 @@ import com.google.cloud.bigquery.Acl.View; import com.google.common.collect.ImmutableList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class AclTest { +class AclTest { @Test - public void testDatasetEntity() { + void testDatasetEntity() { DatasetId datasetId = DatasetId.of("dataset"); List targetTypes = ImmutableList.of("VIEWS"); DatasetAclEntity entity = new DatasetAclEntity(datasetId, targetTypes); @@ -47,7 +47,7 @@ public void testDatasetEntity() { } @Test - public void testDomainEntity() { + void testDomainEntity() { Domain entity = new Domain("d1"); assertEquals("d1", entity.getDomain()); assertEquals(Type.DOMAIN, entity.getType()); @@ -56,7 +56,7 @@ public void testDomainEntity() { } @Test - public void testGroupEntity() { + void testGroupEntity() { Group entity = new Group("g1"); assertEquals("g1", entity.getIdentifier()); assertEquals(Type.GROUP, entity.getType()); @@ -65,7 +65,7 @@ public void testGroupEntity() { } @Test - public void testSpecialGroupEntity() { + void testSpecialGroupEntity() { Group entity = Group.ofAllAuthenticatedUsers(); assertEquals("allAuthenticatedUsers", entity.getIdentifier()); Dataset.Access pb = entity.toPb(); @@ -85,7 +85,7 @@ public void testSpecialGroupEntity() { } @Test - public void testUserEntity() { + void testUserEntity() { User entity = new User("u1"); assertEquals("u1", entity.getEmail()); assertEquals(Type.USER, entity.getType()); @@ -94,7 +94,7 @@ public void testUserEntity() { } @Test - public void testViewEntity() { + void testViewEntity() { TableId viewId = TableId.of("project", "dataset", "view"); View entity = new View(viewId); assertEquals(viewId, entity.getId()); @@ -104,7 +104,7 @@ public void testViewEntity() { } @Test - public void testRoutineEntity() { + void testRoutineEntity() { RoutineId routineId = RoutineId.of("project", "dataset", "routine"); Acl.Routine entity = new Acl.Routine(routineId); assertEquals(routineId, entity.getId()); @@ -114,7 +114,7 @@ public void testRoutineEntity() { } @Test - public void testIamMemberEntity() { + void testIamMemberEntity() { IamMember entity = new IamMember("member1"); assertEquals("member1", entity.getIamMember()); Dataset.Access pb = entity.toPb(); @@ -122,7 +122,7 @@ public void testIamMemberEntity() { } @Test - public void testOf() { + void testOf() { Acl acl = Acl.of(Group.ofAllAuthenticatedUsers(), Role.READER); assertEquals(Group.ofAllAuthenticatedUsers(), acl.getEntity()); assertEquals(Role.READER, acl.getRole()); @@ -139,7 +139,7 @@ public void testOf() { } @Test - public void testOfWithCondition() { + void testOfWithCondition() { Expr expr = new Expr("expression", "title", "description", "location"); Acl acl = Acl.of(Group.ofAllAuthenticatedUsers(), Role.READER, expr); Dataset.Access pb = acl.toPb(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AnnotationsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AnnotationsTest.java index aa3dd9fde463..ad475c7dcea0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AnnotationsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AnnotationsTest.java @@ -17,17 +17,17 @@ package com.google.cloud.bigquery; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertThrows; import com.google.api.client.util.Data; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class AnnotationsTest { @Test - public void testFromUser() { + void testFromUser() { assertThat(Annotations.fromUser(null).userMap()).isNull(); HashMap user = new HashMap<>(); @@ -43,7 +43,7 @@ public void testFromUser() { } @Test - public void testFromToPb() { + void testFromToPb() { assertThat(Annotations.fromPb(null).toPb()).isNull(); HashMap pb = new HashMap<>(); @@ -60,17 +60,13 @@ public void testFromToPb() { } @Test - public void testNullKey() { - try { - Annotations.fromUser(Collections.singletonMap((String) null, "foo")); - fail("null key shouldn't work"); - } catch (IllegalArgumentException e) { - } + void testNullKey() { + assertThrows( + IllegalArgumentException.class, + () -> Annotations.fromUser(Collections.singletonMap((String) null, "foo"))); - try { - Annotations.fromPb(Collections.singletonMap((String) null, "foo")); - fail("null key shouldn't work"); - } catch (IllegalArgumentException e) { - } + assertThrows( + IllegalArgumentException.class, + () -> Annotations.fromPb(Collections.singletonMap((String) null, "foo"))); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AvroOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AvroOptionsTest.java index f40660fd7baa..840ae24ba88f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AvroOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AvroOptionsTest.java @@ -16,9 +16,9 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class AvroOptionsTest { @@ -27,7 +27,7 @@ public class AvroOptionsTest { AvroOptions.newBuilder().setUseAvroLogicalTypes(USE_AVRO_LOGICAL_TYPES).build(); @Test - public void testToBuilder() { + void testToBuilder() { compareAvroOptions(AVRO_OPTIONS, AVRO_OPTIONS.toBuilder().build()); AvroOptions avroOptions = AVRO_OPTIONS.toBuilder().setUseAvroLogicalTypes(false).build(); assertEquals(false, avroOptions.useAvroLogicalTypes()); @@ -36,13 +36,13 @@ public void testToBuilder() { } @Test - public void testBuilder() { + void testBuilder() { assertEquals(FormatOptions.AVRO, AVRO_OPTIONS.getType()); assertEquals(USE_AVRO_LOGICAL_TYPES, AVRO_OPTIONS.useAvroLogicalTypes()); } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareAvroOptions(AVRO_OPTIONS, AvroOptions.fromPb(AVRO_OPTIONS.toPb())); AvroOptions avroOptions = AvroOptions.newBuilder().setUseAvroLogicalTypes(USE_AVRO_LOGICAL_TYPES).build(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigLakeConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigLakeConfigurationTest.java index afb2b5b10afb..66fcd7c6b4ce 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigLakeConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigLakeConfigurationTest.java @@ -16,11 +16,11 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class BigLakeConfigurationTest { +class BigLakeConfigurationTest { private static final String STORAGE_URI = "gs://storage-uri"; private static final String FILE_FORMAT = "PARQUET"; @@ -43,7 +43,7 @@ public class BigLakeConfigurationTest { .setConnectionId(CONNECTION_ID); @Test - public void testToBuilder() { + void testToBuilder() { assertEquals(STORAGE_URI, BIG_LAKE_CONFIGURATION.getStorageUri()); assertEquals(FILE_FORMAT, BIG_LAKE_CONFIGURATION.getFileFormat()); assertEquals(TABLE_FORMAT, BIG_LAKE_CONFIGURATION.getTableFormat()); @@ -51,12 +51,12 @@ public void testToBuilder() { } @Test - public void testToPb() { + void testToPb() { assertBigLakeConfiguration(BIG_LAKE_CONFIGURATION_PB, BIG_LAKE_CONFIGURATION.toPb()); } @Test - public void testFromPb() { + void testFromPb() { assertBigLakeConfiguration( BIG_LAKE_CONFIGURATION, BigLakeConfiguration.fromPb(BIG_LAKE_CONFIGURATION_PB)); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java index 7cd737cf4b88..d618214e2926 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java @@ -16,9 +16,9 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class BigQueryErrorTest { @@ -32,7 +32,7 @@ public class BigQueryErrorTest { new BigQueryError(REASON, LOCATION, MESSAGE); @Test - public void testConstructor() { + void testConstructor() { assertEquals(REASON, ERROR.getReason()); assertEquals(LOCATION, ERROR.getLocation()); assertEquals(DEBUG_INFO, ERROR.getDebugInfo()); @@ -44,7 +44,7 @@ public void testConstructor() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareBigQueryError(ERROR, BigQueryError.fromPb(ERROR.toPb())); compareBigQueryError(ERROR_INCOMPLETE, BigQueryError.fromPb(ERROR_INCOMPLETE.toPb())); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java index 8a2094b558c4..7254ede1bc5b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java @@ -16,11 +16,11 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; @@ -40,15 +40,15 @@ import java.net.SocketTimeoutException; import java.util.HashMap; import java.util.Map; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnitRunner; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class BigQueryExceptionTest { @Test - public void testBigQueryException() { + void testBigQueryException() { BigQueryException exception = new BigQueryException(500, "message"); assertEquals(500, exception.getCode()); assertEquals("message", exception.getMessage()); @@ -137,7 +137,7 @@ public void testBigQueryException() { } @Test - public void testTranslateAndThrow() throws Exception { + void testTranslateAndThrow() throws Exception { Exception cause = new BigQueryException(503, "message"); RetryHelperException exceptionMock = mock(RetryHelperException.class); when(exceptionMock.getCause()).thenReturn(cause); @@ -168,7 +168,7 @@ public void testTranslateAndThrow() throws Exception { } @Test - public void testDefaultExceptionHandler() throws java.io.IOException { + void testDefaultExceptionHandler() throws java.io.IOException { BigQueryOptions defaultOptions = BigQueryOptions.newBuilder().setProjectId("project-id").build(); DatasetInfo info = DatasetInfo.newBuilder("dataset").build(); @@ -198,7 +198,7 @@ public void testDefaultExceptionHandler() throws java.io.IOException { } @Test - public void testCustomExceptionHandler() throws java.io.IOException { + void testCustomExceptionHandler() throws java.io.IOException { BigQueryOptions defaultOptions = BigQueryOptions.newBuilder() .setProjectId("project-id") diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 393455e36425..20a6ef679e89 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -20,12 +20,33 @@ import static com.google.cloud.bigquery.BigQuery.JobField.USER_EMAIL; import static com.google.cloud.bigquery.BigQueryImpl.optionMap; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.*; -import static org.mockito.Mockito.*; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.nullable; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import com.google.api.gax.paging.Page; -import com.google.api.services.bigquery.model.*; +import com.google.api.services.bigquery.model.ErrorProto; +import com.google.api.services.bigquery.model.GetQueryResultsResponse; +import com.google.api.services.bigquery.model.JobConfigurationQuery; import com.google.api.services.bigquery.model.JobStatistics; +import com.google.api.services.bigquery.model.QueryRequest; +import com.google.api.services.bigquery.model.TableCell; +import com.google.api.services.bigquery.model.TableDataInsertAllRequest; +import com.google.api.services.bigquery.model.TableDataInsertAllResponse; +import com.google.api.services.bigquery.model.TableDataList; +import com.google.api.services.bigquery.model.TableRow; import com.google.cloud.Policy; import com.google.cloud.RetryOption; import com.google.cloud.ServiceOptions; @@ -39,7 +60,11 @@ import com.google.cloud.bigquery.spi.v2.HttpBigQueryRpc; import com.google.common.base.Function; import com.google.common.base.Supplier; -import com.google.common.collect.*; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; import java.io.IOException; import java.math.BigInteger; import java.net.ConnectException; @@ -47,16 +72,18 @@ import java.util.Collections; import java.util.List; import java.util.Map; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) public class BigQueryImplTest { private static final String PROJECT = "project"; @@ -537,8 +564,8 @@ private BigQueryOptions createBigQueryOptionsForProjectWithLocation( .build(); } - @Before - public void setUp() { + @BeforeEach + void setUp() { rpcFactoryMock = mock(BigQueryRpcFactory.class); bigqueryRpcMock = mock(HttpBigQueryRpc.class); when(rpcFactoryMock.create(any(BigQueryOptions.class))).thenReturn(bigqueryRpcMock); @@ -546,13 +573,13 @@ public void setUp() { } @Test - public void testGetOptions() { + void testGetOptions() { bigquery = options.getService(); assertSame(options, bigquery.getOptions()); } @Test - public void testCreateDataset() throws IOException { + void testCreateDataset() throws IOException { DatasetInfo datasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT); when(bigqueryRpcMock.createSkipExceptionTranslation(datasetInfo.toPb(), EMPTY_RPC_OPTIONS)) .thenReturn(datasetInfo.toPb()); @@ -565,7 +592,7 @@ public void testCreateDataset() throws IOException { } @Test - public void testCreateDatasetWithSelectedFields() throws IOException { + void testCreateDatasetWithSelectedFields() throws IOException { when(bigqueryRpcMock.createSkipExceptionTranslation( eq(DATASET_INFO_WITH_PROJECT.toPb()), capturedOptions.capture())) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); @@ -584,7 +611,7 @@ public void testCreateDatasetWithSelectedFields() throws IOException { } @Test - public void testCreateDatasetWithAccessPolicy() throws IOException { + void testCreateDatasetWithAccessPolicy() throws IOException { DatasetInfo datasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT); DatasetOption datasetOption = DatasetOption.accessPolicyVersion(3); when(bigqueryRpcMock.createSkipExceptionTranslation( @@ -600,7 +627,7 @@ public void testCreateDatasetWithAccessPolicy() throws IOException { } @Test - public void testGetDataset() throws IOException { + void testGetDataset() throws IOException { when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); @@ -611,7 +638,7 @@ public void testGetDataset() throws IOException { } @Test - public void testGetDatasetNotFoundWhenThrowIsDisabled() throws IOException { + void testGetDatasetNotFoundWhenThrowIsDisabled() throws IOException { when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); options.setThrowNotFound(false); @@ -623,24 +650,22 @@ public void testGetDatasetNotFoundWhenThrowIsDisabled() throws IOException { } @Test - public void testGetDatasetNotFoundWhenThrowIsEnabled() throws IOException { + void testGetDatasetNotFoundWhenThrowIsEnabled() throws IOException { when(bigqueryRpcMock.getDatasetSkipExceptionTranslation( PROJECT, "dataset-not-found", EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(404, "Dataset not found")); options.setThrowNotFound(true); bigquery = options.getService(); - try { - bigquery.getDataset("dataset-not-found"); - Assert.fail(); - } catch (BigQueryException ex) { - Assert.assertNotNull(ex.getMessage()); - } + BigQueryException ex = + Assertions.assertThrows( + BigQueryException.class, () -> bigquery.getDataset("dataset-not-found")); + Assertions.assertNotNull(ex.getMessage()); verify(bigqueryRpcMock) .getDatasetSkipExceptionTranslation(PROJECT, "dataset-not-found", EMPTY_RPC_OPTIONS); } @Test - public void testGetDatasetFromDatasetId() throws IOException { + void testGetDatasetFromDatasetId() throws IOException { when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); bigquery = options.getService(); @@ -651,7 +676,7 @@ public void testGetDatasetFromDatasetId() throws IOException { } @Test - public void testGetDatasetFromDatasetIdWithProject() throws IOException { + void testGetDatasetFromDatasetIdWithProject() throws IOException { DatasetInfo datasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT); DatasetId datasetId = DatasetId.of(OTHER_PROJECT, DATASET); when(bigqueryRpcMock.getDatasetSkipExceptionTranslation( @@ -665,7 +690,7 @@ public void testGetDatasetFromDatasetIdWithProject() throws IOException { } @Test - public void testGetDatasetWithSelectedFields() throws IOException { + void testGetDatasetWithSelectedFields() throws IOException { when(bigqueryRpcMock.getDatasetSkipExceptionTranslation( eq(PROJECT), eq(DATASET), capturedOptions.capture())) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); @@ -683,7 +708,7 @@ public void testGetDatasetWithSelectedFields() throws IOException { } @Test - public void testListDatasets() throws IOException { + void testListDatasets() throws IOException { bigquery = options.getService(); ImmutableList datasetList = ImmutableList.of( @@ -701,7 +726,7 @@ public void testListDatasets() throws IOException { } @Test - public void testListDatasetsWithProjects() throws IOException { + void testListDatasetsWithProjects() throws IOException { bigquery = options.getService(); ImmutableList datasetList = ImmutableList.of( @@ -719,7 +744,7 @@ public void testListDatasetsWithProjects() throws IOException { } @Test - public void testListEmptyDatasets() throws IOException { + void testListEmptyDatasets() throws IOException { ImmutableList datasets = ImmutableList.of(); Tuple> result = Tuple.>of(null, datasets); @@ -734,7 +759,7 @@ public void testListEmptyDatasets() throws IOException { } @Test - public void testListDatasetsWithOptions() throws IOException { + void testListDatasetsWithOptions() throws IOException { bigquery = options.getService(); ImmutableList datasetList = ImmutableList.of( @@ -753,7 +778,7 @@ public void testListDatasetsWithOptions() throws IOException { } @Test - public void testDeleteDataset() throws IOException { + void testDeleteDataset() throws IOException { when(bigqueryRpcMock.deleteDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenReturn(true); bigquery = options.getService(); @@ -763,7 +788,7 @@ public void testDeleteDataset() throws IOException { } @Test - public void testDeleteDatasetFromDatasetId() throws IOException { + void testDeleteDatasetFromDatasetId() throws IOException { when(bigqueryRpcMock.deleteDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenReturn(true); bigquery = options.getService(); @@ -773,7 +798,7 @@ public void testDeleteDatasetFromDatasetId() throws IOException { } @Test - public void testDeleteDatasetFromDatasetIdWithProject() throws IOException { + void testDeleteDatasetFromDatasetIdWithProject() throws IOException { DatasetId datasetId = DatasetId.of(OTHER_PROJECT, DATASET); when(bigqueryRpcMock.deleteDatasetSkipExceptionTranslation( OTHER_PROJECT, DATASET, EMPTY_RPC_OPTIONS)) @@ -785,7 +810,7 @@ public void testDeleteDatasetFromDatasetIdWithProject() throws IOException { } @Test - public void testDeleteDatasetWithOptions() throws IOException { + void testDeleteDatasetWithOptions() throws IOException { when(bigqueryRpcMock.deleteDatasetSkipExceptionTranslation( PROJECT, DATASET, DATASET_DELETE_OPTIONS)) .thenReturn(true); @@ -796,7 +821,7 @@ public void testDeleteDatasetWithOptions() throws IOException { } @Test - public void testUpdateDataset() throws IOException { + void testUpdateDataset() throws IOException { DatasetInfo updatedDatasetInfo = DATASET_INFO.setProjectId(OTHER_PROJECT).toBuilder() .setDescription("newDescription") @@ -812,7 +837,7 @@ public void testUpdateDataset() throws IOException { } @Test - public void testUpdateDatasetWithSelectedFields() throws IOException { + void testUpdateDatasetWithSelectedFields() throws IOException { DatasetInfo updatedDatasetInfo = DATASET_INFO.toBuilder().setDescription("newDescription").build(); DatasetInfo updatedDatasetInfoWithProject = @@ -835,7 +860,7 @@ public void testUpdateDatasetWithSelectedFields() throws IOException { } @Test - public void testCreateTable() throws IOException { + void testCreateTable() throws IOException { TableInfo tableInfo = TABLE_INFO.setProjectId(OTHER_PROJECT); when(bigqueryRpcMock.createSkipExceptionTranslation(tableInfo.toPb(), EMPTY_RPC_OPTIONS)) .thenReturn(tableInfo.toPb()); @@ -848,7 +873,7 @@ public void testCreateTable() throws IOException { } @Test - public void tesCreateExternalTable() throws IOException { + void tesCreateExternalTable() throws IOException { TableInfo createTableInfo = TableInfo.of(TABLE_ID, ExternalTableDefinition.newBuilder().setSchema(TABLE_SCHEMA).build()) .setProjectId(OTHER_PROJECT); @@ -867,7 +892,7 @@ public void tesCreateExternalTable() throws IOException { } @Test - public void testCreateTableWithoutProject() throws IOException { + void testCreateTableWithoutProject() throws IOException { TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); tableInfo.toBuilder().setTableId(tableId); @@ -881,7 +906,7 @@ public void testCreateTableWithoutProject() throws IOException { } @Test - public void testCreateTableWithSelectedFields() throws IOException { + void testCreateTableWithSelectedFields() throws IOException { when(bigqueryRpcMock.createSkipExceptionTranslation( eq(TABLE_INFO_WITH_PROJECT.toPb()), capturedOptions.capture())) .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); @@ -899,7 +924,7 @@ public void testCreateTableWithSelectedFields() throws IOException { } @Test - public void testGetTable() throws IOException { + void testGetTable() throws IOException { when(bigqueryRpcMock.getTableSkipExceptionTranslation( PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); @@ -911,7 +936,7 @@ public void testGetTable() throws IOException { } @Test - public void testGetModel() throws IOException { + void testGetModel() throws IOException { when(bigqueryRpcMock.getModelSkipExceptionTranslation( PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS)) .thenReturn(MODEL_INFO_WITH_PROJECT.toPb()); @@ -923,7 +948,7 @@ public void testGetModel() throws IOException { } @Test - public void testGetModelNotFoundWhenThrowIsEnabled() throws IOException { + void testGetModelNotFoundWhenThrowIsEnabled() throws IOException { String expected = "Model not found"; when(bigqueryRpcMock.getModelSkipExceptionTranslation( PROJECT, DATASET, MODEL, EMPTY_RPC_OPTIONS)) @@ -940,7 +965,7 @@ public void testGetModelNotFoundWhenThrowIsEnabled() throws IOException { } @Test - public void testListPartition() throws IOException { + void testListPartition() throws IOException { when(bigqueryRpcMock.getTableSkipExceptionTranslation( PROJECT, DATASET, "table$__PARTITIONS_SUMMARY__", EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_INFO_PARTITIONS.toPb()); @@ -958,7 +983,7 @@ public void testListPartition() throws IOException { } @Test - public void testGetTableNotFoundWhenThrowIsDisabled() throws IOException { + void testGetTableNotFoundWhenThrowIsDisabled() throws IOException { when(bigqueryRpcMock.getTableSkipExceptionTranslation( PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); @@ -971,7 +996,7 @@ public void testGetTableNotFoundWhenThrowIsDisabled() throws IOException { } @Test - public void testGetTableNotFoundWhenThrowIsEnabled() throws IOException { + void testGetTableNotFoundWhenThrowIsEnabled() throws IOException { when(bigqueryRpcMock.getTableSkipExceptionTranslation( PROJECT, DATASET, "table-not-found", EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(404, "Table not found")); @@ -979,16 +1004,16 @@ public void testGetTableNotFoundWhenThrowIsEnabled() throws IOException { bigquery = options.getService(); try { bigquery.getTable(DATASET, "table-not-found"); - Assert.fail(); + Assertions.fail(); } catch (BigQueryException ex) { - Assert.assertNotNull(ex.getMessage()); + Assertions.assertNotNull(ex.getMessage()); } verify(bigqueryRpcMock) .getTableSkipExceptionTranslation(PROJECT, DATASET, "table-not-found", EMPTY_RPC_OPTIONS); } @Test - public void testGetTableFromTableId() throws IOException { + void testGetTableFromTableId() throws IOException { when(bigqueryRpcMock.getTableSkipExceptionTranslation( PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); @@ -1000,7 +1025,7 @@ public void testGetTableFromTableId() throws IOException { } @Test - public void testGetTableFromTableIdWithProject() throws IOException { + void testGetTableFromTableIdWithProject() throws IOException { TableInfo tableInfo = TABLE_INFO.setProjectId(OTHER_PROJECT); TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); when(bigqueryRpcMock.getTableSkipExceptionTranslation( @@ -1016,7 +1041,7 @@ public void testGetTableFromTableIdWithProject() throws IOException { } @Test - public void testGetTableFromTableIdWithoutProject() throws IOException { + void testGetTableFromTableIdWithoutProject() throws IOException { TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); when(bigqueryRpcMock.getTableSkipExceptionTranslation( @@ -1031,7 +1056,7 @@ public void testGetTableFromTableIdWithoutProject() throws IOException { } @Test - public void testGetTableWithSelectedFields() throws IOException { + void testGetTableWithSelectedFields() throws IOException { when(bigqueryRpcMock.getTableSkipExceptionTranslation( eq(PROJECT), eq(DATASET), eq(TABLE), capturedOptions.capture())) .thenReturn(TABLE_INFO_WITH_PROJECT.toPb()); @@ -1049,7 +1074,7 @@ public void testGetTableWithSelectedFields() throws IOException { } @Test - public void testListTables() throws IOException { + void testListTables() throws IOException { bigquery = options.getService(); ImmutableList

    tableList = ImmutableList.of( @@ -1067,7 +1092,7 @@ public void testListTables() throws IOException { } @Test - public void testListTablesReturnedParameters() throws IOException { + void testListTablesReturnedParameters() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( @@ -1084,7 +1109,7 @@ public void testListTablesReturnedParameters() throws IOException { } @Test - public void testListTablesReturnedParametersNullType() throws IOException { + void testListTablesReturnedParametersNullType() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( @@ -1101,7 +1126,7 @@ public void testListTablesReturnedParametersNullType() throws IOException { } @Test - public void testListTablesWithRangePartitioning() throws IOException { + void testListTablesWithRangePartitioning() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( @@ -1118,7 +1143,7 @@ public void testListTablesWithRangePartitioning() throws IOException { } @Test - public void testListTablesFromDatasetId() throws IOException { + void testListTablesFromDatasetId() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( @@ -1135,7 +1160,7 @@ public void testListTablesFromDatasetId() throws IOException { } @Test - public void testListTablesFromDatasetIdWithProject() throws IOException { + void testListTablesFromDatasetIdWithProject() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( @@ -1153,7 +1178,7 @@ public void testListTablesFromDatasetIdWithProject() throws IOException { } @Test - public void testListTablesWithLabels() throws IOException { + void testListTablesWithLabels() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( @@ -1170,7 +1195,7 @@ public void testListTablesWithLabels() throws IOException { } @Test - public void testListTablesWithOptions() throws IOException { + void testListTablesWithOptions() throws IOException { bigquery = options.getService(); ImmutableList
    tableList = ImmutableList.of( @@ -1188,7 +1213,7 @@ public void testListTablesWithOptions() throws IOException { } @Test - public void testListModels() throws IOException { + void testListModels() throws IOException { bigquery = options.getService(); ImmutableList modelList = ImmutableList.of( @@ -1205,7 +1230,7 @@ public void testListModels() throws IOException { } @Test - public void testListModelsWithModelId() throws IOException { + void testListModelsWithModelId() throws IOException { bigquery = options.getService(); ImmutableList modelList = ImmutableList.of( @@ -1222,7 +1247,7 @@ public void testListModelsWithModelId() throws IOException { } @Test - public void testDeleteTable() throws IOException { + void testDeleteTable() throws IOException { when(bigqueryRpcMock.deleteTableSkipExceptionTranslation(PROJECT, DATASET, TABLE)) .thenReturn(true); bigquery = options.getService(); @@ -1231,7 +1256,7 @@ public void testDeleteTable() throws IOException { } @Test - public void testDeleteTableFromTableId() throws IOException { + void testDeleteTableFromTableId() throws IOException { when(bigqueryRpcMock.deleteTableSkipExceptionTranslation(PROJECT, DATASET, TABLE)) .thenReturn(true); bigquery = options.getService(); @@ -1240,7 +1265,7 @@ public void testDeleteTableFromTableId() throws IOException { } @Test - public void testDeleteTableFromTableIdWithProject() throws IOException { + void testDeleteTableFromTableIdWithProject() throws IOException { TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); when(bigqueryRpcMock.deleteTableSkipExceptionTranslation(OTHER_PROJECT, DATASET, TABLE)) .thenReturn(true); @@ -1252,7 +1277,7 @@ public void testDeleteTableFromTableIdWithProject() throws IOException { } @Test - public void testDeleteTableFromTableIdWithoutProject() throws IOException { + void testDeleteTableFromTableIdWithoutProject() throws IOException { TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); when(bigqueryRpcMock.deleteTableSkipExceptionTranslation(PROJECT, DATASET, TABLE)) .thenReturn(true); @@ -1263,7 +1288,7 @@ public void testDeleteTableFromTableIdWithoutProject() throws IOException { } @Test - public void testDeleteModel() throws IOException { + void testDeleteModel() throws IOException { when(bigqueryRpcMock.deleteModelSkipExceptionTranslation(PROJECT, DATASET, MODEL)) .thenReturn(true); bigquery = options.getService(); @@ -1272,7 +1297,7 @@ public void testDeleteModel() throws IOException { } @Test - public void testUpdateModel() throws IOException { + void testUpdateModel() throws IOException { ModelInfo updateModelInfo = MODEL_INFO_WITH_PROJECT.setProjectId(OTHER_PROJECT).toBuilder() .setDescription("newDescription") @@ -1289,7 +1314,7 @@ public void testUpdateModel() throws IOException { } @Test - public void testUpdateTable() throws IOException { + void testUpdateTable() throws IOException { TableInfo updatedTableInfo = TABLE_INFO.setProjectId(OTHER_PROJECT).toBuilder().setDescription("newDescription").build(); when(bigqueryRpcMock.patchSkipExceptionTranslation(updatedTableInfo.toPb(), EMPTY_RPC_OPTIONS)) @@ -1304,7 +1329,7 @@ public void testUpdateTable() throws IOException { } @Test - public void testUpdateExternalTableWithNewSchema() throws IOException { + void testUpdateExternalTableWithNewSchema() throws IOException { TableInfo updatedTableInfo = TableInfo.of(TABLE_ID, ExternalTableDefinition.newBuilder().setSchema(TABLE_SCHEMA).build()) .setProjectId(OTHER_PROJECT); @@ -1323,7 +1348,7 @@ public void testUpdateExternalTableWithNewSchema() throws IOException { } @Test - public void testUpdateTableWithoutProject() throws IOException { + void testUpdateTableWithoutProject() throws IOException { TableInfo tableInfo = TABLE_INFO.setProjectId(PROJECT); TableId tableId = TableId.of("", TABLE_ID.getDataset(), TABLE_ID.getTable()); tableInfo.toBuilder().setTableId(tableId); @@ -1337,7 +1362,7 @@ public void testUpdateTableWithoutProject() throws IOException { } @Test - public void testUpdateTableWithSelectedFields() throws IOException { + void testUpdateTableWithSelectedFields() throws IOException { TableInfo updatedTableInfo = TABLE_INFO.toBuilder().setDescription("newDescription").build(); TableInfo updatedTableInfoWithProject = TABLE_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); @@ -1359,7 +1384,7 @@ public void testUpdateTableWithSelectedFields() throws IOException { } @Test - public void testUpdateTableWithAutoDetectSchema() throws IOException { + void testUpdateTableWithAutoDetectSchema() throws IOException { TableInfo updatedTableInfo = TABLE_INFO.toBuilder().setDescription("newDescription").build(); TableInfo updatedTableInfoWithProject = TABLE_INFO_WITH_PROJECT.toBuilder().setDescription("newDescription").build(); @@ -1379,7 +1404,7 @@ public void testUpdateTableWithAutoDetectSchema() throws IOException { } @Test - public void testInsertAllWithRowIdShouldRetry() throws IOException { + void testInsertAllWithRowIdShouldRetry() throws IOException { Map row1 = ImmutableMap.of("field", "value1"); Map row2 = ImmutableMap.of("field", "value2"); List rows = @@ -1432,7 +1457,7 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { } @Test - public void testInsertAllWithoutRowIdShouldNotRetry() { + void testInsertAllWithoutRowIdShouldNotRetry() { Map row1 = ImmutableMap.of("field", "value1"); Map row2 = ImmutableMap.of("field", "value2"); List rows = ImmutableList.of(RowToInsert.of(row1), RowToInsert.of(row2)); @@ -1468,15 +1493,15 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { .getService(); try { bigquery.insertAll(request); - Assert.fail(); + Assertions.fail(); } catch (BigQueryException ex) { - Assert.assertNotNull(ex.getMessage()); + Assertions.assertNotNull(ex.getMessage()); } verify(bigqueryRpcMock).insertAll(PROJECT, DATASET, TABLE, requestPb); } @Test - public void testInsertAllWithProject() throws IOException { + void testInsertAllWithProject() throws IOException { Map row1 = ImmutableMap.of("field", "value1"); Map row2 = ImmutableMap.of("field", "value2"); List rows = @@ -1528,7 +1553,7 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { } @Test - public void testInsertAllWithProjectInTable() throws IOException { + void testInsertAllWithProjectInTable() throws IOException { Map row1 = ImmutableMap.of("field", "value1"); Map row2 = ImmutableMap.of("field", "value2"); List rows = @@ -1581,7 +1606,7 @@ public TableDataInsertAllRequest.Rows apply(RowToInsert rowToInsert) { } @Test - public void testListTableData() throws IOException { + void testListTableData() throws IOException { when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_DATA_PB); @@ -1594,7 +1619,7 @@ public void testListTableData() throws IOException { } @Test - public void testListTableDataFromTableId() throws IOException { + void testListTableDataFromTableId() throws IOException { when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) .thenReturn(TABLE_DATA_PB); @@ -1607,7 +1632,7 @@ public void testListTableDataFromTableId() throws IOException { } @Test - public void testListTableDataFromTableIdWithProject() throws IOException { + void testListTableDataFromTableIdWithProject() throws IOException { TableId tableId = TABLE_ID.setProjectId(OTHER_PROJECT); when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( OTHER_PROJECT, DATASET, TABLE, EMPTY_RPC_OPTIONS)) @@ -1622,7 +1647,7 @@ public void testListTableDataFromTableIdWithProject() throws IOException { } @Test - public void testListTableDataWithOptions() throws IOException { + void testListTableDataWithOptions() throws IOException { when(bigqueryRpcMock.listTableDataSkipExceptionTranslation( PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS)) .thenReturn(TABLE_DATA_PB); @@ -1641,7 +1666,7 @@ public void testListTableDataWithOptions() throws IOException { } @Test - public void testListTableDataWithNextPage() throws IOException { + void testListTableDataWithNextPage() throws IOException { doReturn(TABLE_DATA_PB) .when(bigqueryRpcMock) .listTableDataSkipExceptionTranslation(PROJECT, DATASET, TABLE, TABLE_DATA_LIST_OPTIONS); @@ -1687,7 +1712,7 @@ private static com.google.api.services.bigquery.model.Job newJobPb() { } @Test - public void testCreateJobSuccess() throws IOException { + void testCreateJobSuccess() throws IOException { String id = "testCreateJobSuccess-id"; JobId jobId = JobId.of(id); String query = "SELECT * in FOO"; @@ -1704,7 +1729,7 @@ public void testCreateJobSuccess() throws IOException { } @Test - public void testCreateJobFailureShouldRetryExceptionHandlerExceptions() throws IOException { + void testCreateJobFailureShouldRetryExceptionHandlerExceptions() throws IOException { when(bigqueryRpcMock.createSkipExceptionTranslation( jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) .thenThrow(new UnknownHostException()) @@ -1724,7 +1749,7 @@ public void testCreateJobFailureShouldRetryExceptionHandlerExceptions() throws I } @Test - public void testCreateJobFailureShouldRetry() throws IOException { + void testCreateJobFailureShouldRetry() throws IOException { when(bigqueryRpcMock.createSkipExceptionTranslation( jobCapture.capture(), eq(EMPTY_RPC_OPTIONS))) .thenThrow(new BigQueryException(500, "InternalError")) @@ -1749,7 +1774,7 @@ public void testCreateJobFailureShouldRetry() throws IOException { } @Test - public void testCreateJobWithBigQueryRetryConfigFailureShouldRetry() throws IOException { + void testCreateJobWithBigQueryRetryConfigFailureShouldRetry() throws IOException { // Validate create job with BigQueryRetryConfig that retries on rate limit error message. JobOption bigQueryRetryConfigOption = JobOption.bigQueryRetryConfig( @@ -1782,7 +1807,7 @@ public void testCreateJobWithBigQueryRetryConfigFailureShouldRetry() throws IOEx } @Test - public void testCreateJobWithBigQueryRetryConfigFailureShouldNotRetry() throws IOException { + void testCreateJobWithBigQueryRetryConfigFailureShouldNotRetry() throws IOException { // Validate create job with BigQueryRetryConfig that does not retry on rate limit error message. JobOption bigQueryRetryConfigOption = JobOption.bigQueryRetryConfig(BigQueryRetryConfig.newBuilder().build()); @@ -1795,7 +1820,7 @@ public void testCreateJobWithBigQueryRetryConfigFailureShouldNotRetry() throws I // Job create will attempt to retrieve the job even in the case when the job is created in a // returned failure. when(bigqueryRpcMock.getJobSkipExceptionTranslation( - nullable(String.class), nullable(String.class), nullable(String.class), Mockito.any())) + nullable(String.class), nullable(String.class), nullable(String.class), any())) .thenThrow(new BigQueryException(500, "InternalError")); bigquery = options.getService(); @@ -1805,13 +1830,15 @@ public void testCreateJobWithBigQueryRetryConfigFailureShouldNotRetry() throws I .build() .getService(); - try { - ((BigQueryImpl) bigquery) - .create(JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY), bigQueryRetryConfigOption); - fail("JobException expected"); - } catch (BigQueryException e) { - assertNotNull(e.getMessage()); - } + BigQueryException e = + Assertions.assertThrows( + BigQueryException.class, + () -> + ((BigQueryImpl) bigquery) + .create( + JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY), + bigQueryRetryConfigOption)); + assertNotNull(e.getMessage()); // Verify that getQueryResults is attempted only once and not retried since the error message // does not match. verify(bigqueryRpcMock, times(1)) @@ -1819,7 +1846,7 @@ public void testCreateJobWithBigQueryRetryConfigFailureShouldNotRetry() throws I } @Test - public void testCreateJobWithRetryOptionsFailureShouldRetry() throws IOException { + void testCreateJobWithRetryOptionsFailureShouldRetry() throws IOException { // Validate create job with RetryOptions. JobOption retryOptions = JobOption.retryOptions(RetryOption.maxAttempts(4)); Map bigQueryRpcOptions = optionMap(retryOptions); @@ -1844,7 +1871,7 @@ public void testCreateJobWithRetryOptionsFailureShouldRetry() throws IOException } @Test - public void testCreateJobWithRetryOptionsFailureShouldNotRetry() throws IOException { + void testCreateJobWithRetryOptionsFailureShouldNotRetry() throws IOException { // Validate create job with RetryOptions that only attempts once (no retry). JobOption retryOptions = JobOption.retryOptions(RetryOption.maxAttempts(1)); Map bigQueryRpcOptions = optionMap(retryOptions); @@ -1856,7 +1883,7 @@ public void testCreateJobWithRetryOptionsFailureShouldNotRetry() throws IOExcept // Job create will attempt to retrieve the job even in the case when the job is created in a // returned failure. when(bigqueryRpcMock.getJobSkipExceptionTranslation( - nullable(String.class), nullable(String.class), nullable(String.class), Mockito.any())) + nullable(String.class), nullable(String.class), nullable(String.class), any())) .thenThrow(new BigQueryException(500, "InternalError")); bigquery = options.getService(); @@ -1866,19 +1893,19 @@ public void testCreateJobWithRetryOptionsFailureShouldNotRetry() throws IOExcept .build() .getService(); - try { - ((BigQueryImpl) bigquery) - .create(JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY), retryOptions); - fail("JobException expected"); - } catch (BigQueryException e) { - assertNotNull(e.getMessage()); - } + BigQueryException e = + Assertions.assertThrows( + BigQueryException.class, + () -> + ((BigQueryImpl) bigquery) + .create(JobInfo.of(QUERY_JOB_CONFIGURATION_FOR_DMLQUERY), retryOptions)); + assertNotNull(e.getMessage()); verify(bigqueryRpcMock, times(1)) .createSkipExceptionTranslation(jobCapture.capture(), eq(bigQueryRpcOptions)); } @Test - public void testCreateJobWithSelectedFields() throws IOException { + void testCreateJobWithSelectedFields() throws IOException { when(bigqueryRpcMock.createSkipExceptionTranslation( any(com.google.api.services.bigquery.model.Job.class), capturedOptions.capture())) .thenReturn(newJobPb()); @@ -1899,7 +1926,7 @@ public void testCreateJobWithSelectedFields() throws IOException { } @Test - public void testCreateJobNoGet() throws IOException { + void testCreateJobNoGet() throws IOException { String id = "testCreateJobNoGet-id"; JobId jobId = JobId.of(id); String query = "SELECT * in FOO"; @@ -1909,18 +1936,17 @@ public void testCreateJobNoGet() throws IOException { .thenThrow(new BigQueryException(409, "already exists, for some reason")); bigquery = options.getService(); - try { - bigquery.create(JobInfo.of(jobId, QueryJobConfiguration.of(query))); - fail("should throw"); - } catch (BigQueryException e) { - assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); - } + BigQueryException e = + Assertions.assertThrows( + BigQueryException.class, + () -> bigquery.create(JobInfo.of(jobId, QueryJobConfiguration.of(query)))); + assertThat(jobCapture.getValue().getJobReference().getJobId()).isEqualTo(id); verify(bigqueryRpcMock) .createSkipExceptionTranslation(jobCapture.capture(), eq(EMPTY_RPC_OPTIONS)); } @Test - public void testCreateJobTryGet() throws IOException { + void testCreateJobTryGet() throws IOException { final String id = "testCreateJobTryGet-id"; String query = "SELECT * in FOO"; Supplier idProvider = @@ -1949,7 +1975,7 @@ public JobId get() { } @Test - public void testCreateJobTryGetNotRandom() throws IOException { + void testCreateJobTryGetNotRandom() throws IOException { Map withStatisticOption = optionMap(JobOption.fields(STATISTICS)); final String id = "testCreateJobTryGet-id"; String query = "SELECT * in FOO"; @@ -1981,7 +2007,7 @@ public void testCreateJobTryGetNotRandom() throws IOException { } @Test - public void testCreateJobWithProjectId() throws IOException { + void testCreateJobWithProjectId() throws IOException { JobInfo jobInfo = JobInfo.newBuilder(QUERY_JOB_CONFIGURATION.setProjectId(OTHER_PROJECT)) .setJobId(JobId.of(OTHER_PROJECT, JOB)) @@ -2004,7 +2030,7 @@ public void testCreateJobWithProjectId() throws IOException { } @Test - public void testDeleteJob() throws IOException { + void testDeleteJob() throws IOException { JobId jobId = JobId.newBuilder().setJob(JOB).setProject(PROJECT).setLocation(LOCATION).build(); when(bigqueryRpcMock.deleteJobSkipExceptionTranslation(PROJECT, JOB, LOCATION)) .thenReturn(true); @@ -2014,7 +2040,7 @@ public void testDeleteJob() throws IOException { } @Test - public void testGetJob() throws IOException { + void testGetJob() throws IOException { when(bigqueryRpcMock.getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) .thenReturn(COMPLETE_COPY_JOB.toPb()); bigquery = options.getService(); @@ -2024,7 +2050,7 @@ public void testGetJob() throws IOException { } @Test - public void testGetJobWithLocation() throws IOException { + void testGetJobWithLocation() throws IOException { when(bigqueryRpcMock.getJobSkipExceptionTranslation(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) .thenReturn(COMPLETE_COPY_JOB.toPb()); BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock); @@ -2036,7 +2062,7 @@ public void testGetJobWithLocation() throws IOException { } @Test - public void testGetJobNotFoundWhenThrowIsDisabled() throws IOException { + void testGetJobNotFoundWhenThrowIsDisabled() throws IOException { when(bigqueryRpcMock.getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) .thenReturn(COMPLETE_COPY_JOB.toPb()); options.setThrowNotFound(false); @@ -2047,24 +2073,21 @@ public void testGetJobNotFoundWhenThrowIsDisabled() throws IOException { } @Test - public void testGetJobNotFoundWhenThrowIsEnabled() throws IOException { + void testGetJobNotFoundWhenThrowIsEnabled() throws IOException { when(bigqueryRpcMock.getJobSkipExceptionTranslation( PROJECT, "job-not-found", null, EMPTY_RPC_OPTIONS)) .thenThrow(new IOException("Job not found")); options.setThrowNotFound(true); bigquery = options.getService(); - try { - bigquery.getJob("job-not-found"); - Assert.fail(); - } catch (BigQueryException ex) { - Assert.assertNotNull(ex.getMessage()); - } + BigQueryException ex = + Assertions.assertThrows(BigQueryException.class, () -> bigquery.getJob("job-not-found")); + Assertions.assertNotNull(ex.getMessage()); verify(bigqueryRpcMock) .getJobSkipExceptionTranslation(PROJECT, "job-not-found", null, EMPTY_RPC_OPTIONS); } @Test - public void testGetJobFromJobId() throws IOException { + void testGetJobFromJobId() throws IOException { when(bigqueryRpcMock.getJobSkipExceptionTranslation(PROJECT, JOB, null, EMPTY_RPC_OPTIONS)) .thenReturn(COMPLETE_COPY_JOB.toPb()); bigquery = options.getService(); @@ -2074,7 +2097,7 @@ public void testGetJobFromJobId() throws IOException { } @Test - public void testGetJobFromJobIdWithLocation() throws IOException { + void testGetJobFromJobIdWithLocation() throws IOException { when(bigqueryRpcMock.getJobSkipExceptionTranslation(PROJECT, JOB, LOCATION, EMPTY_RPC_OPTIONS)) .thenReturn(COMPLETE_COPY_JOB.toPb()); BigQueryOptions options = createBigQueryOptionsForProjectWithLocation(PROJECT, rpcFactoryMock); @@ -2086,7 +2109,7 @@ public void testGetJobFromJobIdWithLocation() throws IOException { } @Test - public void testGetJobFromJobIdWithProject() throws IOException { + void testGetJobFromJobIdWithProject() throws IOException { JobId jobId = JobId.of(OTHER_PROJECT, JOB); JobInfo jobInfo = COPY_JOB.setProjectId(OTHER_PROJECT); when(bigqueryRpcMock.getJobSkipExceptionTranslation( @@ -2100,7 +2123,7 @@ public void testGetJobFromJobIdWithProject() throws IOException { } @Test - public void testGetJobFromJobIdWithProjectWithLocation() throws IOException { + void testGetJobFromJobIdWithProjectWithLocation() throws IOException { JobId jobId = JobId.of(OTHER_PROJECT, JOB); JobInfo jobInfo = COPY_JOB.setProjectId(OTHER_PROJECT); when(bigqueryRpcMock.getJobSkipExceptionTranslation( @@ -2115,7 +2138,7 @@ public void testGetJobFromJobIdWithProjectWithLocation() throws IOException { } @Test - public void testListJobs() throws IOException { + void testListJobs() throws IOException { bigquery = options.getService(); ImmutableList jobList = ImmutableList.of( @@ -2141,7 +2164,7 @@ public com.google.api.services.bigquery.model.Job apply(Job job) { } @Test - public void testListJobsWithOptions() throws IOException { + void testListJobsWithOptions() throws IOException { bigquery = options.getService(); ImmutableList jobList = ImmutableList.of( @@ -2169,7 +2192,7 @@ public com.google.api.services.bigquery.model.Job apply(Job job) { } @Test - public void testListJobsWithSelectedFields() throws IOException { + void testListJobsWithSelectedFields() throws IOException { bigquery = options.getService(); ImmutableList jobList = ImmutableList.of( @@ -2205,7 +2228,7 @@ public com.google.api.services.bigquery.model.Job apply(Job job) { } @Test - public void testCancelJob() throws IOException { + void testCancelJob() throws IOException { when(bigqueryRpcMock.cancelSkipExceptionTranslation(PROJECT, JOB, null)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.cancel(JOB)); @@ -2213,7 +2236,7 @@ public void testCancelJob() throws IOException { } @Test - public void testCancelJobFromJobId() throws IOException { + void testCancelJobFromJobId() throws IOException { when(bigqueryRpcMock.cancelSkipExceptionTranslation(PROJECT, JOB, null)).thenReturn(true); bigquery = options.getService(); assertTrue(bigquery.cancel(JobId.of(PROJECT, JOB))); @@ -2221,7 +2244,7 @@ public void testCancelJobFromJobId() throws IOException { } @Test - public void testCancelJobFromJobIdWithProject() throws IOException { + void testCancelJobFromJobIdWithProject() throws IOException { JobId jobId = JobId.of(OTHER_PROJECT, JOB); when(bigqueryRpcMock.cancelSkipExceptionTranslation(OTHER_PROJECT, JOB, null)).thenReturn(true); bigquery = options.getService(); @@ -2230,7 +2253,7 @@ public void testCancelJobFromJobIdWithProject() throws IOException { } @Test - public void testQueryRequestCompleted() throws InterruptedException, IOException { + void testQueryRequestCompleted() throws InterruptedException, IOException { JobId queryJob = JobId.of(PROJECT, JOB); com.google.api.services.bigquery.model.Job jobResponsePb = new com.google.api.services.bigquery.model.Job() @@ -2285,7 +2308,7 @@ PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) } @Test - public void testFastQueryRequestCompleted() throws InterruptedException, IOException { + void testFastQueryRequestCompleted() throws InterruptedException, IOException { com.google.api.services.bigquery.model.QueryResponse queryResponsePb = new com.google.api.services.bigquery.model.QueryResponse() .setCacheHit(false) @@ -2325,7 +2348,7 @@ public void testFastQueryRequestCompleted() throws InterruptedException, IOExcep } @Test - public void testFastQueryRequestCompletedWithLocation() throws InterruptedException, IOException { + void testFastQueryRequestCompletedWithLocation() throws InterruptedException, IOException { com.google.api.services.bigquery.model.QueryResponse queryResponsePb = new com.google.api.services.bigquery.model.QueryResponse() .setCacheHit(false) @@ -2366,7 +2389,7 @@ public void testFastQueryRequestCompletedWithLocation() throws InterruptedExcept } @Test - public void testFastQueryMultiplePages() throws InterruptedException, IOException { + void testFastQueryMultiplePages() throws InterruptedException, IOException { JobId queryJob = JobId.of(PROJECT, JOB); com.google.api.services.bigquery.model.Job responseJob = new com.google.api.services.bigquery.model.Job() @@ -2422,7 +2445,7 @@ PROJECT, DATASET, TABLE, optionMap(BigQuery.TableDataListOption.pageToken(CURSOR } @Test - public void testFastQuerySlowDdl() throws InterruptedException, IOException { + void testFastQuerySlowDdl() throws InterruptedException, IOException { // mock new fast query path response when running a query that takes more than 10s JobId queryJob = JobId.of(PROJECT, JOB); com.google.api.services.bigquery.model.QueryResponse queryResponsePb = @@ -2488,7 +2511,7 @@ PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) } @Test - public void testQueryRequestCompletedOptions() throws InterruptedException, IOException { + void testQueryRequestCompletedOptions() throws InterruptedException, IOException { JobId queryJob = JobId.of(PROJECT, JOB); com.google.api.services.bigquery.model.Job jobResponsePb = new com.google.api.services.bigquery.model.Job() @@ -2546,7 +2569,7 @@ PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) } @Test - public void testQueryRequestCompletedOnSecondAttempt() throws InterruptedException, IOException { + void testQueryRequestCompletedOnSecondAttempt() throws InterruptedException, IOException { JobId queryJob = JobId.of(PROJECT, JOB); com.google.api.services.bigquery.model.Job jobResponsePb1 = new com.google.api.services.bigquery.model.Job() @@ -2611,7 +2634,7 @@ PROJECT, JOB, null, optionMap(Job.DEFAULT_QUERY_WAIT_OPTIONS))) } @Test - public void testQueryWithTimeoutSetsTimeout() throws InterruptedException, IOException { + void testQueryWithTimeoutSetsTimeout() throws InterruptedException, IOException { com.google.api.services.bigquery.model.QueryResponse queryResponsePb = new com.google.api.services.bigquery.model.QueryResponse() .setCacheHit(false) @@ -2634,7 +2657,7 @@ public void testQueryWithTimeoutSetsTimeout() throws InterruptedException, IOExc } @Test - public void testGetQueryResults() throws IOException { + void testGetQueryResults() throws IOException { JobId queryJob = JobId.of(JOB); GetQueryResultsResponse responsePb = new GetQueryResultsResponse() @@ -2658,7 +2681,7 @@ public void testGetQueryResults() throws IOException { } @Test - public void testGetQueryResultsRetry() throws IOException { + void testGetQueryResultsRetry() throws IOException { JobId queryJob = JobId.of(JOB); GetQueryResultsResponse responsePb = new GetQueryResultsResponse() @@ -2702,7 +2725,7 @@ public void testGetQueryResultsRetry() throws IOException { } @Test - public void testGetQueryResultsWithProject() throws IOException { + void testGetQueryResultsWithProject() throws IOException { JobId queryJob = JobId.of(OTHER_PROJECT, JOB); GetQueryResultsResponse responsePb = new GetQueryResultsResponse() @@ -2726,7 +2749,7 @@ public void testGetQueryResultsWithProject() throws IOException { } @Test - public void testGetQueryResultsWithOptions() throws IOException { + void testGetQueryResultsWithOptions() throws IOException { JobId queryJob = JobId.of(PROJECT, JOB); GetQueryResultsResponse responsePb = new GetQueryResultsResponse() @@ -2755,7 +2778,7 @@ public void testGetQueryResultsWithOptions() throws IOException { } @Test - public void testGetDatasetRetryableException() throws IOException { + void testGetDatasetRetryableException() throws IOException { when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(500, "InternalError")) .thenReturn(DATASET_INFO_WITH_PROJECT.toPb()); @@ -2772,7 +2795,7 @@ public void testGetDatasetRetryableException() throws IOException { } @Test - public void testNonRetryableException() throws IOException { + void testNonRetryableException() throws IOException { String exceptionMessage = "Not Implemented"; when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(501, exceptionMessage)); @@ -2781,17 +2804,15 @@ public void testNonRetryableException() throws IOException { .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); - try { - bigquery.getDataset(DatasetId.of(DATASET)); - Assert.fail(); - } catch (BigQueryException ex) { - Assert.assertEquals(exceptionMessage, ex.getMessage()); - } + BigQueryException ex = + Assertions.assertThrows( + BigQueryException.class, () -> bigquery.getDataset(DatasetId.of(DATASET))); + assertEquals(exceptionMessage, ex.getMessage()); verify(bigqueryRpcMock).getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testRuntimeException() throws IOException { + void testRuntimeException() throws IOException { String exceptionMessage = "Artificial runtime exception"; when(bigqueryRpcMock.getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS)) .thenThrow(new RuntimeException(exceptionMessage)); @@ -2800,32 +2821,29 @@ public void testRuntimeException() throws IOException { .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) .build() .getService(); - try { - bigquery.getDataset(DATASET); - Assert.fail(); - } catch (BigQueryException ex) { - Assert.assertTrue(ex.getMessage().endsWith(exceptionMessage)); - } + BigQueryException ex = + Assertions.assertThrows(BigQueryException.class, () -> bigquery.getDataset(DATASET)); + assertTrue(ex.getMessage().endsWith(exceptionMessage)); verify(bigqueryRpcMock).getDatasetSkipExceptionTranslation(PROJECT, DATASET, EMPTY_RPC_OPTIONS); } @Test - public void testQueryDryRun() throws Exception { + void testQueryDryRun() throws Exception { // https://github.com/googleapis/google-cloud-java/issues/2479 - try { - options.toBuilder() - .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) - .build() - .getService() - .query(QueryJobConfiguration.newBuilder("foo").setDryRun(true).build()); - Assert.fail(); - } catch (UnsupportedOperationException ex) { - Assert.assertNotNull(ex.getMessage()); - } + UnsupportedOperationException ex = + Assertions.assertThrows( + UnsupportedOperationException.class, + () -> + options.toBuilder() + .setRetrySettings(ServiceOptions.getDefaultRetrySettings()) + .build() + .getService() + .query(QueryJobConfiguration.newBuilder("foo").setDryRun(true).build())); + Assertions.assertNotNull(ex.getMessage()); } @Test - public void testFastQuerySQLShouldRetry() throws Exception { + void testFastQuerySQLShouldRetry() throws Exception { com.google.api.services.bigquery.model.QueryResponse responsePb = new com.google.api.services.bigquery.model.QueryResponse() .setCacheHit(false) @@ -2866,7 +2884,7 @@ public void testFastQuerySQLShouldRetry() throws Exception { } @Test - public void testFastQueryDMLShouldRetry() throws Exception { + void testFastQueryDMLShouldRetry() throws Exception { com.google.api.services.bigquery.model.QueryResponse responsePb = new com.google.api.services.bigquery.model.QueryResponse() .setCacheHit(false) @@ -2907,7 +2925,7 @@ public void testFastQueryDMLShouldRetry() throws Exception { } @Test - public void testFastQueryRateLimitIdempotency() throws Exception { + void testFastQueryRateLimitIdempotency() throws Exception { com.google.api.services.bigquery.model.QueryResponse responsePb = new com.google.api.services.bigquery.model.QueryResponse() .setCacheHit(false) @@ -2955,7 +2973,7 @@ public void testFastQueryRateLimitIdempotency() throws Exception { } @Test - public void testRateLimitRegEx() throws Exception { + void testRateLimitRegEx() throws Exception { String msg2 = "Job eceeded rate limits: Your table exceeded quota for table update operations. For more information, see https://cloud.google.com/bigquery/docs/troubleshoot-quotas"; String msg3 = "exceeded rate exceeded quota for table update"; @@ -2979,7 +2997,7 @@ public void testRateLimitRegEx() throws Exception { } @Test - public void testFastQueryDDLShouldRetry() throws Exception { + void testFastQueryDDLShouldRetry() throws Exception { com.google.api.services.bigquery.model.QueryResponse responsePb = new com.google.api.services.bigquery.model.QueryResponse() .setCacheHit(false) @@ -3019,7 +3037,7 @@ public void testFastQueryDDLShouldRetry() throws Exception { } @Test - public void testFastQueryBigQueryException() throws InterruptedException, IOException { + void testFastQueryBigQueryException() throws InterruptedException, IOException { List errorProtoList = ImmutableList.of( new ErrorProto() @@ -3040,12 +3058,10 @@ public void testFastQueryBigQueryException() throws InterruptedException, IOExce .thenReturn(responsePb); bigquery = options.getService(); - try { - bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY); - fail("BigQueryException expected"); - } catch (BigQueryException ex) { - assertEquals(Lists.transform(errorProtoList, BigQueryError.FROM_PB_FUNCTION), ex.getErrors()); - } + BigQueryException ex = + Assertions.assertThrows( + BigQueryException.class, () -> bigquery.query(QUERY_JOB_CONFIGURATION_FOR_QUERY)); + assertEquals(Lists.transform(errorProtoList, BigQueryError.FROM_PB_FUNCTION), ex.getErrors()); QueryRequest requestPb = requestPbCapture.getValue(); assertEquals(QUERY_JOB_CONFIGURATION_FOR_QUERY.getQuery(), requestPb.getQuery()); @@ -3058,7 +3074,7 @@ public void testFastQueryBigQueryException() throws InterruptedException, IOExce } @Test - public void testCreateRoutine() throws IOException { + void testCreateRoutine() throws IOException { RoutineInfo routineInfo = ROUTINE_INFO.setProjectId(OTHER_PROJECT); when(bigqueryRpcMock.createSkipExceptionTranslation(routineInfo.toPb(), EMPTY_RPC_OPTIONS)) .thenReturn(routineInfo.toPb()); @@ -3071,7 +3087,7 @@ public void testCreateRoutine() throws IOException { } @Test - public void testGetRoutine() throws IOException { + void testGetRoutine() throws IOException { when(bigqueryRpcMock.getRoutineSkipExceptionTranslation( PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS)) .thenReturn(ROUTINE_INFO.toPb()); @@ -3083,7 +3099,7 @@ public void testGetRoutine() throws IOException { } @Test - public void testGetRoutineWithRountineId() throws IOException { + void testGetRoutineWithRountineId() throws IOException { when(bigqueryRpcMock.getRoutineSkipExceptionTranslation( PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS)) .thenReturn(ROUTINE_INFO.toPb()); @@ -3095,24 +3111,21 @@ public void testGetRoutineWithRountineId() throws IOException { } @Test - public void testGetRoutineWithEnabledThrowNotFoundException() throws IOException { + void testGetRoutineWithEnabledThrowNotFoundException() throws IOException { when(bigqueryRpcMock.getRoutineSkipExceptionTranslation( PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS)) .thenThrow(new BigQueryException(404, "Routine not found")); options.setThrowNotFound(true); bigquery = options.getService(); - try { - bigquery.getRoutine(ROUTINE_ID); - fail(); - } catch (BigQueryException ex) { - assertEquals("Routine not found", ex.getMessage()); - } + BigQueryException ex = + Assertions.assertThrows(BigQueryException.class, () -> bigquery.getRoutine(ROUTINE_ID)); + assertEquals("Routine not found", ex.getMessage()); verify(bigqueryRpcMock) .getRoutineSkipExceptionTranslation(PROJECT, DATASET, ROUTINE, EMPTY_RPC_OPTIONS); } @Test - public void testUpdateRoutine() throws IOException { + void testUpdateRoutine() throws IOException { RoutineInfo updatedRoutineInfo = ROUTINE_INFO.setProjectId(OTHER_PROJECT).toBuilder() .setDescription("newDescription") @@ -3130,7 +3143,7 @@ public void testUpdateRoutine() throws IOException { } @Test - public void testListRoutines() throws IOException { + void testListRoutines() throws IOException { bigquery = options.getService(); ImmutableList routineList = ImmutableList.of(new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO))); @@ -3146,7 +3159,7 @@ public void testListRoutines() throws IOException { } @Test - public void testListRoutinesWithDatasetId() throws IOException { + void testListRoutinesWithDatasetId() throws IOException { bigquery = options.getService(); ImmutableList routineList = ImmutableList.of(new Routine(bigquery, new RoutineInfo.BuilderImpl(ROUTINE_INFO))); @@ -3162,7 +3175,7 @@ public void testListRoutinesWithDatasetId() throws IOException { } @Test - public void testDeleteRoutine() throws IOException { + void testDeleteRoutine() throws IOException { when(bigqueryRpcMock.deleteRoutineSkipExceptionTranslation(PROJECT, DATASET, ROUTINE)) .thenReturn(true); bigquery = options.getService(); @@ -3171,7 +3184,7 @@ public void testDeleteRoutine() throws IOException { } @Test - public void testWriteWithJob() throws IOException { + void testWriteWithJob() throws IOException { bigquery = options.getService(); Job job = new Job(bigquery, new JobInfo.BuilderImpl(JOB_INFO)); when(bigqueryRpcMock.openSkipExceptionTranslation( @@ -3197,7 +3210,7 @@ public void testWriteWithJob() throws IOException { } @Test - public void testWriteChannel() throws IOException { + void testWriteChannel() throws IOException { bigquery = options.getService(); Job job = new Job(bigquery, new JobInfo.BuilderImpl(JOB_INFO)); when(bigqueryRpcMock.openSkipExceptionTranslation( @@ -3223,7 +3236,7 @@ public void testWriteChannel() throws IOException { } @Test - public void testGetIamPolicy() throws IOException { + void testGetIamPolicy() throws IOException { final String resourceId = String.format("projects/%s/datasets/%s/tables/%s", PROJECT, DATASET, TABLE); final com.google.api.services.bigquery.model.Policy apiPolicy = @@ -3237,7 +3250,7 @@ public void testGetIamPolicy() throws IOException { } @Test - public void testSetIamPolicy() throws IOException { + void testSetIamPolicy() throws IOException { final String resourceId = String.format("projects/%s/datasets/%s/tables/%s", PROJECT, DATASET, TABLE); final com.google.api.services.bigquery.model.Policy apiPolicy = @@ -3253,7 +3266,7 @@ public void testSetIamPolicy() throws IOException { } @Test - public void testTestIamPermissions() throws IOException { + void testTestIamPermissions() throws IOException { final String resourceId = String.format("projects/%s/datasets/%s/tables/%s", PROJECT, DATASET, TABLE); final List checkedPermissions = ImmutableList.of("foo", "bar", "baz"); @@ -3273,7 +3286,7 @@ public void testTestIamPermissions() throws IOException { } @Test - public void testTestIamPermissionsWhenNoPermissionsGranted() throws IOException { + void testTestIamPermissionsWhenNoPermissionsGranted() throws IOException { final String resourceId = String.format("projects/%s/datasets/%s/tables/%s", PROJECT, DATASET, TABLE); final List checkedPermissions = ImmutableList.of("foo", "bar", "baz"); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java index e77d7936a42e..050deba4af16 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java @@ -16,33 +16,34 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.cloud.TransportOptions; -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class BigQueryOptionsTest { @Test - public void testInvalidTransport() { - try { - BigQueryOptions.newBuilder().setTransportOptions(Mockito.mock(TransportOptions.class)); - Assert.fail(); - } catch (IllegalArgumentException expected) { - Assert.assertNotNull(expected.getMessage()); - } + void testInvalidTransport() { + IllegalArgumentException expected = + assertThrows( + IllegalArgumentException.class, + () -> + BigQueryOptions.newBuilder() + .setTransportOptions(Mockito.mock(TransportOptions.class))); + assertNotNull(expected.getMessage()); } @Test - public void dataFormatOptions_createdByDefault() { + void dataFormatOptions_createdByDefault() { BigQueryOptions options = BigQueryOptions.newBuilder().setProjectId("project-id").build(); assertNotNull(options.getDataFormatOptions()); @@ -53,7 +54,7 @@ public void dataFormatOptions_createdByDefault() { } @Test - public void nonBuilderSetUseInt64Timestamp_capturedInDataFormatOptions() { + void nonBuilderSetUseInt64Timestamp_capturedInDataFormatOptions() { BigQueryOptions options = BigQueryOptions.newBuilder() .setDataFormatOptions(DataFormatOptions.newBuilder().useInt64Timestamp(false).build()) @@ -65,7 +66,7 @@ public void nonBuilderSetUseInt64Timestamp_capturedInDataFormatOptions() { } @Test - public void nonBuilderSetUseInt64Timestamp_overridesEverything() { + void nonBuilderSetUseInt64Timestamp_overridesEverything() { BigQueryOptions options = BigQueryOptions.newBuilder().setProjectId("project-id").build(); options.setUseInt64Timestamps(true); @@ -73,7 +74,7 @@ public void nonBuilderSetUseInt64Timestamp_overridesEverything() { } @Test - public void noDataFormatOptions_capturesUseInt64TimestampSetInBuilder() { + void noDataFormatOptions_capturesUseInt64TimestampSetInBuilder() { BigQueryOptions options = BigQueryOptions.newBuilder().setUseInt64Timestamps(true).setProjectId("project-id").build(); @@ -81,7 +82,7 @@ public void noDataFormatOptions_capturesUseInt64TimestampSetInBuilder() { } @Test - public void dataFormatOptionsSetterHasPrecedence() { + void dataFormatOptionsSetterHasPrecedence() { BigQueryOptions options = BigQueryOptions.newBuilder() .setProjectId("project-id") diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java index ca150eb1ba5b..54d0b8e4e46e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java @@ -37,9 +37,9 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingDeque; import org.apache.arrow.vector.util.Text; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class BigQueryResultImplTest { +class BigQueryResultImplTest { private static final Schema SCHEMA = Schema.of( @@ -97,7 +97,7 @@ public class BigQueryResultImplTest { private static final int BUFFER_SIZE = 10; @Test - public void testResultSetFieldValueList() throws InterruptedException, SQLException { + void testResultSetFieldValueList() throws InterruptedException, SQLException { BlockingQueue> buffer = new LinkedBlockingDeque<>(BUFFER_SIZE); FieldValueList fieldValues = FieldValueList.of( @@ -199,7 +199,7 @@ public void testResultSetFieldValueList() throws InterruptedException, SQLExcept } @Test - public void testResultSetReadApi() throws InterruptedException, SQLException { + void testResultSetReadApi() throws InterruptedException, SQLException { BlockingQueue buffer = new LinkedBlockingDeque<>(BUFFER_SIZE); Map rowValues = new HashMap<>(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java index 88fa1595e38c..a11d9b923bb4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java @@ -18,8 +18,8 @@ import static com.google.common.truth.Truth.assertThat; import com.google.common.collect.ImmutableList; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class BigtableOptionsTest { @@ -55,7 +55,7 @@ public class BigtableOptionsTest { .build(); @Test - public void testConstructors() { + void testConstructors() { // column assertThat(COL1.getQualifierEncoded()).isEqualTo("aaa"); assertThat(COL1.getFieldName()).isEqualTo("field1"); @@ -80,41 +80,36 @@ public void testConstructors() { } @Test - public void testNullPointerException() { - try { - BigtableColumnFamily.newBuilder().setFamilyID(null).build(); - Assert.fail(); - } catch (NullPointerException ex) { - assertThat(ex.getMessage()).isNotNull(); - } - try { - BigtableColumnFamily.newBuilder().setColumns(null).build(); - Assert.fail(); - } catch (NullPointerException ex) { - assertThat(ex.getMessage()).isNotNull(); - } - try { - BigtableColumnFamily.newBuilder().setEncoding(null).build(); - Assert.fail(); - } catch (NullPointerException ex) { - assertThat(ex.getMessage()).isNotNull(); - } - try { - BigtableColumnFamily.newBuilder().setOnlyReadLatest(null).build(); - Assert.fail(); - } catch (NullPointerException ex) { - assertThat(ex.getMessage()).isNotNull(); - } - try { - BigtableColumnFamily.newBuilder().setType(null).build(); - Assert.fail(); - } catch (NullPointerException ex) { - assertThat(ex.getMessage()).isNotNull(); - } + void testNullPointerException() { + NullPointerException ex = + Assertions.assertThrows( + NullPointerException.class, + () -> BigtableColumnFamily.newBuilder().setFamilyID(null).build()); + assertThat(ex.getMessage()).isNotNull(); + ex = + Assertions.assertThrows( + NullPointerException.class, + () -> BigtableColumnFamily.newBuilder().setColumns(null).build()); + assertThat(ex.getMessage()).isNotNull(); + ex = + Assertions.assertThrows( + NullPointerException.class, + () -> BigtableColumnFamily.newBuilder().setEncoding(null).build()); + assertThat(ex.getMessage()).isNotNull(); + ex = + Assertions.assertThrows( + NullPointerException.class, + () -> BigtableColumnFamily.newBuilder().setOnlyReadLatest(null).build()); + assertThat(ex.getMessage()).isNotNull(); + ex = + Assertions.assertThrows( + NullPointerException.class, + () -> BigtableColumnFamily.newBuilder().setType(null).build()); + assertThat(ex.getMessage()).isNotNull(); } @Test - public void testIllegalStateException() { + void testIllegalStateException() { try { BigtableColumnFamily.newBuilder().build(); } catch (IllegalStateException ex) { @@ -123,14 +118,14 @@ public void testIllegalStateException() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareBigtableColumn(COL1, BigtableColumn.fromPb(COL1.toPb())); compareBigtableColumnFamily(TESTFAMILY, BigtableColumnFamily.fromPb(TESTFAMILY.toPb())); compareBigtableOptions(OPTIONS, BigtableOptions.fromPb(OPTIONS.toPb())); } @Test - public void testEquals() { + void testEquals() { compareBigtableColumn(COL1, COL1); compareBigtableColumnFamily(TESTFAMILY, TESTFAMILY); assertThat(TESTFAMILY.equals(TESTFAMILY)).isTrue(); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CloneDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CloneDefinitionTest.java index 33bcf5f405b1..1a319c947c29 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CloneDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CloneDefinitionTest.java @@ -16,10 +16,10 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class CloneDefinitionTest { private static final TableId BASE_TABLE_ID = TableId.of("DATASET_NAME", "BASE_TABLE_NAME"); @@ -28,7 +28,7 @@ public class CloneDefinitionTest { CloneDefinition.newBuilder().setBaseTableId(BASE_TABLE_ID).setCloneTime(CLONE_TIME).build(); @Test - public void testToBuilder() { + void testToBuilder() { compareCloneTableDefinition(CLONETABLE_DEFINITION, CLONETABLE_DEFINITION.toBuilder().build()); CloneDefinition cloneTableDefinition = CLONETABLE_DEFINITION.toBuilder().setCloneTime("2021-05-20T11:32:26.553Z").build(); @@ -36,7 +36,7 @@ public void testToBuilder() { } @Test - public void testBuilder() { + void testBuilder() { assertEquals(BASE_TABLE_ID, CLONETABLE_DEFINITION.getBaseTableId()); assertEquals(CLONE_TIME, CLONETABLE_DEFINITION.getCloneTime()); CloneDefinition cloneDefinition = @@ -45,7 +45,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { CloneDefinition cloneDefinition = CLONETABLE_DEFINITION.toBuilder().build(); assertTrue(CloneDefinition.fromPb(cloneDefinition.toPb()) instanceof CloneDefinition); compareCloneTableDefinition(cloneDefinition, CloneDefinition.fromPb(cloneDefinition.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java index 0cc680dddf8f..0c7c75306ccf 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java @@ -16,10 +16,10 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ColumnReferenceTest { private static final ColumnReference COLUMN_REFERENCE = @@ -29,7 +29,7 @@ public class ColumnReferenceTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareColumnReferenceDefinition(COLUMN_REFERENCE, COLUMN_REFERENCE.toBuilder().build()); ColumnReference columnReference = COLUMN_REFERENCE.toBuilder() @@ -41,7 +41,7 @@ public void testToBuilder() { } @Test - public void testBuilder() { + void testBuilder() { assertEquals("column1", COLUMN_REFERENCE.getReferencingColumn()); assertEquals("column2", COLUMN_REFERENCE.getReferencedColumn()); ColumnReference columnReference = @@ -54,7 +54,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { ColumnReference columnReference = COLUMN_REFERENCE.toBuilder().build(); assertTrue(ColumnReference.fromPb(columnReference.toPb()) instanceof ColumnReference); compareColumnReferenceDefinition( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java index 4edc6f05d1ba..54f9b7a33a25 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java @@ -16,14 +16,26 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.*; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; -import com.google.api.services.bigquery.model.*; +import com.google.api.services.bigquery.model.GetQueryResultsResponse; +import com.google.api.services.bigquery.model.QueryParameter; +import com.google.api.services.bigquery.model.QueryParameterType; +import com.google.api.services.bigquery.model.QueryRequest; import com.google.api.services.bigquery.model.QueryResponse; +import com.google.api.services.bigquery.model.TableCell; +import com.google.api.services.bigquery.model.TableDataList; +import com.google.api.services.bigquery.model.TableRow; +import com.google.api.services.bigquery.model.TableSchema; import com.google.cloud.ServiceOptions; import com.google.cloud.Tuple; import com.google.cloud.bigquery.spi.BigQueryRpcFactory; @@ -41,14 +53,14 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.ExecutionException; import java.util.concurrent.LinkedBlockingDeque; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(MockitoJUnitRunner.class) -public class ConnectionImplTest { +@ExtendWith(MockitoExtension.class) +class ConnectionImplTest { private BigQueryOptions options; private BigQueryRpcFactory rpcFactoryMock; private HttpBigQueryRpc bigqueryRpcMock; @@ -140,8 +152,8 @@ private BigQueryOptions createBigQueryOptionsForProject( .build(); } - @Before - public void setUp() { + @BeforeEach + void setUp() { rpcFactoryMock = mock(BigQueryRpcFactory.class); bigqueryRpcMock = mock(HttpBigQueryRpc.class); connectionMock = mock(Connection.class); @@ -164,7 +176,7 @@ public void setUp() { } @Test - public void testFastQuerySinglePage() throws BigQuerySQLException, IOException { + void testFastQuerySinglePage() throws BigQuerySQLException, IOException { com.google.api.services.bigquery.model.QueryResponse mockQueryRes = new QueryResponse().setSchema(FAST_QUERY_TABLESCHEMA).setJobComplete(true); when(bigqueryRpcMock.queryRpcSkipExceptionTranslation( @@ -186,7 +198,7 @@ public void testFastQuerySinglePage() throws BigQuerySQLException, IOException { @Test // NOTE: This doesn't truly paginates. Returns a response while mocking // processQueryResponseResults - public void testFastQueryMultiplePages() throws BigQuerySQLException, IOException { + void testFastQueryMultiplePages() throws BigQuerySQLException, IOException { com.google.api.services.bigquery.model.QueryResponse mockQueryRes = new QueryResponse() .setSchema(FAST_QUERY_TABLESCHEMA) @@ -211,13 +223,13 @@ public void testFastQueryMultiplePages() throws BigQuerySQLException, IOExceptio } @Test - public void testClose() throws BigQuerySQLException { + void testClose() throws BigQuerySQLException { boolean cancelled = connection.close(); assertTrue(cancelled); } @Test - public void testQueryDryRun() throws BigQuerySQLException, IOException { + void testQueryDryRun() throws BigQuerySQLException, IOException { List queryParametersMock = ImmutableList.of( new QueryParameter().setParameterType(new QueryParameterType().setType("STRING"))); @@ -251,7 +263,7 @@ public void testQueryDryRun() throws BigQuerySQLException, IOException { } @Test - public void testQueryDryRunNoQueryParameters() throws BigQuerySQLException, IOException { + void testQueryDryRunNoQueryParameters() throws BigQuerySQLException, IOException { com.google.api.services.bigquery.model.JobStatistics2 queryMock = new com.google.api.services.bigquery.model.JobStatistics2() .setSchema(FAST_QUERY_TABLESCHEMA); @@ -281,7 +293,7 @@ public void testQueryDryRunNoQueryParameters() throws BigQuerySQLException, IOEx } @Test - public void testParseDataTask() throws InterruptedException { + void testParseDataTask() throws InterruptedException { BlockingQueue, Boolean>> pageCache = new LinkedBlockingDeque<>(2); BlockingQueue> rpcResponseQueue = new LinkedBlockingDeque<>(2); @@ -306,7 +318,7 @@ public void testParseDataTask() throws InterruptedException { } @Test - public void testPopulateBuffer() throws InterruptedException { + void testPopulateBuffer() throws InterruptedException { BlockingQueue, Boolean>> pageCache = new LinkedBlockingDeque<>(2); @@ -341,7 +353,7 @@ public void testPopulateBuffer() throws InterruptedException { } @Test - public void testNextPageTask() throws InterruptedException { + void testNextPageTask() throws InterruptedException { BlockingQueue> rpcResponseQueue = new LinkedBlockingDeque<>(2); TableDataList mockTabledataList = new TableDataList() @@ -364,7 +376,7 @@ public void testNextPageTask() throws InterruptedException { } @Test - public void testGetQueryResultsFirstPage() throws IOException { + void testGetQueryResultsFirstPage() throws IOException { when(bigqueryRpcMock.getQueryResultsWithRowLimitSkipExceptionTranslation( any(String.class), any(String.class), @@ -386,7 +398,7 @@ public void testGetQueryResultsFirstPage() throws IOException { // calls executeSelect with a nonFast query and exercises createQueryJob @Test - public void testLegacyQuerySinglePage() throws BigQuerySQLException, IOException { + void testLegacyQuerySinglePage() throws BigQuerySQLException, IOException { ConnectionImpl connectionSpy = Mockito.spy(connection); com.google.api.services.bigquery.model.Job jobResponseMock = new com.google.api.services.bigquery.model.Job() @@ -419,7 +431,7 @@ public void testLegacyQuerySinglePage() throws BigQuerySQLException, IOException // calls executeSelect with a nonFast query where the query returns an empty result. @Test - public void testLegacyQuerySinglePageEmptyResults() throws SQLException, IOException { + void testLegacyQuerySinglePageEmptyResults() throws SQLException, IOException { ConnectionImpl connectionSpy = Mockito.spy(connection); com.google.api.services.bigquery.model.Job jobResponseMock = new com.google.api.services.bigquery.model.Job() @@ -448,7 +460,7 @@ public void testLegacyQuerySinglePageEmptyResults() throws SQLException, IOExcep // exercises getSubsequentQueryResultsWithJob for fast running queries @Test - public void testFastQueryLongRunning() throws SQLException, IOException { + void testFastQueryLongRunning() throws SQLException, IOException { ConnectionImpl connectionSpy = Mockito.spy(connection); // emulating a fast query doReturn(true).when(connectionSpy).isFastQuerySupported(); @@ -479,7 +491,7 @@ public void testFastQueryLongRunning() throws SQLException, IOException { } @Test - public void testFastQueryLongRunningAsync() + void testFastQueryLongRunningAsync() throws SQLException, ExecutionException, InterruptedException, IOException { ConnectionImpl connectionSpy = Mockito.spy(connection); // emulating a fast query @@ -515,7 +527,7 @@ public void testFastQueryLongRunningAsync() } @Test - public void testFastQuerySinglePageAsync() + void testFastQuerySinglePageAsync() throws BigQuerySQLException, ExecutionException, InterruptedException, IOException { com.google.api.services.bigquery.model.QueryResponse mockQueryRes = new QueryResponse().setSchema(FAST_QUERY_TABLESCHEMA).setJobComplete(true); @@ -540,7 +552,7 @@ public void testFastQuerySinglePageAsync() } @Test - public void testExecuteSelectSlowWithParamsAsync() + void testExecuteSelectSlowWithParamsAsync() throws BigQuerySQLException, ExecutionException, InterruptedException { ConnectionImpl connectionSpy = Mockito.spy(connection); List parameters = new ArrayList<>(); @@ -584,7 +596,7 @@ public void testExecuteSelectSlowWithParamsAsync() } @Test - public void testFastQueryMultiplePagesAsync() + void testFastQueryMultiplePagesAsync() throws BigQuerySQLException, ExecutionException, InterruptedException, IOException { com.google.api.services.bigquery.model.QueryResponse mockQueryRes = new QueryResponse() @@ -616,7 +628,7 @@ public void testFastQueryMultiplePagesAsync() @Test // Emulates first page response using getQueryResultsFirstPage(jobId) and then subsequent pages // using getQueryResultsFirstPage(jobId) getSubsequentQueryResultsWithJob( - public void testLegacyQueryMultiplePages() throws SQLException, IOException { + void testLegacyQueryMultiplePages() throws SQLException, IOException { ConnectionImpl connectionSpy = Mockito.spy(connection); com.google.api.services.bigquery.model.JobStatistics jobStatistics = new com.google.api.services.bigquery.model.JobStatistics(); @@ -649,7 +661,7 @@ public void testLegacyQueryMultiplePages() throws SQLException, IOException { } @Test - public void testExecuteSelectSlow() throws BigQuerySQLException { + void testExecuteSelectSlow() throws BigQuerySQLException { ConnectionImpl connectionSpy = Mockito.spy(connection); doReturn(false).when(connectionSpy).isFastQuerySupported(); com.google.api.services.bigquery.model.JobStatistics jobStatistics = @@ -686,7 +698,7 @@ public void testExecuteSelectSlow() throws BigQuerySQLException { } @Test - public void testExecuteSelectSlowWithParams() throws BigQuerySQLException { + void testExecuteSelectSlowWithParams() throws BigQuerySQLException { ConnectionImpl connectionSpy = Mockito.spy(connection); List parameters = new ArrayList<>(); Map labels = new HashMap<>(); @@ -725,7 +737,7 @@ public void testExecuteSelectSlowWithParams() throws BigQuerySQLException { } @Test - public void testGetSubsequentQueryResultsWithJob() { + void testGetSubsequentQueryResultsWithJob() { ConnectionImpl connectionSpy = Mockito.spy(connection); JobId jobId = mock(JobId.class); BigQueryResultStats bqRsStats = mock(BigQueryResultStats.class); @@ -749,7 +761,7 @@ public void testGetSubsequentQueryResultsWithJob() { } @Test - public void testUseReadApi() { + void testUseReadApi() { ConnectionSettings connectionSettingsSpy = Mockito.spy(ConnectionSettings.class); doReturn(true).when(connectionSettingsSpy).getUseReadAPI(); doReturn(2).when(connectionSettingsSpy).getTotalToPageRowCountRatio(); @@ -775,7 +787,7 @@ public void testUseReadApi() { } @Test - public void testGetPageCacheSize() { + void testGetPageCacheSize() { ConnectionImpl connectionSpy = Mockito.spy(connection); // number of cached pages should be within a range assertTrue(connectionSpy.getPageCacheSize(10000, QUERY_SCHEMA) >= 3); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionPropertyTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionPropertyTest.java index 9177720e8fc0..bc5def560b63 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionPropertyTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionPropertyTest.java @@ -18,7 +18,7 @@ import static com.google.common.truth.Truth.assertThat; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ConnectionPropertyTest { @@ -28,7 +28,7 @@ public class ConnectionPropertyTest { ConnectionProperty.newBuilder().setKey(KEY).setValue(VALUE).build(); @Test - public void testToBuilder() { + void testToBuilder() { compareConnectionProperty(CONNECTION_PROPERTY, CONNECTION_PROPERTY.toBuilder().build()); ConnectionProperty property = CONNECTION_PROPERTY.toBuilder().setKey("time-zone").build(); assertThat(property.getKey()).isEqualTo("time-zone"); @@ -37,19 +37,19 @@ public void testToBuilder() { } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { ConnectionProperty connectionProperty = ConnectionProperty.of(KEY, VALUE); compareConnectionProperty(connectionProperty, connectionProperty.toBuilder().build()); } @Test - public void testBuilder() { + void testBuilder() { assertThat(CONNECTION_PROPERTY.getKey()).isEqualTo(KEY); assertThat(CONNECTION_PROPERTY.getValue()).isEqualTo(VALUE); } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareConnectionProperty( CONNECTION_PROPERTY, ConnectionProperty.fromPb(CONNECTION_PROPERTY.toPb())); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionSettingsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionSettingsTest.java index 8523825bcabc..29c29ed55c10 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionSettingsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionSettingsTest.java @@ -16,7 +16,7 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; @@ -26,9 +26,9 @@ import com.google.common.collect.ImmutableMap; import java.util.List; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class ConnectionSettingsTest { +class ConnectionSettingsTest { private static final String TEST_PROJECT_ID = "test-project-id"; private static final DatasetId DATASET_ID = DatasetId.of("dataset"); private static final TableId TABLE_ID = TableId.of("dataset", "table"); @@ -116,19 +116,19 @@ public class ConnectionSettingsTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareConnectionSettings(CONNECTION_SETTINGS, CONNECTION_SETTINGS.toBuilder().build()); } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { ConnectionSettings connectionSettings = ConnectionSettings.newBuilder().setDefaultDataset(DATASET_ID).build(); compareConnectionSettings(connectionSettings, connectionSettings.toBuilder().build()); } @Test - public void testBuilder() { + void testBuilder() { assertEquals(REQUEST_TIMEOUT, CONNECTION_SETTINGS.getRequestTimeout()); assertEquals(NUM_BUFFERED_ROWS, CONNECTION_SETTINGS.getNumBufferedRows()); assertEquals(MAX_RESULTS, CONNECTION_SETTINGS.getMaxResults()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java index 3f21bf1c05b2..97538f299181 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java @@ -16,9 +16,9 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.WriteDisposition; @@ -28,9 +28,9 @@ import com.google.common.collect.Lists; import java.util.List; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class CopyJobConfigurationTest { +class CopyJobConfigurationTest { private static final String TEST_PROJECT_ID = "test-project-id"; private static final TableId SOURCE_TABLE = TableId.of("dataset", "sourceTable"); @@ -64,7 +64,7 @@ public class CopyJobConfigurationTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareCopyJobConfiguration(COPY_JOB_CONFIGURATION, COPY_JOB_CONFIGURATION.toBuilder().build()); compareCopyJobConfiguration( COPY_JOB_CONFIGURATION_MULTIPLE_TABLES, @@ -79,7 +79,7 @@ public void testToBuilder() { } @Test - public void testOf() { + void testOf() { CopyJobConfiguration job = CopyJobConfiguration.of(DESTINATION_TABLE, SOURCE_TABLES); assertEquals(DESTINATION_TABLE, job.getDestinationTable()); assertEquals(SOURCE_TABLES, job.getSourceTables()); @@ -89,14 +89,14 @@ public void testOf() { } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { CopyJobConfiguration jobConfiguration = CopyJobConfiguration.of(DESTINATION_TABLE, SOURCE_TABLES); compareCopyJobConfiguration(jobConfiguration, jobConfiguration.toBuilder().build()); } @Test - public void testBuilder() { + void testBuilder() { assertEquals(DESTINATION_TABLE, COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getDestinationTable()); assertEquals(SOURCE_TABLES, COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getSourceTables()); assertEquals(CREATE_DISPOSITION, COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getCreateDisposition()); @@ -110,7 +110,7 @@ public void testBuilder() { } @Test - public void testToPbAndFromPb() { + void testToPbAndFromPb() { assertNotNull(COPY_JOB_CONFIGURATION.toPb().getCopy()); assertNull(COPY_JOB_CONFIGURATION.toPb().getExtract()); assertNull(COPY_JOB_CONFIGURATION.toPb().getLoad()); @@ -133,7 +133,7 @@ public void testToPbAndFromPb() { } @Test - public void testSetProjectId() { + void testSetProjectId() { CopyJobConfiguration configuration = COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.setProjectId(TEST_PROJECT_ID); assertEquals(TEST_PROJECT_ID, configuration.getDestinationTable().getProject()); @@ -143,7 +143,7 @@ public void testSetProjectId() { } @Test - public void testSetProjectIdDoNotOverride() { + void testSetProjectIdDoNotOverride() { CopyJobConfiguration configuration = COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.toBuilder() .setSourceTables( @@ -165,7 +165,7 @@ public TableId apply(TableId tableId) { } @Test - public void testGetType() { + void testGetType() { assertEquals(JobConfiguration.Type.COPY, COPY_JOB_CONFIGURATION.getType()); assertEquals(JobConfiguration.Type.COPY, COPY_JOB_CONFIGURATION_MULTIPLE_TABLES.getType()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java index fb0293a97ae7..1c31540fc081 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java @@ -16,11 +16,11 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class CsvOptionsTest { @@ -46,7 +46,7 @@ public class CsvOptionsTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareCsvOptions(CSV_OPTIONS, CSV_OPTIONS.toBuilder().build()); CsvOptions csvOptions = CSV_OPTIONS.toBuilder().setFieldDelimiter(";").build(); assertEquals(";", csvOptions.getFieldDelimiter()); @@ -55,13 +55,13 @@ public void testToBuilder() { } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { CsvOptions csvOptions = CsvOptions.newBuilder().setFieldDelimiter("|").build(); assertEquals(csvOptions, csvOptions.toBuilder().build()); } @Test - public void testBuilder() { + void testBuilder() { assertEquals(FormatOptions.CSV, CSV_OPTIONS.getType()); assertEquals(ALLOW_JAGGED_ROWS, CSV_OPTIONS.allowJaggedRows()); assertEquals(ALLOW_QUOTED_NEWLINE, CSV_OPTIONS.allowQuotedNewLines()); @@ -75,7 +75,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareCsvOptions(CSV_OPTIONS, CsvOptions.fromPb(CSV_OPTIONS.toPb())); CsvOptions csvOptions = CsvOptions.newBuilder().setAllowJaggedRows(ALLOW_JAGGED_ROWS).build(); compareCsvOptions(csvOptions, CsvOptions.fromPb(csvOptions.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java index bacf7b2b0e42..dc2ba289989e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java @@ -16,17 +16,17 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class DatasetIdTest { +class DatasetIdTest { private static final DatasetId DATASET = DatasetId.of("dataset"); private static final DatasetId DATASET_COMPLETE = DatasetId.of("project", "dataset"); @Test - public void testOf() { + void testOf() { assertEquals(null, DATASET.getProject()); assertEquals("dataset", DATASET.getDataset()); assertEquals("project", DATASET_COMPLETE.getProject()); @@ -34,19 +34,19 @@ public void testOf() { } @Test - public void testEquals() { + void testEquals() { compareDatasetIds(DATASET, DatasetId.of("dataset")); compareDatasetIds(DATASET_COMPLETE, DatasetId.of("project", "dataset")); } @Test - public void testToPbAndFromPb() { + void testToPbAndFromPb() { compareDatasetIds(DATASET, DatasetId.fromPb(DATASET.toPb())); compareDatasetIds(DATASET_COMPLETE, DatasetId.fromPb(DATASET_COMPLETE.toPb())); } @Test - public void testSetProjectId() { + void testSetProjectId() { assertEquals(DATASET_COMPLETE, DATASET.setProjectId("project")); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java index 1b75195cec50..cb9768de4d6f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -16,16 +16,16 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import java.util.List; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DatasetInfoTest { @@ -104,7 +104,7 @@ public class DatasetInfoTest { DATASET_INFO.toBuilder().setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS_5_DAYS).build(); @Test - public void testToBuilder() { + void testToBuilder() { compareDatasets(DATASET_INFO, DATASET_INFO.toBuilder().build()); compareDatasets( DATASET_INFO_COMPLETE_WITH_IAM_MEMBER, @@ -122,13 +122,13 @@ public void testToBuilder() { } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { DatasetInfo datasetInfo = DatasetInfo.newBuilder(DATASET_ID).build(); assertEquals(datasetInfo, datasetInfo.toBuilder().build()); } @Test - public void testToBuilderWithExternalDatasetReference() { + void testToBuilderWithExternalDatasetReference() { compareDatasets( DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE, DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE.toBuilder().build()); @@ -149,7 +149,7 @@ public void testToBuilderWithExternalDatasetReference() { } @Test - public void testBuilder() { + void testBuilder() { assertNull(DATASET_INFO.getDatasetId().getProject()); assertEquals(DATASET_ID, DATASET_INFO.getDatasetId()); assertEquals(ACCESS_RULES, DATASET_INFO.getAcl()); @@ -189,7 +189,7 @@ public void testBuilder() { } @Test - public void testOf() { + void testOf() { DatasetInfo datasetInfo = DatasetInfo.of(DATASET_ID.getDataset()); assertEquals(DATASET_ID, datasetInfo.getDatasetId()); assertNull(datasetInfo.getAcl()); @@ -230,7 +230,7 @@ public void testOf() { } @Test - public void testToPbAndFromPb() { + void testToPbAndFromPb() { compareDatasets(DATASET_INFO_COMPLETE, DatasetInfo.fromPb(DATASET_INFO_COMPLETE.toPb())); compareDatasets( DATASET_INFO_COMPLETE_WITH_EXTERNAL_DATASET_REFERENCE, @@ -240,12 +240,12 @@ public void testToPbAndFromPb() { } @Test - public void testSetProjectId() { + void testSetProjectId() { assertEquals(DATASET_INFO_COMPLETE, DATASET_INFO.setProjectId("project")); } @Test - public void testSetMaxTimeTravelHours() { + void testSetMaxTimeTravelHours() { assertNotEquals( DATASET_INFO_WITH_MAX_TIME_TRAVEL_5_DAYS.getMaxTimeTravelHours(), DATASET_INFO.getMaxTimeTravelHours()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java index d138e3cb51d7..5e19e8c8259f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java @@ -16,13 +16,13 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -35,15 +35,13 @@ import com.google.common.collect.Iterables; import java.util.List; import java.util.Map; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnitRunner; -import org.mockito.junit.MockitoRule; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(MockitoJUnitRunner.class) -public class DatasetTest { +@ExtendWith(MockitoExtension.class) +class DatasetTest { private static final DatasetId DATASET_ID = DatasetId.of("dataset"); private static final List ACCESS_RULES = @@ -95,15 +93,13 @@ public class DatasetTest { .setConnection("connection") .build(); - @Rule public MockitoRule rule; - private BigQuery bigquery; private BigQueryOptions mockOptions; private Dataset expectedDataset; private Dataset dataset; - @Before - public void setUp() { + @BeforeEach + void setUp() { bigquery = mock(BigQuery.class); mockOptions = mock(BigQueryOptions.class); when(bigquery.getOptions()).thenReturn(mockOptions); @@ -112,7 +108,7 @@ public void setUp() { } @Test - public void testBuilder() { + void testBuilder() { Dataset builtDataset = new Dataset.Builder(bigquery, DATASET_ID) .setAcl(ACCESS_RULES) @@ -148,12 +144,12 @@ public void testBuilder() { } @Test - public void testToBuilder() { + void testToBuilder() { compareDataset(expectedDataset, expectedDataset.toBuilder().build()); } @Test - public void testExists_True() { + void testExists_True() { BigQuery.DatasetOption[] expectedOptions = {BigQuery.DatasetOption.fields()}; when(bigquery.getDataset(DATASET_INFO.getDatasetId(), expectedOptions)) .thenReturn(expectedDataset); @@ -162,7 +158,7 @@ public void testExists_True() { } @Test - public void testExists_False() { + void testExists_False() { BigQuery.DatasetOption[] expectedOptions = {BigQuery.DatasetOption.fields()}; when(bigquery.getDataset(DATASET_INFO.getDatasetId(), expectedOptions)).thenReturn(null); assertFalse(dataset.exists()); @@ -170,7 +166,7 @@ public void testExists_False() { } @Test - public void testReload() { + void testReload() { DatasetInfo updatedInfo = DATASET_INFO.toBuilder().setDescription("Description").build(); Dataset expectedDataset = new Dataset(bigquery, new DatasetInfo.BuilderImpl(updatedInfo)); when(bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset())).thenReturn(expectedDataset); @@ -180,14 +176,14 @@ public void testReload() { } @Test - public void testReloadNull() { + void testReloadNull() { when(bigquery.getDataset(DATASET_INFO.getDatasetId().getDataset())).thenReturn(null); assertNull(dataset.reload()); verify(bigquery).getDataset(DATASET_INFO.getDatasetId().getDataset()); } @Test - public void testReloadWithOptions() { + void testReloadWithOptions() { DatasetInfo updatedInfo = DATASET_INFO.toBuilder().setDescription("Description").build(); Dataset expectedDataset = new Dataset(bigquery, new DatasetInfo.BuilderImpl(updatedInfo)); when(bigquery.getDataset( @@ -200,7 +196,7 @@ public void testReloadWithOptions() { } @Test - public void testUpdate() { + void testUpdate() { Dataset expectedUpdatedDataset = expectedDataset.toBuilder().setDescription("Description").build(); when(bigquery.update(eq(expectedDataset))).thenReturn(expectedUpdatedDataset); @@ -210,7 +206,7 @@ public void testUpdate() { } @Test - public void testUpdateWithOptions() { + void testUpdateWithOptions() { Dataset expectedUpdatedDataset = expectedDataset.toBuilder().setDescription("Description").build(); when(bigquery.update(eq(expectedDataset), eq(BigQuery.DatasetOption.fields()))) @@ -221,21 +217,21 @@ public void testUpdateWithOptions() { } @Test - public void testDeleteTrue() { + void testDeleteTrue() { when(bigquery.delete(DATASET_INFO.getDatasetId())).thenReturn(true); assertTrue(dataset.delete()); verify(bigquery).delete(DATASET_INFO.getDatasetId()); } @Test - public void testDeleteFalse() { + void testDeleteFalse() { when(bigquery.delete(DATASET_INFO.getDatasetId())).thenReturn(false); assertFalse(dataset.delete()); verify(bigquery).delete(DATASET_INFO.getDatasetId()); } @Test - public void testList() { + void testList() { List
    tableResults = ImmutableList.of( new Table(bigquery, new Table.BuilderImpl(TABLE_INFO1)), @@ -251,7 +247,7 @@ public void testList() { } @Test - public void testListWithOptions() { + void testListWithOptions() { List
    tableResults = ImmutableList.of( new Table(bigquery, new Table.BuilderImpl(TABLE_INFO1)), @@ -269,7 +265,7 @@ public void testListWithOptions() { } @Test - public void testGet() { + void testGet() { Table expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO1)); when(bigquery.getTable(TABLE_INFO1.getTableId())).thenReturn(expectedTable); Table table = dataset.get(TABLE_INFO1.getTableId().getTable()); @@ -279,7 +275,7 @@ public void testGet() { } @Test - public void testGetTableWithNewProjectId() { + void testGetTableWithNewProjectId() { Table expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO4)); when(bigquery.getTable(TABLE_ID1, null)).thenReturn(expectedTable); Table table = bigquery.getTable(TABLE_ID1, null); @@ -289,14 +285,14 @@ public void testGetTableWithNewProjectId() { } @Test - public void testGetNull() { + void testGetNull() { when(bigquery.getTable(TABLE_INFO1.getTableId())).thenReturn(null); assertNull(dataset.get(TABLE_INFO1.getTableId().getTable())); verify(bigquery).getTable(TABLE_INFO1.getTableId()); } @Test - public void testGetWithOptions() { + void testGetWithOptions() { Table expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO1)); when(bigquery.getTable(TABLE_INFO1.getTableId(), BigQuery.TableOption.fields())) .thenReturn(expectedTable); @@ -307,7 +303,7 @@ public void testGetWithOptions() { } @Test - public void testCreateTable() { + void testCreateTable() { Table expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO1)); when(bigquery.create(TABLE_INFO1)).thenReturn(expectedTable); Table table = dataset.create(TABLE_INFO1.getTableId().getTable(), TABLE_DEFINITION); @@ -316,7 +312,7 @@ public void testCreateTable() { } @Test - public void testCreateTableWithOptions() { + void testCreateTableWithOptions() { Table expectedTable = new Table(bigquery, new TableInfo.BuilderImpl(TABLE_INFO1)); when(bigquery.create(TABLE_INFO1, BigQuery.TableOption.fields())).thenReturn(expectedTable); Table table = @@ -327,17 +323,17 @@ public void testCreateTableWithOptions() { } @Test - public void testBigQuery() { + void testBigQuery() { assertSame(bigquery, expectedDataset.getBigQuery()); } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareDataset(expectedDataset, Dataset.fromPb(bigquery, expectedDataset.toPb())); } @Test - public void testExternalDatasetReference() { + void testExternalDatasetReference() { Dataset datasetWithExternalDatasetReference = new Dataset.Builder(bigquery, DATASET_ID) .setAcl(ACCESS_RULES) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java index af14108032e3..010278119011 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java @@ -16,20 +16,20 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.common.collect.ImmutableList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class DatastoreBackupOptionsTest { +class DatastoreBackupOptionsTest { private static final List PROJECTION_FIELDS = ImmutableList.of("field1", "field2"); private static final DatastoreBackupOptions BACKUP_OPTIONS = DatastoreBackupOptions.newBuilder().setProjectionFields(PROJECTION_FIELDS).build(); @Test - public void testToBuilder() { + void testToBuilder() { compareDatastoreBackupOptions(BACKUP_OPTIONS, BACKUP_OPTIONS.toBuilder().build()); List fields = ImmutableList.of("field1", "field2"); DatastoreBackupOptions backupOptions = @@ -40,14 +40,14 @@ public void testToBuilder() { } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { DatastoreBackupOptions backupOptions = DatastoreBackupOptions.newBuilder().setProjectionFields(PROJECTION_FIELDS).build(); assertEquals(backupOptions, backupOptions.toBuilder().build()); } @Test - public void testBuilder() { + void testBuilder() { assertEquals(FormatOptions.DATASTORE_BACKUP, BACKUP_OPTIONS.getType()); assertEquals(PROJECTION_FIELDS, BACKUP_OPTIONS.getProjectionFields()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DmlStatsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DmlStatsTest.java index 48950831a46e..f165b60e3902 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DmlStatsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DmlStatsTest.java @@ -16,9 +16,9 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class DmlStatsTest { @@ -33,14 +33,14 @@ public class DmlStatsTest { .build(); @Test - public void testBuilder() { + void testBuilder() { assertEquals(DELETED_ROW_COUNT, DML_STATS.getDeletedRowCount()); assertEquals(UPDATED_ROW_COUNT, DML_STATS.getUpdatedRowCount()); assertEquals(INSERTED_ROW_COUNT, DML_STATS.getInsertedRowCount()); } @Test - public void testToPbAndFromPb() { + void testToPbAndFromPb() { compareDmlStats(DML_STATS, DmlStats.fromPb(DML_STATS.toPb())); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalDatasetReferenceTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalDatasetReferenceTest.java index 6d241948b893..26dfcd5dcc91 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalDatasetReferenceTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalDatasetReferenceTest.java @@ -16,10 +16,10 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ExternalDatasetReferenceTest { private static final String EXTERNAL_SOURCE = "test_source"; @@ -31,7 +31,7 @@ public class ExternalDatasetReferenceTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareExternalDatasetReference( EXTERNAL_DATASET_REFERENCE, EXTERNAL_DATASET_REFERENCE.toBuilder().build()); ExternalDatasetReference externalDatasetReference = @@ -40,7 +40,7 @@ public void testToBuilder() { } @Test - public void testBuilder() { + void testBuilder() { assertEquals(EXTERNAL_SOURCE, EXTERNAL_DATASET_REFERENCE.getExternalSource()); assertEquals(CONNECTION, EXTERNAL_DATASET_REFERENCE.getConnection()); ExternalDatasetReference externalDatasetReference = @@ -52,7 +52,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { ExternalDatasetReference externalDatasetReference = EXTERNAL_DATASET_REFERENCE.toBuilder().build(); assertTrue( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index cb7578c75a0a..480b8a497213 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -16,16 +16,15 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; import com.google.cloud.bigquery.ExternalTableDefinition.SourceColumnMatch; import com.google.common.collect.ImmutableList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class ExternalTableDefinitionTest { +class ExternalTableDefinitionTest { private static final List SOURCE_URIS = ImmutableList.of("uri1", "uri2"); private static final List DECIMAL_TARGET_TYPES = @@ -98,7 +97,7 @@ public class ExternalTableDefinitionTest { ExternalTableDefinition.newBuilder(SOURCE_URIS, TABLE_SCHEMA, PARQUET_OPTIONS).build(); @Test - public void testToBuilder() { + void testToBuilder() { compareExternalTableDefinition( EXTERNAL_TABLE_DEFINITION, EXTERNAL_TABLE_DEFINITION.toBuilder().build()); ExternalTableDefinition externalTableDefinition = @@ -117,23 +116,21 @@ public void testToBuilder() { } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { ExternalTableDefinition externalTableDefinition = ExternalTableDefinition.of(SOURCE_URIS, TABLE_SCHEMA, FormatOptions.json()); assertEquals(externalTableDefinition, externalTableDefinition.toBuilder().build()); } @Test - public void testTypeNullPointerException() { - try { - EXTERNAL_TABLE_DEFINITION.toBuilder().setType(null).build(); - } catch (NullPointerException ex) { - assertNotNull(ex.getMessage()); - } + void testTypeNullPointerException() { + org.junit.jupiter.api.Assertions.assertThrows( + NullPointerException.class, + () -> EXTERNAL_TABLE_DEFINITION.toBuilder().setType(null).build()); } @Test - public void testBuilder() { + void testBuilder() { assertEquals(TableDefinition.Type.EXTERNAL, EXTERNAL_TABLE_DEFINITION.getType()); assertEquals(COMPRESSION, EXTERNAL_TABLE_DEFINITION.getCompression()); assertEquals(CONNECTION_ID, EXTERNAL_TABLE_DEFINITION.getConnectionId()); @@ -157,7 +154,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareExternalTableDefinition( EXTERNAL_TABLE_DEFINITION, ExternalTableDefinition.fromPb(EXTERNAL_TABLE_DEFINITION.toPb())); @@ -168,7 +165,7 @@ public void testToAndFromPb() { } @Test - public void testToAndFromPbParquet() { + void testToAndFromPbParquet() { compareExternalTableDefinition( EXTERNAL_TABLE_DEFINITION_PARQUET, ExternalTableDefinition.fromPb(EXTERNAL_TABLE_DEFINITION_PARQUET.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java index 2bf1e80a2351..d7ce318f1b0b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java @@ -16,15 +16,15 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import java.util.List; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ExtractJobConfigurationTest { @@ -88,7 +88,7 @@ public class ExtractJobConfigurationTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareExtractJobConfiguration( EXTRACT_CONFIGURATION, EXTRACT_CONFIGURATION.toBuilder().build()); ExtractJobConfiguration job = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java index cf217b25c722..7821b93219ae 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java @@ -15,10 +15,10 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.api.services.bigquery.model.QueryParameterType; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class FieldElementTypeTest { private static final FieldElementType FIELD_ELEMENT_TYPE = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java index 999bbf1b0223..9f6371642794 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java @@ -16,13 +16,14 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class FieldListTest { +class FieldListTest { private static final String FIELD_NAME1 = "StringField"; private static final String FIELD_NAME2 = "IntegerField"; private static final String FIELD_NAME3 = "RecordField"; @@ -63,7 +64,7 @@ public class FieldListTest { private final FieldList fieldsSchema = FieldList.of(fieldSchema1, fieldSchema2, fieldSchema3); @Test - public void testGetByName() { + void testGetByName() { assertEquals(fieldSchema1, fieldsSchema.get(FIELD_NAME1)); assertEquals(fieldSchema2, fieldsSchema.get(FIELD_NAME2)); assertEquals(fieldSchema3, fieldsSchema.get(FIELD_NAME3)); @@ -76,34 +77,26 @@ public void testGetByName() { assertEquals(3, fieldsSchema.size()); - IllegalArgumentException exception = null; - try { - fieldsSchema.get(FIELD_NAME4); - } catch (IllegalArgumentException e) { - exception = e; - } + IllegalArgumentException exception = + assertThrows(IllegalArgumentException.class, () -> fieldsSchema.get(FIELD_NAME4)); assertNotNull(exception); } @Test - public void testGetByIndex() { + void testGetByIndex() { assertEquals(fieldSchema1, fieldsSchema.get(0)); assertEquals(fieldSchema2, fieldsSchema.get(1)); assertEquals(fieldSchema3, fieldsSchema.get(2)); assertEquals(3, fieldsSchema.size()); - IndexOutOfBoundsException exception = null; - try { - fieldsSchema.get(4); - } catch (IndexOutOfBoundsException e) { - exception = e; - } + IndexOutOfBoundsException exception = + assertThrows(IndexOutOfBoundsException.class, () -> fieldsSchema.get(4)); assertNotNull(exception); } @Test - public void testGetRecordSchema() { + void testGetRecordSchema() { assertEquals(2, fieldSchema3.getSubFields().size()); assertEquals(fieldSchema1, fieldSchema3.getSubFields().get(FIELD_NAME1)); assertEquals(fieldSchema2, fieldSchema3.getSubFields().get(FIELD_NAME2)); @@ -122,7 +115,7 @@ public void testGetRecordSchema() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { assertEquals(fieldsSchema, FieldList.of(fieldSchema1, fieldSchema2, fieldSchema3)); assertNotEquals(fieldsSchema, FieldList.of(fieldSchema1, fieldSchema3)); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java index d7c5e25a2e1c..72f8bb3e8234 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java @@ -16,15 +16,15 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class FieldTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java index 5ade7c229827..dd5092b1c102 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java @@ -16,9 +16,10 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import com.google.api.client.util.Data; import com.google.api.services.bigquery.model.TableCell; @@ -28,9 +29,9 @@ import com.google.common.io.BaseEncoding; import java.util.List; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class FieldValueListTest { +class FieldValueListTest { private static final byte[] BYTES = {0xD, 0xE, 0xA, 0xD}; private static final String BYTES_BASE64 = BaseEncoding.base64().encode(BYTES); private static final TableCell booleanPb = new TableCell().setV("false"); @@ -138,7 +139,7 @@ public class FieldValueListTest { schemaLosslessTimestamp); @Test - public void testFromPb() { + void testFromPb() { assertEquals(fieldValues, FieldValueList.fromPb(fieldValuesPb, schema)); // Schema does not influence values equality assertEquals(fieldValues, FieldValueList.fromPb(fieldValuesPb, null)); @@ -151,7 +152,7 @@ public void testFromPb() { } @Test - public void testGetByIndex() { + void testGetByIndex() { assertEquals(11, fieldValues.size()); assertEquals(booleanFv, fieldValues.get(0)); assertEquals(integerFv, fieldValues.get(1)); @@ -173,7 +174,7 @@ public void testGetByIndex() { } @Test - public void testGetByName() { + void testGetByName() { assertEquals(11, fieldValues.size()); assertEquals(booleanFv, fieldValues.get("first")); assertEquals(integerFv, fieldValues.get("second")); @@ -195,7 +196,7 @@ public void testGetByName() { } @Test - public void testNullSchema() { + void testNullSchema() { FieldValueList fieldValuesNoSchema = FieldValueList.of( ImmutableList.of( @@ -213,25 +214,15 @@ public void testNullSchema() { assertEquals(fieldValues, fieldValuesNoSchema); - UnsupportedOperationException exception = null; - try { - fieldValuesNoSchema.get("first"); - } catch (UnsupportedOperationException e) { - exception = e; - } - + UnsupportedOperationException exception = + assertThrows(UnsupportedOperationException.class, () -> fieldValuesNoSchema.get("first")); assertNotNull(exception); } @Test - public void testGetNonExistentField() { - IllegalArgumentException exception = null; - try { - fieldValues.get("nonexistent"); - } catch (IllegalArgumentException e) { - exception = e; - } - + void testGetNonExistentField() { + IllegalArgumentException exception = + assertThrows(IllegalArgumentException.class, () -> fieldValues.get("nonexistent")); assertNotNull(exception); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java index 4ec527f7ce7e..958e20659868 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java @@ -16,11 +16,11 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.api.client.util.Data; import com.google.api.services.bigquery.model.TableCell; @@ -33,7 +33,7 @@ import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.threeten.extra.PeriodDuration; public class FieldValueTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java index 1ebd93ef42d2..2dfacda542f4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java @@ -16,14 +16,14 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; import java.util.Collections; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class ForeignKeyTest { +class ForeignKeyTest { private static final TableId TABLE_ID = TableId.of("project", "dataset", "table"); private static final ColumnReference COLUMN_REFERENCE = @@ -39,7 +39,7 @@ public class ForeignKeyTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareForeignKeyDefinition(FOREIGN_KEY, FOREIGN_KEY.toBuilder().build()); TableId referencedTable = TableId.of("project1", "dataset1", "table1"); ArrayList columnReferences = new ArrayList<>(); @@ -65,7 +65,7 @@ public void testToBuilder() { } @Test - public void testBuilder() { + void testBuilder() { assertEquals("foreign_key", FOREIGN_KEY.getName()); assertEquals(TABLE_ID, FOREIGN_KEY.getReferencedTable()); assertEquals(Collections.singletonList(COLUMN_REFERENCE), FOREIGN_KEY.getColumnReferences()); @@ -80,7 +80,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { ForeignKey foreignKey = FOREIGN_KEY.toBuilder().build(); assertTrue(ForeignKey.fromPb(foreignKey.toPb()) instanceof ForeignKey); compareForeignKeyDefinition(foreignKey, ForeignKey.fromPb(foreignKey.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java index d3cfb6e3303f..e8642e86e2c9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java @@ -16,9 +16,9 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class FormatOptionsTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java index efbee79b69df..7aae673d3d8b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java @@ -18,7 +18,7 @@ import static com.google.common.truth.Truth.assertThat; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class GoogleSheetsOptionsTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java index 51baf918b8f2..401ab07b72e9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java @@ -20,9 +20,9 @@ import java.util.Arrays; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class HivePartitioningOptionsTest { +class HivePartitioningOptionsTest { private static final String MODE = "STRING"; private static final String SOURCE_URI_PREFIX = "gs://bucket/path_to_table"; @@ -37,7 +37,7 @@ public class HivePartitioningOptionsTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareHivePartitioningOptions( HIVE_PARTITIONING_OPTIONS, HIVE_PARTITIONING_OPTIONS.toBuilder().build()); HivePartitioningOptions options = HIVE_PARTITIONING_OPTIONS.toBuilder().setMode("AUTO").build(); @@ -47,13 +47,13 @@ public void testToBuilder() { } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { HivePartitioningOptions options = HivePartitioningOptions.newBuilder().build(); compareHivePartitioningOptions(options, options.toBuilder().build()); } @Test - public void testBuilder() { + void testBuilder() { assertThat(HIVE_PARTITIONING_OPTIONS.getMode()).isEqualTo(MODE); assertThat(HIVE_PARTITIONING_OPTIONS.getRequirePartitionFilter()) .isEqualTo(REQUIRE_PARTITION_FILTER); @@ -61,7 +61,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareHivePartitioningOptions( HIVE_PARTITIONING_OPTIONS, HivePartitioningOptions.fromPb(HIVE_PARTITIONING_OPTIONS.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java index 4ee1ca13f336..d687e75b3447 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java @@ -17,6 +17,7 @@ package com.google.cloud.bigquery; import static com.google.common.truth.Truth.assertThat; +import static org.junit.jupiter.api.Assertions.assertThrows; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; @@ -24,7 +25,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class InsertAllRequestTest { @@ -214,11 +215,11 @@ public void testEquals() { compareInsertAllRequest(INSERT_ALL_REQUEST11, INSERT_ALL_REQUEST11); } - @Test(expected = UnsupportedOperationException.class) + @Test public void testImmutable() { - InsertAllRequest.RowToInsert row = - InsertAllRequest.RowToInsert.of(new HashMap()); - row.getContent().put("zip", "zap"); + InsertAllRequest.RowToInsert row = InsertAllRequest.RowToInsert.of(new HashMap<>()); + + assertThrows(UnsupportedOperationException.class, () -> row.getContent().put("zip", "zap")); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java index b39066a6a2be..9b30e25860b1 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java @@ -16,16 +16,16 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import java.util.List; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class InsertAllResponseTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java index 05ae7cefe4d2..7934ad1204d6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java @@ -16,17 +16,17 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class JobIdTest { +class JobIdTest { private static final JobId JOB = JobId.of("job"); private static final JobId JOB_COMPLETE = JobId.of("project", "job"); @Test - public void testOf() { + void testOf() { assertEquals(null, JOB.getProject()); assertEquals("job", JOB.getJob()); assertEquals("project", JOB_COMPLETE.getProject()); @@ -34,19 +34,19 @@ public void testOf() { } @Test - public void testEquals() { + void testEquals() { compareJobs(JOB, JobId.of("job")); compareJobs(JOB_COMPLETE, JobId.of("project", "job")); } @Test - public void testToPbAndFromPb() { + void testToPbAndFromPb() { compareJobs(JOB, JobId.fromPb(JOB.toPb())); compareJobs(JOB_COMPLETE, JobId.fromPb(JOB_COMPLETE.toPb())); } @Test - public void testSetProjectId() { + void testSetProjectId() { assertEquals(JOB_COMPLETE, JOB.setProjectId("project")); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java index 71825f0a5451..6c7f9b245c67 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java @@ -16,10 +16,10 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; @@ -32,7 +32,7 @@ import com.google.common.collect.ImmutableMap; import java.util.List; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class JobInfoTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index 2a1353f5d84d..289548113b34 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -17,7 +17,7 @@ package com.google.cloud.bigquery; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.cloud.bigquery.JobStatistics.CopyStatistics; import com.google.cloud.bigquery.JobStatistics.ExtractStatistics; @@ -33,7 +33,7 @@ import com.google.common.collect.ImmutableList; import java.util.List; import java.util.UUID; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class JobStatisticsTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java index bb463d1cec33..1c20b7240403 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java @@ -16,13 +16,13 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.common.collect.ImmutableList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class JobStatusTest { +class JobStatusTest { private static final JobStatus.State STATE = JobStatus.State.DONE; private static final BigQueryError ERROR = @@ -36,7 +36,7 @@ public class JobStatusTest { private static final JobStatus JOB_STATUS_INCOMPLETE2 = new JobStatus(STATE, null, null); @Test - public void testConstructor() { + void testConstructor() { assertEquals(STATE, JOB_STATUS.getState()); assertEquals(ERROR, JOB_STATUS.getError()); assertEquals(ALL_ERRORS, JOB_STATUS.getExecutionErrors()); @@ -51,7 +51,7 @@ public void testConstructor() { } @Test - public void testToPbAndFromPb() { + void testToPbAndFromPb() { compareStatus(JOB_STATUS, JobStatus.fromPb(JOB_STATUS.toPb())); compareStatus(JOB_STATUS_INCOMPLETE1, JobStatus.fromPb(JOB_STATUS_INCOMPLETE1.toPb())); compareStatus(JOB_STATUS_INCOMPLETE2, JobStatus.fromPb(JOB_STATUS_INCOMPLETE2.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index e6d249af466f..f85c2f76c40f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -18,14 +18,14 @@ import static com.google.common.collect.ObjectArrays.concat; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; @@ -42,16 +42,13 @@ import com.google.cloud.bigquery.JobStatus.State; import com.google.common.collect.ImmutableList; import java.time.Duration; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnitRunner; -import org.mockito.junit.MockitoRule; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(MockitoJUnitRunner.class) -public class JobTest { +@ExtendWith(MockitoExtension.class) +class JobTest { private static final JobId JOB_ID = JobId.of("project", "job"); private static final TableId TABLE_ID1 = TableId.of("dataset", "table1"); @@ -94,15 +91,13 @@ public class JobTest { .retryOnMessage(BigQueryErrorMessages.RATE_LIMIT_EXCEEDED_MSG) .build(); - @Rule public MockitoRule rule; - private BigQuery bigquery; private BigQueryOptions mockOptions; private Job expectedJob; private Job job; - @Before - public void setUp() { + @BeforeEach + void setUp() { bigquery = mock(BigQuery.class); mockOptions = mock(BigQueryOptions.class); when(bigquery.getOptions()).thenReturn(mockOptions); @@ -111,7 +106,7 @@ public void setUp() { } @Test - public void testBuilder() { + void testBuilder() { Job builtJob = new Job.Builder(bigquery, COPY_CONFIGURATION) .setJobId(JOB_ID) @@ -135,12 +130,12 @@ public void testBuilder() { } @Test - public void testToBuilder() { + void testToBuilder() { compareJob(expectedJob, expectedJob.toBuilder().build()); } @Test - public void testExists_True() { + void testExists_True() { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields()}; when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(expectedJob); assertTrue(job.exists()); @@ -148,7 +143,7 @@ public void testExists_True() { } @Test - public void testExists_False() { + void testExists_False() { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields()}; when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(null); assertFalse(job.exists()); @@ -156,14 +151,14 @@ public void testExists_False() { } @Test - public void testIsDone_True() { + void testIsDone_True() { Job job = expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.DONE)).build(); assertTrue(job.isDone()); verify(bigquery, times(0)).getJob(eq(JOB_INFO.getJobId()), any()); } @Test - public void testIsDone_False() { + void testIsDone_False() { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; Job job = expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(job); @@ -172,7 +167,7 @@ public void testIsDone_False() { } @Test - public void testIsDone_NotExists() { + void testIsDone_NotExists() { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; Job jobWithRunningState = expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); @@ -182,7 +177,7 @@ public void testIsDone_NotExists() { } @Test - public void testWaitFor() throws InterruptedException { + void testWaitFor() throws InterruptedException { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; JobStatus status = mock(JobStatus.class); when(status.getState()).thenReturn(JobStatus.State.DONE); @@ -199,7 +194,7 @@ public void testWaitFor() throws InterruptedException { } @Test - public void testWaitForAndGetQueryResultsEmpty() throws InterruptedException { + void testWaitForAndGetQueryResultsEmpty() throws InterruptedException { QueryStatistics jobStatistics = QueryStatistics.newBuilder() .setCreationTimestamp(1L) @@ -243,7 +238,7 @@ public void testWaitForAndGetQueryResultsEmpty() throws InterruptedException { } @Test - public void testWaitForAndGetQueryResultsEmptyWithSchema() throws InterruptedException { + void testWaitForAndGetQueryResultsEmptyWithSchema() throws InterruptedException { QueryStatistics jobStatistics = QueryStatistics.newBuilder() .setCreationTimestamp(1L) @@ -288,7 +283,7 @@ public void testWaitForAndGetQueryResultsEmptyWithSchema() throws InterruptedExc } @Test - public void testWaitForAndGetQueryResults() throws InterruptedException { + void testWaitForAndGetQueryResults() throws InterruptedException { QueryStatistics jobStatistics = QueryStatistics.newBuilder() .setCreationTimestamp(1L) @@ -340,17 +335,14 @@ public void testWaitForAndGetQueryResults() throws InterruptedException { } @Test - public void testWaitForAndGetQueryResults_Unsupported() throws InterruptedException { - try { - job.getQueryResults(); - Assert.fail(); - } catch (UnsupportedOperationException expected) { - Assert.assertNotNull(expected.getMessage()); - } + void testWaitForAndGetQueryResults_Unsupported() throws InterruptedException { + UnsupportedOperationException expected = + assertThrows(UnsupportedOperationException.class, () -> job.getQueryResults()); + assertNotNull(expected.getMessage()); } @Test - public void testWaitFor_Null() throws InterruptedException { + void testWaitFor_Null() throws InterruptedException { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(null); @@ -359,7 +351,7 @@ public void testWaitFor_Null() throws InterruptedException { } @Test - public void testWaitForWithCheckingPeriod() throws InterruptedException { + void testWaitForWithCheckingPeriod() throws InterruptedException { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; JobStatus status = mock(JobStatus.class); when(status.getState()).thenReturn(JobStatus.State.RUNNING); @@ -381,7 +373,7 @@ public void testWaitForWithCheckingPeriod() throws InterruptedException { } @Test - public void testWaitForWithCheckingPeriod_Null() throws InterruptedException { + void testWaitForWithCheckingPeriod_Null() throws InterruptedException { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); Job runningJob = @@ -394,24 +386,26 @@ public void testWaitForWithCheckingPeriod_Null() throws InterruptedException { } @Test - public void testWaitForWithTimeout() throws InterruptedException { + void testWaitForWithTimeout() throws InterruptedException { BigQuery.JobOption[] expectedOptions = {BigQuery.JobOption.fields(BigQuery.JobField.STATUS)}; when(mockOptions.getClock()).thenReturn(CurrentMillisClock.getDefaultClock()); Job runningJob = expectedJob.toBuilder().setStatus(new JobStatus(JobStatus.State.RUNNING)).build(); when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(runningJob); when(bigquery.getJob(JOB_INFO.getJobId(), expectedOptions)).thenReturn(runningJob); - try { - job.waitFor( - concat(TEST_RETRY_OPTIONS, RetryOption.totalTimeoutDuration(Duration.ofMillis(3)))); - Assert.fail(); - } catch (BigQueryException expected) { - Assert.assertNotNull(expected.getMessage()); - } + BigQueryException expected = + assertThrows( + BigQueryException.class, + () -> + job.waitFor( + concat( + TEST_RETRY_OPTIONS, + RetryOption.totalTimeoutDuration(Duration.ofMillis(3))))); + assertNotNull(expected.getMessage()); } @Test - public void testWaitForWithBigQueryRetryConfig() throws InterruptedException { + void testWaitForWithBigQueryRetryConfig() throws InterruptedException { QueryStatistics jobStatistics = QueryStatistics.newBuilder() .setCreationTimestamp(1L) @@ -453,7 +447,7 @@ public void testWaitForWithBigQueryRetryConfig() throws InterruptedException { } @Test - public void testWaitForWithBigQueryRetryConfigShouldRetry() throws InterruptedException { + void testWaitForWithBigQueryRetryConfigShouldRetry() throws InterruptedException { QueryStatistics jobStatistics = QueryStatistics.newBuilder() .setCreationTimestamp(1L) @@ -504,7 +498,7 @@ public void testWaitForWithBigQueryRetryConfigShouldRetry() throws InterruptedEx } @Test - public void testWaitForWithBigQueryRetryConfigErrorShouldNotRetry() throws InterruptedException { + void testWaitForWithBigQueryRetryConfigErrorShouldNotRetry() throws InterruptedException { QueryStatistics jobStatistics = QueryStatistics.newBuilder() .setCreationTimestamp(1L) @@ -542,19 +536,18 @@ public void testWaitForWithBigQueryRetryConfigErrorShouldNotRetry() throws Inter .thenThrow(bigQueryException) .thenReturn(completedQuery); job = this.job.toBuilder().setConfiguration(DRL_QUERY_CONFIGURATION).build(); - try { - job.waitFor(TEST_BIGQUERY_RETRY_CONFIG, TEST_RETRY_OPTIONS); - fail("JobException expected"); - } catch (BigQueryException e) { - assertNotNull(e.getErrors()); - } + BigQueryException e = + assertThrows( + BigQueryException.class, + () -> job.waitFor(TEST_BIGQUERY_RETRY_CONFIG, TEST_RETRY_OPTIONS)); + assertNotNull(e.getErrors()); // Verify that getQueryResults is attempted only once and not retried since the error message // does not match. verify(bigquery, times(1)).getQueryResults(jobInfo.getJobId(), Job.DEFAULT_QUERY_WAIT_OPTIONS); } @Test - public void testReload() { + void testReload() { JobInfo updatedInfo = JOB_INFO.toBuilder().setEtag("etag").build(); Job expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(updatedInfo)); when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(expectedJob); @@ -564,7 +557,7 @@ public void testReload() { } @Test - public void testReloadJobException() { + void testReloadJobException() { JobInfo updatedInfo = JOB_INFO.toBuilder().setEtag("etag").build(); Job expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(updatedInfo)); BigQueryError bigQueryError = new BigQueryError("invalidQuery", "US", "invalidQuery"); @@ -573,23 +566,19 @@ public void testReloadJobException() { ImmutableList bigQueryErrorList = ImmutableList.of(bigQueryError); BigQueryException bigQueryException = new BigQueryException(bigQueryErrorList); when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(expectedJob).thenThrow(bigQueryException); - try { - job.reload(); - fail("JobException expected"); - } catch (BigQueryException e) { - assertNotNull(e.getErrors()); - } + BigQueryException e = assertThrows(BigQueryException.class, () -> job.reload()); + assertNotNull(e.getErrors()); } @Test - public void testReloadNull() { + void testReloadNull() { when(bigquery.getJob(JOB_INFO.getJobId())).thenReturn(null); assertNull(job.reload()); verify(bigquery).getJob(JOB_INFO.getJobId()); } @Test - public void testReloadWithOptions() { + void testReloadWithOptions() { JobInfo updatedInfo = JOB_INFO.toBuilder().setEtag("etag").build(); Job expectedJob = new Job(bigquery, new JobInfo.BuilderImpl(updatedInfo)); when(bigquery.getJob(JOB_INFO.getJobId(), BigQuery.JobOption.fields())).thenReturn(expectedJob); @@ -599,24 +588,24 @@ public void testReloadWithOptions() { } @Test - public void testCancel() { + void testCancel() { when(bigquery.cancel(JOB_INFO.getJobId())).thenReturn(true); assertTrue(job.cancel()); verify(bigquery).cancel(JOB_INFO.getJobId()); } @Test - public void testBigQuery() { + void testBigQuery() { assertSame(bigquery, expectedJob.getBigQuery()); } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareJob(expectedJob, Job.fromPb(bigquery, expectedJob.toPb())); } @Test - public void testToAndFromPbWithoutConfiguration() { + void testToAndFromPbWithoutConfiguration() { assertNotEquals(expectedJob, bigquery); compareJob(expectedJob, Job.fromPb(bigquery, expectedJob.toPb())); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index d987eb28e073..1a9db2995154 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -16,7 +16,7 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; @@ -28,9 +28,9 @@ import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class LoadJobConfigurationTest { +class LoadJobConfigurationTest { private static final String TEST_PROJECT_ID = "test-project-id"; private static final CsvOptions CSV_OPTIONS = @@ -168,7 +168,7 @@ public class LoadJobConfigurationTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareLoadJobConfiguration(LOAD_CONFIGURATION_CSV, LOAD_CONFIGURATION_CSV.toBuilder().build()); LoadJobConfiguration configurationCSV = LOAD_CONFIGURATION_CSV.toBuilder() @@ -200,7 +200,7 @@ public void testToBuilder() { } @Test - public void testOf() { + void testOf() { LoadJobConfiguration configuration = LoadJobConfiguration.of(TABLE_ID, SOURCE_URIS); assertEquals(TABLE_ID, configuration.getDestinationTable()); assertEquals(SOURCE_URIS, configuration.getSourceUris()); @@ -220,13 +220,13 @@ public void testOf() { } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { LoadJobConfiguration configuration = LoadJobConfiguration.of(TABLE_ID, SOURCE_URIS); compareLoadJobConfiguration(configuration, configuration.toBuilder().build()); } @Test - public void testToPbAndFromPb() { + void testToPbAndFromPb() { compareLoadJobConfiguration( LOAD_CONFIGURATION_CSV, LoadJobConfiguration.fromPb(LOAD_CONFIGURATION_CSV.toPb())); LoadJobConfiguration configuration = LoadJobConfiguration.of(TABLE_ID, SOURCE_URIS); @@ -234,13 +234,13 @@ public void testToPbAndFromPb() { } @Test - public void testSetProjectId() { + void testSetProjectId() { LoadConfiguration configuration = LOAD_CONFIGURATION_CSV.setProjectId(TEST_PROJECT_ID); assertEquals(TEST_PROJECT_ID, configuration.getDestinationTable().getProject()); } @Test - public void testSetProjectIdDoNotOverride() { + void testSetProjectIdDoNotOverride() { LoadConfiguration configuration = LOAD_CONFIGURATION_CSV.toBuilder() .setDestinationTable(TABLE_ID.setProjectId(TEST_PROJECT_ID)) @@ -250,7 +250,7 @@ public void testSetProjectIdDoNotOverride() { } @Test - public void testGetType() { + void testGetType() { assertEquals(JobConfiguration.Type.LOAD, LOAD_CONFIGURATION_CSV.getType()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java index eef4324a0e33..00ac64937fb6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java @@ -16,11 +16,11 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.common.collect.ImmutableList; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class MaterializedViewDefinitionTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java index 266a754c4455..98df2d5f2694 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java @@ -16,17 +16,17 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class ModelIdTest { +class ModelIdTest { public static final ModelId MODEL = ModelId.of("dataset", "model"); public static final ModelId MODEL_COMPLETE = ModelId.of("project", "dataset", "model"); @Test - public void testOf() { + void testOf() { assertEquals(null, MODEL.getProject()); assertEquals("dataset", MODEL.getDataset()); assertEquals("model", MODEL.getModel()); @@ -37,19 +37,19 @@ public void testOf() { } @Test - public void testEquals() { + void testEquals() { compareModelIds(MODEL, ModelId.of("dataset", "model")); compareModelIds(MODEL_COMPLETE, ModelId.of("project", "dataset", "model")); } @Test - public void testToPbAndFromPb() { + void testToPbAndFromPb() { compareModelIds(MODEL, ModelId.fromPb(MODEL.toPb())); compareModelIds(MODEL_COMPLETE, ModelId.fromPb(MODEL_COMPLETE.toPb())); } @Test - public void testSetProjectId() { + void testSetProjectId() { ModelId differentProjectTable = ModelId.of("differentProject", "dataset", "model"); assertEquals(differentProjectTable, MODEL.setProjectId("differentProject")); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java index 87fa8bbf566c..be0e1ff23380 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java @@ -15,16 +15,16 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import com.google.api.services.bigquery.model.TrainingOptions; import com.google.api.services.bigquery.model.TrainingRun; import java.util.Arrays; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class ModelInfoTest { +class ModelInfoTest { private static final ModelId MODEL_ID = ModelId.of("dataset", "model"); private static final String ETAG = "etag"; @@ -57,18 +57,18 @@ public class ModelInfoTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareModelInfo(MODEL_INFO, MODEL_INFO.toBuilder().build()); } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { ModelInfo modelInfo = ModelInfo.of(MODEL_ID); assertEquals(modelInfo, modelInfo.toBuilder().build()); } @Test - public void testBuilder() { + void testBuilder() { assertEquals(ETAG, MODEL_INFO.getEtag()); assertEquals(CREATION_TIME, MODEL_INFO.getCreationTime()); assertEquals(LAST_MODIFIED_TIME, MODEL_INFO.getLastModifiedTime()); @@ -81,7 +81,7 @@ public void testBuilder() { } @Test - public void testOf() { + void testOf() { ModelInfo modelInfo = ModelInfo.of(MODEL_ID); assertEquals(MODEL_ID, modelInfo.getModelId()); assertNull(modelInfo.getEtag()); @@ -98,12 +98,12 @@ public void testOf() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareModelInfo(MODEL_INFO, ModelInfo.fromPb(MODEL_INFO.toPb())); } @Test - public void testSetProjectId() { + void testSetProjectId() { assertEquals("project", MODEL_INFO.setProjectId("project").getModelId().getProject()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTableDefinitionTest.java index 62b2cfe7d8ed..444d47c09307 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTableDefinitionTest.java @@ -16,14 +16,14 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; -public class ModelTableDefinitionTest { +class ModelTableDefinitionTest { private static final String LOCATION = "US"; private static final Long NUM_BYTES = 14L; @@ -52,34 +52,33 @@ public class ModelTableDefinitionTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareModelTableDefinition(MODEL_TABLE_DEFINITION, MODEL_TABLE_DEFINITION.toBuilder().build()); } @Test - public void testTypeNullPointerException() { - try { - MODEL_TABLE_DEFINITION.toBuilder().setType(null).build(); - fail(); - } catch (NullPointerException ex) { - assertNotNull(ex.getMessage()); - } + void testTypeNullPointerException() { + NullPointerException ex = + Assertions.assertThrows( + NullPointerException.class, + () -> MODEL_TABLE_DEFINITION.toBuilder().setType(null).build()); + assertNotNull(ex.getMessage()); } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { ModelTableDefinition modelTableDefinition = ModelTableDefinition.newBuilder().build(); assertEquals(modelTableDefinition, modelTableDefinition.toBuilder().build()); } @Test - public void testToAndFromPb() { + void testToAndFromPb() { assertEquals( MODEL_TABLE_DEFINITION, ModelTableDefinition.fromPb(MODEL_TABLE_DEFINITION.toPb())); } @Test - public void testBuilder() { + void testBuilder() { assertEquals(MODEL_TABLE_DEFINITION.getSchema(), TABLE_SCHEMA); assertEquals(MODEL_TABLE_DEFINITION.getType(), TableDefinition.Type.MODEL); assertEquals(MODEL_TABLE_DEFINITION.getLocation(), LOCATION); @@ -87,12 +86,12 @@ public void testBuilder() { } @Test - public void testEquals() { + void testEquals() { assertEquals(MODEL_TABLE_DEFINITION, MODEL_TABLE_DEFINITION); } @Test - public void testNotEquals() { + void testNotEquals() { assertNotEquals(MODEL_TABLE_DEFINITION, LOCATION); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java index 756277adc3f2..acdbdfbfe543 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java @@ -16,25 +16,23 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnitRunner; -import org.mockito.junit.MockitoRule; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(MockitoJUnitRunner.class) -public class ModelTest { +@ExtendWith(MockitoExtension.class) +class ModelTest { private static final ModelId MODEL_ID = ModelId.of("dataset", "model"); private static final String ETAG = "etag"; @@ -54,15 +52,13 @@ public class ModelTest { .setFriendlyName(FRIENDLY_NAME) .build(); - @Rule public MockitoRule rule; - private BigQuery bigquery; private BigQueryOptions mockOptions; private Model expectedModel; private Model model; - @Before - public void setUp() { + @BeforeEach + void setUp() { bigquery = mock(BigQuery.class); mockOptions = mock(BigQueryOptions.class); when(bigquery.getOptions()).thenReturn(mockOptions); @@ -71,7 +67,7 @@ public void setUp() { } @Test - public void testBuilder() { + void testBuilder() { Model builtModel = new Model.Builder(bigquery, MODEL_ID) .setEtag(ETAG) @@ -86,12 +82,12 @@ public void testBuilder() { } @Test - public void testToBuilder() { + void testToBuilder() { compareModelInfo(expectedModel, expectedModel.toBuilder().build()); } @Test - public void testExists_True() { + void testExists_True() { BigQuery.ModelOption[] expectedOptions = {BigQuery.ModelOption.fields()}; when(bigquery.getModel(MODEL_INFO.getModelId(), expectedOptions)).thenReturn(expectedModel); assertTrue(model.exists()); @@ -99,7 +95,7 @@ public void testExists_True() { } @Test - public void testExists_False() { + void testExists_False() { BigQuery.ModelOption[] expectedOptions = {BigQuery.ModelOption.fields()}; when(bigquery.getModel(MODEL_INFO.getModelId(), expectedOptions)).thenReturn(null); assertFalse(model.exists()); @@ -107,7 +103,7 @@ public void testExists_False() { } @Test - public void testReload() { + void testReload() { ModelInfo updatedInfo = MODEL_INFO.toBuilder().setDescription("Description").build(); Model expectedModel = new Model(bigquery, new ModelInfo.BuilderImpl(updatedInfo)); when(bigquery.getModel(MODEL_INFO.getModelId())).thenReturn(expectedModel); @@ -117,14 +113,14 @@ public void testReload() { } @Test - public void testReloadNull() { + void testReloadNull() { when(bigquery.getModel(MODEL_INFO.getModelId())).thenReturn(null); assertNull(model.reload()); verify(bigquery).getModel(MODEL_INFO.getModelId()); } @Test - public void testUpdate() { + void testUpdate() { Model expectedUpdatedModel = expectedModel.toBuilder().setDescription("Description").build(); when(bigquery.update(eq(expectedModel))).thenReturn(expectedUpdatedModel); Model actualUpdatedModel = model.update(); @@ -133,7 +129,7 @@ public void testUpdate() { } @Test - public void testUpdateWithOptions() { + void testUpdateWithOptions() { Model expectedUpdatedModel = expectedModel.toBuilder().setDescription("Description").build(); when(bigquery.update(eq(expectedModel), eq(BigQuery.ModelOption.fields()))) .thenReturn(expectedUpdatedModel); @@ -143,14 +139,14 @@ public void testUpdateWithOptions() { } @Test - public void testDeleteTrue() { + void testDeleteTrue() { when(bigquery.delete(MODEL_INFO.getModelId())).thenReturn(true); assertTrue(model.delete()); verify(bigquery).delete(MODEL_INFO.getModelId()); } @Test - public void testDeleteFalse() { + void testDeleteFalse() { when(bigquery.delete(MODEL_INFO.getModelId())).thenReturn(false); assertFalse(model.delete()); verify(bigquery).delete(MODEL_INFO.getModelId()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java index 58f314866749..b25f06706477 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java @@ -16,13 +16,13 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import com.google.cloud.bigquery.spi.v2.BigQueryRpc; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class OptionTest { @@ -54,11 +54,6 @@ public void testConstructor() { Option option = new Option(RPC_OPTION, null) {}; assertEquals(RPC_OPTION, option.getRpcOption()); assertNull(option.getValue()); - try { - new Option(null, VALUE) {}; - Assert.fail(); - } catch (NullPointerException expected) { - - } + Assertions.assertThrows(NullPointerException.class, () -> new Option(null, VALUE) {}); } } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java index c70ac3355ea6..b5ace223f1e0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java @@ -17,9 +17,9 @@ package com.google.cloud.bigquery; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class ParquetOptionsTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyHelperTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyHelperTest.java index 291df79fdeaf..ac05a2c1ff4d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyHelperTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyHelperTest.java @@ -15,16 +15,16 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.api.services.bigquery.model.Binding; import com.google.cloud.Identity; import com.google.cloud.Policy; import com.google.cloud.Role; import com.google.common.collect.ImmutableList; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class PolicyHelperTest { +class PolicyHelperTest { public static final String ETAG = "etag"; public static final String ROLE1 = "roles/bigquery.admin"; @@ -58,7 +58,7 @@ public class PolicyHelperTest { Policy.newBuilder().setEtag(ETAG).setVersion(1).build(); @Test - public void testConversionWithBindings() { + void testConversionWithBindings() { assertEquals(IAM_POLICY, PolicyHelper.convertFromApiPolicy(API_POLICY)); assertEquals(API_POLICY, PolicyHelper.convertToApiPolicy(IAM_POLICY)); assertEquals( @@ -68,7 +68,7 @@ public void testConversionWithBindings() { } @Test - public void testConversionNoBindings() { + void testConversionNoBindings() { assertEquals(IAM_POLICY_NO_BINDINGS, PolicyHelper.convertFromApiPolicy(API_POLICY_NO_BINDINGS)); assertEquals(API_POLICY_NO_BINDINGS, PolicyHelper.convertToApiPolicy(IAM_POLICY_NO_BINDINGS)); assertEquals( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java index f23cb36c2dd9..a94e4324befd 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java @@ -16,13 +16,13 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import com.google.common.collect.ImmutableList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class PolicyTagsTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PrimaryKeyTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PrimaryKeyTest.java index 2de87a025832..702ca5cb488a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PrimaryKeyTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PrimaryKeyTest.java @@ -16,19 +16,19 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.Arrays; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class PrimaryKeyTest { +class PrimaryKeyTest { private static final List COLUMNS = Arrays.asList("column1", "column2"); private static final PrimaryKey PRIMARY_KEY = PrimaryKey.newBuilder().setColumns(COLUMNS).build(); @Test - public void testToBuilder() { + void testToBuilder() { comparePrimaryKeyDefinition(PRIMARY_KEY, PRIMARY_KEY.toBuilder().build()); PrimaryKey primaryKey = PRIMARY_KEY.toBuilder().setColumns(Arrays.asList("col1", "col2", "col3")).build(); @@ -36,14 +36,14 @@ public void testToBuilder() { } @Test - public void testBuilder() { + void testBuilder() { assertEquals(COLUMNS, PRIMARY_KEY.getColumns()); PrimaryKey primaryKey = PRIMARY_KEY.newBuilder().setColumns(COLUMNS).build(); assertEquals(PRIMARY_KEY, primaryKey); } @Test - public void testToAndFromPb() { + void testToAndFromPb() { PrimaryKey primaryKey = PRIMARY_KEY.toBuilder().build(); assertTrue(PrimaryKey.fromPb(primaryKey.toPb()) instanceof PrimaryKey); comparePrimaryKeyDefinition(primaryKey, PrimaryKey.fromPb(primaryKey.toPb())); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index f25aa47edaaf..7fe41daa0608 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -16,9 +16,9 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.SchemaUpdateOption; @@ -31,7 +31,7 @@ import java.math.BigDecimal; import java.util.List; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class QueryJobConfigurationTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index 25649388e98b..276234246e8a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -18,7 +18,7 @@ import static com.google.cloud.bigquery.QueryParameterValue.TIMESTAMP_FORMATTER; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertThrows; import com.google.api.services.bigquery.model.QueryParameterType; import com.google.common.collect.ImmutableMap; @@ -32,8 +32,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.threeten.extra.PeriodDuration; public class QueryParameterValueTest { @@ -58,12 +57,11 @@ public void testBuilder() { @Test public void testTypeNullPointerException() { - try { - QUERY_PARAMETER_VALUE.toBuilder().setType(null).build(); - Assert.fail(); - } catch (NullPointerException ex) { - assertThat(ex).isNotNull(); - } + NullPointerException ex = + assertThrows( + NullPointerException.class, + () -> QUERY_PARAMETER_VALUE.toBuilder().setType(null).build()); + assertThat(ex).isNotNull(); } @Test @@ -407,10 +405,12 @@ public void testStandardDate() throws ParseException { assertThat(value.getArrayValues()).isNull(); } - @Test(expected = IllegalArgumentException.class) + @Test public void testInvalidDate() { // not supposed to have the time - QueryParameterValue.date("2014-08-19 12:41:35.220000"); + assertThrows( + IllegalArgumentException.class, + () -> QueryParameterValue.date("2014-08-19 12:41:35.220000")); } @Test @@ -422,10 +422,12 @@ public void testTime() { assertThat(value.getArrayValues()).isNull(); } - @Test(expected = IllegalArgumentException.class) + @Test public void testInvalidTime() { // not supposed to have the date - QueryParameterValue.time("2014-08-19 12:41:35.220000"); + assertThrows( + IllegalArgumentException.class, + () -> QueryParameterValue.time("2014-08-19 12:41:35.220000")); } @Test @@ -437,10 +439,10 @@ public void testDateTime() { assertThat(value.getArrayValues()).isNull(); } - @Test(expected = IllegalArgumentException.class) + @Test public void testInvalidDateTime() { // missing the time - QueryParameterValue.dateTime("2014-08-19"); + assertThrows(IllegalArgumentException.class, () -> QueryParameterValue.dateTime("2014-08-19")); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java index 866134677699..be1f0e1982f9 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java @@ -16,10 +16,10 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.api.services.bigquery.model.QueryRequest; import com.google.cloud.bigquery.JobInfo.CreateDisposition; @@ -31,7 +31,7 @@ import com.google.common.collect.ImmutableMap; import java.util.List; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class QueryRequestInfoTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java index bc7d6083be68..30eeb90ad4a7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java @@ -16,16 +16,16 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; import com.google.api.services.bigquery.model.ExplainQueryStep; import com.google.cloud.bigquery.QueryStage.QueryStep; import com.google.common.collect.ImmutableList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class QueryStageTest { +class QueryStageTest { private static final List SUBSTEPS1 = ImmutableList.of("substep1", "substep2"); private static final List SUBSTEPS2 = ImmutableList.of("substep3", "substep4"); @@ -96,7 +96,7 @@ public class QueryStageTest { .build(); @Test - public void testQueryStepConstructor() { + void testQueryStepConstructor() { assertEquals("KIND", QUERY_STEP1.getName()); assertEquals("KIND", QUERY_STEP2.getName()); assertEquals(SUBSTEPS1, QUERY_STEP1.getSubsteps()); @@ -104,7 +104,7 @@ public void testQueryStepConstructor() { } @Test - public void testBuilder() { + void testBuilder() { assertEquals(COMPLETED_PARALLEL_INPUTS, QUERY_STAGE.getCompletedParallelInputs()); assertEquals(COMPUTE_MS_AVG, QUERY_STAGE.getComputeMsAvg()); assertEquals(COMPUTE_MS_MAX, QUERY_STAGE.getComputeMsMax()); @@ -138,7 +138,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareQueryStep(QUERY_STEP1, QueryStep.fromPb(QUERY_STEP1.toPb())); compareQueryStep(QUERY_STEP2, QueryStep.fromPb(QUERY_STEP2.toPb())); compareQueryStage(QUERY_STAGE, QueryStage.fromPb(QUERY_STAGE.toPb())); @@ -149,14 +149,14 @@ public void testToAndFromPb() { } @Test - public void testEquals() { + void testEquals() { compareQueryStep(QUERY_STEP1, QUERY_STEP1); compareQueryStep(QUERY_STEP2, QUERY_STEP2); compareQueryStage(QUERY_STAGE, QUERY_STAGE); } @Test - public void testNotEquals() { + void testNotEquals() { assertNotEquals(QUERY_STAGE, QUERY_STEP1); assertNotEquals(QUERY_STEP1, QUERY_STAGE); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java index 2d98376b36ea..b72b4b70c23b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java @@ -15,11 +15,11 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.common.collect.ImmutableMap; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class RangeTest { private static final Range RANGE_DATE = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RemoteFunctionOptionsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RemoteFunctionOptionsTest.java index 8ee0e4564f98..a3559f5cfcb7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RemoteFunctionOptionsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RemoteFunctionOptionsTest.java @@ -15,13 +15,13 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.HashMap; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class RemoteFunctionOptionsTest { +class RemoteFunctionOptionsTest { private static final String endpoint = "https://aaabbbccc-uc.a.run.app"; private static final String connection = "projects/{projectId}/locations/{locationId}/connections/{connectionId}"; @@ -43,13 +43,13 @@ public class RemoteFunctionOptionsTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareRemoteFunctionOptions( REMOTE_FUNCTION_OPTIONS, REMOTE_FUNCTION_OPTIONS.toBuilder().build()); } @Test - public void testBuilder() { + void testBuilder() { assertEquals(endpoint, REMOTE_FUNCTION_OPTIONS.getEndpoint()); assertEquals(connection, REMOTE_FUNCTION_OPTIONS.getConnection()); assertEquals(userDefinedContext, REMOTE_FUNCTION_OPTIONS.getUserDefinedContext()); @@ -57,7 +57,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareRemoteFunctionOptions( REMOTE_FUNCTION_OPTIONS, RemoteFunctionOptions.fromPb(REMOTE_FUNCTION_OPTIONS.toPb())); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java index 909d5981d7f9..31a2c56de916 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java @@ -15,9 +15,9 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class RoutineArgumentTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java index 94a19fbfd573..2800f3caa614 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java @@ -15,9 +15,9 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class RoutineIdTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java index 145dc8914c92..f191cbedd03c 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java @@ -15,14 +15,14 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import com.google.common.collect.ImmutableList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class RoutineInfoTest { +class RoutineInfoTest { private static final RoutineId ROUTINE_ID = RoutineId.of("dataset", "routine"); private static final String ETAG = "etag"; @@ -68,18 +68,18 @@ public class RoutineInfoTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareRoutineInfo(ROUTINE_INFO, ROUTINE_INFO.toBuilder().build()); } @Test - public void testBuilderIncomplete() { + void testBuilderIncomplete() { RoutineInfo routineInfo = RoutineInfo.of(ROUTINE_ID); assertEquals(routineInfo, routineInfo.toBuilder().build()); } @Test - public void testBuilder() { + void testBuilder() { assertEquals(ROUTINE_ID, ROUTINE_INFO.getRoutineId()); assertEquals(ETAG, ROUTINE_INFO.getEtag()); assertEquals(ROUTINE_TYPE, ROUTINE_INFO.getRoutineType()); @@ -96,7 +96,7 @@ public void testBuilder() { } @Test - public void testOf() { + void testOf() { RoutineInfo routineInfo = RoutineInfo.of(ROUTINE_ID); assertEquals(ROUTINE_ID, ROUTINE_INFO.getRoutineId()); assertNull(routineInfo.getEtag()); @@ -114,12 +114,12 @@ public void testOf() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareRoutineInfo(ROUTINE_INFO, RoutineInfo.fromPb(ROUTINE_INFO.toPb())); } @Test - public void testSetProjectId() { + void testSetProjectId() { assertEquals("project", ROUTINE_INFO.setProjectId("project").getRoutineId().getProject()); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java index eaf142012078..839bfe5e6678 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java @@ -15,11 +15,11 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -29,14 +29,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnitRunner; -import org.mockito.junit.MockitoRule; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class RoutineTest { private static final RoutineId ROUTINE_ID = RoutineId.of("dataset", "routine"); @@ -116,15 +114,13 @@ public class RoutineTest { .setReturnTableType(RETURN_TABLE_TYPE) .build(); - @Rule public MockitoRule rule; - private BigQuery bigquery; private BigQueryOptions mockOptions; private Routine expectedRoutine; private Routine expectedRoutineTvf; private Routine routine; - @Before + @BeforeEach public void setUp() { bigquery = mock(BigQuery.class); mockOptions = mock(BigQueryOptions.class); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java index 7f53680e627b..9750fd7bd36f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java @@ -16,14 +16,14 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.api.services.bigquery.model.TableSchema; import com.google.common.collect.ImmutableList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class SchemaTest { +class SchemaTest { private static PolicyTags POLICY_TAGS = PolicyTags.newBuilder().setNames(ImmutableList.of("someTag")).build(); @@ -53,12 +53,12 @@ public class SchemaTest { private static final Schema TABLE_SCHEMA = Schema.of(FIELDS); @Test - public void testOf() { + void testOf() { compareTableSchema(TABLE_SCHEMA, Schema.of(FIELDS)); } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareTableSchema(TABLE_SCHEMA, Schema.fromPb(TABLE_SCHEMA.toPb())); } @@ -68,7 +68,7 @@ private void compareTableSchema(Schema expected, Schema value) { } @Test - public void testEmptySchema() { + void testEmptySchema() { TableSchema tableSchema = new TableSchema(); Schema schema = Schema.fromPb(tableSchema); assertEquals(0, schema.getFields().size()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SnapshotTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SnapshotTableDefinitionTest.java index c739bcf5a5c5..defcd9cb3999 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SnapshotTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SnapshotTableDefinitionTest.java @@ -16,12 +16,12 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class SnapshotTableDefinitionTest { +class SnapshotTableDefinitionTest { private static final TableId BASE_TABLE_ID = TableId.of("DATASET_NAME", "BASE_TABLE_NAME"); private static final String SNAPSHOT_TIME = "2021-05-19T11:32:26.553Z"; @@ -32,7 +32,7 @@ public class SnapshotTableDefinitionTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareSnapshotTableDefinition( SNAPSHOTTABLE_DEFINITION, SNAPSHOTTABLE_DEFINITION.toBuilder().build()); SnapshotTableDefinition snapshotTableDefinition = @@ -41,7 +41,7 @@ public void testToBuilder() { } @Test - public void testBuilder() { + void testBuilder() { assertEquals(TableDefinition.Type.SNAPSHOT, SNAPSHOTTABLE_DEFINITION.getType()); assertEquals(BASE_TABLE_ID, SNAPSHOTTABLE_DEFINITION.getBaseTableId()); assertEquals(SNAPSHOT_TIME, SNAPSHOTTABLE_DEFINITION.getSnapshotTime()); @@ -54,7 +54,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { SnapshotTableDefinition snapshotTableDefinition = SNAPSHOTTABLE_DEFINITION.toBuilder().build(); assertTrue( TableDefinition.fromPb(snapshotTableDefinition.toPb()) instanceof SnapshotTableDefinition); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java index 635a75612b94..ffc6311184c1 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java @@ -15,13 +15,13 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.common.collect.ImmutableList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class StandardSQLDataTypeTest { +class StandardSQLDataTypeTest { private static final String STRING_TYPEKIND = "STRING"; private static final String ARRAY_TYPEKIND = "ARRAY"; private static final String STRUCT_TYPEKIND = "STRUCT"; @@ -42,7 +42,7 @@ public class StandardSQLDataTypeTest { StandardSQLDataType.newBuilder(STRUCT_TYPEKIND).setStructType(STRUCT_TYPE).build(); @Test - public void testToBuilder() { + void testToBuilder() { compareStandardSQLDataType(STRING_DATA_TYPE, STRING_DATA_TYPE.toBuilder().build()); compareStandardSQLDataType( ARRAY_OF_STRING_DATA_TYPE, ARRAY_OF_STRING_DATA_TYPE.toBuilder().build()); @@ -50,7 +50,7 @@ public void testToBuilder() { } @Test - public void testBuilder() { + void testBuilder() { assertEquals(STRING_TYPEKIND, STRING_DATA_TYPE.getTypeKind()); assertEquals(ARRAY_TYPEKIND, ARRAY_OF_STRING_DATA_TYPE.getTypeKind()); assertEquals(STRING_DATA_TYPE, ARRAY_OF_STRING_DATA_TYPE.getArrayElementType()); @@ -58,7 +58,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareStandardSQLDataType( ARRAY_OF_STRING_DATA_TYPE, StandardSQLDataType.fromPb(ARRAY_OF_STRING_DATA_TYPE.toPb())); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java index 904ed80280f6..5e3af997d7c6 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java @@ -15,9 +15,9 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class StandardSQLFieldTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java index d4fa86950f02..ab88de3f0e83 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java @@ -15,13 +15,13 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.common.collect.ImmutableList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class StandardSQLStructTypeTest { +class StandardSQLStructTypeTest { private static final StandardSQLField FIELD_1 = StandardSQLField.newBuilder("FIELD_1", StandardSQLDataType.newBuilder("STRING").build()) @@ -35,18 +35,18 @@ public class StandardSQLStructTypeTest { StandardSQLStructType.newBuilder(FIELD_LIST).build(); @Test - public void testToBuilder() { + void testToBuilder() { compareStandardSQLStructType(STRUCT_TYPE, STRUCT_TYPE.toBuilder().build()); } @Test - public void testBuilder() { + void testBuilder() { assertEquals(FIELD_1, STRUCT_TYPE.getFields().get(0)); assertEquals(FIELD_2, STRUCT_TYPE.getFields().get(1)); } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareStandardSQLStructType(STRUCT_TYPE, StandardSQLStructType.fromPb(STRUCT_TYPE.toPb())); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLTableTypeTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLTableTypeTest.java index 2ed6e353543f..ce5a4992cdbb 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLTableTypeTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLTableTypeTest.java @@ -16,11 +16,11 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.common.collect.ImmutableList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class StandardSQLTableTypeTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java index 8fbe3cefe7a6..6ff0a366d193 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -16,12 +16,12 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.api.services.bigquery.model.Streamingbuffer; import com.google.api.services.bigquery.model.Table; @@ -29,7 +29,7 @@ import com.google.cloud.bigquery.StandardTableDefinition.StreamingBuffer; import com.google.common.collect.ImmutableList; import com.google.common.truth.Truth; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class StandardTableDefinitionTest { @@ -131,12 +131,10 @@ public void testBuilder() { @Test public void testTypeNullPointerException() { - try { - TABLE_DEFINITION.toBuilder().setType(null).build(); - fail(); - } catch (NullPointerException ex) { - assertNotNull(ex.getMessage()); - } + NullPointerException ex = + assertThrows( + NullPointerException.class, () -> TABLE_DEFINITION.toBuilder().setType(null).build()); + assertNotNull(ex.getMessage()); } @Test @@ -183,15 +181,12 @@ public void testFromPbWithUnexpectedTimePartitioningTypeRaisesInvalidArgumentExc .setTableId("ILLEGAL_ARG_TEST_TABLE")) .setTimePartitioning( new com.google.api.services.bigquery.model.TimePartitioning().setType("GHURRY")); - try { - StandardTableDefinition.fromPb(invalidTable); - } catch (IllegalArgumentException ie) { - Truth.assertThat(ie.getMessage()) - .contains( - "Illegal Argument - Got unexpected time partitioning GHURRY in project ILLEGAL_ARG_TEST_PROJECT in dataset ILLEGAL_ARG_TEST_DATASET in table ILLEGAL_ARG_TEST_TABLE"); - return; - } - fail("testFromPb illegal argument exception did not throw!"); + IllegalArgumentException ie = + assertThrows( + IllegalArgumentException.class, () -> StandardTableDefinition.fromPb(invalidTable)); + Truth.assertThat(ie.getMessage()) + .contains( + "Illegal Argument - Got unexpected time partitioning GHURRY in project ILLEGAL_ARG_TEST_PROJECT in dataset ILLEGAL_ARG_TEST_DATASET in table ILLEGAL_ARG_TEST_TABLE"); } @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java index 7d0f57ef7606..b074b2f22caa 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java @@ -16,16 +16,16 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class TableConstraintsTest { +class TableConstraintsTest { private static final List COLUMNS_PK = Arrays.asList("column1", "column2"); private static final PrimaryKey PRIMARY_KEY = PrimaryKey.newBuilder().setColumns(COLUMNS_PK).build(); @@ -50,7 +50,7 @@ public class TableConstraintsTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareTableConstraintsDefinition(TABLE_CONSTRAINTS, TABLE_CONSTRAINTS.toBuilder().build()); List columnsPk = Arrays.asList("col1", "col2", "col3"); PrimaryKey primaryKey = PrimaryKey.newBuilder().setColumns(columnsPk).build(); @@ -90,7 +90,7 @@ public void testToBuilder() { } @Test - public void testBuilder() { + void testBuilder() { assertEquals(Collections.singletonList(FOREIGN_KEY), TABLE_CONSTRAINTS.getForeignKeys()); assertEquals(PRIMARY_KEY, TABLE_CONSTRAINTS.getPrimaryKey()); TableConstraints tableConstraints = @@ -103,7 +103,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { TableConstraints tableConstraints = TABLE_CONSTRAINTS.toBuilder().build(); assertTrue(TableConstraints.fromPb(tableConstraints.toPb()) instanceof TableConstraints); compareTableConstraintsDefinition( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java index a90b5c4d7212..8752b27086b4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java @@ -16,11 +16,11 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; @@ -39,15 +39,17 @@ import java.nio.ByteBuffer; import java.util.Arrays; import java.util.Random; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) public class TableDataWriteChannelTest { private static final String UPLOAD_ID = "uploadid"; @@ -80,7 +82,7 @@ public class TableDataWriteChannelTest { private TableDataWriteChannel writer; - @Before + @BeforeEach public void setUp() { rpcFactoryMock = mock(BigQueryRpcFactory.class); bigqueryRpcMock = mock(HttpBigQueryRpc.class); @@ -142,12 +144,14 @@ public void testCreateNonRetryableError() throws IOException { .setJobReference(JOB_INFO.getJobId().toPb()) .setConfiguration(LOAD_CONFIGURATION.toPb()))) .thenThrow(new RuntimeException("expected")); - try (TableDataWriteChannel channel = - new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION)) { - Assert.fail(); - } catch (RuntimeException expected) { - Assert.assertEquals("java.lang.RuntimeException: expected", expected.getMessage()); - } + RuntimeException expected = + assertThrows( + RuntimeException.class, + () -> { + try (TableDataWriteChannel channel = + new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION)) {} + }); + assertEquals("java.lang.RuntimeException: expected", expected.getMessage()); verify(bigqueryRpcMock) .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() @@ -269,17 +273,18 @@ public void testWritesAndFlushNonRetryableError() throws IOException { eq(DEFAULT_CHUNK_SIZE), eq(false))) .thenThrow(new RuntimeException("expected")); - try { - writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); - ByteBuffer[] buffers = new ByteBuffer[DEFAULT_CHUNK_SIZE / MIN_CHUNK_SIZE]; - for (int i = 0; i < buffers.length; i++) { - buffers[i] = randomBuffer(MIN_CHUNK_SIZE); - assertEquals(MIN_CHUNK_SIZE, writer.write(buffers[i])); - } - Assert.fail(); - } catch (RuntimeException expected) { - Assert.assertEquals("java.lang.RuntimeException: expected", expected.getMessage()); - } + RuntimeException expected = + assertThrows( + RuntimeException.class, + () -> { + writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); + ByteBuffer[] buffers = new ByteBuffer[DEFAULT_CHUNK_SIZE / MIN_CHUNK_SIZE]; + for (int i = 0; i < buffers.length; i++) { + buffers[i] = randomBuffer(MIN_CHUNK_SIZE); + assertEquals(MIN_CHUNK_SIZE, writer.write(buffers[i])); + } + }); + assertEquals("java.lang.RuntimeException: expected", expected.getMessage()); verify(bigqueryRpcMock) .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() @@ -363,12 +368,7 @@ public void testWriteClosed() throws IOException { writer = new TableDataWriteChannel(options, JOB_INFO.getJobId(), LOAD_CONFIGURATION); writer.close(); assertEquals(job, writer.getJob()); - try { - writer.write(ByteBuffer.allocate(MIN_CHUNK_SIZE)); - fail("Expected TableDataWriteChannel write to throw IOException"); - } catch (IOException ex) { - // expected - } + assertThrows(IOException.class, () -> writer.write(ByteBuffer.allocate(MIN_CHUNK_SIZE))); verify(bigqueryRpcMock) .openSkipExceptionTranslation( new com.google.api.services.bigquery.model.Job() diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java index dc28ff8610e5..02154db0ca4e 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java @@ -16,11 +16,11 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class TableIdTest { +class TableIdTest { private static final TableId TABLE = TableId.of("dataset", "table"); private static final TableId TABLE_COMPLETE = TableId.of("project", "dataset", "table"); @@ -28,7 +28,7 @@ public class TableIdTest { "projects/project/datasets/dataset/tables/table"; @Test - public void testOf() { + void testOf() { assertEquals(null, TABLE.getProject()); assertEquals("dataset", TABLE.getDataset()); assertEquals("table", TABLE.getTable()); @@ -39,19 +39,19 @@ public void testOf() { } @Test - public void testEquals() { + void testEquals() { compareTableIds(TABLE, TableId.of("dataset", "table")); compareTableIds(TABLE_COMPLETE, TableId.of("project", "dataset", "table")); } @Test - public void testToPbAndFromPb() { + void testToPbAndFromPb() { compareTableIds(TABLE, TableId.fromPb(TABLE.toPb())); compareTableIds(TABLE_COMPLETE, TableId.fromPb(TABLE_COMPLETE.toPb())); } @Test - public void testSetProjectId() { + void testSetProjectId() { TableId differentProjectTable = TableId.of("differentProject", "dataset", "table"); assertEquals(differentProjectTable, TABLE.setProjectId("differentProject")); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java index a4ce6fbb4719..4dd488a6801d 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java @@ -16,16 +16,16 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import com.google.common.collect.ImmutableList; import java.math.BigInteger; import java.util.Collections; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class TableInfoTest { +class TableInfoTest { private static final String ETAG = "etag"; private static final String GENERATED_ID = "project:dataset:table"; @@ -153,7 +153,7 @@ public class TableInfoTest { .build(); @Test - public void testToBuilder() { + void testToBuilder() { compareTableInfo(TABLE_INFO, TABLE_INFO.toBuilder().build()); compareTableInfo(VIEW_INFO, VIEW_INFO.toBuilder().build()); compareTableInfo(EXTERNAL_TABLE_INFO, EXTERNAL_TABLE_INFO.toBuilder().build()); @@ -164,7 +164,7 @@ public void testToBuilder() { } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { TableInfo tableInfo = TableInfo.of(TABLE_ID, TABLE_DEFINITION); assertEquals(tableInfo, tableInfo.toBuilder().build()); tableInfo = TableInfo.of(TABLE_ID, VIEW_DEFINITION); @@ -174,7 +174,7 @@ public void testToBuilderIncomplete() { } @Test - public void testBuilder() { + void testBuilder() { assertEquals(TABLE_ID, TABLE_INFO.getTableId()); assertEquals(CREATION_TIME, TABLE_INFO.getCreationTime()); assertEquals(DESCRIPTION, TABLE_INFO.getDescription()); @@ -223,7 +223,7 @@ public void testBuilder() { } @Test - public void testOf() { + void testOf() { TableInfo tableInfo = TableInfo.of(TABLE_ID, TABLE_DEFINITION); assertEquals(TABLE_ID, tableInfo.getTableId()); assertNull(tableInfo.getCreationTime()); @@ -266,21 +266,21 @@ public void testOf() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareTableInfo(TABLE_INFO, TableInfo.fromPb(TABLE_INFO.toPb())); compareTableInfo(VIEW_INFO, TableInfo.fromPb(VIEW_INFO.toPb())); compareTableInfo(EXTERNAL_TABLE_INFO, TableInfo.fromPb(EXTERNAL_TABLE_INFO.toPb())); } @Test - public void testSetProjectId() { + void testSetProjectId() { assertEquals("project", TABLE_INFO.setProjectId("project").getTableId().getProject()); assertEquals("project", EXTERNAL_TABLE_INFO.setProjectId("project").getTableId().getProject()); assertEquals("project", VIEW_INFO.setProjectId("project").getTableId().getProject()); } @Test - public void testSetProjectIdDoNotOverride() { + void testSetProjectIdDoNotOverride() { TableInfo tableInfo = TableInfo.of(TABLE_ID, TABLE_DEFINITION).setProjectId("project"); tableInfo.setProjectId("not-override-project").toBuilder(); assertEquals("project", tableInfo.getTableId().getProject()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableMetadataCacheUsageTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableMetadataCacheUsageTest.java index 8f141fa596ce..dc996693cc35 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableMetadataCacheUsageTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableMetadataCacheUsageTest.java @@ -16,13 +16,13 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.google.api.services.bigquery.model.TableReference; import com.google.cloud.bigquery.TableMetadataCacheUsage.UnusedReason; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class TableMetadataCacheUsageTest { +class TableMetadataCacheUsageTest { private static final String EXPLANATION = "test explanation"; @@ -51,7 +51,7 @@ public class TableMetadataCacheUsageTest { .setUnusedReason(UNUSED_REASON.toString()); @Test - public void testToPbAndFromPb() { + void testToPbAndFromPb() { assertEquals(TABLE_METADATA_CACHE_USAGE_PB, TABLE_METADATA_CACHE_USAGE.toPb()); compareTableMetadataCacheUsage( TABLE_METADATA_CACHE_USAGE, TableMetadataCacheUsage.fromPb(TABLE_METADATA_CACHE_USAGE_PB)); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java index 71f9e35da520..5bdb14cf49ce 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java @@ -22,9 +22,9 @@ import com.google.api.gax.paging.Page; import com.google.cloud.PageImpl; import com.google.common.collect.ImmutableList; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class TableResultTest { +class TableResultTest { private static final Page INNER_PAGE_0 = new PageImpl<>( new PageImpl.NextPageFetcher() { @@ -52,7 +52,7 @@ private static FieldValueList newFieldValueList(String s) { } @Test - public void testNullSchema() { + void testNullSchema() { TableResult result = TableResult.newBuilder().setTotalRows(3L).setPageNoSchema(INNER_PAGE_0).build(); assertThat(result.getSchema()).isNull(); @@ -75,7 +75,7 @@ public void testNullSchema() { } @Test - public void testSchema() { + void testSchema() { TableResult result = TableResult.newBuilder() .setSchema(SCHEMA) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java index 6e99b701c15d..6ad7822d9bc0 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java @@ -17,11 +17,11 @@ package com.google.cloud.bigquery; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -34,14 +34,12 @@ import com.google.common.collect.ImmutableMap; import java.math.BigInteger; import java.util.List; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnitRunner; -import org.mockito.junit.MockitoRule; - -@RunWith(MockitoJUnitRunner.class) +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; + +@ExtendWith(MockitoExtension.class) public class TableTest { private static final String ETAG = "etag"; @@ -97,14 +95,12 @@ public class TableTest { FieldValueList.of(ImmutableList.of(FIELD_VALUE1)).withSchema(SCHEMA.getFields()), FieldValueList.of(ImmutableList.of(FIELD_VALUE2)).withSchema(SCHEMA.getFields())); - @Rule public MockitoRule rule; - private BigQuery bigquery; private BigQueryOptions mockOptions; private Table expectedTable; private Table table; - @Before + @BeforeEach public void setUp() { bigquery = mock(BigQuery.class); mockOptions = mock(BigQueryOptions.class); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java index 1e48c817edf6..ec947381b0d7 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java @@ -16,16 +16,16 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import com.google.cloud.bigquery.TimePartitioning.Type; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class TimePartitioningTest { +class TimePartitioningTest { private static final Type TYPE_DAY = Type.DAY; private static final Type TYPE_HOUR = Type.HOUR; @@ -60,7 +60,7 @@ public class TimePartitioningTest { .build(); @Test - public void testOf() { + void testOf() { assertEquals(TYPE_DAY, TIME_PARTITIONING_DAY.getType()); assertEquals(TYPE_HOUR, TIME_PARTITIONING_HOUR.getType()); assertEquals(TYPE_MONTH, TIME_PARTITIONING_MONTH.getType()); @@ -74,7 +74,7 @@ public void testOf() { } @Test - public void testBuilder() { + void testBuilder() { TimePartitioning partitioning = TimePartitioning.newBuilder(TYPE_DAY).build(); assertEquals(TYPE_DAY, partitioning.getType()); assertNull(partitioning.getExpirationMs()); @@ -90,27 +90,21 @@ public void testBuilder() { } @Test - public void testTypeOf_Npe() { - try { - TimePartitioning.of(null); - Assert.fail(); - } catch (NullPointerException ex) { - assertNotNull(ex.getMessage()); - } + void testTypeOf_Npe() { + NullPointerException ex = + assertThrows(NullPointerException.class, () -> TimePartitioning.of(null)); + assertNotNull(ex.getMessage()); } @Test - public void testTypeAndExpirationOf_Npe() { - try { - TimePartitioning.of(null, EXPIRATION_MS); - Assert.fail(); - } catch (NullPointerException ex) { - assertNotNull(ex.getMessage()); - } + void testTypeAndExpirationOf_Npe() { + NullPointerException ex = + assertThrows(NullPointerException.class, () -> TimePartitioning.of(null, EXPIRATION_MS)); + assertNotNull(ex.getMessage()); } @Test - public void testToAndFromPb() { + void testToAndFromPb() { compareTimePartitioning( TIME_PARTITIONING_DAY, TimePartitioning.fromPb(TIME_PARTITIONING_DAY.toPb())); TimePartitioning partitioning = TimePartitioning.of(TYPE_DAY); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java index 1d888f00dfa7..22f419593d08 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java @@ -15,10 +15,10 @@ */ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class TimelineSampleTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java index 93657b44c14f..81622527a392 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java @@ -16,9 +16,9 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class UserDefinedFunctionTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java index d60c7be2bc66..60eeea766852 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java @@ -16,19 +16,18 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.common.collect.ImmutableList; import java.util.List; -import org.junit.Test; +import org.junit.jupiter.api.Test; -public class ViewDefinitionTest { +class ViewDefinitionTest { private static final String VIEW_QUERY = "VIEW QUERY"; private static final List USER_DEFINED_FUNCTIONS = @@ -37,7 +36,7 @@ public class ViewDefinitionTest { ViewDefinition.newBuilder(VIEW_QUERY, USER_DEFINED_FUNCTIONS).setSchema(Schema.of()).build(); @Test - public void testToBuilder() { + void testToBuilder() { compareViewDefinition(VIEW_DEFINITION, VIEW_DEFINITION.toBuilder().build()); ViewDefinition viewDefinition = VIEW_DEFINITION.toBuilder().setQuery("NEW QUERY").build(); assertEquals("NEW QUERY", viewDefinition.getQuery()); @@ -50,23 +49,21 @@ public void testToBuilder() { } @Test - public void testTypeNullPointerException() { - try { - VIEW_DEFINITION.toBuilder().setType(null).build(); - fail(); - } catch (NullPointerException ex) { - assertNotNull(ex.getMessage()); - } + void testTypeNullPointerException() { + NullPointerException ex = + org.junit.jupiter.api.Assertions.assertThrows( + NullPointerException.class, () -> VIEW_DEFINITION.toBuilder().setType(null).build()); + assertNotNull(ex.getMessage()); } @Test - public void testToBuilderIncomplete() { + void testToBuilderIncomplete() { TableDefinition viewDefinition = ViewDefinition.of(VIEW_QUERY); assertEquals(viewDefinition, viewDefinition.toBuilder().build()); } @Test - public void testBuilder() { + void testBuilder() { assertEquals(VIEW_QUERY, VIEW_DEFINITION.getQuery()); assertEquals(TableDefinition.Type.VIEW, VIEW_DEFINITION.getType()); assertEquals(USER_DEFINED_FUNCTIONS, VIEW_DEFINITION.getUserDefinedFunctions()); @@ -106,7 +103,7 @@ public void testBuilder() { } @Test - public void testToAndFromPb() { + void testToAndFromPb() { ViewDefinition viewDefinition = VIEW_DEFINITION.toBuilder().setUseLegacySql(false).build(); assertTrue(TableDefinition.fromPb(viewDefinition.toPb()) instanceof ViewDefinition); compareViewDefinition( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java index 240f12185cda..35745235e51b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java @@ -16,8 +16,8 @@ package com.google.cloud.bigquery; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; import com.google.cloud.bigquery.JobInfo.CreateDisposition; import com.google.cloud.bigquery.JobInfo.WriteDisposition; @@ -27,7 +27,7 @@ import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class WriteChannelConfigurationTest { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index ddad48d3920c..fec7e55e05c3 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -20,15 +20,15 @@ import static com.google.common.truth.Truth.assertThat; import static java.lang.System.currentTimeMillis; import static java.net.HttpURLConnection.HTTP_UNAUTHORIZED; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import com.google.api.client.util.IOUtils; import com.google.api.gax.paging.Page; @@ -208,14 +208,14 @@ import java.util.concurrent.TimeoutException; import java.util.logging.Level; import java.util.logging.Logger; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.Timeout; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; import org.threeten.extra.PeriodDuration; -public class ITBigQueryTest { +@Timeout(value = 300) +class ITBigQueryTest { private static final byte[] BYTES = {0xD, 0xE, 0xA, 0xD}; private static final String BYTES_BASE64 = BaseEncoding.base64().encode(BYTES); @@ -1063,10 +1063,8 @@ public CompletableResultCode shutdown() { } } - @Rule public Timeout globalTimeout = Timeout.seconds(300); - - @BeforeClass - public static void beforeClass() throws InterruptedException, IOException { + @BeforeAll + static void beforeClass() throws InterruptedException, IOException { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); RemoteStorageHelper storageHelper = RemoteStorageHelper.create(); Map labels = ImmutableMap.of("test-job-name", "test-load-job"); @@ -1180,8 +1178,8 @@ public static void beforeClass() throws InterruptedException, IOException { assertNull(jobLargeTable.getStatus().getError()); } - @AfterClass - public static void afterClass() throws Exception { + @AfterAll + static void afterClass() throws Exception { if (bigquery != null) { RemoteBigQueryHelper.forceDelete(bigquery, DATASET); RemoteBigQueryHelper.forceDelete(bigquery, UK_DATASET); @@ -1206,13 +1204,12 @@ static GoogleCredentials loadCredentials(String credentialFile) { try (InputStream keyStream = new ByteArrayInputStream(credentialFile.getBytes())) { return GoogleCredentials.fromStream(keyStream); } catch (IOException e) { - fail("Couldn't create fake JSON credentials."); + throw new RuntimeException("Couldn't create fake JSON credentials.", e); } - return null; } @Test - public void testListDatasets() { + void testListDatasets() { Page datasets = bigquery.listDatasets("bigquery-public-data"); Iterator iterator = datasets.iterateAll().iterator(); Set datasetNames = new HashSet<>(); @@ -1230,24 +1227,24 @@ public void testListDatasets() { } @Test - public void testListDatasetsWithFilter() { + void testListDatasetsWithFilter() { String labelFilter = "labels.example-label1:example-value1"; Page datasets = bigquery.listDatasets(DatasetListOption.labelFilter(labelFilter)); int count = 0; for (Dataset dataset : datasets.getValues()) { assertTrue( - "failed to find label key in dataset", dataset.getLabels().containsKey("example-label1")); + dataset.getLabels().containsKey("example-label1"), "failed to find label key in dataset"); assertEquals( - "failed to find label value in dataset", "example-value1", - dataset.getLabels().get("example-label1")); + dataset.getLabels().get("example-label1"), + "failed to find label value in dataset"); count++; } assertTrue(count > 0); } @Test - public void testGetDataset() { + void testGetDataset() { Dataset dataset = bigquery.getDataset(DATASET); assertEquals(bigquery.getOptions().getProjectId(), dataset.getDatasetId().getProject()); assertEquals(DATASET, dataset.getDatasetId().getDataset()); @@ -1261,7 +1258,7 @@ public void testGetDataset() { } @Test - public void testDatasetUpdateAccess() throws IOException { + void testDatasetUpdateAccess() throws IOException { Dataset dataset = bigquery.getDataset(DATASET); ServiceAccountCredentials credentials = (ServiceAccountCredentials) GoogleCredentials.getApplicationDefault(); @@ -1276,7 +1273,7 @@ public void testDatasetUpdateAccess() throws IOException { } @Test - public void testGetDatasetWithSelectedFields() { + void testGetDatasetWithSelectedFields() { Dataset dataset = bigquery.getDataset( DATASET, DatasetOption.fields(DatasetField.CREATION_TIME, DatasetField.LABELS)); @@ -1298,7 +1295,7 @@ public void testGetDatasetWithSelectedFields() { } @Test - public void testGetDatasetWithAccessPolicyVersion() throws IOException { + void testGetDatasetWithAccessPolicyVersion() throws IOException { String accessPolicyDataset = RemoteBigQueryHelper.generateDatasetName(); ServiceAccountCredentials credentials = (ServiceAccountCredentials) GoogleCredentials.getApplicationDefault(); @@ -1342,7 +1339,7 @@ public void testGetDatasetWithAccessPolicyVersion() throws IOException { } @Test - public void testUpdateDataset() { + void testUpdateDataset() { Dataset dataset = bigquery.create( DatasetInfo.newBuilder(OTHER_DATASET) @@ -1379,7 +1376,7 @@ public void testUpdateDataset() { } @Test - public void testUpdateDatasetWithSelectedFields() { + void testUpdateDatasetWithSelectedFields() { Dataset dataset = bigquery.create( DatasetInfo.newBuilder(OTHER_DATASET).setDescription("Some Description").build()); @@ -1407,7 +1404,7 @@ public void testUpdateDatasetWithSelectedFields() { } @Test - public void testUpdateDatasetWithAccessPolicyVersion() throws IOException { + void testUpdateDatasetWithAccessPolicyVersion() throws IOException { String accessPolicyDataset = RemoteBigQueryHelper.generateDatasetName(); ServiceAccountCredentials credentials = (ServiceAccountCredentials) GoogleCredentials.getApplicationDefault(); @@ -1460,12 +1457,12 @@ public void testUpdateDatasetWithAccessPolicyVersion() throws IOException { } @Test - public void testGetNonExistingTable() { + void testGetNonExistingTable() { assertNull(bigquery.getTable(DATASET, "test_get_non_existing_table")); } @Test - public void testCreateTableWithRangePartitioning() { + void testCreateTableWithRangePartitioning() { String tableName = "test_create_table_rangepartitioning"; TableId tableId = TableId.of(DATASET, tableName); try { @@ -1490,7 +1487,7 @@ public void testCreateTableWithRangePartitioning() { /* TODO(prasmish): replicate this test case for executeSelect on the relevant part */ @Test - public void testJsonType() throws InterruptedException { + void testJsonType() throws InterruptedException { String tableName = "test_create_table_jsontype"; TableId tableId = TableId.of(DATASET, tableName); Schema schema = Schema.of(Field.of("jsonField", StandardSQLTypeName.JSON)); @@ -1586,9 +1583,9 @@ public void testJsonType() throws InterruptedException { .build(); BigQueryException exception = assertThrows( - "Querying with malformed JSON shouldn't work", BigQueryException.class, - () -> bigquery.query(dmlQueryJobConfiguration2)); + () -> bigquery.query(dmlQueryJobConfiguration2), + "Querying with malformed JSON shouldn't work"); BigQueryError error = exception.getError(); assertNotNull(error); assertEquals("invalidQuery", error.getReason()); @@ -1599,7 +1596,7 @@ public void testJsonType() throws InterruptedException { /* TODO(prasmish): replicate this test case for executeSelect on the relevant part */ @Test - public void testIntervalType() throws InterruptedException { + void testIntervalType() throws InterruptedException { String tableName = "test_create_table_intervaltype"; TableId tableId = TableId.of(DATASET, tableName); Schema schema = Schema.of(Field.of("intervalField", StandardSQLTypeName.INTERVAL)); @@ -1674,7 +1671,7 @@ public void testIntervalType() throws InterruptedException { } @Test - public void testRangeType() throws InterruptedException { + void testRangeType() throws InterruptedException { String tableName = "test_range_type_table"; TableId tableId = TableId.of(DATASET, tableName); @@ -1751,7 +1748,7 @@ public void testRangeType() throws InterruptedException { } @Test - public void testCreateTableWithConstraints() { + void testCreateTableWithConstraints() { String tableName = "test_create_table_with_constraints"; TableId tableId = TableId.of(DATASET, tableName); Field stringFieldWithConstraint = @@ -1795,7 +1792,7 @@ public void testCreateTableWithConstraints() { } @Test - public void testCreateDatasetWithSpecifiedStorageBillingModel() { + void testCreateDatasetWithSpecifiedStorageBillingModel() { String billingModelDataset = RemoteBigQueryHelper.generateDatasetName(); DatasetInfo info = DatasetInfo.newBuilder(billingModelDataset) @@ -1812,7 +1809,7 @@ public void testCreateDatasetWithSpecifiedStorageBillingModel() { } @Test - public void testCreateDatasetWithSpecificMaxTimeTravelHours() { + void testCreateDatasetWithSpecificMaxTimeTravelHours() { String timeTravelDataset = RemoteBigQueryHelper.generateDatasetName(); DatasetInfo info = DatasetInfo.newBuilder(timeTravelDataset) @@ -1829,7 +1826,7 @@ public void testCreateDatasetWithSpecificMaxTimeTravelHours() { } @Test - public void testCreateDatasetWithDefaultMaxTimeTravelHours() { + void testCreateDatasetWithDefaultMaxTimeTravelHours() { String timeTravelDataset = RemoteBigQueryHelper.generateDatasetName(); DatasetInfo info = DatasetInfo.newBuilder(timeTravelDataset) @@ -1846,7 +1843,7 @@ public void testCreateDatasetWithDefaultMaxTimeTravelHours() { } @Test - public void testCreateDatasetWithDefaultCollation() { + void testCreateDatasetWithDefaultCollation() { String collationDataset = RemoteBigQueryHelper.generateDatasetName(); DatasetInfo info = DatasetInfo.newBuilder(collationDataset) @@ -1863,7 +1860,7 @@ public void testCreateDatasetWithDefaultCollation() { } @Test - public void testCreateDatasetWithAccessPolicyVersion() throws IOException { + void testCreateDatasetWithAccessPolicyVersion() throws IOException { String accessPolicyDataset = RemoteBigQueryHelper.generateDatasetName(); ServiceAccountCredentials credentials = (ServiceAccountCredentials) GoogleCredentials.getApplicationDefault(); @@ -1899,8 +1896,8 @@ public void testCreateDatasetWithAccessPolicyVersion() throws IOException { RemoteBigQueryHelper.forceDelete(bigquery, accessPolicyDataset); } - @Test(expected = BigQueryException.class) - public void testCreateDatasetWithInvalidAccessPolicyVersion() throws IOException { + @Test + void testCreateDatasetWithInvalidAccessPolicyVersion() throws IOException { String accessPolicyDataset = RemoteBigQueryHelper.generateDatasetName(); ServiceAccountCredentials credentials = (ServiceAccountCredentials) GoogleCredentials.getApplicationDefault(); @@ -1920,14 +1917,13 @@ public void testCreateDatasetWithInvalidAccessPolicyVersion() throws IOException .setAcl(ImmutableList.of(acl)) .build(); DatasetOption datasetOption = DatasetOption.accessPolicyVersion(4); - Dataset dataset = bigquery.create(info, datasetOption); - assertNotNull(dataset); + assertThrows(BigQueryException.class, () -> bigquery.create(info, datasetOption)); RemoteBigQueryHelper.forceDelete(bigquery, accessPolicyDataset); } @Test - public void testCreateTableWithDefaultCollation() { + void testCreateTableWithDefaultCollation() { String tableName = "test_create_table_with_default_collation"; TableId tableId = TableId.of(DATASET, tableName); Field stringFieldWithoutCollation = @@ -1965,7 +1961,7 @@ public void testCreateTableWithDefaultCollation() { } @Test - public void testCreateFieldWithDefaultCollation() { + void testCreateFieldWithDefaultCollation() { String tableName = "test_create_field_with_default_collation"; TableId tableId = TableId.of(DATASET, tableName); Field stringFieldWithCollation = @@ -2002,7 +1998,7 @@ public void testCreateFieldWithDefaultCollation() { } @Test - public void testCreateTableWithDefaultValueExpression() { + void testCreateTableWithDefaultValueExpression() { String tableName = "test_create_table_with_default_value_expression"; TableId tableId = TableId.of(DATASET, tableName); Field stringFieldWithDefaultValueExpression = @@ -2064,7 +2060,7 @@ public void testCreateTableWithDefaultValueExpression() { } @Test - public void testCreateAndUpdateTableWithPolicyTags() throws IOException { + void testCreateAndUpdateTableWithPolicyTags() throws IOException { // Set up policy tags in the datacatalog service try (PolicyTagManagerClient policyTagManagerClient = PolicyTagManagerClient.create()) { CreateTaxonomyRequest createTaxonomyRequest = @@ -2146,7 +2142,7 @@ public void testCreateAndUpdateTableWithPolicyTags() throws IOException { } @Test - public void testCreateAndGetTable() { + void testCreateAndGetTable() { String tableName = "test_create_and_get_table"; TableId tableId = TableId.of(DATASET, tableName); TimePartitioning partitioning = TimePartitioning.of(Type.DAY); @@ -2184,7 +2180,7 @@ public void testCreateAndGetTable() { } @Test - public void testCreateAndListTable() { + void testCreateAndListTable() { String tableName = "test_create_and_list_table"; TableId tableId = TableId.of(DATASET, tableName); TimePartitioning partitioning = TimePartitioning.of(Type.DAY); @@ -2219,7 +2215,7 @@ public void testCreateAndListTable() { } @Test - public void testCreateAndGetTableWithBasicTableMetadataView() { + void testCreateAndGetTableWithBasicTableMetadataView() { String tableName = "test_create_and_get_table_with_basic_metadata_view"; TableId tableId = TableId.of(DATASET, tableName); TimePartitioning partitioning = TimePartitioning.of(Type.DAY); @@ -2251,7 +2247,7 @@ public void testCreateAndGetTableWithBasicTableMetadataView() { } @Test - public void testCreateAndGetTableWithFullTableMetadataView() { + void testCreateAndGetTableWithFullTableMetadataView() { String tableName = "test_create_and_get_table_with_full_metadata_view"; TableId tableId = TableId.of(DATASET, tableName); TimePartitioning partitioning = TimePartitioning.of(Type.DAY); @@ -2282,7 +2278,7 @@ public void testCreateAndGetTableWithFullTableMetadataView() { } @Test - public void testCreateAndGetTableWithStorageStatsTableMetadataView() { + void testCreateAndGetTableWithStorageStatsTableMetadataView() { String tableName = "test_create_and_get_table_with_storage_stats_metadata_view"; TableId tableId = TableId.of(DATASET, tableName); TimePartitioning partitioning = TimePartitioning.of(Type.DAY); @@ -2314,7 +2310,7 @@ public void testCreateAndGetTableWithStorageStatsTableMetadataView() { } @Test - public void testCreateAndGetTableWithUnspecifiedTableMetadataView() { + void testCreateAndGetTableWithUnspecifiedTableMetadataView() { String tableName = "test_create_and_get_table_with_unspecified_metadata_view"; TableId tableId = TableId.of(DATASET, tableName); TimePartitioning partitioning = TimePartitioning.of(Type.DAY); @@ -2346,7 +2342,7 @@ public void testCreateAndGetTableWithUnspecifiedTableMetadataView() { } @Test - public void testCreateAndGetTableWithSelectedField() { + void testCreateAndGetTableWithSelectedField() { String tableName = "test_create_and_get_selected_fields_table"; TableId tableId = TableId.of(DATASET, tableName); StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); @@ -2386,7 +2382,7 @@ public void testCreateAndGetTableWithSelectedField() { } @Test - public void testCreateExternalTable() throws InterruptedException { + void testCreateExternalTable() throws InterruptedException { String tableName = "test_create_external_table"; TableId tableId = TableId.of(DATASET, tableName); @@ -2444,7 +2440,7 @@ public void testCreateExternalTable() throws InterruptedException { } @Test - public void testSetPermExternalTableSchema() { + void testSetPermExternalTableSchema() { String tableName = "test_create_external_table_perm"; TableId tableId = TableId.of(DATASET, tableName); ExternalTableDefinition externalTableDefinition = @@ -2466,7 +2462,7 @@ public void testSetPermExternalTableSchema() { } @Test - public void testUpdatePermExternableTableWithAutodetectSchemaUpdatesSchema() { + void testUpdatePermExternableTableWithAutodetectSchemaUpdatesSchema() { String tableName = "test_create_external_table_perm_with_auto_detect"; TableId tableId = TableId.of(DATASET, tableName); Schema setSchema = Schema.of(TIMESTAMP_FIELD_SCHEMA, STRING_FIELD_SCHEMA); @@ -2501,7 +2497,7 @@ public void testUpdatePermExternableTableWithAutodetectSchemaUpdatesSchema() { } @Test - public void testCreateViewTable() throws InterruptedException { + void testCreateViewTable() throws InterruptedException { String tableName = "test_create_view_table"; TableId tableId = TableId.of(DATASET, tableName); ViewDefinition viewDefinition = @@ -2549,7 +2545,7 @@ public void testCreateViewTable() throws InterruptedException { } @Test - public void testCreateMaterializedViewTable() { + void testCreateMaterializedViewTable() { String tableName = "test_materialized_view_table"; TableId tableId = TableId.of(DATASET, tableName); MaterializedViewDefinition viewDefinition = @@ -2573,7 +2569,7 @@ public void testCreateMaterializedViewTable() { } @Test - public void testTableIAM() { + void testTableIAM() { String tableName = "test_iam_table"; TableId tableId = TableId.of(DATASET, tableName); StandardTableDefinition tableDefinition = @@ -2602,7 +2598,7 @@ public void testTableIAM() { } @Test - public void testListTables() { + void testListTables() { String tableName = "test_list_tables"; StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); @@ -2621,7 +2617,7 @@ public void testListTables() { } @Test - public void testListTablesWithPartitioning() { + void testListTablesWithPartitioning() { String tableName = "test_list_tables_partitioning"; TimePartitioning timePartitioning = TimePartitioning.of(Type.DAY, EXPIRATION_MS); StandardTableDefinition tableDefinition = @@ -2654,7 +2650,7 @@ public void testListTablesWithPartitioning() { } @Test - public void testListTablesWithRangePartitioning() { + void testListTablesWithRangePartitioning() { String tableName = "test_list_tables_range_partitioning"; StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder() @@ -2684,7 +2680,7 @@ public void testListTablesWithRangePartitioning() { } @Test - public void testListPartitions() throws InterruptedException { + void testListPartitions() throws InterruptedException { String tableName = "test_table_partitions_" + UUID.randomUUID().toString().substring(0, 8); Date date = Date.fromJavaUtilDate(new java.util.Date()); String partitionDate = date.toString().replaceAll("-", ""); @@ -2710,7 +2706,7 @@ public void testListPartitions() throws InterruptedException { } @Test - public void testUpdateTable() { + void testUpdateTable() { String tableName = "test_update_table"; StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); TableInfo tableInfo = @@ -2740,7 +2736,7 @@ public void testUpdateTable() { } @Test - public void testUpdateTimePartitioning() { + void testUpdateTimePartitioning() { String tableName = "testUpdateTimePartitioning"; TableId tableId = TableId.of(DATASET, tableName); StandardTableDefinition tableDefinition = @@ -2782,8 +2778,7 @@ public void testUpdateTimePartitioning() { table.delete(); } - @Test - public void testUpdateTableWithSelectedFields() { + void testUpdateTableWithSelectedFields() { String tableName = "test_update_with_selected_fields_table"; StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); @@ -2814,16 +2809,16 @@ public void testUpdateTableWithSelectedFields() { } @Test - public void testUpdateNonExistingTable() { + void testUpdateNonExistingTable() { TableInfo tableInfo = TableInfo.of( TableId.of(DATASET, "test_update_non_existing_table"), StandardTableDefinition.of(SIMPLE_SCHEMA)); BigQueryException exception = assertThrows( - "BigQueryException was expected", BigQueryException.class, - () -> bigquery.update(tableInfo)); + () -> bigquery.update(tableInfo), + "BigQueryException was expected"); BigQueryError error = exception.getError(); assertNotNull(error); assertEquals("notFound", error.getReason()); @@ -2831,12 +2826,12 @@ public void testUpdateNonExistingTable() { } @Test - public void testDeleteNonExistingTable() { + void testDeleteNonExistingTable() { assertFalse(bigquery.delete("test_delete_non_existing_table")); } @Test - public void testDeleteJob() { + void testDeleteJob() { String query = "SELECT 17 as foo"; QueryJobConfiguration config = QueryJobConfiguration.of(query); String jobName = "jobId_" + UUID.randomUUID().toString(); @@ -2850,7 +2845,7 @@ public void testDeleteJob() { } @Test - public void testInsertAll() throws IOException { + void testInsertAll() throws IOException { String tableName = "test_insert_all_table"; StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); @@ -2909,7 +2904,7 @@ public void testInsertAll() throws IOException { } @Test - public void testInsertAllWithSuffix() throws InterruptedException { + void testInsertAllWithSuffix() throws InterruptedException { String tableName = "test_insert_all_with_suffix_table"; StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); @@ -2977,7 +2972,7 @@ public void testInsertAllWithSuffix() throws InterruptedException { } @Test - public void testInsertAllWithErrors() { + void testInsertAllWithErrors() { String tableName = "test_insert_all_with_errors_table"; StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); @@ -3047,7 +3042,7 @@ public void testInsertAllWithErrors() { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testListAllTableData() { + void testListAllTableData() { Page rows = bigquery.listTableData(TABLE_ID); int rowCount = 0; for (FieldValueList row : rows.getValues()) { @@ -3092,7 +3087,7 @@ public void testListAllTableData() { } @Test - public void testListPageWithStartIndex() { + void testListPageWithStartIndex() { String tableName = "midyear_population_agespecific"; TableId tableId = TableId.of(PUBLIC_PROJECT, PUBLIC_DATASET, tableName); Table table = bigquery.getTable(tableId); @@ -3111,7 +3106,7 @@ public void testListPageWithStartIndex() { } @Test - public void testModelLifecycle() throws InterruptedException { + void testModelLifecycle() throws InterruptedException { String modelName = RemoteBigQueryHelper.generateModelName(); @@ -3170,7 +3165,7 @@ public void testModelLifecycle() throws InterruptedException { } @Test - public void testEmptyListModels() { + void testEmptyListModels() { String datasetId = "test_empty_dataset_list_models_" + RANDOM_ID; assertNotNull(bigquery.create(DatasetInfo.of(datasetId))); Page models = bigquery.listModels(datasetId, BigQuery.ModelListOption.pageSize(100)); @@ -3181,7 +3176,7 @@ public void testEmptyListModels() { } @Test - public void testEmptyListRoutines() { + void testEmptyListRoutines() { String datasetId = "test_empty_dataset_list_routines_" + RANDOM_ID; assertNotNull(bigquery.create(DatasetInfo.of(datasetId))); Page routines = @@ -3193,7 +3188,7 @@ public void testEmptyListRoutines() { } @Test - public void testRoutineLifecycle() throws InterruptedException { + void testRoutineLifecycle() throws InterruptedException { String routineName = RemoteBigQueryHelper.generateRoutineName(); // Create a routine using SQL. String sql = @@ -3236,7 +3231,7 @@ public void testRoutineLifecycle() throws InterruptedException { } @Test - public void testRoutineAPICreation() { + void testRoutineAPICreation() { String routineName = RemoteBigQueryHelper.generateRoutineName(); RoutineId routineId = RoutineId.of(ROUTINE_DATASET, routineName); RoutineInfo routineInfo = @@ -3258,7 +3253,7 @@ public void testRoutineAPICreation() { } @Test - public void testRoutineAPICreationJavascriptUDF() { + void testRoutineAPICreationJavascriptUDF() { String routineName = RemoteBigQueryHelper.generateRoutineName(); RoutineId routineId = RoutineId.of(ROUTINE_DATASET, routineName); RoutineInfo routineInfo = @@ -3286,7 +3281,7 @@ public void testRoutineAPICreationJavascriptUDF() { } @Test - public void testRoutineAPICreationTVF() { + void testRoutineAPICreationTVF() { String routineName = RemoteBigQueryHelper.generateRoutineName(); RoutineId routineId = RoutineId.of(ROUTINE_DATASET, routineName); List columns = @@ -3314,7 +3309,7 @@ public void testRoutineAPICreationTVF() { } @Test - public void testRoutineDataGovernanceType() { + void testRoutineDataGovernanceType() { String routineName = RemoteBigQueryHelper.generateRoutineName(); RoutineId routineId = RoutineId.of(ROUTINE_DATASET, routineName); RoutineInfo routineInfo = @@ -3341,7 +3336,7 @@ public void testRoutineDataGovernanceType() { } @Test - public void testAuthorizeRoutine() { + void testAuthorizeRoutine() { String routineName = RemoteBigQueryHelper.generateRoutineName(); RoutineId routineId = RoutineId.of(PROJECT_ID, ROUTINE_DATASET, routineName); RoutineInfo routineInfo = @@ -3367,7 +3362,7 @@ public void testAuthorizeRoutine() { } @Test - public void testAuthorizeDataset() { + void testAuthorizeDataset() { String datasetName = RemoteBigQueryHelper.generateDatasetName(); DatasetId datasetId = DatasetId.of(PROJECT_ID, datasetName); List targetTypes = ImmutableList.of("VIEWS"); @@ -3412,14 +3407,14 @@ public void testAuthorizeDataset() { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testSingleStatementsQueryException() throws InterruptedException { + void testSingleStatementsQueryException() throws InterruptedException { String invalidQuery = String.format("INSERT %s.%s VALUES('3', 10);", DATASET, TABLE_ID.getTable()); BigQueryException exception = assertThrows( - "BigQueryException was expected", BigQueryException.class, - () -> bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor()); + () -> bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor(), + "BigQueryException was expected"); assertEquals("invalidQuery", exception.getReason()); assertNotNull(exception.getMessage()); BigQueryError error = exception.getError(); @@ -3429,16 +3424,16 @@ public void testSingleStatementsQueryException() throws InterruptedException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testMultipleStatementsQueryException() throws InterruptedException { + void testMultipleStatementsQueryException() throws InterruptedException { String invalidQuery = String.format( "INSERT %s.%s VALUES('3', 10); DELETE %s.%s where c2=3;", DATASET, TABLE_ID.getTable(), DATASET, TABLE_ID.getTable()); BigQueryException exception = assertThrows( - "BigQueryException was expected", BigQueryException.class, - () -> bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor()); + () -> bigquery.create(JobInfo.of(QueryJobConfiguration.of(invalidQuery))).waitFor(), + "BigQueryException was expected"); assertEquals("invalidQuery", exception.getReason()); assertNotNull(exception.getMessage()); BigQueryError error = exception.getError(); @@ -3447,7 +3442,7 @@ public void testMultipleStatementsQueryException() throws InterruptedException { } @Test - public void testTimestamp() throws InterruptedException { + void testTimestamp() throws InterruptedException { String query = "SELECT TIMESTAMP '2022-01-24T23:54:25.095574Z'"; String timestampStringValueExpected = "2022-01-24T23:54:25.095574Z"; @@ -3465,7 +3460,7 @@ public void testTimestamp() throws InterruptedException { } @Test - public void testLosslessTimestamp() throws InterruptedException { + void testLosslessTimestamp() throws InterruptedException { String query = "SELECT TIMESTAMP '2022-01-24T23:54:25.095574Z'"; long expectedTimestamp = 1643068465095574L; @@ -3505,7 +3500,7 @@ public void testLosslessTimestamp() throws InterruptedException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testQuery() throws InterruptedException { + void testQuery() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); @@ -3538,7 +3533,7 @@ public void testQuery() throws InterruptedException { } @Test - public void testQueryStatistics() throws InterruptedException { + void testQueryStatistics() throws InterruptedException { // Use CURRENT_TIMESTAMP to avoid potential caching. String query = "SELECT CURRENT_TIMESTAMP() AS ts"; QueryJobConfiguration config = @@ -3555,7 +3550,7 @@ public void testQueryStatistics() throws InterruptedException { } @Test - public void testExecuteSelectDefaultConnectionSettings() throws SQLException { + void testExecuteSelectDefaultConnectionSettings() throws SQLException { // Use the default connection settings Connection connection = bigquery.createConnection(); String query = "SELECT corpus FROM `bigquery-public-data.samples.shakespeare` GROUP BY corpus;"; @@ -3565,7 +3560,7 @@ public void testExecuteSelectDefaultConnectionSettings() throws SQLException { } @Test - public void testExecuteSelectWithReadApi() throws SQLException { + void testExecuteSelectWithReadApi() throws SQLException { final int rowLimit = 5000; final String QUERY = "SELECT * FROM bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2017 LIMIT %s"; @@ -3595,7 +3590,7 @@ public void testExecuteSelectWithReadApi() throws SQLException { } @Test - public void testExecuteSelectWithFastQueryReadApi() throws SQLException { + void testExecuteSelectWithFastQueryReadApi() throws SQLException { final int rowLimit = 5000; final String QUERY = "SELECT * FROM bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2017 LIMIT %s"; @@ -3622,7 +3617,7 @@ public void testExecuteSelectWithFastQueryReadApi() throws SQLException { } @Test - public void testExecuteSelectReadApiEmptyResultSet() throws SQLException { + void testExecuteSelectReadApiEmptyResultSet() throws SQLException { ConnectionSettings connectionSettings = ConnectionSettings.newBuilder() .setJobTimeoutMs( @@ -3640,7 +3635,7 @@ public void testExecuteSelectReadApiEmptyResultSet() throws SQLException { } @Test - public void testExecuteSelectWithCredentials() throws SQLException { + void testExecuteSelectWithCredentials() throws SQLException { // This test validate that executeSelect uses the same credential provided by the BigQuery // object used to create the Connection client. // This is done the following scenarios: @@ -3684,7 +3679,7 @@ public void testExecuteSelectWithCredentials() throws SQLException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testQueryTimeStamp() throws InterruptedException { + void testQueryTimeStamp() throws InterruptedException { String query = "SELECT TIMESTAMP '2022-01-24T23:54:25.095574Z'"; Instant beforeQueryInstant = Instant.parse("2022-01-24T23:54:25.095574Z"); long microsBeforeQuery = @@ -3721,7 +3716,7 @@ public void testQueryTimeStamp() throws InterruptedException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testQueryCaseInsensitiveSchemaFieldByGetName() throws InterruptedException { + void testQueryCaseInsensitiveSchemaFieldByGetName() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); @@ -3751,7 +3746,7 @@ public void testQueryCaseInsensitiveSchemaFieldByGetName() throws InterruptedExc /* TODO(prasmish): replicate bigquery.query part of the test case for executeSelect - modify this test case */ @Test - public void testQueryExternalHivePartitioningOptionAutoLayout() throws InterruptedException { + void testQueryExternalHivePartitioningOptionAutoLayout() throws InterruptedException { String tableName = "test_queryexternalhivepartition_autolayout_table"; String sourceUri = "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/hive-partitioning-samples/autolayout/*"; @@ -3787,7 +3782,7 @@ public void testQueryExternalHivePartitioningOptionAutoLayout() throws Interrupt /* TODO(prasmish): replicate bigquery.query part of the test case for executeSelect - modify this test case */ @Test - public void testQueryExternalHivePartitioningOptionCustomLayout() throws InterruptedException { + void testQueryExternalHivePartitioningOptionCustomLayout() throws InterruptedException { String tableName = "test_queryexternalhivepartition_customlayout_table"; String sourceUri = "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/hive-partitioning-samples/customlayout/*"; @@ -3823,7 +3818,7 @@ public void testQueryExternalHivePartitioningOptionCustomLayout() throws Interru } @Test - public void testConnectionImplDryRun() throws SQLException { + void testConnectionImplDryRun() throws SQLException { String query = String.format( "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, TimestampField, FloatField, NumericField, TimeField, DateField, DateTimeField , GeographyField, RecordField.BytesField, RecordField.BooleanField, IntegerArrayField from %s where StringField = ? order by TimestampField", @@ -3848,7 +3843,7 @@ public void testConnectionImplDryRun() throws SQLException { } @Test - public void testConnectionImplDryRunNoQueryParameters() throws SQLException { + void testConnectionImplDryRunNoQueryParameters() throws SQLException { String query = String.format( "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, " @@ -3878,7 +3873,7 @@ public void testConnectionImplDryRunNoQueryParameters() throws SQLException { @Test // This test case test the order of the records, making sure that the result is not jumbled up due // to the multithreaded BigQueryResult implementation - public void testBQResultSetMultiThreadedOrder() throws SQLException { + void testBQResultSetMultiThreadedOrder() throws SQLException { String query = "SELECT date FROM " + TABLE_ID_LARGE.getTable() @@ -3905,7 +3900,7 @@ public void testBQResultSetMultiThreadedOrder() throws SQLException { } @Test - public void testBQResultSetPaginationSlowQuery() throws SQLException { + void testBQResultSetPaginationSlowQuery() throws SQLException { String query = "SELECT date, county, state_name, confirmed_cases, deaths FROM " + TABLE_ID_LARGE.getTable() @@ -3934,7 +3929,7 @@ public void testBQResultSetPaginationSlowQuery() throws SQLException { } @Test - public void testExecuteSelectSinglePageTableRow() throws SQLException { + void testExecuteSelectSinglePageTableRow() throws SQLException { String query = "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, TimestampField, FloatField, " + "NumericField, TimeField, DateField, DateTimeField , GeographyField, RecordField.BytesField, RecordField.BooleanField, IntegerArrayField from " @@ -3998,7 +3993,7 @@ public void testExecuteSelectSinglePageTableRow() throws SQLException { } @Test - public void testExecuteSelectSinglePageTableRowWithReadAPI() throws SQLException { + void testExecuteSelectSinglePageTableRowWithReadAPI() throws SQLException { String query = "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, TimestampField, FloatField, " + "NumericField, TimeField, DateField, DateTimeField , GeographyField, RecordField.BytesField, RecordField.BooleanField, IntegerArrayField from " @@ -4063,7 +4058,7 @@ public void testExecuteSelectSinglePageTableRowWithReadAPI() throws SQLException } @Test - public void testConnectionClose() throws SQLException { + void testConnectionClose() throws SQLException { String query = "SELECT date, county, state_name, confirmed_cases, deaths FROM " + TABLE_ID_LARGE.getTable() @@ -4089,7 +4084,7 @@ public void testConnectionClose() throws SQLException { } @Test - public void testBQResultSetPagination() throws SQLException { + void testBQResultSetPagination() throws SQLException { String query = "SELECT date, county, state_name, confirmed_cases, deaths FROM " + TABLE_ID_LARGE.getTable() @@ -4115,7 +4110,7 @@ public void testBQResultSetPagination() throws SQLException { } @Test - public void testReadAPIIterationAndOrder() + void testReadAPIIterationAndOrder() throws SQLException { // use read API to read 300K records and check the order String query = "SELECT date, county, state_name, confirmed_cases, deaths FROM " @@ -4152,7 +4147,7 @@ public void testReadAPIIterationAndOrder() } @Test - public void testReadAPIIterationAndOrderAsync() + void testReadAPIIterationAndOrderAsync() throws SQLException, ExecutionException, InterruptedException { // use read API to read 300K records and check the order @@ -4200,7 +4195,7 @@ public void testReadAPIIterationAndOrderAsync() // TODO(prasmish): Remove this test case if it turns out to be flaky, as expecting the process to // be uncompleted in 1000ms is nondeterministic! Though very likely it won't be complete in the // specified amount of time - public void testExecuteSelectAsyncCancel() + void testExecuteSelectAsyncCancel() throws SQLException, ExecutionException, InterruptedException { // use read API to read 300K records and check the order @@ -4242,7 +4237,7 @@ public void testExecuteSelectAsyncCancel() // TODO(prasmish): Remove this test case if it turns out to be flaky, as expecting the process to // be uncompleted in 1000ms is nondeterministic! Though very likely it won't be complete in the // specified amount of time - public void testExecuteSelectAsyncTimeout() + void testExecuteSelectAsyncTimeout() throws SQLException, ExecutionException, InterruptedException { // use read API to read 300K records and check the order @@ -4272,7 +4267,7 @@ public void testExecuteSelectAsyncTimeout() } @Test - public void testExecuteSelectWithNamedQueryParametersAsync() + void testExecuteSelectWithNamedQueryParametersAsync() throws BigQuerySQLException, ExecutionException, InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " @@ -4302,14 +4297,14 @@ public void testExecuteSelectWithNamedQueryParametersAsync() // Ref: https://github.com/googleapis/java-bigquery/issues/2070. Adding a pre-submit test to see // if bigquery.createConnection() returns null @Test - public void testCreateDefaultConnection() throws BigQuerySQLException { + void testCreateDefaultConnection() throws BigQuerySQLException { Connection connection = bigquery.createConnection(); - assertNotNull("bigquery.createConnection() returned null", connection); + assertNotNull(connection, "bigquery.createConnection() returned null"); assertTrue(connection.close()); } @Test - public void testReadAPIConnectionMultiClose() + void testReadAPIConnectionMultiClose() throws SQLException { // use read API to read 300K records, then closes the connection. This test // repeats it multiple times and assets if the connection was closed @@ -4345,7 +4340,7 @@ public void testReadAPIConnectionMultiClose() } @Test - public void testExecuteSelectSinglePageTableRowColInd() throws SQLException { + void testExecuteSelectSinglePageTableRowColInd() throws SQLException { String query = "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, TimestampField, FloatField, " + "NumericField, TimeField, DateField, DateTimeField , GeographyField, RecordField.BytesField, RecordField.BooleanField, IntegerArrayField from " @@ -4424,7 +4419,7 @@ public void testExecuteSelectSinglePageTableRowColInd() throws SQLException { } @Test - public void testExecuteSelectStruct() throws SQLException { + void testExecuteSelectStruct() throws SQLException { String query = "select (STRUCT(\"Vancouver\" as city, 5 as years)) as address"; ConnectionSettings connectionSettings = ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).build(); @@ -4457,7 +4452,7 @@ public void testExecuteSelectStruct() throws SQLException { } @Test - public void testExecuteSelectStructSubField() throws SQLException { + void testExecuteSelectStructSubField() throws SQLException { String query = "select address.city from (select (STRUCT(\"Vancouver\" as city, 5 as years)) as address)"; ConnectionSettings connectionSettings = @@ -4483,7 +4478,7 @@ public void testExecuteSelectStructSubField() throws SQLException { } @Test - public void testExecuteSelectArray() throws SQLException { + void testExecuteSelectArray() throws SQLException { String query = "SELECT [1,2,3]"; ConnectionSettings connectionSettings = ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).build(); @@ -4506,7 +4501,7 @@ public void testExecuteSelectArray() throws SQLException { } @Test - public void testExecuteSelectArrayOfStruct() throws SQLException { + void testExecuteSelectArrayOfStruct() throws SQLException { String query = "SELECT [STRUCT(\"Vancouver\" as city, 5 as years), STRUCT(\"Boston\" as city, 10 as years)]"; ConnectionSettings connectionSettings = @@ -4546,7 +4541,7 @@ public void testExecuteSelectArrayOfStruct() throws SQLException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testFastQueryMultipleRuns() throws InterruptedException { + void testFastQueryMultipleRuns() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FASTQUERY.getTable(); QueryJobConfiguration config = @@ -4583,7 +4578,7 @@ public void testFastQueryMultipleRuns() throws InterruptedException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testFastQuerySinglePageDuplicateRequestIds() throws InterruptedException { + void testFastQuerySinglePageDuplicateRequestIds() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FASTQUERY.getTable(); QueryJobConfiguration config = @@ -4616,7 +4611,7 @@ public void testFastQuerySinglePageDuplicateRequestIds() throws InterruptedExcep /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testFastSQLQuery() throws InterruptedException { + void testFastSQLQuery() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FASTQUERY.getTable(); QueryJobConfiguration config = @@ -4646,7 +4641,7 @@ public void testFastSQLQuery() throws InterruptedException { } @Test - public void testProjectIDFastSQLQueryWithJobId() throws InterruptedException { + void testProjectIDFastSQLQueryWithJobId() throws InterruptedException { String random_project_id = "RANDOM_PROJECT_" + UUID.randomUUID().toString().replace('-', '_'); System.out.println(random_project_id); String query = @@ -4667,7 +4662,7 @@ public void testProjectIDFastSQLQueryWithJobId() throws InterruptedException { } @Test - public void testLocationFastSQLQueryWithJobId() throws InterruptedException { + void testLocationFastSQLQueryWithJobId() throws InterruptedException { DatasetInfo infoUK = DatasetInfo.newBuilder(UK_DATASET) .setDescription(DESCRIPTION) @@ -4728,7 +4723,7 @@ public void testLocationFastSQLQueryWithJobId() throws InterruptedException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testFastSQLQueryMultiPage() throws InterruptedException { + void testFastSQLQueryMultiPage() throws InterruptedException { String query = "SELECT date, county, state_name, county_fips_code, confirmed_cases, deaths FROM " + TABLE_ID_LARGE.getTable(); @@ -4761,7 +4756,7 @@ public void testFastSQLQueryMultiPage() throws InterruptedException { } @Test - public void testFastDMLQuery() throws InterruptedException { + void testFastDMLQuery() throws InterruptedException { String tableName = TABLE_ID_FASTQUERY.getTable(); String dmlQuery = String.format("UPDATE %s.%s SET StringField = 'hello' WHERE TRUE", DATASET, tableName); @@ -4777,7 +4772,7 @@ public void testFastDMLQuery() throws InterruptedException { } @Test - public void testFastDDLQuery() throws InterruptedException { + void testFastDDLQuery() throws InterruptedException { String tableName = "test_table_fast_query_ddl"; String tableNameFastQuery = TABLE_ID_DDL.getTable(); String ddlQuery = @@ -4816,7 +4811,7 @@ public void testFastDDLQuery() throws InterruptedException { } @Test - public void testFastQuerySlowDDL() throws InterruptedException { + void testFastQuerySlowDDL() throws InterruptedException { String tableName = "test_table_fast_query_ddl_slow_" + UUID.randomUUID().toString().substring(0, 8); // This query take more than 10s to run and should fall back on the old query path @@ -4849,7 +4844,7 @@ public void testFastQuerySlowDDL() throws InterruptedException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testFastQueryHTTPException() throws InterruptedException { + void testFastQueryHTTPException() throws InterruptedException { String queryInvalid = "CREATE OR REPLACE SELECT * FROM UPDATE TABLE SET " + TABLE_ID_FASTQUERY.getTable(); QueryJobConfiguration configInvalidQuery = @@ -4858,9 +4853,9 @@ public void testFastQueryHTTPException() throws InterruptedException { .build(); BigQueryException exception = assertThrows( - "BigQueryException was expected", BigQueryException.class, - () -> bigquery.query(configInvalidQuery)); + () -> bigquery.query(configInvalidQuery), + "BigQueryException was expected"); BigQueryError error = exception.getError(); assertNotNull(error.getMessage()); assertEquals("invalidQuery", error.getReason()); @@ -4874,16 +4869,16 @@ public void testFastQueryHTTPException() throws InterruptedException { BigQueryException exception1 = assertThrows( - "BigQueryException was expected", BigQueryException.class, - () -> bigquery.query(configMissingTable)); + () -> bigquery.query(configMissingTable), + "BigQueryException was expected"); BigQueryError error1 = exception1.getError(); assertNotNull(error1.getMessage()); assertEquals("notFound", error1.getReason()); } @Test - public void testQuerySessionSupport() throws InterruptedException { + void testQuerySessionSupport() throws InterruptedException { String query = "CREATE TEMPORARY TABLE temptable AS SELECT 17 as foo"; QueryJobConfiguration queryJobConfiguration = QueryJobConfiguration.newBuilder(query) @@ -4916,7 +4911,7 @@ public void testQuerySessionSupport() throws InterruptedException { } @Test - public void testLoadSessionSupportWriteChannelConfiguration() throws InterruptedException { + void testLoadSessionSupportWriteChannelConfiguration() throws InterruptedException { TableId sessionTableId = TableId.of("_SESSION", "test_temp_destination_table_from_file"); WriteChannelConfiguration configuration = @@ -4990,7 +4985,7 @@ public void testLoadSessionSupportWriteChannelConfiguration() throws Interrupted } @Test - public void testLoadSessionSupport() throws InterruptedException { + void testLoadSessionSupport() throws InterruptedException { // Start the session TableId sessionTableId = TableId.of("_SESSION", "test_temp_destination_table"); LoadJobConfiguration configuration = @@ -5053,7 +5048,7 @@ public void testLoadSessionSupport() throws InterruptedException { // } @Test - public void testExecuteSelectSessionSupport() throws BigQuerySQLException { + void testExecuteSelectSessionSupport() throws BigQuerySQLException { String query = "SELECT 17 as foo"; ConnectionSettings connectionSettings = ConnectionSettings.newBuilder() @@ -5067,7 +5062,7 @@ public void testExecuteSelectSessionSupport() throws BigQuerySQLException { } @Test - public void testDmlStatistics() throws InterruptedException { + void testDmlStatistics() throws InterruptedException { String tableName = TABLE_ID_FASTQUERY.getTable(); // Run a DML statement to UPDATE 2 rows of data String dmlQuery = @@ -5089,7 +5084,7 @@ public void testDmlStatistics() throws InterruptedException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testTransactionInfo() throws InterruptedException { + void testTransactionInfo() throws InterruptedException { String tableName = TABLE_ID_FASTQUERY.getTable(); String transaction = String.format( @@ -5111,7 +5106,7 @@ public void testTransactionInfo() throws InterruptedException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testScriptStatistics() throws InterruptedException { + void testScriptStatistics() throws InterruptedException { String script = "-- Declare a variable to hold names as an array.\n" + "DECLARE top_names ARRAY;\n" @@ -5164,7 +5159,7 @@ public void testScriptStatistics() throws InterruptedException { } @Test - public void testQueryParameterModeWithDryRun() { + void testQueryParameterModeWithDryRun() { String query = "SELECT TimestampField, StringField, BooleanField, BigNumericField, BigNumericField1, BigNumericField2, BigNumericField3, BigNumericField4 FROM " + TABLE_ID.getTable() @@ -5191,7 +5186,7 @@ public void testQueryParameterModeWithDryRun() { } @Test - public void testPositionalQueryParameters() throws InterruptedException { + void testPositionalQueryParameters() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField, BigNumericField, BigNumericField1, BigNumericField2, BigNumericField3, BigNumericField4 FROM " + TABLE_ID.getTable() @@ -5268,7 +5263,7 @@ public void testPositionalQueryParameters() throws InterruptedException { /* TODO(prasmish): expand below test case with all the fields shown in the above test case */ @Test - public void testExecuteSelectWithPositionalQueryParameters() throws BigQuerySQLException { + void testExecuteSelectWithPositionalQueryParameters() throws BigQuerySQLException { String query = "SELECT TimestampField, StringField FROM " + TABLE_ID.getTable() @@ -5288,7 +5283,7 @@ public void testExecuteSelectWithPositionalQueryParameters() throws BigQuerySQLE } @Test - public void testNamedQueryParameters() throws InterruptedException { + void testNamedQueryParameters() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable() @@ -5311,7 +5306,7 @@ public void testNamedQueryParameters() throws InterruptedException { } @Test - public void testExecuteSelectWithNamedQueryParameters() throws BigQuerySQLException { + void testExecuteSelectWithNamedQueryParameters() throws BigQuerySQLException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable() @@ -5335,7 +5330,7 @@ public void testExecuteSelectWithNamedQueryParameters() throws BigQuerySQLExcept /* TODO(prasmish): replicate relevant parts of the test case for executeSelect */ @Test - public void testStructNamedQueryParameters() throws InterruptedException { + void testStructNamedQueryParameters() throws InterruptedException { QueryParameterValue booleanValue = QueryParameterValue.bool(true); QueryParameterValue stringValue = QueryParameterValue.string("test-stringField"); QueryParameterValue integerValue = QueryParameterValue.int64(10); @@ -5362,7 +5357,7 @@ public void testStructNamedQueryParameters() throws InterruptedException { } @Test - public void testRepeatedRecordNamedQueryParameters() throws InterruptedException { + void testRepeatedRecordNamedQueryParameters() throws InterruptedException { String[] stringValues = new String[] {"test-stringField", "test-stringField2"}; List tuples = new ArrayList<>(); for (int i = 0; i < 2; i++) { @@ -5403,7 +5398,7 @@ public void testRepeatedRecordNamedQueryParameters() throws InterruptedException } @Test - public void testUnnestRepeatedRecordNamedQueryParameter() throws InterruptedException { + void testUnnestRepeatedRecordNamedQueryParameter() throws InterruptedException { Boolean[] boolValues = new Boolean[] {true, false}; List tuples = new ArrayList<>(); for (int i = 0; i < 2; i++) { @@ -5442,7 +5437,7 @@ public void testUnnestRepeatedRecordNamedQueryParameter() throws InterruptedExce } @Test - public void testUnnestRepeatedRecordNamedQueryParameterFromDataset() throws InterruptedException { + void testUnnestRepeatedRecordNamedQueryParameterFromDataset() throws InterruptedException { TableId tableId = TableId.of(DATASET, "test_repeated_record_table"); setUpRepeatedRecordTable(tableId); @@ -5548,7 +5543,7 @@ private void setUpRepeatedRecordTable(TableId tableId) { } @Test - public void testEmptyRepeatedRecordNamedQueryParameters() throws InterruptedException { + void testEmptyRepeatedRecordNamedQueryParameters() throws InterruptedException { QueryParameterValue[] tuples = {}; QueryParameterValue repeatedRecord = @@ -5563,13 +5558,13 @@ public void testEmptyRepeatedRecordNamedQueryParameters() throws InterruptedExce .build(); assertThrows( - "an empty array of struct query parameter shouldn't work with 'IN UNNEST'", BigQueryException.class, - () -> bigquery.query(config)); + () -> bigquery.query(config), + "an empty array of struct query parameter shouldn't work with 'IN UNNEST'"); } @Test - public void testStructQuery() throws InterruptedException { + void testStructQuery() throws InterruptedException { // query into a table String query = String.format("SELECT RecordField FROM %s.%s", DATASET, TABLE_ID.getTable()); QueryJobConfiguration config = @@ -5597,7 +5592,7 @@ private static void assertsFieldValue(FieldValue record) { /* TODO(prasmish): replicate relevant parts of the test case for executeSelect */ @Test - public void testNestedStructNamedQueryParameters() throws InterruptedException { + void testNestedStructNamedQueryParameters() throws InterruptedException { QueryParameterValue booleanValue = QueryParameterValue.bool(true); QueryParameterValue stringValue = QueryParameterValue.string("test-stringField"); QueryParameterValue integerValue = QueryParameterValue.int64(10); @@ -5639,7 +5634,7 @@ public void testNestedStructNamedQueryParameters() throws InterruptedException { /* TODO(prasmish): replicate relevant parts of the test case for executeSelect */ @Test - public void testBytesParameter() throws Exception { + void testBytesParameter() throws Exception { String query = "SELECT BYTE_LENGTH(@p) AS length"; QueryParameterValue bytesParameter = QueryParameterValue.bytes(new byte[] {1, 3}); QueryJobConfiguration config = @@ -5660,7 +5655,7 @@ public void testBytesParameter() throws Exception { } @Test - public void testGeographyParameter() throws Exception { + void testGeographyParameter() throws Exception { // Issues a simple ST_DISTANCE using two geopoints, one being a named geography parameter. String query = "SELECT ST_DISTANCE(ST_GEOGFROMTEXT(\"POINT(-122.335503 47.625536)\"), @geo) < 3000 as within3k"; @@ -5683,7 +5678,7 @@ public void testGeographyParameter() throws Exception { } @Test - public void testListJobs() { + void testListJobs() { Page jobs = bigquery.listJobs(); for (Job job : jobs.getValues()) { assertNotNull(job.getJobId()); @@ -5695,7 +5690,7 @@ public void testListJobs() { } @Test - public void testListJobsWithSelectedFields() { + void testListJobsWithSelectedFields() { Page jobs = bigquery.listJobs(JobListOption.fields(JobField.USER_EMAIL)); for (Job job : jobs.getValues()) { assertNotNull(job.getJobId()); @@ -5707,7 +5702,7 @@ public void testListJobsWithSelectedFields() { } @Test - public void testListJobsWithCreationBounding() { + void testListJobsWithCreationBounding() { long currentMillis = currentTimeMillis(); long lowerBound = currentMillis - 3600 * 1000; long upperBound = currentMillis; @@ -5723,14 +5718,14 @@ public void testListJobsWithCreationBounding() { foundMax = Math.max(job.getStatistics().getCreationTime(), foundMax); } assertTrue( - "Found min job time " + foundMin + " earlier than " + lowerBound, foundMin >= lowerBound); + foundMin >= lowerBound, "Found min job time " + foundMin + " earlier than " + lowerBound); assertTrue( - "Found max job time " + foundMax + " later than " + upperBound, foundMax <= upperBound); - assertTrue("no jobs listed", jobCount > 0); + foundMax <= upperBound, "Found max job time " + foundMax + " later than " + upperBound); + assertTrue(jobCount > 0, "no jobs listed"); } @Test - public void testCreateAndGetJob() throws InterruptedException, TimeoutException { + void testCreateAndGetJob() throws InterruptedException, TimeoutException { String sourceTableName = "test_create_and_get_job_source_table"; String destinationTableName = "test_create_and_get_job_destination_table"; TableId sourceTable = TableId.of(DATASET, sourceTableName); @@ -5769,8 +5764,7 @@ public void testCreateAndGetJob() throws InterruptedException, TimeoutException } @Test - public void testCreateJobAndWaitForWithRetryOptions() - throws InterruptedException, TimeoutException { + void testCreateJobAndWaitForWithRetryOptions() throws InterruptedException, TimeoutException { // Note: This only tests the non failure/retry case. For retry cases, see unit tests with mocked // RPC calls. QueryJobConfiguration config = @@ -5789,8 +5783,7 @@ public void testCreateJobAndWaitForWithRetryOptions() } @Test - public void testCreateAndGetJobWithSelectedFields() - throws InterruptedException, TimeoutException { + void testCreateAndGetJobWithSelectedFields() throws InterruptedException, TimeoutException { String sourceTableName = "test_create_and_get_job_with_selected_fields_source_table"; String destinationTableName = "test_create_and_get_job_with_selected_fields_destination_table"; TableId sourceTable = TableId.of(DATASET, sourceTableName); @@ -5838,7 +5831,7 @@ public void testCreateAndGetJobWithSelectedFields() } @Test - public void testCopyJob() throws InterruptedException, TimeoutException { + void testCopyJob() throws InterruptedException, TimeoutException { String sourceTableName = "test_copy_job_source_table"; String destinationTableName = "test_copy_job_destination_table"; TableId sourceTable = TableId.of(DATASET, sourceTableName); @@ -5870,7 +5863,7 @@ public void testCopyJob() throws InterruptedException, TimeoutException { } @Test - public void testCopyJobStatistics() throws InterruptedException, TimeoutException { + void testCopyJobStatistics() throws InterruptedException, TimeoutException { String sourceTableName = "test_copy_job_statistics_source_table"; String destinationTableName = "test_copy_job_statistics_destination_table"; @@ -5901,7 +5894,7 @@ public void testCopyJobStatistics() throws InterruptedException, TimeoutExceptio } @Test - public void testSnapshotTableCopyJob() throws InterruptedException { + void testSnapshotTableCopyJob() throws InterruptedException { String sourceTableName = "test_copy_job_base_table"; String ddlTableName = TABLE_ID_DDL.getTable(); // this creates a snapshot table at specified snapshotTime @@ -5979,7 +5972,7 @@ public void testSnapshotTableCopyJob() throws InterruptedException { } @Test - public void testCopyJobWithLabelsAndExpTime() throws InterruptedException { + void testCopyJobWithLabelsAndExpTime() throws InterruptedException { String destExpiryTime = "2099-12-31T23:59:59.999999999Z"; String sourceTableName = "test_copy_job_source_table_label" + UUID.randomUUID().toString().substring(0, 8); @@ -6058,7 +6051,7 @@ public void testQueryJob() throws InterruptedException, TimeoutException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testQueryJobWithConnectionProperties() throws InterruptedException { + void testQueryJobWithConnectionProperties() throws InterruptedException { String tableName = "test_query_job_table_connection_properties"; String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); TableId destinationTable = TableId.of(DATASET, tableName); @@ -6078,7 +6071,7 @@ public void testQueryJobWithConnectionProperties() throws InterruptedException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testQueryJobWithLabels() throws InterruptedException, TimeoutException { + void testQueryJobWithLabels() throws InterruptedException, TimeoutException { String tableName = "test_query_job_table"; String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); Map labels = ImmutableMap.of("test-job-name", "test-query-job"); @@ -6101,7 +6094,7 @@ public void testQueryJobWithLabels() throws InterruptedException, TimeoutExcepti } @Test - public void testQueryJobWithSearchReturnsSearchStatisticsUnused() throws InterruptedException { + void testQueryJobWithSearchReturnsSearchStatisticsUnused() throws InterruptedException { String tableName = "test_query_job_table"; String query = "SELECT * FROM " @@ -6131,7 +6124,7 @@ public void testQueryJobWithSearchReturnsSearchStatisticsUnused() throws Interru /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test - public void testQueryJobWithRangePartitioning() throws InterruptedException { + void testQueryJobWithRangePartitioning() throws InterruptedException { String tableName = "test_query_job_table_rangepartitioning"; String query = "SELECT IntegerField, TimestampField, StringField, BooleanField FROM " @@ -6156,7 +6149,7 @@ public void testQueryJobWithRangePartitioning() throws InterruptedException { } @Test - public void testLoadJobWithRangePartitioning() throws InterruptedException { + void testLoadJobWithRangePartitioning() throws InterruptedException { String tableName = "test_load_job_table_rangepartitioning"; TableId destinationTable = TableId.of(DATASET, tableName); try { @@ -6180,7 +6173,7 @@ public void testLoadJobWithRangePartitioning() throws InterruptedException { } @Test - public void testLoadJobWithDecimalTargetTypes() throws InterruptedException { + void testLoadJobWithDecimalTargetTypes() throws InterruptedException { String tableName = "test_load_job_table_parquet_decimalTargetTypes"; TableId destinationTable = TableId.of(DATASET, tableName); String sourceUri = "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/numeric/numeric_38_12.parquet"; @@ -6208,7 +6201,7 @@ public void testLoadJobWithDecimalTargetTypes() throws InterruptedException { } @Test - public void testExternalTableWithDecimalTargetTypes() throws InterruptedException { + void testExternalTableWithDecimalTargetTypes() throws InterruptedException { String tableName = "test_create_external_table_parquet_decimalTargetTypes"; TableId destinationTable = TableId.of(DATASET, tableName); String sourceUri = "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/numeric/numeric_38_12.parquet"; @@ -6228,7 +6221,7 @@ public void testExternalTableWithDecimalTargetTypes() throws InterruptedExceptio } @Test - public void testQueryJobWithDryRun() throws InterruptedException, TimeoutException { + void testQueryJobWithDryRun() throws InterruptedException, TimeoutException { String tableName = "test_query_job_table"; String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); TableId destinationTable = TableId.of(DATASET, tableName); @@ -6246,7 +6239,7 @@ public void testQueryJobWithDryRun() throws InterruptedException, TimeoutExcepti } @Test - public void testExtractJob() throws InterruptedException, TimeoutException { + void testExtractJob() throws InterruptedException, TimeoutException { String tableName = "test_export_job_table"; TableId destinationTable = TableId.of(DATASET, tableName); Map labels = ImmutableMap.of("test-job-name", "test-load-extract-job"); @@ -6286,7 +6279,7 @@ public void testExtractJob() throws InterruptedException, TimeoutException { } @Test - public void testExtractJobWithModel() throws InterruptedException { + void testExtractJobWithModel() throws InterruptedException { String modelName = RemoteBigQueryHelper.generateModelName(); String sql = "CREATE MODEL `" @@ -6323,7 +6316,7 @@ public void testExtractJobWithModel() throws InterruptedException { } @Test - public void testExtractJobWithLabels() throws InterruptedException, TimeoutException { + void testExtractJobWithLabels() throws InterruptedException, TimeoutException { String tableName = "test_export_job_table_label"; Map labels = ImmutableMap.of("test_job_name", "test_export_job"); TableId destinationTable = TableId.of(DATASET, tableName); @@ -6349,7 +6342,7 @@ public void testExtractJobWithLabels() throws InterruptedException, TimeoutExcep } @Test - public void testCancelJob() throws InterruptedException, TimeoutException { + void testCancelJob() throws InterruptedException, TimeoutException { String destinationTableName = "test_cancel_query_job_table"; String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); TableId destinationTable = TableId.of(DATASET, destinationTableName); @@ -6363,12 +6356,12 @@ public void testCancelJob() throws InterruptedException, TimeoutException { } @Test - public void testCancelNonExistingJob() { + void testCancelNonExistingJob() { assertFalse(bigquery.cancel("test_cancel_non_existing_job")); } @Test - public void testInsertFromFile() throws InterruptedException, IOException, TimeoutException { + void testInsertFromFile() throws InterruptedException, IOException, TimeoutException { String destinationTableName = "test_insert_from_file_table"; TableId tableId = TableId.of(DATASET, destinationTableName); WriteChannelConfiguration configuration = @@ -6441,8 +6434,7 @@ public void testInsertFromFile() throws InterruptedException, IOException, Timeo } @Test - public void testInsertFromFileWithLabels() - throws InterruptedException, IOException, TimeoutException { + void testInsertFromFileWithLabels() throws InterruptedException, IOException, TimeoutException { String destinationTableName = "test_insert_from_file_table_with_labels"; TableId tableId = TableId.of(DATASET, destinationTableName); WriteChannelConfiguration configuration = @@ -6472,7 +6464,7 @@ public void testInsertFromFileWithLabels() } @Test - public void testInsertWithDecimalTargetTypes() + void testInsertWithDecimalTargetTypes() throws InterruptedException, IOException, TimeoutException { String destinationTableName = "test_insert_from_file_table_with_decimal_target_type"; TableId tableId = TableId.of(DATASET, destinationTableName); @@ -6499,7 +6491,7 @@ public void testInsertWithDecimalTargetTypes() } @Test - public void testLocation() throws Exception { + void testLocation() throws Exception { String location = "EU"; String wrongLocation = "US"; @@ -6563,14 +6555,14 @@ public void testLocation() throws Exception { .isEmpty(); assertThrows( - "querying a table with wrong location shouldn't work", BigQueryException.class, () -> otelBigquery .query( QueryJobConfiguration.of(query), JobId.newBuilder().setLocation(wrongLocation).build()) - .iterateAll()); + .iterateAll(), + "querying a table with wrong location shouldn't work"); // Test write { @@ -6590,14 +6582,14 @@ public void testLocation() throws Exception { } assertThrows( - "writing to a table with wrong location shouldn't work", BigQueryException.class, () -> { try (TableDataWriteChannel ignore = otelBigquery.writer( JobId.newBuilder().setLocation(wrongLocation).build(), writeChannelConfiguration)) {} - }); + }, + "writing to a table with wrong location shouldn't work"); } } finally { RemoteBigQueryHelper.forceDelete(bigquery, datasetName); @@ -6605,7 +6597,7 @@ public void testLocation() throws Exception { } @Test - public void testWriteChannelPreserveAsciiControlCharacters() + void testWriteChannelPreserveAsciiControlCharacters() throws InterruptedException, IOException, TimeoutException { String destinationTableName = "test_write_channel_preserve_ascii_control_characters"; TableId tableId = TableId.of(DATASET, destinationTableName); @@ -6632,7 +6624,7 @@ public void testWriteChannelPreserveAsciiControlCharacters() } @Test - public void testLoadJobPreserveAsciiControlCharacters() throws InterruptedException { + void testLoadJobPreserveAsciiControlCharacters() throws InterruptedException { String destinationTableName = "test_load_job_preserve_ascii_control_characters"; TableId destinationTable = TableId.of(DATASET, destinationTableName); @@ -6652,7 +6644,7 @@ public void testLoadJobPreserveAsciiControlCharacters() throws InterruptedExcept } @Test - public void testReferenceFileSchemaUriForAvro() { + void testReferenceFileSchemaUriForAvro() { try { String destinationTableName = "test_reference_file_schema_avro"; TableId tableId = TableId.of(DATASET, destinationTableName); @@ -6711,7 +6703,7 @@ public void testReferenceFileSchemaUriForAvro() { } @Test - public void testReferenceFileSchemaUriForParquet() { + void testReferenceFileSchemaUriForParquet() { try { String destinationTableName = "test_reference_file_schema_parquet"; TableId tableId = TableId.of(DATASET, destinationTableName); @@ -6769,7 +6761,7 @@ public void testReferenceFileSchemaUriForParquet() { } @Test - public void testCreateExternalTableWithReferenceFileSchemaAvro() { + void testCreateExternalTableWithReferenceFileSchemaAvro() { String destinationTableName = "test_create_external_table_reference_file_schema_avro"; TableId tableId = TableId.of(DATASET, destinationTableName); Schema expectedSchema = @@ -6808,7 +6800,7 @@ public void testCreateExternalTableWithReferenceFileSchemaAvro() { } @Test - public void testCreateExternalTableWithReferenceFileSchemaParquet() { + void testCreateExternalTableWithReferenceFileSchemaParquet() { String destinationTableName = "test_create_external_table_reference_file_schema_parquet"; TableId tableId = TableId.of(DATASET, destinationTableName); Schema expectedSchema = @@ -6849,7 +6841,7 @@ public void testCreateExternalTableWithReferenceFileSchemaParquet() { } @Test - public void testCloneTableCopyJob() throws InterruptedException { + void testCloneTableCopyJob() throws InterruptedException { String sourceTableName = "test_copy_job_base_table"; String ddlTableName = TABLE_ID_DDL.getTable(); String cloneTableName = "test_clone_table"; @@ -6902,15 +6894,15 @@ public void testCloneTableCopyJob() throws InterruptedException { } @Test - public void testHivePartitioningOptionsFieldsFieldExistence() throws InterruptedException { + void testHivePartitioningOptionsFieldsFieldExistence() throws InterruptedException { String tableName = "hive_partitioned_external_table"; // Create data on GCS String sourceDirectory = "bigquery/hive-partitioning-table/example"; BlobInfo blobInfo = BlobInfo.newBuilder(BUCKET, sourceDirectory + "/key=foo/data.json").build(); assertNotNull( - "Failed to upload JSON to GCS", - storage.create(blobInfo, "{\"name\":\"bar\"}".getBytes(StandardCharsets.UTF_8))); + storage.create(blobInfo, "{\"name\":\"bar\"}".getBytes(StandardCharsets.UTF_8)), + "Failed to upload JSON to GCS"); String sourceUri = "gs://" + BUCKET + "/" + sourceDirectory + "/*"; String sourceUriPrefix = "gs://" + BUCKET + "/" + sourceDirectory + "/"; @@ -6946,7 +6938,7 @@ public void testHivePartitioningOptionsFieldsFieldExistence() throws Interrupted } @Test - public void testPrimaryKey() { + void testPrimaryKey() { String tableName = "test_primary_key"; TableId tableId = TableId.of(DATASET, tableName); PrimaryKey primaryKey = PrimaryKey.newBuilder().setColumns(Arrays.asList("ID")).build(); @@ -6971,7 +6963,7 @@ public void testPrimaryKey() { } @Test - public void testPrimaryKeyUpdate() { + void testPrimaryKeyUpdate() { String tableName = "test_primary_key_update"; TableId tableId = TableId.of(DATASET, tableName); PrimaryKey primaryKey = @@ -7000,7 +6992,7 @@ public void testPrimaryKeyUpdate() { } @Test - public void testForeignKeys() { + void testForeignKeys() { String tableNamePk = "test_foreign_key"; String tableNameFk = "test_foreign_key2"; // TableIds referenced by foreign keys need project id to be specified @@ -7050,7 +7042,7 @@ public void testForeignKeys() { } @Test - public void testForeignKeysUpdate() { + void testForeignKeysUpdate() { String tableNameFk = "test_foreign_key"; String tableNamePk1 = "test_foreign_key2"; String tableNamePk2 = "test_foreign_key3"; @@ -7148,7 +7140,7 @@ public void testForeignKeysUpdate() { } @Test - public void testAlreadyExistJobExceptionHandling() throws InterruptedException { + void testAlreadyExistJobExceptionHandling() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + DATASET @@ -7175,7 +7167,7 @@ public void testAlreadyExistJobExceptionHandling() throws InterruptedException { } @Test - public void testStatelessQueries() throws InterruptedException { + void testStatelessQueries() throws InterruptedException { // Create local BigQuery to not contaminate global test parameters. RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); BigQuery bigQuery = bigqueryHelper.getOptions().getService(); @@ -7187,8 +7179,8 @@ public void testStatelessQueries() throws InterruptedException { // Ideally Stateless query will return queryId but in some cases it would return jobId instead // of queryId based on the query complexity or other factors (job timeout configs). assertTrue( - "Exactly one of jobId or queryId should be non-null", - (tableResult.getJobId() != null) ^ (tableResult.getQueryId() != null)); + (tableResult.getJobId() != null) ^ (tableResult.getQueryId() != null), + "Exactly one of jobId or queryId should be non-null"); // Job creation takes over, no query id is created. bigQuery.getOptions().setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_REQUIRED); @@ -7209,7 +7201,7 @@ private TableResult executeSimpleQuery(BigQuery bigQuery) throws InterruptedExce } @Test - public void testTableResultJobIdAndQueryId() throws InterruptedException { + void testTableResultJobIdAndQueryId() throws InterruptedException { // For stateless queries, jobId and queryId are populated based on the following criteria: // 1. For stateless queries, then queryId is populated. // 2. For queries that fails the requirements to be stateless, then jobId is populated and @@ -7232,8 +7224,8 @@ public void testTableResultJobIdAndQueryId() throws InterruptedException { // Ideally Stateless query will return queryId but in some cases it would return jobId instead // of queryId based on the query complexity or other factors (job timeout configs). assertTrue( - "Exactly one of jobId or queryId should be non-null", - (result.getJobId() != null) ^ (result.getQueryId() != null)); + (result.getJobId() != null) ^ (result.getQueryId() != null), + "Exactly one of jobId or queryId should be non-null"); // Test scenario 2 by failing stateless check by setting job timeout. QueryJobConfiguration configQueryWithJob = @@ -7261,7 +7253,7 @@ public void testTableResultJobIdAndQueryId() throws InterruptedException { } @Test - public void testStatelessQueriesWithLocation() throws Exception { + void testStatelessQueriesWithLocation() throws Exception { // This test validates BigQueryOption location is used for stateless query by verifying that the // stateless query fails when the BigQueryOption location does not match the dataset location. String location = "EU"; @@ -7294,7 +7286,6 @@ public void testStatelessQueriesWithLocation() throws Exception { // Test stateless query when BigQueryOption location does not match dataset location. assertThrows( - "querying a table with wrong location shouldn't work", BigQueryException.class, () -> { BigQuery bigQueryWrongLocation = @@ -7306,14 +7297,15 @@ public void testStatelessQueriesWithLocation() throws Exception { .getOptions() .setDefaultJobCreationMode(JobCreationMode.JOB_CREATION_OPTIONAL); bigQueryWrongLocation.query(QueryJobConfiguration.of(query)); - }); + }, + "querying a table with wrong location shouldn't work"); } finally { RemoteBigQueryHelper.forceDelete(bigQuery, datasetName); } } @Test - public void testQueryWithTimeout() throws InterruptedException { + void testQueryWithTimeout() throws InterruptedException { // Validate that queryWithTimeout returns either TableResult or Job object RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); @@ -7357,7 +7349,7 @@ public void testQueryWithTimeout() throws InterruptedException { } @Test - public void testUniverseDomainWithInvalidUniverseDomain() { + void testUniverseDomainWithInvalidUniverseDomain() { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); BigQueryOptions bigQueryOptions = bigqueryHelper.getOptions().toBuilder() @@ -7368,9 +7360,9 @@ public void testUniverseDomainWithInvalidUniverseDomain() { BigQueryException exception = assertThrows( - "RPCs to invalid universe domain should fail", BigQueryException.class, - () -> bigQuery.listDatasets("bigquery-public-data")); + () -> bigQuery.listDatasets("bigquery-public-data"), + "RPCs to invalid universe domain should fail"); assertEquals(HTTP_UNAUTHORIZED, exception.getCode()); assertNotNull(exception.getMessage()); assertTrue( @@ -7380,7 +7372,7 @@ public void testUniverseDomainWithInvalidUniverseDomain() { } @Test - public void testInvalidUniverseDomainWithMismatchCredentials() { + void testInvalidUniverseDomainWithMismatchCredentials() { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); BigQueryOptions bigQueryOptions = bigqueryHelper.getOptions().toBuilder() @@ -7390,9 +7382,9 @@ public void testInvalidUniverseDomainWithMismatchCredentials() { BigQueryException exception = assertThrows( - "RPCs to invalid universe domain should fail", BigQueryException.class, - () -> bigQuery.listDatasets("bigquery-public-data")); + () -> bigQuery.listDatasets("bigquery-public-data"), + "RPCs to invalid universe domain should fail"); assertEquals(HTTP_UNAUTHORIZED, exception.getCode()); assertNotNull(exception.getMessage()); assertTrue( @@ -7402,7 +7394,7 @@ public void testInvalidUniverseDomainWithMismatchCredentials() { } @Test - public void testUniverseDomainWithMatchingDomain() { + void testUniverseDomainWithMatchingDomain() { // Test a valid domain using the default credentials and Google default universe domain. RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); BigQueryOptions bigQueryOptions = @@ -7427,7 +7419,7 @@ public void testUniverseDomainWithMatchingDomain() { } @Test - public void testExternalTableMetadataCachingNotEnable() throws InterruptedException { + void testExternalTableMetadataCachingNotEnable() throws InterruptedException { String tableName = "test_metadata_cache_not_enable"; TableId tableId = TableId.of(DATASET, tableName); ExternalTableDefinition externalTableDefinition = @@ -7468,7 +7460,7 @@ public void testExternalTableMetadataCachingNotEnable() throws InterruptedExcept } @Test - public void testExternalMetadataCacheModeFailForNonBiglake() { + void testExternalMetadataCacheModeFailForNonBiglake() { // Validate that MetadataCacheMode is passed to the backend. // TODO: Enhance this test after BigLake testing infrastructure is inplace. String tableName = "test_metadata_cache_mode_fail_for_non_biglake"; @@ -7482,9 +7474,9 @@ public void testExternalMetadataCacheModeFailForNonBiglake() { BigQueryException exception = assertThrows( - "BigQueryException was expected", BigQueryException.class, - () -> bigquery.create(tableInfo)); + () -> bigquery.create(tableInfo), + "BigQueryException was expected"); BigQueryError error = exception.getError(); assertNotNull(error); assertEquals("invalid", error.getReason()); @@ -7495,7 +7487,7 @@ public void testExternalMetadataCacheModeFailForNonBiglake() { } @Test - public void testObjectTable() throws InterruptedException { + void testObjectTable() throws InterruptedException { String tableName = "test_object_table"; TableId tableId = TableId.of(DATASET, tableName); @@ -7538,7 +7530,7 @@ public void testObjectTable() throws InterruptedException { } @Test - public void testQueryExportStatistics() throws InterruptedException { + void testQueryExportStatistics() throws InterruptedException { String query = String.format( "EXPORT DATA OPTIONS(\n" @@ -7562,7 +7554,7 @@ public void testQueryExportStatistics() throws InterruptedException { } @Test - public void testLoadConfigurationFlexibleColumnName() throws InterruptedException { + void testLoadConfigurationFlexibleColumnName() throws InterruptedException { // See https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#columnnamecharactermap for // mapping. @@ -7618,7 +7610,7 @@ public void testLoadConfigurationFlexibleColumnName() throws InterruptedExceptio } @Test - public void testStatementType() throws InterruptedException { + void testStatementType() throws InterruptedException { String tableName = "test_materialized_view_table_statemnt_type"; String createQuery = String.format( diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java index 332071a62078..4942c300832b 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java @@ -15,11 +15,11 @@ */ package com.google.cloud.bigquery.it; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQueryException; @@ -47,9 +47,9 @@ import java.util.UUID; import java.util.stream.Collectors; import java.util.stream.StreamSupport; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; public class ITHighPrecisionTimestamp { @@ -69,7 +69,7 @@ public class ITHighPrecisionTimestamp { private static final String TIMESTAMP2 = "1970-01-01T12:34:56.123456789123Z"; private static final String TIMESTAMP3 = "2000-01-01T12:34:56.123456789123Z"; - @BeforeClass + @BeforeAll public static void beforeClass() { BigQueryOptions.Builder builder = BigQueryOptions.newBuilder() @@ -110,7 +110,7 @@ public static void beforeClass() { assertEquals(0, response.getInsertErrors().size()); } - @AfterClass + @AfterAll public static void afterClass() { if (bigquery != null) { bigquery.delete(defaultTableId); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java index 790f35fe5c80..84e355f9e616 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java @@ -16,12 +16,13 @@ package com.google.cloud.bigquery.it; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; import com.google.cloud.ServiceOptions; import com.google.cloud.bigquery.BigQuery; @@ -53,6 +54,7 @@ import java.io.IOException; import java.math.BigDecimal; import java.nio.charset.StandardCharsets; +import java.sql.Date; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Time; @@ -66,12 +68,12 @@ import java.util.logging.Level; import java.util.logging.Logger; import org.apache.arrow.vector.util.JsonStringArrayList; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.Timeout; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.Timeout; +@Timeout(value = 1800) // 30 min timeout public class ITNightlyBigQueryTest { private static final Logger logger = Logger.getLogger(ITNightlyBigQueryTest.class.getName()); private static final String DATASET = RemoteBigQueryHelper.generateDatasetName(); @@ -170,9 +172,7 @@ public class ITNightlyBigQueryTest { .setDescription("IntervalFieldDescription") .build()); - @Rule public Timeout globalTimeout = Timeout.seconds(1800); // setting 30 mins as the timeout - - @BeforeClass + @BeforeAll public static void beforeClass() throws InterruptedException, IOException { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); bigquery = bigqueryHelper.getOptions().getService(); @@ -181,17 +181,15 @@ public static void beforeClass() throws InterruptedException, IOException { populateTestRecords(DATASET, TABLE); } - @AfterClass + @AfterAll public static void afterClass() { try { if (bigquery != null) { deleteTable(DATASET, TABLE); RemoteBigQueryHelper.forceDelete(bigquery, DATASET); - } else { - fail("Error clearing the test dataset"); } } catch (BigQueryException e) { - fail("Error clearing the test dataset " + e); + throw new RuntimeException("Error clearing the test dataset " + e); } } @@ -199,9 +197,8 @@ public static void afterClass() { public void testInvalidQuery() throws BigQuerySQLException { Connection connection = getConnection(); try { - BigQueryResult bigQueryResult = connection.executeSelect(INVALID_QUERY); - fail("BigQuerySQLException was expected"); - } catch (BigQuerySQLException ex) { + BigQuerySQLException ex = + assertThrows(BigQuerySQLException.class, () -> connection.executeSelect(INVALID_QUERY)); assertNotNull(ex.getMessage()); assertTrue(ex.getMessage().toLowerCase().contains("unexpected keyword into")); } finally { @@ -215,282 +212,300 @@ public void testInvalidQuery() throws BigQuerySQLException { @Test public void testIterateAndOrder() throws SQLException { Connection connection = getConnection(); - BigQueryResult bigQueryResult = connection.executeSelect(QUERY); - logger.log(Level.INFO, "Query used: {0}", QUERY); - ResultSet rs = bigQueryResult.getResultSet(); - int cnt = 0; - - int prevIntegerFieldVal = 0; - while (rs.next()) { - if (cnt == 0) { // first row is supposed to be null - assertNull(rs.getString("StringField")); - assertNull(rs.getString("GeographyField")); - Object intAryField = rs.getObject("IntegerArrayField"); - if (intAryField instanceof JsonStringArrayList) { - assertEquals( - new JsonStringArrayList(), - ((JsonStringArrayList) intAryField)); // null array is returned as an empty array + try { + BigQueryResult bigQueryResult = connection.executeSelect(QUERY); + logger.log(Level.INFO, "Query used: {0}", QUERY); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + + int prevIntegerFieldVal = 0; + while (rs.next()) { + if (cnt == 0) { // first row is supposed to be null + assertNull(rs.getString("StringField")); + assertNull(rs.getString("GeographyField")); + Object intAryField = rs.getObject("IntegerArrayField"); + if (intAryField instanceof JsonStringArrayList) { + assertEquals( + new JsonStringArrayList(), + ((JsonStringArrayList) intAryField)); // null array is returned as an empty array + } + assertFalse(rs.getBoolean("BooleanField")); + assertTrue(0.0d == rs.getDouble("BigNumericField")); + assertTrue(0 == rs.getInt("IntegerField")); + assertTrue(0L == rs.getLong("NumericField")); + assertNull(rs.getBytes("BytesField")); + assertNull(rs.getTimestamp("TimestampField")); + assertNull(rs.getTime("TimeField")); + assertNull(rs.getDate("DateField")); + assertNull(rs.getString("JSONField")); + assertFalse(rs.getBoolean("BooleanField_1")); + assertNull(rs.getString("StringField_1")); + assertNull(rs.getString("hello")); // equivalent of testJsonType + assertEquals(0, rs.getInt("id")); + + } else { // remaining rows are supposed to be non null + assertNotNull(rs.getString("StringField")); + assertNotNull(rs.getString("GeographyField")); + assertNotNull(rs.getObject("IntegerArrayField")); + assertTrue(rs.getBoolean("BooleanField")); + assertTrue(0.0d < rs.getDouble("BigNumericField")); + assertTrue(0 < rs.getInt("IntegerField")); + assertTrue(0L < rs.getLong("NumericField")); + assertNotNull(rs.getBytes("BytesField")); + assertNotNull(rs.getTimestamp("TimestampField")); + assertNotNull(rs.getTime("TimeField")); + assertNotNull(rs.getDate("DateField")); + assertNotNull(rs.getString("JSONField")); + assertFalse(rs.getBoolean("BooleanField_1")); + assertNotNull(rs.getString("StringField_1")); + + // check the order of the records + assertTrue(prevIntegerFieldVal < rs.getInt("IntegerField")); + prevIntegerFieldVal = rs.getInt("IntegerField"); + + testForAllDataTypeValues(rs, cnt); // asserts the value of each row } - assertFalse(rs.getBoolean("BooleanField")); - assertTrue(0.0d == rs.getDouble("BigNumericField")); - assertTrue(0 == rs.getInt("IntegerField")); - assertTrue(0L == rs.getLong("NumericField")); - assertNull(rs.getBytes("BytesField")); - assertNull(rs.getTimestamp("TimestampField")); - assertNull(rs.getTime("TimeField")); - assertNull(rs.getDate("DateField")); - assertNull(rs.getString("JSONField")); - assertFalse(rs.getBoolean("BooleanField_1")); - assertNull(rs.getString("StringField_1")); - assertNull(rs.getString("hello")); // equivalent of testJsonType - assertEquals(0, rs.getInt("id")); - - } else { // remaining rows are supposed to be non null - assertNotNull(rs.getString("StringField")); - assertNotNull(rs.getString("GeographyField")); - assertNotNull(rs.getObject("IntegerArrayField")); - assertTrue(rs.getBoolean("BooleanField")); - assertTrue(0.0d < rs.getDouble("BigNumericField")); - assertTrue(0 < rs.getInt("IntegerField")); - assertTrue(0L < rs.getLong("NumericField")); - assertNotNull(rs.getBytes("BytesField")); - assertNotNull(rs.getTimestamp("TimestampField")); - assertNotNull(rs.getTime("TimeField")); - assertNotNull(rs.getDate("DateField")); - assertNotNull(rs.getString("JSONField")); - assertFalse(rs.getBoolean("BooleanField_1")); - assertNotNull(rs.getString("StringField_1")); - - // check the order of the records - assertTrue(prevIntegerFieldVal < rs.getInt("IntegerField")); - prevIntegerFieldVal = rs.getInt("IntegerField"); - - testForAllDataTypeValues(rs, cnt); // asserts the value of each row + ++cnt; } - ++cnt; + assertEquals(LIMIT_RECS, cnt); // all the records were retrieved + } finally { + connection.close(); } - assertEquals(LIMIT_RECS, cnt); // all the records were retrieved - connection.close(); } /* This tests for the order of the records using default connection settings as well as the value of the records using testForAllDataTypeValues */ @Test - public void testIterateAndOrderDefaultConnSettings() throws SQLException { + void testIterateAndOrderDefaultConnSettings() throws SQLException { Connection connection = bigquery.createConnection(); - BigQueryResult bigQueryResult = connection.executeSelect(QUERY); - logger.log(Level.INFO, "Query used: {0}", QUERY); - ResultSet rs = bigQueryResult.getResultSet(); - int cnt = 0; - - int prevIntegerFieldVal = 0; - while (rs.next()) { - if (cnt == 0) { // first row is supposed to be null - assertNull(rs.getString("StringField")); - assertNull(rs.getString("GeographyField")); - Object intAryField = rs.getObject("IntegerArrayField"); - if (intAryField instanceof JsonStringArrayList) { - assertEquals( - new JsonStringArrayList(), - ((JsonStringArrayList) intAryField)); // null array is returned as an empty array + try { + BigQueryResult bigQueryResult = connection.executeSelect(QUERY); + logger.log(Level.INFO, "Query used: {0}", QUERY); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + + int prevIntegerFieldVal = 0; + while (rs.next()) { + if (cnt == 0) { // first row is supposed to be null + assertNull(rs.getString("StringField")); + assertNull(rs.getString("GeographyField")); + Object intAryField = rs.getObject("IntegerArrayField"); + if (intAryField instanceof JsonStringArrayList) { + assertEquals( + new JsonStringArrayList(), + ((JsonStringArrayList) intAryField)); // null array is returned as an empty array + } + assertFalse(rs.getBoolean("BooleanField")); + assertTrue(0.0d == rs.getDouble("BigNumericField")); + assertTrue(0 == rs.getInt("IntegerField")); + assertTrue(0L == rs.getLong("NumericField")); + assertNull(rs.getBytes("BytesField")); + assertNull(rs.getTimestamp("TimestampField")); + assertNull(rs.getTime("TimeField")); + assertNull(rs.getDate("DateField")); + assertNull(rs.getString("JSONField")); + assertFalse(rs.getBoolean("BooleanField_1")); + assertNull(rs.getString("StringField_1")); + assertNull(rs.getString("hello")); // equivalent of testJsonType + assertEquals(0, rs.getInt("id")); + + } else { // remaining rows are supposed to be non null + assertNotNull(rs.getString("StringField")); + assertNotNull(rs.getString("GeographyField")); + assertNotNull(rs.getObject("IntegerArrayField")); + assertTrue(rs.getBoolean("BooleanField")); + assertTrue(0.0d < rs.getDouble("BigNumericField")); + assertTrue(0 < rs.getInt("IntegerField")); + assertTrue(0L < rs.getLong("NumericField")); + assertNotNull(rs.getBytes("BytesField")); + assertNotNull(rs.getTimestamp("TimestampField")); + assertNotNull(rs.getTime("TimeField")); + assertNotNull(rs.getDate("DateField")); + assertNotNull(rs.getString("JSONField")); + assertFalse(rs.getBoolean("BooleanField_1")); + assertNotNull(rs.getString("StringField_1")); + + // check the order of the records + assertTrue(prevIntegerFieldVal < rs.getInt("IntegerField")); + prevIntegerFieldVal = rs.getInt("IntegerField"); + + testForAllDataTypeValues(rs, cnt); // asserts the value of each row } - assertFalse(rs.getBoolean("BooleanField")); - assertTrue(0.0d == rs.getDouble("BigNumericField")); - assertTrue(0 == rs.getInt("IntegerField")); - assertTrue(0L == rs.getLong("NumericField")); - assertNull(rs.getBytes("BytesField")); - assertNull(rs.getTimestamp("TimestampField")); - assertNull(rs.getTime("TimeField")); - assertNull(rs.getDate("DateField")); - assertNull(rs.getString("JSONField")); - assertFalse(rs.getBoolean("BooleanField_1")); - assertNull(rs.getString("StringField_1")); - assertNull(rs.getString("hello")); // equivalent of testJsonType - assertEquals(0, rs.getInt("id")); - - } else { // remaining rows are supposed to be non null - assertNotNull(rs.getString("StringField")); - assertNotNull(rs.getString("GeographyField")); - assertNotNull(rs.getObject("IntegerArrayField")); - assertTrue(rs.getBoolean("BooleanField")); - assertTrue(0.0d < rs.getDouble("BigNumericField")); - assertTrue(0 < rs.getInt("IntegerField")); - assertTrue(0L < rs.getLong("NumericField")); - assertNotNull(rs.getBytes("BytesField")); - assertNotNull(rs.getTimestamp("TimestampField")); - assertNotNull(rs.getTime("TimeField")); - assertNotNull(rs.getDate("DateField")); - assertNotNull(rs.getString("JSONField")); - assertFalse(rs.getBoolean("BooleanField_1")); - assertNotNull(rs.getString("StringField_1")); - - // check the order of the records - assertTrue(prevIntegerFieldVal < rs.getInt("IntegerField")); - prevIntegerFieldVal = rs.getInt("IntegerField"); - - testForAllDataTypeValues(rs, cnt); // asserts the value of each row + ++cnt; } - ++cnt; + assertEquals(LIMIT_RECS, cnt); // all the records were retrieved + } finally { + connection.close(); } - assertEquals(LIMIT_RECS, cnt); // all the records were retrieved - assertTrue(connection.close()); } /* This tests interrupts the execution in between and checks if it has been interrupted successfully while using ReadAPI */ @Test - public void testConnectionClose() throws SQLException { + void testConnectionClose() throws SQLException { Connection connection = bigquery.createConnection(); - assertNotNull("bigquery.createConnection() returned null", connection); - BigQueryResult bigQueryResult = connection.executeSelect(QUERY); - logger.log(Level.INFO, "Query used: {0}", QUERY); - ResultSet rs = bigQueryResult.getResultSet(); - int cnt = 0; - while (rs.next()) { - ++cnt; - if (cnt == 50000) { // interrupt at 50K - assertTrue(connection.close()); + try { + assertNotNull(connection, "bigquery.createConnection() returned null"); + BigQueryResult bigQueryResult = connection.executeSelect(QUERY); + logger.log(Level.INFO, "Query used: {0}", QUERY); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + while (rs.next()) { + ++cnt; + if (cnt == 50000) { // interrupt at 50K + assertTrue(connection.close()); + } } + assertTrue(LIMIT_RECS > cnt); + // we stopped at 50K but still we can expect additional records (typically ~100) + // to be retrieved + // as a number of records should have been already buffered. less than + // LIMIT_RECS should be retrieved + } finally { + connection.close(); } - assertTrue( - LIMIT_RECS - > cnt); // we stopped at 50K but still we can expect additional records (typically ~100) - // to be retrieved - // as a number of records should have been already buffered. less than - // LIMIT_RECS should be retrieved } @Test - public void testMultipleRuns() throws SQLException { - - Connection connection = getConnection(); - BigQueryResult bigQueryResult = connection.executeSelect(MULTI_QUERY); - logger.log(Level.INFO, "Query used: {0}", MULTI_QUERY); - ResultSet rs = bigQueryResult.getResultSet(); - int cnt = 0; + void testMultipleRuns() throws SQLException { int totalCnt = 0; - - int prevIntegerFieldVal = 0; - while (rs.next()) { - if (cnt == 0) { // first row is supposed to be null - assertNull(rs.getString("StringField")); - assertNull(rs.getString("GeographyField")); - Object intAryField = rs.getObject("IntegerArrayField"); - if (intAryField instanceof JsonStringArrayList) { - assertEquals( - new JsonStringArrayList(), - ((JsonStringArrayList) intAryField)); // null array is returned as an empty array + Connection connection = getConnection(); + try { + BigQueryResult bigQueryResult = connection.executeSelect(MULTI_QUERY); + logger.log(Level.INFO, "Query used: {0}", MULTI_QUERY); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + + int prevIntegerFieldVal = 0; + while (rs.next()) { + if (cnt == 0) { // first row is supposed to be null + assertNull(rs.getString("StringField")); + assertNull(rs.getString("GeographyField")); + Object intAryField = rs.getObject("IntegerArrayField"); + if (intAryField instanceof JsonStringArrayList) { + assertEquals( + new JsonStringArrayList(), + ((JsonStringArrayList) intAryField)); // null array is returned as an empty array + } + assertFalse(rs.getBoolean("BooleanField")); + assertTrue(0.0d == rs.getDouble("BigNumericField")); + assertTrue(0 == rs.getInt("IntegerField")); + assertTrue(0L == rs.getLong("NumericField")); + assertNull(rs.getBytes("BytesField")); + assertNull(rs.getTimestamp("TimestampField")); + assertNull(rs.getTime("TimeField")); + assertNull(rs.getDate("DateField")); + assertNull(rs.getString("JSONField")); + assertFalse(rs.getBoolean("BooleanField_1")); + assertNull(rs.getString("StringField_1")); + assertNull(rs.getString("hello")); // equivalent of testJsonType + assertEquals(0, rs.getInt("id")); + + } else { // remaining rows are supposed to be non null + // check the order of the records + assertTrue(prevIntegerFieldVal < rs.getInt("IntegerField")); + prevIntegerFieldVal = rs.getInt("IntegerField"); + + testForAllDataTypeValues(rs, cnt); // asserts the value of each row } - assertFalse(rs.getBoolean("BooleanField")); - assertTrue(0.0d == rs.getDouble("BigNumericField")); - assertTrue(0 == rs.getInt("IntegerField")); - assertTrue(0L == rs.getLong("NumericField")); - assertNull(rs.getBytes("BytesField")); - assertNull(rs.getTimestamp("TimestampField")); - assertNull(rs.getTime("TimeField")); - assertNull(rs.getDate("DateField")); - assertNull(rs.getString("JSONField")); - assertFalse(rs.getBoolean("BooleanField_1")); - assertNull(rs.getString("StringField_1")); - assertNull(rs.getString("hello")); // equivalent of testJsonType - assertEquals(0, rs.getInt("id")); - - } else { // remaining rows are supposed to be non null - // check the order of the records - assertTrue(prevIntegerFieldVal < rs.getInt("IntegerField")); - prevIntegerFieldVal = rs.getInt("IntegerField"); - - testForAllDataTypeValues(rs, cnt); // asserts the value of each row + ++cnt; } - ++cnt; + totalCnt += cnt; + } finally { + connection.close(); } - connection.close(); - totalCnt += cnt; + // Repeat the same run - connection = getConnection(); - bigQueryResult = connection.executeSelect(MULTI_QUERY); - rs = bigQueryResult.getResultSet(); - cnt = 0; - prevIntegerFieldVal = 0; - while (rs.next()) { - if (cnt == 0) { // first row is supposed to be null - assertNull(rs.getString("StringField")); - assertNull(rs.getString("GeographyField")); - Object intAryField = rs.getObject("IntegerArrayField"); - if (intAryField instanceof JsonStringArrayList) { - assertEquals( - new JsonStringArrayList(), - ((JsonStringArrayList) intAryField)); // null array is returned as an empty array + Connection connection1 = getConnection(); + try { + BigQueryResult bigQueryResult = connection1.executeSelect(MULTI_QUERY); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + int prevIntegerFieldVal = 0; + while (rs.next()) { + if (cnt == 0) { // first row is supposed to be null + assertNull(rs.getString("StringField")); + assertNull(rs.getString("GeographyField")); + Object intAryField = rs.getObject("IntegerArrayField"); + if (intAryField instanceof JsonStringArrayList) { + assertEquals( + new JsonStringArrayList(), + ((JsonStringArrayList) intAryField)); // null array is returned as an empty array + } + assertFalse(rs.getBoolean("BooleanField")); + assertTrue(0.0d == rs.getDouble("BigNumericField")); + assertTrue(0 == rs.getInt("IntegerField")); + assertTrue(0L == rs.getLong("NumericField")); + assertNull(rs.getBytes("BytesField")); + assertNull(rs.getTimestamp("TimestampField")); + assertNull(rs.getTime("TimeField")); + assertNull(rs.getDate("DateField")); + assertNull(rs.getString("JSONField")); + assertFalse(rs.getBoolean("BooleanField_1")); + assertNull(rs.getString("StringField_1")); + assertNull(rs.getString("hello")); // equivalent of testJsonType + assertEquals(0, rs.getInt("id")); + + } else { // remaining rows are supposed to be non null + // check the order of the records + assertTrue(prevIntegerFieldVal < rs.getInt("IntegerField")); + prevIntegerFieldVal = rs.getInt("IntegerField"); + + testForAllDataTypeValues(rs, cnt); // asserts the value of each row } - assertFalse(rs.getBoolean("BooleanField")); - assertTrue(0.0d == rs.getDouble("BigNumericField")); - assertTrue(0 == rs.getInt("IntegerField")); - assertTrue(0L == rs.getLong("NumericField")); - assertNull(rs.getBytes("BytesField")); - assertNull(rs.getTimestamp("TimestampField")); - assertNull(rs.getTime("TimeField")); - assertNull(rs.getDate("DateField")); - assertNull(rs.getString("JSONField")); - assertFalse(rs.getBoolean("BooleanField_1")); - assertNull(rs.getString("StringField_1")); - assertNull(rs.getString("hello")); // equivalent of testJsonType - assertEquals(0, rs.getInt("id")); - - } else { // remaining rows are supposed to be non null - // check the order of the records - assertTrue(prevIntegerFieldVal < rs.getInt("IntegerField")); - prevIntegerFieldVal = rs.getInt("IntegerField"); - - testForAllDataTypeValues(rs, cnt); // asserts the value of each row + ++cnt; } - ++cnt; + totalCnt += cnt; + } finally { + connection1.close(); } - connection.close(); - totalCnt += cnt; assertEquals(MULTI_LIMIT_RECS * 2, totalCnt); } @Test - public void testPositionalParams() + void testPositionalParams() throws SQLException { // Bypasses Read API as it doesnt support Positional Params Connection connection = getConnection(); - Parameter dateParam = - Parameter.newBuilder().setValue(QueryParameterValue.date("2022-01-01")).build(); - Parameter boolParam = Parameter.newBuilder().setValue(QueryParameterValue.bool(true)).build(); - Parameter intParam = Parameter.newBuilder().setValue(QueryParameterValue.int64(1)).build(); - Parameter numericParam = - Parameter.newBuilder().setValue(QueryParameterValue.numeric(new BigDecimal(100))).build(); - List parameters = ImmutableList.of(dateParam, boolParam, intParam, numericParam); - - BigQueryResult bigQueryResult = connection.executeSelect(POSITIONAL_QUERY, parameters); - logger.log(Level.INFO, "Query used: {0}", POSITIONAL_QUERY); - ResultSet rs = bigQueryResult.getResultSet(); - int cnt = 0; - while (rs.next()) { - assertFalse(rs.getBoolean("BooleanField")); - assertTrue(0.0d <= rs.getDouble("BigNumericField")); - assertTrue(0 <= rs.getInt("IntegerField")); - assertTrue(0L <= rs.getLong("NumericField")); - assertNotNull(rs.getBytes("BytesField")); - assertNotNull(rs.getTimestamp("TimestampField")); - assertNotNull(rs.getTime("TimeField")); - assertNotNull(rs.getDate("DateField")); - assertNotNull(rs.getString("JSONField")); - assertTrue(rs.getBoolean("BooleanField_1")); - assertNotNull(rs.getString("StringField_1")); - ++cnt; + try { + Parameter dateParam = + Parameter.newBuilder().setValue(QueryParameterValue.date("2022-01-01")).build(); + Parameter boolParam = Parameter.newBuilder().setValue(QueryParameterValue.bool(true)).build(); + Parameter intParam = Parameter.newBuilder().setValue(QueryParameterValue.int64(1)).build(); + Parameter numericParam = + Parameter.newBuilder().setValue(QueryParameterValue.numeric(new BigDecimal(100))).build(); + List parameters = ImmutableList.of(dateParam, boolParam, intParam, numericParam); + + BigQueryResult bigQueryResult = connection.executeSelect(POSITIONAL_QUERY, parameters); + logger.log(Level.INFO, "Query used: {0}", POSITIONAL_QUERY); + ResultSet rs = bigQueryResult.getResultSet(); + int cnt = 0; + while (rs.next()) { + assertFalse(rs.getBoolean("BooleanField")); + assertTrue(0.0d <= rs.getDouble("BigNumericField")); + assertTrue(0 <= rs.getInt("IntegerField")); + assertTrue(0L <= rs.getLong("NumericField")); + assertNotNull(rs.getBytes("BytesField")); + assertNotNull(rs.getTimestamp("TimestampField")); + assertNotNull(rs.getTime("TimeField")); + assertNotNull(rs.getDate("DateField")); + assertNotNull(rs.getString("JSONField")); + assertTrue(rs.getBoolean("BooleanField_1")); + assertNotNull(rs.getString("StringField_1")); + ++cnt; + } + assertEquals(MULTI_LIMIT_RECS, cnt); + } finally { + connection.close(); } - connection.close(); - assertEquals(MULTI_LIMIT_RECS, cnt); } @Test // This testcase reads rows in bulk for a public table to make sure we do not get // table-not-found exception. Ref: b/241134681 . This exception has been seen while reading data // in bulk - public void testForTableNotFound() throws SQLException { + void testForTableNotFound() throws SQLException { int recordCnt = 50000000; // 5Mil String query = String.format( @@ -578,8 +593,7 @@ private static void testForAllDataTypeValues(ResultSet rs, int cnt) throws SQLEx // Timestamp, Time, DateTime and Date fields assertEquals(1649064795000L, rs.getTimestamp("TimestampField").getTime()); - assertEquals( - java.sql.Date.valueOf("2022-01-01").toString(), rs.getDate("DateField").toString()); + assertEquals(Date.valueOf("2022-01-01").toString(), rs.getDate("DateField").toString()); // Time is represented independent of a specific date and timezone. For example a 12:11:35 (GMT) // is returned as // 17:11:35 (GMT+5:30) . So we need to adjust the offset @@ -615,15 +629,15 @@ private static void addBatchRecords(TableId tableId) { for (Map.Entry> entry : response.getInsertErrors().entrySet()) { logger.log(Level.WARNING, "Exception while adding records {0}", entry.getValue()); } - fail("Response has errors"); + throw new BigQueryException(0, "Response has errors"); } } catch (BigQueryException e) { logger.log(Level.WARNING, "Exception while adding records {0}", e); - fail("Error in addBatchRecords"); + throw new BigQueryException(0, "Error in addBatchRecords", e); } } - private static void createTable(String datasetName, String tableName, Schema schema) { + static void createTable(String datasetName, String tableName, Schema schema) { try { TableId tableId = TableId.of(datasetName, tableName); TableDefinition tableDefinition = StandardTableDefinition.of(schema); @@ -635,7 +649,7 @@ private static void createTable(String datasetName, String tableName, Schema sch } } - public static void deleteTable(String datasetName, String tableName) { + static void deleteTable(String datasetName, String tableName) { try { assertTrue(bigquery.delete(TableId.of(datasetName, tableName))); } catch (BigQueryException e) { @@ -643,7 +657,7 @@ public static void deleteTable(String datasetName, String tableName) { } } - public static void createDataset(String datasetName) { + static void createDataset(String datasetName) { try { DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build(); Dataset newDataset = bigquery.create(datasetInfo); @@ -653,7 +667,7 @@ public static void createDataset(String datasetName) { } } - public static void deleteDataset(String datasetName) { + static void deleteDataset(String datasetName) { try { DatasetInfo datasetInfo = DatasetInfo.newBuilder(datasetName).build(); assertTrue(bigquery.delete(datasetInfo.getDatasetId())); @@ -663,7 +677,6 @@ public static void deleteDataset(String datasetName) { } private Connection getConnection() { - ConnectionSettings connectionSettings = ConnectionSettings.newBuilder() .setDefaultDataset(DatasetId.of(DATASET)) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java index 7a3194e52557..6598d0835755 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java @@ -15,8 +15,8 @@ */ package com.google.cloud.bigquery.it; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; import com.google.cloud.ServiceOptions; import com.google.cloud.bigquery.BigQuery; @@ -39,11 +39,11 @@ import java.util.HashMap; import java.util.Map; import java.util.UUID; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; -public class ITRemoteUDFTest { +class ITRemoteUDFTest { private static final String ID = UUID.randomUUID().toString().substring(0, 8); private static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); @@ -56,8 +56,8 @@ public class ITRemoteUDFTest { private static Connection connection; private static BigQuery bigquery; - @Before - public void setUp() throws IOException { + @BeforeEach + void setUp() throws IOException { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); bigquery = bigqueryHelper.getOptions().getService(); client = ConnectionServiceClient.create(); @@ -76,8 +76,8 @@ public void setUp() throws IOException { connection = client.createConnection(request); } - @AfterClass - public static void afterClass() { + @AfterAll + static void afterClass() { if (bigquery != null) { RemoteBigQueryHelper.forceDelete(bigquery, ROUTINE_DATASET); } @@ -89,7 +89,7 @@ public static void afterClass() { } @Test - public void testRoutineRemoteUDF() { + void testRoutineRemoteUDF() { String routineName = RemoteBigQueryHelper.generateRoutineName(); RoutineId routineId = RoutineId.of(ROUTINE_DATASET, routineName); Map userDefinedContext = diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java index eec39f633f53..3968cd05e22f 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java @@ -21,7 +21,7 @@ import com.google.api.services.bigquery.model.DatasetList; import com.google.api.services.bigquery.model.DatasetReference; import java.util.Collections; -import org.junit.Test; +import org.junit.jupiter.api.Test; public class HttpBigQueryRpcTest { @Test diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java index 5aadd11e3360..589f7ccda0ba 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java @@ -16,8 +16,8 @@ package com.google.cloud.bigquery.testing; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.BigQuery.DatasetDeleteOption; @@ -27,12 +27,12 @@ import java.io.InputStream; import java.time.Duration; import java.util.concurrent.ExecutionException; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class RemoteBigQueryHelperTest { private static final String DATASET_NAME = "dataset-name"; diff --git a/pom.xml b/pom.xml index 4cded9553c87..f99bb3f907ac 100644 --- a/pom.xml +++ b/pom.xml @@ -110,12 +110,6 @@ - - junit - junit - 4.13.2 - test - com.google.truth truth @@ -128,12 +122,6 @@ - - org.mockito - mockito-core - 4.11.0 - test - com.google.cloud google-cloud-storage @@ -152,6 +140,13 @@ 2.70.0 test + + org.mockito + mockito-bom + 4.11.0 + pom + import + From ffb0fdfbbb8ed08c8e221e68544f3076e90c0039 Mon Sep 17 00:00:00 2001 From: Kirill Logachev Date: Fri, 9 Jan 2026 13:24:25 -0800 Subject: [PATCH 3365/3441] chore: move Google JDBC driver code (#4050) --- google-cloud-bigquery-jdbc/pom.xml | 329 + .../BigQueryConversionException.java | 29 + .../BigQueryJdbcCoercionException.java | 36 + ...BigQueryJdbcCoercionNotFoundException.java | 40 + .../exception/BigQueryJdbcException.java | 76 + .../BigQueryJdbcRuntimeException.java | 48 + ...ryJdbcSqlFeatureNotSupportedException.java | 40 + .../BigQueryJdbcSqlSyntaxErrorException.java | 36 + .../bigquery/jdbc/BigQueryArrowArray.java | 105 + .../jdbc/BigQueryArrowBatchWrapper.java | 68 + .../bigquery/jdbc/BigQueryArrowResultSet.java | 492 ++ .../bigquery/jdbc/BigQueryArrowStruct.java | 87 + .../bigquery/jdbc/BigQueryBaseArray.java | 172 + .../bigquery/jdbc/BigQueryBaseResultSet.java | 618 ++ .../bigquery/jdbc/BigQueryBaseStruct.java | 97 + .../jdbc/BigQueryCallableStatement.java | 1341 +++++ .../cloud/bigquery/jdbc/BigQueryCoercion.java | 44 + .../bigquery/jdbc/BigQueryConnection.java | 1160 ++++ .../jdbc/BigQueryConnectionProperty.java | 117 + .../jdbc/BigQueryDaemonPollingTask.java | 122 + .../jdbc/BigQueryDatabaseMetaData.java | 5346 +++++++++++++++++ .../jdbc/BigQueryDefaultCoercions.java | 102 + .../cloud/bigquery/jdbc/BigQueryDriver.java | 249 + .../bigquery/jdbc/BigQueryErrorMessage.java | 29 + .../jdbc/BigQueryFieldValueListWrapper.java | 81 + .../jdbc/BigQueryJdbcBulkInsertWriter.java | 130 + .../jdbc/BigQueryJdbcCustomLogger.java | 32 + .../jdbc/BigQueryJdbcOAuthUtility.java | 759 +++ .../bigquery/jdbc/BigQueryJdbcParameter.java | 117 + .../jdbc/BigQueryJdbcProxyUtility.java | 291 + .../bigquery/jdbc/BigQueryJdbcRootLogger.java | 193 + .../jdbc/BigQueryJdbcTypeMappings.java | 159 + .../bigquery/jdbc/BigQueryJdbcUrlUtility.java | 920 +++ .../bigquery/jdbc/BigQueryJsonArray.java | 105 + .../bigquery/jdbc/BigQueryJsonResultSet.java | 317 + .../bigquery/jdbc/BigQueryJsonStruct.java | 80 + .../jdbc/BigQueryNoOpsConnection.java | 191 + .../bigquery/jdbc/BigQueryNoOpsResultSet.java | 693 +++ .../bigquery/jdbc/BigQueryNoOpsStatement.java | 90 + .../jdbc/BigQueryParameterHandler.java | 281 + .../jdbc/BigQueryPooledConnection.java | 497 ++ .../jdbc/BigQueryPreparedStatement.java | 611 ++ .../bigquery/jdbc/BigQueryResultSet.java | 46 + .../jdbc/BigQueryResultSetFinalizers.java | 73 + .../jdbc/BigQueryResultSetMetadata.java | 213 + .../cloud/bigquery/jdbc/BigQuerySettings.java | 857 +++ .../jdbc/BigQuerySqlTypeConverter.java | 81 + .../bigquery/jdbc/BigQueryStatement.java | 1522 +++++ .../bigquery/jdbc/BigQueryThreadFactory.java | 44 + .../bigquery/jdbc/BigQueryTypeCoercer.java | 149 + .../jdbc/BigQueryTypeCoercerBuilder.java | 79 + .../jdbc/BigQueryTypeCoercionUtility.java | 409 ++ .../cloud/bigquery/jdbc/DataSource.java | 664 ++ .../jdbc/PooledConnectionDataSource.java | 68 + .../jdbc/PooledConnectionListener.java | 145 + .../META-INF/services/java.sql.Driver | 1 + .../DatabaseMetaData_GetCrossReference.sql | 72 + .../jdbc/DatabaseMetaData_GetExportedKeys.sql | 71 + .../jdbc/DatabaseMetaData_GetImportedKeys.sql | 71 + .../jdbc/DatabaseMetaData_GetPrimaryKeys.sql | 30 + .../bigquery/jdbc/dependencies.properties | 4 + ...FormatTypeBigQueryCoercionUtilityTest.java | 234 + .../BigQueryArrowArrayOfPrimitivesTest.java | 367 ++ .../jdbc/BigQueryArrowArrayOfStructTest.java | 205 + .../jdbc/BigQueryArrowResultSetTest.java | 358 ++ .../jdbc/BigQueryArrowStructTest.java | 245 + .../jdbc/BigQueryBaseResultSetTest.java | 104 + ...igQueryBigQueryTypeCoercerBuilderTest.java | 43 + .../jdbc/BigQueryCallableStatementTest.java | 1118 ++++ .../bigquery/jdbc/BigQueryConnectionTest.java | 343 ++ .../jdbc/BigQueryDaemonPollingTaskTest.java | 63 + .../jdbc/BigQueryDatabaseMetaDataTest.java | 3209 ++++++++++ .../jdbc/BigQueryDefaultCoercionsTest.java | 221 + .../bigquery/jdbc/BigQueryDriverTest.java | 97 + .../bigquery/jdbc/BigQueryJdbcBaseTest.java | 82 + .../jdbc/BigQueryJdbcOAuthUtilityTest.java | 505 ++ .../jdbc/BigQueryJdbcParameterTest.java | 75 + .../jdbc/BigQueryJdbcProxyUtilityTest.java | 293 + .../jdbc/BigQueryJdbcUrlUtilityTest.java | 803 +++ .../BigQueryJsonArrayOfPrimitivesTest.java | 342 ++ .../jdbc/BigQueryJsonArrayOfStructTest.java | 204 + .../jdbc/BigQueryJsonResultSetTest.java | 476 ++ .../bigquery/jdbc/BigQueryJsonStructTest.java | 264 + .../jdbc/BigQueryParameterHandlerTest.java | 142 + .../jdbc/BigQueryPooledConnectionTest.java | 174 + .../jdbc/BigQueryResultSetFinalizersTest.java | 67 + .../jdbc/BigQueryResultSetMetadataTest.java | 277 + .../bigquery/jdbc/BigQueryStatementTest.java | 483 ++ .../jdbc/BigQueryThreadFactoryTest.java | 41 + .../jdbc/BigQueryTypeCoercerTest.java | 100 + ...dValueTypeBigQueryCoercionUtilityTest.java | 378 ++ .../cloud/bigquery/jdbc/NullHandlingTest.java | 44 + .../jdbc/PooledConnectionDataSourceTest.java | 80 + .../jdbc/PooledConnectionListenerTest.java | 172 + .../google/cloud/bigquery/jdbc/TestType.java | 31 + .../google/cloud/bigquery/jdbc/it/ITBase.java | 21 + .../bigquery/jdbc/it/ITBigQueryJDBCTest.java | 4439 ++++++++++++++ .../jdbc/it/ITNightlyBigQueryTest.java | 1713 ++++++ .../bigquery/jdbc/it/ITPSCBigQueryTest.java | 300 + .../bigquery/jdbc/it/ITProxyBigQueryTest.java | 234 + .../bigquery/jdbc/it/ITTPCBigQueryTest.java | 220 + .../bigquery/jdbc/rules/TimeZoneRule.java | 57 + .../bigquery/jdbc/utils/ArrowUtilities.java | 54 + .../bigquery/jdbc/utils/TestUtilities.java | 143 + .../cloud/bigquery/jdbc/utils/URIBuilder.java | 34 + .../src/test/resources/fake.p12 | Bin 0 -> 5223 bytes .../test/resources/test_truststore_nopass.jks | Bin 0 -> 32 bytes .../resources/test_truststore_withpass.jks | Bin 0 -> 1187 bytes 108 files changed, 39784 insertions(+) create mode 100644 google-cloud-bigquery-jdbc/pom.xml create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryConversionException.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionException.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionNotFoundException.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcException.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcRuntimeException.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlFeatureNotSupportedException.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlSyntaxErrorException.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArray.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowBatchWrapper.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSet.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStruct.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseArray.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSet.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseStruct.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatement.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCoercion.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnection.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionProperty.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTask.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaData.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercions.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDriver.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryErrorMessage.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryFieldValueListWrapper.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBulkInsertWriter.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtility.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameter.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtility.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcRootLogger.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcTypeMappings.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtility.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArray.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSet.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStruct.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsConnection.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsResultSet.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsStatement.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandler.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnection.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPreparedStatement.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSet.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizers.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadata.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySettings.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySqlTypeConverter.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryStatement.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactory.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercer.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerBuilder.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercionUtility.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/DataSource.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSource.java create mode 100644 google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionListener.java create mode 100644 google-cloud-bigquery-jdbc/src/main/resources/META-INF/services/java.sql.Driver create mode 100644 google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetCrossReference.sql create mode 100644 google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetExportedKeys.sql create mode 100644 google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetImportedKeys.sql create mode 100644 google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetPrimaryKeys.sql create mode 100644 google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/dependencies.properties create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/ArrowFormatTypeBigQueryCoercionUtilityTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfPrimitivesTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfStructTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSetTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStructTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSetTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBigQueryTypeCoercerBuilderTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatementTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTaskTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaDataTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercionsTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDriverTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBaseTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtilityTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameterTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtilityTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtilityTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfPrimitivesTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfStructTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSetTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStructTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandlerTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnectionTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizersTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadataTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryStatementTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactoryTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/FieldValueTypeBigQueryCoercionUtilityTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/NullHandlingTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSourceTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionListenerTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/TestType.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBase.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBigQueryJDBCTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITNightlyBigQueryTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITPSCBigQueryTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITProxyBigQueryTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITTPCBigQueryTest.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/rules/TimeZoneRule.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/ArrowUtilities.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/TestUtilities.java create mode 100644 google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/URIBuilder.java create mode 100644 google-cloud-bigquery-jdbc/src/test/resources/fake.p12 create mode 100644 google-cloud-bigquery-jdbc/src/test/resources/test_truststore_nopass.jks create mode 100644 google-cloud-bigquery-jdbc/src/test/resources/test_truststore_withpass.jks diff --git a/google-cloud-bigquery-jdbc/pom.xml b/google-cloud-bigquery-jdbc/pom.xml new file mode 100644 index 000000000000..a697ba101761 --- /dev/null +++ b/google-cloud-bigquery-jdbc/pom.xml @@ -0,0 +1,329 @@ + + + + 4.0.0 + com.google.cloud + google-cloud-bigquery-jdbc + 0.1.0 + jar + BigQuery JDBC + https://github.com/googleapis/java-bigquery-jdbc + JDBC for BigQuery + + + UTF-8 + UTF-8 + github + google-cloud-bigquery-jdbc + + + + + + + src/main/resources + true + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.5.2 + + ${skipSurefire} + + + + org.jacoco + jacoco-maven-plugin + 0.8.13 + + + + + + com.google.cloud + google-cloud-bigquery-jdbc-parent + 0.1.0 + + + + com.google.cloud + google-cloud-bigquery + + + com.google.cloud + google-cloud-bigquerystorage + + + com.google.api + api-common + + + org.apache.arrow + arrow-vector + + + com.google.guava + guava + + + com.google.cloud + google-cloud-core + + + com.google.api + gax + + + com.google.auth + google-auth-library-oauth2-http + + + com.google.auth + google-auth-library-credentials + + + + + org.apache.arrow + arrow-memory-core + + + org.apache.arrow + arrow-memory-netty + + + com.google.protobuf + protobuf-java + + + com.google.api.grpc + proto-google-cloud-bigquerystorage-v1 + + + com.google.code.gson + gson + + + com.google.code.findbugs + jsr305 + + + org.apache.httpcomponents.core5 + httpcore5 + + + org.apache.httpcomponents.client5 + httpclient5 + + + com.google.http-client + google-http-client + + + com.google.http-client + google-http-client-apache-v5 + + + org.apache.httpcomponents + httpcore + + + org.apache.httpcomponents + httpclient + + + + + com.google.cloud + google-cloud-core-http + + + com.google.api + gax-grpc + + + io.grpc + grpc-api + + + io.grpc + grpc-netty-shaded + + + io.grpc + grpc-core + + + + com.google.truth + truth + 1.1.3 + test + + + junit + junit + 4.13.2 + test + + + org.mockito + mockito-core + 4.11.0 + test + + + + + + java17 + + [17,) + + + !jvm + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED + + + + + + + + + release-all-dependencies-shaded + + + + org.apache.maven.plugins + maven-shade-plugin + 3.5.2 + + + + + + com + shaded.bqjdbc.com + + com.google.cloud.bigquery.jdbc.* + + + + org + shaded.bqjdbc.org + + org.conscrypt.* + + + + io + shaded.bqjdbc.io + + + + + + + + + + + + release-all-dependencies + + + + org.apache.maven.plugins + maven-shade-plugin + 3.5.2 + + + package + + shade + + + false + + + java.base/java.nio=ALL-UNNAMED + + + + + + + META-INF/io.netty.versions.properties + + + + + *:* + + META-INF/LICENSE* + META-INF/NOTICE* + META-INF/DEPENDENCIES + META-INF/proguard/*.pro + META-INF/maven/** + META-INF/*.MF + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + arrow-git.properties + + + + + + + + + + + + + + docker + + + env.JDBC_DOCKER_ENV + + + + + /mvn/test-target + + + + \ No newline at end of file diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryConversionException.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryConversionException.java new file mode 100644 index 000000000000..90e758b05eeb --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryConversionException.java @@ -0,0 +1,29 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.exception; + +import java.sql.SQLException; + +/** + * Exception for errors that occur when the driver cannot convert a value from one type to another. + */ +public class BigQueryConversionException extends SQLException { + + public BigQueryConversionException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionException.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionException.java new file mode 100644 index 000000000000..185ef54bb1da --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionException.java @@ -0,0 +1,36 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.exception; + +import com.google.api.core.InternalApi; + +/** + * Thrown to indicate that the coercion was attempted but couldn't be performed successfully because + * of some error. + */ +@InternalApi +public class BigQueryJdbcCoercionException extends RuntimeException { + + /** + * Construct a new exception with the specified cause. + * + * @param cause the actual cause which was thrown while performing the coercion. + */ + public BigQueryJdbcCoercionException(Exception cause) { + super("Coercion error", cause); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionNotFoundException.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionNotFoundException.java new file mode 100644 index 000000000000..b4eafb2ee583 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionNotFoundException.java @@ -0,0 +1,40 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.exception; + +import com.google.api.core.InternalApi; + +/** + * Thrown to indicate that the current TypeCoercer can not perform the coercion as the Coercion + * implementation is not registered for the mentioned source and target type. + */ +@InternalApi +public class BigQueryJdbcCoercionNotFoundException extends RuntimeException { + + /** + * Construct a new exception. + * + * @param source the source type. + * @param target the target type. + */ + public BigQueryJdbcCoercionNotFoundException(Class source, Class target) { + super( + String.format( + "Coercion not found for [%s -> %s] conversion", + source.getCanonicalName(), target.getCanonicalName())); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcException.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcException.java new file mode 100644 index 000000000000..72a22aba618a --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcException.java @@ -0,0 +1,76 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.exception; + +import com.google.cloud.bigquery.BigQueryException; +import java.sql.SQLException; + +public class BigQueryJdbcException extends SQLException { + private BigQueryException bigQueryException = null; + + /** + * Constructs a new BigQueryJdbcException with the given message. + * + * @param message The detail message. + */ + public BigQueryJdbcException(String message) { + super(message); + } + + /** + * Constructs a new BigQueryJdbcException from InterruptedException + * + * @param ex The InterruptedException to be thrown. + */ + public BigQueryJdbcException(InterruptedException ex) { + super(ex); + } + + /** + * Constructs a new BigQueryJdbcException from BigQueryException + * + * @param ex The BigQueryException to be thrown. + */ + public BigQueryJdbcException(BigQueryException ex) { + super(ex); + this.bigQueryException = ex; + } + + /** + * Construct a new BigQueryJdbcException with the cause. + * + * @param message Specific message that is being added to the Exception. + * @param cause Throwable that is being converted. + */ + public BigQueryJdbcException(String message, Throwable cause) { + super(message, cause); + } + + /** + * Constructs a new BigQueryJdbcException with the specified cause and a detail message of + * (cause==null ? null : cause.toString()) + * + * @param cause Throwable that is being converted. + */ + public BigQueryJdbcException(Throwable cause) { + super(cause); + } + + public BigQueryException getBigQueryException() { + return bigQueryException; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcRuntimeException.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcRuntimeException.java new file mode 100644 index 000000000000..38e5171be40f --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcRuntimeException.java @@ -0,0 +1,48 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.exception; + +public class BigQueryJdbcRuntimeException extends RuntimeException { + + /** + * Constructs a new BigQueryJdbcRuntimeException with the given message. + * + * @param message The detail message. + */ + public BigQueryJdbcRuntimeException(String message) { + super(message); + } + + /** + * Constructs a new BigQueryJdbcRuntimeException from a Throwable exception. + * + * @param ex Throwable to be thrown. + */ + public BigQueryJdbcRuntimeException(Throwable ex) { + super(ex); + } + + /** + * Constructs a new BigQueryJdbcRuntimeException from a Throwable exception and a message. + * + * @param message The detail message. + * @param ex Throwable to be thrown. + */ + public BigQueryJdbcRuntimeException(String message, InterruptedException ex) { + super(message, ex); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlFeatureNotSupportedException.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlFeatureNotSupportedException.java new file mode 100644 index 000000000000..8c93d8764b3a --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlFeatureNotSupportedException.java @@ -0,0 +1,40 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.exception; + +import com.google.cloud.bigquery.BigQueryException; +import java.sql.SQLFeatureNotSupportedException; + +public class BigQueryJdbcSqlFeatureNotSupportedException extends SQLFeatureNotSupportedException { + /** + * Constructs a new BigQueryJdbcSqlFeatureNotSupportedException with the given message. + * + * @param message The detail message. + */ + public BigQueryJdbcSqlFeatureNotSupportedException(String message) { + super(message); + } + + /** + * Constructs a new BigQueryJdbcSqlFeatureNotSupportedException from BigQueryException + * + * @param ex The BigQueryException to be thrown. + */ + public BigQueryJdbcSqlFeatureNotSupportedException(BigQueryException ex) { + super(ex); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlSyntaxErrorException.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlSyntaxErrorException.java new file mode 100644 index 000000000000..99edcd0c543c --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlSyntaxErrorException.java @@ -0,0 +1,36 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.exception; + +import com.google.cloud.bigquery.BigQueryException; +import java.sql.SQLSyntaxErrorException; + +/** + * Specific {@link SQLSyntaxErrorException} thrown when the SQLState class value is '42', or under + * vendor-specified conditions. This indicates that the in-progress query has violated SQL syntax + * rules. + */ +public class BigQueryJdbcSqlSyntaxErrorException extends SQLSyntaxErrorException { + /** + * Constructs a new BigQueryJdbcSqlSyntaxErrorException from BigQueryException + * + * @param ex The BigQueryException to be thrown. + */ + public BigQueryJdbcSqlSyntaxErrorException(BigQueryException ex) { + super(ex.getMessage(), "Incorrect SQL syntax."); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArray.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArray.java new file mode 100644 index 000000000000..49bd565df781 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArray.java @@ -0,0 +1,105 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import java.sql.ResultSet; +import java.sql.SQLException; +import org.apache.arrow.vector.util.JsonStringArrayList; +import org.apache.arrow.vector.util.JsonStringHashMap; + +/** + * An implementation of {@link BigQueryBaseArray} used to represent Array values from Arrow data. + */ +class BigQueryArrowArray extends BigQueryBaseArray { + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryArrowArray.class.getName()); + private static final BigQueryTypeCoercer BIGQUERY_TYPE_COERCER = + BigQueryTypeCoercionUtility.INSTANCE; + private JsonStringArrayList values; + + public BigQueryArrowArray(Field schema, JsonStringArrayList values) { + super(schema); + this.values = values; + } + + @Override + public Object getArray() { + LOG.finest("++enter++"); + ensureValid(); + if (values == null) { + return null; + } + return getArrayInternal(0, values.size()); + } + + @Override + public Object getArray(long index, int count) { + LOG.finest("++enter++"); + ensureValid(); + if (values == null) { + return null; + } + Tuple range = createRange(index, count, this.values.size()); + return getArrayInternal(range.x(), range.y()); + } + + @Override + public ResultSet getResultSet() throws SQLException { + LOG.finest("++enter++"); + ensureValid(); + if (values == null) { + return new BigQueryArrowResultSet(); + } + BigQueryArrowBatchWrapper arrowBatchWrapper = + BigQueryArrowBatchWrapper.getNestedFieldValueListWrapper(values); + return BigQueryArrowResultSet.getNestedResultSet( + Schema.of(singleElementSchema()), arrowBatchWrapper, 0, this.values.size()); + } + + @Override + public ResultSet getResultSet(long index, int count) throws SQLException { + LOG.finest("++enter++"); + ensureValid(); + if (values == null) { + return new BigQueryArrowResultSet(); + } + Tuple range = createRange(index, count, this.values.size()); + BigQueryArrowBatchWrapper arrowBatchWrapper = + BigQueryArrowBatchWrapper.getNestedFieldValueListWrapper(values); + return BigQueryArrowResultSet.getNestedResultSet( + Schema.of(singleElementSchema()), arrowBatchWrapper, range.x(), range.y()); + } + + @Override + public void free() { + LOG.finest("++enter++"); + this.values = null; + markInvalid(); + } + + @Override + Object getCoercedValue(int index) { + LOG.finest("++enter++"); + Object value = this.values.get(index); + return this.arrayOfStruct + ? new BigQueryArrowStruct(schema.getSubFields(), (JsonStringHashMap) value) + : BIGQUERY_TYPE_COERCER.coerceTo(getTargetClass(), value); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowBatchWrapper.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowBatchWrapper.java new file mode 100644 index 000000000000..4d322ad977c5 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowBatchWrapper.java @@ -0,0 +1,68 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.storage.v1.ArrowRecordBatch; +import org.apache.arrow.vector.util.JsonStringArrayList; + +/** This class acts as a facade layer and wraps Arrow's VectorSchemaRoot & JsonStringArrayList */ +class BigQueryArrowBatchWrapper { + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryArrowBatchWrapper.class.getName()); + // Reference to the current arrowBatch + private final ArrowRecordBatch currentArrowBatch; + // Reference to the nested Records, set as null otherwise (Arrays) + private final JsonStringArrayList nestedRecords; + + // Marks the end of the stream for the ResultSet + private final boolean isLast; + + private BigQueryArrowBatchWrapper( + ArrowRecordBatch currentArrowBatch, JsonStringArrayList nestedRecords, boolean isLast) { + this.currentArrowBatch = currentArrowBatch; + this.nestedRecords = nestedRecords; + this.isLast = isLast; + } + + static BigQueryArrowBatchWrapper of(ArrowRecordBatch currentArrowBatch, boolean... isLast) { + LOG.finest("++enter++"); + boolean isLastFlag = isLast != null && isLast.length == 1 && isLast[0]; + return new BigQueryArrowBatchWrapper(currentArrowBatch, null, isLastFlag); + } + + static BigQueryArrowBatchWrapper getNestedFieldValueListWrapper( + JsonStringArrayList nestedRecords, boolean... isLast) { + LOG.finest("++enter++"); + boolean isLastFlag = isLast != null && isLast.length == 1 && isLast[0]; + return new BigQueryArrowBatchWrapper(null, nestedRecords, isLastFlag); + } + + ArrowRecordBatch getCurrentArrowBatch() { + LOG.finest("++enter++"); + return this.currentArrowBatch; + } + + JsonStringArrayList getNestedRecords() { + LOG.finest("++enter++"); + return this.nestedRecords; + } + + boolean isLast() { + LOG.finest("++enter++"); + return this.isLast; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSet.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSet.java new file mode 100644 index 000000000000..004dfb02b418 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSet.java @@ -0,0 +1,492 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.BigQueryBaseArray.isArray; +import static com.google.cloud.bigquery.jdbc.BigQueryBaseStruct.isStruct; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import com.google.cloud.bigquery.storage.v1.ArrowRecordBatch; +import com.google.cloud.bigquery.storage.v1.ArrowSchema; +import java.io.IOException; +import java.math.BigDecimal; +import java.sql.Date; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.BlockingQueue; +import org.apache.arrow.memory.BufferAllocator; +import org.apache.arrow.memory.RootAllocator; +import org.apache.arrow.vector.FieldVector; +import org.apache.arrow.vector.VectorLoader; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.ipc.ReadChannel; +import org.apache.arrow.vector.ipc.message.MessageSerializer; +import org.apache.arrow.vector.util.ByteArrayReadableSeekableByteChannel; +import org.apache.arrow.vector.util.JsonStringArrayList; +import org.apache.arrow.vector.util.JsonStringHashMap; + +/** {@link ResultSet} Implementation for Arrow datasource (Using Storage Read APIs) */ +class BigQueryArrowResultSet extends BigQueryBaseResultSet { + private final long totalRows; + // count of rows read by the current instance of ResultSet + private long rowCount = 0; + // IMP: This is a buffer of Arrow batches, the max size should be kept at min as + // possible to avoid holding too much memory + private final BlockingQueue buffer; + + // TODO(neenu): See if it makes sense to have the nested batch represented by + // 'JsonStringArrayList' directly + // points to the nested batch of arrow record + private final BigQueryArrowBatchWrapper currentNestedBatch; + private final int fromIndex; + private final int toIndexExclusive; + + // Acts as a cursor, resets to -1 when the `currentBatch` is processed. points to a + // logical row in the columnar BigQueryBigQueryArrowBatchWrapper currentBatch + private int currentBatchRowIndex = -1; + private boolean hasReachedEnd = false; + + // Tracks the index of the nested element under process + private int nestedRowIndex; + + private boolean afterLast = false; + + private ArrowDeserializer arrowDeserializer; + BufferAllocator allocator = new RootAllocator(Long.MAX_VALUE); + // Decoder object will be reused to avoid re-allocation and too much garbage collection. + private VectorSchemaRoot vectorSchemaRoot; + private VectorLoader vectorLoader; + // producer thread's reference + private final Thread ownedThread; + + private BigQueryArrowResultSet( + Schema schema, + ArrowSchema arrowSchema, + long totalRows, + BigQueryStatement statement, + BlockingQueue buffer, + BigQueryArrowBatchWrapper currentNestedBatch, + boolean isNested, + int fromIndex, + int toIndexExclusive, + Thread ownedThread, + BigQuery bigQuery) + throws SQLException { + super(bigQuery, statement, schema, isNested); + LOG.finest("++enter++"); + this.totalRows = totalRows; + this.buffer = buffer; + this.currentNestedBatch = currentNestedBatch; + this.fromIndex = fromIndex; + this.toIndexExclusive = toIndexExclusive; + this.nestedRowIndex = fromIndex - 1; + this.ownedThread = ownedThread; + if (!isNested && arrowSchema != null) { + try { + this.arrowDeserializer = new ArrowDeserializer(arrowSchema); + } catch (IOException ex) { + throw new BigQueryJdbcException(ex); + } + } + } + + /** + * This method returns an instance of BigQueryArrowResultSet after adding it in the list of + * ArrowResultSetFinalizer + * + * @return BigQueryArrowResultSet + */ + static BigQueryArrowResultSet of( + Schema schema, + ArrowSchema arrowSchema, + long totalRows, + BigQueryStatement statement, + BlockingQueue buffer, + Thread ownedThread, + BigQuery bigQuery) + throws SQLException { + return new BigQueryArrowResultSet( + schema, + arrowSchema, + totalRows, + statement, + buffer, + null, + false, + -1, + -1, + ownedThread, + bigQuery); + } + + BigQueryArrowResultSet() throws SQLException { + super(null, null, null, false); + this.totalRows = 0; + this.buffer = null; + this.currentNestedBatch = null; + this.fromIndex = 0; + this.toIndexExclusive = 0; + this.ownedThread = null; + this.arrowDeserializer = null; + this.vectorSchemaRoot = null; + this.vectorLoader = null; + } + + static BigQueryArrowResultSet getNestedResultSet( + Schema schema, BigQueryArrowBatchWrapper nestedBatch, int fromIndex, int toIndexExclusive) + throws SQLException { + return new BigQueryArrowResultSet( + schema, null, -1, null, null, nestedBatch, true, fromIndex, toIndexExclusive, null, null); + } + + private class ArrowDeserializer implements AutoCloseable { + + /* Decoder object will be reused to avoid re-allocation and too much garbage collection. */ + private ArrowDeserializer(ArrowSchema arrowSchema) throws IOException { + org.apache.arrow.vector.types.pojo.Schema schema = + MessageSerializer.deserializeSchema( + new org.apache.arrow.vector.ipc.ReadChannel( + new ByteArrayReadableSeekableByteChannel( + arrowSchema.getSerializedSchema().toByteArray()))); + List vectors = new ArrayList<>(); + List fields = schema.getFields(); + for (org.apache.arrow.vector.types.pojo.Field field : fields) { + vectors.add(field.createVector(allocator)); + } + vectorSchemaRoot = new VectorSchemaRoot(vectors); + vectorLoader = new VectorLoader(vectorSchemaRoot); + } + + private void deserializeArrowBatch(ArrowRecordBatch batch) throws SQLException { + LOG.finest("++enter++"); + try { + if (vectorSchemaRoot != null) { + // Clear vectorSchemaRoot before populating a new batch + vectorSchemaRoot.clear(); + } + org.apache.arrow.vector.ipc.message.ArrowRecordBatch deserializedBatch = + MessageSerializer.deserializeRecordBatch( + new ReadChannel( + new ByteArrayReadableSeekableByteChannel( + batch.getSerializedRecordBatch().toByteArray())), + allocator); + + vectorLoader.load(deserializedBatch); + // Release buffers from batch (they are still held in the vectors in root). + deserializedBatch.close(); + } catch (RuntimeException | IOException ex) { + throw new BigQueryJdbcException(ex); + } + } + + @Override + public void close() { + LOG.finest("++enter++"); + vectorSchemaRoot.close(); + allocator.close(); + } + } + + @Override + public boolean next() throws SQLException { + checkClosed(); + if (this.isNested) { + if (this.currentNestedBatch == null || this.currentNestedBatch.getNestedRecords() == null) { + throw new IllegalStateException( + "currentNestedBatch/JsonStringArrayList can not be null working with the nested record"); + } + if (this.nestedRowIndex < (this.toIndexExclusive - 1)) { + /* Check if there's a next record in the array which can be read */ + this.nestedRowIndex++; + return true; + } + this.afterLast = true; + return false; + } else { + /* Non nested */ + if (this.hasReachedEnd || this.isLast()) { + this.afterLast = true; + return false; + } + try { + if (this.currentBatchRowIndex == -1 + || this.currentBatchRowIndex == (this.vectorSchemaRoot.getRowCount() - 1)) { + /* Start of iteration or we have exhausted the current batch */ + // Advance the cursor. Potentially blocking operation. + BigQueryArrowBatchWrapper batchWrapper = this.buffer.take(); + if (batchWrapper.isLast()) { + /* Marks the end of the records */ + if (this.vectorSchemaRoot != null) { + // IMP: To avoid memory leak: clear vectorSchemaRoot as it still holds + // the last batch + this.vectorSchemaRoot.clear(); + } + this.hasReachedEnd = true; + this.rowCount++; + return false; + } + // Valid batch, process it + ArrowRecordBatch arrowBatch = batchWrapper.getCurrentArrowBatch(); + // Populates vectorSchemaRoot + this.arrowDeserializer.deserializeArrowBatch(arrowBatch); + // Pointing to the first row in this fresh batch + this.currentBatchRowIndex = 0; + this.rowCount++; + return true; + } + // There are rows left in the current batch. + else if (this.currentBatchRowIndex < this.vectorSchemaRoot.getRowCount()) { + this.currentBatchRowIndex++; + this.rowCount++; + return true; + } + } catch (InterruptedException | SQLException ex) { + throw new BigQueryJdbcException( + "Error occurred while advancing the cursor. This could happen when connection is closed while the next method is being called.", + ex); + } + } + return false; + } + + private Object getObjectInternal(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + checkClosed(); + Object value; + if (this.isNested) { + // BigQuery doesn't support multidimensional arrays, so + // just the default row num column (1) and the actual column (2) is supposed to be read + if (!(columnIndex == 1 || columnIndex == 2)) { + + throw new IllegalArgumentException( + "Column index is required to be 1 or 2 for nested arrays"); + } + if (this.currentNestedBatch.getNestedRecords() == null) { + throw new IllegalStateException("JsonStringArrayList cannot be null for nested records."); + } + // For Arrays the first column is Index, ref: + // https://docs.oracle.com/javase/7/docs/api/java/sql/Array.html#getResultSet() + if (columnIndex == 1) { + return this.nestedRowIndex + 1; + } + // columnIndex = 2, return the data against the current nestedRowIndex + else { + value = this.currentNestedBatch.getNestedRecords().get(this.nestedRowIndex); + } + } else { + // get the current column + // SQL index to Java Index + FieldVector currentColumn = this.vectorSchemaRoot.getVector(columnIndex - 1); + // get the current row + value = currentColumn.getObject(this.currentBatchRowIndex); + } + setWasNull(value); + return value; + } + + @Override + public Object getObject(int columnIndex) throws SQLException { + + // columnIndex is SQL index starting at 1 + LOG.finest("++enter++"); + checkClosed(); + Object value = getObjectInternal(columnIndex); + if (value == null) { + return null; + } + + if (this.isNested && columnIndex == 1) { + return this.bigQueryTypeCoercer.coerceTo(Integer.class, value); + } + + if (this.isNested && columnIndex == 2) { + Field arrayField = this.schema.getFields().get(0); + if (isStruct(arrayField)) { + return new BigQueryArrowStruct(arrayField.getSubFields(), (JsonStringHashMap) value); + } + Class targetClass = + BigQueryJdbcTypeMappings.standardSQLToJavaTypeMapping.get( + arrayField.getType().getStandardType()); + return this.bigQueryTypeCoercer.coerceTo(targetClass, value); + } + + int fieldIndex = this.isNested ? 0 : columnIndex - 1; + Field fieldSchema = this.schemaFieldList.get(fieldIndex); + if (isArray(fieldSchema)) { + JsonStringArrayList originalList = (JsonStringArrayList) value; + StandardSQLTypeName elementTypeName = fieldSchema.getType().getStandardType(); + if (elementTypeName == StandardSQLTypeName.NUMERIC + || elementTypeName == StandardSQLTypeName.BIGNUMERIC) { + JsonStringArrayList newList = new JsonStringArrayList<>(); + for (Object item : originalList) { + if (item != null) { + newList.add(((BigDecimal) item).stripTrailingZeros()); + } else { + newList.add(null); + } + } + return new BigQueryArrowArray(fieldSchema, newList); + } else if (elementTypeName == StandardSQLTypeName.RANGE) { + JsonStringArrayList newList = new JsonStringArrayList<>(); + for (Object item : originalList) { + if (item != null) { + JsonStringHashMap rangeMap = (JsonStringHashMap) item; + Object start = rangeMap.get("start"); + Object end = rangeMap.get("end"); + + Object representativeElement = (start != null) ? start : end; + StandardSQLTypeName rangeElementType = getElementTypeFromValue(representativeElement); + + String formattedStart = formatRangeElement(start, rangeElementType); + String formattedEnd = formatRangeElement(end, rangeElementType); + + newList.add(String.format("[%s, %s)", formattedStart, formattedEnd)); + } else { + newList.add(null); + } + } + return new BigQueryArrowArray(fieldSchema, newList); + } + return new BigQueryArrowArray(fieldSchema, originalList); + } else if (isStruct(fieldSchema)) { + return new BigQueryArrowStruct(fieldSchema.getSubFields(), (JsonStringHashMap) value); + } else if (fieldSchema.getType().getStandardType() == StandardSQLTypeName.RANGE) { + JsonStringHashMap rangeMap = (JsonStringHashMap) value; + Object start = rangeMap.get("start"); + Object end = rangeMap.get("end"); + + Object representativeElement = (start != null) ? start : end; + StandardSQLTypeName elementType = getElementTypeFromValue(representativeElement); + + String formattedStart = formatRangeElement(start, elementType); + String formattedEnd = formatRangeElement(end, elementType); + + return String.format("[%s, %s)", formattedStart, formattedEnd); + } else { + if ((fieldSchema.getType().getStandardType() == StandardSQLTypeName.NUMERIC + || fieldSchema.getType().getStandardType() == StandardSQLTypeName.BIGNUMERIC) + && value instanceof BigDecimal) { + // The Arrow DecimalVector may return a BigDecimal with a larger scale than necessary. + // Strip trailing zeros to match JSON API and CLI output + return ((BigDecimal) value).stripTrailingZeros(); + } + Class targetClass = + BigQueryJdbcTypeMappings.standardSQLToJavaTypeMapping.get( + fieldSchema.getType().getStandardType()); + return this.bigQueryTypeCoercer.coerceTo(targetClass, value); + } + } + + private StandardSQLTypeName getElementTypeFromValue(Object element) { + if (element == null) { + return StandardSQLTypeName.STRING; + } + if (element instanceof Integer) { + return StandardSQLTypeName.DATE; + } + if (element instanceof Long) { + return StandardSQLTypeName.TIMESTAMP; + } + if (element instanceof LocalDateTime) { + return StandardSQLTypeName.DATETIME; + } + return StandardSQLTypeName.STRING; + } + + private String formatRangeElement(Object element, StandardSQLTypeName elementType) { + if (element == null) { + return "UNBOUNDED"; + } + switch (elementType) { + case DATE: + // Arrow gives DATE as an Integer (days since epoch) + Date date = this.bigQueryTypeCoercer.coerceTo(Date.class, (Integer) element); + return date.toString(); + case DATETIME: + // Arrow gives DATETIME as a LocalDateTime + Timestamp dtTs = + this.bigQueryTypeCoercer.coerceTo(Timestamp.class, (LocalDateTime) element); + return this.bigQueryTypeCoercer.coerceTo(String.class, dtTs); + case TIMESTAMP: + // Arrow gives TIMESTAMP as a Long (microseconds since epoch) + Timestamp ts = this.bigQueryTypeCoercer.coerceTo(Timestamp.class, (Long) element); + return this.bigQueryTypeCoercer.coerceTo(String.class, ts); + default: + // Fallback for any other unexpected type + return element.toString(); + } + } + + @Override + public void close() { + LOG.fine(String.format("Closing BigqueryArrowResultSet %s.", this)); + this.isClosed = true; + if (ownedThread != null && !ownedThread.isInterrupted()) { + // interrupt the producer thread when result set is closed + ownedThread.interrupt(); + } + super.close(); + } + + @Override + public boolean isBeforeFirst() throws SQLException { + LOG.finest("++enter++"); + checkClosed(); + if (this.isNested) { + return this.nestedRowIndex < this.fromIndex; + } else { + return this.rowCount == 0; + } + } + + @Override + public boolean isAfterLast() throws SQLException { + LOG.finest("++enter++"); + checkClosed(); + return this.afterLast; + } + + @Override + public boolean isFirst() throws SQLException { + LOG.finest("++enter++"); + checkClosed(); + if (this.isNested) { + return this.nestedRowIndex == this.fromIndex; + } else { + return this.rowCount == 1; + } + } + + @Override + public boolean isLast() throws SQLException { + LOG.finest("++enter++"); + checkClosed(); + if (this.isNested) { + return this.nestedRowIndex == this.toIndexExclusive - 1; + } else { + return this.rowCount == this.totalRows; + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStruct.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStruct.java new file mode 100644 index 000000000000..33befe902be4 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStruct.java @@ -0,0 +1,87 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.BigQueryBaseArray.isArray; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldList; +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.List; +import org.apache.arrow.vector.util.JsonStringArrayList; +import org.apache.arrow.vector.util.JsonStringHashMap; + +/** + * An implementation of {@link BigQueryBaseStruct} used to represent Struct values from Arrow data. + */ +class BigQueryArrowStruct extends BigQueryBaseStruct { + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryArrowStruct.class.getName()); + + private static final BigQueryTypeCoercer BIGQUERY_TYPE_COERCER = + BigQueryTypeCoercionUtility.INSTANCE; + + private final FieldList schema; + + private final JsonStringHashMap values; + + BigQueryArrowStruct(FieldList schema, JsonStringHashMap values) { + this.schema = schema; + this.values = values; + } + + @Override + FieldList getSchema() { + return this.schema; + } + + @Override + public Object[] getAttributes() { + LOG.finest("++enter++"); + int size = this.schema.size(); + Object[] attributes = (Object[]) Array.newInstance(Object.class, size); + + if (this.values == null) { + return attributes; + } + List structValues = new ArrayList<>(this.values.values()); + + for (int index = 0; index < size; index++) { + Field currentSchema = this.schema.get(index); + Object currentValue = structValues.get(index); + Object coercedValue = getValue(currentSchema, currentValue); + Array.set(attributes, index, coercedValue); + } + return attributes; + } + + private Object getValue(Field currentSchema, Object currentValue) { + LOG.finest("++enter++"); + if (isArray(currentSchema)) { + return new BigQueryArrowArray(currentSchema, (JsonStringArrayList) currentValue); + } else if (isStruct(currentSchema)) { + return new BigQueryArrowStruct( + currentSchema.getSubFields(), (JsonStringHashMap) currentValue); + } else { + Class targetClass = + BigQueryJdbcTypeMappings.standardSQLToJavaTypeMapping.get( + currentSchema.getType().getStandardType()); + return BIGQUERY_TYPE_COERCER.coerceTo(targetClass, currentValue); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseArray.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseArray.java new file mode 100644 index 000000000000..5fc2c15bbe09 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseArray.java @@ -0,0 +1,172 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.Field.Mode.REPEATED; +import static com.google.cloud.bigquery.jdbc.BigQueryBaseStruct.isStruct; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.INVALID_ARRAY; + +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Field.Mode; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlFeatureNotSupportedException; +import java.lang.reflect.Array; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Struct; +import java.util.Arrays; +import java.util.Base64; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * An abstract implementation of {@link java.sql.Array} used as a base class for {@link + * BigQueryArrowArray} and {@link BigQueryJsonArray}. An Array value is a transaction-duration + * reference to an SQL ARRAY value. + */ +abstract class BigQueryBaseArray implements java.sql.Array { + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryBaseArray.class.getName()); + + protected final boolean arrayOfStruct; + private boolean valid; + protected Field schema; + + BigQueryBaseArray(Field schema) { + this.schema = schema; + this.arrayOfStruct = isStruct(schema); + this.valid = true; + } + + @Override + public final String getBaseTypeName() { + LOG.finest("++enter++"); + ensureValid(); + return this.schema.getType().getStandardType().name(); + } + + @Override + public final int getBaseType() { + LOG.finest("++enter++"); + ensureValid(); + return BigQueryJdbcTypeMappings.standardSQLToJavaSqlTypesMapping.get( + schema.getType().getStandardType()); + } + + @Override + public final Object getArray(Map> map) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + @Override + public final Object getArray(long index, int count, Map> map) + throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + @Override + public final ResultSet getResultSet(Map> map) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + @Override + public final ResultSet getResultSet(long index, int count, Map> map) + throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + protected Object getArrayInternal(int fromIndex, int toIndexExclusive) { + LOG.finest("++enter++"); + Class targetClass = getTargetClass(); + int size = toIndexExclusive - fromIndex; + Object javaArray = Array.newInstance(targetClass, size); + + for (int index = 0; index < size; index++) { + Array.set(javaArray, index, getCoercedValue(fromIndex + index)); + } + return javaArray; + } + + protected void ensureValid() throws IllegalStateException { + LOG.finest("++enter++"); + if (!this.valid) { + throw new IllegalStateException(INVALID_ARRAY); + } + } + + protected void markInvalid() { + LOG.finest("++enter++"); + this.schema = null; + this.valid = false; + } + + protected Field singleElementSchema() { + LOG.finest("++enter++"); + return this.schema.toBuilder().setMode(Mode.REQUIRED).build(); + } + + protected Tuple createRange(long index, int count, int size) + throws IllegalStateException { + LOG.finest("++enter++"); + // jdbc array follows 1 based array indexing + long normalisedFromIndex = index - 1; + if (normalisedFromIndex + count > size) { + throw new IllegalArgumentException( + String.format( + "The array index is out of range: %d, number of elements: %d.", index + count, size)); + } + long toIndex = normalisedFromIndex + count; + return Tuple.of((int) normalisedFromIndex, (int) toIndex); + } + + protected Class getTargetClass() { + LOG.finest("++enter++"); + return this.arrayOfStruct + ? Struct.class + : BigQueryJdbcTypeMappings.standardSQLToJavaTypeMapping.get( + this.schema.getType().getStandardType()); + } + + abstract Object getCoercedValue(int index); + + static boolean isArray(Field currentSchema) { + LOG.finest("++enter++"); + return currentSchema.getMode() == REPEATED; + } + + @Override + public String toString() { + try { + Object[] array = (Object[]) getArray(); + if (array == null) { + return "null"; + } + if (this.schema.getType().getStandardType() == StandardSQLTypeName.BYTES) { + return Arrays.stream(array) + .map( + element -> + element == null ? "null" : Base64.getEncoder().encodeToString((byte[]) element)) + .collect(Collectors.joining(", ", "[", "]")); + } + return Arrays.deepToString(array); + } catch (SQLException e) { + return "[Error converting array to string: " + e.getMessage() + "]"; + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSet.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSet.java new file mode 100644 index 000000000000..7367a81536fd --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSet.java @@ -0,0 +1,618 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.exception.BigQueryConversionException; +import com.google.cloud.bigquery.exception.BigQueryJdbcCoercionException; +import com.google.cloud.bigquery.exception.BigQueryJdbcCoercionNotFoundException; +import java.io.InputStream; +import java.io.Reader; +import java.io.StringReader; +import java.math.BigDecimal; +import java.nio.charset.StandardCharsets; +import java.sql.Array; +import java.sql.Blob; +import java.sql.Clob; +import java.sql.Date; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.Time; +import java.sql.Timestamp; +import java.util.Calendar; + +public abstract class BigQueryBaseResultSet extends BigQueryNoOpsResultSet + implements BigQueryResultSet { + protected final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + private BigQuery bigQuery; + private JobId jobId; + private String queryId; + private QueryStatistics queryStatistics; + protected final BigQueryStatement statement; + protected final Schema schema; + protected final FieldList schemaFieldList; + protected final boolean isNested; + protected boolean isClosed = false; + protected boolean wasNull = false; + protected final BigQueryTypeCoercer bigQueryTypeCoercer = BigQueryTypeCoercionUtility.INSTANCE; + + protected BigQueryBaseResultSet( + BigQuery bigQuery, BigQueryStatement statement, Schema schema, boolean isNested) { + this.bigQuery = bigQuery; + this.statement = statement; + this.schema = schema; + this.schemaFieldList = schema != null ? schema.getFields() : null; + this.isNested = isNested; + } + + public QueryStatistics getQueryStatistics() { + if (queryStatistics != null) { + return queryStatistics; + } + if (jobId == null || bigQuery == null) { + return null; + } + Job job = bigQuery.getJob(jobId); + queryStatistics = job != null ? job.getStatistics() : null; + return queryStatistics; + } + + public void setJobId(JobId jobId) { + this.jobId = jobId; + } + + public JobId getJobId() { + return jobId; + } + + public void setQueryId(String queryId) { + this.queryId = queryId; + } + + public String getQueryId() { + return queryId; + } + + @Override + public void close() { + try { + if (statement != null && statement.isCloseOnCompletion() && !statement.hasMoreResults()) { + statement.close(); + } + } catch (SQLException ex) { + LOG.warning( + String.format("Exception during ResultState.close() operation: %s", ex.getMessage())); + } + } + + protected SQLException createCoercionException( + int columnIndex, Class targetClass, Exception cause) throws SQLException { + checkClosed(); + StandardSQLTypeName type; + String typeName; + + if (isNested) { + if (columnIndex == 1) { + return new BigQueryConversionException( + String.format("Cannot convert index column to type %s.", targetClass.getSimpleName()), + cause); + } else if (columnIndex == 2) { + Field arrayField = this.schema.getFields().get(0); + type = arrayField.getType().getStandardType(); + typeName = type.name(); + } else { + throw new SQLException( + "For a nested ResultSet from an Array, columnIndex must be 1 or 2.", cause); + } + } else { + Field field = this.schemaFieldList.get(columnIndex - 1); + type = field.getType().getStandardType(); + typeName = type.name(); + } + return new BigQueryConversionException( + String.format( + "Cannot convert value of type %s to type %s.", typeName, targetClass.getSimpleName()), + cause); + } + + private StandardSQLTypeName getStandardSQLTypeName(int columnIndex) throws SQLException { + checkClosed(); + if (isNested) { + if (columnIndex == 1) { + return StandardSQLTypeName.INT64; + } else if (columnIndex == 2) { + if (this.schema == null || this.schema.getFields().isEmpty()) { + throw new SQLException("Schema not available for nested result set."); + } + Field arrayField = this.schema.getFields().get(0); + return arrayField.getType().getStandardType(); + } else { + throw new SQLException("For a nested ResultSet from an Array, columnIndex must be 1 or 2."); + } + } else { + if (this.schemaFieldList == null + || columnIndex > this.schemaFieldList.size() + || columnIndex < 1) { + throw new SQLException("Invalid column index: " + columnIndex); + } + Field field = this.schemaFieldList.get(columnIndex - 1); + return field.getType().getStandardType(); + } + } + + protected void setWasNull(Object val) { + this.wasNull = val == null; + } + + @Override + public boolean wasNull() throws SQLException { + checkClosed(); + return this.wasNull; + } + + @Override + public ResultSetMetaData getMetaData() throws SQLException { + checkClosed(); + if (this.isNested) { + return BigQueryResultSetMetadata.of(this.schemaFieldList, this.statement); + } else { + return BigQueryResultSetMetadata.of(this.schema.getFields(), this.statement); + } + } + + @Override + public int getType() throws SQLException { + checkClosed(); + return ResultSet.TYPE_FORWARD_ONLY; + } + + @Override + public int getConcurrency() throws SQLException { + checkClosed(); + return ResultSet.CONCUR_READ_ONLY; + } + + @Override + public Statement getStatement() throws SQLException { + checkClosed(); + return this.statement; + } + + @Override + public int getHoldability() throws SQLException { + checkClosed(); + return ResultSet.HOLD_CURSORS_OVER_COMMIT; + } + + @Override + public boolean isClosed() { + return this.isClosed; + } + + public abstract Object getObject(int columnIndex) throws SQLException; + + protected int getColumnIndex(String columnLabel) throws SQLException { + LOG.finest("++enter++"); + checkClosed(); + if (columnLabel == null) { + throw new SQLException("Column label cannot be null"); + } + // use schema to get the column index, add 1 for SQL index + return this.schemaFieldList.getIndex(columnLabel) + 1; + } + + @Override + public String getString(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(String.class, value); + } catch (BigQueryJdbcCoercionNotFoundException e) { + throw createCoercionException(columnIndex, String.class, e); + } + } + + @Override + public boolean getBoolean(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + + StandardSQLTypeName type = getStandardSQLTypeName(columnIndex); + if (type == StandardSQLTypeName.GEOGRAPHY + || type == StandardSQLTypeName.RANGE + || type == StandardSQLTypeName.JSON) { + throw createCoercionException(columnIndex, Boolean.class, null); + } + + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(Boolean.class, value); + } catch (BigQueryJdbcCoercionNotFoundException e) { + throw createCoercionException(columnIndex, Boolean.class, e); + } + } + + @Override + public byte getByte(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(Byte.class, value); + } catch (BigQueryJdbcCoercionNotFoundException | BigQueryJdbcCoercionException e) { + throw createCoercionException(columnIndex, Byte.class, e); + } + } + + @Override + public short getShort(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(Short.class, value); + } catch (BigQueryJdbcCoercionNotFoundException | BigQueryJdbcCoercionException e) { + throw createCoercionException(columnIndex, Short.class, e); + } + } + + @Override + public int getInt(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(Integer.class, value); + } catch (BigQueryJdbcCoercionNotFoundException | BigQueryJdbcCoercionException e) { + throw createCoercionException(columnIndex, Integer.class, e); + } + } + + @Override + public long getLong(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(Long.class, value); + } catch (BigQueryJdbcCoercionNotFoundException | BigQueryJdbcCoercionException e) { + throw createCoercionException(columnIndex, Long.class, e); + } + } + + @Override + public float getFloat(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(Float.class, value); + } catch (BigQueryJdbcCoercionNotFoundException | BigQueryJdbcCoercionException e) { + throw createCoercionException(columnIndex, Float.class, e); + } + } + + @Override + public double getDouble(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(Double.class, value); + } catch (BigQueryJdbcCoercionNotFoundException | BigQueryJdbcCoercionException e) { + throw createCoercionException(columnIndex, Double.class, e); + } + } + + @Override + public BigDecimal getBigDecimal(int columnIndex, int scale) throws SQLException { + LOG.finest("++enter++"); + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(BigDecimal.class, value); + } catch (BigQueryJdbcCoercionNotFoundException | BigQueryJdbcCoercionException e) { + throw createCoercionException(columnIndex, BigDecimal.class, e); + } + } + + @Override + public byte[] getBytes(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(byte[].class, value); + } catch (BigQueryJdbcCoercionNotFoundException e) { + throw createCoercionException(columnIndex, byte[].class, e); + } + } + + @Override + public Date getDate(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(java.sql.Date.class, value); + } catch (BigQueryJdbcCoercionNotFoundException e) { + throw createCoercionException(columnIndex, java.sql.Date.class, e); + } + } + + @Override + public Time getTime(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + StandardSQLTypeName type = getStandardSQLTypeName(columnIndex); + if (type == StandardSQLTypeName.INT64) { + throw createCoercionException(columnIndex, java.sql.Time.class, null); + } + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(java.sql.Time.class, value); + } catch (BigQueryJdbcCoercionNotFoundException e) { + throw createCoercionException(columnIndex, java.sql.Time.class, e); + } + } + + @Override + public Timestamp getTimestamp(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + StandardSQLTypeName type = getStandardSQLTypeName(columnIndex); + if (type == StandardSQLTypeName.INT64) { + throw createCoercionException(columnIndex, java.sql.Timestamp.class, null); + } + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(java.sql.Timestamp.class, value); + } catch (BigQueryJdbcCoercionNotFoundException e) { + throw createCoercionException(columnIndex, java.sql.Timestamp.class, e); + } + } + + @Override + public BigDecimal getBigDecimal(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + try { + Object value = getObject(columnIndex); + return this.bigQueryTypeCoercer.coerceTo(BigDecimal.class, value); + } catch (BigQueryJdbcCoercionNotFoundException | BigQueryJdbcCoercionException e) { + throw createCoercionException(columnIndex, BigDecimal.class, e); + } + } + + @Override + public Array getArray(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + try { + return (Array) getObject(columnIndex); + } catch (ClassCastException e) { + throw createCoercionException(columnIndex, Array.class, e); + } + } + + @Override + public Blob getBlob(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + byte[] value = getBytes(columnIndex); + return new javax.sql.rowset.serial.SerialBlob(value); + } + + @Override + public Clob getClob(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + String value = getString(columnIndex); + return new javax.sql.rowset.serial.SerialClob(value.toCharArray()); + } + + @Override + public Reader getCharacterStream(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + String value = getString(columnIndex); + return value == null ? null : new StringReader(value); + } + + private InputStream getInputStream(String value, java.nio.charset.Charset charset) { + LOG.finest("++enter++"); + if (value == null) { + return null; + } + return new java.io.ByteArrayInputStream(value.getBytes(charset)); + } + + @Override + public InputStream getAsciiStream(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + return getInputStream(getString(columnIndex), StandardCharsets.US_ASCII); + } + + @Override + public InputStream getUnicodeStream(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + return getInputStream(getString(columnIndex), StandardCharsets.UTF_16LE); + } + + @Override + public InputStream getBinaryStream(int columnIndex) throws SQLException { + LOG.finest("++enter++"); + byte[] bytes = getBytes(columnIndex); + return bytes == null ? null : new java.io.ByteArrayInputStream(bytes); + } + + @Override + public Date getDate(int columnIndex, Calendar cal) throws SQLException { + LOG.finest("++enter++"); + Date date = getDate(columnIndex); + if (date == null || cal == null) { + return null; + } + cal.setTimeInMillis(date.getTime()); + return new java.sql.Date(cal.getTimeInMillis()); + } + + @Override + public Time getTime(int columnIndex, Calendar cal) throws SQLException { + LOG.finest("++enter++"); + Time time = getTime(columnIndex); + if (time == null || cal == null) { + return null; + } + cal.setTimeInMillis(time.getTime()); + return new java.sql.Time(cal.getTimeInMillis()); + } + + @Override + public Timestamp getTimestamp(int columnIndex, Calendar cal) throws SQLException { + LOG.finest("++enter++"); + Timestamp timeStamp = getTimestamp(columnIndex); + if (timeStamp == null || cal == null) { + return null; + } + cal.setTimeInMillis(timeStamp.getTime()); + return new java.sql.Timestamp(cal.getTimeInMillis()); + } + + @Override + public int findColumn(String columnLabel) throws SQLException { + LOG.finest("++enter++"); + return getColumnIndex(columnLabel); + } + + @Override + public Object getObject(String columnLabel) throws SQLException { + return getObject(getColumnIndex(columnLabel)); + } + + @Override + public String getString(String columnLabel) throws SQLException { + return getString(getColumnIndex(columnLabel)); + } + + @Override + public boolean getBoolean(String columnLabel) throws SQLException { + return getBoolean(getColumnIndex(columnLabel)); + } + + @Override + public byte getByte(String columnLabel) throws SQLException { + return getByte(getColumnIndex(columnLabel)); + } + + @Override + public short getShort(String columnLabel) throws SQLException { + return getShort(getColumnIndex(columnLabel)); + } + + @Override + public int getInt(String columnLabel) throws SQLException { + return getInt(getColumnIndex(columnLabel)); + } + + @Override + public long getLong(String columnLabel) throws SQLException { + return getLong(getColumnIndex(columnLabel)); + } + + @Override + public float getFloat(String columnLabel) throws SQLException { + return getFloat(getColumnIndex(columnLabel)); + } + + @Override + public double getDouble(String columnLabel) throws SQLException { + return getDouble(getColumnIndex(columnLabel)); + } + + @Override + public BigDecimal getBigDecimal(String columnLabel, int scale) throws SQLException { + return getBigDecimal(getColumnIndex(columnLabel), scale); + } + + @Override + public byte[] getBytes(String columnLabel) throws SQLException { + return getBytes(getColumnIndex(columnLabel)); + } + + @Override + public Date getDate(String columnLabel) throws SQLException { + return getDate(getColumnIndex(columnLabel)); + } + + @Override + public Time getTime(String columnLabel) throws SQLException { + return getTime(getColumnIndex(columnLabel)); + } + + @Override + public Timestamp getTimestamp(String columnLabel) throws SQLException { + return getTimestamp(getColumnIndex(columnLabel)); + } + + @Override + public InputStream getAsciiStream(String columnLabel) throws SQLException { + return getAsciiStream(getColumnIndex(columnLabel)); + } + + @Override + public InputStream getUnicodeStream(String columnLabel) throws SQLException { + return getUnicodeStream(getColumnIndex(columnLabel)); + } + + @Override + public InputStream getBinaryStream(String columnLabel) throws SQLException { + return getBinaryStream(getColumnIndex(columnLabel)); + } + + @Override + public BigDecimal getBigDecimal(String columnLabel) throws SQLException { + return getBigDecimal(getColumnIndex(columnLabel)); + } + + @Override + public Blob getBlob(String columnLabel) throws SQLException { + return getBlob(getColumnIndex(columnLabel)); + } + + @Override + public Clob getClob(String columnLabel) throws SQLException { + return getClob(getColumnIndex(columnLabel)); + } + + @Override + public Array getArray(String columnLabel) throws SQLException { + return getArray(getColumnIndex(columnLabel)); + } + + @Override + public Reader getCharacterStream(String columnLabel) throws SQLException { + return getCharacterStream(getColumnIndex(columnLabel)); + } + + @Override + public Date getDate(String columnLabel, Calendar cal) throws SQLException { + return getDate(getColumnIndex(columnLabel), cal); + } + + @Override + public Time getTime(String columnLabel, Calendar cal) throws SQLException { + return getTime(getColumnIndex(columnLabel), cal); + } + + @Override + public Timestamp getTimestamp(String columnLabel, Calendar cal) throws SQLException { + return getTimestamp(getColumnIndex(columnLabel), cal); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseStruct.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseStruct.java new file mode 100644 index 000000000000..ab9cf61cb85d --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseStruct.java @@ -0,0 +1,97 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.StandardSQLTypeName.STRUCT; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlFeatureNotSupportedException; +import java.sql.Date; +import java.sql.SQLException; +import java.sql.Time; +import java.sql.Timestamp; +import java.util.Base64; +import java.util.Map; + +/** + * An abstract implementation of {@link java.sql.Struct} used as a base class for {@link + * BigQueryArrowStruct} and {@link BigQueryJsonStruct}. A Struct object contains a value for each + * attribute of the SQL structured type that it represents. + */ +abstract class BigQueryBaseStruct implements java.sql.Struct { + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryBaseStruct.class.getName()); + + abstract FieldList getSchema(); + + @Override + public final String getSQLTypeName() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + @Override + public final Object[] getAttributes(Map> map) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + static boolean isStruct(Field currentSchema) { + LOG.finest("++enter++"); + return currentSchema.getType().getStandardType() == STRUCT; + } + + @Override + public String toString() { + try { + FieldList schema = getSchema(); + Object[] attributes = getAttributes(); + + if (schema == null || attributes == null || schema.size() != attributes.length) { + return "{}"; + } + + StringBuilder sb = new StringBuilder("{"); + for (int i = 0; i < attributes.length; i++) { + if (i > 0) { + sb.append(","); + } + String fieldName = schema.get(i).getName(); + Object value = attributes[i]; + + sb.append("\"").append(fieldName.replace("\"", "\\\"")).append("\":"); + + if (value == null) { + sb.append("null"); + } else if (value instanceof String || value instanceof org.apache.arrow.vector.util.Text) { + String stringValue = value.toString().replace("\"", "\\\""); + sb.append("\"").append(stringValue).append("\""); + } else if (value instanceof Timestamp || value instanceof Date || value instanceof Time) { + sb.append("\"").append(value.toString()).append("\""); + } else if (value instanceof byte[]) { + sb.append("\"").append(Base64.getEncoder().encodeToString((byte[]) value)).append("\""); + } else { + sb.append(value.toString()); + } + } + sb.append("}"); + return sb.toString(); + } catch (SQLException e) { + return "{ \"error\": \"Error converting struct to string: " + e.getMessage() + "\" }"; + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatement.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatement.java new file mode 100644 index 000000000000..041505c6230c --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatement.java @@ -0,0 +1,1341 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlFeatureNotSupportedException; +import com.google.cloud.bigquery.jdbc.BigQueryParameterHandler.BigQueryStatementParameterType; +import com.google.common.annotations.VisibleForTesting; +import java.io.BufferedReader; +import java.io.CharArrayReader; +import java.io.FilterReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.PipedReader; +import java.io.Reader; +import java.io.StringReader; +import java.math.BigDecimal; +import java.net.URL; +import java.sql.Array; +import java.sql.Blob; +import java.sql.CallableStatement; +import java.sql.Clob; +import java.sql.Date; +import java.sql.NClob; +import java.sql.Ref; +import java.sql.RowId; +import java.sql.SQLException; +import java.sql.SQLXML; +import java.sql.Time; +import java.sql.Timestamp; +import java.sql.Types; +import java.util.Calendar; +import java.util.Map; + +class BigQueryCallableStatement extends BigQueryPreparedStatement implements CallableStatement { + private final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + + BigQueryCallableStatement(BigQueryConnection connection, String callableStmtSql) + throws SQLException { + super(connection, callableStmtSql); + } + + @VisibleForTesting + protected String getCallableStatementSql() { + return this.currentQuery; + } + + @VisibleForTesting + protected BigQueryParameterHandler getParameterHandler() { + return this.parameterHandler; + } + + @Override + public Array getArray(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Array) { + return (Array) param; + } + if (param.getClass().isAssignableFrom(Array.class)) { + return getObject(arg0, Array.class); + } + return null; + } + + @Override + public Array getArray(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Array) { + return (Array) param; + } + if (param.getClass().isAssignableFrom(Array.class)) { + return getObject(arg0, Array.class); + } + return null; + } + + @Override + public BigDecimal getBigDecimal(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof BigDecimal) { + return (BigDecimal) param; + } + if (param.getClass().isAssignableFrom(BigDecimal.class)) { + return getObject(arg0, BigDecimal.class); + } + return null; + } + + @Override + public BigDecimal getBigDecimal(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof BigDecimal) { + return (BigDecimal) param; + } + if (param.getClass().isAssignableFrom(BigDecimal.class)) { + return getObject(arg0, BigDecimal.class); + } + return null; + } + + @Override + public BigDecimal getBigDecimal(int arg0, int arg1) throws SQLException { + LOG.finest("++enter++"); + return getBigDecimal(arg0); + } + + @Override + public Blob getBlob(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Blob) { + return (Blob) param; + } + if (param.getClass().isAssignableFrom(Blob.class)) { + return getObject(arg0, Blob.class); + } + return null; + } + + @Override + public Blob getBlob(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Blob) { + return (Blob) param; + } + if (param.getClass().isAssignableFrom(Blob.class)) { + return getObject(arg0, Blob.class); + } + return null; + } + + @Override + public boolean getBoolean(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Boolean) { + return (Boolean) param; + } + if (param.getClass().isAssignableFrom(Boolean.class)) { + return getObject(arg0, Boolean.class); + } + return false; + } + + @Override + public boolean getBoolean(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Boolean) { + return (Boolean) param; + } + if (param.getClass().isAssignableFrom(Boolean.class)) { + return getObject(arg0, Boolean.class); + } + return false; + } + + @Override + public byte getByte(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Byte) { + return (Byte) param; + } + if (param.getClass().isAssignableFrom(Byte.class)) { + return getObject(arg0, Byte.class); + } + return -1; + } + + @Override + public byte getByte(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Byte) { + return (Byte) param; + } + if (param.getClass().isAssignableFrom(Byte.class)) { + return getObject(arg0, Byte.class); + } + return -1; + } + + @Override + public byte[] getBytes(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof byte[] || param.getClass().isAssignableFrom(byte[].class)) { + return (byte[]) param; + } + if (param instanceof String) { + return param.toString().getBytes(); + } + return null; + } + + @Override + public byte[] getBytes(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof byte[] || param.getClass().isAssignableFrom(byte[].class)) { + return (byte[]) param; + } + if (param instanceof String) { + return param.toString().getBytes(); + } + return null; + } + + // FilterReader, InputStreamReader, PipedReader, StringReader + @Override + public Reader getCharacterStream(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof String || param.getClass().isAssignableFrom(String.class)) { + return new StringReader(param.toString()); + } + + if (param instanceof BufferedReader) { + return (BufferedReader) param; + } + if (param.getClass().isAssignableFrom(BufferedReader.class)) { + return getObject(arg0, BufferedReader.class); + } + + if (param instanceof CharArrayReader) { + return (CharArrayReader) param; + } + if (param.getClass().isAssignableFrom(CharArrayReader.class)) { + return getObject(arg0, CharArrayReader.class); + } + + if (param instanceof FilterReader) { + return (FilterReader) param; + } + if (param.getClass().isAssignableFrom(FilterReader.class)) { + return getObject(arg0, FilterReader.class); + } + + if (param instanceof InputStreamReader) { + return (InputStreamReader) param; + } + if (param.getClass().isAssignableFrom(InputStreamReader.class)) { + return getObject(arg0, InputStreamReader.class); + } + + if (param instanceof PipedReader) { + return (PipedReader) param; + } + if (param.getClass().isAssignableFrom(PipedReader.class)) { + return getObject(arg0, PipedReader.class); + } + + if (param instanceof StringReader) { + return (StringReader) param; + } + if (param.getClass().isAssignableFrom(StringReader.class)) { + return getObject(arg0, StringReader.class); + } + return null; + } + + @Override + public Reader getCharacterStream(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof String || param.getClass().isAssignableFrom(String.class)) { + return new StringReader(param.toString()); + } + + if (param instanceof BufferedReader) { + return (BufferedReader) param; + } + if (param.getClass().isAssignableFrom(BufferedReader.class)) { + return getObject(arg0, BufferedReader.class); + } + + if (param instanceof CharArrayReader) { + return (CharArrayReader) param; + } + if (param.getClass().isAssignableFrom(CharArrayReader.class)) { + return getObject(arg0, CharArrayReader.class); + } + + if (param instanceof FilterReader) { + return (FilterReader) param; + } + if (param.getClass().isAssignableFrom(FilterReader.class)) { + return getObject(arg0, FilterReader.class); + } + + if (param instanceof InputStreamReader) { + return (InputStreamReader) param; + } + if (param.getClass().isAssignableFrom(InputStreamReader.class)) { + return getObject(arg0, InputStreamReader.class); + } + + if (param instanceof PipedReader) { + return (PipedReader) param; + } + if (param.getClass().isAssignableFrom(PipedReader.class)) { + return getObject(arg0, PipedReader.class); + } + + if (param instanceof StringReader) { + return (StringReader) param; + } + if (param.getClass().isAssignableFrom(StringReader.class)) { + return getObject(arg0, StringReader.class); + } + return null; + } + + @Override + public Clob getClob(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Clob) { + return (Clob) param; + } + if (param.getClass().isAssignableFrom(Clob.class)) { + return getObject(arg0, Clob.class); + } + return null; + } + + @Override + public Clob getClob(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Clob) { + return (Clob) param; + } + if (param.getClass().isAssignableFrom(Clob.class)) { + return getObject(arg0, Clob.class); + } + return null; + } + + @Override + public Date getDate(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Date) { + return (Date) param; + } + if (param.getClass().isAssignableFrom(Date.class)) { + return getObject(arg0, Date.class); + } + return null; + } + + @Override + public Date getDate(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Date) { + return (Date) param; + } + if (param.getClass().isAssignableFrom(Date.class)) { + return getObject(arg0, Date.class); + } + return null; + } + + @Override + public Date getDate(int arg0, Calendar arg1) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Date) { + Date dateParam = (Date) param; + if (arg1 != null) { + arg1.setTime(dateParam); + return new Date(arg1.getTimeInMillis()); + } + } + if (param.getClass().isAssignableFrom(Date.class)) { + Date dateObj = getObject(arg0, Date.class); + if (arg1 != null) { + arg1.setTime(dateObj); + return new Date(arg1.getTimeInMillis()); + } + } + return null; + } + + @Override + public Date getDate(String arg0, Calendar arg1) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Date) { + Date dateParam = (Date) param; + if (arg1 != null) { + arg1.setTime(dateParam); + return new Date(arg1.getTimeInMillis()); + } + } + if (param.getClass().isAssignableFrom(Date.class)) { + Date dateObj = getObject(arg0, Date.class); + if (arg1 != null) { + arg1.setTime(dateObj); + return new Date(arg1.getTimeInMillis()); + } + } + return null; + } + + @Override + public double getDouble(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Double) { + return (Double) param; + } + if (param.getClass().isAssignableFrom(Double.class)) { + return getObject(arg0, Double.class); + } + return 0; + } + + @Override + public double getDouble(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Double) { + return (Double) param; + } + if (param.getClass().isAssignableFrom(Double.class)) { + return getObject(arg0, Double.class); + } + return 0; + } + + @Override + public float getFloat(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Float) { + return (Float) param; + } + if (param.getClass().isAssignableFrom(Float.class)) { + return getObject(arg0, Float.class); + } + return 0; + } + + @Override + public float getFloat(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Float) { + return (Float) param; + } + if (param.getClass().isAssignableFrom(Float.class)) { + return getObject(arg0, Float.class); + } + return 0; + } + + @Override + public int getInt(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Integer) { + return (Integer) param; + } + if (param.getClass().isAssignableFrom(Integer.class)) { + return getObject(arg0, Integer.class); + } + return 0; + } + + @Override + public int getInt(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Integer) { + return (Integer) param; + } + if (param.getClass().isAssignableFrom(Integer.class)) { + return getObject(arg0, Integer.class); + } + return 0; + } + + @Override + public long getLong(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Long) { + return (Long) param; + } + if (param.getClass().isAssignableFrom(Long.class)) { + return getObject(arg0, Long.class); + } + if (param instanceof Integer) { + return (Long) param; + } + if (param.getClass().isAssignableFrom(Integer.class)) { + return getObject(arg0, Integer.class); + } + return 0; + } + + @Override + public long getLong(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Long) { + return (Long) param; + } + if (param.getClass().isAssignableFrom(Long.class)) { + return getObject(arg0, Long.class); + } + if (param instanceof Integer) { + return (Long) param; + } + if (param.getClass().isAssignableFrom(Integer.class)) { + return getObject(arg0, Integer.class); + } + return 0; + } + + @Override + public Reader getNCharacterStream(int arg0) throws SQLException { + LOG.finest("++enter++"); + return getCharacterStream(arg0); + } + + @Override + public Reader getNCharacterStream(String arg0) throws SQLException { + LOG.finest("++enter++"); + return getCharacterStream(arg0); + } + + @Override + public NClob getNClob(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof NClob) {} + if (param.getClass().isAssignableFrom(NClob.class)) { + return getObject(arg0, NClob.class); + } + return null; + } + + @Override + public NClob getNClob(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof NClob) { + return (NClob) param; + } + if (param.getClass().isAssignableFrom(NClob.class)) { + return getObject(arg0, NClob.class); + } + return null; + } + + @Override + public String getNString(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof String) { + return param.toString(); + } + if (param.getClass().isAssignableFrom(String.class)) { + return getObject(arg0, String.class); + } + return null; + } + + @Override + public String getNString(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof String) { + return param.toString(); + } + if (param.getClass().isAssignableFrom(String.class)) { + return getObject(arg0, String.class); + } + return null; + } + + @Override + public Object getObject(int arg0) throws SQLException { + LOG.finest("++enter++"); + return this.parameterHandler.getParameter(arg0); + } + + @Override + public Object getObject(String arg0) throws SQLException { + LOG.finest("++enter++"); + return this.parameterHandler.getParameter(arg0); + } + + @Override + public Object getObject(int arg0, Map> arg1) throws SQLException { + LOG.finest("++enter++"); + String paramKey = this.parameterHandler.getSqlType(arg0).name(); + if (arg1.containsKey(paramKey)) { + Class argJavaType = arg1.get(paramKey); + Class paramJavaType = this.parameterHandler.getType(arg0); + if (paramJavaType.isAssignableFrom(argJavaType)) { + return this.parameterHandler.getParameter(arg0); + } + } + return null; + } + + @Override + public Object getObject(String arg0, Map> arg1) throws SQLException { + LOG.finest("++enter++"); + String paramKey = this.parameterHandler.getSqlType(arg0).name(); + if (arg1.containsKey(paramKey)) { + Class argJavaType = arg1.get(paramKey); + Class paramJavaType = this.parameterHandler.getType(arg0); + if (paramJavaType.isAssignableFrom(argJavaType)) { + return this.parameterHandler.getParameter(arg0); + } + } + return null; + } + + @Override + public T getObject(int arg0, Class arg1) throws SQLException { + LOG.finest("++enter++"); + Class javaType = this.parameterHandler.getType(arg0); + if (javaType.isAssignableFrom(arg1)) { + return (T) this.parameterHandler.getParameter(arg0); + } + return null; + } + + @Override + public T getObject(String arg0, Class arg1) throws SQLException { + LOG.finest("++enter++"); + Class javaType = this.parameterHandler.getType(arg0); + if (javaType.isAssignableFrom(arg1)) { + return (T) this.parameterHandler.getParameter(arg0); + } + return null; + } + + @Override + public Ref getRef(int arg0) throws SQLException { + // TODO Auto-generated method stub + return null; + } + + @Override + public Ref getRef(String arg0) throws SQLException { + // TODO Auto-generated method stub + return null; + } + + @Override + public RowId getRowId(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof RowId) { + return (RowId) param; + } + if (param.getClass().isAssignableFrom(RowId.class)) { + return getObject(arg0, RowId.class); + } + return null; + } + + @Override + public RowId getRowId(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof RowId) { + return (RowId) param; + } + if (param.getClass().isAssignableFrom(RowId.class)) { + return getObject(arg0, RowId.class); + } + return null; + } + + @Override + public SQLXML getSQLXML(int arg0) throws SQLException { + // TODO Auto-generated method stub + return null; + } + + @Override + public SQLXML getSQLXML(String arg0) throws SQLException { + // TODO Auto-generated method stub + return null; + } + + @Override + public short getShort(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Short) { + return (Short) param; + } + if (param.getClass().isAssignableFrom(Short.class)) { + return getObject(arg0, Short.class); + } + return 0; + } + + @Override + public short getShort(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Short) { + return (Short) param; + } + if (param.getClass().isAssignableFrom(Short.class)) { + return getObject(arg0, Short.class); + } + return 0; + } + + @Override + public String getString(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof String) { + return param.toString(); + } + if (param.getClass().isAssignableFrom(String.class)) { + return getObject(arg0, String.class); + } + return null; + } + + @Override + public String getString(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof String) { + return param.toString(); + } + if (param.getClass().isAssignableFrom(String.class)) { + return getObject(arg0, String.class); + } + return null; + } + + @Override + public Time getTime(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Time) { + return (Time) param; + } + if (param.getClass().isAssignableFrom(Time.class)) { + return getObject(arg0, Time.class); + } + return null; + } + + @Override + public Time getTime(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Time) { + return (Time) param; + } + if (param.getClass().isAssignableFrom(Time.class)) { + return getObject(arg0, Time.class); + } + return null; + } + + @Override + public Time getTime(int arg0, Calendar arg1) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Time) { + Time timeParam = (Time) param; + if (arg1 != null) { + arg1.setTimeInMillis(timeParam.getTime()); + return new Time(arg1.getTimeInMillis()); + } + } + if (param.getClass().isAssignableFrom(Time.class)) { + Time timeObj = getObject(arg0, Time.class); + if (arg1 != null) { + arg1.setTimeInMillis(timeObj.getTime()); + return new Time(arg1.getTimeInMillis()); + } + } + return null; + } + + @Override + public Time getTime(String arg0, Calendar arg1) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Time) { + Time timeParam = (Time) param; + if (arg1 != null) { + arg1.setTimeInMillis(timeParam.getTime()); + return new Time(arg1.getTimeInMillis()); + } + } + if (param.getClass().isAssignableFrom(Time.class)) { + Time timeObj = getObject(arg0, Time.class); + if (arg1 != null) { + arg1.setTimeInMillis(timeObj.getTime()); + return new Time(arg1.getTimeInMillis()); + } + } + return null; + } + + @Override + public Timestamp getTimestamp(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Timestamp) { + return (Timestamp) param; + } + if (param.getClass().isAssignableFrom(Timestamp.class)) { + return getObject(arg0, Timestamp.class); + } + return null; + } + + @Override + public Timestamp getTimestamp(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Timestamp) { + return (Timestamp) param; + } + if (param.getClass().isAssignableFrom(Timestamp.class)) { + return getObject(arg0, Timestamp.class); + } + return null; + } + + @Override + public Timestamp getTimestamp(int arg0, Calendar arg1) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Timestamp) { + Timestamp timestampParam = (Timestamp) param; + if (arg1 != null) { + arg1.setTimeInMillis(timestampParam.getTime()); + return new Timestamp(arg1.getTimeInMillis()); + } + } + if (param.getClass().isAssignableFrom(Timestamp.class)) { + Timestamp timestampObj = getObject(arg0, Timestamp.class); + if (arg1 != null) { + arg1.setTimeInMillis(timestampObj.getTime()); + return new Timestamp(arg1.getTimeInMillis()); + } + } + return null; + } + + @Override + public Timestamp getTimestamp(String arg0, Calendar arg1) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof Timestamp) { + Timestamp timestampParam = (Timestamp) param; + if (arg1 != null) { + arg1.setTimeInMillis(timestampParam.getTime()); + return new Timestamp(arg1.getTimeInMillis()); + } + } + if (param.getClass().isAssignableFrom(Timestamp.class)) { + Timestamp timestampObj = getObject(arg0, Timestamp.class); + if (arg1 != null) { + arg1.setTimeInMillis(timestampObj.getTime()); + return new Timestamp(arg1.getTimeInMillis()); + } + } + return null; + } + + @Override + public URL getURL(int arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof URL) { + return (URL) param; + } + if (param.getClass().isAssignableFrom(URL.class)) { + return getObject(arg0, URL.class); + } + return null; + } + + @Override + public URL getURL(String arg0) throws SQLException { + LOG.finest("++enter++"); + Object param = this.parameterHandler.getParameter(arg0); + if (param instanceof URL) { + return (URL) param; + } + if (param.getClass().isAssignableFrom(URL.class)) { + return getObject(arg0, URL.class); + } + return null; + } + + @Override + public void registerOutParameter(int paramIndex, int sqlType) throws SQLException { + LOG.finest("++enter++"); + LOG.finest( + String.format("registerOutParameter: paramIndex %s, sqlType %s", paramIndex, sqlType)); + checkClosed(); + try { + this.parameterHandler.setParameter( + paramIndex, + null, + BigQueryJdbcTypeMappings.getJavaType(sqlType), + BigQueryParameterHandler.BigQueryStatementParameterType.OUT, + -1); + } catch (Exception e) { + throw new SQLException(e); + } + } + + @Override + public void registerOutParameter(String paramName, int sqlType) throws SQLException { + LOG.finest("++enter++"); + LOG.finest(String.format("registerOutParameter: paramName %s, sqlType %s", paramName, sqlType)); + checkClosed(); + try { + this.parameterHandler.setParameter( + paramName, + null, + BigQueryJdbcTypeMappings.getJavaType(sqlType), + BigQueryParameterHandler.BigQueryStatementParameterType.OUT, + -1); + } catch (Exception e) { + throw new SQLException(e); + } + } + + @Override + public void registerOutParameter(int paramIndex, int sqlType, int scale) throws SQLException { + LOG.finest("++enter++"); + LOG.finest( + String.format( + "registerOutParameter: paramIndex %s, sqlType %s, scale %s", + paramIndex, sqlType, scale)); + checkClosed(); + if (sqlType != Types.NUMERIC && sqlType != Types.DECIMAL) { + throw new IllegalArgumentException( + String.format("registerOutParameter: Invalid sqlType passed in %s", sqlType)); + } + try { + this.parameterHandler.setParameter( + paramIndex, + null, + BigQueryJdbcTypeMappings.getJavaType(sqlType), + BigQueryParameterHandler.BigQueryStatementParameterType.OUT, + scale); + } catch (Exception e) { + throw new SQLException(e); + } + } + + @Override + public void registerOutParameter(int paramIndex, int sqlType, String typeName) + throws SQLException { + LOG.finest("++enter++"); + LOG.finest( + String.format( + "registerOutParameter: paramIndex %s, sqlType %s, typeName %s", + paramIndex, sqlType, typeName)); + // fully qualified sql typeName is not supported by the driver and hence ignored. + registerOutParameter(paramIndex, sqlType); + } + + @Override + public void registerOutParameter(String paramName, int sqlType, int scale) throws SQLException { + LOG.finest("++enter++"); + LOG.finest( + String.format( + "registerOutParameter: paramIndex %s, sqlType %s, scale %s", + paramName, sqlType, scale)); + checkClosed(); + if (sqlType != Types.NUMERIC && sqlType != Types.DECIMAL) { + throw new IllegalArgumentException( + String.format("registerOutParameter: Invalid sqlType passed in %s", sqlType)); + } + try { + this.parameterHandler.setParameter( + paramName, + null, + BigQueryJdbcTypeMappings.getJavaType(sqlType), + BigQueryParameterHandler.BigQueryStatementParameterType.OUT, + scale); + } catch (Exception e) { + throw new SQLException(e); + } + } + + @Override + public void registerOutParameter(String paramName, int sqlType, String typeName) + throws SQLException { + LOG.finest("++enter++"); + LOG.finest( + String.format( + "registerOutParameter: paramIndex %s, sqlType %s, typeName %s", + paramName, sqlType, typeName)); + // fully qualified sql typeName is not supported by the driver and hence ignored. + registerOutParameter(paramName, sqlType); + } + + @Override + public void setAsciiStream(String arg0, InputStream arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + } + + @Override + public void setAsciiStream(String arg0, InputStream arg1, int arg2) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + } + + @Override + public void setAsciiStream(String arg0, InputStream arg1, long arg2) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + } + + @Override + public void setBigDecimal(String arg0, BigDecimal arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, arg1.getClass(), BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setBinaryStream(String arg0, InputStream arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setBinaryStream(String arg0, InputStream arg1, int arg2) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + } + + @Override + public void setBinaryStream(String arg0, InputStream arg1, long arg2) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setBlob(String arg0, Blob arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + } + + @Override + public void setBlob(String arg0, InputStream arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + } + + @Override + public void setBlob(String arg0, InputStream arg1, long arg2) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + } + + @Override + public void setBoolean(String arg0, boolean arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, Boolean.class, BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setByte(String arg0, byte arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, Byte.class, BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setBytes(String arg0, byte[] arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, byte[].class, BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setCharacterStream(String arg0, Reader arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setCharacterStream(String arg0, Reader arg1, int arg2) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setCharacterStream(String arg0, Reader arg1, long arg2) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setClob(String arg0, Clob arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setClob(String arg0, Reader arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setClob(String arg0, Reader arg1, long arg2) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setDate(String arg0, Date arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, arg1.getClass(), BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setDate(String arg0, Date arg1, Calendar arg2) throws SQLException { + arg2.setTimeInMillis(arg1.getTime()); + this.parameterHandler.setParameter( + arg0, + new Date(arg2.getTimeInMillis()), + arg1.getClass(), + BigQueryStatementParameterType.IN, + 0); + } + + @Override + public void setDouble(String arg0, double arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, Double.class, BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setFloat(String arg0, float arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, Float.class, BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setInt(String arg0, int arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, Integer.class, BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setLong(String arg0, long arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, Long.class, BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setNCharacterStream(String arg0, Reader arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setNCharacterStream(String arg0, Reader arg1, long arg2) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + } + + @Override + public void setNClob(String arg0, NClob arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setNClob(String arg0, Reader arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setNClob(String arg0, Reader arg1, long arg2) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setNString(String arg0, String arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, arg1.getClass(), BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setNull(String arg0, int arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setNull(String arg0, int arg1, String arg2) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setObject(String arg0, Object arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, arg1.getClass(), BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setObject(String arg0, Object arg1, int arg2) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, arg1.getClass(), BigQueryStatementParameterType.IN, 0); + StandardSQLTypeName sqlType = this.parameterHandler.getSqlType(arg0); + if (BigQueryJdbcTypeMappings.standardSQLToJavaSqlTypesMapping.containsKey(sqlType)) { + int javaSqlType = BigQueryJdbcTypeMappings.standardSQLToJavaSqlTypesMapping.get(sqlType); + if (javaSqlType != arg2) { + throw new BigQueryJdbcSqlFeatureNotSupportedException( + String.format("Unsupported sql type:%s ", arg2)); + } + } else { + throw new BigQueryJdbcSqlFeatureNotSupportedException( + String.format("parameter sql type not supported: %s", sqlType)); + } + } + + @Override + public void setObject(String arg0, Object arg1, int arg2, int arg3) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, arg1.getClass(), BigQueryStatementParameterType.IN, arg3); + StandardSQLTypeName sqlType = this.parameterHandler.getSqlType(arg0); + if (BigQueryJdbcTypeMappings.standardSQLToJavaSqlTypesMapping.containsKey(sqlType)) { + int javaSqlType = BigQueryJdbcTypeMappings.standardSQLToJavaSqlTypesMapping.get(sqlType); + if (javaSqlType != arg2) { + throw new BigQueryJdbcSqlFeatureNotSupportedException( + String.format("Unsupported sql type:%s ", arg2)); + } + } else { + throw new BigQueryJdbcSqlFeatureNotSupportedException( + String.format("parameter sql type not supported: %s", sqlType)); + } + } + + @Override + public void setRowId(String arg0, RowId arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setSQLXML(String arg0, SQLXML arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public void setShort(String arg0, short arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, Short.class, BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setString(String arg0, String arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, arg1.getClass(), BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setTime(String arg0, Time arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, arg1.getClass(), BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setTime(String arg0, Time arg1, Calendar arg2) throws SQLException { + arg2.setTimeInMillis(arg1.getTime()); + this.parameterHandler.setParameter( + arg0, + new Time(arg2.getTimeInMillis()), + arg1.getClass(), + BigQueryStatementParameterType.IN, + 0); + } + + @Override + public void setTimestamp(String arg0, Timestamp arg1) throws SQLException { + this.parameterHandler.setParameter( + arg0, arg1, arg1.getClass(), BigQueryStatementParameterType.IN, 0); + } + + @Override + public void setTimestamp(String arg0, Timestamp arg1, Calendar arg2) throws SQLException { + arg2.setTimeInMillis(arg1.getTime()); + this.parameterHandler.setParameter( + arg0, + new Timestamp(arg2.getTimeInMillis()), + arg1.getClass(), + BigQueryStatementParameterType.IN, + 0); + } + + @Override + public void setURL(String arg0, URL arg1) throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + + } + + @Override + public boolean wasNull() throws SQLException { + // TODO: NOT IMPLEMENTED (data type not supported) + return false; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCoercion.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCoercion.java new file mode 100644 index 000000000000..6265af0decc7 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCoercion.java @@ -0,0 +1,44 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.core.InternalApi; +import java.util.function.Function; + +/** + * A {@link BigQueryCoercion} is responsible for coercing one type to another. An implementation of + * {@link BigQueryCoercion} is used to extend the behaviour of {@link BigQueryTypeCoercer} for the + * coercion of one user defined type to another. + * + * @param represents the source type + * @param represents the target type + */ +@InternalApi +interface BigQueryCoercion extends Function { + /** + * Coerce the provided value to the desired type. + * + * @param value the input value. + * @return the output value after coercion. + */ + OUTPUT coerce(INPUT value); + + @Override + default OUTPUT apply(INPUT input) { + return coerce(input); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnection.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnection.java new file mode 100644 index 000000000000..e93938f258d4 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnection.java @@ -0,0 +1,1160 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.gax.core.CredentialsProvider; +import com.google.api.gax.core.FixedCredentialsProvider; +import com.google.api.gax.retrying.RetrySettings; +import com.google.api.gax.rpc.FixedHeaderProvider; +import com.google.api.gax.rpc.HeaderProvider; +import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.auth.Credentials; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.ConnectionProperty; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlFeatureNotSupportedException; +import com.google.cloud.bigquery.storage.v1.BigQueryReadClient; +import com.google.cloud.bigquery.storage.v1.BigQueryReadSettings; +import com.google.cloud.bigquery.storage.v1.BigQueryWriteClient; +import com.google.cloud.bigquery.storage.v1.BigQueryWriteSettings; +import com.google.cloud.http.HttpTransportOptions; +import java.io.IOException; +import java.io.InputStream; +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.SQLWarning; +import java.sql.Statement; +import java.time.Duration; +import java.util.ArrayList; +import java.util.ConcurrentModificationException; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.Executor; +import java.util.concurrent.TimeUnit; + +/** + * An implementation of {@link java.sql.Connection} for establishing a connection with BigQuery and + * executing SQL statements + * + * @see BigQueryStatement + */ +public class BigQueryConnection extends BigQueryNoOpsConnection { + + private final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + String connectionClassName = this.toString(); + private static final String DEFAULT_JDBC_TOKEN_VALUE = "Google-BigQuery-JDBC-Driver"; + private static final String DEFAULT_VERSION = "0.0.0"; + private static HeaderProvider HEADER_PROVIDER; + BigQueryReadClient bigQueryReadClient = null; + BigQueryWriteClient bigQueryWriteClient = null; + BigQuery bigQuery; + String connectionUrl; + Set openStatements; + boolean autoCommit; + int transactionIsolation; + List sqlWarnings; + String catalog; + int holdability; + long retryTimeoutInSeconds; + Duration retryTimeoutDuration; + long retryInitialDelayInSeconds; + Duration retryInitialDelayDuration; + long retryMaxDelayInSeconds; + Duration retryMaxDelayDuration; + // transactionStarted is false by default. + // when autocommit is false transaction starts and session is initialized. + boolean transactionStarted; + ConnectionProperty sessionInfoConnectionProperty; + boolean isClosed; + DatasetId defaultDataset; + String location; + boolean enableHighThroughputAPI; + int highThroughputMinTableSize; + int highThroughputActivationRatio; + boolean enableSession; + boolean unsupportedHTAPIFallback; + boolean useQueryCache; + String queryDialect; + int metadataFetchThreadCount; + boolean allowLargeResults; + String destinationTable; + String destinationDataset; + long destinationDatasetExpirationTime; + String kmsKeyName; + String universeDomain; + List queryProperties; + Map authProperties; + Map overrideProperties; + Credentials credentials; + boolean useStatelessQueryMode; + int numBufferedRows; + HttpTransportOptions httpTransportOptions; + TransportChannelProvider transportChannelProvider; + long maxResults; + long jobTimeoutInSeconds; + boolean enableWriteAPI; + int writeAPIActivationRowCount; + int writeAPIAppendRowCount; + int requestGoogleDriveScope; + List additionalProjects; + boolean filterTablesOnDefaultDataset; + String sslTrustStorePath; + String sslTrustStorePassword; + long maxBytesBilled; + Map labels; + + BigQueryConnection(String url) throws IOException { + this.connectionUrl = url; + this.openStatements = ConcurrentHashMap.newKeySet(); + this.autoCommit = true; + this.sqlWarnings = new ArrayList<>(); + this.transactionStarted = false; + this.isClosed = false; + this.labels = BigQueryJdbcUrlUtility.parseLabels(url, connectionClassName); + this.maxBytesBilled = + BigQueryJdbcUrlUtility.parseMaximumBytesBilled(url, this.connectionClassName); + this.retryTimeoutInSeconds = + BigQueryJdbcUrlUtility.parseRetryTimeoutInSecs(url, this.connectionClassName); + this.retryTimeoutDuration = Duration.ofMillis(retryTimeoutInSeconds * 1000L); + this.retryInitialDelayInSeconds = + BigQueryJdbcUrlUtility.parseRetryInitialDelayInSecs(url, this.connectionClassName); + this.retryInitialDelayDuration = Duration.ofMillis(retryInitialDelayInSeconds * 1000L); + this.retryMaxDelayInSeconds = + BigQueryJdbcUrlUtility.parseRetryMaxDelayInSecs(url, this.connectionClassName); + this.retryMaxDelayDuration = Duration.ofMillis(retryMaxDelayInSeconds * 1000L); + this.jobTimeoutInSeconds = + BigQueryJdbcUrlUtility.parseJobTimeout(url, this.connectionClassName); + this.authProperties = + BigQueryJdbcOAuthUtility.parseOAuthProperties(url, this.connectionClassName); + this.catalog = + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.PROJECT_ID_PROPERTY_NAME, + BigQueryOptions.getDefaultProjectId(), + this.connectionClassName); + this.universeDomain = + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_UNIVERSE_DOMAIN_VALUE, + this.connectionClassName); + this.overrideProperties = + BigQueryJdbcUrlUtility.parseOverrideProperties(url, this.connectionClassName); + if (universeDomain != null) { + this.overrideProperties.put( + BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME, universeDomain); + } + this.credentials = + BigQueryJdbcOAuthUtility.getCredentials( + authProperties, overrideProperties, this.connectionClassName); + String defaultDatasetString = + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.DEFAULT_DATASET_PROPERTY_NAME, + null, + this.connectionClassName); + if (defaultDatasetString == null || defaultDatasetString.trim().isEmpty()) { + this.defaultDataset = null; + } else { + String[] parts = defaultDatasetString.split("\\."); + if (parts.length == 2) { + this.defaultDataset = DatasetId.of(parts[0], parts[1]); + } else if (parts.length == 1) { + this.defaultDataset = DatasetId.of(parts[0]); + } else { + throw new IllegalArgumentException( + "DefaultDataset format is invalid. Supported options are datasetId or" + + " projectId.datasetId"); + } + } + this.location = + BigQueryJdbcUrlUtility.parseStringProperty( + url, BigQueryJdbcUrlUtility.LOCATION_PROPERTY_NAME, null, this.connectionClassName); + this.enableHighThroughputAPI = + BigQueryJdbcUrlUtility.parseBooleanProperty( + url, + BigQueryJdbcUrlUtility.ENABLE_HTAPI_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_ENABLE_HTAPI_VALUE, + this.connectionClassName); + this.highThroughputMinTableSize = + BigQueryJdbcUrlUtility.parseIntProperty( + url, + BigQueryJdbcUrlUtility.HTAPI_MIN_TABLE_SIZE_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_HTAPI_MIN_TABLE_SIZE_VALUE, + this.connectionClassName); + this.highThroughputActivationRatio = + BigQueryJdbcUrlUtility.parseIntProperty( + url, + BigQueryJdbcUrlUtility.HTAPI_ACTIVATION_RATIO_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_HTAPI_ACTIVATION_RATIO_VALUE, + this.connectionClassName); + this.useQueryCache = + BigQueryJdbcUrlUtility.parseBooleanProperty( + url, + BigQueryJdbcUrlUtility.USE_QUERY_CACHE_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_USE_QUERY_CACHE, + this.connectionClassName); + this.useStatelessQueryMode = + BigQueryJdbcUrlUtility.parseJobCreationMode(url, this.connectionClassName); + this.queryDialect = + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.QUERY_DIALECT_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_QUERY_DIALECT_VALUE, + this.connectionClassName); + this.allowLargeResults = + BigQueryJdbcUrlUtility.parseBooleanProperty( + url, + BigQueryJdbcUrlUtility.ALLOW_LARGE_RESULTS_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_ALLOW_LARGE_RESULTS, + this.connectionClassName); + this.destinationTable = + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.LARGE_RESULTS_TABLE_PROPERTY_NAME, + null, + this.connectionClassName); + this.destinationDataset = + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.LARGE_RESULTS_DATASET_PROPERTY_NAME, + null, + this.connectionClassName); + this.destinationDatasetExpirationTime = + BigQueryJdbcUrlUtility.parseLongProperty( + url, + BigQueryJdbcUrlUtility.DESTINATION_DATASET_EXPIRATION_TIME_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_DESTINATION_DATASET_EXPIRATION_TIME_VALUE, + this.connectionClassName); + this.kmsKeyName = + BigQueryJdbcUrlUtility.parseStringProperty( + url, BigQueryJdbcUrlUtility.KMS_KEY_NAME_PROPERTY_NAME, null, this.connectionClassName); + Map proxyProperties = + BigQueryJdbcProxyUtility.parseProxyProperties(url, this.connectionClassName); + this.sslTrustStorePath = + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.SSL_TRUST_STORE_PROPERTY_NAME, + null, + this.connectionClassName); + this.sslTrustStorePassword = + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.SSL_TRUST_STORE_PWD_PROPERTY_NAME, + null, + this.connectionClassName); + this.httpTransportOptions = + BigQueryJdbcProxyUtility.getHttpTransportOptions( + proxyProperties, + this.sslTrustStorePath, + this.sslTrustStorePassword, + this.connectionClassName); + this.transportChannelProvider = + BigQueryJdbcProxyUtility.getTransportChannelProvider( + proxyProperties, + this.sslTrustStorePath, + this.sslTrustStorePassword, + this.connectionClassName); + this.enableSession = + BigQueryJdbcUrlUtility.parseBooleanProperty( + url, + BigQueryJdbcUrlUtility.ENABLE_SESSION_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_ENABLE_SESSION_VALUE, + this.connectionClassName); + this.unsupportedHTAPIFallback = + BigQueryJdbcUrlUtility.parseBooleanProperty( + url, + BigQueryJdbcUrlUtility.UNSUPPORTED_HTAPI_FALLBACK_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_UNSUPPORTED_HTAPI_FALLBACK_VALUE, + this.connectionClassName); + this.maxResults = + BigQueryJdbcUrlUtility.parseLongProperty( + url, + BigQueryJdbcUrlUtility.MAX_RESULTS_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_MAX_RESULTS_VALUE, + this.connectionClassName); + Map queryPropertiesMap = + BigQueryJdbcUrlUtility.parseQueryProperties(url, this.connectionClassName); + this.sessionInfoConnectionProperty = getSessionPropertyFromQueryProperties(queryPropertiesMap); + this.queryProperties = convertMapToConnectionPropertiesList(queryPropertiesMap); + this.enableWriteAPI = + BigQueryJdbcUrlUtility.parseBooleanProperty( + url, + BigQueryJdbcUrlUtility.ENABLE_WRITE_API_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_ENABLE_WRITE_API_VALUE, + this.connectionClassName); + this.writeAPIActivationRowCount = + BigQueryJdbcUrlUtility.parseIntProperty( + url, + BigQueryJdbcUrlUtility.SWA_ACTIVATION_ROW_COUNT_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_SWA_ACTIVATION_ROW_COUNT_VALUE, + this.connectionClassName); + this.writeAPIAppendRowCount = + BigQueryJdbcUrlUtility.parseIntProperty( + url, + BigQueryJdbcUrlUtility.SWA_APPEND_ROW_COUNT_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_SWA_APPEND_ROW_COUNT_VALUE, + this.connectionClassName); + this.additionalProjects = + BigQueryJdbcUrlUtility.parseStringListProperty( + url, + BigQueryJdbcUrlUtility.ADDITIONAL_PROJECTS_PROPERTY_NAME, + this.connectionClassName); + this.filterTablesOnDefaultDataset = + BigQueryJdbcUrlUtility.parseBooleanProperty( + url, + BigQueryJdbcUrlUtility.FILTER_TABLES_ON_DEFAULT_DATASET_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_FILTER_TABLES_ON_DEFAULT_DATASET_VALUE, + this.connectionClassName); + this.requestGoogleDriveScope = + BigQueryJdbcUrlUtility.parseIntProperty( + url, + BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_REQUEST_GOOGLE_DRIVE_SCOPE_VALUE, + this.connectionClassName); + this.metadataFetchThreadCount = + BigQueryJdbcUrlUtility.parseIntProperty( + url, + BigQueryJdbcUrlUtility.METADATA_FETCH_THREAD_COUNT_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_METADATA_FETCH_THREAD_COUNT_VALUE, + this.connectionClassName); + + HEADER_PROVIDER = createHeaderProvider(); + this.bigQuery = getBigQueryConnection(); + } + + String getLibraryVersion(Class libraryClass) { + LOG.finest("++enter++"); + String version = null; + try (InputStream in = + libraryClass.getResourceAsStream( + "/com/google/cloud/bigquery/jdbc/dependencies.properties")) { + if (in != null) { + Properties props = new Properties(); + props.load(in); + version = props.getProperty("version.jdbc"); + } + } catch (IOException e) { + return DEFAULT_VERSION; + } + + return version != null ? version : DEFAULT_VERSION; + } + + private String buildPartnerToken(String url) { + String partnerTokenString = + BigQueryJdbcUrlUtility.parsePartnerTokenProperty(url, this.connectionClassName); + if (partnerTokenString == null || partnerTokenString.isEmpty()) { + return ""; + } + return partnerTokenString; + } + + HeaderProvider createHeaderProvider() { + String partnerToken = buildPartnerToken(this.connectionUrl); + String headerToken = + DEFAULT_JDBC_TOKEN_VALUE + "/" + getLibraryVersion(this.getClass()) + partnerToken; + return FixedHeaderProvider.create("user-agent", headerToken); + } + + protected void addOpenStatements(Statement statement) { + LOG.finest(String.format("Statement %s added to Connection %s.", statement, this)); + this.openStatements.add(statement); + } + + BigQueryReadClient getBigQueryReadClient() { + try { + if (this.bigQueryReadClient == null) { + this.bigQueryReadClient = getBigQueryReadClientConnection(); + } + } catch (IOException e) { + throw new BigQueryJdbcRuntimeException(e); + } + return this.bigQueryReadClient; + } + + BigQueryWriteClient getBigQueryWriteClient() { + try { + if (this.bigQueryWriteClient == null) { + this.bigQueryWriteClient = getBigQueryWriteClientConnection(); + } + } catch (IOException e) { + throw new BigQueryJdbcRuntimeException(e); + } + return this.bigQueryWriteClient; + } + + BigQuery getBigQuery() { + return this.bigQuery; + } + + String getConnectionUrl() { + return connectionUrl; + } + + /** + * Creates and returns a new {@code Statement} object for executing BigQuery SQL queries + * + * @return a new {@code Statement} object + * @see Connection#createStatement() + */ + @Override + public Statement createStatement() throws SQLException { + checkClosed(); + BigQueryStatement currentStatement = new BigQueryStatement(this); + LOG.fine(String.format("Statement %s created.", currentStatement)); + addOpenStatements(currentStatement); + return currentStatement; + } + + /** + * Creates and returns a new {@code Statement} object for executing BigQuery SQL queries. This + * method is similar to {@link BigQueryConnection#createStatement()}, but it overrides the type + * and concurrency of the generated {@code ResultSet}. + * + * @throws SQLException if a BigQuery connection error occurs, if this method is called on a + * closed connection, or the given parameters are not {@code ResultSet} constants indicating + * type and concurrency. + * @throws BigQueryJdbcSqlFeatureNotSupportedException if this method is not supported for the + * specified result set type and result set concurrency. + * @see Connection#createStatement(int, int) + * @see ResultSet + */ + @Override + public Statement createStatement(int resultSetType, int resultSetConcurrency) + throws SQLException { + checkClosed(); + if (resultSetType != ResultSet.TYPE_FORWARD_ONLY + || resultSetConcurrency != ResultSet.CONCUR_READ_ONLY) { + throw new BigQueryJdbcSqlFeatureNotSupportedException("Unsupported createStatement feature."); + } + return createStatement(); + } + + /** + * Creates and returns a new {@code Statement} object for executing BigQuery SQL queries. This + * method is similar to {@link BigQueryConnection#createStatement()}, but it overrides the type, + * concurrency, and holdability of the generated {@code ResultSet}. + * + * @throws SQLException if a BigQuery connection error occurs, if this method is called on a + * closed connection, or the given parameters are not {@code ResultSet} constants indicating + * type, concurrency, and holdability. + * @throws BigQueryJdbcSqlFeatureNotSupportedException if this method is not supported for the + * specified result set type, result set holdability and result set concurrency. + * @see Connection#createStatement(int, int, int) + * @see ResultSet + */ + @Override + public Statement createStatement( + int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { + LOG.finest("++enter++"); + checkClosed(); + if (resultSetType != ResultSet.TYPE_FORWARD_ONLY + || resultSetConcurrency != ResultSet.CONCUR_READ_ONLY + || resultSetHoldability != ResultSet.CLOSE_CURSORS_AT_COMMIT) { + throw new BigQueryJdbcSqlFeatureNotSupportedException("Unsupported createStatement feature"); + } + return createStatement(); + } + + @Override + public PreparedStatement prepareStatement(String sql) throws SQLException { + checkClosed(); + PreparedStatement currentStatement = new BigQueryPreparedStatement(this, sql); + LOG.fine(String.format("Prepared Statement %s created.", currentStatement)); + addOpenStatements(currentStatement); + return currentStatement; + } + + @Override + public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException { + if (autoGeneratedKeys != Statement.NO_GENERATED_KEYS) { + throw new BigQueryJdbcSqlFeatureNotSupportedException("autoGeneratedKeys is not supported"); + } + return prepareStatement(sql); + } + + @Override + public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException("autoGeneratedKeys is not supported"); + } + + @Override + public PreparedStatement prepareStatement( + String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) + throws SQLException { + if (resultSetType != ResultSet.TYPE_FORWARD_ONLY + || resultSetConcurrency != ResultSet.CONCUR_READ_ONLY + || resultSetHoldability != ResultSet.CLOSE_CURSORS_AT_COMMIT) { + throw new BigQueryJdbcSqlFeatureNotSupportedException("Unsupported prepareStatement feature"); + } + return prepareStatement(sql); + } + + @Override + public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) + throws SQLException { + LOG.finest("++enter++"); + if (resultSetType != ResultSet.TYPE_FORWARD_ONLY + || resultSetConcurrency != ResultSet.CONCUR_READ_ONLY) { + throw new BigQueryJdbcSqlFeatureNotSupportedException("Unsupported prepareStatement feature"); + } + return prepareStatement(sql); + } + + public DatasetId getDefaultDataset() { + checkClosed(); + return this.defaultDataset; + } + + String getDestinationDataset() { + return this.destinationDataset; + } + + String getDestinationTable() { + return this.destinationTable; + } + + long getDestinationDatasetExpirationTime() { + return this.destinationDatasetExpirationTime; + } + + String getKmsKeyName() { + return this.kmsKeyName; + } + + List getQueryProperties() { + return this.queryProperties; + } + + public String getLocation() { + checkClosed(); + return this.location; + } + + public Map getAuthProperties() { + checkClosed(); + return this.authProperties; + } + + long getMaxResults() { + return maxResults; + } + + long getRetryTimeoutInSeconds() { + return this.retryTimeoutInSeconds; + } + + Duration getRetryTimeoutDuration() { + return this.retryTimeoutDuration; + } + + long getRetryInitialDelayInSeconds() { + return this.retryInitialDelayInSeconds; + } + + Duration getRetryInitialDelayDuration() { + return this.retryInitialDelayDuration; + } + + long getRetryMaxDelayInSeconds() { + return this.retryMaxDelayInSeconds; + } + + Duration getRetryMaxDelayDuration() { + return this.retryMaxDelayDuration; + } + + long getJobTimeoutInSeconds() { + return this.jobTimeoutInSeconds; + } + + long getMaxBytesBilled() { + return this.maxBytesBilled; + } + + Map getLabels() { + return this.labels; + } + + /** + * Begins a transaction.
    + * The transaction ends when a {@link BigQueryConnection#commit()} or {@link + * BigQueryConnection#rollback()} is made.
    + * For more information about transactions in BigQuery, see Multi-statement transactions. + */ + private void beginTransaction() { + LOG.finest("++enter++"); + QueryJobConfiguration.Builder transactionBeginJobConfig = + QueryJobConfiguration.newBuilder("BEGIN TRANSACTION;"); + try { + if (this.sessionInfoConnectionProperty != null) { + transactionBeginJobConfig.setConnectionProperties(this.queryProperties); + } else { + transactionBeginJobConfig.setCreateSession(true); + } + Job job = this.bigQuery.create(JobInfo.of(transactionBeginJobConfig.build())); + job = job.waitFor(); + Job transactionBeginJob = this.bigQuery.getJob(job.getJobId()); + if (this.sessionInfoConnectionProperty == null) { + this.sessionInfoConnectionProperty = + ConnectionProperty.newBuilder() + .setKey("session_id") + .setValue(transactionBeginJob.getStatistics().getSessionInfo().getSessionId()) + .build(); + this.queryProperties.add(this.sessionInfoConnectionProperty); + } + this.transactionStarted = true; + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + } + + public boolean isTransactionStarted() { + return this.transactionStarted; + } + + boolean isSessionEnabled() { + return this.enableSession; + } + + boolean isUnsupportedHTAPIFallback() { + return this.unsupportedHTAPIFallback; + } + + ConnectionProperty getSessionInfoConnectionProperty() { + return this.sessionInfoConnectionProperty; + } + + boolean isEnableHighThroughputAPI() { + return this.enableHighThroughputAPI; + } + + boolean isUseQueryCache() { + return useQueryCache; + } + + boolean getUseStatelessQueryMode() { + return useStatelessQueryMode; + } + + boolean isAllowLargeResults() { + return allowLargeResults; + } + + String getQueryDialect() { + return queryDialect; + } + + Integer getNumBufferedRows() { + return numBufferedRows; + } + + int getHighThroughputMinTableSize() { + return highThroughputMinTableSize; + } + + List getAdditionalProjects() { + return this.additionalProjects; + } + + int getHighThroughputActivationRatio() { + return highThroughputActivationRatio; + } + + boolean isFilterTablesOnDefaultDataset() { + return this.filterTablesOnDefaultDataset; + } + + int isRequestGoogleDriveScope() { + return requestGoogleDriveScope; + } + + int getMetadataFetchThreadCount() { + return this.metadataFetchThreadCount; + } + + boolean isEnableWriteAPI() { + return enableWriteAPI; + } + + int getWriteAPIActivationRowCount() { + return writeAPIActivationRowCount; + } + + int getWriteAPIAppendRowCount() { + return writeAPIAppendRowCount; + } + + String getSSLTrustStorePath() { + return sslTrustStorePath; + } + + String getSSLTrustStorePassword() { + return sslTrustStorePassword; + } + + @Override + public boolean isValid(int timeout) throws SQLException { + if (timeout < 0) { + throw new BigQueryJdbcException("timeout must be >= 0"); + } + if (!isClosed()) { + try (Statement statement = createStatement(); + ResultSet rs = statement.executeQuery("SELECT 1")) { + LOG.finest("Running validation query"); + // TODO(obada): set query timeout when it's implemented + // TODO(obada): use dry run + if (rs.next()) { + if (rs.getInt(1) == 1) { + return true; + } + } + } catch (SQLException ex) { + // Ignore + } + } + return false; + } + + @Override + public void abort(Executor executor) throws SQLException { + LOG.finest("++enter++"); + close(); + } + + // TODO: Throw exception translation of BigQueryJdbcSqlClientInfoException when implementing below + @Override + public void setClientInfo(String name, String value) {} + + @Override + public String getClientInfo(String name) { + return null; + } + + @Override + public String getCatalog() { + return this.catalog; + } + + @Override + public Properties getClientInfo() { + return null; + } + + @Override + public void setClientInfo(Properties properties) {} + + @Override + public SQLWarning getWarnings() { + return this.sqlWarnings.isEmpty() ? null : this.sqlWarnings.get(0); + } + + @Override + public void clearWarnings() { + this.sqlWarnings.clear(); + } + + @Override + public boolean getAutoCommit() { + checkClosed(); + return this.autoCommit; + } + + /** + * Sets this connection's auto-commit mode to the given state.
    + * If this method is called during a transaction and the auto-commit mode is changed, the + * transaction is committed. If setAutoCommit is called and the auto-commit mode is not changed, + * the call is a no-op. + * + * @param autoCommit {@code true} to enable auto-commit mode; {@code false} to disable it + * @see Connection#setAutoCommit(boolean) + */ + @Override + public void setAutoCommit(boolean autoCommit) throws SQLException { + LOG.finest("++enter++"); + checkClosed(); + checkIfEnabledSession("setAutoCommit"); + if (this.autoCommit == autoCommit) { + return; + } + + if (isTransactionStarted()) { + commitTransaction(); + } + + this.autoCommit = autoCommit; + if (!this.autoCommit) { + beginTransaction(); + } + } + + @Override + public void commit() { + LOG.finest("++enter++"); + checkClosed(); + checkIfEnabledSession("commit"); + if (!isTransactionStarted()) { + throw new IllegalStateException( + "Cannot commit without an active transaction. Please set setAutoCommit to false to start" + + " a transaction."); + } + commitTransaction(); + if (!getAutoCommit()) { + beginTransaction(); + } + } + + @Override + public void rollback() throws SQLException { + LOG.finest("++enter++"); + checkClosed(); + checkIfEnabledSession("rollback"); + if (!isTransactionStarted()) { + throw new IllegalStateException( + "Cannot rollback without an active transaction. Please set setAutoCommit to false to" + + " start a transaction."); + } + try { + QueryJobConfiguration transactionRollbackJobConfig = + QueryJobConfiguration.newBuilder("ROLLBACK TRANSACTION;") + .setConnectionProperties(this.queryProperties) + .build(); + Job rollbackJob = this.bigQuery.create(JobInfo.of(transactionRollbackJobConfig)); + rollbackJob.waitFor(); + this.transactionStarted = false; + if (!getAutoCommit()) { + beginTransaction(); + } + } catch (InterruptedException | BigQueryException ex) { + throw new BigQueryJdbcException(ex); + } + } + + @Override + public DatabaseMetaData getMetaData() throws SQLException { + return new BigQueryDatabaseMetaData(this); + } + + @Override + public int getTransactionIsolation() { + // only supports Connection.TRANSACTION_SERIALIZABLE + return Connection.TRANSACTION_SERIALIZABLE; + } + + @Override + public void setTransactionIsolation(int level) throws SQLException { + if (level != Connection.TRANSACTION_SERIALIZABLE) { + throw new BigQueryJdbcSqlFeatureNotSupportedException( + "Transaction serializable not supported"); + } + this.transactionIsolation = level; + } + + @Override + public int getHoldability() { + return this.holdability; + } + + @Override + public void setHoldability(int holdability) throws SQLException { + if (holdability != ResultSet.CLOSE_CURSORS_AT_COMMIT) { + throw new BigQueryJdbcSqlFeatureNotSupportedException( + "CLOSE_CURSORS_AT_COMMIT not supported"); + } + this.holdability = holdability; + } + + /** + * Releases this {@code BigQueryConnection} object's BigQuery resources immediately instead of + * waiting for them to be automatically released. + * + * @throws SQLException if a BigQuery access error occurs + * @see Connection#close() + */ + @Override + public void close() throws SQLException { + LOG.fine("Closing Connection " + this); + // TODO(neenu-postMVP): Release all connection state objects + // check for and close all existing transactions + + if (isClosed()) { + return; + } + try { + if (this.bigQueryReadClient != null) { + this.bigQueryReadClient.shutdown(); + this.bigQueryReadClient.awaitTermination(1, TimeUnit.MINUTES); + this.bigQueryReadClient.close(); + } + + if (this.bigQueryWriteClient != null) { + this.bigQueryWriteClient.shutdown(); + this.bigQueryWriteClient.awaitTermination(1, TimeUnit.MINUTES); + this.bigQueryWriteClient.close(); + } + + for (Statement statement : this.openStatements) { + statement.close(); + } + this.openStatements.clear(); + } catch (ConcurrentModificationException ex) { + throw new BigQueryJdbcException(ex); + } catch (InterruptedException e) { + throw new BigQueryJdbcRuntimeException(e); + } + this.isClosed = true; + } + + @Override + public boolean isClosed() { + return this.isClosed; + } + + private void checkClosed() { + if (isClosed()) { + throw new IllegalStateException("This " + getClass().getName() + " has been closed"); + } + } + + private void checkIfEnabledSession(String methodName) { + if (!this.enableSession) { + throw new IllegalStateException( + String.format("Session needs to be enabled to use %s method.", methodName)); + } + } + + private ConnectionProperty getSessionPropertyFromQueryProperties( + Map queryPropertiesMap) { + LOG.finest("++enter++"); + if (queryPropertiesMap != null) { + if (queryPropertiesMap.containsKey("session_id")) { + return ConnectionProperty.newBuilder() + .setKey("session_id") + .setValue(queryPropertiesMap.get("session_id")) + .build(); + } + } + return null; + } + + private List convertMapToConnectionPropertiesList( + Map queryPropertiesMap) { + LOG.finest("++enter++"); + List connectionProperties = new ArrayList(); + if (queryPropertiesMap != null) { + for (Map.Entry entry : queryPropertiesMap.entrySet()) { + connectionProperties.add( + ConnectionProperty.newBuilder() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build()); + } + } + return connectionProperties; + } + + void removeStatement(Statement statement) { + this.openStatements.remove(statement); + } + + private BigQuery getBigQueryConnection() { + // 404 Not Found - check if the project exists + // 403 Forbidden - execute a dryRun to check if the user has bigquery.jobs.create permissions + BigQueryOptions.Builder bigQueryOptions = BigQueryOptions.newBuilder(); + if (this.retryTimeoutInSeconds > 0L + || (this.retryInitialDelayInSeconds > 0L && this.retryMaxDelayInSeconds > 0L)) { + RetrySettings.Builder retry_settings_builder = RetrySettings.newBuilder(); + if (this.retryTimeoutInSeconds > 0L) { + retry_settings_builder.setTotalTimeoutDuration(this.retryTimeoutDuration); + } + if (this.retryInitialDelayInSeconds > 0L && this.retryMaxDelayInSeconds > 0L) { + retry_settings_builder.setInitialRetryDelayDuration(retryInitialDelayDuration); + retry_settings_builder.setMaxRetryDelayDuration(retryMaxDelayDuration); + } + bigQueryOptions.setRetrySettings(retry_settings_builder.build()); + } + + if (this.catalog != null) { + bigQueryOptions.setProjectId(this.catalog); + } + if (this.credentials != null) { + bigQueryOptions.setCredentials(this.credentials); + } + if (this.location != null) { + bigQueryOptions.setLocation(this.location); + } + if (this.overrideProperties.containsKey( + BigQueryJdbcUrlUtility.BIGQUERY_ENDPOINT_OVERRIDE_PROPERTY_NAME)) { + bigQueryOptions.setHost( + this.overrideProperties.get( + BigQueryJdbcUrlUtility.BIGQUERY_ENDPOINT_OVERRIDE_PROPERTY_NAME)); + } + if (this.universeDomain != null) { + bigQueryOptions.setUniverseDomain(this.universeDomain); + } + if (this.httpTransportOptions != null) { + bigQueryOptions.setTransportOptions(this.httpTransportOptions); + } + + BigQueryOptions options = bigQueryOptions.setHeaderProvider(HEADER_PROVIDER).build(); + options.setQueryPreviewEnabled(String.valueOf(this.useStatelessQueryMode)); + return options.getService(); + } + + private BigQueryReadClient getBigQueryReadClientConnection() throws IOException { + BigQueryReadSettings.Builder bigQueryReadSettings = + BigQueryReadSettings.newBuilder().setHeaderProvider(HEADER_PROVIDER); + if (getRetrySettings() != null) { + bigQueryReadSettings.createReadSessionSettings().setRetrySettings(getRetrySettings()); + } + if (this.catalog != null) { + bigQueryReadSettings.setQuotaProjectId(this.catalog); + } + if (this.credentials != null) { + CredentialsProvider fixedProvider = FixedCredentialsProvider.create(credentials); + bigQueryReadSettings.setCredentialsProvider(fixedProvider); + } + if (this.overrideProperties.containsKey( + BigQueryJdbcUrlUtility.HTAPI_ENDPOINT_OVERRIDE_PROPERTY_NAME)) { + bigQueryReadSettings.setEndpoint( + this.overrideProperties.get( + BigQueryJdbcUrlUtility.HTAPI_ENDPOINT_OVERRIDE_PROPERTY_NAME)); + } + if (this.universeDomain != null) { + bigQueryReadSettings.setUniverseDomain(this.universeDomain); + } + if (this.transportChannelProvider != null) { + bigQueryReadSettings.setTransportChannelProvider(this.transportChannelProvider); + } + + return BigQueryReadClient.create(bigQueryReadSettings.build()); + } + + private BigQueryWriteClient getBigQueryWriteClientConnection() throws IOException { + BigQueryWriteSettings.Builder bigQueryWriteSettings = + BigQueryWriteSettings.newBuilder().setHeaderProvider(HEADER_PROVIDER); + if (getRetrySettings() != null) { + bigQueryWriteSettings.createWriteStreamSettings().setRetrySettings(getRetrySettings()); + } + if (this.catalog != null) { + bigQueryWriteSettings.setQuotaProjectId(this.catalog); + } + if (this.credentials != null) { + CredentialsProvider fixedProvider = FixedCredentialsProvider.create(credentials); + bigQueryWriteSettings.setCredentialsProvider(fixedProvider); + } + // Same endpoint as READ API + if (this.overrideProperties.containsKey( + BigQueryJdbcUrlUtility.HTAPI_ENDPOINT_OVERRIDE_PROPERTY_NAME)) { + bigQueryWriteSettings.setEndpoint( + this.overrideProperties.get( + BigQueryJdbcUrlUtility.HTAPI_ENDPOINT_OVERRIDE_PROPERTY_NAME)); + } + if (this.universeDomain != null) { + bigQueryWriteSettings.setUniverseDomain(this.universeDomain); + } + if (this.transportChannelProvider != null) { + bigQueryWriteSettings.setTransportChannelProvider(this.transportChannelProvider); + } + + return BigQueryWriteClient.create(bigQueryWriteSettings.build()); + } + + RetrySettings getRetrySettings() { + RetrySettings.Builder retrySettingsBuilder = null; + + if (this.retryTimeoutInSeconds > 0L + || (this.retryInitialDelayInSeconds > 0L && this.retryMaxDelayInSeconds > 0L)) { + retrySettingsBuilder = RetrySettings.newBuilder(); + if (this.retryTimeoutInSeconds > 0L) { + retrySettingsBuilder.setTotalTimeoutDuration(this.retryTimeoutDuration); + } + if (this.retryInitialDelayInSeconds > 0L && this.retryMaxDelayInSeconds > 0L) { + retrySettingsBuilder.setInitialRetryDelayDuration(retryInitialDelayDuration); + retrySettingsBuilder.setMaxRetryDelayDuration(retryMaxDelayDuration); + } + } + return retrySettingsBuilder == null ? null : retrySettingsBuilder.build(); + } + + private void commitTransaction() { + try { + QueryJobConfiguration transactionCommitJobConfig = + QueryJobConfiguration.newBuilder("COMMIT TRANSACTION;") + .setConnectionProperties(this.queryProperties) + .build(); + Job commitJob = this.bigQuery.create(JobInfo.of(transactionCommitJobConfig)); + commitJob.waitFor(); + this.transactionStarted = false; + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + } + + @Override + public CallableStatement prepareCall(String sql) throws SQLException { + checkClosed(); + CallableStatement currentStatement = new BigQueryCallableStatement(this, sql); + LOG.fine(String.format("Callable Statement %s created.", currentStatement)); + addOpenStatements(currentStatement); + return currentStatement; + } + + @Override + public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) + throws SQLException { + LOG.finest("++enter++"); + checkClosed(); + if (resultSetType != ResultSet.TYPE_FORWARD_ONLY + || resultSetConcurrency != ResultSet.CONCUR_READ_ONLY) { + throw new BigQueryJdbcSqlFeatureNotSupportedException( + "Unsupported CallableStatement feature"); + } + return prepareCall(sql); + } + + @Override + public CallableStatement prepareCall( + String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) + throws SQLException { + LOG.finest("++enter++"); + checkClosed(); + if (resultSetType != ResultSet.TYPE_FORWARD_ONLY + || resultSetConcurrency != ResultSet.CONCUR_READ_ONLY + || resultSetHoldability != ResultSet.CLOSE_CURSORS_AT_COMMIT) { + throw new BigQueryJdbcSqlFeatureNotSupportedException( + "Unsupported CallableStatement feature"); + } + return prepareCall(sql); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionProperty.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionProperty.java new file mode 100644 index 000000000000..17be15d86688 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionProperty.java @@ -0,0 +1,117 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import java.util.List; + +class BigQueryConnectionProperty { + + private final String name; + private final String description; + private final String defaultValue; + private final List validValues; + + public String getName() { + return name; + } + + public String getDescription() { + return description; + } + + public String getDefaultValue() { + return defaultValue; + } + + public List getValidValues() { + return validValues; + } + + BigQueryConnectionProperty(Builder builder) { + this.name = builder.name; + this.defaultValue = builder.defaultValue; + this.description = builder.description; + this.validValues = builder.validValues; + } + + /** Returns a builder for a BigQueryConnectionProperty object. */ + static BigQueryConnectionProperty.Builder newBuilder() { + return new BigQueryConnectionProperty.Builder(); + } + + BigQueryConnectionProperty.Builder toBuilder() { + return new BigQueryConnectionProperty.Builder(this); + } + + @Override + public String toString() { + return "BigQueryConnectionProperty{" + + "name='" + + name + + '\'' + + ", description='" + + description + + '\'' + + ", defaultValue='" + + defaultValue + + '\'' + + ", validValues=" + + validValues + + '}'; + } + + static final class Builder { + + private String name; + private String description; + private String defaultValue; + private List validValues; + + private Builder(BigQueryConnectionProperty bigQueryConnectionProperty) { + this.name = bigQueryConnectionProperty.name; + this.description = bigQueryConnectionProperty.description; + this.defaultValue = bigQueryConnectionProperty.defaultValue; + this.validValues = bigQueryConnectionProperty.validValues; + } + + private Builder() {} + + Builder setName(String name) { + this.name = name; + return this; + } + + Builder setDescription(String description) { + this.description = description; + return this; + } + + Builder setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + return this; + } + + Builder setValidValues(List validValues) { + this.validValues = validValues; + return this; + } + + BigQueryConnectionProperty build() { + return new BigQueryConnectionProperty(this); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTask.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTask.java new file mode 100644 index 000000000000..386785660a20 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTask.java @@ -0,0 +1,122 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.core.InternalApi; +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import java.lang.ref.Reference; +import java.lang.ref.ReferenceQueue; +import java.util.List; + +/** + * This class is used to add polling threads required for polling the reference queues associated + * with the two ResultSets + */ +@InternalApi +class BigQueryDaemonPollingTask extends Thread { + + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryDaemonPollingTask.class.getName()); + + static ReferenceQueue referenceQueueArrowRs; + static ReferenceQueue referenceQueueJsonRs; + static List arrowRsFinalizers; + static List jsonRsFinalizers; + + private static BigQueryDaemonPollingTask arrowDaemon; + private static BigQueryDaemonPollingTask jsonDaemon; + + private static final Object LOCK = new Object(); + + private BigQueryDaemonPollingTask( + List arrowRsFinalizers, + ReferenceQueue referenceQueueArrowRs) { + BigQueryDaemonPollingTask.referenceQueueArrowRs = referenceQueueArrowRs; + BigQueryDaemonPollingTask.arrowRsFinalizers = arrowRsFinalizers; + setDaemon(true); + } + + private BigQueryDaemonPollingTask( + ReferenceQueue referenceQueueJsonRs, + List jsonRsFinalizers) { + BigQueryDaemonPollingTask.referenceQueueJsonRs = referenceQueueJsonRs; + BigQueryDaemonPollingTask.jsonRsFinalizers = jsonRsFinalizers; + setDaemon(true); + } + + /** + * ThreadSafe method which creates two instances of polling task, one each for each type of + * ResultSet + * + * @param referenceQueueArrowRs ReferenceQueue for ArrowResultSet + * @param referenceQueueJsonRs ReferenceQueue for JsonResultSet + * @param arrowRsFinalizers Finalizer for ArrowResultSet + * @param jsonRsFinalizers Finalizer for JsonResultSet + * @return true if the tasks were created + */ + public static boolean startGcDaemonTask( + ReferenceQueue referenceQueueArrowRs, + ReferenceQueue referenceQueueJsonRs, + List arrowRsFinalizers, + List jsonRsFinalizers) { + LOG.finest("++enter++"); + synchronized (LOCK) { + // 2 Background threads will be required to monitor the respective queues + if (arrowDaemon == null && jsonDaemon == null) { + arrowDaemon = new BigQueryDaemonPollingTask(arrowRsFinalizers, referenceQueueArrowRs); + arrowDaemon.start(); + + jsonDaemon = new BigQueryDaemonPollingTask(referenceQueueJsonRs, jsonRsFinalizers); + jsonDaemon.start(); + + return true; + } + } + // Task(s) are already initialised + return false; + } + + @Override + public void run() { + + Reference reference; + try { + LOG.finest("++enter++"); + // poll for Arrow ResultSets + if (referenceQueueArrowRs != null) { + + while ((reference = referenceQueueArrowRs.remove()) != null) { + LOG.fine("Clearing Arrow ResultSet reference " + referenceQueueArrowRs); + ((BigQueryResultSetFinalizers.ArrowResultSetFinalizer) reference).finalizeResources(); + reference.clear(); + } + } + // poll for JSON ResultSets + else if (referenceQueueJsonRs != null) { + while ((reference = referenceQueueJsonRs.remove()) != null) { + LOG.fine("Clearing Json ResultSet reference " + referenceQueueJsonRs); + ((BigQueryResultSetFinalizers.JsonResultSetFinalizer) reference).finalizeResources(); + reference.clear(); + } + } else { + throw new BigQueryJdbcRuntimeException("Null Reference Queue"); + } + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaData.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaData.java new file mode 100644 index 000000000000..66917ea8891a --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaData.java @@ -0,0 +1,5346 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.gax.paging.Page; +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.DatasetListOption; +import com.google.cloud.bigquery.BigQuery.RoutineListOption; +import com.google.cloud.bigquery.BigQuery.TableListOption; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Field.Mode; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.FieldValueList; +import com.google.cloud.bigquery.Routine; +import com.google.cloud.bigquery.RoutineArgument; +import com.google.cloud.bigquery.RoutineId; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLDataType; +import com.google.cloud.bigquery.StandardSQLField; +import com.google.cloud.bigquery.StandardSQLTableType; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.Table; +import com.google.cloud.bigquery.TableDefinition; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.ResultSet; +import java.sql.RowIdLifetime; +import java.sql.SQLException; +import java.sql.Types; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashSet; +import java.util.List; +import java.util.Properties; +import java.util.Scanner; +import java.util.Set; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.Callable; +import java.util.concurrent.CancellationException; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicReference; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.regex.Pattern; +import javax.annotation.Nullable; + +/** + * An implementation of {@link java.sql.DatabaseMetaData}. This interface is implemented by driver + * vendors to let users know the capabilities of a Database Management System (DBMS) in combination + * with the driver based on JDBC™ technology ("JDBC driver") that is used with it. + * + * @see BigQueryStatement + */ +// TODO(neenu): test and verify after post MVP implementation. +class BigQueryDatabaseMetaData implements DatabaseMetaData { + final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + private static final String DATABASE_PRODUCT_NAME = "Google BigQuery"; + private static final String DATABASE_PRODUCT_VERSION = "2.0"; + private static final String DRIVER_NAME = "GoogleJDBCDriverForGoogleBigQuery"; + private static final String DRIVER_DEFAULT_VERSION = "0.0.0"; + private static final String SCHEMA_TERM = "Dataset"; + private static final String CATALOG_TERM = "Project"; + private static final String PROCEDURE_TERM = "Procedure"; + private static final String GET_PRIMARY_KEYS_SQL = "DatabaseMetaData_GetPrimaryKeys.sql"; + private static final String GET_IMPORTED_KEYS_SQL = "DatabaseMetaData_GetImportedKeys.sql"; + private static final String GET_EXPORTED_KEYS_SQL = "DatabaseMetaData_GetExportedKeys.sql"; + private static final String GET_CROSS_REFERENCE_SQL = "DatabaseMetaData_GetCrossReference.sql"; + private static final int API_EXECUTOR_POOL_SIZE = 50; + private static final int DEFAULT_PAGE_SIZE = 500; + private static final int DEFAULT_QUEUE_CAPACITY = 5000; + // Declared package-private for testing. + static final String GOOGLE_SQL_QUOTED_IDENTIFIER = "`"; + // Does not include SQL:2003 Keywords as per JDBC spec. + // https://en.wikipedia.org/wiki/List_of_SQL_reserved_words + static final String GOOGLE_SQL_RESERVED_KEYWORDS = + "ASC,ASSERT_ROWS_MODIFIED,DESC,ENUM,EXCLUDE,FOLLOWING,HASH,IF," + + "IGNORE,LIMIT,LOOKUP,NULLS,PRECEDING,PROTO,QUALIFY,RESPECT,STRUCT,UNBOUNDED"; + static final String GOOGLE_SQL_NUMERIC_FNS = + "ABS,ACOS,ACOSH,ASIN,ASINH,ATAN,ATAN2,ATANH,CBRT,CEIL,CEILING,COS" + + ",COSH,COSINE_DISTANCE,COT,COTH,CSC,CSCH,DIV,EXP,EUCLIDEAN_DISTANCE,FLOOR" + + ",GREATEST,IS_INF,LEAST,LN,LOG,LOG10,MOD,POW,RAND,RANGE_BUCKET,ROUND," + + ",SAFE_ADD,SAFE_DIVIDE,SAFE_MULTIPLY,SAFE_NEGATE,SAFE_SUBTRACT,SEC,SECH," + + "SIGN,SIN,SINH,SQRT,TAN,TANH,TRUNC"; + static final String GOOGLE_SQL_STRING_FNS = + "ASCII,BYTE_LENGTH,CHAR_LENGTH,CHARACTER_LENGTH,CHR,CODE_POINTS_TO_BYTES," + + "CODE_POINTS_TO_STRING,COLLATE,CONCAT,CONTAINS_SUBSTR,EDIT_DISTANCE,ENDS_WITH," + + "FORMAT,FROM_BASE32,FROM_BASE64,FROM_HEX,INITCAP,INSTR,LEFT,LENGTH,LOWER," + + "LPAD,LTRIM,NORMALIZ,NORMALIZE_AND_CASEFOLD,OCTET_LENGTH,REGEXP_CONTAINS," + + "REGEXP_EXTRACT,REGEXP_EXTRACT_ALL,REGEXP_INSTR,REGEXP_REPLACE,REGEXP_SUBSTR," + + "REPEAT,REPLACE,REVERSE,RIGHT,RPAD,RTRIM,SAFE_CONVERT_BYTES_TO_STRING,SOUNDEX," + + "SPLIT,STARTS_WITH,STRPOS,SUBSTR,SUBSTRING,TO_BASE32,TO_BASE64,TO_CODE_POINTS," + + "TO_HEX,TRANSLATE,TRIMunicode,UNICODE,UPPER"; + static final String GOOGLE_SQL_TIME_DATE_FNS = + "DATE,DATE_ADD,DATE_BUCKET,DATE_DIFF,DATE_FROM_UNIX_DATE," + + "DATE_SUB,DATE_TRUNC,DATETIME,DATETIME_ADD.,DATETIME_BUCKET," + + "DATETIME_DIFF,DATETIME_SUB,DATETIME_TRUNC,CURRENT_DATE,CURRENT_DATETIME," + + "CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_TIME,EXTRACT,FORMAT_TIME,PARSE_TIME," + + "TIME,TIME_ADD,TIME_DIFF,TIME_SUB,TIME_TRUNC,CURRENT_TIMESTAMP,EXTRACT," + + "FORMAT_TIMESTAMP,GENERATE_TIMESTAMP_ARRAY,PARSE_TIMESTAMP,TIMESTAMP," + + "TIMESTAMP_ADD,TIMESTAMP_DIFF,TIMESTAMP_MICROS,TIMESTAMP_MILLIS,TIMESTAMP_SECONDS," + + "TIMESTAMP_SUB,TIMESTAMP_TRUNC,UNIX_MICROS,UNIX_MILLIS,UNIX_SECONDS"; + static final String GOOGLE_SQL_ESCAPE = "\\"; + static final String GOOGLE_SQL_CATALOG_SEPARATOR = "."; + static final int GOOGLE_SQL_MAX_COL_NAME_LEN = 300; + static final int GOOGLE_SQL_MAX_COLS_PER_TABLE = 10000; + + String URL; + BigQueryConnection connection; + private final BigQueryStatement statement; + private final BigQuery bigquery; + private final int metadataFetchThreadCount; + private static final AtomicReference parsedDriverVersion = new AtomicReference<>(null); + private static final AtomicReference parsedDriverMajorVersion = + new AtomicReference<>(null); + private static final AtomicReference parsedDriverMinorVersion = + new AtomicReference<>(null); + + BigQueryDatabaseMetaData(BigQueryConnection connection) throws SQLException { + this.URL = connection.getConnectionUrl(); + this.connection = connection; + this.statement = connection.createStatement().unwrap(BigQueryStatement.class); + this.bigquery = connection.getBigQuery(); + this.metadataFetchThreadCount = connection.getMetadataFetchThreadCount(); + loadDriverVersionProperties(); + } + + @Override + public boolean allProceduresAreCallable() { + // Returns false because BigQuery's IAM permissions can allow a user + // to discover a procedure's existence without having rights to execute it. + return false; + } + + @Override + public boolean allTablesAreSelectable() { + // Returns true to ensure maximum compatibility with client applications + // that expect a positive response to discover and list all available tables. + return true; + } + + @Override + public String getURL() { + return this.URL; + } + + @Override + public String getUserName() { + return null; + } + + @Override + public boolean isReadOnly() { + return false; + } + + @Override + public boolean nullsAreSortedHigh() { + return false; + } + + @Override + public boolean nullsAreSortedLow() { + return false; + } + + @Override + public boolean nullsAreSortedAtStart() { + return false; + } + + @Override + public boolean nullsAreSortedAtEnd() { + return false; + } + + @Override + public String getDatabaseProductName() { + return DATABASE_PRODUCT_NAME; + } + + @Override + public String getDatabaseProductVersion() { + return DATABASE_PRODUCT_VERSION; + } + + @Override + public String getDriverName() { + return DRIVER_NAME; + } + + @Override + public String getDriverVersion() { + return parsedDriverVersion.get() != null ? parsedDriverVersion.get() : DRIVER_DEFAULT_VERSION; + } + + @Override + public int getDriverMajorVersion() { + return parsedDriverMajorVersion.get() != null ? parsedDriverMajorVersion.get() : 0; + } + + @Override + public int getDriverMinorVersion() { + return parsedDriverMinorVersion.get() != null ? parsedDriverMinorVersion.get() : 0; + } + + @Override + public boolean usesLocalFiles() { + return false; + } + + @Override + public boolean usesLocalFilePerTable() { + return false; + } + + @Override + public boolean supportsMixedCaseIdentifiers() { + return false; + } + + @Override + public boolean storesUpperCaseIdentifiers() { + return false; + } + + @Override + public boolean storesLowerCaseIdentifiers() { + return false; + } + + @Override + public boolean storesMixedCaseIdentifiers() { + return false; + } + + @Override + public boolean supportsMixedCaseQuotedIdentifiers() { + return false; + } + + @Override + public boolean storesUpperCaseQuotedIdentifiers() { + return false; + } + + @Override + public boolean storesLowerCaseQuotedIdentifiers() { + return false; + } + + @Override + public boolean storesMixedCaseQuotedIdentifiers() { + return false; + } + + @Override + public String getIdentifierQuoteString() { + return GOOGLE_SQL_QUOTED_IDENTIFIER; + } + + @Override + public String getSQLKeywords() { + return GOOGLE_SQL_RESERVED_KEYWORDS; + } + + @Override + public String getNumericFunctions() { + return GOOGLE_SQL_NUMERIC_FNS; + } + + @Override + public String getStringFunctions() { + return GOOGLE_SQL_STRING_FNS; + } + + @Override + // GoogleSQL has UDF (user defined functions). + // System functions like DATABASE(), USER() are not supported. + public String getSystemFunctions() { + return null; + } + + @Override + public String getTimeDateFunctions() { + return GOOGLE_SQL_TIME_DATE_FNS; + } + + @Override + public String getSearchStringEscape() { + return GOOGLE_SQL_ESCAPE; + } + + @Override + // No extra characters beyond a-z, A-Z, 0-9 and _ + public String getExtraNameCharacters() { + return null; + } + + @Override + public boolean supportsAlterTableWithAddColumn() { + return true; + } + + @Override + public boolean supportsAlterTableWithDropColumn() { + return true; + } + + @Override + public boolean supportsColumnAliasing() { + return true; + } + + @Override + public boolean nullPlusNonNullIsNull() { + return true; + } + + @Override + public boolean supportsConvert() { + return false; + } + + @Override + public boolean supportsConvert(int fromType, int toType) { + return false; + } + + @Override + public boolean supportsTableCorrelationNames() { + return true; + } + + @Override + public boolean supportsDifferentTableCorrelationNames() { + return false; + } + + @Override + public boolean supportsExpressionsInOrderBy() { + return true; + } + + @Override + public boolean supportsOrderByUnrelated() { + return true; + } + + @Override + public boolean supportsGroupBy() { + return true; + } + + @Override + public boolean supportsGroupByUnrelated() { + return true; + } + + @Override + public boolean supportsGroupByBeyondSelect() { + return true; + } + + @Override + public boolean supportsLikeEscapeClause() { + return false; + } + + @Override + public boolean supportsMultipleResultSets() { + return false; + } + + @Override + public boolean supportsMultipleTransactions() { + return false; + } + + @Override + public boolean supportsNonNullableColumns() { + return false; + } + + @Override + public boolean supportsMinimumSQLGrammar() { + return false; + } + + @Override + public boolean supportsCoreSQLGrammar() { + return false; + } + + @Override + public boolean supportsExtendedSQLGrammar() { + return false; + } + + @Override + public boolean supportsANSI92EntryLevelSQL() { + return false; + } + + @Override + public boolean supportsANSI92IntermediateSQL() { + return false; + } + + @Override + public boolean supportsANSI92FullSQL() { + return false; + } + + @Override + public boolean supportsIntegrityEnhancementFacility() { + return false; + } + + @Override + public boolean supportsOuterJoins() { + return false; + } + + @Override + public boolean supportsFullOuterJoins() { + return false; + } + + @Override + public boolean supportsLimitedOuterJoins() { + return false; + } + + @Override + public String getSchemaTerm() { + return SCHEMA_TERM; + } + + @Override + public String getProcedureTerm() { + return PROCEDURE_TERM; + } + + @Override + public String getCatalogTerm() { + return CATALOG_TERM; + } + + @Override + public boolean isCatalogAtStart() { + return true; + } + + @Override + public String getCatalogSeparator() { + return GOOGLE_SQL_CATALOG_SEPARATOR; + } + + @Override + public boolean supportsSchemasInDataManipulation() { + return false; + } + + @Override + public boolean supportsSchemasInProcedureCalls() { + return false; + } + + @Override + public boolean supportsSchemasInTableDefinitions() { + return false; + } + + @Override + public boolean supportsSchemasInIndexDefinitions() { + return false; + } + + @Override + public boolean supportsSchemasInPrivilegeDefinitions() { + return false; + } + + @Override + public boolean supportsCatalogsInDataManipulation() { + return false; + } + + @Override + public boolean supportsCatalogsInProcedureCalls() { + return false; + } + + @Override + public boolean supportsCatalogsInTableDefinitions() { + return false; + } + + @Override + public boolean supportsCatalogsInIndexDefinitions() { + return false; + } + + @Override + public boolean supportsCatalogsInPrivilegeDefinitions() { + return false; + } + + @Override + public boolean supportsPositionedDelete() { + return false; + } + + @Override + public boolean supportsPositionedUpdate() { + return false; + } + + @Override + public boolean supportsSelectForUpdate() { + return false; + } + + @Override + public boolean supportsStoredProcedures() { + return false; + } + + @Override + public boolean supportsSubqueriesInComparisons() { + return false; + } + + @Override + public boolean supportsSubqueriesInExists() { + return false; + } + + @Override + public boolean supportsSubqueriesInIns() { + return false; + } + + @Override + public boolean supportsSubqueriesInQuantifieds() { + return false; + } + + @Override + public boolean supportsCorrelatedSubqueries() { + return false; + } + + @Override + public boolean supportsUnion() { + return true; + } + + @Override + public boolean supportsUnionAll() { + return true; + } + + @Override + public boolean supportsOpenCursorsAcrossCommit() { + return false; + } + + @Override + public boolean supportsOpenCursorsAcrossRollback() { + return false; + } + + @Override + public boolean supportsOpenStatementsAcrossCommit() { + return false; + } + + @Override + public boolean supportsOpenStatementsAcrossRollback() { + return false; + } + + @Override + // No limit + public int getMaxBinaryLiteralLength() { + return 0; + } + + @Override + // No Limit + public int getMaxCharLiteralLength() { + return 0; + } + + @Override + // GoogleSQL documentation says 300. + // https://cloud.google.com/bigquery/quotas#all_tables + public int getMaxColumnNameLength() { + return GOOGLE_SQL_MAX_COL_NAME_LEN; + } + + @Override + // No specific limits for group by. + public int getMaxColumnsInGroupBy() { + return 0; + } + + @Override + // No specific limits for index. + public int getMaxColumnsInIndex() { + return 0; + } + + @Override + // No specific limit for Order By. + public int getMaxColumnsInOrderBy() { + return 0; + } + + @Override + // All columns can be selected. No specific limits. + public int getMaxColumnsInSelect() { + return 0; + } + + @Override + public int getMaxColumnsInTable() { + return GOOGLE_SQL_MAX_COLS_PER_TABLE; + } + + @Override + public int getMaxConnections() { + // Per JDBC spec, returns 0 as there is no connection limit or is unknown. + return 0; + } + + @Override + public int getMaxCursorNameLength() { + // BigQuery does not support named cursors or positioned updates/deletes. + return 0; + } + + @Override + public int getMaxIndexLength() { + // Per the JDBC spec, 0 indicates this feature is not supported. + return 0; + } + + @Override + public int getMaxSchemaNameLength() { + // Dataset IDs can be up to 1024 characters long. + // See: https://cloud.google.com/bigquery/docs/datasets#dataset-naming + return 1024; + } + + @Override + public int getMaxProcedureNameLength() { + // Routine IDs can be up to 256 characters long. + // See: + // https://cloud.google.com/bigquery/docs/reference/rest/v2/routines#RoutineReference.FIELDS.routine_id + return 256; + } + + @Override + public int getMaxCatalogNameLength() { + // Corresponds to the BigQuery Project ID, which can be a maximum of 30 characters. + // See: + // https://cloud.google.com/resource-manager/docs/creating-managing-projects#before_you_begin + return 30; + } + + @Override + public int getMaxRowSize() { + // Per JDBC spec, returns 0 as there is no fixed limit or is unknown. + return 0; + } + + @Override + public boolean doesMaxRowSizeIncludeBlobs() { + return false; + } + + @Override + public int getMaxStatementLength() { + // Per JDBC spec, returns 0 as there is no fixed limit or is unknown. + // See: https://cloud.google.com/bigquery/quotas#query_jobs + return 0; + } + + @Override + public int getMaxStatements() { + // Per JDBC spec, returns 0 as there is no fixed limit or is unknown. + return 0; + } + + @Override + public int getMaxTableNameLength() { + // Table IDs can be up to 1024 characters long. + // See: https://cloud.google.com/bigquery/docs/tables#table-naming + return 1024; + } + + @Override + public int getMaxTablesInSelect() { + // BigQuery allows up to 1,000 tables to be referenced per query. + // See: https://cloud.google.com/bigquery/quotas#query_jobs + return 1000; + } + + @Override + public int getMaxUserNameLength() { + return 0; + } + + @Override + public int getDefaultTransactionIsolation() { + return Connection.TRANSACTION_SERIALIZABLE; + } + + @Override + public boolean supportsTransactions() { + return true; + } + + @Override + public boolean supportsTransactionIsolationLevel(int level) { + return level == Connection.TRANSACTION_SERIALIZABLE; + } + + @Override + public boolean supportsDataDefinitionAndDataManipulationTransactions() { + return false; + } + + @Override + public boolean supportsDataManipulationTransactionsOnly() { + return false; + } + + @Override + public boolean dataDefinitionCausesTransactionCommit() { + return false; + } + + @Override + public boolean dataDefinitionIgnoredInTransactions() { + return false; + } + + @Override + public ResultSet getProcedures( + String catalog, String schemaPattern, String procedureNamePattern) { + if ((catalog == null || catalog.isEmpty()) + || (schemaPattern != null && schemaPattern.isEmpty()) + || (procedureNamePattern != null && procedureNamePattern.isEmpty())) { + LOG.warning("Returning empty ResultSet as catalog is null/empty or a pattern is empty."); + return new BigQueryJsonResultSet(); + } + + LOG.info( + String.format( + "getProcedures called for catalog: %s, schemaPattern: %s, procedureNamePattern: %s", + catalog, schemaPattern, procedureNamePattern)); + + final Pattern schemaRegex = compileSqlLikePattern(schemaPattern); + final Pattern procedureNameRegex = compileSqlLikePattern(procedureNamePattern); + final Schema resultSchema = defineGetProceduresSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = + new LinkedBlockingQueue<>(DEFAULT_QUEUE_CAPACITY); + final List collectedResults = Collections.synchronizedList(new ArrayList<>()); + final List> processingTaskFutures = new ArrayList<>(); + final String catalogParam = catalog; + + Runnable procedureFetcher = + () -> { + ExecutorService apiExecutor = null; + ExecutorService routineProcessorExecutor = null; + final FieldList localResultSchemaFields = resultSchemaFields; + final List>> apiFutures = new ArrayList<>(); + + try { + List datasetsToScan = + findMatchingBigQueryObjects( + "Dataset", + () -> + bigquery.listDatasets( + catalogParam, DatasetListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> bigquery.getDataset(DatasetId.of(catalogParam, name)), + (ds) -> ds.getDatasetId().getDataset(), + schemaPattern, + schemaRegex, + LOG); + + if (datasetsToScan.isEmpty()) { + LOG.info("Fetcher thread found no matching datasets. Finishing."); + return; + } + + apiExecutor = Executors.newFixedThreadPool(API_EXECUTOR_POOL_SIZE); + routineProcessorExecutor = Executors.newFixedThreadPool(this.metadataFetchThreadCount); + + LOG.fine("Submitting parallel findMatchingRoutines tasks..."); + for (Dataset dataset : datasetsToScan) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning("Fetcher interrupted during dataset iteration submission."); + break; + } + + final DatasetId currentDatasetId = dataset.getDatasetId(); + Callable> apiCallable = + () -> + findMatchingBigQueryObjects( + "Routine", + () -> + bigquery.listRoutines( + currentDatasetId, RoutineListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> + bigquery.getRoutine( + RoutineId.of( + currentDatasetId.getProject(), + currentDatasetId.getDataset(), + name)), + (rt) -> rt.getRoutineId().getRoutine(), + procedureNamePattern, + procedureNameRegex, + LOG); + Future> apiFuture = apiExecutor.submit(apiCallable); + apiFutures.add(apiFuture); + } + LOG.fine("Finished submitting " + apiFutures.size() + " findMatchingRoutines tasks."); + apiExecutor.shutdown(); + + LOG.fine("Processing results from findMatchingRoutines tasks..."); + for (Future> apiFuture : apiFutures) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning("Fetcher interrupted while processing API futures."); + break; + } + try { + List routinesResult = apiFuture.get(); + if (routinesResult != null) { + for (Routine routine : routinesResult) { + if (Thread.currentThread().isInterrupted()) break; + + if ("PROCEDURE".equalsIgnoreCase(routine.getRoutineType())) { + LOG.fine( + "Submitting processing task for procedure: " + routine.getRoutineId()); + final Routine finalRoutine = routine; + Future processFuture = + routineProcessorExecutor.submit( + () -> + processProcedureInfo( + finalRoutine, collectedResults, localResultSchemaFields)); + processingTaskFutures.add(processFuture); + } else { + LOG.finer("Skipping non-procedure routine: " + routine.getRoutineId()); + } + } + } + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + LOG.warning("Fetcher thread interrupted while waiting for API future result."); + break; + } catch (ExecutionException e) { + LOG.warning( + "Error executing findMatchingRoutines task: " + + e.getMessage() + + ". Cause: " + + e.getCause()); + } catch (CancellationException e) { + LOG.warning("A findMatchingRoutines task was cancelled."); + } + } + + LOG.fine( + "Finished submitting " + + processingTaskFutures.size() + + " processProcedureInfo tasks."); + + if (Thread.currentThread().isInterrupted()) { + LOG.warning( + "Fetcher interrupted before waiting for processing tasks; cancelling remaining."); + processingTaskFutures.forEach(f -> f.cancel(true)); + } else { + LOG.fine("Waiting for processProcedureInfo tasks to complete..."); + waitForTasksCompletion(processingTaskFutures); + LOG.fine("All processProcedureInfo tasks completed or handled."); + } + + if (!Thread.currentThread().isInterrupted()) { + Comparator comparator = + defineGetProceduresComparator(localResultSchemaFields); + sortResults(collectedResults, comparator, "getProcedures", LOG); + } + + if (!Thread.currentThread().isInterrupted()) { + populateQueue(collectedResults, queue, localResultSchemaFields); + } + + } catch (Throwable t) { + LOG.severe("Unexpected error in procedure fetcher runnable: " + t.getMessage()); + apiFutures.forEach(f -> f.cancel(true)); + processingTaskFutures.forEach(f -> f.cancel(true)); + } finally { + signalEndOfData(queue, localResultSchemaFields); + shutdownExecutor(apiExecutor); + shutdownExecutor(routineProcessorExecutor); + LOG.info("Procedure fetcher thread finished."); + } + }; + + Thread fetcherThread = new Thread(procedureFetcher, "getProcedures-fetcher-" + catalog); + BigQueryJsonResultSet resultSet = + BigQueryJsonResultSet.of( + resultSchema, -1, queue, this.statement, new Thread[] {fetcherThread}); + + fetcherThread.start(); + LOG.info("Started background thread for getProcedures"); + return resultSet; + } + + Schema defineGetProceduresSchema() { + List fields = new ArrayList<>(9); + fields.add( + Field.newBuilder("PROCEDURE_CAT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("PROCEDURE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("PROCEDURE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("reserved1", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("reserved2", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("reserved3", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("REMARKS", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("PROCEDURE_TYPE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("SPECIFIC_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + return Schema.of(fields); + } + + void processProcedureInfo( + Routine routine, List collectedResults, FieldList resultSchemaFields) { + + RoutineId routineId = routine.getRoutineId(); + LOG.fine("Processing procedure info for: " + routineId); + + try { + if (!"PROCEDURE".equalsIgnoreCase(routine.getRoutineType())) { + LOG.warning( + "processProcedureInfo called with non-procedure type: " + + routine.getRoutineType() + + " for " + + routineId); + return; + } + + String catalogName = routineId.getProject(); + String schemaName = routineId.getDataset(); + String procedureName = routineId.getRoutine(); + String remarks = routine.getDescription(); + + List values = new ArrayList<>(resultSchemaFields.size()); + + values.add(createStringFieldValue(catalogName)); // 1. PROCEDURE_CAT + values.add(createStringFieldValue(schemaName)); // 2. PROCEDURE_SCHEM + values.add(createStringFieldValue(procedureName)); // 3. PROCEDURE_NAME + values.add(createNullFieldValue()); // 4. reserved1 + values.add(createNullFieldValue()); // 5. reserved2 + values.add(createNullFieldValue()); // 6. reserved3 + values.add(createStringFieldValue(remarks)); // 7. REMARKS + values.add( + createLongFieldValue( + (long) DatabaseMetaData.procedureResultUnknown)); // 8. PROCEDURE_TYPE + values.add(createStringFieldValue(procedureName)); // 9. SPECIFIC_NAME + + FieldValueList rowFvl = FieldValueList.of(values, resultSchemaFields); + collectedResults.add(rowFvl); + + LOG.fine("Processed and added procedure info row for: " + routineId); + + } catch (Exception e) { + LOG.warning( + String.format( + "Error processing procedure info for %s: %s. Skipping this procedure.", + routineId, e.getMessage())); + } + } + + Comparator defineGetProceduresComparator(FieldList resultSchemaFields) { + final int PROC_CAT_IDX = resultSchemaFields.getIndex("PROCEDURE_CAT"); + final int PROC_SCHEM_IDX = resultSchemaFields.getIndex("PROCEDURE_SCHEM"); + final int PROC_NAME_IDX = resultSchemaFields.getIndex("PROCEDURE_NAME"); + final int SPEC_NAME_IDX = resultSchemaFields.getIndex("SPECIFIC_NAME"); + return Comparator.comparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, PROC_CAT_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, PROC_SCHEM_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, PROC_NAME_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, SPEC_NAME_IDX), + Comparator.nullsFirst(String::compareTo)); + } + + @Override + public ResultSet getProcedureColumns( + String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern) { + + if (catalog == null || catalog.isEmpty()) { + LOG.warning("Returning empty ResultSet because catalog (project) is null or empty."); + return new BigQueryJsonResultSet(); + } + if ((schemaPattern != null && schemaPattern.isEmpty()) + || (procedureNamePattern != null && procedureNamePattern.isEmpty()) + || (columnNamePattern != null && columnNamePattern.isEmpty())) { + LOG.warning("Returning empty ResultSet because an explicit empty pattern was provided."); + return new BigQueryJsonResultSet(); + } + + LOG.info( + String.format( + "getProcedureColumns called for catalog: %s, schemaPattern: %s, procedureNamePattern:" + + " %s, columnNamePattern: %s", + catalog, schemaPattern, procedureNamePattern, columnNamePattern)); + + final Pattern schemaRegex = compileSqlLikePattern(schemaPattern); + final Pattern procedureNameRegex = compileSqlLikePattern(procedureNamePattern); + final Pattern columnNameRegex = compileSqlLikePattern(columnNamePattern); + + final Schema resultSchema = defineGetProcedureColumnsSchema(); + final BlockingQueue queue = + new LinkedBlockingQueue<>(DEFAULT_QUEUE_CAPACITY); + final List collectedResults = Collections.synchronizedList(new ArrayList<>()); + final List> processingTaskFutures = new ArrayList<>(); + final String catalogParam = catalog; + + Runnable procedureColumnFetcher = + () -> { + ExecutorService listRoutinesExecutor = null; + ExecutorService getRoutineDetailsExecutor = null; + ExecutorService processArgsExecutor = null; + + final String fetcherThreadNameSuffix = + "-" + catalogParam.substring(0, Math.min(10, catalogParam.length())); + + try { + List datasetsToScan = + fetchMatchingDatasetsForProcedureColumns(catalogParam, schemaPattern, schemaRegex); + if (datasetsToScan.isEmpty() || Thread.currentThread().isInterrupted()) { + LOG.info( + "Fetcher: No matching datasets or interrupted early. Catalog: " + catalogParam); + return; + } + + listRoutinesExecutor = + Executors.newFixedThreadPool( + API_EXECUTOR_POOL_SIZE, + runnable -> new Thread(runnable, "pcol-list-rout" + fetcherThreadNameSuffix)); + List procedureIdsToGet = + listMatchingProcedureIdsFromDatasets( + datasetsToScan, + procedureNamePattern, + procedureNameRegex, + listRoutinesExecutor, + catalogParam, + LOG); + shutdownExecutor(listRoutinesExecutor); + listRoutinesExecutor = null; + + if (procedureIdsToGet.isEmpty() || Thread.currentThread().isInterrupted()) { + LOG.info("Fetcher: No procedure IDs found or interrupted. Catalog: " + catalogParam); + return; + } + + getRoutineDetailsExecutor = + Executors.newFixedThreadPool( + 100, + runnable -> new Thread(runnable, "pcol-get-details" + fetcherThreadNameSuffix)); + List fullRoutines = + fetchFullRoutineDetailsForIds(procedureIdsToGet, getRoutineDetailsExecutor, LOG); + shutdownExecutor(getRoutineDetailsExecutor); + getRoutineDetailsExecutor = null; + + if (fullRoutines.isEmpty() || Thread.currentThread().isInterrupted()) { + LOG.info( + "Fetcher: No full routines fetched or interrupted. Catalog: " + catalogParam); + return; + } + + processArgsExecutor = + Executors.newFixedThreadPool( + this.metadataFetchThreadCount, + runnable -> new Thread(runnable, "pcol-proc-args" + fetcherThreadNameSuffix)); + submitProcedureArgumentProcessingJobs( + fullRoutines, + columnNameRegex, + collectedResults, + resultSchema.getFields(), + processArgsExecutor, + processingTaskFutures, + LOG); + + if (Thread.currentThread().isInterrupted()) { + LOG.warning( + "Fetcher: Interrupted before waiting for argument processing. Catalog: " + + catalogParam); + processingTaskFutures.forEach(f -> f.cancel(true)); + } else { + LOG.fine( + "Fetcher: Waiting for " + + processingTaskFutures.size() + + " argument processing tasks. Catalog: " + + catalogParam); + waitForTasksCompletion(processingTaskFutures); + LOG.fine( + "Fetcher: All argument processing tasks completed or handled. Catalog: " + + catalogParam); + } + + if (!Thread.currentThread().isInterrupted()) { + Comparator comparator = + defineGetProcedureColumnsComparator(resultSchema.getFields()); + sortResults(collectedResults, comparator, "getProcedureColumns", LOG); + populateQueue(collectedResults, queue, resultSchema.getFields()); + } + + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + LOG.warning( + "Fetcher: Interrupted in main try block for catalog " + + catalogParam + + ". Error: " + + e.getMessage()); + processingTaskFutures.forEach(f -> f.cancel(true)); + } catch (Throwable t) { + LOG.severe( + "Fetcher: Unexpected error in main try block for catalog " + + catalogParam + + ". Error: " + + t.getMessage()); + processingTaskFutures.forEach(f -> f.cancel(true)); + } finally { + signalEndOfData(queue, resultSchema.getFields()); + if (listRoutinesExecutor != null) shutdownExecutor(listRoutinesExecutor); + if (getRoutineDetailsExecutor != null) shutdownExecutor(getRoutineDetailsExecutor); + if (processArgsExecutor != null) shutdownExecutor(processArgsExecutor); + LOG.info("Procedure column fetcher thread finished for catalog: " + catalogParam); + } + }; + + Thread fetcherThread = + new Thread(procedureColumnFetcher, "getProcedureColumns-fetcher-" + catalog); + BigQueryJsonResultSet resultSet = + BigQueryJsonResultSet.of( + resultSchema, -1, queue, this.statement, new Thread[] {fetcherThread}); + + fetcherThread.start(); + LOG.info("Started background thread for getProcedureColumns for catalog: " + catalog); + return resultSet; + } + + private List fetchMatchingDatasetsForProcedureColumns( + String catalogParam, String schemaPattern, Pattern schemaRegex) throws InterruptedException { + LOG.fine( + String.format( + "Fetching matching datasets for catalog '%s', schemaPattern '%s'", + catalogParam, schemaPattern)); + List datasetsToScan = + findMatchingBigQueryObjects( + "Dataset", + () -> + bigquery.listDatasets(catalogParam, DatasetListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> bigquery.getDataset(DatasetId.of(catalogParam, name)), + (ds) -> ds.getDatasetId().getDataset(), + schemaPattern, + schemaRegex, + LOG); + LOG.info( + String.format( + "Found %d datasets to scan for procedures in catalog '%s'.", + datasetsToScan.size(), catalogParam)); + return datasetsToScan; + } + + List listMatchingProcedureIdsFromDatasets( + List datasetsToScan, + String procedureNamePattern, + Pattern procedureNameRegex, + ExecutorService listRoutinesExecutor, + String catalogParam, + BigQueryJdbcCustomLogger logger) + throws InterruptedException { + + logger.fine( + String.format( + "Listing matching procedure IDs from %d datasets for catalog '%s'.", + datasetsToScan.size(), catalogParam)); + final List>> listRoutineFutures = new ArrayList<>(); + final List procedureIdsToGet = Collections.synchronizedList(new ArrayList<>()); + + for (Dataset dataset : datasetsToScan) { + if (Thread.currentThread().isInterrupted()) { + logger.warning( + "Interrupted during submission of routine listing tasks for catalog: " + catalogParam); + throw new InterruptedException("Interrupted while listing routines"); + } + final DatasetId currentDatasetId = dataset.getDatasetId(); + Callable> listCallable = + () -> + findMatchingBigQueryObjects( + "Routine", + () -> + bigquery.listRoutines( + currentDatasetId, RoutineListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> + bigquery.getRoutine( + RoutineId.of( + currentDatasetId.getProject(), currentDatasetId.getDataset(), name)), + (rt) -> rt.getRoutineId().getRoutine(), + procedureNamePattern, + procedureNameRegex, + logger); + listRoutineFutures.add(listRoutinesExecutor.submit(listCallable)); + } + logger.fine( + "Submitted " + + listRoutineFutures.size() + + " routine list tasks for catalog: " + + catalogParam); + + for (Future> listFuture : listRoutineFutures) { + if (Thread.currentThread().isInterrupted()) { + logger.warning( + "Interrupted while collecting routine list results for catalog: " + catalogParam); + listRoutineFutures.forEach(f -> f.cancel(true)); + throw new InterruptedException("Interrupted while collecting routine lists"); + } + try { + List listedRoutines = listFuture.get(); + if (listedRoutines != null) { + for (Routine listedRoutine : listedRoutines) { + if (listedRoutine != null + && "PROCEDURE".equalsIgnoreCase(listedRoutine.getRoutineType())) { + if (listedRoutine.getRoutineId() != null) { + procedureIdsToGet.add(listedRoutine.getRoutineId()); + } else { + logger.warning( + "Found a procedure type routine with a null ID during listing phase for" + + " catalog: " + + catalogParam); + } + } + } + } + } catch (ExecutionException e) { + logger.warning( + "Error getting routine list result for catalog " + catalogParam + ": " + e.getCause()); + } catch (CancellationException e) { + logger.warning("Routine list task cancelled for catalog: " + catalogParam); + } + } + logger.info( + String.format( + "Found %d procedure IDs to fetch details for in catalog '%s'.", + procedureIdsToGet.size(), catalogParam)); + return procedureIdsToGet; + } + + List fetchFullRoutineDetailsForIds( + List procedureIdsToGet, + ExecutorService getRoutineDetailsExecutor, + BigQueryJdbcCustomLogger logger) + throws InterruptedException { + logger.fine( + String.format("Fetching full details for %d procedure IDs.", procedureIdsToGet.size())); + final List> getRoutineFutures = new ArrayList<>(); + final List fullRoutines = Collections.synchronizedList(new ArrayList<>()); + + for (RoutineId procId : procedureIdsToGet) { + if (Thread.currentThread().isInterrupted()) { + logger.warning("Interrupted during submission of getRoutine detail tasks."); + throw new InterruptedException("Interrupted while submitting getRoutine tasks"); + } + final RoutineId currentProcId = procId; + Callable getCallable = + () -> { + try { + return bigquery.getRoutine(currentProcId); + } catch (Exception e) { + logger.warning( + "Failed to get full details for routine " + + currentProcId + + ": " + + e.getMessage()); + return null; + } + }; + getRoutineFutures.add(getRoutineDetailsExecutor.submit(getCallable)); + } + logger.fine("Submitted " + getRoutineFutures.size() + " getRoutine detail tasks."); + + for (Future getFuture : getRoutineFutures) { + if (Thread.currentThread().isInterrupted()) { + logger.warning("Interrupted while collecting getRoutine detail results."); + getRoutineFutures.forEach(f -> f.cancel(true)); // Cancel remaining + throw new InterruptedException("Interrupted while collecting Routine details"); + } + try { + Routine fullRoutine = getFuture.get(); + if (fullRoutine != null) { + fullRoutines.add(fullRoutine); + } + } catch (ExecutionException e) { + logger.warning("Error processing getRoutine future result: " + e.getCause()); + } catch (CancellationException e) { + logger.warning("getRoutine detail task cancelled."); + } + } + logger.info( + String.format("Successfully fetched full details for %d routines.", fullRoutines.size())); + return fullRoutines; + } + + void submitProcedureArgumentProcessingJobs( + List fullRoutines, + Pattern columnNameRegex, + List collectedResults, + FieldList resultSchemaFields, + ExecutorService processArgsExecutor, + List> outArgumentProcessingFutures, + BigQueryJdbcCustomLogger logger) + throws InterruptedException { + logger.fine( + String.format("Submitting argument processing jobs for %d routines.", fullRoutines.size())); + + for (Routine fullRoutine : fullRoutines) { + if (Thread.currentThread().isInterrupted()) { + logger.warning("Interrupted during submission of argument processing tasks."); + throw new InterruptedException("Interrupted while submitting argument processing jobs"); + } + if (fullRoutine != null) { + if ("PROCEDURE".equalsIgnoreCase(fullRoutine.getRoutineType())) { + final Routine finalFullRoutine = fullRoutine; + Future processFuture = + processArgsExecutor.submit( + () -> + processProcedureArguments( + finalFullRoutine, columnNameRegex, collectedResults, resultSchemaFields)); + outArgumentProcessingFutures.add(processFuture); + } else { + logger.warning( + "Routine " + + (fullRoutine.getRoutineId() != null + ? fullRoutine.getRoutineId().toString() + : "UNKNOWN_ID") + + " fetched via getRoutine was not of type PROCEDURE (Type: " + + fullRoutine.getRoutineType() + + "). Skipping argument processing."); + } + } + } + logger.fine( + "Finished submitting " + + outArgumentProcessingFutures.size() + + " processProcedureArguments tasks."); + } + + Schema defineGetProcedureColumnsSchema() { + List fields = new ArrayList<>(20); + fields.add( + Field.newBuilder("PROCEDURE_CAT", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("PROCEDURE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("PROCEDURE_NAME", StandardSQLTypeName.STRING) + .setMode(Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("COLUMN_NAME", StandardSQLTypeName.STRING).setMode(Mode.REQUIRED).build()); + fields.add( + Field.newBuilder("COLUMN_TYPE", StandardSQLTypeName.INT64).setMode(Mode.REQUIRED).build()); + fields.add( + Field.newBuilder("DATA_TYPE", StandardSQLTypeName.INT64).setMode(Mode.REQUIRED).build()); + fields.add( + Field.newBuilder("TYPE_NAME", StandardSQLTypeName.STRING).setMode(Mode.REQUIRED).build()); + fields.add( + Field.newBuilder("PRECISION", StandardSQLTypeName.INT64).setMode(Mode.NULLABLE).build()); + fields.add( + Field.newBuilder("LENGTH", StandardSQLTypeName.INT64).setMode(Mode.NULLABLE).build()); + fields.add(Field.newBuilder("SCALE", StandardSQLTypeName.INT64).setMode(Mode.NULLABLE).build()); + fields.add(Field.newBuilder("RADIX", StandardSQLTypeName.INT64).setMode(Mode.NULLABLE).build()); + fields.add( + Field.newBuilder("NULLABLE", StandardSQLTypeName.INT64).setMode(Mode.REQUIRED).build()); + fields.add( + Field.newBuilder("REMARKS", StandardSQLTypeName.STRING).setMode(Mode.NULLABLE).build()); + fields.add( + Field.newBuilder("COLUMN_DEF", StandardSQLTypeName.STRING).setMode(Mode.NULLABLE).build()); + fields.add( + Field.newBuilder("SQL_DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("SQL_DATETIME_SUB", StandardSQLTypeName.INT64) + .setMode(Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("CHAR_OCTET_LENGTH", StandardSQLTypeName.INT64) + .setMode(Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("ORDINAL_POSITION", StandardSQLTypeName.INT64) + .setMode(Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("IS_NULLABLE", StandardSQLTypeName.STRING).setMode(Mode.REQUIRED).build()); + fields.add( + Field.newBuilder("SPECIFIC_NAME", StandardSQLTypeName.STRING) + .setMode(Mode.REQUIRED) + .build()); + return Schema.of(fields); + } + + void processProcedureArguments( + Routine routine, + Pattern columnNameRegex, + List collectedResults, + FieldList resultSchemaFields) { + + RoutineId routineId = routine.getRoutineId(); + List arguments; + try { + arguments = routine.getArguments(); + } catch (Exception e) { + LOG.warning( + String.format( + "Could not retrieve arguments list for procedure %s: %s. No arguments will be" + + " processed.", + routineId, e.getMessage())); + return; + } + + if (arguments == null || arguments.isEmpty()) { + LOG.fine("Procedure " + routineId + " has no arguments."); + return; + } + + String catalogName = routineId.getProject(); + String schemaName = routineId.getDataset(); + String procedureName = routineId.getRoutine(); + String specificName = procedureName; + + for (int i = 0; i < arguments.size(); i++) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning("Argument processing task interrupted for " + routineId); + break; + } + + int ordinalPosition = i + 1; + RoutineArgument arg; + String argName; + + try { + arg = arguments.get(i); + argName = arg.getName(); + } catch (Exception listAccessException) { + LOG.warning( + String.format( + "Exception during arguments.get(%d) for Proc: %s. Ordinal: %d. Message: %s." + + " Generating fallback row.", + i, routineId, ordinalPosition, listAccessException.getMessage())); + argName = "arg_retrieval_err_" + ordinalPosition; + arg = null; + } + + // Filter by columnNamePattern, but not by generated fallback name + if (columnNameRegex != null) { + assert argName != null; + if (!argName.startsWith("arg_")) { + if (!columnNameRegex.matcher(argName).matches()) { + continue; + } + } + } + + List values = + createProcedureColumnRow( + catalogName, schemaName, procedureName, specificName, arg, ordinalPosition, argName); + + FieldValueList rowFvl = FieldValueList.of(values, resultSchemaFields); + collectedResults.add(rowFvl); + } + } + + List createProcedureColumnRow( + String catalog, + String schemaName, + String procedureName, + String specificName, + @Nullable RoutineArgument argument, + int ordinalPosition, + String columnName) { + + List values = new ArrayList<>(20); + ColumnTypeInfo typeInfo; + + if (argument == null) { + LOG.warning( + String.format( + "Proc: %s, Arg: %s (Pos %d) - RoutineArgument object is null. Defaulting type to" + + " VARCHAR.", + procedureName, columnName, ordinalPosition)); + typeInfo = new ColumnTypeInfo(Types.VARCHAR, "VARCHAR", null, null, null); + } else { + try { + StandardSQLDataType argumentDataType = argument.getDataType(); + if (argumentDataType == null) { + LOG.warning( + String.format( + "Proc: %s, Arg: %s (Pos %d) - argument.getDataType() returned null. Defaulting" + + " type to VARCHAR.", + procedureName, columnName, ordinalPosition)); + typeInfo = new ColumnTypeInfo(Types.VARCHAR, "VARCHAR", null, null, null); + } else { + typeInfo = + determineTypeInfoFromDataType( + argumentDataType, procedureName, columnName, ordinalPosition); + } + } catch (Exception e) { + LOG.warning( + String.format( + "Proc: %s, Arg: %s (Pos %d) - Unexpected Exception during type processing." + + " Defaulting type to VARCHAR. Error: %s", + procedureName, columnName, ordinalPosition, e.getMessage())); + typeInfo = new ColumnTypeInfo(Types.VARCHAR, "VARCHAR", null, null, null); + } + } + + String argumentModeStr = null; + if (argument != null) { + try { + argumentModeStr = argument.getMode(); + } catch (Exception e) { + LOG.warning( + String.format( + "Proc: %s, Arg: %s (Pos %d) - Could not get argument mode. Error: %s", + procedureName, columnName, ordinalPosition, e.getMessage())); + } + } + + values.add(createStringFieldValue(catalog)); // 1. PROCEDURE_CAT + values.add(createStringFieldValue(schemaName)); // 2. PROCEDURE_SCHEM + values.add(createStringFieldValue(procedureName)); // 3. PROCEDURE_NAME + values.add(createStringFieldValue(columnName)); // 4. COLUMN_NAME + long columnTypeJdbc = DatabaseMetaData.procedureColumnUnknown; + if ("IN".equalsIgnoreCase(argumentModeStr)) { + columnTypeJdbc = DatabaseMetaData.procedureColumnIn; + } else if ("OUT".equalsIgnoreCase(argumentModeStr)) { + columnTypeJdbc = DatabaseMetaData.procedureColumnOut; + } else if ("INOUT".equalsIgnoreCase(argumentModeStr)) { + columnTypeJdbc = DatabaseMetaData.procedureColumnInOut; + } + values.add(createLongFieldValue(columnTypeJdbc)); // 5. COLUMN_TYPE + values.add(createLongFieldValue((long) typeInfo.jdbcType)); // 6. DATA_TYPE (java.sql.Types) + values.add(createStringFieldValue(typeInfo.typeName)); // 7. TYPE_NAME (DB type name) + values.add( + createLongFieldValue( + typeInfo.columnSize == null ? null : typeInfo.columnSize.longValue())); // 8. PRECISION + values.add( + createNullFieldValue()); // 9. LENGTH (length in bytes - often null for procedure params) + values.add( + createLongFieldValue( + typeInfo.decimalDigits == null + ? null + : typeInfo.decimalDigits.longValue())); // 10. SCALE + values.add( + createLongFieldValue( + typeInfo.numPrecRadix == null ? null : typeInfo.numPrecRadix.longValue())); // 11. RADIX + values.add(createLongFieldValue((long) DatabaseMetaData.procedureNullable)); // 12. NULLABLE + values.add( + createNullFieldValue()); // 13. REMARKS (Can be argument.getDescription() if available and + // needed) + values.add(createNullFieldValue()); // 14. COLUMN_DEF (Default value - typically null) + values.add(createNullFieldValue()); // 15. SQL_DATA_TYPE (reserved) + values.add(createNullFieldValue()); // 16. SQL_DATETIME_SUB (reserved) + values.add(createNullFieldValue()); // 17. CHAR_OCTET_LENGTH (null for non-char/binary) + values.add(createLongFieldValue((long) ordinalPosition)); // 18. ORDINAL_POSITION + values.add(createStringFieldValue("YES")); // 19. IS_NULLABLE (Default to "YES") + values.add(createStringFieldValue(specificName)); // 20. SPECIFIC_NAME + + return values; + } + + ColumnTypeInfo determineTypeInfoFromDataType( + StandardSQLDataType argumentDataType, + String procedureName, + String columnName, + int ordinalPosition) { + + ColumnTypeInfo defaultVarcharTypeInfo = + new ColumnTypeInfo(Types.VARCHAR, "VARCHAR", null, null, null); + try { + String typeKind = argumentDataType.getTypeKind(); + if (typeKind != null && !typeKind.isEmpty()) { + if ("ARRAY".equalsIgnoreCase(typeKind)) { + return new ColumnTypeInfo(Types.ARRAY, "ARRAY", null, null, null); + } + StandardSQLTypeName determinedType = StandardSQLTypeName.valueOf(typeKind.toUpperCase()); + return getColumnTypeInfoForSqlType(determinedType); + } + } catch (Exception e) { + LOG.warning( + String.format( + "Proc: %s, Arg: %s (Pos %d) - Caught an unexpected Exception during type" + + " determination. Defaulting type to VARCHAR. Error: %s", + procedureName, columnName, ordinalPosition, e.getMessage())); + } + return defaultVarcharTypeInfo; + } + + Comparator defineGetProcedureColumnsComparator(FieldList resultSchemaFields) { + final int PROC_CAT_IDX = resultSchemaFields.getIndex("PROCEDURE_CAT"); + final int PROC_SCHEM_IDX = resultSchemaFields.getIndex("PROCEDURE_SCHEM"); + final int PROC_NAME_IDX = resultSchemaFields.getIndex("PROCEDURE_NAME"); + final int SPEC_NAME_IDX = resultSchemaFields.getIndex("SPECIFIC_NAME"); + final int COL_NAME_IDX = resultSchemaFields.getIndex("COLUMN_NAME"); + + if (PROC_CAT_IDX < 0 + || PROC_SCHEM_IDX < 0 + || PROC_NAME_IDX < 0 + || SPEC_NAME_IDX < 0 + || COL_NAME_IDX < 0) { + LOG.severe( + "Could not find required columns (PROCEDURE_CAT, SCHEM, NAME, SPECIFIC_NAME, COLUMN_NAME)" + + " in getProcedureColumns schema for sorting. Returning null comparator."); + return null; + } + + return Comparator.comparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, PROC_CAT_IDX), + Comparator.nullsFirst(String::compareToIgnoreCase)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, PROC_SCHEM_IDX), + Comparator.nullsFirst(String::compareToIgnoreCase)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, PROC_NAME_IDX), + Comparator.nullsFirst(String::compareToIgnoreCase)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, SPEC_NAME_IDX), + Comparator.nullsFirst(String::compareToIgnoreCase)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, COL_NAME_IDX), + Comparator.nullsFirst(String::compareToIgnoreCase)); + } + + @Override + public ResultSet getTables( + String catalog, String schemaPattern, String tableNamePattern, String[] types) { + + Tuple effectiveIdentifiers = + determineEffectiveCatalogAndSchema(catalog, schemaPattern); + String effectiveCatalog = effectiveIdentifiers.x(); + String effectiveSchemaPattern = effectiveIdentifiers.y(); + + if ((effectiveCatalog == null || effectiveCatalog.isEmpty()) + || (effectiveSchemaPattern != null && effectiveSchemaPattern.isEmpty()) + || (tableNamePattern != null && tableNamePattern.isEmpty())) { + LOG.warning( + "Returning empty ResultSet as one or more patterns are empty or catalog is null."); + return new BigQueryJsonResultSet(); + } + + LOG.info( + String.format( + "getTables called for catalog: %s, schemaPattern: %s, tableNamePattern: %s, types: %s", + effectiveCatalog, effectiveSchemaPattern, tableNamePattern, Arrays.toString(types))); + + final Pattern schemaRegex = compileSqlLikePattern(effectiveSchemaPattern); + final Pattern tableNameRegex = compileSqlLikePattern(tableNamePattern); + final Set requestedTypes = + (types == null || types.length == 0) ? null : new HashSet<>(Arrays.asList(types)); + + final Schema resultSchema = defineGetTablesSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + + final BlockingQueue queue = + new LinkedBlockingQueue<>(DEFAULT_QUEUE_CAPACITY); + final List collectedResults = Collections.synchronizedList(new ArrayList<>()); + final String catalogParam = effectiveCatalog; + final String schemaParam = effectiveSchemaPattern; + + Runnable tableFetcher = + () -> { + ExecutorService apiExecutor = null; + ExecutorService tableProcessorExecutor = null; + final FieldList localResultSchemaFields = resultSchemaFields; + final List>> apiFutures = new ArrayList<>(); + final List> processingFutures = new ArrayList<>(); + + try { + List datasetsToScan = + findMatchingBigQueryObjects( + "Dataset", + () -> + bigquery.listDatasets( + catalogParam, DatasetListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> bigquery.getDataset(DatasetId.of(catalogParam, name)), + (ds) -> ds.getDatasetId().getDataset(), + schemaParam, + schemaRegex, + LOG); + + if (datasetsToScan.isEmpty()) { + LOG.info("Fetcher thread found no matching datasets. Returning empty resultset."); + return; + } + + apiExecutor = Executors.newFixedThreadPool(API_EXECUTOR_POOL_SIZE); + tableProcessorExecutor = Executors.newFixedThreadPool(this.metadataFetchThreadCount); + + LOG.fine("Submitting parallel findMatchingTables tasks..."); + for (Dataset dataset : datasetsToScan) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning("Table fetcher interrupted during dataset iteration."); + break; + } + + final DatasetId currentDatasetId = dataset.getDatasetId(); + Callable> apiCallable = + () -> + findMatchingBigQueryObjects( + "Table", + () -> + bigquery.listTables( + currentDatasetId, TableListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> + bigquery.getTable( + TableId.of( + currentDatasetId.getProject(), + currentDatasetId.getDataset(), + name)), + (tbl) -> tbl.getTableId().getTable(), + tableNamePattern, + tableNameRegex, + LOG); + Future> apiFuture = apiExecutor.submit(apiCallable); + apiFutures.add(apiFuture); + } + LOG.fine("Finished submitting " + apiFutures.size() + " findMatchingTables tasks."); + apiExecutor.shutdown(); + + LOG.fine("Processing results from findMatchingTables tasks..."); + for (Future> apiFuture : apiFutures) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning("Table fetcher interrupted while processing API futures."); + break; + } + try { + List
    tablesResult = apiFuture.get(); + if (tablesResult != null) { + for (Table table : tablesResult) { + if (Thread.currentThread().isInterrupted()) break; + + final Table currentTable = table; + Future processFuture = + tableProcessorExecutor.submit( + () -> + processTableInfo( + currentTable, + requestedTypes, + collectedResults, + localResultSchemaFields)); + processingFutures.add(processFuture); + } + } + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + LOG.warning("Fetcher thread interrupted while waiting for API future result."); + break; + } catch (ExecutionException e) { + LOG.warning( + "Error executing findMatchingTables task: " + + e.getMessage() + + ". Cause: " + + e.getCause()); + } catch (CancellationException e) { + LOG.warning("A findMatchingTables task was cancelled."); + } + } + + LOG.fine( + "Finished submitting " + processingFutures.size() + " processTableInfo tasks."); + + if (Thread.currentThread().isInterrupted()) { + LOG.warning( + "Fetcher interrupted before waiting for processing tasks; cancelling remaining."); + processingFutures.forEach(f -> f.cancel(true)); + } else { + LOG.fine("Waiting for processTableInfo tasks to complete..."); + waitForTasksCompletion(processingFutures); + LOG.fine("All processTableInfo tasks completed."); + } + + if (!Thread.currentThread().isInterrupted()) { + Comparator comparator = + defineGetTablesComparator(localResultSchemaFields); + sortResults(collectedResults, comparator, "getTables", LOG); + } + + if (!Thread.currentThread().isInterrupted()) { + populateQueue(collectedResults, queue, localResultSchemaFields); + } + + } catch (Throwable t) { + LOG.severe("Unexpected error in table fetcher runnable: " + t.getMessage()); + apiFutures.forEach(f -> f.cancel(true)); + processingFutures.forEach(f -> f.cancel(true)); + } finally { + signalEndOfData(queue, localResultSchemaFields); + shutdownExecutor(apiExecutor); + shutdownExecutor(tableProcessorExecutor); + LOG.info("Table fetcher thread finished."); + } + }; + + Thread fetcherThread = new Thread(tableFetcher, "getTables-fetcher-" + effectiveCatalog); + BigQueryJsonResultSet resultSet = + BigQueryJsonResultSet.of( + resultSchema, -1, queue, this.statement, new Thread[] {fetcherThread}); + + fetcherThread.start(); + LOG.info("Started background thread for getTables"); + return resultSet; + } + + Schema defineGetTablesSchema() { + List fields = new ArrayList<>(10); + fields.add( + Field.newBuilder("TABLE_CAT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TABLE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TABLE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("TABLE_TYPE", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("REMARKS", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TYPE_CAT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TYPE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TYPE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("SELF_REFERENCING_COL_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("REF_GENERATION", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + return Schema.of(fields); + } + + void processTableInfo( + Table table, + Set requestedTypes, + List collectedResults, + FieldList resultSchemaFields) { + + TableId tableId = table.getTableId(); + LOG.fine("Processing table info for: " + tableId); + + try { + String catalogName = tableId.getProject(); + String schemaName = tableId.getDataset(); + String tableName = tableId.getTable(); + TableDefinition definition = table.getDefinition(); + String bqTableType = definition.getType().toString(); + String remarks = table.getDescription(); + + if (requestedTypes != null && !requestedTypes.contains(bqTableType)) { + LOG.finer( + String.format( + "Skipping table %s as its type '%s' is not in the requested types %s", + tableId, bqTableType, requestedTypes)); + return; + } + + List values = new ArrayList<>(resultSchemaFields.size()); + values.add(createStringFieldValue(catalogName)); // 1. TABLE_CAT + values.add(createStringFieldValue(schemaName)); // 2. TABLE_SCHEM + values.add(createStringFieldValue(tableName)); // 3. TABLE_NAME + values.add(createStringFieldValue(bqTableType)); // 4. TABLE_TYPE + values.add(createStringFieldValue(remarks)); // 5. REMARKS + values.add(createNullFieldValue()); // 6. TYPE_CAT (always null) + values.add(createNullFieldValue()); // 7. TYPE_SCHEM (always null) + values.add(createNullFieldValue()); // 8. TYPE_NAME (always null) + values.add(createNullFieldValue()); // 9. SELF_REFERENCING_COL_NAME (always null) + values.add(createNullFieldValue()); // 10. REF_GENERATION (always null) + + FieldValueList rowFvl = FieldValueList.of(values, resultSchemaFields); + collectedResults.add(rowFvl); + + LOG.fine("Processed and added table info row for: " + tableId); + } catch (Exception e) { + LOG.warning( + String.format( + "Error processing table info for %s: %s. Skipping this table.", + tableId, e.getMessage())); + } + } + + Comparator defineGetTablesComparator(FieldList resultSchemaFields) { + final int TABLE_TYPE_IDX = resultSchemaFields.getIndex("TABLE_TYPE"); + final int TABLE_CAT_IDX = resultSchemaFields.getIndex("TABLE_CAT"); + final int TABLE_SCHEM_IDX = resultSchemaFields.getIndex("TABLE_SCHEM"); + final int TABLE_NAME_IDX = resultSchemaFields.getIndex("TABLE_NAME"); + return Comparator.comparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, TABLE_TYPE_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, TABLE_CAT_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, TABLE_SCHEM_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, TABLE_NAME_IDX), + Comparator.nullsFirst(String::compareTo)); + } + + @Override + public ResultSet getSchemas() { + LOG.info("getSchemas() called"); + + return getSchemas(null, null); + } + + @Override + public ResultSet getCatalogs() { + LOG.info("getCatalogs() called"); + + final List accessibleCatalogs = getAccessibleCatalogNames(); + final Schema catalogsSchema = defineGetCatalogsSchema(); + final FieldList schemaFields = catalogsSchema.getFields(); + final List catalogRows = + prepareGetCatalogsRows(schemaFields, accessibleCatalogs); + + final BlockingQueue queue = + new LinkedBlockingQueue<>(catalogRows.isEmpty() ? 1 : catalogRows.size() + 1); + + populateQueue(catalogRows, queue, schemaFields); + signalEndOfData(queue, schemaFields); + + return BigQueryJsonResultSet.of( + catalogsSchema, catalogRows.size(), queue, this.statement, new Thread[0]); + } + + Schema defineGetCatalogsSchema() { + return Schema.of( + Field.newBuilder("TABLE_CAT", StandardSQLTypeName.STRING).setMode(Mode.REQUIRED).build()); + } + + List prepareGetCatalogsRows( + FieldList schemaFields, List accessibleCatalogs) { + List catalogRows = new ArrayList<>(); + for (String catalogName : accessibleCatalogs) { + FieldValue fieldValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, catalogName); + catalogRows.add(FieldValueList.of(Collections.singletonList(fieldValue), schemaFields)); + } + return catalogRows; + } + + @Override + public ResultSet getTableTypes() { + LOG.info("getTableTypes() called"); + + final Schema tableTypesSchema = defineGetTableTypesSchema(); + final List tableTypeRows = prepareGetTableTypesRows(tableTypesSchema); + + BlockingQueue queue = + new LinkedBlockingQueue<>(tableTypeRows.size() + 1); + + populateQueue(tableTypeRows, queue, tableTypesSchema.getFields()); + signalEndOfData(queue, tableTypesSchema.getFields()); + + return BigQueryJsonResultSet.of( + tableTypesSchema, tableTypeRows.size(), queue, this.statement, new Thread[0]); + } + + static Schema defineGetTableTypesSchema() { + return Schema.of( + Field.newBuilder("TABLE_TYPE", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + } + + static List prepareGetTableTypesRows(Schema schema) { + final String[] tableTypes = {"EXTERNAL", "MATERIALIZED VIEW", "SNAPSHOT", "TABLE", "VIEW"}; + List rows = new ArrayList<>(tableTypes.length); + FieldList schemaFields = schema.getFields(); + + for (String typeName : tableTypes) { + FieldValue fieldValue = FieldValue.of(FieldValue.Attribute.PRIMITIVE, typeName); + rows.add(FieldValueList.of(Collections.singletonList(fieldValue), schemaFields)); + } + return rows; + } + + @Override + public ResultSet getColumns( + String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) { + + Tuple effectiveIdentifiers = + determineEffectiveCatalogAndSchema(catalog, schemaPattern); + String effectiveCatalog = effectiveIdentifiers.x(); + String effectiveSchemaPattern = effectiveIdentifiers.y(); + + if ((effectiveCatalog == null || effectiveCatalog.isEmpty()) + || (effectiveSchemaPattern != null && effectiveSchemaPattern.isEmpty()) + || (tableNamePattern != null && tableNamePattern.isEmpty()) + || (columnNamePattern != null && columnNamePattern.isEmpty())) { + LOG.warning( + "Returning empty ResultSet as one or more patterns are empty or catalog is null."); + return new BigQueryJsonResultSet(); + } + + LOG.info( + String.format( + "getColumns called for catalog: %s, schemaPattern: %s, tableNamePattern: %s," + + " columnNamePattern: %s", + effectiveCatalog, effectiveSchemaPattern, tableNamePattern, columnNamePattern)); + + Pattern schemaRegex = compileSqlLikePattern(effectiveSchemaPattern); + Pattern tableNameRegex = compileSqlLikePattern(tableNamePattern); + Pattern columnNameRegex = compileSqlLikePattern(columnNamePattern); + + final Schema resultSchema = defineGetColumnsSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = + new LinkedBlockingQueue<>(DEFAULT_QUEUE_CAPACITY); + final List collectedResults = Collections.synchronizedList(new ArrayList<>()); + final String catalogParam = effectiveCatalog; + final String schemaParam = effectiveSchemaPattern; + + Runnable columnFetcher = + () -> { + ExecutorService columnExecutor = null; + final List> taskFutures = new ArrayList<>(); + final FieldList localResultSchemaFields = resultSchemaFields; + + try { + List datasetsToScan = + findMatchingBigQueryObjects( + "Dataset", + () -> + bigquery.listDatasets( + catalogParam, DatasetListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> bigquery.getDataset(DatasetId.of(catalogParam, name)), + (ds) -> ds.getDatasetId().getDataset(), + schemaParam, + schemaRegex, + LOG); + + if (datasetsToScan.isEmpty()) { + LOG.info("Fetcher thread found no matching datasets. Returning empty resultset."); + return; + } + + columnExecutor = Executors.newFixedThreadPool(this.metadataFetchThreadCount); + + for (Dataset dataset : datasetsToScan) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning("Fetcher interrupted during dataset iteration."); + break; + } + + DatasetId datasetId = dataset.getDatasetId(); + LOG.info("Processing dataset: " + datasetId.getDataset()); + + List
    tablesToScan = + findMatchingBigQueryObjects( + "Table", + () -> + bigquery.listTables( + datasetId, TableListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> + bigquery.getTable( + TableId.of(datasetId.getProject(), datasetId.getDataset(), name)), + (tbl) -> tbl.getTableId().getTable(), + tableNamePattern, + tableNameRegex, + LOG); + + for (Table table : tablesToScan) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning( + "Fetcher interrupted during table iteration for dataset " + + datasetId.getDataset()); + break; + } + + TableId tableId = table.getTableId(); + LOG.fine("Submitting task for table: " + tableId); + final Table finalTable = table; + Future future = + columnExecutor.submit( + () -> + processTableColumns( + finalTable, + columnNameRegex, + collectedResults, + localResultSchemaFields)); + taskFutures.add(future); + } + if (Thread.currentThread().isInterrupted()) break; + } + + waitForTasksCompletion(taskFutures); + + if (!Thread.currentThread().isInterrupted()) { + Comparator comparator = + defineGetColumnsComparator(localResultSchemaFields); + sortResults(collectedResults, comparator, "getColumns", LOG); + } + + if (!Thread.currentThread().isInterrupted()) { + populateQueue(collectedResults, queue, localResultSchemaFields); + } + + } catch (Throwable t) { + LOG.severe("Unexpected error in column fetcher runnable: " + t.getMessage()); + taskFutures.forEach(f -> f.cancel(true)); + } finally { + signalEndOfData(queue, localResultSchemaFields); + shutdownExecutor(columnExecutor); + LOG.info("Column fetcher thread finished."); + } + }; + + Thread fetcherThread = new Thread(columnFetcher, "getColumns-fetcher-" + effectiveCatalog); + BigQueryJsonResultSet resultSet = + BigQueryJsonResultSet.of(resultSchema, -1, queue, null, new Thread[] {fetcherThread}); + + fetcherThread.start(); + LOG.info("Started background thread for getColumns"); + return resultSet; + } + + private void processTableColumns( + Table table, + Pattern columnNameRegex, + List collectedResults, + FieldList resultSchemaFields) { + TableId tableId = table.getTableId(); + LOG.fine("Processing columns for table: " + tableId); + TableDefinition definition = table.getDefinition(); + Schema tableSchema = (definition != null) ? definition.getSchema() : null; + + try { + if (tableSchema == null) { + LOG.fine( + "Schema not included in table object for " + + tableId + + ", fetching full table details..."); + Table fullTable = bigquery.getTable(tableId); + if (fullTable != null) { + definition = fullTable.getDefinition(); + tableSchema = (definition != null) ? definition.getSchema() : null; + } else { + LOG.warning( + "Table " + tableId + " not found when fetching full details for columns. Skipping."); + return; + } + } + + if (tableSchema == null + || tableSchema.getFields() == null + || tableSchema.getFields().isEmpty()) { + LOG.warning( + String.format( + "Schema not found or fields are null for table %s (Type: %s). Skipping columns.", + tableId, definition.getType())); + return; + } + + FieldList fields = tableSchema.getFields(); + String catalogName = tableId.getProject(); + String schemaName = tableId.getDataset(); + String tableName = tableId.getTable(); + + for (int i = 0; i < fields.size(); i++) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning("Task for table " + tableId + " interrupted during column iteration."); + break; + } + Field field = fields.get(i); + String currentColumnName = field.getName(); + if (columnNameRegex != null && !columnNameRegex.matcher(currentColumnName).matches()) + continue; + List values = createColumnRow(catalogName, schemaName, tableName, field, i + 1); + FieldValueList rowFvl = FieldValueList.of(values, resultSchemaFields); + collectedResults.add(rowFvl); + } + LOG.fine("Finished processing columns for table: " + tableId); + } catch (BigQueryException e) { + LOG.warning( + String.format( + "BigQueryException processing table %s: %s (Code: %d)", + tableId, e.getMessage(), e.getCode())); + } catch (Exception e) { + LOG.severe( + String.format("Unexpected error processing table %s: %s", tableId, e.getMessage())); + } + } + + private Schema defineGetColumnsSchema() { + List fields = new ArrayList<>(24); + fields.add( + Field.newBuilder("TABLE_CAT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 1 + fields.add( + Field.newBuilder("TABLE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 2 + fields.add( + Field.newBuilder("TABLE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); // 3 + fields.add( + Field.newBuilder("COLUMN_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); // 4 + fields.add( + Field.newBuilder("DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); // 5 + fields.add( + Field.newBuilder("TYPE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); // 6 + fields.add( + Field.newBuilder("COLUMN_SIZE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); // 7 + fields.add( + Field.newBuilder("BUFFER_LENGTH", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); // 8 + fields.add( + Field.newBuilder("DECIMAL_DIGITS", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); // 9 + fields.add( + Field.newBuilder("NUM_PREC_RADIX", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); // 10 + fields.add( + Field.newBuilder("NULLABLE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); // 11 + fields.add( + Field.newBuilder("REMARKS", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 12 + fields.add( + Field.newBuilder("COLUMN_DEF", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 13 + fields.add( + Field.newBuilder("SQL_DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); // 14 + fields.add( + Field.newBuilder("SQL_DATETIME_SUB", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); // 15 + fields.add( + Field.newBuilder("CHAR_OCTET_LENGTH", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); // 16 + fields.add( + Field.newBuilder("ORDINAL_POSITION", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); // 17 + fields.add( + Field.newBuilder("IS_NULLABLE", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); // 18 + fields.add( + Field.newBuilder("SCOPE_CATALOG", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 19 + fields.add( + Field.newBuilder("SCOPE_SCHEMA", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 20 + fields.add( + Field.newBuilder("SCOPE_TABLE", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 21 + fields.add( + Field.newBuilder("SOURCE_DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); // 22 + fields.add( + Field.newBuilder("IS_AUTOINCREMENT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); // 23 + fields.add( + Field.newBuilder("IS_GENERATEDCOLUMN", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); // 24 + return Schema.of(fields); + } + + List createColumnRow( + String catalog, String schemaName, String tableName, Field field, int ordinalPosition) { + List values = new ArrayList<>(24); + Field.Mode mode = (field.getMode() == null) ? Field.Mode.NULLABLE : field.getMode(); + ColumnTypeInfo typeInfo = mapBigQueryTypeToJdbc(field); + + values.add(createStringFieldValue(catalog)); // 1. TABLE_CAT + values.add(createStringFieldValue(schemaName)); // 2. TABLE_SCHEM + values.add(createStringFieldValue(tableName)); // 3. TABLE_NAME + values.add(createStringFieldValue(field.getName())); // 4. COLUMN_NAME + values.add(createLongFieldValue((long) typeInfo.jdbcType)); // 5. DATA_TYPE + values.add(createStringFieldValue(typeInfo.typeName)); // 6. TYPE_NAME + values.add( + createLongFieldValue( + typeInfo.columnSize == null + ? null + : typeInfo.columnSize.longValue())); // 7. COLUMN_SIZE + values.add(createNullFieldValue()); // 8. BUFFER_LENGTH + values.add( + createLongFieldValue( + typeInfo.decimalDigits == null + ? null + : typeInfo.decimalDigits.longValue())); // 9. DECIMAL_DIGITS + values.add( + createLongFieldValue( + typeInfo.numPrecRadix == null + ? null + : typeInfo.numPrecRadix.longValue())); // 10. NUM_PREC_RADIX + int nullable = + (mode == Field.Mode.REQUIRED) + ? DatabaseMetaData.columnNoNulls + : DatabaseMetaData.columnNullable; + values.add(createLongFieldValue((long) nullable)); // 11. NULLABLE + values.add(createStringFieldValue(field.getDescription())); // 12. REMARKS + values.add(createNullFieldValue()); // 13. COLUMN_DEF + values.add(createNullFieldValue()); // 14. SQL_DATA_TYPE + values.add(createNullFieldValue()); // 15. SQL_DATETIME_SUB + values.add(createNullFieldValue()); // 16. CHAR_OCTET_LENGTH + values.add(createLongFieldValue((long) ordinalPosition)); // 17. ORDINAL_POSITION + String isNullable = ""; + switch (mode) { + case REQUIRED: + isNullable = "NO"; + break; + case NULLABLE: + case REPEATED: + isNullable = "YES"; + break; + } + values.add(createStringFieldValue(isNullable)); // 18. IS_NULLABLE + values.add(createNullFieldValue()); // 19. SCOPE_CATALOG + values.add(createNullFieldValue()); // 20. SCOPE_SCHEMA + values.add(createNullFieldValue()); // 21. SCOPE_TABLE + values.add(createNullFieldValue()); // 22. SOURCE_DATA_TYPE + values.add(createStringFieldValue("NO")); // 23. IS_AUTOINCREMENT + values.add(createStringFieldValue("NO")); // 24. IS_GENERATEDCOLUMN + + return values; + } + + static class ColumnTypeInfo { + final int jdbcType; + final String typeName; + final Integer columnSize; + final Integer decimalDigits; + final Integer numPrecRadix; + + ColumnTypeInfo( + int jdbcType, + String typeName, + Integer columnSize, + Integer decimalDigits, + Integer numPrecRadix) { + this.jdbcType = jdbcType; + this.typeName = typeName; + this.columnSize = columnSize; + this.decimalDigits = decimalDigits; + this.numPrecRadix = numPrecRadix; + } + } + + ColumnTypeInfo mapBigQueryTypeToJdbc(Field field) { + Mode mode = (field.getMode() == null) ? Mode.NULLABLE : field.getMode(); + if (mode == Mode.REPEATED) { + return new ColumnTypeInfo(Types.ARRAY, "ARRAY", null, null, null); + } + + StandardSQLTypeName bqType = null; + if (field.getType() != null && field.getType().getStandardType() != null) { + bqType = field.getType().getStandardType(); + } + return getColumnTypeInfoForSqlType(bqType); + } + + private Comparator defineGetColumnsComparator(FieldList resultSchemaFields) { + final int TABLE_CAT_IDX = resultSchemaFields.getIndex("TABLE_CAT"); + final int TABLE_SCHEM_IDX = resultSchemaFields.getIndex("TABLE_SCHEM"); + final int TABLE_NAME_IDX = resultSchemaFields.getIndex("TABLE_NAME"); + final int ORDINAL_POS_IDX = resultSchemaFields.getIndex("ORDINAL_POSITION"); + return Comparator.comparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, TABLE_CAT_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, TABLE_SCHEM_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, TABLE_NAME_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getLongValueOrNull(fvl, ORDINAL_POS_IDX), + Comparator.nullsFirst(Long::compareTo)); + } + + @Override + public ResultSet getColumnPrivileges( + String catalog, String schema, String table, String columnNamePattern) { + LOG.info( + String.format( + "getColumnPrivileges called for catalog: %s, schema: %s, table: %s, columnNamePattern:" + + " %s. BigQuery IAM model differs from SQL privileges; returning empty ResultSet.", + catalog, schema, table, columnNamePattern)); + + final Schema resultSchema = defineGetColumnPrivilegesSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = new LinkedBlockingQueue<>(1); + signalEndOfData(queue, resultSchemaFields); + + return BigQueryJsonResultSet.of(resultSchema, 0, queue, this.statement, null); + } + + Schema defineGetColumnPrivilegesSchema() { + List fields = defineBasePrivilegeFields(); + + Field columnNameField = + Field.newBuilder("COLUMN_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build(); + fields.add(3, columnNameField); + + return Schema.of(fields); + } + + @Override + public ResultSet getTablePrivileges( + String catalog, String schemaPattern, String tableNamePattern) { + LOG.info( + String.format( + "getTablePrivileges called for catalog: %s, schemaPattern: %s, tableNamePattern: %s. " + + "BigQuery IAM model differs from SQL privileges; returning empty ResultSet.", + catalog, schemaPattern, tableNamePattern)); + + final Schema resultSchema = defineGetTablePrivilegesSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = new LinkedBlockingQueue<>(1); + signalEndOfData(queue, resultSchemaFields); + + return BigQueryJsonResultSet.of(resultSchema, 0, queue, this.statement, null); + } + + Schema defineGetTablePrivilegesSchema() { + List fields = defineBasePrivilegeFields(); + return Schema.of(fields); + } + + @Override + public ResultSet getBestRowIdentifier( + String catalog, String schema, String table, int scope, boolean nullable) { + LOG.info( + String.format( + "getBestRowIdentifier called for catalog: %s, schema: %s, table: %s, scope: %d," + + " nullable: %s. BigQuery does not support best row identifiers; returning empty" + + " ResultSet.", + catalog, schema, table, scope, nullable)); + + final Schema resultSchema = defineGetBestRowIdentifierSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = new LinkedBlockingQueue<>(1); + signalEndOfData(queue, resultSchemaFields); + + return BigQueryJsonResultSet.of(resultSchema, 0, queue, this.statement, null); + } + + Schema defineGetBestRowIdentifierSchema() { + List fields = new ArrayList<>(8); + fields.add( + Field.newBuilder("SCOPE", StandardSQLTypeName.INT64).setMode(Field.Mode.REQUIRED).build()); + fields.add( + Field.newBuilder("COLUMN_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("TYPE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("COLUMN_SIZE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("BUFFER_LENGTH", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("DECIMAL_DIGITS", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("PSEUDO_COLUMN", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + return Schema.of(fields); + } + + @Override + public ResultSet getVersionColumns(String catalog, String schema, String table) { + LOG.info( + String.format( + "getVersionColumns called for catalog: %s, schema: %s, table: %s. " + + "Automatic version columns not supported by BigQuery; returning empty ResultSet.", + catalog, schema, table)); + + final Schema resultSchema = defineGetVersionColumnsSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = new LinkedBlockingQueue<>(1); + signalEndOfData(queue, resultSchemaFields); + + return BigQueryJsonResultSet.of(resultSchema, 0, queue, this.statement, null); + } + + Schema defineGetVersionColumnsSchema() { + List fields = new ArrayList<>(8); + fields.add( + Field.newBuilder("SCOPE", StandardSQLTypeName.INT64).setMode(Field.Mode.NULLABLE).build()); + fields.add( + Field.newBuilder("COLUMN_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("TYPE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("COLUMN_SIZE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("BUFFER_LENGTH", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("DECIMAL_DIGITS", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("PSEUDO_COLUMN", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + return Schema.of(fields); + } + + @Override + public ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException { + String sql = readSqlFromFile(GET_PRIMARY_KEYS_SQL); + try { + String formattedSql = replaceSqlParameters(sql, catalog, schema, table); + return this.statement.executeQuery(formattedSql); + } catch (SQLException e) { + throw new BigQueryJdbcException(e); + } + } + + @Override + public ResultSet getImportedKeys(String catalog, String schema, String table) + throws SQLException { + String sql = readSqlFromFile(GET_IMPORTED_KEYS_SQL); + try { + String formattedSql = replaceSqlParameters(sql, catalog, schema, table); + return this.statement.executeQuery(formattedSql); + } catch (SQLException e) { + throw new BigQueryJdbcException(e); + } + } + + @Override + public ResultSet getExportedKeys(String catalog, String schema, String table) + throws SQLException { + String sql = readSqlFromFile(GET_EXPORTED_KEYS_SQL); + try { + String formattedSql = replaceSqlParameters(sql, catalog, schema, table); + return this.statement.executeQuery(formattedSql); + } catch (SQLException e) { + throw new BigQueryJdbcException(e); + } + } + + @Override + public ResultSet getCrossReference( + String parentCatalog, + String parentSchema, + String parentTable, + String foreignCatalog, + String foreignSchema, + String foreignTable) + throws SQLException { + String sql = readSqlFromFile(GET_CROSS_REFERENCE_SQL); + try { + String formattedSql = + replaceSqlParameters( + sql, + parentCatalog, + parentSchema, + parentTable, + foreignCatalog, + foreignSchema, + foreignTable); + return this.statement.executeQuery(formattedSql); + } catch (SQLException e) { + throw new BigQueryJdbcException(e); + } + } + + @Override + public ResultSet getTypeInfo() { + LOG.info("getTypeInfo() called"); + + final Schema typeInfoSchema = defineGetTypeInfoSchema(); + final FieldList schemaFields = typeInfoSchema.getFields(); + final List typeInfoRows = prepareGetTypeInfoRows(schemaFields); + + final Comparator comparator = defineGetTypeInfoComparator(schemaFields); + sortResults(typeInfoRows, comparator, "getTypeInfo", LOG); + final BlockingQueue queue = + new LinkedBlockingQueue<>(typeInfoRows.size() + 1); + + populateQueue(typeInfoRows, queue, schemaFields); + signalEndOfData(queue, schemaFields); + return BigQueryJsonResultSet.of( + typeInfoSchema, typeInfoRows.size(), queue, this.statement, new Thread[0]); + } + + Schema defineGetTypeInfoSchema() { + List fields = new ArrayList<>(18); + fields.add( + Field.newBuilder("TYPE_NAME", StandardSQLTypeName.STRING) + .setMode(Mode.REQUIRED) + .build()); // 1 + fields.add( + Field.newBuilder("DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Mode.REQUIRED) + .build()); // 2 + fields.add( + Field.newBuilder("PRECISION", StandardSQLTypeName.INT64) + .setMode(Mode.NULLABLE) + .build()); // 3 + fields.add( + Field.newBuilder("LITERAL_PREFIX", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build()); // 4 + fields.add( + Field.newBuilder("LITERAL_SUFFIX", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build()); // 5 + fields.add( + Field.newBuilder("CREATE_PARAMS", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build()); // 6 + fields.add( + Field.newBuilder("NULLABLE", StandardSQLTypeName.INT64) + .setMode(Mode.REQUIRED) + .build()); // 7 + fields.add( + Field.newBuilder("CASE_SENSITIVE", StandardSQLTypeName.BOOL) + .setMode(Mode.REQUIRED) + .build()); // 8 + fields.add( + Field.newBuilder("SEARCHABLE", StandardSQLTypeName.INT64) + .setMode(Mode.REQUIRED) + .build()); // 9 + fields.add( + Field.newBuilder("UNSIGNED_ATTRIBUTE", StandardSQLTypeName.BOOL) + .setMode(Mode.NULLABLE) + .build()); // 10 + fields.add( + Field.newBuilder("FIXED_PREC_SCALE", StandardSQLTypeName.BOOL) + .setMode(Mode.REQUIRED) + .build()); // 11 + fields.add( + Field.newBuilder("AUTO_INCREMENT", StandardSQLTypeName.BOOL) + .setMode(Mode.REQUIRED) + .build()); // 12 + fields.add( + Field.newBuilder("LOCAL_TYPE_NAME", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build()); // 13 + fields.add( + Field.newBuilder("MINIMUM_SCALE", StandardSQLTypeName.INT64) + .setMode(Mode.NULLABLE) + .build()); // 14 + fields.add( + Field.newBuilder("MAXIMUM_SCALE", StandardSQLTypeName.INT64) + .setMode(Mode.NULLABLE) + .build()); // 15 + fields.add( + Field.newBuilder("SQL_DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Mode.NULLABLE) + .build()); // 16 + fields.add( + Field.newBuilder("SQL_DATETIME_SUB", StandardSQLTypeName.INT64) + .setMode(Mode.NULLABLE) + .build()); // 17 + fields.add( + Field.newBuilder("NUM_PREC_RADIX", StandardSQLTypeName.INT64) + .setMode(Mode.NULLABLE) + .build()); // 18 + return Schema.of(fields); + } + + List prepareGetTypeInfoRows(FieldList schemaFields) { + List rows = new ArrayList<>(); + + Function createRow = + (data) -> { + List values = new ArrayList<>(18); + values.add(createStringFieldValue(data.typeName)); // 1. TYPE_NAME + values.add(createLongFieldValue((long) data.jdbcType)); // 2. DATA_TYPE + values.add(createLongFieldValue(data.precision)); // 3. PRECISION + values.add(createStringFieldValue(data.literalPrefix)); // 4. LITERAL_PREFIX + values.add(createStringFieldValue(data.literalSuffix)); // 5. LITERAL_SUFFIX + values.add(createStringFieldValue(data.createParams)); // 6. CREATE_PARAMS + values.add(createLongFieldValue((long) data.nullable)); // 7. NULLABLE + values.add(createBooleanFieldValue(data.caseSensitive)); // 8. CASE_SENSITIVE + values.add(createLongFieldValue((long) data.searchable)); // 9. SEARCHABLE + values.add(createBooleanFieldValue(data.unsignedAttribute)); // 10. UNSIGNED_ATTRIBUTE + values.add(createBooleanFieldValue(data.fixedPrecScale)); // 11. FIXED_PREC_SCALE + values.add(createBooleanFieldValue(data.autoIncrement)); // 12. AUTO_INCREMENT + values.add(createStringFieldValue(data.localTypeName)); // 13. LOCAL_TYPE_NAME + values.add(createLongFieldValue(data.minimumScale)); // 14. MINIMUM_SCALE + values.add(createLongFieldValue(data.maximumScale)); // 15. MAXIMUM_SCALE + values.add(createNullFieldValue()); // 16. SQL_DATA_TYPE + values.add(createNullFieldValue()); // 17. SQL_DATETIME_SUB + values.add(createLongFieldValue(data.numPrecRadix)); // 18. NUM_PREC_RADIX + return FieldValueList.of(values, schemaFields); + }; + + rows.add( + createRow.apply( + new TypeInfoRowData( + "INT64", + Types.BIGINT, + 19L, + null, + null, + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + false, + false, + "INT64", + 0L, + 0L, + 10L))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "BOOL", + Types.BOOLEAN, + 1L, + null, + null, + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typePredBasic, + false, + false, + false, + "BOOL", + 0L, + 0L, + null))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "FLOAT64", + Types.DOUBLE, + 15L, + null, + null, + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + false, + false, + "FLOAT64", + null, + null, + 2L))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "NUMERIC", + Types.NUMERIC, + 38L, + null, + null, + "PRECISION,SCALE", + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + true, + false, + "NUMERIC", + 9L, + 9L, + 10L))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "BIGNUMERIC", + Types.NUMERIC, + 77L, + null, + null, + "PRECISION,SCALE", + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + true, + false, + "BIGNUMERIC", + 38L, + 38L, + 10L))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "STRING", + Types.NVARCHAR, + null, + "'", + "'", + "LENGTH", + DatabaseMetaData.typeNullable, + true, + DatabaseMetaData.typeSearchable, + false, + false, + false, + "STRING", + null, + null, + null))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "TIMESTAMP", + Types.TIMESTAMP, + 29L, + "'", + "'", + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + false, + false, + "TIMESTAMP", + null, + null, + null))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "DATE", + Types.DATE, + 10L, + "'", + "'", + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + false, + false, + "DATE", + null, + null, + null))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "TIME", + Types.TIME, + 15L, + "'", + "'", + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + false, + false, + "TIME", + null, + null, + null))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "DATETIME", + Types.TIMESTAMP, + 29L, + "'", + "'", + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + false, + false, + "DATETIME", + null, + null, + null))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "GEOGRAPHY", + Types.OTHER, + null, + "'", + "'", + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + false, + false, + "GEOGRAPHY", + null, + null, + null))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "JSON", + Types.OTHER, + null, + "'", + "'", + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + false, + false, + "JSON", + null, + null, + null))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "INTERVAL", + Types.OTHER, + null, + "'", + "'", + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + false, + false, + "INTERVAL", + null, + null, + null))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "BYTES", + Types.VARBINARY, + null, + "0x", + null, + "LENGTH", + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + false, + false, + "BYTES", + null, + null, + null))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "STRUCT", + Types.STRUCT, + null, + null, + null, + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typePredNone, + false, + false, + false, + "STRUCT", + null, + null, + null))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "ARRAY", + Types.ARRAY, + null, + null, + null, + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typePredNone, + false, + false, + false, + "ARRAY", + null, + null, + null))); + rows.add( + createRow.apply( + new TypeInfoRowData( + "RANGE", + Types.OTHER, + null, + null, + null, + null, + DatabaseMetaData.typeNullable, + false, + DatabaseMetaData.typeSearchable, + false, + false, + false, + "RANGE", + null, + null, + null))); + + return rows; + } + + Comparator defineGetTypeInfoComparator(FieldList schemaFields) { + final int DATA_TYPE_IDX = schemaFields.getIndex("DATA_TYPE"); + if (DATA_TYPE_IDX < 0) { + LOG.severe( + "Could not find DATA_TYPE column in getTypeInfo schema for sorting. Returning null" + + " comparator."); + return null; + } + Comparator comparator = + Comparator.comparing( + (FieldValueList fvl) -> getLongValueOrNull(fvl, DATA_TYPE_IDX), + Comparator.nullsFirst(Long::compareTo)); + return comparator; + } + + @Override + public ResultSet getIndexInfo( + String catalog, String schema, String table, boolean unique, boolean approximate) { + LOG.info( + String.format( + "getIndexInfo called for catalog: %s, schema: %s, table: %s, unique: %s, approximate:" + + " %s. Traditional indexes not supported by BigQuery; returning empty ResultSet.", + catalog, schema, table, unique, approximate)); + + final Schema resultSchema = defineGetIndexInfoSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = new LinkedBlockingQueue<>(1); + signalEndOfData(queue, resultSchemaFields); + + return BigQueryJsonResultSet.of(resultSchema, 0, queue, this.statement, null); + } + + Schema defineGetIndexInfoSchema() { + List fields = new ArrayList<>(13); + fields.add( + Field.newBuilder("TABLE_CAT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TABLE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TABLE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("NON_UNIQUE", StandardSQLTypeName.BOOL) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("INDEX_QUALIFIER", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("INDEX_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TYPE", StandardSQLTypeName.INT64).setMode(Field.Mode.REQUIRED).build()); + fields.add( + Field.newBuilder("ORDINAL_POSITION", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("COLUMN_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("ASC_OR_DESC", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("CARDINALITY", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("PAGES", StandardSQLTypeName.INT64).setMode(Field.Mode.NULLABLE).build()); + fields.add( + Field.newBuilder("FILTER_CONDITION", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + return Schema.of(fields); + } + + @Override + public boolean supportsResultSetType(int type) { + // BigQuery primarily supports forward-only result sets. + return type == ResultSet.TYPE_FORWARD_ONLY; + } + + @Override + public boolean supportsResultSetConcurrency(int type, int concurrency) { + // BigQuery primarily supports forward-only, read-only result sets. + return type == ResultSet.TYPE_FORWARD_ONLY && concurrency == ResultSet.CONCUR_READ_ONLY; + } + + @Override + public boolean ownUpdatesAreVisible(int type) { + return false; + } + + @Override + public boolean ownDeletesAreVisible(int type) { + return false; + } + + @Override + public boolean ownInsertsAreVisible(int type) { + return false; + } + + @Override + public boolean othersUpdatesAreVisible(int type) { + return false; + } + + @Override + public boolean othersDeletesAreVisible(int type) { + return false; + } + + @Override + public boolean othersInsertsAreVisible(int type) { + return false; + } + + @Override + public boolean updatesAreDetected(int type) { + return false; + } + + @Override + public boolean deletesAreDetected(int type) { + return false; + } + + @Override + public boolean insertsAreDetected(int type) { + return false; + } + + @Override + public boolean supportsBatchUpdates() { + return false; + } + + @Override + public ResultSet getUDTs( + String catalog, String schemaPattern, String typeNamePattern, int[] types) { + LOG.info( + String.format( + "getUDTs called for catalog: %s, schemaPattern: %s, typeNamePattern: %s, types: %s. " + + "Feature not supported by BigQuery; returning empty ResultSet.", + catalog, + schemaPattern, + typeNamePattern, + (types == null ? "null" : Arrays.toString(types)))); + + final Schema resultSchema = defineGetUDTsSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = new LinkedBlockingQueue<>(1); + signalEndOfData(queue, resultSchemaFields); + + return BigQueryJsonResultSet.of(resultSchema, 0, queue, this.statement, null); + } + + Schema defineGetUDTsSchema() { + List fields = new ArrayList<>(7); + fields.add( + Field.newBuilder("TYPE_CAT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TYPE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TYPE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("CLASS_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("REMARKS", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("BASE_TYPE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + return Schema.of(fields); + } + + @Override + public Connection getConnection() { + return connection; + } + + @Override + public boolean supportsSavepoints() { + return false; + } + + @Override + public boolean supportsNamedParameters() { + return false; + } + + @Override + public boolean supportsMultipleOpenResults() { + return false; + } + + @Override + public boolean supportsGetGeneratedKeys() { + return false; + } + + @Override + public ResultSet getSuperTables(String catalog, String schemaPattern, String tableNamePattern) { + LOG.info( + String.format( + "getSuperTables called for catalog: %s, schemaPattern: %s, tableNamePattern: %s. " + + "BigQuery does not support super tables; returning empty ResultSet.", + catalog, schemaPattern, tableNamePattern)); + + final Schema resultSchema = defineGetSuperTablesSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = new LinkedBlockingQueue<>(1); + + signalEndOfData(queue, resultSchemaFields); + + return BigQueryJsonResultSet.of(resultSchema, 0, queue, this.statement, null); + } + + Schema defineGetSuperTablesSchema() { + List fields = new ArrayList<>(4); + fields.add( + Field.newBuilder("TABLE_CAT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 1. TABLE_CAT + fields.add( + Field.newBuilder("TABLE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 2. TABLE_SCHEM + fields.add( + Field.newBuilder("TABLE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); // 3. TABLE_NAME + fields.add( + Field.newBuilder("SUPERTABLE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); // 4. SUPERTABLE_NAME + return Schema.of(fields); + } + + @Override + public ResultSet getSuperTypes(String catalog, String schemaPattern, String typeNamePattern) { + LOG.info( + String.format( + "getSuperTypes called for catalog: %s, schemaPattern: %s, typeNamePattern: %s. BigQuery" + + " does not support user-defined type hierarchies; returning empty ResultSet.", + catalog, schemaPattern, typeNamePattern)); + + final Schema resultSchema = defineGetSuperTypesSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = new LinkedBlockingQueue<>(1); + + signalEndOfData(queue, resultSchemaFields); + + return BigQueryJsonResultSet.of(resultSchema, 0, queue, this.statement, null); + } + + Schema defineGetSuperTypesSchema() { + List fields = new ArrayList<>(6); + fields.add( + Field.newBuilder("TYPE_CAT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 1. TYPE_CAT + fields.add( + Field.newBuilder("TYPE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 2. TYPE_SCHEM + fields.add( + Field.newBuilder("TYPE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); // 3. TYPE_NAME + fields.add( + Field.newBuilder("SUPERTYPE_CAT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 4. SUPERTYPE_CAT + fields.add( + Field.newBuilder("SUPERTYPE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 5. SUPERTYPE_SCHEM + fields.add( + Field.newBuilder("SUPERTYPE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); // 6. SUPERTYPE_NAME + return Schema.of(fields); + } + + @Override + public ResultSet getAttributes( + String catalog, String schemaPattern, String typeNamePattern, String attributeNamePattern) { + LOG.info( + String.format( + "getAttributes called for catalog: %s, schemaPattern: %s, typeNamePattern: %s," + + " attributeNamePattern: %s. Feature not supported by BigQuery; returning empty" + + " ResultSet.", + catalog, schemaPattern, typeNamePattern, attributeNamePattern)); + + final Schema resultSchema = defineGetAttributesSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = new LinkedBlockingQueue<>(1); + signalEndOfData(queue, resultSchemaFields); + + return BigQueryJsonResultSet.of(resultSchema, 0, queue, this.statement, null); + } + + Schema defineGetAttributesSchema() { + List fields = new ArrayList<>(21); + fields.add( + Field.newBuilder("TYPE_CAT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TYPE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TYPE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("ATTR_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("ATTR_TYPE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("ATTR_SIZE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("DECIMAL_DIGITS", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("NUM_PREC_RADIX", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("NULLABLE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("REMARKS", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("ATTR_DEF", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("SQL_DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("SQL_DATETIME_SUB", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("CHAR_OCTET_LENGTH", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("ORDINAL_POSITION", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("IS_NULLABLE", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("SCOPE_CATALOG", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("SCOPE_SCHEMA", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("SCOPE_TABLE", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("SOURCE_DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + return Schema.of(fields); + } + + @Override + public boolean supportsResultSetHoldability(int holdability) { + if (holdability == ResultSet.CLOSE_CURSORS_AT_COMMIT) { + return true; + } + return false; + } + + @Override + public int getResultSetHoldability() { + return ResultSet.CLOSE_CURSORS_AT_COMMIT; + } + + @Override + // Obtained from java libraries pom + // https://github.com/googleapis/java-bigquery/blob/main/pom.xml + public int getDatabaseMajorVersion() { + return 2; + } + + @Override + public int getDatabaseMinorVersion() { + return 0; + } + + @Override + public int getJDBCMajorVersion() { + return 4; + } + + @Override + public int getJDBCMinorVersion() { + return 2; + } + + @Override + public int getSQLStateType() { + return DatabaseMetaData.sqlStateSQL; + } + + @Override + public boolean locatorsUpdateCopy() { + return false; + } + + @Override + public boolean supportsStatementPooling() { + return false; + } + + @Override + public RowIdLifetime getRowIdLifetime() { + return null; + } + + @Override + public ResultSet getSchemas(String catalog, String schemaPattern) { + if ((catalog != null && catalog.isEmpty()) + || (schemaPattern != null && schemaPattern.isEmpty())) { + LOG.warning("Returning empty ResultSet as catalog or schemaPattern is an empty string."); + return new BigQueryJsonResultSet(); + } + + LOG.info( + String.format( + "getSchemas called for catalog: %s, schemaPattern: %s", catalog, schemaPattern)); + + final Pattern schemaRegex = compileSqlLikePattern(schemaPattern); + final Schema resultSchema = defineGetSchemasSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + + final BlockingQueue queue = + new LinkedBlockingQueue<>(DEFAULT_QUEUE_CAPACITY); + final List collectedResults = Collections.synchronizedList(new ArrayList<>()); + final String catalogParam = catalog; + + Runnable schemaFetcher = + () -> { + final FieldList localResultSchemaFields = resultSchemaFields; + List projectsToScanList = new ArrayList<>(); + + if (catalogParam != null) { + projectsToScanList.add(catalogParam); + } else { + projectsToScanList.addAll(getAccessibleCatalogNames()); + } + + if (projectsToScanList.isEmpty()) { + LOG.info( + "No valid projects to scan (primary, specified, or additional). Returning empty" + + " resultset."); + return; + } + + try { + for (String currentProjectToScan : projectsToScanList) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning( + "Schema fetcher interrupted during project iteration for project: " + + currentProjectToScan); + break; + } + LOG.info("Fetching schemas for project: " + currentProjectToScan); + List datasetsInProject = + findMatchingBigQueryObjects( + "Dataset", + () -> + bigquery.listDatasets( + currentProjectToScan, + BigQuery.DatasetListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> bigquery.getDataset(DatasetId.of(currentProjectToScan, name)), + (ds) -> ds.getDatasetId().getDataset(), + schemaPattern, + schemaRegex, + LOG); + + if (datasetsInProject.isEmpty() || Thread.currentThread().isInterrupted()) { + LOG.info( + "Fetcher thread found no matching datasets in project: " + + currentProjectToScan); + continue; + } + + LOG.fine("Processing found datasets for project: " + currentProjectToScan); + for (Dataset dataset : datasetsInProject) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning( + "Schema fetcher interrupted during dataset iteration for project: " + + currentProjectToScan); + break; + } + processSchemaInfo(dataset, collectedResults, localResultSchemaFields); + } + } + + if (!Thread.currentThread().isInterrupted()) { + Comparator comparator = + defineGetSchemasComparator(localResultSchemaFields); + sortResults(collectedResults, comparator, "getSchemas", LOG); + } + + if (!Thread.currentThread().isInterrupted()) { + populateQueue(collectedResults, queue, localResultSchemaFields); + } + + } catch (Throwable t) { + LOG.severe("Unexpected error in schema fetcher runnable: " + t.getMessage()); + } finally { + signalEndOfData(queue, localResultSchemaFields); + LOG.info("Schema fetcher thread finished."); + } + }; + + Thread fetcherThread = new Thread(schemaFetcher, "getSchemas-fetcher-" + catalog); + BigQueryJsonResultSet resultSet = + BigQueryJsonResultSet.of( + resultSchema, -1, queue, this.statement, new Thread[] {fetcherThread}); + + fetcherThread.start(); + LOG.info("Started background thread for getSchemas"); + return resultSet; + } + + Schema defineGetSchemasSchema() { + List fields = new ArrayList<>(2); + fields.add( + Field.newBuilder("TABLE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("TABLE_CATALOG", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + return Schema.of(fields); + } + + void processSchemaInfo( + Dataset dataset, List collectedResults, FieldList resultSchemaFields) { + DatasetId datasetId = dataset.getDatasetId(); + LOG.finer("Processing schema info for dataset: " + datasetId); + try { + String schemaName = datasetId.getDataset(); + String catalogName = datasetId.getProject(); + List values = new ArrayList<>(resultSchemaFields.size()); + values.add(createStringFieldValue(schemaName)); + values.add(createStringFieldValue(catalogName)); + FieldValueList rowFvl = FieldValueList.of(values, resultSchemaFields); + collectedResults.add(rowFvl); + LOG.finer("Processed and added schema info row for: " + datasetId); + } catch (Exception e) { + LOG.warning( + String.format( + "Error processing schema info for dataset %s: %s. Skipping this schema.", + datasetId, e.getMessage())); + } + } + + Comparator defineGetSchemasComparator(FieldList resultSchemaFields) { + final int TABLE_CATALOG_IDX = resultSchemaFields.getIndex("TABLE_CATALOG"); + final int TABLE_SCHEM_IDX = resultSchemaFields.getIndex("TABLE_SCHEM"); + return Comparator.comparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, TABLE_CATALOG_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, TABLE_SCHEM_IDX), + Comparator.nullsFirst(String::compareTo)); + } + + @Override + public boolean supportsStoredFunctionsUsingCallSyntax() { + return false; + } + + @Override + public boolean autoCommitFailureClosesAllResultSets() { + return false; + } + + @Override + public ResultSet getClientInfoProperties() { + LOG.info("getClientInfoProperties() called."); + + final Schema resultSchema = defineGetClientInfoPropertiesSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = new LinkedBlockingQueue<>(4); + final List collectedResults = new ArrayList<>(3); + + try { + collectedResults.add( + FieldValueList.of( + Arrays.asList( + createStringFieldValue("ApplicationName"), + createLongFieldValue(25L), + createNullFieldValue(), + createStringFieldValue( + "The name of the application currently utilizing the connection.")), + resultSchemaFields)); + + collectedResults.add( + FieldValueList.of( + Arrays.asList( + createStringFieldValue("ClientHostname"), + createLongFieldValue(25L), + createNullFieldValue(), + createStringFieldValue( + "The hostname of the computer the application using the connection is running" + + " on.")), + resultSchemaFields)); + + collectedResults.add( + FieldValueList.of( + Arrays.asList( + createStringFieldValue("ClientUser"), + createLongFieldValue(25L), + createNullFieldValue(), + createStringFieldValue( + "The name of the user that the application using the connection is performing" + + " work for.")), + resultSchemaFields)); + + Comparator comparator = + Comparator.comparing( + (FieldValueList fvl) -> + getStringValueOrNull(fvl, resultSchemaFields.getIndex("NAME")), + Comparator.nullsFirst(String::compareToIgnoreCase)); + sortResults(collectedResults, comparator, "getClientInfoProperties", LOG); + populateQueue(collectedResults, queue, resultSchemaFields); + + } catch (Exception e) { + LOG.warning("Unexpected error processing client info properties: " + e.getMessage()); + collectedResults.clear(); + queue.clear(); + } finally { + signalEndOfData(queue, resultSchemaFields); + } + return BigQueryJsonResultSet.of( + resultSchema, collectedResults.size(), queue, this.statement, new Thread[0]); + } + + Schema defineGetClientInfoPropertiesSchema() { + List fields = new ArrayList<>(4); + fields.add( + Field.newBuilder("NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); // 1 + fields.add( + Field.newBuilder("MAX_LEN", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); // 2 + fields.add( + Field.newBuilder("DEFAULT_VALUE", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 3 + fields.add( + Field.newBuilder("DESCRIPTION", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); // 4 + return Schema.of(fields); + } + + @Override + public ResultSet getFunctions(String catalog, String schemaPattern, String functionNamePattern) { + if ((catalog == null || catalog.isEmpty()) + || (schemaPattern != null && schemaPattern.isEmpty()) + || (functionNamePattern != null && functionNamePattern.isEmpty())) { + LOG.warning( + "Returning empty ResultSet as catalog is null/empty or a pattern is empty for" + + " getFunctions."); + return new BigQueryJsonResultSet(); + } + + LOG.info( + String.format( + "getFunctions called for catalog: %s, schemaPattern: %s, functionNamePattern: %s", + catalog, schemaPattern, functionNamePattern)); + + final Pattern schemaRegex = compileSqlLikePattern(schemaPattern); + final Pattern functionNameRegex = compileSqlLikePattern(functionNamePattern); + final Schema resultSchema = defineGetFunctionsSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = + new LinkedBlockingQueue<>(DEFAULT_QUEUE_CAPACITY); + final List collectedResults = Collections.synchronizedList(new ArrayList<>()); + final List> processingTaskFutures = new ArrayList<>(); + final String catalogParam = catalog; + + Runnable functionFetcher = + () -> { + ExecutorService apiExecutor = null; + ExecutorService routineProcessorExecutor = null; + final FieldList localResultSchemaFields = resultSchemaFields; + final List>> apiFutures = new ArrayList<>(); + + try { + List datasetsToScan = + findMatchingBigQueryObjects( + "Dataset", + () -> + bigquery.listDatasets( + catalogParam, DatasetListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> bigquery.getDataset(DatasetId.of(catalogParam, name)), + (ds) -> ds.getDatasetId().getDataset(), + schemaPattern, + schemaRegex, + LOG); + + if (datasetsToScan.isEmpty()) { + LOG.info("Fetcher thread found no matching datasets. Returning empty resultset."); + return; + } + + apiExecutor = Executors.newFixedThreadPool(API_EXECUTOR_POOL_SIZE); + routineProcessorExecutor = Executors.newFixedThreadPool(this.metadataFetchThreadCount); + + for (Dataset dataset : datasetsToScan) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning("Function fetcher interrupted during dataset iteration submission."); + break; + } + + final DatasetId currentDatasetId = dataset.getDatasetId(); + + Callable> apiCallable = + () -> { + LOG.fine( + String.format( + "Fetching all routines for dataset: %s, pattern: %s", + currentDatasetId.getDataset(), functionNamePattern)); + return findMatchingBigQueryObjects( + "Routine", + () -> + bigquery.listRoutines( + currentDatasetId, RoutineListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> + bigquery.getRoutine( + RoutineId.of( + currentDatasetId.getProject(), + currentDatasetId.getDataset(), + name)), + (rt) -> rt.getRoutineId().getRoutine(), + functionNamePattern, + functionNameRegex, + LOG); + }; + Future> apiFuture = apiExecutor.submit(apiCallable); + apiFutures.add(apiFuture); + } + LOG.fine( + "Finished submitting " + + apiFutures.size() + + " findMatchingRoutines (for functions) tasks."); + apiExecutor.shutdown(); + + for (Future> apiFuture : apiFutures) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning("Function fetcher interrupted while processing API futures."); + break; + } + try { + List routinesResult = apiFuture.get(); + if (routinesResult != null) { + for (Routine routine : routinesResult) { + if (Thread.currentThread().isInterrupted()) { + break; + } + String routineType = routine.getRoutineType(); + if ("SCALAR_FUNCTION".equalsIgnoreCase(routineType) + || "TABLE_FUNCTION".equalsIgnoreCase(routineType)) { + LOG.fine( + "Submitting processing task for function: " + + routine.getRoutineId() + + " of type " + + routineType); + final Routine finalRoutine = routine; + Future processFuture = + routineProcessorExecutor.submit( + () -> + processFunctionInfo( + finalRoutine, collectedResults, localResultSchemaFields)); + processingTaskFutures.add(processFuture); + } + } + } + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + LOG.warning( + "Function fetcher thread interrupted while waiting for API future result."); + break; + } catch (ExecutionException | CancellationException e) { + LOG.warning( + "Error or cancellation in findMatchingRoutines (for functions) task: " + + e.getMessage()); + } + } + waitForTasksCompletion(processingTaskFutures); + Comparator comparator = + defineGetFunctionsComparator(localResultSchemaFields); + sortResults(collectedResults, comparator, "getFunctions", LOG); + populateQueue(collectedResults, queue, localResultSchemaFields); + } catch (Throwable t) { + LOG.severe("Unexpected error in function fetcher runnable: " + t.getMessage()); + apiFutures.forEach(f -> f.cancel(true)); + processingTaskFutures.forEach(f -> f.cancel(true)); + } finally { + signalEndOfData(queue, localResultSchemaFields); + shutdownExecutor(apiExecutor); + shutdownExecutor(routineProcessorExecutor); + LOG.info("Function fetcher thread finished."); + } + }; + + Thread fetcherThread = new Thread(functionFetcher, "getFunctions-fetcher-" + catalog); + BigQueryJsonResultSet resultSet = + BigQueryJsonResultSet.of( + resultSchema, -1, queue, this.statement, new Thread[] {fetcherThread}); + + fetcherThread.start(); + LOG.info("Started background thread for getFunctions"); + return resultSet; + } + + Schema defineGetFunctionsSchema() { + List fields = new ArrayList<>(6); + fields.add( + Field.newBuilder("FUNCTION_CAT", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("FUNCTION_SCHEM", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("FUNCTION_NAME", StandardSQLTypeName.STRING) + .setMode(Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("REMARKS", StandardSQLTypeName.STRING).setMode(Mode.NULLABLE).build()); + fields.add( + Field.newBuilder("FUNCTION_TYPE", StandardSQLTypeName.INT64) + .setMode(Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("SPECIFIC_NAME", StandardSQLTypeName.STRING) + .setMode(Mode.REQUIRED) + .build()); + return Schema.of(fields); + } + + void processFunctionInfo( + Routine routine, List collectedResults, FieldList resultSchemaFields) { + RoutineId routineId = routine.getRoutineId(); + LOG.fine("Processing function info for: " + routineId); + + try { + String catalogName = routineId.getProject(); + String schemaName = routineId.getDataset(); + String functionName = routineId.getRoutine(); + String remarks = routine.getDescription(); + String specificName = functionName; + + short functionType; + String bqRoutineType = routine.getRoutineType(); + if ("SCALAR_FUNCTION".equalsIgnoreCase(bqRoutineType)) { + functionType = DatabaseMetaData.functionResultUnknown; + } else if ("TABLE_FUNCTION".equalsIgnoreCase(bqRoutineType)) { + functionType = DatabaseMetaData.functionReturnsTable; + } else { + functionType = DatabaseMetaData.functionResultUnknown; + } + + List values = new ArrayList<>(resultSchemaFields.size()); + values.add(createStringFieldValue(catalogName)); // 1. FUNCTION_CAT + values.add(createStringFieldValue(schemaName)); // 2. FUNCTION_SCHEM + values.add(createStringFieldValue(functionName)); // 3. FUNCTION_NAME + values.add(createStringFieldValue(remarks)); // 4. REMARKS + values.add(createLongFieldValue((long) functionType)); // 5. FUNCTION_TYPE + values.add(createStringFieldValue(specificName)); // 6. SPECIFIC_NAME + + FieldValueList rowFvl = FieldValueList.of(values, resultSchemaFields); + collectedResults.add(rowFvl); + LOG.fine("Processed and added function info row for: " + routineId); + + } catch (Exception e) { + LOG.warning( + String.format( + "Error processing function info for %s: %s. Skipping this function.", + routineId, e.getMessage())); + } + } + + Comparator defineGetFunctionsComparator(FieldList resultSchemaFields) { + final int FUNC_CAT_IDX = resultSchemaFields.getIndex("FUNCTION_CAT"); + final int FUNC_SCHEM_IDX = resultSchemaFields.getIndex("FUNCTION_SCHEM"); + final int FUNC_NAME_IDX = resultSchemaFields.getIndex("FUNCTION_NAME"); + final int SPEC_NAME_IDX = resultSchemaFields.getIndex("SPECIFIC_NAME"); + + return Comparator.comparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, FUNC_CAT_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, FUNC_SCHEM_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, FUNC_NAME_IDX), + Comparator.nullsFirst(String::compareTo)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, SPEC_NAME_IDX), + Comparator.nullsFirst(String::compareTo)); + } + + @Override + public ResultSet getFunctionColumns( + String catalog, String schemaPattern, String functionNamePattern, String columnNamePattern) { + if (catalog == null || catalog.isEmpty()) { + LOG.warning("Returning empty ResultSet catalog (project) is null or empty."); + return new BigQueryJsonResultSet(); + } + if ((schemaPattern != null && schemaPattern.isEmpty()) + || (functionNamePattern != null && functionNamePattern.isEmpty()) + || (columnNamePattern != null && columnNamePattern.isEmpty())) { + LOG.warning("Returning empty ResultSet because an explicit empty pattern was provided."); + return new BigQueryJsonResultSet(); + } + + LOG.info( + String.format( + "getFunctionColumns called for catalog: %s, schemaPattern: %s, functionNamePattern: %s," + + " columnNamePattern: %s", + catalog, schemaPattern, functionNamePattern, columnNamePattern)); + + final Pattern schemaRegex = compileSqlLikePattern(schemaPattern); + final Pattern functionNameRegex = compileSqlLikePattern(functionNamePattern); + final Pattern columnNameRegex = compileSqlLikePattern(columnNamePattern); + + final Schema resultSchema = defineGetFunctionColumnsSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = + new LinkedBlockingQueue<>(DEFAULT_QUEUE_CAPACITY); + final List collectedResults = Collections.synchronizedList(new ArrayList<>()); + final List> processingTaskFutures = new ArrayList<>(); + final String catalogParam = catalog; + + Runnable functionColumnFetcher = + () -> { + ExecutorService listRoutinesExecutor = null; + ExecutorService getRoutineDetailsExecutor = null; + ExecutorService processParamsExecutor = null; + final String fetcherThreadNameSuffix = + "-" + catalogParam.substring(0, Math.min(10, catalogParam.length())); + + try { + List datasetsToScan = + findMatchingBigQueryObjects( + "Dataset", + () -> + bigquery.listDatasets( + catalogParam, DatasetListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> bigquery.getDataset(DatasetId.of(catalogParam, name)), + (ds) -> ds.getDatasetId().getDataset(), + schemaPattern, + schemaRegex, + LOG); + + if (datasetsToScan.isEmpty() || Thread.currentThread().isInterrupted()) { + LOG.info( + "Fetcher: No matching datasets or interrupted early. Catalog: " + catalogParam); + return; + } + + listRoutinesExecutor = + Executors.newFixedThreadPool( + API_EXECUTOR_POOL_SIZE, + runnable -> new Thread(runnable, "funcol-list-rout" + fetcherThreadNameSuffix)); + List functionIdsToGet = + listMatchingFunctionIdsFromDatasets( + datasetsToScan, + functionNamePattern, + functionNameRegex, + listRoutinesExecutor, + catalogParam, + LOG); + shutdownExecutor(listRoutinesExecutor); + listRoutinesExecutor = null; + + if (functionIdsToGet.isEmpty() || Thread.currentThread().isInterrupted()) { + LOG.info("Fetcher: No function IDs found or interrupted. Catalog: " + catalogParam); + return; + } + + getRoutineDetailsExecutor = + Executors.newFixedThreadPool( + this.metadataFetchThreadCount, + runnable -> + new Thread(runnable, "funcol-get-details" + fetcherThreadNameSuffix)); + List fullFunctions = + fetchFullRoutineDetailsForIds(functionIdsToGet, getRoutineDetailsExecutor, LOG); + shutdownExecutor(getRoutineDetailsExecutor); + getRoutineDetailsExecutor = null; + + if (fullFunctions.isEmpty() || Thread.currentThread().isInterrupted()) { + LOG.info( + "Fetcher: No full functions fetched or interrupted. Catalog: " + catalogParam); + return; + } + + processParamsExecutor = + Executors.newFixedThreadPool( + this.metadataFetchThreadCount, + runnable -> + new Thread(runnable, "funcol-proc-params" + fetcherThreadNameSuffix)); + submitFunctionParameterProcessingJobs( + fullFunctions, + columnNameRegex, + collectedResults, + resultSchemaFields, + processParamsExecutor, + processingTaskFutures, + LOG); + + if (Thread.currentThread().isInterrupted()) { + LOG.warning( + "Fetcher: Interrupted before waiting for parameter processing. Catalog: " + + catalogParam); + processingTaskFutures.forEach(f -> f.cancel(true)); + } else { + LOG.fine( + "Fetcher: Waiting for " + + processingTaskFutures.size() + + " parameter processing tasks. Catalog: " + + catalogParam); + waitForTasksCompletion(processingTaskFutures); + LOG.fine( + "Fetcher: All parameter processing tasks completed or handled. Catalog: " + + catalogParam); + } + + if (!Thread.currentThread().isInterrupted()) { + Comparator comparator = + defineGetFunctionColumnsComparator(resultSchemaFields); + sortResults(collectedResults, comparator, "getFunctionColumns", LOG); + populateQueue(collectedResults, queue, resultSchemaFields); + } + + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + LOG.warning( + "Fetcher: Interrupted in main try block for catalog " + + catalogParam + + ". Error: " + + e.getMessage()); + processingTaskFutures.forEach(f -> f.cancel(true)); + } catch (Throwable t) { + LOG.severe( + "Fetcher: Unexpected error in main try block for catalog " + + catalogParam + + ". Error: " + + t.getMessage()); + processingTaskFutures.forEach(f -> f.cancel(true)); + } finally { + signalEndOfData(queue, resultSchemaFields); + if (listRoutinesExecutor != null) shutdownExecutor(listRoutinesExecutor); + if (getRoutineDetailsExecutor != null) shutdownExecutor(getRoutineDetailsExecutor); + if (processParamsExecutor != null) shutdownExecutor(processParamsExecutor); + LOG.info("Function column fetcher thread finished for catalog: " + catalogParam); + } + }; + + Thread fetcherThread = + new Thread(functionColumnFetcher, "getFunctionColumns-fetcher-" + catalog); + BigQueryJsonResultSet resultSet = + BigQueryJsonResultSet.of( + resultSchema, -1, queue, this.statement, new Thread[] {fetcherThread}); + + fetcherThread.start(); + LOG.info("Started background thread for getFunctionColumns for catalog: " + catalog); + return resultSet; + } + + Schema defineGetFunctionColumnsSchema() { + List fields = new ArrayList<>(17); + fields.add( + Field.newBuilder("FUNCTION_CAT", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build()); // 1 + fields.add( + Field.newBuilder("FUNCTION_SCHEM", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build()); // 2 + fields.add( + Field.newBuilder("FUNCTION_NAME", StandardSQLTypeName.STRING) + .setMode(Mode.REQUIRED) + .build()); // 3 + fields.add( + Field.newBuilder("COLUMN_NAME", StandardSQLTypeName.STRING) + .setMode(Mode.REQUIRED) + .build()); // 4 + fields.add( + Field.newBuilder("COLUMN_TYPE", StandardSQLTypeName.INT64) + .setMode(Mode.REQUIRED) + .build()); // 5 + fields.add( + Field.newBuilder("DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Mode.REQUIRED) + .build()); // 6 + fields.add( + Field.newBuilder("TYPE_NAME", StandardSQLTypeName.STRING) + .setMode(Mode.REQUIRED) + .build()); // 7 + fields.add( + Field.newBuilder("PRECISION", StandardSQLTypeName.INT64) + .setMode(Mode.NULLABLE) + .build()); // 8 + fields.add( + Field.newBuilder("LENGTH", StandardSQLTypeName.INT64).setMode(Mode.NULLABLE).build()); // 9 + fields.add( + Field.newBuilder("SCALE", StandardSQLTypeName.INT64).setMode(Mode.NULLABLE).build()); // 10 + fields.add( + Field.newBuilder("RADIX", StandardSQLTypeName.INT64).setMode(Mode.NULLABLE).build()); // 11 + fields.add( + Field.newBuilder("NULLABLE", StandardSQLTypeName.INT64) + .setMode(Mode.REQUIRED) + .build()); // 12 + fields.add( + Field.newBuilder("REMARKS", StandardSQLTypeName.STRING) + .setMode(Mode.NULLABLE) + .build()); // 13 + fields.add( + Field.newBuilder("CHAR_OCTET_LENGTH", StandardSQLTypeName.INT64) + .setMode(Mode.NULLABLE) + .build()); // 14 + fields.add( + Field.newBuilder("ORDINAL_POSITION", StandardSQLTypeName.INT64) + .setMode(Mode.REQUIRED) + .build()); // 15 + fields.add( + Field.newBuilder("IS_NULLABLE", StandardSQLTypeName.STRING) + .setMode(Mode.REQUIRED) + .build()); // 16 + fields.add( + Field.newBuilder("SPECIFIC_NAME", StandardSQLTypeName.STRING) + .setMode(Mode.REQUIRED) + .build()); // 17 + return Schema.of(fields); + } + + List listMatchingFunctionIdsFromDatasets( + List datasetsToScan, + String functionNamePattern, + Pattern functionNameRegex, + ExecutorService listRoutinesExecutor, + String catalogParam, + BigQueryJdbcCustomLogger logger) + throws InterruptedException { + + logger.fine( + String.format( + "Listing matching function IDs from %d datasets for catalog '%s'.", + datasetsToScan.size(), catalogParam)); + final List>> listRoutineFutures = new ArrayList<>(); + final List functionIdsToGet = Collections.synchronizedList(new ArrayList<>()); + + for (Dataset dataset : datasetsToScan) { + if (Thread.currentThread().isInterrupted()) { + logger.warning( + "Interrupted during submission of routine (function) listing tasks for catalog: " + + catalogParam); + throw new InterruptedException("Interrupted while listing functions"); + } + final DatasetId currentDatasetId = dataset.getDatasetId(); + Callable> listCallable = + () -> + findMatchingBigQueryObjects( + "Routine", + () -> + bigquery.listRoutines( + currentDatasetId, RoutineListOption.pageSize(DEFAULT_PAGE_SIZE)), + (name) -> + bigquery.getRoutine( + RoutineId.of( + currentDatasetId.getProject(), currentDatasetId.getDataset(), name)), + (rt) -> rt.getRoutineId().getRoutine(), + functionNamePattern, + functionNameRegex, + logger); + listRoutineFutures.add(listRoutinesExecutor.submit(listCallable)); + } + logger.fine( + "Submitted " + + listRoutineFutures.size() + + " routine (function) list tasks for catalog: " + + catalogParam); + + for (Future> listFuture : listRoutineFutures) { + if (Thread.currentThread().isInterrupted()) { + logger.warning( + "Interrupted while collecting routine (function) list results for catalog: " + + catalogParam); + listRoutineFutures.forEach(f -> f.cancel(true)); + throw new InterruptedException("Interrupted while collecting function lists"); + } + try { + List listedRoutines = listFuture.get(); + if (listedRoutines != null) { + for (Routine listedRoutine : listedRoutines) { + if (listedRoutine != null + && ("SCALAR_FUNCTION".equalsIgnoreCase(listedRoutine.getRoutineType()) + || "TABLE_FUNCTION".equalsIgnoreCase(listedRoutine.getRoutineType()))) { + if (listedRoutine.getRoutineId() != null) { + functionIdsToGet.add(listedRoutine.getRoutineId()); + } else { + logger.warning( + "Found a function type routine with a null ID during listing phase for catalog:" + + " " + + catalogParam); + } + } + } + } + } catch (ExecutionException e) { + logger.warning( + "Error getting routine (function) list result for catalog " + + catalogParam + + ": " + + e.getCause()); + } catch (CancellationException e) { + logger.warning("Routine (function) list task cancelled for catalog: " + catalogParam); + } + } + logger.info( + String.format( + "Found %d function IDs to fetch details for in catalog '%s'.", + functionIdsToGet.size(), catalogParam)); + return functionIdsToGet; + } + + void submitFunctionParameterProcessingJobs( + List fullFunctions, + Pattern columnNameRegex, + List collectedResults, + FieldList resultSchemaFields, + ExecutorService processParamsExecutor, + List> outParameterProcessingFutures, + BigQueryJdbcCustomLogger logger) + throws InterruptedException { + logger.fine( + String.format( + "Submitting parameter processing jobs for %d functions.", fullFunctions.size())); + + for (Routine fullFunction : fullFunctions) { + if (Thread.currentThread().isInterrupted()) { + logger.warning("Interrupted during submission of function parameter processing tasks."); + throw new InterruptedException( + "Interrupted while submitting function parameter processing jobs"); + } + if (fullFunction != null) { + String routineType = fullFunction.getRoutineType(); + if ("SCALAR_FUNCTION".equalsIgnoreCase(routineType) + || "TABLE_FUNCTION".equalsIgnoreCase(routineType)) { + final Routine finalFullFunction = fullFunction; + Future processFuture = + processParamsExecutor.submit( + () -> + processFunctionParametersAndReturnValue( + finalFullFunction, + columnNameRegex, + collectedResults, + resultSchemaFields)); + outParameterProcessingFutures.add(processFuture); + } else { + logger.warning( + "Routine " + + (fullFunction.getRoutineId() != null + ? fullFunction.getRoutineId().toString() + : "UNKNOWN_ID") + + " fetched for getFunctionColumns was not of a function type (Type: " + + routineType + + "). Skipping parameter processing."); + } + } + } + logger.fine( + "Finished submitting " + + outParameterProcessingFutures.size() + + " processFunctionParametersAndReturnValue tasks."); + } + + void processFunctionParametersAndReturnValue( + Routine routine, + Pattern columnNameRegex, + List collectedResults, + FieldList resultSchemaFields) { + RoutineId routineId = routine.getRoutineId(); + if (routineId == null) { + LOG.warning("Processing a routine with a null ID. Skipping."); + return; + } + LOG.finer("Processing function parameters and return value for: " + routineId); + + String functionCatalog = routineId.getProject(); + String functionSchema = routineId.getDataset(); + String functionName = routineId.getRoutine(); + String specificName = functionName; + + if (routine.getReturnTableType() != null) { + StandardSQLTableType returnTableType = routine.getReturnTableType(); + if (returnTableType != null && returnTableType.getColumns() != null) { + List tableColumns = returnTableType.getColumns(); + for (int i = 0; i < tableColumns.size(); i++) { + StandardSQLField tableColumn = tableColumns.get(i); + String columnName = tableColumn.getName(); + if (columnNameRegex != null + && (columnName == null || !columnNameRegex.matcher(columnName).matches())) { + continue; + } + List rowValues = + createFunctionColumnRow( + functionCatalog, + functionSchema, + functionName, + specificName, + columnName, + DatabaseMetaData.functionColumnResult, + tableColumn.getDataType(), + i + 1); + collectedResults.add(FieldValueList.of(rowValues, resultSchemaFields)); + } + } + } + + List arguments = routine.getArguments(); + if (arguments != null) { + for (int i = 0; i < arguments.size(); i++) { + RoutineArgument arg = arguments.get(i); + String argName = arg.getName(); + + if (columnNameRegex != null + && (argName == null || !columnNameRegex.matcher(argName).matches())) { + continue; + } + + short columnType; + String originalMode = arg.getMode(); + + if ("IN".equalsIgnoreCase(originalMode)) { + columnType = DatabaseMetaData.functionColumnIn; + } else if ("OUT".equalsIgnoreCase(originalMode)) { + columnType = DatabaseMetaData.functionColumnOut; + } else if ("INOUT".equalsIgnoreCase(originalMode)) { + columnType = DatabaseMetaData.functionColumnInOut; + } else { + columnType = DatabaseMetaData.functionColumnUnknown; + } + + List rowValues = + createFunctionColumnRow( + functionCatalog, + functionSchema, + functionName, + specificName, + argName, + columnType, + arg.getDataType(), + i + 1); + collectedResults.add(FieldValueList.of(rowValues, resultSchemaFields)); + } + } + } + + List createFunctionColumnRow( + String functionCatalog, + String functionSchema, + String functionName, + String specificName, + String columnName, + int columnType, + StandardSQLDataType dataType, + int ordinalPosition) { + + List values = new ArrayList<>(17); + ColumnTypeInfo typeInfo = + determineTypeInfoFromDataType(dataType, functionName, columnName, ordinalPosition); + + values.add(createStringFieldValue(functionCatalog)); // 1. FUNCTION_CAT + values.add(createStringFieldValue(functionSchema)); // 2. FUNCTION_SCHEM + values.add(createStringFieldValue(functionName)); // 3. FUNCTION_NAME + values.add(createStringFieldValue(columnName)); // 4. COLUMN_NAME + values.add(createLongFieldValue((long) columnType)); // 5. COLUMN_TYPE + + values.add(createLongFieldValue((long) typeInfo.jdbcType)); // 6. DATA_TYPE + values.add(createStringFieldValue(typeInfo.typeName)); // 7. TYPE_NAME + values.add( + createLongFieldValue( + typeInfo.columnSize == null ? null : typeInfo.columnSize.longValue())); // 8. PRECISION + if (typeInfo.typeName != null + && (typeInfo.typeName.equalsIgnoreCase("STRING") + || typeInfo.typeName.equalsIgnoreCase("NVARCHAR") + || typeInfo.typeName.equalsIgnoreCase("BYTES") + || typeInfo.typeName.equalsIgnoreCase("VARBINARY"))) { + values.add( + createLongFieldValue( + typeInfo.columnSize == null ? null : typeInfo.columnSize.longValue())); // 9. LENGTH + values.add( + createLongFieldValue( + typeInfo.decimalDigits == null + ? null + : typeInfo.decimalDigits.longValue())); // 10. SCALE + values.add( + createLongFieldValue( + typeInfo.numPrecRadix == null + ? null + : typeInfo.numPrecRadix.longValue())); // 11. RADIX + values.add( + createLongFieldValue((long) DatabaseMetaData.functionNullableUnknown)); // 12. NULLABLE + values.add(createStringFieldValue(null)); // 13. REMARKS + values.add( + createLongFieldValue( + typeInfo.columnSize == null + ? null + : typeInfo.columnSize.longValue())); // 14. CHAR_OCTET_LENGTH + } else { + values.add(createNullFieldValue()); // 9. LENGTH + values.add( + createLongFieldValue( + typeInfo.decimalDigits == null + ? null + : typeInfo.decimalDigits.longValue())); // 10. SCALE + values.add( + createLongFieldValue( + typeInfo.numPrecRadix == null + ? null + : typeInfo.numPrecRadix.longValue())); // 11. RADIX + values.add( + createLongFieldValue((long) DatabaseMetaData.functionNullableUnknown)); // 12. NULLABLE + values.add(createStringFieldValue(null)); // 13. REMARKS + values.add(createNullFieldValue()); // 14. CHAR_OCTET_LENGTH + } + + values.add(createLongFieldValue((long) ordinalPosition)); // 15. ORDINAL_POSITION + values.add(createStringFieldValue("")); // 16. IS_NULLABLE + values.add(createStringFieldValue(specificName)); // 17. SPECIFIC_NAME + + return values; + } + + Comparator defineGetFunctionColumnsComparator(FieldList resultSchemaFields) { + final int FUNC_CAT_IDX = resultSchemaFields.getIndex("FUNCTION_CAT"); + final int FUNC_SCHEM_IDX = resultSchemaFields.getIndex("FUNCTION_SCHEM"); + final int FUNC_NAME_IDX = resultSchemaFields.getIndex("FUNCTION_NAME"); + final int SPEC_NAME_IDX = resultSchemaFields.getIndex("SPECIFIC_NAME"); + final int ORDINAL_POS_IDX = resultSchemaFields.getIndex("ORDINAL_POSITION"); + + return Comparator.comparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, FUNC_CAT_IDX), + Comparator.nullsFirst(String::compareToIgnoreCase)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, FUNC_SCHEM_IDX), + Comparator.nullsFirst(String::compareToIgnoreCase)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, FUNC_NAME_IDX), + Comparator.nullsFirst(String::compareToIgnoreCase)) + .thenComparing( + (FieldValueList fvl) -> getStringValueOrNull(fvl, SPEC_NAME_IDX), + Comparator.nullsFirst(String::compareToIgnoreCase)) + .thenComparing( + (FieldValueList fvl) -> getLongValueOrNull(fvl, ORDINAL_POS_IDX), + Comparator.nullsFirst(Long::compareTo)); + } + + @Override + public ResultSet getPseudoColumns( + String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) { + LOG.info( + String.format( + "getPseudoColumns called for catalog: %s, schemaPattern: %s, tableNamePattern: %s," + + " columnNamePattern: %s. Pseudo columns not supported by BigQuery; returning" + + " empty ResultSet.", + catalog, schemaPattern, tableNamePattern, columnNamePattern)); + + final Schema resultSchema = defineGetPseudoColumnsSchema(); + final FieldList resultSchemaFields = resultSchema.getFields(); + final BlockingQueue queue = new LinkedBlockingQueue<>(1); + signalEndOfData(queue, resultSchemaFields); + + return BigQueryJsonResultSet.of(resultSchema, 0, queue, this.statement, null); + } + + Schema defineGetPseudoColumnsSchema() { + List fields = new ArrayList<>(12); + fields.add( + Field.newBuilder("TABLE_CAT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TABLE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TABLE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("COLUMN_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("DATA_TYPE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("COLUMN_SIZE", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("DECIMAL_DIGITS", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("NUM_PREC_RADIX", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("COLUMN_USAGE", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("REMARKS", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("CHAR_OCTET_LENGTH", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("IS_NULLABLE", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + return Schema.of(fields); + } + + @Override + public boolean generatedKeyAlwaysReturned() { + return false; + } + + @Override + public T unwrap(Class iface) { + return null; + } + + @Override + public boolean isWrapperFor(Class iface) { + return false; + } + + // --- Helper Methods --- + + /** + * Determines the effective catalog and schema pattern to use for metadata retrieval. + * + *

    This method applies the logic for the {@code FilterTablesOnDefaultDataset} connection + * property. If this property is enabled and the provided {@code catalog} or {@code schemaPattern} + * are null, empty, or wildcard ('%'), they may be overridden by the default catalog (project) and + * default dataset (schema) configured in the {@link BigQueryConnection}. + * + * @param catalog The catalog name provided by the user; may be {@code null}. + * @param schemaPattern The schema name pattern provided by the user; may be {@code null}. + * @return A {@link Tuple} where {@code Tuple.x()} is the effective catalog string and {@code + * Tuple.y()} is the effective schema pattern string. These are the values that should be used + * for querying BigQuery's metadata. + * @see BigQueryConnection#isFilterTablesOnDefaultDataset() + */ + private Tuple determineEffectiveCatalogAndSchema( + String catalog, String schemaPattern) { + String effectiveCatalog = catalog; + String effectiveSchemaPattern = schemaPattern; + + if (this.connection.isFilterTablesOnDefaultDataset() + && this.connection.getDefaultDataset() != null + && this.connection.getDefaultDataset().getDataset() != null + && !this.connection.getDefaultDataset().getDataset().isEmpty()) { + + String defaultProjectFromConnection = this.connection.getCatalog(); + // We only use the dataset part of the DefaultDataset for schema filtering + String defaultSchemaFromConnection = this.connection.getDefaultDataset().getDataset(); + + boolean catalogIsNullOrEmptyOrWildcard = + (catalog == null || catalog.isEmpty() || catalog.equals("%")); + boolean schemaPatternIsNullOrEmptyOrWildcard = + (schemaPattern == null || schemaPattern.isEmpty() || schemaPattern.equals("%")); + + final String logPrefix = "FilterTablesOnDefaultDatasetTrue: "; + if (catalogIsNullOrEmptyOrWildcard && schemaPatternIsNullOrEmptyOrWildcard) { + effectiveCatalog = defaultProjectFromConnection; + effectiveSchemaPattern = defaultSchemaFromConnection; + LOG.info( + String.format( + logPrefix + "Using default catalog '%s' and default dataset '%s'.", + effectiveCatalog, + effectiveSchemaPattern)); + } else if (catalogIsNullOrEmptyOrWildcard) { + effectiveCatalog = defaultProjectFromConnection; + LOG.info( + String.format( + logPrefix + + "Using default catalog '%s' with user dataset '%s'. Default dataset '%s' ignored.", + effectiveCatalog, + effectiveSchemaPattern, + defaultSchemaFromConnection)); + } else if (schemaPatternIsNullOrEmptyOrWildcard) { + effectiveSchemaPattern = defaultSchemaFromConnection; + LOG.info( + String.format( + logPrefix + "Using user catalog '%s' and default dataset '%s'.", + effectiveCatalog, + effectiveSchemaPattern)); + } else { + LOG.info( + String.format( + logPrefix + + "Using user catalog '%s' and schema '%s'. Default dataset '%s' ignored.", + effectiveCatalog, + effectiveSchemaPattern, + defaultSchemaFromConnection)); + } + } + return Tuple.of(effectiveCatalog, effectiveSchemaPattern); + } + + private ColumnTypeInfo getColumnTypeInfoForSqlType(StandardSQLTypeName bqType) { + if (bqType == null) { + LOG.warning("Null BigQuery type encountered: " + bqType.name() + ". Mapping to VARCHAR."); + return new ColumnTypeInfo(Types.VARCHAR, bqType.name(), null, null, null); + } + + switch (bqType) { + case INT64: + return new ColumnTypeInfo(Types.BIGINT, "BIGINT", 19, 0, 10); + case BOOL: + return new ColumnTypeInfo(Types.BOOLEAN, "BOOLEAN", 1, null, null); + case FLOAT64: + return new ColumnTypeInfo(Types.DOUBLE, "DOUBLE", 15, null, 10); + case NUMERIC: + return new ColumnTypeInfo(Types.NUMERIC, "NUMERIC", 38, 9, 10); + case BIGNUMERIC: + return new ColumnTypeInfo(Types.NUMERIC, "NUMERIC", 77, 38, 10); + case STRING: + return new ColumnTypeInfo(Types.NVARCHAR, "NVARCHAR", null, null, null); + case TIMESTAMP: + case DATETIME: + return new ColumnTypeInfo(Types.TIMESTAMP, "TIMESTAMP", 29, null, null); + case DATE: + return new ColumnTypeInfo(Types.DATE, "DATE", 10, null, null); + case TIME: + return new ColumnTypeInfo(Types.TIME, "TIME", 15, null, null); + case GEOGRAPHY: + case JSON: + case INTERVAL: + return new ColumnTypeInfo(Types.VARCHAR, "VARCHAR", null, null, null); + case BYTES: + return new ColumnTypeInfo(Types.VARBINARY, "VARBINARY", null, null, null); + case STRUCT: + return new ColumnTypeInfo(Types.STRUCT, "STRUCT", null, null, null); + default: + LOG.warning( + "Unknown BigQuery type encountered: " + bqType.name() + ". Mapping to VARCHAR."); + return new ColumnTypeInfo(Types.VARCHAR, bqType.name(), null, null, null); + } + } + + List findMatchingBigQueryObjects( + String objectTypeName, + Supplier> listAllOperation, + Function getSpecificOperation, + Function nameExtractor, + String pattern, + Pattern regex, + BigQueryJdbcCustomLogger logger) { + + boolean needsList = needsListing(pattern); + List resultList = new ArrayList<>(); + + try { + Iterable objects; + if (needsList) { + logger.info( + String.format( + "Listing all %ss (pattern: %s)...", + objectTypeName, pattern == null ? "" : pattern)); + Page firstPage = listAllOperation.get(); + objects = firstPage.iterateAll(); + logger.fine( + String.format( + "Retrieved initial %s list, iterating & filtering if needed...", objectTypeName)); + + } else { + logger.info(String.format("Getting specific %s: '%s'", objectTypeName, pattern)); + T specificObject = getSpecificOperation.apply(pattern); + objects = + (specificObject == null) + ? Collections.emptyList() + : Collections.singletonList(specificObject); + if (specificObject == null) { + logger.info(String.format("Specific %s not found: '%s'", objectTypeName, pattern)); + } + } + + boolean wasListing = needsList; + for (T obj : objects) { + if (Thread.currentThread().isInterrupted()) { + logger.warning("Thread interrupted during " + objectTypeName + " processing loop."); + throw new InterruptedException( + "Interrupted during " + objectTypeName + " processing loop"); + } + if (obj != null) { + if (wasListing && regex != null) { + String name = nameExtractor.apply(obj); + if (name != null && regex.matcher(name).matches()) { + resultList.add(obj); + } + } else { + resultList.add(obj); + } + } + } + + } catch (BigQueryException e) { + if (!needsList && e.getCode() == 404) { + logger.info(String.format("%s '%s' not found (API error 404).", objectTypeName, pattern)); + } else { + logger.warning( + String.format( + "BigQueryException finding %ss for pattern '%s': %s (Code: %d)", + objectTypeName, pattern, e.getMessage(), e.getCode())); + } + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + logger.warning("Interrupted while finding " + objectTypeName + "s."); + } catch (Exception e) { + logger.severe( + String.format( + "Unexpected exception finding %ss for pattern '%s': %s", + objectTypeName, pattern, e.getMessage())); + } + return resultList; + } + + private static class TypeInfoRowData { + String typeName; + int jdbcType; + Long precision; + String literalPrefix; + String literalSuffix; + String createParams; + int nullable; + boolean caseSensitive; + int searchable; + boolean unsignedAttribute; + boolean fixedPrecScale; + boolean autoIncrement; + String localTypeName; + Long minimumScale; + Long maximumScale; + Long numPrecRadix; + + TypeInfoRowData( + String typeName, + int jdbcType, + Long precision, + String literalPrefix, + String literalSuffix, + String createParams, + int nullable, + boolean caseSensitive, + int searchable, + boolean unsignedAttribute, + boolean fixedPrecScale, + boolean autoIncrement, + String localTypeName, + Long minimumScale, + Long maximumScale, + Long numPrecRadix) { + this.typeName = typeName; + this.jdbcType = jdbcType; + this.precision = precision; + this.literalPrefix = literalPrefix; + this.literalSuffix = literalSuffix; + this.createParams = createParams; + this.nullable = nullable; + this.caseSensitive = caseSensitive; + this.searchable = searchable; + this.unsignedAttribute = unsignedAttribute; + this.fixedPrecScale = fixedPrecScale; + this.autoIncrement = autoIncrement; + this.localTypeName = localTypeName; + this.minimumScale = minimumScale; + this.maximumScale = maximumScale; + this.numPrecRadix = numPrecRadix; + } + } + + void sortResults( + List collectedResults, + Comparator comparator, + String operationName, + BigQueryJdbcCustomLogger logger) { + + if (collectedResults == null || collectedResults.isEmpty()) { + logger.info(String.format("No results collected for %s, skipping sort.", operationName)); + return; + } + if (comparator == null) { + logger.info(String.format("No comparator provided for %s, skipping sort.", operationName)); + return; + } + + logger.info( + String.format( + "Sorting %d collected %s results...", collectedResults.size(), operationName)); + try { + collectedResults.sort(comparator); + logger.info(String.format("%s result sorting completed.", operationName)); + } catch (Exception e) { + logger.severe( + String.format("Error during sorting %s results: %s", operationName, e.getMessage())); + } + } + + private List defineBasePrivilegeFields() { + List fields = new ArrayList<>(7); + fields.add( + Field.newBuilder("TABLE_CAT", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TABLE_SCHEM", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("TABLE_NAME", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("GRANTOR", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + fields.add( + Field.newBuilder("GRANTEE", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("PRIVILEGE", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REQUIRED) + .build()); + fields.add( + Field.newBuilder("IS_GRANTABLE", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build()); + return fields; + } + + Pattern compileSqlLikePattern(String sqlLikePattern) { + if (sqlLikePattern == null) { + return null; + } + if (sqlLikePattern.isEmpty()) { + return Pattern.compile("(?!)"); + } + StringBuilder regex = new StringBuilder(sqlLikePattern.length() * 2); + regex.append('^'); + for (int i = 0; i < sqlLikePattern.length(); i++) { + char c = sqlLikePattern.charAt(i); + switch (c) { + case '%': + regex.append(".*"); + break; + case '_': + regex.append('.'); + break; + case '\\': + case '.': + case '[': + case ']': + case '(': + case ')': + case '{': + case '}': + case '*': + case '+': + case '?': + case '^': + case '$': + case '|': + regex.append('\\').append(c); + break; + default: + regex.append(c); + break; + } + } + regex.append('$'); + return Pattern.compile(regex.toString(), Pattern.CASE_INSENSITIVE); + } + + boolean needsListing(String pattern) { + return pattern == null || pattern.contains("%") || pattern.contains("_"); + } + + FieldValue createStringFieldValue(String value) { + return FieldValue.of(FieldValue.Attribute.PRIMITIVE, value); + } + + FieldValue createLongFieldValue(Long value) { + return (value == null) + ? FieldValue.of(FieldValue.Attribute.PRIMITIVE, null) + : FieldValue.of(FieldValue.Attribute.PRIMITIVE, String.valueOf(value)); + } + + FieldValue createNullFieldValue() { + return FieldValue.of(FieldValue.Attribute.PRIMITIVE, null); + } + + FieldValue createBooleanFieldValue(Boolean value) { + return (value == null) + ? FieldValue.of(FieldValue.Attribute.PRIMITIVE, null) + : FieldValue.of(FieldValue.Attribute.PRIMITIVE, value ? "1" : "0"); + } + + private String getStringValueOrNull(FieldValueList fvl, int index) { + if (fvl == null || index < 0 || index >= fvl.size()) return null; + FieldValue fv = fvl.get(index); + return (fv == null || fv.isNull()) ? null : fv.getStringValue(); + } + + private Long getLongValueOrNull(FieldValueList fvl, int index) { + if (fvl == null || index < 0 || index >= fvl.size()) return null; + FieldValue fv = fvl.get(index); + try { + return (fv == null || fv.isNull()) ? null : fv.getLongValue(); + } catch (NumberFormatException e) { + LOG.warning("Could not parse Long value for index " + index); + return null; + } + } + + private void waitForTasksCompletion(List> taskFutures) { + LOG.info(String.format("Waiting for %d submitted tasks to complete...", taskFutures.size())); + for (Future future : taskFutures) { + try { + if (!future.isCancelled()) { + future.get(); + } + } catch (CancellationException e) { + LOG.warning("A table processing task was cancelled."); + } catch (ExecutionException e) { + LOG.severe( + String.format( + "Error executing table processing task: %s", + (e.getCause() != null ? e.getCause().getMessage() : e.getMessage()))); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + LOG.warning( + "Fetcher thread interrupted while waiting for tasks. Attempting to cancel remaining" + + " tasks."); + taskFutures.forEach(f -> f.cancel(true)); + break; + } + } + LOG.info("Finished waiting for tasks."); + } + + private void populateQueue( + List collectedResults, + BlockingQueue queue, + FieldList resultSchemaFields) { + LOG.info(String.format("Populating queue with %d results...", collectedResults.size())); + try { + for (FieldValueList sortedRow : collectedResults) { + if (Thread.currentThread().isInterrupted()) { + LOG.warning("Interrupted during queue population."); + break; + } + queue.put(BigQueryFieldValueListWrapper.of(resultSchemaFields, sortedRow)); + } + LOG.info("Finished populating queue."); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + LOG.warning("Interrupted while putting row onto queue."); + } catch (Exception e) { + LOG.severe("Unexpected error populating queue: " + e.getMessage()); + } + } + + private void signalEndOfData( + BlockingQueue queue, FieldList resultSchemaFields) { + try { + LOG.info("Adding end signal to queue."); + queue.put(BigQueryFieldValueListWrapper.of(resultSchemaFields, null, true)); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + LOG.warning("Interrupted while sending end signal to queue."); + } catch (Exception e) { + LOG.severe("Exception while sending end signal to queue: " + e.getMessage()); + } + } + + private void shutdownExecutor(ExecutorService executor) { + if (executor == null || executor.isShutdown()) { + return; + } + LOG.info("Shutting down column executor service..."); + executor.shutdown(); + try { + if (!executor.awaitTermination(10, TimeUnit.SECONDS)) { + LOG.warning("Executor did not terminate gracefully after 10s, forcing shutdownNow()."); + List droppedTasks = executor.shutdownNow(); + LOG.warning( + "Executor shutdownNow() initiated. Dropped tasks count: " + droppedTasks.size()); + if (!executor.awaitTermination(10, TimeUnit.SECONDS)) { + LOG.severe("Executor did not terminate even after shutdownNow()."); + } + } + LOG.info("Executor shutdown complete."); + } catch (InterruptedException ie) { + LOG.warning( + "Interrupted while waiting for executor termination. Forcing shutdownNow() again."); + executor.shutdownNow(); + Thread.currentThread().interrupt(); + } + } + + private String getCurrentCatalogName() { + return this.connection.getCatalog(); + } + + private List getAccessibleCatalogNames() { + Set accessibleCatalogs = new HashSet<>(); + String primaryCatalog = getCurrentCatalogName(); + if (primaryCatalog != null && !primaryCatalog.isEmpty()) { + accessibleCatalogs.add(primaryCatalog); + } + + List additionalProjects = this.connection.getAdditionalProjects(); + if (additionalProjects != null) { + for (String project : additionalProjects) { + if (project != null && !project.isEmpty()) { + accessibleCatalogs.add(project); + } + } + } + + List sortedCatalogs = new ArrayList<>(accessibleCatalogs); + Collections.sort(sortedCatalogs); + return sortedCatalogs; + } + + static String readSqlFromFile(String filename) { + InputStream in; + in = BigQueryDatabaseMetaData.class.getResourceAsStream(filename); + BufferedReader reader = new BufferedReader(new InputStreamReader(in)); + StringBuilder builder = new StringBuilder(); + try (Scanner scanner = new Scanner(reader)) { + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + builder.append(line).append("\n"); + } + } + return builder.toString(); + } + + String replaceSqlParameters(String sql, String... params) throws SQLException { + return String.format(sql, (Object[]) params); + } + + private void loadDriverVersionProperties() { + if (parsedDriverVersion.get() != null) { + return; + } + Properties props = new Properties(); + try (InputStream input = + getClass().getResourceAsStream("/com/google/cloud/bigquery/jdbc/dependencies.properties")) { + if (input == null) { + String errorMessage = + "Could not find dependencies.properties. Driver version information is unavailable."; + LOG.severe(errorMessage); + throw new IllegalStateException(errorMessage); + } + props.load(input); + String versionString = props.getProperty("version.jdbc"); + if (versionString == null || versionString.trim().isEmpty()) { + String errorMessage = + "The property version.jdbc not found or empty in dependencies.properties."; + LOG.severe(errorMessage); + throw new IllegalStateException(errorMessage); + } + parsedDriverVersion.compareAndSet(null, versionString.trim()); + String[] parts = versionString.split("\\."); + if (parts.length < 2) { + return; + } + parsedDriverMajorVersion.compareAndSet(null, Integer.parseInt(parts[0])); + String minorPart = parts[1]; + String numericMinor = minorPart.replaceAll("[^0-9].*", ""); + if (!numericMinor.isEmpty()) { + parsedDriverMinorVersion.compareAndSet(null, Integer.parseInt(numericMinor)); + } + } catch (IOException | NumberFormatException e) { + String errorMessage = + "Error reading dependencies.properties. Driver version information is" + + " unavailable. Error: " + + e.getMessage(); + LOG.severe(errorMessage); + throw new IllegalStateException(errorMessage, e); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercions.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercions.java new file mode 100644 index 000000000000..324888982a44 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercions.java @@ -0,0 +1,102 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.core.InternalApi; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.math.RoundingMode; + +/** A registry of all the inbuilt {@link BigQueryCoercion}s that framework offers by default. */ +@InternalApi +class BigQueryDefaultCoercions { + + /** + * Creates a {@link BigQueryTypeCoercerBuilder} with all the inbuilt {@link BigQueryCoercion}s. + *

  • {@link BigQueryTypeCoercer#INSTANCE} uses this builder to populate itself with all the + * default {@link BigQueryCoercion}s. + *
  • A {@link BigQueryTypeCoercerBuilder} created through {@link BigQueryTypeCoercer#builder()} + * method also contains all these default {@link BigQueryCoercion}s + */ + static BigQueryTypeCoercerBuilder builder() { + BigQueryTypeCoercerBuilder builder = new BigQueryTypeCoercerBuilder(); + + // TODO: can we figure out the class parameters from coercion itself? + builder.registerTypeCoercion( + (String s) -> s != null && ("1".equals(s.trim()) || Boolean.parseBoolean(s)), + String.class, + Boolean.class); + builder.registerTypeCoercion(Integer::parseInt, String.class, Integer.class); + builder.registerTypeCoercion(BigInteger::new, String.class, BigInteger.class); + builder.registerTypeCoercion(Long::valueOf, String.class, Long.class); + builder.registerTypeCoercion(Double::valueOf, String.class, Double.class); + builder.registerTypeCoercion(BigDecimal::new, String.class, BigDecimal.class); + + builder.registerTypeCoercion((b) -> b ? 1 : 0, Boolean.class, Integer.class); + + builder.registerTypeCoercion(Integer::intValue, Integer.class, Integer.class); + builder.registerTypeCoercion(Integer::shortValue, Integer.class, Short.class); + builder.registerTypeCoercion(Integer::byteValue, Integer.class, Byte.class); + builder.registerTypeCoercion(Integer::doubleValue, Integer.class, Double.class); + builder.registerTypeCoercion(Integer::floatValue, Integer.class, Float.class); + + builder.registerTypeCoercion(Long::intValue, Long.class, Integer.class); + builder.registerTypeCoercion(Long::shortValue, Long.class, Short.class); + builder.registerTypeCoercion(Long::byteValue, Long.class, Byte.class); + builder.registerTypeCoercion(Long::doubleValue, Long.class, Double.class); + builder.registerTypeCoercion(Long::floatValue, Long.class, Float.class); + + builder.registerTypeCoercion(Double::floatValue, Double.class, Float.class); + builder.registerTypeCoercion(Double::longValue, Double.class, Long.class); + builder.registerTypeCoercion(Double::intValue, Double.class, Integer.class); + builder.registerTypeCoercion(Double::shortValue, Double.class, Short.class); + builder.registerTypeCoercion(Double::byteValue, Double.class, Byte.class); + builder.registerTypeCoercion(BigDecimal::valueOf, Double.class, BigDecimal.class); + + builder.registerTypeCoercion(Float::intValue, Float.class, Integer.class); + builder.registerTypeCoercion(Float::byteValue, Float.class, Byte.class); + builder.registerTypeCoercion(Float::shortValue, Float.class, Short.class); + builder.registerTypeCoercion(Float::doubleValue, Float.class, Double.class); + + builder.registerTypeCoercion(BigInteger::longValue, BigInteger.class, Long.class); + builder.registerTypeCoercion(BigDecimal::new, BigInteger.class, BigDecimal.class); + + builder.registerTypeCoercion(BigDecimal::doubleValue, BigDecimal.class, Double.class); + builder.registerTypeCoercion(BigDecimal::toBigInteger, BigDecimal.class, BigInteger.class); + builder.registerTypeCoercion( + bigDecimal -> bigDecimal.setScale(0, RoundingMode.DOWN).intValueExact(), + BigDecimal.class, + Integer.class); + builder.registerTypeCoercion( + bigDecimal -> bigDecimal.setScale(0, RoundingMode.DOWN).longValueExact(), + BigDecimal.class, + Long.class); + builder.registerTypeCoercion( + bigDecimal -> bigDecimal.setScale(0, RoundingMode.DOWN).shortValueExact(), + BigDecimal.class, + Short.class); + builder.registerTypeCoercion( + bigDecimal -> bigDecimal.setScale(0, RoundingMode.DOWN).byteValueExact(), + BigDecimal.class, + Byte.class); + builder.registerTypeCoercion(BigDecimal::floatValue, BigDecimal.class, Float.class); + + builder.registerTypeCoercion(unused -> false, Void.class, Boolean.class); + + return builder; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDriver.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDriver.java new file mode 100644 index 000000000000..2c7eba16cd82 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDriver.java @@ -0,0 +1,249 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import io.grpc.LoadBalancerRegistry; +import io.grpc.internal.PickFirstLoadBalancerProvider; +import java.io.IOException; +import java.sql.Connection; +import java.sql.Driver; +import java.sql.DriverManager; +import java.sql.DriverPropertyInfo; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * JDBC {@link Driver} implementation for BigQuery. + * + *

    Usage: + * + *

    + *  String CONNECTION_URL = "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443"
    + *            + "ProjectId=test;OAuthType=3""
    + *  Connection connection = DriverManager.getConnection(CONNECTION_URL);
    + * 
    + * + *

    Valid URLs take the form: + * + *

    + *  jdbc:bigquery://{host}:{port};ProjectId={projectId};OAuthType={oAuthType};
    + *  {property1}={value1};{property2}={value2};...
    + * 
    + */ +public class BigQueryDriver implements Driver { + + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryDriver.class.getName()); + // TODO: update this when JDBC goes GA + private static final int JDBC_MAJOR_VERSION = 0; + private static final int JDBC_MINOR_VERSION = 1; + static BigQueryDriver registeredBigqueryJdbcDriver; + + static { + try { + register(); + } catch (SQLException e) { + throw new ExceptionInInitializerError("Registering driver failed: " + e.getMessage()); + } + LoadBalancerRegistry.getDefaultRegistry().register(new PickFirstLoadBalancerProvider()); + } + + public BigQueryDriver() {} + + static void register() throws SQLException { + LOG.finest("++enter++"); + if (isRegistered()) { + LOG.warning("Driver is already registered. It can only be registered once."); + } + + DriverManager.registerDriver(LazyHolder.INSTANCE); + BigQueryDriver.registeredBigqueryJdbcDriver = LazyHolder.INSTANCE; + } + + static boolean isRegistered() { + LOG.finest("++enter++"); + return registeredBigqueryJdbcDriver != null; + } + + /** + * @return the registered JDBC driver for BigQuery. + * @throws IllegalStateException if the driver has not been registered. + */ + public static BigQueryDriver getRegisteredDriver() throws IllegalStateException { + LOG.finest("++enter++"); + if (isRegistered()) { + return registeredBigqueryJdbcDriver; + } + throw new IllegalStateException( + "Driver is not registered (or it has not been registered using Driver.register() method)"); + } + + /** + * Attempts to establish a BigQuery connection to the given URL, using the provided connection + * Properties. + * + *

    Valid URLs take the form: + * + *

    +   *  jdbc:bigquery://{host}:{port};ProjectId={projectId};OAuthType={oAuthType};
    +   *  {property1}={value1};{property2}={value2};...
    +   * 
    + * + * @param url the BigQuery URL to connect to + * @param info a list of arbitrary string tag/value pairs as connection arguments. + * @return A connection to the URL if it was established successfully, otherwise {@code null} + * @throws SQLException if driver fails to connect to clients. + * @see Driver#connect(String, Properties) + */ + @Override + public Connection connect(String url, Properties info) throws SQLException { + LOG.finest("++enter++"); + try { + if (acceptsURL(url)) { + // strip 'jdbc:' from the URL, add any extra properties + String connectionUri = + BigQueryJdbcUrlUtility.appendPropertiesToURL(url.substring(5), this.toString(), info); + + // LogLevel + String logLevelStr = + BigQueryJdbcUrlUtility.parseUriProperty( + connectionUri, BigQueryJdbcUrlUtility.LOG_LEVEL_PROPERTY_NAME); + if (logLevelStr == null) { + logLevelStr = System.getenv(BigQueryJdbcUrlUtility.LOG_LEVEL_ENV_VAR); + } + Level logLevel = BigQueryJdbcUrlUtility.parseLogLevel(logLevelStr); + + // LogPath + String logPath = + BigQueryJdbcUrlUtility.parseUriProperty( + connectionUri, BigQueryJdbcUrlUtility.LOG_PATH_PROPERTY_NAME); + if (logPath == null) { + logPath = System.getenv(BigQueryJdbcUrlUtility.LOG_PATH_ENV_VAR); + } + if (logPath == null) { + logPath = BigQueryJdbcUrlUtility.DEFAULT_LOG_PATH; + } + + BigQueryJdbcRootLogger.setLevel(logLevel, logPath); + // Logging starts from here. + BigQueryConnection connection = new BigQueryConnection(connectionUri); + LOG.info( + String.format( + "Driver info : { {Database Product Name : %s}, " + + "{Database Product Version : %s}, " + + "{Driver Name : %s}, " + + "{Driver Version : %s}, " + + "{LogLevel : %s}, " + + "{LogPath : %s}, " + + "{Driver Instance : %s} }", + connection.getMetaData().getDatabaseProductName(), + connection.getMetaData().getDatabaseProductVersion(), + connection.getMetaData().getDriverName(), + connection.getMetaData().getDriverVersion(), + logLevel, + logPath, + this.toString())); + return connection; + } else { + throw new IllegalArgumentException( + "Invalid URL provided, must start with \"jdbc:bigquery:\""); + } + } catch (IOException e) { + LOG.warning("Getting a warning: " + e.getMessage()); + } + return null; + } + + /** + * @param url a JDBC connection URL + * @return True if the URL is non-empty and starts with "jdbc:bigquery" + * @see Driver#acceptsURL(String) + */ + @Override + public boolean acceptsURL(String url) throws SQLException { + LOG.finest("++enter++"); + if (url == null || url.isEmpty()) { + throw new BigQueryJdbcException("Connection URL is null."); + } + return url.startsWith("jdbc:bigquery:"); + } + + /** + * Gets information about the possible BigQuery JDBC Connection Properties. + * + * @param url the BigQuery connection URL + * @param info a proposed list BigQuery connection properties + * @return an array of {@code DriverPropertyInfo} objects describing possible properties. + * @see Driver#getPropertyInfo(String, Properties) + */ + @Override + public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) { + LOG.finest("++enter++"); + String connectionUri = + BigQueryJdbcUrlUtility.appendPropertiesToURL(url.substring(5), this.toString(), info); + List propertyInfoList = new ArrayList<>(); + + for (BigQueryConnectionProperty prop : BigQueryJdbcUrlUtility.VALID_PROPERTIES) { + DriverPropertyInfo driverProperty = + new DriverPropertyInfo( + prop.getName(), + BigQueryJdbcUrlUtility.parseUriProperty(connectionUri, prop.getName())); + driverProperty.description = prop.getDescription(); + propertyInfoList.add(driverProperty); + } + Map oAuthProperties = + BigQueryJdbcOAuthUtility.parseOAuthProperties(url, this.toString()); + for (Map.Entry authProperty : oAuthProperties.entrySet()) { + propertyInfoList.add(new DriverPropertyInfo(authProperty.getKey(), authProperty.getValue())); + } + return propertyInfoList.toArray(new DriverPropertyInfo[0]); + } + + @Override + public int getMajorVersion() { + LOG.finest("++enter++"); + return JDBC_MAJOR_VERSION; + } + + @Override + public int getMinorVersion() { + LOG.finest("++enter++"); + return JDBC_MINOR_VERSION; + } + + @Override + public boolean jdbcCompliant() { + LOG.finest("++enter++"); + return false; + } + + @Override + public Logger getParentLogger() { + LOG.finest("++enter++"); + return BigQueryJdbcRootLogger.getRootLogger(); + } + + private static class LazyHolder { + static final BigQueryDriver INSTANCE = new BigQueryDriver(); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryErrorMessage.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryErrorMessage.java new file mode 100644 index 000000000000..9afa074522d9 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryErrorMessage.java @@ -0,0 +1,29 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.core.InternalApi; + +@InternalApi +class BigQueryErrorMessage { + + static final String CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED = + "Customized Types are not supported yet."; + static final String INVALID_ARRAY = "Invalid java.sql.Array instance."; + static final String METHOD_NOT_IMPLEMENTED = "This method is not implemented."; + static final String OAUTH_TYPE_ERROR_MESSAGE = "Invalid Auth type specified"; +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryFieldValueListWrapper.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryFieldValueListWrapper.java new file mode 100644 index 000000000000..9d8b1b2f7736 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryFieldValueListWrapper.java @@ -0,0 +1,81 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.FieldValueList; +import java.util.List; + +/** + * Package-private, This class acts as a facade layer and wraps the FieldList(schema) and + * FieldValueList + */ +class BigQueryFieldValueListWrapper { + + // This is a reference schema to the schema + private final FieldList fieldList; + + // POJO representation of the JSON response + private final FieldValueList fieldValueList; + + // This is very similar to the FieldValueList above, except we get the + // reference as a List in case of an Array + private final List arrayFieldValueList; + + // This flag marks the end of the stream for the ResultSet + private boolean isLast = false; + + static BigQueryFieldValueListWrapper of( + FieldList fieldList, FieldValueList fieldValueList, boolean... isLast) { + boolean isLastFlag = isLast != null && isLast.length == 1 && isLast[0]; + return new BigQueryFieldValueListWrapper(fieldList, fieldValueList, null, isLastFlag); + } + + static BigQueryFieldValueListWrapper getNestedFieldValueListWrapper( + FieldList fieldList, List arrayFieldValueList, boolean... isLast) { + boolean isLastFlag = isLast != null && isLast.length == 1 && isLast[0]; + return new BigQueryFieldValueListWrapper(fieldList, null, arrayFieldValueList, isLastFlag); + } + + private BigQueryFieldValueListWrapper( + FieldList fieldList, + FieldValueList fieldValueList, + List arrayFieldValueList, + boolean isLast) { + this.fieldList = fieldList; + this.fieldValueList = fieldValueList; + this.arrayFieldValueList = arrayFieldValueList; + this.isLast = isLast; + } + + public FieldList getFieldList() { + return this.fieldList; + } + + public FieldValueList getFieldValueList() { + return this.fieldValueList; + } + + public List getArrayFieldValueList() { + return this.arrayFieldValueList; + } + + public boolean isLast() { + return this.isLast; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBulkInsertWriter.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBulkInsertWriter.java new file mode 100644 index 000000000000..d4e9702621dc --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBulkInsertWriter.java @@ -0,0 +1,130 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.core.ApiFuture; +import com.google.api.core.ApiFutureCallback; +import com.google.api.core.ApiFutures; +import com.google.api.gax.retrying.RetrySettings; +import com.google.cloud.bigquery.storage.v1.AppendRowsResponse; +import com.google.cloud.bigquery.storage.v1.BigQueryWriteClient; +import com.google.cloud.bigquery.storage.v1.CreateWriteStreamRequest; +import com.google.cloud.bigquery.storage.v1.Exceptions; +import com.google.cloud.bigquery.storage.v1.Exceptions.StorageException; +import com.google.cloud.bigquery.storage.v1.FinalizeWriteStreamResponse; +import com.google.cloud.bigquery.storage.v1.JsonStreamWriter; +import com.google.cloud.bigquery.storage.v1.TableName; +import com.google.cloud.bigquery.storage.v1.WriteStream; +import com.google.common.util.concurrent.MoreExecutors; +import com.google.gson.JsonArray; +import com.google.protobuf.Descriptors.DescriptorValidationException; +import java.io.IOException; +import java.util.concurrent.Phaser; +import javax.annotation.concurrent.GuardedBy; + +class BigQueryJdbcBulkInsertWriter { + private final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + private JsonStreamWriter jsonStreamWriter; + private final Phaser openRequestCount = new Phaser(1); + private final Object streamLock = new Object(); + + @GuardedBy("lock") + private RuntimeException error = null; + + void initialize(TableName parentTable, BigQueryWriteClient client, RetrySettings retrySettings) + throws IOException, DescriptorValidationException, InterruptedException { + WriteStream stream = WriteStream.newBuilder().setType(WriteStream.Type.PENDING).build(); + + CreateWriteStreamRequest createWriteStreamRequest = + CreateWriteStreamRequest.newBuilder() + .setParent(parentTable.toString()) + .setWriteStream(stream) + .build(); + WriteStream writeStream = client.createWriteStream(createWriteStreamRequest); + + JsonStreamWriter.Builder jsonStreamWriterBuilder = + JsonStreamWriter.newBuilder(writeStream.getName(), writeStream.getTableSchema()); + + if (retrySettings != null) { + jsonStreamWriterBuilder.setRetrySettings(retrySettings); + } + + this.jsonStreamWriter = jsonStreamWriterBuilder.build(); + } + + void append(JsonArray data, long offset) throws DescriptorValidationException, IOException { + synchronized (this.streamLock) { + if (this.error != null) { + throw this.error; + } + } + + ApiFuture future = jsonStreamWriter.append(data, offset); + ApiFutures.addCallback( + future, new AppendCompleteCallback(this), MoreExecutors.directExecutor()); + openRequestCount.register(); + } + + long cleanup(BigQueryWriteClient client) { + openRequestCount.arriveAndAwaitAdvance(); + jsonStreamWriter.close(); + + synchronized (this.streamLock) { + if (this.error != null) { + throw this.error; + } + } + + // Finalize the stream. + FinalizeWriteStreamResponse finalizeResponse = + client.finalizeWriteStream(jsonStreamWriter.getStreamName()); + LOG.finest("Rows written: " + finalizeResponse.getRowCount()); + return finalizeResponse.getRowCount(); + } + + String getStreamName() { + return jsonStreamWriter.getStreamName(); + } + + static class AppendCompleteCallback implements ApiFutureCallback { + + private final BigQueryJdbcBulkInsertWriter parent; + + AppendCompleteCallback(BigQueryJdbcBulkInsertWriter parent) { + this.parent = parent; + } + + public void onSuccess(AppendRowsResponse response) { + done(); + } + + public void onFailure(Throwable throwable) { + synchronized (this.parent.streamLock) { + if (this.parent.error == null) { + StorageException storageException = Exceptions.toStorageException(throwable); + this.parent.error = + (storageException != null) ? storageException : new RuntimeException(throwable); + } + } + done(); + } + + private void done() { + this.parent.openRequestCount.arriveAndDeregister(); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java new file mode 100644 index 000000000000..611b200ff6e4 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java @@ -0,0 +1,32 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import java.util.logging.Logger; + +class BigQueryJdbcCustomLogger extends Logger { + + protected BigQueryJdbcCustomLogger(String name, String resourceBundleName) { + super(name, resourceBundleName); + this.setParent(BigQueryJdbcRootLogger.getRootLogger()); + } + + BigQueryJdbcCustomLogger(String name) { + this(name, null); + this.setParent(BigQueryJdbcRootLogger.getRootLogger()); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtility.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtility.java new file mode 100644 index 000000000000..5f486f1e58d7 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtility.java @@ -0,0 +1,759 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.api.client.util.PemReader.readFirstSectionAndClose; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.OAUTH_TYPE_ERROR_MESSAGE; + +import com.google.api.client.util.PemReader; +import com.google.api.client.util.SecurityUtils; +import com.google.auth.oauth2.AccessToken; +import com.google.auth.oauth2.ClientId; +import com.google.auth.oauth2.ExternalAccountCredentials; +import com.google.auth.oauth2.GoogleCredentials; +import com.google.auth.oauth2.ImpersonatedCredentials; +import com.google.auth.oauth2.ServiceAccountCredentials; +import com.google.auth.oauth2.UserAuthorizer; +import com.google.auth.oauth2.UserCredentials; +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.google.gson.Strictness; +import com.google.gson.stream.JsonReader; +import java.awt.Desktop; +import java.io.BufferedReader; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.io.Reader; +import java.io.StringReader; +import java.net.ServerSocket; +import java.net.Socket; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.security.GeneralSecurityException; +import java.security.KeyFactory; +import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.PKCS8EncodedKeySpec; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +final class BigQueryJdbcOAuthUtility { + + private static final String USER_AUTH_SUCCESS_HTTP_RESPONSE = + "HTTP/1.1 200 OK\n" + + "Content-Length: 300\n" + + "Connection: close\n" + + "Content-Type: text/html; charset=utf-8\n" + + "\n" + + "\n" + + "Thank you for using JDBC Driver for Google BigQuery!\n" + + "You may now close the window."; + + private static final int USER_AUTH_TIMEOUT_MS = 120000; + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryJdbcOAuthUtility.class.getName()); + + private static final Map BYOID_NAME_MAP = + new HashMap() { + { + put(BigQueryJdbcUrlUtility.BYOID_AUDIENCE_URI_PROPERTY_NAME, "audience"); + put(BigQueryJdbcUrlUtility.BYOID_CREDENTIAL_SOURCE_PROPERTY_NAME, "credential_source"); + put(BigQueryJdbcUrlUtility.BYOID_SUBJECT_TOKEN_TYPE_PROPERTY_NAME, "subject_token_type"); + put(BigQueryJdbcUrlUtility.BYOID_TOKEN_URI_PROPERTY_NAME, "token_url"); + put( + BigQueryJdbcUrlUtility.BYOID_POOL_USER_PROJECT_PROPERTY_NAME, + "workforce_pool_user_project"); + put( + BigQueryJdbcUrlUtility.BYOID_SA_IMPERSONATION_URI_PROPERTY_NAME, + "service_account_impersonation_url"); + } + }; + + /** + * Parses the OAuth properties from the given URL. + * + * @param url The URL to parse. + * @return A map of OAuth properties. + */ + static Map parseOAuthProperties(String url, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + Map oauthProperties = new HashMap<>(); + + AuthType authType; + try { + authType = + AuthType.fromValue( + BigQueryJdbcUrlUtility.parseIntProperty( + url, + BigQueryJdbcUrlUtility.OAUTH_TYPE_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_OAUTH_TYPE_VALUE, + callerClassName)); + } catch (NumberFormatException exception) { + throw new IllegalArgumentException(OAUTH_TYPE_ERROR_MESSAGE); + } + oauthProperties.put(BigQueryJdbcUrlUtility.OAUTH_TYPE_PROPERTY_NAME, String.valueOf(authType)); + switch (authType) { + case GOOGLE_SERVICE_ACCOUNT: + // For using a Google Service Account (OAuth Type 0) + // need: project id, OAuthServiceAcctEmail and OAuthPvtKey or OAuthPvtKeyPath that can be + // .p12 or json. + // TODO: validation if .p12 or json file can be in getPropertyInfo can be handy for user + String serviceAccountEmail = + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_SA_EMAIL_PROPERTY_NAME); + String serviceAccountPK = + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PROPERTY_NAME); + String serviceAccountPrivateKeyPath = + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PATH_PROPERTY_NAME); + String p12Password = + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.OAUTH_P12_PASSWORD_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_OAUTH_P12_PASSWORD_VALUE, + callerClassName); + + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_SA_EMAIL_PROPERTY_NAME, serviceAccountEmail); + oauthProperties.put(BigQueryJdbcUrlUtility.OAUTH_P12_PASSWORD_PROPERTY_NAME, p12Password); + if (serviceAccountEmail != null && serviceAccountPK != null) { + oauthProperties.put(BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PROPERTY_NAME, serviceAccountPK); + } else { + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PATH_PROPERTY_NAME, + serviceAccountPrivateKeyPath); + } + break; + case GOOGLE_USER_ACCOUNT: + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_CLIENT_ID_PROPERTY_NAME, + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_CLIENT_ID_PROPERTY_NAME)); + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_CLIENT_SECRET_PROPERTY_NAME, + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_CLIENT_SECRET_PROPERTY_NAME)); + int reqGoogleDriveScope = + BigQueryJdbcUrlUtility.parseIntProperty( + url, + BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_REQUEST_GOOGLE_DRIVE_SCOPE_VALUE, + callerClassName); + oauthProperties.put( + BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME, + String.valueOf(reqGoogleDriveScope)); + LOG.fine("RequestGoogleDriveScope parsed."); + break; + case PRE_GENERATED_TOKEN: + String refreshToken = + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_REFRESH_TOKEN_PROPERTY_NAME); + if (refreshToken != null) { + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_REFRESH_TOKEN_PROPERTY_NAME, refreshToken); + LOG.fine("OAuthRefreshToken provided."); + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_CLIENT_ID_PROPERTY_NAME, + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_CLIENT_ID_PROPERTY_NAME)); + LOG.fine("OAuthClientId provided."); + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_CLIENT_SECRET_PROPERTY_NAME, + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_CLIENT_SECRET_PROPERTY_NAME)); + LOG.fine("OAuthClientSecret provided."); + break; + } + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_ACCESS_TOKEN_PROPERTY_NAME, + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_ACCESS_TOKEN_PROPERTY_NAME)); + LOG.fine("OAuthAccessToken provided."); + break; + case APPLICATION_DEFAULT_CREDENTIALS: + // For Application Default Credentials (OAuth Type 3) + // need: project id + break; + case EXTERNAL_ACCOUNT_AUTH: + // For External account authentication (OAuth Type 4) + // need: project id, OAuthPvtKey or OAuthPvtKeyPath or BYOID_PROPERTIES + String pvtKey = + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PROPERTY_NAME); + String pvtKeyPath = + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PATH_PROPERTY_NAME); + if (pvtKey != null) { + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PROPERTY_NAME, + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PROPERTY_NAME)); + LOG.fine("OAuthPvtKey provided."); + } else if (pvtKeyPath != null) { + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PATH_PROPERTY_NAME, + BigQueryJdbcUrlUtility.parseUriProperty( + url, BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PATH_PROPERTY_NAME)); + LOG.fine("OAuthPvtKeyPath provided."); + } else { + for (String property : BigQueryJdbcUrlUtility.BYOID_PROPERTIES) { + String value = + BigQueryJdbcUrlUtility.parseBYOIDProperty(url, property, callerClassName); + if (value != null) { + oauthProperties.put(property, value); + LOG.fine(property + " provided."); + } + } + String universeDomainProp = BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME; + String universeDomain = BigQueryJdbcUrlUtility.parseUriProperty(url, universeDomainProp); + if (universeDomain != null) { + oauthProperties.put(universeDomainProp, universeDomain); + LOG.fine(universeDomainProp + " provided. Caller : " + callerClassName); + } + } + break; + } + + if (authType == AuthType.GOOGLE_SERVICE_ACCOUNT + || authType == AuthType.GOOGLE_USER_ACCOUNT + || authType == AuthType.PRE_GENERATED_TOKEN) { + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_EMAIL_PROPERTY_NAME, + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_EMAIL_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_OAUTH_SA_IMPERSONATION_EMAIL_VALUE, + callerClassName)); + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_CHAIN_PROPERTY_NAME, + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_CHAIN_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_OAUTH_SA_IMPERSONATION_CHAIN_VALUE, + callerClassName)); + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_SCOPES_PROPERTY_NAME, + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_SCOPES_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_OAUTH_SA_IMPERSONATION_SCOPES_VALUE, + callerClassName)); + oauthProperties.put( + BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_TOKEN_LIFETIME_PROPERTY_NAME, + BigQueryJdbcUrlUtility.parseStringProperty( + url, + BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_TOKEN_LIFETIME_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_OAUTH_SA_IMPERSONATION_TOKEN_LIFETIME_VALUE, + callerClassName)); + } + return oauthProperties; + } + + /** + * Gets the credentials for the given Auth properties. + * + * @param authProperties A map of Auth properties. + * @return A GoogleCredentials object. + */ + static GoogleCredentials getCredentials( + Map authProperties, + Map overrideProperties, + String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + + AuthType authType = + AuthType.valueOf(authProperties.get(BigQueryJdbcUrlUtility.OAUTH_TYPE_PROPERTY_NAME)); + + GoogleCredentials credentials; + switch (authType) { + case GOOGLE_SERVICE_ACCOUNT: + credentials = + getGoogleServiceAccountCredentials(authProperties, overrideProperties, callerClassName); + break; + case GOOGLE_USER_ACCOUNT: + credentials = + getGoogleUserAccountCredentials(authProperties, overrideProperties, callerClassName); + break; + case PRE_GENERATED_TOKEN: + credentials = + getPreGeneratedTokensCredentials(authProperties, overrideProperties, callerClassName); + break; + case APPLICATION_DEFAULT_CREDENTIALS: + // This auth method doesn't support service account impersonation + return getApplicationDefaultCredentials(callerClassName); + case EXTERNAL_ACCOUNT_AUTH: + // This auth method doesn't support service account impersonation + return getExternalAccountAuthCredentials(authProperties, callerClassName); + default: + throw new IllegalStateException(OAUTH_TYPE_ERROR_MESSAGE); + } + + return getServiceAccountImpersonatedCredentials(credentials, authProperties); + } + + private static boolean isFileExists(String filename) { + try { + return filename != null && !filename.isEmpty() && Files.exists(Paths.get(filename)); + } catch (Exception e) { + // Filename is invalid + return false; + } + } + + private static boolean isJson(String value) { + try { + // This is done this way to ensure strict Json parsing + // https://github.com/google/gson/issues/1208#issuecomment-2120764686 + InputStream stream = new ByteArrayInputStream(value.getBytes()); + InputStreamReader reader = new InputStreamReader(stream); + JsonReader jsonReader = new JsonReader(reader); + jsonReader.setStrictness(Strictness.STRICT); + JsonElement json = JsonParser.parseReader(jsonReader); + return json != null; + } catch (Exception e) { + // Unable to parse json string + return false; + } + } + + private static GoogleCredentials getGoogleServiceAccountCredentials( + Map authProperties, + Map overrideProperties, + String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + + ServiceAccountCredentials.Builder builder; + try { + final String pvtKeyPath = + authProperties.get(BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PATH_PROPERTY_NAME); + final String pvtKey = authProperties.get(BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PROPERTY_NAME); + final String pvtEmail = + authProperties.get(BigQueryJdbcUrlUtility.OAUTH_SA_EMAIL_PROPERTY_NAME); + final String p12Password = + authProperties.get(BigQueryJdbcUrlUtility.OAUTH_P12_PASSWORD_PROPERTY_NAME); + + final String keyPath = pvtKeyPath != null ? pvtKeyPath : pvtKey; + PrivateKey key = null; + InputStream stream = null; + + if (isFileExists(keyPath)) { + key = privateKeyFromP12File(keyPath, p12Password); + if (key == null) { + stream = Files.newInputStream(Paths.get(keyPath)); + } + } else if (isJson(pvtKey)) { + stream = new ByteArrayInputStream(pvtKey.getBytes()); + } else if (pvtKey != null) { + key = privateKeyFromPkcs8(pvtKey); + } + + if (stream != null) { + builder = ServiceAccountCredentials.fromStream(stream).toBuilder(); + } else if (pvtEmail != null && key != null) { + builder = + ServiceAccountCredentials.newBuilder().setClientEmail(pvtEmail).setPrivateKey(key); + } else { + LOG.severe("No valid Service Account credentials provided."); + throw new BigQueryJdbcRuntimeException("No valid credentials provided."); + } + + if (overrideProperties.containsKey(BigQueryJdbcUrlUtility.OAUTH2_TOKEN_URI_PROPERTY_NAME)) { + builder.setTokenServerUri( + new URI(overrideProperties.get(BigQueryJdbcUrlUtility.OAUTH2_TOKEN_URI_PROPERTY_NAME))); + } + if (overrideProperties.containsKey( + BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME)) { + builder.setUniverseDomain( + overrideProperties.get(BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME)); + } + } catch (URISyntaxException | IOException e) { + LOG.severe("Validation failure for Service Account credentials."); + throw new BigQueryJdbcRuntimeException(e); + } + LOG.info("GoogleCredentials instantiated. Auth Method: Service Account."); + return builder.build(); + } + + static UserAuthorizer getUserAuthorizer( + Map authProperties, + Map overrideProperties, + int port, + String callerClassName) + throws URISyntaxException { + LOG.finest("++enter++\t" + callerClassName); + List scopes = new ArrayList<>(); + scopes.add("https://www.googleapis.com/auth/bigquery"); + + // Add Google Drive scope conditionally + if (authProperties.containsKey( + BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME)) { + try { + int driveScopeValue = + Integer.parseInt( + authProperties.get( + BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME)); + if (driveScopeValue == 1) { + scopes.add("https://www.googleapis.com/auth/drive.readonly"); + LOG.fine("Added Google Drive read-only scope. Caller: " + callerClassName); + } + } catch (NumberFormatException e) { + LOG.severe( + "Invalid value for RequestGoogleDriveScope, defaulting to not request Drive scope. Caller: " + + callerClassName); + } + } + + List responseTypes = new ArrayList<>(); + responseTypes.add("code"); + + ClientId clientId = + ClientId.of( + authProperties.get(BigQueryJdbcUrlUtility.OAUTH_CLIENT_ID_PROPERTY_NAME), + authProperties.get(BigQueryJdbcUrlUtility.OAUTH_CLIENT_SECRET_PROPERTY_NAME)); + UserAuthorizer.Builder userAuthorizerBuilder = + UserAuthorizer.newBuilder() + .setClientId(clientId) + .setScopes(scopes) + .setCallbackUri(URI.create("http://localhost:" + port)); + + if (overrideProperties.containsKey(BigQueryJdbcUrlUtility.OAUTH2_TOKEN_URI_PROPERTY_NAME)) { + userAuthorizerBuilder.setTokenServerUri( + new URI(overrideProperties.get(BigQueryJdbcUrlUtility.OAUTH2_TOKEN_URI_PROPERTY_NAME))); + } + + return userAuthorizerBuilder.build(); + } + + static UserCredentials getCredentialsFromCode( + UserAuthorizer userAuthorizer, String code, String callerClassName) throws IOException { + LOG.finest("++enter++\t" + callerClassName); + return userAuthorizer.getCredentialsFromCode(code, URI.create("")); + } + + private static GoogleCredentials getGoogleUserAccountCredentials( + Map authProperties, + Map overrideProperties, + String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + try { + ServerSocket serverSocket = new ServerSocket(0); + serverSocket.setSoTimeout(USER_AUTH_TIMEOUT_MS); + int port = serverSocket.getLocalPort(); + UserAuthorizer userAuthorizer = + getUserAuthorizer(authProperties, overrideProperties, port, callerClassName); + + URL authURL = userAuthorizer.getAuthorizationUrl("user", "", URI.create("")); + String code; + + if (Desktop.isDesktopSupported()) { + Desktop.getDesktop().browse(authURL.toURI()); + + Socket socket = serverSocket.accept(); + + OutputStream outputStream = socket.getOutputStream(); + PrintWriter printWriter = new PrintWriter(outputStream); + + BufferedReader bufferedReader = + new BufferedReader(new InputStreamReader(socket.getInputStream())); + String response = bufferedReader.readLine(); + + Pattern p = Pattern.compile("(?<=code=).*?(?=&|$)"); + Matcher m = p.matcher(response); + + if (!m.find()) { + throw new BigQueryJdbcRuntimeException("Could not retrieve the code for user auth"); + } + code = m.group(); + + printWriter.println(USER_AUTH_SUCCESS_HTTP_RESPONSE); + printWriter.flush(); + socket.close(); + serverSocket.close(); + } else { + throw new BigQueryJdbcRuntimeException("User auth only supported in desktop environments"); + } + + return getCredentialsFromCode(userAuthorizer, code, callerClassName); + } catch (IOException | URISyntaxException ex) { + LOG.severe( + String.format( + "Failed to establish connection using User Account authentication: %s", + ex.getMessage())); + throw new BigQueryJdbcRuntimeException(ex); + } + } + + private static GoogleCredentials getPreGeneratedAccessTokenCredentials( + Map authProperties, + Map overrideProperties, + String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + GoogleCredentials.Builder builder = GoogleCredentials.newBuilder(); + if (overrideProperties.containsKey( + BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME)) { + builder.setUniverseDomain( + overrideProperties.get(BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME)); + } + LOG.info("Connection established. Auth Method: Pre-generated Access Token."); + return builder + .setAccessToken( + AccessToken.newBuilder() + .setTokenValue( + authProperties.get(BigQueryJdbcUrlUtility.OAUTH_ACCESS_TOKEN_PROPERTY_NAME)) + .build()) + .build(); + } + + static GoogleCredentials getPreGeneratedTokensCredentials( + Map authProperties, + Map overrideProperties, + String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + if (authProperties.containsKey(BigQueryJdbcUrlUtility.OAUTH_REFRESH_TOKEN_PROPERTY_NAME)) { + try { + return getPreGeneratedRefreshTokenCredentials( + authProperties, overrideProperties, callerClassName); + } catch (URISyntaxException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + } else { + return getPreGeneratedAccessTokenCredentials( + authProperties, overrideProperties, callerClassName); + } + } + + static UserCredentials getPreGeneratedRefreshTokenCredentials( + Map authProperties, + Map overrideProperties, + String callerClassName) + throws URISyntaxException { + LOG.finest("++enter++\t" + callerClassName); + + UserCredentials.Builder userCredentialsBuilder = + UserCredentials.newBuilder() + .setRefreshToken( + authProperties.get(BigQueryJdbcUrlUtility.OAUTH_REFRESH_TOKEN_PROPERTY_NAME)) + .setClientId(authProperties.get(BigQueryJdbcUrlUtility.OAUTH_CLIENT_ID_PROPERTY_NAME)) + .setClientSecret( + authProperties.get(BigQueryJdbcUrlUtility.OAUTH_CLIENT_SECRET_PROPERTY_NAME)); + + if (overrideProperties.containsKey(BigQueryJdbcUrlUtility.OAUTH2_TOKEN_URI_PROPERTY_NAME)) { + userCredentialsBuilder.setTokenServerUri( + new URI(overrideProperties.get(BigQueryJdbcUrlUtility.OAUTH2_TOKEN_URI_PROPERTY_NAME))); + } + if (overrideProperties.containsKey( + BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME)) { + userCredentialsBuilder.setUniverseDomain( + overrideProperties.get(BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME)); + } + LOG.info("Connection established. Auth Method: Pre-generated Refresh Token."); + return userCredentialsBuilder.build(); + } + + private static GoogleCredentials getApplicationDefaultCredentials(String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + try { + GoogleCredentials credentials = GoogleCredentials.getApplicationDefault(); + String principal = "unknown"; + if (credentials instanceof ServiceAccountCredentials) { + principal = ((ServiceAccountCredentials) credentials).getClientEmail(); + } else if (credentials instanceof UserCredentials) { + principal = "user credentials"; + } else if (credentials instanceof ExternalAccountCredentials) { + principal = "external account"; + } + LOG.info( + String.format( + "Connection established. Auth Method: Application Default Credentials, Principal: %s.", + principal)); + return credentials; + } catch (IOException exception) { + // TODO throw exception + throw new BigQueryJdbcRuntimeException("Application default credentials not found."); + } + } + + private static GoogleCredentials getExternalAccountAuthCredentials( + Map authProperties, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + try { + JsonObject jsonObject = null; + String credentialsPath = null; + if (authProperties.containsKey(BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PROPERTY_NAME)) { + String pvtKeyPath = + authProperties.get(BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PROPERTY_NAME).trim(); + if (pvtKeyPath.startsWith("{")) { + jsonObject = JsonParser.parseString(pvtKeyPath).getAsJsonObject(); + } else { + credentialsPath = pvtKeyPath; + } + } else if (authProperties.containsKey( + BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PATH_PROPERTY_NAME)) { + credentialsPath = + authProperties.get(BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PATH_PROPERTY_NAME); + } else { + jsonObject = new JsonObject(); + for (String property : BigQueryJdbcUrlUtility.BYOID_PROPERTIES) { + if (Objects.equals( + property, BigQueryJdbcUrlUtility.BYOID_CREDENTIAL_SOURCE_PROPERTY_NAME)) { + jsonObject.add( + BYOID_NAME_MAP.get(property), + JsonParser.parseString(authProperties.get(property)).getAsJsonObject()); + } else if (authProperties.containsKey(property)) { + jsonObject.addProperty(BYOID_NAME_MAP.get(property), authProperties.get(property)); + } + } + if (authProperties.containsKey( + BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME)) { + jsonObject.addProperty( + "universe_domain", + authProperties.get(BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME)); + } + } + + if (credentialsPath != null) { + return ExternalAccountCredentials.fromStream( + Files.newInputStream(Paths.get(credentialsPath))); + } else if (jsonObject != null) { + return ExternalAccountCredentials.fromStream( + new ByteArrayInputStream(jsonObject.toString().getBytes())); + } else { + throw new IllegalArgumentException( + "Insufficient info provided for external authentication"); + } + } catch (IOException e) { + throw new BigQueryJdbcRuntimeException(e); + } + } + + // This function checks if connection string contains configuration for + // credentials impersonation. If not, it returns regular credentials object. + // If impersonated service account is provided, returns Credentials object + // accomodating this information. + private static GoogleCredentials getServiceAccountImpersonatedCredentials( + GoogleCredentials credentials, Map authProperties) { + + String impersonationEmail = + authProperties.get(BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_EMAIL_PROPERTY_NAME); + if (impersonationEmail == null || impersonationEmail.isEmpty()) { + return credentials; + } + + String impersonationChainString = + authProperties.get(BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_CHAIN_PROPERTY_NAME); + List impersonationChain = null; + if (impersonationChainString != null && !impersonationChainString.isEmpty()) { + impersonationChain = Arrays.asList(impersonationChainString.split(",")); + } + + // Scopes has a default value, so it should never be null + List impersonationScopes = + Arrays.asList( + authProperties + .get(BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_SCOPES_PROPERTY_NAME) + .split(",")); + + // Token lifetime has a default value, so it should never be null + String impersonationLifetime = + authProperties.get( + BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_TOKEN_LIFETIME_PROPERTY_NAME); + int impersonationLifetimeInt = 0; + try { + impersonationLifetimeInt = Integer.parseInt(impersonationLifetime); + } catch (NumberFormatException e) { + LOG.severe("Invalid value for ServiceAccountImpersonationTokenLifetime."); + throw new IllegalArgumentException( + "Invalid value for ServiceAccountImpersonationTokenLifetime: must be a positive integer.", + e); + } + + return ImpersonatedCredentials.create( + credentials, + impersonationEmail, + impersonationChain, + impersonationScopes, + impersonationLifetimeInt); + } + + static PrivateKey privateKeyFromP12File(String privateKeyFile, String password) { + try { + InputStream stream = Files.newInputStream(Paths.get(privateKeyFile)); + return SecurityUtils.loadPrivateKeyFromKeyStore( + SecurityUtils.getPkcs12KeyStore(), stream, "notasecret", "privatekey", password); + } catch (IOException | GeneralSecurityException e) { + LOG.warning("Unable to parse p12 file: " + e.getMessage()); + return null; + } + } + + static PrivateKey privateKeyFromPkcs8(String privateKeyPkcs8) { + try { + Reader reader = new StringReader(privateKeyPkcs8); + PemReader.Section section = readFirstSectionAndClose(reader, "PRIVATE KEY"); + if (section == null) { + throw new IOException("Invalid PKCS#8 data."); + } + byte[] bytes = section.getBase64DecodedBytes(); + PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(bytes); + KeyFactory keyFactory = SecurityUtils.getRsaKeyFactory(); + return keyFactory.generatePrivate(keySpec); + } catch (NoSuchAlgorithmException | InvalidKeySpecException | IOException e) { + LOG.warning("Unable to parse pkcs8 secret: " + e.getMessage()); + return null; + } + } + + enum AuthType { + GOOGLE_SERVICE_ACCOUNT(0), + GOOGLE_USER_ACCOUNT(1), + PRE_GENERATED_TOKEN(2), + APPLICATION_DEFAULT_CREDENTIALS(3), + EXTERNAL_ACCOUNT_AUTH(4); + + private final int value; + + AuthType(int value) { + this.value = value; + } + + static AuthType fromValue(int value) { + for (AuthType authType : values()) { + if (authType.value == value) { + return authType; + } + } + throw new IllegalStateException(OAUTH_TYPE_ERROR_MESSAGE + ": " + value); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameter.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameter.java new file mode 100644 index 000000000000..cb11d14e46ab --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameter.java @@ -0,0 +1,117 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.jdbc.BigQueryParameterHandler.BigQueryStatementParameterType; + +class BigQueryJdbcParameter { + private int index; + private Object value; + private Class type; + private StandardSQLTypeName sqlType; + // Additional parameters needed for CallableStatement. + private String paramName; + private BigQueryStatementParameterType paramType; + private int scale; + + BigQueryJdbcParameter() {} + + BigQueryJdbcParameter(BigQueryJdbcParameter parameter) { + this.index = parameter.index; + this.value = parameter.value; + this.type = parameter.type; + this.sqlType = parameter.sqlType; + } + + int getIndex() { + return index; + } + + void setIndex(int index) { + this.index = index; + } + + Object getValue() { + return value; + } + + void setValue(Object value) { + this.value = value; + } + + Class getType() { + return type; + } + + public void setType(Class type) { + this.type = type; + } + + StandardSQLTypeName getSqlType() { + return sqlType; + } + + void setSqlType(StandardSQLTypeName sqlType) { + this.sqlType = sqlType; + } + + String getParamName() { + return paramName; + } + + void setParamName(String paramName) { + this.paramName = paramName; + } + + BigQueryStatementParameterType getParamType() { + return paramType; + } + + void setParamType(BigQueryStatementParameterType paramType) { + this.paramType = paramType; + } + + int getScale() { + return scale; + } + + void setScale(int scale) { + this.scale = scale; + } + + @Override + public String toString() { + return "BigQueryJdbcParameter{" + + "index=" + + index + + ", value=" + + value + + ", type=" + + type + + ", sqlType=" + + sqlType + + ", paramName='" + + paramName + + '\'' + + ", paramType=" + + paramType.name() + + ", scale=" + + scale + + '}'; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtility.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtility.java new file mode 100644 index 000000000000..ebc5450b625b --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtility.java @@ -0,0 +1,291 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.storage.v1.stub.BigQueryReadStubSettings.defaultGrpcTransportProviderBuilder; + +import com.google.api.client.http.HttpTransport; +import com.google.api.client.http.apache.v5.Apache5HttpTransport; +import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.auth.http.HttpTransportFactory; +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import com.google.cloud.http.HttpTransportOptions; +import io.grpc.HttpConnectProxiedSocketAddress; +import io.grpc.ProxiedSocketAddress; +import io.grpc.ProxyDetector; +import io.grpc.netty.shaded.io.grpc.netty.GrpcSslContexts; +import io.grpc.netty.shaded.io.netty.handler.ssl.SslContext; +import java.io.FileInputStream; +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.SocketAddress; +import java.security.GeneralSecurityException; +import java.security.KeyStore; +import java.util.HashMap; +import java.util.Map; +import java.util.regex.Pattern; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManagerFactory; +import org.apache.hc.client5.http.auth.AuthScope; +import org.apache.hc.client5.http.auth.UsernamePasswordCredentials; +import org.apache.hc.client5.http.impl.DefaultAuthenticationStrategy; +import org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider; +import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; +import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder; +import org.apache.hc.client5.http.impl.routing.DefaultProxyRoutePlanner; +import org.apache.hc.client5.http.routing.HttpRoutePlanner; +import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory; +import org.apache.hc.core5.http.HttpHost; + +final class BigQueryJdbcProxyUtility { + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryJdbcProxyUtility.class.getName()); + static final String validPortRegex = + "^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$"; + + private BigQueryJdbcProxyUtility() {} + + static Map parseProxyProperties(String URL, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + Map proxyProperties = new HashMap<>(); + String proxyHost = + BigQueryJdbcUrlUtility.parseUriProperty( + URL, BigQueryJdbcUrlUtility.PROXY_HOST_PROPERTY_NAME); + if (proxyHost != null) { + proxyProperties.put(BigQueryJdbcUrlUtility.PROXY_HOST_PROPERTY_NAME, proxyHost); + } + String proxyPort = + BigQueryJdbcUrlUtility.parseUriProperty( + URL, BigQueryJdbcUrlUtility.PROXY_PORT_PROPERTY_NAME); + if (proxyPort != null) { + if (!Pattern.compile(validPortRegex).matcher(proxyPort).find()) { + throw new IllegalArgumentException( + "Illegal port number provided %s. Please provide a valid port number."); + } + proxyProperties.put(BigQueryJdbcUrlUtility.PROXY_PORT_PROPERTY_NAME, proxyPort); + } + String proxyUid = + BigQueryJdbcUrlUtility.parseUriProperty( + URL, BigQueryJdbcUrlUtility.PROXY_USER_ID_PROPERTY_NAME); + if (proxyUid != null) { + proxyProperties.put(BigQueryJdbcUrlUtility.PROXY_USER_ID_PROPERTY_NAME, proxyUid); + } + String proxyPwd = + BigQueryJdbcUrlUtility.parseUriProperty( + URL, BigQueryJdbcUrlUtility.PROXY_PASSWORD_PROPERTY_NAME); + if (proxyPwd != null) { + proxyProperties.put(BigQueryJdbcUrlUtility.PROXY_PASSWORD_PROPERTY_NAME, proxyPwd); + } + + boolean isMissingProxyHostOrPortWhenProxySet = + (proxyHost == null && proxyPort != null) || (proxyHost != null && proxyPort == null); + if (isMissingProxyHostOrPortWhenProxySet) { + throw new IllegalArgumentException( + "Both ProxyHost and ProxyPort parameters need to be specified. No defaulting behavior occurs."); + } + boolean isMissingProxyUidOrPwdWhenAuthSet = + (proxyUid == null && proxyPwd != null) || (proxyUid != null && proxyPwd == null); + if (isMissingProxyUidOrPwdWhenAuthSet) { + throw new IllegalArgumentException( + "Both ProxyUid and ProxyPwd parameters need to be specified for authentication."); + } + boolean isProxyAuthSetWithoutProxySettings = proxyUid != null && proxyHost == null; + if (isProxyAuthSetWithoutProxySettings) { + throw new IllegalArgumentException( + "Proxy authentication provided via connection string with no proxy host or port set."); + } + return proxyProperties; + } + + static HttpTransportOptions getHttpTransportOptions( + Map proxyProperties, + String sslTrustStorePath, + String sslTrustStorePassword, + String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + + if (!proxyProperties.containsKey(BigQueryJdbcUrlUtility.PROXY_HOST_PROPERTY_NAME) + && sslTrustStorePath == null) { + return null; + } + return HttpTransportOptions.newBuilder() + .setHttpTransportFactory( + getHttpTransportFactory( + proxyProperties, sslTrustStorePath, sslTrustStorePassword, callerClassName)) + .build(); + } + + private static HttpTransportFactory getHttpTransportFactory( + Map proxyProperties, + String sslTrustStorePath, + String sslTrustStorePassword, + String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + HttpClientBuilder httpClientBuilder = HttpClients.custom(); + boolean explicitProxySet = + proxyProperties.containsKey(BigQueryJdbcUrlUtility.PROXY_HOST_PROPERTY_NAME); + + if (explicitProxySet) { + HttpHost proxyHostDetails = + new HttpHost( + proxyProperties.get(BigQueryJdbcUrlUtility.PROXY_HOST_PROPERTY_NAME), + Integer.parseInt( + proxyProperties.get(BigQueryJdbcUrlUtility.PROXY_PORT_PROPERTY_NAME))); + HttpRoutePlanner httpRoutePlanner = new DefaultProxyRoutePlanner(proxyHostDetails); + httpClientBuilder.setRoutePlanner(httpRoutePlanner); + addAuthToProxyIfPresent(proxyProperties, httpClientBuilder, callerClassName); + } else { + httpClientBuilder.useSystemProperties(); + } + + if (sslTrustStorePath != null) { + try (FileInputStream trustStoreStream = new FileInputStream(sslTrustStorePath)) { + KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); + char[] trustStorePasswordChars = + sslTrustStorePassword != null ? sslTrustStorePassword.toCharArray() : null; + trustStore.load(trustStoreStream, trustStorePasswordChars); + + TrustManagerFactory trustManagerFactory = + TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + trustManagerFactory.init(trustStore); + + SSLContext sslContext = SSLContext.getInstance("TLS"); + sslContext.init(null, trustManagerFactory.getTrustManagers(), null); + + SSLConnectionSocketFactory sslSocketFactory = new SSLConnectionSocketFactory(sslContext); + httpClientBuilder.setConnectionManager( + PoolingHttpClientConnectionManagerBuilder.create() + .setSSLSocketFactory(sslSocketFactory) + .build()); + } catch (IOException | GeneralSecurityException e) { + throw new BigQueryJdbcRuntimeException(e); + } + } + addAuthToProxyIfPresent(proxyProperties, httpClientBuilder, callerClassName); + + CloseableHttpClient httpClient = httpClientBuilder.build(); + final HttpTransport httpTransport = new Apache5HttpTransport(httpClient); + return () -> httpTransport; + } + + private static void addAuthToProxyIfPresent( + Map proxyProperties, + HttpClientBuilder closeableHttpClientBuilder, + String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + if (proxyProperties.containsKey(BigQueryJdbcUrlUtility.PROXY_USER_ID_PROPERTY_NAME) + && proxyProperties.containsKey(BigQueryJdbcUrlUtility.PROXY_PASSWORD_PROPERTY_NAME)) { + + AuthScope authScope = + new AuthScope( + proxyProperties.get(BigQueryJdbcUrlUtility.PROXY_HOST_PROPERTY_NAME), + Integer.parseInt( + proxyProperties.get(BigQueryJdbcUrlUtility.PROXY_PORT_PROPERTY_NAME))); + UsernamePasswordCredentials usernamePasswordCredentials = + new UsernamePasswordCredentials( + proxyProperties.get(BigQueryJdbcUrlUtility.PROXY_USER_ID_PROPERTY_NAME), + proxyProperties + .get(BigQueryJdbcUrlUtility.PROXY_PASSWORD_PROPERTY_NAME) + .toCharArray()); + + BasicCredentialsProvider proxyCredentialsProvider = new BasicCredentialsProvider(); + proxyCredentialsProvider.setCredentials(authScope, usernamePasswordCredentials); + closeableHttpClientBuilder.setDefaultCredentialsProvider(proxyCredentialsProvider); + closeableHttpClientBuilder.setProxyAuthenticationStrategy( + DefaultAuthenticationStrategy.INSTANCE); // order of challenge? so it will show up + } + } + + static TransportChannelProvider getTransportChannelProvider( + Map proxyProperties, + String sslTrustStorePath, + String sslTrustStorePassword, + String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + boolean hasProxy = proxyProperties.containsKey(BigQueryJdbcUrlUtility.PROXY_HOST_PROPERTY_NAME); + boolean hasSsl = sslTrustStorePath != null; + + if (!hasProxy && !hasSsl) { + return null; + } + + TransportChannelProvider transportChannelProvider = + defaultGrpcTransportProviderBuilder() + .setChannelConfigurator( + managedChannelBuilder -> { + if (hasProxy) { + managedChannelBuilder.proxyDetector( + new ProxyDetector() { + @Override + public ProxiedSocketAddress proxyFor(SocketAddress socketAddress) { + return getHttpConnectProxiedSocketAddress( + (InetSocketAddress) socketAddress, proxyProperties); + } + }); + } + if (hasSsl + && managedChannelBuilder + instanceof io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder) { + try (FileInputStream trustStoreStream = + new FileInputStream(sslTrustStorePath)) { + KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); + char[] trustStorePasswordChars = + sslTrustStorePassword != null + ? sslTrustStorePassword.toCharArray() + : null; + trustStore.load(trustStoreStream, trustStorePasswordChars); + + TrustManagerFactory trustManagerFactory = + TrustManagerFactory.getInstance( + TrustManagerFactory.getDefaultAlgorithm()); + trustManagerFactory.init(trustStore); + + SslContext grpcSslContext = + GrpcSslContexts.forClient().trustManager(trustManagerFactory).build(); + ((io.grpc.netty.shaded.io.grpc.netty.NettyChannelBuilder) + managedChannelBuilder) + .sslContext(grpcSslContext); + + } catch (IOException | GeneralSecurityException e) { + throw new BigQueryJdbcRuntimeException(e); + } + } + return managedChannelBuilder; + }) + .build(); + return transportChannelProvider; + } + + private static HttpConnectProxiedSocketAddress getHttpConnectProxiedSocketAddress( + InetSocketAddress socketAddress, Map proxyProperties) { + String proxyHost = proxyProperties.get(BigQueryJdbcUrlUtility.PROXY_HOST_PROPERTY_NAME); + int proxyPort = + Integer.parseInt(proxyProperties.get(BigQueryJdbcUrlUtility.PROXY_PORT_PROPERTY_NAME)); + HttpConnectProxiedSocketAddress.Builder builder = + HttpConnectProxiedSocketAddress.newBuilder() + .setProxyAddress(new InetSocketAddress(proxyHost, proxyPort)) + .setTargetAddress(socketAddress); + if (proxyProperties.containsKey(BigQueryJdbcUrlUtility.PROXY_USER_ID_PROPERTY_NAME) + && proxyProperties.containsKey(BigQueryJdbcUrlUtility.PROXY_PASSWORD_PROPERTY_NAME)) { + builder.setUsername(proxyProperties.get(BigQueryJdbcUrlUtility.PROXY_USER_ID_PROPERTY_NAME)); + builder.setPassword(proxyProperties.get(BigQueryJdbcUrlUtility.PROXY_PASSWORD_PROPERTY_NAME)); + } + return builder.build(); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcRootLogger.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcRootLogger.java new file mode 100644 index 000000000000..ef963d87d360 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcRootLogger.java @@ -0,0 +1,193 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import java.io.IOException; +import java.lang.management.ManagementFactory; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Optional; +import java.util.logging.ConsoleHandler; +import java.util.logging.FileHandler; +import java.util.logging.Formatter; +import java.util.logging.Handler; +import java.util.logging.Level; +import java.util.logging.LogRecord; +import java.util.logging.Logger; + +/** This class is used to log messages from the BigQuery JDBC Driver. */ +class BigQueryJdbcRootLogger { + + /** + * Note: Each connection will have its own file handler with the level and logPath specified in + * the connection properties. But the logs will be driver logs and not connection specific. + */ + private static final Logger logger = Logger.getLogger("com.google.cloud.bigquery"); + + private static final Logger storageLogger = Logger.getLogger("com.google.cloud.bigquery.storage"); + + private static Handler fileHandler = null; + private static Path currentLogPath = null; + private static int fileCounter = 0; + + static { + logger.setUseParentHandlers(false); + storageLogger.setUseParentHandlers(true); + } + + public static Formatter getFormatter() { + return new Formatter() { + private static final String PATTERN = "yyyy-MM-dd HH:mm:ss.SSS"; + private static final String FORMAT = + "%1$s %2$5s %3$d --- [%4$-7.15s] %5$-50s %6$-20s: %7$s%8$s"; + private static final int MAX_THREAD_NAME_LENGTH = 15; + + /** + * Returns the thread for the given thread id. + * + * @param threadId ID for the thread being logged. + * @return returns the thread + */ + Optional getThread(long threadId) { + return Thread.getAllStackTraces().keySet().stream() + .filter(thread -> thread.getId() == threadId) + .findFirst(); + } + + @Override + public String format(LogRecord record) { + String date = new SimpleDateFormat(PATTERN).format(new Date(record.getMillis())); + String threadName = + getThread(record.getThreadID()) + .map(Thread::getName) + .map( + name -> + name.length() > MAX_THREAD_NAME_LENGTH + ? name.substring(name.length() - MAX_THREAD_NAME_LENGTH) + : name) + .orElse(""); + long processId = + Long.parseLong(ManagementFactory.getRuntimeMXBean().getName().split("@")[0]); + String sourceClassName = record.getLoggerName(); + String sourceMethodName = record.getSourceMethodName(); + return String.format( + FORMAT, + date, + record.getLevel().getName(), + processId, + threadName, + sourceClassName, + sourceMethodName, + record.getMessage(), + System.lineSeparator()); + } + }; + } + + public static Logger getRootLogger() { + return logger; + } + + private static void setHandler() throws IOException { + // If Console handler exists, remove it. + // If File handler exists, use it. Else create new one. + for (Handler h : logger.getHandlers()) { + if (h instanceof ConsoleHandler) { + h.close(); + logger.removeHandler(h); + break; + } + if (h instanceof FileHandler) { + fileHandler = h; + break; + } + } + + if (fileHandler == null) { + String fileName = String.format("BigQueryJdbc%d", fileCounter); + fileCounter++; + + currentLogPath = Files.createTempFile(fileName, ".log"); + currentLogPath.toFile().deleteOnExit(); + + fileHandler = new FileHandler(currentLogPath.toString(), 0, 1, true); + logger.addHandler(fileHandler); + } + } + + public static void setLevel(Level level, String logPath) throws IOException { + if (level != Level.OFF) { + setPath(logPath); + if (logger.getHandlers().length == 0) { + setHandler(); + fileHandler.setFormatter(getFormatter()); + logger.setUseParentHandlers(false); + } + fileHandler.setLevel(level); + logger.setLevel(level); + } else { + for (Handler h : logger.getHandlers()) { + h.close(); + logger.removeHandler(h); + } + fileHandler = null; + currentLogPath = null; + } + } + + static void setPath(String logPath) { + try { + if (!logPath.isEmpty() && !logPath.endsWith("/")) { + logPath = logPath + "/"; + } + Path dir = Paths.get(logPath); + if (!Files.exists(dir)) { + Files.createDirectory(dir); + } + + String fileName = String.format("BigQueryJdbc%d.log", fileCounter); + fileCounter++; + Path destination = Paths.get(logPath + fileName).toAbsolutePath(); + + if (currentLogPath != null && !currentLogPath.equals(destination)) { + Path source = Paths.get(currentLogPath.toUri()); + Files.move(source, destination, StandardCopyOption.REPLACE_EXISTING); + } + + currentLogPath = destination; + fileHandler = new FileHandler(currentLogPath.toString(), 0, 1, true); + fileHandler.setFormatter(getFormatter()); + + for (Handler h : logger.getHandlers()) { + if (h instanceof FileHandler) { + h.close(); + logger.removeHandler(h); + break; + } + } + + logger.addHandler(fileHandler); + + } catch (IOException ex) { + logger.warning("Log File warning : " + ex); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcTypeMappings.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcTypeMappings.java new file mode 100644 index 000000000000..b95ac0230264 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcTypeMappings.java @@ -0,0 +1,159 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.core.InternalApi; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlFeatureNotSupportedException; +import com.google.common.collect.ImmutableMap; +import com.google.gson.JsonObject; +import java.math.BigDecimal; +import java.sql.Array; +import java.sql.Date; +import java.sql.Struct; +import java.sql.Time; +import java.sql.Timestamp; +import java.sql.Types; +import java.util.AbstractMap.SimpleEntry; +import java.util.Map; + +@InternalApi +class BigQueryJdbcTypeMappings { + + static final Map> standardSQLToJavaTypeMapping = + ImmutableMap.ofEntries( + entry(StandardSQLTypeName.INT64, Long.class), + entry(StandardSQLTypeName.BOOL, Boolean.class), + entry(StandardSQLTypeName.FLOAT64, Double.class), + entry(StandardSQLTypeName.NUMERIC, BigDecimal.class), + entry(StandardSQLTypeName.BIGNUMERIC, BigDecimal.class), + entry(StandardSQLTypeName.STRING, String.class), + entry(StandardSQLTypeName.TIMESTAMP, Timestamp.class), + entry(StandardSQLTypeName.DATE, Date.class), + entry(StandardSQLTypeName.TIME, Time.class), + entry(StandardSQLTypeName.DATETIME, Timestamp.class), + entry(StandardSQLTypeName.GEOGRAPHY, String.class), + entry(StandardSQLTypeName.JSON, String.class), + entry(StandardSQLTypeName.INTERVAL, String.class), + entry(StandardSQLTypeName.RANGE, String.class), + entry(StandardSQLTypeName.BYTES, byte[].class), + entry(StandardSQLTypeName.STRUCT, Struct.class), + entry(StandardSQLTypeName.ARRAY, Array.class)); + + static final Map standardSQLToJavaSqlTypesMapping = + ImmutableMap.ofEntries( + entry(StandardSQLTypeName.INT64, Types.BIGINT), + entry(StandardSQLTypeName.BOOL, Types.BOOLEAN), + entry(StandardSQLTypeName.FLOAT64, Types.DOUBLE), + entry(StandardSQLTypeName.NUMERIC, Types.NUMERIC), + entry(StandardSQLTypeName.BIGNUMERIC, Types.NUMERIC), + entry(StandardSQLTypeName.STRING, Types.NVARCHAR), + entry(StandardSQLTypeName.TIMESTAMP, Types.TIMESTAMP), + entry(StandardSQLTypeName.DATE, Types.DATE), + entry(StandardSQLTypeName.TIME, Types.TIME), + entry(StandardSQLTypeName.DATETIME, Types.TIMESTAMP), + entry(StandardSQLTypeName.GEOGRAPHY, Types.OTHER), + entry(StandardSQLTypeName.JSON, Types.OTHER), + entry(StandardSQLTypeName.INTERVAL, Types.OTHER), + entry(StandardSQLTypeName.RANGE, Types.OTHER), + entry(StandardSQLTypeName.BYTES, Types.VARBINARY), + entry(StandardSQLTypeName.STRUCT, Types.STRUCT), + entry(StandardSQLTypeName.ARRAY, Types.ARRAY)); + + static final Map> javaSQLToJavaTypeMapping = + ImmutableMap.ofEntries( + entry(Types.BIGINT, Long.class), + entry(Types.INTEGER, Integer.class), + entry(Types.BOOLEAN, Boolean.class), + entry(Types.DOUBLE, Double.class), + entry(Types.FLOAT, Float.class), + entry(Types.NUMERIC, BigDecimal.class), + entry(Types.VARCHAR, String.class), + entry(Types.NVARCHAR, String.class), + entry(Types.TIMESTAMP, Timestamp.class), + entry(Types.DATE, Date.class), + entry(Types.TIME, Time.class), + entry(Types.OTHER, String.class), + entry(Types.BINARY, byte[].class), + entry(Types.VARBINARY, byte[].class), + entry(Types.STRUCT, Struct.class), + entry(Types.BIT, Boolean.class), + entry(Types.ARRAY, Array.class)); + + static StandardSQLTypeName classToType(Class type) + throws BigQueryJdbcSqlFeatureNotSupportedException { + if (Boolean.class.isAssignableFrom(type)) { + return StandardSQLTypeName.BOOL; + } else if (String.class.isAssignableFrom(type)) { + return StandardSQLTypeName.STRING; + } else if (String.class.isAssignableFrom(type)) { + return StandardSQLTypeName.GEOGRAPHY; + } else if (String.class.isAssignableFrom(type)) { + return StandardSQLTypeName.DATETIME; + } else if (Integer.class.isAssignableFrom(type)) { + return StandardSQLTypeName.INT64; + } else if (Long.class.isAssignableFrom(type)) { + return StandardSQLTypeName.INT64; + } else if (Double.class.isAssignableFrom(type)) { + return StandardSQLTypeName.FLOAT64; + } else if (Float.class.isAssignableFrom(type)) { + return StandardSQLTypeName.FLOAT64; + } else if (BigDecimal.class.isAssignableFrom(type)) { + return StandardSQLTypeName.NUMERIC; + } else if (BigDecimal.class.isAssignableFrom(type)) { + return StandardSQLTypeName.BIGNUMERIC; + } else if (Date.class.isAssignableFrom(type)) { + return StandardSQLTypeName.DATE; + } else if (Timestamp.class.isAssignableFrom(type)) { + return StandardSQLTypeName.TIMESTAMP; + } else if (Time.class.isAssignableFrom(type)) { + return StandardSQLTypeName.TIME; + } else if (String.class.isAssignableFrom(type)) { + return StandardSQLTypeName.JSON; + } else if (JsonObject.class.isAssignableFrom(type)) { + return StandardSQLTypeName.JSON; + } else if (Byte.class.isAssignableFrom(type)) { + return StandardSQLTypeName.BYTES; + } else if (Array.class.isAssignableFrom(type)) { + return StandardSQLTypeName.ARRAY; + } else if (Struct.class.isAssignableFrom(type)) { + return StandardSQLTypeName.STRUCT; + } else if (byte[].class.isAssignableFrom(type)) { + return StandardSQLTypeName.BYTES; + } + throw new BigQueryJdbcSqlFeatureNotSupportedException( + "Unsupported object type for QueryParameter: " + type); + } + + static Class getJavaType(int javaSQLType) throws BigQueryJdbcSqlFeatureNotSupportedException { + if (!javaSQLToJavaTypeMapping.containsKey(javaSQLType)) { + throw new BigQueryJdbcSqlFeatureNotSupportedException( + "Unsupported Java type for SQL type: " + javaSQLType); + } + Class javaType = javaSQLToJavaTypeMapping.get(javaSQLType); + if (javaType == null) { + // This should never happen unless the map was initialized with null values. + throw new BigQueryJdbcSqlFeatureNotSupportedException( + "Unsupported Java type for SQL type: " + javaSQLType); + } + return javaType; + } + + private static SimpleEntry entry(K key, V value) { + return new SimpleEntry<>(key, value); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtility.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtility.java new file mode 100644 index 000000000000..3b26f7be5414 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtility.java @@ -0,0 +1,920 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.client.util.escape.CharEscapers; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Properties; +import java.util.Set; +import java.util.logging.Level; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +/** + * This class implements all the methods that parse Connection property values from the Connection + * String. + */ +final class BigQueryJdbcUrlUtility { + + // TODO: Add all Connection options + static final String ALLOW_LARGE_RESULTS_PROPERTY_NAME = "AllowLargeResults"; + static final String LARGE_RESULTS_TABLE_PROPERTY_NAME = "LargeResultTable"; + static final String LARGE_RESULTS_DATASET_PROPERTY_NAME = "LargeResultDataset"; + static final String UNSUPPORTED_HTAPI_FALLBACK_PROPERTY_NAME = "UnsupportedHTAPIFallback"; + static final boolean DEFAULT_UNSUPPORTED_HTAPI_FALLBACK_VALUE = true; + static final String DESTINATION_DATASET_EXPIRATION_TIME_PROPERTY_NAME = + "LargeResultsDatasetExpirationTime"; + static final long DEFAULT_DESTINATION_DATASET_EXPIRATION_TIME_VALUE = 3600000L; + static final boolean DEFAULT_ALLOW_LARGE_RESULTS = true; + static final String QUERY_DIALECT_PROPERTY_NAME = "QueryDialect"; + static final String DEFAULT_QUERY_DIALECT_VALUE = "SQL"; + static final String UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME = "universeDomain"; + static final String DEFAULT_UNIVERSE_DOMAIN_VALUE = "googleapis.com"; + static final String PROJECT_ID_PROPERTY_NAME = "ProjectId"; + static final String DEFAULT_DATASET_PROPERTY_NAME = "DefaultDataset"; + static final String OAUTH_TYPE_PROPERTY_NAME = "OAuthType"; + static final String HTAPI_ACTIVATION_RATIO_PROPERTY_NAME = "HighThroughputActivationRatio"; + static final String KMS_KEY_NAME_PROPERTY_NAME = "KMSKeyName"; + static final String QUERY_PROPERTIES_NAME = "QueryProperties"; + static final int DEFAULT_HTAPI_ACTIVATION_RATIO_VALUE = + 2; // TODO: to adjust this value before private preview based on performance testing. + static final String HTAPI_MIN_TABLE_SIZE_PROPERTY_NAME = "HighThroughputMinTableSize"; + static final int DEFAULT_HTAPI_MIN_TABLE_SIZE_VALUE = 100; + static final int DEFAULT_OAUTH_TYPE_VALUE = -1; + static final String LOCATION_PROPERTY_NAME = "Location"; + static final String ENDPOINT_OVERRIDES_PROPERTY_NAME = "EndpointOverrides"; + static final String PRIVATE_SERVICE_CONNECT_PROPERTY_NAME = "PrivateServiceConnectUris"; + static final String OAUTH_SA_IMPERSONATION_EMAIL_PROPERTY_NAME = + "ServiceAccountImpersonationEmail"; + static final String DEFAULT_OAUTH_SA_IMPERSONATION_EMAIL_VALUE = null; + static final String OAUTH_SA_IMPERSONATION_CHAIN_PROPERTY_NAME = + "ServiceAccountImpersonationChain"; + static final String DEFAULT_OAUTH_SA_IMPERSONATION_CHAIN_VALUE = null; + static final String OAUTH_SA_IMPERSONATION_SCOPES_PROPERTY_NAME = + "ServiceAccountImpersonationScopes"; + static final String DEFAULT_OAUTH_SA_IMPERSONATION_SCOPES_VALUE = + "https://www.googleapis.com/auth/bigquery"; + static final String OAUTH_SA_IMPERSONATION_TOKEN_LIFETIME_PROPERTY_NAME = + "ServiceAccountImpersonationTokenLifetime"; + static final String DEFAULT_OAUTH_SA_IMPERSONATION_TOKEN_LIFETIME_VALUE = "3600"; + static final String OAUTH_SA_EMAIL_PROPERTY_NAME = "OAuthServiceAcctEmail"; + static final String OAUTH_PVT_KEY_PATH_PROPERTY_NAME = "OAuthPvtKeyPath"; + static final String OAUTH_P12_PASSWORD_PROPERTY_NAME = "OAuthP12Password"; + static final String DEFAULT_OAUTH_P12_PASSWORD_VALUE = "notasecret"; + static final String OAUTH_PVT_KEY_PROPERTY_NAME = "OAuthPvtKey"; + static final String OAUTH2_TOKEN_URI_PROPERTY_NAME = "OAUTH2"; + static final String HTAPI_ENDPOINT_OVERRIDE_PROPERTY_NAME = "READ_API"; + static final String BIGQUERY_ENDPOINT_OVERRIDE_PROPERTY_NAME = "BIGQUERY"; + static final String STS_ENDPOINT_OVERRIDE_PROPERTY_NAME = "STS"; + static final String OAUTH_ACCESS_TOKEN_PROPERTY_NAME = "OAuthAccessToken"; + static final String OAUTH_REFRESH_TOKEN_PROPERTY_NAME = "OAuthRefreshToken"; + static final String OAUTH_CLIENT_ID_PROPERTY_NAME = "OAuthClientId"; + static final String OAUTH_CLIENT_SECRET_PROPERTY_NAME = "OAuthClientSecret"; + static final String ENABLE_HTAPI_PROPERTY_NAME = "EnableHighThroughputAPI"; + static final String PROXY_HOST_PROPERTY_NAME = "ProxyHost"; + static final String PROXY_PORT_PROPERTY_NAME = "ProxyPort"; + static final String PROXY_USER_ID_PROPERTY_NAME = "ProxyUid"; + static final String PROXY_PASSWORD_PROPERTY_NAME = "ProxyPwd"; + static final boolean DEFAULT_ENABLE_HTAPI_VALUE = false; + static final boolean DEFAULT_ENABLE_SESSION_VALUE = false; + static final int DEFAULT_LOG_LEVEL = 0; + static final String LOG_LEVEL_PROPERTY_NAME = "LogLevel"; + static final String LOG_PATH_PROPERTY_NAME = "LogPath"; + static final String LOG_LEVEL_ENV_VAR = "BIGQUERY_JDBC_LOG_LEVEL"; + static final String LOG_PATH_ENV_VAR = "BIGQUERY_JDBC_LOG_PATH"; + static final String ENABLE_SESSION_PROPERTY_NAME = "EnableSession"; + static final String DEFAULT_LOG_PATH = ""; + static final String USE_QUERY_CACHE_PROPERTY_NAME = "UseQueryCache"; + static final boolean DEFAULT_USE_QUERY_CACHE = true; + static final String JOB_CREATION_MODE_PROPERTY_NAME = "JobCreationMode"; + static final int DEFAULT_JOB_CREATION_MODE = 2; + static final String MAX_RESULTS_PROPERTY_NAME = "MaxResults"; + static final long DEFAULT_MAX_RESULTS_VALUE = 10000; + static final String BYOID_AUDIENCE_URI_PROPERTY_NAME = "BYOID_AudienceUri"; + static final String BYOID_CREDENTIAL_SOURCE_PROPERTY_NAME = "BYOID_CredentialSource"; + static final String BYOID_POOL_USER_PROJECT_PROPERTY_NAME = "BYOID_PoolUserProject"; + static final String BYOID_SA_IMPERSONATION_URI_PROPERTY_NAME = "BYOID_SA_Impersonation_Uri"; + static final String BYOID_SUBJECT_TOKEN_TYPE_PROPERTY_NAME = "BYOID_SubjectTokenType"; + static final String BYOID_TOKEN_URI_PROPERTY_NAME = "BYOID_TokenUri"; + static final String PARTNER_TOKEN_PROPERTY_NAME = "PartnerToken"; + static final String METADATA_FETCH_THREAD_COUNT_PROPERTY_NAME = "MetaDataFetchThreadCount"; + static final int DEFAULT_METADATA_FETCH_THREAD_COUNT_VALUE = 32; + static final String RETRY_TIMEOUT_IN_SECS_PROPERTY_NAME = "Timeout"; + static final long DEFAULT_RETRY_TIMEOUT_IN_SECS_VALUE = 0L; + static final String JOB_TIMEOUT_PROPERTY_NAME = "JobTimeout"; + static final long DEFAULT_JOB_TIMEOUT_VALUE = 0L; + static final String RETRY_INITIAL_DELAY_PROPERTY_NAME = "RetryInitialDelay"; + static final long DEFAULT_RETRY_INITIAL_DELAY_VALUE = 0L; + static final String RETRY_MAX_DELAY_PROPERTY_NAME = "RetryMaxDelay"; + static final long DEFAULT_RETRY_MAX_DELAY_VALUE = 0L; + static final String ADDITIONAL_PROJECTS_PROPERTY_NAME = "AdditionalProjects"; + // Applicable only for connection pooling. + static final String CONNECTION_POOL_SIZE_PROPERTY_NAME = "ConnectionPoolSize"; + static final long DEFAULT_CONNECTION_POOL_SIZE_VALUE = 10L; + static final String LISTENER_POOL_SIZE_PROPERTY_NAME = "ListenerPoolSize"; + static final long DEFAULT_LISTENER_POOL_SIZE_VALUE = 10L; + static final String ENABLE_WRITE_API_PROPERTY_NAME = "EnableWriteAPI"; + static final boolean DEFAULT_ENABLE_WRITE_API_VALUE = false; + static final String SWA_APPEND_ROW_COUNT_PROPERTY_NAME = "SWA_AppendRowCount"; + static final int DEFAULT_SWA_APPEND_ROW_COUNT_VALUE = 1000; + static final String SWA_ACTIVATION_ROW_COUNT_PROPERTY_NAME = "SWA_ActivationRowCount"; + static final int DEFAULT_SWA_ACTIVATION_ROW_COUNT_VALUE = 3; + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryJdbcUrlUtility.class.getName()); + static final String FILTER_TABLES_ON_DEFAULT_DATASET_PROPERTY_NAME = + "FilterTablesOnDefaultDataset"; + static final boolean DEFAULT_FILTER_TABLES_ON_DEFAULT_DATASET_VALUE = false; + static final String REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME = "RequestGoogleDriveScope"; + static final String SSL_TRUST_STORE_PROPERTY_NAME = "SSLTrustStore"; + static final String SSL_TRUST_STORE_PWD_PROPERTY_NAME = "SSLTrustStorePwd"; + static final int DEFAULT_REQUEST_GOOGLE_DRIVE_SCOPE_VALUE = 0; + static final String MAX_BYTES_BILLED_PROPERTY_NAME = "MaximumBytesBilled"; + static final Long DEFAULT_MAX_BYTES_BILLED_VALUE = 0L; + static final String LABELS_PROPERTY_NAME = "Labels"; + static final List OVERRIDE_PROPERTIES = + Arrays.asList( + BIGQUERY_ENDPOINT_OVERRIDE_PROPERTY_NAME, + OAUTH2_TOKEN_URI_PROPERTY_NAME, + HTAPI_ENDPOINT_OVERRIDE_PROPERTY_NAME, + STS_ENDPOINT_OVERRIDE_PROPERTY_NAME); + static final List BYOID_PROPERTIES = + Arrays.asList( + BYOID_AUDIENCE_URI_PROPERTY_NAME, + BYOID_CREDENTIAL_SOURCE_PROPERTY_NAME, + BYOID_POOL_USER_PROJECT_PROPERTY_NAME, + BYOID_SA_IMPERSONATION_URI_PROPERTY_NAME, + BYOID_SUBJECT_TOKEN_TYPE_PROPERTY_NAME, + BYOID_TOKEN_URI_PROPERTY_NAME); + + static Set PROXY_PROPERTIES = + Collections.unmodifiableSet( + new HashSet<>( + Arrays.asList( + BigQueryConnectionProperty.newBuilder() + .setName(PROXY_HOST_PROPERTY_NAME) + .setDescription("The host name of the proxy server.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(PROXY_PORT_PROPERTY_NAME) + .setDescription( + "The port number of the proxy server to connect to. No defaulting" + + " behavior happens.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(PROXY_USER_ID_PROPERTY_NAME) + .setDescription("The user name for an authenticated proxy server.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(PROXY_PASSWORD_PROPERTY_NAME) + .setDescription("The password for an authenticated proxy server.") + .build()))); + + static Set AUTH_PROPERTIES = + Collections.unmodifiableSet( + new HashSet<>( + Arrays.asList( + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_TYPE_PROPERTY_NAME) + .setDescription( + "This option specifies how the connector obtains or provides the" + + " credentials for OAuth\n" + + "2.0 authentication") + .setDefaultValue(String.valueOf(DEFAULT_OAUTH_TYPE_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_SA_EMAIL_PROPERTY_NAME) + .setDescription( + "The Service Account email use for Service Account Authentication.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_PVT_KEY_PATH_PROPERTY_NAME) + .setDescription( + "The location of the credentials file used for this connection.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_PVT_KEY_PROPERTY_NAME) + .setDescription("The OAuth private key used for this connection.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_REFRESH_TOKEN_PROPERTY_NAME) + .setDescription( + "The pre-generated refresh token to be used with BigQuery for" + + " authentication.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_ACCESS_TOKEN_PROPERTY_NAME) + .setDescription( + "The pre-generated access token to be used with BigQuery for" + + " authentication.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_CLIENT_ID_PROPERTY_NAME) + .setDescription( + "The client ID to be used for user authentication or to refresh" + + " pre-generated tokens.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_CLIENT_SECRET_PROPERTY_NAME) + .setDescription( + "The client secret to be used for user authentication or to refresh" + + " pre-generated tokens.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_SA_IMPERSONATION_EMAIL_PROPERTY_NAME) + .setDescription("The service account email to be impersonated.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_SA_IMPERSONATION_CHAIN_PROPERTY_NAME) + .setDescription( + "Comma separated list of service account emails in the impersonation chain.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_SA_IMPERSONATION_SCOPES_PROPERTY_NAME) + .setDescription( + "Comma separated list of OAuth2 scopes to use with impersonated account.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_SA_IMPERSONATION_TOKEN_LIFETIME_PROPERTY_NAME) + .setDescription("Impersonated account token lifetime.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(OAUTH_P12_PASSWORD_PROPERTY_NAME) + .setDescription("Password for p12 secret file.") + .build()))); + + static Set VALID_PROPERTIES = + Collections.unmodifiableSet( + new HashSet<>( + Arrays.asList( + BigQueryConnectionProperty.newBuilder() + .setName(MAX_BYTES_BILLED_PROPERTY_NAME) + .setDescription( + " Limits the bytes billed for this query. Queries with bytes billed above" + + " this limit will fail (without incurring a charge). If" + + " unspecified, the project default is used.") + .setDefaultValue(String.valueOf(DEFAULT_MAX_BYTES_BILLED_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(CONNECTION_POOL_SIZE_PROPERTY_NAME) + .setDescription("Connection pool size if connection pooling is enabled.") + .setDefaultValue(String.valueOf(DEFAULT_CONNECTION_POOL_SIZE_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(LISTENER_POOL_SIZE_PROPERTY_NAME) + .setDescription("Listener pool size if connection pooling is enabled.") + .setDefaultValue(String.valueOf(DEFAULT_LISTENER_POOL_SIZE_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(RETRY_INITIAL_DELAY_PROPERTY_NAME) + .setDescription("Initial delay, in seconds, before the first retry.") + .setDefaultValue(String.valueOf(DEFAULT_RETRY_INITIAL_DELAY_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(RETRY_MAX_DELAY_PROPERTY_NAME) + .setDescription("Max limit for the retry delay, in seconds.") + .setDefaultValue(String.valueOf(DEFAULT_RETRY_MAX_DELAY_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(RETRY_TIMEOUT_IN_SECS_PROPERTY_NAME) + .setDescription( + "The length of time, in seconds, for which the connector retries a failed" + + " API call before timing out.") + .setDefaultValue(String.valueOf(DEFAULT_RETRY_TIMEOUT_IN_SECS_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(JOB_TIMEOUT_PROPERTY_NAME) + .setDescription( + "Job timeout (in seconds) after which the job is cancelled on the server") + .setDefaultValue(String.valueOf(DEFAULT_JOB_TIMEOUT_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(UNSUPPORTED_HTAPI_FALLBACK_PROPERTY_NAME) + .setDescription( + "This option determines whether the connector uses the REST API or" + + " returns an error when encountering fetch workflows unsupported by" + + " the High-Throughput API.") + .setDefaultValue(String.valueOf(DEFAULT_UNSUPPORTED_HTAPI_FALLBACK_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(DESTINATION_DATASET_EXPIRATION_TIME_PROPERTY_NAME) + .setDescription( + "The expiration time (in milliseconds) for tables in a user-specified" + + " large result dataset.") + .setDefaultValue( + String.valueOf(DEFAULT_DESTINATION_DATASET_EXPIRATION_TIME_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME) + .setDescription( + "The name of the partner-operated cloud which is a new instance of Google" + + " production, known as a Trusted Partner Cloud universe.") + .setDefaultValue(DEFAULT_UNIVERSE_DOMAIN_VALUE) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(PROJECT_ID_PROPERTY_NAME) + .setDescription("A globally unique identifier for your project.") + .setDefaultValue(BigQueryOptions.getDefaultProjectId()) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(LOG_PATH_PROPERTY_NAME) + .setDescription( + "The directory where the connector saves log files (when logging is" + + " enabled).") + .setDefaultValue(DEFAULT_LOG_PATH) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(DEFAULT_DATASET_PROPERTY_NAME) + .setDescription( + "This default dataset for query execution. If this option is set, queries" + + " with unqualified \n" + + "table names will run against this dataset.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(LOCATION_PROPERTY_NAME) + .setDescription( + "The location where datasets are created/queried. The location will be" + + " determined\n" + + " automatically by BigQuery if not specified.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(ENABLE_HTAPI_PROPERTY_NAME) + .setDescription( + "Enables or disables Read API usage in the Driver. Disabled by default.") + .setDefaultValue(String.valueOf(DEFAULT_ENABLE_HTAPI_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(HTAPI_ACTIVATION_RATIO_PROPERTY_NAME) + .setDescription( + "Connector switches to BigQuery Storage API when the number of pages" + + " exceed this value.") + .setDefaultValue(String.valueOf(DEFAULT_HTAPI_ACTIVATION_RATIO_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(KMS_KEY_NAME_PROPERTY_NAME) + .setDescription( + "The KMS key name tells BigQuery which key to use when encrypting or" + + " decrypting your data.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(QUERY_PROPERTIES_NAME) + .setDescription( + "Connection-level properties to customize query behavior.") // TODO: + // Figure out + // a clean way + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(LABELS_PROPERTY_NAME) + .setDescription( + "Labels associated with the query to organize and group query jobs.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(HTAPI_MIN_TABLE_SIZE_PROPERTY_NAME) + .setDescription( + "If the number of total rows exceeds this value, the connector switches" + + " to the BigQuery Storage API for faster processing.") + .setDefaultValue(String.valueOf(DEFAULT_HTAPI_MIN_TABLE_SIZE_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(ENABLE_SESSION_PROPERTY_NAME) + .setDescription( + "Enable to capture your SQL activities or enable multi statement" + + " transactions. Disabled by default.") + .setDefaultValue(String.valueOf(DEFAULT_ENABLE_SESSION_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(LOG_LEVEL_PROPERTY_NAME) + .setDescription( + "Sets the Log Level for the Driver. Set to Level.OFF by default.") + .setDefaultValue(String.valueOf(DEFAULT_LOG_LEVEL)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(USE_QUERY_CACHE_PROPERTY_NAME) + .setDescription("Enables or disables Query caching. Set to true by default.") + .setDefaultValue(String.valueOf(DEFAULT_USE_QUERY_CACHE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(QUERY_DIALECT_PROPERTY_NAME) + .setDescription( + "Parameter for selecting if the queries should use standard or legacy SQL" + + " syntax.") + .setDefaultValue(DEFAULT_QUERY_DIALECT_VALUE) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(ALLOW_LARGE_RESULTS_PROPERTY_NAME) + .setDescription( + "Enabled by default, must be used with legacy SQL. Used for setting" + + " destination table & dataset.") + .setDefaultValue(String.valueOf(DEFAULT_ALLOW_LARGE_RESULTS)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(LARGE_RESULTS_TABLE_PROPERTY_NAME) + .setDescription("The destination table where queries are saved.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(LARGE_RESULTS_DATASET_PROPERTY_NAME) + .setDescription("The destination dataset where queries are saved.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(JOB_CREATION_MODE_PROPERTY_NAME) + .setDescription( + "Enables or disables Stateless Query mode. Set to false by default.") + .setDefaultValue(String.valueOf(DEFAULT_JOB_CREATION_MODE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(MAX_RESULTS_PROPERTY_NAME) + .setDescription("Maximum number of results per page") + .setDefaultValue(String.valueOf(DEFAULT_MAX_RESULTS_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(BYOID_AUDIENCE_URI_PROPERTY_NAME) + .setDescription( + "Used for External Account Authentication. Corresponds to the audience" + + " property\n" + + " in the external account configuration file.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(BYOID_CREDENTIAL_SOURCE_PROPERTY_NAME) + .setDescription( + "Used for External Account Authentication. The file location or the URI" + + " of\n" + + " the subject token. Corresponds to the credential_source property" + + " in\n" + + " the external account configuration file.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(BYOID_POOL_USER_PROJECT_PROPERTY_NAME) + .setDescription( + "Used for External Account Authentication. The project number associated" + + " with\n" + + " the workforce pool. Corresponds to the" + + " workforce_pool_user_project\n" + + " property in the external account configuration file.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(BYOID_SA_IMPERSONATION_URI_PROPERTY_NAME) + .setDescription( + "Used for External Account Authentication. The service account email." + + " Only\n" + + " present when service account impersonation is used. Corresponds" + + " to\n" + + " the service_account_impersonation_url property in the external" + + " account\n" + + " configuration file.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(BYOID_SUBJECT_TOKEN_TYPE_PROPERTY_NAME) + .setDescription( + "Used for External Account Authentication. The subject token type." + + " Corresponds\n" + + " to the subject_token_type property in the external account" + + " configuration file.") + .setDefaultValue("urn:ietf:params:oauth:tokentype:id_token") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(BYOID_TOKEN_URI_PROPERTY_NAME) + .setDescription( + "Used for External Account Authentication. The URI used to generate" + + " authentication\n" + + " tokens. Corresponds to the token_url property in the external" + + " account\n" + + " configuration file.") + .setDefaultValue("https://sts.googleapis.com/v1/token") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(PARTNER_TOKEN_PROPERTY_NAME) + .setDescription("The partner name and environment.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(METADATA_FETCH_THREAD_COUNT_PROPERTY_NAME) + .setDescription( + "The number of threads used to call a DatabaseMetaData method.") + .setDefaultValue(String.valueOf(DEFAULT_METADATA_FETCH_THREAD_COUNT_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(ENABLE_WRITE_API_PROPERTY_NAME) + .setDescription( + "Enables or disables Write API usage for bulk inserts in the Driver." + + " Disabled by default.") + .setDefaultValue(String.valueOf(DEFAULT_ENABLE_WRITE_API_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(SWA_ACTIVATION_ROW_COUNT_PROPERTY_NAME) + .setDescription( + "Connector switches to BigQuery Storage Write API when the number of rows" + + " for executeBatch insert exceed this value. Do not change unless" + + " necessary.") + .setDefaultValue(String.valueOf(DEFAULT_SWA_ACTIVATION_ROW_COUNT_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(SWA_APPEND_ROW_COUNT_PROPERTY_NAME) + .setDescription("Size of the write stream. Do not change unless necessary.") + .setDefaultValue(String.valueOf(DEFAULT_SWA_APPEND_ROW_COUNT_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(ADDITIONAL_PROJECTS_PROPERTY_NAME) + .setDescription( + "A comma-separated list of Google Cloud project IDs that can be accessed" + + " for querying, in addition to the primary project specified in the" + + " connection.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(FILTER_TABLES_ON_DEFAULT_DATASET_PROPERTY_NAME) + .setDescription( + "If true and DefaultDataset is set, DatabaseMetaData.getTables() and" + + " .getColumns() will filter results based on the DefaultDataset" + + " when catalog/schema patterns are null or wildcards.") + .setDefaultValue( + String.valueOf(DEFAULT_FILTER_TABLES_ON_DEFAULT_DATASET_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME) + .setDescription( + "Enables or disables whether the connector requests access to Google" + + " Drive. Set to false (0) by default.") + .setDefaultValue(String.valueOf(DEFAULT_REQUEST_GOOGLE_DRIVE_SCOPE_VALUE)) + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(SSL_TRUST_STORE_PROPERTY_NAME) + .setDescription( + "The full path of the Java TrustStore containing the server certificate" + + " for one-way SSL authentication.\n" + + "If the trust store requires a password, provide it using the" + + " property SSLTrustStorePwd.") + .build(), + BigQueryConnectionProperty.newBuilder() + .setName(SSL_TRUST_STORE_PWD_PROPERTY_NAME) + .setDescription( + "The password for accessing the Java TrustStore that is specified using" + + " the property SSLTrustStore.") + .build()))); + + private BigQueryJdbcUrlUtility() {} + + /** + * Parses a URI property from the given URI. + * + * @param uri The URI to parse. + * @param property The name of the property to parse. + * @return The String value of the property, or the default value if the property is not found. + */ + static String parseUriProperty(String uri, String property) { + Pattern pattern = Pattern.compile(String.format("(?is)(?:;|\\?)%s=(.*?)(?:;|$)", property)); + Matcher matcher = pattern.matcher(uri); + if (matcher.find() && matcher.groupCount() == 1) { + return CharEscapers.decodeUriPath(matcher.group(1)); + } + return null; + } + + /** + * Appends the given properties to the given URL. + * + * @param url The URL to append the properties to. + * @param properties The properties to append. + * @return The string value of the updated URL. + */ + static String appendPropertiesToURL(String url, String callerClassName, Properties properties) { + LOG.finest("++enter++ " + callerClassName); + StringBuilder urlBuilder = new StringBuilder(url); + for (Entry entry : properties.entrySet()) { + if (entry.getValue() != null && !"".equals(entry.getValue())) { + LOG.info( + String.format("Appending %s with value %s to URL", entry.getKey(), entry.getValue())); + urlBuilder.append(";").append(entry.getKey()).append("=").append(entry.getValue()); + } + } + return urlBuilder.toString(); + } + + static boolean convertIntToBoolean(String value, String propertyName) { + int integerValue; + + try { + if (value.equalsIgnoreCase("true")) { + integerValue = 1; + } else if (value.equalsIgnoreCase("false")) { + integerValue = 0; + } else { + integerValue = Integer.parseInt(value); + } + + } catch (NumberFormatException ex) { + throw new IllegalArgumentException( + String.format( + "Invalid value for %s. For Boolean connection properties, use 0 for false and 1 for" + + " true.", + propertyName), + ex); + } + if (integerValue == 1) { + return true; + } else if (integerValue == 0) { + return false; + } else { + throw new IllegalArgumentException( + String.format( + "Invalid value for %s. For Boolean connection properties, use 0 for false and 1 for" + + " true.", + propertyName)); + } + } + + // todo just make it a map + static Map parseQueryProperties(String url, String callerClassName) { + return parsePropertiesMap(url, QUERY_PROPERTIES_NAME, callerClassName); + } + + static Map parseLabels(String url, String callerClassName) { + return parsePropertiesMap(url, LABELS_PROPERTY_NAME, callerClassName); + } + + static String parseStringProperty( + String url, String propertyName, String defaultValue, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + String parsedValue = BigQueryJdbcUrlUtility.parseUriProperty(url, propertyName); + if (parsedValue != null) { + return parsedValue; + } + return defaultValue; + } + + static List parseStringListProperty( + String url, String propertyName, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + String rawValue = parseStringProperty(url, propertyName, null, callerClassName); + if (rawValue == null || rawValue.trim().isEmpty()) { + return Collections.emptyList(); + } + return Arrays.stream(rawValue.split(",")) + .map(String::trim) + .filter(s -> !s.isEmpty()) + .collect(Collectors.toList()); + } + + public static String parsePartnerTokenProperty(String url, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + // This property is expected to be set by partners only. For more details on exact format + // supported, refer b/396086960 + String regex = + PARTNER_TOKEN_PROPERTY_NAME + "=\\s*\\(\\s*(GPN:[^;]*?)\\s*(?:;\\s*([^)]*?))?\\s*\\)"; + Pattern pattern = Pattern.compile(regex); + Matcher matcher = pattern.matcher(url); + + if (matcher.find()) { + String gpnPart = matcher.group(1); + String environmentPart = matcher.group(2); + StringBuilder partnerToken = new StringBuilder(" ("); + partnerToken.append(gpnPart); + if (environmentPart != null && !environmentPart.trim().isEmpty()) { + partnerToken.append("; "); + partnerToken.append(environmentPart); + } + partnerToken.append(")"); + return partnerToken.toString(); + } + return null; + } + + static Integer parseIntProperty( + String url, String propertyName, Integer defaultValue, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + String parsedValue = BigQueryJdbcUrlUtility.parseUriProperty(url, propertyName); + if (parsedValue != null) { + try { + return Integer.parseInt(parsedValue); + } catch (NumberFormatException e) { + LOG.severe( + String.format( + "Invalid integer value '%s' for property '%s'. Please provide a valid integer.", + parsedValue, propertyName)); + throw new IllegalArgumentException( + String.format("Invalid integer value for property '%s': %s", propertyName, parsedValue), + e); + } + } + return defaultValue; + } + + static Long parseLongProperty( + String url, String propertyName, Long defaultValue, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + String parsedValue = BigQueryJdbcUrlUtility.parseUriProperty(url, propertyName); + if (parsedValue != null) { + return Long.parseLong(parsedValue); + } + return defaultValue; + } + + static Boolean parseBooleanProperty( + String url, String propertyName, Boolean defaultValue, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + String parsedValue = BigQueryJdbcUrlUtility.parseUriProperty(url, propertyName); + if (parsedValue != null) { + return convertIntToBoolean(parsedValue, propertyName); + } + return defaultValue; + } + + public static Level parseLogLevel(String logLevelString) { + int logLevel = logLevelString != null ? Integer.parseInt(logLevelString) : DEFAULT_LOG_LEVEL; + switch (logLevel) { + case 8: + return Level.ALL; + case 7: + return Level.FINEST; + case 6: + return Level.FINER; + case 5: + return Level.FINE; + case 4: + return Level.CONFIG; + case 3: + return Level.INFO; + case 2: + return Level.WARNING; + case 1: + return Level.SEVERE; + case 0: + default: + LOG.info( + String.format( + "%s value not provided, defaulting to %s.", LOG_LEVEL_PROPERTY_NAME, Level.OFF)); + return Level.OFF; + } + } + + static Map parseOverrideProperties(String url, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + Map overrideProps = new HashMap<>(); + Pattern pattern = + Pattern.compile( + String.format( + "(?is)(%s|%s)=([^;]+)", + ENDPOINT_OVERRIDES_PROPERTY_NAME, PRIVATE_SERVICE_CONNECT_PROPERTY_NAME)); + Matcher matcher = pattern.matcher(url); + String overridePropertiesString; + if (matcher.find() && matcher.groupCount() >= 1) { + overridePropertiesString = matcher.group(2); + } else { + return overrideProps; + } + for (String property : OVERRIDE_PROPERTIES) { + Pattern propertyPattern = Pattern.compile(String.format("(?i)%s=(.*?)(?:[,;]|$)", property)); + Matcher propertyMatcher = propertyPattern.matcher(overridePropertiesString); + if (propertyMatcher.find() && propertyMatcher.groupCount() >= 1) { + overrideProps.put(property, propertyMatcher.group(1)); + } + } + return overrideProps; + } + + public static boolean parseJobCreationMode(String url, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + + String jobCreationMode = + BigQueryJdbcUrlUtility.parseUriProperty(url, JOB_CREATION_MODE_PROPERTY_NAME); + + if (jobCreationMode == null) { + LOG.fine( + String.format( + "%s value not provided, defaulting to %s. Caller: %s", + JOB_CREATION_MODE_PROPERTY_NAME, DEFAULT_JOB_CREATION_MODE, callerClassName)); + // Default Job creation mode is JOB_CREATION_OPTIONAL(2) + // which translates to options.setQueryPreviewEnabled(true) + return true; + } + if (jobCreationMode.equalsIgnoreCase("1")) { + return false; + } else if (jobCreationMode.equalsIgnoreCase("2")) { + return true; + } else { + throw new NumberFormatException( + String.format( + "Invalid value for %s. Use 1 for JOB_CREATION_REQUIRED and 2 for" + + " JOB_CREATION_OPTIONAL.", + JOB_CREATION_MODE_PROPERTY_NAME)); + } + } + + public static String parseBYOIDProperty(String url, String property, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + + String value = BigQueryJdbcUrlUtility.parseUriProperty(url, property); + String defaultValue = BigQueryJdbcUrlUtility.getConnectionPropertyDefaultValue(property); + if (value != null) { + return value; + } else if (defaultValue != null) { + return defaultValue; + } + return null; + } + + public static String getConnectionPropertyDefaultValue(String propertyName) { + // TODO: change how we store properties because this method has to go through all of them + for (BigQueryConnectionProperty property : VALID_PROPERTIES) { + if (property.getName().equals(propertyName)) { + return property.getDefaultValue(); + } + } + return null; + } + + public static long parseRetryTimeoutInSecs(String url, String callerClassName) { + return BigQueryJdbcUrlUtility.parseLongProperty( + url, + RETRY_TIMEOUT_IN_SECS_PROPERTY_NAME, + DEFAULT_RETRY_TIMEOUT_IN_SECS_VALUE, + callerClassName); + } + + public static long parseJobTimeout(String url, String callerClassName) { + return parseLongProperty( + url, JOB_TIMEOUT_PROPERTY_NAME, DEFAULT_JOB_TIMEOUT_VALUE, callerClassName); + } + + public static long parseRetryInitialDelayInSecs(String url, String callerClassName) { + return BigQueryJdbcUrlUtility.parseLongProperty( + url, RETRY_INITIAL_DELAY_PROPERTY_NAME, DEFAULT_RETRY_INITIAL_DELAY_VALUE, callerClassName); + } + + public static long parseRetryMaxDelayInSecs(String url, String callerClassName) { + return BigQueryJdbcUrlUtility.parseLongProperty( + url, RETRY_MAX_DELAY_PROPERTY_NAME, DEFAULT_RETRY_MAX_DELAY_VALUE, callerClassName); + } + + // Convenience Helper Methods + public static long parseConnectionPoolSize(String url, String callerClassName) { + if (url == null || url.isEmpty()) { + throw new BigQueryJdbcRuntimeException("Connection url is empty"); + } + return parseLongProperty( + url, + CONNECTION_POOL_SIZE_PROPERTY_NAME, + DEFAULT_CONNECTION_POOL_SIZE_VALUE, + callerClassName); + } + + public static long parseListenerPoolSize(String url, String callerClassName) { + if (url == null || url.isEmpty()) { + throw new BigQueryJdbcRuntimeException("Connection url is empty"); + } + return parseLongProperty( + url, LISTENER_POOL_SIZE_PROPERTY_NAME, DEFAULT_LISTENER_POOL_SIZE_VALUE, callerClassName); + } + + public static long parseMaximumBytesBilled(String url, String callerClassName) { + if (url == null || url.isEmpty()) { + throw new BigQueryJdbcRuntimeException("Connection url is empty"); + } + return parseLongProperty( + url, MAX_BYTES_BILLED_PROPERTY_NAME, DEFAULT_MAX_BYTES_BILLED_VALUE, callerClassName); + } + + private static Map parsePropertiesMap( + String url, String propertyName, String callerClassName) { + LOG.finest("++enter++\t" + callerClassName); + String propertiesString = BigQueryJdbcUrlUtility.parseUriProperty(url, propertyName); + if (propertiesString == null || propertiesString.isEmpty()) { + LOG.fine(String.format("Unable to parse property name: %s from url: %s", propertyName, url)); + return null; + } + Map propertiesMap = new HashMap<>(); + String[] keyValuePairs = propertiesString.split(","); + + for (String keyValuePair : keyValuePairs) { + String[] parts = keyValuePair.split("="); + if (parts.length == 2) { + propertiesMap.put(parts[0], parts[1]); + } else { + LOG.warning( + String.format( + "Invalid KeyValue pair: %s found in url: %s for property name: %s", + keyValuePair, url, propertyName)); + } + } + return propertiesMap; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArray.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArray.java new file mode 100644 index 000000000000..3b557a15a725 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArray.java @@ -0,0 +1,105 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.BigQueryFieldValueListWrapper.getNestedFieldValueListWrapper; + +import com.google.api.core.InternalApi; +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.Schema; +import java.sql.ResultSet; +import java.util.List; + +/** An implementation of {@link BigQueryBaseArray} used to represent Array values from Json data. */ +@InternalApi +class BigQueryJsonArray extends BigQueryBaseArray { + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryJsonArray.class.getName()); + private static final BigQueryTypeCoercer BIGQUERY_TYPE_COERCER = + BigQueryTypeCoercionUtility.INSTANCE; + private List values; + + BigQueryJsonArray(Field schema, FieldValue values) { + super(schema); + this.values = (values == null || values.isNull()) ? null : values.getRepeatedValue(); + } + + @Override + public Object getArray() { + ensureValid(); + LOG.finest("++enter++"); + if (this.values == null) { + return null; + } + return getArrayInternal(0, this.values.size()); + } + + @Override + public Object getArray(long index, int count) { + ensureValid(); + LOG.finest("++enter++"); + if (this.values == null) { + return null; + } + Tuple range = createRange(index, count, this.values.size()); + return getArrayInternal(range.x(), range.y()); + } + + @Override + public ResultSet getResultSet() { + ensureValid(); + LOG.finest("++enter++"); + if (this.values == null) { + return new BigQueryJsonResultSet(); + } + BigQueryFieldValueListWrapper bigQueryFieldValueListWrapper = + getNestedFieldValueListWrapper(FieldList.of(singleElementSchema()), this.values); + return BigQueryJsonResultSet.getNestedResultSet( + Schema.of(this.schema), bigQueryFieldValueListWrapper, 0, this.values.size()); + } + + @Override + public ResultSet getResultSet(long index, int count) { + ensureValid(); + LOG.finest("++enter++"); + if (this.values == null) { + return new BigQueryJsonResultSet(); + } + Tuple range = createRange(index, count, this.values.size()); + BigQueryFieldValueListWrapper bigQueryFieldValueListWrapper = + getNestedFieldValueListWrapper(FieldList.of(singleElementSchema()), this.values); + return BigQueryJsonResultSet.getNestedResultSet( + Schema.of(this.schema), bigQueryFieldValueListWrapper, range.x(), range.y()); + } + + @Override + public void free() { + this.values = null; + markInvalid(); + } + + @Override + Object getCoercedValue(int index) { + FieldValue fieldValue = this.values.get(index); + return this.arrayOfStruct + ? new BigQueryJsonStruct(this.schema.getSubFields(), fieldValue) + : BIGQUERY_TYPE_COERCER.coerceTo(getTargetClass(), fieldValue); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSet.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSet.java new file mode 100644 index 000000000000..f9d7b115386d --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSet.java @@ -0,0 +1,317 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.BigQueryBaseArray.isArray; +import static com.google.cloud.bigquery.jdbc.BigQueryBaseStruct.isStruct; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.FieldValue.Attribute; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.concurrent.BlockingQueue; + +/** {@link ResultSet} Implementation for JSON datasource (Using REST APIs) */ +class BigQueryJsonResultSet extends BigQueryBaseResultSet { + private final long totalRows; + private final BlockingQueue buffer; + private boolean hasReachedEnd = false; + // Points to the current record + private BigQueryFieldValueListWrapper cursor; + // Tracks the index of the nested element under process + private int nestedRowIndex; + private long rowCnt = 0; + private boolean afterLast = false; + private final int fromIndex; + private final int toIndexExclusive; + private final Thread[] ownedThreads; + + private BigQueryJsonResultSet( + Schema schema, + long totalRows, + BlockingQueue buffer, + BigQueryStatement statement, + boolean isNested, + BigQueryFieldValueListWrapper cursor, + int fromIndex, + int toIndexExclusive, + Thread[] ownedThreads, + BigQuery bigQuery) { + super(bigQuery, statement, schema, isNested); + this.totalRows = totalRows; + this.buffer = buffer; + this.cursor = cursor; + this.fromIndex = fromIndex; + this.toIndexExclusive = toIndexExclusive; + this.nestedRowIndex = fromIndex - 1; + this.ownedThreads = ownedThreads; + } + + /** + * This method returns an instance of BigQueryJsonResultSet after adding it in the list of + * JsonResultSetFinalizer + * + * @return BigQueryJsonResultSet + */ + static BigQueryJsonResultSet of( + Schema schema, + long totalRows, + BlockingQueue buffer, + BigQueryStatement statement, + Thread[] ownedThreads, + BigQuery bigQuery) { + + return new BigQueryJsonResultSet( + schema, totalRows, buffer, statement, false, null, -1, -1, ownedThreads, bigQuery); + } + + static BigQueryJsonResultSet of( + Schema schema, + long totalRows, + BlockingQueue buffer, + BigQueryStatement statement, + Thread[] ownedThreads) { + + return new BigQueryJsonResultSet( + schema, totalRows, buffer, statement, false, null, -1, -1, ownedThreads, null); + } + + BigQueryJsonResultSet() { + super(null, null, null, false); + totalRows = 0; + buffer = null; + fromIndex = 0; + ownedThreads = new Thread[0]; + toIndexExclusive = 0; + } + + // + + /** + * Wrapper method which can be used for initialising the instance of BigQueryJsonResultSet for the + * nested Records + * + * @param schema Table schema + * @param cursor Points to the current record + * @param fromIndex starting index under consideration + * @param toIndexExclusive last index under consideration + * @return The BigQueryJsonResultSet + */ + static BigQueryJsonResultSet getNestedResultSet( + Schema schema, BigQueryFieldValueListWrapper cursor, int fromIndex, int toIndexExclusive) { + return new BigQueryJsonResultSet( + schema, + -1, + null, + null, /* statement will be null in case of nested java.sql.Result. */ + true, + cursor, + fromIndex, + toIndexExclusive, + null, + null); + } + + /* Advances the result set to the next row, returning false if no such row exists. Potentially blocking operation */ + public boolean next() throws SQLException { + checkClosed(); + if (this.isNested) { + // We are working with the nested record, the cursor would have been + // populated. + if (this.cursor == null || this.cursor.getArrayFieldValueList() == null) { + throw new IllegalStateException( + "Cursor/ArrayFieldValueList can not be null working with the nested record"); + } + // Check if there's a next record in the array which can be read + if (this.nestedRowIndex < (this.toIndexExclusive - 1)) { + this.nestedRowIndex++; + return true; + } + this.afterLast = true; + return false; + + } else { + // If end of stream is reached or we are past the last row i.e + // rowcnt == totalRows (rowcnt starts at 0) + // then we can simply return false + if (this.hasReachedEnd || this.isLast()) { + this.afterLast = true; + return false; + } + try { + // Advance the cursor,Potentially blocking operation + this.cursor = this.buffer.take(); + this.rowCnt++; + // Check for end of stream + if (this.cursor.isLast()) { + this.cursor = null; + this.hasReachedEnd = true; + return false; + } + // Cursor has been advanced + return true; + + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException( + "Error occurred while advancing the cursor. This could happen when connection is closed while we call the next method", + ex); + } + } + } + + @Override + public Object getObject(int columnIndex) throws SQLException { + // columnIndex is SQL index starting at 1 + checkClosed(); + LOG.finest("++enter++"); + FieldValue value = getObjectInternal(columnIndex); + if (value == null || value.isNull()) { + return null; + } + + if (this.isNested && columnIndex == 1) { + return this.bigQueryTypeCoercer.coerceTo(Integer.class, value); + } + + if (this.isNested && columnIndex == 2) { + Field arrayField = this.schema.getFields().get(0); + if (isStruct(arrayField)) { + return new BigQueryJsonStruct(arrayField.getSubFields(), value); + } + Class targetClass = + BigQueryJdbcTypeMappings.standardSQLToJavaTypeMapping.get( + arrayField.getType().getStandardType()); + return this.bigQueryTypeCoercer.coerceTo(targetClass, value); + } + + int extraIndex = this.isNested ? 2 : 1; + Field fieldSchema = this.schemaFieldList.get(columnIndex - extraIndex); + if (isArray(fieldSchema)) { + return new BigQueryJsonArray(fieldSchema, value); + } else if (isStruct(fieldSchema)) { + return new BigQueryJsonStruct(fieldSchema.getSubFields(), value); + } else { + Class targetClass = + BigQueryJdbcTypeMappings.standardSQLToJavaTypeMapping.get( + fieldSchema.getType().getStandardType()); + return this.bigQueryTypeCoercer.coerceTo(targetClass, value); + } + } + + /** + * This method will be called by every other getter of this {@link java.sql.ResultSet}, including + * {@link #getObject(int)} to get the value in its rawest form i.e. {@link FieldValue} to coerce + * it further as required. + * + * @param columnIndex the first column is 1, the second is 2, ... + * @return an instance of {@link FieldValue} represents value at columnIndex column. + */ + private FieldValue getObjectInternal(int columnIndex) throws SQLException { + checkClosed(); + LOG.finest("++enter++"); + FieldValue value; + if (this.isNested) { + boolean validIndexForNestedResultSet = columnIndex == 1 || columnIndex == 2; + // BigQuery doesn't support multidimensional arrays, so just the default row + // num column (1) and the actual column (2) is supposed to be read + if (!validIndexForNestedResultSet) { + throw new IllegalArgumentException( + "Column index is required to be 1 or 2 for the nested arrays"); + } + if (this.cursor.getArrayFieldValueList() == null + || this.cursor.getArrayFieldValueList().get(this.nestedRowIndex) == null) { + throw new IllegalStateException("ArrayFieldValueList cannot be null"); + } + + // For Arrays the first column is Index, ref: + // https://docs.oracle.com/javase/7/docs/api/java/sql/Array.html#getResultSet() + if (columnIndex == 1) { + return FieldValue.of(Attribute.PRIMITIVE, Integer.toString(this.nestedRowIndex + 1)); + } else { + // columnIndex = 2 + // This ignores the columnIndex, as there's just one column, and we have already incremented + // the nestedRowIndex + value = this.cursor.getArrayFieldValueList().get(this.nestedRowIndex); + } + } + // non nested, return the value + else { + // SQL Index to 0 based index + value = this.cursor.getFieldValueList().get(columnIndex - 1); + } + setWasNull(value.getValue()); + return value; + } + + @Override + public void close() { + LOG.fine(String.format("Closing BigqueryJsonResultSet %s.", this)); + this.isClosed = true; + if (ownedThreads != null) { + for (Thread ownedThread : ownedThreads) { + if (!ownedThread.isInterrupted()) { + ownedThread.interrupt(); + } + } + } + super.close(); + } + + @Override + public boolean isBeforeFirst() throws SQLException { + checkClosed(); + LOG.finest("++enter++"); + if (this.isNested) { + return this.nestedRowIndex < this.fromIndex; + } else { + return this.cursor == null && this.rowCnt == 0; + } + } + + @Override + public boolean isAfterLast() throws SQLException { + checkClosed(); + LOG.finest("++enter++"); + return this.afterLast; + } + + @Override + public boolean isFirst() throws SQLException { + checkClosed(); + LOG.finest("++enter++"); + if (this.isNested) { + return this.nestedRowIndex == this.fromIndex; + } else { + return this.rowCnt == 1; + } + } + + @Override + public boolean isLast() throws SQLException { + checkClosed(); + LOG.finest("++enter++"); + if (this.isNested) { + return this.nestedRowIndex == this.toIndexExclusive - 1; + } else { + return this.rowCnt == this.totalRows; + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStruct.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStruct.java new file mode 100644 index 000000000000..35217f8e7117 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStruct.java @@ -0,0 +1,80 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.BigQueryBaseArray.isArray; + +import com.google.api.core.InternalApi; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.FieldValue; +import java.lang.reflect.Array; +import java.util.List; + +/** + * An implementation of {@link BigQueryBaseStruct} used to represent Struct values from Json data. + */ +@InternalApi +class BigQueryJsonStruct extends BigQueryBaseStruct { + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryJsonStruct.class.getName()); + + private static final BigQueryTypeCoercer BIGQUERY_TYPE_COERCER = + BigQueryTypeCoercionUtility.INSTANCE; + + private final FieldList schema; + private final List values; + + public BigQueryJsonStruct(FieldList schema, FieldValue values) { + this.schema = schema; + this.values = (values == null || values.isNull()) ? null : values.getRecordValue(); + } + + @Override + FieldList getSchema() { + return this.schema; + } + + @Override + public Object[] getAttributes() { + LOG.finest("++enter++"); + int size = schema.size(); + Object[] attributes = (Object[]) Array.newInstance(Object.class, size); + + for (int index = 0; index < size; index++) { + Field currentSchema = schema.get(index); + FieldValue currentValue = values == null ? null : values.get(index); + Object coercedValue = getValue(currentSchema, currentValue); + Array.set(attributes, index, coercedValue); + } + return attributes; + } + + private Object getValue(Field currentSchema, FieldValue currentValue) { + LOG.finest("++enter++"); + if (isArray(currentSchema)) { + return new BigQueryJsonArray(currentSchema, currentValue); + } else if (isStruct(currentSchema)) { + return new BigQueryJsonStruct(currentSchema.getSubFields(), currentValue); + } else { + Class targetClass = + BigQueryJdbcTypeMappings.standardSQLToJavaTypeMapping.get( + currentSchema.getType().getStandardType()); + return BIGQUERY_TYPE_COERCER.coerceTo(targetClass, currentValue); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsConnection.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsConnection.java new file mode 100644 index 000000000000..1804cc14c442 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsConnection.java @@ -0,0 +1,191 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.METHOD_NOT_IMPLEMENTED; + +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlFeatureNotSupportedException; +import java.sql.Array; +import java.sql.Blob; +import java.sql.CallableStatement; +import java.sql.Clob; +import java.sql.Connection; +import java.sql.NClob; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.SQLXML; +import java.sql.Savepoint; +import java.sql.Struct; +import java.util.Map; +import java.util.Properties; +import java.util.concurrent.Executor; + +/** NoOps Abstract base class for BigQuery JDBC Connection. */ +abstract class BigQueryNoOpsConnection implements Connection { + + @Override + public CallableStatement prepareCall(String sql) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public String nativeSQL(String sql) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public T unwrap(Class iface) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean isWrapperFor(Class iface) { + return false; + } + + @Override + public boolean isReadOnly() { + return false; + } + + @Override + public void setReadOnly(boolean readOnly) {} + + @Override + public void setCatalog(String catalog) {} + + // TODO: post MVP feature + + @Override + public Map> getTypeMap() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void setTypeMap(Map> map) {} + + @Override + public Savepoint setSavepoint() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public Savepoint setSavepoint(String name) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void rollback(Savepoint savepoint) {} + + @Override + public void releaseSavepoint(Savepoint savepoint) {} + + @Override + public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) + throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public CallableStatement prepareCall( + String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) + throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public Clob createClob() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public Blob createBlob() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public NClob createNClob() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public SQLXML createSQLXML() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean isValid(int timeout) throws SQLException { + return false; + } + + @Override + public void setClientInfo(String name, String value) {} + + @Override + public String getClientInfo(String name) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public Properties getClientInfo() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void setClientInfo(Properties properties) {} + + @Override + public Array createArrayOf(String typeName, Object[] elements) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public Struct createStruct(String typeName, Object[] attributes) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public String getSchema() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void setSchema(String schema) {} + + @Override + public void setNetworkTimeout(Executor executor, int milliseconds) {} + + @Override + public int getNetworkTimeout() { + return 0; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsResultSet.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsResultSet.java new file mode 100644 index 000000000000..e4b29f7cd566 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsResultSet.java @@ -0,0 +1,693 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.METHOD_NOT_IMPLEMENTED; + +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlFeatureNotSupportedException; +import java.io.InputStream; +import java.io.Reader; +import java.math.BigDecimal; +import java.net.URL; +import java.sql.Array; +import java.sql.Blob; +import java.sql.Clob; +import java.sql.Date; +import java.sql.NClob; +import java.sql.Ref; +import java.sql.ResultSet; +import java.sql.RowId; +import java.sql.SQLException; +import java.sql.SQLWarning; +import java.sql.SQLXML; +import java.sql.Time; +import java.sql.Timestamp; +import java.util.Map; + +/** NoOps Abstract base class for BigQuery JDBC ResultSet(s). */ +abstract class BigQueryNoOpsResultSet implements ResultSet { + + @Override + public int getFetchDirection() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void setFetchSize(int rows) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public int getFetchSize() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public String getCursorName() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean absolute(int row) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void beforeFirst() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void afterLast() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean first() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean last() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public int getRow() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean relative(int rows) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean previous() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void setFetchDirection(int direction) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean rowUpdated() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean rowInserted() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean rowDeleted() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNull(int columnIndex) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBoolean(int columnIndex, boolean x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateByte(int columnIndex, byte x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateShort(int columnIndex, short x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateInt(int columnIndex, int x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateLong(int columnIndex, long x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateFloat(int columnIndex, float x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateDouble(int columnIndex, double x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBigDecimal(int columnIndex, BigDecimal x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateString(int columnIndex, String x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBytes(int columnIndex, byte[] x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateDate(int columnIndex, Date x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateTime(int columnIndex, Time x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateTimestamp(int columnIndex, Timestamp x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateAsciiStream(int columnIndex, InputStream x, int length) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBinaryStream(int columnIndex, InputStream x, int length) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateCharacterStream(int columnIndex, Reader x, int length) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateObject(int columnIndex, Object x, int scaleOrLength) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateObject(int columnIndex, Object x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNull(String columnLabel) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBoolean(String columnLabel, boolean x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateByte(String columnLabel, byte x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateShort(String columnLabel, short x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateInt(String columnLabel, int x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateLong(String columnLabel, long x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateFloat(String columnLabel, float x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateDouble(String columnLabel, double x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBigDecimal(String columnLabel, BigDecimal x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateString(String columnLabel, String x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBytes(String columnLabel, byte[] x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateDate(String columnLabel, Date x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateTime(String columnLabel, Time x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateTimestamp(String columnLabel, Timestamp x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateAsciiStream(String columnLabel, InputStream x, int length) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBinaryStream(String columnLabel, InputStream x, int length) + throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateCharacterStream(String columnLabel, Reader reader, int length) + throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateObject(String columnLabel, Object x, int scaleOrLength) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateObject(String columnLabel, Object x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void insertRow() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateRow() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void deleteRow() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void refreshRow() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void cancelRowUpdates() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void moveToInsertRow() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void moveToCurrentRow() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public Object getObject(int columnIndex, Map> map) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public Ref getRef(int columnIndex) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public Object getObject(String columnLabel, Map> map) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public Ref getRef(String columnLabel) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public URL getURL(int columnIndex) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public URL getURL(String columnLabel) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateRef(int columnIndex, Ref x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateRef(String columnLabel, Ref x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBlob(int columnIndex, Blob x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBlob(String columnLabel, Blob x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateClob(int columnIndex, Clob x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateClob(String columnLabel, Clob x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateArray(int columnIndex, Array x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateArray(String columnLabel, Array x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public RowId getRowId(int columnIndex) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public RowId getRowId(String columnLabel) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateRowId(int columnIndex, RowId x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateRowId(String columnLabel, RowId x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNString(int columnIndex, String nString) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNString(String columnLabel, String nString) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNClob(int columnIndex, NClob nClob) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNClob(String columnLabel, NClob nClob) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public NClob getNClob(int columnIndex) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public NClob getNClob(String columnLabel) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public SQLXML getSQLXML(int columnIndex) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public SQLXML getSQLXML(String columnLabel) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public String getNString(int columnIndex) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public String getNString(String columnLabel) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public Reader getNCharacterStream(int columnIndex) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public Reader getNCharacterStream(String columnLabel) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNCharacterStream(String columnLabel, Reader reader, long length) + throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateAsciiStream(int columnIndex, InputStream x, long length) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateCharacterStream(int columnIndex, Reader x, long length) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateAsciiStream(String columnLabel, InputStream x, long length) + throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBinaryStream(String columnLabel, InputStream x, long length) + throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateCharacterStream(String columnLabel, Reader reader, long length) + throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBlob(int columnIndex, InputStream inputStream, long length) + throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBlob(String columnLabel, InputStream inputStream, long length) + throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateClob(int columnIndex, Reader reader, long length) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateClob(String columnLabel, Reader reader, long length) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateCharacterStream(int columnIndex, Reader x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateClob(int columnIndex, Reader reader) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateClob(String columnLabel, Reader reader) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNClob(int columnIndex, Reader reader) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void updateNClob(String columnLabel, Reader reader) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public T getObject(int columnIndex, Class type) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public T getObject(String columnLabel, Class type) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public T unwrap(Class iface) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean isWrapperFor(Class iface) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public SQLWarning getWarnings() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public void clearWarnings() throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + void checkClosed() throws SQLException { + if (isClosed()) { + throw new BigQueryJdbcException("This " + getClass().getName() + " has been closed"); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsStatement.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsStatement.java new file mode 100644 index 000000000000..2e71bfaf753b --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsStatement.java @@ -0,0 +1,90 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.METHOD_NOT_IMPLEMENTED; + +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlFeatureNotSupportedException; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +abstract class BigQueryNoOpsStatement implements Statement { + + @Override + public void setCursorName(String name) throws SQLException { + // TODO: ResultSet Concurrency is read only(Not updatable) + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public T unwrap(Class iface) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean isWrapperFor(Class iface) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public ResultSet getGeneratedKeys() throws SQLException { + // TODO: Returns an empty resultset. + // return empty ResultSet + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public int executeUpdate(String sql, int autoGeneratedKeys) throws SQLException { + // Implementation detailed in BigQuery JDBC Design - Wiring of executeQuery, executeUpdate and + // execute methods + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public int executeUpdate(String sql, int[] columnIndexes) throws SQLException { + // Implementation detailed in BigQuery JDBC Design - Wiring of executeQuery, executeUpdate and + // execute methods + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public int executeUpdate(String sql, String[] columnNames) throws SQLException { + // Implementation detailed in BigQuery JDBC Design - Wiring of executeQuery, executeUpdate and + // execute methods + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean execute(String sql, int autoGeneratedKeys) throws SQLException { + // Implementation detailed in BigQuery JDBC Design - Wiring of executeQuery, executeUpdate and + // execute methods + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean execute(String sql, int[] columnIndexes) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } + + @Override + public boolean execute(String sql, String[] columnNames) throws SQLException { + // Implementation detailed in BigQuery JDBC Design - Wiring of executeQuery, executeUpdate and + // execute methods + throw new BigQueryJdbcSqlFeatureNotSupportedException(METHOD_NOT_IMPLEMENTED); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandler.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandler.java new file mode 100644 index 000000000000..9644dd581d62 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandler.java @@ -0,0 +1,281 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlFeatureNotSupportedException; +import java.sql.SQLException; +import java.util.ArrayList; + +class BigQueryParameterHandler { + private final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + + public BigQueryParameterHandler(int parameterCount) { + this.parametersArraySize = parameterCount; + } + + BigQueryParameterHandler(int parameterCount, ArrayList parametersList) { + this.parametersArraySize = parameterCount; + this.parametersList = parametersList; + } + + // Indicates whether the parameter is input, output or both + // Default is UNSPECIFIED + // Used by CallableStatement + enum BigQueryStatementParameterType { + UNSPECIFIED, + IN, + OUT, + INOUT + }; + + private int parametersArraySize; + ArrayList parametersList = new ArrayList<>(parametersArraySize); + + private long highestIndex = 0; + + QueryJobConfiguration.Builder configureParameters( + QueryJobConfiguration.Builder jobConfigurationBuilder) throws SQLException { + LOG.finest("++enter++"); + try { + for (int i = 1; i <= this.parametersArraySize; i++) { + + Object parameterValue = getParameter(i); + StandardSQLTypeName sqlType = getSqlType(i); + LOG.info( + String.format( + "Parameter %s of type %s at index %s added to QueryJobConfiguration", + parameterValue, sqlType, i)); + jobConfigurationBuilder.addPositionalParameter( + QueryParameterValue.of(parameterValue, sqlType)); + } + } catch (NullPointerException e) { + if (e.getMessage().contains("Null type")) { + throw new BigQueryJdbcException("One or more parameters missing in Prepared statement.", e); + } + } + return jobConfigurationBuilder; + } + + void setParameter(int parameterIndex, Object value, Class type) + throws BigQueryJdbcSqlFeatureNotSupportedException { + LOG.finest("++enter++"); + LOG.finest(String.format("setParameter called by : %s", type.getName())); + checkValidIndex(parameterIndex); + + int arrayIndex = parameterIndex - 1; + if (parameterIndex >= this.highestIndex || this.parametersList.get(arrayIndex) == null) { + parametersList.ensureCapacity(parameterIndex); + while (parametersList.size() < parameterIndex) { + parametersList.add(null); + } + parametersList.set(arrayIndex, new BigQueryJdbcParameter()); + } + this.highestIndex = Math.max(parameterIndex, highestIndex); + BigQueryJdbcParameter parameter = parametersList.get(arrayIndex); + + parameter.setIndex(parameterIndex); + parameter.setValue(value); + parameter.setType(type); + parameter.setSqlType(BigQueryJdbcTypeMappings.classToType(type)); + parameter.setParamName(""); + parameter.setParamType(BigQueryStatementParameterType.UNSPECIFIED); + parameter.setScale(-1); + + LOG.finest(String.format("Parameter set { %s }", parameter.toString())); + } + + private void checkValidIndex(int parameterIndex) { + if (parameterIndex > this.parametersArraySize) { + throw new IndexOutOfBoundsException("All parameters already provided."); + } + } + + Object getParameter(int index) { + // Index is 1-based. Converting to 0 based for java. + int arrayIndex = index - 1; + if (parametersList.size() <= arrayIndex || parametersList.get(arrayIndex) == null) { + return null; + } + return parametersList.get(arrayIndex).getValue(); + } + + Class getType(int index) { + // Index is 1-based. Converting to 0 based for java. + int arrayIndex = index - 1; + if (parametersList.size() <= arrayIndex || parametersList.get(arrayIndex) == null) { + return null; + } + return parametersList.get(arrayIndex).getType(); + } + + StandardSQLTypeName getSqlType(int index) { + // Index is 1-based. Converting to 0 based for java. + int arrayIndex = index - 1; + if (parametersList.size() <= arrayIndex || parametersList.get(arrayIndex) == null) { + return null; + } + return parametersList.get(arrayIndex).getSqlType(); + } + + void clearParameters() { + LOG.finest("++enter++"); + parametersList.clear(); + highestIndex = 0; + } + + // set parameter by name and type + void setParameter( + String paramName, + Object value, + Class type, + BigQueryStatementParameterType paramType, + int scale) + throws BigQueryJdbcSqlFeatureNotSupportedException { + LOG.finest("++enter++"); + LOG.finest(String.format("setParameter called by : %s", type.getName())); + if (paramName == null || paramName.isEmpty()) { + throw new IllegalArgumentException("paramName cannot be null or empty"); + } + BigQueryJdbcParameter parameter = null; + for (BigQueryJdbcParameter p : parametersList) { + if (paramName.equals(p.getParamName())) { + parameter = p; + break; + } + } + if (parameter == null) { + // Add new parameter. + parameter = new BigQueryJdbcParameter(); + parameter.setIndex(-1); + } + parameter.setValue(value); + parameter.setType(type); + parameter.setSqlType(BigQueryJdbcTypeMappings.classToType(type)); + parameter.setParamName(paramName); + parameter.setParamType(paramType); + parameter.setScale(scale); + if (parameter.getIndex() == -1) { + parametersList.add(parameter); + } + LOG.finest(String.format("Parameter set { %s }", parameter.toString())); + } + + // set parameter by index and type + void setParameter( + int parameterIndex, + Object value, + Class type, + BigQueryStatementParameterType paramType, + int scale) + throws BigQueryJdbcSqlFeatureNotSupportedException { + LOG.finest("++enter++"); + LOG.finest(String.format("setParameter called by : %s", type.getName())); + checkValidIndex(parameterIndex); + int arrayIndex = parameterIndex - 1; + if (parameterIndex >= this.highestIndex || this.parametersList.get(arrayIndex) == null) { + parametersList.ensureCapacity(parameterIndex); + while (parametersList.size() < parameterIndex) { + parametersList.add(null); + } + parametersList.set(arrayIndex, new BigQueryJdbcParameter()); + } + this.highestIndex = Math.max(parameterIndex, highestIndex); + BigQueryJdbcParameter parameter = parametersList.get(arrayIndex); + + parameter.setIndex(parameterIndex); + parameter.setValue(value); + parameter.setType(type); + parameter.setSqlType(BigQueryJdbcTypeMappings.classToType(type)); + parameter.setParamName(""); + parameter.setParamType(paramType); + parameter.setScale(scale); + + LOG.finest(String.format("Parameter set { %s }", parameter.toString())); + } + + // Get Parameter by name + Object getParameter(String name) { + for (BigQueryJdbcParameter p : parametersList) { + if (name.equals(p.getParamName())) { + return p.getValue(); + } + } + return null; + } + + // Get parameter type by index + BigQueryStatementParameterType getParameterType(int index) { + // Index is 1-based. Converting to 0 based for java. + int arrayIndex = index - 1; + if (parametersList.size() <= arrayIndex || parametersList.get(arrayIndex) == null) { + return null; + } + return parametersList.get(arrayIndex).getParamType(); + } + + // Get parameter type by name + BigQueryStatementParameterType getParameterType(String name) { + for (BigQueryJdbcParameter p : parametersList) { + if (name.equals(p.getParamName())) { + return p.getParamType(); + } + } + return null; + } + + // Get scale type by index + int getParameterScale(int index) { + // Index is 1-based. Converting to 0 based for java. + int arrayIndex = index - 1; + if (parametersList.size() <= arrayIndex || parametersList.get(arrayIndex) == null) { + return -1; + } + return parametersList.get(arrayIndex).getScale(); + } + + // Get parameter scale by name + int getParameterScale(String name) { + for (BigQueryJdbcParameter p : parametersList) { + if (name.equals(p.getParamName())) { + return p.getScale(); + } + } + return -1; + } + + Class getType(String name) { + for (BigQueryJdbcParameter p : parametersList) { + if (name.equals(p.getParamName())) { + return p.getType(); + } + } + return null; + } + + StandardSQLTypeName getSqlType(String name) { + for (BigQueryJdbcParameter p : parametersList) { + if (name.equals(p.getParamName())) { + return p.getSqlType(); + } + } + return null; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnection.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnection.java new file mode 100644 index 000000000000..ebb07dc11fcf --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnection.java @@ -0,0 +1,497 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.common.annotations.VisibleForTesting; +import java.sql.Connection; +import java.sql.SQLException; +import java.util.UUID; +import java.util.concurrent.Executor; +import java.util.concurrent.LinkedBlockingDeque; +import javax.sql.ConnectionEvent; +import javax.sql.ConnectionEventListener; +import javax.sql.PooledConnection; +import javax.sql.StatementEventListener; + +class BigQueryPooledConnection implements PooledConnection { + private final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + + private String id; // Mainly for internal use + private Connection bqConnection; + private boolean inUse = false; + private Long listenerPoolSize = 10L; + private LinkedBlockingDeque listeners; + + BigQueryPooledConnection(Connection bqConnection) { + this.bqConnection = bqConnection; + this.id = UUID.randomUUID().toString(); + String connectionUrl = ((BigQueryConnection) bqConnection).getConnectionUrl(); + if (connectionUrl != null && !connectionUrl.isEmpty()) { + this.listenerPoolSize = + BigQueryJdbcUrlUtility.parseListenerPoolSize(connectionUrl, this.toString()); + } + if (getListenerPoolSize() > 0L) { + listeners = new LinkedBlockingDeque<>(getListenerPoolSize().intValue()); + } else { + listeners = new LinkedBlockingDeque<>(); + } + } + + Long getListenerPoolSize() { + return listenerPoolSize; + } + + @VisibleForTesting + boolean inUse() { + return inUse; + } + + @VisibleForTesting + boolean isListenerPooled(ConnectionEventListener l) { + return listeners.contains(l); + } + + @Override + public synchronized Connection getConnection() throws SQLException { + LOG.finest("++enter++"); + if (inUse) { + throw new SQLException("PooledConnection is already in use."); + } + inUse = true; + // Return a wrapper around the underlying physical connection. + return new BigQueryPooledConnectionWrapper(bqConnection, this); + } + + @Override + public synchronized void close() throws SQLException { + LOG.finest("++enter++"); + // Notify listeners that the *PooledConnection* is being closed. + ConnectionEvent event = new ConnectionEvent(this); + for (ConnectionEventListener listener : listeners) { + listener.connectionClosed(event); // This is likely not the intended event for this action + } + // Marks the pooled connection to be not in use. + inUse = false; + } + + @Override + public synchronized void addConnectionEventListener(ConnectionEventListener listener) { + LOG.finest("++enter++"); + if (listener == null) { + return; + } + if (this.listeners.contains(listener)) { + return; + } + this.listeners.add(listener); + } + + @Override + public synchronized void removeConnectionEventListener(ConnectionEventListener listener) { + LOG.finest("++enter++"); + if (listener == null) { + return; + } + if (!this.listeners.contains(listener)) { + return; + } + this.listeners.remove(listener); + } + + // Method called by the BigQueryPooledConnectionWrapper when the logical + // Connection is closed. + public synchronized void connectionHandleClosed(BigQueryPooledConnectionWrapper handle) { + LOG.finest("++enter++"); + inUse = false; + ConnectionEvent event = new ConnectionEvent(this); + for (ConnectionEventListener listener : listeners) { + listener.connectionClosed(event); + } + LOG.finest("Connection handle returned to the pool."); + } + + // Method to notify listeners about a connection error. This can be called + // by the application if they are using PooledConnection directly or by the + // BigQueryPooledConnectionWrapper when a connection is aborted. + public synchronized void fireConnectionError(SQLException e) { + LOG.finest("++enter++"); + inUse = false; + ConnectionEvent event = new ConnectionEvent(this, e); + for (ConnectionEventListener listener : listeners) { + listener.connectionErrorOccurred(event); + } + LOG.finest( + String.format("Connection handle removed from the pool due to error: %s", e.getMessage())); + // Listners no longer need to listen for this connection since it has been removed from the + // pool. + for (ConnectionEventListener listener : listeners) { + removeConnectionEventListener(listener); + } + } + + @Override + public void addStatementEventListener(StatementEventListener arg0) { + throw new UnsupportedOperationException( + "Method 'addStatementEventListener' is not supported by the BQ Driver"); + } + + @Override + public void removeStatementEventListener(StatementEventListener arg0) { + throw new UnsupportedOperationException( + "Method 'removeStatementEventListener' is not supported by the BQ Driver"); + } + + // Inner class: Connection Wrapper around the actual physical Connection + // This class notifies the listeners or calls the listner notification methods + // provided by the pooled connection. + static class BigQueryPooledConnectionWrapper implements Connection { + private final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + private Connection bqConnectionDelegate; + private BigQueryPooledConnection pooledConnection; + private boolean closed = false; + + public BigQueryPooledConnectionWrapper( + Connection bqConnectionDelegate, BigQueryPooledConnection pooledConnection) { + this.bqConnectionDelegate = bqConnectionDelegate; + this.pooledConnection = pooledConnection; + } + + @Override + public void close() throws SQLException { + LOG.finest("++enter++"); + if (!closed) { + // Instead of physically closing, we notify the PooledConnection + // that this handle is no longer in use. + pooledConnection.connectionHandleClosed(this); + closed = true; + LOG.finest("Logical connection closed (returned to pool)."); + } + } + + @Override + public boolean isClosed() throws SQLException { + return closed || bqConnectionDelegate.isClosed(); + } + + @Override + public java.sql.Statement createStatement() throws SQLException { + return bqConnectionDelegate.createStatement(); + } + + @Override + public java.sql.PreparedStatement prepareStatement(String sql) throws SQLException { + return bqConnectionDelegate.prepareStatement(sql); + } + + @Override + public java.sql.CallableStatement prepareCall(String sql) throws SQLException { + return bqConnectionDelegate.prepareCall(sql); + } + + @Override + public String nativeSQL(String sql) throws SQLException { + return bqConnectionDelegate.nativeSQL(sql); + } + + @Override + public void setAutoCommit(boolean autoCommit) throws SQLException { + bqConnectionDelegate.setAutoCommit(autoCommit); + } + + @Override + public boolean getAutoCommit() throws SQLException { + return bqConnectionDelegate.getAutoCommit(); + } + + @Override + public void commit() throws SQLException { + bqConnectionDelegate.commit(); + } + + @Override + public void rollback() throws SQLException { + bqConnectionDelegate.rollback(); + } + + @Override + public java.sql.DatabaseMetaData getMetaData() throws SQLException { + return bqConnectionDelegate.getMetaData(); + } + + @Override + public void setReadOnly(boolean readOnly) throws SQLException { + bqConnectionDelegate.setReadOnly(readOnly); + } + + @Override + public boolean isReadOnly() throws SQLException { + return bqConnectionDelegate.isReadOnly(); + } + + @Override + public void setCatalog(String catalog) throws SQLException { + bqConnectionDelegate.setCatalog(catalog); + } + + @Override + public String getCatalog() throws SQLException { + return bqConnectionDelegate.getCatalog(); + } + + @Override + public void setTransactionIsolation(int level) throws SQLException { + bqConnectionDelegate.setTransactionIsolation(level); + } + + @Override + public int getTransactionIsolation() throws SQLException { + return bqConnectionDelegate.getTransactionIsolation(); + } + + @Override + public java.sql.SQLWarning getWarnings() throws SQLException { + return bqConnectionDelegate.getWarnings(); + } + + @Override + public void clearWarnings() throws SQLException { + bqConnectionDelegate.clearWarnings(); + } + + @Override + public java.sql.Statement createStatement(int resultSetType, int resultSetConcurrency) + throws SQLException { + return bqConnectionDelegate.createStatement(resultSetType, resultSetConcurrency); + } + + @Override + public java.sql.PreparedStatement prepareStatement( + String sql, int resultSetType, int resultSetConcurrency) throws SQLException { + return bqConnectionDelegate.prepareStatement(sql, resultSetType, resultSetConcurrency); + } + + @Override + public java.sql.CallableStatement prepareCall( + String sql, int resultSetType, int resultSetConcurrency) throws SQLException { + return bqConnectionDelegate.prepareCall(sql, resultSetType, resultSetConcurrency); + } + + @Override + public java.util.Map> getTypeMap() throws SQLException { + return bqConnectionDelegate.getTypeMap(); + } + + @Override + public void setTypeMap(java.util.Map> map) throws SQLException { + bqConnectionDelegate.setTypeMap(map); + } + + @Override + public void setHoldability(int holdability) throws SQLException { + bqConnectionDelegate.setHoldability(holdability); + } + + @Override + public int getHoldability() throws SQLException { + return bqConnectionDelegate.getHoldability(); + } + + @Override + public java.sql.Savepoint setSavepoint() throws SQLException { + return bqConnectionDelegate.setSavepoint(); + } + + @Override + public java.sql.Savepoint setSavepoint(String name) throws SQLException { + return bqConnectionDelegate.setSavepoint(name); + } + + @Override + public void rollback(java.sql.Savepoint savepoint) throws SQLException { + bqConnectionDelegate.rollback(savepoint); + } + + @Override + public void releaseSavepoint(java.sql.Savepoint savepoint) throws SQLException { + bqConnectionDelegate.releaseSavepoint(savepoint); + } + + @Override + public java.sql.Statement createStatement( + int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { + return bqConnectionDelegate.createStatement( + resultSetType, resultSetConcurrency, resultSetHoldability); + } + + @Override + public java.sql.PreparedStatement prepareStatement( + String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) + throws SQLException { + return bqConnectionDelegate.prepareStatement( + sql, resultSetType, resultSetConcurrency, resultSetHoldability); + } + + @Override + public java.sql.CallableStatement prepareCall( + String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) + throws SQLException { + return bqConnectionDelegate.prepareCall( + sql, resultSetType, resultSetConcurrency, resultSetHoldability); + } + + @Override + public java.sql.PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) + throws SQLException { + return bqConnectionDelegate.prepareStatement(sql, autoGeneratedKeys); + } + + @Override + public java.sql.PreparedStatement prepareStatement(String sql, int[] columnIndices) + throws SQLException { + return bqConnectionDelegate.prepareStatement(sql, columnIndices); + } + + @Override + public java.sql.PreparedStatement prepareStatement(String sql, String[] columnNames) + throws SQLException { + return bqConnectionDelegate.prepareStatement(sql, columnNames); + } + + @Override + public java.sql.Clob createClob() throws SQLException { + return bqConnectionDelegate.createClob(); + } + + @Override + public java.sql.Blob createBlob() throws SQLException { + return bqConnectionDelegate.createBlob(); + } + + @Override + public java.sql.NClob createNClob() throws SQLException { + return bqConnectionDelegate.createNClob(); + } + + @Override + public java.sql.SQLXML createSQLXML() throws SQLException { + return bqConnectionDelegate.createSQLXML(); + } + + @Override + public boolean isValid(int timeout) throws SQLException { + return bqConnectionDelegate.isValid(timeout); + } + + @Override + public void setClientInfo(String name, String value) throws java.sql.SQLClientInfoException { + bqConnectionDelegate.setClientInfo(name, value); + } + + @Override + public void setClientInfo(java.util.Properties properties) + throws java.sql.SQLClientInfoException { + bqConnectionDelegate.setClientInfo(properties); + } + + @Override + public String getClientInfo(String name) throws SQLException { + return bqConnectionDelegate.getClientInfo(name); + } + + @Override + public java.util.Properties getClientInfo() throws SQLException { + return bqConnectionDelegate.getClientInfo(); + } + + @Override + public java.sql.Array createArrayOf(String typeName, Object[] elements) throws SQLException { + return bqConnectionDelegate.createArrayOf(typeName, elements); + } + + @Override + public java.sql.Struct createStruct(String typeName, Object[] attributes) throws SQLException { + return bqConnectionDelegate.createStruct(typeName, attributes); + } + + @Override + public T unwrap(Class iface) throws SQLException { + return bqConnectionDelegate.unwrap(iface); + } + + @Override + public boolean isWrapperFor(Class iface) throws SQLException { + return bqConnectionDelegate.isWrapperFor(iface); + } + + @Override + public void setSchema(String schema) throws SQLException { + bqConnectionDelegate.setSchema(schema); + } + + @Override + public String getSchema() throws SQLException { + return bqConnectionDelegate.getSchema(); + } + + @Override + public void setNetworkTimeout(java.util.concurrent.Executor executor, int milliseconds) + throws SQLException { + bqConnectionDelegate.setNetworkTimeout(executor, milliseconds); + } + + @Override + public int getNetworkTimeout() throws SQLException { + return bqConnectionDelegate.getNetworkTimeout(); + } + + @Override + public void abort(Executor arg0) throws SQLException { + LOG.finest("++enter++"); + if (!closed) { + // We notify the pooled connection that physical connection + // is being aborted. We assume here that abort() is called for + // error cases. + SQLException e = new SQLException("Connection is being terminated and aborted"); + pooledConnection.fireConnectionError(e); + closed = true; + LOG.finest("Logical connection aborted (removed from pool)."); + } + // Call the delate abort to actually close the undelying connection. + bqConnectionDelegate.abort(arg0); + } + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null) return false; + if (getClass() != obj.getClass()) return false; + BigQueryPooledConnection other = (BigQueryPooledConnection) obj; + if (id == null) { + if (other.id != null) return false; + } else if (!id.equals(other.id)) return false; + return true; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPreparedStatement.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPreparedStatement.java new file mode 100644 index 000000000000..2410f6a58a8d --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPreparedStatement.java @@ -0,0 +1,611 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.gax.retrying.RetrySettings; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics.StatementType; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryParameterValue; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import com.google.cloud.bigquery.storage.v1.BatchCommitWriteStreamsRequest; +import com.google.cloud.bigquery.storage.v1.BatchCommitWriteStreamsResponse; +import com.google.cloud.bigquery.storage.v1.BigQueryWriteClient; +import com.google.cloud.bigquery.storage.v1.TableName; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.protobuf.Descriptors.DescriptorValidationException; +import java.io.IOException; +import java.io.InputStream; +import java.io.Reader; +import java.math.BigDecimal; +import java.net.URL; +import java.sql.Array; +import java.sql.Blob; +import java.sql.Clob; +import java.sql.Date; +import java.sql.NClob; +import java.sql.ParameterMetaData; +import java.sql.PreparedStatement; +import java.sql.Ref; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.RowId; +import java.sql.SQLException; +import java.sql.SQLXML; +import java.sql.Time; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Calendar; +import java.util.LinkedList; +import java.util.Queue; + +class BigQueryPreparedStatement extends BigQueryStatement implements PreparedStatement { + private final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + private static final char POSITIONAL_PARAMETER_CHAR = '?'; + // Making this protected so BigQueryCallableStatement subclass can access the parameters. + protected final BigQueryParameterHandler parameterHandler; + protected int parameterCount = 0; + protected String currentQuery; + private Queue> batchParameters = new LinkedList<>(); + private Schema insertSchema = null; + private TableName insertTableName = null; + + BigQueryPreparedStatement(BigQueryConnection connection, String query) { + super(connection); + setCurrentQuery(query); + this.parameterHandler = new BigQueryParameterHandler(this.parameterCount); + } + + void setCurrentQuery(String currentQuery) { + this.parameterCount = getParameterCount(currentQuery); + this.currentQuery = currentQuery; + } + + private int getParameterCount(String query) { + LOG.finest("++enter++"); + return (int) query.chars().filter(ch -> ch == POSITIONAL_PARAMETER_CHAR).count(); + } + + @Override + public ResultSet executeQuery() throws SQLException { + LOG.finest("++enter++"); + logQueryExecutionStart(this.currentQuery); + try { + QueryJobConfiguration.Builder jobConfiguration = getJobConfig(this.currentQuery); + jobConfiguration.setParameterMode("POSITIONAL"); + jobConfiguration = this.parameterHandler.configureParameters(jobConfiguration); + runQuery(this.currentQuery, jobConfiguration.build()); + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + return getCurrentResultSet(); + } + + @Override + public long executeLargeUpdate() throws SQLException { + LOG.finest("++enter++"); + logQueryExecutionStart(this.currentQuery); + try { + QueryJobConfiguration.Builder jobConfiguration = getJobConfig(this.currentQuery); + jobConfiguration.setParameterMode("POSITIONAL"); + jobConfiguration = this.parameterHandler.configureParameters(jobConfiguration); + runQuery(this.currentQuery, jobConfiguration.build()); + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + return this.currentUpdateCount; + } + + @Override + public int executeUpdate() throws SQLException { + LOG.finest("++enter++"); + return checkUpdateCount(executeLargeUpdate()); + } + + @Override + public boolean execute() throws SQLException { + LOG.finest("++enter++"); + logQueryExecutionStart(this.currentQuery); + try { + QueryJobConfiguration.Builder jobConfiguration = getJobConfig(this.currentQuery); + jobConfiguration.setParameterMode("POSITIONAL"); + jobConfiguration = this.parameterHandler.configureParameters(jobConfiguration); + runQuery(this.currentQuery, jobConfiguration.build()); + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + return getCurrentResultSet() != null; + } + + @Override + public void clearParameters() { + LOG.finest("++enter++"); + this.parameterHandler.clearParameters(); + this.parameterCount = 0; + } + + @Override + public void setNull(int parameterIndex, int sqlType) { + // TODO(neenu): implement null case + } + + @Override + public void setBoolean(int parameterIndex, boolean x) throws SQLException { + checkClosed(); + this.parameterHandler.setParameter(parameterIndex, x, Boolean.class); + } + + @Override + public void setByte(int parameterIndex, byte x) throws SQLException { + checkClosed(); + this.parameterHandler.setParameter(parameterIndex, x, Byte.class); + } + + @Override + public void setShort(int parameterIndex, short x) { + // TODO(neenu): implement Bytes conversion. + } + + @Override + public void setInt(int parameterIndex, int x) throws SQLException { + checkClosed(); + this.parameterHandler.setParameter(parameterIndex, x, Integer.class); + } + + @Override + public void setLong(int parameterIndex, long x) throws SQLException { + checkClosed(); + this.parameterHandler.setParameter(parameterIndex, x, Long.class); + } + + @Override + public void setFloat(int parameterIndex, float x) throws SQLException { + checkClosed(); + this.parameterHandler.setParameter(parameterIndex, x, Float.class); + } + + @Override + public void setDouble(int parameterIndex, double x) throws SQLException { + checkClosed(); + this.parameterHandler.setParameter(parameterIndex, x, Double.class); + } + + @Override + public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException { + checkClosed(); + this.parameterHandler.setParameter(parameterIndex, x, BigDecimal.class); + } + + @Override + public void setString(int parameterIndex, String x) throws SQLException { + checkClosed(); + this.parameterHandler.setParameter(parameterIndex, x, String.class); + } + + @Override + public void setBytes(int parameterIndex, byte[] x) { + // TODO(neenu): implement Bytes conversion. + } + + @Override + public void setDate(int parameterIndex, Date x) throws SQLException { + checkClosed(); + this.parameterHandler.setParameter(parameterIndex, x.toString(), String.class); + } + + @Override + public void setTime(int parameterIndex, Time x) throws SQLException { + checkClosed(); + this.parameterHandler.setParameter(parameterIndex, x.toString(), String.class); + } + + @Override + public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException { + checkClosed(); + this.parameterHandler.setParameter(parameterIndex, x.toString(), String.class); + } + + @Override + public void setAsciiStream(int parameterIndex, InputStream x, int length) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setUnicodeStream(int parameterIndex, InputStream x, int length) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setBinaryStream(int parameterIndex, InputStream x, int length) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setObject(int parameterIndex, Object x, int targetSqlType) {} + + @Override + public void setObject(int parameterIndex, Object x) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void addBatch() { + LOG.finest("++enter++"); + ArrayList currentParameterList = + deepCopyParameterList(this.parameterHandler.parametersList); + this.batchParameters.add(currentParameterList); + } + + private ArrayList deepCopyParameterList( + ArrayList parametersList) { + ArrayList copiedParameterList = new ArrayList<>(); + for (BigQueryJdbcParameter parameter : parametersList) { + BigQueryJdbcParameter newParameter = new BigQueryJdbcParameter(parameter); + copiedParameterList.add(newParameter); + } + return copiedParameterList; + } + + @Override + public int[] executeBatch() throws SQLException { + LOG.finest("++enter++"); + int[] result = new int[this.batchParameters.size()]; + if (this.batchParameters.isEmpty()) { + return result; + } + if (useWriteAPI()) { + try (BigQueryWriteClient writeClient = this.connection.getBigQueryWriteClient()) { + LOG.info("Using Write API for bulk INSERT operation."); + ArrayList currentParameterList = this.batchParameters.peek(); + if (this.insertSchema == null && this.insertTableName == null) { + QueryStatistics insertJobQueryStatistics = + getQueryStatistics(getWriteBatchJobConfiguration(currentParameterList)); + setInsertMetadata(insertJobQueryStatistics); + } + + long rowCount = bulkInsertWithWriteAPI(writeClient); + int[] insertArray = new int[Math.toIntExact(rowCount)]; + Arrays.fill(insertArray, 1); + return insertArray; + + } catch (DescriptorValidationException | IOException | InterruptedException e) { + throw new BigQueryJdbcRuntimeException(e); + } + + } else { + try { + LOG.info("Using individual INSERT query runs."); + int count = this.batchParameters.size(); + StringBuilder combinedQuery = new StringBuilder(); + for (int i = 0; i < count; i++) { + + if (this.currentQuery.trim().endsWith(";")) { + combinedQuery.append(this.currentQuery); + } else { + combinedQuery.append(this.currentQuery).append(";"); + } + } + // executeBatch in PreparedStatement is used for BulkInsert/DML. + // If not correct Type, fails later. + runQuery( + combinedQuery.toString(), getStandardBatchJobConfiguration(combinedQuery.toString())); + int i = 0; + while (getUpdateCount() != -1 && i < count) { + result[i] = getUpdateCount(); + getMoreResults(); + i++; + } + return result; + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } catch (SQLException e) { + throw new BigQueryJdbcException(e); + } + } + } + + private long bulkInsertWithWriteAPI(BigQueryWriteClient bigQueryWriteClient) + throws DescriptorValidationException, + IOException, + InterruptedException, + BigQueryJdbcException { + LOG.finest("++enter++"); + RetrySettings retrySettings = this.connection.getRetrySettings(); + + BigQueryJdbcBulkInsertWriter bulkInsertWriter = new BigQueryJdbcBulkInsertWriter(); + bulkInsertWriter.initialize(this.insertTableName, bigQueryWriteClient, retrySettings); + + try { + long offset = 0; + JsonArray jsonArray = new JsonArray(); + Gson gson = new Gson(); + int count = this.batchParameters.size(); + for (int i = 0; i < count; i++) { + + ArrayList parameterList = this.batchParameters.poll(); + FieldList fieldLists = this.insertSchema.getFields(); + if (fieldLists.size() == parameterList.size()) { + + JsonObject rowObject = new JsonObject(); + for (int j = 0; j < parameterList.size(); j++) { + BigQueryJdbcParameter parameter = parameterList.get(j); + if (parameter.getSqlType() == StandardSQLTypeName.STRING) { + rowObject.addProperty(fieldLists.get(j).getName(), parameter.getValue().toString()); + } else { + rowObject.addProperty(fieldLists.get(j).getName(), gson.toJson(parameter.getValue())); + } + } + jsonArray.add(rowObject); + + if (jsonArray.size() == this.querySettings.getWriteAPIAppendRowCount() + || this.batchParameters.size() == 0) { + bulkInsertWriter.append(jsonArray, offset); + LOG.finest("Append called "); + offset += jsonArray.size(); + jsonArray = new JsonArray(); + } + } else { + throw new BigQueryJdbcException("Mismatch between field count and parameter count."); + } + } + } catch (BigQueryJdbcException e) { + throw new RuntimeException(e); + } + + long rowCount = bulkInsertWriter.cleanup(bigQueryWriteClient); + + BatchCommitWriteStreamsRequest commitRequest = + BatchCommitWriteStreamsRequest.newBuilder() + .setParent(this.insertTableName.toString()) + .addWriteStreams(bulkInsertWriter.getStreamName()) + .build(); + BatchCommitWriteStreamsResponse commitResponse = + bigQueryWriteClient.batchCommitWriteStreams(commitRequest); + if (commitResponse.hasCommitTime() == false) { + throw new BigQueryJdbcException("Error committing the streams"); + } + LOG.finest("Commit called."); + return rowCount; + } + + private void setInsertMetadata(QueryStatistics statistics) throws SQLException { + LOG.finest("++enter++"); + if (!statistics.getStatementType().equals(StatementType.INSERT) + || statistics.getSchema() == null + || statistics.getReferencedTables().stream().distinct().count() > 1) { + throw new BigQueryJdbcException( + "Use java.sql.Statement.executeBatch() for heterogeneous DML batches"); + } + + this.insertSchema = statistics.getSchema(); + TableId tableID = statistics.getReferencedTables().get(0); + this.insertTableName = + TableName.of(tableID.getProject(), tableID.getDataset(), tableID.getTable()); + LOG.finest( + String.format( + "this.insertTableName : %s, this.insertSchema : %s", + this.insertTableName, this.insertSchema.toString())); + } + + QueryJobConfiguration getWriteBatchJobConfiguration( + ArrayList currentParameterList) throws SQLException { + LOG.finest("++enter++"); + BigQueryParameterHandler batchHandler = + new BigQueryParameterHandler(this.parameterCount, currentParameterList); + QueryJobConfiguration.Builder jobConfiguration = getJobConfig(this.currentQuery); + jobConfiguration.setParameterMode("POSITIONAL"); + jobConfiguration = batchHandler.configureParameters(jobConfiguration); + return jobConfiguration.build(); + } + + QueryJobConfiguration getStandardBatchJobConfiguration(String query) throws SQLException { + LOG.finest("++enter++"); + QueryJobConfiguration.Builder jobConfiguration = getJobConfig(query); + jobConfiguration.setParameterMode("POSITIONAL"); + jobConfiguration.setPriority(QueryJobConfiguration.Priority.BATCH); + int index = 0; + while (!this.batchParameters.isEmpty()) { + ArrayList parameterList = this.batchParameters.poll(); + + for (BigQueryJdbcParameter parameter : parameterList) { + Object parameterValue = parameter.getValue(); + StandardSQLTypeName sqlType = parameter.getSqlType(); + LOG.finest( + String.format( + "Parameter %s of type %s at index %s added to QueryJobConfiguration", + parameterValue, sqlType, index++)); + jobConfiguration.addPositionalParameter(QueryParameterValue.of(parameterValue, sqlType)); + } + } + return jobConfiguration.build(); + } + + Boolean useWriteAPI() { + LOG.finest("++enter++"); + if (this.querySettings.isUseWriteAPI()) { + if (this.batchParameters.size() >= this.querySettings.getWriteAPIActivationRowCount()) { + return true; + } + } + return false; + } + + @Override + public void setCharacterStream(int parameterIndex, Reader reader, int length) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setRef(int parameterIndex, Ref x) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setBlob(int parameterIndex, Blob x) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setClob(int parameterIndex, Clob x) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setArray(int parameterIndex, Array x) { + // TODO(neenu) :IMPLEMENT ARRAY + } + + @Override + public ResultSetMetaData getMetaData() { + // TODO(neenu) :IMPLEMENT metadata + return null; + } + + @Override + public void setDate(int parameterIndex, Date x, Calendar cal) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setTime(int parameterIndex, Time x, Calendar cal) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setTimestamp(int parameterIndex, Timestamp x, Calendar cal) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setNull(int parameterIndex, int sqlType, String typeName) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setURL(int parameterIndex, URL x) { + // TODO :NOT IMPLEMENTED + } + + @Override + public ParameterMetaData getParameterMetaData() { + // TODO(neenu) :IMPLEMENT + return null; + } + + @Override + public void setRowId(int parameterIndex, RowId x) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setNString(int parameterIndex, String value) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setNCharacterStream(int parameterIndex, Reader value, long length) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setNClob(int parameterIndex, NClob value) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setClob(int parameterIndex, Reader reader, long length) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setBlob(int parameterIndex, InputStream inputStream, long length) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setNClob(int parameterIndex, Reader reader, long length) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setSQLXML(int parameterIndex, SQLXML xmlObject) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setObject(int parameterIndex, Object x, int targetSqlType, int scaleOrLength) { + // TODO(neenu) : IMPLEMENT? + } + + @Override + public void setAsciiStream(int parameterIndex, InputStream x, long length) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setBinaryStream(int parameterIndex, InputStream x, long length) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setCharacterStream(int parameterIndex, Reader reader, long length) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setAsciiStream(int parameterIndex, InputStream x) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setBinaryStream(int parameterIndex, InputStream x) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setCharacterStream(int parameterIndex, Reader reader) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setNCharacterStream(int parameterIndex, Reader value) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setClob(int parameterIndex, Reader reader) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setBlob(int parameterIndex, InputStream inputStream) { + // TODO :NOT IMPLEMENTED + } + + @Override + public void setNClob(int parameterIndex, Reader reader) { + // TODO :NOT IMPLEMENTED + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSet.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSet.java new file mode 100644 index 000000000000..c24e37abddfc --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSet.java @@ -0,0 +1,46 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; + +public interface BigQueryResultSet { + /* + * This function returns Job Id for the corresponding BQ Job that generated result. + * Note that it is not available for certain queries (low-latency queries) and for metadata results. + * + * @return JobId object or null. + */ + public JobId getJobId(); + + /* + * This function returns Query Id for the corresponding low-latency query produced results. + * It is null for regular (non-low latency) jobs and metadata results. + * + * @return Query Id string or null. + */ + public String getQueryId(); + + /* + * Returns com.google.cloud.bigquery.JobStatistics.QueryStatistics object with statistics for the + * completed Job for non-low latency queries. + * + * @return QueryStatistics object or null. + */ + public QueryStatistics getQueryStatistics(); +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizers.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizers.java new file mode 100644 index 000000000000..15a1cca349f1 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizers.java @@ -0,0 +1,73 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.core.InternalApi; +import java.lang.ref.PhantomReference; +import java.lang.ref.ReferenceQueue; + +@InternalApi +class BigQueryResultSetFinalizers { + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryResultSetFinalizers.class.getName()); + + @InternalApi + static class ArrowResultSetFinalizer extends PhantomReference { + Thread ownedThread; + + public ArrowResultSetFinalizer( + BigQueryArrowResultSet referent, + ReferenceQueue q, + Thread ownedThread) { + super(referent, q); + this.ownedThread = ownedThread; + } + + // Free resources. Remove all the hard refs + public void finalizeResources() { + LOG.finest("++enter++"); + if (ownedThread != null && !ownedThread.isInterrupted()) { + ownedThread.interrupt(); + } + } + } + + @InternalApi + static class JsonResultSetFinalizer extends PhantomReference { + Thread[] ownedThreads; + + public JsonResultSetFinalizer( + BigQueryJsonResultSet referent, + ReferenceQueue q, + Thread[] ownedThreads) { + super(referent, q); + this.ownedThreads = ownedThreads; + } + + // Free resources. Remove all the hard refs + public void finalizeResources() { + LOG.finest("++enter++"); + if (ownedThreads != null) { + for (Thread ownedThread : ownedThreads) { + if (!ownedThread.isInterrupted()) { + ownedThread.interrupt(); + } + } + } + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadata.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadata.java new file mode 100644 index 000000000000..d18c689333a4 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadata.java @@ -0,0 +1,213 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Field.Mode; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlFeatureNotSupportedException; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.Types; + +/** This class returns ResultSetMetadata for the JSON and the Arrow ResultSets */ +class BigQueryResultSetMetadata implements ResultSetMetaData { + private final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + private final FieldList schemaFieldList; + private final Statement statement; + private final int columnCount; + + private static final int DEFAULT_DISPLAY_SIZE = 50; + + private BigQueryResultSetMetadata(FieldList schemaFieldList, Statement statement) { + LOG.finest("++enter++"); + this.schemaFieldList = schemaFieldList; + this.columnCount = schemaFieldList.size(); + this.statement = statement; + } + + static BigQueryResultSetMetadata of(FieldList schemaFieldList, Statement statement) { + return new BigQueryResultSetMetadata(schemaFieldList, statement); + } + + private Field getField(int sqlColumn) { + return this.schemaFieldList.get(sqlColumn - 1); + } + + @Override + public int getColumnCount() { + return this.columnCount; + } + + @Override + public boolean isAutoIncrement(int column) { + // BQ doesn't support auto increment + return false; + } + + @Override + public boolean isCaseSensitive(int column) { + int colType = getColumnType(column); + return colType == Types.NVARCHAR; + } + + @Override + public boolean isSearchable(int column) { + int colType = getColumnType(column); + return colType != Types.OTHER; + } + + @Override + public boolean isCurrency(int column) { + return false; + } + + @Override + public int isNullable(int column) { + Mode colMode = getField(column).getMode(); + if (colMode == null) { + return ResultSetMetaData.columnNullableUnknown; + } + return colMode == Mode.NULLABLE + ? ResultSetMetaData.columnNullable + : ResultSetMetaData.columnNoNulls; + } + + @Override + public boolean isSigned(int column) { + int colType = getColumnType(column); + return colType == Types.FLOAT + || colType == Types.DOUBLE + || colType == Types.BIGINT + || colType == Types.NUMERIC; + } + + @Override + public int getColumnDisplaySize(int column) { + int colType = getColumnType(column); + switch (colType) { + case Types.BOOLEAN: + return 5; + case Types.DATE: + case Types.BIGINT: + return 10; + case Types.DOUBLE: + case Types.DECIMAL: + case Types.NUMERIC: + return 14; + case Types.TIMESTAMP: + return 16; + default: + return DEFAULT_DISPLAY_SIZE; + } + } + + @Override + public String getColumnLabel(int column) { + return getField(column).getName(); + } + + @Override + public String getColumnName(int column) { + return getField(column).getName(); + } + + @Override + public int getPrecision(int column) { + return (int) (getField(column).getPrecision() != null ? getField(column).getPrecision() : 0); + } + + @Override + public int getScale(int column) { + return (int) (getField(column).getScale() != null ? getField(column).getScale() : 0); + } + + @Override + public String getTableName(int column) { + // returning "" as per the specs as there might be multiple tables involved, or we + // might be reading from the temp table + return ""; + } + + @Override + public String getCatalogName(int column) { + return ""; // not applicable + } + + @Override + public String getSchemaName(int column) { + return ""; // not applicable + } + + private StandardSQLTypeName getStandardSQLTypeName(int column) { + Field field = getField(column); + if (field.getMode() == Mode.REPEATED) { + return StandardSQLTypeName.ARRAY; + } + return getField(column).getType().getStandardType(); + } + + @Override + public int getColumnType(int column) { + return BigQueryJdbcTypeMappings.standardSQLToJavaSqlTypesMapping.get( + getStandardSQLTypeName(column)); + } + + @Override + public String getColumnTypeName(int column) { + return getStandardSQLTypeName(column).name(); + } + + @Override + public boolean isReadOnly(int column) { + return false; + } + + @Override + public boolean isWritable(int column) { + return !isReadOnly(column); + } + + @Override + public boolean isDefinitelyWritable(int column) { + return false; + } + + @Override + public String getColumnClassName(int column) { + Field field = getField(column); + if (field.getMode() == Mode.REPEATED) { + return java.sql.Array.class.getName(); + } + return BigQueryJdbcTypeMappings.standardSQLToJavaTypeMapping + .get(field.getType().getStandardType()) + .getName(); + } + + // Unsupported methods: + @Override + public T unwrap(Class iface) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException("unwrap is not implemented"); + } + + @Override + public boolean isWrapperFor(Class iface) throws SQLException { + throw new BigQueryJdbcSqlFeatureNotSupportedException("isWrapperFor is not implemented"); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySettings.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySettings.java new file mode 100644 index 000000000000..16f13a7784ae --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySettings.java @@ -0,0 +1,857 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.Clustering; +import com.google.cloud.bigquery.ConnectionProperty; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.EncryptionConfiguration; +import com.google.cloud.bigquery.ExternalTableDefinition; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryJobConfiguration.Priority; +import com.google.cloud.bigquery.RangePartitioning; +import com.google.cloud.bigquery.TimePartitioning; +import com.google.cloud.bigquery.UserDefinedFunction; +import java.util.List; +import java.util.Map; + +/** This class is used to pass user defined settings for execution of Queries. */ +// TODO: Expose this class as public once we decide on how to expose the slow +// query path to the end users. IMP: revisit the set of params to be exposed via BigQuerySettings +class BigQuerySettings { + + private final boolean useReadAPI; + private final int highThroughputActivationRatio; + private final int highThroughputMinTableSize; + private final boolean unsupportedHTAPIFallback; + + private final boolean enableSession; + + private final ConnectionProperty sessionInfoConnectionProperty; + + private final boolean useQueryCache; + private final String queryDialect; + private final List queryProperties; + private final Boolean allowLargeResults; + private final String kmsKeyName; + private final Clustering clustering; + + private final JobInfo.CreateDisposition createDisposition; + + private final EncryptionConfiguration destinationEncryptionConfiguration; + + private final String destinationTable; + private final String destinationDataset; + private final long destinationDatasetExpirationTime; + + private final long jobTimeoutMs; + + private final int maximumBillingTier; + + private final QueryJobConfiguration.Priority priority; + + private final RangePartitioning rangePartitioning; + + private final List schemaUpdateOptions; + + private final Map tableDefinitions; + + private final TimePartitioning timePartitioning; + + private final List userDefinedFunctions; + + private final JobInfo.WriteDisposition writeDisposition; + + private final int numBufferedRows; + + private final long maxResultPerPage; + + private final DatasetId defaultDataset; + + private final boolean useWriteAPI; + private final int writeAPIActivationRowCount; + private final int writeAPIAppendRowCount; + + private final long maxBytesBilled; + private final Map labels; + + private BigQuerySettings(Builder builder) { + this.useReadAPI = builder.useReadAPI; + this.highThroughputActivationRatio = builder.highThroughputActivationRatio; + this.highThroughputMinTableSize = builder.highThroughputMinTableSize; + this.useQueryCache = builder.useQueryCache; + this.queryDialect = builder.queryDialect; + this.queryProperties = builder.queryProperties; + this.allowLargeResults = builder.allowLargeResults; + this.kmsKeyName = builder.kmsKeyName; + this.clustering = builder.clustering; + this.createDisposition = builder.createDisposition; + this.destinationEncryptionConfiguration = builder.destinationEncryptionConfiguration; + this.destinationTable = builder.destinationTable; + this.destinationDataset = builder.destinationDataset; + this.destinationDatasetExpirationTime = builder.destinationDatasetExpirationTime; + this.jobTimeoutMs = builder.jobTimeoutMs; + this.maximumBillingTier = builder.maximumBillingTier; + this.priority = builder.priority; + this.rangePartitioning = builder.rangePartitioning; + this.schemaUpdateOptions = builder.schemaUpdateOptions; + this.tableDefinitions = builder.tableDefinitions; + this.timePartitioning = builder.timePartitioning; + this.userDefinedFunctions = builder.userDefinedFunctions; + this.writeDisposition = builder.writeDisposition; + this.numBufferedRows = builder.numBufferedRows; + this.maxResultPerPage = builder.maxResultPerPage; + this.defaultDataset = builder.defaultDataset; + this.enableSession = builder.enableSession; + this.unsupportedHTAPIFallback = builder.unsupportedHTAPIFallback; + this.sessionInfoConnectionProperty = builder.sessionInfoConnectionProperty; + this.useWriteAPI = builder.useWriteAPI; + this.writeAPIActivationRowCount = builder.writeAPIActivationRowCount; + this.writeAPIAppendRowCount = builder.writeAPIAppendRowCount; + this.maxBytesBilled = builder.maxBytesBilled; + this.labels = builder.labels; + } + + /** Returns a builder for a BigQuerySettings object. */ + static Builder newBuilder() { + return new Builder(); + } + + /** + * Returns useReadAPI flag, enabled by default. Read API will be used if the underlying conditions + * are satisfied and this flag is enabled + */ + Boolean getUseReadAPI() { + return useReadAPI; + } + + /** + * Returns integer value for when the connector switches to BigQuery Storage API when the number + * of pages and rows in query results exceed this value and HighThroughPutMinTableSize, + * respectively. + */ + int getHighThroughputActivationRatio() { + return highThroughputActivationRatio; + } + + /** + * Returns integer value for when query results are large, exceeding both row and page limits, the + * connector switches to the BigQuery Storage API for faster processing. + */ + int getHighThroughputMinTableSize() { + return highThroughputMinTableSize; + } + + /** + * Determines if session features are enabled. + * + *

    Enabling session-level features allows for capturing SQL activities or enabling + * multi-statement transactions. Session tracking is disabled by default. + * + * @return true if session is enabled, false otherwise. + */ + boolean isEnableSession() { + return enableSession; + } + + /** + * When the connector uses fetch workflows not supported on the High-Throughput API, this option + * specifies whether the connector falls back to the REST API or returns an error. By default it + * falls back to standard API. + * + * @return true if falls back to standard, false to error. + */ + boolean isUnsupportedHTAPIFallback() { + return unsupportedHTAPIFallback; + } + + /** + * Returns information about the BigQuery session ConnectionProperty associated with this job. + * + *

    BigQuery's sessions provide a way to link multiple jobs and maintain temporary data, such as + * temporary tables, between them. They are needed for using multi-statement transactions that + * span across multiple queries. + * + * @return An instance of {@link ConnectionProperty} containing session details, or {@code null} + * if this job is not part of a session. + */ + ConnectionProperty getSessionInfoConnectionProperty() { + return sessionInfoConnectionProperty; + } + + Boolean getUseQueryCache() { + return useQueryCache; + } + + String getQueryDialect() { + return queryDialect; + } + + List getQueryProperties() { + return this.queryProperties; + } + + /** + * Returns the KMS resource name which is the unique identifier you give to your encryption key in + * Google Cloud's Key Management Service (KMS). Tells BigQuery which key to use when encrypting or + * decrypting your data. + */ + String getKmsKeyName() { + return kmsKeyName; + } + + Boolean getAllowLargeResults() { + return allowLargeResults; + } + + /** Returns the clustering specification for the destination table. */ + Clustering getClustering() { + return clustering; + } + + /** + * Returns whether the job is allowed to create new tables. + * + * @see + * Create Disposition + */ + JobInfo.CreateDisposition getCreateDisposition() { + return createDisposition; + } + + /** Returns the custom encryption configuration (e.g., Cloud KMS keys) */ + EncryptionConfiguration getDestinationEncryptionConfiguration() { + return destinationEncryptionConfiguration; + } + + /** + * Returns the table where you want to store query results. If not provided a default temp table + * is created when needed. + */ + String getDestinationTable() { + return destinationTable; + } + + /** + * Returns the dataset where you want to store query results. If not provided a default dataset is + * created when needed. + */ + String getDestinationDataset() { + return destinationDataset; + } + + long getDestinationDatasetExpirationTime() { + return destinationDatasetExpirationTime; + } + + /** Returns the timeout associated with this job */ + Long getJobTimeoutMs() { + return jobTimeoutMs; + } + + /** Returns the optional billing tier limit for this job. */ + Integer getMaximumBillingTier() { + return maximumBillingTier; + } + + /** Returns the query priority. */ + QueryJobConfiguration.Priority getPriority() { + return priority; + } + + /** Returns the range partitioning specification for the table */ + RangePartitioning getRangePartitioning() { + return rangePartitioning; + } + + /** + * Returns options allowing the schema of the destination table to be updated as a side effect of + * the query job. Schema update options are supported in two cases: when writeDisposition is + * WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition + * of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always + * overwrite the schema. + */ + List getSchemaUpdateOptions() { + return schemaUpdateOptions; + } + + /** + * Returns the external tables definitions. If querying external data sources outside BigQuery, + * this value describes the data format, location and other properties of the data sources. By + * defining these properties, the data sources can be queried as if they were standard BigQuery + * tables. + */ + Map getTableDefinitions() { + return tableDefinitions; + } + + /** Returns the time partitioning specification for the destination table. */ + TimePartitioning getTimePartitioning() { + return timePartitioning; + } + + /** + * Returns user defined function resources that can be used by this query. Function resources can + * either be defined inline ({@link UserDefinedFunction.Type#INLINE}) or loaded from a Google + * Cloud Storage URI ({@link UserDefinedFunction.Type#FROM_URI}. + */ + List getUserDefinedFunctions() { + return userDefinedFunctions; + } + + /** + * Returns the action that should occur if the destination table already exists. + * + * @see + * Write Disposition + */ + JobInfo.WriteDisposition getWriteDisposition() { + return writeDisposition; + } + + /** Returns the number of rows of data to pre-fetch */ + Integer getNumBufferedRows() { + return numBufferedRows; + } + + Long getMaxResultPerPage() { + return maxResultPerPage; + } + + DatasetId getDefaultDataset() { + return defaultDataset; + } + + boolean isUseWriteAPI() { + return useWriteAPI; + } + + int getWriteAPIActivationRowCount() { + return writeAPIActivationRowCount; + } + + int getWriteAPIAppendRowCount() { + return writeAPIAppendRowCount; + } + + long getMaxBytesBilled() { + return maxBytesBilled; + } + + Map getLabels() { + return labels; + } + + @Override + public String toString() { + return "BigQuerySettings{" + + "enableSession=" + + enableSession + + ", " + + "unsupportedHTAPIFallback=" + + unsupportedHTAPIFallback + + ", " + + "sessionInfo=" + + sessionInfoConnectionProperty + + ", " + + "useReadAPI=" + + useReadAPI + + ", " + + "kmsKeyName=" + + kmsKeyName + + ", " + + "highThroughputMinTableSize=" + + highThroughputMinTableSize + + ", " + + "highThroughputActivationRatio=" + + highThroughputActivationRatio + + ", " + + "useQueryCache=" + + useQueryCache + + ", " + + "queryDialect=" + + queryDialect + + ", " + + "queryProperties=" + + queryProperties + + ", " + + "allowLargeResults=" + + allowLargeResults + + ", " + + "clustering=" + + clustering + + ", " + + "createDisposition=" + + createDisposition + + ", " + + "destinationEncryptionConfiguration=" + + destinationEncryptionConfiguration + + ", " + + "destinationTable=" + + destinationTable + + ", " + + "destinationDataset=" + + destinationDataset + + ", " + + "destinationDatasetExpirationTime=" + + destinationDatasetExpirationTime + + ", " + + "jobTimeoutMs=" + + jobTimeoutMs + + ", " + + "maximumBillingTier=" + + maximumBillingTier + + ", " + + "priority=" + + priority + + ", " + + "rangePartitioning=" + + rangePartitioning + + ", " + + "schemaUpdateOptions=" + + schemaUpdateOptions + + ", " + + "tableDefinitions=" + + tableDefinitions + + ", " + + "timePartitioning=" + + timePartitioning + + ", " + + "userDefinedFunctions=" + + userDefinedFunctions + + ", " + + "writeDisposition=" + + writeDisposition + + ", " + + "numBufferedRows=" + + numBufferedRows + + ", " + + "maxResultPerPage=" + + maxResultPerPage + + ", " + + "defaultDataset=" + + defaultDataset + + ", " + + "useWriteAPI=" + + useWriteAPI + + ", " + + "writeAPIActivationRowCount=" + + writeAPIActivationRowCount + + ", " + + "writeAPIAppendRowCount=" + + writeAPIAppendRowCount + + ", " + + "maxBytesBilled=" + + maxBytesBilled + + "}"; + } + + /** Returns a builder pre-populated using the current values of this field. */ + Builder toBuilder() { + return new Builder(this); + } + + static final class Builder { + + private boolean useReadAPI; + private int highThroughputMinTableSize; + private int highThroughputActivationRatio; + private boolean enableSession; + private boolean unsupportedHTAPIFallback; + private ConnectionProperty sessionInfoConnectionProperty; + private boolean useQueryCache; + private String queryDialect; + private List queryProperties; + private Boolean allowLargeResults; + private String kmsKeyName; + private Clustering clustering; + private JobInfo.CreateDisposition createDisposition; + private EncryptionConfiguration destinationEncryptionConfiguration; + private String destinationTable; + private String destinationDataset; + private long destinationDatasetExpirationTime; + private long jobTimeoutMs; + private int maximumBillingTier; + private QueryJobConfiguration.Priority priority; + private RangePartitioning rangePartitioning; + private List schemaUpdateOptions; + private Map tableDefinitions; + private TimePartitioning timePartitioning; + private List userDefinedFunctions; + private JobInfo.WriteDisposition writeDisposition; + private int numBufferedRows; + private long maxResultPerPage; + private DatasetId defaultDataset; + private boolean useWriteAPI; + private int writeAPIActivationRowCount; + private int writeAPIAppendRowCount; + private long maxBytesBilled; + private Map labels; + + Builder() { + this.withDefaultValues(); + } + + private Builder(BigQuerySettings querySettings) { + this.useReadAPI = querySettings.getUseReadAPI(); + this.highThroughputMinTableSize = querySettings.getHighThroughputMinTableSize(); + this.highThroughputActivationRatio = querySettings.getHighThroughputActivationRatio(); + this.enableSession = querySettings.isEnableSession(); + this.unsupportedHTAPIFallback = querySettings.isUnsupportedHTAPIFallback(); + this.sessionInfoConnectionProperty = querySettings.getSessionInfoConnectionProperty(); + this.useQueryCache = querySettings.getUseQueryCache(); + this.queryDialect = querySettings.getQueryDialect(); + this.queryProperties = querySettings.getQueryProperties(); + this.allowLargeResults = querySettings.getAllowLargeResults(); + this.kmsKeyName = querySettings.getKmsKeyName(); + this.clustering = querySettings.getClustering(); + this.createDisposition = querySettings.getCreateDisposition(); + this.destinationEncryptionConfiguration = + querySettings.getDestinationEncryptionConfiguration(); + this.destinationTable = querySettings.getDestinationTable(); + this.destinationDataset = querySettings.getDestinationDataset(); + this.destinationDatasetExpirationTime = querySettings.destinationDatasetExpirationTime; + this.jobTimeoutMs = querySettings.getJobTimeoutMs(); + this.maximumBillingTier = querySettings.getMaximumBillingTier(); + this.priority = querySettings.getPriority(); + this.rangePartitioning = querySettings.getRangePartitioning(); + this.schemaUpdateOptions = querySettings.getSchemaUpdateOptions(); + this.tableDefinitions = querySettings.getTableDefinitions(); + this.timePartitioning = querySettings.getTimePartitioning(); + this.userDefinedFunctions = querySettings.getUserDefinedFunctions(); + this.writeDisposition = querySettings.getWriteDisposition(); + this.numBufferedRows = querySettings.getNumBufferedRows(); + this.maxResultPerPage = querySettings.getMaxResultPerPage(); + this.defaultDataset = querySettings.getDefaultDataset(); + this.useWriteAPI = querySettings.isUseWriteAPI(); + this.writeAPIActivationRowCount = querySettings.getWriteAPIActivationRowCount(); + this.writeAPIAppendRowCount = querySettings.getWriteAPIAppendRowCount(); + this.maxBytesBilled = querySettings.getMaxBytesBilled(); + this.labels = querySettings.getLabels(); + } + + Builder withDefaultValues() { + return setUseReadAPI(false) // Read API is disabled by default; + .setQueryDialect(BigQueryJdbcUrlUtility.DEFAULT_QUERY_DIALECT_VALUE) + .setNumBufferedRows(10000) // 10K records will be kept in the buffer (Blocking Queue); + .setMaxResultPerPage(BigQueryJdbcUrlUtility.DEFAULT_MAX_RESULTS_VALUE); + } + + /** + * Sets useReadAPI flag, enabled by default. Read API will be used if the underlying conditions + * are satisfied and this flag is enabled + * + * @param useReadAPI or {@code true} for none + */ + Builder setUseReadAPI(boolean useReadAPI) { + this.useReadAPI = useReadAPI; + return this; + } + + /** + * Sets the minimum table size for which the BigQuery Storage API will be used. + * + *

    When query results are large, exceeding both the row and page limits, the connector + * automatically switches to the BigQuery Storage API for faster processing. This method allows + * you to configure a threshold for table size, enabling the use of the BigQuery Storage API + * when the limit is exceeded, provided the table size exceeds the specified value. + * + * @param highThroughputMinTableSize the minimum table size to trigger the use of the BigQuery + * Storage API + */ + Builder setHighThroughputMinTableSize(int highThroughputMinTableSize) { + this.highThroughputMinTableSize = highThroughputMinTableSize; + return this; + } + + /** + * Sets the activation ratio for switching to the BigQuery Storage API. + * + *

    The connector switches to the BigQuery Storage API when the number of pages in the query + * results exceeds this value AND the table size is greater than or equal to the value set or + * default value of {@link #setHighThroughputMinTableSize(int)}. + * + * @param highThroughputActivationRatio the activation ratio for switching to BigQuery Storage + * API + */ + Builder setHighThroughputActivationRatio(int highThroughputActivationRatio) { + this.highThroughputActivationRatio = highThroughputActivationRatio; + return this; + } + + /** + * setting true, enables session-level features such as capturing SQL activities or enabling + * multi-statement transactions. Session tracking is disabled by default. + */ + Builder setEnableSession(boolean enableSession) { + this.enableSession = enableSession; + return this; + } + + /** + * When the connector uses fetch workflows not supported on the High-Throughput API, this option + * specifies whether the connector falls back to the REST API or returns an error. By default it + * falls back to standard API. + * + * @param unsupportedHTAPIFallback true if falls back to standard, false to error. + */ + Builder setUnsupportedHTAPIFallback(boolean unsupportedHTAPIFallback) { + this.unsupportedHTAPIFallback = unsupportedHTAPIFallback; + return this; + } + + /** + * Setting session information associated with the job. + * + *

    BigQuery's sessions provide a way to link multiple jobs and maintain temporary data, such + * as temporary tables, between them. They are needed for using multi-statement transactions + * that span across multiple queries. + */ + Builder setSessionInfoConnectionProperty(ConnectionProperty sessionInfoConnectionProperty) { + this.sessionInfoConnectionProperty = sessionInfoConnectionProperty; + return this; + } + + Builder setUseQueryCache(boolean useQueryCache) { + this.useQueryCache = useQueryCache; + return this; + } + + Builder setAllowLargeResults(Boolean allowLargeResults) { + this.allowLargeResults = allowLargeResults; + return this; + } + + /** + * Set the KMS resource key name which is the unique identifier you give to your encryption key + * in Google Cloud's Key Management Service (KMS). Tells BigQuery which key to use when + * encrypting or decrypting your data. + */ + Builder setKmsKeyName(String kmsKeyName) { + this.kmsKeyName = kmsKeyName; + return this; + } + + Builder setQueryDialect(String queryDialect) { + this.queryDialect = queryDialect; + return this; + } + + Builder setQueryProperties(List queryProperties) { + this.queryProperties = queryProperties; + return this; + } + + /** Sets the clustering specification for the destination table. */ + Builder setClustering(Clustering clustering) { + this.clustering = clustering; + return this; + } + + /** + * Sets whether the job is allowed to create tables. + * + * @see + * Create Disposition + */ + Builder setCreateDisposition(JobInfo.CreateDisposition createDisposition) { + this.createDisposition = createDisposition; + return this; + } + + /** + * Sets the custom encryption configuration (e.g., Cloud KMS keys). + * + * @param destinationEncryptionConfiguration destinationEncryptionConfiguration or {@code null} + * for none + */ + Builder setDestinationEncryptionConfiguration( + EncryptionConfiguration destinationEncryptionConfiguration) { + this.destinationEncryptionConfiguration = destinationEncryptionConfiguration; + return this; + } + + Builder setDestinationTable(String destinationTable) { + this.destinationTable = destinationTable; + return this; + } + + Builder setDestinationDataset(String destinationDataset) { + this.destinationDataset = destinationDataset; + return this; + } + + Builder setDestinationDatasetExpirationTime(long destinationDatasetExpirationTime) { + this.destinationDatasetExpirationTime = destinationDatasetExpirationTime; + return this; + } + + /** + * [Optional] Job timeout in milliseconds. If this time limit is exceeded, BigQuery may attempt + * to terminate the job. + * + * @param jobTimeoutMs jobTimeoutMs or {@code null} for none + */ + Builder setJobTimeoutMs(long jobTimeoutMs) { + this.jobTimeoutMs = jobTimeoutMs; + return this; + } + + /** + * Limits the billing tier for this job. Queries that have resource usage beyond this tier will + * fail (without incurring a charge). If unspecified, this will be set to your project default. + * + * @param maximumBillingTier maximum billing tier for this job + */ + Builder setMaximumBillingTier(int maximumBillingTier) { + this.maximumBillingTier = maximumBillingTier; + return this; + } + + /** + * Sets a priority for the query. If not specified the priority is assumed to be {@link + * Priority#INTERACTIVE}. + */ + Builder setPriority(QueryJobConfiguration.Priority priority) { + this.priority = priority; + return this; + } + + /** + * Range partitioning specification for this table. Only one of timePartitioning and + * rangePartitioning should be specified. + * + * @param rangePartitioning rangePartitioning or {@code null} for none + */ + Builder setRangePartitioning(RangePartitioning rangePartitioning) { + this.rangePartitioning = rangePartitioning; + return this; + } + + /** + * Sets options allowing the schema of the destination table to be updated as a side effect of + * the query job. Schema update options are supported in two cases: when writeDisposition is + * WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a + * partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE + * will always overwrite the schema. + */ + Builder setSchemaUpdateOptions(List schemaUpdateOptions) { + this.schemaUpdateOptions = schemaUpdateOptions; + return this; + } + + /** + * Sets the external tables definitions. If querying external data sources outside BigQuery, + * this value describes the data format, location and other properties of the data sources. By + * defining these properties, the data sources can be queried as if they were standard BigQuery + * tables. + */ + Builder setTableDefinitions(Map tableDefinitions) { + this.tableDefinitions = tableDefinitions; + return this; + } + + /** Sets the time partitioning specification for the destination table. */ + Builder setTimePartitioning(TimePartitioning timePartitioning) { + this.timePartitioning = timePartitioning; + return this; + } + + /** + * Sets user defined function resources that can be used by this query. Function resources can + * either be defined inline ({@link UserDefinedFunction#inline(String)}) or loaded from a Google + * Cloud Storage URI ({@link UserDefinedFunction#fromUri(String)}. + */ + Builder setUserDefinedFunctions(List userDefinedFunctions) { + this.userDefinedFunctions = userDefinedFunctions; + return this; + } + + /** + * Sets the action that should occur if the destination table already exists. + * + * @see + * Write Disposition + */ + Builder setWriteDisposition(JobInfo.WriteDisposition writeDisposition) { + this.writeDisposition = writeDisposition; + return this; + } + + /** + * Sets the number of rows in the buffer (a blocking queue) that query results are consumed + * from. + * + * @param numBufferedRows numBufferedRows or {@code null} for none + */ + Builder setNumBufferedRows(int numBufferedRows) { + this.numBufferedRows = numBufferedRows; + return this; + } + + /** + * Sets the maximum records per page to be used for pagination. This is used as an input for the + * tabledata.list and jobs.getQueryResults RPC calls + * + * @param maxResultPerPage + */ + Builder setMaxResultPerPage(long maxResultPerPage) { + this.maxResultPerPage = maxResultPerPage; + return this; + } + + Builder setDefaultDataset(DatasetId defaultDataset) { + this.defaultDataset = defaultDataset; + return this; + } + + Builder setUseWriteAPI(boolean useWriteAPI) { + this.useWriteAPI = useWriteAPI; + return this; + } + + Builder setWriteAPIActivationRowCount(int writeAPIActivationRowCount) { + this.writeAPIActivationRowCount = writeAPIActivationRowCount; + return this; + } + + Builder setWriteAPIAppendRowCount(int writeAPIAppendRowCount) { + this.writeAPIAppendRowCount = writeAPIAppendRowCount; + return this; + } + + Builder setMaxBytesBilled(long maxBytesBilled) { + this.maxBytesBilled = maxBytesBilled; + return this; + } + + Builder setLabels(Map labels) { + this.labels = labels; + return this; + } + + /** Creates a {@code BigQuerySettings} object. */ + BigQuerySettings build() { + return new BigQuerySettings(this); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySqlTypeConverter.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySqlTypeConverter.java new file mode 100644 index 000000000000..cfdc64a14e7f --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySqlTypeConverter.java @@ -0,0 +1,81 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.JobStatistics.QueryStatistics.StatementType; +import com.google.cloud.bigquery.jdbc.BigQueryStatement.SqlType; + +class BigQuerySqlTypeConverter { + + static SqlType getSqlTypeFromStatementType(StatementType statementType) { + switch (statementType.toString()) { + case "SELECT": + return SqlType.SELECT; + + case "INSERT": + case "UPDATE": + case "DELETE": + case "MERGE": + return SqlType.DML; + case "CALL": + return SqlType.DML_EXTRA; + + case "CREATE_TABLE": + case "CREATE_TABLE_AS_SELECT": + case "CREATE_VIEW": + case "CREATE_MODEL": + case "CREATE_MATERIALIZED_VIEW": + case "CREATE_FUNCTION": + case "CREATE_TABLE_FUNCTION": + case "CREATE_PROCEDURE": + case "CREATE_ROW_ACCESS_POLICY": + case "CREATE_SCHEMA": + case "CREATE_SNAPSHOT_TABLE": + case "CREATE_SEARCH_INDEX": + case "DROP_TABLE": + case "DROP_EXTERNAL_TABLE": + case "DROP_VIEW": + case "DROP_MODEL": + case "DROP_MATERIALIZED_VIEW": + case "DROP_FUNCTION": + case "DROP_TABLE_FUNCTION": + case "DROP_PROCEDURE": + case "DROP_SEARCH_INDEX": + case "DROP_SCHEMA": + case "DROP_SNAPSHOT_TABLE": + case "DROP_ROW_ACCESS_POLICY": + case "ALTER_TABLE": + case "ALTER_VIEW": + case "ALTER_MATERIALIZED_VIEW": + case "ALTER_SCHEMA": + case "TRUNCATE_TABLE": + case "CREATE_EXTERNAL_TABLE": + return SqlType.DDL; + case "SCRIPT": + return SqlType.SCRIPT; + case "BEGIN_TRANSACTION": + case "COMMIT_TRANSACTION": + case "ROLLBACK_TRANSACTION": + return SqlType.TCL; + case "EXPORT_DATA": + case "EXPORT_MODEL": + case "LOAD_DATA": + default: + return SqlType.OTHER; + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryStatement.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryStatement.java new file mode 100644 index 000000000000..0da08688802f --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryStatement.java @@ -0,0 +1,1522 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.core.InternalApi; +import com.google.api.gax.paging.Page; +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.JobListOption; +import com.google.cloud.bigquery.BigQuery.QueryResultsOption; +import com.google.cloud.bigquery.BigQuery.TableDataListOption; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.Dataset; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.DatasetInfo; +import com.google.cloud.bigquery.EncryptionConfiguration; +import com.google.cloud.bigquery.FieldValueList; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobConfiguration; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.JobStatistics; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics.StatementType; +import com.google.cloud.bigquery.JobStatistics.ScriptStatistics; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableResult; +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlFeatureNotSupportedException; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlSyntaxErrorException; +import com.google.cloud.bigquery.storage.v1.ArrowRecordBatch; +import com.google.cloud.bigquery.storage.v1.ArrowSchema; +import com.google.cloud.bigquery.storage.v1.BigQueryReadClient; +import com.google.cloud.bigquery.storage.v1.CreateReadSessionRequest; +import com.google.cloud.bigquery.storage.v1.DataFormat; +import com.google.cloud.bigquery.storage.v1.ReadRowsRequest; +import com.google.cloud.bigquery.storage.v1.ReadRowsResponse; +import com.google.cloud.bigquery.storage.v1.ReadSession; +import com.google.common.annotations.VisibleForTesting; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterators; +import java.lang.ref.ReferenceQueue; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.SQLWarning; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.UUID; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.ThreadFactory; +import java.util.logging.Level; + +/** + * An implementation of {@link java.sql.Statement} for executing BigQuery SQL statement and + * returning the results it produces. + * + * @see BigQueryConnection#createStatement + * @see ResultSet + */ +public class BigQueryStatement extends BigQueryNoOpsStatement { + + // TODO (obada): Update this after benchmarking + private static final int MAX_PROCESS_QUERY_THREADS_CNT = 50; + protected static ExecutorService queryTaskExecutor = + Executors.newFixedThreadPool(MAX_PROCESS_QUERY_THREADS_CNT); + private final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + private static final String DEFAULT_DATASET_NAME = "_google_jdbc"; + private static final String DEFAULT_TABLE_NAME = "temp_table_"; + private static final String JDBC_JOB_PREFIX = "google-jdbc-"; + protected ResultSet currentResultSet; + protected long currentUpdateCount = -1; + protected List jobIds = new ArrayList<>(); + protected JobIdWrapper parentJobId = null; + protected int currentJobIdIndex = -1; + protected List batchQueries = new ArrayList<>(); + protected BigQueryConnection connection; + protected int maxFieldSize = 0; + protected int maxRows = 0; + protected boolean isClosed = false; + protected boolean closeOnCompletion = false; + protected Object cancelLock = new Object(); + protected boolean isCanceled = false; + protected boolean poolable; + protected int queryTimeout = 0; + protected SQLWarning warning; + private int fetchDirection = ResultSet.FETCH_FORWARD; + private int fetchSize; + private String scriptQuery; + private Map extraLabels = new HashMap<>(); + + private BigQueryReadClient bigQueryReadClient = null; + private final BigQuery bigQuery; + + final BigQuerySettings querySettings; + + private BlockingQueue bigQueryFieldValueListWrapperBlockingQueue; + + private BlockingQueue arrowBatchWrapperBlockingQueue; + + // Variables Required for the ReferenceQueue implementation + static ReferenceQueue referenceQueueArrowRs = new ReferenceQueue<>(); + static ReferenceQueue referenceQueueJsonRs = new ReferenceQueue<>(); + static List arrowResultSetFinalizers = + new ArrayList<>(); + static List jsonResultSetFinalizers = + new ArrayList<>(); + + private static final ThreadFactory JDBC_THREAD_FACTORY = + new BigQueryThreadFactory("BigQuery-Thread-"); + + static { + BigQueryDaemonPollingTask.startGcDaemonTask( + referenceQueueArrowRs, + referenceQueueJsonRs, + arrowResultSetFinalizers, + jsonResultSetFinalizers); + } + + @VisibleForTesting + public BigQueryStatement(BigQueryConnection connection) { + this.connection = connection; + this.bigQuery = connection.getBigQuery(); + this.querySettings = generateBigQuerySettings(); + } + + private void resetStatementFields() { + this.isCanceled = false; + this.scriptQuery = null; + this.parentJobId = null; + this.currentJobIdIndex = -1; + this.currentUpdateCount = -1; + } + + private BigQuerySettings generateBigQuerySettings() { + LOG.finest("++enter++"); + + BigQuerySettings.Builder querySettings = BigQuerySettings.newBuilder(); + DatasetId defaultDataset = this.connection.getDefaultDataset(); + if (defaultDataset != null) { + querySettings.setDefaultDataset(this.connection.defaultDataset); + } + Long maxBytesBilled = this.connection.getMaxBytesBilled(); + if (maxBytesBilled > 0) { + querySettings.setMaxBytesBilled(maxBytesBilled); + } + if (this.connection.getLabels() != null && !this.connection.getLabels().isEmpty()) { + querySettings.setLabels(this.connection.getLabels()); + } + querySettings.setMaxResultPerPage(this.connection.getMaxResults()); + querySettings.setUseReadAPI(this.connection.isEnableHighThroughputAPI()); + querySettings.setHighThroughputMinTableSize(this.connection.getHighThroughputMinTableSize()); + querySettings.setHighThroughputActivationRatio( + this.connection.getHighThroughputActivationRatio()); + querySettings.setUnsupportedHTAPIFallback(this.connection.isUnsupportedHTAPIFallback()); + querySettings.setUseQueryCache(this.connection.isUseQueryCache()); + querySettings.setQueryDialect(this.connection.getQueryDialect()); + querySettings.setKmsKeyName(this.connection.getKmsKeyName()); + querySettings.setQueryProperties(this.connection.getQueryProperties()); + querySettings.setAllowLargeResults(this.connection.isAllowLargeResults()); + if (this.connection.getJobTimeoutInSeconds() > 0) { + querySettings.setJobTimeoutMs(this.connection.getJobTimeoutInSeconds() * 1000L); + } + if (this.connection.getDestinationTable() != null) { + querySettings.setDestinationTable(this.connection.getDestinationTable()); + } + if (this.connection.getDestinationDataset() != null) { + querySettings.setDestinationDataset(this.connection.getDestinationDataset()); + querySettings.setDestinationDatasetExpirationTime( + this.connection.getDestinationDatasetExpirationTime()); + } + // only create session if enable session and session info is null + if (this.connection.enableSession) { + if (this.connection.sessionInfoConnectionProperty == null) { + querySettings.setEnableSession(this.connection.isSessionEnabled()); + } else { + querySettings.setSessionInfoConnectionProperty( + this.connection.getSessionInfoConnectionProperty()); + } + } + querySettings.setUseWriteAPI(this.connection.isEnableWriteAPI()); + querySettings.setWriteAPIActivationRowCount(this.connection.getWriteAPIActivationRowCount()); + querySettings.setWriteAPIAppendRowCount(this.connection.getWriteAPIAppendRowCount()); + + return querySettings.build(); + } + + /** + * This method executes a BigQuery SQL query, return a single {@code ResultSet} object. + * + *

    Example of running a query: + * + *

    +   *  Connection connection = DriverManager.getConnection(CONNECTION_URL);
    +   *  Statement bigQueryStatement = bigQueryConnection.createStatement();
    +   *  ResultSet result = bigQueryStatement.executeQuery(QUERY);
    +   * 
    + * + * @param sql BigQuery SQL query + * @return {@code ResultSet} containing the output of the query + * @throws SQLException if a BigQuery access error occurs, this method is called on a closed + * {@code Statement}, the given SQL statement produces multiple or no result sets. + * @see java.sql.Statement#executeQuery(String) + */ + @Override + public ResultSet executeQuery(String sql) throws SQLException { + // TODO: write method to return state variables to original state. + LOG.finest("++enter++"); + logQueryExecutionStart(sql); + try { + QueryJobConfiguration jobConfiguration = + setDestinationDatasetAndTableInJobConfig(getJobConfig(sql).build()); + runQuery(sql, jobConfiguration); + } catch (InterruptedException ex) { + throw new BigQueryJdbcException(ex); + } + + if (!isSingularResultSet()) { + throw new BigQueryJdbcException( + "Query returned more than one or didn't return any ResultSet."); + } + // This contains all the other assertions spec required on this method + return getCurrentResultSet(); + } + + @Override + public long executeLargeUpdate(String sql) throws SQLException { + LOG.finest("++enter++"); + logQueryExecutionStart(sql); + try { + QueryJobConfiguration.Builder jobConfiguration = getJobConfig(sql); + runQuery(sql, jobConfiguration.build()); + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + if (this.currentUpdateCount == -1) { + throw new BigQueryJdbcException( + "Update query expected to return affected row count. Double check query type."); + } + return this.currentUpdateCount; + } + + @Override + public int executeUpdate(String sql) throws SQLException { + LOG.finest("++enter++"); + return checkUpdateCount(executeLargeUpdate(sql)); + } + + int checkUpdateCount(long updateCount) { + LOG.finest("++enter++"); + if (updateCount > Integer.MAX_VALUE) { + LOG.warning("Warning: Table update exceeded maximum limit!"); + // Update count is -2 if update is successful but the update count exceeds Integer.MAX_VALUE + return -2; + } + return (int) updateCount; + } + + @Override + public boolean execute(String sql) throws SQLException { + LOG.finest("++enter++"); + logQueryExecutionStart(sql); + try { + QueryJobConfiguration jobConfiguration = getJobConfig(sql).build(); + // If Large Results are enabled, ensure query type is SELECT + if (isLargeResultsEnabled() && getQueryType(jobConfiguration, null) == SqlType.SELECT) { + jobConfiguration = setDestinationDatasetAndTableInJobConfig(jobConfiguration); + } + runQuery(sql, jobConfiguration); + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + return getCurrentResultSet() != null; + } + + StatementType getStatementType(QueryJobConfiguration queryJobConfiguration) throws SQLException { + LOG.finest("++enter++"); + QueryJobConfiguration dryRunJobConfiguration = + queryJobConfiguration.toBuilder().setDryRun(true).build(); + Job job; + try { + job = bigQuery.create(JobInfo.of(dryRunJobConfiguration)); + } catch (BigQueryException ex) { + if (ex.getMessage().contains("Syntax error")) { + throw new BigQueryJdbcSqlSyntaxErrorException(ex); + } + throw new BigQueryJdbcException(ex); + } + QueryStatistics statistics = job.getStatistics(); + return statistics.getStatementType(); + } + + SqlType getQueryType(QueryJobConfiguration jobConfiguration, StatementType statementType) + throws SQLException { + LOG.finest("++enter++"); + if (statementType == null) { + statementType = getStatementType(jobConfiguration); + } + + SqlType sqlType = BigQuerySqlTypeConverter.getSqlTypeFromStatementType(statementType); + LOG.fine( + String.format( + "Query: %s, Statement Type: %s, SQL Type: %s", + jobConfiguration.getQuery(), statementType, sqlType)); + return sqlType; + } + + QueryStatistics getQueryStatistics(QueryJobConfiguration queryJobConfiguration) + throws BigQueryJdbcSqlSyntaxErrorException, BigQueryJdbcException { + LOG.finest("++enter++"); + QueryJobConfiguration dryRunJobConfiguration = + queryJobConfiguration.toBuilder().setDryRun(true).build(); + Job job; + try { + job = this.bigQuery.create(JobInfo.of(dryRunJobConfiguration)); + return job.getStatistics(); + } catch (BigQueryException ex) { + if (ex.getMessage().contains("Syntax error")) { + throw new BigQueryJdbcSqlSyntaxErrorException(ex); + } + throw new BigQueryJdbcException(ex); + } + } + + /** + * Releases this Statement's BigQuery and JDBC resources immediately instead of waiting for this + * to happen when it is automatically closed. These resources include the {@code ResultSet} + * object, batch queries, job IDs, and BigQuery connection
    + * + *

    Calling the method close on a Statement object that is already closed has no effect. + * + * @throws SQLException if a BigQuery access error occurs + */ + @Override + public void close() throws SQLException { + LOG.fine(String.format("Closing Statement %s.", this)); + if (isClosed()) { + return; + } + + boolean cancelSucceeded = false; + try { + cancel(); // This attempts to cancel jobs and calls closeStatementResources() + cancelSucceeded = true; + } catch (SQLException e) { + LOG.warning(String.format("Failed to cancel statement during close().", e)); + } finally { + if (!cancelSucceeded) { + closeStatementResources(); + } + this.connection = null; + this.isClosed = true; + } + } + + @Override + public int getMaxFieldSize() { + return this.maxFieldSize; + } + + @Override + public void setMaxFieldSize(int max) { + this.maxFieldSize = max; + } + + @Override + public int getMaxRows() { + return this.maxRows; + } + + @Override + public void setMaxRows(int max) { + this.maxRows = max; + } + + @Override + public void setEscapeProcessing(boolean enable) { + // TODO: verify how to implement this method + } + + @Override + public int getQueryTimeout() { + return this.queryTimeout; + } + + @Override + public void setQueryTimeout(int seconds) { + if (seconds < 0) { + throw new IllegalArgumentException("Query Timeout should be >= 0."); + } + this.queryTimeout = seconds; + } + + /** + * Cancels this {@code Statement} object, the running threads, and BigQuery jobs. + * + * @throws SQLException if a BigQuery access error occurs or this method is called on a closed + * {@code Statement} + */ + @Override + public void cancel() throws SQLException { + LOG.finest(String.format("Statement %s cancelled", this)); + synchronized (cancelLock) { + this.isCanceled = true; + for (JobId jobId : this.jobIds) { + try { + this.bigQuery.cancel(jobId); + LOG.info("Job " + jobId + "cancelled."); + } catch (BigQueryException e) { + if (e.getMessage() != null + && (e.getMessage().contains("Job is already in state DONE") + || e.getMessage().contains("Error: 3848323"))) { + LOG.warning("Attempted to cancel a job that was already done: " + jobId); + } else { + throw new BigQueryJdbcException(e); + } + } + } + jobIds.clear(); + } + // If a ResultSet exists, then it will be closed as well, closing the + // ownedThreads + closeStatementResources(); + } + + @Override + public SQLWarning getWarnings() { + return this.warning; + } + + @Override + public void clearWarnings() { + this.warning = null; + } + + @Override + public ResultSet getResultSet() { + return this.currentResultSet; + } + + @VisibleForTesting + void setUpdateCount(long count) { + this.currentUpdateCount = count; + } + + @Override + public int getUpdateCount() { + return (int) this.currentUpdateCount; + } + + @Override + public long getLargeUpdateCount() { + return this.currentUpdateCount; + } + + @Override + public boolean getMoreResults() throws SQLException { + return getMoreResults(CLOSE_CURRENT_RESULT); + } + + private void closeStatementResources() throws SQLException { + LOG.finest("++enter++"); + if (this.currentResultSet != null) { + // If Statement has 'CloseOnCompletion' set, resultset might + // call into the same function; In order to avoid stack overflow + // we will cleanup resultset before calling into 'close'. + ResultSet tmp = this.currentResultSet; + this.currentResultSet = null; + tmp.close(); + } + this.batchQueries.clear(); + this.currentUpdateCount = -1; + this.currentJobIdIndex = -1; + if (this.connection != null) { + if (this.connection.isTransactionStarted()) { + this.connection.rollback(); + } + this.connection.removeStatement(this); + } + } + + private boolean isSingularResultSet() { + return this.currentResultSet != null + && (this.parentJobId == null || this.parentJobId.getJobs().size() == 1); + } + + private String generateJobId() { + return JDBC_JOB_PREFIX + UUID.randomUUID().toString(); + } + + private class ExecuteResult { + public final TableResult tableResult; + public final Job job; + + ExecuteResult(TableResult tableResult, Job job) { + this.tableResult = tableResult; + this.job = job; + } + } + + @InternalApi + ExecuteResult executeJob(QueryJobConfiguration jobConfiguration) + throws InterruptedException, BigQueryException, BigQueryJdbcException { + LOG.finest("++enter++"); + Job job = null; + // Location is not properly passed from the connection, + // so we need to explicitly set it; + // Do not set custom JobId here or it will disable jobless queries. + JobId jobId = JobId.newBuilder().setLocation(connection.getLocation()).build(); + if (connection.getUseStatelessQueryMode()) { + Object result = bigQuery.queryWithTimeout(jobConfiguration, jobId, null); + if (result instanceof TableResult) { + TableResult tableResult = (TableResult) result; + if (tableResult.getJobId() != null) { + return new ExecuteResult(tableResult, bigQuery.getJob(tableResult.getJobId())); + } + return new ExecuteResult((TableResult) result, null); + } + + if (result instanceof Job) { + job = (Job) result; + } else { + throw new BigQueryJdbcException("Unexpected result type from queryWithTimeout"); + } + } else { + // Update jobId with custom JobId if jobless query is disabled. + jobId = jobId.toBuilder().setJob(generateJobId()).build(); + JobInfo jobInfo = JobInfo.newBuilder(jobConfiguration).setJobId(jobId).build(); + job = bigQuery.create(jobInfo); + } + + if (job == null) { + throw new BigQueryJdbcException("Failed to create BQ Job."); + } + synchronized (cancelLock) { + if (isCanceled) { + job.cancel(); + throw new BigQueryJdbcException("Query was cancelled."); + } + jobId = job.getJobId(); + jobIds.add(jobId); + } + LOG.info("Query submitted with Job ID: " + job.getJobId().getJob()); + TableResult result = + job.getQueryResults(QueryResultsOption.pageSize(querySettings.getMaxResultPerPage())); + synchronized (cancelLock) { + jobIds.remove(jobId); + } + return new ExecuteResult(result, job); + } + + /** + * Execute the SQL script and sets the reference of the underlying job, passing null querySettings + * will result in the FastQueryPath + */ + @InternalApi + void runQuery(String query, QueryJobConfiguration jobConfiguration) + throws SQLException, InterruptedException { + LOG.finest("++enter++"); + LOG.fine("Run Query started"); + + if (queryTimeout > 0) { + jobConfiguration = + jobConfiguration.toBuilder().setJobTimeoutMs(Long.valueOf(queryTimeout) * 1000).build(); + } + + try { + resetStatementFields(); + ExecuteResult executeResult = executeJob(jobConfiguration); + StatementType statementType = + executeResult.job == null + ? getStatementType(jobConfiguration) + : ((QueryStatistics) executeResult.job.getStatistics()).getStatementType(); + SqlType queryType = getQueryType(jobConfiguration, statementType); + handleQueryResult(query, executeResult.tableResult, queryType); + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } catch (BigQueryException ex) { + if (ex.getMessage().contains("Syntax error")) { + throw new BigQueryJdbcSqlSyntaxErrorException(ex); + } + throw new BigQueryJdbcException(ex); + } + } + + private boolean isLargeResultsEnabled() { + String destinationTable = this.querySettings.getDestinationTable(); + String destinationDataset = this.querySettings.getDestinationDataset(); + return destinationDataset != null || destinationTable != null; + } + + private QueryJobConfiguration setDestinationDatasetAndTableInJobConfig( + QueryJobConfiguration jobConfiguration) { + String destinationTable = this.querySettings.getDestinationTable(); + String destinationDataset = this.querySettings.getDestinationDataset(); + if (destinationDataset != null || destinationTable != null) { + if (destinationDataset != null) { + checkIfDatasetExistElseCreate(destinationDataset); + } + if (jobConfiguration.useLegacySql() && destinationDataset == null) { + checkIfDatasetExistElseCreate(DEFAULT_DATASET_NAME); + destinationDataset = DEFAULT_DATASET_NAME; + } + if (destinationTable == null) { + destinationTable = getDefaultDestinationTable(); + } + return jobConfiguration.toBuilder() + .setAllowLargeResults(this.querySettings.getAllowLargeResults()) + .setDestinationTable(TableId.of(destinationDataset, destinationTable)) + .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) + .setWriteDisposition(JobInfo.WriteDisposition.WRITE_TRUNCATE) + .build(); + } + return jobConfiguration; + } + + Job getNextJob() { + while (this.currentJobIdIndex + 1 < this.parentJobId.getJobs().size()) { + this.currentJobIdIndex += 1; + Job currentJob = this.parentJobId.getJobs().get(this.currentJobIdIndex); + QueryStatistics queryStatistics = currentJob.getStatistics(); + ScriptStatistics scriptStatistics = queryStatistics.getScriptStatistics(); + // EXPRESSION jobs are not relevant for customer query and can be + // created by BQ depending on various conditions. We will just ignore + // them when presenting results. + if (!"expression".equalsIgnoreCase(scriptStatistics.getEvaluationKind())) { + return currentJob; + } + } + return null; + } + + void handleQueryResult(String query, TableResult results, SqlType queryType) + throws SQLException, InterruptedException { + LOG.finest("++enter++"); + switch (queryType) { + case SELECT: + processQueryResponse(query, results); + break; + case DML: + case DML_EXTRA: + try { + Job completedJob = this.bigQuery.getJob(results.getJobId()).waitFor(); + JobStatistics.QueryStatistics statistics = completedJob.getStatistics(); + updateAffectedRowCount(statistics.getNumDmlAffectedRows()); + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } catch (NullPointerException ex) { + throw new BigQueryJdbcException(ex); + } + break; + case TCL: + case DDL: + updateAffectedRowCount(results.getTotalRows()); + break; + case SCRIPT: + try { + Page childJobs = + this.bigQuery.listJobs(JobListOption.parentJobId(results.getJobId().getJob())); + + ArrayList childJobList = new ArrayList<>(); + Iterator iterableJobs = childJobs.iterateAll().iterator(); + iterableJobs.forEachRemaining(childJobList::add); + Collections.reverse(childJobList); + + this.scriptQuery = query; + this.parentJobId = new JobIdWrapper(results.getJobId(), results, childJobList); + this.currentJobIdIndex = -1; + + Job currentJob = getNextJob(); + if (currentJob == null) { + return; + } + StatementType statementType = + ((QueryStatistics) (currentJob.getStatistics())).getStatementType(); + SqlType sqlType = getQueryType(currentJob.getConfiguration(), statementType); + handleQueryResult(query, currentJob.getQueryResults(), sqlType); + } catch (NullPointerException ex) { + throw new BigQueryJdbcException(ex); + } + break; + case OTHER: + throw new BigQueryJdbcException(String.format("Unexpected value: " + queryType)); + } + } + + private void updateAffectedRowCount(Long count) throws SQLException { + // TODO(neenu): check if this need to be closed vs removed) + if (this.currentResultSet != null) { + try { + this.currentResultSet.close(); + this.currentResultSet = null; + } catch (SQLException ex) { + throw new BigQueryJdbcException(ex); + } + } + this.currentUpdateCount = count; + } + + @InternalApi + BigQueryReadClient getBigQueryReadClient() { + if (this.bigQueryReadClient == null) { + this.bigQueryReadClient = this.connection.getBigQueryReadClient(); + } + return this.bigQueryReadClient; + } + + @InternalApi + ReadSession getReadSession(CreateReadSessionRequest readSessionRequest) { + LOG.finest("++enter++"); + return getBigQueryReadClient().createReadSession(readSessionRequest); + } + + @InternalApi + ArrowSchema getArrowSchema(ReadSession readSession) { + return readSession.getArrowSchema(); + } + + /** Uses Bigquery Storage Read API and returns the stream as ResultSet */ + @InternalApi + ResultSet processArrowResultSet(TableResult results) throws SQLException { + LOG.finest("++enter++"); + + // set the resultset + long totalRows = (getMaxRows() > 0) ? getMaxRows() : results.getTotalRows(); + JobId currentJobId = results.getJobId(); + TableId destinationTable = getDestinationTable(currentJobId); + Schema schema = results.getSchema(); + try { + String parent = String.format("projects/%s", destinationTable.getProject()); + String srcTable = + String.format( + "projects/%s/datasets/%s/tables/%s", + destinationTable.getProject(), + destinationTable.getDataset(), + destinationTable.getTable()); + + // Read all the columns if the source table (temp table) and stream the data back in Arrow + // format + ReadSession.Builder sessionBuilder = + ReadSession.newBuilder().setTable(srcTable).setDataFormat(DataFormat.ARROW); + + CreateReadSessionRequest.Builder builder = + CreateReadSessionRequest.newBuilder() + .setParent(parent) + .setReadSession(sessionBuilder) + .setMaxStreamCount(1); + + ReadSession readSession = getReadSession(builder.build()); + this.arrowBatchWrapperBlockingQueue = new LinkedBlockingDeque<>(getBufferSize()); + // deserialize and populate the buffer async, so that the client isn't blocked + Thread populateBufferWorker = + populateArrowBufferedQueue( + readSession, this.arrowBatchWrapperBlockingQueue, this.bigQueryReadClient); + + BigQueryArrowResultSet arrowResultSet = + BigQueryArrowResultSet.of( + schema, + getArrowSchema(readSession), + totalRows, + this, + this.arrowBatchWrapperBlockingQueue, + populateBufferWorker, + this.bigQuery); + arrowResultSetFinalizers.add( + new BigQueryResultSetFinalizers.ArrowResultSetFinalizer( + arrowResultSet, referenceQueueArrowRs, populateBufferWorker)); + arrowResultSet.setJobId(currentJobId); + return arrowResultSet; + + } catch (Exception ex) { + throw new BigQueryJdbcException(ex.getMessage(), ex); + } + } + + /** Asynchronously reads results and populates an arrow record queue */ + @InternalApi + Thread populateArrowBufferedQueue( + ReadSession readSession, + BlockingQueue arrowBatchWrapperBlockingQueue, + BigQueryReadClient bqReadClient) { + LOG.finest("++enter++"); + + Runnable arrowStreamProcessor = + () -> { + try { + // Use the first stream to perform reading. + String streamName = readSession.getStreams(0).getName(); + ReadRowsRequest readRowsRequest = + ReadRowsRequest.newBuilder().setReadStream(streamName).build(); + + // Process each block of rows as they arrive and decode using our simple row reader. + com.google.api.gax.rpc.ServerStream stream = + bqReadClient.readRowsCallable().call(readRowsRequest); + for (ReadRowsResponse response : stream) { + if (Thread.currentThread().isInterrupted() + || queryTaskExecutor.isShutdown()) { // do not process and shutdown + break; + } + + ArrowRecordBatch currentBatch = response.getArrowRecordBatch(); + arrowBatchWrapperBlockingQueue.put(BigQueryArrowBatchWrapper.of(currentBatch)); + } + + } catch (RuntimeException | InterruptedException e) { + LOG.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Interrupted @ arrowStreamProcessor", + e); + } finally { // logic needed for graceful shutdown + // marking end of stream + try { + arrowBatchWrapperBlockingQueue.put( + BigQueryArrowBatchWrapper.of(null, true)); // mark the end of the stream + } catch (InterruptedException e) { + LOG.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Interrupted @ markLast", + e); + } + } + }; + + Thread populateBufferWorker = JDBC_THREAD_FACTORY.newThread(arrowStreamProcessor); + populateBufferWorker.start(); + return populateBufferWorker; + } + + /** Executes SQL query using either fast query path or read API */ + void processQueryResponse(String query, TableResult results) throws SQLException { + LOG.finest( + String.format( + "API call completed{Query=%s, Parent Job ID=%s, Total rows=%s} ", + query, results.getJobId(), results.getTotalRows())); + JobId currentJobId = results.getJobId(); + if (currentJobId == null) { + LOG.fine("Standard API with Stateless query used."); + this.currentResultSet = processJsonResultSet(results); + } else if (useReadAPI(results)) { + LOG.fine("HighThroughputAPI used."); + LOG.info("HTAPI job ID: " + currentJobId.getJob()); + this.currentResultSet = processArrowResultSet(results); + } else { + // read API cannot be used. + LOG.fine("Standard API used."); + this.currentResultSet = processJsonResultSet(results); + } + this.currentUpdateCount = -1; + } + + // The read Ratio should be met + // AND the User must not have disabled the Read API + @VisibleForTesting + boolean useReadAPI(TableResult results) throws BigQueryJdbcSqlFeatureNotSupportedException { + LOG.finest("++enter++"); + if (!meetsReadRatio(results)) { + return false; + } + LOG.fine("Read API threshold is met."); + return querySettings.getUseReadAPI(); + } + + private boolean meetsReadRatio(TableResult results) { + LOG.finest("++enter++"); + long totalRows = results.getTotalRows(); + + if (totalRows == 0 || totalRows < querySettings.getHighThroughputMinTableSize()) { + return false; + } + + // TODO(BQ Team): TableResult doesnt expose the number of records in the current page, hence the + // below log iterates and counts. This is inefficient and we may eventually want to expose + // PageSize with TableResults + // TODO(Obada): Scope for performance optimization. + int pageSize = Iterators.size(results.getValues().iterator()); + return totalRows / pageSize > querySettings.getHighThroughputActivationRatio(); + } + + BigQueryJsonResultSet processJsonResultSet(TableResult results) { + String jobIdOrQueryId = + results.getJobId() == null ? results.getQueryId() : results.getJobId().getJob(); + LOG.info(String.format("BigQuery Job %s completed. Fetching results.", jobIdOrQueryId)); + List threadList = new ArrayList(); + + Schema schema = results.getSchema(); + long totalRows = (getMaxRows() > 0) ? getMaxRows() : results.getTotalRows(); + this.bigQueryFieldValueListWrapperBlockingQueue = new LinkedBlockingDeque<>(getBufferSize()); + BlockingQueue> rpcResponseQueue = + new LinkedBlockingDeque<>(getPageCacheSize(getBufferSize(), schema)); + + JobId jobId = results.getJobId(); + if (jobId != null) { + // Thread to make rpc calls to fetch data from the server + Thread nextPageWorker = + runNextPageTaskAsync(results, results.getNextPageToken(), jobId, rpcResponseQueue); + threadList.add(nextPageWorker); + } else { + try { + populateFirstPage(results, rpcResponseQueue); + rpcResponseQueue.put(Tuple.of(null, false)); + } catch (InterruptedException e) { + LOG.log( + Level.WARNING, + "\n" + + Thread.currentThread().getName() + + " Interrupted @ processJsonQueryResponseResults"); + } + } + + // Thread to parse data received from the server to client library objects + Thread populateBufferWorker = + parseAndPopulateRpcDataAsync( + schema, this.bigQueryFieldValueListWrapperBlockingQueue, rpcResponseQueue); + threadList.add(populateBufferWorker); + + Thread[] jsonWorkers = threadList.toArray(new Thread[0]); + + BigQueryJsonResultSet jsonResultSet = + BigQueryJsonResultSet.of( + schema, + totalRows, + this.bigQueryFieldValueListWrapperBlockingQueue, + this, + jsonWorkers, + this.bigQuery); + jsonResultSet.setJobId(jobId); + jsonResultSet.setQueryId(results.getQueryId()); + jsonResultSetFinalizers.add( + new BigQueryResultSetFinalizers.JsonResultSetFinalizer( + jsonResultSet, referenceQueueJsonRs, jsonWorkers)); + return jsonResultSet; + } + + void populateFirstPage( + TableResult result, BlockingQueue> rpcResponseQueue) { + LOG.finest("++enter++"); + // parse and put the first page in the pageCache before the other pages are parsed from the RPC + // calls + try { + // this is the first page which we have received. + rpcResponseQueue.put(Tuple.of(result, true)); + } catch (InterruptedException e) { + LOG.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Interrupted @ populateFirstPage"); + } + } + + @Override + public void setFetchDirection(int direction) throws SQLException { + if (direction != ResultSet.FETCH_FORWARD) { + throw new BigQueryJdbcSqlFeatureNotSupportedException("Only FETCH_FORWARD is supported."); + } + this.fetchDirection = direction; + } + + @VisibleForTesting + Thread runNextPageTaskAsync( + TableResult result, + String firstPageToken, + JobId jobId, + BlockingQueue> rpcResponseQueue) { + LOG.finest("++enter++"); + // parse and put the first page in the pageCache before the other pages are parsed from the RPC + // calls + populateFirstPage(result, rpcResponseQueue); + + // This thread makes the RPC calls and paginates + Runnable nextPageTask = + () -> { + // results.getPageToken(); + String pageToken = firstPageToken; + TableId destinationTable = null; + if (firstPageToken != null) { + destinationTable = getDestinationTable(jobId); + } + try { + // paginate for non null token + while (pageToken != null) { + // do not process further pages and shutdown + if (Thread.currentThread().isInterrupted() || queryTaskExecutor.isShutdown()) { + LOG.log( + Level.WARNING, + "\n" + + Thread.currentThread().getName() + + " Interrupted @ runNextPageTaskAsync"); + break; + } + long startTime = System.nanoTime(); + TableResult results = + this.bigQuery.listTableData( + destinationTable, + TableDataListOption.pageSize(querySettings.getMaxResultPerPage()), + TableDataListOption.pageToken(pageToken)); + + pageToken = results.getNextPageToken(); + // this will be parsed asynchronously without blocking the current + // thread + rpcResponseQueue.put(Tuple.of(results, true)); + LOG.fine( + String.format( + "Fetched %d results from the server in %d ms.", + querySettings.getMaxResultPerPage(), + (int) ((System.nanoTime() - startTime) / 1000000))); + } + // this will stop the parseDataTask as well when the pagination + // completes + rpcResponseQueue.put(Tuple.of(null, false)); + } catch (Exception ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + // We cannot do queryTaskExecutor.shutdownNow() here as populate buffer method may not + // have finished processing the records and even that will be interrupted + }; + + Thread nextPageWorker = JDBC_THREAD_FACTORY.newThread(nextPageTask); + nextPageWorker.start(); + return nextPageWorker; + } + + /** + * Takes TableResult from rpcResponseQueue and populates + * bigQueryFieldValueListWrapperBlockingQueue with FieldValueList + */ + @VisibleForTesting + Thread parseAndPopulateRpcDataAsync( + Schema schema, + BlockingQueue bigQueryFieldValueListWrapperBlockingQueue, + BlockingQueue> rpcResponseQueue) { + LOG.finest("++enter++"); + + Runnable populateBufferRunnable = + () -> { // producer thread populating the buffer + Iterable fieldValueLists; + // as we have to process the first page + boolean hasRows = true; + while (hasRows) { + try { + Tuple nextPageTuple = rpcResponseQueue.take(); + if (nextPageTuple.x() != null) { + fieldValueLists = nextPageTuple.x().getValues(); + } else { + fieldValueLists = null; + } + hasRows = nextPageTuple.y(); + + } catch (InterruptedException e) { + LOG.log(Level.WARNING, "\n" + Thread.currentThread().getName() + " Interrupted", e); + // Thread might get interrupted while calling the Cancel method, which is + // expected, so logging this instead of throwing the exception back + break; + } + + if (Thread.currentThread().isInterrupted() + || queryTaskExecutor.isShutdown() + || fieldValueLists == null) { + // do not process further pages and shutdown (outerloop) + break; + } + + long startTime = System.nanoTime(); + long results = 0; + for (FieldValueList fieldValueList : fieldValueLists) { + try { + if (Thread.currentThread().isInterrupted() || queryTaskExecutor.isShutdown()) { + // do not process further pages and shutdown (inner loop) + break; + } + bigQueryFieldValueListWrapperBlockingQueue.put( + BigQueryFieldValueListWrapper.of(schema.getFields(), fieldValueList)); + results += 1; + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + } + LOG.fine( + String.format( + "Processed %d results in %d ms.", + results, (int) ((System.nanoTime() - startTime) / 1000000))); + } + try { + // All the pages has been processed, put this marker + bigQueryFieldValueListWrapperBlockingQueue.put( + BigQueryFieldValueListWrapper.of(null, null, true)); + } catch (InterruptedException e) { + LOG.log( + Level.WARNING, + "\n" + Thread.currentThread().getName() + " Interrupted @ populateBufferAsync", + e); + } + }; + + Thread populateBufferWorker = JDBC_THREAD_FACTORY.newThread(populateBufferRunnable); + populateBufferWorker.start(); + return populateBufferWorker; + } + + /** + * Helper method that determines the optimal number of caches pages to improve read performance + */ + @VisibleForTesting + int getPageCacheSize(Integer numBufferedRows, Schema schema) { + LOG.finest("++enter++"); + // Min number of pages to cache + final int MIN_CACHE_SIZE = 3; + // Min number of pages to cache + final int MAX_CACHE_SIZE = 20; + int numColumns = schema.getFields().size(); + int numCachedPages; + long numCachedRows = numBufferedRows == null ? 0 : numBufferedRows.longValue(); + + // TODO: Further enhance this logic depending on customer feedback on memory consumption + if (numCachedRows > 10000) { + // the size of numBufferedRows is quite large and as per our tests we should be able to + // do enough even with low + numCachedPages = 2; + } + // too many fields are being read, setting the page size on the lower end + else if (numColumns > 15 && numCachedRows > 5000) { + numCachedPages = 3; + } + // low pagesize with fewer number of columns, we can cache more pages + else if (numCachedRows < 2000 && numColumns < 15) { + numCachedPages = 20; + } + // default - under 10K numCachedRows with any number of columns + else { + numCachedPages = 5; + } + return numCachedPages < MIN_CACHE_SIZE + ? MIN_CACHE_SIZE + : (Math.min(numCachedPages, MAX_CACHE_SIZE)); + } + + @Override + public int getFetchDirection() { + return this.fetchDirection; + } + + // TODO(neenu): Fix this value + // getNumBufferedRows in querySettings is always the same withDefaultValues - 20000 buffer size + // So, getBufferSize is also 20000. + private int getBufferSize() { + return (this.querySettings == null + || this.querySettings.getNumBufferedRows() == null + || this.querySettings.getNumBufferedRows() < 10000 + ? 20000 + : Math.min(this.querySettings.getNumBufferedRows() * 2, 100000)); + } + + /** Returns the destinationTable from jobId by calling `jobs.get` API */ + TableId getDestinationTable(JobId jobId) { + Job job = this.bigQuery.getJob(jobId); + LOG.finest(String.format("Destination Table retrieved from %s", job.getJobId())); + return ((QueryJobConfiguration) job.getConfiguration()).getDestinationTable(); + } + + QueryJobConfiguration.Builder getJobConfig(String query) { + LOG.finest("++enter++"); + QueryJobConfiguration.Builder queryConfigBuilder = QueryJobConfiguration.newBuilder(query); + if (this.querySettings.getJobTimeoutMs() > 0) { + queryConfigBuilder.setJobTimeoutMs(this.querySettings.getJobTimeoutMs()); + } + if (this.querySettings.getMaxBytesBilled() > 0) { + queryConfigBuilder.setMaximumBytesBilled(this.querySettings.getMaxBytesBilled()); + } + if (this.querySettings.getDefaultDataset() != null) { + queryConfigBuilder.setDefaultDataset(this.querySettings.getDefaultDataset()); + } + Map mergedLabels = new HashMap<>(); + if (this.querySettings.getLabels() != null) { + mergedLabels.putAll(this.querySettings.getLabels()); + } + if (this.extraLabels != null) { + mergedLabels.putAll(this.extraLabels); + } + queryConfigBuilder.setLabels(mergedLabels); + queryConfigBuilder.setUseQueryCache(this.querySettings.getUseQueryCache()); + queryConfigBuilder.setMaxResults(this.querySettings.getMaxResultPerPage()); + if (this.querySettings.getSessionInfoConnectionProperty() != null) { + queryConfigBuilder.setConnectionProperties( + ImmutableList.of(this.querySettings.getSessionInfoConnectionProperty())); + } else { + queryConfigBuilder.setCreateSession(querySettings.isEnableSession()); + } + if (this.querySettings.getKmsKeyName() != null) { + EncryptionConfiguration encryption = + EncryptionConfiguration.newBuilder() + .setKmsKeyName(this.querySettings.getKmsKeyName()) + .build(); + queryConfigBuilder.setDestinationEncryptionConfiguration(encryption); + } + if (this.querySettings.getQueryProperties() != null) { + queryConfigBuilder.setConnectionProperties(this.querySettings.getQueryProperties()); + } + boolean useLegacy = + QueryDialectType.BIG_QUERY.equals( + QueryDialectType.valueOf(this.querySettings.getQueryDialect())); + queryConfigBuilder.setUseLegacySql(useLegacy); + + return queryConfigBuilder; + } + + private void checkIfDatasetExistElseCreate(String datasetName) { + Dataset dataset = bigQuery.getDataset(DatasetId.of(datasetName)); + if (dataset == null) { + LOG.info(String.format("Creating a hidden dataset: %s ", datasetName)); + DatasetInfo datasetInfo = + DatasetInfo.newBuilder(datasetName) + .setDefaultTableLifetime(this.querySettings.getDestinationDatasetExpirationTime()) + .build(); + bigQuery.create(datasetInfo); + } + } + + private String getDefaultDestinationTable() { + String timeOfCreation = String.valueOf(Instant.now().toEpochMilli()); + String randomizedId = String.valueOf(new Random().nextInt(9999)); + return DEFAULT_TABLE_NAME + timeOfCreation + randomizedId; + } + + @InternalApi + JobIdWrapper insertJob(JobConfiguration jobConfiguration) throws SQLException { + Job job; + JobInfo jobInfo = JobInfo.of(jobConfiguration); + LOG.finest("++enter++"); + try { + job = this.bigQuery.create(jobInfo); + } catch (BigQueryException ex) { + throw new BigQueryJdbcException(ex); + } + return new JobIdWrapper(job.getJobId(), null, null); + } + + @Override + public void setFetchSize(int rows) { + this.fetchSize = rows; + } + + @Override + public int getFetchSize() { + return this.fetchSize; + } + + /** + * Gets the extra labels for this statement. + * + * @return A map of the extra labels. + */ + public Map getExtraLabels() { + return this.extraLabels; + } + + /** + * Sets the extra labels for this statement. + * + * @param extraLabels A map of the extra labels. + */ + public void setExtraLabels(Map extraLabels) { + this.extraLabels = extraLabels; + } + + @Override + public int getResultSetConcurrency() { + return ResultSet.CONCUR_READ_ONLY; + } + + ResultSet getCurrentResultSet() { + return this.currentResultSet; + } + + @Override + public int getResultSetType() { + return ResultSet.TYPE_FORWARD_ONLY; + } + + /** + * Wraps jobId and the firstPage of QueryResponse, so that we can avoid RPC to fetch the first + * page again + */ + static class JobIdWrapper { + + private JobId jobId; + private TableResult firstPage; + private ArrayList jobs; + + public JobIdWrapper(JobId jobId, TableResult firstPage, ArrayList jobs) { + this.jobId = jobId; + this.firstPage = firstPage; + this.jobs = jobs; + } + + JobId getJobId() { + return this.jobId; + } + + void setJobId(JobId jobId) { + this.jobId = jobId; + } + + TableResult getResults() { + return this.firstPage; + } + + void setResults(TableResult firstPage) { + this.firstPage = firstPage; + } + + ArrayList getJobs() { + return jobs; + } + + void setJobs(ArrayList jobs) { + this.jobs = jobs; + } + } + + @Override + public void addBatch(String sql) throws SQLException { + if (sql == null || sql.isEmpty()) { + return; + } + LOG.finest("++enter++"); + sql = sql.trim(); + if (!sql.endsWith(";")) { + sql += "; "; + } + SqlType sqlType = getQueryType(QueryJobConfiguration.newBuilder(sql).build(), null); + if (!SqlType.DML.equals(sqlType)) { + throw new IllegalArgumentException("addBatch currently supports DML operations."); + } + this.batchQueries.add(sql); + } + + @Override + public void clearBatch() { + this.batchQueries.clear(); + } + + @Override + public int[] executeBatch() throws SQLException { + LOG.finest("++enter++"); + int[] result = new int[this.batchQueries.size()]; + if (this.batchQueries.isEmpty()) { + return result; + } + + try { + String combinedQueries = String.join("", this.batchQueries); + QueryJobConfiguration.Builder jobConfiguration = getJobConfig(combinedQueries); + jobConfiguration.setPriority(QueryJobConfiguration.Priority.BATCH); + runQuery(combinedQueries, jobConfiguration.build()); + } catch (InterruptedException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + + int i = 0; + while (getUpdateCount() != -1 && i < this.batchQueries.size()) { + result[i] = getUpdateCount(); + getMoreResults(); + i++; + } + + clearBatch(); + return result; + } + + @Override + public Connection getConnection() { + return this.connection; + } + + public boolean hasMoreResults() { + if (this.parentJobId == null) { + return false; + } + return this.currentJobIdIndex + 1 < this.parentJobId.getJobs().size(); + } + + @Override + public boolean getMoreResults(int current) throws SQLException { + LOG.finest("++enter++"); + checkClosed(); + if (current != CLOSE_CURRENT_RESULT) { + throw new BigQueryJdbcSqlFeatureNotSupportedException( + "The JDBC driver only supports Statement.CLOSE_CURRENT_RESULT."); + } + + if (this.parentJobId == null) { + return false; + } + + try { + if (this.currentResultSet != null) { + this.currentResultSet.close(); + this.currentResultSet = null; + // Statement can be closed if it was the last result + if (isClosed) { + return false; + } + } + + Job currentJob = getNextJob(); + if (currentJob != null) { + StatementType statementType = + ((QueryStatistics) (currentJob.getStatistics())).getStatementType(); + SqlType sqlType = getQueryType(currentJob.getConfiguration(), statementType); + handleQueryResult(this.scriptQuery, currentJob.getQueryResults(), sqlType); + + return sqlType == SqlType.SELECT; + } else { + resetStatementFields(); + return false; + } + } catch (InterruptedException | SQLException ex) { + throw new BigQueryJdbcRuntimeException(ex); + } + } + + @Override + public boolean isWrapperFor(Class iface) { + return iface.isInstance(this); + } + + @Override + public T unwrap(Class iface) throws SQLException { + if (!isWrapperFor(iface)) { + throw new BigQueryJdbcException( + String.format("Unable to cast Statement to %s class.", iface.getName())); + } + return (T) this; + } + + @Override + public int getResultSetHoldability() { + return ResultSet.CLOSE_CURSORS_AT_COMMIT; + } + + @Override + public boolean isClosed() { + return this.isClosed; + } + + @Override + public void setPoolable(boolean poolable) { + this.poolable = poolable; + } + + @Override + public boolean isPoolable() { + return this.poolable; + } + + @Override + public void closeOnCompletion() { + this.closeOnCompletion = true; + } + + @Override + public boolean isCloseOnCompletion() { + return this.closeOnCompletion; + } + + protected void logQueryExecutionStart(String sql) { + if (sql == null) { + return; + } + String sanitizedSql = sql.trim().replaceAll("\\s+", " "); + String truncatedSql = + sanitizedSql.length() > 256 ? sanitizedSql.substring(0, 256) + "..." : sanitizedSql; + LOG.info("Executing query: " + truncatedSql); + LOG.info("Using query settings: " + this.querySettings.toString()); + } + + /** Throws a {@link BigQueryJdbcException} if this object is closed */ + void checkClosed() throws SQLException { + if (isClosed()) { + throw new BigQueryJdbcException("This " + getClass().getName() + " has been closed"); + } + } + + enum SqlType { + SELECT, + DML, + DML_EXTRA, + DDL, + SCRIPT, + TCL, + OTHER + } + + enum QueryDialectType { + SQL, + BIG_QUERY + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactory.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactory.java new file mode 100644 index 000000000000..a5aa7a73a51d --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactory.java @@ -0,0 +1,44 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.core.InternalApi; +import java.util.concurrent.ThreadFactory; + +@InternalApi +class BigQueryThreadFactory implements ThreadFactory { + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryThreadFactory.class.getName()); + private String threadPrefix; + private int threadSerialNum = 0; + + public BigQueryThreadFactory(String threadPrefix) { + this.threadPrefix = threadPrefix; + } + + public BigQueryThreadFactory() { + this.threadPrefix = "DEFAULT_POOL_"; + } + + @Override + public Thread newThread(Runnable r) { + Thread t = new Thread(r, threadPrefix + (++threadSerialNum)); // non thread safe increment + t.setDaemon(true); + LOG.finest(String.format("New thread %s created.", t.getName())); + return t; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercer.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercer.java new file mode 100644 index 000000000000..d156c2d662be --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercer.java @@ -0,0 +1,149 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.core.InternalApi; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.exception.BigQueryJdbcCoercionException; +import com.google.cloud.bigquery.exception.BigQueryJdbcCoercionNotFoundException; +import java.util.Map; + +/** + * Provides a declarative mechanism for coercing an object from one type to another. For example, + * coercion of {@link String} to {@link Integer} can be achieved like this: + * + *

    + *   Integer value = BigQueryTypeCoercer.INSTANCE.coerceTo(Integer.class, "3452148");
    + *   System.out.println(value); // 3452148
    + * 
    + * + * A {@link BigQueryTypeCoercer} is baked with all the default {@link BigQueryCoercion}s from {@link + * BigQueryDefaultCoercions} to coerce all the primitive types. + * + *

    It is also possible to extend the behaviour of {@link BigQueryTypeCoercer} to other custom + * user defined types by creating an implementation of {@link BigQueryCoercion} and register it with + * {@link BigQueryTypeCoercerBuilder} using it's {@link + * BigQueryTypeCoercerBuilder#registerTypeCoercion(BigQueryCoercion)} method. + * + *

    + *   public class TextToStringCoercion extends BigQueryBigQueryCoercion{
    + *
    + *    public TextToStringCoercion() {
    + *       super(Text.class, String.class);
    + *    }
    + *
    + *    @Override
    + *    String coerce(Text text) {
    + *       return text.toString();  // logic to coerce from Text type to String type
    + *    }
    + *  }
    + * 
    + * + * and use it like this + * + *
    + *    byte[] bytesArray = {72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33};
    + *    Text text = new Text(bytesArray);
    + *
    + *    BigQueryTypeCoercer typeCoercer = new BigQueryTypeCoercerBuilder()
    + *         .registerCoercion(new TextToStringCoercion())  // registering a custom coercion
    + *         .build();
    + *    System.out.println(typeCoercer.coerceTo(String.class, text));  //  Hello World!
    + * 
    + */ +@InternalApi +class BigQueryTypeCoercer { + private static final BigQueryJdbcCustomLogger LOG = + new BigQueryJdbcCustomLogger(BigQueryTypeCoercer.class.getName()); + + /** A {@link BigQueryTypeCoercer} instance with all the inbuilt {@link BigQueryCoercion}s */ + static BigQueryTypeCoercer INSTANCE; + + static { + INSTANCE = BigQueryDefaultCoercions.builder().build(); + } + + private final Map, Map, BigQueryCoercion>> allCoercions; + + BigQueryTypeCoercer(Map, Map, BigQueryCoercion>> allCoercions) { + this.allCoercions = allCoercions; + } + + /** + * Coerce an object to the type specified. + * + * @param value the object that needs to be coerced. + * @param targetClass the target class for the coercion + * @throws BigQueryJdbcCoercionNotFoundException when coercion can not be performed to the target + * type. + * @throws BigQueryJdbcCoercionException when an error is encountered while performing the + * coercion. + */ + T coerceTo(Class targetClass, Object value) { + Class sourceClass = value == null ? Void.class : value.getClass(); + // FieldValue object for null-values requires special check + if (sourceClass == FieldValue.class && ((FieldValue.class.cast(value)).isNull())) { + sourceClass = Void.class; + } + // No coercion needed + if (sourceClass.equals(targetClass)) { + return targetClass.cast(value); + } + BigQueryCoercion coercion = findCoercion(sourceClass, targetClass); + LOG.finest(() -> String.format("%s coercion for %s", coercion, value)); + // Value is null case & no explicit coercion + if (sourceClass == Void.class && coercion == null) { + return null; + } + if (coercion == null) { + if (targetClass.equals(String.class)) { + return (T) value.toString(); + } + throw new BigQueryJdbcCoercionNotFoundException(sourceClass, targetClass); + } + try { + return coercion.coerce(sourceClass != Void.class ? value : null); + } catch (Exception ex) { + throw new BigQueryJdbcCoercionException(ex); + } + } + + /** + * Creates a {@link BigQueryTypeCoercerBuilder} with all the default coercions from {@link + * BigQueryDefaultCoercions}. + */ + static BigQueryTypeCoercerBuilder builder() { + return BigQueryDefaultCoercions.builder(); + } + + private BigQueryCoercion findCoercion(Class sourceClass, Class targetClass) { + Map, BigQueryCoercion> bySourceMap = this.allCoercions.get(sourceClass); + // AutoValue generated concrete classes are registered with their abstract classes and not the + // concrete class. Lets make sure the we can find the registered abstract class for such + // classes. The abstract class in these cases would be the super class of the generated + // AutoValue concrete classes. + if (bySourceMap == null) { + Class registeredAbstractClass = sourceClass.getSuperclass(); + bySourceMap = this.allCoercions.get(registeredAbstractClass); + } + // If we still can't find the coercion source class entry then just return. + if (bySourceMap == null) { + return null; + } + return (BigQueryCoercion) bySourceMap.get(targetClass); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerBuilder.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerBuilder.java new file mode 100644 index 000000000000..8539515ed16a --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerBuilder.java @@ -0,0 +1,79 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.core.InternalApi; +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Function; + +/** + * A builder to create {@link BigQueryTypeCoercer} to perform the coercion of custom user defined + * types. + */ +@InternalApi +class BigQueryTypeCoercerBuilder { + + private final Map, Map, BigQueryCoercion>> allCoercions; + + BigQueryTypeCoercerBuilder() { + this.allCoercions = new HashMap<>(); + } + + /** + * registers a {@link BigQueryCoercion} + * + * @param coercion A {@link BigQueryCoercion} to register with this builder. + */ + BigQueryTypeCoercerBuilder registerTypeCoercion(BigQueryCoercion coercion) { + Type[] typeArguments = + ((ParameterizedType) coercion.getClass().getGenericInterfaces()[0]) + .getActualTypeArguments(); + Class sourceClass = (Class) typeArguments[0]; + Class targetClass = (Class) typeArguments[1]; + this.registerInternal(coercion, sourceClass, targetClass); + return this; + } + + /** + * registers a {@link BigQueryCoercion} using an implementation of {@link Function} + * + * @param function A {@link Function} to register with the builder. + * @param sourceClass the source class + * @param targetClass the target class + */ + BigQueryTypeCoercerBuilder registerTypeCoercion( + Function function, Class sourceClass, Class targetClass) { + this.registerInternal((BigQueryCoercion) function::apply, sourceClass, targetClass); + return this; + } + + /** builds the {@link BigQueryTypeCoercer} with all the registered {@link BigQueryCoercion}s. */ + BigQueryTypeCoercer build() { + return new BigQueryTypeCoercer(this.allCoercions); + } + + private void registerInternal( + BigQueryCoercion coercion, Class sourceClass, Class targetClass) { + Map, BigQueryCoercion> mapBySource = + this.allCoercions.getOrDefault(sourceClass, new HashMap<>()); + mapBySource.put(targetClass, coercion); + this.allCoercions.putIfAbsent(sourceClass, mapBySource); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercionUtility.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercionUtility.java new file mode 100644 index 000000000000..9a4dc21304e4 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercionUtility.java @@ -0,0 +1,409 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.api.core.InternalApi; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.FieldValue.Attribute; +import com.google.cloud.bigquery.Range; +import java.math.BigDecimal; +import java.sql.Date; +import java.sql.Time; +import java.sql.Timestamp; +import java.time.Duration; +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.Period; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; +import java.time.temporal.ChronoUnit; +import java.util.concurrent.TimeUnit; +import org.apache.arrow.vector.PeriodDuration; +import org.apache.arrow.vector.util.Text; + +@InternalApi +class BigQueryTypeCoercionUtility { + + static BigQueryTypeCoercer INSTANCE; + + static { + INSTANCE = + BigQueryTypeCoercer.builder() + .registerTypeCoercion(new FieldValueToString()) + .registerTypeCoercion(new FieldValueToInteger()) + .registerTypeCoercion(new FieldValueToFloat()) + .registerTypeCoercion(new FieldValueToShort()) + .registerTypeCoercion(new FieldValueToLong()) + .registerTypeCoercion(new FieldValueToDouble()) + .registerTypeCoercion(new FieldValueToBigDecimal()) + .registerTypeCoercion(new FieldValueToBoolean()) + .registerTypeCoercion(new FieldValueToBytesArray()) + .registerTypeCoercion(new FieldValueToTimestamp()) + .registerTypeCoercion(new FieldValueToTime()) + .registerTypeCoercion(new FieldValueToDate()) + .registerTypeCoercion(new FieldValueToObject()) + .registerTypeCoercion(new StringToBytesArray()) + .registerTypeCoercion(new RangeToString()) + .registerTypeCoercion(new IntegerToLong()) + .registerTypeCoercion(new BytesArrayToString()) + + // Read API Type coercions + .registerTypeCoercion(Timestamp::valueOf, LocalDateTime.class, Timestamp.class) + .registerTypeCoercion(Text::toString, Text.class, String.class) + .registerTypeCoercion(new TextToInteger()) + .registerTypeCoercion(new LongToTimestamp()) + .registerTypeCoercion(new LongToTime()) + .registerTypeCoercion(new IntegerToDate()) + .registerTypeCoercion( + (Timestamp ts) -> Date.valueOf(ts.toLocalDateTime().toLocalDate()), + Timestamp.class, + Date.class) + .registerTypeCoercion( + (Timestamp ts) -> Time.valueOf(ts.toLocalDateTime().toLocalTime()), + Timestamp.class, + Time.class) + .registerTypeCoercion( + (Time time) -> // Per JDBC spec, the date component should be 1970-01-01 + Timestamp.valueOf(LocalDateTime.of(LocalDate.ofEpochDay(0), time.toLocalTime())), + Time.class, + Timestamp.class) + .registerTypeCoercion( + (Date date) -> new Timestamp(date.getTime()), Date.class, Timestamp.class) + .registerTypeCoercion(new TimestampToString()) + .registerTypeCoercion(new TimeToString()) + .registerTypeCoercion((Long l) -> l != 0L, Long.class, Boolean.class) + .registerTypeCoercion((Double d) -> d != 0.0d, Double.class, Boolean.class) + .registerTypeCoercion( + (BigDecimal bd) -> bd.compareTo(BigDecimal.ZERO) != 0, + BigDecimal.class, + Boolean.class) + .registerTypeCoercion((Integer i) -> i != 0, Integer.class, Boolean.class) + .registerTypeCoercion((Float f) -> f != 0.0f, Float.class, Boolean.class) + .registerTypeCoercion((Short s) -> s.shortValue() != 0, Short.class, Boolean.class) + .registerTypeCoercion((Boolean b) -> b ? 1L : 0L, Boolean.class, Long.class) + .registerTypeCoercion((Boolean b) -> b ? 1.0d : 0.0d, Boolean.class, Double.class) + .registerTypeCoercion((Boolean b) -> b ? 1.0f : 0.0f, Boolean.class, Float.class) + .registerTypeCoercion((Boolean b) -> (short) (b ? 1 : 0), Boolean.class, Short.class) + .registerTypeCoercion((Boolean b) -> (byte) (b ? 1 : 0), Boolean.class, Byte.class) + .registerTypeCoercion( + (Boolean b) -> b ? BigDecimal.ONE : BigDecimal.ZERO, + Boolean.class, + BigDecimal.class) + .registerTypeCoercion(new PeriodDurationToString()) + .registerTypeCoercion(unused -> (byte) 0, Void.class, Byte.class) + .registerTypeCoercion(unused -> 0, Void.class, Integer.class) + .registerTypeCoercion(unused -> 0L, Void.class, Long.class) + .registerTypeCoercion(unused -> 0D, Void.class, Double.class) + .registerTypeCoercion(unused -> 0f, Void.class, Float.class) + .registerTypeCoercion(unused -> (short) 0, Void.class, Short.class) + .build(); + } + + private static class TimestampToString implements BigQueryCoercion { + private static final DateTimeFormatter FORMATTER = + DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS"); + + @Override + public String coerce(Timestamp value) { + return FORMATTER.format(value.toLocalDateTime()); + } + } + + private static class TimeToString implements BigQueryCoercion { + private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss.SSS"); + + @Override + public String coerce(Time value) { + return FORMATTER.format(value.toLocalTime()); + } + } + + private static class PeriodDurationToString implements BigQueryCoercion { + + @Override + public String coerce(PeriodDuration value) { + StringBuilder builder = new StringBuilder(); + + // Conversion of Period + Period period = value.getPeriod().normalized(); + + builder + .append(period.getYears()) + .append("-") + .append(period.getMonths()) + .append(" ") + .append(period.getDays()) + .append(" "); + + // Conversion of Duration + Duration duration = value.getDuration(); + if (duration.isNegative()) { + builder.append("-"); + duration = duration.negated(); + } + long hours = duration.toHours(); + duration = duration.minusHours(hours); + long minutes = duration.toMinutes(); + duration = duration.minusMinutes(minutes); + long seconds = duration.getSeconds(); + duration = duration.minusSeconds(seconds); + long microseconds = duration.toNanos() / 1000; + + builder + .append(hours) + .append(":") + .append(minutes) + .append(":") + .append(seconds) + .append(".") + .append(microseconds); + + String result = builder.toString(); + result = result.replaceFirst("--", "-"); + + return result; + } + } + + private static class IntegerToDate implements BigQueryCoercion { + + @Override + public Date coerce(Integer value) { + // For example int 18993 represents 2022-01-01 + // Using LocalDate here to avoid this date getting affected by local time zones. + LocalDate date = LocalDate.ofEpochDay(Long.valueOf(value)); + return Date.valueOf(date); + } + } + + private static class LongToTime implements BigQueryCoercion { + + @Override + public Time coerce(Long value) { + + int HH = (int) TimeUnit.MICROSECONDS.toHours(value); + int MM = (int) (TimeUnit.MICROSECONDS.toMinutes(value) % 60); + int SS = (int) (TimeUnit.MICROSECONDS.toSeconds(value) % 60); + + // Note: BQ Time has a precision of up to six fractional digits (microsecond precision) + // but java.sql.Time do not. So data after seconds is not returned. + return new Time(HH, MM, SS); + } + } + + private static class LongToTimestamp implements BigQueryCoercion { + + @Override + public Timestamp coerce(Long value) { + // Long value is in microseconds. All further calculations should account for the unit. + Instant instant = Instant.ofEpochMilli(value / 1000).plusNanos((value % 1000) * 1000); + // JDBC is defaulting to UTC because BQ UI defaults to UTC. + LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.of("UTC")); + return Timestamp.valueOf(localDateTime); + } + } + + private static class TextToInteger implements BigQueryCoercion { + + @Override + public Integer coerce(Text value) { + return Integer.parseInt(value.toString()); + } + } + + private static class FieldValueToObject implements BigQueryCoercion { + + @Override + public Object coerce(FieldValue fieldValue) { + return fieldValue.getValue(); + } + } + + private static class FieldValueToDate implements BigQueryCoercion { + + @Override + public Date coerce(FieldValue fieldValue) { + return Date.valueOf(fieldValue.getStringValue()); + } + } + + private static class FieldValueToTime implements BigQueryCoercion { + + @Override + public Time coerce(FieldValue fieldValue) { + // Time ranges from 00:00:00 to 23:59:59.999999 in BigQuery + String strTime = fieldValue.getStringValue(); + try { + LocalTime localTime = LocalTime.parse(strTime); + // Convert LocalTime to milliseconds of the day. This correctly preserves millisecond + // precision and truncates anything smaller + long millis = TimeUnit.NANOSECONDS.toMillis(localTime.toNanoOfDay()); + return new Time(millis); + } catch (java.time.format.DateTimeParseException e) { + throw new IllegalArgumentException( + "Cannot parse the value " + strTime + " to java.sql.Time", e); + } + } + } + + private static class FieldValueToTimestamp implements BigQueryCoercion { + + @Override + public Timestamp coerce(FieldValue fieldValue) { + String rawValue = fieldValue.getStringValue(); + // BigQuery DATETIME strings are formatted like "YYYY-MM-DD'T'HH:MM:SS.fffffffff" + // BigQuery TIMESTAMP strings are numeric epoch seconds. + if (rawValue.contains("T")) { + // It's a DATETIME string. + // Timestamp.valueOf() expects "yyyy-mm-dd hh:mm:ss.fffffffff" format. + return Timestamp.valueOf(rawValue.replace('T', ' ')); + } else { + // It's a TIMESTAMP numeric string. + long microseconds = fieldValue.getTimestampValue(); + Instant instant = Instant.EPOCH.plus(microseconds, ChronoUnit.MICROS); + // JDBC is defaulting to UTC because BQ UI defaults to UTC. + LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.of("UTC")); + return Timestamp.valueOf(localDateTime); + } + } + } + + private static class FieldValueToBytesArray implements BigQueryCoercion { + + @Override + public byte[] coerce(FieldValue fieldValue) { + return fieldValue.getBytesValue(); + } + } + + private static class StringToBytesArray implements BigQueryCoercion { + + @Override + public byte[] coerce(String value) { + return value.getBytes(); + } + } + + private static class BytesArrayToString implements BigQueryCoercion { + + @Override + public String coerce(byte[] value) { + return java.util.Base64.getEncoder().encodeToString(value); + } + } + + private static class FieldValueToBoolean implements BigQueryCoercion { + + @Override + public Boolean coerce(FieldValue fieldValue) { + return !fieldValue.isNull() && fieldValue.getBooleanValue(); + } + } + + private static class FieldValueToBigDecimal implements BigQueryCoercion { + + @Override + public BigDecimal coerce(FieldValue fieldValue) { + return fieldValue.getNumericValue(); + } + } + + private static class FieldValueToDouble implements BigQueryCoercion { + + @Override + public Double coerce(FieldValue fieldValue) { + return fieldValue.getDoubleValue(); + } + } + + private static class FieldValueToLong implements BigQueryCoercion { + + @Override + public Long coerce(FieldValue fieldValue) { + return fieldValue.getLongValue(); + } + } + + private static class FieldValueToInteger implements BigQueryCoercion { + + @Override + public Integer coerce(FieldValue fieldValue) { + return (int) fieldValue.getLongValue(); + } + } + + private static class FieldValueToFloat implements BigQueryCoercion { + + @Override + public Float coerce(FieldValue fieldValue) { + return (float) fieldValue.getDoubleValue(); + } + } + + private static class FieldValueToShort implements BigQueryCoercion { + + @Override + public Short coerce(FieldValue fieldValue) { + return (short) fieldValue.getLongValue(); + } + } + + private static class FieldValueToString implements BigQueryCoercion { + + @Override + public String coerce(FieldValue fieldValue) { + if (Attribute.REPEATED.equals(fieldValue.getAttribute())) { // Case for Arrays + return fieldValue.getValue().toString(); + } + if (Attribute.RANGE.equals(fieldValue.getAttribute())) { // Range values + Range rangeValue = fieldValue.getRangeValue(); + return INSTANCE.coerceTo(String.class, rangeValue); + } + if (Attribute.RECORD.equals(fieldValue.getAttribute())) { // Case for Structs + return fieldValue.getRecordValue().toString(); + } + return fieldValue.getStringValue(); + } + } + + private static class IntegerToLong implements BigQueryCoercion { + + @Override + public Long coerce(Integer intValue) { + if (intValue == null) { + return 0L; + } + return Long.valueOf(intValue); + } + } + + private static class RangeToString implements BigQueryCoercion { + + @Override + public String coerce(Range value) { + FieldValue startValue = value.getStart(); + FieldValue endValue = value.getEnd(); + + String start = startValue.isNull() ? "UNBOUNDED" : startValue.getStringValue(); + String end = endValue.isNull() ? "UNBOUNDED" : endValue.getStringValue(); + // The start of a range is inclusive, and the end is exclusive. + return String.format("[%s, %s)", start, end); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/DataSource.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/DataSource.java new file mode 100644 index 000000000000..b1501890bd1b --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/DataSource.java @@ -0,0 +1,664 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import java.io.PrintWriter; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.util.Map; +import java.util.Properties; +import java.util.logging.Logger; + +/** + * BigQuery JDBC implementation of {@link javax.sql.DataSource} + * + *

    A factory for connections to the physical data source that this DataSource object represents. + * An alternative to the DriverManager facility, a DataSource object is the preferred means of + * getting a connection. An object that implements the DataSource interface will typically be + * registered with a naming service based on the Java™ Naming and Directory (JNDI) API. + */ +public class DataSource implements javax.sql.DataSource { + private final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + private String URL; + private String projectId; + private String defaultDataset; + private String location; + private String userAgent; + private Boolean enableHighThroughputAPI; + private Integer highThroughputMinTableSize; + private Integer highThroughputActivationRatio; + private Boolean unsupportedHTAPIFallback; + private String kmsKeyName; + private Map queryProperties; + private String logLevel; + private Boolean enableSession; + private String logPath; + private Integer oAuthType; + private String oAuthServiceAcctEmail; + private String oAuthPvtKeyPath; + private String oAuthPvtKey; + private String oAuthAccessToken; + private String oAuthRefreshToken; + private Boolean useQueryCache; + private String queryDialect; + private Boolean allowLargeResults; + private String destinationTable; + private String destinationDataset; + private Long destinationDatasetExpirationTime; + private String universeDomain; + private String proxyHost; + private String proxyPort; + private String proxyUid; + private String proxyPwd; + private String oAuthClientId; + private String oAuthClientSecret; + private Integer jobCreationMode; + private Long maxResults; + private String partnerToken; + private Boolean enableWriteAPI; + private String additionalProjects; + private Boolean filterTablesOnDefaultDataset; + private Integer requestGoogleDriveScope; + private Integer metadataFetchThreadCount; + private String sslTrustStorePath; + private String sslTrustStorePassword; + + // Make sure the JDBC driver class is loaded. + static { + try { + Class.forName("com.google.cloud.bigquery.jdbc.BigQueryDriver"); + } catch (ClassNotFoundException ex) { + throw new IllegalStateException( + "DataSource failed to load com.google.cloud.bigquery.jdbc.BigQueryDriver", ex); + } + } + + /** An implementation of DataSource must include a public no-arg constructor. */ + public DataSource() {} + + @Override + public Connection getConnection() throws SQLException { + if (getURL() == null) { + throw new BigQueryJdbcException( + "Connection URL is null. Please specify a valid Connection URL to get Connection."); + } + if (!BigQueryDriver.getRegisteredDriver().acceptsURL(getURL())) { + throw new BigQueryJdbcException( + "The URL " + getURL() + " is invalid. Please specify a valid Connection URL. "); + } + return DriverManager.getConnection(getURL(), createProperties()); + } + + private Properties createProperties() { + Properties connectionProperties = new Properties(); + if (this.projectId != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.PROJECT_ID_PROPERTY_NAME, this.projectId); + } + if (this.defaultDataset != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.DEFAULT_DATASET_PROPERTY_NAME, this.defaultDataset); + } + if (this.location != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.LOCATION_PROPERTY_NAME, this.location); + } + if (this.enableHighThroughputAPI != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.ENABLE_HTAPI_PROPERTY_NAME, + String.valueOf(this.enableHighThroughputAPI)); + } + if (this.unsupportedHTAPIFallback != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.UNSUPPORTED_HTAPI_FALLBACK_PROPERTY_NAME, + String.valueOf(this.unsupportedHTAPIFallback)); + } + if (this.highThroughputMinTableSize != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.HTAPI_MIN_TABLE_SIZE_PROPERTY_NAME, + String.valueOf(this.highThroughputMinTableSize)); + } + if (this.highThroughputActivationRatio != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.HTAPI_ACTIVATION_RATIO_PROPERTY_NAME, + String.valueOf(this.highThroughputActivationRatio)); + } + if (this.kmsKeyName != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.KMS_KEY_NAME_PROPERTY_NAME, this.kmsKeyName); + } + if (this.queryProperties != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.QUERY_PROPERTIES_NAME, this.queryProperties.toString()); + } + if (this.enableSession != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.ENABLE_SESSION_PROPERTY_NAME, String.valueOf(this.enableSession)); + } + if (this.logLevel != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.LOG_LEVEL_PROPERTY_NAME, this.logLevel); + } + if (this.logPath != null) { + connectionProperties.setProperty(BigQueryJdbcUrlUtility.LOG_PATH_PROPERTY_NAME, this.logPath); + } + if (this.oAuthType != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.OAUTH_TYPE_PROPERTY_NAME, String.valueOf(this.oAuthType)); + } + if (this.oAuthServiceAcctEmail != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.OAUTH_SA_EMAIL_PROPERTY_NAME, this.oAuthServiceAcctEmail); + } + if (this.oAuthPvtKeyPath != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PATH_PROPERTY_NAME, this.oAuthPvtKeyPath); + } + if (this.oAuthPvtKey != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.OAUTH_PVT_KEY_PROPERTY_NAME, this.oAuthPvtKey); + } + if (this.oAuthAccessToken != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.OAUTH_ACCESS_TOKEN_PROPERTY_NAME, this.oAuthAccessToken); + } + if (this.oAuthRefreshToken != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.OAUTH_REFRESH_TOKEN_PROPERTY_NAME, this.oAuthRefreshToken); + } + if (this.useQueryCache != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.USE_QUERY_CACHE_PROPERTY_NAME, String.valueOf(this.useQueryCache)); + } + if (this.queryDialect != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.QUERY_DIALECT_PROPERTY_NAME, this.queryDialect); + } + if (this.allowLargeResults != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.ALLOW_LARGE_RESULTS_PROPERTY_NAME, + String.valueOf(this.allowLargeResults)); + } + if (this.destinationTable != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.LARGE_RESULTS_TABLE_PROPERTY_NAME, this.destinationTable); + } + if (this.destinationDataset != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.LARGE_RESULTS_DATASET_PROPERTY_NAME, this.destinationDataset); + } + if (this.destinationDatasetExpirationTime != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.DESTINATION_DATASET_EXPIRATION_TIME_PROPERTY_NAME, + String.valueOf(this.destinationDatasetExpirationTime)); + } + if (this.universeDomain != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME, this.universeDomain); + } + if (this.proxyHost != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.PROXY_HOST_PROPERTY_NAME, this.proxyHost); + } + if (this.proxyPort != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.PROXY_PORT_PROPERTY_NAME, this.proxyPort); + } + if (this.proxyUid != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.PROXY_USER_ID_PROPERTY_NAME, this.proxyUid); + } + if (this.proxyPwd != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.PROXY_PASSWORD_PROPERTY_NAME, this.proxyPwd); + } + if (this.oAuthClientId != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.OAUTH_CLIENT_ID_PROPERTY_NAME, this.oAuthClientId); + } + if (this.oAuthClientSecret != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.OAUTH_CLIENT_SECRET_PROPERTY_NAME, this.oAuthClientSecret); + } + if (this.jobCreationMode != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.JOB_CREATION_MODE_PROPERTY_NAME, + String.valueOf(this.jobCreationMode)); + } + if (this.maxResults != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.MAX_RESULTS_PROPERTY_NAME, String.valueOf(this.maxResults)); + } + if (this.partnerToken != null && !this.partnerToken.isEmpty()) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.PARTNER_TOKEN_PROPERTY_NAME, this.partnerToken); + } + if (this.enableWriteAPI != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.ENABLE_WRITE_API_PROPERTY_NAME, + String.valueOf(this.enableWriteAPI)); + } + if (this.additionalProjects != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.ADDITIONAL_PROJECTS_PROPERTY_NAME, this.additionalProjects); + } + if (this.filterTablesOnDefaultDataset != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.FILTER_TABLES_ON_DEFAULT_DATASET_PROPERTY_NAME, + String.valueOf(this.filterTablesOnDefaultDataset)); + } + if (this.requestGoogleDriveScope != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME, + String.valueOf(this.requestGoogleDriveScope)); + } + if (this.metadataFetchThreadCount != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.METADATA_FETCH_THREAD_COUNT_PROPERTY_NAME, + String.valueOf(this.metadataFetchThreadCount)); + } + if (this.sslTrustStorePath != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.SSL_TRUST_STORE_PROPERTY_NAME, + String.valueOf(this.sslTrustStorePath)); + } + if (this.sslTrustStorePassword != null) { + connectionProperties.setProperty( + BigQueryJdbcUrlUtility.SSL_TRUST_STORE_PWD_PROPERTY_NAME, + String.valueOf(this.sslTrustStorePassword)); + } + return connectionProperties; + } + + @Override + public Connection getConnection(String username, String password) throws SQLException { + LOG.warning( + "Username and Password is not supported in Bigquery JDBC Driver. Values discarded."); + return getConnection(); + } + + public String getURL() { + return URL; + } + + public void setURL(String URL) { + this.URL = URL; + } + + public String getProjectId() { + return projectId; + } + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + public String getDefaultDataset() { + return defaultDataset; + } + + public void setDefaultDataset(String defaultDataset) { + this.defaultDataset = defaultDataset; + } + + public String getLocation() { + return location; + } + + public void setLocation(String location) { + this.location = location; + } + + public String getUserAgent() { + return userAgent; + } + + public void setUserAgent(String userAgent) { + this.userAgent = userAgent; + } + + public String getPartnerToken() { + return partnerToken; + } + + public void setPartnerToken(String partnerToken) { + // This property is expected to be set by partners only. For more details on exact format + // supported, refer b/396086960 + this.partnerToken = partnerToken; + } + + public boolean getEnableHighThroughputAPI() { + return enableHighThroughputAPI; + } + + public void setEnableHighThroughputAPI(Boolean enableHighThroughputAPI) { + this.enableHighThroughputAPI = enableHighThroughputAPI; + } + + public int getHighThroughputMinTableSize() { + return highThroughputMinTableSize; + } + + public int getHighThroughputActivationRatio() { + return highThroughputActivationRatio; + } + + public void setHighThroughputMinTableSize(Integer highThroughputMinTableSize) { + this.highThroughputMinTableSize = highThroughputMinTableSize; + } + + public void setHighThroughputActivationRatio(Integer highThroughputActivationRatio) { + this.highThroughputActivationRatio = highThroughputActivationRatio; + } + + public void setKmsKeyName(String kmsKeyName) { + this.kmsKeyName = kmsKeyName; + } + + public String getKmsKeyName() { + return this.kmsKeyName; + } + + public void setQueryProperties(Map queryProperties) { + this.queryProperties = queryProperties; + } + + public Map getQueryProperties() { + return this.queryProperties; + } + + public void setUnsupportedHTAPIFallback(Boolean unsupportedHTAPIFallback) { + this.unsupportedHTAPIFallback = unsupportedHTAPIFallback; + } + + public boolean getUnsupportedHTAPIFallback() { + return this.unsupportedHTAPIFallback; + } + + public boolean getEnableSession() { + return enableSession; + } + + public void setEnableSession(Boolean enableSession) { + this.enableSession = enableSession; + } + + public String getLogLevel() { + return logLevel; + } + + public void setLogLevel(String logLevel) { + this.logLevel = logLevel; + } + + public String getLogPath() { + return logPath; + } + + public void setLogPath(String logPath) { + this.logPath = logPath; + } + + public String getUniverseDomain() { + return universeDomain; + } + + public void setUniverseDomain(String universeDomain) { + this.universeDomain = universeDomain; + } + + public String getProxyHost() { + return proxyHost; + } + + public void setProxyHost(String proxyHost) { + this.proxyHost = proxyHost; + } + + public String getProxyPort() { + return proxyPort; + } + + public void setProxyPort(String proxyPort) { + this.proxyPort = proxyPort; + } + + public String getProxyUid() { + return proxyUid; + } + + public void setProxyUid(String proxyUid) { + this.proxyUid = proxyUid; + } + + public String getProxyPwd() { + return proxyPwd; + } + + public void setProxyPwd(String proxyPwd) { + this.proxyPwd = proxyPwd; + } + + public int getOAuthType() { + return oAuthType; + } + + public void setOAuthType(Integer oAuthType) { + this.oAuthType = oAuthType; + } + + public String getOAuthServiceAcctEmail() { + return oAuthServiceAcctEmail; + } + + public void setOAuthServiceAcctEmail(String oAuthServiceAcctEmail) { + this.oAuthServiceAcctEmail = oAuthServiceAcctEmail; + } + + public String getOAuthPvtKeyPath() { + return oAuthPvtKeyPath; + } + + public String getOAuthPvtKey() { + return oAuthPvtKey; + } + + public void setOAuthPvtKey(String oAuthPvtKey) { + this.oAuthPvtKey = oAuthPvtKey; + } + + public void setOAuthPvtKeyPath(String oAuthPvtKeyPath) { + this.oAuthPvtKeyPath = oAuthPvtKeyPath; + } + + public String getOAuthAccessToken() { + return oAuthAccessToken; + } + + public void setOAuthAccessToken(String oAuthAccessToken) { + this.oAuthAccessToken = oAuthAccessToken; + } + + public String getOAuthRefreshToken() { + return oAuthRefreshToken; + } + + public void setOAuthRefreshToken(String oAuthRefreshToken) { + this.oAuthRefreshToken = oAuthRefreshToken; + } + + public Boolean getUseQueryCache() { + return useQueryCache; + } + + public String getQueryDialect() { + return queryDialect; + } + + public Boolean getAllowLargeResults() { + return allowLargeResults; + } + + public String getDestinationTable() { + return destinationTable; + } + + public String getDestinationDataset() { + return destinationDataset; + } + + public Long getDestinationDatasetExpirationTime() { + return destinationDatasetExpirationTime; + } + + public void setUseQueryCache(Boolean useQueryCache) { + this.useQueryCache = useQueryCache; + } + + public void setQueryDialect(String queryDialect) { + this.queryDialect = queryDialect; + } + + public void setAllowLargeResults(Boolean allowLargeResults) { + this.allowLargeResults = allowLargeResults; + } + + public void setDestinationTable(String destinationTable) { + this.destinationTable = destinationTable; + } + + public void setDestinationDataset(String destinationDataset) { + this.destinationDataset = destinationDataset; + } + + public void setDestinationDatasetExpirationTime(long destinationDatasetExpirationTime) { + this.destinationDatasetExpirationTime = destinationDatasetExpirationTime; + } + + public String getOAuthClientId() { + return oAuthClientId; + } + + public void setOAuthClientId(String oAuthClientId) { + this.oAuthClientId = oAuthClientId; + } + + public String getOAuthClientSecret() { + return oAuthClientSecret; + } + + public void setOAuthClientSecret(String oAuthClientSecret) { + this.oAuthClientSecret = oAuthClientSecret; + } + + public Integer getJobCreationMode() { + return jobCreationMode; + } + + public void setJobCreationMode(Integer jobCreationMode) { + this.jobCreationMode = jobCreationMode; + } + + public Boolean getEnableWriteAPI() { + return enableWriteAPI; + } + + public void setEnableWriteAPI(Boolean enableWriteAPI) { + this.enableWriteAPI = enableWriteAPI; + } + + public String getAdditionalProjects() { + return additionalProjects; + } + + public void setAdditionalProjects(String additionalProjects) { + this.additionalProjects = additionalProjects; + } + + public Boolean getFilterTablesOnDefaultDataset() { + return filterTablesOnDefaultDataset; + } + + public void setFilterTablesOnDefaultDataset(Boolean filterTablesOnDefaultDataset) { + this.filterTablesOnDefaultDataset = filterTablesOnDefaultDataset; + } + + public Integer getRequestGoogleDriveScope() { + return requestGoogleDriveScope; + } + + public void setRequestGoogleDriveScope(Integer requestGoogleDriveScope) { + this.requestGoogleDriveScope = requestGoogleDriveScope; + } + + public Integer getMetadataFetchThreadCount() { + return metadataFetchThreadCount; + } + + public void setMetadataFetchThreadCount(Integer metadataFetchThreadCount) { + this.metadataFetchThreadCount = metadataFetchThreadCount; + } + + public String getSSLTrustStorePath() { + return sslTrustStorePath; + } + + public void setSSLTrustStorePath(String sslTrustStorePath) { + this.sslTrustStorePath = sslTrustStorePath; + } + + public String getSSLTrustStorePassword() { + return sslTrustStorePassword; + } + + public void setSSLTrustStorePassword(String sslTrustStorePassword) { + this.sslTrustStorePassword = sslTrustStorePassword; + } + + @Override + public PrintWriter getLogWriter() { + return null; + } + + @Override + public void setLogWriter(PrintWriter out) {} + + @Override + public void setLoginTimeout(int seconds) {} + + @Override + public int getLoginTimeout() { + return 0; + } + + @Override + public Logger getParentLogger() { + return BigQueryJdbcRootLogger.getRootLogger(); + } + + @Override + public T unwrap(Class iface) { + return null; + } + + @Override + public boolean isWrapperFor(Class iface) { + return false; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSource.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSource.java new file mode 100644 index 000000000000..412e4ca9eeea --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSource.java @@ -0,0 +1,68 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import com.google.common.annotations.VisibleForTesting; +import java.sql.Connection; +import java.sql.SQLException; +import javax.sql.ConnectionPoolDataSource; +import javax.sql.PooledConnection; + +public class PooledConnectionDataSource extends DataSource implements ConnectionPoolDataSource { + private PooledConnectionListener connectionPoolManager = null; + Connection bqConnection = null; + + @Override + public PooledConnection getPooledConnection() throws SQLException { + if (connectionPoolManager != null && !connectionPoolManager.isConnectionPoolEmpty()) { + return connectionPoolManager.getPooledConnection(); + } + // Create the Underlying physical connection + if (bqConnection == null) { + bqConnection = super.getConnection(); + } + if (bqConnection == null) { + throw new BigQueryJdbcRuntimeException( + "Cannot get pooled connection: unable to get underlying physical connection"); + } + String connectionURl = ((BigQueryConnection) bqConnection).getConnectionUrl(); + Long connectionPoolSize = + BigQueryJdbcUrlUtility.parseConnectionPoolSize(connectionURl, this.toString()); + if (connectionPoolManager == null) { + connectionPoolManager = new PooledConnectionListener(connectionPoolSize); + } + BigQueryPooledConnection bqPooledConnection = new BigQueryPooledConnection(bqConnection); + bqPooledConnection.addConnectionEventListener(connectionPoolManager); + return bqPooledConnection; + } + + @VisibleForTesting + void setConnection(Connection connection) { + this.bqConnection = connection; + } + + @VisibleForTesting + public PooledConnectionListener getConnectionPoolManager() { + return this.connectionPoolManager; + } + + @Override + public PooledConnection getPooledConnection(String arg0, String arg1) throws SQLException { + throw new UnsupportedOperationException("This operation is not supported by the driver"); + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionListener.java b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionListener.java new file mode 100644 index 000000000000..c0f08204384b --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionListener.java @@ -0,0 +1,145 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import java.util.UUID; +import java.util.concurrent.LinkedBlockingDeque; +import javax.sql.ConnectionEvent; +import javax.sql.ConnectionEventListener; +import javax.sql.PooledConnection; + +public class PooledConnectionListener implements ConnectionEventListener { + private final BigQueryJdbcCustomLogger LOG = new BigQueryJdbcCustomLogger(this.toString()); + private String id; // Mainly for internal use + private LinkedBlockingDeque connectionPool; + private Long connectionPoolSize = 0L; + + public PooledConnectionListener(Long connPoolSize) { + id = UUID.randomUUID().toString(); + this.connectionPoolSize = connPoolSize; + if (getConnectionPoolSize() > 0L) { + connectionPool = new LinkedBlockingDeque<>(getConnectionPoolSize().intValue()); + } else { + connectionPool = new LinkedBlockingDeque<>(); + } + } + + public Long getConnectionPoolSize() { + return this.connectionPoolSize; + } + + public int getConnectionPoolCurrentCapacity() { + return this.connectionPool.size(); + } + + public boolean isConnectionPoolEmpty() { + return (connectionPool != null && connectionPool.isEmpty()); + } + + PooledConnection getPooledConnection() { + if (isConnectionPoolEmpty()) { + LOG.warning("Connection pool is empty"); + return null; + } + // Return the first element. + return connectionPool.getFirst(); + } + + void addConnection(PooledConnection connection) { + LOG.finest("++enter++"); + if (connection == null) { + LOG.warning("Connection passed in is null"); + return; + } + if (connectionPool.contains(connection)) { + LOG.warning("Connection already in the pool"); + return; + } + connectionPool.add(connection); + } + + void removeConnection(PooledConnection connection) { + LOG.finest("++enter++"); + if (connection == null) { + LOG.warning("Connection passed in is null"); + return; + } + if (!connectionPool.contains(connection)) { + LOG.warning("Connection already in the pool"); + return; + } + connectionPool.remove(connection); + } + + @Override + public void connectionClosed(ConnectionEvent event) { + LOG.finest("++enter++"); + Object eventSource = event.getSource(); + if (eventSource == null + || !(eventSource instanceof BigQueryPooledConnection) + || !(eventSource.getClass().isAssignableFrom(BigQueryPooledConnection.class))) { + throw new IllegalArgumentException( + "Invalid ConnectionEvent source passed to connectionClosed. Expecting" + + " BigQueryPooledConnection."); + } + BigQueryPooledConnection bqPooledConnection = (BigQueryPooledConnection) eventSource; + addConnection(bqPooledConnection); + LOG.finest("Added pooled connection to connection pool"); + } + + @Override + public void connectionErrorOccurred(ConnectionEvent event) { + LOG.finest("++enter++"); + Object eventSource = event.getSource(); + if (eventSource == null + || !(eventSource instanceof BigQueryPooledConnection) + || !(eventSource.getClass().isAssignableFrom(BigQueryPooledConnection.class))) { + throw new IllegalArgumentException( + "Invalid ConnectionEvent source passed to connectionClosed. Expecting" + + " BigQueryPooledConnection."); + } + BigQueryPooledConnection bqPooledConnection = (BigQueryPooledConnection) eventSource; + removeConnection(bqPooledConnection); + String errorMessage = + (event.getSQLException() != null) + ? event.getSQLException().getMessage() + : "Connection error occured"; + LOG.finest( + String.format( + "Removed pooled connection from connection pool due to error: %s", errorMessage)); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((id == null) ? 0 : id.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) return true; + if (obj == null) return false; + if (getClass() != obj.getClass()) return false; + PooledConnectionListener other = (PooledConnectionListener) obj; + if (id == null) { + if (other.id != null) return false; + } else if (!id.equals(other.id)) return false; + return true; + } +} diff --git a/google-cloud-bigquery-jdbc/src/main/resources/META-INF/services/java.sql.Driver b/google-cloud-bigquery-jdbc/src/main/resources/META-INF/services/java.sql.Driver new file mode 100644 index 000000000000..1ea35896bee9 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/resources/META-INF/services/java.sql.Driver @@ -0,0 +1 @@ +com.google.cloud.bigquery.jdbc.BigQueryDriver diff --git a/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetCrossReference.sql b/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetCrossReference.sql new file mode 100644 index 000000000000..da8386270457 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetCrossReference.sql @@ -0,0 +1,72 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +SELECT PKTABLE_CAT, + PKTABLE_SCHEM, + PKTABLE_NAME, + PRIMARY.column_name AS PKCOLUMN_NAME, + FOREIGN.constraint_catalog AS FKTABLE_CAT, + FOREIGN.constraint_schema AS FKTABLE_SCHEM, + FOREIGN.table_name AS FKTABLE_NAME, + FOREIGN.column_name AS FKCOLUMN_NAME, + FOREIGN.ordinal_position AS KEY_SEQ, + NULL AS UPDATE_RULE, + NULL AS DELETE_RULE, + FOREIGN.constraint_name AS FK_NAME, + PRIMARY.constraint_name AS PK_NAME, + NULL AS DEFERRABILITY +FROM (SELECT DISTINCT CCU.table_catalog AS PKTABLE_CAT, + CCU.table_schema AS PKTABLE_SCHEM, + CCU.table_name AS PKTABLE_NAME, + TC.constraint_catalog, + TC.constraint_schema, + TC.constraint_name, + TC.table_catalog, + TC.table_schema, + TC.table_name, + TC.constraint_type, + KCU.column_name, + KCU.ordinal_position, + KCU.position_in_unique_constraint + FROM `%1$s.%2$s.INFORMATION_SCHEMA.TABLE_CONSTRAINTS` TC + INNER JOIN + `%1$s.%2$s.INFORMATION_SCHEMA.KEY_COLUMN_USAGE` KCU + USING + (constraint_catalog, + constraint_schema, + constraint_name, + table_catalog, + table_schema, + table_name) + INNER JOIN + `%1$s.%2$s.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE` CCU + USING + (constraint_catalog, + constraint_schema, + constraint_name) + WHERE constraint_type = 'FOREIGN KEY' + AND TC.table_name = '%6$s') FOREIGN + INNER JOIN (SELECT * + FROM `%1$s.%2$s.INFORMATION_SCHEMA.KEY_COLUMN_USAGE` + WHERE position_in_unique_constraint IS NULL + AND RTRIM(table_name) = '%3$s') PRIMARY +ON + FOREIGN.PKTABLE_CAT = PRIMARY.table_catalog + AND FOREIGN.PKTABLE_SCHEM = PRIMARY.table_schema + AND FOREIGN.PKTABLE_NAME = PRIMARY.table_name + AND FOREIGN.position_in_unique_constraint = + PRIMARY.ordinal_position +ORDER BY FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, KEY_SEQ \ No newline at end of file diff --git a/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetExportedKeys.sql b/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetExportedKeys.sql new file mode 100644 index 000000000000..4058f6bff60a --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetExportedKeys.sql @@ -0,0 +1,71 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +SELECT PKTABLE_CAT, + PKTABLE_SCHEM, + PKTABLE_NAME, + PRIMARY.column_name AS PKCOLUMN_NAME, + FOREIGN.constraint_catalog AS FKTABLE_CAT, + FOREIGN.constraint_schema AS FKTABLE_SCHEM, + FOREIGN.table_name AS FKTABLE_NAME, + FOREIGN.column_name AS FKCOLUMN_NAME, + FOREIGN.ordinal_position AS KEY_SEQ, + NULL AS UPDATE_RULE, + NULL AS DELETE_RULE, + FOREIGN.constraint_name AS FK_NAME, + PRIMARY.constraint_name AS PK_NAME, + NULL AS DEFERRABILITY +FROM (SELECT DISTINCT CCU.table_catalog AS PKTABLE_CAT, + CCU.table_schema AS PKTABLE_SCHEM, + CCU.table_name AS PKTABLE_NAME, + TC.constraint_catalog, + TC.constraint_schema, + TC.constraint_name, + TC.table_catalog, + TC.table_schema, + TC.table_name, + TC.constraint_type, + KCU.column_name, + KCU.ordinal_position, + KCU.position_in_unique_constraint + FROM `%1$s.%2$s.INFORMATION_SCHEMA.TABLE_CONSTRAINTS` TC + INNER JOIN + `%1$s.%2$s.INFORMATION_SCHEMA.KEY_COLUMN_USAGE` KCU + USING + (constraint_catalog, + constraint_schema, + constraint_name, + table_catalog, + table_schema, + table_name) + INNER JOIN + `%1$s.%2$s.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE` CCU + USING + (constraint_catalog, + constraint_schema, + constraint_name) + WHERE constraint_type = 'FOREIGN KEY') FOREIGN + INNER JOIN (SELECT * + FROM `%1$s.%2$s.INFORMATION_SCHEMA.KEY_COLUMN_USAGE` + WHERE position_in_unique_constraint IS NULL + AND RTRIM(table_name) = '%3$s') PRIMARY +ON + FOREIGN.PKTABLE_CAT = PRIMARY.table_catalog + AND FOREIGN.PKTABLE_SCHEM = PRIMARY.table_schema + AND FOREIGN.PKTABLE_NAME = PRIMARY.table_name + AND FOREIGN.position_in_unique_constraint = + PRIMARY.ordinal_position +ORDER BY FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, KEY_SEQ \ No newline at end of file diff --git a/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetImportedKeys.sql b/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetImportedKeys.sql new file mode 100644 index 000000000000..3f4142eb051f --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetImportedKeys.sql @@ -0,0 +1,71 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +SELECT PKTABLE_CAT, + PKTABLE_SCHEM, + PKTABLE_NAME, + PRIMARY.column_name AS PKCOLUMN_NAME, + FOREIGN.constraint_catalog AS FKTABLE_CAT, + FOREIGN.constraint_schema AS FKTABLE_SCHEM, + FOREIGN.table_name AS FKTABLE_NAME, + FOREIGN.column_name AS FKCOLUMN_NAME, + FOREIGN.ordinal_position AS KEY_SEQ, + NULL AS UPDATE_RULE, + NULL AS DELETE_RULE, + FOREIGN.constraint_name AS FK_NAME, + PRIMARY.constraint_name AS PK_NAME, + NULL AS DEFERRABILITY +FROM (SELECT DISTINCT CCU.table_catalog AS PKTABLE_CAT, + CCU.table_schema AS PKTABLE_SCHEM, + CCU.table_name AS PKTABLE_NAME, + TC.constraint_catalog, + TC.constraint_schema, + TC.constraint_name, + TC.table_catalog, + TC.table_schema, + TC.table_name, + TC.constraint_type, + KCU.column_name, + KCU.ordinal_position, + KCU.position_in_unique_constraint + FROM `%1$s.%2$s.INFORMATION_SCHEMA.TABLE_CONSTRAINTS` TC + INNER JOIN + `%1$s.%2$s.INFORMATION_SCHEMA.KEY_COLUMN_USAGE` KCU + USING + (constraint_catalog, + constraint_schema, + constraint_name, + table_catalog, + table_schema, + table_name) + INNER JOIN + `%1$s.%2$s.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE` CCU + USING + (constraint_catalog, + constraint_schema, + constraint_name) + WHERE constraint_type = 'FOREIGN KEY' + AND TC.table_name = '%3$s') FOREIGN + INNER JOIN (SELECT * + FROM `%1$s.%2$s.INFORMATION_SCHEMA.KEY_COLUMN_USAGE` + WHERE position_in_unique_constraint IS NULL) PRIMARY +ON + FOREIGN.PKTABLE_CAT = PRIMARY.table_catalog + AND FOREIGN.PKTABLE_SCHEM = PRIMARY.table_schema + AND FOREIGN.PKTABLE_NAME = PRIMARY.table_name + AND FOREIGN.position_in_unique_constraint = + PRIMARY.ordinal_position +ORDER BY PKTABLE_CAT, PKTABLE_SCHEM, PKTABLE_NAME, KEY_SEQ \ No newline at end of file diff --git a/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetPrimaryKeys.sql b/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetPrimaryKeys.sql new file mode 100644 index 000000000000..282910fb9721 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/DatabaseMetaData_GetPrimaryKeys.sql @@ -0,0 +1,30 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +SELECT table_catalog AS TABLE_CAT, + table_schema AS TABLE_SCHEM, + table_name AS TABLE_NAME, + column_name AS COLUMN_NAME, + ordinal_position AS KEY_SEQ, + constraint_name AS PK_NAME +FROM + %s.%s.INFORMATION_SCHEMA.KEY_COLUMN_USAGE +WHERE + table_name = '%s' + AND CONTAINS_SUBSTR(constraint_name + , 'pk$') +ORDER BY + COLUMN_NAME; diff --git a/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/dependencies.properties b/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/dependencies.properties new file mode 100644 index 000000000000..6908cb6cc780 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/main/resources/com/google/cloud/bigquery/jdbc/dependencies.properties @@ -0,0 +1,4 @@ +# Versions of oneself +# {x-version-update-start:google-cloud-bigquery-jdbc:current} +version.jdbc=${project.version} +# {x-version-update-end} \ No newline at end of file diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/ArrowFormatTypeBigQueryCoercionUtilityTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/ArrowFormatTypeBigQueryCoercionUtilityTest.java new file mode 100644 index 000000000000..0524fc87d1da --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/ArrowFormatTypeBigQueryCoercionUtilityTest.java @@ -0,0 +1,234 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.BigQueryTypeCoercionUtility.INSTANCE; +import static com.google.common.truth.Truth.assertThat; +import static java.time.Month.FEBRUARY; +import static java.time.Month.JANUARY; + +import com.google.cloud.bigquery.FieldElementType; +import com.google.cloud.bigquery.Range; +import com.google.cloud.bigquery.jdbc.rules.TimeZoneRule; +import java.math.BigDecimal; +import java.sql.Date; +import java.sql.Time; +import java.sql.Timestamp; +import java.time.Duration; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.Period; +import org.apache.arrow.vector.PeriodDuration; +import org.apache.arrow.vector.util.JsonStringArrayList; +import org.apache.arrow.vector.util.JsonStringHashMap; +import org.apache.arrow.vector.util.Text; +import org.junit.Rule; +import org.junit.Test; + +public class ArrowFormatTypeBigQueryCoercionUtilityTest { + + @Rule public final TimeZoneRule timeZoneRule = new TimeZoneRule("UTC"); + + private static final Range RANGE_DATE = + Range.newBuilder() + .setType(FieldElementType.newBuilder().setType("DATE").build()) + .setStart("1970-01-02") + .setEnd("1970-03-04") + .build(); + + private static final Range RANGE_DATETIME = + Range.newBuilder() + .setType(FieldElementType.newBuilder().setType("DATETIME").build()) + .setStart("2014-08-19 05:41:35.220000") + .setEnd("2015-09-20 06:41:35.220000") + .build(); + + private static final Range RANGE_TIMESTAMP = + Range.newBuilder() + .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .setStart("2014-08-19 12:41:35.220000+00:00") + .setEnd("2015-09-20 13:41:35.220000+01:00") + .build(); + + @Test + public void nullToString() { + assertThat(INSTANCE.coerceTo(String.class, null)).isNull(); + } + + @Test + public void JsonStringArrayListToString() { + JsonStringArrayList employeeList = new JsonStringArrayList<>(); + employeeList.add(1); + employeeList.add(2); + employeeList.add(3); + + assertThat(INSTANCE.coerceTo(String.class, employeeList)).isEqualTo("[1,2,3]"); + } + + @Test + public void localDateTimeToTimestamp() { + LocalDateTime localDatetime = LocalDateTime.of(1995, FEBRUARY, 23, 20, 15); + + assertThat(INSTANCE.coerceTo(Timestamp.class, localDatetime)) + .isEqualTo(Timestamp.valueOf(localDatetime)); + } + + @Test + public void textToString() { + Text text = new Text("Hello World!"); + + assertThat(INSTANCE.coerceTo(String.class, text)).isEqualTo("Hello World!"); + } + + @Test + public void nullToInteger() { + assertThat(INSTANCE.coerceTo(Integer.class, null)).isEqualTo(0); + } + + @Test + public void textToInteger() { + Text text = new Text("51423"); + + assertThat(INSTANCE.coerceTo(Integer.class, text)).isEqualTo(51423); + } + + @Test + public void longToInteger() { + assertThat(INSTANCE.coerceTo(Integer.class, 56L)).isEqualTo(56); + } + + @Test + public void bigDecimalToInteger() { + assertThat(INSTANCE.coerceTo(Integer.class, new BigDecimal("56"))).isEqualTo(56); + } + + @Test + public void nullToLong() { + assertThat(INSTANCE.coerceTo(Long.class, null)).isEqualTo(0L); + } + + @Test + public void bigDecimalToLong() { + assertThat(INSTANCE.coerceTo(Long.class, new BigDecimal("56"))).isEqualTo(56L); + } + + @Test + public void nullToDouble() { + assertThat(INSTANCE.coerceTo(Double.class, null)).isEqualTo(0D); + } + + @Test + public void bigDecimalToDouble() { + assertThat(INSTANCE.coerceTo(Double.class, new BigDecimal("56"))).isEqualTo(56D); + } + + @Test + public void nullToBoolean() { + assertThat(INSTANCE.coerceTo(Boolean.class, null)).isFalse(); + } + + @Test + public void nullToByteArray() { + assertThat(INSTANCE.coerceTo(byte[].class, null)).isNull(); + } + + @Test + public void nullToTimestamp() { + assertThat(INSTANCE.coerceTo(Timestamp.class, null)).isNull(); + } + + @Test + public void longToTimestamp() { + assertThat(INSTANCE.coerceTo(Timestamp.class, 1408452095220000L)) + .isEqualTo(new Timestamp(1408452095220L)); + } + + @Test + public void nullToTime() { + assertThat(INSTANCE.coerceTo(Time.class, null)).isNull(); + } + + @Test + public void longToTime() { + assertThat(INSTANCE.coerceTo(Time.class, 1408452095220000L)) + .isEqualTo(new Time(1408452095000L)); + } + + @Test + public void nullToDate() { + assertThat(INSTANCE.coerceTo(Date.class, null)).isNull(); + } + + @Test + public void integerToDate() { + LocalDate expectedDate = LocalDate.of(2022, JANUARY, 1); + assertThat(INSTANCE.coerceTo(Date.class, 18993).toLocalDate()).isEqualTo(expectedDate); + } + + @Test + public void periodDurationToString() { + Period period = Period.of(1, 3, 24); + Duration duration = Duration.ofHours(3).plusMinutes(45).plusSeconds(23).plusNanos(123456000); + PeriodDuration periodDuration = new PeriodDuration(period, duration); + assertThat(INSTANCE.coerceTo(String.class, periodDuration)).isEqualTo("1-3 24 3:45:23.123456"); + + Period period2 = Period.of(1, 6, -8); + Duration duration2 = Duration.ofHours(9).plusMinutes(43).plusSeconds(23).plusNanos(123456000); + PeriodDuration periodDuration2 = new PeriodDuration(period2, duration2); + assertThat(INSTANCE.coerceTo(String.class, periodDuration2)).isEqualTo("1-6 -8 9:43:23.123456"); + } + + // Range tests + + @Test + public void JsonStringHashMapToString() { + JsonStringHashMap employeeMap = new JsonStringHashMap<>(); + employeeMap.putIfAbsent("name1", "type1"); + employeeMap.putIfAbsent("name2", "type2"); + employeeMap.putIfAbsent("name3", "type3"); + + assertThat(INSTANCE.coerceTo(String.class, employeeMap)) + .isEqualTo("{\"name1\":\"type1\",\"name2\":\"type2\",\"name3\":\"type3\"}"); + } + + @Test + public void rangeDateToString() { + String expectedRangeDate = + String.format( + "[%s, %s)", + RANGE_DATE.getStart().getStringValue(), RANGE_DATE.getEnd().getStringValue()); + assertThat(INSTANCE.coerceTo(String.class, RANGE_DATE)).isEqualTo(expectedRangeDate); + } + + @Test + public void rangeDatetimeToString() { + String expectedRangeDate = + String.format( + "[%s, %s)", + RANGE_DATETIME.getStart().getStringValue(), RANGE_DATETIME.getEnd().getStringValue()); + assertThat(INSTANCE.coerceTo(String.class, RANGE_DATETIME)).isEqualTo(expectedRangeDate); + } + + @Test + public void rangeTimestampToString() { + String expectedRangeTimestamp = + String.format( + "[%s, %s)", + RANGE_TIMESTAMP.getStart().getStringValue(), RANGE_TIMESTAMP.getEnd().getStringValue()); + assertThat(INSTANCE.coerceTo(String.class, RANGE_TIMESTAMP)).isEqualTo(expectedRangeTimestamp); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfPrimitivesTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfPrimitivesTest.java new file mode 100644 index 000000000000..5b33fda78800 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfPrimitivesTest.java @@ -0,0 +1,367 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.StandardSQLTypeName.BIGNUMERIC; +import static com.google.cloud.bigquery.StandardSQLTypeName.BOOL; +import static com.google.cloud.bigquery.StandardSQLTypeName.BYTES; +import static com.google.cloud.bigquery.StandardSQLTypeName.DATE; +import static com.google.cloud.bigquery.StandardSQLTypeName.DATETIME; +import static com.google.cloud.bigquery.StandardSQLTypeName.FLOAT64; +import static com.google.cloud.bigquery.StandardSQLTypeName.GEOGRAPHY; +import static com.google.cloud.bigquery.StandardSQLTypeName.INT64; +import static com.google.cloud.bigquery.StandardSQLTypeName.NUMERIC; +import static com.google.cloud.bigquery.StandardSQLTypeName.STRING; +import static com.google.cloud.bigquery.StandardSQLTypeName.TIME; +import static com.google.cloud.bigquery.StandardSQLTypeName.TIMESTAMP; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.INVALID_ARRAY; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.arrowArraySchemaAndValue; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.nestedResultSetToColumnLists; +import static com.google.common.truth.Truth.assertThat; +import static java.lang.Boolean.FALSE; +import static java.lang.Boolean.TRUE; +import static java.time.Month.MARCH; +import static java.util.Arrays.copyOfRange; +import static java.util.Collections.emptyMap; +import static org.junit.Assert.assertThrows; + +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.jdbc.rules.TimeZoneRule; +import java.math.BigDecimal; +import java.sql.Array; +import java.sql.Date; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.SQLFeatureNotSupportedException; +import java.sql.Time; +import java.sql.Timestamp; +import java.sql.Types; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.stream.Stream; +import org.apache.arrow.vector.util.JsonStringArrayList; +import org.apache.arrow.vector.util.Text; +import org.junit.Before; +import org.junit.ClassRule; +import org.junit.Test; +import org.junit.function.ThrowingRunnable; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +@RunWith(Parameterized.class) +public class BigQueryArrowArrayOfPrimitivesTest { + + private final Field schema; + private final JsonStringArrayList arrayValues; + private final Object[] expected; + private final int javaSqlTypeCode; + private Array array; + private final StandardSQLTypeName currentType; + + @ClassRule public static final TimeZoneRule timeZoneRule = new TimeZoneRule("UTC"); + + public BigQueryArrowArrayOfPrimitivesTest( + StandardSQLTypeName currentType, + Tuple> schemaAndValue, + Object[] expected, + int javaSqlTypeCode) { + this.currentType = currentType; + this.schema = schemaAndValue.x(); + this.arrayValues = schemaAndValue.y(); + this.expected = expected; + this.javaSqlTypeCode = javaSqlTypeCode; + } + + @Before + public void setUp() { + array = new BigQueryArrowArray(this.schema, this.arrayValues); + } + + @Parameters(name = "{index}: primitive array of {0}") + public static Collection data() { + timeZoneRule.enforce(); + LocalDateTime aTimeStamp = LocalDateTime.of(2023, MARCH, 30, 11, 14, 19, 820227000); + LocalDate aDate = LocalDate.of(2023, MARCH, 30); + LocalTime aTime = LocalTime.of(11, 14, 19, 820227); + return Arrays.asList( + new Object[][] { + { + INT64, + arrowArraySchemaAndValue(INT64, 10L, 20L, 30L, 40L), + new Long[] {10L, 20L, 30L, 40L}, + Types.BIGINT + }, + { + BOOL, + arrowArraySchemaAndValue(BOOL, TRUE, FALSE, FALSE, TRUE), + new Boolean[] {true, false, false, true}, + Types.BOOLEAN + }, + { + FLOAT64, + arrowArraySchemaAndValue( + FLOAT64, + Double.valueOf("11.2"), + Double.valueOf("33.4"), + Double.valueOf("55.6"), + Double.valueOf("77.8")), + new Double[] {11.2, 33.4, 55.6, 77.8}, + Types.DOUBLE + }, + { + NUMERIC, + arrowArraySchemaAndValue( + NUMERIC, + new BigDecimal("11.2657"), + new BigDecimal("33.4657"), + new BigDecimal("55.6657"), + new BigDecimal("77.8657")), + new BigDecimal[] { + new BigDecimal("11.2657"), + new BigDecimal("33.4657"), + new BigDecimal("55.6657"), + new BigDecimal("77.8657") + }, + Types.NUMERIC + }, + { + BIGNUMERIC, + arrowArraySchemaAndValue( + BIGNUMERIC, + new BigDecimal("11.2657"), + new BigDecimal("33.4657"), + new BigDecimal("55.6657"), + new BigDecimal("77.8657")), + new BigDecimal[] { + new BigDecimal("11.2657"), + new BigDecimal("33.4657"), + new BigDecimal("55.6657"), + new BigDecimal("77.8657") + }, + Types.NUMERIC + }, + { + STRING, + arrowArraySchemaAndValue( + STRING, new Text("one"), new Text("two"), new Text("three"), new Text("four")), + new String[] {"one", "two", "three", "four"}, + Types.NVARCHAR + }, + { + TIMESTAMP, + arrowArraySchemaAndValue( + TIMESTAMP, + Long.valueOf("1680174859820227"), + Long.valueOf("1680261259820227"), + Long.valueOf("1680347659820227"), + Long.valueOf("1680434059820227")), + new Timestamp[] { + Timestamp.valueOf(aTimeStamp), // 2023-03-30 16:44:19.82 + Timestamp.valueOf(aTimeStamp.plusDays(1)), + Timestamp.valueOf(aTimeStamp.plusDays(2)), + Timestamp.valueOf(aTimeStamp.plusDays(3)) + }, + Types.TIMESTAMP + }, + { + DATE, + arrowArraySchemaAndValue(DATE, 19446, 19447, 19448, 19449), + new Date[] { + Date.valueOf(aDate), + Date.valueOf(aDate.plusDays(1)), + Date.valueOf(aDate.plusDays(2)), + Date.valueOf(aDate.plusDays(3)) + }, + Types.DATE + }, + { + TIME, + arrowArraySchemaAndValue( + TIME, + Long.valueOf("40459820227"), // 11:14:19.820227 + Long.valueOf("40460820227"), + Long.valueOf("40461820227"), + Long.valueOf("40462820227")), + new Time[] { + Time.valueOf(aTime), + Time.valueOf(aTime.plusSeconds(1)), + Time.valueOf(aTime.plusSeconds(2)), + Time.valueOf(aTime.plusSeconds(3)) + }, + Types.TIME + }, + { + DATETIME, + arrowArraySchemaAndValue( + DATETIME, + LocalDateTime.parse("2023-03-30T11:14:19.820227"), + LocalDateTime.parse("2023-03-30T11:15:19.820227"), + LocalDateTime.parse("2023-03-30T11:16:19.820227"), + LocalDateTime.parse("2023-03-30T11:17:19.820227")), + new Timestamp[] { + Timestamp.valueOf(LocalDateTime.parse("2023-03-30T11:14:19.820227")), + Timestamp.valueOf(LocalDateTime.parse("2023-03-30T11:15:19.820227")), + Timestamp.valueOf(LocalDateTime.parse("2023-03-30T11:16:19.820227")), + Timestamp.valueOf(LocalDateTime.parse("2023-03-30T11:17:19.820227")) + }, + Types.TIMESTAMP + }, + { + GEOGRAPHY, + arrowArraySchemaAndValue( + GEOGRAPHY, + new Text("POINT(-122 47)"), + new Text("POINT(-122 48)"), + new Text("POINT(-121 47)"), + new Text("POINT(-123 48)")), + new String[] {"POINT(-122 47)", "POINT(-122 48)", "POINT(-121 47)", "POINT(-123 48)"}, + Types.OTHER + }, + { + BYTES, + arrowArraySchemaAndValue( + BYTES, + Stream.of("one", "two", "three", "four") + .map(String::getBytes) + .toArray(byte[][]::new)), // array of bytes array + new byte[][] { + "one".getBytes(), "two".getBytes(), "three".getBytes(), "four".getBytes() + }, + Types.VARBINARY + } + }); + } + + @Test + public void getArray() throws SQLException { + assertThat(array.getArray()).isEqualTo(this.expected); + } + + @Test + public void getSlicedArray() throws SQLException { + int fromIndex = 1; + int toIndexExclusive = 3; + Object[] expectedSlicedArray = + copyOfRange(this.expected, fromIndex, toIndexExclusive); // copying index(1,2) + + // the first element is at index 1 + assertThat(array.getArray(fromIndex + 1, 2)).isEqualTo(expectedSlicedArray); + } + + @Test + public void getSlicedArrayWhenCountIsGreaterThanOriginalArrayLength() { + IllegalArgumentException illegalArgumentException = + assertThrows(IllegalArgumentException.class, () -> array.getArray(2, 10)); + assertThat(illegalArgumentException.getMessage()) + .isEqualTo("The array index is out of range: 12, number of elements: 4."); + } + + @Test + public void getResultSet() throws SQLException { + ResultSet resultSet = this.array.getResultSet(); + Tuple, ArrayList> indexAndValues = + nestedResultSetToColumnLists(resultSet); + ArrayList indexList = indexAndValues.x(); + ArrayList columnValues = indexAndValues.y(); + + assertThat(indexList.toArray()).isEqualTo(new Object[] {1, 2, 3, 4}); + assertThat(columnValues.toArray()).isEqualTo(this.expected); + } + + @Test + public void getSlicedResultSet() throws SQLException { + int fromIndex = 1; + int toIndexExclusive = 3; + Object[] expectedSlicedArray = + copyOfRange(this.expected, fromIndex, toIndexExclusive); // copying index(1,2) + + // the first element is at index 1 + ResultSet resultSet = array.getResultSet(fromIndex + 1, 2); + + Tuple, ArrayList> indexAndValues = + nestedResultSetToColumnLists(resultSet); + ArrayList indexList = indexAndValues.x(); + ArrayList columnValues = indexAndValues.y(); + + assertThat(indexList.toArray()).isEqualTo(new Object[] {2, 3}); + assertThat(columnValues.toArray()).isEqualTo(expectedSlicedArray); + } + + @Test + public void getSlicedResultSetWhenCountIsGreaterThanOriginalArrayLength() { + IllegalArgumentException illegalArgumentException = + assertThrows(IllegalArgumentException.class, () -> array.getResultSet(2, 10)); + assertThat(illegalArgumentException.getMessage()) + .isEqualTo("The array index is out of range: 12, number of elements: 4."); + } + + @Test + public void getBaseTypeName() throws SQLException { + assertThat(array.getBaseTypeName()).isEqualTo(this.currentType.name()); + } + + @Test + public void getBaseType() throws SQLException { + assertThat(array.getBaseType()).isEqualTo(this.javaSqlTypeCode); + } + + @Test + public void free() throws SQLException { + this.array.free(); + + ensureArrayIsInvalid(() -> array.getArray()); + ensureArrayIsInvalid(() -> array.getArray(1, 2)); + ensureArrayIsInvalid(() -> array.getResultSet()); + ensureArrayIsInvalid(() -> array.getResultSet(1, 2)); + ensureArrayIsInvalid(() -> array.getBaseTypeName()); + ensureArrayIsInvalid(() -> array.getBaseType()); + } + + @Test + public void getArrayWithCustomTypeMappingsIsNotSupported() { + Exception exception1 = + assertThrows(SQLFeatureNotSupportedException.class, () -> array.getArray(emptyMap())); + Exception exception2 = + assertThrows(SQLFeatureNotSupportedException.class, () -> array.getArray(1, 2, emptyMap())); + assertThat(exception1.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + assertThat(exception2.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + @Test + public void getResultSetWithCustomTypeMappingsIsNotSupported() { + Exception exception1 = + assertThrows(SQLFeatureNotSupportedException.class, () -> array.getResultSet(emptyMap())); + Exception exception2 = + assertThrows( + SQLFeatureNotSupportedException.class, () -> array.getResultSet(1, 2, emptyMap())); + assertThat(exception1.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + assertThat(exception2.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + private void ensureArrayIsInvalid(ThrowingRunnable block) { + Exception exception = assertThrows(IllegalStateException.class, block); + assertThat(exception.getMessage()).isEqualTo(INVALID_ARRAY); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfStructTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfStructTest.java new file mode 100644 index 000000000000..7cb84e70abed --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfStructTest.java @@ -0,0 +1,205 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.LegacySQLTypeName.RECORD; +import static com.google.cloud.bigquery.StandardSQLTypeName.BOOL; +import static com.google.cloud.bigquery.StandardSQLTypeName.INT64; +import static com.google.cloud.bigquery.StandardSQLTypeName.STRING; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.INVALID_ARRAY; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.arrowArrayOf; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.arrowStructOf; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.nestedResultSetToColumnLists; +import static com.google.common.truth.Truth.assertThat; +import static java.lang.Boolean.FALSE; +import static java.lang.Boolean.TRUE; +import static java.util.Arrays.asList; +import static java.util.Collections.emptyMap; +import static org.junit.Assert.assertThrows; + +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Field.Mode; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.sql.Array; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.SQLFeatureNotSupportedException; +import java.sql.Struct; +import java.sql.Types; +import java.util.ArrayList; +import org.apache.arrow.vector.util.JsonStringArrayList; +import org.apache.arrow.vector.util.JsonStringHashMap; +import org.apache.arrow.vector.util.Text; +import org.junit.Before; +import org.junit.Test; +import org.junit.function.ThrowingRunnable; + +public class BigQueryArrowArrayOfStructTest { + + private Array array; + + @Before + public void setUp() { + FieldList profileSchema = + FieldList.of( + Field.newBuilder("name", LegacySQLTypeName.STRING).build(), + Field.newBuilder("age", LegacySQLTypeName.INTEGER).build(), + Field.newBuilder("adult", LegacySQLTypeName.BOOLEAN).build()); + + JsonStringHashMap record1 = + arrowStructOf( + Tuple.of(STRING, new Text("Arya")), Tuple.of(INT64, 15L), Tuple.of(BOOL, FALSE)) + .y(); + JsonStringHashMap record2 = + arrowStructOf( + Tuple.of(STRING, new Text("Khal Drogo")), + Tuple.of(INT64, 35L), + Tuple.of(BOOL, TRUE)) + .y(); + JsonStringHashMap record3 = + arrowStructOf( + Tuple.of(STRING, new Text("Ned Stark")), Tuple.of(INT64, 45L), Tuple.of(BOOL, TRUE)) + .y(); + JsonStringHashMap record4 = + arrowStructOf( + Tuple.of(STRING, new Text("Jon Snow")), Tuple.of(INT64, 25L), Tuple.of(BOOL, TRUE)) + .y(); + + Field arrayOfStructSchema = + Field.newBuilder("profiles", RECORD, profileSchema).setMode(Mode.REPEATED).build(); + + JsonStringArrayList> arrayOfStructValue = + arrowArrayOf(record1, record2, record3, record4); + array = new BigQueryArrowArray(arrayOfStructSchema, arrayOfStructValue); + } + + @Test + public void getArray() throws SQLException { + Struct[] structArray = (Struct[]) array.getArray(); + + assertThat(structArray.length).isEqualTo(4); + assertThat(structArray[0].getAttributes()).isEqualTo(asList("Arya", 15L, false).toArray()); + assertThat(structArray[1].getAttributes()).isEqualTo(asList("Khal Drogo", 35L, true).toArray()); + assertThat(structArray[2].getAttributes()).isEqualTo(asList("Ned Stark", 45L, true).toArray()); + assertThat(structArray[3].getAttributes()).isEqualTo(asList("Jon Snow", 25L, true).toArray()); + } + + @Test + public void getSlicedArray() throws SQLException { + Struct[] structArray = (Struct[]) array.getArray(2, 2); + + assertThat(structArray.length).isEqualTo(2); + assertThat(structArray[0].getAttributes()).isEqualTo(asList("Khal Drogo", 35L, true).toArray()); + assertThat(structArray[1].getAttributes()).isEqualTo(asList("Ned Stark", 45L, true).toArray()); + } + + @Test + public void getSlicedArrayWhenCountIsGreaterThanOriginalArrayLength() { + IllegalArgumentException illegalArgumentException = + assertThrows(IllegalArgumentException.class, () -> array.getArray(2, 10)); + assertThat(illegalArgumentException.getMessage()) + .isEqualTo("The array index is out of range: 12, number of elements: 4."); + } + + @Test + public void getResultSet() throws SQLException { + ResultSet resultSet = array.getResultSet(); + Tuple, ArrayList> indexAndValues = + nestedResultSetToColumnLists(resultSet); + + ArrayList indexList = indexAndValues.x(); + ArrayList structs = indexAndValues.y(); + + assertThat(indexList.toArray()).isEqualTo(new Object[] {1, 2, 3, 4}); + assertThat(structs.get(0).getAttributes()).isEqualTo(asList("Arya", 15L, false).toArray()); + assertThat(structs.get(1).getAttributes()).isEqualTo(asList("Khal Drogo", 35L, true).toArray()); + assertThat(structs.get(2).getAttributes()).isEqualTo(asList("Ned Stark", 45L, true).toArray()); + assertThat(structs.get(3).getAttributes()).isEqualTo(asList("Jon Snow", 25L, true).toArray()); + } + + @Test + public void getSlicedResultSet() throws SQLException { + ResultSet resultSet = array.getResultSet(2, 2); + Tuple, ArrayList> indexAndValues = + nestedResultSetToColumnLists(resultSet); + + ArrayList indexList = indexAndValues.x(); + ArrayList structs = indexAndValues.y(); + + assertThat(indexList.toArray()).isEqualTo(new Object[] {2, 3}); + assertThat(structs.get(0).getAttributes()).isEqualTo(asList("Khal Drogo", 35L, true).toArray()); + assertThat(structs.get(1).getAttributes()).isEqualTo(asList("Ned Stark", 45L, true).toArray()); + } + + @Test + public void getResultSetWhenCountIsGreaterThanOriginalArrayLength() { + IllegalArgumentException illegalArgumentException = + assertThrows(IllegalArgumentException.class, () -> array.getResultSet(2, 10)); + assertThat(illegalArgumentException.getMessage()) + .isEqualTo("The array index is out of range: 12, number of elements: 4."); + } + + @Test + public void getBaseTypeName() throws SQLException { + assertThat(array.getBaseTypeName()).isEqualTo(StandardSQLTypeName.STRUCT.name()); + } + + @Test + public void getBaseType() throws SQLException { + assertThat(array.getBaseType()).isEqualTo(Types.STRUCT); + } + + @Test + public void free() throws SQLException { + this.array.free(); + + ensureArrayIsInvalid(() -> array.getArray()); + ensureArrayIsInvalid(() -> array.getArray(1, 2)); + ensureArrayIsInvalid(() -> array.getBaseTypeName()); + ensureArrayIsInvalid(() -> array.getBaseType()); + } + + @Test + public void getArrayWithCustomTypeMappingsIsNotSupported() { + Exception exception1 = + assertThrows(SQLFeatureNotSupportedException.class, () -> array.getArray(emptyMap())); + Exception exception2 = + assertThrows(SQLFeatureNotSupportedException.class, () -> array.getArray(1, 2, emptyMap())); + assertThat(exception1.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + assertThat(exception2.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + @Test + public void getResultSetWithCustomTypeMappingsIsNotSupported() { + Exception exception1 = + assertThrows(SQLFeatureNotSupportedException.class, () -> array.getResultSet(emptyMap())); + Exception exception2 = + assertThrows( + SQLFeatureNotSupportedException.class, () -> array.getResultSet(1, 2, emptyMap())); + assertThat(exception1.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + assertThat(exception2.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + private void ensureArrayIsInvalid(ThrowingRunnable block) { + Exception exception = assertThrows(IllegalStateException.class, block); + assertThat(exception.getMessage()).isEqualTo(INVALID_ARRAY); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSetTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSetTest.java new file mode 100644 index 000000000000..efde49309d7e --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSetTest.java @@ -0,0 +1,358 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.utils.ArrowUtilities.serializeSchema; +import static com.google.cloud.bigquery.jdbc.utils.ArrowUtilities.serializeVectorSchemaRoot; +import static com.google.common.truth.Truth.assertThat; +import static org.apache.arrow.vector.types.Types.MinorType.INT; +import static org.apache.arrow.vector.types.Types.MinorType.VARCHAR; +import static org.mockito.Mockito.mock; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Field.Mode; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.storage.v1.ArrowRecordBatch; +import com.google.cloud.bigquery.storage.v1.ArrowSchema; +import com.google.common.collect.ImmutableList; +import java.io.IOException; +import java.sql.Array; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Struct; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingDeque; +import org.apache.arrow.memory.RootAllocator; +import org.apache.arrow.vector.BitVector; +import org.apache.arrow.vector.DateMilliVector; +import org.apache.arrow.vector.FieldVector; +import org.apache.arrow.vector.Float8Vector; +import org.apache.arrow.vector.IntVector; +import org.apache.arrow.vector.TimeMilliVector; +import org.apache.arrow.vector.TimeStampMicroVector; +import org.apache.arrow.vector.VarBinaryVector; +import org.apache.arrow.vector.VarCharVector; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.complex.ListVector; +import org.apache.arrow.vector.complex.StructVector; +import org.apache.arrow.vector.complex.impl.UnionListWriter; +import org.apache.arrow.vector.types.pojo.FieldType; +import org.apache.arrow.vector.util.JsonStringArrayList; +import org.apache.arrow.vector.util.Text; +import org.junit.Before; +import org.junit.Test; + +public class BigQueryArrowResultSetTest { + + private static final FieldList fieldList = + FieldList.of( + Field.of("boolField", StandardSQLTypeName.BOOL), + Field.of("int64Filed", StandardSQLTypeName.INT64), + Field.of("float64Field", StandardSQLTypeName.FLOAT64), + Field.of("stringField", StandardSQLTypeName.STRING), + Field.of("timeStampField", StandardSQLTypeName.TIMESTAMP), + Field.of("bytesField", StandardSQLTypeName.BYTES), + Field.newBuilder("intArrayField", StandardSQLTypeName.INT64) + .setMode(Field.Mode.REPEATED) + .build(), + Field.of( + "structField", + StandardSQLTypeName.STRUCT, + Field.of("name", StandardSQLTypeName.STRING), + Field.of("age", StandardSQLTypeName.INT64)), + Field.of("numericField", StandardSQLTypeName.BIGNUMERIC), + Field.of("timeField", StandardSQLTypeName.TIME), + Field.of("dateField", StandardSQLTypeName.DATE)); + + private BigQueryArrowBatchWrapper arrowBatchWrapper; + private BigQueryArrowBatchWrapper arrowBatchWrapperLast; + + private BigQueryStatement statement; + + private BlockingQueue buffer; + private BlockingQueue bufferWithTwoRows; + private static final Schema QUERY_SCHEMA = Schema.of(fieldList); + + private VectorSchemaRoot vectorSchemaRoot; + private BigQueryArrowResultSet bigQueryArrowResultSet; + private BigQueryArrowResultSet bigQueryArrowResultSetNested; + + private VectorSchemaRoot getTestVectorSchemaRoot() { + RootAllocator allocator = new RootAllocator(); + BitVector boolField = + new BitVector("boolField", allocator); // Mapped with StandardSQLTypeName.BOOL + boolField.allocateNew(2); + boolField.set(0, 0); + boolField.setValueCount(1); + IntVector int64Filed = + new IntVector("int64Filed", allocator); // Mapped with StandardSQLTypeName.INT64 + int64Filed.allocateNew(2); + int64Filed.set(0, 1); + int64Filed.setValueCount(1); + Float8Vector float64Field = + new Float8Vector("float64Field", allocator); // Mapped with StandardSQLTypeName.FLOAT64 + float64Field.allocateNew(2); + float64Field.set(0, 1.1f); + float64Field.setValueCount(1); + VarCharVector stringField = + new VarCharVector("stringField", allocator); // Mapped with StandardSQLTypeName.STRING + stringField.allocateNew(2); + stringField.set(0, new Text("text1")); + stringField.setValueCount(1); + TimeStampMicroVector timeStampField = + new TimeStampMicroVector( + "timeStampField", allocator); // Mapped with StandardSQLTypeName.TIMESTAMP + timeStampField.allocateNew(2); + timeStampField.set(0, 10000L); + timeStampField.setValueCount(1); + VarBinaryVector bytesField = + new VarBinaryVector("bytesField", allocator); // Mapped with StandardSQLTypeName.BYTES + bytesField.allocateNew(2); + bytesField.set(0, "text1".getBytes()); + bytesField.setValueCount(1); + + ListVector listVector = ListVector.empty("intArrayField", allocator); + UnionListWriter listWriter = listVector.getWriter(); + listWriter.setPosition(0); + listWriter.startList(); + listWriter.writeBigInt(10L); + listWriter.writeBigInt(20L); + listWriter.setValueCount(2); + listWriter.endList(); + listVector.setValueCount(1); + + StructVector structVector = StructVector.empty("structField", allocator); + VarCharVector nameVector = + structVector.addOrGet( + "name", FieldType.notNullable(VARCHAR.getType()), VarCharVector.class); + IntVector ageVector = + structVector.addOrGet("age", FieldType.notNullable(INT.getType()), IntVector.class); + structVector.allocateNew(); + + nameVector.set(0, new Text("Jon Doe")); + nameVector.setValueCount(1); + + ageVector.set(0, 29); + ageVector.setValueCount(1); + + structVector.setValueCount(1); + structVector.setIndexDefined(0); + + IntVector numericField = + new IntVector("numericField", allocator); // Mapped with StandardSQLTypeName.BIGNUMERIC + numericField.allocateNew(1000); + numericField.set(0, 1); + numericField.setValueCount(1); + TimeMilliVector timeField = + new TimeMilliVector("timeField", allocator); // Mapped with StandardSQLTypeName.TIME + timeField.allocateNew(2); + timeField.set(0, 1234); + timeField.setValueCount(1); + DateMilliVector dateField = + new DateMilliVector("dateField", allocator); // Mapped with StandardSQLTypeName.DATE + dateField.allocateNew(2); + dateField.set(0, 5000); + dateField.setValueCount(1); + + List fieldVectors = + ImmutableList.of( + boolField, + int64Filed, + float64Field, + stringField, + timeStampField, + bytesField, + listVector, + structVector, + numericField, + timeField, + dateField); + return new VectorSchemaRoot(fieldVectors); + } + + private JsonStringArrayList getJsonStringArrayList() { + JsonStringArrayList jsonStringArrayList = new JsonStringArrayList<>(); + jsonStringArrayList.addAll(Arrays.asList(10L, 20L)); + return jsonStringArrayList; + } + + @Before + public void setUp() throws SQLException, IOException { + buffer = new LinkedBlockingDeque<>(); + bufferWithTwoRows = new LinkedBlockingDeque<>(); + vectorSchemaRoot = getTestVectorSchemaRoot(); + ArrowRecordBatch batch = + ArrowRecordBatch.newBuilder() + .setSerializedRecordBatch(serializeVectorSchemaRoot(vectorSchemaRoot)) + .build(); + arrowBatchWrapper = BigQueryArrowBatchWrapper.of(batch); + arrowBatchWrapperLast = BigQueryArrowBatchWrapper.of(null, true); // last flag + buffer.add(arrowBatchWrapper); + buffer.add(arrowBatchWrapperLast); + bufferWithTwoRows.add(arrowBatchWrapper); + bufferWithTwoRows.add(arrowBatchWrapperLast); + + statement = mock(BigQueryStatement.class); + ArrowSchema arrowSchema = + ArrowSchema.newBuilder() + .setSerializedSchema(serializeSchema(vectorSchemaRoot.getSchema())) + .build(); + Thread workerThread = new Thread(); + bigQueryArrowResultSet = + BigQueryArrowResultSet.of( + QUERY_SCHEMA, arrowSchema, 1, statement, buffer, workerThread, null); + + // nested result set data setup + JsonStringArrayList jsonStringArrayList = getJsonStringArrayList(); + Schema arraySchema = + Schema.of( + Field.newBuilder("integerArray", StandardSQLTypeName.INT64) + .setMode(Mode.REPEATED) + .build()); + bigQueryArrowResultSetNested = + BigQueryArrowResultSet.getNestedResultSet( + arraySchema, + BigQueryArrowBatchWrapper.getNestedFieldValueListWrapper(jsonStringArrayList), + 0, + jsonStringArrayList.size()); + } + + @Test + public void testVectorSchemaRoot() { + assertThat(vectorSchemaRoot).isNotNull(); + assertThat(vectorSchemaRoot.getRowCount()).isEqualTo(1); + } + + @Test + public void testBufferSize() { + assertThat(buffer).isNotNull(); + assertThat(buffer.size()).isEqualTo(2); + } + + @Test + public void testRowCount() throws SQLException, IOException { + ArrowSchema arrowSchema = + ArrowSchema.newBuilder() + .setSerializedSchema(serializeSchema(vectorSchemaRoot.getSchema())) + .build(); + Thread workerThread = new Thread(); + // ResultSet with 1 row buffer and 1 total rows. + BigQueryArrowResultSet bigQueryArrowResultSet2 = + BigQueryArrowResultSet.of( + QUERY_SCHEMA, arrowSchema, 1, statement, buffer, workerThread, null); + + assertThat(resultSetRowCount(bigQueryArrowResultSet2)).isEqualTo(1); + // ResultSet with 2 rows buffer and 1 total rows. + bigQueryArrowResultSet2 = + BigQueryArrowResultSet.of( + QUERY_SCHEMA, arrowSchema, 1, statement, bufferWithTwoRows, workerThread, null); + + assertThat(resultSetRowCount(bigQueryArrowResultSet2)).isEqualTo(1); + } + + @Test + // This method tests iteration and Resultset's type getters + public void testIteration() throws SQLException { + int cnt = 0; + assertThat(bigQueryArrowResultSet.isBeforeFirst()).isTrue(); + while (bigQueryArrowResultSet.next()) { + cnt++; + assertThat(bigQueryArrowResultSet.isLast()).isTrue(); // we have one test row + assertThat(bigQueryArrowResultSet.isFirst()).isTrue(); // we have one test row + + assertThat(bigQueryArrowResultSet.getString(4)).isEqualTo("text1"); + + // array + assertThat(bigQueryArrowResultSet.getArray("intArrayField").getArray()) + .isEqualTo(new Object[] {10L, 20L}); + assertThat(bigQueryArrowResultSet.getArray(7).getArray()).isEqualTo(new Object[] {10L, 20L}); + assertThat(((Array) bigQueryArrowResultSet.getObject("intArrayField")).getArray()) + .isEqualTo(new Object[] {10L, 20L}); + assertThat(((Array) bigQueryArrowResultSet.getObject(7)).getArray()) + .isEqualTo(new Object[] {10L, 20L}); + + // struct + assertThat(((Struct) bigQueryArrowResultSet.getObject("structField")).getAttributes()) + .isEqualTo(new Object[] {"Jon Doe", 29L}); + assertThat(((Struct) bigQueryArrowResultSet.getObject(8)).getAttributes()) + .isEqualTo(new Object[] {"Jon Doe", 29L}); + } + assertThat(cnt).isEqualTo(1); + assertThat(bigQueryArrowResultSet.next()).isFalse(); + assertThat(bigQueryArrowResultSet.isAfterLast()).isTrue(); + } + + @Test + public void testIsClosed() { + assertThat(bigQueryArrowResultSet.isClosed()).isFalse(); + } + + @Test + public void testResultSetHoldability() throws SQLException { + assertThat(bigQueryArrowResultSet.getHoldability()) + .isEqualTo(bigQueryArrowResultSet.HOLD_CURSORS_OVER_COMMIT); + } + + @Test + public void testStatement() throws SQLException { + assertThat(bigQueryArrowResultSet.getStatement()).isEqualTo(statement); + assertThat(bigQueryArrowResultSetNested.getStatement()).isNull(); + } + + @Test + public void testConcurrencyTypeColumn() throws SQLException { + assertThat(bigQueryArrowResultSet.getConcurrency()).isEqualTo(ResultSet.CONCUR_READ_ONLY); + assertThat(bigQueryArrowResultSet.getType()).isEqualTo(ResultSet.TYPE_FORWARD_ONLY); + assertThat(bigQueryArrowResultSet.findColumn("boolField")).isEqualTo(1); + } + + @Test + public void testIterationNested() throws SQLException { + int cnt = 0; + assertThat(bigQueryArrowResultSetNested.isBeforeFirst()).isTrue(); + while (bigQueryArrowResultSetNested.next()) { + cnt++; + if (cnt == 1) { + assertThat(bigQueryArrowResultSetNested.isFirst()).isTrue(); + + } else { // 2nd row is the last row + assertThat(bigQueryArrowResultSetNested.isLast()).isTrue(); + } + assertThat(bigQueryArrowResultSetNested.getInt(1)) + .isEqualTo(cnt); // the first column is index 1 + assertThat(bigQueryArrowResultSetNested.getInt(2)) + .isEqualTo(cnt * 10); // second column has values 10 and 20 + } + assertThat(cnt).isEqualTo(2); + assertThat(bigQueryArrowResultSetNested.next()).isFalse(); + assertThat(bigQueryArrowResultSetNested.isAfterLast()).isTrue(); + } + + private int resultSetRowCount(BigQueryArrowResultSet resultSet) throws SQLException { + int rowCount = 0; + while (resultSet.next()) { + rowCount++; + } + return rowCount; + } + + // TODO: Unit Test for iteration and getters +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStructTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStructTest.java new file mode 100644 index 000000000000..2c3bedcc4ce9 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStructTest.java @@ -0,0 +1,245 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.StandardSQLTypeName.BIGNUMERIC; +import static com.google.cloud.bigquery.StandardSQLTypeName.BOOL; +import static com.google.cloud.bigquery.StandardSQLTypeName.BYTES; +import static com.google.cloud.bigquery.StandardSQLTypeName.DATE; +import static com.google.cloud.bigquery.StandardSQLTypeName.DATETIME; +import static com.google.cloud.bigquery.StandardSQLTypeName.FLOAT64; +import static com.google.cloud.bigquery.StandardSQLTypeName.GEOGRAPHY; +import static com.google.cloud.bigquery.StandardSQLTypeName.INT64; +import static com.google.cloud.bigquery.StandardSQLTypeName.NUMERIC; +import static com.google.cloud.bigquery.StandardSQLTypeName.STRING; +import static com.google.cloud.bigquery.StandardSQLTypeName.TIME; +import static com.google.cloud.bigquery.StandardSQLTypeName.TIMESTAMP; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.arrowArraySchemaAndValue; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.arrowStructOf; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.toArrowStruct; +import static com.google.common.truth.Truth.assertThat; +import static java.lang.Boolean.FALSE; +import static java.lang.Boolean.TRUE; +import static java.time.Month.MARCH; +import static java.util.Arrays.asList; +import static java.util.Collections.emptyMap; +import static org.junit.Assert.assertThrows; + +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.jdbc.rules.TimeZoneRule; +import java.math.BigDecimal; +import java.sql.Array; +import java.sql.Date; +import java.sql.SQLException; +import java.sql.SQLFeatureNotSupportedException; +import java.sql.Struct; +import java.sql.Time; +import java.sql.Timestamp; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.apache.arrow.vector.util.JsonStringArrayList; +import org.apache.arrow.vector.util.JsonStringHashMap; +import org.apache.arrow.vector.util.Text; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; + +public class BigQueryArrowStructTest { + + @Rule public final TimeZoneRule timeZoneRule = new TimeZoneRule("UTC"); + + private Struct structWithPrimitiveValues; + + @Before + public void setUp() { + Tuple> schemaAndValues = + arrowStructOf( + Tuple.of(INT64, Long.valueOf("10")), + Tuple.of(BOOL, TRUE), + Tuple.of(FLOAT64, Double.valueOf("11.2")), + Tuple.of(NUMERIC, new BigDecimal("11.2657")), + Tuple.of(BIGNUMERIC, new BigDecimal("11.2657")), + Tuple.of(STRING, new Text("one")), + Tuple.of(TIMESTAMP, Long.valueOf("1680174859820227")), // 2023-03-30 16:44:19.82 + Tuple.of(DATE, 19446), // 2023-03-30 + Tuple.of(TIME, Long.valueOf("40459820227")), + Tuple.of(DATETIME, LocalDateTime.parse("2023-03-30T11:14:19.820227")), + Tuple.of(GEOGRAPHY, new Text("POINT(-122 47)")), + Tuple.of(BYTES, "one".getBytes())); + + structWithPrimitiveValues = new BigQueryArrowStruct(schemaAndValues.x(), schemaAndValues.y()); + } + + @Test + public void structOfPrimitives() throws SQLException { + assertThat(structWithPrimitiveValues.getAttributes()) + .isEqualTo( + asList( + 10L, + true, + 11.2, + new BigDecimal("11.2657"), + new BigDecimal("11.2657"), + "one", + Timestamp.valueOf(LocalDateTime.of(2023, MARCH, 30, 11, 14, 19, 820227000)), + Date.valueOf(LocalDate.of(2023, MARCH, 30)), + Time.valueOf(LocalTime.of(11, 14, 19, 820227)), + Timestamp.valueOf("2023-03-30 11:14:19.820227"), + "POINT(-122 47)", + "one".getBytes()) + .toArray()); + } + + @Test + public void structOfArrays() throws SQLException { + LocalDateTime aTimeStamp = LocalDateTime.of(2023, MARCH, 30, 11, 14, 19, 820227000); + LocalDate aDate = LocalDate.of(2023, MARCH, 30); + LocalTime aTime = LocalTime.of(11, 14, 19, 820227); + List>> schemaAndValues = + Arrays.asList( + arrowArraySchemaAndValue(INT64, 10L, 20L), + arrowArraySchemaAndValue(BOOL, Boolean.TRUE, FALSE), + arrowArraySchemaAndValue(FLOAT64, Double.valueOf("11.2"), Double.valueOf("33.4")), + arrowArraySchemaAndValue(NUMERIC, new BigDecimal("11.2657"), new BigDecimal("33.4657")), + arrowArraySchemaAndValue( + BIGNUMERIC, new BigDecimal("11.2657"), new BigDecimal("33.4657")), + arrowArraySchemaAndValue(STRING, new Text("one"), new Text("two")), + arrowArraySchemaAndValue( + TIMESTAMP, Long.valueOf("1680174859820227"), Long.valueOf("1680261259820227")), + arrowArraySchemaAndValue(DATE, 19446, 19447), + arrowArraySchemaAndValue( + TIME, Long.valueOf("40459820227"), Long.valueOf("40460820227")), + arrowArraySchemaAndValue( + DATETIME, + LocalDateTime.parse("2023-03-30T11:14:19.820227"), + LocalDateTime.parse("2023-03-30T11:15:19.820227")), + arrowArraySchemaAndValue( + GEOGRAPHY, new Text("POINT(-122 47)"), new Text("POINT(-122 48)")), + arrowArraySchemaAndValue( + BYTES, Stream.of("one", "two").map(String::getBytes).toArray(byte[][]::new))); + + List orderedSchemas = + schemaAndValues.stream().map(Tuple::x).collect(Collectors.toList()); + JsonStringHashMap jsonStringHashMap = toArrowStruct(schemaAndValues); + + Struct struct = new BigQueryArrowStruct(FieldList.of(orderedSchemas), jsonStringHashMap); + + Object[] attributes = struct.getAttributes(); + assertThat(((Array) attributes[0]).getArray()).isEqualTo(new Long[] {10L, 20L}); + assertThat(((Array) attributes[1]).getArray()).isEqualTo(new Boolean[] {true, false}); + assertThat(((Array) attributes[2]).getArray()).isEqualTo(new Double[] {11.2, 33.4}); + assertThat(((Array) attributes[3]).getArray()) + .isEqualTo(new BigDecimal[] {new BigDecimal("11.2657"), new BigDecimal("33.4657")}); + assertThat(((Array) attributes[4]).getArray()) + .isEqualTo(new BigDecimal[] {new BigDecimal("11.2657"), new BigDecimal("33.4657")}); + assertThat(((Array) attributes[5]).getArray()).isEqualTo(new String[] {"one", "two"}); + assertThat(((Array) attributes[6]).getArray()) + .isEqualTo( + new Timestamp[] { + Timestamp.valueOf(aTimeStamp), // 2023-03-30 16:44:19.82 + Timestamp.valueOf(aTimeStamp.plusDays(1)) + }); + assertThat(((Array) attributes[7]).getArray()) + .isEqualTo(new Date[] {Date.valueOf(aDate), Date.valueOf(aDate.plusDays(1))}); + assertThat(((Array) attributes[8]).getArray()) + .isEqualTo(new Time[] {Time.valueOf(aTime), Time.valueOf(aTime.plusSeconds(1))}); + assertThat(((Array) attributes[9]).getArray()) // DATETIME + .isEqualTo( + new Timestamp[] { + Timestamp.valueOf("2023-03-30 11:14:19.820227"), + Timestamp.valueOf("2023-03-30 11:15:19.820227") + }); + assertThat(((Array) attributes[10]).getArray()) + .isEqualTo(new String[] {"POINT(-122 47)", "POINT(-122 48)"}); + assertThat(((Array) attributes[11]).getArray()) + .isEqualTo(new byte[][] {"one".getBytes(), "two".getBytes()}); + } + + @Test + public void structOfStructs() throws SQLException { + FieldList profileSchema = + FieldList.of( + Field.of("name", LegacySQLTypeName.STRING), + Field.of("age", LegacySQLTypeName.INTEGER), + Field.of("adult", LegacySQLTypeName.BOOLEAN)); + FieldList addressSchema = + FieldList.of( + Field.of("state", LegacySQLTypeName.STRING), + Field.of("zip", LegacySQLTypeName.INTEGER)); + FieldList rootStructSchema = + FieldList.of( + Field.of("profile", LegacySQLTypeName.RECORD, profileSchema), + Field.of("address", LegacySQLTypeName.RECORD, addressSchema)); + + JsonStringHashMap profileValue = + new JsonStringHashMap() { + { + put("name", new Text("Arya")); + put("age", 15L); + put("adult", FALSE); + } + }; + JsonStringHashMap addressValue = + new JsonStringHashMap() { + { + put("state", new Text("Michigan")); + put("zip", 49086L); + } + }; + JsonStringHashMap rootStructValue = + new JsonStringHashMap() { + { + put("profile", profileValue); + put("address", addressValue); + } + }; + + Struct struct = new BigQueryArrowStruct(rootStructSchema, rootStructValue); + Object[] attributes = struct.getAttributes(); + Struct profileStruct = (Struct) attributes[0]; + Struct addressStruct = (Struct) attributes[1]; + + assertThat(profileStruct.getAttributes()).isEqualTo(asList("Arya", 15L, false).toArray()); + assertThat(addressStruct.getAttributes()).isEqualTo(asList("Michigan", 49086L).toArray()); + } + + @Test + public void getSQLTypeNameIsNotSupported() { + Exception exception = + assertThrows( + SQLFeatureNotSupportedException.class, structWithPrimitiveValues::getSQLTypeName); + assertThat(exception.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + @Test + public void getAttributesWithCustomTypeMappingsIsNotSupported() { + Exception exception = + assertThrows( + SQLFeatureNotSupportedException.class, + () -> structWithPrimitiveValues.getAttributes(emptyMap())); + assertThat(exception.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSetTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSetTest.java new file mode 100644 index 000000000000..90dad9935ab8 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSetTest.java @@ -0,0 +1,104 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertFalse; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.CALLS_REAL_METHODS; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import java.lang.reflect.Field; +import org.junit.Before; +import org.junit.Test; + +public class BigQueryBaseResultSetTest { + private BigQuery bigQuery; + private BigQueryBaseResultSet resultSet; + private Job job; + private QueryStatistics statistics; + + @Before + public void setUp() { + // Using mock() for QueryStatistics because Builder() seems to not be available + // from outside. + bigQuery = mock(BigQuery.class); + job = mock(Job.class); + doReturn(job).when(bigQuery).getJob(any(JobId.class)); + + statistics = mock(QueryStatistics.class); + doReturn(statistics).when(job).getStatistics(); + + resultSet = mock(BigQueryBaseResultSet.class, CALLS_REAL_METHODS); + try { + Field field = BigQueryBaseResultSet.class.getDeclaredField("bigQuery"); + field.setAccessible(true); + field.set(resultSet, bigQuery); + } catch (Exception e) { + assertFalse(true); + } + } + + @Test + public void testGetQueryId() { + resultSet.setQueryId("queryId"); + assertThat(resultSet.getQueryId()).isEqualTo("queryId"); + } + + @Test + public void testGetJobId() { + resultSet.setJobId(JobId.of("jobId")); + assertThat(resultSet.getJobId()).isEqualTo(JobId.of("jobId")); + } + + @Test + public void testGetQueryStatistics() { + resultSet.setJobId(JobId.of("jobId")); + assertThat(resultSet.getQueryStatistics()).isInstanceOf(QueryStatistics.class); + } + + @Test + public void testGetQueryStatisticsCaching() { + resultSet.setJobId(JobId.of("jobId")); + assertThat(resultSet.getQueryStatistics()).isInstanceOf(QueryStatistics.class); + // Change return value to null to ensure lazy init saved the state + doReturn(null).when(job).getStatistics(); + assertThat(resultSet.getQueryStatistics()).isInstanceOf(QueryStatistics.class); + } + + @Test + public void testGetQueryStatistics_no_client() { + resultSet = mock(BigQueryBaseResultSet.class, CALLS_REAL_METHODS); + assertThat(resultSet.getQueryStatistics()).isNull(); + } + + @Test + public void testGetQueryStatistics_no_job_id() { + assertThat(resultSet.getQueryStatistics()).isNull(); + } + + @Test + public void testGetQueryStatistics_no_job() { + doReturn(job).when(bigQuery).getJob(any(JobId.class)); + assertThat(resultSet.getQueryStatistics()).isNull(); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBigQueryTypeCoercerBuilderTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBigQueryTypeCoercerBuilderTest.java new file mode 100644 index 000000000000..4af1632456c0 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBigQueryTypeCoercerBuilderTest.java @@ -0,0 +1,43 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.jdbc.TestType.Text; +import org.junit.Test; + +public class BigQueryBigQueryTypeCoercerBuilderTest { + + @Test + public void shouldBeAbleToConvertCustomTypes() { + byte[] bytesArray = {72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33}; + Text text = new Text(bytesArray); + + BigQueryTypeCoercer bigQueryTypeCoercer = + new BigQueryTypeCoercerBuilder().registerTypeCoercion(new TextToStringCoercion()).build(); + + assertThat(bigQueryTypeCoercer.coerceTo(String.class, text)).isEqualTo("Hello World!"); + } + + private static class TextToStringCoercion implements BigQueryCoercion { + @Override + public String coerce(Text value) { + return new String(value.getBytes()); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatementTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatementTest.java new file mode 100644 index 000000000000..f9729bf21e88 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatementTest.java @@ -0,0 +1,1118 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery.jdbc; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; + +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.jdbc.BigQueryParameterHandler.BigQueryStatementParameterType; +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; +import java.math.BigDecimal; +import java.sql.*; +import java.util.Calendar; +import java.util.HashMap; +import java.util.Map; +import org.junit.Before; +import org.junit.Test; + +public class BigQueryCallableStatementTest { + + private BigQueryConnection bigQueryConnection; + private static final String GET_PARAM_KEY = "ParamKey"; + private static final String PARAM_KEY = GET_PARAM_KEY; + + @Before + public void setUp() throws IOException, SQLException { + bigQueryConnection = mock(BigQueryConnection.class); + } + + @Test + public void testCreateCallableStatement() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc"); + assertNotNull(statement); + + assertEquals("call testProc", statement.getCallableStatementSql()); + } + + @Test + public void testRegisterOutParamIndexVarchar() throws SQLException { + registerOutParamIndexHelper(1, Types.VARCHAR, String.class, StandardSQLTypeName.STRING, -1); + } + + @Test + public void testRegisterOutParamIndexNVarchar() throws SQLException { + registerOutParamIndexHelper(1, Types.NVARCHAR, String.class, StandardSQLTypeName.STRING, -1); + } + + @Test + public void testRegisterOutParamIndexBigInt() throws SQLException { + registerOutParamIndexHelper(1, Types.BIGINT, Long.class, StandardSQLTypeName.INT64, -1); + } + + @Test + public void testRegisterOutParamIndexInteger() throws SQLException { + registerOutParamIndexHelper(1, Types.INTEGER, Integer.class, StandardSQLTypeName.INT64, -1); + } + + @Test + public void testRegisterOutParamIndexBoolean() throws SQLException { + registerOutParamIndexHelper(1, Types.BOOLEAN, Boolean.class, StandardSQLTypeName.BOOL, -1); + } + + @Test + public void testRegisterOutParamIndexDouble() throws SQLException { + registerOutParamIndexHelper(1, Types.DOUBLE, Double.class, StandardSQLTypeName.FLOAT64, -1); + } + + @Test + public void testRegisterOutParamIndexFloat() throws SQLException { + registerOutParamIndexHelper(1, Types.FLOAT, Float.class, StandardSQLTypeName.FLOAT64, -1); + } + + @Test + public void testRegisterOutParamIndexNumeric() throws SQLException { + registerOutParamIndexHelper(1, Types.NUMERIC, BigDecimal.class, StandardSQLTypeName.NUMERIC, 2); + } + + @Test + public void testRegisterOutParamIndexTimestamp() throws SQLException { + registerOutParamIndexHelper( + 1, Types.TIMESTAMP, Timestamp.class, StandardSQLTypeName.TIMESTAMP, -1); + } + + @Test + public void testRegisterOutParamIndexDate() throws SQLException { + registerOutParamIndexHelper(1, Types.DATE, Date.class, StandardSQLTypeName.DATE, -1); + } + + @Test + public void testRegisterOutParamIndexTime() throws SQLException { + registerOutParamIndexHelper(1, Types.TIME, Time.class, StandardSQLTypeName.TIME, -1); + } + + @Test + public void testRegisterOutParamIndexOther() throws SQLException { + registerOutParamIndexHelper(1, Types.OTHER, String.class, StandardSQLTypeName.STRING, -1); + } + + @Test + public void testRegisterOutParamIndexBinary() throws SQLException { + registerOutParamIndexHelper(1, Types.BINARY, byte[].class, StandardSQLTypeName.BYTES, -1); + } + + @Test + public void testRegisterOutParamIndexVarBinary() throws SQLException { + registerOutParamIndexHelper(1, Types.VARBINARY, byte[].class, StandardSQLTypeName.BYTES, -1); + } + + @Test + public void testRegisterOutParamIndexStruct() throws SQLException { + registerOutParamIndexHelper(1, Types.STRUCT, Struct.class, StandardSQLTypeName.STRUCT, -1); + } + + @Test + public void testRegisterOutParamIndexArray() throws SQLException { + registerOutParamIndexHelper(1, Types.ARRAY, Array.class, StandardSQLTypeName.ARRAY, -1); + } + + @Test + public void testRegisterOutParamIndexBit() throws SQLException { + registerOutParamIndexHelper(1, Types.BIT, Boolean.class, StandardSQLTypeName.BOOL, -1); + } + + @Test + public void testRegisterOutParamNameVarchar() throws SQLException { + registerOutParamNameHelper( + "ParamKey", Types.VARCHAR, String.class, StandardSQLTypeName.STRING, -1); + } + + @Test + public void testRegisterOutParamNameNVarchar() throws SQLException { + registerOutParamNameHelper( + "ParamKey", Types.NVARCHAR, String.class, StandardSQLTypeName.STRING, -1); + } + + @Test + public void testRegisterOutParamNameBigInt() throws SQLException { + registerOutParamNameHelper("ParamKey", Types.BIGINT, Long.class, StandardSQLTypeName.INT64, -1); + } + + @Test + public void testRegisterOutParamNameInteger() throws SQLException { + registerOutParamNameHelper( + "ParamKey", Types.INTEGER, Integer.class, StandardSQLTypeName.INT64, -1); + } + + @Test + public void testRegisterOutParamNameBoolean() throws SQLException { + registerOutParamNameHelper( + "ParamKey", Types.BOOLEAN, Boolean.class, StandardSQLTypeName.BOOL, -1); + } + + @Test + public void testRegisterOutParamNameDouble() throws SQLException { + registerOutParamNameHelper( + "ParamKey", Types.DOUBLE, Double.class, StandardSQLTypeName.FLOAT64, -1); + } + + @Test + public void testRegisterOutParamNameFloat() throws SQLException { + registerOutParamNameHelper( + "ParamKey", Types.FLOAT, Float.class, StandardSQLTypeName.FLOAT64, -1); + } + + @Test + public void testRegisterOutParamNameNumeric() throws SQLException { + registerOutParamNameHelper( + "ParamKey", Types.NUMERIC, BigDecimal.class, StandardSQLTypeName.NUMERIC, 2); + } + + @Test + public void testRegisterOutParamNameTimestamp() throws SQLException { + registerOutParamNameHelper( + "ParamKey", Types.TIMESTAMP, Timestamp.class, StandardSQLTypeName.TIMESTAMP, -1); + } + + @Test + public void testRegisterOutParamNameDate() throws SQLException { + registerOutParamNameHelper("ParamKey", Types.DATE, Date.class, StandardSQLTypeName.DATE, -1); + } + + @Test + public void testRegisterOutParamNameTime() throws SQLException { + registerOutParamNameHelper("ParamKey", Types.TIME, Time.class, StandardSQLTypeName.TIME, -1); + } + + @Test + public void testRegisterOutParamNameOther() throws SQLException { + registerOutParamNameHelper( + "ParamKey", Types.OTHER, String.class, StandardSQLTypeName.STRING, -1); + } + + @Test + public void testRegisterOutParamNameBinary() throws SQLException { + registerOutParamNameHelper( + "ParamKey", Types.BINARY, byte[].class, StandardSQLTypeName.BYTES, -1); + } + + @Test + public void testRegisterOutParamNameVarBinary() throws SQLException { + registerOutParamNameHelper( + "ParamKey", Types.VARBINARY, byte[].class, StandardSQLTypeName.BYTES, -1); + } + + @Test + public void testRegisterOutParamNameStruct() throws SQLException { + registerOutParamIndexHelper(1, Types.STRUCT, Struct.class, StandardSQLTypeName.STRUCT, -1); + } + + @Test + public void testRegisterOutParamNameArray() throws SQLException { + registerOutParamNameHelper("ParamKey", Types.ARRAY, Array.class, StandardSQLTypeName.ARRAY, -1); + } + + @Test + public void testRegisterOutParamNameBit() throws SQLException { + registerOutParamNameHelper("ParamKey", Types.BIT, Boolean.class, StandardSQLTypeName.BOOL, -1); + } + + @Test + public void testRegisterOutParamIndexScaleFail() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + assertThrows( + IllegalArgumentException.class, () -> statement.registerOutParameter(1, Types.VARCHAR, 3)); + } + + @Test + public void testRegisterOutNameIndexScaleFail() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + assertThrows( + IllegalArgumentException.class, + () -> statement.registerOutParameter("ParamKey", Types.VARCHAR, 3)); + } + + @Test + public void testGetArrayParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Array expected = mock(Array.class); + + statement.getParameterHandler().setParameter(1, expected, Array.class); + Array actual = statement.getArray(1); + assertEquals(expected, actual); + } + + @Test + public void testGetArrayParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Array expected = mock(Array.class); + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, Array.class, BigQueryStatementParameterType.IN, 0); + Array actual = statement.getArray(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetBigDecimalParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + BigDecimal expected = mock(BigDecimal.class); + + statement.getParameterHandler().setParameter(1, expected, BigDecimal.class); + BigDecimal actual = statement.getBigDecimal(1); + assertEquals(expected, actual); + } + + @Test + public void testGetBigDecimalParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + BigDecimal expected = mock(BigDecimal.class); + + statement + .getParameterHandler() + .setParameter( + GET_PARAM_KEY, expected, BigDecimal.class, BigQueryStatementParameterType.IN, 0); + BigDecimal actual = statement.getBigDecimal(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetBooleanParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Boolean expected = true; + + statement.getParameterHandler().setParameter(1, expected, Boolean.class); + Boolean actual = statement.getBoolean(1); + assertEquals(expected, actual); + } + + @Test + public void testGetBooleanParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Boolean expected = true; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, Boolean.class, BigQueryStatementParameterType.IN, 0); + Boolean actual = statement.getBoolean(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetByteParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Byte expected = "hello".getBytes()[0]; + + statement.getParameterHandler().setParameter(1, expected, Byte.class); + Byte actual = statement.getByte(1); + assertEquals(expected, actual); + } + + @Test + public void testGetByteParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Byte expected = "hello".getBytes()[0]; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, Byte.class, BigQueryStatementParameterType.IN, 0); + Byte actual = statement.getByte(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetBytesParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + byte[] expected = "hello".getBytes(); + + statement.getParameterHandler().setParameter(1, expected, byte[].class); + byte[] actual = statement.getBytes(1); + assertEquals(expected, actual); + } + + @Test + public void testGetBytesParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + byte[] expected = "hello".getBytes(); + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, byte[].class, BigQueryStatementParameterType.IN, 0); + byte[] actual = statement.getBytes(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetCharacterStreamParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "hello"; + + statement.getParameterHandler().setParameter(1, expected, String.class); + Reader actual = statement.getCharacterStream(1); + assertNotNull(actual); + assertTrue(actual instanceof StringReader); + } + + @Test + public void testGetCharacterStreamParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "hello"; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, String.class, BigQueryStatementParameterType.IN, 0); + Reader actual = statement.getCharacterStream(GET_PARAM_KEY); + assertNotNull(actual); + assertTrue(actual instanceof StringReader); + } + + @Test + public void testGetDateParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Date expected = mock(Date.class); + + statement.getParameterHandler().setParameter(1, expected, Date.class); + Date actual = statement.getDate(1); + assertEquals(expected, actual); + } + + @Test + public void testGetDateParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Date expected = mock(Date.class); + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, Date.class, BigQueryStatementParameterType.IN, 0); + Date actual = statement.getDate(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetDateParamWithCalByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Calendar cal = Calendar.getInstance(); + Date expected = new Date(cal.getTimeInMillis()); + + statement.getParameterHandler().setParameter(1, expected, Date.class); + Date actual = statement.getDate(1, cal); + assertEquals(expected, actual); + } + + @Test + public void testGetDateParamWithCalByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Calendar cal = Calendar.getInstance(); + Date expected = new Date(cal.getTimeInMillis()); + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, Date.class, BigQueryStatementParameterType.IN, 0); + Date actual = statement.getDate(GET_PARAM_KEY, cal); + assertEquals(expected, actual); + } + + @Test + public void testGetDoubleParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Double expected = 10.123; + + statement.getParameterHandler().setParameter(1, expected, Double.class); + Double actual = statement.getDouble(1); + assertEquals(expected, actual); + } + + @Test + public void testGetDoubleParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Double expected = 10.123; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, Double.class, BigQueryStatementParameterType.IN, 0); + Double actual = statement.getDouble(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetFloatParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Float expected = 10.123F; + + statement.getParameterHandler().setParameter(1, expected, Float.class); + Float actual = statement.getFloat(1); + assertEquals(expected, actual); + } + + @Test + public void testGetFloatParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Float expected = 10.123F; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, Float.class, BigQueryStatementParameterType.IN, 0); + Float actual = statement.getFloat(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetIntegerParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Integer expected = 10; + + statement.getParameterHandler().setParameter(1, expected, Integer.class); + Integer actual = statement.getInt(1); + assertEquals(expected, actual); + } + + @Test + public void testGetIntegerParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Integer expected = 10; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, Integer.class, BigQueryStatementParameterType.IN, 0); + Integer actual = statement.getInt(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetLongParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Long expected = 10L; + + statement.getParameterHandler().setParameter(1, expected, Long.class); + Long actual = statement.getLong(1); + assertEquals(expected, actual); + } + + @Test + public void testGetLongParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Long expected = 10L; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, Long.class, BigQueryStatementParameterType.IN, 0); + Long actual = statement.getLong(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetNCharacterStreamParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "hello"; + + statement.getParameterHandler().setParameter(1, expected, String.class); + Reader actual = statement.getNCharacterStream(1); + assertNotNull(actual); + assertTrue(actual instanceof StringReader); + } + + @Test + public void testGetNCharacterStreamParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "hello"; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, String.class, BigQueryStatementParameterType.IN, 0); + Reader actual = statement.getNCharacterStream(GET_PARAM_KEY); + assertNotNull(actual); + assertTrue(actual instanceof StringReader); + } + + @Test + public void testGetNStringParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "hello"; + + statement.getParameterHandler().setParameter(1, expected, String.class); + String actual = statement.getNString(1); + assertEquals(expected, actual); + } + + @Test + public void testGetNStringByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "hello"; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, String.class, BigQueryStatementParameterType.IN, 0); + String actual = statement.getNString(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetObjectParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "hello"; + + statement.getParameterHandler().setParameter(1, expected, String.class); + Object actual = statement.getObject(1); + assertEquals(expected, actual.toString()); + } + + @Test + public void testGetObjectParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "hello"; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, String.class, BigQueryStatementParameterType.IN, 0); + Object actual = statement.getObject(GET_PARAM_KEY); + assertEquals(expected, actual.toString()); + } + + @Test + public void testGetObjectParamWithMapByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Map> map = new HashMap<>(); + map.putIfAbsent(StandardSQLTypeName.STRING.name(), String.class); + String expected = "hello"; + + statement.getParameterHandler().setParameter(1, expected, String.class); + Object actual = statement.getObject(1, map); + assertEquals(expected, actual.toString()); + } + + @Test + public void testGetObjectParamWithMapByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Map> map = new HashMap<>(); + map.putIfAbsent(StandardSQLTypeName.STRING.name(), String.class); + String expected = "hello"; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, String.class, BigQueryStatementParameterType.IN, 0); + Object actual = statement.getObject(GET_PARAM_KEY, map); + assertEquals(expected, actual.toString()); + } + + @Test + public void testGetObjectParamWithClassByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "hello"; + + statement.getParameterHandler().setParameter(1, expected, String.class); + Object actual = statement.getObject(1, String.class); + assertEquals(expected, actual.toString()); + } + + @Test + public void testGetObjectParamWithClassByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "hello"; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, String.class, BigQueryStatementParameterType.IN, 0); + Object actual = statement.getObject(GET_PARAM_KEY, String.class); + assertEquals(expected, actual.toString()); + } + + @Test + public void testGetStringParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "test"; + + statement.getParameterHandler().setParameter(1, expected, String.class); + String actual = statement.getString(1); + assertEquals(expected, actual); + } + + @Test + public void testGetStringParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "test"; + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, String.class, BigQueryStatementParameterType.IN, 0); + String actual = statement.getString(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetTimeParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Time expected = mock(Time.class); + + statement.getParameterHandler().setParameter(1, expected, Time.class); + Time actual = statement.getTime(1); + assertEquals(expected, actual); + } + + @Test + public void testGetTimeParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Time expected = mock(Time.class); + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, Time.class, BigQueryStatementParameterType.IN, 0); + Time actual = statement.getTime(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetTimeParamWithCalByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Calendar cal = Calendar.getInstance(); + Time expected = new Time(cal.getTimeInMillis()); + + statement.getParameterHandler().setParameter(1, expected, Time.class); + Time actual = statement.getTime(1, cal); + assertEquals(expected, actual); + } + + @Test + public void testGetTimeParamWithCalByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Calendar cal = Calendar.getInstance(); + Time expected = new Time(cal.getTimeInMillis()); + + statement + .getParameterHandler() + .setParameter(GET_PARAM_KEY, expected, Time.class, BigQueryStatementParameterType.IN, 0); + Time actual = statement.getTime(GET_PARAM_KEY, cal); + assertEquals(expected, actual); + } + + @Test + public void testGetTimestampParamByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Timestamp expected = mock(Timestamp.class); + + statement.getParameterHandler().setParameter(1, expected, Timestamp.class); + Timestamp actual = statement.getTimestamp(1); + assertEquals(expected, actual); + } + + @Test + public void testGetTimestampParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Timestamp expected = mock(Timestamp.class); + + statement + .getParameterHandler() + .setParameter( + GET_PARAM_KEY, expected, Timestamp.class, BigQueryStatementParameterType.IN, 0); + Timestamp actual = statement.getTimestamp(GET_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testGetTimestampParamWithCalByIndex() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Calendar cal = Calendar.getInstance(); + Timestamp expected = new Timestamp(cal.getTimeInMillis()); + + statement.getParameterHandler().setParameter(1, expected, Timestamp.class); + Timestamp actual = statement.getTimestamp(1, cal); + assertEquals(expected, actual); + } + + @Test + public void testGetTimestampParamWithCalByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Calendar cal = Calendar.getInstance(); + Timestamp expected = new Timestamp(cal.getTimeInMillis()); + + statement + .getParameterHandler() + .setParameter( + GET_PARAM_KEY, expected, Timestamp.class, BigQueryStatementParameterType.IN, 0); + Timestamp actual = statement.getTimestamp(GET_PARAM_KEY, cal); + assertEquals(expected, actual); + } + + @Test + public void testSetBigDecimalParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + BigDecimal expected = mock(BigDecimal.class); + + statement.setBigDecimal(PARAM_KEY, expected); + BigDecimal actual = statement.getBigDecimal(PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetBooleanParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Boolean expected = true; + + statement.setBoolean(PARAM_KEY, expected); + Boolean actual = statement.getBoolean(PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetByteParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Byte expected = "hello".getBytes()[0]; + + statement.setByte(PARAM_KEY, expected); + Byte actual = statement.getByte(PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetByteArrayParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + byte[] expected = "heelo".getBytes(); + + statement.setBytes(PARAM_KEY, expected); + byte[] actual = statement.getBytes(PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetDateParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Date expected = mock(Date.class); + statement.setDate(PARAM_KEY, expected); + Date actual = statement.getDate(PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetDateCalParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Date expectedDate = mock(Date.class); + Calendar expectedCal = mock(Calendar.class); + + doReturn(1L).when(expectedDate).getTime(); + doReturn(1L).when(expectedCal).getTime(); + doReturn(1L).when(expectedCal).getTimeInMillis(); + statement.setDate(PARAM_KEY, expectedDate, expectedCal); + Date actual = statement.getDate(PARAM_KEY); + assertEquals(new Date(1L), actual); + actual = statement.getDate(PARAM_KEY, expectedCal); + assertEquals(new Date(1L), actual); + } + + @Test + public void testSetDoubleParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Double expected = 123.123; + statement.setDouble(PARAM_KEY, expected); + Double actual = statement.getDouble(PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetFloatParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Float expected = 123.123F; + statement.setFloat(PARAM_KEY, expected); + Float actual = statement.getFloat(PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetIntParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Integer expected = 1; + statement.setInt(PARAM_KEY, expected); + Integer actual = statement.getInt(PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetLongParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Long expected = 1L; + statement.setLong(PARAM_KEY, expected); + Long actual = statement.getLong(PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetObjectParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Long expected = 1L; + statement.setObject(PARAM_KEY, expected); + Long actual = statement.getObject(PARAM_KEY, Long.class); + assertEquals(expected, actual); + } + + @Test + public void testSetObjectSqlTypeParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Long expected = 1L; + statement.setObject(PARAM_KEY, expected, java.sql.Types.BIGINT); + Long actual = statement.getObject(PARAM_KEY, Long.class); + assertEquals(expected, actual); + } + + @Test + public void testSetObjectSqlTypeScaleParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Long expected = 1L; + statement.setObject(PARAM_KEY, expected, java.sql.Types.BIGINT, 5); + Long actual = statement.getObject(PARAM_KEY, Long.class); + assertEquals(expected, actual); + int scale = statement.getParameterHandler().getParameterScale(PARAM_KEY); + assertEquals(5, scale); + } + + @Test + public void testSetStringParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + String expected = "hello"; + statement.setString(PARAM_KEY, expected); + String actual = statement.getString(PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetTimeParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Time expected = mock(Time.class); + statement.setTime(PARAM_KEY, expected); + Time actual = statement.getTime(PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetTimeCalParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Time expectedTime = mock(Time.class); + Calendar expectedCal = mock(Calendar.class); + + doReturn(1L).when(expectedTime).getTime(); + doReturn(1L).when(expectedCal).getTime(); + doReturn(1L).when(expectedCal).getTimeInMillis(); + statement.setTime(PARAM_KEY, expectedTime, expectedCal); + Time actual = statement.getTime(PARAM_KEY); + assertEquals(new Time(1L), actual); + actual = statement.getTime(PARAM_KEY, expectedCal); + assertEquals(new Time(1L), actual); + } + + @Test + public void testSetTimestampParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Timestamp expected = mock(Timestamp.class); + statement.setTimestamp(PARAM_KEY, expected); + Timestamp actual = statement.getTimestamp(PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetTimestampCalParamByName() throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + Timestamp expectedTimestamp = mock(Timestamp.class); + Calendar expectedCal = mock(Calendar.class); + + doReturn(1L).when(expectedTimestamp).getTime(); + doReturn(1L).when(expectedCal).getTime(); + doReturn(1L).when(expectedCal).getTimeInMillis(); + statement.setTimestamp(PARAM_KEY, expectedTimestamp, expectedCal); + Timestamp actual = statement.getTimestamp(PARAM_KEY); + assertEquals(new Timestamp(1L), actual); + actual = statement.getTimestamp(PARAM_KEY, expectedCal); + assertEquals(new Timestamp(1L), actual); + } + + ////////// Private helper methods //////////////////////// + private void registerOutParamIndexHelper( + int paramIndex, int javaSqlType, Class javaType, StandardSQLTypeName sqlType, int scale) + throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + + if (scale >= 0) { + statement.registerOutParameter(paramIndex, javaSqlType, scale); + } else { + statement.registerOutParameter(paramIndex, javaSqlType); + } + BigQueryParameterHandler paramHandler = statement.getParameterHandler(); + assertNotNull(paramHandler); + + assertNull(paramHandler.getParameter(paramIndex)); + assertEquals(BigQueryStatementParameterType.OUT, paramHandler.getParameterType(paramIndex)); + assertEquals(scale, paramHandler.getParameterScale(paramIndex)); + assertEquals(javaType, paramHandler.getType(paramIndex)); + assertEquals(sqlType, paramHandler.getSqlType(paramIndex)); + } + + private void registerOutParamNameHelper( + String paramName, int javaSqlType, Class javaType, StandardSQLTypeName sqlType, int scale) + throws SQLException { + BigQueryCallableStatement statement = + new BigQueryCallableStatement(bigQueryConnection, "call testProc('?')"); + assertNotNull(statement); + + if (scale >= 0) { + statement.registerOutParameter(paramName, javaSqlType, scale); + } else { + statement.registerOutParameter(paramName, javaSqlType); + } + BigQueryParameterHandler paramHandler = statement.getParameterHandler(); + assertNotNull(paramHandler); + + assertNull(paramHandler.getParameter(paramName)); + assertEquals(BigQueryStatementParameterType.OUT, paramHandler.getParameterType(paramName)); + assertEquals(scale, paramHandler.getParameterScale(paramName)); + assertEquals(javaType, paramHandler.getType(paramName)); + assertEquals(sqlType, paramHandler.getSqlType(paramName)); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionTest.java new file mode 100644 index 000000000000..22f98af07e63 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionTest.java @@ -0,0 +1,343 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static org.junit.Assert.*; + +import com.google.api.gax.rpc.HeaderProvider; +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import com.google.cloud.bigquery.storage.v1.BigQueryWriteClient; +import java.io.IOException; +import java.io.InputStream; +import java.sql.SQLException; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Properties; +import org.junit.Before; +import org.junit.Test; + +public class BigQueryConnectionTest { + + private static final String DEFAULT_VERSION = "0.0.0"; + private static final String DEFAULT_JDBC_TOKEN_VALUE = "Google-BigQuery-JDBC-Driver"; + private String expectedVersion; + + @Before + public void setUp() throws IOException { + // Read the expected version from the dependencies.properties file once. + expectedVersion = getExpectedVersion(); + } + + private String getExpectedVersion() { + Properties props = new Properties(); + try (InputStream in = + getClass().getResourceAsStream("/com/google/cloud/bigquery/jdbc/dependencies.properties")) { + if (in != null) { + props.load(in); + String version = props.getProperty("version.jdbc"); + if (version != null) { + return version; + } + } + } catch (IOException e) { + System.err.println("Error reading dependencies.properties: " + e.getMessage()); + } + return DEFAULT_VERSION; + } + + @Test + public void testGetLibraryVersion() throws IOException, SQLException { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;"; + try (BigQueryConnection connection = new BigQueryConnection(url)) { + String result = connection.getLibraryVersion(BigQueryConnection.class); + assertEquals(expectedVersion, result); + } + } + + @Test + public void testHeaderProvider() throws IOException, SQLException { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;"; + try (BigQueryConnection connection = new BigQueryConnection(url)) { + HeaderProvider headerProvider = connection.createHeaderProvider(); + String agent = headerProvider.getHeaders().get("user-agent"); + assertTrue(agent.startsWith(DEFAULT_JDBC_TOKEN_VALUE + "/" + expectedVersion)); + assertFalse(agent.contains("(GPN:")); + } + } + + @Test + public void testHeaderProviderWithPartnerToken() throws IOException, SQLException { + String partnerTokenString = "(GPN:MyPartner; staging)"; + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;PartnerToken=" + + partnerTokenString; + try (BigQueryConnection connection = new BigQueryConnection(url)) { + HeaderProvider headerProvider = connection.createHeaderProvider(); + String agent = headerProvider.getHeaders().get("user-agent"); + assertTrue( + agent.startsWith( + DEFAULT_JDBC_TOKEN_VALUE + "/" + expectedVersion + " " + partnerTokenString)); + assertTrue(agent.contains("(GPN:")); + assertTrue(agent.contains("MyPartner;")); + assertTrue(agent.contains("staging)")); + } + } + + @Test + public void testHeaderProviderWithEmptyPartnerToken() throws IOException, SQLException { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;PartnerToken="; + try (BigQueryConnection connection = new BigQueryConnection(url)) { + HeaderProvider headerProvider = connection.createHeaderProvider(); + String agent = headerProvider.getHeaders().get("user-agent"); + assertTrue(agent.startsWith(DEFAULT_JDBC_TOKEN_VALUE + "/" + expectedVersion)); + assertFalse(agent.contains("(GPN:")); + } + } + + @Test + public void testHeaderProviderWithPartnerTokenNoEnv() throws IOException, SQLException { + String partnerTokenString = "(GPN:MyPartner)"; + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;PartnerToken=" + + partnerTokenString; + try (BigQueryConnection connection = new BigQueryConnection(url)) { + HeaderProvider headerProvider = connection.createHeaderProvider(); + String agent = headerProvider.getHeaders().get("user-agent"); + assertTrue( + agent.startsWith( + DEFAULT_JDBC_TOKEN_VALUE + "/" + expectedVersion + " " + partnerTokenString)); + assertTrue(agent.contains("GPN:")); + assertTrue(agent.contains("MyPartner")); + } + } + + @Test + public void testHeaderProviderWithInvalidPartner() throws IOException, SQLException { + String partnerTokenString = "(MyPartner; staging)"; + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;PartnerToken=" + + partnerTokenString; + try (BigQueryConnection connection = new BigQueryConnection(url)) { + HeaderProvider headerProvider = connection.createHeaderProvider(); + String agent = headerProvider.getHeaders().get("user-agent"); + assertTrue(agent.startsWith(DEFAULT_JDBC_TOKEN_VALUE + "/" + expectedVersion)); + assertFalse(agent.contains("(MyPartner;")); + assertFalse(agent.contains("(GPN:")); + } + } + + @Test + public void testWriteAPIConnectionProperties() throws SQLException { + // Test without connection properties. Defaults to default values. + String connectionUriDefault = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;"; + try (BigQueryConnection connectionDefault = new BigQueryConnection(connectionUriDefault)) { + + assertFalse(connectionDefault.enableWriteAPI); + assertEquals(3, connectionDefault.writeAPIActivationRowCount); + assertEquals(1000, connectionDefault.writeAPIAppendRowCount); + } catch (IOException | SQLException e) { + throw new BigQueryJdbcException(e); + } + + // Test with connection properties + String connectionUri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;" + + "EnableWriteAPI=1;SWA_ActivationRowCount=6;SWA_AppendRowCount=500"; + try (BigQueryConnection connection = new BigQueryConnection(connectionUri)) { + assertTrue(connection.enableWriteAPI); + assertEquals(6, connection.writeAPIActivationRowCount); + assertEquals(500, connection.writeAPIAppendRowCount); + } catch (IOException | SQLException e) { + throw new BigQueryJdbcException(e); + } + } + + @Test + public void testGetWriteClient() throws SQLException { + // Test without connection properties. Defaults to default values. + String connectionUriDefault = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;"; + try (BigQueryConnection connectionDefault = new BigQueryConnection(connectionUriDefault)) { + assertNull(connectionDefault.bigQueryWriteClient); + // Lazy initialization + BigQueryWriteClient writeClient = connectionDefault.getBigQueryWriteClient(); + assertNotNull(writeClient); + assertFalse(writeClient.isShutdown()); + } catch (SQLException | IOException e) { + throw new BigQueryJdbcException(e); + } + } + + @Test + public void testAdditionalProjects() throws IOException, BigQueryJdbcException { + String url1 = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;" + + "AdditionalProjects=projA,projB"; + try (BigQueryConnection conn1 = new BigQueryConnection(url1)) { + List additionalProjects1 = conn1.getAdditionalProjects(); + assertNotNull(additionalProjects1); + assertEquals(Arrays.asList("projA", "projB"), additionalProjects1); + } catch (SQLException | IOException e) { + throw new BigQueryJdbcException(e); + } + String url2 = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;" + + "AdditionalProjects=projX"; + try (BigQueryConnection conn2 = new BigQueryConnection(url2)) { + List additionalProjects2 = conn2.getAdditionalProjects(); + assertNotNull(additionalProjects2); + assertEquals(Collections.singletonList("projX"), additionalProjects2); + } catch (SQLException | IOException e) { + throw new BigQueryJdbcException(e); + } + } + + @Test + public void testFilterTablesOnDefaultDatasetProperty() throws SQLException, IOException { + // Test default value + String urlDefault = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;"; + try (BigQueryConnection connectionDefault = new BigQueryConnection(urlDefault)) { + assertFalse( + "Default value for FilterTablesOnDefaultDataset should be false", + connectionDefault.isFilterTablesOnDefaultDataset()); + } catch (SQLException | IOException e) { + throw new BigQueryJdbcException(e); + } + + // Test explicitly setting to true + String urlTrue = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;" + + "FilterTablesOnDefaultDataset=1;"; + try (BigQueryConnection connectionTrue = new BigQueryConnection(urlTrue)) { + assertTrue( + "FilterTablesOnDefaultDataset should be true when set to 1", + connectionTrue.isFilterTablesOnDefaultDataset()); + } catch (SQLException | IOException e) { + throw new BigQueryJdbcException(e); + } + } + + @Test + public void testRequestGoogleDriveScopeProperty() throws IOException, SQLException { + // Test enabled + String urlEnabled = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;" + + "RequestGoogleDriveScope=1;"; + try (BigQueryConnection connectionEnabled = new BigQueryConnection(urlEnabled)) { + assertEquals( + "RequestGoogleDriveScope should be enabled when set to 1", + 1, + connectionEnabled.isRequestGoogleDriveScope()); + } catch (SQLException | IOException e) { + throw new BigQueryJdbcException(e); + } + + // Test disabled + String urlDisabled = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;" + + "RequestGoogleDriveScope=0;"; + try (BigQueryConnection connectionDisabled = new BigQueryConnection(urlDisabled)) { + assertEquals( + "RequestGoogleDriveScope should be disabled when set to 0", + 0, + connectionDisabled.isRequestGoogleDriveScope()); + } catch (SQLException | IOException e) { + throw new BigQueryJdbcException(e); + } + } + + @Test + public void testMetaDataFetchThreadCountProperty() throws SQLException, IOException { + // Test Case 1: Should use the default value when the property is not specified. + String urlDefault = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;"; + try (BigQueryConnection connectionDefault = new BigQueryConnection(urlDefault)) { + assertEquals( + "Should use the default value when the property is not set", + BigQueryJdbcUrlUtility.DEFAULT_METADATA_FETCH_THREAD_COUNT_VALUE, + connectionDefault.getMetadataFetchThreadCount()); + } + + // Test Case 2: Should use the custom value when a valid integer is provided. + String urlCustom = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;" + + "MetaDataFetchThreadCount=16;"; + try (BigQueryConnection connectionCustom = new BigQueryConnection(urlCustom)) { + assertEquals( + "Should use the custom value when a valid integer is provided", + 16, + connectionCustom.getMetadataFetchThreadCount()); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTaskTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTaskTest.java new file mode 100644 index 000000000000..b99ff4bec529 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTaskTest.java @@ -0,0 +1,63 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; + +import com.google.cloud.bigquery.jdbc.BigQueryResultSetFinalizers.ArrowResultSetFinalizer; +import java.lang.ref.ReferenceQueue; +import java.util.ArrayList; +import java.util.List; +import org.junit.Before; +import org.junit.Test; + +public class BigQueryDaemonPollingTaskTest { + + static ReferenceQueue referenceQueueArrowRs; + static ReferenceQueue referenceQueueJsonRs; + static List arrowResultSetFinalizers; + static List jsonResultSetFinalizers; + + @Before + public void setUp() { + referenceQueueArrowRs = new ReferenceQueue<>(); + referenceQueueJsonRs = new ReferenceQueue<>(); + arrowResultSetFinalizers = new ArrayList<>(); + jsonResultSetFinalizers = new ArrayList<>(); + } + + @Test + public void testStartGcDaemonTask() { + + // start the Daemon first and then make sure it doesn't get started again + BigQueryDaemonPollingTask.startGcDaemonTask( + referenceQueueArrowRs, + referenceQueueJsonRs, + arrowResultSetFinalizers, + jsonResultSetFinalizers); // Daemon thread might have already started by the Junit at + // BigQueryStatementTest, hence we ignore the response here and + // check it on the line below + + assertThat( + BigQueryDaemonPollingTask.startGcDaemonTask( + referenceQueueArrowRs, + referenceQueueJsonRs, + arrowResultSetFinalizers, + jsonResultSetFinalizers)) + .isFalse(); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaDataTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaDataTest.java new file mode 100644 index 000000000000..536aae15bf97 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaDataTest.java @@ -0,0 +1,3209 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.*; + +import com.google.api.gax.paging.Page; +import com.google.cloud.bigquery.*; +import com.google.cloud.bigquery.BigQuery.RoutineListOption; +import java.io.IOException; +import java.io.InputStream; +import java.sql.DatabaseMetaData; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.Types; +import java.util.*; +import java.util.concurrent.Callable; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Future; +import java.util.regex.Pattern; +import org.junit.Before; +import org.junit.Test; + +public class BigQueryDatabaseMetaDataTest { + + private BigQueryConnection bigQueryConnection; + private BigQueryDatabaseMetaData dbMetadata; + private BigQuery bigqueryClient; + + @Before + public void setUp() throws SQLException { + bigQueryConnection = mock(BigQueryConnection.class); + bigqueryClient = mock(BigQuery.class); + Statement mockStatement = mock(Statement.class); + + when(bigQueryConnection.getConnectionUrl()).thenReturn("jdbc:bigquery://test-project"); + when(bigQueryConnection.getBigQuery()).thenReturn(bigqueryClient); + when(bigQueryConnection.createStatement()).thenReturn(mockStatement); + + dbMetadata = new BigQueryDatabaseMetaData(bigQueryConnection); + } + + private Table mockBigQueryTable( + String project, String dataset, String table, TableDefinition.Type type, String description) { + Table mockTable = mock(Table.class); + TableId mockTableId = TableId.of(project, dataset, table); + TableDefinition mockDefinition = mock(TableDefinition.class); + + when(mockTable.getTableId()).thenReturn(mockTableId); + when(mockTable.getDefinition()).thenReturn(mockDefinition); + when(mockDefinition.getType()).thenReturn(type); + when(mockTable.getDescription()).thenReturn(description); + + return mockTable; + } + + private StandardSQLDataType mockStandardSQLDataType(StandardSQLTypeName typeKind) { + StandardSQLDataType mockDataType = mock(StandardSQLDataType.class); + when(mockDataType.getTypeKind()).thenReturn(typeKind.name()); + return mockDataType; + } + + private RoutineArgument mockRoutineArgument(String name, StandardSQLTypeName type, String mode) { + RoutineArgument mockArg = mock(RoutineArgument.class); + when(mockArg.getName()).thenReturn(name); + StandardSQLDataType mockDataType = mockStandardSQLDataType(type); + when(mockArg.getDataType()).thenReturn(mockDataType); + when(mockArg.getMode()).thenReturn(mode); // "IN", "OUT", "INOUT", or null + return mockArg; + } + + private Routine mockBigQueryRoutineWithArgs( + String project, + String dataset, + String routineName, + String routineType, + String description, + List arguments) { + Routine mockRoutine = mock(Routine.class); + RoutineId mockRoutineId = RoutineId.of(project, dataset, routineName); + when(mockRoutine.getRoutineId()).thenReturn(mockRoutineId); + when(mockRoutine.getRoutineType()).thenReturn(routineType); + when(mockRoutine.getDescription()).thenReturn(description); + if (arguments != null) { + when(mockRoutine.getArguments()).thenReturn(arguments); + } else { + when(mockRoutine.getArguments()).thenReturn(Collections.emptyList()); + } + return mockRoutine; + } + + private StandardSQLTableType mockStandardSQLTableType(List columns) { + StandardSQLTableType mockTableType = mock(StandardSQLTableType.class); + when(mockTableType.getColumns()).thenReturn(columns); + return mockTableType; + } + + private StandardSQLField mockStandardSQLField(String name, StandardSQLTypeName type) { + StandardSQLField mockField = mock(StandardSQLField.class); + StandardSQLDataType mockedDataType = mockStandardSQLDataType(type); + when(mockField.getName()).thenReturn(name); + when(mockField.getDataType()).thenReturn(mockedDataType); + return mockField; + } + + @Test + public void testBigqueryDatabaseMetaDataGetters() throws SQLException { + BigQueryDatabaseMetaData dbMetadata = new BigQueryDatabaseMetaData(bigQueryConnection); + assertEquals("GoogleJDBCDriverForGoogleBigQuery", dbMetadata.getDriverName()); + assertEquals("Google BigQuery", dbMetadata.getDatabaseProductName()); + assertEquals("2.0", dbMetadata.getDatabaseProductVersion()); + assertEquals("Dataset", dbMetadata.getSchemaTerm()); + assertEquals("Procedure", dbMetadata.getProcedureTerm()); + assertEquals("Project", dbMetadata.getCatalogTerm()); + } + + @Test + public void testReadSqlFromFile() throws SQLException { + BigQueryDatabaseMetaData dbMetadata = new BigQueryDatabaseMetaData(bigQueryConnection); + + String primaryKeysQuery = + BigQueryDatabaseMetaData.readSqlFromFile("DatabaseMetaData_GetPrimaryKeys.sql"); + assertTrue(primaryKeysQuery.contains("pk$")); + + try { + when(bigQueryConnection.prepareStatement(primaryKeysQuery)).thenCallRealMethod(); + String sql = + dbMetadata.replaceSqlParameters( + primaryKeysQuery, "project_name", "dataset_name", "table_name"); + assertTrue(sql.contains("project_name.dataset_name.INFORMATION_SCHEMA.KEY_COLUMN_USAGE")); + } catch (SQLException e) { + throw new RuntimeException(e); + } + } + + @Test + public void testNeedsListing() { + assertTrue("Null pattern should require listing", dbMetadata.needsListing(null)); + assertTrue("Pattern with % should require listing", dbMetadata.needsListing("abc%def")); + assertTrue("Pattern with _ should require listing", dbMetadata.needsListing("abc_def")); + assertTrue("Pattern with both wildcards", dbMetadata.needsListing("a%c_d%f")); + assertFalse("Empty pattern should not require listing", dbMetadata.needsListing("")); + assertFalse("Pattern without wildcards", dbMetadata.needsListing("exactName")); + } + + @Test + public void testCompileSqlLikePattern() { + // Null input -> Null pattern + assertNull(dbMetadata.compileSqlLikePattern(null)); + + // Empty input -> Pattern matching nothing ($^) + Pattern emptyPattern = dbMetadata.compileSqlLikePattern(""); + assertNotNull(emptyPattern); + assertFalse(emptyPattern.matcher("").matches()); + assertFalse(emptyPattern.matcher("a").matches()); + assertEquals("(?!)", emptyPattern.pattern()); + + // Exact match + Pattern exactPattern = dbMetadata.compileSqlLikePattern("tableName"); + assertNotNull(exactPattern); + assertTrue(exactPattern.matcher("tableName").matches()); + assertTrue(exactPattern.matcher("TABLENAME").matches()); + assertFalse(exactPattern.matcher("tableNameX").matches()); + assertFalse(exactPattern.matcher("XtableName").matches()); + + // Percent wildcard (%) -> .* + Pattern percentPattern = dbMetadata.compileSqlLikePattern("table%"); + assertNotNull(percentPattern); + assertTrue(percentPattern.matcher("table").matches()); + assertTrue(percentPattern.matcher("tableName").matches()); + assertTrue(percentPattern.matcher("TABLE_123").matches()); + assertFalse(percentPattern.matcher("myTable").matches()); + + Pattern percentPattern2 = dbMetadata.compileSqlLikePattern("%Name"); + assertNotNull(percentPattern2); + assertTrue(percentPattern2.matcher("Name").matches()); + assertTrue(percentPattern2.matcher("tableName").matches()); + assertTrue(percentPattern2.matcher("VIEW_NAME").matches()); + assertFalse(percentPattern2.matcher("NameSuffix").matches()); + + Pattern percentPattern3 = dbMetadata.compileSqlLikePattern("ta%le"); + assertNotNull(percentPattern3); + assertTrue(percentPattern3.matcher("table").matches()); + assertTrue(percentPattern3.matcher("TALLE").matches()); + assertTrue(percentPattern3.matcher("tale").matches()); + assertFalse(percentPattern3.matcher("table123").matches()); + + // Underscore wildcard (_) -> . + Pattern underscorePattern = dbMetadata.compileSqlLikePattern("t_ble"); + assertNotNull(underscorePattern); + assertTrue(underscorePattern.matcher("table").matches()); + assertTrue(underscorePattern.matcher("tAble").matches()); + assertTrue(underscorePattern.matcher("tXble").matches()); + assertFalse(underscorePattern.matcher("tble").matches()); + assertFalse(underscorePattern.matcher("taable").matches()); + + // Mixed wildcards + Pattern mixedPattern = dbMetadata.compileSqlLikePattern("data_%_set%"); + assertNotNull(mixedPattern); + assertTrue(mixedPattern.matcher("data_1_set").matches()); + assertTrue(mixedPattern.matcher("data_foo_set_bar").matches()); + assertTrue(mixedPattern.matcher("DATA_X_SET").matches()); + assertFalse(mixedPattern.matcher("dataset").matches()); + assertFalse(mixedPattern.matcher("data_set").matches()); + + // Escaping regex metacharacters + Pattern dotPattern = dbMetadata.compileSqlLikePattern("version_1.0"); + assertNotNull(dotPattern); + assertTrue(dotPattern.matcher("version_1.0").matches()); + assertFalse(dotPattern.matcher("version_1X0").matches()); + + Pattern bracketPattern = dbMetadata.compileSqlLikePattern("array[0]"); + assertNotNull(bracketPattern); + assertTrue(bracketPattern.matcher("array[0]").matches()); + assertFalse(bracketPattern.matcher("array_0_").matches()); + } + + @Test + public void testMapBigQueryTypeToJdbc_ScalarTypes() { + // INT64 -> BIGINT + Field fieldInt64 = + Field.newBuilder("test_int", StandardSQLTypeName.INT64) + .setMode(Field.Mode.NULLABLE) + .build(); + BigQueryDatabaseMetaData.ColumnTypeInfo infoInt64 = + dbMetadata.mapBigQueryTypeToJdbc(fieldInt64); + assertEquals(Types.BIGINT, infoInt64.jdbcType); + assertEquals("BIGINT", infoInt64.typeName); + assertEquals(Integer.valueOf(19), infoInt64.columnSize); + assertEquals(Integer.valueOf(0), infoInt64.decimalDigits); + assertEquals(Integer.valueOf(10), infoInt64.numPrecRadix); + + // STRING -> NVARCHAR + Field fieldString = + Field.newBuilder("test_string", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .build(); + BigQueryDatabaseMetaData.ColumnTypeInfo infoString = + dbMetadata.mapBigQueryTypeToJdbc(fieldString); + assertEquals(Types.NVARCHAR, infoString.jdbcType); + assertEquals("NVARCHAR", infoString.typeName); + assertNull(infoString.columnSize); + assertNull(infoString.decimalDigits); + assertNull(infoString.numPrecRadix); + + // BOOL -> BOOLEAN + Field fieldBool = + Field.newBuilder("test_bool", StandardSQLTypeName.BOOL) + .setMode(Field.Mode.NULLABLE) + .build(); + BigQueryDatabaseMetaData.ColumnTypeInfo infoBool = dbMetadata.mapBigQueryTypeToJdbc(fieldBool); + assertEquals(Types.BOOLEAN, infoBool.jdbcType); + assertEquals("BOOLEAN", infoBool.typeName); + assertEquals(Integer.valueOf(1), infoBool.columnSize); + + // BYTES -> VARBINARY + Field fieldBytes = + Field.newBuilder("test_bytes", StandardSQLTypeName.BYTES) + .setMode(Field.Mode.NULLABLE) + .build(); + BigQueryDatabaseMetaData.ColumnTypeInfo infoBytes = + dbMetadata.mapBigQueryTypeToJdbc(fieldBytes); + assertEquals(Types.VARBINARY, infoBytes.jdbcType); + assertEquals("VARBINARY", infoBytes.typeName); + assertNull(infoBytes.columnSize); + + // TIMESTAMP -> TIMESTAMP + Field fieldTimestamp = + Field.newBuilder("test_ts", StandardSQLTypeName.TIMESTAMP) + .setMode(Field.Mode.NULLABLE) + .build(); + BigQueryDatabaseMetaData.ColumnTypeInfo infoTimestamp = + dbMetadata.mapBigQueryTypeToJdbc(fieldTimestamp); + assertEquals(Types.TIMESTAMP, infoTimestamp.jdbcType); + assertEquals("TIMESTAMP", infoTimestamp.typeName); + assertEquals(Integer.valueOf(29), infoTimestamp.columnSize); + assertNull(infoTimestamp.decimalDigits); + assertNull(infoTimestamp.numPrecRadix); + + // DATETIME -> TIMESTAMP + Field fieldDateTime = + Field.newBuilder("test_dt", StandardSQLTypeName.DATETIME) + .setMode(Field.Mode.NULLABLE) + .build(); + BigQueryDatabaseMetaData.ColumnTypeInfo infoDateTime = + dbMetadata.mapBigQueryTypeToJdbc(fieldDateTime); + assertEquals(Types.TIMESTAMP, infoDateTime.jdbcType); + assertEquals("TIMESTAMP", infoDateTime.typeName); + assertEquals(Integer.valueOf(29), infoDateTime.columnSize); + assertNull(infoDateTime.decimalDigits); + assertNull(infoDateTime.numPrecRadix); + + // NUMERIC -> NUMERIC + Field fieldNumeric = + Field.newBuilder("test_num", StandardSQLTypeName.NUMERIC) + .setMode(Field.Mode.NULLABLE) + .build(); + BigQueryDatabaseMetaData.ColumnTypeInfo infoNumeric = + dbMetadata.mapBigQueryTypeToJdbc(fieldNumeric); + assertEquals(Types.NUMERIC, infoNumeric.jdbcType); + assertEquals("NUMERIC", infoNumeric.typeName); + assertEquals(Integer.valueOf(38), infoNumeric.columnSize); + assertEquals(Integer.valueOf(9), infoNumeric.decimalDigits); + assertEquals(Integer.valueOf(10), infoNumeric.numPrecRadix); + + // BIGNUMERIC -> NUMERIC + Field fieldBigNumeric = + Field.newBuilder("test_bignum", StandardSQLTypeName.BIGNUMERIC) + .setMode(Field.Mode.NULLABLE) + .build(); + BigQueryDatabaseMetaData.ColumnTypeInfo infoBigNumeric = + dbMetadata.mapBigQueryTypeToJdbc(fieldBigNumeric); + assertEquals(Types.NUMERIC, infoBigNumeric.jdbcType); + assertEquals("NUMERIC", infoBigNumeric.typeName); + assertEquals(Integer.valueOf(77), infoBigNumeric.columnSize); + assertEquals(Integer.valueOf(38), infoBigNumeric.decimalDigits); + assertEquals(Integer.valueOf(10), infoBigNumeric.numPrecRadix); + + // GEOGRAPHY -> VARCHAR + Field fieldGeo = + Field.newBuilder("test_geo", StandardSQLTypeName.GEOGRAPHY) + .setMode(Field.Mode.NULLABLE) + .build(); + BigQueryDatabaseMetaData.ColumnTypeInfo infoGeo = dbMetadata.mapBigQueryTypeToJdbc(fieldGeo); + assertEquals(Types.VARCHAR, infoGeo.jdbcType); + assertEquals("VARCHAR", infoGeo.typeName); + assertNull(infoGeo.columnSize); + + // DATE + Field fieldDate = + Field.newBuilder("test_date", StandardSQLTypeName.DATE) + .setMode(Field.Mode.NULLABLE) + .build(); + BigQueryDatabaseMetaData.ColumnTypeInfo infoDate = dbMetadata.mapBigQueryTypeToJdbc(fieldDate); + assertEquals(Types.DATE, infoDate.jdbcType); + assertEquals("DATE", infoDate.typeName); + + // TIME + Field fieldTime = + Field.newBuilder("test_time", StandardSQLTypeName.TIME) + .setMode(Field.Mode.NULLABLE) + .build(); + BigQueryDatabaseMetaData.ColumnTypeInfo infoTime = dbMetadata.mapBigQueryTypeToJdbc(fieldTime); + assertEquals(Types.TIME, infoTime.jdbcType); + assertEquals("TIME", infoTime.typeName); + + // STRUCT + Field fieldStruct = + Field.newBuilder( + "test_struct", + StandardSQLTypeName.STRUCT, + Field.of("sub_field", StandardSQLTypeName.STRING)) + .setMode(Field.Mode.NULLABLE) + .build(); + BigQueryDatabaseMetaData.ColumnTypeInfo infoStruct = + dbMetadata.mapBigQueryTypeToJdbc(fieldStruct); + assertEquals(Types.STRUCT, infoStruct.jdbcType); + assertEquals("STRUCT", infoStruct.typeName); + } + + @Test + public void testMapBigQueryTypeToJdbc_ArrayType() { + Field fieldArray = + Field.newBuilder("test_array", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REPEATED) + .build(); + + BigQueryDatabaseMetaData.ColumnTypeInfo infoArray = + dbMetadata.mapBigQueryTypeToJdbc(fieldArray); + assertEquals(Types.ARRAY, infoArray.jdbcType); + assertEquals("ARRAY", infoArray.typeName); + assertNull(infoArray.columnSize); + assertNull(infoArray.decimalDigits); + assertNull(infoArray.numPrecRadix); + } + + @Test + public void testCreateColumnRow() { + Field realField = + Field.newBuilder("user_name", StandardSQLTypeName.STRING) + .setMode(Field.Mode.NULLABLE) + .setDescription("Name of the user") + .build(); + + String catalog = "test-project"; + String schema = "test_dataset"; + String table = "users"; + int ordinalPos = 3; + + List row = + dbMetadata.createColumnRow(catalog, schema, table, realField, ordinalPos); + + assertNotNull(row); + assertEquals(24, row.size()); + + assertEquals(catalog, row.get(0).getStringValue()); // 1. TABLE_CAT + assertEquals(schema, row.get(1).getStringValue()); // 2. TABLE_SCHEM + assertEquals(table, row.get(2).getStringValue()); // 3. TABLE_NAME + assertEquals("user_name", row.get(3).getStringValue()); // 4. COLUMN_NAME + assertEquals(String.valueOf(Types.NVARCHAR), row.get(4).getStringValue()); // 5. DATA_TYPE + assertEquals("NVARCHAR", row.get(5).getStringValue()); // 6. TYPE_NAME + assertTrue(row.get(6).isNull()); // 7. COLUMN_SIZE (was null for STRING) + assertTrue(row.get(7).isNull()); // 8. BUFFER_LENGTH (always null) + assertTrue(row.get(8).isNull()); // 9. DECIMAL_DIGITS (null for STRING) + assertTrue(row.get(9).isNull()); // 10. NUM_PREC_RADIX (null for STRING) + assertEquals( + String.valueOf(DatabaseMetaData.columnNullable), + row.get(10).getStringValue()); // 11. NULLABLE + assertEquals("Name of the user", row.get(11).getStringValue()); // 12. REMARKS + assertTrue(row.get(12).isNull()); // 13. COLUMN_DEF (null) + // 14, 15 unused + assertTrue(row.get(15).isNull()); // 16. CHAR_OCTET_LENGTH (was null) + assertEquals(String.valueOf(ordinalPos), row.get(16).getStringValue()); // 17. ORDINAL_POSITION + assertEquals("YES", row.get(17).getStringValue()); // 18. IS_NULLABLE (YES for NULLABLE mode) + // 19-22 SCOPE/SOURCE (null) + assertEquals("NO", row.get(22).getStringValue()); // 23. IS_AUTOINCREMENT (NO) + assertEquals("NO", row.get(23).getStringValue()); // 24. IS_GENERATEDCOLUMN (NO) + } + + @Test + public void testCreateColumnRow_RequiredInt() { + Field realField = + Field.newBuilder("user_id", StandardSQLTypeName.INT64).setMode(Field.Mode.REQUIRED).build(); + + String catalog = "p"; + String schema = "d"; + String table = "t"; + int ordinalPos = 1; + + List row = + dbMetadata.createColumnRow(catalog, schema, table, realField, ordinalPos); + + assertEquals(24, row.size()); + assertEquals("user_id", row.get(3).getStringValue()); // COLUMN_NAME + assertEquals(String.valueOf(Types.BIGINT), row.get(4).getStringValue()); // DATA_TYPE + assertEquals("BIGINT", row.get(5).getStringValue()); // TYPE_NAME + assertEquals("19", row.get(6).getStringValue()); // COLUMN_SIZE + assertEquals("0", row.get(8).getStringValue()); // DECIMAL_DIGITS + assertEquals("10", row.get(9).getStringValue()); // NUM_PREC_RADIX + assertEquals( + String.valueOf(DatabaseMetaData.columnNoNulls), row.get(10).getStringValue()); // NULLABLE + assertTrue(row.get(11).isNull()); // REMARKS (null description) + assertEquals(String.valueOf(ordinalPos), row.get(16).getStringValue()); // ORDINAL_POSITION + assertEquals("NO", row.get(17).getStringValue()); // IS_NULLABLE (NO for REQUIRED mode) + } + + @Test + public void testDefineGetTablesSchema() { + Schema schema = dbMetadata.defineGetTablesSchema(); + assertNotNull(schema); + FieldList fields = schema.getFields(); + assertEquals(10, fields.size()); + + Field tableCat = fields.get("TABLE_CAT"); + assertEquals("TABLE_CAT", tableCat.getName()); + assertEquals(StandardSQLTypeName.STRING, tableCat.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, tableCat.getMode()); + + Field tableName = fields.get("TABLE_NAME"); + assertEquals("TABLE_NAME", tableName.getName()); + assertEquals(StandardSQLTypeName.STRING, tableName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, tableName.getMode()); + + Field tableType = fields.get("TABLE_TYPE"); + assertEquals("TABLE_TYPE", tableType.getName()); + assertEquals(StandardSQLTypeName.STRING, tableType.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, tableType.getMode()); + + Field remarks = fields.get("REMARKS"); + assertEquals("REMARKS", remarks.getName()); + assertEquals(StandardSQLTypeName.STRING, remarks.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, remarks.getMode()); + + Field refGeneration = fields.get("REF_GENERATION"); + assertEquals("REF_GENERATION", refGeneration.getName()); + assertEquals(StandardSQLTypeName.STRING, refGeneration.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, refGeneration.getMode()); + } + + @Test + public void testProcessTableInfo_Basic() { + Schema resultSchema = dbMetadata.defineGetTablesSchema(); + FieldList resultSchemaFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + + String catalog = "proj"; + String schema = "ds"; + String name = "my_table"; + TableDefinition.Type type = TableDefinition.Type.TABLE; + String description = "My test table"; + + Table table = mockBigQueryTable(catalog, schema, name, type, description); + + dbMetadata.processTableInfo(table, null, collectedResults, resultSchemaFields); + + assertEquals(1, collectedResults.size()); + FieldValueList row = collectedResults.get(0); + assertNotNull(row); + assertEquals(10, row.size()); + assertEquals(catalog, row.get("TABLE_CAT").getStringValue()); + assertEquals(schema, row.get("TABLE_SCHEM").getStringValue()); + assertEquals(name, row.get("TABLE_NAME").getStringValue()); + assertEquals(type.toString(), row.get("TABLE_TYPE").getStringValue()); + assertEquals(description, row.get("REMARKS").getStringValue()); + assertTrue(row.get("TYPE_CAT").isNull()); + assertTrue(row.get("TYPE_SCHEM").isNull()); + assertTrue(row.get("TYPE_NAME").isNull()); + assertTrue(row.get("SELF_REFERENCING_COL_NAME").isNull()); + assertTrue(row.get("REF_GENERATION").isNull()); + } + + @Test + public void testProcessTableInfo_TypeFilterMatch() { + Schema resultSchema = dbMetadata.defineGetTablesSchema(); + FieldList resultSchemaFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + Set requestedTypes = new HashSet<>(Arrays.asList("VIEW", "TABLE")); + + Table table = mockBigQueryTable("p", "d", "t", TableDefinition.Type.TABLE, "Desc"); + + dbMetadata.processTableInfo(table, requestedTypes, collectedResults, resultSchemaFields); + + assertEquals(1, collectedResults.size()); + assertEquals("TABLE", collectedResults.get(0).get("TABLE_TYPE").getStringValue()); + } + + @Test + public void testProcessTableInfo_TypeFilterMismatch() { + Schema resultSchema = dbMetadata.defineGetTablesSchema(); + FieldList resultSchemaFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + Set requestedTypes = new HashSet<>(Collections.singletonList("VIEW")); + + Table table = mockBigQueryTable("p", "d", "t", TableDefinition.Type.TABLE, "Desc"); + + dbMetadata.processTableInfo(table, requestedTypes, collectedResults, resultSchemaFields); + + assertEquals(0, collectedResults.size()); + } + + @Test + public void testProcessTableInfo_NullDescription() { + Schema resultSchema = dbMetadata.defineGetTablesSchema(); + FieldList resultSchemaFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + + Table table = mockBigQueryTable("p", "d", "t_no_desc", TableDefinition.Type.TABLE, null); + + dbMetadata.processTableInfo(table, null, collectedResults, resultSchemaFields); + + assertEquals(1, collectedResults.size()); + FieldValueList row = collectedResults.get(0); + assertTrue(row.get("REMARKS").isNull()); + } + + private FieldValueList createTableRow( + String cat, String schem, String name, String type, FieldList schemaFields) { + List values = new ArrayList<>(); + values.add(dbMetadata.createStringFieldValue(cat)); // TABLE_CAT + values.add(dbMetadata.createStringFieldValue(schem)); // TABLE_SCHEM + values.add(dbMetadata.createStringFieldValue(name)); // TABLE_NAME + values.add(dbMetadata.createStringFieldValue(type)); // TABLE_TYPE + values.add(dbMetadata.createStringFieldValue("Remark for " + name)); // REMARKS + values.add(dbMetadata.createNullFieldValue()); // TYPE_CAT + values.add(dbMetadata.createNullFieldValue()); // TYPE_SCHEM + values.add(dbMetadata.createNullFieldValue()); // TYPE_NAME + values.add(dbMetadata.createNullFieldValue()); // SELF_REFERENCING_COL_NAME + values.add(dbMetadata.createNullFieldValue()); // REF_GENERATION + return FieldValueList.of(values, schemaFields); + } + + @Test + public void testSortResults_Tables() { + Schema resultSchema = dbMetadata.defineGetTablesSchema(); + FieldList schemaFields = resultSchema.getFields(); + List results = new ArrayList<>(); + + // Add rows in unsorted order (based on TYPE, CAT, SCHEM, NAME) + results.add(createTableRow("cat_a", "sch_z", "table_1", "TABLE", schemaFields)); + results.add(createTableRow("cat_b", "sch_a", "view_1", "VIEW", schemaFields)); + results.add(createTableRow("cat_a", "sch_c", "table_2", "TABLE", schemaFields)); + results.add(createTableRow(null, "sch_b", "table_0", "TABLE", schemaFields)); + results.add(createTableRow("cat_a", "sch_z", "table_0", "TABLE", schemaFields)); + results.add(createTableRow("cat_a", null, "view_0", "VIEW", schemaFields)); + + Comparator comparator = dbMetadata.defineGetTablesComparator(schemaFields); + dbMetadata.sortResults(results, comparator, "getTables", dbMetadata.LOG); + + // Expected order: TABLEs first, then VIEWs. Within type, sort by CAT, SCHEM, NAME + assertEquals(6, results.size()); + + // 1. Null cat, sch_b, table_0, TABLE + assertTrue("Row 0 TABLE_CAT should be null", results.get(0).get("TABLE_CAT").isNull()); + assertEquals("sch_b", results.get(0).get("TABLE_SCHEM").getStringValue()); + assertEquals("table_0", results.get(0).get("TABLE_NAME").getStringValue()); + assertEquals("TABLE", results.get(0).get("TABLE_TYPE").getStringValue()); + + // 2. cat_a, sch_c, table_2, TABLE + assertEquals("cat_a", results.get(1).get("TABLE_CAT").getStringValue()); + assertEquals("sch_c", results.get(1).get("TABLE_SCHEM").getStringValue()); + assertEquals("table_2", results.get(1).get("TABLE_NAME").getStringValue()); + assertEquals("TABLE", results.get(1).get("TABLE_TYPE").getStringValue()); + + // 3. cat_a, sch_z, table_0, TABLE + assertEquals("cat_a", results.get(2).get("TABLE_CAT").getStringValue()); + assertEquals("sch_z", results.get(2).get("TABLE_SCHEM").getStringValue()); + assertEquals("table_0", results.get(2).get("TABLE_NAME").getStringValue()); + assertEquals("TABLE", results.get(2).get("TABLE_TYPE").getStringValue()); + + // 4. cat_a, sch_z, table_1, TABLE + assertEquals("cat_a", results.get(3).get("TABLE_CAT").getStringValue()); + assertEquals("sch_z", results.get(3).get("TABLE_SCHEM").getStringValue()); + assertEquals("table_1", results.get(3).get("TABLE_NAME").getStringValue()); + assertEquals("TABLE", results.get(3).get("TABLE_TYPE").getStringValue()); + + // 5. cat_a, null, view_0, VIEW + assertEquals("cat_a", results.get(4).get("TABLE_CAT").getStringValue()); + assertTrue("Row 4 TABLE_SCHEM should be null", results.get(4).get("TABLE_SCHEM").isNull()); + assertEquals("view_0", results.get(4).get("TABLE_NAME").getStringValue()); + assertEquals("VIEW", results.get(4).get("TABLE_TYPE").getStringValue()); + + // 6. cat_b, sch_a, view_1, VIEW + assertEquals("cat_b", results.get(5).get("TABLE_CAT").getStringValue()); + assertEquals("sch_a", results.get(5).get("TABLE_SCHEM").getStringValue()); + assertEquals("view_1", results.get(5).get("TABLE_NAME").getStringValue()); + assertEquals("VIEW", results.get(5).get("TABLE_TYPE").getStringValue()); + } + + @Test + public void testSortResults_Tables_EmptyList() { + Schema resultSchema = dbMetadata.defineGetTablesSchema(); + FieldList schemaFields = resultSchema.getFields(); + List results = new ArrayList<>(); + + Comparator comparator = dbMetadata.defineGetTablesComparator(schemaFields); + dbMetadata.sortResults(results, comparator, "getTables", dbMetadata.LOG); + assertTrue(results.isEmpty()); + } + + @Test + public void testDefineGetSchemasSchema() { + Schema schema = dbMetadata.defineGetSchemasSchema(); + assertNotNull(schema); + FieldList fields = schema.getFields(); + assertEquals(2, fields.size()); + + Field tableSchem = fields.get("TABLE_SCHEM"); + assertEquals("TABLE_SCHEM", tableSchem.getName()); + assertEquals(StandardSQLTypeName.STRING, tableSchem.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, tableSchem.getMode()); + + Field tableCatalog = fields.get("TABLE_CATALOG"); + assertEquals("TABLE_CATALOG", tableCatalog.getName()); + assertEquals(StandardSQLTypeName.STRING, tableCatalog.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, tableCatalog.getMode()); + } + + private Dataset mockBigQueryDataset(String project, String datasetName) { + Dataset mockDataset = mock(Dataset.class); + DatasetId mockDatasetId = DatasetId.of(project, datasetName); + when(mockDataset.getDatasetId()).thenReturn(mockDatasetId); + return mockDataset; + } + + @Test + public void testProcessSchemaInfo() { + Schema resultSchema = dbMetadata.defineGetSchemasSchema(); + FieldList resultSchemaFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + + String catalog = "project-alpha"; + String schemaName = "dataset_beta"; + Dataset dataset = mockBigQueryDataset(catalog, schemaName); + + dbMetadata.processSchemaInfo(dataset, collectedResults, resultSchemaFields); + + assertEquals(1, collectedResults.size()); + FieldValueList row = collectedResults.get(0); + assertNotNull(row); + assertEquals(2, row.size()); + assertEquals(schemaName, row.get("TABLE_SCHEM").getStringValue()); + assertEquals(catalog, row.get("TABLE_CATALOG").getStringValue()); + } + + private FieldValueList createSchemaRow(String cat, String schem, FieldList schemaFields) { + List values = new ArrayList<>(); + values.add(dbMetadata.createStringFieldValue(schem)); // TABLE_SCHEM + values.add(dbMetadata.createStringFieldValue(cat)); // TABLE_CATALOG + return FieldValueList.of(values, schemaFields); + } + + @Test + public void testSortResults_Schemas() { + Schema resultSchema = dbMetadata.defineGetSchemasSchema(); + FieldList schemaFields = resultSchema.getFields(); + List results = new ArrayList<>(); + + results.add(createSchemaRow("proj_b", "schema_z", schemaFields)); + results.add(createSchemaRow("proj_a", "schema_y", schemaFields)); + results.add(createSchemaRow(null, "schema_x", schemaFields)); + results.add(createSchemaRow("proj_b", "schema_a", schemaFields)); + results.add(createSchemaRow("proj_a", "schema_c", schemaFields)); + + Comparator comparator = dbMetadata.defineGetSchemasComparator(schemaFields); + dbMetadata.sortResults(results, comparator, "getSchemas", dbMetadata.LOG); + + // Expected order: Sort by TABLE_CATALOG (nulls first), then TABLE_SCHEM + assertEquals(5, results.size()); + + // 1. Null catalog, schema_x + assertTrue("Row 0 TABLE_CATALOG should be null", results.get(0).get("TABLE_CATALOG").isNull()); + assertEquals("schema_x", results.get(0).get("TABLE_SCHEM").getStringValue()); + + // 2. proj_a, schema_c + assertEquals("proj_a", results.get(1).get("TABLE_CATALOG").getStringValue()); + assertEquals("schema_c", results.get(1).get("TABLE_SCHEM").getStringValue()); + + // 3. proj_a, schema_y + assertEquals("proj_a", results.get(2).get("TABLE_CATALOG").getStringValue()); + assertEquals("schema_y", results.get(2).get("TABLE_SCHEM").getStringValue()); + + // 4. proj_b, schema_a + assertEquals("proj_b", results.get(3).get("TABLE_CATALOG").getStringValue()); + assertEquals("schema_a", results.get(3).get("TABLE_SCHEM").getStringValue()); + + // 5. proj_b, schema_z + assertEquals("proj_b", results.get(4).get("TABLE_CATALOG").getStringValue()); + assertEquals("schema_z", results.get(4).get("TABLE_SCHEM").getStringValue()); + } + + @Test + public void testSortResults_Schemas_EmptyList() { + Schema resultSchema = dbMetadata.defineGetSchemasSchema(); + FieldList schemaFields = resultSchema.getFields(); + List results = new ArrayList<>(); + + Comparator comparator = dbMetadata.defineGetSchemasComparator(schemaFields); + dbMetadata.sortResults(results, comparator, "getSchemas", dbMetadata.LOG); + assertTrue(results.isEmpty()); + } + + private Routine mockBigQueryRoutine( + String project, String dataset, String routineName, String routineType, String description) { + Routine mockRoutine = mock(Routine.class); + RoutineId mockRoutineId = RoutineId.of(project, dataset, routineName); + when(mockRoutine.getRoutineId()).thenReturn(mockRoutineId); + when(mockRoutine.getRoutineType()).thenReturn(routineType); + when(mockRoutine.getDescription()).thenReturn(description); + return mockRoutine; + } + + @Test + public void testDefineGetProceduresSchema() { + Schema schema = dbMetadata.defineGetProceduresSchema(); + assertNotNull(schema); + FieldList fields = schema.getFields(); + assertEquals(9, fields.size()); + + Field procCat = fields.get("PROCEDURE_CAT"); + assertEquals("PROCEDURE_CAT", procCat.getName()); + assertEquals(StandardSQLTypeName.STRING, procCat.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, procCat.getMode()); + + Field procName = fields.get("PROCEDURE_NAME"); + assertEquals("PROCEDURE_NAME", procName.getName()); + assertEquals(StandardSQLTypeName.STRING, procName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, procName.getMode()); + + Field remarks = fields.get("REMARKS"); + assertEquals("REMARKS", remarks.getName()); + assertEquals(StandardSQLTypeName.STRING, remarks.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, remarks.getMode()); + + Field procType = fields.get("PROCEDURE_TYPE"); + assertEquals("PROCEDURE_TYPE", procType.getName()); + assertEquals(StandardSQLTypeName.INT64, procType.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, procType.getMode()); + + Field specificName = fields.get("SPECIFIC_NAME"); + assertEquals("SPECIFIC_NAME", specificName.getName()); + assertEquals(StandardSQLTypeName.STRING, specificName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, specificName.getMode()); + } + + @Test + public void testProcessProcedureInfo_BasicProcedure() { + Schema resultSchema = dbMetadata.defineGetProceduresSchema(); + FieldList resultSchemaFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + + String catalog = "proj-1"; + String schema = "dataset_a"; + String name = "my_proc"; + String description = "A test procedure"; + + Routine routine = mockBigQueryRoutine(catalog, schema, name, "PROCEDURE", description); + + dbMetadata.processProcedureInfo(routine, collectedResults, resultSchemaFields); + + assertEquals(1, collectedResults.size()); + FieldValueList row = collectedResults.get(0); + assertNotNull(row); + assertEquals(9, row.size()); + assertEquals(catalog, row.get("PROCEDURE_CAT").getStringValue()); + assertEquals(schema, row.get("PROCEDURE_SCHEM").getStringValue()); + assertEquals(name, row.get("PROCEDURE_NAME").getStringValue()); + assertTrue(row.get("reserved1").isNull()); + assertTrue(row.get("reserved2").isNull()); + assertTrue(row.get("reserved3").isNull()); + assertEquals(description, row.get("REMARKS").getStringValue()); + assertEquals( + String.valueOf(DatabaseMetaData.procedureResultUnknown), + row.get("PROCEDURE_TYPE").getStringValue()); + assertEquals(name, row.get("SPECIFIC_NAME").getStringValue()); + } + + @Test + public void testProcessProcedureInfo_NullDescription() { + Schema resultSchema = dbMetadata.defineGetProceduresSchema(); + FieldList resultSchemaFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + + String catalog = "proj-1"; + String schema = "dataset_a"; + String name = "proc_no_desc"; + + Routine routine = mockBigQueryRoutine(catalog, schema, name, "PROCEDURE", null); + + dbMetadata.processProcedureInfo(routine, collectedResults, resultSchemaFields); + + assertEquals(1, collectedResults.size()); + FieldValueList row = collectedResults.get(0); + assertTrue(row.get("REMARKS").isNull()); + } + + @Test + public void testProcessProcedureInfo_SkipsNonProcedure() { + Schema resultSchema = dbMetadata.defineGetProceduresSchema(); + FieldList resultSchemaFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + + Routine routine = mockBigQueryRoutine("p", "d", "my_func", "FUNCTION", "A function"); + + dbMetadata.processProcedureInfo(routine, collectedResults, resultSchemaFields); + + assertTrue(collectedResults.isEmpty()); + } + + private FieldValueList createProcedureRow( + String cat, String schem, String name, String specName, FieldList schemaFields) { + List values = new ArrayList<>(); + values.add(dbMetadata.createStringFieldValue(cat)); // PROCEDURE_CAT + values.add(dbMetadata.createStringFieldValue(schem)); // PROCEDURE_SCHEM + values.add(dbMetadata.createStringFieldValue(name)); // PROCEDURE_NAME + values.add(dbMetadata.createNullFieldValue()); // reserved1 + values.add(dbMetadata.createNullFieldValue()); // reserved2 + values.add(dbMetadata.createNullFieldValue()); // reserved3 + values.add(dbMetadata.createStringFieldValue("Remark for " + name)); // REMARKS + values.add( + dbMetadata.createLongFieldValue( + (long) DatabaseMetaData.procedureResultUnknown)); // PROCEDURE_TYPE + values.add(dbMetadata.createStringFieldValue(specName)); // SPECIFIC_NAME + return FieldValueList.of(values, schemaFields); + } + + @Test + public void testSortResults_Procedures() { + Schema resultSchema = dbMetadata.defineGetProceduresSchema(); + FieldList schemaFields = resultSchema.getFields(); + List results = new ArrayList<>(); + + // Add rows in unsorted order (Sort by CAT, SCHEM, NAME, SPECIFIC_NAME) + results.add(createProcedureRow("cat_b", "sch_c", "proc_1", "proc_1_spec", schemaFields)); + results.add( + createProcedureRow("cat_a", "sch_z", "proc_alpha", "proc_alpha_spec", schemaFields)); + results.add(createProcedureRow("cat_a", "sch_z", "proc_beta", "proc_beta_spec", schemaFields)); + results.add(createProcedureRow(null, "sch_y", "proc_gamma", "proc_gamma_spec", schemaFields)); + results.add(createProcedureRow("cat_a", null, "proc_delta", "proc_delta_spec", schemaFields)); + results.add( + createProcedureRow("cat_a", "sch_z", "proc_alpha", "proc_alpha_spec_older", schemaFields)); + + Comparator comparator = dbMetadata.defineGetProceduresComparator(schemaFields); + dbMetadata.sortResults(results, comparator, "getProcedures", dbMetadata.LOG); + + // Expected Order: Null Cat, then Cat A (Null Schem, then sch_z), then Cat B. Within that, Name, + // then Spec Name. + assertEquals(6, results.size()); + + // 1. Null cat, sch_y, proc_gamma, proc_gamma_spec + assertTrue("Row 0 PROC_CAT should be null", results.get(0).get("PROCEDURE_CAT").isNull()); + assertEquals("sch_y", results.get(0).get("PROCEDURE_SCHEM").getStringValue()); + assertEquals("proc_gamma", results.get(0).get("PROCEDURE_NAME").getStringValue()); + assertEquals("proc_gamma_spec", results.get(0).get("SPECIFIC_NAME").getStringValue()); + + // 2. cat_a, Null schem, proc_delta, proc_delta_spec + assertEquals("cat_a", results.get(1).get("PROCEDURE_CAT").getStringValue()); + assertTrue("Row 1 PROC_SCHEM should be null", results.get(1).get("PROCEDURE_SCHEM").isNull()); + assertEquals("proc_delta", results.get(1).get("PROCEDURE_NAME").getStringValue()); + assertEquals("proc_delta_spec", results.get(1).get("SPECIFIC_NAME").getStringValue()); + + // 3. cat_a, sch_z, proc_alpha, "proc_alpha_spec" (comes first lexicographically) <<< CORRECTED + // EXPECTATION + assertEquals("cat_a", results.get(2).get("PROCEDURE_CAT").getStringValue()); + assertEquals("sch_z", results.get(2).get("PROCEDURE_SCHEM").getStringValue()); + assertEquals("proc_alpha", results.get(2).get("PROCEDURE_NAME").getStringValue()); + assertEquals( + "proc_alpha_spec", results.get(2).get("SPECIFIC_NAME").getStringValue()); // <<< CORRECTED + + // 4. cat_a, sch_z, proc_alpha, "proc_alpha_spec_older" (comes second lexicographically) <<< + // CORRECTED EXPECTATION + assertEquals("cat_a", results.get(3).get("PROCEDURE_CAT").getStringValue()); + assertEquals("sch_z", results.get(3).get("PROCEDURE_SCHEM").getStringValue()); + assertEquals("proc_alpha", results.get(3).get("PROCEDURE_NAME").getStringValue()); + assertEquals( + "proc_alpha_spec_older", + results.get(3).get("SPECIFIC_NAME").getStringValue()); // <<< CORRECTED + + // 5. cat_a, sch_z, proc_beta, proc_beta_spec + assertEquals("cat_a", results.get(4).get("PROCEDURE_CAT").getStringValue()); + assertEquals("sch_z", results.get(4).get("PROCEDURE_SCHEM").getStringValue()); + assertEquals("proc_beta", results.get(4).get("PROCEDURE_NAME").getStringValue()); + assertEquals("proc_beta_spec", results.get(4).get("SPECIFIC_NAME").getStringValue()); + + // 6. cat_b, sch_c, proc_1, proc_1_spec + assertEquals("cat_b", results.get(5).get("PROCEDURE_CAT").getStringValue()); + assertEquals("sch_c", results.get(5).get("PROCEDURE_SCHEM").getStringValue()); + assertEquals("proc_1", results.get(5).get("PROCEDURE_NAME").getStringValue()); + assertEquals("proc_1_spec", results.get(5).get("SPECIFIC_NAME").getStringValue()); + } + + @Test + public void testSortResults_Procedures_EmptyList() { + Schema resultSchema = dbMetadata.defineGetProceduresSchema(); + FieldList schemaFields = resultSchema.getFields(); + List results = new ArrayList<>(); + + Comparator comparator = dbMetadata.defineGetProceduresComparator(schemaFields); + dbMetadata.sortResults(results, comparator, "getProcedures", dbMetadata.LOG); + assertTrue(results.isEmpty()); + } + + @Test + public void testFindMatchingBigQueryObjects_Routines_ListWithPattern() { + String catalog = "p-cat"; + String schema = "d-sch"; + String pattern = "proc_%"; + DatasetId datasetId = DatasetId.of(catalog, schema); + + Routine proc1 = mockBigQueryRoutine(catalog, schema, "proc_abc", "PROCEDURE", "p1"); + Routine proc2 = mockBigQueryRoutine(catalog, schema, "proc_xyz", "PROCEDURE", "p2"); + Routine func1 = mockBigQueryRoutine(catalog, schema, "func_123", "FUNCTION", "f1"); + Routine otherProc = mockBigQueryRoutine(catalog, schema, "another_proc", "PROCEDURE", "p3"); + + Page page = mock(Page.class); + when(page.iterateAll()).thenReturn(Arrays.asList(proc1, func1, proc2, otherProc)); + when(bigqueryClient.listRoutines(eq(datasetId), any(BigQuery.RoutineListOption.class))) + .thenReturn(page); + + Pattern regex = dbMetadata.compileSqlLikePattern(pattern); + assertNotNull(regex); + + List results = + dbMetadata.findMatchingBigQueryObjects( + "Routine", + () -> bigqueryClient.listRoutines(datasetId, BigQuery.RoutineListOption.pageSize(500)), + (name) -> + bigqueryClient.getRoutine( + RoutineId.of(datasetId.getProject(), datasetId.getDataset(), name)), + (rt) -> rt.getRoutineId().getRoutine(), + pattern, + regex, + dbMetadata.LOG); + + verify(bigqueryClient, times(1)) + .listRoutines(eq(datasetId), any(BigQuery.RoutineListOption.class)); + verify(bigqueryClient, never()).getRoutine(any(RoutineId.class)); + + assertNotNull(results); + List resultList = new ArrayList<>(results); + + assertEquals("Should contain only matching routines", 2, resultList.size()); + assertTrue("Should contain proc_abc", resultList.contains(proc1)); + assertTrue("Should contain proc_xyz", resultList.contains(proc2)); + assertFalse("Should not contain func_123", resultList.contains(func1)); + assertFalse("Should not contain another_proc", resultList.contains(otherProc)); + } + + @Test + public void testFindMatchingBigQueryObjects_Routines_ListNoPattern() { + String catalog = "p-cat"; + String schema = "d-sch"; + String pattern = null; + DatasetId datasetId = DatasetId.of(catalog, schema); + + Routine proc1 = mockBigQueryRoutine(catalog, schema, "proc_abc", "PROCEDURE", "p1"); + Routine func1 = mockBigQueryRoutine(catalog, schema, "func_123", "FUNCTION", "f1"); + + Page page = mock(Page.class); + when(page.iterateAll()).thenReturn(Arrays.asList(proc1, func1)); + when(bigqueryClient.listRoutines(eq(datasetId), any(BigQuery.RoutineListOption.class))) + .thenReturn(page); + + Pattern regex = dbMetadata.compileSqlLikePattern(pattern); + List results = + dbMetadata.findMatchingBigQueryObjects( + "Routine", + () -> bigqueryClient.listRoutines(datasetId, BigQuery.RoutineListOption.pageSize(500)), + (name) -> + bigqueryClient.getRoutine( + RoutineId.of(datasetId.getProject(), datasetId.getDataset(), name)), + (rt) -> rt.getRoutineId().getRoutine(), + pattern, + regex, + dbMetadata.LOG); + + verify(bigqueryClient, times(1)) + .listRoutines(eq(datasetId), any(BigQuery.RoutineListOption.class)); + + assertNotNull(results); + List resultList = new ArrayList<>(results); + + assertEquals("Should contain all routines when pattern is null", 2, resultList.size()); + assertTrue("Should contain proc_abc", resultList.contains(proc1)); + assertTrue("Should contain func_123", resultList.contains(func1)); + } + + @Test + public void testFindMatchingBigQueryObjects_Routines_GetSpecific() { + String catalog = "p-cat"; + String schema = "d-sch"; + String procNameExact = "exactprocname"; + DatasetId datasetId = DatasetId.of(catalog, schema); + RoutineId routineId = RoutineId.of(catalog, schema, procNameExact); + Routine mockRoutine = mockBigQueryRoutine(catalog, schema, procNameExact, "PROCEDURE", "desc"); + + when(bigqueryClient.getRoutine(eq(routineId))).thenReturn(mockRoutine); + Pattern regex = dbMetadata.compileSqlLikePattern(procNameExact); + + List results = + dbMetadata.findMatchingBigQueryObjects( + "Routine", + () -> bigqueryClient.listRoutines(datasetId, BigQuery.RoutineListOption.pageSize(500)), + (name) -> + bigqueryClient.getRoutine( + RoutineId.of(datasetId.getProject(), datasetId.getDataset(), name)), + (rt) -> rt.getRoutineId().getRoutine(), + procNameExact, + regex, + dbMetadata.LOG); + + verify(bigqueryClient, times(1)).getRoutine(eq(routineId)); + verify(bigqueryClient, never()) + .listRoutines(any(DatasetId.class), any(BigQuery.RoutineListOption.class)); + + assertNotNull(results); + List resultList = new ArrayList<>(results); + assertEquals(1, resultList.size()); + assertSame(mockRoutine, resultList.get(0)); + } + + @Test + public void testDefineGetProcedureColumnsSchema() { + Schema schema = dbMetadata.defineGetProcedureColumnsSchema(); + assertNotNull(schema); + FieldList fields = schema.getFields(); + assertEquals(20, fields.size()); + + Field procCat = fields.get("PROCEDURE_CAT"); + assertEquals("PROCEDURE_CAT", procCat.getName()); + assertEquals(StandardSQLTypeName.STRING, procCat.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, procCat.getMode()); + + Field colName = fields.get("COLUMN_NAME"); + assertEquals("COLUMN_NAME", colName.getName()); + assertEquals(StandardSQLTypeName.STRING, colName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, colName.getMode()); + + Field colType = fields.get("COLUMN_TYPE"); + assertEquals("COLUMN_TYPE", colType.getName()); + assertEquals(StandardSQLTypeName.INT64, colType.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, colType.getMode()); + + Field dataType = fields.get("DATA_TYPE"); + assertEquals("DATA_TYPE", dataType.getName()); + assertEquals(StandardSQLTypeName.INT64, dataType.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, dataType.getMode()); + + Field typeName = fields.get("TYPE_NAME"); + assertEquals("TYPE_NAME", typeName.getName()); + assertEquals(StandardSQLTypeName.STRING, typeName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, typeName.getMode()); + + Field ordinalPos = fields.get("ORDINAL_POSITION"); + assertEquals("ORDINAL_POSITION", ordinalPos.getName()); + assertEquals(StandardSQLTypeName.INT64, ordinalPos.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, ordinalPos.getMode()); + + Field isNullable = fields.get("IS_NULLABLE"); + assertEquals("IS_NULLABLE", isNullable.getName()); + assertEquals(StandardSQLTypeName.STRING, isNullable.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, isNullable.getMode()); + + Field specificName = fields.get("SPECIFIC_NAME"); + assertEquals("SPECIFIC_NAME", specificName.getName()); + assertEquals(StandardSQLTypeName.STRING, specificName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, specificName.getMode()); + } + + @Test + public void testDetermineTypeInfoFromDataType() { + // INT64 + StandardSQLDataType sqlInt64 = mockStandardSQLDataType(StandardSQLTypeName.INT64); + BigQueryDatabaseMetaData.ColumnTypeInfo infoInt64 = + dbMetadata.determineTypeInfoFromDataType(sqlInt64, "p", "c", 1); + assertEquals(Types.BIGINT, infoInt64.jdbcType); + assertEquals("BIGINT", infoInt64.typeName); + + // STRING + StandardSQLDataType sqlString = mockStandardSQLDataType(StandardSQLTypeName.STRING); + BigQueryDatabaseMetaData.ColumnTypeInfo infoString = + dbMetadata.determineTypeInfoFromDataType(sqlString, "p", "c", 1); + assertEquals(Types.NVARCHAR, infoString.jdbcType); + assertEquals("NVARCHAR", infoString.typeName); + + // BOOL + StandardSQLDataType sqlBool = mockStandardSQLDataType(StandardSQLTypeName.BOOL); + BigQueryDatabaseMetaData.ColumnTypeInfo infoBool = + dbMetadata.determineTypeInfoFromDataType(sqlBool, "p", "c", 1); + assertEquals(Types.BOOLEAN, infoBool.jdbcType); + assertEquals("BOOLEAN", infoBool.typeName); + + // STRUCT + StandardSQLDataType sqlStruct = mockStandardSQLDataType(StandardSQLTypeName.STRUCT); + BigQueryDatabaseMetaData.ColumnTypeInfo infoStruct = + dbMetadata.determineTypeInfoFromDataType(sqlStruct, "p", "c", 1); + assertEquals(Types.STRUCT, infoStruct.jdbcType); + assertEquals("STRUCT", infoStruct.typeName); + + // Case: null typeKind from StandardSQLDataType (should default to VARCHAR) + StandardSQLDataType sqlNullKind = mock(StandardSQLDataType.class); + when(sqlNullKind.getTypeKind()).thenReturn(null); + BigQueryDatabaseMetaData.ColumnTypeInfo infoNullKind = + dbMetadata.determineTypeInfoFromDataType(sqlNullKind, "p", "c", 1); + assertEquals(Types.VARCHAR, infoNullKind.jdbcType); + assertEquals("VARCHAR", infoNullKind.typeName); + + // Case: unknown typeKind from StandardSQLDataType (should default to VARCHAR) + StandardSQLDataType sqlUnknownKind = mock(StandardSQLDataType.class); + when(sqlUnknownKind.getTypeKind()).thenReturn("SUPER_DOOPER_TYPE"); + BigQueryDatabaseMetaData.ColumnTypeInfo infoUnknownKind = + dbMetadata.determineTypeInfoFromDataType(sqlUnknownKind, "p", "c", 1); + assertEquals(Types.VARCHAR, infoUnknownKind.jdbcType); + assertEquals("VARCHAR", infoUnknownKind.typeName); + } + + @Test + public void testCreateProcedureColumnRow_BasicInParam() { + String catalog = "proj_x"; + String schema = "data_y"; + String procName = "proc_z"; + String specificName = "proc_z_specific"; + + RoutineArgument arg = mockRoutineArgument("param_in", StandardSQLTypeName.STRING, "IN"); + int ordinalPos = 1; + + List row = + dbMetadata.createProcedureColumnRow( + catalog, schema, procName, specificName, arg, ordinalPos, "param_in"); + + assertNotNull(row); + assertEquals(20, row.size()); + + assertEquals(catalog, row.get(0).getStringValue()); // 1. PROCEDURE_CAT + assertEquals(schema, row.get(1).getStringValue()); // 2. PROCEDURE_SCHEM + assertEquals(procName, row.get(2).getStringValue()); // 3. PROCEDURE_NAME + assertEquals("param_in", row.get(3).getStringValue()); // 4. COLUMN_NAME + assertEquals( + String.valueOf(DatabaseMetaData.procedureColumnIn), + row.get(4).getStringValue()); // 5. COLUMN_TYPE + assertEquals(String.valueOf(Types.NVARCHAR), row.get(5).getStringValue()); // 6. DATA_TYPE + assertEquals("NVARCHAR", row.get(6).getStringValue()); // 7. TYPE_NAME + assertTrue(row.get(7).isNull()); // 8. PRECISION + assertTrue(row.get(8).isNull()); // 9. LENGTH + assertTrue(row.get(9).isNull()); // 10. SCALE + assertTrue(row.get(10).isNull()); // 11. RADIX + assertEquals( + String.valueOf(DatabaseMetaData.procedureNullable), + row.get(11).getStringValue()); // 12. NULLABLE + assertTrue(row.get(12).isNull()); // 13. REMARKS + assertTrue(row.get(13).isNull()); // 14. COLUMN_DEF + assertTrue(row.get(14).isNull()); // 15. SQL_DATA_TYPE + assertTrue(row.get(15).isNull()); // 16. SQL_DATETIME_SUB + assertTrue(row.get(16).isNull()); // 17. CHAR_OCTET_LENGTH + assertEquals(String.valueOf(ordinalPos), row.get(17).getStringValue()); // 18. ORDINAL_POSITION + assertEquals("YES", row.get(18).getStringValue()); // 19. IS_NULLABLE + assertEquals(specificName, row.get(19).getStringValue()); // 20. SPECIFIC_NAME + } + + @Test + public void testCreateProcedureColumnRow_NumericOutParam() { + RoutineArgument arg = mockRoutineArgument("param_out_num", StandardSQLTypeName.NUMERIC, "OUT"); + int ordinalPos = 2; + + List row = + dbMetadata.createProcedureColumnRow( + "p", "d", "proc", "proc_spec", arg, ordinalPos, "param_out_num"); + + assertEquals( + String.valueOf(DatabaseMetaData.procedureColumnOut), + row.get(4).getStringValue()); // COLUMN_TYPE + assertEquals(String.valueOf(Types.NUMERIC), row.get(5).getStringValue()); // DATA_TYPE + assertEquals("NUMERIC", row.get(6).getStringValue()); // TYPE_NAME + assertEquals("38", row.get(7).getStringValue()); // PRECISION + assertEquals("9", row.get(9).getStringValue()); // SCALE + assertEquals("10", row.get(10).getStringValue()); // RADIX + } + + @Test + public void testCreateProcedureColumnRow_InOutTimestampParam() { + RoutineArgument arg = + mockRoutineArgument("param_inout_ts", StandardSQLTypeName.TIMESTAMP, "INOUT"); + List row = + dbMetadata.createProcedureColumnRow( + "p", "d", "proc", "proc_spec", arg, 3, "param_inout_ts"); + + assertEquals( + String.valueOf(DatabaseMetaData.procedureColumnInOut), row.get(4).getStringValue()); + assertEquals(String.valueOf(Types.TIMESTAMP), row.get(5).getStringValue()); + assertEquals("TIMESTAMP", row.get(6).getStringValue()); + assertEquals("29", row.get(7).getStringValue()); // PRECISION for TIMESTAMP + } + + @Test + public void testCreateProcedureColumnRow_UnknownModeDefaultsToUnknownType() { + RoutineArgument arg = + mockRoutineArgument("param_unknown_mode", StandardSQLTypeName.BOOL, "UNKNOWN_MODE"); + List row = + dbMetadata.createProcedureColumnRow( + "p", "d", "proc", "proc_spec", arg, 1, "param_unknown_mode"); + assertEquals( + String.valueOf(DatabaseMetaData.procedureColumnUnknown), row.get(4).getStringValue()); + } + + @Test + public void testCreateProcedureColumnRow_NullArgumentObject() { + List row = + dbMetadata.createProcedureColumnRow( + "cat", "schem", "proc", "spec", null, 1, "fallback_arg_name"); + + assertNotNull(row); + assertEquals(20, row.size()); + assertEquals("fallback_arg_name", row.get(3).getStringValue()); // COLUMN_NAME + assertEquals(String.valueOf(Types.VARCHAR), row.get(5).getStringValue()); // DATA_TYPE + assertEquals("VARCHAR", row.get(6).getStringValue()); // TYPE_NAME + assertEquals( + String.valueOf(DatabaseMetaData.procedureColumnUnknown), row.get(4).getStringValue()); + } + + @Test + public void testCreateProcedureColumnRow_NullArgumentDataType() { + RoutineArgument argWithNullDataType = mock(RoutineArgument.class); + when(argWithNullDataType.getName()).thenReturn("arg_null_type"); + when(argWithNullDataType.getDataType()).thenReturn(null); + when(argWithNullDataType.getMode()).thenReturn("IN"); + + List row = + dbMetadata.createProcedureColumnRow( + "cat", "schem", "proc", "spec", argWithNullDataType, 1, "arg_null_type"); + + assertNotNull(row); + assertEquals("arg_null_type", row.get(3).getStringValue()); + assertEquals( + String.valueOf(Types.VARCHAR), row.get(5).getStringValue()); // DATA_TYPE should default + assertEquals("VARCHAR", row.get(6).getStringValue()); // TYPE_NAME should default + } + + @Test + public void testProcessProcedureArguments_NoArguments() { + Schema resultSchema = dbMetadata.defineGetProcedureColumnsSchema(); + FieldList resultFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + Pattern noColumnNamePattern = null; // Match all columns + + Routine routine = + mockBigQueryRoutineWithArgs( + "p", "d", "proc_no_args", "PROCEDURE", "desc", Collections.emptyList()); // No arguments + + dbMetadata.processProcedureArguments( + routine, noColumnNamePattern, collectedResults, resultFields); + assertTrue(collectedResults.isEmpty()); + } + + @Test + public void testProcessProcedureArguments_WithArgumentsNoFilter() { + Schema resultSchema = dbMetadata.defineGetProcedureColumnsSchema(); + FieldList resultFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + Pattern noColumnNamePattern = null; + + RoutineArgument arg1 = mockRoutineArgument("param1", StandardSQLTypeName.INT64, "IN"); + RoutineArgument arg2 = mockRoutineArgument("param2", StandardSQLTypeName.STRING, "OUT"); + Routine routine = + mockBigQueryRoutineWithArgs( + "p", "d", "proc_two_args", "PROCEDURE", "desc", Arrays.asList(arg1, arg2)); + + dbMetadata.processProcedureArguments( + routine, noColumnNamePattern, collectedResults, resultFields); + assertEquals(2, collectedResults.size()); + assertEquals("param1", collectedResults.get(0).get("COLUMN_NAME").getStringValue()); + assertEquals("param2", collectedResults.get(1).get("COLUMN_NAME").getStringValue()); + assertEquals( + String.valueOf(1), collectedResults.get(0).get("ORDINAL_POSITION").getStringValue()); + assertEquals( + String.valueOf(2), collectedResults.get(1).get("ORDINAL_POSITION").getStringValue()); + } + + @Test + public void testProcessProcedureArguments_WithColumnNameFilter() { + Schema resultSchema = dbMetadata.defineGetProcedureColumnsSchema(); + FieldList resultFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + Pattern columnNamePattern = Pattern.compile(".*_id"); // Match columns ending with _id + + RoutineArgument arg1 = mockRoutineArgument("user_id", StandardSQLTypeName.INT64, "IN"); + RoutineArgument arg2 = mockRoutineArgument("user_name", StandardSQLTypeName.STRING, "IN"); + RoutineArgument arg3 = mockRoutineArgument("session_id", StandardSQLTypeName.STRING, "INOUT"); + + Routine routine = + mockBigQueryRoutineWithArgs( + "p", "d", "proc_filtered_args", "PROCEDURE", "desc", Arrays.asList(arg1, arg2, arg3)); + + dbMetadata.processProcedureArguments( + routine, columnNamePattern, collectedResults, resultFields); + assertEquals(2, collectedResults.size()); + assertEquals("user_id", collectedResults.get(0).get("COLUMN_NAME").getStringValue()); + assertEquals("session_id", collectedResults.get(1).get("COLUMN_NAME").getStringValue()); + } + + @Test + public void testProcessProcedureArguments_HandlesNullArgumentInList() { + Schema resultSchema = dbMetadata.defineGetProcedureColumnsSchema(); + FieldList resultFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + Pattern noColumnNamePattern = null; + + RoutineArgument arg1 = mockRoutineArgument("valid_arg", StandardSQLTypeName.INT64, "IN"); + List argsWithNull = new ArrayList<>(); + argsWithNull.add(arg1); + argsWithNull.add(null); // Add a null argument + RoutineArgument arg3 = + mockRoutineArgument("another_valid_arg", StandardSQLTypeName.STRING, "OUT"); + argsWithNull.add(arg3); + + Routine routine = mock(Routine.class); + RoutineId routineId = RoutineId.of("p", "d", "proc_with_null_arg_in_list"); + when(routine.getRoutineId()).thenReturn(routineId); + when(routine.getRoutineType()).thenReturn("PROCEDURE"); + when(routine.getArguments()).thenReturn(argsWithNull); + + dbMetadata.processProcedureArguments( + routine, noColumnNamePattern, collectedResults, resultFields); + + assertEquals(3, collectedResults.size()); + assertEquals("valid_arg", collectedResults.get(0).get("COLUMN_NAME").getStringValue()); + // The fallback name generated by processProcedureArguments when arg is null in list + assertEquals( + "arg_retrieval_err_2", collectedResults.get(1).get("COLUMN_NAME").getStringValue()); + assertEquals( + String.valueOf(Types.VARCHAR), + collectedResults.get(1).get("DATA_TYPE").getStringValue()); // Default type for null arg + assertEquals("another_valid_arg", collectedResults.get(2).get("COLUMN_NAME").getStringValue()); + } + + private FieldValueList createProcedureColumnRowForSortTest( + String cat, + String schem, + String procName, + String specName, + String colName, + int ordinal, + FieldList schemaFields) { + List values = new ArrayList<>(20); + values.add(dbMetadata.createStringFieldValue(cat)); // 1. PROC_CAT + values.add(dbMetadata.createStringFieldValue(schem)); // 2. PROC_SCHEM + values.add(dbMetadata.createStringFieldValue(procName)); // 3. PROC_NAME + values.add(dbMetadata.createStringFieldValue(colName)); // 4. COLUMN_NAME + values.add( + dbMetadata.createLongFieldValue( + (long) DatabaseMetaData.procedureColumnIn)); // 5. COLUMN_TYPE + values.add(dbMetadata.createLongFieldValue((long) Types.VARCHAR)); // 6. DATA_TYPE + values.add(dbMetadata.createStringFieldValue("VARCHAR")); // 7. TYPE_NAME + values.add(dbMetadata.createNullFieldValue()); // 8. PRECISION + values.add(dbMetadata.createNullFieldValue()); // 9. LENGTH + values.add(dbMetadata.createNullFieldValue()); // 10. SCALE + values.add(dbMetadata.createNullFieldValue()); // 11. RADIX + values.add( + dbMetadata.createLongFieldValue((long) DatabaseMetaData.procedureNullable)); // 12. NULLABLE + values.add(dbMetadata.createStringFieldValue("Remark for " + colName)); // 13. REMARKS + values.add(dbMetadata.createNullFieldValue()); // 14. COLUMN_DEF + values.add(dbMetadata.createNullFieldValue()); // 15. SQL_DATA_TYPE + values.add(dbMetadata.createNullFieldValue()); // 16. SQL_DATETIME_SUB + values.add(dbMetadata.createNullFieldValue()); // 17. CHAR_OCTET_LENGTH + values.add(dbMetadata.createLongFieldValue((long) ordinal)); // 18. ORDINAL_POSITION + values.add(dbMetadata.createStringFieldValue("YES")); // 19. IS_NULLABLE + values.add(dbMetadata.createStringFieldValue(specName)); // 20. SPECIFIC_NAME + return FieldValueList.of(values, schemaFields); + } + + @Test + public void testDefineGetProcedureColumnsComparator() { + Schema resultSchema = dbMetadata.defineGetProcedureColumnsSchema(); + FieldList schemaFields = resultSchema.getFields(); + List results = new ArrayList<>(); + + // Order: PROC_CAT, PROC_SCHEM, PROC_NAME, SPECIFIC_NAME, COLUMN_NAME + results.add( + createProcedureColumnRowForSortTest( + "cat_b", "sch_y", "proc_1", "proc_1_spec", "param_a", 1, schemaFields)); + results.add( + createProcedureColumnRowForSortTest( + "cat_a", "sch_z", "proc_alpha", "proc_alpha_spec", "arg_z", 2, schemaFields)); + results.add( + createProcedureColumnRowForSortTest( + "cat_a", + "sch_z", + "proc_alpha", + "proc_alpha_spec", + "arg_m", + 1, + schemaFields)); // Same proc, different col + results.add( + createProcedureColumnRowForSortTest( + null, "sch_x", "proc_beta", "proc_beta_spec", "col_first", 1, schemaFields)); + results.add( + createProcedureColumnRowForSortTest( + "cat_a", null, "proc_gamma", "proc_gamma_spec", "input1", 1, schemaFields)); + + Comparator comparator = + dbMetadata.defineGetProcedureColumnsComparator(schemaFields); + assertNotNull(comparator); + dbMetadata.sortResults(results, comparator, "getProcedureColumns", dbMetadata.LOG); + + assertEquals(5, results.size()); + + // 1. Null cat, sch_x, proc_beta, proc_beta_spec, col_first + assertTrue(results.get(0).get("PROCEDURE_CAT").isNull()); + assertEquals("sch_x", results.get(0).get("PROCEDURE_SCHEM").getStringValue()); + assertEquals("proc_beta", results.get(0).get("PROCEDURE_NAME").getStringValue()); + assertEquals("proc_beta_spec", results.get(0).get("SPECIFIC_NAME").getStringValue()); + assertEquals("col_first", results.get(0).get("COLUMN_NAME").getStringValue()); + + // 2. cat_a, Null schem, proc_gamma, proc_gamma_spec, input1 + assertEquals("cat_a", results.get(1).get("PROCEDURE_CAT").getStringValue()); + assertTrue(results.get(1).get("PROCEDURE_SCHEM").isNull()); + assertEquals("proc_gamma", results.get(1).get("PROCEDURE_NAME").getStringValue()); + assertEquals("proc_gamma_spec", results.get(1).get("SPECIFIC_NAME").getStringValue()); + assertEquals("input1", results.get(1).get("COLUMN_NAME").getStringValue()); + + // 3. cat_a, sch_z, proc_alpha, proc_alpha_spec, arg_m (m before z) + assertEquals("cat_a", results.get(2).get("PROCEDURE_CAT").getStringValue()); + assertEquals("sch_z", results.get(2).get("PROCEDURE_SCHEM").getStringValue()); + assertEquals("proc_alpha", results.get(2).get("PROCEDURE_NAME").getStringValue()); + assertEquals("proc_alpha_spec", results.get(2).get("SPECIFIC_NAME").getStringValue()); + assertEquals("arg_m", results.get(2).get("COLUMN_NAME").getStringValue()); + + // 4. cat_a, sch_z, proc_alpha, proc_alpha_spec, arg_z + assertEquals("cat_a", results.get(3).get("PROCEDURE_CAT").getStringValue()); + assertEquals("sch_z", results.get(3).get("PROCEDURE_SCHEM").getStringValue()); + assertEquals("proc_alpha", results.get(3).get("PROCEDURE_NAME").getStringValue()); + assertEquals("proc_alpha_spec", results.get(3).get("SPECIFIC_NAME").getStringValue()); + assertEquals("arg_z", results.get(3).get("COLUMN_NAME").getStringValue()); + + // 5. cat_b, sch_y, proc_1, proc_1_spec, param_a + assertEquals("cat_b", results.get(4).get("PROCEDURE_CAT").getStringValue()); + assertEquals("sch_y", results.get(4).get("PROCEDURE_SCHEM").getStringValue()); + assertEquals("proc_1", results.get(4).get("PROCEDURE_NAME").getStringValue()); + assertEquals("proc_1_spec", results.get(4).get("SPECIFIC_NAME").getStringValue()); + assertEquals("param_a", results.get(4).get("COLUMN_NAME").getStringValue()); + } + + @Test + public void testListMatchingProcedureIdsFromDatasets() throws Exception { + String catalog = "test-proj"; + String schema1Name = "dataset1"; + String schema2Name = "dataset2"; + Dataset dataset1 = mockBigQueryDataset(catalog, schema1Name); + Dataset dataset2 = mockBigQueryDataset(catalog, schema2Name); + List datasetsToScan = Arrays.asList(dataset1, dataset2); + + Routine proc1_ds1 = mockBigQueryRoutine(catalog, schema1Name, "proc_a", "PROCEDURE", "desc a"); + Routine func1_ds1 = mockBigQueryRoutine(catalog, schema1Name, "func_b", "FUNCTION", "desc b"); + Routine proc2_ds2 = mockBigQueryRoutine(catalog, schema2Name, "proc_c", "PROCEDURE", "desc c"); + + Page page1 = mock(Page.class); + when(page1.iterateAll()).thenReturn(Arrays.asList(proc1_ds1, func1_ds1)); + when(bigqueryClient.listRoutines(eq(dataset1.getDatasetId()), any(RoutineListOption.class))) + .thenReturn(page1); + + Page page2 = mock(Page.class); + when(page2.iterateAll()).thenReturn(Collections.singletonList(proc2_ds2)); + when(bigqueryClient.listRoutines(eq(dataset2.getDatasetId()), any(RoutineListOption.class))) + .thenReturn(page2); + + ExecutorService mockExecutor = mock(ExecutorService.class); + doAnswer( + invocation -> { + Callable callable = invocation.getArgument(0); + @SuppressWarnings("unchecked") // Suppress warning for raw Future mock + Future mockedFuture = mock(Future.class); + + try { + Object result = callable.call(); + doReturn(result).when(mockedFuture).get(); + } catch (InterruptedException interruptedException) { + doThrow(interruptedException).when(mockedFuture).get(); + } catch (Exception e) { + doThrow(new ExecutionException(e)).when(mockedFuture).get(); + } + return mockedFuture; + }) + .when(mockExecutor) + .submit(any(Callable.class)); + + List resultIds = + dbMetadata.listMatchingProcedureIdsFromDatasets( + datasetsToScan, null, null, mockExecutor, catalog, dbMetadata.LOG); + + assertEquals(2, resultIds.size()); + assertTrue(resultIds.contains(proc1_ds1.getRoutineId())); + assertTrue(resultIds.contains(proc2_ds2.getRoutineId())); + assertFalse(resultIds.contains(func1_ds1.getRoutineId())); // Should not contain functions + + verify(mockExecutor, times(2)).submit(any(Callable.class)); + } + + @Test + public void testSubmitProcedureArgumentProcessingJobs_Basic() throws InterruptedException { + String catalog = "p"; + String schemaName = "d"; + RoutineArgument arg1 = mockRoutineArgument("arg1_name", StandardSQLTypeName.STRING, "IN"); + Routine proc1 = + mockBigQueryRoutineWithArgs( + catalog, schemaName, "proc1", "PROCEDURE", "desc1", Collections.singletonList(arg1)); + Routine func1 = + mockBigQueryRoutineWithArgs( + catalog, + schemaName, + "func1", + "FUNCTION", + "desc_func", + Collections.emptyList()); // Should be skipped + Routine proc2 = + mockBigQueryRoutineWithArgs( + catalog, schemaName, "proc2", "PROCEDURE", "desc2", Collections.emptyList()); + + List fullRoutines = Arrays.asList(proc1, func1, proc2); + Pattern columnNameRegex = null; + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + Schema resultSchema = dbMetadata.defineGetProcedureColumnsSchema(); + FieldList resultSchemaFields = resultSchema.getFields(); + + ExecutorService mockExecutor = mock(ExecutorService.class); + List> processingTaskFutures = new ArrayList<>(); + + // Capture the runnable submitted to the executor + List submittedRunnables = new ArrayList<>(); + doAnswer( + invocation -> { + Runnable runnable = invocation.getArgument(0); + submittedRunnables.add(runnable); + Future future = mock(Future.class); + return future; + }) + .when(mockExecutor) + .submit(any(Runnable.class)); + + dbMetadata.submitProcedureArgumentProcessingJobs( + fullRoutines, + columnNameRegex, + collectedResults, + resultSchemaFields, + mockExecutor, + processingTaskFutures, + dbMetadata.LOG); + + verify(mockExecutor, times(2)).submit(any(Runnable.class)); + assertEquals(2, processingTaskFutures.size()); + } + + @Test + public void testDefineGetTableTypesSchema() { + Schema schema = BigQueryDatabaseMetaData.defineGetTableTypesSchema(); + + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Should have one column", 1, fields.size()); + + Field tableTypeField = fields.get("TABLE_TYPE"); + assertNotNull("TABLE_TYPE field should exist", tableTypeField); + assertEquals("Field name should be TABLE_TYPE", "TABLE_TYPE", tableTypeField.getName()); + assertEquals( + "Field type should be STRING", + StandardSQLTypeName.STRING, + tableTypeField.getType().getStandardType()); + assertEquals("Field mode should be REQUIRED", Field.Mode.REQUIRED, tableTypeField.getMode()); + } + + @Test + public void testPrepareGetTableTypesRows() { + Schema schema = BigQueryDatabaseMetaData.defineGetTableTypesSchema(); + List rows = BigQueryDatabaseMetaData.prepareGetTableTypesRows(schema); + + assertNotNull("Rows list should not be null", rows); + String[] expectedTableTypes = {"EXTERNAL", "MATERIALIZED VIEW", "SNAPSHOT", "TABLE", "VIEW"}; + assertEquals( + "Should have " + expectedTableTypes.length + " rows", + expectedTableTypes.length, + rows.size()); + + Set foundTypes = new HashSet<>(); + for (int i = 0; i < rows.size(); i++) { + FieldValueList row = rows.get(i); + assertEquals("Row " + i + " should have 1 field value", 1, row.size()); + assertFalse("FieldValue in row " + i + " should not be SQL NULL", row.get(0).isNull()); + + String tableType = row.get(0).getStringValue(); + foundTypes.add(tableType); + } + + assertEquals( + "All expected table types should be present and correctly mapped", + new HashSet<>(Arrays.asList(expectedTableTypes)), + foundTypes); + } + + @Test + public void testGetTableTypes() throws SQLException { + try (ResultSet rs = dbMetadata.getTableTypes()) { + assertNotNull("ResultSet from getTableTypes() should not be null", rs); + + ResultSetMetaData rsmd = rs.getMetaData(); + assertNotNull("ResultSetMetaData should not be null", rsmd); + assertEquals("Should have one column", 1, rsmd.getColumnCount()); + assertEquals("Column name should be TABLE_TYPE", "TABLE_TYPE", rsmd.getColumnName(1)); + assertEquals("Column type should be NVARCHAR", Types.NVARCHAR, rsmd.getColumnType(1)); + + List actualTableTypes = new ArrayList<>(); + while (rs.next()) { + actualTableTypes.add(rs.getString("TABLE_TYPE")); + } + + String[] expectedTableTypes = {"EXTERNAL", "MATERIALIZED VIEW", "SNAPSHOT", "TABLE", "VIEW"}; + assertEquals( + "Number of table types should match", expectedTableTypes.length, actualTableTypes.size()); + + Set expectedSet = new HashSet<>(Arrays.asList(expectedTableTypes)); + Set actualSet = new HashSet<>(actualTableTypes); + assertEquals( + "All expected table types should be present in the ResultSet", expectedSet, actualSet); + } + } + + @Test + public void testDefineGetSuperTablesSchema() { + Schema schema = dbMetadata.defineGetSuperTablesSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Schema should have 4 fields", 4, fields.size()); + + Field tableCat = fields.get("TABLE_CAT"); + assertNotNull(tableCat); + assertEquals("TABLE_CAT", tableCat.getName()); + assertEquals(StandardSQLTypeName.STRING, tableCat.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, tableCat.getMode()); + + Field tableSchem = fields.get("TABLE_SCHEM"); + assertNotNull(tableSchem); + assertEquals("TABLE_SCHEM", tableSchem.getName()); + assertEquals(StandardSQLTypeName.STRING, tableSchem.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, tableSchem.getMode()); + + Field tableName = fields.get("TABLE_NAME"); + assertNotNull(tableName); + assertEquals("TABLE_NAME", tableName.getName()); + assertEquals(StandardSQLTypeName.STRING, tableName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, tableName.getMode()); + + Field superTableName = fields.get("SUPERTABLE_NAME"); + assertNotNull(superTableName); + assertEquals("SUPERTABLE_NAME", superTableName.getName()); + assertEquals(StandardSQLTypeName.STRING, superTableName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, superTableName.getMode()); + } + + @Test + public void testGetSuperTables_ReturnsEmptyResultSetWithCorrectMetadata() throws SQLException { + try (ResultSet rs = + dbMetadata.getSuperTables("testCatalog", "testSchemaPattern", "testTableNamePattern")) { + assertNotNull("ResultSet should not be null", rs); + assertFalse("ResultSet should be empty (next() should return false)", rs.next()); + + ResultSetMetaData metaData = rs.getMetaData(); + assertNotNull("ResultSetMetaData should not be null", metaData); + assertEquals("ResultSetMetaData should have 4 columns", 4, metaData.getColumnCount()); + + // Column 1: TABLE_CAT + assertEquals("TABLE_CAT", metaData.getColumnName(1)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(1)); // Assuming STRING maps to VARCHAR + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(1)); + + // Column 2: TABLE_SCHEM + assertEquals("TABLE_SCHEM", metaData.getColumnName(2)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(2)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(2)); + + // Column 3: TABLE_NAME + assertEquals("TABLE_NAME", metaData.getColumnName(3)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(3)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(3)); // REQUIRED + + // Column 4: SUPERTABLE_NAME + assertEquals("SUPERTABLE_NAME", metaData.getColumnName(4)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(4)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(4)); // REQUIRED + } + } + + @Test + public void testDefineGetSuperTypesSchema() { + Schema schema = dbMetadata.defineGetSuperTypesSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Schema should have 6 fields", 6, fields.size()); + + Field typeCat = fields.get("TYPE_CAT"); + assertNotNull(typeCat); + assertEquals("TYPE_CAT", typeCat.getName()); + assertEquals(StandardSQLTypeName.STRING, typeCat.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, typeCat.getMode()); + + Field typeSchem = fields.get("TYPE_SCHEM"); + assertNotNull(typeSchem); + assertEquals("TYPE_SCHEM", typeSchem.getName()); + assertEquals(StandardSQLTypeName.STRING, typeSchem.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, typeSchem.getMode()); + + Field typeName = fields.get("TYPE_NAME"); + assertNotNull(typeName); + assertEquals("TYPE_NAME", typeName.getName()); + assertEquals(StandardSQLTypeName.STRING, typeName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, typeName.getMode()); + + Field superTypeCat = fields.get("SUPERTYPE_CAT"); + assertNotNull(superTypeCat); + assertEquals("SUPERTYPE_CAT", superTypeCat.getName()); + assertEquals(StandardSQLTypeName.STRING, superTypeCat.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, superTypeCat.getMode()); + + Field superTypeSchem = fields.get("SUPERTYPE_SCHEM"); + assertNotNull(superTypeSchem); + assertEquals("SUPERTYPE_SCHEM", superTypeSchem.getName()); + assertEquals(StandardSQLTypeName.STRING, superTypeSchem.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, superTypeSchem.getMode()); + + Field superTypeName = fields.get("SUPERTYPE_NAME"); + assertNotNull(superTypeName); + assertEquals("SUPERTYPE_NAME", superTypeName.getName()); + assertEquals(StandardSQLTypeName.STRING, superTypeName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, superTypeName.getMode()); + } + + @Test + public void testGetSuperTypes_ReturnsEmptyResultSetWithCorrectMetadata() throws SQLException { + try (ResultSet rs = + dbMetadata.getSuperTypes("testCatalog", "testSchemaPattern", "testTypeNamePattern")) { + assertNotNull("ResultSet should not be null", rs); + assertFalse("ResultSet should be empty (next() should return false)", rs.next()); + + ResultSetMetaData metaData = rs.getMetaData(); + assertNotNull("ResultSetMetaData should not be null", metaData); + assertEquals("ResultSetMetaData should have 6 columns", 6, metaData.getColumnCount()); + + // Column 1: TYPE_CAT + assertEquals("TYPE_CAT", metaData.getColumnName(1)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(1)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(1)); + + // Column 2: TYPE_SCHEM + assertEquals("TYPE_SCHEM", metaData.getColumnName(2)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(2)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(2)); + + // Column 3: TYPE_NAME + assertEquals("TYPE_NAME", metaData.getColumnName(3)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(3)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(3)); + + // Column 4: SUPERTYPE_CAT + assertEquals("SUPERTYPE_CAT", metaData.getColumnName(4)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(4)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(4)); + + // Column 5: SUPERTYPE_SCHEM + assertEquals("SUPERTYPE_SCHEM", metaData.getColumnName(5)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(5)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(5)); + + // Column 6: SUPERTYPE_NAME + assertEquals("SUPERTYPE_NAME", metaData.getColumnName(6)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(6)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(6)); + } + } + + @Test + public void testDefineGetAttributesSchema() { + Schema schema = dbMetadata.defineGetAttributesSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Schema should have 21 fields", 21, fields.size()); + + assertEquals("TYPE_CAT", fields.get(0).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(0).getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get(0).getMode()); + + assertEquals("ATTR_NAME", fields.get(3).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(3).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(3).getMode()); + + assertEquals("DATA_TYPE", fields.get(4).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(4).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(4).getMode()); + + assertEquals("ORDINAL_POSITION", fields.get(15).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(15).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(15).getMode()); + + assertEquals("IS_NULLABLE", fields.get(16).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(16).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(16).getMode()); + + assertEquals("SOURCE_DATA_TYPE", fields.get(20).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(20).getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get(20).getMode()); + } + + @Test + public void testGetAttributes_ReturnsEmptyResultSet() throws SQLException { + try (ResultSet rs = + dbMetadata.getAttributes("testCat", "testSchema", "testType", "testAttr%")) { + assertNotNull("ResultSet should not be null", rs); + assertFalse("ResultSet should be empty", rs.next()); + + ResultSetMetaData metaData = rs.getMetaData(); + assertEquals("ResultSetMetaData should have 21 columns", 21, metaData.getColumnCount()); + + assertEquals("TYPE_CAT", metaData.getColumnName(1)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(1)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(1)); + + assertEquals("ATTR_NAME", metaData.getColumnName(4)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(4)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(4)); + + assertEquals("DATA_TYPE", metaData.getColumnName(5)); + assertEquals(Types.BIGINT, metaData.getColumnType(5)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(5)); + + assertEquals("ORDINAL_POSITION", metaData.getColumnName(16)); + assertEquals(Types.BIGINT, metaData.getColumnType(16)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(16)); + + assertEquals("IS_NULLABLE", metaData.getColumnName(17)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(17)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(17)); + + assertEquals("SOURCE_DATA_TYPE", metaData.getColumnName(21)); + assertEquals(Types.BIGINT, metaData.getColumnType(21)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(21)); + } + } + + @Test + public void testDefineGetBestRowIdentifierSchema() { + Schema schema = dbMetadata.defineGetBestRowIdentifierSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Schema should have 8 fields", 8, fields.size()); + + assertEquals("SCOPE", fields.get(0).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(0).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(0).getMode()); + + assertEquals("COLUMN_NAME", fields.get(1).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(1).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(1).getMode()); + + assertEquals("DATA_TYPE", fields.get(2).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(2).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(2).getMode()); + + assertEquals("BUFFER_LENGTH", fields.get(5).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(5).getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get(5).getMode()); + + assertEquals("DECIMAL_DIGITS", fields.get(6).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(6).getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get(6).getMode()); + + assertEquals("PSEUDO_COLUMN", fields.get(7).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(7).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(7).getMode()); + } + + @Test + public void testGetBestRowIdentifier_ReturnsEmptyResultSetWithCorrectMetadata() + throws SQLException { + int testScope = DatabaseMetaData.bestRowSession; + boolean testNullable = true; + + try (ResultSet rs = + dbMetadata.getBestRowIdentifier( + "testCat", "testSchema", "testTable", testScope, testNullable)) { + assertNotNull("ResultSet should not be null", rs); + assertFalse("ResultSet should be empty", rs.next()); + + ResultSetMetaData metaData = rs.getMetaData(); + assertEquals("ResultSetMetaData should have 8 columns", 8, metaData.getColumnCount()); + + assertEquals("SCOPE", metaData.getColumnName(1)); + assertEquals(Types.BIGINT, metaData.getColumnType(1)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(1)); + + assertEquals("COLUMN_NAME", metaData.getColumnName(2)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(2)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(2)); + + assertEquals("DATA_TYPE", metaData.getColumnName(3)); + assertEquals(Types.BIGINT, metaData.getColumnType(3)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(3)); + + assertEquals("BUFFER_LENGTH", metaData.getColumnName(6)); + assertEquals(Types.BIGINT, metaData.getColumnType(6)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(6)); + + assertEquals("PSEUDO_COLUMN", metaData.getColumnName(8)); + assertEquals(Types.BIGINT, metaData.getColumnType(8)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(8)); + } + } + + @Test + public void testDefineGetUDTsSchema() { + Schema schema = dbMetadata.defineGetUDTsSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Schema should have 7 fields", 7, fields.size()); + + assertEquals("TYPE_NAME", fields.get("TYPE_NAME").getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get("TYPE_NAME").getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get("TYPE_NAME").getMode()); + + assertEquals("CLASS_NAME", fields.get("CLASS_NAME").getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get("CLASS_NAME").getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get("CLASS_NAME").getMode()); + + assertEquals("DATA_TYPE", fields.get("DATA_TYPE").getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get("DATA_TYPE").getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get("DATA_TYPE").getMode()); + + assertEquals("BASE_TYPE", fields.get("BASE_TYPE").getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get("BASE_TYPE").getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get("BASE_TYPE").getMode()); + } + + @Test + public void testGetUDTs_ReturnsEmptyResultSet() throws SQLException { + int[] types = {Types.STRUCT, Types.DISTINCT}; + try (ResultSet rs = dbMetadata.getUDTs("testCat", "testSchema%", "testType%", types)) { + assertNotNull("ResultSet should not be null", rs); + assertFalse("ResultSet should be empty", rs.next()); + + ResultSetMetaData metaData = rs.getMetaData(); + assertEquals("ResultSetMetaData should have 7 columns", 7, metaData.getColumnCount()); + + assertEquals("TYPE_NAME", metaData.getColumnName(3)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(3)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(3)); + + assertEquals("DATA_TYPE", metaData.getColumnName(5)); + assertEquals(Types.BIGINT, metaData.getColumnType(5)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(5)); + + assertEquals("BASE_TYPE", metaData.getColumnName(7)); + assertEquals(Types.BIGINT, metaData.getColumnType(7)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(7)); + } + } + + @Test + public void testDefineGetIndexInfoSchema() { + Schema schema = dbMetadata.defineGetIndexInfoSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Schema should have 13 fields", 13, fields.size()); + + assertEquals("TABLE_NAME", fields.get(2).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(2).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(2).getMode()); + + assertEquals("NON_UNIQUE", fields.get(3).getName()); + assertEquals(StandardSQLTypeName.BOOL, fields.get(3).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(3).getMode()); + + assertEquals("TYPE", fields.get(6).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(6).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(6).getMode()); + + assertEquals("CARDINALITY", fields.get(10).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(10).getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get(10).getMode()); + } + + @Test + public void testGetIndexInfo_ReturnsEmptyResultSetWithCorrectMetadata() throws SQLException { + try (ResultSet rs = dbMetadata.getIndexInfo("testCat", "testSchema", "testTable", true, true)) { + assertNotNull("ResultSet should not be null", rs); + assertFalse("ResultSet should be empty", rs.next()); + + ResultSetMetaData metaData = rs.getMetaData(); + assertEquals("ResultSetMetaData should have 13 columns", 13, metaData.getColumnCount()); + + assertEquals("TABLE_NAME", metaData.getColumnName(3)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(3)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(3)); + + assertEquals("NON_UNIQUE", metaData.getColumnName(4)); + assertEquals(Types.BOOLEAN, metaData.getColumnType(4)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(4)); + + assertEquals("TYPE", metaData.getColumnName(7)); + assertEquals(Types.BIGINT, metaData.getColumnType(7)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(7)); + + assertEquals("CARDINALITY", metaData.getColumnName(11)); + assertEquals(Types.BIGINT, metaData.getColumnType(11)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(11)); + } + } + + @Test + public void testDefineGetTablePrivilegesSchema() { + Schema schema = dbMetadata.defineGetTablePrivilegesSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Schema should have 7 fields", 7, fields.size()); + + assertEquals("TABLE_CAT", fields.get(0).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(0).getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get(0).getMode()); + + assertEquals("TABLE_NAME", fields.get(2).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(2).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(2).getMode()); + + assertEquals("GRANTEE", fields.get(4).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(4).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(4).getMode()); + + assertEquals("PRIVILEGE", fields.get(5).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(5).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(5).getMode()); + + assertEquals("IS_GRANTABLE", fields.get(6).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(6).getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get(6).getMode()); + } + + @Test + public void testGetTablePrivileges_ReturnsEmptyResultSetWithCorrectMetadata() + throws SQLException { + try (ResultSet rs = dbMetadata.getTablePrivileges("testCat", "testSchema%", "testTable%")) { + assertNotNull("ResultSet should not be null", rs); + assertFalse("ResultSet should be empty", rs.next()); + + ResultSetMetaData metaData = rs.getMetaData(); + assertEquals("ResultSetMetaData should have 7 columns", 7, metaData.getColumnCount()); + + assertEquals("TABLE_CAT", metaData.getColumnName(1)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(1)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(1)); + + assertEquals("TABLE_NAME", metaData.getColumnName(3)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(3)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(3)); + + assertEquals("GRANTEE", metaData.getColumnName(5)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(5)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(5)); + + assertEquals("PRIVILEGE", metaData.getColumnName(6)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(6)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(6)); + + assertEquals("IS_GRANTABLE", metaData.getColumnName(7)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(7)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(7)); + } + } + + @Test + public void testDefineGetColumnPrivilegesSchema() { + Schema schema = dbMetadata.defineGetColumnPrivilegesSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Schema should have 8 fields", 8, fields.size()); + + assertEquals("TABLE_SCHEM", fields.get(1).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(1).getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get(1).getMode()); + + assertEquals("COLUMN_NAME", fields.get(3).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(3).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(3).getMode()); + + assertEquals("GRANTOR", fields.get(4).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(4).getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get(4).getMode()); + + assertEquals("PRIVILEGE", fields.get(6).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(6).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(6).getMode()); + + assertEquals("IS_GRANTABLE", fields.get(7).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(7).getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get(7).getMode()); + } + + @Test + public void testGetColumnPrivileges_ReturnsEmptyResultSetWithCorrectMetadata() + throws SQLException { + try (ResultSet rs = + dbMetadata.getColumnPrivileges("testCat", "testSchema", "testTable", "testCol%")) { + assertNotNull("ResultSet should not be null", rs); + assertFalse("ResultSet should be empty", rs.next()); + + ResultSetMetaData metaData = rs.getMetaData(); + assertEquals("ResultSetMetaData should have 8 columns", 8, metaData.getColumnCount()); + + assertEquals("TABLE_SCHEM", metaData.getColumnName(2)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(2)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(2)); + + assertEquals("COLUMN_NAME", metaData.getColumnName(4)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(4)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(4)); + + assertEquals("GRANTOR", metaData.getColumnName(5)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(5)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(5)); + + assertEquals("PRIVILEGE", metaData.getColumnName(7)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(7)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(7)); + + assertEquals("IS_GRANTABLE", metaData.getColumnName(8)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(8)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(8)); + } + } + + @Test + public void testDefineGetVersionColumnsSchema() { + Schema schema = dbMetadata.defineGetVersionColumnsSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Schema should have 8 fields", 8, fields.size()); + + assertEquals("SCOPE", fields.get(0).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(0).getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get(0).getMode()); + + assertEquals("COLUMN_NAME", fields.get(1).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(1).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(1).getMode()); + + assertEquals("DATA_TYPE", fields.get(2).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(2).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(2).getMode()); + + assertEquals("BUFFER_LENGTH", fields.get(5).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(5).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(5).getMode()); + + assertEquals("PSEUDO_COLUMN", fields.get(7).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(7).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(7).getMode()); + } + + @Test + public void testGetVersionColumns_ReturnsEmptyResultSetWithCorrectMetadata() throws SQLException { + try (ResultSet rs = dbMetadata.getVersionColumns("testCat", "testSchema", "testTable")) { + assertNotNull("ResultSet should not be null", rs); + assertFalse("ResultSet should be empty", rs.next()); + + ResultSetMetaData metaData = rs.getMetaData(); + assertEquals("ResultSetMetaData should have 8 columns", 8, metaData.getColumnCount()); + + assertEquals("SCOPE", metaData.getColumnName(1)); + assertEquals(Types.BIGINT, metaData.getColumnType(1)); + assertEquals(ResultSetMetaData.columnNullable, metaData.isNullable(1)); + + assertEquals("COLUMN_NAME", metaData.getColumnName(2)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(2)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(2)); + + assertEquals("DATA_TYPE", metaData.getColumnName(3)); + assertEquals(Types.BIGINT, metaData.getColumnType(3)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(3)); + + assertEquals("BUFFER_LENGTH", metaData.getColumnName(6)); + assertEquals(Types.BIGINT, metaData.getColumnType(6)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(6)); + + assertEquals("PSEUDO_COLUMN", metaData.getColumnName(8)); + assertEquals(Types.BIGINT, metaData.getColumnType(8)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(8)); + } + } + + @Test + public void testDefineGetPseudoColumnsSchema() { + Schema schema = dbMetadata.defineGetPseudoColumnsSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Schema should have 12 fields", 12, fields.size()); + + assertEquals("TABLE_NAME", fields.get(2).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(2).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(2).getMode()); + + assertEquals("COLUMN_NAME", fields.get(3).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(3).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(3).getMode()); + + assertEquals("DATA_TYPE", fields.get(4).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(4).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(4).getMode()); + + assertEquals("COLUMN_SIZE", fields.get(5).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(5).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(5).getMode()); + + assertEquals("COLUMN_USAGE", fields.get(8).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(8).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(8).getMode()); + + assertEquals("IS_NULLABLE", fields.get(11).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(11).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(11).getMode()); + } + + @Test + public void testGetPseudoColumns_ReturnsEmptyResultSet() throws SQLException { + try (ResultSet rs = dbMetadata.getPseudoColumns("testCat", "testSchema%", "testTable%", "%")) { + assertNotNull("ResultSet should not be null", rs); + assertFalse("ResultSet should be empty", rs.next()); + + ResultSetMetaData metaData = rs.getMetaData(); + assertEquals("ResultSetMetaData should have 12 columns", 12, metaData.getColumnCount()); + + assertEquals("TABLE_NAME", metaData.getColumnName(3)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(3)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(3)); + + assertEquals("COLUMN_NAME", metaData.getColumnName(4)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(4)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(4)); + + assertEquals("DATA_TYPE", metaData.getColumnName(5)); + assertEquals(Types.BIGINT, metaData.getColumnType(5)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(5)); + + assertEquals("COLUMN_SIZE", metaData.getColumnName(6)); + assertEquals(Types.BIGINT, metaData.getColumnType(6)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(6)); + + assertEquals("COLUMN_USAGE", metaData.getColumnName(9)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(9)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(9)); + + assertEquals("IS_NULLABLE", metaData.getColumnName(12)); + assertEquals(Types.NVARCHAR, metaData.getColumnType(12)); + assertEquals(ResultSetMetaData.columnNoNulls, metaData.isNullable(12)); + } + } + + @Test + public void testDefineGetFunctionsSchema() { + Schema schema = dbMetadata.defineGetFunctionsSchema(); + assertNotNull(schema); + FieldList fields = schema.getFields(); + assertEquals(6, fields.size()); + + Field funcCat = fields.get("FUNCTION_CAT"); + assertEquals("FUNCTION_CAT", funcCat.getName()); + assertEquals(StandardSQLTypeName.STRING, funcCat.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, funcCat.getMode()); + + Field funcSchem = fields.get("FUNCTION_SCHEM"); + assertEquals("FUNCTION_SCHEM", funcSchem.getName()); + assertEquals(StandardSQLTypeName.STRING, funcSchem.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, funcSchem.getMode()); + + Field funcName = fields.get("FUNCTION_NAME"); + assertEquals("FUNCTION_NAME", funcName.getName()); + assertEquals(StandardSQLTypeName.STRING, funcName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, funcName.getMode()); + + Field remarks = fields.get("REMARKS"); + assertEquals("REMARKS", remarks.getName()); + assertEquals(StandardSQLTypeName.STRING, remarks.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, remarks.getMode()); + + Field funcType = fields.get("FUNCTION_TYPE"); + assertEquals("FUNCTION_TYPE", funcType.getName()); + assertEquals(StandardSQLTypeName.INT64, funcType.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, funcType.getMode()); + + Field specificName = fields.get("SPECIFIC_NAME"); + assertEquals("SPECIFIC_NAME", specificName.getName()); + assertEquals(StandardSQLTypeName.STRING, specificName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, specificName.getMode()); + } + + @Test + public void testProcessFunctionInfo_ScalarFunction() { + Schema resultSchema = dbMetadata.defineGetFunctionsSchema(); + FieldList resultSchemaFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + + String catalog = "proj-func"; + String schema = "dataset_func"; + String name = "my_scalar_func"; + String description = "A test scalar function"; + + Routine routine = mockBigQueryRoutine(catalog, schema, name, "SCALAR_FUNCTION", description); + + dbMetadata.processFunctionInfo(routine, collectedResults, resultSchemaFields); + + assertEquals(1, collectedResults.size()); + FieldValueList row = collectedResults.get(0); + assertNotNull(row); + assertEquals(6, row.size()); + assertEquals(catalog, row.get("FUNCTION_CAT").getStringValue()); + assertEquals(schema, row.get("FUNCTION_SCHEM").getStringValue()); + assertEquals(name, row.get("FUNCTION_NAME").getStringValue()); + assertEquals(description, row.get("REMARKS").getStringValue()); + assertEquals( + String.valueOf(DatabaseMetaData.functionResultUnknown), + row.get("FUNCTION_TYPE").getStringValue()); + assertEquals(name, row.get("SPECIFIC_NAME").getStringValue()); + } + + @Test + public void testProcessFunctionInfo_TableFunction() { + Schema resultSchema = dbMetadata.defineGetFunctionsSchema(); + FieldList resultSchemaFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + + String catalog = "proj-func"; + String schema = "dataset_func"; + String name = "my_table_func"; + String description = "A test Table function"; + + Routine routine = mockBigQueryRoutine(catalog, schema, name, "TABLE_FUNCTION", description); + + dbMetadata.processFunctionInfo(routine, collectedResults, resultSchemaFields); + + assertEquals(1, collectedResults.size()); + FieldValueList row = collectedResults.get(0); + assertNotNull(row); + assertEquals(6, row.size()); + assertEquals(catalog, row.get("FUNCTION_CAT").getStringValue()); + assertEquals(schema, row.get("FUNCTION_SCHEM").getStringValue()); + assertEquals(name, row.get("FUNCTION_NAME").getStringValue()); + assertEquals(description, row.get("REMARKS").getStringValue()); + assertEquals( + String.valueOf(DatabaseMetaData.functionReturnsTable), + row.get("FUNCTION_TYPE").getStringValue()); + assertEquals(name, row.get("SPECIFIC_NAME").getStringValue()); + } + + private FieldValueList createFunctionRow( + String cat, + String schem, + String name, + String specName, + int funcType, + FieldList schemaFields) { + List values = new ArrayList<>(); + values.add(dbMetadata.createStringFieldValue(cat)); // FUNCTION_CAT + values.add(dbMetadata.createStringFieldValue(schem)); // FUNCTION_SCHEM + values.add(dbMetadata.createStringFieldValue(name)); // FUNCTION_NAME + values.add(dbMetadata.createStringFieldValue("Remark for " + name)); // REMARKS + values.add(dbMetadata.createLongFieldValue((long) funcType)); // FUNCTION_TYPE + values.add(dbMetadata.createStringFieldValue(specName)); // SPECIFIC_NAME + return FieldValueList.of(values, schemaFields); + } + + @Test + public void testSortResults_Functions() { + Schema resultSchema = dbMetadata.defineGetFunctionsSchema(); + FieldList schemaFields = resultSchema.getFields(); + List results = new ArrayList<>(); + + // Add rows in unsorted order + results.add( + createFunctionRow( + "cat_b", + "sch_c", + "func_1", + "func_1_spec", + DatabaseMetaData.functionResultUnknown, + schemaFields)); + results.add( + createFunctionRow( + "cat_a", + "sch_z", + "func_alpha", + "func_alpha_spec", + DatabaseMetaData.functionReturnsTable, + schemaFields)); + results.add( + createFunctionRow( + "cat_a", + "sch_z", + "func_beta", + "func_beta_spec", + DatabaseMetaData.functionResultUnknown, + schemaFields)); + results.add( + createFunctionRow( + null, + "sch_y", + "func_gamma", + "func_gamma_spec", + DatabaseMetaData.functionReturnsTable, + schemaFields)); + results.add( + createFunctionRow( + "cat_a", + null, + "func_delta", + "func_delta_spec", + DatabaseMetaData.functionResultUnknown, + schemaFields)); + results.add( + createFunctionRow( + "cat_a", + "sch_z", + "func_alpha", + "func_alpha_spec_older", + DatabaseMetaData.functionReturnsTable, + schemaFields)); + + Comparator comparator = dbMetadata.defineGetFunctionsComparator(schemaFields); + dbMetadata.sortResults(results, comparator, "getFunctions", dbMetadata.LOG); + + // Expected Order: Null Cat, then Cat A (Null Schem, then sch_z), then Cat B. Within that, Name, + // then Spec Name. + assertEquals(6, results.size()); + + // Check order based on the comparator (CAT, SCHEM, NAME, SPECIFIC_NAME) + assertEquals("func_gamma", results.get(0).get("FUNCTION_NAME").getStringValue()); // null cat + assertEquals( + "func_delta", results.get(1).get("FUNCTION_NAME").getStringValue()); // cat_a, null schem + assertEquals( + "func_alpha", + results.get(2).get("FUNCTION_NAME").getStringValue()); // cat_a, sch_z, alpha, spec + assertEquals( + "func_alpha", + results.get(3).get("FUNCTION_NAME").getStringValue()); // cat_a, sch_z, alpha, spec_older + assertEquals( + "func_beta", results.get(4).get("FUNCTION_NAME").getStringValue()); // cat_a, sch_z, beta + assertEquals("func_1", results.get(5).get("FUNCTION_NAME").getStringValue()); // cat_b + } + + @Test + public void testDefineGetTypeInfoSchema() { + Schema schema = dbMetadata.defineGetTypeInfoSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Schema should have 18 fields", 18, fields.size()); + + Field typeName = fields.get("TYPE_NAME"); + assertNotNull(typeName); + assertEquals("TYPE_NAME", typeName.getName()); + assertEquals(StandardSQLTypeName.STRING, typeName.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, typeName.getMode()); + + Field dataType = fields.get("DATA_TYPE"); + assertNotNull(dataType); + assertEquals("DATA_TYPE", dataType.getName()); + assertEquals(StandardSQLTypeName.INT64, dataType.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, dataType.getMode()); + + Field precision = fields.get("PRECISION"); + assertNotNull(precision); + assertEquals("PRECISION", precision.getName()); + assertEquals(StandardSQLTypeName.INT64, precision.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, precision.getMode()); + + Field caseSensitive = fields.get("CASE_SENSITIVE"); + assertNotNull(caseSensitive); + assertEquals("CASE_SENSITIVE", caseSensitive.getName()); + assertEquals(StandardSQLTypeName.BOOL, caseSensitive.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, caseSensitive.getMode()); + + Field numPrecRadix = fields.get("NUM_PREC_RADIX"); + assertNotNull(numPrecRadix); + assertEquals("NUM_PREC_RADIX", numPrecRadix.getName()); + assertEquals(StandardSQLTypeName.INT64, numPrecRadix.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, numPrecRadix.getMode()); + } + + @Test + public void testPrepareGetTypeInfoRows() { + Schema typeInfoSchema = dbMetadata.defineGetTypeInfoSchema(); + FieldList schemaFields = typeInfoSchema.getFields(); + List rows = dbMetadata.prepareGetTypeInfoRows(schemaFields); + + assertNotNull("Rows list should not be null", rows); + assertEquals("Should have 17 rows for 17 types", 17, rows.size()); + + // INT64 (should be BIGINT in JDBC) + Optional int64RowOpt = + rows.stream() + .filter(row -> "INT64".equals(row.get("TYPE_NAME").getStringValue())) + .findFirst(); + assertTrue("INT64 type info row should exist", int64RowOpt.isPresent()); + FieldValueList int64Row = int64RowOpt.get(); + assertEquals(String.valueOf(Types.BIGINT), int64Row.get("DATA_TYPE").getStringValue()); + assertEquals("19", int64Row.get("PRECISION").getStringValue()); + assertEquals( + String.valueOf(DatabaseMetaData.typeNullable), int64Row.get("NULLABLE").getStringValue()); + assertEquals("0", int64Row.get("CASE_SENSITIVE").getStringValue()); + assertEquals("10", int64Row.get("NUM_PREC_RADIX").getStringValue()); + + // BOOL (should be BOOLEAN in JDBC) + Optional boolRowOpt = + rows.stream() + .filter(row -> "BOOL".equals(row.get("TYPE_NAME").getStringValue())) + .findFirst(); + assertTrue("BOOL type info row should exist", boolRowOpt.isPresent()); + FieldValueList boolRow = boolRowOpt.get(); + assertEquals(String.valueOf(Types.BOOLEAN), boolRow.get("DATA_TYPE").getStringValue()); + assertEquals("1", boolRow.get("PRECISION").getStringValue()); + assertEquals( + String.valueOf(DatabaseMetaData.typeNullable), boolRow.get("NULLABLE").getStringValue()); + assertEquals("0", boolRow.get("CASE_SENSITIVE").getStringValue()); // false + assertTrue(boolRow.get("NUM_PREC_RADIX").isNull()); + + // STRING (should be NVARCHAR in JDBC) + Optional stringRowOpt = + rows.stream() + .filter(row -> "STRING".equals(row.get("TYPE_NAME").getStringValue())) + .findFirst(); + assertTrue("STRING type info row should exist", stringRowOpt.isPresent()); + FieldValueList stringRow = stringRowOpt.get(); + assertEquals(String.valueOf(Types.NVARCHAR), stringRow.get("DATA_TYPE").getStringValue()); + assertTrue(stringRow.get("PRECISION").isNull()); // Precision is null for STRING + assertEquals("'", stringRow.get("LITERAL_PREFIX").getStringValue()); + assertEquals("'", stringRow.get("LITERAL_SUFFIX").getStringValue()); + assertEquals("LENGTH", stringRow.get("CREATE_PARAMS").getStringValue()); + assertEquals( + String.valueOf(DatabaseMetaData.typeNullable), stringRow.get("NULLABLE").getStringValue()); + assertEquals("1", stringRow.get("CASE_SENSITIVE").getStringValue()); // true + assertTrue(stringRow.get("NUM_PREC_RADIX").isNull()); + } + + @Test + public void testGetTypeInfo() throws SQLException { + try (ResultSet rs = dbMetadata.getTypeInfo()) { + assertNotNull("ResultSet from getTypeInfo() should not be null", rs); + + ResultSetMetaData rsmd = rs.getMetaData(); + assertNotNull("ResultSetMetaData should not be null", rsmd); + assertEquals("Should have 18 columns", 18, rsmd.getColumnCount()); + assertEquals("TYPE_NAME", rsmd.getColumnName(1)); + assertEquals("DATA_TYPE", rsmd.getColumnName(2)); + assertEquals("PRECISION", rsmd.getColumnName(3)); + + List dataTypes = new ArrayList<>(); + int rowCount = 0; + while (rs.next()) { + rowCount++; + dataTypes.add(rs.getInt("DATA_TYPE")); + if ("INT64".equals(rs.getString("TYPE_NAME"))) { + assertEquals(Types.BIGINT, rs.getInt("DATA_TYPE")); + assertEquals(19, rs.getInt("PRECISION")); + } + } + assertEquals("Should have 17 rows for 17 types", 17, rowCount); + + // Verify sorting by DATA_TYPE + List sortedDataTypes = new ArrayList<>(dataTypes); + Collections.sort(sortedDataTypes); + assertEquals("Results should be sorted by DATA_TYPE", sortedDataTypes, dataTypes); + } + } + + @Test + public void testDefineGetFunctionColumnsSchema() { + Schema schema = dbMetadata.defineGetFunctionColumnsSchema(); + assertNotNull(schema); + FieldList fields = schema.getFields(); + assertEquals(17, fields.size()); + + assertEquals("FUNCTION_CAT", fields.get(0).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(0).getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, fields.get(0).getMode()); + + assertEquals("COLUMN_NAME", fields.get(3).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(3).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(3).getMode()); + + assertEquals("COLUMN_TYPE", fields.get(4).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(4).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(4).getMode()); + + assertEquals("ORDINAL_POSITION", fields.get(14).getName()); + assertEquals(StandardSQLTypeName.INT64, fields.get(14).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(14).getMode()); + + assertEquals("SPECIFIC_NAME", fields.get(16).getName()); + assertEquals(StandardSQLTypeName.STRING, fields.get(16).getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, fields.get(16).getMode()); + } + + @Test + public void testCreateFunctionColumnRow() { + StandardSQLDataType stringType = mockStandardSQLDataType(StandardSQLTypeName.STRING); + List row = + dbMetadata.createFunctionColumnRow( + "cat", + "sch", + "func", + "func_spec", + "param_in", + DatabaseMetaData.functionColumnIn, + stringType, + 1); + + assertEquals(17, row.size()); + assertEquals("cat", row.get(0).getStringValue()); + assertEquals("sch", row.get(1).getStringValue()); + assertEquals("func", row.get(2).getStringValue()); + assertEquals("param_in", row.get(3).getStringValue()); + assertEquals(String.valueOf(DatabaseMetaData.functionColumnIn), row.get(4).getStringValue()); + assertEquals(String.valueOf(Types.NVARCHAR), row.get(5).getStringValue()); // DATA_TYPE + assertEquals("NVARCHAR", row.get(6).getStringValue()); // TYPE_NAME + assertTrue(row.get(7).isNull()); // PRECISION + assertTrue(row.get(8).isNull()); // LENGTH + assertTrue(row.get(9).isNull()); // SCALE + assertTrue(row.get(10).isNull()); // RADIX + assertEquals( + String.valueOf(DatabaseMetaData.functionNullableUnknown), + row.get(11).getStringValue()); // NULLABLE + assertTrue(row.get(12).isNull()); // REMARKS + assertTrue(row.get(13).isNull()); // CHAR_OCTET_LENGTH (should be columnSize) + assertEquals("1", row.get(14).getStringValue()); // ORDINAL_POSITION + assertEquals("", row.get(15).getStringValue()); // IS_NULLABLE + assertEquals("func_spec", row.get(16).getStringValue()); // SPECIFIC_NAME + } + + @Test + public void testProcessFunctionParametersAndReturnValue_ScalarFunctionWithArgs() { + Schema resultSchema = dbMetadata.defineGetFunctionColumnsSchema(); + FieldList resultFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + + RoutineArgument arg1 = mockRoutineArgument("in_str", StandardSQLTypeName.STRING, "IN"); + RoutineArgument arg2 = mockRoutineArgument("in_int", StandardSQLTypeName.INT64, "IN"); + Routine scalarFunc = + mockBigQueryRoutineWithArgs( + "cat", "ds", "my_scalar", "SCALAR_FUNCTION", "desc", Arrays.asList(arg1, arg2)); + when(scalarFunc.getReturnTableType()).thenReturn(null); // No return table for scalar + + dbMetadata.processFunctionParametersAndReturnValue( + scalarFunc, null, collectedResults, resultFields); + + assertEquals(2, collectedResults.size()); + // First argument + assertEquals("in_str", collectedResults.get(0).get("COLUMN_NAME").getStringValue()); + assertEquals( + String.valueOf(DatabaseMetaData.functionColumnIn), + collectedResults.get(0).get("COLUMN_TYPE").getStringValue()); + assertEquals("1", collectedResults.get(0).get("ORDINAL_POSITION").getStringValue()); + // Second argument + assertEquals("in_int", collectedResults.get(1).get("COLUMN_NAME").getStringValue()); + assertEquals( + String.valueOf(DatabaseMetaData.functionColumnIn), + collectedResults.get(1).get("COLUMN_TYPE").getStringValue()); + assertEquals("2", collectedResults.get(1).get("ORDINAL_POSITION").getStringValue()); + } + + @Test + public void testProcessFunctionParametersAndReturnValue_TableFunctionWithReturnTable() { + Schema resultSchema = dbMetadata.defineGetFunctionColumnsSchema(); + FieldList resultFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + + StandardSQLField returnCol1 = mockStandardSQLField("out_id", StandardSQLTypeName.INT64); + StandardSQLField returnCol2 = mockStandardSQLField("out_val", StandardSQLTypeName.STRING); + StandardSQLTableType returnTable = + mockStandardSQLTableType(Arrays.asList(returnCol1, returnCol2)); + + Routine tableFunc = + mockBigQueryRoutineWithArgs( + "cat", "ds", "my_table_func", "TABLE_FUNCTION", "desc", Collections.emptyList()); + when(tableFunc.getReturnTableType()).thenReturn(returnTable); + + dbMetadata.processFunctionParametersAndReturnValue( + tableFunc, null, collectedResults, resultFields); + + assertEquals(2, collectedResults.size()); + // First return column + assertEquals("out_id", collectedResults.get(0).get("COLUMN_NAME").getStringValue()); + assertEquals( + String.valueOf(DatabaseMetaData.functionColumnResult), + collectedResults.get(0).get("COLUMN_TYPE").getStringValue()); + assertEquals("1", collectedResults.get(0).get("ORDINAL_POSITION").getStringValue()); + // Second return column + assertEquals("out_val", collectedResults.get(1).get("COLUMN_NAME").getStringValue()); + assertEquals( + String.valueOf(DatabaseMetaData.functionColumnResult), + collectedResults.get(1).get("COLUMN_TYPE").getStringValue()); + assertEquals("2", collectedResults.get(1).get("ORDINAL_POSITION").getStringValue()); + } + + @Test + public void testProcessFunctionParametersAndReturnValue_ColumnNameFilter() { + Schema resultSchema = dbMetadata.defineGetFunctionColumnsSchema(); + FieldList resultFields = resultSchema.getFields(); + List collectedResults = Collections.synchronizedList(new ArrayList<>()); + Pattern columnNamePattern = Pattern.compile("id_.*"); // Match columns starting with "id_" + + RoutineArgument arg1 = mockRoutineArgument("id_arg", StandardSQLTypeName.INT64, "IN"); + RoutineArgument arg2 = mockRoutineArgument("name_arg", StandardSQLTypeName.STRING, "IN"); + StandardSQLField returnCol1 = mockStandardSQLField("id_return", StandardSQLTypeName.BOOL); + StandardSQLField returnCol2 = mockStandardSQLField("value_return", StandardSQLTypeName.FLOAT64); + StandardSQLTableType returnTable = + mockStandardSQLTableType(Arrays.asList(returnCol1, returnCol2)); + + Routine tableFunc = + mockBigQueryRoutineWithArgs( + "cat", "ds", "filter_func", "TABLE_FUNCTION", "desc", Arrays.asList(arg1, arg2)); + when(tableFunc.getReturnTableType()).thenReturn(returnTable); + + dbMetadata.processFunctionParametersAndReturnValue( + tableFunc, columnNamePattern, collectedResults, resultFields); + + assertEquals(2, collectedResults.size()); // Should match id_arg and id_return + assertEquals("id_return", collectedResults.get(0).get("COLUMN_NAME").getStringValue()); + assertEquals("id_arg", collectedResults.get(1).get("COLUMN_NAME").getStringValue()); + } + + @Test + public void testDefineGetClientInfoPropertiesSchema() { + Schema schema = dbMetadata.defineGetClientInfoPropertiesSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Schema should have 4 fields", 4, fields.size()); + + Field nameField = fields.get("NAME"); + assertNotNull(nameField); + assertEquals("NAME", nameField.getName()); + assertEquals(StandardSQLTypeName.STRING, nameField.getType().getStandardType()); + assertEquals(Field.Mode.REQUIRED, nameField.getMode()); + + Field maxLenField = fields.get("MAX_LEN"); + assertNotNull(maxLenField); + assertEquals("MAX_LEN", maxLenField.getName()); + assertEquals(StandardSQLTypeName.INT64, maxLenField.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, maxLenField.getMode()); + + Field defaultValueField = fields.get("DEFAULT_VALUE"); + assertNotNull(defaultValueField); + assertEquals("DEFAULT_VALUE", defaultValueField.getName()); + assertEquals(StandardSQLTypeName.STRING, defaultValueField.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, defaultValueField.getMode()); + + Field descriptionField = fields.get("DESCRIPTION"); + assertNotNull(descriptionField); + assertEquals("DESCRIPTION", descriptionField.getName()); + assertEquals(StandardSQLTypeName.STRING, descriptionField.getType().getStandardType()); + assertEquals(Field.Mode.NULLABLE, descriptionField.getMode()); + } + + @Test + public void testGetClientInfoProperties() throws SQLException { + try (ResultSet rs = dbMetadata.getClientInfoProperties()) { + assertNotNull("ResultSet from getClientInfoProperties() should not be null", rs); + + ResultSetMetaData rsmd = rs.getMetaData(); + assertNotNull("ResultSetMetaData should not be null", rsmd); + assertEquals("Should have 4 columns", 4, rsmd.getColumnCount()); + assertEquals("NAME", rsmd.getColumnName(1)); + assertEquals(Types.NVARCHAR, rsmd.getColumnType(1)); + assertEquals("MAX_LEN", rsmd.getColumnName(2)); + assertEquals(Types.BIGINT, rsmd.getColumnType(2)); + assertEquals("DEFAULT_VALUE", rsmd.getColumnName(3)); + assertEquals(Types.NVARCHAR, rsmd.getColumnType(3)); + assertEquals("DESCRIPTION", rsmd.getColumnName(4)); + assertEquals(Types.NVARCHAR, rsmd.getColumnType(4)); + + List> actualRows = new ArrayList<>(); + while (rs.next()) { + Map row = new HashMap<>(); + row.put("NAME", rs.getString("NAME")); + row.put("MAX_LEN", rs.getLong("MAX_LEN")); + row.put("DEFAULT_VALUE", rs.getObject("DEFAULT_VALUE")); + row.put("DESCRIPTION", rs.getString("DESCRIPTION")); + actualRows.add(row); + } + + assertEquals("Should return 3 client info properties", 3, actualRows.size()); + + Map appNameRow = actualRows.get(0); + assertEquals("ApplicationName", appNameRow.get("NAME")); + assertEquals(25L, appNameRow.get("MAX_LEN")); + assertNull(appNameRow.get("DEFAULT_VALUE")); + assertEquals( + "The name of the application currently utilizing the connection.", + appNameRow.get("DESCRIPTION")); + + Map clientHostnameRow = actualRows.get(1); + assertEquals("ClientHostname", clientHostnameRow.get("NAME")); + + Map clientUserRow = actualRows.get(2); + assertEquals("ClientUser", clientUserRow.get("NAME")); + } + } + + @Test + public void testDefineGetCatalogsSchema() { + Schema schema = dbMetadata.defineGetCatalogsSchema(); + assertNotNull("Schema should not be null", schema); + FieldList fields = schema.getFields(); + assertEquals("Should have one column", 1, fields.size()); + + Field tableCatField = fields.get("TABLE_CAT"); + assertNotNull("TABLE_CAT field should exist", tableCatField); + assertEquals("Field name should be TABLE_CAT", "TABLE_CAT", tableCatField.getName()); + assertEquals( + "Field type should be STRING", + StandardSQLTypeName.STRING, + tableCatField.getType().getStandardType()); + assertEquals("Field mode should be REQUIRED", Field.Mode.REQUIRED, tableCatField.getMode()); + } + + @Test + public void testPrepareGetCatalogsRows() { + Schema catalogsSchema = dbMetadata.defineGetCatalogsSchema(); + FieldList schemaFields = catalogsSchema.getFields(); + + // Test with a valid catalog name + List testCatalogName = new ArrayList<>(); + testCatalogName.add("test_catalog"); + + List rowsWithCatalog = + dbMetadata.prepareGetCatalogsRows(schemaFields, testCatalogName); + + assertNotNull("Rows list should not be null when catalog name is provided", rowsWithCatalog); + assertEquals("Should have one row when a catalog name is provided", 1, rowsWithCatalog.size()); + FieldValueList row = rowsWithCatalog.get(0); + assertEquals("Row should have 1 field value", 1, row.size()); + assertFalse("FieldValue in row should not be SQL NULL", row.get(0).isNull()); + assertEquals( + "TABLE_CAT should match the provided catalog name", + testCatalogName.get(0), + row.get(0).getStringValue()); + + // Test with empty catalog name list + List testEmptyCatalogList = new ArrayList<>(); + List rowsWithNullCatalog = + dbMetadata.prepareGetCatalogsRows(schemaFields, testEmptyCatalogList); + assertNotNull("Rows list should not be null when catalog name is null", rowsWithNullCatalog); + assertTrue("Should have zero rows when catalog name is null", rowsWithNullCatalog.isEmpty()); + } + + @Test + public void testGetSchemas_NoArgs_DelegatesCorrectly() { + BigQueryDatabaseMetaData spiedDbMetadata = spy(dbMetadata); + ResultSet mockResultSet = mock(ResultSet.class); + doReturn(mockResultSet).when(spiedDbMetadata).getSchemas(null, null); + + ResultSet rs = spiedDbMetadata.getSchemas(); + + assertSame( + "The returned ResultSet should be the one from the two-argument method", mockResultSet, rs); + verify(spiedDbMetadata, times(1)).getSchemas(null, null); + } + + // Non-Resultset DatabaseMetadata tests + + @Test + public void testIdentifierQuoteString() { + String actual = dbMetadata.getIdentifierQuoteString(); + assertEquals(BigQueryDatabaseMetaData.GOOGLE_SQL_QUOTED_IDENTIFIER, actual); + } + + @Test + public void testSQLKeyWords() { + String actual = dbMetadata.getSQLKeywords(); + assertEquals(BigQueryDatabaseMetaData.GOOGLE_SQL_RESERVED_KEYWORDS, actual); + } + + @Test + public void testNumericFunctions() { + String actual = dbMetadata.getNumericFunctions(); + assertEquals(BigQueryDatabaseMetaData.GOOGLE_SQL_NUMERIC_FNS, actual); + } + + @Test + public void testStringFunctions() { + String actual = dbMetadata.getStringFunctions(); + assertEquals(BigQueryDatabaseMetaData.GOOGLE_SQL_STRING_FNS, actual); + } + + @Test + public void testTimeAndDateFunctions() { + String actual = dbMetadata.getTimeDateFunctions(); + assertEquals(BigQueryDatabaseMetaData.GOOGLE_SQL_TIME_DATE_FNS, actual); + } + + @Test + public void testSystemFunctions() { + String actual = dbMetadata.getSystemFunctions(); + assertNull(actual); + } + + @Test + public void testSearchStringEscape() { + String actual = dbMetadata.getSearchStringEscape(); + assertEquals(BigQueryDatabaseMetaData.GOOGLE_SQL_ESCAPE, actual); + } + + @Test + public void testExtraNameChars() { + String actual = dbMetadata.getExtraNameCharacters(); + assertNull(actual); + } + + @Test + public void testCatalogSeparator() { + String actual = dbMetadata.getCatalogSeparator(); + assertEquals(BigQueryDatabaseMetaData.GOOGLE_SQL_CATALOG_SEPARATOR, actual); + } + + @Test + public void testMaxCharLiteralLength() { + int actual = dbMetadata.getMaxCharLiteralLength(); + assertEquals(0, actual); + } + + @Test + public void testMaxBinaryLiteralLength() { + int actual = dbMetadata.getMaxBinaryLiteralLength(); + assertEquals(0, actual); + } + + @Test + public void testMaxColumnNameLength() { + int actual = dbMetadata.getMaxColumnNameLength(); + assertEquals(BigQueryDatabaseMetaData.GOOGLE_SQL_MAX_COL_NAME_LEN, actual); + } + + @Test + public void testMaxColumnsInTable() { + int actual = dbMetadata.getMaxColumnsInTable(); + assertEquals(BigQueryDatabaseMetaData.GOOGLE_SQL_MAX_COLS_PER_TABLE, actual); + } + + @Test + public void testMaxColumnsInSelect() { + int actual = dbMetadata.getMaxColumnsInSelect(); + assertEquals(0, actual); + } + + @Test + public void testMaxColumnsInGroupBy() { + int actual = dbMetadata.getMaxColumnsInGroupBy(); + assertEquals(0, actual); + } + + @Test + public void testMaxColumnsInOrderBy() { + int actual = dbMetadata.getMaxColumnsInOrderBy(); + assertEquals(0, actual); + } + + @Test + public void testMaxColumnsInIndex() { + int actual = dbMetadata.getMaxColumnsInIndex(); + assertEquals(0, actual); + } + + @Test + public void testSupportsResultSetHoldabilitySupported() { + assertTrue(dbMetadata.supportsResultSetHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT)); + } + + @Test + public void testSupportsResultSetHoldabilityNotSupported() { + assertFalse(dbMetadata.supportsResultSetHoldability(ResultSet.HOLD_CURSORS_OVER_COMMIT)); + } + + @Test + public void testSupportsResultSetHoldabilityInvalid() { + assertFalse(dbMetadata.supportsResultSetHoldability(-1)); + } + + @Test + public void testResultSetHoldability() { + int actual = dbMetadata.getResultSetHoldability(); + assertEquals(ResultSet.CLOSE_CURSORS_AT_COMMIT, actual); + } + + @Test + public void testDatabaseMajorVersion() { + int actual = dbMetadata.getDatabaseMajorVersion(); + assertEquals(2, actual); + } + + @Test + public void testDatabaseMinorVersion() { + int actual = dbMetadata.getDatabaseMinorVersion(); + assertEquals(0, actual); + } + + @Test + public void testAllProceduresAreCallable() throws SQLException { + assertFalse(dbMetadata.allProceduresAreCallable()); + } + + @Test + public void testAllTablesAreSelectable() throws SQLException { + assertTrue(dbMetadata.allTablesAreSelectable()); + } + + @Test + public void testGetDriverVersionInfoFromProperties() { + Properties props = new Properties(); + String expectedVersionString = "0.0.0"; + int expectedMajor = 0; + int expectedMinor = 0; + + try (InputStream input = + getClass().getResourceAsStream("/com/google/cloud/bigquery/jdbc/dependencies.properties")) { + if (input != null) { + props.load(input); + expectedVersionString = props.getProperty("version.jdbc"); + if (expectedVersionString != null) { + String[] parts = expectedVersionString.split("\\."); + expectedMajor = Integer.parseInt(parts[0]); + expectedMinor = Integer.parseInt(parts[1].replaceAll("[^0-9].*", "")); + } + } + } catch (IOException | NumberFormatException e) { + fail( + "Error reading or parsing dependencies.properties for testing driver version: " + + e.getMessage()); + } + assertEquals(expectedVersionString, dbMetadata.getDriverVersion()); + assertEquals(expectedMajor, dbMetadata.getDriverMajorVersion()); + assertEquals(expectedMinor, dbMetadata.getDriverMinorVersion()); + } + + @Test + public void testSupportsUnion() throws SQLException { + assertTrue(dbMetadata.supportsUnion()); + } + + @Test + public void testSupportsUnionAll() throws SQLException { + assertTrue(dbMetadata.supportsUnionAll()); + } + + @Test + public void testGetMaxConnections() throws SQLException { + assertEquals(0, dbMetadata.getMaxConnections()); + } + + @Test + public void testGetMaxCursorNameLength() throws SQLException { + assertEquals(0, dbMetadata.getMaxCursorNameLength()); + } + + @Test + public void testGetMaxIndexLength() throws SQLException { + assertEquals(0, dbMetadata.getMaxIndexLength()); + } + + @Test + public void testGetMaxSchemaNameLength() throws SQLException { + assertEquals(1024, dbMetadata.getMaxSchemaNameLength()); + } + + @Test + public void testGetMaxProcedureNameLength() throws SQLException { + assertEquals(256, dbMetadata.getMaxProcedureNameLength()); + } + + @Test + public void testGetMaxCatalogNameLength() throws SQLException { + assertEquals(30, dbMetadata.getMaxCatalogNameLength()); + } + + @Test + public void testGetMaxRowSize() throws SQLException { + assertEquals(0, dbMetadata.getMaxRowSize()); + } + + @Test + public void testDoesMaxRowSizeIncludeBlobs() { + assertFalse(dbMetadata.doesMaxRowSizeIncludeBlobs()); + } + + @Test + public void testGetMaxStatementLength() throws SQLException { + assertEquals(0, dbMetadata.getMaxStatementLength()); + } + + @Test + public void testGetMaxStatements() throws SQLException { + assertEquals(0, dbMetadata.getMaxStatements()); + } + + @Test + public void testGetMaxTableNameLength() throws SQLException { + assertEquals(1024, dbMetadata.getMaxTableNameLength()); + } + + @Test + public void testGetMaxTablesInSelect() throws SQLException { + assertEquals(1000, dbMetadata.getMaxTablesInSelect()); + } + + @Test + public void testGetDefaultTransactionIsolation() throws SQLException { + assertEquals(8, dbMetadata.getDefaultTransactionIsolation()); + } + + @Test + public void testSupportsResultSetType() throws SQLException { + assertTrue(dbMetadata.supportsResultSetType(ResultSet.TYPE_FORWARD_ONLY)); + assertFalse(dbMetadata.supportsResultSetType(ResultSet.TYPE_SCROLL_INSENSITIVE)); + assertFalse(dbMetadata.supportsResultSetType(ResultSet.TYPE_SCROLL_SENSITIVE)); + } + + @Test + public void testSupportsResultSetConcurrency() throws SQLException { + assertTrue( + dbMetadata.supportsResultSetConcurrency( + ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)); + assertFalse( + dbMetadata.supportsResultSetConcurrency( + ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE)); + assertFalse( + dbMetadata.supportsResultSetConcurrency( + ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY)); + assertFalse( + dbMetadata.supportsResultSetConcurrency( + ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE)); + } + + @Test + public void testGetSQLStateType() throws SQLException { + assertEquals(DatabaseMetaData.sqlStateSQL, dbMetadata.getSQLStateType()); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercionsTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercionsTest.java new file mode 100644 index 000000000000..d9cc0efb77cb --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercionsTest.java @@ -0,0 +1,221 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.BigQueryTypeCoercer.INSTANCE; +import static com.google.common.truth.Truth.assertThat; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.Arrays; +import java.util.Collection; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +@RunWith(Parameterized.class) +public class BigQueryDefaultCoercionsTest { + + private final BigQueryTypeCoercer bigQueryTypeCoercer; + + public BigQueryDefaultCoercionsTest(String label, BigQueryTypeCoercer bigQueryTypeCoercer) { + this.bigQueryTypeCoercer = bigQueryTypeCoercer; + } + + @Parameters(name = "{index}: {0}") + public static Collection data() { + return Arrays.asList( + new Object[][] { + {"default BigQueryTypeCoercer", INSTANCE}, + {"customizable BigQueryTypeCoercer", BigQueryTypeCoercer.builder().build()} + }); + } + + @Test + public void stringToBoolean() { + assertThat(bigQueryTypeCoercer.coerceTo(Boolean.class, "true")).isTrue(); + assertThat(bigQueryTypeCoercer.coerceTo(Boolean.class, "false")).isFalse(); + } + + @Test + public void stringToInteger() { + assertThat(bigQueryTypeCoercer.coerceTo(Integer.class, "3452148")).isEqualTo(3452148); + } + + @Test + public void stringToBigInteger() { + assertThat(bigQueryTypeCoercer.coerceTo(BigInteger.class, "2147483647456")) + .isEqualTo(new BigInteger("2147483647456")); + } + + @Test + public void stringToLong() { + assertThat(bigQueryTypeCoercer.coerceTo(Long.class, "2147483647456")) + .isEqualTo(Long.valueOf("2147483647456")); + } + + @Test + public void stringToDouble() { + assertThat(bigQueryTypeCoercer.coerceTo(Double.class, "2147483647456.56684593495")) + .isEqualTo(Double.valueOf("2147483647456.56684593495")); + } + + @Test + public void stringToBigDecimal() { + assertThat(bigQueryTypeCoercer.coerceTo(BigDecimal.class, "2147483647456.56684593495")) + .isEqualTo(new BigDecimal("2147483647456.56684593495")); + } + + @Test + public void booleanToString() { + assertThat(bigQueryTypeCoercer.coerceTo(String.class, true)).isEqualTo("true"); + assertThat(bigQueryTypeCoercer.coerceTo(String.class, false)).isEqualTo("false"); + } + + @Test + public void booleanToInteger() { + assertThat(bigQueryTypeCoercer.coerceTo(Integer.class, true)).isEqualTo(1); + assertThat(bigQueryTypeCoercer.coerceTo(Integer.class, false)).isEqualTo(0); + } + + @Test + public void longToInteger() { + assertThat(bigQueryTypeCoercer.coerceTo(Integer.class, 2147483647L)).isEqualTo(2147483647); + } + + @Test + public void longToShort() { + assertThat(bigQueryTypeCoercer.coerceTo(Short.class, 32000L)).isEqualTo((short) 32000); + } + + @Test + public void longToByte() { + assertThat(bigQueryTypeCoercer.coerceTo(Byte.class, 127L)).isEqualTo((byte) 127); + } + + @Test + public void longToDouble() { + assertThat(bigQueryTypeCoercer.coerceTo(Double.class, 2147483647456L)) + .isEqualTo(Double.valueOf("2147483647456")); + } + + @Test + public void longToString() { + assertThat(bigQueryTypeCoercer.coerceTo(String.class, 2147483647456L)) + .isEqualTo("2147483647456"); + } + + @Test + public void doubleToFloat() { + assertThat(bigQueryTypeCoercer.coerceTo(Float.class, Double.valueOf("4567.213245"))) + .isEqualTo(Float.valueOf("4567.213245")); + } + + @Test + public void doubleToLong() { + assertThat(bigQueryTypeCoercer.coerceTo(Long.class, Double.valueOf("2147483647456.213245"))) + .isEqualTo(2147483647456L); + } + + @Test + public void doubleToInteger() { + assertThat(bigQueryTypeCoercer.coerceTo(Integer.class, Double.valueOf("21474836.213245"))) + .isEqualTo(21474836); + } + + @Test + public void doubleToBigDecimal() { + assertThat(bigQueryTypeCoercer.coerceTo(BigDecimal.class, Double.valueOf("21474836.213245"))) + .isEqualTo(new BigDecimal("21474836.213245")); + } + + @Test + public void doubleToString() { + assertThat(bigQueryTypeCoercer.coerceTo(String.class, Double.valueOf("21474836.213245"))) + .isEqualTo("2.1474836213245E7"); + } + + @Test + public void floatToInteger() { + assertThat(bigQueryTypeCoercer.coerceTo(Integer.class, 62356.45f)).isEqualTo(62356); + } + + @Test + public void floatToDouble() { + assertThat(bigQueryTypeCoercer.coerceTo(Double.class, 62356.45f)) + .isEqualTo(Double.valueOf(62356.45f)); + } + + @Test + public void floatToString() { + assertThat(bigQueryTypeCoercer.coerceTo(String.class, 62356.45f)).isEqualTo("62356.45"); + } + + @Test + public void bigIntegerToLong() { + assertThat(bigQueryTypeCoercer.coerceTo(Long.class, new BigInteger("2147483647"))) + .isEqualTo(2147483647L); + } + + @Test + public void bigIntegerToBigDecimal() { + assertThat(bigQueryTypeCoercer.coerceTo(BigDecimal.class, new BigInteger("2147483647"))) + .isEqualTo(new BigDecimal("2147483647")); + } + + @Test + public void bigIntegerToString() { + assertThat(bigQueryTypeCoercer.coerceTo(String.class, new BigInteger("2147483647"))) + .isEqualTo("2147483647"); + } + + @Test + public void bigDecimalToDouble() { + assertThat(bigQueryTypeCoercer.coerceTo(Double.class, new BigDecimal("2147483647.74356"))) + .isEqualTo(2147483647.74356); + } + + @Test + public void bigDecimalToBigInteger() { + assertThat(bigQueryTypeCoercer.coerceTo(BigInteger.class, new BigDecimal("2147483647.74356"))) + .isEqualTo(new BigInteger("2147483647")); + } + + @Test + public void bigDecimalToInteger() { + assertThat(bigQueryTypeCoercer.coerceTo(Integer.class, new BigDecimal("2147483647.74356"))) + .isEqualTo(2147483647); + } + + @Test + public void bigDecimalToLong() { + assertThat(bigQueryTypeCoercer.coerceTo(Long.class, new BigDecimal("2147483647.74356"))) + .isEqualTo(2147483647L); + } + + @Test + public void bigDecimalToString() { + assertThat(bigQueryTypeCoercer.coerceTo(String.class, new BigDecimal("2147483647.74356"))) + .isEqualTo("2147483647.74356"); + } + + @Test + public void nullToBoolean() { + assertThat(bigQueryTypeCoercer.coerceTo(Boolean.class, null)).isFalse(); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDriverTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDriverTest.java new file mode 100644 index 000000000000..125de54dfa95 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDriverTest.java @@ -0,0 +1,97 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertThrows; + +import java.sql.Connection; +import java.sql.DriverPropertyInfo; +import java.sql.SQLException; +import java.util.Properties; +import java.util.logging.Logger; +import org.junit.Before; +import org.junit.Test; + +public class BigQueryDriverTest { + + static BigQueryDriver bigQueryDriver; + + @Before + public void setUp() { + bigQueryDriver = BigQueryDriver.getRegisteredDriver(); + } + + @Test + public void testInvalidURLDoesNotConnect() { + assertThrows(IllegalArgumentException.class, () -> bigQueryDriver.connect("badURL.com", null)); + } + + @Test + public void testValidURLDoesConnect() throws SQLException { + Connection connection = + bigQueryDriver.connect( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=redactedToken;OAuthClientId=redactedToken;" + + "OAuthClientSecret=redactedToken;", + new Properties()); + assertThat(connection.isClosed()).isFalse(); + } + + @Test + public void testInvalidURLInAcceptsURLReturnsFalse() throws SQLException { + assertThat(bigQueryDriver.acceptsURL("badURL.com")).isFalse(); + } + + @Test + public void testValidURLInAcceptsURLReturnsTrue() throws SQLException { + assertThat(bigQueryDriver.acceptsURL("jdbc:bigquery:https://google.com:8080;projectId=123456")) + .isTrue(); + } + + @Test + public void testGetPropertyInfoReturnsValidProperties() { + DriverPropertyInfo[] res = + bigQueryDriver.getPropertyInfo( + "jdbc:bigquery:https://google.com:8080;projectId=123456;OAuthType=3", new Properties()); + int i = 0; + for (BigQueryConnectionProperty prop : BigQueryJdbcUrlUtility.VALID_PROPERTIES) { + assertThat(res[i].name).isEqualTo(prop.getName()); + i++; + } + } + + @Test + public void testGetMajorVersionMatchesDriverMajorVersion() { + assertThat(bigQueryDriver.getMajorVersion()).isEqualTo(0); + } + + @Test + public void testGetMinorVersionMatchesDriverMinorVersion() { + assertThat(bigQueryDriver.getMinorVersion()).isEqualTo(1); + } + + @Test + public void testGetParentLoggerReturnsLogger() { + assertThat(bigQueryDriver.getParentLogger()).isInstanceOf(Logger.class); + } + + @Test + public void testJDBCCompliantReturnsFalse() { + assertThat(bigQueryDriver.jdbcCompliant()).isFalse(); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBaseTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBaseTest.java new file mode 100644 index 000000000000..616f3bab97b6 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBaseTest.java @@ -0,0 +1,82 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import com.google.cloud.bigquery.jdbc.utils.URIBuilder; + +public class BigQueryJdbcBaseTest { + + // This is a fake pkcs8 key generated specifically for unittests + protected static final String fake_pkcs8_key = + "-----BEGIN PRIVATE KEY-----\n" + + // + "MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAnt6w5AMZBvOecsJ9\n" + + // + "4TeVz+GpAtBnTqkxWfxLJykkvb+V/3IhXr5Zw40y47RdoRly/QDFJz3Ac+nmwCSP\n" + + // + "8QW3GQIDAQABAkBPmdrd1COFFSnN7F9wKg65QyMQ0uUAR8v/f2cUbwwGuhwdMuGZ\n" + + // + "DPwgVZySxFKort7TfPru6NzbACL3EFAl9y9RAiEA7XPq5Tu+LOw4/CZFABykguBV\n" + + // + "8rYC+F72+GqkhvlGhZUCIQCrR2/zGIKqJSTKfQhKOteP7cx5dWrumHYNuC5InOGC\n" + + // + "dQIgM6bzgcntJHh+LNtmRw/z+UQzbgiJvN1re7426+VtocECIE7ejFxicviqNfDP\n" + + // + "9ltIES8Dj152hRDtP589qoJhSy5pAiAJot/kBQD8yFYMU1X02oi+6f8QqXxcHwZX\n" + + // + "2wK1Zawz/A==\n" + + // + "-----END PRIVATE KEY-----"; + + protected static URIBuilder getBaseUri() { + return new URIBuilder("jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;"); + } + + protected static URIBuilder getBaseUri(int authType) { + return getBaseUri().append("OAuthType", authType); + } + + protected static URIBuilder getBaseUri(int authType, String projectId) { + return getBaseUri(authType).append("PROJECT_ID", projectId); + } + + protected static URIBuilder getUriOAuthServiceAccount() { + return getBaseUri() + .append("OAuthType", 0) + .append("OAuthServiceAcctEmail", "service@account") + .append("OAuthPvtKey", fake_pkcs8_key); + } + + protected static URIBuilder getUriOAuthUserAccount() { + return getBaseUri() + .append("OAuthType", 1) + .append("OAuthClientId", "client@id") + .append("OAuthClientSecret", "client_secret"); + } + + protected static URIBuilder getUriOAuthToken() { + return getBaseUri().append("OAuthType", 2).append("OAuthAccessToken", "RedactedToken"); + } + + protected static URIBuilder getUriOAuthApplicationDefault() { + return getBaseUri().append("OAuthType", 3); + } + + protected static URIBuilder getUriOAuthExternal() { + return getBaseUri().append("OAuthType", 4).append("OAuthPvtKey", fake_pkcs8_key); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtilityTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtilityTest.java new file mode 100644 index 000000000000..b7fc031621c5 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtilityTest.java @@ -0,0 +1,505 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import com.google.auth.oauth2.GoogleCredentials; +import com.google.auth.oauth2.ImpersonatedCredentials; +import com.google.auth.oauth2.UserAuthorizer; +import com.google.auth.oauth2.UserCredentials; +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Paths; +import java.security.PrivateKey; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +public class BigQueryJdbcOAuthUtilityTest extends BigQueryJdbcBaseTest { + + private static final int USER_AUTH_PORT = 53737; + private static final String EXPECTED_USER_AUTH_URL = + "https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=client_id&redirect_uri=http://localhost:" + + USER_AUTH_PORT + + "&scope=https://www.googleapis.com/auth/bigquery&state=test_state&access_type=offline&prompt=consent&login_hint=test_user&include_granted_scopes=true"; + + @Test + public void testParseOAuthPropsForAuthType0KeyfileOnly() { + Map result = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;OAuthType=0;" + + "OAuthPvtKeyPath=C:\\SecureFiles\\ServiceKeyFile.p12;", + null); + + assertThat(result.get("OAuthType")).isEqualTo("GOOGLE_SERVICE_ACCOUNT"); + assertThat(result.get("OAuthPvtKeyPath")).isEqualTo("C:\\SecureFiles\\ServiceKeyFile.p12"); + } + + @Test + public void testParseOAuthPropsForAuthType0ViaEmail() { + Map result = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;OAuthType=0;" + + "OAuthServiceAcctEmail=dummytest@dummytest.iam.gserviceaccount.com;" + + "OAuthPvtKey=RedactedKey;", + null); + + assertThat(result.get("OAuthType")).isEqualTo("GOOGLE_SERVICE_ACCOUNT"); + assertThat(result.get("OAuthServiceAcctEmail")) + .isEqualTo("dummytest@dummytest.iam.gserviceaccount.com"); + assertThat(result.get("OAuthPvtKey")).isEqualTo("RedactedKey"); + } + + @Test + public void testInvalidTokenUriForAuthType0() { + String connectionString = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;OAuthType=0;" + + "OAuthServiceAcctEmail=dummytest@dummytest.iam.gserviceaccount.com;" + + "OAuthPvtKey=" + + fake_pkcs8_key + + ";" + + "EndpointOverrides=OAuth2=brokenuri{};"; + Map oauthProperties = + BigQueryJdbcOAuthUtility.parseOAuthProperties(connectionString, null); + Map overrideProperties = + BigQueryJdbcUrlUtility.parseOverrideProperties(connectionString, null); + + try { + BigQueryJdbcOAuthUtility.getCredentials(oauthProperties, overrideProperties, null); + Assert.fail(); + } catch (BigQueryJdbcRuntimeException e) { + assertThat(e.getMessage()).contains("java.net.URISyntaxException"); + } + } + + @Test + public void testParseOAuthPropsForAuthType2() { + Map result = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=RedactedToken;", + null); + + assertThat(result.get("OAuthType")).isEqualTo("PRE_GENERATED_TOKEN"); + assertThat(result.get("OAuthAccessToken")).isEqualTo("RedactedToken"); + } + + @Test + public void testParseOAuthPropsForAuthType3() { + Map result = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;ProjectId=MyBigQueryProject;", + null); + + assertThat(result.get("OAuthType")).isEqualTo("APPLICATION_DEFAULT_CREDENTIALS"); + } + + @Test + public void testParseOAuthPropsForDefaultAuthType() { + Map result = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;OAuthType=3", + null); + + assertThat(result.get("OAuthType")).isEqualTo("APPLICATION_DEFAULT_CREDENTIALS"); + } + + @Test + public void testGetCredentialsForPreGeneratedToken() { + Map authProperties = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=RedactedToken;", + null); + + GoogleCredentials credentials = + BigQueryJdbcOAuthUtility.getCredentials(authProperties, Collections.EMPTY_MAP, null); + assertThat(credentials).isNotNull(); + } + + @Test + public void testGetCredentialsForPreGeneratedTokenTPC() throws IOException { + Map authProperties = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=RedactedToken;" + + "universeDomain=testDomain;", + null); + Map stringStringMap = new HashMap<>(); + stringStringMap.put( + BigQueryJdbcUrlUtility.UNIVERSE_DOMAIN_OVERRIDE_PROPERTY_NAME, "testDomain"); + Map overrideProperties = new HashMap<>(stringStringMap); + + GoogleCredentials credentials = + BigQueryJdbcOAuthUtility.getCredentials(authProperties, overrideProperties, null); + assertThat(credentials.getUniverseDomain()).isEqualTo("testDomain"); + } + + @Test + @Ignore // For running locally only similar to our other JDBC tests. + public void testGetCredentialsForApplicationDefault() { + Map authProperties = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;ProjectId=MyBigQueryProject;", + null); + + GoogleCredentials credentials = + BigQueryJdbcOAuthUtility.getCredentials(authProperties, null, null); + assertThat(credentials).isNotNull(); + } + + @Test + public void testParseOAuthPropsForUserAuth() { + Map authProperties = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=1;ProjectId=MyBigQueryProject;" + + "OAuthClientId=client;OAuthClientSecret=secret;", + null); + + assertThat(authProperties.get("OAuthType")).isEqualTo("GOOGLE_USER_ACCOUNT"); + assertThat(authProperties.get("OAuthClientId")).isEqualTo("client"); + assertThat(authProperties.get("OAuthClientSecret")).isEqualTo("secret"); + } + + @Test + public void testGenerateUserAuthURL() { + try { + HashMap authProperties = new HashMap<>(); + authProperties.put(BigQueryJdbcUrlUtility.OAUTH_CLIENT_ID_PROPERTY_NAME, "client_id"); + authProperties.put(BigQueryJdbcUrlUtility.OAUTH_CLIENT_SECRET_PROPERTY_NAME, "client_secret"); + + UserAuthorizer userAuthorizer = + BigQueryJdbcOAuthUtility.getUserAuthorizer( + authProperties, new HashMap(), USER_AUTH_PORT, null); + + String userId = "test_user"; + String state = "test_state"; + URI baseURI = URI.create("http://example.com/foo"); + + URL authURL = userAuthorizer.getAuthorizationUrl(userId, state, baseURI); + + assertThat(authURL.toString()).isEqualTo(EXPECTED_USER_AUTH_URL); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + @Test + public void testGenerateUserAuthURLOverrideOauthEndpoint() { + try { + + URI overrideTokenSeverURI = new URI("https://oauth2-gsprivateall.p.googleapis.com/token"); + String connectionString = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;OAuthType=1;" + + "OAuthClientId=client;OAuthClientSecret=secret;" + + "EndpointOverrides=OAuth2=" + + overrideTokenSeverURI + + ";"; + Map authProperties = + BigQueryJdbcOAuthUtility.parseOAuthProperties(connectionString, null); + Map overrideProperties = + BigQueryJdbcUrlUtility.parseOverrideProperties(connectionString, null); + + UserAuthorizer userAuthorizer = + BigQueryJdbcOAuthUtility.getUserAuthorizer( + authProperties, overrideProperties, USER_AUTH_PORT, null); + + assertThat(overrideTokenSeverURI).isEqualTo(userAuthorizer.toBuilder().getTokenServerUri()); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + @Test + public void testParseOAuthPropsForRefreshToken() { + Map authProperties = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;OAuthRefreshToken=token;" + + "OAuthClientId=client;OAuthClientSecret=secret;", + null); + + assertThat(authProperties.get("OAuthType")).isEqualTo("PRE_GENERATED_TOKEN"); + assertThat(authProperties.get("OAuthRefreshToken")).isEqualTo("token"); + assertThat(authProperties.get("OAuthClientId")).isEqualTo("client"); + assertThat(authProperties.get("OAuthClientSecret")).isEqualTo("secret"); + } + + @Test + public void testParseOverridePropsForRefreshTokenAuth() { + try { + + String connectionString = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;OAuthType=2;OAuthRefreshToken=token;" + + "OAuthClientId=client;OAuthClientSecret=secret;" + + "EndpointOverrides=Oauth2=https://oauth2-private.p.googleapis.com/token;"; + + Map authProperties = + BigQueryJdbcOAuthUtility.parseOAuthProperties(connectionString, null); + Map overrideProperties = + BigQueryJdbcUrlUtility.parseOverrideProperties(connectionString, null); + + UserCredentials userCredentials = + BigQueryJdbcOAuthUtility.getPreGeneratedRefreshTokenCredentials( + authProperties, overrideProperties, null); + + assertThat(userCredentials.toBuilder().getTokenServerUri()) + .isEqualTo(URI.create("https://oauth2-private.p.googleapis.com/token")); + + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } + } + + @Test + public void testParseBYOIDProps() { + Map result = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:433;OAuthType=4;" + + "ProjectId=MyBigQueryProject;" + + "BYOID_AudienceUri=//iam.googleapis.com/locations/global/workforcePools/pool-id/providers/provider-id;" + + "BYOID_PoolUserProject=workforceProjectNumber;" + + "BYOID_CredentialSource={\"file\": \"C:\\\\Token.txt\"};" + + "BYOID_SA_Impersonation_Uri=testSA;" + + "BYOID_SubjectTokenType=urn:ietf:params:oauth:tokentype:jwt;" + + "BYOID_TokenUri=https://testuri.com/v1/token", + null); + + assertThat(result.get("BYOID_AudienceUri")) + .isEqualTo( + "//iam.googleapis.com/locations/global/workforcePools/pool-id/providers/provider-id"); + assertThat(result.get("BYOID_PoolUserProject")).isEqualTo("workforceProjectNumber"); + assertThat(result.get("BYOID_CredentialSource")).isEqualTo("{\"file\": \"C:\\\\Token.txt\"}"); + assertThat(result.get("BYOID_SA_Impersonation_Uri")).isEqualTo("testSA"); + assertThat(result.get("BYOID_SubjectTokenType")) + .isEqualTo("urn:ietf:params:oauth:tokentype:jwt"); + assertThat(result.get("BYOID_TokenUri")).isEqualTo("https://testuri.com/v1/token"); + } + + @Test + public void testParseOAuthProperties_UserAccount_RequestDriveScopeEnabled() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=1;OAuthClientId=redactedClientId;OAuthClientSecret=redactedClientSecret;" + + "RequestGoogleDriveScope=1;"; + Map properties = + BigQueryJdbcOAuthUtility.parseOAuthProperties(url, this.getClass().getName()); + assertEquals( + String.valueOf(BigQueryJdbcOAuthUtility.AuthType.GOOGLE_USER_ACCOUNT), + properties.get(BigQueryJdbcUrlUtility.OAUTH_TYPE_PROPERTY_NAME)); + assertEquals( + "redactedClientId", properties.get(BigQueryJdbcUrlUtility.OAUTH_CLIENT_ID_PROPERTY_NAME)); + assertEquals( + "redactedClientSecret", + properties.get(BigQueryJdbcUrlUtility.OAUTH_CLIENT_SECRET_PROPERTY_NAME)); + assertEquals( + "1", properties.get(BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME)); + } + + @Test + public void testParseOAuthProperties_UserAccount_RequestDriveScopeDisabled() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=1;OAuthClientId=redactedClientId;OAuthClientSecret=redactedClientSecret;" + + "RequestGoogleDriveScope=0;"; + Map properties = + BigQueryJdbcOAuthUtility.parseOAuthProperties(url, this.getClass().getName()); + assertEquals( + "0", properties.get(BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME)); + } + + @Test + public void testParseOAuthProperties_UserAccount_RequestDriveScopeDefault() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=1;OAuthClientId=redactedClientId;OAuthClientSecret=redactedClientSecret;"; + Map properties = + BigQueryJdbcOAuthUtility.parseOAuthProperties(url, this.getClass().getName()); + assertEquals( + String.valueOf(BigQueryJdbcUrlUtility.DEFAULT_REQUEST_GOOGLE_DRIVE_SCOPE_VALUE), + properties.get(BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME)); + } + + @Test + public void testGetUserAuthorizer_WithDriveScope() throws URISyntaxException { + Map authProperties = new HashMap<>(); + authProperties.put(BigQueryJdbcUrlUtility.OAUTH_CLIENT_ID_PROPERTY_NAME, "redactedClientId"); + authProperties.put( + BigQueryJdbcUrlUtility.OAUTH_CLIENT_SECRET_PROPERTY_NAME, "redactedClientSecret"); + authProperties.put(BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME, "1"); + + UserAuthorizer authorizer = + BigQueryJdbcOAuthUtility.getUserAuthorizer( + authProperties, Collections.emptyMap(), 12345, this.getClass().getName()); + + assertTrue(authorizer.getScopes().contains("https://www.googleapis.com/auth/bigquery")); + assertTrue(authorizer.getScopes().contains("https://www.googleapis.com/auth/drive.readonly")); + assertEquals(2, authorizer.getScopes().size()); + } + + @Test + public void testGetUserAuthorizer_WithoutDriveScope() throws URISyntaxException { + Map authProperties = new HashMap<>(); + authProperties.put(BigQueryJdbcUrlUtility.OAUTH_CLIENT_ID_PROPERTY_NAME, "redactedClientId"); + authProperties.put( + BigQueryJdbcUrlUtility.OAUTH_CLIENT_SECRET_PROPERTY_NAME, "redactedClientSecret"); + authProperties.put(BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME, "0"); + + UserAuthorizer authorizer = + BigQueryJdbcOAuthUtility.getUserAuthorizer( + authProperties, Collections.emptyMap(), 12345, this.getClass().getName()); + assertTrue(authorizer.getScopes().contains("https://www.googleapis.com/auth/bigquery")); + assertFalse(authorizer.getScopes().contains("https://www.googleapis.com/auth/drive.readonly")); + assertEquals(1, authorizer.getScopes().size()); + } + + @Test + public void testGetUserAuthorizer_InvalidDriveScopeValue() throws URISyntaxException { + Map authProperties = new HashMap<>(); + authProperties.put(BigQueryJdbcUrlUtility.OAUTH_CLIENT_ID_PROPERTY_NAME, "redactedClientId"); + authProperties.put( + BigQueryJdbcUrlUtility.OAUTH_CLIENT_SECRET_PROPERTY_NAME, "redactedClientSecret"); + authProperties.put( + BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME, "invalid_value"); + UserAuthorizer authorizer = + BigQueryJdbcOAuthUtility.getUserAuthorizer( + authProperties, Collections.emptyMap(), 12345, this.getClass().getName()); + assertFalse(authorizer.getScopes().contains("https://www.googleapis.com/auth/drive.readonly")); + } + + @Test + public void testParseUserImpersonationDefault() { + String connectionUri = + getUriOAuthServiceAccount() + .append("ServiceAccountImpersonationEmail", "impersonated") + .toString(); + Map result = BigQueryJdbcOAuthUtility.parseOAuthProperties(connectionUri, ""); + assertEquals( + "impersonated", + result.get(BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_EMAIL_PROPERTY_NAME)); + assertEquals( + BigQueryJdbcUrlUtility.DEFAULT_OAUTH_SA_IMPERSONATION_SCOPES_VALUE, + result.get(BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_SCOPES_PROPERTY_NAME)); + assertEquals( + BigQueryJdbcUrlUtility.DEFAULT_OAUTH_SA_IMPERSONATION_TOKEN_LIFETIME_VALUE, + result.get(BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_TOKEN_LIFETIME_PROPERTY_NAME)); + } + + @Test + public void testParseUserImpersonationNonDefault() { + Map result = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + getUriOAuthServiceAccount() + .append("ServiceAccountImpersonationEmail", "impersonated") + .append("ServiceAccountImpersonationScopes", "scopes") + .append("ServiceAccountImpersonationTokenLifetime", 300) + .toString(), + ""); + assertEquals( + "impersonated", + result.get(BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_EMAIL_PROPERTY_NAME)); + assertEquals( + "scopes", result.get(BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_SCOPES_PROPERTY_NAME)); + assertEquals( + "300", + result.get(BigQueryJdbcUrlUtility.OAUTH_SA_IMPERSONATION_TOKEN_LIFETIME_PROPERTY_NAME)); + } + + @Test + public void testGetServiceAccountImpersonatedCredentials() { + Map authProperties = + BigQueryJdbcOAuthUtility.parseOAuthProperties( + getUriOAuthServiceAccount() + .append("ServiceAccountImpersonationEmail", "impersonated") + .toString(), + ""); + GoogleCredentials credentials = + BigQueryJdbcOAuthUtility.getCredentials(authProperties, Collections.EMPTY_MAP, null); + assertThat(credentials).isInstanceOf(ImpersonatedCredentials.class); + } + + @Test + public void testPrivateKeyFromPkcs8() { + PrivateKey pk = BigQueryJdbcOAuthUtility.privateKeyFromPkcs8(fake_pkcs8_key); + assertNotNull(pk); + } + + @Test + public void testPrivateKeyFromPkcs8_wrong() { + PrivateKey pk = BigQueryJdbcOAuthUtility.privateKeyFromPkcs8(""); + assertNull(pk); + } + + // Command to generate key: + // keytool -genkey -alias privatekey -keyalg RSA -keysize 2048 -storepass notasecret \ + // -keypass notasecret -storetype pkcs12 -keystore ./fake.p12 + @Test + public void testPrivateKeyFromP12File() { + URL resource = BigQueryJdbcOAuthUtilityTest.class.getResource("/fake.p12"); + try { + PrivateKey pk = + BigQueryJdbcOAuthUtility.privateKeyFromP12File( + Paths.get(resource.toURI()).toAbsolutePath().toString(), "notasecret"); + assertNotNull(pk); + } catch (Exception e) { + assertTrue(false); + } + } + + @Test + public void testPrivateKeyFromP12File_missing_file() { + PrivateKey pk = BigQueryJdbcOAuthUtility.privateKeyFromP12File("", ""); + assertNull(pk); + } + + @Test + public void testPrivateKeyFromP12File_wrong_password() { + URL resource = BigQueryJdbcOAuthUtilityTest.class.getResource("/fake.p12"); + try { + PrivateKey pk = + BigQueryJdbcOAuthUtility.privateKeyFromP12File( + Paths.get(resource.toURI()).toAbsolutePath().toString(), "fake"); + assertNull(pk); + } catch (Exception e) { + assertTrue(false); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameterTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameterTest.java new file mode 100644 index 000000000000..815759892b10 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameterTest.java @@ -0,0 +1,75 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static org.junit.Assert.assertEquals; + +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.jdbc.BigQueryParameterHandler.BigQueryStatementParameterType; +import org.junit.Test; + +public class BigQueryJdbcParameterTest { + + @Test + public void testSettersAndGetters() { + int expectedIndex = 3; + Object expectedValue = "String Object"; + Class expectedType = String.class; + StandardSQLTypeName expectedSqlType = StandardSQLTypeName.STRING; + String expectedParamName = "StringParameter"; + BigQueryStatementParameterType expectedParamType = BigQueryStatementParameterType.IN; + int expectedScale = -1; + + BigQueryJdbcParameter parameter = new BigQueryJdbcParameter(); + parameter.setIndex(3); + parameter.setValue("String Object"); + parameter.setType(String.class); + parameter.setSqlType(StandardSQLTypeName.STRING); + parameter.setParamName("StringParameter"); + parameter.setParamType(BigQueryStatementParameterType.IN); + parameter.setScale(-1); + + assertEquals(expectedIndex, parameter.getIndex()); + assertEquals(expectedValue, parameter.getValue()); + assertEquals(expectedType, parameter.getType()); + assertEquals(expectedSqlType, parameter.getSqlType()); + assertEquals(expectedParamName, parameter.getParamName()); + assertEquals(expectedParamType, parameter.getParamType()); + assertEquals(expectedScale, parameter.getScale()); + } + + @Test + public void testCopyConstructor() { + int expectedIndex = 3; + Object expectedValue = "String Object"; + Class expectedType = String.class; + StandardSQLTypeName expectedSqlType = StandardSQLTypeName.STRING; + + BigQueryJdbcParameter parameter = new BigQueryJdbcParameter(); + parameter.setIndex(3); + parameter.setValue("String Object"); + parameter.setType(String.class); + parameter.setSqlType(StandardSQLTypeName.STRING); + + BigQueryJdbcParameter copiedParameter = new BigQueryJdbcParameter(parameter); + + assertEquals(expectedIndex, copiedParameter.getIndex()); + assertEquals(expectedValue, copiedParameter.getValue()); + assertEquals(expectedType, copiedParameter.getType()); + assertEquals(expectedSqlType, copiedParameter.getSqlType()); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtilityTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtilityTest.java new file mode 100644 index 000000000000..203502cdac29 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtilityTest.java @@ -0,0 +1,293 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; + +import com.google.api.gax.rpc.TransportChannelProvider; +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import com.google.cloud.http.HttpTransportOptions; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import org.junit.Test; + +public class BigQueryJdbcProxyUtilityTest { + @Test + public void testParsingAllProxyProperties() { + Map result = + BigQueryJdbcProxyUtility.parseProxyProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;OAuthType=3;" + + "ProxyHost=34.94.167.18;" + + "ProxyPort=3128;" + + "ProxyUid=fahmz;" + + "ProxyPwd=pass;", + null); + + assertThat(result.get("ProxyHost")).isEqualTo("34.94.167.18"); + assertThat(result.get("ProxyPort")).isEqualTo("3128"); + assertThat(result.get("ProxyUid")).isEqualTo("fahmz"); + assertThat(result.get("ProxyPwd")).isEqualTo("pass"); + } + + @Test + public void testParsingInvalidPortThrowsIllegalArgument() { + assertThrows( + IllegalArgumentException.class, + () -> + BigQueryJdbcProxyUtility.parseProxyProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;OAuthType=3;" + + "ProxyHost=34.94.167.18;" + + "ProxyPort=portnumber;" + + "ProxyUid=fahmz;" + + "ProxyPwd=pass;", + null)); + } + + @Test + public void testMissingHostThrowsIllegalArgument() { + assertThrows( + IllegalArgumentException.class, + () -> + BigQueryJdbcProxyUtility.parseProxyProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;OAuthType=3;" + + "ProxyPort=3128;" + + "ProxyUid=fahmz;" + + "ProxyPwd=pass;", + null)); + } + + @Test + public void testMissingPortThrowsIllegalArgument() { + assertThrows( + IllegalArgumentException.class, + () -> + BigQueryJdbcProxyUtility.parseProxyProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;OAuthType=3;" + + "ProxyHost=34.94.167.18;" + + "ProxyUid=fahmz;" + + "ProxyPwd=pass;", + null)); + } + + @Test + public void testMissingUidWithPwdThrowsIllegalArgument() { + assertThrows( + IllegalArgumentException.class, + () -> + BigQueryJdbcProxyUtility.parseProxyProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;OAuthType=3;" + + "ProxyHost=34.94.167.18;" + + "ProxyPort=3128;" + + "ProxyPwd=pass;", + null)); + } + + @Test + public void testMissingPwdWithUidThrowsIllegalArgument() { + assertThrows( + IllegalArgumentException.class, + () -> + BigQueryJdbcProxyUtility.parseProxyProperties( + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;OAuthType=3;" + + "ProxyHost=34.94.167.18;" + + "ProxyPort=3128;" + + "ProxyUid=fahmz;", + null)); + } + + @Test + public void testGetHttpTransportOptionsWithAuthenticatedProxy() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=TestProject" + + ";OAuthType=3;" + + "ProxyHost=34.94.167.18;" + + "ProxyPort=3128;" + + "ProxyUid=fahmz;" + + "ProxyPwd=pass;"; + + Map proxyProperties = + BigQueryJdbcProxyUtility.parseProxyProperties(connection_uri, null); + HttpTransportOptions result = + BigQueryJdbcProxyUtility.getHttpTransportOptions(proxyProperties, null, null, null); + assertNotNull(result); + } + + @Test + public void testGetHttpTransportOptionsWithNonAuthenticatedProxy() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=TestProject" + + ";OAuthType=3;" + + "ProxyHost=34.94.167.18;" + + "ProxyPort=3128;"; + + Map proxyProperties = + BigQueryJdbcProxyUtility.parseProxyProperties(connection_uri, null); + HttpTransportOptions result = + BigQueryJdbcProxyUtility.getHttpTransportOptions(proxyProperties, null, null, null); + assertNotNull(result); + } + + @Test + public void testGetHttpTransportOptionsWithNoProxySettingsReturnsNull() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=TestProject" + + ";OAuthType=3;"; + + Map proxyProperties = + BigQueryJdbcProxyUtility.parseProxyProperties(connection_uri, null); + HttpTransportOptions result = + BigQueryJdbcProxyUtility.getHttpTransportOptions(proxyProperties, null, null, null); + assertNull(result); + } + + private String getTestResourcePath(String resourceName) throws URISyntaxException { + URL resourceUrl = getClass().getClassLoader().getResource(resourceName); + if (resourceUrl == null) { + throw new RuntimeException("Test resource not found: " + resourceName); + } + return new File(resourceUrl.toURI()).getAbsolutePath(); + } + + @Test + public void testGetHttpTransportOptions_withSslTrustStore_noPassword() throws Exception { + String trustStorePath = getTestResourcePath("test_truststore_nopass.jks"); + HttpTransportOptions options = + BigQueryJdbcProxyUtility.getHttpTransportOptions( + Collections.emptyMap(), trustStorePath, null, "TestClass"); + assertNotNull(options); + assertNotNull(options.getHttpTransportFactory()); + } + + @Test + public void testGetHttpTransportOptions_withSslTrustStore_withCorrectPassword() throws Exception { + String trustStorePath = getTestResourcePath("test_truststore_withpass.jks"); + HttpTransportOptions options = + BigQueryJdbcProxyUtility.getHttpTransportOptions( + Collections.emptyMap(), trustStorePath, "testpassword", "TestClass"); + assertNotNull(options); + assertNotNull(options.getHttpTransportFactory()); + } + + @Test + public void testGetHttpTransportOptions_withSslTrustStore_withIncorrectPassword() + throws Exception { + String trustStorePath = getTestResourcePath("test_truststore_withpass.jks"); + BigQueryJdbcRuntimeException exception = + assertThrows( + BigQueryJdbcRuntimeException.class, + () -> + BigQueryJdbcProxyUtility.getHttpTransportOptions( + Collections.emptyMap(), + trustStorePath, + "wrongpassword", + "TestClass")); + assertThat(exception.getCause()).isInstanceOf(IOException.class); + } + + @Test + public void testGetHttpTransportOptions_withInvalidSslTrustStorePath() { + String invalidPath = "/path/to/nonexistent/truststore.jks"; + BigQueryJdbcRuntimeException exception = + assertThrows( + BigQueryJdbcRuntimeException.class, + () -> + BigQueryJdbcProxyUtility.getHttpTransportOptions( + Collections.emptyMap(), invalidPath, null, "TestClass")); + + assertThat(exception.getCause()).isInstanceOf(FileNotFoundException.class); + } + + @Test + public void testGetHttpTransportOptions_withSslAndProxy() throws Exception { + String trustStorePath = getTestResourcePath("test_truststore_nopass.jks"); + Map proxyProperties = new HashMap<>(); + proxyProperties.put(BigQueryJdbcUrlUtility.PROXY_HOST_PROPERTY_NAME, "proxy.example.com"); + proxyProperties.put(BigQueryJdbcUrlUtility.PROXY_PORT_PROPERTY_NAME, "8080"); + + HttpTransportOptions options = + BigQueryJdbcProxyUtility.getHttpTransportOptions( + proxyProperties, trustStorePath, null, "TestClass"); + assertNotNull(options); + assertNotNull(options.getHttpTransportFactory()); + } + + @Test + public void testGetTransportChannelProvider_withSslTrustStore_noPassword() throws Exception { + String trustStorePath = getTestResourcePath("test_truststore_nopass.jks"); + TransportChannelProvider provider = + BigQueryJdbcProxyUtility.getTransportChannelProvider( + Collections.emptyMap(), trustStorePath, null, "TestClass"); + assertNotNull(provider); + } + + @Test + public void testGetTransportChannelProvider_withSslTrustStore_withCorrectPassword() + throws Exception { + String trustStorePath = getTestResourcePath("test_truststore_withpass.jks"); + TransportChannelProvider provider = + BigQueryJdbcProxyUtility.getTransportChannelProvider( + Collections.emptyMap(), trustStorePath, "testpassword", "TestClass"); + assertNotNull(provider); + } + + @Test + public void testGetTransportChannelProvider_withSslAndProxy() throws Exception { + String trustStorePath = getTestResourcePath("test_truststore_nopass.jks"); + Map proxyProperties = new HashMap<>(); + proxyProperties.put(BigQueryJdbcUrlUtility.PROXY_HOST_PROPERTY_NAME, "proxy.example.com"); + proxyProperties.put(BigQueryJdbcUrlUtility.PROXY_PORT_PROPERTY_NAME, "8080"); + + TransportChannelProvider provider = + BigQueryJdbcProxyUtility.getTransportChannelProvider( + proxyProperties, trustStorePath, null, "TestClass"); + assertNotNull(provider); + } + + @Test + public void testGetTransportChannelProvider_noProxyNoSsl_returnsNull() { + TransportChannelProvider provider = + BigQueryJdbcProxyUtility.getTransportChannelProvider( + Collections.emptyMap(), null, null, "TestClass"); + assertNull(provider); + } + + @Test + public void testGetHttpTransportOptions_noProxyNoSsl_returnsNull() { + HttpTransportOptions options = + BigQueryJdbcProxyUtility.getHttpTransportOptions( + Collections.emptyMap(), null, null, "TestClass"); + assertNull(options); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtilityTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtilityTest.java new file mode 100644 index 000000000000..86f087bf35f9 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtilityTest.java @@ -0,0 +1,803 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; + +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import com.google.common.collect.Maps; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import org.junit.Test; + +public class BigQueryJdbcUrlUtilityTest { + + @Test + public void testParsePropertyWithNoDefault() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=RedactedToken"; + + String result = BigQueryJdbcUrlUtility.parseUriProperty(url, "OAuthType"); + assertThat(result).isNull(); + } + + @Test + public void testParsePropertyWithDefault() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=RedactedToken"; + + String result = BigQueryJdbcUrlUtility.parseUriProperty(url, "OAuthType"); + assertThat(result).isEqualTo(null); + } + + @Test + public void testParsePropertyWithValue() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=RedactedToken"; + + String result = BigQueryJdbcUrlUtility.parseUriProperty(url, "ProjectId"); + assertThat(result).isEqualTo("MyBigQueryProject"); + } + + @Test + public void testParsePropertyWithValueCaseInsensitive() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "PROJECTID=MyBigQueryProject;" + + "OAuthAccessToken=RedactedToken"; + + String result = BigQueryJdbcUrlUtility.parseUriProperty(url, "ProjectId"); + assertThat(result).isEqualTo("MyBigQueryProject"); + } + + @Test + public void testAppendPropertiesToURL() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;" + + "OAuthAccessToken=RedactedToken"; + Properties properties = new Properties(); + properties.setProperty("OAuthType", "3"); + + String updatedUrl = BigQueryJdbcUrlUtility.appendPropertiesToURL(url, null, properties); + assertThat(updatedUrl.contains("OAuthType=3")); + } + + @Test + public void testConnectionPropertiesFromURI() { + String connection_uri = + "bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=testProject;OAUTHTYPE=3;DEFAULTDATASET=testDataset;LOCATION=us-central1"; + + assertThat(BigQueryJdbcUrlUtility.parseUriProperty(connection_uri, "OAUTHTYPE")).isEqualTo("3"); + assertThat(BigQueryJdbcUrlUtility.parseUriProperty(connection_uri, "LOCATION")) + .isEqualTo("us-central1"); + } + + @Test + public void testConnectionPropertiesFromURIMultiline() { + String connection_uri = + "bigquery://https://www.googleapis.com/bigquery/v2:443;Multiline=value1\nvalue2\n;"; + + assertThat(BigQueryJdbcUrlUtility.parseUriProperty(connection_uri, "Multiline")) + .isEqualTo("value1\nvalue2\n"); + } + + @Test + public void testConnectionPropertiesFromURIMultilineNoSemicolon() { + String connection_uri = + "bigquery://https://www.googleapis.com/bigquery/v2:443;Multiline=value1\nvalue2"; + + assertThat(BigQueryJdbcUrlUtility.parseUriProperty(connection_uri, "Multiline")) + .isEqualTo("value1\nvalue2"); + } + + @Test + public void testOverridePropertiesFromURICompatibility() { + String connection_uri = + "bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=testProject;PrivateServiceConnectUris=" + + "BIGQUERY=https://bigquery-myprivateserver.p.googleapis.com," + + "READ_API=https://bigquerystorage-myprivateserver.p.googleapis.com:443;"; + + Map parsedPSCProperties = + BigQueryJdbcUrlUtility.parseOverrideProperties(connection_uri, null); + + assertThat(parsedPSCProperties.get("BIGQUERY")) + .isEqualTo("https://bigquery-myprivateserver.p.googleapis.com"); + assertThat(parsedPSCProperties.get("READ_API")) + .isEqualTo("https://bigquerystorage-myprivateserver.p.googleapis.com:443"); + } + + @Test + public void testOverridePropertiesDoesNotAffectOriginalParsersAtEnd() { + String connection_uri = + "bigquery://https://www.googleapis.com/bigquery/v2:443;PrivateServiceConnectUris=" + + "BIGQUERY=https://bigquery-myprivateserver.p.googleapis.com," + + "READ_API=https://bigquerystorage-myprivateserver.p.googleapis.com:443," + + "OAUTH2=https://oauth2-myprivateserver.p.googleapis.com;PROJECTID=testProject;"; + + Map parsedPSCProperties = + BigQueryJdbcUrlUtility.parseOverrideProperties(connection_uri, null); + + assertThat(parsedPSCProperties.get("BIGQUERY")) + .isEqualTo("https://bigquery-myprivateserver.p.googleapis.com"); + assertThat(parsedPSCProperties.get("READ_API")) + .isEqualTo("https://bigquerystorage-myprivateserver.p.googleapis.com:443"); + assertThat(parsedPSCProperties.get("OAUTH2")) + .isEqualTo("https://oauth2-myprivateserver.p.googleapis.com"); + } + + @Test + public void testOverridePropertiesDoesNotParseOutsideOfPrivateServiceConnectUris() { + String connection_uri = + "bigquery://https://www.googleapis.com/bigquery/v2:443;PrivateServiceConnectUris=" + + "BIGQUERY=https://bigquery-myprivateserver.p.googleapis.com," + + "READ_API=https://bigquerystorage-myprivateserver.p.googleapis.com:443;" + // Hard to see but semicolon ends it here. + + "OAUTH2=https://oauth2-myprivateserver.p.googleapis.com;PROJECTID=testProject;"; + + Map parsedPSCProperties = + BigQueryJdbcUrlUtility.parseOverrideProperties(connection_uri, null); + + assertThat(parsedPSCProperties.get("BIGQUERY")) + .isEqualTo("https://bigquery-myprivateserver.p.googleapis.com"); + assertThat(parsedPSCProperties.get("READ_API")) + .isEqualTo("https://bigquerystorage-myprivateserver.p.googleapis.com:443"); + assertThat(parsedPSCProperties.get("OAUTH2")).isNull(); + } + + @Test + public void testOverridePropertiesDoesNotParserPropertiesInMiddle() { + String connection_uri = + "bigquery://https://www.googleapis.com/bigquery/v2:443;PrivateServiceConnectUris=" + + "BIGQUERY=https://bigquery-myprivateserver.p.googleapis.com,OAUTHTYPE=2," + + "READ_API=https://bigquerystorage-myprivateserver.p.googleapis.com:443," + + "OAUTH2=https://oauth2-myprivateserver.p.googleapis.com;"; + + Map parsedPSCProperties = + BigQueryJdbcUrlUtility.parseOverrideProperties(connection_uri, null); + + assertThat(parsedPSCProperties.get("BIGQUERY")) + .isEqualTo("https://bigquery-myprivateserver.p.googleapis.com"); + assertThat(parsedPSCProperties.get("READ_API")) + .isEqualTo("https://bigquerystorage-myprivateserver.p.googleapis.com:443"); + assertThat(parsedPSCProperties.get("OAUTH2")) + .isEqualTo("https://oauth2-myprivateserver.p.googleapis.com"); + } + + @Test + public void testOverridePropertyBeforeProceedingOverrideParameterDoesNotParse() { + String connection_uri = + "bigquery://https://www.googleapis.com/bigquery/v2:443;BIGQUERY=https://bigquery-myprivateserver.p.googleapis.com;" + + "PrivateServiceConnectUris=" + + "READ_API=https://bigquerystorage-myprivateserver.p.googleapis.com:443," + + "OAUTH2=https://oauth2-myprivateserver.p.googleapis.com;"; + + Map parsedPSCProperties = + BigQueryJdbcUrlUtility.parseOverrideProperties(connection_uri, null); + + assertNull(parsedPSCProperties.get("BIGQUERY")); + assertThat(parsedPSCProperties.get("READ_API")) + .isEqualTo("https://bigquerystorage-myprivateserver.p.googleapis.com:443"); + assertThat(parsedPSCProperties.get("OAUTH2")) + .isEqualTo("https://oauth2-myprivateserver.p.googleapis.com"); + } + + @Test + public void testOverridePropertiesFromURIGoogleExperience() { + String connection_uri = + "bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=testProject;EndpointOverrides=" + + "BIGQUERY=https://bigquery-myprivateserver.p.googleapis.com," + + "READ_API=https://bigquerystorage-myprivateserver.p.googleapis.com:443;"; + + Map parsedPSCProperties = + BigQueryJdbcUrlUtility.parseOverrideProperties(connection_uri, null); + + assertThat(parsedPSCProperties.get("BIGQUERY")) + .isEqualTo("https://bigquery-myprivateserver.p.googleapis.com"); + assertThat(parsedPSCProperties.get("READ_API")) + .isEqualTo("https://bigquerystorage-myprivateserver.p.googleapis.com:443"); + } + + @Test + public void testAllOverridePropertiesFromURIGoogleExperience() { + String connection_uri = + "bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=testProject;EndpointOverrides=" + + "BIGQUERY=https://bigquery-myprivateserver.p.googleapis.com," + + "READ_API=https://bigquerystorage-myprivateserver.p.googleapis.com:443," + + "OAUTH2=https://oauth2-myprivateserver.p.googleapis.com," + + "STS=https://sts-myprivateserver.p.googleapis.com;"; + + Map parsedPSCProperties = + BigQueryJdbcUrlUtility.parseOverrideProperties(connection_uri, null); + + assertThat(parsedPSCProperties.get("BIGQUERY")) + .isEqualTo("https://bigquery-myprivateserver.p.googleapis.com"); + assertThat(parsedPSCProperties.get("READ_API")) + .isEqualTo("https://bigquerystorage-myprivateserver.p.googleapis.com:443"); + assertThat(parsedPSCProperties.get("OAUTH2")) + .isEqualTo("https://oauth2-myprivateserver.p.googleapis.com"); + assertThat(parsedPSCProperties.get("STS")) + .isEqualTo("https://sts-myprivateserver.p.googleapis.com"); + } + + @Test + public void testCaseSensitivityOverridePropertiesFromURI() { + String connection_uri = + "bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=testProject;endpointOverrides=" + + "bigQuery=https://bigquery-myprivateserver.p.googleapis.com," + + "READ_API=https://bigquerystorage-myprivateserver.p.googleapis.com:443;"; + + Map parsedPSCProperties = + BigQueryJdbcUrlUtility.parseOverrideProperties(connection_uri, null); + + assertThat(parsedPSCProperties.get("BIGQUERY")) + .isEqualTo("https://bigquery-myprivateserver.p.googleapis.com"); + assertThat(parsedPSCProperties.get("READ_API")) + .isEqualTo("https://bigquerystorage-myprivateserver.p.googleapis.com:443"); + } + + @Test + public void testParseJobCreationModeDefault() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;"; + + boolean jobCreationMode = BigQueryJdbcUrlUtility.parseJobCreationMode(connection_uri, null); + assertTrue(jobCreationMode); + } + + @Test + public void testParseJobCreationMode() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "JobCreationMode=1"; + + boolean jobCreationMode = BigQueryJdbcUrlUtility.parseJobCreationMode(connection_uri, null); + assertFalse(jobCreationMode); + + connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "JobCreationMode=2"; + + jobCreationMode = BigQueryJdbcUrlUtility.parseJobCreationMode(connection_uri, null); + assertTrue(jobCreationMode); + } + + @Test + public void testParseJobCreationModeInvalidInteger() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "JobCreationMode=25"; + + assertThrows( + NumberFormatException.class, + () -> BigQueryJdbcUrlUtility.parseJobCreationMode(connection_uri, null)); + } + + @Test + public void testParseJobCreationModeInvalidString() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "JobCreationMode=JOB_CREATION_OPTIONAL"; + + assertThrows( + NumberFormatException.class, + () -> BigQueryJdbcUrlUtility.parseJobCreationMode(connection_uri, null)); + } + + @Test + public void testGetConnectionPropertyDefaultValue() { + assertEquals( + BigQueryJdbcUrlUtility.getConnectionPropertyDefaultValue("BYOID_TokenUri"), + "https://sts.googleapis.com/v1/token"); + } + + @Test + public void testParseRetryTimeoutInSecs() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "Timeout=10"; + + long retryTimeoutInSeconds = + BigQueryJdbcUrlUtility.parseRetryTimeoutInSecs(connection_uri, null); + assertEquals(10, retryTimeoutInSeconds); + + connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "Timeout=20"; + + retryTimeoutInSeconds = BigQueryJdbcUrlUtility.parseRetryTimeoutInSecs(connection_uri, null); + assertEquals(20, retryTimeoutInSeconds); + } + + @Test + public void testParseRetryTimeoutInSecsDefault() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject"; + + long retryTimeoutInSeconds = + BigQueryJdbcUrlUtility.parseRetryTimeoutInSecs(connection_uri, null); + assertEquals(0, retryTimeoutInSeconds); + } + + @Test + public void testParseRetryTimeoutSecondsInvalidLong() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "Timeout=invalid"; + + assertThrows( + NumberFormatException.class, + () -> BigQueryJdbcUrlUtility.parseRetryTimeoutInSecs(connection_uri, null)); + } + + public void testParseJobTimeout() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "JobTimeout=10"; + + long jobTimeout = BigQueryJdbcUrlUtility.parseJobTimeout(connection_uri, null); + assertEquals(10, jobTimeout); + + connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "JobTimeout=20"; + + jobTimeout = BigQueryJdbcUrlUtility.parseJobTimeout(connection_uri, null); + assertEquals(20, jobTimeout); + } + + @Test + public void testParseJobTimeoutDefault() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject"; + + long jobTimeout = BigQueryJdbcUrlUtility.parseJobTimeout(connection_uri, null); + assertEquals(0L, jobTimeout); + } + + @Test + public void testParseJobTimeoutInvalid() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "JobTimeout=invalid"; + + assertThrows( + NumberFormatException.class, + () -> BigQueryJdbcUrlUtility.parseJobTimeout(connection_uri, null)); + } + + @Test + public void testParsePartnerTokenProperty() { + // Case with partner name and environment + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "PartnerToken=(GPN:partner_company; dev);ProjectId=MyBigQueryProject;"; + String expected = " (GPN:partner_company; dev)"; + String result = + BigQueryJdbcUrlUtility.parsePartnerTokenProperty(url, "testParsePartnerTokenProperty"); + assertThat(result).isEqualTo(expected); + + // Case with only partner name + url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "PartnerToken=(GPN:another_partner);ProjectId=MyBigQueryProject;"; + expected = " (GPN:another_partner)"; + result = BigQueryJdbcUrlUtility.parsePartnerTokenProperty(url, "testParsePartnerTokenProperty"); + assertThat(result).isEqualTo(expected); + + // Case when PartnerToken property is not present + url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=MyBigQueryProject;"; + result = BigQueryJdbcUrlUtility.parsePartnerTokenProperty(url, "testParsePartnerTokenProperty"); + assertNull(result); + + // Case when PartnerToken property is present but empty + url = "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PartnerToken=();"; + result = BigQueryJdbcUrlUtility.parsePartnerTokenProperty(url, "testParsePartnerTokenProperty"); + assertNull(result); + + // Case when PartnerToken property is present but without partner name + url = "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PartnerToken=(env);"; + result = BigQueryJdbcUrlUtility.parsePartnerTokenProperty(url, "testParsePartnerTokenProperty"); + assertNull(result); + + // Case with extra spaces around the values + url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "PartnerToken= ( GPN: partner_name ; test_env ) ;"; + expected = " (GPN: partner_name; test_env)"; + result = BigQueryJdbcUrlUtility.parsePartnerTokenProperty(url, "testParsePartnerTokenProperty"); + assertThat(result).isEqualTo(expected); + } + + public void testParseRetryInitialDelayInSecs() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "RetryInitialDelay=10"; + + long retryInitialDelaySeconds = + BigQueryJdbcUrlUtility.parseRetryInitialDelayInSecs(connection_uri, null); + assertEquals(10, retryInitialDelaySeconds); + + connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "RetryInitialDelay=20"; + + retryInitialDelaySeconds = + BigQueryJdbcUrlUtility.parseRetryInitialDelayInSecs(connection_uri, null); + assertEquals(20, retryInitialDelaySeconds); + } + + @Test + public void testParseRetryInitialDelayInSecsDefault() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject"; + + long retryInitialDelaySeconds = + BigQueryJdbcUrlUtility.parseRetryInitialDelayInSecs(connection_uri, null); + assertEquals(0, retryInitialDelaySeconds); + } + + @Test + public void testParseRetryInitialDelaySecondsInvalidLong() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "RetryInitialDelay=invalid"; + + assertThrows( + NumberFormatException.class, + () -> BigQueryJdbcUrlUtility.parseRetryInitialDelayInSecs(connection_uri, null)); + } + + @Test + public void testParseRetryMaxDelayInSecs() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "RetryMaxDelay=10"; + + long retryMaxDelaySeconds = + BigQueryJdbcUrlUtility.parseRetryMaxDelayInSecs(connection_uri, null); + assertEquals(10, retryMaxDelaySeconds); + + connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "RetryMaxDelay=20"; + + retryMaxDelaySeconds = BigQueryJdbcUrlUtility.parseRetryMaxDelayInSecs(connection_uri, null); + assertEquals(20, retryMaxDelaySeconds); + } + + @Test + public void testParseRetryMaxDelayInSecsDefault() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject"; + + long retryMaxDelaySeconds = + BigQueryJdbcUrlUtility.parseRetryMaxDelayInSecs(connection_uri, null); + assertEquals(0, retryMaxDelaySeconds); + } + + @Test + public void testParseRetryMaxDelaySecondsInvalidLong() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "RetryMaxDelay=invalid"; + + assertThrows( + NumberFormatException.class, + () -> BigQueryJdbcUrlUtility.parseRetryMaxDelayInSecs(connection_uri, null)); + } + + @Test + public void testParseRequestGoogleDriveScope_Default() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;"; + Integer value = + BigQueryJdbcUrlUtility.parseIntProperty( + url, + BigQueryJdbcUrlUtility.REQUEST_GOOGLE_DRIVE_SCOPE_PROPERTY_NAME, + BigQueryJdbcUrlUtility.DEFAULT_REQUEST_GOOGLE_DRIVE_SCOPE_VALUE, + this.getClass().getName()); + assertEquals( + Integer.valueOf(BigQueryJdbcUrlUtility.DEFAULT_REQUEST_GOOGLE_DRIVE_SCOPE_VALUE), value); + } + + // Connection Pool Size + + @Test + public void testParseConnectionPoolSize() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "ConnectionPoolSize=10"; + long connectionPoolSize = BigQueryJdbcUrlUtility.parseConnectionPoolSize(connection_uri, null); + assertEquals(10, connectionPoolSize); + + connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "ConnectionPoolSize=20"; + + connectionPoolSize = BigQueryJdbcUrlUtility.parseConnectionPoolSize(connection_uri, null); + assertEquals(20, connectionPoolSize); + } + + @Test + public void testParseConnectionPoolSizeDefault() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject"; + + long connectionPoolSize = BigQueryJdbcUrlUtility.parseConnectionPoolSize(connection_uri, null); + assertEquals(10, connectionPoolSize); + } + + @Test + public void testParseConnectionPoolSizeDefaultNullConnectionUrl() { + assertThrows( + BigQueryJdbcRuntimeException.class, + () -> BigQueryJdbcUrlUtility.parseConnectionPoolSize(null, null)); + } + + @Test + public void testParseConnectionPoolSizeDefaultEmptyConnectionUrl() { + assertThrows( + BigQueryJdbcRuntimeException.class, + () -> BigQueryJdbcUrlUtility.parseConnectionPoolSize("", null)); + } + + @Test + public void testParseConnectionPoolSizeInvalidLong() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "ConnectionPoolSize=invalid"; + + assertThrows( + NumberFormatException.class, + () -> BigQueryJdbcUrlUtility.parseConnectionPoolSize(connection_uri, null)); + } + + // Listener Pool Size + + @Test + public void testParseListenerPoolSize() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "ListenerPoolSize=10"; + long listenerPoolSize = BigQueryJdbcUrlUtility.parseListenerPoolSize(connection_uri, null); + assertEquals(10, listenerPoolSize); + + connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "ListenerPoolSize=20"; + + listenerPoolSize = BigQueryJdbcUrlUtility.parseListenerPoolSize(connection_uri, null); + assertEquals(20, listenerPoolSize); + } + + @Test + public void testParseListenerPoolSizeDefault() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject"; + + long listenerPoolSize = BigQueryJdbcUrlUtility.parseListenerPoolSize(connection_uri, null); + assertEquals(10, listenerPoolSize); + } + + @Test + public void testParseListenerPoolSizeDefaultNullConnectionUrl() { + assertThrows( + BigQueryJdbcRuntimeException.class, + () -> BigQueryJdbcUrlUtility.parseListenerPoolSize(null, null)); + } + + @Test + public void testParseListenerPoolSizeDefaultEmptyConnectionUrl() { + assertThrows( + BigQueryJdbcRuntimeException.class, + () -> BigQueryJdbcUrlUtility.parseListenerPoolSize("", null)); + } + + @Test + public void testParseListenerPoolSizeInvalidLong() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "ListenerPoolSize=invalid"; + + assertThrows( + NumberFormatException.class, + () -> BigQueryJdbcUrlUtility.parseListenerPoolSize(connection_uri, null)); + } + + @Test + public void testParseStringListProperty_NullOrEmpty() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;SomeProp="; + List result = + BigQueryJdbcUrlUtility.parseStringListProperty(url, "NonExistentProp", "TestClass"); + assertEquals(Collections.emptyList(), result); + + result = BigQueryJdbcUrlUtility.parseStringListProperty(url, "SomeProp", "TestClass"); + assertEquals(Collections.emptyList(), result); + + String urlWithEmptyList = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;ListProp=,,"; + result = + BigQueryJdbcUrlUtility.parseStringListProperty(urlWithEmptyList, "ListProp", "TestClass"); + assertEquals(Collections.emptyList(), result); + } + + @Test + public void testParseStringListProperty_SingleValue() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;ListProp=project1"; + List result = + BigQueryJdbcUrlUtility.parseStringListProperty(url, "ListProp", "TestClass"); + assertEquals(Collections.singletonList("project1"), result); + } + + @Test + public void testParseStringListProperty_MultipleValues() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;ListProp=project1,project2,project3"; + List result = + BigQueryJdbcUrlUtility.parseStringListProperty(url, "ListProp", "TestClass"); + assertEquals(Arrays.asList("project1", "project2", "project3"), result); + } + + @Test + public void testParseIntProperty_ValidInteger() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;SomeIntProp=123"; + Integer defaultValue = 0; + Integer result = + BigQueryJdbcUrlUtility.parseIntProperty(url, "SomeIntProp", defaultValue, "TestClass"); + assertEquals(Integer.valueOf(123), result); + } + + @Test + public void testParseIntProperty_PropertyNotPresent() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;SomeIntProp=123"; + Integer defaultValue = 42; + Integer result = + BigQueryJdbcUrlUtility.parseIntProperty(url, "MissingIntProp", defaultValue, "TestClass"); + assertEquals(defaultValue, result); + } + + @Test + public void testParseIntProperty_InvalidIntegerValue() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;InvalidIntProp=abc"; + Integer defaultValue = 77; + assertThrows( + IllegalArgumentException.class, + () -> + BigQueryJdbcUrlUtility.parseIntProperty( + url, "InvalidIntProp", defaultValue, "TestClass")); + } + + @Test + public void testParseIntProperty_EmptyStringValue() { + String url = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=2;ProjectId=MyBigQueryProject;EmptyIntProp="; + Integer defaultValue = 88; + assertThrows( + IllegalArgumentException.class, + () -> + BigQueryJdbcUrlUtility.parseIntProperty( + url, "EmptyIntProp", defaultValue, "TestClass")); + } + + @Test + public void testParseMaxBytesBilled() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "MaximumBytesBilled=10000"; + + long maxBytesBilled = BigQueryJdbcUrlUtility.parseMaximumBytesBilled(connection_uri, null); + assertEquals(10000, maxBytesBilled); + } + + @Test + public void testParseMaxBytesBilledDefault() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject"; + + long maxBytesBilled = BigQueryJdbcUrlUtility.parseMaximumBytesBilled(connection_uri, null); + assertEquals(0, maxBytesBilled); + } + + @Test + public void testParseMaxBytesBilledNullUrl() { + assertThrows( + BigQueryJdbcRuntimeException.class, + () -> BigQueryJdbcUrlUtility.parseMaximumBytesBilled(null, null)); + } + + @Test + public void testParseMaxBytesBilledEmptyUrl() { + assertThrows( + BigQueryJdbcRuntimeException.class, + () -> BigQueryJdbcUrlUtility.parseMaximumBytesBilled("", null)); + } + + @Test + public void testParseMaxBytesBilledInvalidLong() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "MaximumBytesBilled=invalid"; + + assertThrows( + NumberFormatException.class, + () -> BigQueryJdbcUrlUtility.parseMaximumBytesBilled(connection_uri, null)); + } + + @Test + public void testParseLabels() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "Labels=k1=v1,k2=v2,k3=v3;"; + + Map labels = BigQueryJdbcUrlUtility.parseLabels(connection_uri, null); + assertNotNull(labels); + assertFalse(labels.isEmpty()); + assertEquals(3, labels.size()); + + Map expected = + new HashMap() { + { + put("k1", "v1"); + put("k2", "v2"); + put("k3", "v3"); + } + }; + + assertTrue(Maps.difference(expected, labels).areEqual()); + } + + @Test + public void testParseLabelsEmpty() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;"; + + Map labels = BigQueryJdbcUrlUtility.parseLabels(connection_uri, null); + assertNull(labels); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfPrimitivesTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfPrimitivesTest.java new file mode 100644 index 000000000000..6f10ae79a042 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfPrimitivesTest.java @@ -0,0 +1,342 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.StandardSQLTypeName.BIGNUMERIC; +import static com.google.cloud.bigquery.StandardSQLTypeName.BOOL; +import static com.google.cloud.bigquery.StandardSQLTypeName.BYTES; +import static com.google.cloud.bigquery.StandardSQLTypeName.DATE; +import static com.google.cloud.bigquery.StandardSQLTypeName.DATETIME; +import static com.google.cloud.bigquery.StandardSQLTypeName.FLOAT64; +import static com.google.cloud.bigquery.StandardSQLTypeName.GEOGRAPHY; +import static com.google.cloud.bigquery.StandardSQLTypeName.INT64; +import static com.google.cloud.bigquery.StandardSQLTypeName.NUMERIC; +import static com.google.cloud.bigquery.StandardSQLTypeName.STRING; +import static com.google.cloud.bigquery.StandardSQLTypeName.TIME; +import static com.google.cloud.bigquery.StandardSQLTypeName.TIMESTAMP; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.INVALID_ARRAY; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.arraySchemaAndValue; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.nestedResultSetToColumnLists; +import static com.google.common.truth.Truth.assertThat; +import static java.time.Month.MARCH; +import static java.util.Arrays.copyOfRange; +import static java.util.Collections.emptyMap; +import static org.junit.Assert.assertThrows; + +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.jdbc.rules.TimeZoneRule; +import com.google.common.io.BaseEncoding; +import java.math.BigDecimal; +import java.sql.Array; +import java.sql.Date; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.SQLFeatureNotSupportedException; +import java.sql.Time; +import java.sql.Timestamp; +import java.sql.Types; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.concurrent.TimeUnit; +import java.util.stream.Stream; +import org.junit.Before; +import org.junit.ClassRule; +import org.junit.Test; +import org.junit.function.ThrowingRunnable; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +@RunWith(Parameterized.class) +public class BigQueryJsonArrayOfPrimitivesTest { + + private final Field schema; + private final FieldValue arrayValues; + private final Object[] expected; + private final int javaSqlTypeCode; + private Array array; + private final StandardSQLTypeName currentType; + + @ClassRule public static final TimeZoneRule timeZoneRule = new TimeZoneRule("UTC"); + + public BigQueryJsonArrayOfPrimitivesTest( + StandardSQLTypeName currentType, + Tuple schemaAndValue, + Object[] expected, + int javaSqlTypeCode) { + this.currentType = currentType; + this.schema = schemaAndValue.x(); + this.arrayValues = schemaAndValue.y(); + this.expected = expected; + this.javaSqlTypeCode = javaSqlTypeCode; + } + + @Before + public void setUp() { + array = new BigQueryJsonArray(this.schema, this.arrayValues); + } + + @Parameters(name = "{index}: primitive array of {0}") + public static Collection data() { + timeZoneRule.enforce(); + LocalDateTime aTimeStamp = LocalDateTime.of(2023, MARCH, 30, 11, 14, 19, 820227000); + LocalDate aDate = LocalDate.of(2023, MARCH, 30); + LocalTime aTime = LocalTime.of(11, 14, 19, 820227000); + return Arrays.asList( + new Object[][] { + { + INT64, + arraySchemaAndValue(INT64, "10", "20", "30", "40"), + new Long[] {10L, 20L, 30L, 40L}, + Types.BIGINT + }, + { + BOOL, + arraySchemaAndValue(BOOL, "true", "false", "false", "true"), + new Boolean[] {true, false, false, true}, + Types.BOOLEAN + }, + { + FLOAT64, + arraySchemaAndValue(FLOAT64, "11.2", "33.4", "55.6", "77.8"), + new Double[] {11.2, 33.4, 55.6, 77.8}, + Types.DOUBLE + }, + { + NUMERIC, + arraySchemaAndValue(NUMERIC, "11.2657", "33.4657", "55.6657", "77.8657"), + new BigDecimal[] { + new BigDecimal("11.2657"), + new BigDecimal("33.4657"), + new BigDecimal("55.6657"), + new BigDecimal("77.8657") + }, + Types.NUMERIC + }, + { + BIGNUMERIC, + arraySchemaAndValue(BIGNUMERIC, "11.2657", "33.4657", "55.6657", "77.8657"), + new BigDecimal[] { + new BigDecimal("11.2657"), + new BigDecimal("33.4657"), + new BigDecimal("55.6657"), + new BigDecimal("77.8657") + }, + Types.NUMERIC + }, + { + STRING, + arraySchemaAndValue(STRING, "one", "two", "three", "four"), + new String[] {"one", "two", "three", "four"}, + Types.NVARCHAR + }, + { + TIMESTAMP, + arraySchemaAndValue( + TIMESTAMP, + "1680174859.8202269", + "1680261259.8202269", + "1680347659.8202269", + "1680434059.8202269"), + new Timestamp[] { + Timestamp.valueOf(aTimeStamp), // 2023-03-30 16:44:19.82 + Timestamp.valueOf(aTimeStamp.plusDays(1)), + Timestamp.valueOf(aTimeStamp.plusDays(2)), + Timestamp.valueOf(aTimeStamp.plusDays(3)) + }, + Types.TIMESTAMP + }, + { + DATE, + arraySchemaAndValue(DATE, "2023-03-30", "2023-03-31", "2023-04-01", "2023-04-02"), + new Date[] { + Date.valueOf(aDate), + Date.valueOf(aDate.plusDays(1)), + Date.valueOf(aDate.plusDays(2)), + Date.valueOf(aDate.plusDays(3)) + }, + Types.DATE + }, + { + TIME, + arraySchemaAndValue( + TIME, "11:14:19.820227", "11:14:20.820227", "11:14:21.820227", "11:14:22.820227"), + new Time[] { + new Time(TimeUnit.NANOSECONDS.toMillis(aTime.toNanoOfDay())), + new Time(TimeUnit.NANOSECONDS.toMillis(aTime.plusSeconds(1).toNanoOfDay())), + new Time(TimeUnit.NANOSECONDS.toMillis(aTime.plusSeconds(2).toNanoOfDay())), + new Time(TimeUnit.NANOSECONDS.toMillis(aTime.plusSeconds(3).toNanoOfDay())) + }, + Types.TIME + }, + { + DATETIME, + arraySchemaAndValue( + DATETIME, + "2023-03-30T11:14:19.820227", + "2023-03-30T11:15:19.820227", + "2023-03-30T11:16:19.820227", + "2023-03-30T11:17:19.820227"), + new Timestamp[] { + Timestamp.valueOf("2023-03-30 11:14:19.820227"), + Timestamp.valueOf("2023-03-30 11:15:19.820227"), + Timestamp.valueOf("2023-03-30 11:16:19.820227"), + Timestamp.valueOf("2023-03-30 11:17:19.820227") + }, + Types.TIMESTAMP + }, + { + GEOGRAPHY, + arraySchemaAndValue( + GEOGRAPHY, "POINT(-122 47)", "POINT(-122 48)", "POINT(-121 47)", "POINT(-123 48)"), + new String[] {"POINT(-122 47)", "POINT(-122 48)", "POINT(-121 47)", "POINT(-123 48)"}, + Types.OTHER + }, + { + BYTES, + arraySchemaAndValue( + BYTES, + Stream.of("one", "two", "three", "four") + .map(s -> BaseEncoding.base64().encode(s.getBytes())) + .toArray(String[]::new)), + new byte[][] { + "one".getBytes(), "two".getBytes(), "three".getBytes(), "four".getBytes() + }, + Types.VARBINARY + } + }); + } + + @Test + public void getArray() throws SQLException { + assertThat(array.getArray()).isEqualTo(this.expected); + } + + @Test + public void getSlicedArray() throws SQLException { + int fromIndex = 1; + int toIndexExclusive = 3; + Object[] expectedSlicedArray = + copyOfRange(this.expected, fromIndex, toIndexExclusive); // copying index(1,2) + + // the first element is at index 1 + assertThat(array.getArray(fromIndex + 1, 2)).isEqualTo(expectedSlicedArray); + } + + @Test + public void getSlicedArrayWhenCountIsGreaterThanOriginalArrayLength() { + IllegalArgumentException illegalArgumentException = + assertThrows(IllegalArgumentException.class, () -> array.getArray(2, 10)); + assertThat(illegalArgumentException.getMessage()) + .isEqualTo("The array index is out of range: 12, number of elements: 4."); + } + + @Test + public void getResultSet() throws SQLException { + ResultSet resultSet = this.array.getResultSet(); + Tuple, ArrayList> indexAndValues = + nestedResultSetToColumnLists(resultSet); + ArrayList indexList = indexAndValues.x(); + ArrayList columnValues = indexAndValues.y(); + + assertThat(indexList.toArray()).isEqualTo(new Object[] {1, 2, 3, 4}); + assertThat(columnValues.toArray()).isEqualTo(this.expected); + } + + @Test + public void getSlicedResultSet() throws SQLException { + int fromIndex = 1; + int toIndexExclusive = 3; + Object[] expectedSlicedArray = + copyOfRange(this.expected, fromIndex, toIndexExclusive); // copying index(1,2) + + // the first element is at index 1 + ResultSet resultSet = array.getResultSet(fromIndex + 1, 2); + + Tuple, ArrayList> indexAndValues = + nestedResultSetToColumnLists(resultSet); + ArrayList indexList = indexAndValues.x(); + ArrayList columnValues = indexAndValues.y(); + + assertThat(indexList.toArray()).isEqualTo(new Object[] {2, 3}); + assertThat(columnValues.toArray()).isEqualTo(expectedSlicedArray); + } + + @Test + public void getSlicedResultSetWhenCountIsGreaterThanOriginalArrayLength() { + IllegalArgumentException illegalArgumentException = + assertThrows(IllegalArgumentException.class, () -> array.getResultSet(2, 10)); + assertThat(illegalArgumentException.getMessage()) + .isEqualTo("The array index is out of range: 12, number of elements: 4."); + } + + @Test + public void getBaseTypeName() throws SQLException { + assertThat(array.getBaseTypeName()).isEqualTo(this.currentType.name()); + } + + @Test + public void getBaseType() throws SQLException { + assertThat(array.getBaseType()).isEqualTo(this.javaSqlTypeCode); + } + + @Test + public void free() throws SQLException { + this.array.free(); + + ensureArrayIsInvalid(() -> array.getArray()); + ensureArrayIsInvalid(() -> array.getArray(1, 2)); + ensureArrayIsInvalid(() -> array.getResultSet()); + ensureArrayIsInvalid(() -> array.getResultSet(1, 2)); + ensureArrayIsInvalid(() -> array.getBaseTypeName()); + ensureArrayIsInvalid(() -> array.getBaseType()); + } + + @Test + public void getArrayWithCustomTypeMappingsIsNotSupported() { + Exception exception1 = + assertThrows(SQLFeatureNotSupportedException.class, () -> array.getArray(emptyMap())); + Exception exception2 = + assertThrows(SQLFeatureNotSupportedException.class, () -> array.getArray(1, 2, emptyMap())); + assertThat(exception1.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + assertThat(exception2.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + @Test + public void getResultSetWithCustomTypeMappingsIsNotSupported() { + Exception exception1 = + assertThrows(SQLFeatureNotSupportedException.class, () -> array.getResultSet(emptyMap())); + Exception exception2 = + assertThrows( + SQLFeatureNotSupportedException.class, () -> array.getResultSet(1, 2, emptyMap())); + assertThat(exception1.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + assertThat(exception2.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + private void ensureArrayIsInvalid(ThrowingRunnable block) { + Exception exception = assertThrows(IllegalStateException.class, block); + assertThat(exception.getMessage()).isEqualTo(INVALID_ARRAY); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfStructTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfStructTest.java new file mode 100644 index 000000000000..b390d642e4dc --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfStructTest.java @@ -0,0 +1,204 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.FieldValue.Attribute.PRIMITIVE; +import static com.google.cloud.bigquery.LegacySQLTypeName.RECORD; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.INVALID_ARRAY; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.nestedResultSetToColumnLists; +import static com.google.common.truth.Truth.assertThat; +import static java.util.Arrays.asList; +import static java.util.Collections.emptyMap; +import static org.junit.Assert.assertThrows; + +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Field.Mode; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.FieldValue.Attribute; +import com.google.cloud.bigquery.FieldValueList; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.sql.Array; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.SQLFeatureNotSupportedException; +import java.sql.Struct; +import java.sql.Types; +import java.util.ArrayList; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.function.ThrowingRunnable; + +public class BigQueryJsonArrayOfStructTest { + + private Array array; + + @Before + public void setUp() { + FieldList profileSchema = + FieldList.of( + Field.newBuilder("name", LegacySQLTypeName.STRING).build(), + Field.newBuilder("age", LegacySQLTypeName.INTEGER).build(), + Field.newBuilder("adult", LegacySQLTypeName.BOOLEAN).build()); + + FieldValue record1 = + FieldValue.of( + Attribute.RECORD, + FieldValueList.of( + asList( + FieldValue.of(PRIMITIVE, "Arya"), + FieldValue.of(PRIMITIVE, "15"), + FieldValue.of(PRIMITIVE, "false")))); + FieldValue record2 = + FieldValue.of( + Attribute.RECORD, + FieldValueList.of( + asList( + FieldValue.of(PRIMITIVE, "Khal Drogo"), + FieldValue.of(PRIMITIVE, "35"), + FieldValue.of(PRIMITIVE, "true")))); + FieldValue record3 = + FieldValue.of( + Attribute.RECORD, + FieldValueList.of( + asList( + FieldValue.of(PRIMITIVE, "Ned Stark"), + FieldValue.of(PRIMITIVE, "45"), + FieldValue.of(PRIMITIVE, "true")))); + FieldValue record4 = + FieldValue.of( + Attribute.RECORD, + FieldValueList.of( + asList( + FieldValue.of(PRIMITIVE, "Jon Snow"), + FieldValue.of(PRIMITIVE, "25"), + FieldValue.of(PRIMITIVE, "true")))); + + Field arrayOfStructSchema = + Field.newBuilder("profiles", RECORD, profileSchema).setMode(Mode.REPEATED).build(); + + FieldValue arrayOfStructValue = + FieldValue.of( + Attribute.REPEATED, FieldValueList.of(asList(record1, record2, record3, record4))); + array = new BigQueryJsonArray(arrayOfStructSchema, arrayOfStructValue); + } + + @Test + public void getArray() throws SQLException { + Struct[] structArray = (Struct[]) array.getArray(); + + assertThat(structArray.length).isEqualTo(4); + assertThat(structArray[0].getAttributes()).isEqualTo(asList("Arya", 15L, false).toArray()); + assertThat(structArray[1].getAttributes()).isEqualTo(asList("Khal Drogo", 35L, true).toArray()); + assertThat(structArray[2].getAttributes()).isEqualTo(asList("Ned Stark", 45L, true).toArray()); + assertThat(structArray[3].getAttributes()).isEqualTo(asList("Jon Snow", 25L, true).toArray()); + } + + @Test + public void getSlicedArray() throws SQLException { + Struct[] structArray = (Struct[]) array.getArray(2, 2); + + assertThat(structArray.length).isEqualTo(2); + assertThat(structArray[0].getAttributes()).isEqualTo(asList("Khal Drogo", 35L, true).toArray()); + assertThat(structArray[1].getAttributes()).isEqualTo(asList("Ned Stark", 45L, true).toArray()); + } + + @Test + public void getSlicedArrayWhenCountIsGreaterThanOriginalArrayLength() { + IllegalArgumentException illegalArgumentException = + assertThrows(IllegalArgumentException.class, () -> array.getArray(2, 10)); + assertThat(illegalArgumentException.getMessage()) + .isEqualTo("The array index is out of range: 12, number of elements: 4."); + } + + @Test + public void getResultSet() throws SQLException { + ResultSet resultSet = array.getResultSet(); + Tuple, ArrayList> indexAndValues = + nestedResultSetToColumnLists(resultSet); + + ArrayList indexList = indexAndValues.x(); + ArrayList structs = indexAndValues.y(); + + assertThat(indexList.toArray()).isEqualTo(new Object[] {1, 2, 3, 4}); + assertThat(structs.get(0).getAttributes()).isEqualTo(asList("Arya", 15L, false).toArray()); + assertThat(structs.get(1).getAttributes()).isEqualTo(asList("Khal Drogo", 35L, true).toArray()); + assertThat(structs.get(2).getAttributes()).isEqualTo(asList("Ned Stark", 45L, true).toArray()); + assertThat(structs.get(3).getAttributes()).isEqualTo(asList("Jon Snow", 25L, true).toArray()); + } + + @Test + public void getSlicedResultSet() throws SQLException { + ResultSet resultSet = array.getResultSet(2, 2); + Tuple, ArrayList> indexAndValues = + nestedResultSetToColumnLists(resultSet); + + ArrayList indexList = indexAndValues.x(); + ArrayList structs = indexAndValues.y(); + + assertThat(indexList.toArray()).isEqualTo(new Object[] {2, 3}); + assertThat(structs.get(0).getAttributes()).isEqualTo(asList("Khal Drogo", 35L, true).toArray()); + assertThat(structs.get(1).getAttributes()).isEqualTo(asList("Ned Stark", 45L, true).toArray()); + } + + @Test + public void getResultSetWhenCountIsGreaterThanOriginalArrayLength() { + IllegalArgumentException illegalArgumentException = + assertThrows(IllegalArgumentException.class, () -> array.getResultSet(2, 10)); + assertThat(illegalArgumentException.getMessage()) + .isEqualTo("The array index is out of range: 12, number of elements: 4."); + } + + @Test + public void getBaseTypeName() throws SQLException { + assertThat(array.getBaseTypeName()).isEqualTo(StandardSQLTypeName.STRUCT.name()); + } + + @Test + public void getBaseType() throws SQLException { + assertThat(array.getBaseType()).isEqualTo(Types.STRUCT); + } + + @Test + public void free() throws SQLException { + this.array.free(); + + ensureArrayIsInvalid(() -> array.getArray()); + ensureArrayIsInvalid(() -> array.getArray(1, 2)); + ensureArrayIsInvalid(() -> array.getBaseTypeName()); + ensureArrayIsInvalid(() -> array.getBaseType()); + } + + @Test + public void getArrayWithCustomTypeMappingsIsNotSupported() { + Exception exception1 = + assertThrows(SQLFeatureNotSupportedException.class, () -> array.getArray(emptyMap())); + Exception exception2 = + assertThrows(SQLFeatureNotSupportedException.class, () -> array.getArray(1, 2, emptyMap())); + assertThat(exception1.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + assertThat(exception2.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + private void ensureArrayIsInvalid(ThrowingRunnable block) { + Exception exception = Assert.assertThrows(IllegalStateException.class, block); + assertThat(exception.getMessage()).isEqualTo(INVALID_ARRAY); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSetTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSetTest.java new file mode 100644 index 000000000000..4c715833ffee --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSetTest.java @@ -0,0 +1,476 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; +import static java.time.Month.MARCH; +import static org.mockito.Mockito.mock; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.FieldValue.Attribute; +import com.google.cloud.bigquery.FieldValueList; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.jdbc.rules.TimeZoneRule; +import com.google.common.collect.ImmutableList; +import com.google.common.io.BaseEncoding; +import com.google.common.io.CharStreams; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.math.BigDecimal; +import java.nio.charset.StandardCharsets; +import java.sql.Array; +import java.sql.Blob; +import java.sql.Date; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Struct; +import java.sql.Time; +import java.sql.Timestamp; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.Calendar; +import java.util.TimeZone; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingDeque; +import java.util.concurrent.TimeUnit; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; + +public class BigQueryJsonResultSetTest { + + @Rule public final TimeZoneRule timeZoneRule = new TimeZoneRule("UTC"); + + private static final FieldList fieldList = + FieldList.of( + Field.of("first", StandardSQLTypeName.BOOL), + Field.of("second", StandardSQLTypeName.INT64), + Field.of("third", StandardSQLTypeName.FLOAT64), + Field.of("fourth", StandardSQLTypeName.STRING), + Field.of("fifth", StandardSQLTypeName.TIMESTAMP), + Field.of("sixth", StandardSQLTypeName.BYTES), + Field.of("seventh", StandardSQLTypeName.STRING), + Field.newBuilder("eight", StandardSQLTypeName.INT64).setMode(Field.Mode.REPEATED).build(), + Field.of( + "ninth", + StandardSQLTypeName.STRUCT, + Field.of("first", StandardSQLTypeName.FLOAT64), + Field.of("second", StandardSQLTypeName.TIMESTAMP)), + Field.of("tenth", StandardSQLTypeName.NUMERIC), + Field.of("eleventh", StandardSQLTypeName.BIGNUMERIC), + Field.of("twelfth", LegacySQLTypeName.TIME), + Field.of("thirteenth", LegacySQLTypeName.INTEGER), + Field.of("fourteenth", LegacySQLTypeName.DATE)); + + LocalDateTime aTimeStamp = LocalDateTime.of(2023, MARCH, 30, 11, 14, 19, 820000000); + LocalTime aTime = LocalTime.of(11, 14, 19, 820000000); + private static final String STRING_VAL = "STRING_VALUE"; + private static final Schema QUERY_SCHEMA = Schema.of(fieldList); + private final FieldValue booleanFv = FieldValue.of(Attribute.PRIMITIVE, "false"); + private final FieldValue integerFv = FieldValue.of(Attribute.PRIMITIVE, "1"); + private final FieldValue floatFv = FieldValue.of(Attribute.PRIMITIVE, "1.5"); + private final FieldValue stringFv = FieldValue.of(Attribute.PRIMITIVE, STRING_VAL); + private final FieldValue timestampFv = + FieldValue.of(Attribute.PRIMITIVE, "1680174859.820000"); // 2023-03-30 16:44:19.82 + + private final FieldValue bytesFv = + FieldValue.of( + Attribute.PRIMITIVE, + BaseEncoding.base64().encode(STRING_VAL.getBytes(StandardCharsets.UTF_8))); + + private final FieldValue nullFv = FieldValue.of(Attribute.PRIMITIVE, null); + private final FieldValue repeatedFv = + FieldValue.of( + Attribute.REPEATED, + FieldValueList.of( + ImmutableList.of( + FieldValue.of(Attribute.PRIMITIVE, "10"), + FieldValue.of(Attribute.PRIMITIVE, "20")))); + private final FieldValue recordFv = + FieldValue.of( + Attribute.RECORD, + FieldValueList.of( + ImmutableList.of(floatFv, timestampFv), fieldList.get("ninth").getSubFields())); + private final FieldValue numericFv = FieldValue.of(Attribute.PRIMITIVE, "12345678"); + private final FieldValue bigNumericFv = FieldValue.of(Attribute.PRIMITIVE, "12345678.99"); + + private final FieldValue timeFv = FieldValue.of(Attribute.PRIMITIVE, "11:14:19.820000"); + + private final FieldValue shortFv = FieldValue.of(Attribute.PRIMITIVE, "10"); + private final FieldValue dateFv = FieldValue.of(Attribute.PRIMITIVE, "2020-01-15"); + + private final FieldValueList fieldValues = + FieldValueList.of( + ImmutableList.of( + booleanFv, // 1 + integerFv, // 2 + floatFv, // 3 + stringFv, // 4 + timestampFv, // 5 + bytesFv, // 6 + nullFv, // 7 + repeatedFv, // 8 + recordFv, // 9 + numericFv, // 10 + bigNumericFv, // 11 + timeFv, // 12 + shortFv, // 13 + dateFv // 14 + ), + fieldList); + + private BigQueryFieldValueListWrapper bigQueryFieldValueListWrapperNested; + + private BigQueryStatement statement; + private BigQueryStatement statementForTwoRows; + + private BigQueryJsonResultSet bigQueryJsonResultSet; + private BigQueryJsonResultSet bigQueryJsonResultSetNested; + + private BlockingQueue buffer; + private BlockingQueue bufferWithTwoRows; + + @Before + public void setUp() { + // Buffer with one row + buffer = new LinkedBlockingDeque<>(2); + statement = mock(BigQueryStatement.class); + buffer.add(BigQueryFieldValueListWrapper.of(fieldList, fieldValues)); + buffer.add(BigQueryFieldValueListWrapper.of(null, null, true)); // last marker + Thread[] workerThreads = {new Thread()}; + bigQueryJsonResultSet = + BigQueryJsonResultSet.of(QUERY_SCHEMA, 1L, buffer, statement, workerThreads); + + // Buffer with 2 rows. + bufferWithTwoRows = new LinkedBlockingDeque<>(3); + statementForTwoRows = mock(BigQueryStatement.class); + bufferWithTwoRows.add(BigQueryFieldValueListWrapper.of(fieldList, fieldValues)); + bufferWithTwoRows.add(BigQueryFieldValueListWrapper.of(fieldList, fieldValues)); + bufferWithTwoRows.add(BigQueryFieldValueListWrapper.of(null, null, true)); // last marker + + // values for nested types + Field fieldEight = fieldList.get("eight"); + FieldValue fieldEightValue = fieldValues.get("eight"); + FieldList nestedFieldList = Schema.of(fieldEight).getFields(); + bigQueryFieldValueListWrapperNested = + BigQueryFieldValueListWrapper.getNestedFieldValueListWrapper( + nestedFieldList, fieldEightValue.getRepeatedValue()); + bigQueryJsonResultSetNested = + BigQueryJsonResultSet.getNestedResultSet( + Schema.of(fieldEight), + bigQueryFieldValueListWrapperNested, + 0, + fieldEightValue.getRepeatedValue().size()); + } + + private boolean resetResultSet() + throws SQLException { // re-initialises the resultset and moves the cursor to the first row + Thread[] workerThreads = {new Thread()}; + bigQueryJsonResultSet = + BigQueryJsonResultSet.of(QUERY_SCHEMA, 1L, buffer, statement, workerThreads); + return bigQueryJsonResultSet.next(); // move to the first row + } + + @Test + public void testIsClosed() { + assertThat(bigQueryJsonResultSet.isClosed()).isFalse(); + } + + @Test + public void testClose() { + // TODO(prashant): Add test case after close method is implemented + } + + @Test + public void testRowCount() throws SQLException { + Thread[] workerThreads = {new Thread()}; + // ResultSet with 1 row buffer and 1 total rows. + BigQueryJsonResultSet bigQueryJsonResultSet2 = + BigQueryJsonResultSet.of(QUERY_SCHEMA, 1L, buffer, statement, workerThreads); + assertThat(resultSetRowCount(bigQueryJsonResultSet2)).isEqualTo(1); + // ResultSet with 2 rows buffer and 1 total rows. + bigQueryJsonResultSet2 = + BigQueryJsonResultSet.of( + QUERY_SCHEMA, 1L, bufferWithTwoRows, statementForTwoRows, workerThreads); + assertThat(resultSetRowCount(bigQueryJsonResultSet2)).isEqualTo(1); + } + + @Test + // This method tests iteration and Resultset's type getters + public void testIteration() throws SQLException { + int cnt = 0; + assertThat(bigQueryJsonResultSet.isBeforeFirst()).isTrue(); + while (bigQueryJsonResultSet.next()) { + cnt++; + assertThat(bigQueryJsonResultSet.isLast()).isTrue(); // we have one test row + assertThat(bigQueryJsonResultSet.isFirst()).isTrue(); // we have one test row + assertThat(bigQueryJsonResultSet.getBoolean("first")).isFalse(); + assertThat(bigQueryJsonResultSet.getBoolean(1)).isFalse(); + assertThat(bigQueryJsonResultSet.getInt("second")).isEqualTo(1); + assertThat(bigQueryJsonResultSet.getInt(2)).isEqualTo(1); + assertThat(bigQueryJsonResultSet.getFloat("third")).isEqualTo(1.5f); + assertThat(bigQueryJsonResultSet.getFloat(3)).isEqualTo(1.5f); + assertThat(bigQueryJsonResultSet.getString("fourth")).isEqualTo(STRING_VAL); + assertThat(bigQueryJsonResultSet.getString(4)).isEqualTo(STRING_VAL); + assertThat(bigQueryJsonResultSet.getTimestamp("fifth")) + .isEqualTo(Timestamp.valueOf(aTimeStamp)); + assertThat(bigQueryJsonResultSet.getTimestamp(5)).isEqualTo(Timestamp.valueOf(aTimeStamp)); + assertThat(bigQueryJsonResultSet.wasNull()).isFalse(); + assertThat(bigQueryJsonResultSet.getObject("seventh")).isNull(); // test null + assertThat(bigQueryJsonResultSet.getObject(7)).isNull(); + assertThat(bigQueryJsonResultSet.wasNull()).isTrue(); + assertThat(bigQueryJsonResultSet.getArray("eight").getArray()) + .isEqualTo(new Object[] {10L, 20L}); + assertThat(bigQueryJsonResultSet.getArray(8).getArray()).isEqualTo(new Object[] {10L, 20L}); + assertThat(((Array) bigQueryJsonResultSet.getObject("eight")).getArray()) + .isEqualTo(new Object[] {10L, 20L}); + assertThat(((Array) bigQueryJsonResultSet.getObject(8)).getArray()) + .isEqualTo(new Object[] {10L, 20L}); + assertThat(((Struct) bigQueryJsonResultSet.getObject("ninth")).getAttributes()) + .isEqualTo(new Object[] {1.5, Timestamp.valueOf(aTimeStamp)}); + assertThat(((Struct) bigQueryJsonResultSet.getObject(9)).getAttributes()) + .isEqualTo(new Object[] {1.5, Timestamp.valueOf(aTimeStamp)}); + assertThat(bigQueryJsonResultSet.getLong("tenth")).isEqualTo(12345678L); + assertThat(bigQueryJsonResultSet.getLong(10)).isEqualTo(12345678L); + assertThat(bigQueryJsonResultSet.getDouble("eleventh")).isEqualTo(12345678.99D); + assertThat(bigQueryJsonResultSet.getDouble(11)).isEqualTo(12345678.99D); + Time expectedTime = new Time(TimeUnit.NANOSECONDS.toMillis(aTime.toNanoOfDay())); + assertThat(bigQueryJsonResultSet.getTime("twelfth")).isEqualTo(expectedTime); + assertThat(bigQueryJsonResultSet.getTime(12)).isEqualTo(expectedTime); + assertThat(bigQueryJsonResultSet.getShort("thirteenth")).isEqualTo((short) 10); + assertThat(bigQueryJsonResultSet.getShort(13)).isEqualTo((short) 10); + } + assertThat(cnt).isEqualTo(1); + assertThat(bigQueryJsonResultSet.next()).isFalse(); + assertThat(bigQueryJsonResultSet.isAfterLast()).isTrue(); + } + + @Test + public void testGetObjectWithPrimitives() throws SQLException { + bigQueryJsonResultSet.next(); + assertThat(bigQueryJsonResultSet.getObject("first")).isEqualTo(false); + assertThat(bigQueryJsonResultSet.getObject(1)).isEqualTo(false); + assertThat(bigQueryJsonResultSet.getObject("second")).isEqualTo(1); + assertThat(bigQueryJsonResultSet.getObject(2)).isEqualTo(1); + assertThat(bigQueryJsonResultSet.getObject("third")).isEqualTo(1.5); + assertThat(bigQueryJsonResultSet.getObject(3)).isEqualTo(1.5); + assertThat(bigQueryJsonResultSet.getObject("fourth")).isEqualTo(STRING_VAL); + assertThat(bigQueryJsonResultSet.getObject(4)).isEqualTo(STRING_VAL); + assertThat(bigQueryJsonResultSet.getObject("fifth")).isEqualTo(Timestamp.valueOf(aTimeStamp)); + assertThat(bigQueryJsonResultSet.getObject(5)).isEqualTo(Timestamp.valueOf(aTimeStamp)); + assertThat(bigQueryJsonResultSet.getObject("sixth")) + .isEqualTo(STRING_VAL.getBytes(StandardCharsets.UTF_8)); + assertThat(bigQueryJsonResultSet.getObject(6)) + .isEqualTo(STRING_VAL.getBytes(StandardCharsets.UTF_8)); + assertThat(bigQueryJsonResultSet.wasNull()).isFalse(); + assertThat(bigQueryJsonResultSet.getObject("seventh")).isNull(); // test null + assertThat(bigQueryJsonResultSet.getObject(7)).isNull(); + assertThat(bigQueryJsonResultSet.wasNull()).isTrue(); + + assertThat(bigQueryJsonResultSet.getObject("tenth")).isEqualTo(new BigDecimal("12345678")); + assertThat(bigQueryJsonResultSet.getObject(10)).isEqualTo(new BigDecimal("12345678")); + assertThat(bigQueryJsonResultSet.getObject("eleventh")) + .isEqualTo(new BigDecimal("12345678.99")); + assertThat(bigQueryJsonResultSet.getObject(11)).isEqualTo(new BigDecimal("12345678.99")); + Time expectedTime = new Time(TimeUnit.NANOSECONDS.toMillis(aTime.toNanoOfDay())); + assertThat(bigQueryJsonResultSet.getObject("twelfth")).isEqualTo(expectedTime); + assertThat(bigQueryJsonResultSet.getObject(12)).isEqualTo(expectedTime); + assertThat(bigQueryJsonResultSet.getObject("thirteenth")).isEqualTo((short) 10); + assertThat(bigQueryJsonResultSet.getObject(13)).isEqualTo((short) 10); + } + + // validate the input streams + @Test + public void testCharacterStream() throws SQLException, IOException { + assertThat(resetResultSet()).isTrue(); + Reader charStream = bigQueryJsonResultSet.getCharacterStream("fourth"); + String expectedVal = CharStreams.toString(charStream); + assertThat(expectedVal).isEqualTo(STRING_VAL); + } + + @Test + public void testBinaryStream() throws SQLException, IOException { + assertThat(resetResultSet()).isTrue(); + StringBuilder textBuilder = new StringBuilder(); + InputStream binInputStream = bigQueryJsonResultSet.getBinaryStream(6); + Reader reader = new BufferedReader(new InputStreamReader(binInputStream)); + int c; + while ((c = reader.read()) != -1) { + textBuilder.append((char) c); + } + assertThat(textBuilder.toString()).isEqualTo(STRING_VAL); + reader.close(); + } + + @Test + public void testAsciiStream() throws SQLException, IOException { + assertThat(resetResultSet()).isTrue(); + StringBuilder textBuilder = new StringBuilder(); + InputStream binInputStream = bigQueryJsonResultSet.getAsciiStream(4); + Reader reader = new BufferedReader(new InputStreamReader(binInputStream)); + int c; + while ((c = reader.read()) != -1) { + textBuilder.append((char) c); + } + String expectedAsciiString = + new String(STRING_VAL.getBytes(), 0, STRING_VAL.length(), StandardCharsets.US_ASCII); + assertThat(textBuilder.length()).isEqualTo(expectedAsciiString.length()); + assertThat(textBuilder.toString()).isEqualTo(expectedAsciiString); + reader.close(); + } + + @Test + public void testUnicodeStream() throws SQLException, IOException { + assertThat(resetResultSet()).isTrue(); + InputStream binInputStream = bigQueryJsonResultSet.getUnicodeStream(4); + byte[] cbuf = new byte[100]; + int len = binInputStream.read(cbuf, 0, cbuf.length); + String colFourVal = new String(cbuf, 0, len, StandardCharsets.UTF_16LE); + assertThat(colFourVal).isEqualTo(STRING_VAL); + } + + @Test + public void testClob() throws SQLException, IOException { + assertThat(resetResultSet()).isTrue(); + java.sql.Clob clobVal = bigQueryJsonResultSet.getClob(4); + StringBuilder textBuilder = new StringBuilder(); + Reader charStream = clobVal.getCharacterStream(); + int intValueOfChar; + while ((intValueOfChar = charStream.read()) != -1) { + textBuilder.append((char) intValueOfChar); + } + charStream.close(); + assertThat(textBuilder.toString()).isEqualTo(STRING_VAL); + } + + @Test + public void testBlob() throws SQLException, IOException { + assertThat(resetResultSet()).isTrue(); + StringBuilder textBuilder = new StringBuilder(); + Blob blobVal = bigQueryJsonResultSet.getBlob(6); + InputStream binInputStream = blobVal.getBinaryStream(); + Reader reader = new BufferedReader(new InputStreamReader(binInputStream)); + int c; + while ((c = reader.read()) != -1) { + textBuilder.append((char) c); + } + assertThat(textBuilder.toString()).isEqualTo(STRING_VAL); + reader.close(); + } + + @Test + public void testBytes() throws SQLException { + assertThat(resetResultSet()).isTrue(); + assertThat(bigQueryJsonResultSet.getBytes("sixth")) + .isEqualTo(STRING_VAL.getBytes(StandardCharsets.UTF_8)); + assertThat(bigQueryJsonResultSet.getBytes(6)) + .isEqualTo(STRING_VAL.getBytes(StandardCharsets.UTF_8)); + } + + @Test + public void testResultSetHoldability() + throws SQLException { // TODO(prashant): Revisit this after Statement's commit is finalised + assertThat(bigQueryJsonResultSet.getHoldability()) + .isEqualTo(ResultSet.HOLD_CURSORS_OVER_COMMIT); + } + + @Test + public void testStatement() throws SQLException { + assertThat(bigQueryJsonResultSet.getStatement()).isEqualTo(statement); + assertThat(bigQueryJsonResultSetNested.getStatement()).isNull(); + } + + @Test + public void testConcurrency() throws SQLException { + assertThat(bigQueryJsonResultSet.getConcurrency()).isEqualTo(ResultSet.CONCUR_READ_ONLY); + assertThat(bigQueryJsonResultSet.getType()).isEqualTo(ResultSet.TYPE_FORWARD_ONLY); + assertThat(bigQueryJsonResultSet.findColumn("first")).isEqualTo(1); + } + + @Test + public void testIterationNested() throws SQLException { + int cnt = 0; + assertThat(bigQueryJsonResultSetNested.isBeforeFirst()).isTrue(); + while (bigQueryJsonResultSetNested.next()) { + cnt++; + if (cnt == 1) { + assertThat(bigQueryJsonResultSetNested.isFirst()).isTrue(); + + } else { // 2nd row is the last row + assertThat(bigQueryJsonResultSetNested.isLast()).isTrue(); + } + assertThat(bigQueryJsonResultSetNested.getInt(1)) + .isEqualTo(cnt); // the first column is index 1 + assertThat(bigQueryJsonResultSetNested.getInt(2)) + .isEqualTo(cnt * 10); // second column has values 10 and 20 + } + assertThat(cnt).isEqualTo(2); + assertThat(bigQueryJsonResultSetNested.next()).isFalse(); + assertThat(bigQueryJsonResultSetNested.isAfterLast()).isTrue(); + } + + @Test + public void testTime() throws SQLException { + assertThat(resetResultSet()).isTrue(); + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("EST")); + Time expectedTime = new Time(TimeUnit.NANOSECONDS.toMillis(aTime.toNanoOfDay())); + assertThat(bigQueryJsonResultSet.getTime(12)) + .isEqualTo(bigQueryJsonResultSet.getTime(12, calendar)); + assertThat(expectedTime).isEqualTo(bigQueryJsonResultSet.getTime(12, calendar)); + assertThat(bigQueryJsonResultSet.getTime("twelfth")) + .isEqualTo(bigQueryJsonResultSet.getTime("twelfth", calendar)); + } + + @Test + public void testTimestamp() throws SQLException { + assertThat(resetResultSet()).isTrue(); + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("EST")); + Timestamp time = bigQueryJsonResultSet.getTimestamp(5); + Timestamp timeWithCal = bigQueryJsonResultSet.getTimestamp(5, calendar); + assertThat(time).isEqualTo(timeWithCal); + assertThat(bigQueryJsonResultSet.getTimestamp("fifth")) + .isEqualTo(bigQueryJsonResultSet.getTimestamp("fifth")); + } + + @Test + public void testDate() throws SQLException { + assertThat(resetResultSet()).isTrue(); + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("EST")); + // epoc should match + assertThat(bigQueryJsonResultSet.getDate(14).getTime()) + .isEqualTo(bigQueryJsonResultSet.getDate(14, calendar).getTime()); + assertThat(Date.valueOf("2020-01-15").getTime()) + .isEqualTo(bigQueryJsonResultSet.getDate(14, calendar).getTime()); + assertThat(bigQueryJsonResultSet.getDate("fourteenth").getTime()) + .isEqualTo(bigQueryJsonResultSet.getDate("fourteenth", calendar).getTime()); + } + + private int resultSetRowCount(BigQueryJsonResultSet resultSet) throws SQLException { + int rowCount = 0; + while (resultSet.next()) { + rowCount++; + } + return rowCount; + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStructTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStructTest.java new file mode 100644 index 000000000000..f07d8cad274e --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStructTest.java @@ -0,0 +1,264 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.FieldValue.Attribute.PRIMITIVE; +import static com.google.cloud.bigquery.FieldValue.Attribute.RECORD; +import static com.google.cloud.bigquery.StandardSQLTypeName.BIGNUMERIC; +import static com.google.cloud.bigquery.StandardSQLTypeName.BOOL; +import static com.google.cloud.bigquery.StandardSQLTypeName.BYTES; +import static com.google.cloud.bigquery.StandardSQLTypeName.DATE; +import static com.google.cloud.bigquery.StandardSQLTypeName.DATETIME; +import static com.google.cloud.bigquery.StandardSQLTypeName.FLOAT64; +import static com.google.cloud.bigquery.StandardSQLTypeName.GEOGRAPHY; +import static com.google.cloud.bigquery.StandardSQLTypeName.INT64; +import static com.google.cloud.bigquery.StandardSQLTypeName.NUMERIC; +import static com.google.cloud.bigquery.StandardSQLTypeName.STRING; +import static com.google.cloud.bigquery.StandardSQLTypeName.TIME; +import static com.google.cloud.bigquery.StandardSQLTypeName.TIMESTAMP; +import static com.google.cloud.bigquery.jdbc.BigQueryErrorMessage.CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.arraySchemaAndValue; +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.primitiveSchemaAndValue; +import static com.google.common.io.BaseEncoding.base64; +import static com.google.common.truth.Truth.assertThat; +import static java.time.Month.MARCH; +import static java.util.Arrays.asList; +import static java.util.Collections.emptyMap; +import static org.junit.Assert.assertThrows; + +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.FieldValue.Attribute; +import com.google.cloud.bigquery.FieldValueList; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.jdbc.rules.TimeZoneRule; +import com.google.common.io.BaseEncoding; +import java.math.BigDecimal; +import java.sql.Array; +import java.sql.Date; +import java.sql.SQLException; +import java.sql.SQLFeatureNotSupportedException; +import java.sql.Struct; +import java.sql.Time; +import java.sql.Timestamp; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.util.Arrays; +import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; + +public class BigQueryJsonStructTest { + + @Rule public final TimeZoneRule timeZoneRule = new TimeZoneRule("UTC"); + + private Struct structWithPrimitiveValues; + private Struct structWithNullValue; + + @Before + public void setUp() { + List> schemaAndValues = + Arrays.asList( + primitiveSchemaAndValue(INT64, "10"), + primitiveSchemaAndValue(BOOL, "true"), + primitiveSchemaAndValue(FLOAT64, "11.2"), + primitiveSchemaAndValue(NUMERIC, "11.2657"), + primitiveSchemaAndValue(BIGNUMERIC, "11.2657"), + primitiveSchemaAndValue(STRING, "one"), + primitiveSchemaAndValue(TIMESTAMP, "1680174859.8200000"), // 2023-03-30 16:44:19.82 + primitiveSchemaAndValue(DATE, "2023-03-30"), + primitiveSchemaAndValue(TIME, "11:14:19.820000"), + primitiveSchemaAndValue(DATETIME, "2023-03-30T11:14:19.8200000"), + primitiveSchemaAndValue(GEOGRAPHY, "POINT(-122 47)"), + primitiveSchemaAndValue(BYTES, base64().encode("one".getBytes()))); + List orderedSchemas = + schemaAndValues.stream().map(Tuple::x).collect(Collectors.toList()); + List orderedValues = + schemaAndValues.stream().map(Tuple::y).collect(Collectors.toList()); + + structWithPrimitiveValues = + new BigQueryJsonStruct( + FieldList.of(orderedSchemas), FieldValue.of(RECORD, FieldValueList.of(orderedValues))); + structWithNullValue = + new BigQueryJsonStruct(FieldList.of(orderedSchemas), FieldValue.of(PRIMITIVE, null)); + } + + @Test + public void structOfPrimitives() throws SQLException { + assertThat(structWithPrimitiveValues.getAttributes()) + .isEqualTo( + Arrays.asList( + 10L, + true, + 11.2, + new BigDecimal("11.2657"), + new BigDecimal("11.2657"), + "one", + Timestamp.valueOf(LocalDateTime.of(2023, MARCH, 30, 11, 14, 19, 820000000)), + Date.valueOf(LocalDate.of(2023, MARCH, 30)), + new Time( + TimeUnit.NANOSECONDS.toMillis( + LocalTime.parse("11:14:19.820").toNanoOfDay())), + Timestamp.valueOf("2023-03-30 11:14:19.8200000"), + "POINT(-122 47)", + "one".getBytes()) + .toArray()); + } + + @Test + public void structOfArrays() throws SQLException { + LocalDateTime aTimeStamp = LocalDateTime.of(2023, MARCH, 30, 11, 14, 19, 820000000); + LocalDate aDate = LocalDate.of(2023, MARCH, 30); + LocalTime aTime = LocalTime.of(11, 14, 19, 820000000); + List> schemaAndValues = + Arrays.asList( + arraySchemaAndValue(INT64, "10", "20"), + arraySchemaAndValue(BOOL, "true", "false"), + arraySchemaAndValue(FLOAT64, "11.2", "33.4"), + arraySchemaAndValue(NUMERIC, "11.2657", "33.4657"), + arraySchemaAndValue(BIGNUMERIC, "11.2657", "33.4657"), + arraySchemaAndValue(STRING, "one", "two"), + arraySchemaAndValue(TIMESTAMP, "1680174859.820000", "1680261259.820000"), + arraySchemaAndValue(DATE, "2023-03-30", "2023-03-31"), + arraySchemaAndValue(TIME, "11:14:19.820000", "11:14:20.820000"), + arraySchemaAndValue( + DATETIME, "2023-03-30T11:14:19.820000", "2023-03-30T11:15:19.820000"), + arraySchemaAndValue(GEOGRAPHY, "POINT(-122 47)", "POINT(-122 48)"), + arraySchemaAndValue( + BYTES, + Stream.of("one", "two") + .map(s -> BaseEncoding.base64().encode(s.getBytes())) + .toArray(String[]::new))); + + List orderedSchemas = + schemaAndValues.stream().map(Tuple::x).collect(Collectors.toList()); + List orderedValues = + schemaAndValues.stream().map(Tuple::y).collect(Collectors.toList()); + + Struct struct = + new BigQueryJsonStruct( + FieldList.of(orderedSchemas), FieldValue.of(RECORD, FieldValueList.of(orderedValues))); + + Object[] attributes = struct.getAttributes(); + assertThat(((Array) attributes[0]).getArray()).isEqualTo(new Long[] {10L, 20L}); + assertThat(((Array) attributes[1]).getArray()).isEqualTo(new Boolean[] {true, false}); + assertThat(((Array) attributes[2]).getArray()).isEqualTo(new Double[] {11.2, 33.4}); + assertThat(((Array) attributes[3]).getArray()) + .isEqualTo(new BigDecimal[] {new BigDecimal("11.2657"), new BigDecimal("33.4657")}); + assertThat(((Array) attributes[4]).getArray()) + .isEqualTo(new BigDecimal[] {new BigDecimal("11.2657"), new BigDecimal("33.4657")}); + assertThat(((Array) attributes[5]).getArray()).isEqualTo(new String[] {"one", "two"}); + assertThat(((Array) attributes[6]).getArray()) + .isEqualTo( + new Timestamp[] { + Timestamp.valueOf(aTimeStamp), // 2023-03-30 16:44:19.82 + Timestamp.valueOf(aTimeStamp.plusDays(1)) + }); + assertThat(((Array) attributes[7]).getArray()) + .isEqualTo(new Date[] {Date.valueOf(aDate), Date.valueOf(aDate.plusDays(1))}); + assertThat(((Array) attributes[8]).getArray()) + .isEqualTo( + new Time[] { + new Time(TimeUnit.NANOSECONDS.toMillis(aTime.toNanoOfDay())), + new Time(TimeUnit.NANOSECONDS.toMillis(aTime.plusSeconds(1).toNanoOfDay())) + }); + assertThat(((Array) attributes[9]).getArray()) // DATETIME + .isEqualTo( + new Timestamp[] { + Timestamp.valueOf("2023-03-30 11:14:19.820000"), + Timestamp.valueOf("2023-03-30 11:15:19.820000") + }); + assertThat(((Array) attributes[10]).getArray()) + .isEqualTo(new String[] {"POINT(-122 47)", "POINT(-122 48)"}); + assertThat(((Array) attributes[11]).getArray()) + .isEqualTo(new byte[][] {"one".getBytes(), "two".getBytes()}); + } + + @Test + public void structOfStructs() throws SQLException { + FieldList profileSchema = + FieldList.of( + Field.of("name", LegacySQLTypeName.STRING), + Field.of("age", LegacySQLTypeName.INTEGER), + Field.of("adult", LegacySQLTypeName.BOOLEAN)); + FieldList addressSchema = + FieldList.of( + Field.of("state", LegacySQLTypeName.STRING), + Field.of("zip", LegacySQLTypeName.INTEGER)); + FieldList rootStructSchema = + FieldList.of( + Field.of("profile", LegacySQLTypeName.RECORD, profileSchema), + Field.of("address", LegacySQLTypeName.RECORD, addressSchema)); + + FieldValue profileValue = + FieldValue.of( + Attribute.RECORD, + FieldValueList.of( + asList( + FieldValue.of(PRIMITIVE, "Arya"), + FieldValue.of(PRIMITIVE, "15"), + FieldValue.of(PRIMITIVE, "false")))); + FieldValue addressValue = + FieldValue.of( + Attribute.RECORD, + FieldValueList.of( + asList(FieldValue.of(PRIMITIVE, "Michigan"), FieldValue.of(PRIMITIVE, "49086")))); + + FieldValue rootStructValue = + FieldValue.of(RECORD, FieldValueList.of(asList(profileValue, addressValue))); + + Struct struct = new BigQueryJsonStruct(rootStructSchema, rootStructValue); + Object[] attributes = struct.getAttributes(); + Struct profileStruct = (Struct) attributes[0]; + Struct addressStruct = (Struct) attributes[1]; + + assertThat(profileStruct.getAttributes()).isEqualTo(asList("Arya", 15L, false).toArray()); + assertThat(addressStruct.getAttributes()).isEqualTo(asList("Michigan", 49086L).toArray()); + } + + @Test + public void structWithNullValue() throws SQLException { + assertThat(structWithNullValue.getAttributes()) + .isEqualTo( + Arrays.asList(0L, false, 0.0, null, null, null, null, null, null, null, null, null) + .toArray()); + } + + @Test + public void getSQLTypeNameIsNotSupported() { + Exception exception = + assertThrows( + SQLFeatureNotSupportedException.class, structWithPrimitiveValues::getSQLTypeName); + assertThat(exception.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } + + @Test + public void getAttributesWithCustomTypeMappingsIsNotSupported() { + Exception exception = + assertThrows( + SQLFeatureNotSupportedException.class, + () -> structWithPrimitiveValues.getAttributes(emptyMap())); + assertThat(exception.getMessage()).isEqualTo(CUSTOMER_TYPE_MAPPING_NOT_SUPPORTED); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandlerTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandlerTest.java new file mode 100644 index 000000000000..0dc085b60218 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandlerTest.java @@ -0,0 +1,142 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.jdbc.BigQueryParameterHandler.BigQueryStatementParameterType; +import org.junit.Test; + +public class BigQueryParameterHandlerTest { + + @Test + public void testGetSetParameterByName() throws Exception { + BigQueryParameterHandler paramHandler = new BigQueryParameterHandler(2); + // Add Param 1 + paramHandler.setParameter( + "ParamKey1", "ParamValue1", String.class, BigQueryStatementParameterType.IN, -1); + String paramValue = (String) paramHandler.getParameter("ParamKey1"); + assertNotNull(paramValue); + assertEquals("ParamValue1", paramValue); + BigQueryStatementParameterType paramType = paramHandler.getParameterType("ParamKey1"); + assertNotNull(paramType); + assertEquals(BigQueryStatementParameterType.IN, paramType); + int scale = paramHandler.getParameterScale("ParamKey1"); + assertEquals(-1, scale); + assertEquals(String.class, paramHandler.getType("ParamKey1")); + assertEquals(StandardSQLTypeName.STRING, paramHandler.getSqlType("ParamKey1")); + + // Add Param 2 + paramHandler.setParameter( + "ParamKey2", "ParamValue2", String.class, BigQueryStatementParameterType.INOUT, 1); + paramValue = (String) paramHandler.getParameter("ParamKey2"); + assertNotNull(paramValue); + assertEquals("ParamValue2", paramValue); + paramType = paramHandler.getParameterType("ParamKey2"); + assertNotNull(paramType); + assertEquals(BigQueryStatementParameterType.INOUT, paramType); + scale = paramHandler.getParameterScale("ParamKey2"); + assertEquals(1, scale); + assertEquals(String.class, paramHandler.getType("ParamKey2")); + assertEquals(StandardSQLTypeName.STRING, paramHandler.getSqlType("ParamKey2")); + + // Update Param 1 + paramHandler.setParameter( + "ParamKey1", "ParamValue1-UPD", String.class, BigQueryStatementParameterType.OUT, 1); + paramValue = (String) paramHandler.getParameter("ParamKey1"); + assertNotNull(paramValue); + assertEquals("ParamValue1-UPD", paramValue); + paramType = paramHandler.getParameterType("ParamKey1"); + assertNotNull(paramType); + assertEquals(BigQueryStatementParameterType.OUT, paramType); + scale = paramHandler.getParameterScale("ParamKey1"); + assertEquals(1, scale); + assertEquals(String.class, paramHandler.getType("ParamKey1")); + assertEquals(StandardSQLTypeName.STRING, paramHandler.getSqlType("ParamKey1")); + + // Update Param 2 + paramHandler.setParameter( + "ParamKey2", "ParamValue2-UPD", String.class, BigQueryStatementParameterType.INOUT, 2); + paramValue = (String) paramHandler.getParameter("ParamKey2"); + assertNotNull(paramValue); + assertEquals("ParamValue2-UPD", paramValue); + paramType = paramHandler.getParameterType("ParamKey2"); + assertNotNull(paramType); + assertEquals(BigQueryStatementParameterType.INOUT, paramType); + scale = paramHandler.getParameterScale("ParamKey2"); + assertEquals(2, scale); + assertEquals(String.class, paramHandler.getType("ParamKey2")); + assertEquals(StandardSQLTypeName.STRING, paramHandler.getSqlType("ParamKey2")); + } + + @Test + public void testGetSetParameterByIndex() throws Exception { + BigQueryParameterHandler paramHandler = new BigQueryParameterHandler(2); + + // Add Param 1 + paramHandler.setParameter(1, "ParamValue1", String.class); + String value = (String) paramHandler.getParameter(1); + assertNotNull(value); + assertEquals("ParamValue1", value); + BigQueryStatementParameterType paramType = paramHandler.getParameterType(1); + assertNotNull(paramType); + assertEquals(BigQueryStatementParameterType.UNSPECIFIED, paramType); + assertEquals(String.class, paramHandler.getType(1)); + assertEquals(StandardSQLTypeName.STRING, paramHandler.getSqlType(1)); + + // Add Param 2 + paramHandler.setParameter( + 2, "ParamValue2", String.class, BigQueryStatementParameterType.IN, -1); + value = (String) paramHandler.getParameter(2); + assertNotNull(value); + assertEquals("ParamValue2", value); + paramType = paramHandler.getParameterType(2); + assertNotNull(paramType); + assertEquals(BigQueryStatementParameterType.IN, paramType); + int scale = paramHandler.getParameterScale(2); + assertEquals(-1, scale); + assertEquals(String.class, paramHandler.getType(2)); + assertEquals(StandardSQLTypeName.STRING, paramHandler.getSqlType(2)); + + // Update Param 1 + paramHandler.setParameter(1, "ParamValue1-UPD", String.class); + value = (String) paramHandler.getParameter(1); + assertNotNull(value); + assertEquals("ParamValue1-UPD", value); + paramType = paramHandler.getParameterType(1); + assertNotNull(paramType); + assertEquals(BigQueryStatementParameterType.UNSPECIFIED, paramType); + assertEquals(String.class, paramHandler.getType(1)); + assertEquals(StandardSQLTypeName.STRING, paramHandler.getSqlType(1)); + + // Update Param 2 + paramHandler.setParameter( + 2, "ParamValue2-UPD", String.class, BigQueryStatementParameterType.OUT, 2); + value = (String) paramHandler.getParameter(2); + assertNotNull(value); + assertEquals("ParamValue2-UPD", value); + paramType = paramHandler.getParameterType(2); + assertNotNull(paramType); + assertEquals(BigQueryStatementParameterType.OUT, paramType); + scale = paramHandler.getParameterScale(2); + assertEquals(2, scale); + assertEquals(String.class, paramHandler.getType(2)); + assertEquals(StandardSQLTypeName.STRING, paramHandler.getSqlType(2)); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnectionTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnectionTest.java new file mode 100644 index 000000000000..ee9d63beb97f --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnectionTest.java @@ -0,0 +1,174 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.utils.TestUtilities.TestConnectionListener; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; + +import java.io.IOException; +import java.sql.*; +import org.junit.Before; +import org.junit.Test; + +public class BigQueryPooledConnectionTest { + private BigQueryConnection bigQueryConnection; + private static final Long LISTENER_POOL_SIZE = 10L; + + @Before + public void setUp() throws IOException, SQLException { + bigQueryConnection = mock(BigQueryConnection.class); + } + + @Test + public void testGetPooledConnection() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertFalse(pooledConnection.inUse()); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertTrue(pooledConnection.inUse()); + } + + @Test + public void testPooledConnectionClose() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertFalse(pooledConnection.inUse()); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertTrue(pooledConnection.inUse()); + + connection.close(); + assertFalse(pooledConnection.inUse()); + } + + @Test + public void testReuseConnectionAfterClose() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertFalse(pooledConnection.inUse()); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertTrue(pooledConnection.inUse()); + + connection.close(); + assertFalse(pooledConnection.inUse()); + + connection = pooledConnection.getConnection(); + assertTrue(pooledConnection.inUse()); + } + + @Test + public void testAddConnectionListener() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + TestConnectionListener listner = new TestConnectionListener(); + pooledConnection.addConnectionEventListener(listner); + + assertTrue(pooledConnection.isListenerPooled(listner)); + } + + @Test + public void testRemoveConnectionListener() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + TestConnectionListener listner = new TestConnectionListener(); + pooledConnection.addConnectionEventListener(listner); + assertEquals(0, listner.getConnectionClosedCount()); + assertEquals(0, listner.getConnectionErrorCount()); + + assertTrue(pooledConnection.isListenerPooled(listner)); + pooledConnection.removeConnectionEventListener(listner); + assertFalse(pooledConnection.isListenerPooled(listner)); + } + + @Test + public void testConnectionHandleClosedByConnection() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + assertFalse(pooledConnection.inUse()); + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertTrue(pooledConnection.inUse()); + + TestConnectionListener listner = new TestConnectionListener(); + pooledConnection.addConnectionEventListener(listner); + assertEquals(0, listner.getConnectionClosedCount()); + assertEquals(0, listner.getConnectionErrorCount()); + + connection.close(); + assertFalse(pooledConnection.inUse()); + assertEquals(1, listner.getConnectionClosedCount()); + assertEquals(0, listner.getConnectionErrorCount()); + + assertTrue(pooledConnection.isListenerPooled(listner)); + } + + @Test + public void testConnectionHandleClosedByPooledConnection() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + assertFalse(pooledConnection.inUse()); + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertTrue(pooledConnection.inUse()); + + TestConnectionListener listner = new TestConnectionListener(); + pooledConnection.addConnectionEventListener(listner); + assertEquals(0, listner.getConnectionClosedCount()); + assertEquals(0, listner.getConnectionErrorCount()); + + pooledConnection.close(); + assertFalse(pooledConnection.inUse()); + assertEquals(1, listner.getConnectionClosedCount()); + assertEquals(0, listner.getConnectionErrorCount()); + + assertTrue(pooledConnection.isListenerPooled(listner)); + } + + @Test + public void testFireConnectionError() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + assertFalse(pooledConnection.inUse()); + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertTrue(pooledConnection.inUse()); + + TestConnectionListener listner = new TestConnectionListener(); + pooledConnection.addConnectionEventListener(listner); + assertEquals(0, listner.getConnectionClosedCount()); + assertEquals(0, listner.getConnectionErrorCount()); + + pooledConnection.fireConnectionError(new SQLException("test")); + assertFalse(pooledConnection.inUse()); + assertEquals(0, listner.getConnectionClosedCount()); + assertEquals(1, listner.getConnectionErrorCount()); + + assertFalse(pooledConnection.isListenerPooled(listner)); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizersTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizersTest.java new file mode 100644 index 000000000000..7332dce936b4 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizersTest.java @@ -0,0 +1,67 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; + +import org.junit.Before; +import org.junit.Test; + +public class BigQueryResultSetFinalizersTest { + Thread arrowWorker; + Thread[] jsonWorkers; + + @Before + public void setUp() { + // create and start the demon threads + arrowWorker = + new Thread( + () -> { + while (true) { + if (Thread.currentThread().isInterrupted()) { + break; + } + } + }); + arrowWorker.setDaemon(true); + Thread jsonWorker = + new Thread( + () -> { + while (true) { + if (Thread.currentThread().isInterrupted()) { + break; + } + } + }); + jsonWorker.setDaemon(true); + jsonWorkers = new Thread[] {jsonWorker}; + arrowWorker.start(); + jsonWorker.start(); + } + + @Test + public void testFinalizeResources() { + BigQueryResultSetFinalizers.ArrowResultSetFinalizer arrowResultSetFinalizer = + new BigQueryResultSetFinalizers.ArrowResultSetFinalizer(null, null, arrowWorker); + arrowResultSetFinalizer.finalizeResources(); + assertThat(arrowWorker.isInterrupted()).isTrue(); + BigQueryResultSetFinalizers.JsonResultSetFinalizer jsonResultSetFinalizer = + new BigQueryResultSetFinalizers.JsonResultSetFinalizer(null, null, jsonWorkers); + jsonResultSetFinalizer.finalizeResources(); + assertThat(jsonWorkers[0].isInterrupted()).isTrue(); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadataTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadataTest.java new file mode 100644 index 000000000000..b4d14296d190 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadataTest.java @@ -0,0 +1,277 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.mock; + +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.common.collect.ImmutableList; +import java.sql.Array; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Types; +import java.util.List; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.class) +public class BigQueryResultSetMetadataTest { + + private BigQueryStatement statement; + + private static Field tenthField = + Field.newBuilder("tenth", LegacySQLTypeName.NUMERIC) + .setName("tenth") + .setType(StandardSQLTypeName.NUMERIC) + .setPrecision(12L) + .setScale(9L) + .build(); + private static final FieldList fieldList = + FieldList.of( + Field.of("first", StandardSQLTypeName.BOOL), + Field.of("second", StandardSQLTypeName.INT64), + Field.of("third", StandardSQLTypeName.FLOAT64), + Field.of("fourth", StandardSQLTypeName.STRING), + Field.of("fifth", StandardSQLTypeName.TIMESTAMP), + Field.of("sixth", StandardSQLTypeName.BYTES), + Field.of("seventh", StandardSQLTypeName.STRING), + Field.newBuilder("eight", StandardSQLTypeName.STRING) + .setMode(Field.Mode.REPEATED) + .build(), + Field.of( + "ninth", + StandardSQLTypeName.STRUCT, + Field.of("first", StandardSQLTypeName.FLOAT64), + Field.of("second", StandardSQLTypeName.TIMESTAMP)), + tenthField, + Field.of("eleventh", StandardSQLTypeName.BIGNUMERIC), + Field.of("twelfth", LegacySQLTypeName.TIME), + Field.of("thirteenth", LegacySQLTypeName.DATE)); + + private static final List fieldListSqlTypes = + ImmutableList.of( + Types.BOOLEAN, + Types.BIGINT, + Types.DOUBLE, + Types.NVARCHAR, + Types.TIMESTAMP, + Types.VARBINARY, + Types.NVARCHAR, + Types.ARRAY, + Types.STRUCT, + Types.NUMERIC, + Types.NUMERIC, + Types.TIME, + Types.DATE); + + private static final List fieldListClassNames = + ImmutableList.of( + "java.lang.Boolean", + "java.lang.Long", + "java.lang.Double", + "java.lang.String", + "java.sql.Timestamp", + byte[].class.getName(), + "java.lang.String", + Array.class.getName(), + "java.sql.Struct", + "java.math.BigDecimal", + "java.math.BigDecimal", + "java.sql.Time", + "java.sql.Date"); + private static final Schema QUERY_SCHEMA = Schema.of(fieldList); + + private ResultSetMetaData resultSetMetaData; + + private ResultSetMetaData resultSetMetaDataNested; + + @Before + public void setUp() throws SQLException { + statement = mock(BigQueryStatement.class); + Thread[] workerThreads = {new Thread()}; + BigQueryJsonResultSet bigQueryJsonResultSet = + BigQueryJsonResultSet.of(QUERY_SCHEMA, 1L, null, statement, workerThreads); + // values for nested types + resultSetMetaData = bigQueryJsonResultSet.getMetaData(); + + // values for nested types + Field fieldEight = fieldList.get("eight"); + // The schema for the nested result set should describe the elements of the array. + Field elementField = fieldEight.toBuilder().setMode(Field.Mode.NULLABLE).build(); + FieldList nestedFieldList = FieldList.of(elementField); + BigQueryFieldValueListWrapper bigQueryFieldValueListWrapperNested = + BigQueryFieldValueListWrapper.getNestedFieldValueListWrapper(nestedFieldList, null); + BigQueryJsonResultSet bigQueryJsonResultSetNested = + BigQueryJsonResultSet.getNestedResultSet( + Schema.of(nestedFieldList), bigQueryFieldValueListWrapperNested, -1, -1); + resultSetMetaDataNested = bigQueryJsonResultSetNested.getMetaData(); + } + + @Test + public void testGetColumnType() throws SQLException { + // match the mapping for all the types in the test dataset + for (int colIndex = 1; colIndex <= 13; colIndex++) { + assertThat(resultSetMetaData.getColumnType(colIndex)) + .isEqualTo(fieldListSqlTypes.get(colIndex - 1)); + } + } + + @Test + public void testGetColumnTypeName() throws SQLException { + assertThat(resultSetMetaData.getColumnTypeName(1)).isEqualTo("BOOL"); + assertThat(resultSetMetaData.getColumnTypeName(2)).isEqualTo("INT64"); + assertThat(resultSetMetaData.getColumnTypeName(3)).isEqualTo("FLOAT64"); + assertThat(resultSetMetaData.getColumnTypeName(4)).isEqualTo("STRING"); + assertThat(resultSetMetaData.getColumnTypeName(5)).isEqualTo("TIMESTAMP"); + assertThat(resultSetMetaData.getColumnTypeName(6)).isEqualTo("BYTES"); + assertThat(resultSetMetaData.getColumnTypeName(7)).isEqualTo("STRING"); + assertThat(resultSetMetaData.getColumnTypeName(8)).isEqualTo("ARRAY"); + assertThat(resultSetMetaData.getColumnTypeName(9)).isEqualTo("STRUCT"); + assertThat(resultSetMetaData.getColumnTypeName(10)).isEqualTo("NUMERIC"); + assertThat(resultSetMetaData.getColumnTypeName(11)).isEqualTo("BIGNUMERIC"); + assertThat(resultSetMetaData.getColumnTypeName(12)).isEqualTo("TIME"); + assertThat(resultSetMetaData.getColumnTypeName(13)).isEqualTo("DATE"); + } + + @Test + public void testColumnClassName() + throws SQLException { // match the mapping for all the types in the test dataset + for (int colIndex = 1; colIndex <= 13; colIndex++) { + assertThat(resultSetMetaData.getColumnClassName(colIndex)) + .isEqualTo(fieldListClassNames.get(colIndex - 1)); + } + } + + @Test + public void testResultSetMetadataProperties() throws SQLException { + assertThat(resultSetMetaData).isNotNull(); + assertThat(resultSetMetaData.getColumnCount()).isEqualTo(13); + assertThat(resultSetMetaData.isAutoIncrement(1)).isFalse(); + assertThat(resultSetMetaData.isSearchable(4)).isTrue(); + assertThat(resultSetMetaData.isCurrency(4)).isFalse(); + assertThat(resultSetMetaData.isReadOnly(4)).isFalse(); + assertThat(resultSetMetaData.isDefinitelyWritable(4)).isFalse(); + assertThat(resultSetMetaData.isWritable(4)).isTrue(); + assertThat(resultSetMetaData.isNullable(4)).isEqualTo(ResultSetMetaData.columnNullableUnknown); + } + + @Test + public void testPrecision() throws SQLException { + assertThat(resultSetMetaData.getPrecision(10)).isEqualTo(12L); + assertThat(resultSetMetaData.getPrecision(1)) + .isEqualTo(0); // schema doesn't have this info, should be defaulted to 0 + } + + @Test + public void testSigned() throws SQLException { + assertThat(resultSetMetaData.isSigned(4)).isFalse(); + assertThat(resultSetMetaData.isSigned(2)).isTrue(); + } + + @Test + public void testCheckNameLabelCatalog() throws SQLException { + assertThat(resultSetMetaData.getColumnLabel(1)).isEqualTo("first"); + assertThat(resultSetMetaData.getColumnName(10)).isEqualTo("tenth"); + assertThat(resultSetMetaData.getColumnName(10)).isEqualTo("tenth"); + assertThat(resultSetMetaData.getSchemaName(10)).isEqualTo(""); + assertThat(resultSetMetaData.getCatalogName(10)).isEqualTo(""); + } + + @Test + public void testCheckCaseSensitive() throws SQLException { + assertThat(resultSetMetaData.isCaseSensitive(2)).isFalse(); + assertThat(resultSetMetaData.isCaseSensitive(4)).isTrue(); + } + + @Test + public void testScale() throws SQLException { + assertThat(resultSetMetaData.getScale(10)).isEqualTo(9L); + assertThat(resultSetMetaData.getScale(4)).isEqualTo(0L); + } + + @Test + public void testColumnDisplaySize() throws SQLException { + assertThat(resultSetMetaData.getColumnDisplaySize(1)).isEqualTo(5); + assertThat(resultSetMetaData.getColumnDisplaySize(13)).isEqualTo(10); + assertThat(resultSetMetaData.getColumnDisplaySize(2)).isEqualTo(10); + assertThat(resultSetMetaData.getColumnDisplaySize(3)).isEqualTo(14); + assertThat(resultSetMetaData.getColumnDisplaySize(12)).isEqualTo(50); + assertThat(resultSetMetaData.getColumnDisplaySize(5)).isEqualTo(16); + } + + // Nested Types + + @Test + public void testResultSetMetaDataNestedColType() throws SQLException { + assertThat(resultSetMetaDataNested).isNotNull(); + assertThat(resultSetMetaDataNested.getColumnType(1)).isEqualTo(Types.NVARCHAR); + assertThat(resultSetMetaDataNested.getColumnClassName(1)).isEqualTo("java.lang.String"); + } + + @Test + public void testNestedresultSetMetaDataNestedProperties() throws SQLException { + assertThat(resultSetMetaDataNested.getColumnCount()).isEqualTo(1); + assertThat(resultSetMetaDataNested.isAutoIncrement(1)).isFalse(); + assertThat(resultSetMetaDataNested.isSearchable(1)).isTrue(); + assertThat(resultSetMetaDataNested.isCurrency(1)).isFalse(); + assertThat(resultSetMetaDataNested.isReadOnly(1)).isFalse(); + assertThat(resultSetMetaDataNested.isDefinitelyWritable(1)).isFalse(); + assertThat(resultSetMetaDataNested.isWritable(1)).isTrue(); + assertThat(resultSetMetaDataNested.isNullable(1)).isEqualTo(ResultSetMetaData.columnNullable); + } + + @Test + public void testNestedPrecision() throws SQLException { + assertThat(resultSetMetaDataNested.getPrecision(1)) + .isEqualTo(0); // schema doesn't have this info, should be defaulted to 0 + } + + @Test + public void testNestedSigned() throws SQLException { + assertThat(resultSetMetaDataNested.isSigned(1)).isFalse(); + } + + @Test + public void testNestedCheckNameLabelCatalog() throws SQLException { + assertThat(resultSetMetaDataNested.getColumnLabel(1)).isEqualTo("eight"); + assertThat(resultSetMetaDataNested.getColumnName(1)).isEqualTo("eight"); + assertThat(resultSetMetaDataNested.getSchemaName(1)).isEqualTo(""); + assertThat(resultSetMetaDataNested.getCatalogName(1)).isEqualTo(""); + } + + @Test + public void testNestedCheckCaseSensitive() throws SQLException { + assertThat(resultSetMetaDataNested.isCaseSensitive(1)).isTrue(); + } + + @Test + public void testNestedScale() throws SQLException { + assertThat(resultSetMetaDataNested.getScale(1)).isEqualTo(0L); + } + + @Test + public void testNestedColumnDisplaySize() throws SQLException { + assertThat(resultSetMetaDataNested.getColumnDisplaySize(1)).isEqualTo(50); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryStatementTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryStatementTest.java new file mode 100644 index 000000000000..22dc0721928c --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryStatementTest.java @@ -0,0 +1,483 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.jdbc.utils.ArrowUtilities.serializeSchema; +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +import com.google.cloud.ServiceOptions; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQuery.QueryResultsOption; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobId; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.JobStatistics; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics; +import com.google.cloud.bigquery.JobStatistics.QueryStatistics.StatementType; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.QueryJobConfiguration.Priority; +import com.google.cloud.bigquery.Schema; +import com.google.cloud.bigquery.StandardSQLTypeName; +import com.google.cloud.bigquery.TableId; +import com.google.cloud.bigquery.TableResult; +import com.google.cloud.bigquery.jdbc.BigQueryStatement.JobIdWrapper; +import com.google.cloud.bigquery.spi.BigQueryRpcFactory; +import com.google.cloud.bigquery.storage.v1.ArrowSchema; +import com.google.cloud.bigquery.storage.v1.BigQueryReadClient; +import com.google.cloud.bigquery.storage.v1.CreateReadSessionRequest; +import com.google.cloud.bigquery.storage.v1.ReadSession; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Maps; +import java.io.IOException; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.BlockingQueue; +import org.apache.arrow.memory.RootAllocator; +import org.apache.arrow.vector.BitVector; +import org.apache.arrow.vector.FieldVector; +import org.apache.arrow.vector.IntVector; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mockito; + +public class BigQueryStatementTest { + + private BigQueryConnection bigQueryConnection; + private static final String PROJECT = "project"; + + private BigQueryRpcFactory rpcFactoryMock; + + private BigQueryReadClient storageReadClient; + + private BigQuery bigquery; + + private BigQueryStatement bigQueryStatement; + + private final String query = "select * from test"; + + private final String jobIdVal = UUID.randomUUID().toString(); + + private JobId jobId; + + private static final FieldList fieldList = + FieldList.of( + Field.of("first", StandardSQLTypeName.BOOL), + Field.of("second", StandardSQLTypeName.INT64)); + + private static final String DEFAULT_TEST_DATASET = "bigquery_test_dataset"; + + private static final TableId TABLE_ID = TableId.of(DEFAULT_TEST_DATASET, PROJECT); + + private static ArrowSchema arrowSchema; + + private final Map LABELS = + new HashMap() { + { + put("key1", "val1"); + put("key2", "val2"); + put("key3", "val3"); + } + }; + + private Job getJobMock( + TableResult result, QueryJobConfiguration configuration, StatementType type) + throws InterruptedException { + Job job = mock(Job.class); + JobStatistics.QueryStatistics statistics = mock(QueryStatistics.class); + JobId jobId = mock(JobId.class); + doReturn(result).when(job).getQueryResults(any(QueryResultsOption.class)); + doReturn(jobId).when(job).getJobId(); + doReturn(configuration).when(job).getConfiguration(); + doReturn(statistics).when(job).getStatistics(); + doReturn(type).when(statistics).getStatementType(); + return job; + } + + @Before + public void setUp() throws IOException, SQLException { + bigQueryConnection = mock(BigQueryConnection.class); + rpcFactoryMock = mock(BigQueryRpcFactory.class); + bigquery = mock(BigQuery.class); + bigQueryConnection.bigQuery = bigquery; + storageReadClient = mock(BigQueryReadClient.class); + jobId = JobId.newBuilder().setJob(jobIdVal).build(); + + doReturn(bigquery).when(bigQueryConnection).getBigQuery(); + doReturn(10L).when(bigQueryConnection).getJobTimeoutInSeconds(); + doReturn(10L).when(bigQueryConnection).getMaxBytesBilled(); + doReturn(LABELS).when(bigQueryConnection).getLabels(); + doReturn(BigQueryJdbcUrlUtility.DEFAULT_QUERY_DIALECT_VALUE) + .when(bigQueryConnection) + .getQueryDialect(); + doReturn(1000L).when(bigQueryConnection).getMaxResults(); + bigQueryStatement = new BigQueryStatement(bigQueryConnection); + VectorSchemaRoot vectorSchemaRoot = getTestVectorSchemaRoot(); + arrowSchema = + ArrowSchema.newBuilder() + .setSerializedSchema(serializeSchema(vectorSchemaRoot.getSchema())) + .build(); + // bigQueryConnection.addOpenStatements(bigQueryStatement); + + } + + private VectorSchemaRoot getTestVectorSchemaRoot() { + RootAllocator allocator = new RootAllocator(); + BitVector boolField = + new BitVector("boolField", allocator); // Mapped with StandardSQLTypeName.BOOL + boolField.allocateNew(2); + boolField.set(0, 0); + boolField.setValueCount(1); + IntVector int64Filed = + new IntVector("int64Filed", allocator); // Mapped with StandardSQLTypeName.INT64 + int64Filed.allocateNew(2); + int64Filed.set(0, 1); + int64Filed.setValueCount(1); + List fieldVectors = ImmutableList.of(boolField, int64Filed); + return new VectorSchemaRoot(fieldVectors); + } + + private BigQueryOptions createBigQueryOptionsForProject( + String project, BigQueryRpcFactory rpcFactory) { + return BigQueryOptions.newBuilder() + .setProjectId(project) + .setServiceRpcFactory(rpcFactory) + .setRetrySettings(ServiceOptions.getNoRetrySettings()) + .build(); + } + + @Test + public void testStatementNonNull() { + assertThat(bigQueryStatement).isNotNull(); + } + + @Ignore + public void testExecFastQueryPath() throws SQLException, InterruptedException { + JobIdWrapper jobIdWrapper = new JobIdWrapper(jobId, null, null); + BigQueryStatement bigQueryStatementSpy = Mockito.spy(bigQueryStatement); + + TableResult result = Mockito.mock(TableResult.class); + BigQueryJsonResultSet jsonResultSet = mock(BigQueryJsonResultSet.class); + QueryJobConfiguration jobConfiguration = QueryJobConfiguration.newBuilder(query).build(); + + doReturn(result).when(bigquery).query(jobConfiguration); + doReturn(jsonResultSet).when(bigQueryStatementSpy).processJsonResultSet(result); + + bigQueryStatementSpy.runQuery(query, jobConfiguration); + // verify the statement's state + assertThat(bigQueryStatementSpy.jobIds.size()).isEqualTo(1); // job id should be created + assertThat(bigQueryStatementSpy.jobIds.get(0)).isNotNull(); + // assertThat(bigQueryStatementSpy.currentResultSet).isNotNull(); + + } + + @Test + public void testExecSlowQueryPath() throws SQLException, InterruptedException { + JobIdWrapper jobIdWrapper = new JobIdWrapper(jobId, null, null); + BigQueryStatement bigQueryStatementSpy = Mockito.spy(bigQueryStatement); + TableResult tableResult = mock(TableResult.class); + QueryJobConfiguration queryJobConfiguration = + QueryJobConfiguration.newBuilder(query) + .setPriority(Priority.BATCH) // query settings for slow query path + .build(); + Job job = getJobMock(tableResult, queryJobConfiguration, StatementType.SELECT); + + doReturn(job).when(bigquery).create(any(JobInfo.class)); + + doReturn(jobIdWrapper) + .when(bigQueryStatementSpy) + .insertJob(any(com.google.cloud.bigquery.JobConfiguration.class)); + doReturn(false).when(bigQueryStatementSpy).useReadAPI(eq(tableResult)); + doReturn(mock(JobId.class)).when(tableResult).getJobId(); + + ResultSet bigQueryJsonResultSet = mock(BigQueryJsonResultSet.class); + + doReturn(bigQueryJsonResultSet) + .when(bigQueryStatementSpy) + .processJsonResultSet(any(TableResult.class)); + + bigQueryStatementSpy.runQuery(query, queryJobConfiguration); + // verify the statement's state + // job id is created during runQuery, but cleaned up after function completes. + assertThat(bigQueryStatementSpy.jobIds.size()).isEqualTo(0); + assertThat(bigQueryStatementSpy.getResultSet()).isEqualTo(bigQueryJsonResultSet); + } + + @Test + public void getArrowResultSetTest() throws SQLException { + BigQueryStatement bigQueryStatementSpy = Mockito.spy(bigQueryStatement); + BigQueryReadClient bigQueryReadClient = Mockito.spy(mock(BigQueryReadClient.class)); + Schema schema = Schema.of(fieldList); + ReadSession readSession = ReadSession.getDefaultInstance(); + doReturn(bigQueryReadClient).when(bigQueryStatementSpy).getBigQueryReadClient(); + doReturn(readSession) + .when(bigQueryStatementSpy) + .getReadSession(any(CreateReadSessionRequest.class)); + Thread mockWorker = new Thread(); + doReturn(mockWorker) + .when(bigQueryStatementSpy) + .populateArrowBufferedQueue( + any(ReadSession.class), any(BlockingQueue.class), any(BigQueryReadClient.class)); + + doReturn(arrowSchema).when(bigQueryStatementSpy).getArrowSchema(any(ReadSession.class)); + + JobId jobId = JobId.of("123"); + TableResult result = Mockito.mock(TableResult.class); + doReturn(schema).when(result).getSchema(); + doReturn(10L).when(result).getTotalRows(); + doReturn(TABLE_ID).when(bigQueryStatementSpy).getDestinationTable(any()); + doReturn(jobId).when(result).getJobId(); + Job job = mock(Job.class); + doReturn(mock(QueryStatistics.class)).when(job).getStatistics(); + doReturn(job).when(bigquery).getJob(jobId); + + ResultSet resultSet = bigQueryStatementSpy.processArrowResultSet(result); + assertThat(resultSet).isNotNull(); + assertThat(resultSet).isInstanceOf(BigQueryArrowResultSet.class); + assertThat(resultSet.isLast()).isFalse(); // as we have 10 rows + } + + @Test + public void getJobTimeoutTest() throws Exception { + QueryJobConfiguration jobConfig = bigQueryStatement.getJobConfig("select 1").build(); + assertEquals(10000L, jobConfig.getJobTimeoutMs().longValue()); + } + + @Test + public void getMaxBytesBilledTest() throws Exception { + QueryJobConfiguration jobConfig = bigQueryStatement.getJobConfig("select 1").build(); + assertEquals(10L, jobConfig.getMaximumBytesBilled().longValue()); + } + + @Test + public void testSetMaxRowsJson() throws SQLException { + assertEquals(0, bigQueryStatement.getMaxRows()); + bigQueryStatement.setMaxRows(10); + assertEquals(10, bigQueryStatement.getMaxRows()); + } + + @Test + public void setQueryTimeoutTest() throws Exception { + bigQueryStatement.setQueryTimeout(3); + BigQueryStatement bigQueryStatementSpy = Mockito.spy(bigQueryStatement); + + TableResult result = Mockito.mock(TableResult.class); + BigQueryJsonResultSet jsonResultSet = mock(BigQueryJsonResultSet.class); + QueryJobConfiguration jobConfiguration = + QueryJobConfiguration.newBuilder(query).setJobTimeoutMs(10000L).build(); + + Job job = getJobMock(result, jobConfiguration, StatementType.SELECT); + doReturn(job).when(bigquery).create(any(JobInfo.class)); + + doReturn(jsonResultSet).when(bigQueryStatementSpy).processJsonResultSet(result); + ArgumentCaptor captor = ArgumentCaptor.forClass(JobInfo.class); + + bigQueryStatementSpy.runQuery(query, jobConfiguration); + verify(bigquery).create(captor.capture()); + QueryJobConfiguration jobConfig = captor.getValue().getConfiguration(); + assertEquals(3000L, jobConfig.getJobTimeoutMs().longValue()); + } + + @Test + public void getLabelsTest() throws Exception { + QueryJobConfiguration jobConfig = bigQueryStatement.getJobConfig("select 1").build(); + Map expected = + new HashMap() { + { + put("key1", "val1"); + put("key2", "val2"); + put("key3", "val3"); + } + }; + + assertTrue(Maps.difference(expected, jobConfig.getLabels()).areEqual()); + } + + @Test + public void getUpdateCountTest() { + bigQueryStatement.setUpdateCount(100L); + assertEquals(100, bigQueryStatement.getUpdateCount()); + assertEquals(100L, bigQueryStatement.getLargeUpdateCount()); + } + + @Test + public void testSetExtraLabels() { + Map extraLabels = new HashMap<>(); + extraLabels.put("extraKey1", "extraVal1"); + bigQueryStatement.setExtraLabels(extraLabels); + assertEquals(extraLabels, bigQueryStatement.getExtraLabels()); + } + + @Test + public void testGetJobConfigWithExtraLabels() { + Map extraLabels = new HashMap<>(); + extraLabels.put("extraKey1", "extraVal1"); + extraLabels.put("key1", "overrideVal1"); // Override connection label + bigQueryStatement.setExtraLabels(extraLabels); + + QueryJobConfiguration jobConfig = bigQueryStatement.getJobConfig("select 1").build(); + Map expectedLabels = new HashMap<>(); + expectedLabels.put("key1", "overrideVal1"); + expectedLabels.put("key2", "val2"); + expectedLabels.put("key3", "val3"); + expectedLabels.put("extraKey1", "extraVal1"); + + assertTrue(Maps.difference(expectedLabels, jobConfig.getLabels()).areEqual()); + } + + @Test + public void testJoblessQuery() throws SQLException, InterruptedException { + // 1. Test JobCreationMode=2 (jobless) + doReturn(true).when(bigQueryConnection).getUseStatelessQueryMode(); + BigQueryStatement joblessStatement = new BigQueryStatement(bigQueryConnection); + BigQueryStatement joblessStatementSpy = Mockito.spy(joblessStatement); + + TableResult tableResultMock = mock(TableResult.class); + doReturn("queryId").when(tableResultMock).getQueryId(); + doReturn(null).when(tableResultMock).getJobId(); + doReturn(tableResultMock) + .when(bigquery) + .queryWithTimeout(any(QueryJobConfiguration.class), any(), any()); + doReturn(mock(BigQueryJsonResultSet.class)) + .when(joblessStatementSpy) + .processJsonResultSet(tableResultMock); + + Job dryRunJobMock = getJobMock(null, null, StatementType.SELECT); + ArgumentCaptor dryRunCaptor = ArgumentCaptor.forClass(JobInfo.class); + doReturn(dryRunJobMock).when(bigquery).create(dryRunCaptor.capture()); + + joblessStatementSpy.executeQuery("SELECT 1"); + + verify(bigquery).queryWithTimeout(any(QueryJobConfiguration.class), any(), any()); + verify(bigquery).create(any(JobInfo.class)); + assertTrue( + Boolean.TRUE.equals( + ((QueryJobConfiguration) dryRunCaptor.getValue().getConfiguration()).dryRun())); + + // 2. Test JobCreationMode=1 (jobful) + Mockito.reset(bigquery); + doReturn(false).when(bigQueryConnection).getUseStatelessQueryMode(); + BigQueryStatement jobfulStatement = new BigQueryStatement(bigQueryConnection); + BigQueryStatement jobfulStatementSpy = Mockito.spy(jobfulStatement); + + TableResult tableResultJobfulMock = mock(TableResult.class); + QueryJobConfiguration jobConf = QueryJobConfiguration.newBuilder("SELECT 1").build(); + Job jobMock = getJobMock(tableResultJobfulMock, jobConf, StatementType.SELECT); + ArgumentCaptor jobfulCaptor = ArgumentCaptor.forClass(JobInfo.class); + doReturn(jobMock).when(bigquery).create(jobfulCaptor.capture()); + doReturn(mock(BigQueryJsonResultSet.class)) + .when(jobfulStatementSpy) + .processJsonResultSet(tableResultJobfulMock); + + jobfulStatementSpy.executeQuery("SELECT 1"); + + verify(bigquery).create(any(JobInfo.class)); + assertTrue( + jobfulCaptor.getAllValues().stream() + .noneMatch( + jobInfo -> + Boolean.TRUE.equals( + ((QueryJobConfiguration) jobInfo.getConfiguration()).dryRun()))); + verify(bigquery, Mockito.never()) + .queryWithTimeout(any(QueryJobConfiguration.class), any(), any()); + } + + @Test + public void testCloseCancelsJob() throws SQLException, InterruptedException { + BigQueryStatement bigQueryStatementSpy = Mockito.spy(bigQueryStatement); + TableResult tableResult = mock(TableResult.class); + Schema mockSchema = Schema.of(FieldList.of()); + doReturn(mockSchema).when(tableResult).getSchema(); + QueryJobConfiguration queryJobConfiguration = + QueryJobConfiguration.newBuilder(query).setPriority(Priority.BATCH).build(); + Job job = getJobMock(tableResult, queryJobConfiguration, StatementType.SELECT); + + doReturn(job).when(bigquery).create(any(JobInfo.class)); + doReturn(false).when(bigQueryStatementSpy).useReadAPI(eq(tableResult)); + doReturn(mock(JobId.class)).when(tableResult).getJobId(); + Mockito.when(job.getQueryResults(any(QueryResultsOption.class))) + .thenAnswer( + invocation -> { + Thread.sleep(2000); + return null; + }); + Thread t = + new Thread( + () -> { + try { + bigQueryStatementSpy.runQuery(query, queryJobConfiguration); + } catch (Exception e) { + } + }); + + t.start(); + // Sleep to allow background thread to call "create". + Thread.sleep(500); + bigQueryStatementSpy.close(); + t.join(); + verify(bigquery, Mockito.times(1)).cancel(any(JobId.class)); + } + + @Test + public void testCancelWithJoblessQuery() throws SQLException, InterruptedException { + doReturn(true).when(bigQueryConnection).getUseStatelessQueryMode(); + BigQueryStatement joblessStatement = new BigQueryStatement(bigQueryConnection); + BigQueryStatement joblessStatementSpy = Mockito.spy(joblessStatement); + + TableResult tableResultMock = mock(TableResult.class); + doReturn(null).when(tableResultMock).getJobId(); + + doReturn(tableResultMock) + .when(bigquery) + .queryWithTimeout(any(QueryJobConfiguration.class), any(), any()); + + Job dryRunJobMock = getJobMock(null, null, StatementType.SELECT); + doReturn(dryRunJobMock).when(bigquery).create(any(JobInfo.class)); + + BigQueryJsonResultSet resultSetMock = mock(BigQueryJsonResultSet.class); + doReturn(resultSetMock).when(joblessStatementSpy).processJsonResultSet(tableResultMock); + + joblessStatementSpy.executeQuery("SELECT 1"); + + // Pre-check: statement has a result set + assertTrue(joblessStatementSpy.currentResultSet != null); + + joblessStatementSpy.cancel(); + + // Post-check: The result set's close() method was called + verify(resultSetMock).close(); + + // And no backend cancellation was attempted + verify(bigquery, Mockito.never()).cancel(any(JobId.class)); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactoryTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactoryTest.java new file mode 100644 index 000000000000..d271df0e26d5 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactoryTest.java @@ -0,0 +1,41 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; + +import java.util.concurrent.ThreadFactory; +import org.junit.Before; +import org.junit.Test; + +public class BigQueryThreadFactoryTest { + + private static ThreadFactory JDBC_THREAD_FACTORY; + + @Before + public void setUp() { + JDBC_THREAD_FACTORY = new BigQueryThreadFactory("BigQuery-Thread-"); + } + + @Test + public void testNewThread() { + assertThat(JDBC_THREAD_FACTORY).isNotNull(); + Thread thread = JDBC_THREAD_FACTORY.newThread(() -> {}); + assertThat(thread).isNotNull(); + assertThat(thread.getName()).startsWith("BigQuery-Thread-"); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerTest.java new file mode 100644 index 000000000000..a758cf15c0f8 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerTest.java @@ -0,0 +1,100 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertThrows; + +import com.google.cloud.bigquery.exception.BigQueryJdbcCoercionException; +import com.google.cloud.bigquery.exception.BigQueryJdbcCoercionNotFoundException; +import com.google.cloud.bigquery.jdbc.TestType.Text; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.function.Function; +import org.junit.Test; + +public class BigQueryTypeCoercerTest { + + @Test + public void shouldReturnSameValueWhenTargetTypeIsSameAsSourceType() { + assertThat(BigQueryTypeCoercer.INSTANCE.coerceTo(Integer.class, 56)).isEqualTo(56); + assertThat(BigQueryTypeCoercer.INSTANCE.coerceTo(Long.class, 56L)).isEqualTo(56L); + } + + @Test + public void shouldBeAbleToComposeMultipleCoercions() { + StringToBigDecimal stringToBigDecimal = new StringToBigDecimal(); + BigDecimalToBigInteger bigDecimalToBigInteger = new BigDecimalToBigInteger(); + + Function composedCoercion = + stringToBigDecimal.andThen(bigDecimalToBigInteger); + + BigQueryTypeCoercer bigQueryTypeCoercer = + new BigQueryTypeCoercerBuilder() + .registerTypeCoercion(composedCoercion, String.class, BigInteger.class) + .build(); + + assertThat(bigQueryTypeCoercer.coerceTo(BigInteger.class, "123567.66884")) + .isEqualTo(BigInteger.valueOf(123567)); + } + + @Test + public void shouldThrowCoercionNotFoundException() { + byte[] bytesArray = {72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33}; + Text text = new Text(bytesArray); + + BigQueryJdbcCoercionNotFoundException exception = + assertThrows( + BigQueryJdbcCoercionNotFoundException.class, + () -> BigQueryTypeCoercer.INSTANCE.coerceTo(Long.class, text)); + assertThat(exception.getMessage()) + .isEqualTo( + "Coercion not found for " + + "[com.google.cloud.bigquery.jdbc.TestType.Text -> java.lang.Long]" + + " conversion"); + } + + @Test + public void shouldThrowCoercionException() { + BigQueryTypeCoercer bigQueryTypeCoercer = + new BigQueryTypeCoercerBuilder() + .registerTypeCoercion(Math::toIntExact, Long.class, Integer.class) + .build(); + BigQueryJdbcCoercionException exception = + assertThrows( + BigQueryJdbcCoercionException.class, + () -> bigQueryTypeCoercer.coerceTo(Integer.class, 2147483648L)); + assertThat(exception.getMessage()).isEqualTo("Coercion error"); + assertThat(exception.getCause()).isInstanceOf(ArithmeticException.class); + } + + private static class StringToBigDecimal implements BigQueryCoercion { + + @Override + public BigDecimal coerce(String value) { + return new BigDecimal(value); + } + } + + private static class BigDecimalToBigInteger implements BigQueryCoercion { + + @Override + public BigInteger coerce(BigDecimal value) { + return value.toBigInteger(); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/FieldValueTypeBigQueryCoercionUtilityTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/FieldValueTypeBigQueryCoercionUtilityTest.java new file mode 100644 index 000000000000..456b750ca5c4 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/FieldValueTypeBigQueryCoercionUtilityTest.java @@ -0,0 +1,378 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.cloud.bigquery.FieldValue.Attribute.PRIMITIVE; +import static com.google.cloud.bigquery.FieldValue.Attribute.RANGE; +import static com.google.cloud.bigquery.FieldValue.Attribute.RECORD; +import static com.google.cloud.bigquery.FieldValue.Attribute.REPEATED; +import static com.google.cloud.bigquery.jdbc.BigQueryTypeCoercionUtility.INSTANCE; +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertThrows; + +import com.google.cloud.bigquery.FieldElementType; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.FieldValueList; +import com.google.cloud.bigquery.Range; +import com.google.cloud.bigquery.exception.BigQueryJdbcCoercionException; +import com.google.common.collect.ImmutableList; +import java.math.BigDecimal; +import java.sql.Date; +import java.sql.Time; +import java.sql.Timestamp; +import java.time.Instant; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; +import java.time.temporal.ChronoUnit; +import java.util.concurrent.TimeUnit; +import org.junit.Test; + +public class FieldValueTypeBigQueryCoercionUtilityTest { + private static final FieldValue STRING_VALUE = FieldValue.of(PRIMITIVE, "sample-string"); + private static final FieldValue INTEGER_VALUE = FieldValue.of(PRIMITIVE, "345"); + private static final FieldValue FLOAT_VALUE = FieldValue.of(PRIMITIVE, "345.21"); + private static final FieldValue SHORT_VALUE = FieldValue.of(PRIMITIVE, "345"); + private static final FieldValue LONG_VALUE = FieldValue.of(PRIMITIVE, "4374218905"); + private static final FieldValue DOUBLE_VALUE = FieldValue.of(PRIMITIVE, "56453.458393"); + private static final FieldValue BIG_DECIMAL_VALUE = FieldValue.of(PRIMITIVE, "56453.458393"); + private static final FieldValue BASE64_ENCODED_VALUE = + FieldValue.of(PRIMITIVE, "SGVsbG8gV29ybGQK"); // Hello World! + private static final FieldValue TIMESTAMP_VALUE = FieldValue.of(PRIMITIVE, "1408452095.22"); + private static final FieldValue DATE_VALUE = FieldValue.of(PRIMITIVE, "2023-03-13"); + private static final FieldValue TIME_VALUE = FieldValue.of(PRIMITIVE, "23:59:59"); + private static final FieldValue TIME_WITH_NANOSECOND_VALUE = + FieldValue.of(PRIMITIVE, "23:59:59.99999"); + private static final FieldValue TRUE_VALUE = FieldValue.of(PRIMITIVE, "true"); + private static final FieldValue FALSE_VALUE = FieldValue.of(PRIMITIVE, "false"); + private static final FieldValue NULL_VALUE = FieldValue.of(PRIMITIVE, null); + private static final FieldValue INTEGER_ARRAY = + FieldValue.of( + REPEATED, + FieldValueList.of( + ImmutableList.of(FieldValue.of(PRIMITIVE, 1), FieldValue.of(PRIMITIVE, 2)))); + private static final FieldValue RECORD_VALUE = + FieldValue.of( + RECORD, ImmutableList.of(INTEGER_VALUE, STRING_VALUE, TIME_VALUE, INTEGER_ARRAY)); + + private static final Range RANGE_DATE = + Range.newBuilder() + .setType(FieldElementType.newBuilder().setType("DATE").build()) + .setStart("1970-01-02") + .setEnd("1970-03-04") + .build(); + + private static final Range RANGE_DATETIME = + Range.newBuilder() + .setType(FieldElementType.newBuilder().setType("DATETIME").build()) + .setStart("2014-08-19 05:41:35.220000") + .setEnd("2015-09-20 06:41:35.220000") + .build(); + + private static final Range RANGE_TIMESTAMP = + Range.newBuilder() + .setType(FieldElementType.newBuilder().setType("TIMESTAMP").build()) + .setStart("2014-08-19 12:41:35.220000+00:00") + .setEnd("2015-09-20 13:41:35.220000+01:00") + .build(); + + private static final FieldValue RANGE_DATE_VALUE = FieldValue.of(RANGE, RANGE_DATE); + private static final FieldValue RANGE_DATE_TIME_VALUE = FieldValue.of(RANGE, RANGE_DATETIME); + private static final FieldValue RANGE_TIMESTAMP_VALUE = FieldValue.of(RANGE, RANGE_TIMESTAMP); + + @Test + public void fieldValueToStringRangeDate() { + String expectedRangeDate = + String.format( + "[%s, %s)", + RANGE_DATE.getStart().getStringValue(), RANGE_DATE.getEnd().getStringValue()); + assertThat(INSTANCE.coerceTo(String.class, RANGE_DATE_VALUE)).isEqualTo(expectedRangeDate); + } + + @Test + public void rangeDateToString() { + String expectedRangeDate = + String.format( + "[%s, %s)", + RANGE_DATE.getStart().getStringValue(), RANGE_DATE.getEnd().getStringValue()); + assertThat(INSTANCE.coerceTo(String.class, RANGE_DATE)).isEqualTo(expectedRangeDate); + } + + @Test + public void fieldValueToStringRangeDatetime() { + String expectedRangeDatetime = + String.format( + "[%s, %s)", + RANGE_DATETIME.getStart().getStringValue(), RANGE_DATETIME.getEnd().getStringValue()); + assertThat(INSTANCE.coerceTo(String.class, RANGE_DATE_TIME_VALUE)) + .isEqualTo(expectedRangeDatetime); + } + + @Test + public void rangeDatetimeToString() { + String expectedRangeDate = + String.format( + "[%s, %s)", + RANGE_DATETIME.getStart().getStringValue(), RANGE_DATETIME.getEnd().getStringValue()); + assertThat(INSTANCE.coerceTo(String.class, RANGE_DATETIME)).isEqualTo(expectedRangeDate); + } + + @Test + public void fieldValueToStringRangeTimestamp() { + String expectedRangeTimestamp = + String.format( + "[%s, %s)", + RANGE_TIMESTAMP.getStart().getStringValue(), RANGE_TIMESTAMP.getEnd().getStringValue()); + assertThat(INSTANCE.coerceTo(String.class, RANGE_TIMESTAMP_VALUE)) + .isEqualTo(expectedRangeTimestamp); + } + + @Test + public void rangeTimestampToString() { + String expectedRangeTimestamp = + String.format( + "[%s, %s)", + RANGE_TIMESTAMP.getStart().getStringValue(), RANGE_TIMESTAMP.getEnd().getStringValue()); + assertThat(INSTANCE.coerceTo(String.class, RANGE_TIMESTAMP)).isEqualTo(expectedRangeTimestamp); + } + + @Test + public void fieldValueToString() { + assertThat(INSTANCE.coerceTo(String.class, STRING_VALUE)).isEqualTo("sample-string"); + } + + @Test + public void fieldValueToStringWhenNull() { + assertThat(INSTANCE.coerceTo(String.class, null)).isNull(); + } + + @Test + public void fieldValueToStringWhenInnerValueIsNull() { + assertThat(INSTANCE.coerceTo(String.class, NULL_VALUE)).isNull(); + } + + @Test + public void fieldValueToStringWhenInnerValueIsAnArray() { + assertThat(INSTANCE.coerceTo(String.class, INTEGER_ARRAY)) + .isEqualTo( + "[FieldValue{attribute=PRIMITIVE, value=1, useInt64Timestamps=false}, FieldValue{attribute=PRIMITIVE, value=2, useInt64Timestamps=false}]"); + } + + @Test + public void fieldValueToInteger() { + assertThat(INSTANCE.coerceTo(Integer.class, INTEGER_VALUE)).isEqualTo(345); + } + + @Test + public void fieldValueToIntegerWhenNull() { + assertThat(INSTANCE.coerceTo(Integer.class, null)).isEqualTo(0); + } + + @Test + public void fieldValueToIntegerWhenInnerValueIsNull() { + assertThat(INSTANCE.coerceTo(Integer.class, NULL_VALUE)).isEqualTo(0); + } + + @Test + public void fieldValueToFloat() { + assertThat(INSTANCE.coerceTo(Float.class, FLOAT_VALUE)).isEqualTo(345.21f); + } + + @Test + public void fieldValueToFloatWhenNull() { + assertThat(INSTANCE.coerceTo(Float.class, null)).isEqualTo(0f); + } + + @Test + public void fieldValueToFloatWhenInnerValueNull() { + assertThat(INSTANCE.coerceTo(Float.class, NULL_VALUE)).isEqualTo(0f); + } + + @Test + public void fieldValueToShort() { + assertThat(INSTANCE.coerceTo(Short.class, SHORT_VALUE)).isEqualTo((short) 345); + } + + @Test + public void fieldValueToShortWhenNull() { + assertThat(INSTANCE.coerceTo(Short.class, null)).isEqualTo((short) 0); + } + + @Test + public void fieldValueToShortWhenInnerValueNull() { + assertThat(INSTANCE.coerceTo(Short.class, NULL_VALUE)).isEqualTo((short) 0); + } + + @Test + public void fieldValueToLong() { + assertThat(INSTANCE.coerceTo(Long.class, LONG_VALUE)).isEqualTo(4374218905L); + } + + @Test + public void fieldValueToLongWhenNull() { + assertThat(INSTANCE.coerceTo(Long.class, null)).isEqualTo(0L); + } + + @Test + public void fieldValueToLongWhenInnerValueIsNull() { + assertThat(INSTANCE.coerceTo(Long.class, NULL_VALUE)).isEqualTo(0L); + } + + @Test + public void fieldValueToDouble() { + assertThat(INSTANCE.coerceTo(Double.class, DOUBLE_VALUE)).isEqualTo(56453.458393D); + } + + @Test + public void fieldValueToDoubleWhenNull() { + assertThat(INSTANCE.coerceTo(Double.class, null)).isEqualTo(0D); + } + + @Test + public void fieldValueToDoubleWhenInnerValueIsNull() { + assertThat(INSTANCE.coerceTo(Double.class, NULL_VALUE)).isEqualTo(0D); + } + + @Test + public void fieldValueToBigDecimal() { + assertThat(INSTANCE.coerceTo(BigDecimal.class, BIG_DECIMAL_VALUE)) + .isEqualTo(new BigDecimal("56453.458393")); + } + + @Test + public void fieldValueToBigDecimalWhenNull() { + assertThat(INSTANCE.coerceTo(BigDecimal.class, null)).isNull(); + } + + @Test + public void fieldValueToBigDecimalWhenInnerValueIsNull() { + assertThat(INSTANCE.coerceTo(BigDecimal.class, NULL_VALUE)).isNull(); + } + + @Test + public void fieldValueToBoolean() { + assertThat(INSTANCE.coerceTo(Boolean.class, TRUE_VALUE)).isTrue(); + assertThat(INSTANCE.coerceTo(Boolean.class, FALSE_VALUE)).isFalse(); + } + + @Test + public void fieldValueToBooleanWhenNull() { + assertThat(INSTANCE.coerceTo(Boolean.class, null)).isFalse(); + } + + @Test + public void fieldValueToBooleanWhenInnerValueIsNull() { + assertThat(INSTANCE.coerceTo(Boolean.class, NULL_VALUE)).isFalse(); + } + + @Test + public void fieldValueToBytesArray() { + assertThat(INSTANCE.coerceTo(byte[].class, BASE64_ENCODED_VALUE)) + .isEqualTo(new byte[] {72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 10}); + } + + @Test + public void fieldValueToBytesArrayWhenNull() { + assertThat(INSTANCE.coerceTo(byte[].class, null)).isNull(); + } + + @Test + public void fieldValueToBytesArrayWhenInnerValueIsNull() { + assertThat(INSTANCE.coerceTo(byte[].class, NULL_VALUE)).isNull(); + } + + @Test + public void fieldValueToTimestamp() { + Instant instant = Instant.EPOCH.plus(TIMESTAMP_VALUE.getTimestampValue(), ChronoUnit.MICROS); + LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.of("UTC")); + assertThat(INSTANCE.coerceTo(Timestamp.class, TIMESTAMP_VALUE)) + .isEqualTo(Timestamp.valueOf(localDateTime)); + } + + @Test + public void fieldValueToTimestampWhenNull() { + assertThat(INSTANCE.coerceTo(Timestamp.class, null)).isNull(); + } + + @Test + public void fieldValueToTimestampWhenInnerValueIsNull() { + assertThat(INSTANCE.coerceTo(Timestamp.class, NULL_VALUE)).isNull(); + } + + @Test + public void fieldValueToTime() { + LocalTime expectedTime = LocalTime.of(23, 59, 59); + assertThat(INSTANCE.coerceTo(Time.class, TIME_VALUE)) + .isEqualTo(new Time(TimeUnit.NANOSECONDS.toMillis(expectedTime.toNanoOfDay()))); + LocalTime expectedTimeWithNanos = LocalTime.parse("23:59:59.99999"); + assertThat(INSTANCE.coerceTo(Time.class, TIME_WITH_NANOSECOND_VALUE)) + .isEqualTo(new Time(TimeUnit.NANOSECONDS.toMillis(expectedTimeWithNanos.toNanoOfDay()))); + } + + @Test + public void fieldValueToTimeWhenNull() { + assertThat(INSTANCE.coerceTo(Time.class, null)).isNull(); + } + + @Test + public void fieldValueToTimeWhenInnerValueIsNull() { + assertThat(INSTANCE.coerceTo(Time.class, NULL_VALUE)).isNull(); + } + + @Test + public void fieldValueToTimeWithInvalidValue() { + FieldValue invalidTime = FieldValue.of(PRIMITIVE, "99:99:99"); + + BigQueryJdbcCoercionException coercionException = + assertThrows( + BigQueryJdbcCoercionException.class, () -> INSTANCE.coerceTo(Time.class, invalidTime)); + assertThat(coercionException.getCause()).isInstanceOf(IllegalArgumentException.class); + } + + @Test + public void fieldValueToDate() { + LocalDate expectedDate = LocalDate.of(2023, 3, 13); + assertThat(INSTANCE.coerceTo(Date.class, DATE_VALUE)).isEqualTo(Date.valueOf(expectedDate)); + } + + @Test + public void fieldValueToDateWhenNull() { + assertThat(INSTANCE.coerceTo(Date.class, null)).isNull(); + } + + @Test + public void fieldValueToDateWhenInnerValueIsNull() { + assertThat(INSTANCE.coerceTo(Date.class, NULL_VALUE)).isNull(); + } + + @Test + public void fieldValueToObject() { + assertThat(INSTANCE.coerceTo(Object.class, RECORD_VALUE)) + .isEqualTo(ImmutableList.of(INTEGER_VALUE, STRING_VALUE, TIME_VALUE, INTEGER_ARRAY)); + } + + @Test + public void fieldValueToObjectWhenNull() { + assertThat(INSTANCE.coerceTo(Object.class, null)).isNull(); + } + + @Test + public void fieldValueToObjectWhenInnerValueIsNull() { + assertThat(INSTANCE.coerceTo(Object.class, NULL_VALUE)).isNull(); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/NullHandlingTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/NullHandlingTest.java new file mode 100644 index 000000000000..ab274c879739 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/NullHandlingTest.java @@ -0,0 +1,44 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static com.google.common.truth.Truth.assertThat; + +import org.junit.Test; + +public class NullHandlingTest { + + @Test + public void shouldReturnNullForNullByDefault() { + assertThat(BigQueryTypeCoercer.INSTANCE.coerceTo(Integer.class, null)).isNull(); + } + + @Test + public void shouldReturnCustomValueForNull() { + BigQueryTypeCoercer bigQueryTypeCoercer = + new BigQueryTypeCoercerBuilder().registerTypeCoercion(new NullToIntegerCoercion()).build(); + + assertThat(bigQueryTypeCoercer.coerceTo(Integer.class, null)).isEqualTo(0); + } + + private static class NullToIntegerCoercion implements BigQueryCoercion { + @Override + public Integer coerce(Void value) { + return 0; // returning zero as the default value + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSourceTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSourceTest.java new file mode 100644 index 000000000000..bacfdae1dadd --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSourceTest.java @@ -0,0 +1,80 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; + +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import java.sql.SQLException; +import javax.sql.PooledConnection; +import org.junit.Test; + +public class PooledConnectionDataSourceTest { + private static final Long LISTENER_POOL_SIZE = 20L; + private static final Long CONNECTION_POOL_SIZE = 20L; + private static final Long DEFAULT_LISTENER_POOL_SIZE = 10L; + private static final Long DEFAULT_CONNECTION_POOL_SIZE = 10L; + + @Test + public void testGetPooledConnection() throws SQLException { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;ConnectionPoolSize=20;ListenerPoolSize=20;"; + + BigQueryConnection bqConnection = mock(BigQueryConnection.class); + doReturn(connectionUrl).when(bqConnection).getConnectionUrl(); + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setConnection(bqConnection); + + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + assertTrue(pooledConnection instanceof BigQueryPooledConnection); + BigQueryPooledConnection bqPooledConnection = (BigQueryPooledConnection) pooledConnection; + assertEquals(LISTENER_POOL_SIZE, bqPooledConnection.getListenerPoolSize()); + assertNotNull(pooledDataSource.getConnectionPoolManager()); + assertEquals( + CONNECTION_POOL_SIZE, pooledDataSource.getConnectionPoolManager().getConnectionPoolSize()); + } + + @Test + public void testGetPooledConnectionNoConnectionURl() throws SQLException { + BigQueryConnection bqConnection = mock(BigQueryConnection.class); + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setConnection(bqConnection); + + assertThrows(BigQueryJdbcRuntimeException.class, () -> pooledDataSource.getPooledConnection()); + } + + @Test + public void testGetPooledConnectionFailInvalidConnectionURl() { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "ListenerPoolSize=invalid"; + BigQueryConnection bqConnection = mock(BigQueryConnection.class); + doReturn(connectionUrl).when(bqConnection).getConnectionUrl(); + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setConnection(bqConnection); + + assertThrows(NumberFormatException.class, () -> pooledDataSource.getPooledConnection()); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionListenerTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionListenerTest.java new file mode 100644 index 000000000000..d200709c43dc --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionListenerTest.java @@ -0,0 +1,172 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.SQLException; +import org.junit.Before; +import org.junit.Test; + +public class PooledConnectionListenerTest { + private BigQueryConnection bigQueryConnection; + private static final Long LISTENER_POOL_SIZE = 10L; + private static final Long CONNECTION_POOL_SIZE = 10L; + + @Before + public void setUp() throws IOException, SQLException { + bigQueryConnection = mock(BigQueryConnection.class); + } + + @Test + public void testAddConnectionListener() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + PooledConnectionListener listener = new PooledConnectionListener(LISTENER_POOL_SIZE); + assertEquals(CONNECTION_POOL_SIZE, listener.getConnectionPoolSize()); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + pooledConnection.addConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + assertNull(listener.getPooledConnection()); + } + + @Test + public void testRemoveConnectionListener() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + PooledConnectionListener listener = new PooledConnectionListener(LISTENER_POOL_SIZE); + assertEquals(CONNECTION_POOL_SIZE, listener.getConnectionPoolSize()); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + pooledConnection.addConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + + assertTrue(pooledConnection.isListenerPooled(listener)); + pooledConnection.removeConnectionEventListener(listener); + assertFalse(pooledConnection.isListenerPooled(listener)); + } + + @Test + public void testConnectionHandleClosedByConnection() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertFalse(pooledConnection.inUse()); + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertTrue(pooledConnection.inUse()); + + PooledConnectionListener listener = new PooledConnectionListener(LISTENER_POOL_SIZE); + assertEquals(CONNECTION_POOL_SIZE, listener.getConnectionPoolSize()); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + pooledConnection.addConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + + connection.close(); + assertFalse(pooledConnection.inUse()); + assertFalse(listener.isConnectionPoolEmpty()); + assertEquals(1, listener.getConnectionPoolCurrentCapacity()); + assertTrue(pooledConnection.isListenerPooled(listener)); + } + + @Test + public void testConnectionHandleClosedByPooledConnection() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertFalse(pooledConnection.inUse()); + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertTrue(pooledConnection.inUse()); + + PooledConnectionListener listener = new PooledConnectionListener(LISTENER_POOL_SIZE); + assertEquals(CONNECTION_POOL_SIZE, listener.getConnectionPoolSize()); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + pooledConnection.addConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + + pooledConnection.close(); + assertFalse(pooledConnection.inUse()); + assertFalse(listener.isConnectionPoolEmpty()); + assertEquals(1, listener.getConnectionPoolCurrentCapacity()); + assertTrue(pooledConnection.isListenerPooled(listener)); + } + + @Test + public void testFireConnectionError() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertFalse(pooledConnection.inUse()); + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertTrue(pooledConnection.inUse()); + + PooledConnectionListener listener = new PooledConnectionListener(LISTENER_POOL_SIZE); + assertEquals(CONNECTION_POOL_SIZE, listener.getConnectionPoolSize()); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + pooledConnection.addConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + + pooledConnection.fireConnectionError(new SQLException("test")); + assertFalse(pooledConnection.inUse()); + assertTrue(listener.isConnectionPoolEmpty()); + assertFalse(pooledConnection.isListenerPooled(listener)); + } + + @Test + public void testGetConnectionWhenPoolEmpty() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertFalse(pooledConnection.inUse()); + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertTrue(pooledConnection.inUse()); + + PooledConnectionListener listener = new PooledConnectionListener(LISTENER_POOL_SIZE); + assertEquals(CONNECTION_POOL_SIZE, listener.getConnectionPoolSize()); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + pooledConnection.addConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + + assertNull(listener.getPooledConnection()); + } + + @Test + public void testGetConnectionWhenPoolNonEmpty() throws SQLException { + BigQueryPooledConnection pooledConnection = new BigQueryPooledConnection(bigQueryConnection); + assertFalse(pooledConnection.inUse()); + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertTrue(pooledConnection.inUse()); + + PooledConnectionListener listener = new PooledConnectionListener(LISTENER_POOL_SIZE); + assertEquals(CONNECTION_POOL_SIZE, listener.getConnectionPoolSize()); + assertEquals(LISTENER_POOL_SIZE, pooledConnection.getListenerPoolSize()); + pooledConnection.addConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + + connection.close(); + assertFalse(pooledConnection.inUse()); + assertFalse(listener.isConnectionPoolEmpty()); + assertTrue(pooledConnection.isListenerPooled(listener)); + + assertNotNull(listener.getPooledConnection()); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/TestType.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/TestType.java new file mode 100644 index 000000000000..3222525c5e59 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/TestType.java @@ -0,0 +1,31 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc; + +public class TestType { + public static class Text { + private final byte[] bytes; + + public Text(byte[] bytes) { + this.bytes = bytes; + } + + public byte[] getBytes() { + return bytes; + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBase.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBase.java new file mode 100644 index 000000000000..5aa41b297512 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBase.java @@ -0,0 +1,21 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc.it; + +import com.google.cloud.bigquery.jdbc.BigQueryJdbcBaseTest; + +public class ITBase extends BigQueryJdbcBaseTest {} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBigQueryJDBCTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBigQueryJDBCTest.java new file mode 100644 index 000000000000..411a4887148c --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBigQueryJDBCTest.java @@ -0,0 +1,4439 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc.it; + +import static com.google.common.truth.Truth.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; + +import com.google.cloud.ServiceOptions; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryError; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.DatasetId; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import com.google.cloud.bigquery.exception.BigQueryJdbcRuntimeException; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlFeatureNotSupportedException; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlSyntaxErrorException; +import com.google.cloud.bigquery.jdbc.BigQueryConnection; +import com.google.cloud.bigquery.jdbc.BigQueryDriver; +import com.google.cloud.bigquery.jdbc.DataSource; +import com.google.cloud.bigquery.jdbc.PooledConnectionDataSource; +import com.google.cloud.bigquery.jdbc.PooledConnectionListener; +import com.google.cloud.bigquery.jdbc.utils.TestUtilities.TestConnectionListener; +import com.google.common.collect.ImmutableMap; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.math.BigDecimal; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.sql.CallableStatement; +import java.sql.Connection; +import java.sql.DatabaseMetaData; +import java.sql.Date; +import java.sql.Driver; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.Time; +import java.sql.Timestamp; +import java.sql.Types; +import java.time.Instant; +import java.time.LocalTime; +import java.util.Arrays; +import java.util.Calendar; +import java.util.HashSet; +import java.util.Properties; +import java.util.Random; +import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.function.BiFunction; +import javax.sql.PooledConnection; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; + +public class ITBigQueryJDBCTest extends ITBase { + static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); + static Connection bigQueryConnection; + static BigQuery bigQuery; + static Statement bigQueryStatement; + static Connection bigQueryConnectionNoReadApi; + static Statement bigQueryStatementNoReadApi; + static final String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3"; + static final String session_enabled_connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3;EnableSession=1"; + private static final String BASE_QUERY = + "SELECT * FROM bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2017 order by" + + " trip_distance asc LIMIT %s"; + private static final Random random = new Random(); + private static final int randomNumber = random.nextInt(9999); + private static final String DATASET = "JDBC_PRESUBMIT_INTEGRATION_DATASET"; + private static final String DATASET2 = "JDBC_PRESUBMIT_INTEGRATION_DATASET_2"; + private static final String CONSTRAINTS_DATASET = "JDBC_CONSTRAINTS_TEST_DATASET"; + private static final String CONSTRAINTS_TABLE_NAME = "JDBC_CONSTRAINTS_TEST_TABLE"; + private static final String CONSTRAINTS_TABLE_NAME2 = "JDBC_CONSTRAINTS_TEST_TABLE2"; + private static final String CONSTRAINTS_TABLE_NAME3 = "JDBC_CONSTRAINTS_TEST_TABLE3"; + private static final String CALLABLE_STMT_PROC_NAME = "IT_CALLABLE_STMT_PROC_TEST"; + private static final String CALLABLE_STMT_TABLE_NAME = "IT_CALLABLE_STMT_PROC_TABLE"; + private static final String CALLABLE_STMT_PARAM_KEY = "CALL_STMT_PARAM_KEY"; + private static final String CALLABLE_STMT_DML_INSERT_PROC_NAME = + "IT_CALLABLE_STMT_PROC_DML_INSERT_TEST"; + private static final String CALLABLE_STMT_DML_UPDATE_PROC_NAME = + "IT_CALLABLE_STMT_PROC_DML_UPDATE_TEST"; + private static final String CALLABLE_STMT_DML_DELETE_PROC_NAME = + "IT_CALLABLE_STMT_PROC_DML_DELETE_TEST"; + private static final String CALLABLE_STMT_DML_TABLE_NAME = "IT_CALLABLE_STMT_PROC_DML_TABLE"; + private static final Long DEFAULT_CONN_POOL_SIZE = 10L; + private static final Long CUSTOM_CONN_POOL_SIZE = 5L; + private static final Object EXCEPTION_REPLACEMENT = "EXCEPTION-WAS-RAISED"; + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + private JsonObject getAuthJson() throws IOException { + final String secret = requireEnvVar("SA_SECRET"); + JsonObject authJson; + // Supporting both formats of SA_SECRET: + // - Local runs can point to a json file + // - Cloud Build has JSON value + try { + InputStream stream = Files.newInputStream(Paths.get(secret)); + InputStreamReader reader = new InputStreamReader(stream); + authJson = JsonParser.parseReader(reader).getAsJsonObject(); + } catch (IOException e) { + authJson = JsonParser.parseString(secret).getAsJsonObject(); + } + assertTrue(authJson.has("client_email")); + assertTrue(authJson.has("private_key")); + assertTrue(authJson.has("project_id")); + return authJson; + } + + private void validateConnection(String connection_uri) throws SQLException { + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "GOOGLE_SERVICE_ACCOUNT", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + String query = + "SELECT DISTINCT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT" + + " 850"; + Statement statement = connection.createStatement(); + ResultSet jsonResultSet = statement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + connection.close(); + } + + @BeforeClass + public static void beforeClass() throws SQLException { + bigQueryConnection = DriverManager.getConnection(connection_uri, new Properties()); + bigQueryStatement = bigQueryConnection.createStatement(); + + Properties noReadApi = new Properties(); + noReadApi.setProperty("EnableHighThroughputAPI", "0"); + bigQueryConnectionNoReadApi = DriverManager.getConnection(connection_uri, noReadApi); + bigQueryStatementNoReadApi = bigQueryConnectionNoReadApi.createStatement(); + bigQuery = BigQueryOptions.newBuilder().build().getService(); + } + + @AfterClass + public static void afterClass() throws SQLException { + bigQueryStatement.close(); + bigQueryConnection.close(); + bigQueryStatementNoReadApi.close(); + bigQueryConnectionNoReadApi.close(); + } + + @Test + public void testValidServiceAccountAuthentication() throws SQLException, IOException { + final JsonObject authJson = getAuthJson(); + File tempFile = File.createTempFile("auth", ".json"); + tempFile.deleteOnExit(); + Files.write(tempFile.toPath(), authJson.toString().getBytes()); + + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + authJson.get("project_id").getAsString() + + ";OAuthType=0;" + + "OAuthPvtKeyPath=" + + tempFile.toPath() + + ";"; + + validateConnection(connection_uri); + } + + @Test + public void testServiceAccountAuthenticationMissingOAuthPvtKeyPath() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=0;"; + + try { + DriverManager.getConnection(connection_uri); + Assert.fail(); + } catch (BigQueryJdbcRuntimeException ex) { + assertTrue(ex.getMessage().contains("No valid credentials provided.")); + } + } + + @Test + public void testValidServiceAccountAuthenticationOAuthPvtKeyAsPath() + throws SQLException, IOException { + final JsonObject authJson = getAuthJson(); + File tempFile = File.createTempFile("auth", ".json"); + tempFile.deleteOnExit(); + Files.write(tempFile.toPath(), authJson.toString().getBytes()); + + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + authJson.get("project_id").getAsString() + + ";OAuthType=0;" + + "OAuthServiceAcctEmail=;" + + ";OAuthPvtKey=" + + tempFile.toPath() + + ";"; + validateConnection(connection_uri); + } + + @Test + public void testValidServiceAccountAuthenticationViaEmailAndPkcs8Key() + throws SQLException, IOException { + final JsonObject authJson = getAuthJson(); + + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + authJson.get("project_id").getAsString() + + ";OAuthType=0;" + + "OAuthServiceAcctEmail=" + + authJson.get("client_email").getAsString() + + ";OAuthPvtKey=" + + authJson.get("private_key").getAsString() + + ";"; + validateConnection(connection_uri); + } + + @Test + public void testValidServiceAccountAuthenticationOAuthPvtKeyAsJson() + throws SQLException, IOException { + final JsonObject authJson = getAuthJson(); + + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + authJson.get("project_id").getAsString() + + ";OAuthType=0;" + + "OAuthServiceAcctEmail=;" + + ";OAuthPvtKey=" + + authJson.toString() + + ";"; + validateConnection(connection_uri); + } + + // TODO(kirl): Enable this test when pipeline has p12 secret available. + @Test + @Ignore + public void testValidServiceAccountAuthenticationP12() throws SQLException, IOException { + final JsonObject authJson = getAuthJson(); + final String p12_file = requireEnvVar("SA_SECRET_P12"); + + final String connectionUri = + getBaseUri(0, authJson.get("project_id").getAsString()) + .append("OAuthServiceAcctEmail", authJson.get("client_email").getAsString()) + .append("OAuthPvtKeyPath", p12_file) + .toString(); + validateConnection(connectionUri); + } + + @Test + @Ignore + public void testValidGoogleUserAccountAuthentication() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAuthType=1;OAuthClientId=client_id;OAuthClientSecret=client_secret;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "GOOGLE_USER_ACCOUNT", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + + Statement statement = connection.createStatement(); + ResultSet resultSet = + statement.executeQuery( + "SELECT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 50"); + + assertEquals(50, resultSetRowCount(resultSet)); + connection.close(); + } + + @Test + @Ignore + public void testValidExternalAccountAuthentication() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=4;" + + "BYOID_AudienceUri=//iam.googleapis.com/projects//locations//workloadIdentityPools//providers/;" + + "BYOID_SubjectTokenType=;BYOID_CredentialSource={\"file\":\"/path/to/file\"};" + + "BYOID_SA_Impersonation_Uri=;BYOID_TokenUri=;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "EXTERNAL_ACCOUNT_AUTH", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + + Statement statement = connection.createStatement(); + ResultSet resultSet = + statement.executeQuery( + "SELECT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 50"); + + assertEquals(50, resultSetRowCount(resultSet)); + connection.close(); + } + + @Test + @Ignore + public void testValidExternalAccountAuthenticationFromFile() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=4;" + + "OAuthPvtKeyPath=/path/to/file;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "EXTERNAL_ACCOUNT_AUTH", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + + Statement statement = connection.createStatement(); + ResultSet resultSet = + statement.executeQuery( + "SELECT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 50"); + + assertEquals(50, resultSetRowCount(resultSet)); + connection.close(); + } + + @Test + @Ignore + public void testValidExternalAccountAuthenticationRawJson() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=4;OAuthPvtKey={\n" + + " \"universe_domain\": \"googleapis.com\",\n" + + " \"type\": \"external_account\",\n" + + " \"audience\":" + + " \"//iam.googleapis.com/projects//locations//workloadIdentityPools//providers/\",\n" + + " \"subject_token_type\": \"\",\n" + + " \"token_url\": \"\",\n" + + " \"credential_source\": {\n" + + " \"file\": \"/path/to/file\"\n" + + " },\n" + + " \"service_account_impersonation_url\": \"\"\n" + + "};"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "EXTERNAL_ACCOUNT_AUTH", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + + Statement statement = connection.createStatement(); + ResultSet resultSet = + statement.executeQuery( + "SELECT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 50"); + + assertEquals(50, resultSetRowCount(resultSet)); + connection.close(); + } + + // TODO(farhan): figure out how to programmatically generate an access token and test + @Test + @Ignore + public void testValidPreGeneratedAccessTokenAuthentication() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=2;OAuthAccessToken=access_token;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "PRE_GENERATED_TOKEN", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + + Statement statement = connection.createStatement(); + ResultSet resultSet = + statement.executeQuery( + "SELECT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 50"); + + assertEquals(50, resultSetRowCount(resultSet)); + connection.close(); + } + + // TODO(obada): figure out how to programmatically generate a refresh token and test + @Test + @Ignore + public void testValidRefreshTokenAuthentication() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=2;OAuthRefreshToken=refresh_token;" + + ";OAuthClientId=client;OAuthClientSecret=secret;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "PRE_GENERATED_TOKEN", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + + Statement statement = connection.createStatement(); + ResultSet resultSet = + statement.executeQuery( + "SELECT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 50"); + + assertEquals(50, resultSetRowCount(resultSet)); + connection.close(); + } + + @Test + public void testValidApplicationDefaultCredentialsAuthentication() throws SQLException { + String connection_uri = getBaseUri(3, PROJECT_ID).toString(); + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "APPLICATION_DEFAULT_CREDENTIALS", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + connection.close(); + } + + // This test is useing the same client email as a main authorization & impersonation. + // It requires account to have 'tokenCreator' permission, see + // https://cloud.google.com/docs/authentication/use-service-account-impersonation#required-roles + @Test + public void testServiceAccountAuthenticationWithImpersonation() throws IOException, SQLException { + final JsonObject authJson = getAuthJson(); + + String connection_uri = + getBaseUri(0, authJson.get("project_id").getAsString()) + .append("OAuthServiceAcctEmail", authJson.get("client_email").getAsString()) + .append("OAuthPvtKey", authJson.get("private_key").getAsString()) + .append("ServiceAccountImpersonationEmail", authJson.get("client_email").getAsString()) + .toString(); + validateConnection(connection_uri); + } + + // This test uses the same client email for the main authorization and a chain of impersonations. + // It requires the account to have 'tokenCreator' permission on itself. + @Test + public void testServiceAccountAuthenticationWithChainedImpersonation() + throws IOException, SQLException { + final JsonObject authJson = getAuthJson(); + String clientEmail = authJson.get("client_email").getAsString(); + + String connection_uri = + getBaseUri(0, authJson.get("project_id").getAsString()) + .append("OAuthServiceAcctEmail", clientEmail) + .append("OAuthPvtKey", authJson.get("private_key").getAsString()) + .append("ServiceAccountImpersonationEmail", clientEmail) + .append("ServiceAccountImpersonationChain", clientEmail + "," + clientEmail) + .toString(); + validateConnection(connection_uri); + } + + @Test + public void testFastQueryPathSmall() throws SQLException { + String query = + "SELECT DISTINCT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT" + + " 850"; + ResultSet jsonResultSet = bigQueryStatement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + assertEquals(850, resultSetRowCount(jsonResultSet)); + } + + @Test + public void testSmallSelectAndVerifyResults() throws SQLException { + String query = + "SELECT repository_name FROM `bigquery-public-data.samples.github_timeline` WHERE" + + " repository_name LIKE 'X%' LIMIT 10"; + + ResultSet resultSet = bigQueryStatement.executeQuery(query); + int rowCount = 0; + while (resultSet.next()) { + assertTrue(resultSet.getString(1).startsWith("X")); + rowCount++; + } + assertEquals(10, rowCount); + } + + @Test + // reads without using ReadAPI and makes sure that they are in order, which implies threads worked + // correctly + public void testIterateOrderJsonMultiThread_NoReadApi() throws SQLException { + int expectedCnt = 10000; + String query = String.format(BASE_QUERY, expectedCnt); + ResultSet rs = bigQueryStatementNoReadApi.executeQuery(query); + int cnt = 0; + double oldTriDis = 0.0d; + while (rs.next()) { + double tripDis = rs.getDouble("trip_distance"); + ++cnt; + assertTrue(oldTriDis <= tripDis); + oldTriDis = tripDis; + } + assertEquals(expectedCnt, cnt); // all the records were retrieved + } + + @Test + public void testInvalidQuery() throws SQLException { + String query = "SELECT *"; + + try { + bigQueryStatement.executeQuery(query); + Assert.fail(); + } catch (BigQueryJdbcException e) { + assertTrue(e.getMessage().contains("SELECT * must have a FROM clause")); + } + } + + @Test + public void testDriver() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3"; + + Driver driver = BigQueryDriver.getRegisteredDriver(); + assertTrue(driver.acceptsURL(connection_uri)); + + Connection connection = driver.connect(connection_uri, new Properties()); + assertNotNull(connection); + Statement st = connection.createStatement(); + boolean rs = + st.execute("Select * FROM `bigquery-public-data.samples.github_timeline` LIMIT 180"); + assertTrue(rs); + connection.close(); + } + + @Test + public void testDefaultDataset() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3;DEFAULTDATASET=testDataset"; + + Driver driver = BigQueryDriver.getRegisteredDriver(); + assertTrue(driver.acceptsURL(connection_uri)); + + Connection connection = driver.connect(connection_uri, new Properties()); + assertNotNull(connection); + assertEquals( + DatasetId.of("testDataset"), ((BigQueryConnection) connection).getDefaultDataset()); + + String connection_uri_null_default_dataset = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3"; + + assertTrue(driver.acceptsURL(connection_uri_null_default_dataset)); + + Connection connection2 = driver.connect(connection_uri_null_default_dataset, new Properties()); + assertNotNull(connection2); + assertNull(((BigQueryConnection) connection2).getDefaultDataset()); + connection.close(); + connection2.close(); + } + + @Test + public void testDefaultDatasetWithProject() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3;DEFAULTDATASET=" + + PROJECT_ID + + ".testDataset"; + + Driver driver = BigQueryDriver.getRegisteredDriver(); + assertTrue(driver.acceptsURL(connection_uri)); + + Connection connection = driver.connect(connection_uri, new Properties()); + assertNotNull(connection); + assertEquals( + DatasetId.of(PROJECT_ID, "testDataset"), + ((BigQueryConnection) connection).getDefaultDataset()); + connection.close(); + } + + @Test + public void testLocation() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3;LOCATION=EU"; + + Driver driver = BigQueryDriver.getRegisteredDriver(); + assertTrue(driver.acceptsURL(connection_uri)); + + Connection connection = driver.connect(connection_uri, new Properties()); + assertEquals(((BigQueryConnection) connection).getLocation(), "EU"); + + Statement statement = connection.createStatement(); + + // Query a dataset in the EU + String query = + "SELECT name FROM `bigquery-public-data.covid19_italy_eu.data_by_province` LIMIT 100"; + ResultSet resultSet = statement.executeQuery(query); + assertEquals(100, resultSetRowCount(resultSet)); + + String connection_uri_null_location = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3"; + + assertTrue(driver.acceptsURL(connection_uri_null_location)); + + Connection connection2 = driver.connect(connection_uri_null_location, new Properties()); + assertNotNull(connection2); + assertNull(((BigQueryConnection) connection2).getLocation()); + connection.close(); + connection2.close(); + } + + @Test + public void testIncorrectLocation() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3;LOCATION=europe-west3"; + + Driver driver = BigQueryDriver.getRegisteredDriver(); + + Connection connection = driver.connect(connection_uri, new Properties()); + assertEquals(((BigQueryConnection) connection).getLocation(), "europe-west3"); + + // Query a dataset in the US + Statement statement = connection.createStatement(); + String query = "SELECT * FROM `bigquery-public-data.samples.github_timeline` LIMIT 180"; + BigQueryJdbcException ex = + assertThrows(BigQueryJdbcException.class, () -> statement.executeQuery(query)); + BigQueryError error = ex.getBigQueryException().getError(); + assertNotNull(error); + assertEquals("accessDenied", error.getReason()); + connection.close(); + } + + @Test + public void testCreateStatementWithResultSetHoldabilityUnsupportedTypeForwardOnly() { + assertThrows( + BigQueryJdbcSqlFeatureNotSupportedException.class, + () -> bigQueryConnection.createStatement(ResultSet.TYPE_FORWARD_ONLY, 1, 1)); + } + + @Test + public void testCreateStatementWithResultSetHoldabilityUnsupportedConcurReadOnly() { + assertThrows( + BigQueryJdbcSqlFeatureNotSupportedException.class, + () -> bigQueryConnection.createStatement(1, ResultSet.CONCUR_READ_ONLY, 1)); + } + + @Test + public void testCreateStatementWithResultSetHoldabilityUnsupportedCloseCursorsAtCommit() { + assertThrows( + BigQueryJdbcSqlFeatureNotSupportedException.class, + () -> bigQueryConnection.createStatement(1, 1, ResultSet.CLOSE_CURSORS_AT_COMMIT)); + } + + @Test + public void testCreateStatementWithResultSetConcurrencyUnsupportedTypeForwardOnly() { + assertThrows( + BigQueryJdbcSqlFeatureNotSupportedException.class, + () -> bigQueryConnection.createStatement(ResultSet.TYPE_FORWARD_ONLY, 1)); + } + + @Test + public void testCreateStatementWithResultSetConcurrencyUnsupportedConcurReadOnly() { + assertThrows( + BigQueryJdbcSqlFeatureNotSupportedException.class, + () -> bigQueryConnection.createStatement(1, ResultSet.CONCUR_READ_ONLY)); + } + + @Test + public void testSetTransactionIsolationToNotSerializableThrowsNotSupported() { + assertThrows( + BigQueryJdbcSqlFeatureNotSupportedException.class, + () -> bigQueryConnection.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE + 1)); + } + + @Test + public void testSetHoldabilityForNonCloseCursorsThrowsNotSupported() throws SQLException { + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + + assertThrows( + BigQueryJdbcSqlFeatureNotSupportedException.class, + () -> connection.setHoldability(ResultSet.CLOSE_CURSORS_AT_COMMIT + 1)); + connection.close(); + } + + @Test + public void testCreateStatementWhenConnectionClosedThrows() throws SQLException { + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + + connection.close(); + assertThrows(IllegalStateException.class, connection::createStatement); + } + + @Test + public void testCreateStatementWithResultSetHoldabilityWhenConnectionClosedThrows() + throws SQLException { + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + + connection.close(); + assertThrows(IllegalStateException.class, () -> connection.createStatement(1, 1, 1)); + } + + @Test + public void testCreateStatementWithResultSetConcurrencyWhenConnectionClosedThrows() + throws SQLException { + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + + connection.close(); + assertThrows(IllegalStateException.class, () -> connection.createStatement(1, 1)); + } + + @Test + public void testSetAutoCommitWithClosedConnectionThrowsIllegalState() throws SQLException { + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + connection.close(); + assertThrows(IllegalStateException.class, () -> connection.setAutoCommit(true)); + } + + @Test + public void testSetCommitToFalseWithoutSessionEnabledThrowsIllegalState() throws SQLException { + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(connection_uri); + assertThrows(IllegalStateException.class, () -> connection.setAutoCommit(false)); + connection.close(); + } + + @Test + public void testCommitWithConnectionClosedThrowsIllegalState() throws SQLException { + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + connection.close(); + assertThrows(IllegalStateException.class, connection::commit); + } + + @Test + public void testCommitToFalseWithoutSessionEnabledThrowsIllegalState() throws SQLException { + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(connection_uri); + assertThrows(IllegalStateException.class, connection::commit); + connection.close(); + } + + @Test + public void testCommitWithNoTransactionStartedThrowsIllegalState() throws SQLException { + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + assertThrows(IllegalStateException.class, connection::commit); + connection.close(); + } + + @Test + public void testRollbackWithConnectionClosedThrowsIllegalState() throws SQLException { + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + connection.close(); + assertThrows(IllegalStateException.class, connection::rollback); + } + + @Test + public void testRollbackToFalseWithoutSessionEnabledThrowsIllegalState() throws SQLException { + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(connection_uri); + assertThrows(IllegalStateException.class, connection::rollback); + connection.close(); + } + + @Test + public void testRollbackWithoutTransactionStartedThrowsIllegalState() throws SQLException { + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + assertThrows(IllegalStateException.class, connection::rollback); + connection.close(); + } + + @Test + public void testGetLocationWhenConnectionClosedThrows() throws SQLException { + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + + connection.close(); + assertThrows( + IllegalStateException.class, () -> ((BigQueryConnection) connection).getLocation()); + connection.close(); + } + + @Test + public void testGetDefaultDatasetWhenConnectionClosedThrows() throws SQLException { + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + + connection.close(); + assertThrows( + IllegalStateException.class, () -> ((BigQueryConnection) connection).getDefaultDataset()); + } + + @Test + public void testGetAutocommitWhenConnectionClosedThrows() throws SQLException { + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + + connection.close(); + assertThrows(IllegalStateException.class, connection::getAutoCommit); + } + + @Test + public void testSetAutocommitWhenConnectionClosedThrows() throws SQLException { + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + + connection.close(); + assertThrows(IllegalStateException.class, () -> connection.setAutoCommit(true)); + } + + @Test + public void testExecuteUpdate() throws SQLException { + String TABLE_NAME = "JDBC_EXECUTE_UPDATE_TABLE_" + randomNumber; + String createQuery = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`StringField` STRING, `IntegerField` INTEGER);", + DATASET, TABLE_NAME); + String insertQuery = + String.format( + "INSERT INTO %s.%s (StringField, IntegerField) " + + "VALUES ('string1',111 ), ('string2',111 ), ('string3',222 ), ('string4',333 );", + DATASET, TABLE_NAME); + String updateQuery = + String.format( + "UPDATE %s.%s SET StringField='Jane Doe' WHERE IntegerField=111", DATASET, TABLE_NAME); + String dropQuery = String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME); + String selectQuery = String.format("SELECT * FROM %s.%s", DATASET, TABLE_NAME); + + int createStatus = bigQueryStatement.executeUpdate(createQuery); + assertEquals(0, createStatus); + + int insertStatus = bigQueryStatement.executeUpdate(insertQuery); + assertEquals(4, insertStatus); + + bigQueryStatement.executeQuery(selectQuery); + int selectStatus = bigQueryStatement.getUpdateCount(); + assertEquals(-1, selectStatus); + + int updateStatus = bigQueryStatement.executeUpdate(updateQuery); + assertEquals(2, updateStatus); + + int dropStatus = bigQueryStatement.executeUpdate(dropQuery); + assertEquals(0, dropStatus); + + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TABLE_NAME)); + } + + @Test + public void testExecuteQueryWithInsert() throws SQLException { + String TABLE_NAME = "JDBC_EXECUTE_UPDATE_TABLE_" + randomNumber; + String createQuery = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`StringField` STRING, `IntegerField` INTEGER);", + DATASET, TABLE_NAME); + String dropQuery = String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME); + + assertEquals(0, bigQueryStatement.executeUpdate(createQuery)); + assertThrows(BigQueryJdbcException.class, () -> bigQueryStatement.executeQuery(dropQuery)); + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TABLE_NAME)); + } + + @Test + public void testExecuteQueryWithMultipleReturns() throws SQLException { + String query = + String.format("SELECT * FROM bigquery-public-data.samples.github_timeline LIMIT 1;"); + + assertThrows(BigQueryJdbcException.class, () -> bigQueryStatement.executeQuery(query + query)); + } + + @Test + public void testExecuteUpdateWithSelect() throws SQLException { + String selectQuery = + String.format("SELECT * FROM bigquery-public-data.samples.github_timeline LIMIT 1;"); + + assertThrows(BigQueryJdbcException.class, () -> bigQueryStatement.executeUpdate(selectQuery)); + } + + @Test + public void testExecuteMethod() throws SQLException { + + String TABLE_NAME = "JDBC_EXECUTE_TABLE_" + randomNumber; + String createQuery = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`StringField` STRING, `IntegerField` INTEGER);", + DATASET, TABLE_NAME); + String insertQuery = + String.format( + "INSERT INTO %s.%s (StringField, IntegerField) " + + "VALUES ('string1',111 ), ('string2',111 ), ('string3',222 ), ('string4',333 );", + DATASET, TABLE_NAME); + String updateQuery = + String.format( + "UPDATE %s.%s SET StringField='Jane Doe' WHERE IntegerField=111", DATASET, TABLE_NAME); + String dropQuery = String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME); + String selectQuery = String.format("SELECT * FROM %s.%s", DATASET, TABLE_NAME); + + boolean createStatus = bigQueryStatement.execute(createQuery); + assertFalse(createStatus); + + boolean insertStatus = bigQueryStatement.execute(insertQuery); + assertFalse(insertStatus); + + boolean selectStatus = bigQueryStatement.execute(selectQuery); + assertTrue(selectStatus); + int selectCount = bigQueryStatement.getUpdateCount(); + assertEquals(-1, selectCount); + ResultSet resultSet = bigQueryStatement.getResultSet(); + assertNotNull(resultSet); + + boolean updateStatus = bigQueryStatement.execute(updateQuery); + assertFalse(updateStatus); + + boolean dropStatus = bigQueryStatement.execute(dropQuery); + assertFalse(dropStatus); + } + + @Test + public void testPreparedExecuteMethod() throws SQLException { + + String TABLE_NAME = "JDBC_PREPARED_EXECUTE_TABLE_" + randomNumber; + String createQuery = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`StringField` STRING, `IntegerField` INTEGER);", + DATASET, TABLE_NAME); + String insertQuery = + String.format( + "INSERT INTO %s.%s (StringField, IntegerField) VALUES (?,?), (?,?), (?,?), (?,?);", + DATASET, TABLE_NAME); + String updateQuery = + String.format("UPDATE %s.%s SET StringField=? WHERE IntegerField=?", DATASET, TABLE_NAME); + String dropQuery = String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME); + String selectQuery = String.format("SELECT ? FROM %s.%s", DATASET, TABLE_NAME); + + boolean createStatus = bigQueryStatement.execute(createQuery); + assertFalse(createStatus); + + PreparedStatement insertStmt = bigQueryConnection.prepareStatement(insertQuery); + insertStmt.setString(1, "String1"); + insertStmt.setInt(2, 111); + insertStmt.setString(3, "String2"); + insertStmt.setInt(4, 222); + insertStmt.setString(5, "String3"); + insertStmt.setInt(6, 333); + insertStmt.setString(7, "String4"); + insertStmt.setInt(8, 444); + + boolean insertStatus = insertStmt.execute(); + assertFalse(insertStatus); + + PreparedStatement selectStmt = bigQueryConnection.prepareStatement(selectQuery); + selectStmt.setString(1, "StringField"); + boolean selectStatus = selectStmt.execute(); + assertTrue(selectStatus); + + int selectCount = selectStmt.getUpdateCount(); + assertEquals(-1, selectCount); + ResultSet resultSet = selectStmt.getResultSet(); + assertNotNull(resultSet); + + PreparedStatement updateStmt = bigQueryConnection.prepareStatement(updateQuery); + updateStmt.setString(1, "Jane Doe"); + updateStmt.setInt(2, 222); + boolean updateStatus = updateStmt.execute(); + assertFalse(updateStatus); + + boolean dropStatus = bigQueryStatement.execute(dropQuery); + assertFalse(dropStatus); + } + + @Test + public void testPreparedStatementThrowsSyntaxError() throws SQLException { + String TABLE_NAME = "JDBC_PREPARED_SYNTAX_ERR_TABLE_" + randomNumber; + String createQuery = + String.format("CREATE OR REPLACE TABLE %s.%s (? STRING, ? INTEGER);", DATASET, TABLE_NAME); + + PreparedStatement preparedStatement = bigQueryConnection.prepareStatement(createQuery); + preparedStatement.setString(1, "StringField"); + preparedStatement.setString(2, "IntegerField"); + assertThrows(BigQueryJdbcSqlSyntaxErrorException.class, preparedStatement::execute); + + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TABLE_NAME)); + } + + @Test + public void testPreparedStatementThrowsJdbcException() throws SQLException { + String TABLE_NAME = "JDBC_PREPARED_MISSING_PARAM_TABLE_" + randomNumber; + String createQuery = + String.format( + "CREATE OR REPLACE TABLE %s.%s (StringField STRING, IntegerField INTEGER);", + DATASET, TABLE_NAME); + boolean createStatus = bigQueryStatement.execute(createQuery); + assertFalse(createStatus); + + String insertQuery = + String.format( + "INSERT INTO %s.%s (StringField, IntegerField) " + "VALUES (?,?), (?,?);", + DATASET, TABLE_NAME); + PreparedStatement insertStmt = bigQueryConnection.prepareStatement(insertQuery); + insertStmt.setString(1, "String1"); + insertStmt.setInt(2, 111); + assertThrows(BigQueryJdbcException.class, insertStmt::execute); + + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TABLE_NAME)); + } + + @Test + public void testSetFetchDirectionFetchReverseThrowsUnsupported() { + assertThrows( + BigQueryJdbcSqlFeatureNotSupportedException.class, + () -> bigQueryStatement.setFetchDirection(ResultSet.FETCH_REVERSE)); + } + + @Test + public void testSetFetchDirectionFetchUnknownThrowsUnsupported() { + assertThrows( + BigQueryJdbcSqlFeatureNotSupportedException.class, + () -> bigQueryStatement.setFetchDirection(ResultSet.FETCH_UNKNOWN)); + } + + @Test + public void testExecuteBatchQueryTypeSelectThrowsUnsupported() throws SQLException { + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + String query = + "SELECT repository_name FROM `bigquery-public-data.samples.github_timeline` WHERE" + + " repository_name LIKE 'X%' LIMIT 10"; + Statement statement = connection.createStatement(); + + assertThrows(IllegalArgumentException.class, () -> statement.addBatch(query)); + connection.close(); + } + + @Test + public void testValidExecuteBatch() throws SQLException { + // setup + String BATCH_TABLE = "JDBC_EXECUTE_BATCH_TABLE_" + random.nextInt(99); + String createBatchTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE); + bigQueryStatement.execute(createBatchTable); + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + // batch bypasses the 16 concurrent limit + int[] results; + for (int i = 0; i < 3; i++) { + String insertQuery = + "INSERT INTO " + + DATASET + + "." + + BATCH_TABLE + + " (id, name, age) " + + "VALUES (12, 'Farhan', " + + randomNumber + + i + + "); "; + statement.addBatch(insertQuery); + } + results = statement.executeBatch(); + + // assertions + assertEquals(3, results.length); + for (int updateCount : results) { + assertEquals(1, updateCount); + } + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, BATCH_TABLE)); + connection.close(); + } + + @Test + public void testAddBatchWithoutSemicolon() throws SQLException { + // setup + String BATCH_TABLE = "JDBC_EXECUTE_BATCH_TABLE_MISSING_SEMICOLON_" + random.nextInt(99); + String createBatchTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE); + bigQueryStatement.execute(createBatchTable); + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + // batch bypasses the 16 concurrent limit + String insertQuery = + "INSERT INTO " + + DATASET + + "." + + BATCH_TABLE + + " (id, name, age) " + + "VALUES (12, 'Farhan', 4)"; + statement.addBatch(insertQuery); + statement.addBatch(insertQuery); + int[] results = statement.executeBatch(); + + // assertions + assertEquals(2, results.length); + for (int updateCount : results) { + assertEquals(1, updateCount); + } + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, BATCH_TABLE)); + connection.close(); + } + + @Test + public void testEmptySqlToAddBatch() throws SQLException { + // setup + String BATCH_TABLE = "JDBC_EMPTY_EXECUTE_BATCH_TABLE_" + random.nextInt(99); + String createBatchTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE); + bigQueryStatement.execute(createBatchTable); + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + // batch bypasses the 16 concurrent limit + String emptySql = ""; + statement.addBatch(emptySql); + int[] results = statement.executeBatch(); + + // assertions + assertEquals(0, results.length); + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, BATCH_TABLE)); + connection.close(); + } + + @Test + public void testEmptyExecuteBatch() throws SQLException { + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + int[] result = statement.executeBatch(); + + assertEquals(0, result.length); + connection.close(); + } + + @Test + public void testNonValidStatementTypeForAddBatchThrows() { + String BATCH_TABLE = "JDBC_EXECUTE_BATCH_TABLE_NON_VALID_TYPE_" + random.nextInt(99); + String createBatchTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE); + assertThrows( + IllegalArgumentException.class, () -> bigQueryStatement.addBatch(createBatchTable)); + } + + @Test + public void testAllValidStatementTypesForAddBatch() throws SQLException { + // setup + String BATCH_TABLE = "JDBC_EXECUTE_BATCH_TABLE_ALL_VALID_TYPES_" + random.nextInt(99); + String createBatchTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE); + bigQueryStatement.execute(createBatchTable); + String insertQuery = + "INSERT INTO " + + DATASET + + "." + + BATCH_TABLE + + " (id, name, age) " + + "VALUES (12, 'Farhan', " + + randomNumber + + "); "; + String updateQuery = + String.format( + "UPDATE %s.%s SET age = 13 WHERE age = %s;", DATASET, BATCH_TABLE, randomNumber); + String deleteQuery = + String.format("DELETE FROM %s.%s WHERE name='Farhan';", DATASET, BATCH_TABLE); + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + statement.addBatch(insertQuery); + statement.addBatch(updateQuery); + statement.addBatch(deleteQuery); + int[] results = statement.executeBatch(); + + // assertion + for (int updateCount : results) { + assertEquals(1, updateCount); + } + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, BATCH_TABLE)); + connection.close(); + } + + @Test + public void testUnsupportedHTAPIFallbacksToStandardQueriesWithRange() throws SQLException { + String selectQuery = "select * from `DATATYPERANGETEST.RangeIntervalTestTable` LIMIT 5000;"; + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;ProjectId=" + + PROJECT_ID + + ";MaxResults=500;HighThroughputActivationRatio=1;" + + "HighThroughputMinTableSize=100;" + + "EnableHighThroughputAPI=1;UnsupportedHTAPIFallback=1;JobCreationMode=1;"; + + // Read data via JDBC + Connection connection = DriverManager.getConnection(connection_uri); + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(selectQuery); + assertNotNull(resultSet); + + ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + resultSet.next(); + assertEquals(3, resultSetMetaData.getColumnCount()); + connection.close(); + } + + @Test + public void testIntervalDataTypeWithArrowResultSet() throws SQLException { + String selectQuery = + "select * from `DATATYPERANGETEST.RangeIntervalTestTable` order by intColumn limit 5000;"; + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;ProjectId=" + + PROJECT_ID + + ";MaxResults=500;HighThroughputActivationRatio=1;" + + "HighThroughputMinTableSize=100;" + + "EnableHighThroughputAPI=1;JobCreationMode=1;"; + + // Read data via JDBC + Connection connection = DriverManager.getConnection(connection_uri); + Statement statement = connection.createStatement(); + + ResultSet resultSet = statement.executeQuery(selectQuery); + assertTrue(resultSet.getClass().getName().contains("BigQueryArrowResultSet")); + resultSet.next(); + assertEquals("0-0 10 -12:30:0.0", resultSet.getString("intervalField")); + + // cleanup + connection.close(); + } + + @Test + public void testIntervalDataTypeWithJsonResultSet() throws SQLException { + String selectQuery = + "select * from `DATATYPERANGETEST.RangeIntervalTestTable` order by intColumn limit 10 ;"; + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;ProjectId=" + + PROJECT_ID + + ";MaxResults=500;HighThroughputActivationRatio=1;" + + "HighThroughputMinTableSize=100;" + + "EnableHighThroughputAPI=0;JobCreationMode=1;"; + + // Read data via JDBC + Connection connection = DriverManager.getConnection(connection_uri); + Statement statement = connection.createStatement(); + + ResultSet resultSet = statement.executeQuery(selectQuery); + assertTrue(resultSet.getClass().getName().contains("BigQueryJsonResultSet")); + resultSet.next(); + assertEquals("0-0 10 -12:30:0", resultSet.getString("intervalField")); + + // cleanup + connection.close(); + } + + @Test + public void testValidLEPEndpointQuery() throws SQLException { + String DATASET = "JDBC_REGIONAL_DATASET"; + String TABLE_NAME = "REGIONAL_TABLE"; + String selectQuery = "select * from " + DATASET + "." + TABLE_NAME; + String connection_uri = + "jdbc:bigquery://https://googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";" + + "EndpointOverrides=BIGQUERY=https://us-east4-bigquery.googleapis.com;"; + + // Read data via JDBC + Connection connection = DriverManager.getConnection(connection_uri); + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(selectQuery); + assertNotNull(resultSet.getMetaData()); + connection.close(); + } + + @Test + public void testValidEndpointWithInvalidBQPortThrows() throws SQLException { + String TABLE_NAME = "JDBC_REGIONAL_TABLE_" + randomNumber; + String selectQuery = "select * from " + DATASET + "." + TABLE_NAME; + String connection_uri = + "jdbc:bigquery://https://googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";" + + "EndpointOverrides=BIGQUERY=https://us-east4-bigquery.googleapis.com:12312312;"; + + // Read data via JDBC + Connection connection = DriverManager.getConnection(connection_uri); + Statement statement = connection.createStatement(); + assertThrows(BigQueryJdbcException.class, () -> statement.executeQuery(selectQuery)); + connection.close(); + } + + @Test + public void testLEPEndpointDataNotFoundThrows() throws SQLException { + String DATASET = "JDBC_REGIONAL_DATASET"; + String TABLE_NAME = "REGIONAL_TABLE"; + String selectQuery = "select * from " + DATASET + "." + TABLE_NAME; + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";" + + "EndpointOverrides=BIGQUERY=https://us-east5-bigquery.googleapis.com;"; + + // Attempting read data via JDBC + Connection connection = DriverManager.getConnection(connection_uri); + Statement statement = connection.createStatement(); + assertThrows(BigQueryJdbcException.class, () -> statement.executeQuery(selectQuery)); + connection.close(); + } + + @Test + public void testValidREPEndpointQuery() throws SQLException { + String DATASET = "JDBC_REGIONAL_DATASET"; + String TABLE_NAME = "REGIONAL_TABLE"; + String selectQuery = "select * from " + DATASET + "." + TABLE_NAME; + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";" + + "EndpointOverrides=BIGQUERY=https://bigquery.us-east4.rep.googleapis.com;"; + + // Read data via JDBC + Connection connection = DriverManager.getConnection(connection_uri); + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(selectQuery); + assertNotNull(resultSet.getMetaData()); + connection.close(); + } + + @Test + public void testREPEndpointDataNotFoundThrows() throws SQLException { + String DATASET = "JDBC_REGIONAL_DATASET"; + String TABLE_NAME = "REGIONAL_TABLE"; + String selectQuery = "select * from " + DATASET + "." + TABLE_NAME; + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";" + + "EndpointOverrides=BIGQUERY=https://bigquery.us-east7.rep.googleapis.com;"; + + // Attempting read data via JDBC + Connection connection = DriverManager.getConnection(connection_uri); + Statement statement = connection.createStatement(); + assertThrows(BigQueryJdbcException.class, () -> statement.executeQuery(selectQuery)); + connection.close(); + } + + @Test + public void testCloseStatement() throws SQLException { + String query = "SELECT * FROM `bigquery-public-data.samples.github_timeline` LIMIT 10"; + Statement statement = bigQueryConnection.createStatement(); + ResultSet jsonResultSet = statement.executeQuery(query); + assertEquals(10, resultSetRowCount(jsonResultSet)); + statement.close(); + assertTrue(statement.isClosed()); + } + + @Test + public void testCloseableStatementSingleResult() throws SQLException { + String query = "SELECT * FROM `bigquery-public-data.samples.github_timeline` LIMIT 10"; + Statement statement = bigQueryConnection.createStatement(); + statement.closeOnCompletion(); + assertTrue(statement.isCloseOnCompletion()); + ResultSet jsonResultSet = statement.executeQuery(query); + assertFalse(statement.isClosed()); + jsonResultSet.close(); + assertTrue(statement.isClosed()); + } + + @Test + public void testCloseableStatementMultiResult() throws SQLException { + String query = "SELECT * FROM `bigquery-public-data.samples.github_timeline` LIMIT 10;"; + Statement statement = bigQueryConnection.createStatement(); + statement.closeOnCompletion(); + assertTrue(statement.isCloseOnCompletion()); + statement.execute(query + query); + assertNotNull(statement.getResultSet()); + assertFalse(statement.isClosed()); + + assertTrue(statement.getMoreResults()); + assertNotNull(statement.getResultSet()); + assertFalse(statement.isClosed()); + + assertFalse(statement.getMoreResults()); + assertTrue(statement.isClosed()); + } + + @Test + public void testCloseableStatementMultiResultExplicitClose() throws SQLException { + String query = "SELECT * FROM `bigquery-public-data.samples.github_timeline` LIMIT 10;"; + Statement statement = bigQueryConnection.createStatement(); + statement.closeOnCompletion(); + assertTrue(statement.isCloseOnCompletion()); + statement.execute(query + query); + ResultSet result = statement.getResultSet(); + result.close(); + assertFalse(statement.isClosed()); + + assertTrue(statement.getMoreResults()); + result = statement.getResultSet(); + result.close(); + assertTrue(statement.isClosed()); + } + + @Test + public void testConnectionIsValid() throws SQLException { + assertTrue(bigQueryConnection.isValid(10)); + assertTrue(bigQueryConnectionNoReadApi.isValid(10)); + } + + @Test + public void testDataSource() throws SQLException { + DataSource ds = new DataSource(); + ds.setURL("jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;"); + ds.setOAuthType(3); + + try (Connection connection = ds.getConnection()) { + assertFalse(connection.isClosed()); + } + } + + @Test + public void testDataSourceOAuthPvtKeyPath() throws SQLException, IOException { + File tempFile = File.createTempFile("auth", ".json"); + tempFile.deleteOnExit(); + DataSource ds = new DataSource(); + ds.setURL("jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;"); + ds.setOAuthType(0); + ds.setOAuthPvtKeyPath(tempFile.toPath().toString()); + assertEquals(0, ds.getOAuthType()); + assertEquals(tempFile.toPath().toString(), ds.getOAuthPvtKeyPath()); + } + + @Test + public void testPreparedStatementSmallSelect() throws SQLException { + String query = + "SELECT * FROM `bigquery-public-data.samples.github_timeline` where repository_language=?" + + " LIMIT 1000"; + PreparedStatement preparedStatement = bigQueryConnection.prepareStatement(query); + preparedStatement.setString(1, "Java"); + + ResultSet jsonResultSet = preparedStatement.executeQuery(); + + int rowCount = resultSetRowCount(jsonResultSet); + assertEquals(1000, rowCount); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + } + + @Test + public void testPreparedStatementExecuteUpdate() throws SQLException { + Random random = new Random(); + String DATASET = "JDBC_INTEGRATION_DATASET"; + String TABLE_NAME1 = "Inventory" + random.nextInt(9999); + String TABLE_NAME2 = "DetailedInventory" + random.nextInt(9999); + + String createQuery = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`product` STRING, `quantity` INTEGER);", + DATASET, TABLE_NAME1); + + String createQuery2 = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`product` STRING, `quantity` INTEGER," + + " `supply_constrained` BOOLEAN, `comment` STRING);", + DATASET, TABLE_NAME2); + + String insertQuery2 = + String.format( + "INSERT INTO %s.%s (product, quantity, supply_constrained, comment) " + + "VALUES ('countertop microwave', 20, NULL,'[]' )," + + " ('front load washer', 20, false,'[]' ), " + + " ('microwave', 20, false,'[]' ), " + + " ('refrigerator', 10, false,'[]' );", + DATASET, TABLE_NAME2); + + bigQueryStatement.execute(createQuery); + bigQueryStatement.execute(createQuery2); + bigQueryStatement.execute(insertQuery2); + + String insertQuery = + String.format( + "INSERT INTO %s.%s (product, quantity) " + "VALUES (?,? ), (?,? );", + DATASET, TABLE_NAME1); + PreparedStatement insertPs = bigQueryConnection.prepareStatement(insertQuery); + insertPs.setString(1, "dishwasher"); + insertPs.setInt(2, 30); + insertPs.setString(3, "dryer"); + insertPs.setInt(4, 30); + + int insertStatus = insertPs.executeUpdate(); + assertEquals(2, insertStatus); + + String updateQuery = + String.format("UPDATE %s.%s SET quantity=? WHERE product=?", DATASET, TABLE_NAME1); + PreparedStatement updatePs = bigQueryConnection.prepareStatement(updateQuery); + updatePs.setString(2, "dryer"); + updatePs.setInt(1, 35); + + int updateStatus = updatePs.executeUpdate(); + assertEquals(1, updateStatus); + + String deleteQuery = String.format("DELETE FROM %s.%s WHERE product=?", DATASET, TABLE_NAME1); + PreparedStatement deletePs = bigQueryConnection.prepareStatement(deleteQuery); + deletePs.setString(1, "dishwasher"); + + int deleteStatus = deletePs.executeUpdate(); + assertEquals(1, deleteStatus); + + String mergeQuery = + String.format( + "MERGE %s.%s T\n" + + "USING %s.%s S\n" + + "ON T.product = S.product\n" + + "WHEN NOT MATCHED AND quantity < ? THEN\n" + + " INSERT(product, quantity, supply_constrained, comment)\n" + + " VALUES(product, quantity, true, ?)\n" + + "WHEN NOT MATCHED THEN\n" + + " INSERT(product, quantity, supply_constrained)\n" + + " VALUES(product, quantity, false)", + DATASET, TABLE_NAME2, DATASET, TABLE_NAME1); + PreparedStatement mergePs = bigQueryConnection.prepareStatement(mergeQuery); + mergePs.setInt(1, 20); + mergePs.setString(2, "comment" + random.nextInt(999)); + + int mergeStatus = mergePs.executeUpdate(); + assertEquals(1, mergeStatus); + + ResultSet rs = + bigQueryStatement.executeQuery( + String.format("SELECT COUNT(*) AS row_count\n" + "FROM %s.%s", DATASET, TABLE_NAME2)); + rs.next(); + assertEquals(5, rs.getInt(1)); + + String dropQuery = String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME1); + int dropStatus = bigQueryStatement.executeUpdate(dropQuery); + assertEquals(0, dropStatus); + bigQueryStatement.execute(String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME2)); + } + + @Test + public void testPreparedStatementDateTimeValues() throws SQLException { + Random random = new Random(); + String DATASET = "JDBC_INTEGRATION_DATASET"; + String TABLE_NAME1 = "DateTimeTestTable" + random.nextInt(9999); + + final String createTableQuery = + "CREATE OR REPLACE TABLE " + + " `%s.%s` " + + " (\n" + + "`StringField` STRING,\n" + + "`IntegerField` INTEGER,\n" + + "`TimestampField` TIMESTAMP,\n" + + "`TimeField` TIME,\n" + + "`DateField` DATE\n" + + ");"; + + String insertQuery = + String.format("INSERT INTO %s.%s VALUES (?,?,?,?,? );", DATASET, TABLE_NAME1); + + bigQueryStatement.execute(String.format(createTableQuery, DATASET, TABLE_NAME1)); + + PreparedStatement insertPs = bigQueryConnection.prepareStatement(insertQuery); + insertPs.setString(1, "dishwasher"); + insertPs.setInt(2, 1); + insertPs.setTimestamp(3, Timestamp.from(Instant.now())); + insertPs.setTime(4, Time.valueOf(LocalTime.NOON)); + insertPs.setDate(5, Date.valueOf("2025-12-3")); + + int insertStatus = insertPs.executeUpdate(); + assertEquals(1, insertStatus); + + ResultSet rs = + bigQueryStatement.executeQuery( + String.format("SELECT COUNT(*) AS row_count\n" + "FROM %s.%s", DATASET, TABLE_NAME1)); + rs.next(); + assertEquals(1, rs.getInt(1)); + + String dropQuery = String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME1); + int dropStatus = bigQueryStatement.executeUpdate(dropQuery); + assertEquals(0, dropStatus); + } + + @Test + public void testValidDestinationTableSavesQueriesWithLegacySQL() throws SQLException { + // setup + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryDialect=BIG_QUERY;" + + "AllowLargeResults=1;" + + "LargeResultTable=destination_table_test_legacy;" + + "LargeResultDataset=INTEGRATION_TESTS;"; + String selectLegacyQuery = + "SELECT * FROM [bigquery-public-data.deepmind_alphafold.metadata] LIMIT 200;"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + ResultSet resultSet = statement.executeQuery(selectLegacyQuery); + + // assertion + assertNotNull(resultSet); + String selectQuery = "SELECT * FROM `INTEGRATION_TESTS.destination_table_test_legacy`;"; + ResultSet actualResultSet = bigQueryStatement.executeQuery(selectQuery); + assertTrue(0 < resultSetRowCount(actualResultSet)); + + // clean up + String deleteRows = "DELETE FROM `INTEGRATION_TESTS.destination_table_test_legacy` WHERE 1=1;"; + bigQueryStatement.execute(deleteRows); + connection.close(); + } + + @Test + public void testValidDestinationTableSavesQueriesWithStandardSQL() throws SQLException { + // setup + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryDialect=SQL;" + + "LargeResultTable=destination_table_test;" + + "LargeResultDataset=INTEGRATION_TESTS;"; + String selectLegacyQuery = + "SELECT * FROM `bigquery-public-data.deepmind_alphafold.metadata` LIMIT 200;"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + ResultSet resultSet = statement.executeQuery(selectLegacyQuery); + + // assertion + assertNotNull(resultSet); + String selectQuery = "SELECT * FROM INTEGRATION_TESTS.destination_table_test;"; + ResultSet actualResultSet = bigQueryStatement.executeQuery(selectQuery); + assertEquals(200, resultSetRowCount(actualResultSet)); + + // clean up + String deleteRows = "DELETE FROM `INTEGRATION_TESTS.destination_table_test` WHERE 1=1;"; + bigQueryStatement.execute(deleteRows); + connection.close(); + } + + @Test + public void testDestinationTableAndDestinationDatasetThatDoesNotExistsCreates() + throws SQLException { + // setup + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryDialect=BIG_QUERY;" + + "AllowLargeResults=1;" + + "LargeResultTable=FakeTable;" + + "LargeResultDataset=FakeDataset;"; + String selectLegacyQuery = + "SELECT * FROM [bigquery-public-data.deepmind_alphafold.metadata] LIMIT 200;"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + ResultSet resultSet = statement.executeQuery(selectLegacyQuery); + + // assertion + assertNotNull(resultSet); + String separateQuery = "SELECT * FROM FakeDataset.FakeTable;"; + boolean result = bigQueryStatement.execute(separateQuery); + assertTrue(result); + + // clean up + bigQueryStatement.execute("DROP SCHEMA FakeDataset CASCADE;"); + connection.close(); + } + + @Test + public void testDestinationTableWithMissingDestinationDatasetDefaults() throws SQLException { + // setup + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryDialect=BIG_QUERY;" + + "AllowLargeResults=1;" + + "LargeResultTable=FakeTable;"; + String selectLegacyQuery = + "SELECT * FROM [bigquery-public-data.deepmind_alphafold.metadata] LIMIT 200;"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + ResultSet resultSet = statement.executeQuery(selectLegacyQuery); + + // assertion + assertNotNull(resultSet); + String separateQuery = "SELECT * FROM _google_jdbc.FakeTable;"; + boolean result = bigQueryStatement.execute(separateQuery); + assertTrue(result); + connection.close(); + } + + @Test + public void testNonSelectForLegacyDestinationTableThrows() throws SQLException { + // setup + String TRANSACTION_TABLE = "JDBC_TRANSACTION_TABLE" + random.nextInt(99); + String createTransactionTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, TRANSACTION_TABLE); + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryDialect=BIG_QUERY;" + + "AllowLargeResults=1;" + + "LargeResultTable=destination_table_test;" + + "LargeResultDataset=INTEGRATION_TESTS;"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act & assertion + assertThrows(BigQueryJdbcException.class, () -> statement.execute(createTransactionTable)); + connection.close(); + } + + @Test + public void testNonSelectForStandardDestinationTableDoesNotThrow() throws SQLException { + // setup + String TRANSACTION_TABLE = "JDBC_TRANSACTION_TABLE" + random.nextInt(99); + String createTransactionTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, TRANSACTION_TABLE); + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryDialect=SQL;" + + "AllowLargeResults=1;" + + "LargeResultTable=destination_table_test;" + + "LargeResultDataset=INTEGRATION_TESTS;"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act & assertion + statement.execute(createTransactionTable); + connection.close(); + } + + @Test + public void testTableConstraints() throws SQLException { + ResultSet primaryKey1 = + bigQueryConnection + .getMetaData() + .getPrimaryKeys(PROJECT_ID, CONSTRAINTS_DATASET, CONSTRAINTS_TABLE_NAME); + primaryKey1.next(); + assertEquals("id", primaryKey1.getString(4)); + assertFalse(primaryKey1.next()); + + ResultSet primaryKey2 = + bigQueryConnection + .getMetaData() + .getPrimaryKeys(PROJECT_ID, CONSTRAINTS_DATASET, CONSTRAINTS_TABLE_NAME2); + primaryKey2.next(); + assertEquals("first_name", primaryKey2.getString(4)); + primaryKey2.next(); + assertEquals("last_name", primaryKey2.getString(4)); + assertFalse(primaryKey2.next()); + + ResultSet foreignKeys = + bigQueryConnection + .getMetaData() + .getImportedKeys(PROJECT_ID, CONSTRAINTS_DATASET, CONSTRAINTS_TABLE_NAME); + foreignKeys.next(); + assertEquals(CONSTRAINTS_TABLE_NAME2, foreignKeys.getString(3)); + assertEquals("first_name", foreignKeys.getString(4)); + assertEquals("name", foreignKeys.getString(8)); + foreignKeys.next(); + assertEquals(CONSTRAINTS_TABLE_NAME2, foreignKeys.getString(3)); + assertEquals("last_name", foreignKeys.getString(4)); + assertEquals("second_name", foreignKeys.getString(8)); + foreignKeys.next(); + assertEquals(CONSTRAINTS_TABLE_NAME3, foreignKeys.getString(3)); + assertEquals("address", foreignKeys.getString(4)); + assertEquals("address", foreignKeys.getString(8)); + assertFalse(foreignKeys.next()); + + ResultSet crossReference = + bigQueryConnection + .getMetaData() + .getCrossReference( + PROJECT_ID, + CONSTRAINTS_DATASET, + CONSTRAINTS_TABLE_NAME2, + PROJECT_ID, + CONSTRAINTS_DATASET, + CONSTRAINTS_TABLE_NAME); + crossReference.next(); + assertEquals(CONSTRAINTS_TABLE_NAME2, crossReference.getString(3)); + assertEquals("first_name", crossReference.getString(4)); + assertEquals("name", crossReference.getString(8)); + crossReference.next(); + assertEquals("last_name", crossReference.getString(4)); + assertEquals("second_name", crossReference.getString(8)); + assertFalse(crossReference.next()); + } + + @Test + public void testDatabaseMetadataGetCatalogs() throws SQLException { + DatabaseMetaData databaseMetaData = bigQueryConnection.getMetaData(); + try (ResultSet rs = databaseMetaData.getCatalogs()) { + assertNotNull("ResultSet from getCatalogs() should not be null", rs); + + ResultSetMetaData rsmd = rs.getMetaData(); + assertNotNull("ResultSetMetaData should not be null", rsmd); + assertEquals("Should have one column", 1, rsmd.getColumnCount()); + assertEquals("Column name should be TABLE_CAT", "TABLE_CAT", rsmd.getColumnName(1)); + + assertTrue("ResultSet should have one row", rs.next()); + assertEquals("Catalog name should match Project ID", PROJECT_ID, rs.getString("TABLE_CAT")); + assertFalse("ResultSet should have no more rows", rs.next()); + } + } + + @Test + public void testDatabaseMetadataGetProcedures() throws SQLException { + String DATASET = "JDBC_INTEGRATION_DATASET"; + String procedureName = "create_customer"; + DatabaseMetaData databaseMetaData = bigQueryConnection.getMetaData(); + ResultSet resultSet = databaseMetaData.getProcedures(PROJECT_ID, DATASET, procedureName); + while (resultSet.next()) { + assertEquals(PROJECT_ID, resultSet.getString("PROCEDURE_CAT")); + assertEquals(DATASET, resultSet.getString("PROCEDURE_SCHEM")); + assertEquals(procedureName, resultSet.getString("PROCEDURE_NAME")); + assertEquals(procedureName, resultSet.getString("SPECIFIC_NAME")); + assertEquals(DatabaseMetaData.procedureResultUnknown, resultSet.getInt("PROCEDURE_TYPE")); + } + } + + @Test + public void testDatabaseMetadataGetProcedureColumns() throws SQLException { + DatabaseMetaData databaseMetaData = bigQueryConnection.getMetaData(); + + // --- Test Case 1: Specific schema and procedure, null column name pattern --- + String specificSchema = "JDBC_INTEGRATION_DATASET"; + String specificProcedure = "create_customer"; + ResultSet resultSet = + databaseMetaData.getProcedureColumns(PROJECT_ID, specificSchema, specificProcedure, null); + int specificProcRows = 0; + boolean foundNameParam = false; + boolean foundIdParam = false; + while (resultSet.next()) { + specificProcRows++; + assertEquals(PROJECT_ID, resultSet.getString("PROCEDURE_CAT")); + assertEquals(specificSchema, resultSet.getString("PROCEDURE_SCHEM")); + assertEquals(specificProcedure, resultSet.getString("PROCEDURE_NAME")); + assertEquals(specificProcedure, resultSet.getString("SPECIFIC_NAME")); + if ("name".equals(resultSet.getString("COLUMN_NAME"))) { + foundNameParam = true; + assertEquals(1, resultSet.getInt("ORDINAL_POSITION")); + } + if ("id".equals(resultSet.getString("COLUMN_NAME"))) { + foundIdParam = true; + assertEquals(2, resultSet.getInt("ORDINAL_POSITION")); + } + } + assertEquals("Should find 2 parameters for " + specificProcedure, 2, specificProcRows); + assertTrue("Parameter 'name' should be found", foundNameParam); + assertTrue("Parameter 'id' should be found", foundIdParam); + resultSet.close(); + + // --- Test Case 2: Specific schema, procedure, and column name pattern --- + String specificColumn = "name"; + resultSet = + databaseMetaData.getProcedureColumns( + PROJECT_ID, specificSchema, specificProcedure, specificColumn); + assertTrue("Should find the specific column 'name'", resultSet.next()); + assertEquals(PROJECT_ID, resultSet.getString("PROCEDURE_CAT")); + assertEquals(specificSchema, resultSet.getString("PROCEDURE_SCHEM")); + assertEquals(specificProcedure, resultSet.getString("PROCEDURE_NAME")); + assertEquals(specificColumn, resultSet.getString("COLUMN_NAME")); + assertEquals(1, resultSet.getInt("ORDINAL_POSITION")); + assertEquals( + (short) DatabaseMetaData.procedureColumnUnknown, resultSet.getShort("COLUMN_TYPE")); + assertEquals(java.sql.Types.NVARCHAR, resultSet.getInt("DATA_TYPE")); + assertEquals("NVARCHAR", resultSet.getString("TYPE_NAME")); + assertFalse("Should only find one row for exact column match", resultSet.next()); + resultSet.close(); + + // --- Test Case 3: Non-existent procedure --- + resultSet = + databaseMetaData.getProcedureColumns( + PROJECT_ID, specificSchema, "non_existent_procedure_xyz", null); + assertFalse("Should not find columns for a non-existent procedure", resultSet.next()); + resultSet.close(); + } + + @Test + public void testDatabaseMetadataGetColumns() throws SQLException { + String DATASET = "JDBC_INTEGRATION_DATASET"; + String TABLE_NAME = "JDBC_DATATYPES_INTEGRATION_TEST_TABLE"; + DatabaseMetaData databaseMetaData = bigQueryConnection.getMetaData(); + + // --- Test Case 1: Specific Column (StringField) --- + ResultSet resultSet = + databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, "StringField"); + + assertTrue(resultSet.next()); + assertEquals(PROJECT_ID, resultSet.getString("TABLE_CAT")); + assertEquals(DATASET, resultSet.getString("TABLE_SCHEM")); + assertEquals(TABLE_NAME, resultSet.getString("TABLE_NAME")); + assertEquals("StringField", resultSet.getString("COLUMN_NAME")); + assertEquals("NVARCHAR", resultSet.getString("TYPE_NAME")); + resultSet.getObject("COLUMN_SIZE"); + assertTrue(resultSet.wasNull()); + resultSet.getObject("DECIMAL_DIGITS"); + assertTrue(resultSet.wasNull()); + assertEquals(1, resultSet.getInt("NULLABLE")); + assertEquals(6, resultSet.getInt("ORDINAL_POSITION")); + assertFalse(resultSet.next()); + + // --- Test Case 2: All Columns --- + resultSet = databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, null); + assertTrue(resultSet.next()); + int count = 0; + do { + count++; + assertEquals(PROJECT_ID, resultSet.getString("TABLE_CAT")); + assertEquals(DATASET, resultSet.getString("TABLE_SCHEM")); + assertEquals(TABLE_NAME, resultSet.getString("TABLE_NAME")); + assertNotNull(resultSet.getString("COLUMN_NAME")); + } while (resultSet.next()); + assertEquals(16, count); + + // --- Test Case 3: Column Name Pattern Matching (%Field) --- + resultSet = databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, "%Time%"); + assertTrue(resultSet.next()); + count = 0; + do { + count++; + String columnName = resultSet.getString("COLUMN_NAME"); + assertTrue(columnName.contains("Time")); + } while (resultSet.next()); + assertEquals(3, count); + + // --- Test Case 4: Column Name Pattern Matching (Integer%) --- + resultSet = databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, "Integer%"); + assertTrue(resultSet.next()); + assertEquals("IntegerField", resultSet.getString("COLUMN_NAME")); + assertEquals("BIGINT", resultSet.getString("TYPE_NAME")); + assertEquals(19, resultSet.getInt("COLUMN_SIZE")); + assertEquals(0, resultSet.getInt("DECIMAL_DIGITS")); + assertEquals(10, resultSet.getInt("NUM_PREC_RADIX")); + assertEquals(1, resultSet.getInt("NULLABLE")); + assertEquals(2, resultSet.getInt("ORDINAL_POSITION")); + assertFalse(resultSet.next()); + + // --- Test Case 5: Specific Column (BooleanField) --- + resultSet = databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, "BooleanField"); + assertTrue(resultSet.next()); + assertEquals("BooleanField", resultSet.getString("COLUMN_NAME")); + assertEquals("BOOLEAN", resultSet.getString("TYPE_NAME")); + assertEquals(1, resultSet.getInt("COLUMN_SIZE")); + resultSet.getObject("DECIMAL_DIGITS"); + assertTrue(resultSet.wasNull()); + resultSet.getObject("NUM_PREC_RADIX"); + assertTrue(resultSet.wasNull()); + assertEquals(1, resultSet.getInt("NULLABLE")); + assertEquals(1, resultSet.getInt("ORDINAL_POSITION")); + assertFalse(resultSet.next()); + + // --- Test Case 6: Specific Column (NumericField) --- + resultSet = databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, "NumericField"); + assertTrue(resultSet.next()); + assertEquals("NumericField", resultSet.getString("COLUMN_NAME")); + assertEquals("NUMERIC", resultSet.getString("TYPE_NAME")); + assertEquals(38, resultSet.getInt("COLUMN_SIZE")); + assertEquals(9, resultSet.getInt("DECIMAL_DIGITS")); + assertEquals(10, resultSet.getInt("NUM_PREC_RADIX")); + assertEquals(1, resultSet.getInt("NULLABLE")); + assertEquals(4, resultSet.getInt("ORDINAL_POSITION")); + assertFalse(resultSet.next()); + + // --- Test Case 7: Specific Column (BytesField) --- + resultSet = databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, "BytesField"); + assertTrue(resultSet.next()); + assertEquals("BytesField", resultSet.getString("COLUMN_NAME")); + assertEquals("VARBINARY", resultSet.getString("TYPE_NAME")); + resultSet.getObject("COLUMN_SIZE"); + assertTrue(resultSet.wasNull()); + resultSet.getObject("DECIMAL_DIGITS"); + assertTrue(resultSet.wasNull()); + resultSet.getObject("NUM_PREC_RADIX"); + assertTrue(resultSet.wasNull()); + assertEquals(1, resultSet.getInt("NULLABLE")); + assertEquals(7, resultSet.getInt("ORDINAL_POSITION")); + assertFalse(resultSet.next()); + + // --- Test Case 8: Specific Column (ArrayField) --- + resultSet = databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, "ArrayField"); + assertTrue(resultSet.next()); + assertEquals("ArrayField", resultSet.getString("COLUMN_NAME")); + assertEquals("ARRAY", resultSet.getString("TYPE_NAME")); + resultSet.getObject("COLUMN_SIZE"); + assertTrue(resultSet.wasNull()); + resultSet.getObject("DECIMAL_DIGITS"); + assertTrue(resultSet.wasNull()); + resultSet.getObject("NUM_PREC_RADIX"); + assertTrue(resultSet.wasNull()); + assertEquals(1, resultSet.getInt("NULLABLE")); + assertEquals(9, resultSet.getInt("ORDINAL_POSITION")); + assertFalse(resultSet.next()); + + // --- Test Case 9: Specific Column (TimestampField) --- + resultSet = databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, "TimestampField"); + assertTrue(resultSet.next()); + assertEquals("TimestampField", resultSet.getString("COLUMN_NAME")); + assertEquals("TIMESTAMP", resultSet.getString("TYPE_NAME")); + assertEquals(29, resultSet.getInt("COLUMN_SIZE")); + resultSet.getObject("DECIMAL_DIGITS"); + assertTrue(resultSet.wasNull()); + resultSet.getObject("NUM_PREC_RADIX"); + assertTrue(resultSet.wasNull()); + assertEquals(1, resultSet.getInt("NULLABLE")); + assertEquals(10, resultSet.getInt("ORDINAL_POSITION")); + assertFalse(resultSet.next()); + + // --- Test Case 10: Specific Column (DateField) --- + resultSet = databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, "DateField"); + assertTrue(resultSet.next()); + assertEquals("DateField", resultSet.getString("COLUMN_NAME")); + assertEquals("DATE", resultSet.getString("TYPE_NAME")); + assertEquals(10, resultSet.getInt("COLUMN_SIZE")); + resultSet.getObject("DECIMAL_DIGITS"); + assertTrue(resultSet.wasNull()); + resultSet.getObject("NUM_PREC_RADIX"); + assertTrue(resultSet.wasNull()); + assertEquals(1, resultSet.getInt("NULLABLE")); + assertEquals(11, resultSet.getInt("ORDINAL_POSITION")); + assertFalse(resultSet.next()); + + // --- Test Case 11: Specific Column (TimeField) --- + resultSet = databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, "TimeField"); + assertTrue(resultSet.next()); + assertEquals("TimeField", resultSet.getString("COLUMN_NAME")); + assertEquals("TIME", resultSet.getString("TYPE_NAME")); + assertEquals(15, resultSet.getInt("COLUMN_SIZE")); + resultSet.getObject("DECIMAL_DIGITS"); + assertTrue(resultSet.wasNull()); + resultSet.getObject("NUM_PREC_RADIX"); + assertTrue(resultSet.wasNull()); + assertEquals(1, resultSet.getInt("NULLABLE")); + assertEquals(12, resultSet.getInt("ORDINAL_POSITION")); + assertFalse(resultSet.next()); + + // --- Test Case 12: Specific Column (DateTimeField) --- + resultSet = databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, "DateTimeField"); + assertTrue(resultSet.next()); + assertEquals("DateTimeField", resultSet.getString("COLUMN_NAME")); + assertEquals("TIMESTAMP", resultSet.getString("TYPE_NAME")); + assertEquals(29, resultSet.getInt("COLUMN_SIZE")); + resultSet.getObject("DECIMAL_DIGITS"); + assertTrue(resultSet.wasNull()); + resultSet.getObject("NUM_PREC_RADIX"); + assertTrue(resultSet.wasNull()); + assertEquals(1, resultSet.getInt("NULLABLE")); + assertEquals(13, resultSet.getInt("ORDINAL_POSITION")); + assertFalse(resultSet.next()); + + // --- Test Case 13: Specific Column (GeographyField) --- + resultSet = databaseMetaData.getColumns(PROJECT_ID, DATASET, TABLE_NAME, "GeographyField"); + assertTrue(resultSet.next()); + assertEquals("GeographyField", resultSet.getString("COLUMN_NAME")); + assertEquals("VARCHAR", resultSet.getString("TYPE_NAME")); + resultSet.getObject("COLUMN_SIZE"); + assertTrue(resultSet.wasNull()); + resultSet.getObject("DECIMAL_DIGITS"); + assertTrue(resultSet.wasNull()); + resultSet.getObject("NUM_PREC_RADIX"); + assertTrue(resultSet.wasNull()); + assertEquals(1, resultSet.getInt("NULLABLE")); + assertEquals(14, resultSet.getInt("ORDINAL_POSITION")); + assertFalse(resultSet.next()); + } + + @Test + public void testDatabaseMetadataGetTables() throws SQLException { + DatabaseMetaData databaseMetaData = bigQueryConnection.getMetaData(); + String DATASET = "JDBC_TABLE_TYPES_TEST"; + + // --- Test Case 1: Get all tables (types = null) --- + ResultSet rsAll = databaseMetaData.getTables(PROJECT_ID, DATASET, null, null); + Set allTableNames = new HashSet<>(); + while (rsAll.next()) { + allTableNames.add(rsAll.getString("TABLE_NAME")); + } + assertTrue(allTableNames.contains("base_table")); + assertTrue(allTableNames.contains("my_view")); + assertTrue(allTableNames.contains("external_table")); + assertTrue(allTableNames.contains("my_materialized_view")); + assertTrue(allTableNames.contains("base_table_clone")); + assertTrue(allTableNames.contains("base_table_snapshot")); + assertEquals(6, allTableNames.size()); + + // --- Test Case 2: Get only "TABLE" type --- + ResultSet rsTable = + databaseMetaData.getTables(PROJECT_ID, DATASET, null, new String[] {"TABLE"}); + Set tableNames = new HashSet<>(); + while (rsTable.next()) { + tableNames.add(rsTable.getString("TABLE_NAME")); + } + assertTrue(tableNames.contains("base_table")); + assertTrue(tableNames.contains("base_table_clone")); + assertEquals(2, tableNames.size()); + + // --- Test Case 3: Get "VIEW" type --- + ResultSet rsView = databaseMetaData.getTables(PROJECT_ID, DATASET, null, new String[] {"VIEW"}); + assertTrue(rsView.next()); + assertEquals("my_view", rsView.getString("TABLE_NAME")); + assertEquals("VIEW", rsView.getString("TABLE_TYPE")); + assertFalse(rsView.next()); + + // --- Test Case 4: Get "EXTERNAL TABLE" type --- + ResultSet rsExternal = + databaseMetaData.getTables(PROJECT_ID, DATASET, null, new String[] {"EXTERNAL"}); + assertTrue(rsExternal.next()); + assertEquals("external_table", rsExternal.getString("TABLE_NAME")); + assertEquals("EXTERNAL", rsExternal.getString("TABLE_TYPE")); + assertFalse(rsExternal.next()); + + // --- Test Case 5: Get "MATERIALIZED_VIEW" type --- + ResultSet rsMaterialized = + databaseMetaData.getTables(PROJECT_ID, DATASET, null, new String[] {"MATERIALIZED_VIEW"}); + assertTrue(rsMaterialized.next()); + assertEquals("my_materialized_view", rsMaterialized.getString("TABLE_NAME")); + assertEquals("MATERIALIZED_VIEW", rsMaterialized.getString("TABLE_TYPE")); + assertFalse(rsMaterialized.next()); + + // --- Test Case 6: Get "SNAPSHOT" type --- + ResultSet rsSnapshot = + databaseMetaData.getTables(PROJECT_ID, DATASET, null, new String[] {"SNAPSHOT"}); + assertTrue(rsSnapshot.next()); + assertEquals("base_table_snapshot", rsSnapshot.getString("TABLE_NAME")); + assertEquals("SNAPSHOT", rsSnapshot.getString("TABLE_TYPE")); + assertFalse(rsSnapshot.next()); + + // --- Test Case 8: Get multiple types ("TABLE" and "VIEW") --- + ResultSet rsMulti = + databaseMetaData.getTables(PROJECT_ID, DATASET, null, new String[] {"TABLE", "VIEW"}); + Set multiTableNames = new HashSet<>(); + while (rsMulti.next()) { + multiTableNames.add(rsMulti.getString("TABLE_NAME")); + } + assertTrue(multiTableNames.contains("base_table")); + assertTrue(multiTableNames.contains("base_table_clone")); + assertTrue(multiTableNames.contains("my_view")); + assertEquals(3, multiTableNames.size()); + + // --- Test Case 9: tableNamePattern --- + ResultSet rsNamePattern = databaseMetaData.getTables(PROJECT_ID, DATASET, "base%", null); + Set baseTableNames = new HashSet<>(); + while (rsNamePattern.next()) { + baseTableNames.add(rsNamePattern.getString("TABLE_NAME")); + } + assertTrue(baseTableNames.contains("base_table")); + assertTrue(baseTableNames.contains("base_table_clone")); + assertTrue(baseTableNames.contains("base_table_snapshot")); + assertEquals(3, baseTableNames.size()); + + // --- Test Case 10: No matching table --- + ResultSet rsNoMatch = + databaseMetaData.getTables(PROJECT_ID, DATASET, "nonexistent_table", null); + assertFalse(rsNoMatch.next()); + + // --- Test Case 11: Null type in array --- + ResultSet rsNullType = + databaseMetaData.getTables(PROJECT_ID, DATASET, null, new String[] {null, "VIEW"}); + assertTrue(rsNullType.next()); + assertEquals("VIEW", rsNullType.getString("TABLE_TYPE")); + assertEquals("my_view", rsNullType.getString("TABLE_NAME")); + assertFalse(rsNullType.next()); + } + + @Test + public void testDatabaseMetadataGetSchemas() throws SQLException { + DatabaseMetaData databaseMetaData = bigQueryConnection.getMetaData(); + + // Test case 1: Get all schemas with catalog and check for the presence of specific schemas + ResultSet rsAll = databaseMetaData.getSchemas(PROJECT_ID, null); + Set actualSchemas = new HashSet<>(); + while (rsAll.next()) { + assertEquals(PROJECT_ID, rsAll.getString("TABLE_CATALOG")); + actualSchemas.add(rsAll.getString("TABLE_SCHEM")); + } + assertTrue(actualSchemas.contains("JDBC_INTEGRATION_DATASET")); + assertTrue(actualSchemas.contains("JDBC_TABLE_TYPES_TEST")); + assertTrue(actualSchemas.contains("ODBC_TEST_DATASET")); + + // Test case 2: Get schemas with catalog and schemaPattern matching "JDBC_NIGHTLY_IT_DATASET" + ResultSet rsPattern = databaseMetaData.getSchemas(PROJECT_ID, "JDBC_NIGHTLY_IT_DATASET"); + Set actualSchemasPattern = new HashSet<>(); + while (rsPattern.next()) { + assertEquals(PROJECT_ID, rsPattern.getString("TABLE_CATALOG")); + actualSchemasPattern.add(rsPattern.getString("TABLE_SCHEM")); + } + assertTrue(actualSchemasPattern.contains("JDBC_NIGHTLY_IT_DATASET")); + assertEquals(1, actualSchemasPattern.size()); + + // Test case 3: Get schemas with catalog and schemaPattern matching "nonexistent" + ResultSet rsNoMatch = databaseMetaData.getSchemas(PROJECT_ID, "nonexistent"); + assertFalse(rsNoMatch.next()); + + // Test case 4: Get schemas with non-existent catalog + rsNoMatch = databaseMetaData.getSchemas("invalid-catalog", null); + assertFalse(rsNoMatch.next()); + } + + @Test + public void testDatabaseMetadataGetSchemasNoArgs() throws SQLException { + DatabaseMetaData databaseMetaData = bigQueryConnection.getMetaData(); + String expectedCatalog = bigQueryConnection.getCatalog(); + assertNotNull("Project ID (catalog) from connection should not be null", expectedCatalog); + + // Test case: Get all schemas (datasets) for the current project + try (ResultSet rsAll = databaseMetaData.getSchemas()) { + assertNotNull("ResultSet from getSchemas() should not be null", rsAll); + boolean foundTestDataset = false; + int rowCount = 0; + while (rsAll.next()) { + rowCount++; + assertEquals( + "TABLE_CATALOG should match the connection's project ID", + expectedCatalog, + rsAll.getString("TABLE_CATALOG")); + String schemaName = rsAll.getString("TABLE_SCHEM"); + assertNotNull("TABLE_SCHEM should not be null", schemaName); + if (DATASET.equals(schemaName) + || DATASET2.equals(schemaName) + || CONSTRAINTS_DATASET.equals(schemaName) + || "JDBC_TABLE_TYPES_TEST".equals(schemaName) + || "JDBC_INTEGRATION_DATASET".equals(schemaName)) { + foundTestDataset = true; + } + } + assertTrue("At least one of the known test datasets should be found", foundTestDataset); + assertTrue("Should retrieve at least one schema/dataset", rowCount > 0); + } + } + + @Test + public void testDatabaseMetaDataGetFunctions() throws SQLException { + DatabaseMetaData databaseMetaData = bigQueryConnection.getMetaData(); + String testSchema = "JDBC_TABLE_TYPES_TEST"; + String testCatalog = PROJECT_ID; + + Set expectedFunctionNames = + new HashSet<>( + Arrays.asList( + "complex_scalar_sql_udf", + "persistent_sql_udf_named_params", + "scalar_js_udf", + "scalar_sql_udf")); + + // Test 1: Get all functions from a specific schema + ResultSet rsAll = databaseMetaData.getFunctions(testCatalog, testSchema, null); + Set foundFunctionNames = new HashSet<>(); + int countAll = 0; + while (rsAll.next()) { + countAll++; + assertEquals(testCatalog, rsAll.getString("FUNCTION_CAT")); + assertEquals(testSchema, rsAll.getString("FUNCTION_SCHEM")); + String funcName = rsAll.getString("FUNCTION_NAME"); + foundFunctionNames.add(funcName); + assertNull(rsAll.getString("REMARKS")); + assertEquals(DatabaseMetaData.functionResultUnknown, rsAll.getShort("FUNCTION_TYPE")); + assertEquals(funcName, rsAll.getString("SPECIFIC_NAME")); + } + assertEquals( + "Should find all " + expectedFunctionNames.size() + " functions in " + testSchema, + expectedFunctionNames.size(), + countAll); + assertEquals(expectedFunctionNames, foundFunctionNames); + rsAll.close(); + + // Test 2: Get a specific function using functionNamePattern + String specificFunctionName = "scalar_sql_udf"; + ResultSet rsSpecific = + databaseMetaData.getFunctions(testCatalog, testSchema, specificFunctionName); + assertTrue("Should find the specific function " + specificFunctionName, rsSpecific.next()); + assertEquals(testCatalog, rsSpecific.getString("FUNCTION_CAT")); + assertEquals(testSchema, rsSpecific.getString("FUNCTION_SCHEM")); + assertEquals(specificFunctionName, rsSpecific.getString("FUNCTION_NAME")); + assertNull(rsSpecific.getString("REMARKS")); + assertEquals(DatabaseMetaData.functionResultUnknown, rsSpecific.getShort("FUNCTION_TYPE")); + assertEquals(specificFunctionName, rsSpecific.getString("SPECIFIC_NAME")); + assertFalse("Should only find one row for exact function match", rsSpecific.next()); + rsSpecific.close(); + + // Test 3: Get functions using a wildcard functionNamePattern "scalar%" + // Expected order due to sorting: scalar_js_udf, scalar_sql_udf + ResultSet rsWildcard = databaseMetaData.getFunctions(testCatalog, testSchema, "scalar%"); + assertTrue("Should find functions matching 'scalar%'", rsWildcard.next()); + assertEquals("scalar_js_udf", rsWildcard.getString("FUNCTION_NAME")); + assertEquals(DatabaseMetaData.functionResultUnknown, rsWildcard.getShort("FUNCTION_TYPE")); + + assertTrue("Should find the second function matching 'scalar%'", rsWildcard.next()); + assertEquals("scalar_sql_udf", rsWildcard.getString("FUNCTION_NAME")); + assertEquals(DatabaseMetaData.functionResultUnknown, rsWildcard.getShort("FUNCTION_TYPE")); + assertFalse("Should be no more functions matching 'scalar%'", rsWildcard.next()); + rsWildcard.close(); + + // Test 4: Schema pattern with wildcard + ResultSet rsSchemaWildcard = + databaseMetaData.getFunctions(testCatalog, "JDBC_TABLE_TYPES_T%", "complex_scalar_sql_udf"); + assertTrue("Should find function with schema wildcard", rsSchemaWildcard.next()); + assertEquals(testSchema, rsSchemaWildcard.getString("FUNCTION_SCHEM")); + assertEquals("complex_scalar_sql_udf", rsSchemaWildcard.getString("FUNCTION_NAME")); + assertFalse( + "Should only find one row for this schema wildcard and specific function", + rsSchemaWildcard.next()); + rsSchemaWildcard.close(); + + // Test 5: Non-existent function + ResultSet rsNonExistentFunc = + databaseMetaData.getFunctions(testCatalog, testSchema, "non_existent_function_xyz123"); + assertFalse("Should not find a non-existent function", rsNonExistentFunc.next()); + rsNonExistentFunc.close(); + + // Test 6: Non-existent schema + ResultSet rsNonExistentSchema = + databaseMetaData.getFunctions(testCatalog, "NON_EXISTENT_SCHEMA_XYZ123", null); + assertFalse("Should not find functions in a non-existent schema", rsNonExistentSchema.next()); + rsNonExistentSchema.close(); + + // Test 7: Empty schema pattern + ResultSet rsEmptySchema = databaseMetaData.getFunctions(testCatalog, "", null); + assertFalse("Empty schema pattern should return no results", rsEmptySchema.next()); + rsEmptySchema.close(); + + // Test 8: Empty function name pattern + ResultSet rsEmptyFunction = databaseMetaData.getFunctions(testCatalog, testSchema, ""); + assertFalse("Empty function name pattern should return no results", rsEmptyFunction.next()); + rsEmptyFunction.close(); + + // Test 9: Null catalog + ResultSet rsNullCatalog = databaseMetaData.getFunctions(null, testSchema, null); + assertFalse("Null catalog should return no results", rsNullCatalog.next()); + rsNullCatalog.close(); + } + + @Test + public void testDatabaseMetadataGetFunctionColumns() throws SQLException { + DatabaseMetaData databaseMetaData = bigQueryConnection.getMetaData(); + String testCatalog = PROJECT_ID; + String testSchema = "JDBC_TABLE_TYPES_TEST"; + + // Test Case 1: Specific function 'scalar_sql_udf', specific column 'x' + String specificFunction1 = "scalar_sql_udf"; + String specificColumn1 = "x"; + ResultSet rs = + databaseMetaData.getFunctionColumns( + testCatalog, testSchema, specificFunction1, specificColumn1); + + assertTrue("Should find column 'x' for function 'scalar_sql_udf'", rs.next()); + assertEquals(testCatalog, rs.getString("FUNCTION_CAT")); + assertEquals(testSchema, rs.getString("FUNCTION_SCHEM")); + assertEquals(specificFunction1, rs.getString("FUNCTION_NAME")); + assertEquals(specificColumn1, rs.getString("COLUMN_NAME")); + assertEquals(DatabaseMetaData.functionColumnUnknown, rs.getShort("COLUMN_TYPE")); + assertEquals(Types.BIGINT, rs.getInt("DATA_TYPE")); + assertEquals("BIGINT", rs.getString("TYPE_NAME")); + assertEquals(19, rs.getInt("PRECISION")); + assertEquals(null, rs.getObject("LENGTH")); + assertTrue(rs.wasNull()); + assertEquals(0, rs.getShort("SCALE")); + assertEquals(10, rs.getShort("RADIX")); + assertEquals(DatabaseMetaData.functionNullableUnknown, rs.getShort("NULLABLE")); + assertNull(rs.getString("REMARKS")); + assertEquals(null, rs.getObject("CHAR_OCTET_LENGTH")); + assertTrue(rs.wasNull()); + assertEquals(1, rs.getInt("ORDINAL_POSITION")); + assertEquals("", rs.getString("IS_NULLABLE")); + assertEquals(specificFunction1, rs.getString("SPECIFIC_NAME")); + assertFalse("Should only find one row for exact column match", rs.next()); + rs.close(); + + // Test Case 2: Specific function 'complex_scalar_sql_udf', specific column 'arr' + String specificFunction2 = "complex_scalar_sql_udf"; + String specificColumn2 = "arr"; + rs = + databaseMetaData.getFunctionColumns( + testCatalog, testSchema, specificFunction2, specificColumn2); + assertTrue("Should find column 'arr' for function 'complex_scalar_sql_udf'", rs.next()); + assertEquals(testCatalog, rs.getString("FUNCTION_CAT")); + assertEquals(testSchema, rs.getString("FUNCTION_SCHEM")); + assertEquals(specificFunction2, rs.getString("FUNCTION_NAME")); + assertEquals(specificColumn2, rs.getString("COLUMN_NAME")); + assertEquals(DatabaseMetaData.functionColumnUnknown, rs.getShort("COLUMN_TYPE")); + assertEquals(Types.ARRAY, rs.getInt("DATA_TYPE")); + assertEquals("ARRAY", rs.getString("TYPE_NAME")); + assertEquals(null, rs.getObject("PRECISION")); + assertTrue(rs.wasNull()); + assertEquals(null, rs.getObject("LENGTH")); + assertTrue(rs.wasNull()); + assertEquals(null, rs.getObject("SCALE")); + assertTrue(rs.wasNull()); + assertEquals(null, rs.getObject("RADIX")); + assertTrue(rs.wasNull()); + assertEquals(DatabaseMetaData.functionNullableUnknown, rs.getShort("NULLABLE")); + assertNull(rs.getString("REMARKS")); + assertEquals(null, rs.getObject("CHAR_OCTET_LENGTH")); + assertTrue(rs.wasNull()); + assertEquals(1, rs.getInt("ORDINAL_POSITION")); + assertEquals("", rs.getString("IS_NULLABLE")); + assertEquals(specificFunction2, rs.getString("SPECIFIC_NAME")); + assertFalse("Should only find one row for exact column match", rs.next()); + rs.close(); + + // Test Case 3: All columns for 'persistent_sql_udf_named_params' (sorted by ordinal position) + String specificFunction3 = "persistent_sql_udf_named_params"; + rs = databaseMetaData.getFunctionColumns(testCatalog, testSchema, specificFunction3, null); + assertTrue("Should find columns for " + specificFunction3, rs.next()); + assertEquals(specificFunction3, rs.getString("FUNCTION_NAME")); + assertEquals("value1", rs.getString("COLUMN_NAME")); // Ordinal Position 1 + assertEquals(DatabaseMetaData.functionColumnUnknown, rs.getShort("COLUMN_TYPE")); + assertEquals(Types.BIGINT, rs.getInt("DATA_TYPE")); + assertEquals("BIGINT", rs.getString("TYPE_NAME")); + assertEquals(1, rs.getInt("ORDINAL_POSITION")); + + assertTrue("Should find second column for " + specificFunction3, rs.next()); + assertEquals(specificFunction3, rs.getString("FUNCTION_NAME")); + assertEquals("value-two", rs.getString("COLUMN_NAME")); // Ordinal Position 2 + assertEquals(DatabaseMetaData.functionColumnUnknown, rs.getShort("COLUMN_TYPE")); + assertEquals(Types.NVARCHAR, rs.getInt("DATA_TYPE")); + assertEquals("NVARCHAR", rs.getString("TYPE_NAME")); + assertEquals(2, rs.getInt("ORDINAL_POSITION")); + assertFalse("Should be no more columns for " + specificFunction3, rs.next()); + rs.close(); + + // Test Case 4: Wildcard for function name "scalar%", specific column name "x" + rs = databaseMetaData.getFunctionColumns(testCatalog, testSchema, "scalar%", "x"); + assertTrue("Should find column 'x' for functions matching 'scalar%'", rs.next()); + assertEquals("scalar_sql_udf", rs.getString("FUNCTION_NAME")); + assertEquals("x", rs.getString("COLUMN_NAME")); + assertEquals(1, rs.getInt("ORDINAL_POSITION")); + assertFalse("Should be no more columns named 'x' for functions matching 'scalar%'", rs.next()); + rs.close(); + + // Test Case 5: Wildcard for column name "%" for 'scalar_js_udf' + String specificFunction4 = "scalar_js_udf"; + rs = databaseMetaData.getFunctionColumns(testCatalog, testSchema, specificFunction4, "%"); + assertTrue("Should find columns for " + specificFunction4 + " with wildcard", rs.next()); + assertEquals(specificFunction4, rs.getString("FUNCTION_NAME")); + assertEquals("name", rs.getString("COLUMN_NAME")); // Ordinal Position 1 + assertEquals(1, rs.getInt("ORDINAL_POSITION")); + + assertTrue("Should find second column for " + specificFunction4 + " with wildcard", rs.next()); + assertEquals(specificFunction4, rs.getString("FUNCTION_NAME")); + assertEquals("age", rs.getString("COLUMN_NAME")); // Ordinal Position 2 + assertEquals(2, rs.getInt("ORDINAL_POSITION")); + assertFalse("Should be no more columns for " + specificFunction4 + " with wildcard", rs.next()); + rs.close(); + + // Test Case 6: Non-existent function + rs = + databaseMetaData.getFunctionColumns( + testCatalog, testSchema, "non_existent_function_xyz", null); + assertFalse("Should not find columns for a non-existent function", rs.next()); + rs.close(); + } + + @Test + public void testRangeDataTypeWithJsonResultSet() throws SQLException { + String RANGE_DATA_TABLE = "JDBC_RANGE_DATA_TEST_TABLE_" + random.nextInt(99); + String range_date_literal = "RANGE '[2020-01-01, 2020-01-31)'"; + String range_datetime_literal = "RANGE '[2020-01-01 12:00:00, 2020-01-31 12:00:00)'"; + String range_timestamp_literal = + "RANGE '[2020-01-01 12:00:00+08, 2020-01-31 12:00:00+08)'"; + + String createRangeTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `range_date` RANGE," + + " `range_date_time` RANGE, `range_timestamp` RANGE);", + DATASET, RANGE_DATA_TABLE); + String insertQuery = + String.format( + "INSERT INTO %s.%s (id, range_date, range_date_time, range_timestamp) VALUES (1, %s," + + " %s, %s);", + DATASET, + RANGE_DATA_TABLE, + range_date_literal, + range_datetime_literal, + range_timestamp_literal); + String selectQuery = + String.format( + "SELECT id, range_date, range_date_time, range_timestamp FROM %s.%s WHERE id = 1;", + DATASET, RANGE_DATA_TABLE); + + boolean status = bigQueryStatement.execute(createRangeTable); + assertFalse(status); + + status = bigQueryStatement.execute(insertQuery); + assertFalse(status); + + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + + Integer numRows = 0; + String actual_range_date = ""; + String actual_range_datetime = ""; + String actual_range_timestamp = ""; + + while (resultSet.next()) { + numRows++; + actual_range_date = resultSet.getString("range_date"); + actual_range_datetime = resultSet.getString("range_date_time"); + actual_range_timestamp = resultSet.getString("range_timestamp"); + } + + String expected_range_date = "[2020-01-01, 2020-01-31)"; + String expected_range_datetime = "[2020-01-01T12:00:00, 2020-01-31T12:00:00)"; + String expected_range_timestamp = "[1577851200.000000, 1580443200.000000)"; + + assertThat(numRows).isEqualTo(1); + assertThat(actual_range_date).isEqualTo(expected_range_date); + assertThat(actual_range_datetime).isEqualTo(expected_range_datetime); + assertThat(actual_range_timestamp).isEqualTo(expected_range_timestamp); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %S.%s", DATASET, RANGE_DATA_TABLE)); + } + + @Test + public void testRangeDataTypeWithArrowResultSet() throws SQLException { + String selectQuery = + "select * from `DATATYPERANGETEST.RangeIntervalTestTable` order by intColumn limit 5000;"; + + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;ProjectId=" + + PROJECT_ID + + ";MaxResults=500;HighThroughputActivationRatio=1;" + + "HighThroughputMinTableSize=100;" + + "EnableHighThroughputAPI=1;JobCreationMode=1;"; + + // Read data via JDBC + Connection connection = DriverManager.getConnection(connection_uri); + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(selectQuery); + assertTrue(resultSet.getClass().getName().contains("BigQueryArrowResultSet")); + resultSet.next(); + assertEquals("[2024-07-14, 2024-09-23)", resultSet.getString("rangeField")); + connection.close(); + } + + @Test + public void testPrepareCallSql() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc"); + assertNotNull(callableStatement); + callableStatement.close(); + } + + @Test + public void testRegisterOutParamIndex() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + callableStatement.registerOutParameter(1, Types.VARCHAR); + callableStatement.close(); + } + + @Test + public void testRegisterOutParamName() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + callableStatement.registerOutParameter("ParamKey", Types.VARCHAR); + callableStatement.close(); + } + + @Test + public void testRegisterOutParamIndexScale() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + callableStatement.registerOutParameter(1, Types.NUMERIC, 2); + callableStatement.close(); + } + + @Test + public void testRegisterOutParamNameScale() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + callableStatement.registerOutParameter("ParamKey", Types.NUMERIC, 2); + callableStatement.close(); + } + + @Test + public void testPrepareCallSqlResultSetTypeConcurrency() throws SQLException { + CallableStatement callableStatement = + this.bigQueryConnection.prepareCall( + "call testProc", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); + assertNotNull(callableStatement); + callableStatement.close(); + } + + @Test + public void testPrepareCallConcurrencyRegisterOutParamIndex() throws SQLException { + CallableStatement callableStatement = + this.bigQueryConnection.prepareCall( + "call testProc('?')", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); + assertNotNull(callableStatement); + callableStatement.registerOutParameter(1, Types.VARCHAR); + callableStatement.close(); + } + + @Test + public void testPrepareCallConcurrencyRegisterOutParamName() throws SQLException { + CallableStatement callableStatement = + this.bigQueryConnection.prepareCall( + "call testProc('?')", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); + assertNotNull(callableStatement); + callableStatement.registerOutParameter("ParamKey", Types.VARCHAR); + callableStatement.close(); + } + + @Test + public void testPrepareCallConcurrencyRegisterOutParamIndexScale() throws SQLException { + CallableStatement callableStatement = + this.bigQueryConnection.prepareCall( + "call testProc('?')", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); + assertNotNull(callableStatement); + callableStatement.registerOutParameter(1, Types.NUMERIC, 2); + callableStatement.close(); + } + + @Test + public void testPrepareCallConcurrencyRegisterOutParamNameScale() throws SQLException { + CallableStatement callableStatement = + this.bigQueryConnection.prepareCall( + "call testProc('?')", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); + assertNotNull(callableStatement); + callableStatement.registerOutParameter("ParamKey", Types.NUMERIC, 2); + callableStatement.close(); + } + + @Test + public void testPrepareCallSqlResultSetTypeConcurrencyHoldability() throws SQLException { + CallableStatement callableStatement = + this.bigQueryConnection.prepareCall( + "call testProc", + ResultSet.TYPE_FORWARD_ONLY, + ResultSet.CONCUR_READ_ONLY, + ResultSet.CLOSE_CURSORS_AT_COMMIT); + assertNotNull(callableStatement); + callableStatement.close(); + } + + @Test + public void testPrepareCallHoldabilityRegisterOutParamIndex() throws SQLException { + CallableStatement callableStatement = + this.bigQueryConnection.prepareCall( + "call testProc('?')", + ResultSet.TYPE_FORWARD_ONLY, + ResultSet.CONCUR_READ_ONLY, + ResultSet.CLOSE_CURSORS_AT_COMMIT); + assertNotNull(callableStatement); + callableStatement.registerOutParameter(1, Types.VARCHAR); + callableStatement.close(); + } + + @Test + public void testPrepareCallHoldabilityRegisterOutParamName() throws SQLException { + CallableStatement callableStatement = + this.bigQueryConnection.prepareCall( + "call testProc('?')", + ResultSet.TYPE_FORWARD_ONLY, + ResultSet.CONCUR_READ_ONLY, + ResultSet.CLOSE_CURSORS_AT_COMMIT); + assertNotNull(callableStatement); + callableStatement.registerOutParameter("ParamKey", Types.VARCHAR); + callableStatement.close(); + } + + @Test + public void testPrepareCallHoldabilityRegisterOutParamIndexScale() throws SQLException { + CallableStatement callableStatement = + this.bigQueryConnection.prepareCall( + "call testProc('?')", + ResultSet.TYPE_FORWARD_ONLY, + ResultSet.CONCUR_READ_ONLY, + ResultSet.CLOSE_CURSORS_AT_COMMIT); + assertNotNull(callableStatement); + callableStatement.close(); + } + + @Test + public void testPrepareCallHoldabilityRegisterOutParamNameScale() throws SQLException { + CallableStatement callableStatement = + this.bigQueryConnection.prepareCall( + "call testProc('?')", + ResultSet.TYPE_FORWARD_ONLY, + ResultSet.CONCUR_READ_ONLY, + ResultSet.CLOSE_CURSORS_AT_COMMIT); + assertNotNull(callableStatement); + callableStatement.registerOutParameter("ParamKey", Types.NUMERIC, 2); + callableStatement.close(); + } + + @Test + public void testPrepareCallFailureResultSetType() throws SQLException { + assertThrows( + BigQueryJdbcSqlFeatureNotSupportedException.class, + () -> + this.bigQueryConnection.prepareCall( + "call testProc", ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY)); + } + + @Test + public void testPrepareCallFailureResultSetConcurrency() throws SQLException { + assertThrows( + BigQueryJdbcSqlFeatureNotSupportedException.class, + () -> + this.bigQueryConnection.prepareCall( + "call testProc", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE)); + } + + @Test + public void testPrepareCallFailureResultSetHoldability() throws SQLException { + assertThrows( + BigQueryJdbcSqlFeatureNotSupportedException.class, + () -> + this.bigQueryConnection.prepareCall( + "call testProc", + ResultSet.TYPE_FORWARD_ONLY, + ResultSet.CONCUR_READ_ONLY, + ResultSet.HOLD_CURSORS_OVER_COMMIT)); + } + + // Integration tests for CallableStatement Setters and Getters + @Test + public void testSetterGetterBigDecimal() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + BigDecimal expected = new BigDecimal(12344); + callableStatement.setBigDecimal(CALLABLE_STMT_PARAM_KEY, expected); + BigDecimal actual = callableStatement.getBigDecimal(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterBoolean() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + Boolean expected = true; + callableStatement.setBoolean(CALLABLE_STMT_PARAM_KEY, expected); + Boolean actual = callableStatement.getBoolean(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterByte() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + Byte expected = "hello".getBytes()[0]; + callableStatement.setByte(CALLABLE_STMT_PARAM_KEY, expected); + Byte actual = callableStatement.getByte(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterBytes() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + byte[] expected = "hello".getBytes(); + callableStatement.setBytes(CALLABLE_STMT_PARAM_KEY, expected); + byte[] actual = callableStatement.getBytes(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterDate() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + Date expected = new Date(1234567); + callableStatement.setDate(CALLABLE_STMT_PARAM_KEY, expected); + Date actual = callableStatement.getDate(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterDateCal() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + Date expected = new Date(1L); + Calendar cal = Calendar.getInstance(); + callableStatement.setDate(CALLABLE_STMT_PARAM_KEY, expected, cal); + Date actual = callableStatement.getDate(CALLABLE_STMT_PARAM_KEY, cal); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterDouble() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + Double expected = 123.2345; + callableStatement.setDouble(CALLABLE_STMT_PARAM_KEY, expected); + Double actual = callableStatement.getDouble(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterFloat() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + Float expected = 123.2345F; + callableStatement.setFloat(CALLABLE_STMT_PARAM_KEY, expected); + Float actual = callableStatement.getFloat(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterInt() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + Integer expected = 123; + callableStatement.setInt(CALLABLE_STMT_PARAM_KEY, expected); + Integer actual = callableStatement.getInt(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterLong() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + Long expected = 123L; + callableStatement.setLong(CALLABLE_STMT_PARAM_KEY, expected); + Long actual = callableStatement.getLong(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterNString() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + String expected = "heelo"; + callableStatement.setNString(CALLABLE_STMT_PARAM_KEY, expected); + String actual = callableStatement.getNString(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterObject() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + String expected = "heelo"; + callableStatement.setObject(CALLABLE_STMT_PARAM_KEY, expected); + Object actual = callableStatement.getObject(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterObjectWithSQLType() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + String expected = "heelo"; + callableStatement.setObject(CALLABLE_STMT_PARAM_KEY, expected, Types.NVARCHAR); + Object actual = callableStatement.getObject(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterObjectWithSqlTypeAndScale() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + String expected = "heelo"; + callableStatement.setObject(CALLABLE_STMT_PARAM_KEY, expected, Types.NVARCHAR, 0); + Object actual = callableStatement.getObject(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterString() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + String expected = "123"; + callableStatement.setString(CALLABLE_STMT_PARAM_KEY, expected); + String actual = callableStatement.getString(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterTime() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + Time expected = new Time(1234567); + callableStatement.setTime(CALLABLE_STMT_PARAM_KEY, expected); + Time actual = callableStatement.getTime(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterTimeCal() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + Time expected = new Time(1L); + Calendar cal = Calendar.getInstance(); + callableStatement.setTime(CALLABLE_STMT_PARAM_KEY, expected, cal); + Time actual = callableStatement.getTime(CALLABLE_STMT_PARAM_KEY, cal); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterTimestamp() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + Timestamp expected = new Timestamp(1234567); + callableStatement.setTimestamp(CALLABLE_STMT_PARAM_KEY, expected); + Timestamp actual = callableStatement.getTimestamp(CALLABLE_STMT_PARAM_KEY); + assertEquals(expected, actual); + } + + @Test + public void testSetterGetterTimestampCal() throws SQLException { + CallableStatement callableStatement = this.bigQueryConnection.prepareCall("call testProc('?')"); + assertNotNull(callableStatement); + Timestamp expected = new Timestamp(1L); + Calendar cal = Calendar.getInstance(); + callableStatement.setTimestamp(CALLABLE_STMT_PARAM_KEY, expected, cal); + Timestamp actual = callableStatement.getTimestamp(CALLABLE_STMT_PARAM_KEY, cal); + assertEquals(expected, actual); + } + + @Test + public void testPooledConnectionDataSourceSuccess() throws SQLException { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;ConnectionPoolSize=20;ListenerPoolSize=20;"; + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionUrl); + + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + } + + @Test + public void testPooledConnectionDataSourceFailNoConnectionURl() throws SQLException { + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + + assertThrows(BigQueryJdbcException.class, () -> pooledDataSource.getPooledConnection()); + } + + @Test + public void testPooledConnectionDataSourceFailInvalidConnectionURl() { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;" + + "ListenerPoolSize=invalid"; + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionUrl); + + assertThrows(NumberFormatException.class, () -> pooledDataSource.getPooledConnection()); + } + + @Test + public void testPooledConnectionAddConnectionListener() throws SQLException { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;ConnectionPoolSize=20;ListenerPoolSize=20;"; + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionUrl); + + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + TestConnectionListener listener = new TestConnectionListener(); + pooledConnection.addConnectionEventListener(listener); + assertEquals(0, listener.getConnectionClosedCount()); + assertEquals(0, listener.getConnectionErrorCount()); + } + + @Test + public void testPooledConnectionRemoveConnectionListener() throws SQLException { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;ConnectionPoolSize=20;ListenerPoolSize=20;"; + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionUrl); + + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + TestConnectionListener listener = new TestConnectionListener(); + pooledConnection.removeConnectionEventListener(listener); + assertEquals(0, listener.getConnectionClosedCount()); + assertEquals(0, listener.getConnectionErrorCount()); + } + + @Test + public void testPooledConnectionConnectionClosed() throws SQLException { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;ConnectionPoolSize=20;ListenerPoolSize=20;"; + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionUrl); + + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + TestConnectionListener listener = new TestConnectionListener(); + pooledConnection.addConnectionEventListener(listener); + assertEquals(0, listener.getConnectionClosedCount()); + assertEquals(0, listener.getConnectionErrorCount()); + + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + + connection.close(); + assertEquals(1, listener.getConnectionClosedCount()); + assertEquals(0, listener.getConnectionErrorCount()); + } + + @Test + public void testPooledConnectionClose() throws SQLException { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;ConnectionPoolSize=20;ListenerPoolSize=20;"; + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionUrl); + + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + TestConnectionListener listener = new TestConnectionListener(); + pooledConnection.addConnectionEventListener(listener); + assertEquals(0, listener.getConnectionClosedCount()); + assertEquals(0, listener.getConnectionErrorCount()); + + pooledConnection.close(); + assertEquals(1, listener.getConnectionClosedCount()); + assertEquals(0, listener.getConnectionErrorCount()); + } + + @Test + public void testPooledConnectionConnectionError() throws SQLException { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;ConnectionPoolSize=20;ListenerPoolSize=20;"; + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionUrl); + + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + TestConnectionListener listener = new TestConnectionListener(); + pooledConnection.addConnectionEventListener(listener); + assertEquals(0, listener.getConnectionClosedCount()); + assertEquals(0, listener.getConnectionErrorCount()); + + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + + ExecutorService executor = Executors.newFixedThreadPool(3); + connection.abort(executor); + assertEquals(0, listener.getConnectionClosedCount()); + assertEquals(1, listener.getConnectionErrorCount()); + + executor.shutdown(); + connection.close(); + pooledConnection.close(); + } + + @Test + public void testPooledConnectionListenerAddListener() throws SQLException { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;ConnectionPoolSize=20;ListenerPoolSize=20;"; + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionUrl); + + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + PooledConnectionListener listener = new PooledConnectionListener(DEFAULT_CONN_POOL_SIZE); + pooledConnection.addConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + pooledConnection.close(); + } + + @Test + public void testPooledConnectionListenerRemoveListener() throws SQLException { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;ConnectionPoolSize=20;ListenerPoolSize=20;"; + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionUrl); + + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + PooledConnectionListener listener = new PooledConnectionListener(DEFAULT_CONN_POOL_SIZE); + pooledConnection.addConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + + pooledConnection.removeConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + pooledConnection.close(); + } + + @Test + public void testPooledConnectionListenerCloseConnection() throws SQLException { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;ConnectionPoolSize=20;ListenerPoolSize=20;"; + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionUrl); + + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + PooledConnectionListener listener = new PooledConnectionListener(DEFAULT_CONN_POOL_SIZE); + pooledConnection.addConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + + connection.close(); + assertFalse(listener.isConnectionPoolEmpty()); + pooledConnection.close(); + } + + @Test + public void testPooledConnectionListenerClosePooledConnection() throws SQLException { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;ConnectionPoolSize=20;ListenerPoolSize=20;"; + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionUrl); + + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + PooledConnectionListener listener = new PooledConnectionListener(DEFAULT_CONN_POOL_SIZE); + pooledConnection.addConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + + pooledConnection.close(); + assertFalse(listener.isConnectionPoolEmpty()); + } + + @Test + public void testPooledConnectionListenerConnectionError() throws SQLException { + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;OAuthType=3;ProjectId=testProject;ConnectionPoolSize=20;ListenerPoolSize=20;"; + + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionUrl); + + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + PooledConnectionListener listener = new PooledConnectionListener(DEFAULT_CONN_POOL_SIZE); + pooledConnection.addConnectionEventListener(listener); + assertTrue(listener.isConnectionPoolEmpty()); + + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + + ExecutorService executor = Executors.newFixedThreadPool(3); + connection.abort(executor); + assertTrue(listener.isConnectionPoolEmpty()); + + executor.shutdown(); + connection.close(); + pooledConnection.close(); + } + + @Test + public void testExecuteQueryWithConnectionPoolingEnabledDefaultPoolSize() throws SQLException { + String connectionURL = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;ProjectId=" + + PROJECT_ID + + ";"; + assertConnectionPoolingResults(connectionURL, DEFAULT_CONN_POOL_SIZE); + } + + @Test + public void testExecuteQueryWithConnectionPoolingEnabledCustomPoolSize() throws SQLException { + String connectionURL = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;ProjectId=" + + PROJECT_ID + + ";" + + "ConnectionPoolSize=" + + CUSTOM_CONN_POOL_SIZE + + ";"; + assertConnectionPoolingResults(connectionURL, CUSTOM_CONN_POOL_SIZE); + } + + private void assertConnectionPoolingResults(String connectionURL, Long connectionPoolSize) + throws SQLException { + // Create Pooled Connection Datasource + PooledConnectionDataSource pooledDataSource = new PooledConnectionDataSource(); + pooledDataSource.setURL(connectionURL); + + // Get pooled connection and ensure listner was added with default connection pool size. + PooledConnection pooledConnection = pooledDataSource.getPooledConnection(); + assertNotNull(pooledConnection); + PooledConnectionListener listener = pooledDataSource.getConnectionPoolManager(); + assertNotNull(listener); + assertTrue(listener.isConnectionPoolEmpty()); + + // Get Underlying physical connection + Connection connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + + // Execute query with physical connection + String query = + "SELECT DISTINCT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT" + + " 850"; + Statement statement = connection.createStatement(); + ResultSet jsonResultSet = statement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + + // Close physical connection + connection.close(); + assertFalse(listener.isConnectionPoolEmpty()); + assertEquals(1, listener.getConnectionPoolCurrentCapacity()); + assertEquals(connectionPoolSize, listener.getConnectionPoolSize()); + + // Reuse same physical connection. + connection = pooledConnection.getConnection(); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertFalse(listener.isConnectionPoolEmpty()); + assertEquals(1, listener.getConnectionPoolCurrentCapacity()); + assertEquals(connectionPoolSize, listener.getConnectionPoolSize()); + + // Execute query with reusable physical connection + jsonResultSet = statement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + + // Return connection back to the pool. + connection.close(); + assertFalse(listener.isConnectionPoolEmpty()); + assertEquals(1, listener.getConnectionPoolCurrentCapacity()); + assertEquals(connectionPoolSize, listener.getConnectionPoolSize()); + pooledConnection.close(); + } + + @Test + public void testAdditionalProjectsInMetadata() throws SQLException { + String additionalProjectsValue = "bigquery-public-data"; + String datasetInAdditionalProject = "baseball"; + + String urlWithAdditionalProjects = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=" + + PROJECT_ID + + ";OAuthType=3" + + ";AdditionalProjects=" + + additionalProjectsValue; + + try (Connection conn = DriverManager.getConnection(urlWithAdditionalProjects)) { + DatabaseMetaData dbMetaData = conn.getMetaData(); + + // 1. Test getCatalogs() + Set foundCatalogs = new HashSet<>(); + try (ResultSet catalogsRs = dbMetaData.getCatalogs()) { + while (catalogsRs.next()) { + foundCatalogs.add(catalogsRs.getString("TABLE_CAT")); + } + } + assertTrue( + "getCatalogs() should contain the primary project ID", + foundCatalogs.contains(PROJECT_ID)); + assertTrue( + "getCatalogs() should contain the additional project ID", + foundCatalogs.contains(additionalProjectsValue)); + + // 2. Test getSchemas() + Set catalogsForSchemasFromAll = new HashSet<>(); + boolean foundAdditionalDataset = false; + try (ResultSet schemasRs = dbMetaData.getSchemas()) { + while (schemasRs.next()) { + String schemaName = schemasRs.getString("TABLE_SCHEM"); + String catalogName = schemasRs.getString("TABLE_CATALOG"); + catalogsForSchemasFromAll.add(catalogName); + if (additionalProjectsValue.equals(catalogName) + && datasetInAdditionalProject.equals(schemaName)) { + foundAdditionalDataset = true; + } + } + } + assertTrue( + "getSchemas() should list datasets from the primary project", + catalogsForSchemasFromAll.contains(PROJECT_ID)); + assertTrue( + "getSchemas() should list datasets from the additional project", + catalogsForSchemasFromAll.contains(additionalProjectsValue)); + assertTrue( + "Known dataset from additional project not found in getSchemas()", + foundAdditionalDataset); + + } catch (SQLException e) { + System.err.println("SQL Error during AdditionalProjects test: " + e.getMessage()); + throw e; + } + } + + @Test + public void testFilterTablesOnDefaultDataset_getTables() throws SQLException { + String defaultDatasetValue = CONSTRAINTS_DATASET; + String table1InDefaultDataset = CONSTRAINTS_TABLE_NAME; + String table2InDefaultDataset = CONSTRAINTS_TABLE_NAME2; + + String specificDatasetValue = "JDBC_TABLE_TYPES_TEST"; + String table1InSpecificDataset = "base_table"; + String table2InSpecificDataset = "external_table"; + + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=" + + PROJECT_ID + + ";OAuthType=3" + + ";DefaultDataset=" + + defaultDatasetValue + + ";FilterTablesOnDefaultDataset=1"; + try (Connection conn = DriverManager.getConnection(connectionUrl)) { + DatabaseMetaData dbMetaData = conn.getMetaData(); + + // Case 1: Catalog and schemaPattern are null/wildcard, should use DefaultDataset + try (ResultSet rs = dbMetaData.getTables(null, null, null, null)) { + Set tableNames = new HashSet<>(); + while (rs.next()) { + assertEquals(PROJECT_ID, rs.getString("TABLE_CAT")); + assertEquals(defaultDatasetValue, rs.getString("TABLE_SCHEM")); + tableNames.add(rs.getString("TABLE_NAME")); + } + assertTrue(tableNames.contains(table1InDefaultDataset)); + assertTrue(tableNames.contains(table2InDefaultDataset)); + } + + // Case 2: Explicit schemaPattern overrides DefaultDataset + try (ResultSet rs = dbMetaData.getTables(null, specificDatasetValue, null, null)) { + Set tableNames = new HashSet<>(); + while (rs.next()) { + assertEquals(PROJECT_ID, rs.getString("TABLE_CAT")); + assertEquals(specificDatasetValue, rs.getString("TABLE_SCHEM")); + tableNames.add(rs.getString("TABLE_NAME")); + } + assertTrue(tableNames.contains(table1InSpecificDataset)); + assertTrue(tableNames.contains(table2InSpecificDataset)); + } + + // Case 3: Explicit catalog, schemaPattern is null/wildcard, should use DefaultDataset within + // that catalog + try (ResultSet rs = dbMetaData.getTables(PROJECT_ID, null, null, null)) { + Set tableNames = new HashSet<>(); + while (rs.next()) { + assertEquals(PROJECT_ID, rs.getString("TABLE_CAT")); + assertEquals(defaultDatasetValue, rs.getString("TABLE_SCHEM")); + tableNames.add(rs.getString("TABLE_NAME")); + } + assertTrue(tableNames.contains(table1InDefaultDataset)); + assertTrue(tableNames.contains(table2InDefaultDataset)); + } + + // Case 4: Explicit catalog and schemaPattern override DefaultDataset + try (ResultSet rs = dbMetaData.getTables(PROJECT_ID, specificDatasetValue, null, null)) { + Set tableNames = new HashSet<>(); + while (rs.next()) { + assertEquals(PROJECT_ID, rs.getString("TABLE_CAT")); + assertEquals(specificDatasetValue, rs.getString("TABLE_SCHEM")); + tableNames.add(rs.getString("TABLE_NAME")); + } + assertTrue(tableNames.contains(table1InSpecificDataset)); + assertTrue(tableNames.contains(table2InSpecificDataset)); + } + } + } + + @Test + public void testFilterTablesOnDefaultDataset_getColumns() throws SQLException { + String defaultDatasetValue = CONSTRAINTS_DATASET; + String tableInDefaultDataset = CONSTRAINTS_TABLE_NAME; + String[] columnsInDefaultTable = {"id", "name", "second_name", "address"}; + + String specificDatasetValue = "JDBC_TABLE_TYPES_TEST"; + String tableInSpecificDataset = "base_table"; + String[] columnsInSpecificTable = {"id", "name", "created_at"}; + + String connectionUrl = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;ProjectId=" + + PROJECT_ID + + ";OAuthType=3" + + ";DefaultDataset=" + + defaultDatasetValue + + ";FilterTablesOnDefaultDataset=1"; + + try (Connection conn = DriverManager.getConnection(connectionUrl)) { + DatabaseMetaData dbMetaData = conn.getMetaData(); + + // Case 1: Catalog and schemaPattern are null/wildcard, should use DefaultDataset + try (ResultSet rs = dbMetaData.getColumns(null, null, tableInDefaultDataset, null)) { + Set columnNames = new HashSet<>(); + while (rs.next()) { + assertEquals(PROJECT_ID, rs.getString("TABLE_CAT")); + assertEquals(defaultDatasetValue, rs.getString("TABLE_SCHEM")); + assertEquals(tableInDefaultDataset, rs.getString("TABLE_NAME")); + columnNames.add(rs.getString("COLUMN_NAME")); + } + for (String expectedCol : columnsInDefaultTable) { + assertTrue(columnNames.contains(expectedCol)); + } + assertEquals(columnsInDefaultTable.length, columnNames.size()); + } + + // Case 2: Explicit schemaPattern overrides DefaultDataset + try (ResultSet rs = + dbMetaData.getColumns(null, specificDatasetValue, tableInSpecificDataset, null)) { + Set columnNames = new HashSet<>(); + while (rs.next()) { + assertEquals(PROJECT_ID, rs.getString("TABLE_CAT")); + assertEquals(specificDatasetValue, rs.getString("TABLE_SCHEM")); + assertEquals(tableInSpecificDataset, rs.getString("TABLE_NAME")); + columnNames.add(rs.getString("COLUMN_NAME")); + } + for (String expectedCol : columnsInSpecificTable) { + assertTrue(columnNames.contains(expectedCol)); + } + assertEquals(columnsInSpecificTable.length, columnNames.size()); + } + + // Case 3: Explicit catalog, schemaPattern is null/wildcard, should use DefaultDataset within + // that catalog + try (ResultSet rs = dbMetaData.getColumns(PROJECT_ID, null, tableInDefaultDataset, null)) { + Set columnNames = new HashSet<>(); + while (rs.next()) { + assertEquals(PROJECT_ID, rs.getString("TABLE_CAT")); + assertEquals(defaultDatasetValue, rs.getString("TABLE_SCHEM")); + assertEquals(tableInDefaultDataset, rs.getString("TABLE_NAME")); + columnNames.add(rs.getString("COLUMN_NAME")); + } + for (String expectedCol : columnsInDefaultTable) { + assertTrue(columnNames.contains(expectedCol)); + } + assertEquals(columnsInDefaultTable.length, columnNames.size()); + } + + // Case 4: Explicit catalog and schemaPattern override DefaultDataset + try (ResultSet rs = + dbMetaData.getColumns(PROJECT_ID, specificDatasetValue, tableInSpecificDataset, null)) { + Set columnNames = new HashSet<>(); + while (rs.next()) { + assertEquals(PROJECT_ID, rs.getString("TABLE_CAT")); + assertEquals(specificDatasetValue, rs.getString("TABLE_SCHEM")); + assertEquals(tableInSpecificDataset, rs.getString("TABLE_NAME")); + columnNames.add(rs.getString("COLUMN_NAME")); + } + for (String expectedCol : columnsInSpecificTable) { + assertTrue(columnNames.contains(expectedCol)); + } + assertEquals(columnsInSpecificTable.length, columnNames.size()); + } + } + } + + @Test + public void testAlterTable() throws SQLException { + String TABLE_NAME = "JDBC_ALTER_TABLE_" + randomNumber; + String createQuery = + String.format("CREATE OR REPLACE TABLE %s.%s (`StringField` STRING);", DATASET, TABLE_NAME); + String addColumnQuery = + String.format("ALTER TABLE %s.%s ADD COLUMN `IntegerField` INTEGER;", DATASET, TABLE_NAME); + String dropColumnQuery = + String.format( + "UPDATE %s.%s SET StringField='Jane Doe' WHERE IntegerField=111", DATASET, TABLE_NAME); + String dropQuery = String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME); + String selectQuery = String.format("SELECT * FROM %s.%s", DATASET, TABLE_NAME); + + int createStatus = bigQueryStatement.executeUpdate(createQuery); + assertEquals(0, createStatus); + + int addColumnStatus = bigQueryStatement.executeUpdate(addColumnQuery); + assertEquals(0, addColumnStatus); + + bigQueryStatement.executeQuery(selectQuery); + int selectStatus = bigQueryStatement.getUpdateCount(); + assertEquals(-1, selectStatus); + + int dropColumnStatus = bigQueryStatement.executeUpdate(dropColumnQuery); + assertEquals(0, dropColumnStatus); + + int dropStatus = bigQueryStatement.executeUpdate(dropQuery); + assertEquals(0, dropStatus); + + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TABLE_NAME)); + } + + public void testQueryPropertyDataSetProjectIdQueriesToCorrectDataset() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryProperties=dataset_project_id=" + + PROJECT_ID + + ";"; + String insertQuery = + String.format( + "INSERT INTO %s.%s (id, name, age) VALUES (15, 'Farhan', 25);", + "INTEGRATION_TESTS", "Test_Table"); + String selectQuery = + "SELECT * FROM `bigquery-devtools-drivers.INTEGRATION_TESTS.Test_Table` WHERE age=25;"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + statement.execute(insertQuery); + + // assertions + boolean result = statement.execute(selectQuery); + assertTrue(result); + + // clean up + String deleteQuery = + String.format("DELETE FROM %s.%s WHERE age=25", "INTEGRATION_TESTS", "Test_Table"); + statement.execute(deleteQuery); + connection.close(); + } + + @Test + public void testQueryPropertyDataSetProjectIdQueriesToIncorrectDatasetThrows() + throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryProperties=dataset_project_id=bigquerytestdefault" + + ";"; + String insertQuery = + String.format( + "INSERT INTO %s.%s (id, name, age) VALUES (15, 'Farhan', 25);", + "INTEGRATION_TESTS", "Test_Table"); + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act & assertion + assertThrows(BigQueryJdbcException.class, () -> statement.execute(insertQuery)); + connection.close(); + } + + @Test + public void testQueryPropertyTimeZoneQueries() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryProperties=time_zone=America/New_York;"; + String query = "SELECT * FROM `bigquery-public-data.samples.github_timeline` LIMIT 180"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + ResultSet resultSet = statement.executeQuery(query); + + // assertions + assertNotNull(resultSet); + assertTrue(resultSet.next()); + connection.close(); + } + + @Test + public void testQueryPropertySessionIdSetsStatementSession() + throws SQLException, InterruptedException { + String sessionId = getSessionId(); + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryProperties=session_id=" + + sessionId + + ";"; + String selectQuery = + "INSERT INTO `bigquery-devtools-drivers.JDBC_INTEGRATION_DATASET.No_KMS_Test_table` (id," + + " name, age) VALUES (132, 'Batman', 531);"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + boolean resultSet = statement.execute(selectQuery); + + // assertions + assertFalse(resultSet); + + // clean up + String deleteQuery = + String.format("DELETE FROM %s.%s WHERE age=25", "INTEGRATION_TESTS", "Test_Table"); + statement.execute(deleteQuery); + connection.close(); + } + + @Test + public void testEncryptedTableWithKmsQueries() throws SQLException { + // setup + String KMSKeyName = requireEnvVar("KMS_RESOURCE_PATH"); + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";KMSKeyName=" + + KMSKeyName + + ";"; + String selectQuery = "SELECT * FROM `JDBC_INTEGRATION_DATASET.KMS_Test_table`;"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + ResultSet resultSet = statement.executeQuery(selectQuery); + + // assertions for data not encrypted + assertNotNull(resultSet); + assertTrue(resultSet.next()); + assertEquals("Farhan", resultSet.getString("name")); + connection.close(); + } + + @Test + public void testIncorrectKmsThrows() throws SQLException { + String KMSKeyName = requireEnvVar("KMS_RESOURCE_PATH"); + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";KMSKeyName=" + + KMSKeyName + + ";"; + String selectQuery = + "INSERT INTO `bigquery-devtools-drivers.JDBC_INTEGRATION_DATASET.No_KMS_Test_table` (id," + + " name, age) VALUES (132, 'Batman', 531);"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act & assertion + assertThrows(BigQueryJdbcException.class, () -> statement.execute(selectQuery)); + connection.close(); + } + + @Test + public void testQueryPropertyServiceAccountFollowsIamPermission() throws SQLException { + final String SERVICE_ACCOUNT_EMAIL = requireEnvVar("SA_EMAIL"); + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryProperties=service_account=" + + SERVICE_ACCOUNT_EMAIL + + ";"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + ResultSet resultSet = statement.executeQuery(String.format(BASE_QUERY, 100)); + + // assertions + assertNotNull(resultSet); + assertTrue(resultSet.next()); + connection.close(); + } + + @Test + public void testValidLegacySQLStatement() throws SQLException { + String legacyJoinQuery = + "SELECT\n" + + " repo_name\n" + + "FROM\n" + + " [bigquery-public-data.github_repos.commits],\n" + + " [bigquery-public-data.github_repos.sample_commits] LIMIT 10"; + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;ProjectId=" + + PROJECT_ID + + ";QueryDialect=BIG_QUERY;"; + Connection connection = DriverManager.getConnection(connection_uri); + Statement statement = connection.createStatement(); + + boolean result = statement.execute(legacyJoinQuery); + assertTrue(result); + connection.close(); + } + + @Test + public void testMultipleTransactionsThrowsUnsupported() throws SQLException { + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + connection.setAutoCommit(false); + Statement statement = connection.createStatement(); + assertThrows(BigQueryJdbcException.class, () -> statement.execute("BEGIN TRANSACTION;")); + connection.close(); + } + + @Test + public void testConnectionWithMultipleTransactionCommits() throws SQLException { + String TRANSACTION_TABLE = "JDBC_MULTI_COMMIT_TABLE" + randomNumber; + String createTransactionTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, TRANSACTION_TABLE); + String insertQuery = + String.format( + "INSERT INTO %s.%s (id, name, age) VALUES (12, 'DwightShrute', %s);", + DATASET, TRANSACTION_TABLE, randomNumber); + String updateQuery = + String.format( + "UPDATE %s.%s SET age = 14 WHERE age = %s;", DATASET, TRANSACTION_TABLE, randomNumber); + String selectQuery = + String.format("SELECT id, name, age FROM %s.%s WHERE id = 12;", DATASET, TRANSACTION_TABLE); + + bigQueryStatement.execute(createTransactionTable); + + Connection connection = DriverManager.getConnection(session_enabled_connection_uri); + connection.setAutoCommit(false); + + Statement statement = connection.createStatement(); + statement.execute(insertQuery); + statement.execute(updateQuery); + connection.commit(); // First transaction + + // After commit, a new transaction should have started. + // Executing another query and then rolling it back. + String insertQuery2 = + String.format( + "INSERT INTO %s.%s (id, name, age) VALUES (15, 'MichaelScott', 25);", + DATASET, TRANSACTION_TABLE); + statement.execute(insertQuery2); + connection.rollback(); // Second transaction + + // Verify state with the static bigQueryStatement + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + int count = 0; + while (resultSet.next()) { + count++; + assertEquals(14, resultSet.getInt("age")); + } + assertEquals(1, count); // Only first transaction should be committed. + + // Verify the second insert was rolled back + ResultSet rs2 = + bigQueryStatement.executeQuery( + String.format("SELECT * FROM %s.%s WHERE id=15", DATASET, TRANSACTION_TABLE)); + assertFalse(rs2.next()); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %s.%s", DATASET, TRANSACTION_TABLE)); + + statement.close(); + connection.close(); + } + + // Private Helper functions + private String getSessionId() throws InterruptedException { + QueryJobConfiguration stubJobConfig = + QueryJobConfiguration.newBuilder("Select 1;").setCreateSession(true).build(); + Job job = bigQuery.create(JobInfo.of(stubJobConfig)); + job = job.waitFor(); + Job stubJob = bigQuery.getJob(job.getJobId()); + return stubJob.getStatistics().getSessionInfo().getSessionId(); + } + + @Test + public void testCallableStatementScriptExecuteUpdate() throws SQLException { + int randomNum = java.util.UUID.randomUUID().hashCode(); + String insertName = "callable-statement-dml-insert-test"; + String insertResult = String.format("%s-%d", insertName, randomNum); + String updateName = "callable-statement-dml-update-test"; + String updateResult = String.format("%s-%d", updateName, randomNum); + String selectStmtQuery = + String.format("SELECT * FROM %s.%s WHERE id = ?", DATASET, CALLABLE_STMT_DML_TABLE_NAME); + String insertCallStmtQuery = + String.format("CALL %s.%s(?,?,?);", DATASET, CALLABLE_STMT_DML_INSERT_PROC_NAME); + String updateCallStmtQuery = + String.format("CALL %s.%s(?,?,?);", DATASET, CALLABLE_STMT_DML_UPDATE_PROC_NAME); + String deleteCallStmtQuery = + String.format("CALL %s.%s(?);", DATASET, CALLABLE_STMT_DML_DELETE_PROC_NAME); + + // DML INSERT + CallableStatement callableStatement = bigQueryConnection.prepareCall(insertCallStmtQuery); + assertNotNull(callableStatement); + callableStatement.setString(1, insertName); + callableStatement.setInt(2, randomNum); + callableStatement.setString(3, insertResult); + int rowsInserted = callableStatement.executeUpdate(); + assertEquals(1, rowsInserted); + + PreparedStatement preparedStatement = bigQueryConnection.prepareStatement(selectStmtQuery); + assertNotNull(preparedStatement); + preparedStatement.setInt(1, randomNum); + ResultSet rs = preparedStatement.executeQuery(); + assertNotNull(rs); + assertTrue(rs.next()); + + assertEquals(insertName, rs.getString(1)); + assertEquals(randomNum, rs.getInt(2)); + assertEquals(insertResult, rs.getString(3)); + + // DML UPDATE + callableStatement = bigQueryConnection.prepareCall(updateCallStmtQuery); + assertNotNull(callableStatement); + callableStatement.setString(1, updateName); + callableStatement.setInt(2, randomNum); + callableStatement.setString(3, updateResult); + int rowsUpdated = callableStatement.executeUpdate(); + assertEquals(1, rowsUpdated); + + preparedStatement = bigQueryConnection.prepareStatement(selectStmtQuery); + assertNotNull(preparedStatement); + preparedStatement.setInt(1, randomNum); + rs = preparedStatement.executeQuery(); + assertNotNull(rs); + assertTrue(rs.next()); + + assertEquals(updateName, rs.getString(1)); + assertEquals(randomNum, rs.getInt(2)); + assertEquals(updateResult, rs.getString(3)); + + // DML DELETE + callableStatement = bigQueryConnection.prepareCall(deleteCallStmtQuery); + assertNotNull(callableStatement); + callableStatement.setInt(1, randomNum); + int rowsDeleted = callableStatement.executeUpdate(); + assertEquals(1, rowsDeleted); + + preparedStatement = bigQueryConnection.prepareStatement(selectStmtQuery); + assertNotNull(preparedStatement); + preparedStatement.setInt(1, randomNum); + rs = preparedStatement.executeQuery(); + assertNotNull(rs); + assertFalse(rs.next()); + + callableStatement.close(); + } + + @Test + public void testCallableStatementScriptExecuteLargeUpdate() throws SQLException { + int randomNum = java.util.UUID.randomUUID().hashCode(); + String insertName = "callable-statement-dml-insert-test"; + String insertResult = String.format("%s-%d", insertName, randomNum); + String updateName = "callable-statement-dml-update-test"; + String updateResult = String.format("%s-%d", updateName, randomNum); + String selectStmtQuery = + String.format("SELECT * FROM %s.%s WHERE id = ?", DATASET, CALLABLE_STMT_DML_TABLE_NAME); + String insertCallStmtQuery = + String.format("CALL %s.%s(?,?,?);", DATASET, CALLABLE_STMT_DML_INSERT_PROC_NAME); + String updateCallStmtQuery = + String.format("CALL %s.%s(?,?,?);", DATASET, CALLABLE_STMT_DML_UPDATE_PROC_NAME); + String deleteCallStmtQuery = + String.format("CALL %s.%s(?);", DATASET, CALLABLE_STMT_DML_DELETE_PROC_NAME); + + // DML INSERT + CallableStatement callableStatement = bigQueryConnection.prepareCall(insertCallStmtQuery); + assertNotNull(callableStatement); + callableStatement.setString(1, insertName); + callableStatement.setInt(2, randomNum); + callableStatement.setString(3, insertResult); + long rowsInserted = callableStatement.executeLargeUpdate(); + assertEquals(1L, rowsInserted); + + PreparedStatement preparedStatement = bigQueryConnection.prepareStatement(selectStmtQuery); + assertNotNull(preparedStatement); + preparedStatement.setInt(1, randomNum); + ResultSet rs = preparedStatement.executeQuery(); + assertNotNull(rs); + assertTrue(rs.next()); + + assertEquals(insertName, rs.getString(1)); + assertEquals(randomNum, rs.getInt(2)); + assertEquals(insertResult, rs.getString(3)); + + // DML UPDATE + callableStatement = bigQueryConnection.prepareCall(updateCallStmtQuery); + assertNotNull(callableStatement); + callableStatement.setString(1, updateName); + callableStatement.setInt(2, randomNum); + callableStatement.setString(3, updateResult); + long rowsUpdated = callableStatement.executeLargeUpdate(); + assertEquals(1L, rowsUpdated); + + preparedStatement = bigQueryConnection.prepareStatement(selectStmtQuery); + assertNotNull(preparedStatement); + preparedStatement.setInt(1, randomNum); + rs = preparedStatement.executeQuery(); + assertNotNull(rs); + assertTrue(rs.next()); + + assertEquals(updateName, rs.getString(1)); + assertEquals(randomNum, rs.getInt(2)); + assertEquals(updateResult, rs.getString(3)); + + // DML DELETE + callableStatement = bigQueryConnection.prepareCall(deleteCallStmtQuery); + assertNotNull(callableStatement); + callableStatement.setInt(1, randomNum); + long rowsDeleted = callableStatement.executeLargeUpdate(); + assertEquals(1L, rowsDeleted); + + preparedStatement = bigQueryConnection.prepareStatement(selectStmtQuery); + assertNotNull(preparedStatement); + preparedStatement.setInt(1, randomNum); + rs = preparedStatement.executeQuery(); + assertNotNull(rs); + assertFalse(rs.next()); + + callableStatement.close(); + } + + @Test + public void testScript() throws SQLException { + String BASE_QUERY = + "SELECT * FROM bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2017 order by" + + " trip_distance asc LIMIT %s;"; + String query1 = String.format(BASE_QUERY, 5000); + String query2 = String.format(BASE_QUERY, 7000); + String query3 = String.format(BASE_QUERY, 9000); + + bigQueryStatement.execute(query1 + query2 + query3); + ResultSet resultSet = bigQueryStatement.getResultSet(); + assertEquals(5000, resultSetRowCount(resultSet)); + + boolean hasMoreResult = bigQueryStatement.getMoreResults(); + assertTrue(hasMoreResult); + resultSet = bigQueryStatement.getResultSet(); + assertEquals(7000, resultSetRowCount(resultSet)); + + hasMoreResult = bigQueryStatement.getMoreResults(); + assertTrue(hasMoreResult); + resultSet = bigQueryStatement.getResultSet(); + assertEquals(9000, resultSetRowCount(resultSet)); + } + + @Test + public void testCallableStatementScriptExecute() throws SQLException { + int randomNum = random.nextInt(99); + String callableStmtQuery = + String.format( + "DECLARE call_result STRING;" + + "CALL %s.%s(?,?,call_result);" + + "SELECT * FROM %s.%s WHERE result = call_result;", + DATASET, CALLABLE_STMT_PROC_NAME, DATASET, CALLABLE_STMT_TABLE_NAME); + CallableStatement callableStatement = bigQueryConnection.prepareCall(callableStmtQuery); + callableStatement.setString(1, "callable-stmt-test"); + callableStatement.setInt(2, randomNum); + + assertFalse(callableStatement.execute()); + assertEquals(1, callableStatement.getUpdateCount()); + + // This is an actual SELECT * from the above + assertTrue(callableStatement.getMoreResults()); + ResultSet resultSet = callableStatement.getResultSet(); + ResultSetMetaData rsMetadata = resultSet.getMetaData(); + assertEquals(3, rsMetadata.getColumnCount()); + + assertTrue(resultSet.next()); + + String expected = String.format("callable-stmt-test-%d", randomNum); + String actual = resultSet.getString(3); + + assertEquals(expected, actual); + + // Validate there are no more results + assertFalse(callableStatement.getMoreResults()); + assertEquals(-1, callableStatement.getUpdateCount()); + callableStatement.close(); + } + + @Test + public void testExecuteScriptWithExpession() throws SQLException { + int randomNum = random.nextInt(99); + String query = String.format("DECLARE x INT64; SET x = (SELECT %s); SELECT x;", randomNum); + + assertTrue(bigQueryStatement.execute(query)); + ResultSet rs = bigQueryStatement.getResultSet(); + assertTrue(rs.next()); + assertEquals(randomNum, rs.getInt(1)); + assertFalse(rs.next()); + assertFalse(bigQueryStatement.getMoreResults()); + assertEquals(-1, bigQueryStatement.getUpdateCount()); + } + + @Test + public void testInformationSchemaTables() throws SQLException { + String query = String.format("SELECT * FROM %s.INFORMATION_SCHEMA.TABLES", DATASET); + try (Statement statement = bigQueryConnection.createStatement(); + ResultSet resultSet = statement.executeQuery(query)) { + ResultSetMetaData metaData = resultSet.getMetaData(); + int columnCount = metaData.getColumnCount(); + assertTrue(columnCount > 0); + int rowCount = 0; + while (resultSet.next()) { + rowCount++; + for (int i = 1; i <= columnCount; i++) { + Object obj = resultSet.getObject(i); + if (obj != null) { + assertNotNull(obj.toString()); + } + } + } + assertTrue(rowCount > 0); + } + } + + private void validate( + String method, + BiFunction getter, + ImmutableMap expectedResult) + throws Exception { + + try (Connection connection = DriverManager.getConnection(connection_uri); + Connection connectionHTAPI = + DriverManager.getConnection( + connection_uri + + ";HighThroughputMinTableSize=0;HighThroughputActivationRatio=0;EnableHighThroughputAPI=1;"); + Statement statement = connection.createStatement(); + Statement statementHTAPI = connectionHTAPI.createStatement()) { + + String query = + "SELECT * FROM INTEGRATION_TEST_FORMAT.all_bq_types WHERE stringField is not null"; + ResultSet resultSetRegular = statement.executeQuery(query); + ResultSet resultSetArrow = statementHTAPI.executeQuery(query); + resultSetRegular.next(); + resultSetArrow.next(); + + for (int i = 1; i <= resultSetRegular.getMetaData().getColumnCount(); i++) { + String columnName = resultSetRegular.getMetaData().getColumnName(i); + + String regularApiLabel = + String.format("[Method: %s] [Column: %s] [API: Regular]", method, columnName); + String htapiApiLabel = + String.format("[Method: %s] [Column: %s] [API: HTAPI]", method, columnName); + + if (expectedResult.containsKey(columnName)) { + Object expectedValue = expectedResult.get(columnName); + + assertEquals(regularApiLabel, expectedValue, getter.apply(resultSetRegular, i)); + assertEquals(htapiApiLabel, expectedValue, getter.apply(resultSetArrow, i)); + + } else { + String regularMsg = "Expected exception but got a value. " + regularApiLabel; + assertEquals(regularMsg, EXCEPTION_REPLACEMENT, getter.apply(resultSetRegular, i)); + + String htapiMsg = "Expected exception but got a value. " + htapiApiLabel; + assertEquals(htapiMsg, EXCEPTION_REPLACEMENT, getter.apply(resultSetArrow, i)); + } + } + } + } + + @Test + public void validateGetString() throws Exception { + final ImmutableMap stringResults = + new ImmutableMap.Builder() + .put("stringField", "StringValue") + .put("bytesField", "Qnl0ZXNWYWx1ZQ==") + .put("intField", "123") + .put("floatField", "10.5") + .put("numericField", "12345.67") + .put("bigNumericField", "98765432109876543210.123456789") + .put("booleanField", "true") + .put("timestampFiled", "2023-07-28 12:30:00.000000") + .put("dateField", "2023-07-28") + .put("timeField", "12:30:00.000") + .put("dateTimeField", "2023-07-28 12:30:00.000000") + .put("geographyField", "POINT(-74.006 40.7128)") + .put( + "recordField", + "{\"name\":\"NameValue\",\"recordNested\":{\"lastName\":\"LastNameValue\"}}") + .put("rangeField", "[2023-01-01, 2023-12-01)") + .put("jsonField", "{\"key\":\"value\"}") + .put("arrayString", "[abc, def, ghi]") + .put("arrayRecord", "[{\"value\":\"rec_val1\"}, {\"value\":\"rec_val2\"}]") + .put("arrayBytes", "[Ynl0ZTE=, Ynl0ZTI=]") + .put("arrayInteger", "[10, 20]") + .put("arrayNumeric", "[10.5, 20.5]") + .put("arrayBignumeric", "[100.1, 200.2]") + .put("arrayBoolean", "[true, false]") + .put("arrayTimestamp", "[2023-01-01 01:00:00.0, 2023-01-01 02:00:00.0]") + .put("arrayDate", "[2023-01-01, 2023-01-02]") + .put("arrayTime", "[01:00:00, 02:00:00]") + .put("arrayDatetime", "[2023-01-01 01:00:00.0, 2023-01-01 02:00:00.0]") + .put("arrayGeography", "[POINT(1 1), POINT(2 2)]") + .put("arrayRange", "[[2023-01-01, 2023-01-03), [2023-01-04, 2023-01-06)]") + .put("arrayJson", "[{\"a\":1}, {\"b\":2}]") + .put("arrayFloat", "[1.1, 2.2]") + .build(); + BiFunction getter = + (s, i) -> { + try { + return s.getString(i); + } catch (Exception e) { + return EXCEPTION_REPLACEMENT; + } + }; + validate("getString", getter, stringResults); + } + + @Test + public void validateGetInt() throws Exception { + final ImmutableMap result = + new ImmutableMap.Builder() + .put("intField", 123) + .put("floatField", 10) + .put("numericField", 12345) + .put("booleanField", 1) + .build(); + BiFunction getter = + (s, i) -> { + try { + return s.getInt(i); + } catch (Exception e) { + return EXCEPTION_REPLACEMENT; + } + }; + validate("getInt", getter, result); + } + + @Test + public void validateGetLong() throws Exception { + final ImmutableMap result = + new ImmutableMap.Builder() + .put("intField", 123L) + .put("floatField", 10L) + .put("numericField", 12345L) + .put("booleanField", 1L) + .build(); + BiFunction getter = + (s, i) -> { + try { + return s.getLong(i); + } catch (Exception e) { + return EXCEPTION_REPLACEMENT; + } + }; + validate("getLong", getter, result); + } + + @Test + public void validateGetBool() throws Exception { + final ImmutableMap result = + new ImmutableMap.Builder() + .put("intField", true) + .put("floatField", true) + .put("numericField", true) + .put("booleanField", true) + .put("bigNumericField", true) + .put("stringField", false) + .build(); + BiFunction getter = + (s, i) -> { + try { + return s.getBoolean(i); + } catch (Exception e) { + return EXCEPTION_REPLACEMENT; + } + }; + validate("getBool", getter, result); + } + + @Test + public void validateGetFloat() throws Exception { + final ImmutableMap result = + new ImmutableMap.Builder() + .put("intField", (float) 123.0) + .put("floatField", (float) 10.5) + .put("numericField", (float) 12345.67) + .put("bigNumericField", (float) 98765432109876543210.123456789) + .put("booleanField", (float) 1.0) + .build(); + BiFunction getter = + (s, i) -> { + try { + return s.getFloat(i); + } catch (Exception e) { + return EXCEPTION_REPLACEMENT; + } + }; + validate("getFloat", getter, result); + } + + @Test + public void validateGetDouble() throws Exception { + final ImmutableMap result = + new ImmutableMap.Builder() + .put("intField", (double) 123.0) + .put("floatField", (double) 10.5) + .put("numericField", (double) 12345.67) + .put("bigNumericField", (double) 98765432109876543210.123456789) + .put("booleanField", (double) 1.0) + .build(); + BiFunction getter = + (s, i) -> { + try { + return s.getDouble(i); + } catch (Exception e) { + return EXCEPTION_REPLACEMENT; + } + }; + validate("getDouble", getter, result); + } + + @Test + public void validateGetShort() throws Exception { + final ImmutableMap result = + new ImmutableMap.Builder() + .put("intField", (short) 123) + .put("floatField", (short) 10) + .put("numericField", (short) 12345) + .put("booleanField", (short) 1) + .build(); + BiFunction getter = + (s, i) -> { + try { + return s.getShort(i); + } catch (Exception e) { + return EXCEPTION_REPLACEMENT; + } + }; + validate("getShort", getter, result); + } + + @Test + public void validateGetTime() throws Exception { + final ImmutableMap result = + new ImmutableMap.Builder() + .put("timeField", Time.valueOf("12:30:00")) + .put("dateTimeField", Time.valueOf("12:30:00")) + .put("timestampFiled", Time.valueOf("12:30:00")) + .build(); + BiFunction getter = + (s, i) -> { + try { + return s.getTime(i); + } catch (Exception e) { + return EXCEPTION_REPLACEMENT; + } + }; + validate("getTime", getter, result); + } + + @Test + public void validateGetDate() throws Exception { + final ImmutableMap result = + new ImmutableMap.Builder() + .put("dateField", Date.valueOf("2023-07-28")) + .put("dateTimeField", Date.valueOf("2023-07-28")) + .put("timestampFiled", Date.valueOf("2023-07-28")) + .build(); + BiFunction getter = + (s, i) -> { + try { + return s.getDate(i); + } catch (Exception e) { + return EXCEPTION_REPLACEMENT; + } + }; + validate("getDate", getter, result); + } + + @Test + public void validateGetTimestamp() throws Exception { + final ImmutableMap result = + new ImmutableMap.Builder() + .put("timeField", Timestamp.valueOf("1970-01-01 12:30:00")) + .put("dateField", Timestamp.valueOf("2023-07-28 00:00:00")) + .put("dateTimeField", Timestamp.valueOf("2023-07-28 12:30:00")) + .put("timestampFiled", Timestamp.valueOf("2023-07-28 12:30:00")) + .build(); + BiFunction getter = + (s, i) -> { + try { + return s.getTimestamp(i); + } catch (Exception e) { + return EXCEPTION_REPLACEMENT; + } + }; + validate("getTimestamp", getter, result); + } + + @Test + public void validateGetByte() throws Exception { + final ImmutableMap result = + new ImmutableMap.Builder() + .put("intField", (byte) 123) + .put("booleanField", (byte) 1) + .put("floatField", (byte) 10) + .build(); + BiFunction getter = + (s, i) -> { + try { + return s.getByte(i); + } catch (Exception e) { + return EXCEPTION_REPLACEMENT; + } + }; + validate("getByte", getter, result); + } + + @Test + public void validateGetObjectNullValues() throws Exception { + try (Connection connection = DriverManager.getConnection(connection_uri); + Connection connectionHTAPI = + DriverManager.getConnection( + connection_uri + + ";HighThroughputMinTableSize=0;HighThroughputActivationRatio=0;EnableHighThroughputAPI=1;"); + Statement statement = connection.createStatement(); + Statement statementHTAPI = connectionHTAPI.createStatement()) { + + String query = + "SELECT * FROM INTEGRATION_TEST_FORMAT.all_bq_types WHERE stringField is null;"; + ResultSet resultSetRegular = statement.executeQuery(query); + ResultSet resultSetArrow = statementHTAPI.executeQuery(query); + resultSetRegular.next(); + resultSetArrow.next(); + + for (int i = 1; i <= resultSetRegular.getMetaData().getColumnCount(); i++) { + String columnName = resultSetRegular.getMetaData().getColumnName(i); + if (!columnName.contains("array")) { + assertNull(resultSetRegular.getObject(i)); + assertNull(resultSetArrow.getObject(i)); + } else { + assertEquals(resultSetRegular.getObject(i).toString(), "[]"); + assertEquals(resultSetArrow.getObject(i).toString(), "[]"); + } + } + } + } + + private int resultSetRowCount(ResultSet resultSet) throws SQLException { + int rowCount = 0; + while (resultSet.next()) { + rowCount++; + } + return rowCount; + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITNightlyBigQueryTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITNightlyBigQueryTest.java new file mode 100644 index 000000000000..30124b4a0497 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITNightlyBigQueryTest.java @@ -0,0 +1,1713 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc.it; + +import static com.google.common.truth.Truth.assertThat; +import static java.util.Arrays.asList; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; + +import com.google.cloud.ServiceOptions; +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.Job; +import com.google.cloud.bigquery.JobInfo; +import com.google.cloud.bigquery.QueryJobConfiguration; +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import com.google.cloud.bigquery.exception.BigQueryJdbcSqlSyntaxErrorException; +import com.google.cloud.bigquery.jdbc.BigQueryConnection; +import com.google.cloud.bigquery.jdbc.BigQueryDriver; +import java.nio.charset.StandardCharsets; +import java.sql.Connection; +import java.sql.Date; +import java.sql.Driver; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.Struct; +import java.sql.Time; +import java.sql.Timestamp; +import java.util.Arrays; +import java.util.Properties; +import java.util.Random; +import java.util.concurrent.atomic.AtomicBoolean; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.junit.Test; + +public class ITNightlyBigQueryTest { + static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); + static Connection bigQueryConnection; + static Statement bigQueryStatement; + static BigQuery bigQuery; + private static final Random random = new Random(); + private static final int randomNumber = random.nextInt(9999); + private static final String BASE_QUERY = + "SELECT * FROM bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2017 order by" + + " trip_distance asc LIMIT %s"; + private static final String CONSTRAINTS_DATASET = "JDBC_CONSTRAINTS_TEST_DATASET"; + private static final String CONSTRAINTS_TABLE_NAME = "JDBC_CONSTRAINTS_TEST_TABLE"; + private static final String CONSTRAINTS_TABLE_NAME2 = "JDBC_CONSTRAINTS_TEST_TABLE2"; + private static final String CALLABLE_STMT_PROC_NAME = "IT_CALLABLE_STMT_PROC_TEST"; + private static final String CALLABLE_STMT_TABLE_NAME = "IT_CALLABLE_STMT_PROC_TABLE"; + private static final String CALLABLE_STMT_PARAM_KEY = "CALL_STMT_PARAM_KEY"; + private static final String CALLABLE_STMT_DML_INSERT_PROC_NAME = + "IT_CALLABLE_STMT_PROC_DML_INSERT_TEST"; + private static final String CALLABLE_STMT_DML_UPDATE_PROC_NAME = + "IT_CALLABLE_STMT_PROC_DML_UPDATE_TEST"; + private static final String CALLABLE_STMT_DML_DELETE_PROC_NAME = + "IT_CALLABLE_STMT_PROC_DML_DELETE_TEST"; + private static final String CALLABLE_STMT_DML_TABLE_NAME = "IT_CALLABLE_STMT_PROC_DML_TABLE"; + private static final String DATASET = "JDBC_NIGHTLY_IT_DATASET"; + private static final String DATASET2 = "JDBC_PRESUBMIT_INTEGRATION_DATASET_2"; + static final String session_enabled_connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3;EnableSession=1"; + + static final String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3"; + + @BeforeClass + public static void beforeClass() throws SQLException { + bigQueryConnection = DriverManager.getConnection(connection_uri, new Properties()); + bigQueryStatement = bigQueryConnection.createStatement(); + bigQuery = BigQueryOptions.newBuilder().build().getService(); + } + + @AfterClass + public static void afterClass() throws SQLException { + bigQueryStatement.close(); + bigQueryConnection.close(); + } + + @Test + public void testMergeInExecuteBatch() throws SQLException { + Random random = new Random(); + String DATASET = "JDBC_INTEGRATION_DATASET"; + String TABLE_NAME1 = "Inventory" + random.nextInt(9999); + String TABLE_NAME2 = "DetailedInventory" + random.nextInt(9999); + + String createQuery = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`product` STRING, `quantity` INTEGER);", + DATASET, TABLE_NAME1); + + String createQuery2 = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`product` STRING, `quantity` INTEGER," + + " `supply_constrained` BOOLEAN, `comment` STRING);", + DATASET, TABLE_NAME2); + + String insertQuery2 = + String.format( + "INSERT INTO %s.%s (product, quantity, supply_constrained, comment) " + + "VALUES ('countertop microwave', 20, NULL,'[]' )," + + " ('front load washer', 20, false,'[]' ), " + + " ('microwave', 20, false,'[]' ), " + + " ('refrigerator', 10, false,'[]' );", + DATASET, TABLE_NAME2); + + bigQueryStatement.execute(createQuery); + bigQueryStatement.execute(createQuery2); + bigQueryStatement.execute(insertQuery2); + + String insertQuery = + String.format( + "INSERT INTO %s.%s (product, quantity) " + + "VALUES (?,? ), (?,? ), (?,? ), (?,? ), (?,? ), (?,? );", + DATASET, TABLE_NAME1); + PreparedStatement insertPs = bigQueryConnection.prepareStatement(insertQuery); + insertPs.setString(1, "dishwasher"); + insertPs.setInt(2, 30); + insertPs.setString(3, "dryer"); + insertPs.setInt(4, 30); + insertPs.setString(5, "front load washer"); + insertPs.setInt(6, 20); + insertPs.setString(7, "microwave"); + insertPs.setInt(8, 20); + insertPs.setString(9, "oven"); + insertPs.setInt(10, 5); + insertPs.setString(11, "top load washer"); + insertPs.setInt(12, 10); + + int insertStatus = insertPs.executeUpdate(); + assertEquals(6, insertStatus); + + String updateQuery = + String.format("UPDATE %s.%s SET quantity=? WHERE product=?", DATASET, TABLE_NAME1); + PreparedStatement updatePs = bigQueryConnection.prepareStatement(updateQuery); + updatePs.setString(2, "dryer"); + updatePs.setInt(1, 35); + + int updateStatus = updatePs.executeUpdate(); + assertEquals(1, updateStatus); + + String deleteQuery = String.format("DELETE FROM %s.%s WHERE product=?", DATASET, TABLE_NAME1); + PreparedStatement deletePs = bigQueryConnection.prepareStatement(deleteQuery); + deletePs.setString(1, "dishwasher"); + + int deleteStatus = deletePs.executeUpdate(); + assertEquals(1, deleteStatus); + + Statement statement = bigQueryConnection.createStatement(); + String mergeQuery = + String.format( + "MERGE %s.%s T\n" + + "USING %s.%s S\n" + + "ON T.product = S.product\n" + + "WHEN NOT MATCHED AND quantity < 100 THEN\n" + + " INSERT(product, quantity, supply_constrained, comment)\n" + + " VALUES(product, quantity, true, '[]')\n", + DATASET, TABLE_NAME2, DATASET, TABLE_NAME1); + statement.addBatch(mergeQuery); + int[] result = statement.executeBatch(); + + assertEquals(1, result.length); + assertEquals(3, result[0]); + bigQueryStatement.execute(String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME1)); + bigQueryStatement.execute(String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME2)); + } + + @Test + public void testValidLongRunningQuery() throws SQLException { + // setup + String selectQuery = + "SELECT * FROM `bigquery-public-data.deepmind_alphafold.metadata` LIMIT 50000"; + + // Read data via JDBC + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertNotNull(resultSet); + + for (int i = 0; i < 50000; i++) { + resultSet.next(); + assertFalse(resultSet.wasNull()); + assertNotNull(resultSet.getString(5)); + } + + // clean up + resultSet.close(); + } + + @Test + public void testQueryInterruptGracefullyStopsExplicitJob() + throws SQLException, InterruptedException { + AtomicBoolean threadException = new AtomicBoolean(true); + Connection bigQueryConnection = + DriverManager.getConnection(connection_uri + ";JobCreationMode=1", new Properties()); + Statement bigQueryStatement = bigQueryConnection.createStatement(); + + // This query takes 300 seconds to complete + String query300Seconds = + "DECLARE DELAY_TIME DATETIME; SET DELAY_TIME = DATETIME_ADD(CURRENT_DATETIME, INTERVAL 300" + + " SECOND); WHILE CURRENT_DATETIME < DELAY_TIME DO END WHILE;"; + + // Query will be started in the background thread & we will call cancel from current thread. + Thread t = + new Thread( + () -> { + SQLException e = + assertThrows( + SQLException.class, () -> bigQueryStatement.execute(query300Seconds)); + assertTrue(e.getMessage().contains("User requested cancellation")); + threadException.set(false); + }); + t.start(); + // Allow thread to actually initiate the query + Thread.sleep(3000); + bigQueryStatement.cancel(); + // Wait until background thread is finished + t.join(); + assertFalse(threadException.get()); + // Ensure statement can be used again + assertFalse(bigQueryStatement.isClosed()); + bigQueryStatement.executeQuery("SELECT 1"); + } + + @Test + public void testQueryInterruptGracefullyStopsOptionalJob() + throws SQLException, InterruptedException { + AtomicBoolean threadException = new AtomicBoolean(true); + Connection bigQueryConnection = + DriverManager.getConnection(connection_uri + ";JobCreationMode=2", new Properties()); + Statement bigQueryStatement = bigQueryConnection.createStatement(); + + // This query takes 300 seconds to complete + String query300Seconds = + "DECLARE DELAY_TIME DATETIME; SET DELAY_TIME = DATETIME_ADD(CURRENT_DATETIME, INTERVAL 300" + + " SECOND); WHILE CURRENT_DATETIME < DELAY_TIME DO END WHILE;"; + + // Query will be started in the background thread & we will call cancel from current thread. + Thread t = + new Thread( + () -> { + SQLException e = + assertThrows( + SQLException.class, () -> bigQueryStatement.execute(query300Seconds)); + assertTrue(e.getMessage().contains("Query was cancelled.")); + threadException.set(false); + }); + t.start(); + // Allow thread to actually initiate the query + Thread.sleep(3000); + bigQueryStatement.cancel(); + // Wait until background thread is finished + t.join(); + assertFalse(threadException.get()); + // Ensure statement can be used again + assertFalse(bigQueryStatement.isClosed()); + bigQueryStatement.executeQuery("SELECT 1"); + } + + @Test + public void testWideColumnQueries() throws SQLException { + String selectQuery = + "SELECT * FROM `bigquery-public-data.covid19_open_data_eu.covid19_open_data` LIMIT 50000"; + + // Read data via JDBC + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertNotNull(resultSet); + + for (int i = 0; i < 50000; i++) { + resultSet.next(); + assertFalse(resultSet.wasNull()); + } + + // clean up + resultSet.close(); + } + + @Test + public void testExecuteLargeUpdate() throws SQLException { + String tableName = "JDBC_LARGE_UPDATE_TABLE_" + randomNumber; + String createQuery = + String.format( + "CREATE TABLE %s.%s (" + + " gbifid STRING, scientificname STRING, " + + " individualcount INTEGER, isReviewed BOOLEAN)", + DATASET, tableName); + + String insertQuery = + String.format( + "INSERT INTO %s.%s (gbifid, scientificname, individualcount) " + + "SELECT gbifid, scientificname, individualcount FROM " + + "bigquery-public-data.gbif.occurrences;", + DATASET, tableName); + String updateQuery = + String.format( + "UPDATE %s.%s SET isReviewed = false WHERE individualcount >= 0 OR individualcount IS" + + " NULL", + DATASET, tableName); + + String selectQuery = String.format("SELECT * FROM %s.%s LIMIT 10", DATASET, tableName); + + bigQueryStatement.execute(createQuery); + + long insertCount = bigQueryStatement.executeLargeUpdate(insertQuery); + assertTrue(insertCount > Integer.MAX_VALUE); + + long updateCount = bigQueryStatement.executeLargeUpdate(updateQuery); + assertTrue(updateCount > Integer.MAX_VALUE); + + ResultSet selectResult = bigQueryStatement.executeQuery(selectQuery); + assertTrue(selectResult.next()); + assertFalse(selectResult.getBoolean("isReviewed")); + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, tableName)); + } + + @Test + public void testHTAPIWithValidDestinationTableSavesQueriesWithStandardSQL() throws SQLException { + // setup + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryDialect=SQL;" + + "LargeResultTable=destination_table_test;" + + "LargeResultDataset=INTEGRATION_TESTS;" + + "EnableHighThroughputAPI=1;"; + String selectLegacyQuery = + "SELECT * FROM `bigquery-public-data.deepmind_alphafold.metadata` LIMIT 200000;"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + ResultSet resultSet = statement.executeQuery(selectLegacyQuery); + + // assertion + assertNotNull(resultSet); + String selectQuery = "SELECT * FROM INTEGRATION_TESTS.destination_table_test;"; + ResultSet actualResultSet = bigQueryStatement.executeQuery(selectQuery); + assertEquals(200000, resultSetRowCount(actualResultSet)); + + // clean up + String deleteRows = "DELETE FROM `INTEGRATION_TESTS.destination_table_test` WHERE 1=1;"; + bigQueryStatement.execute(deleteRows); + } + + @Test + public void testBigQueryConcurrentLimitWithExecuteBatch() throws SQLException { + // setup + String BATCH_TABLE = "JDBC_EXECUTE_BATCH_TABLE_CONCURRENT_LIMIT_" + random.nextInt(99); + String createBatchTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE); + bigQueryStatement.execute(createBatchTable); + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + // batch bypasses the 16 concurrent limit + int[] results; + for (int i = 0; i < 30; i++) { + String insertQuery = + "INSERT INTO " + + DATASET + + "." + + BATCH_TABLE + + " (id, name, age) " + + "VALUES (12, 'Farhan', " + + randomNumber + + i + + "); "; + statement.addBatch(insertQuery); + } + results = statement.executeBatch(); + + for (int updateCount : results) { + assertEquals(1, updateCount); + } + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, BATCH_TABLE)); + } + + @Test + public void testValidExecuteBatch() throws SQLException { + // setup + String BATCH_TABLE = "JDBC_EXECUTE_BATCH_TABLE_" + random.nextInt(99); + String createBatchTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE); + bigQueryStatement.execute(createBatchTable); + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + // batch bypasses the 16 concurrent limit + int[] results; + for (int i = 0; i < 30; i++) { + String insertQuery = + "INSERT INTO " + + DATASET + + "." + + BATCH_TABLE + + " (id, name, age) " + + "VALUES (12, 'Farhan', " + + randomNumber + + i + + "); "; + statement.addBatch(insertQuery); + } + results = statement.executeBatch(); + + // assertions + assertEquals(30, results.length); + for (int updateCount : results) { + assertEquals(1, updateCount); + } + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, BATCH_TABLE)); + } + + @Test + public void testValidExecuteBatchWithMultipleDatasets() throws SQLException { + // setup + String BATCH_TABLE = "JDBC_EXECUTE_BATCH_TABLE_MULTIPLE_DATASET_" + random.nextInt(99); + String createBatchTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE); + String createBatchTable2 = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET2, BATCH_TABLE); + bigQueryStatement.execute(createBatchTable); + bigQueryStatement.execute(createBatchTable2); + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + int[] results; + for (int i = 0; i < 15; i++) { + String insertQuery = + "INSERT INTO " + + DATASET + + "." + + BATCH_TABLE + + " (id, name, age) " + + "VALUES (12, 'Farhan', " + + randomNumber + + i + + "); "; + statement.addBatch(insertQuery); + } + for (int i = 0; i < 15; i++) { + String insertQuery = + "INSERT INTO " + + DATASET2 + + "." + + BATCH_TABLE + + " (id, name, age) " + + "VALUES (12, 'Farhan', " + + randomNumber + + i + + "); "; + statement.addBatch(insertQuery); + } + results = statement.executeBatch(); + + // assertions + for (int updateCount : results) { + assertEquals(1, updateCount); + } + + // do a select to validate row count on each + String selectQuery = String.format("SELECT id, name, age FROM %s.%s ;", DATASET, BATCH_TABLE); + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertEquals(15, resultSetRowCount(resultSet)); + selectQuery = String.format("SELECT id, name, age FROM %s.%s ;", DATASET2, BATCH_TABLE); + resultSet = bigQueryStatement.executeQuery(selectQuery); + assertEquals(15, resultSetRowCount(resultSet)); + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, BATCH_TABLE)); + } + + @Test + public void testValidExecuteBatchWithMultipleTables() throws SQLException { + // setup + String BATCH_TABLE = "JDBC_EXECUTE_BATCH_TABLE_MULTI_TABLES_" + random.nextInt(99); + String BATCH_TABLE_2 = "JDBC_EXECUTE_BATCH_TABLE_MULTI_TABLES_" + random.nextInt(99); + String createBatchTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE); + String createBatchTable2 = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE_2); + bigQueryStatement.execute(createBatchTable); + bigQueryStatement.execute(createBatchTable2); + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + int[] results; + for (int i = 0; i < 5; i++) { + String insertQuery = + "INSERT INTO " + + DATASET + + "." + + BATCH_TABLE + + " (id, name, age) " + + "VALUES (12, 'Farhan', " + + randomNumber + + i + + "); "; + statement.addBatch(insertQuery); + } + for (int i = 0; i < 5; i++) { + String insertQuery = + "INSERT INTO " + + DATASET + + "." + + BATCH_TABLE_2 + + " (id, name, age) " + + "VALUES (12, 'Farhan', " + + randomNumber + + i + + "); "; + statement.addBatch(insertQuery); + } + results = statement.executeBatch(); + + // assertions + for (int updateCount : results) { + assertEquals(1, updateCount); + } + + // do a select to test row count on each + String selectQuery = String.format("SELECT id, name, age FROM %s.%s ;", DATASET, BATCH_TABLE); + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertEquals(5, resultSetRowCount(resultSet)); + selectQuery = String.format("SELECT id, name, age FROM %s.%s ;", DATASET, BATCH_TABLE_2); + resultSet = bigQueryStatement.executeQuery(selectQuery); + assertEquals(5, resultSetRowCount(resultSet)); + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, BATCH_TABLE)); + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, BATCH_TABLE_2)); + } + + @Test + public void testPreparedStatementExecuteUpdate() throws SQLException { + Random random = new Random(); + String DATASET = "JDBC_INTEGRATION_DATASET"; + String TABLE_NAME1 = "Inventory" + random.nextInt(9999); + String TABLE_NAME2 = "DetailedInventory" + random.nextInt(9999); + + String createQuery = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`product` STRING, `quantity` INTEGER);", + DATASET, TABLE_NAME1); + + String createQuery2 = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`product` STRING, `quantity` INTEGER," + + " `supply_constrained` BOOLEAN, `comment` STRING);", + DATASET, TABLE_NAME2); + + String insertQuery2 = + String.format( + "INSERT INTO %s.%s (product, quantity, supply_constrained, comment) " + + "VALUES ('countertop microwave', 20, NULL,'[]' )," + + " ('front load washer', 20, false,'[]' ), " + + " ('microwave', 20, false,'[]' ), " + + " ('refrigerator', 10, false,'[]' );", + DATASET, TABLE_NAME2); + + bigQueryStatement.execute(createQuery); + bigQueryStatement.execute(createQuery2); + bigQueryStatement.execute(insertQuery2); + + String insertQuery = + String.format( + "INSERT INTO %s.%s (product, quantity) " + + "VALUES (?,? ), (?,? ), (?,? ), (?,? ), (?,? ), (?,? );", + DATASET, TABLE_NAME1); + PreparedStatement insertPs = bigQueryConnection.prepareStatement(insertQuery); + insertPs.setString(1, "dishwasher"); + insertPs.setInt(2, 30); + insertPs.setString(3, "dryer"); + insertPs.setInt(4, 30); + insertPs.setString(5, "front load washer"); + insertPs.setInt(6, 20); + insertPs.setString(7, "microwave"); + insertPs.setInt(8, 20); + insertPs.setString(9, "oven"); + insertPs.setInt(10, 5); + insertPs.setString(11, "top load washer"); + insertPs.setInt(12, 10); + + int insertStatus = insertPs.executeUpdate(); + assertEquals(6, insertStatus); + + String updateQuery = + String.format("UPDATE %s.%s SET quantity=? WHERE product=?", DATASET, TABLE_NAME1); + PreparedStatement updatePs = bigQueryConnection.prepareStatement(updateQuery); + updatePs.setString(2, "dryer"); + updatePs.setInt(1, 35); + + int updateStatus = updatePs.executeUpdate(); + assertEquals(1, updateStatus); + + String deleteQuery = String.format("DELETE FROM %s.%s WHERE product=?", DATASET, TABLE_NAME1); + PreparedStatement deletePs = bigQueryConnection.prepareStatement(deleteQuery); + deletePs.setString(1, "dishwasher"); + + int deleteStatus = deletePs.executeUpdate(); + assertEquals(1, deleteStatus); + + String mergeQuery = + String.format( + "MERGE %s.%s T\n" + + "USING %s.%s S\n" + + "ON T.product = S.product\n" + + "WHEN NOT MATCHED AND quantity < ? THEN\n" + + " INSERT(product, quantity, supply_constrained, comment)\n" + + " VALUES(product, quantity, true, ?)\n" + + "WHEN NOT MATCHED THEN\n" + + " INSERT(product, quantity, supply_constrained)\n" + + " VALUES(product, quantity, false)", + DATASET, TABLE_NAME2, DATASET, TABLE_NAME1); + PreparedStatement mergePs = bigQueryConnection.prepareStatement(mergeQuery); + mergePs.setInt(1, 20); + mergePs.setString(2, "comment" + random.nextInt(999)); + + int mergeStatus = mergePs.executeUpdate(); + assertEquals(3, mergeStatus); + + ResultSet rs = + bigQueryStatement.executeQuery( + String.format("SELECT COUNT(*) AS row_count\n" + "FROM %s.%s", DATASET, TABLE_NAME2)); + rs.next(); + assertEquals(7, rs.getInt(1)); + + String dropQuery = String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME1); + int dropStatus = bigQueryStatement.executeUpdate(dropQuery); + assertEquals(0, dropStatus); + bigQueryStatement.execute(String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME2)); + } + + @Test + public void testFailedStatementInTheMiddleOfExecuteBatchStopsExecuting() throws SQLException { + // setup + String BATCH_TABLE = "JDBC_EXECUTE_BATCH_TABLE_ERROR_IN_MIDDLE_" + random.nextInt(99); + String createBatchTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE); + String createBatchTable2 = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET2, BATCH_TABLE); + bigQueryStatement.execute(createBatchTable); + bigQueryStatement.execute(createBatchTable2); + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + String dropQuery = String.format("DROP TABLE %s.%s", DATASET2, BATCH_TABLE); + + // act + for (int i = 0; i < 20; i++) { + if (i == 10) { + statement.addBatch( + "INSERT INTO " + + DATASET2 + + "." + + BATCH_TABLE + + " (id, name, age) " + + "VALUES (12, 'Farhan', " + + randomNumber + + i + + "); "); + } else { + statement.addBatch( + "INSERT INTO " + + DATASET + + "." + + BATCH_TABLE + + " (id, name, age) " + + "VALUES (12, 'Farhan', " + + randomNumber + + i + + "); "); + } + } + bigQueryStatement.execute(dropQuery); + + // assertions + assertThrows(BigQueryJdbcException.class, statement::executeBatch); + String selectQuery = String.format("SELECT id, name, age FROM %s.%s ;", DATASET, BATCH_TABLE); + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertEquals(10, resultSetRowCount(resultSet)); + bigQueryStatement.execute(String.format("DROP TABLE %s.%s", DATASET, BATCH_TABLE)); + } + + @Test + public void testHTAPIWithValidDestinationTableSavesQueriesWithLegacy() throws SQLException { + // setup + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryDialect=BIG_QUERY;" + + "LargeResultTable=destination_table_test;" + + "LargeResultDataset=INTEGRATION_TESTS;" + + "EnableHighThroughputAPI=1;"; + String selectLegacyQuery = + "SELECT * FROM [bigquery-public-data.deepmind_alphafold.metadata] LIMIT 200000;"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + ResultSet resultSet = statement.executeQuery(selectLegacyQuery); + + // assertion + assertNotNull(resultSet); + String selectQuery = "SELECT * FROM INTEGRATION_TESTS.destination_table_test;"; + ResultSet actualResultSet = bigQueryStatement.executeQuery(selectQuery); + assertTrue(0 < resultSetRowCount(actualResultSet)); + + // clean up + String deleteRows = "DELETE FROM `INTEGRATION_TESTS.destination_table_test` WHERE 1=1;"; + bigQueryStatement.execute(deleteRows); + } + + @Test + public void testMultiStatementTransactionRollbackByUser() throws SQLException { + String TRANSACTION_TABLE = "JDBC_TRANSACTION_TABLE" + random.nextInt(99); + String createTransactionTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, TRANSACTION_TABLE); + String insertQuery = + String.format( + "INSERT INTO %s.%s (id, name, age) VALUES (12, 'Farhan', %s);", + DATASET, TRANSACTION_TABLE, randomNumber); + String updateQuery = + String.format( + "UPDATE %s.%s SET age = 14 WHERE age = %s;", DATASET, TRANSACTION_TABLE, randomNumber); + String selectQuery = + String.format("SELECT id, name, age FROM %s.%s WHERE id = 12;", DATASET, TRANSACTION_TABLE); + + bigQueryStatement.execute(createTransactionTable); + + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + connection.setAutoCommit(false); + Statement statement = connection.createStatement(); + assertTrue(connection.isTransactionStarted()); + + boolean status = statement.execute(insertQuery); + assertFalse(status); + int rows = statement.executeUpdate(updateQuery); + assertEquals(1, rows); + status = statement.execute(selectQuery); + assertTrue(status); + connection.rollback(); + assertTrue( + "After rollback() in manual commit mode, a new transaction should be started.", + connection.isTransactionStarted()); + + // Separate query to check if transaction rollback worked + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertFalse(resultSet.next()); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE)); + connection.close(); + } + + @Test + public void testMultiStatementTransactionDoesNotCommitWithoutCommit() throws SQLException { + String TRANSACTION_TABLE = "JDBC_TRANSACTION_TABLE" + random.nextInt(99); + String createTransactionTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, TRANSACTION_TABLE); + String insertQuery = + String.format( + "INSERT INTO %s.%s (id, name, age) VALUES (12, 'Farhan', %s);", + DATASET, TRANSACTION_TABLE, randomNumber); + String updateQuery = + String.format( + "UPDATE %s.%s SET age = 14 WHERE age = %s;", DATASET, TRANSACTION_TABLE, randomNumber); + String selectQuery = + String.format("SELECT id, name, age FROM %s.%s WHERE id = 12;", DATASET, TRANSACTION_TABLE); + + bigQueryStatement.execute(createTransactionTable); + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + connection.setAutoCommit(false); + Statement statement = connection.createStatement(); + assertTrue(connection.isTransactionStarted()); + + boolean status = statement.execute(insertQuery); + assertFalse(status); + int rows = statement.executeUpdate(updateQuery); + assertEquals(1, rows); + status = statement.execute(selectQuery); + assertTrue(status); + + // Separate query to check nothing committed + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertFalse(resultSet.next()); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE)); + statement.close(); + connection.close(); + } + + @Test + public void testValidMultiStatementTransactionCommits() throws SQLException { + String TRANSACTION_TABLE = "JDBC_TRANSACTION_TABLE" + random.nextInt(99); + String createTransactionTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, TRANSACTION_TABLE); + String insertQuery = + String.format( + "INSERT INTO %s.%s (id, name, age) VALUES (12, 'Farhan', %s);", + DATASET, TRANSACTION_TABLE, randomNumber); + String updateQuery = + String.format( + "UPDATE %s.%s SET age = 14 WHERE age = %s;", DATASET, TRANSACTION_TABLE, randomNumber); + String selectQuery = + String.format("SELECT id, name, age FROM %s.%s WHERE id = 12;", DATASET, TRANSACTION_TABLE); + + bigQueryStatement.execute(createTransactionTable); + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + connection.setAutoCommit(false); + Statement statement = connection.createStatement(); + assertTrue(connection.isTransactionStarted()); + + boolean status = statement.execute(insertQuery); + assertFalse(status); + status = statement.execute(updateQuery); + assertFalse(status); + status = statement.execute(selectQuery); + assertTrue(status); + connection.commit(); + + // Separate query to check inserted and updated data committed + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertTrue(resultSet.next()); + assertEquals(14, resultSet.getInt(3)); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE)); + statement.close(); + connection.close(); + } + + @Test + public void testConnectionWithMultipleTransactionCommits() throws SQLException { + String TRANSACTION_TABLE = "JDBC_TRANSACTION_TABLE" + random.nextInt(99); + String createTransactionTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, TRANSACTION_TABLE); + String insertQuery = + String.format( + "INSERT INTO %s.%s (id, name, age) VALUES (12, 'Farhan', %s);", + DATASET, TRANSACTION_TABLE, randomNumber); + String updateQuery = + String.format( + "UPDATE %s.%s SET age = 14 WHERE age = %s;", DATASET, TRANSACTION_TABLE, randomNumber); + String selectQuery = + String.format("SELECT id, name, age FROM %s.%s WHERE id = 12;", DATASET, TRANSACTION_TABLE); + + bigQueryStatement.execute(createTransactionTable); + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + connection.setAutoCommit(false); + + Statement statement = connection.createStatement(); + assertTrue(connection.isTransactionStarted()); + boolean status = statement.execute(insertQuery); + assertFalse(status); + status = statement.execute(updateQuery); + assertFalse(status); + status = statement.execute(selectQuery); + assertTrue(status); + connection.commit(); + + connection.setAutoCommit(false); + assertTrue(connection.isTransactionStarted()); + statement.execute(insertQuery); + connection.rollback(); + + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + int count = 0; + while (resultSet.next()) { + count++; + } + assertEquals(1, count); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE)); + connection.close(); + } + + @Test + public void testTransactionRollbackOnError() throws SQLException { + String TRANSACTION_TABLE = "JDBC_TRANSACTION_TABLE" + random.nextInt(99); + String createTransactionTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, TRANSACTION_TABLE); + String selectQuery = + String.format("SELECT id, name, age FROM %s.%s ;", DATASET, TRANSACTION_TABLE); + + bigQueryStatement.execute(createTransactionTable); + String transactionOnError = + "BEGIN\n" + + "\n" + + " BEGIN TRANSACTION;\n" + + " INSERT INTO " + + DATASET + + "." + + TRANSACTION_TABLE + + "\n" + + " VALUES (39, 'Drake', 123);\n" + + " SELECT 1/0;\n" + + " COMMIT TRANSACTION;\n" + + "\n" + + "EXCEPTION WHEN ERROR THEN\n" + + " SELECT @@error.message;\n" + + " ROLLBACK TRANSACTION;\n" + + "END;"; + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + Statement statement = connection.createStatement(); + statement.execute(transactionOnError); + + // do a check to see if no vals inserted + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertFalse(resultSet.next()); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE)); + connection.close(); + } + + @Test + public void testClearBatchClears() throws SQLException { + // setup + String BATCH_TABLE = "JDBC_EXECUTE_BATCH_TABLE_CLEAR_BATCH_" + random.nextInt(99); + String createBatchTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE); + bigQueryStatement.execute(createBatchTable); + String updateQuery = + String.format( + "UPDATE %s.%s SET age = 13 WHERE age = %s;", DATASET, BATCH_TABLE, randomNumber); + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + statement.addBatch(updateQuery); + statement.clearBatch(); + int[] results = statement.executeBatch(); + + // assertion + assertEquals(0, results.length); + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, BATCH_TABLE)); + connection.close(); + } + + @Test + public void testMultipleExecuteBatches() throws SQLException { + // setup + String BATCH_TABLE = "JDBC_EXECUTE_BATCH_TABLE_MULTI_BATCHES_" + random.nextInt(99); + String createBatchTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, BATCH_TABLE); + String insertQuery = + "INSERT INTO " + + DATASET + + "." + + BATCH_TABLE + + " (id, name, age) " + + "VALUES (12, 'Farhan', " + + randomNumber + + "); "; + String insertQuery2 = + "INSERT INTO " + + DATASET + + "." + + BATCH_TABLE + + " (id, name, age) " + + "VALUES (12, 'Farhan', 123), " + + " (12, 'Farhan', 123); "; + bigQueryStatement.execute(createBatchTable); + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act + // batch bypasses the 16 concurrent limit + statement.addBatch(insertQuery); + int[] firstResults = statement.executeBatch(); + statement.addBatch(insertQuery2); + int[] secondResults = statement.executeBatch(); + + // assertions + assertEquals(1, firstResults.length); + assertEquals(1, secondResults.length); + assertEquals(1, firstResults[0]); + assertEquals(2, secondResults[0]); + bigQueryStatement.execute(String.format("DROP TABLE IF EXISTS %S.%s", DATASET, BATCH_TABLE)); + connection.close(); + } + + @Test + public void testValidAllDataTypesSerializationFromSelectQuery() throws SQLException { + String DATASET = "JDBC_INTEGRATION_DATASET"; + String TABLE_NAME = "JDBC_DATATYPES_INTEGRATION_TEST_TABLE"; + String selectQuery = "select * from " + DATASET + "." + TABLE_NAME; + + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertNotNull(resultSet); + ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + resultSet.next(); + assertEquals(16, resultSetMetaData.getColumnCount()); + assertTrue(resultSet.getBoolean(1)); + assertEquals(33, resultSet.getInt(2)); + assertEquals(50.05f, resultSet.getFloat(3), 0.0); + assertEquals(123.456, resultSet.getDouble(4), 0.0); + assertEquals(123.456789, resultSet.getDouble(5), 0.0); + assertEquals("testString", resultSet.getString(6)); + assertEquals("Test String", new String(resultSet.getBytes(7), StandardCharsets.UTF_8)); + Struct expectedStruct = (Struct) resultSet.getObject(8); + assertThat(expectedStruct.getAttributes()).isEqualTo(asList("Eric", 10L).toArray()); + assertArrayEquals( + new String[] {"one", "two", "three"}, (String[]) resultSet.getArray(9).getArray()); + + assertEquals(Timestamp.valueOf("2020-04-27 18:07:25.356456"), resultSet.getObject(10)); + assertEquals(Date.valueOf("2019-1-12"), resultSet.getObject(11)); + assertEquals(Time.valueOf("14:00:00"), resultSet.getObject(12)); + assertEquals(Timestamp.valueOf("2019-02-17 11:24:00"), resultSet.getObject(13)); + assertEquals("POINT(1 2)", resultSet.getString(14)); + assertEquals("{\"class\":{\"students\":[{\"name\":\"Jane\"}]}}", resultSet.getString(15)); + assertEquals("123-7 -19 0:24:12.000006", resultSet.getString(16)); + } + + @Test + public void testRepeatedStructFromSelectQuery() throws SQLException { + String DATASET = "JDBC_INTEGRATION_DATASET"; + String TABLE_NAME = "JDBC_REPEATED_STRUCT_INTEGRATION_TEST"; + String selectQuery = "select * from " + DATASET + "." + TABLE_NAME; + + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertNotNull(resultSet); + resultSet.next(); + + Struct[] repeatedStruct = (Struct[]) resultSet.getArray(1).getArray(); + assertEquals(3, Arrays.stream(repeatedStruct).count()); + + Object[] alice = repeatedStruct[0].getAttributes(); + Object[] bob = repeatedStruct[1].getAttributes(); + Object[] charlie = repeatedStruct[2].getAttributes(); + assertEquals("Alice", alice[0]); + assertEquals("30", alice[1]); + assertEquals("Bob", bob[0]); + assertEquals("25", bob[1]); + assertEquals("Charlie", charlie[0]); + assertEquals("35", charlie[1]); + } + + @Test + public void testValidAllDataTypesSerializationFromSelectQueryArrowDataset() throws SQLException { + String DATASET = "JDBC_INTEGRATION_DATASET"; + String TABLE_NAME = "JDBC_INTEGRATION_ARROW_TEST_TABLE"; + String selectQuery = "select * from " + DATASET + "." + TABLE_NAME + " LIMIT 5000;"; + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;ProjectId=" + + PROJECT_ID + + ";EnableHighThroughputAPI=1;" + + "HighThroughputActivationRatio=2;" + + "HighThroughputMinTableSize=1000;"; + + // Read data via JDBC + Connection connection = DriverManager.getConnection(connection_uri); + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(selectQuery); + assertNotNull(resultSet); + + ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + resultSet.next(); + assertEquals(15, resultSetMetaData.getColumnCount()); + assertTrue(resultSet.getBoolean(1)); + assertEquals(33, resultSet.getInt(2)); + assertEquals(50.05f, resultSet.getFloat(3), 0.0); + assertEquals(123.456, resultSet.getDouble(4), 0.0); + assertEquals(123.456789, resultSet.getDouble(5), 0.0); + assertEquals("testString", resultSet.getString(6)); + assertEquals("Test String", new String(resultSet.getBytes(7), StandardCharsets.UTF_8)); + Struct expectedStruct = (Struct) resultSet.getObject(8); + assertThat(expectedStruct.getAttributes()).isEqualTo(asList("Eric", 10L).toArray()); + assertEquals("{\"name\":\"Eric\",\"age\":10}", expectedStruct.toString()); + assertArrayEquals( + new String[] {"one", "two", "three"}, (String[]) resultSet.getArray(9).getArray()); + assertEquals(Timestamp.valueOf("2020-04-27 18:07:25.356"), resultSet.getObject(10)); + assertEquals(Timestamp.valueOf("2020-04-27 18:07:25.356"), resultSet.getTimestamp(10)); + assertEquals(Date.valueOf("2019-1-12"), resultSet.getObject(11)); + assertEquals(Date.valueOf("2019-1-12"), resultSet.getDate(11)); + assertEquals(Time.valueOf("14:00:00"), resultSet.getObject(12)); + assertEquals(Time.valueOf("14:00:00"), resultSet.getTime(12)); + assertEquals(Timestamp.valueOf("2022-01-22 22:22:12.142265"), resultSet.getObject(13)); + assertEquals("POINT(1 2)", resultSet.getString(14)); + assertEquals("{\"class\":{\"students\":[{\"name\":\"Jane\"}]}}", resultSet.getString(15)); + connection.close(); + } + + /////////////// MARKER + /// + + @Test + public void testBulkInsertOperation() throws SQLException { + String TABLE_NAME = "JDBC_BULK_INSERT_TABLE_" + randomNumber; + String createQuery = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`StringField` STRING,\n" + + " `IntegerField` INTEGER," + + " `FloatField` FLOAT64," + + " `NumericField` NUMERIC," + + " `BigNumericField` BIGNUMERIC," + + " `BooleanField` BOOLEAN" + + " );", + DATASET, TABLE_NAME); + String insertQuery = + String.format("INSERT INTO %s.%s VALUES(?, ?, ?,?, ?, ?);", DATASET, TABLE_NAME); + String dropQuery = String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME); + String selectQuery = String.format("SELECT * FROM %s.%s", DATASET, TABLE_NAME); + + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3;" + + "EnableWriteAPI=1;SWA_ActivationRowCount=5;SWA_AppendRowCount=500"; + + try (Connection connection = DriverManager.getConnection(connection_uri)) { + bigQueryStatement.execute(createQuery); + PreparedStatement statement = connection.prepareStatement(insertQuery); + for (int i = 0; i < 20; ++i) { + statement.setString(1, i + "StringField"); + statement.setInt(2, i); + statement.setFloat(3, (float) (i + .6)); + statement.setInt(4, random.nextInt()); + statement.setInt(5, random.nextInt()); + statement.setBoolean(6, true); + + statement.addBatch(); + } + int[] result = statement.executeBatch(); + + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertEquals(result.length, resultSetRowCount(resultSet)); + + bigQueryStatement.execute(dropQuery); + + } catch (SQLException e) { + throw new BigQueryJdbcException(e); + } + } + + @Test + public void testBulkInsertOperationStandard() throws SQLException { + String TABLE_NAME = "JDBC_BULK_INSERT_STANDARD_TABLE_" + randomNumber; + String createQuery = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`StringField` STRING,\n" + + " `IntegerField` INTEGER," + + " `FloatField` FLOAT64," + + " `NumericField` NUMERIC," + + " `BigNumericField` BIGNUMERIC," + + " `BooleanField` BOOLEAN" + + " );", + DATASET, TABLE_NAME); + String insertQuery = + String.format("INSERT INTO %s.%s VALUES(?, ?, ?,?, ?, ?);", DATASET, TABLE_NAME); + String dropQuery = String.format("DROP TABLE %s.%s", DATASET, TABLE_NAME); + String selectQuery = String.format("SELECT * FROM %s.%s", DATASET, TABLE_NAME); + + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3;" + + "EnableWriteAPI=0;SWA_ActivationRowCount=50;SWA_AppendRowCount=500"; + + try (Connection connection = DriverManager.getConnection(connection_uri)) { + bigQueryStatement.execute(createQuery); + PreparedStatement statement = connection.prepareStatement(insertQuery); + for (int i = 0; i < 20; ++i) { + statement.setString(1, i + "StringField"); + statement.setInt(2, i); + statement.setFloat(3, (float) (i + .6)); + statement.setInt(4, random.nextInt()); + statement.setInt(5, random.nextInt()); + statement.setBoolean(6, true); + + statement.addBatch(); + } + int[] result = statement.executeBatch(); + + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertEquals(result.length, resultSetRowCount(resultSet)); + + bigQueryStatement.execute(dropQuery); + + } catch (SQLException e) { + throw new BigQueryJdbcException(e); + } + } + + @Test + public void testExecuteQueryWithSetMaxRows() throws SQLException { + String TEST_MAX_ROWS_TABLE = "JDBC_TEST_MAX_ROWS_TABLE" + random.nextInt(99); + int id1 = random.nextInt(99); + int id2 = random.nextInt(99); + String createMaxRowsTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING);", + DATASET, TEST_MAX_ROWS_TABLE); + String insertQuery1 = + String.format( + "INSERT INTO %s.%s (id, name) VALUES (%s, 'max-rows-test-1');", + DATASET, TEST_MAX_ROWS_TABLE, id1); + String insertQuery2 = + String.format( + "INSERT INTO %s.%s (id, name) VALUES (%s, 'max-rows-test-2');", + DATASET, TEST_MAX_ROWS_TABLE, id2); + String selectQuery = String.format("SELECT id, name FROM %s.%s;", DATASET, TEST_MAX_ROWS_TABLE); + + boolean executeResult = bigQueryStatement.execute(createMaxRowsTable); + assertFalse(executeResult); + int rowsInserted = bigQueryStatement.executeUpdate(insertQuery1); + assertEquals(1, rowsInserted); + rowsInserted = bigQueryStatement.executeUpdate(insertQuery2); + assertEquals(1, rowsInserted); + + bigQueryStatement.setMaxRows(1); + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertNotNull(resultSet); + assertEquals(1, resultSetRowCount(resultSet)); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TEST_MAX_ROWS_TABLE)); + } + + @Test + public void testExecuteQueryWithoutSetMaxRows() throws SQLException { + String TEST_MAX_ROWS_TABLE = "JDBC_TEST_MAX_ROWS_TABLE" + random.nextInt(99); + int id1 = random.nextInt(99); + int id2 = random.nextInt(99); + String createMaxRowsTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING);", + DATASET, TEST_MAX_ROWS_TABLE); + String insertQuery1 = + String.format( + "INSERT INTO %s.%s (id, name) VALUES (%s, 'max-rows-test-1');", + DATASET, TEST_MAX_ROWS_TABLE, id1); + String insertQuery2 = + String.format( + "INSERT INTO %s.%s (id, name) VALUES (%s, 'max-rows-test-2');", + DATASET, TEST_MAX_ROWS_TABLE, id2); + String selectQuery = String.format("SELECT id, name FROM %s.%s;", DATASET, TEST_MAX_ROWS_TABLE); + + boolean executeResult = bigQueryStatement.execute(createMaxRowsTable); + assertFalse(executeResult); + int rowsInserted = bigQueryStatement.executeUpdate(insertQuery1); + assertEquals(1, rowsInserted); + rowsInserted = bigQueryStatement.executeUpdate(insertQuery2); + assertEquals(1, rowsInserted); + + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertNotNull(resultSet); + assertEquals(2, resultSetRowCount(resultSet)); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TEST_MAX_ROWS_TABLE)); + } + + @Test + public void testQueryPropertySessionIdIsUsedWithTransaction() + throws SQLException, InterruptedException { + // setup + String sessionId = getSessionId(); + String TRANSACTION_TABLE = "JDBC_TRANSACTION_TABLE" + random.nextInt(99); + String createTransactionTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, TRANSACTION_TABLE); + String beginTransaction = "BEGIN TRANSACTION; "; + String insertQuery = + String.format( + "INSERT INTO %s.%s (id, name, age) VALUES (12, 'Farhan', %s);", + DATASET, TRANSACTION_TABLE, randomNumber); + String updateQuery = + String.format( + "UPDATE %s.%s SET age = 14 WHERE age = %s;", DATASET, TRANSACTION_TABLE, randomNumber); + String selectQuery = + String.format("SELECT id, name, age FROM %s.%s WHERE id = 12;", DATASET, TRANSACTION_TABLE); + String commitTransaction = "COMMIT TRANSACTION;"; + + String transactionQuery = + beginTransaction + + insertQuery + + insertQuery + + updateQuery + + selectQuery + + commitTransaction; + + bigQueryStatement.execute(createTransactionTable); + + // Run the transaction + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";QueryProperties=session_id=" + + sessionId + + ";"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + statement.execute(transactionQuery); + + // Test each query's result with getMoreResults + int resultsCount = 0; + boolean hasMoreResult = statement.getMoreResults(); + while (hasMoreResult || statement.getUpdateCount() != -1) { + if (statement.getUpdateCount() == -1) { + ResultSet result = statement.getResultSet(); + assertTrue(result.next()); + assertEquals(-1, statement.getUpdateCount()); + } else { + assertTrue(statement.getUpdateCount() > -1); + } + hasMoreResult = statement.getMoreResults(); + resultsCount++; + } + assertEquals(5, resultsCount); + + // Check the transaction was actually committed. + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + int rowCount = 0; + while (resultSet.next()) { + rowCount++; + assertEquals(14, resultSet.getInt(3)); + } + assertEquals(2, rowCount); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE)); + connection.close(); + } + + @Test + public void testRollbackOnConnectionClosed() throws SQLException { + String TRANSACTION_TABLE = "JDBC_TRANSACTION_TABLE" + random.nextInt(99); + String createTransactionTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, TRANSACTION_TABLE); + String insertQuery = + String.format( + "INSERT INTO %s.%s (id, name, age) VALUES (15, 'Farhan', %s);", + DATASET, TRANSACTION_TABLE, randomNumber); + String updateQuery = + String.format( + "UPDATE %s.%s SET age = 12 WHERE age = %s;", DATASET, TRANSACTION_TABLE, randomNumber); + String selectQuery = + String.format("SELECT id, name, age FROM %s.%s WHERE id = 12;", DATASET, TRANSACTION_TABLE); + + bigQueryStatement.execute(createTransactionTable); + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + connection.setAutoCommit(false); + Statement statement = connection.createStatement(); + assertTrue(connection.isTransactionStarted()); + + boolean status = statement.execute(insertQuery); + assertFalse(status); + int rows = statement.executeUpdate(updateQuery); + assertEquals(1, rows); + status = statement.execute(selectQuery); + assertTrue(status); + connection.close(); + + // Separate query to check if transaction rollback worked + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertFalse(resultSet.next()); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE)); + } + + @Test + public void testSingleStatementTransaction() throws SQLException { + String TRANSACTION_TABLE = "JDBC_TRANSACTION_TABLE" + random.nextInt(99); + String createTransactionTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, TRANSACTION_TABLE); + String beginTransaction = "BEGIN TRANSACTION; "; + String insertQuery = + String.format( + "INSERT INTO %s.%s (id, name, age) VALUES (12, 'Farhan', %s);", + DATASET, TRANSACTION_TABLE, randomNumber); + String updateQuery = + String.format( + "UPDATE %s.%s SET age = 14 WHERE age = %s;", DATASET, TRANSACTION_TABLE, randomNumber); + String selectQuery = + String.format("SELECT id, name, age FROM %s.%s WHERE id = 12;", DATASET, TRANSACTION_TABLE); + String commitTransaction = "COMMIT TRANSACTION;"; + + String transactionQuery = + beginTransaction + + insertQuery + + insertQuery + + updateQuery + + selectQuery + + commitTransaction; + + bigQueryStatement.execute(createTransactionTable); + + // Run the transaction + Connection connection = DriverManager.getConnection(session_enabled_connection_uri); + Statement statement = connection.createStatement(); + statement.execute(transactionQuery); + + // Test each query's result with getMoreResults + int resultsCount = 0; + boolean hasMoreResult = statement.getMoreResults(); + while (hasMoreResult || statement.getUpdateCount() != -1) { + if (statement.getUpdateCount() == -1) { + ResultSet result = statement.getResultSet(); + assertTrue(result.next()); + assertEquals(-1, statement.getUpdateCount()); + } else { + assertTrue(statement.getUpdateCount() > -1); + } + hasMoreResult = statement.getMoreResults(); + resultsCount++; + } + assertEquals(5, resultsCount); + + // Check the transaction was actually committed. + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + int rowCount = 0; + while (resultSet.next()) { + rowCount++; + assertEquals(14, resultSet.getInt(3)); + } + assertEquals(2, rowCount); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE)); + connection.close(); + } + + @Test + public void testConnectionClosedRollsBackStartedTransactions() throws SQLException { + String TRANSACTION_TABLE = "JDBC_TRANSACTION_TABLE" + random.nextInt(99); + String createTransactionTable = + String.format( + "CREATE OR REPLACE TABLE %s.%s (`id` INTEGER, `name` STRING, `age` INTEGER);", + DATASET, TRANSACTION_TABLE); + String insertQuery = + String.format( + "INSERT INTO %s.%s (id, name, age) VALUES (12, 'Farhan', %s);", + DATASET, TRANSACTION_TABLE, randomNumber); + String updateQuery = + String.format( + "UPDATE %s.%s SET age = 14 WHERE age = %s;", DATASET, TRANSACTION_TABLE, randomNumber); + String selectQuery = + String.format("SELECT id, name, age FROM %s.%s WHERE id = 12;", DATASET, TRANSACTION_TABLE); + + bigQueryStatement.execute(createTransactionTable); + + BigQueryConnection connection = + (BigQueryConnection) DriverManager.getConnection(session_enabled_connection_uri); + connection.setAutoCommit(false); + Statement statement = connection.createStatement(); + assertTrue(connection.isTransactionStarted()); + + boolean status = statement.execute(insertQuery); + assertFalse(status); + int rows = statement.executeUpdate(updateQuery); + assertEquals(1, rows); + status = statement.execute(selectQuery); + assertTrue(status); + connection.close(); + + // Separate query to check if transaction rollback worked + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertFalse(resultSet.next()); + + bigQueryStatement.execute( + String.format("DROP TABLE IF EXISTS %S.%s", DATASET, TRANSACTION_TABLE)); + } + + @Test + public void testStatelessQueryPathSmall() throws SQLException { + Properties jobCreationMode = new Properties(); + jobCreationMode.setProperty("JobCreationMode", "2"); + Connection bigQueryConnectionUseStateless = + DriverManager.getConnection(connection_uri, jobCreationMode); + + Statement statement = bigQueryConnectionUseStateless.createStatement(); + + String query = + "SELECT DISTINCT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT" + + " 850"; + ResultSet jsonResultSet = statement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + assertEquals(850, resultSetRowCount(jsonResultSet)); + + String queryEmpty = + "SELECT DISTINCT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT" + + " 0"; + ResultSet jsonResultSetEmpty = statement.executeQuery(queryEmpty); + assertTrue(jsonResultSetEmpty.getClass().getName().contains("BigQueryJsonResultSet")); + assertEquals(0, resultSetRowCount(jsonResultSetEmpty)); + bigQueryConnectionUseStateless.close(); + } + + @Test + public void testFastQueryPathMedium() throws SQLException { + String query = + "SELECT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 9000"; + ResultSet jsonResultSet = bigQueryStatement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + assertEquals(9000, resultSetRowCount(jsonResultSet)); + } + + @Test + public void testFastQueryPathLarge() throws SQLException { + String query = + "SELECT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 18000"; + ResultSet jsonResultSet = bigQueryStatement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + assertEquals(18000, resultSetRowCount(jsonResultSet)); + } + + @Test + // reads using ReadAPI and makes sure that they are in order, which implies threads worked + // correctly + public void testIterateOrderArrowMultiThread() throws SQLException { + int expectedCnt = 200000; + String longQuery = String.format(BASE_QUERY, expectedCnt); + ResultSet rs = bigQueryStatement.executeQuery(longQuery); + int cnt = 0; + double oldTriDis = 0.0d; + while (rs.next()) { + double tripDis = rs.getDouble("trip_distance"); + ++cnt; + assertTrue(oldTriDis <= tripDis); + oldTriDis = tripDis; + } + assertEquals(expectedCnt, cnt); // all the records were retrieved + } + + @Test + public void testNonEnabledUseLegacySQLThrowsSyntaxError() throws SQLException { + // setup + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "OAuthType=3;" + + "ProjectId=" + + PROJECT_ID + + ";"; + String selectLegacyQuery = + "SELECT * FROM [bigquery-public-data.deepmind_alphafold.metadata] LIMIT 20000000;"; + Driver driver = BigQueryDriver.getRegisteredDriver(); + Connection connection = driver.connect(connection_uri, new Properties()); + Statement statement = connection.createStatement(); + + // act & assertion + assertThrows( + BigQueryJdbcSqlSyntaxErrorException.class, () -> statement.execute(selectLegacyQuery)); + connection.close(); + } + + @Test + public void testFastQueryPathEmpty() throws SQLException { + String query = + "SELECT DISTINCT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT" + + " 0"; + ResultSet jsonResultSet = bigQueryStatement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + assertEquals(0, resultSetRowCount(jsonResultSet)); + } + + @Test + public void testReadAPIPathLarge() throws SQLException { + Properties withReadApi = new Properties(); + withReadApi.setProperty("EnableHighThroughputAPI", "1"); + withReadApi.setProperty("HighThroughputActivationRatio", "2"); + withReadApi.setProperty("HighThroughputMinTableSize", "1000"); + withReadApi.setProperty("MaxResults", "300"); + + Connection connection = DriverManager.getConnection(connection_uri, withReadApi); + Statement statement = connection.createStatement(); + int expectedCnt = 5000; + String longQuery = String.format(BASE_QUERY, expectedCnt); + ResultSet arrowResultSet = statement.executeQuery(longQuery); + assertTrue(arrowResultSet.getClass().getName().contains("BigQueryArrowResultSet")); + assertEquals(expectedCnt, resultSetRowCount(arrowResultSet)); + arrowResultSet.close(); + connection.close(); + } + + @Test + public void testReadAPIPathLargeWithThresholdParameters() throws SQLException { + String connectionUri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3;MaxResults=300;HighThroughputActivationRatio=2;" + + "HighThroughputMinTableSize=100;EnableHighThroughputAPI=1"; + Connection connection = DriverManager.getConnection(connectionUri); + Statement statement = connection.createStatement(); + int expectedCnt = 1000; + String longQuery = String.format(BASE_QUERY, expectedCnt); + ResultSet arrowResultSet = statement.executeQuery(longQuery); + assertTrue(arrowResultSet.getClass().getName().contains("BigQueryArrowResultSet")); + assertEquals(expectedCnt, resultSetRowCount(arrowResultSet)); + arrowResultSet.close(); + connection.close(); + } + + @Test + public void testReadAPIPathLargeWithThresholdNotMet() throws SQLException { + String connectionUri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=3;HighThroughputActivationRatio=4;" + + "HighThroughputMinTableSize=100;EnableHighThroughputAPI=1"; + Connection connection = DriverManager.getConnection(connectionUri); + Statement statement = connection.createStatement(); + int expectedCnt = 5000; + String longQuery = String.format(BASE_QUERY, expectedCnt); + ResultSet arrowResultSet = statement.executeQuery(longQuery); + assertTrue(arrowResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + assertEquals(expectedCnt, resultSetRowCount(arrowResultSet)); + arrowResultSet.close(); + connection.close(); + } + + private String getSessionId() throws InterruptedException { + QueryJobConfiguration stubJobConfig = + QueryJobConfiguration.newBuilder("Select 1;").setCreateSession(true).build(); + Job job = bigQuery.create(JobInfo.of(stubJobConfig)); + job = job.waitFor(); + Job stubJob = bigQuery.getJob(job.getJobId()); + return stubJob.getStatistics().getSessionInfo().getSessionId(); + } + + private int resultSetRowCount(ResultSet resultSet) throws SQLException { + int rowCount = 0; + while (resultSet.next()) { + rowCount++; + } + return rowCount; + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITPSCBigQueryTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITPSCBigQueryTest.java new file mode 100644 index 000000000000..1b73f84b662c --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITPSCBigQueryTest.java @@ -0,0 +1,300 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc.it; + +import static com.google.common.truth.Truth.assertThat; +import static java.util.Arrays.asList; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; + +import com.google.cloud.ServiceOptions; +import com.google.cloud.bigquery.BigQueryException; +import com.google.cloud.bigquery.jdbc.BigQueryConnection; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.sql.Connection; +import java.sql.Date; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.Struct; +import java.sql.Time; +import java.sql.Timestamp; +import java.util.Properties; +import org.junit.Test; + +public class ITPSCBigQueryTest { + static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); + private static final String SERVICE_ACCOUNT_EMAIL = requireEnvVar("SA_EMAIL"); + + private static String requireEnvVar(String varName) { + String value = System.getenv(varName); + assertNotNull( + "Environment variable " + varName + " is required to perform these tests.", + System.getenv(varName)); + return value; + } + + @Test + public void testNoOverrideTimesOut() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=3;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "APPLICATION_DEFAULT_CREDENTIALS", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + + String query = + "SELECT DISTINCT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 850"; + Statement statement = connection.createStatement(); + assertThrows(BigQueryException.class, () -> statement.executeQuery(query)); + } + + @Test + public void testValidADCAuthenticationInPSC() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=3;" + + "EndpointOverrides=BIGQUERY=https://bigquery-privateendpoint.p.googleapis.com;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "APPLICATION_DEFAULT_CREDENTIALS", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + + String query = + "SELECT DISTINCT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 850"; + Statement statement = connection.createStatement(); + ResultSet jsonResultSet = statement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + connection.close(); + } + + @Test + public void testValidOAuthType2AuthenticationInPSC() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=2;" + + "OAuthAccessToken=RedactedToken;" // TODO(fahmz): see if there is a way to use SMS + + "EndpointOverrides=BIGQUERY=https://bigquery-privateendpoint.p.googleapis.com;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "PRE_GENERATED_TOKEN", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + + String query = + "SELECT DISTINCT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 850"; + Statement statement = connection.createStatement(); + ResultSet jsonResultSet = statement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + connection.close(); + } + + @Test + public void testValidServiceAccountAuthenticationKeyFileInPSC() throws SQLException, IOException { + final String SERVICE_ACCOUNT_KEY = requireEnvVar("SA_SECRET"); + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=0;" + + "OAuthPvtKeyPath=" + + SERVICE_ACCOUNT_KEY + + "EndpointOverrides=BIGQUERY=https://bigquery-privateendpoint.p.googleapis.com," + + "OAuth2=https://oauth2-privateendpoint.p.googleapis.com/token;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "GOOGLE_SERVICE_ACCOUNT", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + connection.close(); + } + + @Test + public void testValidServiceAccountAuthenticationViaEmailInPSC() throws SQLException { + final String SERVICE_ACCOUNT_KEY = requireEnvVar("SA_SECRET"); + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=0;" + + "OAuthServiceAcctEmail=" + + SERVICE_ACCOUNT_EMAIL + + ";OAuthPvtKey=" + + SERVICE_ACCOUNT_KEY + + ";EndpointOverrides=BIGQUERY=https://bigquery-privateendpoint.p.googleapis.com," + + "OAuth2=https://oauth2-privateendpoint.p.googleapis.com/token;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "GOOGLE_SERVICE_ACCOUNT", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + String query = + "SELECT DISTINCT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 850"; + Statement statement = connection.createStatement(); + ResultSet jsonResultSet = statement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + connection.close(); + } + + @Test + public void testValidAllDataTypesSerializationFromSelectQueryInPSC() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=0;" + + "OAuthPvtKeyPath=.\\google-cloud-bigquery-jdbc\\secret.json;" + + "EndpointOverrides=BIGQUERY=https://bigquery-privateendpoint.p.googleapis.com," + + "OAuth2=https://oauth2-privateendpoint.p.googleapis.com/token;"; + Connection bigQueryConnection = DriverManager.getConnection(connection_uri, new Properties()); + Statement bigQueryStatement = bigQueryConnection.createStatement(); + String DATASET = "JDBC_INTEGRATION_DATASET"; + String TABLE_NAME = "JDBC_DATATYPES_INTEGRATION_TEST_TABLE"; + String selectQuery = "select * from " + DATASET + "." + TABLE_NAME; + + ResultSet resultSet = bigQueryStatement.executeQuery(selectQuery); + assertNotNull(resultSet); + ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + resultSet.next(); + assertEquals(16, resultSetMetaData.getColumnCount()); + assertTrue(resultSet.getBoolean(1)); + assertEquals(33, resultSet.getInt(2)); + assertEquals(50.05f, resultSet.getFloat(3), 0.0); + assertEquals(123.456, resultSet.getDouble(4), 0.0); + assertEquals(123.456789, resultSet.getDouble(5), 0.0); + assertEquals("testString", resultSet.getString(6)); + assertEquals("Test String", new String(resultSet.getBytes(7), StandardCharsets.UTF_8)); + Struct expectedStruct = (Struct) resultSet.getObject(8); + assertThat(expectedStruct.getAttributes()).isEqualTo(asList("Eric", 10).toArray()); + assertArrayEquals( + new String[] {"one", "two", "three"}, (String[]) resultSet.getArray(9).getArray()); + + assertEquals(Timestamp.valueOf("2020-04-27 18:07:25.356456"), resultSet.getObject(10)); + assertEquals(Date.valueOf("2019-1-12"), resultSet.getObject(11)); + assertEquals(Time.valueOf("14:00:00"), resultSet.getObject(12)); + assertEquals(Timestamp.valueOf("2019-02-17 11:24:00"), resultSet.getObject(13)); + assertEquals("POINT(1 2)", resultSet.getString(14)); + assertEquals("{\"class\":{\"students\":[{\"name\":\"Jane\"}]}}", resultSet.getString(15)); + assertEquals("123-7 -19 0:24:12.000006", resultSet.getString(16)); + } + + @Test + public void testValidAllDataTypesSerializationFromSelectQueryArrowDatasetInPSC() + throws SQLException { + String DATASET = "JDBC_INTEGRATION_DATASET"; + String TABLE_NAME = "JDBC_INTEGRATION_ARROW_TEST_TABLE"; + String selectQuery = "select * from " + DATASET + "." + TABLE_NAME; + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=0;" + + "OAuthPvtKeyPath=.\\google-cloud-bigquery-jdbc\\secret.json;;" + + "EnableHighThroughputAPI=1;" + + "EndpointOverrides=BIGQUERY=https://bigquery-privateendpoint.p.googleapis.com," + + "READ_API=bigquerystorage-privateendpoint.p.googleapis.com:443," + + "OAuth2=https://oauth2-privateendpoint.p.googleapis.com/token;"; + + // Read data via JDBC + Connection connection = DriverManager.getConnection(connection_uri); + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(selectQuery); + assertNotNull(resultSet); + + ResultSetMetaData resultSetMetaData = resultSet.getMetaData(); + resultSet.next(); + assertEquals(15, resultSetMetaData.getColumnCount()); + assertTrue(resultSet.getBoolean(1)); + assertEquals(33, resultSet.getInt(2)); + assertEquals(50.05f, resultSet.getFloat(3), 0.0); + assertEquals(123.456, resultSet.getDouble(4), 0.0); + assertEquals(123.456789, resultSet.getDouble(5), 0.0); + assertEquals("testString", resultSet.getString(6)); + assertEquals("Test String", new String(resultSet.getBytes(7), StandardCharsets.UTF_8)); + Struct expectedStruct = (Struct) resultSet.getObject(8); + assertThat(expectedStruct.getAttributes()).isEqualTo(asList("Eric", 10).toArray()); + assertEquals("{\"v\":{\"f\":[{\"v\":\"Eric\"},{\"v\":\"10\"}]}}", expectedStruct.toString()); + assertArrayEquals( + new String[] {"one", "two", "three"}, (String[]) resultSet.getArray(9).getArray()); + assertEquals(Timestamp.valueOf("2020-04-27 18:07:25.356"), resultSet.getObject(10)); + assertEquals(Timestamp.valueOf("2020-04-27 18:07:25.356"), resultSet.getTimestamp(10)); + assertEquals(Date.valueOf("2019-1-12"), resultSet.getObject(11)); + assertEquals(Date.valueOf("2019-1-12"), resultSet.getDate(11)); + assertEquals(Time.valueOf("14:00:00"), resultSet.getObject(12)); + assertEquals(Time.valueOf("14:00:00"), resultSet.getTime(12)); + assertEquals(Timestamp.valueOf("2022-01-22 22:22:12.142265"), resultSet.getObject(13)); + assertEquals("POINT(1 2)", resultSet.getString(14)); + assertEquals("{\"class\":{\"students\":[{\"name\":\"Jane\"}]}}", resultSet.getString(15)); + connection.close(); + } + + @Test + public void testValidExternalAccountAuthenticationInPSC() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;PROJECTID=" + + PROJECT_ID + + ";OAUTHTYPE=4;" + + "BYOID_AudienceUri=//iam.googleapis.com/projects//locations//workloadIdentityPools//providers/;" + + "BYOID_SubjectTokenType=;" + + "BYOID_CredentialSource={\"file\":\"/path/to/file\"};" + + "BYOID_SA_Impersonation_Uri=;" + + "BYOID_TokenUri=;" + + "EndpointOverrides=BIGQUERY=https://bigquery-privateendpoint.p.googleapis.com," + + "OAuth2=https://oauth2-privateendpoint.p.googleapis.com/token;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "EXTERNAL_ACCOUNT_AUTH", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + + Statement statement = connection.createStatement(); + ResultSet resultSet = + statement.executeQuery( + "SELECT repository_name FROM `bigquery-public-data.samples.github_timeline` LIMIT 50"); + + assertNotNull(resultSet); + connection.close(); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITProxyBigQueryTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITProxyBigQueryTest.java new file mode 100644 index 000000000000..fbde5ecc67db --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITProxyBigQueryTest.java @@ -0,0 +1,234 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc.it; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; + +import com.google.cloud.ServiceOptions; +import com.google.cloud.bigquery.exception.BigQueryJdbcException; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; +import java.util.Arrays; +import java.util.List; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +@RunWith(Enclosed.class) +public class ITProxyBigQueryTest { + static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); + static final String PROXY_HOST = "34.94.167.18"; + static final String PROXY_PORT = "3128"; + static final String PROXY_UID = "fahmz"; + static final String PROXY_PWD = "fahmz"; + + public static class NonParameterizedProxyTests { + @Test + public void testValidAuthenticatedProxy() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=3;" + + "ProxyHost=" + + PROXY_HOST + + ";ProxyPort=" + + PROXY_PORT + + ";ProxyUid=" + + PROXY_UID + + ";ProxyPwd=" + + PROXY_PWD + + ";"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + Statement statement = connection.createStatement(); + boolean result = + statement.execute( + "Select * FROM `bigquery-public-data.samples.github_timeline` LIMIT 180"); + assertTrue(result); + connection.close(); + } + + @Test + public void testAuthenticatedProxyWithOutAuthDetailsThrows() throws SQLException { + String query = "Select * FROM `bigquery-public-data.samples.github_timeline` LIMIT 180"; + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=3;" + + "ProxyHost=" + + PROXY_HOST + + ";ProxyPort=" + + PROXY_PORT + + ";"; + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + Statement statement = connection.createStatement(); + assertThrows(BigQueryJdbcException.class, () -> statement.execute(query)); + } + + @Test + public void testNonExistingProxyTimesOut() throws SQLException { + String query = "Select * FROM `bigquery-public-data.samples.github_timeline` LIMIT 180"; + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=3;" + + "ProxyHost=111.12.111.11;" // If the test fails you may have this ip address + // assigned + + "ProxyPort=1111;"; + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + Statement statement = connection.createStatement(); + assertThrows(BigQueryJdbcException.class, () -> statement.execute(query)); + } + + @Test + @Ignore // Run this when Proxy server has no authentication otherwise you'll get a "407 Proxy + // Authentication Required". + public void testNonAuthenticatedProxy() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=3;" + + "ProxyHost=" + + PROXY_HOST + + ";ProxyPort=" + + PROXY_PORT + + ";"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + Statement statement = connection.createStatement(); + boolean result = + statement.execute( + "Select * FROM `bigquery-public-data.samples.github_timeline` LIMIT 180"); + assertTrue(result); + connection.close(); + } + + @Test + public void testValidNonProxyConnectionQueries() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=3;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + Statement statement = connection.createStatement(); + boolean result = + statement.execute( + "Select * FROM `bigquery-public-data.samples.github_timeline` LIMIT 180"); + assertTrue(result); + connection.close(); + } + + @Test + public void testReadAPIEnabledWithProxySettings() throws SQLException { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=3;" + + "ProxyHost=" + + PROXY_HOST + + ";ProxyPort=" + + PROXY_PORT + + ";EnableHighThroughputAPI=1;" + + "ProxyUid=" + + PROXY_UID + + ";ProxyPwd=" + + PROXY_PWD + + ";"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + Statement statement = connection.createStatement(); + boolean result = + statement.execute( + "SELECT * FROM `bigquery-public-data.covid19_open_data_eu.covid19_open_data` LIMIT 200000"); + assertTrue(result); + connection.close(); + } + } + + @RunWith(Parameterized.class) + public static class ParametrizedMissingPropertiesTest { + private final String ProxyHost; + private final String ProxyPort; + private final String ProxyUid; + private final String ProxyPwd; + + public ParametrizedMissingPropertiesTest( + String ProxyHost, String ProxyPort, String ProxyUid, String ProxyPwd) { + this.ProxyHost = ProxyHost; + this.ProxyPort = ProxyPort; + this.ProxyUid = ProxyUid; + this.ProxyPwd = ProxyPwd; + } + + @Parameterized.Parameters + public static List ProxyParameters() { + String proxyHost = "ProxyHost=" + PROXY_HOST + ";"; + String proxyPort = "ProxyPort=" + PROXY_PORT + ";"; + String proxyUid = "ProxyUid=" + PROXY_UID + ";"; + String proxyPwd = "ProxyPwd=" + PROXY_PWD + ";"; + return Arrays.asList( + new String[][] { + {"", proxyPort, proxyUid, proxyPwd}, + {proxyHost, "", proxyUid, proxyPwd}, + {proxyHost, proxyPort, "", proxyPwd}, + {proxyHost, proxyPort, proxyUid, ""}, + {"", "", proxyUid, proxyPwd} + }); + } + + @Test + public void testMissingProxyParameterThrowsIllegalArgument() { + String connection_uri = + "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;" + + "ProjectId=" + + PROJECT_ID + + ";OAuthType=3;" + + ProxyHost + + ProxyPort + + ProxyUid + + ProxyPwd; + assertThrows( + IllegalArgumentException.class, () -> DriverManager.getConnection(connection_uri)); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITTPCBigQueryTest.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITTPCBigQueryTest.java new file mode 100644 index 000000000000..3fa2d7d7e436 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITTPCBigQueryTest.java @@ -0,0 +1,220 @@ +/* + * Copyright 2024 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc.it; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import com.google.cloud.bigquery.jdbc.BigQueryConnection; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import org.junit.Test; + +public class ITTPCBigQueryTest { + private static final String ENDPOINT_URL = System.getenv("ENDPOINT_URL"); + private static final String UNIVERSE_DOMAIN = System.getenv("UNIVERSE_DOMAIN"); + private static final String TPC_SERVICE_ACCOUNT = System.getenv("SERVICE_ACCOUNT"); + private static final String TPC_PVT_KEY = System.getenv("PRIVATE_KEY"); + private static final String TPC_ACCESS_TOKEN = System.getenv("ACCESS_TOKEN"); + private static final String TPC_PROJECT_ID = System.getenv("PROJECT_ID"); + + private static final String TPC_ENDPOINT = + (ENDPOINT_URL.isEmpty()) + ? "jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443" + : "jdbc:bigquery://" + ENDPOINT_URL; + private static final String TPC_UNIVERSE_DOMAIN = + (UNIVERSE_DOMAIN.isEmpty()) ? "googleapis.com" : UNIVERSE_DOMAIN; + + // See here go/bq-cli-tpc for testing setup. + // Use the default test project. + // For the SA you will have to give it bigquery admin permissions cl/627813300 and will have to + // revert after testing. + // Plug in the values for the connection properties from the guide into the connection string. + @Test + public void testServiceAccountAuthenticationViaEmail() throws SQLException { + validateTPCEnvironment(); + String connection_uri = + TPC_ENDPOINT + + ";" + + "ProjectId=" + + TPC_PROJECT_ID + + ";" + + "OAuthType=0;" + + "universeDomain=" + + TPC_UNIVERSE_DOMAIN + + ";" + + "OAuthServiceAcctEmail=" + + TPC_SERVICE_ACCOUNT + + ";" + + "OAuthPvtKey=" + + TPC_PVT_KEY + + ";"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "GOOGLE_SERVICE_ACCOUNT", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + String query = "SELECT 1"; + Statement statement = connection.createStatement(); + ResultSet jsonResultSet = statement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + connection.close(); + } + + // You will need to change the environment variable for GOOGLE_APPLICATION_CREDENTIALS to point to + // the SA key file. + @Test + public void testValidApplicationDefaultCredentialsAuthentication() throws SQLException { + validateTPCEnvironment(); + String connection_uri = + TPC_ENDPOINT + + ";" + + "OAuthType=3;" + + "ProjectId=" + + TPC_PROJECT_ID + + ";" + + "universeDomain=" + + TPC_UNIVERSE_DOMAIN + + ";"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "APPLICATION_DEFAULT_CREDENTIALS", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + String query = "SELECT * FROM test.test;"; + Statement statement = connection.createStatement(); + ResultSet jsonResultSet = statement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + connection.close(); + } + + @Test + public void testValidPreGeneratedAccessTokenAuthentication() throws SQLException { + validateTPCEnvironment(); + String connection_uri = + TPC_ENDPOINT + + ";" + + "OAuthType=2;" + + "ProjectId=" + + TPC_PROJECT_ID + + ";" + + "OAuthAccessToken=" + + TPC_ACCESS_TOKEN + + ";" + + "universeDomain=" + + TPC_UNIVERSE_DOMAIN + + ";"; + + Connection connection = DriverManager.getConnection(connection_uri); + String query = "SELECT * FROM test.test;"; + Statement statement = connection.createStatement(); + ResultSet jsonResultSet = statement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + assertNotNull(connection); + assertFalse(connection.isClosed()); + connection.close(); + } + + @Test + public void testSimpleQueryReturns() throws SQLException { + validateTPCEnvironment(); + String connection_uri = + TPC_ENDPOINT + + ";" + + "ProjectId=" + + TPC_PROJECT_ID + + ";" + + "OAuthType=0;" + + "universeDomain=" + + TPC_UNIVERSE_DOMAIN + + ";" + + "OAuthServiceAcctEmail=" + + TPC_SERVICE_ACCOUNT + + ";" + + "OAuthPvtKey=" + + TPC_PVT_KEY + + ";"; // Plug in this value when testing from the key file + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "GOOGLE_SERVICE_ACCOUNT", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + String query = "SELECT * FROM test.test;"; + Statement statement = connection.createStatement(); + ResultSet jsonResultSet = statement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + connection.close(); + } + + @Test + public void testServiceAccountKeyFileReturns() throws SQLException { + validateTPCEnvironment(); + String connection_uri = + TPC_ENDPOINT + + ";" + + "ProjectId=" + + TPC_PROJECT_ID + + ";" + + "OAuthType=0;" + + "universeDomain=" + + TPC_UNIVERSE_DOMAIN + + ";" + // Point the key path to where you have downloaded it to. + + "OAuthPvtKeyPath=/Users/YourPathToSecretFile/SAKeyFile.json;"; + + Connection connection = DriverManager.getConnection(connection_uri); + assertNotNull(connection); + assertFalse(connection.isClosed()); + assertEquals( + "GOOGLE_SERVICE_ACCOUNT", + ((BigQueryConnection) connection).getAuthProperties().get("OAuthType")); + String query = "SELECT * FROM test.test;"; + Statement statement = connection.createStatement(); + ResultSet jsonResultSet = statement.executeQuery(query); + assertTrue(jsonResultSet.getClass().getName().contains("BigQueryJsonResultSet")); + connection.close(); + } + + private void validateTPCEnvironment() { + if (TPC_PROJECT_ID.isEmpty()) { + throw new IllegalArgumentException("TPC_PROJECT_ID is empty"); + } + if (TPC_SERVICE_ACCOUNT.isEmpty()) { + throw new IllegalArgumentException("TPC_SERVICE_ACCOUNT is empty"); + } + if (TPC_ENDPOINT.isEmpty()) { + throw new IllegalArgumentException("TPC_ENDPOINT is empty"); + } + if (TPC_PVT_KEY.isEmpty()) { + throw new IllegalArgumentException("TPC_PVT_KEY is empty"); + } + if (TPC_UNIVERSE_DOMAIN.isEmpty()) { + throw new IllegalArgumentException("TPC_UNIVERSE_DOMAIN is empty"); + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/rules/TimeZoneRule.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/rules/TimeZoneRule.java new file mode 100644 index 000000000000..ff5db108e825 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/rules/TimeZoneRule.java @@ -0,0 +1,57 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc.rules; + +import java.util.TimeZone; +import org.junit.rules.TestRule; +import org.junit.runner.Description; +import org.junit.runners.model.Statement; + +public class TimeZoneRule implements TestRule { + + private final String timeZoneId; + private final TimeZone defaultTimeZone; + + public TimeZoneRule(String timeZoneId) { + this.timeZoneId = timeZoneId; + defaultTimeZone = TimeZone.getDefault(); + } + + @Override + public Statement apply(Statement base, Description description) { + return new Statement() { + @Override + public void evaluate() throws Throwable { + try { + TimeZone.setDefault(TimeZone.getTimeZone(timeZoneId)); + base.evaluate(); + } finally { + TimeZone.setDefault(defaultTimeZone); + } + } + }; + } + + /** + * Public method to enforce the rule from places like methods annotated with {@link + * org.junit.runners.Parameterized.Parameters} annotation which gets executed before this rule is + * applied. + */ + public void enforce() { + TimeZone.setDefault(TimeZone.getTimeZone(timeZoneId)); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/ArrowUtilities.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/ArrowUtilities.java new file mode 100644 index 000000000000..13f3007667d3 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/ArrowUtilities.java @@ -0,0 +1,54 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc.utils; + +import com.google.api.core.InternalApi; +import com.google.protobuf.ByteString; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.nio.channels.Channels; +import org.apache.arrow.vector.VectorSchemaRoot; +import org.apache.arrow.vector.VectorUnloader; +import org.apache.arrow.vector.ipc.WriteChannel; +import org.apache.arrow.vector.ipc.message.ArrowRecordBatch; +import org.apache.arrow.vector.ipc.message.MessageSerializer; +import org.apache.arrow.vector.types.pojo.Schema; + +@InternalApi("Used for testing purpose") +public class ArrowUtilities { + + public static ByteString serializeSchema(Schema schema) throws IOException { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + MessageSerializer.serialize(new WriteChannel(Channels.newChannel(out)), schema); + return ByteString.readFrom(new ByteArrayInputStream(out.toByteArray())); + } + + public static ByteString serializeVectorSchemaRoot(VectorSchemaRoot root) throws IOException { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + + ArrowRecordBatch recordBatch = new VectorUnloader(root).getRecordBatch(); + MessageSerializer.serialize(new WriteChannel(Channels.newChannel(out)), recordBatch); + return ByteString.readFrom(new ByteArrayInputStream(out.toByteArray())); + + // ArrowStreamWriter writer = new ArrowStreamWriter(root, null, Channels.newChannel(out)); + // writer.start(); + // writer.writeBatch(); + // writer.end(); + // return ByteString.readFrom(new ByteArrayInputStream(out.toByteArray())); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/TestUtilities.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/TestUtilities.java new file mode 100644 index 000000000000..419cb9b0bcb1 --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/TestUtilities.java @@ -0,0 +1,143 @@ +/* + * Copyright 2023 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc.utils; + +import com.google.cloud.Tuple; +import com.google.cloud.bigquery.Field; +import com.google.cloud.bigquery.Field.Mode; +import com.google.cloud.bigquery.FieldList; +import com.google.cloud.bigquery.FieldValue; +import com.google.cloud.bigquery.FieldValue.Attribute; +import com.google.cloud.bigquery.FieldValueList; +import com.google.cloud.bigquery.StandardSQLTypeName; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.stream.Collectors; +import javax.sql.ConnectionEvent; +import javax.sql.ConnectionEventListener; +import org.apache.arrow.vector.util.JsonStringArrayList; +import org.apache.arrow.vector.util.JsonStringHashMap; + +public class TestUtilities { + + public static Tuple primitiveSchemaAndValue( + StandardSQLTypeName typeName, String value) { + Field schema = + Field.newBuilder(typeName.name() + "_column", typeName).setMode(Mode.NULLABLE).build(); + FieldValue primitiveValue = FieldValue.of(Attribute.PRIMITIVE, value); + + return Tuple.of(schema, primitiveValue); + } + + public static Tuple arraySchemaAndValue( + StandardSQLTypeName typeName, String... values) { + Field schema = + Field.newBuilder(typeName.name() + "_arr_column", typeName).setMode(Mode.REPEATED).build(); + + FieldValue arrayValues = + FieldValue.of( + Attribute.REPEATED, + FieldValueList.of( + Arrays.stream(values) + .map(value -> FieldValue.of(Attribute.PRIMITIVE, value)) + .collect(Collectors.toList()))); + + return Tuple.of(schema, arrayValues); + } + + public static Tuple, ArrayList> nestedResultSetToColumnLists( + ResultSet resultSet) throws SQLException { + ArrayList indexes = new ArrayList<>(); + ArrayList columnValues = new ArrayList<>(); + while (resultSet.next()) { + indexes.add(resultSet.getObject(1)); + columnValues.add((T) resultSet.getObject(2)); + } + return Tuple.of(indexes, columnValues); + } + + @SafeVarargs + public static Tuple> arrowStructOf( + Tuple... tuples) { + ArrayList fields = new ArrayList<>(); + JsonStringHashMap values = new JsonStringHashMap<>(); + + for (Tuple tuple : tuples) { + StandardSQLTypeName typeName = tuple.x(); + Object value = tuple.y(); + String name = typeName.name() + "_column"; + Field schema = Field.newBuilder(name, typeName).setMode(Mode.NULLABLE).build(); + fields.add(schema); + values.put(name, value); + } + return Tuple.of(FieldList.of(fields), values); + } + + public static Tuple> arrowArraySchemaAndValue( + StandardSQLTypeName typeName, T... values) { + Field schema = + Field.newBuilder(typeName.name() + "_arr_column", typeName).setMode(Mode.REPEATED).build(); + + JsonStringArrayList arrayValues = new JsonStringArrayList<>(); + arrayValues.addAll(Arrays.asList(values)); + return Tuple.of(schema, arrayValues); + } + + @SafeVarargs + public static JsonStringArrayList arrowArrayOf(T... values) { + JsonStringArrayList arrayValues = new JsonStringArrayList<>(); + arrayValues.addAll(Arrays.asList(values)); + return arrayValues; + } + + // struct of arrays + public static JsonStringHashMap toArrowStruct( + Iterable>> schemaAndValues) { + JsonStringHashMap struct = new JsonStringHashMap<>(); + for (Tuple> schemaAndValue : schemaAndValues) { + Field schema = schemaAndValue.x(); + JsonStringArrayList value = schemaAndValue.y(); + struct.put(schema.getName(), value); + } + return struct; + } + + public static class TestConnectionListener implements ConnectionEventListener { + private int connectionClosedCount = 0; + private int connectionErrorCount = 0; + + @Override + public void connectionClosed(ConnectionEvent arg0) { + connectionClosedCount++; + } + + @Override + public void connectionErrorOccurred(ConnectionEvent arg0) { + connectionErrorCount++; + } + + public int getConnectionClosedCount() { + return connectionClosedCount; + } + + public int getConnectionErrorCount() { + return connectionErrorCount; + } + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/URIBuilder.java b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/URIBuilder.java new file mode 100644 index 000000000000..ce34f42f547e --- /dev/null +++ b/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/URIBuilder.java @@ -0,0 +1,34 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.bigquery.jdbc.utils; + +public class URIBuilder { + StringBuilder builder; + + public URIBuilder(String baseUri) { + builder = new StringBuilder(baseUri); + } + + public URIBuilder append(String key, Object value) { + builder.append(String.format("%s=%s;", key, value.toString())); + return this; + } + + public String toString() { + return builder.toString(); + } +} diff --git a/google-cloud-bigquery-jdbc/src/test/resources/fake.p12 b/google-cloud-bigquery-jdbc/src/test/resources/fake.p12 new file mode 100644 index 0000000000000000000000000000000000000000..d9e064411d4f7a6e831e96a468ebd3ec1c35abc3 GIT binary patch literal 5223 zcmbW5Ra6_?vd2RR0Sdw0T|y}d4#ll#ao6JRQXE1XT0FS5P^4&ar$BM5;98sy2u`sA z1rF!lv(C5f%e`mahds0QfA-AV{>`j`A;@fi7?>~w83c?AMJgjNAsE;g`3TZG5Q6j? zh9JFwA@I!qM+omZ2!W^iAS=NTScPD`e`Vo6!T{zYuw))Y37GxAGq4~qW0>gQS9}-` zi0sP`K@uDD_O;gu3Q`I}M!N@f1NA^4ClL^X35E~G`R|HATr2>L9*k>+RK~Ew1Ytly zMAq6F7bW*9y$WXH{!dVamLLRZENZxBb0*D8-}dawC$_zp6#Yg{-aoVxV!MMxM$U%c z4pLlU?MXg!d5k7pOQ7Eiqb<2V?j0(4bR;JcM73Ue0GFwx{Nd%730IkrQkUd|-FW=f z#xQC}chFzOd_Kd@jV()Mx`hm$?x!Fx4s}=yw6ma96$4;!LLPLktmRchOD5<0+PN+v)AhJSpuAMt|a_nxW79ftbY;>eNX zn@)qKf)*-+L30I>@Do*HEXCi3yXwB>N^V2Zo0TgJtVc2^x@Q)CQaJMsqe15Zp|tL^ z`o@;&bY8YPXhEJB*`aRF=#4QQ1uk`>QS1f(TMhJQ!&YkM+^Nr0hlBK50?j(ST2G}_ zMxxZaFPp4(%YW0&+9tjpfXv*giEgUg>$-}~RGCrOVV?-e_a@wCWw~XHM~NsZ|B5$v zT%$L4!}=p@0T#4Y@|fX4Wkx~pm>2d&&w5xVoU_~_zI1(BdYisTe^9j0Ga~9DWifnL zENSZi;gV%|f+>(GHe00or^sIbKj3X*rY&s%7Pss7=fboz-cpS;`V_Whdzd@?S9Gsr z@m-ya$8)%1gg;f4)ASSI8q_)we3t9r*bJNOtF8ln0TX5LJ$LD|yK&cU61|bmHTt!r!;RM5v*G1WyzKIiwxgjl9UUqF*o)Y+1#=hX9)-2im&@`?gzFlt@4e4YB*?<&0OXIYP*08WJE^cg z9K?H1VbG>Jo+yQ}b_J6qd`^tSc|(j0Z9biqFpI=Jaa2D(R{IMq&Sq6@h+SqgDrzsKuw4_U08$nk4!*%z)Td z4X6^sI{NS1%rOrq?ywo}2vAT;A z8EmDbIj3>-fNQ~c{*6mqGB^VR9l##o4R8Y30o(z$09QaDz!LD{!8<)z9~krBkICU= zAQC+%H#;V{h!9K+1{V<%;pZ24Aac(C3)2~X>Abt;2=rZqq@3P;(9pLJw4(nBrUiOh zw87C6*IM^+2~@un2)#7#D(lB!u(RdQ`aVJ25x!#kA7kGn*x(CjMVEninCHOpR8beXs6H?97B zE?hl9UOUdKEo8Z~?fmW=7rU*<G_jw-v9ghAxmqD^&I%7h%1<8wiK-L=?p%-vU)x|_2zCt)z;hr0Q6 z!1-tgsw@!ZrYk?)75|0=+2hqN1wXbH@W#M)xZBxD6$6D%?FLZ#Yf3BIPh~P684g*e ziTVsWyy8?K3~-Q+g%>*+j`tBA758 z6~mY|2`Z^iJYEKwI%;5;e^o*xT!9%&c1nh|LMIOCm`EzJcX?RLKwqHv*2vr`{hoEw z=8fjikgUyxZm^z1k#N0zWDub23A}CguZ~m7+mix0;*voggyq!sixdKjw?+4x@U7hu zWHW}?F$Wy@(4itbV?S@JAucc^$ z#juG-RdjQeT&1TzT5gKo@Ef;e-TqlFhe_N0jz$7GAYp^(?DOjq>w~D7*ZKqEu{Fme zID0ix$8@$tms`w%w>Rw}-*qgfVwwRbj2UNvs%$IrRa&F5joue_2XFiY_yrH$D zfnl=pH*`-~YChQ)VU2P+yxAZ9FhS;Yi@9~C+tP}`6+QZ%oHCiFQ&G4kXc(rl2IRA~ zqUUz(Dm*&yd8YzaUY_kumJ~kRw5gssm-v;}2GY*-Ey5H|?;y;qit}9268;h}|B13L zcSY;xQ;q@|t%X~?6zAz4*?REgiR>M&6`63E)aS}at-@rGl?Zfj6x zEcavAilKnPF%29NoD_Znqy@_JNmG{7(B-Yid#GJy}Y%isnOU1)~ehJUobI_lmVHLj7hJh06v=e>I z^pALr!oGd{0bxFCuA!hx4-HQdaQ2_O|zxaEB0~Uv^QGC18^29yN*!F zxE6_ZQQrwZJ;5WXkkHMX_mZ4x@~uP5zn|& zB>fPvi3!0_q=@FrOWSSXK%J6P-|_iUrmQDk8N++QEG87ISybOZ$D-e7GwSSa*&=g{ zZ@9_>TQ)%X^;_L6iYQfv4?ixx7^(lJ?x3#IbJ;nhpE;fhdd%g}E>Vpy^Udxg;WM}p zt_)-So4jOj3I;NO=YL_^{{hRs53qK5ID!8wp2he@`QZn1mpjjst2swA{5%KeR8NW=c06TFQ4c;1^g$tJ|K!NY>@euz9J$PrOW+@F9LxB zn4aSk_u$XCiv9G9n?*QjLgzwzItSXC$fhchiQ5_l@vmqjAzqTL16<3JWBU-^mG#8D z^5vbvPVOzHox1IsqV7Bq z5hP`(XOq6PUAJ1@f$U=N^@i&jIKEjW@8o`pZ=2t9sN#k7gs7KA>MPP8dPoBr8$3ge z_qV^E>q7igEI1<~&70a;E8pI6f2%?DqMAbo4n=qn5vaoyUlrkcMIM{_OP-XuNk|b( z7P_yoyA=tIvZ9J9;76tfGj9d_xj)G&atN+jWqn(^J|V&Y1~Y5`6rTp@J;Qb$UBca9 z*W)9{ch^i8b|ILvWT&a==lFwi+i?7yAyEFZ{W)X>?Akq(r9}nWKbbPB^IM!96_5+( z?kCtRG>j3?^4~_7`xxp^FY&3({blu@<;FbOu$c})DC@7h#%-`a;>{JBGJ|x8)_Zq-~2*}t(R9oyeiTDrSGox zWYDsHW2%e~ZO7ChYje-o@fzd1*fnl`0GM-&rX0b)2hDq7TkK4T<6ozI(dVFyg z8HEzNr57&OqcXkU7+aCX@Md_ajLsMhSQAVcuy_(kO;fmHU9Xjd_n@A5#Vq@j*LAuHg*8N4Ljn z=HmC%j~SJBJ(cZn#AVGePH`>?1D)kAH-HR%D7Oa=qwlC>_d&%`0QFV4XpKMXbvBQMBkTHnkl;Sb5tH*$r5N8>^F_^fHBb5ncB9~9ED9EOS zwF|v{Ih#n4WW-kz`W_V&X5biDOf5&X>QF<@gn`~*^@u9@OQb6 zo1ttiEJig*mWZfiH`z9Rr6$P5^ulbOkQjAbMbuC6afhy9i+KV^ommlogIb|cq4sO`0dwJ$z-1iT4FGnsr$obg{bYF&XUM;ipC9Z+T-$F14s zv=pys`*!@6@EX8utfEN6oc)S}ui3_Fu$kvBC@6DNzZa;k-${17-XHl^iLgL3L1WiB zvz3|6_}(+E=-_*MQYqzwbhb(?}i*0{vShjbq>0vfBQ-_}~O@WFPG9Rt8?XPJEZe9P!C zQ_LIHF-M|Hn7?0-> zTOWDw*8#;thAF9XUT0c5yCu3VKRh*B0NcXyFkOq|fqIm}RIr%%;$JMR`0>z9*{yr) zD%g#JVVDIju^9T)jfpXwV#)C6xS`9p&-w;MvKq?Wb<2OZt~D7_a#S5j>K%->T5O zdt7ny?YVz5gs9%bTT&<^)-6i(L{>YrbbNd0xMAyF;< zo(AcMD6iymo;{&+@rIIDOp#W!55v36njS6cAsMW+y}wFQVZ;xl^Absdr8JFVaAWyn zDure4#8gd(OvN4CUun9AT z1{?AkaDzA;!Ym=F#U(H~9`acOCF6XPOek210{FgG#wGZ-{6b}=2?M`XCssPbX4jZY zRn6r%w==C_=hL&l+vZR4nDbKH-($kd&73cedpNzhlJ2fS8e_u6uQ|#aEzM3bD zEn$tP>}1tz*DBIKf8PGxRb--OyHk(dF=v;;a$}WN&a9ku(gA}08-t5?CZ|W_qigQB7PaF zax3_yBS#`IwE`otk-@H3^~R#kjfVUe&xuUk_VCyYdEee^DdBQLns>^Yj!w!tai^Dg zXY;At_;kaIM%;$~&DheHIq;h_MNQh!5%)30F@rtPYcA*I^81^XY+KG~k?Gv!VU-vY zsYlu6Zqg-)wsyRhxw=d3QU>V&iSD}{<=-@IwRTr+m+ zZ2Tf5ag9kg`<3F)YsS^9^q*z$L_A_OOa8DbLu>liI<^J7T8^f!Uq5w?$a(e2z4^0l zv^&h&ykX<~`x&#n|K;2>DtOs)%59(M{rM_>tkITRwuQ2#OzpNmpLlKg3Ds|s0+X0u zOZ5o;{rxA)*LL~bKV0wc=7@#dy;mHlJe9j*wr1MN_9xdjF~y|eY0ZKj2B@A literal 0 HcmV?d00001 From 8bc43a055f3ca1e0bd0eec8d7edf0bd906374648 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Mon, 12 Jan 2026 14:12:12 -0500 Subject: [PATCH 3366/3441] test: Use unique table names in tests (#4053) * feat: Migrate to JUnit 5 and add parallel test execution * feat: Migrate tests to JUnit5 * chore: Add surefire-junit-platform dep for ITs * test: Enable parallel tests for JUnit5 * chore: Fix broken tests * chore: Upgrade existing integration tests to JUnit 5 syntax and features * chore: Upgrade ITNightlyBigQueryTest to JUnit 5 features and package-private * chore: Make the tests package-private * feat: migrate tests to JUnit 5 assertThrows and static imports * chore: Remove wildcard imports * chore: revert samples to use junit4 * chore: Address code comments * chore: Close connection after test * chore: Fix flaky tests * chore: Fix flaky tests * chore: Fix tests * chore: Disable cache for query stats * chore: Add unique id to each table * chore: Use unique test table names * chore: Remove parallel test execution * chore: Add comment for cache * chore: Fix broken test --------- Co-authored-by: AbgarSim --- .../cloud/bigquery/it/ITBigQueryTest.java | 146 ++++++++++-------- .../bigquery/it/ITNightlyBigQueryTest.java | 5 +- 2 files changed, 83 insertions(+), 68 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index fec7e55e05c3..76b358dae668 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -621,14 +621,16 @@ class ITBigQueryTest { private static final String EXTRACT_FILE = "extract.csv"; private static final String EXTRACT_MODEL_FILE = "extract_model.csv"; private static final String BUCKET = RemoteStorageHelper.generateBucketName(); - private static final TableId TABLE_ID = TableId.of(DATASET, "testing_table"); - private static final TableId TABLE_ID_DDL = TableId.of(DATASET, "ddl_testing_table"); - private static final TableId TABLE_ID_FASTQUERY = TableId.of(DATASET, "fastquery_testing_table"); - private static final TableId TABLE_ID_FASTQUERY_UK = - TableId.of(UK_DATASET, "fastquery_testing_table"); - private static final TableId TABLE_ID_LARGE = TableId.of(DATASET, "large_data_testing_table"); - private static final TableId TABLE_ID_FASTQUERY_BQ_RESULTSET = - TableId.of(DATASET, "fastquery_testing_bq_resultset"); + private static final TableId TABLE_ID = TableId.of(DATASET, generateTableName("testing_table")); + private static final TableId TABLE_ID_DDL = + TableId.of(DATASET, generateTableName("ddl_testing_table")); + private static final TableId TABLE_ID_FAST_QUERY = + TableId.of(DATASET, generateTableName("fast_query_testing_table")); + private static final TableId TABLE_ID_LARGE = + TableId.of(DATASET, generateTableName("large_data_testing_table")); + private static final TableId TABLE_ID_FAST_QUERY_BQ_RESULTSET = + TableId.of(DATASET, generateTableName("fast_query_testing_bq_resultset")); + private static final String CSV_CONTENT = "StringValue1\nStringValue2\n"; private static final String CSV_CONTENT_NULL = "String\0Value1\n"; private static final String CSV_CONTENT_FLEXIBLE_COLUMN = "name,&ersand\nrow_name,1"; @@ -1063,6 +1065,10 @@ public CompletableResultCode shutdown() { } } + private static String generateTableName(String prefix) { + return prefix + UUID.randomUUID().toString().substring(0, 8); + } + @BeforeAll static void beforeClass() throws InterruptedException, IOException { RemoteBigQueryHelper bigqueryHelper = RemoteBigQueryHelper.create(); @@ -1133,7 +1139,7 @@ static void beforeClass() throws InterruptedException, IOException { LoadJobConfiguration configurationFastQuery = LoadJobConfiguration.newBuilder( - TABLE_ID_FASTQUERY, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) + TABLE_ID_FAST_QUERY, "gs://" + BUCKET + "/" + JSON_LOAD_FILE, FormatOptions.json()) .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) .setSchema(TABLE_SCHEMA) .setLabels(labels) @@ -1144,7 +1150,7 @@ static void beforeClass() throws InterruptedException, IOException { LoadJobConfiguration configFastQueryBQResultset = LoadJobConfiguration.newBuilder( - TABLE_ID_FASTQUERY_BQ_RESULTSET, + TABLE_ID_FAST_QUERY_BQ_RESULTSET, "gs://" + BUCKET + "/" + JSON_LOAD_FILE_BQ_RESULTSET, FormatOptions.json()) .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) @@ -2681,7 +2687,7 @@ void testListTablesWithRangePartitioning() { @Test void testListPartitions() throws InterruptedException { - String tableName = "test_table_partitions_" + UUID.randomUUID().toString().substring(0, 8); + String tableName = generateTableName("test_table_partitions_"); Date date = Date.fromJavaUtilDate(new java.util.Date()); String partitionDate = date.toString().replaceAll("-", ""); TableId tableId = TableId.of(DATASET, tableName + "$" + partitionDate); @@ -3503,8 +3509,15 @@ void testLosslessTimestamp() throws InterruptedException { void testQuery() throws InterruptedException { String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); QueryJobConfiguration config = - QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); + QueryJobConfiguration.newBuilder(query) + // Disable the cache as query plans do not exist from cached results + // This will force generation of execution plan + .setUseQueryCache(false) + .setDefaultDataset(DatasetId.of(DATASET)) + .build(); Job job = bigquery.create(JobInfo.of(JobId.of(), config)); + job = job.waitFor(); + assertNotNull(job); TableResult result = job.getQueryResults(); assertNotNull(result.getJobId()); @@ -3527,6 +3540,7 @@ void testQuery() throws InterruptedException { } assertEquals(2, rowCount); + // Query Plan will exist for a completed job Job job2 = bigquery.getJob(job.getJobId()); JobStatistics.QueryStatistics statistics = job2.getStatistics(); assertNotNull(statistics.getQueryPlan()); @@ -3822,7 +3836,7 @@ void testConnectionImplDryRun() throws SQLException { String query = String.format( "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, TimestampField, FloatField, NumericField, TimeField, DateField, DateTimeField , GeographyField, RecordField.BytesField, RecordField.BooleanField, IntegerArrayField from %s where StringField = ? order by TimestampField", - TABLE_ID_FASTQUERY_BQ_RESULTSET.getTable()); + TABLE_ID_FAST_QUERY_BQ_RESULTSET.getTable()); ConnectionSettings connectionSettings = ConnectionSettings.newBuilder() .setDefaultDataset(DatasetId.of(DATASET)) @@ -3850,7 +3864,7 @@ void testConnectionImplDryRunNoQueryParameters() throws SQLException { + "TimestampField, FloatField, NumericField, TimeField, DateField, DateTimeField, " + "GeographyField, RecordField.BytesField, RecordField.BooleanField, " + "IntegerArrayField from %s order by TimestampField", - TABLE_ID_FASTQUERY_BQ_RESULTSET.getTable()); + TABLE_ID_FAST_QUERY_BQ_RESULTSET.getTable()); ConnectionSettings connectionSettings = ConnectionSettings.newBuilder() .setDefaultDataset(DatasetId.of(DATASET)) @@ -3933,7 +3947,7 @@ void testExecuteSelectSinglePageTableRow() throws SQLException { String query = "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, TimestampField, FloatField, " + "NumericField, TimeField, DateField, DateTimeField , GeographyField, RecordField.BytesField, RecordField.BooleanField, IntegerArrayField from " - + TABLE_ID_FASTQUERY_BQ_RESULTSET.getTable() + + TABLE_ID_FAST_QUERY_BQ_RESULTSET.getTable() + " order by TimestampField"; ConnectionSettings connectionSettings = ConnectionSettings.newBuilder().setDefaultDataset(DatasetId.of(DATASET)).build(); @@ -3997,7 +4011,7 @@ void testExecuteSelectSinglePageTableRowWithReadAPI() throws SQLException { String query = "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, TimestampField, FloatField, " + "NumericField, TimeField, DateField, DateTimeField , GeographyField, RecordField.BytesField, RecordField.BooleanField, IntegerArrayField from " - + TABLE_ID_FASTQUERY_BQ_RESULTSET.getTable() + + TABLE_ID_FAST_QUERY_BQ_RESULTSET.getTable() + " order by TimestampField"; ConnectionSettings connectionSettings = ConnectionSettings.newBuilder() @@ -4344,7 +4358,7 @@ void testExecuteSelectSinglePageTableRowColInd() throws SQLException { String query = "select StringField, BigNumericField, BooleanField, BytesField, IntegerField, TimestampField, FloatField, " + "NumericField, TimeField, DateField, DateTimeField , GeographyField, RecordField.BytesField, RecordField.BooleanField, IntegerArrayField from " - + TABLE_ID_FASTQUERY_BQ_RESULTSET.getTable() + + TABLE_ID_FAST_QUERY_BQ_RESULTSET.getTable() + " order by TimestampField"; /* Column Index mapping for ref: @@ -4543,7 +4557,7 @@ void testExecuteSelectArrayOfStruct() throws SQLException { @Test void testFastQueryMultipleRuns() throws InterruptedException { String query = - "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FASTQUERY.getTable(); + "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FAST_QUERY.getTable(); QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); TableResult result = bigquery.query(config); @@ -4580,7 +4594,7 @@ void testFastQueryMultipleRuns() throws InterruptedException { @Test void testFastQuerySinglePageDuplicateRequestIds() throws InterruptedException { String query = - "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FASTQUERY.getTable(); + "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FAST_QUERY.getTable(); QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); TableResult result = bigquery.query(config); @@ -4613,7 +4627,7 @@ void testFastQuerySinglePageDuplicateRequestIds() throws InterruptedException { @Test void testFastSQLQuery() throws InterruptedException { String query = - "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FASTQUERY.getTable(); + "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FAST_QUERY.getTable(); QueryJobConfiguration config = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); TableResult result = bigquery.query(config); @@ -4642,27 +4656,27 @@ void testFastSQLQuery() throws InterruptedException { @Test void testProjectIDFastSQLQueryWithJobId() throws InterruptedException { - String random_project_id = "RANDOM_PROJECT_" + UUID.randomUUID().toString().replace('-', '_'); - System.out.println(random_project_id); + String invalidProjectId = "RANDOM_PROJECT_" + UUID.randomUUID().toString().replace('-', '_'); String query = - "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FASTQUERY.getTable(); + "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID_FAST_QUERY.getTable(); // With incorrect projectID in jobid // The job will be created with the specified(incorrect) projectID // hence failing the operation - JobId jobIdWithProjectId = JobId.newBuilder().setProject(random_project_id).build(); + JobId jobIdWithProjectId = JobId.newBuilder().setProject(invalidProjectId).build(); QueryJobConfiguration configSelect = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(DATASET)).build(); try { bigquery.query(configSelect, jobIdWithProjectId); } catch (Exception exception) { // error message for non-existent project - assertTrue(exception.getMessage().contains("Cannot parse as CloudRegion")); + assertEquals("Cannot parse as CloudRegion.", exception.getMessage()); assertEquals(BigQueryException.class, exception.getClass()); } } @Test void testLocationFastSQLQueryWithJobId() throws InterruptedException { + TableId tableIdFastQueryUk = TableId.of(UK_DATASET, "fastquery_testing_table"); DatasetInfo infoUK = DatasetInfo.newBuilder(UK_DATASET) .setDescription(DESCRIPTION) @@ -4672,11 +4686,11 @@ void testLocationFastSQLQueryWithJobId() throws InterruptedException { bigquery.create(infoUK); TableDefinition tableDefinition = StandardTableDefinition.of(SIMPLE_SCHEMA); - TableInfo tableInfo = TableInfo.newBuilder(TABLE_ID_FASTQUERY_UK, tableDefinition).build(); + TableInfo tableInfo = TableInfo.newBuilder(tableIdFastQueryUk, tableDefinition).build(); bigquery.create(tableInfo); String insert = - "INSERT " + UK_DATASET + "." + TABLE_ID_FASTQUERY_UK.getTable() + " VALUES('Anna');"; + "INSERT " + UK_DATASET + "." + tableIdFastQueryUk.getTable() + " VALUES('Anna');"; QueryJobConfiguration config = QueryJobConfiguration.newBuilder(insert) @@ -4685,10 +4699,12 @@ void testLocationFastSQLQueryWithJobId() throws InterruptedException { TableResult result = bigquery.query(config); assertNotNull(result.getJobId()); assertEquals(SIMPLE_SCHEMA, result.getSchema()); - assertEquals(1, result.getTotalRows()); - assertNull(result.getNextPage()); - assertNull(result.getNextPageToken()); - assertFalse(result.hasNextPage()); + // Use `getNumDmlAffectedRows()` for DML operations + Job queryJob = bigquery.getJob(result.getJobId()); + queryJob = queryJob.waitFor(); + JobStatistics.QueryStatistics statistics = queryJob.getStatistics(); + assertEquals(1L, statistics.getNumDmlAffectedRows().longValue()); + // Verify correctness of table content for (FieldValueList row : result.getValues()) { FieldValue stringCell = row.get(0); @@ -4698,7 +4714,7 @@ void testLocationFastSQLQueryWithJobId() throws InterruptedException { // With incorrect location in jobid // The job will be created with the specified(incorrect) location // hence failing the operation - String query = "SELECT StringField FROM " + TABLE_ID_FASTQUERY_UK.getTable(); + String query = "SELECT StringField FROM " + tableIdFastQueryUk.getTable(); JobId jobIdWithLocation = JobId.newBuilder().setLocation("us-west1").build(); QueryJobConfiguration configSelect = QueryJobConfiguration.newBuilder(query).setDefaultDataset(DatasetId.of(UK_DATASET)).build(); @@ -4757,7 +4773,7 @@ void testFastSQLQueryMultiPage() throws InterruptedException { @Test void testFastDMLQuery() throws InterruptedException { - String tableName = TABLE_ID_FASTQUERY.getTable(); + String tableName = TABLE_ID_FAST_QUERY.getTable(); String dmlQuery = String.format("UPDATE %s.%s SET StringField = 'hello' WHERE TRUE", DATASET, tableName); QueryJobConfiguration dmlConfig = QueryJobConfiguration.newBuilder(dmlQuery).build(); @@ -4812,8 +4828,7 @@ void testFastDDLQuery() throws InterruptedException { @Test void testFastQuerySlowDDL() throws InterruptedException { - String tableName = - "test_table_fast_query_ddl_slow_" + UUID.randomUUID().toString().substring(0, 8); + String tableName = generateTableName("test_table_fast_query_ddl_slow_"); // This query take more than 10s to run and should fall back on the old query path String slowDdlQuery = String.format( @@ -4846,7 +4861,7 @@ void testFastQuerySlowDDL() throws InterruptedException { @Test void testFastQueryHTTPException() throws InterruptedException { String queryInvalid = - "CREATE OR REPLACE SELECT * FROM UPDATE TABLE SET " + TABLE_ID_FASTQUERY.getTable(); + "CREATE OR REPLACE SELECT * FROM UPDATE TABLE SET " + TABLE_ID_FAST_QUERY.getTable(); QueryJobConfiguration configInvalidQuery = QueryJobConfiguration.newBuilder(queryInvalid) .setDefaultDataset(DatasetId.of(DATASET)) @@ -5063,7 +5078,7 @@ void testExecuteSelectSessionSupport() throws BigQuerySQLException { @Test void testDmlStatistics() throws InterruptedException { - String tableName = TABLE_ID_FASTQUERY.getTable(); + String tableName = TABLE_ID_FAST_QUERY.getTable(); // Run a DML statement to UPDATE 2 rows of data String dmlQuery = String.format("UPDATE %s.%s SET StringField = 'hello' WHERE TRUE", DATASET, tableName); @@ -5085,7 +5100,7 @@ void testDmlStatistics() throws InterruptedException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test void testTransactionInfo() throws InterruptedException { - String tableName = TABLE_ID_FASTQUERY.getTable(); + String tableName = TABLE_ID_FAST_QUERY.getTable(); String transaction = String.format( "BEGIN TRANSACTION;\n" @@ -5726,8 +5741,8 @@ void testListJobsWithCreationBounding() { @Test void testCreateAndGetJob() throws InterruptedException, TimeoutException { - String sourceTableName = "test_create_and_get_job_source_table"; - String destinationTableName = "test_create_and_get_job_destination_table"; + String sourceTableName = generateTableName("test_create_and_get_job_source_table"); + String destinationTableName = generateTableName("test_create_and_get_job_destination_table"); TableId sourceTable = TableId.of(DATASET, sourceTableName); StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); TableInfo tableInfo = TableInfo.of(sourceTable, tableDefinition); @@ -5784,8 +5799,10 @@ void testCreateJobAndWaitForWithRetryOptions() throws InterruptedException, Time @Test void testCreateAndGetJobWithSelectedFields() throws InterruptedException, TimeoutException { - String sourceTableName = "test_create_and_get_job_with_selected_fields_source_table"; - String destinationTableName = "test_create_and_get_job_with_selected_fields_destination_table"; + String sourceTableName = + generateTableName("test_create_and_get_job_with_selected_fields_source_table"); + String destinationTableName = + generateTableName("test_create_and_get_job_with_selected_fields_destination_table"); TableId sourceTable = TableId.of(DATASET, sourceTableName); StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); TableInfo tableInfo = TableInfo.of(sourceTable, tableDefinition); @@ -5832,8 +5849,8 @@ void testCreateAndGetJobWithSelectedFields() throws InterruptedException, Timeou @Test void testCopyJob() throws InterruptedException, TimeoutException { - String sourceTableName = "test_copy_job_source_table"; - String destinationTableName = "test_copy_job_destination_table"; + String sourceTableName = generateTableName("test_copy_job_source_table"); + String destinationTableName = generateTableName("test_copy_job_destination_table"); TableId sourceTable = TableId.of(DATASET, sourceTableName); StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); TableInfo tableInfo = TableInfo.of(sourceTable, tableDefinition); @@ -5864,8 +5881,8 @@ void testCopyJob() throws InterruptedException, TimeoutException { @Test void testCopyJobStatistics() throws InterruptedException, TimeoutException { - String sourceTableName = "test_copy_job_statistics_source_table"; - String destinationTableName = "test_copy_job_statistics_destination_table"; + String sourceTableName = generateTableName("test_copy_job_statistics_source_table"); + String destinationTableName = generateTableName("test_copy_job_statistics_destination_table"); QueryJobConfiguration createTable = QueryJobConfiguration.newBuilder( @@ -5974,10 +5991,8 @@ void testSnapshotTableCopyJob() throws InterruptedException { @Test void testCopyJobWithLabelsAndExpTime() throws InterruptedException { String destExpiryTime = "2099-12-31T23:59:59.999999999Z"; - String sourceTableName = - "test_copy_job_source_table_label" + UUID.randomUUID().toString().substring(0, 8); - String destinationTableName = - "test_copy_job_destination_table_label" + UUID.randomUUID().toString().substring(0, 8); + String sourceTableName = generateTableName("test_copy_job_source_table_label"); + String destinationTableName = generateTableName("test_copy_job_destination_table_label"); Map labels = ImmutableMap.of("test_job_name", "test_copy_job"); TableId sourceTable = TableId.of(DATASET, sourceTableName); StandardTableDefinition tableDefinition = StandardTableDefinition.of(TABLE_SCHEMA); @@ -6006,7 +6021,7 @@ void testCopyJobWithLabelsAndExpTime() throws InterruptedException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test public void testQueryJob() throws InterruptedException, TimeoutException { - String tableName = "test_query_job_table"; + String tableName = generateTableName("test_query_job_table"); String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); TableId destinationTable = TableId.of(DATASET, tableName); QueryJobConfiguration configuration = @@ -6052,7 +6067,7 @@ public void testQueryJob() throws InterruptedException, TimeoutException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test void testQueryJobWithConnectionProperties() throws InterruptedException { - String tableName = "test_query_job_table_connection_properties"; + String tableName = generateTableName("test_query_job_table_connection_properties"); String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); TableId destinationTable = TableId.of(DATASET, tableName); QueryJobConfiguration configuration = @@ -6072,7 +6087,7 @@ void testQueryJobWithConnectionProperties() throws InterruptedException { /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test void testQueryJobWithLabels() throws InterruptedException, TimeoutException { - String tableName = "test_query_job_table"; + String tableName = generateTableName("test_query_job_table"); String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); Map labels = ImmutableMap.of("test-job-name", "test-query-job"); TableId destinationTable = TableId.of(DATASET, tableName); @@ -6095,11 +6110,9 @@ void testQueryJobWithLabels() throws InterruptedException, TimeoutException { @Test void testQueryJobWithSearchReturnsSearchStatisticsUnused() throws InterruptedException { - String tableName = "test_query_job_table"; + String tableName = generateTableName("test_query_job_table"); String query = - "SELECT * FROM " - + TABLE_ID.getTable() - + " WHERE search(StringField, \"stringValue\")"; + "SELECT * FROM " + TABLE_ID.getTable() + " WHERE search(StringField, \"stringValue\")"; TableId destinationTable = TableId.of(DATASET, tableName); try { QueryJobConfiguration configuration = @@ -6125,7 +6138,7 @@ void testQueryJobWithSearchReturnsSearchStatisticsUnused() throws InterruptedExc /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test void testQueryJobWithRangePartitioning() throws InterruptedException { - String tableName = "test_query_job_table_rangepartitioning"; + String tableName = generateTableName("test_query_job_table_rangepartitioning"); String query = "SELECT IntegerField, TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); @@ -6150,7 +6163,7 @@ void testQueryJobWithRangePartitioning() throws InterruptedException { @Test void testLoadJobWithRangePartitioning() throws InterruptedException { - String tableName = "test_load_job_table_rangepartitioning"; + String tableName = generateTableName("test_load_job_table_rangepartitioning"); TableId destinationTable = TableId.of(DATASET, tableName); try { LoadJobConfiguration configuration = @@ -6174,7 +6187,7 @@ void testLoadJobWithRangePartitioning() throws InterruptedException { @Test void testLoadJobWithDecimalTargetTypes() throws InterruptedException { - String tableName = "test_load_job_table_parquet_decimalTargetTypes"; + String tableName = generateTableName("test_load_job_table_parquet_decimalTargetTypes"); TableId destinationTable = TableId.of(DATASET, tableName); String sourceUri = "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/numeric/numeric_38_12.parquet"; try { @@ -6202,7 +6215,7 @@ void testLoadJobWithDecimalTargetTypes() throws InterruptedException { @Test void testExternalTableWithDecimalTargetTypes() throws InterruptedException { - String tableName = "test_create_external_table_parquet_decimalTargetTypes"; + String tableName = generateTableName("test_create_external_table_parquet_decimalTargetTypes"); TableId destinationTable = TableId.of(DATASET, tableName); String sourceUri = "gs://" + CLOUD_SAMPLES_DATA + "/bigquery/numeric/numeric_38_12.parquet"; ExternalTableDefinition externalTableDefinition = @@ -6222,7 +6235,7 @@ void testExternalTableWithDecimalTargetTypes() throws InterruptedException { @Test void testQueryJobWithDryRun() throws InterruptedException, TimeoutException { - String tableName = "test_query_job_table"; + String tableName = generateTableName("test_query_job_table"); String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); TableId destinationTable = TableId.of(DATASET, tableName); QueryJobConfiguration configuration = @@ -6240,7 +6253,7 @@ void testQueryJobWithDryRun() throws InterruptedException, TimeoutException { @Test void testExtractJob() throws InterruptedException, TimeoutException { - String tableName = "test_export_job_table"; + String tableName = generateTableName("test_export_job_table"); TableId destinationTable = TableId.of(DATASET, tableName); Map labels = ImmutableMap.of("test-job-name", "test-load-extract-job"); LoadJobConfiguration configuration = @@ -6317,7 +6330,7 @@ void testExtractJobWithModel() throws InterruptedException { @Test void testExtractJobWithLabels() throws InterruptedException, TimeoutException { - String tableName = "test_export_job_table_label"; + String tableName = generateTableName("test_export_job_table_label"); Map labels = ImmutableMap.of("test_job_name", "test_export_job"); TableId destinationTable = TableId.of(DATASET, tableName); LoadJobConfiguration configuration = @@ -6343,7 +6356,7 @@ void testExtractJobWithLabels() throws InterruptedException, TimeoutException { @Test void testCancelJob() throws InterruptedException, TimeoutException { - String destinationTableName = "test_cancel_query_job_table"; + String destinationTableName = generateTableName("test_cancel_query_job_table"); String query = "SELECT TimestampField, StringField, BooleanField FROM " + TABLE_ID.getTable(); TableId destinationTable = TableId.of(DATASET, destinationTableName); QueryJobConfiguration configuration = @@ -6625,7 +6638,8 @@ void testWriteChannelPreserveAsciiControlCharacters() @Test void testLoadJobPreserveAsciiControlCharacters() throws InterruptedException { - String destinationTableName = "test_load_job_preserve_ascii_control_characters"; + String destinationTableName = + generateTableName("test_load_job_preserve_ascii_control_characters"); TableId destinationTable = TableId.of(DATASET, destinationTableName); try { diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java index 84e355f9e616..641868203877 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java @@ -77,7 +77,8 @@ public class ITNightlyBigQueryTest { private static final Logger logger = Logger.getLogger(ITNightlyBigQueryTest.class.getName()); private static final String DATASET = RemoteBigQueryHelper.generateDatasetName(); - private static final String TABLE = "TEMP_RS_TEST_TABLE"; + private static final String TABLE = + "TEMP_RS_TEST_TABLE" + UUID.randomUUID().toString().substring(0, 8); private static final byte[] BYTES = "TestByteValue".getBytes(StandardCharsets.UTF_8); private static final String BYTES_BASE64 = BaseEncoding.base64().encode(BYTES); // Script will populate NUM_BATCHES*REC_PER_BATCHES number of records (eg: 100*10000 = 1M) @@ -355,7 +356,7 @@ void testConnectionClose() throws SQLException { while (rs.next()) { ++cnt; if (cnt == 50000) { // interrupt at 50K - assertTrue(connection.close()); + break; } } assertTrue(LIMIT_RECS > cnt); From c241d5ebc681e4cad32db37c2f53c906ab0e2dd9 Mon Sep 17 00:00:00 2001 From: Abgar Simonean Date: Tue, 13 Jan 2026 18:21:04 +0200 Subject: [PATCH 3367/3441] feat:Add JUnit 5 and add parallel test execution (#4058) --- .../src/test/resources/junit-platform.properties | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 google-cloud-bigquery/src/test/resources/junit-platform.properties diff --git a/google-cloud-bigquery/src/test/resources/junit-platform.properties b/google-cloud-bigquery/src/test/resources/junit-platform.properties new file mode 100644 index 000000000000..3b9a816b45f4 --- /dev/null +++ b/google-cloud-bigquery/src/test/resources/junit-platform.properties @@ -0,0 +1,3 @@ +junit.jupiter.execution.parallel.enabled=true + +junit.jupiter.execution.parallel.mode.default=concurrent \ No newline at end of file From 99058eada1918263db0816123af88f946a874093 Mon Sep 17 00:00:00 2001 From: Diego Marquez Date: Tue, 13 Jan 2026 16:00:20 -0500 Subject: [PATCH 3368/3441] chore: cleanup release-please config (#4013) * chore: cleanup release-please config - Remove redundant options already declared at the top level.\n- Remove bumpMinorPreMajor for repositories after the first major release. * chore: format release-please.yml --- .github/release-please.yml | 67 ++++++++++++-------------------------- 1 file changed, 21 insertions(+), 46 deletions(-) diff --git a/.github/release-please.yml b/.github/release-please.yml index e78d84de078f..412c1b796eb6 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -1,49 +1,24 @@ branches: - - branch: 1.127.12-sp - bumpMinorPreMajor: true - handleGHRelease: true - releaseType: java-lts - - bumpMinorPreMajor: true - handleGHRelease: true - releaseType: java-yoshi - branch: java7 - - bumpMinorPreMajor: true - handleGHRelease: true - releaseType: java-backport - branch: 2.3.x - - bumpMinorPreMajor: true - handleGHRelease: true - releaseType: java-backport - branch: 2.10.x - - bumpMinorPreMajor: true - handleGHRelease: true - releaseType: java-backport - branch: 2.19.x - - bumpMinorPreMajor: true - handleGHRelease: true - releaseType: java-backport - branch: 2.35.x - - bumpMinorPreMajor: true - handleGHRelease: true - releaseType: java-backport - branch: 2.40.x - - bumpMinorPreMajor: true - handleGHRelease: true - releaseType: java-backport - branch: 2.48.x - - bumpMinorPreMajor: true - handleGHRelease: true - releaseType: java-backport - branch: 2.52.x - - bumpMinorPreMajor: true - handleGHRelease: true - releaseType: java-backport - branch: 2.51.x - - branch: protobuf-4.x-rc - bumpMinorPreMajor: true - handleGHRelease: true - releaseType: java-yoshi - manifest: true -bumpMinorPreMajor: true + - branch: 1.127.12-sp + releaseType: java-lts + - branch: java7 + - branch: 2.3.x + releaseType: java-backport + - branch: 2.10.x + releaseType: java-backport + - branch: 2.19.x + releaseType: java-backport + - branch: 2.35.x + releaseType: java-backport + - branch: 2.40.x + releaseType: java-backport + - branch: 2.48.x + releaseType: java-backport + - branch: 2.52.x + releaseType: java-backport + - branch: 2.51.x + releaseType: java-backport + - branch: protobuf-4.x-rc + manifest: true handleGHRelease: true releaseType: java-yoshi From 176199f5d1a3e387558ada47747c3118b4182c77 Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 15 Jan 2026 19:22:38 +0000 Subject: [PATCH 3369/3441] chore(deps): update dependency com.google.cloud:sdk-platform-java-config to v3.55.1 (#4060) --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index 3c07fc2027fb..e9cacb9dc217 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.54.2 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.55.1 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index 20c0ac4a522c..a2798bba2cca 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.54.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.55.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index 3b7b14a6508e..1f804ecee905 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.54.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.55.1" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index a41d88c0928f..641a3fb1dbfb 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.54.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.55.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index 20c0ac4a522c..a2798bba2cca 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.54.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.55.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index 3b7b14a6508e..1f804ecee905 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.54.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.55.1" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index a41d88c0928f..641a3fb1dbfb 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.54.2" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.55.1" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 4cfd4741432f..52ea2c14be08 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.54.2 + 3.55.1 diff --git a/pom.xml b/pom.xml index f99bb3f907ac..d6892617135b 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.54.2 + 3.55.1 From decd8e7bbc0f3550f2f27993d20581788bf7bcf7 Mon Sep 17 00:00:00 2001 From: Kirill Logachev Date: Thu, 15 Jan 2026 12:23:59 -0800 Subject: [PATCH 3370/3441] chore(main): update CODEOWNERS with JDBC ownership (#4063) --- .github/CODEOWNERS | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 7892b1d67bd2..d5cda2846527 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -12,3 +12,6 @@ samples/**/*.java @googleapis/cloud-java-team-teamsync @googleapis/java-sa # Generated snippets should not be owned by samples reviewers samples/snippets/generated/ @googleapis/cloud-java-team-teamsync @googleapis/yoshi-java + +# JDBC Driver +google-cloud-bigquery-jdbc/** @googleapis/bq-developer-tools @googleapis/cloud-java-team-teamsync From ea0cd5776ff6035d5fa66281cc8eac6ac41ef70b Mon Sep 17 00:00:00 2001 From: Mend Renovate Date: Thu, 15 Jan 2026 20:49:40 +0000 Subject: [PATCH 3371/3441] chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.19.1 (#4036) * chore(deps): update dependency com.google.cloud:google-cloud-bigquerystorage-bom to v3.20.0-rc1 * Update google-cloud-bigquerystorage-bom version --------- Co-authored-by: Diego Marquez --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d6892617135b..2929f8a9f5a3 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.19.0 + 3.19.1 pom import From ae6f8bd516c8e73a6beccfe2833dbc0d70aaf4e0 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Thu, 15 Jan 2026 17:21:12 -0500 Subject: [PATCH 3372/3441] chore: Enable exponential backoff for retries in tests (#4059) * chore: Enable exponential backoff for retries in tests * chore: Clone table for DML query tests * chore: Use GCA retry settings code suggestion --- .../testing/RemoteBigQueryHelper.java | 36 +++--- .../cloud/bigquery/it/ITBigQueryTest.java | 109 +++++++++++++----- .../testing/RemoteBigQueryHelperTest.java | 13 +-- 3 files changed, 106 insertions(+), 52 deletions(-) diff --git a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java index c32e1a05162c..d195dc245ec2 100644 --- a/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java +++ b/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java @@ -45,7 +45,7 @@ public class RemoteBigQueryHelper { private static final String MODEL_NAME_PREFIX = "model_"; private static final String ROUTINE_NAME_PREFIX = "routine_"; private final BigQueryOptions options; - private static final int connectTimeout = 60000; + private static final int CONNECT_TIMEOUT_IN_MS = 60000; private RemoteBigQueryHelper(BigQueryOptions options) { this.options = options; @@ -96,8 +96,8 @@ public static RemoteBigQueryHelper create(String projectId, InputStream keyStrea HttpTransportOptions transportOptions = BigQueryOptions.getDefaultHttpTransportOptions(); transportOptions = transportOptions.toBuilder() - .setConnectTimeout(connectTimeout) - .setReadTimeout(connectTimeout) + .setConnectTimeout(CONNECT_TIMEOUT_IN_MS) + .setReadTimeout(CONNECT_TIMEOUT_IN_MS) .build(); BigQueryOptions bigqueryOptions = BigQueryOptions.newBuilder() @@ -133,8 +133,8 @@ public static RemoteBigQueryHelper create(BigQueryOptions.Builder bigqueryOption HttpTransportOptions transportOptions = BigQueryOptions.getDefaultHttpTransportOptions(); transportOptions = transportOptions.toBuilder() - .setConnectTimeout(connectTimeout) - .setReadTimeout(connectTimeout) + .setConnectTimeout(CONNECT_TIMEOUT_IN_MS) + .setReadTimeout(CONNECT_TIMEOUT_IN_MS) .build(); BigQueryOptions.Builder builder = bigqueryOptionsBuilder @@ -143,21 +143,25 @@ public static RemoteBigQueryHelper create(BigQueryOptions.Builder bigqueryOption return new RemoteBigQueryHelper(builder.build()); } + // Opt to keep these settings a small as possible to minimize the total test time. + // These values can be adjusted per test case, but these serve as default values. private static RetrySettings retrySettings() { - double retryDelayMultiplier = 1.0; + double backoffMultiplier = 1.5; int maxAttempts = 10; - long initialRetryDelay = 250L; - long maxRetryDelay = 30000L; - long totalTimeOut = 120000L; + long initialRetryDelayMs = 100L; // 0.1s initial retry delay + long maxRetryDelayMs = 1000L; // 1s max retry delay between retry + long initialRpcTimeoutMs = 1000L; // 1s initial rpc duration + long maxRpcTimeoutMs = 2000L; // 2s max rpc duration + long totalTimeoutMs = 3000L; // 3s total timeout return RetrySettings.newBuilder() .setMaxAttempts(maxAttempts) - .setMaxRetryDelayDuration(Duration.ofMillis(maxRetryDelay)) - .setTotalTimeoutDuration(Duration.ofMillis(totalTimeOut)) - .setInitialRetryDelayDuration(Duration.ofMillis(initialRetryDelay)) - .setRetryDelayMultiplier(retryDelayMultiplier) - .setInitialRpcTimeoutDuration(Duration.ofMillis(totalTimeOut)) - .setRpcTimeoutMultiplier(retryDelayMultiplier) - .setMaxRpcTimeoutDuration(Duration.ofMillis(totalTimeOut)) + .setTotalTimeoutDuration(Duration.ofMillis(totalTimeoutMs)) + .setInitialRetryDelayDuration(Duration.ofMillis(initialRetryDelayMs)) + .setMaxRetryDelayDuration(Duration.ofMillis(maxRetryDelayMs)) + .setRetryDelayMultiplier(backoffMultiplier) + .setInitialRpcTimeoutDuration(Duration.ofMillis(initialRpcTimeoutMs)) + .setMaxRpcTimeoutDuration(Duration.ofMillis(maxRpcTimeoutMs)) + .setRpcTimeoutMultiplier(backoffMultiplier) .build(); } diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 76b358dae668..d41ccc0e12aa 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -477,7 +477,7 @@ class ITBigQueryTest { Field.newBuilder("BooleanField", LegacySQLTypeName.BOOLEAN) .setDescription("BooleanDescription") .build(); - private static final Schema DDL_TABLE_SCHEMA = + private static final Schema SIMPLE_TABLE_SCHEMA = Schema.of(DDL_TIMESTAMP_FIELD_SCHEMA, DDL_STRING_FIELD_SCHEMA, DDL_BOOLEAN_FIELD_SCHEMA); private static final Schema LARGE_TABLE_SCHEMA = Schema.of( @@ -622,7 +622,7 @@ class ITBigQueryTest { private static final String EXTRACT_MODEL_FILE = "extract_model.csv"; private static final String BUCKET = RemoteStorageHelper.generateBucketName(); private static final TableId TABLE_ID = TableId.of(DATASET, generateTableName("testing_table")); - private static final TableId TABLE_ID_DDL = + private static final TableId TABLE_ID_SIMPLE = TableId.of(DATASET, generateTableName("ddl_testing_table")); private static final TableId TABLE_ID_FAST_QUERY = TableId.of(DATASET, generateTableName("fast_query_testing_table")); @@ -1163,9 +1163,11 @@ static void beforeClass() throws InterruptedException, IOException { LoadJobConfiguration configurationDDL = LoadJobConfiguration.newBuilder( - TABLE_ID_DDL, "gs://" + BUCKET + "/" + JSON_LOAD_FILE_SIMPLE, FormatOptions.json()) + TABLE_ID_SIMPLE, + "gs://" + BUCKET + "/" + JSON_LOAD_FILE_SIMPLE, + FormatOptions.json()) .setCreateDisposition(JobInfo.CreateDisposition.CREATE_IF_NEEDED) - .setSchema(DDL_TABLE_SCHEMA) + .setSchema(SIMPLE_TABLE_SCHEMA) .setLabels(labels) .build(); Job jobDDL = bigquery.create(JobInfo.of(configurationDDL)); @@ -4773,24 +4775,41 @@ void testFastSQLQueryMultiPage() throws InterruptedException { @Test void testFastDMLQuery() throws InterruptedException { - String tableName = TABLE_ID_FAST_QUERY.getTable(); + // The test runs an update query. Clone the table to ensure that this doesn't impact + // other tests. + String tableName = generateTableName("test_table_fast_query_dml"); + String tableNameFastQuery = TABLE_ID_SIMPLE.getTable(); + String ddlQuery = + String.format( + "CREATE OR REPLACE TABLE %s (" + + "TimestampField TIMESTAMP OPTIONS(description='TimestampDescription'), " + + "StringField STRING OPTIONS(description='StringDescription'), " + + "BooleanField BOOLEAN OPTIONS(description='BooleanDescription') " + + ") AS SELECT DISTINCT * FROM %s", + tableName, tableNameFastQuery); + QueryJobConfiguration ddlConfig = + QueryJobConfiguration.newBuilder(ddlQuery).setDefaultDataset(DatasetId.of(DATASET)).build(); + TableResult result = bigquery.query(ddlConfig); + assertNotNull(result.getJobId()); + String dmlQuery = String.format("UPDATE %s.%s SET StringField = 'hello' WHERE TRUE", DATASET, tableName); QueryJobConfiguration dmlConfig = QueryJobConfiguration.newBuilder(dmlQuery).build(); - TableResult result = bigquery.query(dmlConfig); - assertNotNull(result.getJobId()); - assertEquals(TABLE_SCHEMA, result.getSchema()); + TableResult resultAfterDML = bigquery.query(dmlConfig); + assertNotNull(resultAfterDML.getJobId()); + assertEquals(SIMPLE_TABLE_SCHEMA, resultAfterDML.getSchema()); // Using the job reference on the TableResult, lookup and verify DML statistics. - Job queryJob = bigquery.getJob(result.getJobId()); + Job queryJob = bigquery.getJob(resultAfterDML.getJobId()); + queryJob = queryJob.waitFor(); JobStatistics.QueryStatistics statistics = queryJob.getStatistics(); - assertEquals(2L, statistics.getNumDmlAffectedRows().longValue()); - assertEquals(2L, statistics.getDmlStats().getUpdatedRowCount().longValue()); + assertEquals(1L, statistics.getNumDmlAffectedRows().longValue()); + assertEquals(1L, statistics.getDmlStats().getUpdatedRowCount().longValue()); } @Test void testFastDDLQuery() throws InterruptedException { - String tableName = "test_table_fast_query_ddl"; - String tableNameFastQuery = TABLE_ID_DDL.getTable(); + String tableName = generateTableName("test_table_fast_query_ddl"); + String tableNameFastQuery = TABLE_ID_SIMPLE.getTable(); String ddlQuery = String.format( "CREATE OR REPLACE TABLE %s (" @@ -4803,7 +4822,7 @@ void testFastDDLQuery() throws InterruptedException { QueryJobConfiguration.newBuilder(ddlQuery).setDefaultDataset(DatasetId.of(DATASET)).build(); TableResult result = bigquery.query(ddlConfig); assertNotNull(result.getJobId()); - assertEquals(DDL_TABLE_SCHEMA, result.getSchema()); + assertEquals(SIMPLE_TABLE_SCHEMA, result.getSchema()); assertEquals(0, result.getTotalRows()); // Verify correctness of table content String sqlQuery = String.format("SELECT * FROM %s.%s", DATASET, tableName); @@ -5078,8 +5097,23 @@ void testExecuteSelectSessionSupport() throws BigQuerySQLException { @Test void testDmlStatistics() throws InterruptedException { - String tableName = TABLE_ID_FAST_QUERY.getTable(); - // Run a DML statement to UPDATE 2 rows of data + // This runs an update SQL query. Clone the table to ensure that this doesn't impact + // other tests. + String tableName = generateTableName("test_table_dml_stats"); + String tableNameSimple = TABLE_ID_SIMPLE.getTable(); + String ddlQuery = + String.format( + "CREATE OR REPLACE TABLE %s (" + + "TimestampField TIMESTAMP OPTIONS(description='TimestampDescription'), " + + "StringField STRING OPTIONS(description='StringDescription'), " + + "BooleanField BOOLEAN OPTIONS(description='BooleanDescription') " + + ") AS SELECT DISTINCT * FROM %s", + tableName, tableNameSimple); + QueryJobConfiguration ddlConfig = + QueryJobConfiguration.newBuilder(ddlQuery).setDefaultDataset(DatasetId.of(DATASET)).build(); + TableResult result = bigquery.query(ddlConfig); + assertNotNull(result.getJobId()); + String dmlQuery = String.format("UPDATE %s.%s SET StringField = 'hello' WHERE TRUE", DATASET, tableName); QueryJobConfiguration dmlConfig = QueryJobConfiguration.newBuilder(dmlQuery).build(); @@ -5087,20 +5121,37 @@ void testDmlStatistics() throws InterruptedException { remoteJob = remoteJob.waitFor(); assertNull(remoteJob.getStatus().getError()); - TableResult result = remoteJob.getQueryResults(); - assertNotNull(result.getJobId()); - assertEquals(TABLE_SCHEMA, result.getSchema()); + TableResult resultAfterUpdate = remoteJob.getQueryResults(); + assertNotNull(resultAfterUpdate.getJobId()); + assertEquals(SIMPLE_TABLE_SCHEMA, resultAfterUpdate.getSchema()); Job queryJob = bigquery.getJob(remoteJob.getJobId()); + queryJob = queryJob.waitFor(); JobStatistics.QueryStatistics statistics = queryJob.getStatistics(); - assertEquals(2L, statistics.getNumDmlAffectedRows().longValue()); - assertEquals(2L, statistics.getDmlStats().getUpdatedRowCount().longValue()); + assertEquals(1L, statistics.getNumDmlAffectedRows().longValue()); + assertEquals(1L, statistics.getDmlStats().getUpdatedRowCount().longValue()); } /* TODO(prasmish): replicate the entire test case for executeSelect */ @Test void testTransactionInfo() throws InterruptedException { - String tableName = TABLE_ID_FAST_QUERY.getTable(); + // The transaction runs an update query. Clone the table to ensure that this doesn't impact + // other tests. + String tableName = generateTableName("test_table_transaction_info"); + String tableNameSimple = TABLE_ID_SIMPLE.getTable(); + String ddlQuery = + String.format( + "CREATE OR REPLACE TABLE %s (" + + "TimestampField TIMESTAMP OPTIONS(description='TimestampDescription'), " + + "StringField STRING OPTIONS(description='StringDescription'), " + + "BooleanField BOOLEAN OPTIONS(description='BooleanDescription') " + + ") AS SELECT DISTINCT * FROM %s", + tableName, tableNameSimple); + QueryJobConfiguration ddlConfig = + QueryJobConfiguration.newBuilder(ddlQuery).setDefaultDataset(DatasetId.of(DATASET)).build(); + TableResult result = bigquery.query(ddlConfig); + assertNotNull(result.getJobId()); + String transaction = String.format( "BEGIN TRANSACTION;\n" @@ -5913,7 +5964,7 @@ void testCopyJobStatistics() throws InterruptedException, TimeoutException { @Test void testSnapshotTableCopyJob() throws InterruptedException { String sourceTableName = "test_copy_job_base_table"; - String ddlTableName = TABLE_ID_DDL.getTable(); + String ddlTableName = TABLE_ID_SIMPLE.getTable(); // this creates a snapshot table at specified snapshotTime String snapshotTableName = "test_snapshot_table"; // Create source table with some data in it @@ -5930,7 +5981,7 @@ void testSnapshotTableCopyJob() throws InterruptedException { TableId sourceTableId = TableId.of(DATASET, sourceTableName); TableResult result = bigquery.query(ddlConfig); assertNotNull(result.getJobId()); - assertEquals(DDL_TABLE_SCHEMA, result.getSchema()); + assertEquals(SIMPLE_TABLE_SCHEMA, result.getSchema()); Table remoteTable = bigquery.getTable(DATASET, sourceTableName); assertNotNull(remoteTable); @@ -5952,7 +6003,7 @@ void testSnapshotTableCopyJob() throws InterruptedException { assertEquals(snapshotTableId.getDataset(), snapshotTable.getTableId().getDataset()); assertEquals(snapshotTableName, snapshotTable.getTableId().getTable()); assertTrue(snapshotTable.getDefinition() instanceof SnapshotTableDefinition); - assertEquals(DDL_TABLE_SCHEMA, snapshotTable.getDefinition().getSchema()); + assertEquals(SIMPLE_TABLE_SCHEMA, snapshotTable.getDefinition().getSchema()); assertNotNull(((SnapshotTableDefinition) snapshotTable.getDefinition()).getSnapshotTime()); assertEquals( sourceTableName, @@ -5978,7 +6029,7 @@ void testSnapshotTableCopyJob() throws InterruptedException { assertNotNull(restoredTable); assertEquals(restoredTableId.getDataset(), restoredTable.getTableId().getDataset()); assertEquals(restoredTableName, restoredTable.getTableId().getTable()); - assertEquals(DDL_TABLE_SCHEMA, restoredTable.getDefinition().getSchema()); + assertEquals(SIMPLE_TABLE_SCHEMA, restoredTable.getDefinition().getSchema()); assertEquals(snapshotTable.getNumBytes(), restoredTable.getNumBytes()); assertEquals(snapshotTable.getNumRows(), restoredTable.getNumRows()); @@ -6857,7 +6908,7 @@ void testCreateExternalTableWithReferenceFileSchemaParquet() { @Test void testCloneTableCopyJob() throws InterruptedException { String sourceTableName = "test_copy_job_base_table"; - String ddlTableName = TABLE_ID_DDL.getTable(); + String ddlTableName = TABLE_ID_SIMPLE.getTable(); String cloneTableName = "test_clone_table"; // Create source table with some data in it String ddlQuery = @@ -6873,7 +6924,7 @@ void testCloneTableCopyJob() throws InterruptedException { TableId sourceTableId = TableId.of(DATASET, sourceTableName); TableResult result = bigquery.query(ddlConfig); assertNotNull(result.getJobId()); - assertEquals(DDL_TABLE_SCHEMA, result.getSchema()); + assertEquals(SIMPLE_TABLE_SCHEMA, result.getSchema()); Table remoteTable = bigquery.getTable(DATASET, sourceTableName); assertNotNull(remoteTable); @@ -6897,7 +6948,7 @@ void testCloneTableCopyJob() throws InterruptedException { assertEquals(cloneTableName, cloneTable.getTableId().getTable()); assertEquals(TableDefinition.Type.TABLE, cloneTable.getDefinition().getType()); assertTrue(cloneTable.getDefinition() instanceof StandardTableDefinition); - assertEquals(DDL_TABLE_SCHEMA, cloneTable.getDefinition().getSchema()); + assertEquals(SIMPLE_TABLE_SCHEMA, cloneTable.getDefinition().getSchema()); assertTrue(cloneTable.getCloneDefinition() instanceof CloneDefinition); assertEquals(sourceTableName, cloneTable.getCloneDefinition().getBaseTableId().getTable()); assertNotNull(cloneTable.getCloneDefinition().getCloneTime()); diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java index 589f7ccda0ba..f66df17ab55a 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java @@ -26,14 +26,13 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; import java.time.Duration; -import java.util.concurrent.ExecutionException; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; @ExtendWith(MockitoExtension.class) -public class RemoteBigQueryHelperTest { +class RemoteBigQueryHelperTest { private static final String DATASET_NAME = "dataset-name"; private static final String PROJECT_ID = "project-id"; @@ -67,7 +66,7 @@ public class RemoteBigQueryHelperTest { private static final InputStream JSON_KEY_STREAM = new ByteArrayInputStream(JSON_KEY.getBytes()); @Test - public void testForceDelete() throws InterruptedException, ExecutionException { + void testForceDelete() { BigQuery bigqueryMock = Mockito.mock(BigQuery.class); Mockito.when(bigqueryMock.delete(DATASET_NAME, DatasetDeleteOption.deleteContents())) .thenReturn(true); @@ -76,15 +75,15 @@ public void testForceDelete() throws InterruptedException, ExecutionException { } @Test - public void testCreateFromStream() { + void testCreateFromStream() { RemoteBigQueryHelper helper = RemoteBigQueryHelper.create(PROJECT_ID, JSON_KEY_STREAM); BigQueryOptions options = helper.getOptions(); assertEquals(PROJECT_ID, options.getProjectId()); assertEquals(60000, ((HttpTransportOptions) options.getTransportOptions()).getConnectTimeout()); assertEquals(60000, ((HttpTransportOptions) options.getTransportOptions()).getReadTimeout()); assertEquals(10, options.getRetrySettings().getMaxAttempts()); - assertEquals(Duration.ofMillis(30000), options.getRetrySettings().getMaxRetryDelayDuration()); - assertEquals(Duration.ofMillis(120000), options.getRetrySettings().getTotalTimeoutDuration()); - assertEquals(Duration.ofMillis(250), options.getRetrySettings().getInitialRetryDelayDuration()); + assertEquals(Duration.ofMillis(1000), options.getRetrySettings().getMaxRetryDelayDuration()); + assertEquals(Duration.ofMillis(3000), options.getRetrySettings().getTotalTimeoutDuration()); + assertEquals(Duration.ofMillis(100), options.getRetrySettings().getInitialRetryDelayDuration()); } } From fab86281af519a8294f3385dccf9e17cbb56d21c Mon Sep 17 00:00:00 2001 From: Kirill Logachev Date: Thu, 15 Jan 2026 18:35:29 -0800 Subject: [PATCH 3373/3441] chore(jdbc): moving helper scripts & simplify dependencies (#4062) --- .gitignore | 6 +- google-cloud-bigquery-jdbc/Dockerfile | 21 ++++ google-cloud-bigquery-jdbc/Makefile | 140 ++++++++++++++++++++++++++ google-cloud-bigquery-jdbc/pom.xml | 92 +---------------- 4 files changed, 169 insertions(+), 90 deletions(-) create mode 100644 google-cloud-bigquery-jdbc/Dockerfile create mode 100644 google-cloud-bigquery-jdbc/Makefile diff --git a/.gitignore b/.gitignore index c94c87d10b3f..d5bcd47b2878 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,8 @@ __pycache__ SimpleBenchmarkApp/src/main/java/com/google/cloud/App.java .flattened-pom.xml # Local Test files -*ITLocalTest.java \ No newline at end of file +*ITLocalTest.java + +# JDBC-specific files +google-cloud-bigquery-jdbc/drivers/ +google-cloud-bigquery-jdbc/jacoco* \ No newline at end of file diff --git a/google-cloud-bigquery-jdbc/Dockerfile b/google-cloud-bigquery-jdbc/Dockerfile new file mode 100644 index 000000000000..f88cc5a4bc90 --- /dev/null +++ b/google-cloud-bigquery-jdbc/Dockerfile @@ -0,0 +1,21 @@ +FROM gcr.io/cloud-devrel-public-resources/java11 + +ENV JDBC_DOCKER_ENV=true +RUN apt-get update && apt-get install -y zip && rm -rf /var/lib/apt/lists/* + +RUN mkdir /tst +COPY ./pom.xml /src/pom.xml +COPY ./java.header /src/java.header +COPY ./license-checks.xml /src/license-checks.xml +COPY ./google-cloud-bigquery-jdbc/pom.xml /src/google-cloud-bigquery-jdbc/pom.xml + +COPY ./google-cloud-bigquery /src/google-cloud-bigquery +COPY ./google-cloud-bigquery-bom /src/google-cloud-bigquery-bom + + +WORKDIR /src +RUN mvn install -DskipTests + +WORKDIR /src/google-cloud-bigquery-jdbc + +ENTRYPOINT [] diff --git a/google-cloud-bigquery-jdbc/Makefile b/google-cloud-bigquery-jdbc/Makefile new file mode 100644 index 000000000000..f196596870c9 --- /dev/null +++ b/google-cloud-bigquery-jdbc/Makefile @@ -0,0 +1,140 @@ +CONTAINER_NAME=jdbc +PACKAGE_DESTINATION=$(PWD)/drivers +SRC="$(PWD)/.." +skipSurefire ?= true + +# no indendation for ifndef\endif due to their evaluation before execution +.check-env: | +ifndef GOOGLE_APPLICATION_CREDENTIALS + $(error GOOGLE_APPLICATION_CREDENTIALS is required to run tests) +endif + +install: + mvn clean install + +clean: + mvn clean + +lint: + mvn com.spotify.fmt:fmt-maven-plugin:format + +unittest: | + mvn -B -ntp \ + -DtrimStackTrace=false \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -Dtest=$(test) \ + test + +# Important: By default, this command will skip unittests. +# To include unit tests, run: make integration-test skipSurefire=false +integration-test: .check-env + mvn -B -ntp \ + -Penable-integration-tests \ + -DtrimStackTrace=false \ + -DskipSurefire=$(skipSurefire) \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -Dit.failIfNoSpecifiedTests=false \ + -Dit.test=$(test) \ + integration-test + +unit-test-coverage: + $(MAKE) unittest + mvn -B -ntp jacoco:report + BUILD_DIR=$$(mvn -B -ntp help:evaluate -Dexpression=project.build.directory -q -DforceStdout); \ + cd $$BUILD_DIR/site && zip -r $$OLDPWD/jacoco-unittests.zip jacoco && cd $$OLDPWD + +full-coverage: .check-env + $(MAKE) integration-test skipSurefire=false test=ITBigQueryJDBCTest,ITNightlyBigQueryTest + mvn -B -ntp jacoco:report + BUILD_DIR=$$(mvn -B -ntp help:evaluate -Dexpression=project.build.directory -q -DforceStdout); \ + cd $$BUILD_DIR/site && zip -r $$OLDPWD/jacoco-full.zip jacoco && cd $$OLDPWD + +package: + mvn clean package \ + -DincludeScope=runtime \ + -Dmaven.test.skip=true + mvn dependency:copy-dependencies \ + -DincludeScope=runtime + ${MAKE} generate-dependency-list + +package-all-dependencies: + mvn package \ + -DincludeScope=runtime \ + -Dmaven.test.skip=true \ + -P=release-all-dependencies + +package-all-dependencies-shaded: + mvn package \ + -DincludeScope=runtime \ + -Dmaven.test.skip=true \ + -P=release-all-dependencies,release-all-dependencies-shaded + +generate-dependency-list: + mvn -B dependency:list \ + -f pom.xml \ + -DincludeScope=runtime | grep :jar: | sed -E "s/^.* ([^: ]+):([^:]+):([^:]+):([^:]+).*/\1<\/groupId>\2<\/artifactId>\4<\/version><\/dependency>/g" > dependencies.txt + +# Commands for dockerized environments +.docker-run: | + docker run -it \ + -v $(GOOGLE_APPLICATION_CREDENTIALS):/auth/application_creds.json \ + -v "$(GOOGLE_APPLICATION_CREDENTIALS).p12":/auth/application_creds.p12 \ + -e "GOOGLE_APPLICATION_CREDENTIALS=/auth/application_creds.json" \ + -v $(SRC):/src \ + -e "SA_EMAIL=test_email" \ + -e "SA_SECRET=/auth/application_creds.json" \ + -e "SA_SECRET_P12=/auth/application_creds.p12" \ + $(CONTAINER_NAME) $(args) + +docker-build: + docker build -t $(CONTAINER_NAME) -f Dockerfile .. + +docker-session: + $(MAKE) .docker-run args="bash" + +docker-package-all-dependencies: docker-build + mkdir -p $(PACKAGE_DESTINATION) + docker run \ + -v $(SRC):/src \ + -v $(PACKAGE_DESTINATION):/pkg \ + $(CONTAINER_NAME) \ + sh -c "make package-all-dependencies && \ + cp --no-preserve=ownership /mvn/test-target/google-cloud-bigquery-jdbc-*.jar /pkg && \ + rm -f /pkg/*tests.jar" + +docker-package-all-dependencies-shaded: docker-build + mkdir -p $(PACKAGE_DESTINATION) + docker run \ + -v $(SRC):/src \ + -v $(PACKAGE_DESTINATION):/pkg \ + $(CONTAINER_NAME) \ + sh -c "make package-all-dependencies-shaded && \ + cp --no-preserve=ownership /mvn/test-target/google-cloud-bigquery-jdbc-*.jar /pkg && \ + rm -f /pkg/*tests.jar" + +docker-package: docker-build + mkdir -p $(PACKAGE_DESTINATION) + docker run \ + -v $(SRC):/src \ + -v $(PACKAGE_DESTINATION):/pkg \ + $(CONTAINER_NAME) \ + sh -c "make package && \ + mkdir -p /tmp/package && \ + cp --no-preserve=ownership /mvn/test-target/google-cloud-bigquery-jdbc-*.jar /tmp/package && \ + rm -f /pkg/*tests.jar && \ + cp --no-preserve=ownership dependencies.txt /tmp/package && \ + rm dependencies.txt && \ + cp --no-preserve=ownership /mvn/test-target/dependency/*.jar /tmp/package && \ + zip -j -r /pkg/google-cloud-bigquery-jdbc-$$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout).zip /tmp/package" + +docker-unittest: | + $(MAKE) .docker-run args="make unittest test=$(test)" + +docker-integration-test: .check-env + $(MAKE) .docker-run args="make integration-test test=$(test) skipSurefire=$(skipSurefire)" + +docker-coverage: + $(MAKE) .docker-run args="make unit-test-coverage" + $(MAKE) .docker-run args="make full-coverage" \ No newline at end of file diff --git a/google-cloud-bigquery-jdbc/pom.xml b/google-cloud-bigquery-jdbc/pom.xml index a697ba101761..677437794b88 100644 --- a/google-cloud-bigquery-jdbc/pom.xml +++ b/google-cloud-bigquery-jdbc/pom.xml @@ -20,7 +20,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-jdbc - 0.1.0 + 0.1.0-SNAPSHOT jar BigQuery JDBC https://github.com/googleapis/java-bigquery-jdbc @@ -60,8 +60,8 @@ com.google.cloud - google-cloud-bigquery-jdbc-parent - 0.1.0 + google-cloud-bigquery-parent + 2.57.2-SNAPSHOT @@ -72,72 +72,6 @@ com.google.cloud google-cloud-bigquerystorage - - com.google.api - api-common - - - org.apache.arrow - arrow-vector - - - com.google.guava - guava - - - com.google.cloud - google-cloud-core - - - com.google.api - gax - - - com.google.auth - google-auth-library-oauth2-http - - - com.google.auth - google-auth-library-credentials - - - - - org.apache.arrow - arrow-memory-core - - - org.apache.arrow - arrow-memory-netty - - - com.google.protobuf - protobuf-java - - - com.google.api.grpc - proto-google-cloud-bigquerystorage-v1 - - - com.google.code.gson - gson - - - com.google.code.findbugs - jsr305 - - - org.apache.httpcomponents.core5 - httpcore5 - - - org.apache.httpcomponents.client5 - httpclient5 - - - com.google.http-client - google-http-client - com.google.http-client google-http-client-apache-v5 @@ -152,26 +86,6 @@ - - com.google.cloud - google-cloud-core-http - - - com.google.api - gax-grpc - - - io.grpc - grpc-api - - - io.grpc - grpc-netty-shaded - - - io.grpc - grpc-core - com.google.truth From a8aef5ab71c93229cfed87a22df47d60e9aa3de0 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Fri, 16 Jan 2026 13:31:19 -0500 Subject: [PATCH 3374/3441] chore: Fix flaky testListTablesWithPartitioning test (#4068) * chore: Fix flaky testListTablesWithPartitioning test * chore: Fix test comment * chore: Fix typo to partitionType --- .../cloud/bigquery/it/ITBigQueryTest.java | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index d41ccc0e12aa..68079ddcafb4 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -219,7 +219,6 @@ class ITBigQueryTest { private static final byte[] BYTES = {0xD, 0xE, 0xA, 0xD}; private static final String BYTES_BASE64 = BaseEncoding.base64().encode(BYTES); - private static final Long EXPIRATION_MS = 86400000L; private static final Logger LOG = Logger.getLogger(ITBigQueryTest.class.getName()); private static final String DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String UK_DATASET = RemoteBigQueryHelper.generateDatasetName(); @@ -2626,12 +2625,13 @@ void testListTables() { @Test void testListTablesWithPartitioning() { + long expirationMs = 86400000L; + Type partitionType = Type.DAY; String tableName = "test_list_tables_partitioning"; - TimePartitioning timePartitioning = TimePartitioning.of(Type.DAY, EXPIRATION_MS); StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder() .setSchema(TABLE_SCHEMA) - .setTimePartitioning(timePartitioning) + .setTimePartitioning(TimePartitioning.of(partitionType, expirationMs)) .build(); TableInfo tableInfo = TableInfo.of(TableId.of(DATASET, tableName), tableDefinition); Table createdPartitioningTable = bigquery.create(tableInfo); @@ -2639,16 +2639,25 @@ void testListTablesWithPartitioning() { try { Page

  • tables = bigquery.listTables(DATASET); boolean found = false; - Iterator
    tableIterator = tables.getValues().iterator(); - while (tableIterator.hasNext() && !found) { - StandardTableDefinition standardTableDefinition = tableIterator.next().getDefinition(); - if (standardTableDefinition.getTimePartitioning() != null - && standardTableDefinition.getTimePartitioning().getType().equals(Type.DAY) - && standardTableDefinition - .getTimePartitioning() - .getExpirationMs() - .equals(EXPIRATION_MS)) { + for (Table table : tables.getValues()) { + // Look for the table that matches the newly partitioned table. Other tables in the + // dataset may not be partitioned or may be partitioned but may not be expiring + // (e.g. `null` expirationMs). + if (!table + .getTableId() + .getTable() + .equals(createdPartitioningTable.getTableId().getTable())) { + continue; + } + + StandardTableDefinition standardTableDefinition = table.getDefinition(); + TimePartitioning timePartitioning = standardTableDefinition.getTimePartitioning(); + assertNotNull(timePartitioning); + assertNotNull(timePartitioning.getExpirationMs()); + if (timePartitioning.getType().equals(partitionType) + && timePartitioning.getExpirationMs().equals(expirationMs)) { found = true; + break; } } assertTrue(found); From 2af2b2b769dbfa61068365e6cb7c4e0eea5fa530 Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 19 Jan 2026 10:55:41 -0500 Subject: [PATCH 3375/3441] chore(main): release 2.57.2 (#4044) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 13 +++++++++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery-jdbc/pom.xml | 2 +- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 2 +- 8 files changed, 23 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 469bc0b33d39..f1ac8d1c60c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [2.57.2](https://github.com/googleapis/java-bigquery/compare/v2.57.1...v2.57.2) (2026-01-16) + + +### Bug Fixes + +* Gracefully handle thread interruption in ConnectionImpl to preve… ([#4047](https://github.com/googleapis/java-bigquery/issues/4047)) ([031deb0](https://github.com/googleapis/java-bigquery/commit/031deb00f153b47d37655b025fcef298a3db0e0b)) +* Job.isDone() uses Job.Status.State if available ([#4039](https://github.com/googleapis/java-bigquery/issues/4039)) ([fa0a12e](https://github.com/googleapis/java-bigquery/commit/fa0a12e3cf171abab528c318ba3f4260b69a5274)) + + +### Documentation + +* Add specific samples for creating and query timestamps ([#4051](https://github.com/googleapis/java-bigquery/issues/4051)) ([fac16a8](https://github.com/googleapis/java-bigquery/commit/fac16a8eb05a6e13e406feeb9761259cdbf8e674)) + ## [2.57.1](https://github.com/googleapis/java-bigquery/compare/v2.57.0...v2.57.1) (2025-12-12) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 41e1a2fcb3e7..2e0e6f6bab1e 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.57.2-SNAPSHOT + 2.57.2 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 52ea2c14be08..7177694c6205 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.57.2-SNAPSHOT + 2.57.2 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.57.2-SNAPSHOT + 2.57.2 diff --git a/google-cloud-bigquery-jdbc/pom.xml b/google-cloud-bigquery-jdbc/pom.xml index 677437794b88..8f2c9d7b4986 100644 --- a/google-cloud-bigquery-jdbc/pom.xml +++ b/google-cloud-bigquery-jdbc/pom.xml @@ -61,7 +61,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.57.2-SNAPSHOT + 2.57.2 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 174bb9cb36f7..6b4661fb600c 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.57.2-SNAPSHOT + 2.57.2 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.57.2-SNAPSHOT + 2.57.2 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2929f8a9f5a3..cd13b20082ba 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.57.2-SNAPSHOT + 2.57.2 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.57.2-SNAPSHOT + 2.57.2 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index e10b51dc7d42..f7ff76844c1c 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.57.2-SNAPSHOT + 2.57.2 diff --git a/versions.txt b/versions.txt index 507619351d56..54f6252b106b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,4 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.57.1:2.57.2-SNAPSHOT \ No newline at end of file +google-cloud-bigquery:2.57.2:2.57.2 \ No newline at end of file From bd5835f130f3f27f357d234cc70bc27aa8393baa Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Tue, 20 Jan 2026 17:27:55 -0500 Subject: [PATCH 3376/3441] chore: Fix flaky range partition test (#4072) * chore: Fix flaky range partition test * chore: assert only on matching partition table * chore: Add logic to check if table is found * chore: create unique datasets for each test * chore: Remove unused OTHER_DATASET * chore: Add try-finally to ensure dataset is deleted --- .../cloud/bigquery/it/ITBigQueryTest.java | 138 ++++++++++-------- 1 file changed, 77 insertions(+), 61 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index 68079ddcafb4..e6f403c5d0ce 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -223,7 +223,6 @@ class ITBigQueryTest { private static final String DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String UK_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String DESCRIPTION = "Test dataset"; - private static final String OTHER_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String MODEL_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String ROUTINE_DATASET = RemoteBigQueryHelper.generateDatasetName(); private static final String PROJECT_ID = ServiceOptions.getDefaultProjectId(); @@ -1190,7 +1189,6 @@ static void afterClass() throws Exception { if (bigquery != null) { RemoteBigQueryHelper.forceDelete(bigquery, DATASET); RemoteBigQueryHelper.forceDelete(bigquery, UK_DATASET); - RemoteBigQueryHelper.forceDelete(bigquery, OTHER_DATASET); RemoteBigQueryHelper.forceDelete(bigquery, MODEL_DATASET); RemoteBigQueryHelper.forceDelete(bigquery, ROUTINE_DATASET); } @@ -1347,67 +1345,76 @@ void testGetDatasetWithAccessPolicyVersion() throws IOException { @Test void testUpdateDataset() { + String datasetName = RemoteBigQueryHelper.generateDatasetName(); Dataset dataset = bigquery.create( - DatasetInfo.newBuilder(OTHER_DATASET) + DatasetInfo.newBuilder(datasetName) .setDescription("Some Description") .setLabels(Collections.singletonMap("a", "b")) .build()); - assertThat(dataset).isNotNull(); - assertThat(dataset.getDatasetId().getProject()).isEqualTo(bigquery.getOptions().getProjectId()); - assertThat(dataset.getDatasetId().getDataset()).isEqualTo(OTHER_DATASET); - assertThat(dataset.getDescription()).isEqualTo("Some Description"); - assertThat(dataset.getLabels()).containsExactly("a", "b"); - assertThat(dataset.getStorageBillingModel()).isNull(); - assertThat(dataset.getMaxTimeTravelHours()).isNull(); - - Map updateLabels = new HashMap<>(); - updateLabels.put("x", "y"); - updateLabels.put("a", null); - Dataset updatedDataset = - bigquery.update( - dataset.toBuilder() - .setDescription("Updated Description") - .setLabels(updateLabels) - .setStorageBillingModel("LOGICAL") - .setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS) - .build()); - assertThat(updatedDataset.getDescription()).isEqualTo("Updated Description"); - assertThat(updatedDataset.getLabels()).containsExactly("x", "y"); - assertThat(updatedDataset.getStorageBillingModel()).isEqualTo("LOGICAL"); - assertThat(updatedDataset.getMaxTimeTravelHours()).isEqualTo(MAX_TIME_TRAVEL_HOURS); - - updatedDataset = bigquery.update(updatedDataset.toBuilder().setLabels(null).build()); - assertThat(updatedDataset.getLabels()).isEmpty(); - assertThat(dataset.delete()).isTrue(); + try { + assertThat(dataset).isNotNull(); + assertThat(dataset.getDatasetId().getProject()) + .isEqualTo(bigquery.getOptions().getProjectId()); + assertThat(dataset.getDatasetId().getDataset()).isEqualTo(datasetName); + assertThat(dataset.getDescription()).isEqualTo("Some Description"); + assertThat(dataset.getLabels()).containsExactly("a", "b"); + assertThat(dataset.getStorageBillingModel()).isNull(); + assertThat(dataset.getMaxTimeTravelHours()).isNull(); + + Map updateLabels = new HashMap<>(); + updateLabels.put("x", "y"); + updateLabels.put("a", null); + Dataset updatedDataset = + bigquery.update( + dataset.toBuilder() + .setDescription("Updated Description") + .setLabels(updateLabels) + .setStorageBillingModel("LOGICAL") + .setMaxTimeTravelHours(MAX_TIME_TRAVEL_HOURS) + .build()); + assertThat(updatedDataset.getDescription()).isEqualTo("Updated Description"); + assertThat(updatedDataset.getLabels()).containsExactly("x", "y"); + assertThat(updatedDataset.getStorageBillingModel()).isEqualTo("LOGICAL"); + assertThat(updatedDataset.getMaxTimeTravelHours()).isEqualTo(MAX_TIME_TRAVEL_HOURS); + + updatedDataset = bigquery.update(updatedDataset.toBuilder().setLabels(null).build()); + assertThat(updatedDataset.getLabels()).isEmpty(); + } finally { + dataset.delete(); + } } @Test void testUpdateDatasetWithSelectedFields() { + String datasetName = RemoteBigQueryHelper.generateDatasetName(); Dataset dataset = bigquery.create( - DatasetInfo.newBuilder(OTHER_DATASET).setDescription("Some Description").build()); - assertNotNull(dataset); - assertEquals(bigquery.getOptions().getProjectId(), dataset.getDatasetId().getProject()); - assertEquals(OTHER_DATASET, dataset.getDatasetId().getDataset()); - assertEquals("Some Description", dataset.getDescription()); - Dataset updatedDataset = - bigquery.update( - dataset.toBuilder().setDescription("Updated Description").build(), - DatasetOption.fields(DatasetField.DESCRIPTION)); - assertEquals("Updated Description", updatedDataset.getDescription()); - assertNull(updatedDataset.getCreationTime()); - assertNull(updatedDataset.getDefaultTableLifetime()); - assertNull(updatedDataset.getAcl()); - assertNull(updatedDataset.getEtag()); - assertNull(updatedDataset.getFriendlyName()); - assertNull(updatedDataset.getGeneratedId()); - assertNull(updatedDataset.getLastModified()); - assertNull(updatedDataset.getLocation()); - assertNull(updatedDataset.getSelfLink()); - assertNull(updatedDataset.getStorageBillingModel()); - assertNull(updatedDataset.getMaxTimeTravelHours()); - assertTrue(dataset.delete()); + DatasetInfo.newBuilder(datasetName).setDescription("Some Description").build()); + try { + assertNotNull(dataset); + assertEquals(bigquery.getOptions().getProjectId(), dataset.getDatasetId().getProject()); + assertEquals(datasetName, dataset.getDatasetId().getDataset()); + assertEquals("Some Description", dataset.getDescription()); + Dataset updatedDataset = + bigquery.update( + dataset.toBuilder().setDescription("Updated Description").build(), + DatasetOption.fields(DatasetField.DESCRIPTION)); + assertEquals("Updated Description", updatedDataset.getDescription()); + assertNull(updatedDataset.getCreationTime()); + assertNull(updatedDataset.getDefaultTableLifetime()); + assertNull(updatedDataset.getAcl()); + assertNull(updatedDataset.getEtag()); + assertNull(updatedDataset.getFriendlyName()); + assertNull(updatedDataset.getGeneratedId()); + assertNull(updatedDataset.getLastModified()); + assertNull(updatedDataset.getLocation()); + assertNull(updatedDataset.getSelfLink()); + assertNull(updatedDataset.getStorageBillingModel()); + assertNull(updatedDataset.getMaxTimeTravelHours()); + } finally { + dataset.delete(); + } } @Test @@ -2680,17 +2687,26 @@ void testListTablesWithRangePartitioning() { try { Page
    tables = bigquery.listTables(DATASET); boolean found = false; - Iterator
    tableIterator = tables.getValues().iterator(); - while (tableIterator.hasNext() && !found) { - StandardTableDefinition standardTableDefinition = tableIterator.next().getDefinition(); - if (standardTableDefinition.getRangePartitioning() != null) { - assertEquals(RANGE_PARTITIONING, standardTableDefinition.getRangePartitioning()); - assertEquals(RANGE, standardTableDefinition.getRangePartitioning().getRange()); - assertEquals("IntegerField", standardTableDefinition.getRangePartitioning().getField()); - found = true; + for (Table table : tables.getValues()) { + // Look for the table that matches the newly partitioned table. Other tables in the + // dataset may not be partitioned and cannot match to them. + if (!table + .getTableId() + .getTable() + .equals(createdRangePartitioningTable.getTableId().getTable())) { + continue; } + + StandardTableDefinition standardTableDefinition = table.getDefinition(); + RangePartitioning rangePartitioning = standardTableDefinition.getRangePartitioning(); + assertNotNull(rangePartitioning); + assertEquals(RANGE_PARTITIONING, rangePartitioning); + assertEquals(RANGE, rangePartitioning.getRange()); + assertEquals("IntegerField", rangePartitioning.getField()); + found = true; + break; } - assertTrue(found); + assertTrue(found, "Created range partitioned table was not found in the dataset list."); } finally { createdRangePartitioningTable.delete(); } From e3eeb949a6a0de9f9652f98b835ea816b3836d70 Mon Sep 17 00:00:00 2001 From: Kirill Logachev Date: Wed, 21 Jan 2026 10:58:03 -0800 Subject: [PATCH 3377/3441] chore(jdbc): JDBC presubmit & nightly pipelines (#4066) --- .cloudbuild/jdbc_nightly.yaml | 46 +++++++++++++ .cloudbuild/jdbc_presubmit.yaml | 41 +++++++++++ .kokoro/build.sh | 33 ++++++++- google-cloud-bigquery-jdbc/pom.xml | 105 ++++++++++++++++++++++++++++- pom.xml | 2 +- versions.txt | 3 +- 6 files changed, 226 insertions(+), 4 deletions(-) create mode 100644 .cloudbuild/jdbc_nightly.yaml create mode 100644 .cloudbuild/jdbc_presubmit.yaml diff --git a/.cloudbuild/jdbc_nightly.yaml b/.cloudbuild/jdbc_nightly.yaml new file mode 100644 index 000000000000..bd3dc2ce52b1 --- /dev/null +++ b/.cloudbuild/jdbc_nightly.yaml @@ -0,0 +1,46 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# Github action job to test core java library features on +# downstream client libraries before they are released. +options: + workerPool: 'projects/bigquery-devtools-drivers/locations/us-east1/workerPools/java-bigquery-jdbc-pool' + dynamic_substitutions: true + logging: CLOUD_LOGGING_ONLY + +timeout: 10000s +steps: +- name: 'gcr.io/cloud-devrel-public-resources/java11' + id: "IT Tests" + timeout: 10000s + entrypoint: 'bash' + args: ['.kokoro/build.sh'] + env: + - 'JOB_TYPE=jdbc-integration' + secretEnv: ['SA_EMAIL', 'KMS_RESOURCE_PATH', 'SA_SECRET'] +- name: 'gcr.io/cloud-devrel-public-resources/java11' + id: "IT Nightly Tests" + timeout: 10000s + entrypoint: 'bash' + args: ['.kokoro/build.sh'] + env: + - 'JOB_TYPE=jdbc-nightly-integration' + +availableSecrets: + secretManager: + - versionName: projects/$PROJECT_ID/secrets/jdbc-presubmit-sa-email/versions/latest + env: 'SA_EMAIL' + - versionName: projects/$PROJECT_ID/secrets/kms_resource_path/versions/latest + env: 'KMS_RESOURCE_PATH' + - versionName: projects/$PROJECT_ID/secrets/GoogleJDBCServiceAccountSecret/versions/latest + env: 'SA_SECRET' diff --git a/.cloudbuild/jdbc_presubmit.yaml b/.cloudbuild/jdbc_presubmit.yaml new file mode 100644 index 000000000000..c5896967ef89 --- /dev/null +++ b/.cloudbuild/jdbc_presubmit.yaml @@ -0,0 +1,41 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# Github action job to test core java library features on +# downstream client libraries before they are released. +options: + workerPool: 'projects/bigquery-devtools-drivers/locations/us-east1/workerPools/java-bigquery-jdbc-pool' + dynamic_substitutions: true + logging: CLOUD_LOGGING_ONLY + +substitutions: + _JOB_TYPE: "jdbc-integration" + +timeout: 2000s +steps: +- name: 'gcr.io/cloud-devrel-public-resources/java11' + id: "IT Tests" + timeout: 2000s + entrypoint: 'bash' + args: ['.kokoro/build.sh'] + env: + - 'JOB_TYPE=${_JOB_TYPE}' + secretEnv: ['SA_EMAIL', 'KMS_RESOURCE_PATH', 'SA_SECRET'] +availableSecrets: + secretManager: + - versionName: projects/$PROJECT_ID/secrets/jdbc-presubmit-sa-email/versions/latest + env: 'SA_EMAIL' + - versionName: projects/$PROJECT_ID/secrets/kms_resource_path/versions/latest + env: 'KMS_RESOURCE_PATH' + - versionName: projects/$PROJECT_ID/secrets/GoogleJDBCServiceAccountSecret/versions/latest + env: 'SA_SECRET' diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 084b07b25b5f..9c1dfeeb3d36 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -61,6 +61,7 @@ javadoc) ;; integration) mvn -B ${INTEGRATION_TEST_ARGS} \ + -pl "!google-cloud-bigquery-jdbc" \ -ntp \ -Penable-integration-tests \ -DtrimStackTrace=false \ @@ -70,9 +71,39 @@ integration) verify RETURN_CODE=$? ;; +jdbc-integration) + mvn -B ${INTEGRATION_TEST_ARGS} \ + -pl "google-cloud-bigquery-jdbc" \ + -ntp \ + -Dtest=ITBigQueryJDBCTest \ + -DtrimStackTrace=false \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -fae \ + verify + RETURN_CODE=$? + ;; +jdbc-nightly-integration) + mvn -B ${INTEGRATION_TEST_ARGS} \ + -pl "google-cloud-bigquery-jdbc" \ + -ntp \ + -Dtest=ITNightlyBigQueryTest \ + -DtrimStackTrace=false \ + -Dclirr.skip=true \ + -Denforcer.skip=true \ + -fae \ + -DargLine="-Xmx32g" \ + -e \ + verify + RETURN_CODE=$? + ;; graalvm) # Run Unit and Integration Tests with Native Image - mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative test + mvn -B ${INTEGRATION_TEST_ARGS} \ + -pl "!google-cloud-bigquery-jdbc" \ + -ntp \ + -Pnative \ + test RETURN_CODE=$? ;; samples) diff --git a/google-cloud-bigquery-jdbc/pom.xml b/google-cloud-bigquery-jdbc/pom.xml index 8f2c9d7b4986..74fc627e271c 100644 --- a/google-cloud-bigquery-jdbc/pom.xml +++ b/google-cloud-bigquery-jdbc/pom.xml @@ -20,7 +20,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-jdbc - 0.1.0-SNAPSHOT + 0.1.0 jar BigQuery JDBC https://github.com/googleapis/java-bigquery-jdbc @@ -55,6 +55,18 @@ jacoco-maven-plugin 0.8.13 + + org.apache.maven.plugins + maven-dependency-plugin + + + com.google.*:* + org.apache.arrow:* + org.apache.httpcomponents.*:* + io.grpc:* + + + @@ -86,6 +98,97 @@ + + + + com.google.api + api-common + + + com.google.api + gax + + + com.google.api + gax-grpc + + + com.google.api.grpc + proto-google-cloud-bigquerystorage-v1 + + + + com.google.auth + google-auth-library-oauth2-http + + + com.google.auth + google-auth-library-credentials + + + + com.google.cloud + google-cloud-core + + + com.google.cloud + google-cloud-core-http + + + + com.google.code.findbugs + jsr305 + + + com.google.code.gson + gson + + + + com.google.guava + guava + + + + com.google.protobuf + protobuf-java + + + com.google.http-client + google-http-client + + + + io.grpc + grpc-api + + + io.grpc + grpc-core + + + io.grpc + grpc-netty-shaded + + + + + org.apache.arrow + arrow-vector + + + org.apache.arrow + arrow-memory-core + + + org.apache.httpcomponents.client5 + httpclient5 + + + org.apache.httpcomponents.core5 + httpcore5 + + com.google.truth diff --git a/pom.xml b/pom.xml index cd13b20082ba..9821f1b68385 100644 --- a/pom.xml +++ b/pom.xml @@ -153,6 +153,7 @@ google-cloud-bigquery google-cloud-bigquery-bom + google-cloud-bigquery-jdbc @@ -259,4 +260,3 @@ - diff --git a/versions.txt b/versions.txt index 54f6252b106b..8f898d85ed84 100644 --- a/versions.txt +++ b/versions.txt @@ -1,4 +1,5 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.57.2:2.57.2 \ No newline at end of file +google-cloud-bigquery:2.57.2:2.57.2 +google-cloud-bigquery-jdbc:0.1.0:0.1.0 From 6b4081dd3b1d7b53a295acf0dc270aeb84100c55 Mon Sep 17 00:00:00 2001 From: Lawrence Qiu Date: Wed, 21 Jan 2026 16:04:28 -0500 Subject: [PATCH 3378/3441] chore: Add IT for positional parameter on higher precision timestamp field (#4075) * chore: Add IT for positional parameter on higher precision timestamp field * chore: Fix gemini comments * chore: Fix typo --- .../bigquery/it/ITHighPrecisionTimestamp.java | 88 ++++++++++++------- 1 file changed, 54 insertions(+), 34 deletions(-) diff --git a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java index 4942c300832b..e4dc534f9e20 100644 --- a/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java +++ b/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java @@ -15,6 +15,7 @@ */ package com.google.cloud.bigquery.it; +import static com.google.common.truth.Truth.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; @@ -51,14 +52,14 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -public class ITHighPrecisionTimestamp { +class ITHighPrecisionTimestamp { - public static final String TEST_HIGH_PRECISION_TIMESTAMP_TABLE_NAME = - "test_high_precision_timestamp"; + private static final String TEST_HIGH_PRECISION_TIMESTAMP_TABLE_NAME = + generateTempTableName("test_high_precision_timestamp"); private static BigQuery bigquery; private static final String DATASET = RemoteBigQueryHelper.generateDatasetName(); private static TableId defaultTableId; - public static final long TIMESTAMP_PICOSECOND_PRECISION = 12L; + private static final long TIMESTAMP_PICOSECOND_PRECISION = 12L; private static final Field TIMESTAMP_HIGH_PRECISION_FIELD_SCHEMA = Field.newBuilder("timestampHighPrecisionField", StandardSQLTypeName.TIMESTAMP) .setTimestampPrecision(TIMESTAMP_PICOSECOND_PRECISION) @@ -69,8 +70,12 @@ public class ITHighPrecisionTimestamp { private static final String TIMESTAMP2 = "1970-01-01T12:34:56.123456789123Z"; private static final String TIMESTAMP3 = "2000-01-01T12:34:56.123456789123Z"; + private static String generateTempTableName(String prefix) { + return String.format("%s_%s", prefix, UUID.randomUUID().toString().substring(0, 8)); + } + @BeforeAll - public static void beforeClass() { + static void beforeClass() { BigQueryOptions.Builder builder = BigQueryOptions.newBuilder() .setDataFormatOptions( @@ -111,21 +116,15 @@ public static void beforeClass() { } @AfterAll - public static void afterClass() { + static void afterClass() { if (bigquery != null) { bigquery.delete(defaultTableId); RemoteBigQueryHelper.forceDelete(bigquery, DATASET); } } - private static String generateTempTableName() { - return String.format( - "insert_temp_%s%s", - UUID.randomUUID().toString().substring(0, 6), TEST_HIGH_PRECISION_TIMESTAMP_TABLE_NAME); - } - @Test - public void query_highPrecisionTimestamp() throws InterruptedException { + void query_highPrecisionTimestamp() throws InterruptedException { String sql = String.format("SELECT timestampHighPrecisionField FROM %s;", defaultTableId.getTable()); QueryJobConfiguration queryJobConfiguration = @@ -141,16 +140,14 @@ public void query_highPrecisionTimestamp() throws InterruptedException { .map(x -> (String) x.get(0).getValue()) .collect(Collectors.toList()); assertEquals(expected.length, timestamps.size()); - for (int i = 0; i < timestamps.size(); i++) { - assertEquals(expected[i], timestamps.get(i)); - } + assertThat(timestamps).containsAtLeastElementsIn(expected); } @Test - public void insert_highPrecisionTimestamp_ISOValidFormat() { + void insert_highPrecisionTimestamp_ISOValidFormat() { StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder().setSchema(TABLE_SCHEMA).build(); - String tempTableName = generateTempTableName(); + String tempTableName = generateTempTableName("insert_temp"); TableId tableId = TableId.of(DATASET, tempTableName); Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); assertNotNull(createdTable); @@ -166,10 +163,10 @@ public void insert_highPrecisionTimestamp_ISOValidFormat() { } @Test - public void insert_highPrecisionTimestamp_invalidFormats() { + void insert_highPrecisionTimestamp_invalidFormats() { StandardTableDefinition tableDefinition = StandardTableDefinition.newBuilder().setSchema(TABLE_SCHEMA).build(); - String tempTable = generateTempTableName(); + String tempTable = generateTempTableName("insert_temp"); TableId tableId = TableId.of(DATASET, tempTable); Table createdTable = bigquery.create(TableInfo.of(tableId, tableDefinition)); assertNotNull(createdTable); @@ -207,7 +204,7 @@ public void insert_highPrecisionTimestamp_invalidFormats() { } @Test - public void queryNamedParameter_highPrecisionTimestamp() throws InterruptedException { + void queryNamedParameter_highPrecisionTimestamp() throws InterruptedException { String query = String.format( "SELECT * FROM %s.%s WHERE timestampHighPrecisionField >= CAST(@timestampParam AS TIMESTAMP(12))", @@ -219,6 +216,7 @@ public void queryNamedParameter_highPrecisionTimestamp() throws InterruptedExcep .setUseLegacySql(false) .addNamedParameter( "timestampParam", + // For named parameters, java-bigquery does not expect the 'T' QueryParameterValue.timestamp("2000-01-01 12:34:56.123456789123Z")) .build(); @@ -230,13 +228,38 @@ public void queryNamedParameter_highPrecisionTimestamp() throws InterruptedExcep .map(x -> (String) x.get(0).getValue()) .collect(Collectors.toList()); assertEquals(expected.length, timestamps.size()); - for (int i = 0; i < timestamps.size(); i++) { - assertEquals(expected[i], timestamps.get(i)); - } + assertThat(timestamps).containsAtLeastElementsIn(expected); + } + + @Test + void queryPositionalParameter_highPrecisionTimestamp() throws InterruptedException { + String query = + String.format( + "SELECT * FROM %s.%s WHERE timestampHighPrecisionField >= CAST(? AS TIMESTAMP(12))", + DATASET, defaultTableId.getTable()); + + QueryJobConfiguration queryConfig = + QueryJobConfiguration.newBuilder(query) + .setDefaultDataset(DATASET) + .setUseLegacySql(false) + .addPositionalParameter( + // For positional parameters, java-bigquery does not expect the 'T' + QueryParameterValue.timestamp("2000-01-01 12:34:56.123456789123Z")) + .build(); + + TableResult result = bigquery.query(queryConfig); + assertNotNull(result); + String[] expected = new String[] {TIMESTAMP1, TIMESTAMP3}; + List timestamps = + StreamSupport.stream(result.getValues().spliterator(), false) + .map(x -> (String) x.get(0).getValue()) + .collect(Collectors.toList()); + assertEquals(expected.length, timestamps.size()); + assertThat(timestamps).containsAtLeastElementsIn(expected); } @Test - public void queryNamedParameter_highPrecisionTimestamp_microsLong() throws InterruptedException { + void queryNamedParameter_highPrecisionTimestamp_microsLong() throws InterruptedException { String query = String.format( "SELECT * FROM %s.%s WHERE timestampHighPrecisionField >= CAST(@timestampParam AS TIMESTAMP(12))", @@ -263,14 +286,11 @@ public void queryNamedParameter_highPrecisionTimestamp_microsLong() throws Inter .map(x -> (String) x.get(0).getValue()) .collect(Collectors.toList()); assertEquals(expected.length, timestamps.size()); - for (int i = 0; i < timestamps.size(); i++) { - assertEquals(expected[i], timestamps.get(i)); - } + assertThat(timestamps).containsAtLeastElementsIn(expected); } @Test - public void queryNamedParameter_highPrecisionTimestamp_microsISOString() - throws InterruptedException { + void queryNamedParameter_highPrecisionTimestamp_microsISOString() throws InterruptedException { String query = String.format( "SELECT * FROM %s.%s WHERE timestampHighPrecisionField >= CAST(@timestampParam AS TIMESTAMP(12))", @@ -281,6 +301,7 @@ public void queryNamedParameter_highPrecisionTimestamp_microsISOString() .setDefaultDataset(DATASET) .setUseLegacySql(false) .addNamedParameter( + // For named parameters, java-bigquery does not expect the 'T' "timestampParam", QueryParameterValue.timestamp("2000-01-01 12:34:56.123456Z")) .build(); @@ -292,13 +313,11 @@ public void queryNamedParameter_highPrecisionTimestamp_microsISOString() .collect(Collectors.toList()); String[] expected = new String[] {TIMESTAMP1, TIMESTAMP3}; assertEquals(expected.length, timestamps.size()); - for (int i = 0; i < timestamps.size(); i++) { - assertEquals(expected[i], timestamps.get(i)); - } + assertThat(timestamps).containsAtLeastElementsIn(expected); } @Test - public void queryNamedParameter_highPrecisionTimestamp_noExplicitCastInQuery_fails() { + void queryNamedParameter_highPrecisionTimestamp_noExplicitCastInQuery_fails() { String query = String.format( "SELECT * FROM %s.%s WHERE timestampHighPrecisionField >= @timestampParam", @@ -309,6 +328,7 @@ public void queryNamedParameter_highPrecisionTimestamp_noExplicitCastInQuery_fai .setDefaultDataset(DATASET) .setUseLegacySql(false) .addNamedParameter( + // For named parameters, java-bigquery does not expect the 'T' "timestampParam", QueryParameterValue.timestamp("2000-01-01 12:34:56.123456789123")) .build(); From d83699bb92bc351afbbd29fb237be33552479dbd Mon Sep 17 00:00:00 2001 From: Kirill Logachev Date: Fri, 23 Jan 2026 13:38:46 -0800 Subject: [PATCH 3379/3441] chore(jdbc): add nightly JAR build (#4076) --- .cloudbuild/jdbc_nightly.yaml | 7 ++ .kokoro/jdbc-release.sh | 41 +++++++ google-cloud-bigquery-jdbc/Makefile | 18 +--- google-cloud-bigquery-jdbc/pom.xml | 161 ++++++++++++---------------- 4 files changed, 120 insertions(+), 107 deletions(-) create mode 100755 .kokoro/jdbc-release.sh diff --git a/.cloudbuild/jdbc_nightly.yaml b/.cloudbuild/jdbc_nightly.yaml index bd3dc2ce52b1..5c7acd472bab 100644 --- a/.cloudbuild/jdbc_nightly.yaml +++ b/.cloudbuild/jdbc_nightly.yaml @@ -35,6 +35,13 @@ steps: args: ['.kokoro/build.sh'] env: - 'JOB_TYPE=jdbc-nightly-integration' +- name: 'gcr.io/cloud-devrel-public-resources/java11' + id: "Nightly build" + timeout: 10000s + entrypoint: 'bash' + args: ['.kokoro/jdbc-release.sh'] + env: + - 'NIGHTLY_RELEASE_GCS_BUCKET=$_NIGHTLY_RELEASE_GCS_BUCKET' availableSecrets: secretManager: diff --git a/.kokoro/jdbc-release.sh b/.kokoro/jdbc-release.sh new file mode 100755 index 000000000000..01cb7b47b9e1 --- /dev/null +++ b/.kokoro/jdbc-release.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -euo pipefail + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +cd "${DIR}/../google-cloud-bigquery-jdbc" + +FOLDER="$(pwd)/release" +DATE=$(date '+%Y-%m-%d') +COMMIT=$(git rev-parse --short HEAD) +PACKAGE="google-cloud-bigquery-jdbc" +VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) +BUCKET=${NIGHTLY_RELEASE_GCS_BUCKET} +NIGHTLY_BUILD_DESTINATION="${BUCKET}/nightly/${VERSION}/${DATE}" + +# All dependencies release +mkdir -p "${FOLDER}" +make docker-package PACKAGE_DESTINATION="${FOLDER}" +NAME=${PACKAGE}-${VERSION}-${COMMIT} + +gsutil cp -r "${FOLDER}/${PACKAGE}-${VERSION}.zip" "${NIGHTLY_BUILD_DESTINATION}/${NAME}.zip" +gsutil cp -r "${FOLDER}/${PACKAGE}-${VERSION}-all.jar" "${NIGHTLY_BUILD_DESTINATION}/${NAME}-all.jar" + +rm -rf "${FOLDER}" + +# # Update latest version +gsutil cp "${NIGHTLY_BUILD_DESTINATION}/${NAME}.zip" "${BUCKET}/${PACKAGE}-latest.zip" +gsutil cp "${NIGHTLY_BUILD_DESTINATION}/${NAME}-all.jar" "${BUCKET}/${PACKAGE}-latest-all.jar" diff --git a/google-cloud-bigquery-jdbc/Makefile b/google-cloud-bigquery-jdbc/Makefile index f196596870c9..61521770c791 100644 --- a/google-cloud-bigquery-jdbc/Makefile +++ b/google-cloud-bigquery-jdbc/Makefile @@ -59,18 +59,6 @@ package: -DincludeScope=runtime ${MAKE} generate-dependency-list -package-all-dependencies: - mvn package \ - -DincludeScope=runtime \ - -Dmaven.test.skip=true \ - -P=release-all-dependencies - -package-all-dependencies-shaded: - mvn package \ - -DincludeScope=runtime \ - -Dmaven.test.skip=true \ - -P=release-all-dependencies,release-all-dependencies-shaded - generate-dependency-list: mvn -B dependency:list \ -f pom.xml \ @@ -123,11 +111,13 @@ docker-package: docker-build sh -c "make package && \ mkdir -p /tmp/package && \ cp --no-preserve=ownership /mvn/test-target/google-cloud-bigquery-jdbc-*.jar /tmp/package && \ - rm -f /pkg/*tests.jar && \ + rm -f /tmp/package/google-cloud-bigquery-jdbc-*-all.jar && \ + rm -f /tmp/package/*tests.jar && \ cp --no-preserve=ownership dependencies.txt /tmp/package && \ rm dependencies.txt && \ cp --no-preserve=ownership /mvn/test-target/dependency/*.jar /tmp/package && \ - zip -j -r /pkg/google-cloud-bigquery-jdbc-$$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout).zip /tmp/package" + zip -j -r /pkg/google-cloud-bigquery-jdbc-$$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout).zip /tmp/package && \ + cp --no-preserve=ownership /mvn/test-target/google-cloud-bigquery-jdbc-*-all.jar /pkg " docker-unittest: | $(MAKE) .docker-run args="make unittest test=$(test)" diff --git a/google-cloud-bigquery-jdbc/pom.xml b/google-cloud-bigquery-jdbc/pom.xml index 74fc627e271c..91b51a7d02dd 100644 --- a/google-cloud-bigquery-jdbc/pom.xml +++ b/google-cloud-bigquery-jdbc/pom.xml @@ -67,6 +67,74 @@ + + org.apache.maven.plugins + maven-shade-plugin + 3.5.2 + + + package + + shade + + + true + all + false + + + java.base/java.nio=ALL-UNNAMED + + + + + + + META-INF/io.netty.versions.properties + + + + + com + com.google.bqjdbc.shaded.com + + com.google.cloud.bigquery.* + com.google.cloud.bigquery.jdbc.* + + + + org + com.google.bqjdbc.shaded.org + + org.conscrypt.* + + + + io + com.google.bqjdbc.shaded.io + + + + + *:* + + META-INF/LICENSE* + META-INF/NOTICE* + META-INF/DEPENDENCIES + META-INF/proguard/*.pro + META-INF/maven/** + META-INF/*.MF + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + arrow-git.properties + + + + + + + @@ -236,99 +304,6 @@ - - - release-all-dependencies-shaded - - - - org.apache.maven.plugins - maven-shade-plugin - 3.5.2 - - - - - - com - shaded.bqjdbc.com - - com.google.cloud.bigquery.jdbc.* - - - - org - shaded.bqjdbc.org - - org.conscrypt.* - - - - io - shaded.bqjdbc.io - - - - - - - - - - - - release-all-dependencies - - - - org.apache.maven.plugins - maven-shade-plugin - 3.5.2 - - - package - - shade - - - false - - - java.base/java.nio=ALL-UNNAMED - - - - - - - META-INF/io.netty.versions.properties - - - - - *:* - - META-INF/LICENSE* - META-INF/NOTICE* - META-INF/DEPENDENCIES - META-INF/proguard/*.pro - META-INF/maven/** - META-INF/*.MF - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - arrow-git.properties - - - - - - - - - - - docker From 6efec30df0a55889d0c1a7e0814466b085974eec Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 14:33:21 -0500 Subject: [PATCH 3380/3441] chore(main): release 2.57.3-SNAPSHOT (#4069) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery-jdbc/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 2e0e6f6bab1e..755e7ccdeb6d 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.57.2 + 2.57.3-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 7177694c6205..4aa8cde6463a 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.57.2 + 2.57.3-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.57.2 + 2.57.3-SNAPSHOT diff --git a/google-cloud-bigquery-jdbc/pom.xml b/google-cloud-bigquery-jdbc/pom.xml index 91b51a7d02dd..191b00922d82 100644 --- a/google-cloud-bigquery-jdbc/pom.xml +++ b/google-cloud-bigquery-jdbc/pom.xml @@ -20,7 +20,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-jdbc - 0.1.0 + 0.1.1-SNAPSHOT jar BigQuery JDBC https://github.com/googleapis/java-bigquery-jdbc @@ -141,7 +141,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.57.2 + 2.57.3-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 6b4661fb600c..ae2f3cf5d7e9 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.57.2 + 2.57.3-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.57.2 + 2.57.3-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 9821f1b68385..ade61d0cab72 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.57.2 + 2.57.3-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.57.2 + 2.57.3-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index f7ff76844c1c..a51dc38ef0b4 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.57.2 + 2.57.3-SNAPSHOT diff --git a/versions.txt b/versions.txt index 8f898d85ed84..84e55ba1d683 100644 --- a/versions.txt +++ b/versions.txt @@ -1,5 +1,5 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.57.2:2.57.2 -google-cloud-bigquery-jdbc:0.1.0:0.1.0 +google-cloud-bigquery:2.57.2:2.57.3-SNAPSHOT +google-cloud-bigquery-jdbc:0.1.0:0.1.1-SNAPSHOT From ed575f4149badfb3346f5f3657cf254ea268e0fe Mon Sep 17 00:00:00 2001 From: Joe Wang <106995533+JoeWang1127@users.noreply.github.com> Date: Mon, 26 Jan 2026 16:48:10 -0500 Subject: [PATCH 3381/3441] feat: update shared config and bigquerystorage (#4081) * deps: update bigquerystorage * update shared config * update shared config --- .github/workflows/unmanaged_dependency_check.yaml | 2 +- .kokoro/continuous/graalvm-native-a.cfg | 2 +- .kokoro/continuous/graalvm-native-b.cfg | 2 +- .kokoro/continuous/graalvm-native-c.cfg | 2 +- .kokoro/presubmit/graalvm-native-a.cfg | 2 +- .kokoro/presubmit/graalvm-native-b.cfg | 2 +- .kokoro/presubmit/graalvm-native-c.cfg | 2 +- google-cloud-bigquery-bom/pom.xml | 2 +- pom.xml | 4 ++-- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/unmanaged_dependency_check.yaml b/.github/workflows/unmanaged_dependency_check.yaml index e9cacb9dc217..6ddac9eabe1a 100644 --- a/.github/workflows/unmanaged_dependency_check.yaml +++ b/.github/workflows/unmanaged_dependency_check.yaml @@ -17,7 +17,7 @@ jobs: # repository .kokoro/build.sh - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.55.1 + uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.56.0 with: # java-bigquery does not produce a BOM. Fortunately the root pom.xml # defines google-cloud-bigquery in dependencyManagement section. So diff --git a/.kokoro/continuous/graalvm-native-a.cfg b/.kokoro/continuous/graalvm-native-a.cfg index a2798bba2cca..e7c342ded550 100644 --- a/.kokoro/continuous/graalvm-native-a.cfg +++ b/.kokoro/continuous/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.55.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.56.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-b.cfg b/.kokoro/continuous/graalvm-native-b.cfg index 1f804ecee905..6f5a9fce30ed 100644 --- a/.kokoro/continuous/graalvm-native-b.cfg +++ b/.kokoro/continuous/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.55.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.56.0" } env_vars: { diff --git a/.kokoro/continuous/graalvm-native-c.cfg b/.kokoro/continuous/graalvm-native-c.cfg index 641a3fb1dbfb..a76d6686a3af 100644 --- a/.kokoro/continuous/graalvm-native-c.cfg +++ b/.kokoro/continuous/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.55.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.56.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-a.cfg b/.kokoro/presubmit/graalvm-native-a.cfg index a2798bba2cca..e7c342ded550 100644 --- a/.kokoro/presubmit/graalvm-native-a.cfg +++ b/.kokoro/presubmit/graalvm-native-a.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.55.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.56.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-b.cfg b/.kokoro/presubmit/graalvm-native-b.cfg index 1f804ecee905..6f5a9fce30ed 100644 --- a/.kokoro/presubmit/graalvm-native-b.cfg +++ b/.kokoro/presubmit/graalvm-native-b.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.55.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.56.0" } env_vars: { diff --git a/.kokoro/presubmit/graalvm-native-c.cfg b/.kokoro/presubmit/graalvm-native-c.cfg index 641a3fb1dbfb..a76d6686a3af 100644 --- a/.kokoro/presubmit/graalvm-native-c.cfg +++ b/.kokoro/presubmit/graalvm-native-c.cfg @@ -3,7 +3,7 @@ # Configure the docker image for kokoro-trampoline. env_vars: { key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.55.1" + value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.56.0" } env_vars: { diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 4aa8cde6463a..7ce545d78423 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -8,7 +8,7 @@ com.google.cloud sdk-platform-java-config - 3.55.1 + 3.56.0 diff --git a/pom.xml b/pom.xml index ade61d0cab72..2f7db5220d82 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ com.google.cloud sdk-platform-java-config - 3.55.1 + 3.56.0 @@ -71,7 +71,7 @@ com.google.cloud google-cloud-bigquerystorage-bom - 3.19.1 + 3.20.0 pom import From 6ef476a22b15361b65eba6a0e881edd08efc8d6c Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 17:15:38 -0500 Subject: [PATCH 3382/3441] chore(main): release 2.58.0 (#4083) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery-jdbc/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 4 ++-- 8 files changed, 19 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1ac8d1c60c8..d08db0a6a8ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [2.58.0](https://github.com/googleapis/java-bigquery/compare/v2.57.2...v2.58.0) (2026-01-26) + + +### Features + +* Update shared config and bigquerystorage ([#4081](https://github.com/googleapis/java-bigquery/issues/4081)) ([ed575f4](https://github.com/googleapis/java-bigquery/commit/ed575f4149badfb3346f5f3657cf254ea268e0fe)) + ## [2.57.2](https://github.com/googleapis/java-bigquery/compare/v2.57.1...v2.57.2) (2026-01-16) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 755e7ccdeb6d..4b47cf24fa81 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.57.3-SNAPSHOT + 2.58.0 diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 7ce545d78423..43e36250ff8d 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.57.3-SNAPSHOT + 2.58.0 pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.57.3-SNAPSHOT + 2.58.0 diff --git a/google-cloud-bigquery-jdbc/pom.xml b/google-cloud-bigquery-jdbc/pom.xml index 191b00922d82..2b26a6ed41a7 100644 --- a/google-cloud-bigquery-jdbc/pom.xml +++ b/google-cloud-bigquery-jdbc/pom.xml @@ -20,7 +20,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-jdbc - 0.1.1-SNAPSHOT + 0.2.0 jar BigQuery JDBC https://github.com/googleapis/java-bigquery-jdbc @@ -141,7 +141,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.57.3-SNAPSHOT + 2.58.0 diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index ae2f3cf5d7e9..4fd420c80835 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.57.3-SNAPSHOT + 2.58.0 jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.57.3-SNAPSHOT + 2.58.0 google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2f7db5220d82..2c9c287f5436 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.57.3-SNAPSHOT + 2.58.0 BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.57.3-SNAPSHOT + 2.58.0 diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index a51dc38ef0b4..07d258061953 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.57.3-SNAPSHOT + 2.58.0 diff --git a/versions.txt b/versions.txt index 84e55ba1d683..88c1523e07cd 100644 --- a/versions.txt +++ b/versions.txt @@ -1,5 +1,5 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.57.2:2.57.3-SNAPSHOT -google-cloud-bigquery-jdbc:0.1.0:0.1.1-SNAPSHOT +google-cloud-bigquery:2.58.0:2.58.0 +google-cloud-bigquery-jdbc:0.2.0:0.2.0 From 0a3d669660612e65fe6885f42389bcc84aa781bd Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 17:45:10 -0500 Subject: [PATCH 3383/3441] chore(main): release 2.58.1-SNAPSHOT (#4084) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- benchmark/pom.xml | 2 +- google-cloud-bigquery-bom/pom.xml | 4 ++-- google-cloud-bigquery-jdbc/pom.xml | 4 ++-- google-cloud-bigquery/pom.xml | 4 ++-- pom.xml | 4 ++-- samples/snapshot/pom.xml | 2 +- versions.txt | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/benchmark/pom.xml b/benchmark/pom.xml index 4b47cf24fa81..13dab9b73a19 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -6,7 +6,7 @@ google-cloud-bigquery-parent com.google.cloud - 2.58.0 + 2.58.1-SNAPSHOT diff --git a/google-cloud-bigquery-bom/pom.xml b/google-cloud-bigquery-bom/pom.xml index 43e36250ff8d..77135f0fb698 100644 --- a/google-cloud-bigquery-bom/pom.xml +++ b/google-cloud-bigquery-bom/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-bom - 2.58.0 + 2.58.1-SNAPSHOT pom com.google.cloud @@ -54,7 +54,7 @@ com.google.cloud google-cloud-bigquery - 2.58.0 + 2.58.1-SNAPSHOT diff --git a/google-cloud-bigquery-jdbc/pom.xml b/google-cloud-bigquery-jdbc/pom.xml index 2b26a6ed41a7..e645c9bc83f6 100644 --- a/google-cloud-bigquery-jdbc/pom.xml +++ b/google-cloud-bigquery-jdbc/pom.xml @@ -20,7 +20,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery-jdbc - 0.2.0 + 0.2.1-SNAPSHOT jar BigQuery JDBC https://github.com/googleapis/java-bigquery-jdbc @@ -141,7 +141,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.58.0 + 2.58.1-SNAPSHOT diff --git a/google-cloud-bigquery/pom.xml b/google-cloud-bigquery/pom.xml index 4fd420c80835..b5ecad4d253f 100644 --- a/google-cloud-bigquery/pom.xml +++ b/google-cloud-bigquery/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-bigquery - 2.58.0 + 2.58.1-SNAPSHOT jar BigQuery https://github.com/googleapis/java-bigquery @@ -11,7 +11,7 @@ com.google.cloud google-cloud-bigquery-parent - 2.58.0 + 2.58.1-SNAPSHOT google-cloud-bigquery diff --git a/pom.xml b/pom.xml index 2c9c287f5436..a3abc5b9e52f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ com.google.cloud google-cloud-bigquery-parent pom - 2.58.0 + 2.58.1-SNAPSHOT BigQuery Parent https://github.com/googleapis/java-bigquery @@ -93,7 +93,7 @@ com.google.cloud google-cloud-bigquery - 2.58.0 + 2.58.1-SNAPSHOT diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml index 07d258061953..4ec3ae6b9add 100644 --- a/samples/snapshot/pom.xml +++ b/samples/snapshot/pom.xml @@ -56,7 +56,7 @@ com.google.cloud google-cloud-bigquery - 2.58.0 + 2.58.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index 88c1523e07cd..0facc566a06c 100644 --- a/versions.txt +++ b/versions.txt @@ -1,5 +1,5 @@ # Format: # module:released-version:current-version -google-cloud-bigquery:2.58.0:2.58.0 -google-cloud-bigquery-jdbc:0.2.0:0.2.0 +google-cloud-bigquery:2.58.0:2.58.1-SNAPSHOT +google-cloud-bigquery-jdbc:0.2.0:0.2.1-SNAPSHOT From 1280c137f77a050647a16c664e82778430812285 Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Mon, 22 Dec 2025 15:52:48 -0500 Subject: [PATCH 3384/3441] chore: add monorepo migration script --- monorepo-migration/migrate.sh | 119 ++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 monorepo-migration/migrate.sh diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh new file mode 100644 index 000000000000..856ca724417e --- /dev/null +++ b/monorepo-migration/migrate.sh @@ -0,0 +1,119 @@ +#!/bin/bash + +# Exit on error +set -e + +# Configuration +MONOREPO_URL="https://github.com/googleapis/google-cloud-java" +SOURCE_REPO_URL="https://github.com/googleapis/java-logging" + +# Derive names from URLs to avoid duplication +SOURCE_REPO_NAME="${SOURCE_REPO_URL##*/}" +MONOREPO_NAME="${MONOREPO_URL##*/}" + +# Use a temporary working directory sibling to the current monorepo +WORKING_DIR="../../../migration-work" +SOURCE_DIR="$WORKING_DIR/$SOURCE_REPO_NAME-source" +TARGET_DIR="$WORKING_DIR/$MONOREPO_NAME-target" + +echo "Starting migration using git read-tree with isolated clones..." + +# 0. Create working directory +mkdir -p "$WORKING_DIR" + +# 1. Clone the source repository +if [ ! -d "$SOURCE_DIR" ]; then + echo "Cloning source repo: $SOURCE_REPO_URL into $SOURCE_DIR" + git clone "$SOURCE_REPO_URL" "$SOURCE_DIR" +else + echo "Source directory $SOURCE_DIR already exists. Ensuring it is clean and up-to-date..." + cd "$SOURCE_DIR" + git fetch origin + git checkout -f main + git reset --hard origin/main + git clean -fd + cd - > /dev/null +fi + +# 2. Clone the target monorepo (the "isolated clone") +if [ ! -d "$TARGET_DIR" ]; then + echo "Cloning target monorepo: $MONOREPO_URL into $TARGET_DIR" + git clone "$MONOREPO_URL" "$TARGET_DIR" +else + echo "Target directory $TARGET_DIR already exists. Ensuring it is clean and up-to-date..." + cd "$TARGET_DIR" + git fetch origin + git checkout -f main + git reset --hard origin/main + git clean -fd + cd - > /dev/null +fi + +cd "$TARGET_DIR" + +# Ensure we are on a clean main branch in the target clone +echo "Ensuring clean state in target monorepo..." +git fetch origin +git reset --hard HEAD +git clean -fd +git checkout -f main +git reset --hard origin/main + +# 2.5 Create a new feature branch for the migration +BRANCH_NAME="feat/migrate-$SOURCE_REPO_NAME" +echo "Creating feature branch: $BRANCH_NAME" +if git branch | grep -q "$BRANCH_NAME"; then + git branch -D "$BRANCH_NAME" +fi +git checkout -b "$BRANCH_NAME" + +# 3. Add the source repo as a remote +echo "Adding remote for $SOURCE_REPO_NAME: $SOURCE_DIR" +if git remote | grep -q "^$SOURCE_REPO_NAME$"; then + git remote remove "$SOURCE_REPO_NAME" +fi +git remote add "$SOURCE_REPO_NAME" "../$SOURCE_REPO_NAME-source" + +# 4. Fetch the source repo +echo "Fetching $SOURCE_REPO_NAME..." +git fetch "$SOURCE_REPO_NAME" + +# 5. Merge the histories using 'ours' strategy to keep monorepo content +echo "Merging histories (strategy: ours)..." +git merge --allow-unrelated-histories --no-ff "$SOURCE_REPO_NAME/main" -s ours --no-commit -m "feat($SOURCE_REPO_NAME): migrate $SOURCE_REPO_NAME into monorepo" + +# 6. Read the tree from the source repo into the desired subdirectory +echo "Reading tree into prefix $SOURCE_REPO_NAME/..." +if [ -d "$SOURCE_REPO_NAME" ]; then + rm -rf "$SOURCE_REPO_NAME" +fi +git read-tree --prefix="$SOURCE_REPO_NAME/" -u "$SOURCE_REPO_NAME/main" + +# 7. Commit the changes +echo "Committing migration..." +git commit -n --no-gpg-sign -m "feat($SOURCE_REPO_NAME): migrate $SOURCE_REPO_NAME into monorepo" + +# 8. Update the root pom.xml to include the new module +echo "Updating root pom.xml..." +if [ -f "pom.xml" ]; then + # Check if module already exists + if grep -q "$SOURCE_REPO_NAME" pom.xml; then + echo "Module $SOURCE_REPO_NAME already exists in pom.xml" + else + # Insert the module before the closing tag + sed -i '' "/<\/modules>/i\\ +\\ $SOURCE_REPO_NAME +" pom.xml + echo "Added $SOURCE_REPO_NAME to pom.xml" + fi +else + echo "Warning: root pom.xml not found" +fi + +# 9. Cleanup +echo "Cleaning up temporary source clone..." +rm -rf "$SOURCE_DIR" + +echo "Migration complete!" +echo "The migrated codebase is available in: $TARGET_DIR" +echo "You are on the $BRANCH_NAME branch in that clone." From c6d3dbb1ff7ffd5b205ed7c14943ab4e96b6046d Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Mon, 22 Dec 2025 15:59:08 -0500 Subject: [PATCH 3385/3441] chore: fix path --- monorepo-migration/migrate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 monorepo-migration/migrate.sh diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh old mode 100644 new mode 100755 index 856ca724417e..4eba1c3908c1 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -12,7 +12,7 @@ SOURCE_REPO_NAME="${SOURCE_REPO_URL##*/}" MONOREPO_NAME="${MONOREPO_URL##*/}" # Use a temporary working directory sibling to the current monorepo -WORKING_DIR="../../../migration-work" +WORKING_DIR="../../migration-work" SOURCE_DIR="$WORKING_DIR/$SOURCE_REPO_NAME-source" TARGET_DIR="$WORKING_DIR/$MONOREPO_NAME-target" From 8bb58cf3af2c97975fa0ef1157ec0a90c11ade81 Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Mon, 22 Dec 2025 16:11:25 -0500 Subject: [PATCH 3386/3441] chore: refine migration script for atomic commits and isolation --- monorepo-migration/migrate.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 4eba1c3908c1..21c1f134d899 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -60,9 +60,9 @@ git checkout -f main git reset --hard origin/main # 2.5 Create a new feature branch for the migration -BRANCH_NAME="feat/migrate-$SOURCE_REPO_NAME" +BRANCH_NAME="migrate-$SOURCE_REPO_NAME" echo "Creating feature branch: $BRANCH_NAME" -if git branch | grep -q "$BRANCH_NAME"; then +if git rev-parse --verify "$BRANCH_NAME" >/dev/null 2>&1; then git branch -D "$BRANCH_NAME" fi git checkout -b "$BRANCH_NAME" @@ -80,7 +80,7 @@ git fetch "$SOURCE_REPO_NAME" # 5. Merge the histories using 'ours' strategy to keep monorepo content echo "Merging histories (strategy: ours)..." -git merge --allow-unrelated-histories --no-ff "$SOURCE_REPO_NAME/main" -s ours --no-commit -m "feat($SOURCE_REPO_NAME): migrate $SOURCE_REPO_NAME into monorepo" +git merge --allow-unrelated-histories --no-ff "$SOURCE_REPO_NAME/main" -s ours --no-commit -m "chore($SOURCE_REPO_NAME): migrate $SOURCE_REPO_NAME into monorepo" # 6. Read the tree from the source repo into the desired subdirectory echo "Reading tree into prefix $SOURCE_REPO_NAME/..." @@ -89,9 +89,9 @@ if [ -d "$SOURCE_REPO_NAME" ]; then fi git read-tree --prefix="$SOURCE_REPO_NAME/" -u "$SOURCE_REPO_NAME/main" -# 7. Commit the changes +# 7. Commit the migration echo "Committing migration..." -git commit -n --no-gpg-sign -m "feat($SOURCE_REPO_NAME): migrate $SOURCE_REPO_NAME into monorepo" +git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate $SOURCE_REPO_NAME into monorepo" # 8. Update the root pom.xml to include the new module echo "Updating root pom.xml..." @@ -105,6 +105,8 @@ if [ -f "pom.xml" ]; then \\ $SOURCE_REPO_NAME " pom.xml echo "Added $SOURCE_REPO_NAME to pom.xml" + git add pom.xml + git commit -n --no-gpg-sign -m "chore: add $SOURCE_REPO_NAME module to root pom.xml" fi else echo "Warning: root pom.xml not found" From 1ee029da805c61527920e41908a713ec55fc061f Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Tue, 23 Dec 2025 11:10:52 -0500 Subject: [PATCH 3387/3441] chore: remove pom.xml update logic from migration script --- monorepo-migration/migrate.sh | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 21c1f134d899..c9f279d52871 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -93,26 +93,7 @@ git read-tree --prefix="$SOURCE_REPO_NAME/" -u "$SOURCE_REPO_NAME/main" echo "Committing migration..." git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate $SOURCE_REPO_NAME into monorepo" -# 8. Update the root pom.xml to include the new module -echo "Updating root pom.xml..." -if [ -f "pom.xml" ]; then - # Check if module already exists - if grep -q "$SOURCE_REPO_NAME" pom.xml; then - echo "Module $SOURCE_REPO_NAME already exists in pom.xml" - else - # Insert the module before the closing tag - sed -i '' "/<\/modules>/i\\ -\\ $SOURCE_REPO_NAME -" pom.xml - echo "Added $SOURCE_REPO_NAME to pom.xml" - git add pom.xml - git commit -n --no-gpg-sign -m "chore: add $SOURCE_REPO_NAME module to root pom.xml" - fi -else - echo "Warning: root pom.xml not found" -fi - -# 9. Cleanup +# 8. Cleanup echo "Cleaning up temporary source clone..." rm -rf "$SOURCE_DIR" From c3822141e60aa4e363f4390238b41dd02b15d07c Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Tue, 23 Dec 2025 11:45:16 -0500 Subject: [PATCH 3388/3441] chore: implement GitHub Actions workflow migration using paths-filter --- monorepo-migration/migrate.sh | 81 +++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index c9f279d52871..49e32164e312 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -93,6 +93,87 @@ git read-tree --prefix="$SOURCE_REPO_NAME/" -u "$SOURCE_REPO_NAME/main" echo "Committing migration..." git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate $SOURCE_REPO_NAME into monorepo" +# 7.5 Migrate GitHub Actions workflows +echo "Checking for GitHub Actions workflows..." +if [ -d "$SOURCE_REPO_NAME/.github/workflows" ]; then + echo "Migrating workflows to root .github/workflows/..." + mkdir -p .github/workflows + + # Create a temporary python script for robust YAML transformation + cat << 'EOF' > transform_workflow.py +import sys +import re + +def transform(content, lib_name): + lines = content.splitlines() + new_lines = [] + inserted_defaults = False + + filter_job = f""" filter: + runs-on: ubuntu-latest + outputs: + library: ${{{{ steps.filter.outputs.library }}}} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + library: + - '{lib_name}/**'""" + + in_jobs = False + for line in lines: + if line.startswith('jobs:'): + if not inserted_defaults: + new_lines.append("defaults:") + new_lines.append(" run:") + new_lines.append(f" working-directory: {lib_name}") + inserted_defaults = True + new_lines.append(line) + new_lines.append(filter_job) + in_jobs = True + continue + + if in_jobs and line.startswith(' ') and not line.startswith(' ') and line.strip() and not line.strip().startswith('#'): + job_match = re.match(r'^ ([\w-]+):', line) + if job_match: + job_name = job_match.group(1) + if job_name != 'filter': + new_lines.append(line) + new_lines.append(" needs: filter") + new_lines.append(f" if: ${{{{ needs.filter.outputs.library == 'true' }}}}") + continue + + new_lines.append(line) + return "\n".join(new_lines) + +if __name__ == "__main__": + lib = sys.argv[1] + print(transform(sys.stdin.read(), lib)) +EOF + + for workflow in "$SOURCE_REPO_NAME/.github/workflows/"*; do + if [ -f "$workflow" ]; then + filename=$(basename "$workflow") + new_filename="${SOURCE_REPO_NAME}-${filename}" + target_path=".github/workflows/$new_filename" + + echo "Migrating and adapting $filename to $target_path" + python3 transform_workflow.py "$SOURCE_REPO_NAME" < "$workflow" > "$target_path" + fi + done + + rm transform_workflow.py + + # Cleanup empty .github directory if it exists + rm -rf "$SOURCE_REPO_NAME/.github" + + echo "Committing workflow migration..." + git add .github/workflows + git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate and adapt GitHub Actions workflows" +fi + # 8. Cleanup echo "Cleaning up temporary source clone..." rm -rf "$SOURCE_DIR" From c8a3489ff7820468c3741c1205aad6ad5dbe4e5a Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Tue, 23 Dec 2025 12:21:22 -0500 Subject: [PATCH 3389/3441] chore: skip redundant workflows and update generation_config.yaml --- monorepo-migration/migrate.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 49e32164e312..d3c1273a09f9 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -156,6 +156,13 @@ EOF for workflow in "$SOURCE_REPO_NAME/.github/workflows/"*; do if [ -f "$workflow" ]; then filename=$(basename "$workflow") + + # Skip redundant workflows as requested by user + if [ "$filename" == "hermetic_library_generation.yaml" ] || [ "$filename" == "update_generation_config.yaml" ]; then + echo "Skipping redundant workflow: $filename" + continue + fi + new_filename="${SOURCE_REPO_NAME}-${filename}" target_path=".github/workflows/$new_filename" @@ -174,6 +181,27 @@ EOF git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate and adapt GitHub Actions workflows" fi +# 7.6 Update generation_config.yaml +echo "Updating generation_config.yaml..." +SOURCE_CONFIG="$SOURCE_REPO_NAME/generation_config.yaml" +if [ -f "$SOURCE_CONFIG" ]; then + # Extract the library entry (starts with - api_shortname) + # This assumes the source config only has one library or we want the first one + ENTRY=$(awk '/^ - api_shortname:/{flag=1; print $0; next} /^ - / && flag{flag=0} flag' "$SOURCE_CONFIG") + + # Simple cleanup: remove repo and repo_short if they exist + # Adjust indentation to match monorepo (0 spaces for -) + CLEAN_ENTRY=$(echo "$ENTRY" | sed '/repo:/d' | sed '/repo_short:/d' | sed 's/^ //') + + # Append to target generation_config.yaml + echo "" >> generation_config.yaml + echo "$CLEAN_ENTRY" >> generation_config.yaml + + echo "Committing generation_config.yaml update..." + git add generation_config.yaml + git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): add library to generation_config.yaml" +fi + # 8. Cleanup echo "Cleaning up temporary source clone..." rm -rf "$SOURCE_DIR" From 0614c312d4399e31d2df6fad9cb95b6efcefb8fb Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Tue, 23 Dec 2025 13:34:18 -0500 Subject: [PATCH 3390/3441] chore: expand workflow skip list to include samples, release, and more --- monorepo-migration/migrate.sh | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index d3c1273a09f9..f575e43a633a 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -156,12 +156,16 @@ EOF for workflow in "$SOURCE_REPO_NAME/.github/workflows/"*; do if [ -f "$workflow" ]; then filename=$(basename "$workflow") - + # Skip redundant workflows as requested by user - if [ "$filename" == "hermetic_library_generation.yaml" ] || [ "$filename" == "update_generation_config.yaml" ]; then - echo "Skipping redundant workflow: $filename" - continue - fi + case "$filename" in + "hermetic_library_generation.yaml" | "update_generation_config.yaml" | \ + "approve-readme.yaml" | "auto-release.yaml" | "renovate_config_check.yaml" | \ + "samples.yaml" | "unmanaged_dependency_check.yaml") + echo "Skipping redundant workflow: $filename" + continue + ;; + esac new_filename="${SOURCE_REPO_NAME}-${filename}" target_path=".github/workflows/$new_filename" From 499fd4e821683ad131843cce2aad58bb24a1a185 Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Tue, 23 Dec 2025 13:51:21 -0500 Subject: [PATCH 3391/3441] chore: make workflow transformation logic a permanent script and rename workflows --- monorepo-migration/migrate.sh | 62 ++---------------------- monorepo-migration/transform_workflow.py | 62 ++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 57 deletions(-) create mode 100644 monorepo-migration/transform_workflow.py diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index f575e43a633a..e7781460dd20 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -16,6 +16,10 @@ WORKING_DIR="../../migration-work" SOURCE_DIR="$WORKING_DIR/$SOURCE_REPO_NAME-source" TARGET_DIR="$WORKING_DIR/$MONOREPO_NAME-target" +# Get absolute path to the transformation script before any cd +TRANSFORM_SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +TRANSFORM_SCRIPT="$TRANSFORM_SCRIPT_DIR/transform_workflow.py" + echo "Starting migration using git read-tree with isolated clones..." # 0. Create working directory @@ -99,60 +103,6 @@ if [ -d "$SOURCE_REPO_NAME/.github/workflows" ]; then echo "Migrating workflows to root .github/workflows/..." mkdir -p .github/workflows - # Create a temporary python script for robust YAML transformation - cat << 'EOF' > transform_workflow.py -import sys -import re - -def transform(content, lib_name): - lines = content.splitlines() - new_lines = [] - inserted_defaults = False - - filter_job = f""" filter: - runs-on: ubuntu-latest - outputs: - library: ${{{{ steps.filter.outputs.library }}}} - steps: - - uses: actions/checkout@v4 - - uses: dorny/paths-filter@v3 - id: filter - with: - filters: | - library: - - '{lib_name}/**'""" - - in_jobs = False - for line in lines: - if line.startswith('jobs:'): - if not inserted_defaults: - new_lines.append("defaults:") - new_lines.append(" run:") - new_lines.append(f" working-directory: {lib_name}") - inserted_defaults = True - new_lines.append(line) - new_lines.append(filter_job) - in_jobs = True - continue - - if in_jobs and line.startswith(' ') and not line.startswith(' ') and line.strip() and not line.strip().startswith('#'): - job_match = re.match(r'^ ([\w-]+):', line) - if job_match: - job_name = job_match.group(1) - if job_name != 'filter': - new_lines.append(line) - new_lines.append(" needs: filter") - new_lines.append(f" if: ${{{{ needs.filter.outputs.library == 'true' }}}}") - continue - - new_lines.append(line) - return "\n".join(new_lines) - -if __name__ == "__main__": - lib = sys.argv[1] - print(transform(sys.stdin.read(), lib)) -EOF - for workflow in "$SOURCE_REPO_NAME/.github/workflows/"*; do if [ -f "$workflow" ]; then filename=$(basename "$workflow") @@ -171,12 +121,10 @@ EOF target_path=".github/workflows/$new_filename" echo "Migrating and adapting $filename to $target_path" - python3 transform_workflow.py "$SOURCE_REPO_NAME" < "$workflow" > "$target_path" + python3 "$TRANSFORM_SCRIPT" "$SOURCE_REPO_NAME" < "$workflow" > "$target_path" fi done - rm transform_workflow.py - # Cleanup empty .github directory if it exists rm -rf "$SOURCE_REPO_NAME/.github" diff --git a/monorepo-migration/transform_workflow.py b/monorepo-migration/transform_workflow.py new file mode 100644 index 000000000000..b40dd9f4ebd7 --- /dev/null +++ b/monorepo-migration/transform_workflow.py @@ -0,0 +1,62 @@ +import sys +import re + +def transform(content, lib_name): + lines = content.splitlines() + new_lines = [] + inserted_defaults = False + + filter_job = f""" filter: + runs-on: ubuntu-latest + outputs: + library: ${{{{ steps.filter.outputs.library }}}} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + library: + - '{lib_name}/**'""" + + in_jobs = False + for line in lines: + if line.startswith('name:') and not in_jobs: + name_match = re.match(r'^name:\s*(.*)', line) + if name_match: + orig_name = name_match.group(1).strip() + # Remove quotes if they exist + orig_name = orig_name.strip("\"'") + new_lines.append(f"name: {lib_name} {orig_name}") + continue + + if line.startswith('jobs:'): + if not inserted_defaults: + new_lines.append("defaults:") + new_lines.append(" run:") + new_lines.append(f" working-directory: {lib_name}") + inserted_defaults = True + new_lines.append(line) + new_lines.append(filter_job) + in_jobs = True + continue + + if in_jobs and line.startswith(' ') and not line.startswith(' ') and line.strip() and not line.strip().startswith('#'): + job_match = re.match(r'^ ([\w-]+):', line) + if job_match: + job_name = job_match.group(1) + if job_name != 'filter': + new_lines.append(line) + new_lines.append(" needs: filter") + new_lines.append(f" if: ${{{{ needs.filter.outputs.library == 'true' }}}}") + continue + + new_lines.append(line) + return "\n".join(new_lines) + +if __name__ == "__main__": + if len(sys.argv) < 2: + print("Usage: python3 transform_workflow.py ") + sys.exit(1) + lib = sys.argv[1] + print(transform(sys.stdin.read(), lib)) From c3dd105116a1adaf04103123ad6ba55fbb7c456d Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Tue, 23 Dec 2025 14:07:54 -0500 Subject: [PATCH 3392/3441] chore: refine versions.txt consolidation to only append data lines --- monorepo-migration/migrate.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index e7781460dd20..0168563adea8 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -154,6 +154,21 @@ if [ -f "$SOURCE_CONFIG" ]; then git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): add library to generation_config.yaml" fi +# 7.7 Consolidate versions.txt +echo "Consolidating versions.txt..." +SOURCE_VERSIONS="$SOURCE_REPO_NAME/versions.txt" +if [ -f "$SOURCE_VERSIONS" ]; then + # Append data lines only to root versions.txt (exclude comments/headers) + grep "^[a-zA-Z0-9]" "$SOURCE_VERSIONS" >> versions.txt + + # Remove the migrated subdirectory's versions.txt + rm "$SOURCE_VERSIONS" + + echo "Committing versions.txt update..." + git add versions.txt "$SOURCE_VERSIONS" + git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): consolidate versions.txt into root" +fi + # 8. Cleanup echo "Cleaning up temporary source clone..." rm -rf "$SOURCE_DIR" From 516480a23f1339cece0cdac8de3a0a754474ae9a Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Tue, 23 Dec 2025 14:27:55 -0500 Subject: [PATCH 3393/3441] chore: remove clirr job from workflow transformation --- monorepo-migration/transform_workflow.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/monorepo-migration/transform_workflow.py b/monorepo-migration/transform_workflow.py index b40dd9f4ebd7..0e6b1c6927cb 100644 --- a/monorepo-migration/transform_workflow.py +++ b/monorepo-migration/transform_workflow.py @@ -20,6 +20,7 @@ def transform(content, lib_name): - '{lib_name}/**'""" in_jobs = False + skip_current_job = False for line in lines: if line.startswith('name:') and not in_jobs: name_match = re.match(r'^name:\s*(.*)', line) @@ -45,13 +46,20 @@ def transform(content, lib_name): job_match = re.match(r'^ ([\w-]+):', line) if job_match: job_name = job_match.group(1) + if job_name == 'clirr': + skip_current_job = True + continue + else: + skip_current_job = False + if job_name != 'filter': new_lines.append(line) new_lines.append(" needs: filter") new_lines.append(f" if: ${{{{ needs.filter.outputs.library == 'true' }}}}") continue - new_lines.append(line) + if not skip_current_job: + new_lines.append(line) return "\n".join(new_lines) if __name__ == "__main__": From 4b6974dcb4c55675b3e7545c5d4cfd01ef5d77ec Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Tue, 23 Dec 2025 14:35:41 -0500 Subject: [PATCH 3394/3441] chore: add copyright header fix to migration script --- monorepo-migration/migrate.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 0168563adea8..f80382ac5bc2 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -169,6 +169,14 @@ if [ -f "$SOURCE_VERSIONS" ]; then git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): consolidate versions.txt into root" fi +# 7.8 Fix copyright headers in Java files +echo "Fixing copyright headers in Java files..." +find "$SOURCE_REPO_NAME" -name "*.java" -exec python3 -c "import sys, re; p = sys.argv[1]; c = open(p).read(); new_c = re.sub(r'Copyright \d{4} Google (Inc\.|LLC)', 'Copyright 2025 Google LLC', c); open(p, 'w').write(new_c)" {} \; + +echo "Committing copyright header fixes..." +git add "$SOURCE_REPO_NAME" +git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): update copyright headers to 2025 Google LLC" + # 8. Cleanup echo "Cleaning up temporary source clone..." rm -rf "$SOURCE_DIR" From a7e8c44bab20e7fa6da577083b143965fd6a1204 Mon Sep 17 00:00:00 2001 From: Mike Eltsufin Date: Tue, 23 Dec 2025 23:19:47 -0500 Subject: [PATCH 3395/3441] impl: automate reporting removal, build verification, and dynamic parent versioning --- monorepo-migration/migrate.sh | 14 ++++ monorepo-migration/modernize_pom.py | 102 ++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 monorepo-migration/modernize_pom.py diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index f80382ac5bc2..18f5e8d03dc8 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -19,6 +19,7 @@ TARGET_DIR="$WORKING_DIR/$MONOREPO_NAME-target" # Get absolute path to the transformation script before any cd TRANSFORM_SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" TRANSFORM_SCRIPT="$TRANSFORM_SCRIPT_DIR/transform_workflow.py" +MODERNIZE_POM_SCRIPT="$TRANSFORM_SCRIPT_DIR/modernize_pom.py" echo "Starting migration using git read-tree with isolated clones..." @@ -177,6 +178,19 @@ echo "Committing copyright header fixes..." git add "$SOURCE_REPO_NAME" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): update copyright headers to 2025 Google LLC" +# 7.9 Modernize root pom.xml +echo "Modernizing root pom.xml..." +PARENT_VERSION=$(grep -m 1 ".*{x-version-update:google-cloud-java:current}" google-cloud-jar-parent/pom.xml | sed -E 's/.*(.*)<\/version>.*/\1/') +python3 "$MODERNIZE_POM_SCRIPT" "$SOURCE_REPO_NAME/pom.xml" "$PARENT_VERSION" + +echo "Committing root pom.xml modernization..." +git add "$SOURCE_REPO_NAME/pom.xml" +git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): modernize root pom.xml" + +# 7.10 Verify compilation +echo "Verifying compilation..." +(cd "$SOURCE_REPO_NAME" && mvn compile -DskipTests -T 1C) + # 8. Cleanup echo "Cleaning up temporary source clone..." rm -rf "$SOURCE_DIR" diff --git a/monorepo-migration/modernize_pom.py b/monorepo-migration/modernize_pom.py new file mode 100644 index 000000000000..983f2828261c --- /dev/null +++ b/monorepo-migration/modernize_pom.py @@ -0,0 +1,102 @@ +import sys +import re + +def modernize_pom(file_path, parent_version): + with open(file_path, 'r') as f: + lines = f.readlines() + + new_lines = [] + in_parent = False + in_dep_mgmt = False + in_dependencies = False + in_dependency = False + in_reporting = False + current_dependency_lines = [] + has_x_version_update = False + + for line in lines: + # Parent section modernization + if '' in line and not in_parent: + in_parent = True + indent = line[:line.find('<')] + new_lines.append(f"{indent}\n") + new_lines.append(f"{indent} com.google.cloud\n") + new_lines.append(f"{indent} google-cloud-jar-parent\n") + new_lines.append(f"{indent} {parent_version}\n") + new_lines.append(f"{indent} ../google-cloud-jar-parent/pom.xml\n") + continue + if '' in line and in_parent: + in_parent = False + new_lines.append(line) + continue + if in_parent: + continue # skip original parent content + + # Dependency Management pruning + if '' in line: + in_dep_mgmt = True + new_lines.append(line) + continue + if '' in line: + in_dep_mgmt = False + new_lines.append(line) + continue + + if in_dep_mgmt: + if '' in line: + in_dependencies = True + new_lines.append(line) + continue + if '' in line: + in_dependencies = False + new_lines.append(line) + continue + + if in_dependencies: + if '' in line: + in_dependency = True + current_dependency_lines = [line] + has_x_version_update = False + continue + if '' in line: + in_dependency = False + current_dependency_lines.append(line) + if has_x_version_update: + new_lines.extend(current_dependency_lines) + continue + + if in_dependency: + current_dependency_lines.append(line) + if '{x-version-update:' in line: + has_x_version_update = True + continue + + # Prune comments and extra whitespace in depMgmt for a cleaner result + if not line.strip(): + new_lines.append(line) + continue + + # Reporting section removal + if '' in line: + in_reporting = True + continue + if '' in line: + in_reporting = False + continue + if in_reporting: + continue + + new_lines.append(line) + + with open(file_path, 'w') as f: + # Clean up double empty lines potentially introduced by pruning + content = "".join(new_lines) + content = re.sub(r'\n\s*\n\s*\n', '\n\n', content) + f.write(content) + +if __name__ == "__main__": + if len(sys.argv) > 2: + modernize_pom(sys.argv[1], sys.argv[2]) + else: + print("Usage: python3 modernize_pom.py ") + sys.exit(1) From 0135d77d1392c87460e9b73e997949ff569089b8 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Mon, 5 Jan 2026 21:14:13 +0000 Subject: [PATCH 3396/3441] feat: add CLI binary checks to migrate.sh --- monorepo-migration/migrate.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 18f5e8d03dc8..b60f32e76dc0 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -3,6 +3,19 @@ # Exit on error set -e +# Function to check if a command exists +check_command() { + if ! command -v "$1" >/dev/null 2>&1; then + echo "Error: $1 is not installed or not in PATH." >&2 + exit 1 + fi +} + +# Check for necessary CLI binaries +check_command git +check_command python3 +check_command mvn + # Configuration MONOREPO_URL="https://github.com/googleapis/google-cloud-java" SOURCE_REPO_URL="https://github.com/googleapis/java-logging" From 4b7b61fb4bdaf4d1b01f69d72ab726b7fc79db43 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Tue, 6 Jan 2026 17:12:41 +0000 Subject: [PATCH 3397/3441] chore: allow setting SOURCE_REPO_URL via environment variable in migrate.sh --- monorepo-migration/migrate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index b60f32e76dc0..0a234982330f 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -18,7 +18,7 @@ check_command mvn # Configuration MONOREPO_URL="https://github.com/googleapis/google-cloud-java" -SOURCE_REPO_URL="https://github.com/googleapis/java-logging" +SOURCE_REPO_URL="${SOURCE_REPO_URL:-https://github.com/googleapis/java-logging}" # Derive names from URLs to avoid duplication SOURCE_REPO_NAME="${SOURCE_REPO_URL##*/}" From f67a6358b2b7ae0ac4833e7b9fe6ab739908e96b Mon Sep 17 00:00:00 2001 From: chingor13 Date: Tue, 6 Jan 2026 17:28:51 +0000 Subject: [PATCH 3398/3441] feat: add guard for checking if the repository is already migrated --- monorepo-migration/migrate.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 0a234982330f..a1639851a0de 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -77,6 +77,14 @@ git clean -fd git checkout -f main git reset --hard origin/main +# Check if the repository is already migrated +if [ -d "$SOURCE_REPO_NAME" ]; then + echo "Error: Directory $SOURCE_REPO_NAME already exists in the monorepo." >&2 + echo "This repository seems to have already been migrated." >&2 + exit 1 +fi + + # 2.5 Create a new feature branch for the migration BRANCH_NAME="migrate-$SOURCE_REPO_NAME" echo "Creating feature branch: $BRANCH_NAME" @@ -102,9 +110,6 @@ git merge --allow-unrelated-histories --no-ff "$SOURCE_REPO_NAME/main" -s ours - # 6. Read the tree from the source repo into the desired subdirectory echo "Reading tree into prefix $SOURCE_REPO_NAME/..." -if [ -d "$SOURCE_REPO_NAME" ]; then - rm -rf "$SOURCE_REPO_NAME" -fi git read-tree --prefix="$SOURCE_REPO_NAME/" -u "$SOURCE_REPO_NAME/main" # 7. Commit the migration From 990ea153a63a48ac443f96bd7ba33c8358081672 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Tue, 6 Jan 2026 18:47:43 +0000 Subject: [PATCH 3399/3441] feat: add environment variable for specifying codeowner team to migrate --- monorepo-migration/migrate.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index a1639851a0de..a387a9e840ad 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -19,6 +19,7 @@ check_command mvn # Configuration MONOREPO_URL="https://github.com/googleapis/google-cloud-java" SOURCE_REPO_URL="${SOURCE_REPO_URL:-https://github.com/googleapis/java-logging}" +CODEOWNER="${CODEOWNER:-}" # Derive names from URLs to avoid duplication SOURCE_REPO_NAME="${SOURCE_REPO_URL##*/}" @@ -116,6 +117,17 @@ git read-tree --prefix="$SOURCE_REPO_NAME/" -u "$SOURCE_REPO_NAME/main" echo "Committing migration..." git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate $SOURCE_REPO_NAME into monorepo" +# 7.1 Update CODEOWNERS +if [ -n "$CODEOWNER" ]; then + echo "Updating .github/CODEOWNERS..." + mkdir -p .github + echo "/$SOURCE_REPO_NAME/ $CODEOWNER @googleapis/cloud-java-team-teamsync" >> .github/CODEOWNERS + + echo "Committing CODEOWNERS update..." + git add .github/CODEOWNERS + git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): add code owners for $SOURCE_REPO_NAME" +fi + # 7.5 Migrate GitHub Actions workflows echo "Checking for GitHub Actions workflows..." if [ -d "$SOURCE_REPO_NAME/.github/workflows" ]; then From fc2e848fc26fcdb2af78d4246e050bf0da0aa430 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 7 Jan 2026 17:28:58 +0000 Subject: [PATCH 3400/3441] feat: insert new module in root pom.xml --- monorepo-migration/migrate.sh | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index a387a9e840ad..4035465674b0 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -77,6 +77,7 @@ git reset --hard HEAD git clean -fd git checkout -f main git reset --hard origin/main +git clean -fdx # Check if the repository is already migrated if [ -d "$SOURCE_REPO_NAME" ]; then @@ -128,6 +129,46 @@ if [ -n "$CODEOWNER" ]; then git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): add code owners for $SOURCE_REPO_NAME" fi +# 7.2 Update root pom.xml modules +echo "Updating root pom.xml modules..." +python3 -c " +import sys +pom_path = sys.argv[1] +module_name = sys.argv[2] +new_module = f' {module_name}\n' +with open(pom_path, 'r') as f: + content = f.read() +start_tag = '' +end_tag = '' +start_idx = content.find(start_tag) +end_idx = content.find(end_tag) +if start_idx != -1 and end_idx != -1: + modules_section = content[start_idx + len(start_tag):end_idx] + lines = [l for l in modules_section.splitlines(keepends=True) if l.strip()] + + java_indices = [i for i, l in enumerate(lines) if 'java-' in l] + if java_indices: + start_java = java_indices[0] + end_java = java_indices[-1] + 1 + java_lines = lines[start_java:end_java] + if not any(f'{module_name}' in l for l in java_lines): + java_lines.append(new_module) + java_lines.sort() + lines = lines[:start_java] + java_lines + lines[end_java:] + else: + if not any(f'{module_name}' in l for l in lines): + lines.append(new_module) + + new_content = content[:start_idx + len(start_tag)] + '\n' + ''.join(lines) + ' ' + content[end_idx:] + with open(pom_path, 'w') as f: + f.write(new_content) +" "pom.xml" "$SOURCE_REPO_NAME" + +echo "Committing root pom.xml modules update..." +git add pom.xml +git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): add module to root pom.xml" + + # 7.5 Migrate GitHub Actions workflows echo "Checking for GitHub Actions workflows..." if [ -d "$SOURCE_REPO_NAME/.github/workflows" ]; then From e0e5b92f54529f93c334afcab8b310e52af8440d Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 7 Jan 2026 19:11:12 +0000 Subject: [PATCH 3401/3441] chore: exclude common files from source root in migration script --- monorepo-migration/migrate.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 4035465674b0..2d619ced0153 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -114,6 +114,15 @@ git merge --allow-unrelated-histories --no-ff "$SOURCE_REPO_NAME/main" -s ours - echo "Reading tree into prefix $SOURCE_REPO_NAME/..." git read-tree --prefix="$SOURCE_REPO_NAME/" -u "$SOURCE_REPO_NAME/main" +# 6.5 Remove common files from the root of the migrated library +echo "Removing common files from the root of $SOURCE_REPO_NAME/..." +rm -f "$SOURCE_REPO_NAME/.gitignore" +rm -f "$SOURCE_REPO_NAME/renovate.json" +rm -f "$SOURCE_REPO_NAME/LICENSE" +rm -f "$SOURCE_REPO_NAME/java.header" +rm -f "$SOURCE_REPO_NAME/license-checks.xml" +find "$SOURCE_REPO_NAME" -maxdepth 1 -name "*.md" ! -name "CHANGELOG.md" ! -name "README.md" -delete + # 7. Commit the migration echo "Committing migration..." git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate $SOURCE_REPO_NAME into monorepo" From a79c9641d24254d61eb95a739a4de0fb8d0af1d8 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 8 Jan 2026 18:02:18 +0000 Subject: [PATCH 3402/3441] refactor: extract inline python to a .py file --- monorepo-migration/migrate.sh | 34 ++------------------- monorepo-migration/update_root_pom.py | 43 +++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 32 deletions(-) create mode 100644 monorepo-migration/update_root_pom.py diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 2d619ced0153..ddd694bcdc30 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -34,6 +34,7 @@ TARGET_DIR="$WORKING_DIR/$MONOREPO_NAME-target" TRANSFORM_SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" TRANSFORM_SCRIPT="$TRANSFORM_SCRIPT_DIR/transform_workflow.py" MODERNIZE_POM_SCRIPT="$TRANSFORM_SCRIPT_DIR/modernize_pom.py" +UPDATE_ROOT_POM_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_root_pom.py" echo "Starting migration using git read-tree with isolated clones..." @@ -140,38 +141,7 @@ fi # 7.2 Update root pom.xml modules echo "Updating root pom.xml modules..." -python3 -c " -import sys -pom_path = sys.argv[1] -module_name = sys.argv[2] -new_module = f' {module_name}\n' -with open(pom_path, 'r') as f: - content = f.read() -start_tag = '' -end_tag = '' -start_idx = content.find(start_tag) -end_idx = content.find(end_tag) -if start_idx != -1 and end_idx != -1: - modules_section = content[start_idx + len(start_tag):end_idx] - lines = [l for l in modules_section.splitlines(keepends=True) if l.strip()] - - java_indices = [i for i, l in enumerate(lines) if 'java-' in l] - if java_indices: - start_java = java_indices[0] - end_java = java_indices[-1] + 1 - java_lines = lines[start_java:end_java] - if not any(f'{module_name}' in l for l in java_lines): - java_lines.append(new_module) - java_lines.sort() - lines = lines[:start_java] + java_lines + lines[end_java:] - else: - if not any(f'{module_name}' in l for l in lines): - lines.append(new_module) - - new_content = content[:start_idx + len(start_tag)] + '\n' + ''.join(lines) + ' ' + content[end_idx:] - with open(pom_path, 'w') as f: - f.write(new_content) -" "pom.xml" "$SOURCE_REPO_NAME" +python3 "$UPDATE_ROOT_POM_SCRIPT" "pom.xml" "$SOURCE_REPO_NAME" echo "Committing root pom.xml modules update..." git add pom.xml diff --git a/monorepo-migration/update_root_pom.py b/monorepo-migration/update_root_pom.py new file mode 100644 index 000000000000..82822dd7734d --- /dev/null +++ b/monorepo-migration/update_root_pom.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +import sys + +def update_root_pom(pom_path, module_name): + new_module = f' {module_name}\n' + with open(pom_path, 'r') as f: + content = f.read() + + start_tag = '' + end_tag = '' + start_idx = content.find(start_tag) + end_idx = content.find(end_tag) + + if start_idx == -1 or end_idx == -1: + print(f"Error: {start_tag} or {end_tag} not found in {pom_path}") + sys.exit(1) + + modules_section = content[start_idx + len(start_tag):end_idx] + lines = [l for l in modules_section.splitlines(keepends=True) if l.strip()] + + java_indices = [i for i, l in enumerate(lines) if 'java-' in l] + if java_indices: + start_java = java_indices[0] + end_java = java_indices[-1] + 1 + java_lines = lines[start_java:end_java] + if not any(f'{module_name}' in l for l in java_lines): + java_lines.append(new_module) + java_lines.sort() + lines = lines[:start_java] + java_lines + lines[end_java:] + else: + if not any(f'{module_name}' in l for l in lines): + lines.append(new_module) + + new_content = content[:start_idx + len(start_tag)] + '\n' + ''.join(lines) + ' ' + content[end_idx:] + with open(pom_path, 'w') as f: + f.write(new_content) + +if __name__ == "__main__": + if len(sys.argv) != 3: + print("Usage: update_root_pom.py ") + sys.exit(1) + update_root_pom(sys.argv[1], sys.argv[2]) From be8f4878c1e648049ece1ef36bdfd8f114358e0f Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 8 Jan 2026 18:07:55 +0000 Subject: [PATCH 3403/3441] chore: add license headers --- monorepo-migration/migrate.sh | 14 ++++++++++++++ monorepo-migration/modernize_pom.py | 14 ++++++++++++++ monorepo-migration/transform_workflow.py | 14 ++++++++++++++ monorepo-migration/update_root_pom.py | 13 +++++++++++++ 4 files changed, 55 insertions(+) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index ddd694bcdc30..c51434a562af 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -1,4 +1,18 @@ #!/bin/bash +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + # Exit on error set -e diff --git a/monorepo-migration/modernize_pom.py b/monorepo-migration/modernize_pom.py index 983f2828261c..145f08aa3b63 100644 --- a/monorepo-migration/modernize_pom.py +++ b/monorepo-migration/modernize_pom.py @@ -1,3 +1,17 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import sys import re diff --git a/monorepo-migration/transform_workflow.py b/monorepo-migration/transform_workflow.py index 0e6b1c6927cb..3a719bb9710e 100644 --- a/monorepo-migration/transform_workflow.py +++ b/monorepo-migration/transform_workflow.py @@ -1,3 +1,17 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + import sys import re diff --git a/monorepo-migration/update_root_pom.py b/monorepo-migration/update_root_pom.py index 82822dd7734d..fec12930dee3 100644 --- a/monorepo-migration/update_root_pom.py +++ b/monorepo-migration/update_root_pom.py @@ -1,4 +1,17 @@ #!/usr/bin/env python3 +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. import sys From 26d5c49406874fab2cb0ef70b8a1c25a92f8bc00 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 8 Jan 2026 18:08:40 +0000 Subject: [PATCH 3404/3441] fix: use 2026 when fixing copyright headers --- monorepo-migration/migrate.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index c51434a562af..f6f20384d2ff 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -236,11 +236,11 @@ fi # 7.8 Fix copyright headers in Java files echo "Fixing copyright headers in Java files..." -find "$SOURCE_REPO_NAME" -name "*.java" -exec python3 -c "import sys, re; p = sys.argv[1]; c = open(p).read(); new_c = re.sub(r'Copyright \d{4} Google (Inc\.|LLC)', 'Copyright 2025 Google LLC', c); open(p, 'w').write(new_c)" {} \; +find "$SOURCE_REPO_NAME" -name "*.java" -exec python3 -c "import sys, re; p = sys.argv[1]; c = open(p).read(); new_c = re.sub(r'Copyright \d{4} Google (Inc\.|LLC)', 'Copyright 2026 Google LLC', c); open(p, 'w').write(new_c)" {} \; echo "Committing copyright header fixes..." git add "$SOURCE_REPO_NAME" -git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): update copyright headers to 2025 Google LLC" +git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): update copyright headers to 2026 Google LLC" # 7.9 Modernize root pom.xml echo "Modernizing root pom.xml..." From 0861c341ebe78b6593907ba06ace3e77f6842a7c Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 8 Jan 2026 19:27:57 +0000 Subject: [PATCH 3405/3441] refactor: extract fix copyright inline python into .py file --- monorepo-migration/fix_copyright_headers.py | 53 +++++++++++++++++++++ monorepo-migration/migrate.sh | 3 +- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 monorepo-migration/fix_copyright_headers.py diff --git a/monorepo-migration/fix_copyright_headers.py b/monorepo-migration/fix_copyright_headers.py new file mode 100644 index 000000000000..cd813851d383 --- /dev/null +++ b/monorepo-migration/fix_copyright_headers.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python3 +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import re +import sys + +def fix_copyright(path): + if os.path.isfile(path): + if path.endswith(".java"): + _fix_file(path) + elif os.path.isdir(path): + for root, _, files in os.walk(path): + for file in files: + if file.endswith(".java"): + _fix_file(os.path.join(root, file)) + +def _fix_file(file_path): + with open(file_path, 'r') as f: + content = f.read() + + # Replace "Copyright [Year] Google LLC" or "Copyright [Year] Google Inc." + # with "Copyright 2026 Google LLC" + new_content = re.sub( + r'Copyright \d{4} Google (Inc\.|LLC)', + 'Copyright 2026 Google LLC', + content + ) + + if new_content != content: + with open(file_path, 'w') as f: + f.write(new_content) + print(f"Updated copyright in {file_path}") + +if __name__ == "__main__": + if len(sys.argv) < 2: + print("Usage: fix_copyright_headers.py ...") + sys.exit(1) + + for arg in sys.argv[1:]: + fix_copyright(arg) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index f6f20384d2ff..996d6575571d 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -49,6 +49,7 @@ TRANSFORM_SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" TRANSFORM_SCRIPT="$TRANSFORM_SCRIPT_DIR/transform_workflow.py" MODERNIZE_POM_SCRIPT="$TRANSFORM_SCRIPT_DIR/modernize_pom.py" UPDATE_ROOT_POM_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_root_pom.py" +FIX_COPYRIGHT_SCRIPT="$TRANSFORM_SCRIPT_DIR/fix_copyright_headers.py" echo "Starting migration using git read-tree with isolated clones..." @@ -236,7 +237,7 @@ fi # 7.8 Fix copyright headers in Java files echo "Fixing copyright headers in Java files..." -find "$SOURCE_REPO_NAME" -name "*.java" -exec python3 -c "import sys, re; p = sys.argv[1]; c = open(p).read(); new_c = re.sub(r'Copyright \d{4} Google (Inc\.|LLC)', 'Copyright 2026 Google LLC', c); open(p, 'w').write(new_c)" {} \; +python3 "$FIX_COPYRIGHT_SCRIPT" "$SOURCE_REPO_NAME" echo "Committing copyright header fixes..." git add "$SOURCE_REPO_NAME" From 96d286e2786c92ad53f9dafc0f3dd265c1bebd47 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 8 Jan 2026 20:25:14 +0000 Subject: [PATCH 3406/3441] feat: update urls in the migrated pom.xml --- monorepo-migration/migrate.sh | 2 +- monorepo-migration/modernize_pom.py | 34 ++++++++++++++++++++++++++--- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 996d6575571d..e9d59f4480fc 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -246,7 +246,7 @@ git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): update copyright heade # 7.9 Modernize root pom.xml echo "Modernizing root pom.xml..." PARENT_VERSION=$(grep -m 1 ".*{x-version-update:google-cloud-java:current}" google-cloud-jar-parent/pom.xml | sed -E 's/.*(.*)<\/version>.*/\1/') -python3 "$MODERNIZE_POM_SCRIPT" "$SOURCE_REPO_NAME/pom.xml" "$PARENT_VERSION" +python3 "$MODERNIZE_POM_SCRIPT" "$SOURCE_REPO_NAME/pom.xml" "$PARENT_VERSION" "$SOURCE_REPO_NAME" echo "Committing root pom.xml modernization..." git add "$SOURCE_REPO_NAME/pom.xml" diff --git a/monorepo-migration/modernize_pom.py b/monorepo-migration/modernize_pom.py index 145f08aa3b63..62879d77a79a 100644 --- a/monorepo-migration/modernize_pom.py +++ b/monorepo-migration/modernize_pom.py @@ -15,7 +15,7 @@ import sys import re -def modernize_pom(file_path, parent_version): +def modernize_pom(file_path, parent_version, source_repo_name=None): with open(file_path, 'r') as f: lines = f.readlines() @@ -29,6 +29,33 @@ def modernize_pom(file_path, parent_version): has_x_version_update = False for line in lines: + # URL Modernization + if any(tag in line for tag in ['', '', '']): + if 'github.com' in line and 'googleapis/' in line: + if source_repo_name: + repo_pattern = re.escape(source_repo_name) + else: + repo_pattern = r'[a-zA-Z0-9-]+' + + # Replace HTTPS URLs + line = re.sub( + r'https://github\.com/googleapis/' + repo_pattern, + 'https://github.com/googleapis/google-cloud-java', + line + ) + # Replace Git SSH URLs + line = re.sub( + r'git@github\.com:googleapis/' + repo_pattern + r'(\.git)?', + 'git@github.com:googleapis/google-cloud-java.git', + line + ) + # Handle scm:git: prefix if it has https + line = re.sub( + r'scm:git:https://github\.com/googleapis/' + repo_pattern, + 'scm:git:https://github.com/googleapis/google-cloud-java.git', + line + ) + # Parent section modernization if '' in line and not in_parent: in_parent = True @@ -110,7 +137,8 @@ def modernize_pom(file_path, parent_version): if __name__ == "__main__": if len(sys.argv) > 2: - modernize_pom(sys.argv[1], sys.argv[2]) + source_repo = sys.argv[3] if len(sys.argv) > 3 else None + modernize_pom(sys.argv[1], sys.argv[2], source_repo) else: - print("Usage: python3 modernize_pom.py ") + print("Usage: python3 modernize_pom.py [source_repo_name]") sys.exit(1) From 56672986b75a1f8c2b99e6e5dd525494fdd561a2 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 8 Jan 2026 21:49:17 +0000 Subject: [PATCH 3407/3441] fix: preserve explicilty declared versions in pom.xml --- monorepo-migration/modernize_pom.py | 33 +++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/monorepo-migration/modernize_pom.py b/monorepo-migration/modernize_pom.py index 62879d77a79a..407a2d8c75cc 100644 --- a/monorepo-migration/modernize_pom.py +++ b/monorepo-migration/modernize_pom.py @@ -26,7 +26,9 @@ def modernize_pom(file_path, parent_version, source_repo_name=None): in_dependency = False in_reporting = False current_dependency_lines = [] - has_x_version_update = False + should_preserve = False + current_group_id = None + has_version = False for line in lines: # URL Modernization @@ -36,7 +38,7 @@ def modernize_pom(file_path, parent_version, source_repo_name=None): repo_pattern = re.escape(source_repo_name) else: repo_pattern = r'[a-zA-Z0-9-]+' - + # Replace HTTPS URLs line = re.sub( r'https://github\.com/googleapis/' + repo_pattern, @@ -82,7 +84,7 @@ def modernize_pom(file_path, parent_version, source_repo_name=None): in_dep_mgmt = False new_lines.append(line) continue - + if in_dep_mgmt: if '' in line: in_dependencies = True @@ -92,26 +94,39 @@ def modernize_pom(file_path, parent_version, source_repo_name=None): in_dependencies = False new_lines.append(line) continue - + if in_dependencies: if '' in line: in_dependency = True current_dependency_lines = [line] - has_x_version_update = False + should_preserve = False + current_group_id = None + has_version = False continue if '' in line: in_dependency = False current_dependency_lines.append(line) - if has_x_version_update: + + # Preservation logic: + # 1. Has x-version-update comment + # 2. Is NOT com.google group AND has a version tag + is_external = current_group_id and not current_group_id.startswith('com.google') + if should_preserve or (is_external and has_version): new_lines.extend(current_dependency_lines) continue - + if in_dependency: current_dependency_lines.append(line) if '{x-version-update:' in line: - has_x_version_update = True + should_preserve = True + if '' in line: + match = re.search(r'(.*?)', line) + if match: + current_group_id = match.group(1).strip() + if '' in line: + has_version = True continue - + # Prune comments and extra whitespace in depMgmt for a cleaner result if not line.strip(): new_lines.append(line) From f7c539fe78eed516ec328b7485c89fd62e278c3a Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 8 Jan 2026 22:04:50 +0000 Subject: [PATCH 3408/3441] fix: also preserve explicit google-cloud-x dependency versions --- monorepo-migration/modernize_pom.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/monorepo-migration/modernize_pom.py b/monorepo-migration/modernize_pom.py index 407a2d8c75cc..bdf7f57a6027 100644 --- a/monorepo-migration/modernize_pom.py +++ b/monorepo-migration/modernize_pom.py @@ -101,6 +101,7 @@ def modernize_pom(file_path, parent_version, source_repo_name=None): current_dependency_lines = [line] should_preserve = False current_group_id = None + current_artifact_id = None has_version = False continue if '' in line: @@ -110,8 +111,11 @@ def modernize_pom(file_path, parent_version, source_repo_name=None): # Preservation logic: # 1. Has x-version-update comment # 2. Is NOT com.google group AND has a version tag + # 3. Is com.google.cloud group AND artifactId starts with google-cloud- AND has a version tag is_external = current_group_id and not current_group_id.startswith('com.google') - if should_preserve or (is_external and has_version): + is_google_cloud_lib = current_group_id == 'com.google.cloud' and current_artifact_id and current_artifact_id.startswith('google-cloud-') + + if should_preserve or (is_external and has_version) or (is_google_cloud_lib and has_version): new_lines.extend(current_dependency_lines) continue @@ -123,6 +127,10 @@ def modernize_pom(file_path, parent_version, source_repo_name=None): match = re.search(r'(.*?)', line) if match: current_group_id = match.group(1).strip() + if '' in line: + match = re.search(r'(.*?)', line) + if match: + current_artifact_id = match.group(1).strip() if '' in line: has_version = True continue From 08d1feb505bc6519857a6904db960b778702e936 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 8 Jan 2026 23:22:28 +0000 Subject: [PATCH 3409/3441] feat: prompt for CODEOWNERS value --- monorepo-migration/migrate.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index e9d59f4480fc..589b35b19126 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -34,6 +34,9 @@ check_command mvn MONOREPO_URL="https://github.com/googleapis/google-cloud-java" SOURCE_REPO_URL="${SOURCE_REPO_URL:-https://github.com/googleapis/java-logging}" CODEOWNER="${CODEOWNER:-}" +if [ -z "$CODEOWNER" ]; then + read -p "Enter CODEOWNER (e.g., @chingor13): " CODEOWNER +fi # Derive names from URLs to avoid duplication SOURCE_REPO_NAME="${SOURCE_REPO_URL##*/}" From 10a948ae5f9a37b61fe35925b3895e9c01ceb954 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 8 Jan 2026 23:26:18 +0000 Subject: [PATCH 3410/3441] feat: prompt for SOURCE_REPO_URL value --- monorepo-migration/migrate.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 589b35b19126..54bddeecf44c 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -32,7 +32,10 @@ check_command mvn # Configuration MONOREPO_URL="https://github.com/googleapis/google-cloud-java" -SOURCE_REPO_URL="${SOURCE_REPO_URL:-https://github.com/googleapis/java-logging}" +if [ -z "$SOURCE_REPO_URL" ]; then + read -p "Enter SOURCE_REPO_URL [https://github.com/googleapis/java-logging]: " input_url + SOURCE_REPO_URL="${input_url:-https://github.com/googleapis/java-logging}" +fi CODEOWNER="${CODEOWNER:-}" if [ -z "$CODEOWNER" ]; then read -p "Enter CODEOWNER (e.g., @chingor13): " CODEOWNER From 8f930845ac22144a0a0288ce152c46e8586701e0 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Mon, 12 Jan 2026 22:07:53 +0000 Subject: [PATCH 3411/3441] feat: merge generator config yaml --- monorepo-migration/migrate.sh | 13 +-- .../update_generation_config.py | 107 ++++++++++++++++++ 2 files changed, 109 insertions(+), 11 deletions(-) create mode 100644 monorepo-migration/update_generation_config.py diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 54bddeecf44c..4e425e4a596c 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -56,6 +56,7 @@ TRANSFORM_SCRIPT="$TRANSFORM_SCRIPT_DIR/transform_workflow.py" MODERNIZE_POM_SCRIPT="$TRANSFORM_SCRIPT_DIR/modernize_pom.py" UPDATE_ROOT_POM_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_root_pom.py" FIX_COPYRIGHT_SCRIPT="$TRANSFORM_SCRIPT_DIR/fix_copyright_headers.py" +UPDATE_GENERATION_CONFIG_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_generation_config.py" echo "Starting migration using git read-tree with isolated clones..." @@ -209,17 +210,7 @@ fi echo "Updating generation_config.yaml..." SOURCE_CONFIG="$SOURCE_REPO_NAME/generation_config.yaml" if [ -f "$SOURCE_CONFIG" ]; then - # Extract the library entry (starts with - api_shortname) - # This assumes the source config only has one library or we want the first one - ENTRY=$(awk '/^ - api_shortname:/{flag=1; print $0; next} /^ - / && flag{flag=0} flag' "$SOURCE_CONFIG") - - # Simple cleanup: remove repo and repo_short if they exist - # Adjust indentation to match monorepo (0 spaces for -) - CLEAN_ENTRY=$(echo "$ENTRY" | sed '/repo:/d' | sed '/repo_short:/d' | sed 's/^ //') - - # Append to target generation_config.yaml - echo "" >> generation_config.yaml - echo "$CLEAN_ENTRY" >> generation_config.yaml + python3 "$UPDATE_GENERATION_CONFIG_SCRIPT" "generation_config.yaml" "$SOURCE_CONFIG" echo "Committing generation_config.yaml update..." git add generation_config.yaml diff --git a/monorepo-migration/update_generation_config.py b/monorepo-migration/update_generation_config.py new file mode 100644 index 000000000000..1ba7e6fc8c3e --- /dev/null +++ b/monorepo-migration/update_generation_config.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python3 +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +import yaml +import re + +def get_library_id(lib): + """ + Returns a unique identifier for a library. + Prefer 'library_name', then 'api_shortname'. + """ + if 'library_name' in lib: + return f"java-{lib['library_name']}" + if 'api_shortname' in lib: + return f"java-{lib['api_shortname']}" + return "unknown" + +def merge_libraries(target_libs, source_libs): + """ + Merges source_libs into target_libs. + Libraries are matched by get_library_id. + GAPICs are merged and deduplicated by proto_path. + The final list is sorted by library_id. + """ + # Map from library_id to library dict + target_map = {get_library_id(lib): lib for lib in target_libs} + + for s_lib in source_libs: + lib_id = get_library_id(s_lib) + + # Clean up source library (remove repo fields) + s_lib_cleaned = {k: v for k, v in s_lib.items() if k not in ('repo', 'repo_short')} + + if lib_id in target_map: + t_lib = target_map[lib_id] + # Merge GAPICs + t_gapics_list = t_lib.get('GAPICs', []) + s_gapics_list = s_lib_cleaned.get('GAPICs', []) + + # Map by proto_path for deduplication + proto_map = {g['proto_path']: g for g in t_gapics_list} + for g in s_gapics_list: + proto_map[g['proto_path']] = g + + # Sort GAPICs by proto_path + sorted_protos = sorted(proto_map.keys()) + t_lib['GAPICs'] = [proto_map[p] for p in sorted_protos] + + # Update other fields from source + for k, v in s_lib_cleaned.items(): + if k != 'GAPICs': + t_lib[k] = v + else: + target_map[lib_id] = s_lib_cleaned + + # Return sorted list of libraries + sorted_ids = sorted(target_map.keys()) + return [target_map[lib_id] for lib_id in sorted_ids] + +def update_config(target_path, source_path): + with open(target_path, 'r') as f: + target_content = f.read() + + with open(source_path, 'r') as f: + source_data = yaml.safe_load(f) or {} + + # Load target data + target_data = yaml.safe_load(target_content) or {} + + target_libs = target_data.get('libraries', []) + source_libs = source_data.get('libraries', []) + + merged_libs = merge_libraries(target_libs, source_libs) + target_data['libraries'] = merged_libs + + # Write back + with open(target_path, 'w') as f: + # Check if there was a license header in the original file + header_match = re.search(r'^(#.*?\n\n)', target_content, re.DOTALL) + if header_match: + f.write(header_match.group(1)) + + # Use yaml.dump to write the data. + # sort_keys=False to preserve order of fields within libraries if possible (YAML 1.2+ usually does, but pyyaml depends) + yaml.dump(target_data, f, sort_keys=False, default_flow_style=False, indent=2) + +if __name__ == "__main__": + if len(sys.argv) != 3: + print("Usage: python3 update_generation_config.py ") + sys.exit(1) + + target_path = sys.argv[1] + source_path = sys.argv[2] + update_config(target_path, source_path) From 3d2927a97f641283bf87fd0b147c468ccd400f17 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 14 Jan 2026 22:26:50 +0000 Subject: [PATCH 3412/3441] chore: read root CODEOWNER entry from source --- monorepo-migration/migrate.sh | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 4e425e4a596c..682b9839b126 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -37,9 +37,6 @@ if [ -z "$SOURCE_REPO_URL" ]; then SOURCE_REPO_URL="${input_url:-https://github.com/googleapis/java-logging}" fi CODEOWNER="${CODEOWNER:-}" -if [ -z "$CODEOWNER" ]; then - read -p "Enter CODEOWNER (e.g., @chingor13): " CODEOWNER -fi # Derive names from URLs to avoid duplication SOURCE_REPO_NAME="${SOURCE_REPO_URL##*/}" @@ -77,6 +74,35 @@ else cd - > /dev/null fi +# 1.5 Extract CODEOWNERS from source repository as default +if [ -z "$CODEOWNER" ]; then + echo "Attempting to find default CODEOWNER from source repository..." + CODEOWNERS_FILE="" + if [ -f "$SOURCE_DIR/.github/CODEOWNERS" ]; then + CODEOWNERS_FILE="$SOURCE_DIR/.github/CODEOWNERS" + elif [ -f "$SOURCE_DIR/CODEOWNERS" ]; then + CODEOWNERS_FILE="$SOURCE_DIR/CODEOWNERS" + fi + + DEFAULT_CODEOWNER="" + if [ -n "$CODEOWNERS_FILE" ]; then + # Extract the line(s) starting with * (global owners) + # Use grep to find the line, then sed to remove the '*' and standard team handle + EXTRACTED_OWNERS=$(grep "^\*" "$CODEOWNERS_FILE" | sed 's/^\*[[:space:]]*//' | sed 's/@googleapis\/cloud-java-team-teamsync//g' | xargs) + if [ -n "$EXTRACTED_OWNERS" ]; then + DEFAULT_CODEOWNER="$EXTRACTED_OWNERS" + echo "Found default CODEOWNER: $DEFAULT_CODEOWNER" + fi + fi + + if [ -n "$DEFAULT_CODEOWNER" ]; then + read -p "Enter CODEOWNER [$DEFAULT_CODEOWNER]: " input_owner + CODEOWNER="${input_owner:-$DEFAULT_CODEOWNER}" + else + read -p "Enter CODEOWNER (e.g., @chingor13): " CODEOWNER + fi +fi + # 2. Clone the target monorepo (the "isolated clone") if [ ! -d "$TARGET_DIR" ]; then echo "Cloning target monorepo: $MONOREPO_URL into $TARGET_DIR" From e26affa31ded025b063b006ebf0d1c682ce2957c Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 14 Jan 2026 23:51:38 +0000 Subject: [PATCH 3413/3441] migrate .OwlBot-hermetic.yaml --- monorepo-migration/migrate.sh | 24 +++++- monorepo-migration/update_owlbot_hermetic.py | 77 ++++++++++++++++++++ 2 files changed, 98 insertions(+), 3 deletions(-) create mode 100644 monorepo-migration/update_owlbot_hermetic.py diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 682b9839b126..3c81fc860542 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -54,6 +54,7 @@ MODERNIZE_POM_SCRIPT="$TRANSFORM_SCRIPT_DIR/modernize_pom.py" UPDATE_ROOT_POM_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_root_pom.py" FIX_COPYRIGHT_SCRIPT="$TRANSFORM_SCRIPT_DIR/fix_copyright_headers.py" UPDATE_GENERATION_CONFIG_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_generation_config.py" +UPDATE_OWLBOT_HERMETIC_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_owlbot_hermetic.py" echo "Starting migration using git read-tree with isolated clones..." @@ -258,7 +259,24 @@ if [ -f "$SOURCE_VERSIONS" ]; then git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): consolidate versions.txt into root" fi -# 7.8 Fix copyright headers in Java files +# 7.8 Migrate .OwlBot-hermetic.yaml +echo "Migrating .OwlBot-hermetic.yaml..." +if [ -f "$SOURCE_DIR/.github/.OwlBot-hermetic.yaml" ]; then + SOURCE_OWLBOT="$SOURCE_DIR/.github/.OwlBot-hermetic.yaml" +else + SOURCE_OWLBOT="" +fi + +if [ -n "$SOURCE_OWLBOT" ]; then + TARGET_OWLBOT="$SOURCE_REPO_NAME/.OwlBot-hermetic.yaml" + python3 "$UPDATE_OWLBOT_HERMETIC_SCRIPT" "$TARGET_OWLBOT" "$SOURCE_OWLBOT" "$SOURCE_REPO_NAME" + + echo "Committing .OwlBot-hermetic.yaml migration..." + git add "$TARGET_OWLBOT" + git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate .OwlBot-hermetic.yaml" +fi + +# 7.9 Fix copyright headers in Java files echo "Fixing copyright headers in Java files..." python3 "$FIX_COPYRIGHT_SCRIPT" "$SOURCE_REPO_NAME" @@ -266,7 +284,7 @@ echo "Committing copyright header fixes..." git add "$SOURCE_REPO_NAME" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): update copyright headers to 2026 Google LLC" -# 7.9 Modernize root pom.xml +# 7.10 Modernize root pom.xml echo "Modernizing root pom.xml..." PARENT_VERSION=$(grep -m 1 ".*{x-version-update:google-cloud-java:current}" google-cloud-jar-parent/pom.xml | sed -E 's/.*(.*)<\/version>.*/\1/') python3 "$MODERNIZE_POM_SCRIPT" "$SOURCE_REPO_NAME/pom.xml" "$PARENT_VERSION" "$SOURCE_REPO_NAME" @@ -275,7 +293,7 @@ echo "Committing root pom.xml modernization..." git add "$SOURCE_REPO_NAME/pom.xml" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): modernize root pom.xml" -# 7.10 Verify compilation +# 7.11 Verify compilation echo "Verifying compilation..." (cd "$SOURCE_REPO_NAME" && mvn compile -DskipTests -T 1C) diff --git a/monorepo-migration/update_owlbot_hermetic.py b/monorepo-migration/update_owlbot_hermetic.py new file mode 100644 index 000000000000..7f9f803822f5 --- /dev/null +++ b/monorepo-migration/update_owlbot_hermetic.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import sys +import yaml +import re + +def update_config(target_path, source_path, prefix): + """ + Reads source_path, prepends prefix to paths in deep-remove-regex and deep-preserve-regex, + and writes to target_path. + """ + with open(source_path, 'r') as f: + source_content = f.read() + + # Load source data + source_data = yaml.safe_load(source_content) or {} + + # Define fields to update + fields_to_update = ['deep-remove-regex', 'deep-preserve-regex'] + + for field in fields_to_update: + if field in source_data: + updated_list = [] + for item in source_data[field]: + # If item is a string, prepend prefix + # Regex might need handling if it starts with ^ + # But usually these are just paths. + # Assuming simple concatenation for now as per requirement. + # "When referencing paths in the deep-remove-regex and deep-preserve-regex, the new directory name should be prefixed" + + # If the regex starts with ^, insert the prefix after it. + if item.startswith('^'): + updated_list.append(f"^{prefix}/{item[1:]}") + else: + updated_list.append(f"/{prefix}{item}") + source_data[field] = updated_list + + if 'deep-copy-regex' in source_data: + for item in source_data['deep-copy-regex']: + if 'dest' in item and item['dest'].startswith('/owl-bot-staging/'): + item['dest'] = item['dest'].replace('/owl-bot-staging/', f'/owl-bot-staging/{prefix}/', 1) + + # Write to target_path + with open(target_path, 'w') as f: + # Check if there was a license header in the original file + # Match a block of lines starting with # at the beginning of the file + header_match = re.search(r'^((?:#[^\n]*\n)+)', source_content) + if header_match: + f.write(header_match.group(1)) + f.write("\n") # Add a newline after the header + + # Use yaml.dump to write the data. + yaml.dump(source_data, f, sort_keys=False, default_flow_style=False, indent=2) + +if __name__ == "__main__": + if len(sys.argv) != 4: + print("Usage: python3 update_owlbot_hermetic.py ") + sys.exit(1) + + target_path = sys.argv[1] + source_path = sys.argv[2] + prefix = sys.argv[3] + + update_config(target_path, source_path, prefix) From 28c60c0f7d6b2432608e6709d200796faad20fc0 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 15 Jan 2026 18:07:30 +0000 Subject: [PATCH 3414/3441] migrate existing owlbot.py file and replace the template excludes --- monorepo-migration/migrate.sh | 25 +++++ monorepo-migration/update_owlbot.py | 159 ++++++++++++++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100644 monorepo-migration/update_owlbot.py diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 3c81fc860542..63a8b1914a1c 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -55,6 +55,7 @@ UPDATE_ROOT_POM_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_root_pom.py" FIX_COPYRIGHT_SCRIPT="$TRANSFORM_SCRIPT_DIR/fix_copyright_headers.py" UPDATE_GENERATION_CONFIG_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_generation_config.py" UPDATE_OWLBOT_HERMETIC_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_owlbot_hermetic.py" +TRANSFORM_OWLBOT_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_owlbot.py" echo "Starting migration using git read-tree with isolated clones..." @@ -276,6 +277,30 @@ if [ -n "$SOURCE_OWLBOT" ]; then git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate .OwlBot-hermetic.yaml" fi + +# 7.8b Migrate owlbot.py +echo "Migrating owlbot.py..." +if [ -f "$SOURCE_DIR/owlbot.py" ]; then + TARGET_OWLBOT="$SOURCE_REPO_NAME/owlbot.py" + + # Check for a template owlbot.py to source common excludes from + TEMPLATE_OWLBOT="" + if [ -f "java-workstations/owlbot.py" ]; then + TEMPLATE_OWLBOT="java-workstations/owlbot.py" + echo "Using $TEMPLATE_OWLBOT as template for excludes." + fi + + if [ -n "$TEMPLATE_OWLBOT" ]; then + python3 "$TRANSFORM_OWLBOT_SCRIPT" "$TARGET_OWLBOT" "$SOURCE_DIR/owlbot.py" "$TEMPLATE_OWLBOT" + else + python3 "$TRANSFORM_OWLBOT_SCRIPT" "$TARGET_OWLBOT" "$SOURCE_DIR/owlbot.py" + fi + + echo "Committing owlbot.py migration..." + git add "$TARGET_OWLBOT" + git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate owlbot.py" +fi + # 7.9 Fix copyright headers in Java files echo "Fixing copyright headers in Java files..." python3 "$FIX_COPYRIGHT_SCRIPT" "$SOURCE_REPO_NAME" diff --git a/monorepo-migration/update_owlbot.py b/monorepo-migration/update_owlbot.py new file mode 100644 index 000000000000..ec40992ca412 --- /dev/null +++ b/monorepo-migration/update_owlbot.py @@ -0,0 +1,159 @@ +# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import ast +import sys +import os + +def extract_info(source_code): + """Extracts excludes and replacement calls from the source owlbot.py.""" + excludes = [] + replacements = [] + + try: + tree = ast.parse(source_code) + except SyntaxError: + return excludes, replacements + + for node in ast.walk(tree): + # Look for s.replace(...) calls + if isinstance(node, ast.Call): + if isinstance(node.func, ast.Attribute) and node.func.attr == 'replace': + # We found a replace call. We want to reconstruct the source code for this call. + # However, ast.unparse is only available in Python 3.9+. + # If we are on an older python, we might need a workaround or just grab the line range. + # Since we likely have 3.9+, let's try ast.unparse if available, otherwise strict extraction. + if sys.version_info >= (3, 9): + replacements.append(ast.unparse(node)) + else: + # Fallback for older python: just comment it needs manual migration or try simple extraction + # For now assume 3.9+ which is standard in this environment + pass + + # Look for java.common_templates or common.java_library calls to find excludes + if isinstance(node, ast.Call): + is_common_templates = False + if isinstance(node.func, ast.Attribute): + if node.func.attr == 'common_templates': + is_common_templates = True + elif node.func.attr == 'java_library': # older name + is_common_templates = True + + if is_common_templates: + for keyword in node.keywords: + if keyword.arg == 'excludes': + if isinstance(keyword.value, ast.List): + for elt in keyword.value.elts: + if isinstance(elt, ast.Constant): # Python 3.8+ + excludes.append(elt.value) + elif isinstance(elt, ast.Str): # Python < 3.8 + excludes.append(elt.s) + break + return excludes, replacements + + +def generate_target_content(excludes, replacements, standard_excludes=None): + # Default excludes for monorepo if no template is provided + if standard_excludes is None: + standard_excludes = { + ".github/*", + ".kokoro/*", + "samples/*", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.md", + "LICENSE", + "SECURITY.md", + "java.header", + "license-checks.xml", + "renovate.json", + ".gitignore" + } + + # Merge excludes + # User requested to ignore source excludes and strictly use standard excludes + final_excludes = sorted(list(set(standard_excludes))) + + # Format replacements with indentation + formatted_replacements = "" + for rep in replacements: + formatted_replacements += " " + rep + "\n" + + excludes_str = ",\n ".join([f'"{e}"' for e in final_excludes]) + + content = f"""# Copyright 2026 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import synthtool as s +from synthtool.languages import java + +for library in s.get_staging_dirs(): + # put any special-case replacements here + s.move(library) +{formatted_replacements} +s.remove_staging_dirs() +java.common_templates(monorepo=True, excludes=[ + {excludes_str} +]) +""" + return content + +def main(): + if len(sys.argv) < 3: + print("Usage: update_owlbot.py [template_file]") + sys.exit(1) + + target_file = sys.argv[1] + source_file = sys.argv[2] + template_file = sys.argv[3] if len(sys.argv) > 3 else None + + if not os.path.exists(source_file): + print(f"Source file {source_file} not found.") + sys.exit(1) + + with open(source_file, 'r') as f: + source_code = f.read() + + excludes, replacements = extract_info(source_code) + + standard_excludes = None + if template_file: + if os.path.exists(template_file): + with open(template_file, 'r') as f: + template_code = f.read() + template_excludes, _ = extract_info(template_code) + standard_excludes = template_excludes + else: + print(f"Template file {template_file} not found. using default excludes.") + + target_content = generate_target_content(excludes, replacements, standard_excludes) + + os.makedirs(os.path.dirname(target_file), exist_ok=True) + with open(target_file, 'w') as f: + f.write(target_content) + + print(f"Generated {target_file}") + +if __name__ == "__main__": + main() From b5de9906c587f69ce4bd7f2405695adf4e28e842 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 15 Jan 2026 18:17:26 +0000 Subject: [PATCH 3415/3441] skip .kokoro folder --- monorepo-migration/migrate.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 63a8b1914a1c..b1837594c054 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -171,6 +171,7 @@ rm -f "$SOURCE_REPO_NAME/.gitignore" rm -f "$SOURCE_REPO_NAME/renovate.json" rm -f "$SOURCE_REPO_NAME/LICENSE" rm -f "$SOURCE_REPO_NAME/java.header" +rm -rf "$SOURCE_REPO_NAME/.kokoro" rm -f "$SOURCE_REPO_NAME/license-checks.xml" find "$SOURCE_REPO_NAME" -maxdepth 1 -name "*.md" ! -name "CHANGELOG.md" ! -name "README.md" -delete From 471aa2fa53680b8e4a5eb3f57cd37d08da183278 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 15 Jan 2026 18:27:43 +0000 Subject: [PATCH 3416/3441] remove more unnecessary files --- monorepo-migration/migrate.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index b1837594c054..7b519761bece 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -172,6 +172,8 @@ rm -f "$SOURCE_REPO_NAME/renovate.json" rm -f "$SOURCE_REPO_NAME/LICENSE" rm -f "$SOURCE_REPO_NAME/java.header" rm -rf "$SOURCE_REPO_NAME/.kokoro" +rm -f "$SOURCE_REPO_NAME/codecov.yaml" +rm -f "$SOURCE_REPO_NAME/synth.metadata" rm -f "$SOURCE_REPO_NAME/license-checks.xml" find "$SOURCE_REPO_NAME" -maxdepth 1 -name "*.md" ! -name "CHANGELOG.md" ! -name "README.md" -delete From 4204b77a86065fae49b30d1274a5aa5880d8b052 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 15 Jan 2026 20:32:04 +0000 Subject: [PATCH 3417/3441] remove only kokoro configs and clean up generation config --- monorepo-migration/migrate.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 7b519761bece..95e6f58656b3 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -171,7 +171,7 @@ rm -f "$SOURCE_REPO_NAME/.gitignore" rm -f "$SOURCE_REPO_NAME/renovate.json" rm -f "$SOURCE_REPO_NAME/LICENSE" rm -f "$SOURCE_REPO_NAME/java.header" -rm -rf "$SOURCE_REPO_NAME/.kokoro" +rm -rf "$SOURCE_REPO_NAME/.kokoro/continuous" "$SOURCE_REPO_NAME/.kokoro/nightly" "$SOURCE_REPO_NAME/.kokoro/presubmit" rm -f "$SOURCE_REPO_NAME/codecov.yaml" rm -f "$SOURCE_REPO_NAME/synth.metadata" rm -f "$SOURCE_REPO_NAME/license-checks.xml" @@ -243,8 +243,11 @@ SOURCE_CONFIG="$SOURCE_REPO_NAME/generation_config.yaml" if [ -f "$SOURCE_CONFIG" ]; then python3 "$UPDATE_GENERATION_CONFIG_SCRIPT" "generation_config.yaml" "$SOURCE_CONFIG" + # Remove the source generation_config.yaml as it is now merged + rm "$SOURCE_CONFIG" + echo "Committing generation_config.yaml update..." - git add generation_config.yaml + git add generation_config.yaml "$SOURCE_CONFIG" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): add library to generation_config.yaml" fi From aadfb7cebc9b471c0b3b4d4df8e9752c04ba2887 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 15 Jan 2026 21:22:22 +0000 Subject: [PATCH 3418/3441] disable java17 profile for split repo's java8 test --- monorepo-migration/transform_workflow.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/monorepo-migration/transform_workflow.py b/monorepo-migration/transform_workflow.py index 3a719bb9710e..a333b1491fcf 100644 --- a/monorepo-migration/transform_workflow.py +++ b/monorepo-migration/transform_workflow.py @@ -73,6 +73,8 @@ def transform(content, lib_name): continue if not skip_current_job: + if 'run: echo "SUREFIRE_JVM_OPT=' in line and '!java17' not in line: + line = line.replace('" >> $GITHUB_ENV', ' -P !java17" >> $GITHUB_ENV') new_lines.append(line) return "\n".join(new_lines) From cb9b7c2be3313d1b74bcb31518c50a7a9ecabc37 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Fri, 16 Jan 2026 01:12:24 +0000 Subject: [PATCH 3419/3441] add git config for longpaths on windows build --- monorepo-migration/transform_workflow.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/monorepo-migration/transform_workflow.py b/monorepo-migration/transform_workflow.py index a333b1491fcf..741a54f80fbb 100644 --- a/monorepo-migration/transform_workflow.py +++ b/monorepo-migration/transform_workflow.py @@ -35,6 +35,8 @@ def transform(content, lib_name): in_jobs = False skip_current_job = False + current_job_is_windows = False + for line in lines: if line.startswith('name:') and not in_jobs: name_match = re.match(r'^name:\s*(.*)', line) @@ -60,6 +62,7 @@ def transform(content, lib_name): job_match = re.match(r'^ ([\w-]+):', line) if job_match: job_name = job_match.group(1) + current_job_is_windows = False # Reset for new job if job_name == 'clirr': skip_current_job = True continue @@ -73,6 +76,15 @@ def transform(content, lib_name): continue if not skip_current_job: + if 'runs-on:' in line and 'windows' in line: + current_job_is_windows = True + + if line.strip() == 'steps:' and current_job_is_windows: + new_lines.append(line) + new_lines.append(" - name: Support longpaths") + new_lines.append(" run: git config --system core.longpaths true") + continue + if 'run: echo "SUREFIRE_JVM_OPT=' in line and '!java17' not in line: line = line.replace('" >> $GITHUB_ENV', ' -P !java17" >> $GITHUB_ENV') new_lines.append(line) From b2a9962d4c56dc01976c318190cf6326fd9493b8 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Fri, 16 Jan 2026 21:16:38 +0000 Subject: [PATCH 3420/3441] fix working directory for longpaths --- monorepo-migration/transform_workflow.py | 1 + 1 file changed, 1 insertion(+) diff --git a/monorepo-migration/transform_workflow.py b/monorepo-migration/transform_workflow.py index 741a54f80fbb..f4175cf61c34 100644 --- a/monorepo-migration/transform_workflow.py +++ b/monorepo-migration/transform_workflow.py @@ -83,6 +83,7 @@ def transform(content, lib_name): new_lines.append(line) new_lines.append(" - name: Support longpaths") new_lines.append(" run: git config --system core.longpaths true") + new_lines.append(" working-directory: .") continue if 'run: echo "SUREFIRE_JVM_OPT=' in line and '!java17' not in line: From 4b18ca0202cfc3bec35926281b39572d82edddc2 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Fri, 16 Jan 2026 21:17:02 +0000 Subject: [PATCH 3421/3441] allow running root ci scripts in BUILD_SUBDIR --- .kokoro/build.sh | 15 ++++++++++++++- .kokoro/dependencies.sh | 12 ++++++++++++ generation/check_non_release_please_versions.sh | 4 ++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index e604c8768b86..675fd276cbcd 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -33,10 +33,17 @@ if [ -f "${KOKORO_GFILE_DIR}/secret_manager/java-bigqueryconnection-samples-secr source "${KOKORO_GFILE_DIR}/secret_manager/java-bigqueryconnection-samples-secrets" fi +if [[ -n "${BUILD_SUBDIR}" ]] +then + echo "Running in subdir: ${BUILD_SUBDIR}" + pushd "${BUILD_SUBDIR}" +fi + RETURN_CODE=0 case ${JOB_TYPE} in test) + echo "SUREFIRE_JVM_OPT: ${SUREFIRE_JVM_OPT}" retry_with_backoff 3 10 \ mvn test \ -B -ntp \ @@ -48,7 +55,7 @@ case ${JOB_TYPE} in -Dflatten.skip=true \ -Danimal.sniffer.skip=true \ -Dmaven.wagon.http.retryHandler.count=5 \ - -T 1C + -T 1C ${SUREFIRE_JVM_OPT} RETURN_CODE=$? echo "Finished running unit tests" ;; @@ -125,6 +132,12 @@ case ${JOB_TYPE} in esac +if [[ -n "${BUILD_SUBDIR}" ]] +then + echo "restoring directory" + popd +fi + if [ "${REPORT_COVERAGE}" == "true" ]; then bash ${KOKORO_GFILE_DIR}/codecov.sh fi diff --git a/.kokoro/dependencies.sh b/.kokoro/dependencies.sh index bd8960246f66..1ea066f5bf77 100755 --- a/.kokoro/dependencies.sh +++ b/.kokoro/dependencies.sh @@ -49,6 +49,12 @@ function determineMavenOpts() { export MAVEN_OPTS=$(determineMavenOpts) +if [[ -n "${BUILD_SUBDIR}" ]] +then + echo "Running in subdir: ${BUILD_SUBDIR}" + pushd "${BUILD_SUBDIR}" +fi + # this should run maven enforcer retry_with_backoff 3 10 \ mvn install -B -V -ntp \ @@ -57,3 +63,9 @@ retry_with_backoff 3 10 \ -Dclirr.skip=true mvn -B dependency:analyze -DfailOnWarning=true + +if [[ -n "${BUILD_SUBDIR}" ]] +then + echo "Leaving subdir: ${BUILD_SUBDIR}" + popd +fi diff --git a/generation/check_non_release_please_versions.sh b/generation/check_non_release_please_versions.sh index bb7e2f0e88e0..0a0e32c22874 100755 --- a/generation/check_non_release_please_versions.sh +++ b/generation/check_non_release_please_versions.sh @@ -19,6 +19,10 @@ for pomFile in $(find . -mindepth 2 -name pom.xml | sort ); do echo "Skipping version check for java-samples directory" continue fi + if [[ "${pomFile}" =~ .*/samples/.* ]]; then + echo "Skipping version check for samples directory" + continue + fi if grep -n '.*' "$pomFile" | grep -v 'x-version-update'; then echo "Found version declaration(s) without x-version-update in: $pomFile" From 4457f621f9dbb4aedd95ca53131ecd3a5d47331f Mon Sep 17 00:00:00 2001 From: chingor13 Date: Fri, 16 Jan 2026 21:27:31 +0000 Subject: [PATCH 3422/3441] modernize the bom pom.xml --- monorepo-migration/migrate.sh | 15 ++++++++++++++- monorepo-migration/modernize_pom.py | 14 +++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 95e6f58656b3..b07b2aba5284 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -315,7 +315,7 @@ echo "Committing copyright header fixes..." git add "$SOURCE_REPO_NAME" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): update copyright headers to 2026 Google LLC" -# 7.10 Modernize root pom.xml +# 7.11 Modernize root pom.xml echo "Modernizing root pom.xml..." PARENT_VERSION=$(grep -m 1 ".*{x-version-update:google-cloud-java:current}" google-cloud-jar-parent/pom.xml | sed -E 's/.*(.*)<\/version>.*/\1/') python3 "$MODERNIZE_POM_SCRIPT" "$SOURCE_REPO_NAME/pom.xml" "$PARENT_VERSION" "$SOURCE_REPO_NAME" @@ -324,6 +324,19 @@ echo "Committing root pom.xml modernization..." git add "$SOURCE_REPO_NAME/pom.xml" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): modernize root pom.xml" +# 7.12 Modernize BOM pom.xml +echo "Modernizing BOM pom.xml..." +# Find potential BOM POMs (usually in a subdirectory ending with -bom) +find "$SOURCE_REPO_NAME" -name "pom.xml" | grep "\-bom/pom.xml" | while read -r bom_pom; do + echo "Modernizing BOM: $bom_pom" + # BOMs should inherit from google-cloud-pom-parent + python3 "$MODERNIZE_POM_SCRIPT" "$bom_pom" "$PARENT_VERSION" "$SOURCE_REPO_NAME" "google-cloud-pom-parent" "../../google-cloud-pom-parent/pom.xml" + + echo "Committing BOM pom.xml modernization for $bom_pom..." + git add "$bom_pom" + git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): modernize BOM pom.xml" +done + # 7.11 Verify compilation echo "Verifying compilation..." (cd "$SOURCE_REPO_NAME" && mvn compile -DskipTests -T 1C) diff --git a/monorepo-migration/modernize_pom.py b/monorepo-migration/modernize_pom.py index bdf7f57a6027..ea0c023a9b57 100644 --- a/monorepo-migration/modernize_pom.py +++ b/monorepo-migration/modernize_pom.py @@ -15,7 +15,8 @@ import sys import re -def modernize_pom(file_path, parent_version, source_repo_name=None): + +def modernize_pom(file_path, parent_version, source_repo_name=None, parent_artifactId='google-cloud-jar-parent', relative_path='../google-cloud-jar-parent/pom.xml'): with open(file_path, 'r') as f: lines = f.readlines() @@ -64,9 +65,9 @@ def modernize_pom(file_path, parent_version, source_repo_name=None): indent = line[:line.find('<')] new_lines.append(f"{indent}\n") new_lines.append(f"{indent} com.google.cloud\n") - new_lines.append(f"{indent} google-cloud-jar-parent\n") + new_lines.append(f"{indent} {parent_artifactId}\n") new_lines.append(f"{indent} {parent_version}\n") - new_lines.append(f"{indent} ../google-cloud-jar-parent/pom.xml\n") + new_lines.append(f"{indent} {relative_path}\n") continue if '' in line and in_parent: in_parent = False @@ -161,7 +162,10 @@ def modernize_pom(file_path, parent_version, source_repo_name=None): if __name__ == "__main__": if len(sys.argv) > 2: source_repo = sys.argv[3] if len(sys.argv) > 3 else None - modernize_pom(sys.argv[1], sys.argv[2], source_repo) + parent_artifactId = sys.argv[4] if len(sys.argv) > 4 else 'google-cloud-jar-parent' + relative_path = sys.argv[5] if len(sys.argv) > 5 else '../google-cloud-jar-parent/pom.xml' + modernize_pom(sys.argv[1], sys.argv[2], source_repo, parent_artifactId, relative_path) else: - print("Usage: python3 modernize_pom.py [source_repo_name]") + print("Usage: python3 modernize_pom.py [source_repo_name] [parent_artifactId] [relative_path]") sys.exit(1) + From c7117a3398ef7cceca3a35dfb3dcf98740074d84 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 21 Jan 2026 21:16:19 +0000 Subject: [PATCH 3423/3441] allow specifying target branch --- monorepo-migration/migrate.sh | 16 +- monorepo-migration/update_owlbot.py | 237 ++++++++++++++++++---------- 2 files changed, 164 insertions(+), 89 deletions(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index b07b2aba5284..4b5d749cd5a5 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -62,6 +62,8 @@ echo "Starting migration using git read-tree with isolated clones..." # 0. Create working directory mkdir -p "$WORKING_DIR" +MIGRATION_HEAD_BRANCH="add-migration-script" + # 1. Clone the source repository if [ ! -d "$SOURCE_DIR" ]; then echo "Cloning source repo: $SOURCE_REPO_URL into $SOURCE_DIR" @@ -70,7 +72,7 @@ else echo "Source directory $SOURCE_DIR already exists. Ensuring it is clean and up-to-date..." cd "$SOURCE_DIR" git fetch origin - git checkout -f main + git checkout -f "main" git reset --hard origin/main git clean -fd cd - > /dev/null @@ -109,12 +111,14 @@ fi if [ ! -d "$TARGET_DIR" ]; then echo "Cloning target monorepo: $MONOREPO_URL into $TARGET_DIR" git clone "$MONOREPO_URL" "$TARGET_DIR" + git checkout -f "${MIGRATION_HEAD_BRANCH}" + git reset --hard origin/${MIGRATION_HEAD_BRANCH} else echo "Target directory $TARGET_DIR already exists. Ensuring it is clean and up-to-date..." cd "$TARGET_DIR" git fetch origin - git checkout -f main - git reset --hard origin/main + git checkout -f "${MIGRATION_HEAD_BRANCH}" + git reset --hard origin/${MIGRATION_HEAD_BRANCH} git clean -fd cd - > /dev/null fi @@ -126,8 +130,8 @@ echo "Ensuring clean state in target monorepo..." git fetch origin git reset --hard HEAD git clean -fd -git checkout -f main -git reset --hard origin/main +git checkout -f "${MIGRATION_HEAD_BRANCH}" +git reset --hard origin/${MIGRATION_HEAD_BRANCH} git clean -fdx # Check if the repository is already migrated @@ -327,7 +331,7 @@ git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): modernize root pom.xml # 7.12 Modernize BOM pom.xml echo "Modernizing BOM pom.xml..." # Find potential BOM POMs (usually in a subdirectory ending with -bom) -find "$SOURCE_REPO_NAME" -name "pom.xml" | grep "\-bom/pom.xml" | while read -r bom_pom; do +find "$SOURCE_REPO_NAME" -name "pom.xml" | grep "\-bom/pom.xml" | grep -v "samples" | while read -r bom_pom; do echo "Modernizing BOM: $bom_pom" # BOMs should inherit from google-cloud-pom-parent python3 "$MODERNIZE_POM_SCRIPT" "$bom_pom" "$PARENT_VERSION" "$SOURCE_REPO_NAME" "google-cloud-pom-parent" "../../google-cloud-pom-parent/pom.xml" diff --git a/monorepo-migration/update_owlbot.py b/monorepo-migration/update_owlbot.py index ec40992ca412..a89ff5182d3f 100644 --- a/monorepo-migration/update_owlbot.py +++ b/monorepo-migration/update_owlbot.py @@ -16,55 +16,122 @@ import sys import os +def is_call_to(node, name_parts): + """ + Checks if an AST node is a call to a specific function. + name_parts: list of strings, e.g. ['s', 'move'] for s.move() + or ['java', 'common_templates'] + """ + if not isinstance(node, ast.Call): + return False + + func = node.func + # Handle attribute access (e.g. s.move) + if isinstance(func, ast.Attribute): + if len(name_parts) == 2: + # Check object and attr + obj = func.value + if isinstance(obj, ast.Name) and obj.id == name_parts[0] and func.attr == name_parts[1]: + return True + elif len(name_parts) == 1: + if func.attr == name_parts[0]: + return True + # Handle direct name (e.g. if imported directly, though less common for these) + elif isinstance(func, ast.Name): + if len(name_parts) == 1 and func.id == name_parts[0]: + return True + + return False + +def extract_excludes_from_call(call_node): + excludes = [] + for keyword in call_node.keywords: + if keyword.arg == 'excludes': + if isinstance(keyword.value, ast.List): + for elt in keyword.value.elts: + if isinstance(elt, ast.Constant): # Python 3.8+ + excludes.append(elt.value) + elif isinstance(elt, ast.Str): # Python < 3.8 + excludes.append(elt.s) + break + return excludes + def extract_info(source_code): - """Extracts excludes and replacement calls from the source owlbot.py.""" excludes = [] - replacements = [] - + loop_body_lines = [] + top_level_lines = [] + try: tree = ast.parse(source_code) except SyntaxError: - return excludes, replacements - - for node in ast.walk(tree): - # Look for s.replace(...) calls - if isinstance(node, ast.Call): - if isinstance(node.func, ast.Attribute) and node.func.attr == 'replace': - # We found a replace call. We want to reconstruct the source code for this call. - # However, ast.unparse is only available in Python 3.9+. - # If we are on an older python, we might need a workaround or just grab the line range. - # Since we likely have 3.9+, let's try ast.unparse if available, otherwise strict extraction. - if sys.version_info >= (3, 9): - replacements.append(ast.unparse(node)) - else: - # Fallback for older python: just comment it needs manual migration or try simple extraction - # For now assume 3.9+ which is standard in this environment - pass - - # Look for java.common_templates or common.java_library calls to find excludes - if isinstance(node, ast.Call): - is_common_templates = False - if isinstance(node.func, ast.Attribute): - if node.func.attr == 'common_templates': - is_common_templates = True - elif node.func.attr == 'java_library': # older name - is_common_templates = True + return excludes, top_level_lines, loop_body_lines + + for node in tree.body: + # Some nodes are wrapped in Expr, e.g. s.remove_staging_dirs() + inner_node = node + if isinstance(node, ast.Expr): + inner_node = node.value + + # Ignore standard imports (we will inject them) + if isinstance(node, (ast.Import, ast.ImportFrom)): + # We assume we only care about synthtool/java imports which we regenerate. + # If there are other imports, we should probably preserve them. + # Heuristic: if it mentions 'synthtool', ignore it. + if isinstance(node, ast.Import): + if any('synthtool' in alias.name for alias in node.names): + continue + if isinstance(node, ast.ImportFrom): + if node.module and 'synthtool' in node.module: + continue + # Preserve other imports + if sys.version_info >= (3, 9): + top_level_lines.append(ast.unparse(node)) + continue + + # Check for java.common_templates (top level) + if is_call_to(inner_node, ['java', 'common_templates']) or is_call_to(inner_node, ['common', 'java_library']): + excludes.extend(extract_excludes_from_call(inner_node)) + continue + + # Check for s.remove_staging_dirs() + if is_call_to(inner_node, ['s', 'remove_staging_dirs']): + continue + + # Check for the main loop: for library in s.get_staging_dirs(): + if isinstance(node, ast.For): + is_staging_loop = False + if isinstance(node.iter, ast.Call): + # Check for s.get_staging_dirs() + if is_call_to(node.iter, ['s', 'get_staging_dirs']): + is_staging_loop = True - if is_common_templates: - for keyword in node.keywords: - if keyword.arg == 'excludes': - if isinstance(keyword.value, ast.List): - for elt in keyword.value.elts: - if isinstance(elt, ast.Constant): # Python 3.8+ - excludes.append(elt.value) - elif isinstance(elt, ast.Str): # Python < 3.8 - excludes.append(elt.s) - break - return excludes, replacements - - -def generate_target_content(excludes, replacements, standard_excludes=None): - # Default excludes for monorepo if no template is provided + if is_staging_loop: + # Extract body + for child in node.body: + child_inner = child + if isinstance(child, ast.Expr): + child_inner = child.value + + # Ignore s.move(library) + if is_call_to(child_inner, ['s', 'move']): + continue + # Check for nested common_templates (rare but possible) + if is_call_to(child_inner, ['java', 'common_templates']) or is_call_to(child_inner, ['common', 'java_library']): + excludes.extend(extract_excludes_from_call(child_inner)) + continue + + if sys.version_info >= (3, 9): + loop_body_lines.append(ast.unparse(child)) + continue + # else fall through to preserve other loops + + # Preserve everything else (constants, functions, other logic) + if sys.version_info >= (3, 9): + top_level_lines.append(ast.unparse(node)) + + return excludes, top_level_lines, loop_body_lines + +def generate_target_content(excludes, top_level_lines, loop_body_lines, standard_excludes=None): if standard_excludes is None: standard_excludes = { ".github/*", @@ -80,44 +147,47 @@ def generate_target_content(excludes, replacements, standard_excludes=None): ".gitignore" } - # Merge excludes - # User requested to ignore source excludes and strictly use standard excludes final_excludes = sorted(list(set(standard_excludes))) - - # Format replacements with indentation - formatted_replacements = "" - for rep in replacements: - formatted_replacements += " " + rep + "\n" - - excludes_str = ",\n ".join([f'"{e}"' for e in final_excludes]) - - content = f"""# Copyright 2026 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. + excludes_str = ",\n ".join([f'"{e}"' for e in final_excludes]) -import synthtool as s -from synthtool.languages import java + # Reconstruct content + lines = [] + lines.append("# Copyright 2026 Google LLC") + lines.append("#") + lines.append("# Licensed under the Apache License, Version 2.0 (the \"License\");") + lines.append("# you may not use this file except in compliance with the License.") + lines.append("# You may obtain a copy of the License at") + lines.append("#") + lines.append("# https://www.apache.org/licenses/LICENSE-2.0") + lines.append("#") + lines.append("# Unless required by applicable law or agreed to in writing, software") + lines.append("# distributed under the License is distributed on an \"AS IS\" BASIS,") + lines.append("# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.") + lines.append("# See the License for the specific language governing permissions and") + lines.append("# limitations under the License.") + lines.append("") + lines.append("import synthtool as s") + lines.append("from synthtool.languages import java") + lines.append("") + + if top_level_lines: + lines.extend(top_level_lines) + lines.append("") -for library in s.get_staging_dirs(): - # put any special-case replacements here - s.move(library) -{formatted_replacements} -s.remove_staging_dirs() -java.common_templates(monorepo=True, excludes=[ - {excludes_str} -]) -""" - return content + lines.append("for library in s.get_staging_dirs():") + lines.append(" # put any special-case replacements here") + lines.append(" s.move(library)") + for l in loop_body_lines: + # Indent loop body + for sl in l.split('\n'): + lines.append(" " + sl) + + lines.append("s.remove_staging_dirs()") + lines.append(f"java.common_templates(monorepo=True, excludes=[") + lines.append(f" {excludes_str}") + lines.append("])") + + return "\n".join(lines) + "\n" def main(): if len(sys.argv) < 3: @@ -135,21 +205,22 @@ def main(): with open(source_file, 'r') as f: source_code = f.read() - excludes, replacements = extract_info(source_code) + excludes, top_level_lines, loop_body_lines = extract_info(source_code) standard_excludes = None if template_file: if os.path.exists(template_file): with open(template_file, 'r') as f: template_code = f.read() - template_excludes, _ = extract_info(template_code) + template_excludes, _, _ = extract_info(template_code) standard_excludes = template_excludes else: - print(f"Template file {template_file} not found. using default excludes.") + print(f"Template file {template_file} not found using default excludes.") - target_content = generate_target_content(excludes, replacements, standard_excludes) + target_content = generate_target_content(excludes, top_level_lines, loop_body_lines, standard_excludes) - os.makedirs(os.path.dirname(target_file), exist_ok=True) + if os.path.dirname(target_file): + os.makedirs(os.path.dirname(target_file), exist_ok=True) with open(target_file, 'w') as f: f.write(target_content) From f48989f31bafc33a13f9311c9374fafa29621628 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 21 Jan 2026 21:45:37 +0000 Subject: [PATCH 3424/3441] fix s.move --- monorepo-migration/update_owlbot.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/monorepo-migration/update_owlbot.py b/monorepo-migration/update_owlbot.py index a89ff5182d3f..be063ff685d7 100644 --- a/monorepo-migration/update_owlbot.py +++ b/monorepo-migration/update_owlbot.py @@ -111,10 +111,7 @@ def extract_info(source_code): child_inner = child if isinstance(child, ast.Expr): child_inner = child.value - - # Ignore s.move(library) - if is_call_to(child_inner, ['s', 'move']): - continue + # Check for nested common_templates (rare but possible) if is_call_to(child_inner, ['java', 'common_templates']) or is_call_to(child_inner, ['common', 'java_library']): excludes.extend(extract_excludes_from_call(child_inner)) @@ -176,7 +173,6 @@ def generate_target_content(excludes, top_level_lines, loop_body_lines, standard lines.append("for library in s.get_staging_dirs():") lines.append(" # put any special-case replacements here") - lines.append(" s.move(library)") for l in loop_body_lines: # Indent loop body for sl in l.split('\n'): From 403e68f0faaae3a384e9877a6a0389e4b995699d Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 21 Jan 2026 21:45:44 +0000 Subject: [PATCH 3425/3441] use BUILD_SUBDIR env variable --- monorepo-migration/transform_workflow.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/monorepo-migration/transform_workflow.py b/monorepo-migration/transform_workflow.py index f4175cf61c34..55b069950ad8 100644 --- a/monorepo-migration/transform_workflow.py +++ b/monorepo-migration/transform_workflow.py @@ -49,9 +49,8 @@ def transform(content, lib_name): if line.startswith('jobs:'): if not inserted_defaults: - new_lines.append("defaults:") - new_lines.append(" run:") - new_lines.append(f" working-directory: {lib_name}") + new_lines.append("env:") + new_lines.append(f" BUILD_SUBDIR: {lib_name}") inserted_defaults = True new_lines.append(line) new_lines.append(filter_job) From 7de38fe9c35072b50e9eec00892c1206c8618761 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 21 Jan 2026 21:55:04 +0000 Subject: [PATCH 3426/3441] skip kokoro files --- monorepo-migration/migrate.sh | 16 +++------------- monorepo-migration/update_owlbot.py | 1 - 2 files changed, 3 insertions(+), 14 deletions(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 4b5d749cd5a5..bad39922663f 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -175,7 +175,8 @@ rm -f "$SOURCE_REPO_NAME/.gitignore" rm -f "$SOURCE_REPO_NAME/renovate.json" rm -f "$SOURCE_REPO_NAME/LICENSE" rm -f "$SOURCE_REPO_NAME/java.header" -rm -rf "$SOURCE_REPO_NAME/.kokoro/continuous" "$SOURCE_REPO_NAME/.kokoro/nightly" "$SOURCE_REPO_NAME/.kokoro/presubmit" +rm -rf "$SOURCE_REPO_NAME/.kokoro" +# rm -rf "$SOURCE_REPO_NAME/.kokoro/continuous" "$SOURCE_REPO_NAME/.kokoro/nightly" "$SOURCE_REPO_NAME/.kokoro/presubmit" rm -f "$SOURCE_REPO_NAME/codecov.yaml" rm -f "$SOURCE_REPO_NAME/synth.metadata" rm -f "$SOURCE_REPO_NAME/license-checks.xml" @@ -293,18 +294,7 @@ echo "Migrating owlbot.py..." if [ -f "$SOURCE_DIR/owlbot.py" ]; then TARGET_OWLBOT="$SOURCE_REPO_NAME/owlbot.py" - # Check for a template owlbot.py to source common excludes from - TEMPLATE_OWLBOT="" - if [ -f "java-workstations/owlbot.py" ]; then - TEMPLATE_OWLBOT="java-workstations/owlbot.py" - echo "Using $TEMPLATE_OWLBOT as template for excludes." - fi - - if [ -n "$TEMPLATE_OWLBOT" ]; then - python3 "$TRANSFORM_OWLBOT_SCRIPT" "$TARGET_OWLBOT" "$SOURCE_DIR/owlbot.py" "$TEMPLATE_OWLBOT" - else - python3 "$TRANSFORM_OWLBOT_SCRIPT" "$TARGET_OWLBOT" "$SOURCE_DIR/owlbot.py" - fi + python3 "$TRANSFORM_OWLBOT_SCRIPT" "$TARGET_OWLBOT" "$SOURCE_DIR/owlbot.py" echo "Committing owlbot.py migration..." git add "$TARGET_OWLBOT" diff --git a/monorepo-migration/update_owlbot.py b/monorepo-migration/update_owlbot.py index be063ff685d7..2b3d866d40f4 100644 --- a/monorepo-migration/update_owlbot.py +++ b/monorepo-migration/update_owlbot.py @@ -132,7 +132,6 @@ def generate_target_content(excludes, top_level_lines, loop_body_lines, standard if standard_excludes is None: standard_excludes = { ".github/*", - ".kokoro/*", "samples/*", "CODE_OF_CONDUCT.md", "CONTRIBUTING.md", From a6b41b910140eb3427a46eb13a7752b47baffffd Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 21 Jan 2026 21:57:36 +0000 Subject: [PATCH 3427/3441] fix windows build file --- monorepo-migration/transform_workflow.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/monorepo-migration/transform_workflow.py b/monorepo-migration/transform_workflow.py index 55b069950ad8..fba791634ebe 100644 --- a/monorepo-migration/transform_workflow.py +++ b/monorepo-migration/transform_workflow.py @@ -82,11 +82,13 @@ def transform(content, lib_name): new_lines.append(line) new_lines.append(" - name: Support longpaths") new_lines.append(" run: git config --system core.longpaths true") - new_lines.append(" working-directory: .") continue if 'run: echo "SUREFIRE_JVM_OPT=' in line and '!java17' not in line: line = line.replace('" >> $GITHUB_ENV', ' -P !java17" >> $GITHUB_ENV') + if 'build.bat' in line: + line = line.replace('build.bat', 'build.sh') + new_lines.append(line) return "\n".join(new_lines) From 2e7736f6e0964303316ac4a1d4b8b836a4ac1d7b Mon Sep 17 00:00:00 2001 From: chingor13 Date: Thu, 22 Jan 2026 20:23:01 +0000 Subject: [PATCH 3428/3441] optionally squash commits --- monorepo-migration/migrate.sh | 42 ++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index bad39922663f..ad45d6eb59a6 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -57,6 +57,9 @@ UPDATE_GENERATION_CONFIG_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_generation_config. UPDATE_OWLBOT_HERMETIC_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_owlbot_hermetic.py" TRANSFORM_OWLBOT_SCRIPT="$TRANSFORM_SCRIPT_DIR/update_owlbot.py" +# Track number of commits made by this script +COMMIT_COUNT=0 + echo "Starting migration using git read-tree with isolated clones..." # 0. Create working directory @@ -185,6 +188,7 @@ find "$SOURCE_REPO_NAME" -maxdepth 1 -name "*.md" ! -name "CHANGELOG.md" ! -name # 7. Commit the migration echo "Committing migration..." git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate $SOURCE_REPO_NAME into monorepo" +COMMIT_COUNT=$((COMMIT_COUNT + 1)) # 7.1 Update CODEOWNERS if [ -n "$CODEOWNER" ]; then @@ -195,6 +199,7 @@ if [ -n "$CODEOWNER" ]; then echo "Committing CODEOWNERS update..." git add .github/CODEOWNERS git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): add code owners for $SOURCE_REPO_NAME" + COMMIT_COUNT=$((COMMIT_COUNT + 1)) fi # 7.2 Update root pom.xml modules @@ -204,7 +209,7 @@ python3 "$UPDATE_ROOT_POM_SCRIPT" "pom.xml" "$SOURCE_REPO_NAME" echo "Committing root pom.xml modules update..." git add pom.xml git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): add module to root pom.xml" - +COMMIT_COUNT=$((COMMIT_COUNT + 1)) # 7.5 Migrate GitHub Actions workflows echo "Checking for GitHub Actions workflows..." @@ -240,6 +245,7 @@ if [ -d "$SOURCE_REPO_NAME/.github/workflows" ]; then echo "Committing workflow migration..." git add .github/workflows git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate and adapt GitHub Actions workflows" + COMMIT_COUNT=$((COMMIT_COUNT + 1)) fi # 7.6 Update generation_config.yaml @@ -254,6 +260,7 @@ if [ -f "$SOURCE_CONFIG" ]; then echo "Committing generation_config.yaml update..." git add generation_config.yaml "$SOURCE_CONFIG" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): add library to generation_config.yaml" + COMMIT_COUNT=$((COMMIT_COUNT + 1)) fi # 7.7 Consolidate versions.txt @@ -269,6 +276,7 @@ if [ -f "$SOURCE_VERSIONS" ]; then echo "Committing versions.txt update..." git add versions.txt "$SOURCE_VERSIONS" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): consolidate versions.txt into root" + COMMIT_COUNT=$((COMMIT_COUNT + 1)) fi # 7.8 Migrate .OwlBot-hermetic.yaml @@ -286,6 +294,7 @@ if [ -n "$SOURCE_OWLBOT" ]; then echo "Committing .OwlBot-hermetic.yaml migration..." git add "$TARGET_OWLBOT" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate .OwlBot-hermetic.yaml" + COMMIT_COUNT=$((COMMIT_COUNT + 1)) fi @@ -299,6 +308,7 @@ if [ -f "$SOURCE_DIR/owlbot.py" ]; then echo "Committing owlbot.py migration..." git add "$TARGET_OWLBOT" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): migrate owlbot.py" + COMMIT_COUNT=$((COMMIT_COUNT + 1)) fi # 7.9 Fix copyright headers in Java files @@ -308,6 +318,7 @@ python3 "$FIX_COPYRIGHT_SCRIPT" "$SOURCE_REPO_NAME" echo "Committing copyright header fixes..." git add "$SOURCE_REPO_NAME" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): update copyright headers to 2026 Google LLC" +COMMIT_COUNT=$((COMMIT_COUNT + 1)) # 7.11 Modernize root pom.xml echo "Modernizing root pom.xml..." @@ -317,11 +328,13 @@ python3 "$MODERNIZE_POM_SCRIPT" "$SOURCE_REPO_NAME/pom.xml" "$PARENT_VERSION" "$ echo "Committing root pom.xml modernization..." git add "$SOURCE_REPO_NAME/pom.xml" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): modernize root pom.xml" +COMMIT_COUNT=$((COMMIT_COUNT + 1)) # 7.12 Modernize BOM pom.xml echo "Modernizing BOM pom.xml..." # Find potential BOM POMs (usually in a subdirectory ending with -bom) -find "$SOURCE_REPO_NAME" -name "pom.xml" | grep "\-bom/pom.xml" | grep -v "samples" | while read -r bom_pom; do +# Use process substitution or just a loop over the output of find to avoid subshell issues with counters +while read -r bom_pom; do echo "Modernizing BOM: $bom_pom" # BOMs should inherit from google-cloud-pom-parent python3 "$MODERNIZE_POM_SCRIPT" "$bom_pom" "$PARENT_VERSION" "$SOURCE_REPO_NAME" "google-cloud-pom-parent" "../../google-cloud-pom-parent/pom.xml" @@ -329,12 +342,35 @@ find "$SOURCE_REPO_NAME" -name "pom.xml" | grep "\-bom/pom.xml" | grep -v "sampl echo "Committing BOM pom.xml modernization for $bom_pom..." git add "$bom_pom" git commit -n --no-gpg-sign -m "chore($SOURCE_REPO_NAME): modernize BOM pom.xml" -done + COMMIT_COUNT=$((COMMIT_COUNT + 1)) +done < <(find "$SOURCE_REPO_NAME" -name "pom.xml" | grep "\-bom/pom.xml" | grep -v "samples") # 7.11 Verify compilation echo "Verifying compilation..." (cd "$SOURCE_REPO_NAME" && mvn compile -DskipTests -T 1C) +# 7.13 Squash commits +if [ "${SQUASH_COMMITS:-false}" = "true" ]; then + echo "Squashing $COMMIT_COUNT commits..." + if [ "$COMMIT_COUNT" -gt 1 ]; then + # Reset soft to the first commit of the migration + # We want to keep the very first commit message, or maybe a combined one? + # The requirement is "squash all the commits it's made into a single migration commit" + # The first commit we made was "chore($SOURCE_REPO_NAME): migrate $SOURCE_REPO_NAME into monorepo" + + # We can do this by soft resetting back COMMIT_COUNT-1 commits + # This leaves the first commit as HEAD, but with changes from subsequent commits staged. + # NO. Soft reset back N commits. + # If we made 3 commits: C1, C2, C3. HEAD is C3. + # reset --soft HEAD~2 results in HEAD at C1, with changes from C2 and C3 staged. + # then commit --amend adds those staged changes to C1. + + git reset --soft "HEAD~$((COMMIT_COUNT - 1))" + git commit --amend --no-edit --no-gpg-sign + echo "Squashed everything into one commit." + fi +fi + # 8. Cleanup echo "Cleaning up temporary source clone..." rm -rf "$SOURCE_DIR" From 54851d278552b7dcd53255e361268a773934c82f Mon Sep 17 00:00:00 2001 From: chingor13 Date: Fri, 23 Jan 2026 20:22:08 +0000 Subject: [PATCH 3429/3441] fix CODEOWNERS detection --- monorepo-migration/migrate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index ad45d6eb59a6..390f8eef2d47 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -95,7 +95,7 @@ if [ -z "$CODEOWNER" ]; then if [ -n "$CODEOWNERS_FILE" ]; then # Extract the line(s) starting with * (global owners) # Use grep to find the line, then sed to remove the '*' and standard team handle - EXTRACTED_OWNERS=$(grep "^\*" "$CODEOWNERS_FILE" | sed 's/^\*[[:space:]]*//' | sed 's/@googleapis\/cloud-java-team-teamsync//g' | xargs) + EXTRACTED_OWNERS=$(grep "^\* " "$CODEOWNERS_FILE" | sed 's/^\*[[:space:]]*//' | sed 's/@googleapis\/cloud-java-team-teamsync//g' | xargs) if [ -n "$EXTRACTED_OWNERS" ]; then DEFAULT_CODEOWNER="$EXTRACTED_OWNERS" echo "Found default CODEOWNER: $DEFAULT_CODEOWNER" From 82e8eef3a0b8f6eb29f74b47ae16d462a8bb1dc1 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Fri, 23 Jan 2026 20:22:15 +0000 Subject: [PATCH 3430/3441] fix owlbot template excludes --- monorepo-migration/update_owlbot.py | 45 ++++++++++------------------- 1 file changed, 16 insertions(+), 29 deletions(-) diff --git a/monorepo-migration/update_owlbot.py b/monorepo-migration/update_owlbot.py index 2b3d866d40f4..5b02501e7625 100644 --- a/monorepo-migration/update_owlbot.py +++ b/monorepo-migration/update_owlbot.py @@ -128,23 +128,21 @@ def extract_info(source_code): return excludes, top_level_lines, loop_body_lines -def generate_target_content(excludes, top_level_lines, loop_body_lines, standard_excludes=None): - if standard_excludes is None: - standard_excludes = { - ".github/*", - "samples/*", - "CODE_OF_CONDUCT.md", - "CONTRIBUTING.md", - "LICENSE", - "SECURITY.md", - "java.header", - "license-checks.xml", - "renovate.json", - ".gitignore" - } - - final_excludes = sorted(list(set(standard_excludes))) - excludes_str = ",\n ".join([f'"{e}"' for e in final_excludes]) +def generate_target_content(excludes, top_level_lines, loop_body_lines): + standard_excludes = [ + ".github/*", + ".kokoro/*", + "samples/*", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.md", + "LICENSE", + "SECURITY.md", + "java.header", + "license-checks.xml", + "renovate.json", + ".gitignore", + ] + excludes_str = ",\n ".join([f'"{e}"' for e in standard_excludes]) # Reconstruct content lines = [] @@ -201,18 +199,7 @@ def main(): source_code = f.read() excludes, top_level_lines, loop_body_lines = extract_info(source_code) - - standard_excludes = None - if template_file: - if os.path.exists(template_file): - with open(template_file, 'r') as f: - template_code = f.read() - template_excludes, _, _ = extract_info(template_code) - standard_excludes = template_excludes - else: - print(f"Template file {template_file} not found using default excludes.") - - target_content = generate_target_content(excludes, top_level_lines, loop_body_lines, standard_excludes) + target_content = generate_target_content(excludes, top_level_lines, loop_body_lines) if os.path.dirname(target_file): os.makedirs(os.path.dirname(target_file), exist_ok=True) From 866ae5e8b591084bf59846cb05c3aa73339658b5 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Mon, 26 Jan 2026 19:24:05 +0000 Subject: [PATCH 3431/3441] configurable base branch, defaults to main --- monorepo-migration/migrate.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/monorepo-migration/migrate.sh b/monorepo-migration/migrate.sh index 390f8eef2d47..5839a1a59838 100755 --- a/monorepo-migration/migrate.sh +++ b/monorepo-migration/migrate.sh @@ -65,7 +65,8 @@ echo "Starting migration using git read-tree with isolated clones..." # 0. Create working directory mkdir -p "$WORKING_DIR" -MIGRATION_HEAD_BRANCH="add-migration-script" +MIGRATION_HEAD_BRANCH="${MIGRATION_HEAD_BRANCH:-main}" +echo "Basing migration branch on: ${MIGRATION_HEAD_BRANCH}" # 1. Clone the source repository if [ ! -d "$SOURCE_DIR" ]; then From 77637a7d0a5bf4772d1619bfd9572fe40a8c9804 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Tue, 27 Jan 2026 19:07:03 +0000 Subject: [PATCH 3432/3441] set datastore project id for needed datastore migration --- .kokoro/presubmit/common.cfg | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.kokoro/presubmit/common.cfg b/.kokoro/presubmit/common.cfg index 589e42ec258a..a5a34da7e6f0 100644 --- a/.kokoro/presubmit/common.cfg +++ b/.kokoro/presubmit/common.cfg @@ -24,6 +24,12 @@ env_vars: { value: "test" } +# Well known environment variable to datastore tests +env_vars: { + key: "DATASTORE_PROJECT_ID" + value: "cloud-java-ci-test" +} + before_action { fetch_keystore { keystore_resource { From 5a90d950987937962e845873935eea91259db677 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 28 Jan 2026 00:40:46 +0000 Subject: [PATCH 3433/3441] chore(java-bigquery): add code owners for java-bigquery --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index eb74930dec50..f04de53c2494 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -7,3 +7,4 @@ # java-vertexai has maintainers /java-vertexai/ @googleapis/vertex-java-sdk @googleapis/cloud-java-team-teamsync +/java-bigquery/ @googleapis/api-bigquery @googleapis/cloud-java-team-teamsync From 3c29c2e6d969dd142749c9ff56ea17a9e32d1291 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 28 Jan 2026 00:40:47 +0000 Subject: [PATCH 3434/3441] chore(java-bigquery): add module to root pom.xml --- pom.xml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index 96bd03560242..7f8cb155d324 100644 --- a/pom.xml +++ b/pom.xml @@ -19,8 +19,8 @@ java-admanager java-advisorynotifications java-aiplatform - java-alloydb java-alloydb-connectors + java-alloydb java-analytics-admin java-analytics-data java-analyticshub @@ -46,6 +46,7 @@ java-beyondcorp-clientgateways java-biglake java-bigquery-data-exchange + java-bigquery java-bigqueryconnection java-bigquerydatapolicy java-bigquerydatatransfer @@ -83,14 +84,14 @@ java-datalineage java-datamanager java-dataplex - java-dataproc java-dataproc-metastore + java-dataproc java-datastream java-deploy java-developerconnect java-devicestreaming - java-dialogflow java-dialogflow-cx + java-dialogflow java-discoveryengine java-distributedcloudedge java-dlp @@ -102,8 +103,8 @@ java-enterpriseknowledgegraph java-errorreporting java-essential-contacts - java-eventarc java-eventarc-publishing + java-eventarc java-filestore java-financialservices java-functions @@ -117,8 +118,8 @@ java-grafeas java-gsuite-addons java-hypercomputecluster - java-iam java-iam-admin + java-iam java-iamcredentials java-iap java-ids @@ -138,8 +139,8 @@ java-managedkafka java-maps-addressvalidation java-maps-area-insights - java-maps-fleetengine java-maps-fleetengine-delivery + java-maps-fleetengine java-maps-mapsplatformdatasets java-maps-places java-maps-routeoptimization @@ -151,9 +152,9 @@ java-memcache java-migrationcenter java-modelarmor - java-monitoring java-monitoring-dashboards java-monitoring-metricsscope + java-monitoring java-netapp java-network-management java-network-security @@ -180,8 +181,8 @@ java-recaptchaenterprise java-recommendations-ai java-recommender - java-redis java-redis-cluster + java-redis java-resourcemanager java-retail java-run @@ -191,8 +192,8 @@ java-secretmanager java-securesourcemanager java-security-private-ca - java-securitycenter java-securitycenter-settings + java-securitycenter java-securitycentermanagement java-securityposture java-service-control From 6c02a317177b780f6fb459fbf73d232fc602265b Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 28 Jan 2026 00:40:49 +0000 Subject: [PATCH 3435/3441] chore(java-bigquery): migrate and adapt GitHub Actions workflows --- .github/workflows/java-bigquery-ci.yaml | 139 ++++++++++++++++++ .github/workflows/java-bigquery-scorecard.yml | 88 +++++++++++ 2 files changed, 227 insertions(+) create mode 100644 .github/workflows/java-bigquery-ci.yaml create mode 100644 .github/workflows/java-bigquery-scorecard.yml diff --git a/.github/workflows/java-bigquery-ci.yaml b/.github/workflows/java-bigquery-ci.yaml new file mode 100644 index 000000000000..8d9d2e34aedc --- /dev/null +++ b/.github/workflows/java-bigquery-ci.yaml @@ -0,0 +1,139 @@ +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# Github action job to test core java library features on +# downstream client libraries before they are released. +on: + push: + branches: + - main + pull_request: +name: java-bigquery ci +env: + BUILD_SUBDIR: java-bigquery +jobs: + filter: + runs-on: ubuntu-latest + outputs: + library: ${{ steps.filter.outputs.library }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + library: + - 'java-bigquery/**' + units: + needs: filter + if: ${{ needs.filter.outputs.library == 'true' }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + java: [11, 17, 21, 25] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: ${{matrix.java}} + - run: java -version + - run: .kokoro/build.sh + env: + JOB_TYPE: test + units-java8: + needs: filter + if: ${{ needs.filter.outputs.library == 'true' }} + # Building using Java 17 and run the tests with Java 8 runtime + name: "units (8)" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + java-version: 8 + distribution: temurin + - name: "Set jvm system property environment variable for surefire plugin (unit tests)" + # Maven surefire plugin (unit tests) allows us to specify JVM to run the tests. + # https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#jvm + run: echo "SUREFIRE_JVM_OPT=-Djvm=${JAVA_HOME}/bin/java -P !java17" >> $GITHUB_ENV + shell: bash + - uses: actions/setup-java@v4 + with: + java-version: 17 + distribution: temurin + - run: .kokoro/build.sh + env: + JOB_TYPE: test + windows: + needs: filter + if: ${{ needs.filter.outputs.library == 'true' }} + runs-on: windows-latest + steps: + - name: Support longpaths + run: git config --system core.longpaths true + - name: Support longpaths + run: git config --system core.longpaths true + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 8 + - run: java -version + - run: .kokoro/build.sh + env: + JOB_TYPE: test + dependencies: + needs: filter + if: ${{ needs.filter.outputs.library == 'true' }} + runs-on: ubuntu-latest + strategy: + matrix: + java: [17] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: ${{matrix.java}} + - run: java -version + - run: .kokoro/dependencies.sh + javadoc: + needs: filter + if: ${{ needs.filter.outputs.library == 'true' }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + - run: java -version + - run: .kokoro/build.sh + env: + JOB_TYPE: javadoc + lint: + needs: filter + if: ${{ needs.filter.outputs.library == 'true' }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 17 + - run: java -version + - run: .kokoro/build.sh + env: + JOB_TYPE: lint diff --git a/.github/workflows/java-bigquery-scorecard.yml b/.github/workflows/java-bigquery-scorecard.yml new file mode 100644 index 000000000000..12b3ccc56bfa --- /dev/null +++ b/.github/workflows/java-bigquery-scorecard.yml @@ -0,0 +1,88 @@ +# This workflow uses actions that are not certified by GitHub. They are provided +# by a third-party and are governed by separate terms of service, privacy +# policy, and support documentation. + +name: java-bigquery Scorecard supply-chain security +on: + # For Branch-Protection check. Only the default branch is supported. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection + branch_protection_rule: + # To guarantee Maintained check is occasionally updated. See + # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained + schedule: + - cron: '0 0 * * *' + push: + branches: [ "main" ] + +# Declare default permissions as read only. +permissions: read-all + +env: + BUILD_SUBDIR: java-bigquery +jobs: + filter: + runs-on: ubuntu-latest + outputs: + library: ${{ steps.filter.outputs.library }} + steps: + - uses: actions/checkout@v4 + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + library: + - 'java-bigquery/**' + analysis: + needs: filter + if: ${{ needs.filter.outputs.library == 'true' }} + name: Scorecard analysis + runs-on: ubuntu-latest + permissions: + # Needed to upload the results to code-scanning dashboard. + security-events: write + # Needed to publish results and get a badge (see publish_results below). + id-token: write + # Uncomment the permissions below if installing in a private repository. + # contents: read + # actions: read + + steps: + - name: "Checkout code" + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + persist-credentials: false + + - name: "Run analysis" + uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2 + with: + results_file: results.sarif + results_format: sarif + # (Optional) "write" PAT token. Uncomment the `repo_token` line below if: + # - you want to enable the Branch-Protection check on a *public* repository, or + # - you are installing Scorecard on a *private* repository + # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat. + # repo_token: ${{ secrets.SCORECARD_TOKEN }} + + # Public repositories: + # - Publish results to OpenSSF REST API for easy access by consumers + # - Allows the repository to include the Scorecard badge. + # - See https://github.com/ossf/scorecard-action#publishing-results. + # For private repositories: + # - `publish_results` will always be set to `false`, regardless + # of the value entered here. + publish_results: true + + # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF + # format to the repository Actions tab. + - name: "Upload artifact" + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 + with: + name: SARIF file + path: results.sarif + retention-days: 5 + + # Upload the results to GitHub's code scanning dashboard. + - name: "Upload to code-scanning" + uses: github/codeql-action/upload-sarif@b8d3b6e8af63cde30bdc382c0bc28114f4346c88 # v2.28.1 + with: + sarif_file: results.sarif From 3e6a31c62997321d2c1177ac008fa06a48edb81c Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 28 Jan 2026 00:40:50 +0000 Subject: [PATCH 3436/3441] chore(java-bigquery): consolidate versions.txt into root --- java-bigquery/versions.txt | 5 ----- versions.txt | 2 ++ 2 files changed, 2 insertions(+), 5 deletions(-) delete mode 100644 java-bigquery/versions.txt diff --git a/java-bigquery/versions.txt b/java-bigquery/versions.txt deleted file mode 100644 index 0facc566a06c..000000000000 --- a/java-bigquery/versions.txt +++ /dev/null @@ -1,5 +0,0 @@ -# Format: -# module:released-version:current-version - -google-cloud-bigquery:2.58.0:2.58.1-SNAPSHOT -google-cloud-bigquery-jdbc:0.2.0:0.2.1-SNAPSHOT diff --git a/versions.txt b/versions.txt index b402889bf022..a7839d54c0f5 100644 --- a/versions.txt +++ b/versions.txt @@ -937,3 +937,5 @@ grpc-google-cloud-gkerecommender-v1:0.2.0:0.3.0-SNAPSHOT google-cloud-cloudapiregistry:0.1.0:0.2.0-SNAPSHOT proto-google-cloud-cloudapiregistry-v1beta:0.1.0:0.2.0-SNAPSHOT grpc-google-cloud-cloudapiregistry-v1beta:0.1.0:0.2.0-SNAPSHOT +google-cloud-bigquery:2.58.0:2.58.1-SNAPSHOT +google-cloud-bigquery-jdbc:0.2.0:0.2.1-SNAPSHOT From f935ce0066846a7c163533806710501392e121ae Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 28 Jan 2026 00:40:52 +0000 Subject: [PATCH 3437/3441] chore(java-bigquery): update copyright headers to 2026 Google LLC --- java-bigquery/.github/CODEOWNERS | 17 -- .../.github/ISSUE_TEMPLATE/bug_report.md | 51 ----- .../.github/ISSUE_TEMPLATE/feature_request.md | 21 -- .../.github/ISSUE_TEMPLATE/support_request.md | 7 - .../.github/PULL_REQUEST_TEMPLATE.md | 10 - java-bigquery/.github/auto-label.yaml | 15 -- java-bigquery/.github/blunderbuss.yml | 7 - java-bigquery/.github/dependabot.yml | 19 -- java-bigquery/.github/flakybot.yaml | 1 - java-bigquery/.github/release-please.yml | 24 --- java-bigquery/.github/release-trigger.yml | 2 - java-bigquery/.github/snippet-bot.yml | 0 java-bigquery/.github/sync-repo-settings.yaml | 173 --------------- .../.github/trusted-contribution.yml | 9 - .../.github/workflows/approve-readme.yaml | 69 ------ .../.github/workflows/auto-release.yaml | 106 --------- java-bigquery/.github/workflows/ci.yaml | 123 ----------- .../workflows/renovate_config_check.yaml | 25 --- java-bigquery/.github/workflows/samples.yaml | 30 --- java-bigquery/.github/workflows/scorecard.yml | 72 ------- .../workflows/unmanaged_dependency_check.yaml | 25 --- java-bigquery/.gitignore | 19 -- java-bigquery/.kokoro/build.bat | 18 -- java-bigquery/.kokoro/build.sh | 161 -------------- java-bigquery/.kokoro/coerce_logs.sh | 37 ---- java-bigquery/.kokoro/common.cfg | 13 -- java-bigquery/.kokoro/common.sh | 60 ------ java-bigquery/.kokoro/continuous/common.cfg | 25 --- .../.kokoro/continuous/graalvm-native-a.cfg | 38 ---- .../.kokoro/continuous/graalvm-native-b.cfg | 38 ---- .../.kokoro/continuous/graalvm-native-c.cfg | 38 ---- java-bigquery/.kokoro/continuous/java8.cfg | 12 -- .../.kokoro/continuous/propose_release.sh | 29 --- java-bigquery/.kokoro/dependencies.sh | 59 ----- java-bigquery/.kokoro/jdbc-release.sh | 41 ---- java-bigquery/.kokoro/nightly/common.cfg | 25 --- java-bigquery/.kokoro/nightly/integration.cfg | 38 ---- .../.kokoro/nightly/java11-integration.cfg | 38 ---- java-bigquery/.kokoro/nightly/java11.cfg | 7 - java-bigquery/.kokoro/nightly/java7.cfg | 7 - java-bigquery/.kokoro/nightly/java8-osx.cfg | 3 - java-bigquery/.kokoro/nightly/java8-win.cfg | 3 - java-bigquery/.kokoro/nightly/java8.cfg | 12 -- .../.kokoro/nightly/nightly-integration.cfg | 37 ---- java-bigquery/.kokoro/nightly/samples.cfg | 47 ---- java-bigquery/.kokoro/populate-secrets.sh | 43 ---- java-bigquery/.kokoro/presubmit/clirr.cfg | 13 -- java-bigquery/.kokoro/presubmit/common.cfg | 34 --- .../.kokoro/presubmit/dependencies.cfg | 12 -- .../.kokoro/presubmit/graalvm-native-a.cfg | 38 ---- .../.kokoro/presubmit/graalvm-native-b.cfg | 38 ---- .../.kokoro/presubmit/graalvm-native-c.cfg | 38 ---- .../.kokoro/presubmit/integration.cfg | 34 --- java-bigquery/.kokoro/presubmit/java11.cfg | 7 - java-bigquery/.kokoro/presubmit/java7.cfg | 7 - java-bigquery/.kokoro/presubmit/java8-osx.cfg | 3 - java-bigquery/.kokoro/presubmit/java8-win.cfg | 3 - java-bigquery/.kokoro/presubmit/java8.cfg | 12 -- .../.kokoro/presubmit/linkage-monitor.cfg | 12 -- java-bigquery/.kokoro/presubmit/lint.cfg | 13 -- java-bigquery/.kokoro/presubmit/samples.cfg | 33 --- java-bigquery/.kokoro/readme.sh | 45 ---- java-bigquery/.kokoro/requirements.in | 6 - .../.kokoro/run_samples_resource_cleanup.sh | 44 ---- java-bigquery/.kokoro/trampoline.sh | 26 --- java-bigquery/CODE_OF_CONDUCT.md | 94 -------- java-bigquery/CONTRIBUTING.md | 96 --------- java-bigquery/LICENSE | 201 ------------------ java-bigquery/SECURITY.md | 7 - .../ConnImplBenchmark.java | 2 +- .../QueryBenchmark.java | 2 +- .../BigQueryConversionException.java | 2 +- .../BigQueryJdbcCoercionException.java | 2 +- ...BigQueryJdbcCoercionNotFoundException.java | 2 +- .../exception/BigQueryJdbcException.java | 2 +- .../BigQueryJdbcRuntimeException.java | 2 +- ...ryJdbcSqlFeatureNotSupportedException.java | 2 +- .../BigQueryJdbcSqlSyntaxErrorException.java | 2 +- .../bigquery/jdbc/BigQueryArrowArray.java | 2 +- .../jdbc/BigQueryArrowBatchWrapper.java | 2 +- .../bigquery/jdbc/BigQueryArrowResultSet.java | 2 +- .../bigquery/jdbc/BigQueryArrowStruct.java | 2 +- .../bigquery/jdbc/BigQueryBaseArray.java | 2 +- .../bigquery/jdbc/BigQueryBaseResultSet.java | 2 +- .../bigquery/jdbc/BigQueryBaseStruct.java | 2 +- .../jdbc/BigQueryCallableStatement.java | 2 +- .../cloud/bigquery/jdbc/BigQueryCoercion.java | 2 +- .../bigquery/jdbc/BigQueryConnection.java | 2 +- .../jdbc/BigQueryConnectionProperty.java | 2 +- .../jdbc/BigQueryDaemonPollingTask.java | 2 +- .../jdbc/BigQueryDatabaseMetaData.java | 2 +- .../jdbc/BigQueryDefaultCoercions.java | 2 +- .../cloud/bigquery/jdbc/BigQueryDriver.java | 2 +- .../bigquery/jdbc/BigQueryErrorMessage.java | 2 +- .../jdbc/BigQueryFieldValueListWrapper.java | 2 +- .../jdbc/BigQueryJdbcBulkInsertWriter.java | 2 +- .../jdbc/BigQueryJdbcCustomLogger.java | 2 +- .../jdbc/BigQueryJdbcOAuthUtility.java | 2 +- .../bigquery/jdbc/BigQueryJdbcParameter.java | 2 +- .../jdbc/BigQueryJdbcProxyUtility.java | 2 +- .../bigquery/jdbc/BigQueryJdbcRootLogger.java | 2 +- .../jdbc/BigQueryJdbcTypeMappings.java | 2 +- .../bigquery/jdbc/BigQueryJdbcUrlUtility.java | 2 +- .../bigquery/jdbc/BigQueryJsonArray.java | 2 +- .../bigquery/jdbc/BigQueryJsonResultSet.java | 2 +- .../bigquery/jdbc/BigQueryJsonStruct.java | 2 +- .../jdbc/BigQueryNoOpsConnection.java | 2 +- .../bigquery/jdbc/BigQueryNoOpsResultSet.java | 2 +- .../bigquery/jdbc/BigQueryNoOpsStatement.java | 2 +- .../jdbc/BigQueryParameterHandler.java | 2 +- .../jdbc/BigQueryPooledConnection.java | 2 +- .../jdbc/BigQueryPreparedStatement.java | 2 +- .../bigquery/jdbc/BigQueryResultSet.java | 2 +- .../jdbc/BigQueryResultSetFinalizers.java | 2 +- .../jdbc/BigQueryResultSetMetadata.java | 2 +- .../cloud/bigquery/jdbc/BigQuerySettings.java | 2 +- .../jdbc/BigQuerySqlTypeConverter.java | 2 +- .../bigquery/jdbc/BigQueryStatement.java | 2 +- .../bigquery/jdbc/BigQueryThreadFactory.java | 2 +- .../bigquery/jdbc/BigQueryTypeCoercer.java | 2 +- .../jdbc/BigQueryTypeCoercerBuilder.java | 2 +- .../jdbc/BigQueryTypeCoercionUtility.java | 2 +- .../cloud/bigquery/jdbc/DataSource.java | 2 +- .../jdbc/PooledConnectionDataSource.java | 2 +- .../jdbc/PooledConnectionListener.java | 2 +- ...FormatTypeBigQueryCoercionUtilityTest.java | 2 +- .../BigQueryArrowArrayOfPrimitivesTest.java | 2 +- .../jdbc/BigQueryArrowArrayOfStructTest.java | 2 +- .../jdbc/BigQueryArrowResultSetTest.java | 2 +- .../jdbc/BigQueryArrowStructTest.java | 2 +- .../jdbc/BigQueryBaseResultSetTest.java | 2 +- ...igQueryBigQueryTypeCoercerBuilderTest.java | 2 +- .../jdbc/BigQueryCallableStatementTest.java | 2 +- .../bigquery/jdbc/BigQueryConnectionTest.java | 2 +- .../jdbc/BigQueryDaemonPollingTaskTest.java | 2 +- .../jdbc/BigQueryDatabaseMetaDataTest.java | 2 +- .../jdbc/BigQueryDefaultCoercionsTest.java | 2 +- .../bigquery/jdbc/BigQueryDriverTest.java | 2 +- .../bigquery/jdbc/BigQueryJdbcBaseTest.java | 2 +- .../jdbc/BigQueryJdbcOAuthUtilityTest.java | 2 +- .../jdbc/BigQueryJdbcParameterTest.java | 2 +- .../jdbc/BigQueryJdbcProxyUtilityTest.java | 2 +- .../jdbc/BigQueryJdbcUrlUtilityTest.java | 2 +- .../BigQueryJsonArrayOfPrimitivesTest.java | 2 +- .../jdbc/BigQueryJsonArrayOfStructTest.java | 2 +- .../jdbc/BigQueryJsonResultSetTest.java | 2 +- .../bigquery/jdbc/BigQueryJsonStructTest.java | 2 +- .../jdbc/BigQueryParameterHandlerTest.java | 2 +- .../jdbc/BigQueryPooledConnectionTest.java | 2 +- .../jdbc/BigQueryResultSetFinalizersTest.java | 2 +- .../jdbc/BigQueryResultSetMetadataTest.java | 2 +- .../bigquery/jdbc/BigQueryStatementTest.java | 2 +- .../jdbc/BigQueryThreadFactoryTest.java | 2 +- .../jdbc/BigQueryTypeCoercerTest.java | 2 +- ...dValueTypeBigQueryCoercionUtilityTest.java | 2 +- .../cloud/bigquery/jdbc/NullHandlingTest.java | 2 +- .../jdbc/PooledConnectionDataSourceTest.java | 2 +- .../jdbc/PooledConnectionListenerTest.java | 2 +- .../google/cloud/bigquery/jdbc/TestType.java | 2 +- .../google/cloud/bigquery/jdbc/it/ITBase.java | 2 +- .../bigquery/jdbc/it/ITBigQueryJDBCTest.java | 2 +- .../jdbc/it/ITNightlyBigQueryTest.java | 2 +- .../bigquery/jdbc/it/ITPSCBigQueryTest.java | 2 +- .../bigquery/jdbc/it/ITProxyBigQueryTest.java | 2 +- .../bigquery/jdbc/it/ITTPCBigQueryTest.java | 2 +- .../bigquery/jdbc/rules/TimeZoneRule.java | 2 +- .../bigquery/jdbc/utils/ArrowUtilities.java | 2 +- .../bigquery/jdbc/utils/TestUtilities.java | 2 +- .../cloud/bigquery/jdbc/utils/URIBuilder.java | 2 +- .../cloud/bigquery/benchmark/Benchmark.java | 2 +- .../cloud/bigquery/AbstractJdbcResultSet.java | 2 +- .../java/com/google/cloud/bigquery/Acl.java | 2 +- .../google/cloud/bigquery/Annotations.java | 2 +- .../google/cloud/bigquery/AvroOptions.java | 2 +- .../google/cloud/bigquery/BiEngineReason.java | 2 +- .../google/cloud/bigquery/BiEngineStats.java | 2 +- .../cloud/bigquery/BigLakeConfiguration.java | 2 +- .../com/google/cloud/bigquery/BigQuery.java | 2 +- .../cloud/bigquery/BigQueryBaseService.java | 2 +- .../cloud/bigquery/BigQueryDryRunResult.java | 2 +- .../bigquery/BigQueryDryRunResultImpl.java | 2 +- .../google/cloud/bigquery/BigQueryError.java | 2 +- .../cloud/bigquery/BigQueryErrorMessages.java | 2 +- .../cloud/bigquery/BigQueryException.java | 2 +- .../cloud/bigquery/BigQueryFactory.java | 2 +- .../google/cloud/bigquery/BigQueryImpl.java | 2 +- .../cloud/bigquery/BigQueryOptions.java | 2 +- .../google/cloud/bigquery/BigQueryResult.java | 2 +- .../cloud/bigquery/BigQueryResultImpl.java | 2 +- .../cloud/bigquery/BigQueryResultStats.java | 2 +- .../bigquery/BigQueryResultStatsImpl.java | 2 +- .../bigquery/BigQueryRetryAlgorithm.java | 2 +- .../cloud/bigquery/BigQueryRetryConfig.java | 2 +- .../cloud/bigquery/BigQueryRetryHelper.java | 2 +- .../cloud/bigquery/BigQuerySQLException.java | 2 +- .../google/cloud/bigquery/BigtableColumn.java | 2 +- .../cloud/bigquery/BigtableColumnFamily.java | 2 +- .../cloud/bigquery/BigtableOptions.java | 2 +- .../cloud/bigquery/CloneDefinition.java | 2 +- .../com/google/cloud/bigquery/Clustering.java | 2 +- .../cloud/bigquery/ColumnReference.java | 2 +- .../com/google/cloud/bigquery/Connection.java | 2 +- .../google/cloud/bigquery/ConnectionImpl.java | 2 +- .../cloud/bigquery/ConnectionProperty.java | 2 +- .../cloud/bigquery/ConnectionSettings.java | 2 +- .../cloud/bigquery/CopyJobConfiguration.java | 2 +- .../com/google/cloud/bigquery/CsvOptions.java | 2 +- .../cloud/bigquery/DataFormatOptions.java | 2 +- .../com/google/cloud/bigquery/Dataset.java | 2 +- .../com/google/cloud/bigquery/DatasetId.java | 2 +- .../google/cloud/bigquery/DatasetInfo.java | 2 +- .../bigquery/DatastoreBackupOptions.java | 2 +- .../com/google/cloud/bigquery/DmlStats.java | 2 +- .../bigquery/EncryptionConfiguration.java | 2 +- .../cloud/bigquery/ExecuteSelectResponse.java | 2 +- .../bigquery/ExternalDatasetReference.java | 2 +- .../bigquery/ExternalTableDefinition.java | 2 +- .../bigquery/ExtractJobConfiguration.java | 2 +- .../java/com/google/cloud/bigquery/Field.java | 2 +- .../cloud/bigquery/FieldElementType.java | 2 +- .../com/google/cloud/bigquery/FieldList.java | 2 +- .../com/google/cloud/bigquery/FieldValue.java | 2 +- .../google/cloud/bigquery/FieldValueList.java | 2 +- .../com/google/cloud/bigquery/ForeignKey.java | 2 +- .../google/cloud/bigquery/FormatOptions.java | 2 +- .../cloud/bigquery/GoogleSheetsOptions.java | 2 +- .../bigquery/HivePartitioningOptions.java | 2 +- .../cloud/bigquery/IndexUnusedReason.java | 2 +- .../cloud/bigquery/InsertAllRequest.java | 2 +- .../cloud/bigquery/InsertAllResponse.java | 2 +- .../java/com/google/cloud/bigquery/Job.java | 2 +- .../cloud/bigquery/JobConfiguration.java | 2 +- .../google/cloud/bigquery/JobException.java | 2 +- .../java/com/google/cloud/bigquery/JobId.java | 2 +- .../com/google/cloud/bigquery/JobInfo.java | 2 +- .../google/cloud/bigquery/JobStatistics.java | 2 +- .../com/google/cloud/bigquery/JobStatus.java | 2 +- .../cloud/bigquery/LegacySQLTypeName.java | 2 +- .../cloud/bigquery/LoadConfiguration.java | 2 +- .../cloud/bigquery/LoadJobConfiguration.java | 2 +- .../bigquery/MaterializedViewDefinition.java | 2 +- .../cloud/bigquery/MetadataCacheStats.java | 2 +- .../java/com/google/cloud/bigquery/Model.java | 2 +- .../com/google/cloud/bigquery/ModelId.java | 2 +- .../com/google/cloud/bigquery/ModelInfo.java | 2 +- .../cloud/bigquery/ModelTableDefinition.java | 2 +- .../com/google/cloud/bigquery/Option.java | 2 +- .../com/google/cloud/bigquery/Parameter.java | 2 +- .../google/cloud/bigquery/ParquetOptions.java | 2 +- .../google/cloud/bigquery/PolicyHelper.java | 2 +- .../com/google/cloud/bigquery/PolicyTags.java | 2 +- .../com/google/cloud/bigquery/PrimaryKey.java | 2 +- .../cloud/bigquery/QueryJobConfiguration.java | 2 +- .../cloud/bigquery/QueryParameterValue.java | 2 +- .../cloud/bigquery/QueryRequestInfo.java | 2 +- .../google/cloud/bigquery/QueryResponse.java | 2 +- .../com/google/cloud/bigquery/QueryStage.java | 2 +- .../java/com/google/cloud/bigquery/Range.java | 2 +- .../cloud/bigquery/RangePartitioning.java | 2 +- .../ReadClientConnectionConfiguration.java | 2 +- .../cloud/bigquery/RemoteFunctionOptions.java | 2 +- .../com/google/cloud/bigquery/Routine.java | 2 +- .../cloud/bigquery/RoutineArgument.java | 2 +- .../com/google/cloud/bigquery/RoutineId.java | 2 +- .../google/cloud/bigquery/RoutineInfo.java | 2 +- .../com/google/cloud/bigquery/Schema.java | 2 +- .../google/cloud/bigquery/SearchStats.java | 2 +- .../bigquery/SnapshotTableDefinition.java | 2 +- .../cloud/bigquery/StandardSQLDataType.java | 2 +- .../cloud/bigquery/StandardSQLField.java | 2 +- .../cloud/bigquery/StandardSQLStructType.java | 2 +- .../cloud/bigquery/StandardSQLTableType.java | 2 +- .../cloud/bigquery/StandardSQLTypeName.java | 2 +- .../bigquery/StandardTableDefinition.java | 2 +- .../java/com/google/cloud/bigquery/Table.java | 2 +- .../cloud/bigquery/TableConstraints.java | 2 +- .../cloud/bigquery/TableDataWriteChannel.java | 2 +- .../cloud/bigquery/TableDefinition.java | 2 +- .../com/google/cloud/bigquery/TableId.java | 2 +- .../com/google/cloud/bigquery/TableInfo.java | 2 +- .../bigquery/TableMetadataCacheUsage.java | 2 +- .../google/cloud/bigquery/TableResult.java | 2 +- .../cloud/bigquery/TimePartitioning.java | 2 +- .../google/cloud/bigquery/TimelineSample.java | 2 +- .../cloud/bigquery/UserDefinedFunction.java | 2 +- .../google/cloud/bigquery/ViewDefinition.java | 2 +- .../bigquery/WriteChannelConfiguration.java | 2 +- .../google/cloud/bigquery/package-info.java | 2 +- .../bigquery/spi/BigQueryRpcFactory.java | 2 +- .../cloud/bigquery/spi/v2/BigQueryRpc.java | 2 +- .../bigquery/spi/v2/HttpBigQueryRpc.java | 2 +- .../testing/RemoteBigQueryHelper.java | 2 +- .../cloud/bigquery/testing/package-info.java | 2 +- .../src/test/java/MetadataCacheStatsTest.java | 2 +- .../com/google/cloud/bigquery/AclTest.java | 2 +- .../cloud/bigquery/AnnotationsTest.java | 2 +- .../cloud/bigquery/AvroOptionsTest.java | 2 +- .../bigquery/BigLakeConfigurationTest.java | 2 +- .../cloud/bigquery/BigQueryErrorTest.java | 2 +- .../cloud/bigquery/BigQueryExceptionTest.java | 2 +- .../cloud/bigquery/BigQueryImplTest.java | 2 +- .../cloud/bigquery/BigQueryOptionsTest.java | 2 +- .../bigquery/BigQueryResultImplTest.java | 2 +- .../cloud/bigquery/BigtableOptionsTest.java | 2 +- .../cloud/bigquery/CloneDefinitionTest.java | 2 +- .../cloud/bigquery/ColumnReferenceTest.java | 2 +- .../cloud/bigquery/ConnectionImplTest.java | 2 +- .../bigquery/ConnectionPropertyTest.java | 2 +- .../bigquery/ConnectionSettingsTest.java | 2 +- .../bigquery/CopyJobConfigurationTest.java | 2 +- .../google/cloud/bigquery/CsvOptionsTest.java | 2 +- .../google/cloud/bigquery/DatasetIdTest.java | 2 +- .../cloud/bigquery/DatasetInfoTest.java | 2 +- .../google/cloud/bigquery/DatasetTest.java | 2 +- .../bigquery/DatastoreBackupOptionsTest.java | 2 +- .../google/cloud/bigquery/DmlStatsTest.java | 2 +- .../ExternalDatasetReferenceTest.java | 2 +- .../bigquery/ExternalTableDefinitionTest.java | 2 +- .../bigquery/ExtractJobConfigurationTest.java | 2 +- .../cloud/bigquery/FieldElementTypeTest.java | 2 +- .../google/cloud/bigquery/FieldListTest.java | 2 +- .../com/google/cloud/bigquery/FieldTest.java | 2 +- .../cloud/bigquery/FieldValueListTest.java | 2 +- .../google/cloud/bigquery/FieldValueTest.java | 2 +- .../google/cloud/bigquery/ForeignKeyTest.java | 2 +- .../cloud/bigquery/FormatOptionsTest.java | 2 +- .../bigquery/GoogleSheetsOptionsTest.java | 2 +- .../bigquery/HivePartitioningOptionsTest.java | 2 +- .../cloud/bigquery/InsertAllRequestTest.java | 2 +- .../cloud/bigquery/InsertAllResponseTest.java | 2 +- .../com/google/cloud/bigquery/JobIdTest.java | 2 +- .../google/cloud/bigquery/JobInfoTest.java | 2 +- .../cloud/bigquery/JobStatisticsTest.java | 2 +- .../google/cloud/bigquery/JobStatusTest.java | 2 +- .../com/google/cloud/bigquery/JobTest.java | 2 +- .../bigquery/LoadJobConfigurationTest.java | 2 +- .../MaterializedViewDefinitionTest.java | 2 +- .../google/cloud/bigquery/ModelIdTest.java | 2 +- .../google/cloud/bigquery/ModelInfoTest.java | 2 +- .../bigquery/ModelTableDefinitionTest.java | 2 +- .../com/google/cloud/bigquery/ModelTest.java | 2 +- .../com/google/cloud/bigquery/OptionTest.java | 2 +- .../cloud/bigquery/ParquetOptionsTest.java | 2 +- .../cloud/bigquery/PolicyHelperTest.java | 2 +- .../google/cloud/bigquery/PolicyTagsTest.java | 2 +- .../google/cloud/bigquery/PrimaryKeyTest.java | 2 +- .../bigquery/QueryJobConfigurationTest.java | 2 +- .../bigquery/QueryParameterValueTest.java | 2 +- .../cloud/bigquery/QueryRequestInfoTest.java | 2 +- .../google/cloud/bigquery/QueryStageTest.java | 2 +- .../com/google/cloud/bigquery/RangeTest.java | 2 +- .../bigquery/RemoteFunctionOptionsTest.java | 2 +- .../cloud/bigquery/RoutineArgumentTest.java | 2 +- .../google/cloud/bigquery/RoutineIdTest.java | 2 +- .../cloud/bigquery/RoutineInfoTest.java | 2 +- .../google/cloud/bigquery/RoutineTest.java | 2 +- .../com/google/cloud/bigquery/SchemaTest.java | 2 +- .../cloud/bigquery/SerializationTest.java | 2 +- .../bigquery/SnapshotTableDefinitionTest.java | 2 +- .../bigquery/StandardSQLDataTypeTest.java | 2 +- .../cloud/bigquery/StandardSQLFieldTest.java | 2 +- .../bigquery/StandardSQLStructTypeTest.java | 2 +- .../bigquery/StandardSQLTableTypeTest.java | 2 +- .../bigquery/StandardTableDefinitionTest.java | 2 +- .../cloud/bigquery/TableConstraintsTest.java | 2 +- .../bigquery/TableDataWriteChannelTest.java | 2 +- .../google/cloud/bigquery/TableIdTest.java | 2 +- .../google/cloud/bigquery/TableInfoTest.java | 2 +- .../bigquery/TableMetadataCacheUsageTest.java | 2 +- .../cloud/bigquery/TableResultTest.java | 2 +- .../com/google/cloud/bigquery/TableTest.java | 2 +- .../cloud/bigquery/TimePartitioningTest.java | 2 +- .../cloud/bigquery/TimelineSampleTest.java | 2 +- .../bigquery/UserDefinedFunctionTest.java | 2 +- .../cloud/bigquery/ViewDefinitionTest.java | 2 +- .../WriteChannelConfigurationTest.java | 2 +- .../cloud/bigquery/it/ITBigQueryTest.java | 2 +- .../bigquery/it/ITHighPrecisionTimestamp.java | 2 +- .../bigquery/it/ITNightlyBigQueryTest.java | 2 +- .../cloud/bigquery/it/ITRemoteUDFTest.java | 2 +- .../bigquery/spi/v2/HttpBigQueryRpcTest.java | 2 +- .../testing/RemoteBigQueryHelperTest.java | 2 +- java-bigquery/java.header | 15 -- java-bigquery/license-checks.xml | 10 - java-bigquery/renovate.json | 109 ---------- .../example/bigquery/AddColumnLoadAppend.java | 2 +- .../com/example/bigquery/AddEmptyColumn.java | 2 +- .../com/example/bigquery/AuthDriveScope.java | 2 +- .../com/example/bigquery/AuthSnippets.java | 2 +- .../com/example/bigquery/AuthUserFlow.java | 2 +- .../com/example/bigquery/AuthUserQuery.java | 2 +- .../example/bigquery/AuthorizeDataset.java | 2 +- .../bigquery/AuthorizedViewTutorial.java | 2 +- .../com/example/bigquery/BrowseTable.java | 2 +- .../java/com/example/bigquery/CancelJob.java | 2 +- .../example/bigquery/CopyMultipleTables.java | 2 +- .../java/com/example/bigquery/CopyTable.java | 2 +- .../com/example/bigquery/CopyTableCmek.java | 2 +- .../CreateAndQueryRepeatedRecordField.java | 2 +- .../bigquery/CreateClusteredTable.java | 2 +- .../com/example/bigquery/CreateDataset.java | 2 +- .../example/bigquery/CreateDatasetAws.java | 2 +- .../CreateDatasetWithRegionalEndpoint.java | 2 +- .../bigquery/CreateExternalTableAws.java | 2 +- .../com/example/bigquery/CreateIamPolicy.java | 2 +- .../java/com/example/bigquery/CreateJob.java | 2 +- .../bigquery/CreateMaterializedView.java | 2 +- .../com/example/bigquery/CreateModel.java | 2 +- .../bigquery/CreatePartitionedTable.java | 2 +- .../bigquery/CreateRangePartitionedTable.java | 2 +- .../com/example/bigquery/CreateRoutine.java | 2 +- .../example/bigquery/CreateRoutineDdl.java | 2 +- .../com/example/bigquery/CreateTable.java | 2 +- .../com/example/bigquery/CreateTableCmek.java | 2 +- .../CreateTableExternalHivePartitioned.java | 2 +- .../bigquery/CreateTableWithoutSchema.java | 2 +- ...CreateTablesWithPrimaryAndForeignKeys.java | 2 +- .../java/com/example/bigquery/CreateView.java | 2 +- .../com/example/bigquery/DatasetExists.java | 2 +- .../com/example/bigquery/DdlCreateView.java | 2 +- .../com/example/bigquery/DeleteDataset.java | 2 +- .../bigquery/DeleteDatasetAndContents.java | 2 +- .../example/bigquery/DeleteLabelDataset.java | 2 +- .../example/bigquery/DeleteLabelTable.java | 2 +- .../bigquery/DeleteMaterializedView.java | 2 +- .../com/example/bigquery/DeleteModel.java | 2 +- .../com/example/bigquery/DeleteRoutine.java | 2 +- .../com/example/bigquery/DeleteTable.java | 2 +- .../bigquery/EnableOpenTelemetryTracing.java | 2 +- ...bleOpenTelemetryTracingWithParentSpan.java | 2 +- .../bigquery/ExportQueryResultsToS3.java | 2 +- .../com/example/bigquery/ExtractModel.java | 2 +- .../bigquery/ExtractTableCompressed.java | 2 +- .../example/bigquery/ExtractTableToCsv.java | 2 +- .../example/bigquery/ExtractTableToJson.java | 2 +- .../com/example/bigquery/GetDatasetInfo.java | 2 +- .../example/bigquery/GetDatasetLabels.java | 2 +- .../java/com/example/bigquery/GetJob.java | 2 +- .../java/com/example/bigquery/GetModel.java | 2 +- .../java/com/example/bigquery/GetRoutine.java | 2 +- .../java/com/example/bigquery/GetTable.java | 2 +- .../com/example/bigquery/GetTableLabels.java | 2 +- .../java/com/example/bigquery/GetView.java | 2 +- .../com/example/bigquery/GrantViewAccess.java | 2 +- .../example/bigquery/InsertingDataTypes.java | 2 +- .../com/example/bigquery/LabelDataset.java | 2 +- .../java/com/example/bigquery/LabelTable.java | 2 +- .../com/example/bigquery/ListDatasets.java | 2 +- .../example/bigquery/ListDatasetsByLabel.java | 2 +- .../java/com/example/bigquery/ListJobs.java | 2 +- .../java/com/example/bigquery/ListModels.java | 2 +- .../com/example/bigquery/ListRoutines.java | 2 +- .../java/com/example/bigquery/ListTables.java | 2 +- .../com/example/bigquery/LoadAvroFromGcs.java | 2 +- .../bigquery/LoadAvroFromGcsTruncate.java | 2 +- .../com/example/bigquery/LoadCsvFromGcs.java | 2 +- .../bigquery/LoadCsvFromGcsAutodetect.java | 2 +- .../bigquery/LoadCsvFromGcsTruncate.java | 2 +- .../com/example/bigquery/LoadJsonFromGcs.java | 2 +- .../bigquery/LoadJsonFromGcsAutodetect.java | 2 +- .../example/bigquery/LoadJsonFromGcsCmek.java | 2 +- .../bigquery/LoadJsonFromGcsTruncate.java | 2 +- .../com/example/bigquery/LoadLocalFile.java | 2 +- .../bigquery/LoadLocalFileInSession.java | 2 +- .../com/example/bigquery/LoadOrcFromGcs.java | 2 +- .../bigquery/LoadOrcFromGcsTruncate.java | 2 +- .../com/example/bigquery/LoadParquet.java | 2 +- .../bigquery/LoadParquetReplaceTable.java | 2 +- .../bigquery/LoadPartitionedTable.java | 2 +- .../example/bigquery/LoadTableClustered.java | 2 +- .../bigquery/NestedRepeatedSchema.java | 2 +- .../java/com/example/bigquery/QueryBatch.java | 2 +- .../example/bigquery/QueryClusteredTable.java | 2 +- .../bigquery/QueryDestinationTableCmek.java | 2 +- .../example/bigquery/QueryDisableCache.java | 2 +- .../com/example/bigquery/QueryDryRun.java | 2 +- .../bigquery/QueryExternalBigtablePerm.java | 2 +- .../bigquery/QueryExternalBigtableTemp.java | 2 +- .../bigquery/QueryExternalGcsPerm.java | 2 +- .../bigquery/QueryExternalGcsTemp.java | 2 +- .../bigquery/QueryExternalSheetsPerm.java | 2 +- .../bigquery/QueryExternalSheetsTemp.java | 2 +- .../bigquery/QueryExternalTableAws.java | 2 +- .../example/bigquery/QueryJobOptional.java | 2 +- .../example/bigquery/QueryLargeResults.java | 2 +- .../bigquery/QueryMaterializedView.java | 2 +- .../com/example/bigquery/QueryPagination.java | 2 +- .../bigquery/QueryPartitionedTable.java | 2 +- .../com/example/bigquery/QueryScript.java | 2 +- .../com/example/bigquery/QueryTotalRows.java | 2 +- ...ueryWithArrayOfStructsNamedParameters.java | 2 +- .../bigquery/QueryWithArrayParameters.java | 2 +- .../bigquery/QueryWithNamedParameters.java | 2 +- .../QueryWithNamedTypesParameters.java | 2 +- .../QueryWithPositionalParameters.java | 2 +- .../QueryWithPositionalTypesParameters.java | 2 +- .../bigquery/QueryWithStructsParameters.java | 2 +- .../QueryWithTimestampParameters.java | 2 +- .../example/bigquery/QuickstartSample.java | 2 +- .../bigquery/RelaxColumnLoadAppend.java | 2 +- .../com/example/bigquery/RelaxColumnMode.java | 2 +- .../com/example/bigquery/RelaxTableQuery.java | 2 +- .../com/example/bigquery/ResourceCleanUp.java | 2 +- .../com/example/bigquery/RunLegacyQuery.java | 2 +- .../example/bigquery/SaveQueryToTable.java | 2 +- .../com/example/bigquery/SetUserAgent.java | 2 +- .../java/com/example/bigquery/SimpleApp.java | 2 +- .../com/example/bigquery/SimpleQuery.java | 2 +- .../SimpleQueryConnectionReadApi.java | 2 +- .../com/example/bigquery/TableExists.java | 2 +- .../com/example/bigquery/TableInsertRows.java | 2 +- .../TableInsertRowsWithoutRowIds.java | 2 +- .../com/example/bigquery/UndeleteTable.java | 2 +- .../example/bigquery/UpdateDatasetAccess.java | 2 +- .../bigquery/UpdateDatasetDescription.java | 2 +- .../bigquery/UpdateDatasetExpiration.java | 2 +- .../UpdateDatasetPartitionExpiration.java | 2 +- .../com/example/bigquery/UpdateIamPolicy.java | 2 +- .../bigquery/UpdateMaterializedView.java | 2 +- .../bigquery/UpdateModelDescription.java | 2 +- .../com/example/bigquery/UpdateRoutine.java | 2 +- .../com/example/bigquery/UpdateTableCmek.java | 2 +- .../bigquery/UpdateTableDescription.java | 2 +- .../com/example/bigquery/UpdateTableDml.java | 2 +- .../bigquery/UpdateTableExpiration.java | 2 +- .../UpdateTableRequirePartitionFilter.java | 2 +- .../com/example/bigquery/UpdateViewQuery.java | 2 +- .../bigquery/AddColumnLoadAppendIT.java | 2 +- .../example/bigquery/AddEmptyColumnIT.java | 2 +- .../example/bigquery/AuthDriveScopeIT.java | 2 +- .../com/example/bigquery/AuthSnippetsIT.java | 2 +- .../example/bigquery/AuthorizeDatasetIT.java | 2 +- .../bigquery/AuthorizedViewTutorialIT.java | 2 +- .../com/example/bigquery/BrowseTableIT.java | 2 +- .../com/example/bigquery/CancelJobIT.java | 2 +- .../bigquery/CopyMultipleTablesIT.java | 2 +- .../com/example/bigquery/CopyTableCmekIT.java | 2 +- .../com/example/bigquery/CopyTableIT.java | 2 +- .../CreateAndQueryRepeatedRecordFieldIT.java | 2 +- .../bigquery/CreateClusteredTableIT.java | 2 +- .../example/bigquery/CreateDatasetAwsIT.java | 2 +- .../com/example/bigquery/CreateDatasetIT.java | 2 +- .../CreateDatasetWithRegionalEndpointIT.java | 2 +- .../bigquery/CreateExternalTableAwsIT.java | 2 +- .../example/bigquery/CreateIamPolicyIT.java | 2 +- .../com/example/bigquery/CreateJobIT.java | 2 +- .../bigquery/CreateMaterializedViewIT.java | 2 +- .../com/example/bigquery/CreateModelIT.java | 2 +- .../bigquery/CreatePartitionedTableIT.java | 2 +- .../CreateRangePartitionedTableIT.java | 2 +- .../example/bigquery/CreateRoutineDdlIT.java | 2 +- .../com/example/bigquery/CreateRoutineIT.java | 2 +- .../example/bigquery/CreateTableCmekIT.java | 2 +- .../CreateTableExternalHivePartitionedIT.java | 2 +- .../com/example/bigquery/CreateTableIT.java | 2 +- .../bigquery/CreateTableWithoutSchemaIT.java | 2 +- ...eateTablesWithPrimaryAndForeignKeysIT.java | 2 +- .../com/example/bigquery/CreateViewIT.java | 2 +- .../com/example/bigquery/DatasetExistsIT.java | 2 +- .../com/example/bigquery/DdlCreateViewIT.java | 2 +- .../bigquery/DeleteDatasetAndContentsIT.java | 2 +- .../com/example/bigquery/DeleteDatasetIT.java | 2 +- .../bigquery/DeleteLabelDatasetIT.java | 2 +- .../example/bigquery/DeleteLabelTableIT.java | 2 +- .../bigquery/DeleteMaterializedViewIT.java | 2 +- .../com/example/bigquery/DeleteModelIT.java | 2 +- .../com/example/bigquery/DeleteRoutineIT.java | 2 +- .../com/example/bigquery/DeleteTableIT.java | 2 +- .../EnableOpenTelemetryTracingIT.java | 2 +- ...eOpenTelemetryTracingWithParentSpanIT.java | 2 +- .../bigquery/ExportQueryResultsToS3IT.java | 2 +- .../com/example/bigquery/ExtractModelIT.java | 2 +- .../bigquery/ExtractTableCompressedIT.java | 2 +- .../example/bigquery/ExtractTableToCsvIT.java | 2 +- .../bigquery/ExtractTableToJsonIT.java | 2 +- .../example/bigquery/GetDatasetInfoIT.java | 2 +- .../example/bigquery/GetDatasetLabelsIT.java | 2 +- .../java/com/example/bigquery/GetJobIT.java | 2 +- .../java/com/example/bigquery/GetModelIT.java | 2 +- .../com/example/bigquery/GetRoutineIT.java | 2 +- .../java/com/example/bigquery/GetTableIT.java | 2 +- .../example/bigquery/GetTableLabelsIT.java | 2 +- .../java/com/example/bigquery/GetViewIT.java | 2 +- .../example/bigquery/GrantViewAccessIT.java | 2 +- .../bigquery/InsertingDataTypesIT.java | 2 +- .../com/example/bigquery/LabelDatasetIT.java | 2 +- .../com/example/bigquery/LabelTableIT.java | 2 +- .../bigquery/ListDatasetsByLabelIT.java | 2 +- .../com/example/bigquery/ListDatasetsIT.java | 2 +- .../java/com/example/bigquery/ListJobsIT.java | 2 +- .../com/example/bigquery/ListModelsIT.java | 2 +- .../com/example/bigquery/ListRoutinesIT.java | 2 +- .../com/example/bigquery/ListTablesIT.java | 2 +- .../example/bigquery/LoadAvroFromGcsIT.java | 2 +- .../bigquery/LoadAvroFromGcsTruncateIT.java | 2 +- .../bigquery/LoadCsvFromGcsAutodetectIT.java | 2 +- .../example/bigquery/LoadCsvFromGcsIT.java | 2 +- .../bigquery/LoadCsvFromGcsTruncateTest.java | 2 +- .../bigquery/LoadJsonFromGcsAutodetectIT.java | 2 +- .../bigquery/LoadJsonFromGcsCmekIT.java | 2 +- .../example/bigquery/LoadJsonFromGcsIT.java | 2 +- .../bigquery/LoadJsonFromGcsTruncateIT.java | 2 +- .../com/example/bigquery/LoadLocalFileIT.java | 2 +- .../bigquery/LoadLocalFileInSessionIT.java | 2 +- .../example/bigquery/LoadOrcFromGcsIT.java | 2 +- .../bigquery/LoadOrcFromGcsTruncateIT.java | 2 +- .../com/example/bigquery/LoadParquetIT.java | 2 +- .../bigquery/LoadParquetReplaceTableIT.java | 2 +- .../bigquery/LoadPartitionedTableIT.java | 2 +- .../bigquery/LoadTableClusteredIT.java | 2 +- .../bigquery/NestedRepeatedSchemaIT.java | 2 +- .../com/example/bigquery/QueryBatchIT.java | 2 +- .../bigquery/QueryClusteredTableIT.java | 2 +- .../bigquery/QueryDestinationTableCmekIT.java | 2 +- .../example/bigquery/QueryDisableCacheIT.java | 2 +- .../com/example/bigquery/QueryDryRunIT.java | 2 +- .../bigquery/QueryExternalBigtablePermIT.java | 2 +- .../bigquery/QueryExternalBigtableTempIT.java | 2 +- .../bigquery/QueryExternalGcsPermIT.java | 2 +- .../bigquery/QueryExternalGcsTempIT.java | 2 +- .../bigquery/QueryExternalSheetsPermIT.java | 2 +- .../bigquery/QueryExternalSheetsTempIT.java | 2 +- .../bigquery/QueryExternalTableAwsIT.java | 2 +- .../example/bigquery/QueryJobOptionalIT.java | 2 +- .../example/bigquery/QueryLargeResultsIT.java | 2 +- .../bigquery/QueryMaterializedViewIT.java | 2 +- .../example/bigquery/QueryPaginationIT.java | 2 +- .../bigquery/QueryPartitionedTableIT.java | 2 +- .../com/example/bigquery/QueryScriptIT.java | 2 +- .../example/bigquery/QueryTotalRowsIT.java | 2 +- ...ryWithArrayOfStructsNamedParametersIT.java | 2 +- .../bigquery/QueryWithArrayParametersIT.java | 2 +- .../bigquery/QueryWithNamedParametersIT.java | 2 +- .../QueryWithNamedTypesParametersIT.java | 2 +- .../QueryWithPositionalParametersIT.java | 2 +- .../QueryWithPositionalTypesParametersIT.java | 2 +- .../QueryWithStructsParametersIT.java | 2 +- .../QueryWithTimestampParametersIT.java | 2 +- .../example/bigquery/QuickstartSampleIT.java | 2 +- .../bigquery/RelaxColumnLoadAppendIT.java | 2 +- .../example/bigquery/RelaxColumnModeIT.java | 2 +- .../example/bigquery/RelaxTableQueryIT.java | 2 +- .../example/bigquery/RunLegacyQueryIT.java | 2 +- .../example/bigquery/SaveQueryToTableIT.java | 2 +- .../example/bigquery/SetUserAgentTest.java | 2 +- .../com/example/bigquery/SimpleAppIT.java | 2 +- .../SimpleQueryConnectionReadApiIT.java | 2 +- .../com/example/bigquery/SimpleQueryIT.java | 2 +- .../com/example/bigquery/TableExistsIT.java | 2 +- .../example/bigquery/TableInsertRowsIT.java | 2 +- .../TableInsertRowsWithoutRowIdsIT.java | 2 +- .../com/example/bigquery/UndeleteTableIT.java | 2 +- .../bigquery/UpdateDatasetAccessIT.java | 2 +- .../bigquery/UpdateDatasetDescriptionIT.java | 2 +- .../bigquery/UpdateDatasetExpirationIT.java | 2 +- .../UpdateDatasetPartitionExpirationIT.java | 2 +- .../example/bigquery/UpdateIamPolicyIT.java | 2 +- .../bigquery/UpdateMaterializedViewIT.java | 2 +- .../bigquery/UpdateModelDescriptionIT.java | 2 +- .../com/example/bigquery/UpdateRoutineIT.java | 2 +- .../example/bigquery/UpdateTableCmekIT.java | 2 +- .../bigquery/UpdateTableDescriptionIT.java | 2 +- .../example/bigquery/UpdateTableDmlIT.java | 2 +- .../bigquery/UpdateTableExpirationIT.java | 2 +- .../UpdateTableRequirePartitionFilterIT.java | 2 +- .../example/bigquery/UpdateViewQueryIT.java | 2 +- 666 files changed, 594 insertions(+), 3198 deletions(-) delete mode 100644 java-bigquery/.github/CODEOWNERS delete mode 100644 java-bigquery/.github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 java-bigquery/.github/ISSUE_TEMPLATE/feature_request.md delete mode 100644 java-bigquery/.github/ISSUE_TEMPLATE/support_request.md delete mode 100644 java-bigquery/.github/PULL_REQUEST_TEMPLATE.md delete mode 100644 java-bigquery/.github/auto-label.yaml delete mode 100644 java-bigquery/.github/blunderbuss.yml delete mode 100644 java-bigquery/.github/dependabot.yml delete mode 100644 java-bigquery/.github/flakybot.yaml delete mode 100644 java-bigquery/.github/release-please.yml delete mode 100644 java-bigquery/.github/release-trigger.yml delete mode 100644 java-bigquery/.github/snippet-bot.yml delete mode 100644 java-bigquery/.github/sync-repo-settings.yaml delete mode 100644 java-bigquery/.github/trusted-contribution.yml delete mode 100644 java-bigquery/.github/workflows/approve-readme.yaml delete mode 100644 java-bigquery/.github/workflows/auto-release.yaml delete mode 100644 java-bigquery/.github/workflows/ci.yaml delete mode 100644 java-bigquery/.github/workflows/renovate_config_check.yaml delete mode 100644 java-bigquery/.github/workflows/samples.yaml delete mode 100644 java-bigquery/.github/workflows/scorecard.yml delete mode 100644 java-bigquery/.github/workflows/unmanaged_dependency_check.yaml delete mode 100644 java-bigquery/.gitignore delete mode 100644 java-bigquery/.kokoro/build.bat delete mode 100755 java-bigquery/.kokoro/build.sh delete mode 100755 java-bigquery/.kokoro/coerce_logs.sh delete mode 100644 java-bigquery/.kokoro/common.cfg delete mode 100644 java-bigquery/.kokoro/common.sh delete mode 100644 java-bigquery/.kokoro/continuous/common.cfg delete mode 100644 java-bigquery/.kokoro/continuous/graalvm-native-a.cfg delete mode 100644 java-bigquery/.kokoro/continuous/graalvm-native-b.cfg delete mode 100644 java-bigquery/.kokoro/continuous/graalvm-native-c.cfg delete mode 100644 java-bigquery/.kokoro/continuous/java8.cfg delete mode 100755 java-bigquery/.kokoro/continuous/propose_release.sh delete mode 100755 java-bigquery/.kokoro/dependencies.sh delete mode 100755 java-bigquery/.kokoro/jdbc-release.sh delete mode 100644 java-bigquery/.kokoro/nightly/common.cfg delete mode 100644 java-bigquery/.kokoro/nightly/integration.cfg delete mode 100644 java-bigquery/.kokoro/nightly/java11-integration.cfg delete mode 100644 java-bigquery/.kokoro/nightly/java11.cfg delete mode 100644 java-bigquery/.kokoro/nightly/java7.cfg delete mode 100644 java-bigquery/.kokoro/nightly/java8-osx.cfg delete mode 100644 java-bigquery/.kokoro/nightly/java8-win.cfg delete mode 100644 java-bigquery/.kokoro/nightly/java8.cfg delete mode 100644 java-bigquery/.kokoro/nightly/nightly-integration.cfg delete mode 100644 java-bigquery/.kokoro/nightly/samples.cfg delete mode 100755 java-bigquery/.kokoro/populate-secrets.sh delete mode 100644 java-bigquery/.kokoro/presubmit/clirr.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/common.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/dependencies.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/graalvm-native-a.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/graalvm-native-b.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/graalvm-native-c.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/integration.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/java11.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/java7.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/java8-osx.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/java8-win.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/java8.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/linkage-monitor.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/lint.cfg delete mode 100644 java-bigquery/.kokoro/presubmit/samples.cfg delete mode 100755 java-bigquery/.kokoro/readme.sh delete mode 100644 java-bigquery/.kokoro/requirements.in delete mode 100755 java-bigquery/.kokoro/run_samples_resource_cleanup.sh delete mode 100644 java-bigquery/.kokoro/trampoline.sh delete mode 100644 java-bigquery/CODE_OF_CONDUCT.md delete mode 100644 java-bigquery/CONTRIBUTING.md delete mode 100644 java-bigquery/LICENSE delete mode 100644 java-bigquery/SECURITY.md delete mode 100644 java-bigquery/java.header delete mode 100644 java-bigquery/license-checks.xml delete mode 100644 java-bigquery/renovate.json diff --git a/java-bigquery/.github/CODEOWNERS b/java-bigquery/.github/CODEOWNERS deleted file mode 100644 index d5cda2846527..000000000000 --- a/java-bigquery/.github/CODEOWNERS +++ /dev/null @@ -1,17 +0,0 @@ -# Code owners file. -# This file controls who is tagged for review for any given pull request. - -# For syntax help see: -# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax - -# The @googleapis/api-bigquery is the default owner for changes in this repo -* @googleapis/cloud-java-team-teamsync @googleapis/api-bigquery - -# The java-samples-reviewers team is the default owner for samples changes -samples/**/*.java @googleapis/cloud-java-team-teamsync @googleapis/java-samples-reviewers - -# Generated snippets should not be owned by samples reviewers -samples/snippets/generated/ @googleapis/cloud-java-team-teamsync @googleapis/yoshi-java - -# JDBC Driver -google-cloud-bigquery-jdbc/** @googleapis/bq-developer-tools @googleapis/cloud-java-team-teamsync diff --git a/java-bigquery/.github/ISSUE_TEMPLATE/bug_report.md b/java-bigquery/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index c49cd2b61827..000000000000 --- a/java-bigquery/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve - ---- - -Thanks for stopping by to let us know something could be better! - -**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. - -Please run down the following list and make sure you've tried the usual "quick fixes": - - - Search the issues already opened: https://github.com/googleapis/java-bigquery/issues - - Check for answers on StackOverflow: http://stackoverflow.com/questions/tagged/google-cloud-platform - -If you are still having issues, please include as much information as possible: - -#### Environment details - -1. Specify the API at the beginning of the title. For example, "BigQuery: ..."). - General, Core, and Other are also allowed as types -2. OS type and version: -3. Java version: -4. version(s): - -#### Steps to reproduce - - 1. ? - 2. ? - -#### Code example - -```java -// example -``` - -#### Stack trace -``` -Any relevant stacktrace here. -``` - -#### External references such as API reference guides - -- ? - -#### Any additional information below - - -Following these steps guarantees the quickest resolution possible. - -Thanks! diff --git a/java-bigquery/.github/ISSUE_TEMPLATE/feature_request.md b/java-bigquery/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 754e30c68a00..000000000000 --- a/java-bigquery/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this library - ---- - -Thanks for stopping by to let us know something could be better! - -**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. - -**Is your feature request related to a problem? Please describe.** -What the problem is. Example: I'm always frustrated when [...] - -**Describe the solution you'd like** -What you want to happen. - -**Describe alternatives you've considered** -Any alternative solutions or features you've considered. - -**Additional context** -Any other context or screenshots about the feature request. diff --git a/java-bigquery/.github/ISSUE_TEMPLATE/support_request.md b/java-bigquery/.github/ISSUE_TEMPLATE/support_request.md deleted file mode 100644 index 995869032125..000000000000 --- a/java-bigquery/.github/ISSUE_TEMPLATE/support_request.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -name: Support request -about: If you have a support contract with Google, please create an issue in the Google Cloud Support console. - ---- - -**PLEASE READ**: If you have a support contract with Google, please create an issue in the [support console](https://cloud.google.com/support/) instead of filing on GitHub. This will ensure a timely response. diff --git a/java-bigquery/.github/PULL_REQUEST_TEMPLATE.md b/java-bigquery/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 51efda31d403..000000000000 --- a/java-bigquery/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,10 +0,0 @@ -Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly: -- [ ] Make sure to open an issue as a [bug/issue](https://github.com/googleapis/java-bigquery/issues/new/choose) before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea -- [ ] Ensure the tests and linter pass -- [ ] Code coverage does not decrease (if any source code was changed) -- [ ] Appropriate docs were updated (if necessary) - -Fixes # ☕️ - -If you write sample code, please follow the [samples format]( -https://github.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md). diff --git a/java-bigquery/.github/auto-label.yaml b/java-bigquery/.github/auto-label.yaml deleted file mode 100644 index 4caef688b745..000000000000 --- a/java-bigquery/.github/auto-label.yaml +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright 2021 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -requestsize: - enabled: true diff --git a/java-bigquery/.github/blunderbuss.yml b/java-bigquery/.github/blunderbuss.yml deleted file mode 100644 index 2176b0543214..000000000000 --- a/java-bigquery/.github/blunderbuss.yml +++ /dev/null @@ -1,7 +0,0 @@ -# Configuration for the Blunderbuss GitHub app. For more info see -# https://github.com/googleapis/repo-automation-bots/tree/main/packages/blunderbuss -assign_prs_by: -- labels: - - samples - to: - - googleapis/java-samples-reviewers \ No newline at end of file diff --git a/java-bigquery/.github/dependabot.yml b/java-bigquery/.github/dependabot.yml deleted file mode 100644 index 203f9eaccf13..000000000000 --- a/java-bigquery/.github/dependabot.yml +++ /dev/null @@ -1,19 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "maven" - directory: "/" - schedule: - interval: "daily" - # Disable version updates for Maven dependencies - # we use renovate-bot as well as shared-dependencies BOM to update maven dependencies. - ignore: - - dependency-name: "*" - - package-ecosystem: "pip" - directory: "/" - schedule: - interval: "daily" - # Disable version updates for pip dependencies - # If a security vulnerability comes in, we will be notified about - # it via template in the synthtool repository. - ignore: - - dependency-name: "*" diff --git a/java-bigquery/.github/flakybot.yaml b/java-bigquery/.github/flakybot.yaml deleted file mode 100644 index cb83375f9893..000000000000 --- a/java-bigquery/.github/flakybot.yaml +++ /dev/null @@ -1 +0,0 @@ -issuePriority: p2 diff --git a/java-bigquery/.github/release-please.yml b/java-bigquery/.github/release-please.yml deleted file mode 100644 index 412c1b796eb6..000000000000 --- a/java-bigquery/.github/release-please.yml +++ /dev/null @@ -1,24 +0,0 @@ -branches: - - branch: 1.127.12-sp - releaseType: java-lts - - branch: java7 - - branch: 2.3.x - releaseType: java-backport - - branch: 2.10.x - releaseType: java-backport - - branch: 2.19.x - releaseType: java-backport - - branch: 2.35.x - releaseType: java-backport - - branch: 2.40.x - releaseType: java-backport - - branch: 2.48.x - releaseType: java-backport - - branch: 2.52.x - releaseType: java-backport - - branch: 2.51.x - releaseType: java-backport - - branch: protobuf-4.x-rc - manifest: true -handleGHRelease: true -releaseType: java-yoshi diff --git a/java-bigquery/.github/release-trigger.yml b/java-bigquery/.github/release-trigger.yml deleted file mode 100644 index 57d2b0f83090..000000000000 --- a/java-bigquery/.github/release-trigger.yml +++ /dev/null @@ -1,2 +0,0 @@ -enabled: true -multiScmName: java-bigquery diff --git a/java-bigquery/.github/snippet-bot.yml b/java-bigquery/.github/snippet-bot.yml deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/java-bigquery/.github/sync-repo-settings.yaml b/java-bigquery/.github/sync-repo-settings.yaml deleted file mode 100644 index 8a7fa3e3026d..000000000000 --- a/java-bigquery/.github/sync-repo-settings.yaml +++ /dev/null @@ -1,173 +0,0 @@ -rebaseMergeAllowed: true -squashMergeAllowed: true -mergeCommitAllowed: false -branchProtectionRules: - - pattern: main - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - dependencies (17) - - lint - - clirr - - units (8) - - units (11) - - 'Kokoro - Test: Integration' - - cla/google - - javadoc - - unmanaged_dependency_check - - pattern: 1.127.12-sp - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - dependencies (8) - - dependencies (11) - - lint - - clirr - - units (7) - - units (8) - - units (11) - - 'Kokoro - Test: Integration' - - cla/google - - pattern: java7 - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - dependencies (8) - - dependencies (11) - - lint - - clirr - - units (7) - - units (8) - - units (11) - - 'Kokoro - Test: Integration' - - cla/google - - pattern: 2.3.x - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - dependencies (8) - - dependencies (11) - - lint - - clirr - - units (8) - - units (11) - - 'Kokoro - Test: Integration' - - cla/google - - pattern: 2.10.x - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - dependencies (8) - - dependencies (11) - - lint - - clirr - - units (8) - - units (11) - - 'Kokoro - Test: Integration' - - cla/google - - pattern: 2.19.x - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - dependencies (8) - - dependencies (11) - - lint - - clirr - - units (8) - - units (11) - - 'Kokoro - Test: Integration' - - cla/google - - pattern: 2.35.x - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - dependencies (17) - - lint - - clirr - - units (8) - - units (11) - - 'Kokoro - Test: Integration' - - cla/google - - javadoc - - pattern: 2.40.x - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - dependencies (17) - - lint - - clirr - - units (8) - - units (11) - - 'Kokoro - Test: Integration' - - cla/google - - javadoc - - pattern: 2.48.x - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - dependencies (17) - - lint - - clirr - - units (8) - - units (11) - - 'Kokoro - Test: Integration' - - cla/google - - javadoc - - unmanaged_dependency_check - - pattern: 2.52.x - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - dependencies (17) - - lint - - clirr - - units (8) - - units (11) - - 'Kokoro - Test: Integration' - - cla/google - - javadoc - - unmanaged_dependency_check - - pattern: 2.51.x - isAdminEnforced: true - requiredApprovingReviewCount: 1 - requiresCodeOwnerReviews: true - requiresStrictStatusChecks: false - requiredStatusCheckContexts: - - dependencies (17) - - lint - - clirr - - units (8) - - units (11) - - 'Kokoro - Test: Integration' - - cla/google - - javadoc - - unmanaged_dependency_check -permissionRules: - - team: api-bigquery - permission: admin - - team: yoshi-java - permission: push - - team: yoshi-admins - permission: admin - - team: yoshi-java-admins - permission: admin diff --git a/java-bigquery/.github/trusted-contribution.yml b/java-bigquery/.github/trusted-contribution.yml deleted file mode 100644 index 88d3ac9bf1a7..000000000000 --- a/java-bigquery/.github/trusted-contribution.yml +++ /dev/null @@ -1,9 +0,0 @@ -trustedContributors: -- renovate-bot -- gcf-owl-bot[bot] - -annotations: -- type: comment - text: "/gcbrun" -- type: label - text: "kokoro:force-run" diff --git a/java-bigquery/.github/workflows/approve-readme.yaml b/java-bigquery/.github/workflows/approve-readme.yaml deleted file mode 100644 index 59f00b8eb6e6..000000000000 --- a/java-bigquery/.github/workflows/approve-readme.yaml +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Github action job to test core java library features on -# downstream client libraries before they are released. -on: - pull_request: -name: auto-merge-readme -jobs: - approve: - runs-on: ubuntu-latest - if: github.repository_owner == 'googleapis' && github.head_ref == 'autosynth-readme' - steps: - - uses: actions/github-script@v7 - with: - github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} - script: | - // only approve PRs from yoshi-automation - if (context.payload.pull_request.user.login !== "yoshi-automation") { - return; - } - - // only approve PRs like "chore: release " - if (!context.payload.pull_request.title === "chore: regenerate README") { - return; - } - - // only approve PRs with README.md and synth.metadata changes - const files = new Set( - ( - await github.paginate( - github.pulls.listFiles.endpoint({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: context.payload.pull_request.number, - }) - ) - ).map(file => file.filename) - ); - if (files.size != 2 || !files.has("README.md") || !files.has(".github/readme/synth.metadata/synth.metadata")) { - return; - } - - // approve README regeneration PR - await github.pulls.createReview({ - owner: context.repo.owner, - repo: context.repo.repo, - body: 'Rubber stamped PR!', - pull_number: context.payload.pull_request.number, - event: 'APPROVE' - }); - - // attach automerge label - await github.issues.addLabels({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.payload.pull_request.number, - labels: ['automerge'] - }); diff --git a/java-bigquery/.github/workflows/auto-release.yaml b/java-bigquery/.github/workflows/auto-release.yaml deleted file mode 100644 index b27e937b4534..000000000000 --- a/java-bigquery/.github/workflows/auto-release.yaml +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Github action job to test core java library features on -# downstream client libraries before they are released. -on: - pull_request: -name: auto-release -permissions: - contents: read -jobs: - permissions: write-all - approve: - runs-on: ubuntu-latest - if: contains(github.head_ref, 'release-please') - steps: - - uses: actions/github-script@v7 - with: - github-token: ${{secrets.YOSHI_APPROVER_TOKEN}} - debug: true - script: | - // only approve PRs from release-please[bot] - if (context.payload.pull_request.user.login !== "release-please[bot]") { - return; - } - - // only approve PRs like "chore(main): release " - if ( !context.payload.pull_request.title.startsWith("chore(main): release") ) { - return; - } - - // only approve PRs with pom.xml and versions.txt changes - const filesPromise = github.rest.pulls.listFiles.endpoint({ - owner: context.repo.owner, - repo: context.repo.repo, - pull_number: context.payload.pull_request.number, - }); - const changed_files = await github.paginate(filesPromise) - - if ( changed_files.length < 1 ) { - console.log( "Not proceeding since PR is empty!" ) - return; - } - - if ( !changed_files.some(v => v.filename.includes("pom")) || !changed_files.some(v => v.filename.includes("versions.txt")) ) { - console.log( "PR file changes do not have pom.xml or versions.txt -- something is wrong. PTAL!" ) - return; - } - - // trigger auto-release when - // 1) it is a SNAPSHOT release (auto-generated post regular release) - // 2) there are dependency updates only - // 3) there are no open dependency update PRs in this repo (to avoid multiple releases) - if ( - context.payload.pull_request.body.includes("Fix") || - context.payload.pull_request.body.includes("Build") || - context.payload.pull_request.body.includes("Documentation") || - context.payload.pull_request.body.includes("BREAKING CHANGES") || - context.payload.pull_request.body.includes("Features") - ) { - console.log( "Not auto-releasing since it is not a dependency-update-only release." ); - return; - } - - const promise = github.rest.pulls.list.endpoint({ - owner: context.repo.owner, - repo: context.repo.repo, - state: 'open' - }); - const open_pulls = await github.paginate(promise) - - if ( open_pulls.length > 1 && !context.payload.pull_request.title.includes("SNAPSHOT") ) { - for ( const pull of open_pulls ) { - if ( pull.title.startsWith("deps: update dependency") ) { - console.log( "Not auto-releasing yet since there are dependency update PRs open in this repo." ); - return; - } - } - } - - // approve release PR - await github.rest.pulls.createReview({ - owner: context.repo.owner, - repo: context.repo.repo, - body: 'Rubber stamped release!', - pull_number: context.payload.pull_request.number, - event: 'APPROVE' - }); - - // attach kokoro:force-run and automerge labels - await github.rest.issues.addLabels({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: context.payload.pull_request.number, - labels: ['kokoro:force-run', 'automerge'] - }); diff --git a/java-bigquery/.github/workflows/ci.yaml b/java-bigquery/.github/workflows/ci.yaml deleted file mode 100644 index b9b8be0c36db..000000000000 --- a/java-bigquery/.github/workflows/ci.yaml +++ /dev/null @@ -1,123 +0,0 @@ -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Github action job to test core java library features on -# downstream client libraries before they are released. -on: - push: - branches: - - main - pull_request: -name: ci -jobs: - units: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - java: [11, 17, 21, 25] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: ${{matrix.java}} - - run: java -version - - run: .kokoro/build.sh - env: - JOB_TYPE: test - units-java8: - # Building using Java 17 and run the tests with Java 8 runtime - name: "units (8)" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - java-version: 8 - distribution: temurin - - name: "Set jvm system property environment variable for surefire plugin (unit tests)" - # Maven surefire plugin (unit tests) allows us to specify JVM to run the tests. - # https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#jvm - run: echo "SUREFIRE_JVM_OPT=-Djvm=${JAVA_HOME}/bin/java" >> $GITHUB_ENV - shell: bash - - uses: actions/setup-java@v4 - with: - java-version: 17 - distribution: temurin - - run: .kokoro/build.sh - env: - JOB_TYPE: test - windows: - runs-on: windows-latest - steps: - - name: Support longpaths - run: git config --system core.longpaths true - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 8 - - run: java -version - - run: .kokoro/build.bat - env: - JOB_TYPE: test - dependencies: - runs-on: ubuntu-latest - strategy: - matrix: - java: [17] - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: ${{matrix.java}} - - run: java -version - - run: .kokoro/dependencies.sh - javadoc: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - run: java -version - - run: .kokoro/build.sh - env: - JOB_TYPE: javadoc - lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 17 - - run: java -version - - run: .kokoro/build.sh - env: - JOB_TYPE: lint - clirr: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 8 - - run: java -version - - run: .kokoro/build.sh - env: - JOB_TYPE: clirr diff --git a/java-bigquery/.github/workflows/renovate_config_check.yaml b/java-bigquery/.github/workflows/renovate_config_check.yaml deleted file mode 100644 index 47b9e87c98bb..000000000000 --- a/java-bigquery/.github/workflows/renovate_config_check.yaml +++ /dev/null @@ -1,25 +0,0 @@ -name: Renovate Bot Config Validation - -on: - pull_request: - paths: - - 'renovate.json' - -jobs: - renovate_bot_config_validation: - runs-on: ubuntu-24.04 - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: '22' - - - name: Install Renovate and Config Validator - run: | - npm install -g npm@latest - npm install --global renovate - renovate-config-validator diff --git a/java-bigquery/.github/workflows/samples.yaml b/java-bigquery/.github/workflows/samples.yaml deleted file mode 100644 index f833b802256b..000000000000 --- a/java-bigquery/.github/workflows/samples.yaml +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright 2022 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# Github action job to test core java library features on -# downstream client libraries before they are released. -on: - pull_request: -name: samples -jobs: - checkstyle: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - distribution: temurin - java-version: 11 - - name: Run checkstyle - run: mvn -P lint --quiet --batch-mode checkstyle:check - working-directory: samples/snippets diff --git a/java-bigquery/.github/workflows/scorecard.yml b/java-bigquery/.github/workflows/scorecard.yml deleted file mode 100644 index 69df4a2532d1..000000000000 --- a/java-bigquery/.github/workflows/scorecard.yml +++ /dev/null @@ -1,72 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. They are provided -# by a third-party and are governed by separate terms of service, privacy -# policy, and support documentation. - -name: Scorecard supply-chain security -on: - # For Branch-Protection check. Only the default branch is supported. See - # https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection - branch_protection_rule: - # To guarantee Maintained check is occasionally updated. See - # https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained - schedule: - - cron: '0 0 * * *' - push: - branches: [ "main" ] - -# Declare default permissions as read only. -permissions: read-all - -jobs: - analysis: - name: Scorecard analysis - runs-on: ubuntu-latest - permissions: - # Needed to upload the results to code-scanning dashboard. - security-events: write - # Needed to publish results and get a badge (see publish_results below). - id-token: write - # Uncomment the permissions below if installing in a private repository. - # contents: read - # actions: read - - steps: - - name: "Checkout code" - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - with: - persist-credentials: false - - - name: "Run analysis" - uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2 - with: - results_file: results.sarif - results_format: sarif - # (Optional) "write" PAT token. Uncomment the `repo_token` line below if: - # - you want to enable the Branch-Protection check on a *public* repository, or - # - you are installing Scorecard on a *private* repository - # To create the PAT, follow the steps in https://github.com/ossf/scorecard-action#authentication-with-pat. - # repo_token: ${{ secrets.SCORECARD_TOKEN }} - - # Public repositories: - # - Publish results to OpenSSF REST API for easy access by consumers - # - Allows the repository to include the Scorecard badge. - # - See https://github.com/ossf/scorecard-action#publishing-results. - # For private repositories: - # - `publish_results` will always be set to `false`, regardless - # of the value entered here. - publish_results: true - - # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF - # format to the repository Actions tab. - - name: "Upload artifact" - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 - with: - name: SARIF file - path: results.sarif - retention-days: 5 - - # Upload the results to GitHub's code scanning dashboard. - - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@b8d3b6e8af63cde30bdc382c0bc28114f4346c88 # v2.28.1 - with: - sarif_file: results.sarif diff --git a/java-bigquery/.github/workflows/unmanaged_dependency_check.yaml b/java-bigquery/.github/workflows/unmanaged_dependency_check.yaml deleted file mode 100644 index 6ddac9eabe1a..000000000000 --- a/java-bigquery/.github/workflows/unmanaged_dependency_check.yaml +++ /dev/null @@ -1,25 +0,0 @@ -on: - pull_request: -name: Unmanaged dependency check -jobs: - unmanaged_dependency_check: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v3 - with: - distribution: temurin - java-version: 11 - - name: Install modules - shell: bash - run: | - # No argument to build.sh installs the modules in local Maven - # repository - .kokoro/build.sh - - name: Unmanaged dependency check - uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v3.56.0 - with: - # java-bigquery does not produce a BOM. Fortunately the root pom.xml - # defines google-cloud-bigquery in dependencyManagement section. So - # we can treat this as the BOM to run with the check. - bom-path: ./google-cloud-bigquery-bom/pom.xml diff --git a/java-bigquery/.gitignore b/java-bigquery/.gitignore deleted file mode 100644 index d5bcd47b2878..000000000000 --- a/java-bigquery/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -.idea -*.iml -target/ -__pycache__ -.project -.settings -.classpath -.DS_Store -.diff.txt -.new-list.txt -.org-list.txt -SimpleBenchmarkApp/src/main/java/com/google/cloud/App.java -.flattened-pom.xml -# Local Test files -*ITLocalTest.java - -# JDBC-specific files -google-cloud-bigquery-jdbc/drivers/ -google-cloud-bigquery-jdbc/jacoco* \ No newline at end of file diff --git a/java-bigquery/.kokoro/build.bat b/java-bigquery/.kokoro/build.bat deleted file mode 100644 index 067cf4a4c489..000000000000 --- a/java-bigquery/.kokoro/build.bat +++ /dev/null @@ -1,18 +0,0 @@ -:: Copyright 2022 Google LLC -:: -:: Licensed under the Apache License, Version 2.0 (the "License"); -:: you may not use this file except in compliance with the License. -:: You may obtain a copy of the License at -:: -:: http://www.apache.org/licenses/LICENSE-2.0 -:: -:: Unless required by applicable law or agreed to in writing, software -:: distributed under the License is distributed on an "AS IS" BASIS, -:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -:: See the License for the specific language governing permissions and -:: limitations under the License. -:: Github action job to test core java library features on -:: downstream client libraries before they are released. -:: See documentation in type-shell-output.bat - -"C:\Program Files\Git\bin\bash.exe" %~dp0build.sh diff --git a/java-bigquery/.kokoro/build.sh b/java-bigquery/.kokoro/build.sh deleted file mode 100755 index 9c1dfeeb3d36..000000000000 --- a/java-bigquery/.kokoro/build.sh +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -## Get the directory of the build script -scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) -## cd to the parent directory, i.e. the root of the git repo -cd ${scriptDir}/.. - -# include common functions -source ${scriptDir}/common.sh - -# Print out Maven & Java version -mvn -version -echo ${JOB_TYPE} - -# attempt to install 3 times with exponential backoff (starting with 10 seconds) -retry_with_backoff 3 10 \ - mvn install -B -V -ntp \ - -DskipTests=true \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -Dmaven.javadoc.skip=true \ - -Dgcloud.download.skip=true \ - -T 1C - -# if GOOGLE_APPLICATION_CREDENTIALS is specified as a relative path, prepend Kokoro root directory onto it -if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTIALS}" != /* ]]; then - export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_GFILE_DIR}/${GOOGLE_APPLICATION_CREDENTIALS}) -fi - -RETURN_CODE=0 -set +e - -case ${JOB_TYPE} in -test) - echo "SUREFIRE_JVM_OPT: ${SUREFIRE_JVM_OPT}" - mvn test -B -ntp -Dclirr.skip=true -Denforcer.skip=true ${SUREFIRE_JVM_OPT} - RETURN_CODE=$? - ;; -lint) - mvn com.spotify.fmt:fmt-maven-plugin:check -B -ntp - RETURN_CODE=$? - ;; -javadoc) - mvn javadoc:javadoc javadoc:test-javadoc -B -ntp - RETURN_CODE=$? - ;; -integration) - mvn -B ${INTEGRATION_TEST_ARGS} \ - -pl "!google-cloud-bigquery-jdbc" \ - -ntp \ - -Penable-integration-tests \ - -DtrimStackTrace=false \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -fae \ - verify - RETURN_CODE=$? - ;; -jdbc-integration) - mvn -B ${INTEGRATION_TEST_ARGS} \ - -pl "google-cloud-bigquery-jdbc" \ - -ntp \ - -Dtest=ITBigQueryJDBCTest \ - -DtrimStackTrace=false \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -fae \ - verify - RETURN_CODE=$? - ;; -jdbc-nightly-integration) - mvn -B ${INTEGRATION_TEST_ARGS} \ - -pl "google-cloud-bigquery-jdbc" \ - -ntp \ - -Dtest=ITNightlyBigQueryTest \ - -DtrimStackTrace=false \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -fae \ - -DargLine="-Xmx32g" \ - -e \ - verify - RETURN_CODE=$? - ;; -graalvm) - # Run Unit and Integration Tests with Native Image - mvn -B ${INTEGRATION_TEST_ARGS} \ - -pl "!google-cloud-bigquery-jdbc" \ - -ntp \ - -Pnative \ - test - RETURN_CODE=$? - ;; -samples) - SAMPLES_DIR=samples - # only run ITs in snapshot/ on presubmit PRs. run ITs in all 3 samples/ subdirectories otherwise. - if [[ ! -z ${KOKORO_GITHUB_PULL_REQUEST_NUMBER} ]] - then - SAMPLES_DIR=samples/snapshot - fi - - if [[ -f ${SAMPLES_DIR}/pom.xml ]] - then - for FILE in ${KOKORO_GFILE_DIR}/secret_manager/*-samples-secrets; do - [[ -f "$FILE" ]] || continue - source "$FILE" - done - - pushd ${SAMPLES_DIR} - mvn -B \ - -ntp \ - -DtrimStackTrace=false \ - -Dclirr.skip=true \ - -Denforcer.skip=true \ - -fae \ - verify - RETURN_CODE=$? - popd - else - echo "no sample pom.xml found - skipping sample tests" - fi - ;; -clirr) - mvn -B -ntp -Denforcer.skip=true clirr:check - RETURN_CODE=$? - ;; -*) - ;; -esac - -if [ "${REPORT_COVERAGE}" == "true" ] -then - bash ${KOKORO_GFILE_DIR}/codecov.sh -fi - -# fix output location of logs -bash .kokoro/coerce_logs.sh - -if [[ "${ENABLE_FLAKYBOT}" == "true" ]] -then - chmod +x ${KOKORO_GFILE_DIR}/linux_amd64/flakybot - ${KOKORO_GFILE_DIR}/linux_amd64/flakybot -repo=googleapis/java-bigquery -fi - -echo "exiting with ${RETURN_CODE}" -exit ${RETURN_CODE} diff --git a/java-bigquery/.kokoro/coerce_logs.sh b/java-bigquery/.kokoro/coerce_logs.sh deleted file mode 100755 index 46edbf7f2fcd..000000000000 --- a/java-bigquery/.kokoro/coerce_logs.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This script finds and moves sponge logs so that they can be found by placer -# and are not flagged as flaky by sponge. - -set -eo pipefail - -## Get the directory of the build script -scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) -## cd to the parent directory, i.e. the root of the git repo -cd ${scriptDir}/.. - -job=$(basename ${KOKORO_JOB_NAME}) - -echo "coercing sponge logs..." -for xml in `find . -name *-sponge_log.xml` -do - class=$(basename ${xml} | cut -d- -f2) - dir=$(dirname ${xml})/${job}/${class} - text=$(dirname ${xml})/${class}-sponge_log.txt - mkdir -p ${dir} - mv ${xml} ${dir}/sponge_log.xml - mv ${text} ${dir}/sponge_log.txt -done diff --git a/java-bigquery/.kokoro/common.cfg b/java-bigquery/.kokoro/common.cfg deleted file mode 100644 index 24a5c6b191b4..000000000000 --- a/java-bigquery/.kokoro/common.cfg +++ /dev/null @@ -1,13 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Download trampoline resources. These will be in ${KOKORO_GFILE_DIR} -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# All builds use the trampoline script to run in docker. -build_file: "java-bigquery/.kokoro/trampoline.sh" - -# Tell the trampoline which build file to use. -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/build.sh" -} diff --git a/java-bigquery/.kokoro/common.sh b/java-bigquery/.kokoro/common.sh deleted file mode 100644 index f8f957af1112..000000000000 --- a/java-bigquery/.kokoro/common.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash -# Copyright 2020 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -function retry_with_backoff { - attempts_left=$1 - sleep_seconds=$2 - shift 2 - command=$@ - - - # store current flag state - flags=$- - - # allow a failures to continue - set +e - ${command} - exit_code=$? - - # restore "e" flag - if [[ ${flags} =~ e ]] - then set -e - else set +e - fi - - if [[ $exit_code == 0 ]] - then - return 0 - fi - - # failure - if [[ ${attempts_left} > 0 ]] - then - echo "failure (${exit_code}), sleeping ${sleep_seconds}..." - sleep ${sleep_seconds} - new_attempts=$((${attempts_left} - 1)) - new_sleep=$((${sleep_seconds} * 2)) - retry_with_backoff ${new_attempts} ${new_sleep} ${command} - fi - - return $exit_code -} - -## Helper functionss -function now() { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n'; } -function msg() { println "$*" >&2; } -function println() { printf '%s\n' "$(now) $*"; } - -## Helper comment to trigger updated repo dependency release \ No newline at end of file diff --git a/java-bigquery/.kokoro/continuous/common.cfg b/java-bigquery/.kokoro/continuous/common.cfg deleted file mode 100644 index 92edc0678041..000000000000 --- a/java-bigquery/.kokoro/continuous/common.cfg +++ /dev/null @@ -1,25 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - regex: "**/*sponge_log.txt" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-bigquery/.kokoro/trampoline.sh" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/build.sh" -} - -env_vars: { - key: "JOB_TYPE" - value: "test" -} diff --git a/java-bigquery/.kokoro/continuous/graalvm-native-a.cfg b/java-bigquery/.kokoro/continuous/graalvm-native-a.cfg deleted file mode 100644 index e7c342ded550..000000000000 --- a/java-bigquery/.kokoro/continuous/graalvm-native-a.cfg +++ /dev/null @@ -1,38 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.56.0" -} - -env_vars: { - key: "JOB_TYPE" - value: "graalvm" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "false" -} \ No newline at end of file diff --git a/java-bigquery/.kokoro/continuous/graalvm-native-b.cfg b/java-bigquery/.kokoro/continuous/graalvm-native-b.cfg deleted file mode 100644 index 6f5a9fce30ed..000000000000 --- a/java-bigquery/.kokoro/continuous/graalvm-native-b.cfg +++ /dev/null @@ -1,38 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.56.0" -} - -env_vars: { - key: "JOB_TYPE" - value: "graalvm" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "false" -} \ No newline at end of file diff --git a/java-bigquery/.kokoro/continuous/graalvm-native-c.cfg b/java-bigquery/.kokoro/continuous/graalvm-native-c.cfg deleted file mode 100644 index a76d6686a3af..000000000000 --- a/java-bigquery/.kokoro/continuous/graalvm-native-c.cfg +++ /dev/null @@ -1,38 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.56.0" -} - -env_vars: { - key: "JOB_TYPE" - value: "graalvm" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "false" -} \ No newline at end of file diff --git a/java-bigquery/.kokoro/continuous/java8.cfg b/java-bigquery/.kokoro/continuous/java8.cfg deleted file mode 100644 index 495cc7bacd63..000000000000 --- a/java-bigquery/.kokoro/continuous/java8.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "REPORT_COVERAGE" - value: "true" -} diff --git a/java-bigquery/.kokoro/continuous/propose_release.sh b/java-bigquery/.kokoro/continuous/propose_release.sh deleted file mode 100755 index 9732e43b0d4f..000000000000 --- a/java-bigquery/.kokoro/continuous/propose_release.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -export NPM_CONFIG_PREFIX=/home/node/.npm-global - -if [ -f ${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please ]; then - # Groom the release PR as new commits are merged. - npx release-please release-pr --token=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-token-release-please \ - --repo-url=googleapis/java-bigquery \ - --package-name="bigquery" \ - --api-url=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-url-release-please \ - --proxy-key=${KOKORO_KEYSTORE_DIR}/73713_github-magic-proxy-key-release-please \ - --release-type=java-yoshi -fi diff --git a/java-bigquery/.kokoro/dependencies.sh b/java-bigquery/.kokoro/dependencies.sh deleted file mode 100755 index bd8960246f66..000000000000 --- a/java-bigquery/.kokoro/dependencies.sh +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash -# Copyright 2019 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail -shopt -s nullglob - -## Get the directory of the build script -scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) -## cd to the parent directory, i.e. the root of the git repo -cd ${scriptDir}/.. - -# include common functions -source ${scriptDir}/common.sh - -# Print out Java -java -version -echo $JOB_TYPE - -function determineMavenOpts() { - local javaVersion=$( - # filter down to the version line, then pull out the version between quotes, - # then trim the version number down to its minimal number (removing any - # update or suffix number). - java -version 2>&1 | grep "version" \ - | sed -E 's/^.*"(.*?)".*$/\1/g' \ - | sed -E 's/^(1\.[0-9]\.0).*$/\1/g' - ) - - if [[ $javaVersion == 17* ]] - then - # MaxPermSize is no longer supported as of jdk 17 - echo -n "-Xmx1024m" - else - echo -n "-Xmx1024m -XX:MaxPermSize=128m" - fi -} - -export MAVEN_OPTS=$(determineMavenOpts) - -# this should run maven enforcer -retry_with_backoff 3 10 \ - mvn install -B -V -ntp \ - -DskipTests=true \ - -Dmaven.javadoc.skip=true \ - -Dclirr.skip=true - -mvn -B dependency:analyze -DfailOnWarning=true diff --git a/java-bigquery/.kokoro/jdbc-release.sh b/java-bigquery/.kokoro/jdbc-release.sh deleted file mode 100755 index 01cb7b47b9e1..000000000000 --- a/java-bigquery/.kokoro/jdbc-release.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# Copyright 2026 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -euo pipefail - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" -cd "${DIR}/../google-cloud-bigquery-jdbc" - -FOLDER="$(pwd)/release" -DATE=$(date '+%Y-%m-%d') -COMMIT=$(git rev-parse --short HEAD) -PACKAGE="google-cloud-bigquery-jdbc" -VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) -BUCKET=${NIGHTLY_RELEASE_GCS_BUCKET} -NIGHTLY_BUILD_DESTINATION="${BUCKET}/nightly/${VERSION}/${DATE}" - -# All dependencies release -mkdir -p "${FOLDER}" -make docker-package PACKAGE_DESTINATION="${FOLDER}" -NAME=${PACKAGE}-${VERSION}-${COMMIT} - -gsutil cp -r "${FOLDER}/${PACKAGE}-${VERSION}.zip" "${NIGHTLY_BUILD_DESTINATION}/${NAME}.zip" -gsutil cp -r "${FOLDER}/${PACKAGE}-${VERSION}-all.jar" "${NIGHTLY_BUILD_DESTINATION}/${NAME}-all.jar" - -rm -rf "${FOLDER}" - -# # Update latest version -gsutil cp "${NIGHTLY_BUILD_DESTINATION}/${NAME}.zip" "${BUCKET}/${PACKAGE}-latest.zip" -gsutil cp "${NIGHTLY_BUILD_DESTINATION}/${NAME}-all.jar" "${BUCKET}/${PACKAGE}-latest-all.jar" diff --git a/java-bigquery/.kokoro/nightly/common.cfg b/java-bigquery/.kokoro/nightly/common.cfg deleted file mode 100644 index 92edc0678041..000000000000 --- a/java-bigquery/.kokoro/nightly/common.cfg +++ /dev/null @@ -1,25 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - regex: "**/*sponge_log.txt" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-bigquery/.kokoro/trampoline.sh" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/build.sh" -} - -env_vars: { - key: "JOB_TYPE" - value: "test" -} diff --git a/java-bigquery/.kokoro/nightly/integration.cfg b/java-bigquery/.kokoro/nightly/integration.cfg deleted file mode 100644 index 24b9cf634538..000000000000 --- a/java-bigquery/.kokoro/nightly/integration.cfg +++ /dev/null @@ -1,38 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "integration" -} -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "true" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} - diff --git a/java-bigquery/.kokoro/nightly/java11-integration.cfg b/java-bigquery/.kokoro/nightly/java11-integration.cfg deleted file mode 100644 index 6a6ef94eff28..000000000000 --- a/java-bigquery/.kokoro/nightly/java11-integration.cfg +++ /dev/null @@ -1,38 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/java11014" -} - -env_vars: { - key: "JOB_TYPE" - value: "integration" -} -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "true" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} - diff --git a/java-bigquery/.kokoro/nightly/java11.cfg b/java-bigquery/.kokoro/nightly/java11.cfg deleted file mode 100644 index 709f2b4c73db..000000000000 --- a/java-bigquery/.kokoro/nightly/java11.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java11" -} diff --git a/java-bigquery/.kokoro/nightly/java7.cfg b/java-bigquery/.kokoro/nightly/java7.cfg deleted file mode 100644 index cb24f44eea3b..000000000000 --- a/java-bigquery/.kokoro/nightly/java7.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java7" -} diff --git a/java-bigquery/.kokoro/nightly/java8-osx.cfg b/java-bigquery/.kokoro/nightly/java8-osx.cfg deleted file mode 100644 index d0594f62733b..000000000000 --- a/java-bigquery/.kokoro/nightly/java8-osx.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -build_file: "java-bigquery/.kokoro/build.sh" diff --git a/java-bigquery/.kokoro/nightly/java8-win.cfg b/java-bigquery/.kokoro/nightly/java8-win.cfg deleted file mode 100644 index 7a273e2faefc..000000000000 --- a/java-bigquery/.kokoro/nightly/java8-win.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -build_file: "java-bigquery/.kokoro/build.bat" diff --git a/java-bigquery/.kokoro/nightly/java8.cfg b/java-bigquery/.kokoro/nightly/java8.cfg deleted file mode 100644 index 495cc7bacd63..000000000000 --- a/java-bigquery/.kokoro/nightly/java8.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "REPORT_COVERAGE" - value: "true" -} diff --git a/java-bigquery/.kokoro/nightly/nightly-integration.cfg b/java-bigquery/.kokoro/nightly/nightly-integration.cfg deleted file mode 100644 index 675f79918286..000000000000 --- a/java-bigquery/.kokoro/nightly/nightly-integration.cfg +++ /dev/null @@ -1,37 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "nightly-it" -} -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "true" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} diff --git a/java-bigquery/.kokoro/nightly/samples.cfg b/java-bigquery/.kokoro/nightly/samples.cfg deleted file mode 100644 index af090aff6834..000000000000 --- a/java-bigquery/.kokoro/nightly/samples.cfg +++ /dev/null @@ -1,47 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Download secrets from Cloud Storage. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/java-docs-samples" - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "samples" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-docs-samples-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account, java-bigquery-samples-secrets" -} - -env_vars: { - key: "ENABLE_BUILD_COP" - value: "true" -} - -# Tell the trampoline which tests to run. -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/run_samples_resource_cleanup.sh" -} \ No newline at end of file diff --git a/java-bigquery/.kokoro/populate-secrets.sh b/java-bigquery/.kokoro/populate-secrets.sh deleted file mode 100755 index f52514257ef0..000000000000 --- a/java-bigquery/.kokoro/populate-secrets.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash -# Copyright 2020 Google LLC. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -function now { date +"%Y-%m-%d %H:%M:%S" | tr -d '\n' ;} -function msg { println "$*" >&2 ;} -function println { printf '%s\n' "$(now) $*" ;} - - -# Populates requested secrets set in SECRET_MANAGER_KEYS from service account: -# kokoro-trampoline@cloud-devrel-kokoro-resources.iam.gserviceaccount.com -SECRET_LOCATION="${KOKORO_GFILE_DIR}/secret_manager" -msg "Creating folder on disk for secrets: ${SECRET_LOCATION}" -mkdir -p ${SECRET_LOCATION} -for key in $(echo ${SECRET_MANAGER_KEYS} | sed "s/,/ /g") -do - msg "Retrieving secret ${key}" - docker run --entrypoint=gcloud \ - --volume=${KOKORO_GFILE_DIR}:${KOKORO_GFILE_DIR} \ - gcr.io/google.com/cloudsdktool/cloud-sdk \ - secrets versions access latest \ - --project cloud-devrel-kokoro-resources \ - --secret ${key} > \ - "${SECRET_LOCATION}/${key}" - if [[ $? == 0 ]]; then - msg "Secret written to ${SECRET_LOCATION}/${key}" - else - msg "Error retrieving secret ${key}" - fi -done diff --git a/java-bigquery/.kokoro/presubmit/clirr.cfg b/java-bigquery/.kokoro/presubmit/clirr.cfg deleted file mode 100644 index ec572442e2e7..000000000000 --- a/java-bigquery/.kokoro/presubmit/clirr.cfg +++ /dev/null @@ -1,13 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. - -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "clirr" -} \ No newline at end of file diff --git a/java-bigquery/.kokoro/presubmit/common.cfg b/java-bigquery/.kokoro/presubmit/common.cfg deleted file mode 100644 index ac89b8afc4c3..000000000000 --- a/java-bigquery/.kokoro/presubmit/common.cfg +++ /dev/null @@ -1,34 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Build logs will be here -action { - define_artifacts { - regex: "**/*sponge_log.xml" - regex: "**/*sponge_log.txt" - } -} - -# Download trampoline resources. -gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" - -# Use the trampoline script to run in docker. -build_file: "java-bigquery/.kokoro/trampoline.sh" - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/build.sh" -} - -env_vars: { - key: "JOB_TYPE" - value: "test" -} - -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "dpebot_codecov_token" - } - } -} diff --git a/java-bigquery/.kokoro/presubmit/dependencies.cfg b/java-bigquery/.kokoro/presubmit/dependencies.cfg deleted file mode 100644 index 75e48af255c8..000000000000 --- a/java-bigquery/.kokoro/presubmit/dependencies.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/dependencies.sh" -} diff --git a/java-bigquery/.kokoro/presubmit/graalvm-native-a.cfg b/java-bigquery/.kokoro/presubmit/graalvm-native-a.cfg deleted file mode 100644 index e7c342ded550..000000000000 --- a/java-bigquery/.kokoro/presubmit/graalvm-native-a.cfg +++ /dev/null @@ -1,38 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_a:3.56.0" -} - -env_vars: { - key: "JOB_TYPE" - value: "graalvm" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "false" -} \ No newline at end of file diff --git a/java-bigquery/.kokoro/presubmit/graalvm-native-b.cfg b/java-bigquery/.kokoro/presubmit/graalvm-native-b.cfg deleted file mode 100644 index 6f5a9fce30ed..000000000000 --- a/java-bigquery/.kokoro/presubmit/graalvm-native-b.cfg +++ /dev/null @@ -1,38 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_b:3.56.0" -} - -env_vars: { - key: "JOB_TYPE" - value: "graalvm" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "false" -} \ No newline at end of file diff --git a/java-bigquery/.kokoro/presubmit/graalvm-native-c.cfg b/java-bigquery/.kokoro/presubmit/graalvm-native-c.cfg deleted file mode 100644 index a76d6686a3af..000000000000 --- a/java-bigquery/.kokoro/presubmit/graalvm-native-c.cfg +++ /dev/null @@ -1,38 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-public-resources/graalvm_sdk_platform_c:3.56.0" -} - -env_vars: { - key: "JOB_TYPE" - value: "graalvm" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} - -env_vars: { - key: "ENABLE_FLAKYBOT" - value: "false" -} \ No newline at end of file diff --git a/java-bigquery/.kokoro/presubmit/integration.cfg b/java-bigquery/.kokoro/presubmit/integration.cfg deleted file mode 100644 index 5864c603e5ad..000000000000 --- a/java-bigquery/.kokoro/presubmit/integration.cfg +++ /dev/null @@ -1,34 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "integration" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "gcloud-devel" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-it-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-it-service-account" -} - diff --git a/java-bigquery/.kokoro/presubmit/java11.cfg b/java-bigquery/.kokoro/presubmit/java11.cfg deleted file mode 100644 index 709f2b4c73db..000000000000 --- a/java-bigquery/.kokoro/presubmit/java11.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java11" -} diff --git a/java-bigquery/.kokoro/presubmit/java7.cfg b/java-bigquery/.kokoro/presubmit/java7.cfg deleted file mode 100644 index cb24f44eea3b..000000000000 --- a/java-bigquery/.kokoro/presubmit/java7.cfg +++ /dev/null @@ -1,7 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java7" -} diff --git a/java-bigquery/.kokoro/presubmit/java8-osx.cfg b/java-bigquery/.kokoro/presubmit/java8-osx.cfg deleted file mode 100644 index d0594f62733b..000000000000 --- a/java-bigquery/.kokoro/presubmit/java8-osx.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -build_file: "java-bigquery/.kokoro/build.sh" diff --git a/java-bigquery/.kokoro/presubmit/java8-win.cfg b/java-bigquery/.kokoro/presubmit/java8-win.cfg deleted file mode 100644 index 7a273e2faefc..000000000000 --- a/java-bigquery/.kokoro/presubmit/java8-win.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -build_file: "java-bigquery/.kokoro/build.bat" diff --git a/java-bigquery/.kokoro/presubmit/java8.cfg b/java-bigquery/.kokoro/presubmit/java8.cfg deleted file mode 100644 index 495cc7bacd63..000000000000 --- a/java-bigquery/.kokoro/presubmit/java8.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "REPORT_COVERAGE" - value: "true" -} diff --git a/java-bigquery/.kokoro/presubmit/linkage-monitor.cfg b/java-bigquery/.kokoro/presubmit/linkage-monitor.cfg deleted file mode 100644 index 0876c4c8a2b5..000000000000 --- a/java-bigquery/.kokoro/presubmit/linkage-monitor.cfg +++ /dev/null @@ -1,12 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "TRAMPOLINE_BUILD_FILE" - value: "github/java-bigquery/.kokoro/linkage-monitor.sh" -} \ No newline at end of file diff --git a/java-bigquery/.kokoro/presubmit/lint.cfg b/java-bigquery/.kokoro/presubmit/lint.cfg deleted file mode 100644 index 6d323c8ae768..000000000000 --- a/java-bigquery/.kokoro/presubmit/lint.cfg +++ /dev/null @@ -1,13 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. - -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "lint" -} \ No newline at end of file diff --git a/java-bigquery/.kokoro/presubmit/samples.cfg b/java-bigquery/.kokoro/presubmit/samples.cfg deleted file mode 100644 index b14a33856e77..000000000000 --- a/java-bigquery/.kokoro/presubmit/samples.cfg +++ /dev/null @@ -1,33 +0,0 @@ -# Format: //devtools/kokoro/config/proto/build.proto - -# Configure the docker image for kokoro-trampoline. -env_vars: { - key: "TRAMPOLINE_IMAGE" - value: "gcr.io/cloud-devrel-kokoro-resources/java8" -} - -env_vars: { - key: "JOB_TYPE" - value: "samples" -} - -# TODO: remove this after we've migrated all tests and scripts -env_vars: { - key: "GCLOUD_PROJECT" - value: "java-docs-samples-testing" -} - -env_vars: { - key: "GOOGLE_CLOUD_PROJECT" - value: "java-docs-samples-testing" -} - -env_vars: { - key: "GOOGLE_APPLICATION_CREDENTIALS" - value: "secret_manager/java-docs-samples-service-account" -} - -env_vars: { - key: "SECRET_MANAGER_KEYS" - value: "java-docs-samples-service-account, java-bigquery-samples-secrets" -} \ No newline at end of file diff --git a/java-bigquery/.kokoro/readme.sh b/java-bigquery/.kokoro/readme.sh deleted file mode 100755 index dcce5b9bf51c..000000000000 --- a/java-bigquery/.kokoro/readme.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -# Copyright 2020 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -set -eo pipefail - -cd ${KOKORO_ARTIFACTS_DIR}/github/java-bigquery - -# Disable buffering, so that the logs stream through. -export PYTHONUNBUFFERED=1 - -# Kokoro exposes this as a file, but the scripts expect just a plain variable. -export GITHUB_TOKEN=$(cat ${KOKORO_KEYSTORE_DIR}/73713_yoshi-automation-github-key) - -# Setup git credentials -echo "https://${GITHUB_TOKEN}:@github.com" >> ~/.git-credentials -git config --global credential.helper 'store --file ~/.git-credentials' - -python3.6 -m pip install git+https://github.com/googleapis/synthtool.git#egg=gcp-synthtool - -set +e -python3.6 -m autosynth.synth \ - --repository=googleapis/java-bigquery \ - --synth-file-name=.github/readme/synth.py \ - --metadata-path=.github/readme/synth.metadata \ - --pr-title="chore: regenerate README" \ - --branch-suffix="readme" - -# autosynth returns 28 to signal there are no changes -RETURN_CODE=$? -if [[ ${RETURN_CODE} -ne 0 && ${RETURN_CODE} -ne 28 ]] -then - exit ${RETURN_CODE} -fi diff --git a/java-bigquery/.kokoro/requirements.in b/java-bigquery/.kokoro/requirements.in deleted file mode 100644 index 2092cc741d9c..000000000000 --- a/java-bigquery/.kokoro/requirements.in +++ /dev/null @@ -1,6 +0,0 @@ -gcp-docuploader -gcp-releasetool>=1.10.5 # required for compatibility with cryptography>=39.x -wheel -setuptools -typing-extensions -click<8.1.0 \ No newline at end of file diff --git a/java-bigquery/.kokoro/run_samples_resource_cleanup.sh b/java-bigquery/.kokoro/run_samples_resource_cleanup.sh deleted file mode 100755 index 4f89485f8ba9..000000000000 --- a/java-bigquery/.kokoro/run_samples_resource_cleanup.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# Copyright 2020 Google Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# `-e` enables the script to automatically fail when a command fails -# `-o pipefail` sets the exit code to the rightmost comment to exit with a non-zero`` -set -eo pipefail - -echo "********** MAVEN INFO ***********" -mvn -v - -# Get the directory of the build script -scriptDir=$(realpath $(dirname "${BASH_SOURCE[0]}")) -## cd to the parent directory, i.e. the root of the git repo -cd ${scriptDir}/.. - -# include common functions -source ${scriptDir}/common.sh - -# Setup required env variables -source ${KOKORO_GFILE_DIR}/secret_manager/java-bigquery-samples-secrets -# if GOOGLE_APPLICATION_CREDENTIALS is specified as a relative path, prepend Kokoro root directory onto it -if [[ ! -z "${GOOGLE_APPLICATION_CREDENTIALS}" && "${GOOGLE_APPLICATION_CREDENTIALS}" != /* ]]; then - export GOOGLE_APPLICATION_CREDENTIALS=$(realpath ${KOKORO_GFILE_DIR}/${GOOGLE_APPLICATION_CREDENTIALS}) -fi -echo "********** Successfully Set All Environment Variables **********" - -# Move into the samples directory -cd samples/snippets - -echo -e "\n******************** NIGHTLY RESOURCE CLEAN UP ********************" - -mvn compile exec:java -Dexec.mainClass=com.example.bigquery.ResourceCleanUp diff --git a/java-bigquery/.kokoro/trampoline.sh b/java-bigquery/.kokoro/trampoline.sh deleted file mode 100644 index 8b69b793c9ec..000000000000 --- a/java-bigquery/.kokoro/trampoline.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -# Copyright 2018 Google LLC -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -set -eo pipefail -# Always run the cleanup script, regardless of the success of bouncing into -# the container. -function cleanup() { - chmod +x ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh - ${KOKORO_GFILE_DIR}/trampoline_cleanup.sh - echo "cleanup"; -} -trap cleanup EXIT - -$(dirname $0)/populate-secrets.sh # Secret Manager secrets. -python3 "${KOKORO_GFILE_DIR}/trampoline_v1.py" diff --git a/java-bigquery/CODE_OF_CONDUCT.md b/java-bigquery/CODE_OF_CONDUCT.md deleted file mode 100644 index 2add2547a812..000000000000 --- a/java-bigquery/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,94 +0,0 @@ - -# Code of Conduct - -## Our Pledge - -In the interest of fostering an open and welcoming environment, we as -contributors and maintainers pledge to making participation in our project and -our community a harassment-free experience for everyone, regardless of age, body -size, disability, ethnicity, gender identity and expression, level of -experience, education, socio-economic status, nationality, personal appearance, -race, religion, or sexual identity and orientation. - -## Our Standards - -Examples of behavior that contributes to creating a positive environment -include: - -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members - -Examples of unacceptable behavior by participants include: - -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Our Responsibilities - -Project maintainers are responsible for clarifying the standards of acceptable -behavior and are expected to take appropriate and fair corrective action in -response to any instances of unacceptable behavior. - -Project maintainers have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, or to ban temporarily or permanently any -contributor for other behaviors that they deem inappropriate, threatening, -offensive, or harmful. - -## Scope - -This Code of Conduct applies both within project spaces and in public spaces -when an individual is representing the project or its community. Examples of -representing a project or community include using an official project e-mail -address, posting via an official social media account, or acting as an appointed -representative at an online or offline event. Representation of a project may be -further defined and clarified by project maintainers. - -This Code of Conduct also applies outside the project spaces when the Project -Steward has a reasonable belief that an individual's behavior may have a -negative impact on the project or its community. - -## Conflict Resolution - -We do not believe that all conflict is bad; healthy debate and disagreement -often yield positive results. However, it is never okay to be disrespectful or -to engage in behavior that violates the project’s code of conduct. - -If you see someone violating the code of conduct, you are encouraged to address -the behavior directly with those involved. Many issues can be resolved quickly -and easily, and this gives people more control over the outcome of their -dispute. If you are unable to resolve the matter for any reason, or if the -behavior is threatening or harassing, report it. We are dedicated to providing -an environment where participants feel welcome and safe. - -Reports should be directed to *googleapis-stewards@google.com*, the -Project Steward(s) for *Google Cloud Client Libraries*. It is the Project Steward’s duty to -receive and address reported violations of the code of conduct. They will then -work with a committee consisting of representatives from the Open Source -Programs Office and the Google Open Source Strategy team. If for any reason you -are uncomfortable reaching out to the Project Steward, please email -opensource@google.com. - -We will investigate every complaint, but you may not receive a direct response. -We will use our discretion in determining when and how to follow up on reported -incidents, which may range from not taking action to permanent expulsion from -the project and project-sponsored spaces. We will notify the accused of the -report and provide them an opportunity to discuss it before any action is taken. -The identity of the reporter will be omitted from the details of the report -supplied to the accused. In potentially harmful situations, such as ongoing -harassment or threats to anyone's safety, we may take action without notice. - -## Attribution - -This Code of Conduct is adapted from the Contributor Covenant, version 1.4, -available at -https://www.contributor-covenant.org/version/1/4/code-of-conduct.html \ No newline at end of file diff --git a/java-bigquery/CONTRIBUTING.md b/java-bigquery/CONTRIBUTING.md deleted file mode 100644 index 5456fad05383..000000000000 --- a/java-bigquery/CONTRIBUTING.md +++ /dev/null @@ -1,96 +0,0 @@ -# How to Contribute - -We'd love to accept your patches and contributions to this project. There are -just a few small guidelines you need to follow. - -## Contributor License Agreement - -Contributions to this project must be accompanied by a Contributor License -Agreement. You (or your employer) retain the copyright to your contribution; -this simply gives us permission to use and redistribute your contributions as -part of the project. Head over to to see -your current agreements on file or to sign a new one. - -You generally only need to submit a CLA once, so if you've already submitted one -(even if it was for a different project), you probably don't need to do it -again. - -## Code reviews - -All submissions, including submissions by project members, require review. We -use GitHub pull requests for this purpose. Consult the -[GitHub Help: about pull requests](https://help.github.com/articles/about-pull-requests/) -article for more information on using pull requests. If you do not have -permission to create a branch, then fork the repository and submit a pull -request from the forked repository. Consult -[Github Help: about forks](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo#about-forks) -article for more information. - -## Community Guidelines - -This project follows -[Google's Open Source Community Guidelines](https://opensource.google.com/conduct/). - -## Building the project - -To build, package, and run all unit tests run the command - -``` -mvn clean verify -``` - -### Running Integration tests - -To include integration tests when building the project, you need access to -a GCP Project with a valid service account. - -For instructions on how to generate a service account and corresponding -credentials JSON see: [Creating a Service Account][1]. - -Then run the following to build, package, run all unit tests and run all -integration tests. - -```bash -export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account.json -mvn -Penable-integration-tests clean verify -``` - -## Code Samples - -All code samples must be in compliance with the [java sample formatting guide][3]. -Code Samples must be bundled in separate Maven modules. - -The samples must be separate from the primary project for a few reasons: -1. Primary projects have a minimum Java version of Java 8 whereas samples can have - Java version of Java 11. Due to this we need the ability to - selectively exclude samples from a build run. -2. Many code samples depend on external GCP services and need - credentials to access the service. -3. Code samples are not released as Maven artifacts and must be excluded from - release builds. - -### Building - -```bash -mvn clean verify -``` - -Some samples require access to GCP services and require a service account: - -```bash -export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service/account.json -mvn clean verify -``` - -### Code Formatting - -Code in this repo is formatted with -[google-java-format](https://github.com/google/google-java-format). -To run formatting on your project, you can run: -``` -mvn com.spotify.fmt:fmt-maven-plugin:format -``` - -[1]: https://cloud.google.com/docs/authentication/getting-started#creating_a_service_account -[2]: https://maven.apache.org/settings.html#Active_Profiles -[3]: https://github.com/GoogleCloudPlatform/java-docs-samples/blob/main/SAMPLE_FORMAT.md \ No newline at end of file diff --git a/java-bigquery/LICENSE b/java-bigquery/LICENSE deleted file mode 100644 index 261eeb9e9f8b..000000000000 --- a/java-bigquery/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/java-bigquery/SECURITY.md b/java-bigquery/SECURITY.md deleted file mode 100644 index 8b58ae9c01ae..000000000000 --- a/java-bigquery/SECURITY.md +++ /dev/null @@ -1,7 +0,0 @@ -# Security Policy - -To report a security issue, please use [g.co/vulnz](https://g.co/vulnz). - -The Google Security Team will respond within 5 working days of your report on g.co/vulnz. - -We use g.co/vulnz for our intake, and do coordination and disclosure here using GitHub Security Advisory to privately discuss and fix the issue. diff --git a/java-bigquery/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java b/java-bigquery/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java index eb239463fd69..4c126cb1765b 100644 --- a/java-bigquery/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java +++ b/java-bigquery/benchmark/src/main/java/com.google.cloud.bigquery/ConnImplBenchmark.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/benchmark/src/main/java/com.google.cloud.bigquery/QueryBenchmark.java b/java-bigquery/benchmark/src/main/java/com.google.cloud.bigquery/QueryBenchmark.java index 79aa484d8b69..a28fc2e741f9 100644 --- a/java-bigquery/benchmark/src/main/java/com.google.cloud.bigquery/QueryBenchmark.java +++ b/java-bigquery/benchmark/src/main/java/com.google.cloud.bigquery/QueryBenchmark.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryConversionException.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryConversionException.java index 90e758b05eeb..9c294f257bed 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryConversionException.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryConversionException.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionException.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionException.java index 185ef54bb1da..d900320e7bfd 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionException.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionException.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionNotFoundException.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionNotFoundException.java index b4eafb2ee583..d3dc86e12e33 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionNotFoundException.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcCoercionNotFoundException.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcException.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcException.java index 72a22aba618a..2229963b9802 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcException.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcRuntimeException.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcRuntimeException.java index 38e5171be40f..6abcf799168a 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcRuntimeException.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcRuntimeException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlFeatureNotSupportedException.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlFeatureNotSupportedException.java index 8c93d8764b3a..eb5dc9a22ce3 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlFeatureNotSupportedException.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlFeatureNotSupportedException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlSyntaxErrorException.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlSyntaxErrorException.java index 99edcd0c543c..a92b3788f8f4 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlSyntaxErrorException.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/exception/BigQueryJdbcSqlSyntaxErrorException.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArray.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArray.java index 49bd565df781..6e901fa82dce 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArray.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArray.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowBatchWrapper.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowBatchWrapper.java index 4d322ad977c5..1cbffd7c98c6 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowBatchWrapper.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowBatchWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSet.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSet.java index 004dfb02b418..8e390f0e1b99 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSet.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSet.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStruct.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStruct.java index 33befe902be4..84e8c9267af8 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStruct.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStruct.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseArray.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseArray.java index 5fc2c15bbe09..83227dcdd014 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseArray.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseArray.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSet.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSet.java index 7367a81536fd..86473d319d10 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSet.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSet.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseStruct.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseStruct.java index ab9cf61cb85d..7a3080397012 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseStruct.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryBaseStruct.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatement.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatement.java index 041505c6230c..908d5949d2a0 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatement.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatement.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCoercion.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCoercion.java index 6265af0decc7..2e461e2fc04d 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCoercion.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryCoercion.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnection.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnection.java index e93938f258d4..cf852874cd12 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnection.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnection.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionProperty.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionProperty.java index 17be15d86688..03aa2e69ee2d 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionProperty.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionProperty.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTask.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTask.java index 386785660a20..91673deb744b 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTask.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTask.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaData.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaData.java index 66917ea8891a..c69e08c79924 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaData.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaData.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercions.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercions.java index 324888982a44..b2e6e4331d07 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercions.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercions.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDriver.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDriver.java index 2c7eba16cd82..2680e662980f 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDriver.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryDriver.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryErrorMessage.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryErrorMessage.java index 9afa074522d9..929e4c9cfa7c 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryErrorMessage.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryErrorMessage.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryFieldValueListWrapper.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryFieldValueListWrapper.java index 9d8b1b2f7736..9cfc7fe0cb8e 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryFieldValueListWrapper.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryFieldValueListWrapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBulkInsertWriter.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBulkInsertWriter.java index d4e9702621dc..87c5c9a146fd 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBulkInsertWriter.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBulkInsertWriter.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java index 611b200ff6e4..2aa4c4c01a31 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcCustomLogger.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtility.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtility.java index 5f486f1e58d7..410b93983626 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtility.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtility.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameter.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameter.java index cb11d14e46ab..d4507320495c 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameter.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtility.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtility.java index ebc5450b625b..510737582ac4 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtility.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtility.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcRootLogger.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcRootLogger.java index ef963d87d360..860c88f22160 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcRootLogger.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcRootLogger.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcTypeMappings.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcTypeMappings.java index b95ac0230264..9ecacbcd09ed 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcTypeMappings.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcTypeMappings.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtility.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtility.java index 3b26f7be5414..91168d7b427a 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtility.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtility.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArray.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArray.java index 3b557a15a725..943a8bd035cb 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArray.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArray.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSet.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSet.java index f9d7b115386d..cd69f0538972 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSet.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSet.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStruct.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStruct.java index 35217f8e7117..1d19e5b184e2 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStruct.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStruct.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsConnection.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsConnection.java index 1804cc14c442..7be5dce04ba5 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsConnection.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsConnection.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsResultSet.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsResultSet.java index e4b29f7cd566..ef3a81270dd4 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsResultSet.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsResultSet.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsStatement.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsStatement.java index 2e71bfaf753b..af5499c908d1 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsStatement.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryNoOpsStatement.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandler.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandler.java index 9644dd581d62..865793d4ae2b 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandler.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandler.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnection.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnection.java index ebb07dc11fcf..33bacf71284f 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnection.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnection.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPreparedStatement.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPreparedStatement.java index 2410f6a58a8d..75aa0b6d810e 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPreparedStatement.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryPreparedStatement.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSet.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSet.java index c24e37abddfc..99f5dba66f38 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSet.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSet.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizers.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizers.java index 15a1cca349f1..19900314f812 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizers.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizers.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadata.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadata.java index d18c689333a4..28376483075e 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadata.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadata.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySettings.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySettings.java index 16f13a7784ae..48922b2578cf 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySettings.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySqlTypeConverter.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySqlTypeConverter.java index cfdc64a14e7f..43d99608ecb7 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySqlTypeConverter.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQuerySqlTypeConverter.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryStatement.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryStatement.java index 0da08688802f..2552c26d983d 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryStatement.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryStatement.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactory.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactory.java index a5aa7a73a51d..dd82df7f42e6 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactory.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercer.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercer.java index d156c2d662be..11b9587918e3 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercer.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercer.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerBuilder.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerBuilder.java index 8539515ed16a..da94ee58d239 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerBuilder.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercionUtility.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercionUtility.java index 9a4dc21304e4..d4eb215b9141 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercionUtility.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercionUtility.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/DataSource.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/DataSource.java index b1501890bd1b..bbe913c3ab74 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/DataSource.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/DataSource.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSource.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSource.java index 412e4ca9eeea..7c5bd924b5eb 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSource.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSource.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionListener.java b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionListener.java index c0f08204384b..64371f776d61 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionListener.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/main/java/com/google/cloud/bigquery/jdbc/PooledConnectionListener.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/ArrowFormatTypeBigQueryCoercionUtilityTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/ArrowFormatTypeBigQueryCoercionUtilityTest.java index 0524fc87d1da..42186d4df013 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/ArrowFormatTypeBigQueryCoercionUtilityTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/ArrowFormatTypeBigQueryCoercionUtilityTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfPrimitivesTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfPrimitivesTest.java index 5b33fda78800..c9b9b99c1d5b 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfPrimitivesTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfPrimitivesTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfStructTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfStructTest.java index 7cb84e70abed..ece719ddd5a3 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfStructTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowArrayOfStructTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSetTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSetTest.java index efde49309d7e..41293e08fbae 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSetTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowResultSetTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStructTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStructTest.java index 2c3bedcc4ce9..51176cd4c7cb 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStructTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryArrowStructTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSetTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSetTest.java index 90dad9935ab8..3c89d3f69e11 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSetTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBaseResultSetTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBigQueryTypeCoercerBuilderTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBigQueryTypeCoercerBuilderTest.java index 4af1632456c0..35d0d0b70397 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBigQueryTypeCoercerBuilderTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryBigQueryTypeCoercerBuilderTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatementTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatementTest.java index f9729bf21e88..c525286dde80 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatementTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryCallableStatementTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionTest.java index 22f98af07e63..47491def39db 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryConnectionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTaskTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTaskTest.java index b99ff4bec529..4151d6b4b132 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTaskTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDaemonPollingTaskTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaDataTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaDataTest.java index 536aae15bf97..dc182e70f98f 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaDataTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDatabaseMetaDataTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercionsTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercionsTest.java index d9cc0efb77cb..7cf42a693e66 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercionsTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDefaultCoercionsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDriverTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDriverTest.java index 125de54dfa95..87f73e8bd321 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDriverTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryDriverTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBaseTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBaseTest.java index 616f3bab97b6..6e2dd2fe89a6 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBaseTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcBaseTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtilityTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtilityTest.java index b7fc031621c5..3fc9ea2eee73 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtilityTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcOAuthUtilityTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameterTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameterTest.java index 815759892b10..c5c929bf3608 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameterTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcParameterTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtilityTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtilityTest.java index 203502cdac29..2f7e919f9c6b 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtilityTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcProxyUtilityTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtilityTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtilityTest.java index 86f087bf35f9..3510892649c3 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtilityTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJdbcUrlUtilityTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfPrimitivesTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfPrimitivesTest.java index 6f10ae79a042..f0889cb605db 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfPrimitivesTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfPrimitivesTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfStructTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfStructTest.java index b390d642e4dc..9b10efe1a2c2 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfStructTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonArrayOfStructTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSetTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSetTest.java index 4c715833ffee..1433bc19cd5f 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSetTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonResultSetTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStructTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStructTest.java index f07d8cad274e..cb193f669dfc 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStructTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryJsonStructTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandlerTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandlerTest.java index 0dc085b60218..63255563b143 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandlerTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryParameterHandlerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnectionTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnectionTest.java index ee9d63beb97f..534b6bf02c04 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnectionTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryPooledConnectionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizersTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizersTest.java index 7332dce936b4..0c0b511ed500 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizersTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetFinalizersTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadataTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadataTest.java index b4d14296d190..6a51cd6749c7 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadataTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryResultSetMetadataTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryStatementTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryStatementTest.java index 22dc0721928c..e5c38e15d57e 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryStatementTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryStatementTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactoryTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactoryTest.java index d271df0e26d5..a508843b8ca8 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactoryTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryThreadFactoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerTest.java index a758cf15c0f8..acbf937cda42 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/BigQueryTypeCoercerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/FieldValueTypeBigQueryCoercionUtilityTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/FieldValueTypeBigQueryCoercionUtilityTest.java index 456b750ca5c4..17b1c7308b47 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/FieldValueTypeBigQueryCoercionUtilityTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/FieldValueTypeBigQueryCoercionUtilityTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/NullHandlingTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/NullHandlingTest.java index ab274c879739..da67e504221d 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/NullHandlingTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/NullHandlingTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSourceTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSourceTest.java index bacfdae1dadd..93a5699d5e41 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSourceTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionDataSourceTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionListenerTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionListenerTest.java index d200709c43dc..725ac543c27b 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionListenerTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/PooledConnectionListenerTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/TestType.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/TestType.java index 3222525c5e59..5912072e0cf3 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/TestType.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/TestType.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBase.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBase.java index 5aa41b297512..8357f1b373b6 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBase.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBase.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBigQueryJDBCTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBigQueryJDBCTest.java index 411a4887148c..dd7b83cf8dc3 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBigQueryJDBCTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBigQueryJDBCTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITNightlyBigQueryTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITNightlyBigQueryTest.java index 30124b4a0497..d80ce193b833 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITNightlyBigQueryTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITNightlyBigQueryTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITPSCBigQueryTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITPSCBigQueryTest.java index 1b73f84b662c..bb87f54fef4f 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITPSCBigQueryTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITPSCBigQueryTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITProxyBigQueryTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITProxyBigQueryTest.java index fbde5ecc67db..d8b085fd6202 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITProxyBigQueryTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITProxyBigQueryTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITTPCBigQueryTest.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITTPCBigQueryTest.java index 3fa2d7d7e436..439a20282d89 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITTPCBigQueryTest.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITTPCBigQueryTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/rules/TimeZoneRule.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/rules/TimeZoneRule.java index ff5db108e825..440cfd8066f9 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/rules/TimeZoneRule.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/rules/TimeZoneRule.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/ArrowUtilities.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/ArrowUtilities.java index 13f3007667d3..5ce9e2f8f544 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/ArrowUtilities.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/ArrowUtilities.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/TestUtilities.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/TestUtilities.java index 419cb9b0bcb1..e792c4df929c 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/TestUtilities.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/TestUtilities.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/URIBuilder.java b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/URIBuilder.java index ce34f42f547e..b580645dc21b 100644 --- a/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/URIBuilder.java +++ b/java-bigquery/google-cloud-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/utils/URIBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java b/java-bigquery/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java index 9d05f6b2b437..323cfc93ac89 100644 --- a/java-bigquery/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java +++ b/java-bigquery/google-cloud-bigquery/src/benchmark/java/com/google/cloud/bigquery/benchmark/Benchmark.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AbstractJdbcResultSet.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AbstractJdbcResultSet.java index 5b8246925013..fc7f136bc538 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AbstractJdbcResultSet.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AbstractJdbcResultSet.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java index d52124092a83..d10ab13c9d10 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Acl.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Annotations.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Annotations.java index 5d8d1e7e0cff..5b6b3b83f32e 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Annotations.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Annotations.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AvroOptions.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AvroOptions.java index dd5964f2db96..2f5b2919705e 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AvroOptions.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/AvroOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineReason.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineReason.java index e682ba24611d..246bea44e9cb 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineReason.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineReason.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineStats.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineStats.java index 34d6c43268e2..483ea126d2c6 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineStats.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BiEngineStats.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigLakeConfiguration.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigLakeConfiguration.java index 76b3f55d942d..d172006f48a9 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigLakeConfiguration.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigLakeConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java index ab16ed40f7c9..5790bf6980d7 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuery.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java index bdcefb3d969e..948be7892fdf 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryBaseService.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResult.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResult.java index 0494aa1a97f4..f3d7da40e98c 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResult.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResultImpl.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResultImpl.java index fabb2f2fcb46..fbc009fb44b8 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResultImpl.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryDryRunResultImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java index ef638aa1bed7..cd14ab9ce211 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryError.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryErrorMessages.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryErrorMessages.java index 5c86e080600e..b3650d1eed77 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryErrorMessages.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryErrorMessages.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java index c42ff6327527..c62afa10a36a 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryException.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java index e90de01ceccc..a00dfe35b146 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java index c057cdaca6cb..31bc8c162848 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java index 10ae77930c85..db79c050c0b1 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResult.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResult.java index 6b0c35f67c3e..b16ebf776b6e 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResult.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java index b705e77c118d..8e7c6bb93007 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStats.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStats.java index a4c37a9b6612..f6af95165ef7 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStats.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStats.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStatsImpl.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStatsImpl.java index 53d67f8f3a13..3b02d30405f0 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStatsImpl.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryResultStatsImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java index 7b168c12d130..22c260fa5f8f 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryAlgorithm.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryConfig.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryConfig.java index 2e1f7c0bdaa8..3aec02aac999 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryConfig.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryConfig.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java index 9c70830465e6..5fe84df20d34 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQueryRetryHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuerySQLException.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuerySQLException.java index 672c6ad3faee..23b61f5ae0d6 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuerySQLException.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigQuerySQLException.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java index eadebfb94630..846e4fd04fbc 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumn.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java index 677ea971d1f0..5c92f82a0f7a 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableColumnFamily.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java index 30f258e121e9..a8b926d12212 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/BigtableOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CloneDefinition.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CloneDefinition.java index 58594fe321f1..5e76bc91b584 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CloneDefinition.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CloneDefinition.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java index 683452fae2d8..e1ec6d21cad3 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Clustering.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ColumnReference.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ColumnReference.java index 3dc688be5f91..761ff372f478 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ColumnReference.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ColumnReference.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java index 83ea0fc0dcbe..a0b0d7fb9df4 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Connection.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java index d31a406e40a6..e5f490c630b2 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java index 30e0cf014192..2e106bc47c9e 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionProperty.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java index 79bc3aac9f52..1f73fb76b132 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ConnectionSettings.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java index 54e612271f14..af73f79c1e01 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CopyJobConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java index b39c82a7edf2..242d2ec8d291 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/CsvOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DataFormatOptions.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DataFormatOptions.java index beaadf32cf95..eff8d338a033 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DataFormatOptions.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DataFormatOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java index 18606e701368..8b563962d7f1 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Dataset.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java index ff42d5d36033..c08d31ee235c 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetId.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java index 91876199514b..cfeaf144cf7c 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatasetInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java index 23ff460fe1a9..820b2068af86 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DatastoreBackupOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DmlStats.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DmlStats.java index 0ce97dc0cb79..a4f61055b865 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DmlStats.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/DmlStats.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java index 36faeb99b62f..4996805859e5 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/EncryptionConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExecuteSelectResponse.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExecuteSelectResponse.java index 59745020f556..d0e172b9216e 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExecuteSelectResponse.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExecuteSelectResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalDatasetReference.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalDatasetReference.java index ecfe54c50c3f..1dee60ed25fd 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalDatasetReference.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalDatasetReference.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java index c1859c3f9fdc..b6a3659cee7b 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExternalTableDefinition.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java index d79959ee04a9..76e964abd3ee 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ExtractJobConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java index 88e09c5c4817..1690c504b3e0 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Field.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldElementType.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldElementType.java index de601151e192..a603a9b00f42 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldElementType.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldElementType.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java index c18d2514293a..db7cf5740d02 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldList.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java index d11df4b956af..8c9adb4ced9e 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java index 18d2155a583f..4f3c806d97da 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FieldValueList.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ForeignKey.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ForeignKey.java index 69c2f7434606..c66292e25cb4 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ForeignKey.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ForeignKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java index c5acd48f6a12..5b1c2583dba0 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/FormatOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java index 2f2b71f79e12..40056ac0aa1b 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/GoogleSheetsOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java index 7df046ee1160..c5b640e46f3b 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/HivePartitioningOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java index bb4f0c3c32ee..d81a50f8e9b1 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/IndexUnusedReason.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java index ce93800987f7..e6971c54e358 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllRequest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java index 9a75f5cbd6ae..c10f09ba1052 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/InsertAllResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java index c64327500f70..8ef437865535 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Job.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java index b13198b8a135..3d54e2fc5daa 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java index 0bfa2572a30c..36c64d9c529b 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobException.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java index 4bfc2aa00271..e572cefe1065 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobId.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java index fdf1b6e6068d..cb6658d2ae9f 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java index c78378ab53f7..7aa147937929 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatistics.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java index 3ac24293c653..562789f2e56f 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/JobStatus.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java index 334e3290b5e1..dbbc54bc2c8b 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LegacySQLTypeName.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java index 58cf986706a5..ae9ceb6520f8 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java index 381942cd0b73..aaea13d1d952 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/LoadJobConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MaterializedViewDefinition.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MaterializedViewDefinition.java index 69712bb3dd18..f25d45dbb1d5 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MaterializedViewDefinition.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MaterializedViewDefinition.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MetadataCacheStats.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MetadataCacheStats.java index 482571d5f04d..3849d5b9de1c 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MetadataCacheStats.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/MetadataCacheStats.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java index 64ef0e4a7345..d35e276a9230 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Model.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java index d363ed8359ea..b41dae6a16f1 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelId.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java index 3039483b5245..37b7a14c4c9d 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java index 23bf66ef7b16..9fa6100af728 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ModelTableDefinition.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java index 15e7ce931b42..2cf0e6165d85 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Option.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Parameter.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Parameter.java index 9959feab91e2..bbce2bce6218 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Parameter.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Parameter.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java index cc85eeda6829..dbeb2a4092ec 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ParquetOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyHelper.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyHelper.java index c830bb3e3d76..aacef8098f28 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyHelper.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyTags.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyTags.java index a66be88e1ae6..cf6480062d00 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyTags.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PolicyTags.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PrimaryKey.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PrimaryKey.java index a8474cf0fbf1..cc3bc41831f1 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PrimaryKey.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/PrimaryKey.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java index a62fbb5008d4..1d757d4dc509 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryJobConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java index 89e7ae85bfa1..68736bc70e67 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java index c7033817c367..e6c92fe58f23 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryRequestInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java index a895bf839fe4..05ce38e74d26 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryResponse.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java index 5fc37b98e2b5..ed796891de59 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryStage.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Range.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Range.java index 8d244fbeb069..c9f1aa245b03 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Range.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Range.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java index a8b1850766ce..f48d0c8bcacd 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RangePartitioning.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ReadClientConnectionConfiguration.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ReadClientConnectionConfiguration.java index 03cc2140e076..829c4a790834 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ReadClientConnectionConfiguration.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ReadClientConnectionConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RemoteFunctionOptions.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RemoteFunctionOptions.java index 0f31e9c66296..62ed18860508 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RemoteFunctionOptions.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RemoteFunctionOptions.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java index 5d99ccfbdca4..c875f8170b95 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Routine.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java index 4bc17e6ae2ac..f04d3a420b4e 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineArgument.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java index 957b885da4db..9790f595b8c0 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineId.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java index c13b90b41336..fb27ecaf4b16 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/RoutineInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java index c2061c6777d9..cde67bd3f7c9 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Schema.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SearchStats.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SearchStats.java index 237b83ca727c..f1b6d2ae9aa7 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SearchStats.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SearchStats.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SnapshotTableDefinition.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SnapshotTableDefinition.java index ad0aeb0ce583..434ad5bd5b70 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SnapshotTableDefinition.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/SnapshotTableDefinition.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java index 99ed10af1461..fd6324d65e1f 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLDataType.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java index 013742548720..387a80aa0571 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLField.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java index 43844916ec12..21e5c7c21e8a 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLStructType.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTableType.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTableType.java index d44f89f922b1..6c49c2b00323 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTableType.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTableType.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java index 1f70183cdc55..633a2c332856 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardSQLTypeName.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java index 0319a6a4dd9d..c856530cf168 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/StandardTableDefinition.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java index 56c6558555f1..e9e286a973ff 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/Table.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableConstraints.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableConstraints.java index ad30eafcc2a8..eefcf3fd1dfd 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableConstraints.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableConstraints.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java index dde4c0818713..36e48bb9174c 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDataWriteChannel.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java index 1fa902498795..79ff3593c4e8 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableDefinition.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java index a4177b503d93..a8be6942864c 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableId.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java index b3236f4c3d59..93f3f1ccb4e5 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableMetadataCacheUsage.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableMetadataCacheUsage.java index 89ad4f966d74..a9b1326d58f7 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableMetadataCacheUsage.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableMetadataCacheUsage.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java index 42044596bd41..3049d00d4336 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TableResult.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java index e874bc30be62..c6d06c44196b 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimePartitioning.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java index fbfad85d3ac1..78371fae7f09 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/TimelineSample.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java index fb633d3bfb75..afad85e12bc6 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/UserDefinedFunction.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java index eee06fdaff4e..8977e5e0e902 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/ViewDefinition.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java index 114c6dadd41c..54965b91f185 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/WriteChannelConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java index 85c3584fd6fe..8b7455bec9ab 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java index 7e7a1212d70f..49575218ba0c 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/BigQueryRpcFactory.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java index 65fd45d02a10..df10c38c9c66 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/BigQueryRpc.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java index 16737dc4b713..518cc5f461dc 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpc.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java index d195dc245ec2..03fc8f1823a1 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelper.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java index c2e6c03f50f3..f0d9417f35cc 100644 --- a/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java +++ b/java-bigquery/google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/testing/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/MetadataCacheStatsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/MetadataCacheStatsTest.java index d417bfc7fa59..45c209a6a55b 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/MetadataCacheStatsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/MetadataCacheStatsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java index f7bed53ba153..ccf6d8611273 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AclTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AnnotationsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AnnotationsTest.java index ad475c7dcea0..e0eb9aa1c055 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AnnotationsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AnnotationsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AvroOptionsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AvroOptionsTest.java index 840ae24ba88f..455428c823c2 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AvroOptionsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/AvroOptionsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigLakeConfigurationTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigLakeConfigurationTest.java index 66fcd7c6b4ce..55e475bb964d 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigLakeConfigurationTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigLakeConfigurationTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java index d618214e2926..520c0e64ec12 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryErrorTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java index 7254ede1bc5b..4c561e0a865c 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryExceptionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java index 20a6ef679e89..416227cbb7ae 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryImplTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java index 050deba4af16..8bb6d30937a7 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryOptionsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java index 54d0b8e4e46e..abc72a3b2d90 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigQueryResultImplTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java index a11d9b923bb4..7eaa9a404aaa 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/BigtableOptionsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CloneDefinitionTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CloneDefinitionTest.java index 1a319c947c29..d46cafbadd1a 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CloneDefinitionTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CloneDefinitionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java index 0c7c75306ccf..68f6591218fe 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ColumnReferenceTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java index 54f9b7a33a25..ef7dac6fcf3c 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionImplTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionPropertyTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionPropertyTest.java index bc5def560b63..dc04d47f8fc9 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionPropertyTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionPropertyTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionSettingsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionSettingsTest.java index 29c29ed55c10..ff4bd986ebb5 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionSettingsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ConnectionSettingsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java index 97538f299181..80fee6b64602 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CopyJobConfigurationTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java index 1c31540fc081..6f23388cfeff 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/CsvOptionsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java index dc2ba289989e..00edeac92050 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetIdTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java index cb9768de4d6f..eda88eb19fdb 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetInfoTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java index 5e19e8c8259f..51cb15a3df13 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatasetTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java index 010278119011..1a3a33085348 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DatastoreBackupOptionsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DmlStatsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DmlStatsTest.java index f165b60e3902..faefbdac1b83 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DmlStatsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/DmlStatsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalDatasetReferenceTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalDatasetReferenceTest.java index 26dfcd5dcc91..74f327e0679f 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalDatasetReferenceTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalDatasetReferenceTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java index 480b8a497213..7e1226c46973 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExternalTableDefinitionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java index d7ce318f1b0b..22ff7ad51b9c 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ExtractJobConfigurationTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java index 7821b93219ae..87e355fe0f5a 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldElementTypeTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java index 9f6371642794..5f04302b0d6a 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldListTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java index 72f8bb3e8234..433c6d8d9502 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java index dd5092b1c102..b4afb64be2ee 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueListTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java index 958e20659868..37905886f572 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FieldValueTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java index 2dfacda542f4..9340e1be6938 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ForeignKeyTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java index e8642e86e2c9..a0af2db5ea0f 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/FormatOptionsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java index 7aae673d3d8b..dd8d44def8ad 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/GoogleSheetsOptionsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java index 401ab07b72e9..0f165f0ce921 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/HivePartitioningOptionsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java index d687e75b3447..374e4813ad5c 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllRequestTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java index 9b30e25860b1..ae568db054a4 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/InsertAllResponseTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java index 7934ad1204d6..84faed5e9fec 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobIdTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java index 6c7f9b245c67..d4e4c1002481 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobInfoTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java index 289548113b34..1442d7732729 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatisticsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java index 1c20b7240403..23d54225ed6c 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobStatusTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java index f85c2f76c40f..49eb2784a6f8 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/JobTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java index 1a9db2995154..acc6af9579cc 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/LoadJobConfigurationTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java index 00ac64937fb6..d40793140799 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/MaterializedViewDefinitionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java index 98df2d5f2694..f420f582d7be 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelIdTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java index be0e1ff23380..0f61f27beb2c 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelInfoTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTableDefinitionTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTableDefinitionTest.java index 444d47c09307..d7dacbf9993a 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTableDefinitionTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTableDefinitionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java index acdbdfbfe543..571faadf7264 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ModelTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java index b25f06706477..c726b51e1e61 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/OptionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java index b5ace223f1e0..d6bd2ddee5b3 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ParquetOptionsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyHelperTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyHelperTest.java index ac05a2c1ff4d..19bd16d62800 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyHelperTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyHelperTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java index a94e4324befd..e4fbcaf52f84 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PolicyTagsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PrimaryKeyTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PrimaryKeyTest.java index 702ca5cb488a..4477b9e273d2 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PrimaryKeyTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/PrimaryKeyTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java index 7fe41daa0608..97e6f2f23abe 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryJobConfigurationTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java index 276234246e8a..29fdb21de090 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java index be1f0e1982f9..b3d749deec2b 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryRequestInfoTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java index 30eeb90ad4a7..c717553707c2 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryStageTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java index b72b4b70c23b..a75b74c9d4f0 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RangeTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RemoteFunctionOptionsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RemoteFunctionOptionsTest.java index a3559f5cfcb7..ade18f40ad84 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RemoteFunctionOptionsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RemoteFunctionOptionsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java index 31a2c56de916..7d6c4a4c7cac 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineArgumentTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java index 2800f3caa614..12afbb39a5c3 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineIdTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java index f191cbedd03c..24292120a623 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineInfoTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java index 839bfe5e6678..78a4f3359709 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/RoutineTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java index 9750fd7bd36f..25e0df15dae4 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SchemaTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java index e91a243949a8..01bc792d8450 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SerializationTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SnapshotTableDefinitionTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SnapshotTableDefinitionTest.java index defcd9cb3999..8f8e98d8003b 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SnapshotTableDefinitionTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/SnapshotTableDefinitionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java index ffc6311184c1..ffe51bd32092 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLDataTypeTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java index 5e3af997d7c6..e4a74dd79b8a 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLFieldTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java index ab88de3f0e83..a49b5075a9d4 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLStructTypeTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLTableTypeTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLTableTypeTest.java index ce5a4992cdbb..ddf3211262be 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLTableTypeTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardSQLTableTypeTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java index 6ff0a366d193..04b69f7f560a 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/StandardTableDefinitionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java index b074b2f22caa..b93cd9077be2 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableConstraintsTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java index 8752b27086b4..f5e71f952e6b 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableDataWriteChannelTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java index 02154db0ca4e..9875ce34aba8 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableIdTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java index 4dd488a6801d..b249371ed797 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableInfoTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableMetadataCacheUsageTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableMetadataCacheUsageTest.java index dc996693cc35..9b04f84c4213 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableMetadataCacheUsageTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableMetadataCacheUsageTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java index 5bdb14cf49ce..0e915b2c7ef2 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableResultTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java index 6ad7822d9bc0..ce2608b785c7 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TableTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java index ec947381b0d7..b23195e87d38 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimePartitioningTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java index 22f419593d08..cc3aa6900eb5 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/TimelineSampleTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java index 81622527a392..e58b484a0baa 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/UserDefinedFunctionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java index 60eeea766852..397776ea314f 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/ViewDefinitionTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java index 35745235e51b..28efae0a1853 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/WriteChannelConfigurationTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java index e6f403c5d0ce..3c182683823e 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITBigQueryTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java index e4dc534f9e20..8017878a88f8 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITHighPrecisionTimestamp.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java index 641868203877..2bbd619fdd23 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITNightlyBigQueryTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java index 6598d0835755..7e59416ac54b 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/it/ITRemoteUDFTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java index 3968cd05e22f..e2262391f483 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/spi/v2/HttpBigQueryRpcTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java index f66df17ab55a..9f98ae3a9ff0 100644 --- a/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java +++ b/java-bigquery/google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/testing/RemoteBigQueryHelperTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2015 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/java.header b/java-bigquery/java.header deleted file mode 100644 index d0970ba7d375..000000000000 --- a/java-bigquery/java.header +++ /dev/null @@ -1,15 +0,0 @@ -^/\*$ -^ \* Copyright \d\d\d\d,? Google (Inc\.|LLC)$ -^ \*$ -^ \* Licensed under the Apache License, Version 2\.0 \(the "License"\);$ -^ \* you may not use this file except in compliance with the License\.$ -^ \* You may obtain a copy of the License at$ -^ \*$ -^ \*[ ]+https?://www.apache.org/licenses/LICENSE-2\.0$ -^ \*$ -^ \* Unless required by applicable law or agreed to in writing, software$ -^ \* distributed under the License is distributed on an "AS IS" BASIS,$ -^ \* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied\.$ -^ \* See the License for the specific language governing permissions and$ -^ \* limitations under the License\.$ -^ \*/$ diff --git a/java-bigquery/license-checks.xml b/java-bigquery/license-checks.xml deleted file mode 100644 index 6597fced808e..000000000000 --- a/java-bigquery/license-checks.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - diff --git a/java-bigquery/renovate.json b/java-bigquery/renovate.json deleted file mode 100644 index dc6b01e796de..000000000000 --- a/java-bigquery/renovate.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "extends": [ - ":separateMajorReleases", - ":combinePatchMinorReleases", - ":ignoreUnstable", - ":prImmediately", - ":updateNotScheduled", - ":automergeDisabled", - ":ignoreModulesAndTests", - ":maintainLockFilesDisabled" - ], - "ignorePaths": [ - ".kokoro/requirements.txt" - ], - "customManagers": [ - { - "customType": "regex", - "managerFilePatterns": [ - "/^.kokoro/continuous/graalvm-native.*.cfg$/", - "/^.kokoro/presubmit/graalvm-native.*.cfg$/" - ], - "matchStrings": [ - "value: \"gcr.io/cloud-devrel-public-resources/graalvm.*:(?.*?)\"" - ], - "depNameTemplate": "com.google.cloud:sdk-platform-java-config", - "datasourceTemplate": "maven" - }, - { - "customType": "regex", - "managerFilePatterns": [ - "/^.github/workflows/unmanaged_dependency_check.yaml$/" - ], - "matchStrings": [ - "uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v(?.+?)\\n" - ], - "depNameTemplate": "com.google.cloud:sdk-platform-java-config", - "datasourceTemplate": "maven" - } - ], - "packageRules": [ - { - "versioning": "docker", - "matchPackageNames": [ - "/^com.google.guava:/" - ] - }, - { - "semanticCommitType": "build", - "semanticCommitScope": "deps", - "matchPackageNames": [ - "/^org.apache.maven/", - "/^org.jacoco:/", - "/^org.codehaus.mojo:/", - "/^org.sonatype.plugins:/", - "/^com.coveo:/", - "/^com.google.cloud:google-cloud-shared-config/" - ] - }, - { - "semanticCommitType": "chore", - "semanticCommitScope": "deps", - "matchPackageNames": [ - "/^com.google.cloud:google-cloud-bigquery$/", - "/^com.google.cloud:google-cloud-bigtable/", - "/^com.google.cloud:libraries-bom/", - "/^com.google.cloud.samples:shared-configuration/" - ] - }, - { - "semanticCommitType": "test", - "semanticCommitScope": "deps", - "matchPackageNames": [ - "/^junit:junit/", - "/^com.google.truth:truth/", - "/^org.mockito:mockito-core/", - "/^org.objenesis:objenesis/", - "/^com.google.cloud:google-cloud-storage/" - ] - }, - { - "ignoreUnstable": false, - "matchPackageNames": [ - "/^com.google.cloud:google-cloud-/" - ] - }, - { - "groupName": "jackson dependencies", - "matchPackageNames": [ - "/^com.fasterxml.jackson.core/" - ] - }, - { - "matchPackageNames": [ - "com.google.cloud:google-cloud-datacatalog-bom", - "com.google.cloud:google-cloud-bigqueryconnection-v1", - "com.google.cloud:google-cloud-bigqueryconnection" - ], - "groupName": "Google Cloud Java Monorepo Updates", - "groupSlug": "google-cloud-java-monorepo-release-updates" - } - ], - "semanticCommits": "enabled", - "dependencyDashboard": true, - "dependencyDashboardLabels": [ - "type: process" - ], - "prConcurrentLimit": 0, - "prHourlyLimit": 0 -} diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java index 02bb56eedc44..4040bbef7efd 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AddColumnLoadAppend.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java index 977901f9ae73..0cc96826a03f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AddEmptyColumn.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java index c690ed4de7eb..c41db9d7448c 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthDriveScope.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java index 63909b0e5a3f..5d9fade947c1 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthSnippets.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Google Inc. + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java index 606a3916e3db..6c7109d5d913 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthUserFlow.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java index bed9159c90c6..6e29fe3f7e2d 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthUserQuery.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java index 949e583e4819..167ecb1a317e 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthorizeDataset.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java index 0b5150a58bc6..a861dff0630f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/AuthorizedViewTutorial.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java index 6e6539c1678b..49027c49d731 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/BrowseTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java index f15f29c05dfc..594f8b27096c 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CancelJob.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java index 2a7e02344804..fe14db75c18b 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java index 16f2d5b51332..e7d278a04bdd 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java index ac4966b2fb81..0fda7834d57a 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateAndQueryRepeatedRecordField.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateAndQueryRepeatedRecordField.java index 2bb13eb121a8..107b92e0d19a 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateAndQueryRepeatedRecordField.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateAndQueryRepeatedRecordField.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java index dd36385c707e..d674b2d23817 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java index f567c8df1bc2..203fcd20a2d9 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java index 19ef0eca24e8..07f00c4ffc54 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetWithRegionalEndpoint.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetWithRegionalEndpoint.java index c19a93b42fc8..3c2b7acd4d1f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetWithRegionalEndpoint.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetWithRegionalEndpoint.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java index 25a749211f6f..fe51a93fed17 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateExternalTableAws.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java index 96f0c3f16a1d..24764fd3afac 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateIamPolicy.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java index 46cbd7166d7a..c8e8e994385f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateJob.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java index 0781cf151817..be2647d18072 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateMaterializedView.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java index dfc54671206f..644f616d9ef4 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateModel.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java index a5ae394b2c78..925ebba5a6cb 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreatePartitionedTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java index 7e5b3a9a2684..a635b6b1e9ae 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateRangePartitionedTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java index 561ac28d751f..cfba7697d3b8 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateRoutine.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java index 76122ea9e8d9..726755d9e932 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateRoutineDdl.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java index df94a5ee7294..2ff205d0ae4c 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java index bc654c387b2e..09ee125424e0 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTableCmek.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java index 7f5f349a7604..63b1b46ce568 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTableExternalHivePartitioned.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java index aa7350bfcb87..16db9f4aff77 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTableWithoutSchema.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeys.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeys.java index 36e32bc216ca..3d0f61f7d4b7 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeys.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeys.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateView.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateView.java index 33973bbc5c17..3c6d6fd36a28 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateView.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/CreateView.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java index 1475845c4007..2083f77ec053 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DatasetExists.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java index 116c44288d9b..52e12c69106d 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DdlCreateView.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java index 62b9bde6161c..1a23532c6f3c 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteDataset.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java index 4980e4f58971..607c53bc0df7 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteDatasetAndContents.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java index 24660c68b5b4..00167627972f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelDataset.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java index f981579d6337..ff3aef2bd3bb 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteLabelTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java index 5433bec3bb53..e651bc6c4dc6 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteMaterializedView.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java index 7917b1e5a933..82b7b66b4c2d 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteModel.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java index 7e69626de180..78d2d852cd59 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteRoutine.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java index 3c9e6986f2bb..ba78c2f37b5e 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/DeleteTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracing.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracing.java index 57ec7eb71df1..1feb7c3c7fbe 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracing.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracing.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpan.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpan.java index af69df10ba51..3c6f0894c91e 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpan.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpan.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java index 09e622fe442d..32974e08a6fa 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExportQueryResultsToS3.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java index 9f5086330bfc..eacc25a14c4a 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractModel.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java index 17f7e41bbf87..a3f6ba7fad33 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractTableCompressed.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java index 7a9323bd5a4e..975e7ecc2adb 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToCsv.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java index cdb98218293e..48d49dfdba60 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ExtractTableToJson.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java index b691d27e4d5d..8284c6b3e74f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetDatasetInfo.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java index 952dfaedceb5..e3f9e97c808b 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetDatasetLabels.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetJob.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetJob.java index 920f16fc2540..7270b3c4ec6d 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetJob.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetJob.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetModel.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetModel.java index f5106959f802..3e14c8730a46 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetModel.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetModel.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java index 2c13f026d445..604858351b07 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetRoutine.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetTable.java index 7009fbcba1b0..c6223957a1f7 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java index 7cc2a5f580a8..ef65e40d6e0a 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetTableLabels.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetView.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetView.java index d64e59dfe08d..e235785c5df4 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetView.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GetView.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java index 00f5ccb1c4db..ca899c14fc6f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/GrantViewAccess.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java index 0f2946488e7b..be164a2399ed 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/InsertingDataTypes.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java index e0bfed88f4cc..b6526fb99b2f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LabelDataset.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java index dae54776e421..a3b1ce4993e3 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LabelTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java index 46bfb6dc376e..7d53c8b7b083 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListDatasets.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java index 121015b4baf0..2728fbc26c1d 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListDatasetsByLabel.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java index ace9ad14c042..9ff4cb62e085 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListJobs.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListModels.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListModels.java index a1b26b29c419..e04d53ca15e9 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListModels.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListModels.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java index 37b3fc017c92..a87b0d0c26e8 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListRoutines.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListTables.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListTables.java index 2abd9e2c61c5..239ced89410a 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListTables.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ListTables.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java index 8d44960c90ab..ca53ddc5b4f2 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcs.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java index c2bb261d3b45..ecfb6749a1fb 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadAvroFromGcsTruncate.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java index 4dd26aeec27d..bc70dc650de4 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcs.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java index 544134925d93..e94b76b2412e 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsAutodetect.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java index b6d06ed8f866..209f62772251 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadCsvFromGcsTruncate.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java index f3268fb0b059..8e939c1b20c0 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcs.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java index 1272bf8470d8..13541b201e20 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsAutodetect.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java index f316440acd3d..be627ab96fb0 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsCmek.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java index 0771c69d8cf3..d1fc54701bc6 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadJsonFromGcsTruncate.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java index 4e6b75f1e661..523751144ed0 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFile.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFileInSession.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFileInSession.java index 8efef5c405a1..bcf6d29b85a3 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFileInSession.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadLocalFileInSession.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java index 0b471a084ab1..567d0d07b3c0 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcs.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java index e81a9ea4c59c..b92da11a4f5f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadOrcFromGcsTruncate.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java index 712acd1f83f7..0ed12f6da6ae 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadParquet.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java index d29a2fa0b211..016a12446a4a 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadParquetReplaceTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java index 334378092cfe..c12d7e861736 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadPartitionedTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java index 86b8afc7a9a5..be978885fbb1 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/LoadTableClustered.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java index db2e1d129523..1536d8ccda45 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/NestedRepeatedSchema.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java index d1dcb2b3e65b..53fc56a34859 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryBatch.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java index aca44979f91c..e71c7c72c7c8 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryClusteredTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java index bfd2c0fd0bbe..567d660cbe5a 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryDestinationTableCmek.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java index d353bc85b5bf..663418472b35 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryDisableCache.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java index 72a50e45c081..51a0ca4fcc45 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryDryRun.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java index fa5c30c16b4f..3f8c5c3dc3a6 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtablePerm.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java index 6a0463107480..3042defb2a65 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalBigtableTemp.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java index 14e3a9eea91e..d48637c7b7f1 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsPerm.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java index d08db13b8221..60ba1903a37d 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalGcsTemp.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java index 97e660c9715a..f8bed3df1b7a 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsPerm.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java index 79d3d8d20d62..12dc863aa48c 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalSheetsTemp.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java index bd709d78c0c9..7fd8318873b7 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryExternalTableAws.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryJobOptional.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryJobOptional.java index 1abf58067171..fbe470eb8e3c 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryJobOptional.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryJobOptional.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java index ee6800786818..9f93e2e6ca45 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryLargeResults.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java index 45ac23e672a2..4631e71c6384 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryMaterializedView.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java index 86915bab777c..9a6a9977c198 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryPagination.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java index 19d8740378e8..257e4c4b4d3e 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryPartitionedTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java index 553b91184089..7bcd86a0af8f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryScript.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java index 21bce842714c..5c372009e990 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryTotalRows.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java index 3a2074f9acf6..28cb6e24b23f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayOfStructsNamedParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java index 62a26c21054b..e2f32d94323d 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithArrayParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java index 64589e5de96a..b5a81ebfc530 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java index bf9f8fa18495..f4becae62a20 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithNamedTypesParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java index 3463c07c88a5..f4564d612d0d 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java index fa8faaf63760..0b8e6086f3c8 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithPositionalTypesParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java index 5cf3ebeb69ab..d22780016aa5 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithStructsParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java index 6f20b9801d7d..8a77d360a93a 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QueryWithTimestampParameters.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java index edcf0df965dc..52a99756c984 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/QuickstartSample.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google Inc. + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java index df8797755c4c..add11713f430 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnLoadAppend.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java index dd2decc5e826..981048e76b59 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RelaxColumnMode.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java index 2e26a0ca1603..a9138238927f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RelaxTableQuery.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java index a530885cf534..7bbba7ffc833 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/ResourceCleanUp.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java index ce9b96cec8c7..07100c58720b 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/RunLegacyQuery.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java index 7279c30cd971..9909b97385db 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SaveQueryToTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SetUserAgent.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SetUserAgent.java index 2794305f6a1d..b269cde4d2bf 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SetUserAgent.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SetUserAgent.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java index 7b72bb0f9409..f75f9dda34c2 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SimpleApp.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java index 429a339cf53c..10302cc1f401 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SimpleQuery.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SimpleQueryConnectionReadApi.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SimpleQueryConnectionReadApi.java index 970c29a2ef95..b78bba5a4833 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SimpleQueryConnectionReadApi.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/SimpleQueryConnectionReadApi.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/TableExists.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/TableExists.java index 0447fe3de190..3beb31e6bfb2 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/TableExists.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/TableExists.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java index 05bcee6d9a10..a00f2cc22bd8 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/TableInsertRows.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java index 1f4def54c0a5..3574bef132ff 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/TableInsertRowsWithoutRowIds.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java index cc09afbcbd54..05bb6abeaf1a 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UndeleteTable.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java index e3edf5eca818..6b70d63b9192 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetAccess.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java index 71f50c85f4c8..21243a44b938 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetDescription.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java index 10a5f76617d4..bb08c5c4850b 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetExpiration.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java index d7696c78daa0..e1b66797d7fc 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateDatasetPartitionExpiration.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java index 6956b2d92916..8fe2a067294f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateIamPolicy.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateMaterializedView.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateMaterializedView.java index 4de127344386..68a4abc82d53 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateMaterializedView.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateMaterializedView.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java index 42b1eaeb6fdf..5f12db2e02e4 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateModelDescription.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java index f9a9ddd3be86..8a982f849414 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateRoutine.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java index 57fd5416079d..404e12473ddb 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableCmek.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java index 10e138d2d5fe..679ba354fe9c 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDescription.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java index d57b03ebfd84..6e9f4948da07 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableDml.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java index a0a1ebd77066..10cbad081f7f 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableExpiration.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java index 35ff648ac93f..49c52823e168 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateTableRequirePartitionFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java index e30241059c2f..b510d62ac939 100644 --- a/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java +++ b/java-bigquery/samples/snippets/src/main/java/com/example/bigquery/UpdateViewQuery.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java index 461c6dbe3792..3d27d16097e3 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AddColumnLoadAppendIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java index f5ce9add7129..0aa80eca37e0 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AddEmptyColumnIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthDriveScopeIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthDriveScopeIT.java index a846f7be8f74..8cb0092d2731 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthDriveScopeIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthDriveScopeIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthSnippetsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthSnippetsIT.java index f365e4c5dd54..919ac545054d 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthSnippetsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthSnippetsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2017 Google Inc. + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthorizeDatasetIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthorizeDatasetIT.java index c4facd5ef465..038db936d8ce 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthorizeDatasetIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthorizeDatasetIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthorizedViewTutorialIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthorizedViewTutorialIT.java index 89889e03f52c..c1bcef796f87 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthorizedViewTutorialIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/AuthorizedViewTutorialIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java index ad4853363266..58e442cbc5f5 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/BrowseTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CancelJobIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CancelJobIT.java index 49d9be275dc7..281aa710a418 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CancelJobIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CancelJobIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java index e0d175c86ef4..76ae1b434997 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CopyMultipleTablesIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java index 7a601cf95171..be0f23778b37 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CopyTableCmekIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java index ccf150740411..13f2e0743f24 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CopyTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateAndQueryRepeatedRecordFieldIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateAndQueryRepeatedRecordFieldIT.java index 56ad47a5d86d..b911f32cacaf 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateAndQueryRepeatedRecordFieldIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateAndQueryRepeatedRecordFieldIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java index 2ea6cc53622d..363d47800834 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateClusteredTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java index 6f59f0c49f62..a338f8d934f7 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetAwsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetIT.java index 1fbf4f5464c6..b3e38142df57 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetWithRegionalEndpointIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetWithRegionalEndpointIT.java index da6f4afd7dee..d2c875408c6b 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetWithRegionalEndpointIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateDatasetWithRegionalEndpointIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java index 80be0bb26fac..7da57dc7bbdf 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateExternalTableAwsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateIamPolicyIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateIamPolicyIT.java index 420d81e40582..3661285f31bc 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateIamPolicyIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateIamPolicyIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateJobIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateJobIT.java index 91242e922cd8..67bf76da740c 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateJobIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateJobIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateMaterializedViewIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateMaterializedViewIT.java index 7d4ec84b2432..ed6ad1272baf 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateMaterializedViewIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateMaterializedViewIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java index dd18a02f1a01..2665cef7bf63 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateModelIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java index 7a73c783d32e..c422f497cddb 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreatePartitionedTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateRangePartitionedTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateRangePartitionedTableIT.java index 37a2a3bcf876..aa54b9512e15 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateRangePartitionedTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateRangePartitionedTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDdlIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDdlIT.java index ae362f90f1cb..2e6dfd21c345 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDdlIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineDdlIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineIT.java index 6568c3324141..1bb005616f39 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateRoutineIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java index 7169a8fce10e..0f3a3813d52d 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableCmekIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableExternalHivePartitionedIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableExternalHivePartitionedIT.java index b460dec9b4c5..c959970bb5b9 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableExternalHivePartitionedIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableExternalHivePartitionedIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java index 000091a04599..b54ac593ea86 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableWithoutSchemaIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableWithoutSchemaIT.java index dd686d17985b..41047ab66e51 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableWithoutSchemaIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTableWithoutSchemaIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeysIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeysIT.java index 00ba8fa44199..1a5d8a6edafb 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeysIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateTablesWithPrimaryAndForeignKeysIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateViewIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateViewIT.java index 6b4c7e38a701..5e612678b07f 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateViewIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/CreateViewIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DatasetExistsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DatasetExistsIT.java index 45b6b6b175ad..ca201aaec65e 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DatasetExistsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DatasetExistsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DdlCreateViewIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DdlCreateViewIT.java index 146e5670dfb9..0fd9e54abddd 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DdlCreateViewIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DdlCreateViewIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetAndContentsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetAndContentsIT.java index 6151e309b2a8..067abf5990e7 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetAndContentsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetAndContentsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetIT.java index 27ab2e58db87..acf0e349142a 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteDatasetIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java index 1136e18f2ce4..1e8a1ba6f487 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelDatasetIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java index f1ad6be6369a..1ed2e03ef37d 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteLabelTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteMaterializedViewIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteMaterializedViewIT.java index bd5be8fe91b1..de81845ed950 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteMaterializedViewIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteMaterializedViewIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java index 9df25a6581bd..6517e8ca8505 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteModelIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteRoutineIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteRoutineIT.java index 3959792416fe..42328c878bfa 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteRoutineIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteRoutineIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteTableIT.java index 95d0afa17b52..dcad2d0f6f93 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/DeleteTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingIT.java index 0ad56510180d..4a4fd06bca4e 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpanIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpanIT.java index 482915008b4f..0f749b9da414 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpanIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/EnableOpenTelemetryTracingWithParentSpanIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2025 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExportQueryResultsToS3IT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExportQueryResultsToS3IT.java index b014bde602a2..35f32bef1bf1 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExportQueryResultsToS3IT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExportQueryResultsToS3IT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractModelIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractModelIT.java index ac0d131113c6..45e4fdc31609 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractModelIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractModelIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java index 4e551ed81861..8fd485026beb 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractTableCompressedIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java index 838a989b692c..2bb59474753d 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToCsvIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java index 393188c7eb13..8198559d4e5e 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ExtractTableToJsonIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetDatasetInfoIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetDatasetInfoIT.java index ab5019ad425e..bbc4d2df1701 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetDatasetInfoIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetDatasetInfoIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetDatasetLabelsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetDatasetLabelsIT.java index 443f3698fa3d..7523513c7c8a 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetDatasetLabelsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetDatasetLabelsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetJobIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetJobIT.java index 8d99fd89a371..3839f884dade 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetJobIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetJobIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java index 7a1c931ee6b9..a2cea24e7ca0 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetModelIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetRoutineIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetRoutineIT.java index a8836425430f..e1fd49374e88 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetRoutineIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetRoutineIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetTableIT.java index e16db3e9d54a..665cf7d70c9c 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java index a5e9bc4531cf..5176b2bed20a 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetTableLabelsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetViewIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetViewIT.java index 06539416bb41..fb91d5b92e29 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetViewIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GetViewIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java index d8655a9d5849..939559e01544 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/GrantViewAccessIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java index 0ec786fa057a..1e0d37fc7ae7 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/InsertingDataTypesIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LabelDatasetIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LabelDatasetIT.java index 214996caa843..f5a62049835b 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LabelDatasetIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LabelDatasetIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LabelTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LabelTableIT.java index bf6f9160d43b..724942040426 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LabelTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LabelTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsByLabelIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsByLabelIT.java index 8cf273b325a4..b2d582f75e0a 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsByLabelIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsByLabelIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsIT.java index 607e336bb01a..c11452b20516 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListDatasetsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListJobsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListJobsIT.java index 806dde7e9393..180fe570ed79 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListJobsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListJobsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java index 4ddac63bcb2e..f2e0934a2bf0 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListModelsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListRoutinesIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListRoutinesIT.java index 3b0f0de382d0..f51470a27a3c 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListRoutinesIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListRoutinesIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListTablesIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListTablesIT.java index 674f7e7ca711..9a2db5d646ae 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListTablesIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/ListTablesIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsIT.java index a8f44463b1d2..5134f1784c1c 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsTruncateIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsTruncateIT.java index e088fc066510..828a1f4cfa1b 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsTruncateIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadAvroFromGcsTruncateIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsAutodetectIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsAutodetectIT.java index 4a005c5a51a8..b15002409f30 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsAutodetectIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsAutodetectIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java index b44cf8b2142c..ccf9ab7902d4 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java index 62036764968b..0682e9716be9 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadCsvFromGcsTruncateTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsAutodetectIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsAutodetectIT.java index 1c8b85a3fc5f..5f7964bb8978 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsAutodetectIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsAutodetectIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java index c4507f11d751..51ef303f850b 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsCmekIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsIT.java index 4171028d41f8..d24b57c9b90b 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsTruncateIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsTruncateIT.java index a5ffdea9e091..858bfb68964c 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsTruncateIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadJsonFromGcsTruncateIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java index 31a20b70bec1..bd621ab8c8ae 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileInSessionIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileInSessionIT.java index 1bf6128784af..b1bf79657513 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileInSessionIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadLocalFileInSessionIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsIT.java index 01a68a590c36..fc0283f8a792 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsTruncateIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsTruncateIT.java index cc5862801963..8e42e1326ea0 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsTruncateIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadOrcFromGcsTruncateIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java index e50c32b8aa98..a10b52a3c1a7 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadParquetIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java index 7846f7677344..437b47ca1e43 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadParquetReplaceTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java index 3f9d9f5ff9c4..00b87f7c4d69 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadPartitionedTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java index e7f9df5d9289..2c498c89482f 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/LoadTableClusteredIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java index afa23ac7da4b..e3a593ad60df 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/NestedRepeatedSchemaIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryBatchIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryBatchIT.java index b379583c97bb..acd579d33525 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryBatchIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryBatchIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java index abdaed05f32d..fe4896a0df29 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryClusteredTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java index e4f21760d88a..06102ab3c649 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryDestinationTableCmekIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryDisableCacheIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryDisableCacheIT.java index 93ac76a62c40..e0120acb8893 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryDisableCacheIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryDisableCacheIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryDryRunIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryDryRunIT.java index f19641be53b0..f4c2d77aeea4 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryDryRunIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryDryRunIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtablePermIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtablePermIT.java index 7f14a28719d7..c8b2008de1a6 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtablePermIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtablePermIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtableTempIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtableTempIT.java index dce81d637409..392c78d680b6 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtableTempIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalBigtableTempIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsPermIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsPermIT.java index ed4e8d40b325..79739f2f9827 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsPermIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsPermIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsTempIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsTempIT.java index a64117810cf4..649e19be52fc 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsTempIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalGcsTempIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java index fc16a4f8ea75..e856223d4f2c 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsPermIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java index 2098cce6eee6..3ddb24d03ac7 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalSheetsTempIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java index 504a72f45a92..564169f7dbc3 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryExternalTableAwsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryJobOptionalIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryJobOptionalIT.java index 8e3e97909818..9d4aa7fa64e0 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryJobOptionalIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryJobOptionalIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryLargeResultsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryLargeResultsIT.java index 11efa613bb39..28ac37792e32 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryLargeResultsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryLargeResultsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryMaterializedViewIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryMaterializedViewIT.java index 7e84daf28a0e..240b9232d124 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryMaterializedViewIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryMaterializedViewIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryPaginationIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryPaginationIT.java index 415bed7b689f..eeb2bb204dbc 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryPaginationIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryPaginationIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryPartitionedTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryPartitionedTableIT.java index 777c9482b3c1..10ef3ead0cf9 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryPartitionedTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryPartitionedTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryScriptIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryScriptIT.java index ee172f7867bb..b61867b28192 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryScriptIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryScriptIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryTotalRowsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryTotalRowsIT.java index 8e48bc110779..f0aea989d763 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryTotalRowsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryTotalRowsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayOfStructsNamedParametersIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayOfStructsNamedParametersIT.java index f0b524dda4c3..20c1f6090d82 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayOfStructsNamedParametersIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayOfStructsNamedParametersIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2023 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayParametersIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayParametersIT.java index c52d6167d0f1..f886a6899680 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayParametersIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithArrayParametersIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java index be57b9d32fa8..4b8054f9dad1 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedParametersIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedTypesParametersIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedTypesParametersIT.java index 359379e36105..cba2dbe1e8f8 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedTypesParametersIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithNamedTypesParametersIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java index 38afddffaffa..b74023f623fc 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalParametersIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalTypesParametersIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalTypesParametersIT.java index 1abe3729997d..1f47e7683a75 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalTypesParametersIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithPositionalTypesParametersIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithStructsParametersIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithStructsParametersIT.java index 3a67da6daf03..2eff861dbded 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithStructsParametersIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithStructsParametersIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java index 32d707c307bc..b6e2ce949c34 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QueryWithTimestampParametersIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QuickstartSampleIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QuickstartSampleIT.java index f819db552e95..6f9d21d0080b 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QuickstartSampleIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/QuickstartSampleIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google Inc. + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnLoadAppendIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnLoadAppendIT.java index 96ad8fc45f56..3335d90079e3 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnLoadAppendIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnLoadAppendIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnModeIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnModeIT.java index 8e7860947042..d17ef63cf31a 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnModeIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RelaxColumnModeIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RelaxTableQueryIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RelaxTableQueryIT.java index ac123a74fcfc..f78aded7c3a9 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RelaxTableQueryIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RelaxTableQueryIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RunLegacyQueryIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RunLegacyQueryIT.java index aeff57335aa7..ce51fcd4f237 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RunLegacyQueryIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/RunLegacyQueryIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java index a1bb54f9664d..c9a13e3b6791 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SaveQueryToTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SetUserAgentTest.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SetUserAgentTest.java index 6c5c9cf6d330..7c43b7d9b4bc 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SetUserAgentTest.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SetUserAgentTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2022 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java index 4c4030c7dccc..1e9669dabc37 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SimpleAppIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 Google Inc. + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryConnectionReadApiIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryConnectionReadApiIT.java index b7cb109c77f5..21e4006a885e 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryConnectionReadApiIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryConnectionReadApiIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2024 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java index 5441ffccad0d..759b94874253 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/SimpleQueryIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java index 4573648a6141..127c6f1796d8 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/TableExistsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java index d479530120e6..496f8cc03e27 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java index ae00c10f87f1..86a0d00bba9d 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/TableInsertRowsWithoutRowIdsIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java index f53b0e41fe5e..8c6269150d58 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UndeleteTableIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java index 2a1ed26f9dad..6bb048065855 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetAccessIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java index c74e91d1f1c9..a14cdd53fe32 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetDescriptionIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java index 201b74600418..f3f4f275d232 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetExpirationIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2019 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetPartitionExpirationIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetPartitionExpirationIT.java index 0ef2a47262a5..229cc26ade6d 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetPartitionExpirationIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateDatasetPartitionExpirationIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateIamPolicyIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateIamPolicyIT.java index 196fcd4ef1a9..2978e5fdf6cf 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateIamPolicyIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateIamPolicyIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateMaterializedViewIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateMaterializedViewIT.java index 54ed2194a432..1383aa2ed34a 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateMaterializedViewIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateMaterializedViewIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java index 478cfec97222..d58ee83e4f60 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateModelDescriptionIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateRoutineIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateRoutineIT.java index 2abfe4cf76ef..605496660d78 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateRoutineIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateRoutineIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java index ddeb7a022080..460da0a9b7a4 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableCmekIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java index d26a79da5c18..06f18d1f4d54 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDescriptionIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDmlIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDmlIT.java index 53ba0d1ab846..de7f4e4d98fc 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDmlIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableDmlIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java index 1e3b8980f9cf..c497eaec724c 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableExpirationIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilterIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilterIT.java index c6c9233ee940..8cc0da8b6641 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilterIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateTableRequirePartitionFilterIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateViewQueryIT.java b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateViewQueryIT.java index 2b14e6655625..1e6f49f2d660 100644 --- a/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateViewQueryIT.java +++ b/java-bigquery/samples/snippets/src/test/java/com/example/bigquery/UpdateViewQueryIT.java @@ -1,5 +1,5 @@ /* - * Copyright 2020 Google LLC + * Copyright 2026 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. From 9043a01b89cb5057d2dcc06a131573915038b8e5 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 28 Jan 2026 00:40:53 +0000 Subject: [PATCH 3438/3441] chore(java-bigquery): modernize root pom.xml --- java-bigquery/pom.xml | 99 ++++--------------------------------------- 1 file changed, 8 insertions(+), 91 deletions(-) diff --git a/java-bigquery/pom.xml b/java-bigquery/pom.xml index a3abc5b9e52f..17638a26bbb8 100644 --- a/java-bigquery/pom.xml +++ b/java-bigquery/pom.xml @@ -6,15 +6,16 @@ pom 2.58.1-SNAPSHOT BigQuery Parent - https://github.com/googleapis/java-bigquery + https://github.com/googleapis/google-cloud-java Java idiomatic client for Google Cloud Platform services. com.google.cloud - sdk-platform-java-config - 3.56.0 + google-cloud-jar-parent + 1.77.0-SNAPSHOT + ../google-cloud-jar-parent/pom.xml @@ -33,13 +34,13 @@ - scm:git:git@github.com:googleapis/java-bigquery.git - scm:git:git@github.com:googleapis/java-bigquery.git - https://github.com/googleapis/java-bigquery + scm:git:git@github.com:googleapis/google-cloud-java.git + scm:git:git@github.com:googleapis/google-cloud-java.git + https://github.com/googleapis/google-cloud-java HEAD - https://github.com/googleapis/java-bigquery/issues + https://github.com/googleapis/google-cloud-java/issues GitHub Issues @@ -67,7 +68,6 @@ import - com.google.cloud google-cloud-bigquerystorage-bom @@ -96,20 +96,12 @@ 2.58.1-SNAPSHOT - - com.google.apis - google-api-services-bigquery - ${google-api-services-bigquery.version} - - - org.threeten threeten-extra 1.8.0 - com.google.truth truth @@ -134,12 +126,6 @@ 2.74.0 test - - com.google.api.grpc - proto-google-cloud-bigqueryconnection-v1 - 2.70.0 - test - org.mockito mockito-bom @@ -176,75 +162,6 @@ - - - - org.apache.maven.plugins - maven-project-info-reports-plugin - 3.9.0 - - - - index - dependency-info - team - ci-management - issue-management - licenses - scm - dependency-management - distribution-management - summary - modules - - - - - true - ${site.installationModule} - jar - - - - org.apache.maven.plugins - maven-javadoc-plugin - - - html - - aggregate - javadoc - - - - - none - protected - true - ${project.build.directory}/javadoc - - - Test helpers packages - com.google.cloud.testing - - - SPI packages - com.google.cloud.spi* - - - - - https://grpc.io/grpc-java/javadoc/ - https://developers.google.com/protocol-buffers/docs/reference/java/ - https://googleapis.dev/java/google-auth-library/latest/ - https://googleapis.dev/java/gax/latest/ - https://googleapis.github.io/api-common-java/ - - - - - - include-samples From 0d319984a74c931fa80a77f7e549a6b2a6a88cb1 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 28 Jan 2026 00:40:54 +0000 Subject: [PATCH 3439/3441] chore(java-bigquery): modernize BOM pom.xml --- java-bigquery/google-cloud-bigquery-bom/pom.xml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/java-bigquery/google-cloud-bigquery-bom/pom.xml b/java-bigquery/google-cloud-bigquery-bom/pom.xml index 77135f0fb698..41b38f3683e9 100644 --- a/java-bigquery/google-cloud-bigquery-bom/pom.xml +++ b/java-bigquery/google-cloud-bigquery-bom/pom.xml @@ -6,14 +6,14 @@ 2.58.1-SNAPSHOT pom - com.google.cloud - sdk-platform-java-config - 3.56.0 - + com.google.cloud + google-cloud-pom-parent + 1.77.0-SNAPSHOT + ../../google-cloud-pom-parent/pom.xml Google Cloud BigQuery BOM - https://github.com/googleapis/java-bigquery + https://github.com/googleapis/google-cloud-java BOM for Google Cloud BigQuery @@ -35,12 +35,11 @@ - scm:git:https://github.com/googleapis/java-bigquery.git - scm:git:git@github.com:googleapis/java-bigquery.git - https://github.com/googleapis/java-bigquery + scm:git:https://github.com/googleapis/google-cloud-java.git + scm:git:git@github.com:googleapis/google-cloud-java.git + https://github.com/googleapis/google-cloud-java - The Apache Software License, Version 2.0 From f7f8bf941dde00c6867cf7ca5bb3c0df4cef8a06 Mon Sep 17 00:00:00 2001 From: chingor13 Date: Wed, 28 Jan 2026 01:10:06 +0000 Subject: [PATCH 3440/3441] build(deps): fix dependenc versions --- java-bigquery/pom.xml | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/java-bigquery/pom.xml b/java-bigquery/pom.xml index 17638a26bbb8..b63b93d44746 100644 --- a/java-bigquery/pom.xml +++ b/java-bigquery/pom.xml @@ -60,14 +60,6 @@ - - com.google.cloud - google-cloud-shared-dependencies - ${google-cloud-shared-dependencies.version} - pom - import - - com.google.cloud google-cloud-bigquerystorage-bom @@ -84,6 +76,12 @@ import + + com.google.apis + google-api-services-bigquery + ${google-api-services-bigquery.version} + + org.checkerframework checker-compat-qual @@ -116,15 +114,10 @@ com.google.cloud - google-cloud-storage - 2.53.3 - test - - - com.google.cloud - google-cloud-bigqueryconnection - 2.74.0 - test + google-cloud-bigqueryconnection-bom + pom + 2.85.0-SNAPSHOT + import org.mockito From bb1c75bebab2dbcde188850bb4a5df01e765e3f4 Mon Sep 17 00:00:00 2001 From: cloud-java-bot Date: Wed, 28 Jan 2026 01:16:21 +0000 Subject: [PATCH 3441/3441] chore: generate libraries at Wed Jan 28 01:14:42 UTC 2026 --- gapic-libraries-bom/pom.xml | 7 +++++++ pom.xml | 20 ++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/gapic-libraries-bom/pom.xml b/gapic-libraries-bom/pom.xml index e7b3efd5a591..90a06582bd45 100644 --- a/gapic-libraries-bom/pom.xml +++ b/gapic-libraries-bom/pom.xml @@ -224,6 +224,13 @@ pom import + + com.google.cloud + google-cloud-bigquery-bom + 2.58.1-SNAPSHOT + pom + import + com.google.cloud google-cloud-bigquery-data-exchange-bom diff --git a/pom.xml b/pom.xml index 7f8cb155d324..5e17074313f3 100644 --- a/pom.xml +++ b/pom.xml @@ -19,8 +19,8 @@ java-admanager java-advisorynotifications java-aiplatform - java-alloydb-connectors java-alloydb + java-alloydb-connectors java-analytics-admin java-analytics-data java-analyticshub @@ -45,8 +45,8 @@ java-beyondcorp-clientconnectorservices java-beyondcorp-clientgateways java-biglake - java-bigquery-data-exchange java-bigquery + java-bigquery-data-exchange java-bigqueryconnection java-bigquerydatapolicy java-bigquerydatatransfer @@ -84,14 +84,14 @@ java-datalineage java-datamanager java-dataplex - java-dataproc-metastore java-dataproc + java-dataproc-metastore java-datastream java-deploy java-developerconnect java-devicestreaming - java-dialogflow-cx java-dialogflow + java-dialogflow-cx java-discoveryengine java-distributedcloudedge java-dlp @@ -103,8 +103,8 @@ java-enterpriseknowledgegraph java-errorreporting java-essential-contacts - java-eventarc-publishing java-eventarc + java-eventarc-publishing java-filestore java-financialservices java-functions @@ -118,8 +118,8 @@ java-grafeas java-gsuite-addons java-hypercomputecluster - java-iam-admin java-iam + java-iam-admin java-iamcredentials java-iap java-ids @@ -139,8 +139,8 @@ java-managedkafka java-maps-addressvalidation java-maps-area-insights - java-maps-fleetengine-delivery java-maps-fleetengine + java-maps-fleetengine-delivery java-maps-mapsplatformdatasets java-maps-places java-maps-routeoptimization @@ -152,9 +152,9 @@ java-memcache java-migrationcenter java-modelarmor + java-monitoring java-monitoring-dashboards java-monitoring-metricsscope - java-monitoring java-netapp java-network-management java-network-security @@ -181,8 +181,8 @@ java-recaptchaenterprise java-recommendations-ai java-recommender - java-redis-cluster java-redis + java-redis-cluster java-resourcemanager java-retail java-run @@ -192,8 +192,8 @@ java-secretmanager java-securesourcemanager java-security-private-ca - java-securitycenter-settings java-securitycenter + java-securitycenter-settings java-securitycentermanagement java-securityposture java-service-control